From xen-devel-bounces@lists.xenproject.org Mon Nov 01 00:51:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 00:51:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.218983.379592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhLX5-0005ce-O5; Mon, 01 Nov 2021 00:50:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 218983.379592; Mon, 01 Nov 2021 00:50:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhLX5-0005cX-Kz; Mon, 01 Nov 2021 00:50:39 +0000
Received: by outflank-mailman (input) for mailman id 218983;
 Mon, 01 Nov 2021 00:50:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhLX3-0005cN-Ox; Mon, 01 Nov 2021 00:50:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhLX3-0004TF-CF; Mon, 01 Nov 2021 00:50:37 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhLX3-0007hK-0B; Mon, 01 Nov 2021 00:50:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhLX2-0001XB-Vx; Mon, 01 Nov 2021 00:50:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ptEbV6MEEi1WpXaHiTfhbLqOOEq1ACW9fFULKy+c/m8=; b=mMZH22syF8lUDaRJ0dUxU7rU46
	BQckyMHkxNxGHzNwrNgT4eiNckIyDWgsYKUblXz0V8veeFC4QOj82qhDzQ0MnnRGVyHiLhAwNCyBR
	nx7iliI0Boc4mZ2tAfkqW5jsjDv4g51BnLgCvl0UUMZRHQyvYNqPnsBSCR2DnvD+9R78=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165963-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 165963: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=75fcbd38608c3ce9f4dc784f2ac8916add64c9a8
X-Osstest-Versions-That:
    linux=180eca540ae06246d594bdd8d8213426a259cc8c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 00:50:36 +0000

flight 165963 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165963/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165956
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165956
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165956
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165956
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165956
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165956
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165956
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165956
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                75fcbd38608c3ce9f4dc784f2ac8916add64c9a8
baseline version:
 linux                180eca540ae06246d594bdd8d8213426a259cc8c

Last test of basis   165956  2021-10-31 05:28:15 Z    0 days
Testing same since   165963  2021-10-31 19:40:36 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adrian Hunter <adrian.hunter@intel.com>
  Arnaldo Carvalho de Melo <acme@redhat.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  David Woodhouse <dwmw@amazon.co.uk>
  Halil Pasic <pasic@linux.ibm.com>
  Jiri Olsa <jolsa@redhat.com>
  Joe Mario <jmario@redhat.com>
  Kan Liang <kan.liang@linux.intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Marc Orr <marcorr@google.com>
  Mark Wieelard <mjw@redhat.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Song Liu <songliubraving@fb.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   180eca540ae0..75fcbd38608c  75fcbd38608c3ce9f4dc784f2ac8916add64c9a8 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 01:44:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 01:44:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.218992.379607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhMMX-0004Cy-QQ; Mon, 01 Nov 2021 01:43:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 218992.379607; Mon, 01 Nov 2021 01:43:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhMMX-0004Cr-Lu; Mon, 01 Nov 2021 01:43:49 +0000
Received: by outflank-mailman (input) for mailman id 218992;
 Mon, 01 Nov 2021 01:43:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhMMW-0004Cc-BX; Mon, 01 Nov 2021 01:43:48 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhMMW-0006wm-5A; Mon, 01 Nov 2021 01:43:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhMMV-0000lN-NB; Mon, 01 Nov 2021 01:43:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhMMV-00073z-Me; Mon, 01 Nov 2021 01:43:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=aTRiP0xds70e0u5dL7GUvu/Vhem734ru5YiQycAXFOU=; b=QnKpT3HDOvG+Oa2gsAbviIx3pN
	l5gHqPN+drYN1wwytN0hGiFzY4Z+DFHLC6QV6PDVKB+fsJi+EVIY6XV8e4liTnMkW2dVm68IB7Nss
	BdYWlBzDG6z8am3NyihFAK7qaET/SHUoM4mqNWXtsrINlIR8C1IyyQOM8r8sL7uqtfws=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165964-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 165964: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-i386-xsm:xen-build:fail:regression
    qemu-mainline:build-i386:xen-build:fail:regression
    qemu-mainline:build-armhf:xen-build:fail:regression
    qemu-mainline:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-amd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-i386:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-coresched-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:build-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:build-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-intel:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=af531756d25541a1b3b3d9a14e72e7fedd941a2e
X-Osstest-Versions-That:
    qemuu=50352cce138ef3b30c1cda28a4df68fff5da3202
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 01:43:47 +0000

flight 165964 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165964/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-xsm                6 xen-build                fail REGR. vs. 165682
 build-i386                    6 xen-build                fail REGR. vs. 165682
 build-armhf                   6 xen-build                fail REGR. vs. 165682

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-cubietruck  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-amd  1 build-check(1)               blocked n/a
 test-amd64-i386-pair          1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-i386  1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-amd64  1 build-check(1)               blocked  n/a
 test-amd64-coresched-i386-xl  1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 build-i386-libvirt            1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-intel  1 build-check(1)             blocked n/a
 test-amd64-i386-xl            1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-pvshim     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64  1 build-check(1)         blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1)  blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-i386-xl-qemuu-ovmf-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-win7-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-ws16-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-shadow     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-vhd        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165682
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165682
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                af531756d25541a1b3b3d9a14e72e7fedd941a2e
baseline version:
 qemuu                50352cce138ef3b30c1cda28a4df68fff5da3202

Last test of basis   165682  2021-10-19 21:09:14 Z   12 days
Failing since        165694  2021-10-20 18:09:12 Z   11 days   30 attempts
Testing same since   165952  2021-10-31 00:39:26 Z    1 days    4 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexey Baturo <baturo.alexey@gmail.com>
  Alexey Baturo <space.monkey.delivers@gmail.com>
  Alistair Francis <alistair.francis@wdc.com>
  Anatoly Parshintsev <kupokupokupopo@gmail.com>
  Andrew Jones <drjones@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  BALATON Zoltan <balaton@eik.bme.hu>
  Bin Meng <bmeng.cn@gmail.com>
  Chenyi Qiang <chenyi.qiang@intel.com>
  Chih-Min Chao <chihmin.chao@sifive.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cédric Le Goater <clg@kaod.org>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  David Gibson <david@gibson.dropbear.id.au>
  David Hildenbrand <david@redhat.com>
  Dr. David Alan Gilbert <dgilbert@redhat.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Frank Chang <frank.chang@sifive.com>
  Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
  Gavin Shan <gshan@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Greg Kurz <groug@kaod.org>
  Gustavo Romero <gromero@linux.ibm.com>
  Igor Mammedov <imammedo@redhat.com>
  Jason Wang <jasowang@redhat.com>
  John Snow <jsnow@redhat.com>
  John Wang <wangzhiqiang02@inspur.com>
  John Wang <wangzq.jn@gmail.com>
  Jose Martins <josemartins90@gmail.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Luc Michel <lmichel@kalray.eu>
  Luis Pires <luis.pires@eldorado.org.br>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Mathieu Poirier <mathieu.poirier@linaro.org>
  Michael S. Tsirkin <mst@redhat.com>
  Mingwang Li <limingwang@huawei.com>
  Oğuz Ersen <oguzersen@protonmail.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Krempa <pkrempa@redhat.com>
  Philipp Tomsich <philipp.tomsich@vrull.eu>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Shuuichirou Ishii <ishii.shuuichir@fujitsu.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  Tong Ho <tong.ho@xilinx.com>
  Travis Geiselbrecht <travisg@gmail.com>
  Vincent Palatin <vpalatin@rivosinc.com>
  Vivek Goyal <vgoyal@redhat.com>
  Xueming Li <xuemingl@nvidia.com>
  Yanan Wang <wangyanan55@huawei.com>
  Yifei Jiang <jiangyifei@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               fail    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   fail    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           blocked 
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-i386-xl                                           blocked 
 test-amd64-coresched-i386-xl                                 blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     blocked 
 test-amd64-i386-freebsd10-amd64                              blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          blocked 
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-armhf-armhf-xl-cubietruck                               blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         blocked 
 test-amd64-i386-freebsd10-i386                               blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         blocked 
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 blocked 
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    blocked 
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              blocked 
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      blocked 
 test-amd64-i386-xl-vhd                                       blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 6076 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 01:57:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 01:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219000.379620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhMZs-0005hd-2t; Mon, 01 Nov 2021 01:57:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219000.379620; Mon, 01 Nov 2021 01:57:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhMZr-0005hW-WB; Mon, 01 Nov 2021 01:57:35 +0000
Received: by outflank-mailman (input) for mailman id 219000;
 Mon, 01 Nov 2021 01:57:34 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ib2G=PU=kernel.org=guoren@srs-us1.protection.inumbo.net>)
 id 1mhMZq-0005hQ-7D
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 01:57:34 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 13bc6d24-3ab7-11ec-853d-12813bfff9fa;
 Mon, 01 Nov 2021 01:57:33 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 4512E610A2
 for <xen-devel@lists.xenproject.org>; Mon,  1 Nov 2021 01:57:32 +0000 (UTC)
Received: by mail-ot1-f51.google.com with SMTP id
 p11-20020a9d4e0b000000b0055a5741bff7so2385019otf.2
 for <xen-devel@lists.xenproject.org>; Sun, 31 Oct 2021 18:57:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13bc6d24-3ab7-11ec-853d-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635731852;
	bh=fuaUan8WpsO3AU0Pd876OqdiQB5S59Rz/RFmfxHCqFo=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=WTZ2r/aqsZBJ/SEMp/W5aRRvu0wWWG+qZmM8hZPwjrObwwMpW1TgXwf1zWnw0Qa9i
	 Zv/YGYWGYxl7myNvWxfw0CIgJUc9b2/XePq2AH0H37XLuqx44GHHVjgkb3ys6UwuYH
	 QFUJSlyCI2x3AldpppHi6cKlbUrpf5epTIwYkQ0LyIddZNVrNNmKUj9pq1nkh3vhav
	 ePFznWLS5KXHwuBhRZexeraVkFwzXRLP/38HX/OFwy/5mrR8Hs9LdC9PbwjoOwqbNV
	 ADgrJu7beLvyyJTcpsvn3lAsea5miSCymSsM2dL/H4uMyDHc1oqmdVcUWCHL7cYIF+
	 w+SQ6/88DMfNA==
X-Gm-Message-State: AOAM530A1h20t99XwQh19jTXj2q+qfEeHP61XiS5dIYcrjzrHOLh52TK
	iLp34twCjgZHoTvOr+sGYfaZhqTbhySGkLwMgro=
X-Google-Smtp-Source: ABdhPJwLzr48xvkbPUYNSwW4wG4jcRHULAsaxHDgvLOaeOhiDi1MY+7mZCeP1WaifSe+QfUYgjKQrdu4XIYT2pTMgvI=
X-Received: by 2002:ab0:6883:: with SMTP id t3mr16913634uar.66.1635731841194;
 Sun, 31 Oct 2021 18:57:21 -0700 (PDT)
MIME-Version: 1.0
References: <20211027211715.12671-1-digetx@gmail.com> <20211027211715.12671-13-digetx@gmail.com>
In-Reply-To: <20211027211715.12671-13-digetx@gmail.com>
From: Guo Ren <guoren@kernel.org>
Date: Mon, 1 Nov 2021 09:57:10 +0800
X-Gmail-Original-Message-ID: <CAJF2gTT+EsLt+pnYyTw_B0C8isho=E4tfOWROe9h-GZpYjET=w@mail.gmail.com>
Message-ID: <CAJF2gTT+EsLt+pnYyTw_B0C8isho=E4tfOWROe9h-GZpYjET=w@mail.gmail.com>
Subject: Re: [PATCH v2 12/45] csky: Use do_kernel_power_off()
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>, Jonathan Hunter <jonathanh@nvidia.com>, 
	Lee Jones <lee.jones@linaro.org>, "Rafael J . Wysocki" <rafael@kernel.org>, 
	Mark Brown <broonie@kernel.org>, Andrew Morton <akpm@linux-foundation.org>, 
	Guenter Roeck <linux@roeck-us.net>, Russell King <linux@armlinux.org.uk>, 
	Daniel Lezcano <daniel.lezcano@linaro.org>, 
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Ulf Hansson <ulf.hansson@linaro.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, 
	Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer <gerg@linux-m68k.org>, 
	Joshua Thompson <funaho@jurai.org>, Thomas Bogendoerfer <tsbogend@alpha.franken.de>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, 
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>, Helge Deller <deller@gmx.de>, 
	Michael Ellerman <mpe@ellerman.id.au>, Benjamin Herrenschmidt <benh@kernel.crashing.org>, 
	Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>, 
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Len Brown <lenb@kernel.org>, 
	Santosh Shilimkar <ssantosh@kernel.org>, 
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>, 
	Linus Walleij <linus.walleij@linaro.org>, Chen-Yu Tsai <wens@csie.org>, 
	=?UTF-8?Q?Jonathan_Neusch=C3=A4fer?= <j.neuschaefer@gmx.net>, 
	Tony Lindgren <tony@atomide.com>, Liam Girdwood <lgirdwood@gmail.com>, 
	Philipp Zabel <p.zabel@pengutronix.de>, Vladimir Zapolskiy <vz@mleia.com>, 
	Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>, 
	Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>, 
	Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>, Pavel Machek <pavel@ucw.cz>, 
	Linux ARM <linux-arm-kernel@lists.infradead.org>, 
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, linux-csky@vger.kernel.org, 
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, 
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, 
	linuxppc-dev@lists.ozlabs.org, linux-riscv <linux-riscv@lists.infradead.org>, 
	linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org, 
	openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org, 
	linux-pm@vger.kernel.org
Content-Type: text/plain; charset="UTF-8"

Only for this patch, Acked-by: Guo Ren <guoren@kernel.org>

On Thu, Oct 28, 2021 at 5:18 AM Dmitry Osipenko <digetx@gmail.com> wrote:
>
> Kernel now supports chained power-off handlers. Use do_kernel_power_off()
> that invokes chained power-off handlers. It also invokes legacy
> pm_power_off() for now, which will be removed once all drivers will
> be converted to the new power-off API.
>
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  arch/csky/kernel/power.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/csky/kernel/power.c b/arch/csky/kernel/power.c
> index 923ee4e381b8..86ee202906f8 100644
> --- a/arch/csky/kernel/power.c
> +++ b/arch/csky/kernel/power.c
> @@ -9,16 +9,14 @@ EXPORT_SYMBOL(pm_power_off);
>  void machine_power_off(void)
>  {
>         local_irq_disable();
> -       if (pm_power_off)
> -               pm_power_off();
> +       do_kernel_power_off();
>         asm volatile ("bkpt");
>  }
>
>  void machine_halt(void)
>  {
>         local_irq_disable();
> -       if (pm_power_off)
> -               pm_power_off();
> +       do_kernel_power_off();
>         asm volatile ("bkpt");
>  }
>
> --
> 2.33.1
>


-- 
Best Regards
 Guo Ren

ML: https://lore.kernel.org/linux-csky/


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 06:15:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 06:15:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219011.379632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhQap-0003ni-7j; Mon, 01 Nov 2021 06:14:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219011.379632; Mon, 01 Nov 2021 06:14:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhQap-0003nb-4e; Mon, 01 Nov 2021 06:14:51 +0000
Received: by outflank-mailman (input) for mailman id 219011;
 Mon, 01 Nov 2021 06:14:50 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WR8P=PU=epam.com=prvs=1939429689=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhQao-0003nV-2f
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 06:14:50 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c4c15c79-1759-43cb-accc-c3add88c2a0e;
 Mon, 01 Nov 2021 06:14:47 +0000 (UTC)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A168DAq014414;
 Mon, 1 Nov 2021 06:14:44 GMT
Received: from eur02-am5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2056.outbound.protection.outlook.com [104.47.4.56])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c27xjg9h3-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 01 Nov 2021 06:14:43 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR0302MB3428.eurprd03.prod.outlook.com (2603:10a6:208:c::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Mon, 1 Nov
 2021 06:14:40 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.019; Mon, 1 Nov 2021
 06:14:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4c15c79-1759-43cb-accc-c3add88c2a0e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=A30cz1jj1TfcueWMehkVq237mu9dxWzZUwhEICwcHVVaTNb5rC/ZNEZFRbsetXJGxFVIBbFeLa5KrmqOwLrb4nEcHborJntQETtAoTVD6+F2wcj2Jx2XcOv+hgtZCm6Qy7O539/MZaYTY1tRAFTbtEEn+MjtHJVwIMwhQvKl9sGpja8WJQw39feU7t0TBjKpPbjp0xl228NFt6D7UrM/mCNQvrpNCqxkPqbq7vnoLXbh6ZbbEbehjVx1RLuKlRFJIgTNlluya3WeCwZF8PrjNFjsSWhyxgDQ0YivHfoFOF9VN2Pwg4cAuxevHv8fkLebU36nNMmF4OwehBOAxO9Klw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wTo0dn/L7115InFcQ0kFyrNCkRVFf15R/vqYUP3GAA8=;
 b=kKpGoWpvC7BF3HgqyXKVEGG5Iz0M3m6DuU/aEgMRVvvUGlWTCI/sFv/LqJb4x2ZM+W1nE94b31AKoWJHuxBIpzl4lQvCcBS5wFewJUVf2KADnZ4SiWE0Js8olPTr/iYu8isSCJqA6XVyRSOysNALanwPh30HxNcYcsn2VgoWyZF+AMNyoZfOxUOpXq8AauYEkbFfHKyov24GrDQQ5WMVoAhKEiwIgE8RnkNal/BUnvn9FpBuzzevBaIIIrzEiB/SS5jRkWlc3Bg87WTHDwXSRJQZE+rhghwHC1LM2l1L0kTCylY4NFbaSCXgbDiooMNXK3/dIKwR6U3lNJ76goBwPg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wTo0dn/L7115InFcQ0kFyrNCkRVFf15R/vqYUP3GAA8=;
 b=gtiu3tXDxEq0QCus4kWW6/ruHgFExLEXRvJ7buksWcuPGzeBScqdkTAfrtGFKjFheDlenTNBujcXxl3Qo+isKJ8gPXbB1w4Tz+OfiRNXfI04PRjNbPE9axkxoUHlb962eH8GX8EnqMUs+wO+a7Uil5O7hdb+d5dX/Dgn5TG5E6ORKssJObYV3ZxIzF7gzMSQUsK4aQnBu8rPq3qsj6JV//F152J0foxnHiilo4Kx2jv1LzjnquvW1swF2Qhd8U+8uiOLPy50XZUVRzgqk5pfiorWdjzfIQFshQR5aOUDGyjx6D5BblLlntBJ25lxgoEqaLL4UFedeEqG4IUjyW0QVw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Julien Grall <julien@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Thread-Topic: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Thread-Index: 
 AQHXyww6rKHs3LJru0q52eLUia+oNavnHBIAgAE3H4CAABhAgIAADTsAgAAb4gCAAB9PgIAA5K+AgASg3IA=
Date: Mon, 1 Nov 2021 06:14:40 +0000
Message-ID: <0ba7aa82-40bc-c0d3-38a2-8c4d141d0afd@epam.com>
References: <20211027082533.1406015-1-andr2000@gmail.com>
 <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <YXqnS7iZUvokJby6@Air-de-Roger>
 <3206478e-f230-cd91-5de9-85ef6c251405@epam.com>
 <YXrJyLMiMxaNmFAs@Air-de-Roger>
 <5de6c2f1-ef5c-9d8c-4287-9b0e3ff08b34@epam.com>
 <YXuj4frtHIRuSgOO@Air-de-Roger>
In-Reply-To: <YXuj4frtHIRuSgOO@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 0473b673-2bbf-460f-e936-08d99cfee3e3
x-ms-traffictypediagnostic: AM0PR0302MB3428:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR0302MB34285D72E9A2F316B4CAFDABE78A9@AM0PR0302MB3428.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 wZDy3dh+5NZtCVIA0yy+1nL/uhG1wE6iWqnrarXBVMt2hkDsfdgEpPdZmnFX1OIyfOJi036ClCmFSY9GbnJVX+3nxpHxs3Qf+86B2B8OsFdB0VWWGBVfzGLOsgGeQpiby5KfbAoTzRNIl/QKyxotM8ys2LLpwjL8vwBiWDY95/vl1E195W19LbCQmMaJ7i3OV3Tl3S6cefK7GWjUImtTDuufgHGJQfDp26nHh45SmWawAG6sIduw/mrDkRZ0dnDcLheFFKNlS8awXTAZTnt78JExUPxvDIAHHiEmm7pq4GDlqz6/opW0PGtcWbgNl5bqyERcNmoz/4AKsmaCc9WKF/i57P0rSBTOeLEbx28Ff6Z1ETEcp/gypeHjT/4b9wEqhQMr23c9AUkvXFsyLg5FoFPADQMvIhUv1rLf4+CDzB7w5v2ZTSEcnsCsw3jEpgJpqAf6DfHZqU7Lo2lRQiz9zb0FmugH/+EittYUv2J5u2anD/c71EjI70P4kYIPPBp1TRHV1Zz7GmPVYqF6ttFZfPob1HBI7090WC5kvi/FzzKxZ9X1CX3ZGUmEgXsG/up/erGT1PBEAryLz6DVdk0NnffpzJWi/YbBKj9b4QvzKtDPrJ8qTa9C1ro1c/Ix78Ga2rTLaMWWQ28bAMIhR/bCPIqW2zsaMyISQEKcrqiknb6QgBZ+8ja5t5dTv4WE2+BjvItAs6ahtIt4s4Se9uWkzT3wLCK5kiR5MrH0I9OhSBwQsWbSxJlxAOFn011BTdp5
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(26005)(83380400001)(8936002)(2616005)(71200400001)(31686004)(186003)(54906003)(6486002)(5660300002)(38070700005)(36756003)(86362001)(6916009)(2906002)(107886003)(316002)(6512007)(508600001)(53546011)(8676002)(31696002)(6506007)(122000001)(91956017)(76116006)(66476007)(66556008)(64756008)(66446008)(66946007)(38100700002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?ZkVkOTFMY2YyZlU1cHpqNjlxR2laWkRkUk0rbldqRnZpRzAvSmlrSHcyOVNQ?=
 =?utf-8?B?RGsvbEhvdldHWVZMVGsrbmcvUGc2M0pPd3JYV2JuZURkVndnYXNSWGFTZFpT?=
 =?utf-8?B?TGpvVStYSFV4Uy91R2N6am9sYmpSUDJUdnZaN0ZzRThiKzdkaGh4dE5PRG1k?=
 =?utf-8?B?QTZDcFVUcFRzT3hOWnozb1BLRlNsUk5CSlBiMkE2WGtLRS9KOXczbEJtL3Na?=
 =?utf-8?B?YXphdWZ0dEVwQ2dJZWNNem1ROW56aFAzU3h2YW9pdENITnRybFZJcERjb1Fk?=
 =?utf-8?B?VWlzeFlaMkI2bjNXUm84VFVWS2xiV01JeUNIWWEvQWxpTGY3MWN1SEVKYVIw?=
 =?utf-8?B?QjZIVWRNaXZXYmx3LzhxaUd0bE95UkNuNFBOL09FRGtpcmNQYXZuckN3d1B5?=
 =?utf-8?B?SjFzcnNlUEg1eFVlQlF4ZFRJVVhkdkswS3diMDBYQzBEQ0VSWVAyd0F5ZEZp?=
 =?utf-8?B?V3hZZjJ1K2pIeGw2NVcyTFN6Ty9SSW9vZjB6Vy9XblRpWVpOdG90T2xaMUtp?=
 =?utf-8?B?VTh4R0ZsTzkxZXc2VSs4YWRwd0xtenVTOUJjbFBvY2FwVUhMbDdaRWxqSEZB?=
 =?utf-8?B?QnZrK2pZRmRFUjVlWDQ0Vk5UM2NvM2ZCazZydk45cit1NThmckJqM3pXeDZl?=
 =?utf-8?B?MEIwYnovdTdqWkJJNndsSkZ2MFNGRFYrcVh6YTVRTkRscUNqeGwxSi8vUmt3?=
 =?utf-8?B?dG42R1JLN0Z6ZTA2anNJb1pFdVFPVTZaWkhiOXhhNGRrYmk0eDZzYVBXRFBL?=
 =?utf-8?B?VEhDdG90dG45TFljM2VQNDlwbktzRWdzdVVrWEpnNXpWODdYa3owd0FpbU5V?=
 =?utf-8?B?MXduS1A5WWFoc21lalkwMVk0NE51WlU1QXh4NDVWR1dOckdqeGdmY3hPaldF?=
 =?utf-8?B?VnpIRTNhZEg4VVRXdGdhd3ErTTdUNWc4eEN6ekg2NXIraWUvL01Sa3l4eXlS?=
 =?utf-8?B?aVBQVW8xYU5BYWVFK21TckhHWHIrVElya0xCaVlYUGxzYThDOWNDWG8xTHFJ?=
 =?utf-8?B?K3hKVDlTTFc5RElZUzN4WndjbER5amtUVjA1WGxjQVEyUXRCUjZkTGNwQm1y?=
 =?utf-8?B?aCtlcnUxVEJMRjdLQzBWMEliQmx5TDdlN1Zlb21oUTBsdnA0ZjFUdEM4ZWQr?=
 =?utf-8?B?UXFXckl0UWxvWGRRV3g2Q3RUblFERmhDQ0M2WVJ0NEFtaTcvdFVMR0g1ZC9G?=
 =?utf-8?B?ekZlN0YxNkh1K2tsY3hHNVhLVWJKNlVYTFltQW13d2ltSXZCZEhlSWNJb1JT?=
 =?utf-8?B?K0RPSlNPaEs0S1NFM24ybUFGdW5VNVVOUkFsYi9IeG1vVlRjRU1lNDdXbWdq?=
 =?utf-8?B?Z2g2MlhBMWhkOVNMRTR0djlvTHNUOVprUmRvZDMrN1RVeW44UlZHRU9BZ1I2?=
 =?utf-8?B?MEZQVFlRc1g3L0xvVloya1hGS2d5bDdOTGJneDUrMHVHeWRwLytSS0I3WFJF?=
 =?utf-8?B?NlFJOXBkNW9hUzN5ZGhOd09EbGFnWmw0RmVOVGphWmgvT1d0ZzVid1dqNUNV?=
 =?utf-8?B?Tkg1LzJ5eUM4bG8yajh6RGU4L0JXNGk2NEdTUEtIU1lWNXNUbTgzSVMrV1Vs?=
 =?utf-8?B?Q21Ha1ZHUkp6WkwvWjJtUCtLd2thYjdwc2kvWE1XWHdYZVZndEo4VXhTaDBH?=
 =?utf-8?B?b01ZTU45eCt1VXloWDdacUJnYUViMFMya0V2dmFJU1N6TkxwYm9MazMyK3l2?=
 =?utf-8?B?Yk4wSW9IS3RaWkJ6cndaTW83K09sdVA1emdYZnVkRGRoWEFzTmdaeVllc1NU?=
 =?utf-8?B?MTBmTU9VY1dQdWxmNlUzK2Q3dmRRcHQ2dVJ5bWdUanhIY2VEZUFtTWtRMHgy?=
 =?utf-8?B?NWE0NW9JTHp3ZHhpeDM1UW5zUjZkUHZzRGhPVGxuMVVublVtd0dyMUhUVXlX?=
 =?utf-8?B?Q3p2Y3loVFBsd2Z0b1VZTkFkQmx4RFBHSGx1cGJ5S0l6K3pxb1ZtaWVOWS9p?=
 =?utf-8?B?bUlWMUdiT1llMTRsN2lBR0RrUGxUVGxwWWE4ZWVqOU9XbDQ1UFJrVWUrazg5?=
 =?utf-8?B?TEpyemk5bkFXVmxtSEx4ZGZpcmgzMWhJcXUzdU9abDU3WkhIM0FVaGVGMzAw?=
 =?utf-8?B?dXNyMVRMOFZxVmVBbEpleEJpV0JJUzlYVW5FQ09HenR6TW83Vys2RnRaaVV4?=
 =?utf-8?B?SytuV0NXM3ovWWkyajRwQzlZOTNlMmwzVjJIWXk1N0ZCV3hNNGZKRVZCa2Q3?=
 =?utf-8?B?WGZkWTFOM2JzVzFZazZPSEFjc3E2SHU4cUxjNDY3RHZ4TVFwRFBUZ2k4dUFW?=
 =?utf-8?B?UnRHcDYzTzJyUVdvbGVtWHNkbkhxU1lIMHhjSlpPVlJYdkJkOVc0M1RCMjQx?=
 =?utf-8?B?QmFlT3FPbVhLakVROTZTWXlEeDBYajhyb3RFK0dyNHdZenhqV0M0UT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6474B68C2E81D6449C590E928BD447EC@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0473b673-2bbf-460f-e936-08d99cfee3e3
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2021 06:14:40.7411
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: whoJWRm8+gTsf2wYZdRIOtJdfFmN6masHj6vFRsFRpHkJyZswZECvN5PyGM0USodmHPgncC4UtVvTjfF2X/OZUt/CNnNRLlVHdrAOnq4RM6xbsnsQsxwxIRWdRNNoo03
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0302MB3428
X-Proofpoint-GUID: oZ5wf37GzZdscMuqwdwU4RcPHfEfvTtC
X-Proofpoint-ORIG-GUID: oZ5wf37GzZdscMuqwdwU4RcPHfEfvTtC
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-01_02,2021-10-29_03,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 bulkscore=0 spamscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999
 priorityscore=1501 clxscore=1015 mlxscore=0 impostorscore=0 phishscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111010036

DQoNCk9uIDI5LjEwLjIxIDEwOjMzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBUaHUs
IE9jdCAyOCwgMjAyMSBhdCAwNTo1NToyNVBNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+DQo+PiBPbiAyOC4xMC4yMSAxOTowMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90
ZToNCj4+PiBPbiBUaHUsIE9jdCAyOCwgMjAyMSBhdCAwMjoyMzozNFBNICswMDAwLCBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4gT24gMjguMTAuMjEgMTY6MzYsIFJvZ2VyIFBh
dSBNb25uw6kgd3JvdGU6DQo+Pj4+PiBPbiBUaHUsIE9jdCAyOCwgMjAyMSBhdCAxMjowOToyM1BN
ICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBIaSwgSnVsaWVu
IQ0KPj4+Pj4+DQo+Pj4+Pj4gT24gMjcuMTAuMjEgMjA6MzUsIEp1bGllbiBHcmFsbCB3cm90ZToN
Cj4+Pj4+Pj4gSGkgT2xla3NhbmRyLA0KPj4+Pj4+Pg0KPj4+Pj4+PiBPbiAyNy8xMC8yMDIxIDA5
OjI1LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+Pj4+IEZyb206IE9sZWtz
YW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+
Pj4+Pj4+DQo+Pj4+Pj4+PiBXaGlsZSBpbiB2UENJIE1NSU8gdHJhcCBoYW5kbGVycyBmb3IgdGhl
IGd1ZXN0IFBDSSBob3N0IGJyaWRnZSBpdCBpcyBub3QNCj4+Pj4+Pj4+IGVub3VnaCBmb3IgU0JE
RiB0cmFuc2xhdGlvbiB0byBzaW1wbHkgY2FsbCBWUENJX0VDQU1fQkRGKGluZm8tPmdwYSkgYXMN
Cj4+Pj4+Pj4+IHRoZSBiYXNlIGFkZHJlc3MgbWF5IG5vdCBiZSBhbGlnbmVkIGluIHRoZSB3YXkg
dGhhdCB0aGUgdHJhbnNsYXRpb24NCj4+Pj4+Pj4+IGFsd2F5cyB3b3JrLiBJZiBub3QgYWRqdXN0
ZWQgd2l0aCByZXNwZWN0IHRvIHRoZSBiYXNlIGFkZHJlc3MgaXQgbWF5IG5vdCBiZQ0KPj4+Pj4+
Pj4gYWJsZSB0byBwcm9wZXJseSBjb252ZXJ0IFNCREYgYW5kIGNyYXNoZXM6DQo+Pj4+Pj4+Pg0K
Pj4+Pj4+Pj4gKFhFTikgdnBjaV9tbWlvX3JlYWQgMDAwMDo2NToxYS4wIHJlZyA4YmMgZ3BhIGU2
NWQwOGJjDQo+Pj4+Pj4+IEkgY2FuJ3QgZmluZCBhIHByaW50aygpIHRoYXQgbWF5IG91dHB1dCB0
aGlzIG1lc3NhZ2UuIFdoZXJlIGRvZXMgdGhpcyBjb21lcyBmcm9tPw0KPj4+Pj4+IFRoYXQgd2Fz
IGEgZGVidWcgcHJpbnQuIEkgc2hvdWxkbid0IGhhdmUgdXNlZCB0aGF0IGluIHRoZSBwYXRjaCBk
ZXNjcmlwdGlvbiwgYnV0DQo+Pj4+Pj4gcHJvYmFibHkgYWZ0ZXIgIi0tLSIgdG8gYmV0dGVyIGV4
cGxhaW4gd2hhdCdzIGhhcHBlbmluZw0KPj4+Pj4+PiBBbnl3YXksIElJVUMgdGhlIGd1ZXN0IHBo
eXNpY2FsIGFkZHJlc3MgaXMgMHhlNjVkMDhiYyB3aGljaCwgaWYgSSBhbSBub3QgbWlzdGFrZW4s
IGRvZXNuJ3QgYmVsb25nIHRvIHRoZSByYW5nZSBhZHZlcnRpc2VkIGZvciBHVUVTVF9WUENJX0VD
QU0uDQo+Pj4+Pj4gVGhpcyBpcyBmcm9tIGRvbTAgSSBhbSB3b3JraW5nIG9uIG5vdy4NCj4+Pj4+
Pj4gSU1ITywgdGhlIHN0YWNrIHRyYWNlIHNob3VsZCBjb21lIGZyb20gdXNwdHJlYW0gWGVuIG9y
IG5lZWQgc29tZSBpbmZvcm1hdGlvbiB0byBleHBsYWluIGhvdyB0aGlzIHdhcyByZXByb2R1Y2Vk
Lg0KPj4+Pj4+Pg0KPj4+Pj4+Pj4gKFhFTikgRGF0YSBBYm9ydCBUcmFwLiBTeW5kcm9tZT0weDYN
Cj4+Pj4+Pj4+IChYRU4pIFdhbGtpbmcgSHlwZXJ2aXNvciBWQSAweDQ2N2EyOGJjIG9uIENQVTAg
dmlhIFRUQlIgMHgwMDAwMDAwMDQ4MWQ1MDAwDQo+Pj4+Pj4+IEkgY2FuIHVuZGVyc3RuYWQgdGhh
dCBpZiB3ZSBkb24ndCBzdWJzdHJhY3QgR1VFU1RfVlBDSV9FQ0FNLCB3ZSB3b3VsZCAoaW4gdGhl
b3J5KSBub3QgZ2V0IHRoZSBjb3JyZWN0IEJERi4gQnV0Li4uIEkgZG9uJ3QgdW5kZXJzdGFuZCBo
b3cgdGhpcyB3b3VsZCByZXN1bHQgdG8gYSBkYXRhIGFib3J0IGluIHRoZSBoeXBlcnZpc29yLg0K
Pj4+Pj4+Pg0KPj4+Pj4+PiBJbiBmYWN0LCBJIHRoaW5rIHRoZSB2UENJIGNvZGUgc2hvdWxkIGJl
IHJlc2lsaWVudCBlbm91Z2ggdG8gbm90IGNyYXNoIGlmIHdlIHBhc3MgdGhlIHdyb25nIEJERi4N
Cj4+Pj4+PiBXZWxsLCB0aGVyZSBpcyBubyAoPykgZWFzeSB3YXkgdG8gdmFsaWRhdGUgU0JERi4g
QW5kIHRoaXMgY291bGQgYmUgYSBwcm9ibGVtIGlmIHdlIGhhdmUgYSBtaXNiZWhhdmluZw0KPj4+
Pj4+IGd1ZXN0IHdoaWNoIG1heSBmb3JjZSBYZW4gdG8gYWNjZXNzIHRoZSBtZW1vcnkgYmV5b25k
IHRoYXQgb2YgUENJIGhvc3QgYnJpZGdlDQo+Pj4+PiBIb3cgY291bGQgdGhhdCBiZT8gVGhlIEVD
QU0gcmVnaW9uIGV4cG9zZWQgdG8gdGhlIGd1ZXN0IHlvdSBzaG91bGQgYmUNCj4+Pj4+IHRoZSBz
YW1lIGFzIHRoZSBwaHlzaWNhbCBvbmUgZm9yIGRvbTA/DQo+Pj4+IE9rLCBJIGhhdmUgYSBEZXNp
Z253YXJlIFBDSSBoaXN0IHdoaWNoIGhhcyAyIEVDQU0gcmVnaW9ucyAoSSBhbSBzdGFydGluZyB0
bw0KPj4+PiBpbXBsZW1lbnQgdGhlIGRyaXZlciBmb3IgaXQsIHNvIEkgY2FuIGJlIHdyb25nIGhl
cmUpOg0KPj4+PiAtIFJvb3QgQ29tcGxleCBFQ0FNIGFyZWEgKCJkYmkiKSwgaXQgaXMgc29tZXRo
aW5nIGxpa2UgMHgzMDAwIGJ5dGVzIGxvbmcNCj4+Pj4gLSAiQ2xpZW50IiBFQ0FNIGFyZWEgKCJj
b25maWciKQ0KPj4+PiBTbyBmcm9tIERvbTAgUE9WIHdlIGhhdmUgMiBFQ0FNIHJlZ2lvbnMgYW5k
IGZvciB0aGUgZ3Vlc3QNCj4+Pj4gd2UgYWx3YXlzIGVtdWxhdGUgYSBzaW5nbGUgYmlnIHJlZ2lv
bjoNCj4+PiBZb3UgbmVlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBFQ0FNIHJlZ2lvbnMuIFRoYXQn
cyBob3cgd2UgZG8gaXQgb24geDg2DQo+Pj4gUFZIIGRvbTAuIFNlZSByZWdpc3Rlcl92cGNpX21t
Y2ZnX2hhbmRsZXIgYW5kIHJlbGF0ZWQgbWFjaGluZXJ5Lg0KPj4gSXMgaXQgY29tbW9uIGZvciBh
IFBDSSBob3N0IGJyaWRnZSB0byBoYXZlIG11bHRpcGxlIEVDQU0gcmVnaW9ucz8NCj4+IEN1cnJl
bnRseSBvbiBBcm0gd2Ugd2VyZSBhYm91dCB0byBzdXBwb3J0ICJwY2ktaG9zdC1lY2FtLWdlbmVy
aWMiIFsxXSwNCj4+IGUuZy4gZ2VuZXJpYyBFQ0FNIGhvc3QgYnJpZGdlIHdoaWNoIG5vcm1hbGx5
ICg/KSBoYXMgYSBzaW5nbGUgRUNBTQ0KPj4gcmVnaW9uIFsyXS4gQnV0IHRoZSBob3N0IGJyaWRn
ZSBJIHdhbnQgdG8gc3VwcG9ydCBoYXMgbXVsdGlwbGUsIHNvDQo+PiBzdHJpY3RseSBzcGVha2lu
ZyBpdCBpcyBub3QgdGhlIG9uZSB0aGF0IHdlIGltcGxlbWVudC4NCj4gSXQncyBwb3NzaWJsZSBv
biB4ODYgdG8gaGF2ZSBtdWx0aXBsZSBFQ0FNIHJlZ2lvbnMsIHdoZXRoZXIgdGhhdCBtZWFucw0K
PiBtdWx0aXBsZSBob3N0IGJyaWRnZXMsIG9yIGhvc3QgYnJpZGdlcyBoYXZpbmcgbXVsdGlwbGUg
RUNBTSByZWdpb25zIGlzDQo+IHVua25vd24gdG8gbWUuIEl0J3MgYWxsIHJlcG9ydGVkIGluIHRo
ZSBNQ0ZHIEFDUEkgdGFibGUgKHNlZSBQQ0kNCj4gRmlybXdhcmUgZG9jdW1lbnQgZm9yIHRoZSBk
ZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBNQ0ZHKSB1c2luZyB0aGUNCj4gIkNvbmZpZ3VyYXRpb24g
U3BhY2UgQmFzZSBBZGRyZXNzIEFsbG9jYXRpb24gU3RydWN0dXJlIiwgYW5kIHRoZXJlIGNhbg0K
PiBiZSBtdWx0aXBsZSBvZiB0aG9zZSBzdHJ1Y3R1cmVzLg0KQXMgd2UgYXJlIGN1cnJlbnRseSBz
dXBwb3J0aW5nIGdlbmVyaWMgRUNBTSBob3N0IGJyaWRnZSB3aGljaA0KaGFzIGEgc2luZ2xlIEVD
QU0gcmVnaW9uIEkgdGhpbmsgdGhlIGV4aXN0aW5nIGNvZGUgd2UgaGF2ZSBhbmQNCmFib3V0IHRv
IHVwc3RyZWFtIGlzIG9rIGFzIGlzIGZvciBub3cuDQpJIG93biBhIGJyaWRnZSB3aGljaCBoYXMg
MiBFQ0FNIHJlZ2lvbnMsIHNvIEkgd2lsbCB3b3JrIHRvd2FyZHMNCmFkZGluZyBpdHMgc3VwcG9y
dCBzb29uLg0KPg0KPj4gQXJtIGZvbGtzLCBkbyB3ZSB3YW50IHRoaXMgZ2VuZXJhbGl6YXRpb24g
YXQgdGhpcyBtb21lbnQgdG8gYWxpZ24gd2l0aCB4ODYNCj4+IHdpdGggdGhpcyByZXNwZWN0Pw0K
Pj4NCj4+IFdlIGNhbiBsaXZlIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2ggYW5kIHdoZW4gSSBo
YXZlIG15IGRyaXZlciBpbXBsZW1lbnRlZA0KPj4gSSBjYW4gc2VuZCBwYXRjaGVzIHRvIG1ha2Ug
dGhhdCBnZW5lcmFsaXphdGlvbi4NCj4+Pj4gLyoNCj4+Pj4gICAgwqAqIDI1NiBNQiBpcyByZXNl
cnZlZCBmb3IgVlBDSSBjb25maWd1cmF0aW9uIHNwYWNlIGJhc2VkIG9uIGNhbGN1bGF0aW9uDQo+
Pj4+ICAgIMKgKiAyNTYgYnVzZXMgeCAzMiBkZXZpY2VzIHggOCBmdW5jdGlvbnMgeCA0IEtCID0g
MjU2IE1CDQo+Pj4+ICAgIMKgKi8NCj4+Pj4gI2RlZmluZSBHVUVTVF9WUENJX0VDQU1fQkFTRcKg
wqDCoCB4ZW5fbWtfdWxsb25nKDB4MTAwMDAwMDApDQo+Pj4+ICNkZWZpbmUgR1VFU1RfVlBDSV9F
Q0FNX1NJWkXCoMKgwqAgeGVuX21rX3VsbG9uZygweDEwMDAwMDAwKQ0KPj4+Pg0KPj4+PiBTbywg
d2UgaGF2ZSB0aGUgYmFzZSBhZGRyZXNzIGFuZCBzaXplIG9mIHRoZSBlbXVsYXRlZCBFQ0FNIHNw
YWNlDQo+Pj4+IG5vdCBjb25uZWN0ZWQgdG8gdGhlIHJlYWwgaG9zdCBicmlkZ2UNCj4+Pj4+IEFu
ZCBmb3IgZG9tVXMgeW91IHJlYWxseSBuZWVkIHRvIGZpeCB2cGNpX3tyZWFkLHdyaXRlfSB0byBu
b3QNCj4+Pj4+IHBhc3N0aHJvdWdoIGFjY2Vzc2VzIG5vdCBleHBsaWNpdGx5IGhhbmRsZWQuDQo+
Pj4+IERvIHlvdSBtZWFuIHRoYXQgd2UgbmVlZCB0byB2YWxpZGF0ZSBTQkRGcyB0aGVyZT8NCj4+
Pj4gVGhpcyBjYW4gYmUgdHJpY2t5IGlmIHdlIGhhdmUgYSB1c2UtY2FzZSB3aGVuIGEgUENJIGRl
dmljZSBiZWluZw0KPj4+PiBwYXNzZWQgdGhyb3VnaCBpZiBub3QgcHV0IGF0IDAwMDA6MDA6MC4w
LCBidXQgcmVxdWVzdGVkIHRvIGJlLCBmb3INCj4+Pj4gZXhhbXBsZSwgMDAwMDowZDowLjAuIFNv
LCB3ZSBuZWVkIHRvIGdvIG92ZXIgdGhlIGxpc3Qgb2YgdmlydHVhbA0KPj4+PiBkZXZpY2VzIGFu
ZCBzZWUgaWYgU0JERiB0aGUgZ3Vlc3QgaXMgdHJ5aW5nIHRvIGFjY2VzcyBpcyBhIHZhbGlkIFNC
REYuDQo+Pj4+IElzIHRoaXMgd2hhdCB5b3UgbWVhbj8NCj4+PiBObywgeW91IG5lZWQgdG8gcHJl
dmVudCBhY2Nlc3NlcyB0byByZWdpc3RlcnMgbm90IGV4cGxpY2l0bHkgaGFuZGxlZA0KPj4+IGJ5
IHZwY2kuIEllOiBkbyBub3QgZm9yd2FyZCB1bmhhbmRsZWQgYWNjZXNzZXMgdG8NCj4+PiB2cGNp
X3tyZWFkLHdyaWV9X2h3KS4NCj4+IEkgc2VlLCBzbyB0aG9zZSB3aGljaCBoYXZlIG5vIGhhbmRs
ZXJzIGFyZSBub3QgcGFzc2VkIHRvIHRoZSBoYXJkd2FyZS4NCj4+IEkgbmVlZCB0byBzZWUgaG93
IHRvIGRvIHRoYXQNCj4gSW5kZWVkLiBXaXRob3V0IGZpeGluZyB0aGF0IHBhc3N0aHJvdWdoIHRv
IGRvbVVzIGlzIGNvbXBsZXRlbHkgdW5zYWZlLA0KPiBhcyB5b3UgYWxsb3cgZG9tVXMgZnVsbCBh
Y2Nlc3MgdG8gcmVnaXN0ZXJzIG5vdCBleHBsaWNpdGx5IGhhbmRsZWQgYnkNCj4gY3VycmVudCB2
UENJIGNvZGUuDQpXZWxsLCBteSB1bmRlcnN0YW5kaW5nIGlzOiB3ZSBjYW4gbGV0IHRoZSBndWVz
dCBhY2Nlc3Mgd2hhdGV2ZXINCnJlZ2lzdGVycyBpdCB3YW50cyB3aXRoIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uczoNCi0gInNwZWNpYWwiIHJlZ2lzdGVycyB3ZSBhbHJlYWR5IHRyYXAgaW4gdlBD
SSwgZS5nLiBjb21tYW5kLCBCQVJzDQotIHdlIG11c3Qgbm90IGxldCB0aGUgZ3Vlc3QgZ28gb3V0
IG9mIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlIG9mIGENCnNwZWNpZmljIFBDSSBkZXZpY2UsIGUu
Zy4gcHJldmVudCBpdCBmcm9tIGFjY2Vzc2luZyBjb25maWd1cmF0aW9uDQpzcGFjZXMgb2Ygb3Ro
ZXIgZGV2aWNlcy4NClRoZSByZXN0IGFjY2Vzc2VzIHNlZW0gdG8gYmUgb2sgdG8gbWUgYXMgd2Ug
ZG8gbm90IHJlYWxseSB3YW50Og0KLSBoYXZlIGhhbmRsZXJzIGFuZCBlbXVsYXRlIGFsbCBwb3Nz
aWJsZSByZWdpc3RlcnMNCi0gd2UgZG8gbm90IHdhbnQgdGhlIGd1ZXN0IHRvIGZhaWwgaWYgaXQg
YWNjZXNzZXMgYSB2YWxpZCByZWdpc3RlciB3aGljaA0Kd2UgZG8gbm90IGVtdWxhdGUuDQo+DQo+
IFJlZ2FyZHMsIFJvZ2VyLg0KPg0KVGhhbmtzLA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 06:20:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 06:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219020.379643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhQgO-0005HH-1U; Mon, 01 Nov 2021 06:20:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219020.379643; Mon, 01 Nov 2021 06:20:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhQgN-0005HA-TM; Mon, 01 Nov 2021 06:20:35 +0000
Received: by outflank-mailman (input) for mailman id 219020;
 Mon, 01 Nov 2021 06:20:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhQgN-0005H0-4B; Mon, 01 Nov 2021 06:20:35 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhQgM-0000lF-RK; Mon, 01 Nov 2021 06:20:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhQgM-0004Jp-DX; Mon, 01 Nov 2021 06:20:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhQgM-0007A3-D6; Mon, 01 Nov 2021 06:20:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4apeNeOLG+CTgYy7Ib3tUjxGSWWk988WIHqpzNCBe00=; b=57E1zaj2DRf/E0K9xdfc+ysqwb
	OCT4AV3tAybDwtIAfhy35mv4wk/8s3T6ss+h+++TwLTMCeVuD1tcBFFq4uOO2PezqJut0iK6fEOpk
	NXloZ5i/YwCUP4I4/nINDgQqjmx5nktFV12S8oQTjLDLYywNeFMlfORnyt6+sHhfq2ow=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165965-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 165965: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8bb7eca972ad531c9b149c0a51ab43a417385813
X-Osstest-Versions-That:
    linux=75fcbd38608c3ce9f4dc784f2ac8916add64c9a8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 06:20:34 +0000

flight 165965 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165965/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165963
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165963
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165963
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165963
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165963
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165963
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165963
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165963
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                8bb7eca972ad531c9b149c0a51ab43a417385813
baseline version:
 linux                75fcbd38608c3ce9f4dc784f2ac8916add64c9a8

Last test of basis   165963  2021-10-31 19:40:36 Z    0 days
Testing same since   165965  2021-11-01 01:11:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Linus Torvalds <torvalds@linux-foundation.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   75fcbd38608c..8bb7eca972ad  8bb7eca972ad531c9b149c0a51ab43a417385813 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 07:15:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 07:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219029.379657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhRXV-0001nd-9J; Mon, 01 Nov 2021 07:15:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219029.379657; Mon, 01 Nov 2021 07:15:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhRXV-0001nW-5N; Mon, 01 Nov 2021 07:15:29 +0000
Received: by outflank-mailman (input) for mailman id 219029;
 Mon, 01 Nov 2021 07:15:28 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhRXU-0001nQ-4E
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 07:15:28 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 7c4ca3fa-3ae3-11ec-853f-12813bfff9fa;
 Mon, 01 Nov 2021 07:15:26 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 7425F21940;
 Mon,  1 Nov 2021 07:15:25 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 43F7513A6F;
 Mon,  1 Nov 2021 07:15:25 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id bHgqDw2Uf2EUDwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 07:15:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c4ca3fa-3ae3-11ec-853f-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635750925; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=r6FGKgT06Ld/vcSRgRVis8UQzYQ5TV5B4bgVQp9hpX8=;
	b=qhGGp3wPZn7+Ep+ilDMdn45whwHVpqWRmFJW2ovNCQvapfF6BAI1P9d+ZzVCCmAElQNm/u
	h+z6UwrFIg2E5KOrgStgwet2+YPo2FB6W/bCLRtMnnOLYJIYnUgeLwgALE2dEtOyMN5Ueu
	/6JBp/1oZ4k32RLNNU2KxzeTRsriFVA=
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
References: <20211029142049.25198-1-jgross@suse.com>
 <11956c14-f1f7-70f0-40a6-aad31a264af6@oracle.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v3] xen/balloon: add late_initcall_sync() for initial
 ballooning done
Message-ID: <c5da2698-b160-c09e-3182-49b398238a3c@suse.com>
Date: Mon, 1 Nov 2021 08:15:24 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <11956c14-f1f7-70f0-40a6-aad31a264af6@oracle.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="COJXQdpbX4z5ODWfgEmsawsBVBn3I5KzV"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--COJXQdpbX4z5ODWfgEmsawsBVBn3I5KzV
Content-Type: multipart/mixed; boundary="KQiaAYVjRBpi8WygPvJf23tYGusrBX0kf";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
Message-ID: <c5da2698-b160-c09e-3182-49b398238a3c@suse.com>
Subject: Re: [PATCH v3] xen/balloon: add late_initcall_sync() for initial
 ballooning done
References: <20211029142049.25198-1-jgross@suse.com>
 <11956c14-f1f7-70f0-40a6-aad31a264af6@oracle.com>
In-Reply-To: <11956c14-f1f7-70f0-40a6-aad31a264af6@oracle.com>

--KQiaAYVjRBpi8WygPvJf23tYGusrBX0kf
Content-Type: multipart/mixed;
 boundary="------------1500FB9D13DDB86F0132D497"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------1500FB9D13DDB86F0132D497
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 29.10.21 23:46, Boris Ostrovsky wrote:
>=20
> On 10/29/21 10:20 AM, Juergen Gross wrote:
>> --- a/Documentation/ABI/stable/sysfs-devices-system-xen_memory
>> +++ b/Documentation/ABI/stable/sysfs-devices-system-xen_memory
>> @@ -84,3 +84,13 @@ Description:
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Control scrubbi=
ng pages before returning them to Xen for=20
>> others domains
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 use. Can be set=
 with xen_scrub_pages cmdline
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 parameter. Defa=
ult value controlled with=20
>> CONFIG_XEN_SCRUB_PAGES_DEFAULT.
>> +
>> +What:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /sys/devices/system/x=
en_memory/xen_memory0/boot_timeout
>> +Date:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 November 2021
>> +KernelVersion:=C2=A0=C2=A0=C2=A0 5.16
>> +Contact:=C2=A0=C2=A0=C2=A0 xen-devel@lists.xenproject.org
>> +Description:
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 The time (in seconds) to w=
ait before giving up to boot in case
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initial ballooning fails t=
o free enough memory. Applies only
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 when running as HVM or PVH=
 guest and started with less memory
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 configured than allowed at=
 max.
>=20
>=20
> How is this going to be used? We only need this during boot.

Of course. Will switch to module_param().

>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D update_schedule(=
state);
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 balloon_state =3D update_s=
chedule(balloon_state);
>=20
>=20
> Now that balloon_state has whole file scope it can probably be updated =

> inside update_schedule().

I can do that.

>> +=C2=A0=C2=A0=C2=A0 while ((credit =3D current_credit()) < 0) {
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (credit !=3D last_credi=
t) {
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 la=
st_changed =3D jiffies;
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 la=
st_credit =3D credit;
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (balloon_state =3D=3D B=
P_ECANCELED) {
>=20
>=20
> What about other states? We are really waiting for BP_DONE, aren't we?

Nearly. We are waiting for credit not being negative.

And in case of cancelled we know this won't happen without Xen admin
intervention.


Juergen

--------------1500FB9D13DDB86F0132D497
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------1500FB9D13DDB86F0132D497--

--KQiaAYVjRBpi8WygPvJf23tYGusrBX0kf--

--COJXQdpbX4z5ODWfgEmsawsBVBn3I5KzV
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmF/lAwFAwAAAAAACgkQsN6d1ii/Ey9Y
rwgAhVz+7UM3tuK3hUqp0dk1hAujtJ87PkZXQ9MFYWV5KiQfcu/v3cCMKzp+rIBPWST97fLwEcQ1
F7NcSrp2X6YNPSXIosf7qKphRqzMWWPdzxG7Y0hwqZfd9B/ZAoWwCUpmMsT/+kDddiQek9Z6KBKR
F5VRIzhCA8NpOFXCQwwmfjsJzNDh5uuhXzmSNG2rVPjohRR/swQdeDJ3tLhyQnil5SN15izOHOrI
vaku6BtUSTYTfk7n3KIFkvn5wfwKWvGX0Cwto0X1iacmmTx+N+fd6ELx4vMKedqnS2rwry94PbfZ
0Oiw2bRnmgLaobqXoGymS1wYydL17pMXLhqjs+WqLw==
=2nKM
-----END PGP SIGNATURE-----

--COJXQdpbX4z5ODWfgEmsawsBVBn3I5KzV--


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 07:21:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 07:21:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219036.379667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhRd5-0003BC-Ut; Mon, 01 Nov 2021 07:21:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219036.379667; Mon, 01 Nov 2021 07:21:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhRd5-0003B5-Rc; Mon, 01 Nov 2021 07:21:15 +0000
Received: by outflank-mailman (input) for mailman id 219036;
 Mon, 01 Nov 2021 07:21:14 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhRd3-0003Az-WA
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 07:21:14 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 4aa588e8-3ae4-11ec-853f-12813bfff9fa;
 Mon, 01 Nov 2021 07:21:12 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id CC9F21FD4D;
 Mon,  1 Nov 2021 07:21:11 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9853513A6F;
 Mon,  1 Nov 2021 07:21:11 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id akM/I2eVf2F/EAAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 07:21:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4aa588e8-3ae4-11ec-853f-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635751271; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=OiJvobuX3n+EKs/NhnXLnNLW7NKcWLIH/WcTQdqCZ8o=;
	b=I5K8caJmT6AxGK8R6Q6oIaoOxGSg79sI95p5WiZq1tU2uqNyf5stcBECg/L7SsHJ6NHsQD
	5WuNlPNJjZlUUjzPH0I/uVhA3gyvqVYsqnGiO6nFhKBNyuCACNQrCLbm137wpuSZKvTo18
	FVZZN/evzGDicGtdhvHqxbe9+vBGzgI=
Subject: Re: [PATCH v3] xen/balloon: add late_initcall_sync() for initial
 ballooning done
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org
References: <20211029142049.25198-1-jgross@suse.com>
 <11956c14-f1f7-70f0-40a6-aad31a264af6@oracle.com> <YXxzQhPvgAOkhGg/@mail-itl>
 <2365e65f-7431-4bf5-4ced-5e146776b9ac@oracle.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <0e32534b-c50f-d6ea-2927-dc763939dbcb@suse.com>
Date: Mon, 1 Nov 2021 08:21:10 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <2365e65f-7431-4bf5-4ced-5e146776b9ac@oracle.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="SatvGOBbXAB4GMvHz0933pF793czZeWDD"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--SatvGOBbXAB4GMvHz0933pF793czZeWDD
Content-Type: multipart/mixed; boundary="XMt9OejtjTyGiADg3Sqcf50uQJdI9RM6R";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org
Message-ID: <0e32534b-c50f-d6ea-2927-dc763939dbcb@suse.com>
Subject: Re: [PATCH v3] xen/balloon: add late_initcall_sync() for initial
 ballooning done
References: <20211029142049.25198-1-jgross@suse.com>
 <11956c14-f1f7-70f0-40a6-aad31a264af6@oracle.com> <YXxzQhPvgAOkhGg/@mail-itl>
 <2365e65f-7431-4bf5-4ced-5e146776b9ac@oracle.com>
In-Reply-To: <2365e65f-7431-4bf5-4ced-5e146776b9ac@oracle.com>

--XMt9OejtjTyGiADg3Sqcf50uQJdI9RM6R
Content-Type: multipart/mixed;
 boundary="------------C2DAF238F4CCA8207EC03136"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------C2DAF238F4CCA8207EC03136
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 30.10.21 01:44, Boris Ostrovsky wrote:
>=20
> On 10/29/21 6:18 PM, Marek Marczykowski-G=C3=B3recki wrote:
>> On Fri, Oct 29, 2021 at 05:46:18PM -0400, Boris Ostrovsky wrote:
>>> On 10/29/21 10:20 AM, Juergen Gross wrote:
>>>> --- a/Documentation/ABI/stable/sysfs-devices-system-xen_memory
>>>> +++ b/Documentation/ABI/stable/sysfs-devices-system-xen_memory
>>>> @@ -84,3 +84,13 @@ Description:
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Control=
 scrubbing pages before returning them to Xen for=20
>>>> others domains
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 use. Ca=
n be set with xen_scrub_pages cmdline
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paramet=
er. Default value controlled with=20
>>>> CONFIG_XEN_SCRUB_PAGES_DEFAULT.
>>>> +
>>>> +What:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /sys/devices/system=
/xen_memory/xen_memory0/boot_timeout
>>>> +Date:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 November 2021
>>>> +KernelVersion:=C2=A0=C2=A0=C2=A0 5.16
>>>> +Contact:=C2=A0=C2=A0=C2=A0 xen-devel@lists.xenproject.org
>>>> +Description:
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 The time (in seconds) to=
 wait before giving up to boot in case
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initial ballooning fails=
 to free enough memory. Applies only
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 when running as HVM or P=
VH guest and started with less memory
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 configured than allowed =
at max.
>>>
>>> How is this going to be used? We only need this during boot.
>>>
>>>
>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D update_schedul=
e(state);
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 balloon_state =3D update=
_schedule(balloon_state);
>>>
>>> Now that balloon_state has whole file scope it can probably be=20
>>> updated inside update_schedule().
>>>
>>>
>>>> +=C2=A0=C2=A0=C2=A0 while ((credit =3D current_credit()) < 0) {
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (credit !=3D last_cre=
dit) {
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
last_changed =3D jiffies;
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
last_credit =3D credit;
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (balloon_state =3D=3D=
 BP_ECANCELED) {
>>>
>>> What about other states? We are really waiting for BP_DONE, aren't we=
?
>> BP_DONE is set also as an intermediate step:
>>
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 balloo=
n_state =3D decrease_reservation(n_pages,
>>                                                             =20
>> GFP_BALLOON);
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (ba=
lloon_state =3D=3D BP_DONE && n_pages !=3D=20
>> -credit &&
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 n_pages < totalreserve_pages)
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 balloon_state =3D BP_EAGAIN;
>>
>> It would be bad to finish waiting in this case.
>=20
>=20
> RIght, but if we were to say 'if (balloon_state !=3D BP_DONE)' the wors=
t=20
> that can happen is that we will continue on to the next iteration=20
> without warning and/or panicing. Of course, there is a chance thaton th=
e=20
> next iteration the same thing will happen but I think chances of hittin=
g=20
> this race every time are infinitely low. We can also check for=20
> current_credit() again.
>=20
>=20
> The question is whether we do want to continue waiting if we are in=20
> BP_AGAIN. I don't think BP_WAIT is possible in this case although this =

> may change in the future and we will forget to update this code.

BP_EAGAIN should not stop waiting, as it might be intermediate in case
some caches or buffers are freed.


Juergen

--------------C2DAF238F4CCA8207EC03136
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------C2DAF238F4CCA8207EC03136--

--XMt9OejtjTyGiADg3Sqcf50uQJdI9RM6R--

--SatvGOBbXAB4GMvHz0933pF793czZeWDD
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmF/lWYFAwAAAAAACgkQsN6d1ii/Ey80
KAf/Qqdw1mA/ijbb+odtKZ9Vua+VXes2bJWyzjxtQ/zKSRUvqcJ7qttbzmLt2A6ar2pscUiUGG5H
CVFIfzxKE3qXV7IlkEtyQ7bRFpL0Y7YjH5HnhM4mr6bttQZX6qwQDvGuNwLwkTP6bD4TVmN/wNoD
U1sjdad8E2Ay8a7+rbuVdii7lJ5RgrzXBnKVJDqqztYiWh/WgjC0r2kiCP46ZqVtimwzr6T7cB+5
f/OxmURztozz9NrXxmM7ST2XvAi4CBerYJAtr+KQvJg+3BD24MLRLg2JHX8ZIVrt2U7vjlKH1CAW
2c2ZsVpDv5xTgO4Y9SjpUqBsXz+x+K8GHgnadzjSfg==
=8Vp5
-----END PGP SIGNATURE-----

--SatvGOBbXAB4GMvHz0933pF793czZeWDD--


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 08:28:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 08:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219049.379678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhSfm-00017e-Bq; Mon, 01 Nov 2021 08:28:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219049.379678; Mon, 01 Nov 2021 08:28:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhSfm-00017X-8i; Mon, 01 Nov 2021 08:28:06 +0000
Received: by outflank-mailman (input) for mailman id 219049;
 Mon, 01 Nov 2021 08:28:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhSfl-00017N-Id; Mon, 01 Nov 2021 08:28:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhSfl-0003M2-Br; Mon, 01 Nov 2021 08:28:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhSfl-0003p8-0Z; Mon, 01 Nov 2021 08:28:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhSfl-0005fo-06; Mon, 01 Nov 2021 08:28:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=aGyxY3Ufz9Vf5IKAtfJoDWtnkcnqgcC20YUA6xwA7a0=; b=0dDjjr/ylRXVQrrsfi86mrr9Hf
	VDqG+L1aRXukeh73btCI5JqwTUb0hMb6lL6qqhU+njj7KYd1P1YEhRFq5m21LxCepBoflori2BbvV
	/2m5IPBisf6EueJwgz/MYlmmh++4WoYo9NHTGO9/E87NW3hMnURHikVFe0Sj9NH60L0I=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165967-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 165967: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-i386-xsm:xen-build:fail:regression
    qemu-mainline:build-i386:xen-build:fail:regression
    qemu-mainline:build-armhf:xen-build:fail:regression
    qemu-mainline:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-amd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-i386:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-coresched-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:build-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:build-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-intel:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=af531756d25541a1b3b3d9a14e72e7fedd941a2e
X-Osstest-Versions-That:
    qemuu=50352cce138ef3b30c1cda28a4df68fff5da3202
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 08:28:05 +0000

flight 165967 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165967/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-xsm                6 xen-build                fail REGR. vs. 165682
 build-i386                    6 xen-build                fail REGR. vs. 165682
 build-armhf                   6 xen-build                fail REGR. vs. 165682

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-cubietruck  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-amd  1 build-check(1)               blocked n/a
 test-amd64-i386-pair          1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-i386  1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-amd64  1 build-check(1)               blocked  n/a
 test-amd64-coresched-i386-xl  1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 build-i386-libvirt            1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-intel  1 build-check(1)             blocked n/a
 test-amd64-i386-xl            1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-pvshim     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64  1 build-check(1)         blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1)  blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-i386-xl-qemuu-ovmf-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-win7-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-ws16-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-shadow     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-vhd        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165682
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                af531756d25541a1b3b3d9a14e72e7fedd941a2e
baseline version:
 qemuu                50352cce138ef3b30c1cda28a4df68fff5da3202

Last test of basis   165682  2021-10-19 21:09:14 Z   12 days
Failing since        165694  2021-10-20 18:09:12 Z   11 days   31 attempts
Testing same since   165952  2021-10-31 00:39:26 Z    1 days    5 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexey Baturo <baturo.alexey@gmail.com>
  Alexey Baturo <space.monkey.delivers@gmail.com>
  Alistair Francis <alistair.francis@wdc.com>
  Anatoly Parshintsev <kupokupokupopo@gmail.com>
  Andrew Jones <drjones@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  BALATON Zoltan <balaton@eik.bme.hu>
  Bin Meng <bmeng.cn@gmail.com>
  Chenyi Qiang <chenyi.qiang@intel.com>
  Chih-Min Chao <chihmin.chao@sifive.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cédric Le Goater <clg@kaod.org>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  David Gibson <david@gibson.dropbear.id.au>
  David Hildenbrand <david@redhat.com>
  Dr. David Alan Gilbert <dgilbert@redhat.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Frank Chang <frank.chang@sifive.com>
  Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
  Gavin Shan <gshan@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Greg Kurz <groug@kaod.org>
  Gustavo Romero <gromero@linux.ibm.com>
  Igor Mammedov <imammedo@redhat.com>
  Jason Wang <jasowang@redhat.com>
  John Snow <jsnow@redhat.com>
  John Wang <wangzhiqiang02@inspur.com>
  John Wang <wangzq.jn@gmail.com>
  Jose Martins <josemartins90@gmail.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Luc Michel <lmichel@kalray.eu>
  Luis Pires <luis.pires@eldorado.org.br>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Mathieu Poirier <mathieu.poirier@linaro.org>
  Michael S. Tsirkin <mst@redhat.com>
  Mingwang Li <limingwang@huawei.com>
  Oğuz Ersen <oguzersen@protonmail.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Krempa <pkrempa@redhat.com>
  Philipp Tomsich <philipp.tomsich@vrull.eu>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Shuuichirou Ishii <ishii.shuuichir@fujitsu.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  Tong Ho <tong.ho@xilinx.com>
  Travis Geiselbrecht <travisg@gmail.com>
  Vincent Palatin <vpalatin@rivosinc.com>
  Vivek Goyal <vgoyal@redhat.com>
  Xueming Li <xuemingl@nvidia.com>
  Yanan Wang <wangyanan55@huawei.com>
  Yifei Jiang <jiangyifei@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               fail    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   fail    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           blocked 
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-i386-xl                                           blocked 
 test-amd64-coresched-i386-xl                                 blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     blocked 
 test-amd64-i386-freebsd10-amd64                              blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          blocked 
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-armhf-armhf-xl-cubietruck                               blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         blocked 
 test-amd64-i386-freebsd10-i386                               blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         blocked 
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 blocked 
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    blocked 
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              blocked 
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      blocked 
 test-amd64-i386-xl-vhd                                       blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 6076 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 09:18:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 09:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219057.379693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhTSS-0005zG-Eu; Mon, 01 Nov 2021 09:18:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219057.379693; Mon, 01 Nov 2021 09:18:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhTSS-0005z9-Az; Mon, 01 Nov 2021 09:18:24 +0000
Received: by outflank-mailman (input) for mailman id 219057;
 Mon, 01 Nov 2021 09:18:24 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WR8P=PU=epam.com=prvs=1939429689=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhTSR-0005z3-P2
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 09:18:24 +0000
Received: from mx0a-0039f301.pphosted.com (unknown [148.163.133.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id a8ba9ec2-3af4-11ec-8541-12813bfff9fa;
 Mon, 01 Nov 2021 09:18:22 +0000 (UTC)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A168FMq007737;
 Mon, 1 Nov 2021 09:18:20 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2109.outbound.protection.outlook.com [104.47.17.109])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c292p0wa2-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 01 Nov 2021 09:18:20 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM4PR0301MB2196.eurprd03.prod.outlook.com (2603:10a6:200:4d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Mon, 1 Nov
 2021 09:18:17 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.019; Mon, 1 Nov 2021
 09:18:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8ba9ec2-3af4-11ec-8541-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=T5Tlvma2oC5gnBLY2mlN7QvG5+OF3mvH9OrcFnDUxrz1hSRlSgyB8NSjXUA+kFH+kY0HbiON8uzylSJjvExUkP6PF5ta3T12Z3ChI2GkQSXUhkxeFyjYhcTnvP6GQZIy2OpBCm1AuF5jy5BiPBGSGW6pNMd9DvuZ8UJ8hMEgGwNcUtTqjm8ifW3cSpaSfwybqF0wmxEB48+KzCI7+vf/dd+6sYsFo4XwNOnEqN7XjziYhWBJad6C4zIdQqS65j0PLhuJZGYGBeh6zsYP4M72PWaGQOqEuqE/rIeSYesjutzM9PafnfPLeoV4JHvwg33dIMWJ/nwO6zj76YHcnv0w3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uz7GenSZfn/VssXRB9AyKZjXNmfL2O/ny5JPCnHLnA8=;
 b=g4r8dZPyARjpDB1O+RSPYm4GMoCuBM5kU76lRa19qcsj45YCvS9+3WugfA4mk5ne85fR1wok9gdJmEL0pM09lsUlRmhzxg3u9EToSMWy7o/byENPwWQra5cKP4L5pWPU8rcRrtzeS1MMKh56BJeflwuq1Ns5kbvF8F5hOaqZPyuxW4oVc4J4ZLj8JPHBpfx6vAzwCZpqEVnxRByQioIGYUDgxZfV/2jc1gec17uFfQt2th67UOo0TOhzX28rBkTdjL2/MykaWrdKoxcJt72xKAfZYJkbNNpdFwL4ObBdJakZsuO6Z9TCTQ+q0a3PTvzrytLfTmU776ipLZmNx6yY1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uz7GenSZfn/VssXRB9AyKZjXNmfL2O/ny5JPCnHLnA8=;
 b=Q5LDCFtBRr8lNIEEk6TF4PHBw0OJ8vHZY37O07Bj2xy3DyVdBi5bvPignLrAmUI1shD4R0xw4G727hs+zm1j8BZ/2CdpcMXkoumG5ZigJmkOjLTiosAffF/Mq2S1+v92dL8r9gnyuBsulQclJ6Xrj7i+SYTyg+tkYLne/gDTTqNPrwMQYQIqpE7WvmSB50Mm37pY717VgZMHghh7Xf82K9f7a6VQiGCzDPVIpuuWbgHIv8JOmQWKOZz4I4CTVHpRY1YDs/ULnj10D/+lJVXkrzUFVP1lIOp71gQMJMB6pzlurEXaYDNn3qDF+8iUjjoJaZC/GrOzaFvUEbNR/h4YJw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "jbeulich@suse.com" <jbeulich@suse.com>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 04/11] vpci/header: Add and remove register handlers
 dynamically
Thread-Topic: [PATCH v3 04/11] vpci/header: Add and remove register handlers
 dynamically
Thread-Index: AQHXtdAhL3wGQmCTxkGG8eG4L2Ylc6vkA8CAgAqTbQA=
Date: Mon, 1 Nov 2021 09:18:17 +0000
Message-ID: <ba1fea82-e2db-89af-b48d-56d393bd4ce8@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-5-andr2000@gmail.com>
 <YXbRsbzLxZs94v0Z@MacBook-Air-de-Roger.local>
In-Reply-To: <YXbRsbzLxZs94v0Z@MacBook-Air-de-Roger.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ed8a2f69-8f98-4714-814d-08d99d188a6f
x-ms-traffictypediagnostic: AM4PR0301MB2196:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM4PR0301MB219690DCCD75794603514B61E78A9@AM4PR0301MB2196.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 0KVtpfkWSbgpVr2RkUJEbq9cw9NlZZkJHcDj4DDP3XZQORDFQx3GqdfYIY6MRhscB5giW7cCJVYaxOhb/TcnjBipqHDzbOPsNBA41ECyXOaykzFSPsxBQpR+1cFWpXoo+5cnvDvd2RFHfGSFfnFMoanQI8Te10MKZRkSe2dTP2ieoa6qjRW+yqYjYaooWU/coI80DtU3OB2Z1rWhjuzfmcdYRddFDzMwQ/tOoPzB4Ehl2EPorgbuElxwtSlSWYstdlUyYD7xS06mUSpAEYbycW4UdKc3N16mTavrBhZkzfjhAuKRR5NlYc/82ZIzjeJJu5jG3wgslbmFJl3Bet8o72+PxFO5VddfWo3gVFgE4O9CBBqbPKd0U8vvuCQdDSJqVDvCLmnPeXkL/nuk4dnmD8H2msKjcs8xqYy7C+cc5rTQQIKuA0s14lN+ASCQBrqAh2DdnQDiiXzjF9O6JHNKGdhqW6ACXDAx8W3eqJhQUSf5Am5ZyB6vi8Eq02kBzr3UdrUHRgdZVFjpNWeX7xGNdUTPeCGAKAuEi+kzLAeR8PIdGmAl2ScGzs2dzqg2wL/HDQrCi5K734MQ535/TRxdkrCoWCVDgaFWnc34RwE6/oeYowXl81P35CaT3faKghRlAOnHHrhM4maKcMduyCP6DO4EEGnsTnaycPZ5IcB9Jfrx1fsdAwmX5dTVoXlXlkcqkFC452UJsY6AqEozyhI9FkX6ijjNiQcl06CD9rUhREqLeXQyl09Vq+e6G2lfkSsu
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(66446008)(66556008)(6916009)(66946007)(2616005)(31686004)(66476007)(2906002)(36756003)(64756008)(186003)(54906003)(71200400001)(31696002)(26005)(86362001)(316002)(6512007)(6486002)(4326008)(91956017)(6506007)(8936002)(76116006)(38070700005)(8676002)(107886003)(122000001)(508600001)(38100700002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?SnZhUjZJN1dkZkRra1d3UGZyZjVEMVFibUJ3dm1xZDFIQVNnM1NHaHhpNU1C?=
 =?utf-8?B?WHB2UDlwc1k4blVtREFMYmVJWnBPcUFUMWlGNnJtdWszTGt6RXZHcnpTNXhn?=
 =?utf-8?B?c0lMbWdScnAyNXVMZlV4YjBVVUl6Rysxb0VlSG9HY21jNnhIMUN3L2plY3Fh?=
 =?utf-8?B?dHZueno1NEowenFUa1JJeGc1Z0J2ZFY1dkU5Si81SXZKQWwwZDZvdi9DWUIr?=
 =?utf-8?B?UEVQNHM3V0k5TktwdGpYNXhuajNvWEFlVXJPdm85MVF6WUZCL3NRQS9GZ3lG?=
 =?utf-8?B?ekJSQzVMUGlEdnhiY2hxQmdCMWlGa2JIV2YySXV6NVYwdmRrOFZWMTIzNWFj?=
 =?utf-8?B?SFRWeDZWMXBzVER5UWN2NlhqMDYxY3AwZ1VnKzljZVZERFBib0xTYzBmWnMz?=
 =?utf-8?B?Nm1KOHhSZEl4RlkxYkdpQTlnYkxhTUxYUWhqcXFrMlVSbmdNNml2bWFWL2du?=
 =?utf-8?B?R3pXK0VoRnNYK0hYRHhROVIvNFpZK3VtcEtmSCtVTjM5NnBGOWlqNzVQTlNw?=
 =?utf-8?B?b1pJNFZZUi9pdnBna2ZPc2pZRUtTelZ5WWxEcGdqamFKWFhXRk9CYkxjZWZx?=
 =?utf-8?B?ZTJGeDRpQzV3ZW1DcU1IQ3ovR3I4ZGhMLzRrYkVtdG5BR0ptK3lhcVB5Skdq?=
 =?utf-8?B?Q3hhemN2aEEyV01hSURvcGFWOHpUZUxNYS9iRE93cmtVN0FQYUpqTGtWMlFU?=
 =?utf-8?B?Y0d3Q1FtRTIvNGxlQXNTVjk4WUdEYTBaZEovSURwcGdsSnE3N096Wjgzazhs?=
 =?utf-8?B?ejUwUlpsMEZqTWtXTVJCSzZIUlJ5MFVoQmRhOHZWZUoyOVhVVVE4VEZLR295?=
 =?utf-8?B?Q2EzUVNSZ0Q0L0xiUFY2L1htWVVZUlhxMXV0bWRCSTZhWGFEY2FvaGI3RVpo?=
 =?utf-8?B?L3FtdG1LY0JUYXVDcnk2QWwrR0FvNXZtdFRreVM4TkRkYTdZV1VLbUpTT1p0?=
 =?utf-8?B?cHRzMHVTWUdiNVdoVEIrREFVczlpVFZzY3Z2KzlEc25lT1lRaXErRFJYQWdC?=
 =?utf-8?B?TG44TWZjek1DOTY5WEJ2SExyWHhlQ201OEZxYlIvMno4YjlYNG5TT01lRnl6?=
 =?utf-8?B?Y0puUFdOWmw3aW5Nd0RPZlk2Y1N1cERkV1J0cWxKbzlRRUxSSitwOHNPUVRE?=
 =?utf-8?B?K21qR3BrZllKaTZxc1BMdmFHVStWQ3BDZTQ1YkNYUDhabENENnQ1STFKdUR3?=
 =?utf-8?B?czBHdFk1VTBvdjhEZzEvMk5tTG1tMjJNVUgwU1pMTnhaNGgvREZ6bG8vdUxN?=
 =?utf-8?B?ZmloaG5ob1h3RDlreXltckNza3hXaTdhR3pTWlkxOEw5U2VJVm93TDU2dTJW?=
 =?utf-8?B?U3QzZWVvZTZKM05Ua3E4QW5ST2V1UTRNRzJoM0l4YjVlSFNwOHNNekVVRTV0?=
 =?utf-8?B?MUMzQUFDVkVpY3ZOSTdMUmQ4T0VJcGZCSkNaZDIyZzBTWGp1VE1FdFpHeXpP?=
 =?utf-8?B?RzVFMHBwQ1JIdXlYU1N2WCtsNUl5TE9GNHR6Mmh4WC9BcDZQdEtOT1VqNE9I?=
 =?utf-8?B?dXBYV1J5Um9BN29ldUkveVUzd2RqVEEzT0xyRmpTREFrdVVBUGViNnUreFpa?=
 =?utf-8?B?UmJlZ2dKOTFyNmlhR3hCZjZtMCtsTUJORUR6R3Y0WnNCTlB1aVBOQXo0eVZa?=
 =?utf-8?B?ZXVBc2FTNEx1Qkp3TlV1OWVnMnJObjdpMVZqQ1RvYzNjcVBkeVAxN1h3WUJq?=
 =?utf-8?B?WDcwUzdvQzlzMFVBcFpXQTlXQkZQdWhTbVUvUEFKK1BHdEZwaXh4aWFmY1Ju?=
 =?utf-8?B?TmJ4cG5TMjNqbEJwbGZMNGZKNk9wSndjVmVYU09BeUw0YzFMQlRHN0NKNVZY?=
 =?utf-8?B?TERPWW1EaXJ4b0lvU0UzSlRHNUtZSGVzR1hoM1l0S0VvR3ZMSnRpUDBjQ1FR?=
 =?utf-8?B?NmZYMlB0dHgrWWkrWG9ZeUFrL0xZWjkrRStCY3BiVTRNbzJmS2UrUDZ3T0x3?=
 =?utf-8?B?dnY1V1Boa2NScVRvM2VyU2Nid0FrRC9BNVZwYVhnaXo0T01MaU1hanZWWVJI?=
 =?utf-8?B?RVJpVkhqMXVUTXhLckxhK1N3Y01WeWVSWmVidEgwUmRDbUtQdnd2amNKK2Rs?=
 =?utf-8?B?UXkwZ2QzZmN0d09meEJpM3lHZ1JFaEZTaVkwYmY3NWRsTWw2aS9ETnRveFNS?=
 =?utf-8?B?cWE1S2l4YXIybHdSWWNaU2VFVC8zWjVtU1pMT2tvMWU4NWNVbnEyaVAyWGtr?=
 =?utf-8?B?ZTlVVUg1Z1IwV2pxVnU3R2lHdnBhN1pIdDBRNURXeUloalg3RXdkTDVYSkcv?=
 =?utf-8?B?anJIdXF0b3BqT0wvZkZHUU0zZUF5YjV4V3ljSDhkekpDa09rZ205UW15dE52?=
 =?utf-8?B?YllkampSbi9Qb3RhQzVtWlJ4NFJpRXFseEpCNVE2TVV2SmtnRm12UT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <745CC0E63735CD4EB16128084B05B135@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed8a2f69-8f98-4714-814d-08d99d188a6f
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2021 09:18:17.6268
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5mgolVra7lGJyNZxyvTr2vJojdcNdY1k/LVh6UclfLNHJDefc9iSIYRxQyYcWYZ7eN058Tw4bkvqr/VoHRueUf90p3Fr+wHejkmmTTPQt3X72eJCkf5LLNsQmBuFIqxR
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0301MB2196
X-Proofpoint-GUID: Au2-IJp1iOgDy2x3ttkHmqkFvab5dSZK
X-Proofpoint-ORIG-GUID: Au2-IJp1iOgDy2x3ttkHmqkFvab5dSZK
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-01_03,2021-10-29_03,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0
 impostorscore=0 mlxscore=0 malwarescore=0 phishscore=0 priorityscore=1501
 lowpriorityscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111010053

DQo+PiArICAgIGlmICggcmMgKQ0KPj4gKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwNCj4+
ICsgICAgICAgICAgICAgICAgICIlcHA6IGZhaWxlZCB0byBhZGQgQkFSIGhhbmRsZXJzIGZvciBk
b20lcGQ6ICVkXG4iLA0KPj4gKyAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIGQsIHJjKTsN
Cj4+ICsgICAgcmV0dXJuIHJjOw0KPj4gK30NCj4+ICsNCj4+ICtpbnQgdnBjaV9iYXJfcmVtb3Zl
X2hhbmRsZXJzKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpw
ZGV2KQ0KPj4gK3sNCj4+ICsgICAgLyogUmVtb3ZlIHByZXZpb3VzbHkgYWRkZWQgcmVnaXN0ZXJz
LiAqLw0KPj4gKyAgICB2cGNpX3JlbW92ZV9kZXZpY2VfcmVnaXN0ZXJzKHBkZXYpOw0KPj4gKyAg
ICByZXR1cm4gMDsNCj4+ICt9DQo+PiArI2VuZGlmDQo+PiArDQo+PiAgIC8qDQo+PiAgICAqIExv
Y2FsIHZhcmlhYmxlczoNCj4+ICAgICogbW9kZTogQw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2
ZXJzL3ZwY2kvdnBjaS5jIGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+IGluZGV4IDBmZTg2
Y2IzMGQyMy4uNzAyZjdiNWQ1ZGRhIDEwMDY0NA0KPj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS92
cGNpLmMNCj4+ICsrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jDQo+PiBAQCAtOTUsNyArOTUs
NyBAQCBpbnQgdnBjaV9hc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0cnVj
dCBwY2lfZGV2ICpkZXYpDQo+PiAgICAgICBpZiAoIGlzX3N5c3RlbV9kb21haW4oZCkgfHwgIWhh
c192cGNpKGQpICkNCj4+ICAgICAgICAgICByZXR1cm4gMDsNCj4+ICAgDQo+PiAtICAgIHJldHVy
biAwOw0KPj4gKyAgICByZXR1cm4gdnBjaV9iYXJfYWRkX2hhbmRsZXJzKGQsIGRldik7DQo+PiAg
IH0NCj4+ICAgDQo+PiAgIC8qIE5vdGlmeSB2UENJIHRoYXQgZGV2aWNlIGlzIGRlLWFzc2lnbmVk
IGZyb20gZ3Vlc3QuICovDQo+PiBAQCAtMTA1LDcgKzEwNSw3IEBAIGludCB2cGNpX2RlYXNzaWdu
X2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2KQ0KPj4g
ICAgICAgaWYgKCBpc19zeXN0ZW1fZG9tYWluKGQpIHx8ICFoYXNfdnBjaShkKSApDQo+PiAgICAg
ICAgICAgcmV0dXJuIDA7DQo+PiAgIA0KPj4gLSAgICByZXR1cm4gMDsNCj4+ICsgICAgcmV0dXJu
IHZwY2lfYmFyX3JlbW92ZV9oYW5kbGVycyhkLCBkZXYpOw0KPiBJIHRoaW5rIGl0IHdvdWxkIGJl
IGJldHRlciB0byB1c2Ugc29tZXRoaW5nIHNpbWlsYXIgdG8NCj4gUkVHSVNURVJfVlBDSV9JTklU
IGhlcmUsIG90aGVyd2lzZSB0aGlzIHdpbGwgbmVlZCB0byBiZSBtb2RpZmllZCBldmVyeQ0KPiB0
aW1lIGEgbmV3IGNhcGFiaWxpdHkgaXMgaGFuZGxlZCBieSBYZW4uDQo+DQo+IE1heWJlIHdlIGNv
dWxkIHJldXNlIG9yIGV4cGFuZCBSRUdJU1RFUl9WUENJX0lOSVQgYWRkaW5nIGFub3RoZXIgZmll
bGQNCj4gdG8gYmUgdXNlZCBmb3IgZ3Vlc3QgaW5pdGlhbGl6YXRpb24/DQo+DQo+PiAgIH0NCj4+
ICAgI2VuZGlmIC8qIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUICovDQo+PiAgIA0KPj4g
ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi92cGNpLmggYi94ZW4vaW5jbHVkZS94ZW4vdnBj
aS5oDQo+PiBpbmRleCBlY2MwOGYyYzBmNjUuLmZkODIyYzkwM2FmNSAxMDA2NDQNCj4+IC0tLSBh
L3hlbi9pbmNsdWRlL3hlbi92cGNpLmgNCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi92cGNpLmgN
Cj4+IEBAIC01Nyw2ICs1NywxNCBAQCB1aW50MzJfdCB2cGNpX2h3X3JlYWQzMihjb25zdCBzdHJ1
Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJlZywNCj4+ICAgICovDQo+PiAgIGJvb2wg
X19tdXN0X2NoZWNrIHZwY2lfcHJvY2Vzc19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2KTsNCj4+ICAg
DQo+PiArI2lmZGVmIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUDQo+PiArLyogQWRkL3Jl
bW92ZSBCQVIgaGFuZGxlcnMgZm9yIGEgZG9tYWluLiAqLw0KPj4gK2ludCB2cGNpX2Jhcl9hZGRf
aGFuZGxlcnMoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwNCj4+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsNCj4+ICtpbnQgdnBjaV9iYXJfcmVt
b3ZlX2hhbmRsZXJzKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsDQo+PiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldik7DQo+PiArI2VuZGlmDQo+
IFRoaXMgd291bGQgdGhlbiBnbyBhd2F5IGlmIHdlIGltcGxlbWVudCBhIG1lY2hhbmlzbSBzaW1p
bGFyIHRvDQo+IFJFR0lTVEVSX1ZQQ0lfSU5JVC4NCj4NCj4gVGhhbmtzLCBSb2dlci4NCk9rLCBz
byBJIGNhbiBleHRlbmQgUkVHSVNURVJfVlBDSV9JTklUIHdpdGggYW4gYWN0aW9uIHBhcmFtZXRl
cjoNCg0KIlRoZXJlIGFyZSBudW1iZXIgb2YgYWN0aW9ucyB0byBiZSB0YWtlbiB3aGlsZSBmaXJz
dCBpbml0aWFsaXppbmcgdlBDSQ0KZm9yIGEgUENJIGRldmljZSBvciB3aGVuIHRoZSBkZXZpY2Ug
aXMgYXNzaWduZWQgdG8gYSBndWVzdCBvciB3aGVuIGl0DQppcyBkZS1hc3NpZ25lZCBhbmQgc28g
b24uDQpFdmVyeSB0aW1lIGEgbmV3IGFjdGlvbiBpcyBuZWVkZWQgZHVyaW5nIHRoZXNlIHN0ZXBz
IHdlIG5lZWQgdG8gY2FsbCBzb21lDQpyZWxldmFudCBmdW5jdGlvbiB0byBoYW5kbGUgdGhhdC4g
TWFrZSBpdCBpcyBlYXNpZXIgdG8gdHJhY2sgdGhlIHJlcXVpcmVkDQpzdGVwcyBieSBleHRlbmRp
bmcgUkVHSVNURVJfVlBDSV9JTklUIG1hY2hpbmVyeSB3aXRoIGFuIGFjdGlvbiBwYXJhbWV0ZXIN
CndoaWNoIHNob3dzIHdoaWNoIGV4YWN0bHkgc3RlcC9hY3Rpb24gaXMgYmVpbmcgcGVyZm9ybWVk
LiINCg0KU28sIHdlIGhhdmUNCg0KLXR5cGVkZWYgaW50IHZwY2lfcmVnaXN0ZXJfaW5pdF90KHN0
cnVjdCBwY2lfZGV2ICpkZXYpOw0KK2VudW0gVlBDSV9JTklUX0FDVElPTiB7DQorwqAgVlBDSV9J
TklUX0FERCwNCivCoCBWUENJX0lOSVRfQVNTSUdOLA0KK8KgIFZQQ0lfSU5JVF9ERUFTU0lHTiwN
Cit9Ow0KKw0KK3R5cGVkZWYgaW50IHZwY2lfcmVnaXN0ZXJfaW5pdF90KHN0cnVjdCBwY2lfZGV2
ICpkZXYsDQorwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBlbnVtIFZQQ0lfSU5JVF9BQ1RJT04gYWN0aW9uKTsNCg0KYW5kLCBm
b3IgZXhhbXBsZSwNCg0KQEAgLTQ1Miw2ICs0NTIsOSBAQCBzdGF0aWMgaW50IGluaXRfYmFycyhz
dHJ1Y3QgcGNpX2RldiAqcGRldikNCiDCoMKgwqDCoCBzdHJ1Y3QgdnBjaV9iYXIgKmJhcnMgPSBo
ZWFkZXItPmJhcnM7DQogwqDCoMKgwqAgaW50IHJjOw0KDQorwqDCoMKgIGlmICggYWN0aW9uICE9
IFZQQ0lfSU5JVF9BREQgKQ0KK8KgwqDCoMKgwqDCoMKgIHJldHVybiAwOw0KKw0KDQpJIHdhcyB0
aGlua2luZyBhYm91dCBhZGRpbmcgZGVkaWNhdGVkIG1hY2hpbmVyeSBzaW1pbGFyIHRvIFJFR0lT
VEVSX1ZQQ0lfSU5JVCwNCmUuZy4gUkVHSVNURVJfVlBDSV97QVNTSUdOfERFQVNTSUdOfSArIGRl
ZGljYXRlZCBzZWN0aW9ucyBpbiB0aGUgbGlua2VyIHNjcmlwdHMsDQpidXQgaXQgc2VlbXMgbm90
IHdvcnRoIGl0OiB0aGVzZSBzdGVwcyBhcmUgb25seSBleGVjdXRlZCBhdCBkZXZpY2UgaW5pdC9h
c3NpZ24vZGVhc3NpZ24sDQpzbyBleHRlbmRpbmcgdGhlIGV4aXN0aW5nIGFwcHJvYWNoIGRvZXNu
J3Qgc2VlbSB0byBodXJ0IHBlcmZvcm1hbmNlIG11Y2guDQoNClBsZWFzZSBsZXQgbWUga25vdyBp
ZiB0aGlzIGlzIHdoYXQgeW91IG1lYW4sIHNvIEkgY2FuIHJlLXdvcmsgdGhlIHJlbGV2YW50IGNv
ZGUuDQoNClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:02:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:02:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219070.379704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhU8N-0002TU-08; Mon, 01 Nov 2021 10:01:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219070.379704; Mon, 01 Nov 2021 10:01:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhU8M-0002TN-TF; Mon, 01 Nov 2021 10:01:42 +0000
Received: by outflank-mailman (input) for mailman id 219070;
 Mon, 01 Nov 2021 10:01:41 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xpFI=PU=citrix.com=christian.lindig@srs-us1.protection.inumbo.net>)
 id 1mhU8L-0002TH-4A
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:01:41 +0000
Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 46de0819-9b98-4733-bfff-01accc1dc286;
 Mon, 01 Nov 2021 10:01:39 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46de0819-9b98-4733-bfff-01accc1dc286
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635760899;
  h=from:to:subject:date:message-id:references:in-reply-to:
   mime-version;
  bh=nSNhAMMZwR2etgCvBoonjvY2KNUqKEcn8LpjiM0Tbdo=;
  b=CnHL1yW3LtuzJHBcf+k8wryhuW1icbpGoWgEQaBgss9AwbtdPEX2FvKC
   zOXkRk5rlOqFZAL4/ia1f36dIFq06/YDiP9S6SsyV3evEsZthLzKkbCpv
   8ShCGT7b7iFkmZIxykIXk5gzUV1/+qIbl3L9Gu30tTphEDeyQ9ew6NNG6
   c=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: /wgWEchqapL4E5TeNhRQhUnNm0qTCmmkIux/2M9Miz8Icj50M8UdvbzW7ciZScwekETAP3mxTE
 XdeiEK6SJRl4SSPw36rT8w6kZF8MihAl2D7CZI+qcrYvzXm9hDTLsT+GCWPIuGLDf8+QaIehx3
 gPJwBoj5tW8/9UeJka6AHzbO/54R9XYhotYUCvb82WpmzMEjH6yo5eKyUjcE+x1aJnIskWX/k6
 PSl4SMaURu/OY1my5/G0UDCG9TUxYHfoq/sfkCBwXgY3Bs/4TF2DGyzAs1h3OWqHR2eLV90HP8
 okgzJC5vAAGD/Kzo+VGuo5zl
X-SBRS: 5.1
X-MesageID: 58701657
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:sPuYr6ybFsS7l6XTIVd6t+elwSrEfRIJ4+MujC+fZmUNrF6WrkVTz
 WQZD2rSbPfZZGf8Lt1zYIy+8E9X7MWHn4cxQQZkqSAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6w7Vg2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt9F9w
 s1Mrq2rcDoGI5H1t/pMfgcAPggraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVors8jNsjwIIIWvDdkzDfVDPkOSpHfWaTao9Rf2V/cg+gTTamGP
 pRENlKDajzYbhFqHHMKMK5ljeDwnlP9Tx5WhkCs8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u12bkBhAXMvSPxDzD9Wij7sffkCW+VI8MGbmQ8v9xnEbV1mEVEAcRV1awvb++kEHWc9NAK
 WQE9yw2t68w+Ue3CN7nUHWQglSJoxodUNp4CPAh5UeGza+8yx2CGmEOQzpFadonnMw7Xzon0
 hmOhdyBONB0mOTLEzTHrO7S9G7sf3hORYMfWcMaZQoJ6cHiu7Aoty/gU+paP7Dko8OtNBill
 lhmsxMCr7kUiMcK0YCy8lbGny+gq/D1c+Il2unEdjn7t10kPeZJc6TtsAGGtqgYcO51W3HY5
 CBc8/Vy+tziGn1keMalZOwWVI+k6P+eWNE3qQ4+RsJxn9hBFpPKQGyx3N2cDBoxWirnUWWwC
 KM2he+2zMQLVEZGlYctP+qM5z0ClMAM7+jNWPHOdcZpaZNsbgKB9ywGTRfOhD2yyBVxy/FuZ
 cbznSOQ4ZAyU/4PIN2eHL917FPW7npmmTO7qW7TlkzPPUWiiI69Fu5ebQrmghER56KYugTFm
 +uzxOPRoyizpNbWO3GNmaZKdAhiBSFiWfje9pwGHsbec1EOMDxwVJfsLUYJJtUNc1J9zbyTo
 BlQmyZwlTLCuJEwAVzRNy04N++3Bf6SbxsTZEQRALph4FB6Ca6H56YDbZonO74h8e1o1/lvS
 PcZPc6HB5xypv7volzxtLHx895vcgqFnwWLM3b3aTQzZcc4FQfI5sXlbk3k8yxXVni7ss43o
 ruB0ALHQMVcG1Q+XZiOMP//nUmsuXU9mf5pWxeaKNdkZ0ixopNhLDb8j6FrLphUewnD3DaTy
 y2fHQwc+bvWu4Yw/dSQ3fKEoo6lHvFQBE1fG2WHv7+6OTODpjiowJNaUfbOdjfYDTum9KKnb
 ORT7vf9LPxYwwoa79siS+5mlPts6cHuqrlWyhVfME/KN1n7WKl9JnSm3NVUsvEfzLFupgbrC
 FmE/cNXOOvVNZq9QkIRPgcscs+KyeoQxmvJ9f0wLUj3uH138b6AXRkANhWAknUAfr58MYdjy
 uY9os8GrQe4j0NyYNqBiylV8UWKL2ABDPp75s1LXtezh1p50ExGbLzdFjTyscOGZNh7O0U3J
 iOZ2fjZjLNGy0ueK3c+GBAhBwaGaUjibPyS8GI/Gg==
IronPort-HdrOrdr: A9a23:2TdQ1K0CgXG49O/628ooXwqjBQByeYIsimQD101hICG9Lfb3qy
 n+ppsmPEHP5Ar5AEtQ5OxoS5PwPU80lKQFrrX5WI3CYOCIghrQEGgP1/qB/9SkIVyFygc/79
 YvT0EdMqyJMbESt6+Ti2PUc6dC/DDEytHSuQ639QY0cegAUdAF0+4NMHf8LqQAfnggOXNWLu
 v42uN34x6bPVgHZMWyAXcIG8LZocfQqZ7gaRkaQzY69Qinl1qTmf/HOind+i1bfyJEwL8k/2
 SAuRf+/L+fv/ayzQKZ/3PP7q5RhMDqxrJ4dYyxY4kuW3bRYzSTFcFcso65zXQISSaUmREXee
 z30lUd1gJImjXsly+O0ELQMkLboUkTAjfZuCGlaD3Y0JfErXsBerp8rJMcfR3D50U6utZglK
 pNwmKCrpJSSQjNhSLn+rHzJltXftrdmwtSrQc/tQ0WbWIlUs4bkWXfxjIgLL4QWCbhrIw3Gu
 hnC8/RoP5QbFOBdnjc+m1i2salUHg/FgqPBhFqgL3Y7xFG2HRii0cIzs0WmXkNsJo7Vplf/u
 zBdqBljqtHQMMaZb90QO0BXcy0AGrQRg+kChPeHX33UKUcf37doZ/+57s4oOmsZZwT1ZM33I
 /MVVtJ3FRCMn4Gyff+qqGj3iq9MllVbA6dvf22vaIJyYEUbICbRBG+dA==
X-IronPort-AV: E=Sophos;i="5.87,198,1631592000"; 
   d="scan'208,217";a="58701657"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JvCH74DJHPZi+6v7qmYLtpEHnOaF1TRNmBbxjyrG3J/WL9ohhZbgb2h+dx5nueLJJZAwNAL1VqhBAvOfAWsZV7bUwZ4LcPCMRD5swBN4zUp1RW7/9iJUl4Z6aBzXEIK6ym1UyIQQKt7f6U/djRKvYLR4nFiDT2sh9K+btgLIXkeBFn4sLGiBUO6dSj+CufmSTVRBjNxnEKrn4tOu1vzWvqD9r6mSDUmkB60u3dWSBwlsz55HVK+OGLPnaDDle2usct/Cs3CYkUpjM69VMLoTlQp+qrV+OCzL702ROopabAoEPFDR8lkmS5TwEmAdP7If/sBDo1HOCx+r70cDhArAJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nSNhAMMZwR2etgCvBoonjvY2KNUqKEcn8LpjiM0Tbdo=;
 b=Ot7Id9Y4SfGgkASQ4a+TBS7lozgAQoU00i9vkmoUQIrzyvcXukJWy+8IbTFI9foqLD6JMBu1pXJVyrnpWNTU/Xr2nYbL/IBUOV4NA7yCfUUoeNUgVVKTeHGu/Vj7fits+LRuwTyb2KxBFc6HrKUoxWK/ErhFaYYG3loCF5NHggzs26xlkp5g7rLZHPJS0Xa7aEs+zJEoZe/DqEZzXWnXzZHN1dDD+DoNIPaEsYORhKX5xGMZoMBL27eqc2dtQR7MHV8Bkw2R5CM0OAXeX51eVmCT4kB3HcQ5YVEzEyajT5iQGEfUWxHdX8lJ8P7TTVRNjOEbSjnWSP/Jx7Rfb829uA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nSNhAMMZwR2etgCvBoonjvY2KNUqKEcn8LpjiM0Tbdo=;
 b=mHQnnkCD48bWyA6EeGdZPQ1o6w9Md9me3qC+bCQf/yxFFuoBywde4etdMLJQZddcv/yN1tmGs+2GZqeO4q80Fh8qExQla5ND0zHRy/mzIxYxMd3ATt8wdxwzjqAVi8R9UtWDp9kyxD8cO0UO5AG/POM5i9NOlh66nytB/+8zuWM=
From: Christian Lindig <christian.lindig@citrix.com>
To: George Dunlap <George.Dunlap@citrix.com>, Ian Jackson
	<iwj@xenproject.org>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Julien Grall
	<julien@xen.org>, Christian Lindig <christian.lindig@citrix.com>, Edwin Torok
	<edvin.torok@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>, "Andrew
 Cooper" <Andrew.Cooper3@citrix.com>
Subject: Re: [PATCH for-4.16 2/2] xen: Report grant table v1/v2 capabilities
 to the toolstack
Thread-Topic: [PATCH for-4.16 2/2] xen: Report grant table v1/v2 capabilities
 to the toolstack
Thread-Index: AQHXzOvZgSsfTec4xkqJUFrx8c4E2qvudQ8A
Date: Mon, 1 Nov 2021 10:01:34 +0000
Message-ID: <3D777B2C-3744-425E-A5DC-2E6322891B01@citrix.com>
References: <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
 <20211029173813.23002-1-andrew.cooper3@citrix.com>
In-Reply-To: <20211029173813.23002-1-andrew.cooper3@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3608.120.23.2.4)
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 7f50b2ca-93ea-4e84-1538-08d99d1e96a1
x-ms-traffictypediagnostic: CO1PR03MB5713:
x-microsoft-antispam-prvs: <CO1PR03MB571370E2F85A26A82452BF28F68A9@CO1PR03MB5713.namprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Vy/Z/isUomSFwocxwFcoKKrYgowyB1F8NTHgjI8vaKWwxkiS7PCVF1J7OsF1HuH1W0oL5fVZf/u5xB5eJ9xVAcWGOPvlpRqq4KUI4VmkLx24SjKi1z9GmCbGt2Yff07xMBu9tTPifjvcsBqhGObcvyMDIQ4nRBpkPDecQOrFkqJ9g9XGzT/jEcvxSx/gBep6aA8UCs75KfDvE3ZUgNxRkbxOWo8PrUBR6+zq0sgJqQtfrSiWYxPe/5qs74rQ3j2VqmJLXWjeeiRYZxpWagoM89yipQoKJy4OKnIy6MRPaPn+27Es+WiKfatsd/zExzFhfxc9VpN7tMJ9J4JIHrUsA3bcKRJa1+5aaB6jW5vKzoiwzUxg/iOzAwVdqvrjxhxrE2+PGnhUYJyLBYqElMv/35qmerRMO7UXSTtJFBlb7+jDqsw4Y0p7XgOnoNRtQcfGWtjhQYVmcu0k8F4VcxW9cuPjA/T+7UUKXJ94uPcqFMB4o8dabqnTZFWbEVjdz8zpfVf8lOU1g6NKprGwf3sOkcrsjOT8dVZvglGvloU3vgXUKuHyMR1/NOpaev2SImWCh7u3QjJKABHMIUJnKVeSGSq+pparMQQgXiPnV6BD3ckY96amH+jIECuPCYAK3xwauEldBepIWMidK8iUZNq+pIBS+0DA08Iu/DWDgwFBmimz4VqcxoWinO+U9W6hriBnCJk+ld8L9wcBsuADqsdjr3/jLYOgqFYk57ENVre3C73gwO+5aEIaAF5AQ3PB1VAMrzUF+SYi+uvuKLg+duGq8g==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6380.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(44832011)(316002)(5660300002)(6506007)(6486002)(33656002)(6636002)(8676002)(186003)(4744005)(122000001)(8936002)(110136005)(53546011)(86362001)(83380400001)(38100700002)(66574015)(38070700005)(508600001)(66446008)(64756008)(66476007)(66556008)(6512007)(82960400001)(66946007)(71200400001)(91956017)(36756003)(921005)(76116006)(2616005)(2906002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U1UwUXZPeGsyMWx2c0o1cWNVQjhGRXB6R3l2Yi9MMUZyY3Z1QnRHTkZLSWVU?=
 =?utf-8?B?MjV3OVhoMHRGNnNnb0JuQ0I5MHlLWW1HZ3MveFdpbUdhKzRNMW5sblFWQi9t?=
 =?utf-8?B?bWxLWmJUMFcyM05sZVF5NmJWN2pUTUFURmVoWENCQXlKcWprUWtXNVVYTVJs?=
 =?utf-8?B?dWFLQ1pickdobVd4aEg4VmpBTnVINDh2WFQzRVNDL1Q3aUY3eWxVTFFsU2N3?=
 =?utf-8?B?dFlwdjNmV1ZnY2ZjZ3hqZ0tnVlpDOFhoK1d4RVArS2xQMy9ldFZPN2YrT1dk?=
 =?utf-8?B?K0RiOFkxSnhSUEpwTmpuRlRMTzVHbEJDTFVjOERCSUhmTTlkYi8xdlV4RTl3?=
 =?utf-8?B?ZGVSelBiajlycjZ3N2pUOGRrVHJxdjlYczU0VDM4NDlKN1kyTkgxTUJoRm1Z?=
 =?utf-8?B?OG5FOE1BcTIxbVQyM1hxOTVjOTFuREhpMVhOclk5Tk9DMGFsSEVJNisxWk9l?=
 =?utf-8?B?aDRSQ0NURDdGODM0cTdjNnJQaTZKM1VRYUNWczhTVVFqQ1loUm1XN3hWMktY?=
 =?utf-8?B?dnRsbUd4QW1FZXpHOU9vK00zVUlaQUtoSWRpSy9FQm5kMSs0RzBtYUc2ZEJB?=
 =?utf-8?B?SEUwYTdKOFBCMUJhUWtQU0FHMjU2NURqSXVZb2gvbDIrL3lXUlF0ajNJZFp1?=
 =?utf-8?B?RzR6MlUvV28zaVl3TjRFY0dlbm01eEZ0QU5Ldm9mM3Y5UTlyVzB4SzhPNENV?=
 =?utf-8?B?eVFQYVNEZ0dDaUpmQitwUmVRdnRRT0YyNThzUFk0eXZwZGhQWUNiaC9VVFhZ?=
 =?utf-8?B?SGVLR3pnZk9vb1R1dUFBdEJ1TmFnQzFZWWxXWHdLYnJqRmI2cnB4ODl0ckJq?=
 =?utf-8?B?Lzczd2tpUTNiVjQ1WTZXTU91VVFFdGJWdVZDTzBEdnJPcUxBNWRBb2M4RjhK?=
 =?utf-8?B?cUNMNjBqY2dPVnJCZnVwek52YzhYWUpLeHg2K0I1MWpBVW5UWnhiMmFDVUNH?=
 =?utf-8?B?SW1UaFhBSVc4dFgyZitKd3I1RXBaTHljV2xjWjNlcElhdWZzNGU3ZXNMbXFu?=
 =?utf-8?B?ZjVJZFNzY2huV0M3ckZKNGdCZUt6YmZuZXdBV3lkV29wemU0TUgzOFA3cDQx?=
 =?utf-8?B?WFNBM3FPYmNwZU9MbUpXNjNGdmFRNnFLRU0weUI0eXk2Q0twOEVUUlF5L3VM?=
 =?utf-8?B?WjM0MnpiMHBHV0VmQmNnK1VScURSNVpKRzRyODJqaTRtc01BaE1ibHBldENp?=
 =?utf-8?B?QzBNcndMSFpTRi9TMzNDQWpJSGF2NElRcnpKS1RIdEl5TUtVOFhuTjNGcjhZ?=
 =?utf-8?B?Z3hBRnpRVCt2OEkzV0hrdWZ3elVMQm1rVm10LytJUXpjdnFJOVdYN2p4aDMx?=
 =?utf-8?B?K1VhNnd3QnM1OGFESytEbkdrUCtVMmhjckZ6L1VMVkwzREhzeEhjLzEwOXN0?=
 =?utf-8?B?WnpKVHlOSkp3UjdLN0UvV3Y0UE1HNEc5eS9JT1FYRWUvZ2ZHMDBGamRZMVRI?=
 =?utf-8?B?RDlyODNDQ2JCenBrdnFvMjVqdWkyQWJmUHI3ZTBXTmFJWXpYWERjLy9JZGJU?=
 =?utf-8?B?RmgzTkRrTm1aSitaeTRGN2M3RUpoc1FybDZ3R3BUNEt5SXhlcmhYVWdVakpk?=
 =?utf-8?B?SDlwcitzL3VUd1A3SmZIM1djNTV2U01YbGwyL3FjdWs3cGNTOGJlOVlPcmJU?=
 =?utf-8?B?eUVLVnl3N2M4WEgyTDZYbDNpVFpNb3JhU0xFTGgrbTlmK2h6MUwySzBaSW1o?=
 =?utf-8?B?Y0VBZlYxcmkvWmF5Q29rdXBkVml2NzZKanlUSDR2YnRXYjdBTUtLVy9WRXRw?=
 =?utf-8?B?SWpGWll0R2JkdWJYb0F2cXRsWmxLRWNvelNWSGNYTC9OMk5qeGhsbVdhMUNX?=
 =?utf-8?B?THZhdVRzbHdiTnpWaFZtY1NnL0VnbzR4QnhWNFEyNER2MWJ5RENYZlo3bFRp?=
 =?utf-8?B?L3c3RVJoNzc1ZUdFVjBxQnJxMlpaN3lGTzlTSVdMS3FyRi9ucWYybC92L2Fq?=
 =?utf-8?B?OU1ES0JKOS9hc3B5SmE3ZlJYckQ1TkZUVE0wQTBkYkdkSE9SMXRwZkdxb3Nw?=
 =?utf-8?B?cm5SWXhHNEpYSDdVU0tFcFJUem5qbHVrNXFOMXI0Tm1MYk9VWStycGFWRkZt?=
 =?utf-8?B?OTFHNGdTMFUrWkNtUVF5cDBYZ096YkxzMEhsUmNraHh0S3p2SHFNSFYyMXJ0?=
 =?utf-8?B?Vm96YVV0czhPc0xIeWE1OUdoZ3h5Qk9BOXlhdDBJbWN2OXE2MDMyNFJ4cTV2?=
 =?utf-8?B?NkQzdW5zSXFFRHFLUE9KRTExOHVlZk1MQWcrQUZpdmNmY0F6cDlia2JLUmVo?=
 =?utf-8?Q?eHb2OyvhAP2ht4ja4TUNcSZKk30VQejmpfIMfbcTFE=3D?=
Content-Type: multipart/alternative;
	boundary="_000_3D777B2C3744425EA5DC2E6322891B01citrixcom_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6380.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f50b2ca-93ea-4e84-1538-08d99d1e96a1
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2021 10:01:35.0667
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /x301x0+OB6N/dOonYH8ikYc5+qz/IPLB3gQypmYmNvkUvGGhzEDHi2h+QWuXSUd8psWw1q254th7x0VfeAZNmYdqDEi214jNBdd2WcriWA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5713
X-OriginatorOrg: citrix.com

--_000_3D777B2C3744425EA5DC2E6322891B01citrixcom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQoNCk9uIDI5IE9jdCAyMDIxLCBhdCAxODozOCwgQW5kcmV3IENvb3BlciA8QW5kcmV3LkNvb3Bl
cjNAY2l0cml4LmNvbTxtYWlsdG86QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbT4+IHdyb3RlOg0K
DQpJbiBvcmRlciB0byBsZXQgdGhlIHRvb2xzdGFjayBiZSBhYmxlIHRvIHNldCB0aGUgZ250dGFi
IHZlcnNpb24gb24gYQ0KcGVyLWRvbWFpbiBiYXNpcywgaXQgbmVlZHMgdG8ga25vdyB3aGljaCBB
QklzIFhlbiBzdXBwb3J0cy4gIEludHJvZHVjZQ0KWEVOX1NZU0NUTF9QSFlTQ0FQX2dudHRhYl92
ezEsMn0gZm9yIHRoZSBwdXJwb3NlLCBhbmQgcGx1bWIgaW4gZG93biBpbnRvDQp1c2Vyc3BhY2Uu
DQoNClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5j
b208bWFpbHRvOmFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Pg0KLS0tDQpDQzogR2VvcmdlIER1
bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPG1haWx0bzpHZW9yZ2UuRHVubGFwQGV1
LmNpdHJpeC5jb20+Pg0KQ0M6IElhbiBKYWNrc29uIDxpd2pAeGVucHJvamVjdC5vcmc8bWFpbHRv
Oml3akB4ZW5wcm9qZWN0Lm9yZz4+DQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29t
PG1haWx0bzpKQmV1bGljaEBzdXNlLmNvbT4+DQpDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3Rh
YmVsbGluaUBrZXJuZWwub3JnPG1haWx0bzpzc3RhYmVsbGluaUBrZXJuZWwub3JnPj4NCkNDOiBX
ZWkgTGl1IDx3bEB4ZW4ub3JnPG1haWx0bzp3bEB4ZW4ub3JnPj4NCkNDOiBSb2dlciBQYXUgTW9u
bsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbTxtYWlsdG86cm9nZXIucGF1QGNpdHJpeC5jb20+Pg0K
Q0M6IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc8bWFpbHRvOmp1bGllbkB4ZW4ub3JnPj4N
CkNDOiBDaHJpc3RpYW4gTGluZGlnIDxjaHJpc3RpYW4ubGluZGlnQGNpdHJpeC5jb208bWFpbHRv
OmNocmlzdGlhbi5saW5kaWdAY2l0cml4LmNvbT4+DQpDQzogRWR3aW4gVMO2csO2ayA8ZWR2aW4u
dG9yb2tAY2l0cml4LmNvbTxtYWlsdG86ZWR2aW4udG9yb2tAY2l0cml4LmNvbT4+DQoNClRoZSBP
Q2FtbCBjaGFuZ2VzIGFyZSBwdXJlIG1lY2hhbmljcyAtIHNvIEnigJltIGZpbmUgd2l0aCB0aGVt
Lg0KDQpBY2tlZC1ieTogQ2hyaXN0aWFuIExpbmRpZyA8Y2hyaXN0aWFuLmxpbmRpZ0BjaXRyaXgu
Y29tPG1haWx0bzpjaHJpc3RpYW4ubGluZGlnQGNpdHJpeC5jb20+Pg0K

--_000_3D777B2C3744425EA5DC2E6322891B01citrixcom_
Content-Type: text/html; charset="utf-8"
Content-ID: <289E28B0D9CD9D40A96E3BF7AC63345D@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy
YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgbGluZS1icmVhazogYWZ0
ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCjxkaXYgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2Io
MCwgMCwgMCk7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZv
bnQtc2l6ZTogMTJweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9y
bWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5z
OiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zv
cm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd29yZC1zcGFjaW5n
OiAwcHg7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzsgLXdlYmtpdC10ZXh0LXN0cm9r
ZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IiBjbGFzcz0iIj4NCjxiciBjbGFz
cz0iQXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+DQo8YnIgY2xhc3M9IiI+DQo8YmxvY2txdW90
ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+T24gMjkgT2N0IDIwMjEsIGF0
IDE4OjM4LCBBbmRyZXcgQ29vcGVyICZsdDs8YSBocmVmPSJtYWlsdG86QW5kcmV3LkNvb3BlcjNA
Y2l0cml4LmNvbSIgY2xhc3M9IiI+QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbTwvYT4mZ3Q7IHdy
b3RlOjwvZGl2Pg0KPGJyIGNsYXNzPSJBcHBsZS1pbnRlcmNoYW5nZS1uZXdsaW5lIj4NCjxkaXYg
Y2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPkluIG9yZGVyIHRvIGxldCB0aGUgdG9vbHN0YWNrIGJl
IGFibGUgdG8gc2V0IHRoZSBnbnR0YWIgdmVyc2lvbiBvbiBhPGJyIGNsYXNzPSIiPg0KcGVyLWRv
bWFpbiBiYXNpcywgaXQgbmVlZHMgdG8ga25vdyB3aGljaCBBQklzIFhlbiBzdXBwb3J0cy4gJm5i
c3A7SW50cm9kdWNlPGJyIGNsYXNzPSIiPg0KWEVOX1NZU0NUTF9QSFlTQ0FQX2dudHRhYl92ezEs
Mn0gZm9yIHRoZSBwdXJwb3NlLCBhbmQgcGx1bWIgaW4gZG93biBpbnRvPGJyIGNsYXNzPSIiPg0K
dXNlcnNwYWNlLjxiciBjbGFzcz0iIj4NCjxiciBjbGFzcz0iIj4NClNpZ25lZC1vZmYtYnk6IEFu
ZHJldyBDb29wZXIgJmx0OzxhIGhyZWY9Im1haWx0bzphbmRyZXcuY29vcGVyM0BjaXRyaXguY29t
IiBjbGFzcz0iIj5hbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPC9hPiZndDs8YnIgY2xhc3M9IiI+
DQotLS08YnIgY2xhc3M9IiI+DQpDQzogR2VvcmdlIER1bmxhcCAmbHQ7PGEgaHJlZj0ibWFpbHRv
Okdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbSIgY2xhc3M9IiI+R2VvcmdlLkR1bmxhcEBldS5j
aXRyaXguY29tPC9hPiZndDs8YnIgY2xhc3M9IiI+DQpDQzogSWFuIEphY2tzb24gJmx0OzxhIGhy
ZWY9Im1haWx0bzppd2pAeGVucHJvamVjdC5vcmciIGNsYXNzPSIiPml3akB4ZW5wcm9qZWN0Lm9y
ZzwvYT4mZ3Q7PGJyIGNsYXNzPSIiPg0KQ0M6IEphbiBCZXVsaWNoICZsdDs8YSBocmVmPSJtYWls
dG86SkJldWxpY2hAc3VzZS5jb20iIGNsYXNzPSIiPkpCZXVsaWNoQHN1c2UuY29tPC9hPiZndDs8
YnIgY2xhc3M9IiI+DQpDQzogU3RlZmFubyBTdGFiZWxsaW5pICZsdDs8YSBocmVmPSJtYWlsdG86
c3N0YWJlbGxpbmlAa2VybmVsLm9yZyIgY2xhc3M9IiI+c3N0YWJlbGxpbmlAa2VybmVsLm9yZzwv
YT4mZ3Q7PGJyIGNsYXNzPSIiPg0KQ0M6IFdlaSBMaXUgJmx0OzxhIGhyZWY9Im1haWx0bzp3bEB4
ZW4ub3JnIiBjbGFzcz0iIj53bEB4ZW4ub3JnPC9hPiZndDs8YnIgY2xhc3M9IiI+DQpDQzogUm9n
ZXIgUGF1IE1vbm7DqSAmbHQ7PGEgaHJlZj0ibWFpbHRvOnJvZ2VyLnBhdUBjaXRyaXguY29tIiBj
bGFzcz0iIj5yb2dlci5wYXVAY2l0cml4LmNvbTwvYT4mZ3Q7PGJyIGNsYXNzPSIiPg0KQ0M6IEp1
bGllbiBHcmFsbCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmp1bGllbkB4ZW4ub3JnIiBjbGFzcz0iIj5q
dWxpZW5AeGVuLm9yZzwvYT4mZ3Q7PGJyIGNsYXNzPSIiPg0KQ0M6IENocmlzdGlhbiBMaW5kaWcg
Jmx0OzxhIGhyZWY9Im1haWx0bzpjaHJpc3RpYW4ubGluZGlnQGNpdHJpeC5jb20iIGNsYXNzPSIi
PmNocmlzdGlhbi5saW5kaWdAY2l0cml4LmNvbTwvYT4mZ3Q7PGJyIGNsYXNzPSIiPg0KQ0M6IEVk
d2luIFTDtnLDtmsgJmx0OzxhIGhyZWY9Im1haWx0bzplZHZpbi50b3Jva0BjaXRyaXguY29tIiBj
bGFzcz0iIj5lZHZpbi50b3Jva0BjaXRyaXguY29tPC9hPiZndDs8YnIgY2xhc3M9IiI+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8YnIgY2xhc3M9IiIgc3R5bGU9ImNh
cmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5
OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZh
cmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzog
bm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBw
eDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0
bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzsgLXdl
YmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij4NCjxk
aXYgY2xhc3M9IiIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGNvbG9yOiByZ2Io
MCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1z
dHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogbm9y
bWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBz
dGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNl
OiBub3JtYWw7IHdpZG93czogYXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1z
aXplLWFkanVzdDogYXV0bzsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRl
Y29yYXRpb246IG5vbmU7Ij4NClRoZSBPQ2FtbCBjaGFuZ2VzIGFyZSBwdXJlIG1lY2hhbmljcyAt
IHNvIEnigJltIGZpbmUgd2l0aCB0aGVtLjwvZGl2Pg0KPGRpdiBjbGFzcz0iIiBzdHlsZT0iY2Fy
ZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6
IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFy
aWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBu
b3JtYWw7IG9ycGhhbnM6IGF1dG87IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4
OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBhdXRv
OyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOyAtd2Vi
a2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsiPg0KPGJy
IGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiIHN0eWxlPSJjYXJldC1jb2xvcjogcmdi
KDAsIDAsIDApOyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBm
b250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5v
cm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFu
czogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNm
b3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IGF1dG87IHdvcmQtc3BhY2lu
ZzogMHB4OyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJv
a2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+DQpBY2tlZC1ieTogQ2hyaXN0
aWFuIExpbmRpZyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmNocmlzdGlhbi5saW5kaWdAY2l0cml4LmNv
bSIgY2xhc3M9IiI+Y2hyaXN0aWFuLmxpbmRpZ0BjaXRyaXguY29tPC9hPiZndDs8L2Rpdj4NCjwv
Ym9keT4NCjwvaHRtbD4NCg==

--_000_3D777B2C3744425EA5DC2E6322891B01citrixcom_--


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:22:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:22:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219078.379714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUS2-0004lT-Nz; Mon, 01 Nov 2021 10:22:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219078.379714; Mon, 01 Nov 2021 10:22:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUS2-0004lM-KU; Mon, 01 Nov 2021 10:22:02 +0000
Received: by outflank-mailman (input) for mailman id 219078;
 Mon, 01 Nov 2021 10:22:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhUS0-0004lC-P8; Mon, 01 Nov 2021 10:22:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhUS0-0005Il-HT; Mon, 01 Nov 2021 10:22:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhUS0-0001BV-5f; Mon, 01 Nov 2021 10:22:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhUS0-0002Rb-58; Mon, 01 Nov 2021 10:22:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HjdLn8NYCZVXodaBQP5/3Eui2l4kEtnkrRLeexdlT6g=; b=11cf+26zDSngiGSFj7YCBgrC28
	xSPw+KmmEge8oxCWNFCwcYkbLc0oCNa3IR77hRs1MRp2slf1jH1j+MV0lz4NRcEaeICsgO3UvK7yr
	yFnLmRG14A/k5XaKRZdAkbkdkOMrYL2jNuyOTEWzyu6vZkmE4pFxUElMVIZNt+Z17u7w=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165968-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 165968: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=301eb149cef569d4fb3a662bd9ef2460fb7c5e3b
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 10:22:00 +0000

flight 165968 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165968/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              301eb149cef569d4fb3a662bd9ef2460fb7c5e3b
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  479 days
Failing since        151818  2020-07-11 04:18:52 Z  478 days  464 attempts
Testing same since   165944  2021-10-30 04:20:11 Z    2 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 81290 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:25:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:25:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219087.379728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUVe-0005U8-FM; Mon, 01 Nov 2021 10:25:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219087.379728; Mon, 01 Nov 2021 10:25:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUVe-0005U1-CP; Mon, 01 Nov 2021 10:25:46 +0000
Received: by outflank-mailman (input) for mailman id 219087;
 Mon, 01 Nov 2021 10:25:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUVd-0005Tv-Iw
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:25:45 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUVd-0005M4-IG
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:25:45 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUVd-0005dG-HK
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:25:45 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhUVW-0004eC-QJ; Mon, 01 Nov 2021 10:25:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:CC:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=klPRxQC5wAKP9DcnwRGu1wZSa/yz5tGiI9VDXmMFkF4=; b=TTh9r5hUJskAU41XnnB35vtcDd
	NCp3n6waIoG7U+yiDoJQszPyRw7V0WA1wVxYYMBN0+Ub7tNgvRBhEbJltCpSyNroi0oKCgp7j8W5i
	LznlXsmrGINGNd8seg50AN/fAM/HXyU76k08C0tO282VeijnlKyKQjPAc7K87KfJexfo=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24959.49313.936961.936820@mariner.uk.xensource.com>
Date: Mon, 1 Nov 2021 10:25:37 +0000
To: Julien Grall <julien@xen.org>,
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    "sstabellini@kernel.org" <sstabellini@kernel.org>,
    Bertrand  Marquis <bertrand.marquis@arm.com>,
    Rahul Singh <rahul.singh@arm.com>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers [and 2 more messages]
In-Reply-To: <24953.34635.645112.279110@mariner.uk.xensource.com>,
	<24954.51153.588540.850154@mariner.uk.xensource.com>,
	<d7e4ae66-f648-e18e-79c8-fae6eb896f00@xen.org>
References: <20211027082533.1406015-1-andr2000@gmail.com>
	<cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
	<d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
	<65886734-7333-4469-fcc1-6916db708f13@xen.org>
	<b6bb02b6-6358-b5e0-1b80-7819aadabe10@epam.com>
	<6d8f1061-7aec-2c1a-aaf4-c30440c2797a@xen.org>
	<38da2edd-06a2-63d0-51ad-1284272c8da5@epam.com>
	<a74b52fb-6514-4187-17fe-b63236efa0ce@xen.org>
	<24954.51153.588540.850154@mariner.uk.xensource.com>
	<d7e4ae66-f648-e18e-79c8-fae6eb896f00@xen.org>
	<YXkU+DKYmvwo+kak@Air-de-Roger>
	<0bbe4d1d-421d-e816-42aa-f43581902a02@epam.com>
	<24953.34635.645112.279110@mariner.uk.xensource.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Julien Grall writes ("Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers"):
> On 28/10/2021 16:54, Ian Jackson wrote:
> > There are a number of patches that I'm getting CC'd on related to ARM
> > and vpci (according to the Subject).  Are these targeted for 4.16 ?
> > Most of them don't have 4.16 Subject tags.
> 
> Oleksandr wants this patch to be included for 4.16 but forgot to tag it 
> properly.

Oh yes.  However,

1. I also wrote this:

> > I am finding it difficult to see the wood for the trees.
> > It would be really helpful if these vpci fixes were collected
> > together into a series.

Can someone please confirm whether this is the only vpci-related patch
that ought to be on my radar for 4.16 ?

2. I have not had a reply to my question on Wednesday in
<24953.34635.645112.279110@mariner.uk.xensource.com>:

  Um, can you explain what the practical impact is of not taking this
  patch for 4.16 ?  As I understand it vpci for ARM is non-functional in
  4.16 and this is not expected to change ?  So there would be no
  benefit to users, and taking the patch would add small but nonzero
  risk ?

I need this information to decide whether a release-ack is
appropriate.

Note that we are in code freeze so all patches, including bugfixes,
need my ack.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:29:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:29:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219094.379739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUZ6-00066T-U0; Mon, 01 Nov 2021 10:29:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219094.379739; Mon, 01 Nov 2021 10:29:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUZ6-00066M-R8; Mon, 01 Nov 2021 10:29:20 +0000
Received: by outflank-mailman (input) for mailman id 219094;
 Mon, 01 Nov 2021 10:29:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhUZ5-00066C-8x; Mon, 01 Nov 2021 10:29:19 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhUZ5-0005QS-39; Mon, 01 Nov 2021 10:29:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhUZ4-0001Xq-QP; Mon, 01 Nov 2021 10:29:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhUZ4-0007Lm-Pq; Mon, 01 Nov 2021 10:29:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=A8aRuGUdwW76fh9NyJslLMtvZhN5PcfyD/9e88evkH0=; b=JgIaUYOI9wE3PDPQ26+SK7Alx2
	BQz0x0w064sUtNOBS3dG+u33dwmBvQWOsu38WgOf4ox7cMMMEDa46COoq3P3ZDhmcJzWngpKusoxw
	hc9ciuZaBC5BnrJPi4wpax55ah8MxdAD/Nf9cQSYLri8GHEwaHrrNuNNWjE6jQNF7zYY=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165969-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 165969: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=939c2355daaf94cd7eb2018d15928b9bc471d680
X-Osstest-Versions-That:
    ovmf=c8594a53119c72022f8ff5977b01e4e632ca7a04
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 10:29:18 +0000

flight 165969 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165969/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 939c2355daaf94cd7eb2018d15928b9bc471d680
baseline version:
 ovmf                 c8594a53119c72022f8ff5977b01e4e632ca7a04

Last test of basis   165962  2021-10-31 17:10:05 Z    0 days
Testing same since   165969  2021-11-01 04:41:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Star Zeng <star.zeng@intel.com>
  Zeng, Star <star.zeng@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   c8594a5311..939c2355da  939c2355daaf94cd7eb2018d15928b9bc471d680 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:35:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:35:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219102.379754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUf3-0007Wa-H5; Mon, 01 Nov 2021 10:35:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219102.379754; Mon, 01 Nov 2021 10:35:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUf3-0007WT-E6; Mon, 01 Nov 2021 10:35:29 +0000
Received: by outflank-mailman (input) for mailman id 219102;
 Mon, 01 Nov 2021 10:35:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUf2-0007WN-2K
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:35:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUf1-0005Wn-T1
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:35:27 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUf1-0006ED-S5
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:35:27 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhUet-0004g6-GO; Mon, 01 Nov 2021 10:35:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=IgsO6RvZpagWAUjAXUbFGYZO/EFRboyzBB0dtXio9vU=; b=DFJ5R6Nr+63bSRrUEkmvU/M5MX
	homWctrwF+bgnGJqeBZ8aR+4iUeDxMrzudaUKh3JTZ6G/Ml0DtrdMGfNoHrZlhS91tuHkaESFOBtt
	8ZypAEpBlJBkjagrtbXYzjvAgfflr3/DV++8Fm/TJcPWHKQWTl82zeY7RqZeAD0FwBFw=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24959.49895.14808.77881@mariner.uk.xensource.com>
Date: Mon, 1 Nov 2021 10:35:19 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Julien Grall <julien@xen.org>,
    Julien Grall <julien.grall.oss@gmail.com>,
    Michal Orzel <michal.orzel@arm.com>,
    xen-devel <xen-devel@lists.xenproject.org>,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
    Bertrand Marquis <bertrand.marquis@arm.com>,
    Ian Jackson <iwj@xenproject.org>
Subject: Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a
 lock
In-Reply-To: <alpine.DEB.2.21.2110281311030.20134@sstabellini-ThinkPad-T480s>
References: <20211026122903.15042-1-michal.orzel@arm.com>
	<e5632a4e-db98-41b4-1045-2b3532c098fa@xen.org>
	<70c30a6c-b779-805e-079a-41bb484894b9@xen.org>
	<cb452c0c-ccde-7798-c403-f972b48a2c46@arm.com>
	<01545115-e82e-2a9d-a8e4-da9676080c0f@xen.org>
	<alpine.DEB.2.21.2110271557570.20134@sstabellini-ThinkPad-T480s>
	<CAJ=z9a2SSgG7a87_xTGT5LeNLgubOLQf1+dbnrsTsP8_p5ErJg@mail.gmail.com>
	<alpine.DEB.2.21.2110271658330.20134@sstabellini-ThinkPad-T480s>
	<4554621d-63da-ea3e-e56a-4e01d0cef347@xen.org>
	<alpine.DEB.2.21.2110281311030.20134@sstabellini-ThinkPad-T480s>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Stefano Stabellini writes ("Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a lock"):
> In regards to this specific patch and also the conversation about 4.16
> or 4.17: I think it would be fine to take this patch in 4.16 in its
> current form. Although it is not required because PCI passthrough is
> not going to be complete in 4.16 anyway, I like that this patch makes
> the code consistent in terms of protection of rbtree accesses.  With
> this patch the arm_smmu_master rbtree is consistently protected from
> concurrent accesses. Without this patch, it is sometimes protected and
> sometimes not, which is not great.

It sounds like this is a possible latent bug, or at least a bad state
of the code that might lead to the introduction of bad bugs later.

So I think I understand the upside.

> So I think that is something that could be good to have in 4.16. But
> like you said, the patch is not strictly required so it is fine either
> way.

Can you set out the downside for me too ?  What are the risks ?  How
are the affected code paths used in 4.16 ?

A good way to think about this is: if taking this patch for 4.16
causes problems, what would that look like ?

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:42:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:42:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219109.379766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUlF-0000UU-99; Mon, 01 Nov 2021 10:41:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219109.379766; Mon, 01 Nov 2021 10:41:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUlF-0000UN-43; Mon, 01 Nov 2021 10:41:53 +0000
Received: by outflank-mailman (input) for mailman id 219109;
 Mon, 01 Nov 2021 10:41:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUlD-0000UH-Ec
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:41:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUlD-0005er-Ct
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:41:51 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUlD-0006dU-Bo
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:41:51 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhUlB-0004hS-AF; Mon, 01 Nov 2021 10:41:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Subject:Cc:To:Date:Message-ID:
	Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=LGAY6JByyaTzbZvnRQo5adss/es5KDPguVPyVv1DFTU=; b=o99Uf5n9p+JuHDvb4UvviktUw/
	ojJbcIwpXCD8KjV9wUxOi+fC4fQ6tsHtGKntwC7FAlUJLG3059IQIAC8GI1iiumyz4Avzcv7NP5oN
	4MLE2DeZS6TbXAz6sPB6p0I0CPnb1Y7rZpmRbq1mUiIngZX7z+PGOV5GMCnKfrcVP0yA=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24959.50284.690360.964111@mariner.uk.xensource.com>
Date: Mon, 1 Nov 2021 10:41:48 +0000
To: xen-devel@lists.xenproject.org
Cc: committers@xenproject.org
Subject: Xen 4.16 development update - commit moratorium

Tree status
===========

We are now in code freeze.

All patches which have not yet been committed, but which still need to
go into 4.16, need a release ack.

I will be cutting RC1 shortly.  Please do not commit anything, even
release-acked patches, until I let you know.


The current planned release schedule
====================================

    Friday 29th October *PASSED*          Code freeze

      Bugfixes only, all changes to be approved by the Release Manager,
      on the basis of a (progressively stricter[*]) risk assessment.
      (2 weeks)

    Friday 12th November                  Hard code freeze [*]

      Bugfixes for serious bugs (including regressions), and low-risk
      fixes only.
      (0.5 weeks)

    Tuesday 16th November **tentative**   Branch off staging-4.16

      xen-unstable open again - with caveats to avoid release disruption.
      (1.5 weeks)

    Friday 26th November **tentative**    Final commits (docs/prep only)
    Week of 29th November **tentative**   Release
      (probably Tuesday or Wednesday)


Open issues and blockers
========================

Here is the list of issues I am aware of that might be blockers and/or
might need a release ack for fixes:

In general, please would people explicitly note release-blocker issues
to me, so that I can see that they are sorted out.


* "gnttab: allow setting max version per-domain".  This would be
  nice to have, as it is a security mitigation for possible future
  bugs.  However it is not quite ready afaict.  Hopefully it will
  be ready very soon.

ARM/VPCI:

* "xen/arm: fix SBDF calculation for vPCI MMIO handlers"
  I have just sent a mail about this one.  I'm unsure of
  the merits of this for 4.16.

* "arm/smmuv1,v2: Protect smmu master list with a lock"
  Discussion is ongoing.

* "xen/domctl: Introduce XEN_DOMCTL_CDF_vpci flag"
  which Andy had some observations about in an email on the 8th.
  This was reverted in 2075b410ee80.  I think this issue now dealt
  with as far as 4.16 goes ?

* I'm not sure if there are others.  My question about that hasn't had
  a clear answer as far as I can tell.  I would like to repeat my
  earlier comment: I am finding it hard to see the wood for the trees.

x86:

* I have a note "HPET regression".  I saw a number of patches in
  this area.  Most recently,
  "x86/hpet: setup HPET even when disabled due to stopping in deep C states"
  Does that mean this is dealt with now ?

* "x86/xstate: reset cached register values on resume"
  AFAICT an approach was agreed between Jan and Roger but I don't
  seem to see the final version posted or in tree.  Am I missing
  something ?

* "x86/viridian: EOI MSR should always happen in affected vCPU context"
  Jan mentioned this on IRC but I don't see any discussion of it in
  my mailbox.

* Disable building qemu-trad by default.
  This is on my own todo list, with my maintainer/committer hat on.


Ian.

[*] The distinction between Code Freeze and Hard Code Freeze is a
matter of degree, not kind; the Hard Code Freeze data and associated
tighter policy text is indicative rather than normative.


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:42:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:42:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219113.379776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUlx-00012j-Fv; Mon, 01 Nov 2021 10:42:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219113.379776; Mon, 01 Nov 2021 10:42:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUlx-00012c-Cs; Mon, 01 Nov 2021 10:42:37 +0000
Received: by outflank-mailman (input) for mailman id 219113;
 Mon, 01 Nov 2021 10:42:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUlv-00012S-Rt
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:42:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUlv-0005ft-R5
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:42:35 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUlv-0006iv-QC
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:42:35 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhUls-0004hn-6c; Mon, 01 Nov 2021 10:42:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=dclReh29izfomgWHXfcknF+eYpx5n6eEAV5EVtuQulw=; b=zCCkSbiPBikme+d7lftzHA9nwE
	Y5Evo/9+yKykYOLDzWKFqsqjmE4tVfM7pkMHDGLXNAKBF8rB/V8IhEjPfDO7Ldqg3vho6r/0/Owcw
	pq8PcWEbwUy/52Wd6vY8CaiBQr2OnhYeh4Q00udnfasHeWYR0LwNzzb3dyeiPk1eq/jE=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24959.50327.734844.392991@mariner.uk.xensource.com>
Date: Mon, 1 Nov 2021 10:42:31 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH for-4.16 1/2] tools/golang: Regenerate bindings
In-Reply-To: <20211029173753.22892-1-andrew.cooper3@citrix.com>
References: <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
	<20211029173753.22892-1-andrew.cooper3@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("[PATCH for-4.16 1/2] tools/golang: Regenerate bindings"):
> This was missed previously.
> 
> Fixes: 1e6706b0d123 ("xen/arm: Introduce gpaddr_bits field to struct xen_domctl_getdomaininfo")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

(but note the mail I just sent about commit moratorium)


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:45:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219121.379787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUod-0001jn-Uz; Mon, 01 Nov 2021 10:45:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219121.379787; Mon, 01 Nov 2021 10:45:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUod-0001jg-Rn; Mon, 01 Nov 2021 10:45:23 +0000
Received: by outflank-mailman (input) for mailman id 219121;
 Mon, 01 Nov 2021 10:45:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUod-0001jH-1F
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:45:23 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUod-0005ia-0T
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:45:23 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUoc-00071l-W5
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:45:22 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhUoX-0004iN-Sa; Mon, 01 Nov 2021 10:45:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=1plTfpnwtv1MJ6kMNmgdFieQulEIKtABiY1scJ10MYA=; b=Xihxdn4LaJIPmLu3cE99YNIx3P
	KPrH3Gb5E3rUULX93A/A/ocbPa7KGBjY0xq0j2BUxAepGVI0CrPWF9O4LIjZynBcj3QlgyTDIhQ9Y
	oyo+q9x/EIsmr+j6ztfWxceH27enjg9ztpCYL9YAuPn7AyMpAE8TwIUZNeVbjNEXnO+Q=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24959.50493.371312.118964@mariner.uk.xensource.com>
Date: Mon, 1 Nov 2021 10:45:17 +0000
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
    <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    George Dunlap <george.dunlap@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    Julien Grall <julien@xen.org>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Anthony PERARD <anthony.perard@citrix.com>,
    Juergen Gross <jgross@suse.com>,
    Christian  Lindig <christian.lindig@citrix.com>,
    David Scott <dave@recoil.org>,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
    George Dunlap <George.Dunlap@eu.citrix.com>,
    Edwin =?iso-8859-1?Q?T=F6r=F6k?= <edvin.torok@citrix.com>
Subject: Re: [PATCH for-4.16 v4] gnttab: allow setting max version per-domain [and 1 more messages]
In-Reply-To: <YXz579WNpHe7aO91@Air-de-Roger>,
	<YX0qmTXBD3jSXjBI@Air-de-Roger>
References: <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
	<20211029173813.23002-1-andrew.cooper3@citrix.com>
	<YX0qmTXBD3jSXjBI@Air-de-Roger>
	<20211029075956.1260-1-roger.pau@citrix.com>
	<YXz579WNpHe7aO91@Air-de-Roger>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monn writes ("Re: [PATCH for-4.16 v4] gnttab: allow setting max version per-domain"):
> [...]

Roger Pau Monn writes ("Re: [PATCH for-4.16 2/2] xen: Report grant table v1/v2 capabilities to the toolstack"):
> [...]

FTAOD I think these patches are related and I see discussion is still
ongoing.  Thanks for the CCs.  I would like to make a release-ack
decision after the discussion has converged.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:47:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:47:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219127.379798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUqr-0002LF-DO; Mon, 01 Nov 2021 10:47:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219127.379798; Mon, 01 Nov 2021 10:47:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUqr-0002L8-85; Mon, 01 Nov 2021 10:47:41 +0000
Received: by outflank-mailman (input) for mailman id 219127;
 Mon, 01 Nov 2021 10:47:40 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=37jG=PU=citrix.com=Andrew.Cooper3@srs-us1.protection.inumbo.net>)
 id 1mhUqp-0002L2-VU
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:47:40 +0000
Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 914fc80a-dddd-4547-8fa6-689247351442;
 Mon, 01 Nov 2021 10:47:38 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 914fc80a-dddd-4547-8fa6-689247351442
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635763658;
  h=to:from:cc:subject:message-id:date:
   content-transfer-encoding:mime-version;
  bh=lpcIIIMk0BRMb5RwyYTYn2cRUb+VsDULAQQuRhoeBfI=;
  b=IfDay+86MjlUo7D42dhUuIrj5DyWuEnm6saohr/LScxgPU07LtqAYd6X
   gQ8QpHEwXZAOoMA+3EEGgQxu7uPFw9JqE2wUB5b7heTFsclXEYcXmGb6z
   z1YyRHTwsEtKcVHWTpZ2ty5lcbuI43owmP9hyPy+cyYPfU0DgZMWUJ8hx
   o=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: A4VzhuG7eaDX89sSDeDA8ay4tGv1vXUdYRJkyk4DC4Y7BlQ9DfKSg4g+AlvR5wqzzOxfmdT4qN
 XivkI9QO/HSQrxVttbE0Q1SrLi3myvW3FB19ogDgmJ5O/3Q32d8KhPZE2wGDcRNkNFPv5VSxRn
 f+iIi0ofp0iIO56exRjsacx2wtouo828D1w4bPI8r1B3hUkpAaGikp8zO+weBlRWv34jTI4emQ
 wdcsy/7SBa9ttiRhRVN8m2+5k5Qp5mATWiZFCi4uWJmTQcGmvq9Xq8jvbdfXC97IMC9DP7QOAD
 0XFXlT6TdWH+JqY984Ca/NE7
X-SBRS: 5.1
X-MesageID: 57161669
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:fUXky6v//SkRuSPUKaIYDQy1oOfnVDRYMUV32f8akzHdYApBsoF/q
 tZmKTuDaP7eY2X8foojYN638UIFu5aEn4c3QQQ//i4zQ39B+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YHhWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NpllMGeEC4RHo73h/UzXzBVPHBvPfVC9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DO
 JNHMGQxPXwsZTVWIQ87ArE8ndz13HvffA8JsFCyhIk4tj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKhMHMN2SzxKV/3TqgfXA9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03A
 04e9zcqrKMy3Fe2VdS7VBq9yFafpQIVUddUF+w86SmOx7DS7gLfAXILJhZIbN09qMY3X3okz
 FaPlNLyLSNju/ueTnf13ryTqzW1OyQcM24ZTSABRAoBpdLkpekbsBXLSdpyFb+vuff8Ezrw3
 jOioTA3gvMYistj/6+891rWjimsopXMRwgd6QDeX2bj5QR8DLNJfKTxtwKdt6wZat/EEB/R5
 xDohvRy8sgvUL/UvRStY94SDZ+lzvuqYSzc2VpgSsxJGyuWx1aveoVZ4TdbLUhvM9oZdTKBX
 HI/qT+997cIYiL0MPYfj5aZTp1zkPO+TYiNuuX8N4IWOvBMmBm7EDaCjKJ690TkiwASnK42I
 v93mu78XC9BWcyLINdbLtrxMIPHJAhjnQs/prihlnxLNIZyg1bOEd843KOmNLxR0U99iFy9H
 yxjH8WL0Q5Dd+b1fzPa94UeRXhTcyNmWsir9pYHJ7LSSuaDJI3HI6WLqV/GU9c995m5a8+Sp
 i3tMqOm4AOn7ZE4Fel6Qi86M+6+NXqOhXk6ITYtLT6VN4sLOu6SAFMkX8JvJ9EPrbU7pdYtF
 qVtU5jQU5xnF2WckxxAPMaVkWCXXEny7e54F3H+O2ZXkl8Jb1Ghx+IIiSO2r3RTVXXr7ZNWT
 n/J/lqzfKfvjj9KVa7+QPmu00mwrT4anudzVFHPOd5dZAPn940CFsA7pqZfzxgkJUqRyz2E+
 RyRBBtE9+DBr5VsqIvChLyerpfvGOx7RxIIE27e5LewFC/b4mv8ntMQDLfWJWjQBDHu5aGvR
 eRJ1PWgYvcJq0lH7thnGLFxwKNgu9a2/+1Gzh5pFWngZkiwDu8yOWGP2MRC7/UfxrJQtQasd
 FiI/91WZeeANM//SQZDLws5dOWTk/oTn2CKv/gyJUz74g5x/aaGDhoOb0Xd1nQFIeIsYo0/w
 OontMoH0CCFi0InYoSckyRZ12WQNXhcAa8pgY4XXd3wgQ0xx1AcPZGFUn3q4IuCYslnO1UxJ
 mPGn7LLgrlRyxaQc3c3EnSRj+NRiY5X5UJPxV4GYV+IhsDElrk82xgIqWY7SQFczxNm1eNvO
 zc0ax0pdPvWpzo41tJeW22MGh1aAEzL80P8/FIFiWnFQhT6TWfKNmA8Zb6A8U1xH7iwpdSHE
 GV0EFrYbAs=
IronPort-HdrOrdr: A9a23:4r9kKqwUoaxF3B3GDmQgKrPxyOskLtp133Aq2lEZdPULSKOlfp
 GV8MjziyWYtN9wYhAdcdDpAtjlfZquz+8J3WB3B8bZYOCGghrSEGgG1+XfKlLbalTDH4JmpM
 JdmstFeaPN5DpB/KDHCWCDer5Kqrn3k9HYuQ639QYTcegAUdAG0+4WMHf4LqQ7fng/OXJvf6
 Dsmvav6gDQMkg/X4CePD0oTuLDr9rEmNbPZgMHPQcu7E2rgSmz4LD3PhCE1lNGOgk/jIsKwC
 zgqUjU96+ju/a0xlv10HLS1Y1fnJ/ExsFYDMKBp8AJInHHixquZq5mR7qe1QpF6t2H2RIPqp
 3hsh0gN8N85zf4eXy0mwLk303a3DMn+xbZuCmlqEqmhfa8aCMxCsJHi44cWADe8VAcsNZ117
 8O936FtrJMZCmw0hjV1pztbVVHh0C0qX0tnao4lHpES7YTb7dXsMg24F5VKpEdByj3gbpXX9
 WGNPuspMq+TGnqLEww5gJUsZ6RtzUIb1u7q3E5y42oO2M8pgE986MarPZv6UvouqhND6Ws3N
 60QZiAoos+OvP+XZgNdNvpfvHHeFAlYSi8eV56cm6XXJ3uBRr22uvKCfMOlaaXRKA=
X-IronPort-AV: E=Sophos;i="5.87,199,1631592000"; 
   d="scan'208";a="57161669"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O8cExbAoPv3m/pdx3scSRgTftffwkdIWx7Qn1l1IVS+o7vd8Er4/wqXOKc0+LILKECNy52iOYFIUDLZd5r2KRETrLwSPQCYc8mhbHeu+ksFFRxEWdMmcL32u9L14GMxSpEziTA1/QqCTk+qjudNMhDelW1H9PGNSoH5FNt3dFeIzG3t2u+ndf7zl/mHyydBcO9B12LyNf2dX0HQfC4SZgp7rmepvGV9l0mpAyBrE/3Q0BepEvlkCmr8k4e8/BdgJqh0ddARuIV9dB5mHwqjAtp0GaspqUaYXPhxAk3GGJCLPn+2B6D9jt+CXBs/JSYECd6KNBA6UymEY77pUkTh1wg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lpcIIIMk0BRMb5RwyYTYn2cRUb+VsDULAQQuRhoeBfI=;
 b=nCZL0/6tq9cNbhUzSR0Af2nEw3S5hA+rDnqOlxI9MLP0PfA9TpGm90ycseOSL2tL/FYyHQQkcTDpX3EgCALyyWg71mJguBPrxq/aJ3GDpDl58QPqeO3TG4L3HCmxNo3bAXgVGMNgdjI/3cDAkOYy2iE2fIaVwohzjSZtKM5y8m9u+zOjTPabG0H/D7lOAa6Y+vMFdHwNVbqL0gIV+WSU4orv3jsHZ843TQ5GxPuMiK9hQw9JUg7vtOINF0gUIdbDTQklJsqEHB9lxfZAUWTnsqo/jgOA/hz2UCY++Xks0EY4cYwQZTfVECX1kf8P8Eg3SQI72g7618Pz6U59o3v6qg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lpcIIIMk0BRMb5RwyYTYn2cRUb+VsDULAQQuRhoeBfI=;
 b=oygw6KJdRf+rdNZPaS3DvyQF/VlIDB2/s5YyPLQlQWmoAjQ9C8txv+b4L6B6Lrlhi7PGxVfdqfzjsVlJhY0dCowKtwB5wxsMZn+5EZ2J3UfKy0ISVwP+Yr6D6894BQ2aOgb5v/tUA1QMI6ZOem2JfudR6nn159kFDU/6DSWO3m4=
To: xen-devel <xen-devel@lists.xenproject.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jane Malalane
	<jane.malalane@citrix.com>, Bobby Eshleman <bobbyeshleman@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>
Subject: Arch-neutral name for hardware interrupt support
Message-ID: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
Date: Mon, 1 Nov 2021 10:47:26 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LO4P265CA0050.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ac::16) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 32fbb3d3-4eaa-4890-1cf8-08d99d250318
X-MS-TrafficTypeDiagnostic: BYAPR03MB4552:
X-Microsoft-Antispam-PRVS: <BYAPR03MB45523A35381A70EA5409CFFEBA8A9@BYAPR03MB4552.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 57AqIwGJ9YBbU8i0/cYO30QTIvLWFUbIQOBjd7O9PjaCqgh5JOnCbzANzq3gHcZDkfVy9E522wi/7O8EnfswvqoQySO/sMRIyjsR45nxoeI3N0zdpnUwUSA+elsomQEXze5j89YuxWvJ1bATGt2az+q54WkDQoUI6hUd7flV/XNHjSygmEJ6pnrBKJQbpgk3GfTvNTnnCy2OJxLwh6+LKKZau0DIf2hX24BACF8nyzxVv11eAax+GV8gS2AVE2oMlUowefcYZHsKZWsV5cIp+EzHrCmG0U0V7CdE/ED4VynZjjFjnmLI2WCXXzA2MjfFdvDUvTJTYt4EW1jBJRimoe27GRK0bXh60emqqAn/zN466KALfhjnEJTpccyPq9FLfCrXRFt/8I+krsOSmqSzNx2eE73yP959kFyWDiDi1BnGTmU1fNRcGgcq8x4PX2wM4vSYTscJWHUXvWy5/9j2LvVFQD8YXb+WFH/NBko0kgenlz3JidbSDN/J1IGV0jS51Tp9fnGkxzhmIc7nfm+6D44554tujV5cHpG+UbtaW4ENU/6DMuy2E8U7D++1HT4A1OkseHso7+MNApaiHX8eGQXVk2Korl4CkUtrIlwUBsSU7qCtLd0/HoBTb3yLAKzMPrteyw0v04EQoe98hAkX8tzgvjPAv8X846mLFv4EKqkQ0hJi1StcLIpPSQ6s6pQ8RxU3xpu3TKwzhGQ/gT4Lnz+bFkDlO6IiiG/sFtq7ftAA+WXSCiiqlGCLet4mN6wA
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(4744005)(82960400001)(8676002)(5660300002)(38100700002)(36756003)(83380400001)(4326008)(31686004)(956004)(54906003)(2906002)(2616005)(66946007)(66476007)(66556008)(186003)(26005)(6486002)(16576012)(316002)(6916009)(8936002)(31696002)(6666004)(508600001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZERqdGlTaEoyQ2xmN0VPUjk1TWVSc1RqQXpsSDgrbWNLbVBZdVIzWlIwN0Iv?=
 =?utf-8?B?K3V1YzhrcHMxYzlKVlVPelJoaU44cG45bjhXcG1JV2liRGNLVEt4SHBHUGVQ?=
 =?utf-8?B?NFhKVVJ2VjFCd1R5V1pmc3RNd1B1TXBoVjlMWS83Ly9LU3A2ZFE3UGNWMkNh?=
 =?utf-8?B?MHdIYnBQY2RXaUp0YmxNbG1ZSmZ6V0MwZ25Ec0VNUmUzc1N4NG41UDJpTkd3?=
 =?utf-8?B?aUhETXhkTlVUUW0wNGRTRWxjOVl1dDdZTXRvdzJURHQrUTBYR3NjRDUwdEc4?=
 =?utf-8?B?bjF5aG9hTDhRQkdQOWV2T2M5MFFuU3dIMnYzOEF1cnBZVmlCdHhIYm9tN2xE?=
 =?utf-8?B?L1djYk0rU1BUOTRiUGZJTFo5UXptT3dNbjZPNXpReEprVnFvZE96blpMMWlI?=
 =?utf-8?B?WnJweExPRFBtT2RPd1k2RHpNQ3cwblFISldpZThwekxRMnJQUG51ZDlFSm1C?=
 =?utf-8?B?Q1B5Q09jdnFIR0Fud1ZLN0M4MFU2MlFHZStuL2RvRk1PbTE2OHZRNklOSFJo?=
 =?utf-8?B?a0Q3ZDZjbnExWEY0UlRTcUxBYURNVGs0cTRMVHRSZjdSOXZYUEVoY3RlNklY?=
 =?utf-8?B?UUVpTzViWFVsalA4SXJxYTBkbEx5cGlKSlJHZEtlLy9xRTJYSFUzVWNVN29p?=
 =?utf-8?B?VDFVSXk1YXZlTTFLVmRackFzazMyOUJNWVBINTNITFNoNjBMdk1xS0tnRDIv?=
 =?utf-8?B?QlRVOGZVUnE5SThoN0ppRDI0UjZhSmRoK1VBek5lOTErbVpjZXdxY0V2cEZt?=
 =?utf-8?B?MzFrUFNKVlIyUE44Y2JrOVU5Nm8zU2tDMFJHTVFocDA4SEpFanBibUZ3R1Rl?=
 =?utf-8?B?Mll1aTBaNzJQRWttV0FHMVpQYWprUkc0UnZqekhvVU90T21UQmNRQkxEcUJq?=
 =?utf-8?B?TnRTY2pmY2hzUGJFN0kwRjNhbHNZSUZTdlIzb3k3ZUpKaENrSndNRDl5NVA0?=
 =?utf-8?B?RUtCU29WUG15SjZBclNLbFlrWVJvUVBTd2VZMkhGWFYvZUQzUnE0d3hhVnEz?=
 =?utf-8?B?WnpaT3RPcDY2M1F3b3Vhdlc3SGl3VVlpcDRwbkY5WlRISStaZ283RU1sejJB?=
 =?utf-8?B?cU8vTDNpM0NTSVYxdGFXTlZ5VkFNekJpVHZ5MStPZGR2NXNBYmk0NW1pclA1?=
 =?utf-8?B?RlRqMlBzSjRrSXNtc2lVWTlZYzZKMUNrSTlySEhxTjMrdEZPVmlqb24xZmp2?=
 =?utf-8?B?VFFFRy8vWUhTZUxWbGkzUC9wQUd3TVhuWEwwaWYvc21VNmZHQjdiM0NJUFRO?=
 =?utf-8?B?WjExcmU1bGxkWmhBVWI0R2xjejVaUkczVDQ1a3BlQkNKdHl5TDNZa0JENXpp?=
 =?utf-8?B?RnJMdThCMkRDb1AyWEFTYUxveG14Y2tBcVBqdEV1TWlBM0lYRFcwSDZZZWIw?=
 =?utf-8?B?cm9MMzJQYUpzZURYREt1Smw2dWJycCtQZjlTWDlUOUZpd2RHU2FPVmxBZjZ1?=
 =?utf-8?B?S3NsbXhLSjBxeW5adjVRQlFUMkNDdHlPaVVOaGlYRXVEYkxTYzhJNUN3WTUz?=
 =?utf-8?B?dks4R0V6TUZUV2xtZjc5SEN4SDAvbHpSd1R2RCtWakV2K0xCWlNYbm1yc0Nz?=
 =?utf-8?B?Ty9HL3pjUVdzVldNa21IaFlwUmdLdFFMRVMzcituUGJBUEtLa0VQcExVd0VQ?=
 =?utf-8?B?bkh1MDlQRkxSNEhQdTJSbVY0ZWVXTklUSkNhV1BqR2ZjQjVaUWwvQ3JsMnIr?=
 =?utf-8?B?c3VYdkJDTkJqaWdBZ2lNSkczYTU3MHRmcGk2OVpuL3daZnVYZzFwU0xkekxE?=
 =?utf-8?B?RmZ1bjlFNjBKUWlZWjlEc3d6SmsxeGtvQ01zdW9aMm5pL0RMZGd1Z3A4OGpw?=
 =?utf-8?B?Nk8rQVhKUWttd1U5WDNhWHVMY1VFTXZTR1F1dXVCUytGSzRmSUJHUDZqM0lr?=
 =?utf-8?B?Y2l3L3d3Y1dYR2NUU0JvVVZNKytzZS9hQzYxRzdQQ1MrL0p6TnRRQnpVd1Iy?=
 =?utf-8?B?OE55Qk9EdHJDcnI1anF4Y09mcWdMV2l6WEEzOEc5cVRDT0k4S1JWZHJBNUI0?=
 =?utf-8?B?NVV1VkRaZGEvVmNGNDY3bkIwVVZtZjVvTGxTdjQzTGpRS0VLMExDNkFXTXpG?=
 =?utf-8?B?YWZnQVVBSnN2NjJFelJpVzZHN0dhMENCODdldm1mZHVndWNqeW81TFM5UzA5?=
 =?utf-8?B?UmxLMVdEN3JWNFZSaWZWYTN3VDAzWXNncWtPb0FwOVhlaXc3MkpYdzZJWGJC?=
 =?utf-8?B?c3JVdm4raEl0bnZuSU1KTlFvQ1JLdVN3WkFnd0xsVUFjemZrdG9xbGZRNE0x?=
 =?utf-8?B?WGFhdWM4aTBwVm5LcU9xc3hreEt3PT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 32fbb3d3-4eaa-4890-1cf8-08d99d250318
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2021 10:47:34.2247
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: O1ICEn0NZzeUp2meITV5X9o5WtpX22Z2L/1YM537Y2jOivcOaos/GofLdfyfBorD3r8FcrXVhngP/biulNeQqJnNmEOEDdYPluAV4QUZb1Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB4552
X-OriginatorOrg: citrix.com

Hello,

On ARM, the GIC is a hard prerequisite for VMs.

I can't remember what the state of RISCV is, but IIRC there is still
some debate over how interrupts are expected to work under virt.

On x86, the story is very different.=C2=A0 PV have no hardware assistance,
while HVM hardware assistance depends on hardware support.=C2=A0 Therefore =
we
want to introduce a new CDF flag so we can control the setting per
domain, rather than globally as it is done now.

This brings us to the question of what a suitable architecture name
would be.

Hardware Virtual Interrupts is a little too close to Hardware Virtual
(Machine) Introspection, and Hardware Assisted Interrupts (mirroring
HAP) doesn't seem great either.

Thoughts / ideas / suggestions?

~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 10:53:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 10:53:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219134.379809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUwG-0003my-46; Mon, 01 Nov 2021 10:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219134.379809; Mon, 01 Nov 2021 10:53:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhUwG-0003mr-0E; Mon, 01 Nov 2021 10:53:16 +0000
Received: by outflank-mailman (input) for mailman id 219134;
 Mon, 01 Nov 2021 10:53:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUwE-0003ml-61
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:53:14 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUwE-0005sp-3o
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:53:14 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhUwE-0007PP-2x
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 10:53:14 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhUwA-0004m2-HF; Mon, 01 Nov 2021 10:53:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=eqSXJmvGYSYN8Jbm1MOIHAN0UsdTuzQvjj8U2XBAlH4=; b=Z/biXH/9WdykyRd6SRFz9G+nlN
	4B1I2Gd0j4XoZE6HMZs4U1QTR8O6x0hOw6czfuGHSdcxbwXXCFtGmXYAQFdZB+y50yRj4pUMsOZ7s
	nMfRfteb7gX/BhUDbQPtSYb0LgQ1xgit7j2PazAjOHOUYjYxt5s86irNHllEJg5wdV/0=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24959.50965.967784.441954@mariner.uk.xensource.com>
Date: Mon, 1 Nov 2021 10:53:09 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
    Jan Beulich <JBeulich@suse.com>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware
In-Reply-To: <20211028232658.20637-1-andrew.cooper3@citrix.com>
References: <20211028232658.20637-1-andrew.cooper3@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("[PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware"):
> The `ljmp *mem` instruction is (famously?) not binary compatible between Intel
> and AMD CPUS.  The AMD-compatible version would require .long to be .quad in
> the second hunk.
> 
> Switch to using lretq, which is compatible between Intel and AMD, as well as
> being less logic overall.
> 
> Fixes: 5a82d5cf352d ("kexec: extend hypercall with improved load/unload ops")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
> CC: Ian Jackson <iwj@xenproject.org>
> 
> For 4.16.  This is a bugfix for rare (so rare it has probably never been
> exercised) but plain-broken usecase.
> 
> One argument against taking it says that this has been broken for 8 years
> already, so what's a few extra weeks.  Another is that this patch is only
> compile tested because I don't have a suitable setup to repro, nor the time to
> try organising one.

Thanks for being frank about testing.

The bug is a ?race? ?  Which hardly ever happens ?  Or it only affects
some strange configurations ?  Or ... ?

> On the other hand, I specifically used the point of binary incompatibility to
> persuade Intel to drop Call Gates out of the architecture in the forthcoming
> FRED spec.

I'm afraid I can't make head or tail of this.  What are the
implications ?

> The lretq pattern used here matches x86_32_switch() in
> xen/arch/x86/boot/head.S, and this codepath is executed on every MB2+EFI
> xen.gz boot, which from XenServer alone is a very wide set of testing.

AIUI this is an argument saying that the basic principle of this
change is good.  Good.

However: is there some risk of a non-catastrophic breakage here, for
example, if there was a slip in the actual implementation ?
(Catastrophic breakage would break all our tests, I think.)

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 11:11:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 11:11:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219143.379820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhVDF-000661-KA; Mon, 01 Nov 2021 11:10:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219143.379820; Mon, 01 Nov 2021 11:10:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhVDF-00065u-H2; Mon, 01 Nov 2021 11:10:49 +0000
Received: by outflank-mailman (input) for mailman id 219143;
 Mon, 01 Nov 2021 11:10:48 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=37jG=PU=citrix.com=Andrew.Cooper3@srs-us1.protection.inumbo.net>)
 id 1mhVDE-00065o-3O
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 11:10:48 +0000
Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 73a9e9df-6c53-4a0e-8bcd-e66fe9a6b346;
 Mon, 01 Nov 2021 11:10:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73a9e9df-6c53-4a0e-8bcd-e66fe9a6b346
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635765046;
  h=to:cc:references:from:subject:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=6A2Kejp7E1Z3kIVNaVPwjjztrx4ZwMw7mR7qAsGyyaU=;
  b=UcReTnXbmc+ZWFs7y9xiPGC9Dlwo4lxG4iTK+9Qk+pbC4hV21omlFgiW
   zVHCmL8yqmIg2t/mpEop5gW0YtKMWN63InLqhZ9uWyWCVpj4y+UMfKqxc
   d3fWUwuUy5rTvdpDUEymPzczaeVwYPnGPM9+iloKaY+6yWMVu1FqMGwtL
   Y=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: nQ4ShJkNYWf1JXsB26VfeZH5ry4xG3zrEmgmPSWP0LeWDHyzkQLjJK/Q/ockAuY5yjmx1JgupD
 pCxo1g3fubZ3nGGtnYjxVjsrUIFc1BM4YLd0GuS2s6/l04DNLmsV4uyQP3/6febYlVgQBaq8f9
 XEhOzd/NwU8Jym4YGnZ7tW9t7aYMi8Nr2ArIlufW/GhHYGCpXUSaKTafkbsUjTv/3BPbJXHGx+
 /UMq8DFsFS60nMFYZukLzBLYkUnxilj9Xkae6MwtKUPsANtHWCo87j3o0rAbX2fIGwnB+yjs2L
 X1Y2vR6hD+/IXFPVbuHK6m4D
X-SBRS: 5.1
X-MesageID: 56769430
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:68w8layRa7BTRiFFOep6t+fTwSrEfRIJ4+MujC+fZmUNrF6WrkVUx
 2sXWWjTP6yLNGXxe4olO9izoU0H7J6GmNE2SlNoqyAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrZg2tcAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt9F7j
 9YQj8KVcAkKEe7shKclciJ9IxgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY254RQ6eCP
 JJxhTxHMRjEehlhGVcuBpcDnbyhvV/RVD5+twfAzUYwyzeKl1EguFT3C/LUZd6iVchThlyfp
 G/N4yL+GB5yHMySz3+J/2yhgsfLnDjnQ8QCGbug7PlojVaPgGsJB3U+d3G2vP24gU6WQM9EJ
 gof/S9GkEQp3BX1FJ+nBUT++SPa+E5HMzZNLwEkwACHjamJ2Vi8P2YnYX1hdJ8elfQTdQV/g
 zdlgOjVLTBotbSUT1eU+bGVsS6+NEApEIMSWcMXZVBbuoe++enfmjqKF48+S/Dt0rUZDBmpm
 2jSxBXSkYn/miLiO0+T2VncywyhqZHSJuLezlWGBzn1hu+ViWPMWmBJ1bQ5xasYRGp6ZgPY1
 JThpyR5xLtWZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxo2aptZI2+4P
 B67VeZtCHl7ZiHCgUhfONrZNijX5fK4SYSNug78N4ImjmdNmP+vo3g1OB/4M5HFm0kwi6AvU
 ap3gu73ZUv2/Z9PlWLsL89EiOdD7nlnmQv7GMCqpzz6gOH2TCPEFt843K6mM7lRAFWs+16Or
 b6y9qKiln1ibQEJSnCMrNNIcgxSdRDWx/ne8qRqSwJKGSI/cEkJAP7N27IxPYtjmqVejODT+
 X+hHERfzTLCabfvcG1ms1hvN+HiW4hRt3U+MXB+NFqkwSF7M42u8L0eZ908erx+rL5vyvt9T
 v8kfcScA6sQFmSbqmpFNZSt/pZ/cBmLhB6VO3b3ajYIYJM9FRfC/cXpf1Wz+XBWXDa3r8Y3v
 5apyhjfHcgYXw1nAcuPMKCvwlq9sGIzguV3W0eUcNBfdF+1qNphKjDrj+9xKMYJcE2Ryjyf3
 geQIBEZueiS/NNlrIiX3fiJ9t77HfF/E0xWG3jgwYy3bSSKrHC+xYJgUfqTeWyPXm3D56j/N
 /5eyOvxMaNbkQ8S4ZZ8Cbti0Yk3+8Dr++1B1g1hEXjGMwarB7dnLiXU1MVDrPQQlLpQuA/wU
 UOT4NhKf76OPZq9QlIWIQMkaMWF1O0VxWaOvahkfh2i6X8l5qeDXGVTIwKI2X5UI7ZCOY84x
 fss5ZwN4Aulhxt2atuLg0i4LYhXwqDsh0n/iqwnPQ==
IronPort-HdrOrdr: A9a23:z2AxbK3gegMXmEffgI55uwqjBLwkLtp133Aq2lEZdPU1SKClfq
 WV98jzuiWatN98Yh8dcLK7WJVoMEm8yXcd2+B4V9qftWLdyQiVxe9ZnO7f6gylNyri9vNMkY
 dMGpIObOEY1GIK7/rH3A==
X-IronPort-AV: E=Sophos;i="5.87,199,1631592000"; 
   d="scan'208";a="56769430"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fx4mDTp+ldWq9LB42XQqRImzmBkbwyrAjyWZAAUA275f+ISKzDW1qUGuwhfMlegGQojuPglgaBvdMG0XKHS4Wxkb+3mDv828NFQgstgvRK7bdOAc+lGnU+6ucTjRzKdt9TrZKn+Hv4wVeeMWnsMkgejde8GugLLJCJ99qL+OypwCK3LxiDUwzd4pWFOC9Fq/Yex9hE0HsGkYEy62nbcEEDWm3Sgg6VPewKkJv+pWNZSd834tBbJTXYsW9EE9/qq4nrW9KbTSX5ZsDhHdC71b1dbgccq+L684YQn+J+3VaQvHObkwvHShEUQRywa5xw77Ak/UDANL++Kianor1k7w6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L9YUjeiSixQ1cD1QcNB4+h2kZ4Rz0DzTeL3ImiJc608=;
 b=OVVicLFLksS8sCYMWX3y7OxLSDgTOnaBPnDitVsUlXRMGeVOGE4zTz0bhjEqtNC3ZydSAqEoE1DhylRm/fX7u6kzy9DEYsEAUvnJ8OCagE2c6tEl/tHvJL3+nT7o/LTR3tNGi0N+fdMOAfplfiruWSg7sBVd2+Y6P6ZzOuTAHukRP05n0UcQoGKn1L+4+BWVcTOT3ei/h4ecZd3p5RdcYXCN+lc40OJdPaQdp9wNqt3SHkXIMc1BxgebKmUJfkHYq2ia19qOcYeNQ+9+eXIvtQBgAAMt5xvTxVgW5gLkNjft4Z9vhpnPilCkwNlsGbx0st68ZFbUzrvHy0Qv1eUR0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L9YUjeiSixQ1cD1QcNB4+h2kZ4Rz0DzTeL3ImiJc608=;
 b=ko3J/hspWCupD25KaSP/His4FxIqqnYaIc0GEbNQEp28viQjOyDyEcoUcayOGFR3v8m9U6s6wmxTbVBCXu9iU0h71D0wEzsL/YPX6z57PKqSSVGS83UbgFl50sOE0oHeZcxZyiBItT4RTLHhaQqZT1kBOk131bcq6Us3gBurzLA=
To: Ian Jackson <iwj@xenproject.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211028232658.20637-1-andrew.cooper3@citrix.com>
 <24959.50965.967784.441954@mariner.uk.xensource.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on
 AMD hardware
Message-ID: <0ab2bad5-ad32-06e1-755c-c4fe5cb2bdd3@citrix.com>
Date: Mon, 1 Nov 2021 11:10:35 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <24959.50965.967784.441954@mariner.uk.xensource.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LO4P123CA0263.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:194::16) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c413d8be-547e-4c45-d1af-08d99d283d9d
X-MS-TrafficTypeDiagnostic: SJ0PR03MB5773:
X-Microsoft-Antispam-PRVS: <SJ0PR03MB577322135D707DFD72CA7543BA8A9@SJ0PR03MB5773.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 412ZxLDDAY0c4AXmgql8kCtFOg3dkahHp+nt1F4hURSHmWrIGDnrPm34VxU1Z/1+5yS63zoO/MCNT1WRQJVVWDB6Py+fo3bY5o1R+7PFtEV8sRrCwTvLc7GXfdCle27bRwCldxnX3hN5WXKvld7Mk2c3seOo9uY0gnudp1HQNQo3AM1HpmooRHEsY4o5iEPMPPhra9n3i7VPtEy6a1GI6xHKDjEPJNUCsHnaNLzvlkgc4B+iPt/suGQMUnwvzL2MDCQNpJHdNVohuJlTm9rbmC4p845Nl66cGAoj3+i5hiAfh3nUs4pfv40jAjQX31iMgP5ShsJUWXwsPDvVriEXx+eoNMUfu9LJ95NVEqjE+gBhiwCnoJyPvZd1xuL7LOrObDxnR8CNyjdru7wsZjHKspGmVttuROVz5q0CynuNXqdEF+yJIxInICOu4lteNMvjQTqepC/sc7L/v9orWPUMh+qfKw/PJ9RZmUXpJKUeZHxYojHDFrzvRzn3HTuKQhuslG3y1nLgTqpJeriEsim2qzHxnv+ciAIKaoljgQvZ3fJyd1l8jhBl02SZWgrsE1tJM6Oo9et1ZR1ajxNWniaKTVqCQqEkMiRgyNYsrGtvg3RW0NAAmuzCdB/CVmFQ1XYq2K+f3VRmZ+eQsrpr/L+onZ/xqNscMowrqOmKS8tSj9EJT4xiTNB9gHae7rMmlpMpX0SvCLaBtIvBD5yLnNm29bDnNQ5goxarmDQjoVzbTjfItfIDe9ILLt9uswwWy5O8
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(31696002)(8676002)(26005)(16576012)(508600001)(6486002)(8936002)(54906003)(316002)(31686004)(86362001)(36756003)(53546011)(66946007)(107886003)(2906002)(6666004)(6916009)(5660300002)(66556008)(66476007)(2616005)(956004)(82960400001)(83380400001)(4326008)(38100700002)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NVZreVBST3U3eE5HUnU1YUR3UXpPeGhWN0IvNlhveGZTYkNTTTNJZWdLU29p?=
 =?utf-8?B?OGhKQktMWW9jYk5uSzhJWGFWWDUzTkdaU0Y3MUdYNThqaTVqaGhiY1liRzJQ?=
 =?utf-8?B?aDZMRTFVcHhkQU10dWl6cndxZ2JoVVVncGdzbzNwekF1N2tGci90MnBxN0Vp?=
 =?utf-8?B?MWpFNW02UTc5Y3NHSFdCUUdVZGJVdWh0ZmRjcEE4b0pCdDR0elRTSkg3NEFr?=
 =?utf-8?B?ZWtlcDFteUNmcVdGcnM0Y2FqMDlaU1dZaWg3bGZqZ3B4ZCthb3pMemplTEl6?=
 =?utf-8?B?cTJlMVpDL0ZVK3I5dnZ6S09VK1BUTHZMK0dFQWVQV1VKVEVvNDNRNSt2YXVi?=
 =?utf-8?B?YnRla0gwQnV4dDVqYTNLOTJFMUxUY3I0a3RDalNYV0ZWTGRmQmFXM3V4QTVP?=
 =?utf-8?B?K3N1SzdLWXJQYVRRMmdLTVFLVWpxMExBSEdlaHgrTzZscTlNQnQ3ZFFHelFX?=
 =?utf-8?B?aExOYisxVmswNHgzYW1PcFJva29aVHhScXNlb0JMS0toS2tVcVZVeTNEc3N4?=
 =?utf-8?B?Y3N4L29KUnNhUFNJTkZ5M05ja0cwYzFaeG12WTRPOE5ubnNoRXBlTTErQ2hH?=
 =?utf-8?B?NGJ2QTlJUHpLQVBoTVJkQnVvY0pidVo0OVBVVGZMc3d2Rk9NMDBjYzk3S2Rn?=
 =?utf-8?B?UEI2MWVMNDBvMDRmOVZkUzkzdmxCbUh0M1hWNkJZTG1mdm5OcTNPNmhicEdp?=
 =?utf-8?B?YmZ2cWVYVDNQV2dWRlgxQ2JXUVV2aUEzdGpmR3J6TnNwZ0hxZjdKNG9YRTZr?=
 =?utf-8?B?Tld6N0NmZUFiMkJjSzhqRUY0RnNKZTJicDNzK0Y4ZkZOTmpKSEJsR2UxSjB5?=
 =?utf-8?B?N2tQdmVvSDhIdklxQ0Rid0RJOFhoeldoK3cwaTdpY28xQ2I2eHBzUmM2T09o?=
 =?utf-8?B?MUhvLzNYc09TZC9EcFVlbEdSTnl2eVlxTm55Zm5NY1dSUkhCUUlpNXoveDNG?=
 =?utf-8?B?bW9wNXNCLzFqVjBIeWZFSEFBaE1ZRUZjL3IrbnNoazVZNCsybHZUMFUvZWpq?=
 =?utf-8?B?RWtMaGxPRzJTa0I1T2JHanBNN2VDYjUxNTY0b1l6ZnFoTVhDS2Q4bkxkRUt3?=
 =?utf-8?B?VDdvQ3p4eUF6THZSR3FSTVgybXloT09yUUIyNTFQYWNNRkkya1QrMXY3S1N4?=
 =?utf-8?B?UjlFd1AvR3Q5RXZMZVpEcm9GbEhLS2xpUDhiTmVwb3F2SzVxQ1RpbWtrUFRO?=
 =?utf-8?B?TnFVMUJLTExkbENzeHIzVTdVc1JHU1hobFh6aHdPbHZsMGZ4bEtRMFdtQm5l?=
 =?utf-8?B?bFhaemxuTXRqRkZON0RPUkhzZkFCSk12cFBqVmE1ZFpoZTExNjZsQ1ZIOGdm?=
 =?utf-8?B?czlqNmJmR3NTUGpqTm9BVUtsdE9LdXRTNmVUN2xwT2ZNcnE1MUtydTZiY1RE?=
 =?utf-8?B?dkNZUElLZVgzQUpqSVZxV2FJR2xxR1d0WmFMeHJXaXd2cnFaR1lIOGhWRXJv?=
 =?utf-8?B?Qk14R2ZXUW52R1R0WHJiQmp2YVpVZCsyS0ZHR2VrYW5tY2poN2YyakhaRk5V?=
 =?utf-8?B?UEtrUFNaeXloMjc2SjZ1aWJyNXE1UUVSM3UxYzQ4VzBPQnB4TTEwN3Q4RUNX?=
 =?utf-8?B?UUl5TndRb0ljNnBoQ25BK3dVTXUvQ2piMTZUOW1EallZQUlReGQ3MUEvUW8r?=
 =?utf-8?B?RlhCQzgwL2Zxb1RUd3hldTZ2MVdFelpUekhCSFArNjM4NnVXSFIrVHBIVTBY?=
 =?utf-8?B?YWtqS0xyWW9vV2taL1NoK3ZvWmRrUEJPUVoxdWp5MzU1NDFrQkpabzZVMFFN?=
 =?utf-8?B?TitPcFZrK3E3Q2Vhd296L2lINStYdjRSS0hnbHU1eEt0YjNNNGhwTE5RQUgx?=
 =?utf-8?B?Q25STytPSnVmcFJQODBZNU92NGhHd0p1eEFKOUhiQ3BjK0NOdTk4MUR5MkY1?=
 =?utf-8?B?S25yOVB4WjRpQjU5U0NvalNTTmRYRFZVb0NoK3pMUnVQeENLTjJTemdqTEg0?=
 =?utf-8?B?UjdqcW5sdUJQR2FXZnBIaWIybTBUYnBmZ2Y1bDRwbmh3NUNEVHhUZjBIbDln?=
 =?utf-8?B?NUFNd2FyRTZ4blpFaHlsVnc4bTAzRk9acWoxYU4yem5paGdpdkE2RXlaaUZo?=
 =?utf-8?B?YnFLR2luSk4zcUY1ZktvZXFUVHBoSDBGUG96dzVPQmVGZ3Y2aytOQjZ4T3lu?=
 =?utf-8?B?SXlaeUZoOGs4LzluQ2J5SDhmWWtqV1NyZWVmWnVzR2J2eEg3THRNOEhBS2k2?=
 =?utf-8?B?L0RkV2k0QTl1blpnUVRSOVpZdU03OVVvOFFyUVFPd3AwM1lvS3FPamFQMmhJ?=
 =?utf-8?B?TEprVHI3RzdlcGpXaW53dk56ajJBPT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: c413d8be-547e-4c45-d1af-08d99d283d9d
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2021 11:10:41.0240
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bYDdV+dF2kafazAHiz2g5lUnwjpwKxPeBI8dUBN+UF7CsjAnMYR22ZgffhZBehBzXs3M04TxVo3wx6WOL7SkqcuR9bKLOHCOHIfVzMuahjQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5773
X-OriginatorOrg: citrix.com

On 01/11/2021 10:53, Ian Jackson wrote:
> Andrew Cooper writes ("[PATCH] x86/kexec: Fix crash on transition to a 32=
bit kernel on AMD hardware"):
>> The `ljmp *mem` instruction is (famously?) not binary compatible between=
 Intel
>> and AMD CPUS.  The AMD-compatible version would require .long to be .qua=
d in
>> the second hunk.
>>
>> Switch to using lretq, which is compatible between Intel and AMD, as wel=
l as
>> being less logic overall.
>>
>> Fixes: 5a82d5cf352d ("kexec: extend hypercall with improved load/unload =
ops")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>> CC: Wei Liu <wl@xen.org>
>> CC: Ian Jackson <iwj@xenproject.org>
>>
>> For 4.16.  This is a bugfix for rare (so rare it has probably never been
>> exercised) but plain-broken usecase.
>>
>> One argument against taking it says that this has been broken for 8 year=
s
>> already, so what's a few extra weeks.  Another is that this patch is onl=
y
>> compile tested because I don't have a suitable setup to repro, nor the t=
ime to
>> try organising one.
> Thanks for being frank about testing.
>
> The bug is a ?race? ?  Which hardly ever happens ?  Or it only affects
> some strange configurations ?  Or ... ?

Strange configuration.

On AMD hardware, if you try to use a 32bit crash kernel, then Xen will
unconditionally crash when trying to transition to it.

Any other scenario (Intel hardware, or a 64bit crash kernel) will work
fine and without incident.

>> On the other hand, I specifically used the point of binary incompatibili=
ty to
>> persuade Intel to drop Call Gates out of the architecture in the forthco=
ming
>> FRED spec.
> I'm afraid I can't make head or tail of this.  What are the
> implications ?

I managed to get some CPU architects to agree that there was a binary
incompatibility here.

>> The lretq pattern used here matches x86_32_switch() in
>> xen/arch/x86/boot/head.S, and this codepath is executed on every MB2+EFI
>> xen.gz boot, which from XenServer alone is a very wide set of testing.
> AIUI this is an argument saying that the basic principle of this
> change is good.  Good.
>
> However: is there some risk of a non-catastrophic breakage here, for
> example, if there was a slip in the actual implementation ?
> (Catastrophic breakage would break all our tests, I think.)

This path is only taken for a 32bit crash kernel.=C2=A0 It is not taken for
64bit crash kernels, or they wouldn't work on AMD either, and this is
something we test routinely in XenServer.

The worst that can happen is that I've messed the lretq pattern up, and
broken transition to all 32bit crash kernels, irrespective of hardware
vendor.

It will either function correctly, or explode.=C2=A0 If it is broken, it
won't be subtle, or dependent on the phase of the moon/etc.

~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 12:14:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 12:14:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219154.379831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhWCH-0003TA-A6; Mon, 01 Nov 2021 12:13:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219154.379831; Mon, 01 Nov 2021 12:13:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhWCH-0003T3-5q; Mon, 01 Nov 2021 12:13:53 +0000
Received: by outflank-mailman (input) for mailman id 219154;
 Mon, 01 Nov 2021 12:13:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhWCG-0003Sx-59
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 12:13:52 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhWCG-0007Cw-0m
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 12:13:52 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhWCF-0004wB-WF
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 12:13:52 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhWCC-0004wb-KS; Mon, 01 Nov 2021 12:13:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=J81gK+GU60VSOXaXcAFowgilMPgB00kO66ksV7r2wrc=; b=OQUSv1OZgthXd4Qlw5Z1jOuo4w
	M0RWWFRHcnWck20m6AJs/2jxzyPnSUmu2F14JX0fLn21UFQBV7eTOAjmF1bSKlvlTOdNj/kMFLsiL
	83a24A/uK1T30caTAl/KbRUo6/nycgi/wcGG5+7tx0UghCncMetMSC6JhYdLbs/zjk5I=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24959.55804.160431.406023@mariner.uk.xensource.com>
Date: Mon, 1 Nov 2021 12:13:48 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
    Jan Beulich <JBeulich@suse.com>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on
 AMD hardware
In-Reply-To: <0ab2bad5-ad32-06e1-755c-c4fe5cb2bdd3@citrix.com>
References: <20211028232658.20637-1-andrew.cooper3@citrix.com>
	<24959.50965.967784.441954@mariner.uk.xensource.com>
	<0ab2bad5-ad32-06e1-755c-c4fe5cb2bdd3@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware"):
> This path is only taken for a 32bit crash kernel. It is not taken for
> 64bit crash kernels, or they wouldn't work on AMD either, and this is
> something we test routinely in XenServer.
> 
> The worst that can happen is that I've messed the lretq pattern up, and
> broken transition to all 32bit crash kernels, irrespective of hardware
> vendor.
> 
> It will either function correctly, or explode. If it is broken, it
> won't be subtle, or dependent on the phase of the moon/etc.

Thanks for this confirmation.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

(NB I'm still working on RC1 so commit moratorium still in force)

Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 12:59:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 12:59:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219167.379850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhWuG-0007c7-Rl; Mon, 01 Nov 2021 12:59:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219167.379850; Mon, 01 Nov 2021 12:59:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhWuG-0007bz-Me; Mon, 01 Nov 2021 12:59:20 +0000
Received: by outflank-mailman (input) for mailman id 219167;
 Mon, 01 Nov 2021 12:59:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhWuF-0007bm-M7
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 12:59:19 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhWuF-0007wU-LD
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 12:59:19 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhWuF-000883-KM
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 12:59:19 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhWuC-0006aW-3C; Mon, 01 Nov 2021 12:59:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Subject:CC:To:Date:Message-ID:
	Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=v2hzg/5bS25hjOlv+bq6tQc6rR27EcPpfgBX018oS6Q=; b=r+fEGK5UqvPituuMZgSh60g9Tz
	nJAL06gbiqIG3EyI0dvGQoKL2qsj8nU/+UesCF/VG/PS32o7jX7BNY2Nfri5rjNw+7V5am6wQBIyo
	qEkR5fHyRBNg1VcUmHpMo0B9I47s2IeHDrTAbuT9ycVSjj+fw5wLP4Yz1iWvwpgCn1aw=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24959.58531.558578.875307@mariner.uk.xensource.com>
Date: Mon, 1 Nov 2021 12:59:15 +0000
To: xen-announce@lists.xenproject.org
CC: xen-devel@lists.xenproject.org
Subject: Xen 4.16 RC1

Xen 4.16 RC1 is now available.

It is available from git:
  git clone https://xenbits.xenproject.org/git-http/xen.git -b 4.16.0-rc1

For your convenience a tarball is available:
  https://downloads.xenproject.org/release/xen/4.16.0-rc1/xen-4.16.0-rc1.tar.gz
  https://downloads.xenproject.org/release/xen/4.16.0-rc1/xen-4.16.0-rc1.tar.gz.sig

Please send bug reports and test reports to
xen-devel@lists.xenproject.org.  When sending bug reports, please CC
relevant maintainers and me (iwj@xenproject.org).

Ian.
Xen 4.16 Release Manager


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 13:00:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 13:00:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219173.379861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhWv2-0000Qq-5Z; Mon, 01 Nov 2021 13:00:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219173.379861; Mon, 01 Nov 2021 13:00:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhWv2-0000Pz-1k; Mon, 01 Nov 2021 13:00:08 +0000
Received: by outflank-mailman (input) for mailman id 219173;
 Mon, 01 Nov 2021 13:00:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhWv0-0000Pg-Ob; Mon, 01 Nov 2021 13:00:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhWv0-0007zG-KV; Mon, 01 Nov 2021 13:00:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhWv0-0000Ri-75; Mon, 01 Nov 2021 13:00:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhWv0-0008Gm-6Z; Mon, 01 Nov 2021 13:00:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=VF+3Rl7zUWvma+JqKNfkw7hTIJotzpIE0yv5Sv0oU08=; b=C09q0BZoZbWzVCLyp7RnenPlBc
	cYsShnw1EgnuIqpKCr4OfkjigXmvag9LE88CEruqIJu89HwbJIoVPOvyrkR8j3VldBnY0dzFzpoxI
	vUaHVFFtFMRaus49jKv90m96m1bvkhGy7Ja8ftMrceQrAUtqpIyvrucpwMCwmeMW84Ag=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165966-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 165966: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=3030a73bf849a50411da95e94abf23cb7e8642fc
X-Osstest-Versions-That:
    xen=3030a73bf849a50411da95e94abf23cb7e8642fc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 13:00:06 +0000

flight 165966 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165966/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 165953
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165953
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165953
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165953
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165953
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165953
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165953
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165953
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165953
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165953
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165953
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165953
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165953
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  3030a73bf849a50411da95e94abf23cb7e8642fc
baseline version:
 xen                  3030a73bf849a50411da95e94abf23cb7e8642fc

Last test of basis   165966  2021-11-01 01:52:55 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 13:00:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 13:00:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219175.379875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhWvI-0000uT-Fb; Mon, 01 Nov 2021 13:00:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219175.379875; Mon, 01 Nov 2021 13:00:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhWvI-0000td-Bu; Mon, 01 Nov 2021 13:00:24 +0000
Received: by outflank-mailman (input) for mailman id 219175;
 Mon, 01 Nov 2021 13:00:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhWvG-0000sb-BN
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 13:00:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhWvG-0007zi-AL
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 13:00:22 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhWvG-0008Nu-9c
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 13:00:22 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhWvC-0006b3-Rn; Mon, 01 Nov 2021 13:00:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=QUSfeyVmwKqBi1vLmtnSOEtzeobt4xuAMIth2HYOjWM=; b=nuCvlR3UfpKWpNJ12M+SeHQ+ZW
	e2HZwdYcUTxRDUkTxw0Gzu1iYpHxe3iDhLSsYZL85yBbRuK3j83KJnTFjhAV2GcrsVwdYMLSZY9hr
	8/p6pvPkxQr5KwOyNyIe+pTk3aFcXTVefGW2WuzNe5ld+7/EJ7SqZAfZe4Shan3ggi0Q=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24959.58594.341018.18060@mariner.uk.xensource.com>
Date: Mon, 1 Nov 2021 13:00:18 +0000
To: committers@xenproject.org
Cc: xen-devel@lists.xenproject.org
Subject: Xen 4.16 tree status - code freeze
In-Reply-To: <24959.58531.558578.875307@mariner.uk.xensource.com>
References: <24959.58531.558578.875307@mariner.uk.xensource.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Ian Jackson writes ("Xen 4.16 RC1"):
> Xen 4.16 RC1 is now available.
> 
> It is available from git:
>   git clone https://xenbits.xenproject.org/git-http/xen.git -b 4.16.0-rc1
> 
> For your convenience a tarball is available:
>   https://downloads.xenproject.org/release/xen/4.16.0-rc1/xen-4.16.0-rc1.tar.gz
>   https://downloads.xenproject.org/release/xen/4.16.0-rc1/xen-4.16.0-rc1.tar.gz.sig
> 
> Please send bug reports and test reports to
> xen-devel@lists.xenproject.org.  When sending bug reports, please CC
> relevant maintainers and me (iwj@xenproject.org).

The commit moratorium is lifted.

However, we are in code freeze.  So all patches to be committed must
have a release-ack.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 13:28:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 13:28:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219190.379886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhXMa-0003e0-10; Mon, 01 Nov 2021 13:28:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219190.379886; Mon, 01 Nov 2021 13:28:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhXMZ-0003dt-Tk; Mon, 01 Nov 2021 13:28:35 +0000
Received: by outflank-mailman (input) for mailman id 219190;
 Mon, 01 Nov 2021 13:28:35 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vvz4=PU=kernel.org=cmarinas@srs-us1.protection.inumbo.net>)
 id 1mhXMZ-0003dn-8k
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 13:28:35 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 9c9bc4cc-3b17-11ec-8544-12813bfff9fa;
 Mon, 01 Nov 2021 13:28:34 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id A1A3160551;
 Mon,  1 Nov 2021 13:28:22 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c9bc4cc-3b17-11ec-8544-12813bfff9fa
Date: Mon, 1 Nov 2021 13:28:19 +0000
From: Catalin Marinas <catalin.marinas@arm.com>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Lee Jones <lee.jones@linaro.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Mark Brown <broonie@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Russell King <linux@armlinux.org.uk>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>, Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Chen-Yu Tsai <wens@csie.org>,
	Jonathan =?iso-8859-1?Q?Neusch=E4fer?= <j.neuschaefer@gmx.net>,
	Tony Lindgren <tony@atomide.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Vladimir Zapolskiy <vz@mleia.com>,
	Avi Fishman <avifishman70@gmail.com>,
	Tomer Maimon <tmaimon77@gmail.com>,
	Tali Perry <tali.perry1@gmail.com>,
	Patrick Venture <venture@google.com>, Nancy Yuen <yuenn@google.com>,
	Benjamin Fair <benjaminfair@google.com>,
	Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
	openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH v2 11/45] arm64: Use do_kernel_power_off()
Message-ID: <YX/rc872EIlC+QGE@arm.com>
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-12-digetx@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211027211715.12671-12-digetx@gmail.com>

On Thu, Oct 28, 2021 at 12:16:41AM +0300, Dmitry Osipenko wrote:
> Kernel now supports chained power-off handlers. Use do_kernel_power_off()
> that invokes chained power-off handlers. It also invokes legacy
> pm_power_off() for now, which will be removed once all drivers will
> be converted to the new power-off API.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>

Acked-by: Catalin Marinas <catalin.marinas@arm.com>


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 13:41:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 13:41:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219197.379897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhXYY-0005rO-63; Mon, 01 Nov 2021 13:40:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219197.379897; Mon, 01 Nov 2021 13:40:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhXYY-0005rH-1r; Mon, 01 Nov 2021 13:40:58 +0000
Received: by outflank-mailman (input) for mailman id 219197;
 Mon, 01 Nov 2021 13:40:56 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k6o8=PU=invisiblethingslab.com=marmarek@srs-us1.protection.inumbo.net>)
 id 1mhXYW-0005rB-Nr
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 13:40:56 +0000
Received: from wout5-smtp.messagingengine.com (unknown [64.147.123.21])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id aefb5d37-c936-45b3-9a43-59b5d21586d1;
 Mon, 01 Nov 2021 13:40:55 +0000 (UTC)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44])
 by mailout.west.internal (Postfix) with ESMTP id 1589D320005D;
 Mon,  1 Nov 2021 09:40:54 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute4.internal (MEProxy); Mon, 01 Nov 2021 09:40:54 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 1 Nov 2021 09:40:52 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aefb5d37-c936-45b3-9a43-59b5d21586d1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to:x-me-proxy
	:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=dc9j7H
	hVVyTihjMe3EFeBiezfmVDidLjZIXdTN4QXDc=; b=KC8B/egB5IVHecPJnqnNyB
	HOPyXcrl6+I3afwdtnuIgxqQpcChCsMnFAf+qOtgc6arHdp0IOicdOVr1SnmqzGI
	ECd7wPq10xVcv4QEEnR27fVTRc/mjTB1s8OxHmd6IV8qplTnjIQsakHoAtFPYscV
	CVEtDLIaU2ey24HJetPRhPrkE1HcFdw/xpOa9owRbJoejikndT6yluOW88FCAHUX
	fF38/BhT7km2HXnsShyHsZUqbjdH5ZJLDeILQZBZOA0mvosu9ARTiBfgkyVcpzYC
	LJmUNPVbggPXeWrDjXsquSAGmjJwSw8HBUWU5y570fQR/FBXc48ye/TocGcBBMRA
	==
X-ME-Sender: <xms:Ze5_YZ-u9hSuMgtaYVkPfpgU1QTNJCddtGHTqktWLWf3jaD7IhcnJg>
    <xme:Ze5_YdtPdbJGU_tEfB_joQY_aG-oK5-U61W22ilZs_gEcgdJfA2u0EbN-nhiXjzlw
    M478l6XP_vO1A>
X-ME-Received: <xmr:Ze5_YXAa9uA_KRabJh2ndIXOc-pUjz1MPo3luTmsXXFh8gBiTrV0TlE5OjBNNIoZuEkFaXW_3gId_pZbpTWvpVTAovqobDcW>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrvdehvddgheefucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepfffhvffukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeetveff
    iefghfekhffggeeffffhgeevieektedthfehveeiheeiiedtudegfeetffenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:Ze5_YddNraiVTF0dokhtejimIHqXbaWtWS6yxIV05CVy-ItwjLJXVg>
    <xmx:Ze5_YeMSMfaw_mFo4-i_6yJunlDd7xxEFwdbB5M5JCseobWAUhFSKg>
    <xmx:Ze5_YfmYB67qVYQuEuKTYA_fRtTKgjlzB66-ii33sqoy-BWYO8CC3Q>
    <xmx:Ze5_YbrEos8aFK9zG0NMvR2BFQgZYjQYWQGNKCsuEc2brnSvSLiUQQ>
Date: Mon, 1 Nov 2021 14:40:48 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	xen-devel@lists.xenproject.org, Ian Jackson <iwj@xenproject.org>
Subject: Re: Ping: [PATCH] x86/xstate: reset cached register values on resume
Message-ID: <YX/uYIk/iwf3kAXX@mail-itl>
References: <20210818113017.454251-1-marmarek@invisiblethingslab.com>
 <45de5185-b514-8c52-6922-4c587818c698@citrix.com>
 <3125583f-b965-7746-d833-c197857cd7d7@citrix.com>
 <6adf41a6-8f05-8ead-2b12-e922939955da@suse.com>
 <YXFuuwvFKbgkavSB@MacBook-Air-de-Roger.local>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="SzZQVFJFc5Cj6YgJ"
Content-Disposition: inline
In-Reply-To: <YXFuuwvFKbgkavSB@MacBook-Air-de-Roger.local>


--SzZQVFJFc5Cj6YgJ
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 1 Nov 2021 14:40:48 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	xen-devel@lists.xenproject.org, Ian Jackson <iwj@xenproject.org>
Subject: Re: Ping: [PATCH] x86/xstate: reset cached register values on resume

On Thu, Oct 21, 2021 at 03:44:27PM +0200, Roger Pau Monn=C3=A9 wrote:
> On Mon, Oct 18, 2021 at 10:21:28AM +0200, Jan Beulich wrote:
> > On 24.08.2021 23:11, Andrew Cooper wrote:
> > > On 18/08/2021 13:44, Andrew Cooper wrote:
> > >> On 18/08/2021 12:30, Marek Marczykowski-G=C3=B3recki wrote:
> > >>> set_xcr0() and set_msr_xss() use cached value to avoid setting the
> > >>> register to the same value over and over. But suspend/resume implic=
itly
> > >>> reset the registers and since percpu areas are not deallocated on
> > >>> suspend anymore, the cache gets stale.
> > >>> Reset the cache on resume, to ensure the next write will really hit=
 the
> > >>> hardware. Choose value 0, as it will never be a legitimate write to
> > >>> those registers - and so, will force write (and cache update).
> > >>>
> > >>> Note the cache is used io get_xcr0() and get_msr_xss() too, but:
> > >>> - set_xcr0() is called few lines below in xstate_init(), so it will
> > >>>   update the cache with appropriate value
> > >>> - get_msr_xss() is not used anywhere - and thus not before any
> > >>>   set_msr_xss() that will fill the cache
> > >>>
> > >>> Fixes: aca2a985a55a "xen: don't free percpu areas during suspend"
> > >>> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblet=
hingslab.com>
> > >> I'd prefer to do this differently.=C2=A0 As I said in the thread, th=
ere are
> > >> other registers such as MSR_TSC_AUX which fall into the same categor=
y,
> > >> and I'd like to make something which works systematically.
> > >=20
> > > Ok - after some searching, I think we have problems with:
> > >=20
> > > cpu/common.c:47:DEFINE_PER_CPU(struct cpuidmasks, cpuidmasks);
> > > cpu/common.c:120:static DEFINE_PER_CPU(uint64_t, msr_misc_features);
> > > msr.c:35:DEFINE_PER_CPU(uint32_t, tsc_aux);
> > > xstate.c:36:static DEFINE_PER_CPU(uint64_t, xcr0);
> > > xstate.c:79:static DEFINE_PER_CPU(uint64_t, xss);
> > >=20
> > > There is also:
> > >=20
> > > traps.c:100:DEFINE_PER_CPU(uint64_t, efer);
> > >=20
> > > which we *almost* handle correctly, but fail to update the cache on t=
he
> > > BSP out of S3.
> > >=20
> > >=20
> > > For the APIC, I think we have issues with:
> > >=20
> > > irq.c:1083:static DEFINE_PER_CPU(struct pending_eoi,
> > > pending_eoi[NR_DYNAMIC_VECTORS]);
> > >=20
> > > because we don't defer S3 until all pending EOIs are complete.
> >=20
> > As your planned more extensive rework appears to not have made much
> > progress yet, may I suggest that we go with Marek's fix for 4.16,
> > with the one adjustment I suggested alongside giving my R-b?
>=20
> I think that's the only viable solution in order to avoid shipping a
> broken 4.16 so we should go ahead with it.

Do you want me to post v2 with `this_cpu(xss) =3D ~0` change? IIUC that's
the only thing requested in this patch specifically.

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--SzZQVFJFc5Cj6YgJ
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmF/7l8ACgkQ24/THMrX
1yxYdgf+K89Wfnw02DEP7gIlsy5L0bIvVGKLWE27ElCiOpd/KBWKn+QdqPReLSqS
2Qw9AcCmWk/Nc5ffnJfeTfjQQXTTQv2plE6dQhMK/kQre8Ubq1fVvlaBGqn10oFE
Ap/WO6T9VkfH/IH/CtOQM69yIpt9fV+7S06aw8a23xImlE65CwHoUQhrPgm4+rdt
IRseyV8HffUW+1kvu00kn/FVfGAjUKg/A2abijTRTsooPhQ4wYB6gKSNa5e/edGY
R4s5pnQuq3bW+2iWNLxTB63XuEhksdM6phPWGig9KBa+/PjwZpaksXE5ZlV+Dez9
hUif+QgVT5DLrySgo5xshfwdbaNcOA==
=HMpl
-----END PGP SIGNATURE-----

--SzZQVFJFc5Cj6YgJ--


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 14:50:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 14:50:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219230.379921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhYcw-0004E7-VZ; Mon, 01 Nov 2021 14:49:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219230.379921; Mon, 01 Nov 2021 14:49:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhYcw-0004E0-SX; Mon, 01 Nov 2021 14:49:34 +0000
Received: by outflank-mailman (input) for mailman id 219230;
 Mon, 01 Nov 2021 14:49:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhYcw-0004Dq-5M; Mon, 01 Nov 2021 14:49:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhYcv-0001QG-R1; Mon, 01 Nov 2021 14:49:33 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhYcv-0003XZ-FH; Mon, 01 Nov 2021 14:49:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhYcv-0005uJ-Ep; Mon, 01 Nov 2021 14:49:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=1BzIP8xEfeNUhZZkM/UA5lerWDxs7zSn0X0iX/zDJwQ=; b=FKGyYBftlNYFdR8CuOXgQqEgts
	2x8KqPsgaHmEuAY8fOYsUsGd6ibFkOg1UV+Ero42frGW1HXLLJQKH2S+GPV5r0dvR0r5CrO7DNprb
	EVOx8BYWs5IxSnMGNHqZkDgCPto90Fx7ZB8mMZ3kWO1V6P0Dc83kxnNSjhDkRK1IY064=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165970-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 165970: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-i386-xsm:xen-build:fail:regression
    qemu-mainline:build-i386:xen-build:fail:regression
    qemu-mainline:build-armhf:xen-build:fail:regression
    qemu-mainline:test-arm64-arm64-xl-credit2:xen-boot:fail:heisenbug
    qemu-mainline:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-amd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-i386:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-coresched-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:build-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:build-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-intel:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=af531756d25541a1b3b3d9a14e72e7fedd941a2e
X-Osstest-Versions-That:
    qemuu=50352cce138ef3b30c1cda28a4df68fff5da3202
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 14:49:33 +0000

flight 165970 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165970/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-xsm                6 xen-build                fail REGR. vs. 165682
 build-i386                    6 xen-build                fail REGR. vs. 165682
 build-armhf                   6 xen-build                fail REGR. vs. 165682

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-xl-credit2   8 xen-boot                   fail pass in 165967

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-cubietruck  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-amd  1 build-check(1)               blocked n/a
 test-amd64-i386-pair          1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-i386  1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-amd64  1 build-check(1)               blocked  n/a
 test-amd64-coresched-i386-xl  1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 build-i386-libvirt            1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-intel  1 build-check(1)             blocked n/a
 test-amd64-i386-xl            1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-pvshim     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64  1 build-check(1)         blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1)  blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-i386-xl-qemuu-ovmf-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-win7-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-ws16-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-shadow     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-vhd        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-credit2 15 migrate-support-check fail in 165967 never pass
 test-arm64-arm64-xl-credit2 16 saverestore-support-check fail in 165967 never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165682
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                af531756d25541a1b3b3d9a14e72e7fedd941a2e
baseline version:
 qemuu                50352cce138ef3b30c1cda28a4df68fff5da3202

Last test of basis   165682  2021-10-19 21:09:14 Z   12 days
Failing since        165694  2021-10-20 18:09:12 Z   11 days   32 attempts
Testing same since   165952  2021-10-31 00:39:26 Z    1 days    6 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexey Baturo <baturo.alexey@gmail.com>
  Alexey Baturo <space.monkey.delivers@gmail.com>
  Alistair Francis <alistair.francis@wdc.com>
  Anatoly Parshintsev <kupokupokupopo@gmail.com>
  Andrew Jones <drjones@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  BALATON Zoltan <balaton@eik.bme.hu>
  Bin Meng <bmeng.cn@gmail.com>
  Chenyi Qiang <chenyi.qiang@intel.com>
  Chih-Min Chao <chihmin.chao@sifive.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cédric Le Goater <clg@kaod.org>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  David Gibson <david@gibson.dropbear.id.au>
  David Hildenbrand <david@redhat.com>
  Dr. David Alan Gilbert <dgilbert@redhat.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Frank Chang <frank.chang@sifive.com>
  Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
  Gavin Shan <gshan@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Greg Kurz <groug@kaod.org>
  Gustavo Romero <gromero@linux.ibm.com>
  Igor Mammedov <imammedo@redhat.com>
  Jason Wang <jasowang@redhat.com>
  John Snow <jsnow@redhat.com>
  John Wang <wangzhiqiang02@inspur.com>
  John Wang <wangzq.jn@gmail.com>
  Jose Martins <josemartins90@gmail.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Luc Michel <lmichel@kalray.eu>
  Luis Pires <luis.pires@eldorado.org.br>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Mathieu Poirier <mathieu.poirier@linaro.org>
  Michael S. Tsirkin <mst@redhat.com>
  Mingwang Li <limingwang@huawei.com>
  Oğuz Ersen <oguzersen@protonmail.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Krempa <pkrempa@redhat.com>
  Philipp Tomsich <philipp.tomsich@vrull.eu>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Shuuichirou Ishii <ishii.shuuichir@fujitsu.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  Tong Ho <tong.ho@xilinx.com>
  Travis Geiselbrecht <travisg@gmail.com>
  Vincent Palatin <vpalatin@rivosinc.com>
  Vivek Goyal <vgoyal@redhat.com>
  Xueming Li <xuemingl@nvidia.com>
  Yanan Wang <wangyanan55@huawei.com>
  Yifei Jiang <jiangyifei@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               fail    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   fail    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           blocked 
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-i386-xl                                           blocked 
 test-amd64-coresched-i386-xl                                 blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     blocked 
 test-amd64-i386-freebsd10-amd64                              blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          blocked 
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-armhf-armhf-xl-cubietruck                               blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         blocked 
 test-amd64-i386-freebsd10-i386                               blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         blocked 
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 blocked 
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    blocked 
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              blocked 
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      blocked 
 test-amd64-i386-xl-vhd                                       blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 6076 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219241.379958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6q-0000Kd-7L; Mon, 01 Nov 2021 15:20:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219241.379958; Mon, 01 Nov 2021 15:20:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6q-0000KS-49; Mon, 01 Nov 2021 15:20:28 +0000
Received: by outflank-mailman (input) for mailman id 219241;
 Mon, 01 Nov 2021 15:20:26 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ6o-0008DA-LO
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:26 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id e9a6435f-a2f2-4df9-bd89-32b3e9a66203;
 Mon, 01 Nov 2021 15:20:22 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 4938C21968;
 Mon,  1 Nov 2021 15:20:21 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 032AB13A4A;
 Mon,  1 Nov 2021 15:20:20 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id MG8WO7QFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9a6435f-a2f2-4df9-bd89-32b3e9a66203
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780021; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=O4r4R0Hldxyr3k06NPdh8DilHAZLAJfd+KTXBp1flBk=;
	b=UvpfJ9JgaE+a3GdxPs3NQf52WRPBSZpV/Gp4F4NAwNP3+mlTnrtiL9FcKOefRo58PwmCFy
	L/Wf/by+NvBmHoo4uJ6CPSR9r9yoz/NIGKqLFvzVHB7HnEelrGkwJmhnExrvPU6KD7+/IN
	FiZU1rcRvICAXKrk8gCgVnA7n9yyIOY=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 07/15] xen: generate hypercall interface related code
Date: Mon,  1 Nov 2021 16:20:07 +0100
Message-Id: <20211101152015.28488-8-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Instead of repeating similar data multiple times use a single source
file and a generator script for producing prototypes and call sequences
of the hypercalls.

As the script already knows the number of parameters used add generating
a macro for populating an array with the number of parameters per
hypercall.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- split platform_op for doe and compat prefixes (Jan Beulich)
- add "addline:" directive
- add priorities to handlers (Jan Beulich)
---
 .gitignore                    |   1 +
 xen/Makefile                  |  10 ++
 xen/include/hypercall-defs.c  | 285 +++++++++++++++++++++++++++++++
 xen/scripts/gen_hypercall.awk | 306 ++++++++++++++++++++++++++++++++++
 4 files changed, 602 insertions(+)
 create mode 100644 xen/include/hypercall-defs.c
 create mode 100644 xen/scripts/gen_hypercall.awk

diff --git a/.gitignore b/.gitignore
index 9513506dd9..753a602e29 100644
--- a/.gitignore
+++ b/.gitignore
@@ -336,6 +336,7 @@ xen/include/public/public
 xen/include/xen/*.new
 xen/include/xen/acm_policy.h
 xen/include/xen/compile.h
+xen/include/xen/hypercall-defs.h
 xen/include/xen/lib/x86/cpuid-autogen.h
 xen/test/livepatch/config.h
 xen/test/livepatch/expect_config.h
diff --git a/xen/Makefile b/xen/Makefile
index a3189eb47c..dfdae47e74 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -383,6 +383,7 @@ _clean: delete-unfresh-files
 		-o -name "*.gcno" -o -name ".*.cmd" -o -name "lib.a" \) -exec rm -f {} \;
 	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map *~ core
 	rm -f asm-offsets.s include/asm-*/asm-offsets.h
+	rm -f include/xen/hypercall-defs.h include/hypercall-defs.i
 	rm -f .banner .allconfig.tmp
 
 .PHONY: _distclean
@@ -405,6 +406,7 @@ $(TARGET): delete-unfresh-files
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C include
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) include
 	$(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h
+	$(MAKE) -f $(BASEDIR)/Rules.mk include/xen/hypercall-defs.h
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
 
 # drivers/char/console.o contains static banner/compile info. Blow it away.
@@ -466,6 +468,14 @@ include/asm-$(TARGET_ARCH)/asm-offsets.h: asm-offsets.s
 	  echo ""; \
 	  echo "#endif") <$< >$@
 
+quiet_cmd_genhyp = GEN     $@
+define cmd_genhyp
+    awk -f scripts/gen_hypercall.awk <$< >$@
+endef
+
+include/xen/hypercall-defs.h: include/hypercall-defs.i scripts/gen_hypercall.awk FORCE
+	$(call if_changed,genhyp)
+
 SUBDIRS = xsm arch/$(TARGET_ARCH) common drivers lib test
 define all_sources
     ( find include/asm-$(TARGET_ARCH) -name '*.h' -print; \
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
new file mode 100644
index 0000000000..67f6081558
--- /dev/null
+++ b/xen/include/hypercall-defs.c
@@ -0,0 +1,285 @@
+/*
+ * Hypercall interface description:
+ * Used by scripts/gen_hypercall.awk to generate hypercall prototypes and call
+ * sequences.
+ *
+ * Syntax is like a prototype, but without return type and without the ";" at
+ * the end. Pointer types will be automatically converted to use the
+ * XEN_GUEST_HANDLE_PARAM() macro. Handlers with no parameters just use a
+ * definition like "fn()".
+ * Hypercall/function names are without the leading "__HYPERVISOR_"/"do_"
+ * strings.
+ *
+ * The return type of a class of prototypes using the same prefix is set via:
+ * rettype: <prefix> <type>
+ * Default return type is "long". A return type for a prefix can be set only
+ * once and it needs to be set before that prefix is being used via the
+ * "prefix:" directive.
+ *
+ * The prefix of the prototypes is set via a line:
+ * prefix: <prefix> ...
+ * Multiple prefixes are possible (restriction see below). Prefixes are without
+ * a trailing "_". The current prefix settings are active until a new "prefix:"
+ * line.
+ *
+ * Caller macros are suffixed with a selectable name via lines like:
+ * caller: <suffix>
+ * When a caller suffix is active, there is only one active prefix allowed.
+ *
+ * With a "defhandle:" line it is possible to add a DEFINE_XEN_GUEST_HANDLE()
+ * to the generated header:
+ * defhandle: <handle-type> [<type>]
+ * Without specifying <type> only a DEFINE_XEN_GUEST_HANDLE(<handle-type>)
+ * will be generated, otherwise it will be a
+ * __DEFINE_XEN_GUEST_HANDLE(<handle-type>, <type>) being generated. Note that
+ * the latter will include the related "const" handle "const_<handle-type>".
+ *
+ * In order to support using coding style compliant pointers in the
+ * prototypes it is possible to add translation entries to generate the correct
+ * handle types:
+ * handle: <handle-type> <type>
+ * This will result in the prototype translation from "<type> *" to
+ * "XEN_GUEST_HANDLE_PARAM(<handle-type>)".
+ *
+ * A verbatim line can be added via:
+ * addline: <line-contents>
+ * Its position is kept in regard of other "handle:" and "defhandle:" lines.
+ *
+ * The hypercall handler calling code will be generated from a final table in
+ * the source file, which is started via the line:
+ * table: <caller> <caller> ...
+ * with the <caller>s specifying the designated caller macro of each column of
+ * the table. Any column of a <caller> not having been set via a "caller:"
+ * line will be ignored.
+ * The first column of the table contains the hypercall/prototype, each
+ * <caller> column contains the prefix for the function to use for that caller.
+ * A function prefix can be annotated with a priority by adding ":<prio>" to it
+ * ("1" being the highest priority, higher numbers mean lower priority, no
+ * priority specified is the lowest priority). The generated code will try to
+ * achieve better performance for calling high priority handlers.
+ * A column not being supported by a <caller> is marked with "-". Lines with all
+ * entries being "-" after removal of inactive <caller> columns are ignored.
+ *
+ * This file is being preprocessed using $(CPP), so #ifdef CONFIG_* conditionals
+ * are possible.
+ */
+
+#ifdef CONFIG_HVM
+#define PREFIX_hvm hvm
+#else
+#define PREFIX_hvm
+#endif
+
+#ifdef CONFIG_COMPAT
+#define PREFIX_compat compat
+rettype: compat int
+#else
+#define PREFIX_compat
+#endif
+
+#ifdef CONFIG_ARM
+#define PREFIX_dep dep
+#else
+#define PREFIX_dep
+#endif
+
+handle: uint unsigned int
+handle: const_void const void
+handle: const_char const char
+
+#ifdef CONFIG_COMPAT
+defhandle: multicall_entry_compat_t
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+addline: typedef struct compat_platform_op compat_platform_op_t;
+defhandle: compat_platform_op_t
+#endif
+#endif
+#ifdef CONFIG_PV32
+defhandle: trap_info_compat_t
+defhandle: physdev_op_compat_t
+#endif
+
+prefix: do PREFIX_hvm PREFIX_compat
+physdev_op(int cmd, void *arg)
+#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
+grant_table_op(unsigned int cmd, void *uop, unsigned int count)
+#endif
+
+prefix: do PREFIX_hvm
+memory_op(unsigned long cmd, void *arg)
+
+prefix: do PREFIX_compat
+xen_version(int cmd, void *arg)
+vcpu_op(int cmd, unsigned int vcpuid, void *arg)
+sched_op(int cmd, void *arg)
+xsm_op(void *op)
+callback_op(int cmd, const void *arg)
+#ifdef CONFIG_ARGO
+argo_op(unsigned int cmd, void *arg1, void *arg2, unsigned long arg3, unsigned long arg4)
+#endif
+#ifdef CONFIG_KEXEC
+kexec_op(unsigned int op, void *uarg)
+#endif
+#ifdef CONFIG_PV
+iret()
+nmi_op(unsigned int cmd, void *arg)
+#ifdef CONFIG_XENOPROF
+xenoprof_op(int op, void *arg)
+#endif
+#endif /* CONFIG_PV */
+
+#ifdef CONFIG_COMPAT
+prefix: compat
+set_timer_op(uint32_t lo, int32_t hi)
+multicall(multicall_entry_compat_t *call_list, uint32_t nr_calls)
+memory_op(unsigned int cmd, void *arg)
+#ifdef CONFIG_IOREQ_SERVER
+dm_op(domid_t domid, unsigned int nr_bufs, void *bufs)
+#endif
+mmuext_op(void *arg, unsigned int count, uint *pdone, unsigned int foreigndom)
+#ifdef CONFIG_PV32
+set_trap_table(trap_info_compat_t *traps)
+set_gdt(unsigned int *frame_list, unsigned int entries)
+set_callbacks(unsigned long event_selector, unsigned long event_address, unsigned long failsafe_selector, unsigned long failsafe_address)
+update_descriptor(uint32_t pa_lo, uint32_t pa_hi, uint32_t desc_lo, uint32_t desc_hi)
+update_va_mapping(unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags)
+physdev_op_compat(physdev_op_compat_t *uop)
+update_va_mapping_otherdomain(unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags, domid_t domid)
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+platform_op(compat_platform_op_t *u_xenpf_op)
+#endif
+#endif /* CONFIG_COMPAT */
+
+#if defined(CONFIG_PV) || defined(CONFIG_ARM)
+prefix: do PREFIX_dep
+event_channel_op_compat(evtchn_op_t *uop)
+physdev_op_compat(physdev_op_t *uop)
+/* Legacy hypercall (as of 0x00030101). */
+sched_op_compat(int cmd, unsigned long arg)
+#endif
+
+prefix: do
+set_timer_op(s_time_t timeout)
+console_io(unsigned int cmd, unsigned int count, char *buffer)
+vm_assist(unsigned int cmd, unsigned int type)
+event_channel_op(int cmd, void *arg)
+mmuext_op(mmuext_op_t *uops, unsigned int count, unsigned int *pdone, unsigned int foreigndom)
+multicall(multicall_entry_t *call_list, unsigned int nr_calls)
+#ifdef CONFIG_PV
+mmu_update(mmu_update_t *ureqs, unsigned int count, unsigned int *pdone, unsigned int foreigndom)
+stack_switch(unsigned long ss, unsigned long esp)
+fpu_taskswitch(int set)
+set_debugreg(int reg, unsigned long value)
+get_debugreg(int reg)
+set_segment_base(unsigned int which, unsigned long base)
+mca(xen_mc_t *u_xen_mc)
+set_trap_table(const_trap_info_t *traps)
+set_gdt(xen_ulong_t *frame_list, unsigned int entries)
+set_callbacks(unsigned long event_address, unsigned long failsafe_address, unsigned long syscall_address)
+update_descriptor(uint64_t gaddr, seg_desc_t desc)
+update_va_mapping(unsigned long va, uint64_t val64, unsigned long flags)
+update_va_mapping_otherdomain(unsigned long va, uint64_t val64, unsigned long flags, domid_t domid)
+#endif
+#ifdef CONFIG_IOREQ_SERVER
+dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+sysctl(xen_sysctl_t *u_sysctl)
+domctl(xen_domctl_t *u_domctl)
+paging_domctl_cont(xen_domctl_t *u_domctl)
+platform_op(xen_platform_op_t *u_xenpf_op)
+#endif
+#ifdef CONFIG_HVM
+hvm_op(unsigned long op, void *arg)
+#endif
+#ifdef CONFIG_HYPFS
+hypfs_op(unsigned int cmd, const char *arg1, unsigned long arg2, void *arg3, unsigned long arg4)
+#endif
+#ifdef CONFIG_X86
+xenpmu_op(unsigned int op, xen_pmu_params_t *arg)
+#endif
+
+#ifdef CONFIG_PV
+caller: pv64
+#ifdef CONFIG_PV32
+caller: pv32
+#endif
+#endif
+#if defined(CONFIG_HVM) && defined(CONFIG_X86)
+caller: hvm64
+#ifdef CONFIG_COMPAT
+caller: hvm32
+#endif
+#endif
+#ifdef CONFIG_ARM
+caller: arm
+#endif
+
+table:                             pv32     pv64     hvm32    hvm64    arm
+set_trap_table                     compat   do       -        -        -
+mmu_update                         do:1     do:1     -        -        -
+set_gdt                            compat   do       -        -        -
+stack_switch                       do:2     do:2     -        -        -
+set_callbacks                      compat   do       -        -        -
+fpu_taskswitch                     do       do       -        -        -
+sched_op_compat                    do       do       -        -        dep
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+platform_op                        compat   do       compat   do       do
+#endif
+set_debugreg                       do       do       -        -        -
+get_debugreg                       do       do       -        -        -
+update_descriptor                  compat   do       -        -        -
+memory_op                          compat   do       hvm      hvm      do
+multicall                          compat:2 do:2     compat   do       do
+update_va_mapping                  compat   do       -        -        -
+set_timer_op                       compat   do       compat   do       -
+event_channel_op_compat            do       do       -        -        dep
+xen_version                        compat   do       compat   do       do
+console_io                         do       do       do       do       do
+physdev_op_compat                  compat   do       -        -        dep
+#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
+grant_table_op                     compat   do       hvm      hvm      do
+#endif
+vm_assist                          do       do       do       do       do
+update_va_mapping_otherdomain      compat   do       -        -        -
+iret                               compat:1 do:1     -        -        -
+vcpu_op                            compat   do       compat:1 do:1     do
+set_segment_base                   do:2     do:2     -        -        -
+#ifdef CONFIG_PV
+mmuext_op                          compat:2 do:2     compat   do       -
+#endif
+xsm_op                             compat   do       compat   do       do
+nmi_op                             compat   do       -        -        -
+sched_op                           compat   do       compat   do       do
+callback_op                        compat   do       -        -        -
+#ifdef CONFIG_XENOPROF
+xenoprof_op                        compat   do       -        -        -
+#endif
+event_channel_op                   do       do       do:1     do:1     do
+physdev_op                         compat   do       hvm      hvm      do
+#ifdef CONFIG_HVM
+hvm_op                             do       do       do       do       do
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+sysctl                             do       do       do       do       do
+domctl                             do       do       do       do       do
+#endif
+#ifdef CONFIG_KEXEC
+kexec_op                           compat   do       -        -        -
+#endif
+tmem_op                            -        -        -        -        -
+#ifdef CONFIG_ARGO
+argo_op                            compat   do       compat   do       do
+#endif
+xenpmu_op                          do       do       do       do       -
+#ifdef CONFIG_IOREQ_SERVER
+dm_op                              compat   do       compat   do       do
+#endif
+#ifdef CONFIG_HYPFS
+hypfs_op                           do       do       do       do       do
+#endif
+mca                                do       do       -        -        -
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+paging_domctl_cont                 do       do       do       do       -
+#endif
diff --git a/xen/scripts/gen_hypercall.awk b/xen/scripts/gen_hypercall.awk
new file mode 100644
index 0000000000..26017c0900
--- /dev/null
+++ b/xen/scripts/gen_hypercall.awk
@@ -0,0 +1,306 @@
+# awk script to generate hypercall handler prototypes and a macro for doing
+# the calls of the handlers inside a switch() statement.
+
+BEGIN {
+    printf("/* Generated file, do not edit! */\n\n");
+    e = 0;
+    n = 0;
+    p = 0;
+    nc = 0;
+}
+
+# Issue error to stderr
+function do_err(msg) {
+    print "Error: "msg": "$0 >"/dev/stderr";
+    exit 1;
+}
+
+# Generate handler call
+function do_call(f, p,    i) {
+    printf("            ret = %s_%s(", pre[f, p], fn[f]);
+    for (i = 1; i <= n_args[f]; i++) {
+        if (i > 1)
+            printf(", ");
+        if (ptr[f, i])
+            printf("(XEN_GUEST_HANDLE_PARAM(%s)){ _p(a%d) }", typ[f, i], i);
+        else
+            printf("(%s)(a%d)", typ[f, i], i);
+    }
+    printf("); \\\n");
+}
+
+# Generate case statement for call
+function do_case(f, p) {
+    printf("        case __HYPERVISOR_%s: \\\n", fn[f]);
+    do_call(f, p);
+    printf("            break; \\\n");
+}
+
+# Generate switch statement for calling handlers
+function do_switch(ca, p,    i) {
+    printf("        switch ( num ) \\\n");
+    printf("        { \\\n");
+    for (i = 1; i <= nc; i++)
+        if (call[i] == ca && call_prio[i] == p)
+            do_case(call_fn[i], call_p[i]);
+    printf("        default: \\\n");
+    printf("            ret = -ENOSYS; \\\n");
+    printf("            break; \\\n");
+    printf("        } \\\n");
+}
+
+function rest_of_line(par,    i, val) {
+    val = $(par);
+    for (i = par + 1; i <= NF; i++)
+        val = val " " $(i);
+    return val;
+}
+
+# Handle comments (multi- and single line)
+$1 == "/*" {
+    comment = 1;
+}
+comment == 1 {
+    if ($(NF) == "*/") comment = 0;
+    next;
+}
+
+# Skip preprocessing artefacts
+$1 == "extern" {
+    next;
+}
+/^#/ {
+    next;
+}
+
+# Drop empty lines
+NF == 0 {
+    next;
+}
+
+# Handle "handle:" line
+$1 == "handle:" {
+    if (NF < 3)
+        do_err("\"handle:\" requires at least two parameters");
+    val = rest_of_line(3);
+    xlate[val] = $2;
+    next;
+}
+
+# Handle "defhandle:" line
+$1 == "defhandle:" {
+    if (NF < 2)
+        do_err("\"defhandle:\" requires at least one parameter");
+    e++;
+    if (NF == 2) {
+        emit[e] = sprintf("DEFINE_XEN_GUEST_HANDLE(%s);", $2);
+    } else {
+        val = rest_of_line(3);
+        emit[e] = sprintf("__DEFINE_XEN_GUEST_HANDLE(%s, %s);", $2, val);
+        xlate[val] = $2;
+    }
+    next;
+}
+
+# Handle "addline:" line
+$1 == "addline:" {
+    if (NF < 2)
+        do_err("\"addline:\" requires at least one parameter");
+    e++;
+    emit[e] = rest_of_line(2);
+    next;
+}
+
+# Handle "rettype:" line
+$1 == "rettype:" {
+    if (NF < 3)
+        do_err("\"rettype:\" requires at least two parameters");
+    if ($2 in rettype)
+        do_err("rettype can be set only once for each prefix");
+    rettype[$2] = rest_of_line(3);
+    next;
+}
+
+# Handle "caller:" line
+$1 == "caller:" {
+    caller[$2] = 1;
+    next;
+}
+
+# Handle "prefix:" line
+$1 == "prefix:" {
+    p = NF - 1;
+    for (i = 2; i <= NF; i++) {
+        prefix[i - 1] = $(i);
+        if (!(prefix[i - 1] in rettype))
+            rettype[prefix[i - 1]] = "long";
+    }
+    next;
+}
+
+# Handle "table:" line
+$1 == "table:" {
+    table = 1;
+    for (i = 2; i <= NF; i++)
+        col[i - 1] = $(i);
+    n_cols = NF - 1;
+    next;
+}
+
+# Handle table definition line
+table == 1 {
+    if (NF != n_cols + 1)
+        do_err("Table definition line has wrong number of fields");
+    for (c = 1; c <= n_cols; c++) {
+        if (caller[col[c]] != 1)
+            continue;
+        if ($(c + 1) == "-")
+            continue;
+        pref = $(c + 1);
+        idx = index(pref, ":");
+        if (idx == 0)
+            prio = 100;
+        else {
+            prio = substr(pref, idx + 1) + 0;
+            pref = substr(pref, 1, idx - 1);
+            if (prio >= 100 || prio < 1)
+                do_err("Priority must be in the range 1..99");
+        }
+        fnd = 0;
+        for (i = 1; i <= n; i++) {
+            if (fn[i] != $1)
+                continue;
+            for (j = 1; j <= n_pre[i]; j++) {
+                if (pre[i, j] == pref) {
+                    prios[col[c], prio]++;
+                    if (prios[col[c], prio] == 1) {
+                        n_prios[col[c]]++;
+                        prio_list[col[c], n_prios[col[c]]] = prio;
+                        prio_mask[col[c], prio] = "(1ULL << __HYPERVISOR_"$1")";
+                    } else
+                        prio_mask[col[c], prio] = prio_mask[col[c], prio] " | (1ULL << __HYPERVISOR_"$1")";
+                    nc++;
+                    call[nc] = col[c];
+                    call_fn[nc] = i;
+                    call_p[nc] = j;
+                    call_prio[nc] = prio;
+                    fnd = 1;
+                }
+            }
+        }
+        if (fnd == 0)
+            do_err("No prototype for prefix/hypercall combination");
+    }
+    next;
+}
+
+# Prototype line
+{
+    bro = index($0, "(");
+    brc = index($0, ")");
+    if (bro < 2 || brc < bro)
+        do_err("No valid prototype line");
+    n++;
+    fn[n] = substr($0, 1, bro - 1);
+    n_pre[n] = p;
+    for (i = 1; i <= p; i++)
+        pre[n, i] = prefix[i];
+    args = substr($0, bro + 1, brc - bro - 1);
+    n_args[n] = split(args, a, ",");
+    if (n_args[n] > 5)
+        do_err("Too many parameters");
+    for (i = 1; i <= n_args[n]; i++) {
+        sub("^ *", "", a[i]);         # Remove leading white space
+        sub(" +", " ", a[i]);         # Replace multiple spaces with single ones
+        sub(" *$", "", a[i]);         # Remove trailing white space
+        ptr[n, i] = index(a[i], "*"); # Is it a pointer type?
+        sub("[*]", "", a[i]);         # Remove "*"
+        if (index(a[i], " ") == 0)
+            do_err("Parameter with no type or no name");
+        typ[n, i] = a[i];
+        sub(" [^ ]+$", "", typ[n, i]);    # Remove parameter name
+        if (ptr[n, i] && (typ[n, i] in xlate))
+            typ[n, i] = xlate[typ[n, i]];
+        arg[n, i] = a[i];
+        sub("^([^ ]+ )+", "", arg[n, i]); # Remove parameter type
+    }
+}
+
+# Generate the output
+END {
+    # Verbatim generated lines
+    for (i = 1; i <= e; i++)
+        printf("%s\n", emit[i]);
+    printf("\n");
+    # Generate prototypes
+    for (i = 1; i <= n; i++) {
+        for (p = 1; p <= n_pre[i]; p++) {
+            printf("%s %s_%s(", rettype[pre[i, p]], pre[i, p], fn[i]);
+            if (n_args[i] == 0)
+                printf("void");
+            else
+                for (j = 1; j <= n_args[i]; j++) {
+                    if (j > 1)
+                        printf(", ");
+                    if (ptr[i, j])
+                        printf("XEN_GUEST_HANDLE_PARAM(%s)", typ[i, j]);
+                    else
+                        printf("%s", typ[i, j]);
+                    printf(" %s", arg[i, j]);
+                }
+            printf(");\n");
+        }
+    }
+    # Generate call sequences and args array contents
+    for (ca in caller) {
+        if (caller[ca] != 1)
+            continue;
+        for (pl = 1; pl <= n_prios[ca]; pl++)
+            p_list[pl] = prio_list[ca, pl];
+        asort(p_list, p_list, "@val_num_asc");
+        need_mask = 0;
+        # If any prio but the default one has more than 1 entry we need "mask"
+        for (pl = 1; pl < n_prios[ca]; pl++) {
+            if (prios[ca, p_list[pl]] > 1)
+                need_mask = 1;
+        }
+        printf("\n");
+        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5) \\\n", ca);
+        printf("{ \\\n");
+        if (need_mask)
+            printf("    uint64_t mask = 1ULL << num; \\\n");
+        for (pl = 1; pl <= n_prios[ca]; pl++) {
+            if (prios[ca, p_list[pl]] > 1) {
+                if (pl < n_prios[ca]) {
+                    printf("if ( likely(mask & (%s)) ) \\\n", prio_mask[ca, p_list[pl]]);
+                    printf("    { \\\n");
+                }
+                do_switch(ca, p_list[pl]);
+                if (pl < n_prios[ca])
+                    printf("    } \\\n");
+            } else {
+                for (i = 1; i <= nc; i++)
+                    if (call[i] == ca && call_prio[i] == p_list[pl]) {
+                        printf("if ( likely(num == __HYPERVISOR_%s) ) \\\n", fn[call_fn[i]]);
+                        printf("    { \\\n");
+                        do_call(call_fn[i], call_p[i]);
+                        printf("    } \\\n");
+                    }
+            }
+            if (pl < n_prios[ca] || prios[ca, pl] == 1)
+                printf("    else ");
+        }
+        if (prios[ca, p_list[n_prios[ca]]] == 1) {
+            printf("\\\n");
+            printf("        ret = -ENOSYS; \\\n");
+        }
+        printf("}\n");
+        printf("\n");
+        printf("#define hypercall_args_%s \\\n", ca);
+        printf("{ \\\n");
+        for (i = 1; i <= nc; i++)
+            if (call[i] == ca)
+                printf("[__HYPERVISOR_%s] = %d, \\\n", fn[call_fn[i]], n_args[call_fn[i]]);
+        printf("}\n");
+    }
+}
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219242.379963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6q-0000Nv-Lg; Mon, 01 Nov 2021 15:20:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219242.379963; Mon, 01 Nov 2021 15:20:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6q-0000NA-Dj; Mon, 01 Nov 2021 15:20:28 +0000
Received: by outflank-mailman (input) for mailman id 219242;
 Mon, 01 Nov 2021 15:20:26 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ6o-0008DB-N4
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:26 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 39e8e23f-3b27-11ec-8548-12813bfff9fa;
 Mon, 01 Nov 2021 15:20:21 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 5931E1FD74;
 Mon,  1 Nov 2021 15:20:20 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2A54F13A4A;
 Mon,  1 Nov 2021 15:20:20 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id IKMkCbQFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39e8e23f-3b27-11ec-8548-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780020; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=vhomWgPmAB7x68Oplva3qmbUNlYIW6PdvMm3Ze/DnM0=;
	b=iM/bCRPR8+4oxMRIz/ktO+tA0k1quuujIUtGLxzf5pFO2ufnnLy9cMrCJEPZmiHFoBOah1
	wGeRFBF/1VuD1G+mzVTzoPVNBHJ+Pdo3HoFZmxkosfdld7SjUyZJUNMA1nCWxgQ3tTFwRC
	5wWyCk/8JCaJ/DGFWwcjq2UDHTyIqdk=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 04/15] xen/x86: modify hvm_memory_op() prototype
Date: Mon,  1 Nov 2021 16:20:04 +0100
Message-Id: <20211101152015.28488-5-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

hvm_memory_op() should take an unsigned long as cmd, like
do_memory_op().

As hvm_memory_op() is basically just calling do_memory_op() (or
compat_memory_op()) passing through the parameters the cmd parameter
should have no smaller size than that of the called functions.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/hvm/hypercall.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 5be1050453..9d3b193bad 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -31,7 +31,7 @@
 #include <public/hvm/hvm_op.h>
 #include <public/hvm/params.h>
 
-static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+static long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     long rc;
 
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219243.379980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6v-0000zL-5M; Mon, 01 Nov 2021 15:20:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219243.379980; Mon, 01 Nov 2021 15:20:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6v-0000zC-19; Mon, 01 Nov 2021 15:20:33 +0000
Received: by outflank-mailman (input) for mailman id 219243;
 Mon, 01 Nov 2021 15:20:31 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ6t-0008DA-LV
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:31 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id a64fad89-62ab-4361-a7c4-f83d0abe5eca;
 Mon, 01 Nov 2021 15:20:22 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 943E91FD76;
 Mon,  1 Nov 2021 15:20:21 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 4F6BB13A4A;
 Mon,  1 Nov 2021 15:20:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id sIdCErUFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a64fad89-62ab-4361-a7c4-f83d0abe5eca
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780021; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Vy8JcJWVw65yCZbccWa3q9rZy/5hhpoMxVQDYJ3G428=;
	b=NI8jJ9z3RiomK/knhPsY32C2QuWrSYWpP9CVShq1qOgvIRDW5uZRAZXswNiIAExh6vmPi8
	O0j6aR1NzzXUwTQi8nKDLMA/bEwXPN1i7tK3PJjnD24o3KWyVvRw0K6gk7R7fmHOGPch51
	i9FOoRWp66pTkuRpFyysN+iy/i8d8XA=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 08/15] xen: use generated prototypes for hypercall handlers
Date: Mon,  1 Nov 2021 16:20:08 +0100
Message-Id: <20211101152015.28488-9-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Remove the hypercall handler's prototypes in the related header files
and use the generated ones instead.

Some handlers having been static before need to be made globally
visible.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/hvm/hypercall.c    |   6 +-
 xen/include/asm-x86/hypercall.h | 133 ------------------------
 xen/include/xen/hypercall.h     | 179 +-------------------------------
 3 files changed, 5 insertions(+), 313 deletions(-)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 9d3b193bad..85b7a33523 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -31,7 +31,7 @@
 #include <public/hvm/hvm_op.h>
 #include <public/hvm/params.h>
 
-static long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     long rc;
 
@@ -51,7 +51,7 @@ static long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 }
 
 #ifdef CONFIG_GRANT_TABLE
-static long hvm_grant_table_op(
+long hvm_grant_table_op(
     unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
 {
     switch ( cmd )
@@ -77,7 +77,7 @@ static long hvm_grant_table_op(
 }
 #endif
 
-static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     const struct vcpu *curr = current;
     const struct domain *currd = curr->domain;
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index efe5963ee5..2547572ccd 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -52,104 +52,6 @@ void pv_ring3_init_hypercall_page(void *ptr);
  */
 #define MMU_UPDATE_PREEMPTED          (~(~0U>>1))
 
-extern long
-do_event_channel_op_compat(
-    XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop);
-
-/* Legacy hypercall (as of 0x00030202). */
-extern long do_physdev_op_compat(
-    XEN_GUEST_HANDLE(physdev_op_t) uop);
-
-/* Legacy hypercall (as of 0x00030101). */
-extern long do_sched_op_compat(
-    int cmd, unsigned long arg);
-
-extern long
-do_set_trap_table(
-    XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps);
-
-extern long
-do_mmu_update(
-    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
-    unsigned int count,
-    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-    unsigned int foreigndom);
-
-extern long
-do_set_gdt(
-    XEN_GUEST_HANDLE_PARAM(xen_ulong_t) frame_list,
-    unsigned int entries);
-
-extern long
-do_stack_switch(
-    unsigned long ss,
-    unsigned long esp);
-
-extern long
-do_fpu_taskswitch(
-    int set);
-
-extern long
-do_set_debugreg(
-    int reg,
-    unsigned long value);
-
-extern long
-do_get_debugreg(
-    int reg);
-
-extern long
-do_update_descriptor(
-    uint64_t gaddr, seg_desc_t desc);
-
-extern long
-do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);
-
-extern long
-do_update_va_mapping(
-    unsigned long va,
-    uint64_t val64,
-    unsigned long flags);
-
-extern long
-do_update_va_mapping_otherdomain(
-    unsigned long va,
-    uint64_t val64,
-    unsigned long flags,
-    domid_t domid);
-
-extern long
-do_mmuext_op(
-    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
-    unsigned int count,
-    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-    unsigned int foreigndom);
-
-extern long do_callback_op(
-    int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg);
-
-extern long
-do_iret(
-    void);
-
-extern long
-do_set_callbacks(
-    unsigned long event_address,
-    unsigned long failsafe_address,
-    unsigned long syscall_address);
-
-extern long
-do_set_segment_base(
-    unsigned int which,
-    unsigned long base);
-
-long do_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-long do_xenpmu_op(unsigned int op,
-                  XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg);
-
-long do_paging_domctl_cont(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
-
 #ifdef CONFIG_COMPAT
 
 #include <compat/arch-x86/xen.h>
@@ -159,41 +61,6 @@ extern int
 compat_common_vcpu_op(
     int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern int compat_mmuext_op(
-    XEN_GUEST_HANDLE_PARAM(void) arg,
-    unsigned int count,
-    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-    unsigned int foreigndom);
-
-extern int compat_callback_op(
-    int cmd, XEN_GUEST_HANDLE(const_void) arg);
-
-extern int compat_update_va_mapping(
-    unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags);
-
-extern int compat_update_va_mapping_otherdomain(
-    unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags, domid_t domid);
-
-DEFINE_XEN_GUEST_HANDLE(trap_info_compat_t);
-extern int compat_set_trap_table(XEN_GUEST_HANDLE(trap_info_compat_t) traps);
-
-extern int compat_set_gdt(
-    XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries);
-
-extern int compat_update_descriptor(
-    uint32_t pa_lo, uint32_t pa_hi, uint32_t desc_lo, uint32_t desc_hi);
-
-extern int compat_iret(void);
-
-extern int compat_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int compat_set_callbacks(
-    unsigned long event_selector, unsigned long event_address,
-    unsigned long failsafe_selector, unsigned long failsafe_address);
-
-DEFINE_XEN_GUEST_HANDLE(physdev_op_compat_t);
-extern int compat_physdev_op_compat(XEN_GUEST_HANDLE(physdev_op_compat_t) uop);
-
 #endif /* CONFIG_COMPAT */
 
 #endif /* __ASM_X86_HYPERCALL_H__ */
diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
index 9266bc86e9..cf6a3c463d 100644
--- a/xen/include/xen/hypercall.h
+++ b/xen/include/xen/hypercall.h
@@ -18,33 +18,19 @@
 #include <asm/hypercall.h>
 #include <xsm/xsm.h>
 
-extern long
-do_sched_op(
-    int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long
-do_domctl(
-    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
+/* Needs to be after asm/hypercall.h. */
+#include <xen/hypercall-defs.h>
 
 extern long
 arch_do_domctl(
     struct xen_domctl *domctl, struct domain *d,
     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
 
-extern long
-do_sysctl(
-    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
-
 extern long
 arch_do_sysctl(
     struct xen_sysctl *sysctl,
     XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
 
-extern long
-do_platform_op(
-    XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op);
-
 extern long
 pci_physdev_op(
     int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
@@ -62,172 +48,11 @@ pci_physdev_op(
 #define MEMOP_EXTENT_SHIFT 6 /* cmd[:6] == start_extent */
 #define MEMOP_CMD_MASK     ((1 << MEMOP_EXTENT_SHIFT) - 1)
 
-extern long
-do_memory_op(
-    unsigned long cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long
-do_multicall(
-    XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list,
-    unsigned int nr_calls);
-
-extern long
-do_set_timer_op(
-    s_time_t timeout);
-
-extern long
-do_event_channel_op(
-    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long
-do_xen_version(
-    int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long
-do_console_io(
-    unsigned int cmd,
-    unsigned int count,
-    XEN_GUEST_HANDLE_PARAM(char) buffer);
-
-extern long
-do_grant_table_op(
-    unsigned int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) uop,
-    unsigned int count);
-
-extern long
-do_vm_assist(
-    unsigned int cmd,
-    unsigned int type);
-
-extern long
-do_vcpu_op(
-    int cmd,
-    unsigned int vcpuid,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
-struct vcpu;
 extern long
 common_vcpu_op(int cmd,
     struct vcpu *v,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
-do_hvm_op(
-    unsigned long op,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long
-do_kexec_op(
-    unsigned int op,
-    XEN_GUEST_HANDLE_PARAM(void) uarg);
-
-extern long
-do_xsm_op(
-    XEN_GUEST_HANDLE_PARAM(void) u_xsm_op);
-
-long do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-#ifdef CONFIG_ARGO
-extern long do_argo_op(
-    unsigned int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg1,
-    XEN_GUEST_HANDLE_PARAM(void) arg2,
-    unsigned long arg3,
-    unsigned long arg4);
-#endif
-
-extern long
-do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long
-do_dm_op(
-    domid_t domid,
-    unsigned int nr_bufs,
-    XEN_GUEST_HANDLE_PARAM(xen_dm_op_buf_t) bufs);
-
-#ifdef CONFIG_HYPFS
-extern long
-do_hypfs_op(
-    unsigned int cmd,
-    XEN_GUEST_HANDLE_PARAM(const_char) arg1,
-    unsigned long arg2,
-    XEN_GUEST_HANDLE_PARAM(void) arg3,
-    unsigned long arg4);
-#endif
-
-#ifdef CONFIG_COMPAT
-
-extern int
-compat_memory_op(
-    unsigned int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int
-compat_grant_table_op(
-    unsigned int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) uop,
-    unsigned int count);
-
-extern int
-compat_vcpu_op(
-    int cmd,
-    unsigned int vcpuid,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int
-compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int
-compat_xen_version(
-    int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int
-compat_sched_op(
-    int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int
-compat_set_timer_op(
-    uint32_t lo,
-    int32_t hi);
-
-extern int compat_xsm_op(
-    XEN_GUEST_HANDLE_PARAM(void) op);
-
-extern int compat_kexec_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(void) uarg);
-
-DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
-extern int compat_multicall(
-    XEN_GUEST_HANDLE_PARAM(multicall_entry_compat_t) call_list,
-    uint32_t nr_calls);
-
-int compat_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-typedef struct compat_platform_op compat_platform_op_t;
-DEFINE_XEN_GUEST_HANDLE(compat_platform_op_t);
-int compat_platform_op(XEN_GUEST_HANDLE_PARAM(compat_platform_op_t) u_xenpf_op);
-
-#ifdef CONFIG_ARGO
-extern int compat_argo_op(
-    unsigned int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg1,
-    XEN_GUEST_HANDLE_PARAM(void) arg2,
-    unsigned long arg3,
-    unsigned long arg4);
-#endif
-
-extern int
-compat_dm_op(
-    domid_t domid,
-    unsigned int nr_bufs,
-    XEN_GUEST_HANDLE_PARAM(void) bufs);
-
-#endif
-
 void arch_get_xen_caps(xen_capabilities_info_t *info);
 
 #endif /* __XEN_HYPERCALL_H__ */
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219240.379935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6l-0008DT-LO; Mon, 01 Nov 2021 15:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219240.379935; Mon, 01 Nov 2021 15:20:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6l-0008DM-IP; Mon, 01 Nov 2021 15:20:23 +0000
Received: by outflank-mailman (input) for mailman id 219240;
 Mon, 01 Nov 2021 15:20:21 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ6j-0008DB-RS
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:21 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 38ddb02b-3b27-11ec-8548-12813bfff9fa;
 Mon, 01 Nov 2021 15:20:20 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 3004221952;
 Mon,  1 Nov 2021 15:20:19 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D6DC813A4A;
 Mon,  1 Nov 2021 15:20:18 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id H99AM7IFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38ddb02b-3b27-11ec-8548-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780019; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=pc+ZDZ5m0F/zaKgmtGogr6rujd2Fm5UVHDOoHCAIoLs=;
	b=RYS3UsBWsFyr/NTMTJzjf408htvB8kTYf6IkUNJkY14s1JOyE6S2qq1W68tLJeMF8wNnoV
	UByY3Xcq1N7pWLtpnThPUxGYHWLgjhhfcfrDC9E12WihsTvyMJZyeXPeBC+eNS6mpaXMRZ
	afjX20aoPvGXA3a3BfekKBfaAE/XgIM=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Ian Jackson <iwj@xenproject.org>,
	Christopher Clark <christopher.w.clark@gmail.com>
Subject: [PATCH v2 00/15] xen: drop hypercall function tables
Date: Mon,  1 Nov 2021 16:20:00 +0100
Message-Id: <20211101152015.28488-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In order to avoid indirect function calls on the hypercall path as
much as possible this series is removing the hypercall function tables
and is replacing the hypercall handler calls via the function array
by automatically generated call macros.

Another by-product of generating the call macros is the automatic
generating of the hypercall handler prototypes from the same data base
which is used to generate the macros.

This has the additional advantage of using type safe calls of the
handlers and to ensure related handler (e.g. PV and HVM ones) share
the same prototypes.

A very brief performance test (parallel build of the Xen hypervisor
in a 6 vcpu guest) showed a very slim improvement (less than 1%) of
the performance with the patches applied. The test was performed using
a PV and a PVH guest.

Changes in V2:
- new patches 6, 14, 15
- patch 7: support hypercall priorities for faster code
- comments addressed

Juergen Gross (15):
  xen: limit number of hypercall parameters to 5
  xen: move do_vcpu_op() to arch specific code
  xen: harmonize return types of hypercall handlers
  xen/x86: modify hvm_memory_op() prototype
  xen: don't include asm/hypercall.h from C sources
  add .gitignore entries for *.[is] below xen
  xen: generate hypercall interface related code
  xen: use generated prototypes for hypercall handlers
  x86/pv-shim: don't modify hypercall table
  xen/x86: don't use hypercall table for calling compat hypercalls
  xen/x86: call hypercall handlers via generated macro
  xen/arm: call hypercall handlers via generated macro
  xen/x86: add hypercall performance counters for hvm, correct pv
  xen: drop calls_to_multicall performance counter
  tools/xenperf: update hypercall names

 .gitignore                               |   5 +-
 tools/misc/xenperf.c                     |   5 +
 xen/Makefile                             |  10 +
 xen/arch/arm/domain.c                    |  15 +-
 xen/arch/arm/hvm.c                       |   3 +-
 xen/arch/arm/physdev.c                   |   2 +-
 xen/arch/arm/platform_hypercall.c        |   1 +
 xen/arch/arm/traps.c                     | 124 ++-------
 xen/arch/x86/compat.c                    |  14 +-
 xen/arch/x86/cpu/vpmu.c                  |   1 +
 xen/arch/x86/domain.c                    |  11 +-
 xen/arch/x86/domctl.c                    |   4 +-
 xen/arch/x86/hvm/hypercall.c             | 176 ++-----------
 xen/arch/x86/hypercall.c                 |  59 -----
 xen/arch/x86/mm.c                        |   1 -
 xen/arch/x86/mm/paging.c                 |   3 +-
 xen/arch/x86/platform_hypercall.c        |   1 +
 xen/arch/x86/pv/callback.c               |  20 +-
 xen/arch/x86/pv/emul-priv-op.c           |   2 +-
 xen/arch/x86/pv/hypercall.c              | 192 ++------------
 xen/arch/x86/pv/iret.c                   |   5 +-
 xen/arch/x86/pv/misc-hypercalls.c        |  14 +-
 xen/arch/x86/pv/shim.c                   |  54 ++--
 xen/arch/x86/traps.c                     |   2 +-
 xen/arch/x86/x86_64/compat.c             |   1 -
 xen/arch/x86/x86_64/compat/mm.c          |   1 +
 xen/arch/x86/x86_64/domain.c             |  16 +-
 xen/arch/x86/x86_64/mm.c                 |   2 -
 xen/arch/x86/x86_64/platform_hypercall.c |   3 +-
 xen/common/argo.c                        |  12 +-
 xen/common/compat/domain.c               |  14 +-
 xen/common/compat/grant_table.c          |   1 +
 xen/common/compat/multicall.c            |   2 +-
 xen/common/domain.c                      |  11 +-
 xen/common/event_channel.c               |  10 +
 xen/common/grant_table.c                 |  10 +
 xen/common/kexec.c                       |   6 +-
 xen/common/multicall.c                   |   2 +-
 xen/common/trace.c                       |   2 +-
 xen/include/asm-arm/hypercall.h          |   7 +-
 xen/include/asm-x86/hypercall.h          | 204 ++++-----------
 xen/include/asm-x86/paging.h             |   3 -
 xen/include/asm-x86/pv/shim.h            |   3 +
 xen/include/hypercall-defs.c             | 285 +++++++++++++++++++++
 xen/include/xen/hypercall.h              | 181 +-------------
 xen/include/xen/perfc_defn.h             |   1 -
 xen/scripts/gen_hypercall.awk            | 306 +++++++++++++++++++++++
 47 files changed, 870 insertions(+), 937 deletions(-)
 create mode 100644 xen/include/hypercall-defs.c
 create mode 100644 xen/scripts/gen_hypercall.awk

-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219239.379941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6m-0008H0-0s; Mon, 01 Nov 2021 15:20:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219239.379941; Mon, 01 Nov 2021 15:20:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6l-0008Gk-Rd; Mon, 01 Nov 2021 15:20:23 +0000
Received: by outflank-mailman (input) for mailman id 219239;
 Mon, 01 Nov 2021 15:20:21 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ6j-0008DA-RL
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:21 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 13092484-eb58-4f28-b7ee-8f277d1aa63f;
 Mon, 01 Nov 2021 15:20:20 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 6E2B61FD29;
 Mon,  1 Nov 2021 15:20:19 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 38DB713A4A;
 Mon,  1 Nov 2021 15:20:19 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id iD6WDLMFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13092484-eb58-4f28-b7ee-8f277d1aa63f
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780019; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=DEHpkmfZZt1as/ZYBqmT3ZnKiWxNryhzyhq2qPkcsrg=;
	b=VQOhdc8JMSXr770NdXGYoKbD68X0XCUrRBpwUYjT6YKvj3FRT2H63AIdrXGTVZ76HJaInT
	lk94ERWftow7eurqX5vS6a/kYSFR25rL8GnUcy0BXSlHLiLVmdtgGy9yED6ohmgSu6TQLh
	Tv2vGPYBi6mg0DyjUlHhxi2y2/gXpNw=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>
Subject: [PATCH v2 01/15] xen: limit number of hypercall parameters to 5
Date: Mon,  1 Nov 2021 16:20:01 +0100
Message-Id: <20211101152015.28488-2-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Today there is no hypercall with more than 5 parameters, while the ABI
allows up to 6 parameters. Especially for the X86 32-bit case using
6 parameters would require to run without frame pointer, which isn't
very fortunate. Note that for Arm the limit is 5 parameters already.

So limit the maximum number of parameters to 5 for x86, too.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/hvm/hypercall.c    | 28 ++++++++++------------------
 xen/arch/x86/pv/hypercall.c     | 22 ++++++++--------------
 xen/common/trace.c              |  2 +-
 xen/include/asm-x86/hypercall.h |  2 +-
 4 files changed, 20 insertions(+), 34 deletions(-)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 122abf80de..f0321c6cb4 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -239,10 +239,9 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         unsigned long rdx = regs->rdx;
         unsigned long r10 = regs->r10;
         unsigned long r8 = regs->r8;
-        unsigned long r9 = regs->r9;
 
-        HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%lx, %lx, %lx, %lx, %lx, %lx)",
-                    eax, rdi, rsi, rdx, r10, r8, r9);
+        HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%lx, %lx, %lx, %lx, %lx)",
+                    eax, rdi, rsi, rdx, r10, r8);
 
 #ifndef NDEBUG
         /* Deliberately corrupt parameter regs not used by this hypercall. */
@@ -252,13 +251,11 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         case 1: rsi = 0xdeadbeefdeadf00dUL; fallthrough;
         case 2: rdx = 0xdeadbeefdeadf00dUL; fallthrough;
         case 3: r10 = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 4: r8 = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 5: r9 = 0xdeadbeefdeadf00dUL;
+        case 4: r8 = 0xdeadbeefdeadf00dUL;
         }
 #endif
 
-        regs->rax = hvm_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8,
-                                                    r9);
+        regs->rax = hvm_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8);
 
 #ifndef NDEBUG
         if ( !curr->hcall_preempted )
@@ -266,7 +263,6 @@ int hvm_hypercall(struct cpu_user_regs *regs)
             /* Deliberately corrupt parameter regs used by this hypercall. */
             switch ( hypercall_args_table[eax].native )
             {
-            case 6: regs->r9  = 0xdeadbeefdeadf00dUL; fallthrough;
             case 5: regs->r8  = 0xdeadbeefdeadf00dUL; fallthrough;
             case 4: regs->r10 = 0xdeadbeefdeadf00dUL; fallthrough;
             case 3: regs->rdx = 0xdeadbeefdeadf00dUL; fallthrough;
@@ -283,10 +279,9 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         unsigned int edx = regs->edx;
         unsigned int esi = regs->esi;
         unsigned int edi = regs->edi;
-        unsigned int ebp = regs->ebp;
 
-        HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x, %x)", eax,
-                    ebx, ecx, edx, esi, edi, ebp);
+        HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x)", eax,
+                    ebx, ecx, edx, esi, edi);
 
 #ifndef NDEBUG
         /* Deliberately corrupt parameter regs not used by this hypercall. */
@@ -296,14 +291,12 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         case 1: ecx = 0xdeadf00d; fallthrough;
         case 2: edx = 0xdeadf00d; fallthrough;
         case 3: esi = 0xdeadf00d; fallthrough;
-        case 4: edi = 0xdeadf00d; fallthrough;
-        case 5: ebp = 0xdeadf00d;
+        case 4: edi = 0xdeadf00d;
         }
 #endif
 
         curr->hcall_compat = true;
-        regs->rax = hvm_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi,
-                                                    ebp);
+        regs->rax = hvm_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi);
         curr->hcall_compat = false;
 
 #ifndef NDEBUG
@@ -312,7 +305,6 @@ int hvm_hypercall(struct cpu_user_regs *regs)
             /* Deliberately corrupt parameter regs used by this hypercall. */
             switch ( hypercall_args_table[eax].compat )
             {
-            case 6: regs->rbp = 0xdeadf00d; fallthrough;
             case 5: regs->rdi = 0xdeadf00d; fallthrough;
             case 4: regs->rsi = 0xdeadf00d; fallthrough;
             case 3: regs->rdx = 0xdeadf00d; fallthrough;
@@ -349,7 +341,7 @@ enum mc_disposition hvm_do_multicall_call(struct mc_state *state)
             func = array_access_nospec(hvm_hypercall_table, call->op).native;
         if ( func )
             call->result = func(call->args[0], call->args[1], call->args[2],
-                                call->args[3], call->args[4], call->args[5]);
+                                call->args[3], call->args[4]);
         else
             call->result = -ENOSYS;
     }
@@ -361,7 +353,7 @@ enum mc_disposition hvm_do_multicall_call(struct mc_state *state)
             func = array_access_nospec(hvm_hypercall_table, call->op).compat;
         if ( func )
             call->result = func(call->args[0], call->args[1], call->args[2],
-                                call->args[3], call->args[4], call->args[5]);
+                                call->args[3], call->args[4]);
         else
             call->result = -ENOSYS;
     }
diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index 3579ba905c..16a77e3a35 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -145,7 +145,6 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
         unsigned long rdx = regs->rdx;
         unsigned long r10 = regs->r10;
         unsigned long r8 = regs->r8;
-        unsigned long r9 = regs->r9;
 
 #ifndef NDEBUG
         /* Deliberately corrupt parameter regs not used by this hypercall. */
@@ -155,18 +154,17 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
         case 1: rsi = 0xdeadbeefdeadf00dUL; fallthrough;
         case 2: rdx = 0xdeadbeefdeadf00dUL; fallthrough;
         case 3: r10 = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 4: r8 = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 5: r9 = 0xdeadbeefdeadf00dUL;
+        case 4: r8 = 0xdeadbeefdeadf00dUL;
         }
 #endif
         if ( unlikely(tb_init_done) )
         {
-            unsigned long args[6] = { rdi, rsi, rdx, r10, r8, r9 };
+            unsigned long args[5] = { rdi, rsi, rdx, r10, r8 };
 
             __trace_hypercall(TRC_PV_HYPERCALL_V2, eax, args);
         }
 
-        regs->rax = pv_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8, r9);
+        regs->rax = pv_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8);
 
 #ifndef NDEBUG
         if ( !curr->hcall_preempted )
@@ -174,7 +172,6 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
             /* Deliberately corrupt parameter regs used by this hypercall. */
             switch ( hypercall_args_table[eax].native )
             {
-            case 6: regs->r9  = 0xdeadbeefdeadf00dUL; fallthrough;
             case 5: regs->r8  = 0xdeadbeefdeadf00dUL; fallthrough;
             case 4: regs->r10 = 0xdeadbeefdeadf00dUL; fallthrough;
             case 3: regs->rdx = 0xdeadbeefdeadf00dUL; fallthrough;
@@ -192,7 +189,6 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
         unsigned int edx = regs->edx;
         unsigned int esi = regs->esi;
         unsigned int edi = regs->edi;
-        unsigned int ebp = regs->ebp;
 
 #ifndef NDEBUG
         /* Deliberately corrupt parameter regs not used by this hypercall. */
@@ -202,20 +198,19 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
         case 1: ecx = 0xdeadf00d; fallthrough;
         case 2: edx = 0xdeadf00d; fallthrough;
         case 3: esi = 0xdeadf00d; fallthrough;
-        case 4: edi = 0xdeadf00d; fallthrough;
-        case 5: ebp = 0xdeadf00d;
+        case 4: edi = 0xdeadf00d;
         }
 #endif
 
         if ( unlikely(tb_init_done) )
         {
-            unsigned long args[6] = { ebx, ecx, edx, esi, edi, ebp };
+            unsigned long args[5] = { ebx, ecx, edx, esi, edi };
 
             __trace_hypercall(TRC_PV_HYPERCALL_V2, eax, args);
         }
 
         curr->hcall_compat = true;
-        regs->eax = pv_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi, ebp);
+        regs->eax = pv_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi);
         curr->hcall_compat = false;
 
 #ifndef NDEBUG
@@ -224,7 +219,6 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
             /* Deliberately corrupt parameter regs used by this hypercall. */
             switch ( hypercall_args_table[eax].compat )
             {
-            case 6: regs->ebp = 0xdeadf00d; fallthrough;
             case 5: regs->edi = 0xdeadf00d; fallthrough;
             case 4: regs->esi = 0xdeadf00d; fallthrough;
             case 3: regs->edx = 0xdeadf00d; fallthrough;
@@ -262,7 +256,7 @@ enum mc_disposition pv_do_multicall_call(struct mc_state *state)
              pv_hypercall_table[op].compat )
             call->result = pv_hypercall_table[op].compat(
                 call->args[0], call->args[1], call->args[2],
-                call->args[3], call->args[4], call->args[5]);
+                call->args[3], call->args[4]);
         else
             call->result = -ENOSYS;
     }
@@ -276,7 +270,7 @@ enum mc_disposition pv_do_multicall_call(struct mc_state *state)
              pv_hypercall_table[op].native )
             call->result = pv_hypercall_table[op].native(
                 call->args[0], call->args[1], call->args[2],
-                call->args[3], call->args[4], call->args[5]);
+                call->args[3], call->args[4]);
         else
             call->result = -ENOSYS;
     }
diff --git a/xen/common/trace.c b/xen/common/trace.c
index a2a389a1c7..61fecc2b2b 100644
--- a/xen/common/trace.c
+++ b/xen/common/trace.c
@@ -822,7 +822,7 @@ void __trace_hypercall(uint32_t event, unsigned long op,
 {
     struct {
         uint32_t op;
-        uint32_t args[6];
+        uint32_t args[5];
     } d;
     uint32_t *a = d.args;
 
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index 0ae3b8b043..5d394d4923 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -13,7 +13,7 @@
 
 typedef unsigned long hypercall_fn_t(
     unsigned long, unsigned long, unsigned long,
-    unsigned long, unsigned long, unsigned long);
+    unsigned long, unsigned long);
 
 typedef struct {
     hypercall_fn_t *native;
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219244.379985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6v-00013h-Kw; Mon, 01 Nov 2021 15:20:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219244.379985; Mon, 01 Nov 2021 15:20:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6v-00012A-BL; Mon, 01 Nov 2021 15:20:33 +0000
Received: by outflank-mailman (input) for mailman id 219244;
 Mon, 01 Nov 2021 15:20:31 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ6t-0008DB-Ne
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:31 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 38ddb02c-3b27-11ec-8548-12813bfff9fa;
 Mon, 01 Nov 2021 15:20:20 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id C13451FD6F;
 Mon,  1 Nov 2021 15:20:19 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7674813A4A;
 Mon,  1 Nov 2021 15:20:19 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id yC+XG7MFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38ddb02c-3b27-11ec-8548-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780019; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=XG67DS83CIrGacinsOg2WG7ocvVLz9fjlKD5/7+q6zE=;
	b=MEYMGdotgZGdwNeV33M7fDE8Z2Ac60uaX702ELKddiZUiSSQ4WKo5WOnA2XVkDDAjm1WpI
	RwpmVr5CZeuPenjV6ltmKotw1+C5qSS37k8pBOTo2ivTdblxL07zS/QBjQ5PDjdOn4Drzo
	S55G5hUoyCguRv8C4l0e8UNsTF2mu0s=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 02/15] xen: move do_vcpu_op() to arch specific code
Date: Mon,  1 Nov 2021 16:20:02 +0100
Message-Id: <20211101152015.28488-3-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Today Arm is using another entry point for the vcpu_op hypercall as
x86, as some of the common sub-ops are not supported on Arm. The Arm
specific handler filetrs out the not supported sub-ops and then calls
the common handler. This leads to the weird call hierarchy:

  do_arm_vcpu_op()
    do_vcpu_op()
      arch_do_vcpu_op()

Clean this up by renaming do_vcpu_op() to common_vcpu_op() and
arch_do_vcpu_op() in each architecture to do_vcpu_op(). This way one
of above calls can be avoided without restricting any potential
future use of common sub-ops for Arm.

Additionally the single user of HYPERCALL_ARM() can be modified and
HYPERCALL_ARM() can be removed.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 xen/arch/arm/domain.c           | 15 ++++++++-------
 xen/arch/arm/traps.c            |  7 +------
 xen/arch/x86/domain.c           | 11 +++++++----
 xen/arch/x86/x86_64/domain.c    | 16 ++++++++++++----
 xen/common/compat/domain.c      | 14 ++++++--------
 xen/common/domain.c             | 11 ++++-------
 xen/include/asm-arm/hypercall.h |  2 --
 xen/include/asm-x86/hypercall.h |  2 +-
 xen/include/xen/hypercall.h     |  2 +-
 9 files changed, 40 insertions(+), 40 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 96e1b23550..691a14277e 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -1074,23 +1074,24 @@ void arch_dump_domain_info(struct domain *d)
 }
 
 
-long do_arm_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
+    struct domain *d = current->domain;
+    struct vcpu *v;
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return -ENOENT;
+
     switch ( cmd )
     {
         case VCPUOP_register_vcpu_info:
         case VCPUOP_register_runstate_memory_area:
-            return do_vcpu_op(cmd, vcpuid, arg);
+            return common_vcpu_op(cmd, v, arg);
         default:
             return -EINVAL;
     }
 }
 
-long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
-{
-    return -ENOSYS;
-}
-
 void arch_dump_vcpu_info(struct vcpu *v)
 {
     gic_dump_info(v);
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 219ab3c3fb..7abc28848e 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1351,11 +1351,6 @@ typedef struct {
         .nr_args = _nr_args,                                         \
     }
 
-#define HYPERCALL_ARM(_name, _nr_args)                        \
-    [ __HYPERVISOR_ ## _name ] =  {                                  \
-        .fn = (arm_hypercall_fn_t) &do_arm_ ## _name,                \
-        .nr_args = _nr_args,                                         \
-    }
 /*
  * Only use this for hypercalls which were deprecated (i.e. replaced
  * by something else) before Xen on ARM was created, i.e. *not* for
@@ -1386,7 +1381,7 @@ static arm_hypercall_t arm_hypercall_table[] = {
 #endif
     HYPERCALL(multicall, 2),
     HYPERCALL(platform_op, 1),
-    HYPERCALL_ARM(vcpu_op, 3),
+    HYPERCALL(vcpu_op, 3),
     HYPERCALL(vm_assist, 2),
 #ifdef CONFIG_ARGO
     HYPERCALL(argo_op, 5),
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ef1812dc14..e1440ec2f5 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1488,11 +1488,14 @@ int arch_vcpu_reset(struct vcpu *v)
     return 0;
 }
 
-long
-arch_do_vcpu_op(
-    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     long rc = 0;
+    struct domain *d = current->domain;
+    struct vcpu *v;
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return -ENOENT;
 
     switch ( cmd )
     {
@@ -1544,7 +1547,7 @@ arch_do_vcpu_op(
     }
 
     default:
-        rc = -ENOSYS;
+        rc = common_vcpu_op(cmd, v, arg);
         break;
     }
 
diff --git a/xen/arch/x86/x86_64/domain.c b/xen/arch/x86/x86_64/domain.c
index c46dccc25a..62fe51ee74 100644
--- a/xen/arch/x86/x86_64/domain.c
+++ b/xen/arch/x86/x86_64/domain.c
@@ -13,10 +13,14 @@ CHECK_vcpu_get_physid;
 #undef xen_vcpu_get_physid
 
 int
-arch_compat_vcpu_op(
-    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
-    int rc = -ENOSYS;
+    int rc;
+    struct domain *d = current->domain;
+    struct vcpu *v;
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return -ENOENT;
 
     switch ( cmd )
     {
@@ -55,7 +59,11 @@ arch_compat_vcpu_op(
     }
 
     case VCPUOP_get_physid:
-        rc = arch_do_vcpu_op(cmd, v, arg);
+        rc = do_vcpu_op(cmd, vcpuid, arg);
+        break;
+
+    default:
+        rc = compat_common_vcpu_op(cmd, v, arg);
         break;
     }
 
diff --git a/xen/common/compat/domain.c b/xen/common/compat/domain.c
index 98b8c15cea..1119534679 100644
--- a/xen/common/compat/domain.c
+++ b/xen/common/compat/domain.c
@@ -38,14 +38,12 @@ CHECK_vcpu_hvm_context;
 
 #endif
 
-int compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+int compat_common_vcpu_op(int cmd, struct vcpu *v,
+                          XEN_GUEST_HANDLE_PARAM(void) arg)
 {
-    struct domain *d = current->domain;
-    struct vcpu *v;
     int rc = 0;
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return -ENOENT;
+    struct domain *d = current->domain;
+    unsigned int vcpuid = v->vcpu_id;
 
     switch ( cmd )
     {
@@ -102,7 +100,7 @@ int compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) ar
     case VCPUOP_stop_singleshot_timer:
     case VCPUOP_register_vcpu_info:
     case VCPUOP_send_nmi:
-        rc = do_vcpu_op(cmd, vcpuid, arg);
+        rc = common_vcpu_op(cmd, v, arg);
         break;
 
     case VCPUOP_get_runstate_info:
@@ -133,7 +131,7 @@ int compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) ar
     }
 
     default:
-        rc = arch_compat_vcpu_op(cmd, v, arg);
+        rc = -ENOSYS;
         break;
     }
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 8b53c49d1e..8eb36fe714 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1559,14 +1559,11 @@ int default_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
-long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+long common_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
-    struct domain *d = current->domain;
-    struct vcpu *v;
     long rc = 0;
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return -ENOENT;
+    struct domain *d = current->domain;
+    unsigned int vcpuid = v->vcpu_id;
 
     switch ( cmd )
     {
@@ -1736,7 +1733,7 @@ long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
     }
 
     default:
-        rc = arch_do_vcpu_op(cmd, v, arg);
+        rc = -ENOSYS;
         break;
     }
 
diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h
index a0c5a31a2f..9fd13c6b2c 100644
--- a/xen/include/asm-arm/hypercall.h
+++ b/xen/include/asm-arm/hypercall.h
@@ -4,8 +4,6 @@
 #include <public/domctl.h> /* for arch_do_domctl */
 int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-long do_arm_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg);
-
 long subarch_do_domctl(struct xen_domctl *domctl, struct domain *d,
                        XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
 
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index 5d394d4923..e614f7c78c 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -152,7 +152,7 @@ compat_physdev_op(
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
 extern int
-arch_compat_vcpu_op(
+compat_common_vcpu_op(
     int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
 
 extern int compat_mmuext_op(
diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
index 07b10ec230..30558d3c61 100644
--- a/xen/include/xen/hypercall.h
+++ b/xen/include/xen/hypercall.h
@@ -110,7 +110,7 @@ do_vcpu_op(
 
 struct vcpu;
 extern long
-arch_do_vcpu_op(int cmd,
+common_vcpu_op(int cmd,
     struct vcpu *v,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219245.380002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6z-0001iQ-Tl; Mon, 01 Nov 2021 15:20:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219245.380002; Mon, 01 Nov 2021 15:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ6z-0001iC-Ot; Mon, 01 Nov 2021 15:20:37 +0000
Received: by outflank-mailman (input) for mailman id 219245;
 Mon, 01 Nov 2021 15:20:36 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ6y-0008DA-La
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:36 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 116c999b-c4b1-46e1-b39a-854453387f59;
 Mon, 01 Nov 2021 15:20:22 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id E2B931FD77;
 Mon,  1 Nov 2021 15:20:21 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9B39E13A4A;
 Mon,  1 Nov 2021 15:20:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id CGOxJLUFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 116c999b-c4b1-46e1-b39a-854453387f59
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780021; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=D7p81uvIjBLlAROdby8lQ54/U9wmyTthcMwaGdQ0Ndc=;
	b=nVqYvVo8rQ+/Hh+t2UKIFqfomIt6QFl6uXhDYzrbKptXBxV6WshW4PHSceMIcEDw6R2RSm
	XepLtmtDydDd+V/OJ+bCb+lA2b6QisAeCKoe+S87crIr/G/ag2jg/YvbuSdF58wZcBkekK
	l2bBtwL1pgb8q5uYDlYUrEx9O57Qb7A=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 09/15] x86/pv-shim: don't modify hypercall table
Date: Mon,  1 Nov 2021 16:20:09 +0100
Message-Id: <20211101152015.28488-10-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When running as pv-shim the hypercall is modified today in order to
replace the functions for __HYPERVISOR_event_channel_op and
__HYPERVISOR_grant_table_op hypercalls.

Change this to call the related functions from the normal handlers
instead when running as shim. The performance implications are not
really relevant, as a normal production hypervisor will not be
configured to support shim mode, so the related calls will be dropped
due to optimization of the compiler.

Note that for the CONFIG_PV_SHIM_EXCLUSIVE case there is a dummy
wrapper do_grant_table_op() needed, as in this case grant_table.c
isn't being built.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- add test for pv_shim to wrappers (Jan Beulich)
- add grant_table_op to hypercall table if CONFIG_PV_SHIM (Jan Beulich)
---
 xen/arch/x86/pv/hypercall.c   |  2 +-
 xen/arch/x86/pv/shim.c        | 54 +++++++++++++++++------------------
 xen/common/event_channel.c    |  9 ++++++
 xen/common/grant_table.c      |  9 ++++++
 xen/include/asm-x86/pv/shim.h |  3 ++
 5 files changed, 49 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index 7e99dbda34..abe4dd7839 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -62,7 +62,7 @@ const pv_hypercall_table_t pv_hypercall_table[] = {
     COMPAT_CALL(xen_version),
     HYPERCALL(console_io),
     COMPAT_CALL(physdev_op_compat),
-#ifdef CONFIG_GRANT_TABLE
+#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
     COMPAT_CALL(grant_table_op),
 #endif
     HYPERCALL(vm_assist),
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index d9704121a7..7e891fe2f7 100644
--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -56,11 +56,6 @@ static DEFINE_SPINLOCK(balloon_lock);
 
 static struct platform_bad_page __initdata reserved_pages[2];
 
-static long pv_shim_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-static long pv_shim_grant_table_op(unsigned int cmd,
-                                   XEN_GUEST_HANDLE_PARAM(void) uop,
-                                   unsigned int count);
-
 /*
  * By default give the shim 1MB of free memory slack. Some users may wish to
  * tune this constants for better memory utilization. This can be achieved
@@ -203,7 +198,6 @@ void __init pv_shim_setup_dom(struct domain *d, l4_pgentry_t *l4start,
                               start_info_t *si)
 {
     bool compat = is_pv_32bit_domain(d);
-    pv_hypercall_table_t *rw_pv_hypercall_table;
     uint64_t param = 0;
     long rc;
 
@@ -249,23 +243,6 @@ void __init pv_shim_setup_dom(struct domain *d, l4_pgentry_t *l4start,
         consoled_set_ring_addr(page);
     }
 
-    /*
-     * Locate pv_hypercall_table[] (usually .rodata) in the directmap (which
-     * is writeable) and insert some shim-specific hypercall handlers.
-     */
-    rw_pv_hypercall_table = __va(__pa(pv_hypercall_table));
-    rw_pv_hypercall_table[__HYPERVISOR_event_channel_op].native =
-        (hypercall_fn_t *)pv_shim_event_channel_op;
-    rw_pv_hypercall_table[__HYPERVISOR_grant_table_op].native =
-        (hypercall_fn_t *)pv_shim_grant_table_op;
-
-#ifdef CONFIG_PV32
-    rw_pv_hypercall_table[__HYPERVISOR_event_channel_op].compat =
-        (hypercall_fn_t *)pv_shim_event_channel_op;
-    rw_pv_hypercall_table[__HYPERVISOR_grant_table_op].compat =
-        (hypercall_fn_t *)pv_shim_grant_table_op;
-#endif
-
     guest = d;
 
     /*
@@ -435,7 +412,7 @@ int pv_shim_shutdown(uint8_t reason)
     return 0;
 }
 
-static long pv_shim_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long pv_shim_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     struct domain *d = current->domain;
     struct evtchn_close close;
@@ -683,9 +660,9 @@ void pv_shim_inject_evtchn(unsigned int port)
 # define compat_handle_okay guest_handle_okay
 #endif
 
-static long pv_shim_grant_table_op(unsigned int cmd,
-                                   XEN_GUEST_HANDLE_PARAM(void) uop,
-                                   unsigned int count)
+long pv_shim_grant_table_op(unsigned int cmd,
+                            XEN_GUEST_HANDLE_PARAM(void) uop,
+                            unsigned int count)
 {
     struct domain *d = current->domain;
     long rc = 0;
@@ -845,6 +822,29 @@ static long pv_shim_grant_table_op(unsigned int cmd,
     return rc;
 }
 
+#ifndef CONFIG_GRANT_TABLE
+/* Thin wrapper(s) needed. */
+long do_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop,
+                       unsigned int count)
+{
+    if ( !pv_shim )
+        return -ENOSYS;
+
+    return pv_shim_grant_table_op(cmd, uop, count);
+}
+
+#ifdef CONFIG_PV32
+int compat_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop,
+                          unsigned int count)
+{
+    if ( !pv_shim )
+        return -ENOSYS;
+
+    return pv_shim_grant_table_op(cmd, uop, count);
+}
+#endif
+#endif
+
 long pv_shim_cpu_up(void *data)
 {
     struct vcpu *v = data;
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 12006f592e..a15f986b32 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -32,6 +32,10 @@
 #include <public/event_channel.h>
 #include <xsm/xsm.h>
 
+#ifdef CONFIG_PV_SHIM
+#include <asm/guest.h>
+#endif
+
 #define ERROR_EXIT(_errno)                                          \
     do {                                                            \
         gdprintk(XENLOG_WARNING,                                    \
@@ -1190,6 +1194,11 @@ long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     int rc;
 
+#ifdef CONFIG_PV_SHIM
+    if ( pv_shim )
+        return pv_shim_event_channel_op(cmd, arg);
+#endif
+
     switch ( cmd )
     {
     case EVTCHNOP_alloc_unbound: {
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 49e12621ac..de097c0eda 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -45,6 +45,10 @@
 #include <asm/flushtlb.h>
 #include <asm/guest_atomics.h>
 
+#ifdef CONFIG_PV_SHIM
+#include <asm/guest.h>
+#endif
+
 /* Per-domain grant information. */
 struct grant_table {
     /*
@@ -3526,6 +3530,11 @@ do_grant_table_op(
     long rc;
     unsigned int opaque_in = cmd & GNTTABOP_ARG_MASK, opaque_out = 0;
 
+#ifdef CONFIG_PV_SHIM
+    if ( pv_shim )
+        return pv_shim_grant_table_op(cmd, uop, count);
+#endif
+
     if ( (int)count < 0 )
         return -EINVAL;
 
diff --git a/xen/include/asm-x86/pv/shim.h b/xen/include/asm-x86/pv/shim.h
index 8a91f4f9df..6415f8068e 100644
--- a/xen/include/asm-x86/pv/shim.h
+++ b/xen/include/asm-x86/pv/shim.h
@@ -19,6 +19,7 @@
 #ifndef __X86_PV_SHIM_H__
 #define __X86_PV_SHIM_H__
 
+#include <xen/hypercall.h>
 #include <xen/types.h>
 
 #if defined(CONFIG_PV_SHIM_EXCLUSIVE)
@@ -45,6 +46,8 @@ domid_t get_initial_domain_id(void);
 uint64_t pv_shim_mem(uint64_t avail);
 void pv_shim_fixup_e820(struct e820map *e820);
 const struct platform_bad_page *pv_shim_reserved_pages(unsigned int *size);
+typeof(do_event_channel_op) pv_shim_event_channel_op;
+typeof(do_grant_table_op) pv_shim_grant_table_op;
 
 #else
 
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219246.380008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ70-0001nb-HQ; Mon, 01 Nov 2021 15:20:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219246.380008; Mon, 01 Nov 2021 15:20:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ70-0001lQ-7m; Mon, 01 Nov 2021 15:20:38 +0000
Received: by outflank-mailman (input) for mailman id 219246;
 Mon, 01 Nov 2021 15:20:36 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ6y-0008DB-ND
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:36 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 3a492aa2-3b27-11ec-8548-12813bfff9fa;
 Mon, 01 Nov 2021 15:20:21 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id A90261FD75;
 Mon,  1 Nov 2021 15:20:20 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6071C13A4A;
 Mon,  1 Nov 2021 15:20:20 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id QLZIFrQFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a492aa2-3b27-11ec-8548-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780020; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=AHxrqoXXC0IjsVzafchjHOzMEKplusPtu2lRkzqLV24=;
	b=PhyVTF0+nS+Gt4QF5T/cz5Vp9IGUae7SzkIoEbY2KomIbbDqDOzjff7yz6BWY57/EGAulD
	mlO3Jzq8ZUFDEdbnbq4DfjRYByOUP+suQnJTRCojMfm3XfiaKqKn7X8oRlNJUL4Ue0lZaM
	eYbeaDWulc9bNKEq7Y+URgMZzXW/3fI=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 05/15] xen: don't include asm/hypercall.h from C sources
Date: Mon,  1 Nov 2021 16:20:05 +0100
Message-Id: <20211101152015.28488-6-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Instead of including asm/hypercall.h always use xen/hypercall.h.
Additionally include xen/hypercall.h from all sources containing a
hypercall handler.

This prepares for generating the handlers' prototypes at build time.

Add a guard in asm/hypercall.h to catch direct inclusion.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- remove platform_op hunk (Jan Beulich)
- remove including of xen/hypervisor.h from arch/x86/x86_64/mm.c
  (Jan Beulich)
- fix include order in common/compat/grant_table.c (Jan Beulich)
---
 xen/arch/arm/hvm.c                | 3 +--
 xen/arch/arm/platform_hypercall.c | 1 +
 xen/arch/x86/cpu/vpmu.c           | 1 +
 xen/arch/x86/mm.c                 | 1 -
 xen/arch/x86/platform_hypercall.c | 1 +
 xen/arch/x86/pv/iret.c            | 1 +
 xen/arch/x86/traps.c              | 2 +-
 xen/arch/x86/x86_64/compat/mm.c   | 1 +
 xen/arch/x86/x86_64/mm.c          | 2 --
 xen/common/compat/grant_table.c   | 1 +
 xen/common/compat/multicall.c     | 2 +-
 xen/common/event_channel.c        | 1 +
 xen/common/grant_table.c          | 1 +
 xen/common/multicall.c            | 1 +
 xen/include/asm-arm/hypercall.h   | 4 ++++
 xen/include/asm-x86/hypercall.h   | 4 ++++
 16 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c
index 8951b34086..fc1a52767d 100644
--- a/xen/arch/arm/hvm.c
+++ b/xen/arch/arm/hvm.c
@@ -20,6 +20,7 @@
 #include <xen/lib.h>
 #include <xen/errno.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/sched.h>
 #include <xen/monitor.h>
 
@@ -29,8 +30,6 @@
 #include <public/hvm/params.h>
 #include <public/hvm/hvm_op.h>
 
-#include <asm/hypercall.h>
-
 static int hvm_allow_set_param(const struct domain *d, unsigned int param)
 {
     switch ( param )
diff --git a/xen/arch/arm/platform_hypercall.c b/xen/arch/arm/platform_hypercall.c
index 8efac7ee60..403cc84324 100644
--- a/xen/arch/arm/platform_hypercall.c
+++ b/xen/arch/arm/platform_hypercall.c
@@ -9,6 +9,7 @@
 #include <xen/types.h>
 #include <xen/sched.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/spinlock.h>
 #include <public/platform.h>
 #include <xsm/xsm.h>
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index 16e91a3694..6784f1bc2b 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -21,6 +21,7 @@
 #include <xen/xenoprof.h>
 #include <xen/event.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/cpu.h>
 #include <xen/param.h>
 #include <asm/regs.h>
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4d799032dc..8df4539b7e 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -129,7 +129,6 @@
 #include <asm/ldt.h>
 #include <asm/x86_emulate.h>
 #include <asm/e820.h>
-#include <asm/hypercall.h>
 #include <asm/shared.h>
 #include <asm/mem_sharing.h>
 #include <public/memory.h>
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 284c2dfb9e..08e9ffa104 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -17,6 +17,7 @@
 #include <xen/console.h>
 #include <xen/iocap.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/acpi.h>
 #include <xen/efi.h>
 #include <xen/cpu.h>
diff --git a/xen/arch/x86/pv/iret.c b/xen/arch/x86/pv/iret.c
index 90946c4629..316a23e77e 100644
--- a/xen/arch/x86/pv/iret.c
+++ b/xen/arch/x86/pv/iret.c
@@ -18,6 +18,7 @@
  */
 
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
 
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 64f3396f20..05acbb8479 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -29,6 +29,7 @@
 #include <xen/lib.h>
 #include <xen/err.h>
 #include <xen/errno.h>
+#include <xen/hypercall.h>
 #include <xen/mm.h>
 #include <xen/param.h>
 #include <xen/console.h>
@@ -70,7 +71,6 @@
 #include <asm/x86_emulate.h>
 #include <asm/traps.h>
 #include <asm/hvm/vpt.h>
-#include <asm/hypercall.h>
 #include <asm/mce.h>
 #include <asm/apic.h>
 #include <asm/mc146818rtc.h>
diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
index 215e96aba0..13dfa94fee 100644
--- a/xen/arch/x86/x86_64/compat/mm.c
+++ b/xen/arch/x86/x86_64/compat/mm.c
@@ -1,4 +1,5 @@
 #include <xen/event.h>
+#include <xen/hypercall.h>
 #include <xen/mem_access.h>
 #include <xen/multicall.h>
 #include <compat/memory.h>
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index 4f225da81e..3510a5affe 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -25,14 +25,12 @@ EMIT_FILE;
 #include <xen/numa.h>
 #include <xen/nodemask.h>
 #include <xen/guest_access.h>
-#include <xen/hypercall.h>
 #include <xen/mem_access.h>
 #include <asm/current.h>
 #include <asm/asm_defns.h>
 #include <asm/page.h>
 #include <asm/flushtlb.h>
 #include <asm/fixmap.h>
-#include <asm/hypercall.h>
 #include <asm/msr.h>
 #include <asm/pv/domain.h>
 #include <asm/setup.h>
diff --git a/xen/common/compat/grant_table.c b/xen/common/compat/grant_table.c
index ff1d678f01..989fdef65b 100644
--- a/xen/common/compat/grant_table.c
+++ b/xen/common/compat/grant_table.c
@@ -3,6 +3,7 @@
  *
  */
 
+#include <xen/hypercall.h>
 #include <compat/grant_table.h>
 
 #define xen_grant_entry_v1 grant_entry_v1
diff --git a/xen/common/compat/multicall.c b/xen/common/compat/multicall.c
index a0e9918f48..c5982baf76 100644
--- a/xen/common/compat/multicall.c
+++ b/xen/common/compat/multicall.c
@@ -4,6 +4,7 @@
 
 EMIT_FILE;
 
+#include <xen/hypercall.h>
 #include <xen/types.h>
 #include <xen/multicall.h>
 #include <xen/trace.h>
@@ -19,7 +20,6 @@ static inline void xlat_multicall_entry(struct mc_state *mcs)
         mcs->compat_call.args[i] = mcs->call.args[i];
 }
 
-DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
 #define multicall_entry      compat_multicall_entry
 #define multicall_entry_t    multicall_entry_compat_t
 #define do_multicall_call    compat_multicall_call
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index da88ad141a..12006f592e 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -24,6 +24,7 @@
 #include <xen/iocap.h>
 #include <xen/compat.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/keyhandler.h>
 #include <asm/current.h>
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index e510395d08..49e12621ac 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -33,6 +33,7 @@
 #include <xen/trace.h>
 #include <xen/grant_table.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/domain_page.h>
 #include <xen/iommu.h>
 #include <xen/paging.h>
diff --git a/xen/common/multicall.c b/xen/common/multicall.c
index 5a199ebf8f..7b20717c88 100644
--- a/xen/common/multicall.c
+++ b/xen/common/multicall.c
@@ -9,6 +9,7 @@
 #include <xen/event.h>
 #include <xen/multicall.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/perfc.h>
 #include <xen/trace.h>
 #include <asm/current.h>
diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h
index cadafd76c7..ccd26c5184 100644
--- a/xen/include/asm-arm/hypercall.h
+++ b/xen/include/asm-arm/hypercall.h
@@ -1,3 +1,7 @@
+#ifndef __XEN_HYPERCALL_H__
+#error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
+#endif
+
 #ifndef __ASM_ARM_HYPERCALL_H__
 #define __ASM_ARM_HYPERCALL_H__
 
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index 9c0981defd..efe5963ee5 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -2,6 +2,10 @@
  * asm-x86/hypercall.h
  */
 
+#ifndef __XEN_HYPERCALL_H__
+#error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
+#endif
+
 #ifndef __ASM_X86_HYPERCALL_H__
 #define __ASM_X86_HYPERCALL_H__
 
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219247.380024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ75-0002eV-8R; Mon, 01 Nov 2021 15:20:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219247.380024; Mon, 01 Nov 2021 15:20:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ75-0002dT-2O; Mon, 01 Nov 2021 15:20:43 +0000
Received: by outflank-mailman (input) for mailman id 219247;
 Mon, 01 Nov 2021 15:20:41 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ73-0008DA-Lp
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:41 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 22cb0646-6ed1-444d-b4ee-696eeed338ea;
 Mon, 01 Nov 2021 15:20:23 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 1AAD821952;
 Mon,  1 Nov 2021 15:20:23 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D1FC213A4A;
 Mon,  1 Nov 2021 15:20:22 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id iHz7MbYFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 22cb0646-6ed1-444d-b4ee-696eeed338ea
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780023; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=deHLBylG4X2v49da24jAIDVEMEgr0x2usatipBvqMas=;
	b=Bzvb+9agc3JDa9ftu+zK7oLID3F4Zo4yHhXEUg7gnUuWVpMeYQWXv6jFAb5cNFVLS0B4aQ
	LXHEQKhCfvK355CZqYg0WKc1g+LA28Hv1lpLwFohzRv+NTTG6FkcvtbygxJ+LlgPaxDB6y
	JGHsLiee1/cZXntPHPBk/jcEj7+9b4g=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 14/15] xen: drop calls_to_multicall performance counter
Date: Mon,  1 Nov 2021 16:20:14 +0100
Message-Id: <20211101152015.28488-15-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The calls_to_multicall performance counter is basically redundant to
the multicall hypercall counter. The only difference is the counting
of continuation calls, which isn't really that interesting.

Drop the calls_to_multicall performance counter.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 xen/common/multicall.c       | 1 -
 xen/include/xen/perfc_defn.h | 1 -
 2 files changed, 2 deletions(-)

diff --git a/xen/common/multicall.c b/xen/common/multicall.c
index 7b20717c88..2e66f9f0c1 100644
--- a/xen/common/multicall.c
+++ b/xen/common/multicall.c
@@ -114,7 +114,6 @@ do_multicall(
     if ( unlikely(disp == mc_preempt) && i < nr_calls )
         goto preempted;
 
-    perfc_incr(calls_to_multicall);
     perfc_add(calls_from_multicall, i);
     mcs->flags = 0;
     return rc;
diff --git a/xen/include/xen/perfc_defn.h b/xen/include/xen/perfc_defn.h
index 08b182ccd9..eb6152859e 100644
--- a/xen/include/xen/perfc_defn.h
+++ b/xen/include/xen/perfc_defn.h
@@ -6,7 +6,6 @@
 
 PERFCOUNTER_ARRAY(hypercalls,           "hypercalls", NR_hypercalls)
 
-PERFCOUNTER(calls_to_multicall,         "calls to multicall")
 PERFCOUNTER(calls_from_multicall,       "calls from multicall")
 
 PERFCOUNTER(irqs,                   "#interrupts")
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219248.380029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ75-0002jS-OO; Mon, 01 Nov 2021 15:20:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219248.380029; Mon, 01 Nov 2021 15:20:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ75-0002hS-Dq; Mon, 01 Nov 2021 15:20:43 +0000
Received: by outflank-mailman (input) for mailman id 219248;
 Mon, 01 Nov 2021 15:20:41 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ73-0008DB-Na
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:41 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 3a74d3e6-3b27-11ec-8548-12813bfff9fa;
 Mon, 01 Nov 2021 15:20:22 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id F040D2195E;
 Mon,  1 Nov 2021 15:20:20 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id AFA2D13A4A;
 Mon,  1 Nov 2021 15:20:20 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id yNKQKbQFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a74d3e6-3b27-11ec-8548-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780020; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2fOAnqYxsnad8GqJq5hXRodGMqLBqJqDZsiqhfOtnv4=;
	b=dmVJvcHjlAFox+w7U7UJhXGRcyhbfhJlw/WY/mMMQbBGHd+pbF34GP7lgZTC+6Dm/xaJtD
	1KdNN7OW3wM67qY3FlM1OxD9yQcRuHrcoMjJHQHjQ3BrgBG0hrqdoJViH5vpzpI08FE24r
	TA47+bjDizjHp3k+DBHB6NJsodC0cik=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 06/15] add .gitignore entries for *.[is] below xen
Date: Mon,  1 Nov 2021 16:20:06 +0100
Message-Id: <20211101152015.28488-7-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Instead of listing each single file with .s or .i suffixes in
.gitignore use pattern based entries. Restrict those to the xen
directory as we have e.g. tools/libs/stat/bindings/swig/xenstat.i in
our tree.

Below xen the pattern based entries are fine, as we have pattern rules
for creating *.s and *.i files in xen/Rules.mk.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 .gitignore | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitignore b/.gitignore
index 8ebb51b6c5..9513506dd9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -301,12 +301,13 @@ tools/xentrace/xentrace_setsize
 tools/xentrace/tbctl
 tools/xentrace/xenctx
 tools/xentrace/xentrace
+xen/**/*.i
+xen/**/*.s
 xen/.banner
 xen/.config
 xen/.config.old
 xen/.xen.elf32
 xen/System.map
-xen/arch/x86/asm-macros.i
 xen/arch/x86/boot/mkelf32
 xen/arch/x86/boot/cmdline.S
 xen/arch/x86/boot/reloc.S
@@ -322,7 +323,6 @@ xen/arch/*/efi/ebmalloc.c
 xen/arch/*/efi/efi.h
 xen/arch/*/efi/pe.c
 xen/arch/*/efi/runtime.c
-xen/asm-offsets.s
 xen/common/config_data.S
 xen/common/config.gz
 xen/include/headers*.chk
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219249.380046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7A-0003bh-65; Mon, 01 Nov 2021 15:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219249.380046; Mon, 01 Nov 2021 15:20:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ79-0003bU-Vm; Mon, 01 Nov 2021 15:20:47 +0000
Received: by outflank-mailman (input) for mailman id 219249;
 Mon, 01 Nov 2021 15:20:46 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ78-0008DA-Lt
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:46 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 7c7e07be-614e-4e1f-8d60-617c344bf99b;
 Mon, 01 Nov 2021 15:20:24 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 4DB092196F;
 Mon,  1 Nov 2021 15:20:23 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2216413A4A;
 Mon,  1 Nov 2021 15:20:23 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id cM0LB7cFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c7e07be-614e-4e1f-8d60-617c344bf99b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780023; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=H629Skc+4HUyFvxQxJWzVqDkNXqgQ0ZyU5Da5yGGsZY=;
	b=SpiH1gw91xN4jGcy6lMLTFgnciz4R7VV6l3QNBg2NZlNiVNVqKucGAhVx+h681W3VrPGDc
	LBvoNlUssn3sF0wnC2vLfquJZYGQfkdAiii5n+aMLkTtE3kNIQQmE/4zY4aOe51KaPuS+Z
	XhEA5HsnGJHGgo2q98UqXb/W+yQeP60=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 15/15] tools/xenperf: update hypercall names
Date: Mon,  1 Nov 2021 16:20:15 +0100
Message-Id: <20211101152015.28488-16-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The hypercall names need some update.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 tools/misc/xenperf.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/misc/xenperf.c b/tools/misc/xenperf.c
index a5fbdaa45f..2ad737e661 100644
--- a/tools/misc/xenperf.c
+++ b/tools/misc/xenperf.c
@@ -57,6 +57,11 @@ const char *hypercall_name_table[64] =
     X(sysctl),
     X(domctl),
     X(kexec_op),
+    X(tmem_op),
+    X(argo_op),
+    X(xenpmu_op),
+    X(dm_op),
+    X(hypfs_op),
     X(arch_0),
     X(arch_1),
     X(arch_2),
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219250.380050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7A-0003iJ-Vq; Mon, 01 Nov 2021 15:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219250.380050; Mon, 01 Nov 2021 15:20:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7A-0003gv-Hh; Mon, 01 Nov 2021 15:20:48 +0000
Received: by outflank-mailman (input) for mailman id 219250;
 Mon, 01 Nov 2021 15:20:46 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ78-0008DB-Na
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:46 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 39c28ddb-3b27-11ec-8548-12813bfff9fa;
 Mon, 01 Nov 2021 15:20:21 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 254961FD73;
 Mon,  1 Nov 2021 15:20:20 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C7CC113B13;
 Mon,  1 Nov 2021 15:20:19 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id ePyDL7MFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39c28ddb-3b27-11ec-8548-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780020; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tmlPc9auNVfUliuSzcaGSKuNe/JhODB1awWiSXuNbC4=;
	b=YlKJxlc17DJj2WyfegAb5IsT9t69rbDEhABdhQQbw7mSW8M3Xnyvz8/N82Fmg+PRAslo4e
	e41o8yiW3ufMfcRb3gEPRDjq9YKul3lqnuAN4AL1F4AbZvJbcShFkbgF089PsMzZKbSvTQ
	uw8C6hmgUxpKHpu0DLSPKmpSwe9V9IA=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>
Subject: [PATCH v2 03/15] xen: harmonize return types of hypercall handlers
Date: Mon,  1 Nov 2021 16:20:03 +0100
Message-Id: <20211101152015.28488-4-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Today most hypercall handlers have a return type of long, while the
compat ones return an int. There are a few exceptions from that rule,
however.

Get rid of the exceptions by letting compat handlers always return int
and others always return long.

For the compat hvm case use eax instead of rax for the stored result as
it should have been from the beginning.

Additionally move some prototypes to include/asm-x86/hypercall.h
as they are x86 specific. Move the do_physdev_op() prototype from both
architecture dependant headers to the common one. Move the
compat_platform_op() prototype to the common header.

Switch some non style compliant types (u32, s32, s64) to style compliant
ones.

Rename paging_domctl_continuation() to do_paging_domctl_cont() and add
a matching define for the associated hypercall.

Make do_callback_op() and compat_callback_op() more similar by adding
the const attribute to compat_callback_op()'s 2nd parameter.

Change the type of the cmd parameter for [do|compat]_kexec_op() to
unsigned int, as this is more appropriate for the compat case.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- rework platform_op compat handling (Jan Beulich)
---
 xen/arch/arm/physdev.c                   |  2 +-
 xen/arch/x86/domctl.c                    |  4 +--
 xen/arch/x86/hvm/hypercall.c             |  8 ++---
 xen/arch/x86/hypercall.c                 |  2 +-
 xen/arch/x86/mm/paging.c                 |  3 +-
 xen/arch/x86/pv/callback.c               | 20 +++++------
 xen/arch/x86/pv/emul-priv-op.c           |  2 +-
 xen/arch/x86/pv/hypercall.c              |  5 +--
 xen/arch/x86/pv/iret.c                   |  4 +--
 xen/arch/x86/pv/misc-hypercalls.c        | 14 +++++---
 xen/arch/x86/x86_64/platform_hypercall.c |  3 +-
 xen/common/argo.c                        | 12 +++----
 xen/common/kexec.c                       |  6 ++--
 xen/include/asm-arm/hypercall.h          |  1 -
 xen/include/asm-x86/hypercall.h          | 43 +++++++++++-------------
 xen/include/asm-x86/paging.h             |  3 --
 xen/include/xen/hypercall.h              | 26 +++++++-------
 17 files changed, 75 insertions(+), 83 deletions(-)

diff --git a/xen/arch/arm/physdev.c b/xen/arch/arm/physdev.c
index f9aa274dda..5a7593fa8f 100644
--- a/xen/arch/arm/physdev.c
+++ b/xen/arch/arm/physdev.c
@@ -11,7 +11,7 @@
 #include <xen/hypercall.h>
 
 
-int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
 #ifdef CONFIG_HAS_PCI
     return pci_physdev_op(cmd, arg);
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 7d102e0647..b01ea81373 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -221,8 +221,8 @@ long arch_do_domctl(
     case XEN_DOMCTL_shadow_op:
         ret = paging_domctl(d, &domctl->u.shadow_op, u_domctl, 0);
         if ( ret == -ERESTART )
-            return hypercall_create_continuation(__HYPERVISOR_arch_1,
-                                                 "h", u_domctl);
+            return hypercall_create_continuation(
+                       __HYPERVISOR_paging_domctl_cont, "h", u_domctl);
         copyback = true;
         break;
 
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index f0321c6cb4..5be1050453 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -120,8 +120,6 @@ static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     [ __HYPERVISOR_ ## x ] = { (hypercall_fn_t *) do_ ## x,  \
                                (hypercall_fn_t *) compat_ ## x }
 
-#define do_arch_1             paging_domctl_continuation
-
 static const struct {
     hypercall_fn_t *native, *compat;
 } hvm_hypercall_table[] = {
@@ -154,11 +152,9 @@ static const struct {
 #ifdef CONFIG_HYPFS
     HYPERCALL(hypfs_op),
 #endif
-    HYPERCALL(arch_1)
+    HYPERCALL(paging_domctl_cont)
 };
 
-#undef do_arch_1
-
 #undef HYPERCALL
 #undef HVM_CALL
 #undef COMPAT_CALL
@@ -296,7 +292,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
 #endif
 
         curr->hcall_compat = true;
-        regs->rax = hvm_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi);
+        regs->eax = hvm_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi);
         curr->hcall_compat = false;
 
 #ifndef NDEBUG
diff --git a/xen/arch/x86/hypercall.c b/xen/arch/x86/hypercall.c
index 2370d31d3f..07e1a45ef5 100644
--- a/xen/arch/x86/hypercall.c
+++ b/xen/arch/x86/hypercall.c
@@ -75,7 +75,7 @@ const hypercall_args_t hypercall_args_table[NR_hypercalls] =
     ARGS(dm_op, 3),
     ARGS(hypfs_op, 5),
     ARGS(mca, 1),
-    ARGS(arch_1, 1),
+    ARGS(paging_domctl_cont, 1),
 };
 
 #undef COMP
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index dd6b2bdf6f..6cc2636bf4 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -21,6 +21,7 @@
 
 #include <xen/init.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <asm/paging.h>
 #include <asm/shadow.h>
 #include <asm/p2m.h>
@@ -756,7 +757,7 @@ int paging_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,
         return shadow_domctl(d, sc, u_domctl);
 }
 
-long paging_domctl_continuation(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+long do_paging_domctl_cont(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
     struct xen_domctl op;
     struct domain *d;
diff --git a/xen/arch/x86/pv/callback.c b/xen/arch/x86/pv/callback.c
index 42a6aa0831..6d60263dbc 100644
--- a/xen/arch/x86/pv/callback.c
+++ b/xen/arch/x86/pv/callback.c
@@ -207,9 +207,9 @@ long do_set_callbacks(unsigned long event_address,
 #include <compat/callback.h>
 #include <compat/nmi.h>
 
-static long compat_register_guest_callback(struct compat_callback_register *reg)
+static int compat_register_guest_callback(struct compat_callback_register *reg)
 {
-    long ret = 0;
+    int ret = 0;
     struct vcpu *curr = current;
 
     fixup_guest_code_selector(curr->domain, reg->address.cs);
@@ -256,10 +256,10 @@ static long compat_register_guest_callback(struct compat_callback_register *reg)
     return ret;
 }
 
-static long compat_unregister_guest_callback(
+static int compat_unregister_guest_callback(
     struct compat_callback_unregister *unreg)
 {
-    long ret;
+    int ret;
 
     switch ( unreg->type )
     {
@@ -283,9 +283,9 @@ static long compat_unregister_guest_callback(
     return ret;
 }
 
-long compat_callback_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+int compat_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
 {
-    long ret;
+    int ret;
 
     switch ( cmd )
     {
@@ -321,10 +321,10 @@ long compat_callback_op(int cmd, XEN_GUEST_HANDLE(void) arg)
     return ret;
 }
 
-long compat_set_callbacks(unsigned long event_selector,
-                          unsigned long event_address,
-                          unsigned long failsafe_selector,
-                          unsigned long failsafe_address)
+int compat_set_callbacks(unsigned long event_selector,
+                         unsigned long event_address,
+                         unsigned long failsafe_selector,
+                         unsigned long failsafe_address)
 {
     struct compat_callback_register event = {
         .type = CALLBACKTYPE_event,
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 7f4279a051..4982e58e71 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -22,12 +22,12 @@
 #include <xen/domain_page.h>
 #include <xen/event.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/iocap.h>
 
 #include <asm/amd.h>
 #include <asm/debugreg.h>
 #include <asm/hpet.h>
-#include <asm/hypercall.h>
 #include <asm/mc146818rtc.h>
 #include <asm/pv/domain.h>
 #include <asm/pv/trace.h>
diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index 16a77e3a35..7e99dbda34 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -40,8 +40,6 @@
 #define COMPAT_CALL(x) HYPERCALL(x)
 #endif
 
-#define do_arch_1             paging_domctl_continuation
-
 const pv_hypercall_table_t pv_hypercall_table[] = {
     COMPAT_CALL(set_trap_table),
     HYPERCALL(mmu_update),
@@ -102,11 +100,10 @@ const pv_hypercall_table_t pv_hypercall_table[] = {
 #endif
     HYPERCALL(mca),
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
-    HYPERCALL(arch_1),
+    HYPERCALL(paging_domctl_cont),
 #endif
 };
 
-#undef do_arch_1
 #undef COMPAT_CALL
 #undef HYPERCALL
 
diff --git a/xen/arch/x86/pv/iret.c b/xen/arch/x86/pv/iret.c
index 29a2f7cc45..90946c4629 100644
--- a/xen/arch/x86/pv/iret.c
+++ b/xen/arch/x86/pv/iret.c
@@ -48,7 +48,7 @@ static void async_exception_cleanup(struct vcpu *curr)
         curr->arch.async_exception_state(trap).old_mask;
 }
 
-unsigned long do_iret(void)
+long do_iret(void)
 {
     struct cpu_user_regs *regs = guest_cpu_user_regs();
     struct iret_context iret_saved;
@@ -105,7 +105,7 @@ unsigned long do_iret(void)
 }
 
 #ifdef CONFIG_PV32
-unsigned int compat_iret(void)
+int compat_iret(void)
 {
     struct cpu_user_regs *regs = guest_cpu_user_regs();
     struct vcpu *v = current;
diff --git a/xen/arch/x86/pv/misc-hypercalls.c b/xen/arch/x86/pv/misc-hypercalls.c
index 5dade24726..aaaf70eb63 100644
--- a/xen/arch/x86/pv/misc-hypercalls.c
+++ b/xen/arch/x86/pv/misc-hypercalls.c
@@ -28,12 +28,16 @@ long do_set_debugreg(int reg, unsigned long value)
     return set_debugreg(current, reg, value);
 }
 
-unsigned long do_get_debugreg(int reg)
+long do_get_debugreg(int reg)
 {
-    unsigned long val;
-    int res = x86emul_read_dr(reg, &val, NULL);
-
-    return res == X86EMUL_OKAY ? val : -ENODEV;
+    /* Avoid implementation defined behavior casting unsigned long to long. */
+    union {
+        unsigned long val;
+        long ret;
+    } u;
+    int res = x86emul_read_dr(reg, &u.val, NULL);
+
+    return res == X86EMUL_OKAY ? u.ret : -ENODEV;
 }
 
 long do_fpu_taskswitch(int set)
diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c
index fbba893a47..eca48e9335 100644
--- a/xen/arch/x86/x86_64/platform_hypercall.c
+++ b/xen/arch/x86/x86_64/platform_hypercall.c
@@ -4,10 +4,11 @@
 
 EMIT_FILE;
 
+#include <xen/hypercall.h>
+#include <xen/types.h>
 #include <xen/lib.h>
 #include <compat/platform.h>
 
-DEFINE_XEN_GUEST_HANDLE(compat_platform_op_t);
 #define xen_platform_op     compat_platform_op
 #define xen_platform_op_t   compat_platform_op_t
 #define do_platform_op(x)   compat_platform_op(_##x)
diff --git a/xen/common/argo.c b/xen/common/argo.c
index eaea7ba888..bf6aac7655 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -2207,13 +2207,13 @@ do_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,
 }
 
 #ifdef CONFIG_COMPAT
-long
-compat_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,
-               XEN_GUEST_HANDLE_PARAM(void) arg2, unsigned long arg3,
-               unsigned long arg4)
+int compat_argo_op(unsigned int cmd,
+                   XEN_GUEST_HANDLE_PARAM(void) arg1,
+                   XEN_GUEST_HANDLE_PARAM(void) arg2,
+                   unsigned long arg3, unsigned long arg4)
 {
     struct domain *currd = current->domain;
-    long rc;
+    int rc;
     xen_argo_send_addr_t send_addr;
     xen_argo_iov_t iovs[XEN_ARGO_MAXIOV];
     compat_argo_iov_t compat_iovs[XEN_ARGO_MAXIOV];
@@ -2267,7 +2267,7 @@ compat_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,
 
     rc = sendv(currd, &send_addr.src, &send_addr.dst, iovs, niov, arg4);
  out:
-    argo_dprintk("<-compat_argo_op(%u)=%ld\n", cmd, rc);
+    argo_dprintk("<-compat_argo_op(%u)=%d\n", cmd, rc);
 
     return rc;
 }
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index c63db618a7..d7373233e1 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -1213,7 +1213,7 @@ static int kexec_status(XEN_GUEST_HANDLE_PARAM(void) uarg)
     return !!test_bit(bit, &kexec_flags);
 }
 
-static int do_kexec_op_internal(unsigned long op,
+static int do_kexec_op_internal(unsigned int op,
                                 XEN_GUEST_HANDLE_PARAM(void) uarg,
                                 bool_t compat)
 {
@@ -1265,13 +1265,13 @@ static int do_kexec_op_internal(unsigned long op,
     return ret;
 }
 
-long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+long do_kexec_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(void) uarg)
 {
     return do_kexec_op_internal(op, uarg, 0);
 }
 
 #ifdef CONFIG_COMPAT
-int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+int compat_kexec_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(void) uarg)
 {
     return do_kexec_op_internal(op, uarg, 1);
 }
diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h
index 9fd13c6b2c..cadafd76c7 100644
--- a/xen/include/asm-arm/hypercall.h
+++ b/xen/include/asm-arm/hypercall.h
@@ -2,7 +2,6 @@
 #define __ASM_ARM_HYPERCALL_H__
 
 #include <public/domctl.h> /* for arch_do_domctl */
-int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 
 long subarch_do_domctl(struct xen_domctl *domctl, struct domain *d,
                        XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index e614f7c78c..9c0981defd 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -11,6 +11,8 @@
 #include <public/arch-x86/xen-mca.h> /* for do_mca */
 #include <asm/paging.h>
 
+#define __HYPERVISOR_paging_domctl_cont __HYPERVISOR_arch_1
+
 typedef unsigned long hypercall_fn_t(
     unsigned long, unsigned long, unsigned long,
     unsigned long, unsigned long);
@@ -88,7 +90,7 @@ do_set_debugreg(
     int reg,
     unsigned long value);
 
-extern unsigned long
+extern long
 do_get_debugreg(
     int reg);
 
@@ -102,17 +104,13 @@ do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);
 extern long
 do_update_va_mapping(
     unsigned long va,
-    u64 val64,
+    uint64_t val64,
     unsigned long flags);
 
-extern long
-do_physdev_op(
-    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
 extern long
 do_update_va_mapping_otherdomain(
     unsigned long va,
-    u64 val64,
+    uint64_t val64,
     unsigned long flags,
     domid_t domid);
 
@@ -126,7 +124,7 @@ do_mmuext_op(
 extern long do_callback_op(
     int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg);
 
-extern unsigned long
+extern long
 do_iret(
     void);
 
@@ -141,16 +139,18 @@ do_set_segment_base(
     unsigned int which,
     unsigned long base);
 
+long do_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+
+long do_xenpmu_op(unsigned int op,
+                  XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg);
+
+long do_paging_domctl_cont(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
+
 #ifdef CONFIG_COMPAT
 
 #include <compat/arch-x86/xen.h>
 #include <compat/physdev.h>
 
-extern int
-compat_physdev_op(
-    int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
 extern int
 compat_common_vcpu_op(
     int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
@@ -161,17 +161,14 @@ extern int compat_mmuext_op(
     XEN_GUEST_HANDLE_PARAM(uint) pdone,
     unsigned int foreigndom);
 
-extern int compat_platform_op(
-    XEN_GUEST_HANDLE_PARAM(void) u_xenpf_op);
-
-extern long compat_callback_op(
-    int cmd, XEN_GUEST_HANDLE(void) arg);
+extern int compat_callback_op(
+    int cmd, XEN_GUEST_HANDLE(const_void) arg);
 
 extern int compat_update_va_mapping(
-    unsigned int va, u32 lo, u32 hi, unsigned int flags);
+    unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags);
 
 extern int compat_update_va_mapping_otherdomain(
-    unsigned int va, u32 lo, u32 hi, unsigned int flags, domid_t domid);
+    unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags, domid_t domid);
 
 DEFINE_XEN_GUEST_HANDLE(trap_info_compat_t);
 extern int compat_set_trap_table(XEN_GUEST_HANDLE(trap_info_compat_t) traps);
@@ -180,13 +177,13 @@ extern int compat_set_gdt(
     XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries);
 
 extern int compat_update_descriptor(
-    u32 pa_lo, u32 pa_hi, u32 desc_lo, u32 desc_hi);
+    uint32_t pa_lo, uint32_t pa_hi, uint32_t desc_lo, uint32_t desc_hi);
 
-extern unsigned int compat_iret(void);
+extern int compat_iret(void);
 
 extern int compat_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long compat_set_callbacks(
+extern int compat_set_callbacks(
     unsigned long event_selector, unsigned long event_address,
     unsigned long failsafe_selector, unsigned long failsafe_address);
 
diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h
index fa22558e2e..f6e8808b0a 100644
--- a/xen/include/asm-x86/paging.h
+++ b/xen/include/asm-x86/paging.h
@@ -236,9 +236,6 @@ int paging_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,
                   XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl,
                   bool_t resuming);
 
-/* Helper hypercall for dealing with continuations. */
-long paging_domctl_continuation(XEN_GUEST_HANDLE_PARAM(xen_domctl_t));
-
 /* Call when destroying a vcpu/domain */
 void paging_vcpu_teardown(struct vcpu *v);
 int paging_teardown(struct domain *d);
diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
index 30558d3c61..9266bc86e9 100644
--- a/xen/include/xen/hypercall.h
+++ b/xen/include/xen/hypercall.h
@@ -114,11 +114,6 @@ common_vcpu_op(int cmd,
     struct vcpu *v,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
-do_nmi_op(
-    unsigned int cmd,
-    XEN_GUEST_HANDLE_PARAM(void) arg);
-
 extern long
 do_hvm_op(
     unsigned long op,
@@ -126,13 +121,15 @@ do_hvm_op(
 
 extern long
 do_kexec_op(
-    unsigned long op,
+    unsigned int op,
     XEN_GUEST_HANDLE_PARAM(void) uarg);
 
 extern long
 do_xsm_op(
     XEN_GUEST_HANDLE_PARAM(void) u_xsm_op);
 
+long do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+
 #ifdef CONFIG_ARGO
 extern long do_argo_op(
     unsigned int cmd,
@@ -145,9 +142,6 @@ extern long do_argo_op(
 extern long
 do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
-do_xenpmu_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg);
-
 extern long
 do_dm_op(
     domid_t domid,
@@ -198,21 +192,27 @@ compat_sched_op(
 
 extern int
 compat_set_timer_op(
-    u32 lo,
-    s32 hi);
+    uint32_t lo,
+    int32_t hi);
 
 extern int compat_xsm_op(
     XEN_GUEST_HANDLE_PARAM(void) op);
 
-extern int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg);
+extern int compat_kexec_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(void) uarg);
 
 DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
 extern int compat_multicall(
     XEN_GUEST_HANDLE_PARAM(multicall_entry_compat_t) call_list,
     uint32_t nr_calls);
 
+int compat_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+
+typedef struct compat_platform_op compat_platform_op_t;
+DEFINE_XEN_GUEST_HANDLE(compat_platform_op_t);
+int compat_platform_op(XEN_GUEST_HANDLE_PARAM(compat_platform_op_t) u_xenpf_op);
+
 #ifdef CONFIG_ARGO
-extern long compat_argo_op(
+extern int compat_argo_op(
     unsigned int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg1,
     XEN_GUEST_HANDLE_PARAM(void) arg2,
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219255.380068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7F-0004i0-GR; Mon, 01 Nov 2021 15:20:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219255.380068; Mon, 01 Nov 2021 15:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7F-0004gZ-C2; Mon, 01 Nov 2021 15:20:53 +0000
Received: by outflank-mailman (input) for mailman id 219255;
 Mon, 01 Nov 2021 15:20:51 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ7D-0008DA-M5
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:51 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 37c88e92-965f-4522-82e5-57e16ad5a4b0;
 Mon, 01 Nov 2021 15:20:24 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 96B5E1FD79;
 Mon,  1 Nov 2021 15:20:22 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6CEAB13A4A;
 Mon,  1 Nov 2021 15:20:22 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id yJJUGbYFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37c88e92-965f-4522-82e5-57e16ad5a4b0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780022; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=A500M7/kbnWFZXR2FmfgKykvm8ssxpt2b8E0D411uF4=;
	b=eCWdxCK3727M8kwYM5o6Zl6+EuoS9Rx9JoN1EXtvLxq8YpHEirQjbW1jf3AJAcTv8KCSuf
	pzlB2R3AQwIJ5JC49OBHw4W9WXPECJxhS4jwqxmMXO5o8Poe+qAxQ1JZatwvOkS6EN4Vxi
	0jg+FNFfiASDWQ5p9MCtKHO79tNmaWg=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 12/15] xen/arm: call hypercall handlers via generated macro
Date: Mon,  1 Nov 2021 16:20:12 +0100
Message-Id: <20211101152015.28488-13-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Instead of using a function table use the generated macros for calling
the appropriate hypercall handlers.

This makes the calls of the handlers type safe.

For deprecated hypercalls define stub functions.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- make hypercall_args[] const (Jan Beulich)
---
 xen/arch/arm/traps.c | 119 ++++++++++---------------------------------
 1 file changed, 26 insertions(+), 93 deletions(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 7abc28848e..00af76cf14 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1337,62 +1337,20 @@ static register_t do_deprecated_hypercall(void)
     return -ENOSYS;
 }
 
-typedef register_t (*arm_hypercall_fn_t)(
-    register_t, register_t, register_t, register_t, register_t);
-
-typedef struct {
-    arm_hypercall_fn_t fn;
-    int nr_args;
-} arm_hypercall_t;
-
-#define HYPERCALL(_name, _nr_args)                                   \
-    [ __HYPERVISOR_ ## _name ] =  {                                  \
-        .fn = (arm_hypercall_fn_t) &do_ ## _name,                    \
-        .nr_args = _nr_args,                                         \
-    }
+long dep_sched_op_compat(int cmd, unsigned long arg)
+{
+    return do_deprecated_hypercall();
+}
 
-/*
- * Only use this for hypercalls which were deprecated (i.e. replaced
- * by something else) before Xen on ARM was created, i.e. *not* for
- * hypercalls which are simply not yet used on ARM.
- */
-#define HYPERCALL_DEPRECATED(_name, _nr_args)                   \
-    [ __HYPERVISOR_##_name ] = {                                \
-        .fn = (arm_hypercall_fn_t) &do_deprecated_hypercall,    \
-        .nr_args = _nr_args,                                    \
-    }
+long dep_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
+{
+    return do_deprecated_hypercall();
+}
 
-static arm_hypercall_t arm_hypercall_table[] = {
-    HYPERCALL(memory_op, 2),
-    HYPERCALL(domctl, 1),
-    HYPERCALL(sched_op, 2),
-    HYPERCALL_DEPRECATED(sched_op_compat, 2),
-    HYPERCALL(console_io, 3),
-    HYPERCALL(xen_version, 2),
-    HYPERCALL(xsm_op, 1),
-    HYPERCALL(event_channel_op, 2),
-    HYPERCALL_DEPRECATED(event_channel_op_compat, 1),
-    HYPERCALL(physdev_op, 2),
-    HYPERCALL_DEPRECATED(physdev_op_compat, 1),
-    HYPERCALL(sysctl, 2),
-    HYPERCALL(hvm_op, 2),
-#ifdef CONFIG_GRANT_TABLE
-    HYPERCALL(grant_table_op, 3),
-#endif
-    HYPERCALL(multicall, 2),
-    HYPERCALL(platform_op, 1),
-    HYPERCALL(vcpu_op, 3),
-    HYPERCALL(vm_assist, 2),
-#ifdef CONFIG_ARGO
-    HYPERCALL(argo_op, 5),
-#endif
-#ifdef CONFIG_HYPFS
-    HYPERCALL(hypfs_op, 5),
-#endif
-#ifdef CONFIG_IOREQ_SERVER
-    HYPERCALL(dm_op, 3),
-#endif
-};
+long dep_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
+{
+    return do_deprecated_hypercall();
+}
 
 #ifndef NDEBUG
 static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
@@ -1431,7 +1389,6 @@ static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
 #define HYPERCALL_ARG3(r) (r)->x2
 #define HYPERCALL_ARG4(r) (r)->x3
 #define HYPERCALL_ARG5(r) (r)->x4
-#define HYPERCALL_ARGS(r) (r)->x0, (r)->x1, (r)->x2, (r)->x3, (r)->x4
 #else
 #define HYPERCALL_RESULT_REG(r) (r)->r0
 #define HYPERCALL_ARG1(r) (r)->r0
@@ -1439,52 +1396,40 @@ static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
 #define HYPERCALL_ARG3(r) (r)->r2
 #define HYPERCALL_ARG4(r) (r)->r3
 #define HYPERCALL_ARG5(r) (r)->r4
-#define HYPERCALL_ARGS(r) (r)->r0, (r)->r1, (r)->r2, (r)->r3, (r)->r4
 #endif
 
+static const unsigned char hypercall_args[] = hypercall_args_arm;
+
 static void do_trap_hypercall(struct cpu_user_regs *regs, register_t *nr,
                               const union hsr hsr)
 {
-    arm_hypercall_fn_t call = NULL;
     struct vcpu *curr = current;
 
-    BUILD_BUG_ON(NR_hypercalls < ARRAY_SIZE(arm_hypercall_table) );
-
     if ( hsr.iss != XEN_HYPERCALL_TAG )
     {
         gprintk(XENLOG_WARNING, "Invalid HVC imm 0x%x\n", hsr.iss);
         return inject_undef_exception(regs, hsr);
     }
 
-    if ( *nr >= ARRAY_SIZE(arm_hypercall_table) )
-    {
-        perfc_incr(invalid_hypercalls);
-        HYPERCALL_RESULT_REG(regs) = -ENOSYS;
-        return;
-    }
-
     curr->hcall_preempted = false;
 
     perfc_incra(hypercalls, *nr);
-    call = arm_hypercall_table[*nr].fn;
-    if ( call == NULL )
-    {
-        HYPERCALL_RESULT_REG(regs) = -ENOSYS;
-        return;
-    }
 
-    HYPERCALL_RESULT_REG(regs) = call(HYPERCALL_ARGS(regs));
+    call_handlers_arm(*nr, HYPERCALL_RESULT_REG(regs), HYPERCALL_ARG1(regs),
+                      HYPERCALL_ARG2(regs), HYPERCALL_ARG3(regs),
+                      HYPERCALL_ARG4(regs), HYPERCALL_ARG5(regs));
 
 #ifndef NDEBUG
-    if ( !curr->hcall_preempted )
+    if ( !curr->hcall_preempted && HYPERCALL_RESULT_REG(regs) != -ENOSYS )
     {
         /* Deliberately corrupt parameter regs used by this hypercall. */
-        switch ( arm_hypercall_table[*nr].nr_args ) {
+        switch ( hypercall_args[*nr] ) {
         case 5: HYPERCALL_ARG5(regs) = 0xDEADBEEF;
         case 4: HYPERCALL_ARG4(regs) = 0xDEADBEEF;
         case 3: HYPERCALL_ARG3(regs) = 0xDEADBEEF;
         case 2: HYPERCALL_ARG2(regs) = 0xDEADBEEF;
         case 1: /* Don't clobber x0/r0 -- it's the return value */
+        case 0: /* -ENOSYS case */
             break;
         default: BUG();
         }
@@ -1521,7 +1466,10 @@ static bool check_multicall_32bit_clean(struct multicall_entry *multi)
 {
     int i;
 
-    for ( i = 0; i < arm_hypercall_table[multi->op].nr_args; i++ )
+    if ( multi->op >= ARRAY_SIZE(hypercall_args) )
+        return true;
+
+    for ( i = 0; i < hypercall_args[multi->op]; i++ )
     {
         if ( unlikely(multi->args[i] & 0xffffffff00000000ULL) )
         {
@@ -1538,28 +1486,13 @@ static bool check_multicall_32bit_clean(struct multicall_entry *multi)
 enum mc_disposition arch_do_multicall_call(struct mc_state *state)
 {
     struct multicall_entry *multi = &state->call;
-    arm_hypercall_fn_t call = NULL;
-
-    if ( multi->op >= ARRAY_SIZE(arm_hypercall_table) )
-    {
-        multi->result = -ENOSYS;
-        return mc_continue;
-    }
-
-    call = arm_hypercall_table[multi->op].fn;
-    if ( call == NULL )
-    {
-        multi->result = -ENOSYS;
-        return mc_continue;
-    }
 
     if ( is_32bit_domain(current->domain) &&
          !check_multicall_32bit_clean(multi) )
         return mc_continue;
 
-    multi->result = call(multi->args[0], multi->args[1],
-                         multi->args[2], multi->args[3],
-                         multi->args[4]);
+    call_handlers_arm(multi->op, multi->result, multi->args[0], multi->args[1],
+                      multi->args[2], multi->args[3], multi->args[4]);
 
     return likely(!psr_mode_is_user(guest_cpu_user_regs()))
            ? mc_continue : mc_preempt;
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219256.380073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7G-0004pW-CL; Mon, 01 Nov 2021 15:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219256.380073; Mon, 01 Nov 2021 15:20:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7F-0004nf-Ta; Mon, 01 Nov 2021 15:20:53 +0000
Received: by outflank-mailman (input) for mailman id 219256;
 Mon, 01 Nov 2021 15:20:51 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ7D-0008DB-Ns
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:51 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 3b39cf17-3b27-11ec-8548-12813bfff9fa;
 Mon, 01 Nov 2021 15:20:24 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id CB80B1FD7A;
 Mon,  1 Nov 2021 15:20:22 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9D60E13A4A;
 Mon,  1 Nov 2021 15:20:22 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id UELzJLYFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b39cf17-3b27-11ec-8548-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780022; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Ebl2j3jB8jP/yYrt9tPrvJMVy94LsP3wFgmGN2v8Zvg=;
	b=Fehuadq8JM1ebDMiW89hfQzagnl7/4IzqnzzsD0UzEtm02xwwNhkmi9/HlPGpkgTAf7LgG
	qi1K/RtRyz0ex+00qeaXloE5GBIzarJfSQuBL2LW7lkzASqQJgKefh/ttL1xMPPYsVOlvm
	8yokW5FFQivrsbHwv3xXLr62zntr6ro=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 13/15] xen/x86: add hypercall performance counters for hvm, correct pv
Date: Mon,  1 Nov 2021 16:20:13 +0100
Message-Id: <20211101152015.28488-14-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The HVM hypercall handler is missing incrementing the per hypercall
counters. Add that.

The counters for PV are handled wrong, as they are not using
perf_incra() with the number of the hypercall as index, but are
incrementing the first hypercall entry (set_trap_table) for each
hypercall. Fix that.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/hvm/hypercall.c | 2 ++
 xen/arch/x86/pv/hypercall.c  | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 6d8d6693dc..1bac5d4d44 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -210,6 +210,8 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         ioreq_signal_mapcache_invalidate();
     }
 
+    perfc_incra(hypercalls, eax);
+
     return curr->hcall_preempted ? HVM_HCALL_preempted : HVM_HCALL_completed;
 }
 
diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index ef92266620..bf64bb41bb 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -102,7 +102,7 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
     if ( curr->hcall_preempted )
         regs->rip -= 2;
 
-    perfc_incr(hypercalls);
+    perfc_incra(hypercalls, eax);
 }
 
 enum mc_disposition pv_do_multicall_call(struct mc_state *state)
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:20:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:20:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219263.380090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7K-0005xj-Lm; Mon, 01 Nov 2021 15:20:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219263.380090; Mon, 01 Nov 2021 15:20:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7K-0005wa-G4; Mon, 01 Nov 2021 15:20:58 +0000
Received: by outflank-mailman (input) for mailman id 219263;
 Mon, 01 Nov 2021 15:20:56 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ7I-0008DB-O6
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:20:56 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 3bcc0606-3b27-11ec-8549-12813bfff9fa;
 Mon, 01 Nov 2021 15:20:24 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 25EE61FD78;
 Mon,  1 Nov 2021 15:20:22 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id EA0B813A4A;
 Mon,  1 Nov 2021 15:20:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id MN7XN7UFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3bcc0606-3b27-11ec-8549-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780022; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=EIALndOIsMPGW+C03aHxK3+A8bGfi8rpQdK0dJq1lXo=;
	b=Blau3iAILyXnGkM+KmnlNo1lLOztSuGG4vf1Sd43JzAwieha9BTOgzwwQb41Bd/PW7wSVi
	+HB4dW0lzk4z4pfzjWdQoF7W+EC7iDd5XQkSuI/DKboTrlpbzl5l8YYc9Va2+ZUb6BFtxw
	SClQYLm+jiTyT+GqgcEwiz2+j5i9kyc=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 10/15] xen/x86: don't use hypercall table for calling compat hypercalls
Date: Mon,  1 Nov 2021 16:20:10 +0100
Message-Id: <20211101152015.28488-11-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Today the *_op_compat hypercalls call the modern handler functions by
using the entries from the hypercall table. This is resulting in a
not needed indirect function call which can be avoided by using the
correct handler function directly. This is basically a revert of
commit 1252e282311734 ("86/pv: Export pv_hypercall_table[] rather
than working around it in several ways"), which reasoning no longer
applies, as shim no longer modifies the hypercall table.

The hypercall table can now be made static as there is no external
reference to it any longer.

Commit 834cb8761051f7 ("x86/PV32: fix physdev_op_compat handling")
can be reverted, too, as using the direct call of the correct handler
is already handled fine without that patch.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/compat.c           | 14 ++++----------
 xen/arch/x86/pv/hypercall.c     |  9 ++++++++-
 xen/arch/x86/x86_64/compat.c    |  1 -
 xen/include/asm-x86/hypercall.h |  8 --------
 4 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/compat.c b/xen/arch/x86/compat.c
index 58b202f701..939b449dec 100644
--- a/xen/arch/x86/compat.c
+++ b/xen/arch/x86/compat.c
@@ -17,14 +17,12 @@ typedef long ret_t;
 /* Legacy hypercall (as of 0x00030202). */
 ret_t do_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
 {
-    typeof(do_physdev_op) *fn =
-        (void *)pv_hypercall_table[__HYPERVISOR_physdev_op].native;
     struct physdev_op op;
 
     if ( unlikely(copy_from_guest(&op, uop, 1) != 0) )
         return -EFAULT;
 
-    return fn(op.cmd, guest_handle_from_ptr(&uop.p->u, void));
+    return do_physdev_op(op.cmd, guest_handle_from_ptr(&uop.p->u, void));
 }
 
 #ifndef COMPAT
@@ -32,14 +30,11 @@ ret_t do_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
 /* Legacy hypercall (as of 0x00030101). */
 long do_sched_op_compat(int cmd, unsigned long arg)
 {
-    typeof(do_sched_op) *fn =
-        (void *)pv_hypercall_table[__HYPERVISOR_sched_op].native;
-
     switch ( cmd )
     {
     case SCHEDOP_yield:
     case SCHEDOP_block:
-        return fn(cmd, guest_handle_from_ptr(NULL, void));
+        return do_sched_op(cmd, guest_handle_from_ptr(NULL, void));
 
     case SCHEDOP_shutdown:
         TRACE_3D(TRC_SCHED_SHUTDOWN,
@@ -57,8 +52,6 @@ long do_sched_op_compat(int cmd, unsigned long arg)
 /* Legacy hypercall (as of 0x00030202). */
 long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
 {
-    typeof(do_event_channel_op) *fn =
-        (void *)pv_hypercall_table[__HYPERVISOR_event_channel_op].native;
     struct evtchn_op op;
 
     if ( unlikely(copy_from_guest(&op, uop, 1) != 0) )
@@ -76,7 +69,8 @@ long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
     case EVTCHNOP_bind_ipi:
     case EVTCHNOP_bind_vcpu:
     case EVTCHNOP_unmask:
-        return fn(op.cmd, guest_handle_from_ptr(&uop.p->u, void));
+        return do_event_channel_op(op.cmd,
+                                   guest_handle_from_ptr(&uop.p->u, void));
 
     default:
         return -ENOSYS;
diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index abe4dd7839..c391d18130 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -27,6 +27,13 @@
 #include <asm/multicall.h>
 #include <irq_vectors.h>
 
+typedef struct {
+    hypercall_fn_t *native;
+#ifdef CONFIG_PV32
+    hypercall_fn_t *compat;
+#endif
+} pv_hypercall_table_t;
+
 #ifdef CONFIG_PV32
 #define HYPERCALL(x)                                                \
     [ __HYPERVISOR_ ## x ] = { (hypercall_fn_t *) do_ ## x,         \
@@ -40,7 +47,7 @@
 #define COMPAT_CALL(x) HYPERCALL(x)
 #endif
 
-const pv_hypercall_table_t pv_hypercall_table[] = {
+static const pv_hypercall_table_t pv_hypercall_table[] = {
     COMPAT_CALL(set_trap_table),
     HYPERCALL(mmu_update),
     COMPAT_CALL(set_gdt),
diff --git a/xen/arch/x86/x86_64/compat.c b/xen/arch/x86/x86_64/compat.c
index fcbc1cc0d7..0e4c71f2aa 100644
--- a/xen/arch/x86/x86_64/compat.c
+++ b/xen/arch/x86/x86_64/compat.c
@@ -12,7 +12,6 @@ EMIT_FILE;
 #define physdev_op_t                  physdev_op_compat_t
 #define do_physdev_op                 compat_physdev_op
 #define do_physdev_op_compat(x)       compat_physdev_op_compat(_##x)
-#define native                        compat
 
 #define COMPAT
 #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index 2547572ccd..eb2907b5b6 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -21,13 +21,6 @@ typedef unsigned long hypercall_fn_t(
     unsigned long, unsigned long, unsigned long,
     unsigned long, unsigned long);
 
-typedef struct {
-    hypercall_fn_t *native;
-#ifdef CONFIG_PV32
-    hypercall_fn_t *compat;
-#endif
-} pv_hypercall_table_t;
-
 typedef struct {
     uint8_t native;
 #ifdef CONFIG_COMPAT
@@ -38,7 +31,6 @@ typedef struct {
 extern const hypercall_args_t hypercall_args_table[NR_hypercalls];
 
 #ifdef CONFIG_PV
-extern const pv_hypercall_table_t pv_hypercall_table[];
 void pv_hypercall(struct cpu_user_regs *regs);
 #endif
 
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:21:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:21:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219267.380101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7P-0006aC-6W; Mon, 01 Nov 2021 15:21:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219267.380101; Mon, 01 Nov 2021 15:21:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ7O-0006Yg-V4; Mon, 01 Nov 2021 15:21:02 +0000
Received: by outflank-mailman (input) for mailman id 219267;
 Mon, 01 Nov 2021 15:21:01 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rWtG=PU=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhZ7N-0008DB-OE
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:21:01 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 3bcc0534-3b27-11ec-8548-12813bfff9fa;
 Mon, 01 Nov 2021 15:20:24 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 658F41FD29;
 Mon,  1 Nov 2021 15:20:22 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2E97313A4A;
 Mon,  1 Nov 2021 15:20:22 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id sG4OCrYFgGFzNwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 01 Nov 2021 15:20:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3bcc0534-3b27-11ec-8548-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635780022; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=gRIb5SGBTlBipyujtSD3UToHBjfRMPuGHT4Xm86ZSw0=;
	b=bzGBqrdMLxKH9mCGQ8umHotVow1I/MET8Tt3e3A7QRT0oDDIjc3e+t7I/iart7O9cEHZXX
	/Mc3Zn5rLl9k3uivDMWdF+OMKvAJyxR1m+57IghvUHoloXS9rtDS24FdnHcyQZI5vLW9ci
	E/S7pGX1645hovlXGhScc6gEN7vihl0=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 11/15] xen/x86: call hypercall handlers via generated macro
Date: Mon,  1 Nov 2021 16:20:11 +0100
Message-Id: <20211101152015.28488-12-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Instead of using a function table use the generated macros for calling
the appropriate hypercall handlers.

This is beneficial to performance and avoids speculation issues.

With calling the handlers using the correct number of parameters now
it is possible to do the parameter register clobbering in the NDEBUG
case after returning from the handler. With the additional generated
data the hard coded hypercall_args_table[] can be replaced by tables
using the generated number of parameters.

Note that this change modifies behavior of clobbering registers in a
minor way: in case a hypercall is returning -ENOSYS for any reason
the parameter registers will no longer be clobbered. This should be
of no real concern, as those cases ought to be extremely rare and
reuse of the registers in those cases seems rather far fetched.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- make hypercall_args_*[] const (Jan Beulich)
- make clobber_regs*() independent from NDEBUG (Jan Beulich)
- drop "L" suffix for 32-bit register clobber value (Jan Beulich)
---
 xen/arch/x86/hvm/hypercall.c    | 148 +++----------------------
 xen/arch/x86/hypercall.c        |  59 ----------
 xen/arch/x86/pv/hypercall.c     | 184 +++-----------------------------
 xen/include/asm-x86/hypercall.h |  54 +++++++---
 4 files changed, 71 insertions(+), 374 deletions(-)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 85b7a33523..6d8d6693dc 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -108,56 +108,10 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         return compat_physdev_op(cmd, arg);
 }
 
-#define HYPERCALL(x)                                         \
-    [ __HYPERVISOR_ ## x ] = { (hypercall_fn_t *) do_ ## x,  \
-                               (hypercall_fn_t *) do_ ## x }
-
-#define HVM_CALL(x)                                          \
-    [ __HYPERVISOR_ ## x ] = { (hypercall_fn_t *) hvm_ ## x, \
-                               (hypercall_fn_t *) hvm_ ## x }
-
-#define COMPAT_CALL(x)                                       \
-    [ __HYPERVISOR_ ## x ] = { (hypercall_fn_t *) do_ ## x,  \
-                               (hypercall_fn_t *) compat_ ## x }
-
-static const struct {
-    hypercall_fn_t *native, *compat;
-} hvm_hypercall_table[] = {
-    HVM_CALL(memory_op),
-    COMPAT_CALL(multicall),
-#ifdef CONFIG_GRANT_TABLE
-    HVM_CALL(grant_table_op),
-#endif
-    HYPERCALL(vm_assist),
-    COMPAT_CALL(vcpu_op),
-    HVM_CALL(physdev_op),
-    COMPAT_CALL(xen_version),
-    HYPERCALL(console_io),
-    HYPERCALL(event_channel_op),
-    COMPAT_CALL(sched_op),
-    COMPAT_CALL(set_timer_op),
-    COMPAT_CALL(xsm_op),
-    HYPERCALL(hvm_op),
-    HYPERCALL(sysctl),
-    HYPERCALL(domctl),
-#ifdef CONFIG_ARGO
-    COMPAT_CALL(argo_op),
-#endif
-    COMPAT_CALL(platform_op),
-#ifdef CONFIG_PV
-    COMPAT_CALL(mmuext_op),
-#endif
-    HYPERCALL(xenpmu_op),
-    COMPAT_CALL(dm_op),
-#ifdef CONFIG_HYPFS
-    HYPERCALL(hypfs_op),
+#ifndef NDEBUG
+static const unsigned char hypercall_args_64[] = hypercall_args_hvm64;
+static const unsigned char hypercall_args_32[] = hypercall_args_hvm32;
 #endif
-    HYPERCALL(paging_domctl_cont)
-};
-
-#undef HYPERCALL
-#undef HVM_CALL
-#undef COMPAT_CALL
 
 int hvm_hypercall(struct cpu_user_regs *regs)
 {
@@ -203,23 +157,6 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         return ret;
     }
 
-    BUILD_BUG_ON(ARRAY_SIZE(hvm_hypercall_table) >
-                 ARRAY_SIZE(hypercall_args_table));
-
-    if ( eax >= ARRAY_SIZE(hvm_hypercall_table) )
-    {
-        regs->rax = -ENOSYS;
-        return HVM_HCALL_completed;
-    }
-
-    eax = array_index_nospec(eax, ARRAY_SIZE(hvm_hypercall_table));
-
-    if ( !hvm_hypercall_table[eax].native )
-    {
-        regs->rax = -ENOSYS;
-        return HVM_HCALL_completed;
-    }
-
     /*
      * Caching is intended for instruction emulation only. Disable it
      * for any accesses by hypercall argument copy-in / copy-out.
@@ -239,34 +176,10 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%lx, %lx, %lx, %lx, %lx)",
                     eax, rdi, rsi, rdx, r10, r8);
 
-#ifndef NDEBUG
-        /* Deliberately corrupt parameter regs not used by this hypercall. */
-        switch ( hypercall_args_table[eax].native )
-        {
-        case 0: rdi = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 1: rsi = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 2: rdx = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 3: r10 = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 4: r8 = 0xdeadbeefdeadf00dUL;
-        }
-#endif
-
-        regs->rax = hvm_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8);
+        call_handlers_hvm64(eax, regs->rax, rdi, rsi, rdx, r10, r8);
 
-#ifndef NDEBUG
-        if ( !curr->hcall_preempted )
-        {
-            /* Deliberately corrupt parameter regs used by this hypercall. */
-            switch ( hypercall_args_table[eax].native )
-            {
-            case 5: regs->r8  = 0xdeadbeefdeadf00dUL; fallthrough;
-            case 4: regs->r10 = 0xdeadbeefdeadf00dUL; fallthrough;
-            case 3: regs->rdx = 0xdeadbeefdeadf00dUL; fallthrough;
-            case 2: regs->rsi = 0xdeadbeefdeadf00dUL; fallthrough;
-            case 1: regs->rdi = 0xdeadbeefdeadf00dUL;
-            }
-        }
-#endif
+        if ( !curr->hcall_preempted && regs->rax != -ENOSYS )
+            clobber_regs(regs, get_nargs(hypercall_args_64, eax));
     }
     else
     {
@@ -279,36 +192,12 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x)", eax,
                     ebx, ecx, edx, esi, edi);
 
-#ifndef NDEBUG
-        /* Deliberately corrupt parameter regs not used by this hypercall. */
-        switch ( hypercall_args_table[eax].compat )
-        {
-        case 0: ebx = 0xdeadf00d; fallthrough;
-        case 1: ecx = 0xdeadf00d; fallthrough;
-        case 2: edx = 0xdeadf00d; fallthrough;
-        case 3: esi = 0xdeadf00d; fallthrough;
-        case 4: edi = 0xdeadf00d;
-        }
-#endif
-
         curr->hcall_compat = true;
-        regs->eax = hvm_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi);
+        call_handlers_hvm32(eax, regs->eax, ebx, ecx, edx, esi, edi);
         curr->hcall_compat = false;
 
-#ifndef NDEBUG
-        if ( !curr->hcall_preempted )
-        {
-            /* Deliberately corrupt parameter regs used by this hypercall. */
-            switch ( hypercall_args_table[eax].compat )
-            {
-            case 5: regs->rdi = 0xdeadf00d; fallthrough;
-            case 4: regs->rsi = 0xdeadf00d; fallthrough;
-            case 3: regs->rdx = 0xdeadf00d; fallthrough;
-            case 2: regs->rcx = 0xdeadf00d; fallthrough;
-            case 1: regs->rbx = 0xdeadf00d;
-            }
-        }
-#endif
+        if ( !curr->hcall_preempted && regs->eax != -ENOSYS )
+            clobber_regs32(regs, get_nargs(hypercall_args_32, eax));
     }
 
     hvmemul_cache_restore(curr, token);
@@ -327,31 +216,20 @@ int hvm_hypercall(struct cpu_user_regs *regs)
 enum mc_disposition hvm_do_multicall_call(struct mc_state *state)
 {
     struct vcpu *curr = current;
-    hypercall_fn_t *func = NULL;
 
     if ( hvm_guest_x86_mode(curr) == 8 )
     {
         struct multicall_entry *call = &state->call;
 
-        if ( call->op < ARRAY_SIZE(hvm_hypercall_table) )
-            func = array_access_nospec(hvm_hypercall_table, call->op).native;
-        if ( func )
-            call->result = func(call->args[0], call->args[1], call->args[2],
-                                call->args[3], call->args[4]);
-        else
-            call->result = -ENOSYS;
+        call_handlers_hvm64(call->op, call->result, call->args[0], call->args[1],
+                            call->args[2], call->args[3], call->args[4]);
     }
     else
     {
         struct compat_multicall_entry *call = &state->compat_call;
 
-        if ( call->op < ARRAY_SIZE(hvm_hypercall_table) )
-            func = array_access_nospec(hvm_hypercall_table, call->op).compat;
-        if ( func )
-            call->result = func(call->args[0], call->args[1], call->args[2],
-                                call->args[3], call->args[4]);
-        else
-            call->result = -ENOSYS;
+        call_handlers_hvm32(call->op, call->result, call->args[0], call->args[1],
+                            call->args[2], call->args[3], call->args[4]);
     }
 
     return !hvm_get_cpl(curr) ? mc_continue : mc_preempt;
diff --git a/xen/arch/x86/hypercall.c b/xen/arch/x86/hypercall.c
index 07e1a45ef5..6b73cff9b9 100644
--- a/xen/arch/x86/hypercall.c
+++ b/xen/arch/x86/hypercall.c
@@ -22,65 +22,6 @@
 #include <xen/hypercall.h>
 #include <asm/multicall.h>
 
-#ifdef CONFIG_COMPAT
-#define ARGS(x, n)                              \
-    [ __HYPERVISOR_ ## x ] = { n, n }
-#define COMP(x, n, c)                           \
-    [ __HYPERVISOR_ ## x ] = { n, c }
-#else
-#define ARGS(x, n)    [ __HYPERVISOR_ ## x ] = { n }
-#define COMP(x, n, c) ARGS(x, n)
-#endif
-
-const hypercall_args_t hypercall_args_table[NR_hypercalls] =
-{
-    ARGS(set_trap_table, 1),
-    ARGS(mmu_update, 4),
-    ARGS(set_gdt, 2),
-    ARGS(stack_switch, 2),
-    COMP(set_callbacks, 3, 4),
-    ARGS(fpu_taskswitch, 1),
-    ARGS(sched_op_compat, 2),
-    ARGS(platform_op, 1),
-    ARGS(set_debugreg, 2),
-    ARGS(get_debugreg, 1),
-    COMP(update_descriptor, 2, 4),
-    ARGS(memory_op, 2),
-    ARGS(multicall, 2),
-    COMP(update_va_mapping, 3, 4),
-    COMP(set_timer_op, 1, 2),
-    ARGS(event_channel_op_compat, 1),
-    ARGS(xen_version, 2),
-    ARGS(console_io, 3),
-    ARGS(physdev_op_compat, 1),
-    ARGS(grant_table_op, 3),
-    ARGS(vm_assist, 2),
-    COMP(update_va_mapping_otherdomain, 4, 5),
-    ARGS(vcpu_op, 3),
-    COMP(set_segment_base, 2, 0),
-    ARGS(mmuext_op, 4),
-    ARGS(xsm_op, 1),
-    ARGS(nmi_op, 2),
-    ARGS(sched_op, 2),
-    ARGS(callback_op, 2),
-    ARGS(xenoprof_op, 2),
-    ARGS(event_channel_op, 2),
-    ARGS(physdev_op, 2),
-    ARGS(sysctl, 1),
-    ARGS(domctl, 1),
-    ARGS(kexec_op, 2),
-    ARGS(argo_op, 5),
-    ARGS(xenpmu_op, 2),
-    ARGS(hvm_op, 2),
-    ARGS(dm_op, 3),
-    ARGS(hypfs_op, 5),
-    ARGS(mca, 1),
-    ARGS(paging_domctl_cont, 1),
-};
-
-#undef COMP
-#undef ARGS
-
 #define NEXT_ARG(fmt, args)                                                 \
 ({                                                                          \
     unsigned long __arg;                                                    \
diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index c391d18130..ef92266620 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -27,119 +27,22 @@
 #include <asm/multicall.h>
 #include <irq_vectors.h>
 
-typedef struct {
-    hypercall_fn_t *native;
-#ifdef CONFIG_PV32
-    hypercall_fn_t *compat;
-#endif
-} pv_hypercall_table_t;
-
+#ifndef NDEBUG
+static const unsigned char hypercall_args_64[] = hypercall_args_pv64;
 #ifdef CONFIG_PV32
-#define HYPERCALL(x)                                                \
-    [ __HYPERVISOR_ ## x ] = { (hypercall_fn_t *) do_ ## x,         \
-                               (hypercall_fn_t *) do_ ## x }
-#define COMPAT_CALL(x)                                              \
-    [ __HYPERVISOR_ ## x ] = { (hypercall_fn_t *) do_ ## x,         \
-                               (hypercall_fn_t *) compat_ ## x }
-#else
-#define HYPERCALL(x)                                                \
-    [ __HYPERVISOR_ ## x ] = { (hypercall_fn_t *) do_ ## x }
-#define COMPAT_CALL(x) HYPERCALL(x)
-#endif
-
-static const pv_hypercall_table_t pv_hypercall_table[] = {
-    COMPAT_CALL(set_trap_table),
-    HYPERCALL(mmu_update),
-    COMPAT_CALL(set_gdt),
-    HYPERCALL(stack_switch),
-    COMPAT_CALL(set_callbacks),
-    HYPERCALL(fpu_taskswitch),
-    HYPERCALL(sched_op_compat),
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
-    COMPAT_CALL(platform_op),
-#endif
-    HYPERCALL(set_debugreg),
-    HYPERCALL(get_debugreg),
-    COMPAT_CALL(update_descriptor),
-    COMPAT_CALL(memory_op),
-    COMPAT_CALL(multicall),
-    COMPAT_CALL(update_va_mapping),
-    COMPAT_CALL(set_timer_op),
-    HYPERCALL(event_channel_op_compat),
-    COMPAT_CALL(xen_version),
-    HYPERCALL(console_io),
-    COMPAT_CALL(physdev_op_compat),
-#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
-    COMPAT_CALL(grant_table_op),
-#endif
-    HYPERCALL(vm_assist),
-    COMPAT_CALL(update_va_mapping_otherdomain),
-    COMPAT_CALL(iret),
-    COMPAT_CALL(vcpu_op),
-    HYPERCALL(set_segment_base),
-    COMPAT_CALL(mmuext_op),
-    COMPAT_CALL(xsm_op),
-    COMPAT_CALL(nmi_op),
-    COMPAT_CALL(sched_op),
-    COMPAT_CALL(callback_op),
-#ifdef CONFIG_XENOPROF
-    COMPAT_CALL(xenoprof_op),
-#endif
-    HYPERCALL(event_channel_op),
-    COMPAT_CALL(physdev_op),
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
-    HYPERCALL(sysctl),
-    HYPERCALL(domctl),
-#endif
-#ifdef CONFIG_KEXEC
-    COMPAT_CALL(kexec_op),
+static const unsigned char hypercall_args_32[] = hypercall_args_pv32;
 #endif
-#ifdef CONFIG_ARGO
-    COMPAT_CALL(argo_op),
 #endif
-    HYPERCALL(xenpmu_op),
-#ifdef CONFIG_HVM
-    HYPERCALL(hvm_op),
-    COMPAT_CALL(dm_op),
-#endif
-#ifdef CONFIG_HYPFS
-    HYPERCALL(hypfs_op),
-#endif
-    HYPERCALL(mca),
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
-    HYPERCALL(paging_domctl_cont),
-#endif
-};
-
-#undef COMPAT_CALL
-#undef HYPERCALL
 
 /* Forced inline to cause 'compat' to be evaluated at compile time. */
 static void always_inline
 _pv_hypercall(struct cpu_user_regs *regs, bool compat)
 {
     struct vcpu *curr = current;
-    unsigned long eax = compat ? regs->eax : regs->rax;
+    unsigned long eax;
 
     ASSERT(guest_kernel_mode(curr, regs));
 
-    BUILD_BUG_ON(ARRAY_SIZE(pv_hypercall_table) >
-                 ARRAY_SIZE(hypercall_args_table));
-
-    if ( eax >= ARRAY_SIZE(pv_hypercall_table) )
-    {
-        regs->rax = -ENOSYS;
-        return;
-    }
-
-    eax = array_index_nospec(eax, ARRAY_SIZE(pv_hypercall_table));
-
-    if ( !pv_hypercall_table[eax].native )
-    {
-        regs->rax = -ENOSYS;
-        return;
-    }
-
     curr->hcall_preempted = false;
 
     if ( !compat )
@@ -150,17 +53,8 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
         unsigned long r10 = regs->r10;
         unsigned long r8 = regs->r8;
 
-#ifndef NDEBUG
-        /* Deliberately corrupt parameter regs not used by this hypercall. */
-        switch ( hypercall_args_table[eax].native )
-        {
-        case 0: rdi = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 1: rsi = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 2: rdx = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 3: r10 = 0xdeadbeefdeadf00dUL; fallthrough;
-        case 4: r8 = 0xdeadbeefdeadf00dUL;
-        }
-#endif
+        eax = regs->rax;
+
         if ( unlikely(tb_init_done) )
         {
             unsigned long args[5] = { rdi, rsi, rdx, r10, r8 };
@@ -168,22 +62,10 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
             __trace_hypercall(TRC_PV_HYPERCALL_V2, eax, args);
         }
 
-        regs->rax = pv_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8);
+        call_handlers_pv64(eax, regs->rax, rdi, rsi, rdx, r10, r8);
 
-#ifndef NDEBUG
-        if ( !curr->hcall_preempted )
-        {
-            /* Deliberately corrupt parameter regs used by this hypercall. */
-            switch ( hypercall_args_table[eax].native )
-            {
-            case 5: regs->r8  = 0xdeadbeefdeadf00dUL; fallthrough;
-            case 4: regs->r10 = 0xdeadbeefdeadf00dUL; fallthrough;
-            case 3: regs->rdx = 0xdeadbeefdeadf00dUL; fallthrough;
-            case 2: regs->rsi = 0xdeadbeefdeadf00dUL; fallthrough;
-            case 1: regs->rdi = 0xdeadbeefdeadf00dUL;
-            }
-        }
-#endif
+        if ( !curr->hcall_preempted && regs->rax != -ENOSYS )
+            clobber_regs(regs, get_nargs(hypercall_args_64, eax));
     }
 #ifdef CONFIG_PV32
     else
@@ -194,17 +76,7 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
         unsigned int esi = regs->esi;
         unsigned int edi = regs->edi;
 
-#ifndef NDEBUG
-        /* Deliberately corrupt parameter regs not used by this hypercall. */
-        switch ( hypercall_args_table[eax].compat )
-        {
-        case 0: ebx = 0xdeadf00d; fallthrough;
-        case 1: ecx = 0xdeadf00d; fallthrough;
-        case 2: edx = 0xdeadf00d; fallthrough;
-        case 3: esi = 0xdeadf00d; fallthrough;
-        case 4: edi = 0xdeadf00d;
-        }
-#endif
+        eax = regs->eax;
 
         if ( unlikely(tb_init_done) )
         {
@@ -214,23 +86,11 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
         }
 
         curr->hcall_compat = true;
-        regs->eax = pv_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi);
+        call_handlers_pv32(eax, regs->eax, ebx, ecx, edx, esi, edi);
         curr->hcall_compat = false;
 
-#ifndef NDEBUG
-        if ( !curr->hcall_preempted )
-        {
-            /* Deliberately corrupt parameter regs used by this hypercall. */
-            switch ( hypercall_args_table[eax].compat )
-            {
-            case 5: regs->edi = 0xdeadf00d; fallthrough;
-            case 4: regs->esi = 0xdeadf00d; fallthrough;
-            case 3: regs->edx = 0xdeadf00d; fallthrough;
-            case 2: regs->ecx = 0xdeadf00d; fallthrough;
-            case 1: regs->ebx = 0xdeadf00d;
-            }
-        }
-#endif
+        if ( !curr->hcall_preempted && regs->eax != -ENOSYS )
+            clobber_regs32(regs, get_nargs(hypercall_args_32, eax));
     }
 #endif /* CONFIG_PV32 */
 
@@ -256,13 +116,8 @@ enum mc_disposition pv_do_multicall_call(struct mc_state *state)
         struct compat_multicall_entry *call = &state->compat_call;
 
         op = call->op;
-        if ( (op < ARRAY_SIZE(pv_hypercall_table)) &&
-             pv_hypercall_table[op].compat )
-            call->result = pv_hypercall_table[op].compat(
-                call->args[0], call->args[1], call->args[2],
-                call->args[3], call->args[4]);
-        else
-            call->result = -ENOSYS;
+        call_handlers_pv32(op, call->result, call->args[0], call->args[1],
+                           call->args[2], call->args[3], call->args[4]);
     }
     else
 #endif
@@ -270,13 +125,8 @@ enum mc_disposition pv_do_multicall_call(struct mc_state *state)
         struct multicall_entry *call = &state->call;
 
         op = call->op;
-        if ( (op < ARRAY_SIZE(pv_hypercall_table)) &&
-             pv_hypercall_table[op].native )
-            call->result = pv_hypercall_table[op].native(
-                call->args[0], call->args[1], call->args[2],
-                call->args[3], call->args[4]);
-        else
-            call->result = -ENOSYS;
+        call_handlers_pv64(op, call->result, call->args[0], call->args[1],
+                           call->args[2], call->args[3], call->args[4]);
     }
 
     return unlikely(op == __HYPERVISOR_iret)
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index eb2907b5b6..8600da0fd8 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -17,19 +17,6 @@
 
 #define __HYPERVISOR_paging_domctl_cont __HYPERVISOR_arch_1
 
-typedef unsigned long hypercall_fn_t(
-    unsigned long, unsigned long, unsigned long,
-    unsigned long, unsigned long);
-
-typedef struct {
-    uint8_t native;
-#ifdef CONFIG_COMPAT
-    uint8_t compat;
-#endif
-} hypercall_args_t;
-
-extern const hypercall_args_t hypercall_args_table[NR_hypercalls];
-
 #ifdef CONFIG_PV
 void pv_hypercall(struct cpu_user_regs *regs);
 #endif
@@ -55,4 +42,45 @@ compat_common_vcpu_op(
 
 #endif /* CONFIG_COMPAT */
 
+#ifndef NDEBUG
+static inline unsigned int get_nargs(const unsigned char *tbl, unsigned int c)
+{
+    return tbl[c];
+}
+#else
+#define get_nargs(tbl, c) 0
+#endif
+
+static inline void clobber_regs(struct cpu_user_regs *regs,
+                                unsigned int nargs)
+{
+#ifndef NDEBUG
+    /* Deliberately corrupt used parameter regs. */
+    switch ( nargs )
+    {
+    case 5: regs->r8  = 0xdeadbeefdeadf00dUL; fallthrough;
+    case 4: regs->r10 = 0xdeadbeefdeadf00dUL; fallthrough;
+    case 3: regs->rdx = 0xdeadbeefdeadf00dUL; fallthrough;
+    case 2: regs->rsi = 0xdeadbeefdeadf00dUL; fallthrough;
+    case 1: regs->rdi = 0xdeadbeefdeadf00dUL;
+    }
+#endif
+}
+
+static inline void clobber_regs32(struct cpu_user_regs *regs,
+                                  unsigned int nargs)
+{
+#ifndef NDEBUG
+    /* Deliberately corrupt used parameter regs. */
+    switch ( nargs )
+    {
+    case 5: regs->edi = 0xdeadf00dU; fallthrough;
+    case 4: regs->esi = 0xdeadf00dU; fallthrough;
+    case 3: regs->edx = 0xdeadf00dU; fallthrough;
+    case 2: regs->ecx = 0xdeadf00dU; fallthrough;
+    case 1: regs->ebx = 0xdeadf00dU;
+    }
+#endif
+}
+
 #endif /* __ASM_X86_HYPERCALL_H__ */
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 15:23:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 15:23:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219307.380111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ9y-000169-Rr; Mon, 01 Nov 2021 15:23:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219307.380111; Mon, 01 Nov 2021 15:23:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZ9y-000162-Oy; Mon, 01 Nov 2021 15:23:42 +0000
Received: by outflank-mailman (input) for mailman id 219307;
 Mon, 01 Nov 2021 15:23:41 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7jqW=PU=linuxfoundation.org=aweltz@srs-us1.protection.inumbo.net>)
 id 1mhZ9w-00015v-WC
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 15:23:41 +0000
Received: from mail-io1-xd2e.google.com (unknown [2607:f8b0:4864:20::d2e])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 9c41e33a-ee85-4f40-abfb-acf8e72185ae;
 Mon, 01 Nov 2021 15:23:39 +0000 (UTC)
Received: by mail-io1-xd2e.google.com with SMTP id g8so20654597iob.10
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 08:23:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c41e33a-ee85-4f40-abfb-acf8e72185ae
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linuxfoundation.org; s=google;
        h=mime-version:from:date:message-id:subject:to:cc;
        bh=D5LS2FAkEdHeDnKbJfOu+RwohJh4dqDI9eCt0HGi+yU=;
        b=DSx+kkMgBZOThew1hXI3oRPDiLv/qd5EKgJ9TC3yZj10ZoVdJR1seUalx8kQEsVz0P
         CCmyJgozbcYidhkNJEg9VvQ4jn7cxxTGKnIVfqYpq8NRjK8Z/kvLP2f2DfrEt4gz4LkA
         aZym0FpH/WEgl8j00Pcg008kpKYkYnVS2R+24=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc;
        bh=D5LS2FAkEdHeDnKbJfOu+RwohJh4dqDI9eCt0HGi+yU=;
        b=FHJHCnwM4PgBDqp0T1DNjzQzROTGgpexQFExnZFVWxZy3ObiAGw1HCU5mA+mBa24FL
         lrlKeKzkdHjDx/MyibcfJRNkOcoXUweSNBDprYiHh7wKawCLfiFHP7T9K8QeOEG6F4JM
         20WV5en1dnJb3TwtxBor/1LISFAEndsyztfOxNDXG53JrcL6zexRO2nNaadDP/TsTdtE
         FlyghlbQ3VwWxtYSv3Mx7Zo2Z9cpATKntLmMTouBEU7tGf/QQs9pGmUVmRiCb/BgpsyD
         dxYfhma5hM0MXV7ZUZQdKdU+X2VirzWzMcJynC+OFV4FM0CkrTXIx2df43zG0VUALyqg
         x/KA==
X-Gm-Message-State: AOAM533jR8Ke7F0BAcjvuDm+/7/IseOaBfSvSNQQt5aD1eUrokRT5xFI
	TvI32dsFtrT9OU4y6/r6qfcMQ4RfdnJNpa5E02/EmQ==
X-Google-Smtp-Source: ABdhPJwJ8aT6tE4jX2FhgItga64Vezn6lrKzuYxNIIaeJM7bClouiHZ1faFLRw5AzKM4mLShBxrTQH+Oqb28gytiHb8=
X-Received: by 2002:a05:6638:2727:: with SMTP id m39mr22554670jav.125.1635780219269;
 Mon, 01 Nov 2021 08:23:39 -0700 (PDT)
MIME-Version: 1.0
From: Ashley Weltz <aweltz@linuxfoundation.org>
Date: Mon, 1 Nov 2021 11:23:23 -0400
Message-ID: <CADT4064BkNr6W-6Y2LXCPW4wa+GQNzYHEW2EQRaoymrYPwfUXA@mail.gmail.com>
Subject: Call for agenda items for November 2nd Community Call @ 1500 UTC
To: amit@infradead.org, andrew.cooper3@citrix.com, Artem_Mygaiev@epam.com, 
	ash.j.wilding@gmail.com, ben@exotanium.io, bobby.eshleman@gmail.com, 
	brendank310@gmail.com, brian.woods@xilinx.com, cardoe@cardoe.com, 
	christopher.w.clark@gmail.com, Corey Minyard <cminyard@mvista.com>, 
	daniel.kiper@oracle.com, deepthi.m@ltts.com, dpsmith@apertussolutions.com, 
	dwmw@amazon.co.uk, edgar.iglesias@xilinx.com, Ian.Jackson@citrix.com, 
	insurgo@riseup.net, intel-xen@intel.com, Jarvis.Roach@dornerworks.com, 
	Jeff.Kubascik@dornerworks.com, jgross@suse.com, john.ji@intel.com, 
	julien@xen.org, kevin.pearson@ortmanconsulting.com, Matt.Spencer@arm.com, 
	=?UTF-8?Q?Mirela_Simonovi=C4=87?= <mirela.simonovic@aggios.com>, 
	oleksandr_andrushchenko@epam.com, oleksandr_tyshchenko@epam.com, 
	olivier.lambert@vates.fr, pdurrant@amazon.com, persaur@gmail.com, 
	piotr.krol@3mdeb.com, Rahul.Singh@arm.com, rianquinn@gmail.com, 
	rob.townley@gmail.com, robin.randhawa@arm.com, roger.pau@citrix.com, 
	scottwd@gmail.com, sergey.dyasli@citrix.com, sstabellini@kernel.org, 
	Stewart.Hildebrand@dornerworks.com, tamas.k.lengyel@gmail.com, 
	varadgautam@gmail.com, volodymyr_babchuk@epam.com, wl@xen.org
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000e685ac05cfbbc20d"

--000000000000e685ac05cfbbc20d
Content-Type: text/plain; charset="UTF-8"

Hi everyone,

Our next meeting is tomorrow at 1500 UTC.

The proposed agenda is in
https://cryptpad.fr/pad/#/2/pad/edit/fsdoZMp0ZKERXS-2-VwTPzJ0/. Please add
or edit any items to this agenda. Alternatively, please feel free to email
me directly with agenda items.

Please put your name beside any items if you edit the document.

We will plan to start the meeting 5 minutes past the hour.

* If you want to be CC'ed please add or remove yourself from the
sign-up-sheet at
https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/

Again, please let me know if you have any questions. See you on Tuesday!

Cheers,
Ashley

-- 
Ashley Weltz, Project Coordinator
The Linux Foundation
aweltz@linuxfoundation.org

--000000000000e685ac05cfbbc20d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi everyone,<div><br></div><div><div>Our next meeting is t=
omorrow at 1500 UTC.=C2=A0</div><div><br></div><div>The proposed agenda is =
in=C2=A0<a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/fsdoZMp0ZKERXS-2-Vw=
TPzJ0/">https://cryptpad.fr/pad/#/2/pad/edit/fsdoZMp0ZKERXS-2-VwTPzJ0/</a>.=
 Please add or edit any items to this agenda. Alternatively, please feel fr=
ee to email me directly with agenda items.=C2=A0</div><div><br>Please put y=
our name beside any items if you edit the document.<br><br>We will plan to =
start the meeting 5 minutes past the hour.=C2=A0<br><br>* If you want to be=
 CC&#39;ed please add or remove yourself from the sign-up-sheet at=C2=A0<a =
href=3D"https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/" rel=
=3D"noreferrer" target=3D"_blank">https://cryptpad.fr/pad/#/2/pad/edit/D9vG=
zihPxxAOe6RFPz0sRCf+/</a></div><div><br></div><div>Again, please let me kno=
w if you have any questions. See you on Tuesday!</div><div><br></div><div>C=
heers,</div><div>Ashley</div><div><br></div>-- <br><div dir=3D"ltr" class=
=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div dir=3D"ltr">As=
hley Weltz, Project Coordinator=C2=A0<div>The Linux Foundation</div><div><a=
 href=3D"mailto:aweltz@linuxfoundation.org" target=3D"_blank">aweltz@linuxf=
oundation.org</a></div></div></div></div></div>

--000000000000e685ac05cfbbc20d--


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 16:03:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 16:03:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219354.380123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZmE-0005fu-1e; Mon, 01 Nov 2021 16:03:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219354.380123; Mon, 01 Nov 2021 16:03:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhZmD-0005fn-TR; Mon, 01 Nov 2021 16:03:13 +0000
Received: by outflank-mailman (input) for mailman id 219354;
 Mon, 01 Nov 2021 16:03:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhZmC-0005fd-F8; Mon, 01 Nov 2021 16:03:12 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhZmC-0003Gl-AG; Mon, 01 Nov 2021 16:03:12 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhZmC-0005sw-0w; Mon, 01 Nov 2021 16:03:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhZmC-0005TM-0R; Mon, 01 Nov 2021 16:03:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=wYhTRozc15YV/7C8hJh1eb1SeGaUU5yGtqsPsifx5d0=; b=xNa/FKeSYC3TJKCu9oDz6cli0F
	acNvAxwk8rgs7kCbf5NzxuEdBF6LYYlYlkD4/7Q824C4duohWAYNH6V7rIOAXaUZUcwqf7xzllNCy
	O9Bad8zRIbP3oY9t5nLaR8IlHsNB9EkTvXDRUBG3v3+O+5cEgjPTRSmrZVvGYXbZCUpo=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165971-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 165971: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9f8434d77859462ad98a51ec49ad8e23769d9b10
X-Osstest-Versions-That:
    xen=3030a73bf849a50411da95e94abf23cb7e8642fc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 16:03:12 +0000

flight 165971 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165971/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10
baseline version:
 xen                  3030a73bf849a50411da95e94abf23cb7e8642fc

Last test of basis   165940  2021-10-30 01:01:36 Z    2 days
Testing same since   165971  2021-11-01 13:01:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   3030a73bf8..9f8434d778  9f8434d77859462ad98a51ec49ad8e23769d9b10 -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 17:33:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 17:33:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219371.380137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhbBB-0005WA-M3; Mon, 01 Nov 2021 17:33:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219371.380137; Mon, 01 Nov 2021 17:33:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhbBB-0005W3-Hu; Mon, 01 Nov 2021 17:33:05 +0000
Received: by outflank-mailman (input) for mailman id 219371;
 Mon, 01 Nov 2021 17:33:04 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=37jG=PU=citrix.com=Andrew.Cooper3@srs-us1.protection.inumbo.net>)
 id 1mhbBA-0005Vx-G2
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 17:33:04 +0000
Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 0ffd0c70-43c0-4444-8c1f-294c8b65ead9;
 Mon, 01 Nov 2021 17:33:03 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ffd0c70-43c0-4444-8c1f-294c8b65ead9
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635787983;
  h=subject:to:cc:references:from:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=xkeh4Qdp+K8ptpykCeES9ZG4jDBim3zFPrAA50YSgAg=;
  b=LWYkFtb0It/8N8YOJoRVOO+YW3E5llxLNx9MprMffS9dlHMTv6e0hEmg
   X5qUzJ95zLEYRMe10Iugr2biHpFNERZzmCgxrQuJ6e8Ql8W+RVMl3VEUc
   70X6dbKrsvgSZAfE9+PgD6dDec1bOlQzmFY9mCuHz/OBHRBC2gnKqJXEk
   w=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: p7lf8pNpUMIq2K4s8hOjgEPUabWH55HxxDzKp+q3MX8id4GGmOciEbpOyOOuIbK/ZTid5lthqZ
 dmD95R35LATI6yze8Vcu1z2so8ILiUd+n5szFLAtb+XKvWN6SktyVxrjJiP8l+BlX3iPrHnGE6
 RbLOXxfipzm1rtuk8iy1tIHJ75eIK7bgtAgtHYkyKu3SHUki6Y2hjBtYh1WSAlSKhTAsT9Ttbo
 378CXRJpnsk4Oq9rDbog9FMgbKWljI8QLECTwTMGH4fvj1lBYXAtNt/82YzCbSehc0xglahi3y
 1xfLbUu2SRb6JruATy0fTGwt
X-SBRS: 5.1
X-MesageID: 57201173
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:D37Zja4UfBOpFzFORRtcjwxRtNzAchMFZxGqfqrLsTDasY5as4F+v
 mFLWDuAPP2NNGeneI8gPo+08hkDucfTzYdhSwBoqi00Hi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2tcw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z1
 flkrc2RcjUVIvectrwYS1p6AgByMvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTQqyGP
 pNGMlKDajzKaSwfI3gVVqtlt+mwolbxVj1KjEKs8P9fD2/7k1UqjemF3MDuUt2VR+1Fk0CAv
 GXE8m/lRBYAO7S32TeDt36hmOLLtSf6Q54JUq218OZwh1+ezXBVDwcZPXOZi/Skjk+1W/pEN
 lcZvCEpqMAPGFeDF4enGUfi+Tjd40BaC4E4//AGBB+l14b9+1e4PVo4UmQRRoQjrIwUVB0m2
 Qrc9z/2PgBHvLqQQHOb076bqzKuJCQYRVM/iT84oRgtuIe6/txq5v7bZpM6SfPu0IWpcd3l6
 2nS9HBWulkFsSIcO0xXF3jjiinkmJXGRxVdCu7/DjP8tVMRiGJIiuWVBbnnARRocd7xorqp5
 iFsdy2iAAcmVsnlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkyb5lcJGKzM
 B6P6Gu9AaO/2lPwN8ebhKrqU6wXIVXIT4y5Bpg4kPIXOvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/qNVOcAtVcSBjbX00wuQOHtO+zsNdMDhJI9fawK87epwjmKJQl+zS+
 Wq6VFMew1367UAr4y3QApy6QL+wD5t5s1whOikgYQSh13Q5ON7956YDbZonO7Ig8bU7n/JzS
 vAEfeSGA+hOFWubq2hMM8GlodwwbgmviCKPIzGhPGo1cal/SlGb4dTjZAbuqnUDV3Llqcskr
 rS8/QrHWp5fFR96BcPbZav3nVO8tHQQgsxoWE7MLoUBcUng6tEyeSfwkuU2M4cHLhCanmmW0
 AOfABE5o+jRotBqrImV1P7c94rwSrlwBEtXGWXf/I2aDyiC8zrx25JEXcaJYSvZCDH+9pK9a
 LgH1Pr7KvAGwgpH6tIuD7ZxwKsizNLzvLsGnB98FXDGYln3WLNtJn6KgZtGuqFXn+ILvAK3X
 gSE+8VAOKXPM8TgSQZDKA0gZ+WF9PcVhjiNsqhlfBSkvHd6rOidTEFfHxiQkygMfrJ6PbQsz
 folpMNLuRe0jQAnM4regy1Zn4hWwqfsj0nzWkkmPbLW
IronPort-HdrOrdr: A9a23:ksqn5ar/QPhs9RIwixcZl7kaV5u7L9V00zEX/kB9WHVpm5Oj+P
 xGzc526farslsssREb+OxpOMG7MBfhHO1OkPYs1NCZLXXbUQqTXfxfBO7ZrQEIdBeOjtK1uZ
 0QFZSWTeeAd2SS7vyKkDVQcexQueVvmZrA7Yy1rwYPPHJXguNbnmBE426gYzxLrWJ9dPgE/f
 Snl696TnabCA8qhpPRPAh6YwGPnayHqLvWJTo9QzI34giHij2lrJb8Dhijxx8bFxdC260r/2
 TpmxHwovzLiYD19jbsk0voq7hGktrozdVOQOSKl8guMz3pziKlfp5oVbGutC085Muv9FEput
 /RpApIBbU+11rhOkWO5Tf90Qjp1zgjr1fk1F+jmHPm5ff0QTorYvAxzb5xQ1/80Q4Nrdt82K
 VE0yayrJxMFy7Nmyz7+pzhSwxqvlDcmwtjrccjy1hkFacOYr5YqoISuGlPFo0bIS784Ic7VM
 FzEcDn4upMe1/yVQGZgoBW+q3vYp0PJGbCfqBb0fbllwS+3UoJgXfw/fZv3Uvpr/kGOt55D+
 etCNUgqFgBdL5RUUtHPpZ1fSKAMB26ffv9ChPhHb3ZLtByB5vske+93Fxn3pDhRHQ3pKFC76
 gpFmko7FIPRw==
X-IronPort-AV: E=Sophos;i="5.87,200,1631592000"; 
   d="scan'208";a="57201173"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O0dMTHg/YV3GIDggUJTT43EVMizI6t7f8rexn0HyrL3LHJogh0gKxmT6HbKfFZ8jvZDy+WdF/JvUXPwLWFtZaHIcQ2ExvCzCU1W76uy5aoXZgYABOnym7QXxiiJ+e5FuP1E3Wn989F0gMbfbP4rgQZpP3f1TSJIAN4umZQoJufxUtvo+RMP4vlNiYJazOyPWHG3i/db32IJD3SNtlPQCMiJh/Ybh6ylSda9m1Y9UUEDsoge7w7qTTTBjVQVIqFnnDsZeJrVCMHcF/wGc5j7buBKkgT3CpZxrUFHUVexCvVjF6HxuXAeAZDW35owEULhjmHQglLOyOpK0wmUaQAbxIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xkeh4Qdp+K8ptpykCeES9ZG4jDBim3zFPrAA50YSgAg=;
 b=Qq2sRO1XvoPiJ/CiC6C9MEYooLr1rykoJZMzoIn9k8hotZ/WVXohX1G+PfkdSTxXdirFSeS1JTdgo6c8ySWDhThlfkKo5//StDJFyP3HKwQEsH5jtA/w2URA3UuLmP48mOihIWIaVW9F9qREg94qiP2RoPXosXF9cPsQ99CfxV+wjTs12q7hDzQfheW/dpwsRD2GAokv8oz2aZGXv5yNpvWtgvNQppTPrwT/dtPbAeXf+HteIzjDzV8hAlJ9Jk3t+6EOPzdKcr6FtkYOztQVLUYQ2QF5FCNa3gnnleOHQnpxYFEqvy0/R3Fd73q8jOKsKE/4qh93UpTLW2fSROL4pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xkeh4Qdp+K8ptpykCeES9ZG4jDBim3zFPrAA50YSgAg=;
 b=RAkLxHt1ShnTKd3DyXfNjwJcAxm7uyb2ol7ZQhAb5Us1LCST30gC+AB2O3Bn87q+oi4fRYwwC9rdEWnC+pTGiGsSavKtqsP5VgUfV2Gz5BwUp5td0MSm8GdXYoALdYCP0dXArBjSNxrNUNKhkRIJOor1k5XvGnoMO89uGOC5eeY=
Subject: Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on
 AMD hardware
To: Ian Jackson <iwj@xenproject.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211028232658.20637-1-andrew.cooper3@citrix.com>
 <24959.50965.967784.441954@mariner.uk.xensource.com>
 <0ab2bad5-ad32-06e1-755c-c4fe5cb2bdd3@citrix.com>
 <24959.55804.160431.406023@mariner.uk.xensource.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <1325ff93-5b05-3660-7850-d497b6b9ee23@citrix.com>
Date: Mon, 1 Nov 2021 17:32:52 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <24959.55804.160431.406023@mariner.uk.xensource.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
X-ClientProxiedBy: LO4P123CA0225.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a6::14) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 10d6a1dd-f424-47de-9fe5-08d99d5da5f5
X-MS-TrafficTypeDiagnostic: SJ0PR03MB5437:
X-Microsoft-Antispam-PRVS: <SJ0PR03MB5437EAF32C95A5997C436CD2BA8A9@SJ0PR03MB5437.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: ZxjEPtNFvW8t8UQMEyiKXu9VaihvS/d6+c/Rrrg4Tkh2xlQdCsh2L0RbiacnMuJay3mmi4BIv9iw8vVtTGcIcpy8ndsFHxOpKnJu0ES1oXQhrA75RD7vnsDqJOxoRXu3bWE5GbFBK0P+LjbqeW9lGC5KttCD4CxBnnhumYk9KP1SiZiqAg9TqwJoOKOmPZDx0hLJaiqO5OLtoEE87AiHKHVkt/iJ12FZ/UHQaYG3oCDapXP0kVa7wBxGwU2CMtff07+9CARefAIBXkJ6ipXHBO8IwoTq1o//Ru8Lp13cWSSYyrhoIDS4upSLc5LoUWT2wPX7JV7jgyIMoXD/fLRwjwpmisyts167W7NGDevLjgBOPOYWpN9uVdrcpc9YhFxoRzRCXNHoAqejxXlo9vK6HDFOgEqqhyRwSGjx5MtK3WJcH7GMK1SgA5CzX46Oqc14NTbiRT2IzxD2YCXTKbID5ZNWznzHLB2Mib7umilmXK8RbMSyBnxBPS3WD1jm+hlnvw9xxQbIa1CWefCJ+QUVtC22ZWbTHQgZkMUTteDQzHj3YhYmSMyrgp+4FS7wwDfm9IlSt9X7B25yx4Lc+N0pB46Z8beeqmEPF9IqIiiWWx/fuSaYaAGUYu9MoTGFhoKb1GxkPP6/hgGhpQUkpXa1+bxSB/uKXLzmtsTv16ksAYE9V8Ou+It//ZvEMpYCQJqI89ZPOz5i0ZzPkIONnZI/4R/alpUlOJL92k6WkNEXKGA=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(26005)(38100700002)(86362001)(53546011)(83380400001)(36756003)(107886003)(956004)(5660300002)(186003)(6666004)(508600001)(6486002)(31696002)(8676002)(2616005)(4744005)(4326008)(82960400001)(2906002)(16576012)(54906003)(316002)(6916009)(31686004)(66946007)(66556008)(66476007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cmxleDhwbThVaFdnbWhEZGxldkFUTEI5SldNR2NCNDR5YTlBZGVzL3dKcThE?=
 =?utf-8?B?ZGJha0xEUGVNa1BObHNaOFpGWnNKd1NmNnRKQnBoSnB3RFZsSEVyZ2NJWHZy?=
 =?utf-8?B?eDUxcDE0akFIb3AyU3NEUnV6SlZMcHB4djlnVG5PZ1EwdVMyTFVpZFB2MGlC?=
 =?utf-8?B?eGt3bDlvQ05ubmRUL3UzaE1Ub0FBOUs5ZnQ2dSs2eXA1YVpob3cwaS9YcXBN?=
 =?utf-8?B?YzVvZEtOM0htbGN6d1B6a3p3eHphYkF3NXRLdS9GTkY3SHB2N2g3L29LSWZZ?=
 =?utf-8?B?bVhXZ2lmQW5DaTlHcUVEOHFuMzJuOStXMTRUNEpSMmpQNWhYbUZsbk1tVnkr?=
 =?utf-8?B?bkYzazdweG0vRDM4SlhGNzZDNEFsblExb2xsMS9McmltSHpwQTNDeHJvbVd2?=
 =?utf-8?B?cHI2b0gzc1R4MXJnL0pNb2NVNTVZVjY1RFpPajFjY3A5QjBselp6QlZYcWht?=
 =?utf-8?B?bllKQWR5VzA0K0orYkRLcDdLSk5oUG1iUURVMlArYzZWQnhqN204OUhXUms5?=
 =?utf-8?B?d3ZwUU9MaFF4bmE0bUNHdjVHM0I1TUpwazMzZ1RibmUwb2FPRExUdFJkRGps?=
 =?utf-8?B?QkFQWTZ5Y0lySUsxR0ZVbVhHc1lmT01aQnNBaUVhUFZTWU1uYm9xRDB1Zzl2?=
 =?utf-8?B?YnQ1RFB1ZVpPanRKeWYrQU5vMXZMK2tzZ1d1NDV6bVFBYXQvYVlnYjZBTnd6?=
 =?utf-8?B?bHFZV09Vd0ppSDdjMDV0RlBMN0RQRG1ENjh0OHRaZjBPcTJWS3N2VnlNVWV3?=
 =?utf-8?B?S1IybWY1SW1TOG5KZmhjTnFDc3BzbFFuQXJLYkFOcFJ5WjVjTlZkWFl0Z01k?=
 =?utf-8?B?WlZZTmtSTzdpN1A2TWQwSVpwMWszdTZBTDEvT3hzS3NUNzdlTzhYZzl4RWM4?=
 =?utf-8?B?bjZMRFFDemFXTzU4c0M2QU9ROHJwdy9RZEhlbXIvMytyQXZBYkZlZ25ZRFQw?=
 =?utf-8?B?THB5ZTJPS1F1UmhNWkU4MFZDWjZLNnRaSHNhdlB0Q21idWpDZzdxM1FOS3Zm?=
 =?utf-8?B?SFRkSzA2ZWtBcW0zd3hEdWRPcnZWRC9ySDZiajZKR1NVRnF2aWc1VEh4Sk9O?=
 =?utf-8?B?cjRYei9DWGhubnZ5Z1ZlVTd6K0hJdlVnOTJhVXVscXlRTVBTc1E0WDdOSTQw?=
 =?utf-8?B?Znh4NG90aVNjUy9JMENQMjZPVFdBbUpTMFNBR3F3L0l2UWlUaVJOejlWUE54?=
 =?utf-8?B?SmRqWGU4TlpqWWU3b2xjZkxlemR5Q1VhNTZCNkhPbUI4WUppc1k4aUhiT2hi?=
 =?utf-8?B?RU9tNndzbUdWZEg4SXpyWDg0UVRXZkJRS0RYOVJQOTZlOEN4RDMrMEM2KzZZ?=
 =?utf-8?B?T0UwWVROUU5zS1l1RkkwL2swQ2daM1BLSmordDZZa0E1ZlErVHFxRmJJVVNY?=
 =?utf-8?B?VDFTQW4yZGlvdFl1R2lGbWRVcWczaTdNQTFXTXEvUEo0YzlZUlNGYzhURE5z?=
 =?utf-8?B?QVJmcTJtSGJYa1FoamJwdnZhZXdyUnVWOTNhR3RDUVk5SmF6TkVLajQ5TVQy?=
 =?utf-8?B?ejd1ay9iRkEzbW5XUlRkQ0YzSjIvenh2OXlUbTV2b3JVajc0UEVPTTNIbjFT?=
 =?utf-8?B?eW5rYzVJQ3BQbkh5Y2xIK3c5UDJldUhwakdmaVBycXhrQnZwM1BXN3pYSDMx?=
 =?utf-8?B?VnIyYmVRYVhrOTg5TXgxcitrNitNMGt3RWNTTFV0elBlVk5XUU9YbVdXeFBs?=
 =?utf-8?B?NFJuWGs5UUMybkpuU2FDSGZPSTRFdkR1WTJuMytHUWNBbVc2VHRPME9wdXVW?=
 =?utf-8?B?c0FLRWV2OXgyVFhVbGlva3JXNDZTemRTQUNWZUVCZmdGbEI5UytHbG5mdzdP?=
 =?utf-8?B?YTlNZ3pnWUQyS3YzTEVpUllTcE42WUROWHV4UnEyaVZJT29WcWpLMHV3dEtT?=
 =?utf-8?B?OEtDN09LVThReDlGNmo1clFtd0lnakpqRXR6NzNoa0pzQ1ZCODVuOXNsdTVs?=
 =?utf-8?B?dC8rVXVtNzN5TUpUM1VIYnpiMmphY0c5blBKUkQwb3dzeVFwN2Q1Q3VxRGUv?=
 =?utf-8?B?eDlCRlVRZklJVUF4Nk9kYUM1YlVSdy8vTFh6YnZleG9lMDVrZ1hIbWRrMEd4?=
 =?utf-8?B?UTlBazIwQkVSUVV2YUl3NFB6bGJaQml0MkhGeFpnRm1IdEtOemlJMHMvQStE?=
 =?utf-8?B?YVJrZ1AzT0N1ZEJaNHNraTBzTElqUWhCVkorQUZTOEZ6SGJiMFMrU0xXSUlK?=
 =?utf-8?B?U1dqVUgvazdCM2trNTBiRjIrTXBVWnlYWG5wU0R6V2o5VjJrV3RnWklTM3Bv?=
 =?utf-8?B?M2xmdWJqenpiZHhSL3BmOHpDaTR3PT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 10d6a1dd-f424-47de-9fe5-08d99d5da5f5
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2021 17:32:59.3971
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 45KsSuTcyWr8kM2JD2xtTDljaPj9DJrWtkpMvwPmdcLMHsrqhTw4ZZv5UckYbAo9ZBohb2LpeYoZtFzWBg8PHnn9XR1oaO0E8bbaTScQSNY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5437
X-OriginatorOrg: citrix.com

On 01/11/2021 12:13, Ian Jackson wrote:
> Andrew Cooper writes ("Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware"):
>> This path is only taken for a 32bit crash kernel.  It is not taken for
>> 64bit crash kernels, or they wouldn't work on AMD either, and this is
>> something we test routinely in XenServer.
>>
>> The worst that can happen is that I've messed the lretq pattern up, and
>> broken transition to all 32bit crash kernels, irrespective of hardware
>> vendor.
>>
>> It will either function correctly, or explode.  If it is broken, it
>> won't be subtle, or dependent on the phase of the moon/etc.
> Thanks for this confirmation.
>
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>

Thanks.

Unfortunately, I've made a blunder here.  The code as implemented is
broken on Intel, and works on AMD.  (I.e. I need to swap Intel and AMD
in the commit message).  Have done locally, but won't repost just for that.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 17:34:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 17:34:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219376.380148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhbCf-00064z-08; Mon, 01 Nov 2021 17:34:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219376.380148; Mon, 01 Nov 2021 17:34:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhbCe-00064s-TD; Mon, 01 Nov 2021 17:34:36 +0000
Received: by outflank-mailman (input) for mailman id 219376;
 Mon, 01 Nov 2021 17:34:35 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eYDq=PU=oracle.com=boris.ostrovsky@srs-us1.protection.inumbo.net>)
 id 1mhbCd-00064h-FX
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 17:34:35 +0000
Received: from mx0b-00069f02.pphosted.com (unknown [205.220.177.32])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id bc10ddab-78be-4e71-9619-87b2d3ddc4c5;
 Mon, 01 Nov 2021 17:34:32 +0000 (UTC)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A1GItpd026193; 
 Mon, 1 Nov 2021 17:34:16 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c26e8bb6e-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 01 Nov 2021 17:34:15 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A1HVYjj040422;
 Mon, 1 Nov 2021 17:34:15 GMT
Received: from nam11-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam11lp2174.outbound.protection.outlook.com [104.47.57.174])
 by aserp3030.oracle.com with ESMTP id 3c0v3cgjwa-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 01 Nov 2021 17:34:14 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BL0PR10MB2819.namprd10.prod.outlook.com (2603:10b6:208:74::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Mon, 1 Nov
 2021 17:34:12 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%6]) with mapi id 15.20.4649.019; Mon, 1 Nov 2021
 17:34:12 +0000
Received: from [10.74.105.65] (138.3.200.1) by
 SA0PR13CA0019.namprd13.prod.outlook.com (2603:10b6:806:130::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.5 via Frontend
 Transport; Mon, 1 Nov 2021 17:34:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc10ddab-78be-4e71-9619-87b2d3ddc4c5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=0OR+bU3BY5aWZwZxbbc9vQd3Y31c9pbGp03dLAaITo8=;
 b=tYIngpu5fiqKXI9JOknibncWr3RlG5x8jO8NYTkN2OHvXt9uLmZjkh5lnz39xGzvvRXE
 gnt86tchJLHS0fKYt62U0M/LpY+ymKS6sZlLm4BbzqyEMOXh2T5dc0Ny/V+z7+28JnTV
 FWUVEsYVJ9XNm2o9+/bHOs/WygN8A1OIRFPW4pECbeaC5A5YHJr6dR2PSLgtQHYPyWQI
 7QnYKYoQrDSjebpVp+FS2BTL9p+noGPeNty0RCQbQC2Qgu0QdHgIfHgMC7ChjTbj3Qcd
 +e75i5bp+uQx4UITI7EMLDGCg0a/L9o2QQwU9Tf+9MXNAUJ+IzxppQORO49aiXjx5Z0D YQ== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Nh2si2MOSizqwEuIk6yH0fL37ZO/Es6/eBDlG8d4qN1AjAIuSliXstiNQF1v3y9sfrZht8U0VpdW/6RL9G0niim/PzR6eXBFZSkKm3Xv2lN+74c6CFIXLVXQNZTN/lO6e71Pyv4Glet/cWFaWSwHiphCKerLMqkMWtltRXiPuE1tAwjeL8r/Eo62pI7DSIfkLhSSUiQfKPee3W0LGXAT50PWNHTu1y1hKaO5kQ7XTBjv7/PL4MfSfr/dWfCUvDNonycVYpv9ZFM07H4V4QcDKo1r0ZLRF1DCOjIfAh/g3UouKjxhv5yeKVBk+jgsDoomwNVt0rUYPONdRl9Y4bTKjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0OR+bU3BY5aWZwZxbbc9vQd3Y31c9pbGp03dLAaITo8=;
 b=TzAFovZ7x7JLvpYhM+YdP7eS0JYrptPCkDYyiFiMVCg572oA3oWlFxQbdkbN/F1Dd3AecwXTtKpJkqXfkA3c+LkxAPVMf3lE5oczylI8J8/IrzqGbGkbN9PmDcP+eVRHvuIYjIRZGgcSvROeUa09cNiu6oIp2e6RtmQ68GfqejdgYfXV9MpxFGQA/Rro6oXgw7RlPE0lIhqgTKmS+VW1aixweJXFg6dIeyJ15w4FMMgoEi8hOgKn4gioDelEti9TOaLVkLndFU8w1AALlKWAhoYuHCstb9ihTJ/DDViqs+cU4TZyKKGscbuOL1oghh5j4n8h9tbdHBD5YPytB94kJA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0OR+bU3BY5aWZwZxbbc9vQd3Y31c9pbGp03dLAaITo8=;
 b=XXreq6HQKqeaEkJLbfeq79Ef84Pl4tAYYgzaEOZLz7oD+MU46+hPfF40jJx7wop+P1VbkHRBrwsqB75dN8fd+Gzwqm+zYuYnqIR49LjjjhCtWn3beQHZXMi5Py/kPuv9wx/CI2rujWfwvCOYuhCt4isn+UvVlHdqfxz4grpzSuY=
Authentication-Results: oracle.com; dkim=none (message not signed)
 header.d=none;oracle.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <1f19674f-e608-1faa-5656-fec853297198@oracle.com>
Date: Mon, 1 Nov 2021 13:34:03 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v2 1/1] xen: delay xen_hvm_init_time_ops() if kdump is
 boot on vcpu>=32
Content-Language: en-US
To: Dongli Zhang <dongli.zhang@oracle.com>, xen-devel@lists.xenproject.org,
        x86@kernel.org
Cc: jgross@suse.com, sstabellini@kernel.org, tglx@linutronix.de,
        mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
        hpa@zytor.com, joe.jin@oracle.com, linux-kernel@vger.kernel.org
References: <20211028012543.8776-1-dongli.zhang@oracle.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211028012543.8776-1-dongli.zhang@oracle.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SA0PR13CA0019.namprd13.prod.outlook.com
 (2603:10b6:806:130::24) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 097a457c-ab52-48c2-70df-08d99d5dd1b0
X-MS-TrafficTypeDiagnostic: BL0PR10MB2819:
X-Microsoft-Antispam-PRVS: 
	<BL0PR10MB2819A600C18EDEAC1C741DF78A8A9@BL0PR10MB2819.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	BXQhkbQLFs+268q97KZWne92T3TnTZZpq9YxK5ZI5Xbwu0TGjor6OxM+pHbK1f07xUMwMYJC+8bqhAqdFbEIWwL5YX4vVQhs8kb0FAVujA0iktkvfbT3QyZFmGOjRmerU1AwtirXN84+e0GhmVbqXrRER21n4yD5ZKwt+QcUl08oXQ4M6xXyxJYkU0dHTQZs8z1m+Dm4wTOIejp/sB7jCbTr6Zzzk8uqEAP1C43X2SBGL62sqyAK0PAT8r1dypxX4qW7ckhk/aIlVNdEZLl6JxTK82MOg2ge6aCr1s0YNJI/RB/cRTIoIhdYTLWmHu3LGrTxngv92+X+kNx6C+h5pShNn61/cw1MPZ6AXXB/zUw+ggugIe4ddMr54t0ihHBpHDxqCxxIBKTtPVrAndFw4377zf8oscVZPVeilmBXGRmI5IuzsS2PwA0w/o25Uw2ONhCqHngdu0OO1W7Tt67CA604JLcS28QLt8KRMfYlP3VUuYIpVsW+daos0Gq+a8BYGgsa0aUjhPTN8Bzm3lJ9X3wpAsUC05I3oWSLF1PgAod+GA9zRNcftOLxC0V4WzrRMAnQlexJH4qpKGioJZ3UTc+VY9wIKjKrNpKU+ATVNYWOCdHc7H67gCkCy3nK9ynJVxS6cHMP+6fr81kgQiS7HVdfIN8U26A9VwIQN4LgyWqUI0wLp3qEg9iv/MHjWY30/H+06yGqKdcwPyhv15cEnuqTVGKg5czhcqNQHlPL+uZ9A4UtP05KqMalPsoPNXNL6wUJPl+M5zON7svXxPx+u8AyD7zBCmDlWwf7zep2vjrdITOaSwdew97qf+8i2Qji7jtoDkY2Ddut7kaOddxT4b3p3BMJgnrowumGQxGD4ZAQFz+DvZklT8Wz5NRRxLKy
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(83380400001)(31686004)(86362001)(6666004)(186003)(5660300002)(38100700002)(316002)(53546011)(508600001)(2906002)(16576012)(26005)(966005)(7416002)(31696002)(36756003)(2616005)(6486002)(66946007)(8936002)(66476007)(8676002)(956004)(66556008)(44832011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?Y2lpREVqWUZPTHpwYXFtN01wY3VqOTN4ZGU5eGNtTUNXVGxwSncwNm5LYnln?=
 =?utf-8?B?T1RtYU5vRk9YUk5LTnZvMWVaYjVyWGtXNHMyOHd1LytQWmlTMmFQaTRHWkZi?=
 =?utf-8?B?OHhRZkdTMmFCZGdxOGljazRFUFBlNnd1K1crenhoZ1FsbGlIVGR6S0V4U3hh?=
 =?utf-8?B?WGF5Y3U5cHJOOHQ3Vld1eVVMMVNXMFRUM0I4TGFCaCtRa21BV3JyeUsyTkpp?=
 =?utf-8?B?NDhQMDBrUGN4NUlTZmpZdGpES1pHejkwSDZ3Um1Nakc2MFBIZlhiRmdnQ2Rn?=
 =?utf-8?B?T0xHd2VQSlBUYXcyaHNpR3gwRjlab3NGdTU5aGx2OCtPMHd4ZTZnb3pDOURn?=
 =?utf-8?B?NHNFWEYvR3ovMFppRDhVekoyODVFVVlLMWFwYjNZWTllTGJRdUM2M0J1UUJw?=
 =?utf-8?B?U2J5SjcyNWxKQUlsMURYYTBwQTYxMi9SLzZaOGFlQ0ZKZjlUNFlnN1UxWE16?=
 =?utf-8?B?ZFNsZGlKeXBlUVdKSVFISGdzbStYRUZiRWpZTCsxMlN4dXg2R0RRbjRHY1NO?=
 =?utf-8?B?WThmN1JSaUVubFkrdGVjTm1xQyt6clI3OTYrV0tRd2JWZDVseDFlektTZDBz?=
 =?utf-8?B?WUxXVjF1QXpWb21VQ01VNzlhekIyTExRZ0hOYW85dmQ1Z1ArN3BCak0zRldh?=
 =?utf-8?B?Wk01S3Q2dHE2NU9SazB5ejNUaVFzcjUyUGE4UWNmRFlXN1ZnQmIzRW5ocVV4?=
 =?utf-8?B?QTNCTDZ1c2lLRHZtTS9ZaDlpbHF5ekY0MFV5WUtJdUFJQUFmdVhJdjh5NitX?=
 =?utf-8?B?R1NmMVVScVJlZlJ1RHJPYVB1OHF4QTVpcm16b293R21RNkw1eENPL0dRcW5C?=
 =?utf-8?B?UzVndkU2KzlaeEJLbTl1b0NOUDFvS2dNRE1jNUN5Z0QyaHRYT2tJUFVLaHBl?=
 =?utf-8?B?VXlMTUdWZzhvdE9UaUdDeXlrZ052V3lsQkplUGVaNUg0dUxwSm0vOTVMNTFm?=
 =?utf-8?B?Tk9Nc1BuczY2cG9pUmZZSUg0aVJITXRKR0pOV1pzS2hNQk5hcDN5MUdRT0Jt?=
 =?utf-8?B?emozeCtYVmNhd3VSVjJONUJES2lLRkRDZ1BWK2dWcmFVQi9DUG8vL0tBMEI3?=
 =?utf-8?B?UWpLTXNMRnFQeU9LWnYxR3JjckJnRDFkc1BQVFBKVmIxV0dMeFZuNEMvQStH?=
 =?utf-8?B?OXc1S0w4Q2tMRDkyTk9SelZtd1JSRGZtMmh1TDIybWFTR1Y2UVFDdVhFdW56?=
 =?utf-8?B?VldCNjRGOWVrdERueWp2ODMrbVBQbmZoSGVMOHlhWXFxTTd2SExucVFQMDll?=
 =?utf-8?B?N01LR3FIcks0a2pFcmxhTUFvN0lYTUVxZUF5ZFh6OUdKMVY2UjFndzNHTFli?=
 =?utf-8?B?eUFkTHpkWVdXQjNWa1VDWVplY2YzR2lwemlOLzhIekpWMXg2bTRFVVF2VDRo?=
 =?utf-8?B?eUVzUWM4bnpEK1RXZlNEbUovZDczMVBOK1Q1bkMxYWNHWXMrUG1IM3B6YWNt?=
 =?utf-8?B?VVp0VWV5eXE4ZDhSdmRscDNhTncvVmJZdElzeGJoeFZoeGlqWThLb3pWTHNZ?=
 =?utf-8?B?NkJRc2dYaHIwU2tHc1JxVUg4NEVUTTY5OHQrODRWb1pHVlNBUGJ1WDRPNjla?=
 =?utf-8?B?dVEyYm84dVZkd1ZmZHo3RWZQZDk3cnlIUFhGY3FqdksyQy96alpGZUNoREdt?=
 =?utf-8?B?YXB3SmNOby92enRFMlQvcWJXNUMzZU5sQ3F0RUp6M0F6YVNuOUxwWE41eFZH?=
 =?utf-8?B?cFJ6ME53cDk2bENGVlN4ZDVTKzJDVEU2U1locjdNU0J1bW9jK0lZSUFJMXJ0?=
 =?utf-8?B?dThEend3QWxjS2l2TEgxZmFIOGYvUjB1ek9MMC9URXpjV3hoaU1ja29qdE90?=
 =?utf-8?B?TnhtMUJKRFJMRW5CcDkrM09VejBlNGgvVmR6OWFHemZaUjZJdUc0TDdudHl6?=
 =?utf-8?B?dWdraXkyTURINm9RL21mWVVtY1VOTFdHYkFaSjNtSHNSc3hxRlBDcHl2TE9z?=
 =?utf-8?B?ZXhNOHFIdUoyMGQzYTlscXNMU1JaWHFsR3N0bU9lV0JXWGJLUGh4RHc3ZHQ1?=
 =?utf-8?B?cjIwMFM0VjkycFQ1QnRwNUlsVFJ4RjFKNTVmZ3BHUmtFUndsN1FPek1YV0hi?=
 =?utf-8?B?U2RCTlBtbnM0OTRsa2d4a3lienFOWGFzSzNqM005a1lIclhkL2ZtYVZNbXho?=
 =?utf-8?B?ZUxmb1VGcXJCYXcxbVE0cnRyUTdyTHpabGhSRnV4bFRLeUYwZnM4UXpMZ3Fz?=
 =?utf-8?B?aEhFU0p4RnRhcjJ6T1VDVWFIWUVzSlR6UWFZMDJVcGdvMFB0V1luUk5ML1U5?=
 =?utf-8?B?U0RUcXAxbUxPOHdqMWM5czhFY3RRPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 097a457c-ab52-48c2-70df-08d99d5dd1b0
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2021 17:34:12.6908
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4q65rk/smEUZm9HcTWVLTm+hx8dkN084AdIEFFfJe1cJyHU1UhO6WabnWvO0Ahv+cdZ8PUJI1/wJWtP75c2/v8UrO9lDUqsJ7zddL9T+jdU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB2819
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10154 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 adultscore=0
 spamscore=0 bulkscore=0 phishscore=0 suspectscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111010095
X-Proofpoint-GUID: miRE5hBJKyEdv-mxga4-RgFSlmz1WQnb
X-Proofpoint-ORIG-GUID: miRE5hBJKyEdv-mxga4-RgFSlmz1WQnb


On 10/27/21 9:25 PM, Dongli Zhang wrote:
> The sched_clock() can be used very early since
> commit 857baa87b642 ("sched/clock: Enable sched clock early"). In addition,
> with commit 38669ba205d1 ("x86/xen/time: Output xen sched_clock time from
> 0"), kdump kernel in Xen HVM guest may panic at very early stage when
> accessing &__this_cpu_read(xen_vcpu)->time as in below:
>
> setup_arch()
>   -> init_hypervisor_platform()
>       -> x86_init.hyper.init_platform = xen_hvm_guest_init()
>           -> xen_hvm_init_time_ops()
>               -> xen_clocksource_read()
>                   -> src = &__this_cpu_read(xen_vcpu)->time;
>
> This is because Xen HVM supports at most MAX_VIRT_CPUS=32 'vcpu_info'
> embedded inside 'shared_info' during early stage until xen_vcpu_setup() is
> used to allocate/relocate 'vcpu_info' for boot cpu at arbitrary address.
>
> However, when Xen HVM guest panic on vcpu >= 32, since
> xen_vcpu_info_reset(0) would set per_cpu(xen_vcpu, cpu) = NULL when
> vcpu >= 32, xen_clocksource_read() on vcpu >= 32 would panic.
>
> This patch delays xen_hvm_init_time_ops() to later in
> xen_hvm_smp_prepare_boot_cpu() after the 'vcpu_info' for boot vcpu is
> registered when the boot vcpu is >= 32.
>
> Another option is to always delay xen_hvm_init_time_ops() for any vcpus
> (including vcpu=0). Since to delay xen_hvm_init_time_ops() may lead to
> clock backward issue,


This is referring to https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg01516.html I assume?


>   it is preferred to avoid that for regular boot (The
> pv_sched_clock=native_sched_clock() is used at the very beginning until
> xen_sched_clock() is registered). That requires to adjust
> xen_sched_clock_offset. That's why we only delay xen_hvm_init_time_ops()
> for vcpu>=32.


We delay only on VCPU>=32 because we want to avoid the clock going backwards due to hypervisor problem pointed to be the link above, not because we need to adjust xen_sched_clock_offset (which we could if we wanted).


>
> This issue can be reproduced on purpose via below command at the guest
> side when kdump/kexec is enabled:
>
> "taskset -c 33 echo c > /proc/sysrq-trigger"
>
> Reference:
> https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg00571.html
> Cc: Joe Jin <joe.jin@oracle.com>
> Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
> ---
> Changed since v1:
>    - Add commit message to explain why xen_hvm_init_time_ops() is delayed
>      for any vcpus. (Suggested by Boris Ostrovsky)
>    - Add a comment in xen_hvm_smp_prepare_boot_cpu() referencing the related
>      code in xen_hvm_guest_init(). (suggested by Juergen Gross)
>
>   arch/x86/xen/enlighten_hvm.c | 20 +++++++++++++++++++-
>   arch/x86/xen/smp_hvm.c       |  8 ++++++++
>   2 files changed, 27 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
> index e68ea5f4ad1c..7734dec52794 100644
> --- a/arch/x86/xen/enlighten_hvm.c
> +++ b/arch/x86/xen/enlighten_hvm.c
> @@ -216,7 +216,25 @@ static void __init xen_hvm_guest_init(void)
>   	WARN_ON(xen_cpuhp_setup(xen_cpu_up_prepare_hvm, xen_cpu_dead_hvm));
>   	xen_unplug_emulated_devices();
>   	x86_init.irqs.intr_init = xen_init_IRQ;
> -	xen_hvm_init_time_ops();
> +
> +	/*
> +	 * Only MAX_VIRT_CPUS 'vcpu_info' are embedded inside 'shared_info'
> +	 * and the VM would use them until xen_vcpu_setup() is used to
> +	 * allocate/relocate them at arbitrary address.
> +	 *
> +	 * However, when Xen HVM guest panic on vcpu >= MAX_VIRT_CPUS,
> +	 * per_cpu(xen_vcpu, cpu) is still NULL at this stage. To access
> +	 * per_cpu(xen_vcpu, cpu) via xen_clocksource_read() would panic.
> +	 *
> +	 * Therefore we delay xen_hvm_init_time_ops() to
> +	 * xen_hvm_smp_prepare_boot_cpu() when boot vcpu is >= MAX_VIRT_CPUS.
> +	 */
> +	if (xen_vcpu_nr(0) >= MAX_VIRT_CPUS)
> +		pr_info("Delay xen_hvm_init_time_ops() as kernel is running on vcpu=%d\n",
> +			xen_vcpu_nr(0));
> +	else
> +		xen_hvm_init_time_ops();
> +
>   	xen_hvm_init_mmu_ops();
>   
>   #ifdef CONFIG_KEXEC_CORE
> diff --git a/arch/x86/xen/smp_hvm.c b/arch/x86/xen/smp_hvm.c
> index 6ff3c887e0b9..f99043df8bb5 100644
> --- a/arch/x86/xen/smp_hvm.c
> +++ b/arch/x86/xen/smp_hvm.c
> @@ -19,6 +19,14 @@ static void __init xen_hvm_smp_prepare_boot_cpu(void)
>   	 */
>   	xen_vcpu_setup(0);
>   
> +	/*
> +	 * The xen_hvm_init_time_ops() is delayed from
> +	 * xen_hvm_guest_init() to here to avoid panic when the kernel
> +	 * boots from vcpu>=MAX_VIRT_CPUS (32).
> +	 */


How about

   /* Deferred call to xen_hvm_init_time_ops(). See comment in xen_hvm_guest_init() */


-boris



> +	if (xen_vcpu_nr(0) >= MAX_VIRT_CPUS)
> +		xen_hvm_init_time_ops();
> +
>   	/*
>   	 * The alternative logic (which patches the unlock/lock) runs before
>   	 * the smp bootup up code is activated. Hence we need to set this up


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 19:16:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 19:16:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219386.380159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhcnB-0006yn-QP; Mon, 01 Nov 2021 19:16:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219386.380159; Mon, 01 Nov 2021 19:16:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhcnB-0006yg-N8; Mon, 01 Nov 2021 19:16:25 +0000
Received: by outflank-mailman (input) for mailman id 219386;
 Mon, 01 Nov 2021 19:16:24 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eYDq=PU=oracle.com=boris.ostrovsky@srs-us1.protection.inumbo.net>)
 id 1mhcnA-0006ya-8V
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 19:16:24 +0000
Received: from mx0b-00069f02.pphosted.com (unknown [205.220.177.32])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8e45e8a9-06ae-4545-8be1-d1b7d8db4fbd;
 Mon, 01 Nov 2021 19:16:22 +0000 (UTC)
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A1Irc84004932; 
 Mon, 1 Nov 2021 19:16:00 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c28gn3qqt-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 01 Nov 2021 19:15:59 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A1J6DaT020852;
 Mon, 1 Nov 2021 19:15:58 GMT
Received: from nam11-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam11lp2174.outbound.protection.outlook.com [104.47.57.174])
 by userp3020.oracle.com with ESMTP id 3c1khscrf4-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 01 Nov 2021 19:15:58 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB4174.namprd10.prod.outlook.com (2603:10b6:208:1dd::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Mon, 1 Nov
 2021 19:15:55 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%6]) with mapi id 15.20.4649.019; Mon, 1 Nov 2021
 19:15:55 +0000
Received: from [10.74.105.65] (138.3.200.1) by
 SA0PR11CA0099.namprd11.prod.outlook.com (2603:10b6:806:d1::14) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Mon, 1 Nov 2021 19:15:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e45e8a9-06ae-4545-8be1-d1b7d8db4fbd
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=b+p51p18uC8N75Q4P4UR48tjCRk+yQ6uaH1p3jPenJs=;
 b=VV5AVsVbemDri6afqfB0N5NQLIb0S4PsRpTe5ib7mA918TbSc45oMnisXiP21jgqhsxE
 KusUfLVVPeNK0+Z1vbpNOt2HQ/zhEEnnTcMhGaZ74Npf/fL+ukUsGkkA6Lwn/es5sEzM
 Zt57UqDn2tFDzkm7bS7wqAa8/Wdw9EqGnnSNX0WLEI0uXlGib1/L3HdbKb2DNaGnyy29
 krczDusi1u9GwYpzd/QP66N3Plvuc5xiJPzfyVOm4iYjPX/LkZ3Jey6SIqXyFBTx2fle
 TyqGXYkyh6xCo5kLPgGNCn7Q5M9R6XwmjyqUvLKwNDzDAqyfSWW/2ik8mGCMkexVpwCv Zg== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Z7/jQZQzTwqm28cTmDxhOL6H1fFYG76xHHGYH8kvbDYjqmK61oUdYuqZzbK/KkoDe0dQqb0LJPIHxjLwPk1MrmJ+1NN0R6eIoHhzSblCvQD6LmtqyYjbbG2aiqpv3/uu9quzieefes6ulViKBAbsMyXFLhi2L1kXZXc3fg67NqPjR4u1pwAsN4t/L2kAEZ8uosPPiLxVrYOG5KLVUY8FESL8+sS6vJSijVcCC1PKVyFE4uj8orHx0thmSPt+Ri6ZqOLb/LSf/mV6mYsEvhPqdDmpc93bgrne9rYZUASwN0d4+y4YwTQC8yu/7yGcJMdOdlZ/4dHn2qvwUEmBtEuEBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=b+p51p18uC8N75Q4P4UR48tjCRk+yQ6uaH1p3jPenJs=;
 b=jtzS15uwca2jDDHeKcHKv1wztChbnY2LB3zcDvpt3q1HUkjq6mDT4LLL2iebERKCe4RJ1EGmuNW0Tc2bm4SQ/TUDJ2FPPfoe52RDy+a/X5aG1DYYHTF4rUd+y5LMwbzjuYmjlqIOZiS/lkUWP3VgBRjr3rfOziQ7tassnZleHBHfvZdsuAuN/1sXdKTjSs53oC4uDlBDYWKzfk+HyHXRqqfs7oo61fWwU6tCr5KdUiQfusBe+8OIVdLYufcf1S7isJvR34jUYWrRJhf9IGk44YWePTJTdOxVhyp4vv6whNYTu9MJ3Ls3+PJTVMgR+XCAiFUXKIftpSwUUDbQUaMJIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=b+p51p18uC8N75Q4P4UR48tjCRk+yQ6uaH1p3jPenJs=;
 b=YB5TX6MT80raWLRMMVraaQdFyWj02nP6AQcKrDQQkFU1a6cyDs1eXEdmuB+7ZhybEuvI+XKQS7U2TQ7JCRw/fAhCmpc7Y/g4HD+OaPQSRRjJc2+GxXESzC9RR8HLpY6m+M5y4RjzDopJo4WSqm7Pvj/DoHfXrWzbQNhgJAJmziE=
Authentication-Results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <d672d22e-770d-d37e-b094-29563106511e@oracle.com>
Date: Mon, 1 Nov 2021 15:15:42 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH 0/4] xen: do some cleanup
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        x86@kernel.org, linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, Russell King <linux@armlinux.org.uk>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Will Deacon <will@kernel.org>, linux-arm-kernel@lists.infradead.org
References: <20211028081221.2475-1-jgross@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211028081221.2475-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SA0PR11CA0099.namprd11.prod.outlook.com
 (2603:10b6:806:d1::14) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9cefe525-2d6c-4f77-ace9-08d99d6c071b
X-MS-TrafficTypeDiagnostic: MN2PR10MB4174:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB4174ED6EE7D4D6DCD3386DA48A8A9@MN2PR10MB4174.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:403;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	o2KK9R5+g8fO34KNpP2lJYK+kEg0ev5PxD7fRTqQsCPM9sjYg6S2Lw1+5v7utljJmrSGiBzaeaTgAWsGPgx4xby7o3JrVxA/ckkBqx4xiLieoNejt9IRntZTp/cIVmMUVp5QqdRRY3/A0iUdeS2kxV4RfVaSEA1TC9+SD2Cp/XE+iqcVNZfpfKN7rfuBhG9KvuoQsPLRBkh0jrEz26vQG1CDzLNmdlt/nN/3yrmEbLsQMqLfEzD1TdZzmabH4hVZaIDY8HStROUM3Q0jyJiRiGR8CLoL3PcUfsnZLei11f2Ci+uTe/Jd6Bwol0acgDvapxsiCtjfbwL9hWX67+6kk24kghMQA7fhiVIMEzZSZqvHyJfEKoSHPrILr3ykZuVFG0cpENglwratQ4/3+lGyD0OXbkY0rP0JbDovBwtSAMa5LLWy304CsVxxHmM/3YZ9lEbc9v5US+o1+hIJsvUaYU6qP75xWYIcPcMTK3MYFShNYXnQjYGP8On7p2pEB6JIIW1FQiRqRrnNhm7eu3QW/pnUnuTIMZ25yPCs+3BIr4A7apnuwqN8ZnYfmoG3oy6ddO3gT8h6XaXmtsmUU5RjNqs0gp8s9YBysNEbymxIJ40H1ASp2K6hxgP+/MmFza9P+GSY7t3vc/bnvWZrAFHIXqKDRpRhy34Y8U2ZqiJd/kJBS8U2z/eNQlCsCOSqLj2ISl48kToVco/OAOB81SKcQ5wyRnesQYnT6kwE99ya6819RLa84+3hQssXv+aVFiVL
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4744005)(31686004)(7416002)(186003)(26005)(6486002)(54906003)(316002)(38100700002)(16576012)(2616005)(44832011)(53546011)(956004)(5660300002)(6666004)(2906002)(86362001)(508600001)(8936002)(31696002)(8676002)(4326008)(66946007)(83380400001)(36756003)(66476007)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?MHh2SS9raytxdW5XL3RhOGtldWRubW9PMTZJYUdJTUZwOUpyOU40d25oa0h1?=
 =?utf-8?B?V2d6QndyZUZqczNXWk5GVFkzUERBQUE5R0Qzc21VK1QwUzNnUWtHL252YnpN?=
 =?utf-8?B?Ky9Lby9iRm1SVUF5a2VtOXdrOXlQSjV5THppSEEwbG9jS1RmTkRPYklQbzRR?=
 =?utf-8?B?dWlod21lUnNUQzZIZWpwaWowcE85SmRCQ01YTGNTaWhDazNPdTQreGd1TjZn?=
 =?utf-8?B?QTh1VkVBOHVDWkJ0bGVYRWg0ZFV5dzMrZnBPKzFrRStTdVAxZHVMc3RINWJQ?=
 =?utf-8?B?bzFBb2NCR2NRRFNWM3BCYWJEUFZoRVVHZ0xnREcwWUFQOVpUTzE3a2k0Kzhz?=
 =?utf-8?B?YVQzY3hjOThZQmpiNGE1dXplV3ZRSXJYcHF6dGFoRnZyK1ZES0pjNTFCaUVO?=
 =?utf-8?B?UWhEZU1TNHBsenBPVzRPdWx6VmV5ekRhOCs2dXE3d2JvSEF1ejVWdkxrTHNq?=
 =?utf-8?B?NUlRSWU3OVh2TDl4VUMzTytabmFQTThmek5ENlYvamZreHB6K2lidjJYcHlC?=
 =?utf-8?B?TExkUTluRmhidnFZeFcrSzRMQmhUNTZTeVpoVmxtVTgwK0xWbkg0cmhCbkNx?=
 =?utf-8?B?MGQ2ODlEZ2xzWm1rMkh1ZFd6WS9CMzF6NGlGSDFSZnJlSE1xb3pBbEpteHl2?=
 =?utf-8?B?QkxVdnVDblUwK3NlWHVDUmc4NTNsS2l4Q0FWdENEZEFxQ1FBbEVuMjNoSFo1?=
 =?utf-8?B?dVBpb3d1bXVmbUdzblh0WHpJZDRQc1Q3dHNHb1MwS1VXUnpzaEt5ZWgvUWxh?=
 =?utf-8?B?UzQ5YkZKZ05ScU1TaGtNRFhxQXRnd1VaNktuYW5EOVBTOHgvRzVPU0VFN0pP?=
 =?utf-8?B?S0JGMnh1dnZua2tCQmh0ZFJBS25hT05pcnFpRmRyNXAwYnpQOS93SjB6aklw?=
 =?utf-8?B?a2w1MWZ6aEUyckhSYndGQmVnNEp0WDBWTGM0NmRzRnJFRFdHSEs4TWw0MjdS?=
 =?utf-8?B?eXNMRWwzZWdDbUlsVHB6UCtwbTN2SjVXSzNlemxqbVN3d3BvT01paE5nNmsr?=
 =?utf-8?B?TnlRZUZ6MmdoUzhzUXovQ1Q5MTlOUWR3clZnTENnSW5nQ0ZiTFQxVnRFbFM2?=
 =?utf-8?B?cVk2LzdteFg3RUxqRVBsR3J3MmdJUUo5ZHZ1K0Nzd0JZL244cTUySW8vZlBQ?=
 =?utf-8?B?VHlNRUtKVHhJbVdVeEVzU3pBVW4zNC9uVCtiREhoemVJaVJEdEFLaTlUQ0ZL?=
 =?utf-8?B?Si82VEYyc2FQajlMd2h3WmdOS3ROcUNKZm5zU3dJYVY0c3Y4UHhFSjFiNGlQ?=
 =?utf-8?B?bnljM3BpNk01SWlSNTBZdjA3WmRNaUlnRi9EV0EzSWtvOWFzYTlpTTFHeGtn?=
 =?utf-8?B?ZnhsbDhYZ3hLMDdPa3ZSbC9yZ2tTK1hZQWFGOEY4cnlSd0lKbHRaVWp0NGRZ?=
 =?utf-8?B?ekJXREtxQ29WSWUwTkdFYlVNTTk4elZxSU9maE1nOXRRZXE2U2ZRRmZ2eUZo?=
 =?utf-8?B?WWVPVDBFU285OGxscXdFN1BsTkw4NW1SWHlid05JMzJLb1JBakwyTkdFaWdN?=
 =?utf-8?B?NEUrOXJaL0xyalJVZ3Q2Zk1SZktGTTZZZmF6RWNqcHN4citWNFBkejhhVFhO?=
 =?utf-8?B?T09GalhUNWMxQUQ5ZzVYdytrbzdUc3JnZm1yc05UcTZjZTZpT0VPS2VJL3NS?=
 =?utf-8?B?cHpYSjdEUThjY0Q0cGFtczZ4aUZ2Nk9YZ2lCSXNKZGtGR2RnQkNMN2F1bmx5?=
 =?utf-8?B?cWxieHhvaWNzS1VTUW5FQlZpakt5Q2ZFbC85aHg2SFluWHhlbUdzeW1GSWpF?=
 =?utf-8?B?MlozL2hEdE9wV0pORnpSSkV4U0pFUkJYNDdzMTZmSEpLTXdQeVREUGt5R0pL?=
 =?utf-8?B?REtxM1FwV0JDNXBzV3dPMWZxcHpPbjlrcTJ1SHgzTUxHK1psNHptRVFnQ2JB?=
 =?utf-8?B?TUU3bGxVZmlJRWJjMFVicWxldUtxU2YrbXVoZXFOc1N4eTZNVUdRYmVrQlZE?=
 =?utf-8?B?S0NHVkc2ZG5FcGxXd1BxWkUrYUpHRDFhVGVkcmxqUUdaTmQ1WmY4QlcwUXM1?=
 =?utf-8?B?aW12cVQySUliOFZ6T2RvZncrc0FYRnNCdjZYVE1mQ0k0T3RqQjZFbXlLKzdH?=
 =?utf-8?B?MHE3ZVNmWFIwakhLbXNHTVdRZm9IZlZ4UmhadmJBZU9ScGROOVM0ZHF6aDR4?=
 =?utf-8?B?Vk8xMzJwSjd2TkRPbnRFOWR5ZW1nUnpmbEd0WHl3bFN5NXU1aHhCQ0ZnaGRs?=
 =?utf-8?B?alg5VmVlMzBOU203cjdkZm8rZmo5SWdUbmEvRnZjMHA5RmZNclN4VkNIRjVW?=
 =?utf-8?B?M2RlNnJ3VkpQclBiRXJwQllWeWh3PT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9cefe525-2d6c-4f77-ace9-08d99d6c071b
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2021 19:15:55.2910
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1hTqS8bpimP5XaR2AFNfkyhtKcHlpu+8NRFC7xwOe4bMMy7XIsXsmHsn65CqP3QHyLWoF8gmUZZffC5I4c/mNGCcEudylyRkQbmm01nALcc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4174
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10155 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 bulkscore=0
 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111010103
X-Proofpoint-ORIG-GUID: Kus93CEMdtRgZUrII15VcrwPtMx12G33
X-Proofpoint-GUID: Kus93CEMdtRgZUrII15VcrwPtMx12G33


On 10/28/21 4:12 AM, Juergen Gross wrote:
> Some cleanups, mostly related to no longer supporting 32-bit PV mode.
>
> Juergen Gross (4):
>    x86/xen: remove 32-bit pv leftovers
>    xen: allow pv-only hypercalls only with CONFIG_XEN_PV
>    xen: remove highmem remnants
>    x86/xen: remove 32-bit awareness from startup_xen
>
>   arch/arm/xen/enlighten.c             |   1 -
>   arch/arm/xen/hypercall.S             |   1 -
>   arch/arm64/xen/hypercall.S           |   1 -
>   arch/x86/include/asm/xen/hypercall.h | 233 ++++++++++++---------------
>   arch/x86/xen/enlighten_pv.c          |   7 -
>   arch/x86/xen/mmu_pv.c                |   1 -
>   arch/x86/xen/xen-head.S              |  12 +-
>   drivers/xen/mem-reservation.c        |  27 ++--
>   include/xen/arm/hypercall.h          |  15 --
>   9 files changed, 118 insertions(+), 180 deletions(-)



Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 19:36:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 19:36:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219393.380170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhd6G-0000qm-Fu; Mon, 01 Nov 2021 19:36:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219393.380170; Mon, 01 Nov 2021 19:36:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhd6G-0000qf-Co; Mon, 01 Nov 2021 19:36:08 +0000
Received: by outflank-mailman (input) for mailman id 219393;
 Mon, 01 Nov 2021 19:36:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhd6E-0000qV-Jl; Mon, 01 Nov 2021 19:36:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhd6E-0006jy-7F; Mon, 01 Nov 2021 19:36:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhd6D-0006Wi-Sz; Mon, 01 Nov 2021 19:36:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhd6D-0002eU-SV; Mon, 01 Nov 2021 19:36:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Om1UR0IoDWAasxAX1Y0ybxY+0/v1e56rJO6ZL4zxp8o=; b=OWlMs9oTPb9THiB067pq1jza+Q
	7nU0/erkHwji4wo7HlpV++YLoO/X3R0EMjKlhGYDHN1igqdNAdpcEVoLdQhfwFaKBcpwrsoCm5CkL
	WZ3gvLrq7KxuvW/YT1YhdJTxLeq79v4jwcIOnKWsqEZENVoa2ZOgg/mvqY1Di8VQypwk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165972-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 165972: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-i386-xsm:xen-build:fail:regression
    qemu-mainline:build-i386:xen-build:fail:regression
    qemu-mainline:build-armhf:xen-build:fail:regression
    qemu-mainline:test-arm64-arm64-xl-credit2:xen-boot:fail:heisenbug
    qemu-mainline:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-amd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-i386:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-coresched-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:build-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:build-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-intel:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=af531756d25541a1b3b3d9a14e72e7fedd941a2e
X-Osstest-Versions-That:
    qemuu=50352cce138ef3b30c1cda28a4df68fff5da3202
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 19:36:05 +0000

flight 165972 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165972/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-xsm                6 xen-build                fail REGR. vs. 165682
 build-i386                    6 xen-build                fail REGR. vs. 165682
 build-armhf                   6 xen-build                fail REGR. vs. 165682

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-xl-credit2   8 xen-boot                   fail pass in 165967

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-cubietruck  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-amd  1 build-check(1)               blocked n/a
 test-amd64-i386-pair          1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-i386  1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-amd64  1 build-check(1)               blocked  n/a
 test-amd64-coresched-i386-xl  1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 build-i386-libvirt            1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-intel  1 build-check(1)             blocked n/a
 test-amd64-i386-xl            1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-pvshim     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64  1 build-check(1)         blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1)  blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-i386-xl-qemuu-ovmf-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-win7-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-ws16-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-shadow     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-vhd        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-credit2 15 migrate-support-check fail in 165967 never pass
 test-arm64-arm64-xl-credit2 16 saverestore-support-check fail in 165967 never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165682
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                af531756d25541a1b3b3d9a14e72e7fedd941a2e
baseline version:
 qemuu                50352cce138ef3b30c1cda28a4df68fff5da3202

Last test of basis   165682  2021-10-19 21:09:14 Z   12 days
Failing since        165694  2021-10-20 18:09:12 Z   12 days   33 attempts
Testing same since   165952  2021-10-31 00:39:26 Z    1 days    7 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexey Baturo <baturo.alexey@gmail.com>
  Alexey Baturo <space.monkey.delivers@gmail.com>
  Alistair Francis <alistair.francis@wdc.com>
  Anatoly Parshintsev <kupokupokupopo@gmail.com>
  Andrew Jones <drjones@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  BALATON Zoltan <balaton@eik.bme.hu>
  Bin Meng <bmeng.cn@gmail.com>
  Chenyi Qiang <chenyi.qiang@intel.com>
  Chih-Min Chao <chihmin.chao@sifive.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cédric Le Goater <clg@kaod.org>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  David Gibson <david@gibson.dropbear.id.au>
  David Hildenbrand <david@redhat.com>
  Dr. David Alan Gilbert <dgilbert@redhat.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Frank Chang <frank.chang@sifive.com>
  Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
  Gavin Shan <gshan@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Greg Kurz <groug@kaod.org>
  Gustavo Romero <gromero@linux.ibm.com>
  Igor Mammedov <imammedo@redhat.com>
  Jason Wang <jasowang@redhat.com>
  John Snow <jsnow@redhat.com>
  John Wang <wangzhiqiang02@inspur.com>
  John Wang <wangzq.jn@gmail.com>
  Jose Martins <josemartins90@gmail.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Luc Michel <lmichel@kalray.eu>
  Luis Pires <luis.pires@eldorado.org.br>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Mathieu Poirier <mathieu.poirier@linaro.org>
  Michael S. Tsirkin <mst@redhat.com>
  Mingwang Li <limingwang@huawei.com>
  Oğuz Ersen <oguzersen@protonmail.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Krempa <pkrempa@redhat.com>
  Philipp Tomsich <philipp.tomsich@vrull.eu>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Shuuichirou Ishii <ishii.shuuichir@fujitsu.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  Tong Ho <tong.ho@xilinx.com>
  Travis Geiselbrecht <travisg@gmail.com>
  Vincent Palatin <vpalatin@rivosinc.com>
  Vivek Goyal <vgoyal@redhat.com>
  Xueming Li <xuemingl@nvidia.com>
  Yanan Wang <wangyanan55@huawei.com>
  Yifei Jiang <jiangyifei@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               fail    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   fail    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           blocked 
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-i386-xl                                           blocked 
 test-amd64-coresched-i386-xl                                 blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     blocked 
 test-amd64-i386-freebsd10-amd64                              blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          blocked 
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-armhf-armhf-xl-cubietruck                               blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         blocked 
 test-amd64-i386-freebsd10-i386                               blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         blocked 
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 blocked 
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    blocked 
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              blocked 
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      blocked 
 test-amd64-i386-xl-vhd                                       blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 6076 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 20:33:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 20:33:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219402.380183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhdzH-0006e7-0g; Mon, 01 Nov 2021 20:32:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219402.380183; Mon, 01 Nov 2021 20:32:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhdzG-0006e0-U1; Mon, 01 Nov 2021 20:32:58 +0000
Received: by outflank-mailman (input) for mailman id 219402;
 Mon, 01 Nov 2021 20:32:58 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0c/y=PU=kernel.org=sstabellini@srs-us1.protection.inumbo.net>)
 id 1mhdzG-0006du-6I
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 20:32:58 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id e57d2133-3b52-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 20:32:57 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id BEF6660296;
 Mon,  1 Nov 2021 20:32:55 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e57d2133-3b52-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635798776;
	bh=yGX4aeZxiq6+2zhk5O2CgfOFMx9RTmRmQz+TT5j8d4M=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cPNhoq6Neq69A69sWuTfGFPuex5MB4yBuLRY7LtF2HPeYh4MB+IsRmNGYHMLtgm1k
	 oTn77vjt+F3hA5gAeescRNh9HYUx6wVm8ALu9DY670Q/kbQAn+5+1ahF2uqNJDd65i
	 fvwO7+BjMPF5nKfVJ9ZBTOR7RlFvyZ3wNqw/VoVidDFQ9Ygrr8uanlqOmIJ13ifEz4
	 BfwCfvj2jwWJa0bBGjYcGpVD5ZttYjf3srP9ECt2hBkAsGXUVUhQWt8zfiFn6qhZ2t
	 9H2r17vdgMBgUvmqCedRxNWNixxUKxKdW2C2j9rAz/CknesvKu8vT/RMT03URZmoFG
	 sq8GUX6Q+eeeg==
Date: Mon, 1 Nov 2021 13:32:55 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: xen-devel <xen-devel@lists.xenproject.org>, 
    Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Jane Malalane <jane.malalane@citrix.com>, 
    Bobby Eshleman <bobbyeshleman@gmail.com>, 
    Alistair Francis <alistair.francis@wdc.com>, 
    Connor Davis <connojdavis@gmail.com>, Bertrand.Marquis@arm.com
Subject: Re: Arch-neutral name for hardware interrupt support
In-Reply-To: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
Message-ID: <alpine.DEB.2.21.2111011330310.20134@sstabellini-ThinkPad-T480s>
References: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1818251338-1635798734=:20134"
Content-ID: <alpine.DEB.2.21.2111011332200.20134@sstabellini-ThinkPad-T480s>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1818251338-1635798734=:20134
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.21.2111011332201.20134@sstabellini-ThinkPad-T480s>

+Bertrand

On Mon, 1 Nov 2021, Andrew Cooper wrote:
> Hello,
> 
> On ARM, the GIC is a hard prerequisite for VMs.
> 
> I can't remember what the state of RISCV is, but IIRC there is still
> some debate over how interrupts are expected to work under virt.
> 
> On x86, the story is very different.  PV have no hardware assistance,
> while HVM hardware assistance depends on hardware support.  Therefore we
> want to introduce a new CDF flag so we can control the setting per
> domain, rather than globally as it is done now.
> 
> This brings us to the question of what a suitable architecture name
> would be.
> 
> Hardware Virtual Interrupts is a little too close to Hardware Virtual
> (Machine) Introspection, and Hardware Assisted Interrupts (mirroring
> HAP) doesn't seem great either.
> 
> Thoughts / ideas / suggestions?

Maybe "hardware-enabled virtualized interrupts"
--8323329-1818251338-1635798734=:20134--


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 20:51:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 20:51:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219409.380195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mheHG-0000VK-L6; Mon, 01 Nov 2021 20:51:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219409.380195; Mon, 01 Nov 2021 20:51:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mheHG-0000VD-Gq; Mon, 01 Nov 2021 20:51:34 +0000
Received: by outflank-mailman (input) for mailman id 219409;
 Mon, 01 Nov 2021 20:51:33 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0c/y=PU=kernel.org=sstabellini@srs-us1.protection.inumbo.net>)
 id 1mheHF-0000V7-9t
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 20:51:33 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b1df101f-df81-47d3-a19d-8105009942e1;
 Mon, 01 Nov 2021 20:51:32 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 918856052B;
 Mon,  1 Nov 2021 20:51:31 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1df101f-df81-47d3-a19d-8105009942e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635799891;
	bh=xRA/du3TrrG1eT2sD/Os5sp5VKq1LP6A0qmI7SEyeN0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fBf6nwK1W0+aRYWf0817LYiglpKoRLPN49f4elHf2XdVJTSCRg4A7nUGvYsuG6vEN
	 q6PpmcnONYT2c3LpMH1R/Cltt6RimoQMRNGs6p56kA0YYEf4rOUgl7IvhhbZZQAdpS
	 fCnVRvjBNxKUOq6PyiPg8OGYjZHPpzNBxO7drTSG4kgMzD+BtDBS0c61PnttesR26K
	 EU8SrSwCoX1HmH2uCb1UZ8Qy1ce6LwHMbuaNgOu3tSPypkt0kY242fV7nYVN0dBw8Q
	 5OBqLe8ith1ZpGyfIVYg0qqVLQAbGl43ccoXFjktW1rEqfZxo2I7U52+DMSdLUFtfG
	 AJnBvWRg1yr3g==
Date: Mon, 1 Nov 2021 13:51:30 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Ian Jackson <iwj@xenproject.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Julien Grall <julien.grall.oss@gmail.com>, 
    Michal Orzel <michal.orzel@arm.com>, 
    xen-devel <xen-devel@lists.xenproject.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a
 lock
In-Reply-To: <24959.49895.14808.77881@mariner.uk.xensource.com>
Message-ID: <alpine.DEB.2.21.2111011341480.20134@sstabellini-ThinkPad-T480s>
References: <20211026122903.15042-1-michal.orzel@arm.com> <e5632a4e-db98-41b4-1045-2b3532c098fa@xen.org> <70c30a6c-b779-805e-079a-41bb484894b9@xen.org> <cb452c0c-ccde-7798-c403-f972b48a2c46@arm.com> <01545115-e82e-2a9d-a8e4-da9676080c0f@xen.org>
 <alpine.DEB.2.21.2110271557570.20134@sstabellini-ThinkPad-T480s> <CAJ=z9a2SSgG7a87_xTGT5LeNLgubOLQf1+dbnrsTsP8_p5ErJg@mail.gmail.com> <alpine.DEB.2.21.2110271658330.20134@sstabellini-ThinkPad-T480s> <4554621d-63da-ea3e-e56a-4e01d0cef347@xen.org>
 <alpine.DEB.2.21.2110281311030.20134@sstabellini-ThinkPad-T480s> <24959.49895.14808.77881@mariner.uk.xensource.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 1 Nov 2021, Ian Jackson wrote:
> Stefano Stabellini writes ("Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a lock"):
> > In regards to this specific patch and also the conversation about 4.16
> > or 4.17: I think it would be fine to take this patch in 4.16 in its
> > current form. Although it is not required because PCI passthrough is
> > not going to be complete in 4.16 anyway, I like that this patch makes
> > the code consistent in terms of protection of rbtree accesses.  With
> > this patch the arm_smmu_master rbtree is consistently protected from
> > concurrent accesses. Without this patch, it is sometimes protected and
> > sometimes not, which is not great.
> 
> It sounds like this is a possible latent bug, or at least a bad state
> of the code that might lead to the introduction of bad bugs later.
> 
> So I think I understand the upside.
> 
> > So I think that is something that could be good to have in 4.16. But
> > like you said, the patch is not strictly required so it is fine either
> > way.
> 
> Can you set out the downside for me too ?  What are the risks ?  How
> are the affected code paths used in 4.16 ?
> 
> A good way to think about this is: if taking this patch for 4.16
> causes problems, what would that look like ?

The patch affects the SMMU code paths that are currently in-use for
non-PCI devices which are currently supported. A bug in this patch could
cause a failure to setup the SMMU for one or more devices. I would
imagine that it would manifest probably as either an error or an hang
(given that it is adding spin locks) early at boot when the SMMU is
configured.

The validation of this patch would mostly happen by review: it is the
kind of patch that changes some "return -1" into "goto err".


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 21:06:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 21:06:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219416.380206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mheVs-00022i-SZ; Mon, 01 Nov 2021 21:06:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219416.380206; Mon, 01 Nov 2021 21:06:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mheVs-00022b-Pc; Mon, 01 Nov 2021 21:06:40 +0000
Received: by outflank-mailman (input) for mailman id 219416;
 Mon, 01 Nov 2021 21:06:39 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0c/y=PU=kernel.org=sstabellini@srs-us1.protection.inumbo.net>)
 id 1mheVr-00022V-IV
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 21:06:39 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 9a70d652-3b57-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 21:06:38 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 867AA61183;
 Mon,  1 Nov 2021 21:06:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a70d652-3b57-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635800797;
	bh=yDLXOkSZv7jzgUVYq0a5FeXntcFCZAE0gtv8V2te/P8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=O/EcfVWM2DlLzgTtVl501t3dGXrhxz+0pUONdRc84lHIOXOFgHaoDar+48DOKeHL4
	 VJ25XHqGUr3BpIA1R0LsShGjZnu9IowjZvo2IwNUYWVInPvDypGVEW78y13Orml9uK
	 9I3+/NDaFVFPzhzfzXjdbIEfeJ0pA9rvEwd5FF3GuE+ZSeucgjKBb2ex2W1zvP+5P/
	 chlY7b4of7qwMQyw9r+9dDMB2iAZRxjmPLWSh56iyVmgdRc4Ku9qYA/Uf1rD77MNA6
	 dqp3DSlFr3jeXmUTtGPuVlmbOsqN4o+DJoP99Eq+AgdJ3kgsqDW6212+F6fXKtTt7H
	 nKvPWrnDnBiCQ==
Date: Mon, 1 Nov 2021 14:06:36 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Ian Jackson <iwj@xenproject.org>
cc: Julien Grall <julien@xen.org>, 
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    "sstabellini@kernel.org" <sstabellini@kernel.org>, 
    Bertrand  Marquis <bertrand.marquis@arm.com>, 
    Rahul Singh <rahul.singh@arm.com>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
 [and 2 more messages]
In-Reply-To: <24959.49313.936961.936820@mariner.uk.xensource.com>
Message-ID: <alpine.DEB.2.21.2111011402320.20134@sstabellini-ThinkPad-T480s>
References: <20211027082533.1406015-1-andr2000@gmail.com> <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org> <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com> <65886734-7333-4469-fcc1-6916db708f13@xen.org> <b6bb02b6-6358-b5e0-1b80-7819aadabe10@epam.com>
 <6d8f1061-7aec-2c1a-aaf4-c30440c2797a@xen.org> <38da2edd-06a2-63d0-51ad-1284272c8da5@epam.com> <a74b52fb-6514-4187-17fe-b63236efa0ce@xen.org> <24954.51153.588540.850154@mariner.uk.xensource.com> <d7e4ae66-f648-e18e-79c8-fae6eb896f00@xen.org>
 <YXkU+DKYmvwo+kak@Air-de-Roger> <0bbe4d1d-421d-e816-42aa-f43581902a02@epam.com> <24953.34635.645112.279110@mariner.uk.xensource.com> <24959.49313.936961.936820@mariner.uk.xensource.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 1 Nov 2021, Ian Jackson wrote:
> Julien Grall writes ("Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers"):
> > On 28/10/2021 16:54, Ian Jackson wrote:
> > > There are a number of patches that I'm getting CC'd on related to ARM
> > > and vpci (according to the Subject).  Are these targeted for 4.16 ?
> > > Most of them don't have 4.16 Subject tags.
> > 
> > Oleksandr wants this patch to be included for 4.16 but forgot to tag it 
> > properly.
> 
> Oh yes.  However,
> 
> 1. I also wrote this:
> 
> > > I am finding it difficult to see the wood for the trees.
> > > It would be really helpful if these vpci fixes were collected
> > > together into a series.
> 
> Can someone please confirm whether this is the only vpci-related patch
> that ought to be on my radar for 4.16 ?
> 
> 2. I have not had a reply to my question on Wednesday in
> <24953.34635.645112.279110@mariner.uk.xensource.com>:
> 
>   Um, can you explain what the practical impact is of not taking this
>   patch for 4.16 ?  As I understand it vpci for ARM is non-functional in
>   4.16 and this is not expected to change ?  So there would be no
>   benefit to users, and taking the patch would add small but nonzero
>   risk ?
> 
> I need this information to decide whether a release-ack is
> appropriate.
> 
> Note that we are in code freeze so all patches, including bugfixes,
> need my ack.

Hi Ian,

This patch [1] is a straightforward 2 lines fix for vpci on ARM.  There
is no risk for the release as the source file affected only builds when
CONFIG_HAS_VPCI is enabled, and it is currently disabled on ARM.

At the same time, as we know vpci is not complete in 4.16 anyway, so the
counter argument is that we don't need to fix it.

Given how trivial the fix is, and that it cannot break the build or
runtime, I would take it.

Cheers,

Stefano


[1] https://marc.info/?l=xen-devel&m=163532307715435


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:09:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:09:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219425.380217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUX-0007q4-JH; Mon, 01 Nov 2021 22:09:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219425.380217; Mon, 01 Nov 2021 22:09:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUX-0007px-G1; Mon, 01 Nov 2021 22:09:21 +0000
Received: by outflank-mailman (input) for mailman id 219425;
 Mon, 01 Nov 2021 22:09:20 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUV-0007pl-Uw
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:20 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 48062fba-59dd-4727-ad3d-190af613b836;
 Mon, 01 Nov 2021 22:09:18 +0000 (UTC)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-393-_dseDoJZNLCO2oPxmaRC9g-1; Mon, 01 Nov 2021 18:09:15 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 k25-20020a05600c1c9900b00332f798ba1dso174559wms.4
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:15 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id i15sm630121wmb.20.2021.11.01.15.09.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48062fba-59dd-4727-ad3d-190af613b836
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804558;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=UcUIBTO6A2A6Mr3DNTGimCFNhmnrVDJGDlnfgcY6wsE=;
	b=AbbEtOqV5+v9HxPUyMgPaJBRNs5rFG57PZzamI8JbU1O28Ar0ZkzItmo8wX5JeyGJ3lnfM
	6ZAgG+yyzP+ddHGZOCA83YZz5N+JN7TW2hZJSjZ3Kq4bgxYYlaN/RvPO0KYMg3KrVofEC3
	lWZlhKYK0/WNgQbTqg7phKFYVD95YNo=
X-MC-Unique: _dseDoJZNLCO2oPxmaRC9g-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=mg126+9me9ZhZB/Tacp08IAkZeaGvGDXykNGOzkIohU=;
        b=fb+FhMtZ9nNS5KwSWKJvWGSd+POIbRy1UFwlH9CvEuiaCmfQfBuCPUQ5m3xMEEAJSt
         Gy5bscYruo0PrWigkqNk1kyVnQBM4jHiP8bwgp/jqgZkYFF6R2u/TnAbLkNP2+xh0pJj
         /4Ij3MrtM3q1Qf1YMFMnlQQ/5ynUgdSKwOWtV4tQyeH1hUsLuyhDIJYcIZsHewTYNsPZ
         h3Cey7nDGnmPzF9Wmoc2cPMLDdpCi5CEZCqwNtqKcG05g5c3XCdFMLW0zZ49vn7b5woR
         +s9qogKbMCXpNVs0mUNzryCadpnXA4QAtUT4vRIFV/eMBpI8QghdtdfLh7HX8YNuTWMi
         f3Yw==
X-Gm-Message-State: AOAM533b72YJ9YBItTlREBmhUQtHq8RHXXdB38pE2aoYIQ+P7gGisAoR
	+JVg+EniLDwYEUjPIsONXVsStcNhyh4XUHeoVImnVMjuV+zGFpi0v621nPwxr7CoqifIzM+CaPD
	lvYakb1xr5Xlai6sNYwGCQvW4cS0=
X-Received: by 2002:a5d:6e8c:: with SMTP id k12mr40207231wrz.401.1635804554337;
        Mon, 01 Nov 2021 15:09:14 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJwiYqS6XG9xwq0Xi+0IIDYOMlQDxPDwjRqxs0xc44YT7VvgO+jFUiosfcGK1mj6k1mDxUBPBw==
X-Received: by 2002:a5d:6e8c:: with SMTP id k12mr40207187wrz.401.1635804554086;
        Mon, 01 Nov 2021 15:09:14 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 00/20] Migration 20211031 patches
Date: Mon,  1 Nov 2021 23:08:52 +0100
Message-Id: <20211101220912.10039-1-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

The following changes since commit af531756d25541a1b3b3d9a14e72e7fedd941a2e=
:=0D
=0D
  Merge remote-tracking branch 'remotes/philmd/tags/renesas-20211030' into =
staging (2021-10-30 11:31:41 -0700)=0D
=0D
are available in the Git repository at:=0D
=0D
  https://github.com/juanquintela/qemu.git tags/migration-20211031-pull-req=
uest=0D
=0D
for you to fetch changes up to 826b8bc80cb191557a4ce7cf0e155b436d2d1afa:=0D
=0D
  migration/dirtyrate: implement dirty-bitmap dirtyrate calculation (2021-1=
1-01 22:56:44 +0100)=0D
=0D
----------------------------------------------------------------=0D
Migration Pull request=0D
=0D
Hi=0D
=0D
this includes pending bits of migration patches.=0D
=0D
- virtio-mem support by David Hildenbrand=0D
- dirtyrate improvements by Hyman Huang=0D
- fix rdma wrid by Li Zhijian=0D
- dump-guest-memory fixes by Peter Xu=0D
=0D
Pleas apply.=0D
=0D
Thanks, Juan.=0D
=0D
----------------------------------------------------------------=0D
=0D
David Hildenbrand (8):=0D
  memory: Introduce replay_discarded callback for RamDiscardManager=0D
  virtio-mem: Implement replay_discarded RamDiscardManager callback=0D
  migration/ram: Handle RAMBlocks with a RamDiscardManager on the=0D
    migration source=0D
  virtio-mem: Drop precopy notifier=0D
  migration/postcopy: Handle RAMBlocks with a RamDiscardManager on the=0D
    destination=0D
  migration: Simplify alignment and alignment checks=0D
  migration/ram: Factor out populating pages readable in=0D
    ram_block_populate_pages()=0D
  migration/ram: Handle RAMBlocks with a RamDiscardManager on background=0D
    snapshots=0D
=0D
Hyman Huang(=C3=A9=C2=BB=E2=80=9E=C3=A5=E2=80=B9=E2=80=A1) (6):=0D
  KVM: introduce dirty_pages and kvm_dirty_ring_enabled=0D
  memory: make global_dirty_tracking a bitmask=0D
  migration/dirtyrate: introduce struct and adjust DirtyRateStat=0D
  migration/dirtyrate: adjust order of registering thread=0D
  migration/dirtyrate: move init step of calculation to main thread=0D
  migration/dirtyrate: implement dirty-ring dirtyrate calculation=0D
=0D
Hyman Huang(=E9=BB=84=E5=8B=87) (2):=0D
  memory: introduce total_dirty_pages to stat dirty pages=0D
  migration/dirtyrate: implement dirty-bitmap dirtyrate calculation=0D
=0D
Li Zhijian (1):=0D
  migration/rdma: Fix out of order wrid=0D
=0D
Peter Xu (3):=0D
  migration: Make migration blocker work for snapshots too=0D
  migration: Add migrate_add_blocker_internal()=0D
  dump-guest-memory: Block live migration=0D
=0D
 qapi/migration.json            |  48 ++++-=0D
 include/exec/memory.h          |  41 +++-=0D
 include/exec/ram_addr.h        |  13 +-=0D
 include/hw/core/cpu.h          |   1 +=0D
 include/hw/virtio/virtio-mem.h |   3 -=0D
 include/migration/blocker.h    |  16 ++=0D
 include/sysemu/kvm.h           |   1 +=0D
 migration/dirtyrate.h          |  21 +-=0D
 migration/ram.h                |   1 +=0D
 accel/kvm/kvm-all.c            |   7 +=0D
 accel/stubs/kvm-stub.c         |   5 +=0D
 dump/dump.c                    |  19 ++=0D
 hw/i386/xen/xen-hvm.c          |   4 +-=0D
 hw/virtio/virtio-mem.c         |  92 ++++++---=0D
 migration/dirtyrate.c          | 367 ++++++++++++++++++++++++++++++---=0D
 migration/migration.c          |  30 +--=0D
 migration/postcopy-ram.c       |  40 +++-=0D
 migration/ram.c                | 180 ++++++++++++++--=0D
 migration/rdma.c               | 138 +++++++++----=0D
 softmmu/memory.c               |  43 +++-=0D
 hmp-commands.hx                |   8 +-=0D
 migration/trace-events         |   2 +=0D
 softmmu/trace-events           |   1 +=0D
 23 files changed, 909 insertions(+), 172 deletions(-)=0D
=0D
--=20=0D
2.33.1=0D
=0D



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:09:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:09:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219427.380239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUd-0008OK-9t; Mon, 01 Nov 2021 22:09:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219427.380239; Mon, 01 Nov 2021 22:09:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUd-0008OD-6W; Mon, 01 Nov 2021 22:09:27 +0000
Received: by outflank-mailman (input) for mailman id 219427;
 Mon, 01 Nov 2021 22:09:25 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUb-0007pr-N9
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:25 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 5c9453dd-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:19 +0000 (UTC)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-554-eXk5BEdqNLmhJzQa-EAuKg-1; Mon, 01 Nov 2021 18:09:18 -0400
Received: by mail-wr1-f71.google.com with SMTP id
 p17-20020adff211000000b0017b902a7701so3974632wro.19
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:18 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id r1sm726567wmr.36.2021.11.01.15.09.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c9453dd-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804559;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hSQaBGBpJWy0B8DIEKBqKdfykrzA4ow4TzC1HWV6kH0=;
	b=hNSNMXU2Y/ryCTwvF3V47yRHi+POxwBr4glDBEfYK0S0Ns5en9qYlDbeWezXQMwMhHb6MF
	OWKSfyUcZnxqlywL8QICTVFh9cuj2k3GFG93i+t2kCnnKwFJvGDewoZ3tDcjlv9S0F5Y0s
	PZGrDGd+EHen92OgTkJja7gRK8dXI8U=
X-MC-Unique: eXk5BEdqNLmhJzQa-EAuKg-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=hSQaBGBpJWy0B8DIEKBqKdfykrzA4ow4TzC1HWV6kH0=;
        b=S365fwufjsHeXo+5HWY4KYuTzdl6YXz4Gra/SjD4LMpAgriVyQ3gQKtDfvZo7IVuWf
         qDST12A2D0pTi5FfKNInhTX/GNqzDVMj32qXwZSsi/u+18lSTrrOiZPHCg4s5t2gTkL+
         bNb+0f21C8Y67ejQyZRLA2n4a3NhKgGI5BuBxt9fo5ZwNIm+7eICiuvXGLbNsZ7wr9oD
         DHHkyLCF5Ib72sV1GQWej5YQSsH2xybrbA7/1yT66kJFzkIMtUTomW4usMk4GLDzd3IH
         Z89LMxTYw8rbh4J0ODcy/AmAadHeQTcs0SqwUocW+ZkRL0vgLwEQBEamcyPmYGz46Qw5
         it7g==
X-Gm-Message-State: AOAM533A6yKO9SNUg2K8jOG8fGzHiPdLiz2noI22B9FJQIcFDUcNIJWP
	aNCKVakOoNThu/NI+2yldGAqiaythCbT+/ZLZ+UepEAp4zLIwD3WX8zT8otw1dF4CSKhijGF6BM
	qfHmGejZfp9su6GxQRViK7abi2Ro=
X-Received: by 2002:adf:a78a:: with SMTP id j10mr42370726wrc.105.1635804557396;
        Mon, 01 Nov 2021 15:09:17 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJzHSBNKTiLO5JlEV3iFexkub7waHAM8W6BpiJr+wCxnuH8FeGBZ5Ook1cyDpaRUcX/w/4yrnA==
X-Received: by 2002:adf:a78a:: with SMTP id j10mr42370691wrc.105.1635804557180;
        Mon, 01 Nov 2021 15:09:17 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	=?UTF-8?q?Hyman=20Huang=28=C3=A9=C2=BB=E2=80=9E=C3=A5=E2=80=B9?= =?UTF-8?q?=E2=80=A1=29?= <huangy81@chinatelecom.cn>
Subject: [PULL 02/20] KVM: introduce dirty_pages and kvm_dirty_ring_enabled
Date: Mon,  1 Nov 2021 23:08:54 +0100
Message-Id: <20211101220912.10039-3-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>

dirty_pages is used to calculate dirtyrate via dirty ring, when
enabled, kvm-reaper will increase the dirty pages after gfns
being dirtied.

kvm_dirty_ring_enabled shows if kvm-reaper is working. dirtyrate
thread could use it to check if measurement can base on dirty
ring feature.

Signed-off-by: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
Message-Id: <fee5fb2ab17ec2159405fc54a3cff8e02322f816.1624040308.git.huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 include/hw/core/cpu.h  | 1 +
 include/sysemu/kvm.h   | 1 +
 accel/kvm/kvm-all.c    | 7 +++++++
 accel/stubs/kvm-stub.c | 5 +++++
 4 files changed, 14 insertions(+)

diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index 1a10497af3..e948e81f1a 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -381,6 +381,7 @@ struct CPUState {
     struct kvm_run *kvm_run;
     struct kvm_dirty_gfn *kvm_dirty_gfns;
     uint32_t kvm_fetch_index;
+    uint64_t dirty_pages;
 
     /* Used for events with 'vcpu' and *without* the 'disabled' properties */
     DECLARE_BITMAP(trace_dstate_delayed, CPU_TRACE_DSTATE_MAX_EVENTS);
diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
index a1ab1ee12d..7b22aeb6ae 100644
--- a/include/sysemu/kvm.h
+++ b/include/sysemu/kvm.h
@@ -547,4 +547,5 @@ bool kvm_cpu_check_are_resettable(void);
 
 bool kvm_arch_cpu_check_are_resettable(void);
 
+bool kvm_dirty_ring_enabled(void);
 #endif
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index db8d83b137..eecd8031cf 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -469,6 +469,7 @@ int kvm_init_vcpu(CPUState *cpu, Error **errp)
     cpu->kvm_fd = ret;
     cpu->kvm_state = s;
     cpu->vcpu_dirty = true;
+    cpu->dirty_pages = 0;
 
     mmap_size = kvm_ioctl(s, KVM_GET_VCPU_MMAP_SIZE, 0);
     if (mmap_size < 0) {
@@ -743,6 +744,7 @@ static uint32_t kvm_dirty_ring_reap_one(KVMState *s, CPUState *cpu)
         count++;
     }
     cpu->kvm_fetch_index = fetch;
+    cpu->dirty_pages += count;
 
     return count;
 }
@@ -2296,6 +2298,11 @@ bool kvm_vcpu_id_is_valid(int vcpu_id)
     return vcpu_id >= 0 && vcpu_id < kvm_max_vcpu_id(s);
 }
 
+bool kvm_dirty_ring_enabled(void)
+{
+    return kvm_state->kvm_dirty_ring_size ? true : false;
+}
+
 static int kvm_init(MachineState *ms)
 {
     MachineClass *mc = MACHINE_GET_CLASS(ms);
diff --git a/accel/stubs/kvm-stub.c b/accel/stubs/kvm-stub.c
index 5b1d00a222..5319573e00 100644
--- a/accel/stubs/kvm-stub.c
+++ b/accel/stubs/kvm-stub.c
@@ -147,4 +147,9 @@ bool kvm_arm_supports_user_irq(void)
 {
     return false;
 }
+
+bool kvm_dirty_ring_enabled(void)
+{
+    return false;
+}
 #endif
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:09:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:09:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219426.380221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUX-0007tK-Uf; Mon, 01 Nov 2021 22:09:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219426.380221; Mon, 01 Nov 2021 22:09:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUX-0007rk-Nr; Mon, 01 Nov 2021 22:09:21 +0000
Received: by outflank-mailman (input) for mailman id 219426;
 Mon, 01 Nov 2021 22:09:20 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUW-0007pr-Rn
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:20 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 5bcaf38f-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:18 +0000 (UTC)
Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com
 [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-481-J9cc_PWgPcGgo6ompzkXhw-1; Mon, 01 Nov 2021 18:09:17 -0400
Received: by mail-wm1-f71.google.com with SMTP id
 v5-20020a1cac05000000b0032ccf04ba2cso181257wme.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:17 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id a1sm6750809wri.89.2021.11.01.15.09.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bcaf38f-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804558;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=vkGrv1tXzqIqxPURTbd5P4AwWVT450Zx93AirftplRQ=;
	b=fgXnQqu/9921Qgsaj4wdnFaw38yIE1zJXiLLiS2/o4iWaAmn1tcGk5fDFu5G7tC6nWWkKx
	Xvfi5x9Co64s4I9uxG9DJpEcPktHA9RcwmA2zaic9Crwb5a4XwdIXrqmoYGKMxllw32At1
	2UpDtT3XMgXUKOvA3VW3foVReh6sO1w=
X-MC-Unique: J9cc_PWgPcGgo6ompzkXhw-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=vkGrv1tXzqIqxPURTbd5P4AwWVT450Zx93AirftplRQ=;
        b=2wDSATlFev0bhnuNl2f2vRba/HBnX486zjnE/NZMS2yAgUJ86TP8rEQMCEQ9WN1Vwo
         qJ4yYTHVA/Guk7mW1eu/qJ7E/fQGz77HeEKkIXAwf5Vu1WBZH1Syn5jaihJJdkbCJGEo
         iyYEhFftqEDqqa50ZNVL8bnYRjIV/IF+YYTVGSgwADvl+B/VoCHfI8yxWs9JrobU7Xye
         GxeO4HjJ1SWOEOgdLcBG1OVRV6E2lWpqCjJgCQ8jyBO5AclEtBWWtogr58MtUqz74x4Z
         RpxE6rphnQxy4bONNnhPd4Za7e/xahQQSXXN82dkXOfm7SXYI5xG/JKlEY0Q+ha++R5V
         inTA==
X-Gm-Message-State: AOAM532QwO15/1t0SS7ZDNVUUs9mEpjBiznHFwvnI16RWG1AqBOL8NAT
	MC8p+Q4L3UsqUlaYRPrxb26IExRSiyfhpvEfWzp1gxatZobzOettQxvQYSMZ0gXhDIzipASFEhL
	5OAfz09O6oY/dE7yLqxOo8uJWQFA=
X-Received: by 2002:a1c:f207:: with SMTP id s7mr1888729wmc.179.1635804556023;
        Mon, 01 Nov 2021 15:09:16 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJzdelN3acVNNcauyISlwa7+WeaQgRjEVk9oRjzpL60B7TVIsWjsHCUYyBOoiJZxzWXWvnQUpA==
X-Received: by 2002:a1c:f207:: with SMTP id s7mr1888689wmc.179.1635804555648;
        Mon, 01 Nov 2021 15:09:15 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Li Zhijian <lizhijian@cn.fujitsu.com>
Subject: [PULL 01/20] migration/rdma: Fix out of order wrid
Date: Mon,  1 Nov 2021 23:08:53 +0100
Message-Id: <20211101220912.10039-2-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"

From: Li Zhijian <lizhijian@cn.fujitsu.com>

destination:
../qemu/build/qemu-system-x86_64 -enable-kvm -netdev tap,id=hn0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown -device e1000,netdev=hn0,mac=50:52:54:00:11:22 -boot c -drive if=none,file=./Fedora-rdma-server-migration.qcow2,id=drive-virtio-disk0 -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -m 2048 -smp 2 -device piix3-usb-uhci -device usb-tablet -monitor stdio -vga qxl -spice streaming-video=filter,port=5902,disable-ticketing -incoming rdma:192.168.22.23:8888
qemu-system-x86_64: -spice streaming-video=filter,port=5902,disable-ticketing: warning: short-form boolean option 'disable-ticketing' deprecated
Please use disable-ticketing=on instead
QEMU 6.0.50 monitor - type 'help' for more information
(qemu) trace-event qemu_rdma_block_for_wrid_miss on
(qemu) dest_init RDMA Device opened: kernel name rxe_eth0 uverbs device name uverbs2, infiniband_verbs class device path /sys/class/infiniband_verbs/uverbs2, infiniband class device path /sys/class/infiniband/rxe_eth0, transport: (2) Ethernet
qemu_rdma_block_for_wrid_miss A Wanted wrid CONTROL SEND (2000) but got CONTROL RECV (4000)

source:
../qemu/build/qemu-system-x86_64 -enable-kvm -netdev tap,id=hn0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown -device e1000,netdev=hn0,mac=50:52:54:00:11:22 -boot c -drive if=none,file=./Fedora-rdma-server.qcow2,id=drive-virtio-disk0 -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -m 2048 -smp 2 -device piix3-usb-uhci -device usb-tablet -monitor stdio -vga qxl -spice streaming-video=filter,port=5901,disable-ticketing -S
qemu-system-x86_64: -spice streaming-video=filter,port=5901,disable-ticketing: warning: short-form boolean option 'disable-ticketing' deprecated
Please use disable-ticketing=on instead
QEMU 6.0.50 monitor - type 'help' for more information
(qemu)
(qemu) trace-event qemu_rdma_block_for_wrid_miss on
(qemu) migrate -d rdma:192.168.22.23:8888
source_resolve_host RDMA Device opened: kernel name rxe_eth0 uverbs device name uverbs2, infiniband_verbs class device path /sys/class/infiniband_verbs/uverbs2, infiniband class device path /sys/class/infiniband/rxe_eth0, transport: (2) Ethernet
(qemu) qemu_rdma_block_for_wrid_miss A Wanted wrid WRITE RDMA (1) but got CONTROL RECV (4000)

NOTE: we use soft RoCE as the rdma device.
[root@iaas-rpma images]# rdma link show rxe_eth0/1
link rxe_eth0/1 state ACTIVE physical_state LINK_UP netdev eth0

This migration could not be completed when out of order(OOO) CQ event occurs.
The send queue and receive queue shared a same completion queue, and
qemu_rdma_block_for_wrid() will drop the CQs it's not interested in. But
the dropped CQs by qemu_rdma_block_for_wrid() could be later CQs it wants.
So in this case, qemu_rdma_block_for_wrid() will block forever.

OOO cases will occur in both source side and destination side. And a
forever blocking happens on only SEND and RECV are out of order. OOO between
'WRITE RDMA' and 'RECV' doesn't matter.

below the OOO sequence:
       source                             destination
      rdma_write_one()                   qemu_rdma_registration_handle()
1.    S1: post_recv X                    D1: post_recv Y
2.    wait for recv CQ event X
3.                                       D2: post_send X     ---------------+
4.                                       wait for send CQ send event X (D2) |
5.    recv CQ event X reaches (D2)                                          |
6.  +-S2: post_send Y                                                       |
7.  | wait for send CQ event Y                                              |
8.  |                                    recv CQ event Y (S2) (drop it)     |
9.  +-send CQ event Y reaches (S2)                                          |
10.                                      send CQ event X reaches (D2)  -----+
11.                                      wait recv CQ event Y (dropped by (8))

Although a hardware IB works fine in my a hundred of runs, the IB specification
doesn't guaratee the CQ order in such case.

Here we introduce a independent send completion queue to distinguish
ibv_post_send completion queue from the original mixed completion queue.
It helps us to poll the specific CQE we are really interested in.

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/rdma.c | 138 ++++++++++++++++++++++++++++++++++-------------
 1 file changed, 101 insertions(+), 37 deletions(-)

diff --git a/migration/rdma.c b/migration/rdma.c
index 2a3c7889b9..f5d3bbe7e9 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -358,9 +358,11 @@ typedef struct RDMAContext {
     struct ibv_context          *verbs;
     struct rdma_event_channel   *channel;
     struct ibv_qp *qp;                      /* queue pair */
-    struct ibv_comp_channel *comp_channel;  /* completion channel */
+    struct ibv_comp_channel *recv_comp_channel;  /* recv completion channel */
+    struct ibv_comp_channel *send_comp_channel;  /* send completion channel */
     struct ibv_pd *pd;                      /* protection domain */
-    struct ibv_cq *cq;                      /* completion queue */
+    struct ibv_cq *recv_cq;                 /* recvieve completion queue */
+    struct ibv_cq *send_cq;                 /* send completion queue */
 
     /*
      * If a previous write failed (perhaps because of a failed
@@ -1059,21 +1061,34 @@ static int qemu_rdma_alloc_pd_cq(RDMAContext *rdma)
         return -1;
     }
 
-    /* create completion channel */
-    rdma->comp_channel = ibv_create_comp_channel(rdma->verbs);
-    if (!rdma->comp_channel) {
-        error_report("failed to allocate completion channel");
+    /* create receive completion channel */
+    rdma->recv_comp_channel = ibv_create_comp_channel(rdma->verbs);
+    if (!rdma->recv_comp_channel) {
+        error_report("failed to allocate receive completion channel");
         goto err_alloc_pd_cq;
     }
 
     /*
-     * Completion queue can be filled by both read and write work requests,
-     * so must reflect the sum of both possible queue sizes.
+     * Completion queue can be filled by read work requests.
      */
-    rdma->cq = ibv_create_cq(rdma->verbs, (RDMA_SIGNALED_SEND_MAX * 3),
-            NULL, rdma->comp_channel, 0);
-    if (!rdma->cq) {
-        error_report("failed to allocate completion queue");
+    rdma->recv_cq = ibv_create_cq(rdma->verbs, (RDMA_SIGNALED_SEND_MAX * 3),
+                                  NULL, rdma->recv_comp_channel, 0);
+    if (!rdma->recv_cq) {
+        error_report("failed to allocate receive completion queue");
+        goto err_alloc_pd_cq;
+    }
+
+    /* create send completion channel */
+    rdma->send_comp_channel = ibv_create_comp_channel(rdma->verbs);
+    if (!rdma->send_comp_channel) {
+        error_report("failed to allocate send completion channel");
+        goto err_alloc_pd_cq;
+    }
+
+    rdma->send_cq = ibv_create_cq(rdma->verbs, (RDMA_SIGNALED_SEND_MAX * 3),
+                                  NULL, rdma->send_comp_channel, 0);
+    if (!rdma->send_cq) {
+        error_report("failed to allocate send completion queue");
         goto err_alloc_pd_cq;
     }
 
@@ -1083,11 +1098,19 @@ err_alloc_pd_cq:
     if (rdma->pd) {
         ibv_dealloc_pd(rdma->pd);
     }
-    if (rdma->comp_channel) {
-        ibv_destroy_comp_channel(rdma->comp_channel);
+    if (rdma->recv_comp_channel) {
+        ibv_destroy_comp_channel(rdma->recv_comp_channel);
+    }
+    if (rdma->send_comp_channel) {
+        ibv_destroy_comp_channel(rdma->send_comp_channel);
+    }
+    if (rdma->recv_cq) {
+        ibv_destroy_cq(rdma->recv_cq);
+        rdma->recv_cq = NULL;
     }
     rdma->pd = NULL;
-    rdma->comp_channel = NULL;
+    rdma->recv_comp_channel = NULL;
+    rdma->send_comp_channel = NULL;
     return -1;
 
 }
@@ -1104,8 +1127,8 @@ static int qemu_rdma_alloc_qp(RDMAContext *rdma)
     attr.cap.max_recv_wr = 3;
     attr.cap.max_send_sge = 1;
     attr.cap.max_recv_sge = 1;
-    attr.send_cq = rdma->cq;
-    attr.recv_cq = rdma->cq;
+    attr.send_cq = rdma->send_cq;
+    attr.recv_cq = rdma->recv_cq;
     attr.qp_type = IBV_QPT_RC;
 
     ret = rdma_create_qp(rdma->cm_id, rdma->pd, &attr);
@@ -1496,14 +1519,14 @@ static void qemu_rdma_signal_unregister(RDMAContext *rdma, uint64_t index,
  * (of any kind) has completed.
  * Return the work request ID that completed.
  */
-static uint64_t qemu_rdma_poll(RDMAContext *rdma, uint64_t *wr_id_out,
-                               uint32_t *byte_len)
+static uint64_t qemu_rdma_poll(RDMAContext *rdma, struct ibv_cq *cq,
+                               uint64_t *wr_id_out, uint32_t *byte_len)
 {
     int ret;
     struct ibv_wc wc;
     uint64_t wr_id;
 
-    ret = ibv_poll_cq(rdma->cq, 1, &wc);
+    ret = ibv_poll_cq(cq, 1, &wc);
 
     if (!ret) {
         *wr_id_out = RDMA_WRID_NONE;
@@ -1575,7 +1598,8 @@ static uint64_t qemu_rdma_poll(RDMAContext *rdma, uint64_t *wr_id_out,
 /* Wait for activity on the completion channel.
  * Returns 0 on success, none-0 on error.
  */
-static int qemu_rdma_wait_comp_channel(RDMAContext *rdma)
+static int qemu_rdma_wait_comp_channel(RDMAContext *rdma,
+                                       struct ibv_comp_channel *comp_channel)
 {
     struct rdma_cm_event *cm_event;
     int ret = -1;
@@ -1586,7 +1610,7 @@ static int qemu_rdma_wait_comp_channel(RDMAContext *rdma)
      */
     if (rdma->migration_started_on_destination &&
         migration_incoming_get_current()->state == MIGRATION_STATUS_ACTIVE) {
-        yield_until_fd_readable(rdma->comp_channel->fd);
+        yield_until_fd_readable(comp_channel->fd);
     } else {
         /* This is the source side, we're in a separate thread
          * or destination prior to migration_fd_process_incoming()
@@ -1597,7 +1621,7 @@ static int qemu_rdma_wait_comp_channel(RDMAContext *rdma)
          */
         while (!rdma->error_state  && !rdma->received_error) {
             GPollFD pfds[2];
-            pfds[0].fd = rdma->comp_channel->fd;
+            pfds[0].fd = comp_channel->fd;
             pfds[0].events = G_IO_IN | G_IO_HUP | G_IO_ERR;
             pfds[0].revents = 0;
 
@@ -1655,6 +1679,17 @@ static int qemu_rdma_wait_comp_channel(RDMAContext *rdma)
     return rdma->error_state;
 }
 
+static struct ibv_comp_channel *to_channel(RDMAContext *rdma, int wrid)
+{
+    return wrid < RDMA_WRID_RECV_CONTROL ? rdma->send_comp_channel :
+           rdma->recv_comp_channel;
+}
+
+static struct ibv_cq *to_cq(RDMAContext *rdma, int wrid)
+{
+    return wrid < RDMA_WRID_RECV_CONTROL ? rdma->send_cq : rdma->recv_cq;
+}
+
 /*
  * Block until the next work request has completed.
  *
@@ -1675,13 +1710,15 @@ static int qemu_rdma_block_for_wrid(RDMAContext *rdma, int wrid_requested,
     struct ibv_cq *cq;
     void *cq_ctx;
     uint64_t wr_id = RDMA_WRID_NONE, wr_id_in;
+    struct ibv_comp_channel *ch = to_channel(rdma, wrid_requested);
+    struct ibv_cq *poll_cq = to_cq(rdma, wrid_requested);
 
-    if (ibv_req_notify_cq(rdma->cq, 0)) {
+    if (ibv_req_notify_cq(poll_cq, 0)) {
         return -1;
     }
     /* poll cq first */
     while (wr_id != wrid_requested) {
-        ret = qemu_rdma_poll(rdma, &wr_id_in, byte_len);
+        ret = qemu_rdma_poll(rdma, poll_cq, &wr_id_in, byte_len);
         if (ret < 0) {
             return ret;
         }
@@ -1702,12 +1739,12 @@ static int qemu_rdma_block_for_wrid(RDMAContext *rdma, int wrid_requested,
     }
 
     while (1) {
-        ret = qemu_rdma_wait_comp_channel(rdma);
+        ret = qemu_rdma_wait_comp_channel(rdma, ch);
         if (ret) {
             goto err_block_for_wrid;
         }
 
-        ret = ibv_get_cq_event(rdma->comp_channel, &cq, &cq_ctx);
+        ret = ibv_get_cq_event(ch, &cq, &cq_ctx);
         if (ret) {
             perror("ibv_get_cq_event");
             goto err_block_for_wrid;
@@ -1721,7 +1758,7 @@ static int qemu_rdma_block_for_wrid(RDMAContext *rdma, int wrid_requested,
         }
 
         while (wr_id != wrid_requested) {
-            ret = qemu_rdma_poll(rdma, &wr_id_in, byte_len);
+            ret = qemu_rdma_poll(rdma, poll_cq, &wr_id_in, byte_len);
             if (ret < 0) {
                 goto err_block_for_wrid;
             }
@@ -2437,13 +2474,21 @@ static void qemu_rdma_cleanup(RDMAContext *rdma)
         rdma_destroy_qp(rdma->cm_id);
         rdma->qp = NULL;
     }
-    if (rdma->cq) {
-        ibv_destroy_cq(rdma->cq);
-        rdma->cq = NULL;
+    if (rdma->recv_cq) {
+        ibv_destroy_cq(rdma->recv_cq);
+        rdma->recv_cq = NULL;
     }
-    if (rdma->comp_channel) {
-        ibv_destroy_comp_channel(rdma->comp_channel);
-        rdma->comp_channel = NULL;
+    if (rdma->send_cq) {
+        ibv_destroy_cq(rdma->send_cq);
+        rdma->send_cq = NULL;
+    }
+    if (rdma->recv_comp_channel) {
+        ibv_destroy_comp_channel(rdma->recv_comp_channel);
+        rdma->recv_comp_channel = NULL;
+    }
+    if (rdma->send_comp_channel) {
+        ibv_destroy_comp_channel(rdma->send_comp_channel);
+        rdma->send_comp_channel = NULL;
     }
     if (rdma->pd) {
         ibv_dealloc_pd(rdma->pd);
@@ -3115,10 +3160,14 @@ static void qio_channel_rdma_set_aio_fd_handler(QIOChannel *ioc,
 {
     QIOChannelRDMA *rioc = QIO_CHANNEL_RDMA(ioc);
     if (io_read) {
-        aio_set_fd_handler(ctx, rioc->rdmain->comp_channel->fd,
+        aio_set_fd_handler(ctx, rioc->rdmain->recv_comp_channel->fd,
+                           false, io_read, io_write, NULL, opaque);
+        aio_set_fd_handler(ctx, rioc->rdmain->send_comp_channel->fd,
                            false, io_read, io_write, NULL, opaque);
     } else {
-        aio_set_fd_handler(ctx, rioc->rdmaout->comp_channel->fd,
+        aio_set_fd_handler(ctx, rioc->rdmaout->recv_comp_channel->fd,
+                           false, io_read, io_write, NULL, opaque);
+        aio_set_fd_handler(ctx, rioc->rdmaout->send_comp_channel->fd,
                            false, io_read, io_write, NULL, opaque);
     }
 }
@@ -3332,7 +3381,22 @@ static size_t qemu_rdma_save_page(QEMUFile *f, void *opaque,
      */
     while (1) {
         uint64_t wr_id, wr_id_in;
-        int ret = qemu_rdma_poll(rdma, &wr_id_in, NULL);
+        int ret = qemu_rdma_poll(rdma, rdma->recv_cq, &wr_id_in, NULL);
+        if (ret < 0) {
+            error_report("rdma migration: polling error! %d", ret);
+            goto err;
+        }
+
+        wr_id = wr_id_in & RDMA_WRID_TYPE_MASK;
+
+        if (wr_id == RDMA_WRID_NONE) {
+            break;
+        }
+    }
+
+    while (1) {
+        uint64_t wr_id, wr_id_in;
+        int ret = qemu_rdma_poll(rdma, rdma->send_cq, &wr_id_in, NULL);
         if (ret < 0) {
             error_report("rdma migration: polling error! %d", ret);
             goto err;
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:09:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:09:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219429.380261 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUh-0000aY-Qn; Mon, 01 Nov 2021 22:09:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219429.380261; Mon, 01 Nov 2021 22:09:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUh-0000aD-Ml; Mon, 01 Nov 2021 22:09:31 +0000
Received: by outflank-mailman (input) for mailman id 219429;
 Mon, 01 Nov 2021 22:09:30 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUg-0007pr-NF
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:30 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 5d89a486-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:21 +0000 (UTC)
Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com
 [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-444-aGyjZVJKN8-a3rPFwGMeiQ-1; Mon, 01 Nov 2021 18:09:20 -0400
Received: by mail-wr1-f69.google.com with SMTP id
 q5-20020a5d5745000000b00178abb72486so4821858wrw.9
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:19 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id c79sm643941wme.43.2021.11.01.15.09.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d89a486-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804561;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=mNV0USCJ0bTE7YbxR+SPvyYXWmDPBQ41R9sCmOpsXYk=;
	b=YP1w/pD0tmnXzYUmwg1kAxzgEk6iHvlWdcX0cBVPuVxq4oK93ZGZ8JDjzH8VuSf4QwZfaq
	Fvpxnyj8mA0vsAHUrTJTIZ1moclt8Xa2wbLcnwxE7hIEoIJX7eVxxMWT8WgSGisVGRLJc1
	+9RCYzgK4QpBvTV5u34epnPPaJPL4w0=
X-MC-Unique: aGyjZVJKN8-a3rPFwGMeiQ-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=mNV0USCJ0bTE7YbxR+SPvyYXWmDPBQ41R9sCmOpsXYk=;
        b=neEIC2LCAPWIwaDOasqvenWeGyzBKw9VeSyyLBj80t4zWFImAbLYKLeaTr+Ct4Z3dc
         1ZL7rpm+RBzxEnYW7djjYfOldmSlqUAFzk3ng+gc8I1lxC5BF0XSOvrLOYmytDeiNdLc
         rDZ6YXAf0vi9e+Vpn+dHUWfcrNcT7w2S2TlZJrCqkywif1Tv9tYogwE73QM9siQMSR60
         PzlL3RFE0+csBqMoGRhTy/SGStiAU4fEyZaRtKzAJYzPY52qksTbbnVlpmLingjUOBVL
         5+ydFAXLwXdcOm3vaotXnhPlUoiKfbSncjAoIo5olEVP59ma+W/U2tJfKglP+cvX8EOX
         4j8g==
X-Gm-Message-State: AOAM531I+3EjEOOpmE2V0MCA6dvA7CxtGhM5dJPMcKYa6HFJdPl3e94e
	7r4Ei+nUasl8N4rOF64k7u7oOEp0dKxmz7euHh7Wh4HkTzgMb+SsaK9ZXdb6NT3zGyL9oaW8Vqx
	reUI3x7Az1p+mMUV+2x6rE2+y/yc=
X-Received: by 2002:a5d:658c:: with SMTP id q12mr16674210wru.34.1635804558680;
        Mon, 01 Nov 2021 15:09:18 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJz7l2Vftm7DMc/eD2Pbw7jBZVxT3bmH28cxDkkzkMDwNXV8YPCcpluT9gBfpkvFnsLHKLEoAQ==
X-Received: by 2002:a5d:658c:: with SMTP id q12mr16674187wru.34.1635804558501;
        Mon, 01 Nov 2021 15:09:18 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	=?UTF-8?q?Hyman=20Huang=28=C3=A9=C2=BB=E2=80=9E=C3=A5=E2=80=B9?= =?UTF-8?q?=E2=80=A1=29?= <huangy81@chinatelecom.cn>
Subject: [PULL 03/20] memory: make global_dirty_tracking a bitmask
Date: Mon,  1 Nov 2021 23:08:55 +0100
Message-Id: <20211101220912.10039-4-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>

since dirty ring has been introduced, there are two methods
to track dirty pages of vm. it seems that "logging" has
a hint on the method, so rename the global_dirty_log to
global_dirty_tracking would make description more accurate.

dirty rate measurement may start or stop dirty tracking during
calculation. this conflict with migration because stop dirty
tracking make migration leave dirty pages out then that'll be
a problem.

make global_dirty_tracking a bitmask can let both migration and
dirty rate measurement work fine. introduce GLOBAL_DIRTY_MIGRATION
and GLOBAL_DIRTY_DIRTY_RATE to distinguish what current dirty
tracking aims for, migration or dirty rate.

Signed-off-by: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
Message-Id: <9c9388657cfa0301bd2c1cfa36e7cf6da4aeca19.1624040308.git.huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 include/exec/memory.h   | 20 +++++++++++++++++---
 include/exec/ram_addr.h |  4 ++--
 hw/i386/xen/xen-hvm.c   |  4 ++--
 migration/ram.c         | 15 +++++++++++----
 softmmu/memory.c        | 32 +++++++++++++++++++++-----------
 softmmu/trace-events    |  1 +
 6 files changed, 54 insertions(+), 22 deletions(-)

diff --git a/include/exec/memory.h b/include/exec/memory.h
index a185b6dcb8..04280450c9 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -61,7 +61,17 @@ static inline void fuzz_dma_read_cb(size_t addr,
 }
 #endif
 
-extern bool global_dirty_log;
+/* Possible bits for global_dirty_log_{start|stop} */
+
+/* Dirty tracking enabled because migration is running */
+#define GLOBAL_DIRTY_MIGRATION  (1U << 0)
+
+/* Dirty tracking enabled because measuring dirty rate */
+#define GLOBAL_DIRTY_DIRTY_RATE (1U << 1)
+
+#define GLOBAL_DIRTY_MASK  (0x3)
+
+extern unsigned int global_dirty_tracking;
 
 typedef struct MemoryRegionOps MemoryRegionOps;
 
@@ -2388,13 +2398,17 @@ void memory_listener_unregister(MemoryListener *listener);
 
 /**
  * memory_global_dirty_log_start: begin dirty logging for all regions
+ *
+ * @flags: purpose of starting dirty log, migration or dirty rate
  */
-void memory_global_dirty_log_start(void);
+void memory_global_dirty_log_start(unsigned int flags);
 
 /**
  * memory_global_dirty_log_stop: end dirty logging for all regions
+ *
+ * @flags: purpose of stopping dirty log, migration or dirty rate
  */
-void memory_global_dirty_log_stop(void);
+void memory_global_dirty_log_stop(unsigned int flags);
 
 void mtree_info(bool flatview, bool dispatch_tree, bool owner, bool disabled);
 
diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
index 551876bed0..45c913264a 100644
--- a/include/exec/ram_addr.h
+++ b/include/exec/ram_addr.h
@@ -369,7 +369,7 @@ static inline void cpu_physical_memory_set_dirty_lebitmap(unsigned long *bitmap,
 
                     qatomic_or(&blocks[DIRTY_MEMORY_VGA][idx][offset], temp);
 
-                    if (global_dirty_log) {
+                    if (global_dirty_tracking) {
                         qatomic_or(
                                 &blocks[DIRTY_MEMORY_MIGRATION][idx][offset],
                                 temp);
@@ -392,7 +392,7 @@ static inline void cpu_physical_memory_set_dirty_lebitmap(unsigned long *bitmap,
     } else {
         uint8_t clients = tcg_enabled() ? DIRTY_CLIENTS_ALL : DIRTY_CLIENTS_NOCODE;
 
-        if (!global_dirty_log) {
+        if (!global_dirty_tracking) {
             clients &= ~(1 << DIRTY_MEMORY_MIGRATION);
         }
 
diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
index e3d3d5cf89..482be95415 100644
--- a/hw/i386/xen/xen-hvm.c
+++ b/hw/i386/xen/xen-hvm.c
@@ -1613,8 +1613,8 @@ void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length)
 void qmp_xen_set_global_dirty_log(bool enable, Error **errp)
 {
     if (enable) {
-        memory_global_dirty_log_start();
+        memory_global_dirty_log_start(GLOBAL_DIRTY_MIGRATION);
     } else {
-        memory_global_dirty_log_stop();
+        memory_global_dirty_log_stop(GLOBAL_DIRTY_MIGRATION);
     }
 }
diff --git a/migration/ram.c b/migration/ram.c
index bb908822d5..ae2601bf3b 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -2216,7 +2216,14 @@ static void ram_save_cleanup(void *opaque)
         /* caller have hold iothread lock or is in a bh, so there is
          * no writing race against the migration bitmap
          */
-        memory_global_dirty_log_stop();
+        if (global_dirty_tracking & GLOBAL_DIRTY_MIGRATION) {
+            /*
+             * do not stop dirty log without starting it, since
+             * memory_global_dirty_log_stop will assert that
+             * memory_global_dirty_log_start/stop used in pairs
+             */
+            memory_global_dirty_log_stop(GLOBAL_DIRTY_MIGRATION);
+        }
     }
 
     RAMBLOCK_FOREACH_NOT_IGNORED(block) {
@@ -2678,7 +2685,7 @@ static void ram_init_bitmaps(RAMState *rs)
         ram_list_init_bitmaps();
         /* We don't use dirty log with background snapshots */
         if (!migrate_background_snapshot()) {
-            memory_global_dirty_log_start();
+            memory_global_dirty_log_start(GLOBAL_DIRTY_MIGRATION);
             migration_bitmap_sync_precopy(rs);
         }
     }
@@ -3434,7 +3441,7 @@ void colo_incoming_start_dirty_log(void)
             /* Discard this dirty bitmap record */
             bitmap_zero(block->bmap, block->max_length >> TARGET_PAGE_BITS);
         }
-        memory_global_dirty_log_start();
+        memory_global_dirty_log_start(GLOBAL_DIRTY_MIGRATION);
     }
     ram_state->migration_dirty_pages = 0;
     qemu_mutex_unlock_ramlist();
@@ -3446,7 +3453,7 @@ void colo_release_ram_cache(void)
 {
     RAMBlock *block;
 
-    memory_global_dirty_log_stop();
+    memory_global_dirty_log_stop(GLOBAL_DIRTY_MIGRATION);
     RAMBLOCK_FOREACH_NOT_IGNORED(block) {
         g_free(block->bmap);
         block->bmap = NULL;
diff --git a/softmmu/memory.c b/softmmu/memory.c
index e5826faa0c..f2ac0d2e89 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -39,7 +39,7 @@
 static unsigned memory_region_transaction_depth;
 static bool memory_region_update_pending;
 static bool ioeventfd_update_pending;
-bool global_dirty_log;
+unsigned int global_dirty_tracking;
 
 static QTAILQ_HEAD(, MemoryListener) memory_listeners
     = QTAILQ_HEAD_INITIALIZER(memory_listeners);
@@ -1821,7 +1821,7 @@ uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr)
     uint8_t mask = mr->dirty_log_mask;
     RAMBlock *rb = mr->ram_block;
 
-    if (global_dirty_log && ((rb && qemu_ram_is_migratable(rb)) ||
+    if (global_dirty_tracking && ((rb && qemu_ram_is_migratable(rb)) ||
                              memory_region_is_iommu(mr))) {
         mask |= (1 << DIRTY_MEMORY_MIGRATION);
     }
@@ -2760,14 +2760,18 @@ void memory_global_after_dirty_log_sync(void)
 
 static VMChangeStateEntry *vmstate_change;
 
-void memory_global_dirty_log_start(void)
+void memory_global_dirty_log_start(unsigned int flags)
 {
     if (vmstate_change) {
         qemu_del_vm_change_state_handler(vmstate_change);
         vmstate_change = NULL;
     }
 
-    global_dirty_log = true;
+    assert(flags && !(flags & (~GLOBAL_DIRTY_MASK)));
+    assert(!(global_dirty_tracking & flags));
+    global_dirty_tracking |= flags;
+
+    trace_global_dirty_changed(global_dirty_tracking);
 
     MEMORY_LISTENER_CALL_GLOBAL(log_global_start, Forward);
 
@@ -2777,9 +2781,13 @@ void memory_global_dirty_log_start(void)
     memory_region_transaction_commit();
 }
 
-static void memory_global_dirty_log_do_stop(void)
+static void memory_global_dirty_log_do_stop(unsigned int flags)
 {
-    global_dirty_log = false;
+    assert(flags && !(flags & (~GLOBAL_DIRTY_MASK)));
+    assert((global_dirty_tracking & flags) == flags);
+    global_dirty_tracking &= ~flags;
+
+    trace_global_dirty_changed(global_dirty_tracking);
 
     /* Refresh DIRTY_MEMORY_MIGRATION bit.  */
     memory_region_transaction_begin();
@@ -2792,8 +2800,9 @@ static void memory_global_dirty_log_do_stop(void)
 static void memory_vm_change_state_handler(void *opaque, bool running,
                                            RunState state)
 {
+    unsigned int flags = (unsigned int)(uintptr_t)opaque;
     if (running) {
-        memory_global_dirty_log_do_stop();
+        memory_global_dirty_log_do_stop(flags);
 
         if (vmstate_change) {
             qemu_del_vm_change_state_handler(vmstate_change);
@@ -2802,18 +2811,19 @@ static void memory_vm_change_state_handler(void *opaque, bool running,
     }
 }
 
-void memory_global_dirty_log_stop(void)
+void memory_global_dirty_log_stop(unsigned int flags)
 {
     if (!runstate_is_running()) {
         if (vmstate_change) {
             return;
         }
         vmstate_change = qemu_add_vm_change_state_handler(
-                                memory_vm_change_state_handler, NULL);
+                                memory_vm_change_state_handler,
+                                (void *)(uintptr_t)flags);
         return;
     }
 
-    memory_global_dirty_log_do_stop();
+    memory_global_dirty_log_do_stop(flags);
 }
 
 static void listener_add_address_space(MemoryListener *listener,
@@ -2825,7 +2835,7 @@ static void listener_add_address_space(MemoryListener *listener,
     if (listener->begin) {
         listener->begin(listener);
     }
-    if (global_dirty_log) {
+    if (global_dirty_tracking) {
         if (listener->log_global_start) {
             listener->log_global_start(listener);
         }
diff --git a/softmmu/trace-events b/softmmu/trace-events
index bf1469990e..9c88887b3c 100644
--- a/softmmu/trace-events
+++ b/softmmu/trace-events
@@ -19,6 +19,7 @@ memory_region_sync_dirty(const char *mr, const char *listener, int global) "mr '
 flatview_new(void *view, void *root) "%p (root %p)"
 flatview_destroy(void *view, void *root) "%p (root %p)"
 flatview_destroy_rcu(void *view, void *root) "%p (root %p)"
+global_dirty_changed(unsigned int bitmask) "bitmask 0x%"PRIx32
 
 # softmmu.c
 vm_stop_flush_all(int ret) "ret %d"
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:09:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:09:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219428.380250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUf-0000FN-Iu; Mon, 01 Nov 2021 22:09:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219428.380250; Mon, 01 Nov 2021 22:09:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUf-0000FE-Ec; Mon, 01 Nov 2021 22:09:29 +0000
Received: by outflank-mailman (input) for mailman id 219428;
 Mon, 01 Nov 2021 22:09:28 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUe-0000By-BX
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:28 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id faed5ff8-c9c6-43ca-808f-521c3c679996;
 Mon, 01 Nov 2021 22:09:27 +0000 (UTC)
Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com
 [209.85.221.70]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-464-TpMtcGBdNeesXy2DrtFEFQ-1; Mon, 01 Nov 2021 18:09:26 -0400
Received: by mail-wr1-f70.google.com with SMTP id
 d7-20020a5d6447000000b00186a113463dso1198922wrw.10
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:26 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id o17sm685487wmq.11.2021.11.01.15.09.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: faed5ff8-c9c6-43ca-808f-521c3c679996
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804567;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GGo9WanuJU04tuhhnw4peEWGOBw6c3WDbeGbMBl0UrM=;
	b=CxE49QFwEnLn5ozH0njoOjqV0y/Y9CbD0DHU97jOrCpeiZ73tHyjt2KFCAkRCrotaFm8PT
	IOP4IFxlq+NBRFVWHQC+dynHM0bhn+EQJe3r+cRU1Sr4oouxMZaZK6gT+ZwT4lBt5cvNBf
	w9Cl+GmwmkIY40c9fqDupbx4Sf43htg=
X-MC-Unique: TpMtcGBdNeesXy2DrtFEFQ-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=GGo9WanuJU04tuhhnw4peEWGOBw6c3WDbeGbMBl0UrM=;
        b=v3VabxmKuOXMtxhN/3foCTRQD0Ig48DNpNt2XkKDiICJahE8tlavhjnQPhK5ITRkaX
         JRRKAPwl7VUOl0aGG8kgnx9UJH5zMqE/NPHzolt5pueYGZhdV1vveJpbU4DkmtqmD4rn
         bQjeIu6yXtRMaQbo9uyBRAXc4nlJ/Mb3FoFbi98X00m/kqCvJWZgBfgEI+8oINcC8Vtf
         LS4XUyfpJHjiS60qDPGCPLSyvHobEzpHv4eR/f8PgFy8vsnS4mV0I9UiA9LkJxFkiTVC
         ZkG8Jh6uGKZbHDP12q9CV5lP2pe3J5UwSCGTqQIo4F9ppReM6VZF75ymfSCbiZL9+0P/
         Jn0A==
X-Gm-Message-State: AOAM530y5dVFML1YVVIOY0n6n/TVsuq2omMrQ4eSbrm+UiRiMxheKr2s
	1nBAtHwyaX712b3ReMnPqSQEDr9BMPcUg+a3ZVVHooP16w4heBhOtKvueRASJAgfIdZGSXonWPY
	PZY8glQ/L3UBVcSOH1djOrmhCv5k=
X-Received: by 2002:a1c:7e41:: with SMTP id z62mr1955936wmc.9.1635804565091;
        Mon, 01 Nov 2021 15:09:25 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJwpSY2086+CnGB9WPrHW5bo96aeVOpNDlLfr+WAapyjvAt6zv6pqshWIvxGHLts1sX02fyU2g==
X-Received: by 2002:a1c:7e41:: with SMTP id z62mr1955923wmc.9.1635804564942;
        Mon, 01 Nov 2021 15:09:24 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 08/20] migration: Make migration blocker work for snapshots too
Date: Mon,  1 Nov 2021 23:09:00 +0100
Message-Id: <20211101220912.10039-9-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Peter Xu <peterx@redhat.com>

save_snapshot() checks migration blocker, which looks sane.  At the meantime we
should also teach the blocker add helper to fail if during a snapshot, just
like for migrations.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/migration.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/migration/migration.c b/migration/migration.c
index 9172686b89..e81e473f5a 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2058,15 +2058,16 @@ int migrate_add_blocker(Error *reason, Error **errp)
         return -EACCES;
     }
 
-    if (migration_is_idle()) {
-        migration_blockers = g_slist_prepend(migration_blockers, reason);
-        return 0;
+    /* Snapshots are similar to migrations, so check RUN_STATE_SAVE_VM too. */
+    if (runstate_check(RUN_STATE_SAVE_VM) || !migration_is_idle()) {
+        error_propagate_prepend(errp, error_copy(reason),
+                                "disallowing migration blocker "
+                                "(migration/snapshot in progress) for: ");
+        return -EBUSY;
     }
 
-    error_propagate_prepend(errp, error_copy(reason),
-                            "disallowing migration blocker "
-                            "(migration in progress) for: ");
-    return -EBUSY;
+    migration_blockers = g_slist_prepend(migration_blockers, reason);
+    return 0;
 }
 
 void migrate_del_blocker(Error *reason)
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:09:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219430.380272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUk-0000vP-4l; Mon, 01 Nov 2021 22:09:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219430.380272; Mon, 01 Nov 2021 22:09:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUk-0000v4-0S; Mon, 01 Nov 2021 22:09:34 +0000
Received: by outflank-mailman (input) for mailman id 219430;
 Mon, 01 Nov 2021 22:09:32 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUi-0000By-9t
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:32 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id b65a47f6-8a9d-4e66-a3c3-9c5627dd4137;
 Mon, 01 Nov 2021 22:09:31 +0000 (UTC)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-470-oaQcOdmsOy23wGt1XVINGQ-1; Mon, 01 Nov 2021 18:09:30 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 n189-20020a1c27c6000000b00322f2e380f2so171636wmn.6
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:30 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id q18sm658847wmc.7.2021.11.01.15.09.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b65a47f6-8a9d-4e66-a3c3-9c5627dd4137
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804571;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=YGFGnLXWsheb/qmVvEQnfSbPAvk7Yei/m0I6VzGvNKw=;
	b=Dti34Bt/3o7YSr0yhjpfNanaxCofwtozWCTM4T7La4Hjfr0q02nOLKBBZdQ/259bpsDnf1
	kgXG+6pXs+BO95W++iTylv03wtdX+AbQO9MqteqCsMY9qQQtdIet9lUl/a27JhC8Uo06GZ
	OKBLF/BHr/C8ZZcBeAUxuOlBQq5UUJQ=
X-MC-Unique: oaQcOdmsOy23wGt1XVINGQ-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=YGFGnLXWsheb/qmVvEQnfSbPAvk7Yei/m0I6VzGvNKw=;
        b=uaE21kGiSJ78Ttprwl//kRtpQoykKiuLyVLzEdo7gyNBB8MNyrSi+vxs4qwkp45us6
         P3IRk1Jkhsil0BjxCNEkmMl1Yl+FZBIowxHFq7Nf/Y/5gpQ+Jpt2aOKHx8oTrltxCTC3
         cueRf9nYQdEneh7kF3sPbbWZIKesqVSW4XJhN0clG49EJY2Vk5kxx6toPPcugoLshOWb
         FBFham2GHTGRcJiIZbFIjF2kV5CdRNNdaUBbw7VzO339+ZW9LgMPuZo1FMS/2HKMSeDk
         LGh8RvXzg3+NsVm35ywaxiw74hH2LkzAIotAcCRfUfj8P0kJkHBvkxv8Focczr4AHM1J
         GzBw==
X-Gm-Message-State: AOAM530QYkHRJEpOp2JGI9sgkfDADx7B6r907MbcA0uMQ+Qj24YcrTdB
	gwJGooqgqF8Du3yxgGnPvAlE45QgJZuWkhIxyiW7WITKPIMA3QZnsZ3Sr6pGeAPgBU5Wg3A9nuq
	X5PLNEDd8PA9pEbqTDXzK2QS3/D4=
X-Received: by 2002:a7b:cb52:: with SMTP id v18mr2063968wmj.10.1635804569185;
        Mon, 01 Nov 2021 15:09:29 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJycZK3+VR9iW1fa+cGg38G9Qb59TRFSiW9klW7eikgdbxXetfRBE2KmtCFvsskBng80n8r0wQ==
X-Received: by 2002:a7b:cb52:: with SMTP id v18mr2063943wmj.10.1635804569026;
        Mon, 01 Nov 2021 15:09:29 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 11/20] memory: Introduce replay_discarded callback for RamDiscardManager
Date: Mon,  1 Nov 2021 23:09:03 +0100
Message-Id: <20211101220912.10039-12-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"

From: David Hildenbrand <david@redhat.com>

Introduce replay_discarded callback similar to our existing
replay_populated callback, to be used my migration code to never migrate
discarded memory.

Acked-by: Peter Xu <peterx@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 include/exec/memory.h | 21 +++++++++++++++++++++
 softmmu/memory.c      | 11 +++++++++++
 2 files changed, 32 insertions(+)

diff --git a/include/exec/memory.h b/include/exec/memory.h
index 04280450c9..20f1b27377 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -550,6 +550,7 @@ static inline void ram_discard_listener_init(RamDiscardListener *rdl,
 }
 
 typedef int (*ReplayRamPopulate)(MemoryRegionSection *section, void *opaque);
+typedef void (*ReplayRamDiscard)(MemoryRegionSection *section, void *opaque);
 
 /*
  * RamDiscardManagerClass:
@@ -638,6 +639,21 @@ struct RamDiscardManagerClass {
                             MemoryRegionSection *section,
                             ReplayRamPopulate replay_fn, void *opaque);
 
+    /**
+     * @replay_discarded:
+     *
+     * Call the #ReplayRamDiscard callback for all discarded parts within the
+     * #MemoryRegionSection via the #RamDiscardManager.
+     *
+     * @rdm: the #RamDiscardManager
+     * @section: the #MemoryRegionSection
+     * @replay_fn: the #ReplayRamDiscard callback
+     * @opaque: pointer to forward to the callback
+     */
+    void (*replay_discarded)(const RamDiscardManager *rdm,
+                             MemoryRegionSection *section,
+                             ReplayRamDiscard replay_fn, void *opaque);
+
     /**
      * @register_listener:
      *
@@ -682,6 +698,11 @@ int ram_discard_manager_replay_populated(const RamDiscardManager *rdm,
                                          ReplayRamPopulate replay_fn,
                                          void *opaque);
 
+void ram_discard_manager_replay_discarded(const RamDiscardManager *rdm,
+                                          MemoryRegionSection *section,
+                                          ReplayRamDiscard replay_fn,
+                                          void *opaque);
+
 void ram_discard_manager_register_listener(RamDiscardManager *rdm,
                                            RamDiscardListener *rdl,
                                            MemoryRegionSection *section);
diff --git a/softmmu/memory.c b/softmmu/memory.c
index f2ac0d2e89..7340e19ff5 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -2081,6 +2081,17 @@ int ram_discard_manager_replay_populated(const RamDiscardManager *rdm,
     return rdmc->replay_populated(rdm, section, replay_fn, opaque);
 }
 
+void ram_discard_manager_replay_discarded(const RamDiscardManager *rdm,
+                                          MemoryRegionSection *section,
+                                          ReplayRamDiscard replay_fn,
+                                          void *opaque)
+{
+    RamDiscardManagerClass *rdmc = RAM_DISCARD_MANAGER_GET_CLASS(rdm);
+
+    g_assert(rdmc->replay_discarded);
+    rdmc->replay_discarded(rdm, section, replay_fn, opaque);
+}
+
 void ram_discard_manager_register_listener(RamDiscardManager *rdm,
                                            RamDiscardListener *rdl,
                                            MemoryRegionSection *section)
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:09:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:09:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219431.380283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUn-0001Nv-NB; Mon, 01 Nov 2021 22:09:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219431.380283; Mon, 01 Nov 2021 22:09:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUn-0001NS-Ha; Mon, 01 Nov 2021 22:09:37 +0000
Received: by outflank-mailman (input) for mailman id 219431;
 Mon, 01 Nov 2021 22:09:35 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUl-0007pr-NU
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:35 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 5e1b86dc-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:22 +0000 (UTC)
Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com
 [209.85.128.72]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-268-AoAgT-_7MfGQZC-dnIEWZg-1; Mon, 01 Nov 2021 18:09:21 -0400
Received: by mail-wm1-f72.google.com with SMTP id
 z138-20020a1c7e90000000b003319c5f9164so170014wmc.7
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:21 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id g5sm709951wmi.2.2021.11.01.15.09.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e1b86dc-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804562;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zC+zxEH+pUhjgORZ5ETFB7/+CsNzKhs7SNRZ+CUF1/0=;
	b=D0ygIqxRSY5Sl+3gvqB/NSQ8h4qa/gD/WFYh5IuLJraAntcO8uP6NH0Ci5xFMQuthBGBxG
	jhiX9O8doGFwN36n5ItLILypvBkTjo4IiIgvqpngg6WrPT2BnaIJHzXnGPq94AMNJEuZnH
	EE5oCAg4SoyUOSUAEj6pyJEFrz9ZajY=
X-MC-Unique: AoAgT-_7MfGQZC-dnIEWZg-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=zC+zxEH+pUhjgORZ5ETFB7/+CsNzKhs7SNRZ+CUF1/0=;
        b=FlQ8VcFtHenZbW4cAs3E7kcZXxvZeKe4uvd30Ba31QHsACbfSgC9KJxAR88af7IYNx
         7VCE4/vGRdjG/KUZ1ccA9xdYCkpyTnEnEfr2ty6Nz0GbS/JYrLODMMp+JPFk46AR2Eey
         AAGT24MJpTLa1fYGfuIH+vpQZjbbWy2CqWnpqEp2iRAoerAwMTCDgPmP7LMxeajj9if/
         c172+0O81/K/Hjqr8Ba4LOQeE3F7NqE2EtuCCJw8K8e+PyytHCwTnbMDRbhBjuor9OsL
         e81EXvW1UQMD2iofJS4H4m0zTZq63K3m2ULP6PIElmbFLBMsOL+MiMuGRf0hbABIqjhU
         IehA==
X-Gm-Message-State: AOAM5302R6sz7a5N0g9amTLf/TqHOHwc+6Ef1q085up/RDST/D/aJMhW
	M0LZDBfU+9VhCdJKobpqGPparbiKaGbRYCZ4iHOVKezL08v/wdVN1qyPCvo7EXn7bhB0hloBok8
	UKpupecJVivHPjuyXKmmDy3+2EQk=
X-Received: by 2002:a5d:46cb:: with SMTP id g11mr24140823wrs.26.1635804559961;
        Mon, 01 Nov 2021 15:09:19 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJwOqU8wWYVaIjRWd2sjZqSUpY8HCgD5Gu3n1DFyO90oDUDzJdkVJM68NrFLzLaF6oWA+5DyZw==
X-Received: by 2002:a5d:46cb:: with SMTP id g11mr24140791wrs.26.1635804559728;
        Mon, 01 Nov 2021 15:09:19 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	=?UTF-8?q?Hyman=20Huang=28=C3=A9=C2=BB=E2=80=9E=C3=A5=E2=80=B9?= =?UTF-8?q?=E2=80=A1=29?= <huangy81@chinatelecom.cn>
Subject: [PULL 04/20] migration/dirtyrate: introduce struct and adjust DirtyRateStat
Date: Mon,  1 Nov 2021 23:08:56 +0100
Message-Id: <20211101220912.10039-5-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>

introduce "DirtyRateMeasureMode" to specify what method should be
used to calculate dirty rate, introduce "DirtyRateVcpu" to store
dirty rate for each vcpu.

use union to store stat data of specific mode

Signed-off-by: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
Message-Id: <661c98c40f40e163aa58334337af8f3ddf41316a.1624040308.git.huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 qapi/migration.json   | 30 +++++++++++++++++++++++++++
 migration/dirtyrate.h | 21 +++++++++++++++----
 migration/dirtyrate.c | 48 +++++++++++++++++++++++++------------------
 3 files changed, 75 insertions(+), 24 deletions(-)

diff --git a/qapi/migration.json b/qapi/migration.json
index 9aa8bc5759..94eece16e1 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -1731,6 +1731,21 @@
 { 'event': 'UNPLUG_PRIMARY',
   'data': { 'device-id': 'str' } }
 
+##
+# @DirtyRateVcpu:
+#
+# Dirty rate of vcpu.
+#
+# @id: vcpu index.
+#
+# @dirty-rate: dirty rate.
+#
+# Since: 6.1
+#
+##
+{ 'struct': 'DirtyRateVcpu',
+  'data': { 'id': 'int', 'dirty-rate': 'int64' } }
+
 ##
 # @DirtyRateStatus:
 #
@@ -1748,6 +1763,21 @@
 { 'enum': 'DirtyRateStatus',
   'data': [ 'unstarted', 'measuring', 'measured'] }
 
+##
+# @DirtyRateMeasureMode:
+#
+# An enumeration of mode of measuring dirtyrate.
+#
+# @page-sampling: calculate dirtyrate by sampling pages.
+#
+# @dirty-ring: calculate dirtyrate by via dirty ring.
+#
+# Since: 6.1
+#
+##
+{ 'enum': 'DirtyRateMeasureMode',
+  'data': ['page-sampling', 'dirty-ring'] }
+
 ##
 # @DirtyRateInfo:
 #
diff --git a/migration/dirtyrate.h b/migration/dirtyrate.h
index e1fd29089e..69d4c5b865 100644
--- a/migration/dirtyrate.h
+++ b/migration/dirtyrate.h
@@ -43,6 +43,7 @@
 struct DirtyRateConfig {
     uint64_t sample_pages_per_gigabytes; /* sample pages per GB */
     int64_t sample_period_seconds; /* time duration between two sampling */
+    DirtyRateMeasureMode mode; /* mode of dirtyrate measurement */
 };
 
 /*
@@ -58,17 +59,29 @@ struct RamblockDirtyInfo {
     uint32_t *hash_result; /* array of hash result for sampled pages */
 };
 
-/*
- * Store calculation statistics for each measure.
- */
-struct DirtyRateStat {
+typedef struct SampleVMStat {
     uint64_t total_dirty_samples; /* total dirty sampled page */
     uint64_t total_sample_count; /* total sampled pages */
     uint64_t total_block_mem_MB; /* size of total sampled pages in MB */
+} SampleVMStat;
+
+typedef struct VcpuStat {
+    int nvcpu; /* number of vcpu */
+    DirtyRateVcpu *rates; /* array of dirty rate for each vcpu */
+} VcpuStat;
+
+/*
+ * Store calculation statistics for each measure.
+ */
+struct DirtyRateStat {
     int64_t dirty_rate; /* dirty rate in MB/s */
     int64_t start_time; /* calculation start time in units of second */
     int64_t calc_time; /* time duration of two sampling in units of second */
     uint64_t sample_pages; /* sample pages per GB */
+    union {
+        SampleVMStat page_sampling;
+        VcpuStat dirty_ring;
+    };
 };
 
 void *get_dirtyrate_thread(void *arg);
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index 320c56ba2c..e0a27a992c 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -88,33 +88,44 @@ static struct DirtyRateInfo *query_dirty_rate_info(void)
     return info;
 }
 
-static void init_dirtyrate_stat(int64_t start_time, int64_t calc_time,
-                                uint64_t sample_pages)
+static void init_dirtyrate_stat(int64_t start_time,
+                                struct DirtyRateConfig config)
 {
-    DirtyStat.total_dirty_samples = 0;
-    DirtyStat.total_sample_count = 0;
-    DirtyStat.total_block_mem_MB = 0;
     DirtyStat.dirty_rate = -1;
     DirtyStat.start_time = start_time;
-    DirtyStat.calc_time = calc_time;
-    DirtyStat.sample_pages = sample_pages;
+    DirtyStat.calc_time = config.sample_period_seconds;
+    DirtyStat.sample_pages = config.sample_pages_per_gigabytes;
+
+    switch (config.mode) {
+    case DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING:
+        DirtyStat.page_sampling.total_dirty_samples = 0;
+        DirtyStat.page_sampling.total_sample_count = 0;
+        DirtyStat.page_sampling.total_block_mem_MB = 0;
+        break;
+    case DIRTY_RATE_MEASURE_MODE_DIRTY_RING:
+        DirtyStat.dirty_ring.nvcpu = -1;
+        DirtyStat.dirty_ring.rates = NULL;
+        break;
+    default:
+        break;
+    }
 }
 
 static void update_dirtyrate_stat(struct RamblockDirtyInfo *info)
 {
-    DirtyStat.total_dirty_samples += info->sample_dirty_count;
-    DirtyStat.total_sample_count += info->sample_pages_count;
+    DirtyStat.page_sampling.total_dirty_samples += info->sample_dirty_count;
+    DirtyStat.page_sampling.total_sample_count += info->sample_pages_count;
     /* size of total pages in MB */
-    DirtyStat.total_block_mem_MB += (info->ramblock_pages *
-                                     TARGET_PAGE_SIZE) >> 20;
+    DirtyStat.page_sampling.total_block_mem_MB += (info->ramblock_pages *
+                                                   TARGET_PAGE_SIZE) >> 20;
 }
 
 static void update_dirtyrate(uint64_t msec)
 {
     uint64_t dirtyrate;
-    uint64_t total_dirty_samples = DirtyStat.total_dirty_samples;
-    uint64_t total_sample_count = DirtyStat.total_sample_count;
-    uint64_t total_block_mem_MB = DirtyStat.total_block_mem_MB;
+    uint64_t total_dirty_samples = DirtyStat.page_sampling.total_dirty_samples;
+    uint64_t total_sample_count = DirtyStat.page_sampling.total_sample_count;
+    uint64_t total_block_mem_MB = DirtyStat.page_sampling.total_block_mem_MB;
 
     dirtyrate = total_dirty_samples * total_block_mem_MB *
                 1000 / (total_sample_count * msec);
@@ -327,7 +338,7 @@ static bool compare_page_hash_info(struct RamblockDirtyInfo *info,
         update_dirtyrate_stat(block_dinfo);
     }
 
-    if (DirtyStat.total_sample_count == 0) {
+    if (DirtyStat.page_sampling.total_sample_count == 0) {
         return false;
     }
 
@@ -372,8 +383,6 @@ void *get_dirtyrate_thread(void *arg)
     struct DirtyRateConfig config = *(struct DirtyRateConfig *)arg;
     int ret;
     int64_t start_time;
-    int64_t calc_time;
-    uint64_t sample_pages;
 
     ret = dirtyrate_set_state(&CalculatingState, DIRTY_RATE_STATUS_UNSTARTED,
                               DIRTY_RATE_STATUS_MEASURING);
@@ -383,9 +392,7 @@ void *get_dirtyrate_thread(void *arg)
     }
 
     start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) / 1000;
-    calc_time = config.sample_period_seconds;
-    sample_pages = config.sample_pages_per_gigabytes;
-    init_dirtyrate_stat(start_time, calc_time, sample_pages);
+    init_dirtyrate_stat(start_time, config);
 
     calculate_dirtyrate(config);
 
@@ -442,6 +449,7 @@ void qmp_calc_dirty_rate(int64_t calc_time, bool has_sample_pages,
 
     config.sample_period_seconds = calc_time;
     config.sample_pages_per_gigabytes = sample_pages;
+    config.mode = DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING;
     qemu_thread_create(&thread, "get_dirtyrate", get_dirtyrate_thread,
                        (void *)&config, QEMU_THREAD_DETACHED);
 }
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:09:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219432.380287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUo-0001UE-7I; Mon, 01 Nov 2021 22:09:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219432.380287; Mon, 01 Nov 2021 22:09:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUn-0001Ss-VB; Mon, 01 Nov 2021 22:09:37 +0000
Received: by outflank-mailman (input) for mailman id 219432;
 Mon, 01 Nov 2021 22:09:37 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUn-0000By-2n
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:37 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id b63a24c9-cad6-4c63-a6e5-34cebeecd0e3;
 Mon, 01 Nov 2021 22:09:35 +0000 (UTC)
Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com
 [209.85.128.70]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-423-uHm58rQjOLmW1Rgc9VYPKg-1; Mon, 01 Nov 2021 18:09:34 -0400
Received: by mail-wm1-f70.google.com with SMTP id
 k25-20020a05600c1c9900b00332f798ba1dso174898wms.4
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:34 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id m35sm1212614wms.2.2021.11.01.15.09.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b63a24c9-cad6-4c63-a6e5-34cebeecd0e3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804575;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=FIlkv3kUVM5FLjDY6YlHGmvpDrEJaIZ60b+7KENr5m4=;
	b=AI7g+aK5oG1K9x5wMvy6YzafdFzn2EC+YuW65LKn4s1BAB/thT31Dy+x+7T5dstdCM+LO3
	0Bm+1STmd8ppX9q41iiXSZKEDUpNBBUvZGHyufKixIdlXt9klDW7srlOXLBs5edkFLAMTF
	0Yckj1i5tJtwDmR4HGDi941NsnZIUyM=
X-MC-Unique: uHm58rQjOLmW1Rgc9VYPKg-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=FIlkv3kUVM5FLjDY6YlHGmvpDrEJaIZ60b+7KENr5m4=;
        b=G/wmcO5YkS4UhvdiRSY9uBnU68dtvtaRGOqSWbovhxCaZ0zVr5zT2FT0iKpjvPhLNE
         TaMV2I+xRTv2rj2DOf7xokOUrCF1Ug0Cg85J8uE/nnkt+i4HXYtvF2+Sf1tGnNiIsw2p
         BOE5bEWN2ERK7WnCGB36lo1sqMMD/uIZDFxpw+NBaT2+OzYPtZPBTO4mgFWKf03nazYE
         /DM01G6U+OGnIDpQMiR9QhPiSGNdHdUgvYrh9QzHZwK8PszxWh5wvHLIHQjLR2qnOqmc
         AcL7fTZeX/7qvgr8K579rGaNVkSHsnmEMrmmCMIA1WQdKdoUEkGOME5tJXK1nClrwwjh
         tKyw==
X-Gm-Message-State: AOAM532A3kdVZ2w5s7POOZeVhrpuAEmd7/pCXq+2RgkCk1H22ZjTBU9c
	Xvmokrc8oiuypsVQBUtZcUXKq0bSkLLSff9m7qx+vBxsLHC5f4qEc6VXgHqB1u9h9D+YX3klu1r
	uUj+JIUjQj+3XHGSAv5R9XblzbJ8=
X-Received: by 2002:a5d:64af:: with SMTP id m15mr12543614wrp.267.1635804573221;
        Mon, 01 Nov 2021 15:09:33 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJzrZQZMxAe13255F4Umt/lsvtqR2XTX2d+P8MJlbDMrZGA3GCpF4nzZPJktxVFBm5Hby8r3Kg==
X-Received: by 2002:a5d:64af:: with SMTP id m15mr12543584wrp.267.1635804573009;
        Mon, 01 Nov 2021 15:09:33 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 14/20] virtio-mem: Drop precopy notifier
Date: Mon,  1 Nov 2021 23:09:06 +0100
Message-Id: <20211101220912.10039-15-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"

From: David Hildenbrand <david@redhat.com>

Migration code now properly handles RAMBlocks which are indirectly managed
by a RamDiscardManager. No need for manual handling via the free page
optimization interface, let's get rid of it.

Acked-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Peter Xu <peterx@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 include/hw/virtio/virtio-mem.h |  3 ---
 hw/virtio/virtio-mem.c         | 34 ----------------------------------
 2 files changed, 37 deletions(-)

diff --git a/include/hw/virtio/virtio-mem.h b/include/hw/virtio/virtio-mem.h
index 9a6e348fa2..a5dd6a493b 100644
--- a/include/hw/virtio/virtio-mem.h
+++ b/include/hw/virtio/virtio-mem.h
@@ -65,9 +65,6 @@ struct VirtIOMEM {
     /* notifiers to notify when "size" changes */
     NotifierList size_change_notifiers;
 
-    /* don't migrate unplugged memory */
-    NotifierWithReturn precopy_notifier;
-
     /* listeners to notify on plug/unplug activity. */
     QLIST_HEAD(, RamDiscardListener) rdl_list;
 };
diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c
index 284096ec5f..d5a578142b 100644
--- a/hw/virtio/virtio-mem.c
+++ b/hw/virtio/virtio-mem.c
@@ -776,7 +776,6 @@ static void virtio_mem_device_realize(DeviceState *dev, Error **errp)
     host_memory_backend_set_mapped(vmem->memdev, true);
     vmstate_register_ram(&vmem->memdev->mr, DEVICE(vmem));
     qemu_register_reset(virtio_mem_system_reset, vmem);
-    precopy_add_notifier(&vmem->precopy_notifier);
 
     /*
      * Set ourselves as RamDiscardManager before the plug handler maps the
@@ -796,7 +795,6 @@ static void virtio_mem_device_unrealize(DeviceState *dev)
      * found via an address space anymore. Unset ourselves.
      */
     memory_region_set_ram_discard_manager(&vmem->memdev->mr, NULL);
-    precopy_remove_notifier(&vmem->precopy_notifier);
     qemu_unregister_reset(virtio_mem_system_reset, vmem);
     vmstate_unregister_ram(&vmem->memdev->mr, DEVICE(vmem));
     host_memory_backend_set_mapped(vmem->memdev, false);
@@ -1089,43 +1087,11 @@ static void virtio_mem_set_block_size(Object *obj, Visitor *v, const char *name,
     vmem->block_size = value;
 }
 
-static int virtio_mem_precopy_exclude_range_cb(const VirtIOMEM *vmem, void *arg,
-                                               uint64_t offset, uint64_t size)
-{
-    void * const host = qemu_ram_get_host_addr(vmem->memdev->mr.ram_block);
-
-    qemu_guest_free_page_hint(host + offset, size);
-    return 0;
-}
-
-static void virtio_mem_precopy_exclude_unplugged(VirtIOMEM *vmem)
-{
-    virtio_mem_for_each_unplugged_range(vmem, NULL,
-                                        virtio_mem_precopy_exclude_range_cb);
-}
-
-static int virtio_mem_precopy_notify(NotifierWithReturn *n, void *data)
-{
-    VirtIOMEM *vmem = container_of(n, VirtIOMEM, precopy_notifier);
-    PrecopyNotifyData *pnd = data;
-
-    switch (pnd->reason) {
-    case PRECOPY_NOTIFY_AFTER_BITMAP_SYNC:
-        virtio_mem_precopy_exclude_unplugged(vmem);
-        break;
-    default:
-        break;
-    }
-
-    return 0;
-}
-
 static void virtio_mem_instance_init(Object *obj)
 {
     VirtIOMEM *vmem = VIRTIO_MEM(obj);
 
     notifier_list_init(&vmem->size_change_notifiers);
-    vmem->precopy_notifier.notify = virtio_mem_precopy_notify;
     QLIST_INIT(&vmem->rdl_list);
 
     object_property_add(obj, VIRTIO_MEM_SIZE_PROP, "size", virtio_mem_get_size,
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:10:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:10:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219433.380305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUr-0002Gy-HD; Mon, 01 Nov 2021 22:09:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219433.380305; Mon, 01 Nov 2021 22:09:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUr-0002G2-BL; Mon, 01 Nov 2021 22:09:41 +0000
Received: by outflank-mailman (input) for mailman id 219433;
 Mon, 01 Nov 2021 22:09:40 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUp-0000By-UC
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:39 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 12fff3de-84c1-43b5-ac79-d4deb7f505b3;
 Mon, 01 Nov 2021 22:09:37 +0000 (UTC)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-503-z-NnCdwWNU-NnYr65GD_NQ-1; Mon, 01 Nov 2021 18:09:35 -0400
Received: by mail-wr1-f71.google.com with SMTP id
 q17-20020adff791000000b00183e734ba48so2151090wrp.8
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:35 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id m34sm702738wms.25.2021.11.01.15.09.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12fff3de-84c1-43b5-ac79-d4deb7f505b3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804577;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=d6xzgvfaRH7wOf37zGfKB0deqCxxsFVowA0eQT7aDxo=;
	b=dUzj27RBJ+S9ESsCcW6hQVNTqFiqkrKZkJSQioxfhPdOOSzaeCl+mTMrwZe9P0unWsxSIt
	3V1VBdC0fiS9axe7BtHO2+vFwdJCttpjR9+yrBI653TQjw955BrvgH3qP3lhHLB/1N4doa
	z602mTZDra6PP4Fog3EwA9bjNCyUsKA=
X-MC-Unique: z-NnCdwWNU-NnYr65GD_NQ-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=d6xzgvfaRH7wOf37zGfKB0deqCxxsFVowA0eQT7aDxo=;
        b=RAWzEAHiO0epY0mIOVkzmoCJ7txXX19l4Qjt76HJBck2p1rPdCRl3AfyzvP2/MpaE1
         NEUQ2n9esW4+8GblI4B/kA4f777DQBzk/XcdLaqRtyONAcsKCvV4EmAe0pfcVBd6LchV
         t15nzoeaeFC2n2z1ajSk8T7Y+KsHFFEQOC80r3zBiM9U1+DicZq9OxmDtlRO4LyeTo1A
         gbR8TZDwsn+G/ErUtxpaC9eQ54i+3zxmYxqw7OTKDrGpp9VvPeMKH2PQpws0piDbYDZy
         H5lyDLQdkXfwVdAeF+EZ2ype3LPC76wB2d4qRKtWityJbBrfOTHhZXC6vZjLAp50WGl+
         vpxA==
X-Gm-Message-State: AOAM530vT11yCaN43M38JBN8lUF6M9eaSxgcEiSKxPySyubp+/U7yBlI
	0BLwhdAOrkx2C0v0gvtBvikFu5I1M2OIUxRcYHMJHoRsVZxhm2uSk6d+4Prc6Mn2DuJiCTYJmaa
	NQdKki9+V+akmma1hzcp/wsKh/xg=
X-Received: by 2002:a7b:c344:: with SMTP id l4mr2036319wmj.64.1635804574701;
        Mon, 01 Nov 2021 15:09:34 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJxo7AHQlwU2kKnhA6BjMO/H58USugS+QmilgTuoi4heYyTz0HB9ONCrlie6M4WQHi9L+TU2pA==
X-Received: by 2002:a7b:c344:: with SMTP id l4mr2036289wmj.64.1635804574465;
        Mon, 01 Nov 2021 15:09:34 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 15/20] migration/postcopy: Handle RAMBlocks with a RamDiscardManager on the destination
Date: Mon,  1 Nov 2021 23:09:07 +0100
Message-Id: <20211101220912.10039-16-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"

From: David Hildenbrand <david@redhat.com>

Currently, when someone (i.e., the VM) accesses discarded parts inside a
RAMBlock with a RamDiscardManager managing the corresponding mapped memory
region, postcopy will request migration of the corresponding page from the
source. The source, however, will never answer, because it refuses to
migrate such pages with undefined content ("logically unplugged"): the
pages are never dirty, and get_queued_page() will consequently skip
processing these postcopy requests.

Especially reading discarded ("logically unplugged") ranges is supposed to
work in some setups (for example with current virtio-mem), although it
barely ever happens: still, not placing a page would currently stall the
VM, as it cannot make forward progress.

Let's check the state via the RamDiscardManager (the state e.g.,
of virtio-mem is migrated during precopy) and avoid sending a request
that will never get answered. Place a fresh zero page instead to keep
the VM working. This is the same behavior that would happen
automatically without userfaultfd being active, when accessing virtual
memory regions without populated pages -- "populate on demand".

For now, there are valid cases (as documented in the virtio-mem spec) where
a VM might read discarded memory; in the future, we will disallow that.
Then, we might want to handle that case differently, e.g., warning the
user that the VM seems to be mis-behaving.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/ram.h          |  1 +
 migration/postcopy-ram.c | 31 +++++++++++++++++++++++++++----
 migration/ram.c          | 21 +++++++++++++++++++++
 3 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/migration/ram.h b/migration/ram.h
index 4833e9fd5b..dda1988f3d 100644
--- a/migration/ram.h
+++ b/migration/ram.h
@@ -72,6 +72,7 @@ void ramblock_recv_bitmap_set_range(RAMBlock *rb, void *host_addr, size_t nr);
 int64_t ramblock_recv_bitmap_send(QEMUFile *file,
                                   const char *block_name);
 int ram_dirty_bitmap_reload(MigrationState *s, RAMBlock *rb);
+bool ramblock_page_is_discarded(RAMBlock *rb, ram_addr_t start);
 
 /* ram cache */
 int colo_init_ram_cache(void);
diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
index 2e9697bdd2..3609ce7e52 100644
--- a/migration/postcopy-ram.c
+++ b/migration/postcopy-ram.c
@@ -671,6 +671,29 @@ int postcopy_wake_shared(struct PostCopyFD *pcfd,
     return ret;
 }
 
+static int postcopy_request_page(MigrationIncomingState *mis, RAMBlock *rb,
+                                 ram_addr_t start, uint64_t haddr)
+{
+    void *aligned = (void *)(uintptr_t)ROUND_DOWN(haddr, qemu_ram_pagesize(rb));
+
+    /*
+     * Discarded pages (via RamDiscardManager) are never migrated. On unlikely
+     * access, place a zeropage, which will also set the relevant bits in the
+     * recv_bitmap accordingly, so we won't try placing a zeropage twice.
+     *
+     * Checking a single bit is sufficient to handle pagesize > TPS as either
+     * all relevant bits are set or not.
+     */
+    assert(QEMU_IS_ALIGNED(start, qemu_ram_pagesize(rb)));
+    if (ramblock_page_is_discarded(rb, start)) {
+        bool received = ramblock_recv_bitmap_test_byte_offset(rb, start);
+
+        return received ? 0 : postcopy_place_page_zero(mis, aligned, rb);
+    }
+
+    return migrate_send_rp_req_pages(mis, rb, start, haddr);
+}
+
 /*
  * Callback from shared fault handlers to ask for a page,
  * the page must be specified by a RAMBlock and an offset in that rb
@@ -690,7 +713,7 @@ int postcopy_request_shared_page(struct PostCopyFD *pcfd, RAMBlock *rb,
                                         qemu_ram_get_idstr(rb), rb_offset);
         return postcopy_wake_shared(pcfd, client_addr, rb);
     }
-    migrate_send_rp_req_pages(mis, rb, aligned_rbo, client_addr);
+    postcopy_request_page(mis, rb, aligned_rbo, client_addr);
     return 0;
 }
 
@@ -984,8 +1007,8 @@ retry:
              * Send the request to the source - we want to request one
              * of our host page sizes (which is >= TPS)
              */
-            ret = migrate_send_rp_req_pages(mis, rb, rb_offset,
-                                            msg.arg.pagefault.address);
+            ret = postcopy_request_page(mis, rb, rb_offset,
+                                        msg.arg.pagefault.address);
             if (ret) {
                 /* May be network failure, try to wait for recovery */
                 if (ret == -EIO && postcopy_pause_fault_thread(mis)) {
@@ -993,7 +1016,7 @@ retry:
                     goto retry;
                 } else {
                     /* This is a unavoidable fault */
-                    error_report("%s: migrate_send_rp_req_pages() get %d",
+                    error_report("%s: postcopy_request_page() get %d",
                                  __func__, ret);
                     break;
                 }
diff --git a/migration/ram.c b/migration/ram.c
index e8c06f207c..4f629de7d0 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -912,6 +912,27 @@ static uint64_t ramblock_dirty_bitmap_clear_discarded_pages(RAMBlock *rb)
     return cleared_bits;
 }
 
+/*
+ * Check if a host-page aligned page falls into a discarded range as managed by
+ * a RamDiscardManager responsible for the mapped memory region of the RAMBlock.
+ *
+ * Note: The result is only stable while migrating (precopy/postcopy).
+ */
+bool ramblock_page_is_discarded(RAMBlock *rb, ram_addr_t start)
+{
+    if (rb->mr && memory_region_has_ram_discard_manager(rb->mr)) {
+        RamDiscardManager *rdm = memory_region_get_ram_discard_manager(rb->mr);
+        MemoryRegionSection section = {
+            .mr = rb->mr,
+            .offset_within_region = start,
+            .size = int128_make64(qemu_ram_pagesize(rb)),
+        };
+
+        return !ram_discard_manager_is_populated(rdm, &section);
+    }
+    return false;
+}
+
 /* Called with RCU critical section */
 static void ramblock_sync_dirty_bitmap(RAMState *rs, RAMBlock *rb)
 {
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:10:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:10:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219434.380311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUs-0002OY-B5; Mon, 01 Nov 2021 22:09:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219434.380311; Mon, 01 Nov 2021 22:09:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUr-0002Mm-Vm; Mon, 01 Nov 2021 22:09:41 +0000
Received: by outflank-mailman (input) for mailman id 219434;
 Mon, 01 Nov 2021 22:09:40 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUq-0007pr-Na
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:40 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 5e1b86de-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:23 +0000 (UTC)
Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com
 [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-48-e9dEX5IDPS6KcGtwNBm01Q-1; Mon, 01 Nov 2021 18:09:22 -0400
Received: by mail-wm1-f71.google.com with SMTP id
 a186-20020a1c7fc3000000b00332f1a308e7so179935wmd.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:22 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id 126sm621666wmz.28.2021.11.01.15.09.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e1b86de-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804563;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=YZFYZZ5zEoiyMjFkwTDaD6Kc9ekYQT7iiG9Yos9LPnM=;
	b=Qn9qhXotRnwBbwLmjzCtMMto2U5LxwpkSjjGEVeEWEhPSiND5Mlpnn54ojKwbNKtPi3ACN
	xEnHVfw73opWa9JppxShtcD/DIEW1/Z/ilkWdtOeObrfD2Q0FkBgaUQkW5MgebV0lDpBui
	9W8fQnjW6mDUXIJ1RXJBJ2FHhfh6kDk=
X-MC-Unique: e9dEX5IDPS6KcGtwNBm01Q-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=YZFYZZ5zEoiyMjFkwTDaD6Kc9ekYQT7iiG9Yos9LPnM=;
        b=Z6vcBSVFQgk9s+Qdgfdlde2St/yIkhZ3posiWHl/pYnd3Fl3llDwqHAdjVAYGDCqAy
         0GKHlfbtpJgcdCOTC3ALaMYvrxZI3VqTWUWK8TwCtDTZZkofPnhfh4BjeoOvYZSIoUhC
         E8Hl+SaRhKJWUC+/Dw0g2Ym8ApbIFeKFdCbCxP03vS+xiiK6wqhWoHCnK+QfUaiC3OLE
         rXlXmP1OVTBjkbH+gICYn6Hhh9h3p3DkylvuDuJU3Nzha5ri1+7Qd7LbovlGEkEmmGzq
         0AtTntX3S+rfo6/sM1oYWBM5uS5X2SM5VRqiU6rMyv1DuUQ3okKuLL5RvRJE0xkBbcRq
         MoUA==
X-Gm-Message-State: AOAM532cEzFwFLLxd5s1SXANW5l5wPeYFSk91IdVosrjurdmDuhkmDpz
	G32buH7aj+Bbmzo0VqmUrj//D3zIeonZe3HCdFoaZ3bY1gml8Sq6tA6fvJP0eOj/z0vBdYUFPyY
	c6keWnjtSqDapJJqQck7e8FoCdQM=
X-Received: by 2002:a1c:e90a:: with SMTP id q10mr2002273wmc.108.1635804561243;
        Mon, 01 Nov 2021 15:09:21 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJxa8vqOhjEPyDeA8zcYXC8Gdajcc+LdPsZwKy493tocqfCdmTr3IvnHpn4ZYtHQE6XeYkTmSQ==
X-Received: by 2002:a1c:e90a:: with SMTP id q10mr2002245wmc.108.1635804561097;
        Mon, 01 Nov 2021 15:09:21 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	=?UTF-8?q?Hyman=20Huang=28=C3=A9=C2=BB=E2=80=9E=C3=A5=E2=80=B9?= =?UTF-8?q?=E2=80=A1=29?= <huangy81@chinatelecom.cn>
Subject: [PULL 05/20] migration/dirtyrate: adjust order of registering thread
Date: Mon,  1 Nov 2021 23:08:57 +0100
Message-Id: <20211101220912.10039-6-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>

registering get_dirtyrate thread in advance so that both
page-sampling and dirty-ring mode can be covered.

Signed-off-by: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
Message-Id: <d7727581a8e86d4a42fc3eacf7f310419b9ebf7e.1624040308.git.huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/dirtyrate.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index e0a27a992c..a9bdd60034 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -352,7 +352,6 @@ static void calculate_dirtyrate(struct DirtyRateConfig config)
     int64_t msec = 0;
     int64_t initial_time;
 
-    rcu_register_thread();
     rcu_read_lock();
     initial_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
     if (!record_ramblock_hash_info(&block_dinfo, config, &block_count)) {
@@ -375,7 +374,6 @@ static void calculate_dirtyrate(struct DirtyRateConfig config)
 out:
     rcu_read_unlock();
     free_ramblock_dirty_info(block_dinfo, block_count);
-    rcu_unregister_thread();
 }
 
 void *get_dirtyrate_thread(void *arg)
@@ -383,6 +381,7 @@ void *get_dirtyrate_thread(void *arg)
     struct DirtyRateConfig config = *(struct DirtyRateConfig *)arg;
     int ret;
     int64_t start_time;
+    rcu_register_thread();
 
     ret = dirtyrate_set_state(&CalculatingState, DIRTY_RATE_STATUS_UNSTARTED,
                               DIRTY_RATE_STATUS_MEASURING);
@@ -401,6 +400,8 @@ void *get_dirtyrate_thread(void *arg)
     if (ret == -1) {
         error_report("change dirtyrate state failed.");
     }
+
+    rcu_unregister_thread();
     return NULL;
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:10:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:10:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219440.380327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUx-0003RM-Ik; Mon, 01 Nov 2021 22:09:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219440.380327; Mon, 01 Nov 2021 22:09:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfUx-0003R9-Dv; Mon, 01 Nov 2021 22:09:47 +0000
Received: by outflank-mailman (input) for mailman id 219440;
 Mon, 01 Nov 2021 22:09:45 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfUv-0007pr-Ny
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:45 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 5fdced30-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:26 +0000 (UTC)
Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com
 [209.85.221.72]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-210--p4wCkVRNFiI7wBM2qGXGQ-1; Mon, 01 Nov 2021 18:09:23 -0400
Received: by mail-wr1-f72.google.com with SMTP id
 p17-20020adff211000000b0017b902a7701so3974679wro.19
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:23 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id n15sm637153wmq.38.2021.11.01.15.09.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5fdced30-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804566;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=UH6qFcOvOngPka/Fe9lzsDNdrqD8p0gmRL7v9NgF7Ts=;
	b=U+vt9jf4jS/HiIfTMU0r9zWFdythg50gtGQSjozlCZzWEI6wtMtj7+Xt1m5IZfj+g8Luob
	XU2CUH3ouytVFrW0wLPjGujJNqcbhDTMOJET9qZgANrChSQTOOJC0yNJdgz7oKa7Reg0ji
	wpsM2LEAOgt2NDcrr4HIXsft3rjRNfU=
X-MC-Unique: -p4wCkVRNFiI7wBM2qGXGQ-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=UH6qFcOvOngPka/Fe9lzsDNdrqD8p0gmRL7v9NgF7Ts=;
        b=okvxTuVmYhnI4rLf8HhIpYHBGE3nvBm4QgBga8AAiHghp0KQSwMU9mk1rApgddm9Tf
         9Bc8qWEAE/4cpH+342uNiWcuSyLfvCVPGnF63b3AOwVZvdjoRmHxGwGLw61gBzb9jxXC
         WGXsl4rWeRTmz7pIXQbKrBHHn1DE18pG7nq04UlzwbCdOC47l7WV+Bvorgo294aproOf
         edydQDvqjLLXNNT8K8GqAywI3scupP0mpUglqbJnXZAuEEytJhzccYkyS1P+A20WoB3T
         is9tk7iVjqwhGE6vciQ9XNxUbAWZuAHcIICLVK7rkysftiAM7cC9j9tSpv3w4ZJ+jkhC
         kUGg==
X-Gm-Message-State: AOAM533q5prTnaEGRhDnSop/M2ppJqHXBoXe0y6uSOZpkRtWgFc+vDgy
	4fe5gJfXygBkxm8bOH65WBPBS6Q6OzW+R22sNgxJA+RXFaO/h1wuPXEkEvNfxVpBbOLetOEo6Y0
	hCWwz4KTQAJNQ1zF52KXjX568KYg=
X-Received: by 2002:adf:d20e:: with SMTP id j14mr33297701wrh.220.1635804562476;
        Mon, 01 Nov 2021 15:09:22 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJxkffbvXrtYSeZN/zNmfpHm8cIwzDDYcEpAf91jdU0NQr69iLSppRQMuLbVQCsCLOwkm5qiNw==
X-Received: by 2002:adf:d20e:: with SMTP id j14mr33297679wrh.220.1635804562331;
        Mon, 01 Nov 2021 15:09:22 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	=?UTF-8?q?Hyman=20Huang=28=C3=A9=C2=BB=E2=80=9E=C3=A5=E2=80=B9?= =?UTF-8?q?=E2=80=A1=29?= <huangy81@chinatelecom.cn>
Subject: [PULL 06/20] migration/dirtyrate: move init step of calculation to main thread
Date: Mon,  1 Nov 2021 23:08:58 +0100
Message-Id: <20211101220912.10039-7-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>

since main thread may "query dirty rate" at any time, it's better
to move init step into main thead so that synchronization overhead
between "main" and "get_dirtyrate" can be reduced.

Signed-off-by: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
Message-Id: <109f8077518ed2f13068e3bfb10e625e964780f1.1624040308.git.huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/dirtyrate.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index a9bdd60034..b8f61cc650 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -380,7 +380,6 @@ void *get_dirtyrate_thread(void *arg)
 {
     struct DirtyRateConfig config = *(struct DirtyRateConfig *)arg;
     int ret;
-    int64_t start_time;
     rcu_register_thread();
 
     ret = dirtyrate_set_state(&CalculatingState, DIRTY_RATE_STATUS_UNSTARTED,
@@ -390,9 +389,6 @@ void *get_dirtyrate_thread(void *arg)
         return NULL;
     }
 
-    start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) / 1000;
-    init_dirtyrate_stat(start_time, config);
-
     calculate_dirtyrate(config);
 
     ret = dirtyrate_set_state(&CalculatingState, DIRTY_RATE_STATUS_MEASURING,
@@ -411,6 +407,7 @@ void qmp_calc_dirty_rate(int64_t calc_time, bool has_sample_pages,
     static struct DirtyRateConfig config;
     QemuThread thread;
     int ret;
+    int64_t start_time;
 
     /*
      * If the dirty rate is already being measured, don't attempt to start.
@@ -451,6 +448,10 @@ void qmp_calc_dirty_rate(int64_t calc_time, bool has_sample_pages,
     config.sample_period_seconds = calc_time;
     config.sample_pages_per_gigabytes = sample_pages;
     config.mode = DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING;
+
+    start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) / 1000;
+    init_dirtyrate_stat(start_time, config);
+
     qemu_thread_create(&thread, "get_dirtyrate", get_dirtyrate_thread,
                        (void *)&config, QEMU_THREAD_DETACHED);
 }
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:10:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:10:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219443.380338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfV2-0004Fc-VO; Mon, 01 Nov 2021 22:09:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219443.380338; Mon, 01 Nov 2021 22:09:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfV2-0004FI-Pi; Mon, 01 Nov 2021 22:09:52 +0000
Received: by outflank-mailman (input) for mailman id 219443;
 Mon, 01 Nov 2021 22:09:50 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfV0-0007pr-OB
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:50 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 60926c77-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:26 +0000 (UTC)
Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com
 [209.85.221.70]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-341-WAnzE5y4NEGh-JKe0P4VcQ-1; Mon, 01 Nov 2021 18:09:25 -0400
Received: by mail-wr1-f70.google.com with SMTP id
 q7-20020adff507000000b0017d160d35a8so3583002wro.4
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:25 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id w17sm9942681wrp.79.2021.11.01.15.09.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60926c77-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804566;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=4qSeheYxsTSzOnjbgBDH9X0OK6DFyKGFiBbRXcZR8yQ=;
	b=Wa8G9rQHzG+j0Ls5iB0NfThAZ5jw+bCy7t9DeeOUJCiD7jVKmyUNmkL/5uazmqt6BK1eEm
	i6BCKdVUbyUziuV3m1Br1SO29+4sktow15EgLKb4mIvBjvBWtNiYW/2haze0DJp5aOQchU
	A45cwl9DrVDjimNST3eCRtkcGGotiXg=
X-MC-Unique: WAnzE5y4NEGh-JKe0P4VcQ-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=4qSeheYxsTSzOnjbgBDH9X0OK6DFyKGFiBbRXcZR8yQ=;
        b=cLzfqovrBcDyxDYg5sEIBLPspIcHWj6Y9A3dj3Vj54diaLUXkkydtPJrFQFdDEq4nj
         OvmQOhnczrh34gkf0m34jymRPpbpzSiR9Z6QpnCvfZnmKbp63YWmCdzPwtIRS/8BesE8
         FYnsRHzSi2SH6vYZZQvOMjV/GvZ/bQupGbVDpEmwpQgOd6K+Z6DpErireCMFK9mMgTT+
         t1sXokiCV+5DsnxpFNqEQjfRateyd1FblutSFAEcHLr2DDYuRDWhDdiqdvTAKpYvX8xm
         gUJeQerGgGu2fP8TOUFLUoRO1tKSMYt07yBlOgyO6l0OOkVHI9cFXiApvOGu9NHtYEB0
         nGJA==
X-Gm-Message-State: AOAM533UwqRpHE940hrmtbxpjOnFnK2PNG12Kfc7flYoDbB/tTNGMQLA
	lU5jGCQYezbjmvJHnCbNkEuS1Is+KyhdCjzXjyBTjFwZGs8rVeNEbkvAZXm/SKyHBSoBrKocQKr
	N2vDCfsyRns4zS+6BFRpccujh/sA=
X-Received: by 2002:adf:df89:: with SMTP id z9mr4325031wrl.336.1635804563898;
        Mon, 01 Nov 2021 15:09:23 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJx3hGujhhWr5tIpME+wxcFQbUd76XID7qBwn2gPvXB9kRPFZ8nE35rreXch30k76QltMlSD3g==
X-Received: by 2002:adf:df89:: with SMTP id z9mr4325008wrl.336.1635804563683;
        Mon, 01 Nov 2021 15:09:23 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	=?UTF-8?q?Hyman=20Huang=28=C3=A9=C2=BB=E2=80=9E=C3=A5=E2=80=B9?= =?UTF-8?q?=E2=80=A1=29?= <huangy81@chinatelecom.cn>
Subject: [PULL 07/20] migration/dirtyrate: implement dirty-ring dirtyrate calculation
Date: Mon,  1 Nov 2021 23:08:59 +0100
Message-Id: <20211101220912.10039-8-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>

use dirty ring feature to implement dirtyrate calculation.

introduce mode option in qmp calc_dirty_rate to specify what
method should be used when calculating dirtyrate, either
page-sampling or dirty-ring should be passed.

introduce "dirty_ring:-r" option in hmp calc_dirty_rate to
indicate dirty ring method should be used for calculation.

Signed-off-by: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
Message-Id: <7db445109bd18125ce8ec86816d14f6ab5de6a7d.1624040308.git.huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 qapi/migration.json    |  16 +++-
 migration/dirtyrate.c  | 208 +++++++++++++++++++++++++++++++++++++++--
 hmp-commands.hx        |   7 +-
 migration/trace-events |   2 +
 4 files changed, 218 insertions(+), 15 deletions(-)

diff --git a/qapi/migration.json b/qapi/migration.json
index 94eece16e1..fae4bc608c 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -1796,6 +1796,12 @@
 # @sample-pages: page count per GB for sample dirty pages
 #                the default value is 512 (since 6.1)
 #
+# @mode: mode containing method of calculate dirtyrate includes
+#        'page-sampling' and 'dirty-ring' (Since 6.1)
+#
+# @vcpu-dirty-rate: dirtyrate for each vcpu if dirty-ring
+#                   mode specified (Since 6.1)
+#
 # Since: 5.2
 #
 ##
@@ -1804,7 +1810,9 @@
            'status': 'DirtyRateStatus',
            'start-time': 'int64',
            'calc-time': 'int64',
-           'sample-pages': 'uint64'} }
+           'sample-pages': 'uint64',
+           'mode': 'DirtyRateMeasureMode',
+           '*vcpu-dirty-rate': [ 'DirtyRateVcpu' ] } }
 
 ##
 # @calc-dirty-rate:
@@ -1816,6 +1824,9 @@
 # @sample-pages: page count per GB for sample dirty pages
 #                the default value is 512 (since 6.1)
 #
+# @mode: mechanism of calculating dirtyrate includes
+#        'page-sampling' and 'dirty-ring' (Since 6.1)
+#
 # Since: 5.2
 #
 # Example:
@@ -1824,7 +1835,8 @@
 #
 ##
 { 'command': 'calc-dirty-rate', 'data': {'calc-time': 'int64',
-                                         '*sample-pages': 'int'} }
+                                         '*sample-pages': 'int',
+                                         '*mode': 'DirtyRateMeasureMode'} }
 
 ##
 # @query-dirty-rate:
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index b8f61cc650..f92c4b498e 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -16,6 +16,7 @@
 #include "cpu.h"
 #include "exec/ramblock.h"
 #include "qemu/rcu_queue.h"
+#include "qemu/main-loop.h"
 #include "qapi/qapi-commands-migration.h"
 #include "ram.h"
 #include "trace.h"
@@ -23,9 +24,19 @@
 #include "monitor/hmp.h"
 #include "monitor/monitor.h"
 #include "qapi/qmp/qdict.h"
+#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
+#include "exec/memory.h"
+
+typedef struct DirtyPageRecord {
+    uint64_t start_pages;
+    uint64_t end_pages;
+} DirtyPageRecord;
 
 static int CalculatingState = DIRTY_RATE_STATUS_UNSTARTED;
 static struct DirtyRateStat DirtyStat;
+static DirtyRateMeasureMode dirtyrate_mode =
+                DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING;
 
 static int64_t set_sample_page_period(int64_t msec, int64_t initial_time)
 {
@@ -70,18 +81,37 @@ static int dirtyrate_set_state(int *state, int old_state, int new_state)
 
 static struct DirtyRateInfo *query_dirty_rate_info(void)
 {
+    int i;
     int64_t dirty_rate = DirtyStat.dirty_rate;
     struct DirtyRateInfo *info = g_malloc0(sizeof(DirtyRateInfo));
-
-    if (qatomic_read(&CalculatingState) == DIRTY_RATE_STATUS_MEASURED) {
-        info->has_dirty_rate = true;
-        info->dirty_rate = dirty_rate;
-    }
+    DirtyRateVcpuList *head = NULL, **tail = &head;
 
     info->status = CalculatingState;
     info->start_time = DirtyStat.start_time;
     info->calc_time = DirtyStat.calc_time;
     info->sample_pages = DirtyStat.sample_pages;
+    info->mode = dirtyrate_mode;
+
+    if (qatomic_read(&CalculatingState) == DIRTY_RATE_STATUS_MEASURED) {
+        info->has_dirty_rate = true;
+        info->dirty_rate = dirty_rate;
+
+        if (dirtyrate_mode == DIRTY_RATE_MEASURE_MODE_DIRTY_RING) {
+            /*
+             * set sample_pages with 0 to indicate page sampling
+             * isn't enabled
+             **/
+            info->sample_pages = 0;
+            info->has_vcpu_dirty_rate = true;
+            for (i = 0; i < DirtyStat.dirty_ring.nvcpu; i++) {
+                DirtyRateVcpu *rate = g_malloc0(sizeof(DirtyRateVcpu));
+                rate->id = DirtyStat.dirty_ring.rates[i].id;
+                rate->dirty_rate = DirtyStat.dirty_ring.rates[i].dirty_rate;
+                QAPI_LIST_APPEND(tail, rate);
+            }
+            info->vcpu_dirty_rate = head;
+        }
+    }
 
     trace_query_dirty_rate_info(DirtyRateStatus_str(CalculatingState));
 
@@ -111,6 +141,15 @@ static void init_dirtyrate_stat(int64_t start_time,
     }
 }
 
+static void cleanup_dirtyrate_stat(struct DirtyRateConfig config)
+{
+    /* last calc-dirty-rate qmp use dirty ring mode */
+    if (dirtyrate_mode == DIRTY_RATE_MEASURE_MODE_DIRTY_RING) {
+        free(DirtyStat.dirty_ring.rates);
+        DirtyStat.dirty_ring.rates = NULL;
+    }
+}
+
 static void update_dirtyrate_stat(struct RamblockDirtyInfo *info)
 {
     DirtyStat.page_sampling.total_dirty_samples += info->sample_dirty_count;
@@ -345,7 +384,97 @@ static bool compare_page_hash_info(struct RamblockDirtyInfo *info,
     return true;
 }
 
-static void calculate_dirtyrate(struct DirtyRateConfig config)
+static inline void record_dirtypages(DirtyPageRecord *dirty_pages,
+                                     CPUState *cpu, bool start)
+{
+    if (start) {
+        dirty_pages[cpu->cpu_index].start_pages = cpu->dirty_pages;
+    } else {
+        dirty_pages[cpu->cpu_index].end_pages = cpu->dirty_pages;
+    }
+}
+
+static void dirtyrate_global_dirty_log_start(void)
+{
+    qemu_mutex_lock_iothread();
+    memory_global_dirty_log_start(GLOBAL_DIRTY_DIRTY_RATE);
+    qemu_mutex_unlock_iothread();
+}
+
+static void dirtyrate_global_dirty_log_stop(void)
+{
+    qemu_mutex_lock_iothread();
+    memory_global_dirty_log_sync();
+    memory_global_dirty_log_stop(GLOBAL_DIRTY_DIRTY_RATE);
+    qemu_mutex_unlock_iothread();
+}
+
+static int64_t do_calculate_dirtyrate_vcpu(DirtyPageRecord dirty_pages)
+{
+    uint64_t memory_size_MB;
+    int64_t time_s;
+    uint64_t increased_dirty_pages =
+        dirty_pages.end_pages - dirty_pages.start_pages;
+
+    memory_size_MB = (increased_dirty_pages * TARGET_PAGE_SIZE) >> 20;
+    time_s = DirtyStat.calc_time;
+
+    return memory_size_MB / time_s;
+}
+
+static void calculate_dirtyrate_dirty_ring(struct DirtyRateConfig config)
+{
+    CPUState *cpu;
+    int64_t msec = 0;
+    int64_t start_time;
+    uint64_t dirtyrate = 0;
+    uint64_t dirtyrate_sum = 0;
+    DirtyPageRecord *dirty_pages;
+    int nvcpu = 0;
+    int i = 0;
+
+    CPU_FOREACH(cpu) {
+        nvcpu++;
+    }
+
+    dirty_pages = malloc(sizeof(*dirty_pages) * nvcpu);
+
+    DirtyStat.dirty_ring.nvcpu = nvcpu;
+    DirtyStat.dirty_ring.rates = malloc(sizeof(DirtyRateVcpu) * nvcpu);
+
+    dirtyrate_global_dirty_log_start();
+
+    CPU_FOREACH(cpu) {
+        record_dirtypages(dirty_pages, cpu, true);
+    }
+
+    start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
+    DirtyStat.start_time = start_time / 1000;
+
+    msec = config.sample_period_seconds * 1000;
+    msec = set_sample_page_period(msec, start_time);
+    DirtyStat.calc_time = msec / 1000;
+
+    dirtyrate_global_dirty_log_stop();
+
+    CPU_FOREACH(cpu) {
+        record_dirtypages(dirty_pages, cpu, false);
+    }
+
+    for (i = 0; i < DirtyStat.dirty_ring.nvcpu; i++) {
+        dirtyrate = do_calculate_dirtyrate_vcpu(dirty_pages[i]);
+        trace_dirtyrate_do_calculate_vcpu(i, dirtyrate);
+
+        DirtyStat.dirty_ring.rates[i].id = i;
+        DirtyStat.dirty_ring.rates[i].dirty_rate = dirtyrate;
+        dirtyrate_sum += dirtyrate;
+    }
+
+    DirtyStat.dirty_rate = dirtyrate_sum;
+    free(dirty_pages);
+}
+
+static void calculate_dirtyrate_sample_vm(struct DirtyRateConfig config)
 {
     struct RamblockDirtyInfo *block_dinfo = NULL;
     int block_count = 0;
@@ -376,6 +505,17 @@ out:
     free_ramblock_dirty_info(block_dinfo, block_count);
 }
 
+static void calculate_dirtyrate(struct DirtyRateConfig config)
+{
+    if (config.mode == DIRTY_RATE_MEASURE_MODE_DIRTY_RING) {
+        calculate_dirtyrate_dirty_ring(config);
+    } else {
+        calculate_dirtyrate_sample_vm(config);
+    }
+
+    trace_dirtyrate_calculate(DirtyStat.dirty_rate);
+}
+
 void *get_dirtyrate_thread(void *arg)
 {
     struct DirtyRateConfig config = *(struct DirtyRateConfig *)arg;
@@ -401,8 +541,12 @@ void *get_dirtyrate_thread(void *arg)
     return NULL;
 }
 
-void qmp_calc_dirty_rate(int64_t calc_time, bool has_sample_pages,
-                         int64_t sample_pages, Error **errp)
+void qmp_calc_dirty_rate(int64_t calc_time,
+                         bool has_sample_pages,
+                         int64_t sample_pages,
+                         bool has_mode,
+                         DirtyRateMeasureMode mode,
+                         Error **errp)
 {
     static struct DirtyRateConfig config;
     QemuThread thread;
@@ -424,6 +568,15 @@ void qmp_calc_dirty_rate(int64_t calc_time, bool has_sample_pages,
         return;
     }
 
+    if (!has_mode) {
+        mode =  DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING;
+    }
+
+    if (has_sample_pages && mode == DIRTY_RATE_MEASURE_MODE_DIRTY_RING) {
+        error_setg(errp, "either sample-pages or dirty-ring can be specified.");
+        return;
+    }
+
     if (has_sample_pages) {
         if (!is_sample_pages_valid(sample_pages)) {
             error_setg(errp, "sample-pages is out of range[%d, %d].",
@@ -435,6 +588,16 @@ void qmp_calc_dirty_rate(int64_t calc_time, bool has_sample_pages,
         sample_pages = DIRTYRATE_DEFAULT_SAMPLE_PAGES;
     }
 
+    /*
+     * dirty ring mode only works when kvm dirty ring is enabled.
+     */
+    if ((mode == DIRTY_RATE_MEASURE_MODE_DIRTY_RING) &&
+        !kvm_dirty_ring_enabled()) {
+        error_setg(errp, "dirty ring is disabled, use sample-pages method "
+                         "or remeasure later.");
+        return;
+    }
+
     /*
      * Init calculation state as unstarted.
      */
@@ -447,7 +610,15 @@ void qmp_calc_dirty_rate(int64_t calc_time, bool has_sample_pages,
 
     config.sample_period_seconds = calc_time;
     config.sample_pages_per_gigabytes = sample_pages;
-    config.mode = DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING;
+    config.mode = mode;
+
+    cleanup_dirtyrate_stat(config);
+
+    /*
+     * update dirty rate mode so that we can figure out what mode has
+     * been used in last calculation
+     **/
+    dirtyrate_mode = mode;
 
     start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) / 1000;
     init_dirtyrate_stat(start_time, config);
@@ -473,12 +644,24 @@ void hmp_info_dirty_rate(Monitor *mon, const QDict *qdict)
                    info->sample_pages);
     monitor_printf(mon, "Period: %"PRIi64" (sec)\n",
                    info->calc_time);
+    monitor_printf(mon, "Mode: %s\n",
+                   DirtyRateMeasureMode_str(info->mode));
     monitor_printf(mon, "Dirty rate: ");
     if (info->has_dirty_rate) {
         monitor_printf(mon, "%"PRIi64" (MB/s)\n", info->dirty_rate);
+        if (info->has_vcpu_dirty_rate) {
+            DirtyRateVcpuList *rate, *head = info->vcpu_dirty_rate;
+            for (rate = head; rate != NULL; rate = rate->next) {
+                monitor_printf(mon, "vcpu[%"PRIi64"], Dirty rate: %"PRIi64
+                               " (MB/s)\n", rate->value->id,
+                               rate->value->dirty_rate);
+            }
+        }
     } else {
         monitor_printf(mon, "(not ready)\n");
     }
+
+    qapi_free_DirtyRateVcpuList(info->vcpu_dirty_rate);
     g_free(info);
 }
 
@@ -487,6 +670,10 @@ void hmp_calc_dirty_rate(Monitor *mon, const QDict *qdict)
     int64_t sec = qdict_get_try_int(qdict, "second", 0);
     int64_t sample_pages = qdict_get_try_int(qdict, "sample_pages_per_GB", -1);
     bool has_sample_pages = (sample_pages != -1);
+    bool dirty_ring = qdict_get_try_bool(qdict, "dirty_ring", false);
+    DirtyRateMeasureMode mode =
+        (dirty_ring ? DIRTY_RATE_MEASURE_MODE_DIRTY_RING :
+         DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING);
     Error *err = NULL;
 
     if (!sec) {
@@ -494,7 +681,8 @@ void hmp_calc_dirty_rate(Monitor *mon, const QDict *qdict)
         return;
     }
 
-    qmp_calc_dirty_rate(sec, has_sample_pages, sample_pages, &err);
+    qmp_calc_dirty_rate(sec, has_sample_pages, sample_pages, true,
+                        mode, &err);
     if (err) {
         hmp_handle_error(mon, err);
         return;
diff --git a/hmp-commands.hx b/hmp-commands.hx
index cf723c69ac..b6d47bd03f 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1737,8 +1737,9 @@ ERST
 
     {
         .name       = "calc_dirty_rate",
-        .args_type  = "second:l,sample_pages_per_GB:l?",
-        .params     = "second [sample_pages_per_GB]",
-        .help       = "start a round of guest dirty rate measurement",
+        .args_type  = "dirty_ring:-r,second:l,sample_pages_per_GB:l?",
+        .params     = "[-r] second [sample_pages_per_GB]",
+        .help       = "start a round of guest dirty rate measurement (using -d to"
+                      "\n\t\t\t specify dirty ring as the method of calculation)",
         .cmd        = hmp_calc_dirty_rate,
     },
diff --git a/migration/trace-events b/migration/trace-events
index a8ae163707..b48d873b8a 100644
--- a/migration/trace-events
+++ b/migration/trace-events
@@ -333,6 +333,8 @@ get_ramblock_vfn_hash(const char *idstr, uint64_t vfn, uint32_t crc) "ramblock n
 calc_page_dirty_rate(const char *idstr, uint32_t new_crc, uint32_t old_crc) "ramblock name: %s, new crc: %" PRIu32 ", old crc: %" PRIu32
 skip_sample_ramblock(const char *idstr, uint64_t ramblock_size) "ramblock name: %s, ramblock size: %" PRIu64
 find_page_matched(const char *idstr) "ramblock %s addr or size changed"
+dirtyrate_calculate(int64_t dirtyrate) "dirty rate: %" PRIi64 " MB/s"
+dirtyrate_do_calculate_vcpu(int idx, uint64_t rate) "vcpu[%d]: %"PRIu64 " MB/s"
 
 # block.c
 migration_block_init_shared(const char *blk_device_name) "Start migration for %s with shared base image"
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:10:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:10:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219449.380349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfV6-0004v7-MQ; Mon, 01 Nov 2021 22:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219449.380349; Mon, 01 Nov 2021 22:09:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfV6-0004uf-HU; Mon, 01 Nov 2021 22:09:56 +0000
Received: by outflank-mailman (input) for mailman id 219449;
 Mon, 01 Nov 2021 22:09:55 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfV5-0007pr-OE
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:55 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 61ecb4d2-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:28 +0000 (UTC)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-561-1I9Q6WROPouj75ijb7n91g-1; Mon, 01 Nov 2021 18:09:27 -0400
Received: by mail-wr1-f71.google.com with SMTP id
 j12-20020adf910c000000b0015e4260febdso6748669wrj.20
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:27 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id u16sm620998wmc.21.2021.11.01.15.09.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61ecb4d2-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804568;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=xgA8Pg4pioYTYcQYYaUz2yN31K5Rcv8HQjmwYm8rweY=;
	b=P3PUolCz4j4ymEn/0u53vtsuTYUJ2crPH6lHWspESqFkkPYiBJ2ZFimpYFTl3CEJfed1b3
	eBQubuPdQ83yo3v71Fs0IpFQi52Qjmd4csSJO0cCyI+Cz6QL9ngRmga2MadZqlwu73xsUP
	DVjT94/OzHHw/2r3QDvTeIbtgrP7Aus=
X-MC-Unique: 1I9Q6WROPouj75ijb7n91g-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=xgA8Pg4pioYTYcQYYaUz2yN31K5Rcv8HQjmwYm8rweY=;
        b=ojdnY+mxsT4AP/6/20bLnTMobtYctrO/o2KlhCgGYHw3n4WAfS6v1AsCX6yHe4Stn5
         mAv/M2znq/JEzHqZ0gyT11aPFMppJDWHHaDXGaEz9FC/qe+BxcLKZr/U9hd9hy9OefRW
         9DVvi7fAprkXwQsWwH/7gDtgz/CxGEb64daX9Fb3f8uPJJ0zkU34LwUasClm8/EPN4W7
         NOscsXCEq6rul1bJcM63zQH2NkGIK8Bs7LQmid4ZtwAvyGf+z42ik8OVgOym9DiT/r4h
         tCvg79beY5m3/1yl2xU0v0YT2fL1UR0sP/VxlceTH2VMRZcGRcIbkztdL59k7OJe6QiL
         tZyw==
X-Gm-Message-State: AOAM530ZR2IS499UrAZDWvvD4gn94SOPuxLxLEJb9+nd5xtooeLll2xJ
	aVudnqflFA5NSCGDNGwZlqUPw1uZElpcbrf/Q5BPOhSdAhfTB40byWCHTTiOAp6XI0ApCdgfA2b
	vGN0pf/FjFwXkLwlPUVHDRE4hhqQ=
X-Received: by 2002:adf:c70b:: with SMTP id k11mr40015414wrg.154.1635804566477;
        Mon, 01 Nov 2021 15:09:26 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJzUrxZpRrNYU7lx4z1CYr7OY2cCtGorBz1ob+LkkuKyWgUku8HgKdZfOfBOrsPY7hoBqfW6RQ==
X-Received: by 2002:adf:c70b:: with SMTP id k11mr40015380wrg.154.1635804566314;
        Mon, 01 Nov 2021 15:09:26 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 09/20] migration: Add migrate_add_blocker_internal()
Date: Mon,  1 Nov 2021 23:09:01 +0100
Message-Id: <20211101220912.10039-10-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Peter Xu <peterx@redhat.com>

An internal version that removes -only-migratable implications.  It can be used
for temporary migration blockers like dump-guest-memory.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 include/migration/blocker.h | 16 ++++++++++++++++
 migration/migration.c       | 21 +++++++++++++--------
 2 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/include/migration/blocker.h b/include/migration/blocker.h
index acd27018e9..9cebe2ba06 100644
--- a/include/migration/blocker.h
+++ b/include/migration/blocker.h
@@ -25,6 +25,22 @@
  */
 int migrate_add_blocker(Error *reason, Error **errp);
 
+/**
+ * @migrate_add_blocker_internal - prevent migration from proceeding without
+ *                                 only-migrate implications
+ *
+ * @reason - an error to be returned whenever migration is attempted
+ *
+ * @errp - [out] The reason (if any) we cannot block migration right now.
+ *
+ * @returns - 0 on success, -EBUSY on failure, with errp set.
+ *
+ * Some of the migration blockers can be temporary (e.g., for a few seconds),
+ * so it shouldn't need to conflict with "-only-migratable".  For those cases,
+ * we can call this function rather than @migrate_add_blocker().
+ */
+int migrate_add_blocker_internal(Error *reason, Error **errp);
+
 /**
  * @migrate_del_blocker - remove a blocking error from migration
  *
diff --git a/migration/migration.c b/migration/migration.c
index e81e473f5a..e1c0082530 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2049,15 +2049,8 @@ void migrate_init(MigrationState *s)
     s->threshold_size = 0;
 }
 
-int migrate_add_blocker(Error *reason, Error **errp)
+int migrate_add_blocker_internal(Error *reason, Error **errp)
 {
-    if (only_migratable) {
-        error_propagate_prepend(errp, error_copy(reason),
-                                "disallowing migration blocker "
-                                "(--only-migratable) for: ");
-        return -EACCES;
-    }
-
     /* Snapshots are similar to migrations, so check RUN_STATE_SAVE_VM too. */
     if (runstate_check(RUN_STATE_SAVE_VM) || !migration_is_idle()) {
         error_propagate_prepend(errp, error_copy(reason),
@@ -2070,6 +2063,18 @@ int migrate_add_blocker(Error *reason, Error **errp)
     return 0;
 }
 
+int migrate_add_blocker(Error *reason, Error **errp)
+{
+    if (only_migratable) {
+        error_propagate_prepend(errp, error_copy(reason),
+                                "disallowing migration blocker "
+                                "(--only-migratable) for: ");
+        return -EACCES;
+    }
+
+    return migrate_add_blocker_internal(reason, errp);
+}
+
 void migrate_del_blocker(Error *reason)
 {
     migration_blockers = g_slist_remove(migration_blockers, reason);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:10:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:10:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219452.380360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfVC-0005fr-3o; Mon, 01 Nov 2021 22:10:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219452.380360; Mon, 01 Nov 2021 22:10:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfVB-0005f5-Ul; Mon, 01 Nov 2021 22:10:01 +0000
Received: by outflank-mailman (input) for mailman id 219452;
 Mon, 01 Nov 2021 22:10:00 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfV9-0000By-Uo
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:09:59 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 6b2d1a7e-0af0-4180-a813-9d980d389361;
 Mon, 01 Nov 2021 22:09:44 +0000 (UTC)
Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com
 [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-565-xcyTHfv5PXuvlLEvakV6YA-1; Mon, 01 Nov 2021 18:09:41 -0400
Received: by mail-wr1-f69.google.com with SMTP id
 f1-20020a5d64c1000000b001611832aefeso6799441wri.17
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:40 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id d24sm610262wmb.35.2021.11.01.15.09.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b2d1a7e-0af0-4180-a813-9d980d389361
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804584;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2DiI4EfnW7YWT1ASaakXUWvRZyN7+/5k2450FBy0sI4=;
	b=Xb0g7SXKN3gMQwrDbVTtqyQ9hWaE7hszEykvM35dqycnip/y5ibYBxuXLVIBAdWw6q+N2U
	ozD2VZb7xovP6qa1DsYYZ95Itzd4WUuSQYQ5thWAZ6ikfdb2nkLHOJjwkToK9FFLcRHDxC
	eTdjFTllwP1GqPbVN76tcWgEfVsg+DM=
X-MC-Unique: xcyTHfv5PXuvlLEvakV6YA-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=2DiI4EfnW7YWT1ASaakXUWvRZyN7+/5k2450FBy0sI4=;
        b=wLnKDiV/fsXXFUTG2E/Xp/4LF9YCf7lziCLSUwsB8Ulr1daUseUDIQrd4BaEPP7N01
         AUFalc258gry9oEXQ2tN7vPS5k3eJ2TPH1XZv8MQz29D1VAu93kyKIjB5rnidWbNehBQ
         yHXLubUfglBXMNHyU2qWIw374AfDpfkiFcJEC8y7j6d/95gvPFX3khp+JtF6w+oVNaBL
         2FoEKMxK8wHDr5zhzxVug4md1NBCMcNNc9U2mYmT/WJD+WoViFNMtFpVTArk8kAWc7pR
         fBLdSLBFR8H7ZUnmmB4N1OsVAuVFE1b9szsBEl2BPjKRBm/4G2iIhEUcTgmIXglDDbwh
         PuFg==
X-Gm-Message-State: AOAM533D9ySq9D3QqPciMgb6zz4PLpoacHR75L52ePfr8OhkDhzVAdsq
	1hN8QONEMvsJnMIphOvsuYWgG8QVE8j0WUh7s9fLIhHpXWKoVbgNXXtQY7MuHB/nuDCKS169LrC
	cO0jbrK3TdF/xHUh6+afMUH7MBg8=
X-Received: by 2002:adf:e292:: with SMTP id v18mr39964931wri.369.1635804579986;
        Mon, 01 Nov 2021 15:09:39 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJysID67lQG9xljT2Fw7myH50fBYiqoMMqtw2ZP9fgHwBDYxBz5RqDHeu2EAgEpnNBhOmOcEEQ==
X-Received: by 2002:adf:e292:: with SMTP id v18mr39964906wri.369.1635804579845;
        Mon, 01 Nov 2021 15:09:39 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	=?UTF-8?q?Hyman=20Huang=28=E9=BB=84=E5=8B=87=29?= <huangy81@chinatelecom.cn>
Subject: [PULL 19/20] memory: introduce total_dirty_pages to stat dirty pages
Date: Mon,  1 Nov 2021 23:09:11 +0100
Message-Id: <20211101220912.10039-20-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>

introduce global var total_dirty_pages to stat dirty pages
along with memory_global_dirty_log_sync.

Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 include/exec/ram_addr.h | 9 +++++++++
 migration/dirtyrate.c   | 7 +++++++
 2 files changed, 16 insertions(+)

diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
index 45c913264a..64fb936c7c 100644
--- a/include/exec/ram_addr.h
+++ b/include/exec/ram_addr.h
@@ -26,6 +26,8 @@
 #include "exec/ramlist.h"
 #include "exec/ramblock.h"
 
+extern uint64_t total_dirty_pages;
+
 /**
  * clear_bmap_size: calculate clear bitmap size
  *
@@ -373,6 +375,10 @@ static inline void cpu_physical_memory_set_dirty_lebitmap(unsigned long *bitmap,
                         qatomic_or(
                                 &blocks[DIRTY_MEMORY_MIGRATION][idx][offset],
                                 temp);
+                        if (unlikely(
+                            global_dirty_tracking & GLOBAL_DIRTY_DIRTY_RATE)) {
+                            total_dirty_pages += ctpopl(temp);
+                        }
                     }
 
                     if (tcg_enabled()) {
@@ -403,6 +409,9 @@ static inline void cpu_physical_memory_set_dirty_lebitmap(unsigned long *bitmap,
         for (i = 0; i < len; i++) {
             if (bitmap[i] != 0) {
                 c = leul_to_cpu(bitmap[i]);
+                if (unlikely(global_dirty_tracking & GLOBAL_DIRTY_DIRTY_RATE)) {
+                    total_dirty_pages += ctpopl(c);
+                }
                 do {
                     j = ctzl(c);
                     c &= ~(1ul << j);
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index f92c4b498e..17b3d2cbb5 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -28,6 +28,13 @@
 #include "sysemu/runstate.h"
 #include "exec/memory.h"
 
+/*
+ * total_dirty_pages is procted by BQL and is used
+ * to stat dirty pages during the period of two
+ * memory_global_dirty_log_sync
+ */
+uint64_t total_dirty_pages;
+
 typedef struct DirtyPageRecord {
     uint64_t start_pages;
     uint64_t end_pages;
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:10:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:10:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219453.380367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfVC-0005ls-SW; Mon, 01 Nov 2021 22:10:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219453.380367; Mon, 01 Nov 2021 22:10:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfVC-0005kM-BN; Mon, 01 Nov 2021 22:10:02 +0000
Received: by outflank-mailman (input) for mailman id 219453;
 Mon, 01 Nov 2021 22:10:00 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfVA-0007pr-OS
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:10:00 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 62e4f7fa-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:30 +0000 (UTC)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-32-4X10BvvaO2m5-Rv-dpJHvA-1; Mon, 01 Nov 2021 18:09:29 -0400
Received: by mail-wr1-f71.google.com with SMTP id
 p17-20020adff211000000b0017b902a7701so3974740wro.19
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:29 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id o17sm685550wmq.11.2021.11.01.15.09.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62e4f7fa-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804570;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Eb45pt+rx+z3d/QNqQ0ka/rPHoe06plBoXsL9wFgC3A=;
	b=XtbMSMGTQZvMco2cqRvB6sMNp2kXWpDgubhBSI/o3ct+u0hRuPelBE3jucBTFg1jjr/Why
	kLLoLyLGU6A1J7RIr1r7Aw5eUqFBllDRjog5qJtscdAYk0Pcq6YnQA8umpeYe5Vf8y85l5
	1KXLUFCxkvc4P7/ZD47YRfIPjKRP2l4=
X-MC-Unique: 4X10BvvaO2m5-Rv-dpJHvA-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=Eb45pt+rx+z3d/QNqQ0ka/rPHoe06plBoXsL9wFgC3A=;
        b=aYJn7Rxn/khwZxZTbJUD7I1kCMlJq+CtZe9BOtRhaP8thZJ0p2EjCV3/jTbEmBJA3e
         tb8IoaKUSx51lTjNX3B0IPxsU1MO8jIazFgdZIRF2PHP2hIuAR2Tem2xGHYuBIDT6pbQ
         TROZoOhnws655eeOIMm/PCcxbPzo39l1jFec1GVkvaykac8HjWluGWFTFMharn1tsBZv
         O0s9BMJxg0C5efXs+Lv9w41zWRXEaIwFEAR3camGtHcmND+36ChB8hpxDeV6awP9z713
         4n93ZblyM8L4QN7zyZ6nTA+57tM12TGyLch/EdpA/GINOHFrugzwi4hvf/SFEK0kL+Ve
         8JVQ==
X-Gm-Message-State: AOAM530xlU421PpnKjlZxWHr8bcUhNHN6eh22vOhMS9IcXiqm7VZx5gd
	GSCGrBl0eZD5RqH+spYncmNLWXG7gQqlKvhntPpgljVAxiDsiEqFBvKNG553eCc2X8x+F1E4fvQ
	Y9kVIp4fpp79p/8VT4svmj3KyAGg=
X-Received: by 2002:adf:e387:: with SMTP id e7mr30508149wrm.412.1635804567993;
        Mon, 01 Nov 2021 15:09:27 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJwTDcj674kEGI9dl471cqGKZI5Q3j6okD5bAskecUMcRegbtpEz5VGFYHzxKsv8krfzx5uJsg==
X-Received: by 2002:adf:e387:: with SMTP id e7mr30508114wrm.412.1635804567768;
        Mon, 01 Nov 2021 15:09:27 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 10/20] dump-guest-memory: Block live migration
Date: Mon,  1 Nov 2021 23:09:02 +0100
Message-Id: <20211101220912.10039-11-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Peter Xu <peterx@redhat.com>

Both dump-guest-memory and live migration caches vm state at the beginning.
Either of them entering the other one will cause race on the vm state, and even
more severe on that (please refer to the crash report in the bug link).

Let's block live migration in dump-guest-memory, and that'll also block
dump-guest-memory if it detected that we're during a live migration.

Side note: migrate_del_blocker() can be called even if the blocker is not
inserted yet, so it's safe to unconditionally delete that blocker in
dump_cleanup (g_slist_remove allows no-entry-found case).

Suggested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1996609
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 dump/dump.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/dump/dump.c b/dump/dump.c
index ab625909f3..662d0a62cd 100644
--- a/dump/dump.c
+++ b/dump/dump.c
@@ -29,6 +29,7 @@
 #include "qemu/error-report.h"
 #include "qemu/main-loop.h"
 #include "hw/misc/vmcoreinfo.h"
+#include "migration/blocker.h"
 
 #ifdef TARGET_X86_64
 #include "win_dump.h"
@@ -47,6 +48,8 @@
 
 #define MAX_GUEST_NOTE_SIZE (1 << 20) /* 1MB should be enough */
 
+static Error *dump_migration_blocker;
+
 #define ELF_NOTE_SIZE(hdr_size, name_size, desc_size)   \
     ((DIV_ROUND_UP((hdr_size), 4) +                     \
       DIV_ROUND_UP((name_size), 4) +                    \
@@ -101,6 +104,7 @@ static int dump_cleanup(DumpState *s)
             qemu_mutex_unlock_iothread();
         }
     }
+    migrate_del_blocker(dump_migration_blocker);
 
     return 0;
 }
@@ -2005,6 +2009,21 @@ void qmp_dump_guest_memory(bool paging, const char *file,
         return;
     }
 
+    if (!dump_migration_blocker) {
+        error_setg(&dump_migration_blocker,
+                   "Live migration disabled: dump-guest-memory in progress");
+    }
+
+    /*
+     * Allows even for -only-migratable, but forbid migration during the
+     * process of dump guest memory.
+     */
+    if (migrate_add_blocker_internal(dump_migration_blocker, errp)) {
+        /* Remember to release the fd before passing it over to dump state */
+        close(fd);
+        return;
+    }
+
     s = &dump_state_global;
     dump_state_prepare(s);
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:10:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:10:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219456.380382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfVG-0006lZ-Uj; Mon, 01 Nov 2021 22:10:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219456.380382; Mon, 01 Nov 2021 22:10:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfVG-0006kq-On; Mon, 01 Nov 2021 22:10:06 +0000
Received: by outflank-mailman (input) for mailman id 219456;
 Mon, 01 Nov 2021 22:10:05 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfVF-0007pr-Ov
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:10:05 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 645c45ac-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:32 +0000 (UTC)
Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com
 [209.85.221.70]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-275-P0W4ND1lNVGjo1WzmCnSTw-1; Mon, 01 Nov 2021 18:09:31 -0400
Received: by mail-wr1-f70.google.com with SMTP id
 q5-20020a5d5745000000b00178abb72486so4821993wrw.9
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:31 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id f133sm655275wmf.31.2021.11.01.15.09.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 645c45ac-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804572;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=fSoWVIR9hKZoxnk9uhtu16nhbmo8V4KFxeuBGBhsQZ8=;
	b=g5IBJUWP2yKXZE+swNWoz9MBOkji3KR974PW0xf/9MkNpokE954S+yRF1gFvJn24o2UjMg
	cOTc1HmEfYynv9itQrGPCQIndoC8P+9NdqxrJrShp3vqt87/CsaN/qU5L0yhXJ2ZiCunuC
	c6BgNTrRAE0hI1SCCRbvY39s/D5q2sY=
X-MC-Unique: P0W4ND1lNVGjo1WzmCnSTw-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=fSoWVIR9hKZoxnk9uhtu16nhbmo8V4KFxeuBGBhsQZ8=;
        b=gWdYUV47bsH1KQjLMDUsUHb1ERdqL6wRrjCaF93Y/MOSW4N8kM5jbzRSi7os/UyfcU
         9e/aUhMhIicOKZRJAJFVWtecytkAGH6AzMwAsStdM5+A11/J5c8Ekpa/hA9LVbjZTuEc
         CdJrWVQgO9mYRidHhqfaVc7SMWK22JCRmocQIGOye0EKpV0HRSSqfcgA0n6h11UnyiF1
         CVG6dK6ybsMMEzA8lZ2OYbtXwri6J3maxso/GbN9zu/90fZTeFBvi51IkDa7cS6H3KYM
         3KLpSb/1UaQlPgLp21x3CAmBKafziyWHKwbV9toGgaxhqyA3/r+lXxcM8NrBn+YnS+/c
         yM6A==
X-Gm-Message-State: AOAM532vRyj2GQ2aOSfZdDDl0iw6Dr44XtAWBj/DgT17i4PCvnmS8JCh
	X2hBDuFjiwGmvFJoPOW0wqICL5e0FEX1JiimJlJP+VXcNLi2zzhfK3KRRSKx3bJrYm5Z6lzk88p
	uVN8YgD7n3Fnli6mz6JERwQHY9u8=
X-Received: by 2002:a1c:ed1a:: with SMTP id l26mr1960964wmh.19.1635804570445;
        Mon, 01 Nov 2021 15:09:30 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJwu/QxnhEuNymsrQqTg8NiGiNIcnxGmbn+stcw6LipoHUBGhkcJBUusifbHj5C9b6NJX/heIQ==
X-Received: by 2002:a1c:ed1a:: with SMTP id l26mr1960945wmh.19.1635804570300;
        Mon, 01 Nov 2021 15:09:30 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 12/20] virtio-mem: Implement replay_discarded RamDiscardManager callback
Date: Mon,  1 Nov 2021 23:09:04 +0100
Message-Id: <20211101220912.10039-13-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"

From: David Hildenbrand <david@redhat.com>

Implement it similar to the replay_populated callback.

Acked-by: Peter Xu <peterx@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/virtio/virtio-mem.c | 58 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c
index df91e454b2..284096ec5f 100644
--- a/hw/virtio/virtio-mem.c
+++ b/hw/virtio/virtio-mem.c
@@ -228,6 +228,38 @@ static int virtio_mem_for_each_plugged_section(const VirtIOMEM *vmem,
     return ret;
 }
 
+static int virtio_mem_for_each_unplugged_section(const VirtIOMEM *vmem,
+                                                 MemoryRegionSection *s,
+                                                 void *arg,
+                                                 virtio_mem_section_cb cb)
+{
+    unsigned long first_bit, last_bit;
+    uint64_t offset, size;
+    int ret = 0;
+
+    first_bit = s->offset_within_region / vmem->bitmap_size;
+    first_bit = find_next_zero_bit(vmem->bitmap, vmem->bitmap_size, first_bit);
+    while (first_bit < vmem->bitmap_size) {
+        MemoryRegionSection tmp = *s;
+
+        offset = first_bit * vmem->block_size;
+        last_bit = find_next_bit(vmem->bitmap, vmem->bitmap_size,
+                                 first_bit + 1) - 1;
+        size = (last_bit - first_bit + 1) * vmem->block_size;
+
+        if (!virito_mem_intersect_memory_section(&tmp, offset, size)) {
+            break;
+        }
+        ret = cb(&tmp, arg);
+        if (ret) {
+            break;
+        }
+        first_bit = find_next_zero_bit(vmem->bitmap, vmem->bitmap_size,
+                                       last_bit + 2);
+    }
+    return ret;
+}
+
 static int virtio_mem_notify_populate_cb(MemoryRegionSection *s, void *arg)
 {
     RamDiscardListener *rdl = arg;
@@ -1170,6 +1202,31 @@ static int virtio_mem_rdm_replay_populated(const RamDiscardManager *rdm,
                                             virtio_mem_rdm_replay_populated_cb);
 }
 
+static int virtio_mem_rdm_replay_discarded_cb(MemoryRegionSection *s,
+                                              void *arg)
+{
+    struct VirtIOMEMReplayData *data = arg;
+
+    ((ReplayRamDiscard)data->fn)(s, data->opaque);
+    return 0;
+}
+
+static void virtio_mem_rdm_replay_discarded(const RamDiscardManager *rdm,
+                                            MemoryRegionSection *s,
+                                            ReplayRamDiscard replay_fn,
+                                            void *opaque)
+{
+    const VirtIOMEM *vmem = VIRTIO_MEM(rdm);
+    struct VirtIOMEMReplayData data = {
+        .fn = replay_fn,
+        .opaque = opaque,
+    };
+
+    g_assert(s->mr == &vmem->memdev->mr);
+    virtio_mem_for_each_unplugged_section(vmem, s, &data,
+                                          virtio_mem_rdm_replay_discarded_cb);
+}
+
 static void virtio_mem_rdm_register_listener(RamDiscardManager *rdm,
                                              RamDiscardListener *rdl,
                                              MemoryRegionSection *s)
@@ -1234,6 +1291,7 @@ static void virtio_mem_class_init(ObjectClass *klass, void *data)
     rdmc->get_min_granularity = virtio_mem_rdm_get_min_granularity;
     rdmc->is_populated = virtio_mem_rdm_is_populated;
     rdmc->replay_populated = virtio_mem_rdm_replay_populated;
+    rdmc->replay_discarded = virtio_mem_rdm_replay_discarded;
     rdmc->register_listener = virtio_mem_rdm_register_listener;
     rdmc->unregister_listener = virtio_mem_rdm_unregister_listener;
 }
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:18:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:18:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219504.380393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfcn-0001cX-Vb; Mon, 01 Nov 2021 22:17:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219504.380393; Mon, 01 Nov 2021 22:17:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfcn-0001cI-SU; Mon, 01 Nov 2021 22:17:53 +0000
Received: by outflank-mailman (input) for mailman id 219504;
 Mon, 01 Nov 2021 22:17:53 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfVZ-0007pr-PS
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:10:25 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 6a7a852a-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:43 +0000 (UTC)
Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com
 [209.85.128.72]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-72-FrnHLC8ePXqrWehZRaew_Q-1; Mon, 01 Nov 2021 18:09:39 -0400
Received: by mail-wm1-f72.google.com with SMTP id
 n189-20020a1c27c6000000b00322f2e380f2so171817wmn.6
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:39 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id o1sm7544314wrn.63.2021.11.01.15.09.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a7a852a-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804582;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=unY7TGVSo3gAzWqEez72wIx+FCQs3PCeVqZ11RSh+wo=;
	b=BqpdqJx8R6ZUlb/1e1CYAiu81KBUJStj/gJa8TEKOD9AikhgzxSqKAAglpVCkZmGelpAj3
	y2InS+pefppXvFUKuGnphDjtyqI6titDhvpvnuMJ3fM3/Vq/UoBZTmHUJqZgWUjZCMjXyY
	rf/Dr/ucfC9vpYpsDCbhC8KQF4d8738=
X-MC-Unique: FrnHLC8ePXqrWehZRaew_Q-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=unY7TGVSo3gAzWqEez72wIx+FCQs3PCeVqZ11RSh+wo=;
        b=TvXDRfwsyfIQza+DohYkq1wcBjZdyKrK9WcPZswoGH1YmX922DMBlqUeCZAJacqrnv
         4sPIIMJvXT5lHilvKbuiZS5OCyj0z77nKsU1u4DUFNGQikH0RBhZ9otuvXs257eptiOq
         ipyBPdb+lFsozd2uMUiSXmV+8qWHDrFRLBXs5G7fBcTxiyArTYB1V9atArUBxq/gzJpj
         EP6YfnhPCM6/fQNN+BoKPztQpOoyCYmBAgGj/iGBGaAZhh0Ys70FDnUj+vkz7nvtbH07
         tIOfucHaZVste3OERSkh0NujOQTtfwLyrNREX13jjmU3YS6skgm7joJUyyJzhuawXj38
         UXFA==
X-Gm-Message-State: AOAM533HaUBquDZ0f6GLTWnnNyubmEgXyCCjaCWjzR5ys2uShQpvwakg
	fkOo2ACLMbF71uTcxo+fuJH6g6R/EMqwPLCywWh4X/s8iksq3q+KdLoXFMB9U3W8zc4QnuGjgdm
	QMhCYthfPz5O1f9hZ6vji5o1H1CI=
X-Received: by 2002:a5d:568c:: with SMTP id f12mr30759729wrv.240.1635804578728;
        Mon, 01 Nov 2021 15:09:38 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJxNZg4k6DRhmX852xk77R95Xufg4HlBWhkQxhZujNVoSP0nUJe8lhm/J27V+ocUqFpop+mG2g==
X-Received: by 2002:a5d:568c:: with SMTP id f12mr30759714wrv.240.1635804578506;
        Mon, 01 Nov 2021 15:09:38 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 18/20] migration/ram: Handle RAMBlocks with a RamDiscardManager on background snapshots
Date: Mon,  1 Nov 2021 23:09:10 +0100
Message-Id: <20211101220912.10039-19-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"

From: David Hildenbrand <david@redhat.com>

We already don't ever migrate memory that corresponds to discarded ranges
as managed by a RamDiscardManager responsible for the mapped memory region
of the RAMBlock.

virtio-mem uses this mechanism to logically unplug parts of a RAMBlock.
Right now, we still populate zeropages for the whole usable part of the
RAMBlock, which is undesired because:

1. Even populating the shared zeropage will result in memory getting
   consumed for page tables.
2. Memory backends without a shared zeropage (like hugetlbfs and shmem)
   will populate an actual, fresh page, resulting in an unintended
   memory consumption.

Discarded ("logically unplugged") parts have to remain discarded. As
these pages are never part of the migration stream, there is no need to
track modifications via userfaultfd WP reliably for these parts.

Further, any writes to these ranges by the VM are invalid and the
behavior is undefined.

Note that Linux only supports userfaultfd WP on private anonymous memory
for now, which usually results in the shared zeropage getting populated.
The issue will become more relevant once userfaultfd WP supports shmem
and hugetlb.

Acked-by: Peter Xu <peterx@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/ram.c | 38 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 36 insertions(+), 2 deletions(-)

diff --git a/migration/ram.c b/migration/ram.c
index 92c7b788ae..680a5158aa 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -1656,6 +1656,17 @@ static inline void populate_read_range(RAMBlock *block, ram_addr_t offset,
     }
 }
 
+static inline int populate_read_section(MemoryRegionSection *section,
+                                        void *opaque)
+{
+    const hwaddr size = int128_get64(section->size);
+    hwaddr offset = section->offset_within_region;
+    RAMBlock *block = section->mr->ram_block;
+
+    populate_read_range(block, offset, size);
+    return 0;
+}
+
 /*
  * ram_block_populate_read: preallocate page tables and populate pages in the
  *   RAM block by reading a byte of each page.
@@ -1665,9 +1676,32 @@ static inline void populate_read_range(RAMBlock *block, ram_addr_t offset,
  *
  * @block: RAM block to populate
  */
-static void ram_block_populate_read(RAMBlock *block)
+static void ram_block_populate_read(RAMBlock *rb)
 {
-    populate_read_range(block, 0, block->used_length);
+    /*
+     * Skip populating all pages that fall into a discarded range as managed by
+     * a RamDiscardManager responsible for the mapped memory region of the
+     * RAMBlock. Such discarded ("logically unplugged") parts of a RAMBlock
+     * must not get populated automatically. We don't have to track
+     * modifications via userfaultfd WP reliably, because these pages will
+     * not be part of the migration stream either way -- see
+     * ramblock_dirty_bitmap_exclude_discarded_pages().
+     *
+     * Note: The result is only stable while migrating (precopy/postcopy).
+     */
+    if (rb->mr && memory_region_has_ram_discard_manager(rb->mr)) {
+        RamDiscardManager *rdm = memory_region_get_ram_discard_manager(rb->mr);
+        MemoryRegionSection section = {
+            .mr = rb->mr,
+            .offset_within_region = 0,
+            .size = rb->mr->size,
+        };
+
+        ram_discard_manager_replay_populated(rdm, &section,
+                                             populate_read_section, NULL);
+    } else {
+        populate_read_range(rb, 0, rb->used_length);
+    }
 }
 
 /*
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:18:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:18:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219519.380404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfdB-0002Ax-9r; Mon, 01 Nov 2021 22:18:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219519.380404; Mon, 01 Nov 2021 22:18:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfdB-0002An-5y; Mon, 01 Nov 2021 22:18:17 +0000
Received: by outflank-mailman (input) for mailman id 219519;
 Mon, 01 Nov 2021 22:18:15 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfVK-0007pr-P1
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:10:10 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 665c7387-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:36 +0000 (UTC)
Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com
 [209.85.128.70]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-242-570G33pbNI-j4P4ohZf5Fg-1; Mon, 01 Nov 2021 18:09:33 -0400
Received: by mail-wm1-f70.google.com with SMTP id
 b133-20020a1c808b000000b0032cdd691994so184408wmd.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:32 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id h16sm9219637wrm.27.2021.11.01.15.09.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 665c7387-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804576;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=UAlWjWoEMOZw+xZxC0WiKGp4PGVHqFH6WrrAJ6wsQRw=;
	b=ND5+484L/VIHEwuXA49K43iuygLlkhXpQF+UGCow1qLrWqETFQTAVltvR2UUjS975973sL
	fCLKwvtj34ISb1XpWFUKd7L/8cMi0FWr8ZjeRe6xFUbxsx7+QMt+Izf2fP9lmNeUG9V1i4
	r+P3pxeNqkZnkA6DxTV7JSYNouM51e0=
X-MC-Unique: 570G33pbNI-j4P4ohZf5Fg-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=UAlWjWoEMOZw+xZxC0WiKGp4PGVHqFH6WrrAJ6wsQRw=;
        b=pF1PMhciodxBPNrHVw/IBSqU+Vd9ldq1mbJ8BJ03TYh8e3pyCArHdUjb6lcd3IfLPG
         WsjcnvYZD8Gc/OwqOjy/ztHzsgT/UcEc+RAPsKA5SuXZcoHktUaCQDPDqb+7sG8va6GJ
         D/SWEZsadPvujElD0RgwWcHu4FVTZhrPc4hJru8syOdsA2Elns4MLiUDmneoV8nbURqN
         t8Vm+x+60mScLK33/0NlZJTmk4GJs3eFN+0I86uRY2gXAVPo5CPtG2q7w6gDWWax5aHR
         DakbwSaELUvU7g2duxdDxMLk4Voa6QokhkRLFANz7i2FZ0PC7DfNq5qwVjNBB6IlXykR
         uR/g==
X-Gm-Message-State: AOAM533FJdba+q7gNQLpSb0TlDkC56xatPUnkFlVw5VTxr+lAbCA060b
	5Q5FZhjH6JKsgNvIsNnrXn1ZdILylZQ2h1Uo+fN0wD2tl2ikZnAdQQNma1E6LleYRLBkqsrLF3/
	DbhVAH45XUYJCrstlUYrNHOqkOmY=
X-Received: by 2002:a5d:6151:: with SMTP id y17mr33450599wrt.275.1635804571734;
        Mon, 01 Nov 2021 15:09:31 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJwtxtTYPSTZydDNAKjX/wG8BXfEAdBg4wUEf4pzVhU0q8NeY6R4dn/NUoY2vV1PgKczmSzIOA==
X-Received: by 2002:a5d:6151:: with SMTP id y17mr33450569wrt.275.1635804571558;
        Mon, 01 Nov 2021 15:09:31 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 13/20] migration/ram: Handle RAMBlocks with a RamDiscardManager on the migration source
Date: Mon,  1 Nov 2021 23:09:05 +0100
Message-Id: <20211101220912.10039-14-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"

From: David Hildenbrand <david@redhat.com>

We don't want to migrate memory that corresponds to discarded ranges as
managed by a RamDiscardManager responsible for the mapped memory region of
the RAMBlock. The content of these pages is essentially stale and
without any guarantees for the VM ("logically unplugged").

Depending on the underlying memory type, even reading memory might populate
memory on the source, resulting in an undesired memory consumption. Of
course, on the destination, even writing a zeropage consumes memory,
which we also want to avoid (similar to free page hinting).

Currently, virtio-mem tries achieving that goal (not migrating "unplugged"
memory that was discarded) by going via qemu_guest_free_page_hint() - but
it's hackish and incomplete.

For example, background snapshots still end up reading all memory, as
they don't do bitmap syncs. Postcopy recovery code will re-add
previously cleared bits to the dirty bitmap and migrate them.

Let's consult the RamDiscardManager after setting up our dirty bitmap
initially and when postcopy recovery code reinitializes it: clear
corresponding bits in the dirty bitmaps (e.g., of the RAMBlock and inside
KVM). It's important to fixup the dirty bitmap *after* our initial bitmap
sync, such that the corresponding dirty bits in KVM are actually cleared.

As colo is incompatible with discarding of RAM and inhibits it, we don't
have to bother.

Note: if a misbehaving guest would use discarded ranges after migration
started we would still migrate that memory: however, then we already
populated that memory on the migration source.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/ram.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

diff --git a/migration/ram.c b/migration/ram.c
index ae2601bf3b..e8c06f207c 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -858,6 +858,60 @@ static inline bool migration_bitmap_clear_dirty(RAMState *rs,
     return ret;
 }
 
+static void dirty_bitmap_clear_section(MemoryRegionSection *section,
+                                       void *opaque)
+{
+    const hwaddr offset = section->offset_within_region;
+    const hwaddr size = int128_get64(section->size);
+    const unsigned long start = offset >> TARGET_PAGE_BITS;
+    const unsigned long npages = size >> TARGET_PAGE_BITS;
+    RAMBlock *rb = section->mr->ram_block;
+    uint64_t *cleared_bits = opaque;
+
+    /*
+     * We don't grab ram_state->bitmap_mutex because we expect to run
+     * only when starting migration or during postcopy recovery where
+     * we don't have concurrent access.
+     */
+    if (!migration_in_postcopy() && !migrate_background_snapshot()) {
+        migration_clear_memory_region_dirty_bitmap_range(rb, start, npages);
+    }
+    *cleared_bits += bitmap_count_one_with_offset(rb->bmap, start, npages);
+    bitmap_clear(rb->bmap, start, npages);
+}
+
+/*
+ * Exclude all dirty pages from migration that fall into a discarded range as
+ * managed by a RamDiscardManager responsible for the mapped memory region of
+ * the RAMBlock. Clear the corresponding bits in the dirty bitmaps.
+ *
+ * Discarded pages ("logically unplugged") have undefined content and must
+ * not get migrated, because even reading these pages for migration might
+ * result in undesired behavior.
+ *
+ * Returns the number of cleared bits in the RAMBlock dirty bitmap.
+ *
+ * Note: The result is only stable while migrating (precopy/postcopy).
+ */
+static uint64_t ramblock_dirty_bitmap_clear_discarded_pages(RAMBlock *rb)
+{
+    uint64_t cleared_bits = 0;
+
+    if (rb->mr && rb->bmap && memory_region_has_ram_discard_manager(rb->mr)) {
+        RamDiscardManager *rdm = memory_region_get_ram_discard_manager(rb->mr);
+        MemoryRegionSection section = {
+            .mr = rb->mr,
+            .offset_within_region = 0,
+            .size = int128_make64(qemu_ram_get_used_length(rb)),
+        };
+
+        ram_discard_manager_replay_discarded(rdm, &section,
+                                             dirty_bitmap_clear_section,
+                                             &cleared_bits);
+    }
+    return cleared_bits;
+}
+
 /* Called with RCU critical section */
 static void ramblock_sync_dirty_bitmap(RAMState *rs, RAMBlock *rb)
 {
@@ -2675,6 +2729,19 @@ static void ram_list_init_bitmaps(void)
     }
 }
 
+static void migration_bitmap_clear_discarded_pages(RAMState *rs)
+{
+    unsigned long pages;
+    RAMBlock *rb;
+
+    RCU_READ_LOCK_GUARD();
+
+    RAMBLOCK_FOREACH_NOT_IGNORED(rb) {
+            pages = ramblock_dirty_bitmap_clear_discarded_pages(rb);
+            rs->migration_dirty_pages -= pages;
+    }
+}
+
 static void ram_init_bitmaps(RAMState *rs)
 {
     /* For memory_global_dirty_log_start below.  */
@@ -2691,6 +2758,12 @@ static void ram_init_bitmaps(RAMState *rs)
     }
     qemu_mutex_unlock_ramlist();
     qemu_mutex_unlock_iothread();
+
+    /*
+     * After an eventual first bitmap sync, fixup the initial bitmap
+     * containing all 1s to exclude any discarded pages from migration.
+     */
+    migration_bitmap_clear_discarded_pages(rs);
 }
 
 static int ram_init_all(RAMState **rsp)
@@ -4119,6 +4192,10 @@ int ram_dirty_bitmap_reload(MigrationState *s, RAMBlock *block)
      */
     bitmap_complement(block->bmap, block->bmap, nbits);
 
+    /* Clear dirty bits of discarded ranges that we don't want to migrate. */
+    ramblock_dirty_bitmap_clear_discarded_pages(block);
+
+    /* We'll recalculate migration_dirty_pages in ram_state_resume_prepare(). */
     trace_ram_dirty_bitmap_reload_complete(block->idstr);
 
     /*
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:18:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:18:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219528.380414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfdH-0002XR-GZ; Mon, 01 Nov 2021 22:18:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219528.380414; Mon, 01 Nov 2021 22:18:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfdH-0002XG-DY; Mon, 01 Nov 2021 22:18:23 +0000
Received: by outflank-mailman (input) for mailman id 219528;
 Mon, 01 Nov 2021 22:18:22 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfVU-0007pr-PO
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:10:20 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 69b51b8c-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:41 +0000 (UTC)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-404-xOwcUxRFPMS887nrzbfRvg-1; Mon, 01 Nov 2021 18:09:38 -0400
Received: by mail-wr1-f71.google.com with SMTP id
 v18-20020a5d5912000000b001815910d2c0so2363625wrd.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:38 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id f1sm14841974wrc.74.2021.11.01.15.09.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69b51b8c-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804581;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ut0I0bOpeQjRvVatojvb4Hc5X8NOzmNkKKtiHDMU41A=;
	b=Mu4MzLgwItrojXmSjZalYoQ6+1MYX//a1sMWyAT2gsPa74RYthkpx3SD6RTcl/TJwPbpDo
	nYQ0qrhBED9e+BfIEhBa8CFT1YUJgVq6mWq/98vpSWWPNJzkSqF6wSu0PeVMzzvJe8s+kt
	22IVneHZaHAHJqN6oKEObKVAKUkpdVE=
X-MC-Unique: xOwcUxRFPMS887nrzbfRvg-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=ut0I0bOpeQjRvVatojvb4Hc5X8NOzmNkKKtiHDMU41A=;
        b=Ptrzf4HdrECptjY0Mpb7kVFfw1eopXxoOniLPxkRYxnso9MLHIAvD3lYwuu2sxglAi
         FxPDMqwkn+gwE0YMDOyRXk/QfZESFpLCzjWCw5FFkkwCeMgdVFO+D2w4DnixqXGwjEA6
         fvorUT/zEbmCOabIv09um0tSU2TLl/cMX4sYAflcftXGuh01NhQZXueSttTAWEsBG2+Q
         TyXo7gosjglrELTc6FNoqv1Mn0xjKXlJpxsbCVIZEbkSi6kGDjA+Yuc2vek9zEqtyIbd
         rRFutrY8Z1oaN5nPLkra3nIP7CkgFhq9toCvfyn9cL12eT99mcEjcHCQ8qcyX9ebqoTL
         tPeg==
X-Gm-Message-State: AOAM5303Tjsbs1lwnW5NlR0Sb0YR+eGpzvLa33veIeWn2KxVvg9Mq3ok
	Z0gNjg//Jv/5vGqGMH0xbR4jnP2H6Ju0I1EV3xS09HtFD0phJXubUntscfWIq2zxOqoNCeidjey
	MtVQPSVQ3y2tnJ0DF08Fnxk1Rxcs=
X-Received: by 2002:a05:600c:4f92:: with SMTP id n18mr1960070wmq.22.1635804577431;
        Mon, 01 Nov 2021 15:09:37 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJzk1mlsAWBnPV3UAdQaOyBp79mHrO95iLydgSFEaD+slGORmkvNAM202r9ngtyh0byPMnYLqg==
X-Received: by 2002:a05:600c:4f92:: with SMTP id n18mr1960047wmq.22.1635804577205;
        Mon, 01 Nov 2021 15:09:37 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 17/20] migration/ram: Factor out populating pages readable in ram_block_populate_pages()
Date: Mon,  1 Nov 2021 23:09:09 +0100
Message-Id: <20211101220912.10039-18-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"

From: David Hildenbrand <david@redhat.com>

Let's factor out prefaulting/populating to make further changes easier to
review and add a comment what we are actually expecting to happen. While at
it, use the actual page size of the ramblock, which defaults to
qemu_real_host_page_size for anonymous memory. Further, rename
ram_block_populate_pages() to ram_block_populate_read() as well, to make
it clearer what we are doing.

In the future, we might want to use MADV_POPULATE_READ to speed up
population.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/ram.c | 35 ++++++++++++++++++++++-------------
 1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/migration/ram.c b/migration/ram.c
index 54df5dc0fc..92c7b788ae 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -1639,26 +1639,35 @@ out:
     return ret;
 }
 
+static inline void populate_read_range(RAMBlock *block, ram_addr_t offset,
+                                       ram_addr_t size)
+{
+    /*
+     * We read one byte of each page; this will preallocate page tables if
+     * required and populate the shared zeropage on MAP_PRIVATE anonymous memory
+     * where no page was populated yet. This might require adaption when
+     * supporting other mappings, like shmem.
+     */
+    for (; offset < size; offset += block->page_size) {
+        char tmp = *((char *)block->host + offset);
+
+        /* Don't optimize the read out */
+        asm volatile("" : "+r" (tmp));
+    }
+}
+
 /*
- * ram_block_populate_pages: populate memory in the RAM block by reading
- *   an integer from the beginning of each page.
+ * ram_block_populate_read: preallocate page tables and populate pages in the
+ *   RAM block by reading a byte of each page.
  *
  * Since it's solely used for userfault_fd WP feature, here we just
  *   hardcode page size to qemu_real_host_page_size.
  *
  * @block: RAM block to populate
  */
-static void ram_block_populate_pages(RAMBlock *block)
+static void ram_block_populate_read(RAMBlock *block)
 {
-    char *ptr = (char *) block->host;
-
-    for (ram_addr_t offset = 0; offset < block->used_length;
-            offset += qemu_real_host_page_size) {
-        char tmp = *(ptr + offset);
-
-        /* Don't optimize the read out */
-        asm volatile("" : "+r" (tmp));
-    }
+    populate_read_range(block, 0, block->used_length);
 }
 
 /*
@@ -1684,7 +1693,7 @@ void ram_write_tracking_prepare(void)
          * UFFDIO_WRITEPROTECT_MODE_WP mode setting would silently skip
          * pages with pte_none() entries in page table.
          */
-        ram_block_populate_pages(block);
+        ram_block_populate_read(block);
     }
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:18:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219541.380426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfdU-0003BM-QU; Mon, 01 Nov 2021 22:18:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219541.380426; Mon, 01 Nov 2021 22:18:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfdU-0003BF-NJ; Mon, 01 Nov 2021 22:18:36 +0000
Received: by outflank-mailman (input) for mailman id 219541;
 Mon, 01 Nov 2021 22:18:35 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfVP-0007pr-PD
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:10:15 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 67a04d9e-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:38 +0000 (UTC)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-421-023sZdd2N7eeCddHFagydg-1; Mon, 01 Nov 2021 18:09:37 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 n189-20020a1c27c6000000b00322f2e380f2so171751wmn.6
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:36 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id l8sm667683wmc.40.2021.11.01.15.09.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67a04d9e-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804578;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=H80g6dMw2Mv72MY8J/rqWuWQm27PgZOf7gOHLz8JbhA=;
	b=bjsc1aWn+K8zk7qoHc4vHv+090mDJzTUnYChUKAmdLv0SI3mBliUZgb20OdxFMlFf33slq
	tvU7U65m0m686+XN+xWYoM0541HcdlNxQna19nV/cWk7jzOPxwxsamKH3I7HTZAQRPSsPj
	utRhPnLylBbhLvMj8FZFT+N8dg0YyjI=
X-MC-Unique: 023sZdd2N7eeCddHFagydg-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=H80g6dMw2Mv72MY8J/rqWuWQm27PgZOf7gOHLz8JbhA=;
        b=R45WHOgqB7E9BsB7P/1qvgHW2iq8CBKhb6en4Yl7CAJ9x1Y9mCqaRJUCU1bgIrpo4A
         AT+0xv1WibDCYhtXz+j/v13Pct8lMhtESsJEqvpQBGCIHuwQUrHkKtlO8LPpvQ8LZ4K6
         MlSLeYZu4hPJbxZbl6iS9MQABN3ToeuIVKGqjWIAJHNrkkqszppDuUZuM2bKPPHktg9N
         37Hstwet6oJcy+HY4gj02dyJluO7PGGwO7UlPEO/dBg1Sd7I9moeP8Qza0oSfKc2pUsz
         GfeNtSsMnTFcBBmnpkr9pd7YzpoJQGnKUVwNsE7x8mO8vqMbfkHD5lGKBQyU6U1eyjbn
         TkHw==
X-Gm-Message-State: AOAM533vYt5SG10rXBNW6wBv2E5i4vIjVecs6ITXDmZ0zh669wGMKj++
	1Hy0V+YsVCi07bZv1r4cO0P0Hll1r21N+u5F4/AaBt9rETu9LT3xi9vGPton8saUIkmmVuXcVhB
	UBUn6pXVMB0HUexziwr060ZIErZA=
X-Received: by 2002:a05:6000:54e:: with SMTP id b14mr40644770wrf.308.1635804575959;
        Mon, 01 Nov 2021 15:09:35 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJyeYrI4G4BKiXAB/InRvOnWTy+hbH8wuPZhOXw0coLYSKiQ6S2dlFWrOoqN5kf/uLhyOXH1Ww==
X-Received: by 2002:a05:6000:54e:: with SMTP id b14mr40644755wrf.308.1635804575814;
        Mon, 01 Nov 2021 15:09:35 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: [PULL 16/20] migration: Simplify alignment and alignment checks
Date: Mon,  1 Nov 2021 23:09:08 +0100
Message-Id: <20211101220912.10039-17-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: David Hildenbrand <david@redhat.com>

Let's use QEMU_ALIGN_DOWN() and friends to make the code a bit easier to
read.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/migration.c    | 6 +++---
 migration/postcopy-ram.c | 9 ++++-----
 migration/ram.c          | 2 +-
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/migration/migration.c b/migration/migration.c
index e1c0082530..53b9a8af96 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -391,7 +391,7 @@ int migrate_send_rp_message_req_pages(MigrationIncomingState *mis,
 int migrate_send_rp_req_pages(MigrationIncomingState *mis,
                               RAMBlock *rb, ram_addr_t start, uint64_t haddr)
 {
-    void *aligned = (void *)(uintptr_t)(haddr & (-qemu_ram_pagesize(rb)));
+    void *aligned = (void *)(uintptr_t)ROUND_DOWN(haddr, qemu_ram_pagesize(rb));
     bool received = false;
 
     WITH_QEMU_LOCK_GUARD(&mis->page_request_mutex) {
@@ -2637,8 +2637,8 @@ static void migrate_handle_rp_req_pages(MigrationState *ms, const char* rbname,
      * Since we currently insist on matching page sizes, just sanity check
      * we're being asked for whole host pages.
      */
-    if (start & (our_host_ps - 1) ||
-       (len & (our_host_ps - 1))) {
+    if (!QEMU_IS_ALIGNED(start, our_host_ps) ||
+        !QEMU_IS_ALIGNED(len, our_host_ps)) {
         error_report("%s: Misaligned page request, start: " RAM_ADDR_FMT
                      " len: %zd", __func__, start, len);
         mark_source_rp_bad(ms);
diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
index 3609ce7e52..e721f69d0f 100644
--- a/migration/postcopy-ram.c
+++ b/migration/postcopy-ram.c
@@ -402,7 +402,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis)
                      strerror(errno));
         goto out;
     }
-    g_assert(((size_t)testarea & (pagesize - 1)) == 0);
+    g_assert(QEMU_PTR_IS_ALIGNED(testarea, pagesize));
 
     reg_struct.range.start = (uintptr_t)testarea;
     reg_struct.range.len = pagesize;
@@ -660,7 +660,7 @@ int postcopy_wake_shared(struct PostCopyFD *pcfd,
     struct uffdio_range range;
     int ret;
     trace_postcopy_wake_shared(client_addr, qemu_ram_get_idstr(rb));
-    range.start = client_addr & ~(pagesize - 1);
+    range.start = ROUND_DOWN(client_addr, pagesize);
     range.len = pagesize;
     ret = ioctl(pcfd->fd, UFFDIO_WAKE, &range);
     if (ret) {
@@ -702,8 +702,7 @@ static int postcopy_request_page(MigrationIncomingState *mis, RAMBlock *rb,
 int postcopy_request_shared_page(struct PostCopyFD *pcfd, RAMBlock *rb,
                                  uint64_t client_addr, uint64_t rb_offset)
 {
-    size_t pagesize = qemu_ram_pagesize(rb);
-    uint64_t aligned_rbo = rb_offset & ~(pagesize - 1);
+    uint64_t aligned_rbo = ROUND_DOWN(rb_offset, qemu_ram_pagesize(rb));
     MigrationIncomingState *mis = migration_incoming_get_current();
 
     trace_postcopy_request_shared_page(pcfd->idstr, qemu_ram_get_idstr(rb),
@@ -993,7 +992,7 @@ static void *postcopy_ram_fault_thread(void *opaque)
                 break;
             }
 
-            rb_offset &= ~(qemu_ram_pagesize(rb) - 1);
+            rb_offset = ROUND_DOWN(rb_offset, qemu_ram_pagesize(rb));
             trace_postcopy_ram_fault_thread_request(msg.arg.pagefault.address,
                                                 qemu_ram_get_idstr(rb),
                                                 rb_offset,
diff --git a/migration/ram.c b/migration/ram.c
index 4f629de7d0..54df5dc0fc 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -811,7 +811,7 @@ static void migration_clear_memory_region_dirty_bitmap(RAMBlock *rb,
     assert(shift >= 6);
 
     size = 1ULL << (TARGET_PAGE_BITS + shift);
-    start = (((ram_addr_t)page) << TARGET_PAGE_BITS) & (-size);
+    start = QEMU_ALIGN_DOWN((ram_addr_t)page << TARGET_PAGE_BITS, size);
     trace_migration_bitmap_clear_dirty(rb->idstr, start, size, page);
     memory_region_clear_dirty_bitmap(rb->mr, start, size);
 }
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:18:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219542.380431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfdV-0003Gf-9n; Mon, 01 Nov 2021 22:18:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219542.380431; Mon, 01 Nov 2021 22:18:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhfdV-0003FY-1w; Mon, 01 Nov 2021 22:18:37 +0000
Received: by outflank-mailman (input) for mailman id 219542;
 Mon, 01 Nov 2021 22:18:35 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z02t=PU=redhat.com=quintela@srs-us1.protection.inumbo.net>)
 id 1mhfVe-0007pr-Pf
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 22:10:30 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.129.124])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 6a026a0f-3b60-11ec-854e-12813bfff9fa;
 Mon, 01 Nov 2021 22:09:43 +0000 (UTC)
Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com
 [209.85.128.72]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-101-hSh5pPCwOLqPUsAmPza-aA-1; Mon, 01 Nov 2021 18:09:42 -0400
Received: by mail-wm1-f72.google.com with SMTP id
 l187-20020a1c25c4000000b0030da46b76daso166204wml.9
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 15:09:42 -0700 (PDT)
Received: from localhost (static-233-86-86-188.ipcom.comunitel.net.
 [188.86.86.233])
 by smtp.gmail.com with ESMTPSA id k8sm688985wms.41.2021.11.01.15.09.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 15:09:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a026a0f-3b60-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635804583;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jP/I5apHpfB9miqWjOSmHHOjh4FLTnrs+cMqC3xHGrM=;
	b=UJ5ZYR8tosx+CzcwON4T+X4Pi1p9fiytMUwu6K59IdAOrEjcL6tYOckZh6mWgAEMaWzGNb
	GJsPqHbPkym0ee8SwOdKSLQXidEtiXVZUgTjkyK+QblnVNU4R9BH13RooVy4Fcax8pQ/jC
	Gf+M7G/GN81pNH1GLN9S/L/bL4GtVqg=
X-MC-Unique: hSh5pPCwOLqPUsAmPza-aA-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=jP/I5apHpfB9miqWjOSmHHOjh4FLTnrs+cMqC3xHGrM=;
        b=0NuVXFoAXvHH9UPq7E6Sn51EG4cbKpXyTf34UObSPcGvQqWFFU+GgzY+sBC9+jrTXj
         IaDAx7Nr7GyRIKZ2fvA/IwJuNy9rt25tJbHmhwRFX+hZ08ZpKbkkVOIVbsaxbh10DFx7
         ZalajO3m/Nsl9aGNCE8aVGHjX0OuabeTIX486WrX6cAQPbjEwC2lpkEIRWPFUO2aijKJ
         3GLLUdZ0knFIgyJGTt1FZ6ad0O/FJJWUIqH5op7R0i9rZ7AXxb5+Lp8bRYsj6bcveL2A
         GxEK/QpZiru6Ol2Cy8di5aL1+4WTeVe0mZ9uOljsEIECRzqSJULZGX+QHU9JzZQEeuXh
         g47g==
X-Gm-Message-State: AOAM533QNxkUy+VBelWBg+x4gEbndstI0By10Vszjqs0gevMFqk/Zn3m
	CNPQjgzIeMNiKkdJCKISC3ls5Sf83UtvvE1/80tfKmrkFLgLCcrwq9sQQHOATxk51UsdITfJiGp
	3TCplFM8LwKk/BS0jui6pMK7KFfg=
X-Received: by 2002:a5d:69ca:: with SMTP id s10mr17619025wrw.312.1635804581262;
        Mon, 01 Nov 2021 15:09:41 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJwekiY665T3KtWYk+MojmKh2E8nDk/brzhW8Smm/r4bdKRN1BvOX4dI3pL5wzRW0aYS3i58/A==
X-Received: by 2002:a5d:69ca:: with SMTP id s10mr17619009wrw.312.1635804581077;
        Mon, 01 Nov 2021 15:09:41 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Eric Blake <eblake@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	=?UTF-8?q?Hyman=20Huang=28=E9=BB=84=E5=8B=87=29?= <huangy81@chinatelecom.cn>
Subject: [PULL 20/20] migration/dirtyrate: implement dirty-bitmap dirtyrate calculation
Date: Mon,  1 Nov 2021 23:09:12 +0100
Message-Id: <20211101220912.10039-21-quintela@redhat.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>

introduce dirty-bitmap mode as the third method of calc-dirty-rate.
implement dirty-bitmap dirtyrate calculation, which can be used
to measuring dirtyrate in the absence of dirty-ring.

introduce "dirty_bitmap:-b" option in hmp calc_dirty_rate to
indicate dirty bitmap method should be used for calculation.

Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 qapi/migration.json   |   6 ++-
 migration/dirtyrate.c | 112 ++++++++++++++++++++++++++++++++++++++----
 hmp-commands.hx       |   9 ++--
 3 files changed, 112 insertions(+), 15 deletions(-)

diff --git a/qapi/migration.json b/qapi/migration.json
index fae4bc608c..87146ceea2 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -1770,13 +1770,15 @@
 #
 # @page-sampling: calculate dirtyrate by sampling pages.
 #
-# @dirty-ring: calculate dirtyrate by via dirty ring.
+# @dirty-ring: calculate dirtyrate by dirty ring.
+#
+# @dirty-bitmap: calculate dirtyrate by dirty bitmap.
 #
 # Since: 6.1
 #
 ##
 { 'enum': 'DirtyRateMeasureMode',
-  'data': ['page-sampling', 'dirty-ring'] }
+  'data': ['page-sampling', 'dirty-ring', 'dirty-bitmap'] }
 
 ##
 # @DirtyRateInfo:
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index 17b3d2cbb5..d65e744af9 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -15,6 +15,7 @@
 #include "qapi/error.h"
 #include "cpu.h"
 #include "exec/ramblock.h"
+#include "exec/ram_addr.h"
 #include "qemu/rcu_queue.h"
 #include "qemu/main-loop.h"
 #include "qapi/qapi-commands-migration.h"
@@ -118,6 +119,10 @@ static struct DirtyRateInfo *query_dirty_rate_info(void)
             }
             info->vcpu_dirty_rate = head;
         }
+
+        if (dirtyrate_mode == DIRTY_RATE_MEASURE_MODE_DIRTY_BITMAP) {
+            info->sample_pages = 0;
+        }
     }
 
     trace_query_dirty_rate_info(DirtyRateStatus_str(CalculatingState));
@@ -429,6 +434,79 @@ static int64_t do_calculate_dirtyrate_vcpu(DirtyPageRecord dirty_pages)
     return memory_size_MB / time_s;
 }
 
+static inline void record_dirtypages_bitmap(DirtyPageRecord *dirty_pages,
+                                            bool start)
+{
+    if (start) {
+        dirty_pages->start_pages = total_dirty_pages;
+    } else {
+        dirty_pages->end_pages = total_dirty_pages;
+    }
+}
+
+static void do_calculate_dirtyrate_bitmap(DirtyPageRecord dirty_pages)
+{
+    DirtyStat.dirty_rate = do_calculate_dirtyrate_vcpu(dirty_pages);
+}
+
+static inline void dirtyrate_manual_reset_protect(void)
+{
+    RAMBlock *block = NULL;
+
+    WITH_RCU_READ_LOCK_GUARD() {
+        RAMBLOCK_FOREACH_MIGRATABLE(block) {
+            memory_region_clear_dirty_bitmap(block->mr, 0,
+                                             block->used_length);
+        }
+    }
+}
+
+static void calculate_dirtyrate_dirty_bitmap(struct DirtyRateConfig config)
+{
+    int64_t msec = 0;
+    int64_t start_time;
+    DirtyPageRecord dirty_pages;
+
+    qemu_mutex_lock_iothread();
+    memory_global_dirty_log_start(GLOBAL_DIRTY_DIRTY_RATE);
+
+    /*
+     * 1'round of log sync may return all 1 bits with
+     * KVM_DIRTY_LOG_INITIALLY_SET enable
+     * skip it unconditionally and start dirty tracking
+     * from 2'round of log sync
+     */
+    memory_global_dirty_log_sync();
+
+    /*
+     * reset page protect manually and unconditionally.
+     * this make sure kvm dirty log be cleared if
+     * KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE cap is enabled.
+     */
+    dirtyrate_manual_reset_protect();
+    qemu_mutex_unlock_iothread();
+
+    record_dirtypages_bitmap(&dirty_pages, true);
+
+    start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
+    DirtyStat.start_time = start_time / 1000;
+
+    msec = config.sample_period_seconds * 1000;
+    msec = set_sample_page_period(msec, start_time);
+    DirtyStat.calc_time = msec / 1000;
+
+    /*
+     * dirtyrate_global_dirty_log_stop do two things.
+     * 1. fetch dirty bitmap from kvm
+     * 2. stop dirty tracking
+     */
+    dirtyrate_global_dirty_log_stop();
+
+    record_dirtypages_bitmap(&dirty_pages, false);
+
+    do_calculate_dirtyrate_bitmap(dirty_pages);
+}
+
 static void calculate_dirtyrate_dirty_ring(struct DirtyRateConfig config)
 {
     CPUState *cpu;
@@ -514,7 +592,9 @@ out:
 
 static void calculate_dirtyrate(struct DirtyRateConfig config)
 {
-    if (config.mode == DIRTY_RATE_MEASURE_MODE_DIRTY_RING) {
+    if (config.mode == DIRTY_RATE_MEASURE_MODE_DIRTY_BITMAP) {
+        calculate_dirtyrate_dirty_bitmap(config);
+    } else if (config.mode == DIRTY_RATE_MEASURE_MODE_DIRTY_RING) {
         calculate_dirtyrate_dirty_ring(config);
     } else {
         calculate_dirtyrate_sample_vm(config);
@@ -597,12 +677,15 @@ void qmp_calc_dirty_rate(int64_t calc_time,
 
     /*
      * dirty ring mode only works when kvm dirty ring is enabled.
+     * on the contrary, dirty bitmap mode is not.
      */
-    if ((mode == DIRTY_RATE_MEASURE_MODE_DIRTY_RING) &&
-        !kvm_dirty_ring_enabled()) {
-        error_setg(errp, "dirty ring is disabled, use sample-pages method "
-                         "or remeasure later.");
-        return;
+    if (((mode == DIRTY_RATE_MEASURE_MODE_DIRTY_RING) &&
+        !kvm_dirty_ring_enabled()) ||
+        ((mode == DIRTY_RATE_MEASURE_MODE_DIRTY_BITMAP) &&
+         kvm_dirty_ring_enabled())) {
+        error_setg(errp, "mode %s is not enabled, use other method instead.",
+                         DirtyRateMeasureMode_str(mode));
+         return;
     }
 
     /*
@@ -678,9 +761,8 @@ void hmp_calc_dirty_rate(Monitor *mon, const QDict *qdict)
     int64_t sample_pages = qdict_get_try_int(qdict, "sample_pages_per_GB", -1);
     bool has_sample_pages = (sample_pages != -1);
     bool dirty_ring = qdict_get_try_bool(qdict, "dirty_ring", false);
-    DirtyRateMeasureMode mode =
-        (dirty_ring ? DIRTY_RATE_MEASURE_MODE_DIRTY_RING :
-         DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING);
+    bool dirty_bitmap = qdict_get_try_bool(qdict, "dirty_bitmap", false);
+    DirtyRateMeasureMode mode = DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING;
     Error *err = NULL;
 
     if (!sec) {
@@ -688,6 +770,18 @@ void hmp_calc_dirty_rate(Monitor *mon, const QDict *qdict)
         return;
     }
 
+    if (dirty_ring && dirty_bitmap) {
+        monitor_printf(mon, "Either dirty ring or dirty bitmap "
+                       "can be specified!\n");
+        return;
+    }
+
+    if (dirty_bitmap) {
+        mode = DIRTY_RATE_MEASURE_MODE_DIRTY_BITMAP;
+    } else if (dirty_ring) {
+        mode = DIRTY_RATE_MEASURE_MODE_DIRTY_RING;
+    }
+
     qmp_calc_dirty_rate(sec, has_sample_pages, sample_pages, true,
                         mode, &err);
     if (err) {
diff --git a/hmp-commands.hx b/hmp-commands.hx
index b6d47bd03f..3a5aeba3fe 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1737,9 +1737,10 @@ ERST
 
     {
         .name       = "calc_dirty_rate",
-        .args_type  = "dirty_ring:-r,second:l,sample_pages_per_GB:l?",
-        .params     = "[-r] second [sample_pages_per_GB]",
-        .help       = "start a round of guest dirty rate measurement (using -d to"
-                      "\n\t\t\t specify dirty ring as the method of calculation)",
+        .args_type  = "dirty_ring:-r,dirty_bitmap:-b,second:l,sample_pages_per_GB:l?",
+        .params     = "[-r] [-b] second [sample_pages_per_GB]",
+        .help       = "start a round of guest dirty rate measurement (using -r to"
+                      "\n\t\t\t specify dirty ring as the method of calculation and"
+                      "\n\t\t\t -b to specify dirty bitmap as method of calculation)",
         .cmd        = hmp_calc_dirty_rate,
     },
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 01 22:43:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 22:43:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219589.380448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhg12-0007LD-Do; Mon, 01 Nov 2021 22:42:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219589.380448; Mon, 01 Nov 2021 22:42:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhg12-0007L6-A9; Mon, 01 Nov 2021 22:42:56 +0000
Received: by outflank-mailman (input) for mailman id 219589;
 Mon, 01 Nov 2021 22:42:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhg11-0007Kw-1y; Mon, 01 Nov 2021 22:42:55 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhg10-0001i7-QU; Mon, 01 Nov 2021 22:42:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhg10-0008RC-EC; Mon, 01 Nov 2021 22:42:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhg10-0000NO-Dh; Mon, 01 Nov 2021 22:42:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=RmKQ8KE8fyUYaO7s8TlDH6IkIMGkeg+aQsCsqiTlAeg=; b=QJQOJUs1at8V1fkZ6lKZfcthQD
	tuhgCoiRakAnsOO7LL/7ckJSLLpjsvZH+wqswF7EOqB3Zhij9WgrxngdWEi+fIASk2FxihysbkuRM
	QvcVYfX/tDjiDYNb3Puid0LEnSsBJ3SPLsqW67ZqdzA+GLPdbn6NHVNaXfaUoO0aOSko=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165974-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 165974: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-amd64-pvops:kernel-build:fail:regression
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:build-armhf-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-coresched-amd64-xl:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-shadow:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-rtds:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-pvshim:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-examine:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-freebsd11-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-freebsd12-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-pvhv2-intel:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-pvhv2-amd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-multivcpu:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-credit2:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-pair:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-pygrub:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-credit1:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-intel:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-examine:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=19901165d90fdca1e57c9baa0d5b4c63d15c476a
X-Osstest-Versions-That:
    linux=8bb7eca972ad531c9b149c0a51ab43a417385813
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Nov 2021 22:42:54 +0000

flight 165974 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165974/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-pvops             6 kernel-build             fail REGR. vs. 165965
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165965
 build-armhf-pvops             6 kernel-build             fail REGR. vs. 165965

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-cubietruck  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-coresched-amd64-xl  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-xsm       1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-shadow    1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-rtds      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-ws16-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemuu-win7-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemuu-ovmf-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)     blocked n/a
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1) blocked n/a
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  1 build-check(1)        blocked n/a
 test-amd64-amd64-xl-qemut-ws16-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemut-win7-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm  1 build-check(1)     blocked n/a
 test-amd64-amd64-dom0pvh-xl-amd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemut-debianhvm-amd64  1 build-check(1)        blocked n/a
 test-amd64-amd64-dom0pvh-xl-intel  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-pvshim    1 build-check(1)               blocked  n/a
 test-amd64-amd64-examine      1 build-check(1)               blocked  n/a
 test-amd64-amd64-freebsd11-amd64  1 build-check(1)               blocked  n/a
 test-amd64-amd64-freebsd12-amd64  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-pvhv2-intel  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-pvhv2-amd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-credit2   1 build-check(1)               blocked  n/a
 test-amd64-amd64-pair         1 build-check(1)               blocked  n/a
 test-amd64-amd64-pygrub       1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-credit1   1 build-check(1)               blocked  n/a
 test-amd64-amd64-qemuu-nested-amd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-qemuu-nested-intel  1 build-check(1)              blocked n/a
 test-amd64-amd64-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-examine      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                19901165d90fdca1e57c9baa0d5b4c63d15c476a
baseline version:
 linux                8bb7eca972ad531c9b149c0a51ab43a417385813

Last test of basis   165965  2021-11-01 01:11:29 Z    0 days
Testing same since   165974  2021-11-01 17:40:47 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Anders Roxell <anders.roxell@linaro.org>
  Andrea Righi <andrea.righi@canonical.com>
  Anton Altaparmakov <anton@tuxera.com>
  Arnd Bergmann <arnd@arndb.de>
  Bart Van Assche <bvanassche@acm.org>
  Bixuan Cui <cuibixuan@huawei.com>
  Cai Huoqing <caihuoqing@baidu.com>
  Changcheng Deng <deng.changcheng@zte.com.cn>
  Chao Yu <yuchao0@huawei.com>
  Christoph Hellwig <hch@lst.de>
  Christophe JAILLET <christophe.jaillet@wanadoo.fr>
  Coly Li <colyli@suse.de>
  Damien Le Moal <damien.lemoal@wdc.com>
  Dan Carpenter <dan.carpenter@oracle.com>
  Dave Kleikamp <dave.kleikamp@oracle.com>
  David Sterba <dsterba@suse.com>
  Dennis Zhou <dennis@kernel.org>
  Ding Senjie <dingsenjie@yulong.com>
  Eric Biggers <ebiggers@google.com>
  Geert Uytterhoeven <geert@linux-m68k.org>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guoqing Jiang <guoqing.jiang@linux.dev>
  Hannes Reinecke <hare@suse.de>
  Hao Wu <hao.wu@rubrik.com>
  Hao Xu <haoxu@linux.alibaba.com>
  Heiko Carstens <hca@linux.ibm.com>
  Israel Rukshin <israelr@nvidia.com>
  J. Bruce Fields <bfields@redhat.com>
  Jack Wang <jinpu.wang@ionos.com>
  Jackie Liu <liuyun01@kylinos.cn>
  Jan Höppner <hoeppner@linux.ibm.com>
  Jarkko Sakkinen <jarkko@kernel.org>
  Jeff Layton <jlayton@kernel.org>
  Jens Axboe <axboe@kernel.dk>
  Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
  Johannes Weiner <hannes@cmpxchg.org>
  John Garry <john.garry@huawei.com>
  John Levon <john.levon@nutanix.com>
  Kashyap Desai <kashyap.desai@broadcom.com>
  Kees Cook <keescook@chromium.org>
  Keith Busch <kbusch@kernel.org>
  Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
  Len Baker <len.baker@gmx.com>
  Lin Feng <linf@wangsu.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Luis Chamberlain <mcgrof@kernel.org>
  Lukas Prediger <lumip@lumip.de>
  luo penghao <luo.penghao@zte.com.cn>
  Marco Elver <elver@google.com>
  Mark Brown <broonie@kernel.org>
  Mark Wunderlich <mark.wunderlich@intel.com>
  Masahiro Yamada <masahiroy@kernel.org>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Max Filippov <jcmvbkbc@gmail.com>
  Max Gurtovoy <mgurtovoy@nvidia.com>
  Michael S. Tsirkin <mst@redhat.com>
  Michael Schmitz <schmitzmic@gmail.com>
  Michal Hocko <mhocko@suse.com>
  Mike Rapoport <rppt@linux.ibm.com>
  Mike Snitzer <snitzer@redhat.com>
  Ming Lei <ming.lei@redhat.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Nilesh Javali <njavali@marvell.com>
  Noah Goldstein <goldstein.w.n@gmail.com>
  Pavel Begunkov <asml.silence@gmail.com>
  Phillip Lougher <phillip@squashfs.org.uk>
  Phillip Potter <phil@philpotter.co.uk>
  Qing Wang <wangqing@vivo.com>
  Randy Dunlap <rdunlap@infradead.org> # build-tested
  Ryusuke Konishi <konishi.ryusuke@gmail.com>
  Saurav Kashyap <skashyap@marvell.com>
  Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
  Song Liu <song@kernel.org>
  Song Liu <songliubraving@fb.com>
  Stefan Haberland <sth@linux.ibm.com>
  Tejun Heo <tj@kernel.org>
  Theodore Ts'o <tytso@mit.edu>
  Ulf Hansson <ulf.hansson@linaro.org> # For MMC
  Vlastimil Babka <vbabka@suse.cz>
  Xiao Ni <xni@redhat.com>
  Xie Yongji <xieyongji@bytedance.com>
  Ye Bin <yebin10@huawei.com>
  Ye Guojin <ye.guojin@zte.com.cn>
  Yu Kuai <yukuai3@huawei.com>
  Zheng Liang <zhengliang6@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            fail    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            fail    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          blocked 
 test-amd64-coresched-amd64-xl                                blocked 
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        blocked 
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      blocked 
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            blocked 
 test-amd64-amd64-xl-pvhv2-amd                                blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              blocked 
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    blocked 
 test-amd64-amd64-freebsd11-amd64                             blocked 
 test-amd64-amd64-freebsd12-amd64                             blocked 
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         blocked 
 test-amd64-amd64-xl-qemut-win7-amd64                         blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         blocked 
 test-amd64-amd64-xl-qemut-ws16-amd64                         blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         blocked 
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  blocked 
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  blocked 
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-armhf-armhf-xl-cubietruck                               blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        blocked 
 test-amd64-amd64-examine                                     blocked 
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     blocked 
 test-amd64-amd64-qemuu-nested-intel                          blocked 
 test-amd64-amd64-xl-pvhv2-intel                              blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-amd64-xl-multivcpu                                blocked 
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-amd64-xl-pvshim                                   blocked 
 test-amd64-amd64-pygrub                                      blocked 
 test-amd64-amd64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-amd64-amd64-libvirt-raw                                 blocked 
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-amd64-xl-rtds                                     blocked 
 test-armhf-armhf-xl-rtds                                     blocked 
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             blocked 
 test-amd64-amd64-xl-shadow                                   blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      blocked 
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 10070 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 01 23:45:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Nov 2021 23:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219607.380461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhgz3-0004o1-5I; Mon, 01 Nov 2021 23:44:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219607.380461; Mon, 01 Nov 2021 23:44:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhgz3-0004nu-2K; Mon, 01 Nov 2021 23:44:57 +0000
Received: by outflank-mailman (input) for mailman id 219607;
 Mon, 01 Nov 2021 23:44:55 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Y+Wa=PU=redhat.com=mst@srs-us1.protection.inumbo.net>)
 id 1mhgz1-0004nk-AV
 for xen-devel@lists.xenproject.org; Mon, 01 Nov 2021 23:44:55 +0000
Received: from us-smtp-delivery-124.mimecast.com (unknown [170.10.133.124])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id c4a7ba2a-9e80-492e-8fb3-c93c84997b9e;
 Mon, 01 Nov 2021 23:44:53 +0000 (UTC)
Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com
 [209.85.208.71]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-564-OOTu8dxFPXOK1VhXYfJ1ag-1; Mon, 01 Nov 2021 19:44:52 -0400
Received: by mail-ed1-f71.google.com with SMTP id
 t18-20020a056402021200b003db9e6b0e57so17058636edv.10
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 16:44:52 -0700 (PDT)
Received: from redhat.com ([2.55.156.42])
 by smtp.gmail.com with ESMTPSA id s4sm1603180edd.32.2021.11.01.16.44.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 16:44:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4a7ba2a-9e80-492e-8fb3-c93c84997b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1635810293;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=hQpOeuAFUR/YU+yLEEiQzjlSsfEbb0a1M35err53O2c=;
	b=OGYpZqdBuNXsmxiGgdvXdch14ocsrFIcHHVcklpqDlzrI5elMmodkVSXsNcftYNCxX7hu4
	8UDRUUZIt2Rqdsp6V13ivOFTyMjwlNVptI6JoHjjHFO6v84BS/unbJJb79w0pG//nKS/kM
	X0an77UMXMXx/Tbi79GdpAroSQmQg0s=
X-MC-Unique: OOTu8dxFPXOK1VhXYfJ1ag-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=hQpOeuAFUR/YU+yLEEiQzjlSsfEbb0a1M35err53O2c=;
        b=dE8PctFdwfQQCGN7/UoIhY1fVWmU1nClz5cRrxC4K+S7CJTNx1bWR8iRlWpkJXnFo8
         f1OCewb4Y5ZaTLfmr7MoH3PHb8SX7KEAI4+AYVFZI3cOcjEuzbV6tNhfmO4V5+pTYP3m
         otP729wYbbyd+CQFgbq1cJtT731pvNRvq8ExRcFjEKppWPu5esmPQPYeb1dqG/QQP3i1
         GvY33nMy9HbNcnKhdLYvDcgu6gGligREO7VkRGnRbGEuCuQ6G2grnc/WqQV/MwFVpTlM
         nt0KXTeqZYjtz+cI3elYVcjVw2tkM4pu7mwLr3z/g4C36KwwK1B2GdG1eRkT0p9hwTGk
         b2vQ==
X-Gm-Message-State: AOAM5301SghOYOuK0gd5VMsZ8Ds3R+/zbPaaSyr58XjxvYx6F5ANcmx4
	Oqh/CudUyBVTMsNAJ/VwYlfkjy4ICTBvDY40c/VMle9Vgev8HXEn3di9Lwg9Wve6zwKMqTJcnMG
	L+jB1ztIKmbGpdhxdW9IqF+TiSYU=
X-Received: by 2002:a17:907:ea5:: with SMTP id ho37mr14408251ejc.133.1635810291054;
        Mon, 01 Nov 2021 16:44:51 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJwukbwhcUWvJJuqHH8/khRQQjZoqF2HrG8wBex3bhnCrcMlXkuR308ikOKPoGaR9Bmsmei6wA==
X-Received: by 2002:a17:907:ea5:: with SMTP id ho37mr14408220ejc.133.1635810290860;
        Mon, 01 Nov 2021 16:44:50 -0700 (PDT)
Date: Mon, 1 Nov 2021 19:44:46 -0400
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>, Peter Xu <peterx@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eric Auger <eric.auger@redhat.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Igor Mammedov <imammedo@redhat.com>, Ani Sinha <ani@anisinha.ca>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Eduardo Habkost <ehabkost@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Greg Kurz <groug@kaod.org>, Matthew Rosato <mjrosato@linux.ibm.com>,
	Eric Farman <farman@linux.ibm.com>,
	Cornelia Huck <cohuck@redhat.com>, Thomas Huth <thuth@redhat.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony Perard <anthony.perard@citrix.com>,
	Paul Durrant <paul@xen.org>, qemu-ppc@nongnu.org,
	qemu-s390x@nongnu.org, xen-devel@lists.xenproject.org
Subject: [PULL 8/9] pci: Export pci_for_each_device_under_bus*()
Message-ID: <20211101234358.582487-9-mst@redhat.com>
References: <20211101234358.582487-1-mst@redhat.com>
MIME-Version: 1.0
In-Reply-To: <20211101234358.582487-1-mst@redhat.com>
X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1
X-Mutt-Fcc: =sent
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mst@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

From: Peter Xu <peterx@redhat.com>

They're actually more commonly used than the helper without _under_bus, because
most callers do have the pci bus on hand.  After exporting we can switch a lot
of the call sites to use these two helpers.

Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20211028043129.38871-3-peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
---
 include/hw/pci/pci.h       |  5 +++++
 hw/i386/acpi-build.c       |  5 ++---
 hw/pci/pci.c               | 10 +++++-----
 hw/pci/pcie.c              |  4 +---
 hw/ppc/spapr_pci.c         | 12 +++++-------
 hw/ppc/spapr_pci_nvlink2.c |  7 +++----
 hw/ppc/spapr_pci_vfio.c    |  4 ++--
 hw/s390x/s390-pci-bus.c    |  5 ++---
 hw/xen/xen_pt.c            |  4 ++--
 9 files changed, 27 insertions(+), 29 deletions(-)

diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
index 4a8740b76b..5c4016b995 100644
--- a/include/hw/pci/pci.h
+++ b/include/hw/pci/pci.h
@@ -467,6 +467,11 @@ void pci_for_each_device(PCIBus *bus, int bus_num,
 void pci_for_each_device_reverse(PCIBus *bus, int bus_num,
                                  pci_bus_dev_fn fn,
                                  void *opaque);
+void pci_for_each_device_under_bus(PCIBus *bus,
+                                   pci_bus_dev_fn fn, void *opaque);
+void pci_for_each_device_under_bus_reverse(PCIBus *bus,
+                                           pci_bus_dev_fn fn,
+                                           void *opaque);
 void pci_for_each_bus_depth_first(PCIBus *bus, pci_bus_ret_fn begin,
                                   pci_bus_fn end, void *parent_state);
 PCIDevice *pci_get_function_0(PCIDevice *pci_dev);
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 3ca6cc8118..a3ad6abd33 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -2134,8 +2134,7 @@ dmar_host_bridges(Object *obj, void *opaque)
         PCIBus *bus = PCI_HOST_BRIDGE(obj)->bus;
 
         if (bus && !pci_bus_bypass_iommu(bus)) {
-            pci_for_each_device(bus, pci_bus_num(bus), insert_scope,
-                                scope_blob);
+            pci_for_each_device_under_bus(bus, insert_scope, scope_blob);
         }
     }
 
@@ -2341,7 +2340,7 @@ ivrs_host_bridges(Object *obj, void *opaque)
         PCIBus *bus = PCI_HOST_BRIDGE(obj)->bus;
 
         if (bus && !pci_bus_bypass_iommu(bus)) {
-            pci_for_each_device(bus, pci_bus_num(bus), insert_ivhd, ivhd_blob);
+            pci_for_each_device_under_bus(bus, insert_ivhd, ivhd_blob);
         }
     }
 
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 17e59cb3a3..4a84e478ce 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -1654,9 +1654,9 @@ static const pci_class_desc pci_class_descriptions[] =
     { 0, NULL}
 };
 
-static void pci_for_each_device_under_bus_reverse(PCIBus *bus,
-                                                  pci_bus_dev_fn fn,
-                                                  void *opaque)
+void pci_for_each_device_under_bus_reverse(PCIBus *bus,
+                                           pci_bus_dev_fn fn,
+                                           void *opaque)
 {
     PCIDevice *d;
     int devfn;
@@ -1679,8 +1679,8 @@ void pci_for_each_device_reverse(PCIBus *bus, int bus_num,
     }
 }
 
-static void pci_for_each_device_under_bus(PCIBus *bus,
-                                          pci_bus_dev_fn fn, void *opaque)
+void pci_for_each_device_under_bus(PCIBus *bus,
+                                   pci_bus_dev_fn fn, void *opaque)
 {
     PCIDevice *d;
     int devfn;
diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c
index 6e95d82903..914a9bf3d1 100644
--- a/hw/pci/pcie.c
+++ b/hw/pci/pcie.c
@@ -694,9 +694,7 @@ void pcie_cap_slot_write_config(PCIDevice *dev,
         (!(old_slt_ctl & PCI_EXP_SLTCTL_PCC) ||
         (old_slt_ctl & PCI_EXP_SLTCTL_PIC_OFF) != PCI_EXP_SLTCTL_PIC_OFF)) {
         PCIBus *sec_bus = pci_bridge_get_sec_bus(PCI_BRIDGE(dev));
-        pci_for_each_device(sec_bus, pci_bus_num(sec_bus),
-                            pcie_unplug_device, NULL);
-
+        pci_for_each_device_under_bus(sec_bus, pcie_unplug_device, NULL);
         pci_word_test_and_clear_mask(exp_cap + PCI_EXP_SLTSTA,
                                      PCI_EXP_SLTSTA_PDS);
         if (dev->cap_present & QEMU_PCIE_LNKSTA_DLLLA ||
diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 7430bd6314..5bfd4aa9e5 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -1317,8 +1317,7 @@ static int spapr_dt_pci_bus(SpaprPhbState *sphb, PCIBus *bus,
                           RESOURCE_CELLS_SIZE));
 
     assert(bus);
-    pci_for_each_device_reverse(bus, pci_bus_num(bus),
-                                spapr_dt_pci_device_cb, &cbinfo);
+    pci_for_each_device_under_bus_reverse(bus, spapr_dt_pci_device_cb, &cbinfo);
     if (cbinfo.err) {
         return cbinfo.err;
     }
@@ -2306,8 +2305,8 @@ static void spapr_phb_pci_enumerate_bridge(PCIBus *bus, PCIDevice *pdev,
         return;
     }
 
-    pci_for_each_device(sec_bus, pci_bus_num(sec_bus),
-                        spapr_phb_pci_enumerate_bridge, bus_no);
+    pci_for_each_device_under_bus(sec_bus, spapr_phb_pci_enumerate_bridge,
+                                  bus_no);
     pci_default_write_config(pdev, PCI_SUBORDINATE_BUS, *bus_no, 1);
 }
 
@@ -2316,9 +2315,8 @@ static void spapr_phb_pci_enumerate(SpaprPhbState *phb)
     PCIBus *bus = PCI_HOST_BRIDGE(phb)->bus;
     unsigned int bus_no = 0;
 
-    pci_for_each_device(bus, pci_bus_num(bus),
-                        spapr_phb_pci_enumerate_bridge,
-                        &bus_no);
+    pci_for_each_device_under_bus(bus, spapr_phb_pci_enumerate_bridge,
+                                  &bus_no);
 
 }
 
diff --git a/hw/ppc/spapr_pci_nvlink2.c b/hw/ppc/spapr_pci_nvlink2.c
index 8ef9b40a18..7fb0cf4d04 100644
--- a/hw/ppc/spapr_pci_nvlink2.c
+++ b/hw/ppc/spapr_pci_nvlink2.c
@@ -164,8 +164,7 @@ static void spapr_phb_pci_collect_nvgpu(PCIBus *bus, PCIDevice *pdev,
         return;
     }
 
-    pci_for_each_device(sec_bus, pci_bus_num(sec_bus),
-                        spapr_phb_pci_collect_nvgpu, opaque);
+    pci_for_each_device_under_bus(sec_bus, spapr_phb_pci_collect_nvgpu, opaque);
 }
 
 void spapr_phb_nvgpu_setup(SpaprPhbState *sphb, Error **errp)
@@ -183,8 +182,8 @@ void spapr_phb_nvgpu_setup(SpaprPhbState *sphb, Error **errp)
     sphb->nvgpus->nv2_atsd_current = sphb->nv2_atsd_win_addr;
 
     bus = PCI_HOST_BRIDGE(sphb)->bus;
-    pci_for_each_device(bus, pci_bus_num(bus),
-                        spapr_phb_pci_collect_nvgpu, sphb->nvgpus);
+    pci_for_each_device_under_bus(bus, spapr_phb_pci_collect_nvgpu,
+                                  sphb->nvgpus);
 
     if (sphb->nvgpus->err) {
         error_propagate(errp, sphb->nvgpus->err);
diff --git a/hw/ppc/spapr_pci_vfio.c b/hw/ppc/spapr_pci_vfio.c
index f3b37df8ea..2a76b4e0b5 100644
--- a/hw/ppc/spapr_pci_vfio.c
+++ b/hw/ppc/spapr_pci_vfio.c
@@ -164,8 +164,8 @@ static void spapr_phb_vfio_eeh_clear_dev_msix(PCIBus *bus,
 
 static void spapr_phb_vfio_eeh_clear_bus_msix(PCIBus *bus, void *opaque)
 {
-       pci_for_each_device(bus, pci_bus_num(bus),
-                           spapr_phb_vfio_eeh_clear_dev_msix, NULL);
+       pci_for_each_device_under_bus(bus, spapr_phb_vfio_eeh_clear_dev_msix,
+                                     NULL);
 }
 
 static void spapr_phb_vfio_eeh_pre_reset(SpaprPhbState *sphb)
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index 6fafffb029..1b51a72838 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -1163,8 +1163,7 @@ static void s390_pci_enumerate_bridge(PCIBus *bus, PCIDevice *pdev,
     }
 
     /* Assign numbers to all child bridges. The last is the highest number. */
-    pci_for_each_device(sec_bus, pci_bus_num(sec_bus),
-                        s390_pci_enumerate_bridge, s);
+    pci_for_each_device_under_bus(sec_bus, s390_pci_enumerate_bridge, s);
     pci_default_write_config(pdev, PCI_SUBORDINATE_BUS, s->bus_no, 1);
 }
 
@@ -1193,7 +1192,7 @@ static void s390_pcihost_reset(DeviceState *dev)
      * on every system reset, we also have to reassign numbers.
      */
     s->bus_no = 0;
-    pci_for_each_device(bus, pci_bus_num(bus), s390_pci_enumerate_bridge, s);
+    pci_for_each_device_under_bus(bus, s390_pci_enumerate_bridge, s);
 }
 
 static void s390_pcihost_class_init(ObjectClass *klass, void *data)
diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
index ca0a98187e..027190fa44 100644
--- a/hw/xen/xen_pt.c
+++ b/hw/xen/xen_pt.c
@@ -615,8 +615,8 @@ static void xen_pt_region_update(XenPCIPassthroughState *s,
     }
 
     args.type = d->io_regions[bar].type;
-    pci_for_each_device(pci_get_bus(d), pci_dev_bus_num(d),
-                        xen_pt_check_bar_overlap, &args);
+    pci_for_each_device_under_bus(pci_get_bus(d),
+                                  xen_pt_check_bar_overlap, &args);
     if (args.rc) {
         XEN_PT_WARN(d, "Region: %d (addr: 0x%"FMT_PCIBUS
                     ", len: 0x%"FMT_PCIBUS") is overlapped.\n",
-- 
MST



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 00:12:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 00:12:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219615.380473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhhPX-000052-T4; Tue, 02 Nov 2021 00:12:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219615.380473; Tue, 02 Nov 2021 00:12:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhhPX-00004s-Pl; Tue, 02 Nov 2021 00:12:19 +0000
Received: by outflank-mailman (input) for mailman id 219615;
 Tue, 02 Nov 2021 00:12:18 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z8t6=PV=kernel.org=sstabellini@srs-us1.protection.inumbo.net>)
 id 1mhhPW-0008WS-Fp
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 00:12:18 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 89b96620-3b71-11ec-854e-12813bfff9fa;
 Tue, 02 Nov 2021 00:12:17 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 4C23960EBC;
 Tue,  2 Nov 2021 00:12:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89b96620-3b71-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635811936;
	bh=ia6BxbBShWSVuQ1UF4w+m4ait06Xt/Y322Pb2NRdBVQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fIC8AjPtPRBp/kAlDEqLsPOXjWUxSoqDIT39f0GYfYl3HDmjiB2ofgTmjt3N4oapY
	 f9kr2bCFoUTwD36ZlH2m7o4aDkpESFRKmSYF9s7Syh7/0PB7KEyy7ruBpg3n1ttzgH
	 WIBh4tOqAYyJRj7ujenxJFKhFWaFPbYYSsV69+rofEYbyZgk26Kiyo6TPsk3kASDhz
	 2JeQyF55orbT1F7LR2S0EWSEs9oCvFxjrcppkjz/40wtlAs7Hd4LsyRokx6UBrtPKn
	 tZ2xDRFP1gW9Q+WYCj2Tni0cJp0YCXzEFjoCNU6yUm6/e23hlA58cp0ty5Gqy1V8Ue
	 RuBU8H3sT1thQ==
Date: Mon, 1 Nov 2021 17:12:15 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Juergen Gross <jgross@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org, 
    iwj@xenproject.org, cardoe@cardoe.com, wl@xen.org, 
    anthony.perard@citrix.com, 
    Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: Re: [PATCH 2/3] automation: Linux 5.10.74 test-artifact
In-Reply-To: <bf4c4138-2bd3-4fcb-b279-9f21495a20cc@suse.com>
Message-ID: <alpine.DEB.2.21.2111011711230.20134@sstabellini-ThinkPad-T480s>
References: <alpine.DEB.2.21.2110210831470.2311@sstabellini-ThinkPad-T480s> <20211021230839.10794-2-sstabellini@kernel.org> <19aa9196-eb5f-22a1-206c-c9c87ee79fa9@citrix.com> <alpine.DEB.2.21.2110221219300.2311@sstabellini-ThinkPad-T480s>
 <d559b765-9e38-00bd-039b-9c33845b8e54@suse.com> <alpine.DEB.2.21.2110251753200.4586@sstabellini-ThinkPad-T480s> <8c0a2a97-04ab-4836-fc35-026dd7c122a4@suse.com> <alpine.DEB.2.21.2110271543150.20134@sstabellini-ThinkPad-T480s>
 <alpine.DEB.2.21.2110271619240.20134@sstabellini-ThinkPad-T480s> <4f82901a-2e74-f4ee-311e-b8187d856745@suse.com> <alpine.DEB.2.21.2110280939130.20134@sstabellini-ThinkPad-T480s> <bf4c4138-2bd3-4fcb-b279-9f21495a20cc@suse.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1782439853-1635811936=:20134"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1782439853-1635811936=:20134
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 29 Oct 2021, Juergen Gross wrote:
> On 28.10.21 18:41, Stefano Stabellini wrote:
> > On Thu, 28 Oct 2021, Juergen Gross wrote:
> > > On 28.10.21 01:24, Stefano Stabellini wrote:
> > > > On Wed, 27 Oct 2021, Stefano Stabellini wrote:
> > > > > On Wed, 27 Oct 2021, Juergen Gross wrote:
> > > > > > On 26.10.21 02:54, Stefano Stabellini wrote:
> > > > > > > On Mon, 25 Oct 2021, Juergen Gross wrote:
> > > > > > > > On 22.10.21 21:41, Stefano Stabellini wrote:
> > > > > > > > > +Juergen
> > > > > > > > > 
> > > > > > > > > On Fri, 22 Oct 2021, Andrew Cooper wrote:
> > > > > > > > > > On 22/10/2021 00:08, Stefano Stabellini wrote:
> > > > > > > > > > > +# build depends
> > > > > > > > > > > +RUN apt-get update && \
> > > > > > > > > > > +    apt-get --quiet --yes install \
> > > > > > > > > > > +        build-essential \
> > > > > > > > > > > +        libssl-dev \
> > > > > > > > > > > +        bc \
> > > > > > > > > > > +        curl \
> > > > > > > > > > > +        flex \
> > > > > > > > > > > +        bison \
> > > > > > > > > > > +        libelf-dev \
> > > > > > > > > > > +        && \
> > > > > > > > > > > +    \
> > > > > > > > > > > +    # Build the kernel
> > > > > > > > > > > +    curl -fsSLO
> > > > > > > > > > > https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-"$LINUX_VERSION".tar.xz
> > > > > > > > > > > && \
> > > > > > > > > > > +    tar xvJf linux-"$LINUX_VERSION".tar.xz && \
> > > > > > > > > > > +    cd linux-"$LINUX_VERSION" && \
> > > > > > > > > > > +    make defconfig && \
> > > > > > > > > > > +    make xen.config && \
> > > > > > > > > > > +    cp .config .config.orig && \
> > > > > > > > > > > +    cat .config.orig | grep XEN | grep =m |sed
> > > > > > > > > > > 's/=m/=y/g' >>
> > > > > > > > > > > .config
> > > > > > > > > > > && \
> > > > > > > > > > > +    make -j$(nproc) bzImage && \
> > > > > > > > > > 
> > > > > > > > > > defconfig is huuuuge.  Can we use tinyconfig instead?
> > > > > > > > > > 
> > > > > > > > > > Also, you want to turn off CONFIG_MODULES seeing as you only
> > > > > > > > > > copy
> > > > > > > > > > bzImage to the test.
> > > > > > > > > > 
> > > > > > > > > > This also fixes the fact that `grep XEN` also matches
> > > > > > > > > > CONFIG_NETXEN_NIC
> > > > > > > > > > which has nothing to do with Xen.
> > > > > > > > > 
> > > > > > > > > Tinyconfig would be a good idea but it crashes on QEMU with
> > > > > > > > > the
> > > > > > > > > appended
> > > > > > > > > boot log. I did:
> > > > > > > > > 
> > > > > > > > > # make tinyconfig
> > > > > > > > > # make xen.config
> > > > > > > > > # make bzImage
> > > > > > > > > 
> > > > > > > > > Of course we could have our own tailored special kernel config
> > > > > > > > > for
> > > > > > > > > this
> > > > > > > > > kernel but I like the simplicify of "make tinyconfig" or "make
> > > > > > > > > defconfig" followed by "make xen.config".
> > > > > > > > > 
> > > > > > > > > Unless you know one kconfig option or two that we need to add
> > > > > > > > > to
> > > > > > > > > tinyconfig to make it work my preference is to go with
> > > > > > > > > defconfig
> > > > > > > > > for
> > > > > > > > > now.
> > > > > > > > 
> > > > > > > > You will need to add the dom0 and SMP related config options at
> > > > > > > > least.
> > > > > > > > 
> > > > > > > > I'll have a look at config.xen, which is a little bit weird: it
> > > > > > > > configures the backends, but not dom0.
> > > > > > > 
> > > > > > > Thanks, it would be good if make tinyconfig && make xen.config
> > > > > > > would
> > > > > > > just work on QEMU. In the meantime I'll keep defconfig for this
> > > > > > > test,
> > > > > > > we
> > > > > > > can always improve later.
> > > > > > 
> > > > > > Can you please test the attached patch?
> > > > > 
> > > > > Yes, that works, thanks!
> > > > 
> > > > Sorry, I spoke too soon: same error as before:
> > > > 
> > > > https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/1722909607/raw
> > > > 
> > > > (XEN) Hardware Dom0 crashed: rebooting machine in 5 seconds.
> > > > 
> > > > No output from the kernel.
> > > 
> > > This is not very surprising, as tinyconfig doesn't have CONFIG_PRINTK.
> > > BTW, it doesn't have initrd support either (BLK_DEV_RAM and
> > > BLK_DEV_INITRD), so I added those to xen.config as well.
> > > 
> > > With the (updated) attached patch the kernel boots fine as dom0 until
> > > rootfs is tried to be mounted on a physical machine.
> > > 
> > > I've added CONFIG_BUG, too, in order to have more debugging output if
> > > needed.
> > 
> > Much better, now there is output:
> > https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/1726396600/raw
> > 
> > This kernel is used as dom0 and from the logs it looks like for dom0 we
> > need a couple more things:
> > - flocks
> 
> CONFIG_FILE_LOCKING probably wants to be added.
> 
> > - the kconfig to recognize #!/bin/sh
> 
> This is probably CONFIG_BINFMT_SCRIPT.
> 
> I'm not sure those should be added to the upstream xen.config.

I don't know either... They are certainly required for dom0, but not for
domU. Do we want xen.config to be for domU only or for domU and dom0? If
we want it to be for both, then CONFIG_FILE_LOCKING and
CONFIG_BINFMT_SCRIPT should be added otherwise not.
--8323329-1782439853-1635811936=:20134--


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 00:33:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 00:33:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219627.380483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhhjk-0002Ot-Mc; Tue, 02 Nov 2021 00:33:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219627.380483; Tue, 02 Nov 2021 00:33:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhhjk-0002Om-Jl; Tue, 02 Nov 2021 00:33:12 +0000
Received: by outflank-mailman (input) for mailman id 219627;
 Tue, 02 Nov 2021 00:33:12 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K6do=PV=gmail.com=bobbyeshleman@srs-us1.protection.inumbo.net>)
 id 1mhhjj-0002Og-WC
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 00:33:12 +0000
Received: from mail-pl1-x629.google.com (unknown [2607:f8b0:4864:20::629])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 13b40cad-366e-450e-815b-a5390e411a91;
 Tue, 02 Nov 2021 00:33:11 +0000 (UTC)
Received: by mail-pl1-x629.google.com with SMTP id t11so13283721plq.11
 for <xen-devel@lists.xenproject.org>; Mon, 01 Nov 2021 17:33:11 -0700 (PDT)
Received: from piano ([2601:1c2:4c02:4c00::4])
 by smtp.gmail.com with ESMTPSA id e8sm17634626pfn.45.2021.11.01.17.33.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Nov 2021 17:33:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13b40cad-366e-450e-815b-a5390e411a91
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:in-reply-to;
        bh=yCAVZmUWoVvp4yqkTge2abWtyRUneTUVixm2cYcl5Ls=;
        b=gemdhomL9L5hgpOijArx06DyAw5+MVCjS+GFFma6y3n0shTtpq6TgzRcM3IKiRG2QU
         Bp8tkx9PirfY1VSv+SP3solCVJP78rXtIn7SAPQcBDkswY7XSQPu55qq00/CB6Cb6Sux
         aUIh0AFrRIPWY66prv+pXtbX9i+3cCOvqxqPKHk8k5+s1FEPLXyOwDHhH7ASYXtS0gD7
         UBqRxd2KK1zHgDKr7XEpu/9JEvtsSfn9nqlBMCuokhhVJpT8aynpLrsqyie2ledoXhtl
         efhS9etSocHfp98BrTOtEnZmcUaVzWvf6zK7UvfMe+UKVTLrm8zbDQIqzN/SabnzY2Kl
         At7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=yCAVZmUWoVvp4yqkTge2abWtyRUneTUVixm2cYcl5Ls=;
        b=iWH4mW/Z+2omDrf76yxYYFHgigsX+yuFp0n0MU6LeFiN+NziXjjhrPUxRvOxd3b2eW
         vJ0weUif7aaOWrRs0JXMdPsEEQ1P5VlEKYwuZwmQqhnjjKCwQRHvMnQAJKV/azjXEQqc
         l4hZj58SF9ZC0OZ/Y7GNfTyWxYY1QsiA3hl6q/xk3vPmbyUInITDR1ixTAww5MkX0PKj
         J/84+dqNSocVhCS/6nAWUebtFUt8yVBv46fPRprec17SZiJ3skWHxDmoB+lrjXPGQRgs
         r8RKCyX9fZPcLXTq5Hrxt/swuw4Qso4rbf77RmguNlPPIc7pN/QjElwCPG7DpjZVq42S
         L4pg==
X-Gm-Message-State: AOAM530a9OzVC+ZANT8wEGcpHvzHej8Zid/1Nl579+HQ68ecxqeSBSJl
	ASPtCUIeMZVTPZNAOUIMz5I=
X-Google-Smtp-Source: ABdhPJxoOh2Sr2JNc7n/pvhUkXcW6C5vHcWoSl/Z2YCGAKL6DTY4d01xRuKpKi8iksQ5DUPBJ3ReTA==
X-Received: by 2002:a17:902:7804:b0:13e:d4c6:e701 with SMTP id p4-20020a170902780400b0013ed4c6e701mr28119926pll.66.1635813190312;
        Mon, 01 Nov 2021 17:33:10 -0700 (PDT)
Date: Mon, 1 Nov 2021 17:33:07 -0700
From: Bobby Eshleman <bobbyeshleman@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jane Malalane <jane.malalane@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: Re: Arch-neutral name for hardware interrupt support
Message-ID: <YYCHQ5Z6yCxQf6JO@piano>
References: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>

On Mon, Nov 01, 2021 at 10:47:26AM +0000, Andrew Cooper wrote:
> Hello,
> 
> On ARM, the GIC is a hard prerequisite for VMs.
> 
> I can't remember what the state of RISCV is, but IIRC there is still
> some debate over how interrupts are expected to work under virt.
> 

Yes sir, that addition to the spec is not yet released (publically) AFAICT.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 03:08:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 03:08:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219640.380501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhk99-0003hY-8P; Tue, 02 Nov 2021 03:07:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219640.380501; Tue, 02 Nov 2021 03:07:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhk99-0003hQ-2O; Tue, 02 Nov 2021 03:07:35 +0000
Received: by outflank-mailman (input) for mailman id 219640;
 Tue, 02 Nov 2021 03:07:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhk97-0003gx-Q3; Tue, 02 Nov 2021 03:07:33 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhk97-0002XM-KC; Tue, 02 Nov 2021 03:07:33 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhk97-0004gr-0e; Tue, 02 Nov 2021 03:07:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhk96-0002xx-Vz; Tue, 02 Nov 2021 03:07:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=9WNA1tAYfw5DrBYfiKxQjUQR9oY43FxAh8efgUQDDiY=; b=ETfaFGb0qMgG/jPxu6SD5AX4Lo
	GercGJJdI1LoYSb74kdkY41fgK+iGbkECDdAKWGZbOG7EWga7j6K2NrVOAYGVaWVgiEsrfsI1QXkA
	WtEjq+C15WwkHTpI96u+v94xSKxUKeD3ixQuMY4vA1SpDB5RpbQs8crsjhsM7WLHQpYE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165973-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 165973: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-examine:memdisk-try-append:fail:regression
    xen-unstable:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9f8434d77859462ad98a51ec49ad8e23769d9b10
X-Osstest-Versions-That:
    xen=3030a73bf849a50411da95e94abf23cb7e8642fc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Nov 2021 03:07:32 +0000

flight 165973 xen-unstable real [real]
flight 165977 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/165973/
http://logs.test-lab.xenproject.org/osstest/logs/165977/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-examine      4 memdisk-try-append       fail REGR. vs. 165966

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 165966
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165966
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165966
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165966
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165966
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165966
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165966
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165966
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165966
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165966
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165966
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165966
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165966
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10
baseline version:
 xen                  3030a73bf849a50411da95e94abf23cb7e8642fc

Last test of basis   165966  2021-11-01 01:52:55 Z    1 days
Testing same since   165973  2021-11-01 16:07:55 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 9f8434d77859462ad98a51ec49ad8e23769d9b10
Author: Ian Jackson <iwj@xenproject.org>
Date:   Mon Nov 1 12:36:26 2021 +0000

    README, xen/Makefile: Change version to 4.16-rc
    
    Signed-off-by: Ian Jackson <iwj@xenproject.org>

commit c9ce6afbf2d7772f47fc572bb7fc9555724927ed
Author: Ian Jackson <iwj@xenproject.org>
Date:   Mon Nov 1 12:33:54 2021 +0000

    Config.mk: pin QEMU_UPSTREAM_REVISION (prep for Xen 4.16 RC1)
    
    Signed-off-by: Ian Jackson <iwj@xenproject.org>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 03:25:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 03:25:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219650.380518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhkQf-00064x-VU; Tue, 02 Nov 2021 03:25:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219650.380518; Tue, 02 Nov 2021 03:25:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhkQf-00064q-S1; Tue, 02 Nov 2021 03:25:41 +0000
Received: by outflank-mailman (input) for mailman id 219650;
 Tue, 02 Nov 2021 03:25:40 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mBjp=PV=canb.auug.org.au=sfr@srs-us1.protection.inumbo.net>)
 id 1mhkQd-00064k-2P
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 03:25:40 +0000
Received: from gandalf.ozlabs.org (unknown [150.107.74.76])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 8abba112-3b8c-11ec-854e-12813bfff9fa;
 Tue, 02 Nov 2021 03:25:36 +0000 (UTC)
Received: from authenticated.ozlabs.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by mail.ozlabs.org (Postfix) with ESMTPSA id 4HjwJr4qd9z4xbG;
 Tue,  2 Nov 2021 14:25:32 +1100 (AEDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8abba112-3b8c-11ec-854e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canb.auug.org.au;
	s=201702; t=1635823533;
	bh=kQQNzCvwzxdUuDSfmbavyv5NvfpdyD0xurk8gKK4fQU=;
	h=Date:From:To:Cc:Subject:From;
	b=HY3DLknuf0ueGGBFXZ1usE/kI2EfQZCxPVOngoS9D+G+sTQn7sns05nhYVPmBt1Qh
	 Ek6rUQoULmCgcsQbmtftl0wE+b6cCu6UJ03nrHz06pG98Sc2il+y+49vPfApzihxWQ
	 jSv3zoMWuFbHCxT8cdAnLKEUVF3zIMJS10RZw6qKJ3huhWZ5mB4VIbjQJmO8GF5Vgh
	 stp8MJ+mUwU8dOTlKQXDLZh19ZeFBCZkWg7RJ4LW0eUvM4su6SPdk94v0pfyk2oz8i
	 Bgv+XVtw1ELKpqg3AWLdQ9/vz8wQmLuA6knmpJH4G9SQWKS4hIMpKPrf2uU15Gyjqb
	 XJFp+W2iFwPZw==
Date: Tue, 2 Nov 2021 14:25:31 +1100
From: Stephen Rothwell <sfr@canb.auug.org.au>
To: Juergen Gross <jgross@suse.com>, Konrad Rzeszutek Wilk
 <konrad.wilk@oracle.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Xen Devel
 <xen-devel@lists.xenproject.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Linux Next
 Mailing List <linux-next@vger.kernel.org>, "Peter Zijlstra (Intel)"
 <peterz@infradead.org>
Subject: linux-next: manual merge of the xen-tip tree with Linus' tree
Message-ID: <20211102142531.600cd8c9@canb.auug.org.au>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/to2PmTmvm2+Zd5uiRp+Mb3Z";
 protocol="application/pgp-signature"; micalg=pgp-sha256

--Sig_/to2PmTmvm2+Zd5uiRp+Mb3Z
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Hi all,

Today's linux-next merge of the xen-tip tree got a conflict in:

  arch/x86/include/asm/xen/hypercall.h

between commits:

  f4afb713e5c3 ("x86/xen: Make get_debugreg() noinstr")
  7361fac0465b ("x86/xen: Make set_debugreg() noinstr")

from Linus' tree and commit:

  321d124f13fd ("xen: allow pv-only hypercalls only with CONFIG_XEN_PV")

from the xen-tip tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

--=20
Cheers,
Stephen Rothwell

--Sig_/to2PmTmvm2+Zd5uiRp+Mb3Z
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEENIC96giZ81tWdLgKAVBC80lX0GwFAmGAr6sACgkQAVBC80lX
0GxhEQf/aR2pdzgnAazQxMsNREPH1IeUYV3HVhejE2JQirQl3UfGQay1RxKEuKea
q75ctvmRgD3+zh1MfW8Z4hsQTW3WOKc4QzasPr/xNgs1zucyzCnxF0Zjd2tj5M6C
Jl8apkM5tKinLsAeSAZYLml614Jyh6L5e/4KImg2IEyu4dyZ4n5lfV3GrJcixe8L
kvMCiTB+lWI4sDNxd5lfi/2a/2gTSZNvN8OjCT93MunhBDYq/5SYStJiRT0usDYt
LbRow1YA2Zd3FWhBLRbFThmMRyVtON1FxJ6rm1wrS9GFVNgPEJkJfxDrP6k76J0v
uWlQ31YChu/INl8pjJPpSNdb++TKqA==
=zaTN
-----END PGP SIGNATURE-----

--Sig_/to2PmTmvm2+Zd5uiRp+Mb3Z--


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 03:46:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 03:46:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219663.380544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhkkR-0008RS-1p; Tue, 02 Nov 2021 03:46:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219663.380544; Tue, 02 Nov 2021 03:46:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhkkQ-0008RL-VD; Tue, 02 Nov 2021 03:46:06 +0000
Received: by outflank-mailman (input) for mailman id 219663;
 Tue, 02 Nov 2021 03:46:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhkkQ-0008RB-Fx; Tue, 02 Nov 2021 03:46:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhkkQ-00038l-02; Tue, 02 Nov 2021 03:46:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhkkP-0005mh-Lm; Tue, 02 Nov 2021 03:46:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhkkP-0003Gk-LG; Tue, 02 Nov 2021 03:46:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=xPXs0QVx3Grd+OG95GQfUjx5mTjmMO18s5OEzWD9SjM=; b=EzR1brMCleM07fWr9QJ6s0pw8W
	+1ZCRsTXY9JKaVWZ4Uc58NKBZbnNbw1JbUa3kM191GTcmG/ZpEL+8WeV1H0oXFuHHbEj+VRIWme/3
	X2JMfNZRCYwpwe0dXXquqa6zzmTkGAQyWkpcdgCTPW4mLnfhZ1PzzMjWoi5cfVMTzuWM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165975-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 165975: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-i386:xen-build:fail:regression
    qemu-mainline:build-i386-xsm:xen-build:fail:regression
    qemu-mainline:build-armhf:xen-build:fail:regression
    qemu-mainline:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-amd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-i386:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-coresched-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:build-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:build-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-intel:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=af531756d25541a1b3b3d9a14e72e7fedd941a2e
X-Osstest-Versions-That:
    qemuu=50352cce138ef3b30c1cda28a4df68fff5da3202
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Nov 2021 03:46:05 +0000

flight 165975 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165975/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386                    6 xen-build                fail REGR. vs. 165682
 build-i386-xsm                6 xen-build                fail REGR. vs. 165682
 build-armhf                   6 xen-build                fail REGR. vs. 165682

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-cubietruck  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-amd  1 build-check(1)               blocked n/a
 test-amd64-i386-pair          1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-i386  1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-amd64  1 build-check(1)               blocked  n/a
 test-amd64-coresched-i386-xl  1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 build-i386-libvirt            1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-intel  1 build-check(1)             blocked n/a
 test-amd64-i386-xl            1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-pvshim     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64  1 build-check(1)         blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1)  blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-i386-xl-qemuu-ovmf-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-win7-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-ws16-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-shadow     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-vhd        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165682
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                af531756d25541a1b3b3d9a14e72e7fedd941a2e
baseline version:
 qemuu                50352cce138ef3b30c1cda28a4df68fff5da3202

Last test of basis   165682  2021-10-19 21:09:14 Z   13 days
Failing since        165694  2021-10-20 18:09:12 Z   12 days   34 attempts
Testing same since   165952  2021-10-31 00:39:26 Z    2 days    8 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexey Baturo <baturo.alexey@gmail.com>
  Alexey Baturo <space.monkey.delivers@gmail.com>
  Alistair Francis <alistair.francis@wdc.com>
  Anatoly Parshintsev <kupokupokupopo@gmail.com>
  Andrew Jones <drjones@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  BALATON Zoltan <balaton@eik.bme.hu>
  Bin Meng <bmeng.cn@gmail.com>
  Chenyi Qiang <chenyi.qiang@intel.com>
  Chih-Min Chao <chihmin.chao@sifive.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cédric Le Goater <clg@kaod.org>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  David Gibson <david@gibson.dropbear.id.au>
  David Hildenbrand <david@redhat.com>
  Dr. David Alan Gilbert <dgilbert@redhat.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Frank Chang <frank.chang@sifive.com>
  Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
  Gavin Shan <gshan@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Greg Kurz <groug@kaod.org>
  Gustavo Romero <gromero@linux.ibm.com>
  Igor Mammedov <imammedo@redhat.com>
  Jason Wang <jasowang@redhat.com>
  John Snow <jsnow@redhat.com>
  John Wang <wangzhiqiang02@inspur.com>
  John Wang <wangzq.jn@gmail.com>
  Jose Martins <josemartins90@gmail.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Luc Michel <lmichel@kalray.eu>
  Luis Pires <luis.pires@eldorado.org.br>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Mathieu Poirier <mathieu.poirier@linaro.org>
  Michael S. Tsirkin <mst@redhat.com>
  Mingwang Li <limingwang@huawei.com>
  Oğuz Ersen <oguzersen@protonmail.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Krempa <pkrempa@redhat.com>
  Philipp Tomsich <philipp.tomsich@vrull.eu>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Shuuichirou Ishii <ishii.shuuichir@fujitsu.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  Tong Ho <tong.ho@xilinx.com>
  Travis Geiselbrecht <travisg@gmail.com>
  Vincent Palatin <vpalatin@rivosinc.com>
  Vivek Goyal <vgoyal@redhat.com>
  Xueming Li <xuemingl@nvidia.com>
  Yanan Wang <wangyanan55@huawei.com>
  Yifei Jiang <jiangyifei@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               fail    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   fail    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           blocked 
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-i386-xl                                           blocked 
 test-amd64-coresched-i386-xl                                 blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     blocked 
 test-amd64-i386-freebsd10-amd64                              blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          blocked 
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-armhf-armhf-xl-cubietruck                               blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         blocked 
 test-amd64-i386-freebsd10-i386                               blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         blocked 
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 blocked 
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    blocked 
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              blocked 
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      blocked 
 test-amd64-i386-xl-vhd                                       blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 6076 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 05:37:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 05:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219687.380600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhmTe-0002Hr-9I; Tue, 02 Nov 2021 05:36:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219687.380600; Tue, 02 Nov 2021 05:36:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhmTe-0002Hk-51; Tue, 02 Nov 2021 05:36:54 +0000
Received: by outflank-mailman (input) for mailman id 219687;
 Tue, 02 Nov 2021 05:36:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhmTd-0002Ha-Da; Tue, 02 Nov 2021 05:36:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhmTd-0005SO-6H; Tue, 02 Nov 2021 05:36:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhmTc-0001jn-Rn; Tue, 02 Nov 2021 05:36:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhmTc-0008Lp-RD; Tue, 02 Nov 2021 05:36:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=pGuBwVBSgZ3F+t4ODzruAYjP5THTJQ0BFeJy8gbfst0=; b=joWjGGo9eZL0Mp4wVfKIuV47ZT
	gVk+o8P1h1m3echRsj9gKKW0VtPGAQfyjsXKxKoBlSY0pvEtxa2Pa3CnvARM5brrH782RS41vZbjG
	V89m+KI2Yv6IGkpPDEQbBVPmDI8W1nhYfbUmH4gi1pF9s1u67WlGTDnwPT5KrwfnthA0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165976-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 165976: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=e66435936756d9bce96433be183358a8994a0f0d
X-Osstest-Versions-That:
    linux=8bb7eca972ad531c9b149c0a51ab43a417385813
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Nov 2021 05:36:52 +0000

flight 165976 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165976/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165965
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165965
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165965
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165965
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165965
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165965
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165965
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165965
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                e66435936756d9bce96433be183358a8994a0f0d
baseline version:
 linux                8bb7eca972ad531c9b149c0a51ab43a417385813

Last test of basis   165965  2021-11-01 01:11:29 Z    1 days
Failing since        165974  2021-11-01 17:40:47 Z    0 days    2 attempts
Testing same since   165976  2021-11-01 23:11:48 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adrian Hunter <adrian.hunter@intel.com>
  Alexei Starovoitov <ast@kernel.org>
  Anand Jain <anand.jain@oracle.com>
  Anders Roxell <anders.roxell@linaro.org>
  Andrea Righi <andrea.righi@canonical.com>
  André Almeida <andrealmeid@collabora.com>
  Anton Altaparmakov <anton@tuxera.com>
  Arnd Bergmann <arnd@arndb.de>
  Barry Song <song.bao.hua@hisilicon.com>
  Bart Van Assche <bvanassche@acm.org>
  Bharata B Rao <bharata@amd.com>
  Bixuan Cui <cuibixuan@huawei.com>
  Boqun Feng <boqun.feng@gmail.com>
  Borislav Petkov <bp@suse.de>
  Cai Huoqing <caihuoqing@baidu.com>
  Catalin Marinas <catalin.marinas@arm.com>
  Chang S. Bae <chang.seok.bae@intel.com>
  Changcheng Deng <deng.changcheng@zte.com.cn>
  Chao Yu <chao@kernel.org>
  Chao Yu <yuchao0@huawei.com>
  Christoph Hellwig <hch@lst.de>
  Christophe JAILLET <christophe.jaillet@wanadoo.fr>
  Claudiu Beznea <claudiu.beznea@microchip.com>
  Coly Li <colyli@suse.de>
  Damien Le Moal <damien.lemoal@wdc.com>
  Dan Carpenter <dan.carpenter@oracle.com>
  Daniel Lezcano <daniel.lezcano@linaro.org>
  Dave Hansen <dave.hansen@linux.intel.com>
  Dave Kleikamp <dave.kleikamp@oracle.com>
  David Sterba <dsterba@suse.com>
  Davidlohr Bueso <dave@stgolabs.net>
  Davidlohr Bueso <dbueso@suse.de>
  Dennis Zhou <dennis@kernel.org>
  Ding Senjie <dingsenjie@yulong.com>
  Eric Biggers <ebiggers@google.com>
  Eric Dumazet <edumazet@google.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Fainelli <f.fainelli@gmail.com>
  Frederic Weisbecker <frederic@kernel.org>
  Gao Xiang <hsiangkao@linux.alibaba.com>
  Geert Uytterhoeven <geert+renesas@glider.be>
  Geert Uytterhoeven <geert@linux-m68k.org>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guenter Roeck <linux@roeck-us.net>
  Guoqing Jiang <guoqing.jiang@linux.dev>
  Hannes Reinecke <hare@suse.de>
  Hao Wu <hao.wu@rubrik.com>
  Hao Xu <haoxu@linux.alibaba.com>
  Heiko Carstens <hca@linux.ibm.com>
  Helge Deller <deller@gmx.de>  # parisc
  Huaixin Chang <changhuaixin@linux.alibaba.com>
  Ingo Molnar <mingo@kernel.org>
  Israel Rukshin <israelr@nvidia.com>
  J. Bruce Fields <bfields@redhat.com>
  Jack Wang <jinpu.wang@ionos.com>
  Jackie Liu <liuyun01@kylinos.cn>
  Jan Höppner <hoeppner@linux.ibm.com>
  Jarkko Sakkinen <jarkko@kernel.org>
  Jeff Layton <jlayton@kernel.org>
  Jens Axboe <axboe@kernel.dk>
  Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
  Johannes Thumshirn <johannes.thumshirn@wdc.com>
  Johannes Weiner <hannes@cmpxchg.org>
  John Garry <john.garry@huawei.com>
  John Levon <john.levon@nutanix.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Josef Bacik <josef@toxicpanda.com>
  Josh Cartwright <joshc@ni.com>
  Josh Don <joshdon@google.com>
  Josh Poimboeuf <jpoimboe@redhat.com>
  Kai Song <songkai01@inspur.com>
  Kajol Jain <kjain@linux.ibm.com>
  Kan Liang <kan.liang@linux.intel.com>
  Kashyap Desai <kashyap.desai@broadcom.com>
  Kees Cook <keescook@chromium.org>
  Keith Busch <kbusch@kernel.org>
  Kevin Hilman <khilman@baylibre.com>
  Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
  Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
  Lasse Collin <lasse.collin@tukaani.org>
  Len Baker <len.baker@gmx.com>
  Len Brown <len.brown@intel.com>
  Leo Yan <leo.yan@linaro.org>
  Li Zhang <zhanglikernel@gmail.com>
  Li Zhijian <lizhijian@cn.fujitsu.com>
  Lin Feng <linf@wangsu.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Luis Chamberlain <mcgrof@kernel.org>
  Lukas Prediger <lumip@lumip.de>
  luo penghao <luo.penghao@zte.com.cn>
  Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  Marc Zyngier <maz@kernel.org>
  Marco Elver <elver@google.com>
  Marcos Paulo de Souza <mpdesouza@suse.com>
  Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com>
  Mark Brown <broonie@kernel.org>
  Mark Rutland <mark.rutland@arm.com>
  Mark Rutland <mark.rutland@arm.com> [arm64]
  Mark Wunderlich <mark.wunderlich@intel.com>
  Masahiro Yamada <masahiroy@kernel.org>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Max Filippov <jcmvbkbc@gmail.com>
  Max Gurtovoy <mgurtovoy@nvidia.com>
  Mel Gorman <mgorman@suse.de>
  Michael S. Tsirkin <mst@redhat.com>
  Michael Schmitz <schmitzmic@gmail.com>
  Michal Hocko <mhocko@suse.com>
  Mike Rapoport <rppt@linux.ibm.com>
  Mike Snitzer <snitzer@redhat.com>
  Ming Lei <ming.lei@redhat.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Miroslav Benes <mbenes@suse.cz>
  Namjae Jeon <linkinjeon@kernel.org>
  Naohiro Aota <naohiro.aota@wdc.com>
  Nathan Chancellor <nathan@kernel.org>
  Neil Armstrong <narmstrong@baylibre.com>
  Nick Desaulniers <ndesaulniers@google.com>
  Nikolay Borisov <nborisov@suse.com>
  Nilesh Javali <njavali@marvell.com>
  Noah Goldstein <goldstein.w.n@gmail.com>
  Oliver Upton <oupton@google.com>
  Omar Sandoval <osandov@fb.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Paul E. McKenney <paulmck@kernel.org>
  Pavel Begunkov <asml.silence@gmail.com>
  Peng Wang <rocking@linux.alibaba.com>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Peter Zijlstra <peterz@infradead.org>
  Petr Mladek <pmladek@suse.com>
  Phillip Lougher <phillip@squashfs.org.uk>
  Phillip Potter <phil@philpotter.co.uk>
  Qi Zheng <zhengqi.arch@bytedance.com>
  Qian Cai <quic_qiancai@quicinc.com>
  Qing Wang <wangqing@vivo.com>
  Qu Wenruo <wqu@suse.com>
  Randy Dunlap <rdunlap@infradead.org>
  Randy Dunlap <rdunlap@infradead.org> # build-tested
  Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
  Rob Herring <robh@kernel.org>
  Russell King (Oracle) <rmk+kernel@armlinux.org.uk> [arm]
  Ryusuke Konishi <konishi.ryusuke@gmail.com>
  Saravana Kannan <saravanak@google.com>
  Saurav Kashyap <skashyap@marvell.com>
  Sebastian Andrzej Siewior <bigeasy@linutronix.de>
  Serge Semin <fancer.lancer@gmail.com>
  Shanpei Chen <shanpeic@linux.alibaba.com>
  Shaokun Zhang <zhangshaokun@hisilicon.com>
  Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
  Sidong Yang <realwakka@gmail.com>
  Song Liu <song@kernel.org>
  Song Liu <songliubraving@fb.com>
  Stefan Haberland <sth@linux.ibm.com>
  Stephane Eranian <eranian@google.com>
  Stephen Rothwell <sfr@canb.auug.org.au>
  Su Yue <l@damenly.su>
  Sudeep Holla <sudeep.holla@arm.com>
  Sungjong Seo <sj1557.seo@samsung.com>
  Tejun Heo <tj@kernel.org>
  Theodore Ts'o <tytso@mit.edu>
  Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  Thomas Gleixner <tglx@linutronix.de>
  Tian Tao <tiantao6@hisilicon.com>
  Tianchen Ding <dtcccc@linux.alibaba.com>
  Tim Chen <tim.c.chen@linux.intel.com>
  Tom Lendacky <thomas.lendacky@amd.com>
  Tony Lindgren <tony@atomide.com>
  Ulf Hansson <ulf.hansson@linaro.org> # For MMC
  Valentin Schneider <valentin.schneider@arm.com>
  Vasily Gorbik <gor@linux.ibm.com>
  Vasily Gorbik <gor@linux.ibm.com> # on s390
  Vincent Guittot <vincent.guittot@linaro.org>
  Vineet Gupta <vgupta@kernel.org>
  Vladimir Murzin <vladimir.murzin@arm.com> # ARMv7M
  Vlastimil Babka <vbabka@suse.cz>
  Waiman Long <longman@redhat.com>
  Xiao Ni <xni@redhat.com>
  Xie Yongji <xieyongji@bytedance.com>
  Yafang Shao <laoar.shao@gmail.com>
  Yanfei Xu <yanfei.xu@windriver.com>
  Yang Yingliang <yangyingliang@huawei.com>
  Yanteng Si <siyanteng01@gmail.com>
  Yanteng Si <siyanteng@loongson.cn>
  Ye Bin <yebin10@huawei.com>
  Ye Guojin <ye.guojin@zte.com.cn>
  Yicong Yang <yangyicong@hisilicon.com>
  Yu Kuai <yukuai3@huawei.com>
  Yue Hu <huyue2@yulong.com>
  YueHaibing <yuehaibing@huawei.com>
  Zhang Qiao <zhangqiao22@huawei.com>
  Zheng Liang <zhengliang6@huawei.com>
  Zhouyi Zhou <zhouzhouyi@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   8bb7eca972ad..e66435936756  e66435936756d9bce96433be183358a8994a0f0d -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 07:17:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 07:17:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219710.380656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mho20-0003ND-Sk; Tue, 02 Nov 2021 07:16:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219710.380656; Tue, 02 Nov 2021 07:16:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mho20-0003N6-O0; Tue, 02 Nov 2021 07:16:28 +0000
Received: by outflank-mailman (input) for mailman id 219710;
 Tue, 02 Nov 2021 07:16:27 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mho1z-0003N0-5u
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 07:16:27 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id ca0c5864-3bac-11ec-8552-12813bfff9fa;
 Tue, 02 Nov 2021 07:16:25 +0000 (UTC)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A25whS3015586;
 Tue, 2 Nov 2021 07:16:22 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2112.outbound.protection.outlook.com [104.47.18.112])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c2wrd0g37-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 07:16:22 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB6881.eurprd03.prod.outlook.com (2603:10a6:20b:286::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Tue, 2 Nov
 2021 07:16:19 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 07:16:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca0c5864-3bac-11ec-8552-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YyTkNbvRYFRwxYRw2fh4Pynpvg0+anmEFWLmt0Pk46U7cNzIU81VIs/5ZryaIPyD9p3NW074KwmQ7eHF6pci0h52JCKZ+N5HJSEM25FGte0Ruh1n9kmW/SY9uvbkyvLddJsYfBxMfg13ssD21ynQmpiUju0o7oIhtylibz2YLdeWOA4XwRYcZDRfV0hDXA1yFMwTA0KB966Q2naAhtntbk7StcGOPtkmX8kByQG704gdJdwDo0wTQDO19TTFzLlSyetZa/PySCK9sLgRPaiy9TdbJjTVr5gmZgney+yiZJoZCWfbOBmFwDrXzYz3nPrWRs99g6leu5rB0z/6sjUCew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LDWJLMvmPnVR2tXLk4dZlsCRBfP6i8Gcr7/zk0N2OOo=;
 b=cyydph/gzx3GnKsz0ai3puAUlbKBfVvGkOGDCZNzNt/mdtToojpYBsNb/tkomtz6/iaqDWF0gdK5AA1ELg08f5gmPZhehQI6fRJe427wgT6Bl7BN3jYon8snyYSXcYbIWd+LrMmq2GyWmVBM4c49d4qIBer7KJM0VaBvhyN3hhPqSIOAPqQl5OXUI3XWGIBJ32niDCEwqpdox3SayEmB13ID7TINKoRlxT64AEU1LTMUXi61VXgs51gWwCX9Rv/C6PcLFDhEZRNl1BCoTiZhE+yhCBEV7dmK6b7zTy2NLncPGEkZ65Rmrzei5J8kCKN+V8+3P5ppUHFMyvJg5SeNjA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LDWJLMvmPnVR2tXLk4dZlsCRBfP6i8Gcr7/zk0N2OOo=;
 b=sFPHoobftg5iR8U4pINoY5INd3gzimKlTufCtytNyarh9xzFNyat2x5QaB2tLDltcvRZV8O6a6b1kItTiZtv8J+tcvMHrrvyTEezshpDnc5qQZUvOhzwg9mY14CO8Et+1fD4WHgjYeRV4CT7O1PbACwRyKgYee0YXYpuZK1duxafW9d8IG7fC1iz8Hrdora6i8nGY9K2EhHdcO3VqUW7CB/Hy1Rsk2JmC0kJkwRREqT9K+Tdy3AR/+BBjP5oyNv41j+KkeOyIwoKIzFmx57R6eDGeo2kYf/aufvi36iW2RtinDEwwcwdkkTje2gMNer68dewezFsBi9F6d4YhmYjnw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
        Ian Jackson
	<iwj@xenproject.org>
CC: Julien Grall <julien@xen.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers [and
 2 more messages]
Thread-Topic: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
 [and 2 more messages]
Thread-Index: AQHXzwrVBVHykfdvRUOfqNSizjfhO6vvKqAAgACqWoA=
Date: Tue, 2 Nov 2021 07:16:19 +0000
Message-ID: <a14ce7fd-c3d0-0777-f0c9-5f7fad901452@epam.com>
References: <20211027082533.1406015-1-andr2000@gmail.com>
 <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <65886734-7333-4469-fcc1-6916db708f13@xen.org>
 <b6bb02b6-6358-b5e0-1b80-7819aadabe10@epam.com>
 <6d8f1061-7aec-2c1a-aaf4-c30440c2797a@xen.org>
 <38da2edd-06a2-63d0-51ad-1284272c8da5@epam.com>
 <a74b52fb-6514-4187-17fe-b63236efa0ce@xen.org>
 <24954.51153.588540.850154@mariner.uk.xensource.com>
 <d7e4ae66-f648-e18e-79c8-fae6eb896f00@xen.org>
 <YXkU+DKYmvwo+kak@Air-de-Roger>
 <0bbe4d1d-421d-e816-42aa-f43581902a02@epam.com>
 <24953.34635.645112.279110@mariner.uk.xensource.com>
 <24959.49313.936961.936820@mariner.uk.xensource.com>
 <alpine.DEB.2.21.2111011402320.20134@sstabellini-ThinkPad-T480s>
In-Reply-To: <alpine.DEB.2.21.2111011402320.20134@sstabellini-ThinkPad-T480s>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: abb2033e-58b4-49e7-9b78-08d99dd0aafe
x-ms-traffictypediagnostic: AM9PR03MB6881:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB6881C33C739BFB8B2B24ED8EE78B9@AM9PR03MB6881.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 3VF8g7MaM92YBlHRjGJDJEQG4cQL3BGN4sDk1MrT19yXbNBX2Yv6TxHWmbyZMvlD8KITolCYa1EHIx269E/aQhCtkNYHlS4Y4Gnm/FQxsqn+KvZNoFtWHgOeaVbGXEoVgYh4k8JNzxMENdQ31bTjmgGfERXyakgmtGMLr8PniVjYBIOMbJ3CJbswD3mcmMTMNby6zC9R8nDa0s9bVhMJKpQclJv6H3sCxwhnHEmgovBoBFf/B9EgzApZgAk/bT8nmJvRSzNJgK05WfN1GpQhY+3s2S9j/LtEwSsQF9W2cmQfp+FCDg4JMhvScyViiNT1brqfncJIpV3h7DjnFNZGpgQA9LaQhB/csQm74X2yr3sc+QDsM09RAWvBEcsvBiSv5Zyp2aC80Nqz5ZbRZX+EIeY2QqdC8RovI9ChFcx+HmaulJNCnakwOUUabXNXeIEP3xaCkt2lJwNgkvKIs+Nd0YM6xg9Nleg8FScCHd6kydxNk2HsAR3t2knzqYygtftgYtAGzWDvmxfZ8URLQMZFv5IYwNR1yGx+gFV+OK5oGoTRytTfTo2RnlncGBGbq+ce9stgWTNdb1J5VIXmsrVGJoLj9LgiEhh5GTqXefqzsXe+m99Gx99sxAPwyUZXdBs3Tu9U/tJRnnM3UyYUVmE1ci6jpyM+yu+Z9Ne3+L21Td24PvHme/+Tu8KJz7xnvzC69JF5qmiwwFZI1LeI+ZU2ijmg0Exl9nhEgUimJbPVWjt7TuNqs2eCANUt9sGRoyCZ3vrFQfUlvXk7mzVkdQh2TsGomyB4f5gzPBw39/cO5GNHCtKUI7CsicLvwJP0z+L1
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(966005)(38070700005)(8676002)(4326008)(6486002)(66476007)(38100700002)(66556008)(6506007)(64756008)(66946007)(6512007)(508600001)(66446008)(31686004)(71200400001)(122000001)(53546011)(91956017)(86362001)(110136005)(54906003)(186003)(2906002)(76116006)(15650500001)(31696002)(8936002)(316002)(26005)(36756003)(83380400001)(5660300002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 CKp06j06YF5ig40PrM3djJCIo9noVLTx0u1/9gwa89XjdJ8f6LrD47tvFoZiSX1Z0ew9wlTeiSISi+BVhN/IYmkasLkqRkWvIw2nPU/6p44Wg/9UMYGspwFmGmvUYVGyGZhxu+mFMKHQ+L9OnM7/sGgHS9O8g/Y706z8VE5W0aJewXsBpwVhs2W3NgC5oQvrYy8RyXv5hVf62JEbdkXItlm1m62IeJJ+xJDN4DYgXSHuzwDM3hx7piYBjYa0KLza51g9J1KGppK1F6WahV5fMluYZUu4VtCqg5OQSe5wXEehU6T7uutWFWukV54r7jNFXAp9UXgaEMTnZQXnoqUkG/bWNizKiG5vzacaywjm9JxDwrlqon2rCUz9KPJg9AaT0mRJcm6SdKZPCBXAaqkD5T+poDLnH/5ozmU7lJS4BENcTCmIuPHSv4MoMHwKW+cDGAc7mLDbLU71gvW2Ys6YnoH+1DC2Tb9y+ah/NuTRiaQiunyugdv08Vr0mC6izAzTCcq/sTkTslEiwpk+ZfH6S/BLMF37ODCZtSLKbAMc0Kk=
Content-Type: text/plain; charset="utf-8"
Content-ID: <ED5AE535B712EA41B290274E0524158B@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: abb2033e-58b4-49e7-9b78-08d99dd0aafe
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 07:16:19.5972
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: kHaXnxjPHXw0WyH0inDerQ8gp6zwVD5+/ZJft5h5Eie6Y1FgVFQGZfB8WuBjAUmiPveSpCIFWcCHsHMEx71/6iL+G58EUX1C5C35nj7sejUMSs2X4KR5tC2UWuRxeYjz
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6881
X-Proofpoint-GUID: XpF1cLx-IcGdLpb4znO9y5ta1uG66s02
X-Proofpoint-ORIG-GUID: XpF1cLx-IcGdLpb4znO9y5ta1uG66s02
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_06,2021-11-01_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0
 suspectscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015
 impostorscore=0 spamscore=0 mlxlogscore=999 mlxscore=0 priorityscore=1501
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020040

DQoNCk9uIDAxLjExLjIxIDIzOjA2LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+IE9uIE1v
biwgMSBOb3YgMjAyMSwgSWFuIEphY2tzb24gd3JvdGU6DQo+PiBKdWxpZW4gR3JhbGwgd3JpdGVz
ICgiUmU6IFtQQVRDSF0geGVuL2FybTogZml4IFNCREYgY2FsY3VsYXRpb24gZm9yIHZQQ0kgTU1J
TyBoYW5kbGVycyIpOg0KPj4+IE9uIDI4LzEwLzIwMjEgMTY6NTQsIElhbiBKYWNrc29uIHdyb3Rl
Og0KPj4+PiBUaGVyZSBhcmUgYSBudW1iZXIgb2YgcGF0Y2hlcyB0aGF0IEknbSBnZXR0aW5nIEND
J2Qgb24gcmVsYXRlZCB0byBBUk0NCj4+Pj4gYW5kIHZwY2kgKGFjY29yZGluZyB0byB0aGUgU3Vi
amVjdCkuICBBcmUgdGhlc2UgdGFyZ2V0ZWQgZm9yIDQuMTYgPw0KPj4+PiBNb3N0IG9mIHRoZW0g
ZG9uJ3QgaGF2ZSA0LjE2IFN1YmplY3QgdGFncy4NCj4+PiBPbGVrc2FuZHIgd2FudHMgdGhpcyBw
YXRjaCB0byBiZSBpbmNsdWRlZCBmb3IgNC4xNiBidXQgZm9yZ290IHRvIHRhZyBpdA0KPj4+IHBy
b3Blcmx5Lg0KPj4gT2ggeWVzLiAgSG93ZXZlciwNCj4+DQo+PiAxLiBJIGFsc28gd3JvdGUgdGhp
czoNCj4+DQo+Pj4+IEkgYW0gZmluZGluZyBpdCBkaWZmaWN1bHQgdG8gc2VlIHRoZSB3b29kIGZv
ciB0aGUgdHJlZXMuDQo+Pj4+IEl0IHdvdWxkIGJlIHJlYWxseSBoZWxwZnVsIGlmIHRoZXNlIHZw
Y2kgZml4ZXMgd2VyZSBjb2xsZWN0ZWQNCj4+Pj4gdG9nZXRoZXIgaW50byBhIHNlcmllcy4NCj4+
IENhbiBzb21lb25lIHBsZWFzZSBjb25maXJtIHdoZXRoZXIgdGhpcyBpcyB0aGUgb25seSB2cGNp
LXJlbGF0ZWQgcGF0Y2gNCj4+IHRoYXQgb3VnaHQgdG8gYmUgb24gbXkgcmFkYXIgZm9yIDQuMTYg
Pw0KPj4NCj4+IDIuIEkgaGF2ZSBub3QgaGFkIGEgcmVwbHkgdG8gbXkgcXVlc3Rpb24gb24gV2Vk
bmVzZGF5IGluDQo+PiA8MjQ5NTMuMzQ2MzUuNjQ1MTEyLjI3OTExMEBtYXJpbmVyLnVrLnhlbnNv
dXJjZS5jb20+Og0KPj4NCj4+ICAgIFVtLCBjYW4geW91IGV4cGxhaW4gd2hhdCB0aGUgcHJhY3Rp
Y2FsIGltcGFjdCBpcyBvZiBub3QgdGFraW5nIHRoaXMNCj4+ICAgIHBhdGNoIGZvciA0LjE2ID8g
IEFzIEkgdW5kZXJzdGFuZCBpdCB2cGNpIGZvciBBUk0gaXMgbm9uLWZ1bmN0aW9uYWwgaW4NCj4+
ICAgIDQuMTYgYW5kIHRoaXMgaXMgbm90IGV4cGVjdGVkIHRvIGNoYW5nZSA/ICBTbyB0aGVyZSB3
b3VsZCBiZSBubw0KPj4gICAgYmVuZWZpdCB0byB1c2VycywgYW5kIHRha2luZyB0aGUgcGF0Y2gg
d291bGQgYWRkIHNtYWxsIGJ1dCBub256ZXJvDQo+PiAgICByaXNrID8NCj4+DQo+PiBJIG5lZWQg
dGhpcyBpbmZvcm1hdGlvbiB0byBkZWNpZGUgd2hldGhlciBhIHJlbGVhc2UtYWNrIGlzDQo+PiBh
cHByb3ByaWF0ZS4NCj4+DQo+PiBOb3RlIHRoYXQgd2UgYXJlIGluIGNvZGUgZnJlZXplIHNvIGFs
bCBwYXRjaGVzLCBpbmNsdWRpbmcgYnVnZml4ZXMsDQo+PiBuZWVkIG15IGFjay4NCj4gSGkgSWFu
LA0KPg0KPiBUaGlzIHBhdGNoIFsxXSBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCAyIGxpbmVzIGZpeCBm
b3IgdnBjaSBvbiBBUk0uICBUaGVyZQ0KPiBpcyBubyByaXNrIGZvciB0aGUgcmVsZWFzZSBhcyB0
aGUgc291cmNlIGZpbGUgYWZmZWN0ZWQgb25seSBidWlsZHMgd2hlbg0KPiBDT05GSUdfSEFTX1ZQ
Q0kgaXMgZW5hYmxlZCwgYW5kIGl0IGlzIGN1cnJlbnRseSBkaXNhYmxlZCBvbiBBUk0uDQo+DQo+
IEF0IHRoZSBzYW1lIHRpbWUsIGFzIHdlIGtub3cgdnBjaSBpcyBub3QgY29tcGxldGUgaW4gNC4x
NiBhbnl3YXksIHNvIHRoZQ0KPiBjb3VudGVyIGFyZ3VtZW50IGlzIHRoYXQgd2UgZG9uJ3QgbmVl
ZCB0byBmaXggaXQuDQo+DQo+IEdpdmVuIGhvdyB0cml2aWFsIHRoZSBmaXggaXMsIGFuZCB0aGF0
IGl0IGNhbm5vdCBicmVhayB0aGUgYnVpbGQgb3INCj4gcnVudGltZSwgSSB3b3VsZCB0YWtlIGl0
Lg0KVGhhbmsgeW91LA0KSSBjYW4gcmUtc2VuZCB0aGUgcGF0Y2ggd2l0aCB0aGUgdXBkYXRlZCBj
b21taXQgbWVzc2FnZSAoSnVsaWVuKSwNCmJ1dCBJIHN0aWxsIGhhdmUgbm8gUi1iJ3MgZm9yIHRo
ZSBwYXRjaCwgc28gbm90IHN1cmUgaWYgaXQgaXMgd29ydGggaXQNCj4NCj4gQ2hlZXJzLA0KPg0K
PiBTdGVmYW5vDQo+DQo+DQo+IFsxXSBodHRwczovL21hcmMuaW5mby8/bD14ZW4tZGV2ZWwmbT0x
NjM1MzIzMDc3MTU0MzUNCj4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 07:17:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 07:17:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219711.380667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mho2I-0003iA-3R; Tue, 02 Nov 2021 07:16:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219711.380667; Tue, 02 Nov 2021 07:16:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mho2I-0003hz-0L; Tue, 02 Nov 2021 07:16:46 +0000
Received: by outflank-mailman (input) for mailman id 219711;
 Tue, 02 Nov 2021 07:16:44 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=E7LG=PV=gmail.com=alistair23@srs-us1.protection.inumbo.net>)
 id 1mho2G-0003hW-P9
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 07:16:44 +0000
Received: from mail-il1-x134.google.com (unknown [2607:f8b0:4864:20::134])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b37a1ff3-e48d-40e6-b34e-6399f7922851;
 Tue, 02 Nov 2021 07:16:43 +0000 (UTC)
Received: by mail-il1-x134.google.com with SMTP id h23so7419739ila.4
 for <xen-devel@lists.xenproject.org>; Tue, 02 Nov 2021 00:16:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b37a1ff3-e48d-40e6-b34e-6399f7922851
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=f+Wh1jTF/T22Wugki61qznXHNVr7NIVzBbfgHhFKdLk=;
        b=GXHPwLbxndzMD3YIPrRd5Lgf7dKYYPryGpg2qTWrCoFiA1dDMkmMUKBLEvJ9lW78r8
         mua6ZCUzRgc9vKJMEFRlDbfpfXwrlwL4/zepF7bhK2m7LzlnjTS3muPY7PYXI6Kchj5X
         IPbPIvYROAQN+hMKR4MCw5TlAa/xR6W8mxXQLl1+j60LsXQp/cNeYGjbmlMApgYONfY1
         Jt4jDWr82x5egCuDaKWke1WkxI9UmXWeiDIDp7Mxrdvs33c6pjLmdi+2XVCpz1kx9KH6
         lbqkeZ3gmR//GOORaWATymzKVH982Gre6W3J2FZ2IyteJtW/sN7rXX6snZV/29DwqAgj
         /gCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=f+Wh1jTF/T22Wugki61qznXHNVr7NIVzBbfgHhFKdLk=;
        b=bM/sLdGzBvGPUClfdkGP5f6xYmQfF4SsgGsg70wYLO/FZXWdPu5kE0Nm4MduWGI/9e
         zeq8Y6lNQZxdRZlWaqBFHViLkHYMzXTEsNi88T/5rKBINRM+fEQDFDWjNQzTTlLs8Che
         4vcYgVqBVwycInAJYv+a5QRhk4v2I7lw6rSjwxzAmUYE2Bo1iURl8Qg7GvcsG5+wB2q/
         TeHO7ytNF1FwLJJxCcicZTdyoBxzGVNlbdvdE4HIVC3ikImlKX2krvJn871CMFZFh1E2
         ryN4tjeU428Ou7l+oYz4NyrZ5mYM9fqJSY0+AeONy3ftEP6tIS1esfyBRKzn/D0VbGw1
         Z10A==
X-Gm-Message-State: AOAM530dyVcDZ6f3R2Tjsly+q1R2GblHcYb/ryQtS724GoIMtkJ23+3Z
	l1bluOvTmid+rmJt16B3yg36Dee8vv17a06yw04=
X-Google-Smtp-Source: ABdhPJzdYVf3NCZz9aljEeBBsZk80TmOv67jvMtIO4O2LcFjSaZspk8JI7V1L7RXLzAT9g5fcR+J0kZ+xb1Ng5kxNhw=
X-Received: by 2002:a05:6e02:1402:: with SMTP id n2mr24008411ilo.208.1635837401784;
 Tue, 02 Nov 2021 00:16:41 -0700 (PDT)
MIME-Version: 1.0
References: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com> <alpine.DEB.2.21.2111011330310.20134@sstabellini-ThinkPad-T480s>
In-Reply-To: <alpine.DEB.2.21.2111011330310.20134@sstabellini-ThinkPad-T480s>
From: Alistair Francis <alistair23@gmail.com>
Date: Tue, 2 Nov 2021 17:16:15 +1000
Message-ID: <CAKmqyKOJgYbb_pgd8CPH90yPVcEHBU9J65URw7CUA_unyw6gBw@mail.gmail.com>
Subject: Re: Arch-neutral name for hardware interrupt support
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel <xen-devel@lists.xenproject.org>, 
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Julien Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Jane Malalane <jane.malalane@citrix.com>, Bobby Eshleman <bobbyeshleman@gmail.com>, 
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, 
	Bertrand.Marquis@arm.com
Content-Type: text/plain; charset="UTF-8"

On Tue, Nov 2, 2021 at 6:33 AM Stefano Stabellini
<sstabellini@kernel.org> wrote:
>
> +Bertrand
>
> On Mon, 1 Nov 2021, Andrew Cooper wrote:
> > Hello,
> >
> > On ARM, the GIC is a hard prerequisite for VMs.
> >
> > I can't remember what the state of RISCV is, but IIRC there is still
> > some debate over how interrupts are expected to work under virt.

We are getting there, the current draft is pretty stable:
https://github.com/riscv/riscv-aia/

> >
> > On x86, the story is very different.  PV have no hardware assistance,
> > while HVM hardware assistance depends on hardware support.  Therefore we
> > want to introduce a new CDF flag so we can control the setting per
> > domain, rather than globally as it is done now.
> >
> > This brings us to the question of what a suitable architecture name
> > would be.
> >
> > Hardware Virtual Interrupts is a little too close to Hardware Virtual
> > (Machine) Introspection, and Hardware Assisted Interrupts (mirroring
> > HAP) doesn't seem great either.
> >
> > Thoughts / ideas / suggestions?
>
> Maybe "hardware-enabled virtualized interrupts"

hardware-supported virtualised interrupts (HSV Interrupts)

Alistair


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 07:24:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 07:24:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219727.380681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoA0-0005Qt-Vo; Tue, 02 Nov 2021 07:24:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219727.380681; Tue, 02 Nov 2021 07:24:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoA0-0005Qm-SS; Tue, 02 Nov 2021 07:24:44 +0000
Received: by outflank-mailman (input) for mailman id 219727;
 Tue, 02 Nov 2021 07:24:43 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hRh8=PV=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mho9z-0005Qe-0e
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 07:24:43 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id f1a9b474-3bad-11ec-8552-12813bfff9fa;
 Tue, 02 Nov 2021 07:24:41 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id D8D6C1FD75;
 Tue,  2 Nov 2021 07:24:40 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A006A13B73;
 Tue,  2 Nov 2021 07:24:40 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id BLCxJbjngGHKSwAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 02 Nov 2021 07:24:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1a9b474-3bad-11ec-8552-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635837880; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=6nfd9l8MOWGKmx9B3YQFK9b+nq7acUYVVksS8gM6SVE=;
	b=NqkChFjCGvfFWXuMqvxAd2ovY+nbYvqGPY3iJ+vbKYbkqjcu7LpWdTfjlTWaAn5KvUSSzR
	f0WKNtWO8apOc65aeK2GE5JADfZCCSA0zQJrsF2uioE+oZMe050FjZKeWiNWj9PlKT3+Kl
	Ct5DcpZjnK00ZzI8dCfwT+yJHk6hf64=
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-8-jgross@suse.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v2 07/15] xen: generate hypercall interface related code
Message-ID: <8c3869ea-c1dd-76fc-58d6-90cad2f9343c@suse.com>
Date: Tue, 2 Nov 2021 08:24:39 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211101152015.28488-8-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="LQw8KKZjaOpLi5bqu1P6YblIXvW3ANaBz"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--LQw8KKZjaOpLi5bqu1P6YblIXvW3ANaBz
Content-Type: multipart/mixed; boundary="UMuxOu4mYBOSsTabZpFLO3rDt7rbh0c1S";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Message-ID: <8c3869ea-c1dd-76fc-58d6-90cad2f9343c@suse.com>
Subject: Re: [PATCH v2 07/15] xen: generate hypercall interface related code
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-8-jgross@suse.com>
In-Reply-To: <20211101152015.28488-8-jgross@suse.com>

--UMuxOu4mYBOSsTabZpFLO3rDt7rbh0c1S
Content-Type: multipart/mixed;
 boundary="------------EEEA9A09CC5E205C3F33E7CF"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------EEEA9A09CC5E205C3F33E7CF
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 01.11.21 16:20, Juergen Gross wrote:
> Instead of repeating similar data multiple times use a single source
> file and a generator script for producing prototypes and call sequences=

> of the hypercalls.
>=20
> As the script already knows the number of parameters used add generatin=
g
> a macro for populating an array with the number of parameters per
> hypercall.
>=20
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - split platform_op for doe and compat prefixes (Jan Beulich)
> - add "addline:" directive
> - add priorities to handlers (Jan Beulich)
> ---
>   .gitignore                    |   1 +
>   xen/Makefile                  |  10 ++
>   xen/include/hypercall-defs.c  | 285 +++++++++++++++++++++++++++++++
>   xen/scripts/gen_hypercall.awk | 306 +++++++++++++++++++++++++++++++++=
+
>   4 files changed, 602 insertions(+)
>   create mode 100644 xen/include/hypercall-defs.c
>   create mode 100644 xen/scripts/gen_hypercall.awk
>=20

=2E..

> diff --git a/xen/scripts/gen_hypercall.awk b/xen/scripts/gen_hypercall.=
awk
> new file mode 100644
> index 0000000000..26017c0900
> --- /dev/null
> +++ b/xen/scripts/gen_hypercall.awk

=2E..

> +    # Generate call sequences and args array contents
> +    for (ca in caller) {
> +        if (caller[ca] !=3D 1)
> +            continue;
> +        for (pl =3D 1; pl <=3D n_prios[ca]; pl++)
> +            p_list[pl] =3D prio_list[ca, pl];
> +        asort(p_list, p_list, "@val_num_asc");
> +        need_mask =3D 0;
> +        # If any prio but the default one has more than 1 entry we nee=
d "mask"
> +        for (pl =3D 1; pl < n_prios[ca]; pl++) {
> +            if (prios[ca, p_list[pl]] > 1)
> +                need_mask =3D 1;
> +        }
> +        printf("\n");
> +        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5)=
 \\\n", ca);
> +        printf("{ \\\n");
> +        if (need_mask)
> +            printf("    uint64_t mask =3D 1ULL << num; \\\n");
> +        for (pl =3D 1; pl <=3D n_prios[ca]; pl++) {
> +            if (prios[ca, p_list[pl]] > 1) {
> +                if (pl < n_prios[ca]) {
> +                    printf("if ( likely(mask & (%s)) ) \\\n", prio_mas=
k[ca, p_list[pl]]);
> +                    printf("    { \\\n");
> +                }
> +                do_switch(ca, p_list[pl]);
> +                if (pl < n_prios[ca])
> +                    printf("    } \\\n");

I've found another optimization for the case of 2 hypercalls with the
same priority: in this case "if ( ) ... else ..." is the better choice.

> +            } else {
> +                for (i =3D 1; i <=3D nc; i++)
> +                    if (call[i] =3D=3D ca && call_prio[i] =3D=3D p_lis=
t[pl]) {
> +                        printf("if ( likely(num =3D=3D __HYPERVISOR_%s=
) ) \\\n", fn[call_fn[i]]);
> +                        printf("    { \\\n");
> +                        do_call(call_fn[i], call_p[i]);
> +                        printf("    } \\\n");
> +                    }
> +            }
> +            if (pl < n_prios[ca] || prios[ca, pl] =3D=3D 1)
> +                printf("    else ");
> +        }
> +        if (prios[ca, p_list[n_prios[ca]]] =3D=3D 1) {
> +            printf("\\\n");
> +            printf("        ret =3D -ENOSYS; \\\n");
> +        }
> +        printf("}\n");

Here a "delete p_list;" is missing in order to avoid stale array
elements in the next round.

I'll send an update of this patch.


Juergen

--------------EEEA9A09CC5E205C3F33E7CF
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------EEEA9A09CC5E205C3F33E7CF--

--UMuxOu4mYBOSsTabZpFLO3rDt7rbh0c1S--

--LQw8KKZjaOpLi5bqu1P6YblIXvW3ANaBz
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGA57cFAwAAAAAACgkQsN6d1ii/Ey+W
Fgf/bwhYWeGPlzH2IVf3s8y9uusUPc8W2wSvozs2T0mCSPjAeqUcXPeTD4ziS7493utlV+miXO3u
GMv+m6Ayth0VyyMVc6WEoNMjQwI/YHmYfhtUUp3eaQGKioV74x3QJnhkfcyKc/h6oAF31JBZB7Nr
GGGjbzfCP5qeG5Azh9VlWIFyRgLjZNT1ljn65vLc/6HjeezSHXws3apBhABY9w8wMmgBuK78QYqc
YiWobasmB2yXh3pcUyCu6uBIZRIbXnIaSPuZyMP+6PDtCoFMmejhcIHwLk9qYbJn/5T5xwf3vX6K
4W85/tSLXoH4bhFFYMatwNPZHYLl/b4GWGa/ETHVoA==
=8SSk
-----END PGP SIGNATURE-----

--LQw8KKZjaOpLi5bqu1P6YblIXvW3ANaBz--


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 07:29:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 07:29:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219736.380695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoEU-000678-Kl; Tue, 02 Nov 2021 07:29:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219736.380695; Tue, 02 Nov 2021 07:29:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoEU-000671-H8; Tue, 02 Nov 2021 07:29:22 +0000
Received: by outflank-mailman (input) for mailman id 219736;
 Tue, 02 Nov 2021 07:29:21 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hRh8=PV=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhoET-00066v-H9
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 07:29:21 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 97237354-3bae-11ec-8552-12813bfff9fa;
 Tue, 02 Nov 2021 07:29:19 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 7DE081FD75;
 Tue,  2 Nov 2021 07:29:18 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3755C13B73;
 Tue,  2 Nov 2021 07:29:18 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id O1c2DM7ogGGsTQAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 02 Nov 2021 07:29:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97237354-3bae-11ec-8552-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635838158; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=NZOKAi+4w30Ha7yal6QzroDXpsbrhT8rQhOgaSficdI=;
	b=D5tqGnzgFPxv6MxI3NHOZdRrv7HTtSFBEBE5f0pTdSoP2NkwkshItB0ezx0YqlFvk00FFQ
	ax5ILWEWXYjOYr9DqOXy3fu1a7I+I9htgBLTi1u0q09vs2z9jibjmcCAw4wyVpQDr9wz8k
	qkVSsghpYT+3qi++p0f9Hot90zLrG0I=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [[PATCH v2.1 07/15] xen: generate hypercall interface related code
Date: Tue,  2 Nov 2021 08:29:15 +0100
Message-Id: <20211102072915.12361-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Instead of repeating similar data multiple times use a single source
file and a generator script for producing prototypes and call sequences
of the hypercalls.

As the script already knows the number of parameters used add generating
a macro for populating an array with the number of parameters per
hypercall.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- split platform_op for doe and compat prefixes (Jan Beulich)
- add "addline:" directive
- add priorities to handlers (Jan Beulich)
V2.1:
- add missing "delete" statement in awk script
- optimize case of 2 hypercalls with same priority
---
 .gitignore                    |   1 +
 xen/Makefile                  |  10 ++
 xen/include/hypercall-defs.c  | 285 ++++++++++++++++++++++++++++++
 xen/scripts/gen_hypercall.awk | 319 ++++++++++++++++++++++++++++++++++
 4 files changed, 615 insertions(+)
 create mode 100644 xen/include/hypercall-defs.c
 create mode 100644 xen/scripts/gen_hypercall.awk

diff --git a/.gitignore b/.gitignore
index 9513506dd9..753a602e29 100644
--- a/.gitignore
+++ b/.gitignore
@@ -336,6 +336,7 @@ xen/include/public/public
 xen/include/xen/*.new
 xen/include/xen/acm_policy.h
 xen/include/xen/compile.h
+xen/include/xen/hypercall-defs.h
 xen/include/xen/lib/x86/cpuid-autogen.h
 xen/test/livepatch/config.h
 xen/test/livepatch/expect_config.h
diff --git a/xen/Makefile b/xen/Makefile
index a3189eb47c..dfdae47e74 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -383,6 +383,7 @@ _clean: delete-unfresh-files
 		-o -name "*.gcno" -o -name ".*.cmd" -o -name "lib.a" \) -exec rm -f {} \;
 	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map *~ core
 	rm -f asm-offsets.s include/asm-*/asm-offsets.h
+	rm -f include/xen/hypercall-defs.h include/hypercall-defs.i
 	rm -f .banner .allconfig.tmp
 
 .PHONY: _distclean
@@ -405,6 +406,7 @@ $(TARGET): delete-unfresh-files
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C include
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) include
 	$(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h
+	$(MAKE) -f $(BASEDIR)/Rules.mk include/xen/hypercall-defs.h
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
 
 # drivers/char/console.o contains static banner/compile info. Blow it away.
@@ -466,6 +468,14 @@ include/asm-$(TARGET_ARCH)/asm-offsets.h: asm-offsets.s
 	  echo ""; \
 	  echo "#endif") <$< >$@
 
+quiet_cmd_genhyp = GEN     $@
+define cmd_genhyp
+    awk -f scripts/gen_hypercall.awk <$< >$@
+endef
+
+include/xen/hypercall-defs.h: include/hypercall-defs.i scripts/gen_hypercall.awk FORCE
+	$(call if_changed,genhyp)
+
 SUBDIRS = xsm arch/$(TARGET_ARCH) common drivers lib test
 define all_sources
     ( find include/asm-$(TARGET_ARCH) -name '*.h' -print; \
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
new file mode 100644
index 0000000000..c31a4a302c
--- /dev/null
+++ b/xen/include/hypercall-defs.c
@@ -0,0 +1,285 @@
+/*
+ * Hypercall interface description:
+ * Used by scripts/gen_hypercall.awk to generate hypercall prototypes and call
+ * sequences.
+ *
+ * Syntax is like a prototype, but without return type and without the ";" at
+ * the end. Pointer types will be automatically converted to use the
+ * XEN_GUEST_HANDLE_PARAM() macro. Handlers with no parameters just use a
+ * definition like "fn()".
+ * Hypercall/function names are without the leading "__HYPERVISOR_"/"do_"
+ * strings.
+ *
+ * The return type of a class of prototypes using the same prefix is set via:
+ * rettype: <prefix> <type>
+ * Default return type is "long". A return type for a prefix can be set only
+ * once and it needs to be set before that prefix is being used via the
+ * "prefix:" directive.
+ *
+ * The prefix of the prototypes is set via a line:
+ * prefix: <prefix> ...
+ * Multiple prefixes are possible (restriction see below). Prefixes are without
+ * a trailing "_". The current prefix settings are active until a new "prefix:"
+ * line.
+ *
+ * Caller macros are suffixed with a selectable name via lines like:
+ * caller: <suffix>
+ * When a caller suffix is active, there is only one active prefix allowed.
+ *
+ * With a "defhandle:" line it is possible to add a DEFINE_XEN_GUEST_HANDLE()
+ * to the generated header:
+ * defhandle: <handle-type> [<type>]
+ * Without specifying <type> only a DEFINE_XEN_GUEST_HANDLE(<handle-type>)
+ * will be generated, otherwise it will be a
+ * __DEFINE_XEN_GUEST_HANDLE(<handle-type>, <type>) being generated. Note that
+ * the latter will include the related "const" handle "const_<handle-type>".
+ *
+ * In order to support using coding style compliant pointers in the
+ * prototypes it is possible to add translation entries to generate the correct
+ * handle types:
+ * handle: <handle-type> <type>
+ * This will result in the prototype translation from "<type> *" to
+ * "XEN_GUEST_HANDLE_PARAM(<handle-type>)".
+ *
+ * A verbatim line can be added via:
+ * addline: <line-contents>
+ * Its position is kept in regard of other "handle:" and "defhandle:" lines.
+ *
+ * The hypercall handler calling code will be generated from a final table in
+ * the source file, which is started via the line:
+ * table: <caller> <caller> ...
+ * with the <caller>s specifying the designated caller macro of each column of
+ * the table. Any column of a <caller> not having been set via a "caller:"
+ * line will be ignored.
+ * The first column of the table contains the hypercall/prototype, each
+ * <caller> column contains the prefix for the function to use for that caller.
+ * A function prefix can be annotated with a priority by adding ":<prio>" to it
+ * ("1" being the highest priority, higher numbers mean lower priority, no
+ * priority specified is the lowest priority). The generated code will try to
+ * achieve better performance for calling high priority handlers.
+ * A column not being supported by a <caller> is marked with "-". Lines with all
+ * entries being "-" after removal of inactive <caller> columns are ignored.
+ *
+ * This file is being preprocessed using $(CPP), so #ifdef CONFIG_* conditionals
+ * are possible.
+ */
+
+#ifdef CONFIG_HVM
+#define PREFIX_hvm hvm
+#else
+#define PREFIX_hvm
+#endif
+
+#ifdef CONFIG_COMPAT
+#define PREFIX_compat compat
+rettype: compat int
+#else
+#define PREFIX_compat
+#endif
+
+#ifdef CONFIG_ARM
+#define PREFIX_dep dep
+#else
+#define PREFIX_dep
+#endif
+
+handle: uint unsigned int
+handle: const_void const void
+handle: const_char const char
+
+#ifdef CONFIG_COMPAT
+defhandle: multicall_entry_compat_t
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+addline: typedef struct compat_platform_op compat_platform_op_t;
+defhandle: compat_platform_op_t
+#endif
+#endif
+#ifdef CONFIG_PV32
+defhandle: trap_info_compat_t
+defhandle: physdev_op_compat_t
+#endif
+
+prefix: do PREFIX_hvm PREFIX_compat
+physdev_op(int cmd, void *arg)
+#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
+grant_table_op(unsigned int cmd, void *uop, unsigned int count)
+#endif
+
+prefix: do PREFIX_hvm
+memory_op(unsigned long cmd, void *arg)
+
+prefix: do PREFIX_compat
+xen_version(int cmd, void *arg)
+vcpu_op(int cmd, unsigned int vcpuid, void *arg)
+sched_op(int cmd, void *arg)
+xsm_op(void *op)
+callback_op(int cmd, const void *arg)
+#ifdef CONFIG_ARGO
+argo_op(unsigned int cmd, void *arg1, void *arg2, unsigned long arg3, unsigned long arg4)
+#endif
+#ifdef CONFIG_KEXEC
+kexec_op(unsigned int op, void *uarg)
+#endif
+#ifdef CONFIG_PV
+iret()
+nmi_op(unsigned int cmd, void *arg)
+#ifdef CONFIG_XENOPROF
+xenoprof_op(int op, void *arg)
+#endif
+#endif /* CONFIG_PV */
+
+#ifdef CONFIG_COMPAT
+prefix: compat
+set_timer_op(uint32_t lo, int32_t hi)
+multicall(multicall_entry_compat_t *call_list, uint32_t nr_calls)
+memory_op(unsigned int cmd, void *arg)
+#ifdef CONFIG_IOREQ_SERVER
+dm_op(domid_t domid, unsigned int nr_bufs, void *bufs)
+#endif
+mmuext_op(void *arg, unsigned int count, uint *pdone, unsigned int foreigndom)
+#ifdef CONFIG_PV32
+set_trap_table(trap_info_compat_t *traps)
+set_gdt(unsigned int *frame_list, unsigned int entries)
+set_callbacks(unsigned long event_selector, unsigned long event_address, unsigned long failsafe_selector, unsigned long failsafe_address)
+update_descriptor(uint32_t pa_lo, uint32_t pa_hi, uint32_t desc_lo, uint32_t desc_hi)
+update_va_mapping(unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags)
+physdev_op_compat(physdev_op_compat_t *uop)
+update_va_mapping_otherdomain(unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags, domid_t domid)
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+platform_op(compat_platform_op_t *u_xenpf_op)
+#endif
+#endif /* CONFIG_COMPAT */
+
+#if defined(CONFIG_PV) || defined(CONFIG_ARM)
+prefix: do PREFIX_dep
+event_channel_op_compat(evtchn_op_t *uop)
+physdev_op_compat(physdev_op_t *uop)
+/* Legacy hypercall (as of 0x00030101). */
+sched_op_compat(int cmd, unsigned long arg)
+#endif
+
+prefix: do
+set_timer_op(s_time_t timeout)
+console_io(unsigned int cmd, unsigned int count, char *buffer)
+vm_assist(unsigned int cmd, unsigned int type)
+event_channel_op(int cmd, void *arg)
+mmuext_op(mmuext_op_t *uops, unsigned int count, unsigned int *pdone, unsigned int foreigndom)
+multicall(multicall_entry_t *call_list, unsigned int nr_calls)
+#ifdef CONFIG_PV
+mmu_update(mmu_update_t *ureqs, unsigned int count, unsigned int *pdone, unsigned int foreigndom)
+stack_switch(unsigned long ss, unsigned long esp)
+fpu_taskswitch(int set)
+set_debugreg(int reg, unsigned long value)
+get_debugreg(int reg)
+set_segment_base(unsigned int which, unsigned long base)
+mca(xen_mc_t *u_xen_mc)
+set_trap_table(const_trap_info_t *traps)
+set_gdt(xen_ulong_t *frame_list, unsigned int entries)
+set_callbacks(unsigned long event_address, unsigned long failsafe_address, unsigned long syscall_address)
+update_descriptor(uint64_t gaddr, seg_desc_t desc)
+update_va_mapping(unsigned long va, uint64_t val64, unsigned long flags)
+update_va_mapping_otherdomain(unsigned long va, uint64_t val64, unsigned long flags, domid_t domid)
+#endif
+#ifdef CONFIG_IOREQ_SERVER
+dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+sysctl(xen_sysctl_t *u_sysctl)
+domctl(xen_domctl_t *u_domctl)
+paging_domctl_cont(xen_domctl_t *u_domctl)
+platform_op(xen_platform_op_t *u_xenpf_op)
+#endif
+#ifdef CONFIG_HVM
+hvm_op(unsigned long op, void *arg)
+#endif
+#ifdef CONFIG_HYPFS
+hypfs_op(unsigned int cmd, const char *arg1, unsigned long arg2, void *arg3, unsigned long arg4)
+#endif
+#ifdef CONFIG_X86
+xenpmu_op(unsigned int op, xen_pmu_params_t *arg)
+#endif
+
+#ifdef CONFIG_PV
+caller: pv64
+#ifdef CONFIG_PV32
+caller: pv32
+#endif
+#endif
+#if defined(CONFIG_HVM) && defined(CONFIG_X86)
+caller: hvm64
+#ifdef CONFIG_COMPAT
+caller: hvm32
+#endif
+#endif
+#ifdef CONFIG_ARM
+caller: arm
+#endif
+
+table:                             pv32     pv64     hvm32    hvm64    arm
+set_trap_table                     compat   do       -        -        -
+mmu_update                         do:1     do:1     -        -        -
+set_gdt                            compat   do       -        -        -
+stack_switch                       do:2     do:2     -        -        -
+set_callbacks                      compat   do       -        -        -
+fpu_taskswitch                     do       do       -        -        -
+sched_op_compat                    do       do       -        -        dep
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+platform_op                        compat   do       compat   do       do
+#endif
+set_debugreg                       do       do       -        -        -
+get_debugreg                       do       do       -        -        -
+update_descriptor                  compat   do       -        -        -
+memory_op                          compat   do       hvm      hvm      do
+multicall                          compat:2 do:2     compat   do       do
+update_va_mapping                  compat   do       -        -        -
+set_timer_op                       compat   do       compat   do       -
+event_channel_op_compat            do       do       -        -        dep
+xen_version                        compat   do       compat   do       do
+console_io                         do       do       do       do       do
+physdev_op_compat                  compat   do       -        -        dep
+#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
+grant_table_op                     compat   do       hvm      hvm      do
+#endif
+vm_assist                          do       do       do       do       do
+update_va_mapping_otherdomain      compat   do       -        -        -
+iret                               compat:1 do:1     -        -        -
+vcpu_op                            compat   do       compat:1 do:1     do
+set_segment_base                   do:2     do:2     -        -        -
+#ifdef CONFIG_PV
+mmuext_op                          compat:2 do:2     compat   do       -
+#endif
+xsm_op                             compat   do       compat   do       do
+nmi_op                             compat   do       -        -        -
+sched_op                           compat   do       compat   do       do
+callback_op                        compat   do       -        -        -
+#ifdef CONFIG_XENOPROF
+xenoprof_op                        compat   do       -        -        -
+#endif
+event_channel_op                   do       do       do:1     do:1     do
+physdev_op                         compat   do       hvm      hvm      do
+#ifdef CONFIG_HVM
+hvm_op                             do       do       do       do       do
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+sysctl                             do       do       do       do       do
+domctl                             do       do       do       do       do
+#endif
+#ifdef CONFIG_KEXEC
+kexec_op                           compat   do       -        -        -
+#endif
+tmem_op                            -        -        -        -        -
+#ifdef CONFIG_ARGO
+argo_op                            compat   do       compat   do       do
+#endif
+xenpmu_op                          do       do       do       do       -
+#ifdef CONFIG_IOREQ_SERVER
+dm_op                              compat   do       compat   do       do
+#endif
+#ifdef CONFIG_HYPFS
+hypfs_op                           do       do       do       do       do
+#endif
+mca                                do       do       -        -        -
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+paging_domctl_cont                 do       do       do       do       -
+#endif
diff --git a/xen/scripts/gen_hypercall.awk b/xen/scripts/gen_hypercall.awk
new file mode 100644
index 0000000000..c03e4273da
--- /dev/null
+++ b/xen/scripts/gen_hypercall.awk
@@ -0,0 +1,319 @@
+# awk script to generate hypercall handler prototypes and a macro for doing
+# the calls of the handlers inside a switch() statement.
+
+BEGIN {
+    printf("/* Generated file, do not edit! */\n\n");
+    e = 0;
+    n = 0;
+    p = 0;
+    nc = 0;
+}
+
+# Issue error to stderr
+function do_err(msg) {
+    print "Error: "msg": "$0 >"/dev/stderr";
+    exit 1;
+}
+
+# Generate handler call
+function do_call(f, p,    i) {
+    printf("            ret = %s_%s(", pre[f, p], fn[f]);
+    for (i = 1; i <= n_args[f]; i++) {
+        if (i > 1)
+            printf(", ");
+        if (ptr[f, i])
+            printf("(XEN_GUEST_HANDLE_PARAM(%s)){ _p(a%d) }", typ[f, i], i);
+        else
+            printf("(%s)(a%d)", typ[f, i], i);
+    }
+    printf("); \\\n");
+}
+
+# Generate case statement for call
+function do_case(f, p) {
+    printf("        case __HYPERVISOR_%s: \\\n", fn[f]);
+    do_call(f, p);
+    printf("            break; \\\n");
+}
+
+# Generate switch statement for calling handlers
+function do_switch(ca, p,    i) {
+    printf("        switch ( num ) \\\n");
+    printf("        { \\\n");
+    for (i = 1; i <= nc; i++)
+        if (call[i] == ca && call_prio[i] == p)
+            do_case(call_fn[i], call_p[i]);
+    printf("        default: \\\n");
+    printf("            ret = -ENOSYS; \\\n");
+    printf("            break; \\\n");
+    printf("        } \\\n");
+}
+
+function rest_of_line(par,    i, val) {
+    val = $(par);
+    for (i = par + 1; i <= NF; i++)
+        val = val " " $(i);
+    return val;
+}
+
+# Handle comments (multi- and single line)
+$1 == "/*" {
+    comment = 1;
+}
+comment == 1 {
+    if ($(NF) == "*/") comment = 0;
+    next;
+}
+
+# Skip preprocessing artefacts
+$1 == "extern" {
+    next;
+}
+/^#/ {
+    next;
+}
+
+# Drop empty lines
+NF == 0 {
+    next;
+}
+
+# Handle "handle:" line
+$1 == "handle:" {
+    if (NF < 3)
+        do_err("\"handle:\" requires at least two parameters");
+    val = rest_of_line(3);
+    xlate[val] = $2;
+    next;
+}
+
+# Handle "defhandle:" line
+$1 == "defhandle:" {
+    if (NF < 2)
+        do_err("\"defhandle:\" requires at least one parameter");
+    e++;
+    if (NF == 2) {
+        emit[e] = sprintf("DEFINE_XEN_GUEST_HANDLE(%s);", $2);
+    } else {
+        val = rest_of_line(3);
+        emit[e] = sprintf("__DEFINE_XEN_GUEST_HANDLE(%s, %s);", $2, val);
+        xlate[val] = $2;
+    }
+    next;
+}
+
+# Handle "addline:" line
+$1 == "addline:" {
+    if (NF < 2)
+        do_err("\"addline:\" requires at least one parameter");
+    e++;
+    emit[e] = rest_of_line(2);
+    next;
+}
+
+# Handle "rettype:" line
+$1 == "rettype:" {
+    if (NF < 3)
+        do_err("\"rettype:\" requires at least two parameters");
+    if ($2 in rettype)
+        do_err("rettype can be set only once for each prefix");
+    rettype[$2] = rest_of_line(3);
+    next;
+}
+
+# Handle "caller:" line
+$1 == "caller:" {
+    caller[$2] = 1;
+    next;
+}
+
+# Handle "prefix:" line
+$1 == "prefix:" {
+    p = NF - 1;
+    for (i = 2; i <= NF; i++) {
+        prefix[i - 1] = $(i);
+        if (!(prefix[i - 1] in rettype))
+            rettype[prefix[i - 1]] = "long";
+    }
+    next;
+}
+
+# Handle "table:" line
+$1 == "table:" {
+    table = 1;
+    for (i = 2; i <= NF; i++)
+        col[i - 1] = $(i);
+    n_cols = NF - 1;
+    next;
+}
+
+# Handle table definition line
+table == 1 {
+    if (NF != n_cols + 1)
+        do_err("Table definition line has wrong number of fields");
+    for (c = 1; c <= n_cols; c++) {
+        if (caller[col[c]] != 1)
+            continue;
+        if ($(c + 1) == "-")
+            continue;
+        pref = $(c + 1);
+        idx = index(pref, ":");
+        if (idx == 0)
+            prio = 100;
+        else {
+            prio = substr(pref, idx + 1) + 0;
+            pref = substr(pref, 1, idx - 1);
+            if (prio >= 100 || prio < 1)
+                do_err("Priority must be in the range 1..99");
+        }
+        fnd = 0;
+        for (i = 1; i <= n; i++) {
+            if (fn[i] != $1)
+                continue;
+            for (j = 1; j <= n_pre[i]; j++) {
+                if (pre[i, j] == pref) {
+                    prios[col[c], prio]++;
+                    if (prios[col[c], prio] == 1) {
+                        n_prios[col[c]]++;
+                        prio_list[col[c], n_prios[col[c]]] = prio;
+                        prio_mask[col[c], prio] = "(1ULL << __HYPERVISOR_"$1")";
+                    } else
+                        prio_mask[col[c], prio] = prio_mask[col[c], prio] " | (1ULL << __HYPERVISOR_"$1")";
+                    nc++;
+                    call[nc] = col[c];
+                    call_fn[nc] = i;
+                    call_p[nc] = j;
+                    call_prio[nc] = prio;
+                    fnd = 1;
+                }
+            }
+        }
+        if (fnd == 0)
+            do_err("No prototype for prefix/hypercall combination");
+    }
+    next;
+}
+
+# Prototype line
+{
+    bro = index($0, "(");
+    brc = index($0, ")");
+    if (bro < 2 || brc < bro)
+        do_err("No valid prototype line");
+    n++;
+    fn[n] = substr($0, 1, bro - 1);
+    n_pre[n] = p;
+    for (i = 1; i <= p; i++)
+        pre[n, i] = prefix[i];
+    args = substr($0, bro + 1, brc - bro - 1);
+    n_args[n] = split(args, a, ",");
+    if (n_args[n] > 5)
+        do_err("Too many parameters");
+    for (i = 1; i <= n_args[n]; i++) {
+        sub("^ *", "", a[i]);         # Remove leading white space
+        sub(" +", " ", a[i]);         # Replace multiple spaces with single ones
+        sub(" *$", "", a[i]);         # Remove trailing white space
+        ptr[n, i] = index(a[i], "*"); # Is it a pointer type?
+        sub("[*]", "", a[i]);         # Remove "*"
+        if (index(a[i], " ") == 0)
+            do_err("Parameter with no type or no name");
+        typ[n, i] = a[i];
+        sub(" [^ ]+$", "", typ[n, i]);    # Remove parameter name
+        if (ptr[n, i] && (typ[n, i] in xlate))
+            typ[n, i] = xlate[typ[n, i]];
+        arg[n, i] = a[i];
+        sub("^([^ ]+ )+", "", arg[n, i]); # Remove parameter type
+    }
+}
+
+# Generate the output
+END {
+    # Verbatim generated lines
+    for (i = 1; i <= e; i++)
+        printf("%s\n", emit[i]);
+    printf("\n");
+    # Generate prototypes
+    for (i = 1; i <= n; i++) {
+        for (p = 1; p <= n_pre[i]; p++) {
+            printf("%s %s_%s(", rettype[pre[i, p]], pre[i, p], fn[i]);
+            if (n_args[i] == 0)
+                printf("void");
+            else
+                for (j = 1; j <= n_args[i]; j++) {
+                    if (j > 1)
+                        printf(", ");
+                    if (ptr[i, j])
+                        printf("XEN_GUEST_HANDLE_PARAM(%s)", typ[i, j]);
+                    else
+                        printf("%s", typ[i, j]);
+                    printf(" %s", arg[i, j]);
+                }
+            printf(");\n");
+        }
+    }
+    # Generate call sequences and args array contents
+    for (ca in caller) {
+        if (caller[ca] != 1)
+            continue;
+        for (pl = 1; pl <= n_prios[ca]; pl++)
+            p_list[pl] = prio_list[ca, pl];
+        asort(p_list, p_list, "@val_num_asc");
+        need_mask = 0;
+        # If any prio but the default one has more than 1 entry we need "mask"
+        for (pl = 1; pl < n_prios[ca]; pl++) {
+            if (prios[ca, p_list[pl]] > 1)
+                need_mask = 1;
+        }
+        printf("\n");
+        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5) \\\n", ca);
+        printf("{ \\\n");
+        if (need_mask)
+            printf("    uint64_t mask = 1ULL << num; \\\n");
+        printf("    ");
+        for (pl = 1; pl <= n_prios[ca]; pl++) {
+            if (prios[ca, p_list[pl]] > 1) {
+                if (pl < n_prios[ca]) {
+                    printf("if ( likely(mask & (%s)) ) \\\n", prio_mask[ca, p_list[pl]]);
+                    printf("    { \\\n");
+                }
+                if (prios[ca, p_list[pl]] == 2) {
+                    fnd = 0;
+                    for (i = 1; i <= nc; i++)
+                        if (call[i] == ca && call_prio[i] == p_list[pl]) {
+                            fnd++;
+                            if (fnd == 1)
+                                printf("        if ( num == __HYPERVISOR_%s ) \\\n", fn[call_fn[i]]);
+                            else
+                                printf("        else \\\n");
+                            do_call(call_fn[i], call_p[i]);
+                        }
+                } else {
+                    do_switch(ca, p_list[pl]);
+                }
+                if (pl < n_prios[ca])
+                    printf("    } \\\n");
+            } else {
+                for (i = 1; i <= nc; i++)
+                    if (call[i] == ca && call_prio[i] == p_list[pl]) {
+                        printf("if ( likely(num == __HYPERVISOR_%s) ) \\\n", fn[call_fn[i]]);
+                        do_call(call_fn[i], call_p[i]);
+                    }
+            }
+            if (pl < n_prios[ca] || prios[ca, p_list[pl]] <= 2)
+                printf("    else ");
+        }
+        if (prios[ca, p_list[n_prios[ca]]] <= 2) {
+            printf("\\\n");
+            printf("        ret = -ENOSYS; \\\n");
+        }
+        printf("}\n");
+        delete p_list;
+        printf("\n");
+        printf("#define hypercall_args_%s \\\n", ca);
+        printf("{ \\\n");
+        for (i = 1; i <= nc; i++)
+            if (call[i] == ca)
+                printf("[__HYPERVISOR_%s] = %d, \\\n", fn[call_fn[i]], n_args[call_fn[i]]);
+        printf("}\n");
+    }
+}
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 07:38:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 07:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219744.380706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoN7-0007em-MI; Tue, 02 Nov 2021 07:38:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219744.380706; Tue, 02 Nov 2021 07:38:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoN7-0007ef-J7; Tue, 02 Nov 2021 07:38:17 +0000
Received: by outflank-mailman (input) for mailman id 219744;
 Tue, 02 Nov 2021 07:38:16 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uKY1=PV=arm.com=Wei.Chen@srs-us1.protection.inumbo.net>)
 id 1mhoN6-0007eZ-Eo
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 07:38:16 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com (unknown
 [2a01:111:f400:7e1a::61c])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id bec40b01-e334-41e9-b14f-493a22cd2d56;
 Tue, 02 Nov 2021 07:38:13 +0000 (UTC)
Received: from AM5PR0402CA0014.eurprd04.prod.outlook.com
 (2603:10a6:203:90::24) by DB8PR08MB5273.eurprd08.prod.outlook.com
 (2603:10a6:10:e8::25) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 07:38:10 +0000
Received: from VE1EUR03FT049.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:203:90:cafe::85) by AM5PR0402CA0014.outlook.office365.com
 (2603:10a6:203:90::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14 via Frontend
 Transport; Tue, 2 Nov 2021 07:38:10 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT049.mail.protection.outlook.com (10.152.19.216) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Tue, 2 Nov 2021 07:38:10 +0000
Received: ("Tessian outbound 4ce13939bd4a:v108");
 Tue, 02 Nov 2021 07:38:09 +0000
Received: from 36b90b1a0f5a.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 7BA2CF52-8316-4815-B0F8-672B88A6CC51.1; 
 Tue, 02 Nov 2021 07:37:59 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 36b90b1a0f5a.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 02 Nov 2021 07:37:59 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com (2603:10a6:10:2a2::7)
 by DB6PR0801MB1879.eurprd08.prod.outlook.com (2603:10a6:4:73::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Tue, 2 Nov
 2021 07:37:55 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5]) by DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5%3]) with mapi id 15.20.4649.019; Tue, 2 Nov 2021
 07:37:55 +0000
Received: from [10.169.188.84] (203.126.0.112) by
 SG2PR06CA0139.apcprd06.prod.outlook.com (2603:1096:1:1f::17) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 07:37:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bec40b01-e334-41e9-b14f-493a22cd2d56
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JxghCdd8Lo8ENFDjUBpbNTbKyeQ+3JEpBY0azmnY/UI=;
 b=Asu0+t2FQjoSTXeTcG5ZTLUwVoFNwRvHpZeic/vv7brCO76hu4VyRIAgH6CZ4GvCneLJuwUCyzD7AF3mtjE4t/czC5M0HgtEkePChOGEr+Qgx7jl3v2OZyjTKdciUnVfDkf9TzrwgU69xMwvsNVThtyZ9APdGcSPHqxS20gY8uk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 07257a2aa4e43840
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lH70X3k7YSagjSZ2wIwLdzx7GWJMA8XH4fDvCn5PWujJJciLVebQcyR10llWgoFYD4qvnGzglwl29VTmX8t0Z0Smm1i63qV50oC+bJcF1Mk12ClZGwgzXyEpy++5rwp5puXXhOoJGLs3Xu8VP8vWLEZYfQ9gkibJuVg2dtc/UvokLYXWYWKf93D0KsdE8jn/QVEUpy7zPL0FNT637IUp/a65yG/LHJu6ZizikfZKY0IuAgvcXCd5zXY/uNiysbY5EfRqafyCFZiSM137ODk5knSVHUlvSfGqqJIlgpDH43U0rfz8E6IS3KKXZh5ZUu/YhQoZWN4bHS/f6UgpxxKFvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JxghCdd8Lo8ENFDjUBpbNTbKyeQ+3JEpBY0azmnY/UI=;
 b=MWRtIhcdeqME0a9drV3T29L2Oy4gr+ObFnm9S4XJgXnvY5YZxKSrzI6qc9vlg89yxdPRR9JwlqrCyG+06qK0E9oWiCViJfnRob9FRUO+QjqEhGJ7+RunUBImnFM4NHL47Bouh8qnIRTXTAq7vu72RuOG98vRkH/MmNH0euf4JOk4T5jx+MYxdJEvhdGJ+fC83rF6Yy8DnS7OhNJ7+OBA3B6XjFDG7mWjv6GrZ8u+V0g0jCQBfdSYYoUjrmER67KIMK5Ki+nTuPw31aXR9+yuUsmbXJeg4aLijrlHEuba6fvxyabc5j1S6U5ms89rLznq+2ARa7LLidu5qoo7ohhoug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JxghCdd8Lo8ENFDjUBpbNTbKyeQ+3JEpBY0azmnY/UI=;
 b=Asu0+t2FQjoSTXeTcG5ZTLUwVoFNwRvHpZeic/vv7brCO76hu4VyRIAgH6CZ4GvCneLJuwUCyzD7AF3mtjE4t/czC5M0HgtEkePChOGEr+Qgx7jl3v2OZyjTKdciUnVfDkf9TzrwgU69xMwvsNVThtyZ9APdGcSPHqxS20gY8uk=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Message-ID: <74ea74b7-d9e9-a030-753d-a1108cc244d0@arm.com>
Date: Tue, 2 Nov 2021 15:37:52 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.0
From: Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
Cc: Julien Grall <julien@xen.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, "sstabellini@kernel.org"
 <sstabellini@kernel.org>, Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211027082533.1406015-1-andr2000@gmail.com>
 <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <YXqnS7iZUvokJby6@Air-de-Roger>
 <3206478e-f230-cd91-5de9-85ef6c251405@epam.com>
 <YXrJyLMiMxaNmFAs@Air-de-Roger>
 <5de6c2f1-ef5c-9d8c-4287-9b0e3ff08b34@epam.com>
 <YXuj4frtHIRuSgOO@Air-de-Roger>
 <0ba7aa82-40bc-c0d3-38a2-8c4d141d0afd@epam.com>
Content-Language: en-US
In-Reply-To: <0ba7aa82-40bc-c0d3-38a2-8c4d141d0afd@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SG2PR06CA0139.apcprd06.prod.outlook.com
 (2603:1096:1:1f::17) To DB9PR08MB6857.eurprd08.prod.outlook.com
 (2603:10a6:10:2a2::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4011dc7f-7312-492b-1bb3-08d99dd3b838
X-MS-TrafficTypeDiagnostic: DB6PR0801MB1879:|DB8PR08MB5273:
X-Microsoft-Antispam-PRVS:
	<DB8PR08MB52730E5D6A0F14BA012AFE889E8B9@DB8PR08MB5273.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 W7BmzTotlSkYvyCHvcAOP8TdesP7WZ2OUa8B1PjC/p3pXt8fcD3p/RtMN+rq1lzKoNwjWK8pytyAsXlTydQcxa1F8byd7kcOfJ1vo7sYgNEDXf/Fq/jRTaOJESRZ+x+QmL76mfymAGbgIngi0ympJspdzMJ5/wvdLkPePQQ5+BBev/hcAdF7cREZM8QWdTB54nFhlpUEEQhXkKCXQZdk2rmfAwVftoCu9hWTP/IBGhott2x+ga3oJwJYPRAu75+2BuQrYcjKLR2bGmgwXDXXif+2oE41YsX6W60RpA1SXimM0tz9+03dWKoxVo6FFiDKseH/kE9jn+QaC6FrdZi8W/NNqEyaZ8cJZpFQjIC5E0sE7QXI1Yhg6BCowQXtY7B1hCl8K/iyfcYelOWbwnTlL3Z9VQ0KecyL5b0prrFK6372d1/p5FBl+0rWUUNH5yIBUO31bM2f5efFgSN4V7v8TYoY79mzgmGB6yCGG2S1D5Hcj1ERTqg6bJjnw8VwfT+KV3ah357Rt+JjpsbtvBt1q6VN67084En0BUmD6BAjquvKt04CRI5HfD4czNxxemzyfN97foXLTOnmRZafiJWit3XeHGRBfnDWoa8nBYBHiKpzgEm0ep+am4FehA91wSOjY8V3BI/DJYm6mOF7+0/ZP9Q4jOcoy2i/QP7ZCepppwJzFwi1ebbWevduz8OsrCCFdqRn/KkljmOuwmQ8Gj0VfH/TZqtffwU+jg+0CY55gA4=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6857.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(66946007)(6486002)(83380400001)(66556008)(4326008)(31686004)(956004)(8936002)(8676002)(186003)(38100700002)(66476007)(110136005)(5660300002)(316002)(86362001)(53546011)(31696002)(508600001)(26005)(16576012)(2906002)(36756003)(54906003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1879
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT049.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6dea55ac-eb21-47b6-a257-08d99dd3af18
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	p7TP/js0uR3wcU/QKCNQPM9IStUL60DBs/6BBEpQojJGsqEyEFMdxFxR3miPhjhBukwjsJl4xV6MbVUFwb2gwLx5DmcuzatodVsq1fHKGXsF5S8ZyzUWTkk9io+Zh/L5hRnymBX+rUkbXo/7cEmHYcE8OLQ+Fjrf80EQsQqv8zxNGIYHlEaTN/aeQjuYY1mNnOYPQbKh6iVfE8iTatBPXRUhVKtpXj7pKFM4TakuxiFhOEpumJKE/FwOyQC/6kVKYW5hyimrNOtLc3YFCg1FmwXHwD5sQROxaTq1aW6Hl7Zf4ZwaEaw/0ZuwbSGP3iPuIIWlB1jDQM8gazXH0s5haVyw1EF/G6beeKco+lqvCJfC9POJciFTbv3038oZ9WahoCr4/qrMdHYVBbkAaHwHOVXDXtzJ1owyXHZETM7W24foNisVCFLIMm7da1Wqif26SMdS1aSow7j0oan2eJzRCADb0Pc9YY5BEhiIhEI4QlGXpCghkRitqINEzZNo9XN8jqnklYVkg+CVsgv/SJyNes6JzVWkyuhYglclUlwpE7ANDoJKmdtZ6arTddtJGoovZbNyT/zsQpJCM/wjrniYmX8nOpCzsBXDHpcC1xWGoMlLo6dzQuze3wWDbrssMMS4uNHm7cQapOmZj4glOWBEftKq8e6fSwmlXSmIiO7FaP5kdMGvVV9NRh3Ckf02wWoSiaNIPthgeTiiQL/lMjzSpLhy6DN6wzw/04T+DjzMaq8=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(31686004)(336012)(5660300002)(26005)(508600001)(36860700001)(86362001)(82310400003)(36756003)(2616005)(956004)(2906002)(31696002)(47076005)(70206006)(316002)(8936002)(356005)(6486002)(16576012)(54906003)(70586007)(53546011)(4326008)(81166007)(186003)(110136005)(8676002)(83380400001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 07:38:10.2551
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4011dc7f-7312-492b-1bb3-08d99dd3b838
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT049.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5273

Hi Oleksandr,

On 2021/11/1 14:14, Oleksandr Andrushchenko wrote:
> 
> 
> On 29.10.21 10:33, Roger Pau Monné wrote:
>> On Thu, Oct 28, 2021 at 05:55:25PM +0000, Oleksandr Andrushchenko wrote:
>>>
>>> On 28.10.21 19:03, Roger Pau Monné wrote:
>>>> On Thu, Oct 28, 2021 at 02:23:34PM +0000, Oleksandr Andrushchenko wrote:
>>>>> On 28.10.21 16:36, Roger Pau Monné wrote:
>>>>>> On Thu, Oct 28, 2021 at 12:09:23PM +0000, Oleksandr Andrushchenko wrote:
>>>>>>> Hi, Julien!
>>>>>>>
>>>>>>> On 27.10.21 20:35, Julien Grall wrote:
>>>>>>>> Hi Oleksandr,
>>>>>>>>
>>>>>>>> On 27/10/2021 09:25, Oleksandr Andrushchenko wrote:
>>>>>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>>>>>
>>>>>>>>> While in vPCI MMIO trap handlers for the guest PCI host bridge it is not
>>>>>>>>> enough for SBDF translation to simply call VPCI_ECAM_BDF(info->gpa) as
>>>>>>>>> the base address may not be aligned in the way that the translation
>>>>>>>>> always work. If not adjusted with respect to the base address it may not be
>>>>>>>>> able to properly convert SBDF and crashes:
>>>>>>>>>
>>>>>>>>> (XEN) vpci_mmio_read 0000:65:1a.0 reg 8bc gpa e65d08bc
>>>>>>>> I can't find a printk() that may output this message. Where does this comes from?
>>>>>>> That was a debug print. I shouldn't have used that in the patch description, but
>>>>>>> probably after "---" to better explain what's happening
>>>>>>>> Anyway, IIUC the guest physical address is 0xe65d08bc which, if I am not mistaken, doesn't belong to the range advertised for GUEST_VPCI_ECAM.
>>>>>>> This is from dom0 I am working on now.
>>>>>>>> IMHO, the stack trace should come from usptream Xen or need some information to explain how this was reproduced.
>>>>>>>>
>>>>>>>>> (XEN) Data Abort Trap. Syndrome=0x6
>>>>>>>>> (XEN) Walking Hypervisor VA 0x467a28bc on CPU0 via TTBR 0x00000000481d5000
>>>>>>>> I can understnad that if we don't substract GUEST_VPCI_ECAM, we would (in theory) not get the correct BDF. But... I don't understand how this would result to a data abort in the hypervisor.
>>>>>>>>
>>>>>>>> In fact, I think the vPCI code should be resilient enough to not crash if we pass the wrong BDF.
>>>>>>> Well, there is no (?) easy way to validate SBDF. And this could be a problem if we have a misbehaving
>>>>>>> guest which may force Xen to access the memory beyond that of PCI host bridge
>>>>>> How could that be? The ECAM region exposed to the guest you should be
>>>>>> the same as the physical one for dom0?
>>>>> Ok, I have a Designware PCI hist which has 2 ECAM regions (I am starting to
>>>>> implement the driver for it, so I can be wrong here):
>>>>> - Root Complex ECAM area ("dbi"), it is something like 0x3000 bytes long
>>>>> - "Client" ECAM area ("config")
>>>>> So from Dom0 POV we have 2 ECAM regions and for the guest
>>>>> we always emulate a single big region:
>>>> You need support for multiple ECAM regions. That's how we do it on x86
>>>> PVH dom0. See register_vpci_mmcfg_handler and related machinery.
>>> Is it common for a PCI host bridge to have multiple ECAM regions?
>>> Currently on Arm we were about to support "pci-host-ecam-generic" [1],
>>> e.g. generic ECAM host bridge which normally (?) has a single ECAM
>>> region [2]. But the host bridge I want to support has multiple, so
>>> strictly speaking it is not the one that we implement.
>> It's possible on x86 to have multiple ECAM regions, whether that means
>> multiple host bridges, or host bridges having multiple ECAM regions is
>> unknown to me. It's all reported in the MCFG ACPI table (see PCI
>> Firmware document for the detailed description of MCFG) using the
>> "Configuration Space Base Address Allocation Structure", and there can
>> be multiple of those structures.
> As we are currently supporting generic ECAM host bridge which
> has a single ECAM region I think the existing code we have and
> about to upstream is ok as is for now.
> I own a bridge which has 2 ECAM regions, so I will work towards
> adding its support soon.
>>
>>> Arm folks, do we want this generalization at this moment to align with x86
>>> with this respect?
>>>
>>> We can live with the current approach and when I have my driver implemented
>>> I can send patches to make that generalization.
>>>>> /*
>>>>>      * 256 MB is reserved for VPCI configuration space based on calculation
>>>>>      * 256 buses x 32 devices x 8 functions x 4 KB = 256 MB
>>>>>      */
>>>>> #define GUEST_VPCI_ECAM_BASE    xen_mk_ullong(0x10000000)
>>>>> #define GUEST_VPCI_ECAM_SIZE    xen_mk_ullong(0x10000000)
>>>>>
>>>>> So, we have the base address and size of the emulated ECAM space
>>>>> not connected to the real host bridge
>>>>>> And for domUs you really need to fix vpci_{read,write} to not
>>>>>> passthrough accesses not explicitly handled.
>>>>> Do you mean that we need to validate SBDFs there?
>>>>> This can be tricky if we have a use-case when a PCI device being
>>>>> passed through if not put at 0000:00:0.0, but requested to be, for
>>>>> example, 0000:0d:0.0. So, we need to go over the list of virtual
>>>>> devices and see if SBDF the guest is trying to access is a valid SBDF.
>>>>> Is this what you mean?
>>>> No, you need to prevent accesses to registers not explicitly handled
>>>> by vpci. Ie: do not forward unhandled accesses to
>>>> vpci_{read,wrie}_hw).
>>> I see, so those which have no handlers are not passed to the hardware.
>>> I need to see how to do that
>> Indeed. Without fixing that passthrough to domUs is completely unsafe,
>> as you allow domUs full access to registers not explicitly handled by
>> current vPCI code.
> Well, my understanding is: we can let the guest access whatever
> registers it wants with the following exceptions:
> - "special" registers we already trap in vPCI, e.g. command, BARs
> - we must not let the guest go out of the configuration space of a
> specific PCI device, e.g. prevent it from accessing configuration
> spaces of other devices.
> The rest accesses seem to be ok to me as we do not really want:
> - have handlers and emulate all possible registers
> - we do not want the guest to fail if it accesses a valid register which
> we do not emulate.

I am tring to review your patch, please point out if there is anything
wrong. IIUC, vPCI only emulates some registers, and forward unhandled
accesses to physical device configuration space (if the accesses passed 
the validate.)?
Does that make the context inconsistent in physical device's 
configuration space? For example, one register in physical device
config space is related to another register. But we just emulate
only one in vPCI?


>>
>> Regards, Roger.
>>
> Thanks,
> Oleksandr
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 07:47:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 07:47:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219753.380723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoVP-0000hI-Ms; Tue, 02 Nov 2021 07:46:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219753.380723; Tue, 02 Nov 2021 07:46:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoVP-0000hB-Iw; Tue, 02 Nov 2021 07:46:51 +0000
Received: by outflank-mailman (input) for mailman id 219753;
 Tue, 02 Nov 2021 07:46:49 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhoVN-0000h5-Sr
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 07:46:49 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 3c723417-85b8-408e-82f5-697c11a14d0f;
 Tue, 02 Nov 2021 07:46:48 +0000 (UTC)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A27ONKM001152;
 Tue, 2 Nov 2021 07:46:42 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c2yjbra8h-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 07:46:42 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3374.eurprd03.prod.outlook.com (2603:10a6:803:18::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Tue, 2 Nov
 2021 07:46:39 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 07:46:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c723417-85b8-408e-82f5-697c11a14d0f
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KLKr56GaldDYVR8CEq5TyUBiML5e6amXzeNtzJ/hvOISzO2sLEmUepjHhYCr4GMEfOqh2ch2ssyRtoawoFCCsd948zaYUi8qwESDPqyXOhQzeIovoXgAPuhmKPeTl/IzjBBNOR2dA/ojfZbMZQlCttcyAFzPiA4VoDdygYu2svNUfb7wSkexBIMPqbzl4ddSW23d2tiJ7HxjscJEDthS3ebE8AIJSNE6XKrkIPsXt30KcLC7CoLBzMprA2xsxIQW7U1+GyYhvRzziYwj2O+zDBsOewub9YUl/GBHKntVtKT7iHjU0fnhWqyu2yEaqujCyS+l6h0roDtBaXIXyfTgvg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LHITBb+UTW++S1bOyK+dJtHcoo0ZAndTr/VBmTGE/zc=;
 b=cWbsgPSWqxCPv/Tt7YqbIrfmMFIpEXatXc5f2/bkKaMJoaIWwqMkbwajSRwwqfskeqcXagb9xJTuIAaZ6Jq4G0UHEVYnvVZInxCwqqiLhLnpci4S9WqOzvYFig6HkyF+vgj/SIRUdlGNW64fB6EArrx6Ypk+yKmfI8NRBR6tLES07oabhzfocX/DOksRKuK/qTXZaCCaKFeOruo1ljI37+L5mhvB2RbpnfjgQ1aBM7k3MqJF4QtHzbFsU3LlxSRALC1IoJIK5Si8DO49W0U+wFzjzSsZvm5qKj8jW+qIdOqltjqZWp57hOGPVJ8RD8qO2l0UCoVt6DPhI3VjxZzL3A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LHITBb+UTW++S1bOyK+dJtHcoo0ZAndTr/VBmTGE/zc=;
 b=KkiFyVaJdMh0c8zrW6+iRYI9koxE14VghzwObKUlVcRFSAq9qxMARh1YJ+wpWFOjnEtp0PVtbr0YUuNLx6OeexRYsN6UwZCXYTKexnFZ4toIecC9+SKncJMNS35VpwOYjKpXHtvGSNZ6Vd4UPS4ZwRMdNxAT/6v2ZZUyo9YVrZg70yzBahTieTv1RZblpwLM1LE8JkveAJrW7QL+4Yy4aZZwTyImtQn9t4G/YUgmTycwyVAaZSW0GY4EeMWMdpXfvBOKh76fOTHa3XuPk+Auq39QckvSroWVQEFP89i0ahd+ug8UVfs/R2CU/yHJTy85UyuVGuBI6q6QvB3OFv7jFA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Wei Chen <Wei.Chen@arm.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: Julien Grall <julien@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Thread-Topic: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Thread-Index: 
 AQHXyww6rKHs3LJru0q52eLUia+oNavnHBIAgAE3H4CAABhAgIAADTsAgAAb4gCAAB9PgIAA5K+AgASg3ICAAamVAIAAAnMA
Date: Tue, 2 Nov 2021 07:46:39 +0000
Message-ID: <eae1776e-79ea-e219-741d-632aeceeeb12@epam.com>
References: <20211027082533.1406015-1-andr2000@gmail.com>
 <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <YXqnS7iZUvokJby6@Air-de-Roger>
 <3206478e-f230-cd91-5de9-85ef6c251405@epam.com>
 <YXrJyLMiMxaNmFAs@Air-de-Roger>
 <5de6c2f1-ef5c-9d8c-4287-9b0e3ff08b34@epam.com>
 <YXuj4frtHIRuSgOO@Air-de-Roger>
 <0ba7aa82-40bc-c0d3-38a2-8c4d141d0afd@epam.com>
 <74ea74b7-d9e9-a030-753d-a1108cc244d0@arm.com>
In-Reply-To: <74ea74b7-d9e9-a030-753d-a1108cc244d0@arm.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 84851a54-6be8-4805-0dc3-08d99dd4e7b4
x-ms-traffictypediagnostic: VI1PR0302MB3374:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB3374EFDDD02A2581DCE84DD4E78B9@VI1PR0302MB3374.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 MPc/bMc+lH6j4eVKHpYsz7/VwxVJiXOfblOJmGnm4dv+4Abbo+7DO2/ga2hBkZ5zPPfB76UyFqTofju8fJ0uMdIO4uVVmGBMJP4Juwg+BMGh8XtjZzPsMrZSatxwqfXa8cSjiHC3FgAq+cX5Z+KyP24VD+xrKd7sQANjXIDZ/IFarPWiGrifsnyR3A21OhwfVULErS1AF5oU78BjenaEvIuY5cn8ORRoaZdOvkGfqqqeCKllZ+xjZQyulFqhuBrVLuIc01vkxy94vbZbbNGoBVFjBxEGlSzPGuCiyeOQ1rVYdaFRfvgGseQDYc39HnANh8DdOm7A5gvQ5/BnzMvBUXmm81f/tYFAxj4ancYxtJ5QMLLo69w4SgVff/Q3yi8I0UjVE7usZ1BvbLIzZ5Uw4O9ktwqATr2YD7TaPehzMkyd4xiSUOcD+ix0XNI8VYj8IipIFHyp3wZsbL8QcD7yytf6SP8w2avA0k1aATQARD6oNb1vjCgtTiKoNqGO0D0YWSNCQRzg3JusfnvsEezsRaI6eda2UhNPjNrGlfla6dOITWTmTVxAyfwwIqwZF2Aa1fRSonBA3BqgcAgyEfi3+pwCiEmDmC9cqW3y6v8L/A5eufEKbF+Pv07GcYTnEaRFS+iIVENowLFOaMOPQ8F57l7Ar9ieVTvxGQlBSrYGW489UCjlpl9bCiidMMfSLoePU41gSUA9NhJLHM8Hac3SDjAmflnsrKGWrutcJyVa0FLWOIowbuK1DsoSe4q6jPum
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(71200400001)(110136005)(316002)(83380400001)(54906003)(6512007)(26005)(86362001)(53546011)(6506007)(31696002)(6486002)(2906002)(31686004)(186003)(38070700005)(8676002)(5660300002)(8936002)(2616005)(36756003)(66446008)(64756008)(66556008)(66476007)(4326008)(66946007)(76116006)(91956017)(122000001)(38100700002)(508600001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?aDQ1bnREaVp4akhwb1dwa1NObGwrSXNhWG9zT0Fyd2lhVkE1V1lXMFhaVkFF?=
 =?utf-8?B?S0RCQmhGYlZOK0RLYWp2QllBVnEzRXNRYTlMbVRFUEF1OWRpcjE0dUZHUzRH?=
 =?utf-8?B?c2ZyeitLK0dHYjhJaXVESVZtMGhrSUVxc3loclc0T0lYazYyN1ZrcnJOMVFi?=
 =?utf-8?B?aXdEaFFFWGZYYnNVek1JcW0rWDNiaU53RE1QUnZBRDJsMnhJVjVWcjlsR2tv?=
 =?utf-8?B?bmZMMTM3cGFvdjZOaVRXU29qRzE4cURBRXdubmVwelpHMnVsR0hEKzhkdjV2?=
 =?utf-8?B?ZmQyaWhWeGppZWYvVXVLcThhTS9XWlVUaGJFRXduN1RybUpKZWY2RWx3eEY2?=
 =?utf-8?B?aC9XOE0zYVBNZU1uS3U0VmxBRmdrUDVtQXZDdXExSllMUno0MUgrMTVNb013?=
 =?utf-8?B?YnB6MFZlVmFkWFlVdS9xVitpWDdrQ2tVMUhQL0lmR3Vza280bEFocTdmbjBa?=
 =?utf-8?B?UXFpc0ZBS2JTVFcrZ3VBeTEzOTBSc00rQ3BQdkN6cmxEQTVHTlh0dHdoK1Rj?=
 =?utf-8?B?RmdwdkI1RVdvU21JUE4zUGx5WnowYU15SVZUbUVqTnNCMUVCY2dXNDBlb3Iw?=
 =?utf-8?B?MGhhS29QS2NBQitMdnY4bU1RMW9USUY1Wncxa1BVTFAvS0toVmdBOHNJd2E0?=
 =?utf-8?B?Nk1YdVJ5MHpaNk5ZbElwMGtwbFRBRHVtdGpsZFF0alRBWU1zV055NXJtMzJt?=
 =?utf-8?B?TzZuR1cxeCtYM2YzVDAxb0tMMzJKNmtPOHNHcjlOTlpKaXNNOUFjdlNmM3lj?=
 =?utf-8?B?c2h5ZDBRaTdzWUxXMmRSRVlxdGJ4aEtTZVdkOVkrR0pxVDFQakE5MjNUTnB5?=
 =?utf-8?B?SXlnMUpIajl3VW9PMnZ0em16MGxjWWNlMVFEN2hsMUhua2t1RC9yMnloYXJs?=
 =?utf-8?B?YjZDZ3NxSVJaZDBpR2djVVlHazZQRzZrTlRrZEhwMWpYMXVoWHdXT2Q3djJz?=
 =?utf-8?B?RXNGVWFpRk1QSEo4ZDZST3RodzJxdk05dVBWMHFPRDBpTHlpS3EwTjB6eTlp?=
 =?utf-8?B?dUd0cndOV0o4K0VyK3NNMEVzSE55NVNHUklTQmZuTDc1ZS9RMWNYTFg1dGRO?=
 =?utf-8?B?NjVqMkR1UU83M1dIVjJSQnNQNE9DSHhrWmFWMUhYTGFxN0xSRHM1OWlTYlBV?=
 =?utf-8?B?S053R1FXczE1S3dsUnZNVG53Vy9iMUgzZUc1Z2ZhclNvdXNwOUFWRWhSeXFE?=
 =?utf-8?B?QWhwSVZ4N1J2QmJZeVBma2ZrekU4Qmt3cmtMYWdVeFRvdnNwSnlMVytTdW9H?=
 =?utf-8?B?QkVxa21qVUpjTktONFl3Wjd2NzNma2VkYnVqNWNPKzlqM1ZKN2R4cE15eWdu?=
 =?utf-8?B?WXdOSjFycE9ueWJJVnBvMWNOTFU1VUJpSlZtdjN1eVQ4MVZFTHMwQnZaU0ty?=
 =?utf-8?B?T25pcGZpWHd3RjBFS29qZlJmSUxteHlRV0xEblA0ZHdmU2lWYWhwK0ZSV2Zz?=
 =?utf-8?B?REE4clpUSjRTUUR3UHZjN1BqWXpXQ2VNWHFqd0hUTSthd3lGQmNkMnA1Zll4?=
 =?utf-8?B?dTZNdUtOc1dBVCtlNXY5QWZDb2VGZmRnUTNwRGREdnZ5czBudVNvRGVvWWdX?=
 =?utf-8?B?clNaR0pGOUdSRDdtWHN2SHFyRkltK2V5eFZvOEhWRXpTR1R6QUdnNmtIVW9D?=
 =?utf-8?B?N051bCtHZUJ3YS9GOWVibWt4OWhEMGlSbGorZGQvYXlQcXAwK2hFWUtOazJH?=
 =?utf-8?B?OVk1RnRQRGpzdXl5OEV3ZWU5NEQzdFdsTlBhRkdLeDByKzNXajdVTlV2T2la?=
 =?utf-8?B?VnQyMERyL0w1QXpjK0dUUGppTUJ4MVlBUjFuRENuOVErdzY5ektXb1FlbFRB?=
 =?utf-8?B?TjE2L0NnQlBacUp1UFdIZmFXNE9Tcis3d0kzTU80MHR1c21mN0dBckNIakVD?=
 =?utf-8?B?c25hM1FSU0JhNkt1V0hiWjRJcmxuT2xpM0k3V2JjUmd0bW1JTU5Cb1p3eWlE?=
 =?utf-8?B?UDIvU1o1MGFVd2lNQkRpSzhvWm8xL1M5SlZManRiZTFDc0RRekp1SDVjeU9O?=
 =?utf-8?B?ODB6MmtKVE1iQWFXRFh0Q1dUNVNNNk1pODNPNld3K29tUkhCYUNWQ3d5Nm12?=
 =?utf-8?B?WXVOSzZ4Q2lWelhEWWJ2TzdkWXRVbk5nOUIyOUtlZ0hzTFhsdmNYVWI3V1lt?=
 =?utf-8?B?M2t4dzB1THBQQVk0RjVVMGcrellWOStYS3Y1RVg1RWQyRW9OUmFHY3Z5RERw?=
 =?utf-8?B?aHZ1blJ5UUExclJPWks4emxOM0tvZFZ1S20xc3d0dXhMQjhHVWdiS3FEVHI0?=
 =?utf-8?B?b0tXODlXMnFRNGZyMVFpWnptTXYyaTJmWFB5L0JCaHNubkVrVUs5amJjRWRL?=
 =?utf-8?B?ZUl4QUdBSnl1V3RZcndtaXJGZ05Xa1ZoNW5rYmpGYTZvSm1ZdGd0Zz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3C976850144BDB4BB609893F2739EBF2@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 84851a54-6be8-4805-0dc3-08d99dd4e7b4
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 07:46:39.4793
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: fTANblu2PCo3vv1jGezqTO39mU8QivkhyW9+CVUX0NBFhUrdcaKqh7R5Kqt7YHdNjQrPljkt95QgMR2oERB2A2PDKtS8ORaAzbZKc3N0rk2tgIW1jRvj0Sf0SOBM0LRl
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3374
X-Proofpoint-GUID: OUXAm4Y13liNUeSdQxpeSX3wY8wmka3l
X-Proofpoint-ORIG-GUID: OUXAm4Y13liNUeSdQxpeSX3wY8wmka3l
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_06,2021-11-01_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1011
 lowpriorityscore=0 priorityscore=1501 mlxlogscore=999 suspectscore=0
 spamscore=0 impostorscore=0 bulkscore=0 phishscore=0 mlxscore=0
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020045

SGksDQoNCk9uIDAyLjExLjIxIDA5OjM3LCBXZWkgQ2hlbiB3cm90ZToNCj4gSGkgT2xla3NhbmRy
LA0KPg0KPiBPbiAyMDIxLzExLzEgMTQ6MTQsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3Rl
Og0KPj4NCj4+DQo+PiBPbiAyOS4xMC4yMSAxMDozMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToN
Cj4+PiBPbiBUaHUsIE9jdCAyOCwgMjAyMSBhdCAwNTo1NToyNVBNICswMDAwLCBPbGVrc2FuZHIg
QW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4NCj4+Pj4gT24gMjguMTAuMjEgMTk6MDMsIFJvZ2Vy
IFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+PiBPbiBUaHUsIE9jdCAyOCwgMjAyMSBhdCAwMjoyMzoz
NFBNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBPbiAyOC4x
MC4yMSAxNjozNiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+Pj4gT24gVGh1LCBPY3Qg
MjgsIDIwMjEgYXQgMTI6MDk6MjNQTSArMDAwMCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3Jv
dGU6DQo+Pj4+Pj4+PiBIaSwgSnVsaWVuIQ0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IE9uIDI3LjEwLjIx
IDIwOjM1LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4+Pj4+Pj4gSGkgT2xla3NhbmRyLA0KPj4+
Pj4+Pj4+DQo+Pj4+Pj4+Pj4gT24gMjcvMTAvMjAyMSAwOToyNSwgT2xla3NhbmRyIEFuZHJ1c2hj
aGVua28gd3JvdGU6DQo+Pj4+Pj4+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxv
bGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4g
V2hpbGUgaW4gdlBDSSBNTUlPIHRyYXAgaGFuZGxlcnMgZm9yIHRoZSBndWVzdCBQQ0kgaG9zdCBi
cmlkZ2UgaXQgaXMgbm90DQo+Pj4+Pj4+Pj4+IGVub3VnaCBmb3IgU0JERiB0cmFuc2xhdGlvbiB0
byBzaW1wbHkgY2FsbCBWUENJX0VDQU1fQkRGKGluZm8tPmdwYSkgYXMNCj4+Pj4+Pj4+Pj4gdGhl
IGJhc2UgYWRkcmVzcyBtYXkgbm90IGJlIGFsaWduZWQgaW4gdGhlIHdheSB0aGF0IHRoZSB0cmFu
c2xhdGlvbg0KPj4+Pj4+Pj4+PiBhbHdheXMgd29yay4gSWYgbm90IGFkanVzdGVkIHdpdGggcmVz
cGVjdCB0byB0aGUgYmFzZSBhZGRyZXNzIGl0IG1heSBub3QgYmUNCj4+Pj4+Pj4+Pj4gYWJsZSB0
byBwcm9wZXJseSBjb252ZXJ0IFNCREYgYW5kIGNyYXNoZXM6DQo+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+
Pj4+IChYRU4pIHZwY2lfbW1pb19yZWFkIDAwMDA6NjU6MWEuMCByZWcgOGJjIGdwYSBlNjVkMDhi
Yw0KPj4+Pj4+Pj4+IEkgY2FuJ3QgZmluZCBhIHByaW50aygpIHRoYXQgbWF5IG91dHB1dCB0aGlz
IG1lc3NhZ2UuIFdoZXJlIGRvZXMgdGhpcyBjb21lcyBmcm9tPw0KPj4+Pj4+Pj4gVGhhdCB3YXMg
YSBkZWJ1ZyBwcmludC4gSSBzaG91bGRuJ3QgaGF2ZSB1c2VkIHRoYXQgaW4gdGhlIHBhdGNoIGRl
c2NyaXB0aW9uLCBidXQNCj4+Pj4+Pj4+IHByb2JhYmx5IGFmdGVyICItLS0iIHRvIGJldHRlciBl
eHBsYWluIHdoYXQncyBoYXBwZW5pbmcNCj4+Pj4+Pj4+PiBBbnl3YXksIElJVUMgdGhlIGd1ZXN0
IHBoeXNpY2FsIGFkZHJlc3MgaXMgMHhlNjVkMDhiYyB3aGljaCwgaWYgSSBhbSBub3QgbWlzdGFr
ZW4sIGRvZXNuJ3QgYmVsb25nIHRvIHRoZSByYW5nZSBhZHZlcnRpc2VkIGZvciBHVUVTVF9WUENJ
X0VDQU0uDQo+Pj4+Pj4+PiBUaGlzIGlzIGZyb20gZG9tMCBJIGFtIHdvcmtpbmcgb24gbm93Lg0K
Pj4+Pj4+Pj4+IElNSE8sIHRoZSBzdGFjayB0cmFjZSBzaG91bGQgY29tZSBmcm9tIHVzcHRyZWFt
IFhlbiBvciBuZWVkIHNvbWUgaW5mb3JtYXRpb24gdG8gZXhwbGFpbiBob3cgdGhpcyB3YXMgcmVw
cm9kdWNlZC4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiAoWEVOKSBEYXRhIEFib3J0IFRyYXAuIFN5
bmRyb21lPTB4Ng0KPj4+Pj4+Pj4+PiAoWEVOKSBXYWxraW5nIEh5cGVydmlzb3IgVkEgMHg0Njdh
MjhiYyBvbiBDUFUwIHZpYSBUVEJSIDB4MDAwMDAwMDA0ODFkNTAwMA0KPj4+Pj4+Pj4+IEkgY2Fu
IHVuZGVyc3RuYWQgdGhhdCBpZiB3ZSBkb24ndCBzdWJzdHJhY3QgR1VFU1RfVlBDSV9FQ0FNLCB3
ZSB3b3VsZCAoaW4gdGhlb3J5KSBub3QgZ2V0IHRoZSBjb3JyZWN0IEJERi4gQnV0Li4uIEkgZG9u
J3QgdW5kZXJzdGFuZCBob3cgdGhpcyB3b3VsZCByZXN1bHQgdG8gYSBkYXRhIGFib3J0IGluIHRo
ZSBoeXBlcnZpc29yLg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gSW4gZmFjdCwgSSB0aGluayB0aGUg
dlBDSSBjb2RlIHNob3VsZCBiZSByZXNpbGllbnQgZW5vdWdoIHRvIG5vdCBjcmFzaCBpZiB3ZSBw
YXNzIHRoZSB3cm9uZyBCREYuDQo+Pj4+Pj4+PiBXZWxsLCB0aGVyZSBpcyBubyAoPykgZWFzeSB3
YXkgdG8gdmFsaWRhdGUgU0JERi4gQW5kIHRoaXMgY291bGQgYmUgYSBwcm9ibGVtIGlmIHdlIGhh
dmUgYSBtaXNiZWhhdmluZw0KPj4+Pj4+Pj4gZ3Vlc3Qgd2hpY2ggbWF5IGZvcmNlIFhlbiB0byBh
Y2Nlc3MgdGhlIG1lbW9yeSBiZXlvbmQgdGhhdCBvZiBQQ0kgaG9zdCBicmlkZ2UNCj4+Pj4+Pj4g
SG93IGNvdWxkIHRoYXQgYmU/IFRoZSBFQ0FNIHJlZ2lvbiBleHBvc2VkIHRvIHRoZSBndWVzdCB5
b3Ugc2hvdWxkIGJlDQo+Pj4+Pj4+IHRoZSBzYW1lIGFzIHRoZSBwaHlzaWNhbCBvbmUgZm9yIGRv
bTA/DQo+Pj4+Pj4gT2ssIEkgaGF2ZSBhIERlc2lnbndhcmUgUENJIGhpc3Qgd2hpY2ggaGFzIDIg
RUNBTSByZWdpb25zIChJIGFtIHN0YXJ0aW5nIHRvDQo+Pj4+Pj4gaW1wbGVtZW50IHRoZSBkcml2
ZXIgZm9yIGl0LCBzbyBJIGNhbiBiZSB3cm9uZyBoZXJlKToNCj4+Pj4+PiAtIFJvb3QgQ29tcGxl
eCBFQ0FNIGFyZWEgKCJkYmkiKSwgaXQgaXMgc29tZXRoaW5nIGxpa2UgMHgzMDAwIGJ5dGVzIGxv
bmcNCj4+Pj4+PiAtICJDbGllbnQiIEVDQU0gYXJlYSAoImNvbmZpZyIpDQo+Pj4+Pj4gU28gZnJv
bSBEb20wIFBPViB3ZSBoYXZlIDIgRUNBTSByZWdpb25zIGFuZCBmb3IgdGhlIGd1ZXN0DQo+Pj4+
Pj4gd2UgYWx3YXlzIGVtdWxhdGUgYSBzaW5nbGUgYmlnIHJlZ2lvbjoNCj4+Pj4+IFlvdSBuZWVk
IHN1cHBvcnQgZm9yIG11bHRpcGxlIEVDQU0gcmVnaW9ucy4gVGhhdCdzIGhvdyB3ZSBkbyBpdCBv
biB4ODYNCj4+Pj4+IFBWSCBkb20wLiBTZWUgcmVnaXN0ZXJfdnBjaV9tbWNmZ19oYW5kbGVyIGFu
ZCByZWxhdGVkIG1hY2hpbmVyeS4NCj4+Pj4gSXMgaXQgY29tbW9uIGZvciBhIFBDSSBob3N0IGJy
aWRnZSB0byBoYXZlIG11bHRpcGxlIEVDQU0gcmVnaW9ucz8NCj4+Pj4gQ3VycmVudGx5IG9uIEFy
bSB3ZSB3ZXJlIGFib3V0IHRvIHN1cHBvcnQgInBjaS1ob3N0LWVjYW0tZ2VuZXJpYyIgWzFdLA0K
Pj4+PiBlLmcuIGdlbmVyaWMgRUNBTSBob3N0IGJyaWRnZSB3aGljaCBub3JtYWxseSAoPykgaGFz
IGEgc2luZ2xlIEVDQU0NCj4+Pj4gcmVnaW9uIFsyXS4gQnV0IHRoZSBob3N0IGJyaWRnZSBJIHdh
bnQgdG8gc3VwcG9ydCBoYXMgbXVsdGlwbGUsIHNvDQo+Pj4+IHN0cmljdGx5IHNwZWFraW5nIGl0
IGlzIG5vdCB0aGUgb25lIHRoYXQgd2UgaW1wbGVtZW50Lg0KPj4+IEl0J3MgcG9zc2libGUgb24g
eDg2IHRvIGhhdmUgbXVsdGlwbGUgRUNBTSByZWdpb25zLCB3aGV0aGVyIHRoYXQgbWVhbnMNCj4+
PiBtdWx0aXBsZSBob3N0IGJyaWRnZXMsIG9yIGhvc3QgYnJpZGdlcyBoYXZpbmcgbXVsdGlwbGUg
RUNBTSByZWdpb25zIGlzDQo+Pj4gdW5rbm93biB0byBtZS4gSXQncyBhbGwgcmVwb3J0ZWQgaW4g
dGhlIE1DRkcgQUNQSSB0YWJsZSAoc2VlIFBDSQ0KPj4+IEZpcm13YXJlIGRvY3VtZW50IGZvciB0
aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgTUNGRykgdXNpbmcgdGhlDQo+Pj4gIkNvbmZpZ3Vy
YXRpb24gU3BhY2UgQmFzZSBBZGRyZXNzIEFsbG9jYXRpb24gU3RydWN0dXJlIiwgYW5kIHRoZXJl
IGNhbg0KPj4+IGJlIG11bHRpcGxlIG9mIHRob3NlIHN0cnVjdHVyZXMuDQo+PiBBcyB3ZSBhcmUg
Y3VycmVudGx5IHN1cHBvcnRpbmcgZ2VuZXJpYyBFQ0FNIGhvc3QgYnJpZGdlIHdoaWNoDQo+PiBo
YXMgYSBzaW5nbGUgRUNBTSByZWdpb24gSSB0aGluayB0aGUgZXhpc3RpbmcgY29kZSB3ZSBoYXZl
IGFuZA0KPj4gYWJvdXQgdG8gdXBzdHJlYW0gaXMgb2sgYXMgaXMgZm9yIG5vdy4NCj4+IEkgb3du
IGEgYnJpZGdlIHdoaWNoIGhhcyAyIEVDQU0gcmVnaW9ucywgc28gSSB3aWxsIHdvcmsgdG93YXJk
cw0KPj4gYWRkaW5nIGl0cyBzdXBwb3J0IHNvb24uDQo+Pj4NCj4+Pj4gQXJtIGZvbGtzLCBkbyB3
ZSB3YW50IHRoaXMgZ2VuZXJhbGl6YXRpb24gYXQgdGhpcyBtb21lbnQgdG8gYWxpZ24gd2l0aCB4
ODYNCj4+Pj4gd2l0aCB0aGlzIHJlc3BlY3Q/DQo+Pj4+DQo+Pj4+IFdlIGNhbiBsaXZlIHdpdGgg
dGhlIGN1cnJlbnQgYXBwcm9hY2ggYW5kIHdoZW4gSSBoYXZlIG15IGRyaXZlciBpbXBsZW1lbnRl
ZA0KPj4+PiBJIGNhbiBzZW5kIHBhdGNoZXMgdG8gbWFrZSB0aGF0IGdlbmVyYWxpemF0aW9uLg0K
Pj4+Pj4+IC8qDQo+Pj4+Pj4gwqDCoMKgIMKgKiAyNTYgTUIgaXMgcmVzZXJ2ZWQgZm9yIFZQQ0kg
Y29uZmlndXJhdGlvbiBzcGFjZSBiYXNlZCBvbiBjYWxjdWxhdGlvbg0KPj4+Pj4+IMKgwqDCoCDC
oCogMjU2IGJ1c2VzIHggMzIgZGV2aWNlcyB4IDggZnVuY3Rpb25zIHggNCBLQiA9IDI1NiBNQg0K
Pj4+Pj4+IMKgwqDCoCDCoCovDQo+Pj4+Pj4gI2RlZmluZSBHVUVTVF9WUENJX0VDQU1fQkFTRSB4
ZW5fbWtfdWxsb25nKDB4MTAwMDAwMDApDQo+Pj4+Pj4gI2RlZmluZSBHVUVTVF9WUENJX0VDQU1f
U0laRSB4ZW5fbWtfdWxsb25nKDB4MTAwMDAwMDApDQo+Pj4+Pj4NCj4+Pj4+PiBTbywgd2UgaGF2
ZSB0aGUgYmFzZSBhZGRyZXNzIGFuZCBzaXplIG9mIHRoZSBlbXVsYXRlZCBFQ0FNIHNwYWNlDQo+
Pj4+Pj4gbm90IGNvbm5lY3RlZCB0byB0aGUgcmVhbCBob3N0IGJyaWRnZQ0KPj4+Pj4+PiBBbmQg
Zm9yIGRvbVVzIHlvdSByZWFsbHkgbmVlZCB0byBmaXggdnBjaV97cmVhZCx3cml0ZX0gdG8gbm90
DQo+Pj4+Pj4+IHBhc3N0aHJvdWdoIGFjY2Vzc2VzIG5vdCBleHBsaWNpdGx5IGhhbmRsZWQuDQo+
Pj4+Pj4gRG8geW91IG1lYW4gdGhhdCB3ZSBuZWVkIHRvIHZhbGlkYXRlIFNCREZzIHRoZXJlPw0K
Pj4+Pj4+IFRoaXMgY2FuIGJlIHRyaWNreSBpZiB3ZSBoYXZlIGEgdXNlLWNhc2Ugd2hlbiBhIFBD
SSBkZXZpY2UgYmVpbmcNCj4+Pj4+PiBwYXNzZWQgdGhyb3VnaCBpZiBub3QgcHV0IGF0IDAwMDA6
MDA6MC4wLCBidXQgcmVxdWVzdGVkIHRvIGJlLCBmb3INCj4+Pj4+PiBleGFtcGxlLCAwMDAwOjBk
OjAuMC4gU28sIHdlIG5lZWQgdG8gZ28gb3ZlciB0aGUgbGlzdCBvZiB2aXJ0dWFsDQo+Pj4+Pj4g
ZGV2aWNlcyBhbmQgc2VlIGlmIFNCREYgdGhlIGd1ZXN0IGlzIHRyeWluZyB0byBhY2Nlc3MgaXMg
YSB2YWxpZCBTQkRGLg0KPj4+Pj4+IElzIHRoaXMgd2hhdCB5b3UgbWVhbj8NCj4+Pj4+IE5vLCB5
b3UgbmVlZCB0byBwcmV2ZW50IGFjY2Vzc2VzIHRvIHJlZ2lzdGVycyBub3QgZXhwbGljaXRseSBo
YW5kbGVkDQo+Pj4+PiBieSB2cGNpLiBJZTogZG8gbm90IGZvcndhcmQgdW5oYW5kbGVkIGFjY2Vz
c2VzIHRvDQo+Pj4+PiB2cGNpX3tyZWFkLHdyaWV9X2h3KS4NCj4+Pj4gSSBzZWUsIHNvIHRob3Nl
IHdoaWNoIGhhdmUgbm8gaGFuZGxlcnMgYXJlIG5vdCBwYXNzZWQgdG8gdGhlIGhhcmR3YXJlLg0K
Pj4+PiBJIG5lZWQgdG8gc2VlIGhvdyB0byBkbyB0aGF0DQo+Pj4gSW5kZWVkLiBXaXRob3V0IGZp
eGluZyB0aGF0IHBhc3N0aHJvdWdoIHRvIGRvbVVzIGlzIGNvbXBsZXRlbHkgdW5zYWZlLA0KPj4+
IGFzIHlvdSBhbGxvdyBkb21VcyBmdWxsIGFjY2VzcyB0byByZWdpc3RlcnMgbm90IGV4cGxpY2l0
bHkgaGFuZGxlZCBieQ0KPj4+IGN1cnJlbnQgdlBDSSBjb2RlLg0KPj4gV2VsbCwgbXkgdW5kZXJz
dGFuZGluZyBpczogd2UgY2FuIGxldCB0aGUgZ3Vlc3QgYWNjZXNzIHdoYXRldmVyDQo+PiByZWdp
c3RlcnMgaXQgd2FudHMgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnM6DQo+PiAtICJzcGVj
aWFsIiByZWdpc3RlcnMgd2UgYWxyZWFkeSB0cmFwIGluIHZQQ0ksIGUuZy4gY29tbWFuZCwgQkFS
cw0KPj4gLSB3ZSBtdXN0IG5vdCBsZXQgdGhlIGd1ZXN0IGdvIG91dCBvZiB0aGUgY29uZmlndXJh
dGlvbiBzcGFjZSBvZiBhDQo+PiBzcGVjaWZpYyBQQ0kgZGV2aWNlLCBlLmcuIHByZXZlbnQgaXQg
ZnJvbSBhY2Nlc3NpbmcgY29uZmlndXJhdGlvbg0KPj4gc3BhY2VzIG9mIG90aGVyIGRldmljZXMu
DQo+PiBUaGUgcmVzdCBhY2Nlc3NlcyBzZWVtIHRvIGJlIG9rIHRvIG1lIGFzIHdlIGRvIG5vdCBy
ZWFsbHkgd2FudDoNCj4+IC0gaGF2ZSBoYW5kbGVycyBhbmQgZW11bGF0ZSBhbGwgcG9zc2libGUg
cmVnaXN0ZXJzDQo+PiAtIHdlIGRvIG5vdCB3YW50IHRoZSBndWVzdCB0byBmYWlsIGlmIGl0IGFj
Y2Vzc2VzIGEgdmFsaWQgcmVnaXN0ZXIgd2hpY2gNCj4+IHdlIGRvIG5vdCBlbXVsYXRlLg0KPg0K
PiBJIGFtIHRyaW5nIHRvIHJldmlldyB5b3VyIHBhdGNoLCBwbGVhc2UgcG9pbnQgb3V0IGlmIHRo
ZXJlIGlzIGFueXRoaW5nDQo+IHdyb25nLiBJSVVDLCB2UENJIG9ubHkgZW11bGF0ZXMgc29tZSBy
ZWdpc3RlcnMsIGFuZCBmb3J3YXJkIHVuaGFuZGxlZA0KPiBhY2Nlc3NlcyB0byBwaHlzaWNhbCBk
ZXZpY2UgY29uZmlndXJhdGlvbiBzcGFjZSAoaWYgdGhlIGFjY2Vzc2VzIHBhc3NlZCB0aGUgdmFs
aWRhdGUuKT8NClJpZ2h0DQo+IERvZXMgdGhhdCBtYWtlIHRoZSBjb250ZXh0IGluY29uc2lzdGVu
dCBpbiBwaHlzaWNhbCBkZXZpY2UncyBjb25maWd1cmF0aW9uIHNwYWNlPyANCkl0IGlzIGFsd2F5
cyBjb25zaXN0ZW50IGZvciB0aGUgaGFyZHdhcmUgZG9tYWluIGFuZCBzb21lIHBhcnRzIG9mIGl0
IGFyZSBlbXVsYXRlZA0KZm9yIGd1ZXN0cw0KPiBGb3IgZXhhbXBsZSwgb25lIHJlZ2lzdGVyIGlu
IHBoeXNpY2FsIGRldmljZQ0KPiBjb25maWcgc3BhY2UgaXMgcmVsYXRlZCB0byBhbm90aGVyIHJl
Z2lzdGVyLiBCdXQgd2UganVzdCBlbXVsYXRlDQo+IG9ubHkgb25lIGluIHZQQ0k/DQpTbywgd2Ug
dHJhcCBmb3IgYWxsIGRvbWFpbnMgYW5kIGVtdWxhdGUgZm9yIGd1ZXN0cywgZS5nLiBoYXJkd2Fy
ZSBkb21haW4ncyB2aWV3IG9uIHRoZQ0KcmVnaXN0ZXJzIGlzIGNvbnNpc3RlbnQuIEZvciBndWVz
dHMgd2UgZW11bGF0ZToNCi0gUENJX0NPTU1BTkQgLSBub3QgdG8gYWxsb3cgSU5UeCBhcyB3ZSBk
byBub3Qgc3VwcG9ydCB0aGF0IG9uIEFybQ0KLSBCQVJzIC0gd2UgZW11bGF0ZSBndWVzdCdzIHZp
ZXcgb24gdGhlc2UgYWNjb3JkaW5nIHRvIHRoZSBtZW1vcnkgc3BhY2VzDQpvZiB0aGUgZW11bGF0
ZWQgaG9zdCBicmlkZ2UsIHNvIHRoZSByZWFsIEJBUnMgc3RpbGwgaGF2ZSBwaHlzaWNhbCB2YWx1
ZXMsIGJ1dA0KZ3Vlc3RzIHNlZSBlbXVsYXRlZCBvbmVzDQoNCkhvcGUgdGhpcyBoZWxwcw0KPg0K
Pg0KPj4+DQo+Pj4gUmVnYXJkcywgUm9nZXIuDQo+Pj4NCj4+IFRoYW5rcywNCj4+IE9sZWtzYW5k
cg0KPj4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 08:13:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 08:13:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219768.380743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoum-0004WJ-6u; Tue, 02 Nov 2021 08:13:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219768.380743; Tue, 02 Nov 2021 08:13:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhoum-0004WC-1Q; Tue, 02 Nov 2021 08:13:04 +0000
Received: by outflank-mailman (input) for mailman id 219768;
 Tue, 02 Nov 2021 08:13:02 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uKY1=PV=arm.com=Wei.Chen@srs-us1.protection.inumbo.net>)
 id 1mhouk-0004W6-Rb
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 08:13:02 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com (unknown
 [40.107.2.47]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id b169e0ee-3bb4-11ec-8552-12813bfff9fa;
 Tue, 02 Nov 2021 08:13:00 +0000 (UTC)
Received: from AS9PR06CA0238.eurprd06.prod.outlook.com (2603:10a6:20b:45e::8)
 by AM0PR08MB5346.eurprd08.prod.outlook.com (2603:10a6:208:18b::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13; Tue, 2 Nov
 2021 08:12:53 +0000
Received: from VE1EUR03FT063.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:45e:cafe::13) by AS9PR06CA0238.outlook.office365.com
 (2603:10a6:20b:45e::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Tue, 2 Nov 2021 08:12:53 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT063.mail.protection.outlook.com (10.152.18.236) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Tue, 2 Nov 2021 08:12:52 +0000
Received: ("Tessian outbound c71e1a752bff:v108");
 Tue, 02 Nov 2021 08:12:52 +0000
Received: from df3d777992f3.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E783DED4-69D0-4392-AF37-715FDB01C0F3.1; 
 Tue, 02 Nov 2021 08:12:41 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id df3d777992f3.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 02 Nov 2021 08:12:41 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com (2603:10a6:10:2a2::7)
 by DB8PR08MB4042.eurprd08.prod.outlook.com (2603:10a6:10:a4::31) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 08:12:36 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5]) by DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5%3]) with mapi id 15.20.4649.019; Tue, 2 Nov 2021
 08:12:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b169e0ee-3bb4-11ec-8552-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Hhqt3niYVFaBlGRpsrAzh7ttFnbSL9kb2AM6z+dRzZY=;
 b=U4RR3c7rNsoLT7JTp3TxqfXtp/WWt0ADl6wuhZPEH7xIxFxox3sKN3Cztu270bEo3R2q+8lQaHMRVHRXwUi1mfXYQmZkVgIEOChIZVClc3FG7YMi41hTwYLhgsAw/J0AAVwfcR8Z6PitB76ew8iBr+ke+AuJ5YVvDSwjjhmIYFQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MXMHgm5jGfxjl1jr6yZ+dk+uU4k1q1cO4MHaNqfVK9iSd6a1/mBPcAf/needcQC9yi4mfau/mKR4DnuFsPcMtz6rkczy/533bBPhCSaA2nO8mFuuzW+fPXSf0HIaZZHvLWvpgXn2vTaRQk/M40flHFrYCFcF6OWKzf/Q8ErHrdiIY4HQxTUqF4KTgtSepR/+FFfjqI2gqbY61Tw1ER9ixB6laR/P0OJcCZ4wKgmM7noJHCqCJYaYjVHP33dYm88sxQzI7pePqgDcQxctwadzj3OtRaZ6/N5TVRROQU+WECHsM9kqNM7MBJpxnTaG/84TZ1EmIVjxO06f1a5vlmRraQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hhqt3niYVFaBlGRpsrAzh7ttFnbSL9kb2AM6z+dRzZY=;
 b=n2/kM630pGLs3AkmKkTcO9VQHf+Wx4G9mzRGhNelX7JvhFZoA4jB1eNl+QschRg41tEMJ9B9xoQTeYSj8ziWYiKdmPXDixEUAVUCS+DvAFg9dOh+HTyjS6NJEcneOW9QcRt43Y3pLdXQU98gRwG+KDi6x4B1j67ns5+WCo9P/3pAX6GbzSB8hC0IxQrHW67SQ49eM0nj8UIVn+Xrdiq4J7LBNLHzQTCJIocYQ6fQ2sz0qieEdVTHXP2+E2hz63SLgWLMVAAAL4rQTrueax2zGl9xRvBPkDQBGYeTwJ7YUWDxigyXrUQy3DcYgnRN4WuX1P5ydSYA6jeTbQWagOq85A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Hhqt3niYVFaBlGRpsrAzh7ttFnbSL9kb2AM6z+dRzZY=;
 b=U4RR3c7rNsoLT7JTp3TxqfXtp/WWt0ADl6wuhZPEH7xIxFxox3sKN3Cztu270bEo3R2q+8lQaHMRVHRXwUi1mfXYQmZkVgIEOChIZVClc3FG7YMi41hTwYLhgsAw/J0AAVwfcR8Z6PitB76ew8iBr+ke+AuJ5YVvDSwjjhmIYFQ=
From: Wei Chen <Wei.Chen@arm.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, Rahul Singh <Rahul.Singh@arm.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Thread-Topic: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Thread-Index:
 AQHXywxEi4qDbqc+90GgeRggTtEvJ6vnHBEAgAE3IICAABhAgIAADT0AgAAb4ACAAB9RgIAA5K2AgASg3QCAAamUAIAAAnSAgAAHIzA=
Date: Tue, 2 Nov 2021 08:12:36 +0000
Message-ID:
 <DB9PR08MB68573DA7157BD153B4C51A7D9E8B9@DB9PR08MB6857.eurprd08.prod.outlook.com>
References: <20211027082533.1406015-1-andr2000@gmail.com>
 <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <YXqnS7iZUvokJby6@Air-de-Roger>
 <3206478e-f230-cd91-5de9-85ef6c251405@epam.com>
 <YXrJyLMiMxaNmFAs@Air-de-Roger>
 <5de6c2f1-ef5c-9d8c-4287-9b0e3ff08b34@epam.com>
 <YXuj4frtHIRuSgOO@Air-de-Roger>
 <0ba7aa82-40bc-c0d3-38a2-8c4d141d0afd@epam.com>
 <74ea74b7-d9e9-a030-753d-a1108cc244d0@arm.com>
 <eae1776e-79ea-e219-741d-632aeceeeb12@epam.com>
In-Reply-To: <eae1776e-79ea-e219-741d-632aeceeeb12@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: 70825D5C9D13F749AB108CABCC68CB92.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: b8ed0907-6665-4ab9-9238-08d99dd89187
x-ms-traffictypediagnostic: DB8PR08MB4042:|AM0PR08MB5346:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB534697DEF5D0207A89A75AA29E8B9@AM0PR08MB5346.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 aPmIXatLfMtXA1KEXQuE3xXLvUQFcAjdmcXjiAI+TjyCEkoe3/x7SLeBKlAiHFhGZVhJDghf/vHbfGxmFWqQoAOZzT3DDpDXJmmml7OBW4vM5dv2tpZgSGRvbIwgFrtN6tdUszri56p/DZVzee56U3o5g4MyFSPHQRHGNDxRXWjmfLBljfMF5wqTrhay8iQc2jE/pA1KkfcwxQ6rITGrX3TygdjGTzrvKKXP+9sWDKS+lv++mVamlXhQ6nyOyxfO2SXSC4LetMqJjYxZynd0AeL4/c1Ccs0dMSp50ArEZEdlas2kVYlXr9oldhEedWmk0/UYxBSEpqggwCf6hir7C/yHXGzTv8foI4slgkMJSB4qwIm2iyZgY1gvNrDb0iOebBq0Oj85YGO/M4gNK3/uaS8TiBBgzaUE6fBpNYADNQkgTZ6z9KwTEM5YiWv00kd8VrEZTYzw1J0TyzZSWpperQ77r8nSXO3FUYrB5I7OD0pItkOzC8tfoH7osA57Vondp3+pVamma36B00L3SxfXLcq1Z28TeGJmhTHu+WUriXXxbnC7VVUQ5aF39g60IA6JRdHMOKMbZsKmXbfz/Fw06NIBWVLZT9ZgQQ6dSJ51YRCt6eXJOdUMDS91GVxWfR4ZC00PqGv0+5X3AgbLH+4JIYUlXj7rxgTxa7M+zVwjDLl3SLNrWuuT6JHD1851XoKGA5ZcUjSZSlF9waqmp3dbSA==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6857.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(9686003)(26005)(66446008)(76116006)(66946007)(6506007)(508600001)(55016002)(52536014)(186003)(8676002)(4326008)(86362001)(64756008)(66556008)(66476007)(7696005)(71200400001)(54906003)(316002)(33656002)(110136005)(2906002)(38070700005)(53546011)(8936002)(83380400001)(38100700002)(122000001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB4042
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT063.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8f00df49-5859-4fe8-6692-08d99dd887b8
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	nAJiiYFiP4PGYD2Uj18arh7RzKaz7RcAkrX2ZPLLuiytIpG8jm+ENZX7rCmmpO6ULGOqveqKSMYUM1C4jzo7i8Sh6F7ZIMkYQJweaC4BI8iG3Uuv9DGS0lTPzxcPhuRW3TLNDJYvZ69EMBmO1fhRP4RAXGBaEZIXsB8NVKvMlNb+g3NtCvxNwXxa7JaAiy3agjoC6fOsDMt1vrFxjMz2brS+omq2WrJn2Cz+WAuonngub/y/PTNTKkUlqQwN4EXhXoFF9V68FcrkmNnBph5pAmbH9Iwgg2i0+Sb3NDcttqzFP3F9suQQcYPnuyEs9qDOr2vCVBqVGtHAm6now1TOBPL6JFVRCZ1IjVL5AE29FFMAaTPTb8FmEt9A/B4LNem8lpVO1b6U0xEUAwssGOm1au23PMuYzrne0OZRL19JkPV6vKHRfL4OmGINDdPFB3ry7BsE+tKOHXEn96BDTp+3CmCgachp21XHmk3+p0mEVG8v9wzFLkYN25vA6zSvMdqKN9nzKP5TmdRbTER/xRegBolt/POT9mSB3edof2hQ2BANPAt7KTG0c24M28ymBRz3VF9fDgOypfxtpRXQqyx53V0By8ZABvqbEwBjRY4LkmYPStPg0a85xcXYgjGkzEZXFmWowaYVMkWquXb2agBttEvuPW7+Rba6uWG4G5fgS8tXinX2g3wceArdShrsJ2ePK5WMah/MxKlDhF1IfuIdIg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(52536014)(70586007)(2906002)(82310400003)(83380400001)(47076005)(6506007)(4326008)(54906003)(110136005)(5660300002)(8676002)(86362001)(26005)(316002)(53546011)(70206006)(356005)(186003)(508600001)(33656002)(81166007)(55016002)(8936002)(336012)(36860700001)(9686003)(7696005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 08:12:52.8314
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b8ed0907-6665-4ab9-9238-08d99dd89187
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT063.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5346

SGkgT2xla3NhbmRyLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIDxPbGVrc2FuZHJfQW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4N
Cj4gU2VudDogMjAyMeW5tDEx5pyIMuaXpSAxNTo0Nw0KPiBUbzogV2VpIENoZW4gPFdlaS5DaGVu
QGFybS5jb20+OyBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4gQ2M6
IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBCZXJ0cmFuZCBNYXJxdWlzDQo+IDxCZXJ0
cmFuZC5NYXJxdWlzQGFybS5jb20+OyBzc3RhYmVsbGluaUBrZXJuZWwub3JnOyBSYWh1bCBTaW5n
aA0KPiA8UmFodWwuU2luZ2hAYXJtLmNvbT47IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
Zw0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSB4ZW4vYXJtOiBmaXggU0JERiBjYWxjdWxhdGlvbiBm
b3IgdlBDSSBNTUlPIGhhbmRsZXJzDQo+IA0KPiBIaSwNCj4gDQo+IE9uIDAyLjExLjIxIDA5OjM3
LCBXZWkgQ2hlbiB3cm90ZToNCj4gPiBIaSBPbGVrc2FuZHIsDQo+ID4NCj4gPiBPbiAyMDIxLzEx
LzEgMTQ6MTQsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPiA+Pg0KPiA+Pg0KPiA+
PiBPbiAyOS4xMC4yMSAxMDozMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gPj4+IE9uIFRo
dSwgT2N0IDI4LCAyMDIxIGF0IDA1OjU1OjI1UE0gKzAwMDAsIE9sZWtzYW5kciBBbmRydXNoY2hl
bmtvDQo+IHdyb3RlOg0KPiA+Pj4+DQo+ID4+Pj4gT24gMjguMTAuMjEgMTk6MDMsIFJvZ2VyIFBh
dSBNb25uw6kgd3JvdGU6DQo+ID4+Pj4+IE9uIFRodSwgT2N0IDI4LCAyMDIxIGF0IDAyOjIzOjM0
UE0gKzAwMDAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvDQo+IHdyb3RlOg0KPiA+Pj4+Pj4gT24g
MjguMTAuMjEgMTY6MzYsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+ID4+Pj4+Pj4gT24gVGh1
LCBPY3QgMjgsIDIwMjEgYXQgMTI6MDk6MjNQTSArMDAwMCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVu
a28NCj4gd3JvdGU6DQo+ID4+Pj4+Pj4+IEhpLCBKdWxpZW4hDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+
Pj4+IE9uIDI3LjEwLjIxIDIwOjM1LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+ID4+Pj4+Pj4+PiBI
aSBPbGVrc2FuZHIsDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gT24gMjcvMTAvMjAyMSAwOToy
NSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+ID4+Pj4+Pj4+Pj4gRnJvbTogT2xl
a3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0K
PiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gV2hpbGUgaW4gdlBDSSBNTUlPIHRyYXAgaGFuZGxl
cnMgZm9yIHRoZSBndWVzdCBQQ0kgaG9zdCBicmlkZ2UNCj4gaXQgaXMgbm90DQo+ID4+Pj4+Pj4+
Pj4gZW5vdWdoIGZvciBTQkRGIHRyYW5zbGF0aW9uIHRvIHNpbXBseSBjYWxsIFZQQ0lfRUNBTV9C
REYoaW5mby0NCj4gPmdwYSkgYXMNCj4gPj4+Pj4+Pj4+PiB0aGUgYmFzZSBhZGRyZXNzIG1heSBu
b3QgYmUgYWxpZ25lZCBpbiB0aGUgd2F5IHRoYXQgdGhlDQo+IHRyYW5zbGF0aW9uDQo+ID4+Pj4+
Pj4+Pj4gYWx3YXlzIHdvcmsuIElmIG5vdCBhZGp1c3RlZCB3aXRoIHJlc3BlY3QgdG8gdGhlIGJh
c2UgYWRkcmVzcw0KPiBpdCBtYXkgbm90IGJlDQo+ID4+Pj4+Pj4+Pj4gYWJsZSB0byBwcm9wZXJs
eSBjb252ZXJ0IFNCREYgYW5kIGNyYXNoZXM6DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiAo
WEVOKSB2cGNpX21taW9fcmVhZCAwMDAwOjY1OjFhLjAgcmVnIDhiYyBncGEgZTY1ZDA4YmMNCj4g
Pj4+Pj4+Pj4+IEkgY2FuJ3QgZmluZCBhIHByaW50aygpIHRoYXQgbWF5IG91dHB1dCB0aGlzIG1l
c3NhZ2UuIFdoZXJlIGRvZXMNCj4gdGhpcyBjb21lcyBmcm9tPw0KPiA+Pj4+Pj4+PiBUaGF0IHdh
cyBhIGRlYnVnIHByaW50LiBJIHNob3VsZG4ndCBoYXZlIHVzZWQgdGhhdCBpbiB0aGUgcGF0Y2gN
Cj4gZGVzY3JpcHRpb24sIGJ1dA0KPiA+Pj4+Pj4+PiBwcm9iYWJseSBhZnRlciAiLS0tIiB0byBi
ZXR0ZXIgZXhwbGFpbiB3aGF0J3MgaGFwcGVuaW5nDQo+ID4+Pj4+Pj4+PiBBbnl3YXksIElJVUMg
dGhlIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MgaXMgMHhlNjVkMDhiYyB3aGljaCwgaWYNCj4gSSBh
bSBub3QgbWlzdGFrZW4sIGRvZXNuJ3QgYmVsb25nIHRvIHRoZSByYW5nZSBhZHZlcnRpc2VkIGZv
cg0KPiBHVUVTVF9WUENJX0VDQU0uDQo+ID4+Pj4+Pj4+IFRoaXMgaXMgZnJvbSBkb20wIEkgYW0g
d29ya2luZyBvbiBub3cuDQo+ID4+Pj4+Pj4+PiBJTUhPLCB0aGUgc3RhY2sgdHJhY2Ugc2hvdWxk
IGNvbWUgZnJvbSB1c3B0cmVhbSBYZW4gb3IgbmVlZCBzb21lDQo+IGluZm9ybWF0aW9uIHRvIGV4
cGxhaW4gaG93IHRoaXMgd2FzIHJlcHJvZHVjZWQuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+
IChYRU4pIERhdGEgQWJvcnQgVHJhcC4gU3luZHJvbWU9MHg2DQo+ID4+Pj4+Pj4+Pj4gKFhFTikg
V2Fsa2luZyBIeXBlcnZpc29yIFZBIDB4NDY3YTI4YmMgb24gQ1BVMCB2aWEgVFRCUg0KPiAweDAw
MDAwMDAwNDgxZDUwMDANCj4gPj4+Pj4+Pj4+IEkgY2FuIHVuZGVyc3RuYWQgdGhhdCBpZiB3ZSBk
b24ndCBzdWJzdHJhY3QgR1VFU1RfVlBDSV9FQ0FNLCB3ZQ0KPiB3b3VsZCAoaW4gdGhlb3J5KSBu
b3QgZ2V0IHRoZSBjb3JyZWN0IEJERi4gQnV0Li4uIEkgZG9uJ3QgdW5kZXJzdGFuZCBob3cNCj4g
dGhpcyB3b3VsZCByZXN1bHQgdG8gYSBkYXRhIGFib3J0IGluIHRoZSBoeXBlcnZpc29yLg0KPiA+
Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IEluIGZhY3QsIEkgdGhpbmsgdGhlIHZQQ0kgY29kZSBzaG91
bGQgYmUgcmVzaWxpZW50IGVub3VnaCB0byBub3QNCj4gY3Jhc2ggaWYgd2UgcGFzcyB0aGUgd3Jv
bmcgQkRGLg0KPiA+Pj4+Pj4+PiBXZWxsLCB0aGVyZSBpcyBubyAoPykgZWFzeSB3YXkgdG8gdmFs
aWRhdGUgU0JERi4gQW5kIHRoaXMgY291bGQNCj4gYmUgYSBwcm9ibGVtIGlmIHdlIGhhdmUgYSBt
aXNiZWhhdmluZw0KPiA+Pj4+Pj4+PiBndWVzdCB3aGljaCBtYXkgZm9yY2UgWGVuIHRvIGFjY2Vz
cyB0aGUgbWVtb3J5IGJleW9uZCB0aGF0IG9mIFBDSQ0KPiBob3N0IGJyaWRnZQ0KPiA+Pj4+Pj4+
IEhvdyBjb3VsZCB0aGF0IGJlPyBUaGUgRUNBTSByZWdpb24gZXhwb3NlZCB0byB0aGUgZ3Vlc3Qg
eW91IHNob3VsZA0KPiBiZQ0KPiA+Pj4+Pj4+IHRoZSBzYW1lIGFzIHRoZSBwaHlzaWNhbCBvbmUg
Zm9yIGRvbTA/DQo+ID4+Pj4+PiBPaywgSSBoYXZlIGEgRGVzaWdud2FyZSBQQ0kgaGlzdCB3aGlj
aCBoYXMgMiBFQ0FNIHJlZ2lvbnMgKEkgYW0NCj4gc3RhcnRpbmcgdG8NCj4gPj4+Pj4+IGltcGxl
bWVudCB0aGUgZHJpdmVyIGZvciBpdCwgc28gSSBjYW4gYmUgd3JvbmcgaGVyZSk6DQo+ID4+Pj4+
PiAtIFJvb3QgQ29tcGxleCBFQ0FNIGFyZWEgKCJkYmkiKSwgaXQgaXMgc29tZXRoaW5nIGxpa2Ug
MHgzMDAwIGJ5dGVzDQo+IGxvbmcNCj4gPj4+Pj4+IC0gIkNsaWVudCIgRUNBTSBhcmVhICgiY29u
ZmlnIikNCj4gPj4+Pj4+IFNvIGZyb20gRG9tMCBQT1Ygd2UgaGF2ZSAyIEVDQU0gcmVnaW9ucyBh
bmQgZm9yIHRoZSBndWVzdA0KPiA+Pj4+Pj4gd2UgYWx3YXlzIGVtdWxhdGUgYSBzaW5nbGUgYmln
IHJlZ2lvbjoNCj4gPj4+Pj4gWW91IG5lZWQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgRUNBTSByZWdp
b25zLiBUaGF0J3MgaG93IHdlIGRvIGl0IG9uDQo+IHg4Ng0KPiA+Pj4+PiBQVkggZG9tMC4gU2Vl
IHJlZ2lzdGVyX3ZwY2lfbW1jZmdfaGFuZGxlciBhbmQgcmVsYXRlZCBtYWNoaW5lcnkuDQo+ID4+
Pj4gSXMgaXQgY29tbW9uIGZvciBhIFBDSSBob3N0IGJyaWRnZSB0byBoYXZlIG11bHRpcGxlIEVD
QU0gcmVnaW9ucz8NCj4gPj4+PiBDdXJyZW50bHkgb24gQXJtIHdlIHdlcmUgYWJvdXQgdG8gc3Vw
cG9ydCAicGNpLWhvc3QtZWNhbS1nZW5lcmljIiBbMV0sDQo+ID4+Pj4gZS5nLiBnZW5lcmljIEVD
QU0gaG9zdCBicmlkZ2Ugd2hpY2ggbm9ybWFsbHkgKD8pIGhhcyBhIHNpbmdsZSBFQ0FNDQo+ID4+
Pj4gcmVnaW9uIFsyXS4gQnV0IHRoZSBob3N0IGJyaWRnZSBJIHdhbnQgdG8gc3VwcG9ydCBoYXMg
bXVsdGlwbGUsIHNvDQo+ID4+Pj4gc3RyaWN0bHkgc3BlYWtpbmcgaXQgaXMgbm90IHRoZSBvbmUg
dGhhdCB3ZSBpbXBsZW1lbnQuDQo+ID4+PiBJdCdzIHBvc3NpYmxlIG9uIHg4NiB0byBoYXZlIG11
bHRpcGxlIEVDQU0gcmVnaW9ucywgd2hldGhlciB0aGF0IG1lYW5zDQo+ID4+PiBtdWx0aXBsZSBo
b3N0IGJyaWRnZXMsIG9yIGhvc3QgYnJpZGdlcyBoYXZpbmcgbXVsdGlwbGUgRUNBTSByZWdpb25z
IGlzDQo+ID4+PiB1bmtub3duIHRvIG1lLiBJdCdzIGFsbCByZXBvcnRlZCBpbiB0aGUgTUNGRyBB
Q1BJIHRhYmxlIChzZWUgUENJDQo+ID4+PiBGaXJtd2FyZSBkb2N1bWVudCBmb3IgdGhlIGRldGFp
bGVkIGRlc2NyaXB0aW9uIG9mIE1DRkcpIHVzaW5nIHRoZQ0KPiA+Pj4gIkNvbmZpZ3VyYXRpb24g
U3BhY2UgQmFzZSBBZGRyZXNzIEFsbG9jYXRpb24gU3RydWN0dXJlIiwgYW5kIHRoZXJlIGNhbg0K
PiA+Pj4gYmUgbXVsdGlwbGUgb2YgdGhvc2Ugc3RydWN0dXJlcy4NCj4gPj4gQXMgd2UgYXJlIGN1
cnJlbnRseSBzdXBwb3J0aW5nIGdlbmVyaWMgRUNBTSBob3N0IGJyaWRnZSB3aGljaA0KPiA+PiBo
YXMgYSBzaW5nbGUgRUNBTSByZWdpb24gSSB0aGluayB0aGUgZXhpc3RpbmcgY29kZSB3ZSBoYXZl
IGFuZA0KPiA+PiBhYm91dCB0byB1cHN0cmVhbSBpcyBvayBhcyBpcyBmb3Igbm93Lg0KPiA+PiBJ
IG93biBhIGJyaWRnZSB3aGljaCBoYXMgMiBFQ0FNIHJlZ2lvbnMsIHNvIEkgd2lsbCB3b3JrIHRv
d2FyZHMNCj4gPj4gYWRkaW5nIGl0cyBzdXBwb3J0IHNvb24uDQo+ID4+Pg0KPiA+Pj4+IEFybSBm
b2xrcywgZG8gd2Ugd2FudCB0aGlzIGdlbmVyYWxpemF0aW9uIGF0IHRoaXMgbW9tZW50IHRvIGFs
aWduDQo+IHdpdGggeDg2DQo+ID4+Pj4gd2l0aCB0aGlzIHJlc3BlY3Q/DQo+ID4+Pj4NCj4gPj4+
PiBXZSBjYW4gbGl2ZSB3aXRoIHRoZSBjdXJyZW50IGFwcHJvYWNoIGFuZCB3aGVuIEkgaGF2ZSBt
eSBkcml2ZXINCj4gaW1wbGVtZW50ZWQNCj4gPj4+PiBJIGNhbiBzZW5kIHBhdGNoZXMgdG8gbWFr
ZSB0aGF0IGdlbmVyYWxpemF0aW9uLg0KPiA+Pj4+Pj4gLyoNCj4gPj4+Pj4+IMKgwqDCoCDCoCog
MjU2IE1CIGlzIHJlc2VydmVkIGZvciBWUENJIGNvbmZpZ3VyYXRpb24gc3BhY2UgYmFzZWQgb24N
Cj4gY2FsY3VsYXRpb24NCj4gPj4+Pj4+IMKgwqDCoCDCoCogMjU2IGJ1c2VzIHggMzIgZGV2aWNl
cyB4IDggZnVuY3Rpb25zIHggNCBLQiA9IDI1NiBNQg0KPiA+Pj4+Pj4gwqDCoMKgIMKgKi8NCj4g
Pj4+Pj4+ICNkZWZpbmUgR1VFU1RfVlBDSV9FQ0FNX0JBU0UgeGVuX21rX3VsbG9uZygweDEwMDAw
MDAwKQ0KPiA+Pj4+Pj4gI2RlZmluZSBHVUVTVF9WUENJX0VDQU1fU0laRSB4ZW5fbWtfdWxsb25n
KDB4MTAwMDAwMDApDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gU28sIHdlIGhhdmUgdGhlIGJhc2UgYWRk
cmVzcyBhbmQgc2l6ZSBvZiB0aGUgZW11bGF0ZWQgRUNBTSBzcGFjZQ0KPiA+Pj4+Pj4gbm90IGNv
bm5lY3RlZCB0byB0aGUgcmVhbCBob3N0IGJyaWRnZQ0KPiA+Pj4+Pj4+IEFuZCBmb3IgZG9tVXMg
eW91IHJlYWxseSBuZWVkIHRvIGZpeCB2cGNpX3tyZWFkLHdyaXRlfSB0byBub3QNCj4gPj4+Pj4+
PiBwYXNzdGhyb3VnaCBhY2Nlc3NlcyBub3QgZXhwbGljaXRseSBoYW5kbGVkLg0KPiA+Pj4+Pj4g
RG8geW91IG1lYW4gdGhhdCB3ZSBuZWVkIHRvIHZhbGlkYXRlIFNCREZzIHRoZXJlPw0KPiA+Pj4+
Pj4gVGhpcyBjYW4gYmUgdHJpY2t5IGlmIHdlIGhhdmUgYSB1c2UtY2FzZSB3aGVuIGEgUENJIGRl
dmljZSBiZWluZw0KPiA+Pj4+Pj4gcGFzc2VkIHRocm91Z2ggaWYgbm90IHB1dCBhdCAwMDAwOjAw
OjAuMCwgYnV0IHJlcXVlc3RlZCB0byBiZSwgZm9yDQo+ID4+Pj4+PiBleGFtcGxlLCAwMDAwOjBk
OjAuMC4gU28sIHdlIG5lZWQgdG8gZ28gb3ZlciB0aGUgbGlzdCBvZiB2aXJ0dWFsDQo+ID4+Pj4+
PiBkZXZpY2VzIGFuZCBzZWUgaWYgU0JERiB0aGUgZ3Vlc3QgaXMgdHJ5aW5nIHRvIGFjY2VzcyBp
cyBhIHZhbGlkDQo+IFNCREYuDQo+ID4+Pj4+PiBJcyB0aGlzIHdoYXQgeW91IG1lYW4/DQo+ID4+
Pj4+IE5vLCB5b3UgbmVlZCB0byBwcmV2ZW50IGFjY2Vzc2VzIHRvIHJlZ2lzdGVycyBub3QgZXhw
bGljaXRseSBoYW5kbGVkDQo+ID4+Pj4+IGJ5IHZwY2kuIEllOiBkbyBub3QgZm9yd2FyZCB1bmhh
bmRsZWQgYWNjZXNzZXMgdG8NCj4gPj4+Pj4gdnBjaV97cmVhZCx3cmllfV9odykuDQo+ID4+Pj4g
SSBzZWUsIHNvIHRob3NlIHdoaWNoIGhhdmUgbm8gaGFuZGxlcnMgYXJlIG5vdCBwYXNzZWQgdG8g
dGhlIGhhcmR3YXJlLg0KPiA+Pj4+IEkgbmVlZCB0byBzZWUgaG93IHRvIGRvIHRoYXQNCj4gPj4+
IEluZGVlZC4gV2l0aG91dCBmaXhpbmcgdGhhdCBwYXNzdGhyb3VnaCB0byBkb21VcyBpcyBjb21w
bGV0ZWx5IHVuc2FmZSwNCj4gPj4+IGFzIHlvdSBhbGxvdyBkb21VcyBmdWxsIGFjY2VzcyB0byBy
ZWdpc3RlcnMgbm90IGV4cGxpY2l0bHkgaGFuZGxlZCBieQ0KPiA+Pj4gY3VycmVudCB2UENJIGNv
ZGUuDQo+ID4+IFdlbGwsIG15IHVuZGVyc3RhbmRpbmcgaXM6IHdlIGNhbiBsZXQgdGhlIGd1ZXN0
IGFjY2VzcyB3aGF0ZXZlcg0KPiA+PiByZWdpc3RlcnMgaXQgd2FudHMgd2l0aCB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbnM6DQo+ID4+IC0gInNwZWNpYWwiIHJlZ2lzdGVycyB3ZSBhbHJlYWR5IHRy
YXAgaW4gdlBDSSwgZS5nLiBjb21tYW5kLCBCQVJzDQo+ID4+IC0gd2UgbXVzdCBub3QgbGV0IHRo
ZSBndWVzdCBnbyBvdXQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2Ugb2YgYQ0KPiA+PiBzcGVj
aWZpYyBQQ0kgZGV2aWNlLCBlLmcuIHByZXZlbnQgaXQgZnJvbSBhY2Nlc3NpbmcgY29uZmlndXJh
dGlvbg0KPiA+PiBzcGFjZXMgb2Ygb3RoZXIgZGV2aWNlcy4NCj4gPj4gVGhlIHJlc3QgYWNjZXNz
ZXMgc2VlbSB0byBiZSBvayB0byBtZSBhcyB3ZSBkbyBub3QgcmVhbGx5IHdhbnQ6DQo+ID4+IC0g
aGF2ZSBoYW5kbGVycyBhbmQgZW11bGF0ZSBhbGwgcG9zc2libGUgcmVnaXN0ZXJzDQo+ID4+IC0g
d2UgZG8gbm90IHdhbnQgdGhlIGd1ZXN0IHRvIGZhaWwgaWYgaXQgYWNjZXNzZXMgYSB2YWxpZCBy
ZWdpc3Rlcg0KPiB3aGljaA0KPiA+PiB3ZSBkbyBub3QgZW11bGF0ZS4NCj4gPg0KPiA+IEkgYW0g
dHJpbmcgdG8gcmV2aWV3IHlvdXIgcGF0Y2gsIHBsZWFzZSBwb2ludCBvdXQgaWYgdGhlcmUgaXMg
YW55dGhpbmcNCj4gPiB3cm9uZy4gSUlVQywgdlBDSSBvbmx5IGVtdWxhdGVzIHNvbWUgcmVnaXN0
ZXJzLCBhbmQgZm9yd2FyZCB1bmhhbmRsZWQNCj4gPiBhY2Nlc3NlcyB0byBwaHlzaWNhbCBkZXZp
Y2UgY29uZmlndXJhdGlvbiBzcGFjZSAoaWYgdGhlIGFjY2Vzc2VzIHBhc3NlZA0KPiB0aGUgdmFs
aWRhdGUuKT8NCj4gUmlnaHQNCj4gPiBEb2VzIHRoYXQgbWFrZSB0aGUgY29udGV4dCBpbmNvbnNp
c3RlbnQgaW4gcGh5c2ljYWwgZGV2aWNlJ3MNCj4gY29uZmlndXJhdGlvbiBzcGFjZT8NCj4gSXQg
aXMgYWx3YXlzIGNvbnNpc3RlbnQgZm9yIHRoZSBoYXJkd2FyZSBkb21haW4gYW5kIHNvbWUgcGFy
dHMgb2YgaXQgYXJlDQo+IGVtdWxhdGVkDQo+IGZvciBndWVzdHMNCj4gPiBGb3IgZXhhbXBsZSwg
b25lIHJlZ2lzdGVyIGluIHBoeXNpY2FsIGRldmljZQ0KPiA+IGNvbmZpZyBzcGFjZSBpcyByZWxh
dGVkIHRvIGFub3RoZXIgcmVnaXN0ZXIuIEJ1dCB3ZSBqdXN0IGVtdWxhdGUNCj4gPiBvbmx5IG9u
ZSBpbiB2UENJPw0KPiBTbywgd2UgdHJhcCBmb3IgYWxsIGRvbWFpbnMgYW5kIGVtdWxhdGUgZm9y
IGd1ZXN0cywgZS5nLiBoYXJkd2FyZSBkb21haW4ncw0KPiB2aWV3IG9uIHRoZQ0KPiByZWdpc3Rl
cnMgaXMgY29uc2lzdGVudC4gRm9yIGd1ZXN0cyB3ZSBlbXVsYXRlOg0KPiAtIFBDSV9DT01NQU5E
IC0gbm90IHRvIGFsbG93IElOVHggYXMgd2UgZG8gbm90IHN1cHBvcnQgdGhhdCBvbiBBcm0NCj4g
LSBCQVJzIC0gd2UgZW11bGF0ZSBndWVzdCdzIHZpZXcgb24gdGhlc2UgYWNjb3JkaW5nIHRvIHRo
ZSBtZW1vcnkgc3BhY2VzDQo+IG9mIHRoZSBlbXVsYXRlZCBob3N0IGJyaWRnZSwgc28gdGhlIHJl
YWwgQkFScyBzdGlsbCBoYXZlIHBoeXNpY2FsIHZhbHVlcywNCj4gYnV0DQo+IGd1ZXN0cyBzZWUg
ZW11bGF0ZWQgb25lcw0KPiANCj4gSG9wZSB0aGlzIGhlbHBzDQoNClRoYW5rcywgaXQncyB2ZXJ5
IGhlbHBmdWwhDQoNCj4gPg0KPiA+DQo+ID4+Pg0KPiA+Pj4gUmVnYXJkcywgUm9nZXIuDQo+ID4+
Pg0KPiA+PiBUaGFua3MsDQo+ID4+IE9sZWtzYW5kcg0KPiA+Pg0K


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 08:39:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 08:39:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219779.380765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpJs-0006xQ-HO; Tue, 02 Nov 2021 08:39:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219779.380765; Tue, 02 Nov 2021 08:39:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpJs-0006xJ-EQ; Tue, 02 Nov 2021 08:39:00 +0000
Received: by outflank-mailman (input) for mailman id 219779;
 Tue, 02 Nov 2021 08:38:59 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=67fr=PV=arm.com=Bertrand.Marquis@srs-us1.protection.inumbo.net>)
 id 1mhpJr-0006xD-94
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 08:38:59 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com (unknown
 [40.107.20.65]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id bfa62cae-3bc5-4a45-841c-a261581e1636;
 Tue, 02 Nov 2021 08:38:57 +0000 (UTC)
Received: from AM6P195CA0007.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::20)
 by AM6PR08MB4248.eurprd08.prod.outlook.com (2603:10a6:20b:b5::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 08:38:48 +0000
Received: from VE1EUR03FT012.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:81:cafe::7d) by AM6P195CA0007.outlook.office365.com
 (2603:10a6:209:81::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17 via Frontend
 Transport; Tue, 2 Nov 2021 08:38:48 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT012.mail.protection.outlook.com (10.152.18.211) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Tue, 2 Nov 2021 08:38:47 +0000
Received: ("Tessian outbound d49ee2bec50d:v108");
 Tue, 02 Nov 2021 08:38:47 +0000
Received: from 9cdf22280a13.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 DF34D637-1330-4F3F-B5DD-9018483C4FEC.1; 
 Tue, 02 Nov 2021 08:38:41 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9cdf22280a13.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 02 Nov 2021 08:38:41 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM5PR0801MB1697.eurprd08.prod.outlook.com (2603:10a6:203:39::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Tue, 2 Nov
 2021 08:38:38 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 08:38:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfa62cae-3bc5-4a45-841c-a261581e1636
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=isW9+9ZxDZibsxmW7vgPBrV1AfwLdCpm2hqLIMFXPDA=;
 b=AvHG9dF+hg6tIE7p2a29oraY3t/11m9pzSBHxOXfW7Z+xKmAc/cnHb8KEKrOTBvvt4nhDMj/xv6nD/Ay719x5266PL6ZIP2FAO+rssmOZ5PTH3kxKaowXw6fAE2P3iFnio6K/JzGjjy30pBayquFuQ7RX4k/8cSjpwwS8mwIoac=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: fb23ea8d496429ea
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NNDlwZ8sxnet+ikU3eX45CmFcCqMteFq7iC685ssYfNtPMQFcoBht7v3gevlXax83bEoAqw6++xUTozCODVfDEAqWMyhiQIJQCpu3z+YmF6NKl0kUYJAsCj7ziFVNNWuUPeq/hoBx/rg6ScbZY+rrzVz0zbKtf5asWFK7tqHzmDD+mEmnRhHA1jkagQNwQbljiuVkeEumVqt4wtLRlUzQu+7qKJiGE8m86MNNDTFrsUgp8JeU8QnJzNa6+achQVP8JPhyqwU1Nzjr8h/bovTz842Sc6W0q42YzhB19VxlgSo9VowKr/WwAgRSmFbDvxdatKjuIZy9UbpK7pt1HW3Xg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=isW9+9ZxDZibsxmW7vgPBrV1AfwLdCpm2hqLIMFXPDA=;
 b=CAoO+GHjX77iEX0+IGYKv2yFmbHPm4uLvfGLz33uvJeKCJr4sK7BJkM3Vsb9Wkee6tJZonhK/b9Uic5Q+rfAdefSu3ZQ5WU/wvxQXI2ULFVCF/Ha3mWPosylJKy+auPZUnV8GuzTHztwWHqo9SfN1VzZrRxUHcxg5n/OgF/0pmZneq1ADPVD3SLTl0QHOoB7+csnSdgMit7W5fg5XSfFl8t6jSt3l2Tbj3ciPZ8tJtijvlmTelyI2XnrZ35ZagFGmpkTJYyPPccL26sOViBsAK2FyDOl6mNt+IYk7Ddo5YFOvbsYaXr3bcc35GLXQ61bQCsgeDKRZfq8Ocgs1Y8UJA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=isW9+9ZxDZibsxmW7vgPBrV1AfwLdCpm2hqLIMFXPDA=;
 b=AvHG9dF+hg6tIE7p2a29oraY3t/11m9pzSBHxOXfW7Z+xKmAc/cnHb8KEKrOTBvvt4nhDMj/xv6nD/Ay719x5266PL6ZIP2FAO+rssmOZ5PTH3kxKaowXw6fAE2P3iFnio6K/JzGjjy30pBayquFuQ7RX4k/8cSjpwwS8mwIoac=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Alistair Francis <alistair23@gmail.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, xen-devel <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Jane
 Malalane <jane.malalane@citrix.com>, Bobby Eshleman
	<bobbyeshleman@gmail.com>, Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: Re: Arch-neutral name for hardware interrupt support
Thread-Topic: Arch-neutral name for hardware interrupt support
Thread-Index: AQHXzw4CySYNKRokyE67QZNrnOsNdavvITCAgACzv4CAABcDgA==
Date: Tue, 2 Nov 2021 08:38:38 +0000
Message-ID: <75499D79-0A71-4A37-B8F3-2826CEA2D47B@arm.com>
References: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
 <alpine.DEB.2.21.2111011330310.20134@sstabellini-ThinkPad-T480s>
 <CAKmqyKOJgYbb_pgd8CPH90yPVcEHBU9J65URw7CUA_unyw6gBw@mail.gmail.com>
In-Reply-To:
 <CAKmqyKOJgYbb_pgd8CPH90yPVcEHBU9J65URw7CUA_unyw6gBw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: c9f1589a-0cbf-46d2-1b0b-08d99ddc3076
x-ms-traffictypediagnostic: AM5PR0801MB1697:|AM6PR08MB4248:
X-Microsoft-Antispam-PRVS:
	<AM6PR08MB4248A87B4C17A3E146C6C6CC9D8B9@AM6PR08MB4248.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:8273;OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 LouphzTgHGxSMYIMSIybyRx2WIP97Gy/6lKkpnyE2G4tTTRwqGfw3DlU/R3ysMWxk8GJYsC2Cf6IxSGiK0molrpHgAsiVtWf2FFMswcUhfUV2HE11yH3Zqj0ABQeqReuHABxFRpqd0mP5W7hn+8Hmltma0mRvP3OBBCMWgdUUNglvTyySUZ22FNGo6hj7g82abtxZhXde5ZAvbpPytmyOvQCQ59/ER0JxuGc2M792Jx4hD0IQThnIdeM5tQ0ydH8rVIXHAbgqjz97Qa20yUN++4TxwzWTLKbcwPpiUn+ph7jGX9Cq8gnmnujO1DyrLuooaJKqopXfQHAjW25NQvnjkTR104y3ISBQhYxiCbuiso6FD9KpnOeIa0+YEReMZfMe35AqKuYJNKVtO4Ar6ZC9gt0YSrOyzKOjh7n+aVYyI+lI4JLVQNb1zE0YFRRknD9W3HzKl8PDdlNmqEBs7WcOboTKgdodrw8+2eKr97+zXodeOktEwaJoC7OU4EdYfhgLi8bDhOt0+IrUZKYMU5grk899oG++g9b4xDH5NAqSetwl+RcHKhIJGqtb+no1ONAsuhrBjPviRL6lDcvexqK53OPcH6KiDVjQwmwgK+PsQJk1Z7Zmpl3ddomhtbI0j385LOJF5dXcXBNMCLNxAqp9SzcvxlggDgsOzcibLOUYE7b/DjNWSZKbdlQztBXD+/UxTW4gXgYbQLanfyanmODSx/u+Mzo8DHZ06EFg0kQYHTmgQt5xjdo31ngRwcKR97Y02epSCZAVObnVEfmUI1bDfXLQnOjajHgE/GbRc9gTd7kxf06sdUoifWRqQbIvF5x6vFjh25nRQGGqo0rj1IpTw==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(38070700005)(966005)(8676002)(4326008)(6486002)(38100700002)(122000001)(6506007)(66476007)(66556008)(64756008)(66946007)(6512007)(508600001)(66446008)(53546011)(71200400001)(91956017)(7416002)(54906003)(186003)(86362001)(33656002)(2906002)(8936002)(76116006)(6916009)(26005)(36756003)(83380400001)(5660300002)(316002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <1B13C68C71F1294EA0ED79C60CD56420@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1697
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT012.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	32c502c1-c0fa-4cdc-d154-08d99ddc2aeb
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	GRmwZgPYb++hoOaYb9KZRZZNPzzotyhSgTCkemtrSvLDhOhBzCSoZyE9wVsdpcmCOAW4TnLz5vqGWntxDcu3JVjtPt40pv0ZYdhNP8Tt1X7/olEd8FcF7N1QVOi8JBkLlKdfXj3xnkiBYhqLRPthQaoV8g8hR/HdgrViQO9YfclwkHobdcjHRhfQzV/1pT7vDEvD0bJQ/0ijl1/HlJkVFehYzpBX+HWgZn7s0geRLSq9PVm/wl4udLx8icrweE6x7dnI55oSDjSHld78/e6BhIIvs5KfbJCFFduRIuL8zWpr0Pz4T5H2tF7ullEoDOlGRzGDrGxZ23bhdmdEijEdtICwUu2qliAOXjlVSGYSHvGoLJO2tCFMbVqsgb0oMo0x+T4LYfE2m6ntNDWUF2RvX7Q3lgXaRQ84sTV4xqLVW4Nds36ehZRZm8Cj5ScdPC2OFnOf8QQiq4epWy/YIQmB6E9kQs0ypb2g+wFh1gHfAgzniXagfSwNIiKmZ5EXpjiHuP4PUFzPHuiyJq4MKSsIR+BuPnZOb+LmsjZgtzrB3WY4l5vaiaKW4bqn0ogfna51a73dXoiwDW4vW6OPTwULz4CpfP3BGqY5lDW0CxjURYqCwqbJ1O/Qe7CJWZM2LSIwmdnIrkQuusqisgOfuKmR1HgzDiWb7st7T/TuQ008X5v9LBq6shXX5zxO9b/oteIBHMUJJ7gUZG9KJy7PgcovwsvgcHoWPVTcR6g0P6HoFUyD2aEHAiakV0JL1wvjpUp9dbF4DiuqxTvhKCDdma33Hjy5QOdCX6NGJoCzHT/BGZw=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(26005)(356005)(316002)(81166007)(8676002)(53546011)(83380400001)(36860700001)(6862004)(54906003)(6506007)(8936002)(336012)(508600001)(4326008)(86362001)(2616005)(2906002)(966005)(6512007)(5660300002)(6486002)(47076005)(36756003)(82310400003)(107886003)(186003)(33656002)(70206006)(70586007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 08:38:47.9988
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c9f1589a-0cbf-46d2-1b0b-08d99ddc3076
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT012.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4248

Hi,

> On 2 Nov 2021, at 07:16, Alistair Francis <alistair23@gmail.com> wrote:
>=20
> On Tue, Nov 2, 2021 at 6:33 AM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
>>=20
>> +Bertrand
>>=20
>> On Mon, 1 Nov 2021, Andrew Cooper wrote:
>>> Hello,
>>>=20
>>> On ARM, the GIC is a hard prerequisite for VMs.
>>>=20
>>> I can't remember what the state of RISCV is, but IIRC there is still
>>> some debate over how interrupts are expected to work under virt.
>=20
> We are getting there, the current draft is pretty stable:
> https://github.com/riscv/riscv-aia/
>=20
>>>=20
>>> On x86, the story is very different.  PV have no hardware assistance,
>>> while HVM hardware assistance depends on hardware support.  Therefore w=
e
>>> want to introduce a new CDF flag so we can control the setting per
>>> domain, rather than globally as it is done now.
>>>=20
>>> This brings us to the question of what a suitable architecture name
>>> would be.
>>>=20
>>> Hardware Virtual Interrupts is a little too close to Hardware Virtual
>>> (Machine) Introspection, and Hardware Assisted Interrupts (mirroring
>>> HAP) doesn't seem great either.
>>>=20
>>> Thoughts / ideas / suggestions?
>>=20
>> Maybe "hardware-enabled virtualized interrupts"
>=20
> hardware-supported virtualised interrupts (HSV Interrupts)

Both propositions are ok I think but I have a preference for supported.

Cheers
Bertrand

>=20
> Alistair



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 08:48:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 08:48:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219789.380780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpT9-0008Tp-M6; Tue, 02 Nov 2021 08:48:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219789.380780; Tue, 02 Nov 2021 08:48:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpT9-0008Ti-J7; Tue, 02 Nov 2021 08:48:35 +0000
Received: by outflank-mailman (input) for mailman id 219789;
 Tue, 02 Nov 2021 08:48:34 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhpT8-0008Tc-P7
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 08:48:34 +0000
Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id a89ed3b6-3bb9-11ec-8553-12813bfff9fa;
 Tue, 02 Nov 2021 08:48:33 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a89ed3b6-3bb9-11ec-8553-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635842912;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=qNYhPe6+IOk3qWrrB2tkzk0okd4cYNQFjP78s8xVD+E=;
  b=ZHU0aL7vcn892/3YEWWoNsUZCy0RkI167npvS5EUqtmkbmp7QhNvUNYy
   ZGRzHq50n4W0ooSYJz7FRHneK0aqSvolLzirHdCutiHgRhoM9le56uXpZ
   GEFt0ia0qFlauejDSQSUckosG9GXiAEnKVOCAA7uFug7K1yEyzacinZb8
   c=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 0MFhZP2WmPEWDRFKb4CUXUoj8/INKiWBPFOINljpJ9sU47O/Ep42IlPcSA92B2M+cgK0jiCBoG
 upo/Sq0OK9hvabS61k3/Ke+HGpfS4eZoQkf2IpEu+Ro73J1btuJvIdxl6MkftDGYmZp5EIqOAr
 1ppas9TCK9vycM/py89uUaXab2BZ+KGxkG9f6PoApLGNK65nEZBPY+72zjIY0WrvKEI1pYXaYo
 MClva39pDmkQ0ambeiKlfMYIkEJ/0dVUebpRRYloEG8kIAPhWM73RmCAxUR65SyGc64funAxE+
 PdNRNVs29iEUoQ8VcMLvIIAN
X-SBRS: 5.1
X-MesageID: 58791224
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:D4Y84qCxd3eZzBVW/5jkw5YqxClBgxIJ4kV8jS/XYbTApDIl0mQGn
 2ZOXjyEb/eCYGSnctp1boq+8RwD7ZfXmNYxQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540Ug7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/pguJxNB18
 fZ3lI2zGDwyHamSuMlHekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvWVtIYChmtYasZmD9LyW
 OQYbGFVdRH/XERpIH4NAs0ug7L97pX4W2IB8w/EzUYt2EDI1xB42rXpNNvTe/SJSN9Tk0Leo
 XjJl0zjCxEHMJqEyDyK8lqlnOqJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN80g0qoKsp/UqnVO7UWRGivWWEtR4RXdlXO+Ai4QTLwa3Riy6bG2wFQzhpeNEg8sgsSlQC3
 FKTg8ngAzAptbSPUG+c7Z+dtzb0Mi8QRVLufgddE1FDuYO65thu0FSfFb6PDZJZkPXYJzGrw
 zSzjxIflrZCttUo0/ub0Aru1mfESofyciY54QDeX2SA5wx/ZZK4a4HA1WU3/cqsP67CEADf4
 SFsd9y2qblXUMrTzHDlrPAlRenxv5643CvgbUmD9nXL3xCk4DadcI9Z+1mSz285Y59fKVcFj
 KI+0D69BaO/3lP2PcebgKrrUqzGKJQM8/y/D5g4ifIVOvBMmPevpn0GWKJp9zmFfLIQua8+I
 4yHVs2nEGwXD69qpBLvGbxAju5xnn9knzqPLXwe8/hB+eDHDJJyYexdWGZik8hjtP/UyOkr2
 48HXyd19/mveLKnOXSGmWLiBVsLMWI6FfjLRz9/LYa+zv5dMDh5UZf5mOp5E6Q8xvg9vrqYr
 xmVBx4DoHKi1CKvFOl/Qi06AF8Zdc0k9ixT0O1FFQvA5kXPlq72t/pCLMRrJeFPGS4K5accc
 sTpsv6oW5xnYj/G5y4cfd/6qoljfw6sngWAI2yuZz1XQnKqb1WhFgbMclS9+S8QIDCwsMdi8
 bSs2hmCGcgIRhh4DdaQY/WqlgvjsX8YkeN0fk3JPtgMJxm8rNk0c3T83q0tPsUBCRTf3T/Gh
 QyYNggV+LvWqIgv/diX2a3d99W1E/FzF1ZxFnXA6erkLjHT+2eumNcSUOuBcT3Hennz/aGuO
 bdcw/3maaVVl1dWqYtsVb1syPtmtdfoorZbyCViHWnKMAv3Wu8xfCHe0JAW5KNXx7JftQ+nY
 W61+4FXaeeTJcfoMF8NPw55PO6N4u4Zx2vJ5vMvLUSkuCIupOibUV9fNgWngTBGKOcnK5ssx
 OostZJE6wG7jRZ2YN+KgjoNqjaJJ30EFa4mqosbEMngjQ9ykgNOZpnVCynX5pCTaooTbhl2c
 2HM3KeS1a5BwkficmYoESmf1OVQsp0CpRRWwQJQPF+OgNfE2qc60RA5He7bleiJIsGrC95OB
 1U=
IronPort-HdrOrdr: A9a23:JR57YaHP7nFGc3zVpLqEEseALOsnbusQ8zAXPiBKJCC9vPb5qy
 nOpoV+6faQslwssR4b9uxoVJPvfZq+z+8R3WByB8bAYOCOggLBQL2KhbGI/9SKIVydygcy78
 Zdm6gVMqyMMbB55/yKnDVRxbwbsaa6GKPDv5ah8590JzsaDJ2Jd21Ce32m+ksdfnghObMJUK
 Cyy+BgvDSadXEefq2AdwM4t7iqnayzqHr+CyR2fyIa1A==
X-IronPort-AV: E=Sophos;i="5.87,202,1631592000"; 
   d="scan'208";a="58791224"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SlLVKL82c1DDO85hNz1fMZkqYkfRYfJDJ5xvfeKFULyewNkCxaPyM67I29mafIAjkzj1h7Lvw1oWRbt+n9nCpfHB4XZzvSKEoJFOFTaMmRtbo4PmkxykGI4RhFbLU5Bv+fLoxcBO8HuBm1XT0hqBqM2xeumVHakpVcnRG8ESYgQc+DUJW7oVkjrA1yUnlp7YJPtcOdJfmjtmVxnpM6hNo23yrmwToBHJzWDHLnkSeqUNyoeN65agykpET5qaJhhC/B356atYUyaqHdxIkRlw4wbq89u6E08Km6T2rNChE4OyrCeT5bfQXCStllzeX2GVT4hFdJf3C2b28se7jtwlJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PQfaRdk0WQYaBpJN3Gi0z2LuijTg4/LxYun6RXSlJ8k=;
 b=g4IW1LzxyYcNkchXzmVmynyCwFyCXtFnO33xSHjuUKWbU6K223w5Ou2U7SoPSA4Ob3DKbd8FOYZm5dSaaC5QxNxVqOidnk74VcwLhUAwIOGaDuzrWZIFgpW7U5hd4oqIZUgQgj0ANWN/P8/Vje50jn/oZtmhRJ1sWSEIQ/FQ1/jQJx/iLdhyIDV3Pl1Tvroeg0CPFaAS+6+ZFQMMhLSHaqvC+c/br9ZjOqaUNVh1rWQXkhcvOr37xBCgwkRqYe3WJwacFPQeFhXPWizcPi93EQBjJ3Yh43FrCuY3vBgvvWbIQA48ttaPD6t71c3lP61QdKOVcm4KlMRzc4ftYYRdJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PQfaRdk0WQYaBpJN3Gi0z2LuijTg4/LxYun6RXSlJ8k=;
 b=G7E7VRjTUXYYKVVSA+s1h2Q8qlOO8mJIymwrhECEhT4wQc7hgi0zN6Eh/OcRe+QJYodiF2q1IECKx1SERW0NFaXBq2dDNeROwLo40BU5tMYD/viC3G9+wrxzoqPalL6XOmD2Y6mzlFyCMTR5VVUFHwNIygJh5tBoIeoI8auld+4=
Date: Tue, 2 Nov 2021 09:48:22 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, Rahul Singh <rahul.singh@arm.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Message-ID: <YYD7VmDGKJRkid4a@Air-de-Roger>
References: <20211027082533.1406015-1-andr2000@gmail.com>
 <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <YXqnS7iZUvokJby6@Air-de-Roger>
 <3206478e-f230-cd91-5de9-85ef6c251405@epam.com>
 <YXrJyLMiMxaNmFAs@Air-de-Roger>
 <5de6c2f1-ef5c-9d8c-4287-9b0e3ff08b34@epam.com>
 <YXuj4frtHIRuSgOO@Air-de-Roger>
 <0ba7aa82-40bc-c0d3-38a2-8c4d141d0afd@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0ba7aa82-40bc-c0d3-38a2-8c4d141d0afd@epam.com>
X-ClientProxiedBy: MRXP264CA0035.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::23) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 09eb411b-d49b-4a67-0ba8-08d99ddd89d9
X-MS-TrafficTypeDiagnostic: DM6PR03MB3833:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3833F6394A22F3220BA664948F8B9@DM6PR03MB3833.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 462WiVkt4TpjFY3xsL0Z68SxaC+2Na0/p1D0AV6FwLt0vbuQM9DzbZkLauH9DrjY63lxG0f27tsPoTT5ndmbX7xkAXnpnhQbmcnij/34Y1ZIovd3vJ+nk9wbyWvNoDKa7mXENNTYv+53D1rIzTDWqNtvllbvvTJfrUqgBYVstOoDBrhgdBwBCt89PEzmpdqGnYXgLDzjTYUK3VYfI0XzptiL2+eFQj6aSvxhhpfv831KtWKUw5U0pazqRiZkFz5gzsMjSXRH/N8P+fJ1ryF1Zt86jHwCRBiirADVW2jFaqNp7XTMxQpkBZ10E8gR4G6CpaDS8ee74tzzRlkLZhD4UyhNy8OzvKyoT+LMtpt4y5FuyQd9YstEVembF1XxPLI4VAqYKHqZNQz8mNfFaruXcfeF4RGBPtUYeXTkg4kP5ZG2qMZh/K7UU2nE5lS711RCC09/25LQUZ1y+eCEq7eCiY+3bkf2dfhNDBq3f9euBNH8X9cdjwXRBpPgsqnikAcV8G/XMc2HlQ4JddH+rnLM7OpnWBRC6jqSZ/fyge6OuVJ4OXNfK5xc214oac1gAMOJX7pS4iIjBAjyU4mgrVJRobhX3YZH2NpVM/hIy9mvuJL7kTLv8A5ORPLAKWW7xuRPiBffcnpWVCJ1TKuYHMuwmA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(6496006)(85182001)(956004)(8676002)(6486002)(6666004)(53546011)(82960400001)(83380400001)(66946007)(33716001)(66476007)(316002)(54906003)(6916009)(26005)(4326008)(2906002)(38100700002)(5660300002)(66556008)(508600001)(186003)(8936002)(86362001)(9686003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q3NIY3dTU3p5NTJVZEZ2c0c2R3RwY0pCclJla3ZaM0hualEvKzBSMEE5WTZG?=
 =?utf-8?B?aFpCOUFvR1ZoVzVOaFRuaE4wd0JuTHhJdUZPL25pQ0V4SC9VdzlwMjJUK1FM?=
 =?utf-8?B?cm4xa0JxamFvTE9vYXlMVUJuSUg3cXFuWnlydlE3dUpBaUdPVUpBQ2dRYm42?=
 =?utf-8?B?dm5EbE5xYnNnem1tamM3ZDZRQVdDaXFXb0t4bFNpOC90aklMVVdzR0p3Rjhl?=
 =?utf-8?B?YllKREtVMnJ6VjdmN1Q0M3ZtcWRMUDF2ZVk3R3dsbDFDR1ZwRzljTDZXSjJR?=
 =?utf-8?B?aS8wZE51TUpWcldCZ2Q5dWs0ZXRoQU53am9JN05MZm1nYmpYRjB2QXpTUTc4?=
 =?utf-8?B?dHFEdXc3K0k5anVoNjB2b3hqc2ZoMGZJd1FwT1JueWJnNE0xWFp5b2dFajJ4?=
 =?utf-8?B?VDBNYUtPSzZhazFSdktqVGtlME4zWFBoSktwTytQS0FaNnBzdjZlQnlZaVBN?=
 =?utf-8?B?ODROb3N1MXRhRElEL3pvdHBPb3B4ODBPYVZ1dHFOS3dNRElTdjJwbUx4S0hO?=
 =?utf-8?B?Q25CemtVVWNaaS80WXJrNzExZXVRZjZFelBwVGp2ZjRHd1ZHb0JockEyNkow?=
 =?utf-8?B?NC9scHd5Z2pFKzNhTUdSUVo2czVRY0JJUXFycWR0VG84NlNRNEtFcUdQZmF6?=
 =?utf-8?B?Q2xRbGdHZjZ1T0hPWmFQWisrakRwcjlUVjBsVzRRdkloUm5zMk02ajVvYmJR?=
 =?utf-8?B?dkovWkhWYURtUkdXaUJ6T3dEOHRvc0tqMGZENXpod1RpekxDcHJ3RUh3YzZ5?=
 =?utf-8?B?dWZxcElpWkozeTVPekxUK3dDcGJnNEN0Rk1acHNmbUlwMWVaNkhVcDB5dzFs?=
 =?utf-8?B?RUJSN2JveHhsQXV1dHM5TERnKzgwMVUvdjdkb1FYVmtoMTlmTHhwZjFwVlV2?=
 =?utf-8?B?WFU3MXgvYm81QnE0TDlyWVZLbVlCVGswMS95VkJZd1NLQ1oxc0dWQ0RzTE4w?=
 =?utf-8?B?L2k1Nm5HZ2twMEEvYlVHQlBBVXNLS1lCTWtRWUxPWFdXbmpna0dHMzVEdWZZ?=
 =?utf-8?B?WWVVYlorRFpmcjVwQWlOODVqQnpoRFozN1Z3N0huMmcwMVVnUDFldWw4RVVn?=
 =?utf-8?B?TG53NnhyTHVDT0lFUXFqcTNSUThhWjZYSzMwZFJ1OVN3VHllMVJQVHduU2g3?=
 =?utf-8?B?cXo5WWUrRzdMcmk2NEJjeXhLai96WFZUZklYSVVIQkZ5SkVYb29xZnVXSzFM?=
 =?utf-8?B?UmNxTTdTWk1RcThpL3Q5VndlMUc2OEhpQVRVZldta21rYVFQVTZqbGt0S1Rs?=
 =?utf-8?B?MmNTTzdxWk9LV3JlbTQwczh6OGdZQzJkejl6WGVuQjhHT1ZheXlnWkVwTktn?=
 =?utf-8?B?OHlUandLb29ndldabGI1YWFVaWV5dGh0eFpTRG9tV2R5eldWQWMwQUFRdCs4?=
 =?utf-8?B?ZmxxS2pYdUpkcFd5cGx1VnVybExMeS8rVEprVEFLTVBqYjNqRk82VzJreVNm?=
 =?utf-8?B?S21TM1BkMFBHUFNObEg3YkFDSXg2VU5HNW9VVVlDOTN6N01xem5LMzUxTEdo?=
 =?utf-8?B?dXl5eEJIOG9GNmljMUhMWHBwT3k0eFZmaDZxVlRxRzRsdS9HZXl1S1N2MGlB?=
 =?utf-8?B?a1lJTGJEMEpkTTJjUThDQ3NKZFlmb3V5dVgvUXJBb05HWjJYOGRnemlyZC8y?=
 =?utf-8?B?OVZtbWg4UDVKVk1OdEdKajN5RGs3SG5ISytKazY5U1c1NHhGN3A5aUJTSFBR?=
 =?utf-8?B?LzlJVXNpM0RWV3BaSkMrV1JubDkxVVNHWFMxbTNOZnh4dXhqeWlJbWNxekNL?=
 =?utf-8?B?ZmJFQmlyTVNSVVFXODFWSjNUMUd2QmlwWG5VOTA5U0RNL29BRlNyMWd1NlNI?=
 =?utf-8?B?SlZiSXN2K0pBdnZjVDFiUk93KzB2ZVRUbzNGdEgwSDczMDhmeldUbitjd0Vr?=
 =?utf-8?B?L0JhUGlXWUFWZ2I0SVdjdnEyS0ZhZ0VKNFplYXhGK3hrU0ZlRDVxVmRCTUxT?=
 =?utf-8?B?R1RmTllWN2plTGNOeGtIMEQ1dDRJdTc0SFYwS0hhUHRLcmpUcHQ3U2hEeDFB?=
 =?utf-8?B?MjB1RlhaMSs3TUtjN2hBOERQdFVUNFVkSHFNemNSRTVkNTFUMEpVNlR1UEdO?=
 =?utf-8?B?MGNUaUZEMXVGMjBjQlhmOVAzRHROWk9PTVZXK3lRS2U2NnkwNUZqek0zenNT?=
 =?utf-8?B?UkFlWXJUVEh3SmpQN0l0aUVLdnJTbERnUEdSQ1FrVUlTc0JVVHpSMEVxbm8z?=
 =?utf-8?Q?okBMZya3un/d6s4TY8pN0tM=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 09eb411b-d49b-4a67-0ba8-08d99ddd89d9
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 08:48:27.7792
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gjvV61qWP2S9HJaLzf5jdsr9IvqUnWpGVfCHZrfWpNsmeZrlP3uuv/xQDzhTtZkSWLfYKgGP1wFCLfe5Wa7Tgw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3833
X-OriginatorOrg: citrix.com

On Mon, Nov 01, 2021 at 06:14:40AM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 29.10.21 10:33, Roger Pau Monné wrote:
> > On Thu, Oct 28, 2021 at 05:55:25PM +0000, Oleksandr Andrushchenko wrote:
> >>
> >> On 28.10.21 19:03, Roger Pau Monné wrote:
> >>> On Thu, Oct 28, 2021 at 02:23:34PM +0000, Oleksandr Andrushchenko wrote:
> >>>> On 28.10.21 16:36, Roger Pau Monné wrote:
> >>>>> And for domUs you really need to fix vpci_{read,write} to not
> >>>>> passthrough accesses not explicitly handled.
> >>>> Do you mean that we need to validate SBDFs there?
> >>>> This can be tricky if we have a use-case when a PCI device being
> >>>> passed through if not put at 0000:00:0.0, but requested to be, for
> >>>> example, 0000:0d:0.0. So, we need to go over the list of virtual
> >>>> devices and see if SBDF the guest is trying to access is a valid SBDF.
> >>>> Is this what you mean?
> >>> No, you need to prevent accesses to registers not explicitly handled
> >>> by vpci. Ie: do not forward unhandled accesses to
> >>> vpci_{read,wrie}_hw).
> >> I see, so those which have no handlers are not passed to the hardware.
> >> I need to see how to do that
> > Indeed. Without fixing that passthrough to domUs is completely unsafe,
> > as you allow domUs full access to registers not explicitly handled by
> > current vPCI code.
> Well, my understanding is: we can let the guest access whatever
> registers it wants with the following exceptions:
> - "special" registers we already trap in vPCI, e.g. command, BARs
> - we must not let the guest go out of the configuration space of a
> specific PCI device, e.g. prevent it from accessing configuration
> spaces of other devices.
> The rest accesses seem to be ok to me as we do not really want:
> - have handlers and emulate all possible registers
> - we do not want the guest to fail if it accesses a valid register which
> we do not emulate.

IMO that's not good from a security PoV. Xen needs to be sure that
every registers a guest accesses is not going to cause the system to
malfunction, so Xen needs to keep a list of the registers it's safe
for a guest to access.

For example we should only expose the PCI capabilities that we know
are safe for a guest to use, ie: MSI and MSI-X initially. The rest of
the capabilities should be blocked from guest access, unless we audit
them and declare safe for a guest to access.

As a reference you might want to look at the approach currently used
by QEMU in order to do PCI passthrough. A very limited set of PCI
capabilities known to be safe for untrusted access are exposed to the
guest, and registers need to be explicitly handled or else access is
rejected. We need a fairly similar model in vPCI or else none of this
will be safe for unprivileged access.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 08:52:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 08:52:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219796.380790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpWj-0001Pn-6P; Tue, 02 Nov 2021 08:52:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219796.380790; Tue, 02 Nov 2021 08:52:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpWj-0001Pg-3Q; Tue, 02 Nov 2021 08:52:17 +0000
Received: by outflank-mailman (input) for mailman id 219796;
 Tue, 02 Nov 2021 08:52:16 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhpWi-0001Pa-Fd
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 08:52:16 +0000
Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 7b85f73f-1736-4cac-ae6d-ca5e18f26cca;
 Tue, 02 Nov 2021 08:52:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b85f73f-1736-4cac-ae6d-ca5e18f26cca
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635843135;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=EqwMoWUditxCMawvypIaritpapaHNyfhoOY/9qXuGSo=;
  b=Xp6Vdnk7hgL+dbNwT+ymEZ42dRPa1WHx/dV/f0oAIeD3ulEPCnRfMQXA
   y60qZKZBCyszKA9C8AYKXRVGFtlnYDtEOQBRlrMnY/IPLvitOPgTzgqNP
   PpYnFfqoCPwLFrMZ48WG/n9I316A5pkpuccVhu9EjzSSTWHYojTnDy7+i
   o=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: VyN4dSa24eUERC2rmzimoNZfw9+cKne2uMGuGcQ2ZaAaDnGJNDbOaj6bnusEKLgJP1hhk1mQ0J
 INisr2jVBzM0aI5G1H5OrpO1r5A6UCetAtmyk+Bq4i8DW02HsXWLbwnGhmbCCnqAMfBPQ8WbJb
 S8Go2vTZTyR7gmZtE8Bqum4X+gq/hlup5+1hrZyM8aTbOW6+XjgHZ7GoZFqj6u3t0FU4Tcor/R
 TPYsyhXdVl77tsIXLou4QKfnwM7l4XWgWwJNZozNokZBhPci+ROwma5C+Pw5M03F7JwwCNCw97
 4hcQNQOzf31zTgqpShwDlfxU
X-SBRS: 5.1
X-MesageID: 57247953
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:r6HwmqCOT9GQ/xVW/0Tlw5YqxClBgxIJ4kV8jS/XYbTApG4k3zAAz
 WQYUDyEPqmLYjShKI8lYN+2o04BvMTRxoRrQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540Ug7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/kRWjkflh8
 Mx2rpXpcFx1DI3pvbxaTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvqQuYAJgWxYasZmGO6GW
 ck9bTRTd1fSQS9OeU8uGqxltbL97pX4W2IB8w/EzUYt2EDZywZ7wbX2MN7Yf9WMbcpQl0ec4
 GnB+gzRPBYeM9COzCufxViljOTPgCDTVZobEfuz8fsCqFaUwGoUChEfS1qgifa8g0+6HdlYL
 iQ88y4vtrQ79VbtQMP0WRa5u1abshVaUN1Ve8Uh8x2EwKfQ5wefB0AHQyRHZdhgs9U5LRQo3
 FKUm9LiBRR0raaYD3ma89+8vT60fCQYM2IGTSsFVhcepcnuppkpiRDCRcolF7S65vX3BDXxz
 jaivCU4wbIJgqYjyKGT7V3BxTW2qfD0ohUdv1uNGDj/t0UgOdDjN9fABUXnAehoNqazQHCRh
 GE/gMHH1btSP7GosXTKX7BYdF223MqtPDrZiF9pOpAu8TWx5nKuFbxtDCFCyFRBaZhdJ2KwC
 KPHkUYIvcIIYiP2BUNiS9vpU5xC8ET2KTjyuhk4hPJqa4M5SgKI9ToGiaW4jzG0yxhEfU3S1
 P6mnSeQ4ZQyVfQPINmeHb51PVoXKsYWnzq7qXfTlEzP7FZmTCTJIYrpyXPXBgzD0IuKoR/O7
 /FUPNaQxhNUXYXWO3eMrNFCdwhVdyJiWfgaTvC7kMbZe2KK/0l6U5fsLU4JIdQ5z8y5aM+Rp
 hlRpXO0OHKg3CaaeG1mm1hoaa/1XIYXkJ7IFXdEALpc4FB6OdzHxP5GL/MfJOB7nMQ+na8cZ
 6RUIK2oX6UQIgkrDhxANPERWqQ5L0/17e9PVgL4CAUCk2lIHleUp4S7IlO3nMTMZwLu3fYDT
 3Sb/lqzabIIRhh4DdaQb/SqzlirumMalv40VEzNSuS/sm21mGSzAyCu3PIxPe8WLhDPmmmT2
 wqMWE9KrujRuY4lttLOgPnc/YuuFuJ/GGtcHnXasunqZXWLoDL7zN8SSvuMcBDcSHjwpPeoa
 9JKwqyuK/YAhltL7dZxSu450aIk6tLzjLZG1QA4Tm7TZlGmB+o4cHmL1MVCrINXwbpdtVfkU
 06D4IACa76IJNnkABgaIw98NraP0vQdmz/z6/UpIRqluH8rreTfCUgLZkuCki1QKrdxIbgJ+
 +Z5tZ5E8RG7hzorLs2C0nJe+VOTIyFSSK4grJwbXtPm01J51lFYbJXAISbq+5XTOc5UO0wnL
 zLI1qrPg7NQmhjLf3YpTCWf2ONcgdIFuQxQzU9ELFOMw4KXivgy1RxX0DI2UgUKkUkXj7MtY
 jBmZx9vOKGD3zZ0n8wSDWmjFjZICACd5kGsmUACk3fUThXwW2HARIHn1T1hIKzNH7pgQwVm
IronPort-HdrOrdr: A9a23:3GD8M69RNeCAwkb47JZuk+DcI+orL9Y04lQ7vn2ZLiYlFfBw9v
 re+MjzsCWetN9/Yh0dcLy7V5VoIkm9yXcW2+cs1N6ZNWGN1VdAR7sC0aLShxHmBi3i5qp8+M
 5bAs1D4QTLfDtHZBDBkWuFL+o=
X-IronPort-AV: E=Sophos;i="5.87,202,1631592000"; 
   d="scan'208";a="57247953"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Pzch3j/OlyFk993sh8f4lSzWXRbeiZti4AyNXZs3txUr8k5G+Tx8VAmd8I1+WVU6cCVhKSo62F5quymnknwwVLdk7POrd4SGhUfGQMNXxMhz2up/C4FOn9iBWAXRfCpy+aSoyBda/GiNpU+F2T/WWfc0hqVd+wP4KsnvUDp8K7J1kd1SPmC+2EVqSO9+0p1/qhA4fwNJlkWG2zN2m8cAmkEMQjNR0DQVlZYqR8opxZGEWxVOsgsr9oMg7d70FSQCeaZMvhwTBaCpP2jhpm+PDExfSCS6XosQ/c0y7Ax/XjsyP1sJpW6ICJnzlKxteKfsPEchLJDS/3sHD0ej6WrUSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pafBYG9+Xpvs4is8qW2Z5TuD8DMjZWZ5Ga3HyFe/Vps=;
 b=UIyAnoKoa8X2sTgIf+ZYdZYUWZ58LdWQz5b9a7gf+AR7gKs7lki0tcL+iyXfiBGWssgFpFN7EAipDeP8iN8q6WvKNClI4+PYPVgmLhK/NB0+D57fGs5uzSAOIm+yrRJpjXGDZqe5UTFw6gAX5Xhz+2V1KgGrtEsRPtcZLyU7Jj7ZwG4X3DWcgQeggX4VQbPWbR+gr4JemRMYBWaICQCuw9HW4AclSZIaD/97rug8TsFaub2vbDMa66BDCNp8KmuNGzCuQn8Nv9uTgHjpV/PNE1vN90rrSaFnj/X0PwJ756GcpJaWsXCxhp3T3WDu7wjJOSZeYGAJ4y0efKdTZM3uQA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pafBYG9+Xpvs4is8qW2Z5TuD8DMjZWZ5Ga3HyFe/Vps=;
 b=BdxpmOJYDhAhZCTkkx7AHbyeNvIcTDruNEJKM4jizZViV1rt8PWrDVNNCrAXgeqYF1ShmUxj72D57Cu6YwtJ3Vt9dEYxryW2GG0/+vfj8yo5O2wHlUwUDLLHGWwrBKEwE/+2Z8yBZ8fh2m5DgSJgs+bhAMvDFgZI9p899CO0+7g=
Date: Tue, 2 Nov 2021 09:51:59 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<jbeulich@suse.com>, Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Jane Malalane <jane.malalane@citrix.com>,
	"Bobby Eshleman" <bobbyeshleman@gmail.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>
Subject: Re: Arch-neutral name for hardware interrupt support
Message-ID: <YYD8L6MCrpytCkr7@Air-de-Roger>
References: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
X-ClientProxiedBy: PR3P193CA0018.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:102:50::23) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: be06b519-cc8a-4155-2338-08d99dde0b30
X-MS-TrafficTypeDiagnostic: DM6PR03MB3738:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3738E4E304801E3B11C11D538F8B9@DM6PR03MB3738.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: ViOpVvRk7O475rVVUQUJkp8Zf3eBSQ7H3gAiJ34c9B88MpYX/TqerxqnRzeA/M+39tRCmbHZb4F2wuuWPU6oudAZ2Uq0wb2CekS/8otrcMGs8y6ytOUSvDmA7vc+aiLucYbvzRqjcJIBqwINwy6ABTbaPKQAffLxplnOJTZg/uWJTCY8ZTVMFjI5ad9UrUodBCOTXevy3uOwVCEx9cqhpzYNKp0oNQSXjGLteBUElR4bzNZ6Q+l0awyoDBfIh55E36ylWdCs3TMuBH9wrbMCARk0bcVj+lB8XU76INlZC4jNMUtXEoNN6oDUoR9xoRZ8AmLOkcE6QQh29Y9Rq93KdLgbE+Yr8hk7AZ1JP+ODi4eHXSv7gsfFdF/aiLItJf16bBe9rTERyi/+fVYyj9hdPXCE9rmmHe65K+ya91Um7gkVpr+hMS4/gsJrSAdbYlL9Bxz7FYfXyBojje4sfKcd+MmPXnEnVPTMCQptlE9TV2J1jQNodqulYXfTddABO5zf2IxJ1pG0ZLlUAsPTn/wdImpH4lhqs/OUOOQRWhIW37agTieUJzjwJcboh3UbNbVlOuLzc9TNnSIFRwYY6qqAGIO4oa2ETAkFy8ZtUzKxVJ9OhEBaedIxek2w0iOQU1+tjR2XupzFt7SePFhcoya/5A==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(6486002)(66946007)(66476007)(66556008)(508600001)(6496006)(9686003)(5660300002)(86362001)(316002)(38100700002)(82960400001)(83380400001)(33716001)(956004)(186003)(4326008)(26005)(6862004)(6636002)(6666004)(8936002)(54906003)(8676002)(2906002)(85182001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Skp2bE03S0YrYUJObitSTUIzdjlYSTN0dmE1Z0JnSldQT0owTnhZQmVPU24v?=
 =?utf-8?B?ejZ3TFJIbjZ1Tm8wUGlNNTZzUnkvNWNnbmhIdmRpTUp2SVEzaXo5QWJ0dmx6?=
 =?utf-8?B?eUJENFR0M3VHdldDNmxvc0ZwYTJScVJsNVFrMElhVTZzbFdmanVYWWNCY2tr?=
 =?utf-8?B?ek54YU5Ec0ZMcERNYWVkSVZWNXNTSk9OWnBHOUVhd3lEMlN6S0o5YkNtTmpp?=
 =?utf-8?B?c2JDSEVIay9jVWNSVElrMGFZSGd5NU5XMjlUWlFXRW4wRjNuMW9zZDJwaXJP?=
 =?utf-8?B?TUxOYmdxZDR5TGErSnlFdHowQ0VQT0NsWjc3QjVxK3pEUG9Bc2RGYUVFc3pl?=
 =?utf-8?B?UThTeE9NbGlCSnZ0V005dStOdVJFZzVBUmN4RXVCQ2tNYk8yM0cyYUNjcHBN?=
 =?utf-8?B?dFZOQ1o5T1JKVjJiSHZkZFVmY29VRklMbjk5VGkzb1J0VTgvdVo0cUVUQmFp?=
 =?utf-8?B?dXhKZE5WeDRDbWR3akltT3U5L3B4QkdCTHZRUSt1M0F6SDVYcEgxTER2amVR?=
 =?utf-8?B?YzJtOEc2R09zbDN5TVVwRWlaaUpYTXBGMEpvZEpoNUh0QmUwanBFRW1rZnRH?=
 =?utf-8?B?ZjhNZzRUd0JITzlYZ05XMlQ2cy94dWduTGwwVzkwM3ljdHJYSFpudFJiWWMx?=
 =?utf-8?B?L2JZcTVLemFoajhUSzRQL1hyZzlkN3NST0ZRaFBsajllZ1dnYW9kdDB3QWNP?=
 =?utf-8?B?MDBBOHAwT08wQ3J0S2lrOHVJYi9DWmdLalJmZjVidmJhMFFDQmVJbnRwMEp4?=
 =?utf-8?B?NDZRcDJINHdYQk5pc1NZTkgwYmZsek1vcWUzSWhKZTBpTW5SS09YUXFmbHJJ?=
 =?utf-8?B?TFJIRkptdkYrdVdVNERFcHJPY3FMSnlySG04OFZvS2VqdUpyWDRxVmlIWHBx?=
 =?utf-8?B?N1UvK3Y4UGhwcGYxTzF5ZGMrZit3OERPMXRDQjRPd1dPTWpudk5OVkVBb3Vp?=
 =?utf-8?B?Tm5EUlNnV2dMZ3NhclR0THJXZWxuUDF4WVdsQmxvUnQvWWlqVGxwa2hYUzhG?=
 =?utf-8?B?SitHNFI0aFh0c1ZjQ3RTcXM3bXZRNDluOG94SGNFYnlzNDF3SUZ4RXpCNUlF?=
 =?utf-8?B?YTVXK3d1YVVwdnZiTE5IcHNKL0ZkY1h0VHpmVVhHOVpQaExTaW9Nd2w5MDJo?=
 =?utf-8?B?TVdDbG8yRFZ5M25EKy9kZjdRY3BSUElIT1dUOWZQNXFOOXg1SUx5Wjl0Yjk5?=
 =?utf-8?B?cWtsWExaT21tUi9ZNnIySVlCMW5QU1VGNUNsaTNmMzE2end5U0NHK2pZaDFU?=
 =?utf-8?B?TFhoSzk2VnVYTjFrVWp4My83UTBIRzZ5VmNrQnJXckRFU0ZXaldyTnNZRUxC?=
 =?utf-8?B?UVBhWHJXWE9sYnFxKy9iSXI5eFVBcDJ0ZFRyQms5Uy9PdXE2QnZHaEFtVTMy?=
 =?utf-8?B?OXBIRmxpVjZIeHd1LzY1dHhObDM1MTk3V0VFS245S3I4a0EzOTEvWUUrNHdk?=
 =?utf-8?B?QXlpcFBMaXlWN2ZkdXpKZFoyMEdjSERHK0JCVG5jc0NZQnZTeXVoM0JUQUMw?=
 =?utf-8?B?QjdaZDdsV1hyQzBKNldwc05kOVc3NkdtcU1OZHhXRTUvRXBDZnN4aDdlS21y?=
 =?utf-8?B?WGYxUGdkb2QvZ25pTGNWVHdWYXllRWZWamlQL3JRVDhHWnZSRUZ4QnZvRllH?=
 =?utf-8?B?UG5EdGhTS2N4UDNoRldJWXg2ZDFOcFJhMDU2SENXSXUvbHhpU0ZHakY5UU4x?=
 =?utf-8?B?V2Zqc2EvbUhQTFhtbFpEY2NJamdpd3dvUXhEY0R2b08zVHFtZytET0ZPUEJH?=
 =?utf-8?B?aWZUZzV0dk80UDYxdWVuQWltWjdEbVdOcDJnUldZSmpLWEcvNWVvZVBSeEYy?=
 =?utf-8?B?TDI3QUpkcnJYd3NCaURZYWkyMG0vTGhmS1p2R0RmR1JKamNxRzM3SC82Z2pJ?=
 =?utf-8?B?UGlTSnVPc2xhdE9XUy9pMWVlN1h0ZnR4WUY2YnlVenpDNXdxSWdsRGZjV0kr?=
 =?utf-8?B?OVRuWFp2V3VrdmQ5cWRBdmtlY0p5b0VtN0ZmM0ZyWDJ1aXlhM2pSTEREVlFt?=
 =?utf-8?B?STl5d0ZBYkNGQm1wcEVPeit3OVYvako0UUpHaW9iR0VSZ0RhclQxRzRIajE4?=
 =?utf-8?B?UUdNb3NLdWVYUDRtWHBUcU40Y205TXVxbXVvVlBScDZZUGd3OWpzSThLakM1?=
 =?utf-8?B?YlFjUEhiQUxFZVV0VENkQU00VzVNT2YrK2NiWVk2M0JUd2RJYzRxa2Z3Y0ND?=
 =?utf-8?Q?RmlHSUb+zG4arUJz0vEJ0rk=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: be06b519-cc8a-4155-2338-08d99dde0b30
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 08:52:04.7651
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rD9Zv41bBQJN/PmFkoKNhl0pxcRAxAWTZd7NqvQyeoTz4reVCc42OdMCYB+77XvhyTIFXwG95VkWhI9sUzEFDA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3738
X-OriginatorOrg: citrix.com

On Mon, Nov 01, 2021 at 10:47:26AM +0000, Andrew Cooper wrote:
> Hello,
> 
> On ARM, the GIC is a hard prerequisite for VMs.
> 
> I can't remember what the state of RISCV is, but IIRC there is still
> some debate over how interrupts are expected to work under virt.
> 
> On x86, the story is very different.  PV have no hardware assistance,
> while HVM hardware assistance depends on hardware support.  Therefore we
> want to introduce a new CDF flag so we can control the setting per
> domain, rather than globally as it is done now.
> 
> This brings us to the question of what a suitable architecture name
> would be.
> 
> Hardware Virtual Interrupts is a little too close to Hardware Virtual
> (Machine) Introspection, and Hardware Assisted Interrupts (mirroring
> HAP) doesn't seem great either.
> 
> Thoughts / ideas / suggestions?

Is this going to cover both hardware assisted interrupt
controller and assisted interrupt delivery (ie: APIC virtualization
and posted interrupts in x86 speak) or just one of them?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 08:58:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 08:58:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219804.380807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpcj-00027j-12; Tue, 02 Nov 2021 08:58:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219804.380807; Tue, 02 Nov 2021 08:58:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpci-00027c-UQ; Tue, 02 Nov 2021 08:58:28 +0000
Received: by outflank-mailman (input) for mailman id 219804;
 Tue, 02 Nov 2021 08:58:28 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TliJ=PV=alien8.de=bp@srs-us1.protection.inumbo.net>)
 id 1mhpcY-00026X-2e
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 08:58:28 +0000
Received: from mail.skyhub.de (unknown [5.9.137.197])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id bf4cb180-65e7-4a4a-9f78-0583d79e47bb;
 Tue, 02 Nov 2021 08:58:15 +0000 (UTC)
Received: from zn.tnic (p200300ec2f0f62005f026b777d4e743c.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f0f:6200:5f02:6b77:7d4e:743c])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id DF4561EC0399;
 Tue,  2 Nov 2021 09:58:14 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf4cb180-65e7-4a4a-9f78-0583d79e47bb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1635843495;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=1uNXrjMg71tsOxKJhJFEEkWxKIgfWGBG7bqJii3XBpE=;
	b=HEFGYp55Jr0ZE18+k8Z9i4P3QR5dpxJqyEv8zk0g8j7dshvQzAzEBxdF6AY4bOcC09Gxjy
	z22/ciISUsTjJuKnR0VVa+nLj+O5zs2S5hO2Aeu7MGti0kXOYdB+1f+JOgxg5+7TD195kf
	YhmSJURBLMPsKTRlAMH6xdkZAaPO/Ik=
Date: Tue, 2 Nov 2021 09:58:10 +0100
From: Borislav Petkov <bp@alien8.de>
To: Lai Jiangshan <jiangshanlai@gmail.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	Lai Jiangshan <laijs@linux.alibaba.com>,
	Jan Beulich <jbeulich@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Juergen Gross <jgross@suse.com>, Peter Anvin <hpa@zytor.com>,
	xen-devel@lists.xenproject.org, Andy Lutomirski <luto@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH V4 04/50] x86/xen: Add
 xenpv_restore_regs_and_return_to_usermode()
Message-ID: <YYD9ohN2Zcy4EdMb@zn.tnic>
References: <20211026141420.17138-1-jiangshanlai@gmail.com>
 <20211026141420.17138-5-jiangshanlai@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20211026141420.17138-5-jiangshanlai@gmail.com>

On Tue, Oct 26, 2021 at 10:13:34PM +0800, Lai Jiangshan wrote:
> From: Lai Jiangshan <laijs@linux.alibaba.com>
> 
> While in the native case, PER_CPU_VAR(cpu_tss_rw + TSS_sp0) is the
> trampoline stack.  But XEN pv doesn't use trampoline stack, so
> PER_CPU_VAR(cpu_tss_rw + TSS_sp0) is also the kernel stack.  Hence source
> and destination stacks are identical in that case, which means reusing
> swapgs_restore_regs_and_return_to_usermode() in XEN pv would cause %rsp
> to move up to the top of the kernel stack and leave the IRET frame below
> %rsp, which is dangerous to be corrupted if #NMI / #MC hit as either of
> these events occurring in the middle of the stack pushing would clobber
> data on the (original) stack.
> 
> And swapgs_restore_regs_and_return_to_usermode() pushing the IRET frame
> on to the original address is useless and error-prone when there is any
> future attempt to modify the code.
> 
> Fixes: 7f2590a110b8 ("x86/entry/64: Use a per-CPU trampoline stack for IDT entries")
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Juergen Gross <jgross@suse.com>
> Cc: Peter Anvin <hpa@zytor.com>
> Cc: xen-devel@lists.xenproject.org>
> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Signed-off-by: Lai Jiangshan <laijs@linux.alibaba.com>
> ---
>  arch/x86/entry/entry_64.S        |  9 ++++++---
>  arch/x86/entry/entry_64_compat.S |  7 ++++---
>  arch/x86/xen/xen-asm.S           | 27 +++++++++++++++++++++++++++
>  3 files changed, 37 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
> index 9d468c8877e2..0dde5a253dda 100644
> --- a/arch/x86/entry/entry_64.S
> +++ b/arch/x86/entry/entry_64.S
> @@ -119,7 +119,7 @@ SYM_INNER_LABEL(entry_SYSCALL_64_after_hwframe, SYM_L_GLOBAL)
>  	 * In the Xen PV case we must use iret anyway.
>  	 */
>  
> -	ALTERNATIVE "", "jmp	swapgs_restore_regs_and_return_to_usermode", \
> +	ALTERNATIVE "", "jmp xenpv_restore_regs_and_return_to_usermode", \

Instead of sprinkling all those ALTERNATIVE calls everywhere,
why don't you simply jump to the xenpv-one at the
swapgs_restore_regs_and_return_to_usermode label itself and have a
single ALTERNATIVE there?

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 09:08:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 09:08:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219812.380818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpm3-0003fR-46; Tue, 02 Nov 2021 09:08:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219812.380818; Tue, 02 Nov 2021 09:08:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpm3-0003fK-15; Tue, 02 Nov 2021 09:08:07 +0000
Received: by outflank-mailman (input) for mailman id 219812;
 Tue, 02 Nov 2021 09:08:05 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhpm0-0003fE-Vk
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 09:08:05 +0000
Received: from mx0a-0039f301.pphosted.com (unknown [148.163.133.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id cc08d52a-4bdc-4f3d-97c2-e1696fa586db;
 Tue, 02 Nov 2021 09:08:01 +0000 (UTC)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A27OqUg025475;
 Tue, 2 Nov 2021 09:07:59 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2052.outbound.protection.outlook.com [104.47.13.52])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c30vtrc0g-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 09:07:59 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4580.eurprd03.prod.outlook.com (2603:10a6:208:c8::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Tue, 2 Nov
 2021 09:07:56 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 09:07:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc08d52a-4bdc-4f3d-97c2-e1696fa586db
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=b3uf5cAXygA62+SgIh5nsTvGF3gv6jLBP9ZhW+0M5cMFfTP4XrBiqMjW86UACIThTqPsDSevXg/rDRnWDNs3QvT72UIAqpyPuLdS4yTx+PsVSRl3DPYy96rMoE8Rej90cRthUIyuUzpNPNyAsv4GPeLwyW9mZmWLhjvxkDQQQIWvtiAi3gIY6axptP6+DyQckMyMw49RM9oxengmGAXCF/w70p9/tEXeX4wkr901mzeBM4mIYuyInlTxHnAm4LpZs0dBIQmPFbR0uCNmuDNpvUz8pNagwqqyHzYKt9NfinssuCscAWpa/0yhxL25YJqgGaVGuerZUTgI1T32dYb7gA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qgUSVJXJtk1K7IiCGwQJ9AGadwNykt/4MZkexbjwyQg=;
 b=Wlev8PR/94ZyZxdToMFxFi5CAOwJZWcb2SuQHtY0iwbtxC22XpANpdb6O7F4mwAxifDNR+ON+tKMa2rtMaj0nUc52xJLOQowiaTcB4JXQkpTfklSTd01SJqNdNNKDqcVwFwp3253NEedtfZ2NtlVoNDxwIA8XL0RtTfNqb4WeYPt0wIuDmWEI2BRO5H5XnwnSg9JAdPUaTETAPIvf6nKxL0DaPtXo14sJSl/k/LrIr9KUCR/lrAouDpvQl+WO0A/Xaa9mRQdO6PUu/TY5XzVsxv7vuHMtlTtrPdRwn/QljsMfl81DNj4NvUyBKVeY7TMN4pxNhBt61hgxZ+DFzSDaA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qgUSVJXJtk1K7IiCGwQJ9AGadwNykt/4MZkexbjwyQg=;
 b=ArKYPSqvooXq94TXeSuafl8xiKLJ2ujfrJuMhrrzJGkV9ThCeDOPWddl7NtPvNZZIaZfyeyqRxjfjQbk4iDHSMcCtUgmZqsyCGQClLaEqYgwqYcxjCs67ZvqYMr9yW/nN7g92VqJBgytCFs63QUY0JDgE5zhVJ0XviVakjm7cVRzyhwo3XuRD6rGq0hpfZYX0B2E5DC2rRvTJ+kr+YZoNvlAgfHxRgmkeijN8kjt1+yGkbZVUHXjC8MlYIuzqiBU+pVJPcsaib7qf7BD2EBPmO+YRt0VOgcp/ha1zgvbUNmf8i1jLCnEqMn+wv0OZXOCmYxE3QW34yYV4h2hxMZZ/g==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Julien Grall <julien@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Thread-Topic: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Thread-Index: 
 AQHXyww6rKHs3LJru0q52eLUia+oNavnHBIAgAE3H4CAABhAgIAADTsAgAAb4gCAAB9PgIAA5K+AgASg3ICAAb1HAIAABXeA
Date: Tue, 2 Nov 2021 09:07:56 +0000
Message-ID: <adb55c2f-220f-c660-e86b-13868568cbf0@epam.com>
References: <20211027082533.1406015-1-andr2000@gmail.com>
 <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <YXqnS7iZUvokJby6@Air-de-Roger>
 <3206478e-f230-cd91-5de9-85ef6c251405@epam.com>
 <YXrJyLMiMxaNmFAs@Air-de-Roger>
 <5de6c2f1-ef5c-9d8c-4287-9b0e3ff08b34@epam.com>
 <YXuj4frtHIRuSgOO@Air-de-Roger>
 <0ba7aa82-40bc-c0d3-38a2-8c4d141d0afd@epam.com>
 <YYD7VmDGKJRkid4a@Air-de-Roger>
In-Reply-To: <YYD7VmDGKJRkid4a@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: fd38aa99-3a35-4592-3624-08d99de04269
x-ms-traffictypediagnostic: AM0PR03MB4580:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB458008C12DA9032346DD89BBE78B9@AM0PR03MB4580.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 hA1gPqSOdeVgsHAIl4UsgaaVym17Q66OIb1BwfUV+ydwBmr7/tQ02xiSLkT0/D9A+0uOMce3ff6YVk7ccjlOvk2OL84b5Ux7JcTZe3dJLK6I48skGdFRNI0pt8u60ZSyO9d4MfbBem24Axn68HK8b/10XYcvtHSq9NNQoQA8/gsxAOqg2GG2v06uSis2Shtee+KRhi925lqJNEjaF8s/q7ZbRAQxqsCRHDKy5F3cF4yy7gsPzGfkcFXL8jCRFxLn4EgRk46q2z0DEuBENH/Vc0htEPxNwog0F6cwXiFspDqXeTKxk6jnjcfsvpCVpbhaMQTjPNTToj0fCx0UaD+FoPUK+GKd5YvIYHsPBvyL73fLKEcr6qqVIHCORJCONDjbl5ammI7W2wfgPENtGcqe0lfJh3q2CppOo0Z2Lt+lNXMLnic4JGgfPGQWrNE/X73E9B/U9WVTY7U8EdH2she4fVO13DkBBct2MGkfXhIlb0lnj3FDihqwmdWef7ViyUNUro9H9jHQMTPfjpeuugZhK3rmMjd6Wil2ziI1Ni4zmZHfTJBd63a+liR3UI+xpzzAOTz5AtSA3+1A1haFNamtwI/6N1CHH8Tj/3ywEsv/2nOG6qf3m15qNs+smAXVf9N3mwDa3tJRkZOWeqj/rVzGbla8iaIyGDRDO3Q3g+QCl0gKylU4bkw/vf1LtmS86BJy8m0CK8GY/PA2XA9Cz2XCnH+KYEE7A9N/ZEuPYEytfihhmouIMht73Qq2qwX3WziV
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(186003)(5660300002)(4326008)(8676002)(38070700005)(36756003)(122000001)(83380400001)(8936002)(508600001)(31686004)(71200400001)(26005)(6916009)(31696002)(91956017)(6512007)(53546011)(316002)(76116006)(66946007)(54906003)(66556008)(6506007)(38100700002)(2616005)(6486002)(64756008)(66446008)(2906002)(86362001)(66476007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?ZjN5V0d6MEdPUUhEdTdYRWd5MGw2MTltbDVHUFc4Q3FUdy8vcTdDYTdMTVYx?=
 =?utf-8?B?S1QyQlcwR1p4TE44aTRHeFRYTTVlZ2E4MFhwUjM3UEV1eHluR1BUekZwcVZz?=
 =?utf-8?B?cVFNcCtzS3Z0aDM5N1MrZzdwdjVoWUsvR1U0a292a1VjcWliWEg3dnRES2xX?=
 =?utf-8?B?eitYZFl1R0JRN1ZyeUtkbnYwNmE4VmhQMkhoNTlSSWUxUnptbjFxeHB1RmxT?=
 =?utf-8?B?YXB6aktDNURLOVdJQXM3RHNNYWJqMmFvUXNwVGxQUkt2QnlHVWNNUjlJc2o0?=
 =?utf-8?B?elJweEhheEMxQUFtT3FHWEhKR1lPOE9SdTN4cmJYTnNkUlFqMVMrZWJISVda?=
 =?utf-8?B?c0F3MXBmR2czbjFmSGloaGNPRGp6ajVoT0N0T0x5RjhVTjFpRWFPcFZUTC9G?=
 =?utf-8?B?T2lFbnJPOHlSN3Z3ZlpaWFJlNG1iMXkzdlRLdlpEbkJUTG0xd0hDVTRqUXRn?=
 =?utf-8?B?VWN0czJxcC9xM3NlRUtuUThqRUw4U1BWd3E4SFZXRjBwKzVjeTNBeVRlam02?=
 =?utf-8?B?aHNDb0VtOEtORVdBMEQyc24rVmlLVUMySHI4YTN5TTlXY1ZERU9WQmZobTNr?=
 =?utf-8?B?SERERUpLUmN0Z3N0RDQ5aGxQTWVzWmxVdWdrVWZPUHg2OGk0c1lZTVZiVEMz?=
 =?utf-8?B?T3NmaHJYRU5XU0dNTFFHcFl0YmppekZWMmp3eVBNSDhKbWxSKzdPK3h2ejBm?=
 =?utf-8?B?VURLUHQvdU9EQ0M4cFpIelpLbVJ2Y2NaKytWTTBVczhMWndRVzdiek00dGxI?=
 =?utf-8?B?dFpraFczc2YzdzM4UXkyQkQ0cXplMnlkR0ZhT1BmSSt3WjF2OEQvZnhkOEtF?=
 =?utf-8?B?YTdETzRsbmgyL3Z0ZVRXUTNxazVzeHJ6T0p3ckN1ZkNkMXJpLzVpSzZiUjBW?=
 =?utf-8?B?dTdTRXlJMHpSclBZNCs5Y1I1cEFjcnhXdzdldXNMVG94NlpRRDRrKzBxQVd2?=
 =?utf-8?B?aFdJejJjZkZTcUwrbmlsTUR5ZkZoWUQrT3BDZVJ0QWNBVlZmdDhpbjE2YllR?=
 =?utf-8?B?K21qQk80MGF2UWFjaHkxMTN0RXcycDVLVTBhUFVHUzlXSnNaOHY0dE5JUUty?=
 =?utf-8?B?MmVLNVdndDl0ZkNRaitKOU1KQXRnbFo4alIrVDU0cHBDNTEwYXZrYUwwZjVh?=
 =?utf-8?B?SWg4cHBvVldza0dQb0R3TkczZFZyU1RqYjBCVmxVMUR1Vkc2OFJmYk1Ebjc5?=
 =?utf-8?B?Z2ZDaURPOFR5RkVyanVxdGlxRWQ2NUFuSHFmK1JveVZRSHZMY3RnbllxckEz?=
 =?utf-8?B?UlV2Vm1zV0VtNHRXNGVjdVJMbGhveHhmN2NhQ0liUjFXY0JYQTNuZ0ZVWW9T?=
 =?utf-8?B?MDU0b1Z0WndhYU1KQ1c5S1BWYUhnRjA1WktFMEhIMmNCMy9JSk9rQ3l5L2JH?=
 =?utf-8?B?cXUwL2pJeTM1VGlsdlkxUVZSSDdMUVZGYmoyakgxMzFKWXhyLzlhbFJwN2xY?=
 =?utf-8?B?OW91My9vYUlDZkpKaW10OThqakJXWG4ybm42bW5BN0VkTW5mSXZGRmZNS0pQ?=
 =?utf-8?B?NGh2bXA5NHZYbElnUzgzbG82T1Q5S3l3RkNMMWxCbzZ1bnRFLzRmOVpJY1M2?=
 =?utf-8?B?TUR4Y0FJOTBzNURUK2MxeGl1a0lLbmJmUUdqMXUrYnByUmNUVUU1UWxHTHRt?=
 =?utf-8?B?RVdNd1FXK1dWUVZjU3ROUjdkQ3Y0b3pTdE9xc3g4ejQ0WkNzckpIZWpYNERZ?=
 =?utf-8?B?UjIyQjMrTjVrM3JBMGZ2Y2M0Nkw0a3YwUFVOc1Nsa1RWREVOQWFPWWZKZDN4?=
 =?utf-8?B?VEd1WjhyTGhRd2JWeXhnRGlhZHNTVzFOd3dBRGtlMFZFOUtLRWhaZ2VZM0cz?=
 =?utf-8?B?ZUhBb1Y3U0dEb3pDdFMzeXEvaEo5dVdFK0JUL2MxRS8yNFUxVTlNTnkyc3Jy?=
 =?utf-8?B?QTVZdWg5bXJ3TVk3b2FQaHRHaXlValdOWmFGdVExNFc1Uk9kZy9sbjBxeXNa?=
 =?utf-8?B?YjJQWjVnOE8wdzFCNlh4SVcxdEE2QURlTFhaY0lpdXJScGxvRlZSaW04ZGxB?=
 =?utf-8?B?OUVTNmVDMDF3Wnd5eCsyWmwwR2NuTWhDajM3d1haSUJ6cVR2YjJmUlJjalkz?=
 =?utf-8?B?Y3FGVitSWE55WllKazV5ZStxRHZHUThILzMycmhYYy9CNmExR25pK0h0aG9K?=
 =?utf-8?B?aWZTSzlQOS8zVnhzU3FuVHgwdDUxSUc4Wlg3WldIZ1R4dXhvT2pZRjI2L3Ir?=
 =?utf-8?B?UlpyOEFCeUVFYW1zeFhCVTZlRlhxK1pLNmMrNmRmWFp0WlJrVEVCNksyaEtF?=
 =?utf-8?B?c1hQTnhVaFYrTEJGL3l0SUROK2RqNXh2aEJNNVBGejRFQkR4SklqelYzSWEx?=
 =?utf-8?B?eTdWZktHVWgvcE9uUGVYdTcwMDg5SDYvcjcvSWJLb3VDNUNtZjdzUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D3F897A1304322418699E62738AA2E00@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd38aa99-3a35-4592-3624-08d99de04269
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 09:07:56.0957
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Uyv+SG0CEyPMOtlF1THPMOMyWL3N8ljeAhjKftAn2dX3dE65vzloeTvGJ0fGndbgCuUHRqxAp4kxXFPCu8qNiZs+PVHqvphtdh9zbFemvdeb2XpceU+jL9ARclKZ8nf0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4580
X-Proofpoint-ORIG-GUID: EvWCqL-BKvQSK7cZJLpSYeZLWHTD79yG
X-Proofpoint-GUID: EvWCqL-BKvQSK7cZJLpSYeZLWHTD79yG
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_06,2021-11-01_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxscore=0
 bulkscore=0 malwarescore=0 phishscore=0 impostorscore=0 spamscore=0
 suspectscore=0 mlxlogscore=999 priorityscore=1501 lowpriorityscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020054

DQoNCk9uIDAyLjExLjIxIDEwOjQ4LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBNb24s
IE5vdiAwMSwgMjAyMSBhdCAwNjoxNDo0MEFNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+DQo+PiBPbiAyOS4xMC4yMSAxMDozMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90
ZToNCj4+PiBPbiBUaHUsIE9jdCAyOCwgMjAyMSBhdCAwNTo1NToyNVBNICswMDAwLCBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4gT24gMjguMTAuMjEgMTk6MDMsIFJvZ2VyIFBh
dSBNb25uw6kgd3JvdGU6DQo+Pj4+PiBPbiBUaHUsIE9jdCAyOCwgMjAyMSBhdCAwMjoyMzozNFBN
ICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBPbiAyOC4xMC4y
MSAxNjozNiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+Pj4gQW5kIGZvciBkb21VcyB5
b3UgcmVhbGx5IG5lZWQgdG8gZml4IHZwY2lfe3JlYWQsd3JpdGV9IHRvIG5vdA0KPj4+Pj4+PiBw
YXNzdGhyb3VnaCBhY2Nlc3NlcyBub3QgZXhwbGljaXRseSBoYW5kbGVkLg0KPj4+Pj4+IERvIHlv
dSBtZWFuIHRoYXQgd2UgbmVlZCB0byB2YWxpZGF0ZSBTQkRGcyB0aGVyZT8NCj4+Pj4+PiBUaGlz
IGNhbiBiZSB0cmlja3kgaWYgd2UgaGF2ZSBhIHVzZS1jYXNlIHdoZW4gYSBQQ0kgZGV2aWNlIGJl
aW5nDQo+Pj4+Pj4gcGFzc2VkIHRocm91Z2ggaWYgbm90IHB1dCBhdCAwMDAwOjAwOjAuMCwgYnV0
IHJlcXVlc3RlZCB0byBiZSwgZm9yDQo+Pj4+Pj4gZXhhbXBsZSwgMDAwMDowZDowLjAuIFNvLCB3
ZSBuZWVkIHRvIGdvIG92ZXIgdGhlIGxpc3Qgb2YgdmlydHVhbA0KPj4+Pj4+IGRldmljZXMgYW5k
IHNlZSBpZiBTQkRGIHRoZSBndWVzdCBpcyB0cnlpbmcgdG8gYWNjZXNzIGlzIGEgdmFsaWQgU0JE
Ri4NCj4+Pj4+PiBJcyB0aGlzIHdoYXQgeW91IG1lYW4/DQo+Pj4+PiBObywgeW91IG5lZWQgdG8g
cHJldmVudCBhY2Nlc3NlcyB0byByZWdpc3RlcnMgbm90IGV4cGxpY2l0bHkgaGFuZGxlZA0KPj4+
Pj4gYnkgdnBjaS4gSWU6IGRvIG5vdCBmb3J3YXJkIHVuaGFuZGxlZCBhY2Nlc3NlcyB0bw0KPj4+
Pj4gdnBjaV97cmVhZCx3cmllfV9odykuDQo+Pj4+IEkgc2VlLCBzbyB0aG9zZSB3aGljaCBoYXZl
IG5vIGhhbmRsZXJzIGFyZSBub3QgcGFzc2VkIHRvIHRoZSBoYXJkd2FyZS4NCj4+Pj4gSSBuZWVk
IHRvIHNlZSBob3cgdG8gZG8gdGhhdA0KPj4+IEluZGVlZC4gV2l0aG91dCBmaXhpbmcgdGhhdCBw
YXNzdGhyb3VnaCB0byBkb21VcyBpcyBjb21wbGV0ZWx5IHVuc2FmZSwNCj4+PiBhcyB5b3UgYWxs
b3cgZG9tVXMgZnVsbCBhY2Nlc3MgdG8gcmVnaXN0ZXJzIG5vdCBleHBsaWNpdGx5IGhhbmRsZWQg
YnkNCj4+PiBjdXJyZW50IHZQQ0kgY29kZS4NCj4+IFdlbGwsIG15IHVuZGVyc3RhbmRpbmcgaXM6
IHdlIGNhbiBsZXQgdGhlIGd1ZXN0IGFjY2VzcyB3aGF0ZXZlcg0KPj4gcmVnaXN0ZXJzIGl0IHdh
bnRzIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zOg0KPj4gLSAic3BlY2lhbCIgcmVnaXN0
ZXJzIHdlIGFscmVhZHkgdHJhcCBpbiB2UENJLCBlLmcuIGNvbW1hbmQsIEJBUnMNCj4+IC0gd2Ug
bXVzdCBub3QgbGV0IHRoZSBndWVzdCBnbyBvdXQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2Ug
b2YgYQ0KPj4gc3BlY2lmaWMgUENJIGRldmljZSwgZS5nLiBwcmV2ZW50IGl0IGZyb20gYWNjZXNz
aW5nIGNvbmZpZ3VyYXRpb24NCj4+IHNwYWNlcyBvZiBvdGhlciBkZXZpY2VzLg0KPj4gVGhlIHJl
c3QgYWNjZXNzZXMgc2VlbSB0byBiZSBvayB0byBtZSBhcyB3ZSBkbyBub3QgcmVhbGx5IHdhbnQ6
DQo+PiAtIGhhdmUgaGFuZGxlcnMgYW5kIGVtdWxhdGUgYWxsIHBvc3NpYmxlIHJlZ2lzdGVycw0K
Pj4gLSB3ZSBkbyBub3Qgd2FudCB0aGUgZ3Vlc3QgdG8gZmFpbCBpZiBpdCBhY2Nlc3NlcyBhIHZh
bGlkIHJlZ2lzdGVyIHdoaWNoDQo+PiB3ZSBkbyBub3QgZW11bGF0ZS4NCj4gSU1PIHRoYXQncyBu
b3QgZ29vZCBmcm9tIGEgc2VjdXJpdHkgUG9WLiBYZW4gbmVlZHMgdG8gYmUgc3VyZSB0aGF0DQo+
IGV2ZXJ5IHJlZ2lzdGVycyBhIGd1ZXN0IGFjY2Vzc2VzIGlzIG5vdCBnb2luZyB0byBjYXVzZSB0
aGUgc3lzdGVtIHRvDQo+IG1hbGZ1bmN0aW9uLCBzbyBYZW4gbmVlZHMgdG8ga2VlcCBhIGxpc3Qg
b2YgdGhlIHJlZ2lzdGVycyBpdCdzIHNhZmUNCj4gZm9yIGEgZ3Vlc3QgdG8gYWNjZXNzLg0KPg0K
PiBGb3IgZXhhbXBsZSB3ZSBzaG91bGQgb25seSBleHBvc2UgdGhlIFBDSSBjYXBhYmlsaXRpZXMg
dGhhdCB3ZSBrbm93DQo+IGFyZSBzYWZlIGZvciBhIGd1ZXN0IHRvIHVzZSwgaWU6IE1TSSBhbmQg
TVNJLVggaW5pdGlhbGx5LiBUaGUgcmVzdCBvZg0KPiB0aGUgY2FwYWJpbGl0aWVzIHNob3VsZCBi
ZSBibG9ja2VkIGZyb20gZ3Vlc3QgYWNjZXNzLCB1bmxlc3Mgd2UgYXVkaXQNCj4gdGhlbSBhbmQg
ZGVjbGFyZSBzYWZlIGZvciBhIGd1ZXN0IHRvIGFjY2Vzcy4NCj4NCj4gQXMgYSByZWZlcmVuY2Ug
eW91IG1pZ2h0IHdhbnQgdG8gbG9vayBhdCB0aGUgYXBwcm9hY2ggY3VycmVudGx5IHVzZWQNCj4g
YnkgUUVNVSBpbiBvcmRlciB0byBkbyBQQ0kgcGFzc3Rocm91Z2guIEEgdmVyeSBsaW1pdGVkIHNl
dCBvZiBQQ0kNCj4gY2FwYWJpbGl0aWVzIGtub3duIHRvIGJlIHNhZmUgZm9yIHVudHJ1c3RlZCBh
Y2Nlc3MgYXJlIGV4cG9zZWQgdG8gdGhlDQo+IGd1ZXN0LCBhbmQgcmVnaXN0ZXJzIG5lZWQgdG8g
YmUgZXhwbGljaXRseSBoYW5kbGVkIG9yIGVsc2UgYWNjZXNzIGlzDQo+IHJlamVjdGVkLiBXZSBu
ZWVkIGEgZmFpcmx5IHNpbWlsYXIgbW9kZWwgaW4gdlBDSSBvciBlbHNlIG5vbmUgb2YgdGhpcw0K
PiB3aWxsIGJlIHNhZmUgZm9yIHVucHJpdmlsZWdlZCBhY2Nlc3MuDQpJIGRvIGFncmVlIHdpdGgg
dGhpcy4gQnV0IGF0IHRoZSBtb21lbnQgd2Ugb25seSBlbXVsYXRlIHNvbWUgb2YgdGhlbSwNCnNv
IGluIHRoZSBmdXR1cmUgd2Ugd2lsbCBuZWVkIHJldmlzaXRpbmcgdGhlIGVtdWxhdGlvbiBhbmQg
cHV0IG1hbnkNCm1vcmUgcmVnaXN0ZXJzIHVuZGVyIFhlbidzIGNvbnRyb2wNCj4NCj4gUmVnYXJk
cywgUm9nZXIuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 09:20:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 09:20:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219826.380835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpxa-0005N6-Fa; Tue, 02 Nov 2021 09:20:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219826.380835; Tue, 02 Nov 2021 09:20:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhpxa-0005Ma-Bx; Tue, 02 Nov 2021 09:20:02 +0000
Received: by outflank-mailman (input) for mailman id 219826;
 Tue, 02 Nov 2021 09:20:01 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hRh8=PV=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhpxZ-0005Ah-97
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 09:20:01 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5b64afd7-080d-4895-b7b8-91adfe565071;
 Tue, 02 Nov 2021 09:20:00 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id F41AD1FD75;
 Tue,  2 Nov 2021 09:19:58 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id B316213BAA;
 Tue,  2 Nov 2021 09:19:58 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id IihJKr4CgWG2fgAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 02 Nov 2021 09:19:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b64afd7-080d-4895-b7b8-91adfe565071
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635844799; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=6Lc7Goygk5VwSWDn5qxlt2rJEPVKdXkQNXP9nghaPrU=;
	b=btySieH8OaU+6gORF4X44B5hnvB+XnszYnE8YsP3dCXgxJTajhML2MeWp3Kfg3CRs1iedR
	jKsl9tN0xl1e6UGW81USzJlUmElu99Ddsw4ZuOq0dV8oUwTOPdHGmRQ3B4Eg7225I9BbJQ
	iUum4rbjB/BlTmt/T9kCRwMjKiiKJTM=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	stable@vger.kernel.org,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4] xen/balloon: add late_initcall_sync() for initial ballooning done
Date: Tue,  2 Nov 2021 10:19:44 +0100
Message-Id: <20211102091944.17487-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When running as PVH or HVM guest with actual memory < max memory the
hypervisor is using "populate on demand" in order to allow the guest
to balloon down from its maximum memory size. For this to work
correctly the guest must not touch more memory pages than its target
memory size as otherwise the PoD cache will be exhausted and the guest
is crashed as a result of that.

In extreme cases ballooning down might not be finished today before
the init process is started, which can consume lots of memory.

In order to avoid random boot crashes in such cases, add a late init
call to wait for ballooning down having finished for PVH/HVM guests.

Warn on console if initial ballooning fails, panic() after stalling
for more than 3 minutes per default. Add a module parameter for
changing this timeout.

Cc: <stable@vger.kernel.org>
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- add warning and panic() when stalling (Marek Marczykowski-Górecki)
- don't wait if credit > 0
V3:
- issue warning only after ballooning failed (Marek Marczykowski-Górecki)
- make panic() timeout configurable via parameter
V4:
- fix boot parameter (Boris Ostrovsky)
- set new state directly in update_schedule() (Boris Ostrovsky)
---
 .../admin-guide/kernel-parameters.txt         |  7 ++
 drivers/xen/balloon.c                         | 86 ++++++++++++++-----
 2 files changed, 70 insertions(+), 23 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 43dc35fe5bc0..1396fd2d9031 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -6349,6 +6349,13 @@
 			improve timer resolution at the expense of processing
 			more timer interrupts.
 
+	xen.balloon_boot_timeout= [XEN]
+			The time (in seconds) to wait before giving up to boot
+			in case initial ballooning fails to free enough memory.
+			Applies only when running as HVM or PVH guest and
+			started with less memory configured than allowed at
+			max. Default is 180.
+
 	xen.event_eoi_delay=	[XEN]
 			How long to delay EOI handling in case of event
 			storms (jiffies). Default is 10.
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 3a50f097ed3e..3a661b7697d4 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -58,6 +58,7 @@
 #include <linux/percpu-defs.h>
 #include <linux/slab.h>
 #include <linux/sysctl.h>
+#include <linux/moduleparam.h>
 
 #include <asm/page.h>
 #include <asm/tlb.h>
@@ -73,6 +74,12 @@
 #include <xen/page.h>
 #include <xen/mem-reservation.h>
 
+#undef MODULE_PARAM_PREFIX
+#define MODULE_PARAM_PREFIX "xen."
+
+static uint __read_mostly balloon_boot_timeout = 180;
+module_param(balloon_boot_timeout, uint, 0444);
+
 static int xen_hotplug_unpopulated;
 
 #ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
@@ -125,12 +132,12 @@ static struct ctl_table xen_root[] = {
  * BP_ECANCELED: error, balloon operation canceled.
  */
 
-enum bp_state {
+static enum bp_state {
 	BP_DONE,
 	BP_WAIT,
 	BP_EAGAIN,
 	BP_ECANCELED
-};
+} balloon_state = BP_DONE;
 
 /* Main waiting point for xen-balloon thread. */
 static DECLARE_WAIT_QUEUE_HEAD(balloon_thread_wq);
@@ -199,18 +206,15 @@ static struct page *balloon_next_page(struct page *page)
 	return list_entry(next, struct page, lru);
 }
 
-static enum bp_state update_schedule(enum bp_state state)
+static void update_schedule(void)
 {
-	if (state == BP_WAIT)
-		return BP_WAIT;
-
-	if (state == BP_ECANCELED)
-		return BP_ECANCELED;
+	if (balloon_state == BP_WAIT || balloon_state == BP_ECANCELED)
+		return;
 
-	if (state == BP_DONE) {
+	if (balloon_state == BP_DONE) {
 		balloon_stats.schedule_delay = 1;
 		balloon_stats.retry_count = 1;
-		return BP_DONE;
+		return;
 	}
 
 	++balloon_stats.retry_count;
@@ -219,7 +223,8 @@ static enum bp_state update_schedule(enum bp_state state)
 			balloon_stats.retry_count > balloon_stats.max_retry_count) {
 		balloon_stats.schedule_delay = 1;
 		balloon_stats.retry_count = 1;
-		return BP_ECANCELED;
+		balloon_state = BP_ECANCELED;
+		return;
 	}
 
 	balloon_stats.schedule_delay <<= 1;
@@ -227,7 +232,7 @@ static enum bp_state update_schedule(enum bp_state state)
 	if (balloon_stats.schedule_delay > balloon_stats.max_schedule_delay)
 		balloon_stats.schedule_delay = balloon_stats.max_schedule_delay;
 
-	return BP_EAGAIN;
+	balloon_state = BP_EAGAIN;
 }
 
 #ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
@@ -494,9 +499,9 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
  * Stop waiting if either state is BP_DONE and ballooning action is
  * needed, or if the credit has changed while state is not BP_DONE.
  */
-static bool balloon_thread_cond(enum bp_state state, long credit)
+static bool balloon_thread_cond(long credit)
 {
-	if (state == BP_DONE)
+	if (balloon_state == BP_DONE)
 		credit = 0;
 
 	return current_credit() != credit || kthread_should_stop();
@@ -510,13 +515,12 @@ static bool balloon_thread_cond(enum bp_state state, long credit)
  */
 static int balloon_thread(void *unused)
 {
-	enum bp_state state = BP_DONE;
 	long credit;
 	unsigned long timeout;
 
 	set_freezable();
 	for (;;) {
-		switch (state) {
+		switch (balloon_state) {
 		case BP_DONE:
 		case BP_ECANCELED:
 			timeout = 3600 * HZ;
@@ -532,7 +536,7 @@ static int balloon_thread(void *unused)
 		credit = current_credit();
 
 		wait_event_freezable_timeout(balloon_thread_wq,
-			balloon_thread_cond(state, credit), timeout);
+			balloon_thread_cond(credit), timeout);
 
 		if (kthread_should_stop())
 			return 0;
@@ -543,22 +547,23 @@ static int balloon_thread(void *unused)
 
 		if (credit > 0) {
 			if (balloon_is_inflated())
-				state = increase_reservation(credit);
+				balloon_state = increase_reservation(credit);
 			else
-				state = reserve_additional_memory();
+				balloon_state = reserve_additional_memory();
 		}
 
 		if (credit < 0) {
 			long n_pages;
 
 			n_pages = min(-credit, si_mem_available());
-			state = decrease_reservation(n_pages, GFP_BALLOON);
-			if (state == BP_DONE && n_pages != -credit &&
+			balloon_state = decrease_reservation(n_pages,
+							     GFP_BALLOON);
+			if (balloon_state == BP_DONE && n_pages != -credit &&
 			    n_pages < totalreserve_pages)
-				state = BP_EAGAIN;
+				balloon_state = BP_EAGAIN;
 		}
 
-		state = update_schedule(state);
+		update_schedule();
 
 		mutex_unlock(&balloon_mutex);
 
@@ -765,3 +770,38 @@ static int __init balloon_init(void)
 	return 0;
 }
 subsys_initcall(balloon_init);
+
+static int __init balloon_wait_finish(void)
+{
+	long credit, last_credit = 0;
+	unsigned long last_changed = 0;
+
+	if (!xen_domain())
+		return -ENODEV;
+
+	/* PV guests don't need to wait. */
+	if (xen_pv_domain() || !current_credit())
+		return 0;
+
+	pr_info("Waiting for initial ballooning down having finished.\n");
+
+	while ((credit = current_credit()) < 0) {
+		if (credit != last_credit) {
+			last_changed = jiffies;
+			last_credit = credit;
+		}
+		if (balloon_state == BP_ECANCELED) {
+			pr_warn_once("Initial ballooning failed, %ld pages need to be freed.\n",
+				     -credit);
+			if (jiffies - last_changed >= HZ * balloon_boot_timeout)
+				panic("Initial ballooning failed!\n");
+		}
+
+		schedule_timeout_interruptible(HZ / 10);
+	}
+
+	pr_info("Initial ballooning down finished.\n");
+
+	return 0;
+}
+late_initcall_sync(balloon_wait_finish);
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 09:22:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 09:22:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219834.380847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhq06-0006WO-Pm; Tue, 02 Nov 2021 09:22:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219834.380847; Tue, 02 Nov 2021 09:22:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhq06-0006W1-MK; Tue, 02 Nov 2021 09:22:38 +0000
Received: by outflank-mailman (input) for mailman id 219834;
 Tue, 02 Nov 2021 09:22:37 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hRh8=PV=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhq05-0006Vv-Su
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 09:22:37 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 6aab037c-3bbe-11ec-8553-12813bfff9fa;
 Tue, 02 Nov 2021 09:22:36 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id E11D221639;
 Tue,  2 Nov 2021 09:22:35 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id B76F013BAA;
 Tue,  2 Nov 2021 09:22:35 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id D2KPK1sDgWHZfwAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 02 Nov 2021 09:22:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6aab037c-3bbe-11ec-8553-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635844955; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=wjUVlYSScgX+OmSU5aFm2lY0ZdVm0SHe4hr+4+EhpKA=;
	b=Fq6gsuUWwTEs4RqfwQozDhHZplDrV2RJIwElae0+AgPb6Yul0eRSO/tR+pfvpt8ayvJPJM
	ouZzVufSVYz/WBm+RWlOHcRxaj0mIqA4xXfpYAtix+dvJwKhdOBHXMdLAGr65bb+gjYUv1
	kR+LUkAZP0xrkHq26uLJL+TO54wRrE0=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2] xen/balloon: rename alloc/free_xenballooned_pages
Date: Tue,  2 Nov 2021 10:22:34 +0100
Message-Id: <20211102092234.17852-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

alloc_xenballooned_pages() and free_xenballooned_pages() are used as
direct replacements of xen_alloc_unpopulated_pages() and
xen_free_unpopulated_pages() in case CONFIG_XEN_UNPOPULATED_ALLOC isn't
defined.

Guard both functions with !CONFIG_XEN_UNPOPULATED_ALLOC and rename them
to the xen_*() variants they are replacing. This allows to remove some
ifdeffery from the xen.h header file. Adapt the prototype of the
functions to match.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- adapt prototypes (kernel test robot)
---
 drivers/xen/balloon.c | 24 +++++++++++++-----------
 include/xen/balloon.h |  3 ---
 include/xen/xen.h     |  6 ------
 3 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 3a661b7697d4..7b692636fad6 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -580,7 +580,8 @@ void balloon_set_new_target(unsigned long target)
 }
 EXPORT_SYMBOL_GPL(balloon_set_new_target);
 
-static int add_ballooned_pages(int nr_pages)
+#ifndef CONFIG_XEN_UNPOPULATED_ALLOC
+static int add_ballooned_pages(unsigned int nr_pages)
 {
 	enum bp_state st;
 
@@ -608,14 +609,14 @@ static int add_ballooned_pages(int nr_pages)
 }
 
 /**
- * alloc_xenballooned_pages - get pages that have been ballooned out
+ * xen_alloc_unpopulated_pages - get pages that have been ballooned out
  * @nr_pages: Number of pages to get
  * @pages: pages returned
  * @return 0 on success, error otherwise
  */
-int alloc_xenballooned_pages(int nr_pages, struct page **pages)
+int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
 {
-	int pgno = 0;
+	unsigned int pgno = 0;
 	struct page *page;
 	int ret;
 
@@ -650,7 +651,7 @@ int alloc_xenballooned_pages(int nr_pages, struct page **pages)
 	return 0;
  out_undo:
 	mutex_unlock(&balloon_mutex);
-	free_xenballooned_pages(pgno, pages);
+	xen_free_unpopulated_pages(pgno, pages);
 	/*
 	 * NB: free_xenballooned_pages will only subtract pgno pages, but since
 	 * target_unpopulated is incremented with nr_pages at the start we need
@@ -659,16 +660,16 @@ int alloc_xenballooned_pages(int nr_pages, struct page **pages)
 	balloon_stats.target_unpopulated -= nr_pages - pgno;
 	return ret;
 }
-EXPORT_SYMBOL(alloc_xenballooned_pages);
+EXPORT_SYMBOL(xen_alloc_unpopulated_pages);
 
 /**
- * free_xenballooned_pages - return pages retrieved with get_ballooned_pages
+ * xen_free_unpopulated_pages - return pages retrieved with get_ballooned_pages
  * @nr_pages: Number of pages
  * @pages: pages to return
  */
-void free_xenballooned_pages(int nr_pages, struct page **pages)
+void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
 {
-	int i;
+	unsigned int i;
 
 	mutex_lock(&balloon_mutex);
 
@@ -685,9 +686,9 @@ void free_xenballooned_pages(int nr_pages, struct page **pages)
 
 	mutex_unlock(&balloon_mutex);
 }
-EXPORT_SYMBOL(free_xenballooned_pages);
+EXPORT_SYMBOL(xen_free_unpopulated_pages);
 
-#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
+#if defined(CONFIG_XEN_PV)
 static void __init balloon_add_region(unsigned long start_pfn,
 				      unsigned long pages)
 {
@@ -710,6 +711,7 @@ static void __init balloon_add_region(unsigned long start_pfn,
 	balloon_stats.total_pages += extra_pfn_end - start_pfn;
 }
 #endif
+#endif
 
 static int __init balloon_init(void)
 {
diff --git a/include/xen/balloon.h b/include/xen/balloon.h
index 6dbdb0b3fd03..e93d4f0088c5 100644
--- a/include/xen/balloon.h
+++ b/include/xen/balloon.h
@@ -26,9 +26,6 @@ extern struct balloon_stats balloon_stats;
 
 void balloon_set_new_target(unsigned long target);
 
-int alloc_xenballooned_pages(int nr_pages, struct page **pages);
-void free_xenballooned_pages(int nr_pages, struct page **pages);
-
 #ifdef CONFIG_XEN_BALLOON
 void xen_balloon_init(void);
 #else
diff --git a/include/xen/xen.h b/include/xen/xen.h
index 43efba045acc..9f031b5faa54 100644
--- a/include/xen/xen.h
+++ b/include/xen/xen.h
@@ -52,13 +52,7 @@ bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
 extern u64 xen_saved_max_mem_size;
 #endif
 
-#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
 int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
 void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
-#else
-#define xen_alloc_unpopulated_pages alloc_xenballooned_pages
-#define xen_free_unpopulated_pages free_xenballooned_pages
-#include <xen/balloon.h>
-#endif
 
 #endif	/* _XEN_XEN_H */
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 09:23:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 09:23:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219824.380857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhq0n-00079U-7A; Tue, 02 Nov 2021 09:23:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219824.380857; Tue, 02 Nov 2021 09:23:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhq0n-00079N-4D; Tue, 02 Nov 2021 09:23:21 +0000
Received: by outflank-mailman (input) for mailman id 219824;
 Tue, 02 Nov 2021 09:19:53 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5FfJ=PV=linux.alibaba.com=laijs@srs-us1.protection.inumbo.net>)
 id 1mhpxQ-00059w-VP
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 09:19:52 +0000
Received: from out30-132.freemail.mail.aliyun.com (unknown [115.124.30.132])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 0784807a-3bbe-11ec-8553-12813bfff9fa;
 Tue, 02 Nov 2021 09:19:51 +0000 (UTC)
Received: from 30.22.113.90(mailfrom:laijs@linux.alibaba.com
 fp:SMTPD_---0UujaEY1_1635844786) by smtp.aliyun-inc.com(127.0.0.1);
 Tue, 02 Nov 2021 17:19:47 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0784807a-3bbe-11ec-8553-12813bfff9fa
X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R111e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04400;MF=laijs@linux.alibaba.com;NM=1;PH=DS;RN=14;SR=0;TI=SMTPD_---0UujaEY1_1635844786;
Message-ID: <d4ae23dd-377e-8316-909b-d5bdeacc0904@linux.alibaba.com>
Date: Tue, 2 Nov 2021 17:19:46 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH V4 04/50] x86/xen: Add
 xenpv_restore_regs_and_return_to_usermode()
Content-Language: en-US
To: Borislav Petkov <bp@alien8.de>, Lai Jiangshan <jiangshanlai@gmail.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
 Jan Beulich <jbeulich@suse.com>, Thomas Gleixner <tglx@linutronix.de>,
 Juergen Gross <jgross@suse.com>, Peter Anvin <hpa@zytor.com>,
 xen-devel@lists.xenproject.org, Andy Lutomirski <luto@kernel.org>,
 Ingo Molnar <mingo@redhat.com>, Dave Hansen <dave.hansen@linux.intel.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20211026141420.17138-1-jiangshanlai@gmail.com>
 <20211026141420.17138-5-jiangshanlai@gmail.com> <YYD9ohN2Zcy4EdMb@zn.tnic>
From: Lai Jiangshan <laijs@linux.alibaba.com>
In-Reply-To: <YYD9ohN2Zcy4EdMb@zn.tnic>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 2021/11/2 16:58, Borislav Petkov wrote:

>>   	 */
>>   
>> -	ALTERNATIVE "", "jmp	swapgs_restore_regs_and_return_to_usermode", \
>> +	ALTERNATIVE "", "jmp xenpv_restore_regs_and_return_to_usermode", \
> 
> Instead of sprinkling all those ALTERNATIVE calls everywhere,
> why don't you simply jump to the xenpv-one at the
> swapgs_restore_regs_and_return_to_usermode label itself and have a
> single ALTERNATIVE there?
> 

It will add a 5-byte NOP at the beginning of the native
swapgs_restore_regs_and_return_to_usermode.  I avoided adding unneeded
code in the native code even if it is NOPs and avoided melting xenpv-one into
the native one which will reduce the code readability.

I will follow your preference since a 5-byte NOP is so negligible in the slow
path with an iret instruction.

Or other option that adds macros to wrap the ALTERNATIVE.
RESTORE_REGS_AND_RETURN_TO_USERMODE and
COND_RESTORE_REGS_AND_RETURN_TO_USERMODE (test %eax before jmp in native case)




From xen-devel-bounces@lists.xenproject.org Tue Nov 02 09:32:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 09:32:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219849.380872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhq9O-0000Dh-6W; Tue, 02 Nov 2021 09:32:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219849.380872; Tue, 02 Nov 2021 09:32:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhq9O-0000Da-2B; Tue, 02 Nov 2021 09:32:14 +0000
Received: by outflank-mailman (input) for mailman id 219849;
 Tue, 02 Nov 2021 09:32:12 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhq9L-0000DU-UY
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 09:32:11 +0000
Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id c0b7e23e-3bbf-11ec-8553-12813bfff9fa;
 Tue, 02 Nov 2021 09:32:10 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0b7e23e-3bbf-11ec-8553-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635845530;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=lnFy/6nMka9TH5+76jPpzTqtqizN0T0POTurOXjuF7s=;
  b=QMo/h2SMChJAL+XdLUx+satT1w0ra9jQHA7Mx2XCTJjKj5PoNC5d7H7m
   ZcL18inYiIxdvLJWGBNEeii36VM867W0K0kiTKqqfMC7lEMIkRzKAQjec
   EzzM0WYiplf7f8P7mUsj78HpzO0v/AgDlGBuZ8YV+m/RtbzfUFk2QFf2S
   Q=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: nvEN43kiGKYOOMCHpw5yPuxDuEygdWKZ2zPojRXFjDxhDY2Mvz0/GOchmL5w1pZiNOZzxh7qq/
 Sq4lklcBKX/WdnF0EHKG24JfLkw3sytP4cW50yC4ci7xf0MVOCy4f+BuwWkM/9nTNNlWrGiHj8
 2VvlK82H8tpctYP/ZN3c54YNdMOaXpG25h1dsw60eBPaNG8fObnhIu/TGhqKRkh32SS+nseo8R
 0FI7PUBBZKeywDItYfTmlzp0PQpf5q6GBG++qOK8MkNO470IZC4rMPa7yP3thgd2BLeYd4OXug
 qvMrFgsK94xhiWjvHzGYDW9R
X-SBRS: 5.1
X-MesageID: 58793804
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:wp5gtqgbWcR3rbZjif0vj/aoX1610RcKZh0ujC45NGQN5FlHY01je
 htvXT/QOfeDYWv8L94nO4u/8kME6pOHzN8yTFY/qHsxRnsb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cw24Dga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /0KqLqvexoEM5aUgeQSdARYFgB6BKhvreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t1p8fRqaGO
 6L1bxJ3cwbCMg9fMWw1M5J9h+qqqmnZUQ1H/Qf9Sa0fvDGIkV0ZPKLWGMHOZtWASMFRn0CZj
 mHL5WL0BlcdLtP34SCM8m+owPTOmyz7cIsIEfuz8fsCqE2ewCkfBQMbUXO/oOKlkQiuVtRHM
 UsW9yEy668o+ySDad3wXAaxpnKeiTcaV8BNCO0x6AyLya387h6QAy4PSTspQN47sM47QxQ62
 1nPmMnmbRRlvaeJU3ub+vGRpCmrJCkOBWYYYGkPSg5t3jX4iNht1FSVFI8lSfPryI2ucd3t/
 9yUhG8joaohkOMG7P2i/V/gnjKph5zwSydgs207QVmZxg9+YYekYamh5l7a8etMIe6lc7WRg
 JQXs5PAtb5TVPlhgATIGbxQR+/xu55pJRWF2QY3d6TN4QhB7JJKkWp4xDhlbHlkPc8fEdMCS
 B+C4FgBjHO/0ZbDUEOWX25TI5h6pUQDPY68PhwxUjaoSsIoHONg1Ho2DXN8J0i3zCARfVgXY
 P93i/qEA3cAErhAxzGrXeob2rJD7nlgnj6MFMqjkE79iOb2iJuppVEtagLmggcRt/vsneko2
 4wHa5viJ+t3CbWWjtbrHX47cglRcClT6WHeoM1LbO+TSjeK60l6Y8I9NYgJItQ/94wMz7+g1
 ijkBidwlQqu7VWaeF7iQi0yN9vSsWNX8CtT0doEZg3zhRDOoO+Hsc8iSnfAVeB8qbE4kqIsF
 5HouayoW5xyd9gOwBxEBbHVp41+bhW7wwWIOiuuej8keJB8AQfO/7fZksHHrUHi1wK76pkzp
 aOOzATeTcZRTghuFp+OOvmu00mwrT4Wn+crBxnEJdxaeUPN9ol2KnOu0q9rcp9UcRiTlCGH0
 wu2AAsDobWfqYEC79SU17uPqJ2kErUiExMCTXXb97u/KQLT4nGnnd1bSO+NcD2EDDH09ayua
 P971fb5NPFbzl9Gv5AlS+RgzL4k5suprLhfl1w2EHLOZlWtK7VhPnjZgpUf6vwTnudU4FLkV
 FiO999WPaSyFPnkSFNBdhA4aumj1O0PnmWA5/oCP0intjR8+6CKUBsOMkDU2jBdNrZ8LKgs3
 fwl5JwN8wW6hxcnboSGgyRT+zjeJ3AMSfx65JQTAYutgQs30FBSJ5fbD3ausp2IbtxNNGgsI
 yOV2/We1+gNmBKafiphD2XJ0MpcmY8K6UJDw1I1LliUnsbI260s1xpL/DVrFglYw32rCQ6o1
 rSH46GtGZizwg==
IronPort-HdrOrdr: A9a23:Wc1SIqAGITTkE0vlHeg2sceALOsnbusQ8zAXPh9KJiC9I/b1qy
 nxppkmPH/P6Qr4WBkb6Le90Y27MAnhHPlOkPQs1NaZLXLbUQ6TQr2KgrGSoQEIdxeOk9K1kJ
 0QD5SWa+eAfGSS7/yKmTVQeuxIqLLskNHK9JfjJjVWPHlXgslbnnlE422gYytLrWd9dP4E/M
 323Ls5m9PsQwVcUu2LQl0+G8TTrdzCk5zrJTYAGh4c8QGLyRel8qTzHRS01goXF2on+8ZvzU
 H11yjCoomzufCyzRHRk0fV8pRtgdPkjv9OHtaFhMQ5IijlziyoeINicbufuy1dmpDj1H8a1P
 335zswNcV67H3cOkmzvBvWwgHllA0j7nfzoGXoyEfLkIjcfnYXGsBBjYVWfl/y8Ew7puxx16
 pNwiawq4dXJQmoplW92/H4EzVR0makq3srluAey1ZFV5EFVbNXpYsDuGtIDZY7Gj7g4oxPKp
 ghMCjl3ocUTbqmVQGagoE2q+bcG0jbXy32DXTqg/blkwS/xxtCvg8lLM92pAZ3yHtycegC2w
 3+CNUbqFh5dL5gUUtMPpZzfSKJMB25ffvtChPbHb21LtBNB5ryw6SHlIndotvaPqA18A==
X-IronPort-AV: E=Sophos;i="5.87,202,1631592000"; 
   d="scan'208";a="58793804"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=A+PO9Pi4+Utu0++DEDXL5Aa0ApNGgbmIqQwVDE4b6H4cUaq/zgWtXVy1H5K/KUqSOIbNg3dzvOrntO4t1qa8aaUMQc12E/b9bBZYbFKyf5zX458BJw1eNPDx4WU50WYkjg/OWMLxxVgNUHJX2QRHVdpGzmewNAN81DHp71B2KJP/6hh3XJuq/kg4KgwBjr0MthA7eVp3oEb5Z3ueyUBkTtLuvrMXyMzEhyHxv7Mfmrhmji8T8drvC+9p6hPLtJAta16KCTu+jb0q4zL9OxJY0Tofy6hp99BtRNfE0H9VFHR2II6TnhndsTfCobXJz96VQZSXTPNXu5l4cfRwLWAc+w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v3AnRFwkrlq0U9ks2qadyGRXD36GeyiCQyvDp6bHxig=;
 b=Y7IFDRKB/YWBXOw/GcHyqxchiNBvLSWHEwkDZCKlZZRf36SvqJAWHr+2QKMX/yVdHh/q3JR66EGXuK0ll53WkgxI1EAUIbnnmANO593KI2auMWvTs2/+eWXCnPAHZdHpYKQZDV83RXH1nbs9Sa4yRQ6D2cyN8YXkl0jzlFzfo+0cBSum+42lOTBG50279g6Cbth46dBCjVoAMG3ue/tNUj6UjbpoiLHm+TbcE/48P+KMR2t/ixSJoE0D1Q9/eT4bOqXGsiYX7KZOb3E6XI7xYuIyPytv7ioWAW/y0gw+w8ZB+p7SmIWOqU5TrX80OtAEryqDb72/HpqYhK9959Fdww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v3AnRFwkrlq0U9ks2qadyGRXD36GeyiCQyvDp6bHxig=;
 b=Hkt3SEGhJicV0t7hmVrSZ1N6TaQKLsJZrjE/0Kp5ndmB2Jjb/vtFqUBEQTOS13xkIwQj2KaGZhuM2Z2msTuQPjbx0Q9yrC4K4bF5i2Tpm7P1XO5kekV9baI1yfj8dM7AMt2WgmAEUpEU2cuE2QfZWmeysVDyBOico0l80Mn4yiw=
Date: Tue, 2 Nov 2021 10:32:03 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, Rahul Singh <rahul.singh@arm.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Message-ID: <YYEFk2WrT/bM+uQp@Air-de-Roger>
References: <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <YXqnS7iZUvokJby6@Air-de-Roger>
 <3206478e-f230-cd91-5de9-85ef6c251405@epam.com>
 <YXrJyLMiMxaNmFAs@Air-de-Roger>
 <5de6c2f1-ef5c-9d8c-4287-9b0e3ff08b34@epam.com>
 <YXuj4frtHIRuSgOO@Air-de-Roger>
 <0ba7aa82-40bc-c0d3-38a2-8c4d141d0afd@epam.com>
 <YYD7VmDGKJRkid4a@Air-de-Roger>
 <adb55c2f-220f-c660-e86b-13868568cbf0@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <adb55c2f-220f-c660-e86b-13868568cbf0@epam.com>
X-ClientProxiedBy: MR2P264CA0001.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::13) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2ee1e5b4-4184-489c-f4bd-08d99de3a393
X-MS-TrafficTypeDiagnostic: DM6PR03MB5354:
X-Microsoft-Antispam-PRVS: <DM6PR03MB5354CAEFA6E3C7BB4211A90C8F8B9@DM6PR03MB5354.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: TgJpvYcJwZdMhVrJkAdR2HnOnvSdm9zEfQ+hnt5iS9uz1/fdqvympaCs8BsZ5SsmMPY9GjHq9050F/Ox5y7ae0r7/GFLFn40DUpnrwH6fIPLphtwbmyZJ6r9m9XNuww4GU8CNg9vJJ2uX7Pzjvc3F922k4/S3O3Sr57t2b/YIXoBdpLg1QQdAgYx+IYGUHeSC8pUBjoUSG9Mr/Fc/y7hWo9Pj7f9lCpJGmnLZs2oOtwhe0XL57vPz1Jeg/jMy+o0A8CupIf+14OVQK5dWv38TgxL8OlX6U4wjyVoaWuDRSuHFPf3aYa2tezTrfqFgtys2fu4FZ7Jd8dBOTiD2k0IAcdl6LJCXRkXb1kRP49hFHnUoRhnpXyJJbrvfjdGSaOv33SAtnXpxFtWafppmja4TUcwhP922YowdBGKMFbPXXCP3CdKlYPvv3zbs8Yrrj0tkgum9cix9FV1WYE2Bm9DosDaMcYOFdRNExccta0LBnh9GXKmxUcq+BJQmOHBj4dH0tyTPB2pf2udk3+88ayxPcGcMwdeuzzllf4yik3yfHIt1iNLItDn29/e2PDv1cZyeS07GMoaV39M+yQTswr0xtKTvuxLt2HDzSr2YGSUEDUs1BsFUd5inNXsLYTgPF0VCNxcHYzqJUxUaeaRhwwiaA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(956004)(38100700002)(66556008)(66476007)(53546011)(66946007)(85182001)(2906002)(26005)(82960400001)(83380400001)(186003)(33716001)(6666004)(508600001)(6916009)(54906003)(8676002)(9686003)(86362001)(4326008)(6486002)(8936002)(6496006)(5660300002)(316002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z082UVBIUDNOOFJqVUkyc0pENHhWY2RqeVdKbEVaalYrdDVwZGxwYmFUL2Y5?=
 =?utf-8?B?U21hWjRqajZvTDY2bCthMkxKck05ZzNuQzBEVUdOQkZ0QmJNVUlFTU5VTlRM?=
 =?utf-8?B?VnNoOWhiN2xsUVVzNFJ5cEYwZ0NGUnFyaVRYRGRhNWV5cWVXQWk0dWlMam9G?=
 =?utf-8?B?Titic2FZR1VLUmhIeXd1NDBscmd6WVFRckJuZFdRclp4QzFSR1Fld0pJaEUx?=
 =?utf-8?B?MjlWdkFuUzQwQnNSWnkvS2RSb1RrYTUvQnQva3hrWlp2VnpsY0FOTWRCNVdo?=
 =?utf-8?B?WTVnMHl3M0RabFJQRGlsTUZUZ1hoTWJVdXhPVXdXMHNpL0gxQk9Zb0VSVDJj?=
 =?utf-8?B?NFM4UncrUjczK3Zkb01Kd2pob3BNMDhMVkRZZTQzV0xNM3gyNWRJVWRXMzUw?=
 =?utf-8?B?QmR1blJHeXhSODJoSVpCdUthQlR0M3A3elM2TjJucDZ4S3Z3MmRsdnlHSjhU?=
 =?utf-8?B?YnlRZHptdVNNamNSRHZudGNFUmx5cThzMGlsZUt0ZzZmYmVTS3JuNFRuMGpx?=
 =?utf-8?B?ZFBCc3owU1hsVktHcUZKT3JlRVlvWEhzN1BhSWkrWkt2aUp5ZVhkYTFJMWw4?=
 =?utf-8?B?OWRGZzFLbmJsZFRIT2k3Y0QrVXZYRkw5MXkwSFJFM1Rpb0FldnRyV2VhUzNE?=
 =?utf-8?B?QUNIbUx4b09MYVYxQ3l1ZW0rWEVGZVIyNHFuc3hIRFlTempBcERpaXVKcHR4?=
 =?utf-8?B?Z1J2QlVrTldTaWlwdTB3Ym1Wc09ZYW9EcVdHYjM3OGFmUWtYejl4SVRsdUd0?=
 =?utf-8?B?QXlIUFFyUG83TElZRTNnK2RIQkRySmJnQmZPOVIvNG45T09yTHltb1JRcHd4?=
 =?utf-8?B?engydW5GWkVZcVpROFZ5UWFkbUVncGZSQzdUMEM5VExSTkxFVVI1L1JFVjJL?=
 =?utf-8?B?V0JVbStjbjV1WktCMXdzSE1lN2xDMjF2NjJoL0RDTlZWQStWZnhsYnROSlBC?=
 =?utf-8?B?NXVaTUV6Z29oaDFpNGllcUlwa25Za3A3b09PWHR6V0JOQ0ZQOVV5blphNENL?=
 =?utf-8?B?OXVtUkJqS3NYQk9WTmpyZHB1UWVDa0EyeUUyS21nc1Uyb0ZDRVUxQmJ0bGpm?=
 =?utf-8?B?V2I4UjlwbDRrT1Q2Tmo5ei9mOU91UXpQK0tJMTZkUUN3ajlWZGo2bWRJVDA1?=
 =?utf-8?B?YitnRXNoSExFUFBJQTNyZDEzMmgzYWJEbytpVGdWV3piZEtNdmkydXFjSlBq?=
 =?utf-8?B?dEdETkFndzBxLzNtbFlKdVdoMnJSZ2tDd015cmJQZFAyTDhaUHF1Nk1zRlE5?=
 =?utf-8?B?N2ZqeEdCUVpya2dGRjZzZEwzR0dXK2IwNlV3MGFST0RsSjVhSm5CcWJVRFRu?=
 =?utf-8?B?R1YwK1Q0dWM5Z3JQKzQ4WnVmR2xFQnV2NXZTS3NEMWU5UHFWUXZUT0tET2Fy?=
 =?utf-8?B?cFZTdjB1TUdJczcvZk82NC9IMnlmd0ZIa2VodTRBa0xoUnQwaG9UL0xGOFhv?=
 =?utf-8?B?b1BqZUhSaUczSWlieFdvTnVxOVRUS3RBM0Y3TVhHOVgyT2ZERElFZzJpaGFB?=
 =?utf-8?B?MEQycm1rb1p0S1Y1dzhoSTJXZHVhUk10Ym0ydGpSdjU5MXlSdnVoRmtESGU5?=
 =?utf-8?B?dmJJa1VtWmFpV1BzRm53d2V1TXpiNTg2M0tvZEVFK0liaHpic1BWaGVteTBq?=
 =?utf-8?B?andoZzQ4d2hRRnB0SXM3SUdxbXhZYzFiQU8rYmgxMHhPZ3Brbzl3UmV0Y3d1?=
 =?utf-8?B?OC84bUJ2QVhqL0hiV1NUblZLYTFpditjdk91YklzS01na0RZcXFzdytwMzE1?=
 =?utf-8?B?QTRBZ1BsNGMrdGhRZzY3a2dUYjk5Y1NGUVlBb2lTSEwxWUhSRElmYmpMMElx?=
 =?utf-8?B?NjFnSTVWQXNlN0JwSUJ6NzR6NnoyaDhZa3JrSmlpSFFSbkFMbU03TUZhZ1o3?=
 =?utf-8?B?ZmtDNmszM0RlVEFrMXkrM3JidXd3RTZOQy8zYlJWM1BvWFo1OEtqVVdiOHIy?=
 =?utf-8?B?dXFsOU5ETjdoNTYxVngxN1RpUFU2YjNsdnRXQkI3YmVnQk5PdjQ3VGJwbUg5?=
 =?utf-8?B?Z3U1WFdYeTlselF6WGhNaUZ2Wk02WXowTG1UdkxVWExzNXVvVjNQNDVPRU9G?=
 =?utf-8?B?RlVmSU1LbXJkQWxaZ0hmMmlFcVFUamdvcFhzS2hnTmM1dHoxMCswVkh5cklw?=
 =?utf-8?B?UkRZUWs1NzRsMmVFQ2xEc2dQS1ZNM2FTNEloS2hjV001cmkrckhZMEN1Y3Nl?=
 =?utf-8?Q?qbIN9ewnwezirg1Y6G5mXxk=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ee1e5b4-4184-489c-f4bd-08d99de3a393
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 09:32:07.8220
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fvAM0kwX4XeL+KfG4JdCZyGAs8p229smIhu+QxVCAzX3hz5ZqWYJHm7A47G0e1cvmNUJa7FE/nY93LmnN1iDTA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5354
X-OriginatorOrg: citrix.com

On Tue, Nov 02, 2021 at 09:07:56AM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 02.11.21 10:48, Roger Pau Monné wrote:
> > On Mon, Nov 01, 2021 at 06:14:40AM +0000, Oleksandr Andrushchenko wrote:
> >>
> >> On 29.10.21 10:33, Roger Pau Monné wrote:
> >>> On Thu, Oct 28, 2021 at 05:55:25PM +0000, Oleksandr Andrushchenko wrote:
> >>>> On 28.10.21 19:03, Roger Pau Monné wrote:
> >>>>> On Thu, Oct 28, 2021 at 02:23:34PM +0000, Oleksandr Andrushchenko wrote:
> >>>>>> On 28.10.21 16:36, Roger Pau Monné wrote:
> >>>>>>> And for domUs you really need to fix vpci_{read,write} to not
> >>>>>>> passthrough accesses not explicitly handled.
> >>>>>> Do you mean that we need to validate SBDFs there?
> >>>>>> This can be tricky if we have a use-case when a PCI device being
> >>>>>> passed through if not put at 0000:00:0.0, but requested to be, for
> >>>>>> example, 0000:0d:0.0. So, we need to go over the list of virtual
> >>>>>> devices and see if SBDF the guest is trying to access is a valid SBDF.
> >>>>>> Is this what you mean?
> >>>>> No, you need to prevent accesses to registers not explicitly handled
> >>>>> by vpci. Ie: do not forward unhandled accesses to
> >>>>> vpci_{read,wrie}_hw).
> >>>> I see, so those which have no handlers are not passed to the hardware.
> >>>> I need to see how to do that
> >>> Indeed. Without fixing that passthrough to domUs is completely unsafe,
> >>> as you allow domUs full access to registers not explicitly handled by
> >>> current vPCI code.
> >> Well, my understanding is: we can let the guest access whatever
> >> registers it wants with the following exceptions:
> >> - "special" registers we already trap in vPCI, e.g. command, BARs
> >> - we must not let the guest go out of the configuration space of a
> >> specific PCI device, e.g. prevent it from accessing configuration
> >> spaces of other devices.
> >> The rest accesses seem to be ok to me as we do not really want:
> >> - have handlers and emulate all possible registers
> >> - we do not want the guest to fail if it accesses a valid register which
> >> we do not emulate.
> > IMO that's not good from a security PoV. Xen needs to be sure that
> > every registers a guest accesses is not going to cause the system to
> > malfunction, so Xen needs to keep a list of the registers it's safe
> > for a guest to access.
> >
> > For example we should only expose the PCI capabilities that we know
> > are safe for a guest to use, ie: MSI and MSI-X initially. The rest of
> > the capabilities should be blocked from guest access, unless we audit
> > them and declare safe for a guest to access.
> >
> > As a reference you might want to look at the approach currently used
> > by QEMU in order to do PCI passthrough. A very limited set of PCI
> > capabilities known to be safe for untrusted access are exposed to the
> > guest, and registers need to be explicitly handled or else access is
> > rejected. We need a fairly similar model in vPCI or else none of this
> > will be safe for unprivileged access.
> I do agree with this. But at the moment we only emulate some of them,
> so in the future we will need revisiting the emulation and put many
> more registers under Xen's control

Indeed. That's my main point - there's still a lot of work to do
internally in vPCI in order to be safe for unprivileged guests to
use.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 09:32:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 09:32:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219852.380882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhq9y-0000lD-F9; Tue, 02 Nov 2021 09:32:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219852.380882; Tue, 02 Nov 2021 09:32:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhq9y-0000l6-C3; Tue, 02 Nov 2021 09:32:50 +0000
Received: by outflank-mailman (input) for mailman id 219852;
 Tue, 02 Nov 2021 09:32:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mhq9x-0000ku-HF
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 09:32:49 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mhq9u-0001eN-UW; Tue, 02 Nov 2021 09:32:46 +0000
Received: from [54.239.6.184] (helo=[192.168.7.68])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mhq9u-0007WS-O6; Tue, 02 Nov 2021 09:32:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=QFUH8Ot7Lw0F47LxOeZKGrzE5Nfbq0gLhq4KNdoXGhI=; b=CD4G+Q9PWpYX9tPkDn+BU7K0X9
	EYgvnNqJsY9KI9J/na3hBssYPTgfFLc8SgkQzb2dfru5Z/t/kEALj0IPeZtSqrOzqQmiNeugvZjKj
	gwREely2gYTbgw6XcVgZvTaBmHDimnGyHDpIX7tp37HQ71cj/yeWu5kc6ObCn4GeCQ1M=;
Message-ID: <61c76ed6-e9f2-f4ec-608c-d84bd0e73258@xen.org>
Date: Tue, 2 Nov 2021 09:32:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers [and
 2 more messages]
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Ian Jackson <iwj@xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211027082533.1406015-1-andr2000@gmail.com>
 <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <65886734-7333-4469-fcc1-6916db708f13@xen.org>
 <b6bb02b6-6358-b5e0-1b80-7819aadabe10@epam.com>
 <6d8f1061-7aec-2c1a-aaf4-c30440c2797a@xen.org>
 <38da2edd-06a2-63d0-51ad-1284272c8da5@epam.com>
 <a74b52fb-6514-4187-17fe-b63236efa0ce@xen.org>
 <24954.51153.588540.850154@mariner.uk.xensource.com>
 <d7e4ae66-f648-e18e-79c8-fae6eb896f00@xen.org>
 <YXkU+DKYmvwo+kak@Air-de-Roger>
 <0bbe4d1d-421d-e816-42aa-f43581902a02@epam.com>
 <24953.34635.645112.279110@mariner.uk.xensource.com>
 <24959.49313.936961.936820@mariner.uk.xensource.com>
 <alpine.DEB.2.21.2111011402320.20134@sstabellini-ThinkPad-T480s>
 <a14ce7fd-c3d0-0777-f0c9-5f7fad901452@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <a14ce7fd-c3d0-0777-f0c9-5f7fad901452@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

On 02/11/2021 07:16, Oleksandr Andrushchenko wrote:
> 
> 
> On 01.11.21 23:06, Stefano Stabellini wrote:
>> On Mon, 1 Nov 2021, Ian Jackson wrote:
>>> Julien Grall writes ("Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers"):
>>>> On 28/10/2021 16:54, Ian Jackson wrote:
>>>>> There are a number of patches that I'm getting CC'd on related to ARM
>>>>> and vpci (according to the Subject).  Are these targeted for 4.16 ?
>>>>> Most of them don't have 4.16 Subject tags.
>>>> Oleksandr wants this patch to be included for 4.16 but forgot to tag it
>>>> properly.
>>> Oh yes.  However,
>>>
>>> 1. I also wrote this:
>>>
>>>>> I am finding it difficult to see the wood for the trees.
>>>>> It would be really helpful if these vpci fixes were collected
>>>>> together into a series.
>>> Can someone please confirm whether this is the only vpci-related patch
>>> that ought to be on my radar for 4.16 ?
>>>
>>> 2. I have not had a reply to my question on Wednesday in
>>> <24953.34635.645112.279110@mariner.uk.xensource.com>:
>>>
>>>     Um, can you explain what the practical impact is of not taking this
>>>     patch for 4.16 ?  As I understand it vpci for ARM is non-functional in
>>>     4.16 and this is not expected to change ?  So there would be no
>>>     benefit to users, and taking the patch would add small but nonzero
>>>     risk ?
>>>
>>> I need this information to decide whether a release-ack is
>>> appropriate.
>>>
>>> Note that we are in code freeze so all patches, including bugfixes,
>>> need my ack.
>> Hi Ian,
>>
>> This patch [1] is a straightforward 2 lines fix for vpci on ARM.  There
>> is no risk for the release as the source file affected only builds when
>> CONFIG_HAS_VPCI is enabled, and it is currently disabled on ARM.
>>
>> At the same time, as we know vpci is not complete in 4.16 anyway, so the
>> counter argument is that we don't need to fix it.
>>
>> Given how trivial the fix is, and that it cannot break the build or
>> runtime, I would take it.
> Thank you,
> I can re-send the patch with the updated commit message (Julien),
> but I still have no R-b's for the patch, so not sure if it is worth it

I can't speak for the others. In my case, I didn't give my reviewed-by 
because the commit message needs to be updated. If you resend, I will 
have another look.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 09:37:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 09:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219862.380896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqE1-0001Tm-2T; Tue, 02 Nov 2021 09:37:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219862.380896; Tue, 02 Nov 2021 09:37:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqE0-0001Tf-Vn; Tue, 02 Nov 2021 09:37:00 +0000
Received: by outflank-mailman (input) for mailman id 219862;
 Tue, 02 Nov 2021 09:36:59 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhqDz-0001TZ-Gy
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 09:36:59 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 6c388371-3bc0-11ec-8553-12813bfff9fa;
 Tue, 02 Nov 2021 09:36:58 +0000 (UTC)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2053.outbound.protection.outlook.com [104.47.6.53]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-36-RgN4tQsWPVy_sozovAXDoA-1; Tue, 02 Nov 2021 10:36:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB7360.eurprd04.prod.outlook.com (2603:10a6:800:1a3::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 09:36:55 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 09:36:55 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0024.eurprd04.prod.outlook.com (2603:10a6:20b:92::37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 09:36:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c388371-3bc0-11ec-8553-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635845817;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Veq/klv1OKxZwAll8ea7RB4s9mjKdyAfOEJIOZCUfJQ=;
	b=dj6VmpyanJRP+mcFYSEsBrIpO2fujXDEzfKYhzIJfPZJ+qqRPpTcEPRKgn4qg2YWgggd5v
	vB2jASlRaTUeRGsXZLHq/MJlJAXV9ovxS4rCC9Kx9zS5I8TkxIbw4K2FbL57KTtx8jmA/X
	B7W+ddbQBhf6DBwa8feqLwAIzTOhjRY=
X-MC-Unique: RgN4tQsWPVy_sozovAXDoA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bkt3gtBxlIqVbdkFmhwXIhHCoIRJOZ/AGKC2VKqlNCIFp5ZHXOLByV6+GoNY05fMH3pJRvVlfd3oCh7rrgtztPWqKdn4Zpn1fu+n4P2Qyk0zOTFQkUeUfTRk08FxsC/YwDnXUyao9onyenD8lpG3MtJUJJnqCbWwmMMX9CW+t8EPrAJsfsVtk2ZpzY7w0gGaYyHMDkVgcJIfbdnmZJOVtFS+xVd8+Q3XWihKHTs9RpWw61/j8cjMaUP3v7/w5BTzvc9nO3jBkYhIb6wjQ+dwicaenOK1lVY5cbpckSRzYgYca/U0hUEzU2nIftBVTUQa0yulNXR/OOhQTocb3p6JLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7ZwDP+sqMC4OSfGZ7z7vCRpYhRjUgL0XCUBkN5XtIqA=;
 b=WvJ+M3RdY282dHoWzAoMyowQVzhx2mlrNgxi9A/FkGJG9yPd9rmIJnGVA8X9rT7x7QunL/NxvaO2mxvecBO1bXgs0zXiqifKR0/KmhFXSITBTCAwsjM6fWmB4H3T8KzjtClYJGPNaYzN8vSXkvJEJt2GQWlyWDosykYo9bKHcbvDqGGOJ3d0pVjNdGzzMxtcfe82zbWOSLbCRt1kbKHPjhxZfbU7TTtth9Hyfy8ELyE/zdJ38PD8WGr+N1TlzJiCk0TTdT7q/12aujsOghgz4WnSuEazVTXhHxjnnOXzzuP8d2aITsWdMySuRvbpotD3RSaBGBTwtqWR8JQOaKslEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <18d14f59-7860-946b-b6b8-18e5ed254ca0@suse.com>
Date: Tue, 2 Nov 2021 10:36:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v4 6/6] x86/P2M: relax permissions of PVH Dom0's MMIO
 entries
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>
References: <cbdc93a6-e675-420c-f7e8-53aa407766ba@suse.com>
 <4b8c48ba-a563-d036-d4bf-f4f8bdf0efb1@suse.com>
 <YXK7ySGvgTvN8GPR@MacBook-Air-de-Roger.local>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YXK7ySGvgTvN8GPR@MacBook-Air-de-Roger.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR04CA0024.eurprd04.prod.outlook.com
 (2603:10a6:20b:92::37) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9e626d6c-f165-4105-89b8-08d99de44ecb
X-MS-TrafficTypeDiagnostic: VE1PR04MB7360:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB73601198F3D86528D95B40B1B38B9@VE1PR04MB7360.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	u7gsNdbWfMQ7EtvZ5Ys2em6wQEgDsXm+Sp7oUf2NIRZY7iQkfRY9KLlB9qd/dpknXiaXjDHRNQEJ/32alv/piUPYW3Tcw0DBhqUvJMTEkl0qHmbClJjVoDfUYMVlw32HZOmSLPGhsE7QRXkQgWzoXUKronzRySh/hfsGj+2p8sUdMbLI5Q1VGQ24CMyI+TPCW8tOtceGe+YE0dqleqlwTDgwnRhAPVB8KRSXL1CZj9TzZhOGsMc9HpFboh9EJ5a6nmnhtib5yaDmBjX5GOWRQw6UYKTJYmX5jIdq/DyANrbz5UOgilxCQI7aJBC6F1EuFbIlSRE75grbAhQN8Gd1//iCsQYSMJQN1icZu6pSJOpo7IkUDc6zMBn+Vbl+zVdqijPEQbiOnL82uWXFW5C+yYqhWzLItPOxkZlS9gVl0Vg8wS8XvgGbM8LhySYBRZS2ZYU+fvBN5waCTHEidWpL+5flphnT4dyTIGLSDq7237GyYL/W/8j27nPQ0FM5uCLDb/KM/Qjmt8Fn/DnCJeJ4fqP1q1wdHxFUF8nb69lbTg32wEKvX/JVO0hTBocr5c7vswz5Qv6CsDQr5J7ITo61dCW/K2vUyY2BJNG2EbrqUer99XNReSKeySIYnIMs0ilaIgUYLA9oHr8R1P3jWfX31K+Mm4+2oM3xnUVBvdr646J+AkiytScyTjppgf4kRb6i1K6La+DXVVn2jkHswxevtbIsLBsMpyYPO/thuH/q+XhE4i9uN81iyQAzwvpgPGvu
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(186003)(26005)(66476007)(956004)(8936002)(2616005)(8676002)(66946007)(66556008)(38100700002)(316002)(16576012)(6486002)(36756003)(53546011)(5660300002)(31696002)(54906003)(83380400001)(86362001)(31686004)(6916009)(2906002)(508600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?sPnNuymEKSIHw+CbTSRRHBiBhHa0gzEYIUPx1RntsVTX1spoxtRjOmtARLUO?=
 =?us-ascii?Q?6mPQLhd84dBaC3xrR6BWkgogNgqg/6MrREcQqEoqX7VXnsK9warpunyzeiLV?=
 =?us-ascii?Q?Q++8jARW3yEBiwPSNY1V83FJGbUpSGtkYyo32KjKnYsYBsQZ/2n3O/NvUDa1?=
 =?us-ascii?Q?kfP7fhN5xGZl3StQOOElnymGJks5dmgohmZnpKP2Snyhb521dFejlxvSFNK5?=
 =?us-ascii?Q?deqn3GKw48BHK3FwjSY+fJuSSKuFIf+fdMnabVmFjmmMOBvUtBYDyjzJYIeJ?=
 =?us-ascii?Q?U6MSvOMb3QistDNcK2q8/9MmgsI7PRqz+M21G5iXDxU3p/NDt9fuGkVbqxoX?=
 =?us-ascii?Q?RPzsBwgwTxvkFnQnd6sBfmSvXL+XR8MVKJig/nqGJmrvM9t1C/fE5qIa3BBa?=
 =?us-ascii?Q?QHrfuYZtlBiYtyw1IaSKIYSoe2frc6nzkV+ekFgt3RVlXHAY4RBzGEqFyqQA?=
 =?us-ascii?Q?zmj7jtqrL9LL2KM62MbRNPFfwl7dp+21+K/n0VZ4jxL2hhmh8Q/+ycyT2QnJ?=
 =?us-ascii?Q?12Am51P9oTepQS+CHNXVWFuGz05+XJ7ui3xjbuBPtjOQz3GLnPWISnFe55Zc?=
 =?us-ascii?Q?8s9O4IfTFiZ20O0ryixzr2T2EJyYeTGhbkqaPq9hcQXAYf4vhclcgMdlFxC2?=
 =?us-ascii?Q?Bs8le9iqJ10H5QZSuKhQ6dgCkOeRiklsmo4WccVDhRIpvxDpFF/1N4Ew3Czd?=
 =?us-ascii?Q?8Uo+QlNNx///Uz+KjrkFKCfkjnLRmysg/pX3Qr1jY/NNC9X6Y1txzunJj3rY?=
 =?us-ascii?Q?VsSYugILVSEOlB0Bc9BjsdA1CBTmrj2802sZ/wU1sg2IWoTtO/RBltfU7nOd?=
 =?us-ascii?Q?WBEgu18oIrQrwwi9/VyAI7vlQ5dNqmVg8uS/sDu+yNbKscL1qGU0Q25qtGix?=
 =?us-ascii?Q?ZA4/RkQ2YO1tFNVKC4/dZ3DDI9YwlqSgzOjCCPydD6zZ166xOsifyj9qRW11?=
 =?us-ascii?Q?4JinmZQKfn30yGp+S4JSta+0wT94xWVFWBGj+TZzPCZ+LkL+uIGxWscIkwHI?=
 =?us-ascii?Q?rWn8FUtwWgRYZ0DwOrUjrN4OvGRk1wiBNKPCS8AcEKxk5b49Bb8Jq+Hi4VM0?=
 =?us-ascii?Q?VH8/NkgPFuzND3NRzNyrPZJ7T6GZKkVvlOEP+rCTMo84uYL/RQlLxEQWMx8k?=
 =?us-ascii?Q?+bI0XTpIWq4/6wiB51/9VbCJVSU73wp4xB5K14fIu91TIJ7FrFug1x0Pld9T?=
 =?us-ascii?Q?cwoBj3HMl+yEQvnHEXMrESjWVUOC73NJj0J/lZ1Wqt4sieT4vD2qSeAJCOB0?=
 =?us-ascii?Q?N6OMhTcqqLGfq+PeaZg5WFSlfQj1xFAqrktOCxHtAgw4kae2nNyZZMYa2rMr?=
 =?us-ascii?Q?ykVrxOpwg492ZNapSQ7cStX+fk9VidlM1Z1xwu8ESKsNzKXMPqxVJOgQCFdY?=
 =?us-ascii?Q?r9TImRke51aBF23Aib86ReOuSV2Dss9SsVnNJeZptepm7aAqFhlUepa+V+Ng?=
 =?us-ascii?Q?1ev5qGCI196TYWiTvofr0YJyM0ykrRJb0WuF22CNk8SvtCoXpRbMtYjwOn2R?=
 =?us-ascii?Q?wnSxJq5TDjo8ONgcZvaYwdPCqUMtX/i5gt+8HbV2SNP5fMQ9z2WxjnzFjVEB?=
 =?us-ascii?Q?+RUWZ0cO6OKoURStkKJ93Vc+zQ7qeQqTmKHBW0TLcRDdH1HWaUubyd3NWFjD?=
 =?us-ascii?Q?ONqZij/mZwgemRXLX5v6DSo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e626d6c-f165-4105-89b8-08d99de44ecb
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 09:36:55.1431
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gNOOLe53Xobdm0mehYtabeuwrC7F8xYvG0dIuQe8LcByvOVecINa+iFSBNOK3gFIOB6fKCxzETngkVNEs73NkA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7360

On 22.10.2021 15:25, Roger Pau Monn=C3=A9 wrote:
> On Wed, Sep 29, 2021 at 03:15:48PM +0200, Jan Beulich wrote:
>> To become independent of the sequence of mapping operations, permit
>> "access" to accumulate for Dom0, noting that there's not going to be an
>> introspection agent for it which this might interfere with. While e.g.
>> ideally only ROM regions would get mapped with X set, getting there is
>> quite a bit of work. Plus the use of p2m_access_* here is abusive in the
>> first place.
>=20
> While doing this might be fine on Intel hardware, AMD hardware can
> specify strict mapping access requirements from the IVMD flags, and
> hence we should enforce those.
>=20
> I think a better solution would be to not return error if the only
> divergence between the current mapping and the requested one is the
> access flag. We could log a message in that case about being unable to
> change the access for the gfn.
>=20
> This relies on the RMRR/IVMD regions being setup before any other MMIO
> region, or else Xen would have to clear existing entries on that case.

I guess I'll rather withdraw this change, until such point where we
actually run into an issue here. It was meant as a proactive
measure only anyway ...

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 09:50:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 09:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219874.380914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqQS-00034U-FW; Tue, 02 Nov 2021 09:49:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219874.380914; Tue, 02 Nov 2021 09:49:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqQS-00034N-BY; Tue, 02 Nov 2021 09:49:52 +0000
Received: by outflank-mailman (input) for mailman id 219874;
 Tue, 02 Nov 2021 09:49:51 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TliJ=PV=alien8.de=bp@srs-us1.protection.inumbo.net>)
 id 1mhqQR-00034H-2v
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 09:49:51 +0000
Received: from mail.skyhub.de (unknown [2a01:4f8:190:11c2::b:1457])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8f2cb833-dbb8-4ffb-893a-0d4e95c314df;
 Tue, 02 Nov 2021 09:49:49 +0000 (UTC)
Received: from zn.tnic (p200300ec2f0f62005f026b777d4e743c.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f0f:6200:5f02:6b77:7d4e:743c])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 77C731EC0295;
 Tue,  2 Nov 2021 10:49:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f2cb833-dbb8-4ffb-893a-0d4e95c314df
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1635846588;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=8BWnG30MtY0UUhkaiHYGZzY4ggSfKaanZFstlmENNNU=;
	b=KO3JlJSf1mqxUGS6Psivk0XaGEOGXs3CQtOFr13HLmeMhhveiegwU5heaUDIdA1cYGH4CN
	vfUkBS+PpGXP40Z027J8h3H/USqcIiuKjaj850QLvpXh+LYHn9g2ukhmnObmcpVXDNRcjO
	O315g6jdka9sV7Pwm+xuEBnMyYKtT3k=
Date: Tue, 2 Nov 2021 10:49:44 +0100
From: Borislav Petkov <bp@alien8.de>
To: Lai Jiangshan <laijs@linux.alibaba.com>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>, linux-kernel@vger.kernel.org,
	x86@kernel.org, Jan Beulich <jbeulich@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Juergen Gross <jgross@suse.com>, Peter Anvin <hpa@zytor.com>,
	xen-devel@lists.xenproject.org, Andy Lutomirski <luto@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH V4 04/50] x86/xen: Add
 xenpv_restore_regs_and_return_to_usermode()
Message-ID: <YYEJuIgQukcDzy1R@zn.tnic>
References: <20211026141420.17138-1-jiangshanlai@gmail.com>
 <20211026141420.17138-5-jiangshanlai@gmail.com>
 <YYD9ohN2Zcy4EdMb@zn.tnic>
 <d4ae23dd-377e-8316-909b-d5bdeacc0904@linux.alibaba.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <d4ae23dd-377e-8316-909b-d5bdeacc0904@linux.alibaba.com>

On Tue, Nov 02, 2021 at 05:19:46PM +0800, Lai Jiangshan wrote:
> It will add a 5-byte NOP at the beginning of the native
> swapgs_restore_regs_and_return_to_usermode.

So?

> I avoided adding unneeded code in the native code even if it is NOPs
> and avoided melting xenpv-one into the native one which will reduce
> the code readability.

How does this reduce code readability?!

diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index e38a4cf795d9..bf1de54a1fca 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -567,6 +567,10 @@ __irqentry_text_end:
 
 SYM_CODE_START_LOCAL(common_interrupt_return)
 SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL)
+
+	ALTERNATIVE "", "jmp xenpv_restore_regs_and_return_to_usermode", \
+                X86_FEATURE_XENPV
+
 #ifdef CONFIG_DEBUG_ENTRY
 	/* Assert that pt_regs indicates user mode. */
 	testb	$3, CS(%rsp)

> I will follow your preference since a 5-byte NOP is so negligible in the slow
> path with an iret instruction.

Yes, we do already gazillion things on those entry and exit paths.

> Or other option that adds macros to wrap the ALTERNATIVE.
> RESTORE_REGS_AND_RETURN_TO_USERMODE and
> COND_RESTORE_REGS_AND_RETURN_TO_USERMODE (test %eax before jmp in native case)

No, the main goal is to keep the asm code as readable and as simple as
possible.

If macros or whatever need to be added, there better be a good reason
for them. Saving a NOP is not one of them.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 09:55:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 09:55:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219884.380931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqVR-0004UO-6z; Tue, 02 Nov 2021 09:55:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219884.380931; Tue, 02 Nov 2021 09:55:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqVR-0004UH-24; Tue, 02 Nov 2021 09:55:01 +0000
Received: by outflank-mailman (input) for mailman id 219884;
 Tue, 02 Nov 2021 09:54:59 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhqVP-0004UB-ME
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 09:54:59 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 89c4526b-de4f-4ddd-97b2-7aa0a0caaa81;
 Tue, 02 Nov 2021 09:54:58 +0000 (UTC)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2108.outbound.protection.outlook.com [104.47.17.108])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-16-KnRJD8EvMvGgQJ0blCrR4g-1; Tue, 02 Nov 2021 10:54:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6864.eurprd04.prod.outlook.com (2603:10a6:803:138::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 09:54:53 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 09:54:53 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR01CA0070.eurprd01.prod.exchangelabs.com (2603:10a6:20b:e0::47) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17 via Frontend
 Transport; Tue, 2 Nov 2021 09:54:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89c4526b-de4f-4ddd-97b2-7aa0a0caaa81
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635846897;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=cNSNxGPr6G/CRU5m9SmGuVBUxGeqEgz9dYEYbFws2ys=;
	b=dbJ0i5n8wkEBK0dUkpVyTq4HedGtixPnG4paR/f/V3Xf2eqDQkCXumHFC2DqoIMVMcr2TA
	Ip59Ju+y0+b3ds1+rZfnMgJcvmnwIfP5mj/XGnasq4Jif3ATHoQdXI6DCmWsVJTeKUe4o2
	KuCELsMoRwsUPiFHUKBSaYfOldieH9s=
X-MC-Unique: KnRJD8EvMvGgQJ0blCrR4g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ADLuLd6sqE5NaKehdI+cjBpYw2Ohax5frXqX76OYFjA3JRA6BMQempbC858Gb5ZYWNBxYlBHfkLrOw+qVY2vYG+WYGHJtERVSLeOlXNffU0WqoI5Bla+lVbZeB2LxfhG3f+sr/JqpqE48kLWKM8rxEaoMGNPaWA+ce/oEshsa00sne9LydLuLH4ZoYXp9nwDey+vklvsxP1ppByxedgAzmRDL4P0JBqt19MhD1u7dOD+RTlKdsnk5CaZ7BT9X+WmmwEU8bejFm4L6IJM38TMaGMcHLKGhBU+w9Un/0VlKOKV0EOpTp8LUlhsb/H+4UUspZMIvXeXNEbrjUNVMEjuvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cNSNxGPr6G/CRU5m9SmGuVBUxGeqEgz9dYEYbFws2ys=;
 b=Lm6gH8gj8yNy7m3OKX3mjn8WsnrEnBYXbCw4TEIjq8EEwK8K+4+OjuMd4wSXiflPucXXrr3D8DiWbl64/ILh0+reUzFZDrVITQOvbh/ccZPVbTHOVudbfnt+UYX6TDcylHMY5f+YwuMOQ7os7ig1GJI97xLheVZMXXpgSkm/UWqbdj7RF1rLav2ZtZ6JsmxXeyrjC3te/DaYyU+rkVOVdY9w9VcMK9azW+OnBbU/WZ/RVevqWMYoXAjreKvXwmwZH4ztsKZXjOC2HrBamNZL0FUAsdiU0XuwgS43ZBlwxGTgdOcR+Wbxd9XzRlLsNoGoDEXcwJfDh/xVlPQV/DgrFw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a436f15f-6ba4-e9f0-f65e-30f4b574bea5@suse.com>
Date: Tue, 2 Nov 2021 10:54:51 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH 10/12] xen/x86: call hypercall handlers via switch
 statement
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211015125152.25198-1-jgross@suse.com>
 <20211015125152.25198-11-jgross@suse.com>
 <88c3d815-912c-a92c-2e96-7eff6a454a75@suse.com>
 <1ab4b64f-720c-4f9a-043b-eefc5f6c387e@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <1ab4b64f-720c-4f9a-043b-eefc5f6c387e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR01CA0070.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:e0::47) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7009a1f2-c930-447c-5c96-08d99de6d189
X-MS-TrafficTypeDiagnostic: VI1PR04MB6864:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB686493455DA3039D377965E9B38B9@VI1PR04MB6864.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	T0o/KJLD/UHBwnNKW7S5kEVIofUieH493z6+JO02h1ziO/vkcElWYgfPtqAnY6Luk3uhhBROmCr37Bl8UGU+Tvs3pSRXvcWiWzVoLJbrE+ya79P/pgtx0xZfQfWzW7zkpLzIHou37GY1PxWMyQY/zdaO/c2UefBUx1AV+BPvCegDbtIPbi7MEsvQ29uVXjdRAxna28YOKHnJk48y0E6TZtgr8NGqo6YcOXqzEhufoc5EPkwSNNNmQHscuh6mOz3ADPDOu+Fmt5y+9xElYIoUktiCS7P1BI88Nh1qwNXrkFv14vQzm/1oov5CbcW/wXOj8tynNa7XlPWoUeyqroNhkK5Ho06rVImDisNFpR3+vlgcBiqz7BEklXzGaxYQoVHQmeRkC+Fh/nH0XnqNdquBER2njdE0PyFGTEQmqG1IkZgy6IVMU4f1X/fZOU5aiCsj6cqQnM/vv2q3haffpVPALazFtd7MX4oSrV+oQEzoevQ1VphbxT8Uksb8a8CzGF5MHgi+7t4CFolxAxE7eusdARTlOvPpmx/1Ueqjluui7b/vEai9xRUg+beB/eP/zdiJK1fYBKHAAJEKAKzIWaVVBhBrDlkTZ7/k3NPdj2xaldzANy72uT9O46SVfB/hgO96bEfnz+uDoEw8dxJSk57xtDBUcOymd5+FagTTIKn/ZZAe/HV01R2jU0mt/Z2Bs3TYhmwrArrfMRLYpznJhyZbHw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(6636002)(16576012)(316002)(2616005)(5660300002)(956004)(2906002)(36756003)(8676002)(38100700002)(4326008)(37006003)(66946007)(54906003)(8936002)(66476007)(66556008)(6486002)(26005)(53546011)(6862004)(31696002)(186003)(508600001)(83380400001)(40140700001)(86362001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?K0FqT2JqMVFPc2k5U0RsRVI5WGxCcitQV241V2xoN1p4by85ZU9TQzBsYmpI?=
 =?utf-8?B?VTV1SUE4b1FudzNKREJINnZxYUh0cHpCYUcrK0Y3N2JuZmRiOVBKeTlZV3Nu?=
 =?utf-8?B?Z1poWUpscnA2dWhBM2hZazJ4UndxWS84M0VLVlZWNkFWWmM5c0VqekZOaGQy?=
 =?utf-8?B?Vk4rdU84NlpFRHVxN0orNVRzR1ZzU1g4SUNDbXdScDA3QWxKOXRIc2wvZDZs?=
 =?utf-8?B?SjUrc040b1IzZkRqOU9wNU1UcXZHQTZhanFKUjNlVWFUNDZjRGhLWWYwUTZR?=
 =?utf-8?B?ODk1RmtuSHBIZ0dSYWFzdVlLZFRjM1BNN2J3TW5vRVZGUHdxb2NkcmJrUk82?=
 =?utf-8?B?WmpnS3Ixa3dDVDM1M3lWQnhhRFpOMU9UMm5jeDN2emYyR0hOVVRXVFdVNWE5?=
 =?utf-8?B?SVZaak03NnhEQStEekVvcVpYMXQ2OXRYZWNjcXc0U0toVVd1blJwZTNmbHY5?=
 =?utf-8?B?V0NTYjlSNkdGZDV1M2p3WHB3RGpXVVJMdWtZc25qc1I2aGpDa0FaSUNTZDNO?=
 =?utf-8?B?VDR4Mk9MbGxrbFIwZW9MdkZsWDBuTWNLd0xVaUNKazdkUUZSdVRjeUc5T3lr?=
 =?utf-8?B?QkZPS0dlTlI4YVdHVmJxejR3a29DTVZIT0sxQVRpTXd3b1dXK29yZ2F3bi9E?=
 =?utf-8?B?b0U4S0YvVEN4bWVmSkR4QTJiTGc2SFkrQ21yc0NVUW5wUDNOTzVreitNQlBY?=
 =?utf-8?B?VU5NakpvMjV3ZVdDcVNaalhjeWFva3JCZ0ZmU1NabXFEdmR1T1h5TFhGbXVi?=
 =?utf-8?B?YS9Md3lCT1FuVzlwMmlST3hCRndUTGw1cHIyQnJvMzB5Ri9FR2xmd2VieXRw?=
 =?utf-8?B?TEdlWEdEVEErdVNPWlVXK2hPVDBpemVDTGZaQTJ6OUxyNnFINGx1ajZIamp3?=
 =?utf-8?B?YmpMdWtybGZYbUo5dklZLzY3ZnpraTRIT3RPbmtKT1VVL1VJN3RlT1hFRXdQ?=
 =?utf-8?B?WW1jaTBySVFycXlLTkEzcEJwc2E0dzZ1WVJVUUVXVjdQRXp1bjVtYjhqU1Iz?=
 =?utf-8?B?Y295djE3dVFTeTJpMVZoUitVcFZMclpMZVl5U1pUZUxtazNTc3ExMGVWTHFP?=
 =?utf-8?B?RS9sQWZSajBhZ0lKSlY3OXdWQXNnb0UzSURURGYwTTFnWFJtazNCSVFjSEhh?=
 =?utf-8?B?YlFQOUlMYkp6OUtMV0lRekh4K1JqTDRtVGNKOTc5VUx1RzB2VEtvK0RTRnlJ?=
 =?utf-8?B?Qy9lSklSOEduOXYwZm1oRllNVFBtSFduSFgwamJaWmg0OXh0cmxwQm9wU2th?=
 =?utf-8?B?WFBianJ5dDJ4dXpBU1JYUE5EWit5empKMzA3Ni9tSUdQdHJxcUs0RlRWbndi?=
 =?utf-8?B?d1Rrb0hVQ1ZyYXQ4NGwwVklhNkMyaUpDWDdRTnVtaXhMUTBKc2hhZTJzSERJ?=
 =?utf-8?B?NEpKYXdaMUd4aUJ6enEybVpMREVmV01idUtuS3ZyMGllMFFOZW5GUURjSDEr?=
 =?utf-8?B?TEt2SzVORzR3ZmhDaitiaitaZUdySS9FVk0wYnNNdFppWUIxKzQ0TVU2VElX?=
 =?utf-8?B?S1NML2tlQWR1a3pOVmpTZFdUam84dVgvK05SSU5ESmlaWEJqb1dEVTRrVkNV?=
 =?utf-8?B?NnZDU1FGUHNEN1dnaWlVY0ZHVCthK2l6SEZTKzhBVEJ4dVVtYnhwQlh2M2Jv?=
 =?utf-8?B?aTRSVGdmcjYzeU5QczUwMC9EVzZieC9UajFwRjJTdlJHTkk5a2lhQU1ybDRF?=
 =?utf-8?B?QjczVHNnVUQzbnoySVh2MXZNTzVvY0hxMzhQMzZDTFU1ZkFXaWpQU2g5L3pX?=
 =?utf-8?B?MGRKdGd1NVBEcC9BQnNTKzJ5a0RtejNCZGRSZmYzekMwaG1vekdhSHBGYlgr?=
 =?utf-8?B?NjdvZk45SFJFcnJ0bms3YXliUktjN0lGK3ZRU0pyL3pnZWltNWJtSkVkbjk1?=
 =?utf-8?B?YWpxR0NEYW5CNkpLYTQxNTdFeVBUU1JpMmgxSExlU2NiQ1VvclJOU1B2NmlY?=
 =?utf-8?B?Y2ZMQXJDTGlHQlZiMVBJQ2ZldDltekNCL3A2eit6WFZ2ajVKOS9JeklIZWF2?=
 =?utf-8?B?V3A3U0RMbnV3V0d1V2YvaFJkZERuUGVGWExzbDAreFZIL3lKMGl1blJ5ZGJK?=
 =?utf-8?B?Z3VDSndQZGxSbGZWUkZoeXJVU1lmNWVWZjRsWnowTk02N1p2REVmNHNKMFRJ?=
 =?utf-8?B?OU1zb0UrbFBHOHRUZVJRNXZQMlhyRkhaUDNSVnJ5cnpveDFhZzhJSnViazVh?=
 =?utf-8?Q?fxbMFiAxjM8wDPa8OJwG4sk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7009a1f2-c930-447c-5c96-08d99de6d189
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 09:54:53.4454
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: K4oaMw4IjNl6mTKjrYw07Rxti33DWwKtsSSt1/kNyAopKWDur2s756QTylO7fDwnh7sGimRw+oSTJl1fULwPdA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6864

On 28.10.2021 16:32, Juergen Gross wrote:
> On 21.10.21 16:41, Jan Beulich wrote:
>> On 15.10.2021 14:51, Juergen Gross wrote:
>>> Instead of using a function table use the generated switch statement
>>> macros for calling the appropriate hypercall handlers.
>>>
>>> This is beneficial to performance and avoids speculation issues.
>>>
>>> With calling the handlers using the correct number of parameters now
>>> it is possible to do the parameter register clobbering in the NDEBUG
>>> case after returning from the handler. This in turn removes the only
>>> users of hypercall_args_table[] which can be removed now.
>>
>> "removed" reads misleading to me: You really replace it by new tables,
>> using script-generated initializers. Also it looks like you're doubling
>> the data, as the same sets were previously used by pv64/hvm64 and
>> pv32/hvm32 respectively.
> 
> Yes, I'll change that paragraph.
> 
> Regarding having 4 tables on x86 now: merging the pv/hvm tables would be
> possible, but this would add some complexity to the script generating
> the tables (it should test whether the number of parameters of pv and
> hvm match). As the tables are present in debug build only I don't think
> this is a real issue.

Sure, but that imo wants saying in the description.

>> Overall, besides these mainly cosmetic aspects the main thing missing
>> is an approach to prioritize the handful most frequently used functions,
>> for them to be pulled out of the switch() so we don't depend on the
>> compiler's choice for the order of comparisons done.
> 
> I have already prepared that step by generating the complete call
> sequence, so any change for prioritizing some hypercalls can be local to
> the generator script and the used input data.
> 
> The main question is how to do that. I've collected some hypercall
> statistics data for PV and PVH guests running some simple tests (once a
> build of the Xen hypervisor, and once a scp of a large file). The data
> is split between guest and dom0 (PV) counts. There is no clear "winner"
> which hypercall should be fastest, but several hypercalls are clearly
> not important.
> 
> Here is the data:
> 
> PV-hypercall    PV-guest build   PV-guest scp    dom0 build     dom0 scp
> mmu_update           186175729           2865         20936        33725

Builds should be local to the guest and I/O should involve gnttab ops
but no mmu-update. Hence I have a hard time seeing where the huge
difference here would be coming from. Did you have any thoughts here?

> stack_switch           1273311          62381        108589       270764
> multicall              2182803             50           302          524

A fair amount of the mmu-updates is going to be coming through
muticalls, I would guess. Priorities therefore may even differ for
the two separate dispatch points.

> update_va_mapping       571868             10            60           80
> xen_version              73061            850           859         5432
> grant_table_op               0              0         35557       139110
> iret                  75673006         484132        268157       757958

The huge differences for builds is puzzling mere here ...

> vcpu_op                 453037          71199        138224       334988
> set_segment_base       1650249          62387        108645       270823
> mmuext_op             11225681            188          7239         3426

... and here as well. Did Dom0 and DomU use identical numbers of
vCPU-s and identical -j make option values?

> sched_op                280153         134645         70729       137943
> event_channel_op        192327          66204         71409       214191
> physdev_op                   0              0          7721         4315
> (the dom0 values are for the guest running the build or scp test, so
> dom0 acting as backend)
> 
> HVM-hypercall   PVH-guest build    PVH-guest scp
> vcpu_op                  277684             2324
> event_channel_op         350233            57383
> (the related dom0 counter values are in the same range as with the test
> running in the PV guest)
> 
> It should be noted that during boot of the guests the numbers for the PV
> guest are more like the ones for the build test with the exception of
> iret and sched_op being higher, while for PVH sched_op is by far the
> most often used hypercall.
> 
> I'm not sure how to translate those numbers into a good algorithm for
> generating the call sequence.

Well, there's never going to be a clear cut fitting everything, I
suppose.

> I could add priorities to each hypercall in hypercall-defs.c and have a
> cascade of if (likely(foo)) call_foo; else if (likely(bla)) ... else
> switch(rest).

Personally I'd lean to an approach like this one; perhaps there's not
even a need to specify priorities for every hypercall, but just the
ones we deem most frequently used?

Jan

> Or I could have groups of hypercalls with a priority for each group and:
> 
> mask = 1ULL << num;
> if (likely(mask & prio_1_mask)) switch(num) ...
> else if (likely(mask & prio_2_mask)) switch (num) ...
> ...
> else switch (num) ...
> 
> Or I could combine those approaches using the mask variant for cases of
> multiple entries having the same priority and the direct call variant
> for the cases of only a single entry having a specific priority.
> 
> And then there is the problem to set the priorities (fairly simple for
> HVM, PV is more diffcult).
> 
> 
> Juergen
> 



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:03:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:03:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219893.380945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqdQ-00061G-3h; Tue, 02 Nov 2021 10:03:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219893.380945; Tue, 02 Nov 2021 10:03:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqdP-000619-Vl; Tue, 02 Nov 2021 10:03:15 +0000
Received: by outflank-mailman (input) for mailman id 219893;
 Tue, 02 Nov 2021 10:03:15 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhqdO-000613-QF
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:03:15 +0000
Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8b8172d0-f1a3-4fce-9c73-18c409afb91f;
 Tue, 02 Nov 2021 10:03:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b8172d0-f1a3-4fce-9c73-18c409afb91f
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635847392;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=knKIVQw+Bp+LjHr8fipA0Si60DtBi1s3ER/Ioalib7c=;
  b=IOvthAchOZ76+KGWEFztkylcEMQrl9QfMBAwELTdhZI18sqLTkd38mq7
   sb4/TvjL8M1HQfDsRYQg9Hmc8nJ7tI1iuCdBgKsbak0W8a8E2UUaGOyON
   GPQIycaYXWnCJsavymjtMgWVyLOqTX2qbQoe8isRworOy5zvdfo9aWydL
   Y=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: C3d0XkNf9jkeg/LgzQc1RlbsSatqoMV2JY9uF+Tj/siRJjGXhSQ7LRlwfFQwiVRqnq2YinLBKz
 i9RWCLKZypf+QRbWaKDX0z2UQwLmKxsIuJJOzPcUDBJrS28cT4ju4HkHaUC7ybcpExDDUg5ZKE
 B3Knqotwb4B36+YLOWlJcsZzm3j79afx89kLdD6JL2s2aNuWK4+mbWBf83sA6jBRW2l7mo+KRf
 9w2vvXMWwVjkc13o7uRKyzpn0BZIFdzZmD0djhNvH2GbU4M8TQJmlr8ahvJSNFtEWOHPmw1thq
 0prx7Jl7dwnTjGUAoywxZIf8
X-SBRS: 5.1
X-MesageID: 56884599
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ODupbatS3la2dq76XJtF9nU9PufnVElYMUV32f8akzHdYApBsoF/q
 tZmKW6DaKqNMWekKY1/bISw90gD75DUy9ZmTAs/rilgQSMX+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YLhWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplsYLqSgsGLrHwhuk/Cyl2MX5mAp8F0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY254eTaqDN
 ptxhTxHNDWRRUJxOVwuB5cuvtuGuVzETyRSgQfAzUYwyzeKl1EguFT3C/L8YMCHQPJwj0mRp
 2/Y12nhCxRcP9uaoRK79Xariv7KjDnMcosYH72l9dZnmFSWgGcUDXU+V1G2vP24gU6WQM9EJ
 gof/S9GhbI79FGvCML8WRK4iHeeu1gXXN84O+c38h2Xw6zYpQOQHHEZTyVpYcYj8sQxQFQCx
 lKP2t/kGzFrmLmUUm6GsKeZqyuoPioYJnNEYjULJSMi59Tgu4g1ggj4Z9BvCrOujtb1FDfzx
 BiHtCE7wb4UiKYj1bi//F3BqyKhoN7OVAFdziLTU2G+5wV1frmZdpeo4ljW6/VHBIuBR1zHt
 38B8+CF9/wHB5yJkC2LQc0OEauv6vLDNyfT6WODBLF4qW7roST6O9kNvncufy+FL/roZxftf
 hXQtSxB+KNNMVnyXYFVPJqOOYcDmP2I+cveatjYad9HY55UfQCB/T1zaUP4410BgHTAgolkZ
 87FLJ/E4WIyTP0+kWHoH7t1PaoDn3hmnQvuqYbHIwNLOFZ0TFqcUv87PVSHdYjVB4vU8VyOo
 76z2yZnoiizsdESgAGLoeb/znhQdBDX4KwaTeQNL4ZvxSI9QAkc5wf5m+9JRmCct/09eh301
 n+8QFRE71H0mGfKLw6HAlg6NuiyAscl9S1hZ3VwVbpN55TFSdz2hEv4X8BvFYTLCcQ5laIkJ
 xX7U5zYahiwdtg302tENsSsxGCTXB+qmRiPL0KYjMsXJPZdq/jy0oa8JGPHrXBWZgLu7JdWi
 +Dwh2vzHMtYLyw/XZm+VR5a5w7o1ZTrsLkpBBWgzxg6UBiEzbWG3ASo1aJqeJ5QcU2rK/nz/
 1/+PCr0bNLl+ucd2NLImbqFv8GuFe5/FVBdBG7V8fC9Miyyw4Zp6dYovD+gcW+PWWXq1r+lY
 OkJnfjwPOdexARBspZmEqYtxqU7voO9q7hfxwViPXPKc1X0Ve8wfijYhZFC5v9X27tUmQqqQ
 UbTqNNUDqqEZZH+G1kLKQt7MunajaMImiPf5OgeKVnh4HMl56KOVEhfZkHeiCFUILZvHpkix
 OMt5Jwf5wCl00J4OdealCFEsW+LKyVYAakgs5gbBq7tixYqlQ4eMcCNVHeu7cjWOdtWM0QsL
 juFv4b4huxRlhjYbn4+NXnRxu4B154Ajw9HkQ0ZLFOTl9ub2vJuhE9N8S46Rxh+xwlc174hI
 XBiMkB4KPnc/zpsg8QfDWmgFxsYWU+c8031jVAIiHfYXw+jUWmUdD8xPuOE/UY49WNAf2cEo
 OHEmTi9CTu6Ltvs2iYSWFJ+r62xRNN8wQTOhcS7EpnXBJI9ezfk3vejaGdgR8EL2i/taJkrf
 dVXwds=
IronPort-HdrOrdr: A9a23:3G7evK/zY5SmaCWd+3Ruk+DcI+orL9Y04lQ7vn2ZLiYlFfBw9v
 re+MjzsCWetN9/Yh0dcLy7V5VoIkm9yXcW2+cs1N6ZNWGN1VdAR7sC0aLShxHmBi3i5qp8+M
 5bAs1D4QTLfDtHZBDBkWuFL+o=
X-IronPort-AV: E=Sophos;i="5.87,202,1631592000"; 
   d="scan'208";a="56884599"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=U7UJksfQj1MucD4KVpJtwz6Q1Une3pYCvWsDzirkzWt225zSP9JoSNQJm5MnRlBomdhMqO88dRXrIrh68pzci+Gxki73XO39ERCld6vfi+HzaCBNKG+MLhgAkFiD2zgzR7uKzxFo2yqRuXoXdssF70wJfcn9+2OHvPfQ00ZG1bNqohln6L7jv+VyLqv3QqUnybs1W9orQqoQJ1CgGBZB+u+TZSh8a1GcuFBXi952s284Nnqc009bLbHRJIG3C20hUXW/i4kdIqyhfQnX/s+6/Y5r3+Zrn3IxlhnZ/s5T7TExbc+Gq5JSAxzYAXa/n70uuODYLV4UPyc2rUk22AwEAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fwh6fkwWctqalPILbild4nAktzUhmyNxl1JDO+jkTAY=;
 b=YzFk0lYSjdxytCwdrtUMvcs93UdAb+eRDb7/wWjOjs7T+Z2MLwrMiC6xp9BscgTgEdfplkNMAqUIS/0/duFjiLdKWGxiqwsIaaIjiumJ3UA89hAMlL13hiIclqjDpiWxN700GU6paJVFmVK2D0wPp7ip8IfehDWwSazFWDp96ng3aOi3JYBvRpd2XO2Z5/0Qa6F7SY7SQhNx7NJUTL4FnSA33zOdaIZ1eo6AATEn6UJfWsKbr+HjADR4GmqPRYzS6lTNjwLBgQNpap4DR8iM0HfLhTqok5sg0DmxG0pEPmzQSovHBFFJKM9ixFNZ9qD09ppkCpcStmLMbnTDz78qgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fwh6fkwWctqalPILbild4nAktzUhmyNxl1JDO+jkTAY=;
 b=F4BdwXSAvsVtyqmt5WocSUGqDkLAdEy4GV+xGd+xmPkCIVzanOCpXrSudg7ZjMfdDCseveRjzPfvKpEehpprfSnuOHI0Za0872ngA8w80uy7lfo6QaNbdodHQGp8miZNtleCVeu+WlZy0bgib7TkjFDMEo9ySV23Ga1BTfrAMxY=
Date: Tue, 2 Nov 2021 11:03:02 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"julien@xen.org" <julien@xen.org>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	"jbeulich@suse.com" <jbeulich@suse.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>
Subject: Re: [PATCH v3 04/11] vpci/header: Add and remove register handlers
 dynamically
Message-ID: <YYEM1lX8NhK7nfhj@Air-de-Roger>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-5-andr2000@gmail.com>
 <YXbRsbzLxZs94v0Z@MacBook-Air-de-Roger.local>
 <ba1fea82-e2db-89af-b48d-56d393bd4ce8@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ba1fea82-e2db-89af-b48d-56d393bd4ce8@epam.com>
X-ClientProxiedBy: PR0P264CA0238.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:100:1e::34) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 92e3e4a2-4536-4c13-1d43-08d99de7f8b5
X-MS-TrafficTypeDiagnostic: DM6PR03MB5067:
X-Microsoft-Antispam-PRVS: <DM6PR03MB50674ED89C76171FCD9051038F8B9@DM6PR03MB5067.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 4R0Zp7XDLWFPvO6mfbicPvVQ6ynxJx0Xy4Uf2LjA70NEhXxmkNZouLWdgYt0KILZFzvN2RZ/Uy7ZPaO74TWtaIPF6+S+1GkEvk7LWkudoLPfhZBKCEHjAyJzRsHSlNQWhfw2skJPZDHuVcHzBA6xeh5rRXNrHWeGtzhD+jtCccl5pfMq4UvJmoZfnZPXcVHhiop6VX8VM1NoaIM97TRIw91RboMdZj4uz9e58ATgeR9w0ZjXwruDhR9B7ArdUkZ1Y1IoXaHPQJx2A4SDZXiGd5KLRnGEwJoPnLuJVXrYE18ZL6p0SrsxfE7uZrdhV7EXPIjYE9OFhR3kGjNPcv/InT92PCZDY1UiPjP2FcaYCib05FnjAxCUjYot+OPzpYGwIJN9vPMu2Q0hKgDqhPKN3Wtq1MTQcHvR7FXgWiI0dopYeFJlyEGHdWlDT7qpnNoI1e3UlreQnmPkZNcv9W44PBBj70aoI+TpsC2OBaJUwDvTHzcpUjvslAKix88jPByicL+45hN0Rc+MgniRmKcAU0cmUNsKyeSOaWLvewr7eC+dcs12Hkvpl/dLn9bJspoMnOW1GbxlteUaTiNwh0W+t2P8rruc+nTe7eecHN0fyNMe343A+/2sKIdOvSfZCzmK+vSaBxu6uAjJTRqw0Pzvu8Qvu6KeHbwP4sfY2tgOsduTlmjv9zv6nK1mSakW6b3al5otB0BQxjjfVtAr9rp0FVqhUTD7xaYNseLAmIxFImuvYVBn+A7GI+sjPwSV47es1zpwV8wlkYkfSNmu5+Bgxw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(82960400001)(316002)(9686003)(83380400001)(26005)(85182001)(6666004)(186003)(54906003)(8676002)(956004)(66476007)(86362001)(66556008)(8936002)(6496006)(66946007)(38100700002)(966005)(508600001)(5660300002)(7416002)(6486002)(4326008)(33716001)(2906002)(6916009);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TG9ycUdXWnNPbDM4WCtzVzZ4cXY4Tk5kVHRYMW1pT0VzZXgyZ0hoTTA0bGxq?=
 =?utf-8?B?NUpYUXRDbVB1bUN3UVdCSytXZVgrVFZPeXlCZ2liMitSZXlQYnc3TE81UVJq?=
 =?utf-8?B?TlBDWTZiUTVOcjIrTTBRMjVPWDBBa0tUWmEzMTZDVEw5dzFTZGFueTdDN0pn?=
 =?utf-8?B?SGpnRHE4am5uNkFBVmpXYU9mazB2SFlEdS9oSnhrZnlZd2VBQVU0UWh6YnY2?=
 =?utf-8?B?MUVvM2ZUQTJvSldVQXBmSXhmV2FxdlcwL1JnY3ROekdpWWt6alNGNzlpdytE?=
 =?utf-8?B?SVA5eWNFZ3lGRTIvbUUyVjd3TTdHYVRaQnFJenN0Q2xORjBHRWt5TnhCZXNk?=
 =?utf-8?B?d28wanFYZ3F1eWdhK01JTGVWVXlJODcrMUNBL09RaUNlYUszTlNNMWptanM4?=
 =?utf-8?B?OTAzS0ZTVmJXZmlSZ1VmUFJpZzYxZ2UwNDJEc3JtZmJqRHdDTEszcnAwSFBN?=
 =?utf-8?B?TkpxTWpXMERwUGl0aFRlV09GN0RvVGxLVkdVb0F6bFZxSEZSb2ZkYjlyYWJj?=
 =?utf-8?B?aTlPWlBaMHBnc1p5YVVGZ3RycG9QRTJrNXY1cGpYbGFKSUxvUDJWL2k1UDN3?=
 =?utf-8?B?Zk9TSUhmN1Vja3JoN0VQaHBHYjUrMW9KN0Nkdm1YQlZIbm5NUU5OTGc5dVRl?=
 =?utf-8?B?eEZjbUJqcDJCY29mVlkyZnJLT1YyUXZ1RmtGVHlEZlRlSG9QeDFXbmtwajVX?=
 =?utf-8?B?a1VoZ2hKMVllUVVUN0czT1ZMaVdVSjRObmJRM3N6SkNFeXVJNysxcWExa09N?=
 =?utf-8?B?NTBHMGh4NTNQa010QityMmJrdW5FZkxNd0s4bEJjR1RyaE9ka2JMK0pUYmxw?=
 =?utf-8?B?cTc5ekJmUFNoWFh2ZEVacHoycS9GZ29iai9BQVB1eVdOZ3hsRldWeTJERnov?=
 =?utf-8?B?YjZWTW1iYmhaTldCQk1FUVlBZUViaGJ2cFJMc0V1Q1FqQmFjRzJnM1BnWVQ0?=
 =?utf-8?B?YWRGdzA3QkJLcVpkd3VEY3ZkU29KR3kya29HQlZlc0NvSFFqRUdWK2l0bW93?=
 =?utf-8?B?TmxIVWFqSndvUTVpOGUxZkRWa1pWSEdRRU5HNWxGNHNMN00wTGpZcEM1ZnZr?=
 =?utf-8?B?OXA1Yi9SV3FSR3Bub3dBd09wRlBZcDZaYmZ6b0FpQUtNd3BnM241N2lKdXVK?=
 =?utf-8?B?NS9haVJNY004UDVvRTBjTEFtS05qbXRoVFNWSFhrRlVEbU9VVjVCZFUvOHd1?=
 =?utf-8?B?eGJUUlNOYWUwdFIyd2l0Y0JtM1RZN21FSHU2SUVuNzBudy8yR0hmZFVaK2t5?=
 =?utf-8?B?L3JBN1o3RjFleTVUWVhxZDdxbDFjano3TmorRDFCcUxzZjgyYjNXNUVzUFdr?=
 =?utf-8?B?dE9sY3Y5MXB0U2YrM1YrZ2lPNkhFNG51dmxQUGRxYWNBRzdqem14VTkvc1hY?=
 =?utf-8?B?QjFvMzBVODNBV3B2ZmVhWHpFczg0aHhmeEFIaEtNNURzQVo0R1BjeUpVK1pr?=
 =?utf-8?B?VlZmM1NMOWp6N05pSm1UWVROVXhtZytacStDZTZGM1NUVnp4eTRXZkI0ZVZp?=
 =?utf-8?B?R0lpTER3VjI5RzVLKzhSY1MxWW4xTGFEMUtIM3VtYkpaRy85MDVNUzlKVXRY?=
 =?utf-8?B?UzlqRFEyVjdFSW1EUSthNWpOMEVlelVoTlZpOTdHbWtkNGtmcHA4MklBaVJD?=
 =?utf-8?B?c29tdDV0dUxLUU9ua01VS3cvSkJud2JRdThmTTFSR0EvSkJtTHhDU2N0R1R2?=
 =?utf-8?B?NTV2K1NvSEIyOVVXMFgrbHBwUk9KUDRyOURiUGlYTkZwSE42YTA3MFY2MXJt?=
 =?utf-8?B?RGhod0hJVVZWR0l0bkNzQkh4QnlxM0dPQ0R0RkxwOHRxWmJJWUZkYmpVUHEy?=
 =?utf-8?B?dzNsZ29CSW9lZkxVaWhvMHZ5RUc4K0swNGlmWnlRaE1kVGZZTnd1T051YkhF?=
 =?utf-8?B?QkxBdUFONmcvTTdwZGVHeEF1Wmt2QWQrSUdwZmdmd3ZLbjVUNEVJeUEySXk5?=
 =?utf-8?B?TTVqb2JXa1d5U3BWWG1kekNvb3RIb1RFbEJZbUg2cDBzT21Rb2xXcTNZR2Vj?=
 =?utf-8?B?VVkyWTdUcTgwcTVldlZBbGllSzBPdmJxd2xsWkd4ckphQ09yRDNVMWt2WTVp?=
 =?utf-8?B?aDRpQ2JjNCtMcklUcTF6clNxcEtOb20rMkRyVGJDM1ZmeWFRL2p2WmhwSlF4?=
 =?utf-8?B?MnFpcitSem1kOUl3UmZ5NG1QNTA1TGFNL25vUENpRmNBTm1TMHY0ZUk1blYz?=
 =?utf-8?Q?6RyiacTTo0HKcJSVlJS94qI=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 92e3e4a2-4536-4c13-1d43-08d99de7f8b5
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 10:03:08.7172
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: m0M4Mt0H+CrF6Sf3VFjWZ5wNoJic1L8l/9c9rEXoPZeeAepol1nOU6oVYRE8eER/xlKGQ/gz1BtfwemPx09Fnw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5067
X-OriginatorOrg: citrix.com

On Mon, Nov 01, 2021 at 09:18:17AM +0000, Oleksandr Andrushchenko wrote:
> 
> >> +    if ( rc )
> >> +        gdprintk(XENLOG_ERR,
> >> +                 "%pp: failed to add BAR handlers for dom%pd: %d\n",
> >> +                 &pdev->sbdf, d, rc);
> >> +    return rc;
> >> +}
> >> +
> >> +int vpci_bar_remove_handlers(const struct domain *d, const struct pci_dev *pdev)
> >> +{
> >> +    /* Remove previously added registers. */
> >> +    vpci_remove_device_registers(pdev);
> >> +    return 0;
> >> +}
> >> +#endif
> >> +
> >>   /*
> >>    * Local variables:
> >>    * mode: C
> >> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
> >> index 0fe86cb30d23..702f7b5d5dda 100644
> >> --- a/xen/drivers/vpci/vpci.c
> >> +++ b/xen/drivers/vpci/vpci.c
> >> @@ -95,7 +95,7 @@ int vpci_assign_device(struct domain *d, const struct pci_dev *dev)
> >>       if ( is_system_domain(d) || !has_vpci(d) )
> >>           return 0;
> >>   
> >> -    return 0;
> >> +    return vpci_bar_add_handlers(d, dev);
> >>   }
> >>   
> >>   /* Notify vPCI that device is de-assigned from guest. */
> >> @@ -105,7 +105,7 @@ int vpci_deassign_device(struct domain *d, const struct pci_dev *dev)
> >>       if ( is_system_domain(d) || !has_vpci(d) )
> >>           return 0;
> >>   
> >> -    return 0;
> >> +    return vpci_bar_remove_handlers(d, dev);
> > I think it would be better to use something similar to
> > REGISTER_VPCI_INIT here, otherwise this will need to be modified every
> > time a new capability is handled by Xen.
> >
> > Maybe we could reuse or expand REGISTER_VPCI_INIT adding another field
> > to be used for guest initialization?
> >
> >>   }
> >>   #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
> >>   
> >> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> >> index ecc08f2c0f65..fd822c903af5 100644
> >> --- a/xen/include/xen/vpci.h
> >> +++ b/xen/include/xen/vpci.h
> >> @@ -57,6 +57,14 @@ uint32_t vpci_hw_read32(const struct pci_dev *pdev, unsigned int reg,
> >>    */
> >>   bool __must_check vpci_process_pending(struct vcpu *v);
> >>   
> >> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> >> +/* Add/remove BAR handlers for a domain. */
> >> +int vpci_bar_add_handlers(const struct domain *d,
> >> +                          const struct pci_dev *pdev);
> >> +int vpci_bar_remove_handlers(const struct domain *d,
> >> +                             const struct pci_dev *pdev);
> >> +#endif
> > This would then go away if we implement a mechanism similar to
> > REGISTER_VPCI_INIT.
> >
> > Thanks, Roger.
> Ok, so I can extend REGISTER_VPCI_INIT with an action parameter:
> 
> "There are number of actions to be taken while first initializing vPCI
> for a PCI device or when the device is assigned to a guest or when it
> is de-assigned and so on.
> Every time a new action is needed during these steps we need to call some
> relevant function to handle that. Make it is easier to track the required
> steps by extending REGISTER_VPCI_INIT machinery with an action parameter
> which shows which exactly step/action is being performed."
> 
> So, we have
> 
> -typedef int vpci_register_init_t(struct pci_dev *dev);
> +enum VPCI_INIT_ACTION {
> +  VPCI_INIT_ADD,
> +  VPCI_INIT_ASSIGN,
> +  VPCI_INIT_DEASSIGN,
> +};
> +
> +typedef int vpci_register_init_t(struct pci_dev *dev,
> +                                 enum VPCI_INIT_ACTION action);
> 
> and, for example,
> 
> @@ -452,6 +452,9 @@ static int init_bars(struct pci_dev *pdev)
>       struct vpci_bar *bars = header->bars;
>       int rc;
> 
> +    if ( action != VPCI_INIT_ADD )
> +        return 0;
> +
> 
> I was thinking about adding dedicated machinery similar to REGISTER_VPCI_INIT,
> e.g. REGISTER_VPCI_{ASSIGN|DEASSIGN} + dedicated sections in the linker scripts,
> but it seems not worth it: these steps are only executed at device init/assign/deassign,
> so extending the existing approach doesn't seem to hurt performance much.
> 
> Please let me know if this is what you mean, so I can re-work the relevant code.

I'm afraid I'm still unsure whether we need an explicit helper to
execute when assigning a device, rather than just using the current
init helpers (init_bars &c).

You said that sizing the BARs when assigning to a domU was not
possible [0], but I'm missing an explanation of why it's not possible,
as I think that won't be an issue on x86 [1].

Thanks, Roger.

[0] https://lore.kernel.org/xen-devel/368bf4b5-f9fd-76a6-294e-dbb93a18e73f@epam.com/
[1] https://lore.kernel.org/xen-devel/YXlxmdYdwptakDDK@Air-de-Roger/


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:04:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:04:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219899.380956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqeK-0006dU-Fl; Tue, 02 Nov 2021 10:04:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219899.380956; Tue, 02 Nov 2021 10:04:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqeK-0006dN-Cm; Tue, 02 Nov 2021 10:04:12 +0000
Received: by outflank-mailman (input) for mailman id 219899;
 Tue, 02 Nov 2021 10:04:11 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hRh8=PV=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhqeJ-0006dH-2n
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:04:11 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c389749e-668f-481e-8b40-e45fb335c902;
 Tue, 02 Nov 2021 10:04:10 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 2897E218F0;
 Tue,  2 Nov 2021 10:04:09 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 020AC13BF7;
 Tue,  2 Nov 2021 10:04:08 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id VBvWOhgNgWF/GAAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 02 Nov 2021 10:04:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c389749e-668f-481e-8b40-e45fb335c902
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635847449; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=7U+/gX8cisnVTCRoPIKt5BMrxD6WwUxRMAZtEf1xHgU=;
	b=ALmMmueaoPpY/834a9Uo4dzCanR9zrLOl4eC3SYPCaCyFTTIIS0RtPjanJl37nKvXzCW+n
	Abprf0Kh3tY4Lta+Nd71hwIKLCZuXhSH0zfYRk312hD4zIbr+OxeCOZHWKtGN0Sx1A3oOo
	yeaoOA0/99fh/MheIcOXPKVNWdSpiMY=
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211015125152.25198-1-jgross@suse.com>
 <20211015125152.25198-11-jgross@suse.com>
 <88c3d815-912c-a92c-2e96-7eff6a454a75@suse.com>
 <1ab4b64f-720c-4f9a-043b-eefc5f6c387e@suse.com>
 <a436f15f-6ba4-e9f0-f65e-30f4b574bea5@suse.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH 10/12] xen/x86: call hypercall handlers via switch
 statement
Message-ID: <04613f92-0b28-d703-81c2-e0dd8cbc17fe@suse.com>
Date: Tue, 2 Nov 2021 11:04:08 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <a436f15f-6ba4-e9f0-f65e-30f4b574bea5@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="qWMG1BDsL57PVNCnF7C9LUImGuwWqZdXC"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--qWMG1BDsL57PVNCnF7C9LUImGuwWqZdXC
Content-Type: multipart/mixed; boundary="i04Ga5rNUaNCrjpITRiYr4q99eSemNoke";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Message-ID: <04613f92-0b28-d703-81c2-e0dd8cbc17fe@suse.com>
Subject: Re: [PATCH 10/12] xen/x86: call hypercall handlers via switch
 statement
References: <20211015125152.25198-1-jgross@suse.com>
 <20211015125152.25198-11-jgross@suse.com>
 <88c3d815-912c-a92c-2e96-7eff6a454a75@suse.com>
 <1ab4b64f-720c-4f9a-043b-eefc5f6c387e@suse.com>
 <a436f15f-6ba4-e9f0-f65e-30f4b574bea5@suse.com>
In-Reply-To: <a436f15f-6ba4-e9f0-f65e-30f4b574bea5@suse.com>

--i04Ga5rNUaNCrjpITRiYr4q99eSemNoke
Content-Type: multipart/mixed;
 boundary="------------4FA6F6BF4A77DC2BB82D2753"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------4FA6F6BF4A77DC2BB82D2753
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 02.11.21 10:54, Jan Beulich wrote:
> On 28.10.2021 16:32, Juergen Gross wrote:
>> On 21.10.21 16:41, Jan Beulich wrote:
>>> On 15.10.2021 14:51, Juergen Gross wrote:
>>>> Instead of using a function table use the generated switch statement=

>>>> macros for calling the appropriate hypercall handlers.
>>>>
>>>> This is beneficial to performance and avoids speculation issues.
>>>>
>>>> With calling the handlers using the correct number of parameters now=

>>>> it is possible to do the parameter register clobbering in the NDEBUG=

>>>> case after returning from the handler. This in turn removes the only=

>>>> users of hypercall_args_table[] which can be removed now.
>>>
>>> "removed" reads misleading to me: You really replace it by new tables=
,
>>> using script-generated initializers. Also it looks like you're doubli=
ng
>>> the data, as the same sets were previously used by pv64/hvm64 and
>>> pv32/hvm32 respectively.
>>
>> Yes, I'll change that paragraph.
>>
>> Regarding having 4 tables on x86 now: merging the pv/hvm tables would =
be
>> possible, but this would add some complexity to the script generating
>> the tables (it should test whether the number of parameters of pv and
>> hvm match). As the tables are present in debug build only I don't thin=
k
>> this is a real issue.
>=20
> Sure, but that imo wants saying in the description.
>=20
>>> Overall, besides these mainly cosmetic aspects the main thing missing=

>>> is an approach to prioritize the handful most frequently used functio=
ns,
>>> for them to be pulled out of the switch() so we don't depend on the
>>> compiler's choice for the order of comparisons done.
>>
>> I have already prepared that step by generating the complete call
>> sequence, so any change for prioritizing some hypercalls can be local =
to
>> the generator script and the used input data.
>>
>> The main question is how to do that. I've collected some hypercall
>> statistics data for PV and PVH guests running some simple tests (once =
a
>> build of the Xen hypervisor, and once a scp of a large file). The data=

>> is split between guest and dom0 (PV) counts. There is no clear "winner=
"
>> which hypercall should be fastest, but several hypercalls are clearly
>> not important.
>>
>> Here is the data:
>>
>> PV-hypercall    PV-guest build   PV-guest scp    dom0 build     dom0 s=
cp
>> mmu_update           186175729           2865         20936        337=
25
>=20
> Builds should be local to the guest and I/O should involve gnttab ops
> but no mmu-update. Hence I have a hard time seeing where the huge
> difference here would be coming from. Did you have any thoughts here?

I think you misunderstood the columns.

The first column of data is the build job running in domU and the number
of hypercalls done by that domU. The 3rd data column is the same test
(build running in domU), but the number of hypercalls done by dom0 (so
pure backend hypercall activity).

The missing gnttab ops on domU side are fine, as granting a page doesn't
require a hypercall.

>=20
>> stack_switch           1273311          62381        108589       2707=
64
>> multicall              2182803             50           302          5=
24
>=20
> A fair amount of the mmu-updates is going to be coming through
> muticalls, I would guess. Priorities therefore may even differ for
> the two separate dispatch points.

I can look into collecting some data here.

>=20
>> update_va_mapping       571868             10            60           =
80
>> xen_version              73061            850           859         54=
32
>> grant_table_op               0              0         35557       1391=
10
>> iret                  75673006         484132        268157       7579=
58
>=20
> The huge differences for builds is puzzling mere here ...
>=20
>> vcpu_op                 453037          71199        138224       3349=
88
>> set_segment_base       1650249          62387        108645       2708=
23
>> mmuext_op             11225681            188          7239         34=
26
>=20
> ... and here as well. Did Dom0 and DomU use identical numbers of
> vCPU-s and identical -j make option values?
>=20
>> sched_op                280153         134645         70729       1379=
43
>> event_channel_op        192327          66204         71409       2141=
91
>> physdev_op                   0              0          7721         43=
15
>> (the dom0 values are for the guest running the build or scp test, so
>> dom0 acting as backend)
>>
>> HVM-hypercall   PVH-guest build    PVH-guest scp
>> vcpu_op                  277684             2324
>> event_channel_op         350233            57383
>> (the related dom0 counter values are in the same range as with the tes=
t
>> running in the PV guest)
>>
>> It should be noted that during boot of the guests the numbers for the =
PV
>> guest are more like the ones for the build test with the exception of
>> iret and sched_op being higher, while for PVH sched_op is by far the
>> most often used hypercall.
>>
>> I'm not sure how to translate those numbers into a good algorithm for
>> generating the call sequence.
>=20
> Well, there's never going to be a clear cut fitting everything, I
> suppose.
>=20
>> I could add priorities to each hypercall in hypercall-defs.c and have =
a
>> cascade of if (likely(foo)) call_foo; else if (likely(bla)) ... else
>> switch(rest).
>=20
> Personally I'd lean to an approach like this one; perhaps there's not
> even a need to specify priorities for every hypercall, but just the
> ones we deem most frequently used?

See my new series.


Juergen

--------------4FA6F6BF4A77DC2BB82D2753
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------4FA6F6BF4A77DC2BB82D2753--

--i04Ga5rNUaNCrjpITRiYr4q99eSemNoke--

--qWMG1BDsL57PVNCnF7C9LUImGuwWqZdXC
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGBDRgFAwAAAAAACgkQsN6d1ii/Ey+6
gwgAjeMkHeOxotKTAEs92/pgh8zAKz4ZHWstge8FwwcSHhiy6x3nsicW0Nl/qIRzmtLEfIv5cbfX
HA1yN7/mZCY00KwGzFyM++9g5NEjkRsgOawRkKH82tY3SPyOq5RraPbTTnI55GqR6Q1DNuOsnsEa
9acZH0wHnLtKNm+0lPtoW2vjvqkBELo7Z1jikC3FFPQXdWzerxitlWMOMFEjLYDLttR6zDVAnuou
HpJ3HNE5V5ywo8XaBeCKKEkl8leKWj4kouEkHI/UPY2fwlFay17HLQ7wM/u8KWXNRrlbLpCc/046
F0LBeR4qoBCg1geIE0/nhcqetfAosmbTqRuUfIV7SQ==
=BrIK
-----END PGP SIGNATURE-----

--qWMG1BDsL57PVNCnF7C9LUImGuwWqZdXC--


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:07:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:07:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219912.380970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqha-0007Os-0q; Tue, 02 Nov 2021 10:07:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219912.380970; Tue, 02 Nov 2021 10:07:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqhZ-0007Ol-Tu; Tue, 02 Nov 2021 10:07:33 +0000
Received: by outflank-mailman (input) for mailman id 219912;
 Tue, 02 Nov 2021 10:07:32 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhqhY-0007OZ-Iq
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:07:32 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5a586ee4-b4c0-413e-b1a9-ded3784bfffd;
 Tue, 02 Nov 2021 10:07:31 +0000 (UTC)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2055.outbound.protection.outlook.com [104.47.14.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-16-6OSzjXiMMkaJ3b7KySqK1w-1; Tue, 02 Nov 2021 11:07:29 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2606.eurprd04.prod.outlook.com (2603:10a6:800:51::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Tue, 2 Nov
 2021 10:07:27 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 10:07:27 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR05CA0003.eurprd05.prod.outlook.com (2603:10a6:20b:311::8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.17 via Frontend Transport; Tue, 2 Nov 2021 10:07:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a586ee4-b4c0-413e-b1a9-ded3784bfffd
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635847650;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=66QQFqZKeVpbZVfcEGP4/DZ21ZdlZJXnqBpiaD8q7EU=;
	b=izpGEt/gDTnlai1eXihi3mvzciZR3iIiwKIIWrFyHPnldc/9AFKCG8mpeVBOl/dk1n7s6Z
	G8VlX5mYqsfpYpCsHhu9Cz6b4WBdWdkHtLGVmctXzLsgDOigok5Et+g+XY5zdc6hBepmiF
	We+AhEU51JiUPCzuq1vZ6ie1I4HJyDk=
X-MC-Unique: 6OSzjXiMMkaJ3b7KySqK1w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=I9plEw5nqx0gYVsnDavqJwkHHeez79bepxji9X4OCU2o7QA1DrVIm0UnRpg/ASG1LfWUnYczzSt12LEXgDFNY5HZxtSW2TsC/gudnatdoy19DUoLaMgkKm8xAyhkb03jbGkwNJEXBp+25+HNADv24sIoWcLweBdC5le9huIN+2tyQusOKbfoFVrhkpoNQagXBu0JVrYMc30AAdz6iNH32GzWBQrICGWioIEVkoOmSDT7ZFNfAmotAuVCacgxK9dBDwe33jZh0IMkdOw+oHAMci2lv5gh5XcH+37YI3QoSw19LS3AeNaZ7qcArQuRCMgkuRPCBFtsCkCobUXSQ7AtUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RIEivFqKRDzEOoFRkV4DZSKIayDa2JUjgLSJ+/6RFwU=;
 b=ibN6C52UbrGZgQxBR+WBHeQ/GDmxgZ9cFj6FIbhVHic/7f+T3Cb7GFjKPSF7GwYs63pfob2qkZxPYrRM4MX/lVer7xt1iNvnYp2xxhEjrTBLh23tQNVHAvWK8aPH2tI8yGeyDnPGY6KKb0D+Cdd5BVzWqazinqIjQbvRdY8CeAPoI1qHAl+0+KtX+T7iNNZgnGA7dU+vHbQ/lgGWs2dcvR5k/cI2n9/eNMtT/a7KMH7GywJ5s5I+/CwXod2ZfImM2pc4pqTbdJZMfgcWVoMhGZIv2BWrNFvA4k1WtaA5X2jbQu3zTWqut9BIfq3YF9tVh3bJO16u9xw1Mud2a/CK5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8beac790-874f-3953-6cca-677c9bddfcac@suse.com>
Date: Tue, 2 Nov 2021 11:07:25 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 1/3] x86/IOMMU: mark IOMMU / intremap not in use when
 ACPI tables are missing
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Paul Durrant <paul@xen.org>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <efe34081-c813-0e37-175c-8553b395e6d9@suse.com>
 <YXLeMsuykEhSdfUg@MacBook-Air-de-Roger.local>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YXLeMsuykEhSdfUg@MacBook-Air-de-Roger.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8PR05CA0003.eurprd05.prod.outlook.com
 (2603:10a6:20b:311::8) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6ede8b1c-bacb-47f1-a183-08d99de89311
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2606:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2606E80A79E65BB48412F5E7B38B9@VI1PR0401MB2606.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JWDbs2F8gSqp3GYXscT6AzDHZeY61vkejOiwH57pmVJ7jSylZEHknBWymXtGsTnPgL7tcvQi+PCuFU+6020DILJCqrTcAG1NlvZab7oDWR0q+O/dSR5w12zL2XeI2n5cRDX53TuvG6h8O7opBEHFmpzYrD9mmuQCV4yLgOvSmpzLJRLx/HGPI2uI8+6P2VrMB1cjewbj8U/ycxB3bqdT7+f9p8SdBS9KkI/zQ7PV6Fe1VT9whyAb4x0eHgZRc0JTWXTs+cnHC/Q/zs2w+mclIwIX37Wur/x5lqvSPf6nHw1nENTAW1rpUu8di2U27DCaQT3WYt20RQFhW05+VEvJdUOUHJ5RK6r/ubKm25xnvQpoluoXvUhGi+PsN7syr7ZKGGTuswlc6EUdIUEVIWL/fowm1oC7Tak4HeV3nlITw9uLABdNQqVgQc0fGKArpgU60ZY1/Io56Ysg4N3HdqnpRNWB40TAvQTSoJ7Jz8X037kfw1nNkVB//Ku/DisfzUynTIgPQlPm9BnnaMe+vl1TPcP9lO529fsttmCBQBIJylXsaINQ+9eKVa/+OnvAFbIGat48Dn41UBvP4rwk3FBifUZI2dfkgTQG9Ys/L3RL0jebTbhBezfwkYU3fMTEetiLwP3b5U4tnU1+g7H4tw8FglV18gYb6TgVH57qGFJC67uH6K6VhgRMU5sgWt1Ob/JLvKC+e5MzAM/HgxNvLRggrCE0Qn0DYnOJe/SA+PYaKyV2ghr9eYWaBr2+U+00pq00
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(956004)(36756003)(66946007)(53546011)(6916009)(86362001)(5660300002)(8936002)(6486002)(66556008)(66476007)(38100700002)(26005)(8676002)(508600001)(186003)(31696002)(83380400001)(54906003)(16576012)(316002)(31686004)(2906002)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?S/cckqG4TEd1XhPkx0RAQD9DkMVuSDlRXLYQinajd7ODSbJMA+BHRyjlFMe1?=
 =?us-ascii?Q?S62HSiBu+h4YS9LC2HAwZKJnF/Suk6H130GvH7zPi7LeE6m5T9ELsV28k2Om?=
 =?us-ascii?Q?u27tnOucGTlFFcWt/JgO5uNWmlHQVTkwJyrmjnfkmCOHyqnI97CZDKXOOFPw?=
 =?us-ascii?Q?F5ZJ5XUF/FkIec6SiNZDCaZM3YfgpSQYKOkO/4TPRJbphOmvZlPuh7Lk0U1u?=
 =?us-ascii?Q?LXnx+raSiOixANecljCcuf13WaLV1hJyZOuCqxlh5DtNLERrtwPP/y68LUyy?=
 =?us-ascii?Q?MCO/80sI/wlMPVUlXZEz6UoRtJ3d7nBP23JAfdIDdIP7LB6vNHXWWAgNsnH4?=
 =?us-ascii?Q?pC/wmq5qZS6iCQs3+d4C6i9zSzCodCdvXD3sXRadn3fRJba3AQ02VmtoQZoO?=
 =?us-ascii?Q?xgpjTLQD8PkKe5HGZz95ZfNSSxgo/sMZ5fyPHy45kUMaI/AI6GckAgqQY+on?=
 =?us-ascii?Q?wC/+HRjCQQppqvsfFJBD/Cqe19LJMtFNLNJaMubO8pN/TXvuTtPiJ59Dg2rK?=
 =?us-ascii?Q?b0E02C1OhPSG09gZHXVgEuOMoQdtX1sLXZAuBLqQd6Vo5u+wCbuBRYXCYFFL?=
 =?us-ascii?Q?I5UmY9TThwe1blmHnyw/1aBJ7AN2h3vHC7qszI7+1zH9dNy1PtGg4MqqzR4s?=
 =?us-ascii?Q?O/hL3zOSV5je621orBE6lzkely6v5BQ2qeQbqWIPlMxel6a0xXPIp4IKhbF5?=
 =?us-ascii?Q?/R9oYHGQ3JzCtGTrIxsn0sbDLpXEx00PAp0ZqygYG5FydJQ1K3AZHhccfiAf?=
 =?us-ascii?Q?OomvSndiiPAb/1g6wq51yEG26T9QleRjhjJ+fx704f70lidqHVYkZEcWrIQq?=
 =?us-ascii?Q?9wO293Lp4tZkGEiLLbSsyuUkecZreO50NbTz50lKPcDERziKvGGWQ++xf+rA?=
 =?us-ascii?Q?KHzcoiZVEd+cs+9xCmc6FJpZb/SNMxY2YGOqgUD7SHA7QzpFqToSPM8RmJs9?=
 =?us-ascii?Q?/yydlGS5LdF+nl0QwU9LZKtt9eMKbL9anczB31ySdUBFgJutvRdVWfCKhj2k?=
 =?us-ascii?Q?xRk5ThW86+4u2/a0EAJnq8USctg5eKrSPJX5/rJONR26GmbyBad0Pc5ag+2G?=
 =?us-ascii?Q?JYmsTjF+vNmLoxpAW50LAKhSM/kocIfbmn22dU6T19q1FdWAlg5MXibu3imy?=
 =?us-ascii?Q?DqLL2fS+jlCcShVrXxsGX839VtA+MTrCy6W/3mPY9gVr05y/Pa5L/VAbXdwx?=
 =?us-ascii?Q?92x95vJDHQGeqj52ST8pgdK4URujy/b3ynSJGa4Eb9pElFNN9GS+T1X/Poue?=
 =?us-ascii?Q?mITEDr+hjSg/jt5uWbxyoyNcHOrAscr1AaPOxscwqNh0v8oizvqayScuj0K7?=
 =?us-ascii?Q?PNnfAEbSS3dW2edlWJTuF41j6o84dF/BmE8qzfyhOhkUyvu3dHb7SVAiF059?=
 =?us-ascii?Q?9414cbTW5CTdxc90tMvJjdDvX6YpWKMd5mGNwaXlaxYZBJGaUSfRNfizkuNB?=
 =?us-ascii?Q?acd8aTTZ7sqeaybxqiTrY091N5sV/XSrCAeTHTgpLiWwn0mh3iPnG4yjRY+o?=
 =?us-ascii?Q?AL+eG6e/PVjHHyhsZaKUZlxcI3WtMGKv1rQWazV8H3ecn0VduoS6V6qeCRUi?=
 =?us-ascii?Q?Wj+felSL4P0DtQMLEyAGqiysGT4PHzKy7BzF8mBDyDlQsm7IUPKiRE9we/9j?=
 =?us-ascii?Q?B3/koGzDAYsHrf02I48N2tE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6ede8b1c-bacb-47f1-a183-08d99de89311
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 10:07:27.6154
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: h76vcG1KP7GOAwZtLTIg4s0qd/E89hretQi55SSir2kdyzl6eTbecB8SqxrOsvFkjC7bcOlGfAK2m/NhGHBkKA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2606

On 22.10.2021 17:52, Roger Pau Monn=C3=A9 wrote:
> On Thu, Oct 21, 2021 at 11:58:18AM +0200, Jan Beulich wrote:
>> x2apic_bsp_setup() gets called ahead of iommu_setup(), and since x2APIC
>> mode (physical vs clustered) depends on iommu_intremap, that variable
>> needs to be set to off as soon as we know we can't / won't enable
>> interrupt remapping, i.e. in particular when parsing of the respective
>> ACPI tables failed. Move the turning off of iommu_intremap from AMD
>> specific code into acpi_iommu_init(), accompanying it by clearing of
>> iommu_enable.
>>
>> Take the opportunity and also fully skip ACPI table parsing logic on
>> VT-d when both "iommu=3Doff" and "iommu=3Dno-intremap" are in effect any=
way,
>> like was already the case for AMD.
>>
>> The tag below only references the commit uncovering a pre-existing
>> anomaly.
>>
>> Fixes: d8bd82327b0f ("AMD/IOMMU: obtain IVHD type to use earlier")
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Thanks.

>> ---
>> While the change here deals with apic_x2apic_probe() as called from
>> x2apic_bsp_setup(), the check_x2apic_preenabled() path looks to be
>> similarly affected. That call occurs before acpi_boot_init(), which is
>> what calls acpi_iommu_init(). The ordering in setup.c is in part
>> relatively fragile, which is why for the moment I'm still hesitant to
>> move the generic_apic_probe() call down. Plus I don't have easy access
>> to a suitable system to test this case. Thoughts?
>=20
> Indeed, that seems it could go quite wrong, as apic_x2apic_probe will
> see iommu_intremap =3D=3D iommu_intremap_full (the default value) and thu=
s
> could choose cluster mode without real interrupt remapping support.
>=20
> At first sight it would seem possible to move lower down, but as you
> say, this is all quite fragile. It's even made worse because we lack a
> strict ordering discipline or any kind of dependency checking, so even
> if we mess up the order it's likely to go unnoticed unless someone
> tests on an affected system.
>=20
> While we can try to solve this for the upcoming release, long term we
> need a stricter ordering, either as a comment, or even better enforced
> somehow in code. The x2APIC vs IOMMU ordering has bitten us multiple
> times and we should see about implementing a more robust solution.

So what's your thought then: Make the change (in another patch), or rather
leave the code as is? I'm slightly in favor of making the change seeing
that you agree that the rearrangement looks to be correct.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:13:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:13:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219946.381000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqn7-0000cv-0X; Tue, 02 Nov 2021 10:13:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219946.381000; Tue, 02 Nov 2021 10:13:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqn6-0000co-Sq; Tue, 02 Nov 2021 10:13:16 +0000
Received: by outflank-mailman (input) for mailman id 219946;
 Tue, 02 Nov 2021 10:13:15 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhqn5-0000ci-9a
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:13:15 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 7d17ac0c-3bc5-11ec-8554-12813bfff9fa;
 Tue, 02 Nov 2021 10:13:14 +0000 (UTC)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2175.outbound.protection.outlook.com [104.47.17.175])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-33-UGQDI_DaOxmi95pXGw0mew-1; Tue, 02 Nov 2021 11:13:12 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5598.eurprd04.prod.outlook.com (2603:10a6:803:e9::30)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 10:13:10 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 10:13:09 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0057.eurprd04.prod.outlook.com (2603:10a6:20b:f0::34) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 10:13:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d17ac0c-3bc5-11ec-8554-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635847993;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7V9EwHTVizljkpTbpVymTgmS8EQybsp/hR8NuMt/7m8=;
	b=VQeWEJpmbE54NCZrw9My/HE6S+qn+GjFb38vZrLY4tASYfeuOt9G1nQOt/qM9wMB6UZmV0
	nibZvT6xcuOWroB745v7uYGyLsppSvj/Li11qrJ4LjVuxxfDDTyIw9eFlcMsT/tygdiblP
	2VcZPzzBh7zslMuoTw56KjKiGqQEs+I=
X-MC-Unique: UGQDI_DaOxmi95pXGw0mew-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=B2ObmRLszwBqFQ7U0R4AnC9myDouCA9YxTeuaqIgLFufk/W7q+2lFkZGCBZiC92PsbonCkkwWGNR+Mv8XlIeQyjoDyrF5Wg/qWJhhNrDi9N/GSD7L4r8mmFGRy/hoQxCAlfJ7m4RV/RKzz0y2bgMAk6HwHlRg1ThdCUtJp0zX9A3wJkR30XptaZE5t1M0y9+BzbC62ku19xD566nUj8uhdO4xPn/rUQdFJcNnrwOJKT7JCfHTgrNGNmouqcNRfggsNidV9Ylewxvr7G6zAinIMaUounySmbkV5aY/e7HyczsfT61fWwR4WpOxMUtBcTOJLBN+o7O39ysfLojyBn9VA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bwGJHf5NukqlWsZQVj5e4N0cQEWgMz1RlF/aJ30dzgM=;
 b=WZV8T5AB2aPvRju/vHCuEe43CcJKf4ErSpjwqkqzXEfW7ih4BgvShBbioEU7ptuyEHmTtqHmG5pSPGvtxw+HDuI0QjB/qfPphmg6EqhJ/WQ19AxKSULmh5n/DCRHNHco+8+xmnC9oZ+UaojUNyzFgT5yTH4q3aX57XBp3xd33o/vzKeJ8odqHO1uany3DehZNfDHgT+rHmZ7xobQ4+krNI+U9kwSe1BiEUJfMCS2uqksECaf31X4vKLubTDYal69ymEuppoxt/kot2Hf2uh3f0tfe/PTi/VB39yJXQFEtiAjOfK8gnWIS8D3raQgS/nvlDXWcgcWS7ugeDkGImJBzQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <dd2929fc-dc1a-1c16-5954-6894766d9dda@suse.com>
Date: Tue, 2 Nov 2021 11:13:08 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 3/3] AMD/IOMMU: iommu_enable vs iommu_intremap
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Paul Durrant <paul@xen.org>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <ff7b68b2-5bba-2927-e3f0-f3062862c466@suse.com>
 <YXaGxX3J1aB39mSG@MacBook-Air-de-Roger.local>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YXaGxX3J1aB39mSG@MacBook-Air-de-Roger.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR04CA0057.eurprd04.prod.outlook.com
 (2603:10a6:20b:f0::34) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 43b30591-90f7-48ee-7d4b-08d99de95f0a
X-MS-TrafficTypeDiagnostic: VI1PR04MB5598:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB559874E37BDC753E01187F2AB38B9@VI1PR04MB5598.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	wqY1yGrVUS7wMTMKhpyRupV0RnIESyeIS4VzDQBLMh9hLRgSESd303zWkGPfxAt8nAgurzUfaEzKAzfwOqwfGFMl3H07EKGoJjj9CvY9W6vV+ROeq66UvUGESJSr4tVMgt80uWMlkjm1yV6T4rIkczkjf634g0iGsOauSAc9Tijh4jqd/4o7NYB2+0ww1cCpckvuwe1mDaCt870v165v6xtfh1tYq0ceIB0VRwTuNhgG+MvlyrYbKLzWrbtQzHy3tWP7N9iKkASmlpEi4usZFoN0sKvr84ey3cQ3Z+gqFMSB4Mi578bscNfy6bT4qIsSs7VEd+ln9PwoqApQzUw3e1J1rKlYb9VP4SsVg+Lj9fJ8n52hJRYmD/OwKuuBqNC2LmDh/ctrgQ6JMwafO9WlAWVGEiremMczrKV0fLMDj/hkKgXoeMEXp7BvhRI8Sr9FsRMc4G2cbjd2L8pg4oEiSXG3O1BL8n0RDG+n3FliWQCDdpyeQFa92h+3R3wB4fIsCLAiFWiGDJSluy4EzLIijfDuq/0xo0fqNASMaUrxVXHz9m/NbnZfxRzQd5kDASTGGfaXORL7XdJKqr4BrvxSOAIByDCp8mLgBPO4N0ac4znmeesBeiXyxsd6aXi1PrwJywUNqJ8DQGygT4+Fk4NOOFMLIL6bVUz3VqSVUw2Hrr7IKBS1a3glxQYVWFXrk8JYQQSZ5fVtaTJDUDKBugbqWX1mcB3tRLGXXqcoUvcaCZ+vgh+PkDfh3MNOyl8Y5F77
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(16576012)(2906002)(36756003)(83380400001)(86362001)(31686004)(2616005)(956004)(8676002)(186003)(6486002)(54906003)(5660300002)(4326008)(66946007)(53546011)(31696002)(6916009)(316002)(8936002)(66476007)(26005)(38100700002)(66556008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?qUO4g8cEUhr2ZsFpMqcZOAjL2XHt2obOiagnLchfCaQXNTgFCZHMU0zqqXKX?=
 =?us-ascii?Q?T0mRbWiU83Z7CW4tIfo1kun40mSNAtfrYl27G6X3DuXbdfLQL0Yk+UvDkrnK?=
 =?us-ascii?Q?PUWQSzgVFM0yA4k2iqKDz4Xzd+ITVuGNwUQ3KkgX8XwT0ETxlK354xwpJWwi?=
 =?us-ascii?Q?2ycPevI8RGnhfsS89RALkPpAKYSZwEgAiTTNrOuuXap5FJ0DTrtZhiNM1t2N?=
 =?us-ascii?Q?UuLbrT+oKPttICUA0DGcakdeh7JQmcMaSw3vceorRvK0C2w1pBJJOmmgBuht?=
 =?us-ascii?Q?F3ApELOgvXxzKFht0s7UoroFunb13hbmZl6ikrJD398/p1fFuKjpb4XftZHh?=
 =?us-ascii?Q?2B2LpVus9BMxkbQW34ZZ05b+0PfincpsWuXBnaaNjj618UWTCAKRYTnIpdYa?=
 =?us-ascii?Q?mhqIyL4uxTNWasyyODEZGSUHbwCBpWoh7r1qb75eh7sYr23lie7PhlDTHjf8?=
 =?us-ascii?Q?/YxoaLIEypAhhC+pioAJI/qQzFMN7BkXMUklcs7oQxkr1VAw392PnnGoOAFw?=
 =?us-ascii?Q?/0Zh5Esdd/u2CyB6u0yi82b5NEffencQZ3mD6HV+2xAE8e1heUyBPghKCfqt?=
 =?us-ascii?Q?hqEWLjtEGUUloW71gi6D0gfUflF4jhZUvP5K+G+fwlOXcAH8gJLXiOGWTtfS?=
 =?us-ascii?Q?KpAxkWwfmPa2Yj4GBTwuIGNoM9YE1ABjxWpg4pu1QdPbRAUaifZSsiqfwsp+?=
 =?us-ascii?Q?HBkGpxyQHcBHMikV4iJA17PiCyDYI63gbV3Ij4+b0zFVZQehdX2LY53p50An?=
 =?us-ascii?Q?VECnqqpvkvjaaSe5S/+VEfWZfGjOrZQKdtqNYL97MctvzPncjEEcpNpERovv?=
 =?us-ascii?Q?QpQChgD4ihvBPOw9Wc2kJxEdta1H+/XD9K1Fiw20uqVqvnivVVN8HMXahiiX?=
 =?us-ascii?Q?K/4drBP6tlhpSIjJ55Tpqq4E/El6yhKnC9E6Cxot6byNT33OGIDhHt6HLvvJ?=
 =?us-ascii?Q?onCAn++C+GzkiNT8gkOFVvvXbG1pzy5fCHqjsrPKyOJARLgRL6afP+KRTUqV?=
 =?us-ascii?Q?GCDx5srAQzrIKHHVo4u4NuxYUNkXmSniP+KWicpRE+bWq4hbB+juOCj2g6Ts?=
 =?us-ascii?Q?nYe5H2jGP2kX2xFFaQxJL6h8c7oF+5RlyF5Txn8plu7Eh2pL0GzxKSYMmX5H?=
 =?us-ascii?Q?L4fVJoL3Rq2HolhgJEdZYDKpWYuHgK4fdsG1IMgx0DKEEjUoGtCfgbXEZbyz?=
 =?us-ascii?Q?TFYAs+eAlPUYTwiLl1IDIPm1OBpD6W9ffb2QlU2uVy2EOQq2+ByUXlPAfODj?=
 =?us-ascii?Q?h94csXUoklRakOtEd6ZL8194e0ZG27l2yZU+gI7uGoE0qmDh0HOpjDUgzaX5?=
 =?us-ascii?Q?8g/dcLm9Nh4qPXTkmDUG6qEyRAIss4RIMloFgp2NBrzfnsEnimuhxTN+Rjam?=
 =?us-ascii?Q?6gbyARJgdVnKxqxHXrevT84Wa5gITOJOSZob4TefIOS7eBXcOn24ZhsBVJw0?=
 =?us-ascii?Q?hZ8UoYBal/4JVyksKo3G2D43ogq+ylXMwye1fVs620OvNkv2qhXCcn4R4LOr?=
 =?us-ascii?Q?P/Zd1sLVXyC2KXmyIlVRrNcUfoFf975cmmRWtuth7fx8pPUbMZsb7Q/iPMf6?=
 =?us-ascii?Q?0RPqU3gubgD8ZNbcpQfb5J3DG7B59VFrGfRJ4b47tIrlv770kbeOGUN+SPXM?=
 =?us-ascii?Q?gXiqeZ2avKNjXhFJEXhbbZg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 43b30591-90f7-48ee-7d4b-08d99de95f0a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 10:13:09.8358
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +mAvKuXbNMXYDVQzSe8QDngkf0rmxOSo27frF0anUxwt80luegNU7rQA//d9WLLchCVl8LpjMBihOW7fUPOw5A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5598

On 25.10.2021 12:28, Roger Pau Monn=C3=A9 wrote:
> On Thu, Oct 21, 2021 at 11:59:02AM +0200, Jan Beulich wrote:
>> The two are really meant to be independent settings; iov_supports_xt()
>> using || instead of && was simply wrong. The corrected check is,
>> however, redundant, just like the (correct) one in iov_detect(): These
>> hook functions are unreachable without acpi_ivrs_init() installing the
>> iommu_init_ops pointer, which it does only upon success. (Unlike for
>> VT-d there is no late clearing of iommu_enable due to quirks, and any
>> possible clearing of iommu_intremap happens only after iov_supports_xt()
>> has run.)
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> In fact in iov_detect() it could be iommu_enable alone which gets
>> checked, but this felt overly aggressive to me. Instead I'm getting the
>> impression that the function may wrongly not get called when "iommu=3Dof=
f"
>> but interrupt remapping is in use: We'd not get the interrupt handler
>> installed, and hence interrupt remapping related events would never get
>> reported. (Same on VT-d, FTAOD.)
>=20
> I've spend a non-trivial amount of time looking into this before
> reading this note. AFAICT you could set iommu=3Doff and still get x2APIC
> enabled and relying on interrupt remapping.

Right, contrary to ...

>> For iov_supports_xt() the question is whether, like VT-d's
>> intel_iommu_supports_eim(), it shouldn't rather check iommu_intremap
>> alone (in which case it would need to remain a check rather than getting
>> converted to ASSERT()).
>=20
> Hm, no, I don't think so. I think iommu_enable should take precedence
> over iommu_intremap, and having iommu_enable =3D=3D false should force
> interrupt remapping to be reported as disabled. Note that disabling it
> in iommu_setup is too late, as the APIC initialization will have
> already taken place.
>=20
> It's my reading of the command line parameter documentation that
> setting iommu=3Doff should disable all usage of the IOMMU, and that
> includes the interrupt remapping support (ie: a user should not need
> to set iommu=3Doff,no-intremap)

... that documentation. But I think it's the documentation that
wants fixing, such that iommu=3Doff really only control DMA remap.
With that ...

>> ---
>> v2: New.
>>
>> --- a/xen/drivers/passthrough/amd/iommu_intr.c
>> +++ b/xen/drivers/passthrough/amd/iommu_intr.c
>> @@ -731,8 +731,7 @@ bool __init iov_supports_xt(void)
>>  {
>>      unsigned int apic;
>> =20
>> -    if ( !iommu_enable || !iommu_intremap )
>> -        return false;
>> +    ASSERT(iommu_enable || iommu_intremap);
>=20
> I think this should be && in order to match my comments above.

... I think || is correct to use here.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:18:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:18:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219953.381010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqre-0001Mv-LS; Tue, 02 Nov 2021 10:17:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219953.381010; Tue, 02 Nov 2021 10:17:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqre-0001Mo-IO; Tue, 02 Nov 2021 10:17:58 +0000
Received: by outflank-mailman (input) for mailman id 219953;
 Tue, 02 Nov 2021 10:17:57 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhqrc-0001Mi-Uv
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:17:56 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 3f34beef-348f-4a63-ad9b-1aa71ef6b259;
 Tue, 02 Nov 2021 10:17:55 +0000 (UTC)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2111.outbound.protection.outlook.com [104.47.17.111])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-14-qe4u5NbIPbefkjTNXThgqg-1; Tue, 02 Nov 2021 11:17:53 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4605.eurprd04.prod.outlook.com (2603:10a6:803:65::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Tue, 2 Nov
 2021 10:17:51 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 10:17:50 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR3P281CA0054.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::18) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.5 via Frontend Transport; Tue, 2 Nov 2021 10:17:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f34beef-348f-4a63-ad9b-1aa71ef6b259
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635848274;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=oYARCj2u82W0gfYot+NYl8jrxu0Zq7pcXQvz3SehTog=;
	b=GrWZ+KqJaeZpxsJ4JW/X5++q7iyAS5r65gNyjs7vRpcCfibhlSLcOVLFH6IQGldNqPga+a
	Uh1jrCna3LT26u11ICbiJpiulH/+4+YEb68nrQNqcUhewF72a7jcijbMfJefiX1ed70S6y
	FgXstVC8upJ83VcHFtgroEb8ksy2RyM=
X-MC-Unique: qe4u5NbIPbefkjTNXThgqg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BOYZMoMgnl58ClVMrUDTrxOCgRKAGEuBO6ng/1c3us5I6RoznFs9HZJB0h/kFlAv6kzOe7JN+n5hyehgrXEG1TD4Ir9YlQ1dkc30RUjll1SU6SEsMUBLm+l0j6ksWTQQnl/QLMX81Vk1Xevjo/EiDG301qDJtH1pZyd/ZBGk3zt3xEJA8iRoN21W1RdRBWIhPqhWaA3RCTfV5UEGhuZeGS2BIpKYQsEq1yPkJqJfl8A39afbi3w9C7TMB39XSs/zGnQIUldSL0Ge2GkDKJYbGz38uaXAthZh2yyCIM5mYESK9C+IBHCr2bta5I1MX4T4S9hnvJRxJGQ+W2HtffdniQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oYARCj2u82W0gfYot+NYl8jrxu0Zq7pcXQvz3SehTog=;
 b=gcdBDF64N2Ck1beOVxmixV0I/5iQXZKf+o30QdC41+HhYWyN3bMbNXSzqyAr3LuLFzJfXcToBK7FR3o9o+UZPNgmQHx5bpswlvXCePHUGTGt+To2hwgadLp5rYJyft4RmgMyyVbQcqFpqqIywsKvyDrkoygj2GOAEz3HooNve96O/jSEgUwgjOI6uWM5i+clU5F3tY2ekquVvoqQGEKNCutJY5lspBIrrPl+1JhfAi64uR/AyWGDa//DslLYXzeA+9tsHmO9Bq40VyaTUIjih1xlOB1RE5JIhzGADbzB9CUsmS8THAh+/wKrgcyycDu19hahNKpwRNfSP/tENixKyg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a51d6449-caba-8a67-3c11-b593574f3839@suse.com>
Date: Tue, 2 Nov 2021 11:17:47 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 0/3] x86/IOMMU: enabled / intremap handling
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: Ian Jackson <iwj@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Paul Durrant <paul@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
In-Reply-To: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0054.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:4a::18) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 90ab899f-7c79-4536-e77e-08d99dea0610
X-MS-TrafficTypeDiagnostic: VI1PR04MB4605:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB46054C6D4D7B6874ACAB09CDB38B9@VI1PR04MB4605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	s3JbgoaolaoA6mqQ45ohoIoZVMNe3mhznEbrC3ZUtKIe4b++1PRmJ6bEoR0nX5LCUyN/QrWTz0hcM00rOdJlFEbdxhFAqKaDdfSOiQ2aQI7teo7IRqwZM/YmidhRLv01Zpu3/YuyUNs01/c8Q4IRd/d8yA68vM0r5gCi0CojzUKkxAQr+zNGJW7I2f1c6TqmkuLd1s1GmArR6rUbvLnBo2CQcvQuS2ll0sDj8YpN6/p4elQ+2g7mhCC2L8kvB4aLHhuZcszjWbk1u9+nF4vvJP8eBCBePlp7thoGMBdVnqQKOC+Bc1uVcWfcilGWJl2KDwiY1G9OUEVtXEXUgvADE2JtnO6qEibz5Ke2HjtnY+A1fEFHgRZt6uS4JI7+zAl9Xv73QAEeeYJk03WM3Pn7j07PIUZYNEC+sNgTzRfJqx9fJAcLvZk6krNYpimgTCB17XkChHf3GopswrFYttTChYSnhmTbqzEufz/5ppkHK5HoLUOzYnEXgmSKahPoW2Sk6akawAauXbdHOuRIq4WRIelROlCdBnCPdmODvXd3UHg872KsvRCRUf5RCgVbsPDkGXfhy2FMAYXXdkVjIAA8JKAjkwMV7ghdYpbCGcVhzcVoayjJ1TsJybGz0lm5PEdwT0aUl44lvJrx53czDN8K2DVJ/+fn72Y1aDktAqueTE3TT45teThPZGeXbeESTOUnbGTI3KESfiXMEop4bwGYb7eYKprI3eT0/iDolouJfbda7p5Hu8QkxsxVeOFjxsea
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(508600001)(110136005)(8936002)(66946007)(956004)(2616005)(5660300002)(4326008)(38100700002)(186003)(31686004)(66556008)(26005)(16576012)(316002)(86362001)(54906003)(6486002)(66476007)(2906002)(31696002)(36756003)(8676002)(4744005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RHMzRWRqb04rUFpEaCtiQ25CZ1I3N2t4elVleC9zMThURStVcHZDYWd0cnhm?=
 =?utf-8?B?TkJDWGVCR2IrOWl0cFRaQjZmSER6WGw2aERDVDFUa2pmbTFoMjBjYTJ2RGNt?=
 =?utf-8?B?elhjVm0rTzBzTGJhMksyZDloQ2IrUUZrVUxrNGg5N3pxUHB4Tm50aUZ1VTND?=
 =?utf-8?B?NTZIUkpiTTdNZHY4Z0xXSkdqU01wQlVYVEhJdzBkVVh5eEhvaW1xKzVQN1Zq?=
 =?utf-8?B?MUgwcHNrSE9NcDJEZkNEOS9kZTkwb2JWMm5pcldWRWE4azZrMTUrYzhlMmR4?=
 =?utf-8?B?WExnWTdPVGIycWZ0TGRtQnloS0JRenFwclRWdXJFKzlNVVUvMTVoblBKdjlu?=
 =?utf-8?B?UmtycEVjM29BOGtHbXczeVU4VUZad2RmL1gySUc5aHVqZkp4a3hDQWRDTTl0?=
 =?utf-8?B?RG5abUk2dG9VTEtDc1lEd2ZQRitPSmM4SGlxSDJRLzlqM0JaQ2J3SUhoUVI4?=
 =?utf-8?B?emFlUVpNNkVENzdRK2tqL2Q0WE5JbTdkM0FYTmtlcU9tK0Q0Z0RJUmd4ZWZU?=
 =?utf-8?B?S0tBemc0TEJzNTB2bjVjQzhaVUlVQzB5VjExTGhzalUzUm1JckhNYVVsNWtJ?=
 =?utf-8?B?ZmZ1YnN2a05JUVBSZGJhQzVhS0xmWlBnR2VFZkV4d3V4dVpuV1cwRFJBY0M2?=
 =?utf-8?B?ZXNhbUdadllsazhYRmZmcndpZVFsNWltWDRtdi91MXkrVmtkUWVUeEd5SXVl?=
 =?utf-8?B?b2ppQU43UmNvRUQ4VUNmWkdFcW1YUWcyOS9DTFFld3NtNi8ycXJwcTBWVFI1?=
 =?utf-8?B?bDNCREN2QXB5RW9qTUpHaWNtTGs0elJ2V213SmQ1RndGL1VuR2Rlby9mbXlB?=
 =?utf-8?B?aCsxVENkRCs2SzFCaWJENDRKVFFIb2tXdUdsaXA4STZTZFhValpFRVJ4TlZj?=
 =?utf-8?B?TGN0NC9sZDlxcXM3aUxOb25YQUd1d1NuR0hOMnpLZWM1R0lIRUtDSWp6OUs1?=
 =?utf-8?B?STdXMnIzZ1ZUR092NVl1YnZpNnorU2VjdHNma1kycXNxSzZWTllPZDBZZEZk?=
 =?utf-8?B?YktpS1VCQU15UWt6a09PWExEN1B6Z2prMnJVOXFXd1c2cDBUR08wcXJ3R0xt?=
 =?utf-8?B?Zk55OUlGYkNURno5Z2R1SVdxUlplUEw2aTFNQ3I2SzQ2VnVQWFF6RXprSmlq?=
 =?utf-8?B?cVJUZ29sN0VVRjljRVVOUWo4Mk1FK3VWbFYzWUJib1N4M0NrM0FDVDhmcmVH?=
 =?utf-8?B?TVpLc1I2eEhScWhsN1Bsd2lDcDlnb0Jnalk3YzZLdElJbUtUZjRyanlYeTZQ?=
 =?utf-8?B?emtwNk9uK1pNWEg1ZXhxcUM5VXBuQytFcktqUHkyb0dZVFF5czhrOC9UblEz?=
 =?utf-8?B?cXNZSGJiNjM4clY4STJ5MTAvRHZJdFR3dU1Pa3ZIWGovMnNqWm9vYlVMTnVU?=
 =?utf-8?B?UjBCOWZRU2dNeTNFSElSRjVVdWdHRmxKcmFaMkUrdXA2UGNUbUhHYjVua3JM?=
 =?utf-8?B?czcxSko4OWh1UmEzWDVhZUFscUpDM2RScjVGSUJxcHlrbXdON28xQzh0MFNK?=
 =?utf-8?B?MjJGQ3c2YjlkaUN5MWQvVnZWc3ZtUWhyKzMyN09DS3JKcDBScHc3c0txZmRD?=
 =?utf-8?B?TGdNOW0rVGE4QmgyMnpCTElkRFBEOEFVb2VEaHdaV2luazB2NGdjMWVDOXVJ?=
 =?utf-8?B?R2dTOURnU0lqeU0vWitmMHZYQ1ZDMVBhcXRYUThydzVmdWZOSzVXYzVhTlRS?=
 =?utf-8?B?TDN3US91TkRxZ0E5dFQzVll0dk5Bc082QU9VNmdYMmpTUGxiMVdIRGdqdUJF?=
 =?utf-8?B?dHpmMHVodzA2SHFHY0RSMXk1ZkF5cllGWlZSZUFwbktBVUhma3JLYjBCemh6?=
 =?utf-8?B?bFc1WkVxMEVMSjBudUtFZVNFUnkwb0YwWFpnSUExV3pBdVdJMldtOWQxcWJz?=
 =?utf-8?B?cHhQM21Jd3g2azBiTzhZSld6U2hYOXNTdytBaUN0OUxQOS9VM0RMb01WSGZR?=
 =?utf-8?B?RnlvQVFiN3dMeEZOM1IxSDc2Ri93S2J0aThZVU5YZ2I1ayt0TndtR0NLdERF?=
 =?utf-8?B?WFUydlcvS3lFbDFLSUJBSE54V3F0MVVzZlBIQURobTZwOGtiRDdISkZsTVhE?=
 =?utf-8?B?Q2VLb08zVWttWjN6Y1UrbTJ5ZS9YSHVBSVo0VFhyRmxQSkpGbUkyWFQ5cjlN?=
 =?utf-8?B?dFJSMVRZaFovc1puSHpGRHhLMlM5N1dmaUJsN0c3ZWhxcHlVdFA1U0hscDdx?=
 =?utf-8?Q?KUp/DjmPOK3ZZtVNkd5oUjI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 90ab899f-7c79-4536-e77e-08d99dea0610
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 10:17:50.0414
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3HJP62Bkl+udLIrB14ZZx+MCqNGcqRYvc9CG4oJXEcjTMv8ykGQL0K93wL6tfe39zc+Ncwr6wXeYh67cNynRJQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4605

On 21.10.2021 11:57, Jan Beulich wrote:
> In the course of reading the response to v1 (patch 1 only) I realized
> that not only that patch needs further adjustment, but that also
> further changes are needed (and there's likely yet more amiss).
> 
> 1: x86/IOMMU: mark IOMMU / intremap not in use when ACPI tables are missing
> 2: x86/APIC: avoid iommu_supports_x2apic() on error path
> 3: AMD/IOMMU: iommu_enable vs iommu_intremap

Ian, while we further discuss / refine patch 3, the first two have the
needed R-b, but will now need you release-ack aiui.

Andrew, did you perhaps have a chance to actually try v2 of patch 1? It
works for me when suitably configuring the BIOS on my Skylake, so I
wouldn't feel uncertain in committing without a Tested-by, but it would
feel even better if I had one.

Thanks, Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:21:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219959.381022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqv3-0002jL-5Y; Tue, 02 Nov 2021 10:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219959.381022; Tue, 02 Nov 2021 10:21:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqv3-0002jE-1a; Tue, 02 Nov 2021 10:21:29 +0000
Received: by outflank-mailman (input) for mailman id 219959;
 Tue, 02 Nov 2021 10:21:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhqv1-0002j4-32; Tue, 02 Nov 2021 10:21:27 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhqv0-0002cm-Rs; Tue, 02 Nov 2021 10:21:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhqv0-00025I-Ib; Tue, 02 Nov 2021 10:21:26 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhqv0-0002ZK-I3; Tue, 02 Nov 2021 10:21:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=euI8L/APzhYySRaWAyhYITj4VPHdhmWtPCwifbAeUrA=; b=gEx+mm9M50L8BpwdX9atad3NT7
	yNUx6beliPxAKAKF+6rd3UgGaReuDXmVq1rX5KTZpSMg4uIwvTjWIdogP9/Ym20NOq+m0pC1A8lfP
	5E6+lRF+LWIi2SARmoa0+zhIoemzVkuI3nVltGXtJH8Cpb8yn6gw4Q4ifeB5CKdLH8uM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165985-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 165985: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=cc54647fb0165166435d85c3df203e75ba11b0ab
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Nov 2021 10:21:26 +0000

flight 165985 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165985/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              cc54647fb0165166435d85c3df203e75ba11b0ab
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  480 days
Failing since        151818  2020-07-11 04:18:52 Z  479 days  465 attempts
Testing same since   165985  2021-11-02 04:18:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 81644 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:26:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:26:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219969.381039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqzc-0003P1-PK; Tue, 02 Nov 2021 10:26:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219969.381039; Tue, 02 Nov 2021 10:26:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhqzc-0003Ou-MA; Tue, 02 Nov 2021 10:26:12 +0000
Received: by outflank-mailman (input) for mailman id 219969;
 Tue, 02 Nov 2021 10:26:11 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhqzb-0003Oo-BM
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:26:11 +0000
Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 4bae8454-3bc7-11ec-8554-12813bfff9fa;
 Tue, 02 Nov 2021 10:26:10 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bae8454-3bc7-11ec-8554-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635848770;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=fP9GhfUpuHXlRfro8yweo9DNQmJiQHuZqbQllEmNGEU=;
  b=M2z/h7p4ItcAVR3E8/i5M7cNwndDMaoW4w0vNnnlOQ438OQ9S2AIzrtj
   PEVTmF2F1PYc9v65YGZf0StjtBqjIcuyTDpeMz2nceZgJX700KXKiQU+5
   t0zKeBiutpNhJ8VEC85FKfv3G+pGVo5DUQD0wggvuK8b0oJbt8RJ9+LXR
   Y=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: H//Xupu3GSYFOCsZTdr8mi09v083DQVuCjRqZzieSIpPyiY+Ll2wWuXC0MDF01WPxKjyG/tgmk
 1T8MOhGKSrscD8IM3byPnUVM2uDpMqiuXgCwstOHE+zXum+6/ThMH+uwIG1ngyqaQYYqSADxOt
 wglEDjPnMOT8lLlOX/qD56wQuBpZ955AnMLBKzjR7IElsP4pyn9sTyBFER0Cj0Fk3nQZW/lEq3
 S1KJhPXsUo/uZ6tguDwgfr0l4bT19CaokCqAFD8M5Q04AcJNJin/Qz4MFAkUjGkEh6Ik+X6Xew
 1dbxM2ozXNJsl2+EICviINL8
X-SBRS: 5.1
X-MesageID: 57253776
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:4oV/eKgklI0klmKSGcNfs+ozX161jRcKZh0ujC45NGQN5FlHY01je
 htvDDjQOv/eZjf9KogjbYq1p0sB65/Qn4AwQQVoqChjRSwb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cw24Dga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1mrMzpaA1xMJbildoMVEECAi5vFLFZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2ZoTRqmBO
 aL1bxJsMEucIA9hK24XK7EXh8KMq1vYMD9H/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 nrP4mDREhwcctuFxlKt8Hihm+vOliPTQ58JGfuz8fsCqE2ewCkfBQMbUXO/oOKlkQiuVtRHM
 UsW9yEy668o+ySWosLVBkPi5iTe51hFBoQWQ7ZSBByxJrT8yB/JX0kOFjB6RtEYpchuHy0lx
 3aVgIa8bdBwi4G9RXWY/7aSiDq9PykJMGMPDRM5oRs5D8rL+99q0E+WJjp3OOvs14CuR2msq
 9yfhHFm3+17sCId60msEbkraRqIr4OBcAM67x6/somNvlIgP97Ni2BFBDHmARd8wGSxEgnpU
 JsswZH2AAUy4XelznXlrAIlR+nB2hp9GGeA6WOD5rF4n9hXx1atfJpL/BZ1L1pzP8APdFfBO
 RGI5FwAvscMZiHzMcebhr5d7exwlMAM8vy+DpjpgidmOMAtJGdrAgk3PSZ8IFwBYGBzyPpia
 P93gO6nDGoACLQP8dZFb7x17FPf/QhnnTm7bcmil3yPiOPCDFbIGeZtGAbfNYgRsfLbyDg5B
 v4CbqNmPT0EC7agCsQWmKZORW03wY8TXMur9pcIKrbbSuekcUl4Y8LsLXoaU9UNt4xel/vS/
 2H7XUldyVHlgmbAJxnMYXdmAI4Dl74mxZ7iFSBzb1uuxVY5ZoOjsPUWe5ctJOF1/+1/1/9kC
 fICfpzYUPhITz3G/RUbbIX889M+JEj621rWMnr3eiU7cr5hWxfNpo3ucDzw+XRcFSGwr8Y//
 eGtj1uJXZoZSg1+J8/Kc/bznUiptH0QlbsqDUvFK9VeYmv2941uJ3Cjh/M7OZhUex7C2iGbx
 0CdBhJB/bvBpIo88d/og6GYrtj2T7siTxQCR2SCtOS4LyjX+Gan0LRsaufQcGCPTn7w9YWje
 f5Rk6P2PsoYkQsYqIF7Cbtqk/4zvoO9u79Aww14N3zXdFD3WKh4K3yL0MQT5K1AwrhV5Vm/V
 k6Vo4QIPLyIPIXuEUILJRpjZeOGjKlGlj7X5PUzAUP7+C4oo+bXDRQMZ0GB2H5HMb94EII52
 uNw6scZ5ju2hgcuLtvb3Dtf8H6BLyBYXqgq3n3A7FQHVub/Jol+XKHh
IronPort-HdrOrdr: A9a23:iGwV/KsGT/jWAIsBo42LtGgf7skC7IMji2hC6mlwRA09TyXGra
 +TdaUguSMc1gx9ZJhBo7G90KnpewK6yXdQ2/hqAV7EZniahILIFvAY0WKG+VPd8kLFh4xgPM
 tbAs1D4ZjLfCRHZKXBkXiF+rQbsaC6GcmT7I+0pRcdLnAbV0gj1XYANu/yKDwJeOAsP+teKH
 Pz3Lsim9L2Ek5nEfhTS0N1FdTrlpnurtbLcBQGDxko5E2nii6p0qfzF1y90g0FWz1C7L8++S
 yd+jaJqpmLgrWe8FvxxmXT55NZlJ/IzcZCPtWFjowwJi/3ggilSYx9U/mpvSwzosuo9FE2+e
 O87isIDoBW0Tf8b2u1qRzi103J1ysv0WbrzRuijX7qsaXCNXsHIvsEobgcXgrS6kImst05+r
 lMxXilu51eCg6FtDjh5vDTPisa13ackD4Hq6o+nnZfWYwRZPt6tooE5n5YF58GAWbT9J0nKu
 9zF8vRjcwmP29yV0qp/VWH/ebcHEjaRny9Mw0/U42uondrdUlCvgslLJd1pAZFyHo/I6M0kd
 gsfJ4Y042mdfVmH56VMt1xNvdfOla9Mi4kD1jiVGgPNJt3c04l+KSHq4nc2omRCeg1Jd0J6d
 L8bG8=
X-IronPort-AV: E=Sophos;i="5.87,202,1631592000"; 
   d="scan'208";a="57253776"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kAUOZKsMwwm7d/86z64gP2PH/n7tYjHsBfnBG25M/2/OgX9Z/ANrnc+Am/o6JS3qcsYINuiJ3p9M70s+9+TC2gWzKhcQEKKjyqJAF3/EucVs4lMmn8jphF6y/qyzdYorT3+IkR5X1rNQdSqjzHpnZ2Hj5R3e+/clkeIAsJHcWshjQjFIT85ZflOZ1RfLGeLdKgVj2NYNQtFmNX1xb+ILvp+BM1FbyhaNQYo8ikrsiOMwfYCULi5jUyp2egJxoA891/DMYS1w2Y+pj308fNRrd95P0adY0yO1tFvg3SqbFnI6JQrSPWdCfki1vmdXGDCeIlih+Oe0LA5llDjEa7PJvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DKzL8tHt5zq+OtKw0WawyFTqW8we2cxtopue/iv5gcE=;
 b=Psu4KAY52D9yQNjNC2nqKXFwByXrRwLsiAV71EghYyhAZdZpWUidguc4yEC9/4/DFOCxKs/VSD5jw2hzWgbU5HxPhLUvKM/0pXGCGblz1p+QRQUdO+EDotGlPE38aK4YZSG6urM4TgbSg7vZlbJl4rU0hqulG2dP1myQ1+pvu5mIpjvXPEQAa7I/DNPHGJ9rlj2b0AzdqPQ7cFyM+DH4iIzYLk8NzA/DPf+2eVusVXpiK6Swh/cg6g9CgTRsVzqJjELNru/MXu7EK1w3LP8SPBuhdYTuQg2dtTRv9E09zYsfqxRpKTBsrxKKAALy2QNpOlSoXatd4OUgg9cq5tsF0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DKzL8tHt5zq+OtKw0WawyFTqW8we2cxtopue/iv5gcE=;
 b=HdWYF2F3u0/vNOXnUJcA2RWvaJ0xy0uIghaogaap7LAhicIDzvA8ZVln0k+BGe84xRxj9F+boHmZbzJsLmw7iJreVCBIKR1ccFmyC7Dt2By6rBZFs1ebolQlPVLQykKS1SVbIGQZNBEfzDYQFEOidiJVwXZfSI55KpeS0/nL9p8=
Date: Tue, 2 Nov 2021 11:26:01 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>
Subject: Re: [PATCH v2 1/3] x86/IOMMU: mark IOMMU / intremap not in use when
 ACPI tables are missing
Message-ID: <YYESOQU4M4E/MpPP@Air-de-Roger>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <efe34081-c813-0e37-175c-8553b395e6d9@suse.com>
 <YXLeMsuykEhSdfUg@MacBook-Air-de-Roger.local>
 <8beac790-874f-3953-6cca-677c9bddfcac@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8beac790-874f-3953-6cca-677c9bddfcac@suse.com>
X-ClientProxiedBy: PAYP264CA0025.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:11f::12) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: aa76427c-724d-431d-0f65-08d99deb2e21
X-MS-TrafficTypeDiagnostic: DM6PR03MB5338:
X-Microsoft-Antispam-PRVS: <DM6PR03MB5338E848CA1AFD9D1B6EAF2D8F8B9@DM6PR03MB5338.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: VI4FStEyI8u3y1tKoM4jFj/YRQz0wu2tydkHzmXya+dIg1DQ5u0VfJYQfSCNd+/E31FCLfTetrNyFxcQQQYDRi22HVhvwA4N7NmL8BghyA7l6rCrkcbc/SqdRqvtYgCLaTqIjBRHs4fmdWWBxpsJ27oIpD1UKHSMhgeBXmftgrQiJyNYvyv5GInz1+L11IMaDfeiT+K4ILeNhiw56+gasZz/pLqDs/Uaa1nHvuxFzMkElx2Cv89kIsfbAL9Ea0KpVhDPPw33Q7BrvdFSjYco0+3wVxWiwHP9SVDfhZRV2UA2Ule55ImZitdnKiEKgz9uBw6C/G6+YXPeBDCD1ls41GAjiTk31m69ZE77Nu+y9qJ44SwM8D0J5o0VWc9D73heoqlG94mVmJQg+NjQNCgmJwtOSe4OFfwRfZue0DYp/4xWnTw1yRxQoDrPOAfGAvYDuiT+2PrEMj1bwJCEWgVEA11egj3GEnroNsFWtO9nonLIYRFyI54m8s1aBSOL6aLjpHyoAliJ8unipnvb26QOJM0E3OpfE3UsxZsLRybk5uvIAU5rh7hxejnrEK8LVDSwgwMpt6XB/+JelQOIS6fHiraQLsgaAxWaxdKJ4Kta7O7iUDfRYbtvAgwej/BK6Sc5SNBHfBhhJIpd7MvOFdth3A==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(8936002)(8676002)(4326008)(956004)(316002)(66946007)(6486002)(38100700002)(53546011)(9686003)(508600001)(26005)(66556008)(5660300002)(83380400001)(66476007)(54906003)(85182001)(6666004)(2906002)(33716001)(82960400001)(6916009)(6496006)(186003)(86362001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b3RDT21hRWpuZkxYWEdZbVdwc3k5OEQxdFdsUVhYRFpFV3ljdkVJVyszUDEw?=
 =?utf-8?B?V3p0ak9QOGxZcVJsSFNzZVVGY2VoRTh5QkV4YytzMG10MUgyaFR2VE1SaHdE?=
 =?utf-8?B?b29TanY1KzBUbUZKclRCd09UUHlFUFpvVjNqREI1R055ZCtMQnBBTld1WVVw?=
 =?utf-8?B?V0Q0ck5MVExpZlFJdGZjNFBsKzBOM0RQR3J4ZkJHczlQSTNqa3hVTWErNmhy?=
 =?utf-8?B?c2hmU1hBZ3hZMFdDcUthY2tGUGw5emRMdnJXTk5aeXdKZkMyNFk5TTR1UDhp?=
 =?utf-8?B?OE5pVVg4ZWFLbjVJVU1xenNiTllSMHhOb3cwaHJVME9oMHZTVWVTNlVEMVVr?=
 =?utf-8?B?RDRLRFBBZE9Lb3dpSTNkRVh5Q3RkemY4ZXQzRmZpbCtUWEh1QUdjTmhWdWhr?=
 =?utf-8?B?OWVzYS9mOHlrT1VWaFprdlVTZVRxRWVEb3A2VXhoTFZ2LzVFNjVSN3VOTktI?=
 =?utf-8?B?QTA4Vnp4YkJRaHFpelh3YnNLSDAvNktVUUhwL0ZHZkdsQnpicUc0M2RDSXZy?=
 =?utf-8?B?OXdFNHo4NGppR0ZPY3VhcnVnMFFnVlRza0lZVklJOUlwUkc2MlNSYTQyZEhm?=
 =?utf-8?B?d1FQK1pBUmFsTzB5TXFpU2Q0TXVHSEYzZHNDYzR0OUxHMnBEbkZ5UmowRkQz?=
 =?utf-8?B?VkQrZ2lqcTR2K1NjL2Q5Y2lISGtIeFdqNzBuNFJOcm1hSDBna2d3WG9BZjdy?=
 =?utf-8?B?MU1INlNacGFpNUVLcldGaENYMGN1VXhzUDk1Z1pnQmpqWnRFUnd0UHF4RlNU?=
 =?utf-8?B?NEpaMjVuVWhSeHo2WW9oTkxESzhHMnYrbkl4VTQxYnFRUlBWYlpPNmhocml2?=
 =?utf-8?B?UStBQmpmZDlwMFlXcXFXVURBR2RWSE5zcmNsVzRSVDZnR1dyNEEzMlFxQ2hF?=
 =?utf-8?B?TG1JRXI3UUkyQ25mc09wYld6cEJmN3Vocjh3L1d4c1U2bGhVNW5oeEhZYTc5?=
 =?utf-8?B?bE83dWQyQXQ5SWI2S3dtSVplL2MwamVhWitXaVQ2ZU1mdkFBZjBKZHkzMys2?=
 =?utf-8?B?TnI0T0lWUWVYd3Y1SWRqYTcwSUdvMUlxQzFjaFNHaE5tczhneUZoVVVIRnVP?=
 =?utf-8?B?MHRhUmlaNVhpcDlPbndicHJCQ3BMRzlNaGV0Nm1Ta29oamJEWXh0Ly9LSlRj?=
 =?utf-8?B?WGtpVDN0TC9STXpnUytRUStXWGRpSEhheG8xVWMrNHFPZHBONFM2Z2VpSWR0?=
 =?utf-8?B?T2RyeUNRTkphMEFhWmNEaEJGYllNeFlnNHhYVHRTa0hUZi9ac1cwYzhoZlB0?=
 =?utf-8?B?SjhGQXhvSTROb3dPTFRNV295ZjZwdFR1S3FBbVIycFByWE1pb0M4VDZWZWxw?=
 =?utf-8?B?MDlXYjB4NVJXMGVTalRDSDMwOTZpYzU4cHBObHhhSHEvOUZkNmw3T3FISkZl?=
 =?utf-8?B?Ym1IZU9wOEtLV0NERnd5dXNHZGd5ZGUreUNJTnV2NVBpc0Y0TitObXh6V0xy?=
 =?utf-8?B?S09GbFZyS3hVa0dMN29ZV3FSNVZHbHpmUk5iWUhMZ1FtK095Z0lvTVhuS09V?=
 =?utf-8?B?SndiZGVoMEEwL0tHZ3prMzQ0Yk54RS9aVFFYbVNmZXZEQnd1bjlrQ2tJZGs4?=
 =?utf-8?B?YThQcmlPUm5YSndKSCtpWm9WamlZeXBESWtRWmdYdExIOGFFOTNicHhSUHJJ?=
 =?utf-8?B?WTh1WWZoMVpmbnFjWUhYaUJHTTJ6cjd4UisrSGZVeU9CSHBXNGVXckhHaHJJ?=
 =?utf-8?B?TDlJNTZUYUhQZzRERnRaK0ZxaVIxT0k3NXAwNGw0dUhDeWU5R3VyTmJsZm5D?=
 =?utf-8?B?UXprWWR4M1BDR1pwdEpURi8wSGx6QWgwc3BPa0c0aUNUTkpGQ1VaK1c3SnM4?=
 =?utf-8?B?SmJBcDZ1bUc1UnhsWDZzUUJ0ajVUV3pBY0tzcHFDYjNsWm5JTFdWRmwxTlY2?=
 =?utf-8?B?MDAwcUlwdCtBQ3BUeExGcUluQm5TdzBzZEFUZ0lxS3ZYVHhyWWJVbGtpMDBu?=
 =?utf-8?B?d3JTd3ZHNE9Zd29oMVI2dU9IeFJ5Skx6TGlYUHFZZmZBV2FpY0tkcUVhT3ll?=
 =?utf-8?B?M05veGV6bXMwMnBLVHl6YS9IaUgyeEQyNTFpVk9HZjVabzhONTY3WXc4U1Y3?=
 =?utf-8?B?eTRGZTljT2IrWC9OcnF3SFY2bW02NElONkpUOEU0WmZtMENvZDMrMXhZVnh5?=
 =?utf-8?B?aEM0b2REcG9EU3ZqV015Z0ZrMk1GeGhYVFRqWW5JT0xMSW9wZkZ4SVpXc3di?=
 =?utf-8?Q?hIQVnGJJQhXljon4DRXoadY=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: aa76427c-724d-431d-0f65-08d99deb2e21
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 10:26:06.7614
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ojojhr3MfB3J1ZzcJ70cVAv5yih7/X4CW2VZYoCoXwJFLeSCAWZzIkuQY5AA7VYFqinRp6ilct9xRwMO9nQdMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5338
X-OriginatorOrg: citrix.com

On Tue, Nov 02, 2021 at 11:07:25AM +0100, Jan Beulich wrote:
> On 22.10.2021 17:52, Roger Pau Monné wrote:
> > On Thu, Oct 21, 2021 at 11:58:18AM +0200, Jan Beulich wrote:
> >> x2apic_bsp_setup() gets called ahead of iommu_setup(), and since x2APIC
> >> mode (physical vs clustered) depends on iommu_intremap, that variable
> >> needs to be set to off as soon as we know we can't / won't enable
> >> interrupt remapping, i.e. in particular when parsing of the respective
> >> ACPI tables failed. Move the turning off of iommu_intremap from AMD
> >> specific code into acpi_iommu_init(), accompanying it by clearing of
> >> iommu_enable.
> >>
> >> Take the opportunity and also fully skip ACPI table parsing logic on
> >> VT-d when both "iommu=off" and "iommu=no-intremap" are in effect anyway,
> >> like was already the case for AMD.
> >>
> >> The tag below only references the commit uncovering a pre-existing
> >> anomaly.
> >>
> >> Fixes: d8bd82327b0f ("AMD/IOMMU: obtain IVHD type to use earlier")
> >> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Thanks.
> 
> >> ---
> >> While the change here deals with apic_x2apic_probe() as called from
> >> x2apic_bsp_setup(), the check_x2apic_preenabled() path looks to be
> >> similarly affected. That call occurs before acpi_boot_init(), which is
> >> what calls acpi_iommu_init(). The ordering in setup.c is in part
> >> relatively fragile, which is why for the moment I'm still hesitant to
> >> move the generic_apic_probe() call down. Plus I don't have easy access
> >> to a suitable system to test this case. Thoughts?
> > 
> > Indeed, that seems it could go quite wrong, as apic_x2apic_probe will
> > see iommu_intremap == iommu_intremap_full (the default value) and thus
> > could choose cluster mode without real interrupt remapping support.
> > 
> > At first sight it would seem possible to move lower down, but as you
> > say, this is all quite fragile. It's even made worse because we lack a
> > strict ordering discipline or any kind of dependency checking, so even
> > if we mess up the order it's likely to go unnoticed unless someone
> > tests on an affected system.
> > 
> > While we can try to solve this for the upcoming release, long term we
> > need a stricter ordering, either as a comment, or even better enforced
> > somehow in code. The x2APIC vs IOMMU ordering has bitten us multiple
> > times and we should see about implementing a more robust solution.
> 
> So what's your thought then: Make the change (in another patch), or rather
> leave the code as is? I'm slightly in favor of making the change seeing
> that you agree that the rearrangement looks to be correct.

Sorry this wasn't clear, I've rambled too much: making the change in
another patch would be my preferred option.

I still wonder whether we could place some kind of checks to ensure
the logic of interrupt remap vs APIC initialization is executed in the
right order, but that's not release material.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:29:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:29:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219982.381057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhr2X-0004BF-F6; Tue, 02 Nov 2021 10:29:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219982.381057; Tue, 02 Nov 2021 10:29:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhr2X-0004B8-Bx; Tue, 02 Nov 2021 10:29:13 +0000
Received: by outflank-mailman (input) for mailman id 219982;
 Tue, 02 Nov 2021 10:29:11 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhr2V-0004At-Oi
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:29:11 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5a0f54b3-c330-4c75-af1a-83f0f7dcacb8;
 Tue, 02 Nov 2021 10:29:10 +0000 (UTC)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A2AJpkc014024;
 Tue, 2 Nov 2021 10:29:08 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2171.outbound.protection.outlook.com [104.47.17.171])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c33fxg1ny-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 10:29:07 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5698.eurprd03.prod.outlook.com (2603:10a6:208:171::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13; Tue, 2 Nov
 2021 10:29:03 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 10:29:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a0f54b3-c330-4c75-af1a-83f0f7dcacb8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=X+LCeU6pdr28Tp/VLYSk16RbAEafH3tC2XbkMC+KrCkknCgYuU7K8fiER8y/spO/EG5x+Du8IN+6at5Frb0OwgNjgeVkTB8Oa23DLuRkV9a+LIPktj4LsmWyht1UAgZtjSTZvdZxBPck5mEqpLNICerkZrJvu/52bx+fldxXuopt2mNkPlL+JLV5KLsAEi33IhwLPhlmv4vojl2RI9tiluNjYwPeMhOXnVeufXwGcBzeBLVehTCByRTtAIlZXkg5Z4X4Idl3n7legoeVoq8cAg9mejICWnLtpnefcIqqb1A1uFvPff5tygRY0Or1x+HIJNYhVKsP3lDbMI616MquMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sHMJrkyGettprKv+VsATIUw9+3BknaR8awZ7JbiSOUY=;
 b=njOdmPOPRw2B3fWLq/oGbhBK7KQf5VFwo5R5jfEO65mAVyG/isFHAfy//3w+BRTqjW0k6FmbPqwuN3LY1PIBqhuHvJdQoisQOJl5DsiLnIQzJZKfY6Pg8et/Kp6wEXKIaf3z+XyfCKa004FJgzO/Atd1/rBiDduC4uBtbmwURNHk5Q3e/9jtG0E9mzgol7FVyWMrBKmTI4OleoGAAP+jb5Cl3jldDbmDQqokmiVRIULzZaVlapDO9J7oMxm79S4B9Vv9xHj8nE1t/9SRX2tIPzUDTllPcnpfUUvU1cHQJkIYX52R8LD2q1/OeZ7P6jnY/GtFMa36MknviUiAVUYOMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sHMJrkyGettprKv+VsATIUw9+3BknaR8awZ7JbiSOUY=;
 b=QAUBcileoyPeQ1PS6Tif3fd2lR3c31Ebblv8n9Rgu9E3hozF/56lYHbCdi8RUut+htX/YSXsgCFgDfbyvK+PYUkyBwv7FiWuRH2aaIFwuOl1eAGJWqTu1AY0g3eLNd2Ni6VoFGj1z+c9p7QrKoXBCYX84Ug6oaKaUKzO4MvORoZPChgSzb9KrEGOtL1VpkFgWA15i3vr/5W1zMgvNakgGp79y7QlZyaViqLz1nrEVd0bfrmXB3dfu6jCaU4Ppl1pSvo4Co/N7lD2rLHe7oKjJaUli1VIQoUgABgeNA6fFNZcYA2SwcxXdcmQW937aNPSbBCYSh4oUhhxynz6xbuI4g==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "jbeulich@suse.com" <jbeulich@suse.com>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 04/11] vpci/header: Add and remove register handlers
 dynamically
Thread-Topic: [PATCH v3 04/11] vpci/header: Add and remove register handlers
 dynamically
Thread-Index: AQHXtdAhL3wGQmCTxkGG8eG4L2Ylc6vkA8CAgAqTbQCAAZ7XAIAAB0QA
Date: Tue, 2 Nov 2021 10:29:02 +0000
Message-ID: <15c0fdd5-5e59-971f-2a78-30d5c20abd93@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-5-andr2000@gmail.com>
 <YXbRsbzLxZs94v0Z@MacBook-Air-de-Roger.local>
 <ba1fea82-e2db-89af-b48d-56d393bd4ce8@epam.com>
 <YYEM1lX8NhK7nfhj@Air-de-Roger>
In-Reply-To: <YYEM1lX8NhK7nfhj@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 8a81fd26-87f5-4a0b-66e9-08d99deb974f
x-ms-traffictypediagnostic: AM0PR03MB5698:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5698C555D692C5E4D7518D22E78B9@AM0PR03MB5698.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 qyFhbORYLMY36tWkb99jYDoaExtrMe6OoiAtOlHYcO7MH8UjhbX7l4GW2jyiQNKbgnYsgkoy3tgfmZLQ+GVr2JyIvNuqvuDl0Jmo1Y1dp7NfvBILrc0Brv6JDf4iv51DmhfCv4nHGi7I/0+ZOOinjbjip25KFTwxhGA41Jo5fKrPxLOjJnOtJQEpDlMD1h1MG6Z4fDaI9UPseP4K6yvqOZC6yrO8svDY4dTvlaGyhl40dzZ4v/4VcyFjrBmchx2hMvxro1xr6VTw+AJsvTGOCiRO7uqouxMeh8F133AEEpG4cLRmXFAL0XRA1RDVJi3hPXSKz8jmkv3YnU8tqKsluvoXcVCmFVjAJH1aCbrBgPwKIE7aTgnc8Ic3xIpGwFtbhgZgRcHtdHKT7NTVjC8dGXQY3ZYt2fEe47tVpGRamPRjT/OKM5y/FxrMo8Br+nO6WMommIDfBFItCo0Xzpz4xzVoNRoaG3EjPQszOvSbsbNycd2MJxUTxQ37YlgW28ywhShK1CwOZ8taSMe0CULqfqofCPIQRrGA+OaIbxd8pukwmaKl7SG6QBu5tGFk61kneM7dcD9qa2RlxNu+IXMTmBCuhE7xzbGkG4NFMhH+yBlXCt2b0Gt/ANZTCaXvQ3HcR6VO3aK4DvGNBUF3uI3JYrFthZKLNF3tApyGruwNNf7dVtxKzbRp8jRa8Jx2JUdxBOdXaUYkkXpmhAsEu5/N+VHMLsbQ6g3pSN+tZP06G4cBs+Mn3DH3fwnJA+1QHRh/GYNkWG93EO/ePKQik3H19FFnYpW6NvpFUy+OWvYilpfrif88ELxhhZMh6TTGWSS5aqbqDhxzT/QgLMTG7vsNoA==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2906002)(8676002)(66946007)(26005)(2616005)(91956017)(76116006)(6512007)(71200400001)(86362001)(36756003)(6916009)(54906003)(38070700005)(66556008)(966005)(64756008)(6486002)(66446008)(31686004)(38100700002)(122000001)(316002)(508600001)(5660300002)(66476007)(6506007)(4326008)(8936002)(31696002)(53546011)(186003)(107886003)(83380400001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?YWFvQ2Z5UG9YeHBQVVpSQmFkWi9zU3YvbTF4MzM2Y1A4Qk9odFJ6b0RlNTdm?=
 =?utf-8?B?STlBbjJrRWRYOWJlM3VaRmpYSko4dW1JWGhTOVc1amcyQ3dOZW51eU9SVnZ6?=
 =?utf-8?B?VUZCYVliNUgveTJTWnJ6ZmtadUp5UHlTeVNwWjNIbHZLUStZYzU1VVRBSFZJ?=
 =?utf-8?B?VmoycnNQYmg3ajVXcm95VGJuckFQKy9aVWx5SXBrTkZNTkdJVkhUWWxYV0lv?=
 =?utf-8?B?YWZxUkJYK1hEU0VMN3N6QUswQjB1UmFkZHlpUi9PS0NIOGRQRFJ6NHZjNmZJ?=
 =?utf-8?B?a1dpVk42VGx1V2ZEOXNLcEFUMTBkMGtNelc4amJlVlpkRUtaNTFWWG8ydWU0?=
 =?utf-8?B?cTc5Z2JUME0xM0s3eUQrUTdiRkN2WFY1bEE2OS82SVBhU09FWGM0VDZyT1d2?=
 =?utf-8?B?T3pzVWpnTTVDTncyWXhRV1pZOFZ4MzNNOExtZTU2NjF6eGFIQkozYSs2YU9t?=
 =?utf-8?B?TXpyeENSUnhLdVpyTFJSOE9HZFF6cmFZQTQ2cHYrNEZrWWdOT3Eza0IvbG5V?=
 =?utf-8?B?QVpxbGpkdHYwQU9nZ3NXTnlUTHhWMXRqWk5hQXI4KzZmY3hFR3VWQ0Jpd0N6?=
 =?utf-8?B?RjJTbCtTQ2VoT3hGTWdneGpDR0hCTzUwQjZPYnBhR2xLRlJoOVVZdnZDWFdG?=
 =?utf-8?B?R1Z1NVp4TnlVZGRNdlozTGVONWZSYmFHd2V4WjIvWVZSU1dxR253Y05yanJr?=
 =?utf-8?B?TjREOUtJUXVnZEhsVE9RQ1BER29NdG1zZytwekpyVmlUSXZPbFFYNWFreFRO?=
 =?utf-8?B?OXl6OFRsSWIyVzFQYWM3dkZtZnZvYU1VTFc2NFo3M1Z0Ykk5RjVuTGpzT1NM?=
 =?utf-8?B?Q2MyTFBpbW1aRGloUHBZT0NHekNueG5hTHlkaVR0ZzZ4czNjbGdURTlndWNk?=
 =?utf-8?B?OU9PbnhwMHNWUTk3RFFMazRPUnZlNWxTOXZld0hQUHJ6S3VScFZvNHJ3M0dw?=
 =?utf-8?B?YnozSjFLRVIzdk5RSUFZM0FxaUFsYU90dWorckgvZFFubFNVM0ozNHM1akxn?=
 =?utf-8?B?RmY4TXQ1eU9HZjhDeG1teFFXN2h4M2hlQnlYeFpxQnhQUy9pV2NZZHUzbk1t?=
 =?utf-8?B?V09XYkhnRFdGdmRxd2Nkdmg3QUNZd1g1ZGhDT2FEZnE4cTBxbmQrS3NWcXRG?=
 =?utf-8?B?emRpSGxLVzZPQWdvWGlydERQM3FzVU1laXl5R1RJME84dnlvZTk1cjN3b0Z5?=
 =?utf-8?B?SWorbWRjQ1FiSFN3TWhBQ1ZEckJMRlJiVmMyZjNlSTY0a2lzSGN2R1F1T1M5?=
 =?utf-8?B?VnpRQXFDeG1XSWdrak5qZS9KY0x2ekhmYmt2WEh3M1lDS2E1dTVBZERLcUVm?=
 =?utf-8?B?RzlHcDlIREN0UzRzVUJNeUN0ODR4UEoxWmN6SFJGbytLbWdDRVNJQXFhNG1G?=
 =?utf-8?B?LzRkVVJWeW5kdzA2c3RXMFlBbzZiSnNkM0crKzU2aHZwekZnTTNNR2ZmN0Va?=
 =?utf-8?B?eVY2ZzBJeFc0SkNXcWxOTEE5WWMrNFRDR0dsdk15QUM1TjV1d0tWeC8weXpZ?=
 =?utf-8?B?eVFDUDRlV29yekNsWlJmSHpGdCt1V1IwaEY2eGh6M2dFUVR3QkE4YUlYMVd0?=
 =?utf-8?B?eDRJMFVTblY4L0t2NHN3bC9UcDBzU0tmeTJjbThHMnVTV0llUjZlMXNvRERX?=
 =?utf-8?B?dlo1U2VQS1k4Vld1UG0yL0NyTk5hVXk2NHpHeXV6a0F3L29RUDc5c0hManI2?=
 =?utf-8?B?TFRCSGRFSVFHaFVjZG9meWZDa2hCYU8xNzdmNklEYzFDOVNndFJHNm5NWXBT?=
 =?utf-8?B?U2tDQkZsY3IwWkl4UnByTjJweFQvVlVTQndmZE9Mb3FhYWpuVmUvb2lpbGxJ?=
 =?utf-8?B?RVdMTEpsMzJLbXlLYWxsTVRKSUR0NGxPTWNtTjJFN1FxNDF1dzJoNkwzdG9D?=
 =?utf-8?B?Qk5YaDgxdjllMitoem9KRURiNTNGQkxzZytKeFFxTE5MeUFiM1pnUHZIMHdP?=
 =?utf-8?B?UHpPMERPdDk2MFJYNTR3UXFWbVIzNHdEcjY0eTRacTZmb2IvQ0hsZ1grckt6?=
 =?utf-8?B?Nkl4TDZ1bDJTUk9NQk1ibEN1eFI5bEhPUmlxZGFFdlFaZm1lUk0xeE9vV3ZF?=
 =?utf-8?B?MXJMU3d2TTJmUWxNaXpTREE3Mkllb25XVmlzOVdSN092Ym1vTU5YeGc3YmVH?=
 =?utf-8?B?SldiUkJHV3NESlcyZVZtWWZUeHNqZjdmaUdnYllCSzN3dUtIMFNpVXBXNFB4?=
 =?utf-8?B?UWgzWG52bjZJT1pKQTVpSk1YVzBCcWtJRjYwS1A3UkszYVdDa3p4YUU4TmJ3?=
 =?utf-8?B?aVZLTmZEMUFOeUpaeE9MajhwSUs3RXI0ZnBqdi9lSmFSZ0F5UkFNeVU2d3Uy?=
 =?utf-8?B?T1BDZ2xhcGZjOXJxcXJOV3hLYVU2a2sxak1uN0Ezb21jMFEraUt4Zz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9122F952237EAB4C928E2AF6752A3532@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a81fd26-87f5-4a0b-66e9-08d99deb974f
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 10:29:02.9660
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: yrBu+UlzADPPKugFuDLeP57eXedStz3R7OmoNg7hHH6L2/JtuRe6x2zgTAWO90hLN8ncanmB9gCsSsQdZQIWix8zKxBZxxNFCKYbd132S3npXWleHfhdHYR46VxbTDA4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5698
X-Proofpoint-GUID: aRZmcDKbqlfeIkhLXdqv3inEm3isU4cS
X-Proofpoint-ORIG-GUID: aRZmcDKbqlfeIkhLXdqv3inEm3isU4cS
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_06,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 mlxlogscore=999 clxscore=1015 spamscore=0 bulkscore=0 adultscore=0
 impostorscore=0 priorityscore=1501 mlxscore=0 suspectscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020061

DQoNCk9uIDAyLjExLjIxIDEyOjAzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBNb24s
IE5vdiAwMSwgMjAyMSBhdCAwOToxODoxN0FNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+Pj4gKyAgICBpZiAoIHJjICkNCj4+Pj4gKyAgICAgICAgZ2RwcmludGsoWEVO
TE9HX0VSUiwNCj4+Pj4gKyAgICAgICAgICAgICAgICAgIiVwcDogZmFpbGVkIHRvIGFkZCBCQVIg
aGFuZGxlcnMgZm9yIGRvbSVwZDogJWRcbiIsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICZwZGV2
LT5zYmRmLCBkLCByYyk7DQo+Pj4+ICsgICAgcmV0dXJuIHJjOw0KPj4+PiArfQ0KPj4+PiArDQo+
Pj4+ICtpbnQgdnBjaV9iYXJfcmVtb3ZlX2hhbmRsZXJzKGNvbnN0IHN0cnVjdCBkb21haW4gKmQs
IGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4+PiArew0KPj4+PiArICAgIC8qIFJlbW92
ZSBwcmV2aW91c2x5IGFkZGVkIHJlZ2lzdGVycy4gKi8NCj4+Pj4gKyAgICB2cGNpX3JlbW92ZV9k
ZXZpY2VfcmVnaXN0ZXJzKHBkZXYpOw0KPj4+PiArICAgIHJldHVybiAwOw0KPj4+PiArfQ0KPj4+
PiArI2VuZGlmDQo+Pj4+ICsNCj4+Pj4gICAgLyoNCj4+Pj4gICAgICogTG9jYWwgdmFyaWFibGVz
Og0KPj4+PiAgICAgKiBtb2RlOiBDDQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNp
L3ZwY2kuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jDQo+Pj4+IGluZGV4IDBmZTg2Y2IzMGQy
My4uNzAyZjdiNWQ1ZGRhIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL3ZwY2ku
Yw0KPj4+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYw0KPj4+PiBAQCAtOTUsNyArOTUs
NyBAQCBpbnQgdnBjaV9hc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0cnVj
dCBwY2lfZGV2ICpkZXYpDQo+Pj4+ICAgICAgICBpZiAoIGlzX3N5c3RlbV9kb21haW4oZCkgfHwg
IWhhc192cGNpKGQpICkNCj4+Pj4gICAgICAgICAgICByZXR1cm4gMDsNCj4+Pj4gICAgDQo+Pj4+
IC0gICAgcmV0dXJuIDA7DQo+Pj4+ICsgICAgcmV0dXJuIHZwY2lfYmFyX2FkZF9oYW5kbGVycyhk
LCBkZXYpOw0KPj4+PiAgICB9DQo+Pj4+ICAgIA0KPj4+PiAgICAvKiBOb3RpZnkgdlBDSSB0aGF0
IGRldmljZSBpcyBkZS1hc3NpZ25lZCBmcm9tIGd1ZXN0LiAqLw0KPj4+PiBAQCAtMTA1LDcgKzEw
NSw3IEBAIGludCB2cGNpX2RlYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBz
dHJ1Y3QgcGNpX2RldiAqZGV2KQ0KPj4+PiAgICAgICAgaWYgKCBpc19zeXN0ZW1fZG9tYWluKGQp
IHx8ICFoYXNfdnBjaShkKSApDQo+Pj4+ICAgICAgICAgICAgcmV0dXJuIDA7DQo+Pj4+ICAgIA0K
Pj4+PiAtICAgIHJldHVybiAwOw0KPj4+PiArICAgIHJldHVybiB2cGNpX2Jhcl9yZW1vdmVfaGFu
ZGxlcnMoZCwgZGV2KTsNCj4+PiBJIHRoaW5rIGl0IHdvdWxkIGJlIGJldHRlciB0byB1c2Ugc29t
ZXRoaW5nIHNpbWlsYXIgdG8NCj4+PiBSRUdJU1RFUl9WUENJX0lOSVQgaGVyZSwgb3RoZXJ3aXNl
IHRoaXMgd2lsbCBuZWVkIHRvIGJlIG1vZGlmaWVkIGV2ZXJ5DQo+Pj4gdGltZSBhIG5ldyBjYXBh
YmlsaXR5IGlzIGhhbmRsZWQgYnkgWGVuLg0KPj4+DQo+Pj4gTWF5YmUgd2UgY291bGQgcmV1c2Ug
b3IgZXhwYW5kIFJFR0lTVEVSX1ZQQ0lfSU5JVCBhZGRpbmcgYW5vdGhlciBmaWVsZA0KPj4+IHRv
IGJlIHVzZWQgZm9yIGd1ZXN0IGluaXRpYWxpemF0aW9uPw0KPj4+DQo+Pj4+ICAgIH0NCj4+Pj4g
ICAgI2VuZGlmIC8qIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUICovDQo+Pj4+ICAgIA0K
Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZwY2kuaCBiL3hlbi9pbmNsdWRlL3hl
bi92cGNpLmgNCj4+Pj4gaW5kZXggZWNjMDhmMmMwZjY1Li5mZDgyMmM5MDNhZjUgMTAwNjQ0DQo+
Pj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi92cGNpLmgNCj4+Pj4gKysrIGIveGVuL2luY2x1ZGUv
eGVuL3ZwY2kuaA0KPj4+PiBAQCAtNTcsNiArNTcsMTQgQEAgdWludDMyX3QgdnBjaV9od19yZWFk
MzIoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsDQo+Pj4+ICAg
ICAqLw0KPj4+PiAgICBib29sIF9fbXVzdF9jaGVjayB2cGNpX3Byb2Nlc3NfcGVuZGluZyhzdHJ1
Y3QgdmNwdSAqdik7DQo+Pj4+ICAgIA0KPj4+PiArI2lmZGVmIENPTkZJR19IQVNfVlBDSV9HVUVT
VF9TVVBQT1JUDQo+Pj4+ICsvKiBBZGQvcmVtb3ZlIEJBUiBoYW5kbGVycyBmb3IgYSBkb21haW4u
ICovDQo+Pj4+ICtpbnQgdnBjaV9iYXJfYWRkX2hhbmRsZXJzKGNvbnN0IHN0cnVjdCBkb21haW4g
KmQsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2
ICpwZGV2KTsNCj4+Pj4gK2ludCB2cGNpX2Jhcl9yZW1vdmVfaGFuZGxlcnMoY29uc3Qgc3RydWN0
IGRvbWFpbiAqZCwNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Ry
dWN0IHBjaV9kZXYgKnBkZXYpOw0KPj4+PiArI2VuZGlmDQo+Pj4gVGhpcyB3b3VsZCB0aGVuIGdv
IGF3YXkgaWYgd2UgaW1wbGVtZW50IGEgbWVjaGFuaXNtIHNpbWlsYXIgdG8NCj4+PiBSRUdJU1RF
Ul9WUENJX0lOSVQuDQo+Pj4NCj4+PiBUaGFua3MsIFJvZ2VyLg0KPj4gT2ssIHNvIEkgY2FuIGV4
dGVuZCBSRUdJU1RFUl9WUENJX0lOSVQgd2l0aCBhbiBhY3Rpb24gcGFyYW1ldGVyOg0KPj4NCj4+
ICJUaGVyZSBhcmUgbnVtYmVyIG9mIGFjdGlvbnMgdG8gYmUgdGFrZW4gd2hpbGUgZmlyc3QgaW5p
dGlhbGl6aW5nIHZQQ0kNCj4+IGZvciBhIFBDSSBkZXZpY2Ugb3Igd2hlbiB0aGUgZGV2aWNlIGlz
IGFzc2lnbmVkIHRvIGEgZ3Vlc3Qgb3Igd2hlbiBpdA0KPj4gaXMgZGUtYXNzaWduZWQgYW5kIHNv
IG9uLg0KPj4gRXZlcnkgdGltZSBhIG5ldyBhY3Rpb24gaXMgbmVlZGVkIGR1cmluZyB0aGVzZSBz
dGVwcyB3ZSBuZWVkIHRvIGNhbGwgc29tZQ0KPj4gcmVsZXZhbnQgZnVuY3Rpb24gdG8gaGFuZGxl
IHRoYXQuIE1ha2UgaXQgaXMgZWFzaWVyIHRvIHRyYWNrIHRoZSByZXF1aXJlZA0KPj4gc3RlcHMg
YnkgZXh0ZW5kaW5nIFJFR0lTVEVSX1ZQQ0lfSU5JVCBtYWNoaW5lcnkgd2l0aCBhbiBhY3Rpb24g
cGFyYW1ldGVyDQo+PiB3aGljaCBzaG93cyB3aGljaCBleGFjdGx5IHN0ZXAvYWN0aW9uIGlzIGJl
aW5nIHBlcmZvcm1lZC4iDQo+Pg0KPj4gU28sIHdlIGhhdmUNCj4+DQo+PiAtdHlwZWRlZiBpbnQg
dnBjaV9yZWdpc3Rlcl9pbml0X3Qoc3RydWN0IHBjaV9kZXYgKmRldik7DQo+PiArZW51bSBWUENJ
X0lOSVRfQUNUSU9OIHsNCj4+ICvCoCBWUENJX0lOSVRfQURELA0KPj4gK8KgIFZQQ0lfSU5JVF9B
U1NJR04sDQo+PiArwqAgVlBDSV9JTklUX0RFQVNTSUdOLA0KPj4gK307DQo+PiArDQo+PiArdHlw
ZWRlZiBpbnQgdnBjaV9yZWdpc3Rlcl9pbml0X3Qoc3RydWN0IHBjaV9kZXYgKmRldiwNCj4+ICvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIGVudW0gVlBDSV9JTklUX0FDVElPTiBhY3Rpb24pOw0KPj4NCj4+IGFuZCwgZm9yIGV4
YW1wbGUsDQo+Pg0KPj4gQEAgLTQ1Miw2ICs0NTIsOSBAQCBzdGF0aWMgaW50IGluaXRfYmFycyhz
dHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICAgwqDCoMKgwqAgc3RydWN0IHZwY2lfYmFyICpiYXJz
ID0gaGVhZGVyLT5iYXJzOw0KPj4gICDCoMKgwqDCoCBpbnQgcmM7DQo+Pg0KPj4gK8KgwqDCoCBp
ZiAoIGFjdGlvbiAhPSBWUENJX0lOSVRfQUREICkNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4g
MDsNCj4+ICsNCj4+DQo+PiBJIHdhcyB0aGlua2luZyBhYm91dCBhZGRpbmcgZGVkaWNhdGVkIG1h
Y2hpbmVyeSBzaW1pbGFyIHRvIFJFR0lTVEVSX1ZQQ0lfSU5JVCwNCj4+IGUuZy4gUkVHSVNURVJf
VlBDSV97QVNTSUdOfERFQVNTSUdOfSArIGRlZGljYXRlZCBzZWN0aW9ucyBpbiB0aGUgbGlua2Vy
IHNjcmlwdHMsDQo+PiBidXQgaXQgc2VlbXMgbm90IHdvcnRoIGl0OiB0aGVzZSBzdGVwcyBhcmUg
b25seSBleGVjdXRlZCBhdCBkZXZpY2UgaW5pdC9hc3NpZ24vZGVhc3NpZ24sDQo+PiBzbyBleHRl
bmRpbmcgdGhlIGV4aXN0aW5nIGFwcHJvYWNoIGRvZXNuJ3Qgc2VlbSB0byBodXJ0IHBlcmZvcm1h
bmNlIG11Y2guDQo+Pg0KPj4gUGxlYXNlIGxldCBtZSBrbm93IGlmIHRoaXMgaXMgd2hhdCB5b3Ug
bWVhbiwgc28gSSBjYW4gcmUtd29yayB0aGUgcmVsZXZhbnQgY29kZS4NCj4gSSdtIGFmcmFpZCBJ
J20gc3RpbGwgdW5zdXJlIHdoZXRoZXIgd2UgbmVlZCBhbiBleHBsaWNpdCBoZWxwZXIgdG8NCj4g
ZXhlY3V0ZSB3aGVuIGFzc2lnbmluZyBhIGRldmljZSwgcmF0aGVyIHRoYW4ganVzdCB1c2luZyB0
aGUgY3VycmVudA0KPiBpbml0IGhlbHBlcnMgKGluaXRfYmFycyAmYykuDQo+DQo+IFlvdSBzYWlk
IHRoYXQgc2l6aW5nIHRoZSBCQVJzIHdoZW4gYXNzaWduaW5nIHRvIGEgZG9tVSB3YXMgbm90DQo+
IHBvc3NpYmxlIFswXSwgYnV0IEknbSBtaXNzaW5nIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSBpdCdz
IG5vdCBwb3NzaWJsZSwNCj4gYXMgSSB0aGluayB0aGF0IHdvbid0IGJlIGFuIGlzc3VlIG9uIHg4
NiBbMV0uDQpJIGFtIGluIHRoZSBwcm9jZXNzIG9mIHJlLXdvcmtpbmcgdGhpcyBhbmQgdGhlIHJl
bGV2YW50IHBhdGNoZXMuDQpBdCB0aGUgbW9tZW50IEkgaGF2ZSB0aG9zZSBoZWxwZXJzLCBidXQg
aXQgc2VlbXMgSSBjYW4gcmVtb3ZlIHRoZW0uDQpPbmNlIEkgZmluaXNoIHRoZSBzZXJpZXMgSSAo
bW9zdCBwcm9iYWJseSkgd2lsbCByZW1vdmUgdGhvc2UuDQo+DQo+IFRoYW5rcywgUm9nZXIuDQo+
DQo+IFswXSBodHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly9sb3JlLmtlcm5lbC5v
cmcveGVuLWRldmVsLzM2OGJmNGI1LWY5ZmQtNzZhNi0yOTRlLWRiYjkzYTE4ZTczZkBlcGFtLmNv
bS9fXzshIUdGXzI5ZGJjUUlVQlBBIW1HejJ1ekpLTlpzTXIzUjhhd29ra1NPam84RVRqT1M5Ti1K
VmtUSU9KVzVCWXh2S2d0WnJLYW1QSnE1OUk1dTJHQ0Ruc1k0ZFFRJCBbbG9yZVsuXWtlcm5lbFsu
XW9yZ10NCj4gWzFdIGh0dHBzOi8vdXJsZGVmZW5zZS5jb20vdjMvX19odHRwczovL2xvcmUua2Vy
bmVsLm9yZy94ZW4tZGV2ZWwvWVhseG1kWWR3cHRha0RES0BBaXItZGUtUm9nZXIvX187ISFHRl8y
OWRiY1FJVUJQQSFtR3oydXpKS05ac01yM1I4YXdva2tTT2pvOEVUak9TOU4tSlZrVElPSlc1Qll4
dktndFpyS2FtUEpxNTlJNXUyR0NBSEhrckQxZyQgW2xvcmVbLl1rZXJuZWxbLl1vcmddDQo=


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:32:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:32:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.219993.381068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhr5n-0005Xt-V4; Tue, 02 Nov 2021 10:32:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 219993.381068; Tue, 02 Nov 2021 10:32:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhr5n-0005Xm-RD; Tue, 02 Nov 2021 10:32:35 +0000
Received: by outflank-mailman (input) for mailman id 219993;
 Tue, 02 Nov 2021 10:32:34 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhr5m-0005Xg-6f
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:32:34 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 2f6d22e0-3bc8-11ec-8555-12813bfff9fa;
 Tue, 02 Nov 2021 10:32:32 +0000 (UTC)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2059.outbound.protection.outlook.com [104.47.0.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-31-3mwCzXK-MYq7c9OfcaTlDg-1; Tue, 02 Nov 2021 11:32:30 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB2958.eurprd04.prod.outlook.com (2603:10a6:802:a::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 10:32:29 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 10:32:29 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0408.eurprd06.prod.outlook.com (2603:10a6:20b:461::31) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Tue, 2 Nov 2021 10:32:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f6d22e0-3bc8-11ec-8555-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635849151;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hVFsVQUi957b/LaDNG4DHkFAaKF5yG27B9SDhsZiFj4=;
	b=O1mWTH+8u/yGuCi4xoDaUxZ+MsoXA6I0SE9lbMNm24jL+8jkeyuD5emzN1F4XVdL1AGTzn
	e6fvrHqHE5RJdxenmH4dtEsogkrZXJool2RwykjzKKOTZQGt4S1Aa7wLx5lQ7W0FebKfyi
	n1KZJa+JKLshMHlnkoFaokppP1PYT50=
X-MC-Unique: 3mwCzXK-MYq7c9OfcaTlDg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WoZrH7JATERX9fRtSaGq1RB0fyXR+5aKn1QUniJhcY0LagOF7wx1QBAe327mmiGiZqrW7gdc/kGjUdX/t0hUixXVo5V3E5LliWa07iMwagxQ1SVToBcsyePq2M4ZCOgnls6p1iS6PBYFBdxx0FZFwXIwal6i0uM8W6tqYKjWmGU50useJ/m/M6KN+BdHiK7A1PJq3b0clhnLgsWizXWXKxU5YSk/+qxjl+r4qq/CXIuOKNbehA5tRv5a5+RmZYd2aUbxJsUHk8O7mgleSDUO0d6Nc38aCXJJxXw3X7AYzVUs4ECDyTGhFGrHyCCaWLhPDu5VlIFxwDRL6w0hSc3Biw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hVFsVQUi957b/LaDNG4DHkFAaKF5yG27B9SDhsZiFj4=;
 b=UflwXuCJeMjy+3UVmx/HNpBh0IFaDFCdeUXJlCxZqh7SfJZB1Uh8t56rSG3Qg+zRrSaxh3edYopqVDweji1abcgiyBw9egUILX1F8pVZog2xcls76Z55pXh5aliJYapK4xP0BOkuhl2nsgwmIYbJB6HQnZCqIq06WyYLYAPLZQjzXMs8d+EKPG7Ugnv/RmvVlKyjs7ARZTYWPVEHwYjwmct4sSU4AuJBxQ9u8OFFfTVhJ8JRMmzMkuie9zXbolxFziaBNFvi/9Ko1RKLaIRVFDuLHpcMb7evW0PnshOmhiZGo6XXxf8KzJqkkk02M9yJXE+afklY0/QER0hsuxVsUA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <356da0d1-4e13-5122-6fb1-0e1ed01a675d@suse.com>
Date: Tue, 2 Nov 2021 11:32:27 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [xen-unstable test] 165973: regressions - FAIL
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
References: <osstest-165973-mainreport@xen.org>
Cc: osstest service owner <osstest-admin@xenproject.org>,
 xen-devel@lists.xenproject.org
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <osstest-165973-mainreport@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0408.eurprd06.prod.outlook.com
 (2603:10a6:20b:461::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7f4c97a9-d1c9-460e-eae8-08d99dec11dc
X-MS-TrafficTypeDiagnostic: VI1PR04MB2958:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB2958D5FAC95B7E11F33DEB56B38B9@VI1PR04MB2958.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1303;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	6IDEV1uYHvC9hSSybiwHLX/2NuGUC4GxpyapOBSCr3DvMqezeL4Q4aek7QG25hZnLq6Es+Umit0sqY4LXOp1IRhurAzEa6hGTeMDvpQO9ENzFyoRKcscRLLJrq2v3UrZPU1Tj1uE7VN7jkvvc+iiTqeTF+qPjaCo9UegtQxb78r3sfqC8aGazZBbxDKadSp24HjzR8l2Q0Kk6HXoahlRiN0+sZfQ58ItnVlifn6rRyQxkXXPEkfuJFNNeGudjgbemJFyJetspxTkaGj8Sygo/z8mu6tlz8UMm/AJ2JYZW5TrJOdI/lTZyAAAqdEx192y84L6C64D2DeKMFLV/Xac3DCsFxWIP8KyO1gO2aFmvSoE6FFLMYLk+2BuEM3b+kc/3FkZQuB7HXcbzZsWImCYPSJtsc/CteFbdoJqMBzQYdUNMrBzqTot2HcP0H2cJABlp3Xcei7WxTiz3hq+8+p3ebqwycafsrp42l0Bckblmag08ngH2eHOoEgSlvHHTYQfEr4tDnLUk8uC/3emhVVRAoQxtp0wqpfg3Yp+jaOsPDPsj6qOhxIDa/Su/kKbpUfkP1AWKBFVwtRZyp1fR7PZ/K22FTu8sNkL3zyGNMGX8wY1bYKQfnU7CDp6dF2dTrAmr7v5HEGdmA/IRVyW7QQrsYo85VH1jc1PRd40BtIFb1k426E9TdQY2gefeqc8m9woUnDdX5ACAxy1YVkWlAyR3pSle4V83+PUipG7LrPagC3/hjijIv6e/kUazX/t1g0x4iiEyXR3V3JZhUzFA2Ek3PXusFje5fIbFPmgt/Cc4ZSWrB3/jOZeeD2VFvYAPBMu3H0lPyq2Pdj2Rm9AJfBwTlX/LRrniWjncylyplaAY39u0Qbi/HlX1slENqttMSiavU5fbbEio6gFGOl3lxaqiw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(8676002)(5660300002)(16576012)(508600001)(4326008)(186003)(26005)(30864003)(36756003)(83380400001)(6486002)(31696002)(2906002)(6916009)(316002)(956004)(966005)(66476007)(66556008)(66946007)(8936002)(53546011)(86362001)(2616005)(31686004)(87944003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OXpBRVVrbWtnVGx4MGpvd0REamtma09IVTBONTJQeTNTc2MvaXNXbVAyZWVn?=
 =?utf-8?B?dkF6R3E0UXlhSmlGektyUHhaUDBGS0s0dlp2ZlFLdGxpUmFZQlRjR1JiKzJM?=
 =?utf-8?B?ZGFIdkxEbWR4YkN3ZGVMS2hSQmp4WFBaRm9FaEhjTTBEQm9SVG1sdDc1VHo3?=
 =?utf-8?B?enRIKytIbUh4Y05iREZ6Q080UzZqU0VaNk9JdkdiL2tPd1BLdkloVHpkekJH?=
 =?utf-8?B?cVRBMGNSYWg4WGE2bWVhWWxSc1pyS25uN3lERFVtT2tMRWRNM3ZvSWxNcE5t?=
 =?utf-8?B?Z2dlTnNrZWlSbm52dGZHRW1Bb0ZoMHRuNHZKRkdkV3FhcjFTa0lMYWhNaG9h?=
 =?utf-8?B?MUZZb01RTmpGZDJReXBLbTNBOWVCK2VEa21YSWZaL0FXR1BwV05iNFZLeDVy?=
 =?utf-8?B?OUtKSk56MWl3a3djUk4xdnZoZFY4Rm9IL0NkNlB6V3dTWXEyK2svWXkwNEpQ?=
 =?utf-8?B?eVRPenZEUncxYjlQVDhFRDlFR1RtWW4rWFZhL25YaWJuMXJxOFM5NDYwZUNN?=
 =?utf-8?B?K1k5aG1qeGV6ZngvT21GK1BkNXpaQjFVMWlpdCtseFRldmh5MnN4QW9vWkFv?=
 =?utf-8?B?UXRrUFJuZkN1ampXb0JVZzN3ZDhHTDF2ZDNLNVJLcnQzVG5RZTJ0MTVKcXlD?=
 =?utf-8?B?NnI0aVliQUg2SUh3bXFPOENhamF0Q1NUdk81VS8vMlZsemZUa2VWTmI0ek90?=
 =?utf-8?B?WC93NGRSWUwzQVFiUGdmekRxeWYyRElKTU1EUFM3RHBKTkx3TCtIMnpWUWxW?=
 =?utf-8?B?aG1COFZvV0dZdC9NZzhOajR6b3orTG1rUEdCNVhFYUtLT0NMaUNFWmM5ZlJ2?=
 =?utf-8?B?WDUyRUN1MUVZbDRlZG0vQTFsR0tXSHNqamI1eVFWT2l6dWE3dkplNUFHYTJ3?=
 =?utf-8?B?S3R2Z213ZVBhM0tZYTBsK3l0WXJmUFduWjlrRmhhNk4xbzk3YkdCbHlQNk95?=
 =?utf-8?B?OWk5bkE2MHUyQTJGVXRReCtMS2wxRW1qUVhlbkVEZGN5OVFwMWlSaitHTlpW?=
 =?utf-8?B?S3dETmc5cEZsa3M2TDE0dE9aVWJGYzU1Mk5EeHFZTDhZVXZrOFFvSWZUdG1n?=
 =?utf-8?B?aVNNWWorMkNFcndreFNjd3p3dHgvcXF5TlpPQ1FaS3ZUMEN0dG5JaEtKcDBi?=
 =?utf-8?B?VjB3UmpWYW5RM1BZMSsvZkhpVERTS0xZNjdZQVp5MXo3NytLcEpMdmlxRldm?=
 =?utf-8?B?dUkyVXhNaUloQ3FTZm1MMTZTeVE2TC9IWG5UWjF3TVI5VFc0RURzMjg3QXJo?=
 =?utf-8?B?WCtob2dHRmoyK2xsRTZOa0doN1REbTh5Z2o0VGJ4VHJiS2oycjZaRUR6QXd1?=
 =?utf-8?B?UkMvaDErQ0pDNHZBSFh1NGhCdjQxUUszWW1yd2dWWmJ5STI3VTY3VTUrblF3?=
 =?utf-8?B?c0tTU0tIZjF2Q2dFUHM3ckJaYmwxbkxOWXFLN1JPNUxTM1E5Ky9tUFhaMW1s?=
 =?utf-8?B?R0tvM3NjYjBaMjRSR1dTN0NmOU0wUUhvTGtxYitzMTZMbkdkdVVBMktaZW9S?=
 =?utf-8?B?bGsvL0dOU1F2cXhtV2RvK2hyR0dRMkpFRm80U2psWllpODFpZXNmZ2hlZHhQ?=
 =?utf-8?B?RWNQem8xVE5lUGZLcjQ5Y2EwaHdQdWxqK21nUUV1UHBOeDJXRHU5U0hTaFZI?=
 =?utf-8?B?NndIWEJpTUlKR1c0K084bndXOGZtcFVwN1dTU1Y4Qm12SjJTLy9HcFFOcUcv?=
 =?utf-8?B?akpkSHdYZDJGUzNOT0ZVSTBQTXdpQzJxbTMzaVVNZnBQcHdZampXaWsvQkZW?=
 =?utf-8?B?WDZVQ0RoMTRpbVh3NG5LT1lnUUl1THlvQURBeFRWbUNOaUwvTURXR1NXeURB?=
 =?utf-8?B?L2Y4VGl3UEtYZWo0bG92QW9oZ0h5eHVVTVpWS3RwOE1nQkgzM012WUxxSHhK?=
 =?utf-8?B?QXpQcUM4c0pCVWtqNTRTRUplckNSWG93WGsyeW0yUmRMeVNoa1dGY3pKR2Ev?=
 =?utf-8?B?SEJpOGppUjZNVnowbW1iNXBJUzRJY0NJbkIxOWpiZUtkYlVJSGZDcnd6US80?=
 =?utf-8?B?Nk8wV3F3ek5DM1ZOdW9sblpsSGNBSm9rVmpDeFZqcytwQy94ZVlyd2FpYytR?=
 =?utf-8?B?MlArRnc4TXFFMmJIcno3cTNSYis5VThqYTd3SW41VHA2OTVQUitsenlvVzlB?=
 =?utf-8?B?Sk1lQ2dML25mS1dvTGVDUG1FdHJVZjJ5MVl1bDlFMnFsclE0NENRRFAwRkU3?=
 =?utf-8?Q?7ukXvD9PZ278+rf3ojPfx+0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f4c97a9-d1c9-460e-eae8-08d99dec11dc
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 10:32:28.9108
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dtjofIQ1XAKUKonz6GCRw/agOGQdLLdN+vIPFuxB02SefMT8vAle6wH+kZ1UxKTnK9uSet+GU0x4aeaS1eGxzQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2958

On 02.11.2021 04:07, osstest service owner wrote:
> flight 165973 xen-unstable real [real]
> flight 165977 xen-unstable real-retest [real]
> http://logs.test-lab.xenproject.org/osstest/logs/165973/
> http://logs.test-lab.xenproject.org/osstest/logs/165977/
> 
> Regressions :-(
> 
> Tests which did not succeed and are blocking,
> including tests which could not be run:
>  test-amd64-amd64-examine      4 memdisk-try-append       fail REGR. vs. 165966

Ian - another force push may be on order here, as this again ended
up running on one of the albanas?

Jan

> Tests which did not succeed, but are not blocking:
>  test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 165966
>  test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165966
>  test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165966
>  test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165966
>  test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165966
>  test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165966
>  test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165966
>  test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165966
>  test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165966
>  test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165966
>  test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165966
>  test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165966
>  test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165966
>  test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
>  test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
>  test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
>  test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
>  test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
>  test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
>  test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
>  test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
>  test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
>  test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
>  test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
>  test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
>  test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
>  test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
>  test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
>  test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
>  test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
>  test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
>  test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
>  test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
>  test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
>  test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
>  test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
>  test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
>  test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
>  test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
>  test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
>  test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
>  test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
>  test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
>  test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
>  test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
>  test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
>  test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
>  test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
>  test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
>  test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
>  test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
>  test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
>  test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
>  test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
>  test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
>  test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
>  test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
>  test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
>  test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
> 
> version targeted for testing:
>  xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10
> baseline version:
>  xen                  3030a73bf849a50411da95e94abf23cb7e8642fc
> 
> Last test of basis   165966  2021-11-01 01:52:55 Z    1 days
> Testing same since   165973  2021-11-01 16:07:55 Z    0 days    1 attempts
> 
> ------------------------------------------------------------
> People who touched revisions under test:
>   Ian Jackson <iwj@xenproject.org>
> 
> jobs:
>  build-amd64-xsm                                              pass    
>  build-arm64-xsm                                              pass    
>  build-i386-xsm                                               pass    
>  build-amd64-xtf                                              pass    
>  build-amd64                                                  pass    
>  build-arm64                                                  pass    
>  build-armhf                                                  pass    
>  build-i386                                                   pass    
>  build-amd64-libvirt                                          pass    
>  build-arm64-libvirt                                          pass    
>  build-armhf-libvirt                                          pass    
>  build-i386-libvirt                                           pass    
>  build-amd64-prev                                             pass    
>  build-i386-prev                                              pass    
>  build-amd64-pvops                                            pass    
>  build-arm64-pvops                                            pass    
>  build-armhf-pvops                                            pass    
>  build-i386-pvops                                             pass    
>  test-xtf-amd64-amd64-1                                       pass    
>  test-xtf-amd64-amd64-2                                       pass    
>  test-xtf-amd64-amd64-3                                       pass    
>  test-xtf-amd64-amd64-4                                       pass    
>  test-xtf-amd64-amd64-5                                       pass    
>  test-amd64-amd64-xl                                          pass    
>  test-amd64-coresched-amd64-xl                                pass    
>  test-arm64-arm64-xl                                          pass    
>  test-armhf-armhf-xl                                          pass    
>  test-amd64-i386-xl                                           pass    
>  test-amd64-coresched-i386-xl                                 pass    
>  test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
>  test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
>  test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
>  test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
>  test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
>  test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
>  test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
>  test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
>  test-amd64-amd64-libvirt-xsm                                 pass    
>  test-arm64-arm64-libvirt-xsm                                 pass    
>  test-amd64-i386-libvirt-xsm                                  pass    
>  test-amd64-amd64-xl-xsm                                      pass    
>  test-arm64-arm64-xl-xsm                                      pass    
>  test-amd64-i386-xl-xsm                                       pass    
>  test-amd64-amd64-qemuu-nested-amd                            fail    
>  test-amd64-amd64-xl-pvhv2-amd                                pass    
>  test-amd64-i386-qemut-rhel6hvm-amd                           pass    
>  test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
>  test-amd64-amd64-dom0pvh-xl-amd                              pass    
>  test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
>  test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
>  test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
>  test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
>  test-amd64-i386-freebsd10-amd64                              pass    
>  test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
>  test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
>  test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
>  test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
>  test-amd64-amd64-xl-qemut-win7-amd64                         fail    
>  test-amd64-i386-xl-qemut-win7-amd64                          fail    
>  test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
>  test-amd64-i386-xl-qemuu-win7-amd64                          fail    
>  test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
>  test-amd64-i386-xl-qemut-ws16-amd64                          fail    
>  test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
>  test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
>  test-armhf-armhf-xl-arndale                                  pass    
>  test-amd64-amd64-xl-credit1                                  pass    
>  test-arm64-arm64-xl-credit1                                  pass    
>  test-armhf-armhf-xl-credit1                                  pass    
>  test-amd64-amd64-xl-credit2                                  pass    
>  test-arm64-arm64-xl-credit2                                  pass    
>  test-armhf-armhf-xl-credit2                                  pass    
>  test-armhf-armhf-xl-cubietruck                               pass    
>  test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
>  test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
>  test-amd64-amd64-examine                                     pass    
>  test-arm64-arm64-examine                                     pass    
>  test-armhf-armhf-examine                                     pass    
>  test-amd64-i386-examine                                      pass    
>  test-amd64-i386-freebsd10-i386                               pass    
>  test-amd64-amd64-qemuu-nested-intel                          pass    
>  test-amd64-amd64-xl-pvhv2-intel                              pass    
>  test-amd64-i386-qemut-rhel6hvm-intel                         pass    
>  test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
>  test-amd64-amd64-dom0pvh-xl-intel                            pass    
>  test-amd64-amd64-libvirt                                     pass    
>  test-armhf-armhf-libvirt                                     pass    
>  test-amd64-i386-libvirt                                      pass    
>  test-amd64-amd64-livepatch                                   pass    
>  test-amd64-i386-livepatch                                    pass    
>  test-amd64-amd64-migrupgrade                                 pass    
>  test-amd64-i386-migrupgrade                                  pass    
>  test-amd64-amd64-xl-multivcpu                                pass    
>  test-armhf-armhf-xl-multivcpu                                pass    
>  test-amd64-amd64-pair                                        pass    
>  test-amd64-i386-pair                                         pass    
>  test-amd64-amd64-libvirt-pair                                pass    
>  test-amd64-i386-libvirt-pair                                 pass    
>  test-amd64-amd64-xl-pvshim                                   pass    
>  test-amd64-i386-xl-pvshim                                    fail    
>  test-amd64-amd64-pygrub                                      pass    
>  test-armhf-armhf-libvirt-qcow2                               pass    
>  test-amd64-amd64-xl-qcow2                                    pass    
>  test-arm64-arm64-libvirt-raw                                 pass    
>  test-armhf-armhf-libvirt-raw                                 pass    
>  test-amd64-i386-libvirt-raw                                  pass    
>  test-amd64-amd64-xl-rtds                                     fail    
>  test-armhf-armhf-xl-rtds                                     pass    
>  test-arm64-arm64-xl-seattle                                  pass    
>  test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
>  test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
>  test-amd64-amd64-xl-shadow                                   pass    
>  test-amd64-i386-xl-shadow                                    pass    
>  test-arm64-arm64-xl-thunderx                                 pass    
>  test-amd64-amd64-libvirt-vhd                                 pass    
>  test-arm64-arm64-xl-vhd                                      pass    
>  test-armhf-armhf-xl-vhd                                      pass    
>  test-amd64-i386-xl-vhd                                       pass    
> 
> 
> ------------------------------------------------------------
> sg-report-flight on osstest.test-lab.xenproject.org
> logs: /home/logs/logs
> images: /home/logs/images
> 
> Logs, config files, etc. are available at
>     http://logs.test-lab.xenproject.org/osstest/logs
> 
> Explanation of these reports, and of osstest in general, is at
>     http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
>     http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master
> 
> Test harness code can be found at
>     http://xenbits.xen.org/gitweb?p=osstest.git;a=summary
> 
> 
> Not pushing.
> 
> ------------------------------------------------------------
> commit 9f8434d77859462ad98a51ec49ad8e23769d9b10
> Author: Ian Jackson <iwj@xenproject.org>
> Date:   Mon Nov 1 12:36:26 2021 +0000
> 
>     README, xen/Makefile: Change version to 4.16-rc
>     
>     Signed-off-by: Ian Jackson <iwj@xenproject.org>
> 
> commit c9ce6afbf2d7772f47fc572bb7fc9555724927ed
> Author: Ian Jackson <iwj@xenproject.org>
> Date:   Mon Nov 1 12:33:54 2021 +0000
> 
>     Config.mk: pin QEMU_UPSTREAM_REVISION (prep for Xen 4.16 RC1)
>     
>     Signed-off-by: Ian Jackson <iwj@xenproject.org>
> (qemu changes not included)
> 



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:34:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:34:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220000.381079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhr7k-0006Cq-Gj; Tue, 02 Nov 2021 10:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220000.381079; Tue, 02 Nov 2021 10:34:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhr7k-0006Cj-Dc; Tue, 02 Nov 2021 10:34:36 +0000
Received: by outflank-mailman (input) for mailman id 220000;
 Tue, 02 Nov 2021 10:34:35 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhr7j-0006Ca-9x
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:34:35 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 780721ae-3bc8-11ec-8555-12813bfff9fa;
 Tue, 02 Nov 2021 10:34:33 +0000 (UTC)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A29xHhm023073;
 Tue, 2 Nov 2021 10:34:31 GMT
Received: from eur01-he1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2056.outbound.protection.outlook.com [104.47.0.56])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c336405eb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 10:34:31 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB7489.eurprd03.prod.outlook.com (2603:10a6:20b:272::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Tue, 2 Nov
 2021 10:34:26 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 10:34:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 780721ae-3bc8-11ec-8555-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Oqy6dMLjAyrD7g24R4ynQroTJyA8PNjQrJwmN/XNRAvCnlDsYyuYcusmTzHUY5mKjzEUy9DYQ54cM4L07JEAFpsyqFEKAnYQwcWL7CEMofYROb+jFQlcwumMS9MF86wQIoF01TkOdE5bP+vys426C9e6rkyn9/B0DsQ9vj6adrRsrzd2LUDWhE48zf6SKHGWK8h/xvy32ZLs8yfpuPq+/mgPNj3hCKW1//UqLCgMexfbnlCmWNoQs4eOSVHu0jU9LBIGfFmx9p7Gpu7Czup16dLAnWToXtpm+weOLcPu4SRBDPCDr+1wnGXrWcYS6EnFa1SNItVge+GUImrVyHEUow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jD+BZVfXgeMWFxVUu7RKBW1fryc0fvo5XzxtxDtM22o=;
 b=g+ULV58dBHWF+trVZYEdY2mXIoWtAm+Txx0uHMP76V8LKrUxjYfWv6Fh5PlvS0XDNg+RqrdnueEPAN2YIYJ8CMHfL0x7m2D++CxxRJ4lFui1B3mkAtD4eBucOHhjK7DLglFxQzSq0eDT/fDnJ0X2dECUtD8zy8A/jwGvTNvOUQKBZ9W0PZdN2nxI60h0SsmzZo74uNury1Vxh25aQg9bqGp7DeNmDLyq9t8vSeo3eJuxpv24D4hpC6dWkBMreqok6wsUIvuRnuvDF9P5aVqtUY41dblcRcdgQzFHBbwcw5gH7a6g9zpWSg9gKSpRiGdQ0UPAvMvolP5NWjliOE0+CQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jD+BZVfXgeMWFxVUu7RKBW1fryc0fvo5XzxtxDtM22o=;
 b=WTZdXtXP5Pks9ZLHxPvF/OQ/cEqW3plf0zTcrB0b2sO8SUXn7xajF2hdm7raZbAQCKigo2yWHS9PjNHvgfYZVjxNsZRYr3AyUS7ViYMx9dKsnTLxHNik2JJddxBumR6upej/QMKXGeb0HUGtxUU7A9olBLTVS0zpHoOJ/ID86z4rpSDt/ISPAtZtaCZoqBlr38wsyvABozCve+zYc1lA1H0g7XPJZdmAjeIULnyaXaxprXeV/ZEIl8FlGxQw0zNQe17D++/MIzqvn1diFcM5DBY3MyOnGafg3mAjpoTfu49ni01tB2YEkcAPgoX5B+TB+xVrYfzqQ6fmDei2OahuJA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "jbeulich@suse.com" <jbeulich@suse.com>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 06/11] vpci/header: Handle p2m range sets per BAR
Thread-Topic: [PATCH v3 06/11] vpci/header: Handle p2m range sets per BAR
Thread-Index: AQHXtdAibxRAFQhJuUO1GvFhv7aI/6vlJmuAgAsYXoA=
Date: Tue, 2 Nov 2021 10:34:26 +0000
Message-ID: <3f5cd72e-8096-2628-bc1b-1a4b41d70498@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-7-andr2000@gmail.com>
 <YXfFhZ2/kX15CbLJ@MacBook-Air-de-Roger.local>
In-Reply-To: <YXfFhZ2/kX15CbLJ@MacBook-Air-de-Roger.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2e248f30-76bb-449d-8791-08d99dec5831
x-ms-traffictypediagnostic: AM9PR03MB7489:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB7489D41C3D589C2E986F22ECE78B9@AM9PR03MB7489.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 Ow45zbxr2i4FXGyJrjAUgHWn5/K5HcSMF266J2MDLCKUJY3WC4OYzKi9EoGnuyamuqsiJgJl4diKM4+nY5FjvYpZRDFVHwGp6Z4StCwMlq0ThY7Q4cuy24S2+AJNZEtJZED0Oax5qkl7vSuxhW/6TGqI97/oKM7Cp5NiZxeBIrfQ/EQvPCMhq9+JHhEX9xZxarZUD+M/Ux0wsD+M7UHBq3sh2RZdVlObKLc8pUWxM5paHyNLIB3Kt98W9FElNtiCitgVEHcCn+sYzBhiVLvhKfMmnsMfhszTOWP572SpzR0tSH3Tgl0uj+KoafWQxcRNeMVflRzHgzEDSFE6bB13mAf6m/tjGza0xdnvq5hNkJp7iGBwoUBJy9y2EGLAMXpqJqRHGZWgpVmAlWR3VDOGC56pGRgc22C6JshXwOC9SlbFtKnwLSM93ShmzdyeJ0vFlLDZeY0SxklN3a4HyBpGi0DczIRQILXIOvVvTfOab8ULLs3TzL95sLJNFHxuJaIlPBWtEHfskYUbOcXkP3AGQ3zcZGLbHv0C0hwSGi+Xlh3rjilK9CeH26406WIKDllGzX5y+B0QRz79yNKOCb01jH+xRoHma8BQv6lCAzpygIygYp04irziLpV50LLhRWX7jHkk5qVBdlygBbbb7DCtnxiwnhbOdMc8t+XqG5+AvDgaHYJov6RyBiQvICbnJNhLZAFZFyvF5wbjTYiI4e0ExLVbsfYoSVcSNlvmYnzrfu/ICTfN6GuE0ZLUSu5QBp20
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(186003)(5660300002)(31686004)(8676002)(38070700005)(4326008)(107886003)(36756003)(122000001)(83380400001)(8936002)(508600001)(30864003)(71200400001)(26005)(6916009)(31696002)(91956017)(6512007)(53546011)(316002)(66946007)(76116006)(54906003)(66556008)(6506007)(2616005)(6486002)(64756008)(66446008)(2906002)(86362001)(66476007)(38100700002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?V2ZoN0h1S0JHSHpQZGduMDdWd2RxVGRYNkF2dmdIdE13T0toNVNKZS9INEQv?=
 =?utf-8?B?OUhla1E0NDFVKzVmSlRFeTFXQlhZVVpybmZFZERIYjFhYkJ5RmF2Q3VvWUN3?=
 =?utf-8?B?a2F6VFRaRExJMmQ3WmwxdmYvZTloMmZCQVl1d3hZQk1UaGFUZUZzU21QTjls?=
 =?utf-8?B?MXE0b3Q1V3lMNXpTSThmVFBtWngxNFRhaS9nSG1JTnUyQ05Gb2VRUlJNVjBT?=
 =?utf-8?B?eFdMMlN5Yk82R0ErRnJ4V3JyZ1pYY1FETGptbkF3OFArSW5VaU9jN0lCRTl4?=
 =?utf-8?B?RUhMeXhJd2lwbk1GMzRvTSs0ZjJsamFKOE43K3J0VDNoUFA1aGZ3S3hvaGNK?=
 =?utf-8?B?Vmpuc1M5dkpxVDUrdGxhYVVFanV3YlNWQXRsRE9RYTBNMm5JdmhsT3A5dDFC?=
 =?utf-8?B?NFNpVWw3dUd0bjRyTmk4Uk8xcGJqdllrNUJSeENMc01QODZXQzZza2NIYkR4?=
 =?utf-8?B?WkF3aDAzeENVcWNKK0VHMExwdkJ5VDdhTWVoU25qTTlxY1FiTVZ6QUZZVkV5?=
 =?utf-8?B?UituNUZyN1NaYkhURUF4MXlRc0tzR3dFbHdueStmS2JIT0kzYnVXbGxWSE92?=
 =?utf-8?B?SEJSNnJYSE5VV25RVmZBdVY4ZENQcDdyR1BrdE14UXEwendraGJQYlNmM3V4?=
 =?utf-8?B?cytGZFd2U0NNcHBFbmJiQnVwcXVia3dVV1pLTm5wampMeVhoYlM1U1VzbFNX?=
 =?utf-8?B?MXJpbHZRenUvV3V2dG9vUE8yMUlaWEFoTStLRlV4NVFoS2E4Z0pHOFFidW44?=
 =?utf-8?B?QWEwRS81WndyWTNKL2c3RkV1ODBYWVRkMXdveFVkM24xTXFmNXlhWnQwb0JK?=
 =?utf-8?B?ZW13eEJHNWtGZlJnUVBGbWRVZWNKKzg2aWIwYWtIUW5FUEhTY2M1ZUZKUnNz?=
 =?utf-8?B?Q0YyNFBoVnRKbDZUQ3I2TFZYVEpLOFpaT1dJZ0EycFhnZ1l1TlR2OGZlb1ND?=
 =?utf-8?B?ZHErT3dzSU1qNU1pTE96YkdFeTJ3TlVyaHR0RDhMU0JxUjU3SUVzR09uYU44?=
 =?utf-8?B?OWt4YWUxYloyMnNzL2VmcWxRQnk3MG5qeUdoaXF4L0tIZEdWamtOMFJUdHFj?=
 =?utf-8?B?dTlYa1pXaFNmMkpDcVJiT0tYaVg1Y1JCSFR5Z00zMVVuOWFYWWVwR2gxZ1Nh?=
 =?utf-8?B?NlVnS0xSY3oweElYLytFRS9MeVEyeXZKcVBYRzFlMitTempJaHoxdVl4TEFx?=
 =?utf-8?B?WWtxcVBXR0Z1RUlLZ3VSV2lFTEY3UzdqMFJTNVk0T3hhQ1lFVjZxNnp1Y09G?=
 =?utf-8?B?ZTZqVjhWd2ZUMTFOVjNodURDTnBwb2tMSzNYOXlSd1Q1T2VDQVBrNXlMZ0ZJ?=
 =?utf-8?B?WEUvNUhqVE0rQkhyQUpJWTVHZmRSMEVhRlRPTTQ3dE4rZnRIdW9IcFZEY1pn?=
 =?utf-8?B?dkVDSDFzQnBmU1FJZkZtdGYxQVhXajdabEpwejVIQ0VOS0VzVlB0UjkweUJZ?=
 =?utf-8?B?UlhHWFRQS1lJVTE2cTZMSVRHT0twM1RLT01rbEtYYTJ0Y3JaUjlNZ2RQK0FR?=
 =?utf-8?B?NHFhTXdTRlljaXNFUXppY09jSW04YjdHbHNtaDFJVk9WWGpQb05tZW8rKzlu?=
 =?utf-8?B?ZUtTZURrdjZ0bE50QXFDOFRvYjFPTExkWkc2MTlETHRpZVJZVjdBeGlEQUZu?=
 =?utf-8?B?Q3l4MVZvYWZNZjRZaVZrM2pZUlRZQmNuc0lYUDViR1BQMUdRVHFJeXMyK2E0?=
 =?utf-8?B?cjQ3WU04ZHFmdzZKRFF2bVJYeGg4VlhRVWpER2tDUkxxY0h2RFNib2pRTXFN?=
 =?utf-8?B?azBUbHVEWmZkanlVR0xDazJzV3lVV3hmdXZuQ2s1VTV5YW5hcUxCQ2lJMHN0?=
 =?utf-8?B?OXJwd3BvdkYrMmozVWlia3VaREh2SkF1STF3N1ZnckVIL1pOa3ZHQjBRa1lG?=
 =?utf-8?B?YnR0SDJUWmNhUlAyQTg1VERVK3FmSng3MFJUNTRBS29jTkdySGc5K0s1aXZH?=
 =?utf-8?B?OTBzblZXT01RMzZPcWxxNG1aL0RNVC9rNFZCclRWSnRwMHU1UlNPV2M5d1k1?=
 =?utf-8?B?K3Y2NW9BWU9kWWQ5MnFIQnRwVTF1UGZJMitLM1JlV2xUV1hHWlF4cVB0dDlm?=
 =?utf-8?B?bERBelF0NEJyWHRMejgvYVdBUlRGOXlKcFByN3RJeVNwNGJHN01nQXU1QXlR?=
 =?utf-8?B?MUQrSTdRb0p1TktsMFVxeEQwNmF2UitrQU9XcFMyaTRnMGpEL3NIM0d6QXJ6?=
 =?utf-8?B?Z3ErQWttWEdYa1NCWnlSZkNRS1I5V2Y5bDRWZGZscVJpT0NuTm96YWhpTzRB?=
 =?utf-8?B?cmFhL000Qmxhek9RRzBTSnlYVk1uTzFtUlB6T08yVmcxUXArVzVrTExHbXZr?=
 =?utf-8?B?Q0dkTnkveVZxTm1YSDFUbm53TjZVMUFvUXpqd0xRTmFzb210QUwrZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <FC816417F9FADC4A8A29A7A08BEFAAA1@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e248f30-76bb-449d-8791-08d99dec5831
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 10:34:26.5297
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 97jpgHUoBD0d2xkQTVs+po0j27FOjys7ae3Oe0Z72M0gvoFCKNS9jRYDfeJC5ks5aV0XyAotGsaVP2UGCz0azn0y3T1sgpYs8wD9hEAidjvUNhohpjVisR/Rfl5wsgJh
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7489
X-Proofpoint-ORIG-GUID: EaVF6RVLbITqrTu_QzNPV4j1SEhKApIJ
X-Proofpoint-GUID: EaVF6RVLbITqrTu_QzNPV4j1SEhKApIJ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_06,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0
 priorityscore=1501 spamscore=0 mlxscore=0 suspectscore=0 adultscore=0
 lowpriorityscore=0 mlxlogscore=999 phishscore=0 malwarescore=0
 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020062

SGksIFJvZ2VyIQ0KDQpPbiAyNi4xMC4yMSAxMjowOCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToN
Cj4gT24gVGh1LCBTZXAgMzAsIDIwMjEgYXQgMTA6NTI6MThBTSArMDMwMCwgT2xla3NhbmRyIEFu
ZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xl
a3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0KPj4gSW5zdGVhZCBvZiBoYW5kbGlu
ZyBhIHNpbmdsZSByYW5nZSBzZXQsIHRoYXQgY29udGFpbnMgYWxsIHRoZSBtZW1vcnkNCj4+IHJl
Z2lvbnMgb2YgYWxsIHRoZSBCQVJzIGFuZCBST00sIGhhdmUgdGhlbSBwZXIgQkFSLg0KPj4NCj4+
IFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gb2YgbWFraW5nIG5vbi1pZGVudGl0eSBtYXBwaW5ncyBp
biBwMm0gZm9yIHRoZQ0KPj4gTU1JT3MvUk9NLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtz
YW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+
IC0tLQ0KPj4gICB4ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jIHwgMTcyICsrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0tLS0tLS0tDQo+PiAgIHhlbi9pbmNsdWRlL3hlbi92cGNpLmggICAg
fCAgIDMgKy0NCj4+ICAgMiBmaWxlcyBjaGFuZ2VkLCAxMjIgaW5zZXJ0aW9ucygrKSwgNTMgZGVs
ZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMg
Yi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+PiBpbmRleCBlYzRkMjE1ZjM2ZmYuLjljNjAz
ZDI2ZDMwMiAxMDA2NDQNCj4+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+ICsr
KyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+IEBAIC0xMzEsNDkgKzEzMSw3NSBAQCBz
dGF0aWMgdm9pZCBtb2RpZnlfZGVjb2RpbmcoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVp
bnQxNl90IGNtZCwNCj4+ICAgDQo+PiAgIGJvb2wgdnBjaV9wcm9jZXNzX3BlbmRpbmcoc3RydWN0
IHZjcHUgKnYpDQo+PiAgIHsNCj4+IC0gICAgaWYgKCB2LT52cGNpLm1lbSApDQo+PiArICAgIGlm
ICggdi0+dnBjaS5udW1fbWVtX3JhbmdlcyApDQo+PiAgICAgICB7DQo+PiAgICAgICAgICAgc3Ry
dWN0IG1hcF9kYXRhIGRhdGEgPSB7DQo+PiAgICAgICAgICAgICAgIC5kID0gdi0+ZG9tYWluLA0K
Pj4gICAgICAgICAgICAgICAubWFwID0gdi0+dnBjaS5jbWQgJiBQQ0lfQ09NTUFORF9NRU1PUlks
DQo+PiAgICAgICAgICAgfTsNCj4+IC0gICAgICAgIGludCByYyA9IHJhbmdlc2V0X2NvbnN1bWVf
cmFuZ2VzKHYtPnZwY2kubWVtLCBtYXBfcmFuZ2UsICZkYXRhKTsNCj4+ICsgICAgICAgIHN0cnVj
dCBwY2lfZGV2ICpwZGV2ID0gdi0+dnBjaS5wZGV2Ow0KPj4gKyAgICAgICAgc3RydWN0IHZwY2lf
aGVhZGVyICpoZWFkZXIgPSAmcGRldi0+dnBjaS0+aGVhZGVyOw0KPj4gKyAgICAgICAgdW5zaWdu
ZWQgaW50IGk7DQo+PiAgIA0KPj4gLSAgICAgICAgaWYgKCByYyA9PSAtRVJFU1RBUlQgKQ0KPj4g
LSAgICAgICAgICAgIHJldHVybiB0cnVlOw0KPj4gKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCBB
UlJBWV9TSVpFKGhlYWRlci0+YmFycyk7IGkrKyApDQo+PiArICAgICAgICB7DQo+PiArICAgICAg
ICAgICAgc3RydWN0IHZwY2lfYmFyICpiYXIgPSAmaGVhZGVyLT5iYXJzW2ldOw0KPj4gKyAgICAg
ICAgICAgIGludCByYzsNCj4+ICAgDQo+PiAtICAgICAgICBzcGluX2xvY2soJnYtPnZwY2kucGRl
di0+dnBjaS0+bG9jayk7DQo+PiAtICAgICAgICAvKiBEaXNhYmxlIG1lbW9yeSBkZWNvZGluZyB1
bmNvbmRpdGlvbmFsbHkgb24gZmFpbHVyZS4gKi8NCj4+IC0gICAgICAgIG1vZGlmeV9kZWNvZGlu
Zyh2LT52cGNpLnBkZXYsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgcmMgPyB2LT52cGNp
LmNtZCAmIH5QQ0lfQ09NTUFORF9NRU1PUlkgOiB2LT52cGNpLmNtZCwNCj4+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAhcmMgJiYgdi0+dnBjaS5yb21fb25seSk7DQo+PiAtICAgICAgICBzcGlu
X3VubG9jaygmdi0+dnBjaS5wZGV2LT52cGNpLT5sb2NrKTsNCj4+ICsgICAgICAgICAgICBpZiAo
ICFiYXItPm1lbSApDQo+PiArICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gICANCj4+IC0g
ICAgICAgIHJhbmdlc2V0X2Rlc3Ryb3kodi0+dnBjaS5tZW0pOw0KPj4gLSAgICAgICAgdi0+dnBj
aS5tZW0gPSBOVUxMOw0KPj4gLSAgICAgICAgaWYgKCByYyApDQo+PiAtICAgICAgICAgICAgLyoN
Cj4+IC0gICAgICAgICAgICAgKiBGSVhNRTogaW4gY2FzZSBvZiBmYWlsdXJlIHJlbW92ZSB0aGUg
ZGV2aWNlIGZyb20gdGhlIGRvbWFpbi4NCj4+IC0gICAgICAgICAgICAgKiBOb3RlIHRoYXQgdGhl
cmUgbWlnaHQgc3RpbGwgYmUgbGVmdG92ZXIgbWFwcGluZ3MuIFdoaWxlIHRoaXMgaXMNCj4+IC0g
ICAgICAgICAgICAgKiBzYWZlIGZvciBEb20wLCBmb3IgRG9tVXMgdGhlIGRvbWFpbiB3aWxsIGxp
a2VseSBuZWVkIHRvIGJlDQo+PiAtICAgICAgICAgICAgICoga2lsbGVkIGluIG9yZGVyIHRvIGF2
b2lkIGxlYWtpbmcgc3RhbGUgcDJtIG1hcHBpbmdzIG9uDQo+PiAtICAgICAgICAgICAgICogZmFp
bHVyZS4NCj4+IC0gICAgICAgICAgICAgKi8NCj4+IC0gICAgICAgICAgICB2cGNpX3JlbW92ZV9k
ZXZpY2Uodi0+dnBjaS5wZGV2KTsNCj4+ICsgICAgICAgICAgICByYyA9IHJhbmdlc2V0X2NvbnN1
bWVfcmFuZ2VzKGJhci0+bWVtLCBtYXBfcmFuZ2UsICZkYXRhKTsNCj4+ICsNCj4+ICsgICAgICAg
ICAgICBpZiAoIHJjID09IC1FUkVTVEFSVCApDQo+PiArICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOw0KPj4gKw0KPj4gKyAgICAgICAgICAgIHNwaW5fbG9jaygmcGRldi0+dnBjaS0+bG9jayk7
DQo+PiArICAgICAgICAgICAgLyogRGlzYWJsZSBtZW1vcnkgZGVjb2RpbmcgdW5jb25kaXRpb25h
bGx5IG9uIGZhaWx1cmUuICovDQo+PiArICAgICAgICAgICAgbW9kaWZ5X2RlY29kaW5nKHBkZXYs
DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjID8gdi0+dnBjaS5jbWQgJiB+UENJ
X0NPTU1BTkRfTUVNT1JZIDogdi0+dnBjaS5jbWQsDQo+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICFyYyAmJiB2LT52cGNpLnJvbV9vbmx5KTsNCj4+ICsgICAgICAgICAgICBzcGluX3Vu
bG9jaygmcGRldi0+dnBjaS0+bG9jayk7DQo+PiArDQo+PiArICAgICAgICAgICAgcmFuZ2VzZXRf
ZGVzdHJveShiYXItPm1lbSk7DQo+IE5vdyB0aGF0IHRoZSByYW5nZXNldHMgYXJlIHBlci1CQVIg
d2UgbWlnaHQgaGF2ZSB0byBjb25zaWRlcg0KPiBhbGxvY2F0aW5nIHRoZW0gYXQgaW5pdGlhbGl6
YXRpb24gdGltZSBhbmQgbm90IGRlc3Ryb3lpbmcgdGhlbSB3aGVuDQo+IGVtcHR5LiBXZSBjb3Vs
ZCByZXBsYWNlIHRoZSBOVUxMIGNoZWNrcyB3aXRoIHJhbmdlc2V0X2lzX2VtcHR5DQo+IGluc3Rl
YWQuIE5vdCB0aGF0IHlvdSBoYXZlIHRvIGRvIHRoaXMgb24gdGhpcyBwYXRjaCwgYnV0IEkgdGhp
bmsgaXQncw0KPiB3b3J0aCBtZW50aW9uaW5nLg0KWWVzLCB0aGlzIGlzIGEgZ29vZCBpZGVhLiBJ
IHdpbGwgcmUtd29yayB0aGUgcGF0Y2ggdG8gY3JlYXRlL2Rlc3Ryb3kNCnRoZSByYW5nZXNldHMg
b25jZSBpbiBhZGQvcmVtb3ZlDQo+DQo+PiArICAgICAgICAgICAgYmFyLT5tZW0gPSBOVUxMOw0K
Pj4gKyAgICAgICAgICAgIHYtPnZwY2kubnVtX21lbV9yYW5nZXMtLTsNCj4+ICsgICAgICAgICAg
ICBpZiAoIHJjICkNCj4+ICsgICAgICAgICAgICAgICAgLyoNCj4+ICsgICAgICAgICAgICAgICAg
ICogRklYTUU6IGluIGNhc2Ugb2YgZmFpbHVyZSByZW1vdmUgdGhlIGRldmljZSBmcm9tIHRoZSBk
b21haW4uDQo+PiArICAgICAgICAgICAgICAgICAqIE5vdGUgdGhhdCB0aGVyZSBtaWdodCBzdGls
bCBiZSBsZWZ0b3ZlciBtYXBwaW5ncy4gV2hpbGUgdGhpcyBpcw0KPj4gKyAgICAgICAgICAgICAg
ICAgKiBzYWZlIGZvciBEb20wLCBmb3IgRG9tVXMgdGhlIGRvbWFpbiB3aWxsIGxpa2VseSBuZWVk
IHRvIGJlDQo+PiArICAgICAgICAgICAgICAgICAqIGtpbGxlZCBpbiBvcmRlciB0byBhdm9pZCBs
ZWFraW5nIHN0YWxlIHAybSBtYXBwaW5ncyBvbg0KPj4gKyAgICAgICAgICAgICAgICAgKiBmYWls
dXJlLg0KPj4gKyAgICAgICAgICAgICAgICAgKi8NCj4+ICsgICAgICAgICAgICAgICAgdnBjaV9y
ZW1vdmVfZGV2aWNlKHBkZXYpOw0KPj4gKyAgICAgICAgfQ0KPj4gICAgICAgfQ0KPj4gICANCj4+
ICAgICAgIHJldHVybiBmYWxzZTsNCj4+ICAgfQ0KPj4gICANCj4+ICAgc3RhdGljIGludCBfX2lu
aXQgYXBwbHlfbWFwKHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2
LA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcmFuZ2VzZXQgKm1lbSwg
dWludDE2X3QgY21kKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBj
bWQpDQo+PiAgIHsNCj4+ICAgICAgIHN0cnVjdCBtYXBfZGF0YSBkYXRhID0geyAuZCA9IGQsIC5t
YXAgPSB0cnVlIH07DQo+PiAtICAgIGludCByYzsNCj4+ICsgICAgc3RydWN0IHZwY2lfaGVhZGVy
ICpoZWFkZXIgPSAmcGRldi0+dnBjaS0+aGVhZGVyOw0KPj4gKyAgICBpbnQgcmMgPSAwOw0KPj4g
KyAgICB1bnNpZ25lZCBpbnQgaTsNCj4+ICsNCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBBUlJB
WV9TSVpFKGhlYWRlci0+YmFycyk7IGkrKyApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHN0cnVj
dCB2cGNpX2JhciAqYmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCj4+ICAgDQo+PiAtICAgIHdoaWxl
ICggKHJjID0gcmFuZ2VzZXRfY29uc3VtZV9yYW5nZXMobWVtLCBtYXBfcmFuZ2UsICZkYXRhKSkg
PT0gLUVSRVNUQVJUICkNCj4+IC0gICAgICAgIHByb2Nlc3NfcGVuZGluZ19zb2Z0aXJxcygpOw0K
Pj4gLSAgICByYW5nZXNldF9kZXN0cm95KG1lbSk7DQo+PiArICAgICAgICBpZiAoICFiYXItPm1l
bSApDQo+PiArICAgICAgICAgICAgY29udGludWU7DQo+PiArDQo+PiArICAgICAgICB3aGlsZSAo
IChyYyA9IHJhbmdlc2V0X2NvbnN1bWVfcmFuZ2VzKGJhci0+bWVtLCBtYXBfcmFuZ2UsDQo+PiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhKSkgPT0g
LUVSRVNUQVJUICkNCj4+ICsgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMoKTsN
Cj4+ICsgICAgICAgIHJhbmdlc2V0X2Rlc3Ryb3koYmFyLT5tZW0pOw0KPj4gKyAgICAgICAgYmFy
LT5tZW0gPSBOVUxMOw0KPj4gKyAgICB9DQo+PiAgICAgICBpZiAoICFyYyApDQo+PiAgICAgICAg
ICAgbW9kaWZ5X2RlY29kaW5nKHBkZXYsIGNtZCwgZmFsc2UpOw0KPj4gICANCj4+IEBAIC0xODEs
NyArMjA3LDcgQEAgc3RhdGljIGludCBfX2luaXQgYXBwbHlfbWFwKHN0cnVjdCBkb21haW4gKmQs
IGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KPj4gICB9DQo+PiAgIA0KPj4gICBzdGF0aWMg
dm9pZCBkZWZlcl9tYXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHBjaV9kZXYgKnBkZXYsDQo+
PiAtICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByYW5nZXNldCAqbWVtLCB1aW50MTZfdCBj
bWQsIGJvb2wgcm9tX29ubHkpDQo+PiArICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IGNt
ZCwgYm9vbCByb21fb25seSwgdWludDhfdCBudW1fbWVtX3JhbmdlcykNCj4gTGlrZSBtZW50aW9u
ZWQgYmVsb3csIEkgZG9uJ3QgdGhpbmsgeW91IG5lZWQgdG8gcGFzcyB0aGUgbnVtYmVyIG9mDQo+
IEJBUnMgdGhhdCBuZWVkIG1hcHBpbmcgY2hhbmdlcy4gSWZmIHRoYXQncyBzdHJpY3RseSBuZWVk
ZWQsIGl0IHNob3VsZA0KPiBiZSBhbiB1bnNpZ25lZCBpbnQuDQpib29sIG1hcF9wZW5kaW5nIDox
IHdvcmtzIGdyZWF0DQo+DQo+PiAgIHsNCj4+ICAgICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3Vy
cmVudDsNCj4+ICAgDQo+PiBAQCAtMTkyLDkgKzIxOCw5IEBAIHN0YXRpYyB2b2lkIGRlZmVyX21h
cChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4+ICAgICAgICAqIHN0
YXJ0ZWQgZm9yIHRoZSBzYW1lIGRldmljZSBpZiB0aGUgZG9tYWluIGlzIG5vdCB3ZWxsLWJlaGF2
ZWQuDQo+PiAgICAgICAgKi8NCj4+ICAgICAgIGN1cnItPnZwY2kucGRldiA9IHBkZXY7DQo+PiAt
ICAgIGN1cnItPnZwY2kubWVtID0gbWVtOw0KPj4gICAgICAgY3Vyci0+dnBjaS5jbWQgPSBjbWQ7
DQo+PiAgICAgICBjdXJyLT52cGNpLnJvbV9vbmx5ID0gcm9tX29ubHk7DQo+PiArICAgIGN1cnIt
PnZwY2kubnVtX21lbV9yYW5nZXMgPSBudW1fbWVtX3JhbmdlczsNCj4+ICAgICAgIC8qDQo+PiAg
ICAgICAgKiBSYWlzZSBhIHNjaGVkdWxlciBzb2Z0aXJxIGluIG9yZGVyIHRvIHByZXZlbnQgdGhl
IGd1ZXN0IGZyb20gcmVzdW1pbmcNCj4+ICAgICAgICAqIGV4ZWN1dGlvbiB3aXRoIHBlbmRpbmcg
bWFwcGluZyBvcGVyYXRpb25zLCB0byB0cmlnZ2VyIHRoZSBpbnZvY2F0aW9uDQo+PiBAQCAtMjA2
LDQyICsyMzIsNDcgQEAgc3RhdGljIHZvaWQgZGVmZXJfbWFwKHN0cnVjdCBkb21haW4gKmQsIHN0
cnVjdCBwY2lfZGV2ICpwZGV2LA0KPj4gICBzdGF0aWMgaW50IG1vZGlmeV9iYXJzKGNvbnN0IHN0
cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MTZfdCBjbWQsIGJvb2wgcm9tX29ubHkpDQo+PiAgIHsN
Cj4+ICAgICAgIHN0cnVjdCB2cGNpX2hlYWRlciAqaGVhZGVyID0gJnBkZXYtPnZwY2ktPmhlYWRl
cjsNCj4+IC0gICAgc3RydWN0IHJhbmdlc2V0ICptZW0gPSByYW5nZXNldF9uZXcoTlVMTCwgTlVM
TCwgMCk7DQo+PiAgICAgICBzdHJ1Y3QgcGNpX2RldiAqdG1wLCAqZGV2ID0gTlVMTDsNCj4+ICAg
ICAgIGNvbnN0IHN0cnVjdCB2cGNpX21zaXggKm1zaXggPSBwZGV2LT52cGNpLT5tc2l4Ow0KPj4g
LSAgICB1bnNpZ25lZCBpbnQgaTsNCj4+ICsgICAgdW5zaWduZWQgaW50IGksIGo7DQo+PiAgICAg
ICBpbnQgcmM7DQo+PiAtDQo+PiAtICAgIGlmICggIW1lbSApDQo+PiAtICAgICAgICByZXR1cm4g
LUVOT01FTTsNCj4+ICsgICAgdWludDhfdCBudW1fbWVtX3JhbmdlczsNCj4+ICAgDQo+PiAgICAg
ICAvKg0KPj4gLSAgICAgKiBDcmVhdGUgYSByYW5nZXNldCB0aGF0IHJlcHJlc2VudHMgdGhlIGN1
cnJlbnQgZGV2aWNlIEJBUnMgbWVtb3J5IHJlZ2lvbg0KPj4gKyAgICAgKiBDcmVhdGUgYSByYW5n
ZXNldCBwZXIgQkFSIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudCBkZXZpY2UgbWVtb3J5IHJl
Z2lvbg0KPj4gICAgICAgICogYW5kIGNvbXBhcmUgaXQgYWdhaW5zdCBhbGwgdGhlIGN1cnJlbnRs
eSBhY3RpdmUgQkFSIG1lbW9yeSByZWdpb25zLiBJZg0KPj4gICAgICAgICogYW4gb3ZlcmxhcCBp
cyBmb3VuZCwgc3VidHJhY3QgaXQgZnJvbSB0aGUgcmVnaW9uIHRvIGJlIG1hcHBlZC91bm1hcHBl
ZC4NCj4+ICAgICAgICAqDQo+PiAtICAgICAqIEZpcnN0IGZpbGwgdGhlIHJhbmdlc2V0IHdpdGgg
YWxsIHRoZSBCQVJzIG9mIHRoaXMgZGV2aWNlIG9yIHdpdGggdGhlIFJPTQ0KPj4gKyAgICAgKiBG
aXJzdCBmaWxsIHRoZSByYW5nZXNldHMgd2l0aCBhbGwgdGhlIEJBUnMgb2YgdGhpcyBkZXZpY2Ug
b3Igd2l0aCB0aGUgUk9NDQo+PiAgICAgICAgKiBCQVIgb25seSwgZGVwZW5kaW5nIG9uIHdoZXRo
ZXIgdGhlIGd1ZXN0IGlzIHRvZ2dsaW5nIHRoZSBtZW1vcnkgZGVjb2RlDQo+PiAgICAgICAgKiBi
aXQgb2YgdGhlIGNvbW1hbmQgcmVnaXN0ZXIsIG9yIHRoZSBlbmFibGUgYml0IG9mIHRoZSBST00g
QkFSIHJlZ2lzdGVyLg0KPj4gICAgICAgICovDQo+PiAgICAgICBmb3IgKCBpID0gMDsgaSA8IEFS
UkFZX1NJWkUoaGVhZGVyLT5iYXJzKTsgaSsrICkNCj4+ICAgICAgIHsNCj4+IC0gICAgICAgIGNv
bnN0IHN0cnVjdCB2cGNpX2JhciAqYmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCj4+ICsgICAgICAg
IHN0cnVjdCB2cGNpX2JhciAqYmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCj4+ICAgICAgICAgICB1
bnNpZ25lZCBsb25nIHN0YXJ0ID0gUEZOX0RPV04oYmFyLT5hZGRyKTsNCj4+ICAgICAgICAgICB1
bnNpZ25lZCBsb25nIGVuZCA9IFBGTl9ET1dOKGJhci0+YWRkciArIGJhci0+c2l6ZSAtIDEpOw0K
Pj4gICANCj4+ICsgICAgICAgIGJhci0+bWVtID0gTlVMTDsNCj4gV2h5IGRvIHlvdSBuZWVkIHRv
IHNldCBtZW0gdG8gTlVMTCBoZXJlPyBJIHRoaW5rIHdlIHNob3VsZCBpbnN0ZWFkDQo+IGFzc2Vy
dCB0aGF0IGJhci0+bWVtID09IE5VTEwgaGVyZS4NCkkgd2lsbCBwdXQgYW4gQVNTRVJUIGhlcmUN
Cj4NCj4+ICsNCj4+ICAgICAgICAgICBpZiAoICFNQVBQQUJMRV9CQVIoYmFyKSB8fA0KPj4gICAg
ICAgICAgICAgICAgKHJvbV9vbmx5ID8gYmFyLT50eXBlICE9IFZQQ0lfQkFSX1JPTQ0KPj4gICAg
ICAgICAgICAgICAgICAgICAgICAgIDogKGJhci0+dHlwZSA9PSBWUENJX0JBUl9ST00gJiYgIWhl
YWRlci0+cm9tX2VuYWJsZWQpKSApDQo+PiAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gICAN
Cj4+IC0gICAgICAgIHJjID0gcmFuZ2VzZXRfYWRkX3JhbmdlKG1lbSwgc3RhcnQsIGVuZCk7DQo+
PiArICAgICAgICBiYXItPm1lbSA9IHJhbmdlc2V0X25ldyhOVUxMLCBOVUxMLCAwKTsNCj4+ICsg
ICAgICAgIGlmICggIWJhci0+bWVtICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICBy
YyA9IC1FTk9NRU07DQo+PiArICAgICAgICAgICAgZ290byBmYWlsOw0KPj4gKyAgICAgICAgfQ0K
Pj4gKw0KPj4gKyAgICAgICAgcmMgPSByYW5nZXNldF9hZGRfcmFuZ2UoYmFyLT5tZW0sIHN0YXJ0
LCBlbmQpOw0KPj4gICAgICAgICAgIGlmICggcmMgKQ0KPj4gICAgICAgICAgIHsNCj4+ICAgICAg
ICAgICAgICAgcHJpbnRrKFhFTkxPR19HX1dBUk5JTkcgIkZhaWxlZCB0byBhZGQgWyVseCwgJWx4
XTogJWRcbiIsDQo+PiAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgZW5kLCByYyk7DQo+PiAt
ICAgICAgICAgICAgcmFuZ2VzZXRfZGVzdHJveShtZW0pOw0KPj4gLSAgICAgICAgICAgIHJldHVy
biByYzsNCj4+ICsgICAgICAgICAgICBnb3RvIGZhaWw7DQo+PiAgICAgICAgICAgfQ0KPj4gICAg
ICAgfQ0KPj4gICANCj4+IEBAIC0yNTIsMTQgKzI4MywyMSBAQCBzdGF0aWMgaW50IG1vZGlmeV9i
YXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MTZfdCBjbWQsIGJvb2wgcm9tX29u
bHkpDQo+PiAgICAgICAgICAgdW5zaWduZWQgbG9uZyBlbmQgPSBQRk5fRE9XTih2bXNpeF90YWJs
ZV9hZGRyKHBkZXYtPnZwY2ksIGkpICsNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZtc2l4X3RhYmxlX3NpemUocGRldi0+dnBjaSwgaSkgLSAxKTsNCj4+ICAgDQo+
PiAtICAgICAgICByYyA9IHJhbmdlc2V0X3JlbW92ZV9yYW5nZShtZW0sIHN0YXJ0LCBlbmQpOw0K
Pj4gLSAgICAgICAgaWYgKCByYyApDQo+PiArICAgICAgICBmb3IgKCBqID0gMDsgaiA8IEFSUkFZ
X1NJWkUoaGVhZGVyLT5iYXJzKTsgaisrICkNCj4+ICAgICAgICAgICB7DQo+PiAtICAgICAgICAg
ICAgcHJpbnRrKFhFTkxPR19HX1dBUk5JTkcNCj4+IC0gICAgICAgICAgICAgICAgICAgIkZhaWxl
ZCB0byByZW1vdmUgTVNJWCB0YWJsZSBbJWx4LCAlbHhdOiAlZFxuIiwNCj4+IC0gICAgICAgICAg
ICAgICAgICAgc3RhcnQsIGVuZCwgcmMpOw0KPj4gLSAgICAgICAgICAgIHJhbmdlc2V0X2Rlc3Ry
b3kobWVtKTsNCj4+IC0gICAgICAgICAgICByZXR1cm4gcmM7DQo+PiArICAgICAgICAgICAgY29u
c3Qgc3RydWN0IHZwY2lfYmFyICpiYXIgPSAmaGVhZGVyLT5iYXJzW2pdOw0KPj4gKw0KPj4gKyAg
ICAgICAgICAgIGlmICggIWJhci0+bWVtICkNCj4+ICsgICAgICAgICAgICAgICAgY29udGludWU7
DQo+PiArDQo+PiArICAgICAgICAgICAgcmMgPSByYW5nZXNldF9yZW1vdmVfcmFuZ2UoYmFyLT5t
ZW0sIHN0YXJ0LCBlbmQpOw0KPj4gKyAgICAgICAgICAgIGlmICggcmMgKQ0KPj4gKyAgICAgICAg
ICAgIHsNCj4+ICsgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX1dBUk5JTkcNCj4+ICsg
ICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gcmVtb3ZlIE1TSVggdGFibGUgWyVseCwg
JWx4XTogJWRcbiIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgZW5kLCByYyk7
DQo+PiArICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsNCj4+ICsgICAgICAgICAgICB9DQo+PiAg
ICAgICAgICAgfQ0KPj4gICAgICAgfQ0KPj4gICANCj4+IEBAIC0yOTEsNyArMzI5LDggQEAgc3Rh
dGljIGludCBtb2RpZnlfYmFycyhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdWludDE2X3Qg
Y21kLCBib29sIHJvbV9vbmx5KQ0KPj4gICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0
ID0gUEZOX0RPV04oYmFyLT5hZGRyKTsNCj4+ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBl
bmQgPSBQRk5fRE9XTihiYXItPmFkZHIgKyBiYXItPnNpemUgLSAxKTsNCj4+ICAgDQo+PiAtICAg
ICAgICAgICAgaWYgKCAhYmFyLT5lbmFibGVkIHx8ICFyYW5nZXNldF9vdmVybGFwc19yYW5nZSht
ZW0sIHN0YXJ0LCBlbmQpIHx8DQo+PiArICAgICAgICAgICAgaWYgKCAhYmFyLT5lbmFibGVkIHx8
DQo+PiArICAgICAgICAgICAgICAgICAhcmFuZ2VzZXRfb3ZlcmxhcHNfcmFuZ2UoYmFyLT5tZW0s
IHN0YXJ0LCBlbmQpIHx8DQo+PiAgICAgICAgICAgICAgICAgICAgLyoNCj4+ICAgICAgICAgICAg
ICAgICAgICAgKiBJZiBvbmx5IHRoZSBST00gZW5hYmxlIGJpdCBpcyB0b2dnbGVkIGNoZWNrIGFn
YWluc3Qgb3RoZXINCj4+ICAgICAgICAgICAgICAgICAgICAgKiBCQVJzIGluIHRoZSBzYW1lIGRl
dmljZSBmb3Igb3ZlcmxhcHMsIGJ1dCBub3QgYWdhaW5zdCB0aGUNCj4+IEBAIC0zMDAsMTMgKzMz
OSwxMiBAQCBzdGF0aWMgaW50IG1vZGlmeV9iYXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2
LCB1aW50MTZfdCBjbWQsIGJvb2wgcm9tX29ubHkpDQo+PiAgICAgICAgICAgICAgICAgICAgKHJv
bV9vbmx5ICYmIHRtcCA9PSBwZGV2ICYmIGJhci0+dHlwZSA9PSBWUENJX0JBUl9ST00pICkNCj4+
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gICANCj4+IC0gICAgICAgICAgICByYyA9
IHJhbmdlc2V0X3JlbW92ZV9yYW5nZShtZW0sIHN0YXJ0LCBlbmQpOw0KPj4gKyAgICAgICAgICAg
IHJjID0gcmFuZ2VzZXRfcmVtb3ZlX3JhbmdlKGJhci0+bWVtLCBzdGFydCwgZW5kKTsNCj4+ICAg
ICAgICAgICAgICAgaWYgKCByYyApDQo+PiAgICAgICAgICAgICAgIHsNCj4+ICAgICAgICAgICAg
ICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HICJGYWlsZWQgdG8gcmVtb3ZlIFslbHgsICVs
eF06ICVkXG4iLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsIHJjKTsN
Cj4+IC0gICAgICAgICAgICAgICAgcmFuZ2VzZXRfZGVzdHJveShtZW0pOw0KPj4gLSAgICAgICAg
ICAgICAgICByZXR1cm4gcmM7DQo+PiArICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsNCj4+ICAg
ICAgICAgICAgICAgfQ0KPj4gICAgICAgICAgIH0NCj4+ICAgICAgIH0NCj4+IEBAIC0zMjQsMTIg
KzM2Miw0MiBAQCBzdGF0aWMgaW50IG1vZGlmeV9iYXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpw
ZGV2LCB1aW50MTZfdCBjbWQsIGJvb2wgcm9tX29ubHkpDQo+PiAgICAgICAgICAgICogd2lsbCBh
bHdheXMgYmUgdG8gZXN0YWJsaXNoIG1hcHBpbmdzIGFuZCBwcm9jZXNzIGFsbCB0aGUgQkFScy4N
Cj4+ICAgICAgICAgICAgKi8NCj4+ICAgICAgICAgICBBU1NFUlQoKGNtZCAmIFBDSV9DT01NQU5E
X01FTU9SWSkgJiYgIXJvbV9vbmx5KTsNCj4+IC0gICAgICAgIHJldHVybiBhcHBseV9tYXAocGRl
di0+ZG9tYWluLCBwZGV2LCBtZW0sIGNtZCk7DQo+PiArICAgICAgICByZXR1cm4gYXBwbHlfbWFw
KHBkZXYtPmRvbWFpbiwgcGRldiwgY21kKTsNCj4+ICAgICAgIH0NCj4+ICAgDQo+PiAtICAgIGRl
ZmVyX21hcChkZXYtPmRvbWFpbiwgZGV2LCBtZW0sIGNtZCwgcm9tX29ubHkpOw0KPj4gKyAgICAv
KiBGaW5kIG91dCBob3cgbWFueSBtZW1vcnkgcmFuZ2VzIGhhcyBsZWZ0IGFmdGVyIE1TSSBhbmQg
b3ZlcmxhcHMuICovDQo+PiArICAgIG51bV9tZW1fcmFuZ2VzID0gMDsNCj4+ICsgICAgZm9yICgg
aSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhlYWRlci0+YmFycyk7IGkrKyApDQo+PiArICAgIHsNCj4+
ICsgICAgICAgIHN0cnVjdCB2cGNpX2JhciAqYmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCj4gVGhl
cmUncyBubyBuZWVkIHRvIGRlY2xhcmUgdGhpcyBsb2NhbCB2YXJpYWJsZSBBRkFJQ1QsIGp1c3Qg
dXNlDQo+IGhlYWRlci0+YmFyc1tpXS5tZW0uDQpPaw0KPiAgIEluIGFueSBjYXNlIHRoaXMgaXMg
bGlrZWx5IHRvIGdvIGF3YXkgaWYgeW91DQo+IGZvbGxvdyBteSByZWNvbW1lbmRhdGlvbiBiZWxv
dyB0byBqdXN0IGNhbGwgZGVmZXJfbWFwIHVuY29uZGl0aW9uYWxseQ0KPiBsaWtlIGl0J3MgY3Vy
cmVudGx5IGRvbmUuDQpQbGVhc2Ugc2VlIGJlbG93DQo+PiArDQo+PiArICAgICAgICBpZiAoICFy
YW5nZXNldF9pc19lbXB0eShiYXItPm1lbSkgKQ0KPj4gKyAgICAgICAgICAgIG51bV9tZW1fcmFu
Z2VzKys7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgLyoNCj4+ICsgICAgICogVGhlcmUgYXJl
IGNhc2VzIHdoZW4gUENJIGRldmljZSwgcm9vdCBwb3J0IGZvciBleGFtcGxlLCBoYXMgbmVpdGhl
cg0KPj4gKyAgICAgKiBtZW1vcnkgc3BhY2Ugbm9yIElPLiBJbiB0aGlzIGNhc2UgUENJIGNvbW1h
bmQgcmVnaXN0ZXIgd3JpdGUgaXMNCj4+ICsgICAgICogbWlzc2VkIHJlc3VsdGluZyBpbiB0aGUg
dW5kZXJseWluZyBQQ0kgZGV2aWNlIG5vdCBmdW5jdGlvbmFsLCBzbzoNCj4+ICsgICAgICogICAt
IGlmIHRoZXJlIGFyZSBubyByZWdpb25zIHdyaXRlIHRoZSBjb21tYW5kIHJlZ2lzdGVyIG5vdw0K
Pj4gKyAgICAgKiAgIC0gaWYgdGhlcmUgYXJlIHJlZ2lvbnMgdGhlbiBkZWZlciB3b3JrIGFuZCB3
cml0ZSBsYXRlciBvbg0KPj4gKyAgICAgKi8NCj4+ICsgICAgaWYgKCAhbnVtX21lbV9yYW5nZXMg
KQ0KPj4gKyAgICAgICAgcGNpX2NvbmZfd3JpdGUxNihwZGV2LT5zYmRmLCBQQ0lfQ09NTUFORCwg
Y21kKTsNCj4gSSB0aGluayB0aGlzIGlzIHdyb25nLCBhcyBub3QgY2FsbGluZyBkZWZlcl9tYXAg
d2lsbCBwcmV2ZW50IHRoZQ0KPiByYW5nZXNldHMgKGJhcltpXS0+bWVtKSBmcm9tIGJlaW5nIGRl
c3Ryb3llZCwgc28gd2UgYXJlIGVmZmVjdGl2ZWx5DQo+IGxlYWtpbmcgbWVtb3J5Lg0KTm90IHJl
YWxseS4gQXMgaW4gY2FzZSBvZiBudW1fbWVtX3JhbmdlcyA9PSAwIHRoZXJlIGFyZSBubyByYW5n
ZXNldHMNCnRvIGZyZWUgYXMgbm9uZSB3YXMgYWxsb2NhdGVkDQo+DQo+IFlvdSBuZWVkIHRvIHRh
a2UgYSBwYXRoIHNpbWlsYXIgdG8gdGhlIGZhaWx1cmUgb25lIGluIGNhc2UgdGhlcmUgYXJlDQo+
IG5vIG1hcHBpbmdzIHBlbmRpbmcsIG9yIGV2ZW4gYmV0dGVyIGp1c3QgY2FsbCBkZWZlcl9tYXAg
YW55d2F5IGFuZCBsZXQNCj4gaXQgZG8gaXQncyB0aGluZywgaXQgc2hvdWxkIGJlIGNhcGFibGUg
b2YgaGFuZGxpbmcgZW1wdHkgcmFuZ2VzZXRzDQo+IGp1c3QgZmluZS4gVGhhdCdzIGhvdyBpdCdz
IGN1cnJlbnRseSBkb25lLg0KU28sIEkgdGhpbmsgdGhpcyBpcyBzdGlsbCB2YWxpZCB0byBicmVh
ayBlYXJseSBhbmQgZG8gbm90IGdvIHdpdGggZGVmZXJfbWFwDQo+DQo+PiArICAgIGVsc2UNCj4+
ICsgICAgICAgIGRlZmVyX21hcChkZXYtPmRvbWFpbiwgZGV2LCBjbWQsIHJvbV9vbmx5LCBudW1f
bWVtX3Jhbmdlcyk7DQo+PiAgIA0KPj4gICAgICAgcmV0dXJuIDA7DQo+PiArDQo+PiArZmFpbDoN
Cj4gV2UgdXN1YWxseSBhc2sgbGFiZWxzIHRvIGJlIGluZGVudGVkIHdpdGggb25lIHNwYWNlLg0K
U3VyZS4gSSBhbSBjb25mdXNlZCBhIGJpdDogdGhlcmUgaXMgbm8gd29yZCBmb3IgdGhhdCBpbiB0
aGUgY29kaW5nDQpzdHlsZSBhbmQgdGhlIHNvdXJjZXMgdXNlIGxhYmVscyB3aXRoIGFuZCB3aXRo
b3V0IHRoZSBzcGFjZS4NCj4NCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhl
YWRlci0+YmFycyk7IGkrKyApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHN0cnVjdCB2cGNpX2Jh
ciAqYmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCj4+ICsNCj4+ICsgICAgICAgIHJhbmdlc2V0X2Rl
c3Ryb3koYmFyLT5tZW0pOw0KPj4gKyAgICAgICAgYmFyLT5tZW0gPSBOVUxMOw0KPj4gKyAgICB9
DQo+PiArICAgIHJldHVybiByYzsNCj4+ICAgfQ0KPj4gICANCj4+ICAgc3RhdGljIHZvaWQgY21k
X3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4g
ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi92cGNpLmggYi94ZW4vaW5jbHVkZS94ZW4vdnBj
aS5oDQo+PiBpbmRleCBhMDMyMGIyMmNiMzYuLjM1MmUwMmQwMTA2ZCAxMDA2NDQNCj4+IC0tLSBh
L3hlbi9pbmNsdWRlL3hlbi92cGNpLmgNCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi92cGNpLmgN
Cj4+IEBAIC04MCw2ICs4MCw3IEBAIHN0cnVjdCB2cGNpIHsNCj4+ICAgICAgICAgICAgICAgLyog
R3Vlc3QgdmlldyBvZiB0aGUgQkFSLiAqLw0KPj4gICAgICAgICAgICAgICB1aW50NjRfdCBndWVz
dF9hZGRyOw0KPj4gICAgICAgICAgICAgICB1aW50NjRfdCBzaXplOw0KPj4gKyAgICAgICAgICAg
IHN0cnVjdCByYW5nZXNldCAqbWVtOw0KPj4gICAgICAgICAgICAgICBlbnVtIHsNCj4+ICAgICAg
ICAgICAgICAgICAgIFZQQ0lfQkFSX0VNUFRZLA0KPj4gICAgICAgICAgICAgICAgICAgVlBDSV9C
QVJfSU8sDQo+PiBAQCAtMTU0LDkgKzE1NSw5IEBAIHN0cnVjdCB2cGNpIHsNCj4+ICAgDQo+PiAg
IHN0cnVjdCB2cGNpX3ZjcHUgew0KPj4gICAgICAgLyogUGVyLXZjcHUgc3RydWN0dXJlIHRvIHN0
b3JlIHN0YXRlIHdoaWxlIHt1bn1tYXBwaW5nIG9mIFBDSSBCQVJzLiAqLw0KPj4gLSAgICBzdHJ1
Y3QgcmFuZ2VzZXQgKm1lbTsNCj4+ICAgICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2Ow0KPj4gICAg
ICAgdWludDE2X3QgY21kOw0KPj4gKyAgICB1aW50OF90IG51bV9tZW1fcmFuZ2VzOw0KPiBBRkFJ
Q1QgVGhpcyBjb3VsZCBiZSBhIHNpbXBsZSBib29sOg0KPg0KPiBib29sIG1hcF9wZW5kaW5nIDog
MTsNCj4NCj4gQXMgdGhlcmUncyBubyBzdHJpY3QgbmVlZCB0byBrbm93IGhvdyBtYW55IEJBUnMg
aGF2ZSBwZW5kaW5nIG1hcHBpbmdzLg0KVGhpcyBpcyB0cnVlDQo+DQo+IFRoYW5rcywgUm9nZXIu
DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:43:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:43:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220022.381097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrG3-0007pr-Iv; Tue, 02 Nov 2021 10:43:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220022.381097; Tue, 02 Nov 2021 10:43:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrG3-0007pk-FA; Tue, 02 Nov 2021 10:43:11 +0000
Received: by outflank-mailman (input) for mailman id 220022;
 Tue, 02 Nov 2021 10:43:10 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhrG2-0007pe-4z
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:43:10 +0000
Received: from mx0a-0039f301.pphosted.com (unknown [148.163.133.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id d3431796-1e18-4294-aa31-29777a72d721;
 Tue, 02 Nov 2021 10:43:08 +0000 (UTC)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A2ATbwD018749;
 Tue, 2 Nov 2021 10:43:07 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2105.outbound.protection.outlook.com [104.47.17.105])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c33mfg31g-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 10:43:06 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB7346.eurprd03.prod.outlook.com (2603:10a6:20b:26e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Tue, 2 Nov
 2021 10:43:03 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 10:43:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3431796-1e18-4294-aa31-29777a72d721
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=U64Fvl/1EkrEcMKwUuGFjy3IzGl1A6POjP4zw1lJhnes45RXEybnieXCszP4xDXi6Goo3rCoeV0FWyEjZVbJQ5U2W5X0QjTYgHbKI9w1iXB2mbFtuo554uq/ECPDPnYd/+UqemG494EDpP6W1pNpiHyYTgSNjJgo6dnzEePqgtbrToy5GD45GPhh+nanDnYkzri7Ul+bIjcqY29c8XEFkI0wZs+gi/F2QWXOo9ABh/dIw1ROKaZtCRdyYVpmFWZaoaKHS16rqA83DVxuzFPFWgtayS5LQ1pEc17RO1c7IGuTcsvBobnS8AgmeNvwsWpPiRI99ZSDXt/lJB7DGB8skg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0wGoorqIDbP10sgpi04w/4BMcuge+HKiCwmTxSvyyCk=;
 b=YO4B3icLDtvnRqauPM4DEtc6amGB3/J4jZL5kO6cSGcpSuHQyNwDyidFZBPOTXGAUEXZ9T9WVPDLMIKnmQ4GB84oZMwAlj5lxhRqSC3Djo+TOkWAN3XWxo8vnXrWs+hXILq/VWYsy10gd3SIfEQ6Io/LAzLP2wi6CK8EJm9KRGCuJ3OnipsB9TVj18lBUrkxw/FI9riPygDu6O+8IxrfWpmQV/wyLIClvdqCt14vKSrH0r3ItK7j0NY8HmLyRupG+8kseVwKPR5J5vO8ElmE60iSTrc7f6kvivpj1ZNa7AblkI4WbO/Stqwxlxt3jtI2wBvo21GJZkOnWP0nDdh47w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0wGoorqIDbP10sgpi04w/4BMcuge+HKiCwmTxSvyyCk=;
 b=LCYI09rlPaD7Nr3U7ck6tDxdeEGMxqPto8APiK1fMaLvrwfN3cC62MYhDUh49OEUcb/omz2blhfD3e5w3vaVQBlSImj2H66zdGR0f76UU4VtQsTi0bYDaSlPH8tUZX90huuVXvIvBfUU6azn6qst0huLimijeizMgGadvC2+tMqLgMpWp6W2JfG4KyszQY/fB2fxeX0sggQfHx+SB6gDw2cHqTYVsxN0e9r5Fk1l2iOP/DFMBtl8GtrjRNjjW2ss49vw4MrFvogu/qhsgB61fr7GSUmgoIUYgsVPKM1nYpEjO7F+r6HF2lfUkQ/ockfZAU2w1AtH6siBWT6jWdc+bw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "jbeulich@suse.com" <jbeulich@suse.com>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 07/11] vpci/header: program p2m with guest BAR view
Thread-Topic: [PATCH v3 07/11] vpci/header: program p2m with guest BAR view
Thread-Index: AQHXtdAjmfMhzz5BYkuDgpOXg2armqvlPuEAgAsCUAA=
Date: Tue, 2 Nov 2021 10:43:03 +0000
Message-ID: <fd2fb89a-3435-8d9b-e744-a9cc959798e3@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-8-andr2000@gmail.com>
 <YXfaCgRpQJbBNaD2@MacBook-Air-de-Roger.local>
In-Reply-To: <YXfaCgRpQJbBNaD2@MacBook-Air-de-Roger.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2f8b2499-8dbd-461e-597f-08d99ded8c13
x-ms-traffictypediagnostic: AM9PR03MB7346:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB7346B926F17C31396E5D84DDE78B9@AM9PR03MB7346.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:4714;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 shehHfGCgG2uOEAIek8MsdEBdSEGaavxnNEWkHSzCOwQ1QrfYlhTSKihCItjxS8YEoWMNler2J2xZjr7anWI6UnzL8GG8ipR+sNM0nVlYHl3X8VBjmtp/fU9y+YzTtikexP+liHujfqsVOsl/PiOpsHMG8uHbL4FcfsYXw/7vl6YS9EAXaHEF8ZFlV/2eCqHmlYkeaqoHzbJwCV1mELAWLlIS2GaxfUXBnyxvnL0XVSG7NmajjHHnMtAqKW83KQa7kudeb2QSO68gcqL/Rfuac81v8vAHE2piP3Vjza0fTLP09Oip9t5Cobq5SQCiYlBM17qc95AfUs4d+fQ30sl+WyN5lc2OvlgmH/yv7qfyj9uVoD1aYtK0uDQpviDk7uogano1qHmM3jrQKKEh75ZST7VJHm8KA6E+4hAkzhf/HxCp/hAUz2nfhm1lHHPlGEZtiqdhxZAW3fdHTTRcjT81nSrpRX8Zvb5RxQfGzHHjqlCmyf6EiPJbVdwhnLKzFEu8CHBd+Turvidv3Sl9h6zmi4XBSfLCZVNYu1CXWUGtJTFqrE8cBUltnwcmGl3ihuAcQd8KYFf4ji5l4z5N9vlP6EUa9wipenTqB0fgFriwXiwe316w5VRGgH3PFVpBMY0xoTMxeeLcDPiy1OBxWD5ohp+WQsaM7bktARAkYo+ZqTIH6+hmkN/4rsPgFPqOzl1eF0g2NoDFlXZGlcou115ksaSyKJzuSxwF5quQnRK0hr2p46oFLcXMeM81nkTOxhE
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(91956017)(76116006)(6512007)(38100700002)(64756008)(83380400001)(53546011)(6506007)(8936002)(6916009)(66446008)(66946007)(66476007)(31686004)(66556008)(71200400001)(2616005)(2906002)(8676002)(86362001)(36756003)(5660300002)(107886003)(26005)(6486002)(31696002)(4326008)(122000001)(54906003)(316002)(186003)(508600001)(38070700005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?QzQ2ZGpUc2dLNUxDZFQxTEdhLzdteFpTRURLUTR6cnBOQzZHUmxYU2RtcExm?=
 =?utf-8?B?dDZYUmZ5dlBhRWhlQ3hyM0pHVHFMWEU5YmlQeXFIc1pEbnVRRTI5cXFaRGdk?=
 =?utf-8?B?bkJ0TnpMblZDTlgvWlFtRVR3NzIrcFNaM3k5UXlibXJTNTZ6bzBWYko1Qm5Z?=
 =?utf-8?B?amhmaGZYaCtkekZRd1dWaXpWci9JM2FmYVJOaEkyQms5N1EvMGs3bHdTaENS?=
 =?utf-8?B?MWc1U3p1SFVYOUNxblByYldLMlkyZ1EyejlxcTFZSGJmZGl1TjFXVnVEeit1?=
 =?utf-8?B?ZWhLU1BVeXYzN1I3UllJTzBvYXZ0cWZZaFNWTlp0UWJJR25vZzRPVDJGYldp?=
 =?utf-8?B?SE56a0ZxN0tjK0V1aWxhZlEyZVNaSUJQajhYUnBCVGlzb0QrcGRzQldzYk5N?=
 =?utf-8?B?RHhtSklRTjlTVFlWYmZ2VzdQZTVvZ2tpU3B4TU1MZGg3S2Nld3Z4WHJJajZD?=
 =?utf-8?B?SlhOdk96T2FZN2VrRXFOYWZQaHhTbzFmMEs1TkFLazhBNmtuNFlGSldBeTZB?=
 =?utf-8?B?QkhKVEIxcUlHblNGano4RWZMNi91Y0xvYjV0NThlSkJUbkNYUW9MMWlVTDd6?=
 =?utf-8?B?UmJEdERmUmJzNy9nRG93bEVxK285dHVCVGt5V3BSYmVRSXdjRHpYajY4aGxB?=
 =?utf-8?B?bXNrTDRFV3FXaTRJRlQ3NkpRZjRiYmt0RXV0YU1TRTVCZTExclB3UXU0Nnow?=
 =?utf-8?B?N1BPZWlPd0hXZkROdXVKWmdsNDRLMUczeURla010cFFPejR5MklPZ1lWQ1Vj?=
 =?utf-8?B?ZnNVWTZIWTV4T2dZT0NHS0l5cVkxVkJwOUJpc3JKOHZBWGNsenVLRDBBc3BH?=
 =?utf-8?B?MVVTeTg1NVVjd2lkUXArcFRzK0F0bVRVcjVpaXVMWldpWGxrZkJBTnNwOUhN?=
 =?utf-8?B?clFwUEpGeHVXMkJ0OTZoNzcxdlp1dDhDZFpzVTB1Z2I3MVNEOXFLeHp2ZzFK?=
 =?utf-8?B?VGNya2pkQlcvSG9nSkZucjJXVGxCci80MmhSblJNVUVwOW1ibi9yM3dWSXJh?=
 =?utf-8?B?NkM3VEc4RUNIVERZRXVIcFhXUytkaE91Q1V2dndSV2htdGFTNkZQSVdnN2s2?=
 =?utf-8?B?VnlRb29zaFJKWFJUeVJJSUNCdDF6ZGRSUStzOExRRTBGN0Q4L1ROMzlHVllM?=
 =?utf-8?B?elA4WDdaeS9KajF2dzZPVzBjaHVkazVpejZML28vZVpON2x2VWtXSldDODIx?=
 =?utf-8?B?TUxteHhIWnVoUW5zL0paT01kMGVnaXJURVNtYVhUVERUcVk4alY2NERjN3Bz?=
 =?utf-8?B?MnNaUDNNRno0bjVyZkl4OFBhQzE3Tk82amh0WThtdEgxQ0U2bFE4Mkgwcnli?=
 =?utf-8?B?WG9ieHBTUjNXV2NHSVFrQ0lCZVVQRE9JNDJFL3lKUWprWXhRdVpEUy9VYUtK?=
 =?utf-8?B?Vm9uelVUTkZEMnJ6NC84SzhqTHRrb1ZRR2xMS09ueGdkcmlHbVVvRUFabDJk?=
 =?utf-8?B?ZjJjbm1YMG1VdWFoV3hGcXhEZy90ZkpBK3paOTJVODd3bTFrM1phM1Mwd3JT?=
 =?utf-8?B?T2FLRU1DZ0R2bVZQYXRrZk90R2ZjY0RCczJ4TEUwdCswUWk3UlF0bU1jOUJm?=
 =?utf-8?B?Q2dBZXdxQjlnOW9rdVJyQVhjdXN2VWMxRkdsMi9ZSXNzY0VDUStOcFdLTW1o?=
 =?utf-8?B?RDdmOFpnSjBiSE5NUzM5VGFPQkJWQ051TW5wRFpSWFF5cncrdWN6NDBmVUFE?=
 =?utf-8?B?RkJrWHVnN3VBMTRyVDZ2QTBGUzV1RXZHUXFPb2VYRFZjVTZsNXc3OHoxam9Q?=
 =?utf-8?B?NTFpY1RZb1dtOHFka25pYldDV2lNdEZybnU5ODBtZEZyMjlmSCtOcWs3ZGRE?=
 =?utf-8?B?SnVyNy9janJRYUJTWllUejdZWlk5aFRYaGIwdnd6MXUzN1hlV2JneE5TZTJG?=
 =?utf-8?B?bjkzMHVaZHRyZVdjL2JEcHNLWjBLNUJoeWFEaE44WkVhQXRqNGI5UmRzV2Yr?=
 =?utf-8?B?WXFuQ2lKVU54cGEvMWJNVjczL3p2YWZrTmZDRkpBYWtmTDJ1SXNWUWNjQjBC?=
 =?utf-8?B?RWZxRmhWOGZqZmd1Sk5MUld0Wk84Uy93VGFDaEVubFRJVWtSWVhFcjFVemY4?=
 =?utf-8?B?YmxJaTBwQzFpRFZ0dWwwYzNLblJ5NlJvVkNkK1RDaVBEcTgvdXE2YnZGenZk?=
 =?utf-8?B?NURLYnFTaXNkOVhPOWpFWmxtbWlhczFEWjFZYUMxT2F2T3pWSVBWV2Zsc1M4?=
 =?utf-8?B?enNCNXBUZ2JweFc4c0oxbGV6cTEzNXRJd0VKaXJQUmJOTlBPWnR3WGxEU2gw?=
 =?utf-8?B?bW4rb1diN1V6aENJcWZUZ3dCakJvbUlNV08wS3NJQ0ZPK0xEdzdlMndoTGRr?=
 =?utf-8?B?eEtyV2VtYm9wM2pJaklBampVRHBpYXlpWGxJc25YNmg3Yk5GSGJDdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7098686FEB2CCC44B3C04733B51680A7@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2f8b2499-8dbd-461e-597f-08d99ded8c13
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 10:43:03.1279
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 1UOEHpO+OQFOi1O+9n8YkefxaVdB+zUxEvKndBfQg9bFbNQu7iu+YUXAkonCxEXBtgYxFFU4UF9bYXDHiBEBllQHiUzPLppAE44Bz8RW6EzQeUiBxfkAyMBjO70AJEyx
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7346
X-Proofpoint-ORIG-GUID: R9pOjZTiY8Zp3XQiJxsDGTuedOAse1R2
X-Proofpoint-GUID: R9pOjZTiY8Zp3XQiJxsDGTuedOAse1R2
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_06,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxscore=0
 adultscore=0 malwarescore=0 spamscore=0 priorityscore=1501 suspectscore=0
 impostorscore=0 mlxlogscore=999 lowpriorityscore=0 bulkscore=0
 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020063

SGksIFJvZ2VyIQ0KDQpPbiAyNi4xMC4yMSAxMzozNSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToN
Cj4gT24gVGh1LCBTZXAgMzAsIDIwMjEgYXQgMTA6NTI6MTlBTSArMDMwMCwgT2xla3NhbmRyIEFu
ZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xl
a3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0KPj4gVGFrZSBpbnRvIGFjY291bnQg
Z3Vlc3QncyBCQVIgdmlldyBhbmQgcHJvZ3JhbSBpdHMgcDJtIGFjY29yZGluZ2x5Og0KPj4gZ2Zu
IGlzIGd1ZXN0J3MgdmlldyBvZiB0aGUgQkFSIGFuZCBtZm4gaXMgdGhlIHBoeXNpY2FsIEJBUiB2
YWx1ZSBhcyBzZXQNCj4+IHVwIGJ5IHRoZSBob3N0IGJyaWRnZSBpbiB0aGUgaGFyZHdhcmUgZG9t
YWluLg0KPj4gVGhpcyB3YXkgaGFyZHdhcmUgZG9hbWluIHNlZXMgcGh5c2ljYWwgQkFSIHZhbHVl
cyBhbmQgZ3Vlc3Qgc2Vlcw0KPj4gZW11bGF0ZWQgb25lcy4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5
OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5j
b20+DQo+Pg0KPj4gLS0tDQo+PiBTaW5jZSB2MjoNCj4+IC0gaW1wcm92ZSByZWFkYWJpbGl0eSBm
b3IgZGF0YS5zdGFydF9nZm4gYW5kIHJlc3RydWN0dXJlID86IGNvbnN0cnVjdA0KPj4gU2luY2Ug
djE6DQo+PiAgIC0gcy9NU0kvTVNJLVggaW4gY29tbWVudHMNCj4+IC0tLQ0KPj4gICB4ZW4vZHJp
dmVycy92cGNpL2hlYWRlci5jIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst
LQ0KPj4gICAxIGZpbGUgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkN
Cj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYyBiL3hlbi9kcml2
ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+IGluZGV4IDljNjAzZDI2ZDMwMi4uZjIzYzk1NmNkZTZjIDEw
MDY0NA0KPj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4gKysrIGIveGVuL2Ry
aXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4gQEAgLTMwLDYgKzMwLDEwIEBADQo+PiAgIA0KPj4gICBz
dHJ1Y3QgbWFwX2RhdGEgew0KPj4gICAgICAgc3RydWN0IGRvbWFpbiAqZDsNCj4+ICsgICAgLyog
U3RhcnQgYWRkcmVzcyBvZiB0aGUgQkFSIGFzIHNlZW4gYnkgdGhlIGd1ZXN0LiAqLw0KPj4gKyAg
ICBnZm5fdCBzdGFydF9nZm47DQo+PiArICAgIC8qIFBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2Yg
dGhlIEJBUi4gKi8NCj4+ICsgICAgbWZuX3Qgc3RhcnRfbWZuOw0KPj4gICAgICAgYm9vbCBtYXA7
DQo+PiAgIH07DQo+PiAgIA0KPj4gQEAgLTM3LDEyICs0MSwyOCBAQCBzdGF0aWMgaW50IG1hcF9y
YW5nZSh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSwgdm9pZCAqZGF0YSwNCj4+ICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqYykNCj4+ICAgew0KPj4gICAgICAg
Y29uc3Qgc3RydWN0IG1hcF9kYXRhICptYXAgPSBkYXRhOw0KPj4gKyAgICBnZm5fdCBzdGFydF9n
Zm47DQo+PiAgICAgICBpbnQgcmM7DQo+PiAgIA0KPj4gICAgICAgZm9yICggOyA7ICkNCj4+ICAg
ICAgIHsNCj4+ICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUgPSBlIC0gcyArIDE7DQo+PiAg
IA0KPj4gKyAgICAgICAgLyoNCj4+ICsgICAgICAgICAqIEFueSBCQVIgbWF5IGhhdmUgaG9sZXMg
aW4gaXRzIG1lbW9yeSB3ZSB3YW50IHRvIG1hcCwgZS5nLg0KPj4gKyAgICAgICAgICogd2UgZG9u
J3Qgd2FudCB0byBtYXAgTVNJLVggcmVnaW9ucyB3aGljaCBtYXkgYmUgYSBwYXJ0IG9mIHRoYXQg
QkFSLA0KPj4gKyAgICAgICAgICogZS5nLiB3aGVuIGEgc2luZ2xlIEJBUiBpcyB1c2VkIGZvciBi
b3RoIE1NSU8gYW5kIE1TSS1YLg0KPiBJTU8gdGhlcmUgYXJlIHRvbyBtYW55ICdlLmcuJyBoZXJl
Lg0KPg0KPj4gKyAgICAgICAgICogSW4gdGhpcyBjYXNlIE1TSS1YIHJlZ2lvbnMgYXJlIHN1YnRy
YWN0ZWQgZnJvbSB0aGUgbWFwcGluZywgYnV0DQo+PiArICAgICAgICAgKiBtYXAtPnN0YXJ0X2dm
biBzdGlsbCBwb2ludHMgdG8gdGhlIHZlcnkgYmVnaW5uaW5nIG9mIHRoZSBCQVIuDQo+PiArICAg
ICAgICAgKiBTbyBpZiB0aGVyZSBpcyBhIGhvbGUgcHJlc2VudCB0aGVuIHdlIG5lZWQgdG8gYWRq
dXN0IHN0YXJ0X2dmbg0KPj4gKyAgICAgICAgICogdG8gcmVmbGVjdCB0aGUgZmFjdCBvZiB0aGF0
IHN1YnN0cmFjdGlvbi4NCj4+ICsgICAgICAgICAqLw0KPiBJIHdvdWxkIHNpbXBseSB0aGUgY29t
bWVudCBhIGJpdDoNCj4NCj4gLyoNCj4gICAqIFJhbmdlcyB0byBiZSBtYXBwZWQgZG9uJ3QgYWx3
YXlzIHN0YXJ0IGF0IHRoZSBCQVIgc3RhcnQgYWRkcmVzcywgYXMNCj4gICAqIHRoZXJlIGNhbiBi
ZSBob2xlcyBvciBwYXJ0aWFsbHkgY29uc3VtZWQgcmFuZ2VzLiBBY2NvdW50IGZvciB0aGUNCj4g
ICAqIG9mZnNldCBvZiB0aGUgY3VycmVudCBhZGRyZXNzIGZyb20gdGhlIEJBUiBzdGFydC4NCj4g
ICAqLw0KPg0KPiBBcGFydCBmcm9tIE1TSS1YIHJlbGF0ZWQgaG9sZXMgb24geDg2IGF0IGxlYXN0
IHdlIHN1cHBvcnQgcHJlZW1wdGlvbg0KPiBoZXJlLCB3aGljaCBtZWFucyBhIHJhbmdlIGNvdWxk
IGJlIHBhcnRpYWxseSBtYXBwZWQgYmVmb3JlIHlpZWxkaW5nLg0KVGhhbmsgeW91LCB3aWxsIHVz
ZSB5b3VyIGNvbW1lbnQgd2hpY2ggaXMgc2hvcnRlciBhbmQgc3RpbGwgY2xlYXINCj4+ICsgICAg
ICAgIHN0YXJ0X2dmbiA9IGdmbl9hZGQobWFwLT5zdGFydF9nZm4sIHMgLSBtZm5feChtYXAtPnN0
YXJ0X21mbikpOw0KPj4gKw0KPj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19HX0RFQlVHDQo+PiAr
ICAgICAgICAgICAgICAgIiVzbWFwIFslbHgsICVseF0gLT4gJSMiUFJJX2dmbiIgZm9yIGQlZFxu
IiwNCj4+ICsgICAgICAgICAgICAgICBtYXAtPm1hcCA/ICIiIDogInVuIiwgcywgZSwgZ2ZuX3go
c3RhcnRfZ2ZuKSwNCj4+ICsgICAgICAgICAgICAgICBtYXAtPmQtPmRvbWFpbl9pZCk7DQo+PiAg
ICAgICAgICAgLyoNCj4+ICAgICAgICAgICAgKiBBUk0gVE9ET3M6DQo+PiAgICAgICAgICAgICog
LSBPbiBBUk0gd2hldGhlciB0aGUgbWVtb3J5IGlzIHByZWZldGNoYWJsZSBvciBub3Qgc2hvdWxk
IGJlIHBhc3NlZA0KPj4gQEAgLTUyLDggKzcyLDEwIEBAIHN0YXRpYyBpbnQgbWFwX3JhbmdlKHVu
c2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlLCB2b2lkICpkYXRhLA0KPj4gICAgICAgICAg
ICAqIC0ge3VufW1hcF9tbWlvX3JlZ2lvbnMgZG9lc24ndCBzdXBwb3J0IHByZWVtcHRpb24uDQo+
PiAgICAgICAgICAgICovDQo+PiAgIA0KPj4gLSAgICAgICAgcmMgPSBtYXAtPm1hcCA/IG1hcF9t
bWlvX3JlZ2lvbnMobWFwLT5kLCBfZ2ZuKHMpLCBzaXplLCBfbWZuKHMpKQ0KPj4gLSAgICAgICAg
ICAgICAgICAgICAgICA6IHVubWFwX21taW9fcmVnaW9ucyhtYXAtPmQsIF9nZm4ocyksIHNpemUs
IF9tZm4ocykpOw0KPj4gKyAgICAgICAgcmMgPSBtYXAtPm1hcCA/IG1hcF9tbWlvX3JlZ2lvbnMo
bWFwLT5kLCBzdGFydF9nZm4sDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplLCBfbWZuKHMpKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICA6IHVubWFw
X21taW9fcmVnaW9ucyhtYXAtPmQsIHN0YXJ0X2dmbiwNCj4+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSwgX21mbihzKSk7DQo+PiAgICAgICAgICAgaWYg
KCByYyA9PSAwICkNCj4+ICAgICAgICAgICB7DQo+PiAgICAgICAgICAgICAgICpjICs9IHNpemU7
DQo+PiBAQCAtNjksNiArOTEsNyBAQCBzdGF0aWMgaW50IG1hcF9yYW5nZSh1bnNpZ25lZCBsb25n
IHMsIHVuc2lnbmVkIGxvbmcgZSwgdm9pZCAqZGF0YSwNCj4+ICAgICAgICAgICBBU1NFUlQocmMg
PCBzaXplKTsNCj4+ICAgICAgICAgICAqYyArPSByYzsNCj4+ICAgICAgICAgICBzICs9IHJjOw0K
Pj4gKyAgICAgICAgZ2ZuX2FkZChtYXAtPnN0YXJ0X2dmbiwgcmMpOw0KPiBJIHRoaW5rIGluY3Jl
YXNpbmcgbWFwLT5zdGFydF9nZm4gaXMgd3JvbmcgaGVyZSwgYXMgaXQgd291bGQgZ2V0IG91dA0K
PiBvZiBzeW5jIHdpdGggbWFwLT5zdGFydF9tZm4gdGhlbiwgYW5kIHRoZSBjYWxjdWxhdGlvbnMg
ZG9uZSB0byBvYnRhaW4NCj4gc3RhcnRfZ2ZuIHdvdWxkIHRoZW4gYmUgd3JvbmcuDQpJbmRlZWQs
IHdpbGwgcmVtb3ZlIGl0DQo+DQo+PiAgICAgICAgICAgaWYgKCBnZW5lcmFsX3ByZWVtcHRfY2hl
Y2soKSApDQo+PiAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVSRVNUQVJUOw0KPj4gICAgICAg
fQ0KPj4gQEAgLTE0OSw2ICsxNzIsMTAgQEAgYm9vbCB2cGNpX3Byb2Nlc3NfcGVuZGluZyhzdHJ1
Y3QgdmNwdSAqdikNCj4+ICAgICAgICAgICAgICAgaWYgKCAhYmFyLT5tZW0gKQ0KPj4gICAgICAg
ICAgICAgICAgICAgY29udGludWU7DQo+PiAgIA0KPj4gKyAgICAgICAgICAgIGRhdGEuc3RhcnRf
Z2ZuID0NCj4+ICsgICAgICAgICAgICAgICAgIF9nZm4oUEZOX0RPV04oaXNfaGFyZHdhcmVfZG9t
YWluKHYtPnZwY2kucGRldi0+ZG9tYWluKQ0KPiBZb3UgY2FuIGp1c3QgdXNlIHYtPmRvbWFpbiBo
ZXJlLg0KT2sNCj4NCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBiYXItPmFk
ZHIgOiBiYXItPmd1ZXN0X2FkZHIpKTsNCj4gSSB3b3VsZCBwbGFjZSB0aGUgJz8nIGluIHRoZSBs
aW5lIGFib3ZlLCBidXQgdGhhdCdzIGp1c3QgbXkgdGFzdGUuDQpIbW1tLCB0aGlzIGNodW5rIHdh
cyBkaXNjdXNzZWQgYmVmb3JlIGFuZCB0aGlzIGlzIHRoZSByZXN1bHQgb2YNCnRoYXQgZGlzY3Vz
c2lvbiA7KSBTbywgSSdsbCBiZXR0ZXIga2VlcCBpdCBhcyBpcw0KPg0KPiBUaGFua3MsIFJvZ2Vy
Lg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:43:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:43:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220029.381108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrGn-0008Ni-S5; Tue, 02 Nov 2021 10:43:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220029.381108; Tue, 02 Nov 2021 10:43:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrGn-0008Nb-Ob; Tue, 02 Nov 2021 10:43:57 +0000
Received: by outflank-mailman (input) for mailman id 220029;
 Tue, 02 Nov 2021 10:43:56 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SQY4=PV=arm.com=michal.orzel@srs-us1.protection.inumbo.net>)
 id 1mhrGm-0008NI-8W
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:43:56 +0000
Received: from foss.arm.com (unknown [217.140.110.172])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id c5e6092a-3bc9-11ec-8555-12813bfff9fa;
 Tue, 02 Nov 2021 10:43:53 +0000 (UTC)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 575C3D6E;
 Tue,  2 Nov 2021 03:43:53 -0700 (PDT)
Received: from [10.57.21.244] (unknown [10.57.21.244])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2CCDF3F719;
 Tue,  2 Nov 2021 03:43:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5e6092a-3bc9-11ec-8555-12813bfff9fa
Subject: Re: [PATCH v2 07/15] xen: generate hypercall interface related code
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-8-jgross@suse.com>
From: Michal Orzel <michal.orzel@arm.com>
Message-ID: <26bf3337-df7a-be55-db3d-bceaf1fb2acd@arm.com>
Date: Tue, 2 Nov 2021 11:43:29 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <20211101152015.28488-8-jgross@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 01.11.2021 16:20, Juergen Gross wrote:
> Instead of repeating similar data multiple times use a single source
> file and a generator script for producing prototypes and call sequences
> of the hypercalls.
> 
> As the script already knows the number of parameters used add generating
> a macro for populating an array with the number of parameters per
> hypercall.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - split platform_op for doe and compat prefixes (Jan Beulich)
> - add "addline:" directive
> - add priorities to handlers (Jan Beulich)
> ---
>  .gitignore                    |   1 +
>  xen/Makefile                  |  10 ++
>  xen/include/hypercall-defs.c  | 285 +++++++++++++++++++++++++++++++
>  xen/scripts/gen_hypercall.awk | 306 ++++++++++++++++++++++++++++++++++
>  4 files changed, 602 insertions(+)
>  create mode 100644 xen/include/hypercall-defs.c
>  create mode 100644 xen/scripts/gen_hypercall.awk
> 
> diff --git a/.gitignore b/.gitignore
> index 9513506dd9..753a602e29 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -336,6 +336,7 @@ xen/include/public/public
>  xen/include/xen/*.new
>  xen/include/xen/acm_policy.h
>  xen/include/xen/compile.h
> +xen/include/xen/hypercall-defs.h
>  xen/include/xen/lib/x86/cpuid-autogen.h
>  xen/test/livepatch/config.h
>  xen/test/livepatch/expect_config.h
> diff --git a/xen/Makefile b/xen/Makefile
> index a3189eb47c..dfdae47e74 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -383,6 +383,7 @@ _clean: delete-unfresh-files
>  		-o -name "*.gcno" -o -name ".*.cmd" -o -name "lib.a" \) -exec rm -f {} \;
>  	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map *~ core
>  	rm -f asm-offsets.s include/asm-*/asm-offsets.h
> +	rm -f include/xen/hypercall-defs.h include/hypercall-defs.i
>  	rm -f .banner .allconfig.tmp
>  
>  .PHONY: _distclean
> @@ -405,6 +406,7 @@ $(TARGET): delete-unfresh-files
>  	$(MAKE) -f $(BASEDIR)/Rules.mk -C include
>  	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) include
>  	$(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h
> +	$(MAKE) -f $(BASEDIR)/Rules.mk include/xen/hypercall-defs.h
>  	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
>  
>  # drivers/char/console.o contains static banner/compile info. Blow it away.
> @@ -466,6 +468,14 @@ include/asm-$(TARGET_ARCH)/asm-offsets.h: asm-offsets.s
>  	  echo ""; \
>  	  echo "#endif") <$< >$@
>  
> +quiet_cmd_genhyp = GEN     $@
> +define cmd_genhyp
> +    awk -f scripts/gen_hypercall.awk <$< >$@
> +endef
> +
> +include/xen/hypercall-defs.h: include/hypercall-defs.i scripts/gen_hypercall.awk FORCE
> +	$(call if_changed,genhyp)
> +
>  SUBDIRS = xsm arch/$(TARGET_ARCH) common drivers lib test
>  define all_sources
>      ( find include/asm-$(TARGET_ARCH) -name '*.h' -print; \
> diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
> new file mode 100644
> index 0000000000..67f6081558
> --- /dev/null
> +++ b/xen/include/hypercall-defs.c
> @@ -0,0 +1,285 @@
> +/*
> + * Hypercall interface description:
> + * Used by scripts/gen_hypercall.awk to generate hypercall prototypes and call
> + * sequences.
> + *
> + * Syntax is like a prototype, but without return type and without the ";" at
> + * the end. Pointer types will be automatically converted to use the
> + * XEN_GUEST_HANDLE_PARAM() macro. Handlers with no parameters just use a
> + * definition like "fn()".
> + * Hypercall/function names are without the leading "__HYPERVISOR_"/"do_"
> + * strings.
> + *
> + * The return type of a class of prototypes using the same prefix is set via:
> + * rettype: <prefix> <type>
> + * Default return type is "long". A return type for a prefix can be set only
> + * once and it needs to be set before that prefix is being used via the
> + * "prefix:" directive.
> + *
> + * The prefix of the prototypes is set via a line:
> + * prefix: <prefix> ...
> + * Multiple prefixes are possible (restriction see below). Prefixes are without
> + * a trailing "_". The current prefix settings are active until a new "prefix:"
> + * line.
> + *
> + * Caller macros are suffixed with a selectable name via lines like:
> + * caller: <suffix>
> + * When a caller suffix is active, there is only one active prefix allowed.
> + *
> + * With a "defhandle:" line it is possible to add a DEFINE_XEN_GUEST_HANDLE()
> + * to the generated header:
> + * defhandle: <handle-type> [<type>]
> + * Without specifying <type> only a DEFINE_XEN_GUEST_HANDLE(<handle-type>)
> + * will be generated, otherwise it will be a
> + * __DEFINE_XEN_GUEST_HANDLE(<handle-type>, <type>) being generated. Note that
> + * the latter will include the related "const" handle "const_<handle-type>".
> + *
> + * In order to support using coding style compliant pointers in the
> + * prototypes it is possible to add translation entries to generate the correct
> + * handle types:
> + * handle: <handle-type> <type>
> + * This will result in the prototype translation from "<type> *" to
> + * "XEN_GUEST_HANDLE_PARAM(<handle-type>)".
> + *
> + * A verbatim line can be added via:
> + * addline: <line-contents>
> + * Its position is kept in regard of other "handle:" and "defhandle:" lines.
> + *
> + * The hypercall handler calling code will be generated from a final table in
> + * the source file, which is started via the line:
> + * table: <caller> <caller> ...
> + * with the <caller>s specifying the designated caller macro of each column of
> + * the table. Any column of a <caller> not having been set via a "caller:"
> + * line will be ignored.
> + * The first column of the table contains the hypercall/prototype, each
> + * <caller> column contains the prefix for the function to use for that caller.
> + * A function prefix can be annotated with a priority by adding ":<prio>" to it
> + * ("1" being the highest priority, higher numbers mean lower priority, no
> + * priority specified is the lowest priority). The generated code will try to
> + * achieve better performance for calling high priority handlers.
> + * A column not being supported by a <caller> is marked with "-". Lines with all
> + * entries being "-" after removal of inactive <caller> columns are ignored.
> + *
> + * This file is being preprocessed using $(CPP), so #ifdef CONFIG_* conditionals
> + * are possible.
> + */
> +
> +#ifdef CONFIG_HVM
> +#define PREFIX_hvm hvm
> +#else
> +#define PREFIX_hvm
> +#endif
> +
> +#ifdef CONFIG_COMPAT
> +#define PREFIX_compat compat
> +rettype: compat int
> +#else
> +#define PREFIX_compat
> +#endif
> +
> +#ifdef CONFIG_ARM
> +#define PREFIX_dep dep
> +#else
> +#define PREFIX_dep
> +#endif
> +
> +handle: uint unsigned int
> +handle: const_void const void
> +handle: const_char const char
> +
> +#ifdef CONFIG_COMPAT
> +defhandle: multicall_entry_compat_t
> +#ifndef CONFIG_PV_SHIM_EXCLUSIVE
> +addline: typedef struct compat_platform_op compat_platform_op_t;
> +defhandle: compat_platform_op_t
> +#endif
> +#endif
> +#ifdef CONFIG_PV32
> +defhandle: trap_info_compat_t
> +defhandle: physdev_op_compat_t
> +#endif
> +
> +prefix: do PREFIX_hvm PREFIX_compat
> +physdev_op(int cmd, void *arg)
> +#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
> +grant_table_op(unsigned int cmd, void *uop, unsigned int count)
> +#endif
> +
> +prefix: do PREFIX_hvm
> +memory_op(unsigned long cmd, void *arg)
> +
> +prefix: do PREFIX_compat
> +xen_version(int cmd, void *arg)
> +vcpu_op(int cmd, unsigned int vcpuid, void *arg)
> +sched_op(int cmd, void *arg)
> +xsm_op(void *op)
> +callback_op(int cmd, const void *arg)
> +#ifdef CONFIG_ARGO
> +argo_op(unsigned int cmd, void *arg1, void *arg2, unsigned long arg3, unsigned long arg4)
> +#endif
> +#ifdef CONFIG_KEXEC
> +kexec_op(unsigned int op, void *uarg)
> +#endif
> +#ifdef CONFIG_PV
> +iret()
> +nmi_op(unsigned int cmd, void *arg)
> +#ifdef CONFIG_XENOPROF
> +xenoprof_op(int op, void *arg)
> +#endif
> +#endif /* CONFIG_PV */
> +
> +#ifdef CONFIG_COMPAT
> +prefix: compat
> +set_timer_op(uint32_t lo, int32_t hi)
> +multicall(multicall_entry_compat_t *call_list, uint32_t nr_calls)
> +memory_op(unsigned int cmd, void *arg)
> +#ifdef CONFIG_IOREQ_SERVER
> +dm_op(domid_t domid, unsigned int nr_bufs, void *bufs)
> +#endif
> +mmuext_op(void *arg, unsigned int count, uint *pdone, unsigned int foreigndom)
> +#ifdef CONFIG_PV32
> +set_trap_table(trap_info_compat_t *traps)
> +set_gdt(unsigned int *frame_list, unsigned int entries)
> +set_callbacks(unsigned long event_selector, unsigned long event_address, unsigned long failsafe_selector, unsigned long failsafe_address)
> +update_descriptor(uint32_t pa_lo, uint32_t pa_hi, uint32_t desc_lo, uint32_t desc_hi)
> +update_va_mapping(unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags)
> +physdev_op_compat(physdev_op_compat_t *uop)
> +update_va_mapping_otherdomain(unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags, domid_t domid)
> +#endif
> +#ifndef CONFIG_PV_SHIM_EXCLUSIVE
> +platform_op(compat_platform_op_t *u_xenpf_op)
> +#endif
> +#endif /* CONFIG_COMPAT */
> +
> +#if defined(CONFIG_PV) || defined(CONFIG_ARM)
> +prefix: do PREFIX_dep
> +event_channel_op_compat(evtchn_op_t *uop)
> +physdev_op_compat(physdev_op_t *uop)
> +/* Legacy hypercall (as of 0x00030101). */
> +sched_op_compat(int cmd, unsigned long arg)
> +#endif
> +
> +prefix: do
> +set_timer_op(s_time_t timeout)
> +console_io(unsigned int cmd, unsigned int count, char *buffer)
> +vm_assist(unsigned int cmd, unsigned int type)
> +event_channel_op(int cmd, void *arg)
> +mmuext_op(mmuext_op_t *uops, unsigned int count, unsigned int *pdone, unsigned int foreigndom)
> +multicall(multicall_entry_t *call_list, unsigned int nr_calls)
> +#ifdef CONFIG_PV
> +mmu_update(mmu_update_t *ureqs, unsigned int count, unsigned int *pdone, unsigned int foreigndom)
> +stack_switch(unsigned long ss, unsigned long esp)
> +fpu_taskswitch(int set)
> +set_debugreg(int reg, unsigned long value)
> +get_debugreg(int reg)
> +set_segment_base(unsigned int which, unsigned long base)
> +mca(xen_mc_t *u_xen_mc)
> +set_trap_table(const_trap_info_t *traps)
> +set_gdt(xen_ulong_t *frame_list, unsigned int entries)
> +set_callbacks(unsigned long event_address, unsigned long failsafe_address, unsigned long syscall_address)
> +update_descriptor(uint64_t gaddr, seg_desc_t desc)
> +update_va_mapping(unsigned long va, uint64_t val64, unsigned long flags)
> +update_va_mapping_otherdomain(unsigned long va, uint64_t val64, unsigned long flags, domid_t domid)
> +#endif
> +#ifdef CONFIG_IOREQ_SERVER
> +dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
> +#endif
> +#ifndef CONFIG_PV_SHIM_EXCLUSIVE
> +sysctl(xen_sysctl_t *u_sysctl)
> +domctl(xen_domctl_t *u_domctl)
> +paging_domctl_cont(xen_domctl_t *u_domctl)
> +platform_op(xen_platform_op_t *u_xenpf_op)
> +#endif
> +#ifdef CONFIG_HVM
> +hvm_op(unsigned long op, void *arg)
> +#endif
> +#ifdef CONFIG_HYPFS
> +hypfs_op(unsigned int cmd, const char *arg1, unsigned long arg2, void *arg3, unsigned long arg4)
> +#endif
> +#ifdef CONFIG_X86
> +xenpmu_op(unsigned int op, xen_pmu_params_t *arg)
> +#endif
> +
> +#ifdef CONFIG_PV
> +caller: pv64
> +#ifdef CONFIG_PV32
> +caller: pv32
> +#endif
> +#endif
> +#if defined(CONFIG_HVM) && defined(CONFIG_X86)
> +caller: hvm64
> +#ifdef CONFIG_COMPAT
> +caller: hvm32
> +#endif
> +#endif
> +#ifdef CONFIG_ARM
> +caller: arm
> +#endif
> +
> +table:                             pv32     pv64     hvm32    hvm64    arm
> +set_trap_table                     compat   do       -        -        -
> +mmu_update                         do:1     do:1     -        -        -
> +set_gdt                            compat   do       -        -        -
> +stack_switch                       do:2     do:2     -        -        -
> +set_callbacks                      compat   do       -        -        -
> +fpu_taskswitch                     do       do       -        -        -
> +sched_op_compat                    do       do       -        -        dep
> +#ifndef CONFIG_PV_SHIM_EXCLUSIVE
> +platform_op                        compat   do       compat   do       do
> +#endif
> +set_debugreg                       do       do       -        -        -
> +get_debugreg                       do       do       -        -        -
> +update_descriptor                  compat   do       -        -        -
> +memory_op                          compat   do       hvm      hvm      do
> +multicall                          compat:2 do:2     compat   do       do
> +update_va_mapping                  compat   do       -        -        -
> +set_timer_op                       compat   do       compat   do       -
> +event_channel_op_compat            do       do       -        -        dep
> +xen_version                        compat   do       compat   do       do
> +console_io                         do       do       do       do       do
> +physdev_op_compat                  compat   do       -        -        dep
> +#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
> +grant_table_op                     compat   do       hvm      hvm      do
> +#endif
> +vm_assist                          do       do       do       do       do
> +update_va_mapping_otherdomain      compat   do       -        -        -
> +iret                               compat:1 do:1     -        -        -
> +vcpu_op                            compat   do       compat:1 do:1     do
> +set_segment_base                   do:2     do:2     -        -        -
> +#ifdef CONFIG_PV
> +mmuext_op                          compat:2 do:2     compat   do       -
> +#endif
> +xsm_op                             compat   do       compat   do       do
> +nmi_op                             compat   do       -        -        -
> +sched_op                           compat   do       compat   do       do
> +callback_op                        compat   do       -        -        -
> +#ifdef CONFIG_XENOPROF
> +xenoprof_op                        compat   do       -        -        -
> +#endif
> +event_channel_op                   do       do       do:1     do:1     do
> +physdev_op                         compat   do       hvm      hvm      do
> +#ifdef CONFIG_HVM
> +hvm_op                             do       do       do       do       do
> +#endif
> +#ifndef CONFIG_PV_SHIM_EXCLUSIVE
> +sysctl                             do       do       do       do       do
> +domctl                             do       do       do       do       do
> +#endif
> +#ifdef CONFIG_KEXEC
> +kexec_op                           compat   do       -        -        -
> +#endif
> +tmem_op                            -        -        -        -        -
> +#ifdef CONFIG_ARGO
> +argo_op                            compat   do       compat   do       do
> +#endif
> +xenpmu_op                          do       do       do       do       -
> +#ifdef CONFIG_IOREQ_SERVER
> +dm_op                              compat   do       compat   do       do
> +#endif
> +#ifdef CONFIG_HYPFS
> +hypfs_op                           do       do       do       do       do
> +#endif
> +mca                                do       do       -        -        -
> +#ifndef CONFIG_PV_SHIM_EXCLUSIVE
> +paging_domctl_cont                 do       do       do       do       -
> +#endif
> diff --git a/xen/scripts/gen_hypercall.awk b/xen/scripts/gen_hypercall.awk
> new file mode 100644
> index 0000000000..26017c0900
> --- /dev/null
> +++ b/xen/scripts/gen_hypercall.awk
> @@ -0,0 +1,306 @@
> +# awk script to generate hypercall handler prototypes and a macro for doing
> +# the calls of the handlers inside a switch() statement.
> +
> +BEGIN {
> +    printf("/* Generated file, do not edit! */\n\n");
> +    e = 0;
> +    n = 0;
> +    p = 0;
> +    nc = 0;
> +}
> +
> +# Issue error to stderr
> +function do_err(msg) {
> +    print "Error: "msg": "$0 >"/dev/stderr";
> +    exit 1;
> +}
> +
> +# Generate handler call
> +function do_call(f, p,    i) {
> +    printf("            ret = %s_%s(", pre[f, p], fn[f]);
> +    for (i = 1; i <= n_args[f]; i++) {
> +        if (i > 1)
> +            printf(", ");
> +        if (ptr[f, i])
> +            printf("(XEN_GUEST_HANDLE_PARAM(%s)){ _p(a%d) }", typ[f, i], i);
> +        else
> +            printf("(%s)(a%d)", typ[f, i], i);
> +    }
> +    printf("); \\\n");
> +}
> +
> +# Generate case statement for call
> +function do_case(f, p) {
> +    printf("        case __HYPERVISOR_%s: \\\n", fn[f]);
> +    do_call(f, p);
> +    printf("            break; \\\n");
> +}
> +
> +# Generate switch statement for calling handlers
> +function do_switch(ca, p,    i) {
> +    printf("        switch ( num ) \\\n");
> +    printf("        { \\\n");
> +    for (i = 1; i <= nc; i++)
> +        if (call[i] == ca && call_prio[i] == p)
> +            do_case(call_fn[i], call_p[i]);
> +    printf("        default: \\\n");
> +    printf("            ret = -ENOSYS; \\\n");
> +    printf("            break; \\\n");
> +    printf("        } \\\n");
> +}
> +
> +function rest_of_line(par,    i, val) {
> +    val = $(par);
> +    for (i = par + 1; i <= NF; i++)
> +        val = val " " $(i);
> +    return val;
> +}
> +
> +# Handle comments (multi- and single line)
> +$1 == "/*" {
> +    comment = 1;
> +}
> +comment == 1 {
> +    if ($(NF) == "*/") comment = 0;
> +    next;
> +}
> +
> +# Skip preprocessing artefacts
> +$1 == "extern" {
> +    next;
> +}
> +/^#/ {
> +    next;
> +}
> +
> +# Drop empty lines
> +NF == 0 {
> +    next;
> +}
> +
> +# Handle "handle:" line
> +$1 == "handle:" {
> +    if (NF < 3)
> +        do_err("\"handle:\" requires at least two parameters");
> +    val = rest_of_line(3);
> +    xlate[val] = $2;
> +    next;
> +}
> +
> +# Handle "defhandle:" line
> +$1 == "defhandle:" {
> +    if (NF < 2)
> +        do_err("\"defhandle:\" requires at least one parameter");
> +    e++;
> +    if (NF == 2) {
> +        emit[e] = sprintf("DEFINE_XEN_GUEST_HANDLE(%s);", $2);
> +    } else {
> +        val = rest_of_line(3);
> +        emit[e] = sprintf("__DEFINE_XEN_GUEST_HANDLE(%s, %s);", $2, val);
> +        xlate[val] = $2;
> +    }
> +    next;
> +}
> +
> +# Handle "addline:" line
> +$1 == "addline:" {
> +    if (NF < 2)
> +        do_err("\"addline:\" requires at least one parameter");
> +    e++;
> +    emit[e] = rest_of_line(2);
> +    next;
> +}
> +
> +# Handle "rettype:" line
> +$1 == "rettype:" {
> +    if (NF < 3)
> +        do_err("\"rettype:\" requires at least two parameters");
> +    if ($2 in rettype)
> +        do_err("rettype can be set only once for each prefix");
> +    rettype[$2] = rest_of_line(3);
> +    next;
> +}
> +
> +# Handle "caller:" line
> +$1 == "caller:" {
> +    caller[$2] = 1;
> +    next;
> +}
> +
> +# Handle "prefix:" line
> +$1 == "prefix:" {
> +    p = NF - 1;
> +    for (i = 2; i <= NF; i++) {
> +        prefix[i - 1] = $(i);
> +        if (!(prefix[i - 1] in rettype))
> +            rettype[prefix[i - 1]] = "long";
> +    }
> +    next;
> +}
> +
> +# Handle "table:" line
> +$1 == "table:" {
> +    table = 1;
> +    for (i = 2; i <= NF; i++)
> +        col[i - 1] = $(i);
> +    n_cols = NF - 1;
> +    next;
> +}
> +
> +# Handle table definition line
> +table == 1 {
> +    if (NF != n_cols + 1)
> +        do_err("Table definition line has wrong number of fields");
> +    for (c = 1; c <= n_cols; c++) {
> +        if (caller[col[c]] != 1)
> +            continue;
> +        if ($(c + 1) == "-")
> +            continue;
> +        pref = $(c + 1);
> +        idx = index(pref, ":");
> +        if (idx == 0)
> +            prio = 100;
> +        else {
> +            prio = substr(pref, idx + 1) + 0;
> +            pref = substr(pref, 1, idx - 1);
> +            if (prio >= 100 || prio < 1)
> +                do_err("Priority must be in the range 1..99");
> +        }
> +        fnd = 0;
> +        for (i = 1; i <= n; i++) {
> +            if (fn[i] != $1)
> +                continue;
> +            for (j = 1; j <= n_pre[i]; j++) {
> +                if (pre[i, j] == pref) {
> +                    prios[col[c], prio]++;
> +                    if (prios[col[c], prio] == 1) {
> +                        n_prios[col[c]]++;
> +                        prio_list[col[c], n_prios[col[c]]] = prio;
> +                        prio_mask[col[c], prio] = "(1ULL << __HYPERVISOR_"$1")";
> +                    } else
> +                        prio_mask[col[c], prio] = prio_mask[col[c], prio] " | (1ULL << __HYPERVISOR_"$1")";
> +                    nc++;
> +                    call[nc] = col[c];
> +                    call_fn[nc] = i;
> +                    call_p[nc] = j;
> +                    call_prio[nc] = prio;
> +                    fnd = 1;
> +                }
> +            }
> +        }
> +        if (fnd == 0)
> +            do_err("No prototype for prefix/hypercall combination");
> +    }
> +    next;
> +}
> +
> +# Prototype line
> +{
> +    bro = index($0, "(");
> +    brc = index($0, ")");
> +    if (bro < 2 || brc < bro)
> +        do_err("No valid prototype line");
> +    n++;
> +    fn[n] = substr($0, 1, bro - 1);
> +    n_pre[n] = p;
> +    for (i = 1; i <= p; i++)
> +        pre[n, i] = prefix[i];
> +    args = substr($0, bro + 1, brc - bro - 1);
> +    n_args[n] = split(args, a, ",");
> +    if (n_args[n] > 5)
> +        do_err("Too many parameters");
> +    for (i = 1; i <= n_args[n]; i++) {
> +        sub("^ *", "", a[i]);         # Remove leading white space
> +        sub(" +", " ", a[i]);         # Replace multiple spaces with single ones
> +        sub(" *$", "", a[i]);         # Remove trailing white space
> +        ptr[n, i] = index(a[i], "*"); # Is it a pointer type?
> +        sub("[*]", "", a[i]);         # Remove "*"
> +        if (index(a[i], " ") == 0)
> +            do_err("Parameter with no type or no name");
> +        typ[n, i] = a[i];
> +        sub(" [^ ]+$", "", typ[n, i]);    # Remove parameter name
> +        if (ptr[n, i] && (typ[n, i] in xlate))
> +            typ[n, i] = xlate[typ[n, i]];
> +        arg[n, i] = a[i];
> +        sub("^([^ ]+ )+", "", arg[n, i]); # Remove parameter type
> +    }
> +}
> +
> +# Generate the output
> +END {
> +    # Verbatim generated lines
> +    for (i = 1; i <= e; i++)
> +        printf("%s\n", emit[i]);
> +    printf("\n");
> +    # Generate prototypes
> +    for (i = 1; i <= n; i++) {
> +        for (p = 1; p <= n_pre[i]; p++) {
> +            printf("%s %s_%s(", rettype[pre[i, p]], pre[i, p], fn[i]);
> +            if (n_args[i] == 0)
> +                printf("void");
> +            else
> +                for (j = 1; j <= n_args[i]; j++) {
> +                    if (j > 1)
> +                        printf(", ");
> +                    if (ptr[i, j])
> +                        printf("XEN_GUEST_HANDLE_PARAM(%s)", typ[i, j]);
> +                    else
> +                        printf("%s", typ[i, j]);
> +                    printf(" %s", arg[i, j]);
> +                }
> +            printf(");\n");
> +        }
> +    }
> +    # Generate call sequences and args array contents
> +    for (ca in caller) {
> +        if (caller[ca] != 1)
> +            continue;
> +        for (pl = 1; pl <= n_prios[ca]; pl++)
> +            p_list[pl] = prio_list[ca, pl];
> +        asort(p_list, p_list, "@val_num_asc");

Just to let you know:
asort is a gawk built-in. I was trying to build your changes on my aarch64 chroot environment.
I did not have gawk installed and I got an error when building xen:

make[4]: Leaving directory '/home/micorz01/xen_main/xen/include'
  GEN     include/xen/hypercall-defs.h
awk: scripts/gen_hypercall.awk: line 308: function asort never defined
Makefile:477: recipe for target 'include/xen/hypercall-defs.h' failed

During configure step I did not get any failure that gawk is not installed.
If you are making use of gawk built-ins, shouldn't configure test for it?
 

> +        need_mask = 0;
> +        # If any prio but the default one has more than 1 entry we need "mask"
> +        for (pl = 1; pl < n_prios[ca]; pl++) {
> +            if (prios[ca, p_list[pl]] > 1)
> +                need_mask = 1;
> +        }
> +        printf("\n");
> +        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5) \\\n", ca);
> +        printf("{ \\\n");
> +        if (need_mask)
> +            printf("    uint64_t mask = 1ULL << num; \\\n");
> +        for (pl = 1; pl <= n_prios[ca]; pl++) {
> +            if (prios[ca, p_list[pl]] > 1) {
> +                if (pl < n_prios[ca]) {
> +                    printf("if ( likely(mask & (%s)) ) \\\n", prio_mask[ca, p_list[pl]]);
> +                    printf("    { \\\n");
> +                }
> +                do_switch(ca, p_list[pl]);
> +                if (pl < n_prios[ca])
> +                    printf("    } \\\n");
> +            } else {
> +                for (i = 1; i <= nc; i++)
> +                    if (call[i] == ca && call_prio[i] == p_list[pl]) {
> +                        printf("if ( likely(num == __HYPERVISOR_%s) ) \\\n", fn[call_fn[i]]);
> +                        printf("    { \\\n");
> +                        do_call(call_fn[i], call_p[i]);
> +                        printf("    } \\\n");
> +                    }
> +            }
> +            if (pl < n_prios[ca] || prios[ca, pl] == 1)
> +                printf("    else ");
> +        }
> +        if (prios[ca, p_list[n_prios[ca]]] == 1) {
> +            printf("\\\n");
> +            printf("        ret = -ENOSYS; \\\n");
> +        }
> +        printf("}\n");
> +        printf("\n");
> +        printf("#define hypercall_args_%s \\\n", ca);
> +        printf("{ \\\n");
> +        for (i = 1; i <= nc; i++)
> +            if (call[i] == ca)
> +                printf("[__HYPERVISOR_%s] = %d, \\\n", fn[call_fn[i]], n_args[call_fn[i]]);
> +        printf("}\n");
> +    }
> +}
> 

Cheers,
Michal


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 10:48:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 10:48:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220038.381121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrLB-0000kO-Jl; Tue, 02 Nov 2021 10:48:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220038.381121; Tue, 02 Nov 2021 10:48:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrLB-0000kH-Gp; Tue, 02 Nov 2021 10:48:29 +0000
Received: by outflank-mailman (input) for mailman id 220038;
 Tue, 02 Nov 2021 10:48:28 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhrLA-0000kB-IP
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 10:48:28 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b36d2201-f242-4175-9be8-58682af54b78;
 Tue, 02 Nov 2021 10:48:27 +0000 (UTC)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A2AJiAT013389;
 Tue, 2 Nov 2021 10:48:22 GMT
Received: from eur01-he1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2054.outbound.protection.outlook.com [104.47.0.54])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c33fxg4fj-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 10:48:21 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4020.eurprd03.prod.outlook.com (2603:10a6:208:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 10:48:18 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 10:48:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b36d2201-f242-4175-9be8-58682af54b78
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bWTMhWAisbug5goOpWwhnk4Ff2KnRq9V/ScyxfrnP+8DoOLL5137caRo3xUEzeVgkYvJiDvAjiTEhoZKj6gLHAslSyVJ4aEhBXxBKaZ6dt2ii9k35yzq1QNYoJ97xU/NfwKV/8zWZcMLrvet7VJFOEyWkUuclfglkz5NW93Fo5/W+norx6JfALSsuE0QA5J25ZvkFmLg396jQvx1XHnrHegu6loJHExNAireSsiFmXCsU4mt/f02G4kihxyKCFvezzl4mXm6l57kWwtQs48mz/qCWBF+JNePAz/ycjXzbr9lWNZwFN5B8E4SuxyBJ9PQgCSHdjMRYtsYU3lfi0tHNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=brPnHj7mXniA8xFQaXIirWOF0xVoPP44xmFnPmgiA44=;
 b=XAT6SSguMmTIUnRhwTdDA4UiBFmXCctBloMwLGyyl1Ucx+rYpoYcdefFEEvyMvSmiFv2yqy9uInkwDebkd0R6zACQIbkdpiY/hUlTQuT7JUYjTwN/wo3IPg6lc55DIBuxQAF8I/8O6szL9+CEtWGAeW9fVT4FPXXMMLqNZbc9/huM6wuo4q7XtZk9Q6bX8QHxV4W6yklj4C1CF4RVUSseUEboSyFpgmzqAgAJuG7exdKwpgXmdk64YZQZvl/wCw4CEWKc9whevWKJYFlVu9pMGq41aBIpb8yEY64n95bjd5vTBonvMet3iEeEVhbzVeVAkrnlTpvTRn6TSsJreCctQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=brPnHj7mXniA8xFQaXIirWOF0xVoPP44xmFnPmgiA44=;
 b=c2PLLOx5RGbZvQrpjrqqg4gntZtIv5UL5b7KFyobgGLPF+c6GPqV7btpV9sh0Mu2KvwJysjXTx1WvScMy0SLS5fkKtGDOaoH8wk69hb5jPIZsm7fHsPrzeOO9cU/C3CqFC3qyycnKRsA3CQPWE+7JIspGNyt5wdAW0aon7iXSRKJ0CKmMhnnTeTndgwTBiipUl4Mtw5SDY2SiRHsl0TovgvHPNhEv0T33tZ2dZzDkbI3NNCGW/TAFZ0/o09CKFR9zKYmKwIh/ylfzNST4DPQddURwD9Bg8/3x/lV4WQXaMyClgYrwi4b48mjCDy5LFFYiATk5GKMy3PAtl9rHUrVsQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "jbeulich@suse.com" <jbeulich@suse.com>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Michal Orzel
	<michal.orzel@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAr/CAA=
Date: Tue, 2 Nov 2021 10:48:18 +0000
Message-ID: <7f4fb8f4-499f-5b98-dd6f-9f730bf9dee3@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
In-Reply-To: <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: e64e6181-4323-47d5-1569-08d99dee482f
x-ms-traffictypediagnostic: AM0PR03MB4020:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB4020C010F5E6052161006771E78B9@AM0PR03MB4020.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 9BO40hrVGEQx6/6OK/E6LEM+wBAC459Kvu86QF3fakwLNtU78EakyiND+0a94Ed4HNbflwmd0AYnQhfgQkOEBE51L1EbLcRBkjtl8LFQq+fUFQKE5oL/B30uIsvYCtUmtqfEmDeqZKKadudRQybeaMLR8THAycoxuG+7HYzlHRX43ZCO3R5H0vLJK6AyM1DyALfhvXVB305mfTWfHCm4huuU7wGyDUMa3P11HeIA1NY3t8arxg09RZ51IHOPt5b1wrFTpetRbmGT1OYRcjCfPm1wEQrDoNbGFxsAF8WtqgA2U5Task5u+zpsPqeuUiit/605t0glXuHu6FSOVZwdHrKlkuHBUmEU2dBSFX8ArjnSfkPLGLqZP5WaGwDFHfeqk3uXRRVxP81AOGyPsqv8tqaOGUITeIFOvHHuaVq+BZ0iu7kN1kjhpSdzes1cldZ8kC1NBYK6KqGqWHv2EgrXkKcmAVsDemlAwvRCkhvdoW6E13M8kwqX+pP7Qrzi9WAPeoFxCDrsI5xchZ+2mDy0Y3oP3Iecopcyp5od8fXuX9TMmD6zRIFszuPwpdhKr7hGqsjyJNP3ppDi97OxV63Cp8rAv2zU2mil9GqU1GB/AqIJBqmrEAsCvJNcjBWdmrxlWsWBIP48MQK0J9WBh5y8Zo76KEoyfbLX815SHgwt4X8SMbXKVHvEORb7mmZvECTD+8onjD2ykr23xhuR5rWqfQdJ+j5tJ5vFucsa75C6wY8fXM4DZ2TARofGx7tFAdbL
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(31696002)(186003)(6916009)(6506007)(122000001)(31686004)(107886003)(38070700005)(6486002)(5660300002)(4326008)(38100700002)(8936002)(54906003)(86362001)(83380400001)(91956017)(66476007)(2906002)(71200400001)(2616005)(6512007)(76116006)(66946007)(508600001)(53546011)(8676002)(26005)(36756003)(66446008)(316002)(64756008)(66556008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?L1JMUnMxcllJa1pJQWtKWm9hTmJrWWIvUlFsN2tUNlZWcjhoY2dEaFRUcUVB?=
 =?utf-8?B?aXFCdk5KbXNuT2JaMDBGdW9XbFlTTlN3b2ZHZTVrSmZmbCt1Uk9HdjJWM3N4?=
 =?utf-8?B?K3BKNTBnMVFkc1NGeDVlOW5HcXBOM1hJYVF5aTZseUdjOGlzNGd2bXdOZks0?=
 =?utf-8?B?dzJSVWVOZjVCQ2dpVURHSFE0eGdOb1QzSnU1MWNZb21PaTR6dnZTNGs4UmQr?=
 =?utf-8?B?eVFIcEpSUUJySGtEOUJvOHFQbzZLMStqaVpLdEYxYndSWVQ1QVdzOERQYVJ2?=
 =?utf-8?B?VUt2ZWpuOEtDQ1BUNUVkbmYxQXRzVzZrc1lmeGF0bElWU1dvMVFOcUlKMCtO?=
 =?utf-8?B?aUVBM3VwS0NQTzBDYWp6U0IzZkpic1kwdGhEYmxadzFUOEc0eVNRQTlzUDg0?=
 =?utf-8?B?SGx2QVNPSk1jUkpneGk0Y3BxRzdXSTJna0cxL2FuTDl0WjR2TFhJWS9VNlpT?=
 =?utf-8?B?WU54TDBXLzZRZ0VNYzV5R21GU1Jlb0lad1hrSElZalJ3alg1dzRqaGhkWmd2?=
 =?utf-8?B?QmRIZUhTVEthMHcrcmVBaENEZDRJRSswMUk3QTg0dTFldlhDWG9rR1k5VDAv?=
 =?utf-8?B?eWhKSUswSVNLckJDSzdyM2Iya1BVR2JZUzRITlZ5Z3pvdlFKU2hHemh2Q3Nz?=
 =?utf-8?B?OHU5WStRMCtKSjhjSzZudjVoTCtVd1hwQ2RlWTBrc09ScFBoMTRZSnF4K2hZ?=
 =?utf-8?B?OTYxZnVBenh6aWJFRjAyZWtSNW1DU3haNmd6QXhqa2syZStwcHoxOVg0ak1R?=
 =?utf-8?B?WjdTOTFBSW84OEFZeDA4ZlFnTTlWNy9NQWpCVXNITXY3anArN2hxblZ6T2U1?=
 =?utf-8?B?VkI3RlM1OWJnM0d6TjhWTU0ydFpPdko2dVRvL0VXZGY0cGNyTmhRMjNaTDRX?=
 =?utf-8?B?cS9BeGdOVmM2Y0RScm1PNEthTThEcVdZUWZydnZRZDJ1TWQzZXhWS2lmcGxE?=
 =?utf-8?B?VXJCVkxRQjRBUTNhdG5KNVpFMjNUSWFGYlJoOGhDMkhwOTdHd0wyQWhTV25O?=
 =?utf-8?B?clJ0bFpwY2Z0OU1JYk82VkdEN3E0TkdEZER3QTlSQnFLOWRxNGFhdkxlZEk5?=
 =?utf-8?B?cGU3am1xRG9ueHpnZUFZTEFuZFgrbExnSkNpQjFhUk51ZjExdFNiOTB0MEJS?=
 =?utf-8?B?R2dWS2NpcWYxeXhUNEhZeUdyRVN5MGcrNDVhemZmeGh5Ulo2WWEyU2FINTds?=
 =?utf-8?B?UFVvM3hta3NuTldEams5dEdxRGhoQm1MWkZRU3QyeERkd2tqWW1XdDhvU1Fx?=
 =?utf-8?B?anJIOHdnS0dVL0M3TjhhWXFtM2M0UjFVbXdsTDB1VXJ1SG0rK2szTm1nUDFB?=
 =?utf-8?B?NC9mSnpwL1FEMm1zODY3blpEVGhvc3BOV2M4a0trY1ZiRTdUNk50UkhseENs?=
 =?utf-8?B?cmwzQldrMFpJNVVoRjMyV0F2TjB6LytOQjhuNjVJdmhzQjNnbndXT3hYVFpF?=
 =?utf-8?B?aU15MjlRYm93RjZCT1JDQkF3YjhWVjVDMm5RVW1Ta1NBa1R4U3pEU2xpNEtS?=
 =?utf-8?B?WE9iSEJqSDN2MW0zUFFFdFRKSmRONkE3STlTZFVBVi9Edk1JYTNVZlNhUmpl?=
 =?utf-8?B?ZUVCdVMybFlOSmVzNXpDc0J1V1pQN0c1WXJlcWQ0b0lRS3lpTGx3WFh1Vkkv?=
 =?utf-8?B?WHdBaVpGdWo5NE1OakNHQmxqdFpaNmlzaXhGQkRpVUVZT1UzTHRLaC8wSTNZ?=
 =?utf-8?B?VUl1RTlzZXUvUDJMRkpxRlpoazV0SWFjaXhWWUV5VnJ6TXZmUHZ5QUtFbzBL?=
 =?utf-8?B?cXFYMUFWR1NpWEpPRUl3cERVeWNTSVMzbXZyclNLdk9mQXlWeE9xNk1veTZ0?=
 =?utf-8?B?TmlvWlhscU1Udm16eGJjbUpyQlphYzVnL2laTWdyYlhTbGlZRU1aMlF1bnhz?=
 =?utf-8?B?SkVMTnRIVnpwK3UvWWYvTnEwQ1p3UFNwWVNqZDFuOCtCd3U5UHVRdzJ0UzVM?=
 =?utf-8?B?NGlpNUQ4bTdnekVSbTc0am12RlVpSkIwQXVLMjMvZlliUVYvUFExRTlpZ29m?=
 =?utf-8?B?U3AzOFNUdnZRN3VRUDFId1dTcEM1Q2c2eWZUSk9ORVN5MWpLYUx6aHhZV1ln?=
 =?utf-8?B?VkZFWjEwUDhuSHgycmg0Z3BFN1prK3MwTmNPUmpoMXNQaHROdFpZUHcyemxi?=
 =?utf-8?B?KzZDMHBPdXRRWVhYT2kzL1EvZDVmYjd4alR5d2k5d0lqL0xENWlXS0hzTDdN?=
 =?utf-8?B?bE9NSmdiWWxtMjlVT3Z0M0hxSmZIRGJXVUVOVW1Ud2Nic1dIb2tHVmU0bWM4?=
 =?utf-8?B?WDJnSHpsMWQycXI1RjdzMWsxWE5pVzJTS2hZQjZLVDJjamFRWlU4QmNEZVRI?=
 =?utf-8?B?SHlkY0Z4TGJMMGllaFRleXhuMTdKT2xHcWxjV2NZbGYvY2VlNWpoZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <757AA190E0421B4792CC6BCC62BE443F@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e64e6181-4323-47d5-1569-08d99dee482f
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 10:48:18.6915
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zG6w5kK/YSC1jIrawMkclRQ4c3UhEGDWVR0qtWwiMMh97RjITwc8h0hZVLpTJ+TC8gKll38LGEVJ7mwEgUBrrUPWTlC4XffZulJJcyJFUTNoU8Y5QP8u+Sg3phdt3+di
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4020
X-Proofpoint-GUID: iMbdwFffYZcEfd22a8TU6uMd_UBrEb2B
X-Proofpoint-ORIG-GUID: iMbdwFffYZcEfd22a8TU6uMd_UBrEb2B
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_06,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 mlxlogscore=655 clxscore=1015 spamscore=0 bulkscore=0 adultscore=0
 impostorscore=0 priorityscore=1501 mlxscore=0 suspectscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020064

SGksIFJvZ2VyIQ0KDQpPbiAyNi4xMC4yMSAxMzo1MiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToN
Cj4gT24gVGh1LCBTZXAgMzAsIDIwMjEgYXQgMTA6NTI6MjBBTSArMDMwMCwgT2xla3NhbmRyIEFu
ZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xl
a3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0KPj4gQWRkIGJhc2ljIGVtdWxhdGlv
biBzdXBwb3J0IGZvciBndWVzdHMuIEF0IHRoZSBtb21lbnQgb25seSBlbXVsYXRlDQo+PiBQQ0lf
Q09NTUFORF9JTlRYX0RJU0FCTEUgYml0LCB0aGUgcmVzdCBpcyBub3QgZW11bGF0ZWQgeWV0IGFu
ZCBsZWZ0DQo+PiBhcyBUT0RPLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRy
dXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+IFJldmlld2Vk
LWJ5OiBNaWNoYWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhcm0uY29tPg0KPj4gLS0tDQo+PiBOZXcg
aW4gdjINCj4+IC0tLQ0KPj4gICB4ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jIHwgMzUgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKystLS0NCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDMyIGlu
c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2
ZXJzL3ZwY2kvaGVhZGVyLmMgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+PiBpbmRleCBm
MjNjOTU2Y2RlNmMuLjc1NGFlYjVhNTg0ZiAxMDA2NDQNCj4+IC0tLSBhL3hlbi9kcml2ZXJzL3Zw
Y2kvaGVhZGVyLmMNCj4+ICsrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+IEBAIC00
NTEsNiArNDUxLDMyIEBAIHN0YXRpYyB2b2lkIGNtZF93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2Rl
diAqcGRldiwgdW5zaWduZWQgaW50IHJlZywNCj4+ICAgICAgICAgICBwY2lfY29uZl93cml0ZTE2
KHBkZXYtPnNiZGYsIHJlZywgY21kKTsNCj4+ICAgfQ0KPj4gICANCj4+ICtzdGF0aWMgdm9pZCBn
dWVzdF9jbWRfd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBy
ZWcsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNtZCwgdm9pZCAq
ZGF0YSkNCj4+ICt7DQo+PiArICAgIC8qIFRPRE86IEFkZCBwcm9wZXIgZW11bGF0aW9uIGZvciBh
bGwgYml0cyBvZiB0aGUgY29tbWFuZCByZWdpc3Rlci4gKi8NCj4+ICsNCj4+ICsgICAgaWYgKCAo
Y21kICYgUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFKSA9PSAwICkNCj4+ICsgICAgew0KPj4gKyAg
ICAgICAgLyoNCj4+ICsgICAgICAgICAqIEd1ZXN0IHdhbnRzIHRvIGVuYWJsZSBJTlR4LiBJdCBj
YW4ndCBiZSBlbmFibGVkIGlmOg0KPj4gKyAgICAgICAgICogIC0gaG9zdCBoYXMgSU5UeCBkaXNh
YmxlZA0KPj4gKyAgICAgICAgICogIC0gTVNJL01TSS1YIGVuYWJsZWQNCj4+ICsgICAgICAgICAq
Lw0KPj4gKyAgICAgICAgaWYgKCBwZGV2LT52cGNpLT5tc2ktPmVuYWJsZWQgKQ0KPj4gKyAgICAg
ICAgICAgIGNtZCB8PSBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEU7DQo+PiArICAgICAgICBlbHNl
DQo+PiArICAgICAgICB7DQo+PiArICAgICAgICAgICAgdWludDE2X3QgY3VycmVudF9jbWQgPSBw
Y2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgcmVnKTsNCj4+ICsNCj4+ICsgICAgICAgICAgICBp
ZiAoIGN1cnJlbnRfY21kICYgUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFICkNCj4+ICsgICAgICAg
ICAgICAgICAgY21kIHw9IFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRTsNCj4+ICsgICAgICAgIH0N
Cj4gVGhpcyBsYXN0IHBhcnQgc2hvdWxkIGJlIEFybSBzcGVjaWZpYy4gT24gb3RoZXIgYXJjaGl0
ZWN0dXJlcyB3ZQ0KPiBsaWtlbHkgd2FudCB0aGUgZ3Vlc3QgdG8gbW9kaWZ5IElOVHggZGlzYWJs
ZSBpbiBvcmRlciB0byBzZWxlY3QgdGhlDQo+IGludGVycnVwdCBkZWxpdmVyeSBtb2RlIGZvciB0
aGUgZGV2aWNlLg0KVGhpcyBpcyBub3QgYXJjaCBzcGVjaWZpYyBhcyB3ZSBqdXN0IGRvIG5vdCBh
bGxvdyBJTlR4IHRvIGJlIGVuYWJsZWQNCmlmIE1TSS9NU0ktWCBoYXMgYmVlbiBlbmFibGVkIGJl
Zm9yZS4gVGhpcyB3YXMgZGlzY3Vzc2VkIHByZXZpb3VzbHkNCihKYW4pIGFuZCB0aGlzIHdhcyBw
b2ludGVkIGFzIGFuIGFjY2VwdGFibGUgYXBwcm9hY2ggdG8gbGltaXQgdGhlDQpndWVzdCBmcm9t
IGhhdmluZyBpbmNvbnNpc3RlbnQgY29uZmlndXJhdGlvbg0KPg0KPiBJIHJlYWxseSB3b25kZXIg
aWYgd2Ugc2hvdWxkIGFsbG93IHRoZSBndWVzdCB0byBwbGF5IHdpdGggYW55IG90aGVyDQo+IGJp
dCBhcGFydCBmcm9tIElOVHggZGlzYWJsZSBhbmQgbWVtb3J5IGFuZCBJTyBkZWNvZGluZyBvbiB0
aGUgY29tbWFuZA0KPiByZWdpc3Rlci4NClRoaXMgbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQgb25l
IGRheSB3aGVuIHdlIHVuZGVyc3RhbmQgd2hhdA0KdGhpcyBlbXVsYXRpb24gc2hvdWxkIGxvb2sg
bGlrZS4gVGhpcyBpcyB3aHkgSSBoYXZlIGEgIlRPRE8iIGFib3ZlLg0KPg0KPiBUaGFua3MsIFJv
Z2VyLg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:03:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:03:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220050.381139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrZZ-00032Z-3L; Tue, 02 Nov 2021 11:03:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220050.381139; Tue, 02 Nov 2021 11:03:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrZY-00032S-VB; Tue, 02 Nov 2021 11:03:20 +0000
Received: by outflank-mailman (input) for mailman id 220050;
 Tue, 02 Nov 2021 11:03:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhrZX-00032M-HT
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:03:19 +0000
Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 45efc50d-2d50-4fc6-a553-5ab406fe1401;
 Tue, 02 Nov 2021 11:03:18 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45efc50d-2d50-4fc6-a553-5ab406fe1401
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635850997;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=n0v4QEQNKdYIyHdcZW1RsLNpuK7tRYtglqXe1lx19/0=;
  b=Ymdv9LanuQBp/DUNe/D6TrhowK9gbCjQbl5AjGNEqyvTmXYtHnU5OzaE
   uY5+Hu6V8LElba8HKsWYfR/hM7kdMV8ranZgVmLNQpE+oXzqrtXaRu3vP
   /KynNIrguCueQul10MK2/mC28ScmR5jX/Xx1jKUYaNzC0bH5/UvIyX84S
   8=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: Hv/L4ZfG7Yv+m34r6NrKRvQUrkg/QS5Lj0cSIsk6Vqe/qHkcFKDHTjVkLA+L6tVrKj2fMNlB+Y
 S1cvtQ54HankoLbFguZi808BKM7GYi2r0rCEShqZNkGW3kkC3PoKm9J2iR68XKGAddhbGj30Uk
 7rYl0pKwsEEiEzgZShlKpAFJVSBkMe4gF4/dnZ4FtCx4ur75mzDRYWm1KQzjuz4gQi7fF8MIoc
 w0R0OeZOAuLoVPmj5i1uYW/2P+Fpe4agYauNHxzAABLuy+jHNtz1/j/irtp8YDELigyH8ADTUR
 1W4XT5jQ03KyGzmhaNz93SnK
X-SBRS: 5.1
X-MesageID: 57256312
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:6Jx6qq8HwERRnWkF5TKfDrUDbXmTJUtcMsCJ2f8bNWPcYEJGY0x3z
 GEZUW2FbvjbYWTxetB3Pt+08UgCusSEnIIyTlBvqiA8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdh2NYx6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPh8+
 fwUjZPhZT5yEfTIgNs+UkFeDSxhaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguw5K8bmJsUHs2xIxjDFF/c2B5vERs0m4PcFg21t2JsXR54yY
 eI2RWU3MT/dbCdzMwYHVowEpqC1piPwJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tl6Ru
 2bu72n/RBYAO7S3yzCI73atje/nhj7gVcQZE7jQ3u5nhhify3IeDDUSVECnur+ph0imQdVdJ
 kcIvC00osAPGFeDF4enGUfi+Tjd40BaC4E4//AGBB+lx5v9uj6WV0Q9FREYbMQZl85uQyIny
 Qrc9z/2PgBHvLqQQHOb076bqzKuJCQYRVM/iT84oRgtuIe6/txq5v7bZpM6SfPu0IWpcd3l6
 2nS9HBWulkFsSIcO0xXF3jjiinkmJXGRxVdCu7/DjP8tVMRiGJIiuWVBbnnARRocNbxorqp5
 iFsdy2iAAYmV8jleMulG71lIV1Rz6zZWAAweHY2d3Xbyxyj+mS4Yadb6yxkKUFiP64sIGGyP
 RCC41sOvsUKYBNGiJObharrUqzGKoC7TbzYug38NIISMvCdiifepEmCmnJ8L0iyyRNxwMnTy
 L+QcNq2DGZyNEiU5GHeegvp6pdynnpW7TqKHfjTlk37uZLDNC/9YepUazOmM7FmhJ5oVS2Iq
 r6zwePRkE4BOAA/CwGKmbMuwacidCNmWMup95QPHgNBSyI/cFwc5zbq6epJU6RunrhPl/eO+
 Xe4W0RCz0H4i2GBIgKPAk2Popu0NXqmhX5kbyEqI3iy3H0vPdSm4KsFLsNldrg77u1zi/VzS
 qBdKcmHB/1OTBXB+igcMsah/NAzKkzziFLcJTehbRg+Y4VkG17D9Oj7c1a97yIJFCe265cz+
 uXyygPBTJMfbA1+F8KKOum3xla8sCFFyuJ/VkfFOPdJf0Do/NQ4IiD9lKZvccoNNQ/C1n2R0
 APPWUUUouzEookU9tjVhP/b89f1QrUmRkcDRjvV97e7MyXe71GP+44YXbbaZy3ZWUP15L6mO
 bdfwcbjPaBVh11NqYd9TepmlPps+9v1qrZG5Q14B3GXPU+zA7ZtL3Taj8lCsqpBmu1QtQesA
 x/d/9BbPfOCOd//EU5XLw0gN7zR2fYRkzjUzPI0PESlu3MnoOvZCR1fb0uWlShQDLppK4d0k
 +4utfkf5xG7lhd3YM2NiTpZ9jjUI3ENO0n9Wkr23GM/ZtIX92x/
IronPort-HdrOrdr: A9a23:W4OWx6B3NdS6Ew/lHegwsceALOsnbusQ8zAXPh9KJyC9I/b2qy
 nxppgmPH/P6Ar4WBkb6La90Y27MA7hHPlOkPUs1NaZLXPbUQ6TTb2KgrGSpgEIdxeOktK1kJ
 0QDJSWa+eAfWSS7/yKmDVQeuxIqLLsndHK9IWuvEuFDzsaEJ2Ihz0JezpzeXcGPTWua6BJc6
 Z1saF81kSdkDksH4mGL0hAe9KGi8zAlZrgbxJDLxk76DOWhTftzLLhCRCX0joXTjsKmN4ZgC
 f4uj28wp/mn+Cwyxfa2WOWx5NKmOH5wt8GIMCXkMAaJhjllw7tToV8XL+puiwzvYiUmRoXue
 iJhy1lE9V46nvXcG3wiRzx2zP42DJr0HPmwU/wuwqqneXJABYBT+ZRj4NQdRXUr2A6ustn7a
 5N12WF87JKEBLphk3Glpj1fiAvsnDxjWspkOYVgXAae5AZcqVtoYsW+14QOIscHRj99JssHI
 BVfYDhDc5tABGnhk3izyxSKITGZAV2Iv7GeDlNhiWt6UkUoJgjpHFog/D2nR87hdsAotd/lq
 L5259T5cRzp/ktHNRA7dc6MLmK41P2MGbx2UKpUB/a/fI8SjjwQ6Ce2sRD2AjtQu1Q8KcP
X-IronPort-AV: E=Sophos;i="5.87,202,1631592000"; 
   d="scan'208";a="57256312"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NDUqKlvWUMDO98TooSlsoLNYhoTMQiWfYh/i+rT1+RE0ky4nt9KmuueiKejUYwD3BnC1aqBS/G9jHf6kkNGrlFWm7JUgjlAA9vaBN9pbHY0q2W8+wlsg00tHBMS3nusQxGSuEOqZxxcQG+bMRnt6mlLSSfxw1JvHKW++St/EOQreSDcuvsThLJuzDKIo/nTIiYWmps1O//8PQgi1aH2azsTQ/EEnMLwMyICUU5X/Gu+qwFu/AikpBY3NOI29xixPR/A4usaQzHPbh2nP5kjJLilDVov+8lZc1y60S4Nwn/IlqDAfIayuy2wlfoJ7l9/KoTHhmcd60ET2ut6VPx0KDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wB2TYvJTVIrRzT9/IGWTICwyTVqjUW4WAYZ9tFQpO7c=;
 b=nSQpWhHj0phxR4ax6iwmvFFZNUgQZOMJ6BOv/NAu7425GT25/CILxb/c5Lp+/TrHC44NIDlu5LypYS+XXmDPSSjmnh6UoCDHxKaeOkFScnNafN82OV6pGi872nKJ0kNMmYG++WWk/XWlcv/K/bBQjiKC/nuFZ0B+z9YZ+E8vI8XGVORXL57ZoRl2UqeMZa1cmRG05QPLYf5kCzUOeSfNzrYnkZJEMBfd4a34AnqJkVgsP1KtOs8eR2O1nV4bKsOHomQ+M2/+NRrBDiNArhmshctWIulE+SP58Ec6vPdrCS87LDnALuaIDPjZ8LK0dI5Gs5m2CEu+78UtdUT+wAzqPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wB2TYvJTVIrRzT9/IGWTICwyTVqjUW4WAYZ9tFQpO7c=;
 b=QmG5n9zT6RcSZUjWZ1DV166lQw53hprjbJyD1VqQ9I8TbF73iiWF9BmZb7EJD++9dU80W81r7vpZUkBznA63sXaDG3ruz/ujmV9pScCycSEL0GUy8PgxrDf/i8o4CTofgRrJGCuJWp0dBbrzLW8J0ESTVONEcwvQZBOcXiA9D6Q=
Date: Tue, 2 Nov 2021 12:03:04 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>
Subject: Re: [PATCH v2 3/3] AMD/IOMMU: iommu_enable vs iommu_intremap
Message-ID: <YYEa6HQGR1cHJBw/@Air-de-Roger>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <ff7b68b2-5bba-2927-e3f0-f3062862c466@suse.com>
 <YXaGxX3J1aB39mSG@MacBook-Air-de-Roger.local>
 <dd2929fc-dc1a-1c16-5954-6894766d9dda@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <dd2929fc-dc1a-1c16-5954-6894766d9dda@suse.com>
X-ClientProxiedBy: MR2P264CA0165.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::28) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a2beba23-d351-40c2-c039-08d99df05bd8
X-MS-TrafficTypeDiagnostic: DM5PR03MB3065:
X-Microsoft-Antispam-PRVS: <DM5PR03MB3065604FA41DDF18847F57F58F8B9@DM5PR03MB3065.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: LfVSX9iOmvmVthWhSOxK/hkI7UeqPpUgdbVfnnaTQNFfPc05XiWEkNmg2evNANpZIqWSfgS8MhmovVj5dYzaq+Bri/Ym7jEDcBbQBrwbVavDAjBvPsjvN0wdpeFvXtCvqu2Sc3wkJC/k2RDp16h3Ue47FHLRBa3xFG8HKevNv93m7E0RX+TwXmYitPzMw9G4L9o/y92Jck5UeAkMzFHBG4H0PhsBvvw8BdIPoIKA2r9XFSAkuhZrdpZWaNNSmZZ6duboJW7jYnKkczaLIeySZSii9F9v+gGBlH70wvUyn0aZxZRQp4JD0fuUNYSK20WDRyiZYIsvWoPwLXSvpqEpx4oOzRq/go4RmAACcSN7twpfchkPrN8E7w5Hh/Uz/PyOPjzBa4dZeXBe9LRZs0ahb11C3HLXl3IbDUWb0YGXviSpj3LBwa9aW2UXzCWkvcIU6coPqghFrn083VRSj1vdm72jJma1n5bPnaAVti/o7smWkMInGx3wxSBXja7ThRhb8qOkfJT0SvEKBQRW69HjAiEQPC89mWwpFlQGGjbHHvP1dWXcUHT/80TSxfjjHJ/JjSL9bTViixah42dp4yCLK7tBDnCVlCC96s75Qm6C2sWdQQi8CnH2ayljgthwjLrSJoBfJc52WBemZNpDGHr4og==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(66946007)(38100700002)(956004)(83380400001)(85182001)(2906002)(8936002)(6486002)(26005)(8676002)(9686003)(186003)(508600001)(4326008)(66556008)(66476007)(82960400001)(53546011)(6666004)(6496006)(54906003)(86362001)(6916009)(5660300002)(33716001)(316002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OXBCYUE1Wnc4T1dMK0ttRDVVUnZyT3RNcVNsdFVCS2hxVnB4Nk1IeERDMGgr?=
 =?utf-8?B?OGFObzhqbVk1Ukk0ZlJrUnM5U01lNmNLaWZ6dWx1bjIrUmk5emt2aXBHcFVt?=
 =?utf-8?B?YU11R3FwbEVKK2pRWTJUZURoQXJOcSs5dlIvckZIaW84SGVGdWRkSVhPOEdO?=
 =?utf-8?B?cnE5Y3IvNFVIY2FpbkVJMTFONFFhd2NaQUlQYTlvK1IxSTd3U0JlMUlZTnY3?=
 =?utf-8?B?RitwWWlsdVRoc3grR0hBemtBSStwNkRmMzcvVGpCZHR2N0dYWldFa2pBblNV?=
 =?utf-8?B?S0dRYTRIaUJWczVJaDQ2dWYrUjM2THMxbXJKZm9YOHQrbGxwUENOd1dIamc1?=
 =?utf-8?B?dm13cFFrcUNZZkdjRVowalY1L203ZDBPTnBVT3hnVmszY0R6UWJuL1V0SEFW?=
 =?utf-8?B?RWhNaklJbDhwL0lJMWZyNVNSdzRlLytJMHlrdkNWMWRnREtsZUR5OTJTbTFz?=
 =?utf-8?B?bGUwWk5Zd1VwRXZpc05iNmdHNktOSzNDcTZUOE5DcmloVDdtZ3hqN1R1SDhP?=
 =?utf-8?B?dWQ4Mnl4c002UVdTa0JSdGdRTEtKZCtLMk95N05nSmJyVHl0RjFlY0VrYldk?=
 =?utf-8?B?TmoxbHB0dWozVG9TcmVJd2JXS3pUSXdiTEVja3ZLYW04V1N6MWQvRlpLVitW?=
 =?utf-8?B?VjNtN0RPOWp5aHkzRjJBREdZNU9MMlhPK2lCUzZFWS9nUS9VcjJySVJUZlhQ?=
 =?utf-8?B?Wk9PT3lJbko4a1hvNGREN0k4UmdwNHQ0NEkyZkMzNFR4b2g0dGpQdlg2Q0JZ?=
 =?utf-8?B?SHphUnFTcG50T2VoZjExNHBXWlQwYnNyYTc0bk0raDE3NStQYXVYQkRibUlW?=
 =?utf-8?B?eW10cENPSEY0aXFVNXpCNjVXMlpKZnpFQjlCc3VITXBqdEtlbWxiaEIyWEgx?=
 =?utf-8?B?QVUwS1lqcG9vL2NMdllYTHhZT20rT01xTXpLQm5RL2dZNDgvakQ5YjdJa2cz?=
 =?utf-8?B?WXY0bkNwU1llbXQ1S1NFZUxCSU9iaUZaWi9PNFhTTCtUMnNLK09QRVdZL3hB?=
 =?utf-8?B?U3orQmlzemc4c1BkT2lEL2ZaNENvYnVkbTN4VngvSmREZDJNbGQxVkRudjVr?=
 =?utf-8?B?N0lYbC9lZ0Q2bVM1c1BpdS9MOFgrRWgzT0ovbFdLc2FjSFk3ZzdZM1VFYzQ1?=
 =?utf-8?B?bGpUQmVWUWpFa2dGVHFZOE16SnhTcmcrbnJCeWJobE9jYlpNV0Z5USs0Zzhu?=
 =?utf-8?B?dlNCOHpRN1ZGWjZ6a0NZSDYrZnBmK3d2bTNlMy9YWDlXNWJVUk96RDJwZTg0?=
 =?utf-8?B?RE1yd2VxTU5VMm53T3pXd0JzT0VKblE0eVR5ZHVWQnkyNCt3UmlySWNjRi90?=
 =?utf-8?B?VHVqZ0I0WjR5N0ovdExvaGJoZ3Yxbzc4UkNQSG5EeU1GY3c1a1QzTlpJQmhG?=
 =?utf-8?B?b09hL1Rib1VISndvM09NVUpJMjQ4TklXYk16Nk01YmdnUk5kU1hQM1ZRM3JO?=
 =?utf-8?B?VCtra2RQSU91MEJEalZsa1M2cEc5a0RIaVhtd080OU5QSVd5TlNOVEMyQnds?=
 =?utf-8?B?dkVibm54aVkvdzdZL2NqOE5zSjRMZFFxK3VxNHpubm5Ic2lGMHVHbmtYVDE1?=
 =?utf-8?B?Y1R0R2N5RVROY1ZuQmVmSW4xQjgvRlNlS0ZkTVMrckd4bEx5TDU1N01ucVZ3?=
 =?utf-8?B?NDlsM2VTTlJXQXFxSklWNVhUTHZiY1pnM2djRjl4SXdITjB3aHpNOXpNdWM0?=
 =?utf-8?B?SVhITU5rM29CcEZNY0lla1E5WGlEcVBYekcvVy9tUnJmN1l2aWZlRmd0N2F4?=
 =?utf-8?B?YmxPQit0aGp6UnM2TEc3RjJUNDZINUJzRGJ4ckdqbXVsY0JsUnhua25WdGhr?=
 =?utf-8?B?N2hDZkJOL3dIQ1o4SFZCc1lGMWt4UE0rT3hDR3l4ekZpTFNjV1o4SGUwT1JM?=
 =?utf-8?B?SU5YMTVNL2NSb2Z4eTVhTlJ3MlpOR0xkcmZsem0wdnlDYUtTcnJjeTBXWHNz?=
 =?utf-8?B?V3NLck1peVZDdjZDY1ROb01Oam1BdVQ3OWhON0hadEVEZXRuZ1NvQmdVeTlU?=
 =?utf-8?B?bXQyR3BZV3oyU3F4QTBGWkVJaVlyYU1KNzJMTXpVUHViellOeEJkZnMzcVhU?=
 =?utf-8?B?aUdmbEIzaUFaa3JIM1FUQ08rdWE0NjNTanB6T3RqcXVXS2xrZjN3OXRYelIz?=
 =?utf-8?B?SzY2ZVhqdmxRSDNmZ2ZjclVTUTJjK3kyeUZJNjRMc3l4d3NlREo3L1F0R0pU?=
 =?utf-8?Q?35eehFFf+hmW1vNt8bDXaWY=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: a2beba23-d351-40c2-c039-08d99df05bd8
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 11:03:10.9344
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mYaajKKUNSarMkVycFVx36GFXLFq/cZOWz+iZgfz13hJGru/DJcAt9q4JHaf37wcVSi5HzSqzdxNfcDeY1M8RA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3065
X-OriginatorOrg: citrix.com

On Tue, Nov 02, 2021 at 11:13:08AM +0100, Jan Beulich wrote:
> On 25.10.2021 12:28, Roger Pau Monné wrote:
> > On Thu, Oct 21, 2021 at 11:59:02AM +0200, Jan Beulich wrote:
> >> The two are really meant to be independent settings; iov_supports_xt()
> >> using || instead of && was simply wrong. The corrected check is,
> >> however, redundant, just like the (correct) one in iov_detect(): These
> >> hook functions are unreachable without acpi_ivrs_init() installing the
> >> iommu_init_ops pointer, which it does only upon success. (Unlike for
> >> VT-d there is no late clearing of iommu_enable due to quirks, and any
> >> possible clearing of iommu_intremap happens only after iov_supports_xt()
> >> has run.)
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> In fact in iov_detect() it could be iommu_enable alone which gets
> >> checked, but this felt overly aggressive to me. Instead I'm getting the
> >> impression that the function may wrongly not get called when "iommu=off"
> >> but interrupt remapping is in use: We'd not get the interrupt handler
> >> installed, and hence interrupt remapping related events would never get
> >> reported. (Same on VT-d, FTAOD.)
> > 
> > I've spend a non-trivial amount of time looking into this before
> > reading this note. AFAICT you could set iommu=off and still get x2APIC
> > enabled and relying on interrupt remapping.
> 
> Right, contrary to ...
> 
> >> For iov_supports_xt() the question is whether, like VT-d's
> >> intel_iommu_supports_eim(), it shouldn't rather check iommu_intremap
> >> alone (in which case it would need to remain a check rather than getting
> >> converted to ASSERT()).
> > 
> > Hm, no, I don't think so. I think iommu_enable should take precedence
> > over iommu_intremap, and having iommu_enable == false should force
> > interrupt remapping to be reported as disabled. Note that disabling it
> > in iommu_setup is too late, as the APIC initialization will have
> > already taken place.
> > 
> > It's my reading of the command line parameter documentation that
> > setting iommu=off should disable all usage of the IOMMU, and that
> > includes the interrupt remapping support (ie: a user should not need
> > to set iommu=off,no-intremap)
> 
> ... that documentation. But I think it's the documentation that
> wants fixing, such that iommu=off really only control DMA remap.

IMO I think it's confusing to have sub-options that could be enabled
when you set the global one to off. I would expect `iommu=off` to
disable all the iommu related options, and I think it's fair for
people to expect that behavior.

I'm unsure whether it's fair to change the documentation now, we
should instead fix the code, so that people using `iommu=off` get the
expected behavior. Then we would likely need to introduce a way to
disable just dma remapping (dmaremap, similar to intremap). That
would make a much better and saner interface IMO.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:11:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:11:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220059.381153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrhT-0004U5-VP; Tue, 02 Nov 2021 11:11:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220059.381153; Tue, 02 Nov 2021 11:11:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrhT-0004Ty-S8; Tue, 02 Nov 2021 11:11:31 +0000
Received: by outflank-mailman (input) for mailman id 220059;
 Tue, 02 Nov 2021 11:11:30 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhrhS-0004Tr-DS
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:11:30 +0000
Received: from mx0a-0039f301.pphosted.com (unknown [148.163.133.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id a05f31dc-3bcd-11ec-8555-12813bfff9fa;
 Tue, 02 Nov 2021 11:11:29 +0000 (UTC)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A2Ai7Yc013360;
 Tue, 2 Nov 2021 11:11:24 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c33u9g5db-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 11:11:23 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM4PR0301MB2196.eurprd03.prod.outlook.com (2603:10a6:200:4d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Tue, 2 Nov
 2021 11:11:20 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 11:11:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a05f31dc-3bcd-11ec-8555-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QT4PQ1Q/L6UJHsiu2VApRWxXXBdnmYJDSWMXFVjUA6rDvyWhtIP9aiE0Bch1ErwprlLf8vOukkg6z83TX/qaO4X7bQofOO7rGYU6BJK4xj/ohV5YUtaN0FlWlU3JgbI7d14ZNGJdUAD4judgl9aYZk1KmT5xCelFPmOGDJa0wxIimMtIFGUugioIe4TQan2c0wXRz0r8C+SyGsner4xtwK5QdDyHtX5TEri+j/wyrgbjEB4fcvm7xz+l7Q74DL5g4L3uMDxPcoIAgfMNqcPW3GxcyvfQERTkymYOvogqNMYML64RSG4fjocpfvgxjRGP9WVkJtresCOO69PemhoBtg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a43ZpsMMXM1J9N3XgilssJomOsxNiOEfsxY08QcpSBw=;
 b=kkazGXWXrstbb3utZvuW6EwcEmTz33yHNj1z7WtHF4qCbSPl4LiHPiYNps99sTjZJ+A0L6IRT+3S2iFi568z9DUJFfZM9NzcHXljkp94hStCnQZMXtVG9Sh0tN8ntvF+wzhOHS5mivfhFsliBU2s8arz1vJc3DfsjO+zMghZWjonTUgszpEVh3y+6ewxImNLMzVx0rAL2l1sMBZqGupD5Ex5ViUaOZBX8ito3j8We7uNR2yceuzPJYdcq4zpfXoEXqxB9ByiutbLnjIZfYsE2lm41q/+kXy8PtwgcK+3u1XCRKHh7p2rqg3yA5yae5qeW7ElFRlnuSG1Yej24K6icA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=a43ZpsMMXM1J9N3XgilssJomOsxNiOEfsxY08QcpSBw=;
 b=XyBBw6RKrVXuqMPzZCqMcvNGstH/ah6ra+lIqvqq50Ru9lH0GbWdKbGYI1zeeCwVp9+6edLq1yZNiA0Sus/jYOIT+TUilO+N6kFxEIt/Nt9fjli48TPQ//+VI0vpvMR9ebDSaLlipdAgD6tByW79xe58vRq3w+btShqzbc+eK2e0QsyR8PXHph+Ec5c5YPRgVnymLqrWFBdxKj55fHbuQnYqwRjKhbQng19YYpo3hu/IxzkSjjPSkAepx2kq3L80QHmgnEXZKewBwYYQfVdS52MfTXvZhh6xjUJxM0eW2ByGaFH5gnz8k23ieCxNWAX+dAZM5ZBhVy6vss3gXtNIwg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "jbeulich@suse.com" <jbeulich@suse.com>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Michal Orzel
	<michal.orzel@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 09/11] vpci/header: Reset the command register when
 adding devices
Thread-Topic: [PATCH v3 09/11] vpci/header: Reset the command register when
 adding devices
Thread-Index: AQHXtdAlyl+du69X4UG+jShhj1IBLKvlRdCAgAsDSQA=
Date: Tue, 2 Nov 2021 11:11:20 +0000
Message-ID: <4ad7a854-69f7-84d1-8f48-e8f19235df39@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-10-andr2000@gmail.com>
 <YXff21oTvTm7EomE@MacBook-Air-de-Roger.local>
In-Reply-To: <YXff21oTvTm7EomE@MacBook-Air-de-Roger.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a9259f0b-72ba-42dc-aa68-08d99df17fe3
x-ms-traffictypediagnostic: AM4PR0301MB2196:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM4PR0301MB21960AD93A7ABBBBFF14F334E78B9@AM4PR0301MB2196.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 PvOfEYXGUTub+5CkMVmuphaNHtGzP0qJ3AlF05BujCe8WQ+UVdIAdXHj00ATVoTcYzqo512AlzAy/jRrRXERw0DoqUmbFRr9UgRjglV0OXXIRLtTi9+O+5l/P/WHxgoQNN73LUj9GdRiVYRYr4Pq4eB53tp1MTk4UXa37sD2s+rPouqvLdlwmIig5blpR6M7FkUfPd/MEyakMxAlLXmW9qvxVt9RHB/pMzHULIn0PRRolg/4QwfrZG9gY03F0e3pwIVgVo/3bwNpdJcfWk5rw5b4g8LVV8U4ODncnAacuhuMv1+Lo1bUmLqebajWNwDY8T4hbjdK+GjQjw0WAL/YgeECbFhZy06qxR4e8c8lpbNIP+xjNg8dQ8KFuAKljgy1KDvEyZhT5te/pKSIaBay71EeQw2/jsuoPWjndWNS2wHvJPEi/29cRsu1POeZbz1UgcRKtu9se0kt7HELa5Gn0tpElYaZiUZ/WpTf7SkLXgrW2gcT3yHo3ckHHEPt0uvi5lRSrNJqbiF9D+1e7pOPwqLqSnao41B4vUPxW3/JDnfls4AvrMIDEP9ilrKtcNG/jocEPucZYRBTRcK+nvFTzOMov+Xi+RzZofcNkE1s3rOqqvrkLBZPWOd5JLnXbYJtOb1wxRekhQVx5djTotM9xjFTpikpXt2z8hEN96CUzwI8Z5YQbm36PjxzGSLhomBkAmynWE70iE9eeFN3XkBjX2fUXmm/HKCfuYk9YzNyRvfme4EHegogGQhI89+KXYpM
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(31696002)(26005)(6486002)(6512007)(316002)(38070700005)(186003)(54906003)(71200400001)(8676002)(38100700002)(508600001)(107886003)(122000001)(8936002)(53546011)(83380400001)(6506007)(4326008)(91956017)(76116006)(36756003)(66446008)(64756008)(66476007)(6916009)(5660300002)(66556008)(66946007)(2616005)(2906002)(31686004)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?TFRQSFhBMkIrUzF2SWFSZVE1R0I3NlAxVUNSNHpDUERpZkdqbm1ERXVwVWJR?=
 =?utf-8?B?eFZWcE83MUxUWjRSZmR2WGRaRDN2TGIzbnJaMXdGUkhJVGJYZ0t4Qk5ObWdq?=
 =?utf-8?B?MUhWenp2RXQ5K0w3UGJOWXpxb0hxcEtSaFFmTS9VVW1sQ3N1MDFvWS82R1pH?=
 =?utf-8?B?a0h3cE5jVkg5Q3NLbzVZYTdsdDBnNnhaeTg2SVBBdUpwcUQ1WHlaank3eUFy?=
 =?utf-8?B?S2VqS3dzUjduUWpDRllTQmlVQnUzaWlMdnEwRDFxWVN1a3hRUEVNMllqamhX?=
 =?utf-8?B?cGt2Z0hHaVArM08wbldVZjlnR3FiM1hzcGZCbWpERVIxbTVwaFlHSDF4aWxW?=
 =?utf-8?B?N1VtWlVqdGtyYUtLYXZvYjBHVWJXSWJ1Z2s5YnU0K0tzdWtjd0NBNmEwdzgr?=
 =?utf-8?B?TFBwWFJrejdIZUNxbHJoOTQ1Y0c4cjllaGNQK3F6NHdBS0xFNnU0M29ncVE1?=
 =?utf-8?B?c29LYXNDdFpEbGpKd0ZlWHYwNXZCSytYemN4aVd1dVgvNG1IajhtZk1GQ05H?=
 =?utf-8?B?cStJZjg2Y2ZPcHNkSjZ4SVFyVTkzcGVFWWxtZjRtUHhGdkdCZ28wMHlPc3hy?=
 =?utf-8?B?dTVSVnBvRVVPTFcyTzdtaDFHL2FzMm1Kam5YaTdmaThVazZXcVA5SU0vVjVC?=
 =?utf-8?B?bVhwOHFJd1MwelJPaFJuK0ZzbWhhN2tUV1RDRUhraUxmejVFTUdNUHlVRUVO?=
 =?utf-8?B?TnFacTJENGliQTZ0aHNmbi8rZnhTU1V4T3hxMTZzbDFXWHptSXpZSWZXRGYr?=
 =?utf-8?B?Z09DQW5vdlBNcldDR3kyUC9xQ3VVT0tTS3BxS2xrelhBZ3J2aTRpOWg2eUg4?=
 =?utf-8?B?MWUxV2dwWm50N3FGWTRCQXhKdzBZU3B6ZnI0bmZTVmJIVkt5dzl4Y3B4dDRX?=
 =?utf-8?B?emsrYy8yb1VHa0xBVHJIVjlWWklpTWw3dFNTS05Ud2FEZHY0SllXbVBPL1JK?=
 =?utf-8?B?R3hQZUY5RUFXWFk3eU5UNkx2YmMyTlF0OHpnaS9KWGwwMitncG9HWE9oTCts?=
 =?utf-8?B?SjJFMSs1NUdZTjN6UHlRdTluOCtqam5ocVV0ZDRTZU5NeTdYeU5OY1B5N0xS?=
 =?utf-8?B?bTNCU0dhaWQvZ1FFUk1XVU8wQUFUQkxTZ1hmQlJmb296Zy9FU3ZWU3dKNU9a?=
 =?utf-8?B?WjIybG1hUEtzMzBtaitCdnBIM3I3RnhVM1l1YVNKS1g5a2xsdC9IL3U4Wld5?=
 =?utf-8?B?OGd1ZE1INWlnNlJuUDUrVFl2Uk1NTEhmUWRua3JDQStiSU04TThoS0JMZVVn?=
 =?utf-8?B?YzZSVjlzejhRcUJRSzIvbDhFZ2w3V1ZVQkpMZ1hOSUllaVdDWi9Dcjd6QnR5?=
 =?utf-8?B?TU9UQ0Q0aWFIRVhKRllUc3VFR1NVRGZvZWoxdUszZ3hOb2lYaVU1RW9YWW9V?=
 =?utf-8?B?d3hJYXBKOGxtNzAwbEpjK05INjBlWkJnNUFKdUU5S0lJZnAwWHBXcFd5YnBX?=
 =?utf-8?B?aTRKKzlvV0hHN1RtQ0ZIeHROYkVoN0l6N2xHK0Z5WXpFZzlmT2hlZE5mMjlV?=
 =?utf-8?B?Mi9oeSt1VXhTaThNOVVzeDRKSWVZbmpraTZZOWs2SjNFMUo4TzhXV3EybFVQ?=
 =?utf-8?B?SEQwNUdnWFNmalRuREpodURQWXhwSGlBODdQYXZsZFhlcjBmRVNMRXhHODg4?=
 =?utf-8?B?bzcvQ3A1MVdTUmVlc3M4Um5pbXAwdHdORDhjalhOVWVzT0dyMGd3TVJkcXdC?=
 =?utf-8?B?MFJhZitmZFVzRFZEKytoVldXVmkvWmRmY0REUkQzZlE3eUFRUmZ4V0NHQUMv?=
 =?utf-8?B?aFZMbnhzeFRBOENnU1VseUhuZERydmhvWjhhQkJEcUZJWjlTSGhIWGc2QzZT?=
 =?utf-8?B?ZXdMNW5yQS9meDlHR0FNTHZBQTJDTjRHbklMMGx6MHhYSWJ3cVozaWZPSGtm?=
 =?utf-8?B?QUVISWpqVTdEb3ZxSXltd2JodTFwZVdJZ1llVlJMbUx3MjRveVNvS3duMVp2?=
 =?utf-8?B?OXFTY3pqR1llTS9rcjE1WENxdVQ2WklqMU9KMVo2cFVKSmg2OE1VRFAxUlBM?=
 =?utf-8?B?RVZvMG4zcjZxWEQraHdaTWxzZGcxejlyYWpKSUd5UHpuN3JtVHBacTlObWl0?=
 =?utf-8?B?Y0ZVY0pSQmdkMnlDZFU3NlZuaFZkZS9oNTU1dXRUS0ttVUM3Ujh3TktnNHpl?=
 =?utf-8?B?WGU4Q20rR1FLalh5d3FqM3FEdGYzQzlLUGMyc3FaaWFvdTZaVnRXNG9SWm5s?=
 =?utf-8?B?SjczWG5XRUF1NndsL0tybmFJa01lVTNpdVc4ejVBYTJaTnhHeXFWT055OTdx?=
 =?utf-8?B?SERLYUJucVhnRDUwZXRBa2ExTEhkY2RudnhOS2pGbXlDN2FyVVh4UzdYdXZk?=
 =?utf-8?B?SWNLT0Rnek5rNVR6UzNxZkFiTGtPWWZ1YkRjOVYrSDdnazRtcTFMdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E71259BC6E312341B661BDDF50829618@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9259f0b-72ba-42dc-aa68-08d99df17fe3
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 11:11:20.6458
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: +0eKb/dLJBOx9TnTBSqzznCwGw1Gck8TB7u4AK9A/WGwoCme8uLFuOY2n3fthRVAe4BofL6vnRYq5G3pK2tNRjCwatRnBUByu6p459DMZ20bc1uOmkQ9MzFgGBFeU8Ut
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0301MB2196
X-Proofpoint-GUID: 7P8E3WBhXzqDrSRFsEGynLM-OCV5NkxA
X-Proofpoint-ORIG-GUID: 7P8E3WBhXzqDrSRFsEGynLM-OCV5NkxA
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_06,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 mlxlogscore=999
 clxscore=1015 suspectscore=0 malwarescore=0 impostorscore=0 phishscore=0
 bulkscore=0 priorityscore=1501 lowpriorityscore=0 mlxscore=0 adultscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111020066

SGksIFJvZ2VyIQ0KDQpPbiAyNi4xMC4yMSAxNDowMCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToN
Cj4gT24gVGh1LCBTZXAgMzAsIDIwMjEgYXQgMTA6NTI6MjFBTSArMDMwMCwgT2xla3NhbmRyIEFu
ZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xl
a3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0KPj4gUmVzZXQgdGhlIGNvbW1hbmQg
cmVnaXN0ZXIgd2hlbiBwYXNzaW5nIHRocm91Z2ggYSBQQ0kgZGV2aWNlOg0KPj4gaXQgaXMgcG9z
c2libGUgdGhhdCB3aGVuIHBhc3NpbmcgdGhyb3VnaCBhIFBDSSBkZXZpY2UgaXRzIG1lbW9yeQ0K
Pj4gZGVjb2RpbmcgYml0cyBpbiB0aGUgY29tbWFuZCByZWdpc3RlciBhcmUgYWxyZWFkeSBzZXQu
IFRodXMsIGENCj4+IGd1ZXN0IE9TIG1heSBub3Qgd3JpdGUgdG8gdGhlIGNvbW1hbmQgcmVnaXN0
ZXIgdG8gdXBkYXRlIG1lbW9yeQ0KPj4gZGVjb2RpbmcsIHNvIGd1ZXN0IG1hcHBpbmdzIChndWVz
dCdzIHZpZXcgb2YgdGhlIEJBUnMpIGFyZQ0KPj4gbGVmdCBub3QgdXBkYXRlZC4NCj4+DQo+PiBT
aWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hj
aGVua29AZXBhbS5jb20+DQo+PiBSZXZpZXdlZC1ieTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6
ZWxAYXJtLmNvbT4NCj4+IC0tLQ0KPj4gU2luY2UgdjE6DQo+PiAgIC0gZG8gbm90IHdyaXRlIDAg
dG8gdGhlIGNvbW1hbmQgcmVnaXN0ZXIsIGJ1dCByZXNwZWN0IGhvc3Qgc2V0dGluZ3MuDQo+PiAt
LS0NCj4+ICAgeGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYyB8IDE3ICsrKysrKysrKysrKystLS0t
DQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0K
Pj4NCj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jIGIveGVuL2RyaXZl
cnMvdnBjaS9oZWFkZXIuYw0KPj4gaW5kZXggNzU0YWViNWE1ODRmLi43MGQ5MTFiMTQ3ZTEgMTAw
NjQ0DQo+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+PiArKysgYi94ZW4vZHJp
dmVycy92cGNpL2hlYWRlci5jDQo+PiBAQCAtNDUxLDggKzQ1MSw3IEBAIHN0YXRpYyB2b2lkIGNt
ZF93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJlZywNCj4+
ICAgICAgICAgICBwY2lfY29uZl93cml0ZTE2KHBkZXYtPnNiZGYsIHJlZywgY21kKTsNCj4+ICAg
fQ0KPj4gICANCj4+IC1zdGF0aWMgdm9pZCBndWVzdF9jbWRfd3JpdGUoY29uc3Qgc3RydWN0IHBj
aV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsDQo+PiAtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQzMl90IGNtZCwgdm9pZCAqZGF0YSkNCj4+ICtzdGF0aWMgdWludDMyX3QgZW11
bGF0ZV9jbWRfcmVnKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MzJfdCBjbWQpDQo+
PiAgIHsNCj4+ICAgICAgIC8qIFRPRE86IEFkZCBwcm9wZXIgZW11bGF0aW9uIGZvciBhbGwgYml0
cyBvZiB0aGUgY29tbWFuZCByZWdpc3Rlci4gKi8NCj4+ICAgDQo+PiBAQCAtNDY3LDE0ICs0NjYs
MjAgQEAgc3RhdGljIHZvaWQgZ3Vlc3RfY21kX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpw
ZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4gICAgICAgICAgICAgICBjbWQgfD0gUENJX0NPTU1B
TkRfSU5UWF9ESVNBQkxFOw0KPj4gICAgICAgICAgIGVsc2UNCj4+ICAgICAgICAgICB7DQo+PiAt
ICAgICAgICAgICAgdWludDE2X3QgY3VycmVudF9jbWQgPSBwY2lfY29uZl9yZWFkMTYocGRldi0+
c2JkZiwgcmVnKTsNCj4+ICsgICAgICAgICAgICB1aW50MTZfdCBjdXJyZW50X2NtZCA9IHBjaV9j
b25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfQ09NTUFORCk7DQo+IEVpdGhlciB3ZSBrZWVwIHJl
ZyBoZXJlIG9yIHdlIGRyb3AgdGhlIHBhcmFtZXRlciBhbHRvZ2V0aGVyIGZyb20gdGhlDQo+IGZ1
bmN0aW9uIHByb3RvdHlwZS4gSGF2aW5nIG9uZSBjYWxsZXIgcGFzcyAwIHdoaWxlIHRoZSBvdGhl
ciBwYXNzaW5nDQo+IFBDSV9DT01NQU5EIGlzIGNvbmZ1c2luZy4gVGhlIG1vcmUgdGhhdCB0aGUg
cGFyYW1ldGVyIGlzIG5vdw0KPiBlZmZlY3RpdmVseSB1bnVzZWQuDQpUaGlzIGlzIHByb2JhYmx5
IGJlY2F1c2UgZ2l0IGRpZmYgaXNuJ3QgcmVhbGx5IGhlbHBmdWwgaGVyZSBpbiBzaG93aW5nIHRo
ZSBjaGFuZ2U6DQpzdGF0aWMgdWludDMyX3QgZW11bGF0ZV9jbWRfcmVnKGNvbnN0IHN0cnVjdCBw
Y2lfZGV2ICpwZGV2LCB1aW50MzJfdCBjbWQpDQp7DQogwqDCoMKgIC8qIFRPRE86IEFkZCBwcm9w
ZXIgZW11bGF0aW9uIGZvciBhbGwgYml0cyBvZiB0aGUgY29tbWFuZCByZWdpc3Rlci4gKi8NCg0K
IMKgwqDCoCBpZiAoIChjbWQgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUpID09IDAgKQ0KIMKg
wqDCoCB7DQogwqDCoMKgwqDCoMKgwqAgLyoNCiDCoMKgwqDCoMKgwqDCoMKgICogR3Vlc3Qgd2Fu
dHMgdG8gZW5hYmxlIElOVHguIEl0IGNhbid0IGJlIGVuYWJsZWQgaWY6DQogwqDCoMKgwqDCoMKg
wqDCoCAqwqAgLSBob3N0IGhhcyBJTlR4IGRpc2FibGVkDQogwqDCoMKgwqDCoMKgwqDCoCAqwqAg
LSBNU0kvTVNJLVggZW5hYmxlZA0KIMKgwqDCoMKgwqDCoMKgwqAgKi8NCiDCoMKgwqDCoMKgwqDC
oCBpZiAoIHBkZXYtPnZwY2ktPm1zaS0+ZW5hYmxlZCApDQogwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBjbWQgfD0gUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFOw0KIMKgwqDCoMKgwqDCoMKgIGVsc2UN
CiDCoMKgwqDCoMKgwqDCoCB7DQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50MTZfdCBjdXJy
ZW50X2NtZCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfQ09NTUFORCk7DQoNCiDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggY3VycmVudF9jbWQgJiBQQ0lfQ09NTUFORF9JTlRY
X0RJU0FCTEUgKQ0KIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjbWQgfD0gUENJX0NP
TU1BTkRfSU5UWF9ESVNBQkxFOw0KIMKgwqDCoMKgwqDCoMKgIH0NCiDCoMKgwqAgfQ0KDQogwqDC
oMKgIHJldHVybiBjbWQ7DQp9DQoNClNvLCByZWcgaXMgbm90IHVzZWQgaGVyZSBhbmQgY21kIGlz
IHRoZSBkZXNpcmVkIHZhbHVlIG9mIHRoZSBQQ0lfQ09NTUFORA0KcmVnaXN0ZXIuIFNvLCBJIHNl
ZSBubyBjb25mdXNpb24gaGVyZS4NCj4+ICAgDQo+PiAgICAgICAgICAgICAgIGlmICggY3VycmVu
dF9jbWQgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUgKQ0KPj4gICAgICAgICAgICAgICAgICAg
Y21kIHw9IFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRTsNCj4+ICAgICAgICAgICB9DQo+PiAgICAg
ICB9DQo+PiAgIA0KPj4gLSAgICBjbWRfd3JpdGUocGRldiwgcmVnLCBjbWQsIGRhdGEpOw0KPj4g
KyAgICByZXR1cm4gY21kOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgdm9pZCBndWVzdF9jbWRf
d3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsDQo+PiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNtZCwgdm9pZCAqZGF0YSkNCj4+
ICt7DQo+PiArICAgIGNtZF93cml0ZShwZGV2LCByZWcsIGVtdWxhdGVfY21kX3JlZyhwZGV2LCBj
bWQpLCBkYXRhKTsNCj4+ICAgfQ0KPj4gICANCj4+ICAgc3RhdGljIHZvaWQgYmFyX3dyaXRlKGNv
bnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4gQEAgLTc5Myw2
ICs3OTgsMTAgQEAgaW50IHZwY2lfYmFyX2FkZF9oYW5kbGVycyhjb25zdCBzdHJ1Y3QgZG9tYWlu
ICpkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICAgICAgICAgICBnZHByaW50ayhY
RU5MT0dfRVJSLA0KPj4gICAgICAgICAgICAgICAgICAgICIlcHA6IGZhaWxlZCB0byBhZGQgQkFS
IGhhbmRsZXJzIGZvciBkb20lcGQ6ICVkXG4iLA0KPj4gICAgICAgICAgICAgICAgICAgICZwZGV2
LT5zYmRmLCBkLCByYyk7DQo+PiArDQo+PiArICAgIC8qIFJlc2V0IHRoZSBjb21tYW5kIHJlZ2lz
dGVyIHdpdGggcmVzcGVjdCB0byBob3N0IHNldHRpbmdzLiAqLw0KPj4gKyAgICBwY2lfY29uZl93
cml0ZTE2KHBkZXYtPnNiZGYsIFBDSV9DT01NQU5ELCBlbXVsYXRlX2NtZF9yZWcocGRldiwgMCkp
Ow0KPiBJIHRoaW5rIHdlIGxpa2VseSB3YW50IHRvIHVuc2V0IHRoZSBtZW1vcnkgYW5kIElPIGRl
Y29kaW5nIGJpdHMgZnJvbQ0KPiB0aGUgY29tbWFuZCByZWdpc3RlciwgYXMgdGhlIGd1ZXN0IHZp
ZXcgb2YgdGhlIEJBUiBhZGRyZXNzIGlzDQo+IGN1cnJlbnRseSBmb3JjZWQgdG8gMCwgYW5kIG5v
dCBtYXBwZWQgaW50byB0aGUgZ3Vlc3QgcDJtLg0KQnkgcGFzc2luZyAwIGhlcmUgYXMgdGhlIGRl
c2lyZWQgdmFsdWUgb2YgdGhlIFBDSV9DT01NQU5EIHJlZ2lzdGVyDQp3ZSBkbyB0aGF0LiBUaGUg
ZW11bGF0aW9uIGNvZGUgd2lsbCB0YWtlIGNhcmUgb2YgdGhhdC4NCj4NCj4gVGhhbmtzLCBSb2dl
ci4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:13:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:13:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220070.381167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrjY-00059f-IR; Tue, 02 Nov 2021 11:13:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220070.381167; Tue, 02 Nov 2021 11:13:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrjY-00059Y-Ex; Tue, 02 Nov 2021 11:13:40 +0000
Received: by outflank-mailman (input) for mailman id 220070;
 Tue, 02 Nov 2021 11:13:38 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhrjW-000599-G2
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:13:38 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c1502c7f-049a-41d7-855c-e0a3f9307036;
 Tue, 02 Nov 2021 11:13:37 +0000 (UTC)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-21-XgnQmkSfPe2UyweADxi_pA-1; Tue, 02 Nov 2021 12:13:35 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 11:13:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 11:13:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR04CA0002.eurprd04.prod.outlook.com (2603:10a6:206:1::15) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 11:13:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c1502c7f-049a-41d7-855c-e0a3f9307036
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635851616;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=cWgPX7YM7nq+sCJ8G5o8uAn5ekVbrc2u/x8H2qXIMHg=;
	b=IkcTuJ9lnvtVbtKn6J0wYMyMUV30LlGI5Z+aqzamJeW1P6fTOaFX3Ih4NySV0Vf2b2YfVU
	HuKPrJ5MOo+43QAAeXGurHzAaPXKy0aC17aZpBVX6/Lut4TST0g9NbnoNr1qO7c3FYpCnj
	KycHg9bkLC8mUdO58FkFCGw6hyGcwSw=
X-MC-Unique: XgnQmkSfPe2UyweADxi_pA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SYO9QX/QviqZIYgt/gXVXUxICf6g80LZJDNz05b5q5rWhjZ6/w6c53AMs6NFZh6QEuuWpytRepc/Lt/4h/LzKvw7Jht+9M1JL4pqIhEqnPCP+lOa97gwmBxlIO80/l0s1/tP722aqTx+3sXZE73eTBcIHnf9IP17oj0vfSYhFPQ+CWY3+eD5ivg8FUD/Q9taOzOFkiZQn1CSHaKDMHufio0YygPp2B8tx2SBWt2Hb+GYJFMzs9G8PcaxrMichZWgNqd51BWMjrhUUATuFQhAEz4Pg9GrP43c8jxrpHRKafe1lggQt9aOpZoi+lOMstJw07MIrYgodWFZY9NSRSQadg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BsNPAs0wDljFlhgzJ81dflGL8hhCM7MSPduQKSA/N/A=;
 b=lqTykdTv57tvuB5c1GXeIzo53ADEgY5s9+6t8H+H5F8eOOew8ok/6k6HQ+TVxmrwkAwaDKLy7Msi2IQQTd6VH297+c5S1XULKY3CN7GRYhWeKr2nAh5tXZoFYNkEpDs94LX0oAGw+1E7RG80mMIqDZ84WyOkfNGAVWM6fCxM9NAH9kwfdY4I5uuz/Koy50mOwZ1pE0OiOskWveILMNjL3CQiF4tXafpsBQ2T6H4y5RQUhHFWLMGDI2RY5fb3g98rqrTHc6NcgVVYv2B0xQX8qjjyRURalWGQmF5k5IzBWi9L/w3UjoG+HeGMegWo/l4h51FdW/F5J50K+m5LC1NWAg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <cde52c47-1f8a-499c-7912-0d9a3cbe9fce@suse.com>
Date: Tue, 2 Nov 2021 12:13:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v3 06/11] vpci/header: Handle p2m range sets per BAR
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-7-andr2000@gmail.com>
 <fc9de674-1000-c956-3401-103d8388d428@epam.com>
 <YXfM9mQh3DS3bpfw@MacBook-Air-de-Roger.local>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YXfM9mQh3DS3bpfw@MacBook-Air-de-Roger.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR04CA0002.eurprd04.prod.outlook.com
 (2603:10a6:206:1::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ab83fd74-b688-4e52-59a7-08d99df1cf4f
X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB70378B9FED73A7FDD74662DFB38B9@VI1PR04MB7037.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	cYff6gTvrrjt1L85tIVELW93PCl7TiYZzYPJcml/rXhvxOsKzUgaJK+l+Up+kb4soCLhCs00Vr8Ydaks1uIWJKbTqATB/Gn32ZSUwighka6Ou0GXDUERJ6AnJZDcwvlhusxWhQ+ZM25o5R6cxjB/nqNqUKv7y6MxzsWILc/eeuwWIQXfTNbLsZPHLdptNbtAY+5b7MSpvrVkI/jVFbJ6w3rbshIq3p1JLyFI9HaH5T/5MdtYx8ApvrCVVr46EE2WnGefmo83sxjhGWuG0lNOXYkBgmLL9w6tx8r8hPRKckeGWERBxgLZaI2XhwUO3vmd3jxH3okAIhh8SlPgo1Vye+DI0vgGfF0Zn6uVVWiSI6lg6CjriR8iJ+/MPxWVGhURKzTOC3hr/u9A0DmMT3lWF0q5mEqZ+fUvE7stMIv7BZ0UK3ofIj8kBvB/Chwh5MNTXPe9BLqvkX7kYz10umO7AELbqfjwXybYvilhB6MDRy6G/OdHrDF+FwD6fx1EvIL8YhWnPA4wzpfO+FmtWP3x7oKpyMzFDT4bWLPeFVuc7vENiEcX4PQcNa4ExcKfkyhj5+yWI7VO+BT/DCHwpNG4jmzvPIhtsVZLFPdbkySHp/Jmua/+Xeu8kcz85oSrSSX0ckmEoAAHJwiC1QELY7q2GmrWZieJwtwGH+guc58SR0+MIzYzNtaA/XW8LPsew4ZZf3T1VVyKVqTQcYmiYHkoREzI9ubOIwLs0PMcfaTvowEtH+M4x+Dup27cJa0AlQJ5
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(7416002)(8936002)(2906002)(316002)(508600001)(66946007)(6916009)(186003)(66556008)(66476007)(4326008)(4744005)(2616005)(5660300002)(956004)(26005)(54906003)(53546011)(38100700002)(16576012)(6486002)(31686004)(8676002)(31696002)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?IBEDIIdoxG0hmM1xW1M871jWmoI/rgyYJWL+lQ8b81kUJsQDc1K/WNSkADRw?=
 =?us-ascii?Q?qBqxbYb4zHdVw3v5U8orZ3Fw86m+jVxanMHiQPKpzPRFfz/4jqZ4lisZ08WI?=
 =?us-ascii?Q?G7odNyThfq9Huoy331jwxjhSCL8CehrhNHOATFi9/1umt01zdNfNKmNLVKn1?=
 =?us-ascii?Q?Lnx2a3k6VxZfKpEXjarN3nHkbQG3ZMgJmFceCLo4ryrZ1C3PKCaUOmLjOnE2?=
 =?us-ascii?Q?pNTgXvYn//CzQm2OITxY8zy0izpTvsR2GXmulAfRYrIg2aX2nahtite53e3s?=
 =?us-ascii?Q?0fq5geViPZ29hqcEDSJoBwKIdzndp4ZyRKvyMpybHKppBaFUQSXN74daiNBk?=
 =?us-ascii?Q?0otDm5j2GQfg1+G8YB7LuHbU7eI9f6JezQ9WPpjy7h4dl2wnHpfYlAtL2JS4?=
 =?us-ascii?Q?wvOJ5KH8HRTX+THCvHel6kin7Ow6ou5DMlNGzgZz99nfGtuwTsiUe5lG1CPk?=
 =?us-ascii?Q?3/yAdobFIZW/LURwdXmbwEbEqdsul8vjrtsC+dddgNlil7XQrV6Lriv4ifDG?=
 =?us-ascii?Q?TxcByBCl3m0QIQcM1TUQuEUCNjom6Xou8EilcHHpc7ZxxthKV+MOSfRYrmm7?=
 =?us-ascii?Q?84u61GIqNHUmWYsi7TvLqUGgZGdgIzd8KB/P95g4lNElOtZOyG1yCniey0eW?=
 =?us-ascii?Q?nA2WSMdYrdCj6NxUY4o3XJDMWz4g8etfbsnGfBTmR5AaqBR9JvIE/2rRMVtM?=
 =?us-ascii?Q?XQ3Mc8KzCw4NvFeh2wluGfx7nSEe1LPoRHZkNSPjB59ewAwr0mL4cywghcby?=
 =?us-ascii?Q?Wg0LwVgPawH9w/8E8oVQIunAn7TtUPCpjKg4tHCqKBpVs0J/L/AZQFiE1rWh?=
 =?us-ascii?Q?9rfcrNZQD5D8ZOyrgGWl8aVRYANgTwcxfc5TNNPE25HxKQSQ5r/SDWhXn64w?=
 =?us-ascii?Q?p81pAnwk9tJ68kTaSNcQIN/qqDsU/OwTRHtZJOvTIB9HvCO51Hwav01AzKP5?=
 =?us-ascii?Q?HIdVgeG+99s/iSNVIN8wwuHi0yChqs6Lp7h9S2Xf77277j2hPg24HSG9Hryu?=
 =?us-ascii?Q?l6ZctaP6iup/O8aif41cWq/Cifue2dvMZVj+3tjmVqG4kQOBfkdxjIffZyuo?=
 =?us-ascii?Q?UOAv7qGWPqvD9gZllQhBvg2zKNDWOBoP+P2oWSb9CXQjCEWoa69ZZ/Yi8a0Q?=
 =?us-ascii?Q?DoAr7SBcuTDZQPLFZxXSvWcfeedUDMEZ1ptUQ86VvgfqNC36MfDQJNlOU/7A?=
 =?us-ascii?Q?mH5rzYfnObny7C+RMT/GZ34LXHCRyP5m5MneNBn7l0iwgXRWe1MQvJfVRx7U?=
 =?us-ascii?Q?lvlV+Fv8FBfMn9qAJP5IK1hLNpKSbSBUyzOiDqbBGDUfLgXz+JKfPc9oom/S?=
 =?us-ascii?Q?cd4LlhZu+iN1cne9K64XO2cBIwpfn3KYg34faIq9r/eU4cZNLV2hlhpk9l1o?=
 =?us-ascii?Q?jgRrNwf3IetFKSiXEmYbyxhEIPv3EnbN68jy91TUxXJltnPReED5S08DZTtH?=
 =?us-ascii?Q?twErIa/72c3wSsq5BanER+ONUsZ3MELLGpGc6OUfEfdWwQmvuDLgLPTMJNdj?=
 =?us-ascii?Q?qEioEsSpCG/xa8xK2bLNaew5n44es9IvIPo2+jnmACqEofs1yLkaIY0UzJbk?=
 =?us-ascii?Q?2hyC/Vm0iuSBAHgQsE8rPE61R3EGMIBKLEyQz3vQG6M+XmLDsks9qw1GKVPq?=
 =?us-ascii?Q?Bi9qrOgqTaPhnhP8kzHxEsA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ab83fd74-b688-4e52-59a7-08d99df1cf4f
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 11:13:34.1488
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: I3QX0vHPpEn0NoIjSBh7eEgvd20QPv5enF5E3h1ipmuaKIU1IeRUHLaJho5GWR1hpBC76HjQ9BltxYDztvKn5w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037

On 26.10.2021 11:40, Roger Pau Monn=C3=A9 wrote:
> On Mon, Oct 25, 2021 at 11:51:57AM +0000, Oleksandr Andrushchenko wrote:
>> Hi, Roger!
>> Could you please take a look at the below?
>> Jan was questioning the per BAR range set approach, so it
>> is crucial for the maintainer (you) to answer here.
>=20
> I'm open to suggestions to using something different than a rangeset
> per BAR, but lacking any concrete proposal I think using rangesets is
> fine.

The main reason for my objection is that for the average BAR the
rangeset will hold exactly one range. That's not an efficient way
to express a single range.

> One possible way might be to extend rangesets so that private data
> could be stored for each rangeset range, but that would then make
> merging operations impossible, likewise splitting ranges would be
> troublesome.

Indeed, so I don't view this as an option.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:19:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:19:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220076.381178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrp4-0005rx-6N; Tue, 02 Nov 2021 11:19:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220076.381178; Tue, 02 Nov 2021 11:19:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrp4-0005rq-3T; Tue, 02 Nov 2021 11:19:22 +0000
Received: by outflank-mailman (input) for mailman id 220076;
 Tue, 02 Nov 2021 11:19:20 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhrp2-0005rk-Rj
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:19:20 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 3cedfd0e-7583-4c13-a0d7-714158fdccf3;
 Tue, 02 Nov 2021 11:19:19 +0000 (UTC)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2052.outbound.protection.outlook.com [104.47.4.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-13-NKNaIyOGOlCeUGYNRYTviw-1; Tue, 02 Nov 2021 12:19:17 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3391.eurprd04.prod.outlook.com (2603:10a6:803:3::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 11:19:15 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 11:19:15 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR01CA0051.eurprd01.prod.exchangelabs.com (2603:10a6:20b:e0::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17 via Frontend
 Transport; Tue, 2 Nov 2021 11:19:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3cedfd0e-7583-4c13-a0d7-714158fdccf3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635851958;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=NZPk2ntut6FniNv0dLYv6O9ukZHqPvJoIcx3QZNAfjI=;
	b=cf8m2GdMZl3gn4QMAOfIQlNXn3COTnPanJZTSqBOW1FoAAH1KLgxNpruxUnftwudHSK3J1
	ATflUxHUltZmQWCRONKMktCbL8wTzw1JD/vkEyfaQLfcg0BGiIH2NXYNVUG2oHVQY/lHW9
	mHtzZ8G3uic6mieptsJVs1pF3lmOARs=
X-MC-Unique: NKNaIyOGOlCeUGYNRYTviw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HhYF4LlqA0BZzEkC3donEphmtQsa92pIiP+jhqLEB3bjAOLCPsXoJ3/lS5Y31TbyXNKIqdQagS7RYfApepDApSf8UVAUcMnyxs+TRQYaj+bpja113NB/y1lZ+mDId2/HV1/THh+P7dqNm8iwRl/08ucR0R8RJPBCWGwkVPmPQ8/ZJyk+vk0G6G2OAcF2CgSSEPAY6e2hEfeQiTpcnXi0dN7Ic6aGCzM83UMbCUT7tYRZKWkUNUH7B4iJc9fhAsj6T3vNfirUOqqCMZ0MrKZaV/kr2mCPhBFK1b9wRTErIWMUx5+WKNKlX1f664AeRQhB5y3hCPeBDarGvSUb2X+KnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wIDlbItKtfut8ntP/9O/LHcTw/BL35ttBixEbpYSAQE=;
 b=cXxNLIPdybwkVlpu+OCtmSUosiZHR+zn6WHayk+UeI+K8STvFHf/HIhMyT2dEiwbU1mEpIgMFtybQltiqMNNOCXpyALA2AWmnaAWraFiICrVXT8pyXfuPGJG2PJDL1CO8LZ5x1Pw1i+IcOQc1m/tbYfqmkwMDerzSYjsL3bjSzCVoweRZJ+mwyND3/ZVY2UOvoD9yewRamP2oGH8STXsVZ2zakK/yKpgfhH0bRNiwc38yKm4lXgLGS1uqTaBxAPwBpWvetQz0U/atchx0atE0UT0c7IcDGKUuL1vZrbm/aAx0DdJMuAmLB16j/f9v+fbihhPAfzBpThf82HGuxwDtw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
Date: Tue, 2 Nov 2021 12:19:13 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: xen-devel@lists.xenproject.org, julien@xen.org, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, volodymyr_babchuk@epam.com,
 Artem_Mygaiev@epam.com, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 Michal Orzel <michal.orzel@arm.com>,
 Oleksandr Andrushchenko <andr2000@gmail.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR01CA0051.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:e0::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 30131cd7-7075-47e9-013b-08d99df29b01
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3391:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3391E527B4680B16DA2D6B8FB38B9@VI1PR0402MB3391.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6108;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	BpWZRAb95HrrHk935Gz/F1Baaouek+5lNzpwK09csGrk/teG+TYtvenzUKkt/uK69Sq/i9cWy20RN1tItNDtpc3FD3bQUPlb8ytw9zYEUGrLdIIaHbxBsFy+MCDTWAH4hkrARVErKa9//5TgwZjF57n4X0Wj3z4Mp9sWXMt1Wvrw589LNA+l4TreAJp15ucdaeiW4yZNnuTmBzmELhl2fye1XMD7vz3aXOuKUBYkDiyL5LXW06VJJV68Bkyibk0QjuR8B0tvgxWb4bC7p/6mcC8BpS5IA8HJHQXGx3/LKMWvHvP7k/AlgXvEDvwtzr3y1SkAomCok983xh04s7MS7x3JPjybu/5we1pVSN7lDqsSlmsRfIbNFSdIux3qWpLUKzZOxLK/+EaG0gIwTUFpRUD1fHxAZ9VbQaScSUPJDLUfaykBvjDnxWDlEcPbuWKiTk5czmbSHZcmNey4WOcJEcaOFf+nrJ8AWMpnO44o1YEsHl/SKHuJfO/R/iM2lxOHlbVN7BFlijp3AepvpaQZigntEdiM/kaCCVFPgeWpiGCRI4ZgE0Hl1kfiyDTkF56pk0JQxEgy2GSBqSZbGi7vYNshwBm49wOB7BtrTVJ4xUe/f+sJw/ywc7rHbhqXoaEgxZgT7V8Qj/UGRqnPSeYB/TlfbI4W7GoQZMmqIVTyRIWBRTCDSayrEhuZtIrarwuPE3huBXWshSVM0Ebcy/wcqw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(36756003)(86362001)(54906003)(316002)(6916009)(16576012)(38100700002)(956004)(2616005)(66946007)(66556008)(66476007)(4326008)(26005)(5660300002)(53546011)(186003)(508600001)(8676002)(6486002)(8936002)(31686004)(7416002)(2906002)(83380400001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Ck8eWQdfxVnEeeJvuXvvuIxTF3yxDFKBolt5h5AiADXIpUasMnctGNNIzsN8?=
 =?us-ascii?Q?EnaE/u9PpA7ZH8LW8Cyl/qu0OphS21Pv1mlC4/JH6iTzRFKH4645r87+1YWq?=
 =?us-ascii?Q?K/Avlx33wEPQXasAV1A6mvq2KmH5z0ZjYaAHmDHyAzIkxyd/3fySY40N0Sl9?=
 =?us-ascii?Q?p8qgcslvUfd3xOkyRCEMaRw6KOO6CcT8o2hiRTGjXnWmr6U+qlAlpdveTrjl?=
 =?us-ascii?Q?HyT3QItABMOd6Q7nTLbjlf6Mbjd4r0PwOsG1sMIX5Xh90Sj2javo/2r0GflI?=
 =?us-ascii?Q?Vw7yTnUWe35cuz8NXLSUpoCoX1ZcP3xqPMb4FQT82Odkhkn37XJEi/yl4Tnb?=
 =?us-ascii?Q?JQWqPr8iNXHHsA1jsGWLoaqgDSkZRA64jXkfwmxgYz+KhAh1o7lj5ZmNRjiO?=
 =?us-ascii?Q?eSRXJotRuZAbO2kQtgTHpvq5wvHMnktRTcrO7UeAQnHICCT/xAcqliwMo+xR?=
 =?us-ascii?Q?uRULLk+Rx7erHDsmCnc8Gbw7ecJCWQQIB6qNUyeWVSdYeMHcYUhNnPgdziyK?=
 =?us-ascii?Q?ZrucTJXZ72JnRPoAmPhAzjtJ9n9z7txmCpcqv70RI6G885LtD/nY9tNUE8Yo?=
 =?us-ascii?Q?hNCY/wszLd8C0D1KB3XC8oMFuCdaiScCOm5q/aUVh1yF+9o+lmF4vvHDS0Za?=
 =?us-ascii?Q?HKE+/nbJg83nWAMYugii/5it9OWkvPRmPdKkWqeoxRKuGOQ/cPJldYmM5mni?=
 =?us-ascii?Q?5y/Xjwc03ANVqZ7JcbxTJCf/VBePI8XAhMYdvArEnyHah37+Ch5QhHqpKyqw?=
 =?us-ascii?Q?I+VZrRHlxRBXsNw0foz6yPQjU2QdFGv/ADHxF/w+9DJtG7bmU0NQg0xCPfvG?=
 =?us-ascii?Q?DlpgeDiyN7tl92KIcjve4bjAN2mOY/Nnl3DQm44snpt7JFskJLo0LKrqGGXg?=
 =?us-ascii?Q?w1LGuNNqVEK7VG/uBJ8RMQczHD47ESsilGL7jkao+jpYCQjvIIQYRIK1eosY?=
 =?us-ascii?Q?S/Zcpq7UszHUxi8VyO4PXYVrbPgTwPfuO1HFlFKynsK5oT/zAKg8530XMysa?=
 =?us-ascii?Q?/BUuexffPT+WVTd//w1VSovDVezamZzC0me6AfYsaQC3LX2P0pieu0t3Bzim?=
 =?us-ascii?Q?idz76lZ8/WjPKju67BB+Jn/sEmwecTrzGGcSqnvsT4SZFXcozLsANGvzJxju?=
 =?us-ascii?Q?bHyP9gPraK8tenhB0xYLLoj00m+J3da+dL6jY55vxuip4NIqiL40byfEvwB4?=
 =?us-ascii?Q?/f+8zo4ReTKS0wVqxm+p/SJlihec/tOfBkJuzFlSU8JV5cbrHmP8WlpNVHJk?=
 =?us-ascii?Q?CYsE0t1LReKsaEvWgv2aX1NTYw9Joe9A4YMigf5RVj/cGDHGkJ+Na1n03evG?=
 =?us-ascii?Q?QtYcBI3479E2VIQmaj0EaHVQg4C5+gwN9gr2E7M6aMvd46zMUdROAXGYL0NS?=
 =?us-ascii?Q?Qg+pMPDg2GjPAKiq7GazQDBfiOCQlcEMQq6wllsHkpMgw32tn08KKLISiRG0?=
 =?us-ascii?Q?/c2Et/4DwPiduwWN/tvqTBIoi3tuPH6NC/e701y1PP/hnARrLNhan4y69AXe?=
 =?us-ascii?Q?hZXN/fe5fh1HyUl5o8HrRw0Ov2RrXblM5ikUOzULzpGN4jHEcNRGn4VyHu4X?=
 =?us-ascii?Q?9/2mrN9nCOs3Bzq2k/WFxZVytKA5ZNWXjbzBRwD5lDrZ38lLZY5v/WjDawVQ?=
 =?us-ascii?Q?TiY5ZtR8EYkFfP1kaaWr5f0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 30131cd7-7075-47e9-013b-08d99df29b01
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 11:19:15.8676
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4CAPSwfahMQ1HcGnCKBqEFN9wpGID5BNc2BwaJfAmRW4O7Nc1h0ZpgSrWTcyT9izxmfKuFGFooGYrUlnf34PTQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3391

On 26.10.2021 12:52, Roger Pau Monn=C3=A9 wrote:
> On Thu, Sep 30, 2021 at 10:52:20AM +0300, Oleksandr Andrushchenko wrote:
>> --- a/xen/drivers/vpci/header.c
>> +++ b/xen/drivers/vpci/header.c
>> @@ -451,6 +451,32 @@ static void cmd_write(const struct pci_dev *pdev, u=
nsigned int reg,
>>          pci_conf_write16(pdev->sbdf, reg, cmd);
>>  }
>> =20
>> +static void guest_cmd_write(const struct pci_dev *pdev, unsigned int re=
g,
>> +                            uint32_t cmd, void *data)
>> +{
>> +    /* TODO: Add proper emulation for all bits of the command register.=
 */
>> +
>> +    if ( (cmd & PCI_COMMAND_INTX_DISABLE) =3D=3D 0 )
>> +    {
>> +        /*
>> +         * Guest wants to enable INTx. It can't be enabled if:
>> +         *  - host has INTx disabled
>> +         *  - MSI/MSI-X enabled
>> +         */
>> +        if ( pdev->vpci->msi->enabled )
>> +            cmd |=3D PCI_COMMAND_INTX_DISABLE;
>> +        else
>> +        {
>> +            uint16_t current_cmd =3D pci_conf_read16(pdev->sbdf, reg);
>> +
>> +            if ( current_cmd & PCI_COMMAND_INTX_DISABLE )
>> +                cmd |=3D PCI_COMMAND_INTX_DISABLE;
>> +        }
>=20
> This last part should be Arm specific. On other architectures we
> likely want the guest to modify INTx disable in order to select the
> interrupt delivery mode for the device.

We cannot allow a guest to clear the bit when it has MSI / MSI-X
enabled - only one of the three is supposed to be active at a time.
(IOW similarly we cannot allow a guest to enable MSI / MSI-X when
the bit is clear.)

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:20:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:20:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220083.381188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrqB-0007CZ-HF; Tue, 02 Nov 2021 11:20:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220083.381188; Tue, 02 Nov 2021 11:20:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrqB-0007CS-EM; Tue, 02 Nov 2021 11:20:31 +0000
Received: by outflank-mailman (input) for mailman id 220083;
 Tue, 02 Nov 2021 11:20:30 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhrqA-0007CC-6m; Tue, 02 Nov 2021 11:20:30 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhrqA-0003h0-0Q; Tue, 02 Nov 2021 11:20:30 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhrq9-00050s-Nl; Tue, 02 Nov 2021 11:20:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhrq9-0007iO-NK; Tue, 02 Nov 2021 11:20:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2isw00rUx0rurn3epu+45+asSoef5C7R2bnyOWUOgSw=; b=uQ9QOpUb1iu75Sc0cus7x1GrMx
	PngT4l5v10Tv1KUlfLnnKjS5DhqlAMWaZmpFvU0qFQW10crP361oKs/E9m7xzwBqbDBeigQ74OnWy
	oL1MbX02JubdtyMS7JRtg2vRMjrB6gCfzfdEinaJ2WBrIoXRBtUnDqrQGwh+zsC/DeRo=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165982-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 165982: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-i386:xen-build:fail:regression
    qemu-mainline:build-i386-xsm:xen-build:fail:regression
    qemu-mainline:build-armhf:xen-build:fail:regression
    qemu-mainline:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-amd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-i386:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-coresched-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:build-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:build-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-intel:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=af531756d25541a1b3b3d9a14e72e7fedd941a2e
X-Osstest-Versions-That:
    qemuu=50352cce138ef3b30c1cda28a4df68fff5da3202
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Nov 2021 11:20:29 +0000

flight 165982 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165982/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386                    6 xen-build                fail REGR. vs. 165682
 build-i386-xsm                6 xen-build                fail REGR. vs. 165682
 build-armhf                   6 xen-build                fail REGR. vs. 165682

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-cubietruck  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-amd  1 build-check(1)               blocked n/a
 test-amd64-i386-pair          1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-i386  1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-amd64  1 build-check(1)               blocked  n/a
 test-amd64-coresched-i386-xl  1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 build-i386-libvirt            1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-intel  1 build-check(1)             blocked n/a
 test-amd64-i386-xl            1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-pvshim     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64  1 build-check(1)         blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1)  blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-i386-xl-qemuu-ovmf-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-win7-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-ws16-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-shadow     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-vhd        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165682
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                af531756d25541a1b3b3d9a14e72e7fedd941a2e
baseline version:
 qemuu                50352cce138ef3b30c1cda28a4df68fff5da3202

Last test of basis   165682  2021-10-19 21:09:14 Z   13 days
Failing since        165694  2021-10-20 18:09:12 Z   12 days   35 attempts
Testing same since   165952  2021-10-31 00:39:26 Z    2 days    9 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexey Baturo <baturo.alexey@gmail.com>
  Alexey Baturo <space.monkey.delivers@gmail.com>
  Alistair Francis <alistair.francis@wdc.com>
  Anatoly Parshintsev <kupokupokupopo@gmail.com>
  Andrew Jones <drjones@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  BALATON Zoltan <balaton@eik.bme.hu>
  Bin Meng <bmeng.cn@gmail.com>
  Chenyi Qiang <chenyi.qiang@intel.com>
  Chih-Min Chao <chihmin.chao@sifive.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cédric Le Goater <clg@kaod.org>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  David Gibson <david@gibson.dropbear.id.au>
  David Hildenbrand <david@redhat.com>
  Dr. David Alan Gilbert <dgilbert@redhat.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Frank Chang <frank.chang@sifive.com>
  Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
  Gavin Shan <gshan@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Greg Kurz <groug@kaod.org>
  Gustavo Romero <gromero@linux.ibm.com>
  Igor Mammedov <imammedo@redhat.com>
  Jason Wang <jasowang@redhat.com>
  John Snow <jsnow@redhat.com>
  John Wang <wangzhiqiang02@inspur.com>
  John Wang <wangzq.jn@gmail.com>
  Jose Martins <josemartins90@gmail.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Luc Michel <lmichel@kalray.eu>
  Luis Pires <luis.pires@eldorado.org.br>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Mathieu Poirier <mathieu.poirier@linaro.org>
  Michael S. Tsirkin <mst@redhat.com>
  Mingwang Li <limingwang@huawei.com>
  Oğuz Ersen <oguzersen@protonmail.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Krempa <pkrempa@redhat.com>
  Philipp Tomsich <philipp.tomsich@vrull.eu>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Shuuichirou Ishii <ishii.shuuichir@fujitsu.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  Tong Ho <tong.ho@xilinx.com>
  Travis Geiselbrecht <travisg@gmail.com>
  Vincent Palatin <vpalatin@rivosinc.com>
  Vivek Goyal <vgoyal@redhat.com>
  Xueming Li <xuemingl@nvidia.com>
  Yanan Wang <wangyanan55@huawei.com>
  Yifei Jiang <jiangyifei@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               fail    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   fail    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           blocked 
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-i386-xl                                           blocked 
 test-amd64-coresched-i386-xl                                 blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     blocked 
 test-amd64-i386-freebsd10-amd64                              blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          blocked 
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-armhf-armhf-xl-cubietruck                               blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         blocked 
 test-amd64-i386-freebsd10-i386                               blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         blocked 
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 blocked 
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    blocked 
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              blocked 
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      blocked 
 test-amd64-i386-xl-vhd                                       blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 6076 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:20:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:20:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220086.381203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrqV-0007gd-2V; Tue, 02 Nov 2021 11:20:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220086.381203; Tue, 02 Nov 2021 11:20:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrqU-0007gW-Vd; Tue, 02 Nov 2021 11:20:50 +0000
Received: by outflank-mailman (input) for mailman id 220086;
 Tue, 02 Nov 2021 11:20:49 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TaM4=PV=gmail.com=andr2000@srs-us1.protection.inumbo.net>)
 id 1mhrqT-0007Zk-DH
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:20:49 +0000
Received: from mail-ed1-x531.google.com (unknown [2a00:1450:4864:20::531])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id cd5d33b0-347c-461d-959a-97eb106900d3;
 Tue, 02 Nov 2021 11:20:44 +0000 (UTC)
Received: by mail-ed1-x531.google.com with SMTP id w1so20794365edd.10
 for <xen-devel@lists.xenproject.org>; Tue, 02 Nov 2021 04:20:44 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id b2sm8107480ejj.124.2021.11.02.04.20.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Nov 2021 04:20:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd5d33b0-347c-461d-959a-97eb106900d3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=/Bk39DMTk2FXQwoiWFM450b+7g+0Wcb+kzWeUVJoYG8=;
        b=b9BUwypTBpyF+2iQdP7QO5dyAZ74fMgsHw+8AZG6B/NheRXBe1F2OlSWufar2omS0T
         2ofoXudprP+HphAONPoW0ERb4B0NH9lrzDqBAf1InwjwocgbbqahogO7MlQPBre/v/VV
         fhRuWbK3gPrjl/CLZE4NSgA0efXx9rpGqngaJvhkvLxKFD+xewG4F4hRq18byx2tPyS3
         zomnvWGQL09zlvW0Jlp7upwed3sScItYYBCS6HIx8ewCgnweiLY7UjNxuiLDbqoegWaT
         QitpV+GjagCbtaQLUpdLysPDXKjRuZ4/f73O0RJ5mKLyT1p30G3rmg8l2sA4Ncv+XQ6n
         DITA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=/Bk39DMTk2FXQwoiWFM450b+7g+0Wcb+kzWeUVJoYG8=;
        b=HZYZ57imQaKHXfiLekWy2lZArluIjaLOf8fLb8JDX4ZAtBFTIJDbL005WqVzKNrNmC
         ddc3ggpnIPYKHSYTWHP+axJ2NjIi0nSCCdO1RhDhGX+h/AZ5sbIwyzvZEAZajECy9XOY
         YtamsJUbnatgYOhPvcWIsAx61GO21ulAL11BkDOO/iDTvmHEaEIDj5cv0HpCqx5C6non
         Q2LV19wngIQO1CRm4+ZsaKEduWD9tB7vS46En5HMH64v97uNvKRToSgdme5aIRZ2mFK9
         HBDrSnFyGDP/otcskIOQJfaPwmMIOwVsx5bfIivSmbsYUuvqqWccbkfpOaZ8QZn/VXur
         WTpA==
X-Gm-Message-State: AOAM530glejA9oNFc2qAyLDukft4V96kCol5sa6CcOhw9g5yzZ6DOhWA
	9H1O1cs1lrOJjRJ2ncuii5HWIf20wLGL2w==
X-Google-Smtp-Source: ABdhPJy97tx0v6AhTvxHzvJg9/7CyJTxjGGYYCc46mNOyY+e2lrhhmnyy48CV+pCaJ+0q3H4ROLivw==
X-Received: by 2002:a05:6402:47:: with SMTP id f7mr50453296edu.52.1635852043453;
        Tue, 02 Nov 2021 04:20:43 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	iwj@xenproject.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH-4.16 v2] xen/arm: fix SBDF calculation for vPCI MMIO handlers
Date: Tue,  2 Nov 2021 13:20:41 +0200
Message-Id: <20211102112041.551369-1-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

While in vPCI MMIO trap handlers for the guest PCI host bridge it is not
enough for SBDF translation to simply call VPCI_ECAM_BDF(info->gpa) as
the base address may not be aligned in the way that the translation
always work. If not adjusted with respect to the base address it may not be
able to properly convert SBDF.
Fix this by adjusting the gpa with respect to the host bridge base address
in a way as it is done for x86.

Please note, that this change is not strictly required given the current
value of GUEST_VPCI_ECAM_BASE which has bits 0 to 27 clear, but could cause
issues if such value is changed, or when handlers for dom0 ECAM
regions are added as those will be mapped over existing hardware
regions that could use non-aligned base addresses.

Fixes: d59168dc05a5 ("xen/arm: Enable the existing x86 virtual PCI support for ARM")

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Since v1:
 - updated commit message (Roger)

This patch aims for 4.16 release.
Benefits:
Fix potential bug and clear the way for further PCI passthrough
development.
Risks:
None as the change doesn't change the behaviour of the current code,
but brings clarity into SBDF calculation.
---
 xen/arch/arm/vpci.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 8f40a0dec6d2..23f45386f4b3 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -24,7 +24,7 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
     unsigned long data;
 
     /* We ignore segment part and always handle segment 0 */
-    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa);
+    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
 
     if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
                         1U << info->dabt.size, &data) )
@@ -44,7 +44,7 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
     pci_sbdf_t sbdf;
 
     /* We ignore segment part and always handle segment 0 */
-    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa);
+    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
 
     return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                            1U << info->dabt.size, r);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:21:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:21:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220098.381214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrr0-0008OE-Bu; Tue, 02 Nov 2021 11:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220098.381214; Tue, 02 Nov 2021 11:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrr0-0008O7-8A; Tue, 02 Nov 2021 11:21:22 +0000
Received: by outflank-mailman (input) for mailman id 220098;
 Tue, 02 Nov 2021 11:21:21 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhrqz-0008Nu-E5
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:21:21 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 0113dd06-3bcf-11ec-8555-12813bfff9fa;
 Tue, 02 Nov 2021 11:21:20 +0000 (UTC)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A2AJpM1014010;
 Tue, 2 Nov 2021 11:21:18 GMT
Received: from eur03-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2057.outbound.protection.outlook.com [104.47.9.57])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c33fxg98q-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 11:21:17 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5011.eurprd03.prod.outlook.com (2603:10a6:208:101::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Tue, 2 Nov
 2021 11:21:13 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 11:21:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0113dd06-3bcf-11ec-8555-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=E2FgtdLSYYmqLNKmjGJYeijuhQEqgnb8BLmX1tqw1dXra2fen02acPAdYKoEhwI7aOccDrpOTtHecX7+FvksG3Ts0oKVPlyS4EhD0V4qilH7ST/2YEDzZsNxfNYi6ZQWJY02oqS22psH3vbCi6gvs6xnOXh3qcho/64tytGdxTfUkR0/HvjxcWtGr4XmAi15Nbay9snU9pnBfBpkfH92c7iHiljipqeh0NTrqLe31aNQcXqEpTQRS+3LlUxASsMjvnbvEduv4klNMhBX5tmG0IFCWB6Xc9HWFgOESPkmFWefIuu4s7Lne3w4KT32EipvNvdzXJ6A1CGQpXst/zb5tw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IXrkdrj0oNxMbTmbzQlxiA5CYcESU/otI8QXoU8Ip5U=;
 b=AjD9wakoMtCrrM63QrboYTUlmcEnXNt9mUPE2bCbANaVL3UH6RkVgERR15xhVX0zFjwGq6LwFulRpAoxFiD7WXUZSbkCe0gbp0ey7/FaEvrLoSLspziSz1EMMZ5rgIp5pAkI1JQQ4dZWUu7sIWjvigAY6kTuJiAXS/x5W17fE2mRPz01NPRveAkufAxuqwTH8WyZ97xQ2FQoBDeXGJeXBa3vG9vXf689TB9Dwh+6/tihf0BNqW0vjjqJOZn7w1tip4zBspHy2e4/kUO0mGGKSn4MAVzzxMmvtl+5AerjQ23t2pqh8+/9qw/RiueK08Dd6L4kbU/UmNA3M49RnJP/WQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IXrkdrj0oNxMbTmbzQlxiA5CYcESU/otI8QXoU8Ip5U=;
 b=dK4Y2JtEcOYCZ6jQWKRcNFvSwgZgMxjoKF4v0VUtu1+jmvDFOQKqBi5eayMxd1P+ZQfDK5YzSHFnU+ZpeHFb8smlQJhkIw2Ltlo/Y23mWT6c5ng4PkB70h1E/APFb0kivtxKAyR7jSl6NTy5xWOtYgwQXHHBV/1zD2YFE1NeoLlZ+7td+0QTCyWykfO/1Ke7Kv7/a4Q51X9EWo32hptbABqe8l2qa8m0VX6UGLCresZN9IKy5yxKXbAUmWmarMudyA05f3OzCEoMkVIo2O0X6cWy3DifX/fDfS/pMKQR72Yl9vExBByFeKlqsADyVy0DGWgYJHZN+Wf+cfPufhLRnQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Ian Jackson <iwj@xenproject.org>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Bertrand
 Marquis <bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers [and
 2 more messages]
Thread-Topic: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
 [and 2 more messages]
Thread-Index: AQHXzwrVBVHykfdvRUOfqNSizjfhO6vvKqAAgACqWoCAACYdAIAAHlCA
Date: Tue, 2 Nov 2021 11:21:13 +0000
Message-ID: <2ea412d2-0ed2-f9eb-ee56-373bd41cb4b5@epam.com>
References: <20211027082533.1406015-1-andr2000@gmail.com>
 <cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
 <d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
 <65886734-7333-4469-fcc1-6916db708f13@xen.org>
 <b6bb02b6-6358-b5e0-1b80-7819aadabe10@epam.com>
 <6d8f1061-7aec-2c1a-aaf4-c30440c2797a@xen.org>
 <38da2edd-06a2-63d0-51ad-1284272c8da5@epam.com>
 <a74b52fb-6514-4187-17fe-b63236efa0ce@xen.org>
 <24954.51153.588540.850154@mariner.uk.xensource.com>
 <d7e4ae66-f648-e18e-79c8-fae6eb896f00@xen.org>
 <YXkU+DKYmvwo+kak@Air-de-Roger>
 <0bbe4d1d-421d-e816-42aa-f43581902a02@epam.com>
 <24953.34635.645112.279110@mariner.uk.xensource.com>
 <24959.49313.936961.936820@mariner.uk.xensource.com>
 <alpine.DEB.2.21.2111011402320.20134@sstabellini-ThinkPad-T480s>
 <a14ce7fd-c3d0-0777-f0c9-5f7fad901452@epam.com>
 <61c76ed6-e9f2-f4ec-608c-d84bd0e73258@xen.org>
In-Reply-To: <61c76ed6-e9f2-f4ec-608c-d84bd0e73258@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 122148ee-7647-4ea9-e9f1-08d99df2e14c
x-ms-traffictypediagnostic: AM0PR03MB5011:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB50118379161216EFB87DEC7EE78B9@AM0PR03MB5011.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 WKNw6bHDrYJ40+Ew8kFaR6jPl8e21iU6sb5hdoNmIRJZdyNdyyqrsDI/t0/XV5S0FB02EERtx2imkudFpM0et5uSbh7m1tZpYCz4oR3o3619wqEGr1r6t1v5BiFq+xkvgvWNhKjilV528/fYR6khOqlMgw2Mq6QCIU9iBrTjc4CAJe547XZWAlDRRI+Bo3PoXuLiz4EDHN1tjOOB49bFl23dTRlzuCiwh8MvLiadTQukj5PLke3nlJT6WEKh4GIkKIGalD4BDvihctfdkos3XYgPy97IEBPXqntmMoKgAxQWooP/MB8mMxjJP28hFnUMOgWuksX483oFz2nW29UirC1GXducsy4L8QvgfToc0yXnSXYAM7GPp38jVDVAmRn7VNX6dLiES2NKRNfFH+W7AAsNIBanRBl5ymAil7kE8d4d8WZC3oq8tstbi2ms07ztVNHxSng/GTVTiOW1DmH2dbpCpUzAnyX1X795IzcP2MMoIrGcBc0TJVDumRVms/NTI54b/2F1Ed5ES/sPYS98C+z4DWCScNTHbfJmVSwgjFAsERfKSykOZnih6YAmd5cBEuLP5aIMvbOcVTaIaW7wqwSP2p8RahA0kxmT6LE8kpmtW3mTU5BWwIhSMv30B4SNPcTtav8QCKxhRvaZsElxYkSXnqEUil0qNGBw4NWJ5ubsCSEj2g+IZS+0wpj0Eb5Dx/S3BfaKYsPJiNVZ6IhwmLdWgjVbCEet6qQ6gVW5h7CQiFifU29V0pFwOEPHINIx
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6486002)(2906002)(54906003)(36756003)(66476007)(71200400001)(83380400001)(6512007)(38070700005)(31686004)(31696002)(26005)(107886003)(38100700002)(2616005)(15650500001)(76116006)(91956017)(66556008)(122000001)(66446008)(8676002)(4326008)(86362001)(5660300002)(8936002)(110136005)(316002)(64756008)(53546011)(186003)(66946007)(508600001)(6506007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?MHBzY1Y1MmI1bG1SL25GUU9VT0NLMzUrd3g4V00walNqMGwzaXN6QU01bzNJ?=
 =?utf-8?B?bWxzekNXZUhlNWFFSXRzZVBsbXBqV3h4SVoxdWlCVC9iQ2EyaThwT2VZckti?=
 =?utf-8?B?VTI5bUtIcGF0M2RvRm9yamxFTG5JMFd5UFRPdGZPdjlhMGJGU2E1ZkNOTVVH?=
 =?utf-8?B?VDlVRjd1L2kvd3ptSnBtVjFtUllLUkhzK1FtbWRpUDIwY29rTHo5c1UwQ21J?=
 =?utf-8?B?TWgzYk9LVHN1UEhFakV4T3FoZFdRVkw3OElyaExYNFNGUWFZaHd0clNpVlAx?=
 =?utf-8?B?NmFmQzZ0YXp5QldoakhIdkx0YTJYVnFraTV5NlU4bXpEMSswVHdlYUxnWWtC?=
 =?utf-8?B?TU1tc3YwaDZQdlAxSndmQVhscVlidUUwV1BaOWpWNElqZ1ovVWN0U1IrMThp?=
 =?utf-8?B?WWlZNFJyMzREMEhWWnFHMjlmWmtyY1NXZE80QjY5RnJzaHJaQTZUM3VWa3pV?=
 =?utf-8?B?djBCSXBod1ZweXgwbEZ3amlYR0xaSlRBMi8yWGlhRklHWXh2NldJUmlaTmdJ?=
 =?utf-8?B?MWEyK2NGRUthOVgrcUY2QlExUlZCRnFqVVJZUmlJb3FRbUhLVWV0aTQ4Sklx?=
 =?utf-8?B?dHFsMVV6OUd3ZUQ4aFhuWUJrTjlxRDJ2VVdObUNUd1NjMG1vTmRRT0IwTUZJ?=
 =?utf-8?B?ek11dHVjVHZ1MTNZWWJHemp3MGNZdWtvTTBBSjE5YVpRTGN0UjZGbUdBUzJw?=
 =?utf-8?B?dXRkck1SSEFVbTB5eFpFYVdLOTRNY2k1NkdRNHdHaUxUYjdwTTBwOU94d2U3?=
 =?utf-8?B?Yi9uMDRVYnZwSEpnVE4zdm52anU4OG43ZmpzV3FDTms1U0JGdXgrQXBGNUdI?=
 =?utf-8?B?aEdVRlFkT3l5ZkFpNDh4d01obGFMaXJXaWJPQXIvdXlSMEhtOXdHbWtEanU0?=
 =?utf-8?B?M1kvL3VVZSsrc1p1NVFMU3hrRllTeDg2aEZ5Z29GaGlicGpEV2JCeHBkbmg5?=
 =?utf-8?B?ZUswN01HT3JoZnhTcm5rS0pDb214ckkxeEh5cTBlYU9hM2MzblJhelRqMDJz?=
 =?utf-8?B?bGhPcklQVXN5cWhXckcvT0JzNjA5VjRkUFZMbWFXSW85S2RXM0tKRmQzQmV2?=
 =?utf-8?B?SnhJZHlweGtHS3doejFESU1rWm9DOExKVkZnbmRYRG8wZ0FqTDJ5VmRYZmxJ?=
 =?utf-8?B?SGlLRTB1TDVqZ1YvbDE0cDVvRmhYQ3A1WmtPZmpNM1J6elZjcjNqdDAvTWlQ?=
 =?utf-8?B?RTloNXk4WWN4a254M1hrbTRBS215UnBWUFdqTEkyUmRPdDUyZHRpMzRESWNr?=
 =?utf-8?B?TnpFcFNwWmVwUC80RndJNXFPK1FpVWNZU2I4N3RPbzhFSG5ncDlualg5Zm4r?=
 =?utf-8?B?NXdzVzJBbHBpeXExbmcyQUc3VzZUZXZFV2owa2lMbHlaVjFybkdLeWplVlRq?=
 =?utf-8?B?cXhKTXFWVzhwc1I2azEwUDVEUnRtdGpydGFwV3kzSERlTUcyS1hscThUcEZI?=
 =?utf-8?B?dFpvMjRXd3VodXJXcXdvby9YZmNBbXlGNkFISEllTytoL0lha2pBWENUTW5R?=
 =?utf-8?B?TVBlekpqcXkyY3BaVDkrS0tSWnJFK2NGVTVZME5GOHB5V3VUMUtQanNSYUox?=
 =?utf-8?B?aGM4V3p4QUFiNndjS2dSMVByWTl5cXJiSVF5c3BXdEFudStIdlNEN0tsVEdT?=
 =?utf-8?B?RG5JS3RiR2YxeEM2dHZWRTFvZzVXRjBhQnJFTVZtd25WaUtDaGFNSjcrV25z?=
 =?utf-8?B?VTVrdEpDOE9IZm1ndWdDZ3FCTFl5ZnVIZ2JENjBhNTN5VmJ3d3JRMUxQZUFq?=
 =?utf-8?B?UTRTVFlrbWhJaktRQWl5elllVGliMmtjWk1KSGRBbEV6L0dGUW9KS0k5eDFU?=
 =?utf-8?B?WVV6c0ZBSnBpSUJTSFZpYnpHQ0llcWEwd1RkRVFRUlJDdVg2OGRuVVNSYk9V?=
 =?utf-8?B?TGxSZHZDMlZIUDN0ak5VSzRzK2ExZE5nK0ZRYmU1NThucStid0JmYkVlRS9h?=
 =?utf-8?B?dW1GVWpJU1YvVHo3WG92K3BqM2pSVlhOV1V3ZE0wUnhjS2pod2ZGVE5Kano0?=
 =?utf-8?B?eGhXVXl1Y05YdEg0L3ZtaDJZZ3FQODQ5bHJKWkFwbkNhWmVqa2JRSTc1UE4z?=
 =?utf-8?B?elkrMzYrYjZqc3FDaE5ZSWhNWnV1MGlpMXZneXJHTzFqS291dk41Rzl0R1V3?=
 =?utf-8?B?N0EzbGlybUNKd3Z0VGFNeWFsYy9Hb3p1TFBEdXE5aVdoWHIySFhLY2hEamNa?=
 =?utf-8?B?VGI5VHZSZERrVitjeXJrSG5NZ1I2VUJGaHNySnlicEttM3VtbWN2VGcyOGJM?=
 =?utf-8?B?bHNDWFhJcnR1NnNKYmdoR2RDenpTMHVRaDk2WmlYSXU2RnBHMld1bk12TUdw?=
 =?utf-8?B?aTM5dkRxQTMrNDQ1cTAzQzZySnlrT2lwUE1WOXpyL2I0L0xjbmo3UT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2D79B721F3DDC6458250A67CC727FBB5@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 122148ee-7647-4ea9-e9f1-08d99df2e14c
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 11:21:13.6250
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: wCOleA/6pdg2zJKM4jpoeB0XEPvqlrlXENVWmc86NSwuT/WpNFu79PKO3pJVJGimGYqMZeA2m9xucZ3HE4j1wI2vrA1GFq5RuDPNbyKnEhqMFiyb4f9mUcNDrz8imjh8
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5011
X-Proofpoint-GUID: kQ4aVs5o007xCa3Ws2Vs-yqAvBrPG6C1
X-Proofpoint-ORIG-GUID: kQ4aVs5o007xCa3Ws2Vs-yqAvBrPG6C1
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_07,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 mlxlogscore=999 clxscore=1015 spamscore=0 bulkscore=0 adultscore=0
 impostorscore=0 priorityscore=1501 mlxscore=0 suspectscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020067

DQoNCk9uIDAyLjExLjIxIDExOjMyLCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+IEhpIE9sZWtzYW5k
ciwNCj4NCj4gT24gMDIvMTEvMjAyMSAwNzoxNiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3Jv
dGU6DQo+Pg0KPj4NCj4+IE9uIDAxLjExLjIxIDIzOjA2LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3Jv
dGU6DQo+Pj4gT24gTW9uLCAxIE5vdiAyMDIxLCBJYW4gSmFja3NvbiB3cm90ZToNCj4+Pj4gSnVs
aWVuIEdyYWxsIHdyaXRlcyAoIlJlOiBbUEFUQ0hdIHhlbi9hcm06IGZpeCBTQkRGIGNhbGN1bGF0
aW9uIGZvciB2UENJIE1NSU8gaGFuZGxlcnMiKToNCj4+Pj4+IE9uIDI4LzEwLzIwMjEgMTY6NTQs
IElhbiBKYWNrc29uIHdyb3RlOg0KPj4+Pj4+IFRoZXJlIGFyZSBhIG51bWJlciBvZiBwYXRjaGVz
IHRoYXQgSSdtIGdldHRpbmcgQ0MnZCBvbiByZWxhdGVkIHRvIEFSTQ0KPj4+Pj4+IGFuZCB2cGNp
IChhY2NvcmRpbmcgdG8gdGhlIFN1YmplY3QpLsKgIEFyZSB0aGVzZSB0YXJnZXRlZCBmb3IgNC4x
NiA/DQo+Pj4+Pj4gTW9zdCBvZiB0aGVtIGRvbid0IGhhdmUgNC4xNiBTdWJqZWN0IHRhZ3MuDQo+
Pj4+PiBPbGVrc2FuZHIgd2FudHMgdGhpcyBwYXRjaCB0byBiZSBpbmNsdWRlZCBmb3IgNC4xNiBi
dXQgZm9yZ290IHRvIHRhZyBpdA0KPj4+Pj4gcHJvcGVybHkuDQo+Pj4+IE9oIHllcy7CoCBIb3dl
dmVyLA0KPj4+Pg0KPj4+PiAxLiBJIGFsc28gd3JvdGUgdGhpczoNCj4+Pj4NCj4+Pj4+PiBJIGFt
IGZpbmRpbmcgaXQgZGlmZmljdWx0IHRvIHNlZSB0aGUgd29vZCBmb3IgdGhlIHRyZWVzLg0KPj4+
Pj4+IEl0IHdvdWxkIGJlIHJlYWxseSBoZWxwZnVsIGlmIHRoZXNlIHZwY2kgZml4ZXMgd2VyZSBj
b2xsZWN0ZWQNCj4+Pj4+PiB0b2dldGhlciBpbnRvIGEgc2VyaWVzLg0KPj4+PiBDYW4gc29tZW9u
ZSBwbGVhc2UgY29uZmlybSB3aGV0aGVyIHRoaXMgaXMgdGhlIG9ubHkgdnBjaS1yZWxhdGVkIHBh
dGNoDQo+Pj4+IHRoYXQgb3VnaHQgdG8gYmUgb24gbXkgcmFkYXIgZm9yIDQuMTYgPw0KPj4+Pg0K
Pj4+PiAyLiBJIGhhdmUgbm90IGhhZCBhIHJlcGx5IHRvIG15IHF1ZXN0aW9uIG9uIFdlZG5lc2Rh
eSBpbg0KPj4+PiA8MjQ5NTMuMzQ2MzUuNjQ1MTEyLjI3OTExMEBtYXJpbmVyLnVrLnhlbnNvdXJj
ZS5jb20+Og0KPj4+Pg0KPj4+PiDCoMKgwqAgVW0sIGNhbiB5b3UgZXhwbGFpbiB3aGF0IHRoZSBw
cmFjdGljYWwgaW1wYWN0IGlzIG9mIG5vdCB0YWtpbmcgdGhpcw0KPj4+PiDCoMKgwqAgcGF0Y2gg
Zm9yIDQuMTYgP8KgIEFzIEkgdW5kZXJzdGFuZCBpdCB2cGNpIGZvciBBUk0gaXMgbm9uLWZ1bmN0
aW9uYWwgaW4NCj4+Pj4gwqDCoMKgIDQuMTYgYW5kIHRoaXMgaXMgbm90IGV4cGVjdGVkIHRvIGNo
YW5nZSA/wqAgU28gdGhlcmUgd291bGQgYmUgbm8NCj4+Pj4gwqDCoMKgIGJlbmVmaXQgdG8gdXNl
cnMsIGFuZCB0YWtpbmcgdGhlIHBhdGNoIHdvdWxkIGFkZCBzbWFsbCBidXQgbm9uemVybw0KPj4+
PiDCoMKgwqAgcmlzayA/DQo+Pj4+DQo+Pj4+IEkgbmVlZCB0aGlzIGluZm9ybWF0aW9uIHRvIGRl
Y2lkZSB3aGV0aGVyIGEgcmVsZWFzZS1hY2sgaXMNCj4+Pj4gYXBwcm9wcmlhdGUuDQo+Pj4+DQo+
Pj4+IE5vdGUgdGhhdCB3ZSBhcmUgaW4gY29kZSBmcmVlemUgc28gYWxsIHBhdGNoZXMsIGluY2x1
ZGluZyBidWdmaXhlcywNCj4+Pj4gbmVlZCBteSBhY2suDQo+Pj4gSGkgSWFuLA0KPj4+DQo+Pj4g
VGhpcyBwYXRjaCBbMV0gaXMgYSBzdHJhaWdodGZvcndhcmQgMiBsaW5lcyBmaXggZm9yIHZwY2kg
b24gQVJNLsKgIFRoZXJlDQo+Pj4gaXMgbm8gcmlzayBmb3IgdGhlIHJlbGVhc2UgYXMgdGhlIHNv
dXJjZSBmaWxlIGFmZmVjdGVkIG9ubHkgYnVpbGRzIHdoZW4NCj4+PiBDT05GSUdfSEFTX1ZQQ0kg
aXMgZW5hYmxlZCwgYW5kIGl0IGlzIGN1cnJlbnRseSBkaXNhYmxlZCBvbiBBUk0uDQo+Pj4NCj4+
PiBBdCB0aGUgc2FtZSB0aW1lLCBhcyB3ZSBrbm93IHZwY2kgaXMgbm90IGNvbXBsZXRlIGluIDQu
MTYgYW55d2F5LCBzbyB0aGUNCj4+PiBjb3VudGVyIGFyZ3VtZW50IGlzIHRoYXQgd2UgZG9uJ3Qg
bmVlZCB0byBmaXggaXQuDQo+Pj4NCj4+PiBHaXZlbiBob3cgdHJpdmlhbCB0aGUgZml4IGlzLCBh
bmQgdGhhdCBpdCBjYW5ub3QgYnJlYWsgdGhlIGJ1aWxkIG9yDQo+Pj4gcnVudGltZSwgSSB3b3Vs
ZCB0YWtlIGl0Lg0KPj4gVGhhbmsgeW91LA0KPj4gSSBjYW4gcmUtc2VuZCB0aGUgcGF0Y2ggd2l0
aCB0aGUgdXBkYXRlZCBjb21taXQgbWVzc2FnZSAoSnVsaWVuKSwNCj4+IGJ1dCBJIHN0aWxsIGhh
dmUgbm8gUi1iJ3MgZm9yIHRoZSBwYXRjaCwgc28gbm90IHN1cmUgaWYgaXQgaXMgd29ydGggaXQN
Cj4NCj4gSSBjYW4ndCBzcGVhayBmb3IgdGhlIG90aGVycy4gSW4gbXkgY2FzZSwgSSBkaWRuJ3Qg
Z2l2ZSBteSByZXZpZXdlZC1ieSBiZWNhdXNlIHRoZSBjb21taXQgbWVzc2FnZSBuZWVkcyB0byBi
ZSB1cGRhdGVkLiBJZiB5b3UgcmVzZW5kLCBJIHdpbGwgaGF2ZSBhbm90aGVyIGxvb2suDQpTdXJl
DQo+DQo+IENoZWVycywNCj4NClRoYW5rcywNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:21:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:21:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220100.381224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrrI-0000Ro-KH; Tue, 02 Nov 2021 11:21:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220100.381224; Tue, 02 Nov 2021 11:21:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhrrI-0000RB-Gp; Tue, 02 Nov 2021 11:21:40 +0000
Received: by outflank-mailman (input) for mailman id 220100;
 Tue, 02 Nov 2021 11:21:39 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hRh8=PV=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhrrH-0000Pp-NE
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:21:39 +0000
Received: from smtp-out2.suse.de (unknown [195.135.220.29])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 0b6e7631-3bcf-11ec-8555-12813bfff9fa;
 Tue, 02 Nov 2021 11:21:38 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 824B01FD4C;
 Tue,  2 Nov 2021 11:21:37 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 43FF313C1F;
 Tue,  2 Nov 2021 11:21:37 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id tkoWD0EfgWHYQwAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 02 Nov 2021 11:21:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b6e7631-3bcf-11ec-8555-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635852097; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=8qkuYdPbxJJCn8T+kZTT7jMsYYuaNY/gO0VcP9zZQ7M=;
	b=XLYwRg6irYhvoRwF/D80R39vX0ESlhLgpTR9nZ1ZnQDlEMMXO8wEGaozBXHwY2Xh8BRwT/
	yqDKFSQGeQvmHx///NGIsH+L4SK0X+HsN79G07Obprg4tXcQuZ+25EEplR7Mp+8nR/ICi7
	G1kYyi3zOvnHgtM7KFNQ32hzpiyUWDA=
Subject: Re: [PATCH v2 07/15] xen: generate hypercall interface related code
To: Michal Orzel <michal.orzel@arm.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-8-jgross@suse.com>
 <26bf3337-df7a-be55-db3d-bceaf1fb2acd@arm.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <310413a7-b7b2-6e48-6ea9-34c741206863@suse.com>
Date: Tue, 2 Nov 2021 12:21:36 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <26bf3337-df7a-be55-db3d-bceaf1fb2acd@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="qnNXxwkUF1CbOm02yfln2ATx7VJzllfNP"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--qnNXxwkUF1CbOm02yfln2ATx7VJzllfNP
Content-Type: multipart/mixed; boundary="1MkQJsDvsmjrZOa4OwsqLzCNuDnfFccMQ";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Michal Orzel <michal.orzel@arm.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Message-ID: <310413a7-b7b2-6e48-6ea9-34c741206863@suse.com>
Subject: Re: [PATCH v2 07/15] xen: generate hypercall interface related code
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-8-jgross@suse.com>
 <26bf3337-df7a-be55-db3d-bceaf1fb2acd@arm.com>
In-Reply-To: <26bf3337-df7a-be55-db3d-bceaf1fb2acd@arm.com>

--1MkQJsDvsmjrZOa4OwsqLzCNuDnfFccMQ
Content-Type: multipart/mixed;
 boundary="------------5C4AC0C89406005337906727"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------5C4AC0C89406005337906727
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 02.11.21 11:43, Michal Orzel wrote:
> Hi Juergen,
>=20
> On 01.11.2021 16:20, Juergen Gross wrote:
>> Instead of repeating similar data multiple times use a single source
>> file and a generator script for producing prototypes and call sequence=
s
>> of the hypercalls.
>>
>> As the script already knows the number of parameters used add generati=
ng
>> a macro for populating an array with the number of parameters per
>> hypercall.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>

=2E..

>> +    # Generate call sequences and args array contents
>> +    for (ca in caller) {
>> +        if (caller[ca] !=3D 1)
>> +            continue;
>> +        for (pl =3D 1; pl <=3D n_prios[ca]; pl++)
>> +            p_list[pl] =3D prio_list[ca, pl];
>> +        asort(p_list, p_list, "@val_num_asc");
>=20
> Just to let you know:
> asort is a gawk built-in. I was trying to build your changes on my aarc=
h64 chroot environment.
> I did not have gawk installed and I got an error when building xen:
>=20
> make[4]: Leaving directory '/home/micorz01/xen_main/xen/include'
>    GEN     include/xen/hypercall-defs.h
> awk: scripts/gen_hypercall.awk: line 308: function asort never defined
> Makefile:477: recipe for target 'include/xen/hypercall-defs.h' failed
>=20
> During configure step I did not get any failure that gawk is not instal=
led.
> If you are making use of gawk built-ins, shouldn't configure test for i=
t?

I just checked again and I think this is the only gawk specific
feature I'm using.

I'll replace asort() with a manual sort in order to drop the gawk
dependency.

Thanks for the notice,


Juergen

--------------5C4AC0C89406005337906727
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------5C4AC0C89406005337906727--

--1MkQJsDvsmjrZOa4OwsqLzCNuDnfFccMQ--

--qnNXxwkUF1CbOm02yfln2ATx7VJzllfNP
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGBH0AFAwAAAAAACgkQsN6d1ii/Ey8f
Igf8DJHHcJH1QUV6pPQqU3Pxv6R+P2gqPuEg4kpzpYBgHO+DkmEXO5ttDrSL76MtG0lw7hypObNJ
rVOgrbwAdaPYJORnllXTvq2x6Er1Nm9bpfE0ykVD0+z0G5ubsPKvGxsb/sKp59HAor/5w8u3hNWZ
CLhqtuCKMBHu4xbhAbXKFKv8Zcb//8WAcJUdh7f20OaGfLkVc/byEyyNgTL4GzAhddbNWcL0LkzJ
Ehcc/o0k+USJc/15Ty9SgY1KpaC4wDT5uJHpZeGVBA63kAn7mE7aFQELcwPblw3UkgUJJgdO6kYS
fzuDLxBoIb+D9mRGUAJjPKwLBT7CRiJh2I+vnxiWVQ==
=VPCt
-----END PGP SIGNATURE-----

--qnNXxwkUF1CbOm02yfln2ATx7VJzllfNP--


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:33:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:33:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220114.381241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhs20-0002DT-Sx; Tue, 02 Nov 2021 11:32:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220114.381241; Tue, 02 Nov 2021 11:32:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhs20-0002DM-Px; Tue, 02 Nov 2021 11:32:44 +0000
Received: by outflank-mailman (input) for mailman id 220114;
 Tue, 02 Nov 2021 11:32:43 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhs1z-0002DG-7j
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:32:43 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 9572495d-a25a-4630-91a0-9eb91113d25b;
 Tue, 02 Nov 2021 11:32:42 +0000 (UTC)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2056.outbound.protection.outlook.com [104.47.10.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-30-PLHtBZG0PTupeElMwjj9_A-1; Tue, 02 Nov 2021 12:32:40 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4606.eurprd04.prod.outlook.com (2603:10a6:803:70::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 11:32:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 11:32:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0067.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::44) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 11:32:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9572495d-a25a-4630-91a0-9eb91113d25b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635852761;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=/FXaw8GtI37W2qewXpM6yv88CgXqln9+JpDw5fdxlbU=;
	b=c+Ct3bNiDfs+tgnhSiNIbKgaurNyrpsv0s7q5LdH6EUfjPpckgkoJF1iVUYGhy3EFeMCCt
	gZ47diiSLomqY8eVL6g2NqQYbBj1QJdxufMee2hSmN2du2fkfTXLg795Ysi4jNFU9OJUn3
	V9bds4J3R6auZdCJaLtGQzYGU7jp1AY=
X-MC-Unique: PLHtBZG0PTupeElMwjj9_A-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hlyp+o5De5ji76pzsHo5ip5hckYdIK0WMGDSItyyjeEY+xGy2ux/c6Bgb46BwR0pz5/IuRmWlHXZzw7dT2w1P6FvyR3pCBrvdzP6VyCqy/tDsF7fpbzrr3kaz10zvuKxD4ZT2bs3JvQqVN7yBZcCpeBtawA+NRE3591CeAfRSOpjnOnieYYbCRTS9+HN07G5Xg6mIA75RZ/l9muapLnhFOJZHWTRU00FaDTIaR95PVoJpOHX+oQWC1JHYXsSj2njouLWujasi2oxfYCHVKjVnVp+gEkOVdRvYHyLqAmVHXKH3v4C6DsjQhCc0LgNFHviToiHapXUSEMvFxvXBIIhOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vUsQ0vLHG9Y+0hgYET8wWoJoNJCLwnPVJm5qjyvZFGw=;
 b=g+Bl+NQ01EGCH8fpOQKqhKBciozNg64gOkw/+ZK3CuS3Q4fhIRJrrhgzO75XaT5pJh4n4FPwahH3SnLYFKWl7CWdiXCSdvVz9WOyPetJI4PrPuSwmfcrldK4Y4mOj6OYYjLp+YdMBW/38B4nFUFhPCjfoq9pyd8jptaEu0QzfICBrud0d6hSluTuTz5tzjWaZptfi7cnmtZydgbqJxejPM4xqv7GaJ/8Eo8bhd+31rndjLsmvc/jYV6+D9z1t5ucHz4TkgBv7YIz6PkZK7h/pKDl8YyVjsGiVkm1nVglcJXm2wZcjYOENBGRpJaqKedNSimBRiPzkWwHLpjfqoujRA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <be2b31d5-5bf5-773b-969c-ba17e8342644@suse.com>
Date: Tue, 2 Nov 2021 12:32:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v5 07/10] libxl: Only map legacy PCI IRQs if they are
 supported
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>, Ian Jackson <iwj@xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>
References: <20211008055535.337436-1-andr2000@gmail.com>
 <20211008055535.337436-8-andr2000@gmail.com>
 <YXavl0e0zainVKT9@MacBook-Air-de-Roger.local>
 <3de59765-6bcb-d6a1-7e23-2b85123df71d@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <3de59765-6bcb-d6a1-7e23-2b85123df71d@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P191CA0067.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:7f::44) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e0f41320-0e5d-48c7-1378-08d99df47855
X-MS-TrafficTypeDiagnostic: VI1PR04MB4606:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB46065239CF37D757993FD0D2B38B9@VI1PR04MB4606.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4303;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Q3ikdMP8sHNR8jMpnso8v32MlVqEYIEQH78fELUIdC076ux5z6WeesF4TPwmH31EUrCpNIJN2FY81z562Xm0haIqr7v67aSTT4oSvsxyHexEl6Fb+ybVRbk8xFxpt84kx3Khor7zGrk1gFwQFLMPt2RRCwX5niCJAOWWtIFDo5Ll/fbD48P13ISzo2YsyMofqzoyUQAFY91JxqP1hzIx4QMpN8x6K/y/LUnwoH7ICWKvqWVgP5yrce0RTr3uBv+IGMDY6inZ58o7vvfw60ym8OEwL16aPlZtZX9chXXpx5wHvdJi8GrydmG0U0sFNXQU7TmRH0Qrz43lv035jOYQzHK4acxc7om80Rdnnjj1A9z4jYUr41KD0zk4bsPiibJw7qcM02cqyd+Dq5EIyA29tS2qqIUBRlFHfVszpWTBBoHR5QRhxLNlj6WVhFbakJLUCH5DvuQOxzeJJ3L2ediDJIqOHQZLoYYh/8+tSCVZFrhIVBaur/QElolId50Qv/pKJ4kUMvWLg4u4LhpeFsFZZ245QzM2Xm838BsnX3Vs5a8JVTCJZECq7K6Civ0FMMuBXbuTjwP4qCo7d1/2bVvci+NU/OYAZkrqPEVsavsem2DBycp/9TRK8UXrJn+kXROA1xhJrtLL5nU8e6NkF3KV6YdnYlIy55s2T8096FCd3KvTgoceqCIoHEoNANWt1fr5B/2HBfl5JQtETg5ktp49K8dhc6aijm/q3MvQnXrUgDNTgWS3vKoqSe6bQEu0pMKP
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(8936002)(6916009)(8676002)(186003)(36756003)(508600001)(26005)(53546011)(316002)(16576012)(7416002)(6486002)(31686004)(54906003)(66556008)(86362001)(66476007)(5660300002)(4326008)(31696002)(2906002)(956004)(2616005)(4744005)(66946007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?YIdCiFxOCNfiRFbd7BVwxrgqR1QU2ykzo1FugAqKWCctOCVvxPlZ3+yZy+wx?=
 =?us-ascii?Q?LEB7UHtcz/ipDwaH0juBDi5xZd7KD1E7GS3nvaoIrTekUPom952N5/F/eGEd?=
 =?us-ascii?Q?XjLanfafGzBeqKv6UtgUQ/1TV8A4uiqL0eTOSGa31yOb/7JctKUV+OoC8Ats?=
 =?us-ascii?Q?x6h09ZO9KOpmS0u/WA68p0AJF/S6fb1pkt1NcUbf/xJC+fRR1v86w2ho7A+M?=
 =?us-ascii?Q?RZgDz5Q/s6dTcJzqBW6rq3U+Q3BJumeVr7Hr69eAZbVNddcTC3vXknIUqpN9?=
 =?us-ascii?Q?wX0ctAWaNX/M+EGK5C6pJetrA9Rl/BjAsT3UjZT0+r3+IqmIPP7E+N6+Rzxi?=
 =?us-ascii?Q?Uiib3Us6/GruoIhrl4Nr4dSt2iNSJmdg2QKuvDwDD3wl+We8HOeyvLmmoz9p?=
 =?us-ascii?Q?QRe73nRmSRPao4PK0vLAYakg+fC/u2EZ5Hrwj0LE874L+v7PfdzZHwevrbnl?=
 =?us-ascii?Q?DbnW6dZe3cpKu7NsD/z4x4Um/hSbH9T27XW1t0Ro5EqSl/Y7WivgOKYhuKo/?=
 =?us-ascii?Q?OrS601kVMFJY43fR78dZBcc4bC+h1k/7ntE/eSkRGqBhYxsAO4xr9ZTUO6rW?=
 =?us-ascii?Q?US7almwHTs6G952zduSQ48buSRZAwZilOuW0xHN4noYqATFOXn0SBk9pgERa?=
 =?us-ascii?Q?MhIIgTFtDqJlbnLQpLKGfjRW+QeBpHpxY/5lIStdU2q0JU+RXTja5k6G9naY?=
 =?us-ascii?Q?Xc3OnDvY7RR+wL/Xg4wAwXGWpAriI8AyFoyD/3oCX0yBZ/Sh8yBNMql1uTcT?=
 =?us-ascii?Q?NCG3KPs3hQz9MLpFvRGcYWxDOqiEfk/YHPYx/N0ny/FSeIPU8m4SitvSFABy?=
 =?us-ascii?Q?R97KoduzmJiJlnYTWYzfOALV3oOTAygKwjGussRSlOp8duGYZIeWmIFhs7/K?=
 =?us-ascii?Q?297+rbBJmKQ/aQMBjbyTVTAoODt+ZCc7VjKOYap3az0lFxagXEA3/zpjP5mh?=
 =?us-ascii?Q?XeG6xDHNFURlsh9OecRy7IJQH1W0yrq9On4nkjUF0YF+5b29BKQCuwW7r5TT?=
 =?us-ascii?Q?3ojp3g04s5dY/YSnYwOOjCNxlEW/ZmprogOoo60XqcDAL24IjujlWfGz2JtD?=
 =?us-ascii?Q?T1GL+gOx04aNEncEzCQsGHB7zaXymj/hQD/SlAJ8j5kzvusQvuM2x/gn53Ne?=
 =?us-ascii?Q?GKr7ZGbKIJJhhzF64lIRYbtXt70c2aoCdzWptGqkHoNL382lA97JKy0Gdvb2?=
 =?us-ascii?Q?pfnPuotAzwLaEAGnrD3lwP3RbL/1cKx1HSmj9+Cr4trwKnj8IoY2AKVwrU0N?=
 =?us-ascii?Q?z8/osyNOvFCp0gXgW6UCtqGvKxQ87AccK0DvxgSO4jIdwFZigVkcgV+OmfFQ?=
 =?us-ascii?Q?cL24y3gLdaYtQDu5yn2ngy49bdHTCAFG0opBO6D9km1RGZ6izgAMYkOjOKfS?=
 =?us-ascii?Q?FDnEWbXsIv1MXZvbJfmyZ57mIjnB46suGAk32zfnycqaK9dGCDyULqpY0mNJ?=
 =?us-ascii?Q?7vus91Ilo0lVl1KxihxMW5aa6qHdlPnh1x/12+twOK2/Bvbj46DgByTXE8/N?=
 =?us-ascii?Q?xno0ENQXGrEfaIw4vWRY9hnxnn89asn0OxOapio/oeC0wTwdLaFAfFcoAPhG?=
 =?us-ascii?Q?uSWmUVCjxmLDazF5n36fjZL3GoE74dhARiLNNQbzeZpaZCFLQPS0M2eTmCUp?=
 =?us-ascii?Q?PBaNfsmXUCqLUhqQf/T8eHo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e0f41320-0e5d-48c7-1378-08d99df47855
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 11:32:36.8427
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xMvVtPlCGHoY1/TlbrmL1pnCimPlnQapEE5bWDZxiOLhjCmNZCXfwsfirc7XpGbWbL1rIOyC6ROlq+sos9E03g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4606

On 25.10.2021 15:38, Oleksandr Andrushchenko wrote:
> On 25.10.21 16:22, Roger Pau Monn=C3=A9 wrote:
>> On Fri, Oct 08, 2021 at 08:55:32AM +0300, Oleksandr Andrushchenko wrote:
>>> --- a/tools/libs/light/libxl_pci.c
>>> +++ b/tools/libs/light/libxl_pci.c
>>> @@ -1364,6 +1364,15 @@ static void pci_add_timeout(libxl__egc *egc, lib=
xl__ev_time *ev,
>>>       pci_add_dm_done(egc, pas, rc);
>>>   }
>>>  =20
>>> +static bool pci_supp_legacy_irq(void)
>> A naming more inline with the PCI specification (since we insisted on
>> using ECAM instead of MCFG) would be intx, ie: pci_supports_intx.
> This will require a follow up patch if we all agree this change is needed=
.
> @Jan, are you ok with the rename?

Sure, but my view doesn't matter all this much anyway for libxl code.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:37:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:37:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220123.381253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhs6Y-0002rt-Fe; Tue, 02 Nov 2021 11:37:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220123.381253; Tue, 02 Nov 2021 11:37:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhs6Y-0002rm-CT; Tue, 02 Nov 2021 11:37:26 +0000
Received: by outflank-mailman (input) for mailman id 220123;
 Tue, 02 Nov 2021 11:37:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhs6W-0002rc-SS; Tue, 02 Nov 2021 11:37:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhs6W-00040V-Md; Tue, 02 Nov 2021 11:37:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhs6W-0005bv-Fm; Tue, 02 Nov 2021 11:37:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhs6W-0003pP-FE; Tue, 02 Nov 2021 11:37:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=5BuhvvPgW5CLW2IUFBa3nh4QVSPeluKYvEsOx316vhI=; b=oBJZOsJ/fbArcC4vgxNKRVATt/
	5zvxTsK7VWz5n0/ZfS6yYLIlgl8E1s6jihnL6Yv4wg8BzDS4HoZnfmaZFIjI1gf0sjnYdXzL50qQX
	vUw8DnfRO7sFmlxz9HnAmaqkVuojnUD+tlE2anpPERiY468jQEoaL5jIwjWrCdoZQM44=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165979-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 165979: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9f8434d77859462ad98a51ec49ad8e23769d9b10
X-Osstest-Versions-That:
    xen=3030a73bf849a50411da95e94abf23cb7e8642fc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Nov 2021 11:37:24 +0000

flight 165979 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/165979/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165966
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165966
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165966
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165966
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165966
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165966
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165966
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165966
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165966
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165966
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165966
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165966
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10
baseline version:
 xen                  3030a73bf849a50411da95e94abf23cb7e8642fc

Last test of basis   165966  2021-11-01 01:52:55 Z    1 days
Testing same since   165973  2021-11-01 16:07:55 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   3030a73bf8..9f8434d778  9f8434d77859462ad98a51ec49ad8e23769d9b10 -> master


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:37:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:37:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220125.381267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhs6b-00039L-Vi; Tue, 02 Nov 2021 11:37:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220125.381267; Tue, 02 Nov 2021 11:37:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhs6b-00039E-SH; Tue, 02 Nov 2021 11:37:29 +0000
Received: by outflank-mailman (input) for mailman id 220125;
 Tue, 02 Nov 2021 11:37:28 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhs6a-00038X-AH
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:37:28 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6bdecd0d-3fe8-4fb6-9396-98bc810c18e5;
 Tue, 02 Nov 2021 11:37:26 +0000 (UTC)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A2AJhoX012705;
 Tue, 2 Nov 2021 11:37:24 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2112.outbound.protection.outlook.com [104.47.18.112])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c33fv8b9k-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 11:37:24 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3376.eurprd03.prod.outlook.com (2603:10a6:803:1d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.19; Tue, 2 Nov
 2021 11:37:21 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 11:37:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6bdecd0d-3fe8-4fb6-9396-98bc810c18e5
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iCskQVbj7ExoHIufn3KdIBM1hGCar87lQLOHL0GevPv/JQXdaiIZtkHP/P10bqCKVcO5QfzUfiVP/ScnKHeMuaWho3zjm9SW4gifCSxOJDRz0qLdR0r8K4hjGhNUHOI7u3KC/acp8CPkQ65RnEuiRWNub+KGwuBUxdxK+H52UWkpreJlpn+Ow91HApQExDY9RUDRkNv+aYn6YxucqWt2KQdmt9caqEmQW34OT2zxV0U6Z8r3CWLNijtgte58Csb7o/JkDUMF9bNG0xaBFBFCou0gNmEXUqaaQzQIcsRgVW1XZFqz/OAvLONnvcOTUPGvyieZ4resauIHt4IfoIw3XA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Yfo3T76HMGwsUVYuWcZgKdzS1lHT1OVl8si1cxNKG0A=;
 b=cJifyOBzu21nXX2IgSW7PP7eRp1iwH7B8A9PnbbDBuUbrsQZ1OFFhUcV0ku0Tv6ACvg6w+KEvHCyk3qT1kYnyDGX3JMDwJ0xJH5+n/6sjKO47oLWjop8xCshmdwbL4Oa3Cqc8ikEdw5vk3v3qhefC4cHMoz2upxIMqrabSFvhvZ7N01eU4XsNXrqHUeZqL7JLsOz8MfVpkNkByMHexqkCwI+1wjpptgT1wMx8necHFPXAjG5QKFvtBPvsXQszyH4rmR7+YxMxYAGVKvIGciONmUnXX3zynpYM1VVH1p6cgrSK6djubXhiheqCSIcRDcp2ar47r7smZk7B+rk9odgEA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Yfo3T76HMGwsUVYuWcZgKdzS1lHT1OVl8si1cxNKG0A=;
 b=i0SlXpTo0Az+fFuqDnJFgVnW92kbTy6FPl9XYN+pOAc0ETWFzzHXf1P5kGNUd+feMRB5P1VOJCPofPLlR1O7EmYXm3L8c2cAm38XFK/wmpzmKejMZ8mHR/tcszSMX8KNtPVgTeU2ZPLTrciglFmSZJrOfLpmi4TTcrtm7hvQuUXah/ro2FVXQXHk6L4qB22/mqbNGFihOXnOdJ1+qQiPgHUOGLYTfaKAP6tEeX7444/OlsakJnDJmpthS41h0jJGWYaKN1gO7KRZqcctDB560vAg5pYjF86a7RwG8/ZLlcMb0xOcflZ5uOPeVGyYvQCKoOjy6t9VPmmJsbZ1ykLvEQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>, Ian Jackson <iwj@xenproject.org>,
        Juergen Gross
	<jgross@suse.com>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v5 07/10] libxl: Only map legacy PCI IRQs if they are
 supported
Thread-Topic: [PATCH v5 07/10] libxl: Only map legacy PCI IRQs if they are
 supported
Thread-Index: AQHXvAknuuGQJumtOE+ut83tChlOwKvjzqeAgAAEa4CADG+EAIAAAVUA
Date: Tue, 2 Nov 2021 11:37:21 +0000
Message-ID: <24347673-c286-f76a-33c3-8c3c3f665451@epam.com>
References: <20211008055535.337436-1-andr2000@gmail.com>
 <20211008055535.337436-8-andr2000@gmail.com>
 <YXavl0e0zainVKT9@MacBook-Air-de-Roger.local>
 <3de59765-6bcb-d6a1-7e23-2b85123df71d@epam.com>
 <be2b31d5-5bf5-773b-969c-ba17e8342644@suse.com>
In-Reply-To: <be2b31d5-5bf5-773b-969c-ba17e8342644@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 1b0df9e0-d925-485d-8c00-08d99df5221a
x-ms-traffictypediagnostic: VI1PR0302MB3376:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB33761B49EF8F6E937F03F4A2E78B9@VI1PR0302MB3376.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6430;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 MTYY8qSYOWFcIK4NmIFkUhNIRz6pqzDUY6DHRSdXRfhbRhMvya1hs963Lg079IkIRtig5L0sJtNmA7gnQyYplIOLyhL3Nnuz69OlmRZNk4UYme2cGHi4tuFy1eiT4LBFpwueGthVXWQ3G+VqjqdXpruvpxPQlkCyt1zw6ClRFcSgy5o7B0uGWFQ2HtlB9AV4ignxPycIwgx5urwHviWQVbnPfom6gEhjX74lvLyL6A+bSMXxxVV4J06/DuK6xFgY8yTIMq32kyN1a5wOURy/h06FGeB3CaGxhPDnHrmOB2wuBEbPPC+K3hoy926aZx3WROlHUYr0g2W3puY1mtz7xGUgPl5TUGStiIUWOaueCmm59jyGcExmjGUz9iCnXP0qDi6QE64VcLB+kjYIWWEHmCKBltjYLM5lUZG/HHp3n74dMeHhJk8nufOUNbipzujoKwvwjhZMuxzr1SyfbimMdyIJVFacldToa2pKa0XhRr2BNsyn0F6K+6XifrLIdzlnwRgRNrE7hbCNipuviWjtvuTXScX++sDN9m8pN9GCeT5Blaq/I3aw7yRCBHG+1iobRehdBo3xcsYmuHQ8sCya2IUi086dovEZ/RiQiobH9rG0l1N0gssyxpX0yKlE0ZjFsRiVsZrM8kvk2oMUUzFB/Q1kxnbob5Y05SSvUJPILyU70bNtoPCzOvLkGA3YsuaWhbDex6F3N/az8YsCs0Fl0zwNlU/tdrYW0zKtR0xbNVvzYyN76gdLjCKSTrGb/PcV
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66946007)(76116006)(38100700002)(122000001)(91956017)(4326008)(6506007)(66556008)(66476007)(4744005)(38070700005)(66446008)(64756008)(2906002)(8676002)(186003)(53546011)(71200400001)(8936002)(36756003)(5660300002)(31696002)(6486002)(26005)(6916009)(54906003)(508600001)(7416002)(31686004)(316002)(86362001)(6512007)(2616005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?T2trN3Q0QmJBbndBblJVN2lwcG9TcFlsbDVYKzk2SUg2RjNhbDFnOTdXdUVy?=
 =?utf-8?B?aFVRd0hpU2pCMHhJc2FHeCsvWGhwYmRYMW1IVmJsS0pxM1dGbXN4eHJWR0Z3?=
 =?utf-8?B?ZDBPVjlUT3l4YWRXL0VzRXhwbW9jUmI0ck4rWDlZTWdUU2MzbUwyWWJSdkVU?=
 =?utf-8?B?VkxrdXlrT242a2Q1MzMzeUd5MGN4T2tJdHNad0l3YzM2VlFMMlg5a2pQZFBu?=
 =?utf-8?B?RVd6Ukk0TXRIUjVybWtGcTVKOU82blNwQm55a002aDRINTExUGZZN0d3Q0th?=
 =?utf-8?B?cjZjREVkUVZIcEpqL1pJc0ZmbU1PNjg3ZUV1SkRGQkFqUFBKbWZGZzZQVE9n?=
 =?utf-8?B?aHB1QTZ6T01KdVd1b25CeTdrUW5MZTE4MkxxYkVZY2o4WmdxcVhSM1V6YkhJ?=
 =?utf-8?B?Q25ERWpubTFyMkEvQkhFM3lSS2xwOW5oTElwaUgrbEJvRWxaTDJIK0M0NGs1?=
 =?utf-8?B?Nmg5T3VOSWRTakl0M255WjdVVHFQdnNnd0YrM3RtSU1JL283TVA5bmh0TDNZ?=
 =?utf-8?B?TU04SXBxWUduV3o5MUdPYnA1eXh3T3c4QUtZOEs4YWVZQjlMdmdLYjh1dWZR?=
 =?utf-8?B?UURBM2UyZjR2WEZCR3crTVRUQnFzbWF1am1wUzVVMG91Yk01L1NuRC9Bdjdy?=
 =?utf-8?B?ZDhuZUhHbWxIbUpFNHlhOGFSeWtobWhkK0luK0JrSC9iaUoyNEdGMGpkYmNW?=
 =?utf-8?B?ZUU4UkN5NjZYZzZIbGswaUZrK2NOOUo0YW1jbkc5dWJSa0RKemVIb1h0Y3hy?=
 =?utf-8?B?aU1YWGIzZ3hBOTAwbCtUcC9FTDNvVEpVa3FaRUlyQlYyUWpCOFQzMnAvdVMv?=
 =?utf-8?B?REdZaGtGWnVnTkZnWllsTFFEL0tjSFZYMDZId0Ira3hzcEpadVNSL0MxZkgz?=
 =?utf-8?B?U2tnTUVvYUNIaTIzTzV0ejZaMkVYTTdDWlV4cEhHemhUK2pzNUJhbDRlam9K?=
 =?utf-8?B?aGhOZCtvWTVPOERWSlNHNVN4YWl5WlNxVEFXTW14dEZpYXpZVEVSbHg5OWxN?=
 =?utf-8?B?a1dFaFN1b1E3K1BtS3pvYmYwekxqTnkyMlU4OGp2Nk9QWG9rRyt3WllpTTcw?=
 =?utf-8?B?SEJYT3drc3RWQXliS3NoeXFvQWw2TUFXM010OUMyY1Nlc1ZST1lSTiswVlF0?=
 =?utf-8?B?VjI1OTVkZTNHYVVHNmNqVnEwWVpsdENTejFDZ0o1V29xc2tVUTNxTUxYeFlq?=
 =?utf-8?B?YTh0ZnpNTXg5aHI5T2thWE45ZU1kZ1VNSVluRFJ6R3NCYXNJZFJWVTlHUVBn?=
 =?utf-8?B?dXoxZDFrMk1TelNqTTc1VElQdklTNVhkanhRWDNBY1dNS0E1UEkxMFdZdENW?=
 =?utf-8?B?RTVzMTZjN3pLeWFGM21HcTBOYWx5Mm9mb2I0Q0pnQUR5UFlGUkdDaGtVSExx?=
 =?utf-8?B?WGNjWlU0SWJraUV1VlpDRjY3dzgyYWVEKzRIUVdrWUFadnhpbGRuUW84d1Iv?=
 =?utf-8?B?WndHMkVoQXlzdTJFYkpJYVdFeXdkdDVET2hOMDI1RDdCWE00RDNocU53Q1J6?=
 =?utf-8?B?eUhjNHkwek8zdDhMSXFLV29PSTVmYXd4eElxaGtFZnMvcG4xUitsM3RCMmFI?=
 =?utf-8?B?TmdGdXVLUjJiZStaZnIvM1gwazE1NFFCZEtvUmg3clFvY3haZDAyRkZPbnN4?=
 =?utf-8?B?NnIyR0xCL00rcDRmTkc1Tm43LzJPUnJvSnVhc3FkeHFWUTFuejRZMTA1TkRX?=
 =?utf-8?B?WEtnT2JJVE1IcFJIbCtjNzF6UWNpTS9xYUhYbmM3SXpWQmZXNlhlMEF3aFNi?=
 =?utf-8?B?L2plQUJBeWtKR0RraUcyUnJKakgxeG1JV2FCQXpOL0dBamwwLythTkRteFFY?=
 =?utf-8?B?MHBzRUlmUVdvMXVZN002a0pvMzVHVmJKb1VuVU1TMHBHYmREWXpKbUtVdFlB?=
 =?utf-8?B?UGpBSlFIMTdwcTZQTFFpODc1RE81U0w2SGtnTkh5NXhaaFlCK1FGd2szek1r?=
 =?utf-8?B?Y3l6bEFmU3FTUVM2aERnVEM1RzAyMzhYRGI2UnQwaDZJWTVJRk56SDBtaEFm?=
 =?utf-8?B?K0N5QlN0MzlCc3lHUFFJblU2dmFjY3NoSTVRcVkybkI3Nmo0L3FNdFlnTzdq?=
 =?utf-8?B?dTZURVNsT3BSM0JvZGF5L0dTK0FLNks3alRCZk9TMDdEbks0Z3B2eWh4cjVS?=
 =?utf-8?B?aFoyUmdsZVoxeUZrVHBPODBHQUJjU2thV0NlNE5BNGdNU2hGT1JHcS9zNy9B?=
 =?utf-8?B?TFh3UHF2MXhZVVcyL2lMWmNvSlZIN0VsemlzZy9ndzE4MXpJS01pMlA0Z09E?=
 =?utf-8?B?WWZ0T0JjWDM4TXVERkRZQ2NNVFR6S1Z2S0FPb3pINHllaTNmOW9CZ0tqdXFS?=
 =?utf-8?B?UFF1d2xRZ2w5TmEzNU9hNWlYYzVueXEyS3Q3OGxUenRFSHYwSzJBdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C5BA069CA11ECB468B7ABE1137A51BF0@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b0df9e0-d925-485d-8c00-08d99df5221a
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 11:37:21.2736
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 1y0FDuSb4AwYfjBu0YWx/fIfB/LYR+6VYN/EdQzwoCgufGpikNAX4XdwPaHK9ivFu23osAnH7NVMlGQMLaJ4rZOqIQZx6zYw155Kkpv9DneIqi6h3gnNDjEVGz1Ll4Di
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3376
X-Proofpoint-ORIG-GUID: 5jMJ_8-gtTH4UhwZRX4C4hBPJONeypkM
X-Proofpoint-GUID: 5jMJ_8-gtTH4UhwZRX4C4hBPJONeypkM
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_07,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0
 malwarescore=0 mlxlogscore=930 bulkscore=0 adultscore=0 suspectscore=0
 priorityscore=1501 clxscore=1015 mlxscore=0 phishscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020068

DQoNCk9uIDAyLjExLjIxIDEzOjMyLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjUuMTAuMjAy
MSAxNTozOCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAyNS4xMC4yMSAx
NjoyMiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBGcmksIE9jdCAwOCwgMjAyMSBh
dCAwODo1NTozMkFNICswMzAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4g
LS0tIGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9wY2kuYw0KPj4+PiArKysgYi90b29scy9saWJz
L2xpZ2h0L2xpYnhsX3BjaS5jDQo+Pj4+IEBAIC0xMzY0LDYgKzEzNjQsMTUgQEAgc3RhdGljIHZv
aWQgcGNpX2FkZF90aW1lb3V0KGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2V2X3RpbWUgKmV2LA0K
Pj4+PiAgICAgICAgcGNpX2FkZF9kbV9kb25lKGVnYywgcGFzLCByYyk7DQo+Pj4+ICAgIH0NCj4+
Pj4gICAgDQo+Pj4+ICtzdGF0aWMgYm9vbCBwY2lfc3VwcF9sZWdhY3lfaXJxKHZvaWQpDQo+Pj4g
QSBuYW1pbmcgbW9yZSBpbmxpbmUgd2l0aCB0aGUgUENJIHNwZWNpZmljYXRpb24gKHNpbmNlIHdl
IGluc2lzdGVkIG9uDQo+Pj4gdXNpbmcgRUNBTSBpbnN0ZWFkIG9mIE1DRkcpIHdvdWxkIGJlIGlu
dHgsIGllOiBwY2lfc3VwcG9ydHNfaW50eC4NCj4+IFRoaXMgd2lsbCByZXF1aXJlIGEgZm9sbG93
IHVwIHBhdGNoIGlmIHdlIGFsbCBhZ3JlZSB0aGlzIGNoYW5nZSBpcyBuZWVkZWQuDQo+PiBASmFu
LCBhcmUgeW91IG9rIHdpdGggdGhlIHJlbmFtZT8NCj4gU3VyZSwgYnV0IG15IHZpZXcgZG9lc24n
dCBtYXR0ZXIgYWxsIHRoaXMgbXVjaCBhbnl3YXkgZm9yIGxpYnhsIGNvZGUuDQpEbyB5b3Ugd2Fu
dCBhIGZvbGxvdy11cCBwYXRjaCBmb3IgdGhpcyBhcyB0aGUgb3JpZ2luYWwgY2hhbmdlIGhhcyBi
ZWVuIG1lcmdlZD8NCj4NCj4gSmFuDQo+DQpUaGFua3MsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:44:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:44:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220138.381282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsD1-0004yr-Nx; Tue, 02 Nov 2021 11:44:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220138.381282; Tue, 02 Nov 2021 11:44:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsD1-0004yk-Kt; Tue, 02 Nov 2021 11:44:07 +0000
Received: by outflank-mailman (input) for mailman id 220138;
 Tue, 02 Nov 2021 11:44:06 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=DlrU=PV=zytor.com=hpa@srs-us1.protection.inumbo.net>)
 id 1mhsCz-0004yT-Dr
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:44:06 +0000
Received: from mail.zytor.com (unknown [198.137.202.136])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 2d3556dc-3bd2-11ec-8555-12813bfff9fa;
 Tue, 02 Nov 2021 11:44:03 +0000 (UTC)
Received: from [127.0.0.1] (81-227-32-128-no2212.tbcn.telia.com
 [81.227.32.128]) (authenticated bits=0)
 by mail.zytor.com (8.16.1/8.15.2) with ESMTPSA id 1A2BN0kw425542
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 2 Nov 2021 04:23:02 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d3556dc-3bd2-11ec-8555-12813bfff9fa
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 1A2BN0kw425542
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2021103101; t=1635852184;
	bh=zKQeGXfsP+l5tBAkLhe3Tvi3JuMR+eopIE+9EA1wQsM=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=t9G1OOot4B9uuHrdKAMpalUcHST3KZcHpw4b1zNsOTmPFQzEzjgkW4i9MQCCPvQDq
	 Tl7sNQ99i7b+Yy/NXeGs0sWc540J4Mxq0YVt4kBOl0yB5VBz9I+uc5Tp9Q8LPyrjz7
	 lV2GoRLP6LMDOh9gkMeNYxovtOHZSNE8AnMf+2KVpqsrpxnjGNJVAA08FWqiFu18o1
	 TXFFpkt9pODi0BDJm/xLoO1e43DDJf0MW14h0337K7fkxXncb4u4r/DhlxuPdHIbsy
	 Yzu8cxfYydoC8lPVacveRu9yAl2L1nwIRqd7Kx23zXXsc0c25w7pOvBxRWLsLERShX
	 ywQ5nXMbngBFw==
Date: Tue, 02 Nov 2021 12:22:50 +0100
From: "H. Peter Anvin" <hpa@zytor.com>
To: Borislav Petkov <bp@alien8.de>, Lai Jiangshan <laijs@linux.alibaba.com>
CC: Lai Jiangshan <jiangshanlai@gmail.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org, Jan Beulich <jbeulich@suse.com>,
        Thomas Gleixner <tglx@linutronix.de>, Juergen Gross <jgross@suse.com>,
        xen-devel@lists.xenproject.org, Andy Lutomirski <luto@kernel.org>,
        Ingo Molnar <mingo@redhat.com>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Stefano Stabellini <sstabellini@kernel.org>
Subject: =?US-ASCII?Q?Re=3A_=5BPATCH_V4_04/50=5D_x86/xen=3A_Add_xenp?= =?US-ASCII?Q?v=5Frestore=5Fregs=5Fand=5Freturn=5Fto=5Fusermode=28=29?=
User-Agent: K-9 Mail for Android
In-Reply-To: <YYEJuIgQukcDzy1R@zn.tnic>
References: <20211026141420.17138-1-jiangshanlai@gmail.com> <20211026141420.17138-5-jiangshanlai@gmail.com> <YYD9ohN2Zcy4EdMb@zn.tnic> <d4ae23dd-377e-8316-909b-d5bdeacc0904@linux.alibaba.com> <YYEJuIgQukcDzy1R@zn.tnic>
Message-ID: <6F6D3FEC-9AF1-40E1-A7C2-394D21C40114@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable



On November 2, 2021 10:49:44 AM GMT+01:00, Borislav Petkov <bp@alien8=2Ede=
> wrote:
>On Tue, Nov 02, 2021 at 05:19:46PM +0800, Lai Jiangshan wrote:
>> It will add a 5-byte NOP at the beginning of the native
>> swapgs_restore_regs_and_return_to_usermode=2E
>
>So?
>

It would be interesting to have an "override function with jmp" alternativ=
es macro=2E It doesn't require any changes to the alternatives mechanism pr=
oper (but possibly to objtool): it would just insert an alternatives entry =
without adding any code including nops to the main path=2E It would of cour=
se only be applicable to a jmp, so a syntax like OVERRIDE_JMP feature, targ=
et rather than open-coding the instruction would probably be a good idea=2E

That would reduce the trade-off to zero=2E

>> I avoided adding unneeded code in the native code even if it is NOPs
>> and avoided melting xenpv-one into the native one which will reduce
>> the code readability=2E
>
>How does this reduce code readability?!
>
>diff --git a/arch/x86/entry/entry_64=2ES b/arch/x86/entry/entry_64=2ES
>index e38a4cf795d9=2E=2Ebf1de54a1fca 100644
>--- a/arch/x86/entry/entry_64=2ES
>+++ b/arch/x86/entry/entry_64=2ES
>@@ -567,6 +567,10 @@ __irqentry_text_end:
>=20
> SYM_CODE_START_LOCAL(common_interrupt_return)
> SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL=
)
>+
>+	ALTERNATIVE "", "jmp xenpv_restore_regs_and_return_to_usermode", \
>+                X86_FEATURE_XENPV
>+
> #ifdef CONFIG_DEBUG_ENTRY
> 	/* Assert that pt_regs indicates user mode=2E */
> 	testb	$3, CS(%rsp)
>
>> I will follow your preference since a 5-byte NOP is so negligible in th=
e slow
>> path with an iret instruction=2E
>
>Yes, we do already gazillion things on those entry and exit paths=2E
>
>> Or other option that adds macros to wrap the ALTERNATIVE=2E
>> RESTORE_REGS_AND_RETURN_TO_USERMODE and
>> COND_RESTORE_REGS_AND_RETURN_TO_USERMODE (test %eax before jmp in nativ=
e case)
>
>No, the main goal is to keep the asm code as readable and as simple as
>possible=2E
>
>If macros or whatever need to be added, there better be a good reason
>for them=2E Saving a NOP is not one of them=2E
>
>Thx=2E
>

--=20
Sent from my Android device with K-9 Mail=2E Please excuse my brevity=2E


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 11:50:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 11:50:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220146.381296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsJ5-0006U9-FQ; Tue, 02 Nov 2021 11:50:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220146.381296; Tue, 02 Nov 2021 11:50:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsJ5-0006U2-CL; Tue, 02 Nov 2021 11:50:23 +0000
Received: by outflank-mailman (input) for mailman id 220146;
 Tue, 02 Nov 2021 11:50:21 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhsJ3-0006Tw-Kc
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 11:50:21 +0000
Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 0de5522d-3bd3-11ec-8556-12813bfff9fa;
 Tue, 02 Nov 2021 11:50:20 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0de5522d-3bd3-11ec-8556-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635853820;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=qQw/gpZoEhKpydfP8VdBNj1Lmx+vinRGD7any+m+QLI=;
  b=Q1KmWv2SPaFuPDcEsaDM8N7ThORFTpcIG0eAJU+up4jQn9ETV+Tuw6Fi
   S+F2Ol/H5hiXvI75sJvxjrz1f+pPnwZebB2yx4GJHAwIuEhHvvRexmSHn
   LhztbGJT3aS1/fLsit9zrFoeeTyvV5m5mIewSIEjyVAsOYqB2a85Zdv4f
   M=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: tSdULL7iwhlcvra0Fz8xJiRtt0shpsc0Dm5Drqk52qrYwMgO+DYIVJ6d+QWnQxr7AllWsO8pUL
 ZXRdbRsgabJGEM6U296aL3i70Si8u4wRRuN5E8dmkf8Ke8YmQEGQgg3U16wY4ettZmvXdxRBj5
 /1ey3IMOn6lCb2zSpNnOLcoT+7+P7sNaNhhjk4apwZrGZVIwoh1Jd4vasr5zKmz5SzNg3kJ82m
 IqefYaiEIULPjFci7w9PQYfmZPixZk2kWhOhTwrn04rtg3rEI3quVs/utcegdDE+Q0MDFRDI79
 gWJKdWuq6l5LwZqLj98E+jdP
X-SBRS: 5.1
X-MesageID: 57260034
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:+0d6matEHjFWxT/O5eqbsqxjZefnVJdYMUV32f8akzHdYApBsoF/q
 tZmKTyPaPvZYDP1f9t/b4W0oUhUup7QzoQxGQs6+yhkRXwa+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YLhWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npl5LatVVgrJf3wk9sWSBV/VDBmEqsB5+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258UQ66GP
 JZxhTxHPT+bOkZ2JUstUcgbpb643Fz5XzwIpwfAzUYwyzeKl1EguFT3C/LPc9yXQYNOn0CXp
 krP5WG/CRYfXPSVxCCZ6HuqiqnKlDniRYMJPLSi87hhh1j77kUJFBATYn6qrvC4h1CWVspWL
 gof/S9GhaE0+FbxFoGldxK9qX+A+BUbXrJ4Fuwx6AiJjK3O8QudLmEeS3hKb9lOnMgySD8x3
 1mFheTgAzB1raaVQnKQ8LSThT6qMC1TJmgHDQcGUA8E7t/LsIw1yBXVQb5LAKOzy9H4Bzz06
 zSLtzQlwaUei9YR0Ke29kyBhCijzrDLRAMo4gTcXkq+8xh0IoWiYuSA91/f6vpRKZeDeVOIt
 nMEhsu24fgHCNeGkynlaOIJEbKy7vCJKgrAkEVvFJks8Teq03O7dIUW6zZ7TG9yKdoNczLtZ
 E7VuCtS6YVVMX/sarV4C79dEOxzk/KmT468EKmJMJweOfCdaTNr4gk/T1OMgGL2wHQnrqokN
 bDcYN6DCzEFXPEPICWNe88R1roixyYbzGzVRIzmwxnP7YdydEJ5Wp9ebgLQM7lRALes5VyMr
 o0Bb5fiJwB3CbWmOkHqHZgvwUfmxJTRLbT/sIRpe+GKOWKK80lxWqaKkdvNl2GI9pm5d9skH
 FnhCie0K3Kl3BUrzDlmjFg5MdsDur4k9RoG0dQEZwrA5pTaSd/HAF0jX5U2Z6I70+do0OR5S
 fIIE+3ZXK8SFWWdo2tHN8ChxGCHSPhNrVjXV8ZCSGNnF6OMuiSTooO0FucR3HBWZsZIiSfOi
 +L5jV6KKXbybw9jENzXeJqSI6CZ5hAgdBZJdxKQeLF7IRy0mKAzcnCZpqJncqkkdESYrhPHh
 ln+PPvtjbSUy2PD2IKS3v7sQkbAO7YWI3e26EGCtuvrbnaGpjLLLE0peL/gQA0xnVjcoc2KT
 e5U0+v9ILsAmlNLuJB7CLFl0eQ14N6HmlOQ5l0M8KzjYwv5B7V+DGOB2MUT5KRByqUA4Vm9W
 16V+8kcMrKMYZu3HFkULQsjT+KCyfBLxWWCsaVreB33tH1t4b6KcUROJB3Q2iZTG6R4bdE+y
 uA7tc9ItwHm0kg2MsyLhzx//niXKiBSSL0us5wXWde5igcixlxYT4bbDyv6vMOGZ9lWaxF4K
 T6InqvSwb9bwxOaIXY0EHHM28tbhIgP508WnANTeQzRl4Oc1PEt3RBX/TAmdShvz01Kg7BpJ
 2xmF0xpPqHSrT1ms9dOAjK3EAZbCRzHpkGokwkVlHfURlWDX3DWKDFvIv6E+U0U/j4OfjVf+
 73Emm/pXSyzIZP01yo2H0Vkt+biXZp68QibwJKrGMGMHp8bZzv5g/DxOTpU+kW/Wc5h1lfao
 eRK/fprbfypPCEdlKQ3Fo2G2OlCUxuDPmFDHals8a5h8bswo91uNexi83yMR/4=
IronPort-HdrOrdr: A9a23:Gmg33qPInCH0scBcT13155DYdb4zR+YMi2TDiHoedfUFSKOlfp
 6V8MjztSWVtN4QMEtQ/+xoHJPwPE80kqQFnbX5XI3SJjUO3VHIEGgM1/qG/9SNIVybygcZ79
 YeT0EcMqyBMbEZt7eD3ODQKb9Jq7PrgcPY55as854ud3AQV0gJ1XYJNu/xKDwOeOApP+tfKH
 LKjfA32QZINE5nI/iTNz0gZazuttfLnJXpbVovAAMm0hCHiXeN5KThGxaV8x8CW3cXqI1Svl
 Ttokjc3OGOovu7whjT2yv66IlXosLozp9mCNaXgsYYBz3wgkKDZZhnWZeFoDcpydvfpGoCoZ
 3pmVMNLs5z43TeciWcpgbs4RDp1HIU53rr2Taj8DPeiP28YAh/J9tKhIpffBecwVEnpstA3K
 VC2H/cn4ZLDDvb9R6Np+TgZlVPrA6ZsHAimekcgzh0So0FcoJcqoQZ4Qd8DIoAJiTn84oqed
 MeTf003MwmM29yUkqp+1WGmLeXLzAO91a9MwY/U/WuontrdCsT9Tpe+CQd9k1wva7VBaM0od
 gsCZ4Y4Y2mePVmG56VNN1xM/dfNVa9NS4kEFjiamgPR5t3cU4klfbMkcIIDaeRCcU18Kc=
X-IronPort-AV: E=Sophos;i="5.87,202,1631592000"; 
   d="scan'208";a="57260034"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FCxEhMU5qaI8O7bOlumbD2Oq950TI1W6r8e2CJRUtpV8CDjNS86AIzFli0Ots7FK2CtfV0ClxM22+uof7zxyjHJcbe4v9tgsJxYNqDM3N2SUGdLrHOCIqnlMtQI4M7Md5VDgHnxW8LNl4eFwYY9w9QXsHbfPNc2sN9HCdS9jeeA7i1Sx7CZ6r0VudwrVScXFFgu8rdUQ/mNexj4dB8urjRmlGysaDBvNxBymi7PDLFdOpFPsMGUaKZhFsikUwraTOP44L9FX+zkqQovoE7FLS7NnQP8G3J8PPizYcNKnnMyagUTTAY2JBmWszGcTGvsmjR6dvJgrC+RDrPwYQH65jQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=G+yQ8/y5sayzRStPWYzSe98D7nsZ/KIY5dztZJpKUBk=;
 b=l1erpj3JkzepKWXxc25PIzXuUjLwVkgw82POf+PBCoWariLuUH9eyZfLPNCC5WWylTqMSs5Yd0jjsaGpXJg6AoJ8VNW30FrqnAtlRZhw5MM8KP0OmmUCuPVhKZZCk0s9SekWacxaGPvSO7zHOOu9VJenxEk9ZXQHZhwPWDRZwrWEE2hC/NSPfGSDz21iE0yJCs5o7F+e9aiaAyFOt7YyMjyNP2syTzsI+NgsUywGaUg2pvRdL/Qav3kbn+uRiz0kvapWyNBeaXJRr1LVJFqpeqPSbzm1q7uEBlXaLfuQVUxOygGFbN3GPlxxiJCvti0XeMQiG8Tm9LXXWhslULB5kg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=G+yQ8/y5sayzRStPWYzSe98D7nsZ/KIY5dztZJpKUBk=;
 b=FP7SPRp72J/DsKdv3Rt1vQbCt789szbVPbUnAUaCTMaYrgy/6wAkQ1AuJ0/ni0ZuVVcpHIeztSXVUzigIDNPGvxzKH2Y6U+Q6XWmx+Sr65yIn6WmwNviM0TLLfkllx56duBt68iUakau1MvBk/bYrRNkixy3Egup07Tg6PaMBaI=
Date: Tue, 2 Nov 2021 12:50:10 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: <xen-devel@lists.xenproject.org>, <julien@xen.org>,
	<sstabellini@kernel.org>, <oleksandr_tyshchenko@epam.com>,
	<volodymyr_babchuk@epam.com>, <Artem_Mygaiev@epam.com>,
	<bertrand.marquis@arm.com>, <rahul.singh@arm.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>, Michal Orzel <michal.orzel@arm.com>,
	Oleksandr Andrushchenko <andr2000@gmail.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Message-ID: <YYEl8h+WtSZwNPn7@Air-de-Roger>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
X-ClientProxiedBy: MR1P264CA0006.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::11) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 003c50aa-204d-451c-e963-08d99df6ef04
X-MS-TrafficTypeDiagnostic: DM5PR03MB3065:
X-Microsoft-Antispam-PRVS: <DM5PR03MB3065683B85C55FF940C956508F8B9@DM5PR03MB3065.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Qawe/tdJuBkOjLhsoM4g8AFrlIU9EoFWiSJXi4VKi+qUIEWj1YHOFDzcQDSKWFHPyK8u47xjWcPDAdX8sjZ0KMWY48/UL3rt0Sp/S1pFWmwKTm0W25smFJmErWDctQTU85XN+lp2h5p2KJgRKwgzNEQEFm1oz3qFE37MKWY0OPqibZDVCkpFeDG7jDvPvKE1SCGy+lGy6UlYdcgMcmmRYsS9OmbOhbw/wBdv7HMytuiYqhgytmTHncbAu/AaqnyA0aeXwY9J5qXECVnZ6WSG+2WnOpyckY3YyABr0N/lSAahyJaks7DnEGTsyXxFCp9GD/5sEOe04gJDElVfyMn6f20h2sKh+bvKXkfa+9jBlqlm+Nx3NIbuw0rQvzNgtwUOfQDDer0ASMQWgf7Ea37bdvKLulrjEDczbV+NuXyhz8Y+MkwpmE0ZURDbKQO5OZJ4/g62t1Estuv0NPZS1B9Y3k4jYbPtzJdJ3xVi6wPdzV82s/M+hLbwkhompz2FDAkmDmt1Uy1UgIR76PFUfr8QT8mVMEno5v/d4HPPgYmeWKIDF+BOUSXOMPUcwE6bIjJnDj3nXHjtPdSEGagU77plE+k2FmyyH7hoIhW9PSc3+Bx8QB/oZ6w4btqehWVO8eiDNp2MRARDRcDZYp48lRdawH9SwMGbp6XCVseRs6mXRU1tUck32sTgC/GCUEyTzolqnUnUBfmpQfxCAqq+F1BRiA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(66476007)(66556008)(82960400001)(4326008)(9686003)(186003)(508600001)(8676002)(5660300002)(33716001)(6916009)(86362001)(7416002)(316002)(6666004)(53546011)(54906003)(6496006)(83380400001)(38100700002)(66946007)(956004)(2906002)(8936002)(6486002)(26005)(85182001)(67856001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cWVqMzUxTitZd2kzSW9lUnp0NnVya1Y5UFVSdWFobTFrREtjTnhlTit5TlpI?=
 =?utf-8?B?aFhGbW9HSzU4d0xFeVp4YWVDZ1hYbHdhTVJhK09YcHFMeFZzeFdDZHZjeWFZ?=
 =?utf-8?B?TE5CNHFxaUF3N1dtVUU3dW5GTE9leHBBSVB5M0F2TkFFOTNQb2xNNHdJUG4y?=
 =?utf-8?B?QS9aZlJFbjYvU0lNRjFISXdXa3cwZ2V5b0ptWERWaUdHYXkycUppLzZUdHRk?=
 =?utf-8?B?aG9IYktMV2k3V2owWDhWNENnMGhnMVRtWmp0NVVMTXYvR053bWZDOStjWW9J?=
 =?utf-8?B?Qm5oQWQ0NUVIYmJPRE9tR3p3UmE5bjFGVVZ3ZGFFRUNtNXlaMzVuWGZnSitz?=
 =?utf-8?B?cC9HTnQvUjVwQTA3RVV3R3Z6b1htcVhBQXdlZVcwWDh5UnJROHdkakdGRTk2?=
 =?utf-8?B?RnF4dXdObjU3bW11M09EVHYzL0lialRBYkR4LzExUEIrV0w0S1JyOXVERTJ6?=
 =?utf-8?B?UUplUU00Sk01T1lsT1VISndHZ2JMK1JQSHc4YmQ2L09kcW5WcFRHWnM5VUxV?=
 =?utf-8?B?Qkl6b3VQYitPcnEzM3NDZFVEbVpDaG14MTVIZTdNRXFIRlM0MHh0dFNYT3JR?=
 =?utf-8?B?THRVQTlEdW5TekN1dW42MlJaU0V3dDk2cmhJVU5TdTNvUVl2ZVhONmY2aVhI?=
 =?utf-8?B?d05KRkloMFQ5M3JmOTRBT2lWT1NBcjRsNktoVytiNytUT0tSVTNBbkVxSko0?=
 =?utf-8?B?SDhuZ29nR0tnWUFhd2NiOFhMRjhVNktSRTBJWXk1V0xlS3pnNldiUldTZHB1?=
 =?utf-8?B?VjFQdCttYkw1c1cyNjFuRGlLVUNsS0QxQks3M3BIRXpqY0thaXd3bTNHR0pB?=
 =?utf-8?B?U0ZDS1hmZVlXNmFBWGNUd01oR3hRNDRhbEwwNFRyOTRubVlEWkd2Q1I5WEp6?=
 =?utf-8?B?RmE3U1lMdkdzR0pLVTFFNWdlQ3V6bG1NK3BUMk04SlVKenVzNXJkVEFWR3gx?=
 =?utf-8?B?MmZ1aXFhU1dDUE16cEtWdHdSNEdHKzlsU0Y0VmNITVB0aUhYbG1ibUJxZ1lx?=
 =?utf-8?B?bXdXbUFyYjQ2Tnh3bDd6L2pCajlYVlk1NkhQMXYxSmxwU3dJNXBsOXJHNVdL?=
 =?utf-8?B?NElvM1BGK2VtSzJ0VkVnV1FwemZhcmRBOGV4VGMzWFR1NytJK3g4VjEwYmxm?=
 =?utf-8?B?OVo5ZWQyWkRLU2tCblZ1S253Z1RwWDJPSDlpcGlZZkFkMk42a2t3bVNBU1Nh?=
 =?utf-8?B?VTE0SmZLcVJvR3VWZTZxTzVDdDQ4YXc3eDdCcHR5RjcwdjFNaTVlNktxZXBo?=
 =?utf-8?B?Q0pZYmJtT1JQb2p2eFZvN0xDakN1UElKMXRkVHUrY053d1RaZEdVSmFsSmtW?=
 =?utf-8?B?UE5ldlNNQXVvQVNOQThEZlFuZ1FOOUxaMVhXb215SjNDclUzZGdkOC9KNDN4?=
 =?utf-8?B?OGR2Tmx2aDZYM1greGcrdzJucW9VdW1EYklVc2E1MlhpelM0WmVDYVh4QWli?=
 =?utf-8?B?ZDlpL0o5Y2h5MHVDRHRwbTl6UjVIa0dPYjl4RDRGemxGT3czNmM5V0FOYVNR?=
 =?utf-8?B?dTBicmJwNlFuM21uOUp5eHhBUHgrMktDa3NGQjFzaDlTSER1OS9yVmFTamdK?=
 =?utf-8?B?V2VLRDFnSEp6YitLN3RNWFA2Y3N1QmI0K3ByMVFkQ3gvbnBVdHhSbUtkVXNu?=
 =?utf-8?B?bTJNYVRObXBuS3J4c1hUVUdWaCsvSGZjWDJiLy9kd0xEc3ZBU2RNVUQwQkh3?=
 =?utf-8?B?bHBJNEZaYTRCb1lkcHNoUnpzZ1dZL2VVWWFyTWdiVmhjRWpkcEVVY1hlYktq?=
 =?utf-8?B?QWhmUE9weUF0MGtSUk5seXNRaC80ZFVBZFpqbEUwKzdERWIxb0FxSXBDNUxx?=
 =?utf-8?B?TGw5SjFHWEJ3bkVxMXhJTzhXUFJwNW5ROE9Vb0hFWkc4R0JEbVNEZWladmEx?=
 =?utf-8?B?VkMyU2VidkM1YjRPd3dobDMwTDFsYlhmUlZIbmJzNmtkbS95UVlxWm0rcFRN?=
 =?utf-8?B?dm9JREI1R3g5RXRDc2UwVFJaT1puWjVsNVpTL2FuQ29nRzg1NkJ6RFg3RUU0?=
 =?utf-8?B?SStmbXBocXVHWmIzWVJUMUhjWXNhQ2pSMVNQelVEZ3RHSXluU29US0V6bHY5?=
 =?utf-8?B?T29QTXBUWkNjSFpTTVpKWVNxTDNBSjcwODNKdUJnNlhEZ2x2TzNidXdaSnRY?=
 =?utf-8?B?amxxYnJUQ1NKWDR2RDB0Y2RJRTZ0N2ZTSzlNOURWTmtlRDlyM3dPaFkvSm4w?=
 =?utf-8?Q?TPkQk+7MPBeOEigTp4EikOc=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 003c50aa-204d-451c-e963-08d99df6ef04
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 11:50:14.9418
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3P03ViU/lhzIm9MFKeaNxV2U+7LoS2zQ0+Q/4ojaMZUXd8Ak0y7y3MYZxtpWEGOQ/gZHeCMl5fyeQBjIsHe5fA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3065
X-OriginatorOrg: citrix.com

On Tue, Nov 02, 2021 at 12:19:13PM +0100, Jan Beulich wrote:
> On 26.10.2021 12:52, Roger Pau Monné wrote:
> > On Thu, Sep 30, 2021 at 10:52:20AM +0300, Oleksandr Andrushchenko wrote:
> >> --- a/xen/drivers/vpci/header.c
> >> +++ b/xen/drivers/vpci/header.c
> >> @@ -451,6 +451,32 @@ static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
> >>          pci_conf_write16(pdev->sbdf, reg, cmd);
> >>  }
> >>  
> >> +static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
> >> +                            uint32_t cmd, void *data)
> >> +{
> >> +    /* TODO: Add proper emulation for all bits of the command register. */
> >> +
> >> +    if ( (cmd & PCI_COMMAND_INTX_DISABLE) == 0 )
> >> +    {
> >> +        /*
> >> +         * Guest wants to enable INTx. It can't be enabled if:
> >> +         *  - host has INTx disabled
> >> +         *  - MSI/MSI-X enabled
> >> +         */
> >> +        if ( pdev->vpci->msi->enabled )
> >> +            cmd |= PCI_COMMAND_INTX_DISABLE;
> >> +        else
> >> +        {
> >> +            uint16_t current_cmd = pci_conf_read16(pdev->sbdf, reg);
> >> +
> >> +            if ( current_cmd & PCI_COMMAND_INTX_DISABLE )
> >> +                cmd |= PCI_COMMAND_INTX_DISABLE;
> >> +        }
> > 
> > This last part should be Arm specific. On other architectures we
> > likely want the guest to modify INTx disable in order to select the
> > interrupt delivery mode for the device.
> 
> We cannot allow a guest to clear the bit when it has MSI / MSI-X
> enabled - only one of the three is supposed to be active at a time.
> (IOW similarly we cannot allow a guest to enable MSI / MSI-X when
> the bit is clear.)

Sure, but this code is making the bit sticky, by not allowing
INTX_DISABLE to be cleared once set. We do not want that behavior on
x86, as a guest can decide to use MSI or INTx. The else branch needs
to be Arm only.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 12:00:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 12:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220154.381308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsSd-00084y-QH; Tue, 02 Nov 2021 12:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220154.381308; Tue, 02 Nov 2021 12:00:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsSd-00084r-Lq; Tue, 02 Nov 2021 12:00:15 +0000
Received: by outflank-mailman (input) for mailman id 220154;
 Tue, 02 Nov 2021 12:00:14 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhsSc-00084h-Ao
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 12:00:14 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 6f05dbb6-3bd4-11ec-8556-12813bfff9fa;
 Tue, 02 Nov 2021 12:00:13 +0000 (UTC)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2052.outbound.protection.outlook.com [104.47.13.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-11-NCXDmO43MC6XJVfyz3in4w-1; Tue, 02 Nov 2021 13:00:11 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6174.eurprd04.prod.outlook.com (2603:10a6:803:fa::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Tue, 2 Nov
 2021 12:00:09 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 12:00:09 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0042.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::19) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Tue, 2 Nov 2021 12:00:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f05dbb6-3bd4-11ec-8556-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635854412;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=N8UUqibQd0B156fQU9nvc/7+y8V26bmou3sTTpFX3Ys=;
	b=Hh6/F9cFqORlX6ZBt4bsYUqWZwrOorw7+L5I6ZfZX9UIPTc8GIGbo6fEY79m1sfYygIFit
	PYpj+F38JgI+3NQeOHkFTyjVVGzh72fwI3zhow76/qykQi/B7dTRCgAVkHtDm73qqwSkVl
	rnif0eDyHL8A6y+w3QV1SGhm8G6Br6g=
X-MC-Unique: NCXDmO43MC6XJVfyz3in4w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=D6OHLmfBizm/SfcYMv7A7lJFJLWW0VBxN1BVHxaH4kDoRUBf0kEI28Dn+yr4GfWSB/VXx5rbGkwkXmhTB7DDT3v+uKcaRQt7rsGfuuW1XSMZbmRiPDeoHJPmwUqmViGyyZamkRCPVLSaHwUx1Gpe7RbSDLJPHe5o888WIyq9rUkQ24pA62zOIy8Xi/qRnRtm4orcY8Qas9o7zwsSTJp2bcGhIJYF6ehACYC3dMwvEmMBELd6xQgYiHpwpPOVCxUORq7Z2xtfbkjKuhmuAT/eqC0HOadQUJ5htsGiVMT/hvGk+d12brmcsWJhhYDc+NQaWSE9CLp8NrQA/Re9+gN5IA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xraGvvAYIxVrF7cLPhWVQFWWae9lbxBxuKE/gXvIgJU=;
 b=KT/55BhqNdli8fhAEf1r4gnT/syczeLm+oyZ9XA/BIz3oFRzjC1GcoykeuvQ27Hk3AZH5k43rMt2rCjLD57ZiU67NICDAHNaIHnCHaU0fL+jYQtZ/FVJfB66FToHPagKgecAqsxNJMA7UbkQiPS95nHE/vT/SQRuHWePGHoUtTqh+znGttNK69OrZp9EoljhKUdnX4eyArsV7s8prfOlJrOsdCne2DpmdbIbymcoRe2sAzuiEOOT4Y5HiMaw1A9vM/RiJMoFv8nfqHvrZurpXUfz0efBiYOc4617HANfIK56umyJW85uubhbyXMUJq0vJNYubCtH8Lpev/D/WPouvQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f3fac17f-12f2-2e75-dcd2-4f2abb57d043@suse.com>
Date: Tue, 2 Nov 2021 13:00:07 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] x86/cpuid: prevent decreasing of hypervisor max leaf on
 migration
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
CC: Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <20211027140050.67509-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211027140050.67509-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P191CA0042.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:7f::19) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6087906f-01d3-43e9-75a0-08d99df8512e
X-MS-TrafficTypeDiagnostic: VI1PR04MB6174:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB617478685DFEB0E442F91605B38B9@VI1PR04MB6174.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4125;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	b7NX7/027APKl8Y//IIGFJzviXlA+QXO+OPBQT0A45m0Y/yQuUGzIWRaTJduObCot1mASjLvFe2KDb3YZ3z4eAWcGfAWpht+gKp0zUFRMbc8+fh5Z7tHIeOe2V1cY2Cdw/sytb97dZNXcyOs/zoz61WiXJAFDjKs6OHPBvwtFo+DODE5lcA/oDBHV7NhC+MP2Y9eggK2HQxMFZsv1FflZesNxWJEJK6ZVdhciMufmF8d7VQERPtUjeur+qhelQPC7jWvKTHKFymDbxdDGoRVuMjmUY9+5LdghkXbeG8zGARMNtizp0nhKMeXTaYaZ4rqUe/SczKU/Ldph0wBc4Hmku+0iD/fSxL+ufYfgOvSV9ge/lwg98dgpK1z98udFkBTGAFVal7WMF1gDlgg7QY/9S/4xd6hA/1JKkG1jU2FIOZkNgTnH8bczt2ubshUC1nFbe8hGaVL1n0mn+9h0apboxFb/ZZW7JS2C8KX1oD7jZO7tfxHJIgoLFAqroXsDbPFUOxKVru+dcmBc/cwgu9VKSm6d0Blez9KhdMVUyhknE5NxXMtT6XbwRZrUPHLy6rSie9nWsUIgEou41LuF9uIRGDYiqon3qlrcJBZ8wP9GsF6eGANKZ88DY6K96H9I/ELncAxYFrKLQw9q6abaBtkTRtGrLPpVKjjVf4t7TLOZylQFPDhjsXzWiAD8A56ls9xs0rntJljuYLuYXY47ZRcwPyJxXeEh4GNSQnweg5csJo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(5660300002)(66556008)(66476007)(2616005)(956004)(2906002)(31686004)(36756003)(66946007)(186003)(8676002)(38100700002)(54906003)(31696002)(26005)(86362001)(316002)(6486002)(4326008)(110136005)(16576012)(508600001)(53546011)(83380400001)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?mBPMrrYPc94hvXKfshvIRgcFGtU1wvPvoYc4uD9XeRmii3goH1YI8kQhFqds?=
 =?us-ascii?Q?w/OUvXJG979gRJ71lTr5CLvK7Sz9nFzl3DVbyD3OfxbxFpXQrp/+P7kEl/Wn?=
 =?us-ascii?Q?kjAVU0DrdU2+P+TW+urf3TVzq3koRmOxOINd7uJxkyabjMGlEL+d3suYkmXH?=
 =?us-ascii?Q?c1dmfIkOY4FaQJGDsAxIzdDQCxYXdZnGbkO73vUept/RemNmWL+XFzD5+AhX?=
 =?us-ascii?Q?nFk55Z/R2NwEvaf8GyUaJmbo3glduyyVzJ1dNlodsrBykz6whgT4P8fTFlSZ?=
 =?us-ascii?Q?T4KSKciskRU4UoTx6BvsD5WXPGJVasmlpcu0iiMGYTZZdXfX1bKuYJezWxlh?=
 =?us-ascii?Q?QtmGKaoAGR+oQy1G3AI/UoYSUZJktd2i4VlAFAPptSWfqOqvJAMu5rMq45Y6?=
 =?us-ascii?Q?URog5I9RJDxM4nuRK60TRyk4/GBV8tg1Q2sT+RdEyvx5ojOxMBRvyS7OZ54s?=
 =?us-ascii?Q?Vk36FBbEgi77FkHmUk4e3LCm/jzgkkDCrGoeQ1O/MQHE78JOURDVIfbKqd+K?=
 =?us-ascii?Q?oSIkVDenu0uiZP1HdNJhUgho3KnC3IoXtUFOszt55KyFBxOfX1a6ArE5yW4v?=
 =?us-ascii?Q?JV6QazxJnPWlO5EINXHjG8rNk1TpgZ9/LAdaWUh+1FWtomuLV/I+vpDDw12a?=
 =?us-ascii?Q?1zQVjd0yElY/bpgWsshDjkgrt7XjD3l7WJLUC/RzYfRJweiurJyzessXEJg7?=
 =?us-ascii?Q?sk0IgUwyGRXxLJ1OTwpMW3Zmfdhahegce3DIIhT1+eUik+jRV6oQ0QiHg/x4?=
 =?us-ascii?Q?R6+fGqADHQkuvQ6P1TS/E5hnc4o2JEFZ3nzACAgpqXDJs4laWwXByrFAw0lv?=
 =?us-ascii?Q?Sc+XWeZ0yrvmrflpl8TllMIAtzeNODkx8tj6xgwIIPU4eVUlOfZUKwTHU+ds?=
 =?us-ascii?Q?TNzo1zJboOL87jHpHGqtqqDAuuQhwGZnGokZwryxwgIvYN/bQFiQLzwQ8Zyl?=
 =?us-ascii?Q?rg1Doo1B44bmMLKJj9afk9imRc6DTsBSBFPRQmXVZzXM20SpCemRJmDEpcw7?=
 =?us-ascii?Q?3ee6nBvQXJCBzmHekMThlaqHVcjX+Fvm32zngxIr20P047h95gybGSyqz3jt?=
 =?us-ascii?Q?rgaau9oHWqm2l7l3GjYxnzq8xRChFhugwZ50EVpJikT7KvwtbE393M+A9meY?=
 =?us-ascii?Q?AqKrY8tjx9eTjmPpaln0RD3jiOkSftPGaoehnw4Vs5yvwHpMiMJXr4wKTUSh?=
 =?us-ascii?Q?KUBoN2gvQQ1jL7jdeeKhJXeaYJ73xf7yuiWc4I+JNUgiUQRwLo5hlBkc7JnN?=
 =?us-ascii?Q?fNqMtmjrpRNCJGN0baJp+F2S3QBb/CkIoRG+H5a54oGnoKLecQc4o80WC+zu?=
 =?us-ascii?Q?U9JzFJVG5cly+oCgUqcuUOkG/QsxViNrRi4pqpM3+EWID4sIQrsMVx8QZthL?=
 =?us-ascii?Q?Ue0oXytjJpo+lvIp3TMYdMMcV6lUZHwCVO8bw5AC9trhJ0Vx8TDtc5jsOlz1?=
 =?us-ascii?Q?FsYXSsSZ44HdFlqG169G6Ag1WrkjqLNTDWDr+eDSqA9sGFP2IAG+4qHCVxNi?=
 =?us-ascii?Q?TUQq+C7a3l9nnot6ZlbAYvLmBHDF+j5u2MkHQwCI0YB7Gy0Acl/t2cpiYS8+?=
 =?us-ascii?Q?YCVv1BeN59wrVMHO+3y24xvm0vGT97pFZAyaO1j7YMkFa/MIRNocyZYc5KOe?=
 =?us-ascii?Q?ZkxGKHZ6tqqF9Lp34QSvJ4k=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6087906f-01d3-43e9-75a0-08d99df8512e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 12:00:09.0214
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JUnHO+hM35ThqsQOcmM1G4lqpKZQYxCSS6Drf2312v83pgZrDTwOhg4mBznlyjj7HDo7q9TY9NvWX+RDBYqGXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6174

On 27.10.2021 16:00, Roger Pau Monne wrote:
> In order to be compatible with previous Xen versions, and not change
> max hypervisor leaf as a result of a migration, keep the clamping of
> the maximum leaf value provided to XEN_CPUID_MAX_NUM_LEAVES, instead
> of doing it based on the domain type. Also set the default maximum
> leaf without taking the domain type into account. The maximum
> hypervisor leaf is not migrated, so we need the default to not regress
> beyond what might already be reported to a guest by existing Xen
> versions.

While this is the missing description to the patch I had submitted
back in May upon Andrew's request, I have to admit that I don't
consider this a satisfactory explanation. Shouldn't hypervisor
leaves undergo similar leveling as other leaves? I.e. upon
migration leaves or individual bits should neither disappear nor
appear?

I continue to consider it at least suspicious that HVM guests get
5 leaves reported when only 4 are really meaningful to them. I
see this has gone in, so I'm likely to trip up on this again in
the future. Might result in the same patch again then if I don't
end up doing archeology at that point ...

Jan

> This is a partial revert of 540d911c28 and restores the previous
> behaviour and assures that HVM guests won't see it's maximum
> hypervisor leaf reduced from 5 to 4 as a result of a migration.
>=20
> Fixes: 540d911c28 ('x86/CPUID: shrink max_{,sub}leaf fields according to =
actual leaf contents')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
> Cc: Ian Jackson <iwj@xenproject.org>
> ---
> Regarding release risks:
>=20
> This is a partial revert of a commit.  The main issues could be that a
> partial revert could break the build or leave the remaining code in a
> non-working condition.
>=20
> Breaking the build will be easily discovered by our automated testing,
> while leaving the remaining code in a broken state is unlikely, as the
> chunks reverted are isolated from the rest of the change in
> 540d911c28.
> ---
>  xen/arch/x86/traps.c                | 6 ++----
>  xen/include/public/arch-x86/cpuid.h | 6 +-----
>  2 files changed, 3 insertions(+), 9 deletions(-)
>=20
> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
> index a1c2adb7ad..79fd276a41 100644
> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -1086,15 +1086,13 @@ void cpuid_hypervisor_leaves(const struct vcpu *v=
, uint32_t leaf,
>      uint32_t base =3D is_viridian_domain(d) ? 0x40000100 : 0x40000000;
>      uint32_t idx  =3D leaf - base;
>      unsigned int limit =3D is_viridian_domain(d) ? p->hv2_limit : p->hv_=
limit;
> -    unsigned int dflt =3D is_pv_domain(d) ? XEN_CPUID_MAX_PV_NUM_LEAVES
> -                                        : XEN_CPUID_MAX_HVM_NUM_LEAVES;
> =20
>      if ( limit =3D=3D 0 )
>          /* Default number of leaves */
> -        limit =3D dflt;
> +        limit =3D XEN_CPUID_MAX_NUM_LEAVES;
>      else
>          /* Clamp toolstack value between 2 and MAX_NUM_LEAVES. */
> -        limit =3D min(max(limit, 2u), dflt);
> +        limit =3D min(max(limit, 2u), XEN_CPUID_MAX_NUM_LEAVES + 0u);
> =20
>      if ( idx > limit )
>          return;
> diff --git a/xen/include/public/arch-x86/cpuid.h b/xen/include/public/arc=
h-x86/cpuid.h
> index 00926b1fef..ce46305bee 100644
> --- a/xen/include/public/arch-x86/cpuid.h
> +++ b/xen/include/public/arch-x86/cpuid.h
> @@ -113,10 +113,6 @@
>  /* Max. address width in bits taking memory hotplug into account. */
>  #define XEN_CPUID_MACHINE_ADDRESS_WIDTH_MASK (0xffu << 0)
> =20
> -#define XEN_CPUID_MAX_PV_NUM_LEAVES 5
> -#define XEN_CPUID_MAX_HVM_NUM_LEAVES 4
> -#define XEN_CPUID_MAX_NUM_LEAVES \
> -    (XEN_CPUID_MAX_PV_NUM_LEAVES > XEN_CPUID_MAX_HVM_NUM_LEAVES ? \
> -     XEN_CPUID_MAX_PV_NUM_LEAVES : XEN_CPUID_MAX_HVM_NUM_LEAVES)
> +#define XEN_CPUID_MAX_NUM_LEAVES 5
> =20
>  #endif /* __XEN_PUBLIC_ARCH_X86_CPUID_H__ */
>=20



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 12:13:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 12:13:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220168.381319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsen-0001F4-W8; Tue, 02 Nov 2021 12:12:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220168.381319; Tue, 02 Nov 2021 12:12:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsen-0001Ex-Su; Tue, 02 Nov 2021 12:12:49 +0000
Received: by outflank-mailman (input) for mailman id 220168;
 Tue, 02 Nov 2021 12:12:48 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhsem-0001Ep-OH
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 12:12:48 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 30cb3d3a-3bd6-11ec-8556-12813bfff9fa;
 Tue, 02 Nov 2021 12:12:47 +0000 (UTC)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2054.outbound.protection.outlook.com [104.47.10.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-24-dsSn2HWhPWqy0m1C0H2knA-1; Tue, 02 Nov 2021 13:12:45 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4189.eurprd04.prod.outlook.com (2603:10a6:803:3d::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 12:12:43 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 12:12:43 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR3P281CA0053.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.6 via Frontend Transport; Tue, 2 Nov 2021 12:12:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30cb3d3a-3bd6-11ec-8556-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635855166;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Kp/cFWWPNFd4S+Sof3P+V387ePicF7tuTQi7nlzVCgs=;
	b=MAlaYufrRmVX5HyJjLhU2CdqbjWiFZ4YqsGBqC2SSoEur//sw+XjpSDiI3IPQ0Amzdd5IK
	c6N0uEcz3+xr74jz66BNBaiE2RGmQ1iIgg5dpXvTifCf4RbMQcJTs+liqf8Y3w6/ClVgOa
	juAnSkMDYDDIPn/NIY3ZpMXKf3bi4zA=
X-MC-Unique: dsSn2HWhPWqy0m1C0H2knA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YwNg8SRUK5Drr8uHMdpKg9dOqBEt6+XFmdkfEuurGQo7VxsDIS04mW39475voUIO/KIPYYjK1JpUzb0iAhewz/FsC2FWtF9f7w8WkqpPw45IstUachoLEdX8cb3uWZm4DwHIukyPv0pzo/BOYuMWnX1qaXKKPNvUWiZJJP1YB2RDRyRrRab8qV/7mzxufpvh4TvM6RsQ+AZgraoHWCYoyMtid1prUVqnlODShMc9MlQcutTng2h2nIGtCHBTpQlcMbgQchrZJucxz5GucNxSI41VvhQWsvFNHq6uEShj+vhw0sD761SAKAZmdhi3iu+ROxT/T+Z7bV1NIYHVlPopcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W//mcTxEnQG24WH8H84I2kT696pxUDWRtyKCBtqPqj4=;
 b=RoRQ5yf33lkqVgDePJ/k7hpsorQ2u7QAy8bhkxNObg49jiKACNYnNzvMO2Ejc1VzZzQ5g0fW6WBlurtL23+Tt+rX/RXeqpqeurECWbxgPd9e4AKWKANY1Yca4zin0e/W2N0PzPM2wMbVLk2z7L0pN5wn10tXGi4cY9zJCpXZt9ILlr8ohWU1JnpGBxHI7dZ93IVdrsKylfO/mWnAc8fn5vyE33E5qDlRT+rhTdMEqCnDEG8Ci0VBsE3g54+D7UOpYdH4lAexf+ITu0pz4lfjULPauVC+DUZoG9yqLEGp6wibrKA4H5wsjhcSz1YBPY66rSz2pvFTtw7FDyH8/3ijog==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <43b87e4b-292a-57bb-5f70-5c8ecd0ea17d@suse.com>
Date: Tue, 2 Nov 2021 13:12:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH for-4.16 2/2] xen: Report grant table v1/v2 capabilities
 to the toolstack
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>,
 George Dunlap <George.Dunlap@eu.citrix.com>, Ian Jackson
 <iwj@xenproject.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
 Christian Lindig <christian.lindig@citrix.com>,
 =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edvin.torok@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
 <20211029173813.23002-1-andrew.cooper3@citrix.com>
 <YX0qmTXBD3jSXjBI@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YX0qmTXBD3jSXjBI@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: FR3P281CA0053.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:4a::6) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ec352171-8083-4cd7-96b5-08d99dfa130b
X-MS-TrafficTypeDiagnostic: VI1PR04MB4189:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4189B26C723C3D965D71C250B38B9@VI1PR04MB4189.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	LcYeogG6UPHgtNMPtbXBCR/MDKA5Ax6V5sfTJdjj2lRSRbfLUPhY/cQioX4uFm6dDfkVnAcVdBm5G/UDCbnLnsUH3L1+TlMhYwKIACimC3kWnmhbD5Aq5wJftOrnYGaeLsMl5A/P+9JjIkoOOPvkXx3Dn5wMfo3GgGaNJoRraorOnIFAATc9g8arBkVpyNACBRctyaockmXVmqCykSdDr8XQ0G5Odl90gnU48gaHQr/1n3zUkGMsfHzfmXndbI4rNxewGJZAWRhU2PSeOkUDBd1EqAN/wLrigDI0w9OFK6sJeNVYi7sCj+cpjLxUN65GcsRR4vI6bqcc1kWiiz+0F1JLhth1UNmGXxENe2TFK5xkurM6satApuxMoVzOPbZLeLchxKssIqtQ0u5mGR/C0/bf5Phdh1/WFXNmp9HELLyQUlt2GyraKmYwaCflfgGKfDp5atv/Ub28MLowLnKotIf0dqEDRpS/91F3iD+gHb1WwGDW/cMuWeLUDIJYtv8lgxgtG+2BnrXZEyykkBzNnJDzM+ljpMk5vQPuk3Oaf3zBxWl6JEkpFDoa3qG508GGM0lTllUaisyhwwf8EZT0we1k14YQk0wIsXQdnj8OqepFMNkwDMFZLe5EJn+jEoWlXROLJrzxpFwqCHX7ZD++Junu8p11cP0WLdg9PPNAtLxSLBTYOwx0eOCH4A3B39EMuoLvXccOX/663VI5YaOKfhHrlK9/xnKiYbbCWQ2gTu+dTET0ZF8dLzam8/Q8RMb8
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(316002)(8676002)(53546011)(31696002)(16576012)(83380400001)(54906003)(31686004)(956004)(2906002)(8936002)(508600001)(4326008)(86362001)(2616005)(7416002)(38100700002)(5660300002)(6486002)(66476007)(36756003)(186003)(6916009)(66946007)(66556008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?y/Ax/W80vF9dQ0z7HgooSbd90sZLVpBpd0v46pit1jEDf+56Wy1ovry+v7ww?=
 =?us-ascii?Q?wde8zEf7/MLC4lYvHRhApbZ0yO9OcZbuKXdy+Jy+HvvNUbbGUFztVs0vbQfT?=
 =?us-ascii?Q?Nq4G3lmBqorRJuW6dd3DV1At2wLxPvtizQR6m2PCfrkFojOYGhyOeveeIBGb?=
 =?us-ascii?Q?w3RGpyB4URC5DTsBXfYo8fAiaGGoXinqm7zSd99+jT3tA8GILUBy+p3DoZgK?=
 =?us-ascii?Q?qQS2iiJlZv6fU+s7zb5KDhMrNB8flnKfM4RfCuP88Ea5VvcyAlGF7vLEkek/?=
 =?us-ascii?Q?ZK0Iq3Uor4zMvXkSUER9rTGtTp551Ki8u+ey8/9lIUEq4ZaxVubj2qXLUiYF?=
 =?us-ascii?Q?GsOeY3S+dyC0m0YanN1TLPhVeB5oCYTNC0S4ywDalUDc4BMf69qIAyQXGEht?=
 =?us-ascii?Q?Cp6qsxXp/15qOySt6+nP4xMvmGNRIVlK7EkVMSxQRr98b440tDiNiBoP6Vox?=
 =?us-ascii?Q?oINF4N44vm2k5075CGQSExIRzlVGDkm+Fuswu3HX0cALfL2mg2pZnHgQoeNZ?=
 =?us-ascii?Q?/4FSFqshTfzILfjOKMm+qiztJZM2ygrYcfRkmahUZ2xFS2c1jF9qS9MBlg8l?=
 =?us-ascii?Q?YCVC2wsI2X7mY79RPOxNCnJ3mz5gfKb3kNhzZNOsVO60wMKyHGL2fn64MzMP?=
 =?us-ascii?Q?7L9EvR/gFHGLOKMWEm2TjRatpma1oHAmIGIZClfc8Lm/lPa/cn8umliSo1Tb?=
 =?us-ascii?Q?M2sZy15OZOHjRJTkKoee/WBorqVza1NUnDTMMnRPqJXR/WnAZ2Co/Xyp51/3?=
 =?us-ascii?Q?NTXcSk1zYM03fMiCA1/YWHXw7QHZkOCRvl7aSANAtYGny4KndeTeILnOWQNt?=
 =?us-ascii?Q?22fm9razu5TMG0KaAAsI7O3A7YFICUcH7CuIUOG5vWUZQTByrnpkUjzI9kPp?=
 =?us-ascii?Q?pGYEy9wrsi7lwtMbBqDa9nFYOcXTlBlLuxFB/7xDnzLeALdJB6sG3G9mFlBK?=
 =?us-ascii?Q?TE0XyNfRuWnGQe31cmOqjJV8hHryyhH46ERVlFHZMgD1P+vE7OOtxkXJpAMs?=
 =?us-ascii?Q?zanP0P9OZLOqLGom9j7SbJfa1iyP99y0YKEQ/wFBlW2uvAxqV4bjb2+DNAC5?=
 =?us-ascii?Q?xYCIfcVKPwFoiAEPPODXi92VznNNbkQiZ8E7oEt1Y/kQns5ZwtKflEo5mYzU?=
 =?us-ascii?Q?3aR2o7ve04mtFodLkP0tvuFGEkbdwc+ceAS8T1tAZ5IImEBprFx7m9fqxnR0?=
 =?us-ascii?Q?Rlls7SqX1j7jAiea5LCFyFtUhb9vJr6KdOM4PQXoe5LBVoeUcstethj7Y3zh?=
 =?us-ascii?Q?XiykZcJOaPSK+ASGWLZBEqMZu0JHcpypeBRzWo8gl+r90DXml86tERmoKIA7?=
 =?us-ascii?Q?PCLrVxeEe2EX+AJtsEZ/gQeL9ySFYiC3zrtbd92h2XC8Rv7UpCqsNJ4DQhz3?=
 =?us-ascii?Q?PtH1r3mlBzT5gslqN7OgCJbxneRxROsV892+2Ouy4vVAAjLZbcqWiFaI+5lo?=
 =?us-ascii?Q?wThz3aPbO9xYxPMx01IOoZF7w3t4uRrbSfJWAB6Xj2cikvW+F02PzmVIbcNQ?=
 =?us-ascii?Q?XHQ12INiZqbwjNbHX39X0ho7QRdAaNMlkFE+TB2oaNbifUCqenoO2hNrqoqK?=
 =?us-ascii?Q?Y8ayvv+Cj0/YBmD90QVpQZTkjcviG9IRMKVVRwgf+89BafU0vpzVpMUUMSaH?=
 =?us-ascii?Q?KLJmtHt2ongDS38rzWo6nho=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ec352171-8083-4cd7-96b5-08d99dfa130b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 12:12:43.7806
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QVHyUl1pa/6CLETdrn9NZ+Z+SziZnu+tqL1CpbSmaEzu7oZkiTLDoKw7cmZlgMwhMvkAKP98UkoUcNSFE3mMFg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4189

On 30.10.2021 13:20, Roger Pau Monn=C3=A9 wrote:
> On Fri, Oct 29, 2021 at 06:38:13PM +0100, Andrew Cooper wrote:
>> In order to let the toolstack be able to set the gnttab version on a
>> per-domain basis, it needs to know which ABIs Xen supports.  Introduce
>> XEN_SYSCTL_PHYSCAP_gnttab_v{1,2} for the purpose, and plumb in down into
>> userspace.
>=20
> I did consider exposing the versions supported together with
> max_{grant,maptrack}_frames using a new grant-table dedicated sysctl,
> but maybe it's fine to expose the version as a physcap and fetch the
> other two separately?
>=20
> I certainly didn't look much into this, maybe it's pointless to expose
> max_{grant,maptrack}_frames. I think the toolstack will need to be
> able to fetch grant related limits on a per-domain basis like we plan
> to do with the grant version in order to assert the destination host
> supports the current limit applied to the domain.

I think the other two are a better fit to expose via hypfs (alongside
the version). And indeed they are being exposed there already, just
not the version (which would imo belong there for completeness, not
to replace the exposure as a physcap here).

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 12:20:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 12:20:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220175.381330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsln-0002L8-PZ; Tue, 02 Nov 2021 12:20:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220175.381330; Tue, 02 Nov 2021 12:20:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsln-0002KT-M0; Tue, 02 Nov 2021 12:20:03 +0000
Received: by outflank-mailman (input) for mailman id 220175;
 Tue, 02 Nov 2021 12:20:02 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhslm-0002A6-Ph
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 12:20:02 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 71f4697a-cd73-4495-a8a1-b8ba1d4a4519;
 Tue, 02 Nov 2021 12:20:01 +0000 (UTC)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2059.outbound.protection.outlook.com [104.47.2.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-18-RzxfRkMRN6uNBdl6TEOIeg-1; Tue, 02 Nov 2021 13:19:59 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4848.eurprd04.prod.outlook.com (2603:10a6:803:55::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 12:19:57 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 12:19:56 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0348.eurprd06.prod.outlook.com (2603:10a6:20b:466::8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 12:19:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71f4697a-cd73-4495-a8a1-b8ba1d4a4519
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635855600;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=XtQpmfpgL7glnOJ5hgOnALk89dpsTVruCYd+W3wr5dU=;
	b=aapctmTKef0urkK3NsfM3CUD4hNCPSTYDEph/x8CBS0OPofm0PKAeHX8qjUm2l+wjP39Op
	8IUvbBQHrxgZym9AxRYyHAYpz3v2ftfFGvs2IxofqhAfNjgeknp/gDK1L5WDZ68lfjuudE
	eDlM5BUgTQuhXMEOPr6+HWh6mY1keLo=
X-MC-Unique: RzxfRkMRN6uNBdl6TEOIeg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lJsjj7X9nq15/vi4EFo9giKPgj8KvPkt86hpNSsSTZaTdaNDxtSv6MFPNEaQrekaviaBcfl4OnSbNm5AgQzfchxzSZONV2AbubYjHHPomCdsXfP+rX5d1C7uF/wEVdY006578Uz8ceKLzaOaQ8mFKDIsbKj0isvA1CdhVcM+57ZhA1f7ae3A18WX3mK/SrOHmtBoTaGi07Y4TNuNsru8bFDZtsCvkLdBbbpWTbYeFLgTlwOooIiQAooGgZSQsrtLJZZeCEQZHqqLRe0eD287dmnRvWf3x91u07M1nfab1YNMYvb0Vh/zjxgPYLy3Z0LdM5U02QDbRnsQ2U/o5vmlFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XtQpmfpgL7glnOJ5hgOnALk89dpsTVruCYd+W3wr5dU=;
 b=Iq8DXWM57r2lID0QDOT8XYS8a3U6rieavOz+yMU+OVsfgTwl/Gr1UNHLadxIRqEn6ECe5g9UaU+QToswTxUoARc1e1DIuIQ0em4mWGBYS6CBAxp7ks/QL4V4Vq0MwrFxvLdjhNNB+ByKc4EEbj0EJukjHBvpXNabS+ygt75vJMoeRdY3MHHe96X7IBtwPj4N4oMWDjZuIrmzDR8OSgBvG8Z6zvddZ4eiWJ2IsCEmi7lETy/wbO00Ygtydv7Vn4ZnVvJOwpqmWZLkWdINjjU308eeEGyXjyxpsk2qJuybC9cWBu1Xej2bS6syIcTIc7eHGbDzXwlJMMR2CBPt7P+JYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f01f4544-b78b-d7a1-08fc-c966ed3f1515@suse.com>
Date: Tue, 2 Nov 2021 13:19:54 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH for-4.16 v4] gnttab: allow setting max version per-domain
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211029075956.1260-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211029075956.1260-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0348.eurprd06.prod.outlook.com
 (2603:10a6:20b:466::8) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6700596c-5979-4d6a-5c5a-08d99dfb151c
X-MS-TrafficTypeDiagnostic: VI1PR04MB4848:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB48485B2693B5D3AD25982D2EB38B9@VI1PR04MB4848.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2449;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Yul883blgSMlsgSheh7ki7P1GjXaSuY37ssMsLtMTnnvD3S4HScx9vpO5ok2ORCmZch8dj2Ug+S46mLp9boZ2z+pL0rbpFDrWj3U2uC8s2pAS+TJfj0p94ZPKh/TW+07KNNw9QxtdYCIYXd4SBahQM7Jkj4ud3eMu7+q94Vfo64nF+CHfzhQJ2APAQ0amndUb9Bk6+Z116cbe2MAf/b/7mZYK+myacJInmCgakPP1tgCEPh2rI+fYUMpsrjULn9jK7xD8VhTCGBvDAi8oCr1tBmR9U5SpGwFI4nl3nadXAt+KlxUN8Vq7pmA4RP+CWNbGFq7T1AkdwbnsCSpbqvs3Ud1FMgyiVVK6QFCWdQZZ6kI0yGFMB/0a10BwrmUJfWhcvIhy47osY9pvCjNYNEREu2buU+3VFLMU0M7Hv+gLxrbohspQWPa/kVnOGPKreLuiwKQBFiJahQuWSVqmD/EYKyuMQIWUVaaO5bGRrgWmhIWaOg4zito1ZLJyXR6fcGs/vbFEHCSUFghE5meVfzJjcyJsF9QVxdicQwIyjWjQbXFg/JJWvYU/HR35/qOgtsjXBEdPVTfdFeB6qmzDoFI6aXzfkhyVC25q26vSroK5HaH8jLCqpLAvcGdhScw7icgiMqFhfotsbYWOTglvwyyYxGZyqqLzLKrbFO2VrXqJAzszNLj9aOEqJp4qScTWSPmJ0sWraPe3sG7Wzfh/7Gem5Bm6osz6ur6GaB49ho3XYjvmF8s9odcaxIfjcpLsbnC
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(7416002)(2906002)(508600001)(31686004)(16576012)(31696002)(6916009)(8676002)(956004)(2616005)(86362001)(38100700002)(54906003)(4326008)(316002)(66476007)(53546011)(26005)(6486002)(36756003)(5660300002)(66946007)(186003)(8936002)(66556008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VG1TdEpZeUtrRXFsd2U2dFhLUDdWWW54cTRTMXRqamxZNExscjIrTVBOQmg2?=
 =?utf-8?B?ajRQSnloM0xuZnNGamovTUlvaUhQVGpjZ29YQ0E4MElyUXpFakFLQmdhejV1?=
 =?utf-8?B?cHQzVC8xN04vR1JUYVdObUtod3d4M0FNQ21uVDhXc3J2Q2V6Smt6cWdjck1V?=
 =?utf-8?B?dEFzdGkrRnBoRmNZWFJKT3A4am1Vb2dxVnNLQmcyYnJYQlFGT3UzbUhoOTVJ?=
 =?utf-8?B?OXllNFcrMzRFampTTU5GOU42Q1NrUTVnQ2YyN3psaEFwbXRoUXdxeTZQRjBV?=
 =?utf-8?B?Z1FMQlVLV0tacHM0RGIxT2M3NnUzSUJkRDlwQlErMzJMTzF1QzVNeHNWRjdk?=
 =?utf-8?B?QnpYQk00ZWNML2VXUFpLelpPUVQ1VU9Ba0xpSENyN3liQWV1M1lnZGtyM1F2?=
 =?utf-8?B?aHIzRVloUDc1MTFLRmszRi91LzJ0VWM4ZlhhTSsrZXVkaUd1UmRCdWJvWHp4?=
 =?utf-8?B?NjA1VGhESTdpbjl3WDVncWNmMHFNakVLWnVFeitFRGZlYUVXVGoySkh3dXUx?=
 =?utf-8?B?UnVQVjdqZVgwbld3VEpvYlJLRlVPWEpUQ2xKNHVxYWNhWDBxNUZXS05VNVJj?=
 =?utf-8?B?dmlPZkNlemVKd3dNUjV6aXFjbUgzUWQzYWJXV052WDhRVHNtbjFmejRpek51?=
 =?utf-8?B?UmhMaTVid2l3dmVkMXlKaUQ5L3dLYVdHSmlvNWQyblQvRytJQm5UenBvU0F4?=
 =?utf-8?B?dEttU01hMU1KWkpwSml0MTZtMkpSNE53eWpzOE9SeWhvVSsyaWpwbmRNYXZI?=
 =?utf-8?B?b2JWTlkxZUpYNGl6bG1aQVAvdFFCWU5OTkg0aUNQamIxMllWZFZkSkY5Zitw?=
 =?utf-8?B?MUxnSVFOMEJWYzZZTmxEWGUzcHYzWHZZbTdqeC9qcFJCb2k1Rko4QVFnMktr?=
 =?utf-8?B?RGJpdVVhdjFreXZPRnhaelFkNUxEVVdjRFJNTUJGeDl2dE03NXoydUw1YSsr?=
 =?utf-8?B?eGdYbHRUNUdCQWhWSjhWZ25lV3ROcERhZi96dmpKVGQvVlNrMW5IQnkzZHdR?=
 =?utf-8?B?TUN3VzVxejVhZFpKSnRhYVhYRGY4YVV3MkQxejh3TnVMdmdsT3lKdDNabENq?=
 =?utf-8?B?Ymd6ajlOdVRCT1J6QkdGZlU2VURHTlNyVFFlQ3VRTUdKWlVNVnRudnAyVzZ3?=
 =?utf-8?B?VXA2NGYwVHVoRWVWcG5Kb1d1WHlLZ3Z2R2N3TjI5eHBHTjNUOG9rN2dseTFp?=
 =?utf-8?B?YjJSNHpTdjRzR01BMmQyaU5hT3V4bUtpRXJPQ25uMjkvOWNMRjZZZ3BSM0xo?=
 =?utf-8?B?aTFuVExnTDZ5Qm5tR1FaOC9IY2RtSUpGQ3piN01KOEE3WGFkWGRpcy9iYTRw?=
 =?utf-8?B?d1ExRU5mZEM0dVNpaEJNdHB2dzNXOVZHRWZwWnhJOXF1VEh2SUV2dHZCL1dI?=
 =?utf-8?B?Yk41QStBVC9XZWNpM3Nza0JQMExwdC9vOUtrL1BqS0h5ckl2enZzZm4rK3JG?=
 =?utf-8?B?TVZvS0RJelE3TTZNdXNYUTRDaTR2Z1B6ZVNvU2ZSN081UThBaEUrOXd2SFNa?=
 =?utf-8?B?emJESitMS2xjWG9IZXBwUTJmSmExd2RrQ0d1VUxubXhpWlFQWFE1cXhSaTZq?=
 =?utf-8?B?YUtJYmE4MlNWWkMzMHV0MlhaZFNGNFMvdXNvK3M3ajJCYXpDcnU0V01UbXZG?=
 =?utf-8?B?OTZFSFhnVmMyVU1wSUJXK2kyL01mNzNlcHI2cHBKQllGUUtOTFJRSXF5VEJ1?=
 =?utf-8?B?RmFIVlIyMGZ5VEJzeStXZ2Ixb1VDNGowNmpvdVYrSU15Y2lXcmg3cjVYZjZD?=
 =?utf-8?B?Tkk3WWZmTW41SFVIb0RBeVZhOHdVaTlodHExQmlCQ2VxWFl0OVlQb0VudkhM?=
 =?utf-8?B?SFVSU3pWQTVTdzlUZXhTOU9ncU45TWFvYjlnc3k5ZGVHcHhUaHVhWVUrd3lQ?=
 =?utf-8?B?VUhYTCszMFdwVTIwZ21heUpCY0g4V2Y4ZUFwSDhaUGxhOEpsVHlyd1h3dGdy?=
 =?utf-8?B?SEZ5YVgxZ3h1aksxS1g5U0VxWFB5amlTNVlHRFA2R3dLUlNtREhuMDRaU1ky?=
 =?utf-8?B?U01ERHowa2hUTTFxVGtXdDF6dGR0c2xlVitkNHQyeUMwUFkvd1FkOW1JdXJO?=
 =?utf-8?B?NlgxQ2F6SEdpQVZFMmh6YnFDNm1JMktya3NHeWxEZzB4dlJMVWJ0ZlVKbjkr?=
 =?utf-8?B?bDZBbG1WaTNUOGNrWUxIZ2h6aVpKMlpRUTRHMmRMc1pVMmZ3eHJQamhBbGNv?=
 =?utf-8?Q?HqZUNTZtc1HO4TiFOOHAfME=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6700596c-5979-4d6a-5c5a-08d99dfb151c
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 12:19:56.7957
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rmG97CoVkaVzDlJ6Fw7XWABd9dgFobUTt2kp+B6+KIZ98wUslHWjDRaHOeIdUoqewe+tRJAjLeWLZfBGnXoAvw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4848

On 29.10.2021 09:59, Roger Pau Monne wrote:
> @@ -1917,11 +1918,33 @@ active_alloc_failed:
>  }
>  
>  int grant_table_init(struct domain *d, int max_grant_frames,
> -                     int max_maptrack_frames)
> +                     int max_maptrack_frames, unsigned int options)
>  {
>      struct grant_table *gt;
> +    unsigned int max_grant_version = options & XEN_DOMCTL_GRANT_version_mask;
>      int ret = -ENOMEM;
>  
> +    if ( max_grant_version == XEN_DOMCTL_GRANT_version_default )
> +        max_grant_version = opt_gnttab_max_version;
> +    if ( !max_grant_version )
> +    {
> +        dprintk(XENLOG_INFO, "%pd: invalid grant table version 0 requested\n",
> +                d);
> +        return -EINVAL;
> +    }
> +    if ( max_grant_version > opt_gnttab_max_version )
> +    {
> +        dprintk(XENLOG_INFO,
> +                "%pd: requested grant version (%u) greater than supported (%u)\n",
> +                d, max_grant_version, opt_gnttab_max_version);
> +        return -EINVAL;
> +    }
> +    if ( unlikely(max_page >= PFN_DOWN(TB(16))) && is_pv_domain(d) &&

This needs to be >, not >= - the variable's name is inaccurate wrt its
actual use. IOW in the proposed alternative code you'd need to check
(max_page - 1) >> 32 against zero.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 12:23:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 12:23:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220184.381341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsom-0003Mr-DQ; Tue, 02 Nov 2021 12:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220184.381341; Tue, 02 Nov 2021 12:23:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsom-0003Mk-A6; Tue, 02 Nov 2021 12:23:08 +0000
Received: by outflank-mailman (input) for mailman id 220184;
 Tue, 02 Nov 2021 12:23:07 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhsol-0003Me-Es
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 12:23:07 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id a154d628-3bd7-11ec-8556-12813bfff9fa;
 Tue, 02 Nov 2021 12:23:06 +0000 (UTC)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2056.outbound.protection.outlook.com [104.47.12.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-20-86zprB5sPb-Hkk_cJmrQIg-1; Tue, 02 Nov 2021 13:23:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3118.eurprd04.prod.outlook.com (2603:10a6:802:a::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 12:23:02 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 12:23:02 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR03CA0017.eurprd03.prod.outlook.com (2603:10a6:20b:130::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17 via Frontend
 Transport; Tue, 2 Nov 2021 12:23:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a154d628-3bd7-11ec-8556-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635855785;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ADSqHOqPM78e8QSmzMVdosD/25dj1ceueoTZXVCnNz4=;
	b=UjVNBtlRJIHq7DOLGMwxRrhgqjtvI5fZLbEsk1ajqwXLHNEh0bMSF18y+BA/Ow8gblrprz
	pB837FlG139Y9y//YAnuQFZheEVdJJPzuWj5bN9p05U5Jdin8eqCyu82fRA9OvdKHrfDCc
	q6pLhxYwoC3G73wVRQ+bMXels8eAxV8=
X-MC-Unique: 86zprB5sPb-Hkk_cJmrQIg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mKV1oUPsFJ6/LIlZ0NO51vouwQHFLY78Bvq8QBUEVlhTJuiW8ExBYm8+pkbqwGvWNYnkg546RNUz/PJQfAXiFc/CcNjBvfCd3wABF88qR7PStO83CTuC7F0qyob8UoQhVIqZKuUqaOKXyeKvs0bRE0eFu7xu6/9S2NUeCBwnien0RQPUTBXbkOc1TCsLIACvC9aPRd6SuQ0b3l9rIDzU24hMwFNf3vNfZoscYeKAk+IY1twaKcfY3eYc0Svm1s8lYx0lbnkb2NPAKFRcfJkZMMhUfdyVrG4ysq7xYtvHUlytBuD6Bp+4phVdCyubAGIz/GsgF47An1n4Whv58Kj4Xw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ADSqHOqPM78e8QSmzMVdosD/25dj1ceueoTZXVCnNz4=;
 b=OThu4IThUULmuZvT7wjE3b7tSJvlCAjo/r1NS4Z6pRksgo+IjWTxPVeTbSepCPBmTN2+SS3kAW45yMf1Egrl7weug/kYCpRlkVJh7h/qp3fHW41uDNlIwe9NnaZxtNJ3gVIMXHw6ujomUWAMMWFWUdG/n9vjuB502M89h251LVSXF/RRt1FUtvghbQQoSyhqv1lqU8nP7kQSiP8xdefzMElFPoeE2q00KiJqh8QeD59p0zGii/SUZmWJjuIpOfM806GqzekCh4C1q6sqPFyMLwJGNy5sFKb0+RKvZYOkLbdypi6/f2QWyy/5ZILquU2DDF1eUxOdc0pO9NSb3FOqaQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fdcc4adb-c823-2c08-57ed-e4306c1e186e@suse.com>
Date: Tue, 2 Nov 2021 13:23:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 1/1] xen: update system time immediately when
 VCPUOP_register_vcpu_info
Content-Language: en-US
To: Dongli Zhang <dongli.zhang@oracle.com>, iwj@xenproject.org
Cc: sstabellini@kernel.org, julien@xen.org, Volodymyr_Babchuk@epam.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, wl@xen.org,
 joe.jin@oracle.com, xen-devel@lists.xenproject.org
References: <20211025173523.3647-1-dongli.zhang@oracle.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211025173523.3647-1-dongli.zhang@oracle.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM7PR03CA0017.eurprd03.prod.outlook.com
 (2603:10a6:20b:130::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 86526810-9279-469c-766f-08d99dfb83c2
X-MS-TrafficTypeDiagnostic: VI1PR04MB3118:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB31186A5CFE5087F2237F19F9B38B9@VI1PR04MB3118.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4303;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	kLzOUR6X1Ce17kxJSoyNiXrryGtKu4C3xdYALZUrhok1QdigSD1FfCvwGIYBg+QCvQ0WJbxqq/vYrfK3uHl0um9bI5g9w6eCP0k9GeECKUI8no6+2e1fZUqf1i2HHRQa82i0oWRuxhJ3fzzJ671AAnMJ+GPNUuQCk4z6cgIPGvmzjymJ/cCk8MnngRs4MKND2vdKYRYYoeQwwsx6TquI+fbg9oPMvpOcDJ0gH1nVtoL0q7+VvJMDN2dEIOfcda5xfSQ1mwV26XWN9JVlcHmmJX5H+gdQQISQzN8150aRH2D73jjngYRv3V+rnz/Uv0iAQTLfUoXH5wBP+kLbzJy1I/kCAbgMcz6OGilo2HF7UXQqzlzQUYmw4YdiMz9zJBOzm2V8t/4HMFD0955mwBRzFwz+95JKpuEluFDQfuRgZvzasq48I0kRAqetURcDMscImWpEixcUjWpcHibE+Xo8HQFii3ne0aGTil4z+jLXdY9wUADi9tQhqUUd/HQxnY6/KzMab/8fWeUgKLwX5qGEipI2Px6ZdWc38d3w6IOL9IYu+q0D6qbGzNwsrXSf/7TDhAmfwf0ejiaGQD+Jo+WMaT5lH461KCDARJ43Q9oD1HaXUpqW/+HWqf0im1h6WRb+NkbnDgDPjfzJ82sU8fvaVlvBm+rZcoq8Bu9OEyaDIRrKUSG6ZYQXxHCMZmHMLObtzS4m5/aNPFCLpIWijVOv+GYXjlJ8sPuqqmSYlyIYvzhOro9rsuTgQ1npBEv4oV2HeyLZHB7O4ewoyEoPI2D8uU8TtZneuqAs/zIzJDTMFcsFsFgo+UPIRlGsowy9j+B3U5zWm7jG1Ptn/DD8m9+0cg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(5660300002)(4326008)(86362001)(186003)(7416002)(8936002)(38100700002)(83380400001)(26005)(53546011)(2906002)(4744005)(316002)(66476007)(66946007)(16576012)(66556008)(508600001)(31686004)(8676002)(966005)(36756003)(956004)(2616005)(6486002)(31696002)(14773001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SzFFVEpGMHhVZldrdkpUaGRzdVUvSXFsYU5MdTZrWUlpWmN1a2VnSnIyOFg2?=
 =?utf-8?B?amR2Tkw5SmZMeWxLSndOcG1vYlFDajJCVFBJakhwRWFmczJBOTMvNGdBZmcy?=
 =?utf-8?B?K0NlbmVJUlhLVWNBekt2WnVxM3J3c1c1OXpLYlVSQzBERGtqTXBhUmVrdU84?=
 =?utf-8?B?L3A1WWgvSXhJRHNHVmk5cElaUUc2VmVMajdWaEdNZ2NIS3k2dzFPcUdPNHF0?=
 =?utf-8?B?eGpIWFpkdlQ3VFRZKy9welpKNGtiL3lGaEpKYzVCQUVFZnBHOWNrZ2hKcUV4?=
 =?utf-8?B?T3VKdXNHMGZpa1hnUDhiaTE1YU1RVS9TVHlFNmxmM0JKbzBxZWNFQTlRSFFT?=
 =?utf-8?B?bDhSRTRqU3M3czhvYmNQdEZiWnBQVi9tSHRvZ0J6SUt0cVVjQTgzTHordjRo?=
 =?utf-8?B?MTVYdStPaGZSMnUrL0hWbThlZWJjVTFVWENqWEJsanIreCt5L1FVQ2FGOWpU?=
 =?utf-8?B?OEt1Q1J0TldlV2E2SG1ETG9ickozNGwvb2txQWlZT3VybXhkKzZDbmhLQjFY?=
 =?utf-8?B?OFpON2JHZTczS0tWN1dqN0hTR3Z1VkY4WEpqc1lFY1NsRGFQcWxkVDZEU0ln?=
 =?utf-8?B?QTU2eEpEY0l6L2JoNWVMMElkcFkrSUFXam5yb1ZBRlBmcE9Bd01hR2x2SE9y?=
 =?utf-8?B?bnJKdzdDUXdqUnFPR3RUbG1zU2Nlc1hWYldkRGd2dUpFNW5xc1Q1aGtDVUxF?=
 =?utf-8?B?QVZFRDl2T1BtN2VkdGJXTWdYbWF1NHV3aEJFQTA4YngyRFp0WVEzQ0lubGhs?=
 =?utf-8?B?ZG1NK2t2VzJzc1JucW5SdjdBdytMRVdVMG9BVWtxdGtydUVQSHZrRXI0R1A1?=
 =?utf-8?B?dGphNHVWYldqR1B0NTZ1UTN2M3l5T09CelJlVFE2Ymp4NmtYM3Frc21XSXpo?=
 =?utf-8?B?cVkwRHhyZWFVU3lMU3FnT0g4OHpFV1hJbDQyMEwwOGpzUTVSMEpXUmZGMzRX?=
 =?utf-8?B?WkhrZ1BtejdrRDFpQjQ3NlpUSWE0NFFzdG5GMXBDY1l4cFhES2dHZ3JRNUVV?=
 =?utf-8?B?NE5QczVGQ2YvUElSQ2tFWFZsK1JTNEZPUU9yZS9JY2hiTU0zZ1dOS2hRSmw3?=
 =?utf-8?B?cERnazgxUUViRTVVM1h3Vk85elhaNDBkWnJ2NEN4MlpTbUpmR3RHcTF1U1B0?=
 =?utf-8?B?bVZ3VFVnWnVTZTB3U0Jrd0tkczc0dEE2WFQ5UVE5WTNzZTF5d2gySnFaYUIx?=
 =?utf-8?B?VEtxeC85S0Nrdkxlby9xdkF0dEJCMG15aWFnc0U3cGtmTjZPNStVZGRyNkJk?=
 =?utf-8?B?ZVRsZmJ2bzFzVmw4YVgvWDdORitnYkNxejFlSXBobUVodVhmc1ErSDRTRmFm?=
 =?utf-8?B?N1NQMEYxWHVVNytTSU5xaWxwOEZFNzdnYXBwSTBWaElUV1hiUzY5Unk1amxO?=
 =?utf-8?B?cUVKRnk2SXg4KzMyVGR5TzdiM3ltTWV5anpBL09hR293R3dxck9qVjYyVnRW?=
 =?utf-8?B?S0MxSXlyNzNxT0JjSkdXWHRTV2dRZnJabGtBVENnUDJYdWp4RkNyQjN2bWZK?=
 =?utf-8?B?Ym1OaHY3d2tiSis3THF5TUZIZkQyamVPTWNYWkRxR0lLU2x3bzg0cVZjVXND?=
 =?utf-8?B?NzF4Zys4MFphVnFTUS9SZHNJZlc2NlphQ3RkOGRuT3lTZWZHNE5tY2kyd3JY?=
 =?utf-8?B?NGo4Sk1Dc0U3cmhQWGlIQm5ZTTNQdEpXbkhERmxFSG00bmtKMWVOeDFwZUEx?=
 =?utf-8?B?L0MwNXpMNDh6K3Y5MnpZUndwOC9RSzBHUjdQUDkyWldrZVJLNEdGQzRVVlBX?=
 =?utf-8?B?WUZsRHdISVgxZFo2b1d0Y0lqdkt6V2NOalF3TWQwVnVQT2Z1bVltdjZVSEJM?=
 =?utf-8?B?ancvZXFXbU82SGhlcWJQeFZURDJjbGdvbDRDRG1OWG53c0lMdUhZYlg5M3ZU?=
 =?utf-8?B?L2ExY1Y2NUhEZ3BuNjhYRzB5YnZmYUN4NzBSazlGWlJGNWhmdzdlSk5rS0dt?=
 =?utf-8?B?bmRpUFFZeHlpS04rRGdkeFBmQzUrM2lQWDJFakYvS3pKZEJIamVTZ0ZOSWVa?=
 =?utf-8?B?ZWdEMmNlZEE2a2ErM2FwaUNmUk9aRWNReGl2MGdIZW1yZHE0ejhieDZxeVgz?=
 =?utf-8?B?RGJtMXYzV3VKOXBFMXc4VFRhT01va2lQWVAzQWxoK2pnVGpuSmcxNE5XLzI0?=
 =?utf-8?B?OHNyTFQxUDJVbERJY2tGdzI5Tjlzd1FDandOTnlyNzBJMHBlcmdlUWQrRjla?=
 =?utf-8?Q?JN2PHDgAgKH9HMdIYU0iV7Q=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 86526810-9279-469c-766f-08d99dfb83c2
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 12:23:02.3886
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eGGmiWwdxV7p2nJ320x0cyX5EhHO8FEhWlgycQRZH+eGamHUdvaIzw9VVoLlpLkSShGsUQLW4dl0wxq7R1fR1Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3118

On 25.10.2021 19:35, Dongli Zhang wrote:
> The guest may access the pv vcpu_time_info immediately after
> VCPUOP_register_vcpu_info. This is to borrow the idea of
> VCPUOP_register_vcpu_time_memory_area, where the
> force_update_vcpu_system_time() is called immediately when the new memory
> area is registered.
> 
> Otherwise, we may observe clock drift at the VM side if the VM accesses
> the clocksource immediately after VCPUOP_register_vcpu_info().
> 
> Reference:
> https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg00571.html
> Cc: Joe Jin <joe.jin@oracle.com>
> Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

Ian - any thoughts towards 4.16 here either way?

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 12:27:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 12:27:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220189.381352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhssV-00040l-Ua; Tue, 02 Nov 2021 12:26:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220189.381352; Tue, 02 Nov 2021 12:26:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhssV-00040e-Qj; Tue, 02 Nov 2021 12:26:59 +0000
Received: by outflank-mailman (input) for mailman id 220189;
 Tue, 02 Nov 2021 12:26:58 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhssU-00040Y-3u
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 12:26:58 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 07f29086-7e22-4797-b390-40fc1f28ce3f;
 Tue, 02 Nov 2021 12:26:57 +0000 (UTC)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2058.outbound.protection.outlook.com [104.47.2.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-21-G9IVvm-QM1GvT6Uis-0xsA-1; Tue, 02 Nov 2021 13:26:55 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3776.eurprd04.prod.outlook.com (2603:10a6:803:18::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 12:26:53 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 12:26:53 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR05CA0010.eurprd05.prod.outlook.com (2603:10a6:20b:311::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17 via Frontend
 Transport; Tue, 2 Nov 2021 12:26:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 07f29086-7e22-4797-b390-40fc1f28ce3f
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635856016;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=dsPt4LEVFwOi0Ya6VAsEssnSXim3fq8f6SBJOmXnPps=;
	b=ZZfs9kigmYfjuPFu8wyceuTifQ4nLcci49hJEd7smbZZ13I5qjgiandFqBfRXZmOCPe3/0
	dX0hOpv3rDezSgWbY28PUnIL5p5bUkt4u1iwDg5hn7PrgAb5HL/ZdUGWbneakhao3c7LPE
	Lq+NbMPkfiERE7hpWxx4Dna4KyJEeYQ=
X-MC-Unique: G9IVvm-QM1GvT6Uis-0xsA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ciMj6PefBdHpUfsxYFiQukhnm6riMNDBFUvzt240VQH0Y1kQs0FviaII4d+SjY+4mOkokcq8xM9NnganZiU2dbu3qW7XDZ1kjRfA9H3lW8RJeE8JUpVpcR1dI629duDDW3ngxs/HwR6ygaBgS2vheia/iajETORplRBPCatUSV5Ul4QjCbTDtTcPvivJ6B03/dDwG5gxvlz9AhehP2y2AXbDYpPy0WM9U9KOj/aXBTzUicU1DEPjl6ZLdds4IQH26fmaEeTZmbvaLqAhXFmr4hrdomxR2MlUA1uAJIhYGpNOh/xBckBP7xYwVqAQmOZHRVIrLX1Pg1+fsD2OF7UWgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dsPt4LEVFwOi0Ya6VAsEssnSXim3fq8f6SBJOmXnPps=;
 b=gZfxdgeT+8MhVJ9t2RQh0yUroddT6F2lKPo0RdzchTQm8nro0ARgMCrxZPHNoE7fRSMdVQHWpa4mMh5gFrPnb0I1rsBXOPb0owVNdOhiJ2upInuvmve/N1QecfA9ayT/9gLdZO6YayAMMWaTnRL0wHxlhxk1qywOvU/rcywvYhmjGLsCtoVBcrte0ZDEzEBdhGIV7nV9hvOd46cP+z9WjhjhlbMqttFto5nvnnHSTPMJWj93PMH9mKGgeV06dp9l1kVH0T2UI8R/VMZfARIZatC80nwbJN4v1gFTBoDTkeSNpbeXnVwaehfdXinc0U9yKkgDeXCYBEWT3K0TY7TG1g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c802b3c5-cd21-50ee-2a42-6f1c81235fa0@suse.com>
Date: Tue, 2 Nov 2021 13:26:51 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] x86/hpet: setup HPET even when disabled due to stopping
 in deep C states
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <68352fc1-9ba0-1081-be50-065b212f96a3@citrix.com>
 <20211026151233.57246-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211026151233.57246-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR05CA0010.eurprd05.prod.outlook.com
 (2603:10a6:20b:311::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 73018544-91a1-4d86-117b-08d99dfc0d63
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3776:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB37769C2E67B857EE5E4CA0F8B38B9@VI1PR0402MB3776.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	QPPAwoK5Xg7LrMexHmFhvohBbrC3T9AGVZwbIz/IEtohW/n3CmvNY3syACInje4hptRDRwD9wRrvOqSitB5i6yAhWov38WJI8oqn+T862h1t9Ny0c8wfDlvgZ2TbTtv78f2Oc7hBFOdgy848UZ8OE9pz/IBNbIdsVn9w2W0XYBToCP/JRmO8/TY2iuQRwlEfrV5sjsL8Wwc7iyYjPaTbXD26WyKWOCA5EIMjmwLpUWZrCjGobC2QHE4zfNwbyoV0gZjDBzMCsFP5juBdM2MRbbV2r2KMov1qpiyMIx9fEknveNJEPErjHoVQe6pEMs+1de8NujuBlyNFfEDQum5L1o68wOf1xtB5D/1m3k5/akiGX8e0Ve83WlediPbs5+Rr4iLrMJA4MxGUMePT/kSE3byWbz3zPNiauR4kuZZKqcNzIBg7079WH6+LfupXrbM789CcEBe8/8RNzEXzv+NCInxqHNCL0DPKgHrTAewkh7HfSb6uZZd3QmsVKdwyM8UQucYwlLcfmu4yJVlimhPd3G9QikCz9XmWKOg2rcomO3duSTCBgcisot+LrD3NU5pDwr53YcDEF94do4DMGVvblZ7OzjC5Rba/xhwlbWAxEu2ipaLBSbNV5SIY2QfF2QlfAyIIwl3CLudB2LPepZRJ9P/W6/W3CPn7ps3wQxiTvxkfbK6v0Fcvdobu0/1NNFyeOd9evUTGs/u275bkyE1Z2S9Im378KKkQkh8a8sNnv2SE+VusBhfEv/SfXmu1Z6UN
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(186003)(4326008)(53546011)(86362001)(26005)(6486002)(508600001)(2616005)(66946007)(5660300002)(956004)(54906003)(83380400001)(31696002)(66476007)(16576012)(316002)(8676002)(2906002)(38100700002)(31686004)(8936002)(66556008)(6916009)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZThsWVMzenFHYjN5ZXNKbHExVm1HY2FiSDZtRWQ2YnN0TXVzenE2Mzl4Rk1j?=
 =?utf-8?B?SWJGQkVVeDJ6cHdhTk1Pck0vRDRKUVhlZzJuS3NwbnM2Q28wUGxGMktKNmFP?=
 =?utf-8?B?SFU0bnFyN3BWdDNDcERtTXNGcWRjKzcrL1hsbk1WM2xPUndPMjBRZkVLbEtn?=
 =?utf-8?B?WFFWbzd0UHdYbUJHQ3lHc1g5SE9SOXFqRVB6enNwdTd3NVlXL0hRVXNnSUNt?=
 =?utf-8?B?SHBhVHBML0ZlMHpxWC9TSXNId3k4MXBwNjg4YTM5OE5vY2p2L0FLNlRTNDFv?=
 =?utf-8?B?c0ZsdjBFR21XNXpQUVNhL1Bod3NGVTlvaC9yVDFxdWljVDdoSFN0NitVTy9x?=
 =?utf-8?B?Mm9FS3VLUUwxdWJJRHF3U0FHamlqL1hCdHpRei81U1dTSzU3bXZsb2NRcmEv?=
 =?utf-8?B?ZmxEM2I5cjdVYW5tSWlsUmYyU1RPMjF1NWdYdlZOcjczV2l6ZXROK2VuMHFR?=
 =?utf-8?B?bS8vNjNma0tNVUtxdG5tcmM0YmRMTk5wVHpwcklmQ2FqczZtaWVQbFlsYVAw?=
 =?utf-8?B?SGJwU2FTblpCVy9HK28zeGRxNUhRekU0U1laNnU0MGVwWkJLTWE3bzArTXQw?=
 =?utf-8?B?bFJJeThJOFVKajV2MlNXck1VbG1HaHJ5WFlpT3ptZHVyMjZvaXcyWVpueHJz?=
 =?utf-8?B?K0dieFR5bG9rZEpmeCtkZ1hJbDFDSE05eGpnZm1oSjVzSnRvRnJUeGo0MjA4?=
 =?utf-8?B?SVJlTjdTYXdTRVN3cDV6bjE5cWYyaUtXdUNzTEFhTzFUcFdpekcyZkJyWFI0?=
 =?utf-8?B?enhPYWVlQno1Y1Z2Zm5ycGRHbThiREljZW9WK1JjSDZta3lobTV2UjNmQ1ht?=
 =?utf-8?B?eVpjbHFzSGVrcDMvTy91OUp5REdKSzhTWkx0QkJ0RHdaaklhNG5ZQlp2c0xr?=
 =?utf-8?B?L3ZmVDUvNytXc2wvU254VkhxUGcrR0RUVHc1N3hTUTBCSUFQN1h5a09yZHFM?=
 =?utf-8?B?Ky80b0gwVmR4UWVSekRwNjdFMnM1cUVkVUJnQUpERm9nNnN5ZG9lbmVDdFRh?=
 =?utf-8?B?RTllSVh1dW9FMDBJZE1seUpnMGQrQlpCbEZXZERCdXN1cmZkSm1keEZZRmxr?=
 =?utf-8?B?azEyV08yYk5GaGh3eEt6bUc1Yk1ydmp2MHA3WXR5UDE0VzZsekhTV2F0ODBL?=
 =?utf-8?B?NGwxQk52QUdUaCtoL290N2pNbHlkbUd2VFBVZWU0emg3UmtnWHdjeHRFOE5Y?=
 =?utf-8?B?ZHRRUHpadE9RbEF2YjUzSXNtaTNnQnVvU2dTWjNSRVFjTEZ3NS9UQmFRTjlq?=
 =?utf-8?B?RnZPeUVFVjhxamNoYkJ6ZEpETm5FUlk5cEpEZGIySGRYRmhPeUlHajZYRWZD?=
 =?utf-8?B?N1VwMW9qYm8vRnVSMGJCc2k5TXNPcHZnc0NFdjN1cFFERUZHd3RpdnRoM0RR?=
 =?utf-8?B?SCtyWktoQlNDWkZEK0RnTmtjWHZDSmx3dWZGSzZjL0I1T0xKY1M0bFBmaVZ0?=
 =?utf-8?B?RXQzZ29kV2ZIek5ucGJxQ0lpQXprNmVkalZ3dUc5c0ZxOTZ4UEIrWDZJblRC?=
 =?utf-8?B?T1lQNkNPQkp3N3BIWkdncTBNUlFWY0gxcnVnOWU5VkJ1Yys2Q3NRK1dZVk9R?=
 =?utf-8?B?K1FUclNUQVlhN1NlL01DUGJKOUp2SktIYnZtOWl1cWh2ajllbTR4dlVjcmQz?=
 =?utf-8?B?a0d5c1J3TTNwdWxxNUEzNVlVTXdxem5ySGFBbWZxZ0llWGM3bmU0b3FvTVNM?=
 =?utf-8?B?Q2xuRmRPVGZiaUREYjhneXIxbHFYdS9lbGFUL21mVnBHMGREemFTZ0luSXU4?=
 =?utf-8?B?VVl6YVBkTkhCMk5QOXFRbjg0ZVMyTThzNGYyWnozR3ROQm0zNUpsazNPdlhj?=
 =?utf-8?B?LzFpcWUyUjB4dFRuZmpZWkZCdWtGYzhkWEtoS25KSU9GcHpKcHhaTFZRVmlE?=
 =?utf-8?B?UWlvRXJYM2FZaURMUnBWOWthY0tGWE4xSUhxejJEUGNjWnFJMWs2WmdYNWxW?=
 =?utf-8?B?YUFYZFZaWDRXdnUwRFNJZ1dwdkZUeDhOTGdCbmlhYjRHOWJSclJJaVBKYjFU?=
 =?utf-8?B?RjRvZDBqUjB5R2EyaVczUDQ5UFpIcXM3M3Rqb2lQNGlXNTlDRU16K1o2K0ho?=
 =?utf-8?B?UkpFR3hWd1BwNVlzZGpqa001WkhsNW5xaXlsb2hjVXRvcW1FQURkM3I2UFZp?=
 =?utf-8?B?MmZDZXJpOVpSeDRidDIvbndBTDFnZDNmUHFjblNackN1ZmVkMVA2YmJZTSsv?=
 =?utf-8?Q?phavdKbU4fAYl3SRu2p1Jt0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 73018544-91a1-4d86-117b-08d99dfc0d63
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 12:26:53.2690
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Yz0/ytgMG9MD7RdOmHFLcA/hWKjchxkVVsEcefB52Zbbv2ZVFPPL2L44H+f3y+IWV1Pc1VhRH/eNMaXZAqt7OQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3776

On 26.10.2021 17:12, Roger Pau Monne wrote:
> Always allow the HPET to be setup, but don't report a frequency back
> to the platform time source probe in order to avoid it from being
> selected as a valid timer if it's not usable.
> 
> Doing the setup even when not intended to be used as a platform timer
> is required so that is can be used in legacy replacement mode in order
> to assert the IO-APIC is capable of receiving interrupts.
> 
> Fixes: c12731493a ('x86/hpet: Use another crystalball to evaluate HPET usability')

I realize this has gone in already, but imo pointing at this commit is
only part of the truth (maybe the larger one). e1de4c196a2e ("x86/timer:
Fix boot on Intel systems using ITSSPRC static PIT clock gating") post-
dates d5294a302c84 ("x86: avoid HPET use on certain Intel platforms")
by over a year, yet it's that patch'es logic which the referenced
commit merely extended. I am of the opinion that e1de4c196a2e should
have made the adjustment you make now, and hence should (also) have
been tagged.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 12:33:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 12:33:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220196.381363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsyL-0005QR-Jq; Tue, 02 Nov 2021 12:33:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220196.381363; Tue, 02 Nov 2021 12:33:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhsyL-0005QK-Gp; Tue, 02 Nov 2021 12:33:01 +0000
Received: by outflank-mailman (input) for mailman id 220196;
 Tue, 02 Nov 2021 12:32:59 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhsyJ-0005QD-9w
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 12:32:59 +0000
Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 0249ddf6-3bd9-11ec-8556-12813bfff9fa;
 Tue, 02 Nov 2021 12:32:58 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0249ddf6-3bd9-11ec-8556-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635856378;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=/cru6W1VLMT1Yf7qqn3JQRmiSI7Tjujsut3DA6pGiUM=;
  b=d6tspTHhXi4scyLaIKRER9T2lcNtITYo0AWL0P1dekGlQ4qvC2QTphwN
   Vow+/kN0mEzb6x13XW+aOK0HQSbY3v2f4VfWzVRVRk8UFsvq2M52eHwxj
   U57Nf3QZRynCpxabXulSlwI/+h0X0SRuWT6i+A+Ue3yTQtLRBZxr/o8IA
   A=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: zT8X36NM/GYZrNEHseUBvgTynUUM87krxyzE5WpMJAbK88/Ys/4VrQb/GQopzQmmXpQpu/AuxF
 HJgtI0b/blr+KkFzR+T31scUIFQ8uYuoJqbcAEM8OXUb+lEokrYGrILW+y59z+CO7EORpOeFFO
 UQcyQ4hGu0GhE2RUyAEXdVPQdiM+ueCZMLabxK44V8ASjgYgxpsQdlLyS06+3DO/1Kvixoj9m8
 SsmM/73cH5qhgNYxJuSlHT8ZT0S7cHm1jE1PfrH1qYsXG0BbXFUqazpM254TjIfN+MF34lWMoL
 KvBqjpKMBPH/5vkKUrt0jDs9
X-SBRS: 5.1
X-MesageID: 56895941
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:h1Wv7a8I4+dKobsPZ6MgDrUDa3mTJUtcMsCJ2f8bNWPcYEJGY0x3n
 WcdW23TOfjcYmCnLtF/aYm/8htVvZ6GnNJiGwFlrCg8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdh2NYx6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPgpz
 Y9oqIWuEjwXEfL1htUZUisEPBpHaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguw5K8bmJsUHs2xIxjDFF/c2B5vERs0m4PcFgmdh25ESRJ4yY
 eI4TGtmYUnwbidWK1RJUI8Mzf2l3EfgJmgwRFW9+vNsvjm7IBZK+LnyMvLFd9qSX8JXk02E4
 GXc8AzREhwccdCS1zeB2natnfPU2zP2XpoIE7+1/eIsh0ecrkQRAhALUVqwodGil1WzHdlYL
 iQ85S4GvaU0skuxQbHAswaQ+SDe+ERGApwJTrN8uFrlJrfoDxixXm1eayNYdocdiuBpfCIb0
 l67w/zSPGk62FGKck61+rCRpDK0HCEaK24eeCMJJTc4D8nfTJIb1UyWEIs6eEKhppisQGyrn
 WjWxMQrr+xL1ZZj6kmtwbzQb9tATLDtRxV92AjYV3nNAuhRNN/8PNzABbQ2AJ99wGelorup4
 Chsdyu2trlm4XSxeMqlGrxl8FaBvK7tDdEkqQQzd6TNDhz0k5JZQahe4StlOGBiOdsedDnib
 Sf74F0KucACZiP1N/UuP+pd7vjGK4C6TLwJsdiPNrJzjmVZLlfbrEmCm2bJhwgBb3TAYYlgY
 MzGIK5A/F4RCLh9zSreegvu+eRD+8zK/kuKHcqT503+idK2PSfJIZ9YYArmRr1ot8us/VSKm
 +uzwuPXkn2zpsWlOXKJmWPSRHhXRUUG6Wfe8pcKK7XcflI+cIzjYteIqY4cl0Vet/09vs/D/
 22nW18ez1z6hHbdLh6NZGwlY7TqNauTZ1pnVcD1FVr3iXUlf6i166ITK8k+cbU9rbQxxv9oV
 fgVPc6HB60XGDjA/j0ca7j7rZBjK0v31V7fYXL9bWhtZYNkSizI5sTgIlnl+h4RA3flrsA5u
 bChiF/WGMJRWwR4Ac/KQ/uz1Fft72MFked/UhKQcNlecUnh6qZwLCn1gqNlKs0AM0yblDCby
 xyXEVETouyU+90599zAhKalqYa1ErQhQhoGTjeDtbvvbHvU5Guux4NEQd2kRzGFWTOm4rima
 MVU0+r4bK8NkmFVvtcuCL1s168/uYfi/ucI0gR+EXzXRF23Ebc8cGKe1MxCu6ARlL9UvQy6B
 hCG9tVAYOjbPcrkFBgaJRY/b/TF3vYRw2GA4fMwKUT8xSl24LvYDhkCY0jS0HRQfOlvLYco4
 eY9o8pHuQWwhy0jPsuCki0JpX+HKWYNUvl/u5wXaGMxZtHHFr2WjUTgNxLL
IronPort-HdrOrdr: A9a23:78rRY6D9bFDKsRvlHehIsceALOsnbusQ8zAXPh9KJiC9I/b1qy
 nxppkmPH/P6Qr4WBkb6Le90Y27MAnhHP9OkPIs1NKZMjUO11HYTr2KgbGSpgEIXheOi9K1tp
 0QDZSWaueAdGSS5PySiGLTc6dCsai6GeKT9J/jJh9WPH5XgspbnmFE42igYylLrF4sP+tEKH
 PQ3LsNmxOQPVAsKuirDHgMWObO4/XNiZLdeBYDQzoq8hOHgz+E4KPzV0Hw5GZSbxp/hZMZtU
 TVmQ3w4auu99m91x/nzmfWq7BbgsHoxNdvDNGFzuIVNjLvoAC1Y5kJYczJgBkF5MWUrHo6mt
 jFpBkte+x19nPqZ2mw5SDg3gHxuQxenUPK+Bu9uz/OsMb5TDU1B45qnoRCaCbU7EImoZVVzL
 9L93jxjesYMTrw2ADGo/TYXRBjkUS55VA4l/QIsnBZWYwCLJdMsI0k+l9PGptoJlO01GkeKp
 gvMCjg3ocUTbvDBEqp/FWHgebcEkjbJy32A3Tr4aeuon1rdHMQ9Tpu+CVQpAZFyHsHceg22w
 3zCNUdqFh/dL5nUUtDPpZyfSKWMB2FffueChPbHbzYfJt3Tk4l7aSHp4kI2A==
X-IronPort-AV: E=Sophos;i="5.87,202,1631592000"; 
   d="scan'208";a="56895941"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nXw6j9YaIuH8Prf5NbZiNX5nVbiyn7Xq7NEZBdr/rlelTYXxDQImwjljaFSsYWDADJcMvn/vuseMRbHLjo+IgDxAbWHck3cuha/uqCodVDfTvuCClucNEtF2tApLpvhgLxzogWqL59+OS0fOOrDyCcHsSO30GxYpIqiNFGIUKvQraF9s9JLXiV0F6HuL1kY69k1oJDZijuaJa4PKDXq7UH5sXPdQf0i2USb/MzipNcxRTGQnKMz+vpSpqhtTlgbBWlwvFjFopTrOJ7VyzgiZ78zJ3cFA0gJLv/CJURwGcMSB/mrm7JcPmaVV7XRy7dlYzxOsR06sjvRTtUnF+rXdgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8oc/4IFw5LjvE/9ui1454RPN/ASpTqNF5Dbd+iFKODY=;
 b=aSDjMv5WHqWYyebqEJUerR+jPinrJlN9Syelf1LaVkxMlgVFSGgALJd9goi2nCgpVQkHZQddZ/ZNGHIcE7jIQRx6MOH3Ts9sshcgVyXLwqtj1e3Z4rvlHp9NlE5THNiW09lKN3IZnQXRpKqM2Y1601uBbMbWtHExSPZnp9R2QtmxBK6oyY4Gq43qS5Bu1yAg2aVTgJ3hNtS/1R5gcW0wRmgLqsMCO4WWSDmc9E6glbQS7YEfHMK2rGMHBwnVszIDj/wj0MMjXjYsS0w4Fm/yVsBXvxO9RNh/AfT83q9BlE/S5P/lTiRU+A976oGbiaM/0m1o2WMncZxKPGXjWUW0PA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8oc/4IFw5LjvE/9ui1454RPN/ASpTqNF5Dbd+iFKODY=;
 b=bfg+ZGPR+0ILfQqb9tbnUfLwxq7ECMpt3bYIi6LERrx3kNIJGJMgaMRjfCkHc4srOewdjTDvrIGfj7rn6KGI4XcI3B/JEWCFf6yDqJ8tA7GT4Q8VL/MxPveAnab4858PipBdmFQ814dCoHMnPKyRMC9M9zJeZ/5NIqOQl3SpE+E=
Date: Tue, 2 Nov 2021 13:32:45 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian
 Jackson <iwj@xenproject.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/cpuid: prevent decreasing of hypervisor max leaf on
 migration
Message-ID: <YYEv7ZWwfALW546f@Air-de-Roger>
References: <20211027140050.67509-1-roger.pau@citrix.com>
 <f3fac17f-12f2-2e75-dcd2-4f2abb57d043@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <f3fac17f-12f2-2e75-dcd2-4f2abb57d043@suse.com>
X-ClientProxiedBy: MRXP264CA0020.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:15::32) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 36394052-fb5d-474f-d8f0-08d99dfce1e2
X-MS-TrafficTypeDiagnostic: DS7PR03MB5463:
X-Microsoft-Antispam-PRVS: <DS7PR03MB54636FA791E438C94352E0EF8F8B9@DS7PR03MB5463.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: ISHlfTVPNhEhhUf+ymCBFsFB13++QUFIWonLKHXk3QKPFwYFNDVKSxn61WU1IJd1x0sqM5nIPIqtzJpcYhoGztmpL6351MNryy/DzTktvizEnqO8UHR2SpgQDJ1VP2DzRZAIBXb4ohSng+nDf6r1OEE2UoqRu/+bSg2UBXxJ3nG2dbBkWbPhSYbaLKl+X4/nLgJhcVmPdqt3cTsMRxy2tDoGbgvOhwtXcwoN33H8gcF6gpJFKnrDe0expcoghesUF2fdu1orU+hWW5uqNekLmRgHizPiYukq8+xMLuVwQcicIBc492oWjc45G7Xh7F3jDKkHLyZIymy26JhSwojVE9MJTz+gaRgI2JcvYqEdPaHQT8FRyaG9YZI2fI0+iFEKiGOUyXSVsrIMIJaUEFU9A6y2LVXoENJrPsgQEHJSDPrNu/BvNGA3769goB3wDMN5CDO6BCFdZx1FjxRoAcZkjSK3TuvJII5h9JEvIsjHcH5FH/4PemW6UCSREc1hRv/NFshYeFhh5cwM5HEO/sy76p9atr8Y9wxQkhJclS80bgCqArjNpxlf0Ox+dwraoSwCIngpDf2yDq8XfeDjVR+dX5j4Ydpm24cYsOJzD12p9869rFlRPJex5Ya1oVLKpRINDAm0y9+GRoNBjAL8sIW7Rw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(82960400001)(66946007)(66476007)(33716001)(6666004)(38100700002)(6486002)(54906003)(6916009)(6496006)(4326008)(66556008)(86362001)(8676002)(508600001)(85182001)(956004)(5660300002)(26005)(316002)(2906002)(53546011)(8936002)(186003)(9686003)(83380400001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dzdHYmNka2NQUW1ObWwrM2swOUFRNzlRQ3EwNlFFN2NOMHZlU0tScHV0UnZF?=
 =?utf-8?B?L2JkMTRnVWlGK2N6a0Q4eURIZjNiSEpuYVdYQm1FSGZ1bnU1M1MwczJEV0NO?=
 =?utf-8?B?eU84QVJ1ZlBGRndFNEx0WU9MbFdCNDk4R01aVlZkMkhZbGtSYzh1NVZHOTZu?=
 =?utf-8?B?MFV4czBCQUh0ekxVbWV4M0xtc2FOQzJjVXZQdVNERTUwYTlsQ3lhYmg4WUFJ?=
 =?utf-8?B?Y2NrRkdxSkxEYlloMS95UHNQcWJCZVJaYXdXRHYrTU82YzBrT29oZTdWemw2?=
 =?utf-8?B?Z1Y1eTNORENVTERuWk9nS09DUExhL3daR1lvUzdDWnp5UHRHVThHSDlGUHV0?=
 =?utf-8?B?cHRteDIzMGk1Zmgvbzl5b2RvOGNCN2tsMjZtcVo1enhZK1B5MDVCMHY5Q1Rl?=
 =?utf-8?B?Syt0VVRlZmVSL1V1TkdBZGpjd1lWemM2Q25yL1BwK0h6YU5hRGJ2V3diWEM0?=
 =?utf-8?B?dkNiRnU2cUwwV05zOUhXY01vdW4yZThQQVJjSzI4VG00cGU0VlNDWEVveWNC?=
 =?utf-8?B?a2dHMGlTd3loL0JHOGJNTmQ4eVUvd2p5V0Vka3dZT0pKcGVTNm1qWW01a2dt?=
 =?utf-8?B?SVkraTY1UUc2ck5BcXVwcGZMNjYrTFhpenprT3VpNUlaT3lPT0xDcnN2cDA2?=
 =?utf-8?B?SC90aUt3VU5uRUNOOXIxY2Z3UHZKcWFHQzVhbWY3RjNoalR5R3E4QlUxUjJa?=
 =?utf-8?B?UU5uUXZwalIycjdYcjhWaTNtNnRKN1V0SGV3V1A5Q3c3Q2NOdVBlSFVqL3Yz?=
 =?utf-8?B?U0xFZVgwUzJMc0kxNSs3TmljQ1hTYm90emdmNkNyUUd1b1hjR3puQlNOWDA5?=
 =?utf-8?B?SDMvVVgrMXNQMWltVDl6bzJqWERsRzZLdEdueXo1QThackFhcC8rL0ZiZlJJ?=
 =?utf-8?B?SmVWeG11Mlh0WFByTmJUWGtWcGFBZVNNT3hHaHh2eVdDaHZRVFBjMTJBcndi?=
 =?utf-8?B?QkpKRVE1YlUwVWFqK1ZuZytqZ0dqbUJxNHlmbk03Q3dwWlJYdGdKNURHRXE0?=
 =?utf-8?B?eEpJRTRCeDk0VDdTMHhpS09jTTluK0FQaU1rVjNoT3JwVW9tQjRPS2thWXNp?=
 =?utf-8?B?ZHhDZXpOZzB3WlBQSGZRbThxM3g2ekE4Q25Ebi9xalhGMFNLZkk2TElKRmpo?=
 =?utf-8?B?bnBwV05ya2xhbTY2TG1HY284YkpmMVFnbDB3clBQazNmS1FOeWl1RkhibVVG?=
 =?utf-8?B?U1l1bWNvdzBVRUJnSUFxa3VSVjhJODhNcFUvMm1YMUQ2WTBiTExWaDdwWldw?=
 =?utf-8?B?MTYwaGVLQ0cxU2Y3TEhvblRJYmNqNFRsd2MxRVZvRG5DY2hOZHZsYWdIOVli?=
 =?utf-8?B?R05odCswNFVObFJJSTRKakxTaTlIMmFCY1RZcGUyaUNYaUZFZmhGNDZWN2Rh?=
 =?utf-8?B?RzVyZ1NPTTFteEhmc242Y3FmWDhXbnBNZ1VlU1N1UTFkUDlHUmd3cHVHZk4r?=
 =?utf-8?B?RFVlWmJ0WDhSWXdBa2JYMU5yV1NiRnF3d1hFZ0IrSWRaNGxZbWY1RGdMRXpK?=
 =?utf-8?B?SndKeFFTSWQ4dXZNRk9aRklrR1NaRFdwWmRhK1V4a1Q0dWZxeGZ4UG1xNUJS?=
 =?utf-8?B?Sm1NZFVLQ1c0UisyM3hRSStQNG8yNU0wcGw1NERZUFRFeGU2SHNkWERKVkc2?=
 =?utf-8?B?QTdrckVIZkRnT0FuRXJhK2hxdGNLc0ZmL2taNjdYL2tYeWQyR0hRQmNVUmc3?=
 =?utf-8?B?YWdSeTR0b2VZejBvV3ljUjBhaUczT3dqdllrZkVtQWVHSEFQam1sazNUSG9T?=
 =?utf-8?B?clYyWUhTTXZDelVmTFE5UVBGV1RPNVdHcmJyNFVId2laVEIrdWQxSXluVTFy?=
 =?utf-8?B?Y1Bkckd1WEtUazVsK1F5VHQ1RHRES1B4WUJoSFJSVFJVYXVyQnBFOXVSNkdh?=
 =?utf-8?B?M2RNb01ybGRQWFlMVHN5bTRqak1vb2hBN3pNcGIrRzFLZUt3VmZrR2lsTEZx?=
 =?utf-8?B?NkYva09WNW11S3pPUFR2Yzc5RGpWM25hMVM1eWNhNXh2Y2lqcyttUmcxRWpz?=
 =?utf-8?B?ZkxndkpoOUthRnlBSC9tUUJwTmV0ZlM1MGRjSm0wYllmSC95VG0wQ3o0UHk1?=
 =?utf-8?B?NmpHMG9sMXNIc3ZNeURwWFBQdXVJdTNPZFZ1MzNwYkVFdTQ5cXFudVRhZzUz?=
 =?utf-8?B?dlhkVTlzVTcveXV4M3FUNlY2S2ZjQk1yUDFXckx3b1FXenIwU0g1TU9leExY?=
 =?utf-8?Q?NNhoWlNYb7dge7FZva8ouR8=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 36394052-fb5d-474f-d8f0-08d99dfce1e2
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 12:32:49.8816
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nf8OdkjDF0yxvJaKpDjSFgyvBvtG2vk7q0NmgRHqo0e+uNkOM1NCKvNzdQ+szAYWV3ws4rwm/8i0X6qfP9bIXw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5463
X-OriginatorOrg: citrix.com

On Tue, Nov 02, 2021 at 01:00:07PM +0100, Jan Beulich wrote:
> On 27.10.2021 16:00, Roger Pau Monne wrote:
> > In order to be compatible with previous Xen versions, and not change
> > max hypervisor leaf as a result of a migration, keep the clamping of
> > the maximum leaf value provided to XEN_CPUID_MAX_NUM_LEAVES, instead
> > of doing it based on the domain type. Also set the default maximum
> > leaf without taking the domain type into account. The maximum
> > hypervisor leaf is not migrated, so we need the default to not regress
> > beyond what might already be reported to a guest by existing Xen
> > versions.
> 
> While this is the missing description to the patch I had submitted
> back in May upon Andrew's request, I have to admit that I don't
> consider this a satisfactory explanation. Shouldn't hypervisor
> leaves undergo similar leveling as other leaves? I.e. upon
> migration leaves or individual bits should neither disappear nor
> appear?

Indeed, but hypervisor max leaves is not properly migrated, as
hv{,2}_limit is not set unless explicitly passed by the toolstack.

> I continue to consider it at least suspicious that HVM guests get
> 5 leaves reported when only 4 are really meaningful to them.

That's indeed fine to fix, but we would need to start saving/restoring
hypervisor max leaf unconditionally as part of the cpuid policy (ie:
set hv{,2}_limit at domain create to the default limit), and populate
it with 5 for backwards compatibility on restore if not set.

> I
> see this has gone in, so I'm likely to trip up on this again in
> the future. Might result in the same patch again then if I don't
> end up doing archeology at that point ...

Maybe there's some comment we could add in the code to make this
clearer? I didn't realize either when reviewing as didn't pay close
attention to how hv{,2}_limit is used.

I hope the above comments help clarify why the current behavior was
an issue.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 12:39:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 12:39:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220204.381374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mht4b-0006BW-Du; Tue, 02 Nov 2021 12:39:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220204.381374; Tue, 02 Nov 2021 12:39:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mht4b-0006BP-Aa; Tue, 02 Nov 2021 12:39:29 +0000
Received: by outflank-mailman (input) for mailman id 220204;
 Tue, 02 Nov 2021 12:39:28 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mht4a-0006BJ-GJ
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 12:39:28 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id e1c991e0-a716-49ac-8fb6-900cfadfd7ba;
 Tue, 02 Nov 2021 12:39:27 +0000 (UTC)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2054.outbound.protection.outlook.com [104.47.1.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-33-_TxZn0y-NTOa946-ZI2BjQ-1; Tue, 02 Nov 2021 13:39:25 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3118.eurprd04.prod.outlook.com (2603:10a6:802:a::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 12:39:24 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 12:39:24 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0170.eurprd04.prod.outlook.com (2603:10a6:20b:331::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Tue, 2 Nov 2021 12:39:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1c991e0-a716-49ac-8fb6-900cfadfd7ba
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635856766;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eG5RqtAInVJ4hHUOj/Qg/9qsC+6jqjTP3TBobnHtkHA=;
	b=hEe1H0i57qGJsMfMRjIhICzc0BlOJnzU2SvwDWNq5ffs1mFyGXjySa8rVAU9VXWs4muD4i
	cqfHq1GU57CpR0dEvbsODN2hsQQow1eSaoIw/DvBQu2PyoheFjqGnwRtAZF8G7R6iAoMM8
	FTcYUe0KgWh+gUMJQwxSq28CLIG6lHc=
X-MC-Unique: _TxZn0y-NTOa946-ZI2BjQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RhKwoar0xwTqCvLNQ7NnHc+gQTtCLWN/iEhQTHnr/XPbLhKqferyG562WvpzsK00Vj/N/PWrktSSROzKufaJXo+D2DjO8a365g/Ix50t7rMtTTm/EBl0q0gJtyRgAyknlMt8GhxWm43Rffcy+lNAucWVazWyZc32AieV2gSXEH8sAN/rJirCP5pfwBot9DlSgom9BIPm6fKI7u5XDViKEFuqbIsMiQfCpWSOOEIuyahP4RgAYuUxb4ZJutqjLdvlEblSl9xoxaKUPQ2m0J8prZ1Jsouebf7755CSaDlkkOFa0Jgpd5frbHGFwR5KrGOwW19ueceLJ9qkMAGhxwGtzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eG5RqtAInVJ4hHUOj/Qg/9qsC+6jqjTP3TBobnHtkHA=;
 b=bA7Bt9KuFgfzTqLeq/H4xc9oq/oRxWFltR2pyCmPUASOtYvJ2Vue7Bwvb0TZV4a0K3UNCRWiQqTfE4qa9Qpdg6C4Mn5oodl7Za21HsN0tyCw8uQAX/g5mH8cJKDMBfNZTulOPPAHAOuEWSCyD14p8apKOtk7IHqQXD/4gwYJ3bzwkxaHlN7n8M+5xQYtuWfSVrcVvt9djGc0XIybhMB+Hszd/x+LjhiImm37cfylDACLZCw+LmKE4d/hUmYnGaAY3phuB5DNQY2116ozx6c6RtL0s8jrbgQlC1HUosuRX1zvMZDmJaoZlMtV1YdZ9QDkffCNhNq9Uw3W/AJ+6ukfjg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
Date: Tue, 2 Nov 2021 13:39:22 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] x86/passthrough: Fix hvm_gsi_eoi() build with GCC 12
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211027200713.22625-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0170.eurprd04.prod.outlook.com
 (2603:10a6:20b:331::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d40c4d0b-807e-4695-67d5-08d99dfdcce8
X-MS-TrafficTypeDiagnostic: VI1PR04MB3118:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3118F77C2619F9BFFF1EB7BFB38B9@VI1PR04MB3118.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	trbySBlBOzZ4+FHRxh8azOpag4R4ZmFciRPtc39oceAfQtv4d3dJ4KJT2hzN+RxhEQ5GzP/ru+/+HVkF18BehlNlLmJ5jnwvjKcPy7qMklyxUTfYgICIbLfhN0Wf215QYOKSone88jWGWnQcd02m6fPCjbxU2nKG80PJEOZ65XE+ztlOyFnX7OTfwVpnzo09qzinydddXzyFKYtBSaR/oUecyGsEHQ9qDg/Wr3UHL9hbcjh9TQfvFeefbHaan5rhvhN0N+dR+1DODSLSu3w0IiYMuQBD4Nbi9rz9KE11g5x6uyNZQdY0ZpTMoz2uRocZkpo396gn+VHH2Eqd5TU1tOETG8oPBjrzCs3827ob4C+Gm7V7aPy1J9sNoK9IVuWKmTXNF8TTRcI4LZVUXxtqtFTg0grigutflc/fe90zWqHyE80iQY7aBcJ4nt0Phojyoa9Ph6vLsQF0fxcvILEsrfiBNugyFwhJX31Y1UJhE9O/7jV4kgF3Tmckae3bFJbukquj+wJRLO9kSYwESrE+SG9HI5fBvrg4YAKh4QqXyezLrgl8dJOaUvOyV4GYrfZvg2WFGYIEQ3hgoQAWPs8RrBKq5GqJ0WY/83nWhcWFFDtytnZjv6aHvneF1+HSghIdtiC4CXdmCYsbGhuIG29GQmvTTN4WUWm9O0igaplGzObjzprbcpdO3EY+otjBF6ILnlgaO6DN+0g+B2R1TJwMiA3TqLxqU1bPkWRLqQYsTHsshuoMJjmF02fKRPIER/I8
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66556008)(31686004)(8676002)(508600001)(6916009)(316002)(66476007)(66946007)(54906003)(16576012)(31696002)(6486002)(36756003)(2616005)(956004)(38100700002)(8936002)(26005)(4326008)(5660300002)(86362001)(186003)(2906002)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?d1MydUhvWXRPQldHRjkwUW9qb21Vc1NnTUcyUmJqSmNzNGt2OXhDV3VBWGNa?=
 =?utf-8?B?Q0FwZ3dXMGc0eVdDVVJkSWp4Q0xNZXdlclI0NCtFOVhKanQ4TEc1eVFGRDZw?=
 =?utf-8?B?cmJpQStkOGZKOWZ1SHoxcnpQamFBaTFza1p1NWJ0N0w1ZDN5c0dDU3FOc0ZZ?=
 =?utf-8?B?T0drU20rMGpteUJ3bjBIK09OOG5ZeGlrU1pUS0tYcGhPQnZERHN4ZHZ6Nitn?=
 =?utf-8?B?eFp2UnRCQVZJeURCQUFCRWJpcXYwMit0U0IxQUlyaGhnQm5md0d4MFQ0NW9h?=
 =?utf-8?B?MUhnRmhXTjlOK3hqc0tKa0ZHM1BnR28xcCsxN05iWThUSXBQbXkrUm00bExM?=
 =?utf-8?B?MGRDb0xkOVJHWU42L2ZNbjB6NFM0QzR4S1hkOHFoY2VnbHA0VTNFeGxrSWNT?=
 =?utf-8?B?S2dvSzlSZklMYVhzNUJlUWcwdjdvRmFwZWYxRGEweitDaTZsQ0UzWkM5Z2hj?=
 =?utf-8?B?WCtYalhraWh0eVlmTDUySGsyc2Q1TVNWTTFBaW56ZndLNmFnRE4wQzJoQ1B2?=
 =?utf-8?B?R1QxRVU4Y3dkclYwWERnYkRSYzBDWkJpVUJyMjcwZ0NYM0EyQk56WFFEVHRr?=
 =?utf-8?B?VmNRdXlYZitqZlloblZ6YUxleVlKQ29OV1pPSUdzT3U2dXdmdC9OdWJZLzlC?=
 =?utf-8?B?cEw2UmN1bU5OU2JYRktCeXpUQkhWdWllOURsR09GUVRrcVZIQzZXTEZ4Qnp0?=
 =?utf-8?B?UFBpS2M3ZitOL2Jud2FrWVNNa3RSc1RLTkM0emYyRW5mT00xYWlRMGtseHNn?=
 =?utf-8?B?SitZNlhoOVkxOEtEeUtIS3ZsOUtaS3dIczlGcldQK05FTzU5UzZGZE5xWEpI?=
 =?utf-8?B?NW5qbCtYbjNqK1I2U1VlN3VWblJkZEt3QUFqbC9MVWR2WmJSelB5dmlqeTRE?=
 =?utf-8?B?aHM1SW1jbm1tUjRxRW9WSEk0RHhlOGZTWVZWSnk0dmtVTUpPMHMrNnV1OWZo?=
 =?utf-8?B?VFZsUEQwWUFubVhpV3AxdHl2UUNqUFNLdEJMMDJmNDlTTHkxaTk0R3ZCZ0NT?=
 =?utf-8?B?NFNtVERaOHhESlZlQkF4MEt1U3Fma3lGOVZBQm5nR1FOMzN6NW1CZWlDUWZZ?=
 =?utf-8?B?K3pSUGx2RUxVWHFaT2hnWXlyclZ3K2xBRHJNVE80dTJRWDZibTdTNjNUMUh0?=
 =?utf-8?B?eWlFeXF6MUNVNkRJN1pZcDVKbDVUWWYrbGpMZ05UeEtHMDc1OUdJY3pRWnRB?=
 =?utf-8?B?Ylcwc2w2dmU5YVhWUHFZMEJBcEVEeHh3WDR6SXZ4ZmRBbzliN1pxcGswRjF2?=
 =?utf-8?B?dk82VTZERFlmeWJaazRnMlVUWHhrejY4NHJuWVo0RmZJb3NDaWpTb01HajFp?=
 =?utf-8?B?RHRjYWNpS2RBOFI5MmxmVDRBQXJNeXJaU040TkdVUlVHeWNnVzlWOTVMRGN4?=
 =?utf-8?B?Y1FvcmRsZ3ErT3ZNM0ZxM1grak1INzh3bnNDblpUTmk2Q20yYnFBY2hHa0lw?=
 =?utf-8?B?N093Ujh4WVV2Y1NZdEdzQnVXYzhGK256Zks1K0syREdwM0xqbytodUJpOSsy?=
 =?utf-8?B?UC9jZnorVU52SFFxN1crTk1mZ3MwbzBYSzYzdHBobzlzVk1YS2ZSalphQUhi?=
 =?utf-8?B?U3VGalVyRUM2UWJpQTZvcjN0Q0FnNzhEbE1aUlorb0x3TzVHRHZyQXFYbVl5?=
 =?utf-8?B?enF2Q2JEdGI0dG5saXNWOFJHMmlCV1l3ZXc3YmJxQmg3Z0k0Z3RJSU11OC9H?=
 =?utf-8?B?TnVuM0dmL2pyaWlTb292UDJyZmxTMUdNeHpDc3l5TGFLdlBnaWxST3NRWG9R?=
 =?utf-8?B?eGllYk9qTHBCL1ZUS282b2RuRXkxS2xHeFN4MlRVTyt0dHRyTmRCUXl4bmJm?=
 =?utf-8?B?dElTTnYzUWRtWnN0QXN6REFiTlVreUxVK1BNTTB3M3lXR2l4ZHVVRGxJWjVW?=
 =?utf-8?B?L1VsSmpmc1p0VkZVVEtmd2RVMGpTRXVqUnNaMU11UUdST25JM01jOFpWNkRK?=
 =?utf-8?B?Q2h6bGhkY2RxVXovM3Q3SXNqTzl5c3FhOFJvc0s4RGs3NHYvZTlWbDlqMUVR?=
 =?utf-8?B?aUJ4N2dMQzYyWmR3aGVlOTJDYUQrOXBCNElMZ0loUDJ2N2gvamZMeTNzVEpr?=
 =?utf-8?B?V01aMzZCeUlwSEFyVGEwV2FHR2sxcGt1M285dC9nS1BMS0pld0o1bnVCT1Bh?=
 =?utf-8?B?U2MwN1Zxa0QzUkZZamF5d3pJanptNXlyZFdNTEttaHZZK1VNSzNxMmpkRTJF?=
 =?utf-8?Q?qFIgP7EAp3fBYzaPtF0B/Ek=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d40c4d0b-807e-4695-67d5-08d99dfdcce8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 12:39:24.0964
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: G2kJj5uxmsHTKpRsoBgMKMGRK842HcODevhsUwWJjmoV6ynXx+Ti6GnQFOCLB3K8YKE0EZnxEfP7sHDMhmU4AQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3118

On 27.10.2021 22:07, Andrew Cooper wrote:
> GCC master (nearly version 12) complains:
> 
>   hvm.c: In function 'hvm_gsi_eoi':
>   hvm.c:905:10: error: the comparison will always evaluate as 'true' for the
>   address of 'dpci' will never be NULL [-Werror=address]
>     905 |     if ( !pirq_dpci(pirq) )
>         |          ^
>   In file included from /local/xen.git/xen/include/xen/irq.h:73,
>                    from /local/xen.git/xen/include/xen/pci.h:13,
>                    from /local/xen.git/xen/include/asm/hvm/io.h:22,
>                    from /local/xen.git/xen/include/asm/hvm/domain.h:27,
>                    from /local/xen.git/xen/include/asm/domain.h:7,
>                    from /local/xen.git/xen/include/xen/domain.h:8,
>                    from /local/xen.git/xen/include/xen/sched.h:11,
>                    from /local/xen.git/xen/include/xen/event.h:12,
>                    from hvm.c:20:
>   /local/xen.git/xen/include/asm/irq.h:140:34: note: 'dpci' declared here
>     140 |             struct hvm_pirq_dpci dpci;
>         |                                  ^~~~
> 
> The location marker is unhelpfully positioned and upstream may get around to
> fixing it.  The complaint is intended to be:
> 
>   if ( !((pirq) ? &(pirq)->arch.hvm.dpci : NULL) )

I disagree with the compiler's analysis: While &(pirq)->arch.hvm.dpci
indeed can't be NULL, that's not the operand of !. The operand of !
can very well be NULL, when pirq is.

> which is a hint that the code is should be simplified to just:
> 
>   if ( !pirq )
> 
> Do so.

And I further agree with Roger's original reply (despite you
apparently having managed to convince him): You shouldn't be open-
coding pirq_dpci(). Your observation that the construct's result
isn't otherwise used in the function is only one half of it. The
other half is that hvm_pirq_eoi() gets called from here, and that
one does require the result to be non-NULL.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 12:54:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 12:54:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220211.381384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhtJA-0008Rx-Oi; Tue, 02 Nov 2021 12:54:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220211.381384; Tue, 02 Nov 2021 12:54:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhtJA-0008Rq-LN; Tue, 02 Nov 2021 12:54:32 +0000
Received: by outflank-mailman (input) for mailman id 220211;
 Tue, 02 Nov 2021 12:54:31 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhtJ9-0008Rh-9v
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 12:54:31 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 046a393e-3bdc-11ec-8556-12813bfff9fa;
 Tue, 02 Nov 2021 12:54:30 +0000 (UTC)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2058.outbound.protection.outlook.com [104.47.2.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-22-sAzgxgeqMDa9ZV3KL4NvWA-1; Tue, 02 Nov 2021 13:54:28 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5471.eurprd04.prod.outlook.com (2603:10a6:803:d0::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 12:54:27 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 12:54:20 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0229.eurprd06.prod.outlook.com (2603:10a6:20b:45e::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Tue, 2 Nov 2021 12:54:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 046a393e-3bdc-11ec-8556-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635857669;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=wsAg9WVLRUVM0ca1onBlBcvsawHWo7t99JjAUNtg5/c=;
	b=PuT5Tcd6Svtwb+7VCqCYGwGMWsckrCjfzgPS6dK6x920muVozMc3R3ovb65kHq0T14UtIJ
	IaS0aY0Abilx8u1bdxWhRktlYbhzG/Rnz4fVOQjacDKErSpqOfWvSvSU6lfzTJlQy7KeKi
	dlKNGioWy1GuDkKBX5RXUUQcqGUHUxk=
X-MC-Unique: sAzgxgeqMDa9ZV3KL4NvWA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MKLQCT5rGSVsINDgWxVbFjDvq5FetlEjV6zxnpJtjHuJkwGkEJjcrGfJTgEN3rJiEM/sP9Bowa3rxY4JbWOR/+EE0UKPjwc+5gAq3gsD0ZsEl7qz7l3n825Spo88bRyg5f0yGMg8uYuyRyJQK72v9nXo9YG6yt8c8kzAuzfzx/OPgxWoOhmMyYPF8ZtDab1ZbImGuTy6dcdapPw9gSWuBy9EMMVlR8AFHEgh8avn6ICj9QanJEhbVB422KLad4YyOvGl0DM2QmoQaptPs+MZi6mo7wtrwzqbslKixrPKKaTr3RtMJ9WRGdK5RnCVOaJrxaBBk6rGclh6oy3lf2jRxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wsAg9WVLRUVM0ca1onBlBcvsawHWo7t99JjAUNtg5/c=;
 b=kPMinJ37sWJQYTcoV9QrLq6wyQnO2oMBQRfFuUIAy+69cx5+yYohHvZcPQOLWEJYpcxPsmGQSxVipDUQiL7r2wymAQtN1DyatFHH5YVTAaWtE9Q4KFqaIfLss91SwyspnQV+neyERAgVjPM9z1vFLop7JJiuuIlgR+gkeIOKg+HfC+RquSv0i7Q7WTidFmk2xID4KV8HuZB3wVOivw+0a4XhkVGlnNeINHJ4X0kwIVip4tna9QK7IhN1KksULhLABwtvBZDuaFbx5mWtGBjvhZFyAmAl8hjraKfSEcjMVJXokxN97aiCX0Ltzv47riAD0YT7l5wUC5gkL+I9BfsPxg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <225c0ac3-cc57-d26b-acd1-b62dbcffd002@suse.com>
Date: Tue, 2 Nov 2021 13:54:18 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on
 AMD hardware
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211028232658.20637-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211028232658.20637-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0229.eurprd06.prod.outlook.com
 (2603:10a6:20b:45e::18) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5418ad6c-ec57-4eb4-9a70-08d99dffe343
X-MS-TrafficTypeDiagnostic: VI1PR04MB5471:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5471EDEAA7433F724A1DB12DB38B9@VI1PR04MB5471.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	MKsnIJXoQoMfFoO2O2/JTWmqWBIyczfLQZDxCwdBwYG9LekJhUEHbRjKJpUYBlPQF0/RtkJaOzPH6b9JH3P0bSvxWJN7gnWCdbR0YHJ7bEYlisJbe/NsnXVzfpIBHGTqad6o/4m6WrFTMCDFRglFdcOGQZLhCrdnSbu7q2bABgZ0/NYjvqlhD11s1/bEBw+XdaeDF/72XDoOuuHODDxxp6TDQn/zuyKsYuhUUu37GxtUbk4IL0+OVuuHMOV6/CXNb4eIudKOFwE4FXE6XBUUcu+FiV11ZE6kIWW+KYPlX454Oafz27QDhrQ6u1Uic30SlCc9i0+BgbcUg77NuhFwCs2b372EU8L3ap/aMk5eALR159pwhxG4hNAWrphF8rwAC1BmQg2d/iKzlY83HsAR8hb2yPk/xqeS19oghLlakcwA72Gg2gNevxaKb09hPiuH4vjeveZ1I1gsCDe9MBHYkqg5glgerSmehdi0sZEYvIe3RoDLla0DTGCJQaUIHm7q+4oIfezoqGskKO0MyyebRDVGvMX2/pFMQX+hS+6MQ2bUCIY9jEkZYIeYdqAyPjRs7qdYY95YgFI5LGEZVMQwuvsTUICiDab/xZihPjRDGV8FIF8AgmhFENs0Z+H709IdtBCyfWqtFOapgKTeMiLDbv4Lw76cLAPtiy8d3XbcUAESAd0cpIASamM9Oljcdu6EU9u1rC2yfMDMXmBFzVKYhMpa3fCb7OHLV7FHMuI9fA214DgDNxUU8nyFjDZbUFC3
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(31696002)(36756003)(8936002)(53546011)(4326008)(5660300002)(316002)(16576012)(956004)(54906003)(38100700002)(66946007)(2616005)(26005)(66476007)(66556008)(186003)(508600001)(8676002)(4744005)(6486002)(2906002)(6916009)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c1F0dG9kK0VZMGV0Kyt6YSswMG05WXNNdktsN0I2YnIrM1pJUDZmclZGTGhY?=
 =?utf-8?B?WHE0akk0N0JWUExleThvUkNtS0JkVEtzaGduQjJ5eEUwUW9hQ3Z3Y3ppaDlI?=
 =?utf-8?B?amRvRldBa0pGQWllV2VjY3hNUENQZ25ybTdFTzRxS1U0MWpSbk9uQVRVb0VR?=
 =?utf-8?B?dlJabHRLYXUvRnd3UmNwUTczRFpta3B3WFJzTk01aS9ONFFRK0RYU0xSNnh2?=
 =?utf-8?B?eE9SbFlaeEprNmx0Rmt4aUdRRmRua2liV3JGRDRuRExjZG9wRldhS2duS0JT?=
 =?utf-8?B?MzllbFVWYytnY1UwN1E3WVJYb1dzdlB5OFVDbUdRcUhZMUJrbmszZ0srZGxp?=
 =?utf-8?B?OUo4TlovNmdqU1N4M3VZWTAyVXZsQ2xQS3kwa2hQMDArNzR1YXZKQXpHWExV?=
 =?utf-8?B?L3dqajdtUk10aTdyd1Frb2llVUtWUXJWU1RPcDJJcThMQmVObnRBYmYwbnE4?=
 =?utf-8?B?OTRpQ3ZqaHJ3ZU1nZkhpeGwvbkUyYXF4eEh0QVIwdmNGUHJVQnRqSWJyeVc3?=
 =?utf-8?B?bkErYUtCakR2ZHUzekJCT2VXSEh3Z2s3REErVVU5ZGlYV28wY3BGaW5UZWxD?=
 =?utf-8?B?ZlZQdHhXaDIrWW1ldHExL3ByTEd6REtzMFRjNHFjaS83c0VoNXU2d2RicE12?=
 =?utf-8?B?a0xzQWRzUERDV08wc05OZjR1eTdMWnJLRlljU2RWVmpmNDJZbllza3hKTWoz?=
 =?utf-8?B?b1MzVkJKSVZWZ1UwWk5ZSCs1MFNDL3c0NW52OTIyZ29lWmVURVI3OWFJRHRS?=
 =?utf-8?B?MFBkaUtBZS8xOFZpT3JCd0NCZFUwdzg0dUR5emxoQUhnZGdIRmQ4UE5TOXBK?=
 =?utf-8?B?dWR6d3pRQXA0dFhqMzVVSzE5U3VybkVtamRlc0pXUXhsaTVUSHZDUVFyUmVN?=
 =?utf-8?B?d2ZQc1h6cnQ4SDYvTGFzcWEwQm1OaGNwVzREeDRPOFo5NVRsY1lVTDNoSjdG?=
 =?utf-8?B?bG15Z2JTM0JKSjZkNW1RbWJmQmQ2TjhzVHZDMndxUWc0ck00QTJRekt0WW81?=
 =?utf-8?B?dm1KMDljQTF0VllmWENpSWc1QjBTQ0t4UTlVcm83NnVVK1VPRTBGMTJMUVRV?=
 =?utf-8?B?RVBGMkppL0dYY1A1bm9EM1ArejQ1Y25IZzJ2aE53Z1Zta2FlRzNSQkhpeXZj?=
 =?utf-8?B?SUh4Q1Z1YmIzNzJ1SWdaNVEvK21ZaEwyYjRsTGpCU2RBMGpGdW1jam9Dd2pT?=
 =?utf-8?B?anVvRDFsYVVORzNUZUo0LzlJM20zVWl4Nk1jWFdFL2xKQXlvY0g1UlpFYWpk?=
 =?utf-8?B?bUVFQzJpVkorL3VqYWpVUWg2QzZkelNId0N6RURTQ3NVY0t4QUF2L2RhZjUr?=
 =?utf-8?B?NUQ1bjByM1o3NDFPdS85RklQV1RVKzB0SmlOVFd2Rzd3ajRkTkU1ZkFxUXdJ?=
 =?utf-8?B?OU9tUGUxaDAzOGlkU0h3Uk15dlZ0K2tXTU13WFV3VXpkT2ViQUpBdjRQcVIv?=
 =?utf-8?B?eEVXU3BoMUc4ZUcvQ0tYZGpPbVRKbXJJMi80Q2phTUQrdy9ha1pWRnFRbUlS?=
 =?utf-8?B?dEVZaHFZRHNlOXRDcUx4RHpvY0sxWHJNaHRvOGdrUk9ON2JKU0RsZmpsUDM2?=
 =?utf-8?B?UjA3S0lSYmpkNEN5ZGcyUlZCbGxCS09jMXdoRTNZVk9rLzVFNFlJdVYvNnFk?=
 =?utf-8?B?UHEzUTh4YzJUaW1McG1jL0Z6em1QM0FrL2RITzkzQjRXSEhRYU5TaDA2enI5?=
 =?utf-8?B?cDZUOC9SRGt0cmVSc3hQa3VxRHYyYjNTQXNFOGZ3eFFyN3prdU5JeTFESDlF?=
 =?utf-8?B?bEw1aTZmSzZJblF3ck42SnlHRFNhZmhRVThhb2R4SEo0ZVhpQWVzeGgzTTB0?=
 =?utf-8?B?RE9iampvT0tuRUxyZEE5YWNBQU5TUWU2c1dlL2REMTFsd3k4K2F3RHA5L3ll?=
 =?utf-8?B?NHRuaHU1RXpsTFJkdEJvUFBmS2FVSzdZa3ZFUEQxNW5pdzhqejZ1MXhpaU54?=
 =?utf-8?B?Uy9kdUM5eFkxdlhidlFvL0loWEhPYXNIQW9nTjd5V0ZxYVY0d28vWllhSEhB?=
 =?utf-8?B?bCtQbjYzTzlpU0RKMWN6bmp5d2drRUNQZXcvZWVOTUNEanJPbXRSY21IMW5z?=
 =?utf-8?B?Q0JEci82bjViZWpVMGIyQlFzbjNYSitVVTkxOUc0QjRBYUJETjBlU0xyMFpm?=
 =?utf-8?B?VWszekF2QzR6aUt1VFJlQnQ3NXU1elk0UVVXZUZPTjViNU1aTmRHQXZqRVo3?=
 =?utf-8?Q?n6pct5Sx9eeveREXitam4uc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5418ad6c-ec57-4eb4-9a70-08d99dffe343
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 12:54:20.5994
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: q88YFJClPMjBy9V9X1TWZLseNOye4oMhPKfmAEuVCdu2VD31hTxmlCfJXTZrXOafcrbfTBGmJdeRm2YIZu8sFw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5471

On 29.10.2021 01:26, Andrew Cooper wrote:
> The `ljmp *mem` instruction is (famously?) not binary compatible between Intel
> and AMD CPUS.  The AMD-compatible version would require .long to be .quad in
> the second hunk.

>From all sources I have the incompatibility is only with REX.W: Intel
honors it (allowing a mem64:16) operand, while AMD ignores it (using
the same mem32:16 operand form as without REX.W). All the same as for
L{F,G,S}S. Hence I do not see why the present form of (32-bit) LJMP
would be a problem anywhere.

> Switch to using lretq, which is compatible between Intel and AMD, as well as
> being less logic overall.

I certainly don't mind the switch to LRETQ, but then the reasoning
will imo need to change.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 13:00:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 13:00:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220220.381395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhtOV-00017Q-Dj; Tue, 02 Nov 2021 13:00:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220220.381395; Tue, 02 Nov 2021 13:00:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhtOV-00016n-Af; Tue, 02 Nov 2021 13:00:03 +0000
Received: by outflank-mailman (input) for mailman id 220220;
 Tue, 02 Nov 2021 13:00:01 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhtOT-0000p6-Pp
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 13:00:01 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 248ff405-789d-4b89-938f-59bf84d22a0e;
 Tue, 02 Nov 2021 13:00:00 +0000 (UTC)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2051.outbound.protection.outlook.com [104.47.14.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-22-uHyhMywqMzipuFGM1oA0eQ-1; Tue, 02 Nov 2021 13:59:58 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6176.eurprd04.prod.outlook.com (2603:10a6:803:f6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 12:59:56 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 12:59:56 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0128.eurprd04.prod.outlook.com (2603:10a6:20b:127::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17 via Frontend
 Transport; Tue, 2 Nov 2021 12:59:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 248ff405-789d-4b89-938f-59bf84d22a0e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635857999;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=O+PjICVWNpmAeYInRgYCqejJBvANk8gRoGI+CTZ8FXo=;
	b=QwaJgxSJ5injpqIUEwgCj9PDNuCG/y242atTESxHdsa11AKBPX1fNhe+ZORN2UNM1kW3eE
	hQeb8w5G5eLDMWC9Dd/PMOb+4aZvaGOBiJceFCiWn+o+VNXl5SoMH37cw/byIBlWuAMGJk
	/tpowLjeV8GZNk5H4vUWfdgoCs2dWZU=
X-MC-Unique: uHyhMywqMzipuFGM1oA0eQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HD/2GyRPlCqhty91AqAUXYoTz9zfdg/3XbnMJDrjFDvEmq0tyLC1RhJK92rDcSd3W3YIzn2C8bsBVAq/MNKhLdykXT2LA/EQmF7MXjSH3aPmrr/kNadT1gBcirBKmRaEVecOZ/sSohHjrbhFV+1fZ3++MDhrLxba3RWDjQcvbg3WdqGRfyGlKK6IhWnngx/B/Rw6k6dkU+GsGRO5YvPZGzsDER3dqDp6RXltwoAtEF0ritKQcGZmduY591akkuLHBM7hG7hagevwXIZZ+OpLESSimXxHRdzJgvLK41LPONVvzvGwx3m7imqvp4sCSd7IDVBGi0H9YBHDiAQm91tLCg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dZe1Rgwkk4WTiRfL9hG30OPI6hqJHX+D2ekIkyRvwFM=;
 b=j83hox0XvKvWJkJyNzaxpzHFx7wDiU48clfJ86n5VYA/nvYUtZGZSLCABWUNQ5R5y6PqQ7+3BYKfcZlMgeOzkg/JfHdY3JbgyQqdFJkIiyaV/GghiMshqr+LFu//S2vp0mT84TrbJbrO1n/MrYMUnEOkFXEqUKztvVj+oAxyNRi3q5/3xi8LmbXxXZkPiz6VU1HHyq3Y2/3vvnXxJJ0NrLz+fA2lnbAu2n/TgCqlyPCGc45ZynHFVwHclflqJOCqs1W9rXSKCcupNF03q/qlXSzmQOTBX9/dEKwx/sJjuY+155o8xp8Jglrazk8IxfGpllbBRznbbq8vQTDutO+aSg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d9be5708-dc5e-4c78-0042-410289e296b3@suse.com>
Date: Tue, 2 Nov 2021 13:59:54 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: Arch-neutral name for hardware interrupt support
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jane Malalane <jane.malalane@citrix.com>,
 Bobby Eshleman <bobbyeshleman@gmail.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 xen-devel <xen-devel@lists.xenproject.org>
References: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8PR04CA0128.eurprd04.prod.outlook.com
 (2603:10a6:20b:127::13) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: dd986606-e1a9-43f3-e2ba-08d99e00ab9b
X-MS-TrafficTypeDiagnostic: VI1PR04MB6176:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB617640A9490EFF318BAB41BEB38B9@VI1PR04MB6176.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	z3YnqTZFaD0vTm6bAjFEy9GEaQe+XRlFKUg2/1CRoW9dB4xAunBws6r5i4lMMzFttQ2/PIbvWgpkuqc37Q0R6gdPt2aGoiEKqgKQGWU13nNvSfZIyjQ519K8bFV5BNees5mWYS0+Dqlr56EgdXVRiX3xZ4Cn6j8gJ3GwsTP9+dQayI3uJdBHDLA+cIWcGasAwkLw1F+hQahrMsxRIMuPnbJogzs/F/id8bw6ZVGz0kI2FVOSENHOASB0dH8vgL5tOSJLU1aftOYY8gTn//qboEDez/yh7dwtyAoatL7+ypQBHfBJyeah/r/UmIJOSbQSufXg5H/Tmx/cny0v+l/FBnlJ0Xn2BDIPPqXKqdiEaGT3il+gwG9dqSCUYAQJD7Ap5Pia2B0YrW/AqbyBcBm/YIDKwUs1FZ0TabR4Lal/TJUjdUtVy4W3Qd8NlhjD4bhlXpdUSuY8ZM6sHjq7bNvT8o+f4Ojbxk8IYcbxiN2Lq4+8Ijhk26g0/dhtA5IpyvGAiSAy7S/DQc1VPN8kx8HRaxPpcd6b9ERePbjYxPaXHiJyy0k3UaSvvgdCtwImt+MG9izgz2FPJ8a9UMut9lJ6m/K+NW+Bapp1rp1s3WAFcJJcnwMiTAFBhIMnR+Cclq5yr6y0aflB8/ds1TzIn4y8VRmHPqei9j9/GJJ/wYUljZKaTkFURoLefUwCAJ+AF8ToMYpzisnseechKlkXY9R8YGP8ZPEvc8RzpAVUITSCPv1juEFjM+01oxUtfOQ0x2a2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(4326008)(186003)(66946007)(31696002)(66476007)(2616005)(53546011)(956004)(54906003)(86362001)(6486002)(66556008)(4744005)(31686004)(316002)(16576012)(6916009)(26005)(508600001)(38100700002)(7416002)(5660300002)(8936002)(2906002)(8676002)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?8evsThfFZwv+ArrUB62/qURmNdfOXqXICPudEHPWCJcslJOjYu5uCJkiAAWS?=
 =?us-ascii?Q?Ki/Cg2Q1JBj4JgpVICAlMXe0BAgsIlhBe0K7N8gNf4pPNorACQeiBuRjGyGE?=
 =?us-ascii?Q?8JyriSjfZ21ZFkVvXik9dKNFEfDvWy3n0XA+LcUjU5mZgyVXmGSupbD0jCy1?=
 =?us-ascii?Q?4xDgfG762WSAGixDRtwEidvpFWCx2l30voyapeu8PcKT2eCeeSFC3pl6Yvyy?=
 =?us-ascii?Q?V35CqrLj3t0uQAweNV0AmqODX+puoSXX2USp/96Yo3JrSWJmZvA7HmMy1MJK?=
 =?us-ascii?Q?/eIGWOG3LBLugL6Z66c9IsTjMl1asudk/6W2N/GZt8N4MKZ+8cR5y4snuEmg?=
 =?us-ascii?Q?Y03CUM26IM/pl+bzPP45hRiEG/0XcYIO6ihAKdjRYLmYkog3W/Y2GfAUD0oY?=
 =?us-ascii?Q?zInRAal45Nmry86d59eyd8wjqdUV1MEODldSELyU7HJNVSTizHeWZgsdinYL?=
 =?us-ascii?Q?HzBIfb3xXueMINFfd7+6l+p2XlHzwrmXRHf1+D8v1jeZTp8Uan07WBcNbU7l?=
 =?us-ascii?Q?vVlv2hHA7dfdLL2n+Ilc4wd1kfQyWdfthiDo9BUBDc/pc//7eB0xbSbUTURG?=
 =?us-ascii?Q?R3CTp29eix234W2h/NROh5PjnvoV8eC4YK8yQ+HJkbZ/F0eKkDpb6Oc9LxoW?=
 =?us-ascii?Q?Alf9gbJ/iWaULTXct1fEPBkcJ9QHCszAHYKjno93GYUDlA+YAxew+bLGQT1D?=
 =?us-ascii?Q?5MZV7ddBE/bVIDJaV4CY/kwLDFv8LnuHt7V+YhIVEIun4jPllRQACOHYLSLE?=
 =?us-ascii?Q?kktPCBczFlspVTga35JtXRfqdRNKth8m/Lc9nLE382BtbmvyetKKuyEd0vqA?=
 =?us-ascii?Q?YR94KS9SDbksLW57OuG4+pdsk2nRPrKTLp87PFTwjFI4rYsLplpwNg4NFjWl?=
 =?us-ascii?Q?eeBv/PNsU+XjQcONBLVp2eXYUDlMa27/7QhEIHpdceT8o9Rnd5D0hrW+0//+?=
 =?us-ascii?Q?zC2gxrjgVGt/OzLk5jRm+h9pN8HkR7bOjN3PiwOPLLxfZKxuzERTb4rWZR1K?=
 =?us-ascii?Q?1J/ItzTd3/6ZKoI7hGtge80A5DWb/pS9zV2+yw6k0Fj2R9NZ17vVhQwLUwhS?=
 =?us-ascii?Q?GDS11/DU3KTxTDy/Cx7/N8E8qG76MhYjlh7q2wqB/AfwFl+Y0r1kW6E4XXWh?=
 =?us-ascii?Q?vVA9ZiWjRj3iekZOPhkAXN9hqBMAA6GmUx6kD0G7i+t3n1gAcjFI3LYz4f8i?=
 =?us-ascii?Q?KOEzLtPsGdqhZOx9SxS09rKaixjQ3DGqcveGDS0kBP75OxMz391ND7KZEBIo?=
 =?us-ascii?Q?acFhI1AU0iTI4gE0gF5QluCGjmxCwvb1IyDBrKuW2SU6Tyr3EtNonF3rD2TH?=
 =?us-ascii?Q?4SCemVEn63Rew+FrBiPDHfMkpobdm1mgp57x0uKSK4JrPZzHexFh8fREtG/8?=
 =?us-ascii?Q?UPoCFAte0M6Q0UVz7JY0u/ESysV3ChPqEi1CzlRrBoecWAdZWrBJrF3AJYsa?=
 =?us-ascii?Q?IxqYe3hedmauZJ81wVrYnKjxlHpVvP5oZISOqMgBoSSs2RYKzHd1OrEeX35T?=
 =?us-ascii?Q?xny1A4NfJckY5+HbXAtdL/I9YTGRi/nTZsRcshaaR6aVH0yKq9j7Bvk/LP1t?=
 =?us-ascii?Q?8kMrlwZMEQd9qh5Qmiy4j+j5H9riDguq5MNTiNlMcKNlG693EZF7/AAPqfmn?=
 =?us-ascii?Q?2C+h1uyxOk7l0YfCQJnUm4M=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dd986606-e1a9-43f3-e2ba-08d99e00ab9b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 12:59:56.7343
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: P1wq7s1oaIEEpZ9Z1chYkSma5G1p6gOXFhuBqu30LYLcXDRPMtCjeLpYUImcHiiZn4eshv5DVpbWksc1VWW7uw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6176

On 01.11.2021 11:47, Andrew Cooper wrote:
> Hello,
>=20
> On ARM, the GIC is a hard prerequisite for VMs.
>=20
> I can't remember what the state of RISCV is, but IIRC there is still
> some debate over how interrupts are expected to work under virt.
>=20
> On x86, the story is very different.=C2=A0 PV have no hardware assistance=
,
> while HVM hardware assistance depends on hardware support.=C2=A0 Therefor=
e we
> want to introduce a new CDF flag so we can control the setting per
> domain, rather than globally as it is done now.
>=20
> This brings us to the question of what a suitable architecture name
> would be.
>=20
> Hardware Virtual Interrupts is a little too close to Hardware Virtual
> (Machine) Introspection, and Hardware Assisted Interrupts (mirroring
> HAP) doesn't seem great either.
>=20
> Thoughts / ideas / suggestions?

As per the subject of your mail simply "hwint"? But, as Roger says, a
good name certainly depends on the scope of what exactly you want to
cover.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 13:06:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 13:06:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220227.381406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhtUX-0002DO-8f; Tue, 02 Nov 2021 13:06:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220227.381406; Tue, 02 Nov 2021 13:06:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhtUX-0002DH-5l; Tue, 02 Nov 2021 13:06:17 +0000
Received: by outflank-mailman (input) for mailman id 220227;
 Tue, 02 Nov 2021 13:06:15 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cNKe=PV=gmail.com=jandryuk@srs-us1.protection.inumbo.net>)
 id 1mhtUV-0002DB-NA
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 13:06:15 +0000
Received: from mail-lf1-x133.google.com (unknown [2a00:1450:4864:20::133])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 62743ae3-6210-4ac2-b66c-0b0e72dc62f0;
 Tue, 02 Nov 2021 13:06:14 +0000 (UTC)
Received: by mail-lf1-x133.google.com with SMTP id bu18so25672624lfb.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Nov 2021 06:06:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62743ae3-6210-4ac2-b66c-0b0e72dc62f0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
        bh=WGEcGTNaPHyBp9AFLVzdDpRNCxqF7driYhfw6Pjd9CE=;
        b=Jv1++kwCJIiOxvq49iQyHz43OoAowtT6oLvF2e0cWGpxnwRbNOv+8RjVibWaqOVvO/
         aSnPniRiWrjXTQhktfk6VGkeUzlz4JwmJylGB+YBQxPtoSWeFJlTzQHqjn9yCpzkeu6P
         96YPSyF75A3+Ma7SorfkP34yfmhe6DWXzu9v9Srr3jCitdTAwXSe7G4GaXuokhtHmAx8
         42fjuYwZGjSPfdNh9ZF6QCxlrcGr7qpiFTOMkh2TwDBG2SjOWnVbeopnpIcQ5+G8tDJy
         Kl3iQ/uUTZ7Z8GJpyRAqvZg1oNenV5sL8+OPT/zxWFEvmYAn3IfoY1pVUlgia/59y624
         l3gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to;
        bh=WGEcGTNaPHyBp9AFLVzdDpRNCxqF7driYhfw6Pjd9CE=;
        b=OoH9/7TZeXJLx8HY+byUcaRaPhOMdW1hCgb3I3JODk9PVL1505beAZVg2rIiAAIQAS
         NrDXEszSElEtrw+GYs/VPCQGcQKvBwRDRAr7Txn0bP+QlORXWPsBUJUOFNmbXglshKet
         YZf3SMPLqA+H8Z/ZXp5Z4Dd8jAYmbCyum9VG/D1cmFllInjmiB3yTl3T/is/MebnaRoH
         KI7/iXJ3Cq8cRyPY4DpoO3lNM+/vMXrrC6/XBcBrqARitgoAdDw0z+BDxBp+CAoUjKYC
         1EDqk0viYFM+ITp0foxtAAHdkaAhmnq1qlC+posqhX105A2tO3kUAhcSKVjIqze+033M
         uRIQ==
X-Gm-Message-State: AOAM533SAma8gLwm+hGRa0/f+Xddh7dQjfrXKMbTnxR9MFGSaPQkf22W
	oXW3dwZ+cDfwxN99LQUJh7SpHKllSxzcgi5SKEI=
X-Google-Smtp-Source: ABdhPJzXvkw7kypcTGklS21q2NJ+dyotldJmjicL5wGcnV76g3ZVfxHlTXnnCu+YH7zAxg7CWaPPOryJ3Xbc16VuSxM=
X-Received: by 2002:ac2:488e:: with SMTP id x14mr9010363lfc.250.1635858362865;
 Tue, 02 Nov 2021 06:06:02 -0700 (PDT)
MIME-Version: 1.0
References: <osstest-165982-mainreport@xen.org>
In-Reply-To: <osstest-165982-mainreport@xen.org>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Tue, 2 Nov 2021 09:05:51 -0400
Message-ID: <CAKf6xpvBMJnJVe1pxcxMf-6v64vCsZsXQve6MVTOgYTtmaNMEg@mail.gmail.com>
Subject: Re: [qemu-mainline test] 165982: regressions - FAIL
To: osstest service owner <osstest-admin@xenproject.org>, 
	xen-devel <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"

On Tue, Nov 2, 2021 at 7:20 AM osstest service owner
<osstest-admin@xenproject.org> wrote:
>
> flight 165982 qemu-mainline real [real]
> http://logs.test-lab.xenproject.org/osstest/logs/165982/
>
> Regressions :-(
>
> Tests which did not succeed and are blocking,
> including tests which could not be run:
>  build-i386                    6 xen-build                fail REGR. vs. 165682
>  build-i386-xsm                6 xen-build                fail REGR. vs. 165682
>  build-armhf                   6 xen-build                fail REGR. vs. 165682

This patch should fix the build issue, and it will hopefully land in qemu soon:
https://lore.kernel.org/qemu-devel/20211101234358.582487-2-mst@redhat.com/

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 13:55:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 13:55:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220241.381418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuFc-0007BB-1I; Tue, 02 Nov 2021 13:54:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220241.381418; Tue, 02 Nov 2021 13:54:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuFb-0007B4-Th; Tue, 02 Nov 2021 13:54:55 +0000
Received: by outflank-mailman (input) for mailman id 220241;
 Tue, 02 Nov 2021 13:54:54 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LV3Z=PV=linux.ibm.com=mjrosato@srs-us1.protection.inumbo.net>)
 id 1mhuFa-0007Ay-Fy
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 13:54:54 +0000
Received: from mx0a-001b2d01.pphosted.com (unknown [148.163.156.1])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 73744376-3be4-11ec-8557-12813bfff9fa;
 Tue, 02 Nov 2021 13:54:52 +0000 (UTC)
Received: from pps.filterd (m0098393.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A2C4gre019025; 
 Tue, 2 Nov 2021 13:54:36 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com with ESMTP id 3c2p6t45hu-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 13:54:36 +0000
Received: from m0098393.ppops.net (m0098393.ppops.net [127.0.0.1])
 by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 1A2DhPHh004340;
 Tue, 2 Nov 2021 13:54:35 GMT
Received: from ppma05wdc.us.ibm.com (1b.90.2fa9.ip4.static.sl-reverse.com
 [169.47.144.27])
 by mx0a-001b2d01.pphosted.com with ESMTP id 3c2p6t45hb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 13:54:35 +0000
Received: from pps.filterd (ppma05wdc.us.ibm.com [127.0.0.1])
 by ppma05wdc.us.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 1A2DrChd016043;
 Tue, 2 Nov 2021 13:54:34 GMT
Received: from b01cxnp22034.gho.pok.ibm.com (b01cxnp22034.gho.pok.ibm.com
 [9.57.198.24]) by ppma05wdc.us.ibm.com with ESMTP id 3c0wpb3fk9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 13:54:34 +0000
Received: from b01ledav003.gho.pok.ibm.com (b01ledav003.gho.pok.ibm.com
 [9.57.199.108])
 by b01cxnp22034.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 1A2DsXr141156886
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 2 Nov 2021 13:54:33 GMT
Received: from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 4BA61B206A;
 Tue,  2 Nov 2021 13:54:33 +0000 (GMT)
Received: from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id C8AFDB2070;
 Tue,  2 Nov 2021 13:54:28 +0000 (GMT)
Received: from [9.163.21.235] (unknown [9.163.21.235])
 by b01ledav003.gho.pok.ibm.com (Postfix) with ESMTP;
 Tue,  2 Nov 2021 13:54:28 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73744376-3be4-11ec-8557-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date :
 mime-version : subject : to : cc : references : from : in-reply-to :
 content-type : content-transfer-encoding; s=pp1;
 bh=Yw5dUWSQl31miEbMUQUr/Hp/nRioSP5MgMGrqdPz4jE=;
 b=D9xkk4T4Jd9bzmiOk7W9tH3x0Prd9k+LfuJ4ZNI4TjhLPrHY+y5yFiLNqlkYVZg9V6GN
 FgmxCwUhxmTaftb9t3SvoMjjFy7osrrG+nn1lhbEjPL5rRIRcNGwerN7UkrngALize7t
 cc9w5vubNiMgQIaecE6aYzFnJiCL1LY8V70Q8OGeRlh+BS6cxFn/tgZWsVSZ41y3fKt7
 BmG5lBuqhc0GAm3IzbWYz1jBP9gL/qvXCKf8xKZ+kyVBpZM+i+sMHPYyFEp2kqFIfKxu
 m6XVHfB3cKaJirZoYxqOgYJTSkh1YSmrPugOOWykyVtrUkKWwZqljuwUV+11yYkBGvFp /g== 
Message-ID: <99e30a41-37e1-2229-d654-d2fb9b0b0a72@linux.ibm.com>
Date: Tue, 2 Nov 2021 09:54:27 -0400
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.0
Subject: Re: [PULL 8/9] pci: Export pci_for_each_device_under_bus*()
Content-Language: en-US
To: "Michael S. Tsirkin" <mst@redhat.com>, qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>, Paul Durrant <paul@xen.org>,
        Thomas Huth <thuth@redhat.com>, Peter Xu <peterx@redhat.com>,
        Ani Sinha <ani@anisinha.ca>,
        Stefano Stabellini <sstabellini@kernel.org>,
        David Hildenbrand <david@redhat.com>,
        Halil Pasic <pasic@linux.ibm.com>,
        Christian Borntraeger <borntraeger@de.ibm.com>,
        Anthony Perard <anthony.perard@citrix.com>,
        xen-devel@lists.xenproject.org, Eric Farman <farman@linux.ibm.com>,
        Eduardo Habkost <ehabkost@redhat.com>,
        Richard Henderson <richard.henderson@linaro.org>,
        Greg Kurz
 <groug@kaod.org>, Eric Auger <eric.auger@redhat.com>,
        qemu-s390x@nongnu.org, Igor Mammedov <imammedo@redhat.com>,
        David Gibson <david@gibson.dropbear.id.au>,
        Cornelia Huck
 <cohuck@redhat.com>, qemu-ppc@nongnu.org,
        Paolo Bonzini <pbonzini@redhat.com>
References: <20211101234358.582487-1-mst@redhat.com>
 <20211101234358.582487-9-mst@redhat.com>
From: Matthew Rosato <mjrosato@linux.ibm.com>
In-Reply-To: <20211101234358.582487-9-mst@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: 9FzBbIhAdmazPO9km77fMbpBS7P5FRho
X-Proofpoint-ORIG-GUID: _UWLZZhZObbZT9nvCl654-bwifCH103V
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_08,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1011
 malwarescore=0 priorityscore=1501 lowpriorityscore=0 mlxlogscore=999
 suspectscore=0 bulkscore=0 impostorscore=0 phishscore=0 mlxscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111020080

On 11/1/21 7:44 PM, Michael S. Tsirkin wrote:
> From: Peter Xu <peterx@redhat.com>
> 
> They're actually more commonly used than the helper without _under_bus, because
> most callers do have the pci bus on hand.  After exporting we can switch a lot
> of the call sites to use these two helpers.
> 
> Reviewed-by: David Hildenbrand <david@redhat.com>
> Reviewed-by: Eric Auger <eric.auger@redhat.com>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> Message-Id: <20211028043129.38871-3-peterx@redhat.com>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> Acked-by: David Gibson <david@gibson.dropbear.id.au>
> ---
>   include/hw/pci/pci.h       |  5 +++++
>   hw/i386/acpi-build.c       |  5 ++---
>   hw/pci/pci.c               | 10 +++++-----
>   hw/pci/pcie.c              |  4 +---
>   hw/ppc/spapr_pci.c         | 12 +++++-------
>   hw/ppc/spapr_pci_nvlink2.c |  7 +++----
>   hw/ppc/spapr_pci_vfio.c    |  4 ++--
>   hw/s390x/s390-pci-bus.c    |  5 ++---

Looks like I wasn't on CC for the initial patches so I missed it (oops) 
but I did just verify the s390x changes now, LGTM.  Thanks!

If needed, for s390 changes:
Acked-by: Matthew Rosato <mjrosato@linux.ibm.com>



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 13:55:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 13:55:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220242.381429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuFn-0007TN-9o; Tue, 02 Nov 2021 13:55:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220242.381429; Tue, 02 Nov 2021 13:55:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuFn-0007TG-6B; Tue, 02 Nov 2021 13:55:07 +0000
Received: by outflank-mailman (input) for mailman id 220242;
 Tue, 02 Nov 2021 13:55:05 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhuFl-0007SV-Cn
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 13:55:05 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 1ae82eb3-10ca-4537-b6bd-a8dbdde05f52;
 Tue, 02 Nov 2021 13:55:03 +0000 (UTC)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2050.outbound.protection.outlook.com [104.47.9.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-38-V1-twasoPpWE4qWKV4omEg-1; Tue, 02 Nov 2021 14:55:01 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5743.eurprd04.prod.outlook.com (2603:10a6:803:e0::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 13:55:00 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 13:55:00 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR0202CA0055.eurprd02.prod.outlook.com (2603:10a6:20b:3a::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Tue, 2 Nov 2021 13:54:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ae82eb3-10ca-4537-b6bd-a8dbdde05f52
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635861302;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=fNAC5yeHnemRJ3XXQqQRErsukVrcq39kxrhWY27ZKXM=;
	b=REMTLqaMrrVCeyeA56FEpDnhZziVzstk4MpBBftrJaiDTgZiKzAG5ebyMyFGF+/HREGBe5
	sc9EgHAIRfugOHTS/ymyfDm9oOlmwj/3TieQVppRDgVTj2kwN4nq+SJL7wEdDG4G8rucUw
	+bgLKq5TUEwMamINOOTlcZvQAe2jfcw=
X-MC-Unique: V1-twasoPpWE4qWKV4omEg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SUQWbsLbDZoqWAmVwIY003yXBGQhjzidMp1JIaN3VVgT7mtwHvVtE+p1YEKyRjjxz0lNRIkufasWIUwz9QjnQMcGEZSI/kWbYX23/HfHI0u+MMxH0ZxL2JT67xwIDYBbTjg9Js2xbsxkV6CHKxZdBBZuMjkADX+Ru6terU3zfUwsJ5M1Cvpgt87xRCWkisZIsP22Tm20XrbGvuonOSzmFiX0Cf7Z6Mvx99IfnViIX7tzVo01nyo2b5tsuuv8xCqQqN+woAO4GWO3Qs2JyBz6+VorKESEVzdBKsjthtvh01CS5sMIYxoMG1DzUxX4R9yeSdFR1Ir8MWhxszP9M0dwhg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sDJJXcbOjoNhtlX3l+dZOaDpJsCSpTQRdsvnz7Znqks=;
 b=O1TBVpYfzDU4fq9IJ3yN+G0LBpAVgQTMfZRnV97w++JFX5/XW8Rfs3vbwPWF5v1XVRuh4XnOoeSyjEFEpRPUQThuOuOusFgVTSiU2R1TOxa67I4b9V2a0PQb3TOacXih7GkH2WxUlF5tPqBDUuxHYqsHE3GkeINODgJ3M+tODQdMq1jt9y6RhIcN67I6Ud6KQfFXS15miXpqHHPCILLFu8gjx7t8wZLvO7GkUsXgswJ8AqXlMPpsjmwQLJrJxgy99rDi4t+cNcxT2Qp5oCVF4zS/HIvwHn86cAIJJylncfQ+PPuxxKwiSqwaq1atoq0rxHr12Y+L0kcyiBlwl7KTGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
Date: Tue, 2 Nov 2021 14:54:57 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: xen-devel@lists.xenproject.org, julien@xen.org, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, volodymyr_babchuk@epam.com,
 Artem_Mygaiev@epam.com, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 Michal Orzel <michal.orzel@arm.com>,
 Oleksandr Andrushchenko <andr2000@gmail.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYEl8h+WtSZwNPn7@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR0202CA0055.eurprd02.prod.outlook.com
 (2603:10a6:20b:3a::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f946cf26-66ca-46b6-90ca-08d99e085c90
X-MS-TrafficTypeDiagnostic: VI1PR04MB5743:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB57433C88588A68E445558C3AB38B9@VI1PR04MB5743.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	rHu2xhYVUP2NSGIlytbCTmRIGsWFYIcqFIrUrqwLwqYWcKgBb9/m64xgS/F20H2KumWxcwwItoEqTzfoQoLtyLOhEmsBSGPF5GNylmMl5ZAHT4x1CtBCl2/Ub4bfsjh++mmVcaPNkTGjmP9je7YOOTVcdMcnMjI9e65JF32/wFl0Bn7et74sG8LbB53Nw0FV9z3wyMhvz6mycC7lgrs6wxpf+z8o2gL18xhDlYUzaZ8HrpTroWX1/5SGh0wnTU6RtnbISizlWpM0oW+YW7m+5nf0UB6wFvhW0TCzZk3u8FQymuN1HUmQ+NJ8grCt4iHRbR0f+b/VNEZqfcKcK1/6gJf5xwstRuUW4HBpiRFLLug7o5IdaYBIbtC+X+BmaHqFdAFFxkK0WPcQOVSe29YLPK3HWrjmbWKTa8n0PN5ePycVgVxIrv4dk1NoHVs+z5VxKH4/L5cUAPnPWFCfFB/1x9d1VCql6TXCY9mpZC9a3/qeAHDtuV5uTtRmHkJ46zq5gLoo5p4q0F0x3A0180mkmmv3BLBp/Du/xMRxlJCGiJfdAL2r8i4Xmo7ulXI+MVmSiW4xvpIcop8qA648c+EWRSFKk6OwgA1KEIMEkCE+EhJPH6+dARgDnNP9BxGhWw7lf96jHX9W2AwEhnUKtVqip2ICAT+RYsojWm4HF8emxj5DdYAcyTgZhJM7EGpZeR/sn4mr8R7lRrMU/JUke/XGrMqKSSMH7CgfUY8YCcqopbY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(316002)(2906002)(8676002)(186003)(16576012)(6486002)(36756003)(38100700002)(31696002)(31686004)(53546011)(4326008)(7416002)(6916009)(8936002)(83380400001)(66946007)(2616005)(66476007)(66556008)(26005)(54906003)(86362001)(5660300002)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?rFWZqAokG34b9wBRNULvdf4WFj6/QWQ0yBsawTkqSjk01oajvhkfntfOV7JX?=
 =?us-ascii?Q?fo/GhbCb2dMyYxGXRhYkIYNABQnCIEiqrX97wYgB0NflpS8Kj0ofplwqPZ56?=
 =?us-ascii?Q?OKSY928PoWN+avzlI8rfppWKfxe9A3KmS/5h02o2A5PCbNFi1P/LVWPjBKvx?=
 =?us-ascii?Q?Fgg9jh3rCb0wlK/e1AUul9uQ8UA+uMIkvJa+2E7TK4dh/9KqLAyPL134VxSb?=
 =?us-ascii?Q?/IpRuPqY0QKvcE7jej5OWx+sYJEA3elaSUrrpKLzH/S9rTMfQ673DlXxcsr8?=
 =?us-ascii?Q?Y6GKHTnVrZy7cTEINHa2FiOTtHFhlhl3nAoTLJMw9GHUScBS1uj2YWsLnDbF?=
 =?us-ascii?Q?kqm0/4hHwKnF/ZYIDZPxAWt/xLX43m7DHxnVLBRTpadqej0U6T7kUuT1hmft?=
 =?us-ascii?Q?DXZUbqOd8GUCT7tIK+kUsnpO5FTL4dPI4vKhMs1llIyQdFl/lty+faw3X6K0?=
 =?us-ascii?Q?4xZ5YOnYQzInlbcglOTLq5xvRhV2N/j6JCblb/OfCAAVTAeD6wqxoNCy6eav?=
 =?us-ascii?Q?b5iMEH2TIIZ9eKNQadtLT4D5ONjcUbsZ4SBpoe4892PN9tw3g6+pzyVrIkwt?=
 =?us-ascii?Q?r8Ob3jICf+g0RZ6Z+ZPE5z8SX9WpfjtEvAUjX5bCuof0o/0sZdUILjcR4/Vc?=
 =?us-ascii?Q?CtsHNKpesAiMpoIbt+ZG6+Cx/gZ6KG6Tc0B2yYc2rEwIGNH05d+gEui4zKHH?=
 =?us-ascii?Q?kpdkPTNQdC8tGeUHTDK3yCb41f1SPkdRcXoJuOozpQR5dSib/VXxcCOb9l4I?=
 =?us-ascii?Q?/N6wDOo3EWrJh8JVYmzvD/rPEtkEx9m6FZlgrnpRai/SjUTKwE9XPlT8I5BG?=
 =?us-ascii?Q?clHz9WDkuuG+saOGfcIjUBoa+X2OiWhJOzuNaNbKLQSPJHKvMF1V6N4CsJId?=
 =?us-ascii?Q?MAjrG2uFvjGUoiB31C55FKy/Uy202VdKDrvjHjTEPHp0/BtvfOwDxEfDzq64?=
 =?us-ascii?Q?XqHSxTBI6/NMzmW6qNkBMAUk3cVWDYe4lYy1H0d/1Et6mPS9I1V5N8k8xaUJ?=
 =?us-ascii?Q?hen2FXrX0kjp+9DcmEjiGYlOMGN0MPTfy0rAxfxiE7Gnx0pti2bue4gKWP4B?=
 =?us-ascii?Q?WIRnNiFlqH/b13N2IN2N1p02N7DGYJNydEAmKyUHIomJJ+OU4n5KQUele7a8?=
 =?us-ascii?Q?JJVtlDXMumpyJmw5PG7/Zmhm1jfWzBZbOB8CRPQAoEHpMbmW8IhOMHkFvBEs?=
 =?us-ascii?Q?g2GBV6o2los+iV6sI/Yg0fm/P8NxvLkbLaHgZatmnwfjgeFTsz6RQ0sae41j?=
 =?us-ascii?Q?hBtoUOoFqfm+6N+a//D25n++QKijN2d+21goIOBffwKiTiTTlRr6D/dFEmXk?=
 =?us-ascii?Q?+GvEz9D/P8lWcDRmK8lJrmGlxBY6xAPeOX3ZD3nZjP3vQ5cn7lhqcqZ3hsZV?=
 =?us-ascii?Q?MNDBUnNJwPUd+wum+UlG+VuQ4yIXwvYoxkzH0B2tL/8WPLHr75C4cJashwtG?=
 =?us-ascii?Q?pSFD5gzYThrKpr9TxP4nlqAhKQgu4VQsuHCwyAalxfn6jzbj5cET660YQBlQ?=
 =?us-ascii?Q?gwB7H5A7vrtKbCQcJvMY2cNX32BREpEXgaXX1d8XH46w6yVsAnvwPJOYXBFv?=
 =?us-ascii?Q?kKCOEs/NpYYJMc8Um8mZQUce4AkFvzoo9/E97yKjCJLi2+/cWNs+7SsTECwj?=
 =?us-ascii?Q?aPWCX3gfJR+UHJxB9ikQbiE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f946cf26-66ca-46b6-90ca-08d99e085c90
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 13:55:00.1389
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: O1gmZbjcbfNpGBdc3pSts51Jgp/f+N1n0jEOn3JZ76jCii6+OfUvwJGyNaOlWG3fWO3iHLp8KaFPIcy/tp0Bbw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5743

On 02.11.2021 12:50, Roger Pau Monn=C3=A9 wrote:
> On Tue, Nov 02, 2021 at 12:19:13PM +0100, Jan Beulich wrote:
>> On 26.10.2021 12:52, Roger Pau Monn=C3=A9 wrote:
>>> On Thu, Sep 30, 2021 at 10:52:20AM +0300, Oleksandr Andrushchenko wrote=
:
>>>> --- a/xen/drivers/vpci/header.c
>>>> +++ b/xen/drivers/vpci/header.c
>>>> @@ -451,6 +451,32 @@ static void cmd_write(const struct pci_dev *pdev,=
 unsigned int reg,
>>>>          pci_conf_write16(pdev->sbdf, reg, cmd);
>>>>  }
>>>> =20
>>>> +static void guest_cmd_write(const struct pci_dev *pdev, unsigned int =
reg,
>>>> +                            uint32_t cmd, void *data)
>>>> +{
>>>> +    /* TODO: Add proper emulation for all bits of the command registe=
r. */
>>>> +
>>>> +    if ( (cmd & PCI_COMMAND_INTX_DISABLE) =3D=3D 0 )
>>>> +    {
>>>> +        /*
>>>> +         * Guest wants to enable INTx. It can't be enabled if:
>>>> +         *  - host has INTx disabled
>>>> +         *  - MSI/MSI-X enabled
>>>> +         */
>>>> +        if ( pdev->vpci->msi->enabled )
>>>> +            cmd |=3D PCI_COMMAND_INTX_DISABLE;
>>>> +        else
>>>> +        {
>>>> +            uint16_t current_cmd =3D pci_conf_read16(pdev->sbdf, reg)=
;
>>>> +
>>>> +            if ( current_cmd & PCI_COMMAND_INTX_DISABLE )
>>>> +                cmd |=3D PCI_COMMAND_INTX_DISABLE;
>>>> +        }
>>>
>>> This last part should be Arm specific. On other architectures we
>>> likely want the guest to modify INTx disable in order to select the
>>> interrupt delivery mode for the device.
>>
>> We cannot allow a guest to clear the bit when it has MSI / MSI-X
>> enabled - only one of the three is supposed to be active at a time.
>> (IOW similarly we cannot allow a guest to enable MSI / MSI-X when
>> the bit is clear.)
>=20
> Sure, but this code is making the bit sticky, by not allowing
> INTX_DISABLE to be cleared once set. We do not want that behavior on
> x86, as a guest can decide to use MSI or INTx. The else branch needs
> to be Arm only.

Isn't the "else" part questionable even on Arm?

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:00:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:00:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220254.381440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuL1-0000rE-V5; Tue, 02 Nov 2021 14:00:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220254.381440; Tue, 02 Nov 2021 14:00:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuL1-0000r7-S5; Tue, 02 Nov 2021 14:00:31 +0000
Received: by outflank-mailman (input) for mailman id 220254;
 Tue, 02 Nov 2021 14:00:29 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhuKz-0000qz-Sj
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:00:29 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 67cf0b3d-39b3-4797-bd7b-9b41aca23283;
 Tue, 02 Nov 2021 14:00:28 +0000 (UTC)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2105.outbound.protection.outlook.com [104.47.18.105])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-11-BAu1HQW1PQejTcJuCpUBqg-1; Tue, 02 Nov 2021 15:00:26 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3293.eurprd04.prod.outlook.com (2603:10a6:802:11::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 14:00:25 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 14:00:25 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0068.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::45) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Tue, 2 Nov 2021 14:00:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67cf0b3d-39b3-4797-bd7b-9b41aca23283
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635861627;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=6dWByail1OgjUCki+jjH6BIgPNl0pAfri+fzQ46mPO8=;
	b=k3fqsqEMHIXWQAa/eNbkLeg75Ic+UT9hi39hgZF0V+Un12YxjTOERr4UgKXnb357sgjOJx
	cvnIu6KlUSPSHBYoB830ROKDvQqaKrBwQWtV9+TVe3Mpg/9pxp/gopHXMfZjvQ+7IVllUS
	uy8gbQzqlQhQK47OSt1AAnFlE8tv5Ps=
X-MC-Unique: BAu1HQW1PQejTcJuCpUBqg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=og7FGUWuQ/2C2IEzU1HsoZ6T4/36AjI+Dn33OVGUjqM/CDDcwc7B+5xsYVsCSQHQnkpl+rhtwFnaAbbsKH4D7zEnrb0qNpO/+n99KRSb/XwX8bT1TuswdCtlmLDozLw/Ucq8/ztxbBpRPaUcfZ6LaSf0QXNfHjdevkMftXPJJcuVCdRxzMhNdFKRziKhdhuA3719xBIyaMeqpOBOOgBtcXBvlfBnACt5MujJsg3sDX6ROYV5Trjdm2R8qZZT8ngKfUPuM/R2GgaLS88B5/DMhNygH1KJmKZQ1Mhm7NDqFd19vs/ITuDJnR7LkbOARxdCLhQQzXcOZOgfdlzu3ty3iw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DIylSAzZ9+lrIdokk6R80tpBA7paMaJ0WJdZy5302iI=;
 b=JQXOfC8XBV8RGr03kirSB3BTVVCTfYZdecpIrh0xJ6RERi+yr216mC8ERC4S645QI45gT1B8TP/QbBf6rX8Z3yZlkeSEptX4GFKbWPsax6xlY9ZFs2zNk+MxP/ahWF0eXe4XnTPyWRY9TA1+mUddckq4JuxXhdhhvcKSwFfF6OPzGo4BE+rmt8K4oLiL3L6shTl6jjPPWG1SazXY+rLpA1TWTN+JI8mEcSQkcnhBIoVy4WGX9fMS9C12DC6j6TnV2phYxUjwjH9iL7LlgDWpt0sMgIQH1iED1gNFkwNliQr6fLk20eWab1e1/OifZ26hbWIvCgnMKLFkI/AU4vt1cg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1c604641-0dd9-6912-7bd5-02ee1cb868b6@suse.com>
Date: Tue, 2 Nov 2021 15:00:24 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 3/3] AMD/IOMMU: iommu_enable vs iommu_intremap
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Paul Durrant <paul@xen.org>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <ff7b68b2-5bba-2927-e3f0-f3062862c466@suse.com>
 <YXaGxX3J1aB39mSG@MacBook-Air-de-Roger.local>
 <dd2929fc-dc1a-1c16-5954-6894766d9dda@suse.com>
 <YYEa6HQGR1cHJBw/@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYEa6HQGR1cHJBw/@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR1001CA0068.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::45) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d58f89b5-237d-4225-80d0-08d99e091eb1
X-MS-TrafficTypeDiagnostic: VI1PR04MB3293:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB329378BC0D6A3F9D3794D195B38B9@VI1PR04MB3293.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	viPfqOBW3fFyb034uGXwd7dkJIavW4KolPiTvR+3wxaTeUerob9+a89WTmD7RoE1AS9CJ8ee341yDjRfwks+FwzIQqW19eEXQt4xEfwhyjpqGAIJYsXPBGsYLqLdlOGA61RG4zvfKrWW1EZKodAPhMLkPJO3zLazhl+2N9eL2NUu2hEiD0FrbibVAsWtMBlA/wI4miOSbRMamgQCK5lmht0vxjrFyMfv50R/drIdfOpZ8brbnI2TdSQC3yjpsYkTekjYKl8IrH3QtxebwbJnOzemaFUiWZWMoqV1we2659Y2ybqsDKF8FLYiTpMEX4Djdorn2kPUUrOKB11L9G0P+qX3zI3mHOAV5515XJN9/A6VAO82WdavBu06AYrLU010StP/1FrCmvD32e32rOcf/ahVn9MNygDHJRlFsaTp6bXMC8NoDQvxBR8/Wg9sgsx4D4QM4a7SQyKudfOMnemkcSjP6PaVlIaaDZjcTq0kGYaCdjlMMtIuFa55pe+MWAbpT5cktGkQhupswgph2pga64JmzmRTns17nzsAtvrWhQnxXaDAp8HaA2/29/OO50nwuHw8rDI7PWCMawfzBkjWnFzsYiOVCJNbgsmUn9jk0zBJdt2HU6Ba/IfP/RyL5CmaqOA7f85WkCbMG90DNiA/2L/GJuKDUT4xU6a3DAjPoRgSl6bWPk9oh7TIZ4yKRux/quBrE0WgTK4p9tNoIYBCQE1AXDC+mFMOAvLbmEpE6wgpSNccsj+VBD5NxQU8r4vX
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(8936002)(186003)(6916009)(6486002)(36756003)(38100700002)(83380400001)(316002)(8676002)(16576012)(54906003)(31686004)(4326008)(26005)(2906002)(31696002)(5660300002)(66476007)(53546011)(66556008)(2616005)(86362001)(956004)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xiIzXTT2Gt7pss3+iNpQkVLZBu5vjwKFKVXh5mNjQtwbL2vfgzuBfFfn80yt?=
 =?us-ascii?Q?FkM4PLwC6xYwmWjlcsTd7kLxRVNNAU5dSmc/O8pOBWKJu/F9oM3rgAhDheXQ?=
 =?us-ascii?Q?WtTlAlQ46U1cAHDaongUAx7BJX78bjZZDu0xDrXRb9BPwO5iVVY956PFZ+LD?=
 =?us-ascii?Q?8KrH8Ol6JIQBEVU2LCcwK/iYTk7uwjUtCSWQ/7kForhsDovqmthBQWfCU/Pb?=
 =?us-ascii?Q?opypKLl4vu6hi9YwHfya29ZY8Bv9biWP3qSZB60XeyPE1DERyp3SHsOZtdQg?=
 =?us-ascii?Q?Oo3QDLTLzMfdOkQrTd/ykq/Zq5jKspec30d95iXbaUlFEJeulKUSsjXM1lSb?=
 =?us-ascii?Q?DuAt+soCc/4aattFXzcLmlliWv22l1RjA6HC7iyCiUukk9Xje06Ys2zd8Vjz?=
 =?us-ascii?Q?+Q6tWNs1gmTCBKsPAhhe8ZCAMYDNvUq1v/UjY7Z6eeOhoP6iQySEyOjEbv80?=
 =?us-ascii?Q?E8vTU0uNO/YS5n7yjTqopuqUWcKmhxGnqFnDGxrsQ2nHKn92HY9C50nAtTUa?=
 =?us-ascii?Q?vLCaNKE1ru0LqjbT9VANLTGJKo3ShbxsEIVIUmrl1AGMy9SypqKbWBO9OaMy?=
 =?us-ascii?Q?bmh59B2XCZGWFy7pjRw7fks5szNGNLxIFxOnxMBIQl5qir9djzB7beoHFagp?=
 =?us-ascii?Q?GoNQb9Jgn0SogYbvAJaY4S0P1qyircY5741RJ6rKYpyk7YB/RgM9sYZSVjgr?=
 =?us-ascii?Q?3kG6uG4TBOON6n92ubqZtWGjsXZ99U3LE1NzSBKsJtp0dtkaQv0wSwQAjklV?=
 =?us-ascii?Q?Vn1DT/T+5UXtG+Nx2RzxzSQ9azFT37hjS6DEWy+lgRhK6KgUIPdl3xoR+0ZQ?=
 =?us-ascii?Q?uIm3fzzyMUM8DoJtsnwjHt/QAdVN9W1pEHCDdKgxg74Rbv5oqvzeJk46bpBE?=
 =?us-ascii?Q?HbEAOmAAzZEUfuQD2aCKVoMurY3wD8J8vam675/FLbTsunec/oED1k8dk5Er?=
 =?us-ascii?Q?U5vilO69pj/Rfj1c1530HdNKoOYlmZ73sYZGUnoGZXNZhLvmIrR6vIe2jxpS?=
 =?us-ascii?Q?NCHty6uYNsGvljl0N6ktOGffEeprnLKYeudN4UdS9Fpr0MAivT6o49GWEUPk?=
 =?us-ascii?Q?bI/JDmIQ/OEQnTTv98pe6ado7pXq+hZzS8HiDX0FuVy2WR20to9lLyZ4rDAq?=
 =?us-ascii?Q?SwoHPeQ2yp/KnNuERQaLBJDh4BhJaJLB7hwco+XgksJeXNctoTmL4G188Rnw?=
 =?us-ascii?Q?FUh6GHOcmm/Ab75coNq/8AQmjWytuk4gFD4eiUECN8gCSgGG07ei8Fx6ULen?=
 =?us-ascii?Q?zrOWrPGLM9QIpU6NaPkSbUeXwCv8aC2l70y7Z+Ygs0yE9S3ZMOVxdVdngUPo?=
 =?us-ascii?Q?LhCrz6cvi2bq1cprmf8Mk/Or9oA5+N8nIsaoH3IIhCcIAql4KMDIKqSFV59F?=
 =?us-ascii?Q?lRPlC1A55um+DYads2/rOA7Sb81n3QCFpEd8MyXJSHVGMGDpB+HSgGQWEat8?=
 =?us-ascii?Q?WZaSseSH4fDgvZy8y7XPTam+g7cyNXyvPOCPEBV+PZ2e4keW9KcnpDjC+W36?=
 =?us-ascii?Q?M0bGloq5tuFgnBUqMNM1GKnF70aGlfJAVtUA8Pq+UELHhcZhuDp2uJBEa2tn?=
 =?us-ascii?Q?8U3XjDxWTI3Z1InGu9rduo8FVNxrKx8JCewD6e+zM61/zJQbCnEk2CGBWbau?=
 =?us-ascii?Q?5274FSAI9F8qhJbYyQv7GBk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d58f89b5-237d-4225-80d0-08d99e091eb1
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 14:00:25.8148
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: swJ9ll6+hx4DXde20bFhM1KCzxAJgiDZoC8jCoxTvBtJCr6F0GW8elmn+SYCblnUjd0tRDsXeaCxU/fRjer/JA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3293

On 02.11.2021 12:03, Roger Pau Monn=C3=A9 wrote:
> On Tue, Nov 02, 2021 at 11:13:08AM +0100, Jan Beulich wrote:
>> On 25.10.2021 12:28, Roger Pau Monn=C3=A9 wrote:
>>> On Thu, Oct 21, 2021 at 11:59:02AM +0200, Jan Beulich wrote:
>>>> The two are really meant to be independent settings; iov_supports_xt()
>>>> using || instead of && was simply wrong. The corrected check is,
>>>> however, redundant, just like the (correct) one in iov_detect(): These
>>>> hook functions are unreachable without acpi_ivrs_init() installing the
>>>> iommu_init_ops pointer, which it does only upon success. (Unlike for
>>>> VT-d there is no late clearing of iommu_enable due to quirks, and any
>>>> possible clearing of iommu_intremap happens only after iov_supports_xt=
()
>>>> has run.)
>>>>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>> ---
>>>> In fact in iov_detect() it could be iommu_enable alone which gets
>>>> checked, but this felt overly aggressive to me. Instead I'm getting th=
e
>>>> impression that the function may wrongly not get called when "iommu=3D=
off"
>>>> but interrupt remapping is in use: We'd not get the interrupt handler
>>>> installed, and hence interrupt remapping related events would never ge=
t
>>>> reported. (Same on VT-d, FTAOD.)
>>>
>>> I've spend a non-trivial amount of time looking into this before
>>> reading this note. AFAICT you could set iommu=3Doff and still get x2API=
C
>>> enabled and relying on interrupt remapping.
>>
>> Right, contrary to ...
>>
>>>> For iov_supports_xt() the question is whether, like VT-d's
>>>> intel_iommu_supports_eim(), it shouldn't rather check iommu_intremap
>>>> alone (in which case it would need to remain a check rather than getti=
ng
>>>> converted to ASSERT()).
>>>
>>> Hm, no, I don't think so. I think iommu_enable should take precedence
>>> over iommu_intremap, and having iommu_enable =3D=3D false should force
>>> interrupt remapping to be reported as disabled. Note that disabling it
>>> in iommu_setup is too late, as the APIC initialization will have
>>> already taken place.
>>>
>>> It's my reading of the command line parameter documentation that
>>> setting iommu=3Doff should disable all usage of the IOMMU, and that
>>> includes the interrupt remapping support (ie: a user should not need
>>> to set iommu=3Doff,no-intremap)
>>
>> ... that documentation. But I think it's the documentation that
>> wants fixing, such that iommu=3Doff really only control DMA remap.
>=20
> IMO I think it's confusing to have sub-options that could be enabled
> when you set the global one to off. I would expect `iommu=3Doff` to
> disable all the iommu related options, and I think it's fair for
> people to expect that behavior.
>=20
> I'm unsure whether it's fair to change the documentation now, we
> should instead fix the code, so that people using `iommu=3Doff` get the
> expected behavior. Then we would likely need to introduce a way to
> disable just dma remapping (dmaremap, similar to intremap). That
> would make a much better and saner interface IMO.

But from an x2APIC perspective it is a problem to have "iommu=3Doff"
also turn off intremap. And indeed the option has never (fully)
worked that way: It clears iommu_enable, but not iommu_intremap
(nor any of the other sub-options, but there it's less of a problem
because they're not used in isolation), and iommu_intremap only
may have happened to either get turned off later or to not get
evaluated in at least some of the case.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:05:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:05:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220262.381451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuPq-0001ZV-Me; Tue, 02 Nov 2021 14:05:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220262.381451; Tue, 02 Nov 2021 14:05:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuPq-0001ZO-JA; Tue, 02 Nov 2021 14:05:30 +0000
Received: by outflank-mailman (input) for mailman id 220262;
 Tue, 02 Nov 2021 14:05:29 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zwst=PV=arm.com=luca.fancellu@srs-us1.protection.inumbo.net>)
 id 1mhuPp-0001ZI-PS
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:05:29 +0000
Received: from foss.arm.com (unknown [217.140.110.172])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id eed45d2a-3be5-11ec-8557-12813bfff9fa;
 Tue, 02 Nov 2021 14:05:28 +0000 (UTC)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E0033D6E;
 Tue,  2 Nov 2021 07:05:27 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.cambridge.arm.com
 [10.1.195.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DED173FA1D;
 Tue,  2 Nov 2021 07:05:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eed45d2a-3be5-11ec-8557-12813bfff9fa
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com,
	wei.chen@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] xen/efi: Fix Grub2 boot on arm64
Date: Tue,  2 Nov 2021 14:05:11 +0000
Message-Id: <20211102140511.5542-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.17.1

The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
("arm/efi: Use dom0less configuration when using EFI boot") is
introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.

The problem comes from the function get_parent_handle(...) that inside
uses the HandleProtocol on loaded_image->DeviceHandle, but the last
is NULL, making Xen stop the UEFI boot.

Before the commit above, the function was never called because the
logic was skipping the call when there were multiboot modules in the
DT because the filesystem was never used and the bootloader had
put in place all the right modules in memory and the addresses
in the DT.

To fix the problem we allow the get_parent_handle(...) function to
return a NULL handle on error and we check the usage of the function
to handle the new use case. The function in fact should not prevent
the boot even if the filesystem can't be used, because the DT and
the modules could be put in place by the bootloader before running
Xen and if xen,uefi-binary property is not used, there is no need
for the filesystem.

Another problem is found when the UEFI stub tries to check if Dom0
image or DomUs are present.
The logic doesn't work when the UEFI stub is not responsible to load
any modules, so the efi_check_dt_boot(...) return value is modified
to return the number of multiboot module found and not only the number
of module loaded by the stub.

Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI boot")
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
Justification for integration in 4.16:
Upside: allow booting xen from grub on arm64 when the stub doesn't load
        any module.
Downside: It's affecting the EFI boot path.
Risk: It's not affecting x86 arch that works the same way as before.
      If something is wrong it creates a problem on early boot and not at
      runtime, so risk is low.

Tested in this configurations:
 - Bootloader loads modules and specify them as multiboot modules in DT:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - DT specifies multiboot modules in DT using xen,uefi-binary property:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
   other multiboot modules are listed for DomUs using xen,uefi-binary
 - No multiboot modules in DT and no kernel entry in cfg file:
   * proper error thrown

---
 xen/arch/arm/efi/efi-boot.h | 28 ++++++++++++++++++----------
 xen/common/efi/boot.c       | 15 ++++++++++++++-
 2 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 8b88dd26a5..e714b2b44c 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -51,9 +51,11 @@ static int handle_module_node(EFI_FILE_HANDLE dir_handle,
                               int module_node_offset,
                               int reg_addr_cells,
                               int reg_size_cells,
-                              bool is_domu_module);
+                              bool is_domu_module,
+                              unsigned int *modules_found);
 static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
-                                       int domain_node);
+                                       int domain_node,
+                                       unsigned int *modules_found);
 static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
 
 #define DEVICE_TREE_GUID \
@@ -707,7 +709,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
                                      int module_node_offset,
                                      int reg_addr_cells,
                                      int reg_size_cells,
-                                     bool is_domu_module)
+                                     bool is_domu_module,
+                                     unsigned int *modules_found)
 {
     const void *uefi_name_prop;
     char mod_string[24]; /* Placeholder for module@ + a 64-bit number + \0 */
@@ -725,6 +728,9 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
         /* Module is not a multiboot,module */
         return 0;
 
+    /* Count the multiboot module as found */
+    (*modules_found)++;
+
     /* Read xen,uefi-binary property to get the file name. */
     uefi_name_prop = fdt_getprop(fdt, module_node_offset, "xen,uefi-binary",
                                  &uefi_name_len);
@@ -804,7 +810,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
  * Returns 0 on success, negative number on error.
  */
 static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
-                                              int domain_node)
+                                              int domain_node,
+                                              unsigned int *modules_found)
 {
     int module_node, addr_cells, size_cells, len;
     const struct fdt_property *prop;
@@ -834,7 +841,7 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
           module_node = fdt_next_subnode(fdt, module_node) )
     {
         int ret = handle_module_node(dir_handle, module_node, addr_cells,
-                                     size_cells, true);
+                                     size_cells, true, modules_found);
         if ( ret < 0 )
             return ret;
     }
@@ -845,12 +852,12 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
 /*
  * This function checks for xen domain nodes under the /chosen node for possible
  * dom0 and domU guests to be loaded.
- * Returns the number of modules loaded or a negative number for error.
+ * Returns the number of multiboot modules found or a negative number for error.
  */
 static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
 {
     int chosen, node, addr_len, size_len;
-    unsigned int i = 0;
+    unsigned int i = 0, modules_found = 0;
 
     /* Check for the chosen node in the current DTB */
     chosen = setup_chosen_node(fdt, &addr_len, &size_len);
@@ -868,11 +875,12 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
         {
             /* Found a node with compatible xen,domain; handle this node. */
-            if ( handle_dom0less_domain_node(dir_handle, node) < 0 )
+            if ( handle_dom0less_domain_node(dir_handle, node,
+                                             &modules_found) < 0 )
                 return ERROR_DT_MODULE_DOMU;
         }
         else if ( handle_module_node(dir_handle, node, addr_len, size_len,
-                                     false) < 0 )
+                                     false, &modules_found) < 0 )
                  return ERROR_DT_MODULE_DOM0;
     }
 
@@ -883,7 +891,7 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
         efi_bs->FreePool(modules[i].name);
     }
 
-    return modules_idx;
+    return modules_found;
 }
 
 static void __init efi_arch_cpu(void)
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 392ff3ac9b..495e7a4096 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -449,6 +449,13 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
     CHAR16 *pathend, *ptr;
     EFI_STATUS ret;
 
+    /*
+     * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCOL
+     * to have access to the filesystem.
+     */
+    if ( !loaded_image->DeviceHandle )
+        return NULL;
+
     do {
         EFI_FILE_IO_INTERFACE *fio;
 
@@ -581,6 +588,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
     EFI_STATUS ret;
     const CHAR16 *what = NULL;
 
+    if ( !dir_handle )
+        blexit(L"Error: No access to the filesystem");
     if ( !name )
         PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
     ret = dir_handle->Open(dir_handle, &FileHandle, name,
@@ -1333,6 +1342,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
             EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
                                                        &file_name);
 
+            if ( !handle )
+                blexit(L"Error retrieving image name: no filesystem access");
+
             handle->Close(handle);
             *argv = file_name;
         }
@@ -1369,7 +1381,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
     /* Get the number of boot modules specified on the DT or an error (<0) */
     dt_modules_found = efi_check_dt_boot(dir_handle);
 
-    dir_handle->Close(dir_handle);
+    if ( dir_handle )
+        dir_handle->Close(dir_handle);
 
     if ( dt_modules_found < 0 )
         /* efi_check_dt_boot throws some error */
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:10:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:10:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220271.381462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuUp-0002za-91; Tue, 02 Nov 2021 14:10:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220271.381462; Tue, 02 Nov 2021 14:10:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuUp-0002zT-63; Tue, 02 Nov 2021 14:10:39 +0000
Received: by outflank-mailman (input) for mailman id 220271;
 Tue, 02 Nov 2021 14:10:37 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8XNU=PV=epam.com=prvs=19406420d3=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mhuUn-0002zN-HX
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:10:37 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6946077c-ba7b-4c3d-9517-4837e79b78cf;
 Tue, 02 Nov 2021 14:10:36 +0000 (UTC)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A2E8naX022210;
 Tue, 2 Nov 2021 14:10:29 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2055.outbound.protection.outlook.com [104.47.13.55])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c36ua0084-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 02 Nov 2021 14:10:28 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB6785.eurprd03.prod.outlook.com (2603:10a6:20b:2d4::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Tue, 2 Nov
 2021 14:10:24 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 14:10:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6946077c-ba7b-4c3d-9517-4837e79b78cf
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dLvoRsgayFjWveWlf2Ri6u3rT6A0woHryP/B1gkmbHLA2fXqCwN69hhOdkJDEVucD3w4zV67R1zNXNND5XFVlUA9DqZskFv4beidGv7zKpFI0slwKm+BbQ6+oOYWRXp6a2mKreZ9eHyCJrtcojB4EpM+moSvU4722P8JZD9Ge7l2NpZkl7vHbd0TC65RZwertpGKHa/XKvArAdyyfuh997UCVlYG9A4GhVgwLkC5lUee4Kef3O6wjE2PiuABc3EdE0zpo9ElwYnjQvcU8B08XEXHKTZBTvFk3bazxU9vE6uBebRl3zetH93fJDAU75LqTKlEIyDuALshNBTowDFcMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AXVVfRUVIe3AEfm6BKwbiddAkI/UN6/DqRNxSZDBYUQ=;
 b=EY4OyKeV3h4jVmguLDziIICRVXvpo6Ssfq6gi7jgTPDnM28mPY9JMzsvaZSXPY0+++YPDMVQHBB0BAGl6E1YrSmbV6uOhghZqor4hUHa+bovnrIpJ5UqXQhd/RX9qnyHqMrHsQybBsLBkCr5BuezQ909zAZdI+Ykmiysk19ANnY8ghGi0AiakIYeXQ2rNFWQNC6CZ8sqgzvXYerITDSzn5KxxdmNlRh7nVFhkUy7zHEBELLCcAaKtUPossx/zSanOsQ7LfUfA1OcjkMQV489vSRimCEES3NKzyNq7YGe+rm2ZWfS/NtktOcXNBgSgKX3KxgVF8j6kitpB0iS0QcIxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AXVVfRUVIe3AEfm6BKwbiddAkI/UN6/DqRNxSZDBYUQ=;
 b=DNvbpiRqmEcE3DbhuEilnBz4JhEdngmCalCrXEmP9fMfI6vLIGS89LEtKtAVZGMc1FPqpoSOlDpwGILQ2p3vce6JDlS52YhdM9S0VhWEG4gGPXx30JJwV9Kc/BMICBE5Z/ylaXuY0Yhm+yu6JyqT2e70vBAJEIBMzyk9ITmXwZe++8gK+ZGEcT46KK8uTFcuF7UFHQfbA2EtHSBPeCUzdoAtHvP3rGt9eXd4ECuYNDDfRziIBK1zuCeKWnVh5ZgxKjsQKE0tkJcq3uJDeHqFfGRl0pFT8yAy4kDK3si/YcR7XxhJ6WaLDTLpELoa7TUVUwH/LNSyy8iJmsfFdFxLUg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Michal Orzel <michal.orzel@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUIA=
Date: Tue, 2 Nov 2021 14:10:24 +0000
Message-ID: <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
In-Reply-To: <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 4472b6b1-cd9b-4569-1f00-08d99e0a8375
x-ms-traffictypediagnostic: AM9PR03MB6785:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB6785871F6AB576A297E0739EE78B9@AM9PR03MB6785.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 gIIuQZxX8UXYrJHMBzyhJVsKnLlvdOzS8z66JfCgJBFZPmtgeEYR3ULOpxnxYu2tiIVtENY6uuUi8AeWGYVcHDa46wKUFxX3ff/U8bNNhINFGK7adMTp4reWW81/FpAIfV27MQubRDzXdOZ61FGbMMHjs0rxwkEfzk/yeBEXfPWlow2gJ03ZSvP4JQf5RBAUEcl5dJoSKP9pLpo3XyQsaroYHKHqhK+j20vGCjBIv88AH5OafN0ubzKJdyqetAgg2yiF/9GmsG7t+hUPgJSZ5BGztEpO7vuOqgw0L4XLcVbQsgTbkahjF25UjYsE5h71PqwgsR1w0nFbDShegvCDuPpewcD0Gw5+6NEXG56BJf60k15pqKwaOG2XgnsfWwhDDCdhwDn63o+bhnSE8GjEF6HExpO3/8ilbyGmR8y0roTk1TBgTZ9GXsBfPFq98hRbWcNAQdYGqDAVRFPl7lk0FNxn9j9Mx1TmG2SQ4H/hj7iHmi3OZS4E2mT89PGHMcnQ9Pj7wZ49fJ2IyFXrh5o9bsmDou+PuL7WecRA9pvQ9YotpqLuRo/skU5/gZrA5b7/nyY6HmBKUKZdSMmi72Kz/8KEhbFP2cLZaDUqA7FFpzfeocWFwgWS/AEkKRpjor0Ja2jXpY7W7L+wuH2WxvPULg34+3YIrB60AUd1siUG/+edZ9tMUK+pytuMBT3XgSQvZ6SY6esRFiEJENwl/EdYei7GLM+yMK9e/fvWDrH237M=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(316002)(66946007)(76116006)(31696002)(53546011)(6512007)(91956017)(64756008)(66446008)(6486002)(110136005)(38100700002)(86362001)(66476007)(2906002)(6506007)(66556008)(54906003)(2616005)(36756003)(122000001)(83380400001)(8936002)(508600001)(186003)(5660300002)(38070700005)(107886003)(8676002)(4326008)(31686004)(71200400001)(26005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?aC9VanhSaCs5bTYvVVMwVWxDL1d5dFdHRHlPZmZ0azJBOWYvWE1TK3RDT3Q1?=
 =?utf-8?B?VzlZS0ZmYUNpd3krNVExd2lPVUF5UEdjQ1pvbVVtd1JUWkVYQmNGZTFJQnE5?=
 =?utf-8?B?djJNZlNucm5kSDJhU0hYMVhJaU82RjBMZXh5dnNFU1RqaVdQWjkvRTg4N2xH?=
 =?utf-8?B?T3lBaUI2UjlLbXNNUVNNa2dzaEpiRC9YRjFwdDF5YVdOaW1uc3I5b0dnanpp?=
 =?utf-8?B?QjNTMzFPTkw4Q0pKN2xOdnZxR05MSzgrMUZraFQ1UEtkYjBvM3YzcEl0STla?=
 =?utf-8?B?alNnNmEyYVJvUkRNYVJKVS82ZGtvWk5mZXRvZU9CWEZKdzJibUo2bkVlbnpC?=
 =?utf-8?B?aW5wMUIzTFVUMGVSNHZJd2N5c2greGtnWksyTGdCVEl5M2piMmdjek1TSTgr?=
 =?utf-8?B?anVxdTZ5TkZVNXd3cFFjS3JhYkdsUElRQWlVSjVXQk5ONmhSdHlDTW9ETWFz?=
 =?utf-8?B?Tms1M1B0TkJOZGVLdXhsNmYvNTUwZ3FMdE9oK1BJdktsM3E5eGhId3pkaXk3?=
 =?utf-8?B?ZWRqUmUvVDYvSEJ4bm5xTExTbVJHWlE1NDRPUU5IVGhYTUtzUHUwS0JTdTFF?=
 =?utf-8?B?T2Q4VFQ4TnJUTEl4MjVZcDRYM2h2NmZCMHhKWVpEVzRsWkpDOUJTZ0E5TTJY?=
 =?utf-8?B?TVYvZVV3aVBSSHJjL1hlcThXNXF3alloYjFlZFVCeVlHLzl5ZGY4QnI1U21F?=
 =?utf-8?B?eVhkWExHc2xpZW1tZ0w0T2pkbXhaakhSd2JlNHNkU0lxTEhWd0plOU9TbVZv?=
 =?utf-8?B?ZDRKelg1Q2VrYnI4NTV1clNFV3JteWZ6Mjk5eWhlVkNJbmk0U2o5ZEZhUzh3?=
 =?utf-8?B?T09BZDNRNlZpc0xEejM4TkFXcEkvMUFFZzR5ck1wQTdqQUZXWXFHQ1V3VVI1?=
 =?utf-8?B?LzlhS3N3WWYvR0NLV2kzRlltR3JFU0FDV2Z3cmE0bnVmejFESEs2WG52S25W?=
 =?utf-8?B?b2IrQi9jMDg3d1FBbGMyNDA3L0xCODF1YVY4Zjl2em5kVEp4NmF6WXdRZkNK?=
 =?utf-8?B?VjFDTklTOWZYSlVFeVhCTk12TkpuQmt6cHBPb3A2ako2WEJSaXVEUGxDRGJN?=
 =?utf-8?B?cTR0WHlDbGdvc0ZZMGU1VFNJbC8rRStWN1A2R0FBWUJWQWJzNnNHV3pyTVZE?=
 =?utf-8?B?bG9EWkQ5UGp2dUhwd0J3STcvaHMvMUZDOFRZVDg0YWtndmxhSk9SNzVuSXNq?=
 =?utf-8?B?RGdjNzRNN2ZKVktaWWhSWjZRbGVMUS9mNmFUUFJMemkyRlhObEpjYWhoemZp?=
 =?utf-8?B?MHk4MlBMcTRlb3BVa3lzWm03YktSZ1d4MnRkY0xCVExqV25HVWNrUEdMRnRv?=
 =?utf-8?B?UjBud2pXQ0MvYU5acU1PdE1UMHNJV1BpVzZUN1dacytCRDhUUnhwNi84ZVlz?=
 =?utf-8?B?aEtpR2FCV0ZXamE0ZU1uaUhVcFVGdnl6SllkWXRsWEZ6MjJRejFhWFJRQk1Q?=
 =?utf-8?B?d3g1R2c1M0UxWExNWXZ4WStKUUhrUFRqZVp0N29SNzJ3WnpBVURRYnhYWVpx?=
 =?utf-8?B?TXRuczcyM3A0MXVyMVZ6WWxVVDBkQS9ZeXRtSDhnUFpJRGRNb3BOeWZmd1A0?=
 =?utf-8?B?d3JTSmdkSStGNWcrdTZGUy9mS0EvaFZVdFV4bnZySmloRWZNckh3TFloU0lt?=
 =?utf-8?B?WWRVdU1kSFhxaDBPNTdjQjdWTm51VTJkUkhrMUZ6K1MwTmVGbEo1UjVtWlBn?=
 =?utf-8?B?NmVCY25KbTBRQ0lvUXB4VjVlczFiRmlkdW5ZZk5xQ0pFWExLejdadUV5UlBL?=
 =?utf-8?B?SHhzRjhKODA1MWk0SGx5a3BBcUNLbkdzV20xUDBFY2c5QjVFaWk5ZXRtRmpF?=
 =?utf-8?B?blJBS2JQOGpsOGNMdFh2UDFRdDJEU09HOTBYNnYrR1dRdWdvQ3lHYmVHWklN?=
 =?utf-8?B?aVFySFQwcldMdDJxem9MNlhzczVxWmVmVGlkeTBuVnBaekE4dkFpZE9TOEp4?=
 =?utf-8?B?UzJlanZYN204SVlaelRHb0ZrdDZMV1oraTR0WFBJU3ZhbUdoMVMrM3ptYkIw?=
 =?utf-8?B?V1c1d3ZkckdMZ1pNa0hVV2FOT2V0elFEK0E5VzZySzlXaEZ2aFNZdDE0aDZl?=
 =?utf-8?B?MkJFdU5MMmtBNTF5VzM2d04wTXljM1FZcmdRZS9xcHE1eWpJbkFWYTkxYWhT?=
 =?utf-8?B?T1NBZ2pHWDlQMkVqSXpvblNMQTRheTU4U25jU0VXbm9wcWwvMC9CNnJVTXND?=
 =?utf-8?B?dXVnS3BsVmE5VHdhUFVHWHArMXMwd2VhVWFKYnd5WGdhdW1DeVhQTVk0eU1O?=
 =?utf-8?B?YUcyc3RKYkNXTXdHOG9TOXVvTDZBeFNaeTM3NlRJcDVPRjAxTlVnS0VVWjFW?=
 =?utf-8?B?bjlJdVZVRFRyaXlnNFI0ejZGQWI5eUJkeFB5a2NhbFRzVVlRdmt3Zz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <FA20B9AEE09BEC45BDA0242B4EF49C10@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4472b6b1-cd9b-4569-1f00-08d99e0a8375
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 14:10:24.0634
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: iMMhcGP0Z1rTmQCCWx3NPJNoFPwyah1WkUkkN0R+Cpxj7rJXNLur4kfrY5jvz3HM33fv1DGOCNtPO2q7IXhLv4A0HYMHQz9ne4kWqRuje0p8xXmIxQCAd9eq3xHXjgGe
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6785
X-Proofpoint-ORIG-GUID: Fv_5WTlgpIl2HbdXH-65XzNKK3nfwFxM
X-Proofpoint-GUID: Fv_5WTlgpIl2HbdXH-65XzNKK3nfwFxM
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-02_08,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxlogscore=772
 malwarescore=0 adultscore=0 priorityscore=1501 bulkscore=0 phishscore=0
 mlxscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 spamscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111020084

DQoNCk9uIDAyLjExLjIxIDE1OjU0LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDIuMTEuMjAy
MSAxMjo1MCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+IE9uIFR1ZSwgTm92IDAyLCAyMDIx
IGF0IDEyOjE5OjEzUE0gKzAxMDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDI2LjEwLjIw
MjEgMTI6NTIsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+IE9uIFRodSwgU2VwIDMwLCAy
MDIxIGF0IDEwOjUyOjIwQU0gKzAzMDAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0K
Pj4+Pj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4+Pj4gKysrIGIveGVuL2Ry
aXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4+Pj4gQEAgLTQ1MSw2ICs0NTEsMzIgQEAgc3RhdGljIHZv
aWQgY21kX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVn
LA0KPj4+Pj4gICAgICAgICAgIHBjaV9jb25mX3dyaXRlMTYocGRldi0+c2JkZiwgcmVnLCBjbWQp
Ow0KPj4+Pj4gICB9DQo+Pj4+PiAgIA0KPj4+Pj4gK3N0YXRpYyB2b2lkIGd1ZXN0X2NtZF93cml0
ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJlZywNCj4+Pj4+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY21kLCB2b2lkICpkYXRhKQ0KPj4+
Pj4gK3sNCj4+Pj4+ICsgICAgLyogVE9ETzogQWRkIHByb3BlciBlbXVsYXRpb24gZm9yIGFsbCBi
aXRzIG9mIHRoZSBjb21tYW5kIHJlZ2lzdGVyLiAqLw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICBpZiAo
IChjbWQgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUpID09IDAgKQ0KPj4+Pj4gKyAgICB7DQo+
Pj4+PiArICAgICAgICAvKg0KPj4+Pj4gKyAgICAgICAgICogR3Vlc3Qgd2FudHMgdG8gZW5hYmxl
IElOVHguIEl0IGNhbid0IGJlIGVuYWJsZWQgaWY6DQo+Pj4+PiArICAgICAgICAgKiAgLSBob3N0
IGhhcyBJTlR4IGRpc2FibGVkDQo+Pj4+PiArICAgICAgICAgKiAgLSBNU0kvTVNJLVggZW5hYmxl
ZA0KPj4+Pj4gKyAgICAgICAgICovDQo+Pj4+PiArICAgICAgICBpZiAoIHBkZXYtPnZwY2ktPm1z
aS0+ZW5hYmxlZCApDQo+Pj4+PiArICAgICAgICAgICAgY21kIHw9IFBDSV9DT01NQU5EX0lOVFhf
RElTQUJMRTsNCj4+Pj4+ICsgICAgICAgIGVsc2UNCj4+Pj4+ICsgICAgICAgIHsNCj4+Pj4+ICsg
ICAgICAgICAgICB1aW50MTZfdCBjdXJyZW50X2NtZCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5z
YmRmLCByZWcpOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAgICAgICAgIGlmICggY3VycmVudF9jbWQg
JiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUgKQ0KPj4+Pj4gKyAgICAgICAgICAgICAgICBjbWQg
fD0gUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFOw0KPj4+Pj4gKyAgICAgICAgfQ0KPj4+PiBUaGlz
IGxhc3QgcGFydCBzaG91bGQgYmUgQXJtIHNwZWNpZmljLiBPbiBvdGhlciBhcmNoaXRlY3R1cmVz
IHdlDQo+Pj4+IGxpa2VseSB3YW50IHRoZSBndWVzdCB0byBtb2RpZnkgSU5UeCBkaXNhYmxlIGlu
IG9yZGVyIHRvIHNlbGVjdCB0aGUNCj4+Pj4gaW50ZXJydXB0IGRlbGl2ZXJ5IG1vZGUgZm9yIHRo
ZSBkZXZpY2UuDQo+Pj4gV2UgY2Fubm90IGFsbG93IGEgZ3Vlc3QgdG8gY2xlYXIgdGhlIGJpdCB3
aGVuIGl0IGhhcyBNU0kgLyBNU0ktWA0KPj4+IGVuYWJsZWQgLSBvbmx5IG9uZSBvZiB0aGUgdGhy
ZWUgaXMgc3VwcG9zZWQgdG8gYmUgYWN0aXZlIGF0IGEgdGltZS4NCj4+PiAoSU9XIHNpbWlsYXJs
eSB3ZSBjYW5ub3QgYWxsb3cgYSBndWVzdCB0byBlbmFibGUgTVNJIC8gTVNJLVggd2hlbg0KPj4+
IHRoZSBiaXQgaXMgY2xlYXIuKQ0KPj4gU3VyZSwgYnV0IHRoaXMgY29kZSBpcyBtYWtpbmcgdGhl
IGJpdCBzdGlja3ksIGJ5IG5vdCBhbGxvd2luZw0KPj4gSU5UWF9ESVNBQkxFIHRvIGJlIGNsZWFy
ZWQgb25jZSBzZXQuIFdlIGRvIG5vdCB3YW50IHRoYXQgYmVoYXZpb3Igb24NCj4+IHg4NiwgYXMg
YSBndWVzdCBjYW4gZGVjaWRlIHRvIHVzZSBNU0kgb3IgSU5UeC4gVGhlIGVsc2UgYnJhbmNoIG5l
ZWRzDQo+PiB0byBiZSBBcm0gb25seS4NCj4gSXNuJ3QgdGhlICJlbHNlIiBwYXJ0IHF1ZXN0aW9u
YWJsZSBldmVuIG9uIEFybT8NCkl0IGlzLiBPbmNlIGZpeGVkIEkgY2FuJ3Qgc2VlIGFueXRoaW5n
IEFybSBzcGVjaWZpYyBoZXJlDQo+DQo+IEphbg0KPg0K


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:14:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220279.381472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuYf-0003c0-Qd; Tue, 02 Nov 2021 14:14:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220279.381472; Tue, 02 Nov 2021 14:14:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuYf-0003bt-Nf; Tue, 02 Nov 2021 14:14:37 +0000
Received: by outflank-mailman (input) for mailman id 220279;
 Tue, 02 Nov 2021 14:14:36 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7JXc=PV=citrix.com=Andrew.Cooper3@srs-us1.protection.inumbo.net>)
 id 1mhuYe-0003bn-HJ
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:14:36 +0000
Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 34912ded-3be7-11ec-8557-12813bfff9fa;
 Tue, 02 Nov 2021 14:14:35 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34912ded-3be7-11ec-8557-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635862475;
  h=to:cc:references:from:subject:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=eG1vvS2s27YHRA4tsM4COgiXTy+UO9BKXfr3XY6lHb0=;
  b=VqkxZIPZQf2MKDx4Dw8LZLupFXPEIIkHOEIeFuqU5bSuLhms0jTXl1w4
   B5nbJaiNgFD5UsBR1dkIv22clJCTQs459ceP0Xr8Ch65oply7G24jDUOr
   DKMkmjtVtyMuRwVJS8ain5k7umQ3mCOClz7HUpb0AcwoPyCvdGILzTOou
   0=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: VJfism31U9PhutnhIzrbtIh0lYvM63jXzkK3cf/P+ekVY8i9XYUEnyU6bE9uC4YAjyRcxr+zhc
 U9GmwVr/+IOxpWKIVZZw0CVc2jyTsw/HTAQSoKT3apMEHYyfHT212y3WAgnRCEK8hUVPQG+k+i
 7Mx9m5WmpUC1NcFBmVxTGonDlpENF9U3LzDPaUWi8bLcgPL9q3lLWsr7NeFjpIxFF9Be7r3996
 9kw0Y903Sp/Vrjx6ja1kDhxUyq69687eXAVpyXFoJPbhElH5cmtklcTWfFyEf/cTNn63mS5d/O
 Py1+TVHFPyTB0GPKkDB8+Drr
X-SBRS: 5.1
X-MesageID: 56908545
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:j9YL760A74DFoDTigPbD5U12kn2cJEfYwER7XKvMYLTBsI5bpzFUn
 WUWCD+DbP7eNjP9ft8lbNyyo0IEvZKEnNdrHgZtpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6w7Rh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhg/Zb4
 4RAua2MFjgAfa3FvOAxaTYJKnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Er8IvNsT0eqgYvWlt12rxBvc6W5HTBa7N4Le02R9t2JEWTauCO
 qL1bxJoRzDCWT0VKm1JVpYdt/70mEXbbhZX/Qf9Sa0fvDGIkV0ZPKLWGPj/d8GORM5Vtl2Fv
 W+A9GP8ajkbK9632TeD6mirhOLEgWX8Qo16PK218LtmjUOewkQXCQYKTh2rrP+hkEm8VtlDb
 UsO9UIGr7U29UGtZsnwWVu/unHslgEYc8pdFas98g7l4rHP/w+TC2wATzhAQN8rrsk7QXotz
 FDhoj/yLWUx6vvPEyvbr+rK62PpUcQIEYMcTTMiZyBU7tXSnN4Mp1HPR/JnPJSa3+SgTFkc3
 Au2hCQ5grwSi+sC2KO64U3LjlqQm3TZcuImzl6JBzz4t2uVcKbgPtX1sgaDsZ6sOa7AFgHZ1
 EXojfRy+wzn4XulsCWWCNsAE7iyjxpuGG2N2AU/d3XNGtnExpJCQWyyyG0uTKuKGpxdEdMMX
 KM1kVkIjHO0FCDyBZKbm6rrV6wXIVHITLwJrMz8YNtUeYRWfwSa5ixobkP49zmzyxVzwPtnZ
 s3BKJrE4ZMm5UJPlmPeqwA1iudD+8zD7TmLGcCTI+qPiOL2iIGppUctbwLVM7FRAFKsqwTJ6
 ddPX/ZmOD0EONASlhL/qNZJRXhTdCBTLcmv96R/K77SSiI7STpJI6KAntscl3lNwv09ehHgp
 SrmBCe1CTPX2BX6FOl9Qik4Ne60Ason9RrW/0UEZD6V5pTqWq72hI83fJorZ7g3sutlyP9/V
 f4efMucRP9IT1z6F/41N/ERdaRuK0amgxygJS2gbGRtdpJsXVWRqNTlYhHu5G8FCS/u7Zkyp
 Lip1wX6R5sfRls9UJaKOaz3l17h72IAnO9SXlfTJoUBckvb74U3eTf6ieU6Ip9QJEyblCeaz
 QufHTwRufLJ/90u6NDMiK3d99WpHuJyE1B0BW7e6brqZyDW8nD6md1LUfqSfCCbX2Txof3wa
 eJQxvD6EfsGgFcV7NYsT+c1lfozvoK9qaVbwwJoGGTwQ26qUr4wcGOb2cRvt7FWwuMLswWBR
 U/SqMJRPq+EOZ25HQdJdhYldOmKydodhiLWsaYuOEz/6SJ6oOiHXEFVM0XegSBRNuIoYoYsw
 ONns88K8Q2vzBEtN4/e3CxT8m2NKF0GUrkm6c5GUNO61FJzxwEQe4HYBw/3/IqLOodFPUQdK
 zOJgLbP2uZHzU3YfntvTXXA0IKxX3jVVMymGLPaG2m0pw==
IronPort-HdrOrdr: A9a23:EPT4+6i8Dh6cxGq7OGnOREtpOHBQX0p13DAbv31ZSRFFG/FwyP
 rAoB1L73PJYWgqNU3I+ergBEGBKUmskKKdkrNhQotKOzOWxFdATbsSkLcKpgePJ8SQzJ8k6U
 4NSdkYNDS0NykBsS+Y2njJLz9D+qj/zEnAv463pB0MPGIaGJ2IrT0JbjpzencGNTWubqBJcq
 Z0iPA3xQZINU5nFfhSURI+Lpb+TpDw5d/bSC9DIyRixBiFjDuu5rK/Ox+E3i0GWzcK5bs562
 DKnyHw+63m6piAu1Dh/l6Wy64TtMrqy9NFCsDJos8JKg/0ggLtQIh6QbWNsB08venqwlc3l9
 vnpQsmIq1Imj/sV1DwhSGo9xjr0T4o5XOn4ViEgUH7qci8fz4+A9opv/MQTjLpr24b+P1s2q
 NC2GyU87BNCwnboSj779/UEzl3i0uduxMZ4K4upk0adbFbRK5arIQZ8k8QOowHBjjG5IcuF/
 QrJN3A5cxRbUiRYxnizyhSKeSXLzYO9yq9Mw0/UpT/6UkToJk59TpX+CUnpAZCyHpnIKM0oN
 gtMcxT5fhzp4EtHORA7dw6ML6K41r2MGTx2VKpUCba/Z48SgbwQr7Mkf4IDbKRCdY1JKVbou
 W3bLofjx9qR37T
X-IronPort-AV: E=Sophos;i="5.87,203,1631592000"; 
   d="scan'208";a="56908545"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HdE6BXAkXGwgQC7OOcydDtSkNVQ9pFVPqQvCAB7QpUwcDcuEiC5s9l3rYhRzhcfR9mYE+FZH/Lu8qjrWBP7rf04PTXmUdm4UazZgH80PkHAiUfqOeLyShCl11az8bnPfVaMILegTWsuf2ruv69n5eYj7b5A1snO+QLQYw6MbsO8y/1q21yJw6MAEFE0TPjR+yofu4zyTLUHFePZTZ8Dhu+yi0/cr9KwhVmFIGR6cqQvIR8/tBlFGsm+ynO2fOpxqoyvd8LFS2giwlbDS50/x3kH6qlUhrmnBeaeeo+/9grlz941zXm/C7AisBw2kt9YkV2eIER2nDb0Mu6M9jXHVfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mzW4YmbavuNUn0ms41QbkjX1symPunZ/l8v3LvsAYZE=;
 b=ExAZZ+GCta3p7ikKaPW6BEgNgLwgymM2x1zOiqoBkfj3Mf5+GBzOX7e2WUvW4VRvIkjSapQ//qXtI7hO2YKvRngxoUk1Qa5c/wiNC9TJ64YGQkObodoRVwHbEIF9eWOoC2cUqiaetNmB6lfC/VgLGqHbfQv0wdFNXg86Js8h5n9Dk6qILzZm0OXIIjv9VQw/QPM40EQGY2aOaw0avrwQ26FNYS9Rws8Dg7F3jf8XqKzcDRXjhTLN/eFcBvDM8yg0OmDBRIG8KwDdfPq1EyDQLakLtXFUQEfRLLQNuA6+92TA1BNTg3NFX8IkfnGRChLMnjJEtF0GLjRrNPKQh07wsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mzW4YmbavuNUn0ms41QbkjX1symPunZ/l8v3LvsAYZE=;
 b=FjDB64rvuBiKAt5wy/f3/0kLG5VPKKABC8vGLrKSzYPhDQhuJ1Wcg5u2tTuTeA4qtuZHmeFzyYL2osc2XrbgdAcnmSMg2xNzxiUxdqRubLBao1QuMn4X4a+yvV9v5AUmxjOO5aetM9KIKmfan360e4KE5YAwtzflUyBUh3jpCTg=
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, George Dunlap
	<George.Dunlap@eu.citrix.com>, Ian Jackson <iwj@xenproject.org>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Christian Lindig
	<christian.lindig@citrix.com>, =?UTF-8?B?RWR3aW4gVMO2csO2aw==?=
	<edvin.torok@citrix.com>
References: <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
 <20211029173813.23002-1-andrew.cooper3@citrix.com>
 <YX0qmTXBD3jSXjBI@Air-de-Roger>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.16 2/2] xen: Report grant table v1/v2 capabilities
 to the toolstack
Message-ID: <3eff50a7-bf2b-3e2c-e97d-228e353c00b0@citrix.com>
Date: Tue, 2 Nov 2021 14:14:22 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <YX0qmTXBD3jSXjBI@Air-de-Roger>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LO2P265CA0064.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:60::28) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 285bdf86-025e-4a2f-5315-08d99e0b1573
X-MS-TrafficTypeDiagnostic: BYAPR03MB3864:
X-Microsoft-Antispam-PRVS: <BYAPR03MB38642D541D46BE855E553BCBBA8B9@BYAPR03MB3864.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Zf2BCpCjsp6TJ4tovk8wUVYYxwErlTGa1r+cv4w7BOEmKAZZmNmaSOmN8GMeixeL+ajkNV/Q1OBszE7lIr0tU+JD6kkPbT3txZ6OP/NyxMOjSyZOf9E4YwqLqcBy+QWxaqf7NoGfnD/btyTvIRAXchL6MMBu4LIrY2XQ7m3lffgyIPzum5Q0w7PISwzgLSt0GjGwvvN/9tImMilkxtQBKSGksxPLGiKVTjRlL3xMhUPV+FyXKJsDJKx4cx02DYVVNljC/BThYN7KkfqmOdJpNQVT/2BnlDGx9dtI2gn0ZXunoT1K25kSGHWkq4lp80mxhVpBTFHdir5J9PVye8AcVoLJxYMIRofr9L060m6U7zdvHaXDnswDV7VKFQ8tInwXI+glk4dnXKy6oq22Wdwsev2tVkmm0QyA+oLMTpg9mYaBffEeNiFeTpyFk6WcmCjhjUEjPfFGsfU4AnUoy2bBC5sQPSANGVRq0+2wqgGK4KfUerGRYuimIPjdYEq4pn0XhSD/Vv56QxoinoC19q2lVNtllLYfA0zYVRCD7ymQW55hnAO0/Q64HLiZ9j6KUZPdzA3BI1AM8bAPaorMXlxH+2fc7Ul8pszxaAa7I+kaLe3g21w2N91nH7MrYK/G/xfqKV/LwQgD5uxVk9JP494evftoxjcS0yZoKs1Ejbjl73Yl2nNZGN4UwEdQU5QSwiwoT3U/zbxMP7pWQUyE5NMN3MRtAVlrunf4kKQeJlUWKHiyk3rY3eajyYDJc58e7sKq
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(53546011)(2616005)(5660300002)(86362001)(8936002)(66946007)(26005)(956004)(6862004)(6666004)(107886003)(8676002)(186003)(2906002)(82960400001)(66476007)(4326008)(37006003)(16576012)(316002)(6636002)(31696002)(38100700002)(83380400001)(508600001)(36756003)(66556008)(6486002)(31686004)(54906003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Zlh5RTF0YUdzTjR1dnVlOU5IMkJaZXlqTW5TM2NmWGxEWmVWbDlheFg1Q2g3?=
 =?utf-8?B?VzNtemxPU1gybWVjSjZYOEY5MlI1SENMOTVCSUg3QU5QbUtxSUtnVVdZa1Vn?=
 =?utf-8?B?a1JRVUpiTG1JKzdJS1ZWTVVWajFkdUVjd2ZjbUhNQ2srWlZaSU13Z2RLOHRL?=
 =?utf-8?B?U1FWb1ZGRkxZQlFLb1dad0N3RHVIS0k4a3Z6dEIzd09iNVlrNUdBVy9Sa3Zm?=
 =?utf-8?B?Z09kTUEvSURFU3lLTEx2TDNjYUVQekJVMkFjQkpGTHBPSWpsQXZZMFRCSU1q?=
 =?utf-8?B?VkQwd0Uzajl2U210SVNGdVp2Uk9CTytBV1VRanRhVlBsV1FjVWNlL25VQTNt?=
 =?utf-8?B?VjFWRTZaSFJ2Z0VzU2VyQ2dNNXI2MkdoeHZRVzNETnZCZEJmYmRsK2JLRDd2?=
 =?utf-8?B?eWJxRXhFdGw1YjRldzdoRjBPemR3cTh3bjZFSXNjTEZ2UnZTc2ZEaHQ2bDBw?=
 =?utf-8?B?TkErVlVHSHU4azVSVy8wSVZHODgrSVd5MTV5aFY3ZDVET0NLRnVYanJTaGtZ?=
 =?utf-8?B?OHRMYkhXVEttUHhlZzlHdC9jS2haM09WZ0w2c3NsTzNxV0NzWks5WHZkZ21N?=
 =?utf-8?B?aitPb3NDS2RwMVpicTNDcmpqN2xrRkFOamp0NHA5R1ZkRDFiSDRzUjBsMXlE?=
 =?utf-8?B?SjBhZy9RQ3pnV1ZYVEVEMVUyNTAyYmZDY2lobTJaMG9hMmhQaEdRVkgzRUM0?=
 =?utf-8?B?OVJTbm9GK2dORmsram5hMW0yeGpBWWFqRitXK0JMNnlhL3RVTFhpZG9LdEpn?=
 =?utf-8?B?cEw2dmhLU21adXVGNXp5aXc0QUNMMW5TdkRsRml3c1Z2akNueTMrZWRKNzlC?=
 =?utf-8?B?MjVNc1BHdk8rVlN4SXFqTUxZWHh3ZDRCT3pYUUQ1RU9wTkFQRnQyMUNhRXdT?=
 =?utf-8?B?VXY5eHVvUkhwa2oyaDlYN3pmaW5LOWdmTnRkVmxLeXhQTU96WXpKL1dmTVlT?=
 =?utf-8?B?Z2dPeUM1YWVRaGVGT2tObXFGczYvMGlaek5MK09OZEJRZVY3WjVic3RzOEhV?=
 =?utf-8?B?NUFweitoS1VjNmdzQkk1Q29UbzY4Uk9kNUs5aDVVTTVYUFlOazlVOS9RbU8v?=
 =?utf-8?B?QjBVb1dOTU5ORFVWTjhzcnVOZEFqNVloYS9uM0IvVnJLbnFETDdvUU9abUJ2?=
 =?utf-8?B?VWR4a0ZtZTNNTW5yUFpONi9UaDNxdTJqSkh2OFpuVVphaU1OYkN5a1dyZ0Fx?=
 =?utf-8?B?Q1RhcWVWSGdSZk5NNXlUZGp4eEtmcjFpWGwwYkVSUFR6ZXV4d2xZcGUwakVT?=
 =?utf-8?B?eE1acjlJU0V3TElxNmludFh3NllZb05peWp6ZlE3bjR3enpMTlByRVF6Rkd1?=
 =?utf-8?B?bThRdDVuYklTVUc1ZlJwWnVGaFNXbEdLSitVenE5Ny81MWczQWMzMnVwMisv?=
 =?utf-8?B?djRENzQzaEd0bnlicHpDK241Z3ZIK2xtTElEdEdRcVFra1pyNlpYQkVEVFRk?=
 =?utf-8?B?a1lBbmJxMXprdVFSZ0Q3Z2hPSFVKbWJVK0U2bTBTRjFKRXpBb0d0aGxvMWMv?=
 =?utf-8?B?WnpMQUloaXArM1NvZ0QrVFQ3dzlkdTVBN25TTTUvY1RJZ3pSTXlOcjFIbmEy?=
 =?utf-8?B?anBVWnJIbStVa0FlRWFrcndLSDdCRzR0K2FIcUJwTDFYcVp0WHdhcFR4VnFp?=
 =?utf-8?B?b1hNOTJ1SC9kWnlReFkyRXNRL0EzRks0ekM1bmR3UFZ5eWFTNTFLbzErRmZk?=
 =?utf-8?B?L2tVVXJtY2dQRlJ6dk9nNGd6TC9mV0o4empzQ1VnTjR4bjRsb2tqVE5abEtm?=
 =?utf-8?B?VEdKbExXUFFKeDloOWpmbVJZaWpQRW9iLzRuZnVyWmxQTUlITEkzZTJmNW5B?=
 =?utf-8?B?WE1GTVEwOXY5cFlyVkVZODZRWlNrTUxya2dYdTQ2N2RpcmVNR2djcEtVenpE?=
 =?utf-8?B?T0plZnh4NEhvQ0xvRGlYcTVzTlhrZmQwREo0UlpoamlVN1FQVE5YY0p3Unpo?=
 =?utf-8?B?RFRZSzRZTXl6SnlWbk9taEFZUGVReGZBK2s1L3NYVkJOVTdrZVl1eFdKQjdC?=
 =?utf-8?B?c08ybHNYMTNEWnJHaE44RVlFRUkyOWRQc3AzTXptSXJqUEp6dmJuVE5vTVky?=
 =?utf-8?B?bHpDLyt2S2EvMVBCUzNBcEVnNFZHWFlZYkhmV2VVd1czcVQraUxEMjZGcVVQ?=
 =?utf-8?B?aENGbjIzWDM5MDlzMlVIRUtOMnd1cFdTV1RqcDlSYVc2ejMzY1J4NFJKcHNn?=
 =?utf-8?B?NnlNUlVwaHpDQ0I2WXAwYlJQUFhKU1JTdzRBUTZFVEE0dWZreHEza3VLWXZE?=
 =?utf-8?B?dGUzMENQL2VRS2RBcy9tQjdpR1RBPT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 285bdf86-025e-4a2f-5315-08d99e0b1573
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 14:14:29.4372
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: e603PuboMYIAJg3p0pCzUHsIm4tidTktZMKA9zwDRS17hzwFBaxfFWhdw/s4S/v/JnIuk0GR2uQClszMWNS2IR7cX3pFTQiiMrZIt7kcCbs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB3864
X-OriginatorOrg: citrix.com

On 30/10/2021 12:20, Roger Pau Monn=C3=A9 wrote:
> On Fri, Oct 29, 2021 at 06:38:13PM +0100, Andrew Cooper wrote:
>> In order to let the toolstack be able to set the gnttab version on a
>> per-domain basis, it needs to know which ABIs Xen supports.  Introduce
>> XEN_SYSCTL_PHYSCAP_gnttab_v{1,2} for the purpose, and plumb in down into
>> userspace.
> I did consider exposing the versions supported together with
> max_{grant,maptrack}_frames using a new grant-table dedicated sysctl,
> but maybe it's fine to expose the version as a physcap and fetch the
> other two separately?

The naming is already rather wonky.=C2=A0 xl calls it virt_caps which is ho=
w
most humans interact with the content, while the comments call it
"platform capabilities".

> I certainly didn't look much into this, maybe it's pointless to expose
> max_{grant,maptrack}_frames. I think the toolstack will need to be
> able to fetch grant related limits on a per-domain basis like we plan
> to do with the grant version in order to assert the destination host
> supports the current limit applied to the domain.

All capabilities, settings and limits ought to be available to an admin
in dom0.=C2=A0 `xl dmesg | grep $FOO` is inadequate.

In an ideal world, yes, we would have max_*_frames available too so `xl`
can give a more coherent error message than "domaincreate returned
-EINVAL", but for now at least those are checks suitably.

On x86, the correct way for this all to have worked would be to have a
gnttab leaf in Xen's CPUID leaves, but that is firmly in ABI-v2
territory now.

~Andrew



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:17:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:17:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220286.381484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhubd-0004JK-EJ; Tue, 02 Nov 2021 14:17:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220286.381484; Tue, 02 Nov 2021 14:17:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhubd-0004JD-BL; Tue, 02 Nov 2021 14:17:41 +0000
Received: by outflank-mailman (input) for mailman id 220286;
 Tue, 02 Nov 2021 14:17:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mhubc-0004J7-Pq
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:17:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mhubb-0006p8-FJ; Tue, 02 Nov 2021 14:17:39 +0000
Received: from [54.239.6.184] (helo=[192.168.7.68])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mhubb-0004L9-8w; Tue, 02 Nov 2021 14:17:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=AmX5p9kiNwYr/igfoDJ/1uSLSnTcGjwJyV3ex+oxbbo=; b=HwiSZ6D3b43famqS+GeulNwnX4
	C6FhLBT4FXPVBBR5fRV6MfGPA5nJSfuq40s24HPaGkluWDhjeplUNHPncaEWwsmRQSZxL1bPN0/bD
	Vwc/EXa/gdXoUlZsFM2x8wkNmMuiPF+zp92mD+DT+ufSI9e9lDjPxwSoV8ZFHZ+szMDU=;
Message-ID: <418aed9e-adac-28dc-880b-c330c6ac7d34@xen.org>
Date: Tue, 2 Nov 2021 14:17:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, volodymyr_babchuk@epam.com,
 Artem_Mygaiev@epam.com, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 Michal Orzel <michal.orzel@arm.com>,
 Oleksandr Andrushchenko <andr2000@gmail.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
From: Julien Grall <julien@xen.org>
In-Reply-To: <YYEl8h+WtSZwNPn7@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Roger,

On 02/11/2021 11:50, Roger Pau Monné wrote:
> On Tue, Nov 02, 2021 at 12:19:13PM +0100, Jan Beulich wrote:
>> On 26.10.2021 12:52, Roger Pau Monné wrote:
>>> On Thu, Sep 30, 2021 at 10:52:20AM +0300, Oleksandr Andrushchenko wrote:
>>>> --- a/xen/drivers/vpci/header.c
>>>> +++ b/xen/drivers/vpci/header.c
>>>> @@ -451,6 +451,32 @@ static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
>>>>           pci_conf_write16(pdev->sbdf, reg, cmd);
>>>>   }
>>>>   
>>>> +static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
>>>> +                            uint32_t cmd, void *data)
>>>> +{
>>>> +    /* TODO: Add proper emulation for all bits of the command register. */
>>>> +
>>>> +    if ( (cmd & PCI_COMMAND_INTX_DISABLE) == 0 )
>>>> +    {
>>>> +        /*
>>>> +         * Guest wants to enable INTx. It can't be enabled if:
>>>> +         *  - host has INTx disabled
>>>> +         *  - MSI/MSI-X enabled
>>>> +         */
>>>> +        if ( pdev->vpci->msi->enabled )
>>>> +            cmd |= PCI_COMMAND_INTX_DISABLE;
>>>> +        else
>>>> +        {
>>>> +            uint16_t current_cmd = pci_conf_read16(pdev->sbdf, reg);
>>>> +
>>>> +            if ( current_cmd & PCI_COMMAND_INTX_DISABLE )
>>>> +                cmd |= PCI_COMMAND_INTX_DISABLE;
>>>> +        }
>>>
>>> This last part should be Arm specific. On other architectures we
>>> likely want the guest to modify INTx disable in order to select the
>>> interrupt delivery mode for the device.
>>
>> We cannot allow a guest to clear the bit when it has MSI / MSI-X
>> enabled - only one of the three is supposed to be active at a time.
>> (IOW similarly we cannot allow a guest to enable MSI / MSI-X when
>> the bit is clear.)
> 
> Sure, but this code is making the bit sticky, by not allowing
> INTX_DISABLE to be cleared once set. We do not want that behavior on
> x86, as a guest can decide to use MSI or INTx.

On Arm, I am aware of some hosbridges (e.g. Thunder-X) where legacy 
interrupts are not supported. Do such hostbridges exist x86?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:23:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:23:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220296.381495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuhM-0005jp-3i; Tue, 02 Nov 2021 14:23:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220296.381495; Tue, 02 Nov 2021 14:23:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuhM-0005ji-0L; Tue, 02 Nov 2021 14:23:36 +0000
Received: by outflank-mailman (input) for mailman id 220296;
 Tue, 02 Nov 2021 14:23:35 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhuhL-0005jc-8U
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:23:35 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id aa87ae4c-3120-4937-875d-6fab1aaf7989;
 Tue, 02 Nov 2021 14:23:34 +0000 (UTC)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-30-5fAZmz_OMxuI7VGiwn9bUQ-1; Tue, 02 Nov 2021 15:23:32 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5742.eurprd04.prod.outlook.com (2603:10a6:803:e5::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 14:23:30 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 14:23:30 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR0301CA0014.eurprd03.prod.outlook.com (2603:10a6:20b:468::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Tue, 2 Nov 2021 14:23:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa87ae4c-3120-4937-875d-6fab1aaf7989
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635863013;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OJng58TG3BKvwIEUR8OViWD7UL6AEv0nwt8jLHHik0E=;
	b=GB+ru6gCnAPgm+IZx8av7kwEZH1PqsqzyGxTJ6dRahT46mPZpGKzF9YHly77fiNDHrltJV
	rre0J9Qsa1DbKJSZodAIfcpmyR++sBukvTjkp/i08WTOEJ8jZR3OowtEyf8PHPnaNqUg87
	CG7uOn6vaIAw7aPIvZ5NViYTsf5hvcU=
X-MC-Unique: 5fAZmz_OMxuI7VGiwn9bUQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ASgwDXxWSohfZRoscCcnY9AMrTuhVQex0FkTOckNao8J2ztDu12l1Dso1IA2D2kQtyU9d14mirDMQEuA0nnu0RIJiimlD+SAn0XaouvOH0re/XQU/u4/EAxNbkcYihbhA196jdU1dImo2E9sldwBnn410cR2BahVqR26pjzji9VmX0D2jV0r1347/RNSL6wmwcZ5qZZMibxOzbGDDuntybJSb8HezQy13kLyJ9L3l6BcFi/I2RCj+bNTiXEN3NgE122n2vkltG+FAnBOpDGsa3Mo97wEo08pqKJfscK1SqZEVcom2/MF0I9UdEzwkTCcOkI9qf2yMTL8Luxcduu+Eg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OJng58TG3BKvwIEUR8OViWD7UL6AEv0nwt8jLHHik0E=;
 b=IlZqjRotabS7ilyzqv3WWfh+kh8gqLRxOjxgNlxPJ9r9643V7kyKXeVo3CTuqTw8D4Q/4ccA8jzPMB69YF4iw38WvU/InX/7V72pQmnXp/ts/MED9sPaBKAmC0GhtNeKqX2utw9SOZsQVE1fpX9Xbi9NAU96r2ebom5+0s7Lvspw8O3CHYXOcZq22gIJwsoTiejSAP/Z3TaGVoBExG+E55pI1lQ77CXxLilV1N/7Ov3c4Rnwc4Rb04IsdwRpxQFbcD68CTE9AYTitFKoxnJ8wdEioV1/E8U2sWdKoZC7y2bZcRsKCcw5Dczw/c1kBq91ce5bx9pDJraDvYMoFy5ruw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7f63b553-f825-a501-cf91-1f544d7cd0e8@suse.com>
Date: Tue, 2 Nov 2021 15:23:28 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 1/7] xen: implement byteswap.h
Content-Language: en-US
To: Lin Liu <lin.liu@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1634897942.git.lin.liu@citrix.com>
 <89afdafa9020ab77b9d662bd5c8f7b2d31e53c5c.1634897942.git.lin.liu@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <89afdafa9020ab77b9d662bd5c8f7b2d31e53c5c.1634897942.git.lin.liu@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR0301CA0014.eurprd03.prod.outlook.com
 (2603:10a6:20b:468::21) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 497e743d-9a4f-4272-d2b9-08d99e0c581a
X-MS-TrafficTypeDiagnostic: VI1PR04MB5742:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5742AF89BA9A2FE5BD90FFCDB38B9@VI1PR04MB5742.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4714;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	aSv9ybFnRl9NXRPhN/35Y7iUq9bsTvXorZDdwy3/1iWaEg29Mj0afOjJR26phqD1nn58NXCkAv3cIDQfzt4uKmlUWM672mUq4cFiZjVTkMpX2ShEUK5W5ogC53cpiLLndXdyUU+RGMUl7SrP9+zTBaiwI+aDMF3UiWhzrL48usu4mX6KmAubts0FBkC9NPTY/gw54CSv8PHtvW0YlDj9o+vcyfD/NBre5Da0HbvYtVpYeGrE1lKR4RyF7q0X915MKKUb7IXtaikMLBNS8UPu1gTspFDzBrRHCkU1O0pMvThl/a7C9GEp4EdWK0xHvNhLb6yFonxcyyjFdJr8v7NP1aa34H73U+aVxczCXlxMbusGE8HbNIyNn4AyW1aRLZlC+xp4YUu70QD+Wgbn8wLvysHbZ5g36iQAgsk5eoJ/LsYspQfeQaLz0J09WCaLpwFTYGqAPyEnoJTJebwF1NdnSauuLbHOEutHW+NI+5iDI4iKDUYfbq5EyU5uREoMyVPOUDToI+HCt0hhxjbEQkD4p2hmRqIaX2KjsGvYkteoHrpQ342pYK6OHV6uIvzmntQwUvArT4HYfkxD9YvlN5Z4QSl2m2EgjbKeBbll9YrOCGHmG2pjYD9KiY1+FnJmkjmjy1oVp0d4oCv/FuXbSfXjWtdVAQWWauy1j3eFNkVe8E1Ae9kCFCrkfQ8xKz1ilAjU10j7NLoa4SB7l6NuLJOo6PNyi8aSPdtBDAS4M2veXeUfpt+lILjEFX46G3kfsSpY
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(66556008)(66476007)(2616005)(956004)(31696002)(54906003)(53546011)(38100700002)(8676002)(6916009)(31686004)(66946007)(16576012)(26005)(5660300002)(86362001)(4326008)(2906002)(6486002)(508600001)(8936002)(36756003)(83380400001)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Mmk1TU0zK2ZiQUoyMFlGWVRtckp0eURteUpLTFF5ZGNBNzgySEV0bFpqNVNY?=
 =?utf-8?B?Z2l2SGVtNnhsUnJHMGVEcC91SlFpOTFzaWNBc0ZmK2ZIdFhlZ09WS2kxeFhF?=
 =?utf-8?B?bTc4VE14UG9zNXpFcThWaDdUQTNSOGJET2NlMHloNG1iY2FqdkdpOFBFQXE3?=
 =?utf-8?B?L1JJZ3RJVURJNEwzWEpxV0twUGpwc0p1UzVlelNDa3ZOd0JtUFdwbEdXM1B4?=
 =?utf-8?B?SVNWeUQxcFRkMUQzUVRML09Mb1dmQitibjJXUVllL09zZzVjYWtLejltUjFV?=
 =?utf-8?B?Y3IvV0lqbXY0NUJrVzA2N2dHOGxjVUFYaU5GMVVJQk1FMUpocEJDdmJ6NUE3?=
 =?utf-8?B?YjA5MDA4ZGVCY3NwUTBOU21vM3ZKWUU5bWtFanRVbVk0NEJwSUFxenpkYXgy?=
 =?utf-8?B?THF2OEdRejd2U1U5cjlpZDRwZ3FFS0o1L0VBTTEzNDRpOW8xbkFkQ29SLzFm?=
 =?utf-8?B?akU0ZnJZM0psMzZGRFd6YWRRbnR4RE9nekhPMkZlUTZuRjZRVGw1cnZQMW1h?=
 =?utf-8?B?VEtqellUWkl3SCtOYkhoTzNhY3hWNDFBazRZQWVDTFgzNmhLMVBZV2ZEV0c5?=
 =?utf-8?B?d0tPQVNmWEoxL0tEQ0xPMVJJMC9CNG5LK3l4SjZvQVE2aHBUSWlBalArY3FM?=
 =?utf-8?B?ZDg2TGJLSXU3RytHUDZaODRwQVpqMmlwL1BIc1crMVdaVnh5QVE0S1pBRFlN?=
 =?utf-8?B?eG1MSGRwNmM4T213WWI1Mk9UWUIwQUNLTmM2OHFoVWI3eVJlY3c1VXY5Qjll?=
 =?utf-8?B?a3hEa3lQbWNYUnloQU91MU1SaWR2aDBsVk5hdytZa1VTL1lTbzFkWkl5Y1BI?=
 =?utf-8?B?a21ObHNEODZ3eHAwVkxuNEhTQXAxNi9HS0dwQktMK2hZNCtHMEJpcGdnYUc3?=
 =?utf-8?B?cjFyWE5sN3ZtQkpTdDVFUXJtVHROWUw2aEZDNExBTkZIOGMxZXF2N3EyNVFr?=
 =?utf-8?B?bEkyTXQwZjlKZXVQekJUUXNEN1g3VndXY0NEdXZlY3NnTUxsWFJPRFN1TWlR?=
 =?utf-8?B?MWR0MHJrdmtGcllzTmx0eUI0K1pxUE15QzJyV2JMSXdHNkRtY0NhamFRYlJP?=
 =?utf-8?B?UE5KNDBvYWxZVjJYYmU3M2RDRGZldDVNN1QvenV6cVN0ZzFyM1JFRnFaQUFK?=
 =?utf-8?B?Tm9xM3V4WnhLbklpbTY0cXViYlpGaW9KejI2ODJlcVBtZVBOb292Q0s0MlIz?=
 =?utf-8?B?Mm5WcmM4blU0SmtqbitRc21pSG5tUzMzM0s1UTFidE5sR25ySXpTRkFOOStW?=
 =?utf-8?B?ZkxlOUttSG9NdDUxempDbXM2Y1I3TlRNeEIyZi9kMVB4VmJQS25BSndqQmJy?=
 =?utf-8?B?dTlRUHlWMktVTnZkL1RUK0lRaGxZMzk0eU5oN1NyT0ZNQzFoOGh6bU9MVmUz?=
 =?utf-8?B?ODM3WGMwRHRCeGZkTUdOOVBuM1pEWlMxK3cyUjI0YzRzWkcxaTVTRmNRa0hQ?=
 =?utf-8?B?bkRvcEIrS3p0ZHBIMXVDS0YxRGFyQnJIdXV0RVNJdVpSMkk0ankrdzBaVWhv?=
 =?utf-8?B?UFE4eGhVc0hmQWRISkVLOXpEc2wzaDFVOWYyOWdDYzJFcndZb0Y5SHhtb3hR?=
 =?utf-8?B?WGFOdDdtZ25PQzlQc1M3V2ZTYlV0QS9RZGhRSW1nUWEyVlhEYkppdlcrd0o2?=
 =?utf-8?B?OHdoQ0VwSE14UmZJZ0U5OG9mazgvYU4wdVhNSkxmNWhsTFNyQk8xZ3hjTFVV?=
 =?utf-8?B?bEhzYXE1QTU5blpiODRwTUdaZEpYT0Y0MlYzcFdFQXBVclRnQlNpQjVSalJU?=
 =?utf-8?B?SGl2S0RkVGExbThnWG5Xa3RIT3A1cnFqNzcySTJYYjh5anVVT1UrSktlZDNC?=
 =?utf-8?B?SmYzb0JvUWN2VWtBQmJqMFRTR3g2VnZTaDgyRG5mVWI4cGRQaXFlWndJV3By?=
 =?utf-8?B?VmQrUTNjczNTWEVVcDJrc01LcHNTY3dhYXo1VE0xNE5RWkNPYUUrOWdXcGFo?=
 =?utf-8?B?YldDaWQ5ZENuNGsyNG4raEJ4RWtSUG5wQWU0R1ZOc3FzeG4rc3huUzZGMjZz?=
 =?utf-8?B?RTlTTWNkQjZuK2p0b3o1OGp1N3ZtcWZibWFYSHRpN2VNT3orVHFyQTBIWVRE?=
 =?utf-8?B?ZkxhcXQ1YjkzWjlUNXZRUExuRkVwQ2RUWkJrZDB1OUNWS2U5Z2FTK1BiOENE?=
 =?utf-8?B?ak9RdUp5RlFqdVZWaldlR3pNbEpDK2poSDBYRTdNQm5DVGE0ZFRRYXhFb0pv?=
 =?utf-8?Q?0mkmPizufaNCLFMdU2WKwU0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 497e743d-9a4f-4272-d2b9-08d99e0c581a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 14:23:30.5494
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5VE6eWSQU5eLBvHMbD8bEkwFvfsXdEwRxuOLdUaOD2iyTVunqiaOFQscm7pxIxa/1+mlv+UJ7QQI5QNYTbZsZQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5742

On 22.10.2021 12:47, Lin Liu wrote:
> --- /dev/null
> +++ b/xen/include/xen/byteswap.h
> @@ -0,0 +1,93 @@
> +#ifndef _BYTESWAP_H
> +#define _BYTESWAP_H
> +
> +#include <xen/types.h>
> +
> +#if !__has_builtin(__builtin_bswap16)
> +static always_inline uint16_t __builtin_bswap16(uint16_t val)
> +{
> +    return ((val & 0x00FF) << 8) | ((val & 0xFF00) >> 8);
> +}
> +#endif
> +
> +#if !__has_builtin(__builtin_bswap32)
> +static always_inline uint32_t __builtin_bswap32(uint32_t val)
> +{
> +    return ((val & 0x000000FF) << 24) |
> +           ((val & 0x0000FF00) <<  8) |
> +           ((val & 0x00FF0000) >>  8) |
> +           ((val & 0xFF000000) >> 24);
> +}
> +#endif
> +
> +#if !__has_builtin(__builtin_bswap64)
> +static always_inline uint64_t __builtin_bswap64(uint64_t val)
> +{
> +    return ((val & 0x00000000000000FF) << 56) |
> +           ((val & 0x000000000000FF00) << 40) |
> +           ((val & 0x0000000000FF0000) << 24) |
> +           ((val & 0x00000000FF000000) <<  8) |
> +           ((val & 0x000000FF00000000) >>  8) |
> +           ((val & 0x0000FF0000000000) >> 24) |
> +           ((val & 0x00FF000000000000) >> 40) |
> +           ((val & 0xFF00000000000000) >> 56);
> +}
> +#endif
> +
> +#define bswap16(x) __builtin_bswap16(x)
> +#define bswap32(x) __builtin_bswap32(x)
> +#define bswap64(x) __builtin_bswap64(x)
> +
> +#define bswap_ul(x) bswap##BITS_PER_LONG(x)

I don't see how this is supposed to work - the compiler isn't going to
expand BITS_PER_LONG before the token concatenation. You'll need helper
macros to achieve that. Linux has __PASTE(); we may want to "steal" that
(albeit preferably without any leading underscores).

> +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__

While you've worked towards abstracting older vs newer compiler
versions, I'm afraid these constants aren't available in gcc 4.1 yet.
They look to have appeared in 4.6.

> +#  ifndef __LITTLE_ENDIAN
> +#    define __LITTLE_ENDIAN 1234
> +#  endif
> +
> +#  ifndef __LITTLE_ENDIAN_BITFIELD
> +#    define __LITTLE_ENDIAN_BITFIELD
> +#  endif

These are definitions which I don't think belong into a header of this
name. They're imo well placed in byteorder/*.h.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:27:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:27:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220301.381506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhul9-0006Ne-Ht; Tue, 02 Nov 2021 14:27:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220301.381506; Tue, 02 Nov 2021 14:27:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhul9-0006NX-F2; Tue, 02 Nov 2021 14:27:31 +0000
Received: by outflank-mailman (input) for mailman id 220301;
 Tue, 02 Nov 2021 14:27:30 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TliJ=PV=alien8.de=bp@srs-us1.protection.inumbo.net>)
 id 1mhul8-0006NR-EG
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:27:30 +0000
Received: from mail.skyhub.de (unknown [5.9.137.197])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 236ee236-975f-4364-b407-668c73e2e32f;
 Tue, 02 Nov 2021 14:27:28 +0000 (UTC)
Received: from zn.tnic (p200300ec2f0f6200d878d07ae9750fe9.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f0f:6200:d878:d07a:e975:fe9])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id BA7D51EC051F;
 Tue,  2 Nov 2021 15:27:27 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 236ee236-975f-4364-b407-668c73e2e32f
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1635863247;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=MgzXun1sGyXAbI3k6Dnpky/GrLb5A5Lop9Rxzlg7jwI=;
	b=ASq4jAIHpy8E52FTr9weFP+TD8+l23LFSQga5+c0Ujj0WHMNuHy63r+r6XIpWsN2BjO1X0
	difW7wdNKyKN4Pj4p5VCD9cD6QYFn9S9ppe/ssR/HFWhzMEAIQ3NCKNfXqa/O6mG6GI7A9
	60zcPcQEi0MF14FxGjMVXSPvt121WE4=
Date: Tue, 2 Nov 2021 15:27:23 +0100
From: Borislav Petkov <bp@alien8.de>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Lai Jiangshan <laijs@linux.alibaba.com>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	linux-kernel@vger.kernel.org, x86@kernel.org,
	Jan Beulich <jbeulich@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
	Andy Lutomirski <luto@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH V4 04/50] x86/xen: Add
 xenpv_restore_regs_and_return_to_usermode()
Message-ID: <YYFKy/KM7wRUg5mq@zn.tnic>
References: <20211026141420.17138-1-jiangshanlai@gmail.com>
 <20211026141420.17138-5-jiangshanlai@gmail.com>
 <YYD9ohN2Zcy4EdMb@zn.tnic>
 <d4ae23dd-377e-8316-909b-d5bdeacc0904@linux.alibaba.com>
 <YYEJuIgQukcDzy1R@zn.tnic>
 <6F6D3FEC-9AF1-40E1-A7C2-394D21C40114@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <6F6D3FEC-9AF1-40E1-A7C2-394D21C40114@zytor.com>

On Tue, Nov 02, 2021 at 12:22:50PM +0100, H. Peter Anvin wrote:
> It would be interesting to have an "override function with jmp"
> alternatives macro. It doesn't require any changes to the alternatives
> mechanism proper (but possibly to objtool): it would just insert an
> alternatives entry without adding any code including nops to the main
> path. It would of course only be applicable to a jmp, so a syntax like
> OVERRIDE_JMP feature, target rather than open-coding the instruction
> would probably be a good idea.

I think you wanna say ALTERNATIVE_JMP here seeing how we have
ALTERNATIVE_CALL already :)

As to marking it properly, we can finally add that struct
alt_instr.flags thing we have been trying to add for years now.

/me adds it to his evergrowing todo.

If anyone beats /me to it, /me will gladly have a look at it.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:34:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:34:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220305.381517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhurk-0007p6-AE; Tue, 02 Nov 2021 14:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220305.381517; Tue, 02 Nov 2021 14:34:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhurk-0007oz-5R; Tue, 02 Nov 2021 14:34:20 +0000
Received: by outflank-mailman (input) for mailman id 220305;
 Tue, 02 Nov 2021 14:34:18 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7JXc=PV=citrix.com=Andrew.Cooper3@srs-us1.protection.inumbo.net>)
 id 1mhuri-0007ot-Oh
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:34:18 +0000
Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id f4fe847e-3be9-11ec-8557-12813bfff9fa;
 Tue, 02 Nov 2021 14:34:17 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4fe847e-3be9-11ec-8557-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635863656;
  h=to:cc:references:from:subject:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=wm/mwjcyrrwyBd4nOy23/P9ZEHxcoSu2UYdvnDyCLu4=;
  b=dUyU/YUywpgX4BcvUj6IzgjYVFCrY+tckKPa2AgMueskCJVlxwGh/74U
   D1oB8R4HNl/wj38GBNJV05/EaA3aXu6kEkLq9Z6mCL2krR1TEERtWKBoM
   GHWPakycs+Kto/ihZ/wNkpOT+y541vlR3k1rOm/bUlUQXQteFGicZnD9C
   M=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: pdSWqZbmATiU1DTXYQ6r0DnkSl+j9duvBdLKBC2ImZ2DE46vaehsWVfKardIeXxwrWJBZ8dCVX
 6vYmBjiDNVvoQqRFUw+4GzRYNM/nEvQJ97ZXkG/7MBq0K+bLZYnYoxfqSH7B57HVfEDEGd8FwO
 O4zKTnIsjGijn1xBTKG3ABlduf0Ie8kvHfoFq2N4SDdvFWAhGFiUkilpeIBminVV2NHV6h7Yx6
 K1SwnS/uzcPW4ZaLvQMHhIW54mnUYuPLc467m92ysXASFdVkzG9PkRTrxwiDNC5GuO80rcXbx9
 3c6xGOoJv15D8WbHysohNLXc
X-SBRS: 5.1
X-MesageID: 56862984
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:EuVWEaIj6Wj3ofdJFE+RjZMlxSXFcZb7ZxGr2PjKsXjdYENSg2FUm
 GAaWTuHbKrZamL9KY1+O4u3oE1VsJbSzt5mQARlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es7wbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2ltd1z9
 NtcuqWRWEQJIurOpeYZSwJHRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpu1p4UTKaCD
 yYfQRNuUjTPRUBNBk9US5kXlru0mV7eVzIN/Tp5ooJoujOOnWSdyoPFMtDYZ9iLTsV9hVuDq
 yTN+GGRKhMHMN2SzxKV/3TqgfXA9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03A
 1MQ0jojq+417kPDZsLmQxSyrXqAvxgdc9ldCes37EeK0KW8yzieAm8IXztQcusMvcU9RSEp/
 lKRltavDjtq2JWUVnC15rqStSm1OyUeMSkFfyBsZQkK+d74u6kokwnCCN1kFcadgtTrFBnqz
 juNrSx4gK8c5fPnzI3iowqB2Wj14MGUEEhlvW07Q15J8CtVToOnW4K55mH6/LVgMMGbc1uFp
 GMbzp32AP81MbmBkymEQeMoFb6v5uqYPDC0vWODD6XN5Bz2pSf9INk4DCVWYR4wb51aIWOBj
 Fr74FsJvPdu0G2Wgbibim5bI+Aj1uDeGNvsTZg4hfIeM8EqJGdrEMyDDHN8PlwBcmBwwcnT2
 r/BKK5A6Er274w9lVJaoM9GidcWKtgWnz+7eHwC503PPUCiTHCUU6wZF1CFc/o06qiJyC2Mr
 Y0CaJrQk0oFCrSiCsUyzWL1BQpTRZTcLcuuw/G7i8bZelY2cI3fI6aJqV/eR2CVt/sMzbqZl
 p1MckRZ1ED+lRX6xfaiMRhehEfUdc8n9xoTZHV0VX7xgiRLSdv/vc83KspsFZF6pbML8BKBZ
 6RcEyl2Kq8UEWqvFvV0RcSVkbGOgzzy3l/TZHX5OGBXklwJb1Whx+IItzDHrUEmJiG2qdE/s
 /un0AbaSoAEXANsEIDdb/fH8r97lSF1dDtaUxSaL99NVl/r9YQ2eSX9guVue5MHKAnZxyvc3
 AGTWE9Kqe7Iqo4z0d/ImaHb8Nv5T7ogRhJXTzvB8LK7FSjG5W7/k4VOZ/mFIGLGX2Tu9aT8O
 egMl6PgMOcKlUphupZnF+o51ro34tbi/ucIzgltEHjRQU6sD7dsfiuP0cVV7/Ufzb5FowqmH
 EmI/4ACa7mOPcrkFn8XJRYkMbvfha1FxGGK4K1sckvg5SJx8L6WamloPkGB2H5HMb94EII52
 uN96sQY3BOy10gxOdGcgyEKq2nVdi4cU78qv40xCZPwjlZ50UlLZJHRB3Ok4JyLbNkQYEAmL
 iXN2fjHjrVYgEHDb2AyBT7G2u8E3cYCvxVDzVkjIVWVm4Wa2q9rjUMJqTlnHB5Iyhhn0v5oP
 jk5PkJ4EqyC4jN0iZURRGurAQxAWEWU90GZJ4HlT4EFo51EjlDwEVA=
IronPort-HdrOrdr: A9a23:44jaNqm6M6zPTGbDCrH0kEIurmrpDfO+imdD5ihNYBxZY6Wkfp
 +V8sjzhCWatN9OYh0dcLC7WJVpQRvnhPpICPoqTMmftW7dyRSVxeBZnPffKljbehEWmdQtrp
 uIH5IObuEYSGIK8PoSgzPIYOrIouP3iJxA7N22pxwGIHAIGsMQnTuRSDzrdXGeLDM2dabRf6
 Dsn/avyQDQHEj/Iv7LfEXsCIP41qz2fd/dEFI7Li9izDPLoSKj6bb8HRTd9hACUwlXybNn1W
 TeiQT26oiqrvn+k3bnpiHuxqUTvOGk5spIBcSKhMRQAjLwijywbIAkf7GZpjg6rMym9V5vut
 jRpBULOdh19hrqDy6IiCqo/zOl/Ccl6nfkx1PdqXz/ofbhTDZ/MMZFjZIxSGqT12MQ+PVHlI
 5b1WOQsJRaSTnamj7m2tTOXxZ20mKpvHsLi4co/j9ieLpbTIUUgZ0U/UtTHptFNjn98pobHO
 5nC9yZzOpKcGmdc2vSsgBUsZyRt0wIb1K7q3U5y4ioO2A8pgE/86JY/r1fop44zuN+d3EejN
 60dJiBl9l1P4crhOxGdb48qPCMexjwqCT3QSuvyGTcZdQ60k322unKCZUOlauXkc8zvdYPcK
 qoaiIviYd1QTO3NfGz
X-IronPort-AV: E=Sophos;i="5.87,203,1631592000"; 
   d="scan'208";a="56862984"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nwyQqLcQAud0M31EwGrVJP1g0yhFEaNBNcFNEiLLf756f549aShu5f7nF2+upkxm4imn8FScQpBxSpzMYVh6s7k8wxS+3DTL5dE1ATgPyrt1nu5S5fmGE5mFwsMNQFV7pWC8bkHDkvoqcK8sa2sgA4FoqNDph47qujo0Il6zRIbspu6DiVwCnfHoYC2pFTpGMeIXPB3FQ1Xj+75iP+yVdSePyw/QPUBmRlcZeBdzJqU1ftC31iwtgO4lvKa4eksq94nEehjbgD+hOwJJS96MOwSb58HsWNbZUxj8xxwyXVJlbZm1iUzI51aI2H2VnhrLZXY1Ij9Do3bmUf6k+pTCpg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UaIzeyu+kLBhuCcTqcHDkZrfoofYpBkvSxGOooWlK/Q=;
 b=FwEiDOcULQWSSeuDSRRr4Of+72DPeVnSaqCuB4bqgv5Fg19YqsaCugMmBaWn3FLNlx6LgLKOraTd2PzYdCnrd/kDV8RfmZONmUSTHgEDt/Rbmxoqkb7kNyH2Im0AxTNbFiyYcXWaZhiJ2tMp5VkGFlaHMpBQ6rmdOvCoF8VtG0XOWr7x5dG1EZ3XpZy0A1xAF7/7USmxgwrtI4zncECiigLUwJtYAfYQODVd117vSSVSQpexpCMhwMVN/fMa6ri5UeGUK/k1/mz3piXjJA2ZV9H/QAoovb2IiLowAEN6eRgLFbgJ2PaaJmz1Znq0nmZBqU8EpqzVvF+V6e7hG27W9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UaIzeyu+kLBhuCcTqcHDkZrfoofYpBkvSxGOooWlK/Q=;
 b=W6tYOFtRL1gGs0eeErUU78rHGwE7r9gtwM1ztL2WfoX325/pXY1j55G38+nRpyI/ontrnIt3QZhv3RgJjPXk3t8egMHtL2Pyzftg3Os/rCPw/UMyeS12HDyXrvTpNgnF/2qBGkDv+k6kc75xuehhNMbXfo68WobQPz2/Kb31JiY=
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>, George Dunlap
	<george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, "Christian
 Lindig" <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Ian Jackson
	<iwj@xenproject.org>
References: <20211029075956.1260-1-roger.pau@citrix.com>
 <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
 <YXz579WNpHe7aO91@Air-de-Roger>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.16 v4] gnttab: allow setting max version per-domain
Message-ID: <3715026d-b8e4-9940-6cfe-0ccf042cd07c@citrix.com>
Date: Tue, 2 Nov 2021 14:34:03 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <YXz579WNpHe7aO91@Air-de-Roger>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LO4P123CA0228.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a6::17) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 54f6cf36-a0d7-4524-0942-08d99e0dd5e7
X-MS-TrafficTypeDiagnostic: SJ0PR03MB5695:
X-Microsoft-Antispam-PRVS: <SJ0PR03MB56950D7992E7DDCB10A8C840BA8B9@SJ0PR03MB5695.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: jGGa9x5fxHOYwcIk0Hvmu70gECaXYaf3I/5vufFSEAMWUpS0K192a4G5/qKPiDdiHqENwpTrjol6EVpUr7Ww5ofnA+qysM/2rVe9c3XyhymIVaRlbpoSWlNhc3EB/ljByjfph8r1foPoTST/xSCthixw8MHN8rsUHb7x7ZINv2E1xNXcQEVl8HhU7p1cDg5AKC7riQ8absTpXGZl1Osu7+ewfIegRn3gIQaxnvMkMNW+88jjfLVsUts4zbrkWi4UCYiLOq9ulbbtMqnF8FMfNY8NbjX2GvncPzeSrJvLokOgbIhoMDQucmV86oOeiLw46LCFHK51LSct8hS5h9p7fcn/n+2M7mBc4jpAfez0IcwyRzpEdVQaWM8DCS08nrM3yv9lER7k8wXbYwQ23ThWIQ8vf7aswW/gCZZrLiGybnGJcqSaZlHmg+l2NqT5iaQPOz7xRS6sZiZ1lssoEmIxTB5ItRoJo18oFOKRE/M1MNozNbgMA7NOze+8iun+l1Wxh7/6Pv0uAnkr2ErrG3mjUgMnvvXkfo1J8zZ6ozcf/1X3B+QVGQwrqM0PEaBe3PbTJSkZzjmFUl7IXlLuZDtdeyKLg4uU9180EQDjFhrpb7ID9Ktd33Qw8p7BYi1e7Y5FNFyvMZ28xa6Z+B4AKu/EZSxFa/kBErzrrHQmrYQYRHsMlzhJV+o6IqfB+ONoVGqeiyONjRUonf9WOXjvihpUayf3woehWl7XTQGEm93l08n28B5SEwAYd9+rOBLahnAc
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6486002)(508600001)(66946007)(86362001)(66476007)(66556008)(5660300002)(53546011)(316002)(38100700002)(82960400001)(31686004)(83380400001)(36756003)(16576012)(186003)(4326008)(26005)(6862004)(31696002)(956004)(2616005)(8936002)(54906003)(37006003)(6636002)(6666004)(2906002)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cEsyeHZoUE5QOWZRRkhIbCtzVHNlRFdqOHZpaitRMFlvTWQwT2NlRlhZYXV0?=
 =?utf-8?B?bXVvTHVSQ01KblprTCtuazkrWFBvYzlhVFdpWnd1WHE5eFF1QVFWUUY1ZWNB?=
 =?utf-8?B?SmlOMzl4WXcxMFp0bjAzTFZ5QmpidWRzMHZOZnl5T3hlcllaQThWdXFJRlYy?=
 =?utf-8?B?TGZRakdVeWNhemRCbVU5VGhhWkRFdUIxb0l6L012MThBQ3VEcnZGblU4L2M3?=
 =?utf-8?B?dFRRenYvdStKK1hoeld6MDlwa0xTdFBqSGRBYVhUNUlUNjJ5WHc2S0RMaHJx?=
 =?utf-8?B?dEdRT0lhUE9HQVBIMUNvQVZIUE9QUGJvZjd0cDNFSC9VWmYvWWgxYnpLanNJ?=
 =?utf-8?B?ZlB5Zmk2cENlaUZEeUprby9wRjlrcWk1M1plKzJGR2NrSTY2MWJwUERDZE5n?=
 =?utf-8?B?UGlER1krVWVaQ01wR3lPQ0c0azRzRmpMQ1hDcUJYRVpTRjBGWGRIZ3pkMlk3?=
 =?utf-8?B?R1k5R3JURjROOW1nY2o0QXIvdDNTVloyaEtXbVJoZzFjbFV3UUJwcVpRTDU3?=
 =?utf-8?B?ak9VNmZuQWtURzdsK2Y2dDlycVQzQi96cU5oQ3dQTklkYUhXVG9nbEdsM0Uw?=
 =?utf-8?B?NkpHaTlYSS9PVGhEQVpjZDdsS2RpRVJtZUsvYXR3WHducWNqaUV5aS9HNXZJ?=
 =?utf-8?B?UDZNc2lKSlc1MXgrSVBIRkdUTjNsTjd4RFBIL1Z1MVB0Q2NFQW8zajM1elVu?=
 =?utf-8?B?aE5hRm95Q1RVbHFMVTVWaVZHb0J4Mk1EaXV2dWNYSmZTL09VTThZWnQ5ZzIx?=
 =?utf-8?B?R0FvV3c4eFRZVmpMYmJjUzZyTnJVdUhlVlBJUUF6V0ZBVml1cjlOMStOeVVF?=
 =?utf-8?B?NjI0SFdRd2Y1OUUxUGNST25wL3g3SmprNVc4QjRwbGRxZzlLU05PckU2L1hO?=
 =?utf-8?B?UFM1TndBOUhQYzhHMXN4YUlIQzBhWFdaaVBpNGdJenpmd0htUElOaVg2UTB1?=
 =?utf-8?B?cGFweUp2MzJES0VGcVVkNmYxcG02NjFNSWJSK3d1SWoxZUFlWWJHYWpmNG02?=
 =?utf-8?B?VVRXRnVOLys5Q1RPZEZlSkp3SHpaN1prbGxXdHZCVDI4Uytra0pPUGRaazVw?=
 =?utf-8?B?clJGZzFadWVTdjFubnhJeFN1Si9yK1ZxNkJhM2d1RkQ5SXNhSTVoWHRhVzdE?=
 =?utf-8?B?MzQ5dXBIeDlJMk1saXFPTUFFcHhlQU1HTTR5RWgvTlRLQm1NUy8weEd1WmJQ?=
 =?utf-8?B?KzVkZTBzR0UyMTdrcy9WQXM0ZFhONFduSEdua1lRaXBSUE53SDhmWHhVMGpq?=
 =?utf-8?B?RTM4STZ5NExRU1FZb1puM1oxMXBlazlWSllRTHBST3JJR3hxOEV2QktCTGN3?=
 =?utf-8?B?czU1VjF6V1VLK2wzNnF3NERxOFRRZWxsdm5lQlF4VTM0ZzlIamJlOXRQN1Qx?=
 =?utf-8?B?WXFJSUpTejdhNEpscGJxWXNORG5LbGZrQU5HcWc3bkMrd2toandneFczMUdF?=
 =?utf-8?B?eHZ1emw4Rng2N3VFMldLdTNXenZFaUVaWHlvRHNsM0tGM1J1cmJ0bVcvQ2R3?=
 =?utf-8?B?am1NNVJyNm1iNDZabzhUdVpJY1lXZGMrRXAxdFY3Tmx4ZHpBWUE0YU9qbjhC?=
 =?utf-8?B?dDB4UVBSYmZqMC9rY2MrMHE1RUx2Wk41Yy84UFk1SHZTMWxOZkU5MVltRWVG?=
 =?utf-8?B?TmxSMERPd3p5VlhTRXN5dkdnTWVXT3doZTcrVVp5Yzh5QTg4dEROL2x0MGFl?=
 =?utf-8?B?bE5yYUFjWEFnZTdhQ1NzN05USnJVZDNJbDVpTGpINHBMTXp6ZG5CUW5NRkZZ?=
 =?utf-8?B?SmcyQkZSQUxaZXNtL3JjdWlDTUpLNWRSQlArc1ZYTWc0WkI3MFZ5NU1MNyt6?=
 =?utf-8?B?WnIxKzh1bG9nNU5mb3VodnVSUWEwb1REN2tIUjRubWx3dVl4Nnp2dUVaUUFU?=
 =?utf-8?B?dEI5d0RGSFFwclhJQzVIMkx2ZnA2d0F1VjhZbHNPb0l3T2FtKzNvZjVyQnNU?=
 =?utf-8?B?Q09IR282Z2JNODZGZk5Cc25MdXdDSnJVSjZQSjI3QzlYbEwyaGVBV1krQVR1?=
 =?utf-8?B?UGxnWGlKdHNFNHV6ZUF3emxzd2VSWkx6MnZlbUFmUE5uZWNYaTFYWDFIOGVo?=
 =?utf-8?B?VE43S2ZMeGRaelJnZkRsNmtBQUJLdGRvUGlFVnBWNEpFcmlEUEcybCtpd3Rp?=
 =?utf-8?B?RzNhdlJLRXdrNzRubmJvSENoRUJOWlNHZW1xUi9mYk5pQS9FaXJoeWNNRjAx?=
 =?utf-8?B?Ny8zb2hOcm9sK3luelBsOUxZRWxML3poQ29aZFNxendLZktKdC9DNlJ0Tkpa?=
 =?utf-8?B?MXplRDM3SmFseTNlT1lWUjlIMmxnPT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 54f6cf36-a0d7-4524-0942-08d99e0dd5e7
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 14:34:11.1976
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OLqMmUJqIHrc663/3n8LUcoUxXyi2pt/JRIVrGxeMLnNP5/mGzDCXx1KtGP3zBCt0BubgZA/QTB3wv/avcyr8UHauCiwTpw5sfysa0MV3cA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5695
X-OriginatorOrg: citrix.com

On 30/10/2021 08:53, Roger Pau Monn=C3=A9 wrote:
> On Fri, Oct 29, 2021 at 05:39:52PM +0100, Andrew Cooper wrote:
>> On 29/10/2021 08:59, Roger Pau Monne wrote:
>>> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
>>> index e510395d08..f94f0f272c 100644
>>> --- a/xen/common/grant_table.c
>>> +++ b/xen/common/grant_table.c
>>> @@ -1917,11 +1918,33 @@ active_alloc_failed:
>>>  }
>>> =20
>>>  int grant_table_init(struct domain *d, int max_grant_frames,
>>> -                     int max_maptrack_frames)
>>> +                     int max_maptrack_frames, unsigned int options)
>>>  {
>>>      struct grant_table *gt;
>>> +    unsigned int max_grant_version =3D options & XEN_DOMCTL_GRANT_vers=
ion_mask;
>>>      int ret =3D -ENOMEM;
>>> =20
>>> +    if ( max_grant_version =3D=3D XEN_DOMCTL_GRANT_version_default )
>>> +        max_grant_version =3D opt_gnttab_max_version;
>>> +    if ( !max_grant_version )
>>> +    {
>>> +        dprintk(XENLOG_INFO, "%pd: invalid grant table version 0 reque=
sted\n",
>>> +                d);
>>> +        return -EINVAL;
>>> +    }
>>> +    if ( max_grant_version > opt_gnttab_max_version )
>>> +    {
>>> +        dprintk(XENLOG_INFO,
>>> +                "%pd: requested grant version (%u) greater than suppor=
ted (%u)\n",
>>> +                d, max_grant_version, opt_gnttab_max_version);
>>> +        return -EINVAL;
>>> +    }
>> I think this wants to live in sanitise_domain_config() along with all
>> the other auditing of flags and settings.
> The reason to place those there is that the sanity checks for the
> other grant table related parameters (max_grant_frames and
> max_maptrack_frames) are performed in this function also. I think it's
> better to keep the checks together.
>
> We should consider exporting the relevant values from grant table
> code and then moving all the checks to sanitise_domain_config, but
> likely a follow up work given the current point in the release.
>
>> Also, it can be simplified:
>>
>> if ( max_grant_version < 1 ||
>> =C2=A0=C2=A0=C2=A0 max_grant_version > opt_gnttab_max_version )
>> {
>> =C2=A0=C2=A0=C2=A0 dprintk(XENLOG_INFO, "Requested gnttab max version %u=
 outside of
>> supported range [%u, %u]\n", ...);
>> }
> It was originally done this way so that the first check
> (!max_grant_version) could be adjusted when support for
> max_grant_version =3D=3D 0 was introduced [0] in order to signal the
> disabling of grant tables altogether.
>
>>
>>> +    if ( unlikely(max_page >=3D PFN_DOWN(TB(16))) && is_pv_domain(d) &=
&
>>> +         max_grant_version < 2 )
>>> +        dprintk(XENLOG_INFO,
>>> +                "%pd: host memory above 16Tb and grant table v2 disabl=
ed\n",
>>> +                d);
>> This is rather more complicated.
>>
>> For PV, this going wrong in the first place is conditional on CONFIG_BIG=
MEM.
>> For HVM, it the guest address size, not the host.
>> For ARM, I don't even know, because I've lost track of which bits of the
>> ABI are directmap in an otherwise translated domain.
> This was only aiming to cover the PV case, which I think it's the more
> likely one. It's possible there's people attempting to create PV
> guests on a 16TB machine, but I think it's more unlikely that the
> guest itself will have 16TB of RAM.
>
>> I think it is probably useful to do something about it, but probably not
>> in this patch.
> I'm fine with this, we had no warning at all before, so I don't think
> it should be a hard requirement to add one now. It would be nice if
> there's consensus, but otherwise let's just skip it.
>
>> Perhaps modify domain_set_alloc_bitsize() to impose an upper limit for
>> the "host memory size matters" cases?
>>
>> For the guest address size cases, this possibly wants to feed in to the
>> max policy calculations in the same way that shadow kinda does.
> So grant table version will basically clamp the amount of memory a
> guest can use?
>
> What about guests that doesn't use grant tables at all, do we expect
> those to set the future max_grant_version to 0 in order to avoid the
> clamping without having to expose grant v2?
>
>>> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
>>> index 51017b47bc..0ec57614bd 100644
>>> --- a/xen/include/public/domctl.h
>>> +++ b/xen/include/public/domctl.h
>>> @@ -89,14 +89,20 @@ struct xen_domctl_createdomain {
>>>      /*
>>>       * Various domain limits, which impact the quantity of resources
>>>       * (global mapping space, xenheap, etc) a guest may consume.  For
>>> -     * max_grant_frames and max_maptrack_frames, < 0 means "use the
>>> -     * default maximum value in the hypervisor".
>>> +     * max_grant_frames, max_maptrack_frames and max_gnttab_version < =
0
>>> +     * means "use the default maximum value in the hypervisor".
>>>       */
>>>      uint32_t max_vcpus;
>>>      uint32_t max_evtchn_port;
>>>      int32_t max_grant_frames;
>>>      int32_t max_maptrack_frames;
>>> =20
>>> +/* Grant version, use low 4 bits. */
>>> +#define XEN_DOMCTL_GRANT_version_mask    0xf
>>> +#define XEN_DOMCTL_GRANT_version_default 0xf
>> This needs to be a toolstack decision, not something in Xen.=C2=A0 This
>> doesn't fix the case where VMs can't cope with change underfoot.
>>
>> It is fine for the user say "use the default", but this must be turned
>> into an explicit 1 or 2 by the toolstack, so that the version(s) visible
>> to the guest remains invariant while it is booted.
> Please bear with me, as I'm afraid I don't understand why this is
> relevant. Allowed max grant version can only change as a result of a
> migration

No.=C2=A0 Allowed max grant version is (well - needs to be) a fixed propert=
y
of the VM, even across migration.

It was a fundamentally mistake to ever have gnttab v2 active by default,
without an enumeration, and with no way of turning it off.=C2=A0 Same too f=
or
evtchn, but we've already taken a patch to knobble fifo support.


The toolstack needs to explicitly select v1 or v2.=C2=A0 It's fine to pick =
a
default on behalf a user which doesn't care, but what moves in the
migrate stream must an explicit, unambiguous value, so the destination
Xen and toolstack can reconstruct the VM exactly.

"default" is ambiguous, and cannot be recovered after the fact.=C2=A0 In
particular, a vm with no explicit configuration, when booted on a Xen
with gnttab limited to v1 on the command line, should not have v2 become
accessible by migrating to a second Xen with no command line limit.=C2=A0 I=
t
is fine, if that VM subsequently reboots, to find that v2 is now available.

~Andrew



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:40:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220313.381529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuxO-0000tk-7M; Tue, 02 Nov 2021 14:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220313.381529; Tue, 02 Nov 2021 14:40:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhuxO-0000tP-1I; Tue, 02 Nov 2021 14:40:10 +0000
Received: by outflank-mailman (input) for mailman id 220313;
 Tue, 02 Nov 2021 14:40:08 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7JXc=PV=citrix.com=Andrew.Cooper3@srs-us1.protection.inumbo.net>)
 id 1mhuxM-0000sY-HT
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:40:08 +0000
Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id a2cdaa26-76f9-4f56-8fec-67ef697049b1;
 Tue, 02 Nov 2021 14:40:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2cdaa26-76f9-4f56-8fec-67ef697049b1
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635864007;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=3yeCHmdxvJVOclLCsWlqqmdXtM4p9lV1mZS+SKfALY4=;
  b=MHx03HuxlkbK4EPn2Qpy0+ZPDGd3fdsCO11wXR0z0qYGtph+pm7AaQbY
   vNoqjpnacEpDLbCFu5/P2ABTAt8YSmAVQhMyWnIwlkozoUoxSBajgc8kk
   bsLPQqO6lf/TO33txAMufMyM8O3TdboTZ1suJM5/V8/wGE3+Lh/uSqJg6
   o=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: AgZUx/QNhNvsTdv6a7SphkWXz3yJVWvS3gHWbe3BSja2XeMiI7oIj+KOR0H5IQcsd6ZkFVssfq
 2qxUjnQK74twr+tXfKbRBie0IGldlpk5nzXVQrtaO9H8c+QRhGne0d/LLIj2496mw/GUfe7N/b
 kg/7n7MuvCGegMQDrVPJmPSuXzHRCLLQ20XowMLJzRaCswb7ditJaZM4NctkJRIdH7pGhoYRvD
 ozdKHlnOER55DcZKqzMaOKO8a0vRwizYVNdnC8EIfwd2877POYzh5hLYa6kH/gtxReZXWeyWVs
 Cf20AlwQjFUB1MHVJTSIUagN
X-SBRS: 5.1
X-MesageID: 56863530
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Qz+9ra2dwPFkI4fpHPbD5R92kn2cJEfYwER7XKvMYLTBsI5bp2ZSz
 WQXXW+OPf2KNGTxco10YY3jpkoH6pSEydBrSwM+pC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6w7Rh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhwd4q0
 Ohjm5mMczwXFfzKoN8CeTdfHHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Er8IvNsT0eqgYvWlt12rxBvc6W5HTBa7N4Le02R9t2JAQRquFP
 6L1bxJjK02eJBJCKG06J6sBhMTxjVTaUjJH/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 kDs8nn9AxoaHMeC0jfD+XWp7sffkCW+VI8MGbmQ8v9xnEbV1mEVEAcRV1awvb++kEHWZj5EA
 xVKoGx09/F0rRH1CImmN/GlnJKalkASAMJtPcM/1Du29IGF5T6iGUIqSTEUPbTKq/QKbTAt0
 1aImfbgCjpurKCZRBqhy1uEkd+hEXNLdDFfPEfoWSNAuoC++99r0nojW/46SPbt5uAZDw0c1
 NxjQMIWo7wIxfAG2Kyglbwsq2L9/8OZJuLZC+i+Y45E0u+bTNL1D2BLwQKChRqlEGp/ZgPY1
 JTjs5PGhN3i9bnXyESwrBwlRdlFHcqtPjzGmkJIFJI87Tmr8HPLVdkOu2whdR0xbZxeIGOBj
 KrvVeV5vsY70JyCNvcfXm5MI55ykfiI+SrND6i8giVyjmhZK1bcoXAGib+41GHxikk8+ZzTy
 r/AGftA+U0yUPw9pBLvHr91+eZymkgWmDOCLbimnk/P+efPOxaopUItbQLmghYRt/jf/m04M
 r93aqO39vmoeLSlP3SMrtJLdTjn7xETXPjLliCeTcbbSiIOJY3rI6WJqV/4U4A6zalTiMnS+
 XSxBh1RxFbl3CWVIgSWcHFzLrjoWM8n/348OCUtO3eu2mQiPtnzvPtOKcNvcOl17vFnwN51U
 +IBJ5eKDMNQR2mV4D8ad5T88tBvLUz5mQKUMiO5SzEjZJo8FRfR89rpc1K3pikDBya6r+Ukp
 Lik2l+JSJYPXV06Xs3XdOiu3xW6un1EwLB+WE7BI99yfkTw8dc1d3yt36Fve8xVcEfN3DqX0
 QqSECw0n+iVrt9n6sTNiICFs5ytT7l0EH1FEjSJ9r2xLyTboDaumNcSTOaScDnBf2ro46H+N
 /5NxvTxPfBbzlZHt41wT+Riwa4kvoa9orZbykJvHWnRbkTtAbRleyHU0c5Kv6xL57lYpQrpB
 R7fpogEYe2EaJH/DVocBAs5deDSh/gblw7b4ekxPEintjR8+6CKUBkKMhSB4MCHwGCZ7G/xL
 T8dhfMr
IronPort-HdrOrdr: A9a23:XlpBd6u2O152W3VdX2702/va7skDeNV00zEX/kB9WHVpmszxra
 GTdZMgpHnJYVcqKRYdcL+7Scq9qB/nmqKdgrNhWYtKPjOW2ldARbsKheCJrlHd8kXFh5dgPM
 xbE5SWZuefMbEDt7ee3DWF
X-IronPort-AV: E=Sophos;i="5.87,203,1631592000"; 
   d="scan'208";a="56863530"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH for-4.16] x86/shstk: Fix use of shadow stacks with XPTI active
Date: Tue, 2 Nov 2021 14:39:35 +0000
Message-ID: <20211102143935.17473-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The call to setup_cpu_root_pgt(0) in smp_prepare_cpus() is too early.  It
clones the BSP's stack while the .data mapping is still in use, causing all
mappings to be fully read read/write (and with no guard pages either).  This
ultimately causes #DF when trying to enter the dom0 kernel for the first time.

Defer setting up BSPs XPTI pagetable until reinit_bsp_stack() after we've set
up proper shadow stack permissions.

Fixes: 60016604739b ("x86/shstk: Rework the stack layout to support shadow stacks")
Fixes: b60ab42db2f0 ("x86/shstk: Activate Supervisor Shadow Stacks")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

For 4.16.  This is a rare configuration.  Real hardware supporting CET-SS is
either AMD, or fixed to Meltdown, so doesn't turn on XPTI by default.

The bug can be triggered either by booting real CET-SS hardware with `xpti` on
the cmdline, or booting Xen in a VM where "fixed to meltdown" isn't
advertised.  The result when things go wrong is an unconditional crash.

Risks are minimal - all the change is doing is reordering some actions during
boot.  The shadow stack specific aspects are hard for people to independently
verify, owing to the fact that CET-SS is only on current-generation CPUs, but
I have an example sitting on my desk which is how I discovered this.

However, the paths altered are tested thoroughly by OSSTest on every single
host boot, in a variety of combinations due to the selection of hardware.
---
 xen/arch/x86/setup.c   | 5 +++++
 xen/arch/x86/smpboot.c | 9 ++-------
 xen/include/xen/smp.h  | 1 +
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index b101565f1431..fea86530f9f2 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -666,6 +666,7 @@ static void noreturn init_done(void)
 static void __init noreturn reinit_bsp_stack(void)
 {
     unsigned long *stack = (void*)(get_stack_bottom() & ~(STACK_SIZE - 1));
+    int rc;
 
     /* Update TSS and ISTs */
     load_system_tables();
@@ -676,6 +677,10 @@ static void __init noreturn reinit_bsp_stack(void)
     stack_base[0] = stack;
     memguard_guard_stack(stack);
 
+    rc = setup_cpu_root_pgt(0);
+    if ( rc )
+        panic("Error %d setting up PV root page table\n", rc);
+
     if ( IS_ENABLED(CONFIG_XEN_SHSTK) && cpu_has_xen_shstk )
     {
         wrmsrl(MSR_PL0_SSP,
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 0dce1ae87210..329cfdb6c9f6 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -821,7 +821,7 @@ static root_pgentry_t common_pgt;
 
 extern const char _stextentry[], _etextentry[];
 
-static int setup_cpu_root_pgt(unsigned int cpu)
+int setup_cpu_root_pgt(unsigned int cpu)
 {
     root_pgentry_t *rpt;
     unsigned int off;
@@ -1138,8 +1138,6 @@ static struct notifier_block cpu_smpboot_nfb = {
 
 void __init smp_prepare_cpus(void)
 {
-    int rc;
-
     register_cpu_notifier(&cpu_smpboot_nfb);
 
     mtrr_aps_sync_begin();
@@ -1153,10 +1151,7 @@ void __init smp_prepare_cpus(void)
 
     stack_base[0] = (void *)((unsigned long)stack_start & ~(STACK_SIZE - 1));
 
-    rc = setup_cpu_root_pgt(0);
-    if ( rc )
-        panic("Error %d setting up PV root page table\n", rc);
-    if ( per_cpu(root_pgt, 0) )
+    if ( opt_xpti_hwdom || opt_xpti_domu )
     {
         get_cpu_info()->pv_cr3 = 0;
 
diff --git a/xen/include/xen/smp.h b/xen/include/xen/smp.h
index d5a3644611db..0a9219173f0f 100644
--- a/xen/include/xen/smp.h
+++ b/xen/include/xen/smp.h
@@ -70,5 +70,6 @@ int alloc_cpu_id(void);
 extern void *stack_base[NR_CPUS];
 
 void initialize_cpu_data(unsigned int cpu);
+int setup_cpu_root_pgt(unsigned int cpu);
 
 #endif /* __XEN_SMP_H__ */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 14:45:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 14:45:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220320.381539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhv2m-0001Z4-Pm; Tue, 02 Nov 2021 14:45:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220320.381539; Tue, 02 Nov 2021 14:45:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhv2m-0001Yx-M1; Tue, 02 Nov 2021 14:45:44 +0000
Received: by outflank-mailman (input) for mailman id 220320;
 Tue, 02 Nov 2021 14:45:43 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhv2l-0001Yr-QL
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:45:43 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 8d707630-3beb-11ec-8558-12813bfff9fa;
 Tue, 02 Nov 2021 14:45:42 +0000 (UTC)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-21-K37MtzHzMhivWH-Bq_VPSw-1; Tue, 02 Nov 2021 15:45:40 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5165.eurprd04.prod.outlook.com (2603:10a6:803:54::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Tue, 2 Nov
 2021 14:45:38 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 14:45:38 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0087.eurprd04.prod.outlook.com (2603:10a6:20b:313::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17 via Frontend
 Transport; Tue, 2 Nov 2021 14:45:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d707630-3beb-11ec-8558-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635864341;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tjwWGVTKUtax20fmTtf2tDRpp4RyO2cmOXoKcqufmQk=;
	b=g11dnOpMkW10YGhF40xr8dNZ4oqeX5OH4hbAyw1q8Z4u/QKKlaVfJzeU78zTQrAob9YQTB
	a80yXPl+Maz+XrEkLhfo8gUdDXkF9GT7s1ufzRDB05OAxfD6AuRhPVc9nAKDgGhAoMotQR
	Zy6neCs1S9XdAFZ7Kn6ijyRGaSjszBg=
X-MC-Unique: K37MtzHzMhivWH-Bq_VPSw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dvuizsvHABtqjFt13zQWMzLVkqsb0tZ5S28Bsgfi9oLpsS1BquSzDMPYou387eqeOzyWgC7yFJ1UFGaIcGLjrXX/dHMaolm7vJbf4ToUnYoEd7sR8c89gff/u6GuAPiPNFl1IQ63eOsHOJFWSa5Wk56fW0IlUbcXFqunn9JHNh+HeW8cahWTGW75Eod5YKtLsOpYGYGbyaIu90qTS7gKW+vUc5jNeyYVMWmn7NQo0A011bdxz0Iue6VAW1e4/R+XOVxR67lE3h+xdMS3lD4iR+EY/+dyPCJ4YN7FE7OnuTM9cnEC2kdRrCV+6vYPCpnLIy67D0uPN8doSpKDxjcHpg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tjwWGVTKUtax20fmTtf2tDRpp4RyO2cmOXoKcqufmQk=;
 b=j6uUXm1OW4b048jAkoyc17Ote7cKJlECeY1a7MpNB7yNdAdqy0lBfTXYL6znxvNtHrgxy3GYqiPR7KXNVUB7BatlJtzxf1F8tHUhMqEne4flVcJk1xFGQe62VagbOrV1Yr1DUf4IATgttWAeV3vPkx0mJ8/OCCaLubku63nH/5+agLfyRjvNVxbuuwT9AYNy4PtWMH8Xdj4S+v2joMgWGbE68ZqWwkxZgzG/LAtURxE5S34MUyH6Q5Pkp2dfpDikdgVZvo0RMCD5W12kwuIJv74HK0llTM7YCoYuiEDh/+Y/j8IUaGjZ+pr839CKWmG0tbEUmQ0ISsBl1uCMwkeQgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
Date: Tue, 2 Nov 2021 15:45:36 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: bertrand.marquis@arm.com, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211102140511.5542-1-luca.fancellu@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211102140511.5542-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0087.eurprd04.prod.outlook.com
 (2603:10a6:20b:313::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4a282a95-826a-47bf-11bb-08d99e0f6f61
X-MS-TrafficTypeDiagnostic: VI1PR04MB5165:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5165BD41AF59FCF33C662859B38B9@VI1PR04MB5165.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2657;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	vdKBfMHWXGqqPPN9zfbjEfBqqvE+Xw93h3PhfrzdruaeMh6kzrNzKZLzpnsKwukw2GdW6NAO0qnuYfksjsyj3+xddtnarWexX6lP0G5bEYo6ZOUZIf6eB1iw2XnzXKgIKclNOwcjo4/Z7B7DZzhfL/6hXpg4rII4/68daeumAchlh9wGHO6jw6Zk/RhXPN2vALudK2TyuL8DNtpcspPTlmMhYdiuFgg4OvmJsmMj/4cTURXElcMTnLIQiWav7YJSVoZMPr+pXwUpSOh5c93NWI6N8LGKCFfpaDIabKBPdbwH66oufeBuBEQarXP7Yqd4hOHs86EgGWu6MEhUF+dfxqrRGMDp1ZmZ2gOjmWJ0kpPa7YWrIddAPUWWKaO4VEHvFkPHlCGWP99QOdW2uhmNLMA97SNqDmyw9HLCqskGb2aeObMLU6eaSXB2CkDgqZwtbjIiArm78GoiAE1XCr4xbgpwczrQ/03zPjajLDYpFSAgQvpRKZ9lfAuGFC3W9lbCSg8tr0eo5lN8M6RjrgtGjgTDXW8CIHPqM9NknipNNGOmdIKzmnrvXm24PWToa64L6RZfncNBrmXlA/U9JH/XAFa5NpDVgsACQVYFklTH9cbG81eSok0lJ4eka0R6jQ9+vqYmbl8XI+UXKQ65fiVlMYNUhOSJvkAEZtf4O3pJlyG+kzkXZcGu1L+viEZ4lyCQAhEMgJBfORwCFo1En6H9WFk0nncTB58UpW6tqz/5kbc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(2616005)(5660300002)(8936002)(53546011)(54906003)(2906002)(66556008)(26005)(66476007)(6916009)(31696002)(186003)(36756003)(508600001)(8676002)(6486002)(66946007)(83380400001)(31686004)(4326008)(16576012)(316002)(38100700002)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VUZIK2hWZ0loVFVUZjhIVEhGN3NMNTUxaXBmUGxyUWFHQzUvMmZCMUNLbm8y?=
 =?utf-8?B?S290Tkt5NWVtZE9ReGc2TStvMTVHUjFMdVB2TGV2aHFXdmxMQWM5RXNkcWZW?=
 =?utf-8?B?RThSN012SkpxSUtuc3NjeFI0WWxwMGhZNWVBUU1kd05yaHRDRzlGakxNSjBH?=
 =?utf-8?B?UzBYa2x2dVpncDYySlpJN1N5aXZyblJiQzI0MSt4L2tDRjBQOUgxMVczbkRq?=
 =?utf-8?B?WXpNRWdGQjJDaXBHS3BCelNYWFNFKzVyc2tqREJEa2N1b1J5RUhwcCtHUTZJ?=
 =?utf-8?B?UGpmV2U4OXVWOFdVazRWclRjWXRDWURkUTRadFJoVXZwY3orZW9ZVUlrN0ts?=
 =?utf-8?B?T2R5MWlGcXFMZnlXTDUwUVJYYjlUVENTenQ0RWs3bWR3b0lUaytFbmoyQWMv?=
 =?utf-8?B?Y3JYYVFUUDlpd2ZpYXdKVEIvb1d2SFpob1ovMTlOdXMwb2M2L1NNQ3lZTzdi?=
 =?utf-8?B?TE5QNUhEL2JPYnZ3ZXBtNnI2V3Z1ZnF4SVE3T0F1b1Y5WEwrK3BPak9jc25U?=
 =?utf-8?B?VyszNStUeFFaNVZWRjJ2ZzlxaTM4Rk82bUs5YWJrNmZRNXB1ZU1YZDdGbzNQ?=
 =?utf-8?B?bnFNNDdoajdMb0hxM25pK2VPTmtNdHF0eU8zVHdic2hpVVlZTWZUSFE5ayt4?=
 =?utf-8?B?anZWL3RkcVVTL1B3OG5vVSs3TG5aL3crQ28vbHBXVU9URmRIalhVSko4Unpw?=
 =?utf-8?B?VXcrYUlYZU1lL2pZUzF6SWNZZzJkQUd5MXA3OTBoUlVHblhKQW84bCtldXJZ?=
 =?utf-8?B?cWxjS3ovTm5aT1V0NjJQNkk4Um1UKzRjZzVQeTZvMXpJa1EyMlh3MW1zU1Rk?=
 =?utf-8?B?WE5uQ1JKb3ZtT2s3TjFLUC96Z2dGZEgvMUw3WEUxR0RxVEhmeFZCQlVDdUdI?=
 =?utf-8?B?QVFqVEJMZXBUUnpWbEQvOVpzNDNSTW42NUp3OTlybkl4WWpNV056aVJtWkcy?=
 =?utf-8?B?NFVKb055M0NRNjlkZkxtTnhOQzFvcFU2Z1B4a0JESzJsM2NING1hQXQ1UzU2?=
 =?utf-8?B?LzZnRTVYT1NVaWZ1UVFiRlBNRXplRUUxMnl3ZnRzUElUVnQ0eDZhRjRRd09q?=
 =?utf-8?B?M2JTWHFtTWFjczZoMW9tQ3NYYzhMVTZFaS9lKzdoQ2NjbC9qaHEvV2ZqeVYv?=
 =?utf-8?B?OW9JRXJjMWR1TFl0T2FQM0pPd3g3aHFxYndUY0dCRkN3RDNHcEpzN3Z4YmlV?=
 =?utf-8?B?OEoxbzdNYlplWlRTVGtRNldYWjd2TitkT09Rcm9DWGpMOHBwYjJ6RnI0RzNr?=
 =?utf-8?B?OGlOYXlGZUxxVGFseWFBVWFqMHJnMEtXTVFKS2wxMGF5OVJzcnk1N0hkNUtU?=
 =?utf-8?B?Sm1yVldGQUJQTHhzM2JPTTBsaW9NWUJZc2pBditlejhuMHZnazNFdEtocFFH?=
 =?utf-8?B?Y1ZFZ3dKU0M2Yit0VVRkK2NQMnk0WkZ3Y2RJZXpsbmZmb2hNaUZUakR5YWRJ?=
 =?utf-8?B?L0U1VFBOYXZod3o1N1NIaFFCR0dYcDRDRXlhU3IwVVppRS9vWWdndTBIelFZ?=
 =?utf-8?B?MGw0MnBqZlAreXBrVmRiOWdiNkJCdmhxbTdQcUFxMTdQVm4xNDJyYUhjMml1?=
 =?utf-8?B?eHQxbDNlcEtTVGhYRXJ5ZGZja25nWWZWb1VnalEvTnJnUXVxRXIzdGZUdFNV?=
 =?utf-8?B?dGkyaFkxWXhLNU93b1pDRHhLQ0dZTU5LWGpmRFZHc3BETVRGdU9maVJqRkEv?=
 =?utf-8?B?RGQ5SDNXSU1Rajc2MU5jSEhWUXFtT0I2emIyeFkvYkM4MGJselZod2h6TmJI?=
 =?utf-8?B?SDkyejRxZThQSU96a2w1Wk90OHE3ZUJTSlhJMytLektucEpVMUEyMkFENm1Z?=
 =?utf-8?B?WGdkUktYMllaRmVWYnN5bjk5UVhHQWRrN1lIWEZCbU04OVIyc1FJbGNGejVQ?=
 =?utf-8?B?WWxjb0RDQ3o2eUF6SGlvU09DVzhkb3dDVG04OUdCazMwbTkzV2RlUkZEOHlZ?=
 =?utf-8?B?RUFBQTRJdzRkTEtBSC9TbHBmdFhJZ21JbUw4dytGWGE5UDBaTW5HcVE1c2Zz?=
 =?utf-8?B?N3Q5b01qWWp5NHdYeWpiczBqejlsOXZ4SzhqRlNSbFRYWGFLbWo4QS9vaEcy?=
 =?utf-8?B?ckpaS3RGbXdlTVhOTVBkVmNUNThPNmRqakJLbFlGall0WGZuRVVzbTNaNmFW?=
 =?utf-8?B?NW9jMHd4N0dVUGFkendYZm9lTm9icnpzMWN0eGp1WEtkaXQ2bTQzRWkrT0Rr?=
 =?utf-8?Q?RoX2JZ+0u82OJFCqr5YwbU4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4a282a95-826a-47bf-11bb-08d99e0f6f61
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 14:45:38.0965
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5XmBCjzpsJ3v7gYp7dqmRns0W92IAkJEtz3eUSwbKhENuU0ovD/WEA+ZuL5dGBFCZn9oE34aMpIdzIAsb4yAxw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5165

On 02.11.2021 15:05, Luca Fancellu wrote:
> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
> ("arm/efi: Use dom0less configuration when using EFI boot") is
> introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.
> 
> The problem comes from the function get_parent_handle(...) that inside
> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
> is NULL, making Xen stop the UEFI boot.

According to my reading the UEFI spec doesn't (explicitly) allow for
this to be NULL. Could you clarify why this is the case? What other
information may end up being invalid / absent? Is e.g. read_section()
safe to use?

> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -449,6 +449,13 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
>      CHAR16 *pathend, *ptr;
>      EFI_STATUS ret;
>  
> +    /*
> +     * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCOL
> +     * to have access to the filesystem.
> +     */
> +    if ( !loaded_image->DeviceHandle )
> +        return NULL;

I couldn't find anything in the spec saying that NULL (a pointer with
the numeric value zero) could actually not be a valid handle. Could
you point me to text saying so?

> @@ -581,6 +588,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>      EFI_STATUS ret;
>      const CHAR16 *what = NULL;
>  
> +    if ( !dir_handle )
> +        blexit(L"Error: No access to the filesystem");

dir_handle also gets passed to efi_arch_cfg_file_{early,late}() -
those don't need any adjustment only because they merely pass the
parameter on to read_file()?

> @@ -1333,6 +1342,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
>              EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
>                                                         &file_name);
>  
> +            if ( !handle )
> +                blexit(L"Error retrieving image name: no filesystem access");

I don't think this should be fatal - see the comment ahead of the
enclosing if().

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:00:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:00:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220332.381550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvGD-00036Q-4F; Tue, 02 Nov 2021 14:59:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220332.381550; Tue, 02 Nov 2021 14:59:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvGC-00036J-Vj; Tue, 02 Nov 2021 14:59:36 +0000
Received: by outflank-mailman (input) for mailman id 220332;
 Tue, 02 Nov 2021 14:59:36 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhvGC-00036D-2O
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 14:59:36 +0000
Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 7d78adae-3bed-11ec-8558-12813bfff9fa;
 Tue, 02 Nov 2021 14:59:34 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d78adae-3bed-11ec-8558-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635865174;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=8gu023aN47b+737YY1ykLBFne1697NqFA2mtCoP07lg=;
  b=XF7wC9Qs/lXfpoQxWggFjLqELyICSaGiNjTq+/Dw2dThtoNG91i16BJv
   To3BW7IBXTl0KsgyxxekDdZPMffqjM8f7PuN+ZY82DsrD+mFosJTJOQof
   9Ro9EwrAUt6PA2GZXvLjfvXqusEqmQuI4Mb3JQVwFT36Ys5MPGlz1U150
   Q=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: mS4kfjS1rtxCVtOIOgesasxYRTT25Qh50f+zHYqn+SuUHbWb1CJ4xy4G9vnCupfEmNp5wADdPt
 Y85QkBBm8nkzHlWjTM+lEzwXq2D0RfDiDYmW+L4iCdLC9EyKOxdoy4MmeOC72DdnLCIeXnvos/
 6olRUOuCNf4rZzeOtJMrvlZX5ocp0VjIs8BLkgOpSsW8zDrBTKnuT2ZgXIvB8MF1adX+N9Kfjc
 GooFOUUybgYe3nOi2z0+5taHc4/1PViLx03kTmnWz2QuK3p8PVezTSkdY8+ydTEtn2HWEgjqfe
 unQH9tiULvj9cwiaWvDAcppH
X-SBRS: 5.1
X-MesageID: 56865661
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:N7zQMaiEOzwZZ+4hs6wllSE7X161lBcKZh0ujC45NGQN5FlHY01je
 htvXTjUbKuCMDOnfYx2YIy09EIGv8LVzNYyHlFk+Xo9Hyob9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cw24Dja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /0dkMHrbhwYA5eSlecMVR5bNyUgZ5ZvreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2JAQQKiAP
 qL1bxJPSg7uPTltOm0NN7sh2/W0hiTzKzRh/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 nrP4mDREhwcctuFxlKt8Hihm+vOliPTQ58JGfuz8fsCqE2ewCkfBQMbUXO/oOKlkQiuVtRHM
 UsW9yEy668o+ySWosLVBkPi5iTe51hFBoQWQ7ZSBByxJrT8syPEXU8ffwN7NtElpckxRhgui
 AWytoa8bdBwi4G9RXWY/7aSiDq9PykJMGMPDRM5oRs5D8rL+99q0E+WJjp3OOvs14CuR2msq
 9yfhHFm3+17sCId60msEbkraRqIr4OBcAM67x6/somNvlIgP97Ni2BFBDHmARd8wGSxEgnpU
 JsswZH2AAUy4XelznXlrAIlR+nB2hp9GGeA6WOD5aUJ+TW34GKEdotN+jx4L0oBGp9aImK2M
 RWL5lkLvcM70J6WgUlfOdvZ5yMClvCIKDgYfqqMMoomjmZZLVfvEN5Sib64gDm2zRlEfVAXM
 paHa8e8ZUv2+ow8pAdas9w1iOdxrghnnDu7bcmik3yPjOrPDFbIGOxtGAbfMYgEAFas/Vy92
 8xBLPGD1xg3eLS4OkE7B6ZIdgtURZX6bLirw/Fqmhmre1E7RTp+V6eJqV7jEqQ895loei7z1
 ijVcmdTyUblhG2BLgOPa3t5b6joU4o5pnU+VRHA937xs5T6SYrwvqoZabUterwrqL5qwfJuF
 qFXcMScGPVfDD/A/m1FP5X6qYVjcjWthB6PYHX5MGRuIcY4Slyb4MLgcyvu6DIKUni9u/whr
 uDyzQjcW5cCGVhvVZ6EdPK1wlqtlnEBg+YuDVDQK9xedRy0oohnIiD8lNEtJMQIJUmRzzeWz
 V/OUxwZufPMs8k+99yQ3fKIqIKgEu1fGEtGHjaEsebqZHeCpmf6mN1OSueFezzZRVjYwqT6a
 LUH1ez4Pd0GgE1O79h2HYF0wP9s/NDovbJbkFhpRS2Zc1SxB7p8CXCaxs0T5LZVz7pUtAbqC
 EKC/t5WZeeANM//SQNDIQMkaqKI1O0OmymU5vMweR2o6Chy9buBcENTIxjT13ANcOoraNsok
 bU7pcobyw2jkR57YN+Jgxdd+3mIMnFdAb4ssYsXAdOzhwcmor2YjUcw1sMiDEmzVuhx
IronPort-HdrOrdr: A9a23:1B6ARa3rftVV3D86HeKppwqjBQxyeYIsimQD101hICG9Lfb4qy
 n+ppomPEHP5wr5AEtQ5exoS5PwPk80lKQFr7X5WI3DYOCIghrREGgP1/qG/9SkIVyCygc/79
 YgT0EdMqyKMbESt6+Ti2PUf6dCsbu6GeKT9J3jJhxWPGZXgtRbnn5E43GgYytLrWd9dP4EPa
 vZwvACiyureHwRYMj+LGICRfL/q9rCk4+jSQIaBjY8gTP+zQ+A2frfKVy1zx0eWzRAzfMJ6m
 7eiTH04a2lrrWS1gLc7WnO9J5b8eGRieerRfb8yPT9GA+czjpAV74RHIFqewpF5t1H3Wxa1e
 UkZS1QZvibpUmhJl1d6iGdpTUImAxemkMKj2Xo2kcL6PaJNw7TB6d69PJkWwqc5Ew6sN5m1q
 VXm2qfqppMFBvF2D/w/t7SSnhR5weJSFcZ4KUuZkZkIMEjgX5q3Psi1VIQFI1FEDPx6YghHu
 UrBMbA5OxOeVffa3zCpGFgzNGlQ3x2R369Mwc/k93Q1yITkGFyzkMeysBalnAc9IglQ50B4+
 jfKKxnmLxHU8dTZ6NgA+UKR9exFwX2MF7xGXPXJU6iGLAMOnrLpZKy6LIp5PuycJhN15c2kI
 SpaiIRiYfzQTOmNSSj5uw/zvn9ehTKYd228LAt23FQgMyJeIbW
X-IronPort-AV: E=Sophos;i="5.87,203,1631592000"; 
   d="scan'208";a="56865661"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=h+8WRUuhrO2B4mYjNcl7MNqxUBRyQKX4rTa6o6n1VCCnIIjaYi1nqgtn0/8zQR4UNfjbem+Egu4YTXpFLBq+PSCZaEQS9YdHFsFeYgQNPVqg1vWKLqXvCQT+0+Nb4SbNwwTVNXX4iP1jQQ3VpZuqkHs3YYyX1gxXAWhr6q290vuZZd1ZB8G4yfYW4eBOqz0uOxtZr2OzkN/P0x7zg5495QA9BfZkybjCz8pgLa0Wb5jWWQBsdOJ6V0nyUCz2pfH+0F3wrY7L1hZH9ELEkqC4pPIRz0BGZYK92I/jLRvX7krPCOqaeI/b7qV1sXgA568KqY4IxwsiFZM7bxMIwmZ9Kg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=S++vtPwOdNCj2y2NfpBgHT5ySSjxkdoiNpJml/6d3AI=;
 b=bIZsZ0QoW9PW5S4VOFeZdKO3PoWVdkNGbztVlkjUKI0ghITxZlCTkJIZD4keh5YjI7KfNBZ3EjRHCrSgw1cuyQxT10fsZCH+f/cRVuQOh8DqXA+oqVa3iIlcx7sU3cqWwzcDMWqxB93UuqU+Y4h5gEthf6OWvHAqT/s4pCUAT2TSxrQUQ5w6x3whR81O3hHcIxVWyKNvolbQZ/NveSWAlb2lllwAXvXKepT0KSY8MG+4v6sOx0vo0OdbxnYnk7wKAAfe32g6i43ndci5pdm8jvZJH4l5Gbu/8hx4RI/8HkUPmzBP/XGbWrkc9vTI7KoocinjQQaMlRk4HcNQxu2XUw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=S++vtPwOdNCj2y2NfpBgHT5ySSjxkdoiNpJml/6d3AI=;
 b=DBz2jx6wmU4uWaHmyLW1g2dxTnhXnpunGm1fjbDhCGg2/teOJ0NzvOVQH98J9gK/Up6nFHf8p0rVLxp21E0Rg1J20nb3EnvB43b7XAOvmLzL3UXKua0k63NBVt28QKbKfXx5Jkv2RYEgNI2hJx5g+uiY9msBUzQiUPCMQfgl90I=
Date: Tue, 2 Nov 2021 15:59:26 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>
Subject: Re: [PATCH v2 3/3] AMD/IOMMU: iommu_enable vs iommu_intremap
Message-ID: <YYFSTv85MoVdKH+V@Air-de-Roger>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <ff7b68b2-5bba-2927-e3f0-f3062862c466@suse.com>
 <YXaGxX3J1aB39mSG@MacBook-Air-de-Roger.local>
 <dd2929fc-dc1a-1c16-5954-6894766d9dda@suse.com>
 <YYEa6HQGR1cHJBw/@Air-de-Roger>
 <1c604641-0dd9-6912-7bd5-02ee1cb868b6@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1c604641-0dd9-6912-7bd5-02ee1cb868b6@suse.com>
X-ClientProxiedBy: MR2P264CA0125.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:30::17) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c5951300-1efe-4acb-2f23-08d99e116035
X-MS-TrafficTypeDiagnostic: DS7PR03MB5607:
X-Microsoft-Antispam-PRVS: <DS7PR03MB560745231187CA412B7FBF118F8B9@DS7PR03MB5607.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 6yz36QQaXIJA1XfIYMJ3Vqgc2+feInPMTj3sIDxikeRVmoG9LHtQcWJHq+nvNexnfkIMzs/pmdY/l0JQvroppptrQMlQwSjAFtncTsYCOHbub8H8ZUpvGRNubz/gB1ohOHK31dH+XcFqaANkt4Tv53Zo0yi0bpdrS7XmabCjkdxMsjIOdu7w5Flrrq8seW5NfOyZ8y0gR6xFpX/fseTE8gGWjN9qPeX7OeXZNST64hCDwUHXPUd6O6X+cNiL7cdJXl7t+CcMZV00doq9Og9ZdpRbz1MVwo5ShIgSzwlCqkfHGcqb9QJxYWNjqH8Ty5DzmvEUtsSixIfzsa1c+sPyLDe4Ty60CG9/lsqXfe7ESSuQpUMzHZ8g+lcqCoTzqyOzPCV5gVrRMGYSEOM/PQ6qZ+x9VxSiZUfCwbwGg2nm49SrTwDYyZSBOyAH+rNoAs8BKIVYvGk3R8VGNUON5kxrZwByfaSuFk6X4lE7ddU2i0sBwIutUhr4c46BrIsAgR+O8YaEyZ5LIW8qVowaQhT49l/azFbbNxSMTX9cUiUTzFmVMo2mhH/WlNdTgmRLIT4ma2ipM6ct0NdVVtEvWV1pMVlA0+7sXwghbFXPAtnp94U7B5YYvPGUNs2Aru0seSGPpEIq3WiRZmWA/wVTyvdgTE3xoyj1cptoG7wwE3Ifq85J28Z93VE+HCM+Y36fqxWGWp2JwWLYyMd0FerrwvrNxw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(6666004)(26005)(86362001)(316002)(66556008)(82960400001)(83380400001)(9686003)(8676002)(33716001)(54906003)(6486002)(2906002)(66476007)(508600001)(53546011)(66946007)(8936002)(85182001)(6916009)(4326008)(38100700002)(6496006)(186003)(5660300002)(956004)(67856001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q1hFcGR2KzNzTUp6YmdlSE5qTkdhY3lMdlpRcEVONjB4VUtZMjJPWnJHOGYr?=
 =?utf-8?B?c20vMS9aWTBwOVpDODVpaHFxYmlJVTM2SDVVTEk2VzF5c1UzckF4V1FoeCt5?=
 =?utf-8?B?WE9WTVlKKzJrSHhhSmc1K2s2SUZZRnhuWHZxSW1kK1NDT3V5ZG8rcUpxTzhD?=
 =?utf-8?B?eHkzcGZ2L0tZS1ppWnVBcThjalY4REMzb3k2THE3eTRDU3B6Y053WjBxWXpq?=
 =?utf-8?B?dTM1cDFKNjVmR05abnBzRTV3bmc3N3JTRTgyYnNqRk0vcHJSZ3VNOGFmZi8r?=
 =?utf-8?B?aWg4d1VzenJESVM2RDQvMjJ2elAyQ0pmbHhtV3c5U1pHNXpoQVJPbHVTZnZa?=
 =?utf-8?B?YXBkTzl0RDBuaUxDeXgralhhQ3p4c0lpY3BzTHdYRVpLOTZaNUFxdkZuQ3U1?=
 =?utf-8?B?L2Y1NTg4VzJvNnc2SG1MVUlSLzgyU2Z0SUY2bVkxVFBubVdrVWhlZG5zVStw?=
 =?utf-8?B?cVcySkZUWmJCOVBwRTQ0dXI3aU5wSWc1WkZYK2JCQ2JsV1hkMUlpa1dyaE9v?=
 =?utf-8?B?MkZYeHFzbkc5VU5mZUFpZTM1NjV5bHdkeE84aHBVS3FzUGFrazJCMCszOTJk?=
 =?utf-8?B?L282eUZTek1nbllyZTZBT2JObStDUVZ0cmtlcGpxQ3VuSVN1M2dHVkR0SUtx?=
 =?utf-8?B?WFhvNDV2di96dzJqd0dSWFNuUDhiTmFOTHNSclZFRlkycFFrNk9VMmxuYi9y?=
 =?utf-8?B?eFZINGcwK1B4bXBDL2pmampnWVI3YzEybGVaeVgxMnpmQlZDUkd1Wm9yeHJ5?=
 =?utf-8?B?ZjFaY1dMalBWSHQ4Sm1KSHRlS1pBRlVBUW1DeVNTZmxMU051YXM1YklobHNq?=
 =?utf-8?B?bzRkRlZkWStoTVRuYTF5RW8xSmxtUndqT2plaWNTdWNQN2o3djlCZUdvUitt?=
 =?utf-8?B?Vk9DbkZvdzBaVTZpVS9jc3FORHBWbVhZaDQ5bXkzY2hjQVpZRWs3ekNCSmtp?=
 =?utf-8?B?VG5FQ25kK0xwNStNY1RLRnduc0p2c3Zxa0ZhNDZNR1phdThLNCtEYnhYdUEx?=
 =?utf-8?B?NGRQWkxWeFR5cEs2MkZDTVV2TmpYdGNKcVRSbjUyb3lZSWNuckxUQ2hFSFdY?=
 =?utf-8?B?M0xIZFJOOGFkRzVscmZhYU9KMFBtNWVsbldQMWxqQ1RqbnVDN2hsdHE4UEl2?=
 =?utf-8?B?azZlZWUxSWw5eU5idmF6a2VWMDFOZ1U1VTFaSGxRRnVadEd2VEwvT1lUTDlv?=
 =?utf-8?B?dVFMMElpRkNJL0g1THZsZ0thR0dZRVhJUmpoTEZhcXFGTVB4M1hxelhJSGVB?=
 =?utf-8?B?S2tLcG1jakFLbjlSWnVubEdueTNVd1R1bkNKd0gwTkFmQWdONHNDckowZUts?=
 =?utf-8?B?eXAxUDlGYXZUU3BrOUE0a29yRk5MRjYzT21Ld3ZpZ1VmU3NFU2diWjZRSkJ6?=
 =?utf-8?B?bDd0amZRS2dOQnQxNkxYb2VNckNCWU9vVmVZRnNJVFVuM1hNenFYSTBVMnVH?=
 =?utf-8?B?OHBqZjJibEVodnJ3LzNFU3Rya09WbWdQbXZUeDdNemp6WmpIdm1ya2ZmNDhu?=
 =?utf-8?B?VEtHWU4yYnZiNlRBVnZPOEhUQmRrajltdmdQWHRMWXQ0ZzNBQmlwcUluRGtR?=
 =?utf-8?B?cG9YS2hzTHh2ZVRYRi9GdVlEZ2hxNHJJU1J5VzF2QUUxalRoQXAranBwREp0?=
 =?utf-8?B?MlN5RFRHb1Mwc1JIdldBbXdGaGtXSHVQK2RESThSblVMWk12RW1OVCs2cmVy?=
 =?utf-8?B?cnVaaDdpR0F1Y0R5MXlKS3hONWdOeHdnaXFOZDJHQ2F2b29WRnRKcnM0U240?=
 =?utf-8?B?WUpVSUd0aEtkaDR1TE9GVGNtc1B4cWZBb0htUnRoRi9WSXE4SHJkWEpjUTNp?=
 =?utf-8?B?eDJjT0ptOU15a2h4QTR2alFrUnVQMTBtRkg3UEFmTEVNeVI2Y0NZMkdxbklU?=
 =?utf-8?B?ZEtVZStOcGdkcFJRL2szOGhFbnBZNEZmSk95Rk5pc3NzQWlHZ2RIcEVBSGdm?=
 =?utf-8?B?S3ZpVTFlaURqUmJ3Q3lCRTc2bTNYKzlqWEwyZndYTXZ2eEtkSGFaVTJBM0c4?=
 =?utf-8?B?dVphREViVWhrN1c1dHF4blBNTUVRSnl6RWZBWUFCZmZGUUkzQlRxUmp0cmk1?=
 =?utf-8?B?VUpSem9JZUcxNDNGWEpSWXplMkVENXFoZHZJb2lDU2swU3ppVWlldWxWRzRO?=
 =?utf-8?B?SGkvTVVzTzlLejQ5Unh6SnhJQ0czdmh6ZE9TVmh0NjVSOGJQU2VPb0Z3MU1l?=
 =?utf-8?Q?fRwshO1+kPB+wBPGIfGxw/A=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: c5951300-1efe-4acb-2f23-08d99e116035
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 14:59:31.6412
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4R5cqT/WwPCo1vJMTrR9sAMJ7mN4GA/jrge70ZRwrHcro2l9AEmR0hM1MVwCgIAty85d4MDnZQ1WvZH8SERTYw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5607
X-OriginatorOrg: citrix.com

On Tue, Nov 02, 2021 at 03:00:24PM +0100, Jan Beulich wrote:
> On 02.11.2021 12:03, Roger Pau Monné wrote:
> > On Tue, Nov 02, 2021 at 11:13:08AM +0100, Jan Beulich wrote:
> >> On 25.10.2021 12:28, Roger Pau Monné wrote:
> >>> On Thu, Oct 21, 2021 at 11:59:02AM +0200, Jan Beulich wrote:
> >>>> The two are really meant to be independent settings; iov_supports_xt()
> >>>> using || instead of && was simply wrong. The corrected check is,
> >>>> however, redundant, just like the (correct) one in iov_detect(): These
> >>>> hook functions are unreachable without acpi_ivrs_init() installing the
> >>>> iommu_init_ops pointer, which it does only upon success. (Unlike for
> >>>> VT-d there is no late clearing of iommu_enable due to quirks, and any
> >>>> possible clearing of iommu_intremap happens only after iov_supports_xt()
> >>>> has run.)
> >>>>
> >>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>>> ---
> >>>> In fact in iov_detect() it could be iommu_enable alone which gets
> >>>> checked, but this felt overly aggressive to me. Instead I'm getting the
> >>>> impression that the function may wrongly not get called when "iommu=off"
> >>>> but interrupt remapping is in use: We'd not get the interrupt handler
> >>>> installed, and hence interrupt remapping related events would never get
> >>>> reported. (Same on VT-d, FTAOD.)
> >>>
> >>> I've spend a non-trivial amount of time looking into this before
> >>> reading this note. AFAICT you could set iommu=off and still get x2APIC
> >>> enabled and relying on interrupt remapping.
> >>
> >> Right, contrary to ...
> >>
> >>>> For iov_supports_xt() the question is whether, like VT-d's
> >>>> intel_iommu_supports_eim(), it shouldn't rather check iommu_intremap
> >>>> alone (in which case it would need to remain a check rather than getting
> >>>> converted to ASSERT()).
> >>>
> >>> Hm, no, I don't think so. I think iommu_enable should take precedence
> >>> over iommu_intremap, and having iommu_enable == false should force
> >>> interrupt remapping to be reported as disabled. Note that disabling it
> >>> in iommu_setup is too late, as the APIC initialization will have
> >>> already taken place.
> >>>
> >>> It's my reading of the command line parameter documentation that
> >>> setting iommu=off should disable all usage of the IOMMU, and that
> >>> includes the interrupt remapping support (ie: a user should not need
> >>> to set iommu=off,no-intremap)
> >>
> >> ... that documentation. But I think it's the documentation that
> >> wants fixing, such that iommu=off really only control DMA remap.
> > 
> > IMO I think it's confusing to have sub-options that could be enabled
> > when you set the global one to off. I would expect `iommu=off` to
> > disable all the iommu related options, and I think it's fair for
> > people to expect that behavior.
> > 
> > I'm unsure whether it's fair to change the documentation now, we
> > should instead fix the code, so that people using `iommu=off` get the
> > expected behavior. Then we would likely need to introduce a way to
> > disable just dma remapping (dmaremap, similar to intremap). That
> > would make a much better and saner interface IMO.
> 
> But from an x2APIC perspective it is a problem to have "iommu=off"
> also turn off intremap.

I think we could log a message in that case? (x2APIC could be enabled
but iommu explicitly disabled)

And maybe expand the documentation to notice that disabling the iommu
or interrupt remapping will disable x2APIC support.

> And indeed the option has never (fully)
> worked that way: It clears iommu_enable, but not iommu_intremap
> (nor any of the other sub-options, but there it's less of a problem
> because they're not used in isolation), and iommu_intremap only
> may have happened to either get turned off later or to not get
> evaluated in at least some of the case.

While I understand there's some baggage here, I'm not sure keeping the
current behavior is correct. I would rather have iommu=off to cover
all iommu functionality, and then we should add dmaremap sub-option to
disable remapping only. I think that would be a sane and logic
interface for users to understand.

We should also note the implications of disabling interrupt remapping
regarding x2APIC support in the documentation.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:00:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:00:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220335.381561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvH0-0004Ri-I0; Tue, 02 Nov 2021 15:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220335.381561; Tue, 02 Nov 2021 15:00:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvH0-0004Rb-Dd; Tue, 02 Nov 2021 15:00:26 +0000
Received: by outflank-mailman (input) for mailman id 220335;
 Tue, 02 Nov 2021 15:00:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mhvGy-0004RV-Qw
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:00:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mhvGv-0007bD-RN; Tue, 02 Nov 2021 15:00:21 +0000
Received: from [54.239.6.184] (helo=[192.168.7.68])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mhvGv-0007VN-Kx; Tue, 02 Nov 2021 15:00:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=TAm3Jt6zRQo7Lr3i5Zye2iD7SiafJaPanO5ZKAcddLA=; b=kWlZlPbeyNmvPmOyP+JqK/wi6v
	MHBgNZfW7Ly1qe1S6bk9mSJqsxt4K40ksZd+1C73a5B4SXFkYVjMYFUW6Vz5hXZ3DMw7pYFx5XNOs
	PPuRLxT0FjW3PGmgfPHqK1dKU5WKjeS8s3mt2SDTD6Ykzoy7Baf1DgAzdB6P7K8IAPBM=;
Message-ID: <4dccbbc9-0235-5cd5-1670-13bd51fc8b6a@xen.org>
Date: Tue, 2 Nov 2021 15:00:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH for-4.16 v4] gnttab: allow setting max version per-domain
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>
References: <20211029075956.1260-1-roger.pau@citrix.com>
 <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
 <YXz579WNpHe7aO91@Air-de-Roger>
 <3715026d-b8e4-9940-6cfe-0ccf042cd07c@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3715026d-b8e4-9940-6cfe-0ccf042cd07c@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Andree,

On 02/11/2021 14:34, Andrew Cooper wrote:
> Same too for
> evtchn, but we've already taken a patch to knobble fifo support.

I know that Amazon submitted a patch to allow disabling FIFO [1]. But 
AFAIK, this is not yet merged because of disagrement (?) on the approach.

Cheers,

[1] https://lore.kernel.org/xen-devel/20201203124159.3688-2-paul@xen.org/

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:01:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:01:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220340.381572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvHd-000516-R9; Tue, 02 Nov 2021 15:01:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220340.381572; Tue, 02 Nov 2021 15:01:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvHd-00050z-NJ; Tue, 02 Nov 2021 15:01:05 +0000
Received: by outflank-mailman (input) for mailman id 220340;
 Tue, 02 Nov 2021 15:01:04 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhvHc-00050k-On
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:01:04 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 138f67ee-8913-4c2e-bbfa-c90b37f6a2c5;
 Tue, 02 Nov 2021 15:01:03 +0000 (UTC)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2108.outbound.protection.outlook.com [104.47.17.108])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-33-WUQ8GZJ5MYG4zeVjyazWLg-1; Tue, 02 Nov 2021 16:01:01 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4605.eurprd04.prod.outlook.com (2603:10a6:803:65::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Tue, 2 Nov
 2021 15:01:00 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 15:01:00 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0065.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.17 via Frontend Transport; Tue, 2 Nov 2021 15:00:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 138f67ee-8913-4c2e-bbfa-c90b37f6a2c5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635865262;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=WLVG0DZzDQ0YMaC5fWsZ1L8TPeh5nFejUmjXOzwdKxE=;
	b=fVEiyf0oMOIi9LrxCJkvb/z6ezehHTP48DhwnoaC6vzMZI5IqxMJkmJiK6+6qUnWbaX3tN
	Hznfn+ikUdQb+piguVO5GTZX00Je1BmnxMTfciffKm1JRA1c6UrKdNMmWzlstSq5RCABWb
	WKITsEcP46jfKAyQeVgGYNAmO0Cy814=
X-MC-Unique: WUQ8GZJ5MYG4zeVjyazWLg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KQAFrul9lJeQGAa1zb311hjo+5nEaftr7HItlyxMppygG8Hp3PB2GT7JfAjv+owj6skqgCiqcrAOqBIdDfKA8hlZPKF0ieLA0JWrL9CeqLLWz67Ew7ghOxTfK6dQqFa27XQs8ee6jNDgROaSOH6UkQ2mCUqyo4clZTNzPnWUippLAEuLyMuzfC50XWxHiLsMBC9mMbQIkEgxb4Ku6uM3P1YN2GZGPFImq/Qlv6qY9LtuCBsuflMeEIbfKmlPzYwBzYcil5FbEP7zD02SoEQFYqKAXUNSyruR92AHArWo/jH5aOAE2ykmrLkHmH5ZuaQCp0fHjhBYzK/Bc5uDBel7LQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WLVG0DZzDQ0YMaC5fWsZ1L8TPeh5nFejUmjXOzwdKxE=;
 b=K8/c9NqGwMyEYKzqiRQHryFCWnFCqSgRnJFfqXQ3B/K0W4vC0aibHSyWIsMk5npwoEO5IfKsdHrNjVYzEVYuhDevMRr47JKivM6oRD1HnC9CZtAk/bjHDtqzzEVoXaToS7UZdJ5XdWzZWCV6rB7qiTy84LC6lHKTrIfp6KfeGeVlim24lcs/1sK2pTS+m7QUesB6maj+AIUwwxU9D0Vl1V09NBU+ePA1ICUuFtd03JMSfNuU0neMnjY7rxJW0tdvXJd+wooGXaHjNgrLKu7ZHUfcuP9w4sAKaYt9GLBvpPIStgWXb1nce7p2cNpD/CitN4r7pdrqf7cpTtnhxAAviw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8a717cbc-fbf0-d3b6-e05b-4c80f587f37a@suse.com>
Date: Tue, 2 Nov 2021 16:00:58 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 2/7] crypto/vmac: Simplify code with byteswap.h
Content-Language: en-US
To: Lin Liu <lin.liu@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1634897942.git.lin.liu@citrix.com>
 <97aca2e39ff1eefdab1e0b3440929958e4b99892.1634897942.git.lin.liu@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <97aca2e39ff1eefdab1e0b3440929958e4b99892.1634897942.git.lin.liu@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P194CA0065.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:84::42) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 80e23df9-902c-4156-ad93-08d99e1194e2
X-MS-TrafficTypeDiagnostic: VI1PR04MB4605:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB46058B139E9E9F17A3BAE137B38B9@VI1PR04MB4605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:813;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	fojQgv4RJeolzEUuhtEFWXXavSahThA54CCwfYguc9V/zTFAsePGZV84N/iua67aRJ0pL60zYLD4+Pj8bTIVXLbLfIFnnRgJlmxBdWLgwUtAFzGpYXyyji0jDE+cXDlRtpLkMTIYAsBA6dw2FYagIpe/OIo6vLBu2/mmq+ow1XrfoXqyfCgoM8eU2l5pr8xJUuH7dC638Ul5lsU1DVUYzIaBTrmVZ6QiD3gFqHf/q1VGucApbq7cFyHrz7giLPY282dl6vbXieuQjOhiBMaRjpgdewvAIlFEtqdwIx22hS8AxnVmwyGqVFQM2kvyAOZvTs71I7JMrgUbQpfwuvJtwS2C0SfFQvlfdthptgb34Xo9bphLIS2Liz6W1TbIJYyMRvPQPO+ZdQSDRYz0+SGXhHoZW0iXYhcBDzD6BmR5Vc0/ZE4H0vFdNzkKe6kzy4VzZ6Q6eR5Nvh6KmjrQOB4Jx2VEsfJwhPkFOku8Csf/rvH7b/S3iH0m2OenVBHKcwx3Db8gO/nCMNuuKyeBUYqCeJ0vpYsmAfoNCR6uJQ78KRrcX4SRK9LompMIwGSWEoNW27yaBTPn7n7lYTS0fx0M+4ViLiV5ZZbBQQDMzCNGG8aHBPaRC2daLQ6m0oJ7zNlCeuQeR9Dzw/9rsDjexHcc6eTwBZKAx1Xj5KP2Q07XIcM97pkR9ju7BIpmpAkE8VBZmLciaW6R+Tr993bIiMQFUqhbAMzis1wvS3EnZ6CXB7LmvuWg8BqjQO0QIvMPlqAI
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(16576012)(86362001)(316002)(66556008)(31686004)(8676002)(36756003)(558084003)(54906003)(6486002)(31696002)(2906002)(66476007)(508600001)(53546011)(66946007)(8936002)(6916009)(4326008)(38100700002)(186003)(956004)(2616005)(5660300002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NWxtRWJMK1lwM2RBbTJBT2JXdWkvZnhLa1JsdUtZYUpyendyamlrL3ZMVEE0?=
 =?utf-8?B?SGZJT3VvK3lPaFJnZG9HM0ZrS2o4cDdxY1V2MU9RTG9HVlF0VXo4VHVkSmVR?=
 =?utf-8?B?NFUwRWVDdTNIK3hJWi9aaHJSSGk4eWExY1ZpTWlKUUlseTZBTUJsRjdRaW9O?=
 =?utf-8?B?VDM5eVBJRWxhK0dzbTdqY2kzR0xKQjNNZWoyc2lnTUh5QVc2L0x0NitEaS9i?=
 =?utf-8?B?cURnbTl4VTlQK0gzRjE1WW9EbDhHalE1dWl2Z3owamoxNm9NUEw2K2NZRTdW?=
 =?utf-8?B?MVJzQlZ4QW1YNDFTNGNQUUJzdmhFMFJNOEJNQzZTUnJvSlJUNmJ5UHhDWFYx?=
 =?utf-8?B?c0h5dGtMZkZWaERQSlNrWGVxMHdkS1JIMjI1S1dnRkJ0N3hqYUNaSXFGOWNC?=
 =?utf-8?B?d1UzTHhXYUIyaHcwaThmUmRVcmdoVy9Md0ZPd1NtbTdsZWpwUEJsWm5lZCtt?=
 =?utf-8?B?V1ZHUWdGNmNUdWV4dGZFVjZWeURLNi9uRW5jMm5XcjFiWlFmVHVqQXR2emQ0?=
 =?utf-8?B?TVJXT2k2WjRtbGVNWUJSNitUVlc1MFZ6UkNobGROM2pTUHZRUEd6ODhsMmdM?=
 =?utf-8?B?Z0oyUVJlTk1Yd0ppWkcweWF1b2drcXFHNFBHdUptTlk3SkJyd3N1REkvRzB0?=
 =?utf-8?B?T09sS245ck9CRmlWdFlOWmsyTWxyb2R3clhITjBndXBUZWJVNU9uNDh5UHFB?=
 =?utf-8?B?YTFkRW5kOXo2L3RoYnVCWE1FS2VtK29HVCt1a0d0aGpERVFlUFcvdkhzN28w?=
 =?utf-8?B?RUx4Y0IveHo2aGNtNWlOV2E5L0x4RzBjV01wZS9pTDM1TEMwSCtUeFNRTlhU?=
 =?utf-8?B?ZjNIeDBvTDBKbGNFZWJLZDgvOWRzV3l5OFVmdHRwQ3NJcVZWTU0rNExadnFV?=
 =?utf-8?B?TWZObW9DTm9OVFVGakxIRVFESE90clNJRm5kR29sVTdkcEowbjd2TENsdWg5?=
 =?utf-8?B?U3F6alJuL3IrNUVHTE41cmdhQTdXVXN5RExxMENaeVV3UkxNRnJCTXQ2L1ZY?=
 =?utf-8?B?dXdPTlE4aXVCQnRVSGFhVHBaR04xMVNleHF0VUZJdHlkZStmSUpYRHdEQk8v?=
 =?utf-8?B?ZkdGY3pLcW5JZHhBekkxaFNBR1k4QzZnakRFcGVEUUE4TVZLL1k0bms4MnQ3?=
 =?utf-8?B?N0NuaEY2OTVISkJuRUtGa09KOWt6M25pblk5T05GZUZkTWdHbHptb2ExSnFL?=
 =?utf-8?B?b1FrbE4yOUZNaHBkdmIyZzAwbC9jd3JaUGdSbjFXTmNNdjBKOU5SWE52cmxo?=
 =?utf-8?B?aWJnVFZIOG1DN0NsQ20yZ0JVQXl3TUEvdlk0QzZXNWNUeElINUNQV0JSN0J1?=
 =?utf-8?B?dFJBTlhsRCtjTks0U1VoTUs4aVRZUWgwY29KS2paYUsvWTc4WUZrSXpXOWVJ?=
 =?utf-8?B?QytJWERYNUszMUR6cWZmMDFPYUtkNkVOT1BETzVjaW14UEZCbmlFbFBkUHdR?=
 =?utf-8?B?ZmZrTGVWNGNXYUgxSXMvR09CN2VSREVpSE52ckxRaFdYMFlwTGdpRmZ2QVRV?=
 =?utf-8?B?eUllaDhNR1RCbDEwejlabGo2RGVPTExpdnI5aFRaMnJpM1pWWjdFWWN4bzhX?=
 =?utf-8?B?ZXlUV1VLQndycHpxOGh4WnlIVUFoTVFqR2pDQTR5Y01CcEJ0NnZFUHRGM1Qx?=
 =?utf-8?B?UEFUdW5hVDBWbzhaTWdST0xXSGdWS01IWUtzRURCSDlhMnZsVU90QU9NajYy?=
 =?utf-8?B?U2Z0ZkpEQmRUU1pUVmtiL053U1BKMG5rS3AyVkhES0g4cEdYYVNzUVFzN1NL?=
 =?utf-8?B?N3M3dWovb1pCQld5NloxMjR6OGZYKzNFLzFmVzZ0ZEEwNVM0NW5rZW45a2h6?=
 =?utf-8?B?SXZtMTU5QVRXakJnaDk4VmppRjhoOGw2VXFTMGZXTUVtck5Pa0YrQ3NkNmh2?=
 =?utf-8?B?YlhQYzdwUkVITDFOdlBqb3QyaHc3Z3FJYUsxWkFJK0g4ckVKb2pXYXQ5K3ZU?=
 =?utf-8?B?b2VibjhveUZlL3VqMWVLRHBSLzcvbENXQXd2aXU3UmdtS0Z0K3ZQOXhiYSt0?=
 =?utf-8?B?UGsxRGVQNHIwblY0OTk5d1JlTi9CQnR3ZVl0RUxiM3B1TUordGo1TThNaTV4?=
 =?utf-8?B?Y1A2NWNIVjE0d2NNOFF5anFLbHFHRGlWSURualZKMHB2UlNZNStTeTFFWkI5?=
 =?utf-8?B?aXI4eVM2MVdBWTUvNVowUjVOdm5oYzVNZzNpaXR1ZFhjbU9HNGdiR1ZyQ1Vi?=
 =?utf-8?Q?sLDOcRt68cjG5/W0Cou2Dl8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 80e23df9-902c-4156-ad93-08d99e1194e2
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 15:01:00.0841
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pADbkwLy1SvKzKjUiY87cb5Q9eON501vu2kb2CCoCH+k5K7/Z0ro7mV0n/mmN6FdNtG9QCvIDSCKZLIgovxBSA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4605

On 22.10.2021 12:47, Lin Liu wrote:
> This file has its own implementation of swap bytes. Clean up
> the code with xen/byteswap.h.
> 
> No functional change.
> 
> Signed-off-by: Lin Liu <lin.liu@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:14:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220347.381583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvUf-0006cX-2k; Tue, 02 Nov 2021 15:14:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220347.381583; Tue, 02 Nov 2021 15:14:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvUe-0006cQ-Vc; Tue, 02 Nov 2021 15:14:32 +0000
Received: by outflank-mailman (input) for mailman id 220347;
 Tue, 02 Nov 2021 15:14:32 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhvUe-0006cK-7o
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:14:32 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 93cebd58-3bef-11ec-8558-12813bfff9fa;
 Tue, 02 Nov 2021 15:14:31 +0000 (UTC)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2054.outbound.protection.outlook.com [104.47.9.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-16-Zzi8EBiHPtWx2FO_Iu5Kjg-1; Tue, 02 Nov 2021 16:14:29 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7039.eurprd04.prod.outlook.com (2603:10a6:800:12b::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov
 2021 15:14:28 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 15:14:21 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0018.eurprd06.prod.outlook.com (2603:10a6:20b:462::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Tue, 2 Nov 2021 15:14:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93cebd58-3bef-11ec-8558-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635866070;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tVBw7AMQdgSQTvRHgIYBfd4vmJagVng9eSCcaCzr0cM=;
	b=Ix3M0TRORhkIThGhinkpgrUiAE3I6brZHOFdEIfv4AuOFVbXO+6+TC37A4pEzfQfPWlVWj
	hdXU9naohyaUsqZbqCeFaomYMDmnderou9eTXbNHSIa05SpLQjAciOUZlQyjw7qbyrb5PC
	MEZIZNMueYWBM3PGE4OPZkD/5Xd4N10=
X-MC-Unique: Zzi8EBiHPtWx2FO_Iu5Kjg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZrMBed56no4gBGaDFlwWfcR+OfLal5cszJV2HLqQBzZAHU+U5te/sSQu3BT7j1xbN++J+ISRZYpyjmLtUfs1jnx/jLAao4RsbMxcKf2k9igfN5UvII29YnF4gOqUgUpyoGuDZY55jA0zz+tLm/19WghGCS0xVDkhrY0pW1IUyCOVACSpQ42wDSRdLraILTPYSSUxo4zj+mzvlJnQKEQQo7QGOCzm8T0zI/o7971vhdSIs5a5AWiDGRKuf3WNgGjONYH0knAI6IMPwUtvjUD9+eZeBWjZUpGR8srOrkRPF5o9tAddX6sJGeAAh+UDAMHVu7Y3XjFUJ5oEHenICVZLwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tVBw7AMQdgSQTvRHgIYBfd4vmJagVng9eSCcaCzr0cM=;
 b=Mk0S2wYsbRKFF9V4CuN3YvXlOlqkCHrAKY6CmxpfTMQyHcIGf6FBHJ0jsNklJGjUOF/LK1gSmd9Dos7WpgMd0Y3baK4JSQC5kCFpqMHkAyTuOXnHPrRGmOMEvr3WvxjNaEbl/f/BOLi1xKKAMAaPHi6K4dCJW5IvYklqvCglXzJX95nYr/Awj0aeDCEjfQ2R7le4VYVHVo8wv6HPCDLJaqnhPHXFXKiRvvI5FZT4g7BLwkQlmCwBjbRBh4EivUihYccq3MHSqJzQRnXhJU36vdHSlsbdayw+yBvFwAkFmrwioz36USSrAbBYOZ0WreYMI8WLLna5w8iWvuX7Es51OA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <29c59040-a2bc-69d3-db02-1345b5aa2b8b@suse.com>
Date: Tue, 2 Nov 2021 16:14:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH for-4.16] x86/shstk: Fix use of shadow stacks with XPTI
 active
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211102143935.17473-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211102143935.17473-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0018.eurprd06.prod.outlook.com
 (2603:10a6:20b:462::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7f26de23-b21a-452c-1d1a-08d99e1372cf
X-MS-TrafficTypeDiagnostic: VI1PR04MB7039:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB70392BF2021F427AAA350455B38B9@VI1PR04MB7039.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	yLt0RLs/ROISvZ6gqI0G7aNKOVfI5f1zvVaqbbeevtWXh1BPLZ5JRRm3rMLno/uP5CgqNoPifYUThA91MXpL//7b4EL//Fej/exSpy0Lyn2LhMHzBxz8T9WqiHcDcCLhOo/c5DuSZ3BRK+8mPZJkz1sdi/L5ELkDnQduT/0B2CoKnMfdmYw9fNTUqe4biMjq/LXKk17Ol/DHbSAvk8hAdxYKZgjHZ2tyho+RXsqX7AI2JsDLkwaCNfbIGQ6kXQ/CerNqitpSPK7emDH9T7aD/VM9EtSpGpNIFOHY7vyFof/BBWRoGCoQh2wHAY8KY4njyaSx0maH4baGYJg6L1L+pJC4rVMMrTkLHeOOc95iCk2PIqPQoUK45nNeXA02ETbMNeRT7uBxpzXeUuotjqFue2BhwfENxxNq/xdjMpKTSpniMUh4yTItLh3EwQYpfR8Vcc7lKLBlFpDz5SdDhcpyg3b2Zb/O9y5LSzhyJsNvKRC6x2KPVmjZNfReU39E2YlgPZEB6WIc2pwWAmCzQ8DOrUaX4TcWZcZmLhdlKV91ND1PXKILCSFmMsUStxObhtsUxq3SaVnbWQXfWBfHjS/U/c+kVXZb4FiaxY9TQ0h97iIc4Azhxs847J2O7haHoDImsjvCLYkFJJhdE627oNwInpG5cgyDaglhH1KWtd2jb+ZA5EEgZEtRIt+36oRFG1EyCxj+S7Dfy1RkJkW7eQjGKF08r+1oQ80htS8uVgc3uWMmAwkkyxWvqxQMboL1WHVk
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(6486002)(54906003)(86362001)(66556008)(66476007)(31686004)(2906002)(66946007)(31696002)(36756003)(6916009)(8936002)(26005)(316002)(8676002)(186003)(2616005)(83380400001)(956004)(16576012)(4326008)(53546011)(4744005)(38100700002)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RVFvZDdOK2NtNWFXK0t1K1ZlcC8xdFNqUmpWZEV5S1N1R2EwOWN4dk5vV0FY?=
 =?utf-8?B?R0lib096dFpkbjFQZ0Vyc29Kc2ZJTDM3cnpEWFo3QW9seDNSYy9jOGRhUy9u?=
 =?utf-8?B?cjdaOVNSdUwyelpxVWhmWC9hNk1KdUNTRmp6QlM2dWRJd3d4UUVvVW44UjJy?=
 =?utf-8?B?VXFTVlNNM0JWS29zUnpTRzZuWFN2aVB2eEhud3lNekttZHJ3VHVUMmhqN0E1?=
 =?utf-8?B?QkFiYjFOOHZqazFQRWdtRll1a29ESHhNWU1mVDF2YmNqOEMyblZ0MmR3MlNj?=
 =?utf-8?B?LzlpOUxoRExHcUxKeFFNRm1PR0dBbk9Hb3JvY2RMNFZUWEliUXV4eHlKZ2tT?=
 =?utf-8?B?Nk44SFlhVTFMVXFTWlBPZCtTYXU4NTdaa0J5Y0ZJaGwrZ0RTaUZqMWg1SGRo?=
 =?utf-8?B?WXk5VTFsS1NxYk9DT1F4WllMQitldy8zdGhLcjZReVhXRTFLbS9CNmE3UFRl?=
 =?utf-8?B?OTFqMW94V0hmTEZMVDZuSVlvTXhSaEwwQ3pvcFBNbncwdFlxVGhiUXoxVGl4?=
 =?utf-8?B?T0FSSmlWTkFjaHNSakxBUzRqRVh5aDBPelA0QUkxVm9XeHh4MUhXcDNYbjFl?=
 =?utf-8?B?Y21DUHlOa3pidGhyZVk1RHpyMEZ3blNoUmRmQUdyL3Z5NFZZbjIzajB4S3k4?=
 =?utf-8?B?djJrbTV2RnRXOUZFUWtjUzZCWkw0OU9GMjZQaGhVY3ZpMkRJRU1VMlArSDlt?=
 =?utf-8?B?RFRpTlFNTDFjZ1JnSE9KWklrTDBkYlhyMFRLYkZuejFBTC9nYjlXYm12bnhw?=
 =?utf-8?B?SDB0YlVMck1vWmRtdWl3Q3A3UmkyTko5bUVKWWxON2Y0YmdOOEFiTlVLMnI5?=
 =?utf-8?B?N0pscTNjYjU5Q0tEVngrUU1mSXJqVHE4MGZlWkVaRDYzNTFhOXhyR3lKUDht?=
 =?utf-8?B?VzlmQkJ5aytZTlNoRldIM0prelJxWkZqYVhSQlpFUU9iTTlBaG9udUh6bXhR?=
 =?utf-8?B?aHJhV2Y4cWZXYld0dG5FM0FXa0daT0dTZ3pqR0VMV1lvNlpOVUxpRnFRbHRS?=
 =?utf-8?B?V2RiVTdpcHhYK3pDdVQ5TWZqQ3hkbTVrVG5ScTh0NStXNDJTelFhTUJQZ2NB?=
 =?utf-8?B?L01YV3Zwb3dJL05mUi9JS0NBanA5SnBYcVRTdmNMOUkydXE0OXg0TUVzdEJ4?=
 =?utf-8?B?aWJLdEFlZEJzK25jNm1JckNobFlhS241OS94b2c0bHJMV2lld2xqcXBPZlh4?=
 =?utf-8?B?aXdqRmMwRC95WU5oZ3B0dmExZXMzODBkQnZ4QUxCeEw2aW5KQVdPaTF6MjNi?=
 =?utf-8?B?bkVSN0ZjSGxwRGIvT0daTjZ2c2ovdDRtczM0MmsydXk4MC9wWmNGbW9taWRB?=
 =?utf-8?B?T0VGbkRiVzNzTDdUYW0wdHpZY29JMDVPNWt6SnFKRndFRmZOQXhsWU15SHVF?=
 =?utf-8?B?RERWbHNWdGxMZWtNZmYzRUQ4ZHZEa25GWG9VTEhza0F6UW5kUTI3TVBxbzA5?=
 =?utf-8?B?V0N0d0owT2lxWVhHNnlTcXl1ZTlpTUNJNURRcGpXUWpUcmhYREFobEkrTzVF?=
 =?utf-8?B?NWd1c1VPY3JER05wTlYxR1ZJSWp5b2pNbmUveHhUc1VjZVFFSHRhWTVUbGdJ?=
 =?utf-8?B?VUd3aXNRK2I0QmpSSXZwdk1UaUcrdUVIZVcwb2tCRnErOXRFL2RIY25vM2ky?=
 =?utf-8?B?bDN0aVJJdGxpOEZablpOT1gxT2tQVTFoOHBZWHRMVnQxZDUxK28vaVQ2ZWFC?=
 =?utf-8?B?MG9sampQUlZnTHg2eE1Db2hJdE9XN3IzOTRxL3QvU0RxUmhFclpTblB3cGNO?=
 =?utf-8?B?Zno2NXFidUpHcXpYZlB6L0ZkN0FWd2J2ZUlsTzJOWXM2WmF5eTBPY0FxdjUz?=
 =?utf-8?B?RTdDcnJIa0t1YUZCTDhJdFlDZFZad2VwZ1U1WmJlbmhiMGYxQWptUmQxVW5w?=
 =?utf-8?B?cFd0TVdtc1NWbUtQdFZGVXdPTmRrK2VNdFhJV2VBbXQ2dWROUElQRGlhcWsw?=
 =?utf-8?B?aVBXTzhjOGxCeHd5Uk1CN0ZLTHV6QVhhSFpmU1FZR0pMaFNFOEZuYVZ0cElE?=
 =?utf-8?B?eDVFWUZQQUxzcUZ6ZW5uTjM4cG5xb2Z1ZDAwdk5kRzIrem9lQVgrYlJ4VWo3?=
 =?utf-8?B?L3ZoUkhGU09TY05zbjBISTBMUEpINDdKYUZpNXJENklpY1AxTkI2K0tCZmg2?=
 =?utf-8?B?UDBpQXk1VER2RDdqWVZGUjdjQm5KV0szMytaTTI4RWhLb0ZHbXpWaHYyYkJj?=
 =?utf-8?Q?tNqXVZOy8fxWmnHLNvQNTGI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f26de23-b21a-452c-1d1a-08d99e1372cf
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 15:14:21.8748
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ls+UvIS5wJfHNbsLoECOsih6lnMax8mQ4DhW2jnPCXGNpBGyR7evJLB/byzlNo614f4WxBaxSyNn1yybanXBuw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7039

On 02.11.2021 15:39, Andrew Cooper wrote:
> The call to setup_cpu_root_pgt(0) in smp_prepare_cpus() is too early.  It
> clones the BSP's stack while the .data mapping is still in use, causing all
> mappings to be fully read read/write (and with no guard pages either).  This
> ultimately causes #DF when trying to enter the dom0 kernel for the first time.
> 
> Defer setting up BSPs XPTI pagetable until reinit_bsp_stack() after we've set
> up proper shadow stack permissions.
> 
> Fixes: 60016604739b ("x86/shstk: Rework the stack layout to support shadow stacks")
> Fixes: b60ab42db2f0 ("x86/shstk: Activate Supervisor Shadow Stacks")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:18:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:18:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220352.381593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvYF-0007HT-IO; Tue, 02 Nov 2021 15:18:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220352.381593; Tue, 02 Nov 2021 15:18:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvYF-0007HM-FX; Tue, 02 Nov 2021 15:18:15 +0000
Received: by outflank-mailman (input) for mailman id 220352;
 Tue, 02 Nov 2021 15:18:14 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhvYD-0007HG-VF
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:18:13 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 17968f44-3bf0-11ec-8558-12813bfff9fa;
 Tue, 02 Nov 2021 15:18:12 +0000 (UTC)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2105.outbound.protection.outlook.com [104.47.17.105])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-15-7MMqYQNIN0-AwObwqMUDVg-1; Tue, 02 Nov 2021 16:18:10 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4191.eurprd04.prod.outlook.com (2603:10a6:803:45::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 15:18:08 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 15:18:08 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0027.eurprd06.prod.outlook.com (2603:10a6:203:68::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Tue, 2 Nov 2021 15:18:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17968f44-3bf0-11ec-8558-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635866291;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=LJZmEyZGTchnnJQWewf+pr5AzAMgV2/vVn5jvNG3UIg=;
	b=WkL3Ny1GAzgZC6jYreIEWyp6flr+BbCcBu+tNzLD/9SH7XziAMDvm3z9nIfUmbf0ndV1pD
	TIB2929AThoG3hyJpOGzkco+XkAfKDszLJs9cU6Fo2yTcMTebzRXiHUdRNBLMCzPdx6T07
	CrMd51ULCw98wDYS0qAZWQTBpJczF3c=
X-MC-Unique: 7MMqYQNIN0-AwObwqMUDVg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=H7CVCMbCVmvWcx0dz5e11MFIdplihhTzt1yZxrFgZ+75Dsp8gcLEkK6+CgmTnzJZ3rvK6xIpinf7/xzPP9h9bWl0jsKU1chblaPdHIPCF/rwMbniTV+H2h3Bl9mu4Rh0Dme33sk73637Fuk+qh1BM9WbXuklIpRqZm0Fn+0JlZoGJxIWdKfnw7+wk9t1JDN1RGaDqR3Mz9qMgKWL92+YKsecsAYURx0j5hdSTiUdN2kaN+b9+Uj7aOecu5i8vxhxzYRjecKqNx4SrTyErv06uCHnuoCN9phuid8hjnBiYRwKONaScx9g6IodlooNsFMq537sUccfVTrDRZz9uYboxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LJZmEyZGTchnnJQWewf+pr5AzAMgV2/vVn5jvNG3UIg=;
 b=QF0BMmWXLe5xh8Y+gMq4FdR/qL11yIMk6Upevr8F5tobyHxF8zDntlsKjOz/BqmJk4FIlOlaZhAhulFcNcd+DTd0OjoDHFw1UizcMkV2E5mOSr2FoGh4Ym2RxfCx5Bl/XT0pxAY5U39/nevG7luJp2oopUZRWluJVubiksNnRfmq4LUDIUME7xrxuKCNiOF36E2CpQwVQHf16Ub0ffxpi6G5oDuNOJI+SqqoH1VT2r0mLbTobWlfVu7X3V6XGnXGtUryqCAnXPGf9+GP/B2rlC6vMmaPVX0kbzIgJZyYI701SNW0nXNZXTkpPfNLjtbEPov8YoJgE+VGUE53VHh6xQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8c6b8613-fade-3a94-0585-8eb14d7f33d4@suse.com>
Date: Tue, 2 Nov 2021 16:18:05 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 5/7] xen/xsm: Switch to byteswap.h
Content-Language: en-US
To: Lin Liu <lin.liu@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <cover.1634897942.git.lin.liu@citrix.com>
 <400efbc5c394140bb01664e5847046e8c4a38ea2.1634897942.git.lin.liu@citrix.com>
 <037139aa-e274-a0fe-4d2f-10c457650d3e@apertussolutions.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <037139aa-e274-a0fe-4d2f-10c457650d3e@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0601CA0027.eurprd06.prod.outlook.com
 (2603:10a6:203:68::13) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fe92ebe3-fd0f-4528-3262-08d99e13f98e
X-MS-TrafficTypeDiagnostic: VI1PR04MB4191:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB419101116B82956C3FE023A6B38B9@VI1PR04MB4191.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:227;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	aiDGMhSgtuenDzS6Nl1QIkSyeGtIGKbsnaW7CkY/dMJeLZtQT+W37pSdD9qldTIn9ZF9miE9+QWcGQk75rJcaMLDB3j9WQr8KZLagi2Wdc0W23K/+NuKWO0lvmF3GAojzkp5Cn4/ve57//kZTuPmTjLYv8pfULsUYN6zUGmDAJnAMid9X6whNqpzCkwXbq7uktcMzuGP4AUHeb2RQge75+Vq2h0X3xWkcQuo3EQD9ipoaa71SeMJlL4yCP4++NKuLq1FvBLWcbpe2FRrDHt/7elCIuu459rdVainD7BbJR8K9el3vF2yDXYK34PEifvETsi1MJbTuwtRauPvcHWnqeuhsn9ti1EYaJpbax9Z9s6DOdbay8+dTqMZD/yjPM8idmvwIp44ydWIpDr5ICdGukqZnxfGCvVVQZwkAXSalhqY+HJfbBFsmnQi8tUxwxF9zrFZZivWYda8tJY8YY3KednzdFfzAgNoJgDj2B9v8+a5ybzi6pqMS3umX2Cbjd92UYesQW3EMAAo5FJkay066I/91CSDJEStEnN8uuDaVJtwXPuwDKA1sxxATGT8OnizCa9EZPq3NBWdakcP4WDf25h1gEW3JzsnkEPXJycT+yOco7m6qloftz//4fpcqI/BKzqcqzqW5r8DO+IPQT+m9k99Gnj2Mbz4uy6sFSZuq1LKn6P4y7uAi3rQkTuVP3GhuL3BquITMhim5fldtId2MNi5XY+CfP1p0X/6jHXH20y3G2DFfOBjF9Bb/2r20K8B
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(508600001)(66946007)(86362001)(316002)(66476007)(66556008)(4744005)(6916009)(5660300002)(53546011)(38100700002)(31686004)(83380400001)(36756003)(16576012)(186003)(26005)(4326008)(31696002)(956004)(2616005)(54906003)(8936002)(2906002)(8676002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RmpjaXZVME1XdXdNdjduTWp1Um95YW5sNG5oS1hMVXIwV21ObVdzSUowaWox?=
 =?utf-8?B?UDFBVWo3TG5aNHlPNGlEZFJlZWlPOEZQaHVqVnIzL1JBZTlhbnR4THJmU1R5?=
 =?utf-8?B?Y0lNSXp6WE9FMDZYUGQyWXhxMUo4dHgwWFZuUk1ieXdZK0JJQ2N3bUI5RmF5?=
 =?utf-8?B?Y2Z5M0NEREhhU2wzYWxyWHEvbUtvN1U2RVFCQUpzc3E2R3orZE5sN0J4VTA3?=
 =?utf-8?B?cGl3VzNEMmJGNkpUTzhiNmp4ZTJsVnR2VURTaE5jMjdOaVIvbGRSSnVYOUlM?=
 =?utf-8?B?OUI3UXZpRE9ZMytHeHU0N2xLNjlUQ29BNUVZTW0ya1RhT1NCRUVoUUZMOHl1?=
 =?utf-8?B?MXhsTkx5dU4yYWdURXpiS2IzNlErTE9vemRsZFp2R3YrZVdOU1RsUGxIa1p6?=
 =?utf-8?B?d1Y0Zmt0ZjYrcGc1eWRGc3FnNlNRMGlXZUFkWmRlc2NWbXBac3FETTVvenNF?=
 =?utf-8?B?Q0kwTm01cDVJb0svd1liWm1EeFdOSWZuSjNjbEhZanpvSG1ZL3pmK0xDd0ph?=
 =?utf-8?B?ZHo2UmM4UU80bzFyUDdOZkNWdjhLSVhSSzJBRGg2dlFQVWtWbjA2RDZhZkxH?=
 =?utf-8?B?QWtOTnY3bTN2bXh1Y2E0N2VNenNBOTI2c3Z5QW91cjRnajNaK2t5UFF3cFcr?=
 =?utf-8?B?cVVHaC9VczBuYWYzSkpZR3A1dnFhTnptOEpDb2dQNnNBTVdlc0FVdHZXbElF?=
 =?utf-8?B?amduZFUycDFqdlFJTWIvSTJxb3lLUC9TSWd6eFlqUkM4bnhCTmJUNU8wYkRI?=
 =?utf-8?B?QjBXV1oxTjF1SXI1bFVKVG9Wajc2SkJ2SHdSYmVGWkt0azQ3V21ZN2xESCsx?=
 =?utf-8?B?cU1zeU5XTWV5V1YvVDUwRXhYUGt6S25yZ3AyckpmMVJFTkFuclpsT004NC9h?=
 =?utf-8?B?MWcyY2NacGZDTENBbG1mS2FOMHp2Tk0zZWRsUEEyZ0RxVGlRWk10QjQ1eTh3?=
 =?utf-8?B?ekRQRTBLQ20rOHRuUHkrNEN3Qmo1OHVuanpMWGJhWEp1V01FeEo5aFBXZ1V3?=
 =?utf-8?B?VE1rbEJIenJIWURhU1A3ZFRVNXNkLy9OaE9uSGpEcjZCR3RmYkZxd1phSERB?=
 =?utf-8?B?WXBVRTltd1pxT3hlOElMRDZlWUZBVU53aWduWCtRd2FIay9FVUlwR0FIVlU3?=
 =?utf-8?B?TnJ3SGRVdnZITHBocHh3WGR4aCtiazRiY0VUUnZkNXNtOVhORUN3cXBGVy9O?=
 =?utf-8?B?OVNiTStNRmVNdlRKa1hSUWFiRWl5d2hoWDdXK1VQWkh0UWF5c2U2elZqYk9m?=
 =?utf-8?B?QWRnNUx0dDAxemN5dlIxU3ZYQnRWVGFBMlNBMVdXMDByc3dwRzJPRUplbDhD?=
 =?utf-8?B?NTZMU1Y3enNKTWkwU3lNMkQ5NWtVcE9HOStWNWNhUFJ2bXFWRGVlNVZNS0ZB?=
 =?utf-8?B?RmxuTXJSNGJKQkRHaFB1WkhBTjBVZk5aeHQxMm5zalhXbS81RTNWSEFVZlFJ?=
 =?utf-8?B?R3Rqa1JxdCtzQXZpZGk3YldqLys5ZjZ1NDdpa2p5WGtKTnFydURucTlpSm9k?=
 =?utf-8?B?ckVqVVE5ekg4d3BJVGpMdnJjc3c3ZGpjQU5UQUxLVStEaitMdmVRU1hlTU42?=
 =?utf-8?B?MFBia1hHbm1od2h2ek8wN3ZvaXgvdkJDME1jTmwyNU43ZjJyTUh0TXBpbHFS?=
 =?utf-8?B?azdzTGJ4aFRoeTFHSWdWazFSdVgvT3pxc2VKbkY1SDlxT08zeFJmYWljRjhq?=
 =?utf-8?B?YUxnUkRWZVp2dU9UcnFMMGRhOXZqMDR4M3kyZG1iT3JwOEdJbkwrL244ZWlT?=
 =?utf-8?B?VWZFRDN1NU95T3F4Y0FsMUFGQlBSeitLSEtPWFRPT0Z4YjdEZkdXWlNjWWhN?=
 =?utf-8?B?S3p6M1NGNGUwdy9zN1oweVBQOVFJUHBKdGpnT2dKTGprUWYvYWRHQkRKMkcz?=
 =?utf-8?B?K1BVZWRja3c0NTh6Q3llZUkrMGd3YTVRK3NDZTFtR1FVYUVDSGxYUXJuamV3?=
 =?utf-8?B?c3lUZlBCemJrWjJQbkFjOU1lSkNyZW9pek8vQUJEZmlKaGVZbkVFZEpkbFl6?=
 =?utf-8?B?VUdGcWRYQWU4SCtIOEZFRkJMQ0JkZ2Q1VkZtdm95M2lFT3dyWU5VajhDYXlJ?=
 =?utf-8?B?VXVPbnBXUmpqTXhGd3pxUUFNbmVZQzJUdGlJWFJyd2lUUWpoOUZuWGZUQXQw?=
 =?utf-8?B?Y296ZUpDaXhzN0hTYmgzSTlzdnpJeS9XUUUydFZjQjV0Y3FhWGg2VW1Qaklh?=
 =?utf-8?Q?DzEEEalfUtRbSoU8ptBvp9A=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe92ebe3-fd0f-4528-3262-08d99e13f98e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 15:18:08.0357
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uH5QzE5sCYP4kCqZjjt2GqT3KLFXvtwhEpBNQy0VY+14ZFI5cgTPw0zVChZbFdLJDZWgSgli4JMe+OAEuBS1jw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4191

On 22.10.2021 17:46, Daniel P. Smith wrote:
> On 10/22/21 6:47 AM, Lin Liu wrote:
>> Update to use byteswap.h to swap bytes
>>
>> No functional change
>>
>> Signed-off-by: Lin Liu <lin.liu@citrix.com>
> 
> Reviewed by: Daniel P. Smith <dpsmith@apertussolutions.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:23:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:23:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220358.381605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvdF-0000HF-B1; Tue, 02 Nov 2021 15:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220358.381605; Tue, 02 Nov 2021 15:23:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvdF-0000H8-6O; Tue, 02 Nov 2021 15:23:25 +0000
Received: by outflank-mailman (input) for mailman id 220358;
 Tue, 02 Nov 2021 15:23:23 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhvdD-0000H2-Kj
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:23:23 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id d01e0e66-3bf0-11ec-8558-12813bfff9fa;
 Tue, 02 Nov 2021 15:23:21 +0000 (UTC)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-15-Dz61UtDgNDCELBlaoSa3Yg-1; Tue, 02 Nov 2021 16:23:19 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 15:23:17 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 15:23:17 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0081.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.17 via Frontend Transport; Tue, 2 Nov 2021 15:23:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d01e0e66-3bf0-11ec-8558-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635866601;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=FRia4D1qA31mkef0NY01MZn2Qmj8+Iy0JRLsQc6vzno=;
	b=ATn46Es64k56S3FMmJ0PQYZMMa2pZ1brn2jBG/DfXPLbDo9ORAN8x+Vtm4x/gZmtfU/Y/S
	07Fk1vi9YHposDoNtAXoZPugRgVpGuH4mRkIMeVSUJ5GUKywQlDZnpQGlAHj5epvWU5O0G
	0+xchoZ2qykWcWBpNxYq7utvAP1x72Q=
X-MC-Unique: Dz61UtDgNDCELBlaoSa3Yg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Fv5ii3a6sysRu4c/6q4T3SoiKu7TcxnEFzKVcgINxcusZ6IREsQ5k4/JZIPQbUiUVW1rxGsiT5WS0lFVKbAn8lth8mum6FqIgbwRC/2b4+7lXj09lqgOn9UTRoZt+ngAnvZY9DLpcolu4Opku2WBtuaoaRNvm/T06pBH3vVGyAtrAFCV5p9Rq7kMJTXvdXIoJbpRbJXaTc+Jlyh5yGltas0PEGzQgh0kmRGHRjTKEpkeRZn2+qD2eOyEOf56eKREZ9jMXvNbjCPlJ1UpS+e1FpNaVY3fF0T3yMxP6xFGVDVO5MXVxJLoowkBQyfBhnDXU/xV3amkD7KzEzUtkQ8N/w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FRia4D1qA31mkef0NY01MZn2Qmj8+Iy0JRLsQc6vzno=;
 b=VqV/YLD93EpYLFHCez0AqXlNRhVBIrBahSqVLe2egMfCb8Is0QulzweY5gCNmN7ojU46LV/+QiA+wi1KhIrPUd1MHRvBPzFgTPcPCtBRwZzOgx+pV3XDyX6yV99p4zPXYBZ74b6yevMW5yTXhpckE1sRc57xAy25rAVorju2KasCezLp+u0M7MyLKgXmQs61xXk7HljSKA+lB8Xax9NSYICi55UWm3HzkPMqQCZ70Wh8WmykUTwKlHXOrtQfJXe4le3T0Ehg0t/osEf1cGRcwNZVWIdDta2gGOqox7xtOdYkdHP9nX39J0MMni1Eh7t4rwTJcQg1IAKCiX0Lyba49Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <deff112e-2546-43cb-0869-964336d27f8b@suse.com>
Date: Tue, 2 Nov 2021 16:23:15 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 6/7] xen: Switch to byteswap.h
Content-Language: en-US
To: Lin Liu <lin.liu@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1634897942.git.lin.liu@citrix.com>
 <f5a79881bfdcef06aa950632250f551e0ec26458.1634897942.git.lin.liu@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <f5a79881bfdcef06aa950632250f551e0ec26458.1634897942.git.lin.liu@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0081.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:86::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3ba14070-78e6-40ca-c0eb-08d99e14b22a
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB53259723F092FACD6973E40EB38B9@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4714;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	YQFZyAfNZJRTl5bCPS1A/lodL6onHxysCb8AhZe3pRCxMU+2m/E7aKMJpW99T6X497Y5FpucrdBmckWGBNiwzdlOSypB8vy0+wTGgkykX3DEZJsJUoCSqeka1wpD+8pV6l3px+Vj7Nogb0md5mh6C/3AmaGqLKmh1BlSR4Y1o3TCMERBkwniESfyYGlmYMJEbV/RivcUiVOrKojikUUFioaS8pbwQlwGlt67UkLTYEYxNT+AaPdKNyeAaTRR9LFtshOoiuy+pNzjFDGAqPdS/ldEcNPCUK5t+sVT4M8s+CZ2HsXGiNrblgbEUrUJRfUdxncfnzDoIpV8mD/AC0grWMkO8tMele8cZLyUxS28Pn70ldIrfb6VK05SfFm4fuqxPI5IZhXaiu0LgWAnhTESBjYrrNKcAkIQvdP/Et+Fs+DojkW+POlg0G91B5L0kAbJvYheSIDV36NGyZgf1JswT6+PLJrSXhHKZCoutlQb4jehIex108ndfuBqYpnCoWDj5vX3uQAzyy/DbFISNjBY9Gd/AiXeyTjy5ujXuLp8jrDnDcHa6BZoB94At6Xd6PCigEb7f96JdxqxpooPORsKlo34sJi2Hq2rWE8XcOvfqdM1QWbCeG4RPk0g74ZZff91aI7H27LGoMQF2K9DGwy1ReFv+U5kmajd2F7M2rQaQ0d5TQLhSClAjWGtUWhncuBTHx9RXQKcQZzWrkZ8sgaYqLRvJEFfkIQmHDdxqjMIm0Zfc0zNWWX4hn1j+ilsC4rZ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(66946007)(316002)(66556008)(53546011)(6486002)(38100700002)(86362001)(26005)(66476007)(186003)(2906002)(16576012)(2616005)(956004)(508600001)(4326008)(5660300002)(4744005)(36756003)(54906003)(8676002)(6916009)(8936002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MVJlb1Vqejg3cTRHT1VMdjNlSStzczVEVnczYkl6dEpVaUNjYm1yUHlueHYz?=
 =?utf-8?B?bWdXa3MrL1RlUGZrc2FHNlRlV3lKVVdYWU9ReU5KT256Q3JUMGU0Mmk3NkxE?=
 =?utf-8?B?TXlObURvd2ZVVkFkbnNKV0pRRGdVVXEzQ0JVdUhvOXI3U2o3akJkd04yZS9Z?=
 =?utf-8?B?SVFWMGVJSDd4SVRTVUJXejdFbzdvRnUxZW9yVFpiK2c2bnFuakVWNkUwZU5U?=
 =?utf-8?B?WitTbERaMk9wNkloMnhPaVVReURhS1huV2pPaGVkYnBaTEMvdVU4eUgwUGhN?=
 =?utf-8?B?ek1FVng3UTlLM0FTR1RhQ2U0ekd3VmN4R0s0TGkwUi9Wc3oyRFdWdzJHOXJZ?=
 =?utf-8?B?VnB4UENiZ0l5TnRsdnJKY0pYcXdpY3BudUwva2NjY2FPM2l6OW9XM2pEYVM5?=
 =?utf-8?B?SEJPZ08rZ0VJM0E4cEo5K29kei9uM2ZLbGI3b3NNY0tvekNlbTBjQ01qOXVw?=
 =?utf-8?B?WmRJT3Nod1JIWE53ZHU0dFhoUmhpS0d2R1l4UEhKMVVkREVMemZpSUwxQ3ZC?=
 =?utf-8?B?NHExSTRNcDZOK01RUXpwRjdZRWFwL1d4b1MveTZGbHJKSjhJUittdVpVQkpr?=
 =?utf-8?B?NFg3WVBJcE1ySXNyckZnWkNoNTlmcllpMWtSeWhCZnI5dDVtN2VhM0gvTlpR?=
 =?utf-8?B?aVJvaHpKRU93UXBLYWVZYlFldlFZYmdsdTZycWlEdXdQRG5rVHlZNDlCSGZ1?=
 =?utf-8?B?Vzg2SHNRK0VPRjJERkpWd3VOWnd0VkRTSTZwZUdUOXQ1L21xS1hkUEErdW9G?=
 =?utf-8?B?OEllb1o3MVVacmlDRVN1YkNsZHNTQlFPVUY2NWg2cEF6alpBMmZFNGpVZHhr?=
 =?utf-8?B?WmtYNTJQTHN6RFZMUkhoaXZXVi85ZkVWUnZEZHJwRTUvWlZVMjlpWitVSVBm?=
 =?utf-8?B?RnpSbTRaWktxbU8vZERnMXgwV0lnYUtXU3E5TC81MEJDMnVvTWw4aXZ5MVhD?=
 =?utf-8?B?Z0M5TUFVcnRaZ3hpTGhHdHVIaGE2QXpLaDVrcWdqcEF4UGhxVjlYU1ZmeE1q?=
 =?utf-8?B?VjRWVnpVT2hTbmZ5MGg1amZlVUIrM213TGF3NFNRRGtpMEZad3R3bDdvTzRZ?=
 =?utf-8?B?NzJ5TmdQMEFGZmZPTTgyOFlHUGpnOG9wTUxCSUx4YjI1WGpHd1FVL3RlL1pF?=
 =?utf-8?B?azZtcTZObENxaFJFbGZkc01INnZOSjZkZU1DMENTQ1dDQmVNY3MwQ0NOcEh6?=
 =?utf-8?B?MW5OeTFVMHJESUQ0QzBobXhBYWl1TFk3TVEwc2pISzF0c1dUR01hbklCNVBF?=
 =?utf-8?B?S3ZXNGp5VTRnUzNRYkRiZlBTVUlUVDVwZXdNZzZncVZFaHVBM2tQS3Q1WURS?=
 =?utf-8?B?THEwMkZvWHdXb3VJWXdCNGZ0anVqTHdheS9Hbk90WTZBTldaYXBkTUtPVVpO?=
 =?utf-8?B?QU5Qd1lza3gzdUhuTzJsemw0V2Eyc00vSTU1OGlRV3czdHIzOHFCN3hqQzBB?=
 =?utf-8?B?UU5ueW9jbEwxOHNaN2VOUzBuOGNubEFFK1h2UUQwQXB1Zy9mdUxaK3NPRFJI?=
 =?utf-8?B?ZG1lbzBYSFlkS1NyRXp3YVB3c3VUakRZbUdZRXdkTnhyeDJyM2NsaTFOY0wr?=
 =?utf-8?B?bm56Y3dFTDhyNHdoYXlZWU1uSVNkck1uNEsyeU5VS0RNTFNucThtQWtjclBw?=
 =?utf-8?B?YVNhMG8vMXBEQWdwKzBmVzFNdXAvcGZTRGxzdTR0U1FiZVU2Z1JRZHFOZFY5?=
 =?utf-8?B?WFQ3NC85TFJmTmt5U1JOYWxSaHRYcm80UFhIaEJQUkVuVURpSm5vampBUHNs?=
 =?utf-8?B?QVZHcHJPRkhtcFVjYUN6Mi91eE80TlZyVkdEbkVBeGc5OHZGVkxUTGF3Wi92?=
 =?utf-8?B?NTd4OXJVN1p6d3VxSTM3ZHNrR0RZNHdWd0Z1TzZkRkN1VkZGa3V4ZHJDa0dU?=
 =?utf-8?B?YlpPZzdrSlZGODdTdGJpNmZ5UFBNNVhLUXVpa0pzaXNhM0grZGlHOEtIcmVJ?=
 =?utf-8?B?VkdIUlphNGxUNExram1BWXFLeDMrWUlmL0dseGtHbnRCVGkrUlgwajJPalYx?=
 =?utf-8?B?alZrcnd1U0VOQW4yQ3JjZjExQXl0THBXYWZSaEZZTVczcGlaeGhKd1hLblZZ?=
 =?utf-8?B?VnQ1WEQ5d2tUMDFaVHZYMEdzeExCem8yUHZOV2FScmZkWWZEUnIyUjJTUGlY?=
 =?utf-8?B?WktxNjgrQUU3dzdYM3JJdkN2Yy9Kb1M5QUlnWXFxUmtVaWVwZFZpWlhSOUdR?=
 =?utf-8?Q?5CwSJ+4qsoJRVsrzQoUowfQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ba14070-78e6-40ca-c0eb-08d99e14b22a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 15:23:17.6186
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pI/VitPc24Zu32FQzDA9X/peS7Ce/Toeva0qI/eSdpXyI9pkZhjk0/JkaEBbc7dOhdcLHmhnpRQk61G5JSDTOg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

On 22.10.2021 12:47, Lin Liu wrote:
> @@ -28,7 +28,7 @@ static inline void put_unaligned_le32(u32 val, void *p)
>  
>  #endif
>  
> -#define get_le32(p) le32_to_cpup((const uint32_t *)(p))
> +#define get_le32(p) le32_to_cpu(*(const uint32_t *)(p))

While here the adjustment may be okay as there is already an
open-coded cast, ...

> @@ -20,7 +20,7 @@
>  
>  static inline uint16_t get_unaligned_be16(const void *p)
>  {
> -	return be16_to_cpup(p);
> +	return be16_to_cpu(*(uint16_t*)p);

... here and below you add open-coded casts. Is there a reason you
don't retain the ..._to_cpup() macros?

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:42:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:42:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220367.381616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvvm-0002Zj-SY; Tue, 02 Nov 2021 15:42:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220367.381616; Tue, 02 Nov 2021 15:42:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvvm-0002Zc-OR; Tue, 02 Nov 2021 15:42:34 +0000
Received: by outflank-mailman (input) for mailman id 220367;
 Tue, 02 Nov 2021 15:42:33 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XxgO=PV=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1mhvvl-0002ZW-6O
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:42:33 +0000
Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c943eb60-8d9f-446b-bf57-fe5fcc9eec5a;
 Tue, 02 Nov 2021 15:42:31 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c943eb60-8d9f-446b-bf57-fe5fcc9eec5a
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635867751;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=YqaLFig5ujYlNCu+GEzpz6u1ykkSqrvVMVusU/LxHmA=;
  b=A/A28qK4GHQ1XzNGAgYN128AdqY61TrtNZvSs1DzfPIw+aTfGuryCNj/
   53sB95QhdTL61NOJEcNpCqZR0ynOed2JvHqeo1QBAZetJc7T9bnVpTN8a
   DfyTE0FWjJVqGwK1IgrkDre3s5vdaZXDNXEmvf7VMEX7rIXatgTN3VAGR
   E=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: UIV3ommM2bS4c22BOEnKhsnaLMxQMw2azHqKGPSzMXZhRWV9FKBOUXcHg99jbBdxocRM2rMdAx
 nTf850mLgYT7SnrnC4NC6rsayptUJXJ33NTzf2vSLVdABaWwalpWYkw1m9Q3kWExPTLZQfZrmX
 HZxyC3q47jjpSoQtDCkmfkEKLmlEMluphqMtBR1sgp8ZDPkhJKdofqVRMBAzTZT2LroAfS+TnO
 pasLkK65ApHAV6HTUMmeq3XILKJfeHuVq0JRTbvGmqQqeLhT7HTkBUlBeRgl/bWjIwVP/SdpIz
 QkYPcnWFnI7Wk4HPH3NwJa7G
X-SBRS: 5.1
X-MesageID: 56872600
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:tamIyait96uZtQu1oPitcqIjX161MRYKZh0ujC45NGQN5FlHY01je
 htvX27Sa6nfZTPwftxzbYSx90tU68LSzdUwTlNl+yBhEX8b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cw24Dja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1Ckqy1FTpqIZH+neEvUTRqA3p0P5NJreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2JARR6iGP
 6L1bxJUQEyQeUQUKm0OAc00p8CEoHPfWmFX/Qf9Sa0fvDGIkV0ZPKLWGNbcZNGiX8hemUec4
 GXc8AzRAB4AM8eE4SGY6X/qjejK9Qv6R4A6BLC+7uRtglCY2ioUEhJ+fWW8pf61m0uvQeV1I
 kYf+jcthaUq/UntRd74NzWju2KNtBMYX9tWEsU55RuLx66S5ByWbkAbShZRZdpgs9U5LRQ62
 1nMk973CDhHtLyOVWnb5rqStSm1OyUeMSkFfyBsZQkY59jupqkjgxSJScxseIa3hNDoHTD7w
 xiRsTMzwb4UiKY2O76TpA6dxWj2/96QE1Bztl6/sn+ZAh1Ra6mVYtCVqkfn3/NFHoS0fEnat
 no6lJ3LhAwRNq2lmCuISeQLObim4feZLTHR6WJS84kdGyeFoCD6I90JiN1qDAIwa5tfJ2e1C
 KPGkVoJvMc7AZe8UUNgj2td4ewOxLOoK9nqX+u8gjFmMskoL1/vEM2DiCetM4HRfKoEzfFX1
 XSzK5/E4ZMm5UJPlmPeqwA1iudD+8zG7TmPLa0XNjz+uVZkWFabSK0eLHyFZf0j4aWPrW39q
 ogEapTbkU0ACrenPkE7FLL/y3hQdBDX4rit86RqmhOreFI6SAnN9deImdvNhLCJb4wKz7yVr
 xlRq2dTyUblhG2vFOl5QisLVV8bZr4m9ShTFXV1ZT6AgiF/Ca7yvPZ3X8ZmJtEPqb08pcOYu
 tFYIq1s9NwUEW+Zk9ncBLGgxLFfmOOD3FnTYnH6PGBnF3OiLiSQkuLZksLU3HBmJgK8tNcko
 q3m0QXeQJEZQB9lAtqQY/Wqp25dd1BE8A6rd0eXcNRVZmv2941md374gvMtepleIhTf3DqKk
 Q2RBE5A9+XKpoY09vjPhLyF8Nj1Q7cvQBICEjmJ96uyOAnb4nGnnd1KXtGXcG2PT2jz4qijO
 7lYlqmuLP0dkV9WmINgCLI3n7km7t7iquYCnARpFXnGdXqxDbZkLiXU1MVDrPQVlLRYpRG3S
 gSE/dwDYeeFP8bsEVgwIgs5b7vciaFIy2eKtflseRf0/i56+raDQH5+BRjUhXwPNqZxPaMk3
 fwl5Jwc5Tugh0d4Kd2BlC1VqTiBdyRST6U9u5gGK4b3kQ53mEpaaJnRByKqspGCb9JAbhsjL
 jOO3feQgr1dwgzJcmYpFGiL1u1Y3MxctBdPxV4EBlKIhtua2aNngEwPqWw6HlZP0xFK8+NvI
 Ww6ZUR6KJKH8ypsmMUeDXunHBtMBUHB90H8o7fTeLY1k6V8urTxEVAA
IronPort-HdrOrdr: A9a23:UMoGKatlotd38b47l3ZRypLP7skC6oMji2hC6mlwRA09TyXGra
 6TdaUguiMc1gx8ZJhBo7C90KnpewK7yXdQ2/htAV7EZnibhILIFvAZ0WKG+Vzd8kLFh4tgPM
 tbAsxD4ZjLfCdHZKXBkXmF+rQbsaG6GcmT7I+0pRodLnAJGtJdBkVCe32m+yVNNXh77PECZe
 OhD6R81l2dkSN9VLXEOpBJZZmPm/T70LbdJTIWDR8u7weDyRuu9b7BChCdmjMTSSlGz7sO+X
 XM11WR3NTtj9iLjjvnk0PD5ZVfn9XsjvNFGcy3k8AQbhHhkByhaohNU6CL+Bo1vOaswlA3l8
 SkmWZtA+1Dr1fqOk2lqxrk3AftlB4o9n/Z0FedxUDupMToLQhKQ/ZptMZ8SF/0+kAgtNZz3O
 ZgxGSCradaChvGgWDU+8XIfwsCrDv1nVMS1cooy1BPW4oXb7Fc6aYF+llOLZsGFCXmrKg6De
 hVCt3G7vo+SyLaU5nghBgs/DWQZAV3Iv/fKXJy/vB9kgIm0kyR9nFoh/D2xRw7hdUAo5ot3Z
 WMDk0nrsAJciYsV9MJOA42e7rANoX8e2O/DIusGyWSKEgmAQOHl3el2sR+2AmVEKZ4u6fa3q
 6xCW9liQ==
X-IronPort-AV: E=Sophos;i="5.87,203,1631592000"; 
   d="scan'208";a="56872600"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=djj6+P3uChj9x/kBtbpAuRI0daClCBvgGiAoFV9Zp8E00Lde1Q7vpMtWA8hZ3L3Tkl02/7rucPPx3U/HkeSDFfe3H0JDVZ1pUlhVrmcifGbEGx5ryOPbwAMeT/SmEzO3RzxTl58pp60LeIxtUxj6rt6VcsnLYxKZnNpj5Twsb85u1M8Dm4fFf5qOfhJxZhLFLvSW7+1aIP6kGovTPLyQ7N1d3UMG0FmA7FdDlCHiz705eZKd9nTLea+ucPtEqQrC1qP8MO4vCeRqwJGZkR/MUVioBm3IPC+wFcNrz52Zq86UHrY0lWSAGDUYhJkwm1btnj1BXAt7DGajMsEMMft+fQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/nE6avqwBdBnwLEGc4SMc56P2CAPOw2Oii2xa3UpDCM=;
 b=NHvsMXcm3h3NOys+5dTiGckglmr9Y/YKkeagU2RPstrrIEmjETqdsxDXMYn8GVvI6k/vRgAV+q5KUDny0CsGczg1xdRXh1Xp7Vmlv3rTC0Xo7ZcUyfPb7SAk/KEX85vN9pRmFv2FWQ5v2KEPZ3uTHMJsRZSKpOfJd8E9E28rna2f/1v64jY88KTLIO79Jx1X7tri3ipi2D1G7+lKgUFteBmgI8c5jE0mP011ch2vWLHXlI92J67mwtJDzahiujemwRKvENSGd70SFTTuFLiY3oLTAWJnhQSikjQex/bHlQ2jaj01wSNYQNaVl6aKguDVGiX2hoIxxZwMYSgDBAXYIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/nE6avqwBdBnwLEGc4SMc56P2CAPOw2Oii2xa3UpDCM=;
 b=dpJOxP3J0WVeQzgguvtFup6qHNhu3Al7y5E/6ZLzvatV3c1GdV5JIGJjnsG65hEjGomJOMQGmdn06c9vrY3EqtHMC2Yqpt0wxgra1ORdHnOazTZWTNotj7CXSp5cNypZkF+f0F4k8ITmJ42+jTaX4ucBIUiwm5X78gIXg8zFmlg=
Date: Tue, 2 Nov 2021 16:42:20 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>, George Dunlap
	<george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, "Christian
 Lindig" <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Ian Jackson
	<iwj@xenproject.org>
Subject: Re: [PATCH for-4.16 v4] gnttab: allow setting max version per-domain
Message-ID: <YYFcXPFCd1Dqo/AP@Air-de-Roger>
References: <20211029075956.1260-1-roger.pau@citrix.com>
 <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
 <YXz579WNpHe7aO91@Air-de-Roger>
 <3715026d-b8e4-9940-6cfe-0ccf042cd07c@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3715026d-b8e4-9940-6cfe-0ccf042cd07c@citrix.com>
X-ClientProxiedBy: MR2P264CA0136.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:30::28) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 619cd800-8619-4a3c-4ec6-08d99e175e51
X-MS-TrafficTypeDiagnostic: DM6PR03MB3835:
X-Microsoft-Antispam-PRVS: <DM6PR03MB38358C51D267EA3CA7EDCC558F8B9@DM6PR03MB3835.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: gr6/qj1JhggWHU20SpNnCc+Zpa8oWvLKzJP14luScQaeQkjQ9+ABbsmCfgB3zb0yuUsciB4+TjLtgFR6POTGKuCGtI9Wt3qstuyxPZoj9mGEb3qtOmYAO+u3XgQadzSm623Y4LU4Kao8smenO0GLpOtKs8Jc8W0ejDFVMmmdTPpHsuBAHHPdE6NBOMuz9ojU9V9fAr78uQJ65AOCbzDAnLnzRFRY/iUdUSNRoxb4VHnwAXb7iAckNBCp/DEGm6eLrOV3bnEUBI6gmLnm3xM0GRxrYIUHw1b3ke7GB8GWXzaR8QY4qYiK1DOmHmb8jhnk3zGWFZhVCBqTpH469OnMlLrs6mKCp9/nUz9mTTHZ2CiNKaDIYaCPIv9vl+zOj+lloz2s5wbCWA9CWq3f0hDnykH9ZJXGreL/p2YlfPnGaK6I3UWg1wFHQHBqtsq8PbM5yghkNZO2dkclvOwzuOW8l3J1OAQXU1k4ACc1kjmVksXI4RYlzVyHJgjZsjJyAFs/frpt2qccyXvAowlnzfxWkWHnPf4t7QQqWgT7f8THpBbSFpLRmBdFL5oZm8gLXjNDkowMkTqH6vTdjy86/78AuJ4qOfSYk1mFlfCnZBCmp1jHNRcqr1RcrKK5TMUB1NoQh3wbrLFM7wAX79ZbpFNTN0x56ReTNtaA1FM0c5mvb4cq8Rb9qwiDU5J0hVpnt1a539DeogKYNA/I5xGqq4oFnGBhJkR9QRCup8hEpJL+Fjw=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(6636002)(33716001)(316002)(186003)(26005)(508600001)(4326008)(54906003)(86362001)(82960400001)(9686003)(2906002)(6496006)(38100700002)(8936002)(6486002)(85182001)(66946007)(66556008)(66476007)(956004)(6862004)(83380400001)(6666004)(8676002)(5660300002)(53546011)(966005);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WTduaTAvaVg1bVJ2Z1VscWZrUDl2MHUwanV1U2tZY0h2ckNKaUY3WCt2dTB6?=
 =?utf-8?B?U05XZVVuTGV5bHl5TlpNRWg3RThyNFc4b3BKekNiNUpqNjJmUGQzNGVyWTVU?=
 =?utf-8?B?ZGcrbmNFZ2F2eDBja1J4Wk9WeGV3MmZBRWp2V2s1K1E3aFZDdkk0YUlGMGd6?=
 =?utf-8?B?Rzl1aGVmendZTWxzQm5LVzF3Snd6cDNvQWx5eXN1RGx3WWtlQ251bStzSEw4?=
 =?utf-8?B?MmlMK29VeHFiNEhvK0JMcjJOcVNMSU5lV25NaG5RQldyTjBubWZqMTYzMW54?=
 =?utf-8?B?N2EvTmMvSUZtVnpWUWVPcW5pWGRSWVpwNHBCTUZqWEUxN1VGTWtrYkduV0Jq?=
 =?utf-8?B?elZTc3lDL0l6VXpseVZYUDNKV0phUGl6TUtpRlh2VkJQN0NUMFowMll6eGRK?=
 =?utf-8?B?b244YTVXY3VVc0hFZENrOEVoekVGak5yWE80dGJ5VmwxSW85S3d3dkJVRU9y?=
 =?utf-8?B?dmh5cHN4YjE3bjZCQmtteUxwUG8zWHAxL0gybFpqeUhybElKRUFJMS9FNkxk?=
 =?utf-8?B?Y1Rqd1o3WjF1RGdUSUladGI4WjI0V25BeDNvL2JMME9LOXozYXIweXRkd1Ja?=
 =?utf-8?B?SHUyeEVUSFRHOW9hbzN4TnJLSzBxYzVxaER2Rmd3aEcrZWRKeXA2T1Z5TzFT?=
 =?utf-8?B?R3l5Q2I1cndYdVBteEN4bEp6U3JwcDdxRU1vbFFxYTZJU3FIYml1TVdCdjdm?=
 =?utf-8?B?RnQyTGJtWkYzWFdycXg1M2JxZkVXcGEzeTY5Y3NlSndnY2QzNFZibG9udS9r?=
 =?utf-8?B?YU5ZUzFqQkttRUhtalZCY2xTb1FmeHo0bjRSUGlsNExRbEJnNFlOaHBMZTcr?=
 =?utf-8?B?QkVXUjNOdzhzblBxemZTdVEzOEsxbXllVmRaQlRPKzBrazNodmhSdkRXNito?=
 =?utf-8?B?c2IwaG8xQys0MlY3QWtKMmNjWldydllHNWtvWWdjUFAwaE9mSWlnQWNsK0ZW?=
 =?utf-8?B?QjVDSUZ0eTR5WCtUQ2dvOURpclVVZTRBaGloZVVrMEhjdW9COE03ZHNUQUZD?=
 =?utf-8?B?N2VZZEJ2ZUxQT2d5RW5VVHhoc1RnQm5sK2dra24zVnFPSUxvNDQzUHNZbWd2?=
 =?utf-8?B?T0V2R01oUWdwbnFhNTcwS3VKVDFrc2E5ZFMwYSsxZ1RFMkN1cXhYWUdCcEN1?=
 =?utf-8?B?MDJXanlidGoxRCtuVGFkeHlvbUdKMTE0RzFmakxlZHhsU0dmaEJIcm1TN2RN?=
 =?utf-8?B?YS8xMWVRSjE1SWxVMTRRRFFoVi95TXRFbTFndFBhTWxoYmJhTmMvN2Vtd1dH?=
 =?utf-8?B?MUNXempWcGVEaWJacHZsZktFUzVuTFVIOUU2MDFaQkRZNmFoYUl3dmpoOUFy?=
 =?utf-8?B?RXFGRnRrV2RYeHZDMHYrTEVPandNWmxaMzZhbndYK2hJbUFKbEVJa1VjK1Ru?=
 =?utf-8?B?UDJ3VWEzUnRYcFpXa0RibkFkSXR6WWpMNFpwSU9jLzI2VlprNHc1a25VUmdH?=
 =?utf-8?B?c3hkangwT2JlK1BTZTF4SEh1L0JuZThsRitFdjhoRjdScWQwcS9kTEM1cmNV?=
 =?utf-8?B?ZWc0UnFjM1pzMHZoTDRoSmN0bVdlYnhTaGRDN1laMExRVy9iMGkzSCtRYWZW?=
 =?utf-8?B?bUZ0NWdqT3pXRWJjSThyb0ZRL29nQlBROURZTXlCbWpheTJPaVduSnc4ZDAz?=
 =?utf-8?B?cThNOUxjeVZVQUVnNXRSL0ZmTmQ3cUw3S1YvOGpodThEdFA4L0NnZWd3YXVU?=
 =?utf-8?B?STRqSVFjTU1MNDJyNmVFK1ZlYWZUcWRmYzFuUzZQdlRUbDMxYSs4OTFzamhY?=
 =?utf-8?B?MVVaTVJCKysyRTdTb2NhMDhuUThISGxCNW9PWE5ZZnlQQ1IvTnJQZGkvRFpr?=
 =?utf-8?B?dm54SElxL2VnN3h0dk56c3lyL2VMdXkvaXNaNGJpYjg4VUc3Q1NZVERHZDVG?=
 =?utf-8?B?bTR4T0QrWCthampGcFJtS0NWRWVkSFFhMzNKZE1RdG9TQkxIVUp1bVl1MU5L?=
 =?utf-8?B?S3pPM3IyQVlPZnRtc3VGc3VaYjVQRGlFcnRLYzdIOU9kbG5xc0EyNzI1azA3?=
 =?utf-8?B?Smg0dGQxWlE0MW9waU5kUnJkZ0JDYks1a0RUSnhkY3FJTEdONWptWXhXL012?=
 =?utf-8?B?Zk96NjN2NitEYkkrVWlEeXNDTU9Xb1FuVzhBNnJYQ3FHN2x6amlTNHhZUHI0?=
 =?utf-8?B?VVpaOFdmNmc2WDA0eWg1UncrTS9Pb3g3eExCNmZrNFU4L0h1cXhOdEErdFMz?=
 =?utf-8?Q?i5KJOSJjq6KNAPMS5H066ro=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 619cd800-8619-4a3c-4ec6-08d99e175e51
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 15:42:25.4803
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vbTn0K0LQTy5JWgDdcFNkENczL1P5qFd9W8TYYbAkLu/OCVjPpDncOa1JQnjDGX/v+tM8MgVxrR6vImCOzOIFg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3835
X-OriginatorOrg: citrix.com

On Tue, Nov 02, 2021 at 02:34:03PM +0000, Andrew Cooper wrote:
> On 30/10/2021 08:53, Roger Pau Monné wrote:
> > On Fri, Oct 29, 2021 at 05:39:52PM +0100, Andrew Cooper wrote:
> >> On 29/10/2021 08:59, Roger Pau Monne wrote:
> >>> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> >>> index e510395d08..f94f0f272c 100644
> >>> --- a/xen/common/grant_table.c
> >>> +++ b/xen/common/grant_table.c
> >>> @@ -1917,11 +1918,33 @@ active_alloc_failed:
> >>>  }
> >>>  
> >>>  int grant_table_init(struct domain *d, int max_grant_frames,
> >>> -                     int max_maptrack_frames)
> >>> +                     int max_maptrack_frames, unsigned int options)
> >>>  {
> >>>      struct grant_table *gt;
> >>> +    unsigned int max_grant_version = options & XEN_DOMCTL_GRANT_version_mask;
> >>>      int ret = -ENOMEM;
> >>>  
> >>> +    if ( max_grant_version == XEN_DOMCTL_GRANT_version_default )
> >>> +        max_grant_version = opt_gnttab_max_version;
> >>> +    if ( !max_grant_version )
> >>> +    {
> >>> +        dprintk(XENLOG_INFO, "%pd: invalid grant table version 0 requested\n",
> >>> +                d);
> >>> +        return -EINVAL;
> >>> +    }
> >>> +    if ( max_grant_version > opt_gnttab_max_version )
> >>> +    {
> >>> +        dprintk(XENLOG_INFO,
> >>> +                "%pd: requested grant version (%u) greater than supported (%u)\n",
> >>> +                d, max_grant_version, opt_gnttab_max_version);
> >>> +        return -EINVAL;
> >>> +    }
> >> I think this wants to live in sanitise_domain_config() along with all
> >> the other auditing of flags and settings.
> > The reason to place those there is that the sanity checks for the
> > other grant table related parameters (max_grant_frames and
> > max_maptrack_frames) are performed in this function also. I think it's
> > better to keep the checks together.
> >
> > We should consider exporting the relevant values from grant table
> > code and then moving all the checks to sanitise_domain_config, but
> > likely a follow up work given the current point in the release.
> >
> >> Also, it can be simplified:
> >>
> >> if ( max_grant_version < 1 ||
> >>     max_grant_version > opt_gnttab_max_version )
> >> {
> >>     dprintk(XENLOG_INFO, "Requested gnttab max version %u outside of
> >> supported range [%u, %u]\n", ...);
> >> }
> > It was originally done this way so that the first check
> > (!max_grant_version) could be adjusted when support for
> > max_grant_version == 0 was introduced [0] in order to signal the
> > disabling of grant tables altogether.
> >
> >>
> >>> +    if ( unlikely(max_page >= PFN_DOWN(TB(16))) && is_pv_domain(d) &&
> >>> +         max_grant_version < 2 )
> >>> +        dprintk(XENLOG_INFO,
> >>> +                "%pd: host memory above 16Tb and grant table v2 disabled\n",
> >>> +                d);
> >> This is rather more complicated.
> >>
> >> For PV, this going wrong in the first place is conditional on CONFIG_BIGMEM.
> >> For HVM, it the guest address size, not the host.
> >> For ARM, I don't even know, because I've lost track of which bits of the
> >> ABI are directmap in an otherwise translated domain.
> > This was only aiming to cover the PV case, which I think it's the more
> > likely one. It's possible there's people attempting to create PV
> > guests on a 16TB machine, but I think it's more unlikely that the
> > guest itself will have 16TB of RAM.
> >
> >> I think it is probably useful to do something about it, but probably not
> >> in this patch.
> > I'm fine with this, we had no warning at all before, so I don't think
> > it should be a hard requirement to add one now. It would be nice if
> > there's consensus, but otherwise let's just skip it.
> >
> >> Perhaps modify domain_set_alloc_bitsize() to impose an upper limit for
> >> the "host memory size matters" cases?
> >>
> >> For the guest address size cases, this possibly wants to feed in to the
> >> max policy calculations in the same way that shadow kinda does.
> > So grant table version will basically clamp the amount of memory a
> > guest can use?
> >
> > What about guests that doesn't use grant tables at all, do we expect
> > those to set the future max_grant_version to 0 in order to avoid the
> > clamping without having to expose grant v2?
> >
> >>> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
> >>> index 51017b47bc..0ec57614bd 100644
> >>> --- a/xen/include/public/domctl.h
> >>> +++ b/xen/include/public/domctl.h
> >>> @@ -89,14 +89,20 @@ struct xen_domctl_createdomain {
> >>>      /*
> >>>       * Various domain limits, which impact the quantity of resources
> >>>       * (global mapping space, xenheap, etc) a guest may consume.  For
> >>> -     * max_grant_frames and max_maptrack_frames, < 0 means "use the
> >>> -     * default maximum value in the hypervisor".
> >>> +     * max_grant_frames, max_maptrack_frames and max_gnttab_version < 0
> >>> +     * means "use the default maximum value in the hypervisor".
> >>>       */
> >>>      uint32_t max_vcpus;
> >>>      uint32_t max_evtchn_port;
> >>>      int32_t max_grant_frames;
> >>>      int32_t max_maptrack_frames;
> >>>  
> >>> +/* Grant version, use low 4 bits. */
> >>> +#define XEN_DOMCTL_GRANT_version_mask    0xf
> >>> +#define XEN_DOMCTL_GRANT_version_default 0xf
> >> This needs to be a toolstack decision, not something in Xen.  This
> >> doesn't fix the case where VMs can't cope with change underfoot.
> >>
> >> It is fine for the user say "use the default", but this must be turned
> >> into an explicit 1 or 2 by the toolstack, so that the version(s) visible
> >> to the guest remains invariant while it is booted.
> > Please bear with me, as I'm afraid I don't understand why this is
> > relevant. Allowed max grant version can only change as a result of a
> > migration
> 
> No.  Allowed max grant version is (well - needs to be) a fixed property
> of the VM, even across migration.

Right, but I think we agreed we where going to punt this to post 4.16,
as noted in:

https://lore.kernel.org/xen-devel/24954.44919.8320.63375@mariner.uk.xensource.com/

It's strictly no worse than the current code, where you can migrate
from a host with a default max grant version of 2 to one with a
default max grant version of 1 and migration will succeed.

> It was a fundamentally mistake to ever have gnttab v2 active by default,
> without an enumeration, and with no way of turning it off.  Same too for
> evtchn, but we've already taken a patch to knobble fifo support.
> 
> 
> The toolstack needs to explicitly select v1 or v2.  It's fine to pick a
> default on behalf a user which doesn't care, but what moves in the
> migrate stream must an explicit, unambiguous value, so the destination
> Xen and toolstack can reconstruct the VM exactly.
> 
> "default" is ambiguous, and cannot be recovered after the fact.  In
> particular, a vm with no explicit configuration, when booted on a Xen
> with gnttab limited to v1 on the command line, should not have v2 become
> accessible by migrating to a second Xen with no command line limit.  It
> is fine, if that VM subsequently reboots, to find that v2 is now available.

There are other grant table options that have the defaults set in Xen
(ie: max_grant_frames and max_maptrack_frames), which will need to be
fetched on a per-domain basis already in order to be migrated, so I
was planning on doing something similar with the max grant version, so
that we could fetch all the grant table related parameters.

Or else we should also remove setting max_grant_frames and
max_maptrack_frames to -1 (default), and instead force the toolstack
to explicitly set those. In any case, I think we need to handle the
grant table version and max_{grant,maptrack}_frames in the same way,
and it's likely better to leave that for later.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:46:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:46:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220374.381626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvz4-0003HV-Ez; Tue, 02 Nov 2021 15:45:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220374.381626; Tue, 02 Nov 2021 15:45:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhvz4-0003HO-Bs; Tue, 02 Nov 2021 15:45:58 +0000
Received: by outflank-mailman (input) for mailman id 220374;
 Tue, 02 Nov 2021 15:45:57 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a05+=PV=linaro.org=richard.henderson@srs-us1.protection.inumbo.net>)
 id 1mhvz3-0003HH-IR
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:45:57 +0000
Received: from mail-qt1-x82a.google.com (unknown [2607:f8b0:4864:20::82a])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 7c12ecff-fef3-444d-9355-ba569bcfdc39;
 Tue, 02 Nov 2021 15:45:56 +0000 (UTC)
Received: by mail-qt1-x82a.google.com with SMTP id n2so19262107qta.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Nov 2021 08:45:56 -0700 (PDT)
Received: from [172.20.81.179] (rrcs-172-254-253-57.nyc.biz.rr.com.
 [172.254.253.57])
 by smtp.gmail.com with ESMTPSA id y8sm12807287qko.36.2021.11.02.08.45.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Nov 2021 08:45:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c12ecff-fef3-444d-9355-ba569bcfdc39
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=oBZS+B5OI/pNOurVNUNmHTLzU1LJ6vGeGI0SMtDtTqA=;
        b=ZxvXyZ8G6um96czYq5NWq0JwiA0h3KQZiPg6jRZHGNFHRPslxY+VDPyuTaCEHNUULy
         +pkbJHwaI9jQjaIW8qRyVebYqe2MOnXFruS8bmWxt5KLy3IZ+0AFirfA/DLeUcEl4HIX
         TRgpSA0mp0MdbHJSKO7qkEMITA6Dw2dfICBp3n7qqNf/sBb+gB8edfdhV911nOhAOwHH
         B6snqjnx7hhz3hn1quZHjYRnFA8fZTSIRSu4V/8qL24ItahLZWErZc2Foql8ePgzC/Vz
         +nYzVDZGlH30T0pNHhnmKVJBhUCmIs7aHmo7nDOe0zezTbMGPCuSmMyaFmLIFYCq83rR
         pJPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=oBZS+B5OI/pNOurVNUNmHTLzU1LJ6vGeGI0SMtDtTqA=;
        b=DSjSeT+cJZXE+4FHRNwxHRj6CPk8L4y1jlmVXw9xKGJo2XjYLadmU3Ksisp7EgbZNj
         uPftHC14QA81yre0WjEUza4syRT5dTm+tqef/7TslUvDLv/U7twVWwE7ldUnTpYnpH/s
         BJ8MuDoKikUCbGg1kXPGHyedGmSl8Yyfbss0bqtxdqu/2BBA+5Wbvf7BqU9TOWNAnZiT
         oYZExxEramiKRH4ZcewfL4Ggjym8t3VdJGW3iojCotO3i05iMYqoEBuLQ5zGwBBh5OfS
         vLCk2PRJ4N1SswT6Sve3eNax0YU7YfLgwxBswcEFWucOwgV1P7+QUdJMaLt8VoBMh1aC
         OMuQ==
X-Gm-Message-State: AOAM532nmRRg3xbffY1e4fHx9q1xoe9lksoBHEXXXb274k3//0uhStia
	OxLy+j+qwFecM3nPqAscMiGNhg==
X-Google-Smtp-Source: ABdhPJx7asEmjavQwNXvLHtTNJJ4FS8uJKsNMq8MaQoG0lRsFCuUBJcFIhC2E0gsV2D1s47hX+9AHg==
X-Received: by 2002:ac8:7f11:: with SMTP id f17mr31747889qtk.389.1635867956240;
        Tue, 02 Nov 2021 08:45:56 -0700 (PDT)
Subject: Re: [PULL 00/20] Migration 20211031 patches
To: Juan Quintela <quintela@redhat.com>, qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
 David Hildenbrand <david@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>,
 Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Eric Blake
 <eblake@redhat.com>, =?UTF-8?Q?Philippe_Mathieu-Daud=c3=a9?=
 <philmd@redhat.com>, kvm@vger.kernel.org, Peter Xu <peterx@redhat.com>,
 =?UTF-8?Q?Marc-Andr=c3=a9_Lureau?= <marcandre.lureau@redhat.com>,
 Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
 "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
 "Michael S. Tsirkin" <mst@redhat.com>,
 Anthony Perard <anthony.perard@citrix.com>
References: <20211101220912.10039-1-quintela@redhat.com>
From: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <709cabc0-95c3-27dd-e2ae-8834fc7b36b3@linaro.org>
Date: Tue, 2 Nov 2021 11:45:53 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <20211101220912.10039-1-quintela@redhat.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit

On 11/1/21 6:08 PM, Juan Quintela wrote:
> The following changes since commit af531756d25541a1b3b3d9a14e72e7fedd941a2e:
> 
>    Merge remote-tracking branch 'remotes/philmd/tags/renesas-20211030' into staging (2021-10-30 11:31:41 -0700)
> 
> are available in the Git repository at:
> 
>    https://github.com/juanquintela/qemu.git tags/migration-20211031-pull-request
> 
> for you to fetch changes up to 826b8bc80cb191557a4ce7cf0e155b436d2d1afa:
> 
>    migration/dirtyrate: implement dirty-bitmap dirtyrate calculation (2021-11-01 22:56:44 +0100)
> 
> ----------------------------------------------------------------
> Migration Pull request
> 
> Hi
> 
> this includes pending bits of migration patches.
> 
> - virtio-mem support by David Hildenbrand
> - dirtyrate improvements by Hyman Huang
> - fix rdma wrid by Li Zhijian
> - dump-guest-memory fixes by Peter Xu
> 
> Pleas apply.
> 
> Thanks, Juan.
> 
> ----------------------------------------------------------------
> 
> David Hildenbrand (8):
>    memory: Introduce replay_discarded callback for RamDiscardManager
>    virtio-mem: Implement replay_discarded RamDiscardManager callback
>    migration/ram: Handle RAMBlocks with a RamDiscardManager on the
>      migration source
>    virtio-mem: Drop precopy notifier
>    migration/postcopy: Handle RAMBlocks with a RamDiscardManager on the
>      destination
>    migration: Simplify alignment and alignment checks
>    migration/ram: Factor out populating pages readable in
>      ram_block_populate_pages()
>    migration/ram: Handle RAMBlocks with a RamDiscardManager on background
>      snapshots
> 
> Hyman Huang(é»„å‹‡) (6):
>    KVM: introduce dirty_pages and kvm_dirty_ring_enabled
>    memory: make global_dirty_tracking a bitmask
>    migration/dirtyrate: introduce struct and adjust DirtyRateStat
>    migration/dirtyrate: adjust order of registering thread
>    migration/dirtyrate: move init step of calculation to main thread
>    migration/dirtyrate: implement dirty-ring dirtyrate calculation
> 
> Hyman Huang(黄勇) (2):
>    memory: introduce total_dirty_pages to stat dirty pages
>    migration/dirtyrate: implement dirty-bitmap dirtyrate calculation
> 
> Li Zhijian (1):
>    migration/rdma: Fix out of order wrid
> 
> Peter Xu (3):
>    migration: Make migration blocker work for snapshots too
>    migration: Add migrate_add_blocker_internal()
>    dump-guest-memory: Block live migration
> 
>   qapi/migration.json            |  48 ++++-
>   include/exec/memory.h          |  41 +++-
>   include/exec/ram_addr.h        |  13 +-
>   include/hw/core/cpu.h          |   1 +
>   include/hw/virtio/virtio-mem.h |   3 -
>   include/migration/blocker.h    |  16 ++
>   include/sysemu/kvm.h           |   1 +
>   migration/dirtyrate.h          |  21 +-
>   migration/ram.h                |   1 +
>   accel/kvm/kvm-all.c            |   7 +
>   accel/stubs/kvm-stub.c         |   5 +
>   dump/dump.c                    |  19 ++
>   hw/i386/xen/xen-hvm.c          |   4 +-
>   hw/virtio/virtio-mem.c         |  92 ++++++---
>   migration/dirtyrate.c          | 367 ++++++++++++++++++++++++++++++---
>   migration/migration.c          |  30 +--
>   migration/postcopy-ram.c       |  40 +++-
>   migration/ram.c                | 180 ++++++++++++++--
>   migration/rdma.c               | 138 +++++++++----
>   softmmu/memory.c               |  43 +++-
>   hmp-commands.hx                |   8 +-
>   migration/trace-events         |   2 +
>   softmmu/trace-events           |   1 +
>   23 files changed, 909 insertions(+), 172 deletions(-)

Applied, thanks.

r~



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:53:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:53:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220380.381638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhw6L-0004fg-7y; Tue, 02 Nov 2021 15:53:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220380.381638; Tue, 02 Nov 2021 15:53:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhw6L-0004fZ-54; Tue, 02 Nov 2021 15:53:29 +0000
Received: by outflank-mailman (input) for mailman id 220380;
 Tue, 02 Nov 2021 15:53:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhw6J-0004fT-9C
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:53:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhw6J-0008Uo-6f
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:53:27 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhw6J-0002hm-5p
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:53:27 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhw6A-0001UZ-Am; Tue, 02 Nov 2021 15:53:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=DxLq0cVfeU0Tm/MxmwSBOutW+q/oNYXWgPlqeJtAvd8=; b=ZGBqZWX4rKQkfLpfcCPkLtcClw
	xr1doif9CohFIOl6LYTrgMNhOq4x3cj1nTQW0nlZeUTaNrudW4YP+Zw3N4gcweRImqgWwWwfvaWp7
	k08zJcia9mm7a3ikKMMl0o+2KJZ6c3Xp9LZFvl3bCIvbDZl9X84KFyM7KX0rQXXM2Nss=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24961.24301.445326.724439@mariner.uk.xensource.com>
Date: Tue, 2 Nov 2021 15:53:17 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    Wei Liu <wl@xen.org>,
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] x86/shstk: Fix use of shadow stacks with XPTI
 active
Newsgroups: chiark.mail.xen.devel
In-Reply-To: <29c59040-a2bc-69d3-db02-1345b5aa2b8b@suse.com>
References: <20211102143935.17473-1-andrew.cooper3@citrix.com>
	<29c59040-a2bc-69d3-db02-1345b5aa2b8b@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH for-4.16] x86/shstk: Fix use of shadow stacks with XPTI active"):
> On 02.11.2021 15:39, Andrew Cooper wrote:
> > The call to setup_cpu_root_pgt(0) in smp_prepare_cpus() is too early.  It
> > clones the BSP's stack while the .data mapping is still in use, causing all
> > mappings to be fully read read/write (and with no guard pages either).  This
> > ultimately causes #DF when trying to enter the dom0 kernel for the first time.
> > 
> > Defer setting up BSPs XPTI pagetable until reinit_bsp_stack() after we've set
> > up proper shadow stack permissions.
> > 
> > Fixes: 60016604739b ("x86/shstk: Rework the stack layout to support shadow stacks")
> > Fixes: b60ab42db2f0 ("x86/shstk: Activate Supervisor Shadow Stacks")
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:54:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:54:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220384.381649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhw7g-0005Fd-Iw; Tue, 02 Nov 2021 15:54:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220384.381649; Tue, 02 Nov 2021 15:54:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhw7g-0005FW-FQ; Tue, 02 Nov 2021 15:54:52 +0000
Received: by outflank-mailman (input) for mailman id 220384;
 Tue, 02 Nov 2021 15:54:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhw7f-0005FQ-CV
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:54:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhw7f-0008Vu-Bi
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:54:51 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhw7f-0002kt-Ay
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:54:51 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhw7b-0001WU-AP; Tue, 02 Nov 2021 15:54:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=HkFQ5dhMf2h6AvY/pp4Ir10DcctyUb/rK+PDBMFXrXQ=; b=m1ky6Eo5dM31wffu25hkWKbrsR
	C14uVNodzT9j95qjW2e9e/tVLHGGUkuK9dxDKMEhy/W5jx0/1jqKNL1xUY7CtN1rzMjdxi5nHbnb9
	5XuCk78dnUseavJB0dQzDQBjWJL6CG46zMmU+wZaoD6UkGpDL7o1XyG0R4FOJ97ZH/ng=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24961.24390.111387.517040@mariner.uk.xensource.com>
Date: Tue, 2 Nov 2021 15:54:46 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
    Jan Beulich <JBeulich@suse.com>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on
 AMD hardware
In-Reply-To: <1325ff93-5b05-3660-7850-d497b6b9ee23@citrix.com>
References: <20211028232658.20637-1-andrew.cooper3@citrix.com>
	<24959.50965.967784.441954@mariner.uk.xensource.com>
	<0ab2bad5-ad32-06e1-755c-c4fe5cb2bdd3@citrix.com>
	<24959.55804.160431.406023@mariner.uk.xensource.com>
	<1325ff93-5b05-3660-7850-d497b6b9ee23@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware"):
> On 01/11/2021 12:13, Ian Jackson wrote:
> > Andrew Cooper writes ("Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware"):
> >> This path is only taken for a 32bit crash kernel. It is not taken for
> >> 64bit crash kernels, or they wouldn't work on AMD either, and this is
> >> something we test routinely in XenServer.
> >>
> >> The worst that can happen is that I've messed the lretq pattern up, and
> >> broken transition to all 32bit crash kernels, irrespective of hardware
> >> vendor.
> >>
> >> It will either function correctly, or explode. If it is broken, it
> >> won't be subtle, or dependent on the phase of the moon/etc.
> > Thanks for this confirmation.
> >
> > Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> 
> Thanks.
> 
> Unfortunately, I've made a blunder here. The code as implemented is
> broken on Intel, and works on AMD. (I.e. I need to swap Intel and AMD
> in the commit message). Have done locally, but won't repost just for that.

OK, thanks.

Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:55:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:55:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220387.381660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhw7x-0005kc-So; Tue, 02 Nov 2021 15:55:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220387.381660; Tue, 02 Nov 2021 15:55:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhw7x-0005kV-P7; Tue, 02 Nov 2021 15:55:09 +0000
Received: by outflank-mailman (input) for mailman id 220387;
 Tue, 02 Nov 2021 15:55:08 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7JXc=PV=citrix.com=Andrew.Cooper3@srs-us1.protection.inumbo.net>)
 id 1mhw7w-0005bK-ID
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:55:08 +0000
Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 3d62b414-3bf5-11ec-8559-12813bfff9fa;
 Tue, 02 Nov 2021 15:55:03 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d62b414-3bf5-11ec-8559-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635868502;
  h=subject:to:cc:references:from:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=kqD9D7+LPMzvZtTD206Tv/tD42dAz+jK6x/VQv9lAQM=;
  b=RjyflibEf1/PFPYj1hoiaTCcWhI1aoygikYtV5C5lzfFwvhLO4NTy+5a
   5nnUG/jVdqItFwIpCQlBKxptZfEOttCIPv6y2siwceCSAmAsgkuXnlF5Q
   IC6e8hN1ToPeN5dvmIDlj3xDv/1MGFHTHoVUh/O89VBzGyzXzU3vQdvTV
   o=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 6Tapjj80L/6x0e0rU2eN9hznpXAS2VltBU2a9BrYp0QL2zakti7ApBW+L8exLQZiCCsgAlWRMA
 UruaB6+7HyhUv/+T+AorZht87uNr2i8J22k/4IcQXERx3B9EFN3ZaJE3xOG3eE0jaY6W8CFY3E
 8FxKU7NvIuJtz20PI3aKRMElKepn4tdBbj5532m6WIc6YLbvFK/gtUy/2zShhT90lupNCXO87b
 yQG+wJTiYlzpBU4RvBYQ+eCQmo/kvbb4f3LwOOit3towl3c+Yqq0HEDFhJec+T4MBvGzlypWUL
 lBZbh/l8ZBU/5UiIwshgawbQ
X-SBRS: 5.1
X-MesageID: 57288542
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:IYZr4a8nAOUPUA8csDd2DrUD3HiTJUtcMsCJ2f8bNWPcYEJGY0x3z
 DYZXWuFbvbcZTDzKdAkOo3l/EoP6JDWm4RkGQtuqiE8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdh2NYy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhT0
 4V2k6y5WDsZZKDUl70gDF57HTpxaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp0RR6aOO
 pZDAdZpRAn6SRZyB15OMc8Bst2ipD7SSBFmiGvA8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru/W70HxUbP9y30iee/zSngeqntSHmXIMfEpWo+/gsh0ecrkQDBRtTWValrP2Rjk+lR8kZO
 0ES4jApr6U56AqsVNaVdwajvHeOsxoYWtxRO+438geAzuzT+QnxLlYDSjlNedk3rvgcTDYh1
 kKKt97xDDkpu7qQIVqc6bW8vT60ITISL2IJeWkDVwRty9vsuoYolTrUU81uVqWyi7XdFTjuz
 hiQoSM5hrFVitQEv5hX5nie3Wjq/MKQCFdouEOHBQpJ8z+VeqaHfNyTz2jS/MpwdouBQQC84
 z8nldORubVm4Y62qASBR+AEHbeM7vmDMSHBjVMHI6TN5whB6Fb4I9kOvWgWyFNBd59dJGS3O
 BO7VRZ5vccLZBOXgblLj5Vd4ijA5YzpDpzbW//ddbKiibAhJVbcrEmCiaN9tl0BcXTAc4lja
 f93ku72VB727JiLKhLsHo/xNpdwnkgDKZv7H8yT8vhe+eP2iISpYbkEKkCSSesy8bmJpg7Ym
 /4GaZDXlEQFCLKkOHCLmWL2EbzsBSJibXwRg5cPHtNv3yI8QD1xYxMv6ep5E2Cao0ilvriRp
 SzsMqOp4FH+mWfGOW23hoNLM9vSsWJEhStjZ0QEZA/ws1B6ONrHxPpPJvMfIOh8nMQ+nKEcc
 hXwU5jZahi5Ym+coGp1gFiUhNEKSSlHcirXZHf4O2djJ8YIqs6g0oaMQzYDPRImV0KfncA/v
 6ehxkXcR58CTB5lF8HYdLSkyFbZgJTXsLkas5LgLoYBdUPy3pJtLiCt3PY7L9tVcUfIxyeA1
 hbQChAd/LGfr4gw+djPpKaFs4b2TLcuQhsERzHWveSsKC3X3mu/2oscAuyGSi/QCTHv86K4a
 OQLk/ylaK8bnExHupZXGqpwyf5s/MPmorJXl1w2HHjCY1mxJKlnJ32KgZtGuqFXn+cLsgqqQ
 EOfvNJdPOzRas/iFVcQIisjb/iCiq5IymWDs6xtLRyjtiFt/beBXUFDBDW2iXRQfOlvLYco4
 eY9o8pKuQaxvQUnb4SdhSdO+mXScnFZC/c7tosXCZPAgxYwzg0QeoTVDyL77c3da9hINUV2c
 DaYiLCb2uZZz0vGNXEyCWLMzaxWgpFX4EJGy1oLJlKonNvZh6BogE0NoGpvFgkFnA9a1+9TO
 3RwMxwnLKqDyD5kmcxfUj3+AApGHhCYphT8xlZheLc1lKV0urgh9FEABNs=
IronPort-HdrOrdr: A9a23:Xzd3AKlKGjHOjBHieIaiGtOTHHTpDfO8imdD5ihNYBxZY6Wkfp
 +V88jzhCWZtN9OYhwdcLC7WZVpQRvnhPpICPoqTMiftW7dyReVxeBZnPbfKljbdREWmdQtrZ
 uIH5IObuEYSGIK9/oSgzPIY+rIouP3iZxA7N22pxwGLXAIGtJdBkVCe2Gm+yVNNXh77PECZf
 ihD6R81l+dkDgsH7+G7i5vZZm8mzSHruOqXTc2QzocrCWehzKh77D3VzCewxclSjtKhZMv63
 LMnQDV7riq96jT8G6S60bjq7Bt3PfxwNpKA8KBzuATNzXXkw6tIKBsQaeLsjwZqPymrHwqjN
 7PiRE9ONkb0QKcQkiF5T/WnyXw2jcn7HHvjXeenHvYuMT8AAk3DsJQ7LgpOifx2g4FhpVRwa
 hL12WWu958FhXbhhnw4NDOSlVDile0iWBKq59Ss1VvFa8lLJNBp40W+01YVL0aGjjh1YwhGO
 5ySOnB+fdtd0+AZXyxhBgv/DWVZAVwIv66eDlGhiTMuAIm2EyRjnFoivD3p01wt67UEPJ/lq
 P52qcBrsAGciZZV9M6OA47e7rDNoX6e2O7DIujGyWUKEg5AQO4l3fW2sR/2Aj4Qu1D8HMN8K
 6xJ2+w81RCIn7TNQ==
X-IronPort-AV: E=Sophos;i="5.87,203,1631592000"; 
   d="scan'208";a="57288542"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AxORpTAh+SXrv82SquiiQZJ2gbKhc5pQaNc0qtRgAoi2uZzetnqkM7SsbpzAjPbmikzvDOGI6lMcIMOHOXrt9NZPliHTRQblHDyAG0j0BursaDGoj80FfegKp28rPPza7XobEJK079ziJUOlpqWF04Ymmblte/VEfD706FSLwAPppadsDrSVPIn3z6T43OcEMXwlTgoYdw81HWljJm66rmqWtj7cS998wYZl09rHnwEDRRFcUHzsAdHccVw2ai4AjdNZyCMVJUJG4x9tJPIE4ZC25+p1V7OYjdjy31ViDmJ7Fv46fiGdh7zfouqnwhz9BT77AaH5za1GXt6h21NhRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kqD9D7+LPMzvZtTD206Tv/tD42dAz+jK6x/VQv9lAQM=;
 b=R3rHBRXeTZ8XuS/ax9xibb9GjctI0A6FojybgsVuY27u8CY9itYI7VOOt1vNIt5UHMeD94oTkVPHof4Ng3SQKqZV+zQ/kS5y2QlPsma73fL7sPBT9r3gf/EtcR+DPJNEHfywMgt+sd1Uzx+dbLdjzsNhlvkCeMTf3zegyfLA+OoGRBywJA43h1qGTpG5E63aPbuIE3C0YVJgCk9b5ZpUvmpkr7XqU/w+hdrglK2Fqectj/dauM4YmdSGh+CcadMSvPb6MsiPOFlCYj5I7sg8fAQQifqE4BdgmtqDAe6UscCF2WNrkOQRkma1Z9RBOEmFwbHG05sR9cFetYZql2vLgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kqD9D7+LPMzvZtTD206Tv/tD42dAz+jK6x/VQv9lAQM=;
 b=GKunzs7beCgOyZ7mhcqnJwkAzZDaqABqII91Ajfp0jr//ikhoBmqxj+jjrDxRiXJ0mTHq4ro3gfWk0w0SK0onxu6b/SvBYj+nGjEzlKU/k4OoJryOaI3kFQwsmVp7KGIK0k7pHkPlSkeZCLwLGAe+Ecag2lnqUf4RJit4U0sDEk=
Subject: Re: [PATCH for-4.16 v4] gnttab: allow setting max version per-domain
To: Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
	<roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>, George Dunlap
	<george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Christian
 Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Ian Jackson
	<iwj@xenproject.org>
References: <20211029075956.1260-1-roger.pau@citrix.com>
 <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
 <YXz579WNpHe7aO91@Air-de-Roger>
 <3715026d-b8e4-9940-6cfe-0ccf042cd07c@citrix.com>
 <4dccbbc9-0235-5cd5-1670-13bd51fc8b6a@xen.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <858f0cf0-be30-f57b-fd8e-cad3f83beca7@citrix.com>
Date: Tue, 2 Nov 2021 15:54:51 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <4dccbbc9-0235-5cd5-1670-13bd51fc8b6a@xen.org>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
X-ClientProxiedBy: LO2P265CA0039.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:61::27) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 919dc686-b832-4420-f9e2-08d99e191eda
X-MS-TrafficTypeDiagnostic: BYAPR03MB3622:
X-Microsoft-Antispam-PRVS: <BYAPR03MB3622B8838B355AD2C9334421BA8B9@BYAPR03MB3622.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Le/Q2BDdrzXSuQKFML9iDRtZX8ZpaelVcpMFoeeilzBI/kotYuA8Sn30yCffbq8F2g4h1RdkLTRoQ/bnNfcy6jbgonORznx4aiB9ugzx5QpNnvCsnzfU7BQXy0Zopfkm/y3sKjxZq+l8iE3KSi5munnmvBPdjeZZj/kGSfQn7Zb6P/mpY97CEMSg2CjNvu+7SPfIFZm1IYWiLWW8RXQhI5+vtpe8oFy2ppCaeu/055IsP5vImG++i0tafwzvpKLgXpfIhwBDgSR2oHITS3nx2VXrdwd/vcQyai0fJ7AqfVW7Bk9z4YnS9LUy9aZ07vcm5ioKrtss1EHXzZLwDKZlIVARw2dbQNuc/5d2JA5RUlJChH25v4l6TFvm9XFBIjX3SlwWaGqmHbmAV/t1WOmmBx0ju7NOsA6zw3vZ+3yOGdBa0PqZ68hrtB0nu0LESFApaIUYTCIMQYPvYk+67eLv4guUOLYpuOkQVyXnkB+Tx28E5aPbXwykGJQzAOgqKimybO+qdhiCz0/9uYwkr9/SXj4Wt/irfrKAF9AmSXxRbtBttPd1YsXNvgFhZ+V2pkH9q5awzdjZoqaMVtwis8Jw7USgEL4ffOOKEdO+l4Rv8glgInHimWA4+M0ycBSuTJGgv9OAm+OUWAosbTQNkB2mprYeE6DjQG8y6YHc9K35zbuDb6f/KxjHjLE/eBlslKk6WJe1K3+TOnqZjDJfA2SKKrlfoTFdj1lbXC+mtgzTjcIiWpzIaDbcXr/4u2hxthcA1bOKtoA7y4WHLmjKD0MZHuxyJLeumJTj5jgI1X4PXfQ9ufBzWH/72if56CSzYB+J3ICnZQl9vIThTVqpqfI2qQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(186003)(36756003)(5660300002)(2906002)(38100700002)(6666004)(53546011)(31686004)(4326008)(86362001)(8936002)(508600001)(6636002)(6486002)(966005)(2616005)(66476007)(31696002)(82960400001)(66946007)(316002)(66556008)(110136005)(54906003)(4744005)(8676002)(956004)(16576012)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NGRzVGVxcjRjNVpGMzNrVnFIUTcrSzZ3RjFvUXpCWWZFYVlXL3ZZWnp1RjFH?=
 =?utf-8?B?b0hRemFyb0wzTGRSdnFiSFVGUHI3aFFLNmRBVmpBUllZYnFsenFaTXJSWkdh?=
 =?utf-8?B?THhvWnZQMmw3WUQ4bk9wWk16MFRpcnU4RndaejdvUkxHcnhXYk1MNS9YdU5F?=
 =?utf-8?B?SWN0bUNqa3dZbktWSVhzb29rTHovSVFJUnhQUGhSa0ZHL0dwZk50QkVrSFdQ?=
 =?utf-8?B?VzhvdXhjdzliRzVhUkJjZWRYeEQ1UEpNejNaRFU4V2F1dDBEYWJNNld6WDcr?=
 =?utf-8?B?VDNzVGRnQ0FTa2J4V2VzK3hBS3NZZWVPVWpsYkpucUVVZ3pOOUFYZURjMDNi?=
 =?utf-8?B?amM5eStBTlpXL256Qm5kUDl3UWhyVHlidUcyREVGeDJkbVNseU5hZjdEcWUr?=
 =?utf-8?B?RTRCNmRuUTZCNElkVDBYd2cvUlBnYkRPUmFQTkYrZmxBb1oxbEwrSGg3NWVx?=
 =?utf-8?B?dVU2NjZWN0toUmZqVURuc21qMjZCOWQ4QXgxQkEyQkdqK1NsbzNsY0FjWHEz?=
 =?utf-8?B?bDlUVVVrOWRTZVNaUmEzME9PZFYyMUc0NnlueHVXcTIrREhiZGVzQkNUdW5H?=
 =?utf-8?B?TllvSWltd2hRWlNsNnY4V25pTEVzQVBJRFYxQTYzWit2RnF6L2dKNkhWb3d4?=
 =?utf-8?B?UmlyNDZSVHlrSWtNbFMvdEZlclk0NGJ6aWllUUtCYTZZNEdKTmVqWjRCWHdw?=
 =?utf-8?B?VFMySTNmM2J6cmozVXRKMUhxOXptTVdRWXJPdkpCWFZ4TGUzQ2NQYzhnR0pW?=
 =?utf-8?B?dlRDTGN5by8vZ2REb2Z4dEQ3OWZwQUIvVkM4OGNMbGp2RTVEVmdGbmVBNmFU?=
 =?utf-8?B?MjR3ZUkvQzlpTzlFWUx1clNSRTZ4TGxCRUJDWHE3NTR5cWxkZXg0UHdRU0R0?=
 =?utf-8?B?RzdkNGxGYzRneUNRZENVeVpUV0xqUFhvZTFNMmthdkVuVTFFSEMzaThzcmlJ?=
 =?utf-8?B?eUFKZnJNMFEyU215YXFCMkI3K2tDU2dXeFJGbE9Yb28xYUREaGNFREd3MEZT?=
 =?utf-8?B?eHMwZGlRMjFiRGJvaWxBQkpYbU1MZzFCRE9SSVkzbXRFUHplcWR4SnlqNUc1?=
 =?utf-8?B?TWEwUVJRYjRMY1NnWnhzbFBuRW1hcEVHSXlPa0FTMFptbTM5bE9NYjAvSWlK?=
 =?utf-8?B?QU1EekVmNVJvSjFlbUFlbGRlVUJOMDcvRXhyeWtlM1VVRWhOMkZXV1hGK0ZF?=
 =?utf-8?B?Vm8wK0IzVHBCVERRVXI4MitSRkVwaW52TmJJODBtSTFSWW93cGpQMCt2bXFL?=
 =?utf-8?B?U2FxMHlUUzgrRHJIeXpCODZETGtlQWw2TWpJUk5nTk5zZ2cyOFFXdWl6U213?=
 =?utf-8?B?L2JBVlk0RFM0T25kQ0NVRjRobkFnYVpqZXFERVRYMm5ZMlBwbnZyellKY21L?=
 =?utf-8?B?RVBnNDhnUWhkeS91eDhhZVRRMW1VZWc1VWJpL25mRVpmZnJZTEN4VFhCdTBV?=
 =?utf-8?B?SzVteHQzL25kU1lkUXRwN2dvTzVNdXh4bzZpbUpZc3Y2elJvQ2EyR2RXUkdv?=
 =?utf-8?B?Nk4yMERRVDg1R3BDTGRpNkZucGdzTEQvTlFxQlZmRGVoWVlLUE0rU0VTZ1cr?=
 =?utf-8?B?VVFZZ3prODBZSjlZSUVSMElmaFNJa3M0MmVTTjYrclltL0RJY1lJZlZhS3c0?=
 =?utf-8?B?TGxHZnZmR2VqRzhPWHZXTDhmTHRvcGVNM043eWVwZTRKRDUzTVBKQkl6eFI2?=
 =?utf-8?B?T2xZUUp6RHlCQlQ1ZGxHMmpneUdCcUdjZUUxeXdKZHFIdmd2YURyaHY1eGkz?=
 =?utf-8?B?Qy9VZUlnZkZMWnh1eWpqdVQxQ2VWVkc0NStZY3BGSTZkYW5nbkZBdm9rdERS?=
 =?utf-8?B?OW1VTWwyN2FFUlAyZlZBSktIZG1tcjRKdlFYWkJjMlZtM2VuKzk0WElTbllm?=
 =?utf-8?B?QU9Oemc5c0wxRFZ3Q3RYcUxzZHd2YTlxa0F1eU5PM0hKbXNybmN3bGYvYS96?=
 =?utf-8?B?UFJEMWtWQThpbDBaTUxlK1lORVZtbDJZQkdMM2VaU3ZDOGV2ZHVMUXMzUWVK?=
 =?utf-8?B?R1NKUGtpYXJESGVOdk44dUVoaEVvc2dsRXZCUlo4NEhwSTZHTUYvbzRGOEdH?=
 =?utf-8?B?WTN5MlVXSHlKU1Zya2VWYityai82T3lXVW5MRHF3djc0dXpnQVMySEVVV1Vn?=
 =?utf-8?B?dmNRNkEwaWl6S0NwdWh1QnkzMlJDQW5UV3ZHUE5SSUpicGNkZXQ3S3BGa3BY?=
 =?utf-8?B?UlYydW9TZXlkMS90YkpqVnNEcHUweDRXKzZ0bndWOTViOVc4cWtZeWl0d3da?=
 =?utf-8?B?Z3VUQlM5YTJia3QxcGN2dWJpdU53PT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 919dc686-b832-4420-f9e2-08d99e191eda
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 15:54:58.3851
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hDIYq8yLGCLBApLUnbtYg1q8vtW61Uncwh4fxWsHjT4RsZ9R7rA98G5dcc3sHP7ApKb9e2XQvpQPDuvNN0TOWYSw6gJCepwQ/fBAVirgF5Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB3622
X-OriginatorOrg: citrix.com

On 02/11/2021 15:00, Julien Grall wrote:
> Hi Andree,
>
> On 02/11/2021 14:34, Andrew Cooper wrote:
>> Same too for
>> evtchn, but we've already taken a patch to knobble fifo support.
>
> I know that Amazon submitted a patch to allow disabling FIFO [1]. But
> AFAIK, this is not yet merged because of disagrement (?) on the approach.
>
> Cheers,
>
> [1] https://lore.kernel.org/xen-devel/20201203124159.3688-2-paul@xen.org/
>

:(  I honestly thought we'd fixed that.  It certainly needs fixing.

I'll see about adding suitable evtchn abi indications alongside the
grant abi indications, but that will have to be tomorrow at this point.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 15:56:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 15:56:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220393.381671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhw8s-0006R2-5k; Tue, 02 Nov 2021 15:56:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220393.381671; Tue, 02 Nov 2021 15:56:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhw8s-0006Qv-29; Tue, 02 Nov 2021 15:56:06 +0000
Received: by outflank-mailman (input) for mailman id 220393;
 Tue, 02 Nov 2021 15:56:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhw8q-0006Qi-KN
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:56:04 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhw8q-00006X-JY
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:56:04 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhw8q-00030c-Ib
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 15:56:04 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhw8i-0001X8-4d; Tue, 02 Nov 2021 15:55:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=VPgzcvP9jLRZCcOlZbU69nGyvW5xQL1G2vHbhzY9N1E=; b=qWWM4d+SE6ki5+KVtyLBd6FmZZ
	gThmd5T/1iz0K2BsBCHdABuSc9mg8RNG/HwxM+ry3B26JiXmKwxj1L2od4oqTI3I74LtqZwcek+kP
	He/iRkjzKtPM57WcbbuzmBmMviptRlik9w/8QUIa1DKTLVkfh1bY5zv5Kf2pS2PkMVwg=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24961.24458.443619.742444@mariner.uk.xensource.com>
Date: Tue, 2 Nov 2021 15:55:54 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Julien Grall <julien@xen.org>,
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Bertrand  Marquis <bertrand.marquis@arm.com>,
    Rahul Singh <rahul.singh@arm.com>
Subject: Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers
 [and 2 more messages]
In-Reply-To: <alpine.DEB.2.21.2111011402320.20134@sstabellini-ThinkPad-T480s>
References: <20211027082533.1406015-1-andr2000@gmail.com>
	<cb7e9ef7-476e-93c3-d3c9-9a9ebc61003d@xen.org>
	<d63c6e0b-8aa3-9ba3-893c-5e464638a8db@epam.com>
	<65886734-7333-4469-fcc1-6916db708f13@xen.org>
	<b6bb02b6-6358-b5e0-1b80-7819aadabe10@epam.com>
	<6d8f1061-7aec-2c1a-aaf4-c30440c2797a@xen.org>
	<38da2edd-06a2-63d0-51ad-1284272c8da5@epam.com>
	<a74b52fb-6514-4187-17fe-b63236efa0ce@xen.org>
	<24954.51153.588540.850154@mariner.uk.xensource.com>
	<d7e4ae66-f648-e18e-79c8-fae6eb896f00@xen.org>
	<YXkU+DKYmvwo+kak@Air-de-Roger>
	<0bbe4d1d-421d-e816-42aa-f43581902a02@epam.com>
	<24953.34635.645112.279110@mariner.uk.xensource.com>
	<24959.49313.936961.936820@mariner.uk.xensource.com>
	<alpine.DEB.2.21.2111011402320.20134@sstabellini-ThinkPad-T480s>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Stefano Stabellini writes ("Re: [PATCH] xen/arm: fix SBDF calculation for vPCI MMIO handlers [and 2 more messages]"):
> This patch [1] is a straightforward 2 lines fix for vpci on ARM.  There
> is no risk for the release as the source file affected only builds when
> CONFIG_HAS_VPCI is enabled, and it is currently disabled on ARM.
> 
> At the same time, as we know vpci is not complete in 4.16 anyway, so the
> counter argument is that we don't need to fix it.
> 
> Given how trivial the fix is, and that it cannot break the build or
> runtime, I would take it.

Thanks, that is helpful.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 16:01:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 16:01:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220401.381681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhwDm-0008U9-RA; Tue, 02 Nov 2021 16:01:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220401.381681; Tue, 02 Nov 2021 16:01:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhwDm-0008U2-OF; Tue, 02 Nov 2021 16:01:10 +0000
Received: by outflank-mailman (input) for mailman id 220401;
 Tue, 02 Nov 2021 16:01:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhwDl-0008Tw-8y
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 16:01:09 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhwDl-0000nT-3t
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 16:01:09 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhwDl-0003TQ-3E
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 16:01:09 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhwDU-0001Za-O9; Tue, 02 Nov 2021 16:00:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=Dai0H+tuPEb1tkqZ47Fy88yw9gcbx1FydiV2M5UUips=; b=dPfNmedWbD6vKhDLqw0GYvbMuQ
	2vH83QWGnKtzozYIFQF1Hn+pHa1mh7l8gYuDJ/cCVE/X+yqf7rti7/j8pwthI4mLDgEqF0U4cBMKQ
	WxBdtSarmO++mFTIpfKJvpvIwd4EOa6P8wJDrQY0JI7EyjB+9S3DSwssWH/JKzN66o8I=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24961.24756.236341.888900@mariner.uk.xensource.com>
Date: Tue, 2 Nov 2021 16:00:52 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: Dongli Zhang <dongli.zhang@oracle.com>,
    sstabellini@kernel.org,
    julien@xen.org,
    Volodymyr_Babchuk@epam.com,
    andrew.cooper3@citrix.com,
    george.dunlap@citrix.com,
    wl@xen.org,
    joe.jin@oracle.com,
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 1/1] xen: update system time immediately when
 VCPUOP_register_vcpu_info
In-Reply-To: <fdcc4adb-c823-2c08-57ed-e4306c1e186e@suse.com>
References: <20211025173523.3647-1-dongli.zhang@oracle.com>
	<fdcc4adb-c823-2c08-57ed-e4306c1e186e@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH v2 1/1] xen: update system time immediately when VCPUOP_register_vcpu_info"):
> On 25.10.2021 19:35, Dongli Zhang wrote:
> > The guest may access the pv vcpu_time_info immediately after
> > VCPUOP_register_vcpu_info. This is to borrow the idea of
> > VCPUOP_register_vcpu_time_memory_area, where the
> > force_update_vcpu_system_time() is called immediately when the new memory
> > area is registered.
> > 
> > Otherwise, we may observe clock drift at the VM side if the VM accesses
> > the clocksource immediately after VCPUOP_register_vcpu_info().
> > 
> > Reference:
> > https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg00571.html
> > Cc: Joe Jin <joe.jin@oracle.com>
> > Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Ian - any thoughts towards 4.16 here either way?

This looks like a bugfix to me, and the diff is certainly small.  I am
positively inclined.  I would like to know what the risks are.
Stefano says this does nothing on ARM so the risk would be to x86.
Can you advise ?

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 16:10:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 16:10:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220410.381693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhwMe-0001Uo-Ol; Tue, 02 Nov 2021 16:10:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220410.381693; Tue, 02 Nov 2021 16:10:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhwMe-0001Uh-Kx; Tue, 02 Nov 2021 16:10:20 +0000
Received: by outflank-mailman (input) for mailman id 220410;
 Tue, 02 Nov 2021 16:10:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hRh8=PV=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mhwMd-0001Ub-56
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 16:10:19 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 67eb4f58-7fcc-4201-9158-81075d19ef6a;
 Tue, 02 Nov 2021 16:10:18 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 7E2362190C;
 Tue,  2 Nov 2021 16:10:17 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 659EF13DC7;
 Tue,  2 Nov 2021 16:10:17 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id e3VlF+ligWFoYgAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 02 Nov 2021 16:10:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67eb4f58-7fcc-4201-9158-81075d19ef6a
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635869417; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type;
	bh=RtrT/nU39Z1bSm5jY9fGv4To9a/cMqN3O1fQ+hsOm5w=;
	b=rvmG+cRA3TuCj9K88ewqE9hER0x2+f/vyISqPcFP38G/xvc20vJGrgBQ/oOrY4D5pRgNaU
	ZjAGwtaYhCX51sUyvg4DUlvnnHI378u0AC/xzIdQt9mKgeXUcIvRNajnd00niV6HKgLPai
	2V5lb+koSQBROWJIuBVUY2iLDIF4xWQ=
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "Xen.org security team" <security@xen.org>
From: Juergen Gross <jgross@suse.com>
Subject: Bug Bounty program
Message-ID: <a6cbc3b1-dfdb-ab22-a00e-09db81c25c3f@suse.com>
Date: Tue, 2 Nov 2021 17:10:16 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="sjHRvZEv7WrFRxGBt5saQ6brBZuHZkSjE"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--sjHRvZEv7WrFRxGBt5saQ6brBZuHZkSjE
Content-Type: multipart/mixed; boundary="syvt2uplwEyCSOuA0fmOhf8A49TY5VImg";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "Xen.org security team" <security@xen.org>
Message-ID: <a6cbc3b1-dfdb-ab22-a00e-09db81c25c3f@suse.com>
Subject: Bug Bounty program

--syvt2uplwEyCSOuA0fmOhf8A49TY5VImg
Content-Type: multipart/mixed;
 boundary="------------1ABCE5C356D00298E7FD5A4F"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------1ABCE5C356D00298E7FD5A4F
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Recently we (the Xen security team) have been invited by HackerOne
to join the Internet Bug Bounty https://hackerone.com/ibb (citing the
original mail):

 > The Internet Bug Bounty <https://hackerone.com/ibb> was created with
 > the goal of helping to secure critical open source infrastructure.
 > After almost $1M paid out for vulnerabilities in open source, we are
 > expanding the program's scope with more OSS Projects, and I=E2=80=99m =
reaching
 > out to you today because Xen Hypervisor was specifically requested by
 > multiple partners.
 >
 > - Partners contribute funds to a shared pool, and nominate projects
 >   for inclusion
 > - Projects opt-in for inclusion in the program
 > - Vulnerabilities are reported directly to project maintainers by your=

 >   preferred process
 > - After a public advisory is released, the Finder submits a bounty
 >   claim to the IBB
 > - Bounty is split 80% for finder and 20% to the project

This is something we as the security team don't want to decide without
discussing it in the open. We've brought that topic up in today's (Nov
2nd) community call. As maybe not everyone wanting to bring something
up was in that call, I volunteered to write this mail to xen-devel.

There are a few things we already discussed:

- As a large quantity of security bugs is actually detected by the
   security team while looking at other security bugs, we feel that the
   members of the security team should not be claiming bug bounties for
   issues they find in the code.

- We are aware of the possibility that someone (being a contributor or
   a maintainer) might try to sneak in a patch introducing a security
   bug, in order to claim a bounty for it later. OTOH setting up rules
   for a (hopefully) never occurring case feels like overkill, and we
   don't want to drive away potential new contributors or maintainers by
   excluding them at least partially from the bounty program. So right
   now we are inclined to not setup further exclusion rules for claiming
   any bounties.

- General consensus seems to be to let the bug bounty program only cover
   our coding. Any vulnerabilities reported against the Xen project's
   infrastructure (web sites, ...) should not qualify for claiming a bug
   bounty.

Are there any further topics we need to discuss, or is there any concern
with above statements?


Juergen, on behalf of the Xen security team

--------------1ABCE5C356D00298E7FD5A4F
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------1ABCE5C356D00298E7FD5A4F--

--syvt2uplwEyCSOuA0fmOhf8A49TY5VImg--

--sjHRvZEv7WrFRxGBt5saQ6brBZuHZkSjE
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB4BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGBYugFAwAAAAAACgkQsN6d1ii/Ey+/
awf2L7QxFxhIBWuNgB6gPYJDMfc1YvRRFpU3+H3vnfKXc+2AguB7XpV9ed7J3HGr6A4KbBqDy/91
sEu8vFjus4Q+tzhBN9Xxg29DoS/MS3SowTOEqzBUkx6uWNnOionGvVCTWU8uScZkNCNs3awKonQF
HkcE6+Ggz62ojvqWLfQrWKqK0MuuqIEPKbdFQxBMntMPhzHSF86Brm/8LFiaqcUNUqpyE1c0e7tr
32RRs61PD+NqbQighhVcGHHi3K/kx1Dq4mnSQkUQrpPc+eAsmHzg9VkUQYjijyHoT16AIEGValLW
BN1++aPGqy3D6UnIThubngnXGWlcH5zAiLpf/1Br
=4QN+
-----END PGP SIGNATURE-----

--sjHRvZEv7WrFRxGBt5saQ6brBZuHZkSjE--


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 16:37:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 16:37:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220427.381704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhwmD-0003rQ-IS; Tue, 02 Nov 2021 16:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220427.381704; Tue, 02 Nov 2021 16:36:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhwmD-0003rJ-Ef; Tue, 02 Nov 2021 16:36:45 +0000
Received: by outflank-mailman (input) for mailman id 220427;
 Tue, 02 Nov 2021 16:36:43 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxJb=PV=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1mhwmB-0003qx-Kz
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 16:36:43 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id d15fe036-757a-4759-b38c-5db01a67c164;
 Tue, 02 Nov 2021 16:36:42 +0000 (UTC)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2052.outbound.protection.outlook.com [104.47.10.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-3-fpMJvkbQNa2-BMI1ujX0Ew-1;
 Tue, 02 Nov 2021 17:36:40 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6382.eurprd04.prod.outlook.com (2603:10a6:803:122::31)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 16:36:38 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 16:36:38 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR04CA0017.eurprd04.prod.outlook.com (2603:10a6:206:1::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 16:36:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d15fe036-757a-4759-b38c-5db01a67c164
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635871001;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=gXdttXKkhlq2EKKHB51M9XelpFL4mhE9EhXefEQ5kdM=;
	b=J6pyRG4WNUAtrqNNIQSq5dfnYrlLZZaRsmO2fPNbZ0rM9JNMQTvwV53glchZlcJoG7g/Py
	3uVfDv9CYtL4m6rDWZ9/hpxdae+hN5PG8dSY+Xqiv/qT+VgcQnvzYZOnxMj/GzKr6zG6qH
	ZrjRJV4bmE8FGLLxjmydeeH330+OmXo=
X-MC-Unique: fpMJvkbQNa2-BMI1ujX0Ew-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=akGZbqHy0o0BP9L/w+hJ/CRklaspvbbn4JvKA3EX0ZDdoIKZaqI9rg59jpbgQDcd4Rh9JLUfHN2/wxeK9Dfz2ggHXe7JVV3O6hPnKYtDv8IZeSFRM3+dU83mq6MkMKm4amxK5+8Mp94SBudvuduTm2mG6CRISqfFAgib70KALrDFlh9OPESVI0OyptxC96spboPPUeE/oQ25tCMKHbRy9rJq5McIKL6sbGxGscuXKTlSiWwhAvBSvjyv2hlq/dwyCRphz0x0ucsixm4B0lFKcmU2zXZDOddz/RbU+xK3YQKvXapkhqB5moROpqH9OEwuOLkzqugoYmTnKpvZL2rS4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gXdttXKkhlq2EKKHB51M9XelpFL4mhE9EhXefEQ5kdM=;
 b=DEoh9tQRm+SucEeNVU5NWmsBmH653ULWAc2C+bnGNS/6ERnh9FjAYD8FLqhj9Gi6TXtbf8HljYMheDKwMOyRclWN1KuWP+xGid7tWPoexoZ4bkQ94vNDPb4nIbZays+FwAMloRSBuHfH0TUUPu5YmLvb8t7HKmqdBUrVv4AtNvR8m53WWW0uRAIumD56ky8eKsuYvg2yFmKs2nHdiQVr6ZT3wz8g2qIypUYLRKdKn9wdv4avfMCmTC6gsO+9bdCrGOrK6Rr+D+znMUM+uxAqjUtF9TVUo9YH5Ybu/d5ZLhajSEkzmrqReRk+MuAjG8MZHb3+hj9IN+hbVdX6aQP3Hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ec809d19-670c-bc91-7b08-0cb7734f0d80@suse.com>
Date: Tue, 2 Nov 2021 17:36:36 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 1/1] xen: update system time immediately when
 VCPUOP_register_vcpu_info
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: Dongli Zhang <dongli.zhang@oracle.com>, sstabellini@kernel.org,
 julien@xen.org, Volodymyr_Babchuk@epam.com, andrew.cooper3@citrix.com,
 george.dunlap@citrix.com, wl@xen.org, joe.jin@oracle.com,
 xen-devel@lists.xenproject.org
References: <20211025173523.3647-1-dongli.zhang@oracle.com>
 <fdcc4adb-c823-2c08-57ed-e4306c1e186e@suse.com>
 <24961.24756.236341.888900@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24961.24756.236341.888900@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR04CA0017.eurprd04.prod.outlook.com
 (2603:10a6:206:1::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8e02431e-dd4c-4385-e974-08d99e1ef134
X-MS-TrafficTypeDiagnostic: VE1PR04MB6382:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB638259CF41B205809E02A232B38B9@VE1PR04MB6382.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	H11oIOE0lXL48UZ3G9nk4qEtfdmbcHWsqJzBvmj217CRAzXqZHfv0Mv0aokbqRdR46xZ4tcXWRRLi1rPvd+kn9+fi6ylKTkfgyiErIrmOXQPo0NAiXovHE7DsriMqBY1YDmAkOWVTO78KwVSdKFLLmEgoV5gsvwP5+50X7ERocfI5Q0LD9SJE2GOBDMdPp4O1ivIyDoVzrt09vzd3d8kOvekxs4YTVF4COZ4j0UjZt3B3PggVUo3Ge8iAsB8E6bbT0AiWgaNnYsxRfSFpPecmEnMjz4rS31AcfG8Rh1Ca2zrC0DSoNsFERANocSgq1mPXWSmHTXvYLkBkEf1UMJbjw6ab4i7zkYT1K+sa4Pi3NsVxISsbHw0ISngITwfIBP0p06mpsMGYcnjB3ubgeRQy8RP4PhM/LTbf57eFd/dpV4untNe/iYjxbgLAjFNaEj+cqmkRUBEBpEdzNzEhg6Siki60amgTy3/2qmk8kG85e/b1x03eQ4UVlWIsoX9NGCmXklFGagTqJZnNZXfyJ7ckPPBlGb6kCDybaU1Sk0KjAE+ReIW//u9U1oHJwGbBahTGFUyPf4mXMBKevxuZrhz2GElva6dDz/9RU8YsNZoOQNndSWdvfA3w3C8RWi3chxk0FYK5R87VVKcHhnTo6wneJYtGWsRDzkgVWGxnSbTDoGnX5r0F0id1NtWIl88oh768iNhRTg7KK/vq+y98BuMA0zQX7y9CKnoVdV7Zg63ymvuMeWM1PYPYTFlECpEfErY3HJ/Z5dvrvFb389wg61grqOHkKmpBQ44yDGF2SzPwT9WJ9kESQg3HYwJwes01COGVkHDQVy5TSgaNY1aupUIPA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(15650500001)(26005)(508600001)(4326008)(316002)(16576012)(53546011)(186003)(956004)(2906002)(2616005)(31696002)(6486002)(7416002)(36756003)(83380400001)(6916009)(66946007)(8676002)(66556008)(5660300002)(86362001)(966005)(38100700002)(8936002)(66476007)(14773001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cC9McHg2aXdrbDBiWEZSZ3hvbFVLdnc5eVhmc2o1MDl2Qlh2TmxjVU9xNFh1?=
 =?utf-8?B?ZXIvN2cvYkFaN1BlcDBNL1dUd3lwRXRhb3d6a1BxQ09Kd2Q2aTcrTkUrUElR?=
 =?utf-8?B?MnVLVml0ZXUrdFRKNHpuN251Wkk5aCtxdDBsVWFzOWsrb0lvdkZFMWk5WEFV?=
 =?utf-8?B?RVl1d09NOHVmQ1hzUzdkSTgxNU5EWDJnMkRXUnY2aTFrN3hiUmNaMmRjUWhC?=
 =?utf-8?B?dmsvSzRHdCtTc2FZdUlxcUlpbThjWkhIOWRXd05lMmZGWHdaS0V0L094VTEy?=
 =?utf-8?B?eUR1UjAxVStzRDM4Nys3Q0JnTFBPOERTWWxXSHNRWkx1eU8zK0V6NnM2dk1P?=
 =?utf-8?B?UDcrOW95VWxNbFlIZlBUSHpEYUg2c1owRFVTTjJ2SGc1bksvb1dWVElLU0VQ?=
 =?utf-8?B?Y2E5LzBGY1JjVUxHYzNwMlQrZDJWS3cxaHNTTXBSMUU4L0lhSkhWbkZ3Vmho?=
 =?utf-8?B?dERzdjJrWlEwRWlXay95VW1OMytrNmE3WXBDSVlwWGxoMEZKY2c2WmRhTFhy?=
 =?utf-8?B?MU0yQXRGUG40Ymp1TmVLWjZWc3VpY0kwbldjaFU4WDZNMnIwa0FvUDdqZEhG?=
 =?utf-8?B?a3prT0VLSWtLcmREeUlIUXI4ZEppMjA5TlpRZTA4UlRKMmJJUXZEcFBweklE?=
 =?utf-8?B?SENCdUJVUlRWY3dVRjI0b3hCRmdhc3AzbElXZGNNWDVLajMybWY4ekE4S0I2?=
 =?utf-8?B?M015QzdKVHM5Ym9wekkvcmJzdWRiYmpablVVbXdNMVV1OFhlVDRxOFZQZVJK?=
 =?utf-8?B?L3ltRHVOd0JXNjlQcmxOaWthL3ZEYlZaL0o0cUV0cTBBcHd1eURSMXpkZDlN?=
 =?utf-8?B?dXN5QXdkV2sxMUhGWkFDemZLOFh3QldyM2VTdVp5UHhTM2Zod1Noa0tlaXl5?=
 =?utf-8?B?VUw5Rkh2NGtnK3AzSWhCMGhQZjRFMDQ0b3hJU3VYZDV6UVVreGQzV0hFWUkx?=
 =?utf-8?B?NWU4Nk55OExIS2pKdVJ0dkhnSFU4eDBEc0l5cGkxYVpWeGYrZTg1eXlRQmtl?=
 =?utf-8?B?bDVMdWtyWDk4U2R4NTlzREhFVzIrd2VyOVk1aklTVVRJVUpMV0RFQi9heUVU?=
 =?utf-8?B?VGd4VTRrMXBHNlRWQnE2cDVoRWhpa21xSDg1Ri96VUtBa0Z5a0gzeHZkb2hr?=
 =?utf-8?B?VVJ4anVtc3g2YnNIWkd0NzJpdU01Zmd0Z3AwOUhucWllcjBFN3JrQTNqbEx1?=
 =?utf-8?B?VjkxSzRjWDE0NGw5RlJaNUhzY3RxdSt1Rld1RHV6eDd0K1hkWHdqS2dWQ2Uy?=
 =?utf-8?B?SXkxQ1BTMzBhS3BtL2pkYm9OUEtZckNxZ1VTSTdJbkMwTkprRnlRcWJuQ2Ni?=
 =?utf-8?B?dVJ2bGFHYzI3akJtYVdwa29SNW9OVmtXd2F3RldwYkI3UzdIMXVLUWNIY01Y?=
 =?utf-8?B?VG5EZmtqTkc0REJsTG1VcW14MGFtNnJyS0RaN1U3aGE5VUFsZFE0a2ZLakwz?=
 =?utf-8?B?ZkhHRWdQUG45eGRiYmhUNFQrVnk3dGN6SzlnT3NMNVBWNlhaRHpObTBEdmxE?=
 =?utf-8?B?N0xUT1ViWVFMQlg0Z0NSVGUwczFGTWZQSTR1ZTkvNkxDZDBWd0ZWN1ZOQ3ZS?=
 =?utf-8?B?NVJDdStvOER4cjBZaVBDZDMxdTZhWVJHbmprQ1RRemFTR0c4eGNwMmtCdUZZ?=
 =?utf-8?B?TGNPRFVIajEzVWpqL1hBeUJYc2Qrb0FsWUJlQUlJQWNOSTdHU3hIWlVFemZr?=
 =?utf-8?B?aFI1VEM0OU80bnBIVkJiWWVRT3pOa1JYbm5udGxpakhPcS8xNHk2MTRpcEgv?=
 =?utf-8?B?cTIwY0ZseG5kVVV3c0JMY0FVc2dkVXRySkc5K2FvUmlTWmJxZ0Z4ZkRkWFox?=
 =?utf-8?B?ZFJwNi8vdXhjQit4TkNNcHE0VVo3eDRvY051Skp6WTRDTHYzL09vZU4yRWtr?=
 =?utf-8?B?dDN1bFllRGErTmV3MzkvY1lMVlVxR1VmWHhOYk5HVzNxRVhHTkx4RjR2TWU4?=
 =?utf-8?B?N0taNitiNHF3cTFBZW9xY3lQNXVOZU5rNzVnUy9uVDgwcTZLeDBaWmw1VEI3?=
 =?utf-8?B?TEJtcnRGTHFsenZtUnhmWWd2WlcyWlVqcEh4dmVwNHBFbktNTnk2U0k0Mmln?=
 =?utf-8?B?QTJyYUlEV3JzeG5hbGkvTnRIMHZFTEZEdnZtSm1wTjlsK2Zxd2l0RjRwZ2tS?=
 =?utf-8?B?NlJQUUZ1ejhnRVJzWEpoYmR0VkpyY0Z3YUVHMXNkVmRCRThDZkNkdXRsMjRE?=
 =?utf-8?Q?zJryssJ4vDFZChXSROeB4Wk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8e02431e-dd4c-4385-e974-08d99e1ef134
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 16:36:38.3969
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 40/MD7Sqr8OddPWItjblIokwu76u5dDwuG6K9dTDwAON/sCfX7EgqkdUOc5uBQ361nAsyL79uuOUedGccR60HA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6382

On 02.11.2021 17:00, Ian Jackson wrote:
> Jan Beulich writes ("Re: [PATCH v2 1/1] xen: update system time immediately when VCPUOP_register_vcpu_info"):
>> On 25.10.2021 19:35, Dongli Zhang wrote:
>>> The guest may access the pv vcpu_time_info immediately after
>>> VCPUOP_register_vcpu_info. This is to borrow the idea of
>>> VCPUOP_register_vcpu_time_memory_area, where the
>>> force_update_vcpu_system_time() is called immediately when the new memory
>>> area is registered.
>>>
>>> Otherwise, we may observe clock drift at the VM side if the VM accesses
>>> the clocksource immediately after VCPUOP_register_vcpu_info().
>>>
>>> Reference:
>>> https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg00571.html
>>> Cc: Joe Jin <joe.jin@oracle.com>
>>> Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>
>> Ian - any thoughts towards 4.16 here either way?
> 
> This looks like a bugfix to me, and the diff is certainly small.  I am
> positively inclined.  I would like to know what the risks are.
> Stefano says this does nothing on ARM so the risk would be to x86.
> Can you advise ?

I don't see any noteworthy risks - a call to a function gets added
in a 2nd place; the function itself has been working fine for years,
and it is fine to be used in this new context.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 16:48:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 16:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220438.381714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhwxo-0005K2-LZ; Tue, 02 Nov 2021 16:48:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220438.381714; Tue, 02 Nov 2021 16:48:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhwxo-0005Jv-IK; Tue, 02 Nov 2021 16:48:44 +0000
Received: by outflank-mailman (input) for mailman id 220438;
 Tue, 02 Nov 2021 16:48:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhwxn-0005JZ-Dh
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 16:48:43 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhwxn-0001YY-AT
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 16:48:43 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mhwxn-0006mN-9d
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 16:48:43 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mhwxW-0001hI-VE; Tue, 02 Nov 2021 16:48:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=C221EggYl6Pd3fYSCJGJ8jEmVvm8Y33iC1Ea3euEziA=; b=Dj6uBZzJ5df+5UZQXfu17Rpjec
	SL23MXKKwRP40BB5WYMthiMbV8l7McU9Ra2WjyITlPy5yHGwST0wC7SosBPWXYONpQuDtgaIvPPx0
	jYUbXlV/du8x1Acup2oSDa5ByzfeCZm9D5fgR8VRTwTX+AHe3b0rZUyX7dmvSzpSEMT0=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24961.27610.418674.441068@mariner.uk.xensource.com>
Date: Tue, 2 Nov 2021 16:48:26 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: Dongli Zhang <dongli.zhang@oracle.com>,
    sstabellini@kernel.org,
    julien@xen.org,
    Volodymyr_Babchuk@epam.com,
    andrew.cooper3@citrix.com,
    george.dunlap@citrix.com,
    wl@xen.org,
    joe.jin@oracle.com,
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 1/1] xen: update system time immediately when
 VCPUOP_register_vcpu_info
In-Reply-To: <ec809d19-670c-bc91-7b08-0cb7734f0d80@suse.com>
References: <20211025173523.3647-1-dongli.zhang@oracle.com>
	<fdcc4adb-c823-2c08-57ed-e4306c1e186e@suse.com>
	<24961.24756.236341.888900@mariner.uk.xensource.com>
	<ec809d19-670c-bc91-7b08-0cb7734f0d80@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH v2 1/1] xen: update system time immediately when VCPUOP_register_vcpu_info"):
> I don't see any noteworthy risks - a call to a function gets added
> in a 2nd place; the function itself has been working fine for years,
> and it is fine to be used in this new context.

Thanks.

I think this part:

| it is fine to be used in this new context.

was where I wanted a 2nd opinion for confirmation.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 17:13:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 17:13:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220451.381726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhxLH-0008QQ-MF; Tue, 02 Nov 2021 17:12:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220451.381726; Tue, 02 Nov 2021 17:12:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhxLH-0008QJ-Ik; Tue, 02 Nov 2021 17:12:59 +0000
Received: by outflank-mailman (input) for mailman id 220451;
 Tue, 02 Nov 2021 17:12:58 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zwst=PV=arm.com=Luca.Fancellu@srs-us1.protection.inumbo.net>)
 id 1mhxLG-0008QC-Iw
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 17:12:58 +0000
Received: from EUR02-HE1-obe.outbound.protection.outlook.com (unknown
 [40.107.1.45]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 13894fbb-0c6a-4373-8388-edcd7ed55c04;
 Tue, 02 Nov 2021 17:12:56 +0000 (UTC)
Received: from AM6PR01CA0065.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:e0::42) by DBAPR08MB5845.eurprd08.prod.outlook.com
 (2603:10a6:10:1a5::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Tue, 2 Nov
 2021 17:12:53 +0000
Received: from VE1EUR03FT013.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:e0:cafe::ec) by AM6PR01CA0065.outlook.office365.com
 (2603:10a6:20b:e0::42) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17 via Frontend
 Transport; Tue, 2 Nov 2021 17:12:52 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT013.mail.protection.outlook.com (10.152.19.37) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Tue, 2 Nov 2021 17:12:52 +0000
Received: ("Tessian outbound e7ce0d853b63:v108");
 Tue, 02 Nov 2021 17:12:52 +0000
Received: from 3de7b1a94e25.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 A1914F1E-89B6-4589-8C6E-392E15E67DC4.1; 
 Tue, 02 Nov 2021 17:12:45 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 3de7b1a94e25.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 02 Nov 2021 17:12:45 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PAXPR08MB6655.eurprd08.prod.outlook.com (2603:10a6:102:15d::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 17:12:42 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Tue, 2 Nov 2021
 17:12:42 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO2P265CA0297.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a5::21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 17:12:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13894fbb-0c6a-4373-8388-edcd7ed55c04
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uIuUAZWnzYjAYxu8FBARlgStez5hR787SRhucLPk6os=;
 b=RKdMsyyFvtXcUdVqO2cftWwSk7HB1PU4KYbUoJJvQY1KrHzghyBD5dP7x7DO1yu9aMSRX+Of91ig5S54CV40z5TOw0QruGVuheYsOs1+SyYeRI/A9wiVBM1jkekHHA9x7F6jvyQr3uI/mhr5gotitkyEbyBxhvnY+8j6u+a3de8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 276f9613d70b0c7e
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ASfRC3PYefv/IqMSusxjoQZMyxigA9DHZCrUjtutaDx8wJH6RagrEl4ThEDQ7X7vdeE4UDkfqxcz4BT0UBl79u1b/xIwVV0lML+fN+58uWw9e4dPwiLC3ximxhDqOxr1N0uNPRUg556Yb6gg6ext+XUdSN/IqhVhK6E4pFOdsfN+aMBGU+ZjdZ9BuR0wA53xmxphKHbLLKpbOIu/NKbWIMRRag7mdPtaMJphMI4ySTW8ZMMpqQ3YUz310dGOSxD9ObpW/OrmtHBZvSjI97x4dVs+fzbwwzAguPrESEJXqcwMX7Sm2eqrRwX/Qvfbn3PGRDPAuinC72194NHGW6Hy6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uIuUAZWnzYjAYxu8FBARlgStez5hR787SRhucLPk6os=;
 b=dMl0JoUO5aapliwP1ZXE03iO6w5VTMhMSXZIks4vyM3WBJMwAXNjTQ2gvsWQ9IxZEggFHFUY82sHjkR/nV5kUDWKbSIhi4f5IvXuNUT7kEhD0Ah4wSyDhuhUv0LNma5gF1GZ07vW3bjpTnST0h27N9uf3ns009cSnVPaFxbODq9K/etCLjwGRVH446PH0ZYCFWwqhIcv28UtwVvmyzMg+LPJiHdYbkB5w1JtrTIVUgd0rDdrJkQI8UPwCJVs7Jqj6wRo7wfEqhcE4emF5VuJaWvuGBrfCc4bUNvOLm9tUptt+lfRMJook28k4QzHXgyR06Rs7caldkphoDe5euIdNQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uIuUAZWnzYjAYxu8FBARlgStez5hR787SRhucLPk6os=;
 b=RKdMsyyFvtXcUdVqO2cftWwSk7HB1PU4KYbUoJJvQY1KrHzghyBD5dP7x7DO1yu9aMSRX+Of91ig5S54CV40z5TOw0QruGVuheYsOs1+SyYeRI/A9wiVBM1jkekHHA9x7F6jvyQr3uI/mhr5gotitkyEbyBxhvnY+8j6u+a3de8=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
Date: Tue, 2 Nov 2021 17:12:35 +0000
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO2P265CA0297.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a5::21) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fc5dd38e-2e80-459e-a5e7-08d99e24013c
X-MS-TrafficTypeDiagnostic: PAXPR08MB6655:|DBAPR08MB5845:
X-Microsoft-Antispam-PRVS:
	<DBAPR08MB5845D2472EB1FE7F04E93CB1E48B9@DBAPR08MB5845.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 k18Nk6gFcLTTplRIfXDbUXliYrwmwdc0xTbYfplstALjbKdh+UVBVdaNt9jfaxkj5ESiAVBiKgNkYbKHXL9r4Srhd3sNRSwHGVcbDv8agGfKDp1ZxkcCwIBNkbCaIxjJkL3dlKX5VV8fSYkc9bjXI8c1T8JApElaPCFTWyfr0QMVabjHCXSmEFND10siG49V53hscS+edK45LhhVPjSYZ9DoeOOYdGufW0WMAAz1I/X64qb0Md/PJ4jt+PUI/jRLQrddlC3nuABa0gL/sZA2n3GeJp+8QisCIWxNWQyAzyvf1ru1oiZ0mQt1+dyQELH1gwcCBEaVeB/PfrGDn6srPGYLCZZmZECuMwTQPq7p18BmjwMGmtB+JDVJYxa2nRPqKX4bl3OjC1N4NqJ3rExEtEpzL1oRMgUhNbM8y1MmZaHlcBukAnKv22cjidKHvL0wuAqDH6KANwmXw14O+a3z2OB9l4XV800GIU3j52P5vBjMQOVk+v2LUJgoiA5Tat8ON42crr4v7DzPnWWHEsNMUt3w/P/e+CrSTN4bwyjf8lv/EE0D8kP3wfm6pMqds9yvSObcbBfWDdhT/uKazt5k2pkHaIQ0ePXtx3wrahwiBaPPw6aOGacf3QR3Yzr93LouWzTla2H6NawIax3J3VsWkZftMnCiEK/BuoOTscO/Zadui4SItaZPMa1gA/kt0Pl+/vVwsZtabfGtaXxuHzmn+YnLoYNB4UZT0jdRNoEGEz0=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(5660300002)(66556008)(66476007)(6506007)(53546011)(2616005)(33656002)(6512007)(508600001)(6486002)(2906002)(52116002)(38100700002)(44832011)(38350700002)(83380400001)(66946007)(6916009)(956004)(36756003)(316002)(8936002)(26005)(6666004)(8676002)(54906003)(4326008)(186003)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6655
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT013.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5b84ff86-52dd-4f82-066b-08d99e23fadc
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	YwH+0VXtyz2dEqGbDfgPc7JkX8ggdQTM3+HYRgKBtr+j4OfGqhCUisFOc4SDU/PN4LtJxZBWNtwogODqs4HmgfRD1pgdBgI8LqxMKMfskDH961z5kecOUmTQ3/PnU7DjQIv7eliQ0TPLXtsgdSglNbKasf689WUALDfSi1KDDt8T369yjR0e/rjSrKs/ZZVhSmHWluK/fJYudzVM8T5Q8dlB+k6GpIsEq/UD/81jxYs7xO+JFch6CuP5GL/gxXXoBIqX9pQXSTkobbKEjeyO6aP/jH08CgcohEDneAvuJ0nYnWuUasKv2RbXtDFqNBlpukALg5Y4Ue/str1mGgovD1q4HnY7YibpSzJxplXAMfOeTjgMHGy/tZ6uWB8Gf7Ik91JN3gP2rBeuUVuy0FCJwxcoiwb8Yous9shCORb9C5pClheZJbF0oT5d0Hc0FKlgOSYhLEkjniggFOqdLuZOlYjWI22TMXxHPyJ1Fpi/uXjFw6sWl9fqo2N0okl96FK3lyZh+jSswy3U47QfBAHpUyIOuFqc5Y+FXWvxElPW5HhuYnceXOO4DD7ZYE9foFmaiSoYJi1ZeIYUraCOmHlnTMR+irV3oc+xPVdR6Yy0iFXj5BQWjcHHTnyWc9q7ckKQdGi/WwNf6e72PF9Qf4fKBOzSmMHouQPQTDVnPOTi6gQ8fPSNGw7HF1LwUtsqEf0GB4o79BlpHJCHD+drOWeoAw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(4326008)(6506007)(26005)(2906002)(508600001)(82310400003)(70206006)(36860700001)(356005)(6666004)(53546011)(54906003)(70586007)(316002)(86362001)(36756003)(186003)(33656002)(6486002)(8676002)(83380400001)(6512007)(5660300002)(6862004)(336012)(47076005)(8936002)(81166007)(956004)(2616005)(44832011);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 17:12:52.5339
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fc5dd38e-2e80-459e-a5e7-08d99e24013c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT013.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5845

+ Ian Jackson for 4.16 release

> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 02.11.2021 15:05, Luca Fancellu wrote:
>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>> introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.
>>=20
>> The problem comes from the function get_parent_handle(...) that inside
>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>> is NULL, making Xen stop the UEFI boot.
>=20
> According to my reading the UEFI spec doesn't (explicitly) allow for
> this to be NULL. Could you clarify why this is the case? What other
> information may end up being invalid / absent? Is e.g. read_section()
> safe to use?

My test on an arm machine running Grub2 on top of EDK2 showed that
when Xen is started, the get_parent_handle(=E2=80=A6) call was failing and =
stopping
the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called with the
loaded_image->DeviceHandle argument NULL and the call was returning
a EFI_INVALID_PARAMETER.
So the parent handle can=E2=80=99t be requested and the filesystem can=E2=
=80=99t be used,
but any other code that doesn=E2=80=99t use the handle provided by get_pare=
nt_handle(=E2=80=A6)
can be used without problem like read_section(...).

>=20
>> --- a/xen/common/efi/boot.c
>> +++ b/xen/common/efi/boot.c
>> @@ -449,6 +449,13 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI=
_LOADED_IMAGE *loaded_image,
>>     CHAR16 *pathend, *ptr;
>>     EFI_STATUS ret;
>>=20
>> +    /*
>> +     * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PRO=
TOCOL
>> +     * to have access to the filesystem.
>> +     */
>> +    if ( !loaded_image->DeviceHandle )
>> +        return NULL;
>=20
> I couldn't find anything in the spec saying that NULL (a pointer with
> the numeric value zero) could actually not be a valid handle. Could
> you point me to text saying so?

I am reading UEFI spec 2.8 A, section 7.3 Protocol Handler Services, when i=
t talks about
EFI_BOOT_SERVICES.HandleProtocol() there is a table of =E2=80=9CStatus Code=
 Returned=E2=80=9D listing
the EFI_INVALID_PARAMETER when the Handle is NULL.

>=20
>> @@ -581,6 +588,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_han=
dle, CHAR16 *name,
>>     EFI_STATUS ret;
>>     const CHAR16 *what =3D NULL;
>>=20
>> +    if ( !dir_handle )
>> +        blexit(L"Error: No access to the filesystem");
>=20
> dir_handle also gets passed to efi_arch_cfg_file_{early,late}() -
> those don't need any adjustment only because they merely pass the
> parameter on to read_file()?

Yes, the handling is done in read_file(...)

>=20
>> @@ -1333,6 +1342,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE=
 *SystemTable)
>>             EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>>                                                        &file_name);
>>=20
>> +            if ( !handle )
>> +                blexit(L"Error retrieving image name: no filesystem acc=
ess");
>=20
> I don't think this should be fatal - see the comment ahead of the
> enclosing if().

I=E2=80=99m not sure I get it, I put the fatal condition in part because th=
e handle was dereferenced by
handle->Close(handle), but also because file_name would have not being modi=
fied by the call
and we have then *argv =3D file_name.

Cheers,
Luca

>=20
> Jan
>=20



From xen-devel-bounces@lists.xenproject.org Tue Nov 02 17:25:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 17:25:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220460.381737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhxXB-0001XO-TU; Tue, 02 Nov 2021 17:25:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220460.381737; Tue, 02 Nov 2021 17:25:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhxXB-0001XH-P9; Tue, 02 Nov 2021 17:25:17 +0000
Received: by outflank-mailman (input) for mailman id 220460;
 Tue, 02 Nov 2021 17:25:16 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zwst=PV=arm.com=Luca.Fancellu@srs-us1.protection.inumbo.net>)
 id 1mhxXA-0001XB-TJ
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 17:25:16 +0000
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (unknown
 [40.107.4.83]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id d7a37912-3c01-11ec-855a-12813bfff9fa;
 Tue, 02 Nov 2021 17:25:15 +0000 (UTC)
Received: from AS9PR06CA0048.eurprd06.prod.outlook.com (2603:10a6:20b:463::12)
 by AM6PR08MB4311.eurprd08.prod.outlook.com (2603:10a6:20b:b4::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 17:25:14 +0000
Received: from VE1EUR03FT015.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:463:cafe::1d) by AS9PR06CA0048.outlook.office365.com
 (2603:10a6:20b:463::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Tue, 2 Nov 2021 17:25:14 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT015.mail.protection.outlook.com (10.152.18.176) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Tue, 2 Nov 2021 17:25:13 +0000
Received: ("Tessian outbound 4ce13939bd4a:v108");
 Tue, 02 Nov 2021 17:25:13 +0000
Received: from d0e6291d8e3f.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 C42236A1-18E6-4AAB-927F-6939A5F0C915.1; 
 Tue, 02 Nov 2021 17:25:07 +0000
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d0e6291d8e3f.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 02 Nov 2021 17:25:07 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PA4PR08MB5952.eurprd08.prod.outlook.com (2603:10a6:102:e9::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13; Tue, 2 Nov
 2021 17:25:05 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Tue, 2 Nov 2021
 17:25:05 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO2P265CA0402.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:f::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 17:25:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7a37912-3c01-11ec-855a-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KgGEOf2yrrWlWZ4dCBkN+ubidTyXthqjZaIJs0xrf/8=;
 b=+De0jmJCTuJaZl3uAFbx57Sgzdz6DxdV3yoY04UPfPePgzax+aseH1MpLmsqWfWQLnJu2y3fZhNes9+k5A0njeTGKzNTSO7RijrQx9iZX8HnMzx49Qh18BBqeG/NG/2eg7NSubDcVFC9A6a9oS11+r59GXRGl8lBnTYFIH/D6As=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 83d5bdb0efbf4c47
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iUuU0vudO60TFWEoc6hoikGP/fhCQ6P10sA9JnWyodOlaayGMlmTlKSaHUDaVg4H+XGnP9ooF4IJWT/Qve38O2yFxizrEIyOLNtiOKa3UkPJfAIyCx0ufguAgLzL2BGMeVE/gjIbq2VrVbX5Pt2wcEXRCRA/IO3VQNG548UrrBlHG7h1SHOnv5saJ39NBhG8T5bKUbE4282PPHgDcrO0u4fyqMcBHSxO+8DN+IiLAF2X18HMEy5WrTCcbqJsVPr6hQ69tYsdRMBgZurZUjJq5Z4nP4FU+cPKZico8n6R+TV7NTK2MDRV3aGlRARr0Ghpf8PZWz3RFmNM7EDm3U+WdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KgGEOf2yrrWlWZ4dCBkN+ubidTyXthqjZaIJs0xrf/8=;
 b=nSTjpmEugWFJZim4oXun088HU2KlTe5X82hdn8W4VF26G9wjH6AqdP/laB6pRThY8zeGUo4h8sWvng6A+ZdCQsxzEEzdtSHtjLMP2tor1zxU/9vS/sXxgRqKKHBoJBdbbPeW7PKA+LcFZSacT7/UdsjWygInjav/JaEzTEBXz1lBxgFGHyJ541vTIL5Gy+K5yUbl4z7f5SR9qQxJqKqofsvf1+4KOiGbwZ8Y5rxPpM+ZUZ/+bEIb6R4WeijyDvWv/nQxjjq3K/+2dk0//O12QHPAqD+IGXZrJqXPoyFrJEFIbpsytJIGl3P0IcoFZQuKwBA7bagYrmh6QV3F/sggkA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KgGEOf2yrrWlWZ4dCBkN+ubidTyXthqjZaIJs0xrf/8=;
 b=+De0jmJCTuJaZl3uAFbx57Sgzdz6DxdV3yoY04UPfPePgzax+aseH1MpLmsqWfWQLnJu2y3fZhNes9+k5A0njeTGKzNTSO7RijrQx9iZX8HnMzx49Qh18BBqeG/NG/2eg7NSubDcVFC9A6a9oS11+r59GXRGl8lBnTYFIH/D6As=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
From: Luca Fancellu <luca.fancellu@arm.com>
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable
Subject: Arm EFI boot issue for Dom0 module listed inside subnode of chosen
Message-Id: <8A60FA62-2BAA-400B-BB53-AB3E8CCA67F1@arm.com>
Date: Tue, 2 Nov 2021 17:24:59 +0000
Cc: Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 wei.chen@arm.com
To: Xen-devel <xen-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO2P265CA0402.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:f::30) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a7b2d6cd-8112-4d03-47e5-08d99e25bb01
X-MS-TrafficTypeDiagnostic: PA4PR08MB5952:|AM6PR08MB4311:
X-Microsoft-Antispam-PRVS:
	<AM6PR08MB431197DF56A5A321F5DF308CE48B9@AM6PR08MB4311.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 nWp3hUQ+Mir0xM3zuqF+SkNFify8jsvHGZbn8qfWeUozwIwjNlLHMCPiv+XM/A8EXXkGIJfQt8yBY0Pxrr6oDUTZdmIIk8IKzTD1t+torAfpwPoyDPw/esxrNBLzyYJl0TMt8GbCf+1nrapLYLR3maD0mt+0NAoLjDAmnRQ79+HburwCc10gqst/9JkaBTfzuqKolOqSBF6xBmhAy3rqWZJ5evCB2FYBGdMJVr6AooDL7dp0UmPs9HbA1dttwQQXEaEA5IxjaTDOvvlRX/BOZBxvaOjLtrHbCYc5/R7xQTdTaikWge2qLxb6VdUS6Ec5QcLCsuBZHeC/cU7wtOze7NWB9lD42NkNM745f4lDzuNJEaRxHCmdUZxEaI/YMrQ3pMS57piFZXrVXapTMlJ+8r1rjCmr8Pf9KFUJoWtqfFDMTnU3ZSJiA7C9zsgvG62XrdOTKTyqyemRe8Kwal5P2eI/h4dJEgOHJaoNLyBkMsGiiZasMBn9pUpEPGeApqmiDO3yoe8AfMzNqthFSgDEfza3FDUPVgshkct1OSLcVkPP4hanDeS5Q+9S9kSeVdMVYDVpaZWPpHs0t1DK4BHNHQMVM6AaB3yb0cmDSbOhQkIDvVj5Mc6cec7zTtxXVssvTJoEwWG89vLUX9Aw9BFt6cwwshjl0sZUIFF4IgeNhoVY6nijS1ksvmsBsmgv+YHnO5f0XZnh+GUtykttCe4y9Vnc1J76NZWD88p02NIqqYGXzKuoNG2twXnGMxmnpUHFsNN6Jo7eqxcf8JxXJr0yoQe3JcaagfegnX78C67iSy2sM4VFDmpKwzZHovaigyWFlUo7ypotYMl9wi63+QH0wgS/+H2EyiXEvyMjnvCo7og=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(54906003)(26005)(6506007)(2616005)(2906002)(8676002)(44832011)(5660300002)(6916009)(66556008)(66476007)(966005)(83380400001)(956004)(86362001)(316002)(4326008)(186003)(66946007)(6666004)(38350700002)(38100700002)(33656002)(6486002)(508600001)(8936002)(36756003)(52116002)(6512007)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5952
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT015.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	64b78c31-99cb-425d-5722-08d99e25b5cb
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	GR2lMkmJ11krEqJi9rfwfY9hBUJ6gNcHdEE1uWGQIbc73zq8CSO5vTuly6qYUg5oZoYNNXds4Uiq/E6MvoA8ME88I8xZrHX2/QL9Lw3sJIumXN00HxX6nLNCKXj/fPy+7Ket5SUBsap1/peEoyeKqo5gGqaz6ds/m7w6KVFga3cbhlUks5ylyuYVsfJqH7mGvdT5n0jk0RgHCNMtvGdo95FRCstjdY0Omc4vvoQcbSNNJfEcNqvpvcExNaRLZlQ32zxh1Ner96kuUXWcMaWQ8lik98SSYPBIIugrw9mjm8y7iLWNA44PVJanufuRq1vIha3TsjxzpuWaDnpTx0KbxAsARG0Uh2SIvqOtmoOsnxEeMHTEzGQFbcfKd6frALCRpT6dQMfoTQHWQwCp/zgiWkuZllJSXpHxY8rcloROyGcc6LkF3DZ0wuuOviKpRKGAVs6zxFA+KrHMW2SzzFFuy8qrWJyMP1SlPcPutLH26hX4B25hWCCACDO/XaBga994M7pFUDGM4ujQqs782aJkYfImX5npR7ZwT6d8gPpFzQHjF1F77x10GgaaIXF7hN9d7FW9NAafn70Qvu2UkdS8w072Xvogu5qJtx5KIIA2HXEdRlBEt3ZgAwXDOB9FB999WdOid5z+an5Kb2Hz55OJApqv6j0VBWIBrdpw83fBndeZdOqUBMVmMxZKt7H28hoN792H47x+uxqE/p2mNfWsKDV/t5DeEPL/iPqqD/+CvKlvX5et/iABJat2uKq9LJmIbaWjQh2Vj14Xq38kLGNoYuqzE/0iHQGEFGwVoz3+2klrcVfsZH2fzdugrP8pxfMnKATfSBnl22Tgg124BTkf2A==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(82310400003)(186003)(2906002)(36756003)(6486002)(26005)(5660300002)(6916009)(83380400001)(33656002)(4326008)(6506007)(6666004)(6512007)(81166007)(8676002)(54906003)(70206006)(966005)(336012)(8936002)(44832011)(956004)(356005)(86362001)(70586007)(508600001)(36860700001)(2616005)(47076005)(316002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 17:25:13.6839
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a7b2d6cd-8112-4d03-47e5-08d99e25bb01
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT015.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4311

Hi all,

We recently discovered that there is a way to list Dom0 modules that is not=
 supported by the EFI boot,
It=E2=80=99s happened browsing some Wiki pages like this one:
https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/Lag=
er

In that page the Dom0 modules are listed inside a subnode of the /chosen no=
de:

chosen {

    modules {
        #address-cells =3D <1>;
        #size-cells =3D <1>;

        module@0x72000000 {
            compatible =3D "multiboot,kernel", "multiboot,module";
            reg =3D <0x72000000 0x2fd158>;
        };

        module@0x74000000 {
            compatible =3D "xen,xsm-policy", "multiboot,module";
            reg =3D <0x74000000 0x2559>;
        };
    };
};

Instead for how it is implemented now in the EFI code and described in:
1) https://xenbits.xen.org/docs/unstable/misc/arm/device-tree/booting.txt
2) https://xenbits.xen.org/docs/unstable/misc/efi.html

Only the following approach is supported, so Dom0 modules must be a direct =
child of /chosen:

chosen {
    #address-cells =3D <1>;
    #size-cells =3D <1>;

    module@0x72000000 {
        compatible =3D "multiboot,kernel", "multiboot,module";
        reg =3D <0x72000000 0x2fd158>;
    };

    module@0x74000000 {
        compatible =3D "xen,xsm-policy", "multiboot,module";
        reg =3D <0x74000000 0x2559>;
    };
};

Is this a problem that needs a fix?

Thank you.

Cheers,
Luca=


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 19:31:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 19:31:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220475.381747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhzVa-0004jU-8i; Tue, 02 Nov 2021 19:31:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220475.381747; Tue, 02 Nov 2021 19:31:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mhzVa-0004jN-5t; Tue, 02 Nov 2021 19:31:46 +0000
Received: by outflank-mailman (input) for mailman id 220475;
 Tue, 02 Nov 2021 19:31:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhzVZ-0004iu-8r; Tue, 02 Nov 2021 19:31:45 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhzVY-0004Jt-P9; Tue, 02 Nov 2021 19:31:44 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mhzVY-0000Ff-Fd; Tue, 02 Nov 2021 19:31:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mhzVY-0002bB-F7; Tue, 02 Nov 2021 19:31:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=X+/or0gZg6ipj1Fz7Cu9OdVzW20Rn7wE9t1n+KdegME=; b=Ocbc5CrBcTpSlcXz9A7P7jNdOJ
	83vvwjuV9yfVG7OP6WEyoykBtZ2YFPOtBxJUPShDUsAJsJsvFTNrMJOAM0OG7cL0tI1umLFL/2wSe
	O2TITk55vvYoorGjWBerPOv3pa3ZZ53vxj3W6MWEtQb1djVQ2TQZWlsZuGjIdtt+P41Q=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-165992-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 165992: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-examine:memdisk-try-append:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=bfc484fe6abba4b89ec9330e0e68778e2a9856b2
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Nov 2021 19:31:44 +0000

flight 165992 linux-linus real [real]
flight 166018 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/165992/
http://logs.test-lab.xenproject.org/osstest/logs/166018/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-examine      4 memdisk-try-append       fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165976
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                bfc484fe6abba4b89ec9330e0e68778e2a9856b2
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    0 days
Testing same since   165992  2021-11-02 05:40:21 Z    0 days    1 attempts

------------------------------------------------------------
374 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 22982 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 20:56:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 20:56:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220484.381761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi0pD-0003nE-Ge; Tue, 02 Nov 2021 20:56:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220484.381761; Tue, 02 Nov 2021 20:56:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi0pD-0003n7-Dl; Tue, 02 Nov 2021 20:56:07 +0000
Received: by outflank-mailman (input) for mailman id 220484;
 Tue, 02 Nov 2021 20:56:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mi0pC-0003mx-5x; Tue, 02 Nov 2021 20:56:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mi0pB-0005o2-Pw; Tue, 02 Nov 2021 20:56:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mi0pB-0004GG-Gq; Tue, 02 Nov 2021 20:56:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mi0pB-00086L-GK; Tue, 02 Nov 2021 20:56:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2GSHfm1xHoOMdcwsuBQzTJQttfGkjqhu3+USvUJMpOI=; b=tGGY1cxX4OkmSg1YzKenwOidF4
	YYFNWXLzLmVGN+WdEvhFsUdJmxBN5EWggsBdL6Iuhisv1BmEano7VqOKQTiyvXzFfoZg0dE9LAjT4
	2QY0nkHLH6fa4+fpgKH6DPuW2PRZYNd7A4q8zDDNTbDVgZ4CvwrYG/CjIN7eKyqHNbZo=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166017-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166017: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-i386:xen-build:fail:regression
    qemu-mainline:build-i386-xsm:xen-build:fail:regression
    qemu-mainline:build-armhf:xen-build:fail:regression
    qemu-mainline:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-amd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-i386:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-coresched-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:build-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:build-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-intel:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=8cb41fda78c7ebde0dd248c6afe1d336efb0de50
X-Osstest-Versions-That:
    qemuu=50352cce138ef3b30c1cda28a4df68fff5da3202
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Nov 2021 20:56:05 +0000

flight 166017 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166017/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386                    6 xen-build                fail REGR. vs. 165682
 build-i386-xsm                6 xen-build                fail REGR. vs. 165682
 build-armhf                   6 xen-build                fail REGR. vs. 165682

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-cubietruck  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-amd  1 build-check(1)               blocked n/a
 test-amd64-i386-pair          1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-i386  1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-amd64  1 build-check(1)               blocked  n/a
 test-amd64-coresched-i386-xl  1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 build-i386-libvirt            1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-intel  1 build-check(1)             blocked n/a
 test-amd64-i386-xl            1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-pvshim     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64  1 build-check(1)         blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1)  blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-i386-xl-qemuu-ovmf-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-win7-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-ws16-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-shadow     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-vhd        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165682
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                8cb41fda78c7ebde0dd248c6afe1d336efb0de50
baseline version:
 qemuu                50352cce138ef3b30c1cda28a4df68fff5da3202

Last test of basis   165682  2021-10-19 21:09:14 Z   13 days
Failing since        165694  2021-10-20 18:09:12 Z   13 days   36 attempts
Testing same since   166017  2021-11-02 11:38:47 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexey Baturo <baturo.alexey@gmail.com>
  Alexey Baturo <space.monkey.delivers@gmail.com>
  Alistair Francis <alistair.francis@wdc.com>
  Anatoly Parshintsev <kupokupokupopo@gmail.com>
  Andrew Jones <drjones@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  BALATON Zoltan <balaton@eik.bme.hu>
  Bin Meng <bmeng.cn@gmail.com>
  Chenyi Qiang <chenyi.qiang@intel.com>
  Chih-Min Chao <chihmin.chao@sifive.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cédric Le Goater <clg@kaod.org>
  Damien Hedde <damien.hedde@greensocs.com>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  David Gibson <david@gibson.dropbear.id.au>
  David Hildenbrand <david@redhat.com>
  Dr. David Alan Gilbert <dgilbert@redhat.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Frank Chang <frank.chang@sifive.com>
  Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
  Gavin Shan <gshan@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Greg Kurz <groug@kaod.org>
  Gustavo Romero <gromero@linux.ibm.com>
  Hanna Reitz <hreitz@redhat.com>
  Igor Mammedov <imammedo@redhat.com>
  Jason Wang <jasowang@redhat.com>
  John Snow <jsnow@redhat.com>
  John Wang <wangzhiqiang02@inspur.com>
  John Wang <wangzq.jn@gmail.com>
  Jose Martins <josemartins90@gmail.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Luc Michel <lmichel@kalray.eu>
  Luis Pires <luis.pires@eldorado.org.br>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Mathieu Poirier <mathieu.poirier@linaro.org>
  Michael S. Tsirkin <mst@redhat.com>
  Mingwang Li <limingwang@huawei.com>
  Oğuz Ersen <oguzersen@protonmail.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Krempa <pkrempa@redhat.com>
  Philipp Tomsich <philipp.tomsich@vrull.eu>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Shuuichirou Ishii <ishii.shuuichir@fujitsu.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  Tong Ho <tong.ho@xilinx.com>
  Travis Geiselbrecht <travisg@gmail.com>
  Vincent Palatin <vpalatin@rivosinc.com>
  Vivek Goyal <vgoyal@redhat.com>
  Xueming Li <xuemingl@nvidia.com>
  Yanan Wang <wangyanan55@huawei.com>
  Yifei Jiang <jiangyifei@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               fail    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   fail    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           blocked 
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-i386-xl                                           blocked 
 test-amd64-coresched-i386-xl                                 blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     blocked 
 test-amd64-i386-freebsd10-amd64                              blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          blocked 
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-armhf-armhf-xl-cubietruck                               blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         blocked 
 test-amd64-i386-freebsd10-i386                               blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         blocked 
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 blocked 
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    blocked 
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              blocked 
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      blocked 
 test-amd64-i386-xl-vhd                                       blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 6791 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 22:48:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 22:48:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220495.381776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi2ZZ-0005Rx-4a; Tue, 02 Nov 2021 22:48:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220495.381776; Tue, 02 Nov 2021 22:48:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi2ZZ-0005Rq-1N; Tue, 02 Nov 2021 22:48:05 +0000
Received: by outflank-mailman (input) for mailman id 220495;
 Tue, 02 Nov 2021 22:48:03 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z8t6=PV=kernel.org=sstabellini@srs-us1.protection.inumbo.net>)
 id 1mi2ZX-0005Rk-Ek
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 22:48:03 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id eeb80d3e-3c2e-11ec-855d-12813bfff9fa;
 Tue, 02 Nov 2021 22:48:01 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id B39D461051;
 Tue,  2 Nov 2021 22:48:00 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eeb80d3e-3c2e-11ec-855d-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635893281;
	bh=pAeJaHQe5+rHr3JUhZrARj9BOIVQjkoZXCqHHaksyn4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MX5Zfps0Jkv2wdtTKBf3cYGDjHha7kT3ttEv9ekU2ahs0de9uogGhD0BhW5cC0I/a
	 o37X2Xalpw02DDWplGHV+zPDUSjni98jlQ09sRhpvz93xCHw52MhJpOcYNb88ntj8o
	 JnqBUJAE2vW/EioPP/8qfyOI4+6vcaiuagRFuCYOBAQQNxVeMiCEUFhrnHGDtf0Rxp
	 OT6LBRm5CqPaxd8iJoxIGaKLPpyg0hV4xI9rwH5k9XJRI3GXu6mn5R2GA7dKn0CmmZ
	 4P/BH5PVvyC18WYbpDMz8W+r5GKyYSMAlXi/piN1jOBIYPof6Hv/I0z5tSijVbsN9+
	 cW1LBNPC2hdDw==
Date: Tue, 2 Nov 2021 15:47:54 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Oleksandr Andrushchenko <andr2000@gmail.com>
cc: xen-devel@lists.xenproject.org, julien@xen.org, sstabellini@kernel.org, 
    iwj@xenproject.org, bertrand.marquis@arm.com, rahul.singh@arm.com, 
    Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: Re: [PATCH-4.16 v2] xen/arm: fix SBDF calculation for vPCI MMIO
 handlers
In-Reply-To: <20211102112041.551369-1-andr2000@gmail.com>
Message-ID: <alpine.DEB.2.21.2111021545130.18170@sstabellini-ThinkPad-T480s>
References: <20211102112041.551369-1-andr2000@gmail.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 2 Nov 2021, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> While in vPCI MMIO trap handlers for the guest PCI host bridge it is not
> enough for SBDF translation to simply call VPCI_ECAM_BDF(info->gpa) as
> the base address may not be aligned in the way that the translation
> always work. If not adjusted with respect to the base address it may not be
> able to properly convert SBDF.
> Fix this by adjusting the gpa with respect to the host bridge base address
> in a way as it is done for x86.
> 
> Please note, that this change is not strictly required given the current
> value of GUEST_VPCI_ECAM_BASE which has bits 0 to 27 clear, but could cause
> issues if such value is changed, or when handlers for dom0 ECAM
> regions are added as those will be mapped over existing hardware
> regions that could use non-aligned base addresses.
> 
> Fixes: d59168dc05a5 ("xen/arm: Enable the existing x86 virtual PCI support for ARM")
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>

Also, Ian already gave his release-ack.


> ---
> Since v1:
>  - updated commit message (Roger)
> 
> This patch aims for 4.16 release.
> Benefits:
> Fix potential bug and clear the way for further PCI passthrough
> development.
> Risks:
> None as the change doesn't change the behaviour of the current code,
> but brings clarity into SBDF calculation.
> ---
>  xen/arch/arm/vpci.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
> index 8f40a0dec6d2..23f45386f4b3 100644
> --- a/xen/arch/arm/vpci.c
> +++ b/xen/arch/arm/vpci.c
> @@ -24,7 +24,7 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
>      unsigned long data;
>  
>      /* We ignore segment part and always handle segment 0 */
> -    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa);
> +    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
>  
>      if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
>                          1U << info->dabt.size, &data) )
> @@ -44,7 +44,7 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
>      pci_sbdf_t sbdf;
>  
>      /* We ignore segment part and always handle segment 0 */
> -    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa);
> +    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
>  
>      return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
>                             1U << info->dabt.size, r);
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 23:17:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 23:17:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220503.381787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi32C-0000A7-GP; Tue, 02 Nov 2021 23:17:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220503.381787; Tue, 02 Nov 2021 23:17:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi32C-00009z-Cv; Tue, 02 Nov 2021 23:17:40 +0000
Received: by outflank-mailman (input) for mailman id 220503;
 Tue, 02 Nov 2021 23:17:39 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z8t6=PV=kernel.org=sstabellini@srs-us1.protection.inumbo.net>)
 id 1mi32B-00009o-6B
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 23:17:39 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 11510194-3c33-11ec-855e-12813bfff9fa;
 Tue, 02 Nov 2021 23:17:37 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id C148A60EBD;
 Tue,  2 Nov 2021 23:17:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11510194-3c33-11ec-855e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635895057;
	bh=URQ3NPVzs8ByK7I1LYvipo2F6y2zX7/ayWtBccmv32s=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=uDCExYEzMKIEIGQIBMq2431MJeE0gEFvcaybWj6pd/oPi+KTtFtRGX1BPHz7wIk8K
	 W7owiWX7CIdRn+QPwQ2NIH0KCjND4kiWnaygSc9umRbUp0gmkT/LbYjCuNdY6s8Wfw
	 heEXr6xVsQTi0mnxv1EQ5rm4gwXwgwV1DRAsiUusFP1HuwVBnc6ZUiGnorimLuSI/S
	 juKu1b4L4lhFU2mrKBOw0dCrTCoAgDdvqT7wT+YjFRH+5KLcq8ewvpReAL1lmJ6Gmi
	 0byQDA1i4YxclKCP0GQ/Y+i2iRTmNVJRNqBrg+bIfewdEG27uVArRrB+Fk9A6f2gV1
	 OUiTgOzHkDeyg==
Date: Tue, 2 Nov 2021 16:17:35 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Luca Fancellu <luca.fancellu@arm.com>
cc: xen-devel@lists.xenproject.org, bertrand.marquis@arm.com, wei.chen@arm.com, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <20211102140511.5542-1-luca.fancellu@arm.com>
Message-ID: <alpine.DEB.2.21.2111021610180.18170@sstabellini-ThinkPad-T480s>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 2 Nov 2021, Luca Fancellu wrote:
> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
> ("arm/efi: Use dom0less configuration when using EFI boot") is
> introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.
> 
> The problem comes from the function get_parent_handle(...) that inside
> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
> is NULL, making Xen stop the UEFI boot.
> 
> Before the commit above, the function was never called because the
> logic was skipping the call when there were multiboot modules in the
> DT because the filesystem was never used and the bootloader had
> put in place all the right modules in memory and the addresses
> in the DT.
> 
> To fix the problem we allow the get_parent_handle(...) function to
> return a NULL handle on error and we check the usage of the function
> to handle the new use case. The function in fact should not prevent
> the boot even if the filesystem can't be used, because the DT and
> the modules could be put in place by the bootloader before running
> Xen and if xen,uefi-binary property is not used, there is no need
> for the filesystem.
> 
> Another problem is found when the UEFI stub tries to check if Dom0
> image or DomUs are present.
> The logic doesn't work when the UEFI stub is not responsible to load
> any modules, so the efi_check_dt_boot(...) return value is modified
> to return the number of multiboot module found and not only the number
> of module loaded by the stub.
> 
> Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI boot")
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> Justification for integration in 4.16:
> Upside: allow booting xen from grub on arm64 when the stub doesn't load
>         any module.
> Downside: It's affecting the EFI boot path.
> Risk: It's not affecting x86 arch that works the same way as before.
>       If something is wrong it creates a problem on early boot and not at
>       runtime, so risk is low.
> 
> Tested in this configurations:
>  - Bootloader loads modules and specify them as multiboot modules in DT:
>    * combination of Dom0, DomUs, Dom0 and DomUs
>  - DT specifies multiboot modules in DT using xen,uefi-binary property:
>    * combination of Dom0, DomUs, Dom0 and DomUs
>  - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
>    other multiboot modules are listed for DomUs using xen,uefi-binary
>  - No multiboot modules in DT and no kernel entry in cfg file:
>    * proper error thrown
> 
> ---
>  xen/arch/arm/efi/efi-boot.h | 28 ++++++++++++++++++----------
>  xen/common/efi/boot.c       | 15 ++++++++++++++-
>  2 files changed, 32 insertions(+), 11 deletions(-)
> 
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index 8b88dd26a5..e714b2b44c 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -51,9 +51,11 @@ static int handle_module_node(EFI_FILE_HANDLE dir_handle,
>                                int module_node_offset,
>                                int reg_addr_cells,
>                                int reg_size_cells,
> -                              bool is_domu_module);
> +                              bool is_domu_module,
> +                              unsigned int *modules_found);
>  static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> -                                       int domain_node);
> +                                       int domain_node,
> +                                       unsigned int *modules_found);
>  static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
>  
>  #define DEVICE_TREE_GUID \
> @@ -707,7 +709,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
>                                       int module_node_offset,
>                                       int reg_addr_cells,
>                                       int reg_size_cells,
> -                                     bool is_domu_module)
> +                                     bool is_domu_module,
> +                                     unsigned int *modules_found)
>  {
>      const void *uefi_name_prop;
>      char mod_string[24]; /* Placeholder for module@ + a 64-bit number + \0 */
> @@ -725,6 +728,9 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
>          /* Module is not a multiboot,module */
>          return 0;
>  
> +    /* Count the multiboot module as found */
> +    (*modules_found)++;
> +
>      /* Read xen,uefi-binary property to get the file name. */
>      uefi_name_prop = fdt_getprop(fdt, module_node_offset, "xen,uefi-binary",
>                                   &uefi_name_len);
> @@ -804,7 +810,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
>   * Returns 0 on success, negative number on error.
>   */
>  static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> -                                              int domain_node)
> +                                              int domain_node,
> +                                              unsigned int *modules_found)
>  {
>      int module_node, addr_cells, size_cells, len;
>      const struct fdt_property *prop;
> @@ -834,7 +841,7 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
>            module_node = fdt_next_subnode(fdt, module_node) )
>      {
>          int ret = handle_module_node(dir_handle, module_node, addr_cells,
> -                                     size_cells, true);
> +                                     size_cells, true, modules_found);
>          if ( ret < 0 )
>              return ret;
>      }
> @@ -845,12 +852,12 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
>  /*
>   * This function checks for xen domain nodes under the /chosen node for possible
>   * dom0 and domU guests to be loaded.
> - * Returns the number of modules loaded or a negative number for error.
> + * Returns the number of multiboot modules found or a negative number for error.
>   */
>  static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>  {
>      int chosen, node, addr_len, size_len;
> -    unsigned int i = 0;
> +    unsigned int i = 0, modules_found = 0;
>  
>      /* Check for the chosen node in the current DTB */
>      chosen = setup_chosen_node(fdt, &addr_len, &size_len);
> @@ -868,11 +875,12 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>          if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
>          {
>              /* Found a node with compatible xen,domain; handle this node. */
> -            if ( handle_dom0less_domain_node(dir_handle, node) < 0 )
> +            if ( handle_dom0less_domain_node(dir_handle, node,
> +                                             &modules_found) < 0 )
>                  return ERROR_DT_MODULE_DOMU;
>          }
>          else if ( handle_module_node(dir_handle, node, addr_len, size_len,
> -                                     false) < 0 )
> +                                     false, &modules_found) < 0 )
>                   return ERROR_DT_MODULE_DOM0;

I think there is no need to add modules_found to the parameters of
handle_dom0less_domain_node and handle_module_node. You could just
increment modules_found here for every iteration of the loop where
there is no error.  You would have to change a couple of returns in
handle_module_node, just to give you the idea:


diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index e714b2b44c..7739789c41 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -726,7 +726,7 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
 
     if ( module_compat != 0 )
         /* Module is not a multiboot,module */
-        return 0;
+        return 1;
 
     /* Count the multiboot module as found */
     (*modules_found)++;
@@ -737,7 +737,7 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
 
     if ( !uefi_name_prop )
         /* Property not found */
-        return 0;
+        return 1;
 
     file_idx = get_module_file_index(uefi_name_prop, uefi_name_len);
     if ( file_idx < 0 )


>      }
>  
> @@ -883,7 +891,7 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>          efi_bs->FreePool(modules[i].name);
>      }
>  
> -    return modules_idx;
> +    return modules_found;
>  }
>  
>  static void __init efi_arch_cpu(void)
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 392ff3ac9b..495e7a4096 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -449,6 +449,13 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
>      CHAR16 *pathend, *ptr;
>      EFI_STATUS ret;
>  
> +    /*
> +     * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCOL
> +     * to have access to the filesystem.
> +     */
> +    if ( !loaded_image->DeviceHandle )
> +        return NULL;
> +
>      do {
>          EFI_FILE_IO_INTERFACE *fio;
>  
> @@ -581,6 +588,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>      EFI_STATUS ret;
>      const CHAR16 *what = NULL;
>  
> +    if ( !dir_handle )
> +        blexit(L"Error: No access to the filesystem");
>      if ( !name )
>          PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
>      ret = dir_handle->Open(dir_handle, &FileHandle, name,
> @@ -1333,6 +1342,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
>              EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
>                                                         &file_name);
>  
> +            if ( !handle )
> +                blexit(L"Error retrieving image name: no filesystem access");

I think it would be nice to have an other explicit check like this one
at the beginning of if ( use_cfg_file ) to make sure dir_handle is not
null in that case. If I am not mistaken, if we take the use_cfg_file
path, dir_handle has to be valid, right?


>              handle->Close(handle);
>              *argv = file_name;
>          }
> @@ -1369,7 +1381,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
>      /* Get the number of boot modules specified on the DT or an error (<0) */
>      dt_modules_found = efi_check_dt_boot(dir_handle);
>  
> -    dir_handle->Close(dir_handle);
> +    if ( dir_handle )
> +        dir_handle->Close(dir_handle);
>  
>      if ( dt_modules_found < 0 )
>          /* efi_check_dt_boot throws some error */
> -- 
> 2.17.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 23:17:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 23:17:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220504.381798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi32L-0000Tg-Nv; Tue, 02 Nov 2021 23:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220504.381798; Tue, 02 Nov 2021 23:17:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi32L-0000TX-Kg; Tue, 02 Nov 2021 23:17:49 +0000
Received: by outflank-mailman (input) for mailman id 220504;
 Tue, 02 Nov 2021 23:17:48 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z8t6=PV=kernel.org=sstabellini@srs-us1.protection.inumbo.net>)
 id 1mi32K-0000Ry-3J
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 23:17:48 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id f2079852-2d17-4da6-89f8-70e2b4538a2f;
 Tue, 02 Nov 2021 23:17:47 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 30A656109D;
 Tue,  2 Nov 2021 23:17:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2079852-2d17-4da6-89f8-70e2b4538a2f
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635895066;
	bh=wSc4z3tjtUxUopFnH2Hov7h54Lh+zRs3KC+jBurocGE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=UG2RC4CWPO+fVzY20303YVhVNVUs7HXlcA/o4XZmbnwv0NmZ6C5YLCrMkzsG/la86
	 KFpYMmrVVVd7gDqm9EDM4TTgqYfQ0SuYPsJfclRxAuqnyFqxvV3hi4/ZlsLpyOAp5V
	 DhAo/aN5MG9dUCukICqvDXN7v1rfYhwmRmLYGRhB0SdyAOHb4kub3T1OXK75CPKnX4
	 TieoWcXtUDldfTY/rmEmCLbdvv12JSsWlgFNl9trkeB/NqF3ffVKC0YRvFgbjiI1Rx
	 sydDbt3lInBKmov+CyxGuFN748+a/y9VmhNGfJKlMesQR9mqboYWkix/NAQe32UeoD
	 SW9AtPA4SPV7Q==
Date: Tue, 2 Nov 2021 16:17:45 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Luca Fancellu <luca.fancellu@arm.com>
cc: Jan Beulich <jbeulich@suse.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
Message-ID: <alpine.DEB.2.21.2111021615220.18170@sstabellini-ThinkPad-T480s>
References: <20211102140511.5542-1-luca.fancellu@arm.com> <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com> <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-361158706-1635895044=:18170"
Content-ID: <alpine.DEB.2.21.2111021617390.18170@sstabellini-ThinkPad-T480s>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-361158706-1635895044=:18170
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.21.2111021617391.18170@sstabellini-ThinkPad-T480s>

On Tue, 2 Nov 2021, Luca Fancellu wrote:
> + Ian Jackson for 4.16 release
> 
> > On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
> > 
> > On 02.11.2021 15:05, Luca Fancellu wrote:
> >> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
> >> ("arm/efi: Use dom0less configuration when using EFI boot") is
> >> introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.
> >> 
> >> The problem comes from the function get_parent_handle(...) that inside
> >> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
> >> is NULL, making Xen stop the UEFI boot.
> > 
> > According to my reading the UEFI spec doesn't (explicitly) allow for
> > this to be NULL. Could you clarify why this is the case? What other
> > information may end up being invalid / absent? Is e.g. read_section()
> > safe to use?
> 
> My test on an arm machine running Grub2 on top of EDK2 showed that
> when Xen is started, the get_parent_handle(…) call was failing and stopping
> the boot because the efi_bs->HandleProtocol(…) was called with the
> loaded_image->DeviceHandle argument NULL and the call was returning
> a EFI_INVALID_PARAMETER.
> So the parent handle can’t be requested and the filesystem can’t be used,
> but any other code that doesn’t use the handle provided by get_parent_handle(…)
> can be used without problem like read_section(...).

It could be the case that Grub2 is doing something not entirely
compliant to the spec.


> > 
> >> --- a/xen/common/efi/boot.c
> >> +++ b/xen/common/efi/boot.c
> >> @@ -449,6 +449,13 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> >>     CHAR16 *pathend, *ptr;
> >>     EFI_STATUS ret;
> >> 
> >> +    /*
> >> +     * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCOL
> >> +     * to have access to the filesystem.
> >> +     */
> >> +    if ( !loaded_image->DeviceHandle )
> >> +        return NULL;
> > 
> > I couldn't find anything in the spec saying that NULL (a pointer with
> > the numeric value zero) could actually not be a valid handle. Could
> > you point me to text saying so?
> 
> I am reading UEFI spec 2.8 A, section 7.3 Protocol Handler Services, when it talks about
> EFI_BOOT_SERVICES.HandleProtocol() there is a table of “Status Code Returned” listing
> the EFI_INVALID_PARAMETER when the Handle is NULL.
> 
> > 
> >> @@ -581,6 +588,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
> >>     EFI_STATUS ret;
> >>     const CHAR16 *what = NULL;
> >> 
> >> +    if ( !dir_handle )
> >> +        blexit(L"Error: No access to the filesystem");
> > 
> > dir_handle also gets passed to efi_arch_cfg_file_{early,late}() -
> > those don't need any adjustment only because they merely pass the
> > parameter on to read_file()?
> 
> Yes, the handling is done in read_file(...)

But it is not super obvious, that's one I suggested an additional
explicit check in my other email
--8323329-361158706-1635895044=:18170--


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 23:37:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 23:37:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220518.381808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi3Ky-00032r-DS; Tue, 02 Nov 2021 23:37:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220518.381808; Tue, 02 Nov 2021 23:37:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi3Ky-00032k-AH; Tue, 02 Nov 2021 23:37:04 +0000
Received: by outflank-mailman (input) for mailman id 220518;
 Tue, 02 Nov 2021 23:37:02 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z8t6=PV=kernel.org=sstabellini@srs-us1.protection.inumbo.net>)
 id 1mi3Kw-00032e-Sn
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 23:37:02 +0000
Received: from mail.kernel.org (unknown [198.145.29.99])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 203fec70-bb72-409c-92b3-99114d68da03;
 Tue, 02 Nov 2021 23:37:02 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 424D860FC2;
 Tue,  2 Nov 2021 23:37:00 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 203fec70-bb72-409c-92b3-99114d68da03
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635896221;
	bh=h6JpkxWa8uAscXT7x9lmGWbqIpwacAP58HzNhh6Fkdk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ktIkdlT/UCODVMRyuKB/vX0ybNy+EWqfb+Ml1H6JfkzBAVNKbircJtPcqZL70QAOZ
	 6q4Sh6eUhPGecJAX4nkxPGGfSK0JweV+gK64tESGOgyekQywka0ZMzEuSvvjMm05zx
	 8shDxbJYO0gNHNul1TLCvon8pj1ywraXEGHyYZ3R/l12XMWHNNRBL3FxpCLoUuHT7z
	 6qCtAb9aXv0Y2FZVoYdXTYLJOhWlg71FnHWriQ3jr2KAVnQf1kq+udyITl2nwH8QI5
	 vgzDp+XKNEzN71v8zlUjqr74xPXqQYAgR9lviAlSSy/k82ZD/Ul4XPZfxBLXBRHr2C
	 eq9fKvvrzEXng==
Date: Tue, 2 Nov 2021 16:36:58 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Luca Fancellu <luca.fancellu@arm.com>
cc: Xen-devel <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, wei.chen@arm.com
Subject: Re: Arm EFI boot issue for Dom0 module listed inside subnode of
 chosen
In-Reply-To: <8A60FA62-2BAA-400B-BB53-AB3E8CCA67F1@arm.com>
Message-ID: <alpine.DEB.2.21.2111021625160.18170@sstabellini-ThinkPad-T480s>
References: <8A60FA62-2BAA-400B-BB53-AB3E8CCA67F1@arm.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1102840733-1635896221=:18170"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1102840733-1635896221=:18170
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 2 Nov 2021, Luca Fancellu wrote:
> Hi all,
> 
> We recently discovered that there is a way to list Dom0 modules that is not supported by the EFI boot,
> It’s happened browsing some Wiki pages like this one:
> https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/Lager
> 
> In that page the Dom0 modules are listed inside a subnode of the /chosen node:
> 
> chosen {
> 
>     modules {
>         #address-cells = <1>;
>         #size-cells = <1>;
> 
>         module@0x72000000 {
>             compatible = "multiboot,kernel", "multiboot,module";
>             reg = <0x72000000 0x2fd158>;
>         };
> 
>         module@0x74000000 {
>             compatible = "xen,xsm-policy", "multiboot,module";
>             reg = <0x74000000 0x2559>;
>         };
>     };
> };
> 
> Instead for how it is implemented now in the EFI code and described in:
> 1) https://xenbits.xen.org/docs/unstable/misc/arm/device-tree/booting.txt
> 2) https://xenbits.xen.org/docs/unstable/misc/efi.html
> 
> Only the following approach is supported, so Dom0 modules must be a direct child of /chosen:
> 
> chosen {
>     #address-cells = <1>;
>     #size-cells = <1>;
> 
>     module@0x72000000 {
>         compatible = "multiboot,kernel", "multiboot,module";
>         reg = <0x72000000 0x2fd158>;
>     };
> 
>     module@0x74000000 {
>         compatible = "xen,xsm-policy", "multiboot,module";
>         reg = <0x74000000 0x2559>;
>     };
> };
> 
> Is this a problem that needs a fix?


Let me start by saying that I don't feel strongly either way, so I am
happy to go with other people's opinion on this one.

In this kind of situations I usually look at two things:
- what the specification says
- what the existing code actually does

In general, I try to follow the specification unless obviously
production code relies on something that contradicts the spec, in which
case I'd say to update the spec.

In this case, although it is true that "modules" could be nice to have,
it is missing a compatible string, it is not described in
arm/device-tree/booting.txt, and it is only rarely used.

For these reasons, I don't think it is a problem that we need to fix.
Especially considering that the EFI case is the only case not working
and it was never supported until now.

If we want to add support for "modules", that could be fine, but I think
we should describe it in arm/device-tree/booting.txt and also add a
compatible string for it. For 4.16 I'd just update the wikipage.
--8323329-1102840733-1635896221=:18170--


From xen-devel-bounces@lists.xenproject.org Tue Nov 02 23:42:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Nov 2021 23:42:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220526.381820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi3Pv-0004QY-25; Tue, 02 Nov 2021 23:42:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220526.381820; Tue, 02 Nov 2021 23:42:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi3Pu-0004QR-Uz; Tue, 02 Nov 2021 23:42:10 +0000
Received: by outflank-mailman (input) for mailman id 220526;
 Tue, 02 Nov 2021 23:42:09 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qXs8=PV=oracle.com=boris.ostrovsky@srs-us1.protection.inumbo.net>)
 id 1mi3Pt-0004QL-LM
 for xen-devel@lists.xenproject.org; Tue, 02 Nov 2021 23:42:09 +0000
Received: from mx0b-00069f02.pphosted.com (unknown [205.220.177.32])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 7e231714-3c36-11ec-855e-12813bfff9fa;
 Tue, 02 Nov 2021 23:42:08 +0000 (UTC)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A2Mw62d018099; 
 Tue, 2 Nov 2021 23:41:50 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c26e8jvdv-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 02 Nov 2021 23:41:50 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A2Nfckv139773;
 Tue, 2 Nov 2021 23:41:49 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by aserp3030.oracle.com with ESMTP id 3c0v3emhae-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 02 Nov 2021 23:41:49 +0000
Received: from aserp3030.oracle.com (aserp3030.oracle.com [127.0.0.1])
 by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 1A2NfmIJ140417;
 Tue, 2 Nov 2021 23:41:48 GMT
Received: from bostrovs-us.us.oracle.com (bostrovs-us.us.oracle.com
 [10.152.12.19]) by aserp3030.oracle.com with ESMTP id 3c0v3emh9e-1;
 Tue, 02 Nov 2021 23:41:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e231714-3c36-11ec-855e-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc :
 subject : date : message-id; s=corp-2021-07-09;
 bh=36cvZLG7nzHy1WDDbHNdPAkMG0X5CWKjGmksL7YL9Ck=;
 b=cdHeWhcWQEx3+OqXNNn1Bq0pXuqN0xSNagsgNji4dM5zc+14KoDBjLvoF8Cli3QK7Rnu
 GLosNY/1p8fmskQVa/r3mxVUU2to5cgrY2xEx70YZ/es+BFJWtfOugEi8bvDEtokJq+1
 dejn/gd6ODGFPiXl1ZWWVLgye7e8K6tbH/ZxVgrbbKhk9CiXmsnhdDwHjbFJGq9ZF4XQ
 YTNpTZ3ZlcPa5jkRDK0RbqeV+5LnyKxBHVMf9X178ApW/9y/sz0g7m2UFz/5xLX9le9s
 5wEHa+S/BZ/tOlJm7rDYBv0LWbksfHe0BPtUAMXbiSKUoZiQI59pg9jlcShCx1WwyQAp 6w== 
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
        x86@kernel.org, hpa@zytor.com, jgross@suse.com,
        boris.ostrovsky@oracle.com
Subject: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
Date: Tue,  2 Nov 2021 19:36:36 -0400
Message-Id: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
X-Mailer: git-send-email 1.8.3.1
X-Proofpoint-GUID: IfvjVT_LMOgDHkf0XLPcHexo-rinRMka
X-Proofpoint-ORIG-GUID: IfvjVT_LMOgDHkf0XLPcHexo-rinRMka

Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
introduced cpu_l2c_shared_map mask which is expected to be initialized
by smp_op.smp_prepare_cpus(). That commit only updated
native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().
As result Xen PV guests crash in set_cpu_sibling_map().

While the new mask can be allocated in xen_pv_smp_prepare_cpus() one can
see that both versions of smp_prepare_cpus ops share a number of common
operations that can be factored out. So do that instead.

Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
---
 arch/x86/include/asm/smp.h |  1 +
 arch/x86/kernel/smpboot.c  | 19 +++++++++++++------
 arch/x86/xen/smp_pv.c      | 11 ++---------
 3 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 08b0e90623ad..81a0211a372d 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -126,6 +126,7 @@ static inline void arch_send_call_function_ipi_mask(const struct cpumask *mask)
 
 void cpu_disable_common(void);
 void native_smp_prepare_boot_cpu(void);
+void smp_prepare_cpus_common(void);
 void native_smp_prepare_cpus(unsigned int max_cpus);
 void calculate_max_logical_packages(void);
 void native_smp_cpus_done(unsigned int max_cpus);
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 8241927addff..d7429198c22f 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -1350,12 +1350,7 @@ static void __init smp_get_logical_apicid(void)
 		cpu0_logical_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR));
 }
 
-/*
- * Prepare for SMP bootup.
- * @max_cpus: configured maximum number of CPUs, It is a legacy parameter
- *            for common interface support.
- */
-void __init native_smp_prepare_cpus(unsigned int max_cpus)
+void __init smp_prepare_cpus_common(void)
 {
 	unsigned int i;
 
@@ -1386,6 +1381,18 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
 	set_sched_topology(x86_topology);
 
 	set_cpu_sibling_map(0);
+}
+
+/*
+ * Prepare for SMP bootup.
+ * @max_cpus: configured maximum number of CPUs, It is a legacy parameter
+ *            for common interface support.
+ */
+void __init native_smp_prepare_cpus(unsigned int max_cpus)
+{
+
+	smp_prepare_cpus_common();
+
 	init_freq_invariance(false, false);
 	smp_sanity_check();
 
diff --git a/arch/x86/xen/smp_pv.c b/arch/x86/xen/smp_pv.c
index 9e55bcbfcd33..69e91d0d3ca4 100644
--- a/arch/x86/xen/smp_pv.c
+++ b/arch/x86/xen/smp_pv.c
@@ -238,16 +238,9 @@ static void __init xen_pv_smp_prepare_cpus(unsigned int max_cpus)
 	}
 	xen_init_lock_cpu(0);
 
-	smp_store_boot_cpu_info();
-	cpu_data(0).x86_max_cores = 1;
+	smp_prepare_cpus_common();
 
-	for_each_possible_cpu(i) {
-		zalloc_cpumask_var(&per_cpu(cpu_sibling_map, i), GFP_KERNEL);
-		zalloc_cpumask_var(&per_cpu(cpu_core_map, i), GFP_KERNEL);
-		zalloc_cpumask_var(&per_cpu(cpu_die_map, i), GFP_KERNEL);
-		zalloc_cpumask_var(&per_cpu(cpu_llc_shared_map, i), GFP_KERNEL);
-	}
-	set_cpu_sibling_map(0);
+	cpu_data(0).x86_max_cores = 1;
 
 	speculative_store_bypass_ht_init();
 
-- 
1.8.3.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 02:26:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 02:26:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220534.381831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi5y9-0004qS-K6; Wed, 03 Nov 2021 02:25:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220534.381831; Wed, 03 Nov 2021 02:25:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi5y9-0004q0-Aw; Wed, 03 Nov 2021 02:25:41 +0000
Received: by outflank-mailman (input) for mailman id 220534;
 Wed, 03 Nov 2021 02:25:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mi5y8-0004pq-TE; Wed, 03 Nov 2021 02:25:40 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mi5y8-0005V4-JZ; Wed, 03 Nov 2021 02:25:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mi5y8-0005P6-7p; Wed, 03 Nov 2021 02:25:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mi5y8-0006Ad-6p; Wed, 03 Nov 2021 02:25:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=xpu4tyafSx6wQ2Tf+FGD40A1jePu/Gimn4MF1sJnegY=; b=ouiYwG1OdOLLDfexvZOOzbxhrG
	863hCZ1IZiI6FV/GLIjC08ZM/SyfXFWrCW+AoQBcJkzpQJu4qY6mTB0xOFh984Kq3TIXDhfrcZe46
	esYTN0oZRWu6o6ZhKGoX9+IuEUKvoRyAX9OI6abMSJMei2f+mdyrNUp4TX8ZMdxGkc30=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166019-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-5.4 test] 166019: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-5.4:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=e6de9a8b5b30ebbc4d96df447ddee3202f1b4daf
X-Osstest-Versions-That:
    linux=89b6869b942b8730467f2a0760ea466044aa52d2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 02:25:40 +0000

flight 166019 linux-5.4 real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166019/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail blocked in 165893
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165893
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165893
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165893
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165893
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165893
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165893
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165893
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165893
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165893
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165893
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165893
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                e6de9a8b5b30ebbc4d96df447ddee3202f1b4daf
baseline version:
 linux                89b6869b942b8730467f2a0760ea466044aa52d2

Last test of basis   165893  2021-10-27 08:12:24 Z    6 days
Testing same since   166019  2021-11-02 19:12:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adrian Hunter <adrian.hunter@intel.com>
  Alexei Starovoitov <ast@kernel.org>
  Andrew Lunn <andrew@lunn.ch>
  Ard Biesheuvel <ardb@kernel.org>
  Arnaldo Carvalho de Melo <acme@redhat.com>
  Arnd Bergmann <arnd@arndb.de>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Hewitt <christianshewitt@gmail.com>
  Christian König <christian.koenig@amd.com>
  Christoph Hellwig <hch@lst.de>
  Clément Bœsch <u@pkh.me>
  Damien Le Moal <damien.lemoal@opensource.wdc.com>
  Daniel Jordan <daniel.m.jordan@oracle.com>
  David S. Miller <davem@davemloft.net>
  Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
  Dinh Nguyen <dinguyen@kernel.org>
  Erhard F. <erhard_f@mailbox.org>
  Eric Dumazet <edumazet@google.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guenter Roeck <linux@roeck-us.net>
  Haibo Chen <haibo.chen@nxp.com>
  Halil Pasic <pasic@linux.ibm.com>
  Hulk Robot <hulkrobot@huawei.com>
  Jaehoon Chung <jh80.chung@samsung.com>
  Jakub Kicinski <kuba@kernel.org>
  Janusz Dziedzic <janusz.dziedzic@gmail.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Johan Almbladh <johan.almbladh@anyfinetworks.com>
  Johan Hovold <johan@kernel.org>
  Johannes Berg <johannes.berg@intel.com>
  John Fastabend <john.fastabend@gmail.com>
  Jon Hunter <jonathanh@nvidia.com>
  Julian Wiedmann <jwi@linux.ibm.com>
  Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  Leon Romanovsky <leonro@nvidia.com>
  Linus Walleij <linus.walleij@linaro.org>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Liu Jian <liujian56@huawei.com>
  Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
  Marek Szyprowski <m.szyprowski@samsung.com>
  Mark Brown <broonie@kernel.org>
  Mark Zhang <markzhang@nvidia.com>
  Masami Hiramatsu <mhiramat@kernel.org>
  Maxime Ripard <maxime@cerno.tech>
  Michael Chan <michael.chan@broadcom.com>
  Michael Ellerman <mpe@ellerman.id.au>
  Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
  Nathan Chancellor <nathan@kernel.org>
  Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
  Nick Desaulniers <ndesaulniers@google.com>
  Oliver Neukum <oneukum@suse.com>
  Ovidiu Panait <ovidiu.panait@windriver.com>
  Patrisious Haddad <phaddad@nvidia.com>
  Pavel Skripkin <paskripkin@gmail.com>
  Rafał Miłecki <rafal@milecki.pl>
  Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
  Sasha Levin <sashal@kernel.org>
  Shawn Guo <shawn.guo@linaro.org>
  Shuah Khan <skhan@linuxfoundation.org>
  Song Liu <songliubraving@fb.com>
  Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
  Sven Eckelmann <sven@narfation.org>
  Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
  Trevor Woerner <twoerner@gmail.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Varun Prakash <varun@chelsio.com>
  Vladimir Zapolskiy <vz@mleia.com>
  Wang Hai <wanghai38@huawei.com>
  Wei Wang <weiwan@google.com>
  Wenbin Mei <wenbin.mei@mediatek.com>
  Xin Long <lucien.xin@gmail.com>
  Yanfei Xu <yanfei.xu@windriver.com>
  Yang Yingliang <yangyingliang@huawei.com>
  Yuiko Oshino <yuiko.oshino@microchip.com>
  Zheyu Ma <zheyuma97@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   89b6869b942b..e6de9a8b5b30  e6de9a8b5b30ebbc4d96df447ddee3202f1b4daf -> tested/linux-5.4


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 05:45:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 05:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220542.381845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi95J-00060z-QO; Wed, 03 Nov 2021 05:45:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220542.381845; Wed, 03 Nov 2021 05:45:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi95J-00060s-Ms; Wed, 03 Nov 2021 05:45:17 +0000
Received: by outflank-mailman (input) for mailman id 220542;
 Wed, 03 Nov 2021 05:45:16 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=neJr=PW=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1mi95H-00060m-VM
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 05:45:16 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 37539fa6-3c69-11ec-8561-12813bfff9fa;
 Wed, 03 Nov 2021 05:45:14 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 700FA218F6;
 Wed,  3 Nov 2021 05:45:13 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 25C4413C7E;
 Wed,  3 Nov 2021 05:45:13 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id FubeB+khgmGOGgAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 03 Nov 2021 05:45:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37539fa6-3c69-11ec-8561-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635918313; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=0g5P1DQxGfxWOLYxICRbFGItTJs0exSHUoyxrjmLfaE=;
	b=nCL4BhbrSG5yBXKIee++XTA+llynnmy6UAP7fQdhr+ud3u+T5kuFoZLqWDYmdqZQKoeDPS
	+i5pNEAtkzQw6HS8ON80ftrqSBQOkWHF7rFf+sL16z42bGm9TLZ+Zg47Jt5MMW8tit2kFp
	ZpuLGTCQ+HrPITtbPlmIJRxVWXczTnY=
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
 x86@kernel.org, hpa@zytor.com
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <49bbfc70-8dcd-ae43-c42d-bda1a49e9cf1@suse.com>
Date: Wed, 3 Nov 2021 06:45:12 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="7GDMiikNHVQKp2xOZTM6HQeA6GpfFSkjJ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--7GDMiikNHVQKp2xOZTM6HQeA6GpfFSkjJ
Content-Type: multipart/mixed; boundary="3A3RUhbvxXloGF3uvUEsAK6qtY3MosJeV";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
 x86@kernel.org, hpa@zytor.com
Message-ID: <49bbfc70-8dcd-ae43-c42d-bda1a49e9cf1@suse.com>
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
In-Reply-To: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>

--3A3RUhbvxXloGF3uvUEsAK6qtY3MosJeV
Content-Type: multipart/mixed;
 boundary="------------F9B175CBC6E4CD4126C9011E"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------F9B175CBC6E4CD4126C9011E
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 03.11.21 00:36, Boris Ostrovsky wrote:
> Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
> introduced cpu_l2c_shared_map mask which is expected to be initialized
> by smp_op.smp_prepare_cpus(). That commit only updated
> native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().
> As result Xen PV guests crash in set_cpu_sibling_map().
>=20
> While the new mask can be allocated in xen_pv_smp_prepare_cpus() one ca=
n
> see that both versions of smp_prepare_cpus ops share a number of common=

> operations that can be factored out. So do that instead.
>=20
> Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen

--------------F9B175CBC6E4CD4126C9011E
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------F9B175CBC6E4CD4126C9011E--

--3A3RUhbvxXloGF3uvUEsAK6qtY3MosJeV--

--7GDMiikNHVQKp2xOZTM6HQeA6GpfFSkjJ
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGCIegFAwAAAAAACgkQsN6d1ii/Ey/9
3wf+ODn931uqiWlVLU/8D/A6Y44LsvMgv67VayTxLPeRiz4iXdydWiftKZfGD8LwohJuwL9XPsEY
XrXfL9X7xglk19/NEKP7Ih8EQjp9Qp1hkxFi/Dl/v8DZZOcFrHv+WNtrWsQ6nPwOx9IHRAo2Hqov
DD42bKbJjpN41Nn/tjS1x5NXgVWCa57ypebAJhBA6tA6lPFezZglIT3Mq7JChOSKMVH/DPyMkwtX
ZqrCH8zACQMv60ARIR8Y6DvB6fE5RctWbK68YxTXniO235J5powSLQbnJcoEH4YC+de8FwT9WMRg
omp4yNeKJMx25Cl9j5UwgfziiAkUpmDEJ54Liyln1A==
=j0VV
-----END PGP SIGNATURE-----

--7GDMiikNHVQKp2xOZTM6HQeA6GpfFSkjJ--


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 06:28:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 06:28:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220550.381855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi9lG-0001jZ-Aj; Wed, 03 Nov 2021 06:28:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220550.381855; Wed, 03 Nov 2021 06:28:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi9lG-0001jS-7p; Wed, 03 Nov 2021 06:28:38 +0000
Received: by outflank-mailman (input) for mailman id 220550;
 Wed, 03 Nov 2021 06:28:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mi9lF-0001jI-IM; Wed, 03 Nov 2021 06:28:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mi9lF-0001bU-AS; Wed, 03 Nov 2021 06:28:37 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mi9lE-0007kE-RS; Wed, 03 Nov 2021 06:28:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mi9lE-0002A8-QQ; Wed, 03 Nov 2021 06:28:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=KIaWu0D2GYEgOnmYTft3X9jOQAI6Wr+FlbOgpg79qJg=; b=wizjTQ7CMTTNDRD3m0y7m1nNop
	csLQVxdGIO7QBLZOtBRG+IZPx/LhPFYvZrr1IXilBBGds0Wq74QquUsDvzwUKeggukOIG6zkLg8ib
	p+lFcLCyzlSGMuzenuohQiWY4si6M/c2n1nzdHX6SrNd85gFlkQ1VGFLLpyh3fYSDpU0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166021-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166021: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-i386:xen-build:fail:regression
    qemu-mainline:build-i386-xsm:xen-build:fail:regression
    qemu-mainline:build-armhf:xen-build:fail:regression
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate:fail:allowable
    qemu-mainline:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-amd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-i386:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-freebsd10-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-coresched-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:build-armhf-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:build-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-qemuu-rhel6hvm-intel:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-shadow:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=102f39b32dd32711fdb6236f17fb63a3cc63f8a7
X-Osstest-Versions-That:
    qemuu=50352cce138ef3b30c1cda28a4df68fff5da3202
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 06:28:36 +0000

flight 166021 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166021/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386                    6 xen-build                fail REGR. vs. 165682
 build-i386-xsm                6 xen-build                fail REGR. vs. 165682
 build-armhf                   6 xen-build                fail REGR. vs. 165682

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     18 guest-localmigrate       fail REGR. vs. 165682

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-cubietruck  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-amd  1 build-check(1)               blocked n/a
 test-amd64-i386-pair          1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-i386  1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-amd64  1 build-check(1)               blocked  n/a
 test-amd64-coresched-i386-xl  1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 build-i386-libvirt            1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-intel  1 build-check(1)             blocked n/a
 test-amd64-i386-xl            1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-pvshim     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64  1 build-check(1)         blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1)  blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-i386-xl-qemuu-ovmf-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-win7-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-ws16-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-shadow     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-vhd        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165682
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165682
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                102f39b32dd32711fdb6236f17fb63a3cc63f8a7
baseline version:
 qemuu                50352cce138ef3b30c1cda28a4df68fff5da3202

Last test of basis   165682  2021-10-19 21:09:14 Z   14 days
Failing since        165694  2021-10-20 18:09:12 Z   13 days   37 attempts
Testing same since   166021  2021-11-02 21:09:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Alexey Baturo <baturo.alexey@gmail.com>
  Alexey Baturo <space.monkey.delivers@gmail.com>
  Alistair Francis <alistair.francis@wdc.com>
  Anatoly Parshintsev <kupokupokupopo@gmail.com>
  Andrew Jones <drjones@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  BALATON Zoltan <balaton@eik.bme.hu>
  Bin Meng <bmeng.cn@gmail.com>
  Chenyi Qiang <chenyi.qiang@intel.com>
  Chih-Min Chao <chihmin.chao@sifive.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cédric Le Goater <clg@kaod.org>
  Damien Hedde <damien.hedde@greensocs.com>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  David Gibson <david@gibson.dropbear.id.au>
  David Hildenbrand <david@redhat.com>
  Dr. David Alan Gilbert <dgilbert@redhat.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Frank Chang <frank.chang@sifive.com>
  Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
  Gavin Shan <gshan@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Greg Kurz <groug@kaod.org>
  Gustavo Romero <gromero@linux.ibm.com>
  Hanna Reitz <hreitz@redhat.com>
  Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
  Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
  Igor Mammedov <imammedo@redhat.com>
  Jason Wang <jasowang@redhat.com>
  John Snow <jsnow@redhat.com>
  John Wang <wangzhiqiang02@inspur.com>
  John Wang <wangzq.jn@gmail.com>
  Jose Martins <josemartins90@gmail.com>
  Juan Quintela <quintela@redhat.com>
  Kunkun Jiang <jiangkunkun@huawei.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Li Zhijian <lizhijian@cn.fujitsu.com>
  Luc Michel <lmichel@kalray.eu>
  Luis Pires <luis.pires@eldorado.org.br>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Mathieu Poirier <mathieu.poirier@linaro.org>
  Max Filippov <jcmvbkbc@gmail.com>
  Michael S. Tsirkin <mst@redhat.com>
  Mingwang Li <limingwang@huawei.com>
  Oğuz Ersen <oguzersen@protonmail.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Krempa <pkrempa@redhat.com>
  Peter Xu <peterx@redhat.com>
  Philipp Tomsich <philipp.tomsich@vrull.eu>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Shuuichirou Ishii <ishii.shuuichir@fujitsu.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  Tong Ho <tong.ho@xilinx.com>
  Travis Geiselbrecht <travisg@gmail.com>
  Vincent Palatin <vpalatin@rivosinc.com>
  Vivek Goyal <vgoyal@redhat.com>
  Xueming Li <xuemingl@nvidia.com>
  Yanan Wang <wangyanan55@huawei.com>
  Yifei Jiang <jiangyifei@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               fail    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   fail    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           blocked 
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-i386-xl                                           blocked 
 test-amd64-coresched-i386-xl                                 blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     blocked 
 test-amd64-i386-freebsd10-amd64                              blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          blocked 
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-armhf-armhf-xl-cubietruck                               blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         blocked 
 test-amd64-i386-freebsd10-i386                               blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         blocked 
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 blocked 
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    blocked 
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              blocked 
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      blocked 
 test-amd64-i386-xl-vhd                                       blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 8280 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 06:34:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 06:34:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220559.381870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi9qu-00037r-3H; Wed, 03 Nov 2021 06:34:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220559.381870; Wed, 03 Nov 2021 06:34:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mi9qt-00037k-Uf; Wed, 03 Nov 2021 06:34:27 +0000
Received: by outflank-mailman (input) for mailman id 220559;
 Wed, 03 Nov 2021 06:34:26 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1mi9qs-00037e-AN
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 06:34:26 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 2a03a0fb-be1f-4570-aefb-5c7e1db53352;
 Wed, 03 Nov 2021 06:34:23 +0000 (UTC)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A36Q8s1013113;
 Wed, 3 Nov 2021 06:34:20 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2105.outbound.protection.outlook.com [104.47.18.105])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c3mkur449-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 06:34:20 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB2830.eurprd03.prod.outlook.com (2603:10a6:800:e3::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Wed, 3 Nov
 2021 06:34:16 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 06:34:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a03a0fb-be1f-4570-aefb-5c7e1db53352
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kyYikAWaNKPZxR6JjYTlZeS2ZCJRNv/IE+PJSEZan0EbaQZCBRvuoZU9ZwOCIMHQxlxmjHzGLQPKpmLWK5/7pdG+DqoGOtChrLASKxV1RkGhxb5ddJfUzyzowH8slTsQhOFKXPE90eQhz7vnwqnOvRu+yq1XT+pmf97VNV/51RuzfnAWaKN5wc1ixYmOFBGcRd7KtFXFXsmH8N37M8UieC2hTJh4JmyfVf6FGaHhYZ2p97cxROvGS9jHrWflYx1Lww0JOuAU9xcnKq8fhG5+pKfKm7l0r1oKpvI9gQdrNKuPM9bUlGONkcrPhM3Yz8lWuSuLMsn57Zi/6y5ZluB50w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ynkvLhIqhVruIaSahRTCy0rHrzfCELgp+eqrKqUhu3A=;
 b=A5/iH+XF08I7u3X7qIjfLESLcZPVs2DolN0BfA1BDIHQaTuZ3LiLx376OikoX89UnF1Y91sqK6c6QLxdrxueIXO/dLiReXnTGzKHe4x1GmuxmL4DNJ+g3hChYdAYgjpINEX6fqal6pg8IGeQ8gdoDSCx+5W+912veTE5tBWGZl8nCAPfqlK+3v/+GDlsvCZpRHofwcKZns5NvagpiQ88n0M2pV13pZDAX6EIYet8os0XcNriz0D8UsXV5Q2WtnjFyUnoU3zbUJNUL2vbCcM/w6r0HseCRcy/wi0zOIj3lXwjTuAyTwyGiX0MmkscQgodHI9R3jO74epgi04jeR8owg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ynkvLhIqhVruIaSahRTCy0rHrzfCELgp+eqrKqUhu3A=;
 b=SBxPp7tIqeYfsjjBO0RliF98j5WwSAhtHmzEVMKnHs6hYTDmgsRfBczZuPIbFdJwrdHn6i86i0gDy+/9JC/St5724g/v9RgmPthbBaiHQ/MifAp+ml4vSZtngc4KHbkCayW3aimBa6pF8kLqyP/2BFoMGYiKdpcEz7FXgZXytGF890kZGkkMmsgDuEh5+rPJYFfIPRqePwsKxypMThYBHc8pjeX3WSOB6jgorq98GYChgVlZZOw9/upwCXoI04OSzfuMasPu2H8/T3zx/RzIHFcK0xiLY9af33DHokjamv4XH09ACZCOOZsJk8U2bVf/ui6B5eyKpfmdFmd3gzd2mQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        "jbeulich@suse.com" <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus
 topology
Thread-Topic: [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus
 topology
Thread-Index: AQHXtdAlOCu2AnkIOUC4Prsocox3sqvlTvCAgAw/FQA=
Date: Wed, 3 Nov 2021 06:34:16 +0000
Message-ID: <52b1533d-4aeb-29be-2611-9b50adea3f73@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-11-andr2000@gmail.com>
 <YXfng3PqDI6C4yxn@MacBook-Air-de-Roger.local>
In-Reply-To: <YXfng3PqDI6C4yxn@MacBook-Air-de-Roger.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 6bb9065d-0f0d-43b0-2a88-08d99e93f590
x-ms-traffictypediagnostic: VI1PR0302MB2830:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB2830E6A8B6E2E35F779A29D4E78C9@VI1PR0302MB2830.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 jNZJGqaG5weMLaYzegXHMZYhcPHZsNjH+duGs1SaFroAjOaMjzLVOaB2NX62Lm7xaaYikwab0UKpeLNlUyGw1H80We5e+tvvXQ7TSLJ4j5WExvV7erc24V7YHxdGn2g6O4iqd021iJF0h1/dMR1haT7OaCdqpLVvgQdr7jNqua+WB/BDetTZ+fjiw9oURhm2rntcl5/ool0D/kzINWHIlUmcYWYwmSEUMg0f62VVaE3yaw8gsmMwAiyN8GwduHK6bLXCRyD/DbyCfFl9O+SJIjmeIGtKclQaUk5Ck/3KobUnsvx/KgMgJrQFSRLQvOwc770wmB+oGWwU1v3hRS5CHFVxGeeeSb9tZQTFgfoHzkNWWD8NT4xvZ5L1zDgmA8zH/bSPjNXBZyQB2g7ANRfOT3zdQJsFsj94pYYR+6hzMqm7wwNJWDaYjlgFMWMp3re/Vz1O0oHIgH4gMFsWTKFZojd0RptxBKJAd2QBifSDUjFxxEiEGTyhkySkayQmYLqUn87t9Dp01z0456VLS3E1LXjmHINdAP+PoBwsg9e562rtc1ku6yd5dOMFJRym4+s21iuJB02eqNGDCjigkCKmxdrlqdzzn6VmGy2L4AK/5Ts6s8jlRvoYSCC1ojBYqRRtBhPWU/SKPlpSEhBoowNknnlH/Jbrrd4xq3rKtlW9OskGnwyXyUZAN/e+O/kswIPFcmpZu4RddsT/vg/+PRF63A2X8zahuc/q4ZQCRlhAoQNYN27UALd8ww15ObyjaNXc
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(186003)(66446008)(66476007)(66556008)(38100700002)(26005)(5660300002)(6506007)(53546011)(31696002)(83380400001)(66946007)(36756003)(122000001)(38070700005)(64756008)(71200400001)(2616005)(54906003)(508600001)(31686004)(76116006)(110136005)(4326008)(91956017)(8676002)(107886003)(2906002)(8936002)(6486002)(316002)(6512007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?bmtrTW9acWkxK0czL0lncmViNWZSRFA4dGNrcWpNOWZjVDNRSU1JcGgxQXZY?=
 =?utf-8?B?SnU3QlFEa2JteEo2OHZCRHhHOFUxaVlLQXVqN0g0MWtWbXFHU0dpMUlnbUhi?=
 =?utf-8?B?eGlVUWtPa0VFUGRmT3piekxmWk9YN0RtaEFvalVqMFYvWG13YmdUWU11VEMw?=
 =?utf-8?B?aHVjK3ZOZlphK1UzQ3RRODU2WTNtYnUxUDN4bFV4ZE4xU0p6M001WU9qTUVv?=
 =?utf-8?B?aUk2NEZVWmVCRTRKVU9vK2xTNXczTTdBU2dxaEE1anZJNVh3ZzRkN2R5cjNn?=
 =?utf-8?B?YTBTcTBMVlNDVS9yZ2U3ODNKOTRjT29kdE5lbllQUVN2SUJDT05lMlZueDcv?=
 =?utf-8?B?TysrbW5JUGQrMHRwWjVybzVmSFpjSkhGQ2tydVJXcmEwWi8xY0laZFhwQkhj?=
 =?utf-8?B?c0drTXVEUWFpT3RqaTdqVFYxMkRrMEdtdkRFZDA1ajkvUFpLUXord0ZSZlpP?=
 =?utf-8?B?eUxzWEtYSVk3d3MyUUVCUWNpajVtSk9CY0ZNSFl6eWFwS0hTSGNkTHBWWk93?=
 =?utf-8?B?V01QWUFYSlhPeDNCK3pzQWF4N1QyQ0hlaG1qV3cwZlFxQjBTOGNBaHRMVlMy?=
 =?utf-8?B?Vkt1TW1kM0E4ZjZkQ0M0NG5qemZFblc2cTNXY0pJcWpxblp6NnhSUi9wczRt?=
 =?utf-8?B?QlV5YTRlQ2lwUEp2cnBHY24zc1BUSzVvdzRwd21mbmpaNlQwZjFPS2F1Z3Fq?=
 =?utf-8?B?M3M3ekM0SFV2bThMaXNqWkZoNlpCV2gvSmM4cWYrV2V1TmpwWEROWERyYkNS?=
 =?utf-8?B?RmdScC9RL1NiaGNTV0tZVEMwZmQ2Sk1GS08yTEpXOFh2Q1hwZGJMYnFQNkhm?=
 =?utf-8?B?WnYxUHZEWVRFSDMzb0hWTnk1OEw0SGp4aWpPVVQ0TXVuQVRJeEdIZENzdUhl?=
 =?utf-8?B?WEVZTjJWYldrNjRuWUVnK2xzNEg3ZzQwM05EUk16OGJCWWxVYlBzT052VzlR?=
 =?utf-8?B?TXpVVWhqbFZ0azZlK2lxMWZFMmEvZWo1dVhRbEtTSStVdjdNa0IxaTFVWlcv?=
 =?utf-8?B?bGdjbjUxcW5mTEdwN3I3d3VTME9zdFhML2hUWTFVTCtLK2ZnbW5XSG1yZVZa?=
 =?utf-8?B?RW83c0tIYzZjc2ZLVit3VVd1L2FSYTVGNmFJRjc4UFdGUnA1Tmt2c0ZkV2p3?=
 =?utf-8?B?dUltR0hzOEFYZWI5V25XTDJObExvRC80VTgzL2hKQW9JeUhjSjZUQkgyaXYz?=
 =?utf-8?B?ZVQ0Q0NtanJpVmR5VlRpN1ZqRk9paFBFS0xXQkFhd2RBMlE3dnRiQUxneFFQ?=
 =?utf-8?B?T0sxVmx1NlBKOEtQbm93Zmw0TWxCTFlZTTJzb2V4MW01Zmw5eEpZQlNJbjZN?=
 =?utf-8?B?VmhDdkZlMjc5dmw0WXNvemxoQXB2T3FRZVFGbkFtMndrQjJsU1dxZ0FoL1Zu?=
 =?utf-8?B?RWVhMUpONm1oeDZTaTRRQ0lPWXFuREJzVGYvUmFGdzRWaU13TWcvbGVzYjhO?=
 =?utf-8?B?dDRyME5SdW1UTmFudGxOWkhwTitJY2QwaFc4SjZyd01WMzNUZTV3WHdzckRh?=
 =?utf-8?B?czF5cDJqb2N0NFpSY1B4emdwbWN0enY5ZG9NQ0lwcjBnamtRU0kxREhpTTNG?=
 =?utf-8?B?dVcvTkhrdzdDQUhsOWhPaDMybDBPSWw4RnllaG5sZ1dZS1Uvb3N6NStSVlpT?=
 =?utf-8?B?L1h0dldVamJwMzM2dWk0TlJ5YWE2SGFVTGFPdXY5b1dIVE5YdVVsam9YV3FT?=
 =?utf-8?B?RDV4UTZCdW5SNmJkSUtJK01UVU01a1pSSkxtdG8wbGhSUndhVmY1Y1cwcjdE?=
 =?utf-8?B?ajM0cnRIU3BtVnJuNFZ6RFhtSjFldElaVjhFYzN1ZGVxbTZEbTN3dGZldncw?=
 =?utf-8?B?c3VlTi81U0QyTTZvcW9YMXByUUhsdmZIeERDRlNXdlZVZis1SWlOTGJ1M0xC?=
 =?utf-8?B?WHkyOTRIUy9kWG5VbisrWFhYa0sranJZSmh5OWhXenQwN3JHZm5zcGZuRFBE?=
 =?utf-8?B?SHpVamRtMzVtQmdrWlFkT0w4TWFMTXgxWVRqOGxidXo5NHE5Ym56YWtrbzdl?=
 =?utf-8?B?OVdhUEd1azFySkkyNXg3ZFhuQjNTKzZGdTd5RjZpL0s2TnFWWHltWExNRDJy?=
 =?utf-8?B?Ull2YTUwejJaSDRkVjgrai9XdFVwejFuYzNFdmp1SzJvM1liMDI0TVFJMXdK?=
 =?utf-8?B?VkRDaC9pUUFrVlpSM0I5akI2c0J0clczM3dzWk00aVpZaWRwRmNnTUVvQk41?=
 =?utf-8?B?QXdwc2Q0WEdNOHdpNlVtZkltVkVyQTJmVFUzYTlWd3lkVkFXNjdlMHc0YVBt?=
 =?utf-8?B?eHkxTWwzNkVTMERMa1VNdTdROHRnSWpuUzZmMVIrYTZCSUhHd2hxc1plSURl?=
 =?utf-8?B?TDI5QU4vZnJLcC9FdEQ0eGgxcThFL2o2UzIxWUV3N1hSNkpoRlhRdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <45285D08B550A141B6FE80095BAEB64A@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6bb9065d-0f0d-43b0-2a88-08d99e93f590
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 06:34:16.6186
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: DAZoqpHz/eoRYKyIsem88gHXd8SGB9hLmegtEUNZ6bN+KL2jnTsl50BU12G13I9yDDGrfhFEQSd/5WpCjrpq8DUKKYPE3vzX7/nafphWGVCseZVY+/cNAx35YwxdLJtg
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2830
X-Proofpoint-ORIG-GUID: M-aj8_qA1Q-M_mSbxXhS53CYd0uO1j8Z
X-Proofpoint-GUID: M-aj8_qA1Q-M_mSbxXhS53CYd0uO1j8Z
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_01,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015
 priorityscore=1501 spamscore=0 malwarescore=0 mlxlogscore=999
 suspectscore=0 lowpriorityscore=0 impostorscore=0 mlxscore=0 phishscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111030040

SGksIFJvZ2VyDQoNCk9uIDI2LjEwLjIxIDE0OjMzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0K
PiBPbiBUaHUsIFNlcCAzMCwgMjAyMSBhdCAxMDo1MjoyMkFNICswMzAwLCBPbGVrc2FuZHIgQW5k
cnVzaGNoZW5rbyB3cm90ZToNCj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVr
c2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+DQo+PiBBc3NpZ24gU0JERiB0byB0aGUg
UENJIGRldmljZXMgYmVpbmcgcGFzc2VkIHRocm91Z2ggd2l0aCBidXMgMC4NCj4+IFRoZSByZXN1
bHRpbmcgdG9wb2xvZ3kgaXMgd2hlcmUgUENJZSBkZXZpY2VzIHJlc2lkZSBvbiB0aGUgYnVzIDAg
b2YgdGhlDQo+PiByb290IGNvbXBsZXggaXRzZWxmIChlbWJlZGRlZCBlbmRwb2ludHMpLg0KPj4g
VGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBsaW1pdGVkIHRvIDMyIGRldmljZXMgd2hpY2ggYXJlIGFs
bG93ZWQgb24NCj4+IGEgc2luZ2xlIFBDSSBidXMuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogT2xl
a3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0K
Pj4NCj4+IC0tLQ0KPj4gU2luY2UgdjI6DQo+PiAgIC0gcmVtb3ZlIGNhc3RzIHRoYXQgYXJlIChh
KSBtYWxmb3JtZWQgYW5kIChiKSB1bm5lY2Vzc2FyeQ0KPj4gICAtIGFkZCBuZXcgbGluZSBmb3Ig
YmV0dGVyIHJlYWRhYmlsaXR5DQo+PiAgIC0gcmVtb3ZlIENPTkZJR19IQVNfVlBDSV9HVUVTVF9T
VVBQT1JUIGlmZGVmJ3MgYXMgdGhlIHJlbGV2YW50IHZQQ0kNCj4+ICAgICAgZnVuY3Rpb25zIGFy
ZSBub3cgY29tcGxldGVseSBnYXRlZCB3aXRoIHRoaXMgY29uZmlnDQo+PiAgIC0gZ2F0ZSBjb21t
b24gY29kZSB3aXRoIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUDQo+PiBOZXcgaW4gdjIN
Cj4+IC0tLQ0KPj4gICB4ZW4vY29tbW9uL2RvbWFpbi5jICAgICAgICAgICB8ICAzICsrDQo+PiAg
IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIHwgNjAgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysNCj4+ICAgeGVuL2RyaXZlcnMvdnBjaS92cGNpLmMgICAgICAgfCAxNCAr
KysrKysrLQ0KPj4gICB4ZW4vaW5jbHVkZS94ZW4vcGNpLmggICAgICAgICB8IDIyICsrKysrKysr
KysrKysNCj4+ICAgeGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAgICAgfCAgOCArKysrKw0KPj4g
ICA1IGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+Pg0K
Pj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2RvbWFpbi5j
DQo+PiBpbmRleCA0MGQ2N2VjMzQyMzIuLmUwMTcwMDg3NjEyZCAxMDA2NDQNCj4+IC0tLSBhL3hl
bi9jb21tb24vZG9tYWluLmMNCj4+ICsrKyBiL3hlbi9jb21tb24vZG9tYWluLmMNCj4+IEBAIC02
MDEsNiArNjAxLDkgQEAgc3RydWN0IGRvbWFpbiAqZG9tYWluX2NyZWF0ZShkb21pZF90IGRvbWlk
LA0KPj4gICANCj4+ICAgI2lmZGVmIENPTkZJR19IQVNfUENJDQo+PiAgICAgICBJTklUX0xJU1Rf
SEVBRCgmZC0+cGRldl9saXN0KTsNCj4+ICsjaWZkZWYgQ09ORklHX0hBU19WUENJX0dVRVNUX1NV
UFBPUlQNCj4+ICsgICAgSU5JVF9MSVNUX0hFQUQoJmQtPnZkZXZfbGlzdCk7DQo+PiArI2VuZGlm
DQo+PiAgICNlbmRpZg0KPj4gICANCj4+ICAgICAgIC8qIEFsbCBlcnJvciBwYXRocyBjYW4gZGVw
ZW5kIG9uIHRoZSBhYm92ZSBzZXR1cC4gKi8NCj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9w
YXNzdGhyb3VnaC9wY2kuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jDQo+PiBpbmRl
eCA4MDVhYjg2ZWQ1NTUuLjViOTYzZDc1ZDFiYSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9kcml2ZXJz
L3Bhc3N0aHJvdWdoL3BjaS5jDQo+PiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2ku
Yw0KPj4gQEAgLTgzMSw2ICs4MzEsNjYgQEAgaW50IHBjaV9yZW1vdmVfZGV2aWNlKHUxNiBzZWcs
IHU4IGJ1cywgdTggZGV2Zm4pDQo+PiAgICAgICByZXR1cm4gcmV0Ow0KPj4gICB9DQo+PiAgIA0K
Pj4gKyNpZmRlZiBDT05GSUdfSEFTX1ZQQ0lfR1VFU1RfU1VQUE9SVA0KPj4gK3N0YXRpYyBzdHJ1
Y3QgdnBjaV9kZXYgKnBjaV9maW5kX3ZpcnR1YWxfZGV2aWNlKGNvbnN0IHN0cnVjdCBkb21haW4g
KmQsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiArew0KPj4gKyAgICBzdHJ1Y3QgdnBjaV9k
ZXYgKnZkZXY7DQo+PiArDQo+PiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCB2ZGV2LCAmZC0+
dmRldl9saXN0LCBsaXN0ICkNCj4+ICsgICAgICAgIGlmICggdmRldi0+cGRldiA9PSBwZGV2ICkN
Cj4+ICsgICAgICAgICAgICByZXR1cm4gdmRldjsNCj4+ICsgICAgcmV0dXJuIE5VTEw7DQo+PiAr
fQ0KPj4gKw0KPj4gK2ludCBwY2lfYWRkX3ZpcnR1YWxfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQs
IGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4gK3sNCj4+ICsgICAgc3RydWN0IHZwY2lf
ZGV2ICp2ZGV2Ow0KPj4gKw0KPj4gKyAgICBBU1NFUlQoIXBjaV9maW5kX3ZpcnR1YWxfZGV2aWNl
KGQsIHBkZXYpKTsNCj4+ICsNCj4+ICsgICAgLyogRWFjaCBQQ0kgYnVzIHN1cHBvcnRzIDMyIGRl
dmljZXMvc2xvdHMgYXQgbWF4LiAqLw0KPj4gKyAgICBpZiAoIGQtPnZwY2lfZGV2X25leHQgPiAz
MSApDQo+PiArICAgICAgICByZXR1cm4gLUVOT1NQQzsNCj4+ICsNCj4+ICsgICAgdmRldiA9IHh6
YWxsb2Moc3RydWN0IHZwY2lfZGV2KTsNCj4+ICsgICAgaWYgKCAhdmRldiApDQo+PiArICAgICAg
ICByZXR1cm4gLUVOT01FTTsNCj4+ICsNCj4+ICsgICAgLyogV2UgZW11bGF0ZSBhIHNpbmdsZSBo
b3N0IGJyaWRnZSBmb3IgdGhlIGd1ZXN0LCBzbyBzZWdtZW50IGlzIGFsd2F5cyAwLiAqLw0KPj4g
KyAgICB2ZGV2LT5zZWcgPSAwOw0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBUaGUgYnVz
IG51bWJlciBpcyBzZXQgdG8gMCwgc28gdmlydHVhbCBkZXZpY2VzIGFyZSBzZWVuDQo+PiArICAg
ICAqIGFzIGVtYmVkZGVkIGVuZHBvaW50cyBiZWhpbmQgdGhlIHJvb3QgY29tcGxleC4NCj4+ICsg
ICAgICovDQo+PiArICAgIHZkZXYtPmJ1cyA9IDA7DQo+PiArICAgIHZkZXYtPmRldmZuID0gUENJ
X0RFVkZOKGQtPnZwY2lfZGV2X25leHQrKywgMCk7DQo+IFRoaXMgd291bGQgbGlrZWx5IGJlIGJl
dHRlciBhcyBhIGJpdG1hcCB3aGVyZSB5b3Ugc2V0IHRoZSBiaXRzIG9mDQo+IGluLXVzZSBzbG90
cy4gVGhlbiB5b3UgY2FuIHVzZSBmaW5kX2ZpcnN0X2JpdCBvciBzaW1pbGFyIHRvIGdldCBhIGZy
ZWUNCj4gc2xvdC4NCj4NCj4gTG9uZyB0ZXJtIHlvdSBtaWdodCB3YW50IHRvIGFsbG93IHRoZSBj
YWxsZXIgdG8gcHJvdmlkZSBhIHByZS1zZWxlY3RlZA0KPiBzbG90LCBhcyBpdCdzIHBvc3NpYmxl
IGZvciB1c2VycyB0byByZXF1ZXN0IHRoZSBkZXZpY2UgdG8gYXBwZWFyIGF0IGENCj4gc3BlY2lm
aWMgc2xvdCBvbiB0aGUgZW11bGF0ZWQgYnVzLg0KPg0KPj4gKw0KPj4gKyAgICB2ZGV2LT5wZGV2
ID0gcGRldjsNCj4+ICsgICAgdmRldi0+ZG9tYWluID0gZDsNCj4+ICsNCj4+ICsgICAgcGNpZGV2
c19sb2NrKCk7DQo+PiArICAgIGxpc3RfYWRkX3RhaWwoJnZkZXYtPmxpc3QsICZkLT52ZGV2X2xp
c3QpOw0KPj4gKyAgICBwY2lkZXZzX3VubG9jaygpOw0KPj4gKw0KPj4gKyAgICByZXR1cm4gMDsN
Cj4+ICt9DQo+PiArDQo+PiAraW50IHBjaV9yZW1vdmVfdmlydHVhbF9kZXZpY2Uoc3RydWN0IGRv
bWFpbiAqZCwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiArew0KPj4gKyAgICBzdHJ1
Y3QgdnBjaV9kZXYgKnZkZXY7DQo+PiArDQo+PiArICAgIHBjaWRldnNfbG9jaygpOw0KPj4gKyAg
ICB2ZGV2ID0gcGNpX2ZpbmRfdmlydHVhbF9kZXZpY2UoZCwgcGRldik7DQo+PiArICAgIGlmICgg
dmRldiApDQo+PiArICAgICAgICBsaXN0X2RlbCgmdmRldi0+bGlzdCk7DQo+PiArICAgIHBjaWRl
dnNfdW5sb2NrKCk7DQo+PiArICAgIHhmcmVlKHZkZXYpOw0KPj4gKyAgICByZXR1cm4gMDsNCj4+
ICt9DQo+PiArI2VuZGlmIC8qIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUICovDQo+PiAr
DQo+PiAgIC8qIENhbGxlciBzaG91bGQgaG9sZCB0aGUgcGNpZGV2c19sb2NrICovDQo+PiAgIHN0
YXRpYyBpbnQgZGVhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHVpbnQxNl90IHNlZywg
dWludDhfdCBidXMsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgZGV2
Zm4pDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMgYi94ZW4vZHJpdmVy
cy92cGNpL3ZwY2kuYw0KPj4gaW5kZXggNzAyZjdiNWQ1ZGRhLi5kNzg3ZjEzZTY3OWUgMTAwNjQ0
DQo+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYw0KPj4gKysrIGIveGVuL2RyaXZlcnMv
dnBjaS92cGNpLmMNCj4+IEBAIC05MSwyMCArOTEsMzIgQEAgaW50IF9faHdkb21faW5pdCB2cGNp
X2FkZF9oYW5kbGVycyhzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICAgLyogTm90aWZ5IHZQQ0kg
dGhhdCBkZXZpY2UgaXMgYXNzaWduZWQgdG8gZ3Vlc3QuICovDQo+PiAgIGludCB2cGNpX2Fzc2ln
bl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikNCj4+
ICAgew0KPj4gKyAgICBpbnQgcmM7DQo+PiArDQo+PiAgICAgICAvKiBJdCBvbmx5IG1ha2VzIHNl
bnNlIHRvIGFzc2lnbiBmb3IgaHdkb20gb3IgZ3Vlc3QgZG9tYWluLiAqLw0KPj4gICAgICAgaWYg
KCBpc19zeXN0ZW1fZG9tYWluKGQpIHx8ICFoYXNfdnBjaShkKSApDQo+PiAgICAgICAgICAgcmV0
dXJuIDA7DQo+PiAgIA0KPj4gLSAgICByZXR1cm4gdnBjaV9iYXJfYWRkX2hhbmRsZXJzKGQsIGRl
dik7DQo+PiArICAgIHJjID0gdnBjaV9iYXJfYWRkX2hhbmRsZXJzKGQsIGRldik7DQo+PiArICAg
IGlmICggcmMgKQ0KPj4gKyAgICAgICAgcmV0dXJuIHJjOw0KPj4gKw0KPj4gKyAgICByZXR1cm4g
cGNpX2FkZF92aXJ0dWFsX2RldmljZShkLCBkZXYpOw0KPj4gICB9DQo+PiAgIA0KPj4gICAvKiBO
b3RpZnkgdlBDSSB0aGF0IGRldmljZSBpcyBkZS1hc3NpZ25lZCBmcm9tIGd1ZXN0LiAqLw0KPj4g
ICBpbnQgdnBjaV9kZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qgc3RydWN0
IHBjaV9kZXYgKmRldikNCj4+ICAgew0KPj4gKyAgICBpbnQgcmM7DQo+PiArDQo+PiAgICAgICAv
KiBJdCBvbmx5IG1ha2VzIHNlbnNlIHRvIGRlLWFzc2lnbiBmcm9tIGh3ZG9tIG9yIGd1ZXN0IGRv
bWFpbi4gKi8NCj4+ICAgICAgIGlmICggaXNfc3lzdGVtX2RvbWFpbihkKSB8fCAhaGFzX3ZwY2ko
ZCkgKQ0KPj4gICAgICAgICAgIHJldHVybiAwOw0KPj4gICANCj4+ICsgICAgcmMgPSBwY2lfcmVt
b3ZlX3ZpcnR1YWxfZGV2aWNlKGQsIGRldik7DQo+PiArICAgIGlmICggcmMgKQ0KPj4gKyAgICAg
ICAgcmV0dXJuIHJjOw0KPj4gKw0KPj4gICAgICAgcmV0dXJuIHZwY2lfYmFyX3JlbW92ZV9oYW5k
bGVycyhkLCBkZXYpOw0KPj4gICB9DQo+PiAgICNlbmRpZiAvKiBDT05GSUdfSEFTX1ZQQ0lfR1VF
U1RfU1VQUE9SVCAqLw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9wY2kuaCBiL3hl
bi9pbmNsdWRlL3hlbi9wY2kuaA0KPj4gaW5kZXggNDNiOGEwODE3MDc2Li4zMzAzM2EzYThmOGQg
MTAwNjQ0DQo+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vcGNpLmgNCj4+ICsrKyBiL3hlbi9pbmNs
dWRlL3hlbi9wY2kuaA0KPj4gQEAgLTEzNyw2ICsxMzcsMjQgQEAgc3RydWN0IHBjaV9kZXYgew0K
Pj4gICAgICAgc3RydWN0IHZwY2kgKnZwY2k7DQo+PiAgIH07DQo+PiAgIA0KPj4gKyNpZmRlZiBD
T05GSUdfSEFTX1ZQQ0lfR1VFU1RfU1VQUE9SVA0KPj4gK3N0cnVjdCB2cGNpX2RldiB7DQo+PiAr
ICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsNCj4+ICsgICAgLyogUGh5c2ljYWwgUENJIGRldmlj
ZSB0aGlzIHZpcnR1YWwgZGV2aWNlIGlzIGNvbm5lY3RlZCB0by4gKi8NCj4+ICsgICAgY29uc3Qg
c3RydWN0IHBjaV9kZXYgKnBkZXY7DQo+PiArICAgIC8qIFZpcnR1YWwgU0JERiBvZiB0aGUgZGV2
aWNlLiAqLw0KPj4gKyAgICB1bmlvbiB7DQo+PiArICAgICAgICBzdHJ1Y3Qgew0KPj4gKyAgICAg
ICAgICAgIHVpbnQ4X3QgZGV2Zm47DQo+PiArICAgICAgICAgICAgdWludDhfdCBidXM7DQo+PiAr
ICAgICAgICAgICAgdWludDE2X3Qgc2VnOw0KPj4gKyAgICAgICAgfTsNCj4+ICsgICAgICAgIHBj
aV9zYmRmX3Qgc2JkZjsNCj4+ICsgICAgfTsNCj4+ICsgICAgc3RydWN0IGRvbWFpbiAqZG9tYWlu
Ow0KPj4gK307DQo+PiArI2VuZGlmDQo+IEkgd29uZGVyIHdoZXRoZXIgdGhpcyBpcyBzdHJpY3Rs
eSBuZWVkZWQuIFdvbid0IGl0IGJlIGVub3VnaCB0byBzdG9yZQ0KPiB0aGUgdmlydHVhbCAoaWU6
IGd1ZXN0KSBzYmRmIGluc2lkZSB0aGUgZXhpc3RpbmcgdnBjaSBzdHJ1Y3Q/DQo+DQo+IEl0IHdv
dWxkIGF2b2lkIHRoZSBvdmVyaGVhZCBvZiB0aGUgdHJhbnNsYXRpb24geW91IGRvIGZyb20gcGRl
diAtPg0KPiB2ZGV2LCBhbmQgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGFueXRoaW5nIHJlbGV2
YW50IHN0b3JlZCBpbg0KPiB2cGNpX2RldiBhcGFydCBmcm9tIHRoZSB2aXJ0dWFsIHNiZGYuDQpU
TDtEUiBJdCBzZWVtcyBpdCBtaWdodCBiZSBuZWVkZWQgZnJvbSBwZXJmb3JtYW5jZSBQT1YuIElm
IG5vdCBpbXBsZW1lbnRlZA0KZm9yIGV2ZXJ5IE1NSU8gdHJhcCB3ZSB1c2UgYSBnbG9iYWwgUENJ
IGxvY2ssIGUuZy4gcGNpZGV2c197bG9ja3x1bmxvY2t9Lg0KTm90ZTogcGNpZGV2cycgbG9jayBp
cyBhIHJlY3Vyc2l2ZSBsb2NrDQoNClRoZXJlIGFyZSAyIHNvdXJjZXMgb2YgYWNjZXNzIHRvIHZp
cnR1YWwgZGV2aWNlczoNCjEuIER1cmluZyBpbml0aWFsaXphdGlvbiB3aGVuIHdlIGFkZCwgYXNz
aWduIG9yIGRlLWFzc2lnbiBhIFBDSSBkZXZpY2UNCjIuIEF0IHJ1bi10aW1lIHdoZW4gd2UgdHJh
cCBjb25maWd1cmF0aW9uIHNwYWNlIGFjY2VzcyBhbmQgbmVlZCB0bw0KdHJhbnNsYXRlIHZpcnR1
YWwgU0JERiBpbnRvIHBoeXNpY2FsIFNCREYNCjMuIEF0IGxlYXN0IGRlLWFzc2lnbiBjYW4gcnVu
IGNvbmN1cnJlbnRseSB3aXRoIE1NSU8gaGFuZGxlcnMNCg0KTm93IGxldCdzIHNlZSB3aGljaCBs
b2NrcyBhcmUgaW4gdXNlIHdoaWxlIGRvaW5nIHRoYXQuDQoNCjEuIE5vIHN0cnVjdCB2cGNpX2Rl
diBpcyB1c2VkLg0KMS4xLiBXZSByZW1vdmUgdGhlIHN0cnVjdHVyZSBhbmQganVzdCBhZGQgcGRl
di0+dnBjaS0+Z3Vlc3Rfc2JkZiBhcyB5b3Ugc3VnZ2VzdA0KMS4yLiBUbyBwcm90ZWN0IHZpcnR1
YWwgZGV2aWNlcyB3ZSB1c2UgcGNpZGV2c197bG9ja3x1bmxvY2t9DQoxLjMuIExvY2tpbmcgaGFw
cGVucyBvbiBzeXN0ZW0gbGV2ZWwNCg0KMi4gc3RydWN0IHZwY2lfZGV2IGlzIHVzZWQNCjIuMS4g
V2UgaGF2ZSBhIHBlci1kb21haW4gbG9jayB2ZGV2X2xvY2sNCjIuMi4gTG9ja2luZyBoYXBwZW5z
IG9uIHBlciBkb21haW4gbGV2ZWwNCg0KVG8gY29tcGFyZSB0aGUgdHdvOg0KDQoxLiBXaXRob3V0
IHZwY2lfZGV2DQpwcm9zOiBtdWNoIHNpbXBsZXIgY29kZQ0KcHJvcy9jb25zOiBnbG9iYWwgbG9j
ayBpcyB1c2VkIGR1cmluZyBNTUlPIGhhbmRsaW5nLCBidXQgaXQgaXMgYSByZWN1cnNpdmUgbG9j
aw0KDQoyLiBXaXRoIHZwY19kZXYNCnByb3M6IHBlci1kb21haW4gbG9ja2luZw0KY29uczogbW9y
ZSBjb2RlDQoNCkkgaGF2ZSBpbXBsZW1lbnRlZCB0aGUgdHdvIG1ldGhvZHMgYW5kIHdlIG5lZWQg
dG8gZGVjaWRlDQp3aGljaCByb3V0ZSB3ZSBnby4NCj4gVGhhbmtzLCBSb2dlci4NClRoYW5rIHlv
dSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 08:21:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 08:21:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220572.381881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miBW7-0005D9-6j; Wed, 03 Nov 2021 08:21:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220572.381881; Wed, 03 Nov 2021 08:21:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miBW7-0005D2-3R; Wed, 03 Nov 2021 08:21:07 +0000
Received: by outflank-mailman (input) for mailman id 220572;
 Wed, 03 Nov 2021 08:21:05 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miBW5-0005Cw-Sw
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 08:21:05 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id fbd621c2-3c7e-11ec-8563-12813bfff9fa;
 Wed, 03 Nov 2021 08:21:04 +0000 (UTC)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2056.outbound.protection.outlook.com [104.47.12.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-29-vDNDBs0sN8GD3iIoY8E26Q-1; Wed, 03 Nov 2021 09:21:01 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3295.eurprd04.prod.outlook.com (2603:10a6:802:f::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 08:20:58 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 08:20:58 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0060.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Wed, 3 Nov 2021 08:20:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbd621c2-3c7e-11ec-8563-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635927662;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=aArAqb6ejqLFYdyC6R+7fNCPuBNUV6EAlayeKecleoY=;
	b=m42LZwJSGVYxvHM04UgI8VBhJHslldpDotIJagNq7P4IKr8NzYIXhlyC7Q1X46JqI72EWy
	yfhGciYIgmFGepMortzCrkGll9CJZMFf7jPGwQ7T+kAXN9C7gDBQ+zSQ/fIbVAPU0vSwmX
	Iim3yf2iyok5juhvoTSNzu+h4FaP8ts=
X-MC-Unique: vDNDBs0sN8GD3iIoY8E26Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OtWTmUBAyyywEm10nOsgFMLRggIef//J6o/Z1IQfSj1UUAWMLiUv2H1zEsMetLWtTxYCmt8EWa578XJBFGEwpvLJp4+Q4jL4Jd5osWzzI+eFSVSvD96oFGWKmqGJH8ZDU6/EA0fCGUkVtpPgwfWhoZQu/6Xy+4Z37Ae9w6zWTl5UdhxS8s2zGoUMXyEnDpbTLLVNsXngO2rwbplP6u/mDjhj4GAgEM1KAfp9bzVCYOUtqgcdyRX7y0oceIQp13/vWef2FkwvlfSXPpwR3TwVhSBgSKld8l0LTNrI7BMnr4v0Y9lTsCcuSKKi5RXxhZcEG++q7eCsNuJVq5N3z3EylA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Bgu9c7zjCUhR9ptv/DYh07QJNRGARaSyksN0B1FpRyg=;
 b=hlSx8T2Y96dWYmP3uQSEZE4Jm7V4nmM0n0Ta5z66WRtc2cvUxAymP+ERi6ZnYmu0jM97yZyVj99hL1zwRpTtj9dAL1FNol4zOKe5a6n3s3FAp5wRGAUsPo69Y2CIz0zhSKwDRiLsN25my6dEeeI5s4GXDNo5Hvi/dHAHhzM3ELh5kRd9rK4+tWfOhiZtG7UpOHRXqyfa+2tBwIW2CSTvSzjiVll6FaTELquE3ql2vZ1j4ib8MTE2qayuNQ1/NO40rWb4mKpwkTvFg56FdEwJCnP4NBe6XwOp5alJpnJrQnl/xY5m5sDWnXHEbkWfPWJS5FJzueeqifV+LFSQFxJXuA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
Date: Wed, 3 Nov 2021 09:20:56 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Luca Fancellu <luca.fancellu@arm.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Ian Jackson <iwj@xenproject.org>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P194CA0060.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:84::37) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 84d94b87-4591-4d2b-2332-08d99ea2dd2f
X-MS-TrafficTypeDiagnostic: VI1PR04MB3295:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB32950304FD68C60A7712CCFFB38C9@VI1PR04MB3295.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	yYfL3cZcfQqfsAVeA6XLTzRTqRLZyi1kUy32RUOt6XYlPQ2E4dq2dbEXiLeDfG/NLMHT6SpX/QG20MO0h/4RPMF+pHWSoeJ2TpIOxEyz+zag/CG5hgld0AagXHV3C5x8zgUqsTzK1/KA9YGjfpN++mVwDDJhO6mHulX5zCrIt1RQAGl5ab1/8mQo3fUtesoicqGx4bhlBbgHu9zsRIP3Q1a5eBQvCCPpIPDiugRkmGQB+0ZKOMvVv4cuRiQKuKgDas6cXWfIETqFIAT+nR6MSezgwk1GdcmbAs4so/r9gxSjsQyKIXQ7v9ayuWC2NeXcj60262azqGH01XZESjPGNm699EkDe1Utk0krQlnsaZZe66HBMuzftHBn9I8DWsjvRCGYAkPxu5RYg5EuidWw4vhI9bYSUZoTaL9+f8fw5ozUgmYYOzVxSQqwkn8bdzEYpQ73Re2KdJVw2qd8dKEsxLuBxW1cwHHD776PbRqpMCJlaNhMAHJEphxhZ9ZJFnzq5EYiEXfsya4lHzLnxRjpQjWr2JV358OxNUdGvX5je3bh2NTjTATTMF6PseLfM2Wl4o3a1vvGrdibvj7rS4VKRz/I4XlgHdf44WmKB5z/LmS49VMlZSItN+V9+GIGstnRlnz/Nu9QoFLN0wSh5+P1CmMVjLrsSMOxqUT9es0mCsFishaqXJxIUT0IYzEHy9zUdnn1ytFEywroTOHazkS5dCONHVMuN5N8qINYv7S2DQhGu8nguZA+pQA/Wrmq1iIf
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(6916009)(956004)(31696002)(2616005)(6486002)(83380400001)(36756003)(66946007)(316002)(8936002)(54906003)(86362001)(66556008)(508600001)(53546011)(5660300002)(26005)(2906002)(66476007)(4326008)(186003)(16576012)(31686004)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?zYC1HoS9UTzet2Eyyeun2/cBGeb4d9A5W6XZtVbs3NzTjJ6fONHO9QhSRjSf?=
 =?us-ascii?Q?Cjvip4mAWvZUn8WPeMnzyy39t53e90/tdjzDDSA7X+rxOuA/772o+tND8sT+?=
 =?us-ascii?Q?RoZb19T+iqY1rFsNQRl9pUOGtPF5OQodv51rHLgAoZ5NQPvo/60VOyxP4CxO?=
 =?us-ascii?Q?5G+lu8jz2/kvu1AwodixdQdZkVIKJy0bqTGIr/rosaNU4D4ad9z2buWriZkF?=
 =?us-ascii?Q?fqENa73DCT72QfCe3HslWEpAk/OWnQQFj0dye/l1rrWs18B957q3l+a3tlaU?=
 =?us-ascii?Q?kLJkiHtMo6L2eqIzYXopLy1s7xDmfcNIdDKyjf30ZARsQ6aEaq5XCZ3GSEAO?=
 =?us-ascii?Q?JUU93HJsqnPs0k2O6vrnr2ssQGYtSGCPuO8d7NLCrGT281XSnrvY9jXodAf0?=
 =?us-ascii?Q?iJy1eiVHhJ1zXe583pDdSASu1YUHYbRy7AfRnTu9cE2hWjUJ45q3bb8DrzWy?=
 =?us-ascii?Q?bmqp7MkYlSTuRiMn0S/9V1AmPDUUNwa6gC2EVtRfINNhm0G1CJYaWQOha6d2?=
 =?us-ascii?Q?8NNkw/PSWl/+kfdvPSFFRHZ7m1VYhWWJmtY3khxw/GJSj+L3hJIUzqO6YMsY?=
 =?us-ascii?Q?DbhgNh4NaHTaSO0s2pJxomqEuGdW6gA8g5nq3okF0EiyhO7KsATkfiGAWWbV?=
 =?us-ascii?Q?tMyiV4jz6qBLAReh+8rDHdeZ0co5mRyMl9u3pa2UPsmb4w+aSZjJLuHu0iQK?=
 =?us-ascii?Q?eedgaBEvnQStWp8/OrL3hVCB1FoQ9h2dbAs4C7YI0gFPvKQF7CJvRNaGRj/k?=
 =?us-ascii?Q?JPScsoE5gShsbyVmCfDOjc331V+uBi4NIn2JO/obHqSUvFmdSfFSMwruBrK/?=
 =?us-ascii?Q?d8UA/bkX/uVIz02BY95ZyExevzNw4fHLFeKK8IqNJ0BUsYQMNf4bOFmQwU/5?=
 =?us-ascii?Q?+hhCIE/Kx2Yv8GSMCJ6CDlgUHtbj9rj277cwTWNRABDidOq2woHuQq34DAXv?=
 =?us-ascii?Q?gJ5mxvGeDz6QkBX6feaTm6w24vfe+JDOxmP55EUHeFGnEGnlfTnAWQibFHIj?=
 =?us-ascii?Q?9ZXV5TVOJuOMjcUHvPu8hZWqglbZC1B9enyGt3RcEMV9DvIcbf0SFhRy7NEM?=
 =?us-ascii?Q?JJEzNxwJdXfBuB4bz64n4+kzxtKc+u+BI+D9amVLRX4+II7zAxnW9AAb3vjG?=
 =?us-ascii?Q?g4vqNYT5+ddUOY2xDsOSd7TXAPcL9zpNjQ/3Vq6GYIZNl1ZLMDfNjyTJrPyx?=
 =?us-ascii?Q?O4Hhl0auopAiAa9zAQbA5COtAQieqfEu7oYU3SmUW79w7eln4V18NUYpN7OZ?=
 =?us-ascii?Q?iBpfpCQ6Qo9xBCgN8Gg/Mz9PCrjBezm2xK8LRbFQowX3oy+IUa+A9B1sy97u?=
 =?us-ascii?Q?PE2WFAgJ/zjln8yxdAKkQW1iz54cKY1PMFqFU1cR3c4VWSJEMXI0hg9N+jos?=
 =?us-ascii?Q?+sjMNNlFv6Th3ZCM5P19j8GoETkgcr+XDwCesfzqefmetKs474NhXEopfsXj?=
 =?us-ascii?Q?eo94vvHAD0OlOx795K5Un3/2ix5jYrL2p9i8tD6AMhzd9PJnNVdzIgHDs7nx?=
 =?us-ascii?Q?WRjffUTq1PKAA4UNrOnWvRyOFsybFY1bweSyLpMbLd2+Ujg1HdHt4XDs6o8/?=
 =?us-ascii?Q?Ipfn1zszmqe1g3OCa0vvylkU5V+Hwt5CIQqKTp4MxbR6fixsmfqh6Bt20S8k?=
 =?us-ascii?Q?Q46jXLNEPRB/OHkJIdOxWr4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 84d94b87-4591-4d2b-2332-08d99ea2dd2f
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 08:20:58.3619
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wMVIRZVlhvKqH83zf8xV9Cy74+wmKUuBQ1SxKnuy8LuGpVckhhze3/yGO4QTLuRWpsSZJRsK9Gyg++5wliy2vQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3295

On 02.11.2021 18:12, Luca Fancellu wrote:
>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>> introducing a problem to boot Xen using Grub2 on ARM machine using EDK2=
.
>>>
>>> The problem comes from the function get_parent_handle(...) that inside
>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>>> is NULL, making Xen stop the UEFI boot.
>>
>> According to my reading the UEFI spec doesn't (explicitly) allow for
>> this to be NULL. Could you clarify why this is the case? What other
>> information may end up being invalid / absent? Is e.g. read_section()
>> safe to use?
>=20
> My test on an arm machine running Grub2 on top of EDK2 showed that
> when Xen is started, the get_parent_handle(=E2=80=A6) call was failing an=
d stopping
> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called with th=
e
> loaded_image->DeviceHandle argument NULL and the call was returning
> a EFI_INVALID_PARAMETER.
> So the parent handle can=E2=80=99t be requested and the filesystem can=E2=
=80=99t be used,
> but any other code that doesn=E2=80=99t use the handle provided by get_pa=
rent_handle(=E2=80=A6)
> can be used without problem like read_section(...).

I understand this. My question was for the reason of ->DeviceHandle
being NULL. IOW I'm wondering whether we're actually talking about a
firmware or GrUB bug, in which case your change is a workaround for
that rather than (primarily) a fix for the earlier Xen change.

>>> --- a/xen/common/efi/boot.c
>>> +++ b/xen/common/efi/boot.c
>>> @@ -449,6 +449,13 @@ static EFI_FILE_HANDLE __init get_parent_handle(EF=
I_LOADED_IMAGE *loaded_image,
>>>     CHAR16 *pathend, *ptr;
>>>     EFI_STATUS ret;
>>>
>>> +    /*
>>> +     * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PR=
OTOCOL
>>> +     * to have access to the filesystem.
>>> +     */
>>> +    if ( !loaded_image->DeviceHandle )
>>> +        return NULL;
>>
>> I couldn't find anything in the spec saying that NULL (a pointer with
>> the numeric value zero) could actually not be a valid handle. Could
>> you point me to text saying so?
>=20
> I am reading UEFI spec 2.8 A, section 7.3 Protocol Handler Services, when=
 it talks about
> EFI_BOOT_SERVICES.HandleProtocol() there is a table of =E2=80=9CStatus Co=
de Returned=E2=80=9D listing
> the EFI_INVALID_PARAMETER when the Handle is NULL.

Oh, okay. I guess I didn't search very well.

>>> @@ -1333,6 +1342,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABL=
E *SystemTable)
>>>             EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>>>                                                        &file_name);
>>>
>>> +            if ( !handle )
>>> +                blexit(L"Error retrieving image name: no filesystem ac=
cess");
>>
>> I don't think this should be fatal - see the comment ahead of the
>> enclosing if().
>=20
> I=E2=80=99m not sure I get it, I put the fatal condition in part because =
the handle was dereferenced by
> handle->Close(handle), but also because file_name would have not being mo=
dified by the call
> and we have then *argv =3D file_name.

Instead of you making boot fail I was trying to suggest that you insert
a made-up name ("xen" or "xen.efi"?) alongside issuing just a warning
message.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 08:36:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 08:36:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220579.381891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miBkV-0006iB-GS; Wed, 03 Nov 2021 08:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220579.381891; Wed, 03 Nov 2021 08:35:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miBkV-0006i4-DZ; Wed, 03 Nov 2021 08:35:59 +0000
Received: by outflank-mailman (input) for mailman id 220579;
 Wed, 03 Nov 2021 08:35:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miBkU-0006hu-55; Wed, 03 Nov 2021 08:35:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miBkU-0004FY-06; Wed, 03 Nov 2021 08:35:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miBkT-0006Qd-Kz; Wed, 03 Nov 2021 08:35:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miBkT-0000Pv-Jg; Wed, 03 Nov 2021 08:35:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kuOXUJbZ+8He7QXjVipgSVfBTpTysRllSTZiCfLAtQE=; b=tZT28/7LVqSPxE3Dv5Y26M+hs/
	53m6dyfWT3DO1Os5PpyVLJuP8YaIoiCQBTGEcpuB+RA6X8CwtI/SAwaLYEFn1by3xI9UMvmu3w+XD
	CLZmKNnlOh9z5ZwM7xItrHWd6AoclEaQ6dzVvakJaTVQEiLt0ruep4Tcf4VfNpev+N2k=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166020-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166020: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=ab2e7f4b46bf8fccf088ec496b3bb26b43e91340
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 08:35:57 +0000

flight 166020 linux-linus real [real]
flight 166023 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166020/
http://logs.test-lab.xenproject.org/osstest/logs/166023/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166023-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                ab2e7f4b46bf8fccf088ec496b3bb26b43e91340
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    1 days
Failing since        165992  2021-11-02 05:40:21 Z    1 days    2 attempts
Testing same since   166020  2021-11-02 19:42:09 Z    0 days    1 attempts

------------------------------------------------------------
887 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 79759 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 08:41:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 08:41:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220588.381905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miBpm-00087C-4y; Wed, 03 Nov 2021 08:41:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220588.381905; Wed, 03 Nov 2021 08:41:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miBpm-000875-1x; Wed, 03 Nov 2021 08:41:26 +0000
Received: by outflank-mailman (input) for mailman id 220588;
 Wed, 03 Nov 2021 08:41:25 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miBpl-00086z-4S
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 08:41:25 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id d2db8c0a-3c81-11ec-8563-12813bfff9fa;
 Wed, 03 Nov 2021 08:41:23 +0000 (UTC)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2053.outbound.protection.outlook.com [104.47.12.53]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-27-gFYk2f6MMXqNhJDv3L74HA-1; Wed, 03 Nov 2021 09:41:21 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7149.eurprd04.prod.outlook.com (2603:10a6:800:12e::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 08:41:20 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 08:41:19 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR03CA0023.eurprd03.prod.outlook.com (2603:10a6:20b:130::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Wed, 3 Nov 2021 08:41:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2db8c0a-3c81-11ec-8563-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635928882;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=0iEHL0QLbccmeJutcM9lxSVS+Qv9dQrsGkRl/zyoaRI=;
	b=QaTGQe+UXBzEvuSbsdBDII91jRQB7DayZqlAYtz+VqQWlKiRf+WaLVNWcNloSAvduEXKV3
	uh5b2IgIxuuvbcsnnEHlmgUVHs6FRy4Nf0h39G4F6NGSiSkNMGbh6TL2uGfsqi3XAcgvl7
	WPGC7pqAJXQcvljV/I8wYTs7ydMXHhA=
X-MC-Unique: gFYk2f6MMXqNhJDv3L74HA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=b4+dcMu/2eMH8F4NYsfYKNFIpLcJm7HxIbDuqyULLSYzEbQ/MVrILswBVmb+MSjGvazborFCNNg3KKmvUjjlPcCutBIIX4d9tmqti4NheYpX/XqPn7HALb/5xaTzZ6WF2FYW1IYcBvIlLfEqndv/4UjuaiA0rh/8H8bNHEcnvvQ/aeuP4C6iG2GuUYorCm1cGVqaHao14ciMCBUbhz68C0m1xqSK5rIcrvIXjfLXvFlVCiuMuO7Qmm6PC3Dd+K3KghaOQSzsV0aTdXctUUFWvU1/c0QMNAOhnEZUF2V3HmuDSyH3bQcCSl7jEAh6vilKQey6QYrwrlMZA/Az35+avQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m73GNml3GEXj5c+aoGrFbSvAaBjXR7mRF/9kTJuEFm8=;
 b=Cf0/wT3XGtyLtIyzTlONwZNcc/2FXEH/sqqbjg4ix7aoQT4gBEiYoJk6KDT5l4Q8SVr6w+nOUWDIJdZdi3/XveqTkAoMLuaAWvhzPO4vgj0S0yEOtqPLlMB7YvJPOhxvBeDvhAu2fsf56oYavcS+10hvF4ibdcsXL3UHTtZClSOtLeu89fRwx0OcI1OgUDVaryusLHaCqV2MyaGjpfrSe9PjveITeN5Ud/8QKizNX528bfqG7Y0Nms4jxlSjI3iQTk1PoetXttkqyhxiik6jM4Z6NJqVmg57DP2TmhlpjGUsj93PPGMIQiL7gSgWDKCoiuAZG+9MwynsiCW8i6Av8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <5ee482d2-3af5-b49a-facf-6a78ab672cd4@suse.com>
Date: Wed, 3 Nov 2021 09:41:17 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus
 topology
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-11-andr2000@gmail.com>
 <YXfng3PqDI6C4yxn@MacBook-Air-de-Roger.local>
 <52b1533d-4aeb-29be-2611-9b50adea3f73@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <52b1533d-4aeb-29be-2611-9b50adea3f73@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM7PR03CA0023.eurprd03.prod.outlook.com
 (2603:10a6:20b:130::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8d6ddd3e-b89b-4020-cb3d-08d99ea5b544
X-MS-TrafficTypeDiagnostic: VI1PR04MB7149:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7149549493D79977E3BC8306B38C9@VI1PR04MB7149.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hcDLmJC9HDhHKjw2Xj8AlalU9+18XLAmCEYgq2VZAgLnCfg6KylvHEZzWYkaRCBprWtlrfGyvLfUz104Z/3YpZSoTearA1jwoQIismclUI7uN3inSCxvd4XrLD8orLE22u9GfaO6CKbxoBoPY1ig5rGdU3TQscVswdCmV3u/+74mmlFfw5i/xPogfnvKIGn4p0lUVuvDBBLjxX9EVInrB/V18ZO/lR+bSU/DGUco/XuRnRTlkC0NvfPJtJVYOGkyVe1MgyX6l9hEJur4mnAb+YES5wiUVPWg1pE0tTnA4jk0yToD1TroOMLq1ADzEx95zKpHeLENPuNNGlRh3XQf1r9RKXw5E1V9N5MfvN6h8HzFDM6JcG0tAw43l4ugJot5v5Mo5T+euChOeXvltozRcAoB76aNpwxJlx48WBNVXSzqhxn7E48mrxDeVYNmCZUfBCIdJHoZmv9q7qkSoli2g5wYG3DPZ20psXrthl/M5wQw1x856EtR0ZDuxbL84HdKhtA9+NfhjPhe5Wwpd6p8ApQ6KhrtgOxeWH+QrbaKc3Rpy5b3iORn64DEh8n0yzDipnQ35v7YnRFX5Bp2HbaAeedPgv2BKs37VtOlBtb7W/OjhclB/mgabALHOnOlrYKaXktsm6ldJepfTysWWQ75PiEP8e5s5p+wkgC39dKarv8ZOFp+CRjv2JChvseBztu/8CcfRIoZ57m9dazcogmg22Bn1Gy0GPewxQdNn60E/6LTb0j2aBUzFyJal+2dSvrL
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(53546011)(508600001)(26005)(956004)(5660300002)(6486002)(86362001)(31686004)(31696002)(36756003)(2616005)(66476007)(66556008)(83380400001)(186003)(66946007)(316002)(4326008)(16576012)(2906002)(7416002)(8936002)(54906003)(8676002)(6916009)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Qc6saaVJSmBfVLEXgux636NpVRDD84MZ+oP6lHLSWk0Tmpkpnds3stMNmB7G?=
 =?us-ascii?Q?c07KJn/LubRGhl243NJYD0E7Te4n8cdKwzQkaKqXeyuD3Yc4yGLV1/wG5hYZ?=
 =?us-ascii?Q?+Rt7ialo9ONKzVApyPb5uPV+WP+GcbKSCyA2AdFhM2knSNEJGYblR9BXQgX2?=
 =?us-ascii?Q?j0QlhekxseZsHFRbsYIbrUosUdWjHCWS4xEIuD7oojGMyLOXANzBvkgFIGJX?=
 =?us-ascii?Q?9BbyaBWGamkV8pVYLXPbl3ZnLMhfNXbxDRDzN7877H6xlgs9mDTFCBYJxAox?=
 =?us-ascii?Q?RmVe49MvOl0Lh/qNWnrhijwqMw0V9ts6Lx2IOdAdt+OmaGbLDgyuHomGzuO8?=
 =?us-ascii?Q?b7xWSshspKocQVUav2SD/WL7dQKWsUndS76j76sL/CKNUouwdvg9TB7LduH1?=
 =?us-ascii?Q?fOAFPU+Jyv0sPFpijD0rRus5WVCbrTGDf2/isXz+ARa0WD7r8XLw+5otlF7g?=
 =?us-ascii?Q?/D2KP5HE9azDA2WHEnGIVxGghV7kKOzVcUU95ePtGriLRGEjetTWyugDe0JG?=
 =?us-ascii?Q?C97kb6l5XtvZq5M54cDD1xeJgvwS8EPEeu9nFUqVAVdyv/SpO+ZxMMfJ8cvS?=
 =?us-ascii?Q?FzIle1PSR+HTdOhVcBVKHKUEVWSJVMC4PYrq8mcLMWfGQAki8LkjhdboidBD?=
 =?us-ascii?Q?zVfYR2F9G9sFT5Xvczu4NsN1qPneM4txE+lHELHDsNvPaTHzB7EOavMqQ6RG?=
 =?us-ascii?Q?6sYZjD7h6EQXcLUlSRhkgUE7eVaOVrYseJbtNfFN+Ni/3KMIwsDXslEOU+dT?=
 =?us-ascii?Q?fF28iK6q0nbTcuH1FYXI9AXHgiRVOAurQ8pTsCaoL1B/FzST1XUTC17schLo?=
 =?us-ascii?Q?MFPd/C96VGimA8g/XEUt5jDYshlKlvOnR3w57wfeNqXIMCW+QJi+378QyWyU?=
 =?us-ascii?Q?o+k7aojNzIdZJQtMrv4qqx1XcOcK5pxiZhMN5IkhtWXyG3W6rSxQVgZA9EM+?=
 =?us-ascii?Q?iA9cB2K/7FSS0+Q7hm07CaeAM1FQtOnsQ0/RFEunYuWehQQq3J91g4HrMXaX?=
 =?us-ascii?Q?HxX/NVe9bwclBHl2auMh49ud/PxqqO9QXuGF60pe5paRAdMsE11OwajWtXsC?=
 =?us-ascii?Q?QCW1Ny3LAVNL6JR0L8ceNetQe1BIL/Ar9DjrwR8Vrvu9d9KFCfOrX0OaqB9P?=
 =?us-ascii?Q?GxIZGXYT1/ulG6XLZpEgL9P47ewUT/0K34G8hIeLiNBAFgE2/Cs48REDdkf+?=
 =?us-ascii?Q?P0nSQ9Ur7Rc8F6GPVO07Au0y45FrsaGZNzFzAgfTZ65FkS7wbo7D0klIC9AV?=
 =?us-ascii?Q?FbdDHr/QdmPvKtdRpXCoArTPt/JD1tnx9KcAKugXdX6ZA5AkPCMyFaj8ogWm?=
 =?us-ascii?Q?a8bAqRnMCx1PAHN3mLfRGfP6hxmH1PzBGOhFNGvExQQE6MuHA+DnLOyApzmz?=
 =?us-ascii?Q?zUusGXtknlbZTeQp2XNfsmzxkXgk89iB/pyDSPbxKkuh21omQvDNb16x98pO?=
 =?us-ascii?Q?7BWOTZwJFmq5Lq57HS3SWW8ajc0hvYVse40+e6DO5UJCnUryqSFDMezTglwB?=
 =?us-ascii?Q?KlD2100U/Cv/lwwB1bXnbQqxyqsntW1SRzVOerrMxayDxWcO5pZzrCWRCLFS?=
 =?us-ascii?Q?cbktYejCvm5ZfyyrMVxBurxyPCvlRZKh8loA7mBbBDkjbp4mGEhyFToToxpJ?=
 =?us-ascii?Q?fAODpn1ukoEMt7OtRQTqtdw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d6ddd3e-b89b-4020-cb3d-08d99ea5b544
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 08:41:19.8972
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sOHoTby8Tx+q45yYDOCu9Uij70ZoBq1OLT+XIgTU81P7/QQh6TAMlAqEu9UW9d9iQn4QcD7KNJX+a6ZlC1y4HQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7149

On 03.11.2021 07:34, Oleksandr Andrushchenko wrote:
> Hi, Roger
>=20
> On 26.10.21 14:33, Roger Pau Monn=C3=A9 wrote:
>> On Thu, Sep 30, 2021 at 10:52:22AM +0300, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> Assign SBDF to the PCI devices being passed through with bus 0.
>>> The resulting topology is where PCIe devices reside on the bus 0 of the
>>> root complex itself (embedded endpoints).
>>> This implementation is limited to 32 devices which are allowed on
>>> a single PCI bus.
>>>
>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.co=
m>
>>>
>>> ---
>>> Since v2:
>>>   - remove casts that are (a) malformed and (b) unnecessary
>>>   - add new line for better readability
>>>   - remove CONFIG_HAS_VPCI_GUEST_SUPPORT ifdef's as the relevant vPCI
>>>      functions are now completely gated with this config
>>>   - gate common code with CONFIG_HAS_VPCI_GUEST_SUPPORT
>>> New in v2
>>> ---
>>>   xen/common/domain.c           |  3 ++
>>>   xen/drivers/passthrough/pci.c | 60 ++++++++++++++++++++++++++++++++++=
+
>>>   xen/drivers/vpci/vpci.c       | 14 +++++++-
>>>   xen/include/xen/pci.h         | 22 +++++++++++++
>>>   xen/include/xen/sched.h       |  8 +++++
>>>   5 files changed, 106 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>>> index 40d67ec34232..e0170087612d 100644
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -601,6 +601,9 @@ struct domain *domain_create(domid_t domid,
>>>  =20
>>>   #ifdef CONFIG_HAS_PCI
>>>       INIT_LIST_HEAD(&d->pdev_list);
>>> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
>>> +    INIT_LIST_HEAD(&d->vdev_list);
>>> +#endif
>>>   #endif
>>>  =20
>>>       /* All error paths can depend on the above setup. */
>>> diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pc=
i.c
>>> index 805ab86ed555..5b963d75d1ba 100644
>>> --- a/xen/drivers/passthrough/pci.c
>>> +++ b/xen/drivers/passthrough/pci.c
>>> @@ -831,6 +831,66 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
>>>       return ret;
>>>   }
>>>  =20
>>> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
>>> +static struct vpci_dev *pci_find_virtual_device(const struct domain *d=
,
>>> +                                                const struct pci_dev *=
pdev)
>>> +{
>>> +    struct vpci_dev *vdev;
>>> +
>>> +    list_for_each_entry ( vdev, &d->vdev_list, list )
>>> +        if ( vdev->pdev =3D=3D pdev )
>>> +            return vdev;
>>> +    return NULL;
>>> +}
>>> +
>>> +int pci_add_virtual_device(struct domain *d, const struct pci_dev *pde=
v)
>>> +{
>>> +    struct vpci_dev *vdev;
>>> +
>>> +    ASSERT(!pci_find_virtual_device(d, pdev));
>>> +
>>> +    /* Each PCI bus supports 32 devices/slots at max. */
>>> +    if ( d->vpci_dev_next > 31 )
>>> +        return -ENOSPC;
>>> +
>>> +    vdev =3D xzalloc(struct vpci_dev);
>>> +    if ( !vdev )
>>> +        return -ENOMEM;
>>> +
>>> +    /* We emulate a single host bridge for the guest, so segment is al=
ways 0. */
>>> +    vdev->seg =3D 0;
>>> +
>>> +    /*
>>> +     * The bus number is set to 0, so virtual devices are seen
>>> +     * as embedded endpoints behind the root complex.
>>> +     */
>>> +    vdev->bus =3D 0;
>>> +    vdev->devfn =3D PCI_DEVFN(d->vpci_dev_next++, 0);
>> This would likely be better as a bitmap where you set the bits of
>> in-use slots. Then you can use find_first_bit or similar to get a free
>> slot.
>>
>> Long term you might want to allow the caller to provide a pre-selected
>> slot, as it's possible for users to request the device to appear at a
>> specific slot on the emulated bus.
>>
>>> +
>>> +    vdev->pdev =3D pdev;
>>> +    vdev->domain =3D d;
>>> +
>>> +    pcidevs_lock();
>>> +    list_add_tail(&vdev->list, &d->vdev_list);
>>> +    pcidevs_unlock();
>>> +
>>> +    return 0;
>>> +}
>>> +
>>> +int pci_remove_virtual_device(struct domain *d, const struct pci_dev *=
pdev)
>>> +{
>>> +    struct vpci_dev *vdev;
>>> +
>>> +    pcidevs_lock();
>>> +    vdev =3D pci_find_virtual_device(d, pdev);
>>> +    if ( vdev )
>>> +        list_del(&vdev->list);
>>> +    pcidevs_unlock();
>>> +    xfree(vdev);
>>> +    return 0;
>>> +}
>>> +#endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
>>> +
>>>   /* Caller should hold the pcidevs_lock */
>>>   static int deassign_device(struct domain *d, uint16_t seg, uint8_t bu=
s,
>>>                              uint8_t devfn)
>>> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
>>> index 702f7b5d5dda..d787f13e679e 100644
>>> --- a/xen/drivers/vpci/vpci.c
>>> +++ b/xen/drivers/vpci/vpci.c
>>> @@ -91,20 +91,32 @@ int __hwdom_init vpci_add_handlers(struct pci_dev *=
pdev)
>>>   /* Notify vPCI that device is assigned to guest. */
>>>   int vpci_assign_device(struct domain *d, const struct pci_dev *dev)
>>>   {
>>> +    int rc;
>>> +
>>>       /* It only makes sense to assign for hwdom or guest domain. */
>>>       if ( is_system_domain(d) || !has_vpci(d) )
>>>           return 0;
>>>  =20
>>> -    return vpci_bar_add_handlers(d, dev);
>>> +    rc =3D vpci_bar_add_handlers(d, dev);
>>> +    if ( rc )
>>> +        return rc;
>>> +
>>> +    return pci_add_virtual_device(d, dev);
>>>   }
>>>  =20
>>>   /* Notify vPCI that device is de-assigned from guest. */
>>>   int vpci_deassign_device(struct domain *d, const struct pci_dev *dev)
>>>   {
>>> +    int rc;
>>> +
>>>       /* It only makes sense to de-assign from hwdom or guest domain. *=
/
>>>       if ( is_system_domain(d) || !has_vpci(d) )
>>>           return 0;
>>>  =20
>>> +    rc =3D pci_remove_virtual_device(d, dev);
>>> +    if ( rc )
>>> +        return rc;
>>> +
>>>       return vpci_bar_remove_handlers(d, dev);
>>>   }
>>>   #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
>>> diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
>>> index 43b8a0817076..33033a3a8f8d 100644
>>> --- a/xen/include/xen/pci.h
>>> +++ b/xen/include/xen/pci.h
>>> @@ -137,6 +137,24 @@ struct pci_dev {
>>>       struct vpci *vpci;
>>>   };
>>>  =20
>>> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
>>> +struct vpci_dev {
>>> +    struct list_head list;
>>> +    /* Physical PCI device this virtual device is connected to. */
>>> +    const struct pci_dev *pdev;
>>> +    /* Virtual SBDF of the device. */
>>> +    union {
>>> +        struct {
>>> +            uint8_t devfn;
>>> +            uint8_t bus;
>>> +            uint16_t seg;
>>> +        };
>>> +        pci_sbdf_t sbdf;
>>> +    };
>>> +    struct domain *domain;
>>> +};
>>> +#endif
>> I wonder whether this is strictly needed. Won't it be enough to store
>> the virtual (ie: guest) sbdf inside the existing vpci struct?
>>
>> It would avoid the overhead of the translation you do from pdev ->
>> vdev, and there doesn't seem to be anything relevant stored in
>> vpci_dev apart from the virtual sbdf.
> TL;DR It seems it might be needed from performance POV. If not implemente=
d
> for every MMIO trap we use a global PCI lock, e.g. pcidevs_{lock|unlock}.
> Note: pcidevs' lock is a recursive lock
>=20
> There are 2 sources of access to virtual devices:
> 1. During initialization when we add, assign or de-assign a PCI device
> 2. At run-time when we trap configuration space access and need to
> translate virtual SBDF into physical SBDF
> 3. At least de-assign can run concurrently with MMIO handlers
>=20
> Now let's see which locks are in use while doing that.
>=20
> 1. No struct vpci_dev is used.
> 1.1. We remove the structure and just add pdev->vpci->guest_sbdf as you s=
uggest
> 1.2. To protect virtual devices we use pcidevs_{lock|unlock}
> 1.3. Locking happens on system level
>=20
> 2. struct vpci_dev is used
> 2.1. We have a per-domain lock vdev_lock
> 2.2. Locking happens on per domain level
>=20
> To compare the two:
>=20
> 1. Without vpci_dev
> pros: much simpler code
> pros/cons: global lock is used during MMIO handling, but it is a recursiv=
e lock

Could you point out to me in which way the recursive nature of the lock
is relevant here? Afaict that aspect is of no interest when considering
the performance effects of using a global lock vs one with more narrow
scope.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 08:53:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 08:53:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220597.381917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miC0n-0001Bl-Be; Wed, 03 Nov 2021 08:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220597.381917; Wed, 03 Nov 2021 08:52:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miC0n-0001Be-8G; Wed, 03 Nov 2021 08:52:49 +0000
Received: by outflank-mailman (input) for mailman id 220597;
 Wed, 03 Nov 2021 08:52:48 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4+yV=PW=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1miC0m-0001BW-0M
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 08:52:48 +0000
Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 6a2f6440-3c83-11ec-8563-12813bfff9fa;
 Wed, 03 Nov 2021 08:52:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a2f6440-3c83-11ec-8563-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635929566;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=A+O+h6niJZharIRZkfLZXyHdY4xTolFIATuVo8NtoS4=;
  b=QUIFpaNh4eJvc9rUQgJw72B1gZtwxznYLShpk6H9oeF+VPT0hYZilToc
   8z8t9vFqmgMU3+wEwwM35rlEV4VFqv26nndLg2GJCSKx20DyIRMVLMaI2
   7ccfV4HstkIlinQR9pHtJrdwy3DRQmNNHndJ9gFfktkqCy8LmgL4EMnIp
   Q=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: mvcing9vIb79ISdWVczcQYaKR260m4EHJa+fFhpi75b7IQgc2n637uCW6blQZBoZv0Ocu3C82s
 aOzSqYDgf6fk2IvutkjUbSXwYZlPLmVGFMoDusLGovHqi4eLGkKH+PCNr8pGx9NtkUaCOUeT75
 2lDaa2YCsjzesz/yxaNl3/uQbqOFzoGbhrKRAJ/dTRv0v0w4fZX6mgl+xnaK+2aaUjc0PRmgrw
 tAqNJ8kk7fUIV1zzu2pHrqEpaQUoKwrOw872VQrSpWvN/kyNcTmhM2Rqqlb6Vygr0bpvm5VYUl
 Vey5YfbNq35cOnfLJB+PtPdV
X-SBRS: 5.1
X-MesageID: 56497340
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:87YEsKtT0/LGZxpzAlVP19Wd4+fnVEhYMUV32f8akzHdYApBsoF/q
 tZmKTvXOvnbMGT2e952YIrl9xtU78fczYJkHldrqis9HyND+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YPhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Nplkri+a1kiYI7woPlNUTpFMnBUBKQY5+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY254STKmFO
 5JxhTxHNleZQEZGC2YsWYMSpvq1pCHAcWFTtwfAzUYwyzeKl1EguFT3C/LrfdiNSdRQj1yvj
 GvM9GTkATkXLNWajzGC9xqEoevCnjjyXo4II4Gp7f5hgFCVxWs7BQUfUB2wpvzRomekR99aH
 GkF9SMvoLYa+VSiS5/2WBjQiGSNvgMYHcFRFeI6wAiXz+zf5APxLmIJVCJbYdoq8so/XyU31
 0ShlsnsQzdotdW9S3iQ67OVpjOaIjUOICkJYipsZSwB7tr4qYc/lCXmSNp5DbW1hd34HzL36
 z2SpS14jLIW5eYb2qP+8V3ZjjaEopnSUhVz9gjRRnii7A5yeMiifYPAwUPA8f9KIYKdT1+Al
 HsJgc6T6KYJF57lvC6QROQAGpm56vDDNyfT6WODBLF4qW7roST6O9kNvncufy+FL/roZxfOR
 EHx5wgPx6NrISuoTrJWMqiIApo1mP2I+cveatjYad9HY55UfQCB/T1zaUP4410BgHTAgolkZ
 87FLJ/E4WIyTP0+kWHoH7t1PaoDn3hmnQvuqYbHIwNLOFZ0TFqcUv87PVSHdYjVB4vU8VyOo
 76z2yZnoiizsdESgAGLrub/znhQdBDX4KwaTeQNKIZvxSI8SQkc5wf5m+9JRmCct/09eh301
 n+8QFRE71H0mGfKLw6HAlg6NuiyDckv8yphYXxzVbpN55TFSdzxhEv4X8BvFYTLCcQ5laIkJ
 xX7U5zYahiwdtg302tENsSsxGCTXB+qmRiPL0KYjMsXJPZdq/jy0oa8JGPHrXBWZgLu7JdWi
 +Dwh2vzHMtYLyw/XZm+VR5a5w7o1ZTrsLkpBBWgzxg6UBiEzbWG3ASq0qRse5FQck6ertZYv
 i7PaSolSSD2i9Zd2PHChLyerpfvFO17H0FAGHLc46rwPi7flldPC6cZOApRVTyCBm7y5ou4Y
 uBZk6P1PPEdxQ4YuItgCbd7i6k54oK39bNdyw1lGlTNbkiqVew8ciXXg5EXu/0f3KJdtCu3R
 lmLpotQN4KWNZ63C1UWPgckMLiOjKlGhjnI4P0pC0zm/ysrrqGfWEBfMkDU2ixQJbd4Kq0/x
 uIltJJE4gCzkENyYN2HkjpV5yKHKXlZC/crsZQTAYnKjAs3yw4dPcyAW3GuuJzWModCKEgnJ
 DOQlZHuvbUEyxqQaWc3GFjMwfFZ2cYEtidVwQJQPF+OgNfE2KM6hUUD7TQtQw1J5RxbyOYva
 HNzPkh4KKjSrTdlgM9PAzKlFw1bXUDL/0Xwzx0ClXHDTlnuXWvIdTVvNeGI9UEf0mRdYjkEo
 +3IlDe7CW7nLJPrwy8/eU95sPiyH9V++zrLlN2jA8nYTYIxZiDog/P2aGcFw/c97RjdWKETS
 TFWwdtN
IronPort-HdrOrdr: A9a23:u4lv86m9B0kGRyybm8UImvzkcf7pDfIo3DAbv31ZSRFFG/Fw8P
 re+8jztCWE7Ar5PUtKpTnuAsW9qB/nmqKdgrNwAV7BZmfbUQKTRekJgLcKqAeAJwTOssJbyK
 d8Y+xfJbTLfD1HZB/BkWqF+gAbsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,205,1631592000"; 
   d="scan'208";a="56497340"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=k2L32d1u2bFB7Nn2wjUyih5UqOfhN+ccuJyqZrqNvC+B23RKrgnKhd9EYRswsAifXIt8Xc/24wIF6htHKMQzxtP8oJeO2UfBycXoQ2UQwTaDX2ps+C0Op9qVjG1RUalRipupfBx1bt0K/QMuS7Cwprv/ITIzBnaVXME9nGgxVjVOC75Zcw+8jlAiBL8GK0fQKv6LVjvJP0jMf8owV42TpnxQfHlZhwkPgJ/qoaNoO62AgS8U4eKnJMzIeBnQw0QWX4PmBHxOOwBvlhMUxVusDuzsyKXack3Fgnjknj5d1uMKM9CeUZywEmyTUyNYgQYC4RyErScDAhKfBH79Va5d2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8x6O0c1k5jidd0A8KSdXOJIhCxTFdvEp4ZSD+3KyEwo=;
 b=TTGNef4Jn71HaT0dxwaROluXRZZ1Xcq2CaoBotBDzjyVpMqQSaDLkvaNPm33sLzuOiU4OU//a8ywm2YKGDxn9172feo7cAtmBHmoe2WRL9JMBJ0yflCGSDp/lxh0/H5QdVtymyfURvLTA2BisTd2ilSXkzCNG+gTK/8cEqssmxCinBxJox7Q0Wxz76eJPJupsDJClPeW7sd6wXs8WLN0WLEUMTtQCJCyWSKJG/4u/l8EdVJyCTLy9WNMfDtl+1kMeQlckiaMcHSxapX9RaNelY3p1As3wzCybEb2ZWO4bCakKDFyasT7oKjOYKfuG7l9XYIO7qxnsMAj7XMGis+TsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8x6O0c1k5jidd0A8KSdXOJIhCxTFdvEp4ZSD+3KyEwo=;
 b=UesFOT+39Tb2i0oja9+KRyY0/qyU70xMn43oZ5MxjeeSN0o63vRYzNzBwmGnpr3wW8AO7pVp62Tv7//cu7zlRrTtOBH7GtPmBbraXuYWBgyYAW0KjVsF4crrv5FjaY6Wg4MnIbgbuWmYaE11jHcT4Bpp3I/gbZbls1wzzERxsOA=
Date: Wed, 3 Nov 2021 09:52:35 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "jbeulich@suse.com" <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "julien@xen.org" <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>
Subject: Re: [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus
 topology
Message-ID: <YYJN028YTy92TLca@Air-de-Roger>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-11-andr2000@gmail.com>
 <YXfng3PqDI6C4yxn@MacBook-Air-de-Roger.local>
 <52b1533d-4aeb-29be-2611-9b50adea3f73@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <52b1533d-4aeb-29be-2611-9b50adea3f73@epam.com>
X-ClientProxiedBy: FR3P281CA0010.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:1d::9) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b3d4c09c-72bc-4a1b-2e92-08d99ea74b83
X-MS-TrafficTypeDiagnostic: DM6PR03MB3833:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3833BF70CF6E113F3C1D65648F8C9@DM6PR03MB3833.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: EXzFRi0FEDVtxcZHT6vDsnuVcBC/DcfI1r0Ez6btFO4Q9YXTaLWQPqx7KRwDl7VIeySiVQv9OFhT4n/y7pxOoph/dHWM8tRCKIbB/DvRVFIs+PfuaHeKvCYBDC6uv2jFhXDhy5JQ/S8TRFD+/kUFOq6GRBB/XAhQpXQGSA2BkDqdWcJfF05n7Rn4FxrEvGH+UaoJ3v2U6DTqNTAcEu06iYeJmJwsoRg6SWgJrkEGI/K/Q9jDhF11FXNmLJ6cZMQD4dbdN+YOCYCPM2mo3lZ0Jc1avTQgPsXHOmuOZx/B94SZuxx8xCLMBvgWHwR7cYMkNbM4wp+iFtpl0dAFqvcJnziOF3S7fXWIDgLMR8ix0XFhzSDgW0b6o39BEhhtUmA/RvIzGtFdmpF11RVRKwwcJWaCgy9BIEO5ytcZohAuKJyGZ7Pb7K66rWp3aj5N2IH/7Xs5mnJ/dd7lMy/UaUpZDbuJd7pK4fks/EhKCW2iq+4Y3XF5B3z/2uz20Xz4bRsoODP0qwGgFLjnY3H4ihYk+avx9P+dUgzPg0PKh0bLbAWmHYbikk6fNZ4c3VpHj1rESE+f66pTOgL78LWvDke3u7zEo8F69yU/7/y613unaX0/boacQ9Q23vPnSyh44lrfR8eGs/OPeIC8wCUEOL+4iw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(6496006)(85182001)(6486002)(6666004)(83380400001)(82960400001)(53546011)(8676002)(956004)(66946007)(66476007)(8936002)(5660300002)(316002)(7416002)(54906003)(6916009)(26005)(4326008)(2906002)(38100700002)(508600001)(33716001)(186003)(9686003)(66556008)(86362001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MEZud0Y3VWFxZStIdTNlTTFtdStDTWdVYWoyaTYreW5NWEV2NWFmSXgyMm1t?=
 =?utf-8?B?TVM4YVRiMjRwdGs5THJlc2pXRlhUc1Q3N0F4Z1dYZnFsbGxlaTBJQjcvaTIx?=
 =?utf-8?B?c0F3VHdCYy9TaU1QRVFRc2w2KzJXSDVHL2JzWG1IRHBONm4xVy9DZXM2M0dG?=
 =?utf-8?B?TmF5Q0d1V2pVakl1S3QvS2FsNmN1RW16OXd4WTdFTURjYjkySlVkS0ZDd3k0?=
 =?utf-8?B?MjFKcHNmSGJ3VkgvanpjWlFFZkc1eDJ5VHVTMXRBVEZFdjRicFdzY3NTTVYx?=
 =?utf-8?B?d2lMd3JLRDBDTXZZajBNcXpQWEk4eTBwNGFWSkUxM003U2hEVDBFL3U2dGUv?=
 =?utf-8?B?WWVob0tQRFNudlhUU1N4NVZ2YkkzTnFSSUhMbVVBczlSRVQ2eFdoVm1YUWFR?=
 =?utf-8?B?SklQVXgyR0tZY1UwYXFTWWk1dnJ3Mk1ITU9RSlVtTjZ6NkIvQ1dDSEM2U3Fi?=
 =?utf-8?B?VFVVRVVMcHRWYUVnNDhvd0trQ2YrTGdWYjZsRGZDb0pFamYvOU9hc0xOYm13?=
 =?utf-8?B?eDZ0b2tLa09EZUdPR1ZuM1dKRUJiaEtseGlvalk4TkxHKzkwaStIOGwzVnFM?=
 =?utf-8?B?SzZsMTVSWXByN05qYnNqTmNwZFp6a3pKWTBVaWVlbFlabXF0ZDdyTnczdCtR?=
 =?utf-8?B?emtvekNreTBmUUg4aU9la2pwYnVSWFJib2p6T2o3NldaNE1yOWRnS2hESXpT?=
 =?utf-8?B?SVROM2tORzN6ZW82YjFYcVV0OUY1YW4vK0MrUEtxbkRWSDFHb0VFSmZOdGJl?=
 =?utf-8?B?ZVBlQktCb1ZXQmdJblVhN3NDUStxeVYzd1BGVHZKV2E2dklDcVdwWnUwbUhz?=
 =?utf-8?B?NjFDYkk1KzRmdGJXQXJ0YmJzVEVTME9QdXhuUGx2SlhvMnducHFFMWREU1Ry?=
 =?utf-8?B?YmYvWHJad0NsOUxTVDBvOVYvSzRlVUVrZWZ0UGhPMFV0a1lyT1ZBRzQzemd6?=
 =?utf-8?B?T09MeFpGU01WOGhCRjBDT0dVb0hYVTlPTld5L2ZNRHRtSm1vZm1YY29ZczRF?=
 =?utf-8?B?UWllY3pDS3pZU0hXNnp1OGtYbTZaUm8zMXpuSDh5NWtBOXZXTlFNVGNlNStG?=
 =?utf-8?B?VytvdlhHdHc2d0F3cXRsU1l2VlJxclJuVFNjZG1HYUYrSmtTRmhSeHdCZVhE?=
 =?utf-8?B?UE9kY1d5UTJybFlJd2wrMndSWUU5YnR3MmEreEF6Rit0Vld3WTFBRWNzTjR6?=
 =?utf-8?B?SHhHSk9MenRoZ20xUVIvRXV6ZHRCakJZVnJKQ2daUEVJTDhXVWVlVUhyY3Rj?=
 =?utf-8?B?VEZsZjNKYzFYQSsrakFtZlBxalpGWk1MalJRa0kvdDl0alB5YUM3VEVBTkhF?=
 =?utf-8?B?eE1DWEJvSnpuaG12aTBmaTJuRXZBRXgzamo0TUpyaEttMm56dm14ajRtaG83?=
 =?utf-8?B?Nm5kODBxbk9ZMjVtaFV0TExBekhTemduZlF6anVHUEdXaWhPNFI4eTFCb1VB?=
 =?utf-8?B?UnNwMnhjNEhXQXlpeW40MWd3RjBBUXU2OFRqeEdzcWl3UklES0dIVUduVm03?=
 =?utf-8?B?RGRqSmJMb0ZYandMRzZncE9RMEtyalNrQmhmOGR2c08zL3F0c1hXaEpwUmlE?=
 =?utf-8?B?bzNqSy9BSGhMRW9qdXplL1VQUzY4TGdqODR1TzJqdHV0RGZ0cWlidGozVHFx?=
 =?utf-8?B?YXU2UStmSFFhdERwdEFsQ0RpMmhDOWdTUkhLbUgrTzZkc2FWUS9xNHZsY2RL?=
 =?utf-8?B?NkkybzgvRmZ3ZUZNMUdGZ0NNalZBeXFxd0NwWGlnSlpCcFZuK0hhdXc5cmRn?=
 =?utf-8?B?ZkRLUlUxaGJ4RkluNXdhUHRTN3dPbUFoRE56MWRZRis1OWl2KzhIU2haTVkx?=
 =?utf-8?B?bjlpT3RVTEVabHltM0Vncm9TY3VHcGxJais5Skl4RElvZ3BDdUdhcTA0Y0ty?=
 =?utf-8?B?QzhuamhnamlwbS95RGhaT1N3ejY5QlJDdmZoeWFCczZ3N0pCMHAwKy8wRUJN?=
 =?utf-8?B?MEdyZDA3MU9QYlVyVWo1My9xbmZSdERxTldEMkZaM2N2N0tGeTUxUnBvQUhK?=
 =?utf-8?B?UmxYYkgwVHFIUFQ3VnZZWkd6Z0hZNlRkVzFWZ3ZHTHhzTU1rTjdQL2o4M3NH?=
 =?utf-8?B?Q2FaSHQ5V0VtQ3NFOHQ0WlZLU3Q5SXJNRnNVbmlJK1JMVFJkQk5qTlROWGdM?=
 =?utf-8?B?YjQrNjNqOWU5TWhKTjZLZ2xaSmx1Yzk5N3ZIdzg4TkZnb1h6dmR5RmlmUjdL?=
 =?utf-8?Q?feABroqjzY1nLgU/2IBtTfc=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: b3d4c09c-72bc-4a1b-2e92-08d99ea74b83
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 08:52:41.5501
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +NavfDFchBFlXgmP1aabIWJnuRfrrXTX5ENHvn33VCJSDiyJzbOJUxcnjQfLBwHRQsKl21bsPmJ31N5dGnlW4Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3833
X-OriginatorOrg: citrix.com

On Wed, Nov 03, 2021 at 06:34:16AM +0000, Oleksandr Andrushchenko wrote:
> Hi, Roger
> 
> On 26.10.21 14:33, Roger Pau Monné wrote:
> > On Thu, Sep 30, 2021 at 10:52:22AM +0300, Oleksandr Andrushchenko wrote:
> >> diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
> >> index 43b8a0817076..33033a3a8f8d 100644
> >> --- a/xen/include/xen/pci.h
> >> +++ b/xen/include/xen/pci.h
> >> @@ -137,6 +137,24 @@ struct pci_dev {
> >>       struct vpci *vpci;
> >>   };
> >>   
> >> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> >> +struct vpci_dev {
> >> +    struct list_head list;
> >> +    /* Physical PCI device this virtual device is connected to. */
> >> +    const struct pci_dev *pdev;
> >> +    /* Virtual SBDF of the device. */
> >> +    union {
> >> +        struct {
> >> +            uint8_t devfn;
> >> +            uint8_t bus;
> >> +            uint16_t seg;
> >> +        };
> >> +        pci_sbdf_t sbdf;
> >> +    };
> >> +    struct domain *domain;
> >> +};
> >> +#endif
> > I wonder whether this is strictly needed. Won't it be enough to store
> > the virtual (ie: guest) sbdf inside the existing vpci struct?
> >
> > It would avoid the overhead of the translation you do from pdev ->
> > vdev, and there doesn't seem to be anything relevant stored in
> > vpci_dev apart from the virtual sbdf.
> TL;DR It seems it might be needed from performance POV. If not implemented
> for every MMIO trap we use a global PCI lock, e.g. pcidevs_{lock|unlock}.
> Note: pcidevs' lock is a recursive lock
> 
> There are 2 sources of access to virtual devices:
> 1. During initialization when we add, assign or de-assign a PCI device
> 2. At run-time when we trap configuration space access and need to
> translate virtual SBDF into physical SBDF
> 3. At least de-assign can run concurrently with MMIO handlers
> 
> Now let's see which locks are in use while doing that.
> 
> 1. No struct vpci_dev is used.
> 1.1. We remove the structure and just add pdev->vpci->guest_sbdf as you suggest
> 1.2. To protect virtual devices we use pcidevs_{lock|unlock}
> 1.3. Locking happens on system level
> 
> 2. struct vpci_dev is used
> 2.1. We have a per-domain lock vdev_lock
> 2.2. Locking happens on per domain level
> 
> To compare the two:
> 
> 1. Without vpci_dev
> pros: much simpler code
> pros/cons: global lock is used during MMIO handling, but it is a recursive lock
> 
> 2. With vpc_dev
> pros: per-domain locking
> cons: more code
> 
> I have implemented the two methods and we need to decide
> which route we go.

We could always see about converting the pcidevs lock into a rw one if
it turns out there's too much contention. PCI config space accesses
shouldn't be that common or performance critical, so having some
contention might not be noticeable.

TBH I would start with the simpler solution (add guest_sbdf and use
pci lock) and move to something more complex once issues are
identified.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 08:53:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 08:53:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220602.381928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miC1K-0001hR-Kv; Wed, 03 Nov 2021 08:53:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220602.381928; Wed, 03 Nov 2021 08:53:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miC1K-0001hK-HN; Wed, 03 Nov 2021 08:53:22 +0000
Received: by outflank-mailman (input) for mailman id 220602;
 Wed, 03 Nov 2021 08:53:20 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miC1I-0001dg-HL
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 08:53:20 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c4e5246f-c850-4869-bc9d-876897a5ddab;
 Wed, 03 Nov 2021 08:53:18 +0000 (UTC)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A38OFhl015763;
 Wed, 3 Nov 2021 08:53:13 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2052.outbound.protection.outlook.com [104.47.14.52])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c3pvng3r7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 08:53:13 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5009.eurprd03.prod.outlook.com (2603:10a6:208:105::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Wed, 3 Nov
 2021 08:53:09 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 08:53:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4e5246f-c850-4869-bc9d-876897a5ddab
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=R8BtcCKxIa1+JrSyIrkf5hRFHN9nDnGAzttBWFxxyKjR4FavDVomQlKMTTa4RlkrnrchtJ9mAivbONC3BoHHCoPHBmjAoxZKY21uPX1zVoJQSTm9WHLZvhivkEVDB3wTdVBMKhfq1a2mXQDgjcGxBhfl44ve96TuUfHzQJFQMciSOy5rPXdMgBb+gk5It74yO/v1/amUioqbaTwAKkRYAK6ABdzzs/B9rIKiL9Q/+NTG+8LGz/+sXjjp9DFbUdatGRLS4GWURsOjJMsA6HOlH3iiXwvhcMD5B2mMx6aFc1xydap0YQz9c+G7Lnhp7NdKq8RhB2ZqKFAN2zdO6XfwlA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IameMQX5L534u5+avmudWuKmAnRLCeAdN1ULoBDBTgs=;
 b=nRKw8WJSS0JWh1rRAN05WvqlvCjW+q4WeQvzF4tDRazjcgYzxY2jth8aFPofnlzbeETPt4PYXsx6C17tTGLa4owcYrTFr9V/bBcIN/afx/FAjB7GMunlEQa3RQ7b3oGVX09O720p7C+Vn1JdjZizDxOYDBIAXshwyryQPBLtI0u2/lE223w5Cm6MJyz0k4saoNYEQzAYZc55u75sbjZwEO8QH7NZLcflUIjNAVuqin4N2uZsSyQReV8tI4PBSd9BxpgCRBSOyuvThhsdkYSwyazN1NOmjvb6lS7R4n0DKeR1RuKwyoYNjIEsLEQTDS+a4It15Zklu8FfBA06GGEnbQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IameMQX5L534u5+avmudWuKmAnRLCeAdN1ULoBDBTgs=;
 b=ckNCQbpd1dho8ETpWPHI1n3A32Xi4vu3+oHMKWC0eskZMTawht9Cjgo4lBTZAYmwu9yXVxzhALBBzg4EZ3ZTXZvX0OeLmj43sLwVeR9TthjidSDETF5Bv+Jl3egDzU9nEtXLRiTh9uLRKcse/vSgZxZa3Bk2w+Dka9Gm25BgiIBcLiq00+GkKhePHEmJojWHeJT7rt6n91J7fxx3eLzGGesNZFaVIiMPjDe9EtfkQI/qxKnVw54L5b8n6pG44tlANIdgE4JfyYsJ4hHzgxpxJZYvSaZpuUDYefl5CYKTMitbe5iVsxILpVIrEykHVRgCrwyAr6g/+5hZYgxc9mwfZw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Michal Orzel <michal.orzel@arm.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: 
 AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUICAATmxAA==
Date: Wed, 3 Nov 2021 08:53:08 +0000
Message-ID: <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
In-Reply-To: <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3826fde5-4ba2-46ff-c66d-08d99ea75c0c
x-ms-traffictypediagnostic: AM0PR03MB5009:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5009749960DE96F51809C36EE78C9@AM0PR03MB5009.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 +/85bb1tq+H6TRdp1VlTfRNa3RsEJBT6X0VxPPMAk4h/da77hZ7q8IHs2q21R5biq7KRv9RTnHdv2A/dVVnsiYnF/ulgXMNGsAzUm+hZsEn7hyx2TdU2h393x6kUT9YlwtCKryxMRGxYDo+mhEthP+Q1eqe1TuciTw/ObU/C1GgTmyswwTyG2cnD2IWpfWLl8rYr3LRVarOlb5pK2v5wJPmRovYVoCxDC5ATDFkG7jjmTBI9cIv2S3aDMLfPCgHObRuKim2Kfv9eyOQiB0MQHj89MyDmpshagg1y5TNPThc0qkdJFehVWkVyU54JeTMaQDStdcyNNXzZ2HOmO8M21/rWQgdUL79ONtPyy/Nz6F9fTaNZyPxVqVhCBgoQZyhcqJh6vxqTHCJ9R4ooWaTUzOZmhMdX6WomoLmxfkE4DaqB16oGFFr48eZYM0zLfieL0/v7PKZYV+xczk9BZMhn14LmXCbqYpXrwF0SLDal7nJbTi8rZ0hdAwEoW2sS+7/LevfCIUealsnvWPiAXlp+V4VtP6XMFxlvHZNz+438W7bpMdDj4o9hbhLF1tUPs5RpHvQQOCFc3zHkOdgzocSPPoYAsPg7YRZWRoYQr3/Omy1X370vELdKnUeiRLo6o4sk38+vSgytPEaaRizxJ4kZCaUhHRoxK734N+ipAPxlas1PkLJOoVUCKCLKD+MmxfJpXreHOcK7AJvTvWHgXqEFR/hcVswr5SDSfyhQo3lJU7NuQUwwJd62n7KEcLqyOfpcl1J8v6BO6i0pLQQ0U1Lo56nliEr86RNSfDzj5NBSOhfUiMmb+odZUVUjaRgT7hofLgwNN9bKgJIEy7Zko+FxfQ==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(316002)(2906002)(110136005)(38070700005)(54906003)(8676002)(71200400001)(8936002)(31696002)(2616005)(5660300002)(86362001)(36756003)(966005)(38100700002)(31686004)(122000001)(26005)(66446008)(66946007)(83380400001)(6512007)(53546011)(64756008)(186003)(76116006)(91956017)(6506007)(66556008)(66476007)(6486002)(508600001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?UFVBVWMzWVEzQ25ROUlKaTdUaXVGd1FxS1BCbDhveXk3SWUwTlpaWWorSloz?=
 =?utf-8?B?NlRqakt3V2pkVFB6T1h6UDJJKzdqbks0ZG5YTFdhcHBRZ1NWYVozR2greUcr?=
 =?utf-8?B?ODZiNXFESjBXR2lYU09wem1KakFBVkJaU0hmOEtQQjVGVFBTVDhPcWw4eVVH?=
 =?utf-8?B?Mk5QWnJ3SnpUeUdSM3RmQWU1MitJUURvaTVwSmpHN1Y3RDdZNEEybEU5bWIz?=
 =?utf-8?B?OFdFTm9FajVXMzUzNmVucFRHenNoQVF5QTFaV2w0UFFPdlZ4YTR2KzN2ZmRJ?=
 =?utf-8?B?ZkhnT0lJOHpmTTJZUjk0a05jZ1NjUFpjRi9VL0VDQXprRUExUGhocmlNMGdt?=
 =?utf-8?B?Z0tnWXVOdWcwTExMV1VQSnQrSUZQajdCZUVDN2xNaVFnUDlLbk1DTVpBUTEy?=
 =?utf-8?B?Ulozc3laaVdMTURpUWlqN1oydjBUeHJMMm9haUlZSDUrUEwwT01JVTJhN3dm?=
 =?utf-8?B?MDRsa2tJVkdidEUwWWp1bzl4U1VoSWg4TE5wa0t1K0R3U0o3eFF2UlpSRm9P?=
 =?utf-8?B?YUZhRkhOTnNxSDNOMll5YXNLa2xWYXlsaXNSU1FKQytUK3FKRmJzc1RvY3pP?=
 =?utf-8?B?dDFKdDJ1R1FWeS93UC84WU9IZzF4OWVQTzg5Z01IY2V3WGJmTUp4L1RBMURh?=
 =?utf-8?B?d3RWckE0UzBKeHlzM1pQd0VlL1QzRWZmMHYzUlVmcjJIOVhLWUFhSmRaL3cr?=
 =?utf-8?B?UzF5NHZ1ZS9LU0dPOHJLeEd0ZU8yVFpiZVhWYm94UjhYN1ZxNHVIdm5yK0do?=
 =?utf-8?B?cFBqcCttVWR3YW40RVg1VElDWEl3NFJ4Z252Nk8yT0tQcXBKaHVRL0JOYkIw?=
 =?utf-8?B?enlwRVQ5VkRZRnA2U0V6UWxQTnVPNzZ5aVE2NHhDeFg0Y0t5anlQS0NwT1Nq?=
 =?utf-8?B?NEoySWVqT0VaSDN6NXBiUXBhUjN2Y2orNURlcmt6bnBPM0pSWGpTNTdhRHpk?=
 =?utf-8?B?dkFMeTR0VG4xdVc3cXF1Sk5QemZST3crZytQUFdQQlh0MEg0RngvYlFCNG8v?=
 =?utf-8?B?UzM0YjQ5RXJuMjZTMStpa0lBVzA0WXJSVlBsN3FYdFVBSFJ5anhnNi8xQUx2?=
 =?utf-8?B?U2xVcmhLWngveVpLd2h4dlV3eVY2dkdtS25EajdxUzRja1llLzV2S1Rnb2ta?=
 =?utf-8?B?SDBvc3VWK0lVa09zTDFoUFpFcmNxUFI2NklSWVp6YnAyd0ExQjlRaXpPWXNE?=
 =?utf-8?B?aUo2WmFtdVNRL013ZnhzNzUrczgrWGI1bEw2SXplOUoxbldDckhGc3dSVits?=
 =?utf-8?B?clViWno1RHI4Q2hFNzk5bzNVUXJ5K0JiZFNhdk14M3lORGE0eVk2VjRTSzln?=
 =?utf-8?B?VXZhakxJUVdhdTFuVzFicGZIaEorQWZ3aEcvSjEvblNpN1NkWkU4dFhGUVU3?=
 =?utf-8?B?Rk9NUXdnWG9hNnhlYndiS2prWHU2dkNaQ0VldlpHb0wxSzQ0YUNYcldwaENF?=
 =?utf-8?B?YUJ5N1dUNDhGUHBZWVExbmJMM1YzL1ZKejVvZ25uemlxRUxDemliWHRBeEJw?=
 =?utf-8?B?R0doY2hJTU5DaThibkNHSHUxWVVSeXFGTWFQbjE2UHNmeHo0YVZscmdPTFZE?=
 =?utf-8?B?K2VtSUE1Z2hhREFYRUQwNUp5eERUZ3dzcGhQUVRIbEJWY2wxVjEydTFISEY0?=
 =?utf-8?B?ei9ESjA5SThwM3JZdmIyMjNqODgvbmtYYmtMYXhOK0VOSmt3QllsS3RUNmxy?=
 =?utf-8?B?akVnL1FDMGpiQlphQ2N2QTlTcGIxUHczb3J6RkVBYnM4WTAxWmhQdEFGNmVs?=
 =?utf-8?B?b2R1UWIwTjlFQ3FpZFBWL2JhOTlXMVlXTTM0REtwM2ptRXcycTRTUWpnT3RE?=
 =?utf-8?B?eXNaNUduc050Y2NzNFVLV1A1V3NnRm1XSTNLUGFqdzkvU1hIUVJKRmV0cVds?=
 =?utf-8?B?azkyZnNQejY5OVAyVkR3VXRiZkpTZEZFWnBiOVJBbU15bkxQUGpMNGpScDQ0?=
 =?utf-8?B?VUQ1QW5MazBUbGk5WnRuWTdtNHR1K05VODRhUXl1cUpKS0g3VXFxZnQ3N0ZI?=
 =?utf-8?B?SE9lRUNnVTNFY01tL2dRNFN3ODczU2luMi9veGtraThaejl2VWJEWnZTRGpB?=
 =?utf-8?B?aXd5SGhHWE9JaUNPekUwYmpzK0tJdUNWTmV2d29ZdnBKVkRlMVZ6WXBkZEZ1?=
 =?utf-8?B?eFU1b1VCc3ArKzk2VTlKRGk2MUxTR3pITDh1Z2VMWVZMV01WSFg0RUNEbElI?=
 =?utf-8?B?LzhaZmlTTTZodWZBOXVDeUpzQnR4RVpncWhXRkJ4bHIvalU1NnlrRG4zVk5K?=
 =?utf-8?B?b1BtanZBaVRqNUZ6QWNIcG9UNDFmbEdZWnp4QUpRWUdhdkVzK00yUkx3d3Ew?=
 =?utf-8?B?NXBoNEkyaXlWWnJqelFiRnA0S3NrdUJmSmZJRkRSSCtvN2hEVDI1dz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0E41F27B54427345B39ED175ABD698DF@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3826fde5-4ba2-46ff-c66d-08d99ea75c0c
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 08:53:08.8633
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: z9Z4B1RdC59vQAz0GqMFoVYdY/2MGxQtqpxAB8cdMFNVe5aDQOAlSagMVuZmeOsCrx/wB41sujHDDgQF6nmJ7kg4GHGzqXiU/DSvp7ggVXb0S8Ad0JwuDBm2qQiYTcqp
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5009
X-Proofpoint-GUID: CtAejCP71LfRspEyC1gNxzRwBRTg0LcQ
X-Proofpoint-ORIG-GUID: CtAejCP71LfRspEyC1gNxzRwBRTg0LcQ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_02,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015
 bulkscore=0 mlxlogscore=646 priorityscore=1501 spamscore=0 malwarescore=0
 mlxscore=0 adultscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111030052

DQoNCk9uIDAyLjExLjIxIDE2OjEwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4N
Cj4gT24gMDIuMTEuMjEgMTU6NTQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMDIuMTEuMjAy
MSAxMjo1MCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBUdWUsIE5vdiAwMiwgMjAy
MSBhdCAxMjoxOToxM1BNICswMTAwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4gT24gMjYuMTAu
MjAyMSAxMjo1MiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+IE9uIFRodSwgU2VwIDMw
LCAyMDIxIGF0IDEwOjUyOjIwQU0gKzAzMDAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3Rl
Og0KPj4+Pj4+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+Pj4+PiArKysgYi94
ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+Pj4+Pj4gQEAgLTQ1MSw2ICs0NTEsMzIgQEAgc3Rh
dGljIHZvaWQgY21kX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBp
bnQgcmVnLA0KPj4+Pj4+ICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUxNihwZGV2LT5zYmRmLCBy
ZWcsIGNtZCk7DQo+Pj4+Pj4gICAgfQ0KPj4+Pj4+ICAgIA0KPj4+Pj4+ICtzdGF0aWMgdm9pZCBn
dWVzdF9jbWRfd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBy
ZWcsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjbWQsIHZv
aWQgKmRhdGEpDQo+Pj4+Pj4gK3sNCj4+Pj4+PiArICAgIC8qIFRPRE86IEFkZCBwcm9wZXIgZW11
bGF0aW9uIGZvciBhbGwgYml0cyBvZiB0aGUgY29tbWFuZCByZWdpc3Rlci4gKi8NCj4+Pj4+PiAr
DQo+Pj4+Pj4gKyAgICBpZiAoIChjbWQgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUpID09IDAg
KQ0KPj4+Pj4+ICsgICAgew0KPj4+Pj4+ICsgICAgICAgIC8qDQo+Pj4+Pj4gKyAgICAgICAgICog
R3Vlc3Qgd2FudHMgdG8gZW5hYmxlIElOVHguIEl0IGNhbid0IGJlIGVuYWJsZWQgaWY6DQo+Pj4+
Pj4gKyAgICAgICAgICogIC0gaG9zdCBoYXMgSU5UeCBkaXNhYmxlZA0KPj4+Pj4+ICsgICAgICAg
ICAqICAtIE1TSS9NU0ktWCBlbmFibGVkDQo+Pj4+Pj4gKyAgICAgICAgICovDQo+Pj4+Pj4gKyAg
ICAgICAgaWYgKCBwZGV2LT52cGNpLT5tc2ktPmVuYWJsZWQgKQ0KPj4+Pj4+ICsgICAgICAgICAg
ICBjbWQgfD0gUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFOw0KPj4+Pj4+ICsgICAgICAgIGVsc2UN
Cj4+Pj4+PiArICAgICAgICB7DQo+Pj4+Pj4gKyAgICAgICAgICAgIHVpbnQxNl90IGN1cnJlbnRf
Y21kID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIHJlZyk7DQo+Pj4+Pj4gKw0KPj4+Pj4+
ICsgICAgICAgICAgICBpZiAoIGN1cnJlbnRfY21kICYgUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxF
ICkNCj4+Pj4+PiArICAgICAgICAgICAgICAgIGNtZCB8PSBQQ0lfQ09NTUFORF9JTlRYX0RJU0FC
TEU7DQo+Pj4+Pj4gKyAgICAgICAgfQ0KPj4+Pj4gVGhpcyBsYXN0IHBhcnQgc2hvdWxkIGJlIEFy
bSBzcGVjaWZpYy4gT24gb3RoZXIgYXJjaGl0ZWN0dXJlcyB3ZQ0KPj4+Pj4gbGlrZWx5IHdhbnQg
dGhlIGd1ZXN0IHRvIG1vZGlmeSBJTlR4IGRpc2FibGUgaW4gb3JkZXIgdG8gc2VsZWN0IHRoZQ0K
Pj4+Pj4gaW50ZXJydXB0IGRlbGl2ZXJ5IG1vZGUgZm9yIHRoZSBkZXZpY2UuDQo+Pj4+IFdlIGNh
bm5vdCBhbGxvdyBhIGd1ZXN0IHRvIGNsZWFyIHRoZSBiaXQgd2hlbiBpdCBoYXMgTVNJIC8gTVNJ
LVgNCj4+Pj4gZW5hYmxlZCAtIG9ubHkgb25lIG9mIHRoZSB0aHJlZSBpcyBzdXBwb3NlZCB0byBi
ZSBhY3RpdmUgYXQgYSB0aW1lLg0KPj4+PiAoSU9XIHNpbWlsYXJseSB3ZSBjYW5ub3QgYWxsb3cg
YSBndWVzdCB0byBlbmFibGUgTVNJIC8gTVNJLVggd2hlbg0KPj4+PiB0aGUgYml0IGlzIGNsZWFy
LikNCj4+PiBTdXJlLCBidXQgdGhpcyBjb2RlIGlzIG1ha2luZyB0aGUgYml0IHN0aWNreSwgYnkg
bm90IGFsbG93aW5nDQo+Pj4gSU5UWF9ESVNBQkxFIHRvIGJlIGNsZWFyZWQgb25jZSBzZXQuIFdl
IGRvIG5vdCB3YW50IHRoYXQgYmVoYXZpb3Igb24NCj4+PiB4ODYsIGFzIGEgZ3Vlc3QgY2FuIGRl
Y2lkZSB0byB1c2UgTVNJIG9yIElOVHguIFRoZSBlbHNlIGJyYW5jaCBuZWVkcw0KPj4+IHRvIGJl
IEFybSBvbmx5Lg0KPj4gSXNuJ3QgdGhlICJlbHNlIiBwYXJ0IHF1ZXN0aW9uYWJsZSBldmVuIG9u
IEFybT8NCj4gSXQgaXMuIE9uY2UgZml4ZWQgSSBjYW4ndCBzZWUgYW55dGhpbmcgQXJtIHNwZWNp
ZmljIGhlcmUNCldlbGwsIEkgaGF2ZSBsb29rZWQgYXQgdGhlIGNvZGUgb25lIG1vcmUgdGltZSBh
bmQgZXZlcnl0aGluZyBzZWVtcyB0bw0KYmUgb2sgd3J0IHRoYXQgc3RpY2t5IGJpdDogd2UgaGF2
ZSAyIGhhbmRsZXJzIHdoaWNoIGFyZSBjbWRfd3JpdGUgYW5kDQpndWVzdF9jbWRfd3JpdGUuIFRo
ZSBmb3JtZXIgaXMgdXNlZCBmb3IgdGhlIGhhcmR3YXJlIGRvbWFpbiBhbmQgaGFzDQoqbm8gcmVz
dHJpY3Rpb25zKiBvbiB3cml0aW5nIFBDSV9DT01NQU5EIHJlZ2lzdGVyIGNvbnRlbnRzIGFuZCB0
aGUgbGF0ZXINCmlzIG9ubHkgdXNlZCBmb3IgZ3Vlc3RzIGFuZCB3aGljaCBkb2VzIGhhdmUgcmVz
dHJpY3Rpb25zIGFwcGxpZWQgaW4NCmVtdWxhdGVfY21kX3JlZyBmdW5jdGlvbi4NCg0KU28sIGZv
ciB0aGUgaGFyZHdhcmUgZG9tYWluLCB0aGVyZSBpcyBubyAic3RpY2t5IiBiaXQgcG9zc2libGUg
YW5kIGZvciB0aGUNCmd1ZXN0IGRvbWFpbnMgaWYgdGhlIHBoeXNpY2FsIGNvbnRlbnRzIG9mIHRo
ZSBQQ0lfQ09NTUFORCByZWdpc3Rlcg0KaGFzIFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRSBiaXQg
c2V0IHRoZW4gdGhlIGd1ZXN0IGlzIGVuZm9yY2VkIHRvDQp1c2UgUENJX0NPTU1BTkRfSU5UWF9E
SVNBQkxFIGJpdCBzZXQuDQoNClNvLCBmcm9tIGhhcmR3YXJlIGRvbWFpbiBQT1YsIHRoaXMgc2hv
dWxkIG5vdCBiZSBhIHByb2JsZW0sIGJ1dCBmcm9tDQpndWVzdHMgdmlldyBpdCBjYW4uIExldCdz
IGltYWdpbmUgdGhhdCB0aGUgaGFyZHdhcmUgZG9tYWluIGNhbiBoYW5kbGUNCmFsbCB0eXBlcyBv
ZiBpbnRlcnJ1cHRzLCBlLmcuIElOVHgsIE1TSSwgTVNJLVguIEluIHRoaXMgY2FzZSB0aGUgaGFy
ZHdhcmUNCmRvbWFpbiBjYW4gZGVjaWRlIHdoYXQgY2FuIGJlIHVzZWQgZm9yIHRoZSBpbnRlcnJ1
cHQgc291cmNlIChhZ2Fpbiwgbm8NCnJlc3RyaWN0aW9uIGhlcmUpIGFuZCBwcm9ncmFtIFBDSV9D
T01NQU5EIGFjY29yZGluZ2x5Lg0KR3Vlc3QgZG9tYWlucyBuZWVkIHRvIGFsaWduIHdpdGggdGhp
cyBjb25maWd1cmF0aW9uLCBlLmcuIGlmIElOVHggd2FzIGRpc2FibGVkDQpieSB0aGUgaGFyZHdh
cmUgZG9tYWluIHRoZW4gSU5UeCBjYW5ub3QgYmUgZW5hYmxlZCBmb3IgZ3Vlc3RzOiB5ZXMsIHRo
aXMgZG9lc24ndA0KY292ZXIgZG9tMGxlc3MgZXRjLiBzbyB3ZSBkbyByZWx5IG9uIHNvbWUgZW50
aXR5IGJlZm9yZSB0aGUgZ3Vlc3QgdG8gc2V0IHRoZQ0KUENJX0NPTU1BTkQgY29ycmVjdGx5Lg0K
VGhpcyBpcyBob3cgaXQgaXMgaW1wbGVtZW50ZWQgaW4gdGhlIHBhdGNoLg0KUGxlYXNlIGFsc28g
c2VlIHRoZSBkaXNjdXNzaW9uIHdlIGhhZCBiZWZvcmUgWzFdLg0KDQpXaGF0IGlzIG5vdCBub3cg
Y292ZXJlZCBpcyB0aGF0IGlmIHRoZXJlIGlzIGEgaGFyZHdhcmUgZG9tYWluIGFuZCB0aGUgc2Ft
ZSBQQ0kNCmRldmljZSBpcyBmaXJzdCBwYXNzZWQgdG8gb25lIG9mIHRoZSBndWVzdHMgYW5kIHRo
ZW4gYXNzaWduZWQgdG8gYW5vdGhlci4gSW4gdGhpcyBjYXNlOg0KDQpod2RvbSAob3IgYW55IG90
aGVyIGVudGl0eSkgcHJvZ3JhbXMgUENJX0NPTU1BTkQNCmFzc2lnbiBkb21VMQ0KZGVhc3NpZ24g
ZG9tVTENCiphc3NpZ24gZG9tSU8qDQphc3NpZ24gZG9tVTINCg0KU28gaW4gdGhpcyBzY2VuYXJp
byB0aGUgaG9zdCBhc3NpZ25lZCB2YWx1ZSBpcyBsb3N0IGFmdGVyIGFzc2lnbmluZyB0byBkb21V
MQ0KYW5kIGRvbVUyIHdpbGwgdXNlIHRoZSB2YWx1ZSB1c2VkIGJ5IGRvbVUxLg0KU28sIGl0IHNl
ZW1zIHRoYXQgdGhpcyBpcyB0aGUgb25seSB1c2UtY2FzZSBub3QgY292ZXJlZCBieSB0aGUgcGF0
Y2guDQoNCkphbiBbMV06DQoiSW4gdGhlIGFic2VuY2Ugb2YgRG9tMCBjb250cm9sbGluZyB0aGUg
ZGV2aWNlLCBJIHRoaW5rIHdlIG91Z2h0IHRvIHRha2UNClhlbidzIHZpZXcgYXMgdGhlICJob3N0
IiBvbmUuIFdoaWNoIHdpbGwgd2FudCB0aGUgYml0IHNldCBhdCBsZWFzdCBhcw0KbG9uZyBhcyBl
aXRoZXIgTVNJIG9yIE1TSS1YIGlzIGVuYWJsZWQgZm9yIHRoZSBkZXZpY2UuIg0KDQpTbywgZm9y
IHRoZSBQQ0lfQ09NTUFORCByZWdpc3RlciB3ZSBtaWdodCB3YW50IHRvIGhhdmUgYSByZWZlcmVu
Y2UgdmFsdWUNCnRvIGJlIHN0b3JlZCBzbyB3ZSBjYW4gcmVzdG9yZSBpdCB3aGlsZSBhc3NpZ25p
bmcgdGhlIFBDSSBkZXZpY2UgdG8gYSBndWVzdC4NCkZvciB0aGUgY3VycmVudCBpbXBsZW1lbnRh
dGlvbiB0aGUgYmVzdCBJIGNhbiBwcm9iYWJseSBkbyBpcyB0byByZWFkIHRoaXMgdmFsdWUNCmlu
IGluaXRfYmFycyB3aGVuIGl0IGlzIGNhbGxlZCBmb3IgdGhlIGhhcmR3YXJlIGRvbWFpbjoNCg0K
aWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KIMKgIHZwY2ktPnBjaV9jb21tYW5kX3JlZmVy
ZW5jZSA9IHBjaV9yZWFkKFBDSV9DT01NQU5EKQ0KDQpBbmQgd2hlbiBJIHdhbnQgdG8gcmVzZXQg
UENJX0NPTU1BTkQgd2hpbGUgYXNzaWduaW5nIHRvIGEgZ3Vlc3QgSSB3aWxsDQp1c2UgaXQgaW5z
dGVhZCBvZiAwIGFzIGl0IGlzIG5vdy4NCj4+IEphbg0KPj4NClsxXSBodHRwczovL2xvcmUua2Vy
bmVsLm9yZy94ZW4tZGV2ZWwvMjAyMTA5MDMxMDA4MzEuMTc3NzQ4LTktYW5kcjIwMDBAZ21haWwu
Y29tLw==


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 08:58:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 08:58:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220613.381938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miC5w-0002VU-Ca; Wed, 03 Nov 2021 08:58:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220613.381938; Wed, 03 Nov 2021 08:58:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miC5w-0002VN-9X; Wed, 03 Nov 2021 08:58:08 +0000
Received: by outflank-mailman (input) for mailman id 220613;
 Wed, 03 Nov 2021 08:58:06 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miC5u-0002VH-K8
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 08:58:06 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 282f42b2-3c84-11ec-8563-12813bfff9fa;
 Wed, 03 Nov 2021 08:58:05 +0000 (UTC)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A38Q08c029233;
 Wed, 3 Nov 2021 08:58:02 GMT
Received: from eur03-db5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2057.outbound.protection.outlook.com [104.47.10.57])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c3pwng4d6-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 08:58:01 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5796.eurprd03.prod.outlook.com (2603:10a6:208:156::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13; Wed, 3 Nov
 2021 08:57:59 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 08:57:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 282f42b2-3c84-11ec-8563-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Rvf7s76vtWyDzSuAU+fhk2wb6HLalrEI+0g2RiIDfdW2hCSMnTIlsMrZmrJwzHjRYysT7z03+mZ6X0OpKB99GhY3UEPyJRpiybJV1Auj4cKmPYRCE4cdb0FCWfwuPBqPVSaIipiqOQAib7uN5Wf03keGDrNjiAiqZSe+DO7BuDblj31Es+AP5W72FGuozkiykepEz+IQN/9Z9UhJ8w9bF6yYjJPjtkLnWxSdus4Kfm3PzaYu39v0pDbmju3jMpR7zYPOng7y65JVMXC3zUQeLc5C9hKGYaoeQ68qTBXGa34k71QEnfEIxLMbcOnhV84z0OA/q8SnW7eVzGZqaV0XNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=abJhIhsTTkiUCMlNEdTW5hx8Z4rICWMfvn5gKhIQIe8=;
 b=Kkowx4Xx/mUGdG9Si1OTP4zFWbyD2EfXItePlv23Nu2Tl6Dyt4wAcSIFy5mStzlYsVR1LASGDIRZO/g6T6FuuWlB/z+LmhxiQ44jQysH30cPIOuSvtJ0OJBQ+YHQiFHhSUedA476Ob7rUFa2Z/XP9QQAvyFL3V0AnFTmQhz9euMMKcYqR2AQMhG/rBSZvGIPbI001vRNu8zjUxQVn6kW2NM7vB4F/6iMe3yMVf3Ag0jZSKPu20CJwzWV6zkBrFtfmqjhGr9+HDHhglSrws9x5Xr3FsPbSaI74CsP7TSKIIHegEDNnapba2cRaXjJfFPCfBzobPXGSgl7482JcSTvHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=abJhIhsTTkiUCMlNEdTW5hx8Z4rICWMfvn5gKhIQIe8=;
 b=jdxtRBE+ROwj8Fsb/awkvs8DRVobdwfEnjFwA42Ovg5916XG047TBRE+M71dwJRKkFQxajpJQVGzF8Yn9lLUo04/pFffr2/KOg9RHqZaEiOvWAq+zXec9Uow41nd5kyGQBpb95ezcW8r/QWuhBG6lNKxAUWn6TzjPZ6HhcC8nFyX4MSacJRkguglvzjW6jz4l7gfHXAB1q3pABTz/5XXAQV9LAi8x0c5DCd5LvszyYYZ0kAU0eFJW7qnTaPNnhkS3MhQBCnEQv6ym4nyheXT9RxVGcHnx7TRUHAh28vSsyiipdCGHId/fMBqCZvsStT6BelNwBzkTfpAoMhPs67adQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus
 topology
Thread-Topic: [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus
 topology
Thread-Index: AQHXtdAlOCu2AnkIOUC4Prsocox3sqvlTvCAgAw/FQCAACN9gIAABKkA
Date: Wed, 3 Nov 2021 08:57:59 +0000
Message-ID: <92bea18d-2c33-6cd0-7e68-f04182b5325b@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-11-andr2000@gmail.com>
 <YXfng3PqDI6C4yxn@MacBook-Air-de-Roger.local>
 <52b1533d-4aeb-29be-2611-9b50adea3f73@epam.com>
 <5ee482d2-3af5-b49a-facf-6a78ab672cd4@suse.com>
In-Reply-To: <5ee482d2-3af5-b49a-facf-6a78ab672cd4@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 23f5d998-26ae-4ff2-fb0e-08d99ea80922
x-ms-traffictypediagnostic: AM0PR03MB5796:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5796D5781F140671FD8356EDE78C9@AM0PR03MB5796.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 RwItz4nBpaRv6+GFDYQ/ePqM4vuZkFA3wdJjbTOirSp8eddmstfa4uz1d87Dyp7sFl7LpzPcKnQ9p7XKUz54Oca9PiPZQINHp3csIHxqx6Cttm9e8XmOhKSXcqsxspDNHWsTJDQiis+vKUB3mfL+xfpct4ofD4GJp/ngT5+9qfBI8kQ17L6WgLgrDgTqmj0KQO4SZQ4cM+WaZnHm0do5ttkZ2ijOGwvRH3IXPHAjrB35HqIhRjlx5QsnrBmaRtswrLFTAB4jgV2QgOsfWdXxxLYRFT1WeCgxICStrDttSiOt6QiWVr9DAimGjQfbmSq7i2UhYmz9MV3xjy0Xqdda0cEnuSEYK2vy6hL0lWPLojZTEGrkoalxYwTWn20OujyygSiDgeA2ftIbUK/mI2AAxgGGZtyz8YMXbNYsFuZjCiA3UfTBikGoRyKOJF3qF7bxtVYiqSPZ8z1iSKB3MIjVNglPTZGGLmF+qRuAzy9EGIwUpx2VqRRqWsGpSQ3tPIlwJ/zfkoxQgRQPBfUyAkOVH8xHWXoB/jA3O8+eLsbMON69+UWclkE/MN+N/CRjIcrbLuKpQoGAOuUI6zBi+IAMgrQY/rX9XEFrCMsLw/EO/cX5aAY/vUh9XBQDHCXJB/kFe1jBnJfjQAX+BrRhMG+ynqZ4EGonN7AhtDzgQ+PiUcFz/JFDbVqfPyjHARcCE3VHRiX8mhSkx5njwXWSSOStm2N9Zulg+OVMzbi2yfhej64cb8q+IuSgufqtav2eu+y5
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(71200400001)(2906002)(26005)(91956017)(76116006)(6512007)(66946007)(38070700005)(36756003)(86362001)(6916009)(54906003)(8676002)(53546011)(83380400001)(6506007)(31686004)(66446008)(38100700002)(122000001)(6486002)(64756008)(508600001)(5660300002)(8936002)(66556008)(316002)(31696002)(4326008)(186003)(66476007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?OGQyeXoyeENJNzZkemdBRjZtVFZCc3dGaWlBd1NGZW1IbG1VVGl5WFpwazZ1?=
 =?utf-8?B?UEZVREF1akkweXZJNWJtM3cycUpPZVlSUThKaVhIWTJRMXNvS3ZmZUVwQUpD?=
 =?utf-8?B?b1dMZlp3SXczR3R2Z3h0cFhiZ01sTzhudWcxaC9oeHhDYWdMQUtldUxYWG9H?=
 =?utf-8?B?NXBaL3VJOU9IS0Jhc0xHU3E4VmlvTWpaWDFINTJwTldqN0JXckFIRU1KUnNY?=
 =?utf-8?B?NmFMYVhwOTdhRy9jQVFqYkFGSGtubHA0cUgwWXlLazV5Qkp2a1dyczhBVXc5?=
 =?utf-8?B?TmU0MXppdlZHRzVPQlRKWTFHQS95VzIzZ1RsRVZCRGg3MXBQNGE2Nm14bmIv?=
 =?utf-8?B?WG9jb29laFVFcWFyZFhoR0V0OWRwUnNVNUFDTzVRUHFjT0tHR0JYNFJ5a3pN?=
 =?utf-8?B?Um4zQTc1eWNMeGNrUFV5Qlhpd1RLNk1mWGRjWVBJVTNRZFBLeWxacyszS3p3?=
 =?utf-8?B?MVVYVkFoMDFFQXptM0VRMkJ3OHBuRHArMnBxaS9oL0JiQVU1clBVVitTSjZV?=
 =?utf-8?B?Yjc3TTNrZGtXNHJiZDF1bDE4bjgwUGtHeUNNNGEyTnRtb0JQNUR3aWlZSTdm?=
 =?utf-8?B?ZEhjQVR0ZEVKZFRmR2tpYjBTV28rZ1JBUlFXUzhNV09Ed2h0Z1ZLMWZ5UFNP?=
 =?utf-8?B?RWxPbGVldWJSQzRuQWhLRFZ3U3NtSjNDandFbG82M3NmMXhqVHEwVGhUTkFZ?=
 =?utf-8?B?VUxwVWJuak5IRGlHbXAyRXNEQW45NnBzcmY2L0RLSE1VNWdHTlJ6VGNtME1l?=
 =?utf-8?B?VUJucFhxblBTL1BISUE0SkdiUWp2VDd6UXViN0FDN1A4di9lMFhkaFJUQUZp?=
 =?utf-8?B?UHIwTlpSOGpEVjViY1dKT3pXWEhOeXVFQ1BZZU1UTlZRZFZuN0RQc2xuNzZw?=
 =?utf-8?B?QlZNQ2czV2N6cXlaR3BpdkM3QzBZdU9nakI1RDd4SzBNM2pRSVB3OTVQbkZ4?=
 =?utf-8?B?OEF0dGhyc1lYZzYxeS9MbG1MUThjeHJjVFdDRGMzemtvZnlXYlhuMTgzN3Fz?=
 =?utf-8?B?RHBIWmFaVndnYjhpNmU5Z0VTa3QrNTVPQzkwMHBrOFBmQUVXVnNwaFhiTTFs?=
 =?utf-8?B?RDNtT2l6dHMrNjErUkVKRFRvS1JtUkxocG82YTIzQ0Y2WmdYWUFEdzJZRGh4?=
 =?utf-8?B?VmJNUWNYb3FyUDJ6a25VdC85dFpvN0JCUWc2L3lMZDU5cDk3QURRZm52bjBM?=
 =?utf-8?B?NnlhNGVIMk53cThZeHpnMDZtbUo3QytzMnhiaWNHTFNVK1hqUjRibndaZFBN?=
 =?utf-8?B?cHgvdXh5V2oveVJsNEJwNVVmdTZmYUlwQ3c4Z2IyOGtYb3pFMWxQSTJBcENo?=
 =?utf-8?B?NGhxdWx0V3N3Q3NqbjY2WllxOFNjbHdMYVFLUDk4WmU5WXVVclgrdkR0VmZr?=
 =?utf-8?B?aHFWQTNXZHd0Yld1dGorYWR5WDBOWFB4eTJSSlEyYlpIQzI1VGo5ZXpIeXE0?=
 =?utf-8?B?WWg4bXF6bkUySUYyYzUvRWZhTjVUbVBVWUJVb1BkOXc3RHhsck1Za0Q0VHc4?=
 =?utf-8?B?TkVEWmxEa29TUXQzZGZLNGkxZ3R2elVVdElzQWRSd0NaTDVhSmt3ajd4WXlz?=
 =?utf-8?B?cTJIVDJIaHpDcFpxWlNlb3NGYUx0V1Ywdk5FdTlIQU9OYXZIaTJiSGQvTXU1?=
 =?utf-8?B?R1dGb3V1LzhnR1dKNEsydFQvL01LbytiMURBOU9xMDVmSnFCekZRYlp0alVV?=
 =?utf-8?B?Z3d5bHAzbTlmSVRmQzVuMnF4TGd5V01BN2tkY0pEdStObFB2bnhLYXBLRUsv?=
 =?utf-8?B?UGJ3VHdLT2swQ3o3WG9TTWR1MDdGMC94dm1VOTFtcEl1a0VZVlQzTTRYTHg3?=
 =?utf-8?B?cGJrSldvL01Pd2VXNnJ3cGtxR2h0ZlNrL1orN3ZPVmdvbmxGZGNNTXNrUm5k?=
 =?utf-8?B?ZGNxT3BEOEIxajNIS2p6eUdiNTkvVGxUd0IrWVRhNU9HRDdLRno1V2hRN0o4?=
 =?utf-8?B?UVgvOS9NcWIwZENGY3lpTm1JSkJOakx6NVl2cjFQMDdqV0I3ZkVzNUpSUFdu?=
 =?utf-8?B?ajJUWDllcnNFS3FldWJDRnpzaUpaWjFKenc0eWtHMkhJR1lBZmVhbE9uOGZL?=
 =?utf-8?B?ejJ6dFkzenRGKzluN0tOdjJEQWo1U2M5MW5paEZaNi81S3VTQnNta3gzOVYy?=
 =?utf-8?B?Z3ZRT0QrUXJUVUp1VEVTMklzYnNYSWo1NkwvaEY0d21wT0I5OXhUeWdjSS9k?=
 =?utf-8?B?TG9FdWZiRW5HcDZEWUFzWkdGa3JpY2RJYkdhREpXTjdObUlKVzNlbGZRM24z?=
 =?utf-8?B?dXRwcGZxemtnOUlNYjBjNEF5STFjbktNQ0xBbWNNTFNNVXBENGQxZm12cHJa?=
 =?utf-8?B?dzBPQnM2dWZjUkI2YnB3azNycGtuQ0MvRVhjWWtZeDNzNkhDeGhWUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D659BC2427315F46A6F2A86225A1CF25@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 23f5d998-26ae-4ff2-fb0e-08d99ea80922
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 08:57:59.3412
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: In6VdzC3eNbg8CKrtnZ++O1nSI0qUyXhP+orcuxyjJptN6CCAVPiFTr4qpkMWlCndSzT615fZNps27k4XrrSS1KjSybBv3MmPbIhboIGaHtpgQpxFJZpcJMKS6e0tco8
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5796
X-Proofpoint-ORIG-GUID: IM7DbjVdSzppLuM8fcjvMXlPtaR4CXVB
X-Proofpoint-GUID: IM7DbjVdSzppLuM8fcjvMXlPtaR4CXVB
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_02,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015
 phishscore=0 adultscore=0 spamscore=0 mlxlogscore=999 malwarescore=0
 mlxscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0
 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111030052

DQoNCk9uIDAzLjExLjIxIDEwOjQxLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDMuMTEuMjAy
MSAwNzozNCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBIaSwgUm9nZXINCj4+
DQo+PiBPbiAyNi4xMC4yMSAxNDozMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBU
aHUsIFNlcCAzMCwgMjAyMSBhdCAxMDo1MjoyMkFNICswMzAwLCBPbGVrc2FuZHIgQW5kcnVzaGNo
ZW5rbyB3cm90ZToNCj4+Pj4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5k
cl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPj4+Pg0KPj4+PiBBc3NpZ24gU0JERiB0byB0aGUg
UENJIGRldmljZXMgYmVpbmcgcGFzc2VkIHRocm91Z2ggd2l0aCBidXMgMC4NCj4+Pj4gVGhlIHJl
c3VsdGluZyB0b3BvbG9neSBpcyB3aGVyZSBQQ0llIGRldmljZXMgcmVzaWRlIG9uIHRoZSBidXMg
MCBvZiB0aGUNCj4+Pj4gcm9vdCBjb21wbGV4IGl0c2VsZiAoZW1iZWRkZWQgZW5kcG9pbnRzKS4N
Cj4+Pj4gVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBsaW1pdGVkIHRvIDMyIGRldmljZXMgd2hpY2gg
YXJlIGFsbG93ZWQgb24NCj4+Pj4gYSBzaW5nbGUgUENJIGJ1cy4NCj4+Pj4NCj4+Pj4gU2lnbmVk
LW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtv
QGVwYW0uY29tPg0KPj4+Pg0KPj4+PiAtLS0NCj4+Pj4gU2luY2UgdjI6DQo+Pj4+ICAgIC0gcmVt
b3ZlIGNhc3RzIHRoYXQgYXJlIChhKSBtYWxmb3JtZWQgYW5kIChiKSB1bm5lY2Vzc2FyeQ0KPj4+
PiAgICAtIGFkZCBuZXcgbGluZSBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5DQo+Pj4+ICAgIC0gcmVt
b3ZlIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUIGlmZGVmJ3MgYXMgdGhlIHJlbGV2YW50
IHZQQ0kNCj4+Pj4gICAgICAgZnVuY3Rpb25zIGFyZSBub3cgY29tcGxldGVseSBnYXRlZCB3aXRo
IHRoaXMgY29uZmlnDQo+Pj4+ICAgIC0gZ2F0ZSBjb21tb24gY29kZSB3aXRoIENPTkZJR19IQVNf
VlBDSV9HVUVTVF9TVVBQT1JUDQo+Pj4+IE5ldyBpbiB2Mg0KPj4+PiAtLS0NCj4+Pj4gICAgeGVu
L2NvbW1vbi9kb21haW4uYyAgICAgICAgICAgfCAgMyArKw0KPj4+PiAgICB4ZW4vZHJpdmVycy9w
YXNzdGhyb3VnaC9wY2kuYyB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
DQo+Pj4+ICAgIHhlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jICAgICAgIHwgMTQgKysrKysrKy0NCj4+
Pj4gICAgeGVuL2luY2x1ZGUveGVuL3BjaS5oICAgICAgICAgfCAyMiArKysrKysrKysrKysrDQo+
Pj4+ICAgIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgICAgIHwgIDggKysrKysNCj4+Pj4gICAg
NSBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPj4+Pg0K
Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kb21haW4uYyBiL3hlbi9jb21tb24vZG9tYWlu
LmMNCj4+Pj4gaW5kZXggNDBkNjdlYzM0MjMyLi5lMDE3MDA4NzYxMmQgMTAwNjQ0DQo+Pj4+IC0t
LSBhL3hlbi9jb21tb24vZG9tYWluLmMNCj4+Pj4gKysrIGIveGVuL2NvbW1vbi9kb21haW4uYw0K
Pj4+PiBAQCAtNjAxLDYgKzYwMSw5IEBAIHN0cnVjdCBkb21haW4gKmRvbWFpbl9jcmVhdGUoZG9t
aWRfdCBkb21pZCwNCj4+Pj4gICAgDQo+Pj4+ICAgICNpZmRlZiBDT05GSUdfSEFTX1BDSQ0KPj4+
PiAgICAgICAgSU5JVF9MSVNUX0hFQUQoJmQtPnBkZXZfbGlzdCk7DQo+Pj4+ICsjaWZkZWYgQ09O
RklHX0hBU19WUENJX0dVRVNUX1NVUFBPUlQNCj4+Pj4gKyAgICBJTklUX0xJU1RfSEVBRCgmZC0+
dmRldl9saXN0KTsNCj4+Pj4gKyNlbmRpZg0KPj4+PiAgICAjZW5kaWYNCj4+Pj4gICAgDQo+Pj4+
ICAgICAgICAvKiBBbGwgZXJyb3IgcGF0aHMgY2FuIGRlcGVuZCBvbiB0aGUgYWJvdmUgc2V0dXAu
ICovDQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyBiL3hl
bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jDQo+Pj4+IGluZGV4IDgwNWFiODZlZDU1NS4uNWI5
NjNkNzVkMWJhIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2ku
Yw0KPj4+PiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYw0KPj4+PiBAQCAtODMx
LDYgKzgzMSw2NiBAQCBpbnQgcGNpX3JlbW92ZV9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBk
ZXZmbikNCj4+Pj4gICAgICAgIHJldHVybiByZXQ7DQo+Pj4+ICAgIH0NCj4+Pj4gICAgDQo+Pj4+
ICsjaWZkZWYgQ09ORklHX0hBU19WUENJX0dVRVNUX1NVUFBPUlQNCj4+Pj4gK3N0YXRpYyBzdHJ1
Y3QgdnBjaV9kZXYgKnBjaV9maW5kX3ZpcnR1YWxfZGV2aWNlKGNvbnN0IHN0cnVjdCBkb21haW4g
KmQsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+Pj4gK3sNCj4+Pj4gKyAgICBzdHJ1Y3Qg
dnBjaV9kZXYgKnZkZXY7DQo+Pj4+ICsNCj4+Pj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICgg
dmRldiwgJmQtPnZkZXZfbGlzdCwgbGlzdCApDQo+Pj4+ICsgICAgICAgIGlmICggdmRldi0+cGRl
diA9PSBwZGV2ICkNCj4+Pj4gKyAgICAgICAgICAgIHJldHVybiB2ZGV2Ow0KPj4+PiArICAgIHJl
dHVybiBOVUxMOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICtpbnQgcGNpX2FkZF92aXJ0dWFsX2Rl
dmljZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+Pj4g
K3sNCj4+Pj4gKyAgICBzdHJ1Y3QgdnBjaV9kZXYgKnZkZXY7DQo+Pj4+ICsNCj4+Pj4gKyAgICBB
U1NFUlQoIXBjaV9maW5kX3ZpcnR1YWxfZGV2aWNlKGQsIHBkZXYpKTsNCj4+Pj4gKw0KPj4+PiAr
ICAgIC8qIEVhY2ggUENJIGJ1cyBzdXBwb3J0cyAzMiBkZXZpY2VzL3Nsb3RzIGF0IG1heC4gKi8N
Cj4+Pj4gKyAgICBpZiAoIGQtPnZwY2lfZGV2X25leHQgPiAzMSApDQo+Pj4+ICsgICAgICAgIHJl
dHVybiAtRU5PU1BDOw0KPj4+PiArDQo+Pj4+ICsgICAgdmRldiA9IHh6YWxsb2Moc3RydWN0IHZw
Y2lfZGV2KTsNCj4+Pj4gKyAgICBpZiAoICF2ZGV2ICkNCj4+Pj4gKyAgICAgICAgcmV0dXJuIC1F
Tk9NRU07DQo+Pj4+ICsNCj4+Pj4gKyAgICAvKiBXZSBlbXVsYXRlIGEgc2luZ2xlIGhvc3QgYnJp
ZGdlIGZvciB0aGUgZ3Vlc3QsIHNvIHNlZ21lbnQgaXMgYWx3YXlzIDAuICovDQo+Pj4+ICsgICAg
dmRldi0+c2VnID0gMDsNCj4+Pj4gKw0KPj4+PiArICAgIC8qDQo+Pj4+ICsgICAgICogVGhlIGJ1
cyBudW1iZXIgaXMgc2V0IHRvIDAsIHNvIHZpcnR1YWwgZGV2aWNlcyBhcmUgc2Vlbg0KPj4+PiAr
ICAgICAqIGFzIGVtYmVkZGVkIGVuZHBvaW50cyBiZWhpbmQgdGhlIHJvb3QgY29tcGxleC4NCj4+
Pj4gKyAgICAgKi8NCj4+Pj4gKyAgICB2ZGV2LT5idXMgPSAwOw0KPj4+PiArICAgIHZkZXYtPmRl
dmZuID0gUENJX0RFVkZOKGQtPnZwY2lfZGV2X25leHQrKywgMCk7DQo+Pj4gVGhpcyB3b3VsZCBs
aWtlbHkgYmUgYmV0dGVyIGFzIGEgYml0bWFwIHdoZXJlIHlvdSBzZXQgdGhlIGJpdHMgb2YNCj4+
PiBpbi11c2Ugc2xvdHMuIFRoZW4geW91IGNhbiB1c2UgZmluZF9maXJzdF9iaXQgb3Igc2ltaWxh
ciB0byBnZXQgYSBmcmVlDQo+Pj4gc2xvdC4NCj4+Pg0KPj4+IExvbmcgdGVybSB5b3UgbWlnaHQg
d2FudCB0byBhbGxvdyB0aGUgY2FsbGVyIHRvIHByb3ZpZGUgYSBwcmUtc2VsZWN0ZWQNCj4+PiBz
bG90LCBhcyBpdCdzIHBvc3NpYmxlIGZvciB1c2VycyB0byByZXF1ZXN0IHRoZSBkZXZpY2UgdG8g
YXBwZWFyIGF0IGENCj4+PiBzcGVjaWZpYyBzbG90IG9uIHRoZSBlbXVsYXRlZCBidXMuDQo+Pj4N
Cj4+Pj4gKw0KPj4+PiArICAgIHZkZXYtPnBkZXYgPSBwZGV2Ow0KPj4+PiArICAgIHZkZXYtPmRv
bWFpbiA9IGQ7DQo+Pj4+ICsNCj4+Pj4gKyAgICBwY2lkZXZzX2xvY2soKTsNCj4+Pj4gKyAgICBs
aXN0X2FkZF90YWlsKCZ2ZGV2LT5saXN0LCAmZC0+dmRldl9saXN0KTsNCj4+Pj4gKyAgICBwY2lk
ZXZzX3VubG9jaygpOw0KPj4+PiArDQo+Pj4+ICsgICAgcmV0dXJuIDA7DQo+Pj4+ICt9DQo+Pj4+
ICsNCj4+Pj4gK2ludCBwY2lfcmVtb3ZlX3ZpcnR1YWxfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQs
IGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4+PiArew0KPj4+PiArICAgIHN0cnVjdCB2
cGNpX2RldiAqdmRldjsNCj4+Pj4gKw0KPj4+PiArICAgIHBjaWRldnNfbG9jaygpOw0KPj4+PiAr
ICAgIHZkZXYgPSBwY2lfZmluZF92aXJ0dWFsX2RldmljZShkLCBwZGV2KTsNCj4+Pj4gKyAgICBp
ZiAoIHZkZXYgKQ0KPj4+PiArICAgICAgICBsaXN0X2RlbCgmdmRldi0+bGlzdCk7DQo+Pj4+ICsg
ICAgcGNpZGV2c191bmxvY2soKTsNCj4+Pj4gKyAgICB4ZnJlZSh2ZGV2KTsNCj4+Pj4gKyAgICBy
ZXR1cm4gMDsNCj4+Pj4gK30NCj4+Pj4gKyNlbmRpZiAvKiBDT05GSUdfSEFTX1ZQQ0lfR1VFU1Rf
U1VQUE9SVCAqLw0KPj4+PiArDQo+Pj4+ICAgIC8qIENhbGxlciBzaG91bGQgaG9sZCB0aGUgcGNp
ZGV2c19sb2NrICovDQo+Pj4+ICAgIHN0YXRpYyBpbnQgZGVhc3NpZ25fZGV2aWNlKHN0cnVjdCBk
b21haW4gKmQsIHVpbnQxNl90IHNlZywgdWludDhfdCBidXMsDQo+Pj4+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQ4X3QgZGV2Zm4pDQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vZHJp
dmVycy92cGNpL3ZwY2kuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jDQo+Pj4+IGluZGV4IDcw
MmY3YjVkNWRkYS4uZDc4N2YxM2U2NzllIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vZHJpdmVycy92
cGNpL3ZwY2kuYw0KPj4+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYw0KPj4+PiBAQCAt
OTEsMjAgKzkxLDMyIEBAIGludCBfX2h3ZG9tX2luaXQgdnBjaV9hZGRfaGFuZGxlcnMoc3RydWN0
IHBjaV9kZXYgKnBkZXYpDQo+Pj4+ICAgIC8qIE5vdGlmeSB2UENJIHRoYXQgZGV2aWNlIGlzIGFz
c2lnbmVkIHRvIGd1ZXN0LiAqLw0KPj4+PiAgICBpbnQgdnBjaV9hc3NpZ25fZGV2aWNlKHN0cnVj
dCBkb21haW4gKmQsIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXYpDQo+Pj4+ICAgIHsNCj4+Pj4g
KyAgICBpbnQgcmM7DQo+Pj4+ICsNCj4+Pj4gICAgICAgIC8qIEl0IG9ubHkgbWFrZXMgc2Vuc2Ug
dG8gYXNzaWduIGZvciBod2RvbSBvciBndWVzdCBkb21haW4uICovDQo+Pj4+ICAgICAgICBpZiAo
IGlzX3N5c3RlbV9kb21haW4oZCkgfHwgIWhhc192cGNpKGQpICkNCj4+Pj4gICAgICAgICAgICBy
ZXR1cm4gMDsNCj4+Pj4gICAgDQo+Pj4+IC0gICAgcmV0dXJuIHZwY2lfYmFyX2FkZF9oYW5kbGVy
cyhkLCBkZXYpOw0KPj4+PiArICAgIHJjID0gdnBjaV9iYXJfYWRkX2hhbmRsZXJzKGQsIGRldik7
DQo+Pj4+ICsgICAgaWYgKCByYyApDQo+Pj4+ICsgICAgICAgIHJldHVybiByYzsNCj4+Pj4gKw0K
Pj4+PiArICAgIHJldHVybiBwY2lfYWRkX3ZpcnR1YWxfZGV2aWNlKGQsIGRldik7DQo+Pj4+ICAg
IH0NCj4+Pj4gICAgDQo+Pj4+ICAgIC8qIE5vdGlmeSB2UENJIHRoYXQgZGV2aWNlIGlzIGRlLWFz
c2lnbmVkIGZyb20gZ3Vlc3QuICovDQo+Pj4+ICAgIGludCB2cGNpX2RlYXNzaWduX2RldmljZShz
dHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2KQ0KPj4+PiAgICB7DQo+
Pj4+ICsgICAgaW50IHJjOw0KPj4+PiArDQo+Pj4+ICAgICAgICAvKiBJdCBvbmx5IG1ha2VzIHNl
bnNlIHRvIGRlLWFzc2lnbiBmcm9tIGh3ZG9tIG9yIGd1ZXN0IGRvbWFpbi4gKi8NCj4+Pj4gICAg
ICAgIGlmICggaXNfc3lzdGVtX2RvbWFpbihkKSB8fCAhaGFzX3ZwY2koZCkgKQ0KPj4+PiAgICAg
ICAgICAgIHJldHVybiAwOw0KPj4+PiAgICANCj4+Pj4gKyAgICByYyA9IHBjaV9yZW1vdmVfdmly
dHVhbF9kZXZpY2UoZCwgZGV2KTsNCj4+Pj4gKyAgICBpZiAoIHJjICkNCj4+Pj4gKyAgICAgICAg
cmV0dXJuIHJjOw0KPj4+PiArDQo+Pj4+ICAgICAgICByZXR1cm4gdnBjaV9iYXJfcmVtb3ZlX2hh
bmRsZXJzKGQsIGRldik7DQo+Pj4+ICAgIH0NCj4+Pj4gICAgI2VuZGlmIC8qIENPTkZJR19IQVNf
VlBDSV9HVUVTVF9TVVBQT1JUICovDQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4v
cGNpLmggYi94ZW4vaW5jbHVkZS94ZW4vcGNpLmgNCj4+Pj4gaW5kZXggNDNiOGEwODE3MDc2Li4z
MzAzM2EzYThmOGQgMTAwNjQ0DQo+Pj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9wY2kuaA0KPj4+
PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vcGNpLmgNCj4+Pj4gQEAgLTEzNyw2ICsxMzcsMjQgQEAg
c3RydWN0IHBjaV9kZXYgew0KPj4+PiAgICAgICAgc3RydWN0IHZwY2kgKnZwY2k7DQo+Pj4+ICAg
IH07DQo+Pj4+ICAgIA0KPj4+PiArI2lmZGVmIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JU
DQo+Pj4+ICtzdHJ1Y3QgdnBjaV9kZXYgew0KPj4+PiArICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlz
dDsNCj4+Pj4gKyAgICAvKiBQaHlzaWNhbCBQQ0kgZGV2aWNlIHRoaXMgdmlydHVhbCBkZXZpY2Ug
aXMgY29ubmVjdGVkIHRvLiAqLw0KPj4+PiArICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2
Ow0KPj4+PiArICAgIC8qIFZpcnR1YWwgU0JERiBvZiB0aGUgZGV2aWNlLiAqLw0KPj4+PiArICAg
IHVuaW9uIHsNCj4+Pj4gKyAgICAgICAgc3RydWN0IHsNCj4+Pj4gKyAgICAgICAgICAgIHVpbnQ4
X3QgZGV2Zm47DQo+Pj4+ICsgICAgICAgICAgICB1aW50OF90IGJ1czsNCj4+Pj4gKyAgICAgICAg
ICAgIHVpbnQxNl90IHNlZzsNCj4+Pj4gKyAgICAgICAgfTsNCj4+Pj4gKyAgICAgICAgcGNpX3Ni
ZGZfdCBzYmRmOw0KPj4+PiArICAgIH07DQo+Pj4+ICsgICAgc3RydWN0IGRvbWFpbiAqZG9tYWlu
Ow0KPj4+PiArfTsNCj4+Pj4gKyNlbmRpZg0KPj4+IEkgd29uZGVyIHdoZXRoZXIgdGhpcyBpcyBz
dHJpY3RseSBuZWVkZWQuIFdvbid0IGl0IGJlIGVub3VnaCB0byBzdG9yZQ0KPj4+IHRoZSB2aXJ0
dWFsIChpZTogZ3Vlc3QpIHNiZGYgaW5zaWRlIHRoZSBleGlzdGluZyB2cGNpIHN0cnVjdD8NCj4+
Pg0KPj4+IEl0IHdvdWxkIGF2b2lkIHRoZSBvdmVyaGVhZCBvZiB0aGUgdHJhbnNsYXRpb24geW91
IGRvIGZyb20gcGRldiAtPg0KPj4+IHZkZXYsIGFuZCB0aGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUg
YW55dGhpbmcgcmVsZXZhbnQgc3RvcmVkIGluDQo+Pj4gdnBjaV9kZXYgYXBhcnQgZnJvbSB0aGUg
dmlydHVhbCBzYmRmLg0KPj4gVEw7RFIgSXQgc2VlbXMgaXQgbWlnaHQgYmUgbmVlZGVkIGZyb20g
cGVyZm9ybWFuY2UgUE9WLiBJZiBub3QgaW1wbGVtZW50ZWQNCj4+IGZvciBldmVyeSBNTUlPIHRy
YXAgd2UgdXNlIGEgZ2xvYmFsIFBDSSBsb2NrLCBlLmcuIHBjaWRldnNfe2xvY2t8dW5sb2NrfS4N
Cj4+IE5vdGU6IHBjaWRldnMnIGxvY2sgaXMgYSByZWN1cnNpdmUgbG9jaw0KPj4NCj4+IFRoZXJl
IGFyZSAyIHNvdXJjZXMgb2YgYWNjZXNzIHRvIHZpcnR1YWwgZGV2aWNlczoNCj4+IDEuIER1cmlu
ZyBpbml0aWFsaXphdGlvbiB3aGVuIHdlIGFkZCwgYXNzaWduIG9yIGRlLWFzc2lnbiBhIFBDSSBk
ZXZpY2UNCj4+IDIuIEF0IHJ1bi10aW1lIHdoZW4gd2UgdHJhcCBjb25maWd1cmF0aW9uIHNwYWNl
IGFjY2VzcyBhbmQgbmVlZCB0bw0KPj4gdHJhbnNsYXRlIHZpcnR1YWwgU0JERiBpbnRvIHBoeXNp
Y2FsIFNCREYNCj4+IDMuIEF0IGxlYXN0IGRlLWFzc2lnbiBjYW4gcnVuIGNvbmN1cnJlbnRseSB3
aXRoIE1NSU8gaGFuZGxlcnMNCj4+DQo+PiBOb3cgbGV0J3Mgc2VlIHdoaWNoIGxvY2tzIGFyZSBp
biB1c2Ugd2hpbGUgZG9pbmcgdGhhdC4NCj4+DQo+PiAxLiBObyBzdHJ1Y3QgdnBjaV9kZXYgaXMg
dXNlZC4NCj4+IDEuMS4gV2UgcmVtb3ZlIHRoZSBzdHJ1Y3R1cmUgYW5kIGp1c3QgYWRkIHBkZXYt
PnZwY2ktPmd1ZXN0X3NiZGYgYXMgeW91IHN1Z2dlc3QNCj4+IDEuMi4gVG8gcHJvdGVjdCB2aXJ0
dWFsIGRldmljZXMgd2UgdXNlIHBjaWRldnNfe2xvY2t8dW5sb2NrfQ0KPj4gMS4zLiBMb2NraW5n
IGhhcHBlbnMgb24gc3lzdGVtIGxldmVsDQo+Pg0KPj4gMi4gc3RydWN0IHZwY2lfZGV2IGlzIHVz
ZWQNCj4+IDIuMS4gV2UgaGF2ZSBhIHBlci1kb21haW4gbG9jayB2ZGV2X2xvY2sNCj4+IDIuMi4g
TG9ja2luZyBoYXBwZW5zIG9uIHBlciBkb21haW4gbGV2ZWwNCj4+DQo+PiBUbyBjb21wYXJlIHRo
ZSB0d286DQo+Pg0KPj4gMS4gV2l0aG91dCB2cGNpX2Rldg0KPj4gcHJvczogbXVjaCBzaW1wbGVy
IGNvZGUNCj4+IHByb3MvY29uczogZ2xvYmFsIGxvY2sgaXMgdXNlZCBkdXJpbmcgTU1JTyBoYW5k
bGluZywgYnV0IGl0IGlzIGEgcmVjdXJzaXZlIGxvY2sNCj4gQ291bGQgeW91IHBvaW50IG91dCB0
byBtZSBpbiB3aGljaCB3YXkgdGhlIHJlY3Vyc2l2ZSBuYXR1cmUgb2YgdGhlIGxvY2sNCj4gaXMg
cmVsZXZhbnQgaGVyZT8gQWZhaWN0IHRoYXQgYXNwZWN0IGlzIG9mIG5vIGludGVyZXN0IHdoZW4g
Y29uc2lkZXJpbmcNCj4gdGhlIHBlcmZvcm1hbmNlIGVmZmVjdHMgb2YgdXNpbmcgYSBnbG9iYWwg
bG9jayB2cyBvbmUgd2l0aCBtb3JlIG5hcnJvdw0KPiBzY29wZS4NCkkganVzdCB0cmllZCB0byBm
aW5kIHNvbWUgZXhjdXNlcyBhbmQgZGVmZW5kIHBjaWRldidzIGdsb2JhbCBsb2NrLA0Kc28gZXZl
biBsb2NrJ3MgcmVjdXJzaW9uIGNvdWxkIGJlIGFuIGFyZ3VtZW50IGhlcmUuIFdlYWsuDQpCZXNp
ZGVzIHRoYXQgSSBkbyBhZ3JlZSB0aGF0IHRoaXMgaXMgc3RpbGwgYSBnbG9iYWwgbG9jay4NCj4N
Cj4gSmFuDQo+DQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:00:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:00:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220622.381950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miC7j-00036V-PD; Wed, 03 Nov 2021 08:59:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220622.381950; Wed, 03 Nov 2021 08:59:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miC7j-00036O-M0; Wed, 03 Nov 2021 08:59:59 +0000
Received: by outflank-mailman (input) for mailman id 220622;
 Wed, 03 Nov 2021 08:59:59 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miC7i-00036I-UG
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 08:59:58 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 4cd5da8a-ce97-466a-ad15-5b3791dbf6e5;
 Wed, 03 Nov 2021 08:59:57 +0000 (UTC)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A38Q1DK029247;
 Wed, 3 Nov 2021 08:59:55 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2051.outbound.protection.outlook.com [104.47.14.51])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c3pwng4m5-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 08:59:55 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5796.eurprd03.prod.outlook.com (2603:10a6:208:156::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13; Wed, 3 Nov
 2021 08:59:52 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 08:59:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4cd5da8a-ce97-466a-ad15-5b3791dbf6e5
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Lq0naNXFMvwErvdwGYnZtHbRFRBqEZzLnF0JbRoQr2qNJfP5ULwk38LWFHqlvTDqje9gDYUZgj8aT84oUp6BN4mzIvkALIu3eq2VGbezc29ScuQd9jtnex1aMbKHtWcW7ZxTwI5lnufbcBg5POayUfIktERy0IMbb1Ux0qXA5vAXCZb/U80sqkYE8+NVRhgD45meUn7p9hc+MuIqofqjxnwAIC8jaWBfXRyrJnj1TKaAAkmmf52SikdX15OrvXnLJrdIAF64MhKOlPPV95WbYc154vRzRM+LsQG+DOM8NTFaOrjS9RLTF+5whsu2ZjNQotDaE6tj33QUWof6UYlBNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Vf5AVhjAp6QbPQiqqwU+fUJP4Odh8MzRqHC2PNscXtQ=;
 b=jjeIn5De0M5muu+G/p7spbumQfXlqd74s1KA9uP3HwXBl7h1yx+xj8aXcI73iagliRujSbOldYvmVlm90ozxVImI0DjuoHOjwBdzYFW6eby2Xu/SbKlI4qm0ZQ+FBcdfS+qPyz4Tcq4met33a4T5nylmKwTFOS37h6pPeGp/DwzH1tpbi9Hq++IaIGRvQJD1ChBFuHOlH7SE3Pb6skI6AJQ0U7zeftZtm751JaBCxejrilU2LBxj6vh5fUA2M0ASYwL++hi9sJeHsB2CtwD7uPg8KnqPrlWnoeE2oRJP1gSm0u03hRbr4XqKGYQwXkvN8P5hMFejukMmjVOn3wXNAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vf5AVhjAp6QbPQiqqwU+fUJP4Odh8MzRqHC2PNscXtQ=;
 b=k+1Dl97rCd+30vROAPpC+oDwJyt3lPCqsL071ZRVyMAX5+bSzPwOEz4T9eEGne/Lb8v3j/CxzyfKfY1/h3Nwtwzu/LMYiwqeixwTrpHdXlrSgShQ3EwUhEjnsyTwVElwAI+J0/YJUHcREB7IZsdSWUrb6hSlxZ+TSyJFKZZAgL563X7H4eySTYfJiYl8rZ0fEhCeG5089dHZ3ikRbgBQ/4RVkuWiHKkUI9THfvhmzHwBqBY3BX1EBtnMcbaxpLJqeiTWIpXmHmhSn3ktsl1NMPvSYLLs3yVyFQQuWxybF6CHIubCUqtAdpPztT/fclgfvJgTWWnz8zP74h+3SvUFIQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "jbeulich@suse.com" <jbeulich@suse.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>
Subject: Re: [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus
 topology
Thread-Topic: [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus
 topology
Thread-Index: AQHXtdAlOCu2AnkIOUC4Prsocox3sqvlTvCAgAw/FQCAACalgIAAAgiA
Date: Wed, 3 Nov 2021 08:59:52 +0000
Message-ID: <afe47397-a792-6b0c-0a89-b47c523e50d9@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-11-andr2000@gmail.com>
 <YXfng3PqDI6C4yxn@MacBook-Air-de-Roger.local>
 <52b1533d-4aeb-29be-2611-9b50adea3f73@epam.com>
 <YYJN028YTy92TLca@Air-de-Roger>
In-Reply-To: <YYJN028YTy92TLca@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 28a3f6c0-c14c-4d8e-cf30-08d99ea84c61
x-ms-traffictypediagnostic: AM0PR03MB5796:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5796FF14D50D8F7C1BB30A29E78C9@AM0PR03MB5796.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 QaNBXFC40pAIvuSiNmNhcY+prSwAfkoUAJoRUX42oOBMgO848fCJ/1H69qN0N972SCmMfHelNRk4FyRO51/aFUbjPpr5jBrUaoZOioeltcTpMbLoWfp1chai6eDXOeXSsb1cseraZ0WnGWB2vNm/FAQgFtK2hjyUbJtZGk0TwuKexYDFj8VA4ZmZetlIUT7I2MRBMm/UTf6ckPEGAIKcQPk43Q54CvlI9M1SxXxWmKcnvpdWeEn6xkksoFZvFIFTI1DOu+s9lRtHaXBq4wFEiB81gqsdefi7XP7101/ezUCu6EtJCspVEiS3e8YHOkJiTmrpI7fKPhpRr7/6fZbcbXEVWaXCvS9lz+okHZJpia9ZAJsCoryb3/S6CEseFarOPjtcPjAzSI/AqykunhQgljRGyzlMIP021TPqzrvCgka4ecOLu7L2Z4n3tUb8aHgJqglGjLpjcseFqq9acltizZMDiW4U7ObvWUFVIpfzU831DLIqO52pKlkQa1ABMLh6oQ1U0X+EQNPPe2cFWdLDOfr5mf1wF7HD7ELDKVbsLV6I6uYSbjJsefafqkmHgASZXUTcu9GHHDMR4el3texHRQUy7Hdtfqgqbk67RgDvWNe25DU3XkJy/DVuXbBRGlfTxT2o5xLg5p5nYuQKXCv4PhYHtsTVSEx618WwqujsJaUH6ko6v3jxqq0JayB2eIAejz+igizAXOkf1mNvfN9R4+lfyfCFcxkVLqJ3zGPWJXZz42XKknqaPHrSw+VpplCi
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6486002)(64756008)(31686004)(66446008)(38100700002)(122000001)(53546011)(83380400001)(6506007)(31696002)(186003)(66476007)(4326008)(5660300002)(508600001)(8936002)(66556008)(316002)(26005)(2906002)(91956017)(66946007)(76116006)(6512007)(2616005)(71200400001)(8676002)(36756003)(86362001)(6916009)(54906003)(38070700005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?NW1rSytaYUZlbjkrL2Nua0VEb2dNcDBOc2UrSkZjdytDODhxVW1ZWDBOakpZ?=
 =?utf-8?B?bFFFa3N6NDVNOHZvbGFpZmRNWkp2cUk0cktXT08yT0ZJcGJpV01lZmxTeHJ3?=
 =?utf-8?B?cFVLVVVlZ3pjQU1SdzVOeDRCSjdCeXF5RTFMcUJNWmlqcjFiS0U2K1N6UHhB?=
 =?utf-8?B?K0xDVkpUUnlNdGxwK3NRNFo2V2gwNXQxazk1TzcxZGl2U0Excm94ek51NXVa?=
 =?utf-8?B?eTFJeG41NXFrelFUVHR4b3JsVTZycHZVcDR4U21Hb2EyTHZRd1NjTkdXZ0RH?=
 =?utf-8?B?VnVGMm0yaTF5cjM3eWNVaStYNW43eXVhRTdZZ3RDOUxyTFIxNGNsdFkxS3hG?=
 =?utf-8?B?cDRITGYzYW9LVGRkM0lYVzNQV0JScnRGVlQyUHhPcVhLM1IxcEpZYTlURWFE?=
 =?utf-8?B?Ym54NlhZSnA2dVlVdHZDRkpDc3RVRG5XVGhkbVFyM0JYa1M0ai9wR0t1cW41?=
 =?utf-8?B?WCttMUJSdDJIMWQwakZmUTJkMkE5Vk5JbDBPOEpjWE4ySXpUY0xxaTZFNytj?=
 =?utf-8?B?a1F2S3p3eVZ2UStmZDFQWFFTVVgxMy91dnNvRVRiNTV0NmpQZzRQcWpMNmNS?=
 =?utf-8?B?VFN6ZDFkVFhiYUhKemZuN3UrWUdTTHBWTUZnQ3lzTTBmcmFQazZ2SlpUV1Yz?=
 =?utf-8?B?ekUwU1hPMXo3WVhJTk5aVWVhR1kxUUU0RGdDdTFIc1pvWjdBeDR3UHg3aXZE?=
 =?utf-8?B?ZzlNVWx0V3RPTGFYbGtJRlpOU0hFM0VIcENjRURlTjhuSUJVWVNtV1RHNTUz?=
 =?utf-8?B?UUZ4cXhObFlzbXhEdFFKNWRXemxjLzFsZU9PRWRvWnJCUkpNUmloYzFXZEVT?=
 =?utf-8?B?a0JCNHJXSkkwWnducEhrUTNHVUVCangzSTNEQVQ4WU9CY0UwS2QzQUcyM1V2?=
 =?utf-8?B?T1BlMEEzSmZkVmx4c3hBbE9kZGQvY2NPcFFsWXJPUXF1THlhL1pxdDBmdy9C?=
 =?utf-8?B?RUlNY3J6dHZrMlN5WDlqcGlRMjAvS3NVL0t0YjdBNVl4NjM3dk9EOEVPQzVp?=
 =?utf-8?B?Q3J0VVB1MGZwMHg5QXlGaUlXWDlyZit6dHN4RCtBbFFpQnJScUVBaHhWd1h2?=
 =?utf-8?B?ZUZlUWNFY2ZMd21yRS9aaGtrZHQ1UzNxcTNLM0lmT01Jb2d0TEU5SjNMd2hS?=
 =?utf-8?B?TWR5ZWc4cXA0TXY5cjlRODJTNHBZM1NkRkNFRU9TaEQ0Q0M4YnMrUG11OVV0?=
 =?utf-8?B?TThHNmRhWTVlc0p5UXhadmpoaWdKdEpQVW5LYU9lNUNDZVQzSEtvT0hVRHR4?=
 =?utf-8?B?TTFYWkxiNU11ODE4Vzl6OEhtZWZ2dExGUVI4N3RoNjZHYW4xbTZ1TlVVZGpY?=
 =?utf-8?B?NDNHTHZ1WVFVTVRURFZIQkt6TFdhMXUwcWhXUmZ6cDljMGErR0dDY0RUcTRR?=
 =?utf-8?B?MjZKTTBVY05oZW0vSWNnaVZRNUJpc3BTMHd4VGdrV0pPZG1tSVJEZkJxc1ZX?=
 =?utf-8?B?ZDdNRklhRnRVcmdSNUQ0TlVTRGZ0SDRHZFRYWnN3ZmVGMTFMWHV4YnFDTVR2?=
 =?utf-8?B?UTR1WVNla1cvRW9iVGxJUnl5a21NZXd3MzZaWW85VXp0ejNTMG5UT29VZVBP?=
 =?utf-8?B?NFAyVVVBeGVObVo1K2ltbjIvRzFzcDMvbGNFYjZMUmVvSUVTWG1NanFvaUJT?=
 =?utf-8?B?T09JNUxQUmxXMUdaTFBYTnBPZ054ZFlJSXpqU0U2NE12ZXpnSHNWNHR6NDN6?=
 =?utf-8?B?SjJvUllGY3lCWUFQVGRrdFI5dG4wTmNhK0J2R2g1Sk9rdGtaeTladGFpNDlq?=
 =?utf-8?B?UEh5YURhajRZaXRCKzRMcjRzdG1IOVVnTzlrcDY1ZXdZNWZEQjY2dTRBbURT?=
 =?utf-8?B?VWtkTVFEbTJhcENzSm9vc0o5Ky9iT0VObTRTa3VodmQ5VE5DbFVucmFCOVdN?=
 =?utf-8?B?SXJnTVRQaC9TS0xqa3RrZ3dGVUJ2NktUTW53TW14Q01RZjBYakVhOXFoR1Zu?=
 =?utf-8?B?akozeEhMQlhNVkNPazYvNkQ2RjZsK0NqTCtFekQyZGZFSmRTcUFuNkJpTmxh?=
 =?utf-8?B?bkhXZW9jb2JzdVdwNWoyY3pPZDE3R25ack1EQkZpRmlWcW1TeU8rcXhlaFdU?=
 =?utf-8?B?c3FWWE1QRm5Ed2xmcGhMZ21JQjhVVEFGTjdiL0VJc2FPWUxzU0JhOFoxOG52?=
 =?utf-8?B?MUZRT0VaQmk5TStjWUprVm1remhFNjZ0WHV1akp1MzJ6QkFONkZuMXUyWW5k?=
 =?utf-8?B?UDVURUxvN2oxVkcxZTdLNC94SyszQXJvd1RMYXVSUUV5YVhGN2JjL2J6VFhS?=
 =?utf-8?B?UDJMUUc4MGNZR0NrcEV0UmF6cnhnWk9LWVphR3p1L0NXUHZZa0d0NjFmU25k?=
 =?utf-8?B?TTd0TDJEbElDeTVSK1NPcExpcitEMGkrV2dqWmVjVzc3MkhNZlNaUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F7304F6EF2A6234E8F8735BAB3984E85@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 28a3f6c0-c14c-4d8e-cf30-08d99ea84c61
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 08:59:52.1126
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 3YwpPxVvmI8rFbzKllBQYl8wUqo6dWUQr9/SMU+twW1UavFmUbrRgCm1IIUmzq5oAo80tl1p26prboc9ULMn+vjykoaNSICOSkNfW8bhnqpM4jMnfHE/DY//wZGty0k5
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5796
X-Proofpoint-ORIG-GUID: qAn4a6BdHRSJpED2soRVAGbouhHIMVXX
X-Proofpoint-GUID: qAn4a6BdHRSJpED2soRVAGbouhHIMVXX
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_02,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015
 phishscore=0 adultscore=0 spamscore=0 mlxlogscore=999 malwarescore=0
 mlxscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0
 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111030052

DQoNCk9uIDAzLjExLjIxIDEwOjUyLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQs
IE5vdiAwMywgMjAyMSBhdCAwNjozNDoxNkFNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+IEhpLCBSb2dlcg0KPj4NCj4+IE9uIDI2LjEwLjIxIDE0OjMzLCBSb2dlciBQ
YXUgTW9ubsOpIHdyb3RlOg0KPj4+IE9uIFRodSwgU2VwIDMwLCAyMDIxIGF0IDEwOjUyOjIyQU0g
KzAzMDAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBkaWZmIC0tZ2l0IGEv
eGVuL2luY2x1ZGUveGVuL3BjaS5oIGIveGVuL2luY2x1ZGUveGVuL3BjaS5oDQo+Pj4+IGluZGV4
IDQzYjhhMDgxNzA3Ni4uMzMwMzNhM2E4ZjhkIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vaW5jbHVk
ZS94ZW4vcGNpLmgNCj4+Pj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3BjaS5oDQo+Pj4+IEBAIC0x
MzcsNiArMTM3LDI0IEBAIHN0cnVjdCBwY2lfZGV2IHsNCj4+Pj4gICAgICAgIHN0cnVjdCB2cGNp
ICp2cGNpOw0KPj4+PiAgICB9Ow0KPj4+PiAgICANCj4+Pj4gKyNpZmRlZiBDT05GSUdfSEFTX1ZQ
Q0lfR1VFU1RfU1VQUE9SVA0KPj4+PiArc3RydWN0IHZwY2lfZGV2IHsNCj4+Pj4gKyAgICBzdHJ1
Y3QgbGlzdF9oZWFkIGxpc3Q7DQo+Pj4+ICsgICAgLyogUGh5c2ljYWwgUENJIGRldmljZSB0aGlz
IHZpcnR1YWwgZGV2aWNlIGlzIGNvbm5lY3RlZCB0by4gKi8NCj4+Pj4gKyAgICBjb25zdCBzdHJ1
Y3QgcGNpX2RldiAqcGRldjsNCj4+Pj4gKyAgICAvKiBWaXJ0dWFsIFNCREYgb2YgdGhlIGRldmlj
ZS4gKi8NCj4+Pj4gKyAgICB1bmlvbiB7DQo+Pj4+ICsgICAgICAgIHN0cnVjdCB7DQo+Pj4+ICsg
ICAgICAgICAgICB1aW50OF90IGRldmZuOw0KPj4+PiArICAgICAgICAgICAgdWludDhfdCBidXM7
DQo+Pj4+ICsgICAgICAgICAgICB1aW50MTZfdCBzZWc7DQo+Pj4+ICsgICAgICAgIH07DQo+Pj4+
ICsgICAgICAgIHBjaV9zYmRmX3Qgc2JkZjsNCj4+Pj4gKyAgICB9Ow0KPj4+PiArICAgIHN0cnVj
dCBkb21haW4gKmRvbWFpbjsNCj4+Pj4gK307DQo+Pj4+ICsjZW5kaWYNCj4+PiBJIHdvbmRlciB3
aGV0aGVyIHRoaXMgaXMgc3RyaWN0bHkgbmVlZGVkLiBXb24ndCBpdCBiZSBlbm91Z2ggdG8gc3Rv
cmUNCj4+PiB0aGUgdmlydHVhbCAoaWU6IGd1ZXN0KSBzYmRmIGluc2lkZSB0aGUgZXhpc3Rpbmcg
dnBjaSBzdHJ1Y3Q/DQo+Pj4NCj4+PiBJdCB3b3VsZCBhdm9pZCB0aGUgb3ZlcmhlYWQgb2YgdGhl
IHRyYW5zbGF0aW9uIHlvdSBkbyBmcm9tIHBkZXYgLT4NCj4+PiB2ZGV2LCBhbmQgdGhlcmUgZG9l
c24ndCBzZWVtIHRvIGJlIGFueXRoaW5nIHJlbGV2YW50IHN0b3JlZCBpbg0KPj4+IHZwY2lfZGV2
IGFwYXJ0IGZyb20gdGhlIHZpcnR1YWwgc2JkZi4NCj4+IFRMO0RSIEl0IHNlZW1zIGl0IG1pZ2h0
IGJlIG5lZWRlZCBmcm9tIHBlcmZvcm1hbmNlIFBPVi4gSWYgbm90IGltcGxlbWVudGVkDQo+PiBm
b3IgZXZlcnkgTU1JTyB0cmFwIHdlIHVzZSBhIGdsb2JhbCBQQ0kgbG9jaywgZS5nLiBwY2lkZXZz
X3tsb2NrfHVubG9ja30uDQo+PiBOb3RlOiBwY2lkZXZzJyBsb2NrIGlzIGEgcmVjdXJzaXZlIGxv
Y2sNCj4+DQo+PiBUaGVyZSBhcmUgMiBzb3VyY2VzIG9mIGFjY2VzcyB0byB2aXJ0dWFsIGRldmlj
ZXM6DQo+PiAxLiBEdXJpbmcgaW5pdGlhbGl6YXRpb24gd2hlbiB3ZSBhZGQsIGFzc2lnbiBvciBk
ZS1hc3NpZ24gYSBQQ0kgZGV2aWNlDQo+PiAyLiBBdCBydW4tdGltZSB3aGVuIHdlIHRyYXAgY29u
ZmlndXJhdGlvbiBzcGFjZSBhY2Nlc3MgYW5kIG5lZWQgdG8NCj4+IHRyYW5zbGF0ZSB2aXJ0dWFs
IFNCREYgaW50byBwaHlzaWNhbCBTQkRGDQo+PiAzLiBBdCBsZWFzdCBkZS1hc3NpZ24gY2FuIHJ1
biBjb25jdXJyZW50bHkgd2l0aCBNTUlPIGhhbmRsZXJzDQo+Pg0KPj4gTm93IGxldCdzIHNlZSB3
aGljaCBsb2NrcyBhcmUgaW4gdXNlIHdoaWxlIGRvaW5nIHRoYXQuDQo+Pg0KPj4gMS4gTm8gc3Ry
dWN0IHZwY2lfZGV2IGlzIHVzZWQuDQo+PiAxLjEuIFdlIHJlbW92ZSB0aGUgc3RydWN0dXJlIGFu
ZCBqdXN0IGFkZCBwZGV2LT52cGNpLT5ndWVzdF9zYmRmIGFzIHlvdSBzdWdnZXN0DQo+PiAxLjIu
IFRvIHByb3RlY3QgdmlydHVhbCBkZXZpY2VzIHdlIHVzZSBwY2lkZXZzX3tsb2NrfHVubG9ja30N
Cj4+IDEuMy4gTG9ja2luZyBoYXBwZW5zIG9uIHN5c3RlbSBsZXZlbA0KPj4NCj4+IDIuIHN0cnVj
dCB2cGNpX2RldiBpcyB1c2VkDQo+PiAyLjEuIFdlIGhhdmUgYSBwZXItZG9tYWluIGxvY2sgdmRl
dl9sb2NrDQo+PiAyLjIuIExvY2tpbmcgaGFwcGVucyBvbiBwZXIgZG9tYWluIGxldmVsDQo+Pg0K
Pj4gVG8gY29tcGFyZSB0aGUgdHdvOg0KPj4NCj4+IDEuIFdpdGhvdXQgdnBjaV9kZXYNCj4+IHBy
b3M6IG11Y2ggc2ltcGxlciBjb2RlDQo+PiBwcm9zL2NvbnM6IGdsb2JhbCBsb2NrIGlzIHVzZWQg
ZHVyaW5nIE1NSU8gaGFuZGxpbmcsIGJ1dCBpdCBpcyBhIHJlY3Vyc2l2ZSBsb2NrDQo+Pg0KPj4g
Mi4gV2l0aCB2cGNfZGV2DQo+PiBwcm9zOiBwZXItZG9tYWluIGxvY2tpbmcNCj4+IGNvbnM6IG1v
cmUgY29kZQ0KPj4NCj4+IEkgaGF2ZSBpbXBsZW1lbnRlZCB0aGUgdHdvIG1ldGhvZHMgYW5kIHdl
IG5lZWQgdG8gZGVjaWRlDQo+PiB3aGljaCByb3V0ZSB3ZSBnby4NCj4gV2UgY291bGQgYWx3YXlz
IHNlZSBhYm91dCBjb252ZXJ0aW5nIHRoZSBwY2lkZXZzIGxvY2sgaW50byBhIHJ3IG9uZSBpZg0K
PiBpdCB0dXJucyBvdXQgdGhlcmUncyB0b28gbXVjaCBjb250ZW50aW9uLiBQQ0kgY29uZmlnIHNw
YWNlIGFjY2Vzc2VzDQo+IHNob3VsZG4ndCBiZSB0aGF0IGNvbW1vbiBvciBwZXJmb3JtYW5jZSBj
cml0aWNhbCwgc28gaGF2aW5nIHNvbWUNCj4gY29udGVudGlvbiBtaWdodCBub3QgYmUgbm90aWNl
YWJsZS4NCj4NCj4gVEJIIEkgd291bGQgc3RhcnQgd2l0aCB0aGUgc2ltcGxlciBzb2x1dGlvbiAo
YWRkIGd1ZXN0X3NiZGYgYW5kIHVzZQ0KPiBwY2kgbG9jaykgYW5kIG1vdmUgdG8gc29tZXRoaW5n
IG1vcmUgY29tcGxleCBvbmNlIGlzc3VlcyBhcmUNCj4gaWRlbnRpZmllZC4NCk9rLCB0aGUgY29k
ZSBpcyBpbmRlZWQgd2F5IHNpbXBsZXIgd2l0aCBndWVzdF9zYmRmIGFuZCBwY2kgbG9jaw0KU28s
IEknbGwgdXNlIHRoaXMgYXBwcm9hY2ggZm9yIG5vdw0KPg0KPiBSZWdhcmRzLCBSb2dlci4NClRo
YW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:12:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:12:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220632.381961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCJE-0005Pi-Vc; Wed, 03 Nov 2021 09:11:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220632.381961; Wed, 03 Nov 2021 09:11:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCJE-0005Pb-S0; Wed, 03 Nov 2021 09:11:52 +0000
Received: by outflank-mailman (input) for mailman id 220632;
 Wed, 03 Nov 2021 09:11:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miCJD-0005PR-Hd; Wed, 03 Nov 2021 09:11:51 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miCJD-0004tm-C5; Wed, 03 Nov 2021 09:11:51 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miCJD-00006Z-1w; Wed, 03 Nov 2021 09:11:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miCJD-0005vp-0b; Wed, 03 Nov 2021 09:11:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fUX/rOc071xmxP+FcZmkoODlXn+i5mG4L9Ab0OCD3IA=; b=VFRV2NrqPE1jE7hoBjFfaIo/O3
	wQK8iGZIOPgoHQGqi76yjUTTIWEy6VEY27lZYlDpoIAtLxydz4xlv4jTSK9Q4fIfs/t/nz5NThVwK
	Yeabam8EUWcUVFwAOd783FNCe+fE8Lx/ZExQo9I89bCp6QTTXo8XmXmoL7aIUC8EPyl4=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166024-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166024: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=935fbcf9da8d86ad2aa07e2d84e9615b5a011136
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 09:11:51 +0000

flight 166024 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166024/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              935fbcf9da8d86ad2aa07e2d84e9615b5a011136
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  481 days
Failing since        151818  2020-07-11 04:18:52 Z  480 days  466 attempts
Testing same since   166024  2021-11-03 04:18:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 81775 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:12:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:12:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220634.381975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCJK-0005hd-9C; Wed, 03 Nov 2021 09:11:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220634.381975; Wed, 03 Nov 2021 09:11:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCJK-0005hW-4q; Wed, 03 Nov 2021 09:11:58 +0000
Received: by outflank-mailman (input) for mailman id 220634;
 Wed, 03 Nov 2021 09:11:56 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miCJI-0005gv-PO
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 09:11:56 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5cd55933-3aa0-48de-b7da-6008b5615453;
 Wed, 03 Nov 2021 09:11:55 +0000 (UTC)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2054.outbound.protection.outlook.com [104.47.13.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-24--jyJ-0dPPtmghiERuQ8haQ-1; Wed, 03 Nov 2021 10:11:53 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4384.eurprd04.prod.outlook.com (2603:10a6:803:6f::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 09:11:51 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 09:11:51 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0155.eurprd06.prod.outlook.com (2603:10a6:20b:45c::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Wed, 3 Nov 2021 09:11:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5cd55933-3aa0-48de-b7da-6008b5615453
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635930714;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=KB7qvcZ5ZdI5tYHH3MA2gkI2rjK8w9Mc2OITaRW/AxE=;
	b=arUsos4d630NscV3FqhA2AhNStn4oAOpvKltIHGOHbURagdT0MS4Fg4w/Eu20Cr9s3DH6/
	F4OAvu/dRor9yZf4SkJDRP3vUebB+cMVSFwhfK1AsbaQvjVk/dhQok8sQ/fSNQ8P0bSckB
	E/RWuHqNjMwEi3QoNYGNKbOLHpEXO2I=
X-MC-Unique: -jyJ-0dPPtmghiERuQ8haQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=No8gmwPlap9jrlNbUXhRmtJ/J15tcJYzAB6j9EUxQNcws9UvfsNQEfp+GOyK/id9i6WbjTynRCm6rAs7S9TI3fQUc0iFV52LKzOWReYWQh7c5JRyixoH/bed9GHYbRDccfmE0qIxguE0WKnJK7fX9yLgqjbJbwpgj9fThCdss8Q56RI/Ngz8jwDtjOydSRSRh8CAspuLGR0H9BVwBijDAKYeJvGeJqxkfpaX+17Olymq/73ph23mTqFDSJG3SKN1fDVb8xMWgm+RAGHhoxamahEKcdeTUJdb9g4Ia/p93kA/9i5qQxM9nEABTlKH6EQkU6JT4scLGqfiQVJ2pVJwbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=URb2oE3rs2lP9ZEQw8m4FV+wjJplt6bgithgjRh/sWs=;
 b=NEVvS6tQbfENFauZ2fKCQFBQis+GOUmcK8peXIRa4+2u8J1V885KHtlbqJGRZT7F/UTaJP8zkEDBNYJnN+2T8gEuN6DGq+4yvChK94BiurQq4g+B2q8N6I4AYXOYd0kcwFjensXM4I7YAGIoiZ/tMOrdlxsiWVpG9/XZBqqX+BajxMG4aLyEdZHDGd4yoxpfwzd7dem6kwv2InpHFZeGu8DfjpC2Kqr+/lcCnWdf2a9GCGkiKy0NtWJ9AVxshvi6j4E1QuSphFM8MFgFzEqBYfTpRol/VWldB4dZG2sj7o4RdX1f70kFNcrX+670evvGeYER2cu4270x24WjzM47vA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
Date: Wed, 3 Nov 2021 10:11:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>, Michal Orzel <michal.orzel@arm.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0155.eurprd06.prod.outlook.com
 (2603:10a6:20b:45c::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 92282bdc-ea36-41c2-42c3-08d99ea9f8ba
X-MS-TrafficTypeDiagnostic: VI1PR04MB4384:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43847728A5271691EE517C02B38C9@VI1PR04MB4384.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Ma42J24fqyEZQdnNjM+ho16irDPkIORtbO/L7iVPbmi/MuiW5QSRQehbXJ+Pmq/6G0azMEKMWDkE2ptv0lqrg0S+w7I8SZj+Ji1iOdgBv8nBY8pjM3MJXRXxvjCmTGSrsC1zfFHdR4BxhhCjYfQs8ijfZfzVL33piNEVojc53/SXE+Nk2OSxcAly5JI3v4SrE+wwUmZp4SXLRe1iVcsyEyPKFp4TH9ITEt/O0GkmNR33Oa+2/qkrFIfQfhcog5mbqbvdzRMhvZwel0tPXsXqAcOzR695ByDTkek2RvqGUgCN7k8Z+xJ0qCg2wBR7X0vGAFq3SykVj+I3wbSdXWzd5jKVs9VsW1zEkRmc7Cs7wOdU3/q04Pp4SKImLXEGq0kD7/rkvrHRFsQ0qKJkqOSaycEYDy/UYdZu5pWX6TEKJaRX8NJTJBEYDNhEBeqJJKP5G0bpdqhQANNEAX7WH39S0KbmBqCaswW565Ef4jd+wfDA+ifymWuydrniqY3/Uqy+gRem/W8Gzk3nawnD7vEd1KNxdmVsvGb6zY2QkrDn1klNfz6iV+UoHIGXIAKR1jqoa8IKRsK+8q9k03+0wGm8NW1YvKGi2L4u36ApLU63zHJXsFV7JeIaf6KN+nyoDZW0GpUpj9o4L5/6Va4TlvtmWgj0WYzrZ/SaX2a1wh2qOiylCYfSqQAf0igcrRd6vzHfE10vbO9pfQ5F62EOtIEFxx1pCvnn1bae86a2AdOmqJ7sSgGCF0txBeNE8vm+4gr/
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66556008)(508600001)(31686004)(110136005)(8676002)(16576012)(956004)(31696002)(6486002)(36756003)(316002)(66476007)(54906003)(2616005)(66946007)(186003)(7416002)(26005)(38100700002)(5660300002)(83380400001)(86362001)(4326008)(8936002)(2906002)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?jCpe8kOPyfoDt5xYOKLJq+7Y/uJ6SnqHRnifoLDvMaAZJHlhwfFz67No4ty+?=
 =?us-ascii?Q?x+vbwdwvFlhtlVFSJ0qvQGHnQNENgVBY5ZsmoDJK2b9eBJdtdNSWzem5V2V+?=
 =?us-ascii?Q?CIx2p7nO4+fcGVZLs/w2Z2nadLIwAlIKqp6bKj0Q9frXUJy4ABrQOknIkyCJ?=
 =?us-ascii?Q?jWfSepmFrkfGyU/nZTmTl7o8bSQNYWmrNHmvnDZsGU4M32qswo73FSn5Nqix?=
 =?us-ascii?Q?8Ebs1p2Vsm05bGjXtEupMLdIUm9xarKpaSpGo4IvHGN13L2b8+Ka5W930osT?=
 =?us-ascii?Q?b0zc4+Qk+vxBW2/Uy2WT0E3l2jOPcH/QR75yteHq4LoRI3vs+UIIcevU9RYL?=
 =?us-ascii?Q?RnDDWdul1PPBYJxs51DmIxphqFFDLTpdKiXQT1H73uig2Le4zS27FoJ5l1QD?=
 =?us-ascii?Q?vi84uP6QZ78UEr4dEPUuM0NdzNzQ7VFofzXlKCn/fooOQKSmgzFPIi/t+7M6?=
 =?us-ascii?Q?FHu3smUthcl219AHIDwWuN3HY2+bwToDAEROmFzvnO5RpqDkUUC+CkijBx1z?=
 =?us-ascii?Q?3n6a1wv2luBFRk2myTU9d3zjJj23V+iJbwEsYhWymtRahnzPwMN6l1FL0FBX?=
 =?us-ascii?Q?h8JzXLXmxHrTD9HLWvgIgZcnN/IwvtCDUBHitZtkUX9dorYd9fFXKRPU9g+/?=
 =?us-ascii?Q?eFQjA+G189wA89LZ2eSyDTswFAyQ3pFW+3+wtQOIT0JDq4Roh33HURlyWxln?=
 =?us-ascii?Q?c2ZWBUuzIzBxlKsFDYrVu70UywfpowFIJUE+A/m5kxRgkXxRtWVIFxhVz7/w?=
 =?us-ascii?Q?xqC/pzMZNR417477RjndC82pSGRy976V03VcuyMyNGfx3CyqLeH+ckJEuTyb?=
 =?us-ascii?Q?HQNyBxrJvKWM9S/ZOfGJa9jNCJvN7xYRbhiBr0grPlbXdR7xz4QRiqvwlnwt?=
 =?us-ascii?Q?i7QKbJupgdyMQ0m4SmocfvtoTsn8hX0hls9PrTziwCUJJQ2ENE2q5PS2eRf4?=
 =?us-ascii?Q?gC5Ja33toiqZSszSypaA+kva/7GLn0KCGJ+cUiPMUaMTFU44UKIa9D8iQqc8?=
 =?us-ascii?Q?Rcox+KT3iQpbJsgBzVca1NNZBLMZXqAOqSicq8etQdTvJK9WFLt93jy/qJPn?=
 =?us-ascii?Q?yazIn9WYxZo/tajTuTNtH4KOzIvM94YvzoMxmqiYKNPsrb0hG+OZOPSUgnIm?=
 =?us-ascii?Q?VsVA4ikSx2MtA693iwGWi9OLq0tjd9aT/SprdMvg+UIQaCM30Dl5lBK4MozV?=
 =?us-ascii?Q?L5BGojZW5hwdwQPbvPY2BuZu/kts0YS4Kqvt9RMqPSBPIMh8UAmzTSeLTuhJ?=
 =?us-ascii?Q?uTNjewulNAZpuKDybGlHuVOERC9FEqYiYG10jNrc2XY5snj0R2shX1pHYGRW?=
 =?us-ascii?Q?uQT4CvapA6cKGVFxZsS/HsXb0wHhNOT3tQ5n/CU8XIvZ1TkqXvoiwcDX1iyb?=
 =?us-ascii?Q?6zb8I3IcRNLAb3vJPiWrX9oEdRwXlNopLWisfJqV+jueb5jiYAy8MLgrvR2h?=
 =?us-ascii?Q?AAgqIxwo1p843nokP7V4k/4FsJ/tU/8RP3LMGlPg8YKfB8XcaGpcbFps+Wm1?=
 =?us-ascii?Q?GpSWaml6qq+2QS7uaiO8f2XyEC4OEr99RepZbRvp40E3VZOz/D8aoWfPV6Kz?=
 =?us-ascii?Q?w896uD5oD8p0/di4M+e/e+EkxKjCqzhTI0DT9EQsW+bCHOvU+7c2giVvkqF9?=
 =?us-ascii?Q?SBtEmw1fi8pDGT+y8GCVBAo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 92282bdc-ea36-41c2-42c3-08d99ea9f8ba
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 09:11:51.0722
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SgercSUcRZzC/ePDNoOS9TIBI5AKn3W2rsX98SIoclUsCCmXM57lPHurskeyOHGVZwWk0awk9r7Mq7Gl/gN9+g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4384

On 03.11.2021 09:53, Oleksandr Andrushchenko wrote:
>=20
>=20
> On 02.11.21 16:10, Oleksandr Andrushchenko wrote:
>>
>> On 02.11.21 15:54, Jan Beulich wrote:
>>> On 02.11.2021 12:50, Roger Pau Monn=C3=A9 wrote:
>>>> On Tue, Nov 02, 2021 at 12:19:13PM +0100, Jan Beulich wrote:
>>>>> On 26.10.2021 12:52, Roger Pau Monn=C3=A9 wrote:
>>>>>> On Thu, Sep 30, 2021 at 10:52:20AM +0300, Oleksandr Andrushchenko wr=
ote:
>>>>>>> --- a/xen/drivers/vpci/header.c
>>>>>>> +++ b/xen/drivers/vpci/header.c
>>>>>>> @@ -451,6 +451,32 @@ static void cmd_write(const struct pci_dev *pd=
ev, unsigned int reg,
>>>>>>>            pci_conf_write16(pdev->sbdf, reg, cmd);
>>>>>>>    }
>>>>>>>   =20
>>>>>>> +static void guest_cmd_write(const struct pci_dev *pdev, unsigned i=
nt reg,
>>>>>>> +                            uint32_t cmd, void *data)
>>>>>>> +{
>>>>>>> +    /* TODO: Add proper emulation for all bits of the command regi=
ster. */
>>>>>>> +
>>>>>>> +    if ( (cmd & PCI_COMMAND_INTX_DISABLE) =3D=3D 0 )
>>>>>>> +    {
>>>>>>> +        /*
>>>>>>> +         * Guest wants to enable INTx. It can't be enabled if:
>>>>>>> +         *  - host has INTx disabled
>>>>>>> +         *  - MSI/MSI-X enabled
>>>>>>> +         */
>>>>>>> +        if ( pdev->vpci->msi->enabled )
>>>>>>> +            cmd |=3D PCI_COMMAND_INTX_DISABLE;
>>>>>>> +        else
>>>>>>> +        {
>>>>>>> +            uint16_t current_cmd =3D pci_conf_read16(pdev->sbdf, r=
eg);
>>>>>>> +
>>>>>>> +            if ( current_cmd & PCI_COMMAND_INTX_DISABLE )
>>>>>>> +                cmd |=3D PCI_COMMAND_INTX_DISABLE;
>>>>>>> +        }
>>>>>> This last part should be Arm specific. On other architectures we
>>>>>> likely want the guest to modify INTx disable in order to select the
>>>>>> interrupt delivery mode for the device.
>>>>> We cannot allow a guest to clear the bit when it has MSI / MSI-X
>>>>> enabled - only one of the three is supposed to be active at a time.
>>>>> (IOW similarly we cannot allow a guest to enable MSI / MSI-X when
>>>>> the bit is clear.)
>>>> Sure, but this code is making the bit sticky, by not allowing
>>>> INTX_DISABLE to be cleared once set. We do not want that behavior on
>>>> x86, as a guest can decide to use MSI or INTx. The else branch needs
>>>> to be Arm only.
>>> Isn't the "else" part questionable even on Arm?
>> It is. Once fixed I can't see anything Arm specific here
> Well, I have looked at the code one more time and everything seems to
> be ok wrt that sticky bit: we have 2 handlers which are cmd_write and
> guest_cmd_write. The former is used for the hardware domain and has
> *no restrictions* on writing PCI_COMMAND register contents and the later
> is only used for guests and which does have restrictions applied in
> emulate_cmd_reg function.
>=20
> So, for the hardware domain, there is no "sticky" bit possible and for th=
e
> guest domains if the physical contents of the PCI_COMMAND register
> has PCI_COMMAND_INTX_DISABLE bit set then the guest is enforced to
> use PCI_COMMAND_INTX_DISABLE bit set.
>=20
> So, from hardware domain POV, this should not be a problem, but from
> guests view it can. Let's imagine that the hardware domain can handle
> all types of interrupts, e.g. INTx, MSI, MSI-X. In this case the hardware
> domain can decide what can be used for the interrupt source (again, no
> restriction here) and program PCI_COMMAND accordingly.
> Guest domains need to align with this configuration, e.g. if INTx was dis=
abled
> by the hardware domain then INTx cannot be enabled for guests

Why? It's the DomU that's in control of the device, so it ought to
be able to pick any of the three. I don't think Dom0 is involved in
handling of interrupts from the device, and hence its own "dislike"
of INTx ought to only extend to the period of time where Dom0 is
controlling the device. This would be different if Xen's view was
different, but as we seem to agree Xen's role here is solely to
prevent invalid combinations getting established in hardware.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:18:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:18:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220648.381986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCPj-0006kn-6b; Wed, 03 Nov 2021 09:18:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220648.381986; Wed, 03 Nov 2021 09:18:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCPj-0006kg-3N; Wed, 03 Nov 2021 09:18:35 +0000
Received: by outflank-mailman (input) for mailman id 220648;
 Wed, 03 Nov 2021 09:18:33 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miCPh-0006ka-NR
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 09:18:33 +0000
Received: from mx0a-0039f301.pphosted.com (unknown [148.163.133.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id a4ade422-8d7b-4f8a-832f-f1b3c0e526e0;
 Wed, 03 Nov 2021 09:18:32 +0000 (UTC)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A39F5ar003191;
 Wed, 3 Nov 2021 09:18:28 GMT
Received: from eur04-db3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2051.outbound.protection.outlook.com [104.47.12.51])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c3qmer0cb-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 09:18:28 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3376.eurprd03.prod.outlook.com (2603:10a6:803:1d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.19; Wed, 3 Nov
 2021 09:18:03 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 09:18:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4ade422-8d7b-4f8a-832f-f1b3c0e526e0
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NzT5AGeRpTZlhA5Fk9zEaTUDvCIDY5MdPjzfmyG/KJQ0LdbcC0CY2myN7d9IjZOrtbegEYykAaSx1NBfgdaQrfE7j3pT7nJmIZxBoIFJcNW5D692VHq2XqE4nenRbQSe6jGeqlSNKjE+XXfq+paSpNK8gckUzHEGyFm21GQqvylPeLdgkApqojq3E+ggkXmnsUHFlyiEiC/np153hzba84Zy2iuRDNHM/oEQcctuJiN77uz46wj2SxqD0CtfOjhCjyyI9EWoCThfOlQPyNTErrIQs/SsV5/YvGcPw8XrKRkWsvhT+eysDw41M0okZc/22dwNntbGn5FYb/wXrjmlyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XnzZ8TvgqhZS5MW6fpjCVIyDv0MGb/fQkMZ3v1A+WPY=;
 b=mwmVdxllXAuWdIDyGuEmyLoeVcZVajqBidm4FMsF0KM5j3rfNlyeZWAa5GjcZfVx6jIX+Iqlh8pWmw2Kou3zDS/A3K2ZOdkqdpsVFoMxrCzO53wifkWWDM6wPM/6DfgHHwka3pJ4ggHvpnoGCkD/Xm80armai7neCeBA70tms2RclOgsfWFZBQpFBivkEvRh5lVu7ZQJ7Lx0GFKY/dMf3fyv27UO57fxFPHEaandJjBqAmq/USPJTwBYu9lKhBO1P6QbM1Amr5vXZT6e+7JaXvQ2rFLA9tUSPqZDimoZwfItqTdZmbg1aQPHm+IA1rps7BgDr+vEPPIxm3Xz2aj4tw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XnzZ8TvgqhZS5MW6fpjCVIyDv0MGb/fQkMZ3v1A+WPY=;
 b=CuzcPCbcwSkBZOtwgmsKWxnCXywf8SVobeoVCB4msoYSsOR5COgUzlhzrrwyyN6LSE+1i29Y+xqI5eXFMONS/2DrOOi/IlxOs+f0nR8st81k62BlRHqgh6U2ZV/qtl6hhbmkVrsrOX8LqUgVi7Tx8uug29Xauu1BKLY9ep/1o3sL8W1yTRKQjh3XYSHH4bRqAo0cat0kfZ0d+KdfFkTL3pPQSxQDXfzs4dvT4vJe0mYXJZnwyiFL3Pa+y73VA1sjTVAGexFEnyvpjNhlsq201ZFSlNyESDE10xGSsEdD2Dne2pQQk9c49nT0p5GTRJ6Qb8DMmIO2H1lsnYtCKoqQTw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Michal Orzel <michal.orzel@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: 
 AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUICAATmxAIAABTcAgAABvgA=
Date: Wed, 3 Nov 2021 09:18:03 +0000
Message-ID: <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
In-Reply-To: <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ed8d7564-0ef7-4146-60db-08d99eaad6d7
x-ms-traffictypediagnostic: VI1PR0302MB3376:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB337662649EBA42EFB5AD2297E78C9@VI1PR0302MB3376.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 rGubL5LPdzmRCpXMjTAag0O3LbVB2DWkAL/bqLwdq96dWToQSq1AQQgtNtKC8f1MEoSIIOl1/yKSeGfWLEgIC3jwh1RChBHaqTrY8jEoiDG0PW/l2oCy7UyGI1v+C7M1a3z+6BSftZU+X+PuRA0JFBdxYON7gHagw87kcOKCaLoYSLqxqwj6BGapOCPGu0Fe0/TfJZrx21cTwFhRlZ8fBMHEWDfBK1S3DnVP/pjYxWtQ9qUrCmj71jXeSKDygbaEFoNEEpFr7xgsdK7soGURmTwGPw5icm8/RJQjhkk+aSQDxrkear3YdJ3wiQNN8wsX7GvkzCfRaKyoR0Q8oRx0SaudlTvJq8mv+JTzXTj0VE4Ks699esPKrZg9oQwzocwkovoQffnY2aylM2ZWmAOiWU/RWSF/tcmV6X69j2iKnvDvN4niOehnRb/iggE4o2j+TklCqzqdqERUPX+zRnffEGF5yGyxxAHtJmtoXA0gWDwwLOyH7F8EQSIm8yzkHbuBdmCIaxgJM1AqjWWNi9ZTmZ1DiF1IHTs25T00++HmqmlNiLJTjZmUddzZsPWj37qXbcf0AQl9oLSTH1WSXe79k7TdMEHZvLxYFVk6XEAN5qn07FBiJBeFzK/kXiA4RzGAgnrEHSq8Cb6e8kSG9QPQGdhDMGdBrT2nZGtG1UpIwQ7OT5bgqaf0+tngSaNnjmWHjnFdkjWSjiKth9O3ApIx1ZIwS1pI/CL+ZD2fdRni3zOl+cfjhT7AzfTBu49MBSBx
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66946007)(76116006)(38100700002)(4326008)(91956017)(66556008)(38070700005)(122000001)(2906002)(64756008)(5660300002)(186003)(53546011)(6506007)(8676002)(8936002)(36756003)(66476007)(71200400001)(66446008)(6512007)(6486002)(31696002)(26005)(54906003)(110136005)(107886003)(83380400001)(31686004)(508600001)(316002)(86362001)(2616005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?NDZ3cUorclZ6dmZLM0RKSWJhTVptbmdhajRSVmN2WlpDQzNmNWFJRndReVVY?=
 =?utf-8?B?UDYyK0IxTXV0TjVza2labkw1L1BrY0xrd1kxTUEzMFVtcFRQQXp5ZEpwOW50?=
 =?utf-8?B?TXdiNlhmWldra1JLRENyU2Nkd214Y1FvNndQUWJHTnRNYjdNaUdNK1Brdkc0?=
 =?utf-8?B?TTFWMWNwNTA0b3BiNER2L2V3ZXdXVTNwV215TmNCUmlzcGxKV2YwbnU0S1FK?=
 =?utf-8?B?emRYNTVkRUVnRUpZZlZGZStLNFNWUGRxcFkyTVB2R3V6NjZRVjBVQzRFUVBu?=
 =?utf-8?B?WGZ0TnFzZVRNMXpqM3Z2RHlva0hFd1NGZHdrZmhWdGhab3pzOEcvRkhic3Nu?=
 =?utf-8?B?YkIxUHFvaE91ZzdscXNGblREWk92S1pxWGFoY09jcHZ4MTBEVTBnbS82RlZK?=
 =?utf-8?B?aGNlTzFQY3U2SnZoWThMd3d2dnBpZHliS09hSTZBVGtUeVo1MmFHbUxkcFZJ?=
 =?utf-8?B?bVk2ckEzZFVPT3Btc3RpZ2c1VFU4YU5tMG1pN0JxZXh4VHlsNGxpczE4NFZl?=
 =?utf-8?B?Y3FkMlYxaUw3TTVnL0hOQjZ1bEFwYTk5UUtRRXlVL2E2S0VUaVo0RUI2aWov?=
 =?utf-8?B?RHdpL2xJU3YvWXVvd1orakoyYnZBNHhLZWt0K3RRV0dDQlZ6dkZIdnB0eERC?=
 =?utf-8?B?TkM0RkJTRkVnUlRMMTBsVm0rM3Jzc2FaR29kSVptekowYnBwVHIwWUIvdk1k?=
 =?utf-8?B?aCtXUzF4V01DdUhMZHNhdE1mVEVRdGlrTXYydlN1a3BBTExlY3ZvT0ZaUVkr?=
 =?utf-8?B?SXZJdXFxZHNSZjhCajNlUUZhNGFUSFJzYm5rWjd4aWhrOFlmeGFKTDM2REpE?=
 =?utf-8?B?YUM0SGUvVkZwMGF6VFV5WTNrSjUrU0ljRHcwOHd3OENLOEl4U2lVcUJGVjhz?=
 =?utf-8?B?UkxQdWx5c1JqQVFrVXY5emE1bUJxakh5cWhsdU5ncitPZVNmaVllT3IyY3V1?=
 =?utf-8?B?ZnQ3SzZGN1ZGYkFibGd4TGhXZzNqRmVWTy9kbm9uZVBER3FqRWRSS2t2K3p3?=
 =?utf-8?B?K3E1ZnI4WHJCU1ZpVk1OYjJYQlVldXVwVDA3S0IxbU8yT0g4QUl2NkJJajl0?=
 =?utf-8?B?dE1MdU9HN09YMlROcHA4ejVrdGJVSi9YbUhwbDVGbitQbnJuN0pVK2I5TjdM?=
 =?utf-8?B?VkNFdW1vVnBrL0FkOHdRdmdudWd3UjhEMGdGR0pISDllNVlqWXRwOGE2cDZU?=
 =?utf-8?B?ZERLZVdVS2w1WWZobWZhMzhpYjQ5N201em1KUHJvOUlCYmI4SUNVQWR4cjNH?=
 =?utf-8?B?RlJoZEZvT1diaFQvdHRrdjAzS29LL2pRZzJPRkxsSG43UlFqRGRIYkZJMEQ1?=
 =?utf-8?B?bTRCZGs1R01qeHlTRDE4eThqK0tUQmFmbVRiK0VsSkFyV1NWWTdMRjhoc0dL?=
 =?utf-8?B?S21KcG1oSGlJSDVBRzNuSXRXMmNBb3YxV2JDTk9BZnlwTU1Sdk1BTmJNZm1P?=
 =?utf-8?B?NHcrc0xaU1ViZGZBMTIzOFQ3TWoxTmF0QS80UWNPaEdTMDlDQU81Z0pKV0hS?=
 =?utf-8?B?aTRqYUZLOHhpTEFXRERCL1RYc2FqeXBuanp4aWxMUzBBdWtHNFFFUFRWYjI2?=
 =?utf-8?B?dUVkV21EZ05BVzExZ3EveDA5ZkpaQllNQjFHM1k5Kyt4Q3dNT1haUVNVQ093?=
 =?utf-8?B?Qm1TejNSZ3dLME43RmVBMDY0bzdidktTeklZRVkySEdqYm1iaDg4SVdKTVoz?=
 =?utf-8?B?L0xraE1rRVFnNHVpMzcxZTkxUzBpYXBmWUV1djliNEZxd3pTbllYMCsybmlt?=
 =?utf-8?B?N1VSUlFzeS9CeWlmTndFVzAyUFloZFhQSnRvN0ViMkcySklKMk1maWlBN05v?=
 =?utf-8?B?NGhVbmdaMjNKSlFwRm0xN1RlNUZmNXNLajhPVEg3aTVYVFloTlNuVWNPeGM5?=
 =?utf-8?B?a0lKV1kzUTV4NDlDSXNCTWw5UG1xNVlhVGZOQXUvYkUvVElQaUZPTC8wdjlM?=
 =?utf-8?B?U1gzLzVZT2NPZ3NvOVdNZE01UU5NamRMRUg4WjJqeldER0ZVUnppQzFneGU2?=
 =?utf-8?B?VVZUcVo5VzhFMHMyQ1lBSkRsN0l4TThZcVljMGF0bzQxcmh3UVlpVmRDUnY0?=
 =?utf-8?B?SEhPcXJSenZTeWlLRXFPcTZYSnp0Z21oWGkyQlo2Zy9iMEVUMVB1VG9pZFhL?=
 =?utf-8?B?NmNaaTBpZFFNbm9ELzdMN2hNcE1ZRWpnaWRpRnZIUTFyVHF3dWk2eURRaEtJ?=
 =?utf-8?B?NTNORFpCOWZ3WE1icUhrS3NMbW53YnRzUVB6TUtZUkxLY3NDSENEdlJ5TTYz?=
 =?utf-8?B?bUpWazkyZ3R3MVdwbjg2Rk9EWUlJTmoybVA4SU5vdDlsRzV6Vmk0ZC9nMjVH?=
 =?utf-8?B?ZHd6SmIwK3VTRzQ3YTJqSitGV3BxWkRJUU1kcXkvN2FScXhKVG1Zdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2CCFA4EA75DA7547B7D9260C37644B4D@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed8d7564-0ef7-4146-60db-08d99eaad6d7
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 09:18:03.4648
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: uSQo/ChDko5yI4ac5PGdsLIMDXLzXaTub/BiSzpDzodXJoehtuuFOnVvweAcNDPvSGLuiuOlS8+hkGlcg4WTisK6zrWMIGY7iuAlVUexQ9iMa24RAXQ8/03TIePzZT97
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3376
X-Proofpoint-GUID: XLEuTfT2qeBCCQAk74SEM2a1qrG5ba7S
X-Proofpoint-ORIG-GUID: XLEuTfT2qeBCCQAk74SEM2a1qrG5ba7S
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_02,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0
 lowpriorityscore=0 malwarescore=0 adultscore=0 spamscore=0 suspectscore=0
 impostorscore=0 mlxlogscore=746 priorityscore=1501 bulkscore=0 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111030053

DQoNCk9uIDAzLjExLjIxIDExOjExLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDMuMTEuMjAy
MSAwOTo1MywgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMDIuMTEu
MjEgMTY6MTAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+IE9uIDAyLjExLjIx
IDE1OjU0LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4gT24gMDIuMTEuMjAyMSAxMjo1MCwgUm9n
ZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+IE9uIFR1ZSwgTm92IDAyLCAyMDIxIGF0IDEyOjE5
OjEzUE0gKzAxMDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+Pj4+IE9uIDI2LjEwLjIwMjEgMTI6
NTIsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+Pj4+IE9uIFRodSwgU2VwIDMwLCAyMDIx
IGF0IDEwOjUyOjIwQU0gKzAzMDAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+
Pj4+Pj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4+Pj4+Pj4gKysrIGIveGVu
L2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4+Pj4+Pj4gQEAgLTQ1MSw2ICs0NTEsMzIgQEAgc3Rh
dGljIHZvaWQgY21kX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBp
bnQgcmVnLA0KPj4+Pj4+Pj4gICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUxNihwZGV2LT5zYmRm
LCByZWcsIGNtZCk7DQo+Pj4+Pj4+PiAgICAgfQ0KPj4+Pj4+Pj4gICAgIA0KPj4+Pj4+Pj4gK3N0
YXRpYyB2b2lkIGd1ZXN0X2NtZF93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5z
aWduZWQgaW50IHJlZywNCj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDMyX3QgY21kLCB2b2lkICpkYXRhKQ0KPj4+Pj4+Pj4gK3sNCj4+Pj4+Pj4+ICsgICAgLyogVE9E
TzogQWRkIHByb3BlciBlbXVsYXRpb24gZm9yIGFsbCBiaXRzIG9mIHRoZSBjb21tYW5kIHJlZ2lz
dGVyLiAqLw0KPj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4gKyAgICBpZiAoIChjbWQgJiBQQ0lfQ09NTUFO
RF9JTlRYX0RJU0FCTEUpID09IDAgKQ0KPj4+Pj4+Pj4gKyAgICB7DQo+Pj4+Pj4+PiArICAgICAg
ICAvKg0KPj4+Pj4+Pj4gKyAgICAgICAgICogR3Vlc3Qgd2FudHMgdG8gZW5hYmxlIElOVHguIEl0
IGNhbid0IGJlIGVuYWJsZWQgaWY6DQo+Pj4+Pj4+PiArICAgICAgICAgKiAgLSBob3N0IGhhcyBJ
TlR4IGRpc2FibGVkDQo+Pj4+Pj4+PiArICAgICAgICAgKiAgLSBNU0kvTVNJLVggZW5hYmxlZA0K
Pj4+Pj4+Pj4gKyAgICAgICAgICovDQo+Pj4+Pj4+PiArICAgICAgICBpZiAoIHBkZXYtPnZwY2kt
Pm1zaS0+ZW5hYmxlZCApDQo+Pj4+Pj4+PiArICAgICAgICAgICAgY21kIHw9IFBDSV9DT01NQU5E
X0lOVFhfRElTQUJMRTsNCj4+Pj4+Pj4+ICsgICAgICAgIGVsc2UNCj4+Pj4+Pj4+ICsgICAgICAg
IHsNCj4+Pj4+Pj4+ICsgICAgICAgICAgICB1aW50MTZfdCBjdXJyZW50X2NtZCA9IHBjaV9jb25m
X3JlYWQxNihwZGV2LT5zYmRmLCByZWcpOw0KPj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4gKyAgICAgICAg
ICAgIGlmICggY3VycmVudF9jbWQgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUgKQ0KPj4+Pj4+
Pj4gKyAgICAgICAgICAgICAgICBjbWQgfD0gUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFOw0KPj4+
Pj4+Pj4gKyAgICAgICAgfQ0KPj4+Pj4+PiBUaGlzIGxhc3QgcGFydCBzaG91bGQgYmUgQXJtIHNw
ZWNpZmljLiBPbiBvdGhlciBhcmNoaXRlY3R1cmVzIHdlDQo+Pj4+Pj4+IGxpa2VseSB3YW50IHRo
ZSBndWVzdCB0byBtb2RpZnkgSU5UeCBkaXNhYmxlIGluIG9yZGVyIHRvIHNlbGVjdCB0aGUNCj4+
Pj4+Pj4gaW50ZXJydXB0IGRlbGl2ZXJ5IG1vZGUgZm9yIHRoZSBkZXZpY2UuDQo+Pj4+Pj4gV2Ug
Y2Fubm90IGFsbG93IGEgZ3Vlc3QgdG8gY2xlYXIgdGhlIGJpdCB3aGVuIGl0IGhhcyBNU0kgLyBN
U0ktWA0KPj4+Pj4+IGVuYWJsZWQgLSBvbmx5IG9uZSBvZiB0aGUgdGhyZWUgaXMgc3VwcG9zZWQg
dG8gYmUgYWN0aXZlIGF0IGEgdGltZS4NCj4+Pj4+PiAoSU9XIHNpbWlsYXJseSB3ZSBjYW5ub3Qg
YWxsb3cgYSBndWVzdCB0byBlbmFibGUgTVNJIC8gTVNJLVggd2hlbg0KPj4+Pj4+IHRoZSBiaXQg
aXMgY2xlYXIuKQ0KPj4+Pj4gU3VyZSwgYnV0IHRoaXMgY29kZSBpcyBtYWtpbmcgdGhlIGJpdCBz
dGlja3ksIGJ5IG5vdCBhbGxvd2luZw0KPj4+Pj4gSU5UWF9ESVNBQkxFIHRvIGJlIGNsZWFyZWQg
b25jZSBzZXQuIFdlIGRvIG5vdCB3YW50IHRoYXQgYmVoYXZpb3Igb24NCj4+Pj4+IHg4NiwgYXMg
YSBndWVzdCBjYW4gZGVjaWRlIHRvIHVzZSBNU0kgb3IgSU5UeC4gVGhlIGVsc2UgYnJhbmNoIG5l
ZWRzDQo+Pj4+PiB0byBiZSBBcm0gb25seS4NCj4+Pj4gSXNuJ3QgdGhlICJlbHNlIiBwYXJ0IHF1
ZXN0aW9uYWJsZSBldmVuIG9uIEFybT8NCj4+PiBJdCBpcy4gT25jZSBmaXhlZCBJIGNhbid0IHNl
ZSBhbnl0aGluZyBBcm0gc3BlY2lmaWMgaGVyZQ0KPj4gV2VsbCwgSSBoYXZlIGxvb2tlZCBhdCB0
aGUgY29kZSBvbmUgbW9yZSB0aW1lIGFuZCBldmVyeXRoaW5nIHNlZW1zIHRvDQo+PiBiZSBvayB3
cnQgdGhhdCBzdGlja3kgYml0OiB3ZSBoYXZlIDIgaGFuZGxlcnMgd2hpY2ggYXJlIGNtZF93cml0
ZSBhbmQNCj4+IGd1ZXN0X2NtZF93cml0ZS4gVGhlIGZvcm1lciBpcyB1c2VkIGZvciB0aGUgaGFy
ZHdhcmUgZG9tYWluIGFuZCBoYXMNCj4+ICpubyByZXN0cmljdGlvbnMqIG9uIHdyaXRpbmcgUENJ
X0NPTU1BTkQgcmVnaXN0ZXIgY29udGVudHMgYW5kIHRoZSBsYXRlcg0KPj4gaXMgb25seSB1c2Vk
IGZvciBndWVzdHMgYW5kIHdoaWNoIGRvZXMgaGF2ZSByZXN0cmljdGlvbnMgYXBwbGllZCBpbg0K
Pj4gZW11bGF0ZV9jbWRfcmVnIGZ1bmN0aW9uLg0KPj4NCj4+IFNvLCBmb3IgdGhlIGhhcmR3YXJl
IGRvbWFpbiwgdGhlcmUgaXMgbm8gInN0aWNreSIgYml0IHBvc3NpYmxlIGFuZCBmb3IgdGhlDQo+
PiBndWVzdCBkb21haW5zIGlmIHRoZSBwaHlzaWNhbCBjb250ZW50cyBvZiB0aGUgUENJX0NPTU1B
TkQgcmVnaXN0ZXINCj4+IGhhcyBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUgYml0IHNldCB0aGVu
IHRoZSBndWVzdCBpcyBlbmZvcmNlZCB0bw0KPj4gdXNlIFBDSV9DT01NQU5EX0lOVFhfRElTQUJM
RSBiaXQgc2V0Lg0KPj4NCj4+IFNvLCBmcm9tIGhhcmR3YXJlIGRvbWFpbiBQT1YsIHRoaXMgc2hv
dWxkIG5vdCBiZSBhIHByb2JsZW0sIGJ1dCBmcm9tDQo+PiBndWVzdHMgdmlldyBpdCBjYW4uIExl
dCdzIGltYWdpbmUgdGhhdCB0aGUgaGFyZHdhcmUgZG9tYWluIGNhbiBoYW5kbGUNCj4+IGFsbCB0
eXBlcyBvZiBpbnRlcnJ1cHRzLCBlLmcuIElOVHgsIE1TSSwgTVNJLVguIEluIHRoaXMgY2FzZSB0
aGUgaGFyZHdhcmUNCj4+IGRvbWFpbiBjYW4gZGVjaWRlIHdoYXQgY2FuIGJlIHVzZWQgZm9yIHRo
ZSBpbnRlcnJ1cHQgc291cmNlIChhZ2Fpbiwgbm8NCj4+IHJlc3RyaWN0aW9uIGhlcmUpIGFuZCBw
cm9ncmFtIFBDSV9DT01NQU5EIGFjY29yZGluZ2x5Lg0KPj4gR3Vlc3QgZG9tYWlucyBuZWVkIHRv
IGFsaWduIHdpdGggdGhpcyBjb25maWd1cmF0aW9uLCBlLmcuIGlmIElOVHggd2FzIGRpc2FibGVk
DQo+PiBieSB0aGUgaGFyZHdhcmUgZG9tYWluIHRoZW4gSU5UeCBjYW5ub3QgYmUgZW5hYmxlZCBm
b3IgZ3Vlc3RzDQo+IFdoeT8gSXQncyB0aGUgRG9tVSB0aGF0J3MgaW4gY29udHJvbCBvZiB0aGUg
ZGV2aWNlLCBzbyBpdCBvdWdodCB0bw0KPiBiZSBhYmxlIHRvIHBpY2sgYW55IG9mIHRoZSB0aHJl
ZS4gSSBkb24ndCB0aGluayBEb20wIGlzIGludm9sdmVkIGluDQo+IGhhbmRsaW5nIG9mIGludGVy
cnVwdHMgZnJvbSB0aGUgZGV2aWNlLCBhbmQgaGVuY2UgaXRzIG93biAiZGlzbGlrZSINCj4gb2Yg
SU5UeCBvdWdodCB0byBvbmx5IGV4dGVuZCB0byB0aGUgcGVyaW9kIG9mIHRpbWUgd2hlcmUgRG9t
MCBpcw0KPiBjb250cm9sbGluZyB0aGUgZGV2aWNlLiBUaGlzIHdvdWxkIGJlIGRpZmZlcmVudCBp
ZiBYZW4ncyB2aWV3IHdhcw0KPiBkaWZmZXJlbnQsIGJ1dCBhcyB3ZSBzZWVtIHRvIGFncmVlIFhl
bidzIHJvbGUgaGVyZSBpcyBzb2xlbHkgdG8NCj4gcHJldmVudCBpbnZhbGlkIGNvbWJpbmF0aW9u
cyBnZXR0aW5nIGVzdGFibGlzaGVkIGluIGhhcmR3YXJlLg0KT24gdG9wIG9mIGEgUENJIGRldmlj
ZSB0aGVyZSBpcyBhIHBoeXNpY2FsIGhvc3QgYnJpZGdlIGFuZA0KcGh5c2ljYWwgYnVzIHRvcG9s
b2d5IHdoaWNoIG1heSBpbXBvc2UgcmVzdHJpY3Rpb25zIGZyb20NCkRvbTAgUE9WIG9uIHRoYXQg
cGFydGljdWxhciBkZXZpY2UuIFNvLCBldmVyeSBQQ0kgZGV2aWNlDQpiZWluZyBwYXNzZWQgdGhy
b3VnaCB0byBhIERvbVUgbWF5IGhhdmUgZGlmZmVyZW50IElOVHgNCnNldHRpbmdzIHdoaWNoIGRv
IGRlcGVuZCBvbiBEb20wIGluIG91ciBjYXNlLg0KPg0KPiBKYW4NCj4NCj4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:25:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:25:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220658.382005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCVw-0008FT-14; Wed, 03 Nov 2021 09:25:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220658.382005; Wed, 03 Nov 2021 09:24:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCVv-0008FM-TI; Wed, 03 Nov 2021 09:24:59 +0000
Received: by outflank-mailman (input) for mailman id 220658;
 Wed, 03 Nov 2021 09:24:59 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miCVu-0008FG-TL
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 09:24:58 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id e8e2d5ac-3c87-11ec-8563-12813bfff9fa;
 Wed, 03 Nov 2021 09:24:57 +0000 (UTC)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2051.outbound.protection.outlook.com [104.47.5.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-11-JWCkTSoxOiOKpxkc5LXMUg-1; Wed, 03 Nov 2021 10:24:55 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5472.eurprd04.prod.outlook.com (2603:10a6:803:d3::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 09:24:51 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 09:24:51 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0182.eurprd04.prod.outlook.com (2603:10a6:20b:2f3::7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.17 via Frontend Transport; Wed, 3 Nov 2021 09:24:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8e2d5ac-3c87-11ec-8563-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635931496;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=9YenonVGTVm0hq+rtvdpS5LXKJkyQKXJ9Xu9zkYQ37M=;
	b=Qnx0Ve503gW5H0lX3thURG2g/bsNXbU8utLSAAdA91IOvphfOsy9Wx6euzsWRzRy9/JRdj
	GRWLJeTRxvUb/AD0NuXUulRFM+awUaAMPnLdAfxOTVOveHbrFMgoWbdG+5YJ0SfxaXWAXJ
	r7TgkKHwozW1mjOZX6OQvSF489/Iiu0=
X-MC-Unique: JWCkTSoxOiOKpxkc5LXMUg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mGyy+mTvqi5mAKThuJWaXXLT84PnAaSgDhBvYLONHefirfrzJim6mp1YLsVe+Ip4RN+ajrqBvfTeHYCxyAGRWh047vC0nEAMMYOTs76nNSl3Gx82by8NQiJu08rouM/JqStYrN//4BCfjcTQsjqqQXvT4UoMmz873rOLzyoXiOrRie6HVrzzKeflakqOfxWpWWQZuNuWWPUZRXJGXYwf/9KCFlt84kw6Lcuj7SkLiJrghQh1QpjqPkpjK6woiCydY+tsUvViYyIyrrVXzv60d+wnDT6x2nS/H/HJoFlkqAGsz6SD3G31gt8xCJXh78qWXHHMMFTdVzzh65U0V/uc8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Fm0TGPqNli7vPslCtZGtXYWf8COnvUce7JQj/+4f9ik=;
 b=jk221QcFiFrQbt7voVOHzuaOat3h36Fi+309zKvFgo7yuQHgGk9fLmGPx37ENH3BAvjWebqHolGKE2t60fL0YLqe2FRA6JmL3Il+XS4qg7SpIt06KtK+iVy6KAb1TdRNS0+3ikeYxX+4vT7n52Wf+LRx7mIkVkb+eMkBBrchONFIyZskn+cCEiV4wkuqheVh42fBAdSuZvL53KJrQKajzFmDeGzRmoW5pP0eM/yeQyraM9wdyKe4aWSFl/xRil2pbrSAhp6sza31m4GdH3RN6P2jFQrFNXtbkGDyQbBB+4CqAjHNJrmWKAOjQEw/A36JEhN5lLaKtKMzDnFbacmo2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
Date: Wed, 3 Nov 2021 10:24:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>, Michal Orzel <michal.orzel@arm.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8PR04CA0182.eurprd04.prod.outlook.com
 (2603:10a6:20b:2f3::7) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e50deb66-ee2b-45b9-2d23-08d99eabc996
X-MS-TrafficTypeDiagnostic: VI1PR04MB5472:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5472DC533CEDCB7279A5ED42B38C9@VI1PR04MB5472.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	C48vwZvnY28vNNcGjmY3ebj0qslsH34yRZW2R57lVzLDTyviSopF7J0k401uL/+0gXvmozRb91sbN8QOPFP1340wPon5+J2D5LLNzqIeidDi3IVjOrdKBUiaFhsc1+Gi7y6Ec8buEFjyYNGZjgbKw9Ecxy4Sad08pngaHDljzsYVny0HOIasfXDeujKhrl1Kgx8OVwvsdDorOCuyllKMFNnBOVqLGKt6sraqgXHTxxxyFzhKAk+sC2KjQqMK6glZsu3oeNjbfK81zGpGQQhEpUtt9agrUhLxzIsOHlkzUOHt9O4eMKKMoKOara/GNrXlZ63d8ecC8q3spo8PA9k5fkbmaHinvaUXv8O1chWJzZyXfbmRgdCGTVe70jSA4CuUd4KcEDYtTw0MjQUJrNsU2EwCe+wKippqmq9FiMTu9ZdeuFifNSy7tjtSDugma4NjLhRdH0CG1ceXlpB2dBcOlosd/RBMCyWILeeCwesYtLnGC7NAxb80LqxMI+OiI9BENI/NMu64aKCcmplvlOn7bwLVpsXLJM7+yb6bCG0/hi/1Cg0jG3VpUmTqMejUNZ95MsYE6EP0RW4S6mw3Wx3NE9pjeYem7air+Onyzjyx2LxLqmczUq4/Rbd1H/Zuh1I727cCFFoxKuNFLlGrfasHum1s9TTBbGlDdMbX81EWyRlrj3CHZoelLQu8ZSZRkzADr9kDDoDP5eIJrJoWcLmtBC1v40izRcxgGnzW4tM9TwDUetZkrbCabP+CrcySTkwy
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(66476007)(66946007)(8936002)(38100700002)(66556008)(31686004)(6916009)(86362001)(8676002)(16576012)(6486002)(53546011)(4326008)(5660300002)(956004)(2616005)(26005)(508600001)(31696002)(186003)(36756003)(83380400001)(2906002)(7416002)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?AMCAWUNI1fAkXsy/4jwU8dJTS4Fch2WhcUcBMazymnqJ3GG0yTI2lRVuDdwx?=
 =?us-ascii?Q?xx8D1Hr/0hVDUVhCOK+0yhc3Ke75Q+nPySvMseLqxkD13pT92gaEzrrSrmEz?=
 =?us-ascii?Q?ErvrROdVSTNtAHOtQuQTsTOY20M1dicfTPpCM1hDl50Sh+ZU7CzMWBe0DNq9?=
 =?us-ascii?Q?dTCvxZ6t2sp7FQJGq+///mb4Q0N9xF0yV12LGWBoFQYlq5D8Oyam2i1Pl9ug?=
 =?us-ascii?Q?q3fBV10dsIZ70/p5Ytugsp0Xv31EQPZ2GfEgxLFbetALfNp6zDujiBhGyorU?=
 =?us-ascii?Q?v4YiAPlD7NmEsKLR6T1UFTz9ln4xjHfNTPrntpYuNVds4NyCE9XCwISV3Sxv?=
 =?us-ascii?Q?xU8bx+tWzYrI0xJc+KnXrOtJZvYwNwrIor9/3yQe/xWNlbWoSoyDPArC5psg?=
 =?us-ascii?Q?u/m8b4f12GLAuSW6bx8YymR4UJs6KhIjcQdtErqH/09q9jUAmb5kjPW+BYuP?=
 =?us-ascii?Q?EZH0uRxE8HdWx2SlUV9vHnld/YEZ9HCk0Q0Juevv0UhpC0Y6NdytG+SK7YFv?=
 =?us-ascii?Q?8MNpkcfFGF1iQFcZEHbIITgZFMnUdzboU4CM2Raya8zA+o+ZyW7qwoE/UM1j?=
 =?us-ascii?Q?rX/tdzdUnMJWwF/LNDm1plaD4qFbhcLfb0EuyMPuNowYAKBN3v3GoBhukvKV?=
 =?us-ascii?Q?qtgCNmdkWOslMBari2haFgFTxtaqTu/Jt0GQievY6FhmtJ5v4vxEZMEki0XU?=
 =?us-ascii?Q?+0WdyLEw2Lfvk5ibXyCyXF5ECxq8B7vlFIBXuDch10bVPz/HMG8MZPYICNY1?=
 =?us-ascii?Q?h3XDAhf2LU0N6BRnLxh7ffMFioTsKFztWGw26TUVluW7oUzFeRYnZTLPcPqj?=
 =?us-ascii?Q?kcYgb1MlSSAyKiqaVjiwEtZ1P4WrSkRKWif4XpgaZZvkpnRHxAFNL0xCZYa9?=
 =?us-ascii?Q?/w2MY7aUd/GPiFvOY4ns0ZQ8LNqqpghnOJptKtGtICU/mVwiuoUz+a3h2TK2?=
 =?us-ascii?Q?B8ys4EYetvQtSxjLG/QrmklZ7vcifIiQBmMmanzdTZl4+A0+91HrnKDnLiTk?=
 =?us-ascii?Q?ZtDb2kKaNVmBV3uk2d955sEMiQYB+4Y71rxzIxj9aq/nHKc9Co39LDFjOVrr?=
 =?us-ascii?Q?YvK/kNr253qzYbaMHMGygOyVRVBVuBxl9hGrP8ZJFEo6+Y3t6DQxGwwQnZcN?=
 =?us-ascii?Q?LShGuTIx2OAViTkp/AXT2hJKuBO3zD6LBYCW1ePv0gR4hgAqpusPMm5XN2We?=
 =?us-ascii?Q?FI9IXo3MD8tL8r6jheJ0EkaIuv9Ot7acx7Uzp/5Bl6TdeoG+lbY67DQV1MkP?=
 =?us-ascii?Q?yS3qgMG5JtjXAWp3c+tXcuueg2YlaURlOlCbY+kG5dm8lZ2oPPrAj0o+C1y+?=
 =?us-ascii?Q?5iaGOhQnfgucdrCbxWeUCHX+irj1beiBXNXdOFDPPzsLlTDivY4p8cgvg5KF?=
 =?us-ascii?Q?Q5UFqKR8pkaPx+79rdQmeViEqMSOFAQwT1FpSvYhqzBnqVzlplarydA/bQFZ?=
 =?us-ascii?Q?yh2mGj/tLaAlbkSJIOMn52YlLjA+8ePelhXvLZem8G0GGWtY+J1ze6gQ5sRi?=
 =?us-ascii?Q?LcLEzaulDMAnF8Fyfud0WZa5nqLU1gLj5hO8kLY0JZIwTmflP328FmEu+t1t?=
 =?us-ascii?Q?5MTrJE74Es14USfYhdZGXr14l9EGumOdX6efqLT9Zuj9bIYVVCF4utNheVM2?=
 =?us-ascii?Q?Vz4p16b0SXcMJL4IX7nfkLw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e50deb66-ee2b-45b9-2d23-08d99eabc996
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 09:24:51.0043
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /eIeKT1GgGhosU4bQgsol8ZM0iK4fUmxfCVD9BgP6FVL/6WlIreT54l87mBqdNCRy1NONk7XHay5xt3HNEg3TA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5472

On 03.11.2021 10:18, Oleksandr Andrushchenko wrote:
>=20
>=20
> On 03.11.21 11:11, Jan Beulich wrote:
>> On 03.11.2021 09:53, Oleksandr Andrushchenko wrote:
>>>
>>> On 02.11.21 16:10, Oleksandr Andrushchenko wrote:
>>>> On 02.11.21 15:54, Jan Beulich wrote:
>>>>> On 02.11.2021 12:50, Roger Pau Monn=C3=A9 wrote:
>>>>>> On Tue, Nov 02, 2021 at 12:19:13PM +0100, Jan Beulich wrote:
>>>>>>> On 26.10.2021 12:52, Roger Pau Monn=C3=A9 wrote:
>>>>>>>> On Thu, Sep 30, 2021 at 10:52:20AM +0300, Oleksandr Andrushchenko =
wrote:
>>>>>>>>> --- a/xen/drivers/vpci/header.c
>>>>>>>>> +++ b/xen/drivers/vpci/header.c
>>>>>>>>> @@ -451,6 +451,32 @@ static void cmd_write(const struct pci_dev *=
pdev, unsigned int reg,
>>>>>>>>>             pci_conf_write16(pdev->sbdf, reg, cmd);
>>>>>>>>>     }
>>>>>>>>>    =20
>>>>>>>>> +static void guest_cmd_write(const struct pci_dev *pdev, unsigned=
 int reg,
>>>>>>>>> +                            uint32_t cmd, void *data)
>>>>>>>>> +{
>>>>>>>>> +    /* TODO: Add proper emulation for all bits of the command re=
gister. */
>>>>>>>>> +
>>>>>>>>> +    if ( (cmd & PCI_COMMAND_INTX_DISABLE) =3D=3D 0 )
>>>>>>>>> +    {
>>>>>>>>> +        /*
>>>>>>>>> +         * Guest wants to enable INTx. It can't be enabled if:
>>>>>>>>> +         *  - host has INTx disabled
>>>>>>>>> +         *  - MSI/MSI-X enabled
>>>>>>>>> +         */
>>>>>>>>> +        if ( pdev->vpci->msi->enabled )
>>>>>>>>> +            cmd |=3D PCI_COMMAND_INTX_DISABLE;
>>>>>>>>> +        else
>>>>>>>>> +        {
>>>>>>>>> +            uint16_t current_cmd =3D pci_conf_read16(pdev->sbdf,=
 reg);
>>>>>>>>> +
>>>>>>>>> +            if ( current_cmd & PCI_COMMAND_INTX_DISABLE )
>>>>>>>>> +                cmd |=3D PCI_COMMAND_INTX_DISABLE;
>>>>>>>>> +        }
>>>>>>>> This last part should be Arm specific. On other architectures we
>>>>>>>> likely want the guest to modify INTx disable in order to select th=
e
>>>>>>>> interrupt delivery mode for the device.
>>>>>>> We cannot allow a guest to clear the bit when it has MSI / MSI-X
>>>>>>> enabled - only one of the three is supposed to be active at a time.
>>>>>>> (IOW similarly we cannot allow a guest to enable MSI / MSI-X when
>>>>>>> the bit is clear.)
>>>>>> Sure, but this code is making the bit sticky, by not allowing
>>>>>> INTX_DISABLE to be cleared once set. We do not want that behavior on
>>>>>> x86, as a guest can decide to use MSI or INTx. The else branch needs
>>>>>> to be Arm only.
>>>>> Isn't the "else" part questionable even on Arm?
>>>> It is. Once fixed I can't see anything Arm specific here
>>> Well, I have looked at the code one more time and everything seems to
>>> be ok wrt that sticky bit: we have 2 handlers which are cmd_write and
>>> guest_cmd_write. The former is used for the hardware domain and has
>>> *no restrictions* on writing PCI_COMMAND register contents and the late=
r
>>> is only used for guests and which does have restrictions applied in
>>> emulate_cmd_reg function.
>>>
>>> So, for the hardware domain, there is no "sticky" bit possible and for =
the
>>> guest domains if the physical contents of the PCI_COMMAND register
>>> has PCI_COMMAND_INTX_DISABLE bit set then the guest is enforced to
>>> use PCI_COMMAND_INTX_DISABLE bit set.
>>>
>>> So, from hardware domain POV, this should not be a problem, but from
>>> guests view it can. Let's imagine that the hardware domain can handle
>>> all types of interrupts, e.g. INTx, MSI, MSI-X. In this case the hardwa=
re
>>> domain can decide what can be used for the interrupt source (again, no
>>> restriction here) and program PCI_COMMAND accordingly.
>>> Guest domains need to align with this configuration, e.g. if INTx was d=
isabled
>>> by the hardware domain then INTx cannot be enabled for guests
>> Why? It's the DomU that's in control of the device, so it ought to
>> be able to pick any of the three. I don't think Dom0 is involved in
>> handling of interrupts from the device, and hence its own "dislike"
>> of INTx ought to only extend to the period of time where Dom0 is
>> controlling the device. This would be different if Xen's view was
>> different, but as we seem to agree Xen's role here is solely to
>> prevent invalid combinations getting established in hardware.
> On top of a PCI device there is a physical host bridge and
> physical bus topology which may impose restrictions from
> Dom0 POV on that particular device.

Well, such physical restrictions may mean INTx doesn't actually work,
but this won't mean the DomU isn't free in choosing the bit's setting.
The bit merely controls whether the device is allowed to assert its
interrupt pin. Hence ...

> So, every PCI device
> being passed through to a DomU may have different INTx
> settings which do depend on Dom0 in our case.

... I'm still unconvinced of this.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:30:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:30:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220666.382016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCbW-0001HY-Pl; Wed, 03 Nov 2021 09:30:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220666.382016; Wed, 03 Nov 2021 09:30:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCbW-0001HR-L9; Wed, 03 Nov 2021 09:30:46 +0000
Received: by outflank-mailman (input) for mailman id 220666;
 Wed, 03 Nov 2021 09:30:44 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miCbU-0001HL-QC
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 09:30:44 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id b77c083e-3c88-11ec-8563-12813bfff9fa;
 Wed, 03 Nov 2021 09:30:43 +0000 (UTC)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A38Q4Cv029445;
 Wed, 3 Nov 2021 09:30:34 GMT
Received: from eur01-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2053.outbound.protection.outlook.com [104.47.1.53])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c3pwng8q6-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 09:30:34 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5699.eurprd03.prod.outlook.com (2603:10a6:208:173::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Wed, 3 Nov
 2021 09:30:29 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 09:30:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b77c083e-3c88-11ec-8563-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mxUdzAF2r4BXVul45o0g7C1lmBr3p7/8fYSFRZhzGtDmfhuK8e9Q6ujM4P5MypsLm0sJ9aXJyqdapqZjAAgA4RqE8/xfVnYmC51+nKr4QmH1vXURcoO2zYeSuUf7wzXVed/8kPwR9ITpAotHBH1llHM5NBXNyoWgCPewnIObH8fGx3nSwiWxAFIsdHrZykYk1y32AM+abEkxYZQxd+gV1YCJlWgWGoKmGn+/I9xyHJETDAt+oTAiFftGiR1M1Sl5wo+LwDHaGNtx0m6309juB8dl2Fl0PHSIeHos3bkEbmmRObuUI/epprgMfmPubls4biZdLdavWj9C6unxywHkgQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T6GZz0SXOiQaYIxnn8YWDRzaWdGtZJYLZ7DtPoHh26E=;
 b=QN6dPXxx/dHM/7W+cniIiILWW+Sy/LLRV0yR6Q0SL//0nC/x/y1vfbo9wIJhIS/qxDcyeiQiWA4F+M/UzM3/Kx0M/EeME2t6i5AXpVBl5unDOgxVdjobVrfXTbJjHVBJcjwa1l2K4k+0lumfIxE+Ur2y4tgv0XqcDH6tFrofMhKO2pd5oVWXNUtKc+FvYplwTKdDyMx1y6aom9FmFX6mpLECzfTsTenmfLsD3t7jPXyoFbEtmbsY95rJo0Vz6Om4aV/5cyFZuIwTl79I996RZ3gj3WNnDKIFt1i5JfTaOc2JIwMCNCbQXTlRG+jMlDlGXwoTZy6PMgWeOEZfvCaVTw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=T6GZz0SXOiQaYIxnn8YWDRzaWdGtZJYLZ7DtPoHh26E=;
 b=mw1fn5+CKN9FTALohCW7rYiq3HWBICWWCN5vYgdh5f/NDmlwDCDQ7z5pKw+QZR7qU/3NKh/E8sLx4Xi59ismwgITSLupS+Q7jbn6b+yzWj97Gku9M9ARSH6paladMYjjQf6BNyplyp3BIYBNQhsfkqrigKhqJn+9XYkECFk31+PQU+cA/zz3ExSgrCB/K4nJVzVzTbzCybh44B5jKQ+AYbMYhy1ssbWG/kndGbhAbkMZ2qXNg37GsEsyv1N+yrIh6cdza9zLO+uEoGduvoJ32GNS+abF94V2RMF5YV8ecRN/5DcndteWxz+7gxc9nch7dF2Cu92DAC2/H+hCRUwyXA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Michal Orzel <michal.orzel@arm.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: 
 AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUICAATmxAIAABTcAgAABvgCAAAHkAIAAAZSA
Date: Wed, 3 Nov 2021 09:30:29 +0000
Message-ID: <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
In-Reply-To: <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 7e5fcba1-29d1-4664-58e7-08d99eac934f
x-ms-traffictypediagnostic: AM0PR03MB5699:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5699679D095EFC2F2B83360EE78C9@AM0PR03MB5699.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 4nKLOF/ZRePL1fetXHoojKRaT68Sx00ZM+LE/FwSNIPhB+GIzOlEhy4Sy6Oo29dBBZmWPIHbetJuFONSI3dvA+cBGq3TMq98/N+xdZt2ZMe42k6+SDrcx+6OmDRzVHwo9q8z1SU/TA+7tvhPexnElGAkYDztMKrhCi8wR6hmyTUtlX1gc4qYxk0dxHx9lSiXwVBQlSSVXW5ismQUS3suIFn22cIkEizOGc7Un5TcUaGB1LwqNf8qRESZHQ63HupFDnWYLqOvtOh4Y7DJM2QO1YkUB2g/01EYBfDl51JPmf+L3LcQPP6jHdPpvYXswJGnE+PHUNmzVKPf4blYiIez6IZ20lJk4g6f/vGAXibhTApZkrOzKss9bKoUCKn0lxeneuJ4OOnOURUGjajNM8YOgpSbeiRINIJdje19dg4l6cZzbufUZTN+kMRn/Fi7pU3X4rIMW9WzX2GAyd/ogmHUEYrTwvZINGaJVJAxyCjV0RG1NWLrfMZLXMiUMLYtHIuSgES3HS4CTQ+sTgVItX4m3aTuO1ovax8bYDtbgXk8KRHt1Ecx8ZPTqWjZW0P7FNPH4T/wUmT6OhO4pEfz7oQMeqnpU/kyeCr0jqW0Gjb0s9rD/aZ4TxRGIADbSPlKZuYe0D18bgMq4K39Aacx9uwBXLHC3OXHPfOWl9EJnd/kfbPX6uyhzZepmkYllxZxT/QGD+mgXehAnywOJPrvxoIM4dgGLMnZ4UWtl0VI0sXGbeYqWLHsR54j4oDKIKPTJ9sy
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(316002)(110136005)(54906003)(53546011)(6506007)(2906002)(38070700005)(508600001)(64756008)(76116006)(66476007)(66946007)(66556008)(66446008)(2616005)(26005)(5660300002)(186003)(4326008)(83380400001)(86362001)(38100700002)(122000001)(31696002)(36756003)(31686004)(91956017)(8676002)(8936002)(6486002)(71200400001)(6512007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?WU0yS3ZBQWo5Z1RNei9sbUtCSVFvTXdwUW1YeU00clU1UHNnWDFkSlJsTW0z?=
 =?utf-8?B?OFVXQTljMEVxR3NIZ1o1cXRVSTdXelkycjJhUW1TT0dXUEFyUk5TWGpNV0kz?=
 =?utf-8?B?Mk02V2JIbmZOcHZnbU5mS2VvYUpCckxhWUhZeWRlMWVHMCtNd3VDL29OZWV4?=
 =?utf-8?B?bS9LZlNFS2pCRmdCUG93YzZYSU9YOVlZVzNMY0pPczR2OVJqcDJMRVVnalFI?=
 =?utf-8?B?bkJ5TWI4b0FvcWdZNFROSWNmc2gzZTN6cTdaK0NpcGtBV04ybnRKK0x1c0lq?=
 =?utf-8?B?RmQrUU9zUDZHYmtUS04xT1lMNmpTNFZoZzhpaGRqNzREbHJUREd0MkNtVTc3?=
 =?utf-8?B?Y2RIOGN4c1BzN2l0VDRBVjU1dWZ6RmtoZHFNZFJTbDdjWjFoTGc3cWowczYv?=
 =?utf-8?B?U3pPQmxZVi9TWFhYL3JvWlZXa1Z6ZEJtV0dReVhGVVlwQlVlM2NVLzg1ZVZx?=
 =?utf-8?B?SHZLMWRNSkxWcGYrVWhrcU1wbVhEUUFSa3ZZc0lUKzE3RTRFbnlsaU5IckhV?=
 =?utf-8?B?MkNSYnpJcFk4Qy85eXA5ZTVmcHRsdnhxNFNqZ3FPck9KUG91QkQ0bUxmcHE1?=
 =?utf-8?B?SWljcHlsR1dTUkV6SHM0OXBPYkhYZ204Rk1SS3JBWC9ZTGVHWis3RHZ5SUxY?=
 =?utf-8?B?K012dUo5SEt2dVNpUEN0Qk4xRmduS09vejU4OFFMSldtdUtaN3hGZng0V0k3?=
 =?utf-8?B?VXh1aHBOam9QVXJGZ0RURktvZWlxYlR4c1RpbUJ5b2k3ZHpMZVdGZ1NKdXdJ?=
 =?utf-8?B?cGtyWlFFODl5cnR0aUo5c2JHYXZ5eFRvQzBxTGFwQnRZRWxxaksvSWc1MnZM?=
 =?utf-8?B?cjVTNjdkbEZKVFdoSVNqQUxTWWZDa282bFBlZ3BiMHg1TklqRTNyLzVWMUhm?=
 =?utf-8?B?VW9JQ1FSOG1veWhNbCs3TXh1MFU5Y2FWYS9ZUlMwTFpnZTVQSTdLcURuYjdr?=
 =?utf-8?B?WGVzN2xXY3hQblc1ZEZFVGdIVzFPK2tETmUxWlRxSVBSREJQOGhaanF0cEpu?=
 =?utf-8?B?alJjdkhQSTlVaFZsbDByS3hNVWUxbmhzM2hWdHR6S292dWFLNktNbjdFbzFh?=
 =?utf-8?B?b3h2Mm1uTUluUVRpOG1UTjRZTjQ2QTNab2FYVzdvM0x5TzJDMlFpaUdtZ3ho?=
 =?utf-8?B?NWxwTjVPM3AzK2RmclRUR3RzS1JCeEFrUlJqZEtERitIOUtJZ2ltVDhCMWJw?=
 =?utf-8?B?cHIxbDQyQ2sxcjY5eHp2V1l3N1I0VDkzS25JN0doeFJGVVE3V2lHYksyRXRR?=
 =?utf-8?B?azluQmJIeXQxcWNWWkluVktKZDFoZkVYK3ZBL0lXWldDUWN4NldRc0gram01?=
 =?utf-8?B?TFBpUmk1R0hHdS96WE5qa3o0RE9OczlDY1hoMzlwS3B3R1dobzV1c1V3SCtB?=
 =?utf-8?B?akpOZW9kTjlYZnFCMzlmR2tXMitEcTN3M1RIekxKeDhBaE1ISnUwQ1hZSHFs?=
 =?utf-8?B?NHFLZnVlQjVGWVlncXdPTHZZNXR5aEtiYzhvbmszMy9BVWJ5bEVMM2VNS1F0?=
 =?utf-8?B?QnI2a2NvanN0dXZFVkZkZ0Y4WXMvNUlxSzZJVllYcVZPZGI2OEJjUXdZQnJK?=
 =?utf-8?B?TGlkUjFoYmpFdFhCRUVKY1pIV3NabDRFVS96WklxR0pvMEtmemptZnQxYy9o?=
 =?utf-8?B?RW1nNnVBZGh5MEZ1MUJYanFSM1J5V0p2UjQyYUgxTDREeXZHZkU0YmlkNTBT?=
 =?utf-8?B?ZVFhK3FHZlpLbzErcmdRMnY4NW5rQ2JlcXQxcGE1b1oyWUFVV1NxRjFndncw?=
 =?utf-8?B?c0xkVWlwdElEaDRjMll3Q0ZGdUdrb01Hdmo4dzV0ODBGSHJxWENhRUVJdzZ6?=
 =?utf-8?B?MkJrR1ZkOHNjRTNZcjh6TjQzbWNzbVpRSTlpRkM2cnlDWm9RSFdaRFdjQk1T?=
 =?utf-8?B?TlNJK3ZtN2lzYmx6TW5paTRhMldxenBmVEs5Zi82b25XSktyZnBWMnJObjZn?=
 =?utf-8?B?Q09rRFJTa2NOWnNXQVE1dFU2Z1ZUeFZnSjVKaDVFV2hLV0ZiNmYyb1k1dWpt?=
 =?utf-8?B?TENJZ2hCQWFxcEZrNlFPWkxIY2FiTnpqK3ByNS9MdzYxTFAwU21uRkhzcGt4?=
 =?utf-8?B?cFRWQkMxdjlQa21IblZEbEFkT25XczVoejQ3Rzl3Y0JkclpwTkNGVGY1YXgw?=
 =?utf-8?B?Y0pCZVJNNWx3SmRsNnd6NHZoaGJGQWd1MVp2d2t1SEZkUXgwTnFvYzNYU1RU?=
 =?utf-8?B?OVVGUW1SdHdoamtlR2dxbjcvcC92bDFidFIvb0E2MklBSHZicWZId2RRMUdB?=
 =?utf-8?B?K3BFbHBpMFZ3dVpsQktNMlR2Q1BaRXQxWTVFQzB2VlZlUmxPcSt0dWllRHM4?=
 =?utf-8?B?QnZkd0U4NWt6SUpEekRSUloyb25aNXlXZW9Vbm5oTGJwcDlEbDk4Zz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0327075872F5C44CB442426DCB4A24BB@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e5fcba1-29d1-4664-58e7-08d99eac934f
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 09:30:29.0987
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: myqE8pqkfrMwf8DDn1JsXoEW39Nu+/peNFQOaFj4NkVGpu/SdP/m1cy1B3Y0pq+yfDuKfsCAOHlTMHF0HBsQFyDGgPIM0Sey2GkWAPdM3X4K8D5AFSyMNrYpDA60WGCo
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5699
X-Proofpoint-ORIG-GUID: 7Tzn7FbViR1n-MQteWj8pv0ZiczCTIyx
X-Proofpoint-GUID: 7Tzn7FbViR1n-MQteWj8pv0ZiczCTIyx
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_02,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015
 phishscore=0 adultscore=0 spamscore=0 mlxlogscore=740 malwarescore=0
 mlxscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0
 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111030054

DQoNCk9uIDAzLjExLjIxIDExOjI0LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDMuMTEuMjAy
MSAxMDoxOCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMDMuMTEu
MjEgMTE6MTEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDAzLjExLjIwMjEgMDk6NTMsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAwMi4xMS4yMSAxNjoxMCwgT2xl
a3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+PiBPbiAwMi4xMS4yMSAxNTo1NCwgSmFu
IEJldWxpY2ggd3JvdGU6DQo+Pj4+Pj4gT24gMDIuMTEuMjAyMSAxMjo1MCwgUm9nZXIgUGF1IE1v
bm7DqSB3cm90ZToNCj4+Pj4+Pj4gT24gVHVlLCBOb3YgMDIsIDIwMjEgYXQgMTI6MTk6MTNQTSAr
MDEwMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+Pj4+PiBPbiAyNi4xMC4yMDIxIDEyOjUyLCBS
b2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4+Pj4+Pj4+IE9uIFRodSwgU2VwIDMwLCAyMDIxIGF0
IDEwOjUyOjIwQU0gKzAzMDAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+Pj4+
Pj4+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+Pj4+Pj4+Pj4+ICsrKyBiL3hl
bi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+Pj4+Pj4+Pj4gQEAgLTQ1MSw2ICs0NTEsMzIgQEAg
c3RhdGljIHZvaWQgY21kX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25l
ZCBpbnQgcmVnLA0KPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUxNihwZGV2
LT5zYmRmLCByZWcsIGNtZCk7DQo+Pj4+Pj4+Pj4+ICAgICAgfQ0KPj4+Pj4+Pj4+PiAgICAgIA0K
Pj4+Pj4+Pj4+PiArc3RhdGljIHZvaWQgZ3Vlc3RfY21kX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lf
ZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQzMl90IGNtZCwgdm9pZCAqZGF0YSkNCj4+Pj4+Pj4+Pj4gK3sNCj4+
Pj4+Pj4+Pj4gKyAgICAvKiBUT0RPOiBBZGQgcHJvcGVyIGVtdWxhdGlvbiBmb3IgYWxsIGJpdHMg
b2YgdGhlIGNvbW1hbmQgcmVnaXN0ZXIuICovDQo+Pj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+Pj4gKyAg
ICBpZiAoIChjbWQgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUpID09IDAgKQ0KPj4+Pj4+Pj4+
PiArICAgIHsNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgLyoNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgICog
R3Vlc3Qgd2FudHMgdG8gZW5hYmxlIElOVHguIEl0IGNhbid0IGJlIGVuYWJsZWQgaWY6DQo+Pj4+
Pj4+Pj4+ICsgICAgICAgICAqICAtIGhvc3QgaGFzIElOVHggZGlzYWJsZWQNCj4+Pj4+Pj4+Pj4g
KyAgICAgICAgICogIC0gTVNJL01TSS1YIGVuYWJsZWQNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgICov
DQo+Pj4+Pj4+Pj4+ICsgICAgICAgIGlmICggcGRldi0+dnBjaS0+bXNpLT5lbmFibGVkICkNCj4+
Pj4+Pj4+Pj4gKyAgICAgICAgICAgIGNtZCB8PSBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEU7DQo+
Pj4+Pj4+Pj4+ICsgICAgICAgIGVsc2UNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgew0KPj4+Pj4+Pj4+
PiArICAgICAgICAgICAgdWludDE2X3QgY3VycmVudF9jbWQgPSBwY2lfY29uZl9yZWFkMTYocGRl
di0+c2JkZiwgcmVnKTsNCj4+Pj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4+PiArICAgICAgICAgICAgaWYg
KCBjdXJyZW50X2NtZCAmIFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRSApDQo+Pj4+Pj4+Pj4+ICsg
ICAgICAgICAgICAgICAgY21kIHw9IFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRTsNCj4+Pj4+Pj4+
Pj4gKyAgICAgICAgfQ0KPj4+Pj4+Pj4+IFRoaXMgbGFzdCBwYXJ0IHNob3VsZCBiZSBBcm0gc3Bl
Y2lmaWMuIE9uIG90aGVyIGFyY2hpdGVjdHVyZXMgd2UNCj4+Pj4+Pj4+PiBsaWtlbHkgd2FudCB0
aGUgZ3Vlc3QgdG8gbW9kaWZ5IElOVHggZGlzYWJsZSBpbiBvcmRlciB0byBzZWxlY3QgdGhlDQo+
Pj4+Pj4+Pj4gaW50ZXJydXB0IGRlbGl2ZXJ5IG1vZGUgZm9yIHRoZSBkZXZpY2UuDQo+Pj4+Pj4+
PiBXZSBjYW5ub3QgYWxsb3cgYSBndWVzdCB0byBjbGVhciB0aGUgYml0IHdoZW4gaXQgaGFzIE1T
SSAvIE1TSS1YDQo+Pj4+Pj4+PiBlbmFibGVkIC0gb25seSBvbmUgb2YgdGhlIHRocmVlIGlzIHN1
cHBvc2VkIHRvIGJlIGFjdGl2ZSBhdCBhIHRpbWUuDQo+Pj4+Pj4+PiAoSU9XIHNpbWlsYXJseSB3
ZSBjYW5ub3QgYWxsb3cgYSBndWVzdCB0byBlbmFibGUgTVNJIC8gTVNJLVggd2hlbg0KPj4+Pj4+
Pj4gdGhlIGJpdCBpcyBjbGVhci4pDQo+Pj4+Pj4+IFN1cmUsIGJ1dCB0aGlzIGNvZGUgaXMgbWFr
aW5nIHRoZSBiaXQgc3RpY2t5LCBieSBub3QgYWxsb3dpbmcNCj4+Pj4+Pj4gSU5UWF9ESVNBQkxF
IHRvIGJlIGNsZWFyZWQgb25jZSBzZXQuIFdlIGRvIG5vdCB3YW50IHRoYXQgYmVoYXZpb3Igb24N
Cj4+Pj4+Pj4geDg2LCBhcyBhIGd1ZXN0IGNhbiBkZWNpZGUgdG8gdXNlIE1TSSBvciBJTlR4LiBU
aGUgZWxzZSBicmFuY2ggbmVlZHMNCj4+Pj4+Pj4gdG8gYmUgQXJtIG9ubHkuDQo+Pj4+Pj4gSXNu
J3QgdGhlICJlbHNlIiBwYXJ0IHF1ZXN0aW9uYWJsZSBldmVuIG9uIEFybT8NCj4+Pj4+IEl0IGlz
LiBPbmNlIGZpeGVkIEkgY2FuJ3Qgc2VlIGFueXRoaW5nIEFybSBzcGVjaWZpYyBoZXJlDQo+Pj4+
IFdlbGwsIEkgaGF2ZSBsb29rZWQgYXQgdGhlIGNvZGUgb25lIG1vcmUgdGltZSBhbmQgZXZlcnl0
aGluZyBzZWVtcyB0bw0KPj4+PiBiZSBvayB3cnQgdGhhdCBzdGlja3kgYml0OiB3ZSBoYXZlIDIg
aGFuZGxlcnMgd2hpY2ggYXJlIGNtZF93cml0ZSBhbmQNCj4+Pj4gZ3Vlc3RfY21kX3dyaXRlLiBU
aGUgZm9ybWVyIGlzIHVzZWQgZm9yIHRoZSBoYXJkd2FyZSBkb21haW4gYW5kIGhhcw0KPj4+PiAq
bm8gcmVzdHJpY3Rpb25zKiBvbiB3cml0aW5nIFBDSV9DT01NQU5EIHJlZ2lzdGVyIGNvbnRlbnRz
IGFuZCB0aGUgbGF0ZXINCj4+Pj4gaXMgb25seSB1c2VkIGZvciBndWVzdHMgYW5kIHdoaWNoIGRv
ZXMgaGF2ZSByZXN0cmljdGlvbnMgYXBwbGllZCBpbg0KPj4+PiBlbXVsYXRlX2NtZF9yZWcgZnVu
Y3Rpb24uDQo+Pj4+DQo+Pj4+IFNvLCBmb3IgdGhlIGhhcmR3YXJlIGRvbWFpbiwgdGhlcmUgaXMg
bm8gInN0aWNreSIgYml0IHBvc3NpYmxlIGFuZCBmb3IgdGhlDQo+Pj4+IGd1ZXN0IGRvbWFpbnMg
aWYgdGhlIHBoeXNpY2FsIGNvbnRlbnRzIG9mIHRoZSBQQ0lfQ09NTUFORCByZWdpc3Rlcg0KPj4+
PiBoYXMgUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFIGJpdCBzZXQgdGhlbiB0aGUgZ3Vlc3QgaXMg
ZW5mb3JjZWQgdG8NCj4+Pj4gdXNlIFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRSBiaXQgc2V0Lg0K
Pj4+Pg0KPj4+PiBTbywgZnJvbSBoYXJkd2FyZSBkb21haW4gUE9WLCB0aGlzIHNob3VsZCBub3Qg
YmUgYSBwcm9ibGVtLCBidXQgZnJvbQ0KPj4+PiBndWVzdHMgdmlldyBpdCBjYW4uIExldCdzIGlt
YWdpbmUgdGhhdCB0aGUgaGFyZHdhcmUgZG9tYWluIGNhbiBoYW5kbGUNCj4+Pj4gYWxsIHR5cGVz
IG9mIGludGVycnVwdHMsIGUuZy4gSU5UeCwgTVNJLCBNU0ktWC4gSW4gdGhpcyBjYXNlIHRoZSBo
YXJkd2FyZQ0KPj4+PiBkb21haW4gY2FuIGRlY2lkZSB3aGF0IGNhbiBiZSB1c2VkIGZvciB0aGUg
aW50ZXJydXB0IHNvdXJjZSAoYWdhaW4sIG5vDQo+Pj4+IHJlc3RyaWN0aW9uIGhlcmUpIGFuZCBw
cm9ncmFtIFBDSV9DT01NQU5EIGFjY29yZGluZ2x5Lg0KPj4+PiBHdWVzdCBkb21haW5zIG5lZWQg
dG8gYWxpZ24gd2l0aCB0aGlzIGNvbmZpZ3VyYXRpb24sIGUuZy4gaWYgSU5UeCB3YXMgZGlzYWJs
ZWQNCj4+Pj4gYnkgdGhlIGhhcmR3YXJlIGRvbWFpbiB0aGVuIElOVHggY2Fubm90IGJlIGVuYWJs
ZWQgZm9yIGd1ZXN0cw0KPj4+IFdoeT8gSXQncyB0aGUgRG9tVSB0aGF0J3MgaW4gY29udHJvbCBv
ZiB0aGUgZGV2aWNlLCBzbyBpdCBvdWdodCB0bw0KPj4+IGJlIGFibGUgdG8gcGljayBhbnkgb2Yg
dGhlIHRocmVlLiBJIGRvbid0IHRoaW5rIERvbTAgaXMgaW52b2x2ZWQgaW4NCj4+PiBoYW5kbGlu
ZyBvZiBpbnRlcnJ1cHRzIGZyb20gdGhlIGRldmljZSwgYW5kIGhlbmNlIGl0cyBvd24gImRpc2xp
a2UiDQo+Pj4gb2YgSU5UeCBvdWdodCB0byBvbmx5IGV4dGVuZCB0byB0aGUgcGVyaW9kIG9mIHRp
bWUgd2hlcmUgRG9tMCBpcw0KPj4+IGNvbnRyb2xsaW5nIHRoZSBkZXZpY2UuIFRoaXMgd291bGQg
YmUgZGlmZmVyZW50IGlmIFhlbidzIHZpZXcgd2FzDQo+Pj4gZGlmZmVyZW50LCBidXQgYXMgd2Ug
c2VlbSB0byBhZ3JlZSBYZW4ncyByb2xlIGhlcmUgaXMgc29sZWx5IHRvDQo+Pj4gcHJldmVudCBp
bnZhbGlkIGNvbWJpbmF0aW9ucyBnZXR0aW5nIGVzdGFibGlzaGVkIGluIGhhcmR3YXJlLg0KPj4g
T24gdG9wIG9mIGEgUENJIGRldmljZSB0aGVyZSBpcyBhIHBoeXNpY2FsIGhvc3QgYnJpZGdlIGFu
ZA0KPj4gcGh5c2ljYWwgYnVzIHRvcG9sb2d5IHdoaWNoIG1heSBpbXBvc2UgcmVzdHJpY3Rpb25z
IGZyb20NCj4+IERvbTAgUE9WIG9uIHRoYXQgcGFydGljdWxhciBkZXZpY2UuDQo+IFdlbGwsIHN1
Y2ggcGh5c2ljYWwgcmVzdHJpY3Rpb25zIG1heSBtZWFuIElOVHggZG9lc24ndCBhY3R1YWxseSB3
b3JrLA0KPiBidXQgdGhpcyB3b24ndCBtZWFuIHRoZSBEb21VIGlzbid0IGZyZWUgaW4gY2hvb3Np
bmcgdGhlIGJpdCdzIHNldHRpbmcuDQo+IFRoZSBiaXQgbWVyZWx5IGNvbnRyb2xzIHdoZXRoZXIg
dGhlIGRldmljZSBpcyBhbGxvd2VkIHRvIGFzc2VydCBpdHMNCj4gaW50ZXJydXB0IHBpbi4gSGVu
Y2UgLi4uDQo+DQo+PiBTbywgZXZlcnkgUENJIGRldmljZQ0KPj4gYmVpbmcgcGFzc2VkIHRocm91
Z2ggdG8gYSBEb21VIG1heSBoYXZlIGRpZmZlcmVudCBJTlR4DQo+PiBzZXR0aW5ncyB3aGljaCBk
byBkZXBlbmQgb24gRG9tMCBpbiBvdXIgY2FzZS4NCj4gLi4uIEknbSBzdGlsbCB1bmNvbnZpbmNl
ZCBvZiB0aGlzLg0KT2ssIHNvIEkgY2FuIGFjY2VwdCBhbnkgc3VnZ2VzdGlvbiBob3cgdG8gc29s
dmUgdGhpcy4gSXQgc2VlbXMgdGhhdA0Kd2UgYWxyZWFkeSBoYXZlIG51bWJlciBvZiBubyBnbyBz
Y2VuYXJpb3MgaGVyZSwgYnV0IHN0aWxsIGl0IGlzIG5vdA0KY2xlYXIgdG8gbWUgd2hhdCBjb3Vs
ZCBiZSBhbiBhY2NlcHRhYmxlIGFwcHJvYWNoIGhlcmUuIE5hbWVseToNCndoYXQgZG8gd2UgZG8g
d2l0aCBJTlR4IGJpdCBmb3IgZ3Vlc3RzPw0KMS4gSSBjYW4gbGVhdmUgaXQgYXMgaXMgaW4gdGhl
IHBhdGNoDQoyLiBJIGNhbiByZW1vdmUgSU5UeCBlbXVsYXRpb24gYW5kIGxldCB0aGUgZ3Vlc3Qg
ZGVjaWRlIGFuZCBwcm9ncmFtIElOVHgNCjMuIFdoYXQgZWxzZSBjYW4gSSBkbz8NCj4NCj4gSmFu
DQo+DQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:39:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220673.382027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCjo-0001xZ-Jv; Wed, 03 Nov 2021 09:39:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220673.382027; Wed, 03 Nov 2021 09:39:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCjo-0001xS-Gx; Wed, 03 Nov 2021 09:39:20 +0000
Received: by outflank-mailman (input) for mailman id 220673;
 Wed, 03 Nov 2021 09:39:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4+yV=PW=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1miCjn-0001xM-6Z
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 09:39:19 +0000
Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id abc83d9c-a535-4eeb-a451-4e82e1293dab;
 Wed, 03 Nov 2021 09:39:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abc83d9c-a535-4eeb-a451-4e82e1293dab
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635932356;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=coQj0xLIQGQXzSQ42fasbdr/+h/eBGPlSgEJ/CcXD+A=;
  b=gjItZPSsMoo5Hnw82dIVDy3N2n+zSyx8CCrzwVsdgAxyjl315wVgC7Cr
   1FJETpxbPj8q2u7LdQWurmUf96m5FrZUAmdp2vXbXqQyMva5XyxtTw0bZ
   mP2wIBuFtHDPrzIEAPQkWVJEeUyVskA/XekjtsJ2g7rdDv5DCGAIDv85M
   s=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: ztPRnpfTz4zkyCNphdayBXdBXYIDnNHAMrmTMUul6ozTkgOey0G7HI267QfFl2hD/IEpOq15lA
 TDMe+uGkbSffyPYz47liHKGRFybw41bQHDdAEAIxIFTJZWvHvtQz7V/3NeuL55YmXtpx08La64
 CF4+IS1w7quUUIJ5i9V8RFdvbHu8qMLqNY7KikZgvzQ01ohK6I3hyIv5UshtvhVZwYeUohhhyD
 tE+jNpEnk+JCH7cPY4AwwzNDW513LuQerf4ugZYeyaemJkEaD+QGIsLIHc9gX/Fgi7rB7b8FSE
 zYjr8REJBPdeyM+th4b5lNV2
X-SBRS: 5.1
X-MesageID: 56934954
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:8wqUQaoRA8sM97nSMfqt3rW5xXBeBmIsYxIvgKrLsJaIsI4StFCzt
 garIBnTO/2PYTH3KN1+bd7npBgPupWEyt9iHQNl/ilnRS9B8puZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IDiW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCncGrYCcnO5HrocM+Tz9nIzxZOIJPpZaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFJkYtXx6iynQEN4tQIzZQrWM7thdtNs1rp0QTK2CN
 pdFAdZpRCniOR1GMRQSMbkdrL63i3mnKxMCi13A8MLb5ECMlVcsgdABKuH9U8aWSMBiu1eXr
 2PL4Uz0GhgfcteYzFKtzHWogePemDLhb6gbHra46/1CjUWawyoYDxh+fVG2u+Wjg0iyHddWM
 VUJ+zEGpLI3skesS7HVWhyzoHeA+BkGSddUO+Qg7UeGza+8yxyQBnUACCVAbtMmnMYsQHoh0
 Vrht/TtCD90ubuZU0Wh56yUpjO/PysSBWIabCpCRgwAi/HhqowuihPETv54DbW4yNbyHFnY5
 DSHrzM3gbkJuucN27+m5lDMgz+qpZ/hQxY840PcWWfNxhN0YsupapKl7XDf7O1cN8CJQ1+Zp
 n8GlsOCqucUAvmljzeRSe8AGLWo4fetMzDGh1NrWZ47+FyF+WOnfI1WyCFzIgFuKMlsRNPyS
 BaN40ULvsYVZSb0K/8sC26sNyg05fX7PPTrU8zzV/1tfr5ORBKg+Q5nOGfFiggBj3MQua04P
 J6ad+OlAnAbFblrwVKKegsN7VM47ntgnD2OHPgX2zziiOPDPyDNFd/pJXPXNrhhhJ5otjk55
 Dq22yGi7xxEGNPzbSDMmWL4BQBbdCNrbXwaRiE+SwJiHuaEMD1+YxMy6el4E2CAo0izvr2Wl
 p1achUJoGcTfVWddW23holLMdsDp6pXo3MhJjALNl21wXUlaovHxP5BLMZnIul5rLY/naEco
 xw5lyOoWKonptPvoGx1UHUAhNY6KETDafymZnLNjMcDk25IGFWSp46MkvrH/ygSFCun3fbSU
 JX7vj43taErHlw4ZO6PMarH5wro4RA1xbIjN2OVc4I7UBi9r+BXx9nZ06Zfzzckck6YmFN3F
 m++XH8lmAU6i9Rpq4KR1fzf9NrB/ikXNhMyIlQ3JI2ebEHy1mGi3ZVBQKCPezXcX3nz46Kse
 aNeyPSUDRHNtA0iX1NUH+k5wKQgycHoorMGnA1oEG+SNwagC696I2nA1s5K7/UfyrhcsAqwe
 0SO5tgFZunZZJK7SAYcdFg/c+CO9fAIgT2Ov/47F1r3uX1s972dXEQMYxTV0H5BLKF4OZ8Oy
 Ps6vJJE8BS2jxcna47Uji1d+2mWAGYHVqEr6sMTDIPx01J5wVBee53MTCTx5cjXOdlLN0ArJ
 B6ShbbD2OsAlhaTLSJrGCGUj+RHhJkItBRb93M4JgyEyojfm/s6/BxN6jBrHA5b+QpKjrBoM
 W9xOkwreajXp2V0hNJOVnyHEh1aAEHL4VT4zlYEmTGLT0SsUWCRfmQxNfzUoRIc+mNYODNa4
 KuZ2CDuVjOzJJP92S47WEhErf3/TIMuql2eyZ7/R8nVTYMnZTfFg7O1YTtaohTqNso9mUnbq
 LQ45+13c6D6aXYdrqBT51N2DljMpMRo/FB/fMw=
IronPort-HdrOrdr: A9a23:LG0ZY68YFpQAVkCOurtuk+FCdb1zdoMgy1knxilNoENuHfBwxv
 rDoB1E73LJYVYqOU3Jmbi7Sc69qFfnhORICO4qTMqftWjdyRCVxeRZg7cKrAeQeREWmtQtsJ
 uINpIOdOEYbmIK/PoSgjPIaurIqePvmMvD5Za8vgdQpENRGtldBm9Ce3im+yZNNW977PQCZf
 6hDp0tnUveRZ1bVLXwOlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJr3CQKR0BsyWy5Ghe5Kyx
 mIryXJooGY992rwB7V0GHeq7xQhdva09NGQOiBkNIcJDnAghuhIK5hR7qBljYop/zH0idmrP
 D85zMbe+hj4XLYeW+45TPrxgnbyT4rr0TvzFeJ6EGT6PDRdXYfMY5slIhZehzW5w4Lp9dnyp
 9G2Gqfqt5+EQ7AtD6V3amIazha0m6P5VYym+8aiHJSFaEEbqVKkIAZ9ERJVL8dASPB7pw9Gu
 UGNrCT2B9vSyLYU5nlhBgs/DT1NU5DWytuA3Jy9fB96gIm3EyQlCAjtYgidnRpzuNKd3AL3Z
 WCDk1SrsA9ciYhV9MLOA4we7rFNoXze2O4DIuzGyWuKEhVAQOHl3bIiI9FkN1CPqZ4iqcPpA
 ==
X-IronPort-AV: E=Sophos;i="5.87,205,1631592000"; 
   d="scan'208";a="56934954"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SxtaiTRpSSwDkRM2kSKsG6fZGsdoDF521WLV/yASqf6j0pG1QLFA+tjeesIS8zBAZjAzhoW+kMia12xkQS7d6aBBIhfNG+nyFbwtg+B47ET4BotZ3JhsdFXqiASbhnJzb443daSsng1Q6A38V3YeovTbOvl7SwVDo0/Stp7xy93ebA7SdNsMVkPb227JK0VJdy0HG/Jh6Aa1pT1fLMhuGCkLY67SceRK9nbCKlOZt+2e7YZwCv23UxT9kXgyR91NV/qggI3ZDVwxvd4ulzcqRnpInP3ZfZvPzIUW0/ftDD2gIbdZX0tfdDEhtaMm4pjGfSsGbTw2Wqj4w0Gz8V3ZRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Yz91ISBCw8rK9WIlOy/RAh/PqrG+0J2bQM03SsiPOxk=;
 b=SNszv9Mo0/W8stZ+Nq9gtz2B8fs0fLuUGrRkaDnOacK/vF1pJ5AF9LJd1CfmuRmejVs6pE7LsEnyv6e60oc87Cx/G58JBiRG249nymhUF/UBui5YR2s1BPsZEWSNe7XqFJMNcIAWxfOnMtzraeWnBZ74YJywXMjyJUQvuPNAsOe5iM+MSUE/FinehHjZUlqVur9XNcKODO6uk9som1VDgaoENeo2P1p4mPRtYq5i2H+A9iu36wZdjeUuw0e/2SM2NtFJtLaA9KH5L3SrAEJj9GOFfXAZOwn/E95KI4OW9G+f3kY2DDFIXuP43XOPvPfxemgHzV5rKkKGGjj+uF0g+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Yz91ISBCw8rK9WIlOy/RAh/PqrG+0J2bQM03SsiPOxk=;
 b=diZcDDMcMk9smmFR7rgEsVMicGL6azBAPz+HVz2eu3DzsyPC5e1T+vufQEQ8T8Td2Ys4aMqJhiTIRLJmtYKh/CHAmdLMTbyshMpue0moXh+tsxo91Nrd64JjtMJgQ2CHpNReruXjBtD+jQT7KZ5tGVt2zPZZOp23MNMd9QBlEWs=
Date: Wed, 3 Nov 2021 10:39:06 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "julien@xen.org" <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, Michal Orzel <michal.orzel@arm.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Message-ID: <YYJYurhhGGvjRSfH@Air-de-Roger>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
X-ClientProxiedBy: MR2P264CA0132.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:30::24) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ee01d3af-e3d5-4ff7-b542-08d99eadcb2f
X-MS-TrafficTypeDiagnostic: DM6PR03MB4540:
X-Microsoft-Antispam-PRVS: <DM6PR03MB45400B2C258D51B7BE23009D8F8C9@DM6PR03MB4540.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: IdQpmLx2Spxy2Zm3UUAV/EhZYwWUp3GU5cJyguKysV5AXjoTI9Lpygw/JKSwhIp+TpUj0kbL+5mHdDaB08eG8EsNq3qkRrZ9FSGCCfK7ZDrEkwAs6VbbKRi9s6I2vRiy/52tmhGzKscpHqI8X0yBRixs1yRoQjXwxI8wWPAJxUMIcOMTj/XiIMu7a4EgUEWKADa5JBHXB9sM1h6OggtXKydM04XU3s24JeFnJwIcS4LoQZ6zb8Rsgr6hH0V71CGabFqK+eC95mh8y9XRxrzpfRoNk3n/ybY1ZpwUYRzDPXFUvwfdkHm6W96PUSu/cJZ/epCT5jCvuS5573zABoTtNbYo3ANR/a1q0Y3Byw2AJtgJ+KOu+HgvwRY1on2UKFhBwoTeOg1eFnTCvoNOThZ+TYR/RKQj6bAsnIqyelVBLkgohYm0kVHzS5TPoEl3kTE5433gA4GxwrBsSAikXxsUDFeeSbTFQ44SJLk6k8ZIR2L+lOWmeQ1Q30+5FgbHthCY0JI0BPJFbuyT2eWSw+Jcc6JKX+Y//wzUnIvWRm8yTbHdG0gODwNFcosWkDVdBKRbEnm3vyTtzS7gFeiXf3/YtzJOLlR8CmRvkn19y/YrFSJEgmC6W7wnnqib0Pqinfjc/pAnjhFqwr36W1YmdI6n/w==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(508600001)(26005)(6496006)(85182001)(5660300002)(2906002)(86362001)(33716001)(53546011)(186003)(6666004)(7416002)(6486002)(66556008)(6916009)(956004)(66946007)(8676002)(8936002)(82960400001)(66476007)(316002)(38100700002)(54906003)(4326008)(9686003)(83380400001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MnJGVVlROWtJMG0zWnRmRU5wZnh5RGwzYUdtOWdKZWhINkVJTDZHeC9nV2Er?=
 =?utf-8?B?YTJ6OU00dmorbm5nZXlSaUxubUxGMGZLRFhJbGpmc3A3TUpmUHpha1FzMks2?=
 =?utf-8?B?ZXVMMUNSd1JJRHNiay9CVkZYTldQTFo1ZTYxZmpReEhMRTVldVhneWpqL3ll?=
 =?utf-8?B?NmJTWVJiOGs1dGpGM2ZvajM2VkR6RnVVUGprK1NucDd5OHBSdXc3ZUdYWEUx?=
 =?utf-8?B?ZmVZTHZMSVJvK2RrYWJ0ckZ5VUNaSUdjTXdwMy9WUlgyMWh5QXM0RHJFTUpB?=
 =?utf-8?B?SS9xSnZSRDRNczc0VERRd2NjYWNBM3ZicCtUWXprbXg0RVorRitYT3Jlby9R?=
 =?utf-8?B?WEZHVUtFMHl0eVM1SVhSZ0dmUjhFT1F0cHluRXVaajRFb3o3MW1uQWUzMGdD?=
 =?utf-8?B?SU9uTzlaVGErYzE3SFNvUzkrN1plalRoYjNNVk1RS29TTE5DVUc4NUFJdTZY?=
 =?utf-8?B?YlVDaXU3ZWtIQ3dPUW1WejgxQ3B4SkxmNkUwc0R2ckF6OUJ4dnZMTVpnbzh6?=
 =?utf-8?B?bmtrSUhnYktvdmxJeXlVZTNXZmZXYldHYjU2U0t5UlJzblU0UFNBQ00xRDlV?=
 =?utf-8?B?clhDemJXdHlGYmNLNTd6L0lqenkvUEw5ZVJvODJQdFhSQnFDUHdhZ1RGSS9w?=
 =?utf-8?B?Rlh5ZHFCanRWUDZyUmJoR3JFT3NPUzM0N2lmdzBHc2dMRlpkYzhiQ2tiUFpv?=
 =?utf-8?B?aVFCZjlIOEthdHVXeXZ3MTFVRHgvMlhxVXV2ZjVaclBDeXZWK3c4VUJLdTF0?=
 =?utf-8?B?ZHZGZ1lCSjB5UTFQQXhocmNhTXU0a1JEbWc2aUovWFRZZkllRlBBYWhZVUw4?=
 =?utf-8?B?SnRrVU1jRW1KVjVQbHhxNmRpYTJFRHpQbU5aLzlGYmVaaE5XTnBCTGsxN3Nt?=
 =?utf-8?B?ZnV0ZlQ3L0NiQTE1U0RMS1ArNHBCY1pRQnp4NnFWMTMrMGFwbzVaa2lyczlN?=
 =?utf-8?B?NW1Kb3lnUEFUS0Z6SmhiZ3BBWUMybkh1TGdnUk5GUVRPREpxS2J0ZGRyUGNy?=
 =?utf-8?B?Nk5hblVCc1hYMFVLUUFWd2pVYitVVmhOWW91SzcvNmV0QVNUNERKOWM0aHZk?=
 =?utf-8?B?eDdjMVpmR0pTZTNreUVtOUhsYjYwZWNWM0U1dHg5NGEzYjZtbmtxVnNzVFJa?=
 =?utf-8?B?S1A0SjltTDFaRkQ3Vzk5R3RwMUN2cHF5RHo0Z0VzaWFoamhSMWhERzByYUVv?=
 =?utf-8?B?emFhUDV5b045ZkQ3OTdMZXlFNkhib3FOUE1JL2EyUVI2azh0MkNOUm44K2h4?=
 =?utf-8?B?b0hsL0pWcTlLNER4cmNFYWVWUzU3dGhHZlErcEhXQXFJOXc5OVozVC8vbnBY?=
 =?utf-8?B?cFhoVzZ3a2xCWkthTFVlUiswQ29wOFRCb1FQdXhOUnVCRDk2ejNTR2lIYWRK?=
 =?utf-8?B?UmJtQVdFbWFJOUNWYVVlRTNyc2FIVGpLYkR2bUF1WVVqaFZrdmUxMXRrS0Rn?=
 =?utf-8?B?RVBabU5KM0RNNXBLNFZaMDlQUWtVR1M0MEFVM3NSUjQ3MFFpSGJvSUtYQ21K?=
 =?utf-8?B?Q0xPTEg0TWNTVnJRdFF1SlYrVkpmbGpDQmo2ODE0OXh2OVBSZjlsNGo2cjVV?=
 =?utf-8?B?UE5vQmVaRFY0cTgzS3c5ZGJ6Tjg3UndRZ25TdWlpdHNpaThGdmRjOUJId0c3?=
 =?utf-8?B?S3AySjZqdWROYWEyQS9USW9hNmo4VUFCT0VDTU13aCtacFh6WTgrUVViTi9y?=
 =?utf-8?B?UFhrc2YvU2RQeVJ0YTB2cERZYTcwZlk1QldYdjZwWThUSDJnblJJSjBWdEhG?=
 =?utf-8?B?UW15bzNEV0NEa0wvd05VV3d3K2hRcU0yNy9XWEJOc3VqODQyOHJDUmRCdjNG?=
 =?utf-8?B?TFBLTFlaZGRnV1VVOFl4NHJSbDVZSEdGSGlGLzJWRU9pdCtLQkh3OXJ5bmYv?=
 =?utf-8?B?YmJzaXZOdGZxVVFQMno1QllmbHVLa0hKKzRQdjdEenZ4d2dYWFpSbzM1bnNB?=
 =?utf-8?B?UnJKZ3FQZE1vREJ3UldRdVFvOG1mcVN4bXF2UkFXb0V6d244N1BPZk9oWG5l?=
 =?utf-8?B?Z3MzcU9TM240UDk2OU45dDd4ZVZyL1Z1NW4rb1JTT29iVmlpbHhYYkFPN1Zw?=
 =?utf-8?B?MDlYcHFjY2t1ZXl0d0tQalk4ZU10WjFEaWZMVTdMaVZtcVlSeExubmYxSFdD?=
 =?utf-8?B?QUY0czlCMzkxVENHcnQwLzVnZWpIckp2N1d6dTBEdlhYT2lHNkdJWW1vYkxy?=
 =?utf-8?Q?fmXBa1uCWu3WnzBkrZU6LFA=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: ee01d3af-e3d5-4ff7-b542-08d99eadcb2f
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 09:39:12.5974
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: l/WnCDe6YHM9gV6zCdGoqMYMKalqHGFlhWN5pj0YFGdf7IhLrBJ8o0G2JxbJlBApsH0juuzuV6w1qAklob6YVg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4540
X-OriginatorOrg: citrix.com

On Wed, Nov 03, 2021 at 09:18:03AM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 03.11.21 11:11, Jan Beulich wrote:
> > On 03.11.2021 09:53, Oleksandr Andrushchenko wrote:
> >>
> >> On 02.11.21 16:10, Oleksandr Andrushchenko wrote:
> >>> On 02.11.21 15:54, Jan Beulich wrote:
> >>>> On 02.11.2021 12:50, Roger Pau Monné wrote:
> >>>>> On Tue, Nov 02, 2021 at 12:19:13PM +0100, Jan Beulich wrote:
> >>>>>> On 26.10.2021 12:52, Roger Pau Monné wrote:
> >>>>>>> On Thu, Sep 30, 2021 at 10:52:20AM +0300, Oleksandr Andrushchenko wrote:
> >>>>>>>> --- a/xen/drivers/vpci/header.c
> >>>>>>>> +++ b/xen/drivers/vpci/header.c
> >>>>>>>> @@ -451,6 +451,32 @@ static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
> >>>>>>>>             pci_conf_write16(pdev->sbdf, reg, cmd);
> >>>>>>>>     }
> >>>>>>>>     
> >>>>>>>> +static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
> >>>>>>>> +                            uint32_t cmd, void *data)
> >>>>>>>> +{
> >>>>>>>> +    /* TODO: Add proper emulation for all bits of the command register. */
> >>>>>>>> +
> >>>>>>>> +    if ( (cmd & PCI_COMMAND_INTX_DISABLE) == 0 )
> >>>>>>>> +    {
> >>>>>>>> +        /*
> >>>>>>>> +         * Guest wants to enable INTx. It can't be enabled if:
> >>>>>>>> +         *  - host has INTx disabled
> >>>>>>>> +         *  - MSI/MSI-X enabled
> >>>>>>>> +         */
> >>>>>>>> +        if ( pdev->vpci->msi->enabled )
> >>>>>>>> +            cmd |= PCI_COMMAND_INTX_DISABLE;
> >>>>>>>> +        else
> >>>>>>>> +        {
> >>>>>>>> +            uint16_t current_cmd = pci_conf_read16(pdev->sbdf, reg);
> >>>>>>>> +
> >>>>>>>> +            if ( current_cmd & PCI_COMMAND_INTX_DISABLE )
> >>>>>>>> +                cmd |= PCI_COMMAND_INTX_DISABLE;
> >>>>>>>> +        }
> >>>>>>> This last part should be Arm specific. On other architectures we
> >>>>>>> likely want the guest to modify INTx disable in order to select the
> >>>>>>> interrupt delivery mode for the device.
> >>>>>> We cannot allow a guest to clear the bit when it has MSI / MSI-X
> >>>>>> enabled - only one of the three is supposed to be active at a time.
> >>>>>> (IOW similarly we cannot allow a guest to enable MSI / MSI-X when
> >>>>>> the bit is clear.)
> >>>>> Sure, but this code is making the bit sticky, by not allowing
> >>>>> INTX_DISABLE to be cleared once set. We do not want that behavior on
> >>>>> x86, as a guest can decide to use MSI or INTx. The else branch needs
> >>>>> to be Arm only.
> >>>> Isn't the "else" part questionable even on Arm?
> >>> It is. Once fixed I can't see anything Arm specific here
> >> Well, I have looked at the code one more time and everything seems to
> >> be ok wrt that sticky bit: we have 2 handlers which are cmd_write and
> >> guest_cmd_write. The former is used for the hardware domain and has
> >> *no restrictions* on writing PCI_COMMAND register contents and the later
> >> is only used for guests and which does have restrictions applied in
> >> emulate_cmd_reg function.
> >>
> >> So, for the hardware domain, there is no "sticky" bit possible and for the
> >> guest domains if the physical contents of the PCI_COMMAND register
> >> has PCI_COMMAND_INTX_DISABLE bit set then the guest is enforced to
> >> use PCI_COMMAND_INTX_DISABLE bit set.
> >>
> >> So, from hardware domain POV, this should not be a problem, but from
> >> guests view it can. Let's imagine that the hardware domain can handle
> >> all types of interrupts, e.g. INTx, MSI, MSI-X. In this case the hardware
> >> domain can decide what can be used for the interrupt source (again, no
> >> restriction here) and program PCI_COMMAND accordingly.
> >> Guest domains need to align with this configuration, e.g. if INTx was disabled
> >> by the hardware domain then INTx cannot be enabled for guests
> > Why? It's the DomU that's in control of the device, so it ought to
> > be able to pick any of the three. I don't think Dom0 is involved in
> > handling of interrupts from the device, and hence its own "dislike"
> > of INTx ought to only extend to the period of time where Dom0 is
> > controlling the device. This would be different if Xen's view was
> > different, but as we seem to agree Xen's role here is solely to
> > prevent invalid combinations getting established in hardware.
> On top of a PCI device there is a physical host bridge and
> physical bus topology which may impose restrictions from
> Dom0 POV on that particular device. So, every PCI device
> being passed through to a DomU may have different INTx
> settings which do depend on Dom0 in our case.

Hm, it's kind of weird. What happens if you play with this bit and the
bridge doesn't support it?

Also note that your current code would allow a domU to set the bit if
previously unset, but it then won't allow the domU to clear it, which
doesn't seem to be exactly what you are aiming for.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:46:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:46:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220682.382037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCr2-0003RG-Hl; Wed, 03 Nov 2021 09:46:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220682.382037; Wed, 03 Nov 2021 09:46:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCr2-0003R9-EZ; Wed, 03 Nov 2021 09:46:48 +0000
Received: by outflank-mailman (input) for mailman id 220682;
 Wed, 03 Nov 2021 09:46:47 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miCr1-0003R3-Eb
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 09:46:47 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 61a5624a-3e48-4a10-b535-186fb0c2c41e;
 Wed, 03 Nov 2021 09:46:46 +0000 (UTC)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2057.outbound.protection.outlook.com [104.47.1.57]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-40-Lujn4JKZNDCQEmWo5tuqfw-1; Wed, 03 Nov 2021 10:46:44 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6479.eurprd04.prod.outlook.com (2603:10a6:803:11c::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Wed, 3 Nov
 2021 09:46:43 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 09:46:43 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0034.eurprd06.prod.outlook.com (2603:10a6:203:68::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Wed, 3 Nov 2021 09:46:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61a5624a-3e48-4a10-b535-186fb0c2c41e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635932805;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=RyFH3m2z3koFwkumX+a/T7ah10X3tSzEHSnHjLv/4hU=;
	b=nwbPEhY1Rsr7ls+Os5whIUw/dn/NL1kYvRlqqNiEOHs5klrELtvweeVhgah/xySW65TGEJ
	/arjqFdqbvBOQ58TKUWhquWjUM5styxoCmnnOmzZuhHnJmY8gnQWhJGMGyf1qWmvZLKNZN
	jEtjil//Fffp+F+obi5Dhj5a09Z+VCs=
X-MC-Unique: Lujn4JKZNDCQEmWo5tuqfw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K9JNdBF1267VDnn55wn4QqbLGugDE14+oGJg4BVy/Uib6H7hLOkKUS+Ge6GFFvZ0PlcMDk12IDhFuIpAIEgeMrFiHi/tnc5w2aCTtSU50RAcymwo6rLttk0b82qg1jHP30I5pYOBxWlWVJtydi8OgLgg0A0YPAAhLpPba4YiM18Gm2re58X49tNvSkAlcJ8VuAK3/MqK6761m3zZc/P+vpzNN4mjp2kddgE06kL0ePahGKrChScHtE+6mnIBOEj5ZeDXx1IkjLNquBngmcme0T2Ps/hiUYukGnsqbEE8mziElwiXF30UQ7bpBU5Ud1goFe7AG4BgwatYKEPZ8whUYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dvNV62STTwPsY+cIkyXn9ZEE5IKaq1cOsNMugFm7rKk=;
 b=h4Fe56yFaZzMtuUbXZwSwuWHL8RbC7L5eBNTn4FXckb5S/xdaDr/MqfH9BlkdN59YxmLE8pJsBa/6nqgfEwIH0cXzgwL8+VyIckMtsDy8JwlypSpTBh+q59JYhJefp8ireC2hUmCe7ytKdroRzahuPb2Y8ueANOkbK2SLt/VHijNLf3001xa6Qa0YNvlMJErNUm8h/DDiOEAySQbpfgYOUpfPLtujpK5G0ikj0dno6/nuRQcQ/b6oxlxje8sJG53kUNWKYWk/Qyx6bU2HCKCXYvINCXnKZFQIYBmVxzU6GR39FLBUwNC9IYtXSv52R7j8RNNwtYL2GlDe0NfDoB4Gw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bcaf1547-98ae-923f-5be8-50156e318bf4@suse.com>
Date: Wed, 3 Nov 2021 10:46:40 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 3/3] AMD/IOMMU: iommu_enable vs iommu_intremap
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Paul Durrant <paul@xen.org>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <ff7b68b2-5bba-2927-e3f0-f3062862c466@suse.com>
 <YXaGxX3J1aB39mSG@MacBook-Air-de-Roger.local>
 <dd2929fc-dc1a-1c16-5954-6894766d9dda@suse.com>
 <YYEa6HQGR1cHJBw/@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYEa6HQGR1cHJBw/@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0601CA0034.eurprd06.prod.outlook.com
 (2603:10a6:203:68::20) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 91bc3d28-a619-44f2-21c1-08d99eaed7d3
X-MS-TrafficTypeDiagnostic: VE1PR04MB6479:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6479C767381B2899E7230AF3B38C9@VE1PR04MB6479.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1lO/TYDpTK5KaT2x2JZix7xYgE/y60pRfss9RHTreAeK/AyrtET1sJ2pGBl1ChOGO7x5OspULPn6Bz2IVyONx6E2lweFP4/b9ruk7rhpidTfSYGAOr4jqfUUWMmX9eGWR65ZYRuxz6IZZuL2+ZUJcxRnqnk/Tdje82YSOCLcCoOesa56vlyzINVuB/4BT5oFuQL7vse2YOc+Y6GaMJEmuTcuzVcEnvVwtnAqQXQLQeX8U4u4BqtYaYLaR7EzyFbDYeRikbKeEhIhNsln5nRIDs84FChHNCunIR8dXTvbu+8RdKIBHF+v3hW7uzbm9PsrGoXoQ8apgBSzkE86rCWmH9u1c5AXywEyKoR9LSoPLk5i5HZ2PtH/1a3T6a8DCB5rGe0CHfsZdRf+96VmVxOpof8aRF5dWhN6nBLXlh5AG99I+Vbn8fQOdNYA5uW9MOJWrBO+RVzFML68NOw/oGHmqX3r5FW+SgdvYe3rTVV2GjvEb3XzGLGS+wUeW7gXypgq0pZ2Ic5gOWtT34I8Zu+nEIYBIek1zej8KXaH0Ec2yGUSf/pkTM5lK2QMa6XvQ8GstQrXaWXce1u1U6Xgv0HwsrkL6e5im7Bd3zbhd+TEnwtXAG/hBp0SX+I6/SIqd9PLtP8jE713Zuf3+Yi+aVHovxuQDVZMB1B0QYbGyrmfW4ndq6fpYQ/IR5nm8/NZVRON6BeuHByqqYCM0tZU+UQPeQNR7JM5o4u7otM9PG3oFf8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(5660300002)(54906003)(6486002)(86362001)(316002)(83380400001)(508600001)(66556008)(66476007)(66946007)(4326008)(6916009)(36756003)(31696002)(16576012)(956004)(2616005)(8676002)(38100700002)(26005)(8936002)(2906002)(186003)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xIx27/qGSsCQOslJREVidy67vLKsFf3HlmR9xAzpXPMaUD6f6g/RAe8l2THq?=
 =?us-ascii?Q?4V4KqxNDIEZTh9QEwwdrhK38mKgGDM6nlubNXsoW49v8hghR8b7JP0J1euPs?=
 =?us-ascii?Q?GO66DBlZnHBGvUOEat3AI0fya7O6bdSKHxXreUBOEsSTcSAPgZlHo+G7ul0C?=
 =?us-ascii?Q?JUUQaI90rZZx1uo3IB4g1/ZtcVh3ZmvmhCWzMuuZNMtWvctw0lzQCLG5Mo+K?=
 =?us-ascii?Q?e3gXKqnfdSyJdcAXC1QW5u19ENHnwT61T9CeZ0otfWBllPKSVTUnSUny2XSF?=
 =?us-ascii?Q?yo7SadUl6b9KaiVeUsezHXk749QFNGCKE2xo0Auwr0zHE3P0bMdiVAJzuWzd?=
 =?us-ascii?Q?d+tybftogLc0TH+KU7fg5NVOg+F/UlKgFj+GtSz+eJTzGqlAXdBbYBbWvksd?=
 =?us-ascii?Q?bVOY+w5E1Yj8jbovigKs/jviTm2G8+a1dYjbN2ZadNnBw6uGkqp1xQaNyH5I?=
 =?us-ascii?Q?+1AE7Y5bs98ixrxwSL4etof1wAxiTeQn4Tda33WwBQfzA+hSH3mPjtPc4R3o?=
 =?us-ascii?Q?iPI0sOtfFmp+T2/bSFI74Yh1nFl5mMFi0xwZT+BBLcWF6+itKxRbZmLKx01c?=
 =?us-ascii?Q?R/VplOQ6AGcVjuA1tU7YVkncMgGyqCmnI7ItKA7Dm8t8Wo6lLvLMvqTT/us6?=
 =?us-ascii?Q?GC95vbog8weoimwLUgy7wLMw+GvsOaUB5ZKmdYERj0jD8XXDzCGcvAvnd7xm?=
 =?us-ascii?Q?cxtCFejFBVC9D1LHBN/MsF2vq9OgK9jxdNILZAkrwbW7WxJw77MTNvbmk+59?=
 =?us-ascii?Q?dLkHzkqBgeTgaefNQ21Hz3RYdtIG/7syIv+MehutFznLJK4Z3yLcdnGsmadR?=
 =?us-ascii?Q?DNcYM0UwkJZki9P37p0pcVhMYMvIE94uSbRRhpGDnky1Xj5R1bH6damQ5Gi3?=
 =?us-ascii?Q?8w2UlK1+HYLqJ6slHt133TBytMgMOig3Hd3/Ut0yoY88qm5+ckyD8hgx/917?=
 =?us-ascii?Q?g9FPF45kfBWLO0uNj+2E9dYhuMKju3/KLO9kV3YAu6616djLNuKVVlG0587c?=
 =?us-ascii?Q?wnbGXV6S46shJaKZh+JyiGniUjN0p29248zYlK3OBn8Zu4GBYHExI6xqiFce?=
 =?us-ascii?Q?xlINQDACUX1Ls1R9a20SvEokOoBgMuN5XtqYFlwr6aifA+6KyQu7zRSiYatU?=
 =?us-ascii?Q?LtkjCdj9/25UHMzu+CaTLm9xmjujJC4bFAV5eeXYMuYBL05q5EpIMN9A4Mvb?=
 =?us-ascii?Q?hzk6eSzK3FPI5gJUFGh8TkIjZBlU99Vr+e9ihZjghZ5/y9aY1VYDUo3Juh0X?=
 =?us-ascii?Q?FInwwHKaCbyZfmmZMF6CE08xQMbATaquW1avBuvU1lzPEWrWmKwRPLdheoVQ?=
 =?us-ascii?Q?dzE5Q+Av9xLWHGjea15XzaP/9zkzyiOWCbaOUyjzQF10rxTv+pENe2Ammf+J?=
 =?us-ascii?Q?6J0SddQoWktAxGf90lR+s2x1uyeduwBIzxWiiH5igztKH6WmJ8AIveBs9HzE?=
 =?us-ascii?Q?LoTodiX0ZFcU+2CX5VR0rnpY3UerVZ+zEjzMiRhM5R8Ir7D0a6aylfyL3Aby?=
 =?us-ascii?Q?7ngjJSBfpgmKcT/87ub5zjZaInZLXXpi0nHMpd4HNN73SfLsgfUb7kOLwy/j?=
 =?us-ascii?Q?+cr8Ue5hLKGQIvi39R4YvMt/0lZhLmUzMcisMNL2TBLtauPsw85fT8IY6RYE?=
 =?us-ascii?Q?Yjwd+dsYXhY9pkn4zBtcWv0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 91bc3d28-a619-44f2-21c1-08d99eaed7d3
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 09:46:43.3691
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cqnLKhoFKaGU7THdFECjJdi2PYbFKt+fOmxq8vtotFxzZySsBzHmDXrRf4xBomUUI5ph8Jt2CFMeSrlCtUl2UQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6479

On 02.11.2021 12:03, Roger Pau Monn=C3=A9 wrote:
> On Tue, Nov 02, 2021 at 11:13:08AM +0100, Jan Beulich wrote:
>> On 25.10.2021 12:28, Roger Pau Monn=C3=A9 wrote:
>>> On Thu, Oct 21, 2021 at 11:59:02AM +0200, Jan Beulich wrote:
>>>> The two are really meant to be independent settings; iov_supports_xt()
>>>> using || instead of && was simply wrong. The corrected check is,
>>>> however, redundant, just like the (correct) one in iov_detect(): These
>>>> hook functions are unreachable without acpi_ivrs_init() installing the
>>>> iommu_init_ops pointer, which it does only upon success. (Unlike for
>>>> VT-d there is no late clearing of iommu_enable due to quirks, and any
>>>> possible clearing of iommu_intremap happens only after iov_supports_xt=
()
>>>> has run.)
>>>>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>> ---
>>>> In fact in iov_detect() it could be iommu_enable alone which gets
>>>> checked, but this felt overly aggressive to me. Instead I'm getting th=
e
>>>> impression that the function may wrongly not get called when "iommu=3D=
off"
>>>> but interrupt remapping is in use: We'd not get the interrupt handler
>>>> installed, and hence interrupt remapping related events would never ge=
t
>>>> reported. (Same on VT-d, FTAOD.)
>>>
>>> I've spend a non-trivial amount of time looking into this before
>>> reading this note. AFAICT you could set iommu=3Doff and still get x2API=
C
>>> enabled and relying on interrupt remapping.
>>
>> Right, contrary to ...
>>
>>>> For iov_supports_xt() the question is whether, like VT-d's
>>>> intel_iommu_supports_eim(), it shouldn't rather check iommu_intremap
>>>> alone (in which case it would need to remain a check rather than getti=
ng
>>>> converted to ASSERT()).
>>>
>>> Hm, no, I don't think so. I think iommu_enable should take precedence
>>> over iommu_intremap, and having iommu_enable =3D=3D false should force
>>> interrupt remapping to be reported as disabled. Note that disabling it
>>> in iommu_setup is too late, as the APIC initialization will have
>>> already taken place.
>>>
>>> It's my reading of the command line parameter documentation that
>>> setting iommu=3Doff should disable all usage of the IOMMU, and that
>>> includes the interrupt remapping support (ie: a user should not need
>>> to set iommu=3Doff,no-intremap)
>>
>> ... that documentation. But I think it's the documentation that
>> wants fixing, such that iommu=3Doff really only control DMA remap.
>=20
> IMO I think it's confusing to have sub-options that could be enabled
> when you set the global one to off. I would expect `iommu=3Doff` to
> disable all the iommu related options, and I think it's fair for
> people to expect that behavior.

It occurs to me that this reply of yours here contradicts your R-b
on patch 1, in particular with its revision log saying:

v2: Treat iommu_enable and iommu_intremap as separate options.

Even in case I receive a release ack from Ian, I'll try to remember
to hold off committing that until this apparent (to me) confusion
was sorted.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:50:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:50:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220689.382049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCuE-0004mp-2L; Wed, 03 Nov 2021 09:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220689.382049; Wed, 03 Nov 2021 09:50:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCuD-0004mi-Uc; Wed, 03 Nov 2021 09:50:05 +0000
Received: by outflank-mailman (input) for mailman id 220689;
 Wed, 03 Nov 2021 09:50:04 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miCuC-0004dV-IC
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 09:50:04 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 10e81fe9-e6a1-4503-9b0c-f4830c735c75;
 Wed, 03 Nov 2021 09:50:03 +0000 (UTC)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2051.outbound.protection.outlook.com [104.47.1.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-23-ghBE2SE0Pv2KI3VNIRpp0g-1; Wed, 03 Nov 2021 10:50:01 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6479.eurprd04.prod.outlook.com (2603:10a6:803:11c::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Wed, 3 Nov
 2021 09:50:00 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 09:50:00 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR03CA0019.eurprd03.prod.outlook.com (2603:10a6:20b:130::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Wed, 3 Nov 2021 09:49:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10e81fe9-e6a1-4503-9b0c-f4830c735c75
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635933002;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=H5FNBFSQ/l0l+OX4lcD7yN00XtIzOyQcfaaR9cT4zvk=;
	b=fkn09UsyKPHo0+v8VBDnO5w6eUeyYmk4WPAQwbF1uKQ3htLgO8KMtkpefF8gt2+bQAMEwf
	1NvkLxR3UUnaW+vTF9ScpwQ4OX3yFHLmXevE1ZGUlRa7DchJGlL0c02g32wD6H5Xvq1VGr
	OTz1cfQsTtcRBCPQYF11G04MFra1LKA=
X-MC-Unique: ghBE2SE0Pv2KI3VNIRpp0g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QKlbRYZx7s3YyQNlPYJg9Ccaw+MvklR58d4mFsxe4tnHbLqXz7vo+Y6o987vhAzjnOZ7it0h01vpRxcQ+pnL0dP7rY6Zn5fWAoaJstfEDKc+cHEbXvTiCDaDYiB2gGD9XmylRUe4Qq3z2H9ifKDqYeaOfVmbc5JHhVBGynTmz9R3AWCABjXaFAdtKG2Kfq7+bqJrX7WIfp1rZ8k5t4YAFrnUkrLgNM15xpTDhpJI96ZGKq0J31Y5LY/U1nM94yQ38qZWBwgtryjsu2YZZixztUI2NP+Ldic9hTjU/x5hS4pKxqJdBRy2UXOA5Ya0uGqCdKvVOaJ1SA3ybvSGMDy/MA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=koTiqmxNZcCFG3WCk9BzubXYig8pVl15Z7zSFxr4+Qs=;
 b=S7WHAEE9jlO6djEpxjMfKnvvILECYkBNTGnJEhZaYzOIU4IQegZOQ1mah3NittDR2tjlSOplHEfvCkI+IP+iAnQQql1XwjE3lXh1LR+YwJMizxLrm/Dm7nMmiqaTB4Wz5cwUvqoJSELZnkjHaA+QlHuCN6hM4Ktrz4u/9DXUCLhHxPe5L7gNaYUSvkzuaMMDcKNmHKf3IKNtsAmp+hzuXo9pIaP9EP/76aQJfa0NaVTVuFhCJiwzD1NHrkMCPYpZN7wC6JyGbs5V+JqXLzYrtrVtLAb9pxOj05Sz4L8oheIDVU8CZ0WXvhWsadbpdisp/bXujtkdd/0LVLeME1PgTw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4f77a4f2-a66b-465d-5859-7fe71ece8168@suse.com>
Date: Wed, 3 Nov 2021 10:49:57 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>, Michal Orzel <michal.orzel@arm.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
 <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM7PR03CA0019.eurprd03.prod.outlook.com
 (2603:10a6:20b:130::29) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 92bc86a4-99b9-498b-9609-08d99eaf4d2c
X-MS-TrafficTypeDiagnostic: VE1PR04MB6479:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB64794AAE6F7D31233210664DB38C9@VE1PR04MB6479.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	X6m7D4P4BS30Va9HhlTQhNYvSofGvyBobc1v2Fyzb3FZwpBaH+/Areq7aikgt0XcdB6/2vDLXwKv4DswW4bENPCFFdjdQZL7YvVh63CKrxfH5jirT3PMrETmR4PKxJ7AfwuwkxGpGCnxhYDk4GqCAFp8aIK1P5/Dna+UkMQuF/xmbStOUtV/LuqT5zGp/fROmUvjbBh8+jqvOsesCKWhdEPWXLU502TWtCxjel0geM6PoMx6wg3RkyY8PRIa4rcbCoDo9bhXiI4EnDYbL/LrSeMUC3OMIughq3ahTRU5N6QPmyt/fdaESnCoIpAJCadIoEinJ/iAxOAwU+SGoz4vB7oiQqHXJPey/n8B35T05Gm2Ecey/znY5Se+XaJQgfc3h++R3dYBAzox5Y87Ua3dcHbAnQiaus4PAKt+yfxHe5KB5zq0VRDNdAD59qAglD3D8/5XHEmLtdxuHefgyrBTWCoMStt+L//pSY10+Q6TS9ohPcEKjjpk12oW7UH9PctXKZCRwXpC2SbqB7bcGcR1bm8lQCiUvA8dmlglM3ecN8t9pAk2PBajcYURtINuf6l8F5j4K2cwhGbetTMTGGVCJp2KqnzyFYkqOzcPyE4CpbY6gq6xyI7q5rQEMYDeKW6GHdh78jC/1Hg8Y8XxowtiPKEg+wK71vUArxdSwNjjp/NbCWu5Es7n2vJ1EgZFhLqdq4A0B1j9CRh2zijku4rcITMnxZf9Hvl3e/caW0Fwt6X1cg+poj8oinlnGC8uQ9sJ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(5660300002)(54906003)(6486002)(86362001)(316002)(83380400001)(508600001)(66556008)(66476007)(66946007)(7416002)(4326008)(6916009)(36756003)(31696002)(16576012)(956004)(2616005)(8676002)(38100700002)(26005)(8936002)(2906002)(186003)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?nTZAIl0vlB+UgsbAplBVJh9AbUWjrzqOll2qp578Vbmn478H8DvbCFJFux3t?=
 =?us-ascii?Q?jSCfGDrmeEOdzdOyNOhFxqw3ssgtn7Ic7MghuWVk2/qcXZzgmvI5trbmf+Kq?=
 =?us-ascii?Q?M3EfR3TJjVx2J8RgBmAT7EbLlDj1kg43JmBuO9dYU7clpwIwDLELziZUzcXV?=
 =?us-ascii?Q?fqO1sjBNrUBhfSttNB7JLMmzrLPeVbsbImQXUQjOCQTzh+AFjPmu7CeDT/Gd?=
 =?us-ascii?Q?slA9d1J1QZNEjJZwjiPeNz7xF8opRVcgrxzKRSp5pKHf2mbfWhPz4akpwKpv?=
 =?us-ascii?Q?uC6I3jOE+shiTVqEvOPufgOKcTj3HX7SS2rAN4lmDBHFAjfxyFHtYPvSt1h+?=
 =?us-ascii?Q?cRI40eBg6eeSLskiHudb36FL2W9ZSVs5sKGiZzXAgqpOAEbj2BKU7P45bppx?=
 =?us-ascii?Q?uIlw/WpSlrkq5CfOSuvyo5BD2DK/y2+nwolJALkVk0Ae2vuLsCOo01Ol4zK/?=
 =?us-ascii?Q?+gXSNxXkbwobjFkSwFG2iQb6iRT+ymn72iOd1VN6OurJ5O7aliy//OWNnhlm?=
 =?us-ascii?Q?bduTQ6wrOT1evz6yeTilSAX/OEoDWJXa/A3tbnNcis4eKAAXb7BJjPiTe9B9?=
 =?us-ascii?Q?sWDqk3opw/DAAgPGaVGf/RJ9nkBEvFt0r6QskuSjopqY8oQiE2kk0YspozjX?=
 =?us-ascii?Q?IHDjauOXP5wyHmGZ8bMwYW91yo0PtIEyGW8iF1t6CpttyUhTQwHqBTjTuMdF?=
 =?us-ascii?Q?UYPhG7UH03fl7C+ndw7cXrUeEJv34j+ipknpPppHXRb/j2pMiP16f01V70/4?=
 =?us-ascii?Q?IMHEeIHo60KoRhWVgAvE5xsLcWMBTOXrgDRqbXAn1md9GfvuSSdtJDq9np22?=
 =?us-ascii?Q?dsfI6ILlAO6C00NjHyOjdgOJ+QnZszVjCKT2DIzJ6PUqyFR8FdIM5HKAVINx?=
 =?us-ascii?Q?3W/Asahsr7d/6tlNegS6SjnHp1HrjwNe+S+WWEZNfBtB6kPZoeDVOhS3evAH?=
 =?us-ascii?Q?NPacXjL6c7DKhMl0ntJrtfFyewKHgMHRKJiIyRuFGK7UYNKDZ43//ywr+8JL?=
 =?us-ascii?Q?tjKNE+7LUxxhhpCV6TZJ83KKd4J3SZAKv3hnoDOVUGLik9rXedgofYYglBI1?=
 =?us-ascii?Q?smWBgCzQ1g7Ldm0RmsgN71IdfBD7GaUlhYHuboJ1gGkyPSm/0n7NcRHbyuUL?=
 =?us-ascii?Q?WXqv8SEGQ1ykbeWEtzvFPGLqL0XvmbTeDlF5yaSqFqNK7XtbCNXcI+sqYoha?=
 =?us-ascii?Q?s4dWWgaMQl1vcL9YcSq9BqPf17PLTXrcjkux7lyUZleZIqn+9GgbLH5SV8MQ?=
 =?us-ascii?Q?jo0dLknOLBTCbvGQVmvPwx3cbDg/dMjAX1dnxdGoENlOZpwVPm0T3hkLNOxL?=
 =?us-ascii?Q?RWp2sIqRtNpUMpCAhtASt4g0+z0l0HBoI3Tq+y1KyGiQvqEwX4r80KFaBoDk?=
 =?us-ascii?Q?S3JGoa/LtFLnoYrkyq748Xu7zevW8PGdk69kXmtuEdHmq5JT46AzqFmoGlDd?=
 =?us-ascii?Q?oj1KFQi+vQrV/ABzlayTQlNHztU0XZNkzxwyxJGuqPxQ0SN+57X6BYT+B0/O?=
 =?us-ascii?Q?Z9XP8peUrJGqPZ+eeKYqXuAwe+UAkmxZLLoFBBLcNs1wmzv1SK6HRueGa/X6?=
 =?us-ascii?Q?sQhMKoFMEuZlVhTAHQqsCBi1UjocElaQXMZl0W8Ph8hD26L4HDVH40sgNTyj?=
 =?us-ascii?Q?EKcFBTgFppd6xI6hGghSoas=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 92bc86a4-99b9-498b-9609-08d99eaf4d2c
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 09:50:00.1928
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: u87AtUsTqXX/bSFzVKMDjc3yX8rVXtdQ8Z0dCbGnLfCARH+R2ShRg8emgKXt5WVvbPJxfPrP3VZMCiPcOFcJ2Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6479

On 03.11.2021 10:30, Oleksandr Andrushchenko wrote:
>=20
>=20
> On 03.11.21 11:24, Jan Beulich wrote:
>> On 03.11.2021 10:18, Oleksandr Andrushchenko wrote:
>>>
>>> On 03.11.21 11:11, Jan Beulich wrote:
>>>> On 03.11.2021 09:53, Oleksandr Andrushchenko wrote:
>>>>> On 02.11.21 16:10, Oleksandr Andrushchenko wrote:
>>>>>> On 02.11.21 15:54, Jan Beulich wrote:
>>>>>>> On 02.11.2021 12:50, Roger Pau Monn=C3=A9 wrote:
>>>>>>>> On Tue, Nov 02, 2021 at 12:19:13PM +0100, Jan Beulich wrote:
>>>>>>>>> On 26.10.2021 12:52, Roger Pau Monn=C3=A9 wrote:
>>>>>>>>>> On Thu, Sep 30, 2021 at 10:52:20AM +0300, Oleksandr Andrushchenk=
o wrote:
>>>>>>>>>>> --- a/xen/drivers/vpci/header.c
>>>>>>>>>>> +++ b/xen/drivers/vpci/header.c
>>>>>>>>>>> @@ -451,6 +451,32 @@ static void cmd_write(const struct pci_dev=
 *pdev, unsigned int reg,
>>>>>>>>>>>              pci_conf_write16(pdev->sbdf, reg, cmd);
>>>>>>>>>>>      }
>>>>>>>>>>>     =20
>>>>>>>>>>> +static void guest_cmd_write(const struct pci_dev *pdev, unsign=
ed int reg,
>>>>>>>>>>> +                            uint32_t cmd, void *data)
>>>>>>>>>>> +{
>>>>>>>>>>> +    /* TODO: Add proper emulation for all bits of the command =
register. */
>>>>>>>>>>> +
>>>>>>>>>>> +    if ( (cmd & PCI_COMMAND_INTX_DISABLE) =3D=3D 0 )
>>>>>>>>>>> +    {
>>>>>>>>>>> +        /*
>>>>>>>>>>> +         * Guest wants to enable INTx. It can't be enabled if:
>>>>>>>>>>> +         *  - host has INTx disabled
>>>>>>>>>>> +         *  - MSI/MSI-X enabled
>>>>>>>>>>> +         */
>>>>>>>>>>> +        if ( pdev->vpci->msi->enabled )
>>>>>>>>>>> +            cmd |=3D PCI_COMMAND_INTX_DISABLE;
>>>>>>>>>>> +        else
>>>>>>>>>>> +        {
>>>>>>>>>>> +            uint16_t current_cmd =3D pci_conf_read16(pdev->sbd=
f, reg);
>>>>>>>>>>> +
>>>>>>>>>>> +            if ( current_cmd & PCI_COMMAND_INTX_DISABLE )
>>>>>>>>>>> +                cmd |=3D PCI_COMMAND_INTX_DISABLE;
>>>>>>>>>>> +        }
>>>>>>>>>> This last part should be Arm specific. On other architectures we
>>>>>>>>>> likely want the guest to modify INTx disable in order to select =
the
>>>>>>>>>> interrupt delivery mode for the device.
>>>>>>>>> We cannot allow a guest to clear the bit when it has MSI / MSI-X
>>>>>>>>> enabled - only one of the three is supposed to be active at a tim=
e.
>>>>>>>>> (IOW similarly we cannot allow a guest to enable MSI / MSI-X when
>>>>>>>>> the bit is clear.)
>>>>>>>> Sure, but this code is making the bit sticky, by not allowing
>>>>>>>> INTX_DISABLE to be cleared once set. We do not want that behavior =
on
>>>>>>>> x86, as a guest can decide to use MSI or INTx. The else branch nee=
ds
>>>>>>>> to be Arm only.
>>>>>>> Isn't the "else" part questionable even on Arm?
>>>>>> It is. Once fixed I can't see anything Arm specific here
>>>>> Well, I have looked at the code one more time and everything seems to
>>>>> be ok wrt that sticky bit: we have 2 handlers which are cmd_write and
>>>>> guest_cmd_write. The former is used for the hardware domain and has
>>>>> *no restrictions* on writing PCI_COMMAND register contents and the la=
ter
>>>>> is only used for guests and which does have restrictions applied in
>>>>> emulate_cmd_reg function.
>>>>>
>>>>> So, for the hardware domain, there is no "sticky" bit possible and fo=
r the
>>>>> guest domains if the physical contents of the PCI_COMMAND register
>>>>> has PCI_COMMAND_INTX_DISABLE bit set then the guest is enforced to
>>>>> use PCI_COMMAND_INTX_DISABLE bit set.
>>>>>
>>>>> So, from hardware domain POV, this should not be a problem, but from
>>>>> guests view it can. Let's imagine that the hardware domain can handle
>>>>> all types of interrupts, e.g. INTx, MSI, MSI-X. In this case the hard=
ware
>>>>> domain can decide what can be used for the interrupt source (again, n=
o
>>>>> restriction here) and program PCI_COMMAND accordingly.
>>>>> Guest domains need to align with this configuration, e.g. if INTx was=
 disabled
>>>>> by the hardware domain then INTx cannot be enabled for guests
>>>> Why? It's the DomU that's in control of the device, so it ought to
>>>> be able to pick any of the three. I don't think Dom0 is involved in
>>>> handling of interrupts from the device, and hence its own "dislike"
>>>> of INTx ought to only extend to the period of time where Dom0 is
>>>> controlling the device. This would be different if Xen's view was
>>>> different, but as we seem to agree Xen's role here is solely to
>>>> prevent invalid combinations getting established in hardware.
>>> On top of a PCI device there is a physical host bridge and
>>> physical bus topology which may impose restrictions from
>>> Dom0 POV on that particular device.
>> Well, such physical restrictions may mean INTx doesn't actually work,
>> but this won't mean the DomU isn't free in choosing the bit's setting.
>> The bit merely controls whether the device is allowed to assert its
>> interrupt pin. Hence ...
>>
>>> So, every PCI device
>>> being passed through to a DomU may have different INTx
>>> settings which do depend on Dom0 in our case.
>> ... I'm still unconvinced of this.
> Ok, so I can accept any suggestion how to solve this. It seems that
> we already have number of no go scenarios here, but still it is not
> clear to me what could be an acceptable approach here. Namely:
> what do we do with INTx bit for guests?
> 1. I can leave it as is in the patch
> 2. I can remove INTx emulation and let the guest decide and program INTx
> 3. What else can I do?

Aiui you want to prevent the guest from clearing the bit if either
MSI or MSI-X are in use. Symmetrically, when the guest enables MSI
or MSI-X, you will want to force the bit set (which may well be in
a separate, future patch).

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:50:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:50:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220693.382060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCut-0005Lc-BD; Wed, 03 Nov 2021 09:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220693.382060; Wed, 03 Nov 2021 09:50:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCut-0005LV-7u; Wed, 03 Nov 2021 09:50:47 +0000
Received: by outflank-mailman (input) for mailman id 220693;
 Wed, 03 Nov 2021 09:50:45 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miCur-0005LN-MM
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 09:50:45 +0000
Received: from mx0a-0039f301.pphosted.com (unknown [148.163.133.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 4e64505e-f0d3-4dd8-b53b-5f887c336844;
 Wed, 03 Nov 2021 09:50:43 +0000 (UTC)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A392AFC018885;
 Wed, 3 Nov 2021 09:50:33 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2058.outbound.protection.outlook.com [104.47.14.58])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c3qeh86gv-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 09:50:32 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4147.eurprd03.prod.outlook.com (2603:10a6:208:cf::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Wed, 3 Nov
 2021 09:50:29 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 09:50:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e64505e-f0d3-4dd8-b53b-5f887c336844
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WMLpFH/rt+CD0Obt8ByT+D/qwtPkc2NFsnlCXaBlq/CNa4Uj/x+RraBbt5riKZVbV0jUjk1+opPJuILFms06jvleqbkZtJKqhVELukFtVKd4ems/UzbK02N+CZPLShI2BeNoN9XDwRisx+qul/FaOUD64qusNKJAUKmJmLQaJofKmCuV2SyP668jWo5OrnVwELNP0x/47p/4+iZJvTA5QkuDRW5qtAe9348zPAKXAMIX3/lW/hXNAGXJlB7sAQDa3UOkW5Sd5Kp/1YJmTthVlBAXH2zF4vO6SAeEgllOsgOdr9HErbNLlnwqwBqdD8q3xriM2/DclFyg8iR9dPbUnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W/zgRFDiRLFXUeeVeLhIxj6Jr/MlDBR38SnXvhJYzCU=;
 b=n2ixJeJr3W+QascRcNGX2kwp70xqMPXeVAn5hi2TjjRpJ8mL8d9rjj8kjnJmp5DrNM3gYsradOx/U6xjCYsO42eyMnVC+sAZm7DKPEBpLj4RgfRqXNwP5gWiKt7pZFtRRZ0yPUriGi5cmKnAwwpXeUQPfuEbQg/74puD+O1RqdR6tCO/PZRZfZ5AQmcmnRAxGcL1eAA9laA/trS+QuWWnOPQBr2rxWsGXWsR7zGFzstsmdCMV6MdY5KzJPQfT7vVSE/d0NoV3fXOnHpr947/cQVVZbZzZemyFwqP7V7h1BQ2dnwjDdm05vhrWNO+8/03wK1Wp4aB3sp13q+RqJ+J5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W/zgRFDiRLFXUeeVeLhIxj6Jr/MlDBR38SnXvhJYzCU=;
 b=dAXA7BRDQCQN4dDrjG6UVF7ouIRqYljzoY//OzLhZNNfir4/baRJm6x4zgVR6mdXu8zmBli3DVU0UtlVaBrt2+gwQTzpGcB/dw3bdiJoNvjk5HLfNJ+2+pTr7lDFNqDjr3Qk4vJDO2qHkgVv2+yeEprujmhqngT7hRHp31pTf0OpiyttwJAemRLXdoOz2slowydXP+a5UOqkLvKimpm0pIgzHWZrnbcCfplBLQ75ioF9F89wrLNuw4VE27tM3PFloFbpiPJil09JH5F9xXx8KXkvmuVVZPhV/DXwUvNr9DDVGDiLU3TqvhrSLCqiNJIGp2i3voG8Qc49jwV1zsCJPA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Michal
 Orzel <michal.orzel@arm.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: 
 AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUICAATmxAIAABTcAgAABvgCAAAXjAIAAAy6A
Date: Wed, 3 Nov 2021 09:50:29 +0000
Message-ID: <8040c3d7-07a0-9a95-c321-850c6ec72b4d@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <YYJYurhhGGvjRSfH@Air-de-Roger>
In-Reply-To: <YYJYurhhGGvjRSfH@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9e53c434-bc5f-4f1e-e21f-08d99eaf5ee2
x-ms-traffictypediagnostic: AM0PR03MB4147:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB41479BAEE1AA3501F505969DE78C9@AM0PR03MB4147.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 AcPpCPI33bZg/U1n923xZp9t9dscdzVfiluOpiSA9aDpLkC4JV2PDmFSu+mVYSeTw3//60eVOwmGRBaAhtG7eRW3hkZWIgdnsXa0r/Q1xr/FRkanUVGD15z1qSycCkWQasGrVwzVHWgM8pHPBO2uDMP26eyBP20dlG194UUf/oMGtML3Qhlo5QSPgK4QQhqfJ6JbJCr7HZErer/NYz9fcOlC9I/hMTgxCspuLLPRuJIlk+bOiGgZs99rbxBiJz5+b1CN1SFop6lKSIasl2YkehlZJHDygS9JgaOB93PaUZGf2lIG+oe+bS91qRry2LMsHhdXmvLdz7Bu2foX3GzLWCLmzgItaCCpmRtxoqVt4jBSFUSSxovxGuo8fc/1eKA3OdhFGaq+AJ87d5xrc/YnBxUUgof/eRK7twggq+wJECd+f2CpklEvgwfQ2klfdBEoBWKJakixr7UCp8+Nj5T4u3vmQfkG/Kd1DnS/H9RCpvYaWIPNMAUToDOBK/1SAqOelqVNbeNXYJsHj8FydG/NyhrRvV8Q2jbFdgiUwN+0raS27FZEhd3f1/JMzTXx9g9sBr3iO9Qf4xTXfLjjLE8IaH1xiT09mlFndcKHCl7+nWgmMnxNTa+2W28j/wIooh2245owSsH6EMoWrNnicpw8W1aRJ/dHLkhoWGRN0yoU8bplxTraafyybe4Z3ojnmBsK6Zuiy4GUaVkzsOdiaVvqJa4ihp5KczGAh23022arXR5BVgxR9IcBr/lB6uojjbsb
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(5660300002)(316002)(508600001)(36756003)(31696002)(31686004)(4326008)(38070700005)(2616005)(6512007)(86362001)(6506007)(83380400001)(8936002)(26005)(53546011)(122000001)(38100700002)(54906003)(6916009)(186003)(6486002)(2906002)(91956017)(76116006)(66446008)(66556008)(64756008)(66476007)(66946007)(71200400001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?RXoyS1hnRlhHYy9YL3Fhc1I0djVoZmRWR1NKRFBPamV5VjQzMm9ocjdOSTZQ?=
 =?utf-8?B?SkxqSHBIVk1HM0J3YThLa0d5ZGxqMG9iL0pEdm82S1lkZUREaEkvUVpJeUR3?=
 =?utf-8?B?cmdlWHNJK2E2cS90Z3lXRjZZWWI3NnhvbTVFeGpYMDQxaC9COW1zVlIxK3RJ?=
 =?utf-8?B?dGV1aU91Z084VEhTOVYrOFVJdG1rTllFUTdnaFpXcHkyNFpoNEk4cTlZZ0VC?=
 =?utf-8?B?Z3ozTHVoaDFqWXo5c0VpNjNGYkRxN3poRUw3dnY5ZEhuclFLdGpSZSt4R0xh?=
 =?utf-8?B?M0M2emhYdWFuRmZXZzR4aEs1VXFnZkp4WkIvVjdIUzc1eHFzVTNadjhnODQ1?=
 =?utf-8?B?TkhzaTNSekdxQ2RwZDBQRUttR3BLTWFqVUVXWmdaRElBcC9QdERBVzF3MEhx?=
 =?utf-8?B?K0hPSTk3dHRmMXU1UWowZFJvWmppeUVjV0dNTUt6Rk5UMWw0VU5QNlhlYWl2?=
 =?utf-8?B?YkFFckFnK2NmdXFpVmIzY3ZzcS9TZmxDNTYrYVhXZ3lNVXlRNHdnRlFrRWxB?=
 =?utf-8?B?Z1ZLaTY1V3lXMG9Nby9TSTJkcHMveHNDVjZTQ013SXBQZk1rQWZaYkk3eGhG?=
 =?utf-8?B?eWlxK0UweGd5amRBYnhZdStiOTB6cldhOTJucTgwQ0hDTDJaMEthV1lQdnN4?=
 =?utf-8?B?T3BvUnMwYjg3VFp0eVRmYWlnQmRhVmhMZzJTOUE0Q3RiUFZGVDFYYVVuMjZ4?=
 =?utf-8?B?MDRyT0dnQm9XVS9HT3FqYU13V3R5UDM3eTVVN29zalh3VWg1d2YvY1NsVWdr?=
 =?utf-8?B?blBtZmVQUjRyNSs2dlFPeFVjcCtndERCOXZET2FqSlYyRGltYzAvQlRDWng3?=
 =?utf-8?B?eHFjMGp6enB2VlBjNE1TM2RMSVR4TmVqcXBYZklRZ2xuR2Q0azFVdGJGcHJX?=
 =?utf-8?B?ci94WHM0MzAvVTJGcEtoSUxkdFVQd2c2dmc5VkdyRzNKc1Q2bEdCUHMvSmNm?=
 =?utf-8?B?TUlXc2VXT25Kc1lVc2pKNnFyWFRIWlBwUjJHbEdaMGdWYS95YVhYYW9CcTkw?=
 =?utf-8?B?emxmVGFEL2w0YytrbzNQcjh2MUhqczhnbDFNbnJtWDE0dEQzbHVpOCtmTjNz?=
 =?utf-8?B?MVN2UWxKV1NBTWFhb0g4YnFBTXhxUEMyYWhDZGRmNEY3Q3BCbG9KNFdDeHAx?=
 =?utf-8?B?SDBkSjhNZDlDT1Rpb0g3YzdrUmlVV29lcFRkeVV6UEtVUW82aEhIVjUzdC9H?=
 =?utf-8?B?SzdiOGxNV2MwbEFRN08vQ0drVnpoNklSc1o1U1pHSnFMSndpUUc3NjNUcXd2?=
 =?utf-8?B?WGJObVlBWWJ0Z2xLbCtDMDNzWGs4WU5jenRvOWdWc3dUejdnek5zbThUTkxN?=
 =?utf-8?B?SFJqQ2Urak9yQXN3ZXRMMTk0M3M4U2JNSUdPQzN6eDgvajlNaS91QWJaSVdo?=
 =?utf-8?B?OXpaYkduNkhsOXpZT3ZEaGdSTk4xcENucDkreGRBK05vK1FLOU5vSHNaS2po?=
 =?utf-8?B?WmZLUDJKV21IMWlOQTFjL0VJRzdhd21TeU1kZTNRMzMwdGhuaGc4b2RYT2JZ?=
 =?utf-8?B?OXE2eWZKSkpPTllzeFh2T0J1Mkg3ODlxZVR6dmJFMXRGMkd2dVFuZmw2MExS?=
 =?utf-8?B?MFJVaTlDQ3QwcWpqQkM5dVBpUkN2aVE1a0tXK1JpVDlHWEZYRHB3bUpoT3NZ?=
 =?utf-8?B?U29QbjcrUmZvVzBTZ0hCN1JwbDlPNTR3WWVzUnNTTHp5WitNM2pKSCtyb2Q2?=
 =?utf-8?B?TUU2cXVzd0VPKzRkcVRZdnQ3UmlOQ2ptOERSRGg4SWNhQjZ1WnFTRmtyUko0?=
 =?utf-8?B?MFhGT1hLb29GdnZqdlR1dzkrUkFTalZTNCtUaXBjNWp0TVo2bkZ6bEUyeWFV?=
 =?utf-8?B?SFI1NzZCUlNlYmZYa3k1bXdKUlF6NXc2bWx1QWcwc2N1a0hBb3oveG43Z3Av?=
 =?utf-8?B?REwxQXVaMllSeDBQdERIekVFR0R6ZS80aDBwV3ZJTTh4cklDekJWVmVBRTFC?=
 =?utf-8?B?VWIyWXBHKzZ4ZW9JRHM0UUFwWit5TWdXK3B6Q2NUYTA2aE0zbDFnZktiampE?=
 =?utf-8?B?dm42ellUL05rNXp3TjZjSnJMdkc1K2xONkNOYUxuQnYrUG8rQ1ZNSXV0WnFy?=
 =?utf-8?B?U212RzdzeGoxYlFnQkZkOGtGMk5Uak9Rc0Q3cUYvMDQyak9zZlpKY2Jkczl1?=
 =?utf-8?B?RExlMHd3Y1p1RWo4QXVHVnhxUlkwanBqeUMzUHQxQnB1Y2VSWW5RWDdQRkZH?=
 =?utf-8?B?VS9uc2JUejdVRzAybHpCejdyRUtxQnkxSDlHeFN1dU1RcDRpbWlnbHA0U2pj?=
 =?utf-8?B?OTAxTnhVODdiTEI4QmxXRndlSGpPQnBFQjBaMkVhclcxSTZjVTZ2UU8wT0ZJ?=
 =?utf-8?B?bjRCTzdBYTlGUTcwcEYwanFoYkhDak9PS0hRV2ZOTmJmckdLeG5Bdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <344EBCB34FBE81469CBBD7063D1B235D@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e53c434-bc5f-4f1e-e21f-08d99eaf5ee2
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 09:50:29.6754
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: utp1IAVtBgkcAPppnHiMHek8/Y62NXWMx2gepKNG2d797HMrL1e22uW/a88Q1j7Dt6mXUWQiwnsrlti3kHvqfDZN08gUa9X+qMphUKbV6o5eaNukMY6J2GlrQaXDsdNP
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4147
X-Proofpoint-GUID: 66D3kQ15JCEG_ZbBlN47Eu2zqN9Gu-Pb
X-Proofpoint-ORIG-GUID: 66D3kQ15JCEG_ZbBlN47Eu2zqN9Gu-Pb
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_03,2021-11-02_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0
 adultscore=0 suspectscore=0 mlxlogscore=967 spamscore=0 malwarescore=0
 clxscore=1015 mlxscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111030055

DQoNCk9uIDAzLjExLjIxIDExOjM5LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQs
IE5vdiAwMywgMjAyMSBhdCAwOToxODowM0FNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+DQo+PiBPbiAwMy4xMS4yMSAxMToxMSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+
Pj4gT24gMDMuMTEuMjAyMSAwOTo1MywgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+
Pj4+IE9uIDAyLjExLjIxIDE2OjEwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+
Pj4+IE9uIDAyLjExLjIxIDE1OjU0LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+PiBPbiAwMi4x
MS4yMDIxIDEyOjUwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4+Pj4+PiBPbiBUdWUsIE5v
diAwMiwgMjAyMSBhdCAxMjoxOToxM1BNICswMTAwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+
Pj4+IE9uIDI2LjEwLjIwMjEgMTI6NTIsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+Pj4+
Pj4gT24gVGh1LCBTZXAgMzAsIDIwMjEgYXQgMTA6NTI6MjBBTSArMDMwMCwgT2xla3NhbmRyIEFu
ZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+Pj4+Pj4+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVh
ZGVyLmMNCj4+Pj4+Pj4+Pj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4+Pj4+
Pj4+PiBAQCAtNDUxLDYgKzQ1MSwzMiBAQCBzdGF0aWMgdm9pZCBjbWRfd3JpdGUoY29uc3Qgc3Ry
dWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsDQo+Pj4+Pj4+Pj4+ICAgICAgICAg
ICAgICBwY2lfY29uZl93cml0ZTE2KHBkZXYtPnNiZGYsIHJlZywgY21kKTsNCj4+Pj4+Pj4+Pj4g
ICAgICB9DQo+Pj4+Pj4+Pj4+ICAgICAgDQo+Pj4+Pj4+Pj4+ICtzdGF0aWMgdm9pZCBndWVzdF9j
bWRfd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsDQo+
Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY21kLCB2b2lk
ICpkYXRhKQ0KPj4+Pj4+Pj4+PiArew0KPj4+Pj4+Pj4+PiArICAgIC8qIFRPRE86IEFkZCBwcm9w
ZXIgZW11bGF0aW9uIGZvciBhbGwgYml0cyBvZiB0aGUgY29tbWFuZCByZWdpc3Rlci4gKi8NCj4+
Pj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4+PiArICAgIGlmICggKGNtZCAmIFBDSV9DT01NQU5EX0lOVFhf
RElTQUJMRSkgPT0gMCApDQo+Pj4+Pj4+Pj4+ICsgICAgew0KPj4+Pj4+Pj4+PiArICAgICAgICAv
Kg0KPj4+Pj4+Pj4+PiArICAgICAgICAgKiBHdWVzdCB3YW50cyB0byBlbmFibGUgSU5UeC4gSXQg
Y2FuJ3QgYmUgZW5hYmxlZCBpZjoNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgICogIC0gaG9zdCBoYXMg
SU5UeCBkaXNhYmxlZA0KPj4+Pj4+Pj4+PiArICAgICAgICAgKiAgLSBNU0kvTVNJLVggZW5hYmxl
ZA0KPj4+Pj4+Pj4+PiArICAgICAgICAgKi8NCj4+Pj4+Pj4+Pj4gKyAgICAgICAgaWYgKCBwZGV2
LT52cGNpLT5tc2ktPmVuYWJsZWQgKQ0KPj4+Pj4+Pj4+PiArICAgICAgICAgICAgY21kIHw9IFBD
SV9DT01NQU5EX0lOVFhfRElTQUJMRTsNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgZWxzZQ0KPj4+Pj4+
Pj4+PiArICAgICAgICB7DQo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICB1aW50MTZfdCBjdXJyZW50
X2NtZCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCByZWcpOw0KPj4+Pj4+Pj4+PiArDQo+
Pj4+Pj4+Pj4+ICsgICAgICAgICAgICBpZiAoIGN1cnJlbnRfY21kICYgUENJX0NPTU1BTkRfSU5U
WF9ESVNBQkxFICkNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICBjbWQgfD0gUENJX0NPTU1B
TkRfSU5UWF9ESVNBQkxFOw0KPj4+Pj4+Pj4+PiArICAgICAgICB9DQo+Pj4+Pj4+Pj4gVGhpcyBs
YXN0IHBhcnQgc2hvdWxkIGJlIEFybSBzcGVjaWZpYy4gT24gb3RoZXIgYXJjaGl0ZWN0dXJlcyB3
ZQ0KPj4+Pj4+Pj4+IGxpa2VseSB3YW50IHRoZSBndWVzdCB0byBtb2RpZnkgSU5UeCBkaXNhYmxl
IGluIG9yZGVyIHRvIHNlbGVjdCB0aGUNCj4+Pj4+Pj4+PiBpbnRlcnJ1cHQgZGVsaXZlcnkgbW9k
ZSBmb3IgdGhlIGRldmljZS4NCj4+Pj4+Pj4+IFdlIGNhbm5vdCBhbGxvdyBhIGd1ZXN0IHRvIGNs
ZWFyIHRoZSBiaXQgd2hlbiBpdCBoYXMgTVNJIC8gTVNJLVgNCj4+Pj4+Pj4+IGVuYWJsZWQgLSBv
bmx5IG9uZSBvZiB0aGUgdGhyZWUgaXMgc3VwcG9zZWQgdG8gYmUgYWN0aXZlIGF0IGEgdGltZS4N
Cj4+Pj4+Pj4+IChJT1cgc2ltaWxhcmx5IHdlIGNhbm5vdCBhbGxvdyBhIGd1ZXN0IHRvIGVuYWJs
ZSBNU0kgLyBNU0ktWCB3aGVuDQo+Pj4+Pj4+PiB0aGUgYml0IGlzIGNsZWFyLikNCj4+Pj4+Pj4g
U3VyZSwgYnV0IHRoaXMgY29kZSBpcyBtYWtpbmcgdGhlIGJpdCBzdGlja3ksIGJ5IG5vdCBhbGxv
d2luZw0KPj4+Pj4+PiBJTlRYX0RJU0FCTEUgdG8gYmUgY2xlYXJlZCBvbmNlIHNldC4gV2UgZG8g
bm90IHdhbnQgdGhhdCBiZWhhdmlvciBvbg0KPj4+Pj4+PiB4ODYsIGFzIGEgZ3Vlc3QgY2FuIGRl
Y2lkZSB0byB1c2UgTVNJIG9yIElOVHguIFRoZSBlbHNlIGJyYW5jaCBuZWVkcw0KPj4+Pj4+PiB0
byBiZSBBcm0gb25seS4NCj4+Pj4+PiBJc24ndCB0aGUgImVsc2UiIHBhcnQgcXVlc3Rpb25hYmxl
IGV2ZW4gb24gQXJtPw0KPj4+Pj4gSXQgaXMuIE9uY2UgZml4ZWQgSSBjYW4ndCBzZWUgYW55dGhp
bmcgQXJtIHNwZWNpZmljIGhlcmUNCj4+Pj4gV2VsbCwgSSBoYXZlIGxvb2tlZCBhdCB0aGUgY29k
ZSBvbmUgbW9yZSB0aW1lIGFuZCBldmVyeXRoaW5nIHNlZW1zIHRvDQo+Pj4+IGJlIG9rIHdydCB0
aGF0IHN0aWNreSBiaXQ6IHdlIGhhdmUgMiBoYW5kbGVycyB3aGljaCBhcmUgY21kX3dyaXRlIGFu
ZA0KPj4+PiBndWVzdF9jbWRfd3JpdGUuIFRoZSBmb3JtZXIgaXMgdXNlZCBmb3IgdGhlIGhhcmR3
YXJlIGRvbWFpbiBhbmQgaGFzDQo+Pj4+ICpubyByZXN0cmljdGlvbnMqIG9uIHdyaXRpbmcgUENJ
X0NPTU1BTkQgcmVnaXN0ZXIgY29udGVudHMgYW5kIHRoZSBsYXRlcg0KPj4+PiBpcyBvbmx5IHVz
ZWQgZm9yIGd1ZXN0cyBhbmQgd2hpY2ggZG9lcyBoYXZlIHJlc3RyaWN0aW9ucyBhcHBsaWVkIGlu
DQo+Pj4+IGVtdWxhdGVfY21kX3JlZyBmdW5jdGlvbi4NCj4+Pj4NCj4+Pj4gU28sIGZvciB0aGUg
aGFyZHdhcmUgZG9tYWluLCB0aGVyZSBpcyBubyAic3RpY2t5IiBiaXQgcG9zc2libGUgYW5kIGZv
ciB0aGUNCj4+Pj4gZ3Vlc3QgZG9tYWlucyBpZiB0aGUgcGh5c2ljYWwgY29udGVudHMgb2YgdGhl
IFBDSV9DT01NQU5EIHJlZ2lzdGVyDQo+Pj4+IGhhcyBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUg
Yml0IHNldCB0aGVuIHRoZSBndWVzdCBpcyBlbmZvcmNlZCB0bw0KPj4+PiB1c2UgUENJX0NPTU1B
TkRfSU5UWF9ESVNBQkxFIGJpdCBzZXQuDQo+Pj4+DQo+Pj4+IFNvLCBmcm9tIGhhcmR3YXJlIGRv
bWFpbiBQT1YsIHRoaXMgc2hvdWxkIG5vdCBiZSBhIHByb2JsZW0sIGJ1dCBmcm9tDQo+Pj4+IGd1
ZXN0cyB2aWV3IGl0IGNhbi4gTGV0J3MgaW1hZ2luZSB0aGF0IHRoZSBoYXJkd2FyZSBkb21haW4g
Y2FuIGhhbmRsZQ0KPj4+PiBhbGwgdHlwZXMgb2YgaW50ZXJydXB0cywgZS5nLiBJTlR4LCBNU0ks
IE1TSS1YLiBJbiB0aGlzIGNhc2UgdGhlIGhhcmR3YXJlDQo+Pj4+IGRvbWFpbiBjYW4gZGVjaWRl
IHdoYXQgY2FuIGJlIHVzZWQgZm9yIHRoZSBpbnRlcnJ1cHQgc291cmNlIChhZ2Fpbiwgbm8NCj4+
Pj4gcmVzdHJpY3Rpb24gaGVyZSkgYW5kIHByb2dyYW0gUENJX0NPTU1BTkQgYWNjb3JkaW5nbHku
DQo+Pj4+IEd1ZXN0IGRvbWFpbnMgbmVlZCB0byBhbGlnbiB3aXRoIHRoaXMgY29uZmlndXJhdGlv
biwgZS5nLiBpZiBJTlR4IHdhcyBkaXNhYmxlZA0KPj4+PiBieSB0aGUgaGFyZHdhcmUgZG9tYWlu
IHRoZW4gSU5UeCBjYW5ub3QgYmUgZW5hYmxlZCBmb3IgZ3Vlc3RzDQo+Pj4gV2h5PyBJdCdzIHRo
ZSBEb21VIHRoYXQncyBpbiBjb250cm9sIG9mIHRoZSBkZXZpY2UsIHNvIGl0IG91Z2h0IHRvDQo+
Pj4gYmUgYWJsZSB0byBwaWNrIGFueSBvZiB0aGUgdGhyZWUuIEkgZG9uJ3QgdGhpbmsgRG9tMCBp
cyBpbnZvbHZlZCBpbg0KPj4+IGhhbmRsaW5nIG9mIGludGVycnVwdHMgZnJvbSB0aGUgZGV2aWNl
LCBhbmQgaGVuY2UgaXRzIG93biAiZGlzbGlrZSINCj4+PiBvZiBJTlR4IG91Z2h0IHRvIG9ubHkg
ZXh0ZW5kIHRvIHRoZSBwZXJpb2Qgb2YgdGltZSB3aGVyZSBEb20wIGlzDQo+Pj4gY29udHJvbGxp
bmcgdGhlIGRldmljZS4gVGhpcyB3b3VsZCBiZSBkaWZmZXJlbnQgaWYgWGVuJ3MgdmlldyB3YXMN
Cj4+PiBkaWZmZXJlbnQsIGJ1dCBhcyB3ZSBzZWVtIHRvIGFncmVlIFhlbidzIHJvbGUgaGVyZSBp
cyBzb2xlbHkgdG8NCj4+PiBwcmV2ZW50IGludmFsaWQgY29tYmluYXRpb25zIGdldHRpbmcgZXN0
YWJsaXNoZWQgaW4gaGFyZHdhcmUuDQo+PiBPbiB0b3Agb2YgYSBQQ0kgZGV2aWNlIHRoZXJlIGlz
IGEgcGh5c2ljYWwgaG9zdCBicmlkZ2UgYW5kDQo+PiBwaHlzaWNhbCBidXMgdG9wb2xvZ3kgd2hp
Y2ggbWF5IGltcG9zZSByZXN0cmljdGlvbnMgZnJvbQ0KPj4gRG9tMCBQT1Ygb24gdGhhdCBwYXJ0
aWN1bGFyIGRldmljZS4gU28sIGV2ZXJ5IFBDSSBkZXZpY2UNCj4+IGJlaW5nIHBhc3NlZCB0aHJv
dWdoIHRvIGEgRG9tVSBtYXkgaGF2ZSBkaWZmZXJlbnQgSU5UeA0KPj4gc2V0dGluZ3Mgd2hpY2gg
ZG8gZGVwZW5kIG9uIERvbTAgaW4gb3VyIGNhc2UuDQo+IEhtLCBpdCdzIGtpbmQgb2Ygd2VpcmQu
IFdoYXQgaGFwcGVucyBpZiB5b3UgcGxheSB3aXRoIHRoaXMgYml0IGFuZCB0aGUNCj4gYnJpZGdl
IGRvZXNuJ3Qgc3VwcG9ydCBpdD8NCkZvciB0aGF0IHJlYXNvbiBJIHRoaW5rIGl0IGlzIGVub3Vn
aCB0byByZWxheSBvbiBzb21lIHJlZmVyZW5jZSB2YWx1ZQ0Kd2hpY2ggc2hvd3MgaWYgSU5UeCBj
YW4gYmUgdXNlZC4gRm9yIHRoYXQgSSBzdWdnZXN0IHdlIGRlcGVuZCBvbg0KRG9tMCBmb3Igbm93
IGFuZCByZWFkIHRoaXMgcmVmZXJlbmNlIFBDSV9DT01NQU5EIHZhbHVlIHdoaWxlDQppbiBpbml0
X2JhcnMgKyBpc19oYXJkd2FyZV9kb21haW4uIFRoZW4gdGhpcyBjYW4gYmUgdXNlZCB0byBmZWVk
DQp0aGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUgUENJX0NPTU1BTkQgZm9yIGd1ZXN0cy4NClRoaXMg
d2F5IERvbTAgc29sdmVzIHRoZSBwcm9ibGVtICJ3aGF0IGlzIHN1cHBvcnRlZCBmb3IgdGhpcw0K
UENJIGRldmljZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGJ1cyB0b3BvbG9neSBhbmQgaG9zdCBicmlk
Z2UiDQo+DQo+IEFsc28gbm90ZSB0aGF0IHlvdXIgY3VycmVudCBjb2RlIHdvdWxkIGFsbG93IGEg
ZG9tVSB0byBzZXQgdGhlIGJpdCBpZg0KPiBwcmV2aW91c2x5IHVuc2V0LCBidXQgaXQgdGhlbiB3
b24ndCBhbGxvdyB0aGUgZG9tVSB0byBjbGVhciBpdCwgd2hpY2gNCj4gZG9lc24ndCBzZWVtIHRv
IGJlIGV4YWN0bHkgd2hhdCB5b3UgYXJlIGFpbWluZyBmb3IuDQpUaGF0IHdhcyBub3RlZCBiZWZv
cmUuIElmIHdlIHVzZSB0aGUgcmVmZXJlbmNlIHZhbHVlIGFuZCB1c2UgaXQNCmFzIGFuIGluaXRp
YWwgdmFsdWUgb2YgdGhlIFBDSV9DT01NQU5EIGZvciB0aGUgZ3Vlc3RzIChyZW1lbWJlcg0KSSB1
c2UgMCBpbiB0aGUgcGF0Y2ggd2hpY2ggcmVzZXRzIFBDSV9DT01NQU5EIGZvciB0aGUgZ3Vlc3Rz
DQphbmQgY2hlY2sgdGhlIHJlYWwgUENJX0NPTU1BTkQgY29udGVudHMgdG8gZGVjaWRlIG9uIElO
VHgpLg0KU28sIHRoaXMgcmVmZXJlbmNlIHZhbHVlIGNhbiBiZSB1c2VkIGluIGNoZWNrczoNCiDC
oMKgwqDCoMKgwqDCoCBpZiAoIHBkZXYtPnZwY2ktPm1zaS0+ZW5hYmxlZCApDQogwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBjbWQgfD0gUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFOw0KIMKgwqDCoMKg
wqDCoMKgIGVsc2UNCiDCoMKgwqDCoMKgwqDCoCB7DQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp
ZiAoIHBkZXYtPmNtZF9yZWZfdmFsdWUgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUgKQ0KIMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF5eXl5eXl5eXl5eXl5eDQogwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNtZCB8PSBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEU7DQog
wqDCoMKgwqDCoMKgwqAgfQ0KDQppbml0X2JhcnM6DQppZiAoaHdkb20pDQogwqBwZGV2LT5jbWRf
cmVmX3ZhbHVlID0gcmVhZChQQ0lfQ09NTUFORCkNCj4NCj4gVGhhbmtzLCBSb2dlci4NCj4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 09:54:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 09:54:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220706.382071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCyf-00065n-2g; Wed, 03 Nov 2021 09:54:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220706.382071; Wed, 03 Nov 2021 09:54:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miCye-00065g-Vq; Wed, 03 Nov 2021 09:54:40 +0000
Received: by outflank-mailman (input) for mailman id 220706;
 Wed, 03 Nov 2021 09:54:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miCye-00065Q-30; Wed, 03 Nov 2021 09:54:40 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miCyd-0005cc-VO; Wed, 03 Nov 2021 09:54:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miCyd-0003BI-M5; Wed, 03 Nov 2021 09:54:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miCyd-0001hS-La; Wed, 03 Nov 2021 09:54:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=JJg3Rt7z0xDw6Nr6UxTsFhxJyYqf7YaqXvjZb0lGX8Y=; b=BbFoagg32Rsq5ek4jtVEBXMQnb
	H7Efv26XXDseZT8WthEH3gExnu5Uc5f9xKZUbjeo0dyOtC4nXzvb44Yj9KGcjMhAOKUakt9oRwiWV
	aVTTaAxeRK+tLp9HIo8Rm1ZYIrXNsaEwjTXb1fWqrZXWNZ8VzW+zP4HisdeuZHtb0eKs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166027-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-coverity test] 166027: all pass - PUSHED
X-Osstest-Versions-This:
    xen=9f8434d77859462ad98a51ec49ad8e23769d9b10
X-Osstest-Versions-That:
    xen=3030a73bf849a50411da95e94abf23cb7e8642fc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 09:54:39 +0000

flight 166027 xen-unstable-coverity real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166027/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10
baseline version:
 xen                  3030a73bf849a50411da95e94abf23cb7e8642fc

Last test of basis   165960  2021-10-31 09:19:38 Z    3 days
Testing same since   166027  2021-11-03 09:19:42 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>

jobs:
 coverity-amd64                                               pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   3030a73bf8..9f8434d778  9f8434d77859462ad98a51ec49ad8e23769d9b10 -> coverity-tested/smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 10:16:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 10:16:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220715.382085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDK1-0008Vg-Tr; Wed, 03 Nov 2021 10:16:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220715.382085; Wed, 03 Nov 2021 10:16:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDK1-0008VZ-Qn; Wed, 03 Nov 2021 10:16:45 +0000
Received: by outflank-mailman (input) for mailman id 220715;
 Wed, 03 Nov 2021 10:16:44 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cnt2=PW=citrix.com=Jane.Malalane@srs-us1.protection.inumbo.net>)
 id 1miDK0-0008VT-ER
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 10:16:44 +0000
Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 240456ae-3c8f-11ec-8564-12813bfff9fa;
 Wed, 03 Nov 2021 10:16:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 240456ae-3c8f-11ec-8564-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635934602;
  h=message-id:date:subject:to:cc:references:from:
   in-reply-to:mime-version;
  bh=LA+q9BOvPMAKMPqWR34ZneJsOyz3Xvj1ovS95lTqUk0=;
  b=VTYblxxG7ptohST6zpt4O0LDteghRZQVMn43ssztZiG1kYPu3v5yOMXR
   /zPNaOlW8pTR9qGFxmMz+4dXhcO2gm7d9AjslOGv45VBjCSK0HG8iM9pA
   SzKCXboq9fsC9E1RM4e+gGmGO6+txIaalrAzeXv7cMVK2PiY2yrjtc0bl
   k=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: A3oNscJ1DI9DkUVpxRz2xRdLoQM4jBO7SR0VK+Kr0ggctV3daFYUhqnSGCipHVgd+x7/itt3V/
 ernZ7/h2pdLDmSuozK38rBqFq38/gPswszJWJyQlXMsgwbwm45yOlzasUBq4V+FlvmeWXv1Iib
 Ovh8VTU0ZoMp/CvegwprDgHx44kzYxSgp3oeQ4L0TTQe0eqEqLbbmXnOEt2QZtKCAwHkMA/Xjy
 veQdV72S2TiWLQWS3We5PmwWIPEUXAjq0cv//2hHwD8vjiEObfYhGztL89+nrs45z96NcBqOBp
 jBi+rP9MwOLyPuyKAsk2nGpm
X-SBRS: 5.1
X-MesageID: 57353191
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:8fiq9axGQhJO6loNQDV6t+dfwCrEfRIJ4+MujC+fZmUNrF6WrkVWn
 WoeW2+AbKnfYWH3eNB0bo+/9BhQscLQyN5kTABu/iAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrZi2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt99V4
 vVstJbqcloOA6qVwdo6Vx5gHi4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoruYqKsStGYobs3VpyzzxBvc6W5HTBa7N4Le02R9t2ZsTRq+PP
 qL1bxJpYRCbTTFzFGwbI6higszvlEfDLBtx/Qf9Sa0fvDGIkV0ZPKLWGNDScNabSN5Vmkudr
 2Tu8GHwAxVcP9uaoRK79Xariv7KjDnMcosYH72l9dZnmFSWgGcUDXU+Xly9p/67hkegWsl3J
 Ekd+y5opq83nGSiStjmQxS5ujiKpBcaUNtLO/I240eGza+8yx2CGmEOQzpFadonnMw7Xzon0
 hmOhdyBLT5lvaCRSHmd3qyJtj70Mi8QRUcSaClBQQYb7t3LpIAokgmJXttlCLSyjND+BXf32
 T/ihCojg7Qei+Yb2qP9+krI6xqzorDZQwhz4R/YNl9J9SsgOtTjPdbxrwGGs7AQd+51U2Vto
 lALv+K+zeEEV6rQsxGKGbwzO7Wu3/uKZWi0bUFUI7Et8DGk+niGdI9W4S1jKEoBDvvoaQMFc
 2eI51oPucY70G+CKPYuPtnvU5hCIb3ITIy9Dpjpgsxyjo+dneNt1AVnfgau0m/kiyDAeolva
 M7AIa5A4Zv3YJmLLQZapc9BjtfHJQhknAs/oKwXKTz9j9Jyg1bPGN843KOmNLxR0U99iFy9H
 yxjH8WL0Q5Dd+b1fzPa94UeRXhTcyNmVc+m9ZQNKr7cSuaDJI3HI6WPqV/GU9c995m5a8+Sp
 i3tMqOm4AOn7ZE4Fel6Qi86M+6+NXqOhXk6ITYtLT6VN4sLOu6SAFMkX8JvJ9EPrbU7pdYtF
 qVtU5jQU5xnF2WckxxAPMaVkWCXXEny7e54F3H+O2ZXkl8Jb1Ghx+IIiSO0qHJVVnrr7pBjy
 1BivyuCKac+q81ZJJ++QNqkzk+rvGhbn+R3XkDSJcJUdlmq+49vQxEdRNduSy3VARmclDacy
 SiMBhIU+bvEr4MvqYGbjqGYtYa5VeB5GxMCTWXc6L+3Mwjc/3aintAcALrZI2iFWTOm4rima
 MVU0+r4bK8NkmFVvtcuCL1s168/uYfi/ucI0gR+EXzXRF23Ebc8cGKe1MxCu/QVlL9UsAe7Q
 GyV/dxeNenbMc/pCgdJdgEkcv6CxbcfnTyLtaY5J0Dz5SlW+rubUBoNY0nQ2XIFdLYsadEr2
 +YsvsIS+jeTsBtyP4bUlD1Q+kSNMmcED/ctuKYFDdK5kQEs0FxDP8DRU3ek/JGVZtxQGUA2O
 TvI1rHajrFRy0eeIXo+EX/BgbhUiZgU4U0YyVYDIxKCm8bfh+9x1xpUqGxlQgNQxxRB8uRyJ
 mk0aBElefTQp29l1JpZQmShOwBdHxnIqEX+xmwAmHDdU0T1BHfGK3cwOLrV8U0Um46GkuO3I
 F1MJL7ZbAvX
IronPort-HdrOrdr: A9a23:XS/l9K8curj5lfNr+Bluk+DcI+orL9Y04lQ7vn2ZLiYlFfBw9v
 re+MjzsCWetN9/Yh0dcLy7V5VoIkm9yXcW2+cs1N6ZNWGN1VdAR7sC0aLShxHmBi3i5qp8+M
 5bAs1D4QTLfDtHZBDBkWuFL+o=
X-IronPort-AV: E=Sophos;i="5.87,205,1631592000"; 
   d="scan'208,217";a="57353191"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=B+hZntU3QlWS4gXH5Tf0GRbjfNfmfY2Gznfx0xBryMSVHHZKYo2aKaRYYhyslso0HKWZqUwy4F59GoiZVg7RG4zuVebB7pudZcJWHPChCc8s+XPflpddHzdm5JaWumlLOcAbAaz8yzBmNuIHtSMSYLaglOf+OlDsBVOCn5fdu+8R/WUQd8l4vUWVfuZnf4CGZ32Dpy9JVCOUMCAolaDSMYF/Us/a0CKmvG6yNxk3H2nECMRAZR+sRQYO7MY7KxRzvVOju4BNNzXLDJ8yRWAjyAAz5NcfPElNRYqvVsu7yNOIl/JC/zQvN+NwfXtYYMiq3mZYBK0DKMMRtQ0WjxXTTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=e76gYoFEE1U/5XZzjhE4eMZALnGdwyEsgYPnh82HamY=;
 b=Xj9MAmQUoOi5WTkf1Yte/nqlgcLGg2TYrr8dyZ7fsb1JxDor5M754ICpcBp9Ue8T+LAouiHlcIFdbyiba3zicozcTTGPt1mMZMGqf9qHSKApiwSPpmB5ufmIlJclizaT1qJExQQRtESw7IWZEs5kkTCsIJNyMmIr/w/z7Jgmx66AyZpdwloMddjNmkSz8umS0FvFYi6VGNoNSu/oIQaLSGAzQ9Qo1jiYUXjjlzp9ZxsA3CvaaK/bcVrXk8jhszJPJN0E2Ia7uMgR/F7d30+Rfpw0Gj9OnFVK3BwpD7iBKm+K3FngqgM6jf9xr+GYqLMckfmBUi39V7+Tl0WdO3tlpw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=e76gYoFEE1U/5XZzjhE4eMZALnGdwyEsgYPnh82HamY=;
 b=j6r52Il0QFdWX5QgVyW5bYc7gKTvQ8RNG0lJJymdZCQh7oaTiNFIJBVlWJpnY4I08GtClw7U+Yls++eDktpPpPBRGJRXjdu4gKbnmi2ixxC5p9//+k6CsM0fKS6q8GOb1ThmHstgrxMOcqtxd40fxa4+t6+2kN4t15/DZUMQJ9M=
Content-Type: multipart/alternative;
 boundary="------------szIPHiIE3j04PJNBfH0WEAiA"
Message-ID: <0230a444-05f0-04e2-c20a-5bb22c0ef63d@citrix.com>
Date: Wed, 3 Nov 2021 10:16:26 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: Arch-neutral name for hardware interrupt support
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<jbeulich@suse.com>, Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bobby Eshleman <bobbyeshleman@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>
References: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
 <YYD8L6MCrpytCkr7@Air-de-Roger>
From: Jane Malalane <jane.malalane@citrix.com>
In-Reply-To: <YYD8L6MCrpytCkr7@Air-de-Roger>
X-ClientProxiedBy: LO2P265CA0263.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:8a::35) To MW4PR03MB6330.namprd03.prod.outlook.com
 (2603:10b6:303:11d::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 72bb736c-b2d5-4286-e0f7-08d99eb30356
X-MS-TrafficTypeDiagnostic: MW4PR03MB6345:
X-Microsoft-Antispam-PRVS: <MW4PR03MB63455B492931720D3B6FD8F9818C9@MW4PR03MB6345.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: ecVC/ZNKYtq7NzP18dD5V9zDoiIeqPhKGAGsORcIcYGmhdcydwYLYe4JjxHMql499L0d9luBLsTVhi6xr780NI//3untkN8qKpVaRCAnKUEIt/GG5iXB8QJxvxSUegpfTik73tesOuJuYMVLUrBPMmfvhyerB+tDzJ7DuOAZDb7Af4Bv7B86m1OHp17k/iGyCgfkwFbcXesa3oh3jhjCDKa3NkNyIFSbBzFhdk6fn2GifEh8dDBxvn2xOEwjNVxLT5LOi4HV0alRwwKZkpc019cju50pVC7TGNvK5109ly+JnRcihN2KxAWUv6vkHNS3+v0LJ6TZyqUAVhO72LXh5Ufp0itzEglN0DSktGFM1/k/opvIXA6kx6c2ZOPknSG7z9AoamrpSh28HZ5qAx+5Vp7S5Rz6OMlxJWk0lUilVBIy/bDHWS1ZntGAHuJx6FZIAC2Qc6FVw33Cxw+RvMsaqA5YOLXAy7gkHIpVmkLKEcw9uJD2U1Nedv3aEacL+Zbpiop+JlhRPGZtDpu1WL3oz+28qFURvre4YkWSXqLWby/HMiZ1uN8mcVwa4K9FOt6diSh2mtwihR/Va0pX6PPgIF/VQhhGQHYvt4gZ5kjPZSb5wrtpBnbHZ4nZxvsDpMRxoE0Xzoq/5Lc7LYB4tlBaXg5Q+WX6F/AJr3nrkdYbZoZPoJ4b1SXHN1BrlHLlCXp1rgAdynibh8yU12LkGiO0/21nBMt3PUuIgzOX46rpZZimIZ6/rQNIvg68h02BxNuLSednHoeyY5K/uIoGVaGMUg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6330.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(31686004)(6486002)(4326008)(44832011)(38350700002)(38100700002)(186003)(31696002)(82960400001)(52116002)(6636002)(316002)(6666004)(54906003)(26005)(33964004)(8676002)(83380400001)(956004)(110136005)(2906002)(508600001)(2616005)(55236004)(66476007)(8936002)(5660300002)(66556008)(16576012)(53546011)(66946007)(86362001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MVhXWDA2WWNvMkQ5dVpqLzF4VkN4b3NCL2IrUlpjVnJzUm1uRWxWUmFNMVlH?=
 =?utf-8?B?Z2lRZTRoNlVnRWdPZnA1SUdubUtqNTZTNGZIdm9GNjVFaEs5aU50SUh6M1hn?=
 =?utf-8?B?bURlU0RoTEJ4RXEvcE5TNWZaNzJuWVBsZ0hENmNNbG9STXNMeHh2ak9JbGdr?=
 =?utf-8?B?RTBqL2c0ZGxQRytkaXZsRERXYm56WHQ4S2k2eTRIRVlmdW9IaFM0TG5YbUVW?=
 =?utf-8?B?Y1VTMUdMak1HQkVOVE5VSUdPQjFHemhTOWVPRDJpM3ExOFB0dS9PUVlDUGNO?=
 =?utf-8?B?bjNPR3Y4cnlidWxSWTFvaTFHWmFIeENXQzJUaDBXRzhtOHY0YlA2SE1iNk9T?=
 =?utf-8?B?clVkNzhUYmVYOXN5WFQ0SWM5bEhYYkNKWFNaaDVKNU1lQ0ZxbnNxY0JjeHpz?=
 =?utf-8?B?eUplQVVJT0xwNDRlVGI1bHNSYjB1cnlEdUNUd0syWkRITjBVaDZxQzZTc1hu?=
 =?utf-8?B?WDhoQUU2VDRETjFDcmIxWm0xb2tUQUFlUisxN0FNU2p5TnNydGdZSmh4djdS?=
 =?utf-8?B?M1ZTdm42QVJvVTlsdjBWZE00U2hpMnY3elBZSWZmNE1BRS95NzZEd2dkTXB0?=
 =?utf-8?B?OWR0UUMyUjJXM1I0T2thOWFrVE1OYU56eVJNRi9OemEwNCtjWmhybUI3cWt4?=
 =?utf-8?B?Z29XNEdvUWwwN1ltUmgvUUNCb21uQ0xyaEhlVFNlZXNpcW80cGNmVk1yaWpS?=
 =?utf-8?B?YXhDQ0NvSDBCcmpmbXpsZjNWWlg3S2lUMWUza3V2anlCTWd1QmxyR1pRcFFx?=
 =?utf-8?B?MlkvTHZwTkQ4STEvQTZydS9ZTElOM2dQWlgwZEN1NHVCUFY5Vm8wdkVtT2xS?=
 =?utf-8?B?c2lXR3VqVW1kR3VlYnc3WUJhM1FYU0lNS2M0amNpZG5xMm5wOGpVRWkxd1ZB?=
 =?utf-8?B?cXA2WHFFU09vTlR4U1h0QnFla3FpUjFrMGtLaHBSeVZqL2JMMjN6ZUR4QnEr?=
 =?utf-8?B?eG9DTFhzaW5DWkozQWZQZFpZSFB4cGlPZzdtOGpLWnJRKzkzVnhhV0dhNHlJ?=
 =?utf-8?B?TGZtd2ZTOVM1Yy9NRWxFYTJNSkxuQisxWVJCUnNGNEhSZTZjcnUyVjhGMEQw?=
 =?utf-8?B?S0xpaXFMR0hSQXZLZkx5L0pPcGlvUGwrbXR1WkJaQ2RqV0JwUnpYR3VqMmIw?=
 =?utf-8?B?aUdqYWQ2Sk9oVUtFMnExTjVxcWR5OE5TaDhZSU9wRVZGSWY2cFZnM2I0Ujla?=
 =?utf-8?B?SDVnbHFoSHlSU1BjbVlsY1pWVncvOXBTZGNkODNMR0ZGeHlEcTh4blEyYllI?=
 =?utf-8?B?U09Na3FyMDh0ME5xQ1Z3ajloOUtzVHJVNkh1QjdGbFE1bC9DUHBoWlZyeFB4?=
 =?utf-8?B?dGxQdUVHbHNtR0x0cDQ5eFlnU3cxMzVyQUtYMXRxK1ZCSDRHUDFaUnpBRVZT?=
 =?utf-8?B?bkphR0FKR2dMSmtMNzJjaytGWUprY0s1a05DWHppS0tRR2hNVmpDUHQyaE5w?=
 =?utf-8?B?Rk03b0wzclBIZnBiM2JnRDNYS2xnNjdhWEpBVWVYVXdVWUZyRlVncGJTaVdi?=
 =?utf-8?B?S0dUT09MNGQxRFlaZTQ2UEdOYU1CQ1hGZDVjeTF2NUt4TU5jNE9SZFIxRDRN?=
 =?utf-8?B?S3dmV1J4SkRjNXlVVXpnRHhMb09zKzViMVNra211YU5wSyt5MUlrNWtXQlpW?=
 =?utf-8?B?ZWpBWGNkdzJMRjQ3Rk1kNCsxbXoza2FxUnhWN3h6Sk95c3VVa205TldjWXMw?=
 =?utf-8?B?Q1JGNnRzKzFSKzNHYUhEU1dwZmNaY2k5ZHMxcUEyV0Q3djVkdFllNHFQNVU1?=
 =?utf-8?B?N1VEYVlFWDlTWlh4cG15MnZPMmtpMjFrSm1RQ1ljMHo4ZkdJN1FGRDhEQW9n?=
 =?utf-8?B?cTJVVGRZbGlSQWNFM1BYZnJOVitCS1FHbE5zSU91NVRDL2VkRm5vakxxZnBz?=
 =?utf-8?B?dGEvMzlKQzNhZDRyei9jODNKTXdXWmlRLzJHaEV4SmFRWWtCNWFhdzF2dE9i?=
 =?utf-8?B?Smx4Um9iaDJyTy9OSU5qT0ZXT082bXd5VzUxSXFubk1HLzJtL1NxRnRyRUR2?=
 =?utf-8?B?MWVTNnhrbXljRGR3RU9udkE1SkJxMytQbjZwTnBtSXdha2w3aHdRa1NpeTB4?=
 =?utf-8?B?R0dobGN2aldLNnJabUhQbkhLTnFudGF0bXVnMjZMMU9mcEdGbXhIc3RIKzNo?=
 =?utf-8?B?bXFMMTA2Y1JYa1pJNVhjc0tTR3dyRmMzcTZkSjdPY09xVjNWelozZERaOU1a?=
 =?utf-8?B?Z3BmMnhWU2h4SFFjL3NXKzlsN1M5MFhoa1hhSnRQbTc0NlBvMEpKOUNvNXRK?=
 =?utf-8?B?b1FqaHNrakY3MTluK2c2UlcxTnBnPT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 72bb736c-b2d5-4286-e0f7-08d99eb30356
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6330.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 10:16:34.5649
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 32dIJUkzzfHNzutcJ4UcFWzTxuo/sVwzLEmKvbfN/Sxb2xU6gV//DosUU1eQyOVZSpuyua83iEvvQvy9jPFK+wfe36UNpancdX2zFFDui2s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6345
X-OriginatorOrg: citrix.com

--------------szIPHiIE3j04PJNBfH0WEAiA
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 02/11/2021 08:51, Roger Pau Monné wrote:
> On Mon, Nov 01, 2021 at 10:47:26AM +0000, Andrew Cooper wrote:
>> Hello,
>>
>> On ARM, the GIC is a hard prerequisite for VMs.
>>
>> I can't remember what the state of RISCV is, but IIRC there is still
>> some debate over how interrupts are expected to work under virt.
>>
>> On x86, the story is very different.  PV have no hardware assistance,
>> while HVM hardware assistance depends on hardware support.  Therefore we
>> want to introduce a new CDF flag so we can control the setting per
>> domain, rather than globally as it is done now.
>>
>> This brings us to the question of what a suitable architecture name
>> would be.
>>
>> Hardware Virtual Interrupts is a little too close to Hardware Virtual
>> (Machine) Introspection, and Hardware Assisted Interrupts (mirroring
>> HAP) doesn't seem great either.
>>
>> Thoughts / ideas / suggestions?
> Is this going to cover both hardware assisted interrupt
> controller and assisted interrupt delivery (ie: APIC virtualization
> and posted interrupts in x86 speak) or just one of them?
>
> Thanks, Roger.

It's not going to cover IOMMU posted interrupts, only CPU posted interrupts.


Jane.

--------------szIPHiIE3j04PJNBfH0WEAiA
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 02/11/2021 08:51, Roger Pau Monné
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:YYD8L6MCrpytCkr7@Air-de-Roger">
      <pre class="moz-quote-pre" wrap="">On Mon, Nov 01, 2021 at 10:47:26AM +0000, Andrew Cooper wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Hello,

On ARM, the GIC is a hard prerequisite for VMs.

I can't remember what the state of RISCV is, but IIRC there is still
some debate over how interrupts are expected to work under virt.

On x86, the story is very different.&nbsp; PV have no hardware assistance,
while HVM hardware assistance depends on hardware support.&nbsp; Therefore we
want to introduce a new CDF flag so we can control the setting per
domain, rather than globally as it is done now.

This brings us to the question of what a suitable architecture name
would be.

Hardware Virtual Interrupts is a little too close to Hardware Virtual
(Machine) Introspection, and Hardware Assisted Interrupts (mirroring
HAP) doesn't seem great either.

Thoughts / ideas / suggestions?
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Is this going to cover both hardware assisted interrupt
controller and assisted interrupt delivery (ie: APIC virtualization
and posted interrupts in x86 speak) or just one of them?

Thanks, Roger.</pre>
    </blockquote>
    <pre>It's not going to cover IOMMU posted interrupts, only CPU posted interrupts.


Jane.</pre>
  </body>
</html>
--------------szIPHiIE3j04PJNBfH0WEAiA--


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 10:20:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 10:20:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220723.382096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDNt-0001S0-Eu; Wed, 03 Nov 2021 10:20:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220723.382096; Wed, 03 Nov 2021 10:20:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDNt-0001Rt-Bm; Wed, 03 Nov 2021 10:20:45 +0000
Received: by outflank-mailman (input) for mailman id 220723;
 Wed, 03 Nov 2021 10:20:44 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9PtR=PW=arm.com=Luca.Fancellu@srs-us1.protection.inumbo.net>)
 id 1miDNs-0001Rn-1v
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 10:20:44 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com (unknown
 [2a01:111:f400:fe08::62e])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 2e137040-fc5d-475c-ae0b-8f73733c3318;
 Wed, 03 Nov 2021 10:20:40 +0000 (UTC)
Received: from DB6PR1001CA0024.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:4:b7::34)
 by DBAPR08MB5813.eurprd08.prod.outlook.com (2603:10a6:10:1a5::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 10:20:38 +0000
Received: from DB5EUR03FT020.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:4:b7:cafe::44) by DB6PR1001CA0024.outlook.office365.com
 (2603:10a6:4:b7::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Wed, 3 Nov 2021 10:20:38 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT020.mail.protection.outlook.com (10.152.20.134) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Wed, 3 Nov 2021 10:20:38 +0000
Received: ("Tessian outbound 6ebd41198c5d:v108");
 Wed, 03 Nov 2021 10:20:37 +0000
Received: from f72ae3186121.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 CD7A81AD-1833-439E-8496-6E0BF4B39C5C.1; 
 Wed, 03 Nov 2021 10:20:31 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f72ae3186121.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 03 Nov 2021 10:20:31 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PR3PR08MB5707.eurprd08.prod.outlook.com (2603:10a6:102:8b::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 10:20:29 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Wed, 3 Nov 2021
 10:20:29 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO2P265CA0114.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:c::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Wed, 3 Nov 2021 10:20:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e137040-fc5d-475c-ae0b-8f73733c3318
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7f+lu24A+UmK9KwVW1SL75nyyZvsp/IfEaGsotu9bO4=;
 b=pKRusCZhKeRwGJWoGdoAqtfaAX25w81v4qgPZ7KGOiZheFMBHN7YSkZgAbO4tj/obEyEH1mo240T9KhHcb5cb3xnuzKPxMe3+ANfK/PEzuyBH26FXpUIRzFgeEAYzZ6IQrSFKHyVJgqu/p02aiUHNb40oyjPE5AMSinfC5JJTQQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 93a3bd89d4bddbcf
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iUw7szDfIoOZtA+EhHKTs7kuBFjcE1PwA0lLJFPDdl2vBHfvC/6vVEfbQcuwkVnuRiKLlIR+pnlhL68jQGV68RseUEpJb3Ibaj3kInWKfDSj+8qrvBD7Zpsg5++8UKa2Tw3CwG1vNM1+awi/HFTRDB9Xw/5qtLYgaNLugERXSDsrjKfO+mbP4YnmKveZZGmCCjIs4lukO0P9brfEr9NaWBx2JZBfgxoHBvLt0MV3Gor9u2mGTtZcdrNtpVfMhZSkTLYR83q0wiMwVKWle0ZFB85D4qDJI+FqRa6sOYG+nWsxa/kNoqEV7gDmaT9+X5yIRA9+Xwrw8hMYtBfEAHNxZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7f+lu24A+UmK9KwVW1SL75nyyZvsp/IfEaGsotu9bO4=;
 b=fGYRZAIhI0wyr2OK9uk/1un0Uu3iZFn7kPlBplmkFmkZCTeTGaS+L6uqRLdzhI/K2yZNQ4qS6SfYvmMRJPTUYvbDbzHtC8Hc9HFqTCs/qf8Yp8jysGwOOqVTorhJSOnrm7IWsofafyWTMzQWblb+eS9qxC2WhY6higzRjEqc5UKBlWj7BmI/xEpSIu6dykmTZZE8OcAj0Sz0/svcexw3OS3F/L+Dyvgmqv9QQI/zTn/OPUeVjpcS1CTUm9jVQrtOCH0Ny296wjbYXfaiAmAFnDJHXuO6ccYz0pl4pIfqX/81vujtMqi1INh1zBD6OU4pbfwMx6c0AA/MQupQPy/Q1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7f+lu24A+UmK9KwVW1SL75nyyZvsp/IfEaGsotu9bO4=;
 b=pKRusCZhKeRwGJWoGdoAqtfaAX25w81v4qgPZ7KGOiZheFMBHN7YSkZgAbO4tj/obEyEH1mo240T9KhHcb5cb3xnuzKPxMe3+ANfK/PEzuyBH26FXpUIRzFgeEAYzZ6IQrSFKHyVJgqu/p02aiUHNb40oyjPE5AMSinfC5JJTQQ=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
Date: Wed, 3 Nov 2021 10:20:22 +0000
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO2P265CA0114.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:c::30) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 45cc4f3b-ce0b-4f69-3c1f-08d99eb394b3
X-MS-TrafficTypeDiagnostic: PR3PR08MB5707:|DBAPR08MB5813:
X-Microsoft-Antispam-PRVS:
	<DBAPR08MB5813D719F440FB7E929C11E2E48C9@DBAPR08MB5813.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 Q4yPEoAJaxQhHDeYkc3mYfaMtUJvgB90pzNmetfD0O1zuBeTzEnLsVG3vlqSKSCXAfKQDOysiU95Na/ylx++W3MdSyDWaSSNv7hsNa97Xqec6hlj+XKp7E8AzdR4fvaVzjovvmTV1LJ6xsIiWabn0l9XBpZJa0drx+W+c1JEUfs9CqMruR998O0b0h3ti0GChnlJ6jkBEkPs/cS7H/skSe8oUfxuppuyBsLDt9f63CyMmWqEdt7B5/bwvb6EAV7oEnbI77QPjAJUXr9gDY/AKmFaPQ5sIDWQ/LyllKLkhbL1VUrPSBw5KoX8ugR2R/1OQmhBT26Gy/GUX6Dq7oZZd+0JHREMwz3MofpW9kSIE8DljsLiDUcSVxh/kOT3E+bLBgDBCzRtlYdPI1bnRqzDslA005nQzwOm28FfThv3DFBzvdzLYXl7zztsY9mXl0duIkqK6tntAzNoRNM8uBm015TEiPBHXIOvRsZcYqeMCx+t1mGVSYWH31hGDPMVi9ahmiNnGuJOnpBl2ZjX0YDjtNRdB8/TWsAJ6BYkogYg42i3ir85+QJrwnkjsKvc8soZufSq8dlySgDHEXOMQfUQB/YfuIXStqB5wReucLEVhQo0U7FsFJVW6M6UmDGiHr6Hb4xMiNFZlJg3xJPCGBPeU7VtS1LB/PJSd3FCY1/9fxnjXcW/sByXSjcK6m0Iq/o/uLTZ9S9TUFyJBSEqmH+jPJ5YWJSH2OO39GKhb8cHKLw=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(33656002)(2906002)(5660300002)(52116002)(38100700002)(316002)(38350700002)(66476007)(83380400001)(66946007)(54906003)(86362001)(4326008)(66556008)(6916009)(508600001)(956004)(186003)(8936002)(6506007)(53546011)(6512007)(26005)(8676002)(6486002)(2616005)(6666004)(36756003)(44832011)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5707
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT020.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c80d1b6b-0944-4097-617e-08d99eb38f8b
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	WFD5yqB7cw/9ctAvHWw3pYxNcZu9kDiRzrutFCN3PVQj4fxG0WPZxatvqsX77Yo45IH+KLiQcnFw7WHlFLWZB45xegpVytst6wznmRGdXPlsHzhGUSBkLOqFKGnw6qWd5TZuqJ5bYwUh5016dsz0qFcyAhbrzj2Q46cgVTYrJSLWUknsGrb8oNoKR8tdZJC7yz87HAM4DVuOMytq8n3n76YwEkcmM+YbcR1M2s7MgPTbkCKq6TXzY4yz/cPq2H4Tsbs/6YtmJwGwyOOSUwzu229XqXYcLkZbBpSdoiizDQCcm6Vdgv5PhhNe9sXcBlTUlut9rgXeTcHKEl4LbeN3jnw4g9DrQHmkkAK0vC3urCzVxU4zUgYIII86SRLUbudnpCpDu88jVqtsewQ2aE2ix78rBrCDEUqvr3h+6aUgKscDJ7A1zt3ZJIyjHPaxH2dUcoASvCY7cxQuObMEfBvdmrqSXbbbUhM508lDGGgrnx2VL3nCs4DQHRKN1wDZXc1t3b6+D9MWHnIeTvgzp1JOdcqo+d3+iG+ITjgqIpkAbtE/0cLMWCGQOe5qPj1bO63rqbnnNc42urD/SCjhtNdIw8CArjB6IR+3BDKO0kVPndxKA2rtMQ1M4Or32knX2f1+CAlM4cJ5KdnNcrj44EIl4zR/T7x0mJw3P3je3BuZspC/dDeqS3Rnh+zLvkOn9SQ+Ux9FLj/WPf3i1kG1t/ca+g==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(6862004)(6666004)(36756003)(956004)(44832011)(2616005)(26005)(508600001)(186003)(5660300002)(6512007)(47076005)(8676002)(86362001)(36860700001)(54906003)(53546011)(70586007)(6486002)(4326008)(81166007)(83380400001)(2906002)(6506007)(33656002)(316002)(336012)(8936002)(356005)(82310400003)(70206006);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 10:20:38.0674
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 45cc4f3b-ce0b-4f69-3c1f-08d99eb394b3
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT020.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5813



> On 3 Nov 2021, at 08:20, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 02.11.2021 18:12, Luca Fancellu wrote:
>>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
>>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>>> introducing a problem to boot Xen using Grub2 on ARM machine using EDK=
2.
>>>>=20
>>>> The problem comes from the function get_parent_handle(...) that inside
>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>>>> is NULL, making Xen stop the UEFI boot.
>>>=20
>>> According to my reading the UEFI spec doesn't (explicitly) allow for
>>> this to be NULL. Could you clarify why this is the case? What other
>>> information may end up being invalid / absent? Is e.g. read_section()
>>> safe to use?
>>=20
>> My test on an arm machine running Grub2 on top of EDK2 showed that
>> when Xen is started, the get_parent_handle(=E2=80=A6) call was failing a=
nd stopping
>> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called with t=
he
>> loaded_image->DeviceHandle argument NULL and the call was returning
>> a EFI_INVALID_PARAMETER.
>> So the parent handle can=E2=80=99t be requested and the filesystem can=
=E2=80=99t be used,
>> but any other code that doesn=E2=80=99t use the handle provided by get_p=
arent_handle(=E2=80=A6)
>> can be used without problem like read_section(...).
>=20
> I understand this. My question was for the reason of ->DeviceHandle
> being NULL. IOW I'm wondering whether we're actually talking about a
> firmware or GrUB bug, in which case your change is a workaround for
> that rather than (primarily) a fix for the earlier Xen change.

The issue was found only when using EDK2+Grub2, no issue when booting
directly from EDK2.
This is a fix for the regression, because without the EFI changes, Grub2 wa=
s
booting successfully Xen. Using grub2 to boot Xen on arm is a very common
solution so not supporting this anymore could lead to lots of people having
issues if they update to Xen 4.16.

>=20
>>>> --- a/xen/common/efi/boot.c
>>>> +++ b/xen/common/efi/boot.c
>>>> @@ -449,6 +449,13 @@ static EFI_FILE_HANDLE __init get_parent_handle(E=
FI_LOADED_IMAGE *loaded_image,
>>>>    CHAR16 *pathend, *ptr;
>>>>    EFI_STATUS ret;
>>>>=20
>>>> +    /*
>>>> +     * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_P=
ROTOCOL
>>>> +     * to have access to the filesystem.
>>>> +     */
>>>> +    if ( !loaded_image->DeviceHandle )
>>>> +        return NULL;
>>>=20
>>> I couldn't find anything in the spec saying that NULL (a pointer with
>>> the numeric value zero) could actually not be a valid handle. Could
>>> you point me to text saying so?
>>=20
>> I am reading UEFI spec 2.8 A, section 7.3 Protocol Handler Services, whe=
n it talks about
>> EFI_BOOT_SERVICES.HandleProtocol() there is a table of =E2=80=9CStatus C=
ode Returned=E2=80=9D listing
>> the EFI_INVALID_PARAMETER when the Handle is NULL.
>=20
> Oh, okay. I guess I didn't search very well.
>=20
>>>> @@ -1333,6 +1342,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TAB=
LE *SystemTable)
>>>>            EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>>>>                                                       &file_name);
>>>>=20
>>>> +            if ( !handle )
>>>> +                blexit(L"Error retrieving image name: no filesystem a=
ccess");
>>>=20
>>> I don't think this should be fatal - see the comment ahead of the
>>> enclosing if().
>>=20
>> I=E2=80=99m not sure I get it, I put the fatal condition in part because=
 the handle was dereferenced by
>> handle->Close(handle), but also because file_name would have not being m=
odified by the call
>> and we have then *argv =3D file_name.
>=20
> Instead of you making boot fail I was trying to suggest that you insert
> a made-up name ("xen" or "xen.efi"?) alongside issuing just a warning
> message.

Oh ok now I see, yes I think I can do it

>=20
> Jan
>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 10:21:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 10:21:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220726.382107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDOM-00021r-UB; Wed, 03 Nov 2021 10:21:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220726.382107; Wed, 03 Nov 2021 10:21:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDOM-00021k-P4; Wed, 03 Nov 2021 10:21:14 +0000
Received: by outflank-mailman (input) for mailman id 220726;
 Wed, 03 Nov 2021 10:21:13 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=neJr=PW=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1miDOK-0001rd-TE
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 10:21:12 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id be91f4ba-3c8f-11ec-8564-12813bfff9fa;
 Wed, 03 Nov 2021 10:21:02 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 4B2F321709;
 Wed,  3 Nov 2021 10:21:01 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id F180B13CE7;
 Wed,  3 Nov 2021 10:21:00 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id bf8wOYxigmF4DwAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 03 Nov 2021 10:21:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be91f4ba-3c8f-11ec-8564-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635934861; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=gr0jXYCMCnZ5A6hp0P1Tf6RLE7sYs7cl6f53SmZUA+o=;
	b=mX9yuaBWqr9CpeqS7V8bD6U1d9GnHp62xCeicrH+FaXMDmHEsaEEV7M7IvGomO07khoVgC
	71mo05eIzOwzNodbaFJwr473IWMPkNtZCTBUc4zD5qCPq+tx48+niRUJ2Fk19iU2c2kPrG
	PL9n3iltf5mclgP/GD4O7QlzMCMGnuw=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2.2 07/15] xen: generate hypercall interface related code
Date: Wed,  3 Nov 2021 11:20:59 +0100
Message-Id: <20211103102059.19621-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Instead of repeating similar data multiple times use a single source
file and a generator script for producing prototypes and call sequences
of the hypercalls.

As the script already knows the number of parameters used add generating
a macro for populating an array with the number of parameters per
hypercall.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- split platform_op for doe and compat prefixes (Jan Beulich)
- add "addline:" directive
- add priorities to handlers (Jan Beulich)
V2.1:
- add missing "delete" statement in awk script
- optimize case of 2 hypercalls with same priority
V2.2:
- avoid asort() function (Michal Orzel)

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 .gitignore                    |   1 +
 xen/Makefile                  |  10 ++
 xen/include/hypercall-defs.c  | 285 ++++++++++++++++++++++++++++++
 xen/scripts/gen_hypercall.awk | 323 ++++++++++++++++++++++++++++++++++
 4 files changed, 619 insertions(+)
 create mode 100644 xen/include/hypercall-defs.c
 create mode 100644 xen/scripts/gen_hypercall.awk

diff --git a/.gitignore b/.gitignore
index 9513506dd9..753a602e29 100644
--- a/.gitignore
+++ b/.gitignore
@@ -336,6 +336,7 @@ xen/include/public/public
 xen/include/xen/*.new
 xen/include/xen/acm_policy.h
 xen/include/xen/compile.h
+xen/include/xen/hypercall-defs.h
 xen/include/xen/lib/x86/cpuid-autogen.h
 xen/test/livepatch/config.h
 xen/test/livepatch/expect_config.h
diff --git a/xen/Makefile b/xen/Makefile
index a3189eb47c..dfdae47e74 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -383,6 +383,7 @@ _clean: delete-unfresh-files
 		-o -name "*.gcno" -o -name ".*.cmd" -o -name "lib.a" \) -exec rm -f {} \;
 	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map *~ core
 	rm -f asm-offsets.s include/asm-*/asm-offsets.h
+	rm -f include/xen/hypercall-defs.h include/hypercall-defs.i
 	rm -f .banner .allconfig.tmp
 
 .PHONY: _distclean
@@ -405,6 +406,7 @@ $(TARGET): delete-unfresh-files
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C include
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) include
 	$(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h
+	$(MAKE) -f $(BASEDIR)/Rules.mk include/xen/hypercall-defs.h
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
 
 # drivers/char/console.o contains static banner/compile info. Blow it away.
@@ -466,6 +468,14 @@ include/asm-$(TARGET_ARCH)/asm-offsets.h: asm-offsets.s
 	  echo ""; \
 	  echo "#endif") <$< >$@
 
+quiet_cmd_genhyp = GEN     $@
+define cmd_genhyp
+    awk -f scripts/gen_hypercall.awk <$< >$@
+endef
+
+include/xen/hypercall-defs.h: include/hypercall-defs.i scripts/gen_hypercall.awk FORCE
+	$(call if_changed,genhyp)
+
 SUBDIRS = xsm arch/$(TARGET_ARCH) common drivers lib test
 define all_sources
     ( find include/asm-$(TARGET_ARCH) -name '*.h' -print; \
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
new file mode 100644
index 0000000000..c31a4a302c
--- /dev/null
+++ b/xen/include/hypercall-defs.c
@@ -0,0 +1,285 @@
+/*
+ * Hypercall interface description:
+ * Used by scripts/gen_hypercall.awk to generate hypercall prototypes and call
+ * sequences.
+ *
+ * Syntax is like a prototype, but without return type and without the ";" at
+ * the end. Pointer types will be automatically converted to use the
+ * XEN_GUEST_HANDLE_PARAM() macro. Handlers with no parameters just use a
+ * definition like "fn()".
+ * Hypercall/function names are without the leading "__HYPERVISOR_"/"do_"
+ * strings.
+ *
+ * The return type of a class of prototypes using the same prefix is set via:
+ * rettype: <prefix> <type>
+ * Default return type is "long". A return type for a prefix can be set only
+ * once and it needs to be set before that prefix is being used via the
+ * "prefix:" directive.
+ *
+ * The prefix of the prototypes is set via a line:
+ * prefix: <prefix> ...
+ * Multiple prefixes are possible (restriction see below). Prefixes are without
+ * a trailing "_". The current prefix settings are active until a new "prefix:"
+ * line.
+ *
+ * Caller macros are suffixed with a selectable name via lines like:
+ * caller: <suffix>
+ * When a caller suffix is active, there is only one active prefix allowed.
+ *
+ * With a "defhandle:" line it is possible to add a DEFINE_XEN_GUEST_HANDLE()
+ * to the generated header:
+ * defhandle: <handle-type> [<type>]
+ * Without specifying <type> only a DEFINE_XEN_GUEST_HANDLE(<handle-type>)
+ * will be generated, otherwise it will be a
+ * __DEFINE_XEN_GUEST_HANDLE(<handle-type>, <type>) being generated. Note that
+ * the latter will include the related "const" handle "const_<handle-type>".
+ *
+ * In order to support using coding style compliant pointers in the
+ * prototypes it is possible to add translation entries to generate the correct
+ * handle types:
+ * handle: <handle-type> <type>
+ * This will result in the prototype translation from "<type> *" to
+ * "XEN_GUEST_HANDLE_PARAM(<handle-type>)".
+ *
+ * A verbatim line can be added via:
+ * addline: <line-contents>
+ * Its position is kept in regard of other "handle:" and "defhandle:" lines.
+ *
+ * The hypercall handler calling code will be generated from a final table in
+ * the source file, which is started via the line:
+ * table: <caller> <caller> ...
+ * with the <caller>s specifying the designated caller macro of each column of
+ * the table. Any column of a <caller> not having been set via a "caller:"
+ * line will be ignored.
+ * The first column of the table contains the hypercall/prototype, each
+ * <caller> column contains the prefix for the function to use for that caller.
+ * A function prefix can be annotated with a priority by adding ":<prio>" to it
+ * ("1" being the highest priority, higher numbers mean lower priority, no
+ * priority specified is the lowest priority). The generated code will try to
+ * achieve better performance for calling high priority handlers.
+ * A column not being supported by a <caller> is marked with "-". Lines with all
+ * entries being "-" after removal of inactive <caller> columns are ignored.
+ *
+ * This file is being preprocessed using $(CPP), so #ifdef CONFIG_* conditionals
+ * are possible.
+ */
+
+#ifdef CONFIG_HVM
+#define PREFIX_hvm hvm
+#else
+#define PREFIX_hvm
+#endif
+
+#ifdef CONFIG_COMPAT
+#define PREFIX_compat compat
+rettype: compat int
+#else
+#define PREFIX_compat
+#endif
+
+#ifdef CONFIG_ARM
+#define PREFIX_dep dep
+#else
+#define PREFIX_dep
+#endif
+
+handle: uint unsigned int
+handle: const_void const void
+handle: const_char const char
+
+#ifdef CONFIG_COMPAT
+defhandle: multicall_entry_compat_t
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+addline: typedef struct compat_platform_op compat_platform_op_t;
+defhandle: compat_platform_op_t
+#endif
+#endif
+#ifdef CONFIG_PV32
+defhandle: trap_info_compat_t
+defhandle: physdev_op_compat_t
+#endif
+
+prefix: do PREFIX_hvm PREFIX_compat
+physdev_op(int cmd, void *arg)
+#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
+grant_table_op(unsigned int cmd, void *uop, unsigned int count)
+#endif
+
+prefix: do PREFIX_hvm
+memory_op(unsigned long cmd, void *arg)
+
+prefix: do PREFIX_compat
+xen_version(int cmd, void *arg)
+vcpu_op(int cmd, unsigned int vcpuid, void *arg)
+sched_op(int cmd, void *arg)
+xsm_op(void *op)
+callback_op(int cmd, const void *arg)
+#ifdef CONFIG_ARGO
+argo_op(unsigned int cmd, void *arg1, void *arg2, unsigned long arg3, unsigned long arg4)
+#endif
+#ifdef CONFIG_KEXEC
+kexec_op(unsigned int op, void *uarg)
+#endif
+#ifdef CONFIG_PV
+iret()
+nmi_op(unsigned int cmd, void *arg)
+#ifdef CONFIG_XENOPROF
+xenoprof_op(int op, void *arg)
+#endif
+#endif /* CONFIG_PV */
+
+#ifdef CONFIG_COMPAT
+prefix: compat
+set_timer_op(uint32_t lo, int32_t hi)
+multicall(multicall_entry_compat_t *call_list, uint32_t nr_calls)
+memory_op(unsigned int cmd, void *arg)
+#ifdef CONFIG_IOREQ_SERVER
+dm_op(domid_t domid, unsigned int nr_bufs, void *bufs)
+#endif
+mmuext_op(void *arg, unsigned int count, uint *pdone, unsigned int foreigndom)
+#ifdef CONFIG_PV32
+set_trap_table(trap_info_compat_t *traps)
+set_gdt(unsigned int *frame_list, unsigned int entries)
+set_callbacks(unsigned long event_selector, unsigned long event_address, unsigned long failsafe_selector, unsigned long failsafe_address)
+update_descriptor(uint32_t pa_lo, uint32_t pa_hi, uint32_t desc_lo, uint32_t desc_hi)
+update_va_mapping(unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags)
+physdev_op_compat(physdev_op_compat_t *uop)
+update_va_mapping_otherdomain(unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags, domid_t domid)
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+platform_op(compat_platform_op_t *u_xenpf_op)
+#endif
+#endif /* CONFIG_COMPAT */
+
+#if defined(CONFIG_PV) || defined(CONFIG_ARM)
+prefix: do PREFIX_dep
+event_channel_op_compat(evtchn_op_t *uop)
+physdev_op_compat(physdev_op_t *uop)
+/* Legacy hypercall (as of 0x00030101). */
+sched_op_compat(int cmd, unsigned long arg)
+#endif
+
+prefix: do
+set_timer_op(s_time_t timeout)
+console_io(unsigned int cmd, unsigned int count, char *buffer)
+vm_assist(unsigned int cmd, unsigned int type)
+event_channel_op(int cmd, void *arg)
+mmuext_op(mmuext_op_t *uops, unsigned int count, unsigned int *pdone, unsigned int foreigndom)
+multicall(multicall_entry_t *call_list, unsigned int nr_calls)
+#ifdef CONFIG_PV
+mmu_update(mmu_update_t *ureqs, unsigned int count, unsigned int *pdone, unsigned int foreigndom)
+stack_switch(unsigned long ss, unsigned long esp)
+fpu_taskswitch(int set)
+set_debugreg(int reg, unsigned long value)
+get_debugreg(int reg)
+set_segment_base(unsigned int which, unsigned long base)
+mca(xen_mc_t *u_xen_mc)
+set_trap_table(const_trap_info_t *traps)
+set_gdt(xen_ulong_t *frame_list, unsigned int entries)
+set_callbacks(unsigned long event_address, unsigned long failsafe_address, unsigned long syscall_address)
+update_descriptor(uint64_t gaddr, seg_desc_t desc)
+update_va_mapping(unsigned long va, uint64_t val64, unsigned long flags)
+update_va_mapping_otherdomain(unsigned long va, uint64_t val64, unsigned long flags, domid_t domid)
+#endif
+#ifdef CONFIG_IOREQ_SERVER
+dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+sysctl(xen_sysctl_t *u_sysctl)
+domctl(xen_domctl_t *u_domctl)
+paging_domctl_cont(xen_domctl_t *u_domctl)
+platform_op(xen_platform_op_t *u_xenpf_op)
+#endif
+#ifdef CONFIG_HVM
+hvm_op(unsigned long op, void *arg)
+#endif
+#ifdef CONFIG_HYPFS
+hypfs_op(unsigned int cmd, const char *arg1, unsigned long arg2, void *arg3, unsigned long arg4)
+#endif
+#ifdef CONFIG_X86
+xenpmu_op(unsigned int op, xen_pmu_params_t *arg)
+#endif
+
+#ifdef CONFIG_PV
+caller: pv64
+#ifdef CONFIG_PV32
+caller: pv32
+#endif
+#endif
+#if defined(CONFIG_HVM) && defined(CONFIG_X86)
+caller: hvm64
+#ifdef CONFIG_COMPAT
+caller: hvm32
+#endif
+#endif
+#ifdef CONFIG_ARM
+caller: arm
+#endif
+
+table:                             pv32     pv64     hvm32    hvm64    arm
+set_trap_table                     compat   do       -        -        -
+mmu_update                         do:1     do:1     -        -        -
+set_gdt                            compat   do       -        -        -
+stack_switch                       do:2     do:2     -        -        -
+set_callbacks                      compat   do       -        -        -
+fpu_taskswitch                     do       do       -        -        -
+sched_op_compat                    do       do       -        -        dep
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+platform_op                        compat   do       compat   do       do
+#endif
+set_debugreg                       do       do       -        -        -
+get_debugreg                       do       do       -        -        -
+update_descriptor                  compat   do       -        -        -
+memory_op                          compat   do       hvm      hvm      do
+multicall                          compat:2 do:2     compat   do       do
+update_va_mapping                  compat   do       -        -        -
+set_timer_op                       compat   do       compat   do       -
+event_channel_op_compat            do       do       -        -        dep
+xen_version                        compat   do       compat   do       do
+console_io                         do       do       do       do       do
+physdev_op_compat                  compat   do       -        -        dep
+#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
+grant_table_op                     compat   do       hvm      hvm      do
+#endif
+vm_assist                          do       do       do       do       do
+update_va_mapping_otherdomain      compat   do       -        -        -
+iret                               compat:1 do:1     -        -        -
+vcpu_op                            compat   do       compat:1 do:1     do
+set_segment_base                   do:2     do:2     -        -        -
+#ifdef CONFIG_PV
+mmuext_op                          compat:2 do:2     compat   do       -
+#endif
+xsm_op                             compat   do       compat   do       do
+nmi_op                             compat   do       -        -        -
+sched_op                           compat   do       compat   do       do
+callback_op                        compat   do       -        -        -
+#ifdef CONFIG_XENOPROF
+xenoprof_op                        compat   do       -        -        -
+#endif
+event_channel_op                   do       do       do:1     do:1     do
+physdev_op                         compat   do       hvm      hvm      do
+#ifdef CONFIG_HVM
+hvm_op                             do       do       do       do       do
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+sysctl                             do       do       do       do       do
+domctl                             do       do       do       do       do
+#endif
+#ifdef CONFIG_KEXEC
+kexec_op                           compat   do       -        -        -
+#endif
+tmem_op                            -        -        -        -        -
+#ifdef CONFIG_ARGO
+argo_op                            compat   do       compat   do       do
+#endif
+xenpmu_op                          do       do       do       do       -
+#ifdef CONFIG_IOREQ_SERVER
+dm_op                              compat   do       compat   do       do
+#endif
+#ifdef CONFIG_HYPFS
+hypfs_op                           do       do       do       do       do
+#endif
+mca                                do       do       -        -        -
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+paging_domctl_cont                 do       do       do       do       -
+#endif
diff --git a/xen/scripts/gen_hypercall.awk b/xen/scripts/gen_hypercall.awk
new file mode 100644
index 0000000000..1484217201
--- /dev/null
+++ b/xen/scripts/gen_hypercall.awk
@@ -0,0 +1,323 @@
+# awk script to generate hypercall handler prototypes and a macro for doing
+# the calls of the handlers inside a switch() statement.
+
+BEGIN {
+    printf("/* Generated file, do not edit! */\n\n");
+    e = 0;
+    n = 0;
+    p = 0;
+    nc = 0;
+}
+
+# Issue error to stderr
+function do_err(msg) {
+    print "Error: "msg": "$0 >"/dev/stderr";
+    exit 1;
+}
+
+# Generate handler call
+function do_call(f, p,    i) {
+    printf("            ret = %s_%s(", pre[f, p], fn[f]);
+    for (i = 1; i <= n_args[f]; i++) {
+        if (i > 1)
+            printf(", ");
+        if (ptr[f, i])
+            printf("(XEN_GUEST_HANDLE_PARAM(%s)){ _p(a%d) }", typ[f, i], i);
+        else
+            printf("(%s)(a%d)", typ[f, i], i);
+    }
+    printf("); \\\n");
+}
+
+# Generate case statement for call
+function do_case(f, p) {
+    printf("        case __HYPERVISOR_%s: \\\n", fn[f]);
+    do_call(f, p);
+    printf("            break; \\\n");
+}
+
+# Generate switch statement for calling handlers
+function do_switch(ca, p,    i) {
+    printf("        switch ( num ) \\\n");
+    printf("        { \\\n");
+    for (i = 1; i <= nc; i++)
+        if (call[i] == ca && call_prio[i] == p)
+            do_case(call_fn[i], call_p[i]);
+    printf("        default: \\\n");
+    printf("            ret = -ENOSYS; \\\n");
+    printf("            break; \\\n");
+    printf("        } \\\n");
+}
+
+function rest_of_line(par,    i, val) {
+    val = $(par);
+    for (i = par + 1; i <= NF; i++)
+        val = val " " $(i);
+    return val;
+}
+
+# Handle comments (multi- and single line)
+$1 == "/*" {
+    comment = 1;
+}
+comment == 1 {
+    if ($(NF) == "*/") comment = 0;
+    next;
+}
+
+# Skip preprocessing artefacts
+$1 == "extern" {
+    next;
+}
+/^#/ {
+    next;
+}
+
+# Drop empty lines
+NF == 0 {
+    next;
+}
+
+# Handle "handle:" line
+$1 == "handle:" {
+    if (NF < 3)
+        do_err("\"handle:\" requires at least two parameters");
+    val = rest_of_line(3);
+    xlate[val] = $2;
+    next;
+}
+
+# Handle "defhandle:" line
+$1 == "defhandle:" {
+    if (NF < 2)
+        do_err("\"defhandle:\" requires at least one parameter");
+    e++;
+    if (NF == 2) {
+        emit[e] = sprintf("DEFINE_XEN_GUEST_HANDLE(%s);", $2);
+    } else {
+        val = rest_of_line(3);
+        emit[e] = sprintf("__DEFINE_XEN_GUEST_HANDLE(%s, %s);", $2, val);
+        xlate[val] = $2;
+    }
+    next;
+}
+
+# Handle "addline:" line
+$1 == "addline:" {
+    if (NF < 2)
+        do_err("\"addline:\" requires at least one parameter");
+    e++;
+    emit[e] = rest_of_line(2);
+    next;
+}
+
+# Handle "rettype:" line
+$1 == "rettype:" {
+    if (NF < 3)
+        do_err("\"rettype:\" requires at least two parameters");
+    if ($2 in rettype)
+        do_err("rettype can be set only once for each prefix");
+    rettype[$2] = rest_of_line(3);
+    next;
+}
+
+# Handle "caller:" line
+$1 == "caller:" {
+    caller[$2] = 1;
+    next;
+}
+
+# Handle "prefix:" line
+$1 == "prefix:" {
+    p = NF - 1;
+    for (i = 2; i <= NF; i++) {
+        prefix[i - 1] = $(i);
+        if (!(prefix[i - 1] in rettype))
+            rettype[prefix[i - 1]] = "long";
+    }
+    next;
+}
+
+# Handle "table:" line
+$1 == "table:" {
+    table = 1;
+    for (i = 2; i <= NF; i++)
+        col[i - 1] = $(i);
+    n_cols = NF - 1;
+    next;
+}
+
+# Handle table definition line
+table == 1 {
+    if (NF != n_cols + 1)
+        do_err("Table definition line has wrong number of fields");
+    for (c = 1; c <= n_cols; c++) {
+        if (caller[col[c]] != 1)
+            continue;
+        if ($(c + 1) == "-")
+            continue;
+        pref = $(c + 1);
+        idx = index(pref, ":");
+        if (idx == 0)
+            prio = 100;
+        else {
+            prio = substr(pref, idx + 1) + 0;
+            pref = substr(pref, 1, idx - 1);
+            if (prio >= 100 || prio < 1)
+                do_err("Priority must be in the range 1..99");
+        }
+        fnd = 0;
+        for (i = 1; i <= n; i++) {
+            if (fn[i] != $1)
+                continue;
+            for (j = 1; j <= n_pre[i]; j++) {
+                if (pre[i, j] == pref) {
+                    prios[col[c], prio]++;
+                    if (prios[col[c], prio] == 1) {
+                        n_prios[col[c]]++;
+                        prio_list[col[c], n_prios[col[c]]] = prio;
+                        prio_mask[col[c], prio] = "(1ULL << __HYPERVISOR_"$1")";
+                    } else
+                        prio_mask[col[c], prio] = prio_mask[col[c], prio] " | (1ULL << __HYPERVISOR_"$1")";
+                    nc++;
+                    call[nc] = col[c];
+                    call_fn[nc] = i;
+                    call_p[nc] = j;
+                    call_prio[nc] = prio;
+                    fnd = 1;
+                }
+            }
+        }
+        if (fnd == 0)
+            do_err("No prototype for prefix/hypercall combination");
+    }
+    next;
+}
+
+# Prototype line
+{
+    bro = index($0, "(");
+    brc = index($0, ")");
+    if (bro < 2 || brc < bro)
+        do_err("No valid prototype line");
+    n++;
+    fn[n] = substr($0, 1, bro - 1);
+    n_pre[n] = p;
+    for (i = 1; i <= p; i++)
+        pre[n, i] = prefix[i];
+    args = substr($0, bro + 1, brc - bro - 1);
+    n_args[n] = split(args, a, ",");
+    if (n_args[n] > 5)
+        do_err("Too many parameters");
+    for (i = 1; i <= n_args[n]; i++) {
+        sub("^ *", "", a[i]);         # Remove leading white space
+        sub(" +", " ", a[i]);         # Replace multiple spaces with single ones
+        sub(" *$", "", a[i]);         # Remove trailing white space
+        ptr[n, i] = index(a[i], "*"); # Is it a pointer type?
+        sub("[*]", "", a[i]);         # Remove "*"
+        if (index(a[i], " ") == 0)
+            do_err("Parameter with no type or no name");
+        typ[n, i] = a[i];
+        sub(" [^ ]+$", "", typ[n, i]);    # Remove parameter name
+        if (ptr[n, i] && (typ[n, i] in xlate))
+            typ[n, i] = xlate[typ[n, i]];
+        arg[n, i] = a[i];
+        sub("^([^ ]+ )+", "", arg[n, i]); # Remove parameter type
+    }
+}
+
+# Generate the output
+END {
+    # Verbatim generated lines
+    for (i = 1; i <= e; i++)
+        printf("%s\n", emit[i]);
+    printf("\n");
+    # Generate prototypes
+    for (i = 1; i <= n; i++) {
+        for (p = 1; p <= n_pre[i]; p++) {
+            printf("%s %s_%s(", rettype[pre[i, p]], pre[i, p], fn[i]);
+            if (n_args[i] == 0)
+                printf("void");
+            else
+                for (j = 1; j <= n_args[i]; j++) {
+                    if (j > 1)
+                        printf(", ");
+                    if (ptr[i, j])
+                        printf("XEN_GUEST_HANDLE_PARAM(%s)", typ[i, j]);
+                    else
+                        printf("%s", typ[i, j]);
+                    printf(" %s", arg[i, j]);
+                }
+            printf(");\n");
+        }
+    }
+    # Generate call sequences and args array contents
+    for (ca in caller) {
+        if (caller[ca] != 1)
+            continue;
+        need_mask = 0;
+        for (pl = 1; pl <= n_prios[ca]; pl++) {
+            for (pll = pl; pll > 1; pll--) {
+                if (prio_list[ca, pl] > p_list[pll - 1])
+                    break;
+                else
+                    p_list[pll] = p_list[pll - 1];
+            }
+            p_list[pll] = prio_list[ca, pl];
+            # If any prio but the default one has more than 1 entry we need "mask"
+            if (p_list[pll] != 100 && prios[ca, p_list[pll]] > 1)
+                need_mask = 1;
+        }
+        printf("\n");
+        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5) \\\n", ca);
+        printf("{ \\\n");
+        if (need_mask)
+            printf("    uint64_t mask = 1ULL << num; \\\n");
+        printf("    ");
+        for (pl = 1; pl <= n_prios[ca]; pl++) {
+            if (prios[ca, p_list[pl]] > 1) {
+                if (pl < n_prios[ca]) {
+                    printf("if ( likely(mask & (%s)) ) \\\n", prio_mask[ca, p_list[pl]]);
+                    printf("    { \\\n");
+                }
+                if (prios[ca, p_list[pl]] == 2) {
+                    fnd = 0;
+                    for (i = 1; i <= nc; i++)
+                        if (call[i] == ca && call_prio[i] == p_list[pl]) {
+                            fnd++;
+                            if (fnd == 1)
+                                printf("        if ( num == __HYPERVISOR_%s ) \\\n", fn[call_fn[i]]);
+                            else
+                                printf("        else \\\n");
+                            do_call(call_fn[i], call_p[i]);
+                        }
+                } else {
+                    do_switch(ca, p_list[pl]);
+                }
+                if (pl < n_prios[ca])
+                    printf("    } \\\n");
+            } else {
+                for (i = 1; i <= nc; i++)
+                    if (call[i] == ca && call_prio[i] == p_list[pl]) {
+                        printf("if ( likely(num == __HYPERVISOR_%s) ) \\\n", fn[call_fn[i]]);
+                        do_call(call_fn[i], call_p[i]);
+                    }
+            }
+            if (pl < n_prios[ca] || prios[ca, p_list[pl]] <= 2)
+                printf("    else ");
+        }
+        if (prios[ca, p_list[n_prios[ca]]] <= 2) {
+            printf("\\\n");
+            printf("        ret = -ENOSYS; \\\n");
+        }
+        printf("}\n");
+        delete p_list;
+        printf("\n");
+        printf("#define hypercall_args_%s \\\n", ca);
+        printf("{ \\\n");
+        for (i = 1; i <= nc; i++)
+            if (call[i] == ca)
+                printf("[__HYPERVISOR_%s] = %d, \\\n", fn[call_fn[i]], n_args[call_fn[i]]);
+        printf("}\n");
+    }
+}
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 10:24:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 10:24:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220737.382118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDRa-0002is-Da; Wed, 03 Nov 2021 10:24:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220737.382118; Wed, 03 Nov 2021 10:24:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDRa-0002il-9d; Wed, 03 Nov 2021 10:24:34 +0000
Received: by outflank-mailman (input) for mailman id 220737;
 Wed, 03 Nov 2021 10:24:33 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miDRZ-0002if-3a
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 10:24:33 +0000
Received: from mx0a-0039f301.pphosted.com (unknown [148.163.133.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 3b8e5e86-3c90-11ec-8564-12813bfff9fa;
 Wed, 03 Nov 2021 10:24:31 +0000 (UTC)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A39GmRG011983;
 Wed, 3 Nov 2021 10:24:26 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c3qnf89ee-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 10:24:25 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4018.eurprd03.prod.outlook.com (2603:10a6:208:73::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Wed, 3 Nov
 2021 10:24:22 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 10:24:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b8e5e86-3c90-11ec-8564-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TtJ4EfRX1wqxcZJyH0PsjjjAAkTAnJ+4t91qqJ5wqGapOP5sbAM35WFnqMXMA73k8ZaPFJSNQcymC2yI7QAYFmTcydkP59eG7MlFbtX3muxMYdPZEwu2Z2bjc3KZQxqzuClowzuzeYEZy8p1JJb49MNWzLZOVIVf+I9GWGk+d5Uq3siDXNnP+IgKVhrhNzHwo2bmDrutBrDHhIwSlVSS/cpJYB4f4S1M1zCDQXifDrbPlDTYDjbl0rt14KXE+efSSbZbgayPwZfIguNnvU1DRPkpNwI88Gev89yiAIrR+gKLjWuYEKSFNnFypxRwG38p6Y3pVn/qBPkCxxZgdoLAxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=opBIV7xkbWO1guH4lOqoP/7+101OMdd4sMhZ3fe+6X4=;
 b=TVAxzJFzUC4eYgxxHrnn5NF/g1TBRWDNFlNCfzQVTPPUR7Pp7eIGmAUNp2NAXEQVhJUE1Vxj4BDA/fVh+of4SYzB9YgSr/F1/DF3riZQjXg8LfEqW+H6rkbqrbcSSU71OBcqC/YrOj/Tl1BGqe/msz2xohVWnJFP11JClNjck/d+q/mBfVpR7JQfVTC3zC5FAJZM2j1xAaP31sqOeS7ybfY3pILuaEUPJvARdte6tsiUbVNPFFnBHQT7ZT0CETUZVbU542dovfoPpJczL9DL0DpWuCpjDVb08naody5BXDUsbph4CX1Rtze1zDe3gZOMy92XP+lssxWmpMIntfMr3A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=opBIV7xkbWO1guH4lOqoP/7+101OMdd4sMhZ3fe+6X4=;
 b=TOTwtjCQSeg0I0uLdJjuHEpyaqiwvI+VlY+vF17kq6U3D7AFS/quXVDVYTuX5c0p/+5I2qpEgPFSMc3dBsuTCHwHWqHMcRx6y9FsXjbrajNKgM2p9doFWM7Vf4KwvjW8j4064aajsGXdXK6lJ++UcxD9v0bdVRjX6OU8xuNWdj98x5sKIVampB1ckvSEKR+Xt3lF55dTwW8L45wfvpTNwcytmeuarEv4zNfghjJrkMMoXvwSih2oejb14OH6y2Uue+CTohCt82q8uqHiT7RRBmsLUqJh28KJZt7o2jVT6xu+97ouH+S6SLFiKSnY+1eF1l3HVmS7F4UAMB+EM1GQhQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Michal Orzel <michal.orzel@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: 
 AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUICAATmxAIAABTcAgAABvgCAAAHkAIAAAZSAgAAFc4CAAAmcgA==
Date: Wed, 3 Nov 2021 10:24:22 +0000
Message-ID: <48506e1b-2dc9-4652-f169-3d44135a4e74@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
 <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
 <4f77a4f2-a66b-465d-5859-7fe71ece8168@suse.com>
In-Reply-To: <4f77a4f2-a66b-465d-5859-7fe71ece8168@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b6e1ef9d-4ad5-454b-3e7d-08d99eb41a7f
x-ms-traffictypediagnostic: AM0PR03MB4018:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB401883535123DB3CEAB153B3E78C9@AM0PR03MB4018.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 A6OCOq+ijjijEQIMZBukZ2OjcQ2ggxkB+o43eTV4iE8LJ6uJ0I9FQq3cTcgjRIV8fnAZlGjeCGvWDrADtgW59ziFgxhL38w9UthdtfhQxhDe073rnpYk1u33H/maF4dyyO8/eFoFGP5oQu1XHpRDMITBd5doD0gQqaU3EfSooig1mpdVVUbNVdpjtJzBgo3nVRl6Ni3f5C5xsciadG6V3ApM4KVKR9DjdbfZ/cLwEPIb2UqqXO3x0ZJXmvQ7tWmy2RhoM3b+D6glgq7zuZciAgaLKKgwO8M2pdUxy92LMJXZwUzSvquYEHtRGFZDMLHY/ev8kGOweM6NJ1kzeU8FwBI2mBgKjoJkreXr97JT9GJ9GXk4uH4hraNpGmjUb7k0SWfR926u1CgszznbeXnjrLgcFeaB3bWI80dYNeZCRLe1HDgCbVAl2AN1Fjg0HScvx2+zExB0Ng1d3z6PNkDtPmhg8zeAtWFdytRUCoPlpW1rsQng0Asuqh3Q2vYhw1oRY/xCuvqJrHpzRlBn4yGkFGOWHCIZFjvIznIjsZyVGHY0Q4UMs/jQIQLRlymveiHf2Xn6Wrx6RLxPmPdPCAn0d0G0O96zQrfsz/7e7HIbHf8S/6LkO/rpy9yOofijFlUxJafq6bnC6hFyTo/EL9oAVDB4/PLCO2Ny9lyfYzzLZKYZMfX3jVnjf+Oh+qJ/7aPs2+IthivszKO3teWOMYVvaBm2K4Y35/PbrF3/Ch/rf9b8QgsSDOkICbHsvk5AKbcz
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(66946007)(316002)(38070700005)(110136005)(26005)(107886003)(8936002)(508600001)(66556008)(54906003)(91956017)(66446008)(64756008)(66476007)(4326008)(83380400001)(186003)(5660300002)(2906002)(6506007)(53546011)(71200400001)(76116006)(6512007)(8676002)(36756003)(122000001)(38100700002)(86362001)(31686004)(6486002)(31696002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?eElFMWR5Nnl6dTVlbHFiVEtMeEdYaE85Z1RBYlFSQlNFeEQ2bnJRWEVUZFc2?=
 =?utf-8?B?UVJNeTNLR1RrTkFjbHBxYW9mU2lmR290a0xqem5BZ28waGJiTzF1KzEvYm5S?=
 =?utf-8?B?bFpUU1l4U201RVcwQzRXK3BWNjF1bnp3VmoyYlZLcUxBem9kTitCeUI4Ynhm?=
 =?utf-8?B?UE5HZ0tCZ3prZk93ZWIrSEdOekdRanJFMitMOEhFaDEybFgreDQyT3BMWU1n?=
 =?utf-8?B?RTIrNjl1eHNKNzJwNzVCTU5PTlJNRjJiekdkREszcHRFTldndFFURVBKdysz?=
 =?utf-8?B?UDc1M3RTRzRMZ1dQVno3RCtMTGUwZytxZ1ZJMFR3U3N6OXRkWFc1QzFNWkpW?=
 =?utf-8?B?am1zR25DYm1aTEpoQ3BvU04veDEra0hDWmFpeFJwZ1NBaU5GUTZrSXViVWp3?=
 =?utf-8?B?V1FEZmxFSnUwOHJXZFBpUmFqMmFPQjBxQUpTNlJCOWR0Y0lOSkp3RERNQUNB?=
 =?utf-8?B?NFROQmxpaDN1a2NMdUNkTE81U1laUlM2ZTdXc3ZubjVDY3FUSSswQWxGTFdU?=
 =?utf-8?B?MUZaTFU1Z0sraUU1bmo3Z3lrZ3dtZWtKcmpoNVJrOTRhM3MySWp0Sko5SUlh?=
 =?utf-8?B?V2NCNW8wZXNGRUNWVHNvYzRDMjJqL21pL3ZYNGc3bUxITXI4MHNHNUk0cTNL?=
 =?utf-8?B?bFJHVCtweUtneDZPQ0tkazBwMEkvTTJqcHhadEdnUVJvejdHK3hSaTJydkZM?=
 =?utf-8?B?VW4velZYR2ZZNXBJOTZIMXB6dm91Wmc2YUNVTmtqSVZUcnpFeEN2RFNOT3Ew?=
 =?utf-8?B?bHJuaWNSOWtlN1Bic0JDNmZlTzBIVG5pNDVYeHUvTmhpUHFYSHhYbEZlbmIy?=
 =?utf-8?B?UmRuRHl0QkIvcUZWd0YweURnanpVazhTRWs3VjV4aW9GYUk0SzVKRXp6VjFD?=
 =?utf-8?B?cHRKWjRObW1lbzVJbi9JcDduaEFhTUtPekxhUE1YMnRIYWN0MFZuc1RYNUlE?=
 =?utf-8?B?Y2lGOUt1Zm1MVkVPNWtVdFZ0ZU9lVEF3NS92RE43QkRjQ0pSQTZGQ2x0a0hx?=
 =?utf-8?B?MzROY1p1V2tXdEduUU1XcXhpQi9iNkw1OUZleDJnWEM4d0JEL2NGREt1YmJM?=
 =?utf-8?B?bWFQejhtZkRHREJZazZWYjhJK2lpK25jbnFmOExvcUpoNEZyTFJOdWV6M2V1?=
 =?utf-8?B?ZUdMMzJtV0s0dUFkNXJKNTk3YWIycjZuWjJiYlRTWkxhNUM3Rm5UR3U4Ry9R?=
 =?utf-8?B?enBuZ24wdGZ4dmNoczB1M01hRmM1YzlyWExJeFdDc1M1R3pKRHRPTlAvbkw1?=
 =?utf-8?B?akNPWFYvRXVmTkV4N1NkdHZndkpGK08wQkJ6Wk5qQW4yM3ZpdDk4ZW1ITlR6?=
 =?utf-8?B?QmdnUDFMeGU3bXlYV28vR3BRRnh0WDhSdi9FQlN4ekI4QlJBSVlqYnhxN2NT?=
 =?utf-8?B?Q1h2VGhJMmRzR2tON0NKeDROaitpTEhaU1ZvYlFkV2lmNDRxVmQ0Qzl5VGhO?=
 =?utf-8?B?Y3R6NUh6bG1zcWxOVHF5YVIwckZITkIxT3I5MTA4anNrcTdRSXdyZ3EzUm1C?=
 =?utf-8?B?RCswTDd6NDFmYjJjQVF1KzRJbWUwYWlRSkY1bzRZbEhwdkRGOXFiVmtGQkFL?=
 =?utf-8?B?S3lHSXJwT0hlSTlkN3dvNFJUNU9oaHhZZ3hML3BJR04rT2FWR2Y3aHBQTS9y?=
 =?utf-8?B?MXo1a2daNW9SQVZrRDBIOWdXU0IzZVQ0aXB3eDdoT3NPRlBYZXdOVUlpbzRv?=
 =?utf-8?B?RFdmemRVelhaQUl0M1FEcW80NWhrMC9aYm1ZQ0FRTjA1dVFacUIzS2w1M2ZP?=
 =?utf-8?B?TENtMU1zV0JuaVJiMHdOTjJHWVM1UFNFZzVkMThUaE5OOUcxbkZhdzBKWkJm?=
 =?utf-8?B?bSszdU1LSkdZd0lIKzBzdG56Sm9TMU1IOWxPWm1XTWtnRXo2RmZzTlZkaHhO?=
 =?utf-8?B?cGlsZmhNTFM5UjZOWjhaV2ZaL3RGWmN3U2hqVEhlaDZsTzA2YkNzT1FlaENP?=
 =?utf-8?B?c2l4QUpjelBWZk9WT2dRQ0lzNnJVV1EyQVc4NmxjUEViVXpTeWtxKzhxZk9S?=
 =?utf-8?B?WDFFMlllRzl5TXBOaTVGUnFNVmxBeVBydFRSa0JJYVVCbEhPa01hWEtxM2Rk?=
 =?utf-8?B?eFMrRkc1VHV5YjRMbHdYd1QxcnJYOUs2bjB5NU5Dd013OVp5eHhjbnNKOUx0?=
 =?utf-8?B?aFZhR2lQWWNNZ0FvNThFVzBwVGE2Y096VXdqcEpUZlNEa2tUU0gvMkU1ZXZs?=
 =?utf-8?B?ek15V3FGR0pSdUIzd3NEeExqOWlrenFvZDZZQVl1cC9mYzU3V3BlYjFUSDJP?=
 =?utf-8?B?eTZSRWFOK2t6ay9CUVVnWHJzMkdlMG02MytZL2JCUklEQnBDQ3NsWWxkVkZL?=
 =?utf-8?B?OENhQko1MnZjcFpYNkJHVlNQdC9aRnRQazFKbHdhY2Zrc1Q0R3ZFUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9F47737C50AD664882B113252D02658E@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b6e1ef9d-4ad5-454b-3e7d-08d99eb41a7f
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 10:24:22.3433
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 7RxWvT7xFBWMmMkLyiZNYHtWO7ZkYWlRmUHBSAeVNhK7IFgBTCZWqaSkpI4rwaGddqnxKT0DojTYNkmm/Kqkl3qWfx31cW6W/L3i7haIsKBI90DIBfBYSCLSfUa2BwHg
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4018
X-Proofpoint-ORIG-GUID: JOqCHvpwbAwhoXvZtxODVep-YL_-XXLL
X-Proofpoint-GUID: JOqCHvpwbAwhoXvZtxODVep-YL_-XXLL
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_03,2021-11-03_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0
 mlxlogscore=933 adultscore=0 mlxscore=0 lowpriorityscore=0 bulkscore=0
 malwarescore=0 phishscore=0 suspectscore=0 clxscore=1015
 priorityscore=1501 spamscore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2110150000 definitions=main-2111030058

DQoNCk9uIDAzLjExLjIxIDExOjQ5LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDMuMTEuMjAy
MSAxMDozMCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMDMuMTEu
MjEgMTE6MjQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDAzLjExLjIwMjEgMTA6MTgsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAwMy4xMS4yMSAxMToxMSwgSmFu
IEJldWxpY2ggd3JvdGU6DQo+Pj4+PiBPbiAwMy4xMS4yMDIxIDA5OjUzLCBPbGVrc2FuZHIgQW5k
cnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBPbiAwMi4xMS4yMSAxNjoxMCwgT2xla3NhbmRyIEFu
ZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+Pj4+IE9uIDAyLjExLjIxIDE1OjU0LCBKYW4gQmV1bGlj
aCB3cm90ZToNCj4+Pj4+Pj4+IE9uIDAyLjExLjIwMjEgMTI6NTAsIFJvZ2VyIFBhdSBNb25uw6kg
d3JvdGU6DQo+Pj4+Pj4+Pj4gT24gVHVlLCBOb3YgMDIsIDIwMjEgYXQgMTI6MTk6MTNQTSArMDEw
MCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+Pj4+Pj4+IE9uIDI2LjEwLjIwMjEgMTI6NTIsIFJv
Z2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+Pj4+Pj4+PiBPbiBUaHUsIFNlcCAzMCwgMjAyMSBh
dCAxMDo1MjoyMEFNICswMzAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+
Pj4+Pj4+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+Pj4+Pj4+Pj4+Pj4gKysr
IGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4+Pj4+Pj4+Pj4+IEBAIC00NTEsNiArNDUx
LDMyIEBAIHN0YXRpYyB2b2lkIGNtZF93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwg
dW5zaWduZWQgaW50IHJlZywNCj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAgIHBjaV9jb25mX3dy
aXRlMTYocGRldi0+c2JkZiwgcmVnLCBjbWQpOw0KPj4+Pj4+Pj4+Pj4+ICAgICAgIH0NCj4+Pj4+
Pj4+Pj4+PiAgICAgICANCj4+Pj4+Pj4+Pj4+PiArc3RhdGljIHZvaWQgZ3Vlc3RfY21kX3dyaXRl
KGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4+Pj4+Pj4+
Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY21kLCB2b2lkICpkYXRh
KQ0KPj4+Pj4+Pj4+Pj4+ICt7DQo+Pj4+Pj4+Pj4+Pj4gKyAgICAvKiBUT0RPOiBBZGQgcHJvcGVy
IGVtdWxhdGlvbiBmb3IgYWxsIGJpdHMgb2YgdGhlIGNvbW1hbmQgcmVnaXN0ZXIuICovDQo+Pj4+
Pj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4+Pj4+ICsgICAgaWYgKCAoY21kICYgUENJX0NPTU1BTkRfSU5U
WF9ESVNBQkxFKSA9PSAwICkNCj4+Pj4+Pj4+Pj4+PiArICAgIHsNCj4+Pj4+Pj4+Pj4+PiArICAg
ICAgICAvKg0KPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAqIEd1ZXN0IHdhbnRzIHRvIGVuYWJsZSBJ
TlR4LiBJdCBjYW4ndCBiZSBlbmFibGVkIGlmOg0KPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAqICAt
IGhvc3QgaGFzIElOVHggZGlzYWJsZWQNCj4+Pj4+Pj4+Pj4+PiArICAgICAgICAgKiAgLSBNU0kv
TVNJLVggZW5hYmxlZA0KPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAqLw0KPj4+Pj4+Pj4+Pj4+ICsg
ICAgICAgIGlmICggcGRldi0+dnBjaS0+bXNpLT5lbmFibGVkICkNCj4+Pj4+Pj4+Pj4+PiArICAg
ICAgICAgICAgY21kIHw9IFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRTsNCj4+Pj4+Pj4+Pj4+PiAr
ICAgICAgICBlbHNlDQo+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgew0KPj4+Pj4+Pj4+Pj4+ICsgICAg
ICAgICAgICB1aW50MTZfdCBjdXJyZW50X2NtZCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRm
LCByZWcpOw0KPj4+Pj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgaWYgKCBj
dXJyZW50X2NtZCAmIFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRSApDQo+Pj4+Pj4+Pj4+Pj4gKyAg
ICAgICAgICAgICAgICBjbWQgfD0gUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFOw0KPj4+Pj4+Pj4+
Pj4+ICsgICAgICAgIH0NCj4+Pj4+Pj4+Pj4+IFRoaXMgbGFzdCBwYXJ0IHNob3VsZCBiZSBBcm0g
c3BlY2lmaWMuIE9uIG90aGVyIGFyY2hpdGVjdHVyZXMgd2UNCj4+Pj4+Pj4+Pj4+IGxpa2VseSB3
YW50IHRoZSBndWVzdCB0byBtb2RpZnkgSU5UeCBkaXNhYmxlIGluIG9yZGVyIHRvIHNlbGVjdCB0
aGUNCj4+Pj4+Pj4+Pj4+IGludGVycnVwdCBkZWxpdmVyeSBtb2RlIGZvciB0aGUgZGV2aWNlLg0K
Pj4+Pj4+Pj4+PiBXZSBjYW5ub3QgYWxsb3cgYSBndWVzdCB0byBjbGVhciB0aGUgYml0IHdoZW4g
aXQgaGFzIE1TSSAvIE1TSS1YDQo+Pj4+Pj4+Pj4+IGVuYWJsZWQgLSBvbmx5IG9uZSBvZiB0aGUg
dGhyZWUgaXMgc3VwcG9zZWQgdG8gYmUgYWN0aXZlIGF0IGEgdGltZS4NCj4+Pj4+Pj4+Pj4gKElP
VyBzaW1pbGFybHkgd2UgY2Fubm90IGFsbG93IGEgZ3Vlc3QgdG8gZW5hYmxlIE1TSSAvIE1TSS1Y
IHdoZW4NCj4+Pj4+Pj4+Pj4gdGhlIGJpdCBpcyBjbGVhci4pDQo+Pj4+Pj4+Pj4gU3VyZSwgYnV0
IHRoaXMgY29kZSBpcyBtYWtpbmcgdGhlIGJpdCBzdGlja3ksIGJ5IG5vdCBhbGxvd2luZw0KPj4+
Pj4+Pj4+IElOVFhfRElTQUJMRSB0byBiZSBjbGVhcmVkIG9uY2Ugc2V0LiBXZSBkbyBub3Qgd2Fu
dCB0aGF0IGJlaGF2aW9yIG9uDQo+Pj4+Pj4+Pj4geDg2LCBhcyBhIGd1ZXN0IGNhbiBkZWNpZGUg
dG8gdXNlIE1TSSBvciBJTlR4LiBUaGUgZWxzZSBicmFuY2ggbmVlZHMNCj4+Pj4+Pj4+PiB0byBi
ZSBBcm0gb25seS4NCj4+Pj4+Pj4+IElzbid0IHRoZSAiZWxzZSIgcGFydCBxdWVzdGlvbmFibGUg
ZXZlbiBvbiBBcm0/DQo+Pj4+Pj4+IEl0IGlzLiBPbmNlIGZpeGVkIEkgY2FuJ3Qgc2VlIGFueXRo
aW5nIEFybSBzcGVjaWZpYyBoZXJlDQo+Pj4+Pj4gV2VsbCwgSSBoYXZlIGxvb2tlZCBhdCB0aGUg
Y29kZSBvbmUgbW9yZSB0aW1lIGFuZCBldmVyeXRoaW5nIHNlZW1zIHRvDQo+Pj4+Pj4gYmUgb2sg
d3J0IHRoYXQgc3RpY2t5IGJpdDogd2UgaGF2ZSAyIGhhbmRsZXJzIHdoaWNoIGFyZSBjbWRfd3Jp
dGUgYW5kDQo+Pj4+Pj4gZ3Vlc3RfY21kX3dyaXRlLiBUaGUgZm9ybWVyIGlzIHVzZWQgZm9yIHRo
ZSBoYXJkd2FyZSBkb21haW4gYW5kIGhhcw0KPj4+Pj4+ICpubyByZXN0cmljdGlvbnMqIG9uIHdy
aXRpbmcgUENJX0NPTU1BTkQgcmVnaXN0ZXIgY29udGVudHMgYW5kIHRoZSBsYXRlcg0KPj4+Pj4+
IGlzIG9ubHkgdXNlZCBmb3IgZ3Vlc3RzIGFuZCB3aGljaCBkb2VzIGhhdmUgcmVzdHJpY3Rpb25z
IGFwcGxpZWQgaW4NCj4+Pj4+PiBlbXVsYXRlX2NtZF9yZWcgZnVuY3Rpb24uDQo+Pj4+Pj4NCj4+
Pj4+PiBTbywgZm9yIHRoZSBoYXJkd2FyZSBkb21haW4sIHRoZXJlIGlzIG5vICJzdGlja3kiIGJp
dCBwb3NzaWJsZSBhbmQgZm9yIHRoZQ0KPj4+Pj4+IGd1ZXN0IGRvbWFpbnMgaWYgdGhlIHBoeXNp
Y2FsIGNvbnRlbnRzIG9mIHRoZSBQQ0lfQ09NTUFORCByZWdpc3Rlcg0KPj4+Pj4+IGhhcyBQQ0lf
Q09NTUFORF9JTlRYX0RJU0FCTEUgYml0IHNldCB0aGVuIHRoZSBndWVzdCBpcyBlbmZvcmNlZCB0
bw0KPj4+Pj4+IHVzZSBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUgYml0IHNldC4NCj4+Pj4+Pg0K
Pj4+Pj4+IFNvLCBmcm9tIGhhcmR3YXJlIGRvbWFpbiBQT1YsIHRoaXMgc2hvdWxkIG5vdCBiZSBh
IHByb2JsZW0sIGJ1dCBmcm9tDQo+Pj4+Pj4gZ3Vlc3RzIHZpZXcgaXQgY2FuLiBMZXQncyBpbWFn
aW5lIHRoYXQgdGhlIGhhcmR3YXJlIGRvbWFpbiBjYW4gaGFuZGxlDQo+Pj4+Pj4gYWxsIHR5cGVz
IG9mIGludGVycnVwdHMsIGUuZy4gSU5UeCwgTVNJLCBNU0ktWC4gSW4gdGhpcyBjYXNlIHRoZSBo
YXJkd2FyZQ0KPj4+Pj4+IGRvbWFpbiBjYW4gZGVjaWRlIHdoYXQgY2FuIGJlIHVzZWQgZm9yIHRo
ZSBpbnRlcnJ1cHQgc291cmNlIChhZ2Fpbiwgbm8NCj4+Pj4+PiByZXN0cmljdGlvbiBoZXJlKSBh
bmQgcHJvZ3JhbSBQQ0lfQ09NTUFORCBhY2NvcmRpbmdseS4NCj4+Pj4+PiBHdWVzdCBkb21haW5z
IG5lZWQgdG8gYWxpZ24gd2l0aCB0aGlzIGNvbmZpZ3VyYXRpb24sIGUuZy4gaWYgSU5UeCB3YXMg
ZGlzYWJsZWQNCj4+Pj4+PiBieSB0aGUgaGFyZHdhcmUgZG9tYWluIHRoZW4gSU5UeCBjYW5ub3Qg
YmUgZW5hYmxlZCBmb3IgZ3Vlc3RzDQo+Pj4+PiBXaHk/IEl0J3MgdGhlIERvbVUgdGhhdCdzIGlu
IGNvbnRyb2wgb2YgdGhlIGRldmljZSwgc28gaXQgb3VnaHQgdG8NCj4+Pj4+IGJlIGFibGUgdG8g
cGljayBhbnkgb2YgdGhlIHRocmVlLiBJIGRvbid0IHRoaW5rIERvbTAgaXMgaW52b2x2ZWQgaW4N
Cj4+Pj4+IGhhbmRsaW5nIG9mIGludGVycnVwdHMgZnJvbSB0aGUgZGV2aWNlLCBhbmQgaGVuY2Ug
aXRzIG93biAiZGlzbGlrZSINCj4+Pj4+IG9mIElOVHggb3VnaHQgdG8gb25seSBleHRlbmQgdG8g
dGhlIHBlcmlvZCBvZiB0aW1lIHdoZXJlIERvbTAgaXMNCj4+Pj4+IGNvbnRyb2xsaW5nIHRoZSBk
ZXZpY2UuIFRoaXMgd291bGQgYmUgZGlmZmVyZW50IGlmIFhlbidzIHZpZXcgd2FzDQo+Pj4+PiBk
aWZmZXJlbnQsIGJ1dCBhcyB3ZSBzZWVtIHRvIGFncmVlIFhlbidzIHJvbGUgaGVyZSBpcyBzb2xl
bHkgdG8NCj4+Pj4+IHByZXZlbnQgaW52YWxpZCBjb21iaW5hdGlvbnMgZ2V0dGluZyBlc3RhYmxp
c2hlZCBpbiBoYXJkd2FyZS4NCj4+Pj4gT24gdG9wIG9mIGEgUENJIGRldmljZSB0aGVyZSBpcyBh
IHBoeXNpY2FsIGhvc3QgYnJpZGdlIGFuZA0KPj4+PiBwaHlzaWNhbCBidXMgdG9wb2xvZ3kgd2hp
Y2ggbWF5IGltcG9zZSByZXN0cmljdGlvbnMgZnJvbQ0KPj4+PiBEb20wIFBPViBvbiB0aGF0IHBh
cnRpY3VsYXIgZGV2aWNlLg0KPj4+IFdlbGwsIHN1Y2ggcGh5c2ljYWwgcmVzdHJpY3Rpb25zIG1h
eSBtZWFuIElOVHggZG9lc24ndCBhY3R1YWxseSB3b3JrLA0KPj4+IGJ1dCB0aGlzIHdvbid0IG1l
YW4gdGhlIERvbVUgaXNuJ3QgZnJlZSBpbiBjaG9vc2luZyB0aGUgYml0J3Mgc2V0dGluZy4NCj4+
PiBUaGUgYml0IG1lcmVseSBjb250cm9scyB3aGV0aGVyIHRoZSBkZXZpY2UgaXMgYWxsb3dlZCB0
byBhc3NlcnQgaXRzDQo+Pj4gaW50ZXJydXB0IHBpbi4gSGVuY2UgLi4uDQo+Pj4NCj4+Pj4gU28s
IGV2ZXJ5IFBDSSBkZXZpY2UNCj4+Pj4gYmVpbmcgcGFzc2VkIHRocm91Z2ggdG8gYSBEb21VIG1h
eSBoYXZlIGRpZmZlcmVudCBJTlR4DQo+Pj4+IHNldHRpbmdzIHdoaWNoIGRvIGRlcGVuZCBvbiBE
b20wIGluIG91ciBjYXNlLg0KPj4+IC4uLiBJJ20gc3RpbGwgdW5jb252aW5jZWQgb2YgdGhpcy4N
Cj4+IE9rLCBzbyBJIGNhbiBhY2NlcHQgYW55IHN1Z2dlc3Rpb24gaG93IHRvIHNvbHZlIHRoaXMu
IEl0IHNlZW1zIHRoYXQNCj4+IHdlIGFscmVhZHkgaGF2ZSBudW1iZXIgb2Ygbm8gZ28gc2NlbmFy
aW9zIGhlcmUsIGJ1dCBzdGlsbCBpdCBpcyBub3QNCj4+IGNsZWFyIHRvIG1lIHdoYXQgY291bGQg
YmUgYW4gYWNjZXB0YWJsZSBhcHByb2FjaCBoZXJlLiBOYW1lbHk6DQo+PiB3aGF0IGRvIHdlIGRv
IHdpdGggSU5UeCBiaXQgZm9yIGd1ZXN0cz8NCj4+IDEuIEkgY2FuIGxlYXZlIGl0IGFzIGlzIGlu
IHRoZSBwYXRjaA0KPj4gMi4gSSBjYW4gcmVtb3ZlIElOVHggZW11bGF0aW9uIGFuZCBsZXQgdGhl
IGd1ZXN0IGRlY2lkZSBhbmQgcHJvZ3JhbSBJTlR4DQo+PiAzLiBXaGF0IGVsc2UgY2FuIEkgZG8/
DQo+IEFpdWkgeW91IHdhbnQgdG8gcHJldmVudCB0aGUgZ3Vlc3QgZnJvbSBjbGVhcmluZyB0aGUg
Yml0IGlmIGVpdGhlcg0KPiBNU0kgb3IgTVNJLVggYXJlIGluIHVzZS4gU3ltbWV0cmljYWxseSwg
d2hlbiB0aGUgZ3Vlc3QgZW5hYmxlcyBNU0kNCj4gb3IgTVNJLVgsIHlvdSB3aWxsIHdhbnQgdG8g
Zm9yY2UgdGhlIGJpdCBzZXQgKHdoaWNoIG1heSB3ZWxsIGJlIGluDQo+IGEgc2VwYXJhdGUsIGZ1
dHVyZSBwYXRjaCkuDQpzdGF0aWMgdWludDMyX3QgZW11bGF0ZV9jbWRfcmVnKGNvbnN0IHN0cnVj
dCBwY2lfZGV2ICpwZGV2LCB1aW50MzJfdCBjbWQpDQp7DQogwqDCoMKgIC8qIFRPRE86IEFkZCBw
cm9wZXIgZW11bGF0aW9uIGZvciBhbGwgYml0cyBvZiB0aGUgY29tbWFuZCByZWdpc3Rlci4gKi8N
Cg0KIMKgwqDCoCBpZiAoIChjbWQgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUpID09IDAgKQ0K
IMKgwqDCoCB7DQogwqDCoMKgwqDCoMKgwqAgLyogR3Vlc3Qgd2FudHMgdG8gZW5hYmxlIElOVHgu
IEl0IGNhbid0IGJlIGVuYWJsZWQgaWYgTVNJL01TSS1YIGVuYWJsZWQuICovDQojaWZkZWYgQ09O
RklHX0hBU19QQ0lfTVNJDQogwqDCoMKgwqDCoMKgwqAgaWYgKCBwZGV2LT52cGNpLT5tc2ktPmVu
YWJsZWQgKQ0KIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY21kIHw9IFBDSV9DT01NQU5EX0lOVFhf
RElTQUJMRTsNCiNlbmRpZg0KIMKgwqDCoCB9DQoNCiDCoMKgwqAgcmV0dXJuIGNtZDsNCn0NCg0K
SXMgdGhpcyB3aGF0IHlvdSBtZWFuPw0KPiBKYW4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 10:29:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 10:29:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220748.382129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDWR-0003S0-3B; Wed, 03 Nov 2021 10:29:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220748.382129; Wed, 03 Nov 2021 10:29:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDWR-0003Rt-0C; Wed, 03 Nov 2021 10:29:35 +0000
Received: by outflank-mailman (input) for mailman id 220748;
 Wed, 03 Nov 2021 10:29:34 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9PtR=PW=arm.com=Luca.Fancellu@srs-us1.protection.inumbo.net>)
 id 1miDWQ-0003Rn-5A
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 10:29:34 +0000
Received: from EUR02-HE1-obe.outbound.protection.outlook.com (unknown
 [40.107.1.48]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id ee781050-3c90-11ec-8564-12813bfff9fa;
 Wed, 03 Nov 2021 10:29:32 +0000 (UTC)
Received: from AM6PR04CA0034.eurprd04.prod.outlook.com (2603:10a6:20b:92::47)
 by HE1PR0801MB1708.eurprd08.prod.outlook.com (2603:10a6:3:83::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 10:29:27 +0000
Received: from AM5EUR03FT034.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:92:cafe::25) by AM6PR04CA0034.outlook.office365.com
 (2603:10a6:20b:92::47) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Wed, 3 Nov 2021 10:29:27 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT034.mail.protection.outlook.com (10.152.16.81) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Wed, 3 Nov 2021 10:29:27 +0000
Received: ("Tessian outbound c71e1a752bff:v108");
 Wed, 03 Nov 2021 10:29:27 +0000
Received: from f5dfe36d2f84.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 6D3AC01E-DBB1-467A-805C-B33E229DCC55.1; 
 Wed, 03 Nov 2021 10:29:21 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f5dfe36d2f84.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 03 Nov 2021 10:29:21 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PR2PR08MB4924.eurprd08.prod.outlook.com (2603:10a6:101:1d::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 10:29:19 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Wed, 3 Nov 2021
 10:29:19 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO4P123CA0035.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:151::22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Wed, 3 Nov 2021 10:29:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee781050-3c90-11ec-8564-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CKkxec2y5eVRlPUYhCGBy68zEctWD43MZ0dVrggf8HY=;
 b=XE7WGb3j7aJOQfpsp5jWNXhMcyJQKWa4t1E3maaJ3RpqalecVQBac+d/cWwvwNVKnKOyrwlAHr922Kz6cQimuAnjstaW+CnNffpzwx7MtCMPGfIQgbRqCZM2IDeHNjoo8y5XB9Nzrd3/tsn8Y40xpOG/4Te2wIkRJL0uoGX4188=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: a69d10eee32b885e
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GlwiXOedKrCZoAWJLIpsK1kAV4WAKZIRFJocVUuT75kbcXFG2D5iEmaUF295vHc1N9ZxssTJpZm3NDUay9TG24LH81bjGID1GayIQx1I4gREPMmNqyL0BQGtupNb7FNfFqv4k0kAaTJavRy0WTTYqphFcO2B3wwSDHIWCF/WHNwmFt9SmxI1T3IC7Zyou6xiz2b8ze0iJ7Kxw2PB6uCik2tbaoTE2tpC6pJads3/pqnL59fxiouYJS3YuuvR6JZ9BuZgbXmKhBnCG1kfmae8U1gL8pLgjsjqxdaos/bYBwlC2hI6ZHzWLcnJJL91ZRQ1sU0gzNgHhoRH5Nzsx34SQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CKkxec2y5eVRlPUYhCGBy68zEctWD43MZ0dVrggf8HY=;
 b=ogY2rlNPmG3z1T6zIoAXrCHjRdWc1IjHUm8mjGoU9qyjBlL+x/GdzFiJ2T52oGedLqE0vy8BDLcVzMmAK2OK0Tc+JYNODWY5j7iQdMgbN5ZOnAOvtBGPE79MbQb6L8dgrLfEhwEqYYfCe5PG5sGNFPDvkd92NQ5wIhy1JicA2oslCGkE4jYVnKOoetG+hY5nx7jHrqggxtSiXRhVJFmxKRn08R/XTPu0ubC34IQGmRLvfTkmL4fUTmWtQnAqXHO8WKAIXUjUYNaNks6tTXzw0dNdZO9BTSrsoGf9xioTIShmP5Hg8NpgaprVvWZPsNRxZA8O1/Y0Cc8sNcbWZSPzAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CKkxec2y5eVRlPUYhCGBy68zEctWD43MZ0dVrggf8HY=;
 b=XE7WGb3j7aJOQfpsp5jWNXhMcyJQKWa4t1E3maaJ3RpqalecVQBac+d/cWwvwNVKnKOyrwlAHr922Kz6cQimuAnjstaW+CnNffpzwx7MtCMPGfIQgbRqCZM2IDeHNjoo8y5XB9Nzrd3/tsn8Y40xpOG/4Te2wIkRJL0uoGX4188=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <alpine.DEB.2.21.2111021610180.18170@sstabellini-ThinkPad-T480s>
Date: Wed, 3 Nov 2021 10:29:12 +0000
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <67A7B343-8230-49C5-91CA-18C0E2ACDEF3@arm.com>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <alpine.DEB.2.21.2111021610180.18170@sstabellini-ThinkPad-T480s>
To: Stefano Stabellini <sstabellini@kernel.org>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO4P123CA0035.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:151::22) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 45f92035-d6f1-4f48-77af-08d99eb4d052
X-MS-TrafficTypeDiagnostic: PR2PR08MB4924:|HE1PR0801MB1708:
X-Microsoft-Antispam-PRVS:
	<HE1PR0801MB1708B46278D75DE8EA665CD5E48C9@HE1PR0801MB1708.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 j+VBFVNN5w9A3BT2lotC0KkXSZZTL8lgQBmgysSvMRlL3foifOF+r+bwwilTBel0jtHIDhcDq/3zSCYaVD6qt0WdjyKdHEEJPc6oiILpFi92IkwYbw9L8RTgJEOP/XoSIht23bngH6Evb3O5+2qSXHxqbU1/ch574BJhhbZNbTUjIYbUQO5CZL1T2QB+uGVafyw03K3v2JKnyLCAh+DkI9r98GheYblMkLvuQa3dZ9kRwybDFh9ngYy3RfgMLF29hMJB3in7sSJg748FkAt9Qy5E2fIrbotahugpBSRm4Ff+Ed5LXVp587jXSLIQBCYbsRqmgOLB1qUEAXY5BX+c5GqJ4M19Svsmzm9AOiKE4+aP1ZO1uqtIFqRwqP04Tc7I3I23XnHolvsNs3Snqs+QNnu+tZ7xFGnIPZ24albO2Eioj8XfC9peKWYeViJAT7hhfY5ZQ5RZMjR5D5t20lBM+T87TAyFHIjEpAuQGNV5X2yH/TLbAq/NKT4wCVnoeKRmKe9pL43VdswhpgpKJM+/goFvkjpaDVrtm4QJ/Tkm9JT9+fgJ28OVGC1wZigP5lElyfO5VFPYM3XDyxnMsN0OK5ztER35PpE/FdSw/BoNVuLxbHYg2mMrQy0a1JM14fd94rQTG5Q3VkbyvWhOaADArmanFlhtXTvf8mKKYr7A5tG4xteQxeGxbKCntoE9hwdGKwLdfR/V08vW0Y7PboyskJfLJ1t92fwWRbeja3ojrIEi3ayC1ObENjIkcPSitRrB
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(53546011)(4326008)(66556008)(52116002)(66946007)(8676002)(2906002)(66476007)(6916009)(186003)(86362001)(36756003)(6506007)(26005)(54906003)(316002)(5660300002)(38350700002)(38100700002)(6666004)(6486002)(508600001)(956004)(2616005)(83380400001)(8936002)(33656002)(44832011)(6512007)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4924
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT034.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f51bca3f-1c1f-4304-5d60-08d99eb4cb30
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	VfujAZ16RgmWQ44hdPv4Ziwu8RsRrjqYUbAxv6LcfV1Zdh+qTl/NNmp5+OsrxYXmIUD7nezLiDA4JN0SIazhdVWAo7pTc35egiy1EbXEO97GvBnv7yH7IEdrifFvlLwjFEO9otdoQ8QBYfPuTwhwKzyB97lg7RhlDFaxKJlvVTp/NVXc+3W9x13O5LhxBcgh1aQIQSBbG8q3iv8hqOGiwBc6j7QxeTmk6Jg9/pKzbai15MjToMQAs+FxRbUvu76Toc0KLJddOor0Kw5P0iE5kKivLaZ5/5T9buMq8cfQgiPv/8OrE21I93QUEzoVe1OMMbErPdKITzXBwddTwzzD7uFKW24lY+rD1Var4ugmZC6KIeRBEq5NR3nxH87VV1yHG0i/6wLKg2Xv5roBsDeirWgarSikXlk3ISCjWgvc89ybgBNhvrwkcpHTzQ0Of4Se203mM9JhbCtprpwkzdoG2lYVBqrn+tbpSfhjh94Egflwl/LuSydB2jHj2j9c31WuzMop7RzvNOPiu2Y4IIMqadVMiJakQHuVl5Wt31b8KNtSaAmMQddZEKpQrRQDd1zTLnTnCQi3nNT8LVAaqbNLLP2gfPNPCXAhX6Q/jlQfedECdLLbJ6WVLwxpzztTWHYdS6YQ+F2SfVdi7b4zr3p6DZstf3BYmPvuDMozlAI31EQaLlJtZaE5C9SzBdNwEr2z9sNGFmrEZuiSCFUgKho5Pg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(336012)(107886003)(6862004)(5660300002)(70206006)(4326008)(6506007)(54906003)(70586007)(53546011)(33656002)(6486002)(316002)(36860700001)(26005)(81166007)(6666004)(8936002)(186003)(356005)(8676002)(82310400003)(2906002)(36756003)(6512007)(44832011)(508600001)(956004)(2616005)(83380400001)(86362001)(47076005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 10:29:27.5263
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 45f92035-d6f1-4f48-77af-08d99eb4d052
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT034.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1708



> On 2 Nov 2021, at 23:17, Stefano Stabellini <sstabellini@kernel.org> wrot=
e:
>=20
> On Tue, 2 Nov 2021, Luca Fancellu wrote:
>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>> introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.
>>=20
>> The problem comes from the function get_parent_handle(...) that inside
>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>> is NULL, making Xen stop the UEFI boot.
>>=20
>> Before the commit above, the function was never called because the
>> logic was skipping the call when there were multiboot modules in the
>> DT because the filesystem was never used and the bootloader had
>> put in place all the right modules in memory and the addresses
>> in the DT.
>>=20
>> To fix the problem we allow the get_parent_handle(...) function to
>> return a NULL handle on error and we check the usage of the function
>> to handle the new use case. The function in fact should not prevent
>> the boot even if the filesystem can't be used, because the DT and
>> the modules could be put in place by the bootloader before running
>> Xen and if xen,uefi-binary property is not used, there is no need
>> for the filesystem.
>>=20
>> Another problem is found when the UEFI stub tries to check if Dom0
>> image or DomUs are present.
>> The logic doesn't work when the UEFI stub is not responsible to load
>> any modules, so the efi_check_dt_boot(...) return value is modified
>> to return the number of multiboot module found and not only the number
>> of module loaded by the stub.
>>=20
>> Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI b=
oot")
>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>> ---
>> Justification for integration in 4.16:
>> Upside: allow booting xen from grub on arm64 when the stub doesn't load
>>        any module.
>> Downside: It's affecting the EFI boot path.
>> Risk: It's not affecting x86 arch that works the same way as before.
>>      If something is wrong it creates a problem on early boot and not at
>>      runtime, so risk is low.
>>=20
>> Tested in this configurations:
>> - Bootloader loads modules and specify them as multiboot modules in DT:
>>   * combination of Dom0, DomUs, Dom0 and DomUs
>> - DT specifies multiboot modules in DT using xen,uefi-binary property:
>>   * combination of Dom0, DomUs, Dom0 and DomUs
>> - Bootloader loads a Dom0 module and appends it as multiboot module in D=
T,
>>   other multiboot modules are listed for DomUs using xen,uefi-binary
>> - No multiboot modules in DT and no kernel entry in cfg file:
>>   * proper error thrown
>>=20
>> ---
>> xen/arch/arm/efi/efi-boot.h | 28 ++++++++++++++++++----------
>> xen/common/efi/boot.c       | 15 ++++++++++++++-
>> 2 files changed, 32 insertions(+), 11 deletions(-)
>>=20
>> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
>> index 8b88dd26a5..e714b2b44c 100644
>> --- a/xen/arch/arm/efi/efi-boot.h
>> +++ b/xen/arch/arm/efi/efi-boot.h
>> @@ -51,9 +51,11 @@ static int handle_module_node(EFI_FILE_HANDLE dir_han=
dle,
>>                               int module_node_offset,
>>                               int reg_addr_cells,
>>                               int reg_size_cells,
>> -                              bool is_domu_module);
>> +                              bool is_domu_module,
>> +                              unsigned int *modules_found);
>> static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
>> -                                       int domain_node);
>> +                                       int domain_node,
>> +                                       unsigned int *modules_found);
>> static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
>>=20
>> #define DEVICE_TREE_GUID \
>> @@ -707,7 +709,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE=
 dir_handle,
>>                                      int module_node_offset,
>>                                      int reg_addr_cells,
>>                                      int reg_size_cells,
>> -                                     bool is_domu_module)
>> +                                     bool is_domu_module,
>> +                                     unsigned int *modules_found)
>> {
>>     const void *uefi_name_prop;
>>     char mod_string[24]; /* Placeholder for module@ + a 64-bit number + =
\0 */
>> @@ -725,6 +728,9 @@ static int __init handle_module_node(EFI_FILE_HANDLE=
 dir_handle,
>>         /* Module is not a multiboot,module */
>>         return 0;
>>=20
>> +    /* Count the multiboot module as found */
>> +    (*modules_found)++;
>> +
>>     /* Read xen,uefi-binary property to get the file name. */
>>     uefi_name_prop =3D fdt_getprop(fdt, module_node_offset, "xen,uefi-bi=
nary",
>>                                  &uefi_name_len);
>> @@ -804,7 +810,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE=
 dir_handle,
>>  * Returns 0 on success, negative number on error.
>>  */
>> static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle=
,
>> -                                              int domain_node)
>> +                                              int domain_node,
>> +                                              unsigned int *modules_fou=
nd)
>> {
>>     int module_node, addr_cells, size_cells, len;
>>     const struct fdt_property *prop;
>> @@ -834,7 +841,7 @@ static int __init handle_dom0less_domain_node(EFI_FI=
LE_HANDLE dir_handle,
>>           module_node =3D fdt_next_subnode(fdt, module_node) )
>>     {
>>         int ret =3D handle_module_node(dir_handle, module_node, addr_cel=
ls,
>> -                                     size_cells, true);
>> +                                     size_cells, true, modules_found);
>>         if ( ret < 0 )
>>             return ret;
>>     }
>> @@ -845,12 +852,12 @@ static int __init handle_dom0less_domain_node(EFI_=
FILE_HANDLE dir_handle,
>> /*
>>  * This function checks for xen domain nodes under the /chosen node for =
possible
>>  * dom0 and domU guests to be loaded.
>> - * Returns the number of modules loaded or a negative number for error.
>> + * Returns the number of multiboot modules found or a negative number f=
or error.
>>  */
>> static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>> {
>>     int chosen, node, addr_len, size_len;
>> -    unsigned int i =3D 0;
>> +    unsigned int i =3D 0, modules_found =3D 0;
>>=20
>>     /* Check for the chosen node in the current DTB */
>>     chosen =3D setup_chosen_node(fdt, &addr_len, &size_len);
>> @@ -868,11 +875,12 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDL=
E dir_handle)
>>         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
>>         {
>>             /* Found a node with compatible xen,domain; handle this node=
. */
>> -            if ( handle_dom0less_domain_node(dir_handle, node) < 0 )
>> +            if ( handle_dom0less_domain_node(dir_handle, node,
>> +                                             &modules_found) < 0 )
>>                 return ERROR_DT_MODULE_DOMU;
>>         }
>>         else if ( handle_module_node(dir_handle, node, addr_len, size_le=
n,
>> -                                     false) < 0 )
>> +                                     false, &modules_found) < 0 )
>>                  return ERROR_DT_MODULE_DOM0;
>=20
> I think there is no need to add modules_found to the parameters of
> handle_dom0less_domain_node and handle_module_node. You could just
> increment modules_found here for every iteration of the loop where
> there is no error.  You would have to change a couple of returns in
> handle_module_node, just to give you the idea:

Yes we could do that but when we handle a xen,domain node we will count
only one module and that defeats the aim to count every multiboot,module.

If we want to continue with your proposal let me know and I will implement =
it.

>=20
>=20
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index e714b2b44c..7739789c41 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -726,7 +726,7 @@ static int __init handle_module_node(EFI_FILE_HANDLE =
dir_handle,
>=20
>     if ( module_compat !=3D 0 )
>         /* Module is not a multiboot,module */
> -        return 0;
> +        return 1;
>=20
>     /* Count the multiboot module as found */
>     (*modules_found)++;
> @@ -737,7 +737,7 @@ static int __init handle_module_node(EFI_FILE_HANDLE =
dir_handle,
>=20
>     if ( !uefi_name_prop )
>         /* Property not found */
> -        return 0;
> +        return 1;
>=20
>     file_idx =3D get_module_file_index(uefi_name_prop, uefi_name_len);
>     if ( file_idx < 0 )
>=20
>=20
>>     }
>>=20
>> @@ -883,7 +891,7 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE =
dir_handle)
>>         efi_bs->FreePool(modules[i].name);
>>     }
>>=20
>> -    return modules_idx;
>> +    return modules_found;
>> }
>>=20
>> static void __init efi_arch_cpu(void)
>> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
>> index 392ff3ac9b..495e7a4096 100644
>> --- a/xen/common/efi/boot.c
>> +++ b/xen/common/efi/boot.c
>> @@ -449,6 +449,13 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI=
_LOADED_IMAGE *loaded_image,
>>     CHAR16 *pathend, *ptr;
>>     EFI_STATUS ret;
>>=20
>> +    /*
>> +     * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PRO=
TOCOL
>> +     * to have access to the filesystem.
>> +     */
>> +    if ( !loaded_image->DeviceHandle )
>> +        return NULL;
>> +
>>     do {
>>         EFI_FILE_IO_INTERFACE *fio;
>>=20
>> @@ -581,6 +588,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_han=
dle, CHAR16 *name,
>>     EFI_STATUS ret;
>>     const CHAR16 *what =3D NULL;
>>=20
>> +    if ( !dir_handle )
>> +        blexit(L"Error: No access to the filesystem");
>>     if ( !name )
>>         PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
>>     ret =3D dir_handle->Open(dir_handle, &FileHandle, name,
>> @@ -1333,6 +1342,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE=
 *SystemTable)
>>             EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>>                                                        &file_name);
>>=20
>> +            if ( !handle )
>> +                blexit(L"Error retrieving image name: no filesystem acc=
ess");
>=20
> I think it would be nice to have an other explicit check like this one
> at the beginning of if ( use_cfg_file ) to make sure dir_handle is not
> null in that case. If I am not mistaken, if we take the use_cfg_file
> path, dir_handle has to be valid, right?

Dir_handle could be invalid and we would be able to boot successfully when =
we take everywhere
the path using read_section, for that reason I didn=E2=80=99t stop the boot=
 earlier.
Given Jan suggestion that check could be also modified to be something like=
 =E2=80=9Cif there is no handle, *argv=3D=E2=80=9Cxen.efi=E2=80=9D "
so the boot can continue without problem if we don=E2=80=99t need to read a=
nything from the filesystem.

>=20
>=20
>>             handle->Close(handle);
>>             *argv =3D file_name;
>>         }
>> @@ -1369,7 +1381,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE=
 *SystemTable)
>>     /* Get the number of boot modules specified on the DT or an error (<=
0) */
>>     dt_modules_found =3D efi_check_dt_boot(dir_handle);
>>=20
>> -    dir_handle->Close(dir_handle);
>> +    if ( dir_handle )
>> +        dir_handle->Close(dir_handle);
>>=20
>>     if ( dt_modules_found < 0 )
>>         /* efi_check_dt_boot throws some error */
>> --=20
>> 2.17.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 10:35:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 10:35:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220754.382140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDbc-0004pk-N6; Wed, 03 Nov 2021 10:34:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220754.382140; Wed, 03 Nov 2021 10:34:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDbc-0004pd-K7; Wed, 03 Nov 2021 10:34:56 +0000
Received: by outflank-mailman (input) for mailman id 220754;
 Wed, 03 Nov 2021 10:34:55 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miDbb-0004pD-6p
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 10:34:55 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id ae2d4c6c-3c91-11ec-8568-12813bfff9fa;
 Wed, 03 Nov 2021 10:34:53 +0000 (UTC)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2055.outbound.protection.outlook.com [104.47.0.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-37-rHhNr8pdPkiALXZ4V9pr6Q-1; Wed, 03 Nov 2021 11:34:51 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5597.eurprd04.prod.outlook.com (2603:10a6:803:dd::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 10:34:48 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 10:34:48 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0140.eurprd04.prod.outlook.com (2603:10a6:20b:127::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Wed, 3 Nov 2021 10:34:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae2d4c6c-3c91-11ec-8568-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635935693;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=cevN+yG2c51sC3jvejAvDf861CAncGEf7ANdCxEgpik=;
	b=iV0GzyYVJ9x2+oWQLXCC3V2h/W9YeWFwgtcN8w0D9CQ8xO5/nQtO3UpNqRwch9uxW+pMIk
	4cCYKRSb+2SR614hK4CNP8+h89Od0fDLw5ciiqAeY46IpArKYDYCzfhte3VSZXTwJcBnmX
	55kMPUqANUuFgf43wV3rHVGCYwkszvs=
X-MC-Unique: rHhNr8pdPkiALXZ4V9pr6Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eNSUzLwMVRmgQgfSmZ+D63Qo2Ml/Xne+RCGqNksA1AZlcNeo1zi6aVP7E8aOR1vu0lTQHlIcFC5plY5jFRemTL33WMo1xVcJmqK8iSctOPYD7Go05IhxHdvmqufxtnQp73nvLybJdzchVpEZbr5leHtLDoIGhIxf9PptxLnxD+DvrNK2Y6IgPil+OUImSTqjmIH6OqU+IsX4NYYAFVKRITYpNE2MlXBv0ujMnpddqUhJlN6xlmAdVydYz8EcTy0Qxj0Roo9OTTtgXMszJv+dlck3wj29CPhHE2ausUeu9YvbfPg0LTvJljjr+BZvNA20xodMNf4sBMZz6zUyHEcL1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bbvy3+lKfyxPz1EZNGPRWx3Zx5KsZ8B+QhFeyEV/chc=;
 b=NBglv4+WDDm/oiouqCd/Pqnm3UZGeuwWyY5bMKibmqHjC3Dlo45qC7Bklj/3j3mWTWwe3FyQmiD/j1NgM4aCKt8SilaE6BzvncW8hMrDF3dTXQbZzSSjLbIpWj7yZqifaaq5V5YILD/6v1kpl/JeguXigoq6WrdJOzV8BVRVTZePIpa5b1Hg90Ow6H4Sp01a6W56tx9mCDWn34H757lBbkOdsGIaEEUep7KEOHygHpSQWIo0ury0Cg77olM2n1no9dXfcnw0yq1QtaHTqvn2ebhORoqJP8O1T6nMbDmEQbLnuwwioNq5l/Ni5GZN8Ol/ROqnipRPqXysRRjjZT0Guw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7efa4dd7-83b3-daac-cc02-86f80762513b@suse.com>
Date: Wed, 3 Nov 2021 11:34:45 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>, Michal Orzel <michal.orzel@arm.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
 <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
 <4f77a4f2-a66b-465d-5859-7fe71ece8168@suse.com>
 <48506e1b-2dc9-4652-f169-3d44135a4e74@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <48506e1b-2dc9-4652-f169-3d44135a4e74@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8PR04CA0140.eurprd04.prod.outlook.com
 (2603:10a6:20b:127::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 30a8f9b3-66c5-41bb-686e-08d99eb58f42
X-MS-TrafficTypeDiagnostic: VI1PR04MB5597:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB559788B6F39A00AAB955C2DBB38C9@VI1PR04MB5597.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	01wDwostcoXdQoOFw+WBYm8BEk3XnSLn6FSjrF7rKjxRj8v4O0/iXdF5jLf7jGeyqyVwOn0GmK9Wkr+vcH1s1rPKu46Kjpya3U/qO0uNMj++j/0sSBaEo+FSWkrzfAKaSYyys4sQu0NTuPHZi63DyFE3FE7yJkn1P38AdHlhp7MXgWGA9haYW0GStI6X4Q7iIz351i9meBLfexs40SYMl8SQnZndBJaboSrTBt4p+1KjQRyofI5BDkPlK5IEJbZ/Nj5dCdZRk7SgLCcMIGPsrGyZAUD3eLDo8FzeK+qV+ynWI/trOof4wVOhpzdi92zGoE4IQgUYFW9RFv9VMy/aauXDdk5p83hwuP+9zEbvZw30od/Nm/zPwM7xFhERdRL4Om/mmj5Z4KTqc1KgH62QD+CwFZjagULcnD8F4bs3mCD26IMTGxYVCOQPi6MZR2JULgp+X9TJpe/88Zx9Ucz0w+ctyPVGJ2cU0EU20RiM1pI6UF1mud8QZGtWNWkl7b9HaPOWjgYPDs/jbjlfAzk6bVH3BLE5pnsEnd7Rin7Tgx2gxMrq4OnAt3MjgX9seSFnHcXHUtTROwrB7WclQj8SF9JvYS8DWG4YWggkdBqTAKBYmreLk2WNDxIyWFYmmfEaTLs3NDP82utXRtGzXUv4TovJkdlFMjccKMaqWzEI0VPu2O8eVw7d8P3hjgXHK4sRATilSuKY0Gzk4n7dHX76W8xV8PG18wCtTOhvp/PSiNIGYUw3+eQDRFGwhNsA5G5G
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(186003)(38100700002)(2906002)(4744005)(26005)(31696002)(36756003)(66946007)(31686004)(7416002)(66556008)(66476007)(4326008)(8676002)(2616005)(54906003)(316002)(16576012)(6916009)(8936002)(5660300002)(956004)(6486002)(508600001)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?URMXFJKWhh3FlYEBcFMgN6IplqItUuO6yicuEUL3tUGZlsfsBCKtEvHzz0zV?=
 =?us-ascii?Q?nFPjtmO5gIZnveVJCldJevGu8sd/d3gJ2T2Q54pJH6ZoHc4dxwrzZHxMoHgG?=
 =?us-ascii?Q?aE3kajPsw25d3RLWY85i4AyIHlot1OEblmdukf/p8/7KlRjL8PaKXhyMUPyf?=
 =?us-ascii?Q?HDebbu8VkCnx8dPMoFfmvu+C9D9cgfcRuw6xXBpAHnQABg4nPTVJq6Dn3aHI?=
 =?us-ascii?Q?b1UWnjm4Fr4xIoRzb7YUb/L7EZHmfQEyi8Je+L3c8fLDDKMovuySBB0qavAa?=
 =?us-ascii?Q?7xGtYd8/TkXrlegh7IyVvlLSho9R8YVa7zt7SnyxDFHJYywgTeQkD9xUJSx9?=
 =?us-ascii?Q?86fGVSY1AZojFSK2YzNZ60HYiox5bCO5WIaCqdy915SZS53QY/2D3tv/4lRB?=
 =?us-ascii?Q?jc7DOjwzew+pgTOASo0LIWwm+DVJDOlOCLAbhpPa34fclaIzmc3sQnFjAUHd?=
 =?us-ascii?Q?Mnr9tBTHxEuKnza7icGbLdOIHM5fMb7k3VyO540y87kbkmwTdlqPlmyGjJAo?=
 =?us-ascii?Q?1YsbIg+HXZ5KWvwPfmJdU0FwD7k77Q3ByUzMwDhb38YxyxwD/DdEymhENQ12?=
 =?us-ascii?Q?+ZBhfzRPdkF8OMBrSDXuOmrk9Y9OJVhYZvuhE7MULiRY28dXiPQTElbDVRVC?=
 =?us-ascii?Q?o8vx39bayQgLX6CEThOoYk9aRRZqR3DEPTw/pC6lmO7QXrx+IylzOM1kcf+d?=
 =?us-ascii?Q?Bz7O4rRwds5NgEo04zoKasMwO0t4zv50vORmPJYzot35BP1euX5XtDZiQk1N?=
 =?us-ascii?Q?SybdmBCttGYts3tZKu7Plwq7H0R3buYrvpVSDEDmPvOF8a5G//6Prz40/Ymp?=
 =?us-ascii?Q?r3AZWCWAi3iJI16+BNel83Qv78BJJ6AXACB3TDUUSvOQZFcYeG/izG3wlrZz?=
 =?us-ascii?Q?InVqrapJeMuNWZkzAtUyl6JHwJOYN4OOsQgWW+vr058gVUrIKNvStr2zvGtW?=
 =?us-ascii?Q?YaZ08HLORjww13oEb3xShMi+64WrBC3Aa6nYbTgpSvtpdz6BEOj297V1rpRg?=
 =?us-ascii?Q?zpzxTEOSElQFW1t4wq5rNFoMaGouNF7cNKGsZA17klGZ2RHNzV88uMFC/5DS?=
 =?us-ascii?Q?/Uwz+wwKVvtHc+kx2JQbqcK0xf6KPVVQ5GWVDGrgiN0UzjzjUKwbDfa4f//3?=
 =?us-ascii?Q?uV13Q8OaMvG34ra4U/qYn1DpmjwDGsR/HVl7liXO3rBqdnewWXoyEtidVdV9?=
 =?us-ascii?Q?7k2c+1i85XUrOJtwLTv9DyqwOya0SQrJo+KH07UbSWGcyf9rx6cbPKUajXe/?=
 =?us-ascii?Q?KsBrimUtqCYa/qzlVr8cpi+4kmJncoKtlH5FkNZ9B85VaYhgneR+BMRxqrik?=
 =?us-ascii?Q?9M89n45Xz4RCNtdPEgRFe15+1/eiPfQPg+sUY4O0VWrhJigKVozrCpHvZZkK?=
 =?us-ascii?Q?oBEeFstwHzjuah9zNqVjieI1W/OsKLZRyB6m6ev7isf3lnt7Jo+ShA4bLAol?=
 =?us-ascii?Q?YmP222CkehCrqVGCS5MVcisunzPy4xEBKcSzDa/QjVUbHfknwYg8/pAvbdev?=
 =?us-ascii?Q?Qa7GvH+oZnCIr2sV3rctVtwH3wp4rQgGbtKC0xexATTHML97ITrnhnCWw1jc?=
 =?us-ascii?Q?73vBPDqNhMmycoHQIg2+FSvTxfmvsDbFNVVTvBfUkG3aM5EzAR/jZgqLGUXX?=
 =?us-ascii?Q?3b7B3YDqkLHkO8Ni/q0Co4I=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 30a8f9b3-66c5-41bb-686e-08d99eb58f42
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 10:34:48.0368
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OMsbthOz0rJNtDBWm9Im82u9x5Ky+1OjkeUDWEi/kcP6S7pbfv8zYfuTNHu59AKIvBDqsS2CGaMTug8HTlmyLA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5597

On 03.11.2021 11:24, Oleksandr Andrushchenko wrote:
> On 03.11.21 11:49, Jan Beulich wrote:
>> Aiui you want to prevent the guest from clearing the bit if either
>> MSI or MSI-X are in use. Symmetrically, when the guest enables MSI
>> or MSI-X, you will want to force the bit set (which may well be in
>> a separate, future patch).
> static uint32_t emulate_cmd_reg(const struct pci_dev *pdev, uint32_t cmd)
> {
>  =C2=A0=C2=A0=C2=A0 /* TODO: Add proper emulation for all bits of the com=
mand register. */
>=20
>  =C2=A0=C2=A0=C2=A0 if ( (cmd & PCI_COMMAND_INTX_DISABLE) =3D=3D 0 )
>  =C2=A0=C2=A0=C2=A0 {
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Guest wants to enable INTx=
. It can't be enabled if MSI/MSI-X enabled. */
> #ifdef CONFIG_HAS_PCI_MSI
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( pdev->vpci->msi->enabled=
 )
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cmd |=
=3D PCI_COMMAND_INTX_DISABLE;
> #endif
>  =C2=A0=C2=A0=C2=A0 }
>=20
>  =C2=A0=C2=A0=C2=A0 return cmd;
> }
>=20
> Is this what you mean?

Something along these lines, yes. I'd omit the outer if() for clarity /
brevity.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 10:36:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 10:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220763.382151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDdN-0005Vk-8A; Wed, 03 Nov 2021 10:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220763.382151; Wed, 03 Nov 2021 10:36:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDdN-0005Vd-4O; Wed, 03 Nov 2021 10:36:45 +0000
Received: by outflank-mailman (input) for mailman id 220763;
 Wed, 03 Nov 2021 10:36:44 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miDdM-0005VU-LL
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 10:36:44 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id e8dbf3a0-c8fd-456c-bee2-921af25be85b;
 Wed, 03 Nov 2021 10:36:43 +0000 (UTC)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A3ANgl6002453;
 Wed, 3 Nov 2021 10:36:39 GMT
Received: from eur02-he1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2050.outbound.protection.outlook.com [104.47.5.50])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c3rmjr1y4-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 10:36:38 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3469.eurprd03.prod.outlook.com (2603:10a6:803:18::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 10:36:36 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 10:36:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8dbf3a0-c8fd-456c-bee2-921af25be85b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EBr2RIfGmKFYC0B/4bkZjVNtRnb9EVkiLJ202Y2q907Y0eYaHgV4A7uLlbrZaVLJmVB+aWGR+OGWOtY/E2AP+1P8gCY+T2MW8rZ0VXTgS/ty/RIKic8UVNS1RLRCBECHCKIAaitAjnWVTgLCibCKZ58urVRwGT8rRjWeLZnaR+6CelP48bTWyemSSNeS6KzRNdZk488Mg+cqLxLjki6vHA5wvX1t14Z/lE3RU5Xyz3fIaH1wWU9nQEdMjtCGAbTou8ON3+bJJh8U9q5Dk2RvxypJoxGcz0uHMI8YctpY6fQ8PxazrV+Emnr5/Hjg30luhoQm1iS88hVyRMBsCkBufw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4Ywo3xrZjaLVGm9inqDxzUFieacVKcDDvsabIOFW8nM=;
 b=nVg8r1mQwYcxeb+0qZGUxln6Ow2CbkRG9U0z5VVdTtBWt5K3pVzGQHiOzwbZFbiv9Uu1Ozc6ZxAdpQtKUMAKYA9aAhQlblQZnvQZu4DeNiorMZi+9Mc2clpiz8aD0q7pYmZv/EBjaTlojgiU1afvCsc2D6aWPKcjjwUvB4bX47JKXZZdn/k/YO8tRNVd3ycYGtlGPihGkPC+uVNdyvoX6U9rfXLGic7mUiV/bxEqNYUFtzBqDS0Hcswo1BNqsRMtfuyxqlGCe42e3Al+XiKoo2vt4m9UwRCarDA08jct3fXXa11NnOjzs1wXf+IDW0OHM/pWgQPdeeEoaqEa1y7B5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4Ywo3xrZjaLVGm9inqDxzUFieacVKcDDvsabIOFW8nM=;
 b=OBqPAOFg5ugggtaMbIvZdg2rRVKSwcbf7pS7O1OnVVfO3DySvo/dIalxdNo/H411QckpRNQPVRcTUbPlBA1gU7zJSrgyXJiAh/SxyLFa7PMrQ4Ffn6Q8Dj9e5vUHBcekUgpZHUe0MuaC7ghwUxX2+UWtNbRcNe1RgiAxBf+fCGnKP96nPMYDHibfQtZo4C0TYTzAXwLwMOlm+18DGozgZ1R5IZLduhCJlYYN5Nnf0TK4/e6BJ+SMEjx8HZryr2Se1qIcs4rQyT/dE4XauQRkhhTy06PaI9uaNM6iPf9dFdeHEQ8sqKRbDiT1wrZcPiqJENuScti3Vp20muocGL8KjQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Michal Orzel <michal.orzel@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: 
 AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUICAATmxAIAABTcAgAABvgCAAAHkAIAAAZSAgAAFc4CAAAmcgIAAAuiAgAAAg4A=
Date: Wed, 3 Nov 2021 10:36:36 +0000
Message-ID: <d3908703-3501-892c-55fc-5a171318eeea@epam.com>
References: <20210930075223.860329-1-andr2000@gmail.com>
 <20210930075223.860329-9-andr2000@gmail.com>
 <YXfeB1LWy6Hm81LA@MacBook-Air-de-Roger.local>
 <f1b49f6d-1c2a-97ff-59b3-f0b606857ed3@suse.com>
 <YYEl8h+WtSZwNPn7@Air-de-Roger>
 <1a19dd35-a649-b155-bdd6-099e08fa3de1@suse.com>
 <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
 <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
 <4f77a4f2-a66b-465d-5859-7fe71ece8168@suse.com>
 <48506e1b-2dc9-4652-f169-3d44135a4e74@epam.com>
 <7efa4dd7-83b3-daac-cc02-86f80762513b@suse.com>
In-Reply-To: <7efa4dd7-83b3-daac-cc02-86f80762513b@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f0babb9b-971c-4cb3-c0a8-08d99eb5d002
x-ms-traffictypediagnostic: VI1PR0302MB3469:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB3469FBCEF87CE9A7BE7F96FAE78C9@VI1PR0302MB3469.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 I7mnT8+IzhdquC6bh4guBvCX+tzq8IyT7znkGobroqGc8mRr3fQZ941jgDZxVJHQOQVgY7jisBpnlFouzzq/t4zFMu65xUK414MMth6zMaSqz7CW1vLAtDYRU6EzgqjSK45trCyH0miQLAHkzkxUC5qpPZ4b1gIGNovPP+8FHJZHt1DodlrXSUIscPA5VNrJ1O0VqxNoMLWFoAb4BUmTogDhmJpcKyG2TZZNL6Kw4kXouVA4qaCd68/4IKSMhc+8YtSj5Gma83qCVBZFodgZOXlCwDKBcO4zrmsO38BNx43ea5uhsW0LjkGUXbZYZ+ziYWxAN2uafvkZNNhlMqIrIBeLVKwfQiVnfl1pl8Gd10dqVaiTyW4FM1MS/03RluI826RXgPRg0jH4r/KQ9Mim5lX0assAzGFDLMEI1sSIBA+rPuPWUepupf3QK0ZwWSu7MDIyaTNlwR3//SX76676H46xcyJ19mNnANkZIzZ1B9xzwfYNVZjeXfarK5L0xff8LN0y8rQTJFL8H6ffQdjhLfng4SXwwYJCEDg+gufnfoDdoyboB0ES/6fRyNUKqsVCXv8sZsC0d1AOPZKWo+iXOF2tKzb1N0NJDoH/ca/pYRRUEpl0GyVrCuP00eXLD/gdiHGxZx0vbxlnuwEyq2PwDJ8vTrk2Wm3L37C3Q/QJ48zrXGcUvzC32wcWOTapdOsYTEiXNzExYKxnQIgP5qs2zXR3gIG+Gj95Wwpc1Hl6O3g0cROjMVhttVUJc8V0Rmm1
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2906002)(6486002)(8936002)(186003)(36756003)(53546011)(508600001)(26005)(5660300002)(6512007)(86362001)(66946007)(110136005)(38070700005)(66446008)(31696002)(31686004)(107886003)(54906003)(38100700002)(2616005)(64756008)(66556008)(66476007)(76116006)(91956017)(4744005)(8676002)(316002)(71200400001)(6506007)(4326008)(122000001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?S2ltcmZBYmdHQVR4NzBJYkxKcmlkY1NJVFFZK3NuclBqSWNReG9kQmFNOWZL?=
 =?utf-8?B?QitDZGU3Uk1wQWhxenNQNmVKbmRSblh0ZThTRWh4bm9KcXE3TlhJQVNsMExM?=
 =?utf-8?B?bExiZVY5bXZKdW1YVFNuTlBpKzRtcWYxNjdkUTlxYUpRT0NUa0RMeHNQSSs0?=
 =?utf-8?B?T2kxZXU0U0ZxWlQ0TE94TWY3dWdkZXpxQkZVL3pGZ1JneE9xaktFR3JvWnFs?=
 =?utf-8?B?Qk14U2hUNnVUSnFkRW50NVFPaDIwQzJSakdTVjBQa0dZK2lyRnUvOTBvalNQ?=
 =?utf-8?B?bkhZNHZ5Uk9vMDB5YjUvaFlkUzdxYU1LZVc0SktxNi9FYkUyTjVMaXF3UVNO?=
 =?utf-8?B?TVdJZ3gxMUM1TW82ODlzU2hzMjBLZDgrazJWSjJyeko4N2piM0JSWExrRk1O?=
 =?utf-8?B?ZklrYWthY2xXWUxDcEN2dmJZWVBva3FaU3Z0UlI2bUt3QlBtUkdVVVN4WmQ5?=
 =?utf-8?B?NGY4WEkzRHRpa1ZtMy92b2JtZkU3Z0MyL0Q1b0p5THF4OUNMSDlpMkhlYUpW?=
 =?utf-8?B?eCtBU1J5bUdKeU1zc1FQRlp4UlhEOUh1SndsT2VkVkR3bk5DNEhKbWo5eEZh?=
 =?utf-8?B?UC9QRC9lUFcyRmFjRU9BUGM4RkJrZ05VUEUyNVYzNEdPTHA1K3Q2c01XZ2VU?=
 =?utf-8?B?WHVNQUhqeVg0THJQdytGeE9zVmcwRS9HbjZwSllsMEpLU2swQ2tEeFJkcktF?=
 =?utf-8?B?TzV4aXhFS0IraUlaYm11eXozSFppK2Z5MGtiaHY3RHdHSFRKUjVWZ21rN2k4?=
 =?utf-8?B?SDArVFR5ZVhVb08vVGhQYlpNTHpVUi9kV1dVdDFTb2FMSGNpK25nMjdhS3p3?=
 =?utf-8?B?aUVLYWxwOWlwczhxeTd0bGE1V3BTRi9ZNUIrSkJtaE9hQXZhYzNiRU1qVGNn?=
 =?utf-8?B?ZWViSm4rNjRXRDkyUjcxRksrczZ6QWgyQVJtSENyUnU3QUQxZExxd045ZHNo?=
 =?utf-8?B?bWhETS9Dc1hEOFR2eFM3T3RSNTBTOGJ3UDkxaUNBU01JWXdOQVFTWXlxWjRi?=
 =?utf-8?B?ODU0b0VoWnVzb3hrTHpKcStJbUxlMUEwOC96dWlRVjN2NzVYRnBJN3JkdXRu?=
 =?utf-8?B?WUFRek1JNUwzcWl5QkovZ0pLTm1ENnNDNGhHMmllYmNwY0t6dHNmbUVyeklG?=
 =?utf-8?B?R3BFSHZKWisxaDdKekdNSXpQQ1RsUjFQL1hBREp2QlljVDJPeGdGMHdSMm9i?=
 =?utf-8?B?dC9DeDFOdmJ4NWtHY3RSeVhnNFlWVVBHY2NTTGRIeEtDSVZ5T05OSkhQbnFW?=
 =?utf-8?B?NmFkWHF4OVpubzRsYXNZM3F3R1F6UUt4b043Z0JMM2pvWHRHQi9uMCtpc1R5?=
 =?utf-8?B?U0RBQUJabTBjT21kRFlLR0g1UHdDQnBlcER5Q2llZXprVDdaUlhEdzdGSnVE?=
 =?utf-8?B?b1hDb3BSUDZIdFlTRmVLMnZydS9xNWNxR2VVU2hFQlVRZUk2Mkh3Z0hrM21a?=
 =?utf-8?B?Nk9FalN2QlNkb0hiSFVKU2dDS1ZONHZMTVdhbFZKWmw0R3RVUWJJUUlIOXNU?=
 =?utf-8?B?ZGJoZi9XYjBjd1I1cmoxZVp4STZ6dk0yUTRpazl3NHZaSlJKVC93UU1mWEpT?=
 =?utf-8?B?MUxLeWtYQnY1cUkwMjBaSUcxT3JQQVk4L1R4MWxCOHNwenpmWjNmYjdRWWdY?=
 =?utf-8?B?dVR5YlJONjJKMEhsTEpJaXFLbytacFpwSFhpTXJlajduaEhiZU5zQkpLMERK?=
 =?utf-8?B?OG14UnJyMEFPK3BVdjEzU0dMUDVDS3hKRzI3bGRzNmRVQXJZem5uVTN5WHBN?=
 =?utf-8?B?am5MMnJ4ZlBFQlVaVzlidm5JSUNTUUpla0tOaTlDcmMzZEt0bHR4UG5ibFVo?=
 =?utf-8?B?VEFHRUthM0ZnNENiT25KaDY5b1FPaVJ2clNCVHVQY0Jicm5EOTV4VTdzUUc0?=
 =?utf-8?B?emhiQk9zT2JFaXVvVmRKR0hYbFNLa3NkYnE3dUUxdW1wbmh5b3lINmxDNGZh?=
 =?utf-8?B?UU5SMmRXcDlDeEVLSHFJNWMxSzM2WFpqeGZnMXF6aldtTUc3d2JTdTMrejZp?=
 =?utf-8?B?TXNPQmh5cVJodG43SkpFT25hdU8yd1FlSVpDb3IxVXRrRXN6Y2lIRmRMTGI3?=
 =?utf-8?B?RU1NS0cxQkU5WmRPaHptUisyRm1RSHNjVjAyTkU1UEp3am45UkFsTjdkZkNp?=
 =?utf-8?B?ZjdseWxzcGhuZXh6SWxMYmdHQVZwdXZOMU9NUGNqZVp3R21QR3ErbElmREpu?=
 =?utf-8?B?T01ySWlpcC9KVlFyQkVsY0NPQm1rSjE3N1dUeTVoV0srUnMwUTY1aUpzNlVy?=
 =?utf-8?B?UXlZeGJ6aHloaWtTT0JDcWxMdUpVRnF5ckFpT1NCcHp3RjBtR3I2TjloSFcv?=
 =?utf-8?B?TFlySXh5eWFZVjRLL1V6WmRXQzdWR20yMHZEbGgwS0tDaU5TNlpDZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D339AFA573F97D4D848F240248E222F1@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f0babb9b-971c-4cb3-c0a8-08d99eb5d002
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 10:36:36.3824
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: E3QEMuAeL0vnjbtZxrlruzl8jkAymYQ0IvW/MVju5GJ/NBHUeNPCETfZDl2MuN5M6vnjCABsjFWRryPL1o9gJa5CoNJRyWCfMIXJidzbsWoLmn/FVkWUsCKVeBOcjDwy
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3469
X-Proofpoint-GUID: 1XXZ_pXb8QEJ0yWvA13Ka2nk5J0VtC7Y
X-Proofpoint-ORIG-GUID: 1XXZ_pXb8QEJ0yWvA13Ka2nk5J0VtC7Y
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_03,2021-11-03_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0
 priorityscore=1501 phishscore=0 adultscore=0 mlxscore=0 lowpriorityscore=0
 impostorscore=0 suspectscore=0 spamscore=0 clxscore=1015 bulkscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111030059

DQoNCk9uIDAzLjExLjIxIDEyOjM0LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDMuMTEuMjAy
MSAxMToyNCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAwMy4xMS4yMSAx
MTo0OSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gQWl1aSB5b3Ugd2FudCB0byBwcmV2ZW50IHRo
ZSBndWVzdCBmcm9tIGNsZWFyaW5nIHRoZSBiaXQgaWYgZWl0aGVyDQo+Pj4gTVNJIG9yIE1TSS1Y
IGFyZSBpbiB1c2UuIFN5bW1ldHJpY2FsbHksIHdoZW4gdGhlIGd1ZXN0IGVuYWJsZXMgTVNJDQo+
Pj4gb3IgTVNJLVgsIHlvdSB3aWxsIHdhbnQgdG8gZm9yY2UgdGhlIGJpdCBzZXQgKHdoaWNoIG1h
eSB3ZWxsIGJlIGluDQo+Pj4gYSBzZXBhcmF0ZSwgZnV0dXJlIHBhdGNoKS4NCj4+IHN0YXRpYyB1
aW50MzJfdCBlbXVsYXRlX2NtZF9yZWcoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQz
Ml90IGNtZCkNCj4+IHsNCj4+ICAgwqDCoMKgIC8qIFRPRE86IEFkZCBwcm9wZXIgZW11bGF0aW9u
IGZvciBhbGwgYml0cyBvZiB0aGUgY29tbWFuZCByZWdpc3Rlci4gKi8NCj4+DQo+PiAgIMKgwqDC
oCBpZiAoIChjbWQgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUpID09IDAgKQ0KPj4gICDCoMKg
wqAgew0KPj4gICDCoMKgwqDCoMKgwqDCoCAvKiBHdWVzdCB3YW50cyB0byBlbmFibGUgSU5UeC4g
SXQgY2FuJ3QgYmUgZW5hYmxlZCBpZiBNU0kvTVNJLVggZW5hYmxlZC4gKi8NCj4+ICNpZmRlZiBD
T05GSUdfSEFTX1BDSV9NU0kNCj4+ICAgwqDCoMKgwqDCoMKgwqAgaWYgKCBwZGV2LT52cGNpLT5t
c2ktPmVuYWJsZWQgKQ0KPj4gICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNtZCB8PSBQQ0lfQ09N
TUFORF9JTlRYX0RJU0FCTEU7DQo+PiAjZW5kaWYNCj4+ICAgwqDCoMKgIH0NCj4+DQo+PiAgIMKg
wqDCoCByZXR1cm4gY21kOw0KPj4gfQ0KPj4NCj4+IElzIHRoaXMgd2hhdCB5b3UgbWVhbj8NCj4g
U29tZXRoaW5nIGFsb25nIHRoZXNlIGxpbmVzLCB5ZXMuIEknZCBvbWl0IHRoZSBvdXRlciBpZigp
IGZvciBjbGFyaXR5IC8NCj4gYnJldml0eS4NClN1cmUsIHRoYW5rIHlvdSENCkBSb2dlciBhcmUg
eW91IG9rIHdpdGggdGhpcyBhcHByb2FjaD8NCj4NCj4gSmFuDQo+DQo+DQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 10:44:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 10:44:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220772.382162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDkL-0006wB-Va; Wed, 03 Nov 2021 10:43:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220772.382162; Wed, 03 Nov 2021 10:43:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miDkL-0006w4-ST; Wed, 03 Nov 2021 10:43:57 +0000
Received: by outflank-mailman (input) for mailman id 220772;
 Wed, 03 Nov 2021 10:43:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miDkK-0006vr-Cg; Wed, 03 Nov 2021 10:43:56 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miDkK-0006XV-0S; Wed, 03 Nov 2021 10:43:56 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miDkJ-0005X1-Io; Wed, 03 Nov 2021 10:43:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miDkJ-0001Vb-IO; Wed, 03 Nov 2021 10:43:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Is2uQsTM/7blzBm2yartWsGIZcS2/RowoPzz5k4JX0Q=; b=qC+ZjT5ow7mnaUT+4P3DW2/ARJ
	7OmgJeoC+O8C9S9ZRw/FVJeLAIh3ZFJMQGp6P75HcXgc53wjZh/1lxqW4eX4TN5dR4tcV+yra0CQM
	v8tuTbNOg2orafWqL8eVREeZMPobsAk6O9ONH5MYR0tDqr1kjfmMNr4yNDpFgYayIGVU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166022-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166022: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-multivcpu:host-ping-check-xen:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9f8434d77859462ad98a51ec49ad8e23769d9b10
X-Osstest-Versions-That:
    xen=9f8434d77859462ad98a51ec49ad8e23769d9b10
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 10:43:55 +0000

flight 166022 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166022/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-multivcpu 10 host-ping-check-xen       fail pass in 165979
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat  fail pass in 165979

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check fail in 165979 never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check fail in 165979 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165979
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165979
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165979
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165979
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165979
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165979
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165979
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165979
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165979
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165979
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165979
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165979
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10
baseline version:
 xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10

Last test of basis   166022  2021-11-03 01:52:57 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 11:01:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 11:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220783.382176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miE15-0000s6-Aj; Wed, 03 Nov 2021 11:01:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220783.382176; Wed, 03 Nov 2021 11:01:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miE15-0000rz-7d; Wed, 03 Nov 2021 11:01:15 +0000
Received: by outflank-mailman (input) for mailman id 220783;
 Wed, 03 Nov 2021 11:01:14 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4+yV=PW=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1miE14-0000rt-26
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 11:01:14 +0000
Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b88bf196-a658-4b09-ac43-b4bba8c323f6;
 Wed, 03 Nov 2021 11:01:11 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b88bf196-a658-4b09-ac43-b4bba8c323f6
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635937271;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=mCTCFVggNgxdSMODB8CzOlnJ0cnC8L3Xj4UrcfAv7As=;
  b=KdhY8gLpTbfZtahvW9+dIkyjSjavRUWH2EhLzmUVUUr2qXYMcfU7FqWE
   FGUK1eApznXASPS3Is4JUAUjB8nw1MRSj7Jp8IKugpE/EKr3EvFT//dA6
   VoganZpb94CcGvOjaTScT9of9xmQ1EG4mumr5XOwv11FpZM74Kjh14PwV
   g=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: szyDQem35qOHb/T/xogJx2jqi2Ou31RGujm2iGbkKpY994IrX5h/rHBTRJkI+TZSMqi0lHo2A8
 KDcdMzSJdoAyIDadvaXVZTFVqcEik0nkDv+izDAX35HTJ9u9M4R8AOGPVM9lPfGCVlS1lktzwv
 kFZQwXS89h2dTfCu1RLfyXJ3vDLQAHE3A53V9gNXnANRaiqC4s/F/HUTTtcWNd1mb47dQ845Y9
 p8ma7fHMrGIzHVwzp5GzU2lDo+Lsm4+ZoM4qwyniFIdZg51R+Q17WKBUanS4mWfLzq6L5lhSlp
 zSp5F6kzsKt3or+VcatDbLQZ
X-SBRS: 5.1
X-MesageID: 57355765
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:4+rToqlHjSIByVGvZIfeawXo5gy+IERdPkR7XQ2eYbSJt1+Wr1Gzt
 xIXC2mPM/yMZzOhedpza47l9kJX7cKAnNU3Ggs//i8yQyMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Yz2YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 PZRhZGNcQwUBbHRl/UAYUB/UDs9epQTrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBNPsM44F/Glp0BnSDOo8QICFSKLPjTNd9Gpv3Z0TQqiDD
 yYfQRQ3Zx/tQzpmAE9JEYsbxujvpCLZQiIN/Tp5ooJoujOOnWSdyoPFGcDJd9m9YNRal0eVu
 ErL5238RBodMbS39z2B9X69g/7VqgnyUokSCb6Q++ZjhRuYwWl7IBcbT0ehqP+1zEu3QctCK
 lc88zAr66M18SSDS9j2XxS85nmerBMYc9NKFqsx7wTl4rDd4xudQHMFSDFBQNU8sYk9QjlC/
 niNktDyDDpjqoqpWGmd/beZqzC1ESUNJGpEbigBJSMH6dT+pIA4jjrUU81uVqWyi7XdPjX9w
 CuDqiQksJwVgdQWzKWw/V3BgDWEq4DAS0g+4QC/dnKo6EZ1aZCoY6Ss6EPH9rBQIYCBVF6Ds
 XMY3c+E44gmFoqRnSaAROEMGrCB5PufNjDYx1l1EPEJ9Smp+nOlVZBd5nd5PkgBDyofUWa3O
 gmJ41oXvcINeivxBUNqX26vI+c2/aXdLd/YbezJYctTUMFWNxXEuxg7MCZ8wFvRuEQrlKg+P
 7KSfsCtEWsWBMxb8damewsO+eR1n35jnAs/Ubi+lk36iuTGOBZ5XJ9caAPWBt3V+p9ot+k8H
 zx3E8KRgytSX+TlCsU82d5CdAtaRZTX6H2fliC2SgJhClY5cI3CI6WIqV/ER2CDt/4L/gsv1
 ivsMnK0MHKl2RX6xf+2Qn5icqjzep10sGg2OychVX7xhSN+Mdn/sv9FK8toFVXCyACF5aQqJ
 xXiU57Yasmjtxydo2hNBXUDhNU6HPhUue5+F3X8O2VuF3KRbwfI5sXlbmPSGNomVUKKWT8Fi
 +T4jGvzGMNbLyw7VZq+QK//njuZ4ClG8MovDhSgHzWmUBi1mKBwNTfLh+M6S+lVb02rKs2yj
 F3NX3/1ZIDl/ucIzTU+rfvY9NzxQ7clRRcy8quyxe/eCBQ2N1GLmOdoeO2JYSrcRCXz/qCjb
 v9S1PbyLLsMm1Mijma2O+8DIXsW64S9qrlE4B5jGXmXPV2nBqk5eiuN3NVVt70Lzbhc4FPkV
 kWK89hcGLOIJMK6TwJBeFt7NryOhaMOhz3fzfUpO0GmtiV5y6WKDBdJNB6WhS0DcLYsaNE5w
 f0ssdI94hCkjkZ4Kc6Piy1ZrjzeLnEJX6g9mIsdBYvn1lgixl1YOMSOAS7q+pCfLd5LNxByc
 DOTgaPDgZVax1bDLCVvRSScg7IFiM1X6h5QzVIEK1CYofb/h6c6jE9L7DA6bgVJ1REbgeh9D
 Xdmah9uLqKU8jY22MUaBzKwGxtMDQGy81Dqzwdbj3XQSkSlWzCfLGA5PurRrkkV/3gFI2pe9
 bCcjm3kTSzrbIf62S5rARxprPnqTNpQ8AzemZ/4Q5TZTsdiOTe10LWzYWcoqgf8BZJjjULKk
 uBm4eJsZPCpLiUXuaA6V9GX2Ll4pMpo/4CerSWNJJ80IFw=
IronPort-HdrOrdr: A9a23:e75WEaOMsFthWMBcT1v155DYdb4zR+YMi2TDiHofdfUFSKClfp
 6V8cjztSWUtN4QMEtQ/uxoHJPwO080kqQFnLX5XI3SJzUO3VHHEGgM1/qB/9SNIVyaygcZ79
 YdT0EcMqyAMbEZt7eC3ODQKb9Jq7PmgcPY9ds2jU0dNT2CA5sQkTuRYTzrdHGeKjM2YabQQ/
 Gnl7V6TnebCD4qR/X+IkNAc/nIptXNmp6jSRkaByQ/4A3LqT+z8rb1HzWRwx9bClp0sPsf2F
 mAtza8yrSosvm9xBOZ/2jP765OkN+k7tdYHsSDhuUcNz2poAe1Y4ZKXaGEoVkO0aySwWdvtO
 OJjwYrPsx15X+UVmapoSH10w2l6zoq42+K8y7QvVLT5ejCAB4qActIgoxUNjHD7VA7gd162K
 VXm0qEqpt+F3r77WXAzumNcysvulu/oHIkn+JWpWdYS5EiZLhYqpFa1F9JEa0HADnx5OkcYa
 dT5fnnlbVrmG6hHjLkVjEF+q3oYp1zJGbIfqE6gL3U79AM90oJi3fxx6Qk7wE9HdwGOt55Dt
 //Q9ZVfYd1P7grhJJGdZQ8qPSMexnwqDL3QSqvyAfcZeo600ykke+C3Fxy3pDtRKA1
X-IronPort-AV: E=Sophos;i="5.87,205,1631592000"; 
   d="scan'208";a="57355765"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OpcxhSCfHw1mMOGpz1iX/MkAJAt9NPOdlDuGelG0HBbtLl3YlxJkelEMe2UYvSxVfckggSS+19CTX5L+VYQ5ct6GlFokD6bqQdxujx/jXT5VhvTreHcOvU9/JaOna5xKk4RtMV4nEgM0abqvVkP+iPSZwcuecWDMtU4hhV9NA1y0mi8DoojsJ6mmyc9htF0AQxbVrwIbwm/klc+eWq6Y8N3DwPk3cAV18p5VUhoh2OOlnSBLouj9Vm1LdTurbMeSowrO2D0Hc5lj0cPSUW0Ub6u3y2h0YbzSdwZSuKgwZXNhEX+Ps2eWo4SAasGfjuAV1eD2c3SaqDMTytCXDd8tfA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nufGc9BLzFfdeaVHW1Je3NvSwxZPZFL7GA/6Q7+cfPo=;
 b=W5R2djPLP5AiHf3oNt8yu19t3qKoWXVlxF9qHL1pdulEoUsdvQrJUQgj/BAk2my2zeZQ0kA8auDO5iHf4hzHSSSCpQR5lVF7DTnLzrkuxAsl+P6ofAdrpNdh+hRLckm0cOzWnnBxE4UvG80Y3GBz1x1TBjBYOzXdo5BCrZak9FTKBpqJyomZi/zFo5CWtr4AM8HTEZj+dr1M4/r9ZlZI8wNaDjFgq7TQP16Pue7dglLROSypPdWOeOnm9eOcwiUiMC3I5R4zPTDiV+IKM5SwzaXdTiZDxsVU17S7rW1BAP6bYdSKClEXT7G3/OgWEhHEhYLQ9ir31MYCDnGGktv17Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nufGc9BLzFfdeaVHW1Je3NvSwxZPZFL7GA/6Q7+cfPo=;
 b=ExK/+jFQmDD41WRnWeNIFPqvNfJ6TPDlOomn5VWczE2rPXFSHv8FQ3lP8xxwsmwUAWsxSiRUUiB6sdJKSHuw9UMc/OtdwxV4BykFRjDLGxNrkoAi+TSc7h0/cwGCbumcGE/UkoYmZmSH4Dz1P+4Mc9fJ7ajEKmxxrCrnvXP7138=
Date: Wed, 3 Nov 2021 12:01:03 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "julien@xen.org" <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, Michal Orzel <michal.orzel@arm.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Message-ID: <YYJr75RbSOuvbzGF@Air-de-Roger>
References: <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
 <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
 <4f77a4f2-a66b-465d-5859-7fe71ece8168@suse.com>
 <48506e1b-2dc9-4652-f169-3d44135a4e74@epam.com>
 <7efa4dd7-83b3-daac-cc02-86f80762513b@suse.com>
 <d3908703-3501-892c-55fc-5a171318eeea@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d3908703-3501-892c-55fc-5a171318eeea@epam.com>
X-ClientProxiedBy: MR2P264CA0178.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501::17)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4555bc5c-539f-4289-f9e8-08d99eb93cf2
X-MS-TrafficTypeDiagnostic: DM5PR03MB2633:
X-Microsoft-Antispam-PRVS: <DM5PR03MB26331C507E0FCBFBA547A7248F8C9@DM5PR03MB2633.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: U0M7raEaf4JHwnsZW9QVIIonVbj14s68fc15mc6BzlvnJ7Q/6lL3vSsK4thPilNN3qlpXy2LstT3Dr8u4c7nf43HvrDbl2MrAGKaWxG23tv43X+R1YtW474eCq1KIa515ek3Qnff0GHrUcDYUj4q7SK/Kw0iwbbV50uWN4Lq9SsJrd91YwuSIgXxrBM7TWIVzQo7/f9rOx4MQc+4PCG02RzOheLWPTOzBrcmxcc8KsPlL0LpJvxxYfiDXpVWtAUH0cpoEN4NU3cgIXAo/FzC+bR+a6Jo9WJ9h3vEOhFs1GgsBFQCxXk7cqoVQW5WczqvReryaMvv43MSQAC1JgtK4z3fh0LKU+B9WlbRvqYdOQF0sZcXg7Z3SxyVtQfKdYxuYg1sODjZmrTPxz4LMVjxbT40fiG9N9HYKKXr1z3cHtnjWtxkqEZwguGdKHbasRa9InmFnqZxGdI9Tht25gzJRk79ZUvY8nWvgXdoyabXnryd05I8VLxbyVRYjf29wDlXDIrG7XiVUhoYAc79lMzVfWNWmzvzV4QL2gQQ8LHkY71wsqyH7Nskvba+H9oaI6YFH0m9Y82vmV+IC6KZ+ZdwpJMvPr3lgeiLiS+xBPeeKz7O2+EoHybbBIeTZlFlzq5EL5oL2+Br0AOVxFag2ojiCg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(38100700002)(86362001)(53546011)(956004)(2906002)(6666004)(316002)(7416002)(54906003)(508600001)(66476007)(6916009)(82960400001)(5660300002)(9686003)(26005)(186003)(85182001)(4326008)(33716001)(8676002)(6496006)(8936002)(66556008)(6486002)(66946007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cTB5eHJCRmtqWmpsWGIyY0xZUVg3bDVMREFPYTA2QkwwOEg2MXI4dWRPT0Vp?=
 =?utf-8?B?enNYb0c1SEN0bDFBS0pYVTEvRmw0dWNUUzdqa0dNNzRhOE9tSHF3cHF5bEFj?=
 =?utf-8?B?VUlyNko0VUVpaHdITVFWa21VUlRJcElEL1VQVFJydFZJcS8zcFA4MDRSMHI4?=
 =?utf-8?B?RE5SZWVRSXJrRHpkcXBZMFVZOWxJZ3lHM0VuNnJWNXBlT2dtQXM4czU1by9R?=
 =?utf-8?B?YjJ1K1V5YXZMOENmVFNCVHpkK09EZko5ZkhxWnhFcmNBdFg5bThRaVNaLzU1?=
 =?utf-8?B?cDh5Ukk2M3VEWjlyMENEWmVqamNxWlc1THRIWjBoRlZLOFZpb3lIdlBhcmFu?=
 =?utf-8?B?WkdCd09hKzFzT0IwWDVLdGhrS21ZdGRIbkhUSVA4UTd3U0lmMWJmWFJCNURo?=
 =?utf-8?B?alZnS0d4MmN6WDFLOFNmaGdrN29MMEpqV1kyZGorZ2lDNk9CaUROSm1ZMXZn?=
 =?utf-8?B?cElkV0JlaElSL1ljdVg0bWswcUpVUXJHeWFON0JHbmpBdlFaU1cwcTNzNmJu?=
 =?utf-8?B?cS9JcThpcXZFYlVxVW5RUlZ5WmR6emxjLzRIb0RuVHdCbStTQUI4ajhkUnFQ?=
 =?utf-8?B?b3lyQktnOUMzaDhDdDhpTjFIYmpMK05XbkQyWGVETkNzaHpJcWMvVjZWdGZJ?=
 =?utf-8?B?UmRqODJtT3kwVXZ1MEdQS2ZWMnJqUksxUUpjc0lHZ2padWI4ejZyeVEyQUVh?=
 =?utf-8?B?ZDJtVWsxbHUwZ2hvRHJYY0J5RVpmVmdGZnFXRWhESE00R1JyVFR0dHhNVFRa?=
 =?utf-8?B?V3FrNTdZOG1CVzNTWFkyOHIyUkpIRmJzQmowQ0xGUTExVE82TUhTbkxKNGFz?=
 =?utf-8?B?MVlRNVNIUURlbHFZaVhQaUg3VStXbXJxQmxrS0FSVTBOcmpRaVFodWhPUmdL?=
 =?utf-8?B?Lzk4RDIzUU9aMnlaVDZ6YWRCZWI1NXZOUUhTdXJOQXFuTzRNaFNvUU1yQ1Uy?=
 =?utf-8?B?YURBbW5PbER1MVRZT3I5UFpWb2NuZ213ZzJjdFFjV3puR0tCbEdsMnZRMXZQ?=
 =?utf-8?B?NkdpblRIVU9pcEhNbjRnRW1rMlFxbDN4T0hhM3BJVVVycDNCaWF5VlJQZzRV?=
 =?utf-8?B?R2IvbzM3Z1BIdUdCdXZJaXV0SnRoaFBMVmZVYURmUkhUT2FYRFhWZEI2YW1W?=
 =?utf-8?B?UEN1V1pMcDNEN1hCeTYxSlRuTkRVQ1FBWFl6Q0hTUnpYblRzVFFkZk45Titz?=
 =?utf-8?B?dHNPUmlHOFJSWjdiMURBVnRaZHcwN1lObHQ3ZkU3Kzk1Qkp6Zi9tbzZ3QkN0?=
 =?utf-8?B?MElCWGNwOTd1UkVjME5kY0NES09lOUcvZ09pL2pGRnFaQS85b3B0REk3TFlJ?=
 =?utf-8?B?RTlOaFJUNjFrNis2RTNmOEgxWTFFT21VMWlBRW5zU3V5NysyYTVMTFFJdFlk?=
 =?utf-8?B?WFlsRlh6bnQ1eEk3NmVGbE5nOUFMVFhoRGJpT3RGYVI1VHhmdVY4blRNWjFX?=
 =?utf-8?B?Y1lLN1hlSWpCSWNrVjk2cFAzanY3NVozZy8zMDN0VWR4VVgvL2dSeVNtT2Y4?=
 =?utf-8?B?UnB0eFB1andNTTdnbm1zQU82aEJvWG9TR25JUjcvT0FlZ3RTVjZ1bTJ5bEVs?=
 =?utf-8?B?UStaQzFQam1HNzREYmp5a1FBdnltN3VHWStjSytPbWoxRHgrMVJVTkxsUTha?=
 =?utf-8?B?U0RaODFBOXp4dHdEUmE4MVYvNWl5OWE5ZEp6ZEVKMHZkc2ZSV1Uwc3Y0RzQ0?=
 =?utf-8?B?d3JJZEg5L3NnemJOeVV1OWZLNFFBOXNFdHowMXFxN0t6eEdOQTMyTDZMd1BP?=
 =?utf-8?B?Snl3Z2xmeWIyRTd0WDRQb0RhTlJRR3JwWlR1R09CNk1UUjE2MjQ0QldOanBL?=
 =?utf-8?B?V3ZtSFdFS1ErMnFoTVBmcWF6ZWNGZnAyNFZkaDNKdElZcndlYi9pdi9qeXg4?=
 =?utf-8?B?c0kvZkhiTlhoTERsTWpEUXFDWEJuTG5HZzhzNldyR25xdGlpaGQ0Z09DSDhi?=
 =?utf-8?B?OG1OZ2svd2VZTnkrUzJDbkdYV3Fwd1RoclVsRUw3bmlrR2thYWFlaWZMV2xy?=
 =?utf-8?B?bGxlWlZQQlJucmpGT3lnbGZJQjNBS3JZVTMyU0JrR3pSMGk1S0Zuc3hNWDhG?=
 =?utf-8?B?VC9KKzZoV1hpYTRSS0p0b2tkdFBDSEx4by9CVGJ3R3MxbzRvTHArenRoT044?=
 =?utf-8?B?WkFSZjlobUlUeHpobkh0amJQTnErbGtRQTlMZmVvVVFnYmp3VHJsd2txaWxq?=
 =?utf-8?Q?uQi2Q9eFv833On0m6mUYLkg=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 4555bc5c-539f-4289-f9e8-08d99eb93cf2
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 11:01:08.1009
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: B/R1UWfsYXC4dPc3Dm+NL4Z9WB2t5bXLDBMDgGKiqKmQMBKQWsrQL1368iDySQtTRrSlMnykN5eeB34PItQKMQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2633
X-OriginatorOrg: citrix.com

On Wed, Nov 03, 2021 at 10:36:36AM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 03.11.21 12:34, Jan Beulich wrote:
> > On 03.11.2021 11:24, Oleksandr Andrushchenko wrote:
> >> On 03.11.21 11:49, Jan Beulich wrote:
> >>> Aiui you want to prevent the guest from clearing the bit if either
> >>> MSI or MSI-X are in use. Symmetrically, when the guest enables MSI
> >>> or MSI-X, you will want to force the bit set (which may well be in
> >>> a separate, future patch).
> >> static uint32_t emulate_cmd_reg(const struct pci_dev *pdev, uint32_t cmd)
> >> {
> >>       /* TODO: Add proper emulation for all bits of the command register. */
> >>
> >>       if ( (cmd & PCI_COMMAND_INTX_DISABLE) == 0 )
> >>       {
> >>           /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X enabled. */
> >> #ifdef CONFIG_HAS_PCI_MSI
> >>           if ( pdev->vpci->msi->enabled )
> >>               cmd |= PCI_COMMAND_INTX_DISABLE;
> >> #endif
> >>       }
> >>
> >>       return cmd;
> >> }
> >>
> >> Is this what you mean?
> > Something along these lines, yes. I'd omit the outer if() for clarity /
> > brevity.
> Sure, thank you!
> @Roger are you ok with this approach?

Sure, I would even do:

#ifdef CONFIG_HAS_PCI_MSI
if ( !(cmd & PCI_COMMAND_INTX_DISABLE) && pdev->vpci->msi->enabled )
{
    /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X enabled. */
    cmd |= PCI_COMMAND_INTX_DISABLE;
}
#endif

There's no need for the outer check if there's no support for MSI.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 11:01:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 11:01:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220787.382187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miE1l-0001N4-MJ; Wed, 03 Nov 2021 11:01:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220787.382187; Wed, 03 Nov 2021 11:01:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miE1l-0001Mx-H9; Wed, 03 Nov 2021 11:01:57 +0000
Received: by outflank-mailman (input) for mailman id 220787;
 Wed, 03 Nov 2021 11:01:56 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miE1k-0001Ml-9u
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 11:01:56 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 7470bdca-3c95-11ec-8568-12813bfff9fa;
 Wed, 03 Nov 2021 11:01:55 +0000 (UTC)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2054.outbound.protection.outlook.com [104.47.6.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-35-hRcxTh1UNRiAuoEmgV4thQ-1; Wed, 03 Nov 2021 12:01:53 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3295.eurprd04.prod.outlook.com (2603:10a6:802:f::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 11:01:51 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 11:01:51 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0039.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::16) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Wed, 3 Nov 2021 11:01:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7470bdca-3c95-11ec-8568-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635937314;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=0HVm1SDKyFermP+v37lZ/FDpUt2eEuCLTA6qXdb+7gw=;
	b=Yl2CWIupz3DJShCaTsPyamfmIwxSyFbyNvXTKUJi0MWuDkAPAG0m0RY3dqUMu1bSzKRUVl
	IFLvZxDZ6PW71V4yIBR5Bw1AaBbPgM6hzlxObROP+7wfvEjr7hFlc9wfEe/AUSsr2FAQab
	1Sa9dghuhDx+dVAsxzNJNXlSWPGUk3M=
X-MC-Unique: hRcxTh1UNRiAuoEmgV4thQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RUU2GrW3Ri1fnE/gQ3syjp6YSNPrOMmMOhkmKIdY1xTYxOm4ifySmK79dP6LKvF/BltGglIAFJDGPHHXCXZcmtEbZunVpsTsljP4QAHOrTo8edW2IT/rjeD2boLuELUhhLvBlyPkfXcAV+n9eDywOz8OWCIH/n5m30bNUO/9Xn3igA8mmOZUoVt7hNbugYwh6O5xebiEj8cPxfgIjiizrkgssjyCDN7mVh/IcaW/CtWff91yEruHJtyz+5x2SxZQowpvkRlYI4FNygRWhnhso0jzEAfksRHvrTWc+ajTE/nQn7gbLWKZjRpx8Uwymy4xFN2xnmcUk2b2dsJbRV/wdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0HVm1SDKyFermP+v37lZ/FDpUt2eEuCLTA6qXdb+7gw=;
 b=iHhbdWdoTM5CJQhNI5teEONRDhDxr2y7jf7miDZ2DUgdzWPxHE7jEw+cIyU2QfFO1BZSaY8CihDqjkWGfD+XudhPECfYIDCjsOVESF+909guvJqO9TKt9NAw2hCUFgG2Qah/O1sDbRm2P75yKo/EJM5A2qyoEzm2b62UqE/t3TIR0MhfP4vT+6OzsyI/xdFm0oM0nO5dm5EZ+9gk6mr5keERdFpVSazs4Cipgc54GWSr5F7jHp16C6XAgryAbcnEnhoyoqJCWk7pgVQCCqy+2MHNRyVlC8FZOY7SvAFU2OAMQgyXBNydD2tkRpWPTqkdiut8U5RocWjTnMSpws/oMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <dde21f84-861f-9c68-5e55-28f5bf407aa4@suse.com>
Date: Wed, 3 Nov 2021 12:01:49 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 0/3][4.16] x86/IOMMU: enabled / intremap handling
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: Ian Jackson <iwj@xenproject.org>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Paul Durrant <paul@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <a51d6449-caba-8a67-3c11-b593574f3839@suse.com>
In-Reply-To: <a51d6449-caba-8a67-3c11-b593574f3839@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0039.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:87::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4494b6ab-4175-4929-8bb9-08d99eb956b8
X-MS-TrafficTypeDiagnostic: VI1PR04MB3295:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3295D3CBACABF79CD4B663F2B38C9@VI1PR04MB3295.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	R2GAsoTqll4eHR8thsWFHzdhSTcH8cb+cOOpHikWHP+aLdvFKMDZ3wisMUigRvBeS0VdJXkr0LBh3V8RoXavW2D2QQK2Hq6HN4Qt86YW2yzR94H48aB0o7yvdIQbmRF92mG4xHdzFvhyQiEFgRkVrz1N6zMC+t9GbnOdmsZiXrWdCFAw+/JTIXs+ziSK1eSerLAzgc8//J+Jni12xD2G9gVbAOor1od5G2m51xmiFWh8RNWbSzu1w41ufS5WVRyOOz8CO73GENohCsBSwjhesvrNXual/20To9y7+QuzA0TUPgcJbvLBxOv59cD/A1ssbxjYqRG+x8hsq2jriYARwurUvhJR0oLu4gRAjVyqsA7HGy06jBnXXSAMIr/iDdjuYp03mDfDh+uBXcUqDw1EJP59nRpbOO8t+3GyNITYdUUuQESA+YClSh7YZgtXiAyjHP3elqpWG4Cpn7ABbAD/Dl1TOGtPIJu8vCnsd77a8kvgBbjKBSATLbhBf50UgbnlAVSNUlxOhw2RMp5+L3BU7wXBuehsSH2Ao0XPH40cHXOtnKKxe8U2FerohmZoA+tjeYX/SLGLdUef/DeHlfNzi/73dhRiqJjYhUDGFLlt2WC6x3WuIooaYZbl9bJdcpCbwT2YMRe+08UzQguL7HIB0qDL2OI3jqD4hISr7aGkpAMkIqSDsOahfWWeZ9g85gSJg1EsN3jhZtshbUykdweRWXP5v1RjeDWiY2HYkqL6Y2tN5/Wq7OzS5BM6BIN5E74R
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(5660300002)(26005)(53546011)(2906002)(8676002)(66476007)(66556008)(508600001)(16576012)(31686004)(4326008)(186003)(86362001)(316002)(956004)(31696002)(2616005)(6916009)(38100700002)(6486002)(8936002)(54906003)(36756003)(83380400001)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cldTS0E1dVRMV1pqN3hCelUwSmViRS9LVy9IbDdnMzdSWStpTlM1djJmNDlW?=
 =?utf-8?B?ckt1MElzZS9HeGdlUFpsVVY2MnV6NmE3NGl2cytIY3paSGh1eXBOblZka3Ns?=
 =?utf-8?B?ZS94d1VWSnc4Nll2RWI2NnkySVhYYnBDeXZHMkZ6Z2xrM2pVZlNINjAxbUlQ?=
 =?utf-8?B?QXFYbXVBd2pHREJoTTNTVWQ3aVFsTnV2eUpUVDM2b003NGxrRFIrVC9BMVpN?=
 =?utf-8?B?cUhtNEREaUtreWl1eHVJM0lsN3dkeFFtcElPajJMSjJtTC9PMEN5VHNWeXda?=
 =?utf-8?B?KytwYTEzZnpVMU1MVTlDK3hjVGphTDF4RHZTRFcxTmNnTGQ3SGpjaXEybzMx?=
 =?utf-8?B?aGVsbkdHZ2lGU1hQSGpJaFFicTBBZEtQMjZUYVl0d2JjNlhjbVFEaFRwNVYr?=
 =?utf-8?B?YUdHZ0Z4ckUydnZiYnZEcG5VTnVaNmdwd2VHRWU2VHdrVnYva1RqRW5SQTlj?=
 =?utf-8?B?NUpBd0xqSXJraWlxQml0azd1K2YzbmNpMGJ0UGNPVTdzczVpSkNFcnJib3hv?=
 =?utf-8?B?ZS9RcnNvOEkzTUp3dDBORDR3R0Q0YnZXejB1U0haWkFmcmF2QVVwSFhHV1pt?=
 =?utf-8?B?L0ZQbjlJK0ZHcyt0SGVBdTRqYmVmSFIvLzNNc3N3amVvNmVRc0pEejBzLzl4?=
 =?utf-8?B?S0NBL2tJb2creVRnRWtyM3pQSTNFOHZNRmx3NlBJY3E3ZzBtRUxFMnRWUVlF?=
 =?utf-8?B?S0dPKzd4UFZYTmwxZStudUJzc2JpL3hjUjlkR1RSZGoraUVSdFJZK1poU2x3?=
 =?utf-8?B?ZXpxY1hibWRNc21XSmhRSm9VcHdQVEdiTlRRMXhKZVBwMWp0NzByYnBlckND?=
 =?utf-8?B?WGJxck80N1hqU0lQbXUyQUhhaW1BSUpyOThDL3cvRkpGdTlEWnlUNjF3UjNJ?=
 =?utf-8?B?RmNDZmhyT0xlZm13M0hKQ1JWUGRQMC9sbkVCa2lKelNuZmdsWUw0dVBFY3lV?=
 =?utf-8?B?blYyR25zOUNUMjc4eFpHZ0phc3IxTzQyM0NScmJYNS9HN1ZvK1BKUVdPRHFQ?=
 =?utf-8?B?L0h3OHZRd09ya3l4NGdKTDErc1VKc0dtbTdpZmlrZ3JTOTByUUk5QXk2ZVZN?=
 =?utf-8?B?L2lPc0lOY01naUJrc1h3c2g1aC9DMHFrQytLRUhJZnh4ZmsyNHRQd1FNNGFo?=
 =?utf-8?B?NGtvL1ZURFVCL2ZXV0dybTNPdFRsaHFVYlh5ZmhvM0k0Z1lUMHdnWThrVG9m?=
 =?utf-8?B?OGJaNVlHbVlTcytZeFF6Qm8xT1hMaGFhMDNOaVBVc3hBZHZiNU9HeHJ6OGxR?=
 =?utf-8?B?STlxSXIweTM3TEVhNjNaam9kdDJsekZMYXZBNm1pR3BnQjkzTlpLUTJuamhB?=
 =?utf-8?B?ZW0wSFBCdjlINVJrcjlmUkRJOWdSZkFtQkRsckpIbHVmbmp3K0pZVkx6SmNQ?=
 =?utf-8?B?bGV0K2VqYzkwQ3NqMGRVM3VOSUhva0QxOGNqZ1B3Q0M5V3U1SWpRSTdhbU02?=
 =?utf-8?B?VnRUUSt5TFIvK3JLVTA5VS9EUkZTZUdBTnBxVldZYWJCWUJoM1hxbm83OGo4?=
 =?utf-8?B?N2crbnNNcjJ0VGppSDUzT0kxMjZnQlVFSU1VdDdwbWRubDhvOERST3REMVVK?=
 =?utf-8?B?UDZuaERVS21pRm9KaTVqTDlkWkRHR1pnV3o5V2pMU1RPMFJSekhOdUZuVllS?=
 =?utf-8?B?K3JodGJNSGdIVUFXbXBjTVF5L2R3WGY5NmhhSUloZHllK0l1cktiMjlqb0d4?=
 =?utf-8?B?NnFFSHdLcEwyZTcrTWVGUDZiTXhKYVRxUXpVa1VnNFlxTjZ6aXZydEI1a3dt?=
 =?utf-8?B?RWpjekdURHJyU3NvN0c5dTFzai9sZGdUZk5Pd2hzWm1zZmhTZVgzeTJtUW1V?=
 =?utf-8?B?TGhIelVGS0R2RHB1eHpGdmRIeWs1UlhmTmxwcXgvNzVKU2d0LytKUkhPTGZF?=
 =?utf-8?B?d0xqNkxicTBBNE9JS2l0alZwMm9GSlRkVW9ES3Q5UWtia0tYejlHck1UQmZM?=
 =?utf-8?B?VU43NVByUkFFNHBmdi8reHdjc2hQU09uVC9zRk9tN3Z0b0RJMjZvK2dVS3Uw?=
 =?utf-8?B?a09UVzNQUDU0TXZXWUE3R1NmT0I4aVlmaVBoS2kwMGlWdCtQaFJ3ZmpmNkRw?=
 =?utf-8?B?ejFTSVZwNEhXQXZzQjRrRWk2NVFyMXNjaUkraDM0cHdLRGhqV2ZmbzcwQVNx?=
 =?utf-8?B?WFF3UlM3NVo1bXZ2Vnh5b0J5RG1OSmxFaFBGQkNHcmpCZjhaWDFuOTNLR3NB?=
 =?utf-8?Q?e7djMq6nvwjuylMHDYtfZQY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4494b6ab-4175-4929-8bb9-08d99eb956b8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 11:01:51.1888
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: APazvBvZ5fBspYRQGr6QbsjJTPAYVcnDquVampSqNJldqrnMRAvl1iG/BUOq8Y0pJPcxmp9rm239yh0ZAmMIRw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3295

On 02.11.2021 11:17, Jan Beulich wrote:
> On 21.10.2021 11:57, Jan Beulich wrote:
>> In the course of reading the response to v1 (patch 1 only) I realized
>> that not only that patch needs further adjustment, but that also
>> further changes are needed (and there's likely yet more amiss).
>>
>> 1: x86/IOMMU: mark IOMMU / intremap not in use when ACPI tables are missing
>> 2: x86/APIC: avoid iommu_supports_x2apic() on error path
>> 3: AMD/IOMMU: iommu_enable vs iommu_intremap
> 
> Ian, while we further discuss / refine patch 3, the first two have the
> needed R-b, but will now need you release-ack aiui.

Seeing your reply on IRC, here an attempt at a release justification
(the patches were ready by Oct 29, but no-one cared to commit them
in my absence, so I thought I'd get away without such a write-up):

Patch 1 addresses a regression identified by Andrew. The main risk I
see here (which has turned up only very recently) is disagreement on
patch 3 which imo has an effect also on what patch 1 does, as to the
(non-)effects of "iommu=off" on the hypervisor command line. This,
however, is not an effect of the patch, but pre-existing behavior.
The behavioral change (in this regard) is in patch 3, which is still
under discussion.

Patch 2 corrects an (unlikely but not impossible to be taken) error
path, supposedly making systems functional again in case they would
in fact cause that error path to be taken. The risk looks low to me,
given that two function calls with previously assumed to be
identical results now get folded into one with the result latched.

Jan

> Andrew, did you perhaps have a chance to actually try v2 of patch 1? It
> works for me when suitably configuring the BIOS on my Skylake, so I
> wouldn't feel uncertain in committing without a Tested-by, but it would
> feel even better if I had one.
> 
> Thanks, Jan
> 



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 11:02:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 11:02:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220794.382198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miE2e-00020G-0Y; Wed, 03 Nov 2021 11:02:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220794.382198; Wed, 03 Nov 2021 11:02:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miE2d-000209-So; Wed, 03 Nov 2021 11:02:51 +0000
Received: by outflank-mailman (input) for mailman id 220794;
 Wed, 03 Nov 2021 11:02:50 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miE2c-0001zz-G3
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 11:02:50 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 9562019c-3c95-11ec-8568-12813bfff9fa;
 Wed, 03 Nov 2021 11:02:49 +0000 (UTC)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A3AdCkV021803;
 Wed, 3 Nov 2021 11:02:44 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2059.outbound.protection.outlook.com [104.47.14.59])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c3ruug4sf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 11:02:44 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4434.eurprd03.prod.outlook.com (2603:10a6:208:c7::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 11:02:37 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 11:02:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9562019c-3c95-11ec-8568-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eNI8ywGr82T1ZzZ05+fD/VoK7vUIVTELpSa0dHLTXCTWNGm9FfV5Aod3/+Y+FpX0s/rWcix1SppAUjKMO9wTjhmxgxXQugzcGA7CNo1kBx3g/qIdI+zxcazpNSbK7w5n08gMGz1zB5ZpvxJX5Lb0kJAnXicieRCG2yHi/gWZ9z9aXXvB/3u3bQFQv7ntcCguPzl6rK5tErJv2pzCJHmcY6ciDMhWYVmYbes1aHAD5EHHP0faTaQym8XvIHUG9u9W2W/U8s8IwHy9jkHY+szvbszxh8vrre0cxLYwA3OyhTZ55/aFxKNd0wl4xKGkctgo17l8lU7P2UQuy7yJQnJXzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I2hqvwZaJc93k9Zhb5aUKiapbvoDN4shc/xIEg3+Q1M=;
 b=mlK74QYMuAHpP6OBe49dfNxotx7Imza97ZRqGsOAnTfrKCbbxo6x3WXFK0tfwzjSfczNu9gQrsknnwOOcCmEEAMBE9KDg8I0KPJlClThCHacoKE191SWm0hwIAPr3C6z23oyKLLnfRdM9uwLjUxTtdBFYdOz5w0O/Cen/Z39DmhEemG6jiLFAe6FXwyqb7DjHzOJE2w15/mUZuEIrwdQIrisK5bNoZKX2T6budpedzQdonzD93+mCmqX7uMz/eV+IP6WfrT6jIekmLEwDfZKcLwWlYvVKxg5tNvBzLS7NNxIa+uCL3deUKQGpDXA/5/f/lI/U8LttR8MuuGX2FYeNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=I2hqvwZaJc93k9Zhb5aUKiapbvoDN4shc/xIEg3+Q1M=;
 b=fi5cEK8BYImm3OH4dG7Dk5lHxmizxDJWNit9D2xGtXII5rylwk7ZuuQd1tcFhXgN9ZyRPi2mIyKrheeakxDBfqzseXVLM9DzaIE0FVBXAl6ckUoh4spy4WnPuqRd4pNmBOvR7melzu3iGJbWWt4Hx6lt/05dtrXavyW9oFySqe3QBdv3IqnOk0ktChlOiGcegi56+ENhLmIVv44ayaP8rYe7XoxGEpqkVajmRJXVSdn2oiddLxL7BKkoiDNleaBZIlKY54YcyKmjMFLxyWMwaG0dcMbttMSUL+vDyJCUdDi9YfsDaB/H54PhuHqcMorcaHOefAeM6RwkDU6URlWFEA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        Jan Beulich
	<jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Michal Orzel <michal.orzel@arm.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: 
 AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUICAATmxAIAABTcAgAABvgCAAAHkAIAAAZSAgAAFc4CAAAmcgIAAAuiAgAAAg4CAAAbWgIAAAG8A
Date: Wed, 3 Nov 2021 11:02:37 +0000
Message-ID: <9b9bd48d-ab2a-3e3a-5327-d0b8eff5a8ae@epam.com>
References: <65e218f1-471e-fd02-441a-f8c5f29d776e@epam.com>
 <b7626958-4df3-9f07-0ab9-604e55b3274e@epam.com>
 <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
 <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
 <4f77a4f2-a66b-465d-5859-7fe71ece8168@suse.com>
 <48506e1b-2dc9-4652-f169-3d44135a4e74@epam.com>
 <7efa4dd7-83b3-daac-cc02-86f80762513b@suse.com>
 <d3908703-3501-892c-55fc-5a171318eeea@epam.com>
 <YYJr75RbSOuvbzGF@Air-de-Roger>
In-Reply-To: <YYJr75RbSOuvbzGF@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 31ad8992-e8e1-433d-9a78-08d99eb97266
x-ms-traffictypediagnostic: AM0PR03MB4434:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB44346D3F44AAAB4F41BD33EEE78C9@AM0PR03MB4434.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 zrE97ve8VYX76z+ZBl82Y24i2viDrS0bJ+958q+rsotPxEUly7wq19hnOFF28kP+U45LfgRqg+6wjmpJuSCggcVrpSp5m2Dpqgms68zgbl2Hha/FvvI5X54HK9UoH28xKuqtmGtl3PWKl5XO3g9pzdPOL3lHImraE9lBlLHfq1YB+6U6FKMrcnEIIqHm/QfX9QFjC1vD7uZGwW0c4XM3agzHufnGxhk6IzuNP5K9jlEbrLWlTamuoNIsW9apfPYUVC+JcUu68LW9363j+srU6V1dSz1u/DhzYUYDcAI2/9dy+9IP0cOfleeSSshJGbHtKwx0X/YrpCszgWTtCs031ads/LcJMh4LzD5QgNzDiVeDRh0bfy6P4Gs7RqRQhdWI5mrpKFyqnH+Jg8+8PJcMSccP3+R2h3Bk1mtwiCYvzIHnZ7SRGEHJZhlhC02F9vJK8OATnRnH5PXAu/nU6VEl6c7z4y8zHPQZo6DXprniqaPg6Hf6BlmYyB5TY8r1iVj7zoB0jYwv95bDabvREF227Bt3Y2+z7e2zZCPkcTZ5GPxGFcwLTH//wY1ESvnfBJSQG1gN6iCdoO7bhhTEk9SU4iAJKR3WXfcNC3lpRdWkr/7yKz7cSdX6OAfffLsGprkYH0QCRksD7uoLs6SbagBrCUd60lJc1f5533O3tGdxGql+CTzE0vgY+lduAwD65Op1Nkmpx4lHrLK1w54HrhVYNojAn6jw9q3NF7p/n2Kkeh0wl5qW6wBYbJkSbCZxqJXc
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(54906003)(26005)(4326008)(110136005)(2906002)(316002)(31686004)(64756008)(66556008)(186003)(38070700005)(36756003)(66476007)(53546011)(2616005)(6506007)(66446008)(86362001)(6486002)(38100700002)(122000001)(71200400001)(508600001)(8676002)(91956017)(66946007)(31696002)(8936002)(76116006)(6512007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?OXR6ZkJJSGVjbEo1cktUNnQ4b1hrcU1pU21ZVHREN2xMSkFDenJpQVRDWFBj?=
 =?utf-8?B?MG1Ka1dzaC83NjdmRXFJdVQ1ZTZVZnB1NFlzVDAvSUs2blFGNy9EbVZoNUIz?=
 =?utf-8?B?NTFGc2xRZTVNZWI5Y0RQdjg3OTZaUTRTdHBsYUsvQXNJUmJVc0hBbENRSFVr?=
 =?utf-8?B?NnpxTW1vMFJMdnR3dEhjMkxaK2VGTzJ2bEtwQzIzSEUwODlSenJob2p6U3lE?=
 =?utf-8?B?blBjR1FoMWIxczRYK01EWGVDWVE1ckZhQWRwdWtXQnZIVUhCZWd0bUlESkxX?=
 =?utf-8?B?akRacFB3R0FrL09iMUo0M2NQNUhudVF6ejRkWUxTUEo0WlNrMG5UdTF4WFlW?=
 =?utf-8?B?aFJMdzZadTY3VWVrblk3cUNPcVRkNTYxcVdUQmpTZ1FKNmtWQVpHd0UvK0pF?=
 =?utf-8?B?UURhZHI4KytEMHMyZmlkckV2ZWZLNUZlZHVyZ0dKdHNpNmI0SEdPdndWcU9L?=
 =?utf-8?B?VzF2U0FwbTdvSVZkU1pVYkhvWng4NTVWa2FtQjM5QWtrRXBUVzZ2VXZ3Nm9O?=
 =?utf-8?B?NWFRTVFud2ZWU1FjZUJmS0ZoQUtlenE4RUdGZzMwMC9FNFkwRnZIL1dKdkRG?=
 =?utf-8?B?ZTA1QWdaRURzUDJoeWt5YlduOG5nYktxTTlpMlhEd3hQNXFQNzJ2TWNySmRi?=
 =?utf-8?B?WkdSNEpQR2tNbWlBelZoOUVTNDMxajNUbHNVaGRjTVlQVDExM3orNEZrR25i?=
 =?utf-8?B?RlhRUlozNXVsSkZnL3JXMnpGeGdjYVA0dTIwWjd6Mi9KUkRTbHJtMHRkRnR6?=
 =?utf-8?B?S2ViZW9ubU9VaWRYRklLQUxsR2RqSmVuUk5yNFp0Z3ZLQTlrK0IrZHZDY2Vp?=
 =?utf-8?B?eklvY2JhekJ0dXVQV2Q3dzJ2ZW05RktDZm1UZ2hTb3kweTdxQjNPU1hkVms4?=
 =?utf-8?B?RmZzbjh0eS9TTWd2MDlWeGNncVpXRzZIeHlNdXpJR21TV2t0SVZYZWxGczNY?=
 =?utf-8?B?dklXYlRSWHhNZWttdys0N3VQNFNISUM1d2xIQ2I2YkJ6TEJ2dUpXQ1dUMXlB?=
 =?utf-8?B?UDBGTy9yd3hmSS9uMXI5cVpSaDBmNWcweG42M1M5TVRldUdqdHdlSWhVTlow?=
 =?utf-8?B?dncyV2JLQzcwVmNnckRIMC9ERUE2NVJhdjZIdUtYa0NlK1hHakNuUm1icHFy?=
 =?utf-8?B?Vk5pVnNxNm9hV3RORlVJbDR0bUltak5ta3hOVHhpYXJrZ3ZTTVY4RzA0Y2tV?=
 =?utf-8?B?bFNFcWltTERTdUdVdGFrb0pOUEd5RzEvRGxRaElDcVFnTTc4WTFoRzQvcGFS?=
 =?utf-8?B?Q21NYXlZR1hrL1RBSHIrUGdzV3ZiYzcrR2ZlVXR0ZFpDdHlOd2xsa2s0RVhz?=
 =?utf-8?B?enFOYitFcDlDNGZ5bk9IVGg1dzBDc05MamdleEVKbmNHRzJMTDlZSFRTUDNK?=
 =?utf-8?B?S1FXL2FncW5PSTJyS0NvYlIyejlBMFRMUmZsMTBxa0lFblp2UFdNS1Y2RVlR?=
 =?utf-8?B?VStZQUdyMzJlbFFoQ3FIbVdGRHJZaEQxNUY4alJqMFVCdzlQYlpoQ2Z1d1BR?=
 =?utf-8?B?WE1tNjU3WjRsTlRQTEJZc3kvMTk5QUxnYkk5MjZJZ2kxbWhNSDJoWnV2K0cr?=
 =?utf-8?B?Mi93NzJmWHR3dHI1cHMrNXU3cGR2azJpYUZuYWFtbVlXZVg1WE5EWERic1lh?=
 =?utf-8?B?OExGVFA1SXRVYVhsNVVpWGdZdFhRQ05Yc1VBMHN5WlY1L0NUd1dBb0hiemly?=
 =?utf-8?B?SHdwb2owaFIzMDBtUmVqUjNHQ3lZczRBSVozdE4vWW1XTmFkNG0xczdlaWV6?=
 =?utf-8?B?WHRvK280L2VQOFVqcWp0TGxZaUhuSlVnM0cwc3ZUK1NJV25OWFBWREM0Y09O?=
 =?utf-8?B?L2x6NkErczh2c0tCUDlkeVk4cTJBejdOemFveitaS0lxajJSNUlNalowMlNM?=
 =?utf-8?B?enF0TlliWHRqMXJvUFRaZVJscUhHOUxFejlhNnBiTGhLTEtsZE5pL0dYMzFG?=
 =?utf-8?B?UnFRdVUzNEFwUWRHeXZ3Ujd5NkdaSlRXRTZBTkFPMnZtUXNkU1ZsajQvTEI2?=
 =?utf-8?B?dHo3Z2wzZFo2RHJlNjU1Y0NJV2JrVzUxM1BSUGwyUkJVUU5YQkxWNHc4RFU1?=
 =?utf-8?B?TlRrNkoxL2dqTWpEMmNBTEFsd0k3d0RxV1dvY2VURXVjang4TWZ3MFZWMjZR?=
 =?utf-8?B?c1BwTVFOcjQyNm84RUVob1dnWGFuYWVtV1l2V2FZMlg5WGEzUmtydUZkQ2p4?=
 =?utf-8?B?cmtaQ0ZjODhWc0tRMjJtcEo2cUN3ZHRPdjZFMEFadnZXd2RYbG92OGh0QkdD?=
 =?utf-8?B?NWlzeW1oUWhSUmRDUzNiUVB4QVFBSEVseDBVQ05OT0x1WHBDK0J4T3pQS0ho?=
 =?utf-8?B?alovQ0FrS0xxbEhJQzFiYjZJcUhRVE50VEZ3aHV2ZXZaeEtsS2N3dz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9562AEA84D89E24C89D08AD23FD1EBA5@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 31ad8992-e8e1-433d-9a78-08d99eb97266
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 11:02:37.3657
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xRdx6VUC9nxDK1qORDiM4M74MM3BHepfF4ss5P7Zh/ck5723a4cnfOAS55d3fHjCo8Ehfg6K+MTgy8cN6XDhf6BtNqR/hufwwpHG6buxdFA3XzfpNNwTwC/ugUvjl5VW
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4434
X-Proofpoint-GUID: 2ld3k0GuADbn6AqhQIkXiK0eQ0zjpDJP
X-Proofpoint-ORIG-GUID: 2ld3k0GuADbn6AqhQIkXiK0eQ0zjpDJP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_03,2021-11-03_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015
 phishscore=0 mlxscore=0 priorityscore=1501 adultscore=0 bulkscore=0
 suspectscore=0 impostorscore=0 mlxlogscore=999 malwarescore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111030063

DQoNCk9uIDAzLjExLjIxIDEzOjAxLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQs
IE5vdiAwMywgMjAyMSBhdCAxMDozNjozNkFNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+DQo+PiBPbiAwMy4xMS4yMSAxMjozNCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+
Pj4gT24gMDMuMTEuMjAyMSAxMToyNCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+
Pj4+IE9uIDAzLjExLjIxIDExOjQ5LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+IEFpdWkgeW91
IHdhbnQgdG8gcHJldmVudCB0aGUgZ3Vlc3QgZnJvbSBjbGVhcmluZyB0aGUgYml0IGlmIGVpdGhl
cg0KPj4+Pj4gTVNJIG9yIE1TSS1YIGFyZSBpbiB1c2UuIFN5bW1ldHJpY2FsbHksIHdoZW4gdGhl
IGd1ZXN0IGVuYWJsZXMgTVNJDQo+Pj4+PiBvciBNU0ktWCwgeW91IHdpbGwgd2FudCB0byBmb3Jj
ZSB0aGUgYml0IHNldCAod2hpY2ggbWF5IHdlbGwgYmUgaW4NCj4+Pj4+IGEgc2VwYXJhdGUsIGZ1
dHVyZSBwYXRjaCkuDQo+Pj4+IHN0YXRpYyB1aW50MzJfdCBlbXVsYXRlX2NtZF9yZWcoY29uc3Qg
c3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQzMl90IGNtZCkNCj4+Pj4gew0KPj4+PiAgICDCoMKg
wqAgLyogVE9ETzogQWRkIHByb3BlciBlbXVsYXRpb24gZm9yIGFsbCBiaXRzIG9mIHRoZSBjb21t
YW5kIHJlZ2lzdGVyLiAqLw0KPj4+Pg0KPj4+PiAgICDCoMKgwqAgaWYgKCAoY21kICYgUENJX0NP
TU1BTkRfSU5UWF9ESVNBQkxFKSA9PSAwICkNCj4+Pj4gICAgwqDCoMKgIHsNCj4+Pj4gICAgwqDC
oMKgwqDCoMKgwqAgLyogR3Vlc3Qgd2FudHMgdG8gZW5hYmxlIElOVHguIEl0IGNhbid0IGJlIGVu
YWJsZWQgaWYgTVNJL01TSS1YIGVuYWJsZWQuICovDQo+Pj4+ICNpZmRlZiBDT05GSUdfSEFTX1BD
SV9NU0kNCj4+Pj4gICAgwqDCoMKgwqDCoMKgwqAgaWYgKCBwZGV2LT52cGNpLT5tc2ktPmVuYWJs
ZWQgKQ0KPj4+PiAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNtZCB8PSBQQ0lfQ09NTUFORF9J
TlRYX0RJU0FCTEU7DQo+Pj4+ICNlbmRpZg0KPj4+PiAgICDCoMKgwqAgfQ0KPj4+Pg0KPj4+PiAg
ICDCoMKgwqAgcmV0dXJuIGNtZDsNCj4+Pj4gfQ0KPj4+Pg0KPj4+PiBJcyB0aGlzIHdoYXQgeW91
IG1lYW4/DQo+Pj4gU29tZXRoaW5nIGFsb25nIHRoZXNlIGxpbmVzLCB5ZXMuIEknZCBvbWl0IHRo
ZSBvdXRlciBpZigpIGZvciBjbGFyaXR5IC8NCj4+PiBicmV2aXR5Lg0KPj4gU3VyZSwgdGhhbmsg
eW91IQ0KPj4gQFJvZ2VyIGFyZSB5b3Ugb2sgd2l0aCB0aGlzIGFwcHJvYWNoPw0KPiBTdXJlLCBJ
IHdvdWxkIGV2ZW4gZG86DQo+DQo+ICNpZmRlZiBDT05GSUdfSEFTX1BDSV9NU0kNCj4gaWYgKCAh
KGNtZCAmIFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRSkgJiYgcGRldi0+dnBjaS0+bXNpLT5lbmFi
bGVkICkNCj4gew0KPiAgwqDCoMKgIC8qIEd1ZXN0IHdhbnRzIHRvIGVuYWJsZSBJTlR4LiBJdCBj
YW4ndCBiZSBlbmFibGVkIGlmIE1TSS9NU0ktWCBlbmFibGVkLiAqLw0KPiAgICAgIGNtZCB8PSBQ
Q0lfQ09NTUFORF9JTlRYX0RJU0FCTEU7DQo+IH0NCj4gI2VuZGlmDQo+DQo+IFRoZXJlJ3Mgbm8g
bmVlZCBmb3IgdGhlIG91dGVyIGNoZWNrIGlmIHRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3IgTVNJLg0K
T2ssIHNvdW5kcyBnb29kIQ0KVGhhbmsgeW91IGJvdGghIQ0KPg0KPiBUaGFua3MsIFJvZ2VyLg0K


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 11:27:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 11:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220806.382209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEQ8-0004Ss-VY; Wed, 03 Nov 2021 11:27:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220806.382209; Wed, 03 Nov 2021 11:27:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEQ8-0004Sl-SY; Wed, 03 Nov 2021 11:27:08 +0000
Received: by outflank-mailman (input) for mailman id 220806;
 Wed, 03 Nov 2021 11:27:07 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4+yV=PW=citrix.com=roger.pau@srs-us1.protection.inumbo.net>)
 id 1miEQ6-0004Sf-OH
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 11:27:06 +0000
Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id f8b7fab4-3c98-11ec-8568-12813bfff9fa;
 Wed, 03 Nov 2021 11:27:05 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8b7fab4-3c98-11ec-8568-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635938825;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=PcWxRx6lKDW0LWsRnIK8eLYiE3zVMCeVeGyeKQjpmRA=;
  b=cn67Mev+XP9pO0Pz7ZgWrdNPUhHWY1r4BvVFlN3uVeNXAGOeIBtpl/FE
   fxYVRpWWEHAL7zt6r4zb1mfjbW1LiwVyfTYe7kjSmPmfojZOXig4zVBgI
   s04iGKEn31EtEgcksEu9I0kIxmnaLatsPh5BgNXCn+9t7DMFzpGR1NUP6
   k=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: et+79km01JCDOnRvj91Nc+gMPUiFK+ONfo3mWTwKAXTf7do7/wJsoldHVaDogORt+N944ep98Z
 GYWOXeJbvbosOj+51HfrjyhRiVwMFhSNKPDb22idL4qgBxxywlkbshZUvi/FBBlVDx1N2yPSnJ
 vU2AV5XMK24IwLF+N1vxMKX6s++AsPPTw8WNecQmbeQVvPNqpoohvdXoGYWTqrA6H8/a3+j3IA
 w2xK8nB8D6MbjPsngR9cKMcZKoqDgTZz+Fa13fX9xRLXCuqYtm3i0su4pt9G/LgHUfACDPhqCy
 +oRG//PdeV5OeKndlC3gKbXh
X-SBRS: 5.1
X-MesageID: 56993047
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:chGVxqh8vctNexGvlXndygCSX161VBYKZh0ujC45NGQN5FlHY01je
 htvXDiEa/6CYWv3KIokOti38EJUuceAyIRkG1BvpHs0EX4b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cw2oDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1AhKKZFiwvPJfWo/RGdh4COCVVLPVZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2JEfRq6CO
 KL1bxJdfBn5Zht2HWw0FbgjkcemjUXbVGRH/Qf9Sa0fvDGIkV0ZPKLWGPPPZtGPcuBEkU+Zq
 3zu8nzwB1cRM9n34QSC9nWgl+rehxTRUYgZFKC73vNyiVjVzWsWYDUcWEGnu/C/hgi7UshGN
 k0P0iM0qO4580nDZtz8VB2xpDiDpAwRX/JZCeh84waIooLO6gaEAi4fTzhOaPQvrspwTjsvv
 neum97qHjVpvKeidWOG9ryUoDWxPgAYNWYHIyQDSGMt4dPuvYUyhRLnVct4Hei+ididMRb0z
 jORpS4ynYI6i8IRyr679lDKhTGrjpXRRwtz7QLSNkq14wU8aIO7aoiA7VnA8e0GPIufVkOGv
 nUPh46Z9u9mJYqWiCWHTeEJHbeoz/WIKjvRhRhoBZZJ3zaw/3+ue6hA7Tc4I11mWvvoYhewP
 hWV41kIosYOYj36Nsebfr5dFewn/JbJSv/jVMrOVcoVR58rXwus7XlxMBv4M3/WrGAglqQ2O
 JG+eMmqDGoHBakP8AdaV9vxwpdwmHlgmDq7qYTTik3+jOHAPCL9paItaQPWNogEALW4TBI5G
 jq1H++D0F1hXeL3eUE7GqZDfAlRfRDX6X0bwvG7l9JvwCI6RwnN6NeLmNvNnrCJeYwPyI8kG
 VnnCydlJKLX3yGvFOlzQikLhEnTdZh+t2knGicnIEyl3XMuCa72svxCJ8RnI+F9qLw8pRKRc
 xXjU5/eahioYm+fkwnxkLGn9NAyHPhVrVvWV8ZaXNTPV8E5HFGYkjMVVgDu6DMPHkKKWTgW+
 NWdOvfgacNbHWxKVZ+OANr2lg/ZlSVNyYpaAhqTSvEOKRqEzWSfA3Go5hPBC5pXckurK/rz/
 1v+PCr0UsGW/9RuqImV3vvZx2presMndndn86Dgxe/eHQHR/3a5wJ8GV+CNfDvHU3jz9rnkb
 uJQp8wQ+tVc9LqTm4YjQbtt04wk4N7j++1Twgh+RS2ZZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQxmvY48MqLRio/yRw5reGDxlfZkHelCxHIbJpG4o52
 uN96tUO4gmyh0NyYNaLhyxZ7UqWKXkEX/l1v50WGtaz2AEq1ktDcdrXDSqvuMODbNBFM08LJ
 D6IhfWd2+QAlxSaK3dqTCrDx+tQg5gKqStm9l5aKgTbgMfBi982wAZVrWY9QDNKw0gVyOl0I
 GVqaRF4fP3c4zdyicFfdGmwAAUdVgaB80n8xlZVxm3US06kCj7EIGEnYLvf+UkY9yRXfyRB/
 aHew2HgCG64cMb01yo0eEhkt/28EoAhqlycwJiqT5afAp03QTv5mav/N2MHpizuDd41mECa9
 /Jh+/x9aPGjOCMdy0Hh51J2CVjEpMi4GVF/
IronPort-HdrOrdr: A9a23:hHV7davKiDoaxxYgpRYdJTyS7skC7IMji2hC6mlwRA09TyXGra
 +TdaUguSMc1gx9ZJhBo7G90KnpewK6yXdQ2/hqAV7EZniahILIFvAY0WKG+VPd8kLFh4xgPM
 tbAs1D4ZjLfCRHZKXBkXiF+rQbsaC6GcmT7I+0pRcdLnAbV0gj1XYANu/yKDwJeOAsP+teKH
 Pz3Lsim9L2Ek5nEfhTS0N1FdTrlpnurtbLcBQGDxko5E2nii6p0qfzF1y90g0FWz1C7L8++S
 yd+jaJqpmLgrWe8FvxxmXT55NZlJ/IzcZCPtWFjowwJi/3ggilSYx9U/mpvSwzosuo9FE2+e
 O87isIDoBW0Tf8b2u1qRzi103J1ysv0WbrzRuijX7qsaXCNXsHIvsEobgcXgrS6kImst05+r
 lMxXilu51eCg6FtDjh5vDTPisa13ackD4Hq6o+nnZfWYwRZPt6tooE5n5YF58GAWbT9J0nKu
 9zF8vRjcwmP29yV0qp/VWH/ebcHEjaRny9Mw0/U42uondrdUlCvgslLJd1pAZFyHo/I6M0kd
 gsfJ4Y042mdfVmH56VMt1xNvdfOla9Mi4kD1jiVGgPNJt3c04l+KSHq4nc2omRCeg1Jd0J6d
 L8bG8=
X-IronPort-AV: E=Sophos;i="5.87,205,1631592000"; 
   d="scan'208";a="56993047"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=m3ijAPKa88kd/dws4th91RN/T+Zi1H5LS0KRHpnInmHGmRUvmNRaweiJvEPO8NgLhOEs6jz0/YQakzm/wBWVw9MkeC1L9yHTSYIPdsvjo72IwDgBKnKzyVP8j0qrY8JQjTm2FUmx8K5C6AraFPjjeM0pGzd1jQlw4r7l8pBu4DcyLXToin1lcLldobFQpuU/FgipBopIqhkWO6qA9x1SZIuzYxdxq+XCcXOiGKcE37LFhoPF9b2kn/hlgZCcgEZQcw/VgtbMzm1WyJ6qwMIwH1awuegHdaYGz3tmx19nA1N7m9kMbVw9xS4Oon6SnYW4BLPZp4iPu5iChE4Wz4XfFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=e5/rMpp17fCyF7TNdmwANrqFRWQerO9Pqw7bzVFp80E=;
 b=lsZi40epYwea9ofnbUfS0vfjC1x4wjRYyLVSlR52FnEIJiT3XFE5my9EGRl1xZHc7vlljtr0j2xahQyCk0Alq30bBEJ+TByiSlTv10/Utgo6rhDXjabJef/zLs4aVexIKFbjJEUlO/lVevq3TsCuYf/hfCDSj1SRsl6ZDWRpUM0dxwcdtSJnZfgd4I9qZLw28meEcjrHCxjQNmSTRAXdPheGr6VCHp33+8Epjg8v0WcuXccjRZQzrxlmKvhCwJAU1PNCYuGp/VmdS9LJKeZOsAibKhwKzD2wPSA9H5P1tLZ9C4rt7efzCuy2Ja7V/2huXs2QnGskJIWZrzXCl0KcOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=e5/rMpp17fCyF7TNdmwANrqFRWQerO9Pqw7bzVFp80E=;
 b=ndw+UurDftu2/UXmlHWJqbWiceUgSQI4vh0Xw4COJFRrHS0siDqMwg52Lpw3Sw2SlveIBidy92YqEsK07kxhShSRjzx2cyzFHqronlYC+yRiBskOS5Sru4J1kiQ+M7D2XgYNOezdDowafZxskayN2qoCFBTtpXfowt2lYtTjcvI=
Date: Wed, 3 Nov 2021 12:26:55 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "julien@xen.org" <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, Michal Orzel <michal.orzel@arm.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Message-ID: <YYJx/3YpcLRTHThB@Air-de-Roger>
References: <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
 <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
 <4f77a4f2-a66b-465d-5859-7fe71ece8168@suse.com>
 <48506e1b-2dc9-4652-f169-3d44135a4e74@epam.com>
 <7efa4dd7-83b3-daac-cc02-86f80762513b@suse.com>
 <d3908703-3501-892c-55fc-5a171318eeea@epam.com>
 <YYJr75RbSOuvbzGF@Air-de-Roger>
 <9b9bd48d-ab2a-3e3a-5327-d0b8eff5a8ae@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <9b9bd48d-ab2a-3e3a-5327-d0b8eff5a8ae@epam.com>
X-ClientProxiedBy: MR2P264CA0018.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::30) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e8d6600b-b74f-4ad1-ec5c-08d99ebcda57
X-MS-TrafficTypeDiagnostic: DM6PR03MB4057:
X-Microsoft-Antispam-PRVS: <DM6PR03MB40578DFA77F3CD8E71D3D1B88F8C9@DM6PR03MB4057.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: xkwMbgIaRUe74vPlCZ6bUTy4MS8fM2xSvHH1DXRwX9gZwBp6v2hiipICPfJl/2s0hUAq1i0FsHGk+zmEZcHM47Gtbn0FTyJ87c1dxiDtOCfcC3Ykb2lwLq+npwtcKTngQuNNRWafIWlu8/4EBcZlYdLQoDpqVllF8xJD/OLhLv8TPT1+EujjQ7hDlRYotHSRNLbsfA+tDYhko9LFw0Vb4FflfzzsV+0DvPvmE5+fG02GxcxCPtu9sTbrWqgn7g7yDvpjihT8KdO0S4WRHqDEeA6r9bnefYFjweFL4U5SL3+PwYqAOIifQGh/kMsc3vua9SzahYr9TBHR4gnm5u/Fuc0NCRClQY5cmUIi8y84mI9/6qQCfPHwIwhWrAtTjg5MkTU6SyU9sRvwLGLTteutwLzNa4mIZqr7gbVHWHisN7zNOHvkcEQBUjFfRUlvHhkQdESrDmadVc4c0Eejg5LkEh+G8MYEbFe3aIznEFVlghL3pCK11i/WjaA1h6DAaQtREZ/MHHBKiCdrM6gLv5JxZDNSAwj2Ez7NO4udv7+OSBdJzRN3tdsTrpLMrwCm1UzbkNC0uKhtRR+FW9A0Fkspxf0yEp2n47chrc6ObQVpggqvTKKYihtMpMWtmY5TJJTmEW1/UgcMwmOdqMWWFDFxbw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(6496006)(6666004)(7416002)(38100700002)(316002)(2906002)(82960400001)(4326008)(86362001)(85182001)(8676002)(26005)(186003)(6916009)(53546011)(5660300002)(8936002)(9686003)(33716001)(54906003)(66946007)(66476007)(66556008)(956004)(6486002)(508600001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SGdJZWhGRGptZVRVTnhodlZnQnB0VVdtYi8zbUNpLzhtVFNldnoyMDZ0R2ox?=
 =?utf-8?B?M1dDNFhrQkJwMjdSaFVZZCtGSlU3VGhLTHNTVVd0SnVkRHRnTlNSb1FsY1F6?=
 =?utf-8?B?R0NzYVJjUkNaRWlEdlVaUUV5dHZLUnhmNDU5VDloQjFjUnRGdVpjYkcyM2Yw?=
 =?utf-8?B?Q21sRFozUTAxK2toMHdrbmxzdndRdVZSaEJoOXRhTDZmSjA4cDM5VHBzZWVl?=
 =?utf-8?B?b3MvRWlCTGlSalRPSDRWS2Jsb3VlMWJxSWVXc2dFT2pqcWxlOUwzdEN0dkZC?=
 =?utf-8?B?eEdtdjV5Q3pKcjg3MVJUbS8zMytsallDMjlLWWpNc2ZMUncrelBlOElCZlVu?=
 =?utf-8?B?TkRBM0gybU5lSEd4WUhmanh1NUF6QldobjVZMGx3TlM1Zi85WEJLRThsNTlP?=
 =?utf-8?B?UTJOS2RSVXNRSWNHTXJVNlZHK3NWMThsdEI1VE44cGhOcHNVeEE2NkxiQzE4?=
 =?utf-8?B?djhMYnRjRjVKUXl5VmtTNUtQME1jR3FBTlpSeUNDd0ViYWhpYjhVTG5tbks4?=
 =?utf-8?B?WnFud0hBeHFMelprVktMa01KQWdCdkM5M1lmQUZlQmJNUEpIajdpMUFQaGxN?=
 =?utf-8?B?RVR1WVY1SzlTd05hNnd3dXkvaW43L0RlWEd4b0MzOEdwVHRXVGRNODlVbS9i?=
 =?utf-8?B?dkR3Mm5ROUY4UWJTaWZZOFJ3RCtIRFZqQy9adnB1UlJKLzlKWEJtM3FmOTFL?=
 =?utf-8?B?UTh6RDhFTDhzQkVkOUl2SWsvTG1UajhIUzFLczVweWRxSnlrY3hWNmVPcjVG?=
 =?utf-8?B?emNscVM4MWdXdWNBNVFsY2M3cnhWaEpUdllXK2Y1WnZreTVKaGQvM3JXd2Zn?=
 =?utf-8?B?OW45cENvNVJraXJpSUVPa25pTVNMZC9hcFVsL3I4UnFhMmRoMUJmTEwrWDYv?=
 =?utf-8?B?K1cvVHpHcWdJSVJTcUN1QmFhM0hoYlVOSUd2Y0l5cXgzY3FTQWNiQ1diZUg2?=
 =?utf-8?B?bUp0eHY0US9pbG9XQXZUNzBhZE9ZRlRhYTB4K3ROdi9aY1VFZ05SQzFMT3Rr?=
 =?utf-8?B?cURHRDhqUUdrTTY5akNFUkwzQzNZQkhqUVBTSktxSXV5NnFvNmR3N2h2M2Iw?=
 =?utf-8?B?dERlcWlGR2UxNW8wUXpWS3FWRFVCTm1xVnBqa1N6dTFIbjdhZ3FTZzgrcXdm?=
 =?utf-8?B?cEpHRkllSjU0MVhJMDhoTE15TitwWWQxVVFwWE00TmdheTFaK1NoaFlUdWtl?=
 =?utf-8?B?SXdvVFJIeVB1Uy9oUmdRMnF1Qk9UTGZTOXRaZlAxZEpmanZsZzFKTGYyNnFj?=
 =?utf-8?B?VHlaS1pMR0NycnoxUEtyQTBEbkJSbEJmTFlUU2l6NU9xbk9CT2sxOVN2S2FF?=
 =?utf-8?B?blUzRHB0eThjd2laK2l0Tm5BcEdGc3R3VkNMUldIdlgrVmpkVUlvWEhnM2tr?=
 =?utf-8?B?akxML1F2NWExTmVIaGtxWEZvOWJjRmpQV2UvUm83NW41T0UxVlh4aGk1WmN2?=
 =?utf-8?B?T0NsNFFha2dzbDR2RnZlaDVqMmVMdTFxZ2RKQ1JrYnEzK2k1c2tvYjYwRmlU?=
 =?utf-8?B?YzErdUZZL2cxOTR5ZTV1S0JaaHkrSUxMV1Mxcjc4TXRrS3BCQVdtRWN3YTNQ?=
 =?utf-8?B?QldVbnV3cnAzcy82TkdJZ3dyNmZOYS9CMmZST2REODc2am4wemtPdDFiYm5P?=
 =?utf-8?B?emNkcDM3a0JubFVXbmtFeHpNcjNCbGpJWDh6UzUraXNFbTVHN25TMEY5QmVi?=
 =?utf-8?B?S3B4a2FtVk5ib1I4anBGaElqRHJ3QWFBb1hsZERxdWNaMTBlV050VURsNWpS?=
 =?utf-8?B?VDN2eUtLWndMNFJSWnl2Rmc0RkFjWW91N2JSY2cxV09wWkRyWHNuZC90cFZE?=
 =?utf-8?B?MHhSUE1YZENXTS83THVOYllRVXlidHpoSnN6bCtsU3BmaFFwTm01WFVGZUFr?=
 =?utf-8?B?L29JTjdYWG5uUkFycVJNMm4vMkZvNmRzYitUeXJvVERidk54UzlEb1dzbisv?=
 =?utf-8?B?bGkycW5JR3JzNlkvRjVNRFVLc25WS1lqaWZCRWsyVVVtbzlGSG5jeE9HZDJ0?=
 =?utf-8?B?enJEL1VrQVZENHhhS0c5cUN6emhFdXRFK0ozbVhLVXpWUnZ1UnYrUzBVRWl1?=
 =?utf-8?B?Rno2MTBHcktDTCtUZ3ZDQkhFYldQZ0h5UjlsRXpvZzNJdUM3T3FhemdiRFpY?=
 =?utf-8?B?NzJLY2hrc3ZEeFBjU2tKcVdXREtUNkViWlEzNG9RYTIwWk9KcndrUG1kRktk?=
 =?utf-8?Q?LG/tfHSde0IwxqNBGgbqQ/c=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: e8d6600b-b74f-4ad1-ec5c-08d99ebcda57
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 11:27:00.5245
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xogWBfSAzKGDu6zTNJQ93kEqldnyerhRrJ6oirWGD2tAKmrV3BeS/tn66VJ/xwWVihAzxooig8+1CsTV1OkEmA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4057
X-OriginatorOrg: citrix.com

On Wed, Nov 03, 2021 at 11:02:37AM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 03.11.21 13:01, Roger Pau Monné wrote:
> > On Wed, Nov 03, 2021 at 10:36:36AM +0000, Oleksandr Andrushchenko wrote:
> >>
> >> On 03.11.21 12:34, Jan Beulich wrote:
> >>> On 03.11.2021 11:24, Oleksandr Andrushchenko wrote:
> >>>> On 03.11.21 11:49, Jan Beulich wrote:
> >>>>> Aiui you want to prevent the guest from clearing the bit if either
> >>>>> MSI or MSI-X are in use. Symmetrically, when the guest enables MSI
> >>>>> or MSI-X, you will want to force the bit set (which may well be in
> >>>>> a separate, future patch).
> >>>> static uint32_t emulate_cmd_reg(const struct pci_dev *pdev, uint32_t cmd)
> >>>> {
> >>>>        /* TODO: Add proper emulation for all bits of the command register. */
> >>>>
> >>>>        if ( (cmd & PCI_COMMAND_INTX_DISABLE) == 0 )
> >>>>        {
> >>>>            /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X enabled. */
> >>>> #ifdef CONFIG_HAS_PCI_MSI
> >>>>            if ( pdev->vpci->msi->enabled )
> >>>>                cmd |= PCI_COMMAND_INTX_DISABLE;
> >>>> #endif
> >>>>        }
> >>>>
> >>>>        return cmd;
> >>>> }
> >>>>
> >>>> Is this what you mean?
> >>> Something along these lines, yes. I'd omit the outer if() for clarity /
> >>> brevity.
> >> Sure, thank you!
> >> @Roger are you ok with this approach?
> > Sure, I would even do:
> >
> > #ifdef CONFIG_HAS_PCI_MSI
> > if ( !(cmd & PCI_COMMAND_INTX_DISABLE) && pdev->vpci->msi->enabled )
> > {
> >      /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X enabled. */
> >      cmd |= PCI_COMMAND_INTX_DISABLE;
> > }
> > #endif
> >
> > There's no need for the outer check if there's no support for MSI.
> Ok, sounds good!
> Thank you both!!

In fact you could even remove the check for !(cmd &
PCI_COMMAND_INTX_DISABLE) and always set PCI_COMMAND_INTX_DISABLE if
MSI is enabled, which I think is what Jan was pointing to in his
previous reply.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 11:28:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 11:28:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220812.382220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miERI-00051x-9m; Wed, 03 Nov 2021 11:28:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220812.382220; Wed, 03 Nov 2021 11:28:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miERI-00051q-6g; Wed, 03 Nov 2021 11:28:20 +0000
Received: by outflank-mailman (input) for mailman id 220812;
 Wed, 03 Nov 2021 11:28:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miERH-00051g-3k
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 11:28:19 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 0699b40c-a401-4521-8586-38b8ca66ad97;
 Wed, 03 Nov 2021 11:28:18 +0000 (UTC)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2106.outbound.protection.outlook.com [104.47.17.106])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-7-guq2a9yGOrmcpeaoynr92w-1; Wed, 03 Nov 2021 12:28:16 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4384.eurprd04.prod.outlook.com (2603:10a6:803:6f::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 11:28:14 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 11:28:14 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0098.eurprd06.prod.outlook.com (2603:10a6:20b:465::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Wed, 3 Nov 2021 11:28:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0699b40c-a401-4521-8586-38b8ca66ad97
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635938897;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2n2svHNxNDLE63Uar8d1iVm6EzFT9eo+GUhM05xxA3I=;
	b=DESVe6QKbX4DfkbAuEr2x4L7cPNmQYs782+Fd0AtuYWJ5ywM1AM+FHEHf8HAg65wruMIGR
	W4kUXjrYlBljzoLEjcTuoqETmleQWHB2nj5SX9WTh1xCsc2F7E9DeSdEJaEuAzgVlcbfsu
	P0NKXE/+1HdkGigaKqNrrSRWbrF4eAI=
X-MC-Unique: guq2a9yGOrmcpeaoynr92w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nuwVs+GW+ZfJQhoJsjzVEDapq+d8s479Oam4vmBIiPnGrgZqSaH5M/R4vvHORrJdfvf53+dt1eep3031XAFGoCEjhNpIKFX0WlloQUVv92XMhTpxT8tr6cvuDRic/IB9ufWyMn/qqw4BbF+K1i8ZYHbRztYeIY1awo0dEn8XjU5FnyzMafd7SnwF7zI9PksutT3V9+LMa6FBmfa/uClL+GLkiDrk91hYaROhBi5pEiDKNhcy/uvT1SPjIdD510Bobp7Itj8GSA2oY6hwz+Na6kc1rg3q3g0rdS1G3tr0a7V1aeNa1BQG27VDXZD4jHzLkNxiIObul07SXbQsp4RXiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZBxnABk5/5EXAAR1dzC6HeqRbPLljn2VRahWR608SN0=;
 b=kGzvx5p99yLMqXV5WDdDnwVoCZXEB/MWLw8Il4F+K/z+tEUvZ9USnnYP8gp8eJy7AMHazmGOHYm1SRqCOBTNOmw9iYGbnuX1+y/D/cwGe/XBqz27SgHX8z8NhqwGFJrRCqPD6yDlNRY8pdq07oF/fJawy/KgHgFmcqN8G8QFSF/gwFv0C7INiu5y/plP5JXubCDHWXVGJzSVp7f4GfEmOCqF57PK2mKIIUbE17DEpAx18An46dbvvisd8MDjmWZHj4KMqfRoIZcL1GH2/mKObmQk0Q0C9nxN0uTLI09xA44QWmnOKfhQGe6L9onwGzTAi8MuqA0QueOJ4cYOQ6Pyjg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
Date: Wed, 3 Nov 2021 12:28:12 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Luca Fancellu <luca.fancellu@arm.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Ian Jackson <iwj@xenproject.org>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
 <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0098.eurprd06.prod.outlook.com
 (2603:10a6:20b:465::13) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 655322b8-011c-47ec-8ceb-08d99ebd0682
X-MS-TrafficTypeDiagnostic: VI1PR04MB4384:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43842BEFE92364A947F53C53B38C9@VI1PR04MB4384.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	XKj1UzxNewFYqhEkWsCqCfkqJQMPxOMrRl0y77/XvE2UoSy1ELbXkVQ1cL35Bs8Yyu/9dLBC39s1MgbfC+BugFPfGwcYxDulAjiCY23Tl1f5i//gE6Ec4cYWHlpc7ddOzUzyOrN70bpQE+S3kvxTexz1j+RAgfqXND9z9NZPM3vx7LukgmjTAQf8NlOdCaRLDimCzcJU01WXCvNwEGw5I3qOp86VT66PH4h/myz0wxCSODKWGemIQvQYj5Lyj92V7x8uhp9BV3Jgf4hqxWNe0kAkkw88EIfUL7UxvVe+QSPNtdxvXNWmHHkLV2eGrR2+8/N4VKScErrpFdZiIrcznDm1k5yq/RJW+5qvscJIxgPs5K/aFzOqkaeVCq1Ub7k9r3Zl1x8Eq5p2DmqZ8yA2mFgBKGg85Dv0HWad41ZMpuTV6VAGf3HratafZPkEZIh3yr80tz5TipPh8d2eQ6gzOoN3y+HxWU1aA+mpf10V7GmULOPcNjLL4+tp5A/HiJy4NdDQcrakBrquh2xSoPuKCHbB3z8sCq4SjRNNOUYm90xKFmF2GI3UHMvbilZAyWFfYrtkVYlLZHrabMMeRora2ndPm2MTgwi5nicX2iHgshePSFpquZ+jV4PifoKD6dC+33rU2zXZzmqiV6fSkCBsUl9PPxthuYX8bEXaym6TkTK7jJ9PXWNVYp58mP5VBM8Q5HZQvb2vSOXRNsTyVeFiatnSKtEZxM+RB+ST3RK7xFKTLBPpGSc2C4q9sGFMFaus
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(4326008)(83380400001)(5660300002)(38100700002)(186003)(26005)(53546011)(2906002)(8936002)(6916009)(956004)(16576012)(31686004)(66556008)(8676002)(508600001)(36756003)(54906003)(66476007)(66946007)(316002)(6486002)(31696002)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?riFtoSqVWwlYpoIAfM5IUBOfnN0NEuObys6IE2prujZNmui0Lv0SkhOhHBti?=
 =?us-ascii?Q?0q0aMPlWmTqfevZbL0XbLQylBjg5GB6U23ULUmGtGbjIkLfD5MIaBr8c6KaB?=
 =?us-ascii?Q?16B1cir+s6kcvmPFaVMnBWyS5K5JDLTFE1yy/euBS0ez7GQsvA66wEjRmR1A?=
 =?us-ascii?Q?ZD4qbo6U/5W/XAbqNjGizELv/89S+HFWGwR44Sm7dbPOZyPqiB7X6HT15OXg?=
 =?us-ascii?Q?GLyPFEFyHhy8WLLUTMYeXcFZJ1hGtAE3ralVplz47pM+AdA+sZTdBZgCezk4?=
 =?us-ascii?Q?YtUweCu4bpZdGm3yB0VoWGFhzMEkNafM9XvhS8aRdWpMggOtIoMGH476E33B?=
 =?us-ascii?Q?O/L/ww7COJRYwKIpHrFhFT7LVM3GTOmCGu6NE9GBl0pm7SFM42wfVxHxfDm8?=
 =?us-ascii?Q?01zemGq7WMA+UlRY9Mtx6UU0DOrFjS7aON1Jhr6/eEaqPYJPzs+G8LCQ6Aih?=
 =?us-ascii?Q?dX21eQiOj24w+OrDx5vf3J9aysYrI/NH+n20C4gMypziyBf9N1ScVveiMh2V?=
 =?us-ascii?Q?yKusRJnTpN4w74gJ1f/+lvVtChp4OgR/AzSIaXweJTTH/9eVyVi/uPfMDgVW?=
 =?us-ascii?Q?eQdC7ITkd7AQwLzE7GvcQGcnqZlvOvCT2mJtQIjgJ0qQVXaa4Hjqd9P7XS+v?=
 =?us-ascii?Q?pURtwYAIBO71eZxSStXgBbFbwAgpy5pXIUGabiPzxJu0V/056FmA3sAKUsVr?=
 =?us-ascii?Q?Ko9/wiZkD0Ax0ZWMoc62/f8Pcmn693lXTcd8Z3nKlAmAiLU64F643x3jWhme?=
 =?us-ascii?Q?G+z7SYKpcwlw0kaSmYFnTz5mA4pVjoPD8eQNSZovMQ6uyeBqC2NP/PA8cpl7?=
 =?us-ascii?Q?JN0AP5WhTnacQf4QabsVW96+1SkcHx2lasoNurl0P+tf7JTLub6Ap10PLgeQ?=
 =?us-ascii?Q?yslqdUBgv0BskUHN1OJ3njPk2nqjl2Xmp/1n6TPdPeY4FbkSoeA0HNKaVmgm?=
 =?us-ascii?Q?gLtaTlx5S2IcMx8nbTjqVtLh7MvzKIT3JLwxBRczNWgWoJDACFEmxGdV+FIH?=
 =?us-ascii?Q?EFHS7adsaRumxTwwPY+YPkJhfRlLVpyPD2lp2MzTpVRVLfoNVCQGrtXq2opl?=
 =?us-ascii?Q?DA3ItzHzYXfKTeBz3dxAcrAi8pcJ34PYRgjYlP3zA/0sEvtqOJI9mLjrUGeh?=
 =?us-ascii?Q?oySGcnfDUC0UZ0UoPuwwoY3dPvn1I5+yGkrWt/cclaAonzKm2plnMyYS3WgL?=
 =?us-ascii?Q?3B1QWsk12rkErYYCDS7rWGR8rLpMocVXPFgRk7scbFnevKcxbyOdtDdHPybS?=
 =?us-ascii?Q?hNGpwKAu83aj1O1GxFg76UryFMOwW/yg8Iyo4kVzwzfE9U8HXgiVuiZtJxhQ?=
 =?us-ascii?Q?wtFbU56DCemB2MkR4D9LCOjziN+cQjMjUjb+Vm7g5HoyUDHfW+JNv04aBMAy?=
 =?us-ascii?Q?6mJAd0aF9ept4pap+pfk2m1+X0jzWQStjuxzFiJ/w0cL+zXBlyQIumh5AkWi?=
 =?us-ascii?Q?Mt3o4pGztx/pRGTJqSrzUuhnER35SZ/COuClqoCbbzyucoEcMR3u8eWUodlc?=
 =?us-ascii?Q?XdWAGWzepWwfzqQujRARUXjrfaJofij04OY7i6RU0hvQnZDot59Zpd12T5px?=
 =?us-ascii?Q?cRAufWha92wgbo0abX0KSEfx1df3ka/kbcNeGlwLHl82IP4HIyJHdvyTuW2H?=
 =?us-ascii?Q?WVAo5Z896hGh2HjM/u8G/Cw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 655322b8-011c-47ec-8ceb-08d99ebd0682
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 11:28:14.5841
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cJ6QQw2HMR7sPVEbfx1Ubnpa9vW3q9UUeaSOf50meM09pIuJGlCaEDX5d0cjCuxJ2IFQ4ZaqAzeR+TYqvS3auQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4384

On 03.11.2021 11:20, Luca Fancellu wrote:
>=20
>=20
>> On 3 Nov 2021, at 08:20, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 02.11.2021 18:12, Luca Fancellu wrote:
>>>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b88=
2
>>>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>>>> introducing a problem to boot Xen using Grub2 on ARM machine using ED=
K2.
>>>>>
>>>>> The problem comes from the function get_parent_handle(...) that insid=
e
>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>>>>> is NULL, making Xen stop the UEFI boot.
>>>>
>>>> According to my reading the UEFI spec doesn't (explicitly) allow for
>>>> this to be NULL. Could you clarify why this is the case? What other
>>>> information may end up being invalid / absent? Is e.g. read_section()
>>>> safe to use?
>>>
>>> My test on an arm machine running Grub2 on top of EDK2 showed that
>>> when Xen is started, the get_parent_handle(=E2=80=A6) call was failing =
and stopping
>>> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called with =
the
>>> loaded_image->DeviceHandle argument NULL and the call was returning
>>> a EFI_INVALID_PARAMETER.
>>> So the parent handle can=E2=80=99t be requested and the filesystem can=
=E2=80=99t be used,
>>> but any other code that doesn=E2=80=99t use the handle provided by get_=
parent_handle(=E2=80=A6)
>>> can be used without problem like read_section(...).
>>
>> I understand this. My question was for the reason of ->DeviceHandle
>> being NULL. IOW I'm wondering whether we're actually talking about a
>> firmware or GrUB bug, in which case your change is a workaround for
>> that rather than (primarily) a fix for the earlier Xen change.
>=20
> The issue was found only when using EDK2+Grub2, no issue when booting
> directly from EDK2.
> This is a fix for the regression, because without the EFI changes, Grub2 =
was
> booting successfully Xen. Using grub2 to boot Xen on arm is a very common
> solution so not supporting this anymore could lead to lots of people havi=
ng
> issues if they update to Xen 4.16.

I'm not objecting to addressing the issue. But the description needs
to make clear where the origin of the problem lies, and afaict that's
not the earlier Xen change. That one merely uncovered what, according
to your reply, might then be a GrUB bug. Unless, as said earlier, I
merely haven't been able to spot provisions in the spec for the field
in question to be NULL.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 11:32:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 11:32:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220822.382231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEUp-0006RE-Qc; Wed, 03 Nov 2021 11:31:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220822.382231; Wed, 03 Nov 2021 11:31:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEUp-0006R7-NW; Wed, 03 Nov 2021 11:31:59 +0000
Received: by outflank-mailman (input) for mailman id 220822;
 Wed, 03 Nov 2021 11:31:58 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1miEUo-0006R1-O0
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 11:31:58 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 7a5d9de4-ab33-47ea-863c-b3cbb517639f;
 Wed, 03 Nov 2021 11:31:57 +0000 (UTC)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2054.outbound.protection.outlook.com [104.47.10.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-14-Y9iBQBXPNKCGRAIquArklg-1; Wed, 03 Nov 2021 12:31:55 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4846.eurprd04.prod.outlook.com (2603:10a6:803:5b::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Wed, 3 Nov
 2021 11:31:54 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 11:31:54 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR3P281CA0017.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.4 via Frontend Transport; Wed, 3 Nov 2021 11:31:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a5d9de4-ab33-47ea-863c-b3cbb517639f
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635939116;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=YOZ9zix25pIhYs5LgQ2U6vdbvm4ZOLMz/g24XSEVLcY=;
	b=hit1HLLogDpv4DdchweugxqjCwuzzfwHgPONdAhPiOVizpxLwe/+7Auoe5Nggek0cqpU52
	u8HCwJTjGJHjZhX2CHViMTHDZgspmRwWL1Laww7AR8pI5yJ0jQtu0uYl7rxq/dUY+JH/G/
	6aiPefuPApNov42dj2lRfAcwACOUI/s=
X-MC-Unique: Y9iBQBXPNKCGRAIquArklg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JccArfTgvOMIbJ05hU3y2fMkhLxfYhLpt9Zpyvxd9R9CWNkrJ3HFJqzK/NRLRyKnAgknemfJ/M05NTRv1lsmlQpS36d4jcJsG2VxAu8D0q3U5utaIUxAV/PKwC7cm0XgmHA28P/ucNddL6lUB2v8GTJLjdUoOCOEhimv9grtc3P5j+B5BRhxUg5mAqXNwvtfj0ugB4LCaes3lwZHZ9DyVVm5YEQvxhIheuh+bg2lDwVaTBHl4KCUHS93rhiq1mPOZUnocyS+ZFy4Kue2ABrM5enmJR/APA7fAnhGFw22MAfUbfeXtxK+SwsAlK20xxu3GfeNty0XHdIciF/yR69t4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OFaUUKHe/m98WcOyYuwNKjzxWwkhruFNDgisTRKpvxc=;
 b=ZRshuBsaBUtq2ba/Lkj2F2p4kFPgknlyXjXaW/dl6QTxSxuhkrmJv/wx2poChP9xdmJvGrw5oEpQtyZwv+kS4pA+3a9fgrcr/LUOV+TC4QnJJ46ZOV5dsvmYGquGV0MHdCVpdgfcqHPGG5ySIroXa5OYQocieQmHdKXdEI9fIUWhEKQXIvuINbykfGWkiH1joHfx9VVDLEdbar9/e8BDG6nnLDKDM+Mmys1JD1yEgGNCDj/GpI7yFTqXpGcuvUTH0qXQMooDsVPILdWElTIPQFpP7L3iD+L5M1yJCQRNXkrwfsTDeSwhIBYbhMRTkRssSl0o98RcdTxw5w54klGORA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d70c85d3-a93f-79e4-2088-6db06a92f360@suse.com>
Date: Wed, 3 Nov 2021 12:31:51 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: Ping: [PATCH] x86/xstate: reset cached register values on resume
Content-Language: en-US
To: =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org, Ian Jackson <iwj@xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20210818113017.454251-1-marmarek@invisiblethingslab.com>
 <45de5185-b514-8c52-6922-4c587818c698@citrix.com>
 <3125583f-b965-7746-d833-c197857cd7d7@citrix.com>
 <6adf41a6-8f05-8ead-2b12-e922939955da@suse.com>
 <YXFuuwvFKbgkavSB@MacBook-Air-de-Roger.local> <YX/uYIk/iwf3kAXX@mail-itl>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YX/uYIk/iwf3kAXX@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: FR3P281CA0017.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:1d::20) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 76fbd2c6-5254-4a02-ac89-08d99ebd899a
X-MS-TrafficTypeDiagnostic: VI1PR04MB4846:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB484641050C17DEA41D8E9C05B38C9@VI1PR04MB4846.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	6tqhgRh3TxaBra572M24nXi5lCUALkYwfSrFtanoJr6SAkQE9XNzfk8+p9usJMBQqvAHZghnb9MeiKM52NOAsasPARZf2tl9Llpd8SkUb0UZX78/jyHGscSQ3bK9fGmguMSCJ9iYaKR723Cue75SBxBdFm034AUf5bCmX0bH8G1F8I18QVEg+qCLceZn0wU6tUM+KG5YZ6t0xyvr3Wv0Q7+g/RpADswWNev4NyynQiafQ20YSRnjBl2ps61iwwVXu+oHi9SJOzVTuea+P69GZq5UCSV8I8jK/Jsz0QGGArh/x9vDuuz6UDrVSXog4vJxtE++/J9Gu+ICu2EPV8/GaQPpp57b7qqyiqZB6fUAN04D11v1fdSAh/x6DThWZG3WWcRRnLRbtrJRYrT2WA0+uvsTuICenq77Uy6KWULPY7T6u2UKRYxDW3+fkUsYuf8Zr6FlloqUE47qs8lmL41d1FZ+Dm+dT8ho6N9jg4yaLdMPuA1WhqDrzCiVP4KiIq3owi9BKrMBMDLeWNrbTNs3IXH5J5DuEdoMAE/fCDAJfJ2+W9gq1JZx0ipgQUgm7sRvAdhuDv8V5/ppFRkgubvoDmH0Xbts0TpT1LzqKl1un59ahEptL2Tu5voR0LiozLmZF1fuMhYFfdklwyjOTrqdpC4fLwTkGw0G5tZgLv4P/c1+tSJUS+qRaaT3uQK1v7krHiK5rVokFmvKV74TnQSwgJGMflraV8BIacvT5PYbtMngfcMvJ3/BtX5zhUWT63E/
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(66574015)(31696002)(86362001)(38100700002)(6666004)(53546011)(36756003)(31686004)(186003)(66946007)(316002)(6916009)(83380400001)(956004)(66556008)(66476007)(2616005)(8676002)(8936002)(4326008)(5660300002)(2906002)(508600001)(6486002)(54906003)(16576012)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?tvA+viK2EYRaLxrPETYkWqxVv/GqWwKELvwgDGIOdxQMt8YSXW7zYZOqV0xV?=
 =?us-ascii?Q?2TqH9GPQNfmT8p6DFywpcjDQbtEbO/OAXN7lha6BUT6YKIZ8sEO1kE7l2y8J?=
 =?us-ascii?Q?IJ290mHels7pX+MYwCZb7HJtHh8Klc0iQPImC/mPtGIF9aJIb8hhSbCTXowO?=
 =?us-ascii?Q?A2CHPdvw/KsolSNw9cP9zvhazbL2J79mXh27pUsZsr/BTBl2TzQZCdg3C9RW?=
 =?us-ascii?Q?ZovunetyFnkj+5uRgSVkp6YecFFgIuXqXZ2jpjrS/ixZj0qS9un+Aa2XmaYA?=
 =?us-ascii?Q?eO4JB8XrFwNHkSZR2aXNR9zkmOAr9BoVEjTRs5qaIumePPzYMcTjlcLWa6Ot?=
 =?us-ascii?Q?bUaylKq/HcZoGHybOyKkP7JcA9nnNFTuTCgV5rezFX8zdKTPClIznU5/fnPj?=
 =?us-ascii?Q?JexcnvR/ynKh3VMGtyybwFTmpI1O9P2mQzLirTZKanDp4+Y3Zs1FeLXMhwNd?=
 =?us-ascii?Q?ahxcGaAK4PoEQ4lW4aXgIgYMHjB1nq6/b4AcxrEf40WDG9n2/KfXZZVhCtA8?=
 =?us-ascii?Q?iN9rttdqEToX4YdbG0cVrI3QESOi6My5eTZ/RXXX5mNAjfSn9ZTpJ1tLwgGR?=
 =?us-ascii?Q?3cz2rR0Wl5tNDgnnFfm+9hcz2SgIgUo6+YqVN4o1qvOZs7bjM4X+LBCBcn+c?=
 =?us-ascii?Q?RvYMLu1Zfka6t5t3hds+KjBDFtO75b3ToSk7pOpTwrcPikJ3Mx8hVuW+EgGt?=
 =?us-ascii?Q?7oyvGT+GLmK8UmKQh+GqeRpmOvGKXmhy6MIb9E5WToXXfFJkFOade0yYiVyK?=
 =?us-ascii?Q?UN/RV56iMYgQHLaLxFaGq9d+pPCLzfTBD9MoMkFPNOx8asaHWRZ0EqXzVwzO?=
 =?us-ascii?Q?NSPdI6/BR3hNS7FbiJATosSmXCqqeYmzbwgYoa+lxTIRJjpaWsy3ZtxP6oiX?=
 =?us-ascii?Q?R3DGqvBG8smOEt6D7L4a8T7c0nuzPGdIpd/62x8Ie0IRbSGwJN2QXo2ovxsw?=
 =?us-ascii?Q?49C4RGedDvJJrk3dOrN71tPhtchjnnniatpKWqCqAP4mt+8Q0Abtkok02W8D?=
 =?us-ascii?Q?HC6lG3hjvhsZTmOYvVwbZ/OA9vslwj3IcNZyO3q2e/zZE09n80Ox+Sg9wrXG?=
 =?us-ascii?Q?ZX5Cwquq1F28QUW2dAld3aGs+SnT+5iLP+iLIUhy6KxEBlSbk+genIGxYkvz?=
 =?us-ascii?Q?vzz4yqZH3UzRekFiRd5EoBLr4Bzx1g7QUr5PkVPLuQl+vHSehqNWIKbUHfCq?=
 =?us-ascii?Q?DYtT8V/BGuVxAhQuhnR0UQPWQXoFUWjxd84OfjCEhDrjL5sWTtCSrpj7MJuB?=
 =?us-ascii?Q?rgQavcUgpBQc8Ku+JqSUhP2WkqPx9bnDACLYEuTk99NmwMAUb0APWIbV7Yx5?=
 =?us-ascii?Q?F/BDEXE2Ewb3KSAiUoEB9dri5tJYLtdKGYkNmcggkX3Dj0gXSumJijvkCoZi?=
 =?us-ascii?Q?Xj3fvT55mHirAnOOeNeJNueuIeHNu0FSQ9KpYmwrf98tXn4FAHpnD7PXAvsc?=
 =?us-ascii?Q?c/IXfkxegWi5MbQ3E7ycnSDfL5h3HnnqPx14Q7DG9oy73mC5PZXyzpFJfArO?=
 =?us-ascii?Q?DABkoPbWatXpm4JPtD52WhpAgAIRb1zPeHKDXjpMf3JjtGBzSJPj+WMhBPy/?=
 =?us-ascii?Q?8QrY7VPajpJNBVgErAsqFw019m84SjVjyvRpNNcypkhlfAhA87Xtl46mAL7z?=
 =?us-ascii?Q?I/CSEcPyRuV/5iQ643GqVaY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 76fbd2c6-5254-4a02-ac89-08d99ebd899a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 11:31:54.5787
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uCPLXXSwvZ1c2NrT9wZs8Wv/Lf8X2U0wSNFFXka3TB2eBOmo/1WBMbGdXQned2sir5IGIP0NlA148z5xd40PHg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4846

On 01.11.2021 14:40, Marek Marczykowski-G=C3=B3recki wrote:
> On Thu, Oct 21, 2021 at 03:44:27PM +0200, Roger Pau Monn=C3=A9 wrote:
>> On Mon, Oct 18, 2021 at 10:21:28AM +0200, Jan Beulich wrote:
>>> On 24.08.2021 23:11, Andrew Cooper wrote:
>>>> On 18/08/2021 13:44, Andrew Cooper wrote:
>>>>> On 18/08/2021 12:30, Marek Marczykowski-G=C3=B3recki wrote:
>>>>>> set_xcr0() and set_msr_xss() use cached value to avoid setting the
>>>>>> register to the same value over and over. But suspend/resume implici=
tly
>>>>>> reset the registers and since percpu areas are not deallocated on
>>>>>> suspend anymore, the cache gets stale.
>>>>>> Reset the cache on resume, to ensure the next write will really hit =
the
>>>>>> hardware. Choose value 0, as it will never be a legitimate write to
>>>>>> those registers - and so, will force write (and cache update).
>>>>>>
>>>>>> Note the cache is used io get_xcr0() and get_msr_xss() too, but:
>>>>>> - set_xcr0() is called few lines below in xstate_init(), so it will
>>>>>>   update the cache with appropriate value
>>>>>> - get_msr_xss() is not used anywhere - and thus not before any
>>>>>>   set_msr_xss() that will fill the cache
>>>>>>
>>>>>> Fixes: aca2a985a55a "xen: don't free percpu areas during suspend"
>>>>>> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisibleth=
ingslab.com>
>>>>> I'd prefer to do this differently.=C2=A0 As I said in the thread, the=
re are
>>>>> other registers such as MSR_TSC_AUX which fall into the same category=
,
>>>>> and I'd like to make something which works systematically.
>>>>
>>>> Ok - after some searching, I think we have problems with:
>>>>
>>>> cpu/common.c:47:DEFINE_PER_CPU(struct cpuidmasks, cpuidmasks);
>>>> cpu/common.c:120:static DEFINE_PER_CPU(uint64_t, msr_misc_features);
>>>> msr.c:35:DEFINE_PER_CPU(uint32_t, tsc_aux);
>>>> xstate.c:36:static DEFINE_PER_CPU(uint64_t, xcr0);
>>>> xstate.c:79:static DEFINE_PER_CPU(uint64_t, xss);
>>>>
>>>> There is also:
>>>>
>>>> traps.c:100:DEFINE_PER_CPU(uint64_t, efer);
>>>>
>>>> which we *almost* handle correctly, but fail to update the cache on th=
e
>>>> BSP out of S3.
>>>>
>>>>
>>>> For the APIC, I think we have issues with:
>>>>
>>>> irq.c:1083:static DEFINE_PER_CPU(struct pending_eoi,
>>>> pending_eoi[NR_DYNAMIC_VECTORS]);
>>>>
>>>> because we don't defer S3 until all pending EOIs are complete.
>>>
>>> As your planned more extensive rework appears to not have made much
>>> progress yet, may I suggest that we go with Marek's fix for 4.16,
>>> with the one adjustment I suggested alongside giving my R-b?
>>
>> I think that's the only viable solution in order to avoid shipping a
>> broken 4.16 so we should go ahead with it.
>=20
> Do you want me to post v2 with `this_cpu(xss) =3D ~0` change? IIUC that's
> the only thing requested in this patch specifically.

Since Ian in particular prefers to see the full final version on the list,
and since at this point you will need his release ack for the patch to go
in, I think re-sending with the adjustment and tag(s) added would be the
best course of action.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 11:34:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 11:34:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220830.382242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEWy-000777-AY; Wed, 03 Nov 2021 11:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220830.382242; Wed, 03 Nov 2021 11:34:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEWy-000770-7R; Wed, 03 Nov 2021 11:34:12 +0000
Received: by outflank-mailman (input) for mailman id 220830;
 Wed, 03 Nov 2021 11:34:10 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miEWw-00076t-HY
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 11:34:10 +0000
Received: from mx0b-0039f301.pphosted.com (unknown [148.163.137.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id f57ac646-3c99-11ec-8568-12813bfff9fa;
 Wed, 03 Nov 2021 11:34:09 +0000 (UTC)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A3BXRT3011763;
 Wed, 3 Nov 2021 11:34:04 GMT
Received: from eur01-he1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2052.outbound.protection.outlook.com [104.47.0.52])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c3s9xr2vq-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 11:34:03 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB6881.eurprd03.prod.outlook.com (2603:10a6:20b:286::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Wed, 3 Nov
 2021 11:34:00 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 11:34:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f57ac646-3c99-11ec-8568-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aRofI4oO1RNH+PD7YWmqKv3R5H8Of+idVu+xcdf3UVn2hwBFj8Q6giF8zMa9OMKBy2qUHMB86GR9P2l7j6EyTax6ap97YXxddDKmJd7NsVC+2CE/4RLRT5bIe8/+jDD2MscemqLizfjt6akZszybdeqf+BbIw3JM4gauLaM3dsBNpzA4ILgNlJbjmLRUk34y0jlJbINxDhAUI3d5/YUwCBjX+5OkaB0vrx3i22wLFZ1uTGVO4/ARCHey+UgmRmB/2IDpugOksGVLwM0249gH3sn8Z3tqkXcUkAtT+mRBVA1ePAmCgKX7WkME8mL1lackIYk/ZfJnkY0nfWDdaKPPSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZMopPCwnc5NGE3nVcoZUAqU3Y1+TbYJryHyGD3bgTww=;
 b=XNE1Gb1q6yrV03GlBnxRmYoO7cmq5oNojGNKwDqM6CiEH8POBlmqJdi8kBKisDTDZaocw5XyPn++N8GGLmLxzrlfzXVy83QKSKqkjY4inDO2kqyy87edVB0xIFg1LECsUEA6R1f0hfW+wVAlhWn6rKiBpQO194iNfkeT5dc2gS7yj74oHFZq9Jm2MJEmk9M10ewZa1RMkrPLpjOVl8FOFLejxG8AQFOP2pEGnulRAu/eqULW09w5Xwzw6XoZD62NbC3HnP+y7VZDJPpzuTFRu0hZ2jVxhqTGXaWveoj/upxOfit1++DUZlp1LfZlx7N8zX8R7w/RW8bLjT7Sr/cwhA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZMopPCwnc5NGE3nVcoZUAqU3Y1+TbYJryHyGD3bgTww=;
 b=CzlXawWIHU9KUB675+vAF/KwWkZWlrAO+GeKTVulNAzgxOAcZcBA6WQedX3wLDVjUHedgX8TmGvy9x3BnxI0BNckw8r5IoLSpb96ZBnykk+5ryjRMLiiveeI8c9uHenw7Rsouv5VO4kxDpoJSJ9i4p3WyLh7MuZThE7pRpgl/g7HNs+r4h6NU0qaOz9uBi9VBEUPW1x8hjT1ckzGHBBo22W4Q+qil3fnNOQaVourg9gpQpLYkrXK5UI9HigJlWMd6/4wIJbsftEOVlaBcSF1Pe05JZBzZS6x+j1vb/Eu1kXp+8PBJG0gsoyCDDe8PxPh2IRcwuJQ0D+9KFWuB0YSeA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        Michal Orzel <michal.orzel@arm.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for
 guests
Thread-Index: 
 AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUICAATmxAIAABTcAgAABvgCAAAHkAIAAAZSAgAAFc4CAAAmcgIAAAuiAgAAAg4CAAAbWgIAAAG8AgAAGzICAAAH5gA==
Date: Wed, 3 Nov 2021 11:34:00 +0000
Message-ID: <e6e13d25-5685-0575-fae9-8442b1632f61@epam.com>
References: <de320822-a94f-18ad-ccd4-574037903b1c@suse.com>
 <46826bb3-472e-e88b-5421-20fdaf5b49cf@epam.com>
 <a5ff1c9b-3200-18f0-a373-7535980269cb@suse.com>
 <4d4a061f-6437-5d51-84e0-d2139f47eb76@epam.com>
 <4f77a4f2-a66b-465d-5859-7fe71ece8168@suse.com>
 <48506e1b-2dc9-4652-f169-3d44135a4e74@epam.com>
 <7efa4dd7-83b3-daac-cc02-86f80762513b@suse.com>
 <d3908703-3501-892c-55fc-5a171318eeea@epam.com>
 <YYJr75RbSOuvbzGF@Air-de-Roger>
 <9b9bd48d-ab2a-3e3a-5327-d0b8eff5a8ae@epam.com>
 <YYJx/3YpcLRTHThB@Air-de-Roger>
In-Reply-To: <YYJx/3YpcLRTHThB@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 08c1f37c-d60e-4ef3-dd8a-08d99ebdd4ae
x-ms-traffictypediagnostic: AM9PR03MB6881:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB688106A21ACAACAF2D862EFAE78C9@AM9PR03MB6881.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 6Bw8SuhUeFwOtDQwQVnnCbCqZBcEWacFfcusM8yJXEPCOqe9JKLxvwl0wdSaX3hWIy1rLk6tzDGATKQFj7eWN074Iq0Re1RFiSmRlWL4vEsTiFDXyLTLSPBRvX+Xb4PdM0Yl2pvHg2yZ0vf44ozEDEJIoCE7UyFSPcshzHlEJW5cDIXC2bkQF16EyVtNnto6Db5ncjOreSiA/uTGWRruIHnZQl3jKs4odNmzyvZSXKqk2iT3FYEhCewQHpO3KgNddiOC6MVKVIQwySFHdcI/8yns3XLyCL9RH3yea1tq2khDMASHLdpkYyhsxVvXXvmshO5FQ+DVOxQtBFy3yFIxpdEDPACClp7NVJxA0cdwB093JmbWJBFaVbvwvhwSwocDckaJeMAxSXTDp3kAI+hziz1T/qI3gjGiJ05LFhRwocps8GAjm841P+UMPevj2Yfp3iuS0P686Zqc108gSx7oImcuvLvClPgdqAK829LJ1P6vnuFOdWPbrIS2yY0gAScjs2PQPBBlTQo7mS+S7JgQ3Io2yLf/WSBgprrLBpANtJ3dhcMd/oF1FAvwhyMc0l4bnLGgtkdaG4brpazbfUTguMxscKsMld+Y3V0cfQ/FR+74mHpd0+x44PoC1tKTYNL5RUUyeQvkNJ2atMHCQGaMoBotoFAhoYKkHgumcrDAnERNrzbDEI4dy9rF8qgr6drPkOS3EhWnvcO6Zj07671RlhjiXwEVvGLh6TI8PcXewvnKOqt+dPRz7Kh1n9/DpXtK
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(186003)(26005)(8936002)(122000001)(6506007)(8676002)(71200400001)(53546011)(6916009)(36756003)(31696002)(38070700005)(86362001)(31686004)(38100700002)(76116006)(91956017)(6486002)(66476007)(66556008)(64756008)(66446008)(316002)(54906003)(4326008)(508600001)(5660300002)(2906002)(6512007)(66946007)(2616005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?V1VUVnJPZERZa0lueW1nU0k0cENJYmJDRUhtS251VDM3M0JmcVYrMHBSaDBN?=
 =?utf-8?B?TENKRExDRmR5L3FzVi9uTGF6VTcvZ3BlYnZ4VGR5V3J5M1pjQ3JvSHl4RlV0?=
 =?utf-8?B?K1hZQXN6bUYza1E0UThvTjFoMnY3V2hiclYzTzZVMkRWQ0I0azROMjNPQ3dn?=
 =?utf-8?B?UHZLaHFTdTl3NWYwTnJ0dWtGM3RaV2Q2dno4RVNDTUovbDkxdFI0TWJsdG1p?=
 =?utf-8?B?U09Ydkpra0N1Ni9neVh0KytxdXRZaEgwR0JTZFRoSXp1ZWIyUjRLcDlwVVdO?=
 =?utf-8?B?TWdKVHJ3REJ1MXZISFRtVWJqdkwyQzltTGlhY204NHpwUEo1QXBkaHhGU3N3?=
 =?utf-8?B?ckdaZHN6RS9KYzhkUTNMM0J1bWxLeW5MeHc1VjZZVURDZWg5Q05lZ0pDTEpv?=
 =?utf-8?B?NUNsR3RBWk5hYmxRWVNJb3pzUXVzeU8vaWZBRnpGTXVSenNVbTY5YU9qUHQ4?=
 =?utf-8?B?M0hDVUFuQTByWnVDdGErcjRMNzVuYUxJNW9mU05ja3hDQWFKUFE2aHhGVC9S?=
 =?utf-8?B?TThsblM1eUFJOTQ0eXkxNEtrMFlBdTlPRmlpZk53MTB0Y3BKTE0xV2xmVjUr?=
 =?utf-8?B?bC9jVzJtOURYM1VQeDhFUENMQ2VQZGc3K1hDQ2dwTUtnZS9mam0yVWxIdmtj?=
 =?utf-8?B?ZGRPNSt1eVpsYnJlSzZJelRWVVh1WlpaUExjeVpOVXVJekE4ZkUrRVNNdFM4?=
 =?utf-8?B?R2g4MlJob1BjdjZTeVBWZ3M3Q3JSWEZidlE5ZHhQSzYxaWE0Sis1R1JBM0xK?=
 =?utf-8?B?bHBSNkZ1eVg5S3NvM2ZVSnYwdXF3bW9zVGEvWGFZWjRJdDlTQnVKNEFJMjBq?=
 =?utf-8?B?djRXYnlyTWMvWXNpbUFDOTE3eEZkWmN6aE9BdFNsNGJUMGtWQ2gzdHZCSTlv?=
 =?utf-8?B?anZTYjlRNmtvVVB0NkgzN29lQlNsdFR2ME84bWxBQUdYRVNwRkk1NTkxREIz?=
 =?utf-8?B?aWhUOUh2V3cxV3o4SlZwTHNVdzlNMW0wVjZkNTVBVHZmOXVpVTdUZW5EVm5U?=
 =?utf-8?B?T0wzdXlWZ3kzNzQ0ZFRaVWJmU0JydVlnVEliN3Zyd0tkcnJIS0hBU3BoV1ho?=
 =?utf-8?B?N2JBV2FhMFJ5cENHYWhVMnMvdmp6cWxDejRoNEgyNW5jdXB4RjlZbjU5NStH?=
 =?utf-8?B?bitXQ3RKeGVHRU9WM3I4blRtR1FiYzJOVEd4YkxoSDN4akNxaGlxeHQ0eDcy?=
 =?utf-8?B?QU50ZHh4bjZQZzBveEw5dk0yUXpZQmZnVVJmc1ZoUHRKWjNiUS9TNDF3NXlp?=
 =?utf-8?B?T0gweXFXRjM3c0ltMGxUc0pFdkJUdXdLeWNuZldRdUhQYm5LdkVFcXVscWtr?=
 =?utf-8?B?WWVmUm8xVUF3OTlLb2hMUlljMTVLQnJYMDE2bXVrTWJtTHRvS0tyU3BJbUc1?=
 =?utf-8?B?bXdnS3RzbGNqM0VvVGIzaitWamwva1Jpb2R6SWFYcEt2amlRT1Z3MnI1Y24y?=
 =?utf-8?B?OFl2YktUbjREZkg4dGpIUXIxWnRiZVcrVlRIbkV3ekJTSjdtZW05YmFUZkoz?=
 =?utf-8?B?L09veWozbWtpbk9ueFVNa2NUbUZjTkNvdWc2NVBEUWJrTjRQRkE5Z0U2UEh3?=
 =?utf-8?B?b3JVK1RjR2QrUFJJZ0dVK0tXUDJIcm5zRkh2WGFWc0VZZnVhWFI1WUNORmky?=
 =?utf-8?B?UUU4UEJEWFkwdEwwbGVqM1oxTGcybVhkeHVNVjRWUjZDbytGZ1RxT3ExVTdC?=
 =?utf-8?B?ODA3b2VOVTVFQ1QwVFhlekk0emN5WW5iK1pxZk91U0tOVmluaGhDc1lTNHJx?=
 =?utf-8?B?UWY4YlR1ZHZ2aVQ1R2lwU0ZLQ3lqVENjcDZBTzNpNmFiQmNYQVFYOFp2QkZp?=
 =?utf-8?B?RHpuRTVWc2tLTjh6UEl2ZDlPaW02eHhpNVlPbHlwWWhBV3VacGlKSkp5U2Fv?=
 =?utf-8?B?WUwyc2JSY2hNaE5hcGtNcER2NTh4TDF0Z1ZGSFZhU3RXc2E0N3RzM0lrYjla?=
 =?utf-8?B?QWJnYXl3OSsySDFUUloxTFZ2YVY2bFRSMHc3WXJ1Y3drN0NvSGtId3dyOUNH?=
 =?utf-8?B?QXlpaSs1dWsyTDRSRjQ3Ujhkb3A4MjFvTloraHJtSkVSTTlacHZ5NFRYeUJD?=
 =?utf-8?B?V0M4alJDR1VPSk9VNlZlK2NHL0dhMlFqazRwdVJ0NThIb2lRZlRreWFvNnNG?=
 =?utf-8?B?YStWMmFXaks5UGhJMldaMTlIZkVFNGFEM21kT2M3dXJaeTlxM2prUDkxSXQy?=
 =?utf-8?B?b29lTzFGK0JSUXZGajRvM2Fkc1VDaFFkMHVsM1BaZ0FkSUNMbGlMaFVXcGtw?=
 =?utf-8?B?aUp0Y3NUeEkwai9ldjI2N2p1VThpMXZVbXRGc3JvWUlOZU1WYU45MjBpYVQx?=
 =?utf-8?B?RElPbWVXbS9DdnNOcUdORWN3aXV3WjJIN3JobG0rdzkwL1BGUXVYQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <848B986FF58D87479E28B692D8EE3F2A@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 08c1f37c-d60e-4ef3-dd8a-08d99ebdd4ae
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 11:34:00.1423
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MhzfWIm7/EfEuFKSthhI9aswwkWyhPW+fD8y4aDFE5svGqZMOcz5SGk4KAaMAivO3AXqomWqPdNUauA0DpGB9RFvY3T2UMetAIOQ7szvu4I35nR45NiTjtH0OzFFaq2T
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6881
X-Proofpoint-ORIG-GUID: V3zgFp1WCFHzChvvKvBRdDSIdPkRSTWs
X-Proofpoint-GUID: V3zgFp1WCFHzChvvKvBRdDSIdPkRSTWs
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_03,2021-11-03_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0
 priorityscore=1501 mlxscore=0 clxscore=1015 malwarescore=0 bulkscore=0
 spamscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0
 mlxlogscore=926 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111030065

DQoNCk9uIDAzLjExLjIxIDEzOjI2LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQs
IE5vdiAwMywgMjAyMSBhdCAxMTowMjozN0FNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+DQo+PiBPbiAwMy4xMS4yMSAxMzowMSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90
ZToNCj4+PiBPbiBXZWQsIE5vdiAwMywgMjAyMSBhdCAxMDozNjozNkFNICswMDAwLCBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4gT24gMDMuMTEuMjEgMTI6MzQsIEphbiBCZXVs
aWNoIHdyb3RlOg0KPj4+Pj4gT24gMDMuMTEuMjAyMSAxMToyNCwgT2xla3NhbmRyIEFuZHJ1c2hj
aGVua28gd3JvdGU6DQo+Pj4+Pj4gT24gMDMuMTEuMjEgMTE6NDksIEphbiBCZXVsaWNoIHdyb3Rl
Og0KPj4+Pj4+PiBBaXVpIHlvdSB3YW50IHRvIHByZXZlbnQgdGhlIGd1ZXN0IGZyb20gY2xlYXJp
bmcgdGhlIGJpdCBpZiBlaXRoZXINCj4+Pj4+Pj4gTVNJIG9yIE1TSS1YIGFyZSBpbiB1c2UuIFN5
bW1ldHJpY2FsbHksIHdoZW4gdGhlIGd1ZXN0IGVuYWJsZXMgTVNJDQo+Pj4+Pj4+IG9yIE1TSS1Y
LCB5b3Ugd2lsbCB3YW50IHRvIGZvcmNlIHRoZSBiaXQgc2V0ICh3aGljaCBtYXkgd2VsbCBiZSBp
bg0KPj4+Pj4+PiBhIHNlcGFyYXRlLCBmdXR1cmUgcGF0Y2gpLg0KPj4+Pj4+IHN0YXRpYyB1aW50
MzJfdCBlbXVsYXRlX2NtZF9yZWcoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQzMl90
IGNtZCkNCj4+Pj4+PiB7DQo+Pj4+Pj4gICAgIMKgwqDCoCAvKiBUT0RPOiBBZGQgcHJvcGVyIGVt
dWxhdGlvbiBmb3IgYWxsIGJpdHMgb2YgdGhlIGNvbW1hbmQgcmVnaXN0ZXIuICovDQo+Pj4+Pj4N
Cj4+Pj4+PiAgICAgwqDCoMKgIGlmICggKGNtZCAmIFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRSkg
PT0gMCApDQo+Pj4+Pj4gICAgIMKgwqDCoCB7DQo+Pj4+Pj4gICAgIMKgwqDCoMKgwqDCoMKgIC8q
IEd1ZXN0IHdhbnRzIHRvIGVuYWJsZSBJTlR4LiBJdCBjYW4ndCBiZSBlbmFibGVkIGlmIE1TSS9N
U0ktWCBlbmFibGVkLiAqLw0KPj4+Pj4+ICNpZmRlZiBDT05GSUdfSEFTX1BDSV9NU0kNCj4+Pj4+
PiAgICAgwqDCoMKgwqDCoMKgwqAgaWYgKCBwZGV2LT52cGNpLT5tc2ktPmVuYWJsZWQgKQ0KPj4+
Pj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNtZCB8PSBQQ0lfQ09NTUFORF9JTlRYX0RJ
U0FCTEU7DQo+Pj4+Pj4gI2VuZGlmDQo+Pj4+Pj4gICAgIMKgwqDCoCB9DQo+Pj4+Pj4NCj4+Pj4+
PiAgICAgwqDCoMKgIHJldHVybiBjbWQ7DQo+Pj4+Pj4gfQ0KPj4+Pj4+DQo+Pj4+Pj4gSXMgdGhp
cyB3aGF0IHlvdSBtZWFuPw0KPj4+Pj4gU29tZXRoaW5nIGFsb25nIHRoZXNlIGxpbmVzLCB5ZXMu
IEknZCBvbWl0IHRoZSBvdXRlciBpZigpIGZvciBjbGFyaXR5IC8NCj4+Pj4+IGJyZXZpdHkuDQo+
Pj4+IFN1cmUsIHRoYW5rIHlvdSENCj4+Pj4gQFJvZ2VyIGFyZSB5b3Ugb2sgd2l0aCB0aGlzIGFw
cHJvYWNoPw0KPj4+IFN1cmUsIEkgd291bGQgZXZlbiBkbzoNCj4+Pg0KPj4+ICNpZmRlZiBDT05G
SUdfSEFTX1BDSV9NU0kNCj4+PiBpZiAoICEoY21kICYgUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxF
KSAmJiBwZGV2LT52cGNpLT5tc2ktPmVuYWJsZWQgKQ0KPj4+IHsNCj4+PiAgIMKgwqDCoCAvKiBH
dWVzdCB3YW50cyB0byBlbmFibGUgSU5UeC4gSXQgY2FuJ3QgYmUgZW5hYmxlZCBpZiBNU0kvTVNJ
LVggZW5hYmxlZC4gKi8NCj4+PiAgICAgICBjbWQgfD0gUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxF
Ow0KPj4+IH0NCj4+PiAjZW5kaWYNCj4+Pg0KPj4+IFRoZXJlJ3Mgbm8gbmVlZCBmb3IgdGhlIG91
dGVyIGNoZWNrIGlmIHRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3IgTVNJLg0KPj4gT2ssIHNvdW5kcyBn
b29kIQ0KPj4gVGhhbmsgeW91IGJvdGghIQ0KPiBJbiBmYWN0IHlvdSBjb3VsZCBldmVuIHJlbW92
ZSB0aGUgY2hlY2sgZm9yICEoY21kICYNCj4gUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFKSBhbmQg
YWx3YXlzIHNldCBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUgaWYNCj4gTVNJIGlzIGVuYWJsZWQs
IHdoaWNoIEkgdGhpbmsgaXMgd2hhdCBKYW4gd2FzIHBvaW50aW5nIHRvIGluIGhpcw0KPiBwcmV2
aW91cyByZXBseS4NCk9rLCBJIHdpbGwNCj4NCj4gUmVnYXJkcywgUm9nZXIuDQo+DQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 11:35:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 11:35:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220836.382253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEYJ-0007jL-LY; Wed, 03 Nov 2021 11:35:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220836.382253; Wed, 03 Nov 2021 11:35:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEYJ-0007jE-Id; Wed, 03 Nov 2021 11:35:35 +0000
Received: by outflank-mailman (input) for mailman id 220836;
 Wed, 03 Nov 2021 11:35:33 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MX4X=PW=arm.com=michal.orzel@srs-us1.protection.inumbo.net>)
 id 1miEYH-0007j5-It
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 11:35:33 +0000
Received: from foss.arm.com (unknown [217.140.110.172])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id d8322479-a767-48ac-b4e4-ded55c68ab86;
 Wed, 03 Nov 2021 11:35:32 +0000 (UTC)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B4077D6E;
 Wed,  3 Nov 2021 04:35:31 -0700 (PDT)
Received: from [10.57.22.11] (unknown [10.57.22.11])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B167F3F7B4;
 Wed,  3 Nov 2021 04:35:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8322479-a767-48ac-b4e4-ded55c68ab86
Subject: Re: [PATCH v2 00/15] xen: drop hypercall function tables
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>,
 Christopher Clark <christopher.w.clark@gmail.com>
References: <20211101152015.28488-1-jgross@suse.com>
From: Michal Orzel <michal.orzel@arm.com>
Message-ID: <f9f3aed5-46b3-4eb0-0cb4-1303eb42a454@arm.com>
Date: Wed, 3 Nov 2021 12:35:12 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 01.11.2021 16:20, Juergen Gross wrote:
> In order to avoid indirect function calls on the hypercall path as
> much as possible this series is removing the hypercall function tables
> and is replacing the hypercall handler calls via the function array
> by automatically generated call macros.
> 
> Another by-product of generating the call macros is the automatic
> generating of the hypercall handler prototypes from the same data base
> which is used to generate the macros.
> 
> This has the additional advantage of using type safe calls of the
> handlers and to ensure related handler (e.g. PV and HVM ones) share
> the same prototypes.
> 
> A very brief performance test (parallel build of the Xen hypervisor
> in a 6 vcpu guest) showed a very slim improvement (less than 1%) of
> the performance with the patches applied. The test was performed using
> a PV and a PVH guest.
> 
> Changes in V2:
> - new patches 6, 14, 15
> - patch 7: support hypercall priorities for faster code
> - comments addressed

For the ARM part:
Apart from the issue I found and reported in patch 7/15, the build was successful.
I tested the following basics also successfully:
-booting a dom0
-booting domUs
-networking between guest and dom0 using NAT
-stressing hypercall xen_version

so,

Tested-by: Michal Orzel <michal.orzel@arm.com>

Cheers,
Michal


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 11:37:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 11:37:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220846.382264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEZz-0008Lj-0u; Wed, 03 Nov 2021 11:37:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220846.382264; Wed, 03 Nov 2021 11:37:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miEZy-0008Lc-UA; Wed, 03 Nov 2021 11:37:18 +0000
Received: by outflank-mailman (input) for mailman id 220846;
 Wed, 03 Nov 2021 11:37:18 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=neJr=PW=suse.com=jgross@srs-us1.protection.inumbo.net>)
 id 1miEZy-0008LS-3H
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 11:37:18 +0000
Received: from smtp-out1.suse.de (unknown [195.135.220.28])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 6531575c-3c9a-11ec-8568-12813bfff9fa;
 Wed, 03 Nov 2021 11:37:16 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id E3F33218C8;
 Wed,  3 Nov 2021 11:37:15 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9271113DC1;
 Wed,  3 Nov 2021 11:37:15 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id GycgImt0gmHYOAAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 03 Nov 2021 11:37:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6531575c-3c9a-11ec-8568-12813bfff9fa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635939435; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=KFHG0Y+Q9MWogrgrt0kM7aes0CoHqrPN9x7Dnh68/aw=;
	b=a1ftKLMyNi+d9yTXnD0/OBaWKMfW7aNIWAb93VOOzdGTrhM7Dj2Nienr3qHm3iN9bqCb/f
	LagtNVuAvjrgwlrygkI7Tq0V862GeOVmkLOn98hsP9IKSX910giRBYP6pV8NpTEbQ09KD5
	7MPrcExzrFI2ruwaN+U6goLz50kgQxs=
Subject: Re: [PATCH v2 00/15] xen: drop hypercall function tables
To: Michal Orzel <michal.orzel@arm.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>,
 Christopher Clark <christopher.w.clark@gmail.com>
References: <20211101152015.28488-1-jgross@suse.com>
 <f9f3aed5-46b3-4eb0-0cb4-1303eb42a454@arm.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <546114dc-5ef5-ab23-0f9a-ad786f1d7bf1@suse.com>
Date: Wed, 3 Nov 2021 12:37:14 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <f9f3aed5-46b3-4eb0-0cb4-1303eb42a454@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="qCT9l1P2i1csPLi7WBWN7kqp57HujzWAE"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--qCT9l1P2i1csPLi7WBWN7kqp57HujzWAE
Content-Type: multipart/mixed; boundary="u3mGTK0Vx98uPI3iw8LMpETyy7TWFxTQJ";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Michal Orzel <michal.orzel@arm.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>,
 Christopher Clark <christopher.w.clark@gmail.com>
Message-ID: <546114dc-5ef5-ab23-0f9a-ad786f1d7bf1@suse.com>
Subject: Re: [PATCH v2 00/15] xen: drop hypercall function tables
References: <20211101152015.28488-1-jgross@suse.com>
 <f9f3aed5-46b3-4eb0-0cb4-1303eb42a454@arm.com>
In-Reply-To: <f9f3aed5-46b3-4eb0-0cb4-1303eb42a454@arm.com>

--u3mGTK0Vx98uPI3iw8LMpETyy7TWFxTQJ
Content-Type: multipart/mixed;
 boundary="------------263141B50FD6F987B7A391E7"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------263141B50FD6F987B7A391E7
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 03.11.21 12:35, Michal Orzel wrote:
> Hi Juergen,
>=20
> On 01.11.2021 16:20, Juergen Gross wrote:
>> In order to avoid indirect function calls on the hypercall path as
>> much as possible this series is removing the hypercall function tables=

>> and is replacing the hypercall handler calls via the function array
>> by automatically generated call macros.
>>
>> Another by-product of generating the call macros is the automatic
>> generating of the hypercall handler prototypes from the same data base=

>> which is used to generate the macros.
>>
>> This has the additional advantage of using type safe calls of the
>> handlers and to ensure related handler (e.g. PV and HVM ones) share
>> the same prototypes.
>>
>> A very brief performance test (parallel build of the Xen hypervisor
>> in a 6 vcpu guest) showed a very slim improvement (less than 1%) of
>> the performance with the patches applied. The test was performed using=

>> a PV and a PVH guest.
>>
>> Changes in V2:
>> - new patches 6, 14, 15
>> - patch 7: support hypercall priorities for faster code
>> - comments addressed
>=20
> For the ARM part:
> Apart from the issue I found and reported in patch 7/15, the build was =
successful.
> I tested the following basics also successfully:
> -booting a dom0
> -booting domUs
> -networking between guest and dom0 using NAT
> -stressing hypercall xen_version
>=20
> so,
>=20
> Tested-by: Michal Orzel <michal.orzel@arm.com>

Thanks, much appreciated!


Juergen


--------------263141B50FD6F987B7A391E7
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------263141B50FD6F987B7A391E7--

--u3mGTK0Vx98uPI3iw8LMpETyy7TWFxTQJ--

--qCT9l1P2i1csPLi7WBWN7kqp57HujzWAE
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGCdGsFAwAAAAAACgkQsN6d1ii/Ey9M
Awf+NV4oRKBdpWKQmVPRA+I5T9eOvrDNllFFz+aFYGGDCrDm37geyVwSAF3SmyF09x5A0r2Iluth
JeHVc9PZB7rZYm22kQhi1xHLPrb+82vkljX/YORTX5cJylTaOCPJgH4gdFJNp8b33RYN2JjqnWQ0
djONCEurwp53myfaBcMTVlxaD7QoKo5onTZujffiFIwXt8t25UFW8Tz5TInzJUU5Lvvzp/hMyvP9
9z2tFjfEg4jKx0yiubvUx558wvw1/ylFitO08hH91uLDa59LCXc82+uIAyr7sjO29Rwfl2hNIXdS
4dpDG/ZQrhi61SqGGh+T0jFgnz8zsGKY/FBgMv3iGA==
=+/LQ
-----END PGP SIGNATURE-----

--qCT9l1P2i1csPLi7WBWN7kqp57HujzWAE--


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 12:08:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 12:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220856.382275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miF4C-0003BI-NY; Wed, 03 Nov 2021 12:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220856.382275; Wed, 03 Nov 2021 12:08:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miF4C-0003BB-KU; Wed, 03 Nov 2021 12:08:32 +0000
Received: by outflank-mailman (input) for mailman id 220856;
 Wed, 03 Nov 2021 12:08:31 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UC4I=PW=epam.com=prvs=194164c520=oleksandr_andrushchenko@srs-us1.protection.inumbo.net>)
 id 1miF4B-0003B5-A5
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:08:31 +0000
Received: from mx0a-0039f301.pphosted.com (unknown [148.163.133.242])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id c1ca92d6-3c9e-11ec-856a-12813bfff9fa;
 Wed, 03 Nov 2021 12:08:30 +0000 (UTC)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A3BwwWj025499;
 Wed, 3 Nov 2021 12:08:26 GMT
Received: from eur02-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2052.outbound.protection.outlook.com [104.47.6.52])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c3t18g26w-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Nov 2021 12:08:25 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6068.eurprd03.prod.outlook.com (2603:10a6:208:166::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Wed, 3 Nov
 2021 12:08:15 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 12:08:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c1ca92d6-3c9e-11ec-856a-12813bfff9fa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K7muP0Et1914Ws7lidDt500B55p9HBym0edED7aBO/fYU/uPUa4xZhw+tRSeLyo1XbuYgnNbCyNiNpDSZMb9HllA6sUq1G0JgAwThJ56sVz7vZgzBS4YQzJsglbwUjh/lC9M4fgRYO76wzghZVhVhRA+SHlmwGTkRXx2DdIpikeUf8uBFAMT9u6IrMBsx7oOlAfxB1EB71MnKIFXrqMJX684UvAhj9WBMi6FSrPfPskxjVkeMTY/xXbJ89q4Bf/7ZQ2XO9umKKTvOGyY31JZUeQjHO/UQWIzsxch3wWn2wt5Ows7d5+Y/2VTnHsw95JuhZcmJ41pHyjMOvqE8s13bg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=REI/WpvKUKqYAogjMFToRl21uitvTldv8bIf4KCD5U8=;
 b=PwKb6myDpu+6Our4982Eo3KoAk3myBn8/S6mgtgVH9tY81xd2akGzExuRFCZNtn4S5Eh/5Oh3Ia6/X/CGDaqb35hfV9kwyL1pQHX6PsTFh64CmRb55X5l1AhHybb7ac9ndxJ4Cr+tkW3CGQuCtxVlNQ5TOAOn/fVVOtS/ULmb4OSe0fojYp38efzBrnRzhFdajnpjUXDe4ENt6sB57wTPklbAGYVENuK4Bh5VXVPdrQxSbdUzciwP6GgqA5G+piswLA2qdBXpoZkE5RTrD4eszOo2PWmdeH3+DTzXQIytfAaf6S/Tc0OVRBjyK9uTsWvLT+TsqPQjqJ8dK0iYbh23w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=REI/WpvKUKqYAogjMFToRl21uitvTldv8bIf4KCD5U8=;
 b=d75DndeWhbHWO7AcYhHliH4Dgm99YZ6wCSp4WeJ8D907kFJ40ciIRNnynXTUxXUuYpG6K3tczdsOrOQ8DG/jsg6Sul9JILgKhVAP9uasdkFlaVE0hV61TmTerQVQBoJKy2DuiO6ivxobyXUjSlquWAUtfbYHEDfeEbPesW0/khRoc7cAbe3Hfjpe5tWkfPpM1QM1bL9gHvVdnoJ9HWPo4+Q6CN8ea0wZPQV1QiF1HF5B3lcE/+FzQcrBDDcl/T8IEKXkg+kgCjgKDxz9nvTrjIM7iUtpvpko0H4oB3QE8tOwVU/AUpGxBzB7DUNb9noOls8xgtMOHbG3VEV7H+pBIg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
        "iwj@xenproject.org"
	<iwj@xenproject.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "julien@xen.org" <julien@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>
Subject: Re: [PATCH-4.16 v2] xen/arm: fix SBDF calculation for vPCI MMIO
 handlers
Thread-Topic: [PATCH-4.16 v2] xen/arm: fix SBDF calculation for vPCI MMIO
 handlers
Thread-Index: AQHXz9uvpkVSL/P+h0KvYyBzgfugSKvw16AAgADfnQA=
Date: Wed, 3 Nov 2021 12:08:14 +0000
Message-ID: <4559d7c6-7a03-54c0-ca93-9319cc7989d5@epam.com>
References: <20211102112041.551369-1-andr2000@gmail.com>
 <alpine.DEB.2.21.2111021545130.18170@sstabellini-ThinkPad-T480s>
In-Reply-To: <alpine.DEB.2.21.2111021545130.18170@sstabellini-ThinkPad-T480s>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a12ee64e-dc20-47bb-4585-08d99ec29d54
x-ms-traffictypediagnostic: AM0PR03MB6068:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB60683372E062612E57A9FDD0E78C9@AM0PR03MB6068.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5797;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 ZKLWetI+Rf4LuS1cJ9Ao/7QdqyBzGf/Eh9oUNveR0xONUkusKpkdOnMYZ2qRtaIn8Um36153NbKA9u12xUTUmYXPZ36fruo26A3EP5WgeGorZMRShebLbnopa6PjnkRMFQ/W8dmt5qFSaWLOf087IfhvMoSL0oPvlVSIJcw14nAKz4tNByfudrOumyjg3tYKiy8fbqWNu6MZfdeicZcGL3z0wpWSFHDuFGL+fycKygL9woEDkD1VR+vDLRywyDRE0anXp1f8sB/lT4DuxwUUN/gSI5VHJZHP2Jn80zrx8hmYpkrb5EyPEMjN30nT61jddnQHqkG+RTq87ycuX7Mfyk1Ao+NhiFr6gZyrOkveoDdyr20qBH3HhyGQStAK/3n3pc9P05oYPTQQjl4osvoxcbbwfsuOvgryE8uGqjtHfCs+3Srfdec8Ap2V0QqhVW563ZYUvwPReePFC1Wykc88fh2jnpQ+Za697NlRCtUw1fv9MN8933fiPwqJhjD/sqosuUUpg9QS9EHuweTvJcAAP08KhfVmnLGUSSxDGeAPD3kHAnT7ThfERLkOAy3pnK6yAW/VXqWkBe30YwRR7FYOq5qc1erHpTDrj1iwxbusz1MtRayckF2n/1SHtNsBBA5Hl7yRDVKncrZAg5U+I2KFIKFcAJnd9xo+T5MdsxG7ayNkRvVWCLdiUCo4aJ4AzgjuqmIlNsXm+U0x/xV6ekcUA/pMhkostMxzyYwL/B6vy/Vn0h/64EsZKgLbdeuqr03k
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(110136005)(31696002)(186003)(8936002)(54906003)(6506007)(508600001)(2616005)(6512007)(4326008)(86362001)(83380400001)(6486002)(38070700005)(76116006)(66556008)(38100700002)(5660300002)(2906002)(71200400001)(36756003)(316002)(91956017)(26005)(66946007)(31686004)(122000001)(8676002)(53546011)(66446008)(66476007)(64756008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?ZktLVnR2MVp0Wkl0eC9pbk1Od3lNc1MrampsWGwvR0p5OUJoZ0thOGhDSnI2?=
 =?utf-8?B?Wk1vcktpYTQzUDJoTUtVQTBvUndCY21ud1didXJkeUlJeHhlZm1MRU4zNWU4?=
 =?utf-8?B?R3N4VGsyaENsbDMzdDJhWEtvOWhHQTlWTW9hYXRHNk8xQ1U3Z1ZyaE5PZWtJ?=
 =?utf-8?B?SmRiNElkb0pzWE5Rd1hCYkt5aFNDV2dwS2g5SUtJUmdiNUlhUHZiSTNMOXVN?=
 =?utf-8?B?cXhZdHFsc2M4eW11dGdvTkRKVWc1aXM4UEgrbEpveHdtb1NKbDBDNmhWT1lu?=
 =?utf-8?B?UkY5elc0aWhNYmJINklLKzVucCt5aHU0c1JUNGhqYm5rYVBZU1FpUksrNnBO?=
 =?utf-8?B?T1ZKTmF3cXVPamlZQkdGSWNLME9ld3lGYzgybEFCS3JxZTl6SXBXeklrN2hT?=
 =?utf-8?B?aDhYb1IwV1hKQTZQbUJRWGV0RXgrWmVZNnhJQ0ROU0F0bENOUWFLZjYwRk4z?=
 =?utf-8?B?aGVOeU9SSHhLdjJZOWhhMk1VU2J0cG45eTlUZFdDMytTSlFib2lvOXAvSEJH?=
 =?utf-8?B?Mm1DUVdUbDkxcjhZZ2YybjFxaVlpeStZTTBaSFRYZmUwQThUczFPVE9lWUxi?=
 =?utf-8?B?RloyVlhRWGJuWmhDQnEwbk4xOWgzL0sxRUk5b01Xc0VqYkdaNG9FTWR0YU1C?=
 =?utf-8?B?aktrM0tDTGJzN1VOelM0NXJYbVNEcVcxcGZZTDArV3BWelBHd0hzZVQ5VEI5?=
 =?utf-8?B?cHZqNzVEMmZTRXE1MDdjbG51YlQ2SURoNEFObjl1ek52RlhZbjBGMENYeldn?=
 =?utf-8?B?RmxhWC83RlkxKzNjcktiNVprc3pURlUxYkIxbit5bzNlQWlnMlFUUE1IeDgz?=
 =?utf-8?B?M1pxRHljV1ZqSnhaME1nak50bEhiQlZRaHJZM3VISHNpOGNlaU51Myt2MUtW?=
 =?utf-8?B?TWw0Wm1qbzRRRGNYTjl3T2REMmNkUUg5T2FpVWN6azZ0cy9MQm12TkMxMlI0?=
 =?utf-8?B?ZFpTOFpkUzRhSzl4bndFakVVditReHRWU1RCRUlZZStQN2ovMThpaGoyYU5k?=
 =?utf-8?B?aWNyTUFkSmtiZzdWRmlXK0themlDRGFZbW01NkZiRjRDaFBYZlhjZllyNXhF?=
 =?utf-8?B?YlE1K2Q2aE1hSVhwNUdwQTZNVzBVSkdoc01IZ1B0aTlUZGxHTk1PU3k4c3FZ?=
 =?utf-8?B?aGRiQkFreFFWZmR6RjhaSlhqaDdVU295ejFWTXNhdXFLVE05YkZNN0xwVENz?=
 =?utf-8?B?MTRHcmhBR1pYUmNER1BlajMxRVpDRkVDSU56T0xtZ0dFRCthYmRsYU8wQ1oz?=
 =?utf-8?B?andYamlYN3dtRE9BRVh0N1FtOC9CZjBOekRFZlo0aDBzRk5FOVA4UGRuYjc0?=
 =?utf-8?B?MHNNRHJzZWY3a1MrcHovME1QbGUxbzBYNCtaMTNyZ1NlU0J1YmFSZURsd1Z0?=
 =?utf-8?B?VEJ6NG1adGcxcExvMWQyWWEwL1IwOFdTeUtSREY3a29uQVBNWVhaSnAzeWhW?=
 =?utf-8?B?UWtaanY5bnpFa1pzVGhWVStPOTVWdXNRMkp4T3JDZGVrdjdpZ1pyRFp2eTQz?=
 =?utf-8?B?SWhvNG81b1RuNC9lU2lwWWNIY2tmbnBkQTFrMU1FUDNIZ21mMDFQS1FxMDRy?=
 =?utf-8?B?WW9aV2RQdEc1SXJYVDNTeHl6WlF5SmplWHY1allRSnUwTDBWcEI5S2JaaWFv?=
 =?utf-8?B?YndETU8zYlFjSlRuVUY5T1FCNDlVNktTTFg4cU5ibThNMzdUQlhLTTJkenNO?=
 =?utf-8?B?cHJXZmY2U3pJbzl5bEVrK3FNR1lzdGI5OVlRK0p0WVNQSU1mNmZnaTlnZ3d1?=
 =?utf-8?B?Q0lLMjZlaDE1UWptaVgwNzVhNzgzcHpQaklVa2RTa2NYUHN5ZlY0SytodE8z?=
 =?utf-8?B?bmpVajRJTG0rUDAwbTRwVkFNMVlqUjF3ZHF5VTZrTks5UGg3amhNTW9MTzBJ?=
 =?utf-8?B?alZUNVlSU1MwLzB6UGNTRXhWWVl0dXNCci9wbnloSkFrejFlc2FvZjNHUUxl?=
 =?utf-8?B?NkloRG9aOTBDdjdaNjNxTmF0WXlSc2dZOVdzL2k1RktmV3RGdTh3S2hPUDAv?=
 =?utf-8?B?WVFVL2wvNlpoL01FS3pYZ3pEdUJZNzhGR1BNZi93UlgrSmN3dS9qSEVHaGFC?=
 =?utf-8?B?c1VLNWlOZ1hJeU5DY212a2dEM1UvOUl3ei9XK3dpVmE0TUZpOEpXQUQ4U1pW?=
 =?utf-8?B?ck9ZSjY1WmpmNHZpc2lpVDdWM3I1TkxGc3I5UStJN3ZrOWJZZElDMXF0a05Y?=
 =?utf-8?B?VXEzemxpa2RveWxucXV2QnBQRlNZVS9GbERKb2hXTlRzcER2ZXhYVm81aW5t?=
 =?utf-8?B?ajRZOGNLRnFMUEJmUUpYb3oyN0JWbmZVM1daaU45UTRwTThXb3dHTFBwTm1j?=
 =?utf-8?B?YXRRWkpQUFB0eXgyenNxZStRcmVhajFUQUF1ZWVmK0duRVdPRVJCZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <577EE643E46B5A40916655B0FE9ADC19@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a12ee64e-dc20-47bb-4585-08d99ec29d54
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2021 12:08:14.8751
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: U37lTXXWEarzLtYUJddE1sU5DfAUcwzk30dlivJJSxk/5SNwmqDZXCmIdV0pUOHz/+8xolGJb8gYe4haRNtnFHyJDr+uBIh2M7Yjlpl6owkift/LJqprztkV0pmHJkVk
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6068
X-Proofpoint-ORIG-GUID: xNYd0T47cNiD9TdzmF6AJTcwfpV3TdX4
X-Proofpoint-GUID: xNYd0T47cNiD9TdzmF6AJTcwfpV3TdX4
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-03_03,2021-11-03_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0
 suspectscore=0 mlxlogscore=999 priorityscore=1501 lowpriorityscore=0
 mlxscore=0 bulkscore=0 adultscore=0 malwarescore=0 spamscore=0
 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111030070

DQoNCk9uIDAzLjExLjIxIDAwOjQ3LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+IE9uIFR1
ZSwgMiBOb3YgMjAyMSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBP
bGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+
DQo+Pg0KPj4gV2hpbGUgaW4gdlBDSSBNTUlPIHRyYXAgaGFuZGxlcnMgZm9yIHRoZSBndWVzdCBQ
Q0kgaG9zdCBicmlkZ2UgaXQgaXMgbm90DQo+PiBlbm91Z2ggZm9yIFNCREYgdHJhbnNsYXRpb24g
dG8gc2ltcGx5IGNhbGwgVlBDSV9FQ0FNX0JERihpbmZvLT5ncGEpIGFzDQo+PiB0aGUgYmFzZSBh
ZGRyZXNzIG1heSBub3QgYmUgYWxpZ25lZCBpbiB0aGUgd2F5IHRoYXQgdGhlIHRyYW5zbGF0aW9u
DQo+PiBhbHdheXMgd29yay4gSWYgbm90IGFkanVzdGVkIHdpdGggcmVzcGVjdCB0byB0aGUgYmFz
ZSBhZGRyZXNzIGl0IG1heSBub3QgYmUNCj4+IGFibGUgdG8gcHJvcGVybHkgY29udmVydCBTQkRG
Lg0KPj4gRml4IHRoaXMgYnkgYWRqdXN0aW5nIHRoZSBncGEgd2l0aCByZXNwZWN0IHRvIHRoZSBo
b3N0IGJyaWRnZSBiYXNlIGFkZHJlc3MNCj4+IGluIGEgd2F5IGFzIGl0IGlzIGRvbmUgZm9yIHg4
Ni4NCj4+DQo+PiBQbGVhc2Ugbm90ZSwgdGhhdCB0aGlzIGNoYW5nZSBpcyBub3Qgc3RyaWN0bHkg
cmVxdWlyZWQgZ2l2ZW4gdGhlIGN1cnJlbnQNCj4+IHZhbHVlIG9mIEdVRVNUX1ZQQ0lfRUNBTV9C
QVNFIHdoaWNoIGhhcyBiaXRzIDAgdG8gMjcgY2xlYXIsIGJ1dCBjb3VsZCBjYXVzZQ0KPj4gaXNz
dWVzIGlmIHN1Y2ggdmFsdWUgaXMgY2hhbmdlZCwgb3Igd2hlbiBoYW5kbGVycyBmb3IgZG9tMCBF
Q0FNDQo+PiByZWdpb25zIGFyZSBhZGRlZCBhcyB0aG9zZSB3aWxsIGJlIG1hcHBlZCBvdmVyIGV4
aXN0aW5nIGhhcmR3YXJlDQo+PiByZWdpb25zIHRoYXQgY291bGQgdXNlIG5vbi1hbGlnbmVkIGJh
c2UgYWRkcmVzc2VzLg0KPj4NCj4+IEZpeGVzOiBkNTkxNjhkYzA1YTUgKCJ4ZW4vYXJtOiBFbmFi
bGUgdGhlIGV4aXN0aW5nIHg4NiB2aXJ0dWFsIFBDSSBzdXBwb3J0IGZvciBBUk0iKQ0KPj4NCj4+
IFNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVz
aGNoZW5rb0BlcGFtLmNvbT4NCj4gQWNrZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJl
bGxpbmlAa2VybmVsLm9yZz4NCj4NCj4gQWxzbywgSWFuIGFscmVhZHkgZ2F2ZSBoaXMgcmVsZWFz
ZS1hY2suDQpUaGFuayB5b3UsDQpEbyBJIG5lZWQgdG8gcmVzZW5kIHRoZSBwYXRjaCB3aXRoIEFj
a3M/IE9yIGhvcGVmdWxseSB0aG9zZSBjYW4gYmUgYXBwbGllZA0Kb24gY29tbWl0Pw0KPg0KPg0K
Pj4gLS0tDQo+PiBTaW5jZSB2MToNCj4+ICAgLSB1cGRhdGVkIGNvbW1pdCBtZXNzYWdlIChSb2dl
cikNCj4+DQo+PiBUaGlzIHBhdGNoIGFpbXMgZm9yIDQuMTYgcmVsZWFzZS4NCj4+IEJlbmVmaXRz
Og0KPj4gRml4IHBvdGVudGlhbCBidWcgYW5kIGNsZWFyIHRoZSB3YXkgZm9yIGZ1cnRoZXIgUENJ
IHBhc3N0aHJvdWdoDQo+PiBkZXZlbG9wbWVudC4NCj4+IFJpc2tzOg0KPj4gTm9uZSBhcyB0aGUg
Y2hhbmdlIGRvZXNuJ3QgY2hhbmdlIHRoZSBiZWhhdmlvdXIgb2YgdGhlIGN1cnJlbnQgY29kZSwN
Cj4+IGJ1dCBicmluZ3MgY2xhcml0eSBpbnRvIFNCREYgY2FsY3VsYXRpb24uDQo+PiAtLS0NCj4+
ICAgeGVuL2FyY2gvYXJtL3ZwY2kuYyB8IDQgKystLQ0KPj4gICAxIGZpbGUgY2hhbmdlZCwgMiBp
bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJj
aC9hcm0vdnBjaS5jIGIveGVuL2FyY2gvYXJtL3ZwY2kuYw0KPj4gaW5kZXggOGY0MGEwZGVjNmQy
Li4yM2Y0NTM4NmY0YjMgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdnBjaS5jDQo+PiAr
KysgYi94ZW4vYXJjaC9hcm0vdnBjaS5jDQo+PiBAQCAtMjQsNyArMjQsNyBAQCBzdGF0aWMgaW50
IHZwY2lfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCj4+ICAg
ICAgIHVuc2lnbmVkIGxvbmcgZGF0YTsNCj4+ICAgDQo+PiAgICAgICAvKiBXZSBpZ25vcmUgc2Vn
bWVudCBwYXJ0IGFuZCBhbHdheXMgaGFuZGxlIHNlZ21lbnQgMCAqLw0KPj4gLSAgICBzYmRmLnNi
ZGYgPSBWUENJX0VDQU1fQkRGKGluZm8tPmdwYSk7DQo+PiArICAgIHNiZGYuc2JkZiA9IFZQQ0lf
RUNBTV9CREYoaW5mby0+Z3BhIC0gR1VFU1RfVlBDSV9FQ0FNX0JBU0UpOw0KPj4gICANCj4+ICAg
ICAgIGlmICggdnBjaV9lY2FtX3JlYWQoc2JkZiwgRUNBTV9SRUdfT0ZGU0VUKGluZm8tPmdwYSks
DQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIDFVIDw8IGluZm8tPmRhYnQuc2l6ZSwgJmRh
dGEpICkNCj4+IEBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBpbnQgdnBjaV9tbWlvX3dyaXRlKHN0
cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCj4+ICAgICAgIHBjaV9zYmRmX3Qgc2Jk
ZjsNCj4+ICAgDQo+PiAgICAgICAvKiBXZSBpZ25vcmUgc2VnbWVudCBwYXJ0IGFuZCBhbHdheXMg
aGFuZGxlIHNlZ21lbnQgMCAqLw0KPj4gLSAgICBzYmRmLnNiZGYgPSBWUENJX0VDQU1fQkRGKGlu
Zm8tPmdwYSk7DQo+PiArICAgIHNiZGYuc2JkZiA9IFZQQ0lfRUNBTV9CREYoaW5mby0+Z3BhIC0g
R1VFU1RfVlBDSV9FQ0FNX0JBU0UpOw0KPj4gICANCj4+ICAgICAgIHJldHVybiB2cGNpX2VjYW1f
d3JpdGUoc2JkZiwgRUNBTV9SRUdfT0ZGU0VUKGluZm8tPmdwYSksDQo+PiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDFVIDw8IGluZm8tPmRhYnQuc2l6ZSwgcik7DQo+PiAtLSANCj4+IDIu
MjUuMQ0KPj4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 12:47:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 12:47:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220866.382286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miFfB-0007A5-Ny; Wed, 03 Nov 2021 12:46:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220866.382286; Wed, 03 Nov 2021 12:46:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miFfB-00079y-L0; Wed, 03 Nov 2021 12:46:45 +0000
Received: by outflank-mailman (input) for mailman id 220866;
 Wed, 03 Nov 2021 12:46:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miFfA-00079s-9Z
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:46:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miFfA-0000Dx-4t
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:46:44 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miFfA-0004kl-3l
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:46:44 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>) id 1miFf7-0004FT-R7
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:46:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Subject:To:Date:Message-ID:
	Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=bNIUA9dwKv+xMM0ZEJqg8KAT93Z7eod3e2jfVLTn/2o=; b=YSDMh/n8O3+Zo27T0NBgqxaPWZ
	thaAtUPWktIFeQYPbmfiwDQDR1HxlbrCcXc2CbDB4PwdE5QnjF13EnloJoa7vCYPZ63ET9vaC5sto
	V14ZvqYZ61mCKAFao3tAGQ/XkZBeim9hPSmjzxd5ud9EvfXBC2g8zbRqVOk/EU7ePYD0=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24962.33969.4127.546561@mariner.uk.xensource.com>
Date: Wed, 3 Nov 2021 12:46:41 +0000
To: xen-devel@lists.xenproject.org
Subject: [OSSTEST PATCH] starvation: Only count "pass" and "fail" as done jobs

Release implications: I have eyeballed this again and the effect is to
treat some things as not starved as described.  This may make some
additional tests run but only in a good way.  So, formally:
Release-Acked-by: Ian Jackson <iwj@xenproject.org>

>From 4a62c669ba9d7635caeac02b0a925bb05199f72a Mon Sep 17 00:00:00 2001
From: Ian Jackson <iwj@xenproject.org>
Subject: [OSSTEST PATCH] starvation: Only count "pass" and "fail" as done jobs
Date: Tue, 12 Oct 2021 18:25:59 +0100

The main effect is to treat "broken" and "blocked" jobs as not part of
the flight for starvation calculations.

This is correct for commissioning flights and OK for other flights.

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 Osstest/Executive.pm        | 3 ++-
 ts-hosts-allocate-Executive | 5 ++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm
index d95d848dc..9d7c71369 100644
--- a/Osstest/Executive.pm
+++ b/Osstest/Executive.pm
@@ -1148,7 +1148,8 @@ END
 #        to allow for slow jobs, compared to other jobs
 #    W   number of jobs waiting - strictly, jobs in states
 #          preparing queued running
-#    D   number of jobs done - strictly, other states
+#    D   number of jobs done - strictly, jobs in states
+#          pass fail
 #  tuning parameters:
 #    Xt  X when D=9 W=1, ie cancel one job out of ten
 #    Xh  X when D=1 W=1, ie cancel one job out of two
diff --git a/ts-hosts-allocate-Executive b/ts-hosts-allocate-Executive
index 4dfcd0cd1..19047d49e 100755
--- a/ts-hosts-allocate-Executive
+++ b/ts-hosts-allocate-Executive
@@ -846,11 +846,14 @@ sub starving ($$$) {
 	    # is indistinguishable from a flight which is at the head
 	    # of the queue for a small set of resources.
 	    return (0, "job $j status $st, don't give up just yet");
-	} else {
+	} elsif ($st eq 'pass' ||
+		 $st eq 'fail') {
 	    $d++;
 	    return (0, "job $j status $st but no step finished time!")
 		unless defined $fin;
 	    $maxfin = $fin if $fin > $maxfin;
+	} else {
+	    # disregard - neither W or D
 	}
     }
     # we quit if the total time from the start of the flight
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 12:48:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 12:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220873.382297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miFgv-0007jr-2o; Wed, 03 Nov 2021 12:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220873.382297; Wed, 03 Nov 2021 12:48:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miFgu-0007jk-WB; Wed, 03 Nov 2021 12:48:32 +0000
Received: by outflank-mailman (input) for mailman id 220873;
 Wed, 03 Nov 2021 12:48:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miFgt-0007jc-18
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:48:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miFgt-0000Fg-0R
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:48:31 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miFgs-0004qw-Vq
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:48:30 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miFgp-0004Fn-AN; Wed, 03 Nov 2021 12:48:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=DKrZRkgIcN+WO5szkq5fF7dE3zj4TJ69/V8dI7cyLng=; b=MQJJt9bq0/iYt05YfKi2zPLOQh
	spubKzMOba4iONrd1S0AsIlb13vvBzQwEBAm0RGia7pLTaIoNWFpVF+9u9AMQ4toUq0jRRZ4rv9qo
	j5zQmOap3CoMW5csR69Pexnrgnqs3pmIqXPAH3+z6WClbrvnN9dXgjQlXuML7pleVGMk=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24962.34074.895482.391944@mariner.uk.xensource.com>
Date: Wed, 3 Nov 2021 12:48:26 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [xen-unstable test] 165973: regressions - FAIL
In-Reply-To: <356da0d1-4e13-5122-6fb1-0e1ed01a675d@suse.com>
References: <osstest-165973-mainreport@xen.org>
	<356da0d1-4e13-5122-6fb1-0e1ed01a675d@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [xen-unstable test] 165973: regressions - FAIL"):
> On 02.11.2021 04:07, osstest service owner wrote:
> > flight 165973 xen-unstable real [real]
> > flight 165977 xen-unstable real-retest [real]
> > http://logs.test-lab.xenproject.org/osstest/logs/165973/
> > http://logs.test-lab.xenproject.org/osstest/logs/165977/
> > 
> > Regressions :-(
> > 
> > Tests which did not succeed and are blocking,
> > including tests which could not be run:
> >  test-amd64-amd64-examine      4 memdisk-try-append       fail REGR. vs. 165966
> 
> Ian - another force push may be on order here, as this again ended
> up running on one of the albanas?

I have a series to make this work better in general, which I have just
poshed to osstest pretest.  In the meantime the next flight picked a
different host anyway.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 12:54:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 12:54:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220881.382307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miFn2-0000it-PJ; Wed, 03 Nov 2021 12:54:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220881.382307; Wed, 03 Nov 2021 12:54:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miFn2-0000im-MH; Wed, 03 Nov 2021 12:54:52 +0000
Received: by outflank-mailman (input) for mailman id 220881;
 Wed, 03 Nov 2021 12:54:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miFn1-0000ig-O2
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:54:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miFn1-0000Lm-Lh
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:54:51 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miFn1-00055J-Kd
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:54:51 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miFmx-0004IX-Te; Wed, 03 Nov 2021 12:54:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=WtHrw471XKcGW69vtl4eEO8Wmm7xXLKTzs25Bmxnw0g=; b=2YRa90V0ggfYqwxelafNapnrdB
	EAkH28PxFUbEQHkPAo2dZKMDSwwvQNnuziNtIH8hLj3rbbaC++uFsOkMMgyOAs7aYRkLSa07TXChg
	aZkqBVMfkN1UPIweUY9+PukFQYuGuTyFIzmSOUBzwaA0ONseUxfG+EuO+KmKgkc38Gas=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24962.34455.398862.552200@mariner.uk.xensource.com>
Date: Wed, 3 Nov 2021 12:54:47 +0000
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org,
    Community Manager <community.manager@xenproject.org>,
    Samuel Thibault <samuel.thibault@ens-lyon.org>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 3/3] tools: disable building qemu-trad per default
In-Reply-To: <20210910055518.562-4-jgross@suse.com>
References: <20210910055518.562-1-jgross@suse.com>
	<20210910055518.562-4-jgross@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Juergen Gross writes ("[PATCH v3 3/3] tools: disable building qemu-trad per default"):
> Using qemu-traditional as device model is deprecated for some time now.
> 
> So change the default for building it to "disable". This will affect
> ioemu-stubdom, too, as there is a direct dependency between the two.
> 
> Today it is possible to use a PVH/HVM Linux-based stubdom as device
> model. Additionally using ioemu-stubdom isn't really helping for
> security, as it requires to run a very old and potentially buggy qemu
> version in a PV domain. This is adding probably more security problems
> than it is removing by using a stubdom.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
> Acked-by: Ian Jackson <iwj@xenproject.org>

Now that the relevant osstest patches are in and stable, I revisited
this.  The downside risk to the release is very modest.  It might
cause some temporary test breakage but is very easily reverted.

The upside is that this will accelerate the total removal of qemu-trad
by about one release cycle.  That is highly desirable.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

And pushed to staging.

Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 12:57:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 12:57:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220889.382323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miFpP-0001P7-7L; Wed, 03 Nov 2021 12:57:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220889.382323; Wed, 03 Nov 2021 12:57:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miFpP-0001P0-3u; Wed, 03 Nov 2021 12:57:19 +0000
Received: by outflank-mailman (input) for mailman id 220889;
 Wed, 03 Nov 2021 12:57:18 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QXy+=PW=citrix.com=Andrew.Cooper3@srs-us1.protection.inumbo.net>)
 id 1miFpO-0001Ou-6t
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 12:57:18 +0000
Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id d86d5e29-2550-426d-840b-4e28c890a4cb;
 Wed, 03 Nov 2021 12:57:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d86d5e29-2550-426d-840b-4e28c890a4cb
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635944236;
  h=subject:to:cc:references:from:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=tHBYuh7t2F4E+jyZHh2FingL0z/K6T02qyeDunMTkCg=;
  b=P+9NtEY4qVVGb5P5XetR06gTlK7BoAtWUTzehEIVqWR+ubG50YPuT9aV
   a865HqW66XJkLKAxnI8hP8i74dx+945l8/LPGAVSoSKCvLs5KfbyjAxvT
   lMHu8ajI92SOixAckfdXlSj0WKNX6JvjLkda6lwJz8pJ9he5DWe972qan
   4=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: ym9en7AL96q1/tlI9Pes8pc+92zDTQATcF5cxVpqo/oDVfx+ZDPuTWGsNoHFLfyAqUxTdOEYvc
 /5XRfX+styWUWaKV/fr641IqpjZYBFPv3/xn1cfg4Inn0CvJ9gjspjMdIo+ZIPUq0YM2INYptb
 HU/aYlo3G6knB8G3XF7BW+thYOeqGOK0uvEJe5h6OvAI1k0D9qxhw4aJ7BiovKdpXLwY94pjZc
 D8vbgnpwgI4CKQXeGVJ9CP1yS3WVL3m24gpEV96NY39OfPyKmYm1zNzVV+kT1T7nD4zYjVgetY
 kcl1rmHVXjXNrHbJg7ScPVRS
X-SBRS: 5.1
X-MesageID: 58911476
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:OzUGX6s7MTDGaQpKA3nIDAdPT+fnVNxZMUV32f8akzHdYApBsoF/q
 tZmKW7SbPaDZWvzKd4latnl8hxVup6GyNYxTwQ5/Cs0Qi1D+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YPhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NpltJeaczwCb6D3hN8NVDJ8EyF5J7UaweqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5tAMGYwMnwsZTVzYVEPDp4R392GoUmibxt7rA+XrvoOtj27IAtZj+G2bYu9lsaxbcRKnG6Iq
 2Te5WP7DxoGctuFxlKt8Hihm+vOliPTQ58JGfuz8fsCqEKX7nweDlsRT1TTiem0jAuyVsxSL
 2QQ+zEytu4i+UqzVN7/Uhak5nmesXY0Ud1aGfx85RqNzqfR6gCxCW0NTzoHY9sj3PLaXhRzi
 AXPxYmwQ2Uy7vvFEhpx64t4sxuzMgIvFkRTaBQYdhsCyP3joIYplk72G4ML/LGOsvX5HjT5w
 javpSc4hqkOgcNj65hX7WwrkBr3+MGXE1ddChH/Gzv8s1gnPNLNi5mAsACDtZ59wJClok5tV
 ZTus+yX96gwAJ6Ej0Rhq81dTejyt55p3NAx6GOD/qXNFRzxpBZPnqgKuVmSwXuF1O5eJ1cFh
 2eJ6GtsCGd7ZifCUEOOS9vZ5z4W5abhD8/5cfvfc8BDZJN8HCfeonozNRHAgTi3zBhz+U3aB
 Xt9WZzyZZr9If8/pAdaus9HieN7rszA7TqLLXwE8/hX+eXHPyPEIVv0GFCPcvo4/Mu5TPb9q
 L5i2z+x40wHCoXWO3CPmaZKdAxiBSVrVPje9p0MHsbec1UOJY3UI6KIqV/XU9c+xPo9eyah1
 izVZ3K0P3Kk2SaccVXWMSs+AF4tNL4mxU8G0eUXFQ/A81AoYJq17bdZcJ0yfLI98/dkw+IyR
 P4AE/hsyNwWFVwrIhwRMsvwqpJMbhOuiV7cNiapemFnLZVhWxbI6pnveQ62rHsCCS++tM0fp
 by811yEHcpfFlo6VMuGOuiyy16RvGQGnL4gVUX/PdQOKl7n95JnKnKtg6Zvcd0MMxjK2hCTy
 x2SXUUDveDIroJsqIvJiKmIop2HCex7GkYGTWDX4azvbXvR/3a5wJ8GW+GNJGiPWGTx8aSkR
 ONU0/Cjb6FXwAcU69JxSu85w7g/6t3jo65h4j5lRHibPU62Dr5AI2Wd2ZUdvKN62bIE6xC9X
 ViC+4cGNOzRat/lClMYOCEscv+HiaMPgjDX4Pk4fBf66Stw8ObVWEleJUDR2ilULb8zO4I52
 +Yx/sUR7lXn2BYtN9+HiAFS9niNcSNcA/l26MlCDd+5kBcvx3FDfYfYW33/75y4YtlRNlUnf
 22Pj63YirUAnkfPfhLfz5QWMTaxUXjWhC138Q==
IronPort-HdrOrdr: A9a23:/KT4+akb7DdB3YkRXAe1OcsMnD3pDfO8imdD5ihNYBxZY6Wkfp
 +V88jzhCWZtN9OYhwdcLC7WZVpQRvnhPpICPoqTMiftW7dyReVxeBZnPbfKljbdREWmdQtrZ
 uIH5IObuEYSGIK9/oSgzPIY+rIouP3iZxA7N22pxwGLXAIGtJdBkVCe2Gm+yVNNXh77PECZf
 ihD6R81l+dkDgsH7+G7i5vZZm8mzSHruOqXTc2QzocrCWehzKh77D3VzCewxclSjtKhZMv63
 LMnQDV7riq96jT8G6S60bjq7Bt3PfxwNpKA8KBzuATNzXXkw6tIKBsQaeLsjwZqPymrHwqjN
 7PiRE9ONkb0QKcQkiF5T/WnyXw2jcn7HHvjXeenHvYuMT8AAk3DsJQ7LgpOifx2g4FhpVRwa
 hL12WWu958FhXbhhnw4NDOSlVDile0iWBKq59Ss1VvFa8lLJNBp40W+01YVL0aGjjh1YwhGO
 5ySOnB+fdtd0+AZXyxhBgv/DWVZAVwIv66eDlGhiTMuAIm2EyRjnFoivD3p01wt67UEPJ/lq
 P52qcBrsAGciZZV9M6OA47e7rDNoX6e2O7DIujGyWUKEg5AQO4l3fW2sR/2Aj4Qu1D8HMN8K
 6xJ2+w81RCIn7TNQ==
X-IronPort-AV: E=Sophos;i="5.87,205,1631592000"; 
   d="scan'208";a="58911476"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NDmWvCZSV4j8xtLDGpvjYEt1ARbqc2F4gr60dhhTaFrdNdOknYJPPk4d0lWUAGQZ2aIczwC/WvvDOZ1vFPAIlx+2xwftYxtbjN5X9wxV60afkEkscuyNYRZvcSQeO4XccTsNjHOFLeZmr8+m+WTBAS5tOi+thoXYnLkATFzHJK21Qpb5ZIi9W1ALAKwGE582jOI3da3SUOYPNRooTmXCzQBJNhRo5bvTbTh4OrxEKhjHKE/QwLCgXHqhBCznSQdFMeRAgyjAjbGxO5ojXDPVvhDPaAb9hmomUkGBWOxSqUAg5tP7DbynTlWb6Mpoui6E3Ms9J1nfceu5NO5QITe+AQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4WoxbEitlizOc+uNhuQlrfGu8piRhbo4zk8G3aoBw9w=;
 b=RLZVnfb5E7+XYSjnQhG5Bl0Yv47aY3lFjranhUIjElOlcLtUdRZuJfZ+dgNoKgnWoxCHVvvbHYTBtoaqca5ALrjeaL/GJOyfyjHLwIZfFydk6VEY/f1lzcmfSofs1lk4BVL+TXsKuyYCCLqBCAIfn0AcX+E/AoLIMCxNZKagz3fIxT61y3ENknpvx1PHLo0HX0tQOUkzngtlfS0wZVCdytWZlefJNYOSrbibY/ADicFsPO9vsfGk2rt/HOSu4v5kuSBmS+Hy8++QN1+8LrXRwG5RfIbhclk5pnI2D+NZw4Pq/Qsd7ZToRSfjR1EWzN2pBWLzRbrJt8b6wK5NrTwIIg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4WoxbEitlizOc+uNhuQlrfGu8piRhbo4zk8G3aoBw9w=;
 b=mvslVNtUj/cMhMzotz4DMU9BqtMDSxXx0uxA1zrMpPgbwxgciJXIJLDnGaQFUOjgmYTS2NbVPbwZ5cGWt5724GFijhm7x/6cR2Yy73+bEuPrG3G+4UAB0HkcNsg+/OTFnjnK20ZknirnpjQYjujddskfMRdzJvPZ4eU1LItkGFk=
Subject: Re: [PATCH] x86/traps: Fix typo in do_entry_CP()
To: Jan Beulich <jbeulich@suse.com>, Ian Jackson <iwj@xenproject.org>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Bobby Eshleman <bobby.eshleman@gmail.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
References: <20210928210014.27954-1-andrew.cooper3@citrix.com>
 <3408f175-d71a-267b-515a-972b3ed8c4e8@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <519bcaac-cc32-c1d5-8f01-34318ed398ca@citrix.com>
Date: Wed, 3 Nov 2021 12:56:59 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <3408f175-d71a-267b-515a-972b3ed8c4e8@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
X-ClientProxiedBy: LO2P123CA0105.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:139::20) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9eaec0cb-ab78-45f8-f956-08d99ec97008
X-MS-TrafficTypeDiagnostic: BYAPR03MB3429:
X-Microsoft-Antispam-PRVS: <BYAPR03MB3429DF7F30B52A9965BEB3E8BA8C9@BYAPR03MB3429.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: WuvSE2wTSqR0JUUTRg+yXgUZU3zE8sJcGZd5SliHoYY1ChstBMLtFHKZXPgimGgZsbnXYCpJxMPTEtzEDNCZFjqCB6F5PB4S0foMrJHmT5V/+u38nswo5XGEqCbnRFgV/OkFQmzoPqUESzvUWKhCiDodq51A6jUNsI6sSORKIxciz9AKqePUlzCZQXC9IEYstdGXZe0DTS2Goa7MnLFiCrpASJ1mu+JHh/Xga1RZqzofvsVUzashOkCI6sGftF41f5KVtCSBwng2nU9xTTIYMQmTLMpX47+WzowS8LzvhFgGHn3HkAdDleVJB2KpI3MqhhYeUvBEf6GitzWr+Dhd/fHk7euD6uZgs1mTHWhAdMbCs0XGIK+cM50XgJ1xDgakOpPGUw+PvAkza2DP4WTLEG7IEoYlE1DpduxBf8Zxu714KYPqJiMjP2MuAzbCsYNfE++K4Twp7fNQiWLuNWq+IYblrvlxh+hyh/Q2vUxuvE/vIAv87yShwWFu4wzFtcdp6qshfkmFlCGRL4cri8DlrAul41DGQDEQHqm8EPdd9J9+1SSJ5yWO7e5TwBHbjkw34BO9IhcTN/hXAM4cwDbZj/ddMF7BpnLOjzt+sLwv/qadZeOT/Fn/Um+ro4iyQ8GZf9+AumTSbd5Un6CLRBiMUieXUbsC6gkHKjxTIiDc6kLe9Xl9IT6ig1xhBPmhu6TXY72B6DIap9G7NhEMYwa+OGrstOlZr5d4/OZakwic88CCizB3voO4CiuztwdR6RV+
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66556008)(26005)(31686004)(66476007)(31696002)(8936002)(36756003)(956004)(4326008)(5660300002)(86362001)(54906003)(8676002)(2616005)(6486002)(66946007)(38100700002)(6666004)(2906002)(508600001)(4744005)(16576012)(53546011)(110136005)(316002)(82960400001)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R2tuK3NZR1lzbFJ2MTlaRTF2dkRldlBBSUcwREdaRDBvTzJneExMRjhad3F5?=
 =?utf-8?B?ZlEwdkNBZ20xZzlUMTQ5dUZMVUllcHc4SHRRMzhGTFIvSVN4R1Y3KzA5K2Z2?=
 =?utf-8?B?eHh4WHU5bXZIaEl3azkzU3NZb3VHYjRQVVhoUDNlZFNtcVhvQ2NZc1hobDBz?=
 =?utf-8?B?bTBoQTlUMjFXRzRtQUsySnV2d1piOUxUNDhZVU8wSExXUGpDRi9UZU1RSEd1?=
 =?utf-8?B?d0U5a2J4c2JOWVB3TVdTN0RNR0xxaERQOGh5WkRVSmExQ29IdHdiOW5maTNW?=
 =?utf-8?B?cGVXL29ra0lOckdSNHdScFpXZThQQnI5NFpCMXFHbWpGbUJNZFZFblBSV0ZR?=
 =?utf-8?B?bU53ME5yYzUzNHhpR3BySUhIdXg5L3VBYW16S3BJK09TazU3SEMrOTF1SHQ1?=
 =?utf-8?B?VnhleGhCMVhDSEJVVDlDUytBbUh4ZTlieXpLKzB4UEhJdnFsdWp1Qjl3elRz?=
 =?utf-8?B?cTh6RTBJSUM5Y3pwL1JJRGhWQzJiTEV5Y1VjdHNLMVo4YklrSWlsMnFoQ1dp?=
 =?utf-8?B?SW84WXlVb0pQVEkzNWNtOVdxUWR1WUNLY2lENEsvdERad0JXZkRWZ2d2ZDhu?=
 =?utf-8?B?WVc4Wlg3RDFJN1ZXL1A3RTNSbHVoK3doQk5jSDVPWlJ6ZGo0NVcvOGRYdnNq?=
 =?utf-8?B?MU02UTduTXdYRjBNUTVFUU1IckFwdEhzRDNHZGZQcGNlTE9xZ2FGN0MweXk2?=
 =?utf-8?B?KytRNktOdHExTEdIcHpZTVN4ME52ZjdFWnFmT1FGZWpQUXp3cTZqajJ6RFRY?=
 =?utf-8?B?dTVaaWozT2xTaHFyd3N5NmZvYnBFalNGZ2d6dmdhYVZHVk5FUTg1MmJsK1Y5?=
 =?utf-8?B?Y25MU01lVWNpekNWbVhsMXk5bDdmZWRqVGhKdDJsRTVnV0hSNVgyNzVzZGFK?=
 =?utf-8?B?SkpyWDRIQXdNTk1PTVlDY0RiekhDakZEd05qaktDZURXc1lvV3lwcm1qU21C?=
 =?utf-8?B?akJrSEFSaDkxSVp3eGNUblNHWVRqZytjVC82b0h6bU9sd2lJaGdxZTRjTFRq?=
 =?utf-8?B?enRGNGhlVmJ0YnB1dDVFRUFZYzhybDBUMnh1Rng4VUNla0JmMU9sZy9CYlpy?=
 =?utf-8?B?MjMrVW1pUnpDRjFVTnpxT2RyWEw2S1I2TGljdG05RGszYWY4eG5sVU51Sk9I?=
 =?utf-8?B?d2VuRjNNSlc5aklRRWJFTG12RVMwMHM2NE0yVmx6aUN3NFFTa29oNnRmYzNN?=
 =?utf-8?B?Q21ienN3azd2aTJlQk4waUhWUlRJWDEzbGFRVlh3OFM0UkJ5Q2tPaFNtbUEr?=
 =?utf-8?B?ZG0rU1Y3NVhSUDB3cnpEemVtSmlqRmZabXZlVnR3UnBab2hvSVBwTlhiK0Jt?=
 =?utf-8?B?Q01YdTFDQkUrWW9nZmdUUlEzdGRDYVBxeW1FSkNvUEpRVFVsYWltcVdsa3Iv?=
 =?utf-8?B?RENEMFVIWjZWTFNQM1dkZFoxWkNxLzF0U3Z4NG9Yc201dFdIcGRyUDZwVmZh?=
 =?utf-8?B?MjhjYlJCK2E1c0VrZThxZ292WUNHb3JUaEJybFlvZkRDMmptUEtiemtnOW9q?=
 =?utf-8?B?eXo1T0doUlQ0bDFmYUw2bm9xeUNVbE5IQkJWMHR3L3pCYU9FNVI0YkhpZ040?=
 =?utf-8?B?Y09wOEwxTkJwd2IwRkV6R0xyaUR5TG1CNmxBSVhNNmcwdzl0L05QYVB4MUxV?=
 =?utf-8?B?RDFucUhrbmh6UjhLQVNxdDlqbnYvd3g2bkg1SEdiQU5Jb1c2YzRINlhma0V0?=
 =?utf-8?B?Qnl6NzBKbXNYeU1heHNsZENHT25OUjNvU1A5dFVod3g5SExic0QzQlZ0OUF4?=
 =?utf-8?B?KzhVenpLV0VDczZwUE5kZWx0ekZDbkdUMXh6TmhyK2JBR0VoQlFHb2tuUTVB?=
 =?utf-8?B?a3JWSFJpREM3MXhWYVY3b3VpQUJXWUdZcUV3MXdIMnVuQ2k4QW5Yb0FrQ2VF?=
 =?utf-8?B?TThNV3h1b1pidlk4aG4vc0FuekdFTHVNVFFFMGRWMThTNjNlYU5pajgxbDdN?=
 =?utf-8?B?NWtjYkVLSEZucWJXc3BaN0lxUy8zRDBlMnhuWmZaMEJCRXEvNUVHSFhyaGM4?=
 =?utf-8?B?NkZ0cW5DbGdhbUM3RWI3MFNnSTdrcE5ybVVYT05nUmxBd241S0V3eVd5VGZZ?=
 =?utf-8?B?Zk5Yc1NKYWl2NG9XYUoySEZYUit5UmxjODZJUm1ZSDdFNE5LNWVEOFVUSWVa?=
 =?utf-8?B?VXpDYUVSZDZ6TmhoNllmZ3JtU2taQjNHQzRBdG5UcXZPVU44ckNUTUhQWDQy?=
 =?utf-8?B?bEdlTFhWT0ZGZUlqazl0LzhreHBhbnNZWGJVQmViZjNhckxneEZwc3RrQTVU?=
 =?utf-8?B?cUQzYmFxa2hOdTRFNmpQTXBORTF3PT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 9eaec0cb-ab78-45f8-f956-08d99ec97008
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 12:57:05.7545
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RON71MLKZdrPmRmakWfMXQZLhbN7Efdsf95IvF5O9IfUdg89bmk72rHP7605B/drJJw6HimhFoH8tCtq2LUoOMG/S/wpPjMkiSr0QsPTtr0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB3429
X-OriginatorOrg: citrix.com

On 29/09/2021 09:07, Jan Beulich wrote:
> On 28.09.2021 23:00, Andrew Cooper wrote:
>> The call to debugger_trap_entry() should pass the correct vector.  The
>> break-for-gdbsx logic is in practice unreachable because PV guests can't
>> generate #CP, but it will interfere with anyone inserting custom debugging
>> into debugger_trap_entry().
>>
>> Fixes: 5ad05b9c2490 ("x86/traps: Implement #CP handler and extend #PF for shadow stacks")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>

It turns out that I forgot to commit this patch, and it now needs a
Release Ack to go in.

It is very safe and obvious.  It is passing the wrong constant into a
debug function.

Luckily the impact is benign due to other properties of the logic, and
would only cause problems for people adding manual debug logic.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 13:53:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 13:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220900.382337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miGhE-000798-I7; Wed, 03 Nov 2021 13:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220900.382337; Wed, 03 Nov 2021 13:52:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miGhE-000791-FB; Wed, 03 Nov 2021 13:52:56 +0000
Received: by outflank-mailman (input) for mailman id 220900;
 Wed, 03 Nov 2021 13:52:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miGhC-00078p-S7; Wed, 03 Nov 2021 13:52:54 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miGhC-0001LM-It; Wed, 03 Nov 2021 13:52:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miGhC-0007it-9l; Wed, 03 Nov 2021 13:52:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miGhC-0006nn-9C; Wed, 03 Nov 2021 13:52:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=SJOpKpKitsi4M/tnQY6t8T4DgzIWqKyQ9bEEosccC9I=; b=2EdApsEUdqvMb2Hi+9YdlO30Fw
	YNCBOLUOU0lHvxyeJOvn8qEjyGZVvlaqmyIJY6xoGxNgs/vkv1gh9lrj+1wrwXeYwQ/arz3WFZVpS
	YOO8rzi1FCaZuhlbdT2/LkjU/4r0jbZnuWnquCNqOKgtFrH1MUDqirlYLK2opJmKZchc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166028-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166028: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b67f09721f136cc3a9afcb6a82466d1bd27aa6c0
X-Osstest-Versions-That:
    xen=9f8434d77859462ad98a51ec49ad8e23769d9b10
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 13:52:54 +0000

flight 166028 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166028/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  b67f09721f136cc3a9afcb6a82466d1bd27aa6c0
baseline version:
 xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10

Last test of basis   165971  2021-11-01 13:01:52 Z    2 days
Testing same since   166028  2021-11-03 10:00:28 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dongli Zhang <dongli.zhang@oracle.com>
  Jan Beulich <jbeulich@suse.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Stefano Stabellini <sstabellini@kernel.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9f8434d778..b67f09721f  b67f09721f136cc3a9afcb6a82466d1bd27aa6c0 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 14:10:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 14:10:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220909.382352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miGxd-0000LN-3i; Wed, 03 Nov 2021 14:09:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220909.382352; Wed, 03 Nov 2021 14:09:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miGxc-0000LG-UL; Wed, 03 Nov 2021 14:09:52 +0000
Received: by outflank-mailman (input) for mailman id 220909;
 Wed, 03 Nov 2021 14:09:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9PtR=PW=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1miGxb-0000LA-Pi
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 14:09:52 +0000
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03on062d.outbound.protection.outlook.com
 [2a01:111:f400:fe09::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2fcd418-3caf-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 15:09:49 +0100 (CET)
Received: from DB8PR06CA0008.eurprd06.prod.outlook.com (2603:10a6:10:100::21)
 by AM4PR0802MB2177.eurprd08.prod.outlook.com (2603:10a6:200:5d::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Wed, 3 Nov
 2021 14:09:43 +0000
Received: from DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:100:cafe::e2) by DB8PR06CA0008.outlook.office365.com
 (2603:10a6:10:100::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Wed, 3 Nov 2021 14:09:43 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT036.mail.protection.outlook.com (10.152.20.185) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Wed, 3 Nov 2021 14:09:42 +0000
Received: ("Tessian outbound 7b0bcc4a550a:v108");
 Wed, 03 Nov 2021 14:09:42 +0000
Received: from 17d468b5d284.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 080A894E-F9E8-406D-9309-5E9E4FD544C1.1; 
 Wed, 03 Nov 2021 14:09:34 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 17d468b5d284.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 03 Nov 2021 14:09:34 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PAXPR08MB6972.eurprd08.prod.outlook.com (2603:10a6:102:1dc::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 14:09:32 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Wed, 3 Nov 2021
 14:09:31 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO2P265CA0209.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9e::29) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Wed, 3 Nov 2021 14:09:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2fcd418-3caf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+dYgUg7d63m2iBJ+XArd9kOVG29rPtTAgO0RXVt7Wl4=;
 b=3GBZdVUgmmdqztG4zyDaO3Ces0DnKYvU9E7veAMWJpHmGBRoCD/rKre+3PRbIOdg7x2flAzY530lkWtZd3RAMYFJ2LHjbQZJkBFRzeGCmOgEk6QHhvACWRpj6HDZuaGMai//Pet8Ydp01Js+AtncDmsN+QVNBRxl/xSCaKigtoE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 4377d06c8c371cc3
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dARUct/sL1Haa89C4wRCwcrFwVNlHstZYxfbTzi+TTDVM6DDLVHDFxHCCU26Dae7uLxy4FgRq7dmCmhXaTlgHZ46Mx1pmhYmHCiX/uwSXx+RzTZ7syaNA4TNcyADKYHStDVzy52j4deUfdsZgDmIY7g5OqVwWE3HxYsf8ODUlSJHJzuQ/HqsEqgprWqyduBs1armI14Nm2CPQSUJzaxz0jJJgObzZ0N5hevHpBJKPbI7wawJ9MWCjFDfOAoaU2lDgMsKv11Pn/wqvOM+nOPUVp9Ma3LBy4bGfgEx2A8X11IgrtTbsafPVwdrt502wVnaJtihZTWxPriHnHEqXWJg2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+dYgUg7d63m2iBJ+XArd9kOVG29rPtTAgO0RXVt7Wl4=;
 b=W6URkwjVLyDvlB0sldnMr0UJOUj7f+37JzSVafy/OBiTIhyWwMdt/794F+6gKwgiOUXZNagsRvB2IehyPc3Lf2gZ3r+3QSgwg05+sE7ASlLvFQR79U+1wS1Bg4Z03nbuyHnO0MSj4fmDr8bYqrpX1RCxaw63aHFJDHyMPDd0/bIqykor6CIp00uuZkMtjIxByeapriKR6zXFkLNnz8KN2tMK1+kUmmr7kCVbZ6foxMX28kZXc9ZuBZv73BProMXDZK/5UzDUULbAQhkrPOLo1xKXuFDkC650f0F24s4zkHU7guSROgz9v5K35Q/lqsEun34qgyz3DzYHbqatTD7USw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+dYgUg7d63m2iBJ+XArd9kOVG29rPtTAgO0RXVt7Wl4=;
 b=3GBZdVUgmmdqztG4zyDaO3Ces0DnKYvU9E7veAMWJpHmGBRoCD/rKre+3PRbIOdg7x2flAzY530lkWtZd3RAMYFJ2LHjbQZJkBFRzeGCmOgEk6QHhvACWRpj6HDZuaGMai//Pet8Ydp01Js+AtncDmsN+QVNBRxl/xSCaKigtoE=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
Date: Wed, 3 Nov 2021 14:09:23 +0000
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <83E4F969-892C-4AA2-829D-67C02B4B5885@arm.com>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
 <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
 <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO2P265CA0209.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:9e::29) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: eb4d2673-d3f2-420c-d2ef-08d99ed3951b
X-MS-TrafficTypeDiagnostic: PAXPR08MB6972:|AM4PR0802MB2177:
X-Microsoft-Antispam-PRVS:
	<AM4PR0802MB2177BDD90E84C7FCE939C5C2E48C9@AM4PR0802MB2177.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 DnypR2FybNyLzvB0pWtDJtbIwwpNBo2uCum5z+rcafGdHgIrGZdXaZzgxuvdUBfPDAVbGMNqp2ELcsrQBXcJXUNXgTlPpGjsIkZsVYhOIHjWeO/ZeaYmBQy7IIGnGDqsO4zsnwcIjicg5Iigf8lDUR2gLETqU/BUCqppylJhRN9nxTH7lhIhZ9kuoZ0e+OgPtELPfK5OfjnsnOs9lIps+kKCpojf3zXIUHbdT3HQpNt1dC+wGvAk0CkiPA+2/qstmraOPDoOhboU/M8TAZinYYI6xcIajrGse3hAmnR8kjd7590rgAVGzXnpbhzyTGGrBcaEoOxOSGANRDytikGulFLllhfBOCKdbwCbqDXixWjdAHhiWJzwVcg0yex0AtxMEjVgaRma08eH9FgL8/UepGEgW/KiXM0ZCGbI+QrC12YmXUWxscC5b0GOqCRYZVEIQrsQ/G1nZJ7ppl3cAjdstwJM4u3fh+WMIRM+aTP0kIYTx9VFy4F+bf2nwS/dkf0sdhRGwPlH3lo1wC9APS1Ssf0YEqBXqMx4JyBd8nH23wR7qD7gGyHWVNvyQe9CBNAFIJZVgoZeyVwu1tnSgOei5s5OPV6rcyXqBmAMmT3m0Ym9wfS95/chMg0/FKZSimNrwxZGoL7FoD2xMQd0v59H3m3QhXWYE+zF7GL0fufHyGHvVPZ1GgR/wymguNsB0qUsdiK0PBrE7vU27OoiUaH25SPEulUsZ9d1uktUqg/TNOM=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6512007)(4326008)(26005)(316002)(6486002)(33656002)(8676002)(8936002)(52116002)(83380400001)(54906003)(53546011)(6506007)(956004)(66556008)(2616005)(36756003)(6916009)(2906002)(6666004)(186003)(5660300002)(508600001)(66476007)(66946007)(38350700002)(38100700002)(86362001)(44832011)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6972
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	fcc88f47-9437-49c1-9cb7-08d99ed38e0e
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	wphJLANvf3gk9NYbRUDXmFUWF6ymej9tZQlyw8dvtf7WtTDz/IwhOJN4moWdtjQKeo9bgTybw3qweZlc9QNB3tVkf8CQ8OZcCotzGj08PlckY143nWCoA3a5VneYUnQjw0I+e0eaudkHyomXBZgFqaErcyy/b+8/IHyjpB9YaNMZC7hW4/LZwbbe8xrdxMoqCX8wAit6ZoTYSjlyFQxHU/0V6/jBBPMqPE7LiBF7t7MMNsE3cXw++lUTjXnEiVTL9pwd0kpPQWsaCQrTq95fJpqKR1Ga3H+Vd8KPLiktjQPnOghXa26pQClp31JaXTWr7YDTP4m0zmEto5lttrFgrzLTWA1Wl4smbWD67j9zh2Bt5ptSVL5hqlEi7LQdsH3TVLv7qDD9fNd0+bO4n+/+tVDO3zE+ij2uZk9+57bud2wucQS64yBivMk4vOjLpGgsyxU7EBcnT3k9eApRy2IZCwS9OiM+d0yxgWZO7qlLVXiO37DQgiXpp1qyXHSNhaqmPZKewrhVib0xvBVj9xLyQSCq0w+iqPMJ0svu2j7LtEkPy830SfH5i9FkioIMPe2e+RCIlWutSGTanvgfjEfHwN6/Fy99zl22E+EnYBvecfMihZt5SYuycF2ez5m2+rRjZyeRtRQIrob1nG1B/2EcHM1xoDX8u7Lvg1bxrGLtuCfvdaQw7v69TN6e/xkUhm+F3H3M6wWK33V7j/0AyzBNyQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(956004)(2616005)(8936002)(186003)(36756003)(33656002)(26005)(36860700001)(316002)(6512007)(54906003)(336012)(6862004)(47076005)(508600001)(6666004)(70206006)(4326008)(6486002)(6506007)(83380400001)(81166007)(70586007)(86362001)(82310400003)(2906002)(5660300002)(53546011)(44832011)(8676002)(356005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 14:09:42.6482
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eb4d2673-d3f2-420c-d2ef-08d99ed3951b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0802MB2177



> On 3 Nov 2021, at 11:28, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 03.11.2021 11:20, Luca Fancellu wrote:
>>=20
>>=20
>>> On 3 Nov 2021, at 08:20, Jan Beulich <jbeulich@suse.com> wrote:
>>>=20
>>> On 02.11.2021 18:12, Luca Fancellu wrote:
>>>>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>>>>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>>>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b8=
82
>>>>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>>>>> introducing a problem to boot Xen using Grub2 on ARM machine using E=
DK2.
>>>>>>=20
>>>>>> The problem comes from the function get_parent_handle(...) that insi=
de
>>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>>>>>> is NULL, making Xen stop the UEFI boot.
>>>>>=20
>>>>> According to my reading the UEFI spec doesn't (explicitly) allow for
>>>>> this to be NULL. Could you clarify why this is the case? What other
>>>>> information may end up being invalid / absent? Is e.g. read_section()
>>>>> safe to use?
>>>>=20
>>>> My test on an arm machine running Grub2 on top of EDK2 showed that
>>>> when Xen is started, the get_parent_handle(=E2=80=A6) call was failing=
 and stopping
>>>> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called with=
 the
>>>> loaded_image->DeviceHandle argument NULL and the call was returning
>>>> a EFI_INVALID_PARAMETER.
>>>> So the parent handle can=E2=80=99t be requested and the filesystem can=
=E2=80=99t be used,
>>>> but any other code that doesn=E2=80=99t use the handle provided by get=
_parent_handle(=E2=80=A6)
>>>> can be used without problem like read_section(...).
>>>=20
>>> I understand this. My question was for the reason of ->DeviceHandle
>>> being NULL. IOW I'm wondering whether we're actually talking about a
>>> firmware or GrUB bug, in which case your change is a workaround for
>>> that rather than (primarily) a fix for the earlier Xen change.
>>=20
>> The issue was found only when using EDK2+Grub2, no issue when booting
>> directly from EDK2.
>> This is a fix for the regression, because without the EFI changes, Grub2=
 was
>> booting successfully Xen. Using grub2 to boot Xen on arm is a very commo=
n
>> solution so not supporting this anymore could lead to lots of people hav=
ing
>> issues if they update to Xen 4.16.
>=20
> I'm not objecting to addressing the issue. But the description needs
> to make clear where the origin of the problem lies, and afaict that's
> not the earlier Xen change. That one merely uncovered what, according
> to your reply, might then be a GrUB bug. Unless, as said earlier, I
> merely haven't been able to spot provisions in the spec for the field
> in question to be NULL.

Maybe I can rephrase to be more specific from:

The problem comes from the function get_parent_handle(...) that inside
uses the HandleProtocol on loaded_image->DeviceHandle, but the last
is NULL, making Xen stop the UEFI boot.

To:

Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle,
that is used by efi_bs->HandleProtocol(=E2=80=A6) inside get_parent_handle(=
=E2=80=A6),
causing Xen to stop the boot getting an EFI_INVALID_PARAMETER error.

Do you think it can be ok like this?

Cheers,
Luca

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 14:19:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 14:19:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220917.382363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miH6w-0001mA-0V; Wed, 03 Nov 2021 14:19:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220917.382363; Wed, 03 Nov 2021 14:19:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miH6v-0001m3-TJ; Wed, 03 Nov 2021 14:19:29 +0000
Received: by outflank-mailman (input) for mailman id 220917;
 Wed, 03 Nov 2021 14:19:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bjvR=PW=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1miH6u-0001lx-KE
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 14:19:28 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c3979ab-3cb1-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 15:19:27 +0100 (CET)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A3DxOMR016601; 
 Wed, 3 Nov 2021 14:18:55 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c3mxh28nu-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 03 Nov 2021 14:18:55 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A3EBe5V108321;
 Wed, 3 Nov 2021 14:18:54 GMT
Received: from nam11-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam11lp2168.outbound.protection.outlook.com [104.47.58.168])
 by aserp3030.oracle.com with ESMTP id 3c3pfxphp7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 03 Nov 2021 14:18:54 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BL0PR10MB2884.namprd10.prod.outlook.com (2603:10b6:208:30::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Wed, 3 Nov
 2021 14:18:52 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.011; Wed, 3 Nov 2021
 14:18:52 +0000
Received: from [10.74.107.153] (138.3.200.25) by
 BYAPR03CA0031.namprd03.prod.outlook.com (2603:10b6:a02:a8::44) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Wed, 3 Nov 2021 14:18:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c3979ab-3cb1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : from : to : cc : references : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=NW9vzCpliR3YWkmxxZQWxqQT+rgPZfGGM/fLhB3BeL8=;
 b=el2nGhkmUHyzgLMT53yorIJhLlGE8G/CgkwX3at5SOVx5mQGk8kaFuxeDWtREkS4g8PT
 n+yEMsLLkatmd6WWNEn4uYbnANsC2G1lknVdrekCwnAmEKCqG33p1b5OVpVydm3rzVZU
 JjuR8FXSQ5lJXqjNqo9/lTC/XTtfeosQvcTe61Dokp2NjkVq5iWtx3tenI0ytsAGfVYm
 MGDjJf+OrAdOgwFqmcxvmaDy1Dqqxf0Zawvr6A7CZdwIIyXNknO63sZ9ujh3WbYxHyAi
 guOTsNcQlclywAEGtZsBi84HvZ8SuGdoROII63A+NSCeBmbAjvzCb5uWfTbO7PyfeWco 5w== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=F2d6M4J/VagU//R+YoQQp/qn6Vraxb+bo0SwLhxtUGFsEOKDM9xIEfuxGmve+HAKW4ncFzyPQq5yqFCFducx3EG4r0iT/LVVsCw68rRDwSrjl7i6W4Wb4ZD2fYDfGFcT+Df/6yWkmuk6mZDALR1IHzRc5EZbsjzHiXSvnQc+7QyZO5+hJVu+cwwFoLhnsqAjOK24Y1gFF+A5gFzQBp4ze5jRgmOVyKakDznq5CHUIc31wAAsce/4sMAnrrycP8TqV6yaD5mSQ9QSgbJi9qeZwCeli1Sg2RTTpQ1nzDzgJob5CU8YEQIvLajwnoRucDFAgLcbHihJJTBysRJS3ZcLxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NW9vzCpliR3YWkmxxZQWxqQT+rgPZfGGM/fLhB3BeL8=;
 b=n+gg9GCWGkSzvekLyWU9JaxO9aOJpHfH88K4RY1ESZVIcmTv+3Q7J/bMxG5Qj131DDy+9RRg+omsqHG31PwQNmfSEm/JMmswhg6wnPHbO5TGPRxzFQLPCp2nURwZJacy3JzTFqJBdqqERXxi2rFp+RWdrq4jaD2/OFezERkRW5/kQXtylkkSqOSmSeHRML+Ukm7PFp5rWkips6oiXs4g0aeA4T+yiw9ftrmumUuOwpHUPCr8aixRe0s5/DoGCpcKI7uSis4/+vaBoJzcSU7An+HwOvTTXMSmN+54+mMEzCqDtNMfhDR9ej6AW86s6oZ+4QDqC9ZJefBdoLz1kqXFkA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NW9vzCpliR3YWkmxxZQWxqQT+rgPZfGGM/fLhB3BeL8=;
 b=a9eKmTCQX4k0JNZQcSMraRCz/hjW1ySyCMBZ+NVeqc7kryptrgtrQeE7p4F9e218DRQru99z/qBWb6aDRL7+y5ZcGdHd7FTBzN2F9/Ko6H19AlFywlToTgAnOYT/NplyBmUEiP4UbkPdMusaeN9cdp4MTNBeppkemeWrFXqn278=
Authentication-Results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <399d086b-b799-8d8d-7347-313474a744f2@oracle.com>
Date: Wed, 3 Nov 2021 10:18:45 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH 0/4] xen: do some cleanup
Content-Language: en-US
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        x86@kernel.org, linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, Russell King <linux@armlinux.org.uk>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Will Deacon <will@kernel.org>, linux-arm-kernel@lists.infradead.org
References: <20211028081221.2475-1-jgross@suse.com>
 <d672d22e-770d-d37e-b094-29563106511e@oracle.com>
In-Reply-To: <d672d22e-770d-d37e-b094-29563106511e@oracle.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BYAPR03CA0031.namprd03.prod.outlook.com
 (2603:10b6:a02:a8::44) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 839e942a-90dc-4bb7-8696-08d99ed4dc7e
X-MS-TrafficTypeDiagnostic: BL0PR10MB2884:
X-Microsoft-Antispam-PRVS: 
	<BL0PR10MB28846B12DC746245EE2E74468A8C9@BL0PR10MB2884.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:595;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	jIkgUJwseYxrxNdX4XcJSZ9R81tu0Ep8nEweh9NrHpZzUh56e51v3KCH4Gve8lsqQyizpFmz1swnPMdznj4ZylndkjPbLwXLjfkSj0vfKWzWWXLkHYVtdOCBxK8nVw0AGvnmS1p2U+piQRcRfqkE5Y793fW1PWR2yEzqo+8VjuQTxvQmjdjRddZCnVF6l9KRk/gObzuxcXHM0RGpNmsTUz85wQH9Hl9dLuki7RzCFDxu+QKjECn/ty1tMBOYgLfYgB6GOyjI36wr82YKMnx9f1/Bv+tukMuaq6Zt9K3bnHpEUcKk45EvhYSc9/LYYXaLk2BGAEcsbkoSf9C9HR1W4xlhLxUX4rV6zUuDhxOzfH4jpeFuUBI6oDGk0DHxD9PMFT8erpfv9q7EaIyspK06rquG5BlY/vxUNprYttKTpyLTepk8fliNgmH143Sla/nFWITh7l6yLU95fiK02qW9l9GFaBxcoBh99Fo3+uls+tUGbX36Zy2E9Pk3eMuOUZCdwH2kTCMBXKFcrmJSIv1GUXCHvc+lnlu2dXHdRIN7tFBrnLBGRY0nx+GsOnZap4wdoxhhw96XEXJe5Y2yFlqYr15IqlToJG9iiMaogilm8unh65/ccKcEW8ehqXHUy0NykE3CvKocEhgMJTTyMFsNSbfcRbVI/O/eemNGv6Vwpf8OuFnMoinIVyFX2m4oNehiCixznFn7PtztCr+fC0pL97KDYtVX9A/VSD6mhoHFzztwSidt4qiHA82HtPuTSdm/
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(508600001)(66946007)(2906002)(16576012)(6486002)(54906003)(86362001)(31696002)(53546011)(5660300002)(186003)(26005)(44832011)(66556008)(66476007)(956004)(2616005)(83380400001)(36756003)(316002)(6666004)(8936002)(4326008)(7416002)(4744005)(8676002)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?TzJrZzdLSGt4eVdKTnNjVFZZSVhJSk55Vll6QWNmZEJPMlg2OFpvU0hkN04z?=
 =?utf-8?B?S3QxbDU0WlgzUUVYaTRqVXFnclVmSEZRZnJMdHl2T0NMRmtMdFQ0MDg0NUtw?=
 =?utf-8?B?WUdqUFZQN1B1Si9OZ2ZpZk5nUWJ3dEJ5TXpwYWRmZjVDRmlTV1RCSWkrcHB6?=
 =?utf-8?B?a2w1Wm0rUWx6amlUajYxNm42cFpPVThuZEZsemNyMTQzWncyZW9WOW1WdCth?=
 =?utf-8?B?d201eGhQUmExSTB4RzVuUHFMYWFacjlxWWorWlNiVWRHVkhGMitNZ2wydTdw?=
 =?utf-8?B?RW01RGp4YkJ2WGh4WDBIU0NVRTBxdE1scEhWRG0yNnRMVVlGWmhUS2xlT1d6?=
 =?utf-8?B?Q0pJOFNHdnZTaWdXWS9aNTllVGROdXJTYnVQcVg1aCtuZ3BnYVFrVDNneWZS?=
 =?utf-8?B?YUMzSkhKYUVHQmljTHJrSVhncUNIYU44RTdDVlVqY0JKV2h3ZkpUN0RJNllY?=
 =?utf-8?B?UDVqd1FQcWlxNjlVeXFEWCs5UUlscnJVSkxyUWRpU29qSjdseFFwTG9EcUpz?=
 =?utf-8?B?b3lFeE9JWnpOdEVTMnd4bE5DOE5pUStaUUNjMTZzeFRyOHhabk9SWmlpN0VH?=
 =?utf-8?B?bDBNSHBtaXlnRFEzNzJTT3JPN2x1SklFcUsyS09vdHh2bkdqQlJMNHpOVlFs?=
 =?utf-8?B?N2JvTG0wdWRZOVVwcE9qYlg1NEkyY3NGZ2pzNU41dldrZlNiN09Ya2NoTVVS?=
 =?utf-8?B?SDJxaS84NFBDcW5Uc3BxYWpkQjh2NkptUHU5SmhjM0FJQUVzNjZDS3RxLzJh?=
 =?utf-8?B?Z3RpQ09lZkhObFhjbkVZTldPTGVXL3Vqc3BTb0JjRmVqUmhIYUc5c2VxVG80?=
 =?utf-8?B?WDM4RVphTFlsTXNZSFViYlpFS0N0QnBrb0NoV0FuUWdpME54VHA5WGd5QlJ4?=
 =?utf-8?B?TnliYUp3NUZYNmp4WDhGaGo4M3pBK3lNQkUzblQzZVcvSHpkamdXZGdUZzFr?=
 =?utf-8?B?VHF4UEI5d0JKdnVTSFhxSWI4NjFZOTZqcE8vTDgwNmJ2OCtVOEk1bTlscExt?=
 =?utf-8?B?aFI5L0JGakhjdDBXbndRWlQ1bVFTSklMUFJEckRTZEh3eHg2V1ZhelRVZGtn?=
 =?utf-8?B?MTZMWXJGU2h5cTZhTjNJSEpOVElzdWM1eEtUZ1ZhUHE5V09aQU5UTFNoUXlj?=
 =?utf-8?B?UjJVbExiNlEwMWpCSmhhMThNaEpzbDNiaENkL21TaGVVOEhqT3d3dk8rN1ZM?=
 =?utf-8?B?RDAwTkVjVnltN2lkZFFtaHpyRlR5azMrTUcwdUtQZjdMblVnTFcxZTlucVlQ?=
 =?utf-8?B?ZVZra0MyMXFLU0tBS2dqUmpVNVRlTmZjTFRYWU5Ya0NuMk9oT0Z3a3ZKdVQy?=
 =?utf-8?B?S1o3Mktwd3piRExIU2RUcGFBOG93RVh3QWZkSHBEV1A3cjFCMlZ4U21Qbm53?=
 =?utf-8?B?YmhadEYxTEdGUFFEaFM4bHkycmkrV1plTzJseHd0YmRVYTlRRDlUV2ZKUjlx?=
 =?utf-8?B?WTEwTlJkbnhlSFl3TzY5eXFZeVR4ZWcrYlFjTzFMVWZCVTlRNVdRZlArdGpu?=
 =?utf-8?B?enJVTDNLdEN3QXVVTWtxdDNYSDJoTVpkd2pXb1dBckp0UzNSTkFHVUkyblJ4?=
 =?utf-8?B?VEh5clh3MzJmSUZaRFZla0JuZmhUbXRRdDBzQ3NUUWtrYVB4SXpEWm9iTWh3?=
 =?utf-8?B?NFhJcFJNQytjbXFaMktoTmdRQjEwbUZnc0w3ekNKRWVGNXNNK1Z2c0ZJN3Bo?=
 =?utf-8?B?VmMwRVVJelByYWMyckFINHNnMmdBN0JtTm9uNFh2RStqcWZUQzBSWkx2U2NH?=
 =?utf-8?B?SGZZZmVrZXpyLzJEL1JMZ2RKeTBKZnREZHM4VEZ1RG03bGdBR29vVXVRLzBu?=
 =?utf-8?B?SnZEYkdybnhGRGZ2SzJheFlDVmliTVQ1U3hwRHNDNi9ZUmdtanpzSUppaGs3?=
 =?utf-8?B?SUFBUnN0MFNBUC9ZQU5oTDY5WUw2NTJEeldCZUxEVTJpZ2UyWFZ4bnpOck0x?=
 =?utf-8?B?RERsRHcyNUJjZ25SQjJYc2lWYW00N2MyUExSZkFqN21PQ3dXNm40L0w3SVVj?=
 =?utf-8?B?R0pBdTJCWWpONzlhRWY1VVNMY25mK1Q1dFd5Y1RSNXlGaUFOeVZNWFd3MHZX?=
 =?utf-8?B?M0xsVGI0UThOYnZuaFd2bGdPR3BnUTVZd2tzeHk5N29hLzd2L0hweXQrL1pi?=
 =?utf-8?B?TDEzYXBOVGFoQjk1M2xOKzBTZ3dCTlk0OHppNnFHcmlveHF1SDY5eldLMER1?=
 =?utf-8?B?SklyS2ZwV05LTW05b2hhM3g4RlZ0Z09nc1JaQXZoUE1UREtnU0VxaUc3T3FD?=
 =?utf-8?B?V2FqMWYwK2dnWHF6WnRKT0ZFU0dnPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 839e942a-90dc-4bb7-8696-08d99ed4dc7e
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 14:18:52.1759
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AVjn4HeMmoan6GlQMJ5lCXpV/YanURlskHoNNdQZn5jBYafQUY7hCzxavSOOdpv342GgT9wmaqcDb4uPwJspN5Nb99a9PTIEpreNaENXeaI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB2884
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10156 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 suspectscore=0
 malwarescore=0 bulkscore=0 spamscore=0 adultscore=0 mlxlogscore=999
 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111030081
X-Proofpoint-ORIG-GUID: v1_sH-9MFGzO4OCLoptnhWb1Zsu8W1r7
X-Proofpoint-GUID: v1_sH-9MFGzO4OCLoptnhWb1Zsu8W1r7


On 11/1/21 3:15 PM, Boris Ostrovsky wrote:
>
> On 10/28/21 4:12 AM, Juergen Gross wrote:
>> Some cleanups, mostly related to no longer supporting 32-bit PV mode.
>>
>> Juergen Gross (4):
>>    x86/xen: remove 32-bit pv leftovers
>>    xen: allow pv-only hypercalls only with CONFIG_XEN_PV
>>    xen: remove highmem remnants
>>    x86/xen: remove 32-bit awareness from startup_xen
>>
>>   arch/arm/xen/enlighten.c             |   1 -
>>   arch/arm/xen/hypercall.S             |   1 -
>>   arch/arm64/xen/hypercall.S           |   1 -
>>   arch/x86/include/asm/xen/hypercall.h | 233 ++++++++++++---------------
>>   arch/x86/xen/enlighten_pv.c          |   7 -
>>   arch/x86/xen/mmu_pv.c                |   1 -
>>   arch/x86/xen/xen-head.S              |  12 +-
>>   drivers/xen/mem-reservation.c        |  27 ++--
>>   include/xen/arm/hypercall.h          |  15 --
>>   9 files changed, 118 insertions(+), 180 deletions(-)
>
>
>
> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>



Applied to for-linus-5.16b.


-boris



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 14:31:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 14:31:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220924.382374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHI7-00042H-6o; Wed, 03 Nov 2021 14:31:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220924.382374; Wed, 03 Nov 2021 14:31:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHI7-00042A-3V; Wed, 03 Nov 2021 14:31:03 +0000
Received: by outflank-mailman (input) for mailman id 220924;
 Wed, 03 Nov 2021 14:31:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miHI5-000424-RA
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 14:31:01 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9e03ec5-3cb2-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 15:31:00 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-9--cIWHkvVP7auKjP1HyU7OQ-1; Wed, 03 Nov 2021 15:30:58 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4942.eurprd04.prod.outlook.com (2603:10a6:803:59::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Wed, 3 Nov
 2021 14:30:57 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 14:30:56 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0052.eurprd06.prod.outlook.com (2603:10a6:206::17) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Wed, 3 Nov 2021 14:30:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9e03ec5-3cb2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635949859;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Ua1B2TjkfvFq+R7cU2ES3Dgx5MCJisipvkEx9aIifTQ=;
	b=LyDSOYVaf2P4AVaIZgIuYsOjBuadg1/EKVEO9GdoiuJWhGrPwqVQsZmMQnJJ+/Q6RoF7uT
	SWWHMcv1lT/509KkK/b4YQ1sq+B3f2Se9lugEYcdLxbM1zl6Kwf5FAI4QiAlaFz7qe8dEW
	R8Sg+cnRW+SZWLXRxFLGwpSFP4zn/Ak=
X-MC-Unique: -cIWHkvVP7auKjP1HyU7OQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=G44UKIEVVWjmzBtiTp0Ps1xYGqGvQXLYgN0T/dipWtjzsOIBTgQsMG8yT7qdYlk8NMHdxvpt/L/4adzQFzVylnQIagMfThyDc+B2HQnHZBkTJlN5fD9SinTio9iCsbc3VsbOFol/VDbLZSad9fQ6Qz1IEhMhlqd+Wmj2gd99FnkHyI1EQ1dQE1kpHwLFhD5F74HCy4LDhI950j2e+dUZC97fGOQjGiG9P/LpURapdf0gKMg1cbaLdE3qzP+j4oo0sxblNtzD3teL/cyaUgjfPJma44SRSH7wX3c081L0k+BHrNfR/4Xjw/exyeii1PJws2OKyY29+K8FTehBiJlTxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q2bCgZKw74qRBIffBVsOd683kk+9C9ymmf5co5aKIGQ=;
 b=KobYbpGZeO891s5IZ85/YLSnDLMS+W0mpt50w8Em0zT5amutA6pMc6OGD7YKzBZQOSQGS53fUfdr/rN/uRT2qIN+21h9iYfkobafSDly1GF1Aer9DZHI/gloDRLbO2F6M5+TyBsWT3s+5hWl3gTuCo81ZGKkyN5K/va37aCVvdva4dQt8UuzQPnVzir9k8uVbsNRxeB+b2SEGcj6yArpbMZS2gUxNP42zJsh3vfpdPf0mchW304FJAu+W3DoYvrai5/oU2j444ZsZ6OEFyyyXRxbRSAHNB3GNZcOiqb43XjMxYaiQZOrMCUick/BOPbXlyPsTAbf6qewV9pZqovZXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ad621757-afac-f36f-0b3c-7fe1ddb83a66@suse.com>
Date: Wed, 3 Nov 2021 15:30:54 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Luca Fancellu <luca.fancellu@arm.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Ian Jackson <iwj@xenproject.org>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
 <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
 <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
 <83E4F969-892C-4AA2-829D-67C02B4B5885@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <83E4F969-892C-4AA2-829D-67C02B4B5885@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0601CA0052.eurprd06.prod.outlook.com
 (2603:10a6:206::17) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1ab58e24-a1ea-4169-b57b-08d99ed68c78
X-MS-TrafficTypeDiagnostic: VI1PR04MB4942:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB494209B9A723345220506ED6B38C9@VI1PR04MB4942.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hb88SuC4A1+NpUKEg/DLBhP3Bt732yiL7rqOdOaToedt2s+AQeuFmjNo4rtXrvsmrBivLPaD76T8iEgBfQjhKzsADyAIN5IuylNJ85IA67KvTgIHHTYxddHXMjcFjgS9/npqvTJEMGOJ0p9NfZI/isazn0TtKx8WB3dbt6Xu9sVmeToAn2MmZ4YqGxDLBDPs5p0v+cDm6VlamIk/6RCsjJ2sKqQjISQjI5kZaA+SZtZ637BErrA8ml66mjN14cTvM1yEQ/i8HLIXyKh4Y3BhlK0gAcJjYlmIveokHzRGsBQuJQBJi3sJPJmXK9c0hba2jQXck0FYj3iF0pLQRJUzxRLIBVg5xC9HORh1EOeI9hxppUSjC5FP8w5ePV9cj2qd3VohxSwVCtleskOzAWh/gnBd4t2EVXfDXqTuqyte4fxYfiHVf24DN4EaHFe6qzP9GoXzYOIpHTG0bSouJH+VhxlVS6Ixz7A9YgcpExeNkc/iD88SmM8B++nzk4IQasf0QI1z/6DYqswTtUI2xZB68kZ/aa1ck96QUMKq/5Nd7WpyY+5Zvbs49OG+cBRzLzhWQhTOoF7zdtkOf+DkbwNv6wHWcSF6dX4wl1e+S/zd4emj/7z3tQ8MCb0ky39P6gtciFKOzb94iaHP2pE7HgjM0XhJjsGFVLfV1FVH3Oq3vmQUd1veIdY7UmqO8RzZwyF7jT6a9RTD2EKReRXMPjTMKDSrfc7UeifeDe9PeWbW4EU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(38100700002)(4326008)(31686004)(956004)(66476007)(508600001)(186003)(26005)(83380400001)(66946007)(66556008)(86362001)(5660300002)(8936002)(53546011)(2616005)(31696002)(6486002)(16576012)(54906003)(2906002)(36756003)(8676002)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?cGXU2ovINCcSllekVNi2bA8D1SlhtnxNRoCzDKeaomiNlPzNDldGNtDiTfzR?=
 =?us-ascii?Q?1bqiR95ByTIeC1oSyrUiZmTdJVu2U8dClQb6ft/I/hoU0sNDCABb3Cvol56a?=
 =?us-ascii?Q?pibKilv9rITHh4VZagaYmh2dUoxPOTIm4ZN3ORotZPmrIewS5T+iTUyXRGXs?=
 =?us-ascii?Q?P0yToaN/WspljJvEoPkK4mdBmzLlT7Z5WgznQEHji6RJZSRCNorKDbwAMYfd?=
 =?us-ascii?Q?PZH29etw1rzVJu54iRjlBxEsw/e07fmZ3eWCgsqbMEtP7M3CD4Dju6p1aStu?=
 =?us-ascii?Q?tQVmSKVCdBTLw0QX5z4eg1CML62X/5PxPyzyvRjENvNm5oGTLHQdRuRQsX5a?=
 =?us-ascii?Q?keabNmpALrjfpk/8dNVto9L5EpLCbN3/boeR90iAVftH052Ban/+WHkMvmLV?=
 =?us-ascii?Q?ucVxVPF1xfPOxWpbJ5umRYRvuuegpouZdZvadgBrT13xaBQKxXWkEU/9hcBw?=
 =?us-ascii?Q?/Rqn2g3eh9nM8M6WkMvVjewnk8zq0cLp1kuHlvqLPd1Yu5mMP2Zzm2Fj6O0u?=
 =?us-ascii?Q?wc7SCSOyD41rTx64OMTYnRkfrBuTy1Wg46uFqXfGjagdZ9027aTTAmG2Ldas?=
 =?us-ascii?Q?Nrn6xG3K6gZPpobMLmaiKwX0Lh1+/sRJIxUoxu2MHwJ6tjU7CPkZtq7nvyZk?=
 =?us-ascii?Q?LKTaE68YXP9oBXsVyx5BxVAzzBVYbDLIy2xXLtofNiyDB0bPVyzdoYAI8gAi?=
 =?us-ascii?Q?kLznzWJfUC95AeN/au1vmv0BLR00lF8Vdcq47Ls43QeTGXrsOXlY0WlQKf51?=
 =?us-ascii?Q?SMKGekqM+unpg5KdGFgkr5t7H2gmZc2H0JPKyB3d0S2xBN8QHz88pZhrFGdc?=
 =?us-ascii?Q?/7xLSH5wVMe5KUxse/jS4v2b6iAIq1utspEEdyGDBPLv0UnlbtfN/z+OjAPl?=
 =?us-ascii?Q?GGFnkgqDuJ0RMH97nQY/jrVAK5yomLcJTB1intxnEPpTuCa5kDEzy8aOQd+k?=
 =?us-ascii?Q?qNnO5NCiz5qrY5zeM3cG+s4SWeqT9S30/yv63pI5yqPyGIMkKp5YVQSdWwx2?=
 =?us-ascii?Q?Q/WFNNXBrx+/mpVVjdbHw+MBZLr/Xdz77yt6eUprj6hUK0jNkzAZ43pyW5K5?=
 =?us-ascii?Q?Jh83SWFhXCqYWoB1ykO15Vnh65++hdr0LzA1iOleumOkFukDavceDvhKmNaa?=
 =?us-ascii?Q?xqmWMZZ8rTVGShCvyoGD7FLaWrvra0aSLl5ncBvysqkU+a9bv0lqmWw4mE2T?=
 =?us-ascii?Q?G4WjhymFCHXcYkIsVDOA7p75fDlm7vt4iPwr9nDqQcTMPAdJU14IeqAg8Jec?=
 =?us-ascii?Q?S91+OL7c5ITFIAkHiomgG8XuXO6DPMW0mZ2hKrfZx7/nsqa3615YiYYLD6h1?=
 =?us-ascii?Q?Mftc/VODUYwI7lUU/7t7VdfyDk7xBUaeWdC14+BPh7RRo1IUAk3J7cDbtqgG?=
 =?us-ascii?Q?VMVuCFP8Kv9LpjX0HnLbM6yYp/8UbP3So5sQYnv8aLdRbaCrVAc/fQVGC7VH?=
 =?us-ascii?Q?npaasam70WPPD7a72G0Up/Wa3z/OhB9cqEFGE0ER4EdGZbMurWH/oy5vgOuC?=
 =?us-ascii?Q?zad9uI8AbriWSnhjIdkD2AcZVbnv87TWKCwlnT4JvFOH3Hv7X7ZdFYsEtU7+?=
 =?us-ascii?Q?T3Y/XHE080O0CLnCZs6wSOrF54GyljHaU/YctedH59MdUXnQlLs+ZD7fL8at?=
 =?us-ascii?Q?RWuj9BUvQAESgXbQF4TlBgA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1ab58e24-a1ea-4169-b57b-08d99ed68c78
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 14:30:56.7906
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /WKUe5g2L4l6dIhSqxWWVEwiAad9E7huIQF8DN+u4YYodW8fmiNiZfigtacm4hOpRbkox1ZTessaCAYvT+vKKw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4942

On 03.11.2021 15:09, Luca Fancellu wrote:
>> On 3 Nov 2021, at 11:28, Jan Beulich <jbeulich@suse.com> wrote:
>> On 03.11.2021 11:20, Luca Fancellu wrote:
>>>> On 3 Nov 2021, at 08:20, Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 02.11.2021 18:12, Luca Fancellu wrote:
>>>>>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>>>>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b=
882
>>>>>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>>>>>> introducing a problem to boot Xen using Grub2 on ARM machine using =
EDK2.
>>>>>>>
>>>>>>> The problem comes from the function get_parent_handle(...) that ins=
ide
>>>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>>>>>>> is NULL, making Xen stop the UEFI boot.
>>>>>>
>>>>>> According to my reading the UEFI spec doesn't (explicitly) allow for
>>>>>> this to be NULL. Could you clarify why this is the case? What other
>>>>>> information may end up being invalid / absent? Is e.g. read_section(=
)
>>>>>> safe to use?
>>>>>
>>>>> My test on an arm machine running Grub2 on top of EDK2 showed that
>>>>> when Xen is started, the get_parent_handle(=E2=80=A6) call was failin=
g and stopping
>>>>> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called wit=
h the
>>>>> loaded_image->DeviceHandle argument NULL and the call was returning
>>>>> a EFI_INVALID_PARAMETER.
>>>>> So the parent handle can=E2=80=99t be requested and the filesystem ca=
n=E2=80=99t be used,
>>>>> but any other code that doesn=E2=80=99t use the handle provided by ge=
t_parent_handle(=E2=80=A6)
>>>>> can be used without problem like read_section(...).
>>>>
>>>> I understand this. My question was for the reason of ->DeviceHandle
>>>> being NULL. IOW I'm wondering whether we're actually talking about a
>>>> firmware or GrUB bug, in which case your change is a workaround for
>>>> that rather than (primarily) a fix for the earlier Xen change.
>>>
>>> The issue was found only when using EDK2+Grub2, no issue when booting
>>> directly from EDK2.
>>> This is a fix for the regression, because without the EFI changes, Grub=
2 was
>>> booting successfully Xen. Using grub2 to boot Xen on arm is a very comm=
on
>>> solution so not supporting this anymore could lead to lots of people ha=
ving
>>> issues if they update to Xen 4.16.
>>
>> I'm not objecting to addressing the issue. But the description needs
>> to make clear where the origin of the problem lies, and afaict that's
>> not the earlier Xen change. That one merely uncovered what, according
>> to your reply, might then be a GrUB bug. Unless, as said earlier, I
>> merely haven't been able to spot provisions in the spec for the field
>> in question to be NULL.
>=20
> Maybe I can rephrase to be more specific from:
>=20
> The problem comes from the function get_parent_handle(...) that inside
> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
> is NULL, making Xen stop the UEFI boot.
>=20
> To:
>=20
> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle,
> that is used by efi_bs->HandleProtocol(=E2=80=A6) inside get_parent_handl=
e(=E2=80=A6),
> causing Xen to stop the boot getting an EFI_INVALID_PARAMETER error.
>=20
> Do you think it can be ok like this?

Much better, yes, but I wonder what "returning" refers to. You want to
describe the origin of the NULL handle as precisely as possible. And
considering this turns out as a workaround, in a suitable place you
will also want to add a code comment, such that a later reader won't
decide this is all dead code and can be done in a simpler way.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 14:41:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 14:41:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220931.382385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHRt-0005TY-4u; Wed, 03 Nov 2021 14:41:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220931.382385; Wed, 03 Nov 2021 14:41:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHRt-0005TR-1O; Wed, 03 Nov 2021 14:41:09 +0000
Received: by outflank-mailman (input) for mailman id 220931;
 Wed, 03 Nov 2021 14:41:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miHRr-0005TL-EX
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 14:41:07 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10d44518-3cb4-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 15:41:03 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-35-4mdDKJD3NkKZuKy8ploR9Q-1; Wed, 03 Nov 2021 15:41:00 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2334.eurprd04.prod.outlook.com (2603:10a6:800:29::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 14:40:58 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 14:40:58 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0108.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:8f::49) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4608.15 via Frontend Transport; Wed, 3 Nov 2021 14:40:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10d44518-3cb4-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635950461;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=2g7NxanR3qs4lX5FJNF/0A0KESJLCj6zkSIIirdrJS0=;
	b=LU/e+tjvM/K8fDzFl41LaQRNIiyXZIFyLllHnhJFDxYp303qgCMYaSvBHq/l180Lkq7ckr
	u4THM+bnp5BIWEm0Tya8fAe9VQfexduleKR1hhAaJHDTgrP4BFIUEnP9ofObA/VgakzFAG
	eW6JqLhfFIMm9QwPWFqlLwiqW09t04s=
X-MC-Unique: 4mdDKJD3NkKZuKy8ploR9Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Rp+dQndmuNxshdKMsRB0h1jJks3N8oJU6dDK5Y85EH/9gdcNxpZXLFanHUDRdalDYWG2emGyw6LB00iBj9zeQKI78/SW2iv89MGFP8Sh5AQGG5Krq/ci7izW+1fQyeoZcl1cWxVBOTyLJmV06p8Zz4NJbp0bb27WXz+2nuTFuVISkm7x2AnI2fRFCuOwmhP7BffHvVgqJORtpzBO0dfnWR0474nyzRf75KitRcY7iQyqLcWUGKqAMEOyyksmubSGVRKHuYZFdOr+wn+WN+tcj+OHtp2VQ3VRsDE9JO2WAd+SMRLz01xKuRKV7QMoIEG4Pg34JuuOUc0oXBn6wBvCgA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2g7NxanR3qs4lX5FJNF/0A0KESJLCj6zkSIIirdrJS0=;
 b=K6GbMOH2KOawnWksnBw+skHux0itJVDKOI8Z1S9x2ch0Himmfr81BDx0Muyokeytmlw2dJyLKIkA643H3P9a/Bnege35UUqenA0PPB1cTsuPz14sGaIuUbZ7mw/aDQc9MTXlNO9FidDHiqgEW4mEecOG6WLn29S+e2C7qsqUK2rScOnUvcT+24fA2WX1LpIinjdnXs2m/+dY9IlC1IDMe6vzhYuSM3BUdAuMPsaSW8AH4rd/BvQl8AbQXi2NFYXjhkXUXE9OG5A7dGBJVxjFD67geo5HoKkUF+Tr6vfc7CbEPHB+1HU6JUQgemhk6efz1C1xjuELDy/Jj2N0H+7Qqw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <47392789-2f10-9de7-036d-b2345a24a028@suse.com>
Date: Wed, 3 Nov 2021 15:40:55 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Ian Jackson <ian.jackson@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH][4.16] x86/x2APIC: defer probe until after IOMMU ACPI table
 parsing
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P194CA0108.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:8f::49) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 40891819-e5de-46dd-9e87-08d99ed7f2e3
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2334:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2334FDA72DD6438783C1D272B38C9@VI1PR0401MB2334.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ABGLjLr/uX09eF774TJCWwOn0HMSFIfZGa4QIzZedJJeZiiYDUDaIm0DUlGlmINO4M8nPVzljHxYnpUTWUvYMfECWBgimVCbpBxtyd2A6+lGU0PBUoZ4OjagGMbFPiB4RsvhDp5S30KXttvTW6AkUTqTNaaoiJC+BRA5pNEg3sqFHP5/DyVIyPR/SgQTUMx0VeUuTt2NfgTLLCuitbS0056BRLdGLMu50m1MdMqF97ggbpQ7os3+NYs0AD4lg66IT7Dtwp68McBqpUkRuq7wujvQcvPJa9Iv0QQYqtk5MHu/oIj93xYDQbbKAPHu1AVO25oAflJbhpdy7zS4xhmbcKju7K6n+N/xBvudVgYWQp2gy73ZNT68yRca6NbIajeUemE8MmN/UtefXkvCXZWWWI11WAHQ1gt1X3mYOtdKsEoIcBkjV4ry9VHQcmQw1AvejPBePCX2kC/jVZX1bX50QLoucMC5SencFIW4Et7/psev+2tdhmiC0yMsyQz8QxoA+0/uF+GgQ1LwEoThJt8Ob6a1g6ckYF7nTI+vmOE45QGtNORC1aQnmvb4F1bdMtJ03dX6oCFP2SB4teu2NKj+liSsKIPFqwlHxZv+5X6iUjn+YRkMY9gwBQgHfwygoe36U4xl/2uMGbGPBKxC0trB2pIoq7bFVZ6rJHftAd8aY560bd6BUf/EtYlD3z+wb7qd/IwOVTdgaAxXp0g7xe5O4hT4A/K3KjJ1cFDidlFUw7A+9YmEdeEqCik+fPLK+iGL
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(316002)(66556008)(31686004)(36756003)(6486002)(26005)(2616005)(956004)(38100700002)(5660300002)(8936002)(16576012)(8676002)(186003)(4326008)(508600001)(66476007)(6916009)(86362001)(2906002)(66946007)(31696002)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bENJZWIycFQ5Tld0K3RMV016czZRaDZraHI4SGVQc2JrOGFFNjFlVnUxN0Ra?=
 =?utf-8?B?dVN5YTJGc1JyellNTHladUswTXE4ZXk0aWxyN1RZZ1dBNFhRcHJmdVRqMG94?=
 =?utf-8?B?SldYdHprZURRVVJPallNakRCOEhVaFVLSkRXUlV3K0plWmhDOHEyaVNNRS83?=
 =?utf-8?B?QXl5dE15ZVRYaTBUdlZnQVk0Z3dZb3ovRzQ3ZjFWdGlCcGhZU3V6aDNOSFFV?=
 =?utf-8?B?STBIUnFTVHl6eG5oSG5iTjY3cDVzNVZSQzVqc2EvWGk4ZHUweFFzWlNPYnRK?=
 =?utf-8?B?T1RWWVZYWHJ4MFcwTkRsa041a1lMRE1qQzV4a3RxQS96TDROaUpXODlnSkhL?=
 =?utf-8?B?MUw1TWVVNDJUcnpPdmVPL3hsczVjMGZVUFREOHRQemlheTNqOWlJQkE1MXZG?=
 =?utf-8?B?VEZ4dWVueGE1OW9BUHE4dnIyUEU4OHp5U3J0TUJxZ3dMREZyb1JmNS9YYnor?=
 =?utf-8?B?ZFFIb3IvMXlDOS9CaXJqS3hZa0RvUG9tcCtURERkSHhTWjN3ZFRRTVJRMTUw?=
 =?utf-8?B?czUrQVA1STF3bDFaeGxBYm0vUUdoWkhheUVieVpISTdKb0RmbjNoWmhIY0Nm?=
 =?utf-8?B?YkdaV1RTb0pndzZXeEVIek9uY3FwNWl1K0h5OXZzYmJzUHJnTkhjRUdIdkY1?=
 =?utf-8?B?cWNFTlBlaE1DdHRHMkZGekh0eGgzS1BjK25ySkpLM2ZUb2lBcGF4V1I0MGZl?=
 =?utf-8?B?T2dZdFJXdzBCWnZ2dlIwU2hKNFZrWmNPUlh2S20vbllHT0p4TE8vY2NUWkRs?=
 =?utf-8?B?bGZiaWJvSURkS1UxeTJDVDRJaUNVVHhWK2FwYmhQVmlxcmlRMTJ2WGxneFY1?=
 =?utf-8?B?aklWQW5acllaTEdpcXU3KzRaZEhIN0dsbWJGa3ZFd1J5ejlvSVJoQ3Vkd2ow?=
 =?utf-8?B?OWFZTE1taGRTakRtREdDbUd2NEpBVVNQTnVkY0Fmb0ZzNTloZVBTYy9jZlJy?=
 =?utf-8?B?RHFlS1RNNERNdmRyWU5reXpZa2UzZW4zNzZnS3c5dTZxSU9TQkdIMDhkUVQw?=
 =?utf-8?B?S1hYYmlyTHkxeXU0WklmbGFzTE9mRUVxU0kvVUIrMFU0OFRPSEoyUk9xRDkz?=
 =?utf-8?B?U1dXWGpOOFc1MGFFNzdqOXplaFo4L21aN1BQVjZoK0paaTRVQTVYQjRvd0xa?=
 =?utf-8?B?Y0FuMTlwa1hnWDNDd0RZTEVkMCtuT2NVdmlQaGduT2tJaWtkZUN2T1h6Rnps?=
 =?utf-8?B?ZUhWMXcvdi9DSzRlUXh1VWtmZHVwU1lDbnhkcGZpTlQwV1lQRjR0UmtHdlNW?=
 =?utf-8?B?NXd2dG1lZjFJdnk3KzNKUmpRZ2Zlem54ZnE3alZqcmF1Tjk3UGxGdXFtNVI4?=
 =?utf-8?B?cFk2dFd5cFphY3ovMTN6MDV4L3hYZUlZTjZjMzVGb3hlRHR0MnpkRnpkQkRF?=
 =?utf-8?B?ZkU3Q3FRbGcwb0lMQjg2bXpRTjQzTFBWcUNwMkxmcmNTT0tzRzhVeWdacU9p?=
 =?utf-8?B?TDBVZW9nTXA5Nlkyb2k0WUFndnlsbGJsM3NiZjk3UHRDbGhidUFwSmVtbWoy?=
 =?utf-8?B?Y3YybmdTeUl2VVBhcHNsSElVaXpQQnVQeXd3WHprbDRxRmlYa1VZTXNiNTYz?=
 =?utf-8?B?VFlVYU5UWWZuYUF1aXFDSjVNK3Z3dDA4M0wybVBodDl3cHdnTG5ZRjNGbkZI?=
 =?utf-8?B?UnlTSjdRUnUzWFJlQkRFVXVhN2llcGRYcERBSXJMVVJTbXJkVnMrV29ZdEl3?=
 =?utf-8?B?R0k0NFhuaDNpVEM1ejhaOWxPNVlwMjZLa3BkcnhtOExSaVdjQU9VNWFZcjR6?=
 =?utf-8?B?WlB0cmJtamxHZEFEb2o2VUNmcGJTL2l1QWFGQlZ6S1ZEQUJqN0RXaWNhdjFK?=
 =?utf-8?B?TDlrU3EvdUE0TEN3NDRXQ0hXaXAzVFhMUkRGbk9kT1lUTFczQ1QyL3BLTWRW?=
 =?utf-8?B?cS9meHU2RWh2RkdjSTRmOFRXSGsycjNYcHlkVEtxbk5WT1BseW5hSFFkTG1Q?=
 =?utf-8?B?ZWxRRE01QjN4T1B0VGNIdWpjQ1pwRG4vM2xodGUvRlhLTTQ1cnVEUnF2T1hN?=
 =?utf-8?B?cnlsL2RMQks3dDNMMjIrWWs3UGcrcUxmaXp3ei9IWVZvcUEvLyswdGRaMGNw?=
 =?utf-8?B?UXphbVZlZWQya2xqSU5jS2xER2JOaGx2YkFreDJUWW8wM3RWK0NPYm9XQXNn?=
 =?utf-8?B?QzVOM2xXLzlRZVJtcTJKdW5Xakx4L3VEQUgwZngyVHdCZmVDaGNzcWpYVmJM?=
 =?utf-8?Q?ykvuQOA45zgw7nHmpYKGYOs=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40891819-e5de-46dd-9e87-08d99ed7f2e3
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 14:40:58.0925
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FrCRDSITnpiS2EG19+4GJMPWG3M8Ye+8uQ4bFRsth25ojgM87wn7ZxJ4/9m/kCpPqwiWDMfiQVZm1PLfLRY9oA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2334

While commit XXXXXXXXXXXX ("x86/IOMMU: mark IOMMU / intremap not in use
when ACPI tables are missing") deals with apic_x2apic_probe() as called
from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
affected: The call needs to occur after acpi_boot_init() (which is what
calls acpi_iommu_init()), such that iommu_intremap getting disabled
there can be properly taken into account by apic_x2apic_probe().

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Based on code inspection only - I have no affected system and hence no
way to actually test the case.

--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1694,8 +1694,6 @@ void __init noreturn __start_xen(unsigne
 
     dmi_scan_machine();
 
-    generic_apic_probe();
-
     mmio_ro_ranges = rangeset_new(NULL, "r/o mmio ranges",
                                   RANGESETF_prettyprint_hex);
 
@@ -1705,6 +1703,13 @@ void __init noreturn __start_xen(unsigne
 
     acpi_boot_init();
 
+    /*
+     * Requires initial ACPI table parsing to have happened, such that
+     * check_x2apic_preenabled() would be able to observe acpi_iommu_init()'s
+     * findings, in particular it turning off iommu_intremap.
+     */
+    generic_apic_probe();
+
     if ( smp_found_config )
         get_smp_config();
 



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 14:55:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 14:55:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220938.382395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHez-0006wg-BE; Wed, 03 Nov 2021 14:54:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220938.382395; Wed, 03 Nov 2021 14:54:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHez-0006wZ-8B; Wed, 03 Nov 2021 14:54:41 +0000
Received: by outflank-mailman (input) for mailman id 220938;
 Wed, 03 Nov 2021 14:54:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miHey-0006wN-BI
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 14:54:40 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7be9a93-3cb5-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 15:54:38 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2056.outbound.protection.outlook.com [104.47.9.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-30-0fJYfuh6OOac4q3XpgE2cQ-1; Wed, 03 Nov 2021 15:54:37 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2334.eurprd04.prod.outlook.com (2603:10a6:800:29::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 14:54:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 14:54:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P250CA0011.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:330::16) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Wed, 3 Nov 2021 14:54:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7be9a93-3cb5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635951278;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tY3d8kMC8nolLW8Ft0h1VvmR9+RaTIzykG2O+FU0kJc=;
	b=TUjHI1UBNaVRFsh2Lt0PuFGPpAKq9/Eicx5pwPY41umqjxh3PY2xOi4J0bc4YZidqN/4+C
	oq2QNSepVREEl/AYIoPgVZhPEpuSVucIAdMOal9AyyKSfKM4n8VufHvP2pJ6wiHr3py941
	8p8/1al2EaW57bbMnKt7rccqiL/fqFs=
X-MC-Unique: 0fJYfuh6OOac4q3XpgE2cQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RJQ3ihsD7L15W/2Jw9gxMuD6J20l7zvpIURn7GHwpChE2kOqe7iGBd7wdeiTyqHiNee81VI018TaF7TnjwO56P67lHshuNmpSj3VLGnabLyQ1rbrKo/wX1ZKbIvwogbA4AEm2VpwgeptoSs0ky3ZLFz92/jasbvr54sUHAYta3gRLSKUt358ohcEjxpnqWfMQFZIPkWBVH73sEz/qt1SF+w+y1o0UAtI7YUFSp8z4/3EU9hh2NRPdpk5DOkfqaFfa5bg8d1cgI23vW8NCCkq7dWxRvH6gQWAdUIAgABIAoSZkOgIWo75nEx8F/7RvBtl2JGF0gJ71wJWVsNnVLURbA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tY3d8kMC8nolLW8Ft0h1VvmR9+RaTIzykG2O+FU0kJc=;
 b=KU7vYQKucpjn8GDcoB37RoO9jE8kDGGVo2HK+96TuC/USIQsDojXEKhzvvTleNuKggvHQqXDjqlwmN/DHeUxS5zCz0/z81vAxs6ek452oQIyK3vUiLyhe+kWSW/6/KkCf9DV7WpczOrnVa1cU3dM+H485C7f3ePGS78Ug2ZIXSiGdP+QJvcBHz6P0PRaZWJNPFMgOHGPIU0GBDwBmLaPIfhXOmElKaGEJgqTWx+YXD9WO4+HbA7Gtg87obhESWvEIUgx+waW/uNDFRg2q3idxG/eXy4RTRjQP1qOku4zo8/3AqYRSj4OQ0kBHI3Ca/0GNhgakzmJCkUb4gzpnoqnog==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <63548dc2-9816-e6f6-c2c2-a375d1b56404@suse.com>
Date: Wed, 3 Nov 2021 15:54:31 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 03/15] xen: harmonize return types of hypercall
 handlers
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Christopher Clark <christopher.w.clark@gmail.com>,
 xen-devel@lists.xenproject.org
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-4-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211101152015.28488-4-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P250CA0011.EURP250.PROD.OUTLOOK.COM
 (2603:10a6:20b:330::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bccb8b1d-cf93-41d3-1080-08d99ed9d94b
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2334:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2334443342B7C9D149F2E5CDB38C9@VI1PR0401MB2334.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	MxwajFgAdbnjFKS2voqQmOBpKLXFXNw1aACdHDyhg1RMqYTZyxyi4QMcpV3cApy9twea/6vqNZ4rhUHOjnwJsAbxUFCAyqkDmmljIl/4bMes+nsJqYGkZw2r2PiHiLdDz6P1dRytPqmWU/SsTRzYKOnBbAz+60VwqAqaSdVbasyNNU1JfoeDvDBIHX84FxlqTtF9ipd8JWONuuZPKloxxEk1CWJTw4pqqgd2ycp2vtopgsdttXykkPU0b+d9/H/6N2KCb1k05IgWm5Df+LykF5XelBr6REesPUte4XrB+UcQvBFR4zAYZpqvPD1EvguX8R6Dzphvotqrv1EbORk23VTQrRCzAqMT/K+QrgPtMtQyRlqx+VnIF3mFCcMQh5d5nxN4vrlDKJZSN0/x8xEmTPJAq9YjztLNtixo/X5O8nVQvIkUPRhglziXouGiCFTwk7qere6pbu9NBRYTn2aQkV/4es/K740uk4vrfdN5o7jx1InmVPdqKnyA8I+grNhMTlA6Bq4zmfR7WGEwCKMml5M0+57/HzqYtMQMRiNKEgDtxZnMO7FHhv850zi7qbCx5IKl6Y438imuxtgsnTzxA+BnxRubYgJmjWg4IAbMaQSk/p0l+YSOei/Z3nV/TgxXJyP24/4jwouNIOd6RdeuMaoPQiJeBrazsF9ArdLJDTyBjENTBJzKErpSuDspYxf9o0eKT2a+i49r1Wl7Nz8oupiAgqTCyApd4BbrJurs1Qnr6SlCGqySOLhSaozgnN84
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(66476007)(4326008)(8676002)(186003)(31696002)(7416002)(2906002)(86362001)(66946007)(26005)(66556008)(316002)(54906003)(6486002)(31686004)(36756003)(38100700002)(5660300002)(8936002)(53546011)(16576012)(6636002)(2616005)(956004)(6862004)(37006003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QWpIU2dpbWg4MlplL1Raazh1eCszQjJiaEFNcjJienJ5NG5PT0psck5HZG5t?=
 =?utf-8?B?UGxKZTJzMGpPenV0MVdVVGRxWklQZmQ4bG5Na2xrTVN5eXJRUmFNbFAxUnRD?=
 =?utf-8?B?R2NzaTFWSzVVOE1Fc3pvK01tL29ybjRqSTBQOFFUYXZHOC9BKzR0dG9MRG9i?=
 =?utf-8?B?Q0FCTHk4NFFNVzRSSFgyTXNPOWxvL1BxQk1BdW1PdkVSSExxTGR4WDhQNHJ5?=
 =?utf-8?B?NXlqTkZCWm5yVitqMG5GS25MWk9oVHluWXFtYjM0YTNYNEZraDlaRFd4KzA5?=
 =?utf-8?B?bzZmMDFxTmFIQlVYVUE2bEwxMVZ0SjlsZ3k1L1lHcWNZL1BadmRnVVlhQkdi?=
 =?utf-8?B?bGVFUWQrWlNNY1dra3hsSlF0VjJiOTBVSHhnaXRKREVjNDhqMHQvOFVKdVU5?=
 =?utf-8?B?VXlPYzZRNUNYdHllenFaZVRSbktmV25ObTB4S2czNnllN25yZk1SdVNSaGVp?=
 =?utf-8?B?ZzdCSjVqK0plYjdiejlvUXZETVppbVlKNnBJc0Z6eU5IaUNpTmxHTXBhSjBj?=
 =?utf-8?B?VWtVVHZwanhDYmVsaFgrVklYdkpBeElyRjNCSUxaaCtkYndyWEVpMGExQ2NB?=
 =?utf-8?B?ME45aGdxT2dnaXJzemJoMmhQa2h2QSt3VmZaNDZGWVFDYVpKL2FyWWtnaHQz?=
 =?utf-8?B?QTkxMmRzNzVERVVJMnR4UkNZR3lTQWJWMmYycHVPaW5qUnRjQWxiWUZNMm5o?=
 =?utf-8?B?U2VkSnZhS3daRlZXamczd1lFNm84NngxTmVrUW5ic3htVTNzczlVU0ZnOWYx?=
 =?utf-8?B?M3c3MWE3ZVNJdmtPK1R3bEd1dGxncjg3RXVZdklnYkVWQ210NUhOem80VENp?=
 =?utf-8?B?NHVCdGYwREROZmN0c29qSDQ5WkVhOU1BL1FGMmptNUpnUFZ6TllrTjNHWDJl?=
 =?utf-8?B?dnVML21HMW13VjJ1K3JuSG9jdG9JYWxlRnAveWNJRHJWNlkzczUzU01JWU41?=
 =?utf-8?B?T3NTYVdRSDNVcHZ5N3RUNDVMRHVaYjNWUndYR3RWdVJtWXAyOHVsOTZWU1hR?=
 =?utf-8?B?a0s4WHhRb1k2aXlrZWV0ZWhlR1ZKcmp0eUdWZ3UvVzVXQmI2OVBDSWJuYy9C?=
 =?utf-8?B?TGo5M282MlJudXVvU0JjTEFmWDFDVVhZRGpsSGhxaytmMiszYTZSNGtuNFNl?=
 =?utf-8?B?aXdvdkF3c1dPRUJmV2JSNmIyaS9ackhheklxWEZPY3NwQlBRN1F6aFlaYjdk?=
 =?utf-8?B?OVp0cW02RTRCTS9FeTRLelVvN3Jna2pjZ2FYTG1wOS9pKzhzR0t4NUdhWS9x?=
 =?utf-8?B?d2x3dU50WEVVdmVtZjlaL0hEN1VFMFFIQWx6VmpwNGlHSklmMGVjcjg3Y3Mw?=
 =?utf-8?B?M3MzM0RzcWlUOXhET2JwMzN5ZFR2WndiOWZRZ3hqdzVrK09jTkl2V2hzbW5m?=
 =?utf-8?B?TUN3MFlhVE01TUFZNUIxQkZPZXI2d1ZOWkZIN3kxaE5xTjJPZGdIWWV3a2RW?=
 =?utf-8?B?SUM2alF3Rld3MnBETWR2VmE1QTlzTDZTQ01xQzZPaE5EWDJaQWZZVlIzWnRk?=
 =?utf-8?B?QnlMNGhJWUd4Wi9vU3pPVkRaamdBdm0rdFdsNXhDUDliVlp1MzlTdDNlS1lx?=
 =?utf-8?B?RGNHaVNiRWF0TnczZVB3bm5HOGhsQyswQmY3SmJvQnlrc1VJUUlxSnN0NTBJ?=
 =?utf-8?B?b0FrZ2xLbVZvOEtOUEFzcCs5U1Q5N0JkOU9LVXVGa2xOTGZPQ0ZMVTFVR3Fs?=
 =?utf-8?B?TjNKUTdvUzVGTHV0NnczV0RaS0xqeXo5NjZ2clVQM2MyZzA4dXA3eVl3QmJC?=
 =?utf-8?B?R0ZtNXVxZkp4TnN5aGx1cmx0aDFDdE9kRzQ1TE1TcHVYOUMrWS9Ec0tpelhs?=
 =?utf-8?B?ektkRmpMMjlUekphdjlESnk1dG9qR0plMVRPVWMydHU1dEhkMDZLRlB4bFl5?=
 =?utf-8?B?aHNWU3RJNWtvbUszclhNbHRDS2JpTVhpWUNic0RlNjdXUU9RK0ZyR1hBZ1NM?=
 =?utf-8?B?VkVzUkVFbFMrajR5aExOVWxZWjdkc3pMaWpobnl4c1pNRENUMnZ5SDZKdldY?=
 =?utf-8?B?OHZzVjBWak55aGFtc0lzOXRPNmdVWVd4SGlMRWY3SzNlVXdOR0Mzb2lmQTJR?=
 =?utf-8?B?SWxRL2ZDNmFnNndVTVZjdWtMdFBTcG1FNUxTdGJQNkZtZlRma1VnTUIxSWNM?=
 =?utf-8?B?UHVMQXY2ZHdTVXc0RTkvR3RrZ0ZvNGhabER5N3puS0FoK0JEVnJ1SlNlZDla?=
 =?utf-8?Q?odbXDutBX6VLzPmaxJEPwuM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bccb8b1d-cf93-41d3-1080-08d99ed9d94b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 14:54:34.1672
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6VDfX19f6fBWsO9MBfnV9XW9Eg/oh80W/qmGpU3gsbMhPuZcSxqTdXlDhN1L1Q4eFJ5IMJ77XAw6UIMUEB2nyQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2334

On 01.11.2021 16:20, Juergen Gross wrote:
> Today most hypercall handlers have a return type of long, while the
> compat ones return an int. There are a few exceptions from that rule,
> however.
> 
> Get rid of the exceptions by letting compat handlers always return int
> and others always return long.
> 
> For the compat hvm case use eax instead of rax for the stored result as
> it should have been from the beginning.
> 
> Additionally move some prototypes to include/asm-x86/hypercall.h
> as they are x86 specific. Move the do_physdev_op() prototype from both
> architecture dependant headers to the common one. Move the
> compat_platform_op() prototype to the common header.
> 
> Switch some non style compliant types (u32, s32, s64) to style compliant
> ones.
> 
> Rename paging_domctl_continuation() to do_paging_domctl_cont() and add
> a matching define for the associated hypercall.
> 
> Make do_callback_op() and compat_callback_op() more similar by adding
> the const attribute to compat_callback_op()'s 2nd parameter.
> 
> Change the type of the cmd parameter for [do|compat]_kexec_op() to
> unsigned int, as this is more appropriate for the compat case.

I continue to have reservations here, but I'll leave ack-ing of this
to the kexec maintainer.

> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one further nit:

> --- a/xen/arch/x86/x86_64/platform_hypercall.c
> +++ b/xen/arch/x86/x86_64/platform_hypercall.c
> @@ -4,10 +4,11 @@
>  
>  EMIT_FILE;
>  
> +#include <xen/hypercall.h>
> +#include <xen/types.h>
>  #include <xen/lib.h>
>  #include <compat/platform.h>

Would have been nice if the addition was done such that the result
was properly sorted; one way to do that would be to simply omit
xen/types.h which already gets included by xen/lib.h (and very
likely always will be).

Also I'm not convinced the do_get_debugreg() hoops are really
useful to retain if one way or another we need to rely on
implementation defined behavior anyway.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 14:57:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 14:57:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220945.382406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHhq-0007dF-TZ; Wed, 03 Nov 2021 14:57:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220945.382406; Wed, 03 Nov 2021 14:57:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHhq-0007d8-Q5; Wed, 03 Nov 2021 14:57:38 +0000
Received: by outflank-mailman (input) for mailman id 220945;
 Wed, 03 Nov 2021 14:57:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4+yV=PW=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1miHhp-0007d0-9b
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 14:57:37 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f82f435-3cb6-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 15:57:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f82f435-3cb6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635951454;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=aXxmYFVR6WMQhOyw2OvFSjNOG0Yto59wwQ0MTdF3UJA=;
  b=ITYXNu1Yxy0vfprCUOCjoN5U5Z5NDTy9fB/+ymyIhxSaMSXkJa1xzZwy
   cvaTfziyn/c88TnDFrMwCaClxMElIi/8BKHGxbDmzFHVOO5f0rT8Mv4ao
   e2mUnE3lnqAozoMrR5JJ65/Wp47ELZrZAxcZmh86cpwCPjO89MRlCwwFN
   4=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: VlMNu8gYb4vcBOv7m1bS/Kss7gtLa1UbYJPFW0FjFxwEXlEqe6IsvAnJkVabidpRjM5wkuoGun
 57B+0g113T1/wynDoX/A7X6qsgIJqFEm4g2BrzVXLAYhlWC6ej3xfYdXdRT1VWZvvTieKrD5Ln
 dgjzVcJFQTiORxcvRbMYL5GShLWZRAxevH/SY9SzKwHeFLSlpV2L3k8urQZJhlYmHwxuXFqPff
 AFp3+Ic0LchqaqBU5MJxu+NKvdteOEjfFaXAknuJLCtlJvCCbxy0AxA0wcb82X+njUAeYjTSYg
 tYj3q7yxwjRSpiZ6+Uvp0Hkf
X-SBRS: 5.1
X-MesageID: 58927626
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:a1y3iqO/uBBsoOfvrR31kcFynXyQoLVcMsEvi/4bfWQNrUom3jZRx
 2EaXmmCOf7YNDH3KtggaIzjphsCvZXdztVhHgto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eo4w7VRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYo2qoxuBO9
 N5gjp6bdixyYv3PkcsmeTANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/iatIUHgm1u7ixINdDmS
 ZMkdwMoVz/nYBljYU8PA4kinM790xETdBUH8QnI9MLb+VP7wAVv3ZD3PdHSe9jMQt9a9m6aq
 XjB5H/RGQwBOZqUzj/t2nOzhMffkCXjQoUQGbaksPlwjzW7+GsXDxEHUEqhltOwgEW+RtF3J
 lQd/2wlqq1a3FewUtD3Uhm8oXiFlh0RQdxdF6s98g7l4rXQyxaUAC4DVDEpQMwrsoo6SCIn0
 neNnsj1Hnp/vbuNU3Wf+7yI6zSoNkA9L3IGZCICZRsI5Z/kuo5bphDFQ8tnEaW1psboAjy2y
 DePxBXSnJ1K05RNjf/iuwma3XT8/fAlUzLZ+C2IfzuV0T9ySbWnTLODsgSL7v9vF6ywGwzpU
 Gc/p+CS6+UHDJeonSOLQfkQELzB28tpIAEwknY0QcB/qm3FF2qLONkJvWogfBsB3tMsIGexO
 CfuVRVtCIi/1ZdARYt+eMqPBssj1sAM/vy1B6mPPrKijnWcHTJrHR2Ch2bMgAgBc2B2yMnT3
 Kt3l+72Ux727ow9nVKLqx81i+ND+8zH7Tq7qWrH5xqmy6GCQ3WeVK0INlCDBshgsvjZ8FqFr
 Y4Fa5vVo/m6bAEYSnOJmWL0BQtSRUXX+Lis85AHHgJ9ClM+cI3eNxMh6ex4INE090ikvuzJ4
 mu8SidlJKnX3hX6xfGxQik7MtvHBM8nxVpiZHBEFQv4ihALPNf0hI9CJsRfQFXS3LE6pRKCZ
 6JeIJvo7zUmYmmvxgnxmrGm8Nc5LET33lnTV8dnCRBmF6Ndq8Xy0oaMViPk9TUUDzrxss07o
 ra60RjcT4ZFTANnZPs6otr1p79olXRCyu90QWXSJdxfJBfl/IRwcnSjhf4rOcAcbx7Ew2LCh
 QqRBB4Zo8jLopM0r4aV1fzV8d/xHrssBFdeEkna8a2yaXvQ8F28zNISS+2PZz3cCj/5of3we
 eVPwvjgG/Qbh1IW4ZFkGrNmwPtmtdvirrNX1Cp+G3DPYwj5A79sOCDej8JOqrdM1vlSvg7vA
 hCD/dxTOLOoPsL5EQFOeFp5P7rbjfxNw2vc9/U4Jkn+9RRbxrvfXBUAJQSIhQxcMKBxbNEvz
 9A+tZNE8Ae4kBcrbIqL13gG62SWI3UceKw7rZVGUpTzgw8mx1weM5zRDij6vMOGZ9lWaxR4J
 zaVgOzJhqhGx1qEeH02TCCf0e1YjJUImRZL0F5deAjZxoub3qc6jE9L7DA6bgVJ1REWget8N
 19iO1BxOajTrSxjg9JOXjz0FgxMbPFDFpcdF7fdeLXlcnSV
IronPort-HdrOrdr: A9a23:rCC8I6D/MuDvByrlHehCsceALOsnbusQ8zAXPh9KJiC9I/b1qy
 nxppkmPH/P6Qr4WBkb6LS90c67MAnhHP9OkPIs1NKZMjUO11HYSr2KgbGSoQEIeBeOidK1t5
 0QCpSWYeeYZTMR7beYkXeF+r4bsaW6GcuT9IDjJhlWPGRXg/YK1XYFNu/XKDw/eCB2Qb4CUL
 aM7MtOoDStPVwRc8SAH3EAG8zOvcfCmp7KaQMPQ0dP0njFsRqYrJrBVzSI1BYXVD1ChZ8k7G
 j+igT8ooGuqeuyxBPw33Laq75WhNzi4N1eA9HksLlfFhzcziKTIKhxUbyLuz445Mmp9VYRid
 HJ5ywtOsxigkmhCV2dkF/I4U3NwTwu43jtxRuzmn34u/H0Qzo8Fo5omZ9ZWgGx0TtugPhMlI
 Zwm06JvZteCh3N2A7n4cLTah1snk2o5VI/jO8oiWBFW4d2Us4ckWUmxjIVLH48JlO71Gh+e9
 MeT/00pcwmPG9yVkqp8FWGm7eXLzYO9hTveDl3hiXa6UkSoJlD9Tpp+CUopAZ0yHsMceg02w
 36CNUaqFg3dL5vUUtcPpZ2fSLlMB2FffrzWFjiU2gPUpt3f07wlw==
X-IronPort-AV: E=Sophos;i="5.87,206,1631592000"; 
   d="scan'208";a="58927626"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XklMi+kIV/jEs+S0hqpbbjO6r02iCTYHmRYkAKzEC6oTRvtTHu/W1z2BuAAz3F4Gqerb4OlvYTQ4PkwH6l3NP13Hvpq9mhnNq3yPxh0rN7QWip2Mz2xWl6vM768TtwTVa+qBCurnp9iLKJTgpw/EzC3qiQRhMILQ7JMPQS16wI+DcBE5yW/JA9bG7yqkhq2f0/eV4hfW9MJYB03z1cCFfhKf1BOEevAGt80Ud2xOETWgeUR4vlAQCcMZcpGHlbla4piS0NX0BGSFSvB1hNJLn2voLF/PWuEvspeVk0frfolvtGn17EAetvdMT00j3dvUXSfOx33RnXLtc8dXWVg4Lg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wDHTXezlHTAeqal1gSY+gstw7qSiZFAI2pCBNaoUvZ4=;
 b=MyVreDhnPoZVsyftkwcaGZrd7bDgJR5LLjukwW4hylNZJcgxQ1bjCku8PP0n4VRp3/v8vWbAufjI6+XFSmYKwq+crhtEe7FiqIvKr8wO39rgD6MUnzRbjj+eRga4XyNtegbxiyulVKsALI6o71HlOnowpw5Q1sD/rd8wOgP9LtdPEm/zHwYQKmRh7CN013TFkdWVCN2Of/pWwLBy7WDPKsXZ+D36p60DndVPJYIdUIIX3JgDk0nuIZ/YkT9ZvrKLuUpqVUmfOjv2Y3hIWcJ945X32vf9z/dXV4Ek3SWuLNJ5rJDhXLbgmyzADYsEmLqVYDk+T3fiqpcu/T3PiP2t5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wDHTXezlHTAeqal1gSY+gstw7qSiZFAI2pCBNaoUvZ4=;
 b=IyUiXq0lXeuWxFmWkrSQIQmf9YGaE6pHITh2xqp79Fc5IFzK+LXIORsGiu2P1zcBypllJx0nkXCSG/6xJfV0MmnoTu9Hijpk3ahhZju5GFaOPrLEs9hi/JzutuyTVZsA1OwKlRF1q9ctyrvRhdmBhS/Admi6yJFk5FGku3K6p/w=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Christian
 Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH for-4.16 v5] gnttab: allow setting max version per-domain
Date: Wed,  3 Nov 2021 15:57:19 +0100
Message-ID: <20211103145719.96162-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR3P281CA0054.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:4a::18) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8445e4e5-2aa9-4279-1c2a-08d99eda40ab
X-MS-TrafficTypeDiagnostic: DM5PR03MB3212:
X-Microsoft-Antispam-PRVS: <DM5PR03MB32121A706B733867F66C43B28F8C9@DM5PR03MB3212.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: lY8Q09gARzEl7EH11NuOXEY/KD+XfTo195hvFpyHtdhkoSssvjtD2+8itfkV2ytb0ucoPvEzGzlxvM0jQDIPaXCICza6mkdrC4YeXtRgKptMITJ4VtUimTCaQYykX1toiWvtpNoC4od0gqi67ZFHCPRGLeJ1fUhYR0aU1TQu8UbhHELx5ynEJRrobWDFSr1oSBCn6FUN44zg6lX7RZqUdAZofyKWZHLljYtXepeCZ3NDAT1YwOeVXg6rv3i0CFIsQSOckaD97DfA935r4ztjKeSWPggMkONW/jSvY5ZzbxCU1tS2CfDq3k6pXJ/F/YoTxRFh/jUDGlXgo9tkN2/qBeJspUjfELDxptFsxw5ZLirLEIQ2PCUST234ySPB9wzURiC1X3D2/JrEtpVqcVBhfGLmVxh7lR6E/Iqa8VZJiaDbR8FlXWagi0yFoNqH/AJsFH2zybKZ5qvuhiR7zk1EOBFIcOR1sVOR3D29Zlh5Ig0E9ExZkfGpd6xNllLPd3Zniz9RNMmS0RO5y8popcDLU4pxojGaC1sfKhw2G2lqTymdYmmXhOXEx5+2Mh8ZT+eBpxAf4ay4GZK9XaljnCN8pJ9DT11RRioV0g9WzwXVSOo6N97JsNI7kHIcbb3o848MdiKA4DpoJp4X9bKJheBAdFRSumzRlxtUNhMbHyhZdteNN1FYvretNFEtviJTEP2AsdP+di09O7WNCoDzx0yzkbukUp5FeoYNDIYHtrpRPlE=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(6496006)(30864003)(5660300002)(8936002)(4326008)(66476007)(66556008)(38100700002)(2616005)(82960400001)(66946007)(1076003)(956004)(6486002)(36756003)(86362001)(2906002)(8676002)(26005)(508600001)(186003)(966005)(6666004)(6916009)(316002)(54906003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M3A1WDIvZDdNV2duWTNKU3Y1ZzNPQ2Z6dDBvalgweFJvbFhVQllzak5LV3FZ?=
 =?utf-8?B?ckNSMUR4YjJ5TGpjemljSlJJK3lPcU5vaDgrNkd1R3lhTVIvdDg0SVA2UmZr?=
 =?utf-8?B?eWlrWDYvRlFqWGVoNDh0dzBkbVpDVmRSZ2VYcE55UTVDSDNmWHFRWnBXaDRu?=
 =?utf-8?B?enFIVWEvaFJxL0NvT21TbzZ0RUtQdHZZS2ZOMjlhTUNaczlONEZRMFYrUk9Z?=
 =?utf-8?B?Nzg4Q05wa0JDNWRmVlM0WHRaUWdaYjgwUytrSzJuNjBLbGJMaVdLbXBGd2pB?=
 =?utf-8?B?ZjYyeWZjaDJhRGoyQ080ei96RDJuenllSURZbXBMYzBLbTFJYWlGQVpCbGFp?=
 =?utf-8?B?N0p1UHFUVjZLL0pIbVozNTI4dW5wb0NXTStKM2VFSzRjZVc3dDVGeEx2LzdO?=
 =?utf-8?B?d0t4S0hJY0Y0bmlSVzVOUFZEVjdYenN1ZVU0Y1R1UmdVRFlkVENOd1BOd2l6?=
 =?utf-8?B?N2dVMnUrb3RzT201Y1M1Rklvb0tLUVZUdnAwRXF0aVNaMzlSR2NvQnVPbllx?=
 =?utf-8?B?VThDa1JDQ3VzOFZCKzQ3T09iQk9qNW5zZS91TDZhYVVZbXdSWWZGSFZhbHNE?=
 =?utf-8?B?cks5aHdLbm1XenZuZk9GVHdkM0FNallkeGFkbjhmdTJqRlFGbDZOZFpWYnNT?=
 =?utf-8?B?MG03SFRvSGUvak9Rb1dka2ZaelVtTHIreHJRTnF5TERoVWVWemR3eThEalYv?=
 =?utf-8?B?Z2t5QlZvcUl0eXJMQ0pnYXFMT1k0UWNyZE5EM3k2RXJjTnQ3cnMxbW9QYjM1?=
 =?utf-8?B?eS85V2pwUXduendRelcvUWtveTRLWGpiQVJPUHdaU0RuRWYrRzJLblRBYVFD?=
 =?utf-8?B?N3p6bG9HRk4wQk5kVVVxWDRkSTNtdGpMdHlhZjN0b3FXaWdPbGRRMEZqSkRK?=
 =?utf-8?B?a3V3c1FENkdXcXNXTE81ejlHSmJpanVxYXNnNStGUjRCRVNnYmhSQWRDNU1C?=
 =?utf-8?B?OVVYaHY0RS8ydXlJSGg3MmdZM3NnKzhNT3MwNG1pRlZsVzRPR2F5RjVOOE90?=
 =?utf-8?B?cUpDRmYwQWZXbmJFT1NEemJFSFQyZXVxWFI0UTJvL1BDRDRwS3pKTEZ2OTIx?=
 =?utf-8?B?WXIzTTlOTUhUZDdONTl1SE80Ykl2WjdNR2k2UFg2U1FGQ0dkOHFFWnl4WUJp?=
 =?utf-8?B?TllNZkUwYTQxMzBOQmRPS2FuZTdtSE1zYTlWR3lSKzdhUjlHb28rYzl2K3pj?=
 =?utf-8?B?SjV0S0tSQnBEQ01HNERza0xLS3pLMk95TDdWNzhZQ3U4bmh0MVFwcDl0V054?=
 =?utf-8?B?ZkgvZk82SmJRdmVRdzVoa3hjcXdubXoyZDhwQXNQclZCWUhzM2JyMkQ3ZjdG?=
 =?utf-8?B?cURnLzFmdjZJSG9LODdkemgyNGdURmUwWTQ1ajYwRWVTSHV2RDQ2cnpuMUwr?=
 =?utf-8?B?QWlRT1Nxd0cyM3hhcHVEb0pxaFNyMC8ycHNBSTBETzdETnpDLzBwSHVoemZP?=
 =?utf-8?B?c21HaXFIOWxhcEtyK1E0U3FpTW4rd2s0TTY2WmVqVnFRVmRRWkl3Tnl6ODQw?=
 =?utf-8?B?WjRYL3ozSktPek5sdGxxTExvbHo1YWdmUmFQNVZ1R3JYbjhQajhOKzFiQllz?=
 =?utf-8?B?WmlPTWVXNDlCVHRGT25lYUw5dEJRVlVER0JLUHpTdVBRblU0SGt6b3VTRjBV?=
 =?utf-8?B?MVVVbUcrek13TC9QM05GdUJnUjdNN2k0OE1qL1ZCQy9NbTB3Q1Jrc2VZTFJB?=
 =?utf-8?B?RTJQdE92ODZQbVBRNE9pOWFSUFFMdjYvUXFwaWxPMGpWNVg1bzllZzdFU0VO?=
 =?utf-8?B?cmIrZlN1VFJVUVBZVXdkc3pMVmZGMmZoMnE2RjlwMmtKMngvOERnT3lIQjBZ?=
 =?utf-8?B?OFBPeWJBTnFVUnhZa1NyelRYa2t5bHhSYmxmSGNYaXhCWHl2M3NrZDgzd2E3?=
 =?utf-8?B?WUFNREZnTEdualNzNjNyenZwc1JNOW9oWTE3ZndFZHJoS1piUERNcURXWmRo?=
 =?utf-8?B?azdseGhZQ1F6M3BsWWFJTFl6Tjc0dzE4aG0zaU56ckU4REp6QVVDOUhZZWZ5?=
 =?utf-8?B?NGlZYkhkYTVwVVhpV3BiNG1LNW9CZHJQSHFMOVpRSE1mSFBXRCtwT3FuMDR4?=
 =?utf-8?B?SjZ2RUVGODQ4Y1Z6T085T2hRYlFLSnlncUU1YVk4SHdnTEp0SXVOS3FCZkNz?=
 =?utf-8?B?WVdtdWFGVE80M2NHVkVldXFmbWRMblRjWm5PbmNDNGJlTGlNekh4cHdYaWF3?=
 =?utf-8?Q?1yTyfotlGMTsLdq0WvwW3FA=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 8445e4e5-2aa9-4279-1c2a-08d99eda40ab
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 14:57:27.6681
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HxgFQFVFbOFCH6E5RqcXWA4JU9xCq/M60OqY6qoYuUo+vFazHvaszmC3P3vNAhGb841XVjonfa3U8u7Ua5lw2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3212
X-OriginatorOrg: citrix.com

Introduce a new domain create field so that toolstack can specify the
maximum grant table version usable by the domain. This is plumbed into
xl and settable by the user as max_grant_version.

Previously this was only settable on a per host basis using the
gnttab command line option.

Note the version is specified using 4 bits, which leaves room to
specify up to grant table version 15. Given that we only have 2 grant
table versions right now, and a new version is unlikely in the near
future using 4 bits seems more than enough.

xenstored stubdomains are limited to grant table v1 because the
current MiniOS code used to build them only has support for grants v1.
There are existing limits set for xenstored stubdomains at creation
time that already match the defaults in MiniOS.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
This needs to be applied on top of Andrew's:

xen: Report grant table v1/v2 capabilities to the toolstack
https://lore.kernel.org/xen-devel/20211029173813.23002-1-andrew.cooper3@citrix.com/

NB: the stubdom max grant version is cloned from the domain one. Not
sure whether long term we might want to use different options for the
stubdom and the domain. In any case the attack surface will always be
max(stubdom, domain), so maybe it's just pointless to allow more fine
grained settings.
---
Changes since v4:
 - Remove the check for 16TB: there's no check currently, and there's
   some discussion about how to implement it properly for all guest
   types.
 - Place the logic to pick the default version in the toolstack, so
   the create domain domctl will always specify a grant table version.
   Such version will also be part of the migration stream.

Changes since v3:
 - Expand commit message re xenstored stubdomains.

Changes since v2:
 - Drop XEN_DOMCTLGRANT_MAX - it's unused.
 - Rename max_grant_version field to max_version in the grant table
   struct.
 - Print domain on log messages.
 - Print a message if host has more than 16Tb of RAM and grant v2 is
   disabled.
 - Add a TB macro.

Changes since v1:
 - Introduce a grant_opts field and use the low 4 bits to specify the
   version. Remaining bits will be used for other purposes.
---
Cc: Ian Jackson <iwj@xenproject.org>
---
Posting this patch alone as I think allowing to control transient
grants on a per-domain basis will require a bit more of work.

Release rationale:

We have had a bunch of security issues involving grant table v2 (382,
379, 268, 255) which could have been avoided by limiting the grant
table version available to guests. This can be currently done using a
global host parameter, but it's certainly more helpful to be able to
do it on a per domain basis from the toolstack.

Changes to the hypervisor by this patch are fairly minimal, as there
are already checks for the max grant table version allowed, so the
main change there is moving the max grant table version limit inside
the domain struct and plumbing it through the toolstrack.

I think the risk here is quite low for libxl/xl, because it's
extensively tested by osstest, so the main risk would be breaking the
Ocaml stubs, which could go unnoticed as those are not actually tested
by osstest.
---
 docs/man/xl.cfg.5.pod.in             |  6 ++++++
 docs/man/xl.conf.5.pod.in            |  6 ++++++
 tools/helpers/init-xenstore-domain.c |  2 ++
 tools/include/libxl.h                |  7 +++++++
 tools/libs/light/libxl_create.c      | 23 +++++++++++++++++++++++
 tools/libs/light/libxl_dm.c          |  1 +
 tools/libs/light/libxl_types.idl     |  1 +
 tools/ocaml/libs/xc/xenctrl.ml       |  1 +
 tools/ocaml/libs/xc/xenctrl.mli      |  1 +
 tools/ocaml/libs/xc/xenctrl_stubs.c  |  5 ++++-
 tools/xl/xl.c                        |  8 ++++++++
 tools/xl/xl.h                        |  1 +
 tools/xl/xl_parse.c                  |  9 +++++++++
 xen/arch/arm/domain_build.c          |  2 ++
 xen/arch/x86/setup.c                 |  1 +
 xen/common/domain.c                  |  3 ++-
 xen/common/grant_table.c             | 21 +++++++++++++++++++--
 xen/include/public/domctl.h          |  5 +++++
 xen/include/xen/grant_table.h        |  5 +++--
 19 files changed, 102 insertions(+), 6 deletions(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 55c4881205..21a39adb70 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -580,6 +580,12 @@ to have. This value controls how many pages of foreign domains can be accessed
 via the grant mechanism by this domain. The default value is settable via
 L<xl.conf(5)>.
 
+=item B<max_grant_version=NUMBER>
+
+Specify the maximum grant table version the domain is allowed to use. Current
+supported versions are 1 and 2. The default value is settable via
+L<xl.conf(5)>.
+
 =item B<nomigrate=BOOLEAN>
 
 Disable migration of this domain.  This enables certain other features
diff --git a/docs/man/xl.conf.5.pod.in b/docs/man/xl.conf.5.pod.in
index b48e99131a..df20c08137 100644
--- a/docs/man/xl.conf.5.pod.in
+++ b/docs/man/xl.conf.5.pod.in
@@ -101,6 +101,12 @@ Sets the default value for the C<max_maptrack_frames> domain config value.
 Default: value of Xen command line B<gnttab_max_maptrack_frames>
 parameter (or its default value if unspecified).
 
+=item B<max_grant_version=NUMBER>
+
+Sets the default value for the C<max_grant_version> domain config value.
+
+Default: maximum grant version supported by the hypervisor.
+
 =item B<vif.default.script="PATH">
 
 Configures the default hotplug script used by virtual network devices.
diff --git a/tools/helpers/init-xenstore-domain.c b/tools/helpers/init-xenstore-domain.c
index 6836002f0b..41a7c38ada 100644
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -85,9 +85,11 @@ static int build(xc_interface *xch)
          * 1 grant frame is enough: we don't need many grants.
          * Mini-OS doesn't like less than 4, though, so use 4.
          * 128 maptrack frames: 256 entries per frame, enough for 32768 domains.
+         * Currently Mini-OS only supports grant v1.
          */
         .max_grant_frames = 4,
         .max_maptrack_frames = 128,
+        .grant_opts = 1,
     };
 
     xs_fd = open("/dev/xen/xenbus_backend", O_RDWR);
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 54c10f6efe..2bbbd21f0b 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -520,6 +520,13 @@
  */
 #define LIBXL_HAVE_PHYSINFO_CAP_GNTTAB 1
 
+/*
+ * LIBXL_HAVE_MAX_GRANT_VERSION indicates libxl_domain_build_info has a
+ * max_grant_version field for setting the max grant table version per
+ * domain.
+ */
+#define LIBXL_HAVE_MAX_GRANT_VERSION 1
+
 /*
  * libxl ABI compatibility
  *
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index 5a61d01722..b6855c7b46 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -454,6 +454,28 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         libxl_defbool_setdefault(&b_info->nested_hvm,               false);
     }
 
+    if (b_info->max_grant_version == LIBXL_MAX_GRANT_DEFAULT) {
+        libxl_physinfo info;
+
+        rc = libxl_get_physinfo(CTX, &info);
+        if (rc) {
+            LOG(ERROR, "failed to get hypervisor info");
+            return rc;
+        }
+
+        if (info.cap_gnttab_v2)
+            b_info->max_grant_version = 2;
+        else if (info.cap_gnttab_v1)
+            b_info->max_grant_version = 1;
+        else
+            /* No grant table support reported */
+            b_info->max_grant_version = 0;
+    } else if (b_info->max_grant_version & ~XEN_DOMCTL_GRANT_version_mask) {
+        LOG(ERROR, "max grant version %d out of range",
+            b_info->max_grant_version);
+        return -ERROR_INVAL;
+    }
+
     return 0;
 }
 
@@ -607,6 +629,7 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
             .max_evtchn_port = b_info->event_channels,
             .max_grant_frames = b_info->max_grant_frames,
             .max_maptrack_frames = b_info->max_maptrack_frames,
+            .grant_opts = b_info->max_grant_version,
             .vmtrace_size = ROUNDUP(b_info->vmtrace_buf_kb << 10, XC_PAGE_SHIFT),
         };
 
diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 9d93056b5c..9a8ddbe188 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -2320,6 +2320,7 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
 
     dm_config->b_info.max_grant_frames = guest_config->b_info.max_grant_frames;
     dm_config->b_info.max_maptrack_frames = guest_config->b_info.max_maptrack_frames;
+    dm_config->b_info.max_grant_version = guest_config->b_info.max_grant_version;
 
     dm_config->b_info.u.pv.features = "";
 
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index 573bba68ee..2a42da2f7d 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -519,6 +519,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
 
     ("max_grant_frames",    uint32, {'init_val': 'LIBXL_MAX_GRANT_DEFAULT'}),
     ("max_maptrack_frames", uint32, {'init_val': 'LIBXL_MAX_GRANT_DEFAULT'}),
+    ("max_grant_version",   integer, {'init_val': 'LIBXL_MAX_GRANT_DEFAULT'}),
     
     ("device_model_version", libxl_device_model_version),
     ("device_model_stubdomain", libxl_defbool),
diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
index ed2924a2b3..7503031d8f 100644
--- a/tools/ocaml/libs/xc/xenctrl.ml
+++ b/tools/ocaml/libs/xc/xenctrl.ml
@@ -84,6 +84,7 @@ type domctl_create_config =
 	max_evtchn_port: int;
 	max_grant_frames: int;
 	max_maptrack_frames: int;
+	max_grant_version: int;
 	arch: arch_domainconfig;
 }
 
diff --git a/tools/ocaml/libs/xc/xenctrl.mli b/tools/ocaml/libs/xc/xenctrl.mli
index d20dc0108d..d1d9c9247a 100644
--- a/tools/ocaml/libs/xc/xenctrl.mli
+++ b/tools/ocaml/libs/xc/xenctrl.mli
@@ -76,6 +76,7 @@ type domctl_create_config = {
   max_evtchn_port: int;
   max_grant_frames: int;
   max_maptrack_frames: int;
+  max_grant_version: int;
   arch: arch_domainconfig;
 }
 
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index ad953d36bd..eca0b8b334 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -188,7 +188,8 @@ CAMLprim value stub_xc_domain_create(value xch, value wanted_domid, value config
 #define VAL_MAX_EVTCHN_PORT     Field(config, 5)
 #define VAL_MAX_GRANT_FRAMES    Field(config, 6)
 #define VAL_MAX_MAPTRACK_FRAMES Field(config, 7)
-#define VAL_ARCH                Field(config, 8)
+#define VAL_MAX_GRANT_VERSION   Field(config, 8)
+#define VAL_ARCH                Field(config, 9)
 
 	uint32_t domid = Int_val(wanted_domid);
 	int result;
@@ -198,6 +199,7 @@ CAMLprim value stub_xc_domain_create(value xch, value wanted_domid, value config
 		.max_evtchn_port = Int_val(VAL_MAX_EVTCHN_PORT),
 		.max_grant_frames = Int_val(VAL_MAX_GRANT_FRAMES),
 		.max_maptrack_frames = Int_val(VAL_MAX_MAPTRACK_FRAMES),
+		.grant_opts = Int_val(VAL_MAX_GRANT_VERSION),
 	};
 
 	domain_handle_of_uuid_string(cfg.handle, String_val(VAL_HANDLE));
@@ -251,6 +253,7 @@ CAMLprim value stub_xc_domain_create(value xch, value wanted_domid, value config
 	}
 
 #undef VAL_ARCH
+#undef VAL_MAX_GRANT_VERSION
 #undef VAL_MAX_MAPTRACK_FRAMES
 #undef VAL_MAX_GRANT_FRAMES
 #undef VAL_MAX_EVTCHN_PORT
diff --git a/tools/xl/xl.c b/tools/xl/xl.c
index f422f9fed5..2d1ec18ea3 100644
--- a/tools/xl/xl.c
+++ b/tools/xl/xl.c
@@ -55,6 +55,7 @@ bool progress_use_cr = 0;
 bool timestamps = 0;
 int max_grant_frames = -1;
 int max_maptrack_frames = -1;
+int max_grant_version = LIBXL_MAX_GRANT_DEFAULT;
 libxl_domid domid_policy = INVALID_DOMID;
 
 xentoollog_level minmsglevel = minmsglevel_default;
@@ -219,6 +220,13 @@ static void parse_global_config(const char *configfile,
     else if (e != ESRCH)
         exit(1);
 
+    e = xlu_cfg_get_bounded_long (config, "max_grant_version", 0,
+                                  INT_MAX, &l, 1);
+    if (!e)
+        max_grant_version = l;
+    else if (e != ESRCH)
+        exit(1);
+
     libxl_cpu_bitmap_alloc(ctx, &global_vm_affinity_mask, 0);
     libxl_cpu_bitmap_alloc(ctx, &global_hvm_affinity_mask, 0);
     libxl_cpu_bitmap_alloc(ctx, &global_pv_affinity_mask, 0);
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 7e23f30192..cf12c79a9b 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -282,6 +282,7 @@ extern char *default_colo_proxy_script;
 extern char *blkdev_start;
 extern int max_grant_frames;
 extern int max_maptrack_frames;
+extern int max_grant_version;
 extern libxl_bitmap global_vm_affinity_mask;
 extern libxl_bitmap global_hvm_affinity_mask;
 extern libxl_bitmap global_pv_affinity_mask;
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index c503b9be00..117fcdcb2b 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1431,6 +1431,15 @@ void parse_config_data(const char *config_source,
     else
         exit(1);
 
+    e = xlu_cfg_get_bounded_long (config, "max_grant_version", 0,
+                                  INT_MAX, &l, 1);
+    if (e == ESRCH) /* not specified */
+        b_info->max_grant_version = max_grant_version;
+    else if (!e)
+        b_info->max_grant_version = l;
+    else
+        exit(1);
+
     libxl_defbool_set(&b_info->claim_mode, claim_mode);
 
     if (xlu_cfg_get_string (config, "on_poweroff", &buf, 0))
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 0167731ab0..9e92b640cd 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2967,6 +2967,7 @@ void __init create_domUs(void)
             .max_evtchn_port = -1,
             .max_grant_frames = -1,
             .max_maptrack_frames = -1,
+            .grant_opts = opt_gnttab_max_version,
         };
 
         if ( !dt_device_is_compatible(node, "xen,domain") )
@@ -3074,6 +3075,7 @@ void __init create_dom0(void)
         .max_evtchn_port = -1,
         .max_grant_frames = gnttab_dom0_frames(),
         .max_maptrack_frames = -1,
+        .grant_opts = opt_gnttab_max_version,
     };
 
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index b101565f14..26fee5d9fb 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -750,6 +750,7 @@ static struct domain *__init create_dom0(const module_t *image,
         .max_evtchn_port = -1,
         .max_grant_frames = -1,
         .max_maptrack_frames = -1,
+        .grant_opts = opt_gnttab_max_version,
         .max_vcpus = dom0_max_vcpus(),
         .arch = {
             .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 8b53c49d1e..0c7052c770 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -678,7 +678,8 @@ struct domain *domain_create(domid_t domid,
         init_status |= INIT_evtchn;
 
         if ( (err = grant_table_init(d, config->max_grant_frames,
-                                     config->max_maptrack_frames)) != 0 )
+                                     config->max_maptrack_frames,
+                                     config->grant_opts)) != 0 )
             goto fail;
         init_status |= INIT_gnttab;
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index a20319b22a..8b322b51c0 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -53,6 +53,7 @@ struct grant_table {
     percpu_rwlock_t       lock;
     /* Lock protecting the maptrack limit */
     spinlock_t            maptrack_lock;
+    unsigned int          max_version;
     /*
      * Defaults to v1.  May be changed with GNTTABOP_set_version.  All other
      * values are invalid.
@@ -1917,11 +1918,26 @@ active_alloc_failed:
 }
 
 int grant_table_init(struct domain *d, int max_grant_frames,
-                     int max_maptrack_frames)
+                     int max_maptrack_frames, unsigned int options)
 {
     struct grant_table *gt;
+    unsigned int max_grant_version = options & XEN_DOMCTL_GRANT_version_mask;
     int ret = -ENOMEM;
 
+    if ( !max_grant_version )
+    {
+        dprintk(XENLOG_INFO, "%pd: invalid grant table version 0 requested\n",
+                d);
+        return -EINVAL;
+    }
+    if ( max_grant_version > opt_gnttab_max_version )
+    {
+        dprintk(XENLOG_INFO,
+                "%pd: requested grant version (%u) greater than supported (%u)\n",
+                d, max_grant_version, opt_gnttab_max_version);
+        return -EINVAL;
+    }
+
     /* Default to maximum value if no value was specified */
     if ( max_grant_frames < 0 )
         max_grant_frames = opt_max_grant_frames;
@@ -1947,6 +1963,7 @@ int grant_table_init(struct domain *d, int max_grant_frames,
     gt->gt_version = 1;
     gt->max_grant_frames = max_grant_frames;
     gt->max_maptrack_frames = max_maptrack_frames;
+    gt->max_version = max_grant_version;
 
     /* Install the structure early to simplify the error path. */
     gt->domain = d;
@@ -3076,7 +3093,7 @@ gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t) uop)
         goto out;
 
     res = -ENOSYS;
-    if ( op.version == 2 && opt_gnttab_max_version == 1 )
+    if ( op.version == 2 && gt->max_version == 1 )
         goto out; /* Behave as before set_version was introduced. */
 
     res = 0;
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 51017b47bc..1c21d4dc75 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -97,6 +97,11 @@ struct xen_domctl_createdomain {
     int32_t max_grant_frames;
     int32_t max_maptrack_frames;
 
+/* Grant version, use low 4 bits. */
+#define XEN_DOMCTL_GRANT_version_mask    0xf
+
+    uint32_t grant_opts;
+
     /* Per-vCPU buffer size in bytes.  0 to disable. */
     uint32_t vmtrace_size;
 
diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
index 9ee830cfd0..f79c866bd9 100644
--- a/xen/include/xen/grant_table.h
+++ b/xen/include/xen/grant_table.h
@@ -37,7 +37,7 @@ extern unsigned int opt_max_grant_frames;
 
 /* Create/destroy per-domain grant table context. */
 int grant_table_init(struct domain *d, int max_grant_frames,
-                     int max_maptrack_frames);
+                     int max_maptrack_frames, unsigned int options);
 void grant_table_destroy(
     struct domain *d);
 void grant_table_init_vcpu(struct vcpu *v);
@@ -69,7 +69,8 @@ int gnttab_acquire_resource(
 
 static inline int grant_table_init(struct domain *d,
                                    int max_grant_frames,
-                                   int max_maptrack_frames)
+                                   int max_maptrack_frames,
+                                   unsigned int options)
 {
     return 0;
 }
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 14:57:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 14:57:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220946.382418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHi5-00081G-Ao; Wed, 03 Nov 2021 14:57:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220946.382418; Wed, 03 Nov 2021 14:57:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHi5-000817-7f; Wed, 03 Nov 2021 14:57:53 +0000
Received: by outflank-mailman (input) for mailman id 220946;
 Wed, 03 Nov 2021 14:57:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miHi3-0007d0-Lv
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 14:57:51 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a437088-3cb6-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 15:57:50 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2059.outbound.protection.outlook.com [104.47.14.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-18-5IOITigfM1yPEqVwGp1uzw-1; Wed, 03 Nov 2021 15:57:49 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3536.eurprd04.prod.outlook.com (2603:10a6:803:2::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 14:57:47 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 14:57:47 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0105.eurprd04.prod.outlook.com (2603:10a6:20b:31e::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Wed, 3 Nov 2021 14:57:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a437088-3cb6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635951470;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=CA8a7puWKQIoHvBIpr0CeI71hxyNtYv9ue9NGXGt0AM=;
	b=KHxGACPKO9BVSqPIS0vHcwf1bhi597MzVrvlH2Ewx29uT7Xbl9xGYeReB9xd0eg6krhN2T
	TTEZU5G1qwUcy1L726HBHvssqD3PgeJyxQMFzeurc6htCCqyy6HCFgvrivk4k7RgY6pXA5
	VhPdKeU2i0ZENrHeXzybJ+c7JBy9KSM=
X-MC-Unique: 5IOITigfM1yPEqVwGp1uzw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SnrVxOoZvis3bia84svuhgotqyvJauqUFMYSH/kX5aLZf1+ojBbdVMUPu1vqldxXdqrJyN8ELaKB8eyzrp4ye009HZeJUpr7CXhTKKarO0oUSPxgvwkODVAlYJu4lfRqYpcM5WE1r3j/d9Ga99h1LHuNrnBi5McFtR6lufD7tJoMabBv6V2cZVmONzvaABT2pGbYq8h4Go4G30GYNFTGXFRMYU65mF2jvyMjNs4T3eeq26N6kKPD3caR6OkIa1n8zzNJKE6yn5NtS25rRIiEhfhceaxjznLsxeMHLBOV5h2gtBvIUqwDSp3o1GnZir4N0QuNM4tnj07wzt+pXX2ynQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CA8a7puWKQIoHvBIpr0CeI71hxyNtYv9ue9NGXGt0AM=;
 b=b69XfB9p6WzkDoFFfBUwW/9t0j6wwBY4Wpki6i8ooh+DuKHtFP4uJaKCgBzeUvJ0tzm2smeSu4fZSUkw+bjYBs94lz+zJBAq50yQorfC5AZ6jDOVD8Kxpy1dJciOiv9/kC0plMhIIIIOvYRe76EYg1DWZaqRKE8yMUvdntCdRJaGp+55ZhJu3JqiAgKcrnFTBHtX3oKkAgZvd8EuQmkynVzUR2vQNoviUnTNiCNpcEj93Ic1rjRPLyZPS+azGq3PRf9ihCAUsnw8NRVlEkaYxajkXHz/paL/2Zk1074OrJZ/5h1j2UTUWxs54D9Cy5YHnoF9gENDEBK07JDA9eiaWw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a24224d0-7178-ad11-d671-d42398c50d31@suse.com>
Date: Wed, 3 Nov 2021 15:57:43 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 05/15] xen: don't include asm/hypercall.h from C
 sources
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-6-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211101152015.28488-6-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0105.eurprd04.prod.outlook.com
 (2603:10a6:20b:31e::20) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7d251976-7202-4aba-dd56-08d99eda4c4e
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3536:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3536E37A447D1932F7290D34B38C9@VI1PR0402MB3536.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	vgnpb88+Vgp9DPUbcBRxXOP4WdXYowsGTOTPKiwzVd4WoxPR94lrZq5nCmjyk3RndhUG+obmgWMbFmqfg1e0MN4ZQwBWRG7pKtvwrrcEyhcO0C0eM0hB2qaKIgixk0lv0kqEDpxxC11/en5xYvOySYvCFCKV0pNhbC6/1l7fX3piaL1H0Mfn0YUHlgEAuLcdAqON2Lcmrvmg/Z3VHMt8j3fq9LhTWKgxTgIqQ5wbYbB/0m1jUwfh8FN47GHlesgGuHv+h9I60UpUZma+09QQZoxKxng8oRIJSCizF2wVs/wsbPjtCwiw+2EYkIG8G0zMmCJciwW1WsApIm/lTVWCnoREJbpXNsG1Fakr0MXIUPW+0jMBd9uaRxHwS4s63NgO5rsIRcdCUb3r2HWq0h1pFYPTdd2KeVDffL4V3qj9TQOHRMUEbaGG92axnFo+JA7CHW+rkAciedubN6XvpdLLlooAiZLnleEAgHGN2JCmMT5iQ3F8bK8NrxlcrBlhn6ZvJNoqi5kETO/fNghtUL8pGu9yWqrP9en/YHOMwiCT6mF9RKxBv6kak4LmJPi7ARRuDTkOyeyWfK9iNB2TAhBjVU3U7r/U+ES7txFHdKz1MejTigJ5Sq3hKnJwyyE0om1SqCNGae2uk0835BserT8VOniyrJfuCP8XNcEwITumQCeGOFTbiOvpsqIN2CkC8fvmOj+YKjwkV0anzLSUdOEk5UWOdSWy1iG3sguz8ZORpfM88j8Q9zauSgOnhjhWOhP+
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(6862004)(186003)(38100700002)(2616005)(4744005)(6486002)(956004)(53546011)(31696002)(54906003)(37006003)(8936002)(16576012)(2906002)(6636002)(316002)(8676002)(66476007)(66556008)(508600001)(86362001)(66946007)(36756003)(4326008)(5660300002)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VjZnZy9qNEN4d1VjbVJoZU5KTzZCQVYwSm0xZ1VhQitETnl1cTEwdDVrenJP?=
 =?utf-8?B?dnkrcHB5Y1FwWTBmZlNSZTgreUlLa0trbFJjYXlscGdWb2dzZGN0ZXN0cVhk?=
 =?utf-8?B?WkRKcmc2bUErUXVGQ1pudGRUSTZLaG4xNnRvNko2dWIwaHVZNEkxZ3hEWWsx?=
 =?utf-8?B?UERQZmt6K2k3aU5HTllic2xhVXVvaGJyYlVLWHV4MjNYUEk1K1VjL0hWKzdX?=
 =?utf-8?B?WEN5MFZJdlRqaCtVZ3dkdjZoZE5zZkpPR3hLRnJCZlZQQUFBdVRlaXAzTUpZ?=
 =?utf-8?B?NUcxWEc4QzhNSGdzblJGQXI0YktuSGlObjlOOHQzb0c5NkFLY3RCTWcxeVQ3?=
 =?utf-8?B?NitUWGhlR1NDTW5qQndsbE9ZZlBycU4rNytlSHdUYkRvem1YQXZKYUgzQWxx?=
 =?utf-8?B?WndJekR6MEFheno5aUhsRUExSFR2SVlWbVNFeFdPSk5pUG5reFc4SVZWVlR2?=
 =?utf-8?B?cWpBVW9WdjcxZ2duUE9lRC8ybWRQdHVlRVNrMWpMMUs5aUZoaytFUno2S3B2?=
 =?utf-8?B?VWI2SlVoRnFzeEFIR1ZRTGJTZkxVdktxclVHZlZuNnVNS1o0ZkU5RVNZdDZD?=
 =?utf-8?B?djEzQTNvRWFJaldEdmNnalczeDFLajgzZVVJcG1nbThVeXhKdmxKb2M4eTVZ?=
 =?utf-8?B?VTJnYUJVOHpNNWpQT0N4bWNDUDAvREV6OXk4OFNmL1N6SFJnZWxmRTMyOFds?=
 =?utf-8?B?bmpNN1JqQk5ycDBycm45d1d2UmNEb2pZZGJURm9pWFh6aWh4RjhJOFE3VEJj?=
 =?utf-8?B?aU9SOXhEeWRWY0JsTk5Yd1Bma1F0UWE1bEN4a29mNGhjWTNyQkJzd0pGZStt?=
 =?utf-8?B?MnFuSWR3OTlhL29ZU2VTVkZiY25Pd1ZJbE1wRkMwQ0pEMFVSeEFmSjJGTDE3?=
 =?utf-8?B?cTlQRzgxaWJxMTNRb2JpMFZSTTBhTmN4MlRQLzVPSmpadDFxOWhLSSs0QUxl?=
 =?utf-8?B?SG5hUTV5U0ZnV2JGUkp2T3o4R1dSRWNqWDgwaUMrLy9hUW9JQzlJVmduUDVL?=
 =?utf-8?B?NlRET2NhSndUUkpVOFRpN1lqSDluUGViWVA2QXpPR1BaNTI3ZjBFb01sR2w1?=
 =?utf-8?B?Mk5reW4wK3krWjh5MlBFa1BJeW9WYWZPa2k2bjJONnkzL2o3SG9ZRXhXS0RP?=
 =?utf-8?B?VnE2cWNsamRNQlV2ZGVjT0ZmTTRiMXgzQTZ0L0wyTUwvRU93MjRaNmJsaXoy?=
 =?utf-8?B?OE9OM3VYZHhmZk5DcU9wZlgwbnh0eFk4TXhsRFBGTGJORU1udDNEZjdXWWNK?=
 =?utf-8?B?WGFTNzYvQU9Sd1ZscUdtYXIvMUZtT0RuRDlpOGRXSGkwQnByOHJZRldBWHlS?=
 =?utf-8?B?ZXNZbTB2UnNqc2RNUTNidjJZOVp4ZnNEZHMyd1EycXJVVE40ejNvRnpBSEI2?=
 =?utf-8?B?a3pRMVNGOEl4dTN0NytyUm9zYWlUWnlTNVY5emhsUGdzQVptdEFPMDRXd2Rw?=
 =?utf-8?B?ZzBxbjBZb05XS3ZRdGMzZEdYY2x2Q0dsMS95VE9FU1lsNFZNOUJHUkFyTS84?=
 =?utf-8?B?cmdLTytFK0kyNVN1WlBxRHE1RTRtS2VSc1IxVmFXWUZLaUFwS0NORnJQdFVL?=
 =?utf-8?B?dFRxNzh1dE9BaEFCRXlLU1JDRE5JMXhDdmVIMU01aXM1TFdmS1N6aEhCbW84?=
 =?utf-8?B?aGpOdDZsTEo2Y05ubG1LVUJrRXpYaWJNL3NkMHhONm5PY1lCa1JkWVRSZXA3?=
 =?utf-8?B?aXhOTC9vK0hJV2xPc011Y0crWldjYnFGNzhnWnZIak9NZVY1eHpuWUNmZkwx?=
 =?utf-8?B?L2drTkhpVWRVSGc0SmF6YXAwOXZsOXBzN3ZscEhTNnI3Rmc2WkVhTTVRSXFy?=
 =?utf-8?B?Yjd1WVc3emk4MmwzL21KUHVaWUhPRXBYejVlRVZScC9Hc2w5bTFRMWlSdmJZ?=
 =?utf-8?B?OFhSRWJSbUxMWk5lTXNINmhrUVlRRU9JU0lTZWRuTUVpWGZWVnVveEJDckk4?=
 =?utf-8?B?OVR5c1M4ODk0N0dwWnlYR2MyUEFiTTFhVnN3QTNhR1JVN1p6NldSK1JsNGow?=
 =?utf-8?B?S3RSa2d2RW1qeWRZS3BhQTZqWnFSeTJJZnhNQjk4NGkwaVZvTng3OTNEenp2?=
 =?utf-8?B?YlFLb2hWVlFPbkd4a3RWNHpqKzFZRVo5QWVVRnhHWmV0Szk4UVdJbWxFVEti?=
 =?utf-8?B?cHY1UjU3YVdxTG5xYjJEU0pwZ2dOL2lEMGVQQlF2RWR1MVdqMnNlWVNEdXMw?=
 =?utf-8?Q?i1a8NwiFG47N6GJX25iaaU0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d251976-7202-4aba-dd56-08d99eda4c4e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 14:57:47.1381
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3RQ46G9QHS9YwQrWYW/sjdtYLUdCcen7K+S8rRz6D/GfxFre05q/milBUye2rXVpvfKu8Q0S35UUh2yC7P3xOw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3536

On 01.11.2021 16:20, Juergen Gross wrote:
> Instead of including asm/hypercall.h always use xen/hypercall.h.
> Additionally include xen/hypercall.h from all sources containing a
> hypercall handler.
> 
> This prepares for generating the handlers' prototypes at build time.
> 
> Add a guard in asm/hypercall.h to catch direct inclusion.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 14:59:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 14:59:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220954.382429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHj6-0000QN-LG; Wed, 03 Nov 2021 14:58:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220954.382429; Wed, 03 Nov 2021 14:58:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHj6-0000QG-II; Wed, 03 Nov 2021 14:58:56 +0000
Received: by outflank-mailman (input) for mailman id 220954;
 Wed, 03 Nov 2021 14:58:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miHj4-0007d0-DZ
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 14:58:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f884282-3cb6-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 15:58:53 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-11-4F5sC1xMPtWynMa5qGm11g-1; Wed, 03 Nov 2021 15:58:52 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2704.eurprd04.prod.outlook.com (2603:10a6:800:b5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 14:58:50 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 14:58:50 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0183.eurprd04.prod.outlook.com (2603:10a6:20b:2f3::8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Wed, 3 Nov 2021 14:58:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f884282-3cb6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635951533;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tFASd2uRDGG/6zbz90CB4A7QLi4tWN8h4Ck8MZrvkdM=;
	b=U94Ba1okLJ59KYa3RR33QwwN1rqnVnXPhrbg4m5rBaBVUwvW1NPEvlFwAXPWLlm9flh4ru
	3lbS4ve9IL0ntl0jjIZwrIwqEPS3Tg8x2a1s2FnsdFloagF25N9sjWjmO/zTfsvAzn+uex
	cwSGhpnDVIR4978SwBqRQMOJo8xyLeg=
X-MC-Unique: 4F5sC1xMPtWynMa5qGm11g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=baFM9j/n0fGVCU/LM3WNwXi1d4YUJ2zpOtQ3uX1yZZtt+RwP3MiFoa6oJvM3TTZre7LjSaDCmxqwkoBQCPQSZcvj78FZciLHOCGDQQo2EllEKX6Rk8BlOn7MB8MZwLRjmOCtBNiEvm12xY/7hu+EaRmExChcxyFI6zgF4tqOM1epsZkGsP36EOsidwAnFG9XjafSwWHOeQohOza7uXnREZqRPE+F7ujYFRIEYErY2vl5p7HrA4hZXn/J7KL7O9GQ3HzdXpDGuLwXXLXX+pB2NhsQ8I+krMxF1MptH5iU7ohF+1+G9dnCx9SGOpz3xjAULNM5dLshD+rwXai7BL9stw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tFASd2uRDGG/6zbz90CB4A7QLi4tWN8h4Ck8MZrvkdM=;
 b=mB/pHHpqnuk1fgXlUbPmB44tet/vQKCpr1vP7iFCaG2cEuhSYCzI3cZOQm3BdU/20dSwcaxD3F8Br9aIw/l/bCFHkuLJroC2D8vrCiP+IH+uzq0zvwupW27soS68UKCK/BWN+Ew6OeMPy/KNtCA9p8KPSgEWsanCMAvI88cSAlP+Vx97JFkpBphGaV4WZ469flkHbLvd7cDZw9K68IDCCKpOGPrcCeDONboo1ppG5Q81sRXjqpzHWr/h/msWIqm1BJUHQyFs3AZA9KP1lmXeLpCkboLSiXnZn1WC3748Ij2fXcxDitawMWluQlu2aEcel9rvnVLxzJDSUzdF6gpxKQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fbce3cac-c635-65d8-01a5-9c401b8197b6@suse.com>
Date: Wed, 3 Nov 2021 15:58:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 06/15] add .gitignore entries for *.[is] below xen
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-7-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211101152015.28488-7-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0183.eurprd04.prod.outlook.com
 (2603:10a6:20b:2f3::8) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bbc91989-0a32-44dd-57b6-08d99eda7233
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2704:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB27040B1D05A244D77AE23B5CB38C9@VI1PR0402MB2704.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:519;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hOfIwMo1pPw4XoX3122Od8lVGTyOiTBp4A4TQjf7GgLuA34hXX8EaaknjL6gj57OXl67bdzTY+EmFPTunZ9rRq+wbYdmiAwKNMVR+jFNvlVts60fNfMdCxW62S6y8sWSe/w0UX6qNHBqPT4bp03BJuGK+JcoDRd9+9DaDPyBoAHMtF9F+6OpyIQPot6+IpjxYxQe10hutm5BZek8OTazTs5ZagH1bOSvsDP3It209ouWkclz23gF+Zg8qw9/40pe8pw4FzYhhtJ2Y3PUMQaZlkyhB2kOfkMUHCf0IBI1NYXtLAQHEwq2GMmJSxytjdBKgWXqDyvFabZbaK7TUVmYFH6sC+QvWCcU/lioOLMgXYUpUM+NzNegJMkEnnGrIHudmaY551eTyfm3BLdUkaUG2xrEDOmLTxNfpeL8jI/RFRFkaWilAP1bYm7yPU3UozHj7RmGJtcwLkGLyDFa+wSBauZIRp+rIzVGNs4wUDhNFa5uxLEuTpebunJJNJ6GCHqh7J2U55kzEdoudPy0UPkJXBYifyyJyxfaQ5zHgvvH+ONUEOZIh0ShW6+J9dm8R8D2Q6xEqJeKBiq1w3TdkqYWVNz28PIssE/yqK6FknAuFgAK9UlT/ODu/lCf4Q3QGoPb1vP6oiIv3010QpVa3ZUcpiaKUn2O5BkeZpZh2SdzKMZRZQpKdU06NqnE31sR3oLfP1pp2ejAFP3Icl+3xcAkcqw9kxxhZPxbWkCZgS0mFvvV/YLSEXXfS95+WzUS5NaYlkeIcFGYUjPWRckaJaUbcg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66946007)(66556008)(66476007)(2616005)(86362001)(26005)(53546011)(6486002)(5660300002)(36756003)(6636002)(956004)(508600001)(38100700002)(31686004)(6862004)(31696002)(16576012)(2906002)(8936002)(8676002)(186003)(4326008)(54906003)(37006003)(316002)(4744005)(142923001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SmZVb05xUEJiSkFlemVQM2ZrOWppaHNrR1ZzWHgzZmIvaFliMjJ4c29GQ3BP?=
 =?utf-8?B?YXVZOXRWWU8xYjlBOUNRaE9kbWkrdW44eXkrWk9FMVJQVW83cHFwSUVqY241?=
 =?utf-8?B?VWhjYkREa2xsaHlaeWxESDNEMFp1eTN5Um0yM3Y3bHY0VFlsSEVYWUNEMVFG?=
 =?utf-8?B?UkZza0VxelAzNzllK0lZUEFLL0EvUkdTOGdJSHF1WXgyd2Z6Z0Z6Qm1lYmpP?=
 =?utf-8?B?Vnk3L2NZOFBScmVlZWdtU2RJcXdOZCtnS2doazVHbEhnanlsTUQ5ZkI5ZDR6?=
 =?utf-8?B?QnR1S3YybUxWeVliT3pDOE1nU1FtQmhaZDh6emtteEpCOXBZR3h3enJXUFla?=
 =?utf-8?B?eWFNeGVSQmlyT0EzNVJWeDVKV2hoWmQvUVU3aG9HMHIrY3A4NXIwbmllcDE5?=
 =?utf-8?B?MjROTEd1SzVQWVJoOTRVOVdoaHU0dHF1NFB5YnY0V1JWS0FuMzEzc2dQOTN3?=
 =?utf-8?B?cUlQWmswQmUrdDZ5NXZmTzZqeGhHcU5pRUtWZGdialdpamxpcDlGUlY1Tkdh?=
 =?utf-8?B?dlUyRXZkalZNL29QVllGdE9BckQxSnVaMlNxTEIwdnhFdTgvNEFWUjFvMGhk?=
 =?utf-8?B?WEY2TFhsOU5VbHBNLy80TzIxNzFLRmVWTzRvUEp1YlowZzhKWTFpeGJ2YXBn?=
 =?utf-8?B?eEFNR0h0Q2xOQzhEN0V4aTVzRGl2NzJIT3ZYK0RSRktNbmZnM2JNOTFhT1Vy?=
 =?utf-8?B?UENQc0I0ZWkzWmxGNEUzcmswYmVBQlFyMFNSQVMyZ1c3ZXJwS1B6ZkxRQyta?=
 =?utf-8?B?YUgxTWRZVm43MUVCdTVXMDd1aFB6NE9zQ3BZUGt4L1RvVEN3LzRZdU4vQTNF?=
 =?utf-8?B?V051aHV6dHNQL1JpYnRTOG45aTNBZ0NYRHh2MlNYRWZDeldqd1NSVitNUUZD?=
 =?utf-8?B?dFA1aWZLcld3MFNTV2hReUtqT3RiUEVEOXNQRFc4aXdJbmh3a0RvRGNrMWhq?=
 =?utf-8?B?b1doS3o5OTloT1VKaWZIeStyYmtQcXlvTVA1MmNzR0pWTGxzMGRKazRtaHRq?=
 =?utf-8?B?b3RaemlIMldrTTUvQjlxU25NUjQ3eEVPbFFYUHc4M3dnRmc1dHNGQWpIc2ow?=
 =?utf-8?B?VFYvcWxmNTNVWHBJUWs3Wk1hNk12MXZPZnRtRCtnQ3pVNy9LZ0M4ZWZ5ejUy?=
 =?utf-8?B?SkFBWTg5dThIYmFNNmt2TndGYk0yaEhhVVNQYWsyckNqVDBmK3BBRDhONVI4?=
 =?utf-8?B?VmRWNFArRjBHMUxzdTZnT29wNlQwWndyaDlldE1JamwyYmhaYjV2ZmF5Kyth?=
 =?utf-8?B?ZVlqY1FuMmZnZHZDVktrN1JWdUFIOHhGTHhlSUp0OEg4MW4wMlNwZWdCY1Nr?=
 =?utf-8?B?ZDZ0ZWFQWldwMkpaeEo3Vzk5U2NMQWRQYml1MGJEem5UTGdxUnV3TS8zY2JQ?=
 =?utf-8?B?ZStNR0J6TElWSGhFYWlWV0ExYS9VMEFMZStxeUFueFkrbFJqRlRKblJINlNB?=
 =?utf-8?B?ZEJVTFNmS2k5QjJJZ3o1eUVySkFLMS9ybDhDQnJUdmpGZXAvRjExR1BxSGN4?=
 =?utf-8?B?VWZ6QU0wOGNxd1dQWnUrZ1Jra0F0K01sUy9nYW0vaDNvTklpT1VYMm12Yktn?=
 =?utf-8?B?cTZKUnlWekpFODBKVDNJd0pKc0FYa01NbjgxWXNVaU5iTHFibGhFekhDQmVq?=
 =?utf-8?B?UzdSSjRXTGEwNTkzOG1UT1hId2JMSEVyMlkxQmhoQWtkM01yNEVkMXdZYUdB?=
 =?utf-8?B?dThsd1JjemRCbFlYK0s2S3UwbndVbHJGaDllNWRkUWZjWUp4RVdmVlR3enhs?=
 =?utf-8?B?Y05XdlpXdnBTWWwrdXRQOEFUTi9Ob3kxSVdIRXpyU0Q4TW55MElRcG0zVjRC?=
 =?utf-8?B?aURjVkFVZzA0SXlpLzdCd0lkdDZOb1V5Nlc2Ly9SZzR1YTc2bVo5QS9kNW5S?=
 =?utf-8?B?SjExdzdZSWFzMVZMSHRlYmFzWUR3dHRpU0ZhVjE3TnNQWWtVM0thZGR1MDZC?=
 =?utf-8?B?c3ZJSXo3dEl4N1BaMHROeEZFLzJ4TTlkY3JCcThMakpSVzdrc3I2VTk1d3NM?=
 =?utf-8?B?aG5mcXBmSGxZSVFvVnhYSjJrTkozQjA1UTZhTWdCbE94eUZjVmFhUXdrd2dz?=
 =?utf-8?B?cFVBVGRLTmFucC83Y0JDemp0STJYVlllNUpxT0FscjBQUFRvNUdqSjRQeXNS?=
 =?utf-8?B?QXpHNHowZE9RemJjWEkrNGZucEJKOHBicnMvd3p0aUh3RDN4bnN6aWdSSldG?=
 =?utf-8?Q?nHloOTNq1mOo9o2yu42LaiQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bbc91989-0a32-44dd-57b6-08d99eda7233
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 14:58:50.6931
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Mv+q4QbvqYaaTZPkgVAe3jxY40miUuq0Rn1yF7FsUmRtwAxPXd1h2KBvtQRzz1HUWv75ojqGBcAKpImkO/zYPw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2704

On 01.11.2021 16:20, Juergen Gross wrote:
> Instead of listing each single file with .s or .i suffixes in
> .gitignore use pattern based entries. Restrict those to the xen
> directory as we have e.g. tools/libs/stat/bindings/swig/xenstat.i in
> our tree.
> 
> Below xen the pattern based entries are fine, as we have pattern rules
> for creating *.s and *.i files in xen/Rules.mk.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:06:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:06:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220967.382439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHqb-0001vF-EU; Wed, 03 Nov 2021 15:06:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220967.382439; Wed, 03 Nov 2021 15:06:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHqb-0001v8-BV; Wed, 03 Nov 2021 15:06:41 +0000
Received: by outflank-mailman (input) for mailman id 220967;
 Wed, 03 Nov 2021 15:06:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4+yV=PW=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1miHqa-0001v2-HO
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:06:40 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a397e174-3cb7-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 16:06:38 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a397e174-3cb7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635951998;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=hdQxDsnPDf3X9UufOjqNA50woilmgDCN6OIIwKWVSzg=;
  b=V9RCoWWgfTxyUvXnEjz5pBQSADoXMaI9WyyJVKyrMWfOrh5Zf6LabsmF
   HUD8W4GhWhdXDT+YRVfzh+cmG7Ckh5Q6Z5ShHvRX5ArmgtU0xETcPJFsG
   p30Wa02zC4pm2uAUNKSbTAh6OeRsmVZavB4NX+P9hNv5JlhF2F5aXHVKV
   8=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: q/Gse6JdY/NaniAM0Mv72YF1iRrhdM/zG+2JX8acIs4YXkNGeMw3wQwrXLS7KyUYPpAI5OGowV
 pDjZlq9l2Rme+h8vSXHdkUIwHyKlhUjGHqZJOuS5LHbnJpBD4bSlVuCSAx24NfIbWCsraPkxna
 r1y1itW4PzA2/NluzO6D6C8LDkgxvMq/zEzzOSj7cmHh4SUMQ9qkRyRh1DCxvfBN28D4rJXOOj
 iIT2+G5YdcqrNvmY5tQX4bfvK4OEeWAtO8tD3+VFyGsX+L14PuwjKZbg4bPNYpoee6GzkEKdiA
 Ba0L2s26b1Jk1DdeS4AyRsyB
X-SBRS: 5.1
X-MesageID: 56990139
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:tLIujKOUxv2i5tnvrR1JkMFynXyQoLVcMsEvi/4bfWQNrUok3zMEy
 jNNUGHQPvuMZ2Omfdh/bo+19UoB6sfVyddjHgto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eo4w7VRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYowuuwNR79
 /hIj52peCEVJKDrtOQ3DSANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/iUtI4AhWxh7ixINe+BS
 fojUxR2UAvBWgFoZUkRK4Jig+j90xETdBUH8QnI9MLb+VP70whZwLXrdt3PdbSiXcxImm6Iq
 2SA+H72ajkYPtGCzTuO8lq3m/TC2yj8Xeo6BLC+s/JnnlCX7mgSEwENE0u2p+GjjUyzUM4ZL
 FYbkhfCtoBrqhbtFIOkGUTl/jjU5XbwRua8DcUEz16JwJX55jyYH1kiciRMT/AmnpEPEGlCO
 kCyo/vlAjlmsbuwQH2b96uJoT7aBRX5PVPudgdfE1JbvoCLTJUby0uWE409SPLdYsjdQGmom
 1i3QD4Ca6L/ZCLh/4Gy5hj5jj2lvfAlpSZlt1yMDgpJAu6UDbNJhrBEC3CHsp6sz67DFzFtW
 UTofeDEsoji6rnXxUSwrB0lRu3B2hp8GGS0baRTN5cg7S+x3HWoYJpd5jpzTG8wbJ1ZKWC5P
 heJ5VMOjHO2AJdMRfUpC25WI59ypZUM6Py/DqyEBjawSsEpHON4wM2eTRHJhD28+KTduao+J
 Y2aYa6R4YUyUsxaIM6Nb75Fi9cDn3lmrUuKHMyT50n3gNK2OS/OIZ9YYQTmUwzMxP7dyOkj2
 40EbJXiJtQ2eLCWXxQ7BqZIcQtRdShnXsurwyGVH8baSjdb9KgaI6a56ZsqepB/nrQTkeHN/
 3qnXVRfxka5jnrCQThmoFg9AF82dZog/389IwI2OlOkhyoqbYq1tf9NfJorZ7g3sudkyKcsH
 fUCfsyBBNVJSyjGpGtBPcWs8tQ6eUT5nx+KMgqkfCM7I8xqSTvW94K2ZQDo7iQPUHa67JNsv
 7262wrHapMfXAA+Xt3OYfeiwgrp73gQke5/RWXSJdxXdBm++YRmMXWp3PQ2P9sNOVPIwT7Dj
 1SaBhIRpO/spY4p8YaW2fDY/tnxS+YnRxhUBWjW67qyJBL2xGv7zN8SSvuMcBDcSHjwpPeoa
 9JKwqyuK/YAhltL7dZxSu450aIk6tLzjLZG1QA4Tm7TZlGmB748cHmL2c5D6v9EyrND4FbkX
 0uO/p9ROKmTOdOjG1kUfVJ3YuOG3PASuz/T8fVqfxmquH4ppOKKARdIIh2BqC1BN78kYooqz
 NAotNMS9wHi2AEhNcyLj3wM+mmBRpDav37Lan3O7FfXtzcW
IronPort-HdrOrdr: A9a23:4/zXaaMQiFimf8BcTvujsMiBIKoaSvp037BL7SxMoHluGfBw+P
 rAoB1273HJYVQqOE3I6OrgBEDoexq1n/NICO8qTNWftWLdyQiVxe9ZnOzf6gylNyri9vNMkY
 dMGpIObuEY1GIK6PoSNjPId+od/A==
X-IronPort-AV: E=Sophos;i="5.87,206,1631592000"; 
   d="scan'208";a="56990139"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YW1j6RdE4LLzEmJ7HaBUCMIutVSmHhywLu3QpRXpEcZnl2IWkIxfWgKBZlZ8mwT2UvMkK8V+MPUmkfQVVRTxE8aqSs0aSzVHmOm52SbNUzjInqqimn8sAHpcW0C+I0DHsM9W10lAJ6RFmPOAdILxiIxNHw1EwEtqIbPeSWANVjXayZrIAh2jWcVDu0HQcUlcfrIfgvGbitZDSao3ArBu/fZ2YW6oUYiMvgR61DLsVJ5u1NpwOpo9l3vHUTHCYgk/yjj1hEdQ+++imAHKMjUUWjF28USOPwwcfHarOQre9/BdThu7XEluqlSotYzFdRbv5e1Q901icxu/RsIGezqa/Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6aL6lTGv6E9eqpavSlVAGx7/HH4bk1n+Bu4962vKDwE=;
 b=ZET3/9D9nbDWfkmTbHxjXiQpy05FuWWvPcbNGgOlrvk0n2IvVlIiz6fMnilsMxJnnvoZ8gdFrNr5qahzVJuuuxZNQmW/Uhf6MNTBtHCoZbrl6Eh+uGX/5ze4GXyGs58siphfZZl20TC19239jabfXqiz+Drk2/YQmY7Oa1o8BT8BqzOfYNDtdhXBdplLJ/hEZp/E/qEB7/QYzSyDteY2KIzY3UTLFCNIoL3w/WfBOydtupnOZk+LfXDGqGIrgmXAKafUUPZHB0Aj/e304OT0XgkbqsXEN5437LKplME15mIT/wtXqcgIK8sgGFquKjxQHkjXL/i5E0/zVQATTHyPTw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6aL6lTGv6E9eqpavSlVAGx7/HH4bk1n+Bu4962vKDwE=;
 b=XU7Dw6v6F7kJjFVla/zNB76vcdNBB0zCd79VSKRPDilT2c2fmXEJcw5Z+SdtB+kL32Apcp+woI6wcV3CLkrb2qv6DnmvOiYnv44rYq9KQ/arLXig+lDvQM5LTmcssqNWXoKCy3cyc31/xfY1XseH9HPc383jrxeoGKHXiaa8JQI=
Date: Wed, 3 Nov 2021 16:06:29 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>
Subject: Re: [PATCH v2 3/3] AMD/IOMMU: iommu_enable vs iommu_intremap
Message-ID: <YYKldeiym0fLWTsa@Air-de-Roger>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <ff7b68b2-5bba-2927-e3f0-f3062862c466@suse.com>
 <YXaGxX3J1aB39mSG@MacBook-Air-de-Roger.local>
 <dd2929fc-dc1a-1c16-5954-6894766d9dda@suse.com>
 <YYEa6HQGR1cHJBw/@Air-de-Roger>
 <bcaf1547-98ae-923f-5be8-50156e318bf4@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bcaf1547-98ae-923f-5be8-50156e318bf4@suse.com>
X-ClientProxiedBy: MR1P264CA0116.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::34) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 61b9f750-6644-4242-1fd2-08d99edb85cd
X-MS-TrafficTypeDiagnostic: DM6PR03MB4841:
X-Microsoft-Antispam-PRVS: <DM6PR03MB48417E1A78B7C6C648832A6B8F8C9@DM6PR03MB4841.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: h8dAJ+o+jgsApUrSgGIcFZ+ShJEAqBoke2YmL+FDBD8xLB77GegkJ/q/nslIo1/tQ5KKhidyjWP0YES7o1XuPxpCFEHT2Rcr5aw4PsSXvMuyCO70mb7hMNucMC19GtLfCxUOBrcep1x/SiF7QRrimTUhNT2Pk+w8PvXbBT9H8G6q7KjmzxxD0Z5RYPv2BHQIhpwhg2BxATY85V8R6PxmVUiyYJKYxmvDGTw3IaKI/EWXnVTvdp5tUraZgMUu44KRFljLd/IQPN2zqLBeEk3fE/9zmpyYQmKJJNpJ9gU3rnos7gX4cCic5ch27G9Vt4dQJx69q1Lr02zg8YJ/HxTtrS0dbKf758GP0MJ/rgv4klEAPrLwznysqf1i5KvpwaXEUjx4G/gtQ98c7iSuZ8TO/jpANWyx0MNFgk3rxXEPf1It7iAC1TZhyFl9XYRR4iB0URqNJG66Mz7FiFXHV8iNDOd1MTBKUx50mgudFBs9TVKnlOodYvwJ7N2rTIMubda+xkB0NEFMVpd+pWkbnb1JkKSx0OGkR05RH7lWBD4MFJdbr3CNJfnM/+zummZxy2Lnji9E2qvK6Hy/T/LzvpRr+HgXBqk0P3oQ5UstrqWNuc9NPakp2onO8CSrn8AlzdXse31Cr1lZSq9vq/4z2OUz8A==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(33716001)(6916009)(66946007)(54906003)(2906002)(83380400001)(316002)(86362001)(4326008)(82960400001)(85182001)(956004)(66556008)(8676002)(66476007)(38100700002)(9686003)(6486002)(6666004)(508600001)(8936002)(6496006)(186003)(26005)(53546011)(5660300002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cFZnMHJVMWxYRzR0U1NVTS9POENtU1I5WTNyVWQ5Q0tJeGRxbDhxaWl5M1Zh?=
 =?utf-8?B?dkZub3ZUNzArM3g0SmlyUzZSZ3c4QjV6VmhoamJyR1AzTkNZSEtCOU1wSDVD?=
 =?utf-8?B?VWx1eTRnUXF2amluZG92VVArVS9TTlFWdkMwczBUZ3kvc0ltMEpBSkgvekZW?=
 =?utf-8?B?eGFpeWl4OUFrdEhHbWlCMXhmc21qRFJjSlFxbWlwVGd1UE55WGd0Sk5GWk9k?=
 =?utf-8?B?YmZreE1GS0hXdUpzTFJPdDhvdzdlNjZ1WkxDcXJZTW95cjJIV3A3MDI1SW5q?=
 =?utf-8?B?VXp4WUpqNytYZSsraVp2S3ZqVHRXajNtMjR4TUtPL3FVYUdRbjRSOUdZQjBI?=
 =?utf-8?B?V0xmZWc0UUNBNzZuSTBRUXc4VXlPSzhMM252YVd0MndHaDFMakxKUVVOcmpP?=
 =?utf-8?B?cXJtNkRhcFc4SlE0L3pWL1QwQURiMWwvYUpaUTNDTEpZTlUyQkFabWc4UkZ6?=
 =?utf-8?B?bk9CMVhqYklrSzNDaXR5OHdra1J4bm0rWTRqUVhBU203UkJhNFI2TkRPZEFQ?=
 =?utf-8?B?RUVLdnNrY3NFTG1CbW5oWXFhVVdjN0c3elQyZDY3am8yT2U2MEpLTEZXNGV4?=
 =?utf-8?B?UDd6TjdQUzQ0RlF0eGQ0N2lYR2Y0TXZZUjZJcVBEZkJ4R3EwT0c3T21hVTNx?=
 =?utf-8?B?ZnU0NmpTWFdDNUV6eXYrbmd5TUlJOURnTjFnWG5EWXJ4TTZGZEtmbXdRWTVQ?=
 =?utf-8?B?eElhUnBiSEtkRVh0YWdkcHA3Wmc5bnp5czVTa3IxNWxrbFFISmorTE9wY0RD?=
 =?utf-8?B?cmtnd1V3OTNmb0pNQlZod3l3WHNxYWh4L1FabXJ1ZjE1NnJ0VzR6NzZlSGJX?=
 =?utf-8?B?K1oyTnY3ZDVpdVRPQnd1SUdyVWRXU1FsY0ZPc2pNWmlxbVBiSUVmdGZUQTNP?=
 =?utf-8?B?bDFweENQZyt6Q0FrS3V1T2tqMlJoblEzMFE2eWZRQnZmcFA4TVNXZURQZFRj?=
 =?utf-8?B?OEhKbzg3WGI4MlIxSWx0c0tXTmFYdXdIakZXRTlRV0xmOVdnbmFQWjRRM0Q2?=
 =?utf-8?B?R1U4TC9pR1AwejcwOFJ0NzlJQXlDaXJzUjd4ZHc5eXJ1cFlFSUMrVi9vOStv?=
 =?utf-8?B?TU9wTmxldWdvTDZPNjlqZ3grWm1XTzAveG55Um9vWjVFNUc5U3ZCUWxKbGNs?=
 =?utf-8?B?NjJLYzRqenpLSWQ2bzQvOVNrbjlSZTVoMnlCMmo4Sk9EQjBIQ1hzSE8xcVBo?=
 =?utf-8?B?NVM5R0ZkelUvdWF3N3FBNUlGNjZITE16UjI2Wk9qcXFJZkF3RkJIUnV2aDBY?=
 =?utf-8?B?SEtpK25FcDNwRnZGTlFsK3pIOUl0Z2ZIbTlnR3FLaXEwcmlRZ0dWVTBSdnNr?=
 =?utf-8?B?b3kyTXFCTmVmcnRUU3Z2WUYwbzFHQlNYTXlPQlVpbWh4US85cjZmakFQR0dp?=
 =?utf-8?B?bVN0K0NoQUZxSG5FaGUzMFp4VjUzcktkVkYvZGxOMXR3eWFuUmxsbnRmTGg5?=
 =?utf-8?B?enpNT2p3b3V6UFRnOU83aE9qb0tnamk4RDZWekpNanlPQ3dvWXllQlJNUXhy?=
 =?utf-8?B?S2JUbjRjcnN6Y1RYMkNGMUljdkVBVHpFRHIybjljT212Mm1NQWdpSEtvS3Fq?=
 =?utf-8?B?MHdzcW5IaGpyVnFEV0s5QTAzK0FpM0Z6MjVucFg5ZmtOWWtwQWtQUXoxL0VL?=
 =?utf-8?B?SmxWQ3E1RGpJenBiUDhiSU1zUVJVWi92RkNmUG1FbkhBZU1PdWlyRTJmUSty?=
 =?utf-8?B?UW9oYXJwMk9vMEZxNTg1cnJERHNNQnFMTUZOWHUyY1lwdXN4WnNFLzVieitR?=
 =?utf-8?B?NEdqTjRnMVpHeDcwa3g0TGlHU3dJSy92KzM3bVhlYkhXL3hxNGphQTVFK1Rt?=
 =?utf-8?B?RDBUUDIzSlViRlo4MmRVS2lVbldvOXlnVFBDNENoUm9MWTA2YUFZa0ppTkVR?=
 =?utf-8?B?YXRvaUI2ZEV0RnNxN3V5a3VkYm95M2d6MzZ3OVZFS3hhSnZpZVRxVUpYRXVR?=
 =?utf-8?B?Y0RNZFdoUmxGTkhpWit2Yld2R2VWMm5qU1lmZG1TWjV4QXRCL1JpWXJPSTVJ?=
 =?utf-8?B?UEg0Wi9XbUI4MTZjR3R1V0FTdEdLZnhSU1pLQ2lrOTR0ZllzZlhHbzJ6bEp0?=
 =?utf-8?B?b3dlK0R6VjZlSTRHYnI4ZmYwM1JUQlhLRkJOVzNkQmVOVkZNS0t1YkxKODVs?=
 =?utf-8?B?M3VFQ0NMS2E0SmNvOGpVMEVTalZGSDNxU2hwYzVZWUhXUE5MN0dBME5hMHJw?=
 =?utf-8?Q?wnFIGJtPGAKAadlt3CkJi+g=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 61b9f750-6644-4242-1fd2-08d99edb85cd
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 15:06:33.0898
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JcWbROg88INHmnfYobbxJf/ntMmZxi57VH8Di+/STCxoXGBdqpWeMF3Zj4Mm2cPVyndmfue0qM+HmXJXCUIDMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4841
X-OriginatorOrg: citrix.com

On Wed, Nov 03, 2021 at 10:46:40AM +0100, Jan Beulich wrote:
> On 02.11.2021 12:03, Roger Pau Monné wrote:
> > On Tue, Nov 02, 2021 at 11:13:08AM +0100, Jan Beulich wrote:
> >> On 25.10.2021 12:28, Roger Pau Monné wrote:
> >>> On Thu, Oct 21, 2021 at 11:59:02AM +0200, Jan Beulich wrote:
> >>>> The two are really meant to be independent settings; iov_supports_xt()
> >>>> using || instead of && was simply wrong. The corrected check is,
> >>>> however, redundant, just like the (correct) one in iov_detect(): These
> >>>> hook functions are unreachable without acpi_ivrs_init() installing the
> >>>> iommu_init_ops pointer, which it does only upon success. (Unlike for
> >>>> VT-d there is no late clearing of iommu_enable due to quirks, and any
> >>>> possible clearing of iommu_intremap happens only after iov_supports_xt()
> >>>> has run.)
> >>>>
> >>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>>> ---
> >>>> In fact in iov_detect() it could be iommu_enable alone which gets
> >>>> checked, but this felt overly aggressive to me. Instead I'm getting the
> >>>> impression that the function may wrongly not get called when "iommu=off"
> >>>> but interrupt remapping is in use: We'd not get the interrupt handler
> >>>> installed, and hence interrupt remapping related events would never get
> >>>> reported. (Same on VT-d, FTAOD.)
> >>>
> >>> I've spend a non-trivial amount of time looking into this before
> >>> reading this note. AFAICT you could set iommu=off and still get x2APIC
> >>> enabled and relying on interrupt remapping.
> >>
> >> Right, contrary to ...
> >>
> >>>> For iov_supports_xt() the question is whether, like VT-d's
> >>>> intel_iommu_supports_eim(), it shouldn't rather check iommu_intremap
> >>>> alone (in which case it would need to remain a check rather than getting
> >>>> converted to ASSERT()).
> >>>
> >>> Hm, no, I don't think so. I think iommu_enable should take precedence
> >>> over iommu_intremap, and having iommu_enable == false should force
> >>> interrupt remapping to be reported as disabled. Note that disabling it
> >>> in iommu_setup is too late, as the APIC initialization will have
> >>> already taken place.
> >>>
> >>> It's my reading of the command line parameter documentation that
> >>> setting iommu=off should disable all usage of the IOMMU, and that
> >>> includes the interrupt remapping support (ie: a user should not need
> >>> to set iommu=off,no-intremap)
> >>
> >> ... that documentation. But I think it's the documentation that
> >> wants fixing, such that iommu=off really only control DMA remap.
> > 
> > IMO I think it's confusing to have sub-options that could be enabled
> > when you set the global one to off. I would expect `iommu=off` to
> > disable all the iommu related options, and I think it's fair for
> > people to expect that behavior.
> 
> It occurs to me that this reply of yours here contradicts your R-b
> on patch 1, in particular with its revision log saying:
> 
> v2: Treat iommu_enable and iommu_intremap as separate options.

Right, I see. patch 1 uses

if ( !iommu_enable && !iommu_intremap )
    return;

Which I think should be:

if ( !iommu_enable )
    return;

Sorry I didn't realize in that context. I think we need to decide
whether we want to fix the documentation to match the code, or whether
we should fix the code to match the documentation.

My preference would be for the latter, because I think the resulting
interface would be clearer. That will require introducing a new
dmaremap iommu suboption, but again I think this will result in a
better interface overall.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:08:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220974.382451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHse-0002ZV-Vy; Wed, 03 Nov 2021 15:08:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220974.382451; Wed, 03 Nov 2021 15:08:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHse-0002ZO-Rk; Wed, 03 Nov 2021 15:08:48 +0000
Received: by outflank-mailman (input) for mailman id 220974;
 Wed, 03 Nov 2021 15:08:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miHsd-0002ZI-Sx
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:08:47 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f14978db-3cb7-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 16:08:46 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2058.outbound.protection.outlook.com [104.47.14.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-38-BJ25QiUxMoONA0BBtpfJ9w-2; Wed, 03 Nov 2021 16:08:45 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4943.eurprd04.prod.outlook.com (2603:10a6:803:51::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 15:08:42 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 15:08:41 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0602CA0018.eurprd06.prod.outlook.com (2603:10a6:203:a3::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Wed, 3 Nov 2021 15:08:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f14978db-3cb7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635952126;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jlns22FJpJ8Br4nqMQDULxkdxmdABL520Ay4nqVaxQg=;
	b=eUFBHvzMokOS2obWjsYmX4EgY0RU4u20LgbOUFF9cZyA/UO2tChdUrVt1NDOOxuHKSDf39
	tOzkhzQz8lbYLmLhX3D7TAOCq3z347IBK8+Pu8iQXaqri+gD9RNnDx39i4uLPJrpBAZ9So
	AXJgPaoMarqzUEItzdFqycstylWZxgM=
X-MC-Unique: BJ25QiUxMoONA0BBtpfJ9w-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iXH5L2JudFlw2ADPR7bSwOXcLC51Au7jjv0Wsg/GveID/ZdvIYOJZCbkQ3gNjyDn7F30Uxc+kYKjPeLDOljXVJo8Cjhk713v3uBlhLFZrmLmdBHemGNRsAVbi9B8bLOjWgnQEsVAv4JWTbkAQLp8X3kezm69s2qi19UVTd0q5iQ85yBCzMZDWcEi2m9yJ6V1qJUH1b2WKTAwZqkRiE4QbWvOXRzmyfOOWb7DYf7J+X4/6GLE3/RluKqJomz66lNsS0ZtBrL94Q28nJ5friM3xsYdKl+VLQkQpIY13VeHfvITJfk38Em4i6hbtrfMuurqzm0Yal2xgiXVSTOKAGl4rw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jlns22FJpJ8Br4nqMQDULxkdxmdABL520Ay4nqVaxQg=;
 b=h+ruAvZRd/PkYuU2MCZbRtjKoQi5sGBhMEAJKZQAwIKNIY5fxPMW+djPxHQL6Xw7OVdtrVqhXLnJ1w42VscRlGB7IAF/CMNco+WlGBpxw1tnwTnMtGCT7DPk3hdnZLQDZ+qVocdoBpWUtao0wouTHVyNsht0YxyBMl6NhpSk6tHUNJ4BHCCH4NUAzcRFGAR5G7vS+UKVvGeoS1DnVjZeDt+iGH28ELcUm2U+xfNIq1fQzwSEjzwwvni1SjYiPqAb/YS+SP0WbIt/youdrL5gzl8u4n89CCIpDZCKltNbQHLGoigtu8rhprOJX1A15WxtNN1HTcdqgjlwJVAexNA10Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <52aa88a8-4c86-0e5a-d0b1-1d0431a97fd7@suse.com>
Date: Wed, 3 Nov 2021 16:08:39 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2.2 07/15] xen: generate hypercall interface related code
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211103102059.19621-1-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211103102059.19621-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0602CA0018.eurprd06.prod.outlook.com
 (2603:10a6:203:a3::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8354943f-dfa6-48f6-fa41-08d99edbd292
X-MS-TrafficTypeDiagnostic: VI1PR04MB4943:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4943D796DA20F2418970873FB38C9@VI1PR04MB4943.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1247;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	8rMPTfk4HciRjInZBCJpL1NMuZ5RiO4LiH3czR5upuC5Dxmz2Kj0J6d/G9W9MCP59fz7FHDx8Q//s6nWCky3gIC+2Sqp80VG6T+v/xyo9MSm5smFA31xqea2b8cWvZE1MvqKr0S73syxBoZNpM74El6Vo1LHlOTTLyInvKQUOgvWqhE0tMQul0/K51rP2DuxG3qV9hnK1dHUpXZsMDp8x3kNFLYS+7ogYBjeY/66BM7GucwhRFDY8BQzTbFmKv+o58UNX75uwOSQe6ec4aey7ZLuWXZOIRQk3rCUaaA3YjBl9nlqjDrbpGNFsHIY9lvWM6Kv17iIQ/ziqXlxcYgaUoM9zq5JR27lY/G+b9SqHIqbDpS2XCadBhPBfzs0o55iy6dhRiuNrmkLBwfoBAf2M8zg1GdB4yMyjr1Amh9LX3f68bUwZRcjKNptAyMZBfOq5/UWuA6mcxHVwtam9JA77cj08RARU7/EnUWP8YiPRmLpDjWa0lnfMCAu53Au07XaVPMQTCDIS/urXhY0361/alhSiXn3GAlLRSX3C9EAruzlF0OQXDg159g3KFYlIFZizbx4iWOpEGOUNNO08Jrgs6BXsfob8Ri53lq5L4k9IyzhS/hAmezlTAQkv/Zyn1pNRMLxKO52iOJBFg0+6+qBoj+KDis4uVb6DpiowVgkuV4Phty7TMbjRi8u9l0zIIjGSY1ETxR98miOi72CIVB/uTe0meEE9xnD+hUWCrk5MWmjHEvpxFdIVGO24s6VGszq
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6862004)(186003)(16576012)(31686004)(316002)(8676002)(2906002)(508600001)(37006003)(26005)(8936002)(6636002)(66476007)(6486002)(54906003)(66556008)(5660300002)(66946007)(36756003)(86362001)(4326008)(956004)(38100700002)(2616005)(53546011)(83380400001)(31696002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RHhoVS8vbE4zeHJGS3ZOYW5kNHZYNjR2K0lxdU45TWkySDNZVzA4UUp6cTBp?=
 =?utf-8?B?SE1lVzNWWkpGUUFIaWRKRVBwQWpvUHE2d1kvdFVDZmpja3M4MHUrMDQ0bUpX?=
 =?utf-8?B?UDJmUVYrVmd6ekVKYXh0dnpVTXo1bFZFOUpwT1lxcG9LVzdqd0Z0TUZtL0lI?=
 =?utf-8?B?UHBCc3I5UVJBRlp5Sm9nM1gyU1NRZUV6ZmlGR2JFZ2tKZDNHOGRFQlUxV01o?=
 =?utf-8?B?WG81T3FHbHVqelZEdnRCa2ZCa0cyT0RHeUExWXNLeTJjb2FPWEhMcktZL1hG?=
 =?utf-8?B?alpIMDI3TXgxdVVvSm1kSmVEMmxlaFpzQThNVG1EdHh4U0xJN0F0b3BCeWh0?=
 =?utf-8?B?cVk1WDYzWUpkVGtQYWxXN0FOS2dZR1IvMFg5bmZ3d0c0cER5YzBNRjFFN0Ri?=
 =?utf-8?B?SzJmNFQvd1lLdFR0UVE1QUptNTU4THgvams4b2N4RFJpWEF6bUZMa1kxMm1i?=
 =?utf-8?B?OURKS2NoTk43dis3MElsaU5YcWtxMEJyZWI3RUxCemxxY0F3amVzYlozdEdF?=
 =?utf-8?B?Rjk5VjZaQ0ViMm9neVR1a1oyVnJkb0xUZnFkTjBzbGprMkFsV1U0NGhjT2oz?=
 =?utf-8?B?NnFSM0F4YXNFbnhuc2NqNEhGZXdVWTl0akNWWHQ5TDNSa0xxalNKdVNVVlRY?=
 =?utf-8?B?OSt2Nm1Vb0FxT1NjbGRPdHFWWDlJcjF2R0gybW1iYXUyRXJ1K3huUFB5Zldp?=
 =?utf-8?B?b2t6Yjl6RTcrNFZkUVlRazI2bElXK3NDMnNJcjY1eUl4YVRLVzd4Z2V4cXl1?=
 =?utf-8?B?dGsxU2ludnA5UzZDTE5UWFliU3pXb042am5iMWN1bEF2VFlobFA1Q003UGhC?=
 =?utf-8?B?bE1CMGFRMTlFeEpUR1FCeWdxVTFxR3JIQm9QM1BoVkhJcTUwSVhZVlcrMGpl?=
 =?utf-8?B?S2t5SFFocUh1Z1o5ZWFGTmZVSmlUMTZYbTI1eEMzc0U5Y2FwZFd4VmFGWTVl?=
 =?utf-8?B?SVFoQTF2OE1CWFNmcWtna0szb3hQajFJanV5eDlDRXhmS0dOYXBTZ21hcHJq?=
 =?utf-8?B?dWpKcWVrTFMxSFdya201M3pmMTVNM1pyb2NNYnI4UU9SNm9IZHBBd2pGczA2?=
 =?utf-8?B?RjR6U2NmQm9aVVk3RURodlBtb0g2YWN6Z0l0RjZJVHpDYk9hZGJhaGM2dzEz?=
 =?utf-8?B?YVkxdnlObFpFMkk0ajhPZzQvcHlZYU91UysraEtpM3EycFpMR3lqQUVCaitI?=
 =?utf-8?B?a0FseERHWC83Q1A0YTBYMFdzeXhlV1JpUWV5V1dWWHpZaEFGSGVwVzk5YkZ4?=
 =?utf-8?B?NjVNb2NRdjJlUHVvOXdpbHEvZE9KKzJoMVVBSE1OdHk0OFNJdGIzSm5XckNj?=
 =?utf-8?B?MDdHcFc3elpCZk8wMWR3TGxiU2ZJdkFtampreEE1SUJZRTZ3ZnBMVlhBZlUz?=
 =?utf-8?B?QVdUZThMSXdqQjdZTlkwVkxDdmhDVk9vOWd6ZGVDWHVua2FyQzV0ejVUd0xF?=
 =?utf-8?B?dmVBZElsb3BPUnlvdHBuaEV1cE5BL1g3MHZKQkc1QURSV0lIOVZhRjQ0NjFa?=
 =?utf-8?B?dTlCMlFMTXI3anVJbUN3MENqWUkzbmFCL2liZ1JId1BsVVdIdjdDVGhUWmRi?=
 =?utf-8?B?aFdjQ1Zja09GN0czZGxhbm5xN0s0WllFejhyNC9lUmF3ODhUQjBTVUlGSkJI?=
 =?utf-8?B?MUlEeVZoUG5xRzZ5eHU3MEhMQ290M0dJZURLVXdTYm9qQTVVM2xJOUo5ZTZs?=
 =?utf-8?B?eXNqRy9GSnllUTUranJMUS9ZS3BIQU4zUDhnb2tHdGNkOUJ3WEhIRU9xaGdB?=
 =?utf-8?B?YVJiUHJLeCtiNFVKRGlDcU0zWUdYM2ZGQnQ4MHNlWlE3dXMrZENtWDYwQ1hj?=
 =?utf-8?B?dzdqa0djcmRZcnFYWW5KWnNld0pMYkxmUnNrSkJXRGVheWY0MXIvZm1uY1VR?=
 =?utf-8?B?U0ZFaWxvODVEaXpkcE1aN2hnZkhXTHk0VVdXV2tjWG9KeUFEbnJtMVBDRVJJ?=
 =?utf-8?B?VXg2SEtwMHFKUllzY1FRckNibWNCNmNZYTNYNDRlM0ZoNzlnNGVsQzNlbzVY?=
 =?utf-8?B?ZUJLT1RGUm5qdDR1RU40WDdUQTBPc1ZTaWpWU3g1eFUwazArTjFYQU04Mmhp?=
 =?utf-8?B?WGg3aThGQ21FTHIybkFDR1FjWDRub1IzQWFISGVFaFVCZ0lYMmVCM1IwbkFG?=
 =?utf-8?B?MG5QWHBaVHFQYkhuN2ZLZHFPUkNEWm5aekVTQWdVZTF5K3ZObWFmS1BldjN2?=
 =?utf-8?Q?vuNlbfbfkJ84e6Ptj7DJpzc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8354943f-dfa6-48f6-fa41-08d99edbd292
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 15:08:41.8909
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JNCrtdWMN4V3vSwt9EIhU5w0Xz8qFLZoBpoiHbTomhdpSl19DCxARMmBP2Ohx+vv2ycqin5sb6Z4TDLnBr5rqQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4943

On 03.11.2021 11:20, Juergen Gross wrote:
> +# Generate the output
> +END {
> +    # Verbatim generated lines
> +    for (i = 1; i <= e; i++)
> +        printf("%s\n", emit[i]);
> +    printf("\n");
> +    # Generate prototypes
> +    for (i = 1; i <= n; i++) {
> +        for (p = 1; p <= n_pre[i]; p++) {
> +            printf("%s %s_%s(", rettype[pre[i, p]], pre[i, p], fn[i]);
> +            if (n_args[i] == 0)
> +                printf("void");
> +            else
> +                for (j = 1; j <= n_args[i]; j++) {
> +                    if (j > 1)
> +                        printf(", ");
> +                    if (ptr[i, j])
> +                        printf("XEN_GUEST_HANDLE_PARAM(%s)", typ[i, j]);
> +                    else
> +                        printf("%s", typ[i, j]);
> +                    printf(" %s", arg[i, j]);
> +                }
> +            printf(");\n");
> +        }
> +    }
> +    # Generate call sequences and args array contents
> +    for (ca in caller) {
> +        if (caller[ca] != 1)
> +            continue;
> +        need_mask = 0;
> +        for (pl = 1; pl <= n_prios[ca]; pl++) {
> +            for (pll = pl; pll > 1; pll--) {
> +                if (prio_list[ca, pl] > p_list[pll - 1])
> +                    break;
> +                else
> +                    p_list[pll] = p_list[pll - 1];
> +            }
> +            p_list[pll] = prio_list[ca, pl];
> +            # If any prio but the default one has more than 1 entry we need "mask"
> +            if (p_list[pll] != 100 && prios[ca, p_list[pll]] > 1)
> +                need_mask = 1;
> +        }
> +        printf("\n");
> +        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5) \\\n", ca);
> +        printf("{ \\\n");

In order to require a semicolon at the use site(s) of the macro I think
you want "({ \\\n" here. Everything else looks good to me so far, but
I'd really like to take a look at the generated output: Would you happen
to have available an instance, to supply in reply?

Thanks, Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:12:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:12:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220983.382462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHwJ-0003xh-GH; Wed, 03 Nov 2021 15:12:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220983.382462; Wed, 03 Nov 2021 15:12:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHwJ-0003xa-Cz; Wed, 03 Nov 2021 15:12:35 +0000
Received: by outflank-mailman (input) for mailman id 220983;
 Wed, 03 Nov 2021 15:12:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=neJr=PW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1miHwH-0003xU-Eb
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:12:33 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76f9d306-3cb8-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 16:12:31 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id BD7451FC9E;
 Wed,  3 Nov 2021 15:12:30 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7D16213BAA;
 Wed,  3 Nov 2021 15:12:30 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id vJNCHd6mgmGcLwAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 03 Nov 2021 15:12:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76f9d306-3cb8-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1635952350; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=QDG207j/LxwR5zKodJ/hRC4GvKdTBNClHf8puJmT+bw=;
	b=ZgOwHneDIK/wkwpaigQYpvI2yKDE7f1UneFQXloxiVSBoCEFvz2nsxzcheEksDq/QdZChi
	eHA+Fdp1fyE7V2EPNZY19MsCEDJbYPKfn2Aqaz3bKkQgKwOeUo5IYy+ra6M0dhZakIlB/L
	aNzfv6G28ubOhBKY6iNutB2kaQeS6o4=
Subject: Re: [PATCH v2.2 07/15] xen: generate hypercall interface related code
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211103102059.19621-1-jgross@suse.com>
 <52aa88a8-4c86-0e5a-d0b1-1d0431a97fd7@suse.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <50363292-3af5-db24-781a-912004b66feb@suse.com>
Date: Wed, 3 Nov 2021 16:12:29 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <52aa88a8-4c86-0e5a-d0b1-1d0431a97fd7@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="unfgGDGOL9Ve1wYNtoNuvWjfYqO4LXhqI"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--unfgGDGOL9Ve1wYNtoNuvWjfYqO4LXhqI
Content-Type: multipart/mixed; boundary="Vns8PW5NAQt3VlW3jTGS4IRGYsk1YNAFc";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
Message-ID: <50363292-3af5-db24-781a-912004b66feb@suse.com>
Subject: Re: [PATCH v2.2 07/15] xen: generate hypercall interface related code
References: <20211103102059.19621-1-jgross@suse.com>
 <52aa88a8-4c86-0e5a-d0b1-1d0431a97fd7@suse.com>
In-Reply-To: <52aa88a8-4c86-0e5a-d0b1-1d0431a97fd7@suse.com>

--Vns8PW5NAQt3VlW3jTGS4IRGYsk1YNAFc
Content-Type: multipart/mixed;
 boundary="------------0EFA0B646AEC59419545C052"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------0EFA0B646AEC59419545C052
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 03.11.21 16:08, Jan Beulich wrote:
> On 03.11.2021 11:20, Juergen Gross wrote:
>> +# Generate the output
>> +END {
>> +    # Verbatim generated lines
>> +    for (i =3D 1; i <=3D e; i++)
>> +        printf("%s\n", emit[i]);
>> +    printf("\n");
>> +    # Generate prototypes
>> +    for (i =3D 1; i <=3D n; i++) {
>> +        for (p =3D 1; p <=3D n_pre[i]; p++) {
>> +            printf("%s %s_%s(", rettype[pre[i, p]], pre[i, p], fn[i])=
;
>> +            if (n_args[i] =3D=3D 0)
>> +                printf("void");
>> +            else
>> +                for (j =3D 1; j <=3D n_args[i]; j++) {
>> +                    if (j > 1)
>> +                        printf(", ");
>> +                    if (ptr[i, j])
>> +                        printf("XEN_GUEST_HANDLE_PARAM(%s)", typ[i, j=
]);
>> +                    else
>> +                        printf("%s", typ[i, j]);
>> +                    printf(" %s", arg[i, j]);
>> +                }
>> +            printf(");\n");
>> +        }
>> +    }
>> +    # Generate call sequences and args array contents
>> +    for (ca in caller) {
>> +        if (caller[ca] !=3D 1)
>> +            continue;
>> +        need_mask =3D 0;
>> +        for (pl =3D 1; pl <=3D n_prios[ca]; pl++) {
>> +            for (pll =3D pl; pll > 1; pll--) {
>> +                if (prio_list[ca, pl] > p_list[pll - 1])
>> +                    break;
>> +                else
>> +                    p_list[pll] =3D p_list[pll - 1];
>> +            }
>> +            p_list[pll] =3D prio_list[ca, pl];
>> +            # If any prio but the default one has more than 1 entry w=
e need "mask"
>> +            if (p_list[pll] !=3D 100 && prios[ca, p_list[pll]] > 1)
>> +                need_mask =3D 1;
>> +        }
>> +        printf("\n");
>> +        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5=
) \\\n", ca);
>> +        printf("{ \\\n");
>=20
> In order to require a semicolon at the use site(s) of the macro I think=

> you want "({ \\\n" here. Everything else looks good to me so far, but
> I'd really like to take a look at the generated output: Would you happe=
n
> to have available an instance, to supply in reply?

Okay.

The generated file is attached.


Juergen

--------------0EFA0B646AEC59419545C052
Content-Type: text/x-chdr; charset=UTF-8;
 name="hypercall-defs.h"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
 filename="hypercall-defs.h"

/* Generated file, do not edit! */

DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
typedef struct compat_platform_op compat_platform_op_t;
DEFINE_XEN_GUEST_HANDLE(compat_platform_op_t);
DEFINE_XEN_GUEST_HANDLE(trap_info_compat_t);
DEFINE_XEN_GUEST_HANDLE(physdev_op_compat_t);

long do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
int compat_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
long do_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop=
, unsigned int count);
long hvm_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uo=
p, unsigned int count);
int compat_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) =
uop, unsigned int count);
long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
int compat_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void=
) arg);
int compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(v=
oid) arg);
long do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
int compat_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
long do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op);
int compat_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op);
long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg);
int compat_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg);
long do_kexec_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(void) uarg);
int compat_kexec_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(void) uarg);
long do_iret(void);
int compat_iret(void);
long do_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
int compat_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
long do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
int compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
int compat_set_timer_op(uint32_t lo, int32_t hi);
int compat_multicall(XEN_GUEST_HANDLE_PARAM(multicall_entry_compat_t) cal=
l_list, uint32_t nr_calls);
int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);=

int compat_dm_op(domid_t domid, unsigned int nr_bufs, XEN_GUEST_HANDLE_PA=
RAM(void) bufs);
int compat_mmuext_op(XEN_GUEST_HANDLE_PARAM(void) arg, unsigned int count=
, XEN_GUEST_HANDLE_PARAM(uint) pdone, unsigned int foreigndom);
int compat_set_trap_table(XEN_GUEST_HANDLE_PARAM(trap_info_compat_t) trap=
s);
int compat_set_gdt(XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int =
entries);
int compat_set_callbacks(unsigned long event_selector, unsigned long even=
t_address, unsigned long failsafe_selector, unsigned long failsafe_addres=
s);
int compat_update_descriptor(uint32_t pa_lo, uint32_t pa_hi, uint32_t des=
c_lo, uint32_t desc_hi);
int compat_update_va_mapping(unsigned int va, uint32_t lo, uint32_t hi, u=
nsigned int flags);
int compat_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_compat_t) =
uop);
int compat_update_va_mapping_otherdomain(unsigned int va, uint32_t lo, ui=
nt32_t hi, unsigned int flags, domid_t domid);
int compat_platform_op(XEN_GUEST_HANDLE_PARAM(compat_platform_op_t) u_xen=
pf_op);
long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop);=

long do_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop);
long do_sched_op_compat(int cmd, unsigned long arg);
long do_set_timer_op(s_time_t timeout);
long do_console_io(unsigned int cmd, unsigned int count, XEN_GUEST_HANDLE=
_PARAM(char) buffer);
long do_vm_assist(unsigned int cmd, unsigned int type);
long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
long do_mmuext_op(XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops, unsigned int =
count, XEN_GUEST_HANDLE_PARAM(uint) pdone, unsigned int foreigndom);
long do_multicall(XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list, un=
signed int nr_calls);
long do_mmu_update(XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs, unsigned i=
nt count, XEN_GUEST_HANDLE_PARAM(uint) pdone, unsigned int foreigndom);
long do_stack_switch(unsigned long ss, unsigned long esp);
long do_fpu_taskswitch(int set);
long do_set_debugreg(int reg, unsigned long value);
long do_get_debugreg(int reg);
long do_set_segment_base(unsigned int which, unsigned long base);
long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);
long do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps);
long do_set_gdt(XEN_GUEST_HANDLE_PARAM(xen_ulong_t) frame_list, unsigned =
int entries);
long do_set_callbacks(unsigned long event_address, unsigned long failsafe=
_address, unsigned long syscall_address);
long do_update_descriptor(uint64_t gaddr, seg_desc_t desc);
long do_update_va_mapping(unsigned long va, uint64_t val64, unsigned long=
 flags);
long do_update_va_mapping_otherdomain(unsigned long va, uint64_t val64, u=
nsigned long flags, domid_t domid);
long do_dm_op(domid_t domid, unsigned int nr_bufs, XEN_GUEST_HANDLE_PARAM=
(xen_dm_op_buf_t) bufs);
long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
long do_paging_domctl_cont(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)=
;
long do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)=
;
long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg);
long do_hypfs_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(const_char) arg=
1, unsigned long arg2, XEN_GUEST_HANDLE_PARAM(void) arg3, unsigned long a=
rg4);
long do_xenpmu_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(xen_pmu_params_=
t) arg);

#define call_handlers_hvm64(num, ret, a1, a2, a3, a4, a5) \
{ \
    uint64_t mask =3D 1ULL << num; \
    if ( likely(mask & ((1ULL << __HYPERVISOR_vcpu_op) | (1ULL << __HYPER=
VISOR_event_channel_op))) ) \
    { \
        if ( num =3D=3D __HYPERVISOR_vcpu_op ) \
            ret =3D do_vcpu_op((int)(a1), (unsigned int)(a2), (XEN_GUEST_=
HANDLE_PARAM(void)){ _p(a3) }); \
        else \
            ret =3D do_event_channel_op((int)(a1), (XEN_GUEST_HANDLE_PARA=
M(void)){ _p(a2) }); \
    } \
    else         switch ( num ) \
        { \
        case __HYPERVISOR_platform_op: \
            ret =3D do_platform_op((XEN_GUEST_HANDLE_PARAM(xen_platform_o=
p_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_memory_op: \
            ret =3D hvm_memory_op((unsigned long)(a1), (XEN_GUEST_HANDLE_=
PARAM(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_multicall: \
            ret =3D do_multicall((XEN_GUEST_HANDLE_PARAM(multicall_entry_=
t)){ _p(a1) }, (unsigned int)(a2)); \
            break; \
        case __HYPERVISOR_set_timer_op: \
            ret =3D do_set_timer_op((s_time_t)(a1)); \
            break; \
        case __HYPERVISOR_xen_version: \
            ret =3D do_xen_version((int)(a1), (XEN_GUEST_HANDLE_PARAM(voi=
d)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_console_io: \
            ret =3D do_console_io((unsigned int)(a1), (unsigned int)(a2),=
 (XEN_GUEST_HANDLE_PARAM(char)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_grant_table_op: \
            ret =3D hvm_grant_table_op((unsigned int)(a1), (XEN_GUEST_HAN=
DLE_PARAM(void)){ _p(a2) }, (unsigned int)(a3)); \
            break; \
        case __HYPERVISOR_vm_assist: \
            ret =3D do_vm_assist((unsigned int)(a1), (unsigned int)(a2));=
 \
            break; \
        case __HYPERVISOR_mmuext_op: \
            ret =3D do_mmuext_op((XEN_GUEST_HANDLE_PARAM(mmuext_op_t)){ _=
p(a1) }, (unsigned int)(a2), (XEN_GUEST_HANDLE_PARAM(uint)){ _p(a3) }, (u=
nsigned int)(a4)); \
            break; \
        case __HYPERVISOR_xsm_op: \
            ret =3D do_xsm_op((XEN_GUEST_HANDLE_PARAM(void)){ _p(a1) }); =
\
            break; \
        case __HYPERVISOR_sched_op: \
            ret =3D do_sched_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(void))=
{ _p(a2) }); \
            break; \
        case __HYPERVISOR_physdev_op: \
            ret =3D hvm_physdev_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(voi=
d)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_hvm_op: \
            ret =3D do_hvm_op((unsigned long)(a1), (XEN_GUEST_HANDLE_PARA=
M(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_sysctl: \
            ret =3D do_sysctl((XEN_GUEST_HANDLE_PARAM(xen_sysctl_t)){ _p(=
a1) }); \
            break; \
        case __HYPERVISOR_domctl: \
            ret =3D do_domctl((XEN_GUEST_HANDLE_PARAM(xen_domctl_t)){ _p(=
a1) }); \
            break; \
        case __HYPERVISOR_xenpmu_op: \
            ret =3D do_xenpmu_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PA=
RAM(xen_pmu_params_t)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_dm_op: \
            ret =3D do_dm_op((domid_t)(a1), (unsigned int)(a2), (XEN_GUES=
T_HANDLE_PARAM(xen_dm_op_buf_t)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_hypfs_op: \
            ret =3D do_hypfs_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PAR=
AM(const_char)){ _p(a2) }, (unsigned long)(a3), (XEN_GUEST_HANDLE_PARAM(v=
oid)){ _p(a4) }, (unsigned long)(a5)); \
            break; \
        case __HYPERVISOR_paging_domctl_cont: \
            ret =3D do_paging_domctl_cont((XEN_GUEST_HANDLE_PARAM(xen_dom=
ctl_t)){ _p(a1) }); \
            break; \
        default: \
            ret =3D -ENOSYS; \
            break; \
        } \
}

#define hypercall_args_hvm64 \
{ \
[__HYPERVISOR_platform_op] =3D 1, \
[__HYPERVISOR_memory_op] =3D 2, \
[__HYPERVISOR_multicall] =3D 2, \
[__HYPERVISOR_set_timer_op] =3D 1, \
[__HYPERVISOR_xen_version] =3D 2, \
[__HYPERVISOR_console_io] =3D 3, \
[__HYPERVISOR_grant_table_op] =3D 3, \
[__HYPERVISOR_vm_assist] =3D 2, \
[__HYPERVISOR_vcpu_op] =3D 3, \
[__HYPERVISOR_mmuext_op] =3D 4, \
[__HYPERVISOR_xsm_op] =3D 1, \
[__HYPERVISOR_sched_op] =3D 2, \
[__HYPERVISOR_event_channel_op] =3D 2, \
[__HYPERVISOR_physdev_op] =3D 2, \
[__HYPERVISOR_hvm_op] =3D 2, \
[__HYPERVISOR_sysctl] =3D 1, \
[__HYPERVISOR_domctl] =3D 1, \
[__HYPERVISOR_xenpmu_op] =3D 2, \
[__HYPERVISOR_dm_op] =3D 3, \
[__HYPERVISOR_hypfs_op] =3D 5, \
[__HYPERVISOR_paging_domctl_cont] =3D 1, \
}

#define call_handlers_pv32(num, ret, a1, a2, a3, a4, a5) \
{ \
    uint64_t mask =3D 1ULL << num; \
    if ( likely(mask & ((1ULL << __HYPERVISOR_mmu_update) | (1ULL << __HY=
PERVISOR_iret))) ) \
    { \
        if ( num =3D=3D __HYPERVISOR_mmu_update ) \
            ret =3D do_mmu_update((XEN_GUEST_HANDLE_PARAM(mmu_update_t)){=
 _p(a1) }, (unsigned int)(a2), (XEN_GUEST_HANDLE_PARAM(uint)){ _p(a3) }, =
(unsigned int)(a4)); \
        else \
            ret =3D compat_iret(); \
    } \
    else if ( likely(mask & ((1ULL << __HYPERVISOR_stack_switch) | (1ULL =
<< __HYPERVISOR_multicall) | (1ULL << __HYPERVISOR_set_segment_base) | (1=
ULL << __HYPERVISOR_mmuext_op))) ) \
    { \
        switch ( num ) \
        { \
        case __HYPERVISOR_stack_switch: \
            ret =3D do_stack_switch((unsigned long)(a1), (unsigned long)(=
a2)); \
            break; \
        case __HYPERVISOR_multicall: \
            ret =3D compat_multicall((XEN_GUEST_HANDLE_PARAM(multicall_en=
try_compat_t)){ _p(a1) }, (uint32_t)(a2)); \
            break; \
        case __HYPERVISOR_set_segment_base: \
            ret =3D do_set_segment_base((unsigned int)(a1), (unsigned lon=
g)(a2)); \
            break; \
        case __HYPERVISOR_mmuext_op: \
            ret =3D compat_mmuext_op((XEN_GUEST_HANDLE_PARAM(void)){ _p(a=
1) }, (unsigned int)(a2), (XEN_GUEST_HANDLE_PARAM(uint)){ _p(a3) }, (unsi=
gned int)(a4)); \
            break; \
        default: \
            ret =3D -ENOSYS; \
            break; \
        } \
    } \
    else         switch ( num ) \
        { \
        case __HYPERVISOR_set_trap_table: \
            ret =3D compat_set_trap_table((XEN_GUEST_HANDLE_PARAM(trap_in=
fo_compat_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_set_gdt: \
            ret =3D compat_set_gdt((XEN_GUEST_HANDLE_PARAM(uint)){ _p(a1)=
 }, (unsigned int)(a2)); \
            break; \
        case __HYPERVISOR_set_callbacks: \
            ret =3D compat_set_callbacks((unsigned long)(a1), (unsigned l=
ong)(a2), (unsigned long)(a3), (unsigned long)(a4)); \
            break; \
        case __HYPERVISOR_fpu_taskswitch: \
            ret =3D do_fpu_taskswitch((int)(a1)); \
            break; \
        case __HYPERVISOR_sched_op_compat: \
            ret =3D do_sched_op_compat((int)(a1), (unsigned long)(a2)); \=

            break; \
        case __HYPERVISOR_platform_op: \
            ret =3D compat_platform_op((XEN_GUEST_HANDLE_PARAM(compat_pla=
tform_op_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_set_debugreg: \
            ret =3D do_set_debugreg((int)(a1), (unsigned long)(a2)); \
            break; \
        case __HYPERVISOR_get_debugreg: \
            ret =3D do_get_debugreg((int)(a1)); \
            break; \
        case __HYPERVISOR_update_descriptor: \
            ret =3D compat_update_descriptor((uint32_t)(a1), (uint32_t)(a=
2), (uint32_t)(a3), (uint32_t)(a4)); \
            break; \
        case __HYPERVISOR_memory_op: \
            ret =3D compat_memory_op((unsigned int)(a1), (XEN_GUEST_HANDL=
E_PARAM(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_update_va_mapping: \
            ret =3D compat_update_va_mapping((unsigned int)(a1), (uint32_=
t)(a2), (uint32_t)(a3), (unsigned int)(a4)); \
            break; \
        case __HYPERVISOR_set_timer_op: \
            ret =3D compat_set_timer_op((uint32_t)(a1), (int32_t)(a2)); \=

            break; \
        case __HYPERVISOR_event_channel_op_compat: \
            ret =3D do_event_channel_op_compat((XEN_GUEST_HANDLE_PARAM(ev=
tchn_op_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_xen_version: \
            ret =3D compat_xen_version((int)(a1), (XEN_GUEST_HANDLE_PARAM=
(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_console_io: \
            ret =3D do_console_io((unsigned int)(a1), (unsigned int)(a2),=
 (XEN_GUEST_HANDLE_PARAM(char)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_physdev_op_compat: \
            ret =3D compat_physdev_op_compat((XEN_GUEST_HANDLE_PARAM(phys=
dev_op_compat_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_grant_table_op: \
            ret =3D compat_grant_table_op((unsigned int)(a1), (XEN_GUEST_=
HANDLE_PARAM(void)){ _p(a2) }, (unsigned int)(a3)); \
            break; \
        case __HYPERVISOR_vm_assist: \
            ret =3D do_vm_assist((unsigned int)(a1), (unsigned int)(a2));=
 \
            break; \
        case __HYPERVISOR_update_va_mapping_otherdomain: \
            ret =3D compat_update_va_mapping_otherdomain((unsigned int)(a=
1), (uint32_t)(a2), (uint32_t)(a3), (unsigned int)(a4), (domid_t)(a5)); \=

            break; \
        case __HYPERVISOR_vcpu_op: \
            ret =3D compat_vcpu_op((int)(a1), (unsigned int)(a2), (XEN_GU=
EST_HANDLE_PARAM(void)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_xsm_op: \
            ret =3D compat_xsm_op((XEN_GUEST_HANDLE_PARAM(void)){ _p(a1) =
}); \
            break; \
        case __HYPERVISOR_nmi_op: \
            ret =3D compat_nmi_op((unsigned int)(a1), (XEN_GUEST_HANDLE_P=
ARAM(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_sched_op: \
            ret =3D compat_sched_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(vo=
id)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_callback_op: \
            ret =3D compat_callback_op((int)(a1), (XEN_GUEST_HANDLE_PARAM=
(const_void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_xenoprof_op: \
            ret =3D compat_xenoprof_op((int)(a1), (XEN_GUEST_HANDLE_PARAM=
(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_event_channel_op: \
            ret =3D do_event_channel_op((int)(a1), (XEN_GUEST_HANDLE_PARA=
M(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_physdev_op: \
            ret =3D compat_physdev_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(=
void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_hvm_op: \
            ret =3D do_hvm_op((unsigned long)(a1), (XEN_GUEST_HANDLE_PARA=
M(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_sysctl: \
            ret =3D do_sysctl((XEN_GUEST_HANDLE_PARAM(xen_sysctl_t)){ _p(=
a1) }); \
            break; \
        case __HYPERVISOR_domctl: \
            ret =3D do_domctl((XEN_GUEST_HANDLE_PARAM(xen_domctl_t)){ _p(=
a1) }); \
            break; \
        case __HYPERVISOR_kexec_op: \
            ret =3D compat_kexec_op((unsigned int)(a1), (XEN_GUEST_HANDLE=
_PARAM(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_xenpmu_op: \
            ret =3D do_xenpmu_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PA=
RAM(xen_pmu_params_t)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_dm_op: \
            ret =3D compat_dm_op((domid_t)(a1), (unsigned int)(a2), (XEN_=
GUEST_HANDLE_PARAM(void)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_hypfs_op: \
            ret =3D do_hypfs_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PAR=
AM(const_char)){ _p(a2) }, (unsigned long)(a3), (XEN_GUEST_HANDLE_PARAM(v=
oid)){ _p(a4) }, (unsigned long)(a5)); \
            break; \
        case __HYPERVISOR_mca: \
            ret =3D do_mca((XEN_GUEST_HANDLE_PARAM(xen_mc_t)){ _p(a1) });=
 \
            break; \
        case __HYPERVISOR_paging_domctl_cont: \
            ret =3D do_paging_domctl_cont((XEN_GUEST_HANDLE_PARAM(xen_dom=
ctl_t)){ _p(a1) }); \
            break; \
        default: \
            ret =3D -ENOSYS; \
            break; \
        } \
}

#define hypercall_args_pv32 \
{ \
[__HYPERVISOR_set_trap_table] =3D 1, \
[__HYPERVISOR_mmu_update] =3D 4, \
[__HYPERVISOR_set_gdt] =3D 2, \
[__HYPERVISOR_stack_switch] =3D 2, \
[__HYPERVISOR_set_callbacks] =3D 4, \
[__HYPERVISOR_fpu_taskswitch] =3D 1, \
[__HYPERVISOR_sched_op_compat] =3D 2, \
[__HYPERVISOR_platform_op] =3D 1, \
[__HYPERVISOR_set_debugreg] =3D 2, \
[__HYPERVISOR_get_debugreg] =3D 1, \
[__HYPERVISOR_update_descriptor] =3D 4, \
[__HYPERVISOR_memory_op] =3D 2, \
[__HYPERVISOR_multicall] =3D 2, \
[__HYPERVISOR_update_va_mapping] =3D 4, \
[__HYPERVISOR_set_timer_op] =3D 2, \
[__HYPERVISOR_event_channel_op_compat] =3D 1, \
[__HYPERVISOR_xen_version] =3D 2, \
[__HYPERVISOR_console_io] =3D 3, \
[__HYPERVISOR_physdev_op_compat] =3D 1, \
[__HYPERVISOR_grant_table_op] =3D 3, \
[__HYPERVISOR_vm_assist] =3D 2, \
[__HYPERVISOR_update_va_mapping_otherdomain] =3D 5, \
[__HYPERVISOR_iret] =3D 0, \
[__HYPERVISOR_vcpu_op] =3D 3, \
[__HYPERVISOR_set_segment_base] =3D 2, \
[__HYPERVISOR_mmuext_op] =3D 4, \
[__HYPERVISOR_xsm_op] =3D 1, \
[__HYPERVISOR_nmi_op] =3D 2, \
[__HYPERVISOR_sched_op] =3D 2, \
[__HYPERVISOR_callback_op] =3D 2, \
[__HYPERVISOR_xenoprof_op] =3D 2, \
[__HYPERVISOR_event_channel_op] =3D 2, \
[__HYPERVISOR_physdev_op] =3D 2, \
[__HYPERVISOR_hvm_op] =3D 2, \
[__HYPERVISOR_sysctl] =3D 1, \
[__HYPERVISOR_domctl] =3D 1, \
[__HYPERVISOR_kexec_op] =3D 2, \
[__HYPERVISOR_xenpmu_op] =3D 2, \
[__HYPERVISOR_dm_op] =3D 3, \
[__HYPERVISOR_hypfs_op] =3D 5, \
[__HYPERVISOR_mca] =3D 1, \
[__HYPERVISOR_paging_domctl_cont] =3D 1, \
}

#define call_handlers_hvm32(num, ret, a1, a2, a3, a4, a5) \
{ \
    uint64_t mask =3D 1ULL << num; \
    if ( likely(mask & ((1ULL << __HYPERVISOR_vcpu_op) | (1ULL << __HYPER=
VISOR_event_channel_op))) ) \
    { \
        if ( num =3D=3D __HYPERVISOR_vcpu_op ) \
            ret =3D compat_vcpu_op((int)(a1), (unsigned int)(a2), (XEN_GU=
EST_HANDLE_PARAM(void)){ _p(a3) }); \
        else \
            ret =3D do_event_channel_op((int)(a1), (XEN_GUEST_HANDLE_PARA=
M(void)){ _p(a2) }); \
    } \
    else         switch ( num ) \
        { \
        case __HYPERVISOR_platform_op: \
            ret =3D compat_platform_op((XEN_GUEST_HANDLE_PARAM(compat_pla=
tform_op_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_memory_op: \
            ret =3D hvm_memory_op((unsigned long)(a1), (XEN_GUEST_HANDLE_=
PARAM(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_multicall: \
            ret =3D compat_multicall((XEN_GUEST_HANDLE_PARAM(multicall_en=
try_compat_t)){ _p(a1) }, (uint32_t)(a2)); \
            break; \
        case __HYPERVISOR_set_timer_op: \
            ret =3D compat_set_timer_op((uint32_t)(a1), (int32_t)(a2)); \=

            break; \
        case __HYPERVISOR_xen_version: \
            ret =3D compat_xen_version((int)(a1), (XEN_GUEST_HANDLE_PARAM=
(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_console_io: \
            ret =3D do_console_io((unsigned int)(a1), (unsigned int)(a2),=
 (XEN_GUEST_HANDLE_PARAM(char)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_grant_table_op: \
            ret =3D hvm_grant_table_op((unsigned int)(a1), (XEN_GUEST_HAN=
DLE_PARAM(void)){ _p(a2) }, (unsigned int)(a3)); \
            break; \
        case __HYPERVISOR_vm_assist: \
            ret =3D do_vm_assist((unsigned int)(a1), (unsigned int)(a2));=
 \
            break; \
        case __HYPERVISOR_mmuext_op: \
            ret =3D compat_mmuext_op((XEN_GUEST_HANDLE_PARAM(void)){ _p(a=
1) }, (unsigned int)(a2), (XEN_GUEST_HANDLE_PARAM(uint)){ _p(a3) }, (unsi=
gned int)(a4)); \
            break; \
        case __HYPERVISOR_xsm_op: \
            ret =3D compat_xsm_op((XEN_GUEST_HANDLE_PARAM(void)){ _p(a1) =
}); \
            break; \
        case __HYPERVISOR_sched_op: \
            ret =3D compat_sched_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(vo=
id)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_physdev_op: \
            ret =3D hvm_physdev_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(voi=
d)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_hvm_op: \
            ret =3D do_hvm_op((unsigned long)(a1), (XEN_GUEST_HANDLE_PARA=
M(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_sysctl: \
            ret =3D do_sysctl((XEN_GUEST_HANDLE_PARAM(xen_sysctl_t)){ _p(=
a1) }); \
            break; \
        case __HYPERVISOR_domctl: \
            ret =3D do_domctl((XEN_GUEST_HANDLE_PARAM(xen_domctl_t)){ _p(=
a1) }); \
            break; \
        case __HYPERVISOR_xenpmu_op: \
            ret =3D do_xenpmu_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PA=
RAM(xen_pmu_params_t)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_dm_op: \
            ret =3D compat_dm_op((domid_t)(a1), (unsigned int)(a2), (XEN_=
GUEST_HANDLE_PARAM(void)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_hypfs_op: \
            ret =3D do_hypfs_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PAR=
AM(const_char)){ _p(a2) }, (unsigned long)(a3), (XEN_GUEST_HANDLE_PARAM(v=
oid)){ _p(a4) }, (unsigned long)(a5)); \
            break; \
        case __HYPERVISOR_paging_domctl_cont: \
            ret =3D do_paging_domctl_cont((XEN_GUEST_HANDLE_PARAM(xen_dom=
ctl_t)){ _p(a1) }); \
            break; \
        default: \
            ret =3D -ENOSYS; \
            break; \
        } \
}

#define hypercall_args_hvm32 \
{ \
[__HYPERVISOR_platform_op] =3D 1, \
[__HYPERVISOR_memory_op] =3D 2, \
[__HYPERVISOR_multicall] =3D 2, \
[__HYPERVISOR_set_timer_op] =3D 2, \
[__HYPERVISOR_xen_version] =3D 2, \
[__HYPERVISOR_console_io] =3D 3, \
[__HYPERVISOR_grant_table_op] =3D 3, \
[__HYPERVISOR_vm_assist] =3D 2, \
[__HYPERVISOR_vcpu_op] =3D 3, \
[__HYPERVISOR_mmuext_op] =3D 4, \
[__HYPERVISOR_xsm_op] =3D 1, \
[__HYPERVISOR_sched_op] =3D 2, \
[__HYPERVISOR_event_channel_op] =3D 2, \
[__HYPERVISOR_physdev_op] =3D 2, \
[__HYPERVISOR_hvm_op] =3D 2, \
[__HYPERVISOR_sysctl] =3D 1, \
[__HYPERVISOR_domctl] =3D 1, \
[__HYPERVISOR_xenpmu_op] =3D 2, \
[__HYPERVISOR_dm_op] =3D 3, \
[__HYPERVISOR_hypfs_op] =3D 5, \
[__HYPERVISOR_paging_domctl_cont] =3D 1, \
}

#define call_handlers_pv64(num, ret, a1, a2, a3, a4, a5) \
{ \
    uint64_t mask =3D 1ULL << num; \
    if ( likely(mask & ((1ULL << __HYPERVISOR_mmu_update) | (1ULL << __HY=
PERVISOR_iret))) ) \
    { \
        if ( num =3D=3D __HYPERVISOR_mmu_update ) \
            ret =3D do_mmu_update((XEN_GUEST_HANDLE_PARAM(mmu_update_t)){=
 _p(a1) }, (unsigned int)(a2), (XEN_GUEST_HANDLE_PARAM(uint)){ _p(a3) }, =
(unsigned int)(a4)); \
        else \
            ret =3D do_iret(); \
    } \
    else if ( likely(mask & ((1ULL << __HYPERVISOR_stack_switch) | (1ULL =
<< __HYPERVISOR_multicall) | (1ULL << __HYPERVISOR_set_segment_base) | (1=
ULL << __HYPERVISOR_mmuext_op))) ) \
    { \
        switch ( num ) \
        { \
        case __HYPERVISOR_stack_switch: \
            ret =3D do_stack_switch((unsigned long)(a1), (unsigned long)(=
a2)); \
            break; \
        case __HYPERVISOR_multicall: \
            ret =3D do_multicall((XEN_GUEST_HANDLE_PARAM(multicall_entry_=
t)){ _p(a1) }, (unsigned int)(a2)); \
            break; \
        case __HYPERVISOR_set_segment_base: \
            ret =3D do_set_segment_base((unsigned int)(a1), (unsigned lon=
g)(a2)); \
            break; \
        case __HYPERVISOR_mmuext_op: \
            ret =3D do_mmuext_op((XEN_GUEST_HANDLE_PARAM(mmuext_op_t)){ _=
p(a1) }, (unsigned int)(a2), (XEN_GUEST_HANDLE_PARAM(uint)){ _p(a3) }, (u=
nsigned int)(a4)); \
            break; \
        default: \
            ret =3D -ENOSYS; \
            break; \
        } \
    } \
    else         switch ( num ) \
        { \
        case __HYPERVISOR_set_trap_table: \
            ret =3D do_set_trap_table((XEN_GUEST_HANDLE_PARAM(const_trap_=
info_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_set_gdt: \
            ret =3D do_set_gdt((XEN_GUEST_HANDLE_PARAM(xen_ulong_t)){ _p(=
a1) }, (unsigned int)(a2)); \
            break; \
        case __HYPERVISOR_set_callbacks: \
            ret =3D do_set_callbacks((unsigned long)(a1), (unsigned long)=
(a2), (unsigned long)(a3)); \
            break; \
        case __HYPERVISOR_fpu_taskswitch: \
            ret =3D do_fpu_taskswitch((int)(a1)); \
            break; \
        case __HYPERVISOR_sched_op_compat: \
            ret =3D do_sched_op_compat((int)(a1), (unsigned long)(a2)); \=

            break; \
        case __HYPERVISOR_platform_op: \
            ret =3D do_platform_op((XEN_GUEST_HANDLE_PARAM(xen_platform_o=
p_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_set_debugreg: \
            ret =3D do_set_debugreg((int)(a1), (unsigned long)(a2)); \
            break; \
        case __HYPERVISOR_get_debugreg: \
            ret =3D do_get_debugreg((int)(a1)); \
            break; \
        case __HYPERVISOR_update_descriptor: \
            ret =3D do_update_descriptor((uint64_t)(a1), (seg_desc_t)(a2)=
); \
            break; \
        case __HYPERVISOR_memory_op: \
            ret =3D do_memory_op((unsigned long)(a1), (XEN_GUEST_HANDLE_P=
ARAM(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_update_va_mapping: \
            ret =3D do_update_va_mapping((unsigned long)(a1), (uint64_t)(=
a2), (unsigned long)(a3)); \
            break; \
        case __HYPERVISOR_set_timer_op: \
            ret =3D do_set_timer_op((s_time_t)(a1)); \
            break; \
        case __HYPERVISOR_event_channel_op_compat: \
            ret =3D do_event_channel_op_compat((XEN_GUEST_HANDLE_PARAM(ev=
tchn_op_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_xen_version: \
            ret =3D do_xen_version((int)(a1), (XEN_GUEST_HANDLE_PARAM(voi=
d)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_console_io: \
            ret =3D do_console_io((unsigned int)(a1), (unsigned int)(a2),=
 (XEN_GUEST_HANDLE_PARAM(char)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_physdev_op_compat: \
            ret =3D do_physdev_op_compat((XEN_GUEST_HANDLE_PARAM(physdev_=
op_t)){ _p(a1) }); \
            break; \
        case __HYPERVISOR_grant_table_op: \
            ret =3D do_grant_table_op((unsigned int)(a1), (XEN_GUEST_HAND=
LE_PARAM(void)){ _p(a2) }, (unsigned int)(a3)); \
            break; \
        case __HYPERVISOR_vm_assist: \
            ret =3D do_vm_assist((unsigned int)(a1), (unsigned int)(a2));=
 \
            break; \
        case __HYPERVISOR_update_va_mapping_otherdomain: \
            ret =3D do_update_va_mapping_otherdomain((unsigned long)(a1),=
 (uint64_t)(a2), (unsigned long)(a3), (domid_t)(a4)); \
            break; \
        case __HYPERVISOR_vcpu_op: \
            ret =3D do_vcpu_op((int)(a1), (unsigned int)(a2), (XEN_GUEST_=
HANDLE_PARAM(void)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_xsm_op: \
            ret =3D do_xsm_op((XEN_GUEST_HANDLE_PARAM(void)){ _p(a1) }); =
\
            break; \
        case __HYPERVISOR_nmi_op: \
            ret =3D do_nmi_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PARAM=
(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_sched_op: \
            ret =3D do_sched_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(void))=
{ _p(a2) }); \
            break; \
        case __HYPERVISOR_callback_op: \
            ret =3D do_callback_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(con=
st_void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_xenoprof_op: \
            ret =3D do_xenoprof_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(voi=
d)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_event_channel_op: \
            ret =3D do_event_channel_op((int)(a1), (XEN_GUEST_HANDLE_PARA=
M(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_physdev_op: \
            ret =3D do_physdev_op((int)(a1), (XEN_GUEST_HANDLE_PARAM(void=
)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_hvm_op: \
            ret =3D do_hvm_op((unsigned long)(a1), (XEN_GUEST_HANDLE_PARA=
M(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_sysctl: \
            ret =3D do_sysctl((XEN_GUEST_HANDLE_PARAM(xen_sysctl_t)){ _p(=
a1) }); \
            break; \
        case __HYPERVISOR_domctl: \
            ret =3D do_domctl((XEN_GUEST_HANDLE_PARAM(xen_domctl_t)){ _p(=
a1) }); \
            break; \
        case __HYPERVISOR_kexec_op: \
            ret =3D do_kexec_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PAR=
AM(void)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_xenpmu_op: \
            ret =3D do_xenpmu_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PA=
RAM(xen_pmu_params_t)){ _p(a2) }); \
            break; \
        case __HYPERVISOR_dm_op: \
            ret =3D do_dm_op((domid_t)(a1), (unsigned int)(a2), (XEN_GUES=
T_HANDLE_PARAM(xen_dm_op_buf_t)){ _p(a3) }); \
            break; \
        case __HYPERVISOR_hypfs_op: \
            ret =3D do_hypfs_op((unsigned int)(a1), (XEN_GUEST_HANDLE_PAR=
AM(const_char)){ _p(a2) }, (unsigned long)(a3), (XEN_GUEST_HANDLE_PARAM(v=
oid)){ _p(a4) }, (unsigned long)(a5)); \
            break; \
        case __HYPERVISOR_mca: \
            ret =3D do_mca((XEN_GUEST_HANDLE_PARAM(xen_mc_t)){ _p(a1) });=
 \
            break; \
        case __HYPERVISOR_paging_domctl_cont: \
            ret =3D do_paging_domctl_cont((XEN_GUEST_HANDLE_PARAM(xen_dom=
ctl_t)){ _p(a1) }); \
            break; \
        default: \
            ret =3D -ENOSYS; \
            break; \
        } \
}

#define hypercall_args_pv64 \
{ \
[__HYPERVISOR_set_trap_table] =3D 1, \
[__HYPERVISOR_mmu_update] =3D 4, \
[__HYPERVISOR_set_gdt] =3D 2, \
[__HYPERVISOR_stack_switch] =3D 2, \
[__HYPERVISOR_set_callbacks] =3D 3, \
[__HYPERVISOR_fpu_taskswitch] =3D 1, \
[__HYPERVISOR_sched_op_compat] =3D 2, \
[__HYPERVISOR_platform_op] =3D 1, \
[__HYPERVISOR_set_debugreg] =3D 2, \
[__HYPERVISOR_get_debugreg] =3D 1, \
[__HYPERVISOR_update_descriptor] =3D 2, \
[__HYPERVISOR_memory_op] =3D 2, \
[__HYPERVISOR_multicall] =3D 2, \
[__HYPERVISOR_update_va_mapping] =3D 3, \
[__HYPERVISOR_set_timer_op] =3D 1, \
[__HYPERVISOR_event_channel_op_compat] =3D 1, \
[__HYPERVISOR_xen_version] =3D 2, \
[__HYPERVISOR_console_io] =3D 3, \
[__HYPERVISOR_physdev_op_compat] =3D 1, \
[__HYPERVISOR_grant_table_op] =3D 3, \
[__HYPERVISOR_vm_assist] =3D 2, \
[__HYPERVISOR_update_va_mapping_otherdomain] =3D 4, \
[__HYPERVISOR_iret] =3D 0, \
[__HYPERVISOR_vcpu_op] =3D 3, \
[__HYPERVISOR_set_segment_base] =3D 2, \
[__HYPERVISOR_mmuext_op] =3D 4, \
[__HYPERVISOR_xsm_op] =3D 1, \
[__HYPERVISOR_nmi_op] =3D 2, \
[__HYPERVISOR_sched_op] =3D 2, \
[__HYPERVISOR_callback_op] =3D 2, \
[__HYPERVISOR_xenoprof_op] =3D 2, \
[__HYPERVISOR_event_channel_op] =3D 2, \
[__HYPERVISOR_physdev_op] =3D 2, \
[__HYPERVISOR_hvm_op] =3D 2, \
[__HYPERVISOR_sysctl] =3D 1, \
[__HYPERVISOR_domctl] =3D 1, \
[__HYPERVISOR_kexec_op] =3D 2, \
[__HYPERVISOR_xenpmu_op] =3D 2, \
[__HYPERVISOR_dm_op] =3D 3, \
[__HYPERVISOR_hypfs_op] =3D 5, \
[__HYPERVISOR_mca] =3D 1, \
[__HYPERVISOR_paging_domctl_cont] =3D 1, \
}

--------------0EFA0B646AEC59419545C052
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------0EFA0B646AEC59419545C052--

--Vns8PW5NAQt3VlW3jTGS4IRGYsk1YNAFc--

--unfgGDGOL9Ve1wYNtoNuvWjfYqO4LXhqI
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGCpt0FAwAAAAAACgkQsN6d1ii/Ey/L
HQf+NKpmDXn32YXb/3dWwpNpsuXKhST+UVEH6XuHNXUZFxiz09cCqyfR2ZVwJAYSi8bO4DOgAHTk
fft7DlLFWvcOuPgsS1wgub8woA1lXINbS7KFFLEvrLEZ6Hpw3D2V8+ql5OHn4tkTR9UGn6D6monG
u8DMN70QXzQL5yj4jefE9FoLJczkxUa1Vqnpu9+g23vCQ5ctSaVXaVKRl1U0l9mJWaPvkzVcK/jm
P9X5UScaupr1DN179CtgCuuvCLrJPNInH1lEdmDseDqq+WlPGr+PhLzNbu3xl8ITdsNlobmCgoIK
5clXqGepvlIf4EULi6thPInfSIAD4W+oUGqcpM2nLg==
=ywsz
-----END PGP SIGNATURE-----

--unfgGDGOL9Ve1wYNtoNuvWjfYqO4LXhqI--


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:16:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:16:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220989.382473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHzd-0004fX-4g; Wed, 03 Nov 2021 15:16:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220989.382473; Wed, 03 Nov 2021 15:16:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miHzd-0004fQ-1V; Wed, 03 Nov 2021 15:16:01 +0000
Received: by outflank-mailman (input) for mailman id 220989;
 Wed, 03 Nov 2021 15:16:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miHzb-0004f1-W0
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:16:00 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2380f3e-3cb8-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 16:15:57 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2059.outbound.protection.outlook.com [104.47.10.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-6-GsRArUnqPcKlPANKfkPolw-1;
 Wed, 03 Nov 2021 16:15:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4605.eurprd04.prod.outlook.com (2603:10a6:803:65::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Wed, 3 Nov
 2021 15:15:54 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 15:15:54 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0083.eurprd06.prod.outlook.com (2603:10a6:206::48) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Wed, 3 Nov 2021 15:15:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2380f3e-3cb8-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635952557;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tbFV5VcEZ7yiZgrCxBjjgmu6atK9oeWV5KuA7tgKiIQ=;
	b=l4tvYiS6tU5SWPCSc+R/MAnMrYKYu7hYdmspOvM0osZt3b1RkbUun90E/E2m1wUJQBTmC4
	xXGov5fgYqPb2bEK3GUfM33LUI9pP/6AJq3ZD9N+rOCRUnlHKUxhFWjQwGbyLNe4KuMpSX
	Ja/FtXYVKX19ZSuy751PxktW/3FiC/A=
X-MC-Unique: GsRArUnqPcKlPANKfkPolw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=H/BfXyMEnc42pn74n6WpW6kfQsh5sc3hYV88Ri65ZqsQfUYBn0wUR0DvN8ZZdGGHbN0KMSyuLn3ZPyZyrQRRspC/XyS9finAvjY8vGvD8zQMzYTVnEEh9YdTXee788GFquMawnDbW9CyKV0MnJ1CKbdblDsO6wTmjBdYgxLTkLV9Rc1rgEzc2hG3085YooBGo0yhv4ZcfLr9Cz9Akp66AMZRx8TnMzaz3tb/gf5/FMCIBq47bxkYZhGBhGnh6Ub9UjV42D+fY/u41XwiaF9ownsmXI7f59TBfkCNU9Z3km5QwjDYgkkE96o9h82DuJA+c/pqGYapKGQTLofVmqTMvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mm8onhya5KdltAdEOLZM1NDX0Yr+uFyMZqsCG2PXgps=;
 b=Aln02pGr2dZ7Lv+Y4RlljZgZ6yFdVCTzu4mS0sZTTfODFFxSk7F3T9dwSu46tD8QbLZXdnXD2Na2fN4PXAnI4NvJkbHI5JcB57mt8ehanwbxd7t+e86IMmjL2tUTL060o1cWWNBqqa3JEW8hZMFneCK8suPAF2PbscHTVQBC+XeImhSLm9ScY076SH5tPtjPlcTTRGJR/zALchkQyO5gEEHQpbb9e4HA8rllY7aX9xMjM49LtKa1nhM8+2mrQRMOp8oIbRH3s3Rp601MIyTRDk9pYX8tEOJ8WEgSXabOoGLk6iyj96NrUAJi+3gjNbHQ1vJTwsMwFEpEtEcj3DxXOA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ebe6b551-2302-830d-72ea-8d4fae1c411d@suse.com>
Date: Wed, 3 Nov 2021 16:15:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2 3/3] AMD/IOMMU: iommu_enable vs iommu_intremap
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <ff7b68b2-5bba-2927-e3f0-f3062862c466@suse.com>
 <YXaGxX3J1aB39mSG@MacBook-Air-de-Roger.local>
 <dd2929fc-dc1a-1c16-5954-6894766d9dda@suse.com>
 <YYEa6HQGR1cHJBw/@Air-de-Roger>
 <bcaf1547-98ae-923f-5be8-50156e318bf4@suse.com>
 <YYKldeiym0fLWTsa@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYKldeiym0fLWTsa@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0601CA0083.eurprd06.prod.outlook.com
 (2603:10a6:206::48) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ceb90409-3896-4e75-6e22-08d99edcd44f
X-MS-TrafficTypeDiagnostic: VI1PR04MB4605:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4605AB90A339931129E2B7E3B38C9@VI1PR04MB4605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Zdh20qz9r2cc6N3htpE6hAxZwjaQ9aHpDZhkOni0kULjzNkBmu6Tas/hsUFoLYgpBa8JPJWxQz2snIL1w7kZwn/oiK8ekXdrMoSqoJS6rtuLm3lXZX6ROOf3oJhgPxwkwZR8tHGsUhX5+rQiIZJLeJhzd7VQOoZFXJ0msvtHLmSetNkIJK6zk+wRWSBP7F6JRKcVvf2mi83doRIzMar6HV/Keyx1WZtxXjnUL6Wr5BGN5KtsvMpFLSksuLWI48D6Ypm6xLJbCe36NyPi+uFVrj6gd1h7mrmQs5mj7MScXYMxeueSEqL++3b4rowLdX7Z2gK0+ptDIqvERSEm2YdfWN8otUUV4UnpU0qbrwnYDyy4NRLahglAsOFUQvv+k3XJy+oO9pd8M9jQ5UX0XnXsErUopjD5Y053ravIm9M7VkcYeupq1FTQg+3Qybo7Z73NZqbeeF/SdjAQqHueoZCiCP2i4H/+Perww1DvbQMQ7KtY1XtZ3MVnHl/YRyUcDv91jcEHJC+Og8zt+6Chb/ATXe0bPG21uDfXO8fw2GXKLG6W8wJssFQMwi7tXi4JlFsDOAeGT4qlGwy2JwEN1bZvxQpDKzAJwpyLvb2KNmAucg8kPL8mnqFvzhb7LeU6pO5oAjt7kPRkLYyW8D2gbRzQos3Bvk9CT3we16V7nZQg7PSFybaPHZQcoOK9NmKgPEppgrAe6W+PcwkaB95X6fAPs/YBwfsRtCkSCheMp8gh4rRpoVdLF6kTPAibQZTSp7Rz
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66946007)(110136005)(8936002)(956004)(2616005)(5660300002)(186003)(53546011)(4326008)(38100700002)(508600001)(83380400001)(66476007)(31686004)(31696002)(2906002)(16576012)(86362001)(316002)(26005)(54906003)(6486002)(66556008)(36756003)(8676002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?PDjxr5GDggwxaIsAaszILs6dVC0seIMpd+H1rh6Pkg0DQ+c9Vu/kCpvITYVs?=
 =?us-ascii?Q?jIPvO83IMv0BxEONzgAppQ91D5880RM7ZZEJPdOJMAX//t8zV9CebDBZCdtY?=
 =?us-ascii?Q?x9pUJ9xm3PPBkauCyr4wcuYoGXr8lXbuSTEBlC33/CQdZSC58R5u1YtgVXF3?=
 =?us-ascii?Q?GI3Ws3v7htI6CuCGQUxYrANHdcEQ/po9qVnjs6at5rirAN5DvceC1KGPHlp2?=
 =?us-ascii?Q?bRnZyfdzR06MzW8c5fB+enmkUNxEQCYUSUOfIx01X8bglLajmi2tC67b422n?=
 =?us-ascii?Q?wH8CvTHv0itOeD/9sxRzavDZoeFajkWBHvpEsbcnkTPXcVfH90kT3ZSNxzmy?=
 =?us-ascii?Q?fm9a2XJrCKNcmNHnzXT/TYUOVBUbu2+ZW0EekArwNxle2Uk5ZB1TgT3XZfuA?=
 =?us-ascii?Q?rwVQYIluHh7EmUgFwSIArTiOr8zs+f87KcItoW6ViBKVWKxRI4u2ZrMGawN8?=
 =?us-ascii?Q?AVp49kqd372+vuUq/nHdVa2L8ALJlUKmtwXdkw1uCMwH+PzTQaoagIXk58PE?=
 =?us-ascii?Q?6VAiFYN4HhlJEHShh64+tvrZ5nOl60aFpPUCFmuVJUiKEFaXs0ZzcnMONWOW?=
 =?us-ascii?Q?4ZboZgemWn2LIVOS09EkuPSRVMe3qM/siRGaR8K3WzH6ASLdOVZA3zbBuZHC?=
 =?us-ascii?Q?4HvQM9WqFp4dGJ1UbQ5yfPwC5nyBy3f9h2olmnqUlAB1guGliZ5Ehj0mwnmX?=
 =?us-ascii?Q?yccaZtiI4MS6tCIMt45nCls2aH6Fsqc7pCnY4xkSadQfDkJ7J6qU62IVYAV+?=
 =?us-ascii?Q?B4suvZNRdg5VaFQnaLJwYq/QOJkOEGgWV28tgNo4AI4jchvPtttjSDztogWa?=
 =?us-ascii?Q?zy2Xi5AUZzVUfD4TA4zYzYVCSowzi6cIHDEJ8THSPyAeHNT8ctVE1/nuLPDX?=
 =?us-ascii?Q?LnPQ5QF7Cp4U9KXcaUYOCgxX4M1haSXMmpu2UiaU8OBTUqZt1cg/mRGbV8lX?=
 =?us-ascii?Q?0+rxc19cqylh7flhEfsFchD9GFY1FJ9p3WUstZBCsA2P96GIBnTLyLIbTWbx?=
 =?us-ascii?Q?rvd60PdZ9V/UzgnRjeLYwDVJzwFVAd4HqvPkqeuv8hp9YtrEgQ2VlFMBRDr3?=
 =?us-ascii?Q?FWzUngwNQoAHw9nTefNh1f9w60RY9thH9lPfE1F2nEkNihGT1+R7wvvrzKcf?=
 =?us-ascii?Q?CZXf7qNMThxDxeZgJky4RK6Ca5v2UKVgE032LYweBHrdv+tcTqrqI6DC23Wx?=
 =?us-ascii?Q?FFPJcTtI0a3+xKaqfYPQ3ZNDfCyhshf+QPfawUzoHsyLTXwPJzjiuGZBAFCl?=
 =?us-ascii?Q?Esn6zXV4E9EWdCmyTZehWl+uGE5CvFkOxvHLxE/gbN3CC7GnD0x/eNEU5vh7?=
 =?us-ascii?Q?EHA7ROQC/aqTTuqrKPwoFCzkrkRkQ8mML1DM0YJck7h9xliiSzc0IxJY8nar?=
 =?us-ascii?Q?5Xvo739ryR8Xbmi4Ca5yrySoz+wgdMA2SJ2xUp7Bo+lt/Cbgzpct/bWr4Krd?=
 =?us-ascii?Q?qSnDQ+DBG+vuQNlVk2+5prGWyQWWuSAAWlpUvsiIoLvtMy6xm3VexHU3Jr0v?=
 =?us-ascii?Q?rbPhldjTH5HtiD1O3yc+MpQbJsFzQlWB+10wPQXFWGSeXEwWyuANQjZrRCiI?=
 =?us-ascii?Q?w0UuaGQC2iCusGhyIdaT+Io1brt4Zsu4AQUgokclLw/s55vdXViP2GqHGz1X?=
 =?us-ascii?Q?qfBkOa2WXZLFldDXtyKH4Ek=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ceb90409-3896-4e75-6e22-08d99edcd44f
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 15:15:54.3014
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rDv5bFrlfih6elkzdulXAoKiE3AJnGZV+ld8Oiqq53ZpuqY7agWfGmjY3pRN3HjBryElXw/Ly13adYrLgqb9CA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4605

On 03.11.2021 16:06, Roger Pau Monn=C3=A9 wrote:
> On Wed, Nov 03, 2021 at 10:46:40AM +0100, Jan Beulich wrote:
>> On 02.11.2021 12:03, Roger Pau Monn=C3=A9 wrote:
>>> On Tue, Nov 02, 2021 at 11:13:08AM +0100, Jan Beulich wrote:
>>>> On 25.10.2021 12:28, Roger Pau Monn=C3=A9 wrote:
>>>>> On Thu, Oct 21, 2021 at 11:59:02AM +0200, Jan Beulich wrote:
>>>>>> The two are really meant to be independent settings; iov_supports_xt=
()
>>>>>> using || instead of && was simply wrong. The corrected check is,
>>>>>> however, redundant, just like the (correct) one in iov_detect(): The=
se
>>>>>> hook functions are unreachable without acpi_ivrs_init() installing t=
he
>>>>>> iommu_init_ops pointer, which it does only upon success. (Unlike for
>>>>>> VT-d there is no late clearing of iommu_enable due to quirks, and an=
y
>>>>>> possible clearing of iommu_intremap happens only after iov_supports_=
xt()
>>>>>> has run.)
>>>>>>
>>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>>>> ---
>>>>>> In fact in iov_detect() it could be iommu_enable alone which gets
>>>>>> checked, but this felt overly aggressive to me. Instead I'm getting =
the
>>>>>> impression that the function may wrongly not get called when "iommu=
=3Doff"
>>>>>> but interrupt remapping is in use: We'd not get the interrupt handle=
r
>>>>>> installed, and hence interrupt remapping related events would never =
get
>>>>>> reported. (Same on VT-d, FTAOD.)
>>>>>
>>>>> I've spend a non-trivial amount of time looking into this before
>>>>> reading this note. AFAICT you could set iommu=3Doff and still get x2A=
PIC
>>>>> enabled and relying on interrupt remapping.
>>>>
>>>> Right, contrary to ...
>>>>
>>>>>> For iov_supports_xt() the question is whether, like VT-d's
>>>>>> intel_iommu_supports_eim(), it shouldn't rather check iommu_intremap
>>>>>> alone (in which case it would need to remain a check rather than get=
ting
>>>>>> converted to ASSERT()).
>>>>>
>>>>> Hm, no, I don't think so. I think iommu_enable should take precedence
>>>>> over iommu_intremap, and having iommu_enable =3D=3D false should forc=
e
>>>>> interrupt remapping to be reported as disabled. Note that disabling i=
t
>>>>> in iommu_setup is too late, as the APIC initialization will have
>>>>> already taken place.
>>>>>
>>>>> It's my reading of the command line parameter documentation that
>>>>> setting iommu=3Doff should disable all usage of the IOMMU, and that
>>>>> includes the interrupt remapping support (ie: a user should not need
>>>>> to set iommu=3Doff,no-intremap)
>>>>
>>>> ... that documentation. But I think it's the documentation that
>>>> wants fixing, such that iommu=3Doff really only control DMA remap.
>>>
>>> IMO I think it's confusing to have sub-options that could be enabled
>>> when you set the global one to off. I would expect `iommu=3Doff` to
>>> disable all the iommu related options, and I think it's fair for
>>> people to expect that behavior.
>>
>> It occurs to me that this reply of yours here contradicts your R-b
>> on patch 1, in particular with its revision log saying:
>>
>> v2: Treat iommu_enable and iommu_intremap as separate options.
>=20
> Right, I see. patch 1 uses
>=20
> if ( !iommu_enable && !iommu_intremap )
>     return;
>=20
> Which I think should be:
>=20
> if ( !iommu_enable )
>     return;
>=20
> Sorry I didn't realize in that context. I think we need to decide
> whether we want to fix the documentation to match the code, or whether
> we should fix the code to match the documentation.

Except that adjusting the conditional(s) in patch 1 would then
be a functional change that's not really the purpose of that
patch - it really only folds acpi_ivrs_init()'s and
acpi_parse_dmar()'s into a vendor-independent instance in
acpi_iommu_init(). Alternatively we could adjust the conditional
here (in patch 3), but that would feel unrelated once again, as
this change is supposed to be AMD-specific.

> My preference would be for the latter, because I think the resulting
> interface would be clearer. That will require introducing a new
> dmaremap iommu suboption, but again I think this will result in a
> better interface overall.

I guess we could do with a 3rd opinion: Paul, any chance?

In any event I hope that we can agree that patches 1 and 2 are
okay for 4.16 in their present shape, and patch 3 (plus whichever
further ones) would better wait for post-4.16?

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:16:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:16:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.220992.382484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miI0R-0005DP-En; Wed, 03 Nov 2021 15:16:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 220992.382484; Wed, 03 Nov 2021 15:16:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miI0R-0005DI-Bd; Wed, 03 Nov 2021 15:16:51 +0000
Received: by outflank-mailman (input) for mailman id 220992;
 Wed, 03 Nov 2021 15:16:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9PtR=PW=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1miI0P-0005D6-TF
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:16:50 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on0615.outbound.protection.outlook.com
 [2a01:111:f400:fe0d::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0fe96920-3cb9-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 16:16:47 +0100 (CET)
Received: from AS9PR06CA0117.eurprd06.prod.outlook.com (2603:10a6:20b:465::32)
 by DB9PR08MB7471.eurprd08.prod.outlook.com (2603:10a6:10:36d::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 15:16:46 +0000
Received: from VE1EUR03FT063.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:465:cafe::79) by AS9PR06CA0117.outlook.office365.com
 (2603:10a6:20b:465::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Wed, 3 Nov 2021 15:16:46 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT063.mail.protection.outlook.com (10.152.18.236) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Wed, 3 Nov 2021 15:16:45 +0000
Received: ("Tessian outbound 6ebd41198c5d:v108");
 Wed, 03 Nov 2021 15:16:45 +0000
Received: from e0a9c11d5a42.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 630179E6-568A-4729-8DC5-05B0971B12E2.1; 
 Wed, 03 Nov 2021 15:16:35 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e0a9c11d5a42.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 03 Nov 2021 15:16:35 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PA4PR08MB6206.eurprd08.prod.outlook.com (2603:10a6:102:ea::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Wed, 3 Nov
 2021 15:16:32 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Wed, 3 Nov 2021
 15:16:32 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO4P123CA0165.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18a::8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Wed, 3 Nov 2021 15:16:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0fe96920-3cb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hkaGPG38pcNYLgdAHpkY2CIwtUuOV0u+KZq/w0kKhI0=;
 b=tJJrA2BaauooHCNRuXylfajuf/qRI+7rHIm4JOElDQlO9gpn0EG0QgaR2WQN3xOf8y6KVVqoPh0h7cXxx2CNzcJMwM4kWGTEB8Gm1bH1KjohWJ+26SsurrmK34sbb4jLE1wN7IhPylq9tCckebu9cKcEgW0l8GdcCUaewbRebis=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 5ab5fa06ebb18518
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K7CR2z7lW6tpqvlxYI4SdLRVQE2EQXeLb2HJfuGnJPxYp6d6qSvsMjPZ/2lbjGh0AvcTSdpZXMqrzQV/prWK2Z3mR0POLM4byS3IyLMO/ieHA6wapPT8ShjwLmu6LwG8KIpgWDh3t1hrraZI4hVo3swaNpF68ZCDh68ncpmatzmcMAVQThvNiR7tnOlS1oLi0VoxIuGJqL2T/Pi8JDHNixrmooXhXWZWIGlo+KEhj+TcXQDH+NnilDQ0BM+f/auSkm0Lka7QMCA0G+tBPhM8j4wNCCwUvfIc3bME7QZf8S13tzMebOhu7RcIImKjkQV33BjxQjWGoidcAJD1LUqWKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hkaGPG38pcNYLgdAHpkY2CIwtUuOV0u+KZq/w0kKhI0=;
 b=c9qE9s7YpeqxbJFxl7RbJGK7QLG77ImfFRBsV4DRicYcVxaWbJ38FX7QZo/au8vl9WEDObzSyqTprdvJNO6RUYSG2xGPav7hKlLrjXPmYHC0rLP9SQ4+cFhsZ/QMKi7ZdxTt/MQSucT3730eo5dGeP45b3Uj2c3C0qvURvFJaoHcXxrvIdqYSKy2n0hqWdwOn2N4j96KX1FUv7EE75pm5Aeur4ZyxynByZ9Uskb7l1sNAEm/45cHyZTWkW3L48lWmn3TQp5i4Mm+QQ0xlpFngXqFJArotDo3s5aV6FIfXqBgCKj+UAMeR6aAWjszXOgGSZDqVspCPkngFpQgh76F/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hkaGPG38pcNYLgdAHpkY2CIwtUuOV0u+KZq/w0kKhI0=;
 b=tJJrA2BaauooHCNRuXylfajuf/qRI+7rHIm4JOElDQlO9gpn0EG0QgaR2WQN3xOf8y6KVVqoPh0h7cXxx2CNzcJMwM4kWGTEB8Gm1bH1KjohWJ+26SsurrmK34sbb4jLE1wN7IhPylq9tCckebu9cKcEgW0l8GdcCUaewbRebis=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <ad621757-afac-f36f-0b3c-7fe1ddb83a66@suse.com>
Date: Wed, 3 Nov 2021 15:16:25 +0000
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <AB5E1F4C-36BC-413B-88DA-487BA573BFCC@arm.com>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
 <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
 <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
 <83E4F969-892C-4AA2-829D-67C02B4B5885@arm.com>
 <ad621757-afac-f36f-0b3c-7fe1ddb83a66@suse.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO4P123CA0165.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18a::8) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ebe2edb0-17af-420d-5c65-08d99edcf305
X-MS-TrafficTypeDiagnostic: PA4PR08MB6206:|DB9PR08MB7471:
X-Microsoft-Antispam-PRVS:
	<DB9PR08MB7471B2F874B356A7E153BBC5E48C9@DB9PR08MB7471.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 K6pWWo2Lmi9e0UAEKHNNFq4V4eJPah5K/AY92igl563t22lDPgSitMX9M5gpUCPkEr8uiy89grv+Z8Q8NOvPUxOSoyrXP3l1TGroS479at/oWb3vhzot5DklPKnhfpzHF4YvAg+IhnC3dtr7u6aXbtGFXe43KiVUSlXowSIzrOrd3eM+8PODs/6QZKlFbitRlBZGw6CjA4MzDRZI0odZHhKGnpq/CBg8TLKxx4bn8aJvJSojaxm8ve9B/OnNRf/4iyheifjg6BtI2ogjTfvrFVL/tMBgP3Jhuui3tTBlGOR+FwYjZ61Uq3Ss0hEjApT18Eno0GgYxhPflMJvc1hd5kA8zLZXV/uiZXSUnEw50EvultC3FC/IqK4kuQ7fFxP42egE+A+4m88OBI5kDgldl2HcZJxbzxHJVLln0FsCRte+Gi/gKe/8DUm6y1Nc4wPNc5XAD1gncmdTKVcqdFUuoKkzczidOviWmE8E6oGHnHu+DHlYs9fHSa65NLG1GRRM9G6Z+J2+2P4FEQsENQKgQdjDfEp5oBI9hLahFsbAyyx5wQwU5+JXnz/dh2UQq4sFK55ONp4NQhV8f+9ISxkqGOBT68Lw80jgTI9a5ZLFl2EEimPC0UwmcRZRiwPZBGua7hMLrgITgxwxr2Nlq04+AN8Y7byOncUQTKOfvSeTgLNR70RASJ2m49viMbp7MQA0GY7q10ybZEqrAlDgHeJQC6GwTkDXVQZv5vsgjha57IQRrcyQH831BpzleWIlcUf1
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(44832011)(6916009)(2616005)(6486002)(5660300002)(8676002)(33656002)(8936002)(6666004)(956004)(38350700002)(38100700002)(86362001)(508600001)(6512007)(66946007)(66556008)(66476007)(53546011)(6506007)(26005)(52116002)(83380400001)(2906002)(36756003)(316002)(54906003)(186003)(4326008)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6206
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT063.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5f248f5f-78ce-4582-dc3d-08d99edceb21
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	LUnEwlJjEQxbON9kyYNc+5NeXnmKXFEKuIhOwhwLXyuGKBOzBKG8s9zlgsclPdx38EgZcAYxxWnV6d6FgQVmjnuy4O4TwC293+hx7LmWzgTeMxZwMbVIdaHCajdMWj4nLvBVdhy/Xp84uT1l2lzspN2cbkRIWg/EMk2Vaif4dk4MWA0SCsNDTu3JtSbDOmoUGPNex/D6ds0duHWmBaHtaQiRntFkpouFLZqiExt2vjbrnq683Xa5bQHh6drDlEq+XGXL5vkiW2djexzWPo3RhXR0yxunx3iugO1J0uzIvW3pkf0vjd1MsA0fGswVz9+Dsvw9BnBKYVhOQEwreKN60Qnfm0YTg+BT5nU3mX2q973JOyVnJEihDLjHvIOnreEJBc6PyHGzxBVQULe5YPH39mmI5pXMfsdFMBHPbku1IE5c3eRqtV9+ZX0M45UN3w7AyOr9VfmRi3Yo69yM6hRhgBF6alc1XSBPLdTVOUaM0Bej3y22ETG5Naev8LlIj/83ZJbRYBd9OApvpoa+JIizdgR4HGsSswVen5q3mqjRWQZpVsNy5Yim9Gxd90XkYRRb+ga+uTVbGEbifkY7jY5pZdS51k4pWno4YSfLCHK57uwqkTAipzclJFYeQMG/X/g8Vhd0RXe/vjslnitsu/kuV/JMJ/1VU4jicMIr3K3a2J/O393enl3c095zq7Coc+eQ1om6g0kpF7y5Pai2L+uAyA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(336012)(8936002)(8676002)(2906002)(33656002)(54906003)(86362001)(81166007)(316002)(4326008)(356005)(70586007)(36860700001)(508600001)(5660300002)(186003)(6486002)(36756003)(6666004)(26005)(6862004)(47076005)(2616005)(956004)(82310400003)(44832011)(53546011)(6506007)(6512007)(83380400001)(70206006);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 15:16:45.5505
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ebe2edb0-17af-420d-5c65-08d99edcf305
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT063.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7471



> On 3 Nov 2021, at 14:30, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 03.11.2021 15:09, Luca Fancellu wrote:
>>> On 3 Nov 2021, at 11:28, Jan Beulich <jbeulich@suse.com> wrote:
>>> On 03.11.2021 11:20, Luca Fancellu wrote:
>>>>> On 3 Nov 2021, at 08:20, Jan Beulich <jbeulich@suse.com> wrote:
>>>>> On 02.11.2021 18:12, Luca Fancellu wrote:
>>>>>>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>>>>>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9=
b882
>>>>>>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>>>>>>> introducing a problem to boot Xen using Grub2 on ARM machine using=
 EDK2.
>>>>>>>>=20
>>>>>>>> The problem comes from the function get_parent_handle(...) that in=
side
>>>>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the las=
t
>>>>>>>> is NULL, making Xen stop the UEFI boot.
>>>>>>>=20
>>>>>>> According to my reading the UEFI spec doesn't (explicitly) allow fo=
r
>>>>>>> this to be NULL. Could you clarify why this is the case? What other
>>>>>>> information may end up being invalid / absent? Is e.g. read_section=
()
>>>>>>> safe to use?
>>>>>>=20
>>>>>> My test on an arm machine running Grub2 on top of EDK2 showed that
>>>>>> when Xen is started, the get_parent_handle(=E2=80=A6) call was faili=
ng and stopping
>>>>>> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called wi=
th the
>>>>>> loaded_image->DeviceHandle argument NULL and the call was returning
>>>>>> a EFI_INVALID_PARAMETER.
>>>>>> So the parent handle can=E2=80=99t be requested and the filesystem c=
an=E2=80=99t be used,
>>>>>> but any other code that doesn=E2=80=99t use the handle provided by g=
et_parent_handle(=E2=80=A6)
>>>>>> can be used without problem like read_section(...).
>>>>>=20
>>>>> I understand this. My question was for the reason of ->DeviceHandle
>>>>> being NULL. IOW I'm wondering whether we're actually talking about a
>>>>> firmware or GrUB bug, in which case your change is a workaround for
>>>>> that rather than (primarily) a fix for the earlier Xen change.
>>>>=20
>>>> The issue was found only when using EDK2+Grub2, no issue when booting
>>>> directly from EDK2.
>>>> This is a fix for the regression, because without the EFI changes, Gru=
b2 was
>>>> booting successfully Xen. Using grub2 to boot Xen on arm is a very com=
mon
>>>> solution so not supporting this anymore could lead to lots of people h=
aving
>>>> issues if they update to Xen 4.16.
>>>=20
>>> I'm not objecting to addressing the issue. But the description needs
>>> to make clear where the origin of the problem lies, and afaict that's
>>> not the earlier Xen change. That one merely uncovered what, according
>>> to your reply, might then be a GrUB bug. Unless, as said earlier, I
>>> merely haven't been able to spot provisions in the spec for the field
>>> in question to be NULL.
>>=20
>> Maybe I can rephrase to be more specific from:
>>=20
>> The problem comes from the function get_parent_handle(...) that inside
>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>> is NULL, making Xen stop the UEFI boot.
>>=20
>> To:
>>=20
>> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle,
>> that is used by efi_bs->HandleProtocol(=E2=80=A6) inside get_parent_hand=
le(=E2=80=A6),
>> causing Xen to stop the boot getting an EFI_INVALID_PARAMETER error.
>>=20
>> Do you think it can be ok like this?
>=20
> Much better, yes, but I wonder what "returning" refers to. You want to
> describe the origin of the NULL handle as precisely as possible. And
> considering this turns out as a workaround, in a suitable place you
> will also want to add a code comment, such that a later reader won't
> decide this is all dead code and can be done in a simpler way.

Ok I can write the issue from the beginning to be sure:

Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle
inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
handle is used later by efi_bs->HandleProtocol(=E2=80=A6) inside get_parent=
_handle(=E2=80=A6)
when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL interface,
causing Xen to stop the boot because of an EFI_INVALID_PARAMETER error.

Regarding the comment, I can rephrase this comment:
/*
 * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCOL
 * to have access to the filesystem.
 */

To be:

/*
 * If DeviceHandle is NULL, the firmware offering the UEFI services might n=
ot be
 * compliant to the standard and we can't use the SIMPLE_FILE_SYSTEM_PROTOC=
OL
 * to have access to the filesystem. However the system can boot if and onl=
y if it doesn=E2=80=99t
 * require access to the filesystem. (e.g. Xen image has everything built i=
n or the
 * bootloader did previously load every needed binary in memory)
 */

What do you think?

Cheers,
Luca

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:20:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221001.382495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miI40-0006hJ-5K; Wed, 03 Nov 2021 15:20:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221001.382495; Wed, 03 Nov 2021 15:20:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miI40-0006hC-1z; Wed, 03 Nov 2021 15:20:32 +0000
Received: by outflank-mailman (input) for mailman id 221001;
 Wed, 03 Nov 2021 15:20:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miI3z-0006h6-1x
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:20:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miI3y-0003CT-Vr
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:20:30 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miI3y-0006rB-Ux
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:20:30 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miI3v-0004ch-14; Wed, 03 Nov 2021 15:20:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:To:Date:
	Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=1xT97f3XRsDQYO3QA5LOtWYSQI7vjkhgHAu/UIPviHg=; b=2LYEQy8pCRrksY+fGBZiHesCSs
	YkSDcnVwM0la8NjW/TmCuGK1FZ3BDthw0n/o3Es+4UGE2LAbOfUwW43gJlEStT7v0B3rK0n0T6CxI
	LuscvgCHpt4K+QmES4B1Qaq5MQCLBjzB6uL+XELZNPA+Z/ldwV2V9cBqtKa0dik7JfU0=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24962.43194.390685.41050@mariner.uk.xensource.com>
Date: Wed, 3 Nov 2021 15:20:26 +0000
To: Juergen Gross <jgross@suse.com>,
    xen-devel@lists.xenproject.org,
    Community Manager <community.manager@xenproject.org>,
    Samuel Thibault <samuel.thibault@ens-lyon.org>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 3/3] tools: disable building qemu-trad per default
In-Reply-To: <24962.34455.398862.552200@mariner.uk.xensource.com>
References: <20210910055518.562-1-jgross@suse.com>
	<20210910055518.562-4-jgross@suse.com>
	<24962.34455.398862.552200@mariner.uk.xensource.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Ian Jackson writes ("Re: [PATCH v3 3/3] tools: disable building qemu-trad per default"):
> Juergen Gross writes ("[PATCH v3 3/3] tools: disable building qemu-trad per default"):
> > Using qemu-traditional as device model is deprecated for some time now.
> > 
> > So change the default for building it to "disable". This will affect
> > ioemu-stubdom, too, as there is a direct dependency between the two.
> > 
> > Today it is possible to use a PVH/HVM Linux-based stubdom as device
> > model. Additionally using ioemu-stubdom isn't really helping for
> > security, as it requires to run a very old and potentially buggy qemu
> > version in a PV domain. This is adding probably more security problems
> > than it is removing by using a stubdom.
> 
> Now that the relevant osstest patches are in and stable, I revisited
> this.  The downside risk to the release is very modest.  It might
> cause some temporary test breakage but is very easily reverted.
...
> And pushed to staging.

Unfortunately this broke the gitlab CI:

https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/1743723306

  === configuring in tools (/builds/xen-project/people/andyhhp/xen/tools)
  configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr/local'  '--enable-docs' '--with-system-seabios=/usr/share/seabios/bios.bin' '--with-system-ipxe=/usr/lib/ipxe/ipxe.pxe' '--disable-stubdom' '--with-extra-qemuu-configure-args="--disable-werror"' '--with-system-seabios=/bin/false' --cache-file=/dev/null --srcdir=.
  configure: WARNING: Setting CC, CFLAGS, LDFLAGS, LIBS, CPPFLAGS or CPP is not recommended, use PREPEND_INCLUDES, PREPEND_LIB, APPEND_INCLUDES and APPEND_LIB instead when possible.
  checking build system type... x86_64-pc-linux-musl
  ...
  checking for _FILE_OFFSET_BITS value needed for large files... no
  configure: error: Rombios is required to use IPXE
  configure: error: ./configure failed for tools

The configure arguments look coherent so this is surely a bug in the
configure script.

Looking at the code, it seems that there is code to enable rombios if
$enable_qemu_traditional, but nothing for ipxe.  This seems like a
bug, which was presumably masked by qemu-trad being enabled by
default.

With my RM hat on: Unfortunately I think this means this patch needs
to be reverted right away, at least for now, since it is causing a
regression.  I will do that now.

I would be open to reapplying it after the default for rombios is made
to depend on ipxe too, and ideally if we can see that the CI is happy
with the branch.

> The upside is that this will accelerate the total removal of qemu-trad
> by about one release cycle.  That is highly desirable.

So FTAOD although I am reverting this now, I am still in favour of it.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:30:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:30:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221014.382510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIDL-0008CV-5d; Wed, 03 Nov 2021 15:30:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221014.382510; Wed, 03 Nov 2021 15:30:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIDL-0008CO-2K; Wed, 03 Nov 2021 15:30:11 +0000
Received: by outflank-mailman (input) for mailman id 221014;
 Wed, 03 Nov 2021 15:30:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miIDJ-0008Al-BO
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:30:09 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ecf3e60f-3cba-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 16:30:08 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2112.outbound.protection.outlook.com [104.47.18.112])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-30-G8IHW7TJMv-nN6Hw0mG7yg-1; Wed, 03 Nov 2021 16:30:06 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5471.eurprd04.prod.outlook.com (2603:10a6:803:d0::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 15:30:04 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 15:30:04 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0036.eurprd06.prod.outlook.com (2603:10a6:203:68::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Wed, 3 Nov 2021 15:30:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ecf3e60f-3cba-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635953407;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=F4ZfUhdtDpr0sj6uO/VX+IeHqbpYEoP49u3WLmd3BLk=;
	b=hqIAxKUHX5iUNkNrRR3ncT6qZVmhps1L/TnEdtwEhNlhqIvMtt395bC4UbgQiJArcfYSuS
	kau2T99JzCKZmuiVrgyyRonerjEdHXYw2YHK1TWf09sdoS6zzADcXOY9pcHkHf2D4K2a0n
	LSyic4NXoL3yX5oGf11pwSjRV4FMpQE=
X-MC-Unique: G8IHW7TJMv-nN6Hw0mG7yg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oXbiatfNUOWrHUtlC37XAMKjvLX9V35fzi4+P1PCZ0hNuMpN3ASUPASSG4o6PdORnewzW2h5pSqo0KowCw8j6+3N65Ml3pbQrm8zoqrH9hqrbIwqMMY/O8ngWWU2oRD0+C65BWjCulQEH7avSCJZbX9+5uvOV1JxOD2tTHQG824ypRxmFXJHtD/IWVVgCbhh1wruOxvoArFFKKA8xzwYCY+yi2zUqKL5VMTiV9cSaNpQjCYR76Q6CnIsIezRqXTtDu5c3/vnO20gGjFWV21e4yLva97hMln6KFJzNmEo+53WUVpRjEa4RQ/n6EukwNydUKs9I5Ubd9P20fy40pf90Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DbswW7RJvH0xHSuyfwZQNMEXG7BEnXpCyWNEzp9yC9s=;
 b=jvLUAvnq82IxCKY49STtcybveRBm1p3Q3ADD97BbruL94driJt5dhUwu2zTllmB5yPBhBwb2+rCoxtyf+nI8B0KxwJ9Ge5QoMN9Yl0ELXJkWv5iAEMohtuHS9J449oW55EBIgzbc2dsk2F4i1HH3cHZsExb8YlMOAyjzyvfXA1rUQ3h/VlMGjhjcjqlI49rR5tbSmoODzxKl6uNOdAkwUkygAmSZYCilnwxFdizt405z4ueEEHgeZl9QZiw9nEpWSW6luVlUILyB4RyK12uzItPNNwmLSf6F/ETayugT+avWS+cGr+Nmqj3Q6RUG6Lnn9ApzqKVGFn4cq3rBN6YAjA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b3d140fa-019e-a469-be16-47b6e42e124d@suse.com>
Date: Wed, 3 Nov 2021 16:30:01 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Luca Fancellu <luca.fancellu@arm.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Ian Jackson <iwj@xenproject.org>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
 <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
 <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
 <83E4F969-892C-4AA2-829D-67C02B4B5885@arm.com>
 <ad621757-afac-f36f-0b3c-7fe1ddb83a66@suse.com>
 <AB5E1F4C-36BC-413B-88DA-487BA573BFCC@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <AB5E1F4C-36BC-413B-88DA-487BA573BFCC@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0601CA0036.eurprd06.prod.outlook.com
 (2603:10a6:203:68::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b1e1a93f-f924-4714-b641-08d99edecf01
X-MS-TrafficTypeDiagnostic: VI1PR04MB5471:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5471BE76B3F3D6BD401278C9B38C9@VI1PR04MB5471.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ERE/vfqlCWcCV64IahhKgcd9u/qaxiNHGXFyLhKPfPJ2f2z9xoQYTETBeOA0ZeBHTGUlUwr69xqVWTEWC6JfwDgl9ldJaTDciJzPd5t8SM+sh5oHMc5kQtJpp9oMkuR6GmaW6Qib9FLPux0eaW0Fk1i+curZKqxiTk5Zw2KYUbv/CxG67NlsSTkTdNbeNgXjVovo9dCmuKtNzf1tbUzCIqKDh4kHlSlSF7p83ca58/MH7DQwTT1e4vxIYruWeLWXDunLeSQCMKYkhDSZgdHl6aM/5WmCGdQ/jXCspwt8Q1N5zNbJHS2EiAkkETZCCrvy10VOFl2YFwGMr1FRdOIns12Uye161BCIBe0oT2ys9Gxtb9fs6/RA3xyHa564O5fdDHwxKRYYMfB+I3K/PULNdngaosEdSN5czDrguODhh12PbbweAQ/L3kIyFKJXBcJRBrpUhIG0q+0pDYnqCOzk7FkfLGl6KASZV4afZz69jOF4z0al/opfIszEPsi56rp2JBL3iCfJ4dZgDLaCcJUp+gOkPQ0OwZ81L6clg3pjjqBXX2EpSyAXsLE1mHMkxWmv7NZaWU2SKIM1O3a1yUneGVnKZg3oxrSyyF0G7zYQ5PnAjSqMfhl7cVA90iIHYnI7Eo8c8qwNB9ULfgo/daYG+XUj3RW1FgeRo7HxtGQQZPlFmwrZgxlaV9Yo+I/O7eDtheeUL8EVA3x+kJ1LKLveS7lsDqvu0WDgPKKrt4nNvLMx845REwdJZAmdozpn1s2e
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(6916009)(2906002)(66556008)(31686004)(54906003)(66946007)(2616005)(38100700002)(5660300002)(8936002)(53546011)(4326008)(36756003)(86362001)(31696002)(316002)(956004)(66476007)(16576012)(508600001)(8676002)(186003)(26005)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?tzW9T7lQJ40nrDQiciXjl7JxfcuRa4F3zD03Wt1zRolzpg7GdURAHwHn26nM?=
 =?us-ascii?Q?X3TLpRfrW960z5bsr5XKOBQEU2ydtcvquPNyn9/sJmXMYv2ygNr8dFn0YTVO?=
 =?us-ascii?Q?bqcyz9hnSeqerbKGIATFMk/N/fIS9jNHeqdCD4xcZN8OmVFrUAHubwLUniqj?=
 =?us-ascii?Q?Vc5jGF0SxNJDj2lLUPWPnJeQY7pSivD7bNVEe9iiLX9V5vxklV9j0TRd24kc?=
 =?us-ascii?Q?pH6hxT7bJ66JiAmBXY4OGNOAFfTWu7cT5cY7W6kYXmNdEGYrcw7/MHwse0u1?=
 =?us-ascii?Q?jfpXJq/eHRVOeKpwXmU1c+4XdlJ6u0hZaBGMDiIj8QSRg7G3rt8z2lz37Thp?=
 =?us-ascii?Q?Nl52srbPfTa5tTsKQ30GhLNcFn+80tqSKoKVd4tHBixAK42Htva5eigokIKq?=
 =?us-ascii?Q?dXYJUmnR98ZuBJjFDy1vfYe1nNrkbJuWG13T4KK5UA37vtB2G85GprhZWXqx?=
 =?us-ascii?Q?Uslr3O4RhS31fc1t5WlVdJ4xxgvMAkYoezjsSeQyXIl0MkLk6sLmACilMM0c?=
 =?us-ascii?Q?Sno8msmfs4+gA7D5DvBd52ALn+bWrfKL/gU+0d2yRTpjphPGBBUtXsKAH+la?=
 =?us-ascii?Q?UVWfwDe08B4NZwTP3oRliSnkPxIU8Uo7K6WzX+8gDw4zRU/3MlS5+89olnw3?=
 =?us-ascii?Q?h0bQl5kHox4U6T84ry48fz7LjI7BJmg6MzxzJPEuyoMlmVntwmAY543345Eb?=
 =?us-ascii?Q?GdvTJou0PvEARib5y6ZB6QaHlhDIW1NLHGakwtBQZZt6yrSIDqR5W7vPjrDN?=
 =?us-ascii?Q?3etJ3xpsghL2vOh3Qhz5F/s6U9QXQjcCPUG7sOHU0wrCTc7RSYarK7qoff3v?=
 =?us-ascii?Q?kzojTR9D+dqbOFXjwx4TBKoGpsCos4KlxkBZzKQQuL7gxnmml/Z+Ghpix4F+?=
 =?us-ascii?Q?HbE2GmbEMth1peR7SyxzObG4BWsMWgEgn/1dmeHvjvNo0MJmbSXlYGTDmai7?=
 =?us-ascii?Q?hRNIeaMW78KFSavOHRZevkrglMCcUYzoX9jWpLkvkc6oBlgp58Lrc/wvtZ2d?=
 =?us-ascii?Q?e43qPsbDj2RInfsjVDA5qZlydLvXxbYCMn8Mq5LL6sDFPGizD3rp/mN1Beet?=
 =?us-ascii?Q?DXVuMzI0OTmZvDSMUJvis8b4vV0K4OhUMI/UgubyXqIeAy4feh7K/5upyId4?=
 =?us-ascii?Q?7tKwnLuAOQLgxcTY7Zwg8afuuuxd1Xy4kVYftWI3el39QJOVfi8D8BQ3gUwZ?=
 =?us-ascii?Q?ztCIzVWxkzPY8BC26Llen8JfM4R08/fYsGjHyIRL+tiJCsevjvQllFAnip26?=
 =?us-ascii?Q?sFqfK8ZnKFI34OBb2p0Dd0rG8H7l7ungYGYXsM0fFcJY+pi5vXdr28sZU/qZ?=
 =?us-ascii?Q?WxiniWVkCMz0HlbYIJ6rg+wi6d6BKATqoI/dxsFjS5g+9+ya3bJht4Pee9Z0?=
 =?us-ascii?Q?Y3lOZ2jxmTeQWGq8Ah3OfilW2Q1TD9lYvSexs2BX89+htYiDgfFirBZJCb+B?=
 =?us-ascii?Q?QrdvPCdu8ZXGDKceyfeEUXb/UyzLoHF2buOE/hx4UaA/vfgVloCyiI6/9V8I?=
 =?us-ascii?Q?vNr1rN2TSWYIjGiDgEDMX/h+S61Bz5FeX8CQdhpqAxWTOUPk3L/M4SnmcQwT?=
 =?us-ascii?Q?XTsKfuc8dtnWOfcOPUNOBY/hk3YIBnlTBtY2LLrX6qsTaJvFMZ5AK1FhoxHM?=
 =?us-ascii?Q?ht2Hn4eJcrU3B1Wid3pvAaA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b1e1a93f-f924-4714-b641-08d99edecf01
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 15:30:04.4019
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: N0WspAYW5vWexLsij+y5Dxsg8ztq4b3P2WEGk4n+l+p4++jt79jk/XSCRV1pHCwpwxV3KTa/en1q101RP8eJew==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5471

On 03.11.2021 16:16, Luca Fancellu wrote:
>=20
>=20
>> On 3 Nov 2021, at 14:30, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 03.11.2021 15:09, Luca Fancellu wrote:
>>>> On 3 Nov 2021, at 11:28, Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 03.11.2021 11:20, Luca Fancellu wrote:
>>>>>> On 3 Nov 2021, at 08:20, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>> On 02.11.2021 18:12, Luca Fancellu wrote:
>>>>>>>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>>>>>>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd=
9b882
>>>>>>>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>>>>>>>> introducing a problem to boot Xen using Grub2 on ARM machine usin=
g EDK2.
>>>>>>>>>
>>>>>>>>> The problem comes from the function get_parent_handle(...) that i=
nside
>>>>>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the la=
st
>>>>>>>>> is NULL, making Xen stop the UEFI boot.
>>>>>>>>
>>>>>>>> According to my reading the UEFI spec doesn't (explicitly) allow f=
or
>>>>>>>> this to be NULL. Could you clarify why this is the case? What othe=
r
>>>>>>>> information may end up being invalid / absent? Is e.g. read_sectio=
n()
>>>>>>>> safe to use?
>>>>>>>
>>>>>>> My test on an arm machine running Grub2 on top of EDK2 showed that
>>>>>>> when Xen is started, the get_parent_handle(=E2=80=A6) call was fail=
ing and stopping
>>>>>>> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called w=
ith the
>>>>>>> loaded_image->DeviceHandle argument NULL and the call was returning
>>>>>>> a EFI_INVALID_PARAMETER.
>>>>>>> So the parent handle can=E2=80=99t be requested and the filesystem =
can=E2=80=99t be used,
>>>>>>> but any other code that doesn=E2=80=99t use the handle provided by =
get_parent_handle(=E2=80=A6)
>>>>>>> can be used without problem like read_section(...).
>>>>>>
>>>>>> I understand this. My question was for the reason of ->DeviceHandle
>>>>>> being NULL. IOW I'm wondering whether we're actually talking about a
>>>>>> firmware or GrUB bug, in which case your change is a workaround for
>>>>>> that rather than (primarily) a fix for the earlier Xen change.
>>>>>
>>>>> The issue was found only when using EDK2+Grub2, no issue when booting
>>>>> directly from EDK2.
>>>>> This is a fix for the regression, because without the EFI changes, Gr=
ub2 was
>>>>> booting successfully Xen. Using grub2 to boot Xen on arm is a very co=
mmon
>>>>> solution so not supporting this anymore could lead to lots of people =
having
>>>>> issues if they update to Xen 4.16.
>>>>
>>>> I'm not objecting to addressing the issue. But the description needs
>>>> to make clear where the origin of the problem lies, and afaict that's
>>>> not the earlier Xen change. That one merely uncovered what, according
>>>> to your reply, might then be a GrUB bug. Unless, as said earlier, I
>>>> merely haven't been able to spot provisions in the spec for the field
>>>> in question to be NULL.
>>>
>>> Maybe I can rephrase to be more specific from:
>>>
>>> The problem comes from the function get_parent_handle(...) that inside
>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>>> is NULL, making Xen stop the UEFI boot.
>>>
>>> To:
>>>
>>> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle=
,
>>> that is used by efi_bs->HandleProtocol(=E2=80=A6) inside get_parent_han=
dle(=E2=80=A6),
>>> causing Xen to stop the boot getting an EFI_INVALID_PARAMETER error.
>>>
>>> Do you think it can be ok like this?
>>
>> Much better, yes, but I wonder what "returning" refers to. You want to
>> describe the origin of the NULL handle as precisely as possible. And
>> considering this turns out as a workaround, in a suitable place you
>> will also want to add a code comment, such that a later reader won't
>> decide this is all dead code and can be done in a simpler way.
>=20
> Ok I can write the issue from the beginning to be sure:
>=20
> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle
> inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
> handle is used later by efi_bs->HandleProtocol(=E2=80=A6) inside get_pare=
nt_handle(=E2=80=A6)
> when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL interface,
> causing Xen to stop the boot because of an EFI_INVALID_PARAMETER error.
>=20
> Regarding the comment, I can rephrase this comment:
> /*
>  * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCOL
>  * to have access to the filesystem.
>  */
>=20
> To be:
>=20
> /*
>  * If DeviceHandle is NULL, the firmware offering the UEFI services might=
 not be
>  * compliant to the standard and we can't use the SIMPLE_FILE_SYSTEM_PROT=
OCOL
>  * to have access to the filesystem. However the system can boot if and o=
nly if it doesn=E2=80=99t
>  * require access to the filesystem. (e.g. Xen image has everything built=
 in or the
>  * bootloader did previously load every needed binary in memory)
>  */
>=20
> What do you think?

Largely okay, albeit you don't mention GrUB at all (which isn't really part
of the firmware, but which looks to be the culprit) and it gets a little
too verbose. Provided the facts have been verified, how about

    /*
     * GrUB has been observed to supply a NULL DeviceHandle. We can't use
     * that to gain access to the filesystem. However the system can still
     * boot if it doesn=E2=80=99t require access to the filesystem.
     */

(and it's up to you whether you include your further "e.g. ..." then, but
if you do I think the parenthesized part belong before the final full
stop, and the last "in" would want to be "into")? It's still dubious to me
how they can get away with such a NULL handle (and why that happens only
on Arm), but I guess it would go too far to try to understand the
background.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:41:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:41:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221024.382521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIOH-0001DA-7c; Wed, 03 Nov 2021 15:41:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221024.382521; Wed, 03 Nov 2021 15:41:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIOH-0001D3-4e; Wed, 03 Nov 2021 15:41:29 +0000
Received: by outflank-mailman (input) for mailman id 221024;
 Wed, 03 Nov 2021 15:41:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jBOo=PW=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1miIOF-0001Cx-Tr
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:41:28 +0000
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01on060e.outbound.protection.outlook.com
 [2a01:111:f400:fe1f::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 811790dc-3cbc-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 16:41:26 +0100 (CET)
Received: from AS9PR06CA0342.eurprd06.prod.outlook.com (2603:10a6:20b:466::18)
 by VI1PR0802MB2351.eurprd08.prod.outlook.com (2603:10a6:800:a0::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Wed, 3 Nov
 2021 15:41:24 +0000
Received: from VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:466:cafe::33) by AS9PR06CA0342.outlook.office365.com
 (2603:10a6:20b:466::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Wed, 3 Nov 2021 15:41:24 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT037.mail.protection.outlook.com (10.152.19.70) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Wed, 3 Nov 2021 15:41:23 +0000
Received: ("Tessian outbound 4ce13939bd4a:v108");
 Wed, 03 Nov 2021 15:41:23 +0000
Received: from 7b7bee3f32e9.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F81AC371-F36B-4B4D-BC12-C4CD8B29B74B.1; 
 Wed, 03 Nov 2021 15:41:17 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 7b7bee3f32e9.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 03 Nov 2021 15:41:17 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB3272.eurprd08.prod.outlook.com (2603:10a6:209:4d::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Wed, 3 Nov
 2021 15:41:14 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 15:41:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 811790dc-3cbc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0NhXzTXQIkd8ALmhQUukWAfxre7vJ6gUJxyOU463NjY=;
 b=1wauSuy8ahjoPOdluBoNhVCOeqobve1Buj31X939apcA9BHrK6v4svub+eLv4AZeaU3KZnhNF33SZl57Ja8nONNSY+3mU2WRQenrrgF1OmmS8zovWdkAtl90RTd+bDIZQzDXI6bXq/g7QbSMHja1zGSIu1Y3QMgfJ2bUhPxdBMk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 81dc9d25e41df034
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=U8lhQJSkOi0ni5z9COlsHsiStD6XTEkUGNwc6fQR+hOtdnhyUMJooQYAQH7mdWxheIcIfWmysGUFaliZroDsSiqnhCA4GoRsTI39sR11awORzT8JGPbLRrlGkdNxjKwUN4ja9sIxU0EqE8F1EyWs8DHWVjA2qOyJ6R7/GzFAeUEAAgGr2OtgPcG4XR84CEg25zB2y2Zh7seOuWk5TF4GV5h07o9fnBSPsZKBoMCNBNvQUzYsI79IAv6y1fCG+LrkL/XXlRjDth2fheJh2kNsJ52MDBBEvgUmBCSrvyuKRIUO/nP8s/vOhqPfzviEskDMY/f8kzbWGxE5rW3PuKmiGw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0NhXzTXQIkd8ALmhQUukWAfxre7vJ6gUJxyOU463NjY=;
 b=ZXzfLDdXz2ZRCdyiMMW2oLqGmbWvPSufc7vmL3wBB8ntG/GKmK3iVONKDceOUC5Wdm0M0Kk9VXpfOJMF9IcOl3CqMS+jstbeXmsZl7TWieK8WoXqYlTIw2Epi3L8cwvOnbjArYsuHOhgip/SoS2gGIzVFHBwfLmHOIHKW8dOdyW2xUIe3ZX5twnov3TfSvENUF33aLyvDufGvNHIivICAx7yCJWfsYd1/+SqD2odeXxenqIbCXH3nTpuXgLBNx66HaclmyDxNYwuJNMXS25+eXHY3k6n6Yo4QNmmw0lNWNJh/NoWiOElMnFewkPYW9DG93mj8NxB8G+IFVjgdSY1rg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0NhXzTXQIkd8ALmhQUukWAfxre7vJ6gUJxyOU463NjY=;
 b=1wauSuy8ahjoPOdluBoNhVCOeqobve1Buj31X939apcA9BHrK6v4svub+eLv4AZeaU3KZnhNF33SZl57Ja8nONNSY+3mU2WRQenrrgF1OmmS8zovWdkAtl90RTd+bDIZQzDXI6bXq/g7QbSMHja1zGSIu1Y3QMgfJ2bUhPxdBMk=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Luca Fancellu <Luca.Fancellu@arm.com>, Wei Chen <Wei.Chen@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Xen-devel
	<xen-devel@lists.xenproject.org>, Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
Thread-Topic: [PATCH] xen/efi: Fix Grub2 boot on arm64
Thread-Index:
 AQHXz/K6mNGHgi2TXkyW35dcCbo6tKvwULEAgAApEoCAAP3KAIAAIV4AgAAS9ACAAC0JgIAABgMAgAAMuICAAAPMgIAAAyMA
Date: Wed, 3 Nov 2021 15:41:14 +0000
Message-ID: <AB3CD75D-3E18-4802-91E5-7FBBA0734170@arm.com>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
 <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
 <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
 <83E4F969-892C-4AA2-829D-67C02B4B5885@arm.com>
 <ad621757-afac-f36f-0b3c-7fe1ddb83a66@suse.com>
 <AB5E1F4C-36BC-413B-88DA-487BA573BFCC@arm.com>
 <b3d140fa-019e-a469-be16-47b6e42e124d@suse.com>
In-Reply-To: <b3d140fa-019e-a469-be16-47b6e42e124d@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 11ba81b9-24fa-43ba-88cf-08d99ee063f7
x-ms-traffictypediagnostic: AM6PR08MB3272:|VI1PR0802MB2351:
X-Microsoft-Antispam-PRVS:
	<VI1PR0802MB235194A072DE3A116E7BD7F99D8C9@VI1PR0802MB2351.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 6FTjJhnsl13kMsOKlVHVv15DoVqANxDlv2v2L0S/Smg/xKK3u3yf4YvtnvQ1errVS5z5LnyXoC7dDuRakop94G8BhLMWKOiD5TSzOLp8YkIRytAQx/Zwx3jnNTFoUCH5HbYE2rfzaTk0Dfen3b9rqFNqLhBkPDjciPgYl/ny54qrm+ua0W1tjqkVhIopB7R4DvoKz5oQ8pIAhXZkl4I6FKO9dhmpZsMybAbnX9QAL9ln2GXbWazii08pZOzk+KKP2Y9NAWGbCc5gjLHoCPgvFvfIkWyXN7CI1iYXnjMdtu025e5OkAi9bafzINp/IxlSz1XIUSb2jvUmVnXXfK7A+CnlHEBlVOuiSBphljkS4jAQ93o3wnI5fvVfJPXg9qYkg+ky7OHeCgKdc6pa+IgY+P61PlW+ayUGmmTB6y4fnvgb+uIvf8fWIfRMuXnDpQo5DcRQG3wwbXqQJrnY/uRUKmKjMUzqz9BaO73UcIA5mj0ioKvR7Sh/YBygAuJ+WqBtJ83bzKQLfX2IrbmUOyg95AHvFlKmipItadgQ3/pBEGagTLMezfYr1Aj79yXpmS/zKGGbEKi2dvH9ewBU30zPjXnmKL/EijkTA16QVNtCbgnfOYjsRR+3ZGe5HSrhGIna6X1y2a9XIwHiecK3Ir7GQfacUx55zwAZP5DgWaZMiLCOR87ibku+bCBUF5HHDJ/0tQxrVsQeOTvm/28J1UVwVqVxgwe4qsft2KKBOKVfTOpKPmg7p1xZQkAh8mgZ+v45
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(66476007)(66556008)(5660300002)(64756008)(66446008)(508600001)(76116006)(316002)(54906003)(6486002)(91956017)(6512007)(66946007)(2906002)(2616005)(33656002)(186003)(8936002)(122000001)(6506007)(8676002)(71200400001)(53546011)(26005)(83380400001)(38100700002)(36756003)(6916009)(38070700005)(86362001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <0DECDEE09C46EC44B29F2C04E8FDEC46@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3272
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	51258b0a-3780-4b71-5e18-08d99ee05ea0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qn8E+87jILQJ7MwOBNk9vYG0wKOkhJRd1qY4eBCOBbZ3ZGuuP3BUtZySHXUd9bdRdoWlyXyaydXJziuFWb0OKz5RD8BFn+r3wco1ltCkXUz1m1nZo/V1ER0kj3PZOclFbQFvM58g3aq+3rsQkyb7Kt/VGGBuA/G5dbCF59CH/c2n/StgHSsGMsfYjtwMfefvgHDasnb8VXcdDJ7t4DCIx4pjvYOLDj6akWUr51Kv4oGu8bF2u+uGoR230GWWmnRq5CHCQJ5B0Nmw/vY4H4lsoIlRPZiaRQ7nmCXQ00CHkWM5BUdWywXAkjccEPUkqh459i4BM42DwSW8gDdjIVKvjOzMM0l8dmp+qg9doQIOGwCvSt/AyNmB9oFiK5CDPQqRntTPncSIOQnvfI0GglcEY4R3vBmPx9OzV0ASY93fRKLEsVhyx1V8KN8DJsYVSOzz0AtTkVa3XR1wG7xbTK37lYypf9QgqHtEXphvPnVXVWxrOuLAvqS4eTcq3YDdjE7CANPspi5Xtx58XIgjjVpqzXWzcfsgiKBcKyWbjkodAZ9IBvXEv+rhUHO18z95zpVbUfRIhN0PBvMwY42T/V5NLsjZ/BZNKH+o4LlDNkPMExgrDlD0C27+Fess3YAj0OMLG60MCCgXU+NKc/32wIeIO0W1T3tdWUoUIX0MHc2q+gxHG2/7yZ1FhWOHBCUu6JMOASEkNdhK3mO8wikv+nDALg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(70586007)(6862004)(336012)(70206006)(2616005)(4326008)(53546011)(356005)(6506007)(33656002)(81166007)(8676002)(47076005)(54906003)(316002)(82310400003)(8936002)(36756003)(2906002)(6486002)(508600001)(36860700001)(5660300002)(26005)(86362001)(6512007)(83380400001)(186003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 15:41:23.5253
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 11ba81b9-24fa-43ba-88cf-08d99ee063f7
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2351

SGkgSmFuLA0KDQo+IE9uIDMgTm92IDIwMjEsIGF0IDE1OjMwLCBKYW4gQmV1bGljaCA8amJldWxp
Y2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDMuMTEuMjAyMSAxNjoxNiwgTHVjYSBGYW5j
ZWxsdSB3cm90ZToNCj4+IA0KPj4gDQo+Pj4gT24gMyBOb3YgMjAyMSwgYXQgMTQ6MzAsIEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4gT24gMDMuMTEuMjAy
MSAxNTowOSwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+Pj4+IE9uIDMgTm92IDIwMjEsIGF0IDEx
OjI4LCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+IHdyb3RlOg0KPj4+Pj4gT24gMDMu
MTEuMjAyMSAxMToyMCwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+Pj4+Pj4gT24gMyBOb3YgMjAy
MSwgYXQgMDg6MjAsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4gd3JvdGU6DQo+Pj4+
Pj4+IE9uIDAyLjExLjIwMjEgMTg6MTIsIEx1Y2EgRmFuY2VsbHUgd3JvdGU6DQo+Pj4+Pj4+Pj4g
T24gMiBOb3YgMjAyMSwgYXQgMTQ6NDUsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4g
d3JvdGU6DQo+Pj4+Pj4+Pj4gT24gMDIuMTEuMjAyMSAxNTowNSwgTHVjYSBGYW5jZWxsdSB3cm90
ZToNCj4+Pj4+Pj4+Pj4gVGhlIGNvZGUgaW50cm9kdWNlZCBieSBjb21taXQgYTE3NDNmYzNhOWZl
OWI2OGMyNjVjNDUyNjRkZGRmMjE0ZmQ5Yjg4Mg0KPj4+Pj4+Pj4+PiAoImFybS9lZmk6IFVzZSBk
b20wbGVzcyBjb25maWd1cmF0aW9uIHdoZW4gdXNpbmcgRUZJIGJvb3QiKSBpcw0KPj4+Pj4+Pj4+
PiBpbnRyb2R1Y2luZyBhIHByb2JsZW0gdG8gYm9vdCBYZW4gdXNpbmcgR3J1YjIgb24gQVJNIG1h
Y2hpbmUgdXNpbmcgRURLMi4NCj4+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4+IFRoZSBwcm9ibGVtIGNv
bWVzIGZyb20gdGhlIGZ1bmN0aW9uIGdldF9wYXJlbnRfaGFuZGxlKC4uLikgdGhhdCBpbnNpZGUN
Cj4+Pj4+Pj4+Pj4gdXNlcyB0aGUgSGFuZGxlUHJvdG9jb2wgb24gbG9hZGVkX2ltYWdlLT5EZXZp
Y2VIYW5kbGUsIGJ1dCB0aGUgbGFzdA0KPj4+Pj4+Pj4+PiBpcyBOVUxMLCBtYWtpbmcgWGVuIHN0
b3AgdGhlIFVFRkkgYm9vdC4NCj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+PiBBY2NvcmRpbmcgdG8gbXkg
cmVhZGluZyB0aGUgVUVGSSBzcGVjIGRvZXNuJ3QgKGV4cGxpY2l0bHkpIGFsbG93IGZvcg0KPj4+
Pj4+Pj4+IHRoaXMgdG8gYmUgTlVMTC4gQ291bGQgeW91IGNsYXJpZnkgd2h5IHRoaXMgaXMgdGhl
IGNhc2U/IFdoYXQgb3RoZXINCj4+Pj4+Pj4+PiBpbmZvcm1hdGlvbiBtYXkgZW5kIHVwIGJlaW5n
IGludmFsaWQgLyBhYnNlbnQ/IElzIGUuZy4gcmVhZF9zZWN0aW9uKCkNCj4+Pj4+Pj4+PiBzYWZl
IHRvIHVzZT8NCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gTXkgdGVzdCBvbiBhbiBhcm0gbWFjaGluZSBy
dW5uaW5nIEdydWIyIG9uIHRvcCBvZiBFREsyIHNob3dlZCB0aGF0DQo+Pj4+Pj4+PiB3aGVuIFhl
biBpcyBzdGFydGVkLCB0aGUgZ2V0X3BhcmVudF9oYW5kbGUo4oCmKSBjYWxsIHdhcyBmYWlsaW5n
IGFuZCBzdG9wcGluZw0KPj4+Pj4+Pj4gdGhlIGJvb3QgYmVjYXVzZSB0aGUgZWZpX2JzLT5IYW5k
bGVQcm90b2NvbCjigKYpIHdhcyBjYWxsZWQgd2l0aCB0aGUNCj4+Pj4+Pj4+IGxvYWRlZF9pbWFn
ZS0+RGV2aWNlSGFuZGxlIGFyZ3VtZW50IE5VTEwgYW5kIHRoZSBjYWxsIHdhcyByZXR1cm5pbmcN
Cj4+Pj4+Pj4+IGEgRUZJX0lOVkFMSURfUEFSQU1FVEVSLg0KPj4+Pj4+Pj4gU28gdGhlIHBhcmVu
dCBoYW5kbGUgY2Fu4oCZdCBiZSByZXF1ZXN0ZWQgYW5kIHRoZSBmaWxlc3lzdGVtIGNhbuKAmXQg
YmUgdXNlZCwNCj4+Pj4+Pj4+IGJ1dCBhbnkgb3RoZXIgY29kZSB0aGF0IGRvZXNu4oCZdCB1c2Ug
dGhlIGhhbmRsZSBwcm92aWRlZCBieSBnZXRfcGFyZW50X2hhbmRsZSjigKYpDQo+Pj4+Pj4+PiBj
YW4gYmUgdXNlZCB3aXRob3V0IHByb2JsZW0gbGlrZSByZWFkX3NlY3Rpb24oLi4uKS4NCj4+Pj4+
Pj4gDQo+Pj4+Pj4+IEkgdW5kZXJzdGFuZCB0aGlzLiBNeSBxdWVzdGlvbiB3YXMgZm9yIHRoZSBy
ZWFzb24gb2YgLT5EZXZpY2VIYW5kbGUNCj4+Pj4+Pj4gYmVpbmcgTlVMTC4gSU9XIEknbSB3b25k
ZXJpbmcgd2hldGhlciB3ZSdyZSBhY3R1YWxseSB0YWxraW5nIGFib3V0IGENCj4+Pj4+Pj4gZmly
bXdhcmUgb3IgR3JVQiBidWcsIGluIHdoaWNoIGNhc2UgeW91ciBjaGFuZ2UgaXMgYSB3b3JrYXJv
dW5kIGZvcg0KPj4+Pj4+PiB0aGF0IHJhdGhlciB0aGFuIChwcmltYXJpbHkpIGEgZml4IGZvciB0
aGUgZWFybGllciBYZW4gY2hhbmdlLg0KPj4+Pj4+IA0KPj4+Pj4+IFRoZSBpc3N1ZSB3YXMgZm91
bmQgb25seSB3aGVuIHVzaW5nIEVESzIrR3J1YjIsIG5vIGlzc3VlIHdoZW4gYm9vdGluZw0KPj4+
Pj4+IGRpcmVjdGx5IGZyb20gRURLMi4NCj4+Pj4+PiBUaGlzIGlzIGEgZml4IGZvciB0aGUgcmVn
cmVzc2lvbiwgYmVjYXVzZSB3aXRob3V0IHRoZSBFRkkgY2hhbmdlcywgR3J1YjIgd2FzDQo+Pj4+
Pj4gYm9vdGluZyBzdWNjZXNzZnVsbHkgWGVuLiBVc2luZyBncnViMiB0byBib290IFhlbiBvbiBh
cm0gaXMgYSB2ZXJ5IGNvbW1vbg0KPj4+Pj4+IHNvbHV0aW9uIHNvIG5vdCBzdXBwb3J0aW5nIHRo
aXMgYW55bW9yZSBjb3VsZCBsZWFkIHRvIGxvdHMgb2YgcGVvcGxlIGhhdmluZw0KPj4+Pj4+IGlz
c3VlcyBpZiB0aGV5IHVwZGF0ZSB0byBYZW4gNC4xNi4NCj4+Pj4+IA0KPj4+Pj4gSSdtIG5vdCBv
YmplY3RpbmcgdG8gYWRkcmVzc2luZyB0aGUgaXNzdWUuIEJ1dCB0aGUgZGVzY3JpcHRpb24gbmVl
ZHMNCj4+Pj4+IHRvIG1ha2UgY2xlYXIgd2hlcmUgdGhlIG9yaWdpbiBvZiB0aGUgcHJvYmxlbSBs
aWVzLCBhbmQgYWZhaWN0IHRoYXQncw0KPj4+Pj4gbm90IHRoZSBlYXJsaWVyIFhlbiBjaGFuZ2Uu
IFRoYXQgb25lIG1lcmVseSB1bmNvdmVyZWQgd2hhdCwgYWNjb3JkaW5nDQo+Pj4+PiB0byB5b3Vy
IHJlcGx5LCBtaWdodCB0aGVuIGJlIGEgR3JVQiBidWcuIFVubGVzcywgYXMgc2FpZCBlYXJsaWVy
LCBJDQo+Pj4+PiBtZXJlbHkgaGF2ZW4ndCBiZWVuIGFibGUgdG8gc3BvdCBwcm92aXNpb25zIGlu
IHRoZSBzcGVjIGZvciB0aGUgZmllbGQNCj4+Pj4+IGluIHF1ZXN0aW9uIHRvIGJlIE5VTEwuDQo+
Pj4+IA0KPj4+PiBNYXliZSBJIGNhbiByZXBocmFzZSB0byBiZSBtb3JlIHNwZWNpZmljIGZyb206
DQo+Pj4+IA0KPj4+PiBUaGUgcHJvYmxlbSBjb21lcyBmcm9tIHRoZSBmdW5jdGlvbiBnZXRfcGFy
ZW50X2hhbmRsZSguLi4pIHRoYXQgaW5zaWRlDQo+Pj4+IHVzZXMgdGhlIEhhbmRsZVByb3RvY29s
IG9uIGxvYWRlZF9pbWFnZS0+RGV2aWNlSGFuZGxlLCBidXQgdGhlIGxhc3QNCj4+Pj4gaXMgTlVM
TCwgbWFraW5nIFhlbiBzdG9wIHRoZSBVRUZJIGJvb3QuDQo+Pj4+IA0KPj4+PiBUbzoNCj4+Pj4g
DQo+Pj4+IERlc3BpdGUgVUVGSSBzcGVjaWZpY2F0aW9uLCBFREsyK0dydWIyIGlzIHJldHVybmlu
ZyBhIE5VTEwgRGV2aWNlSGFuZGxlLA0KPj4+PiB0aGF0IGlzIHVzZWQgYnkgZWZpX2JzLT5IYW5k
bGVQcm90b2NvbCjigKYpIGluc2lkZSBnZXRfcGFyZW50X2hhbmRsZSjigKYpLA0KPj4+PiBjYXVz
aW5nIFhlbiB0byBzdG9wIHRoZSBib290IGdldHRpbmcgYW4gRUZJX0lOVkFMSURfUEFSQU1FVEVS
IGVycm9yLg0KPj4+PiANCj4+Pj4gRG8geW91IHRoaW5rIGl0IGNhbiBiZSBvayBsaWtlIHRoaXM/
DQo+Pj4gDQo+Pj4gTXVjaCBiZXR0ZXIsIHllcywgYnV0IEkgd29uZGVyIHdoYXQgInJldHVybmlu
ZyIgcmVmZXJzIHRvLiBZb3Ugd2FudCB0bw0KPj4+IGRlc2NyaWJlIHRoZSBvcmlnaW4gb2YgdGhl
IE5VTEwgaGFuZGxlIGFzIHByZWNpc2VseSBhcyBwb3NzaWJsZS4gQW5kDQo+Pj4gY29uc2lkZXJp
bmcgdGhpcyB0dXJucyBvdXQgYXMgYSB3b3JrYXJvdW5kLCBpbiBhIHN1aXRhYmxlIHBsYWNlIHlv
dQ0KPj4+IHdpbGwgYWxzbyB3YW50IHRvIGFkZCBhIGNvZGUgY29tbWVudCwgc3VjaCB0aGF0IGEg
bGF0ZXIgcmVhZGVyIHdvbid0DQo+Pj4gZGVjaWRlIHRoaXMgaXMgYWxsIGRlYWQgY29kZSBhbmQg
Y2FuIGJlIGRvbmUgaW4gYSBzaW1wbGVyIHdheS4NCj4+IA0KPj4gT2sgSSBjYW4gd3JpdGUgdGhl
IGlzc3VlIGZyb20gdGhlIGJlZ2lubmluZyB0byBiZSBzdXJlOg0KPj4gDQo+PiBEZXNwaXRlIFVF
Rkkgc3BlY2lmaWNhdGlvbiwgRURLMitHcnViMiBpcyByZXR1cm5pbmcgYSBOVUxMIERldmljZUhh
bmRsZQ0KPj4gaW5zaWRlIHRoZSBpbnRlcmZhY2UgZ2l2ZW4gYnkgdGhlIExPQURFRF9JTUFHRV9Q
Uk9UT0NPTCBzZXJ2aWNlLCB0aGlzDQo+PiBoYW5kbGUgaXMgdXNlZCBsYXRlciBieSBlZmlfYnMt
PkhhbmRsZVByb3RvY29sKOKApikgaW5zaWRlIGdldF9wYXJlbnRfaGFuZGxlKOKApikNCj4+IHdo
ZW4gcmVxdWVzdGluZyB0aGUgU0lNUExFX0ZJTEVfU1lTVEVNX1BST1RPQ09MIGludGVyZmFjZSwN
Cj4+IGNhdXNpbmcgWGVuIHRvIHN0b3AgdGhlIGJvb3QgYmVjYXVzZSBvZiBhbiBFRklfSU5WQUxJ
RF9QQVJBTUVURVIgZXJyb3IuDQo+PiANCj4+IFJlZ2FyZGluZyB0aGUgY29tbWVudCwgSSBjYW4g
cmVwaHJhc2UgdGhpcyBjb21tZW50Og0KPj4gLyoNCj4+ICogSWYgRGV2aWNlSGFuZGxlIGlzIE5V
TEwsIHdlIGNhbid0IHVzZSB0aGUgU0lNUExFX0ZJTEVfU1lTVEVNX1BST1RPQ09MDQo+PiAqIHRv
IGhhdmUgYWNjZXNzIHRvIHRoZSBmaWxlc3lzdGVtLg0KPj4gKi8NCj4+IA0KPj4gVG8gYmU6DQo+
PiANCj4+IC8qDQo+PiAqIElmIERldmljZUhhbmRsZSBpcyBOVUxMLCB0aGUgZmlybXdhcmUgb2Zm
ZXJpbmcgdGhlIFVFRkkgc2VydmljZXMgbWlnaHQgbm90IGJlDQo+PiAqIGNvbXBsaWFudCB0byB0
aGUgc3RhbmRhcmQgYW5kIHdlIGNhbid0IHVzZSB0aGUgU0lNUExFX0ZJTEVfU1lTVEVNX1BST1RP
Q09MDQo+PiAqIHRvIGhhdmUgYWNjZXNzIHRvIHRoZSBmaWxlc3lzdGVtLiBIb3dldmVyIHRoZSBz
eXN0ZW0gY2FuIGJvb3QgaWYgYW5kIG9ubHkgaWYgaXQgZG9lc27igJl0DQo+PiAqIHJlcXVpcmUg
YWNjZXNzIHRvIHRoZSBmaWxlc3lzdGVtLiAoZS5nLiBYZW4gaW1hZ2UgaGFzIGV2ZXJ5dGhpbmcg
YnVpbHQgaW4gb3IgdGhlDQo+PiAqIGJvb3Rsb2FkZXIgZGlkIHByZXZpb3VzbHkgbG9hZCBldmVy
eSBuZWVkZWQgYmluYXJ5IGluIG1lbW9yeSkNCj4+ICovDQo+PiANCj4+IFdoYXQgZG8geW91IHRo
aW5rPw0KPiANCj4gTGFyZ2VseSBva2F5LCBhbGJlaXQgeW91IGRvbid0IG1lbnRpb24gR3JVQiBh
dCBhbGwgKHdoaWNoIGlzbid0IHJlYWxseSBwYXJ0DQo+IG9mIHRoZSBmaXJtd2FyZSwgYnV0IHdo
aWNoIGxvb2tzIHRvIGJlIHRoZSBjdWxwcml0KSBhbmQgaXQgZ2V0cyBhIGxpdHRsZQ0KPiB0b28g
dmVyYm9zZS4gUHJvdmlkZWQgdGhlIGZhY3RzIGhhdmUgYmVlbiB2ZXJpZmllZCwgaG93IGFib3V0
DQo+IA0KPiAgICAvKg0KPiAgICAgKiBHclVCIGhhcyBiZWVuIG9ic2VydmVkIHRvIHN1cHBseSBh
IE5VTEwgRGV2aWNlSGFuZGxlLiBXZSBjYW4ndCB1c2UNCj4gICAgICogdGhhdCB0byBnYWluIGFj
Y2VzcyB0byB0aGUgZmlsZXN5c3RlbS4gSG93ZXZlciB0aGUgc3lzdGVtIGNhbiBzdGlsbA0KPiAg
ICAgKiBib290IGlmIGl0IGRvZXNu4oCZdCByZXF1aXJlIGFjY2VzcyB0byB0aGUgZmlsZXN5c3Rl
bS4NCj4gICAgICovDQo+IA0KPiAoYW5kIGl0J3MgdXAgdG8geW91IHdoZXRoZXIgeW91IGluY2x1
ZGUgeW91ciBmdXJ0aGVyICJlLmcuIC4uLiIgdGhlbiwgYnV0DQo+IGlmIHlvdSBkbyBJIHRoaW5r
IHRoZSBwYXJlbnRoZXNpemVkIHBhcnQgYmVsb25nIGJlZm9yZSB0aGUgZmluYWwgZnVsbA0KPiBz
dG9wLCBhbmQgdGhlIGxhc3QgImluIiB3b3VsZCB3YW50IHRvIGJlICJpbnRvIik/IEl0J3Mgc3Rp
bGwgZHViaW91cyB0byBtZQ0KPiBob3cgdGhleSBjYW4gZ2V0IGF3YXkgd2l0aCBzdWNoIGEgTlVM
TCBoYW5kbGUgKGFuZCB3aHkgdGhhdCBoYXBwZW5zIG9ubHkNCj4gb24gQXJtKSwgYnV0IEkgZ3Vl
c3MgaXQgd291bGQgZ28gdG9vIGZhciB0byB0cnkgdG8gdW5kZXJzdGFuZCB0aGUNCj4gYmFja2dy
b3VuZC4NCg0KVGhpcyBtaWdodCBub3QgYmUgYSBwcm9ibGVtIGluIEdydWIgYnV0IGFjdHVhbGx5
IGluIEVESzIgb3IgZHVlIHRvIHRoZSBmYWN0IHRoYXQNCkVESzIgaXMgc3RhcnRpbmcgR3J1YiB3
aGljaCBpcyBzdGFydGluZyBYZW4uIEdydWIgaXMgbm90IG1vZGlmeWluZyB0aGlzIGV4cGxpY2l0
bHkNCmZyb20gd2hhdCB3ZSBmb3VuZCBkdXJpbmcgb3VyIGludmVzdGlnYXRpb25zLg0KDQpDaGVl
cnMNCkJlcnRyYW5kDQoNCj4gDQo+IEphbg0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:42:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:42:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221029.382531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIPD-0001p8-Nm; Wed, 03 Nov 2021 15:42:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221029.382531; Wed, 03 Nov 2021 15:42:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIPD-0001p1-Kk; Wed, 03 Nov 2021 15:42:27 +0000
Received: by outflank-mailman (input) for mailman id 221029;
 Wed, 03 Nov 2021 15:42:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miIPC-0001on-46
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:42:26 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a430d25e-3cbc-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 16:42:25 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2056.outbound.protection.outlook.com [104.47.12.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-8-agJKx_UPPXiVGbiSofJSqQ-1;
 Wed, 03 Nov 2021 16:42:23 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6175.eurprd04.prod.outlook.com (2603:10a6:803:fb::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 15:42:22 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 15:42:22 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0602CA0015.eurprd06.prod.outlook.com (2603:10a6:203:a3::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend
 Transport; Wed, 3 Nov 2021 15:42:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a430d25e-3cbc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635954144;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IKQFfsl5CI8qDIa6xA0OpXJ8VjuzoPquD0vSUy66UTo=;
	b=fSZYVaSDP+YMWRmu+9TnvjwIz7SaA54szK8qDdD32e4+w3w9sCec9zp3mlxJcNc7yGUsVj
	JC09h/qpdYzvNc2iX0cOf/gPEiPQbR9xYXA5uT0QmoyDkYM0S0/msxSNDgkJ0vxlBN/w+e
	F9iiWjTytSCNJH+X+2tz18c3sVnKwcE=
X-MC-Unique: agJKx_UPPXiVGbiSofJSqQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FSm8ynbCfsy/ktpsU/ulryIVXolmKgvUDwYUuvhwuObfXXi5xtMj+N/A+/2U3/uSJhkQaEmLuUIQvMlpRs+IGuJk8e8+CE/mDjh8KVoozk1iJdo2p0xrQoFPSkfX9Zcfnh2d2xhpICFRdmxSVZ+GIEkPdRhOpUsV72d0jUPEBSVqBniKWctwc3ptIsG38howxnA+SU/7RCUQjPeGwke2+R2ICcJ3hNUYgfNYfkm9hhaWAaZBCfOn0kr9DIZNMkPMqOMUW/6qfzakgi9nn2GxDeOs86cq2HB36nYHwaee80xvbMNy9vpI8jwI72nLIwz3vjGhgm0/nrrPoCDvGgAaOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IKQFfsl5CI8qDIa6xA0OpXJ8VjuzoPquD0vSUy66UTo=;
 b=eAi17HhJs3O21ygBAqXGte2yr4y9P/dKVPzVd0P4a5Ztss97QxyOJWBXVC1+KwSTEnFE3xO5Kpfp7fk0DqIgRHhL1k3Fyoi1fajY1uaUeLA0xoMk/oPPgHxkoVR5ToIGg7tycaRawBYwtML1IP4ZI3gJbton2XOmN1ap02ukYpR+weFo89jtoRVAtGErA5FELdEmO5RYa7j5NJ5pZbMr1fILuWBWYVyIPlsPJOHJEtJTuO+/3GkB5t9lRuuOu/peWFWbGBMOwhrfPV6s6ssdPBy3YekR6YYyF9RRu6AENISLwQeMYVw7j5JXvtJmzssfl7JOUYfLYf/x27eNg17eeQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <613fa1c2-5292-43b8-0261-2b26d7f65cd8@suse.com>
Date: Wed, 3 Nov 2021 16:42:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH v2.2 07/15] xen: generate hypercall interface related code
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211103102059.19621-1-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211103102059.19621-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0602CA0015.eurprd06.prod.outlook.com
 (2603:10a6:203:a3::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 670464f9-351b-4aeb-498f-08d99ee086ab
X-MS-TrafficTypeDiagnostic: VI1PR04MB6175:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6175C8C688EA5D9F5BF48FA0B38C9@VI1PR04MB6175.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:644;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	zBQQUdODK6SpPvr3h+GWwBsZyPFl5IdX4lHqv5dEMNBBxSUubY7A8jcrd9CUHXZLnHiemSKJLc18IsyuDwpTMIgFSVrKYXwuYpd3rtYymOmjnO8pJGQFa1MRNOHMpJhAx4fLhfuEZDJb/BuZpm1+fSi+U30TBYF67z7/zKbcJFA8aMp8f2zew+euH9+OkZOzSBRyDZr6n2UZ2KGBoCg/ogwOLRZhdQ7wDaMFr/lXUsj6sGEYHb12ZSCcO/O9F24z/RZvqTt6gfbh/wlg5jsSkT44XvScepKn+P0jKg70AYcm/PPjQtpz06r06/t6Z96cKYU/dQ46s2yAxGs83dZLW7KtbCd0LujbOum4+UHTm0aJ5QhWcgpCbxzOCojkSyHXk71yFzQpSs4fCul+d3pVJaNl0LybxnPTDLX1k+TbnO0C8vt13WBbPHGQRinZUOjd4yyTTnu3J7bifJ7hOdPeP3EH8NL8joMqpzT4rVURrm78sUwONmkSjovimNUriIz1gQP5DqGjqDnSWk11WLWaNnXlx+hCQcLnO0gQPx6kk0jabkc4mM/nSHhjPeCZL6ao988+x+cXWa/YxYdrRr5sxLkRo8No9ygVXBHwl8MztLcPuUbrI7LLemtdjyjfIVQOZ4ZIWZMzLfvzihn8O+HBQkZV8H2jaVsfT6B4e4JVsUKzP75cVEJHK6YYh637qtdIKqZCWPx+bag72QVEhocrUiUyCBvWnQHjqTlDTkgpWq643k8GAgkctGp7qBw0f0cP
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6862004)(31686004)(86362001)(5660300002)(53546011)(31696002)(508600001)(316002)(16576012)(2906002)(37006003)(4326008)(8676002)(66556008)(2616005)(54906003)(956004)(38100700002)(26005)(6636002)(83380400001)(66946007)(186003)(8936002)(36756003)(66476007)(6486002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N0tTVTBoZDB3eDZBUytXbTd5bThNYUxmR2k3RGNmQ3psWkZQUVVya1VWUUVC?=
 =?utf-8?B?dUZEYnlxamVZUU1GL2lxZlZPTU4reGc2akJUS3ZUOFhhazlEaFhxWk5kNmtN?=
 =?utf-8?B?NlZhYzFIa0FHcThMNHZ3RUFPNTJHc20vaXQzQ1ZrNVU5dVR0bTJJNTZtdVJk?=
 =?utf-8?B?V2pzb1E3Tkc3cVRLc1pQVVl2ZmtSaUU3bmg3TnBFSXJTeW94WVBxNXN4QjJo?=
 =?utf-8?B?M2dEWllLOUdscExQbklnVURYQTNNeUR4RGMwWHBxYkM4dk0rR1hTamxRbndI?=
 =?utf-8?B?bXVoNDAzVG5Nc0pyV3EvdVVsbldTTWNrYTB0SldnNjRJNWtRWjJaQWp0V0ts?=
 =?utf-8?B?R0JqR0xhSVg1cHlMazV6cS84Z2lNQ2tNTW1DSk8xSFhVV3IwdjJ2eTZaY2Nm?=
 =?utf-8?B?VmNBbGNHQ2NkcjlDbVdVdmw2SkVGL25HL3BoQ3FqT1dhU2lmcHg3b003NGNG?=
 =?utf-8?B?MXdzNDJwU2I1VlF2QUsxRlhMd3pZanBpZS8xTUVaeWNHOEx5UHltNVRtSVNz?=
 =?utf-8?B?aUhIUjdCOGhyUEc4WWs2Y05WbFlScm5RWGNYYnBGQTRBQkZaUGhqNXBHa0lE?=
 =?utf-8?B?b25va2NCVk5OTXZYUDJpRWdQaHlVNzJnWDF2REVudS9Mcm9ITlUyYVJLVThZ?=
 =?utf-8?B?K3p1QlhtSm44NUFrTlJLNUhLU055SlZVMm9YUUY0Tm9DODhOenBIU2pBTENy?=
 =?utf-8?B?QldEc2hTbWZGbTdSaTFvaFI1d1RTMHE0MEJ6YnVDWnRseUJ4TjA4SjV2MGlO?=
 =?utf-8?B?WTh3blduVUszdGVWZU93bmJrdUNsRFRSOGV1WW9xQzEvQ2hzS1FtYTNkNFF0?=
 =?utf-8?B?RlhMREtVL1lZK3Z2b3lWZ2V6Yy9WTEFCSSt3YVhYRkdheEZ6dzZVdUpiVTBX?=
 =?utf-8?B?RGJqNURQSWlCRm1vNGwrUVAzcGpCemFSSnpYZmZRRXc3SEluM1B5d1R1YTJ3?=
 =?utf-8?B?dGttc1BqTkIybWJjUFpKZW1OdlJTUGdob2hXWnVEOXY5aUNndWVRb2Q3bGVo?=
 =?utf-8?B?cE53RlB2dHloN3k2LzM5SS9aMGZzK091YmtQN012R1QvN2xNOW1BWUpVZnVX?=
 =?utf-8?B?azZ0MlJVbEtrNHluY3oxTnNxeTRxVlRvQkxtNWtTMFdIYWlFK3hUaWdsbkVB?=
 =?utf-8?B?OFd0MnIzMU9wTmx5VnJoUEVqRGMwdUs2SXBqZkRkT0prNWJQdGlBNGNveEJY?=
 =?utf-8?B?TmtDQ1lpRlBwMmJjTzRJNHdUYlloK0lZZkhxbGJQU3lmOVZzY2hwZlJuUk5I?=
 =?utf-8?B?VUpocWk0ejRReFN3VDc5S0toLzRhZlRHUjNpYitVdldWSXBpN2QvYUJndXNS?=
 =?utf-8?B?VXk0aVQ0ZXVmODNmSiszZUtLUDVlOUNkNk1EUnZqTHZPbGN5N1FBMGVlSkZn?=
 =?utf-8?B?U3lRUTkvWXFZWmZkN1E5aHh2YTQ5SGFrWjZ6MHBZYlpFN05xRWlNUUlMdVZW?=
 =?utf-8?B?Smw3Snh5OXdSaTQ4TzlObHM4Z0FXL3ZVRXRXTSsrTGxCU3B0d21mVUoxQjAy?=
 =?utf-8?B?VHNqNDI1NzZVVVd3OWd6ZTVtRjJIRUxHaUJxV1BXM0NZTWh1Zm5Ic2JYdHJC?=
 =?utf-8?B?Z1pQN2dMTDFPdUh4TjNjemRRR2p5SzdIeWxtSUM1U2h6bGtpbTRHbFdOY0NG?=
 =?utf-8?B?cjdNSmVHUCtkb28zM05lcnNtclBCWVQrRDc5MnhCLzd4YlRxcXNjOTlna25m?=
 =?utf-8?B?MVRHc1RzSHQxQ2ZpMVppaDVWZlc0M3owRWs2WXhocGtkNlNPc3ZoNUVhWml2?=
 =?utf-8?B?c01vZ1RKVGlsdm1nWlFFMERNbUpIRktmd2I1WmNCK2NNWlFra0dhbWI2R1ZJ?=
 =?utf-8?B?YXEvZHJTVWV5Tk5DMzV1UjYyNVp2QThMWm9MSlhlRVBOQ3RETzJqM3pyRzBz?=
 =?utf-8?B?TDFYdWM3NUlreUtiVThRdDZDVHE3bWlZQUs5NklrZjJUV3lBNmpiTXV3Z1d2?=
 =?utf-8?B?MThOVHN4WkM5WStlRkRQUmVORVViWjR5bXhSQWpaZkoyTXZtUWsyd0dyQWNz?=
 =?utf-8?B?RnZpN0ExSXM5YmJZUjZ5SjRtVGt3aG9acG9PZFhtVmZ2NWhiTlNEU3AwYmRs?=
 =?utf-8?B?T0NjaFFuKy9RSE5Sa1FROWNJNWQ2TnhiM2g1cENOcTBzYnN4dDFJRXJOSVBI?=
 =?utf-8?B?elgzMTBRVXp2dWFYZFlxdXF3dDVEc2wvMHo1SHJZRDZxcXlSMGd4ekFRbnJk?=
 =?utf-8?Q?VOtB3E1iapPY/FB8weVFo1k=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 670464f9-351b-4aeb-498f-08d99ee086ab
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 15:42:22.0220
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: C82KeUtKr5SV44bIOpHsxEcAL1ujJt7nB9XYjR/SxFfmqScqU/mh226TgxmNhnph0EkvrpeR7gtKwb70SalJ6A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6175

On 03.11.2021 11:20, Juergen Gross wrote:
> Instead of repeating similar data multiple times use a single source
> file and a generator script for producing prototypes and call sequences
> of the hypercalls.
> 
> As the script already knows the number of parameters used add generating
> a macro for populating an array with the number of parameters per
> hypercall.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

What's missing here now that you have introduced priorities is how you
did arrive at the chosen values. That's a pretty important aspect,
especially if someone would later want to adjust these.

Just one further remark from looking at the output of the script (thanks
for making that available):

> +# Generate the output
> +END {
> +    # Verbatim generated lines
> +    for (i = 1; i <= e; i++)
> +        printf("%s\n", emit[i]);
> +    printf("\n");
> +    # Generate prototypes
> +    for (i = 1; i <= n; i++) {
> +        for (p = 1; p <= n_pre[i]; p++) {
> +            printf("%s %s_%s(", rettype[pre[i, p]], pre[i, p], fn[i]);
> +            if (n_args[i] == 0)
> +                printf("void");
> +            else
> +                for (j = 1; j <= n_args[i]; j++) {
> +                    if (j > 1)
> +                        printf(", ");
> +                    if (ptr[i, j])
> +                        printf("XEN_GUEST_HANDLE_PARAM(%s)", typ[i, j]);
> +                    else
> +                        printf("%s", typ[i, j]);
> +                    printf(" %s", arg[i, j]);
> +                }
> +            printf(");\n");
> +        }
> +    }
> +    # Generate call sequences and args array contents
> +    for (ca in caller) {
> +        if (caller[ca] != 1)
> +            continue;
> +        need_mask = 0;
> +        for (pl = 1; pl <= n_prios[ca]; pl++) {
> +            for (pll = pl; pll > 1; pll--) {
> +                if (prio_list[ca, pl] > p_list[pll - 1])
> +                    break;
> +                else
> +                    p_list[pll] = p_list[pll - 1];
> +            }
> +            p_list[pll] = prio_list[ca, pl];
> +            # If any prio but the default one has more than 1 entry we need "mask"
> +            if (p_list[pll] != 100 && prios[ca, p_list[pll]] > 1)
> +                need_mask = 1;
> +        }
> +        printf("\n");
> +        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5) \\\n", ca);
> +        printf("{ \\\n");
> +        if (need_mask)
> +            printf("    uint64_t mask = 1ULL << num; \\\n");
> +        printf("    ");
> +        for (pl = 1; pl <= n_prios[ca]; pl++) {
> +            if (prios[ca, p_list[pl]] > 1) {
> +                if (pl < n_prios[ca]) {
> +                    printf("if ( likely(mask & (%s)) ) \\\n", prio_mask[ca, p_list[pl]]);
> +                    printf("    { \\\n");
> +                }
> +                if (prios[ca, p_list[pl]] == 2) {
> +                    fnd = 0;
> +                    for (i = 1; i <= nc; i++)
> +                        if (call[i] == ca && call_prio[i] == p_list[pl]) {
> +                            fnd++;
> +                            if (fnd == 1)
> +                                printf("        if ( num == __HYPERVISOR_%s ) \\\n", fn[call_fn[i]]);
> +                            else
> +                                printf("        else \\\n");
> +                            do_call(call_fn[i], call_p[i]);
> +                        }
> +                } else {
> +                    do_switch(ca, p_list[pl]);
> +                }
> +                if (pl < n_prios[ca])
> +                    printf("    } \\\n");
> +            } else {
> +                for (i = 1; i <= nc; i++)
> +                    if (call[i] == ca && call_prio[i] == p_list[pl]) {
> +                        printf("if ( likely(num == __HYPERVISOR_%s) ) \\\n", fn[call_fn[i]]);
> +                        do_call(call_fn[i], call_p[i]);
> +                    }
> +            }
> +            if (pl < n_prios[ca] || prios[ca, p_list[pl]] <= 2)
> +                printf("    else ");

I think there's a line continuation escape + newline missing here.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:43:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:43:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221038.382543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIQb-0002Ry-3Q; Wed, 03 Nov 2021 15:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221038.382543; Wed, 03 Nov 2021 15:43:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIQb-0002Rr-07; Wed, 03 Nov 2021 15:43:53 +0000
Received: by outflank-mailman (input) for mailman id 221038;
 Wed, 03 Nov 2021 15:43:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9PtR=PW=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1miIQY-0002RV-V1
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:43:51 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on061e.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::61e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d68707b0-3cbc-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 16:43:49 +0100 (CET)
Received: from AM6P195CA0089.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::30)
 by PAXPR08MB7280.eurprd08.prod.outlook.com (2603:10a6:102:217::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 15:43:42 +0000
Received: from AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:86:cafe::bb) by AM6P195CA0089.outlook.office365.com
 (2603:10a6:209:86::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Wed, 3 Nov 2021 15:43:42 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT020.mail.protection.outlook.com (10.152.16.116) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Wed, 3 Nov 2021 15:43:42 +0000
Received: ("Tessian outbound 7129402754f2:v108");
 Wed, 03 Nov 2021 15:43:41 +0000
Received: from e361ca6cae1a.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 0CB5917E-BA25-46AB-985C-D76C46919852.1; 
 Wed, 03 Nov 2021 15:43:01 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e361ca6cae1a.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 03 Nov 2021 15:43:01 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PR2PR08MB4826.eurprd08.prod.outlook.com (2603:10a6:101:24::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 15:42:59 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Wed, 3 Nov 2021
 15:42:59 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO3P265CA0009.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:bb::14) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Wed, 3 Nov 2021 15:42:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d68707b0-3cbc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rSlSmSSblTPi+tfYZj0Am4Gsf8rDmpZ/VAokZOsO/CI=;
 b=r8Q0RU//4ldefaCIM/MevxFuDcXat6v8ES9U4TYLZNWAMjYASojXnogdYaC2sT4fSCxnqKnTBffQak3O/O5z6NjNZlVHdl8McwhpqX+2ZfQYvhJg5zHWrCUr+nuVJd61ZffuJ8av3P7ecqJJDRnw2qWcI2lmLoJWLSYjGgRD5ps=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 990b842447e9c7da
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jd2isLQyKOpO2LYlEBHXsho8Vw6+uKFsUFjIwYrVa4Oz1y2KxpnS6jiTyCMNREW05IE+IwpqknXCw8xTE1qw8Cfc//ThjDQ9zyrSFDxLd7U+Y6mjH0PZ48PhtwycvrqtH9HOiXo4a0Ojs+mTDjgM37mr0ZlKx627HpXAEpjt0gFre8WXhp+on7WWSl3i+lpymyaZsuXjy7QXKCfsh1ycb2S2tQJI68QdwH93aBRjGgiA/ZJSyQwAXikis03HdTDWOiNZTOkQSohvR+F+9hdrq1uLF73TUGw1KT551363HAi+U6zDFU3RS6+1JSIkASA9vA1cRUH305J+9Jc0/1Hh9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rSlSmSSblTPi+tfYZj0Am4Gsf8rDmpZ/VAokZOsO/CI=;
 b=RfE0nFkTRV0FNIorhTHxpPtcQ4VxiOqv8O1KqnXuyn565Ze6htbtlt0fcsFv7vDnP+stA/aw3rTownTWbNG750/1zHdjZg4q4hXh9h2+7w+Y2u3eQUV1MTVeXz8tw3CtKUjyE/cEP9OhHwrG1hNMepujMfjnIWv062H6Umy3PyQaBrMPOitu8UdBt0RqGjPpl1YxkGnFUP71gCq4vjRH0hmP1Io3Cjo2lKX57osngq6hWCHt60x08dnf4Fqu0INLFzVtp5Oh2RNUeoSf9USRJm4gzuOSQ0D+eWt6Gjj6omE7kSmNpQzOUWUNZhKuGhIAtj5P4MHcASMdFJfxohSoTQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rSlSmSSblTPi+tfYZj0Am4Gsf8rDmpZ/VAokZOsO/CI=;
 b=r8Q0RU//4ldefaCIM/MevxFuDcXat6v8ES9U4TYLZNWAMjYASojXnogdYaC2sT4fSCxnqKnTBffQak3O/O5z6NjNZlVHdl8McwhpqX+2ZfQYvhJg5zHWrCUr+nuVJd61ZffuJ8av3P7ecqJJDRnw2qWcI2lmLoJWLSYjGgRD5ps=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <b3d140fa-019e-a469-be16-47b6e42e124d@suse.com>
Date: Wed, 3 Nov 2021 15:42:52 +0000
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <C340B76D-4DC4-4473-81A4-967C2FB7E3D4@arm.com>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
 <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
 <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
 <83E4F969-892C-4AA2-829D-67C02B4B5885@arm.com>
 <ad621757-afac-f36f-0b3c-7fe1ddb83a66@suse.com>
 <AB5E1F4C-36BC-413B-88DA-487BA573BFCC@arm.com>
 <b3d140fa-019e-a469-be16-47b6e42e124d@suse.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO3P265CA0009.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:bb::14) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6d481d32-68d7-4eff-ceeb-08d99ee0b682
X-MS-TrafficTypeDiagnostic: PR2PR08MB4826:|PAXPR08MB7280:
X-Microsoft-Antispam-PRVS:
	<PAXPR08MB7280DE3B05AFBDCB2BBA3AA0E48C9@PAXPR08MB7280.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 uaOI+gLSrDQ4rhUGak1JDZW0PBCF4cq6KeTAEOsSvuXc1SCBRPYJ+2a20B1nQlGSCkQugLEhsIGJxI6YygaZHVSbWiW3i6DJCttFvaXbFXfZ2qnTGnJUPUkOUt1Azfi4uNLCZsnzFABxwRnFBeLLSWwdhGqozpvXZxZN6fpe11h+xI9Tlj7IJf8+Ynmati4HgsFZ7TjruNB/dDVBqdMozgQaG9BQM0QJqOhO/ZTw4PgS94pmZyAkFbViB/5qGs1nE0Rx9iIiowIxY/QEbRhcKGPJrkVS3OasGy2kXKg0pOWsUGHOFF9m0j7wiQHSsj4wYYmRy9530uxuSSKKxlnUNuvT7aTQdv7TS20lb5Cu1QeB8cF8Nh7O3AGt45EdvJCjecvFUdF9G9FVYNeo0qg2e4V493rGwNVMPzv3N/BTLuQAxysRvLejE77qVJoCxrJetlpnqeV5PNPavL56mBtm75y1ZMyquPeBHRSTV8SY5Jw8cnyCWphTcM7EMNVMv1eDbenIlpKBtN7rinFWqpl4lbzhGnazVxXVaJfwf/d3Z1u+Pmk2dUY+B5aDTk0zKksSCjdxzcxiBUBSbQhLs+kbakCu3wHQaMGqyszk743Em/yJoz70xpyUVE+ZC33eR8VNFRJyf2JGyRut/bj24cjikuHSoobLS4NjkeM+Hi8i5zK0lUMbLq/6w7avz8Lb1MdJYjJhWHSvDwtyO1A/vxnuGQHXaF1JvV5RlHu0EnyjyzDBtcbXPAUA9txXArVKcv7u
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6486002)(508600001)(8676002)(5660300002)(66556008)(66946007)(83380400001)(66476007)(316002)(26005)(33656002)(54906003)(6916009)(36756003)(86362001)(4326008)(186003)(6512007)(2616005)(8936002)(44832011)(956004)(38350700002)(2906002)(53546011)(6506007)(6666004)(52116002)(38100700002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4826
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f860a409-3a4c-470d-a77c-08d99ee09d19
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	mjXkvU0WvksDl7Ww5Z/xiza2NP5Ura6k/5bPbdDOKQQUQgQifsWVx9S4jZ/wjN6xFgGrfP1XCeRPf/KRGyaz7xLkFJiTLwZXK8vaQASl9pyQF0+fFbE5j3sEp6maC6lfRHfpF9vFBYRMVBvXI9ygxqE/ISp1nTdSRAmAvr1sJFm6UlgHfTOIM1VJQfph6+XAmNl1e6uWgvgyTdk6IJeTBWk0SNY5/Wl9h/eA/s7Uzq5NmwhIEosH3DRSyr1Ccoh+TGC2ln5lOnFbOZIgADrZK0eVEISq/JwiKKjgsb9Wav7CDebOd6Vms47z/mZcO/UH378yNjGK1E/KDOg1iWP9DkQCT4mBaQeIhChGRsbvS/16uyuU+Sl1+xzOJ7mRGRZZ3BnylTd6hUjyNY8hREAa2AUdjLpqmYeKnVbOR5EY5++Q0ZVpARuelTRItiLisNSburNe6bRAZbTXyFC8KccxkgA9m7r/+loI6OqZn1J49lSHWNmBfWGcLKQKyNGOsOq86hLuoMywVLzwShY2kWTVf+YPRMf69NpCecqEio6z/NBQdQHZqfvCwSXEqVBCKgsiKDr+FOocZkWtFXsZAOO6KXslgHT1pw8ZcgntpCgXGkZ6wVh0M4R9/fKhjeJc0t7OEEhd+OjkAfIbx7x9SFtb/N99nKOSHEn39S1k5zeZuOjMov3gubWSrYgeigY8K+RT6QW/aUT4iGbgDyr159wbCQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(8936002)(47076005)(336012)(956004)(44832011)(2616005)(8676002)(26005)(33656002)(70206006)(70586007)(6666004)(186003)(82310400003)(36756003)(83380400001)(54906003)(316002)(81166007)(6512007)(86362001)(356005)(6486002)(53546011)(6862004)(5660300002)(6506007)(36860700001)(4326008)(2906002)(508600001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 15:43:42.0685
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d481d32-68d7-4eff-ceeb-08d99ee0b682
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7280



> On 3 Nov 2021, at 15:30, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 03.11.2021 16:16, Luca Fancellu wrote:
>>=20
>>=20
>>> On 3 Nov 2021, at 14:30, Jan Beulich <jbeulich@suse.com> wrote:
>>>=20
>>> On 03.11.2021 15:09, Luca Fancellu wrote:
>>>>> On 3 Nov 2021, at 11:28, Jan Beulich <jbeulich@suse.com> wrote:
>>>>> On 03.11.2021 11:20, Luca Fancellu wrote:
>>>>>>> On 3 Nov 2021, at 08:20, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>> On 02.11.2021 18:12, Luca Fancellu wrote:
>>>>>>>>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>>>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>>>>>>>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214f=
d9b882
>>>>>>>>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>>>>>>>>> introducing a problem to boot Xen using Grub2 on ARM machine usi=
ng EDK2.
>>>>>>>>>>=20
>>>>>>>>>> The problem comes from the function get_parent_handle(...) that =
inside
>>>>>>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the l=
ast
>>>>>>>>>> is NULL, making Xen stop the UEFI boot.
>>>>>>>>>=20
>>>>>>>>> According to my reading the UEFI spec doesn't (explicitly) allow =
for
>>>>>>>>> this to be NULL. Could you clarify why this is the case? What oth=
er
>>>>>>>>> information may end up being invalid / absent? Is e.g. read_secti=
on()
>>>>>>>>> safe to use?
>>>>>>>>=20
>>>>>>>> My test on an arm machine running Grub2 on top of EDK2 showed that
>>>>>>>> when Xen is started, the get_parent_handle(=E2=80=A6) call was fai=
ling and stopping
>>>>>>>> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called =
with the
>>>>>>>> loaded_image->DeviceHandle argument NULL and the call was returnin=
g
>>>>>>>> a EFI_INVALID_PARAMETER.
>>>>>>>> So the parent handle can=E2=80=99t be requested and the filesystem=
 can=E2=80=99t be used,
>>>>>>>> but any other code that doesn=E2=80=99t use the handle provided by=
 get_parent_handle(=E2=80=A6)
>>>>>>>> can be used without problem like read_section(...).
>>>>>>>=20
>>>>>>> I understand this. My question was for the reason of ->DeviceHandle
>>>>>>> being NULL. IOW I'm wondering whether we're actually talking about =
a
>>>>>>> firmware or GrUB bug, in which case your change is a workaround for
>>>>>>> that rather than (primarily) a fix for the earlier Xen change.
>>>>>>=20
>>>>>> The issue was found only when using EDK2+Grub2, no issue when bootin=
g
>>>>>> directly from EDK2.
>>>>>> This is a fix for the regression, because without the EFI changes, G=
rub2 was
>>>>>> booting successfully Xen. Using grub2 to boot Xen on arm is a very c=
ommon
>>>>>> solution so not supporting this anymore could lead to lots of people=
 having
>>>>>> issues if they update to Xen 4.16.
>>>>>=20
>>>>> I'm not objecting to addressing the issue. But the description needs
>>>>> to make clear where the origin of the problem lies, and afaict that's
>>>>> not the earlier Xen change. That one merely uncovered what, according
>>>>> to your reply, might then be a GrUB bug. Unless, as said earlier, I
>>>>> merely haven't been able to spot provisions in the spec for the field
>>>>> in question to be NULL.
>>>>=20
>>>> Maybe I can rephrase to be more specific from:
>>>>=20
>>>> The problem comes from the function get_parent_handle(...) that inside
>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>>>> is NULL, making Xen stop the UEFI boot.
>>>>=20
>>>> To:
>>>>=20
>>>> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandl=
e,
>>>> that is used by efi_bs->HandleProtocol(=E2=80=A6) inside get_parent_ha=
ndle(=E2=80=A6),
>>>> causing Xen to stop the boot getting an EFI_INVALID_PARAMETER error.
>>>>=20
>>>> Do you think it can be ok like this?
>>>=20
>>> Much better, yes, but I wonder what "returning" refers to. You want to
>>> describe the origin of the NULL handle as precisely as possible. And
>>> considering this turns out as a workaround, in a suitable place you
>>> will also want to add a code comment, such that a later reader won't
>>> decide this is all dead code and can be done in a simpler way.
>>=20
>> Ok I can write the issue from the beginning to be sure:
>>=20
>> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle
>> inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
>> handle is used later by efi_bs->HandleProtocol(=E2=80=A6) inside get_par=
ent_handle(=E2=80=A6)
>> when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL interface,
>> causing Xen to stop the boot because of an EFI_INVALID_PARAMETER error.
>>=20
>> Regarding the comment, I can rephrase this comment:
>> /*
>> * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCOL
>> * to have access to the filesystem.
>> */
>>=20
>> To be:
>>=20
>> /*
>> * If DeviceHandle is NULL, the firmware offering the UEFI services might=
 not be
>> * compliant to the standard and we can't use the SIMPLE_FILE_SYSTEM_PROT=
OCOL
>> * to have access to the filesystem. However the system can boot if and o=
nly if it doesn=E2=80=99t
>> * require access to the filesystem. (e.g. Xen image has everything built=
 in or the
>> * bootloader did previously load every needed binary in memory)
>> */
>>=20
>> What do you think?
>=20
> Largely okay, albeit you don't mention GrUB at all (which isn't really pa=
rt
> of the firmware, but which looks to be the culprit) and it gets a little
> too verbose. Provided the facts have been verified, how about
>=20
>    /*
>     * GrUB has been observed to supply a NULL DeviceHandle. We can't use
>     * that to gain access to the filesystem. However the system can still
>     * boot if it doesn=E2=80=99t require access to the filesystem.
>     */

Ok yes this is better, I will do the changes to the commit message and the
comment for the v2, I=E2=80=99ll wait Stefano reply to see if I have to inc=
lude also
his suggestion.

Thank you.

>=20
> (and it's up to you whether you include your further "e.g. ..." then, but
> if you do I think the parenthesized part belong before the final full
> stop, and the last "in" would want to be "into")? It's still dubious to m=
e
> how they can get away with such a NULL handle (and why that happens only
> on Arm), but I guess it would go too far to try to understand the
> background.
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:52:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:52:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221048.382554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIYP-0003xj-2W; Wed, 03 Nov 2021 15:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221048.382554; Wed, 03 Nov 2021 15:51:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIYO-0003xc-Uy; Wed, 03 Nov 2021 15:51:56 +0000
Received: by outflank-mailman (input) for mailman id 221048;
 Wed, 03 Nov 2021 15:51:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Ly7=PW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miIYO-0003xR-CZ
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 15:51:56 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7ffa577-3cbd-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 16:51:55 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2059.outbound.protection.outlook.com [104.47.12.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-25-M6qxaZtkM6me_bZ-Ncokuw-1; Wed, 03 Nov 2021 16:51:53 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2702.eurprd04.prod.outlook.com (2603:10a6:800:b4::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 15:51:51 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.020; Wed, 3 Nov 2021
 15:51:51 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P192CA0093.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:8d::34) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.17 via Frontend Transport; Wed, 3 Nov 2021 15:51:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7ffa577-3cbd-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1635954714;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5MRNv+cCbzUmabZNV9/s5dxpqnegWYp4UZvGdZrHVTU=;
	b=LUhAgyFH94Z6G0Js+lfzQS9RAoZOLNI0tgGym2wZSgb5tk7oEA51lJh2NCim8L/haiCwaY
	7i7T9gDYMoU46edx11ClYrLfFIJR91T16QXr22+SF3SEbd4eY0OVBtHdboJtwZtO0/Fqcn
	zeGLkOLjbsa6EHPl1OixIa1WJqrF3Ro=
X-MC-Unique: M6qxaZtkM6me_bZ-Ncokuw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MlmDrA/ihrBKdIZoZ4jY9bRYxr0YfW+AIXPFQxnegJ0hiGr0fAFC/bGtC+bl4GILIf5eeRedKdM86X7odN7wbkQtr6GDIRKpEkVmFNVLHye+E1HIPU0KPf3XpvgD5z2EVwXkLsDK5Xubn5IMZLxL5+l+s0MGZxXdSjv72+/xoAZ2TMPIifIFvCnekCcWmpp8zsYdbbfd9nr1BKrYkUrk98luktpXYjvWuHusDcjVaQbsRxjC+pliQSlRbiNn020QSXOVqa/t3fvgfCLjTibll7FlhexpD6IP021ox7WdHQW3rizkFfDXrUxGsYzSAOxiI7Aa/hQwV2FZ7C4FNi2evQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tp2ISfa1P3TzZiECREYeCD1RoG6lu8ZqAKaghY6uewM=;
 b=iAr+pZj/yHQVrpwjwJMR0isOzcEx918zQjxI/fDWa4pG79mGuqmb/AYKiLSZo7Fc44cQeEz6DUYMVdIueWrds+hH2zkfGeOsiUn6wYLXCRuCrwkFRJn3gHPBEa1V/0seAggdUg6w1Fg+IKysPkzTY6TX+VxAil3fYK/biyUS3+xGZpSIkt7XTI/llZ0SIrNW0Lkl4d0L/FC0uwjKqJeCvC8mKnXV34ftgmM3f+P1H196ephEpVq/LmNGCFcG8FYD8ul3Qx9Cm2kL0M9XOD9eAafZPRPEx2eE9j1iRUWJDPRPBWY0uPTAvene2s9dUnxJLwg3vUemnXj31vaITxqw2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9729d03e-efae-d862-d685-0308608c3771@suse.com>
Date: Wed, 3 Nov 2021 16:51:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
CC: Luca Fancellu <Luca.Fancellu@arm.com>, Wei Chen <Wei.Chen@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Ian Jackson <iwj@xenproject.org>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
 <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
 <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
 <83E4F969-892C-4AA2-829D-67C02B4B5885@arm.com>
 <ad621757-afac-f36f-0b3c-7fe1ddb83a66@suse.com>
 <AB5E1F4C-36BC-413B-88DA-487BA573BFCC@arm.com>
 <b3d140fa-019e-a469-be16-47b6e42e124d@suse.com>
 <AB3CD75D-3E18-4802-91E5-7FBBA0734170@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <AB3CD75D-3E18-4802-91E5-7FBBA0734170@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P192CA0093.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:209:8d::34) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c434169e-d47d-45e1-9fae-08d99ee1d9d0
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2702:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2702563203C322CFD3E2CC64B38C9@VI1PR0402MB2702.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jkWAXWPM2GGD+ycqhqWRlXx7YS3RqNTwJeWYCAOPFHR/iABHVG4MYjdyWSCITkOifAz6E2II9aesBROzrTms3meMfcXn5SV9luKMujKkvyekOYbbKzPqH1rMgb2sYhCMWZW89ZntP0Skv2YABZ6vPqsfJzxheRM/kG9HsDNuOWQYVOo9ZSWgH0iLfpAW6Qsj8wbi1JEDEz/vhLzmCnuwjjOOtWmTV7bet7oF+bOhbMeMI81iQAA7NeLE3muQurpWSaj8QjrcqeGuJiMOlc1Ai7htoIe+NRWPoj6v+OhUl7iV7tEaSR/5LfuK6nRp0p36m9yPeQcROT/qgLBPlF+INCXVoVfBl6GoZsq5qXGPSdciK7ZMNS+WGODf/f3y82WxY+YrfzJ+unsva6x9i/BbS0R4TEV7WIQGNOAlR+CqhQMG+4zN0L4N1ltuJ8xhPFXOcxC+emJxh/zQAu/phv26HRk38N78HAbBvG3ukb8vBCa/HHuGe5JFnemnZXtc4CAN+chOuMlN0Vj4uEIeXhhPvyoXyHotPig6dYOPFODYLWumDJsKOntjWPCFAUlDc+1CjRflmrcERhrmYndbIpm35akPwDGeHryaS8ee5F/Tnt9EYj7o9qFVEC4nj1jjgvdrZFgAzRxc34s2oBMCfpOqNxIMyEfm/ZrdtusCcWQRGhTAsnozoAweYf+7bd0pkCazyUNoYMJ0sjkMJz6mztuA5XTuxH1B//+QCmT1T1iysKaDcj9/xBhIvEcMMHuqfWvA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(956004)(2616005)(26005)(31686004)(186003)(508600001)(38100700002)(31696002)(36756003)(54906003)(316002)(16576012)(4326008)(6916009)(8676002)(8936002)(53546011)(5660300002)(6486002)(2906002)(66946007)(66556008)(66476007)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Rdga/YT5ZAFr5hePflfKO9s9wMbnWwGZ/2J6YUwdMf25Y0xck0BoYSlrJMzw?=
 =?us-ascii?Q?KNm/gVpx5aHFqq/Up1l7v48CqNCvZog8t46yTgH/LtricqnwCLLaWN6adz0h?=
 =?us-ascii?Q?AKWt/q5CYRQPmKN/P5DPd6oFWB7r+MNsS1UvHP6WwIwLvog/EvlHTPsd1G2E?=
 =?us-ascii?Q?K4dC1p3PPg8l+6ozu76IM+bZM/TsrgDhQ/4nG2S71TFTLS67BY3sutVjuzty?=
 =?us-ascii?Q?DNzBNP3IFwRprVNHu01ZOSbrR1U3cNVMrQQMtv+XRvMYHWw7vB9PiDpFmQND?=
 =?us-ascii?Q?YlmdcahKQ5+W6JFWSZMOBCTWYuA0oGis/hVERMniDz9Vc4WRGw6YIOKw62dx?=
 =?us-ascii?Q?VxVgw8B6FPQqLVlzcaw2FxsXgpepwASVDQfr3WrjQWwoC1C9E8YP/jcS4msw?=
 =?us-ascii?Q?dTTj6vi6KCk/PfrPgKAKQMDlJY44Rs7O1uMBX2Y13uw5A81umbV/B33N7y9B?=
 =?us-ascii?Q?9rSrcvwCsXQCjyyYRrKtbIFuAjbvvNrj56mixqDgUupNxs/n8UFJi8w2s/bc?=
 =?us-ascii?Q?WIYzEXo4v/BqnCDSbFwg7mUBwU2V0S38g/YokWAo9pOJAC0TvLiE4XoCCX5I?=
 =?us-ascii?Q?+0Dxs1HojNK+Ht0ofOQa5d4OM7N2alZzeaxM3pEYIVbVWbZjf66e0du0yX7v?=
 =?us-ascii?Q?yjsGdJQF8a15K4rQusm+D7b4jfCoh/8A/2cyCv91zaDiw3kGE9SLNAlTVuM2?=
 =?us-ascii?Q?Ya4HU4WW2WTHvk19HHN5SVGFSrpGTVxpwlHa2HWP2l3d/Obu4cus6AzHobWm?=
 =?us-ascii?Q?Q3g4Y2P2fY8TmWkmrB9lEjrtlew3PvtqrsW6mv3CUvtNMw/id6xred+AaOuf?=
 =?us-ascii?Q?XyaftRbX+zjE4Bn0bV1Xgd7OrFW4W/MyQlNvAYpMtWYYXN07vbqGhc+SQXNt?=
 =?us-ascii?Q?mLDjbzXk/v37Wc6iyX7TmY4eH4KnCAfizBbgzN/i2jTXVkShnjtn8SvI/7PQ?=
 =?us-ascii?Q?dtKSV80MUNzEuOvAM8pKFhVqzfHiUQc4CGok7KoRTAujE4IaIMyYuTWmRIuO?=
 =?us-ascii?Q?vrIJedILU9W/0FEibhdGsQNUzJ/lGSu9IkGOVQ6b646HrCCGkVp7csO+EXxi?=
 =?us-ascii?Q?BWZc6oXwyCqJ6DzvSfi7MHhbHJTUQ3k2D8yUgO+AevzRxVzm/ncRCV9Ggy3O?=
 =?us-ascii?Q?hWUUHiF7HbMcfPWoWj9fOd+pNboo1hzAD3zUTz2lhlkUexR7YyQzW66E0Kt+?=
 =?us-ascii?Q?0lag74PgvlLwRizozApOXZK1S2IMhZBXBJXpignqmekEYvP1cY4kaU63W0dN?=
 =?us-ascii?Q?fIFfuHNDT+Q/XYs+7aXHtXH5XT89oO2AO2WkMAZK3CsGv6y7QXx/cnC4rZJJ?=
 =?us-ascii?Q?5LB2Znc9nI8QcYLCBaEtwDtGMhF19tG9uuu5Ev8naCEDl8r3tcx7bCGHzeki?=
 =?us-ascii?Q?qC0kuGMp/bPauOI9So+cPb6RP2fURy2PZXRfEmMefn1IySSCURp8BFv3MQ0z?=
 =?us-ascii?Q?yWLtoSdkVhkUiy3yZeQ91h2FfGdddafafZQM5mETE6P+QFozxhK/Yw6DkMFQ?=
 =?us-ascii?Q?MVLk2fXr3qi7bDeoVD8ATWcero9td0uizh3jRFDAPkdgGwMnjapghpmklJxP?=
 =?us-ascii?Q?OtsFjV/Fj6MWvvfoGbOE+iJeewUSaqjfZsEYtoaIsxyAWMWfVnSblT1Ni4ip?=
 =?us-ascii?Q?U7BGdQsE8m24JJ9Af0d++U4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c434169e-d47d-45e1-9fae-08d99ee1d9d0
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 15:51:51.0333
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DwxihLwlZ1cUdZCeNxWu2a4lzJqneY9mSkbnKD8zqALIh3Gs2oJT0VirguKJxaG6/OBPjvCvxUJNhixOymeMSA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2702

On 03.11.2021 16:41, Bertrand Marquis wrote:
> Hi Jan,
>=20
>> On 3 Nov 2021, at 15:30, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 03.11.2021 16:16, Luca Fancellu wrote:
>>>
>>>
>>>> On 3 Nov 2021, at 14:30, Jan Beulich <jbeulich@suse.com> wrote:
>>>>
>>>> On 03.11.2021 15:09, Luca Fancellu wrote:
>>>>>> On 3 Nov 2021, at 11:28, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>> On 03.11.2021 11:20, Luca Fancellu wrote:
>>>>>>>> On 3 Nov 2021, at 08:20, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>>> On 02.11.2021 18:12, Luca Fancellu wrote:
>>>>>>>>>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>>>>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>>>>>>>>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214=
fd9b882
>>>>>>>>>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>>>>>>>>>> introducing a problem to boot Xen using Grub2 on ARM machine us=
ing EDK2.
>>>>>>>>>>>
>>>>>>>>>>> The problem comes from the function get_parent_handle(...) that=
 inside
>>>>>>>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the =
last
>>>>>>>>>>> is NULL, making Xen stop the UEFI boot.
>>>>>>>>>>
>>>>>>>>>> According to my reading the UEFI spec doesn't (explicitly) allow=
 for
>>>>>>>>>> this to be NULL. Could you clarify why this is the case? What ot=
her
>>>>>>>>>> information may end up being invalid / absent? Is e.g. read_sect=
ion()
>>>>>>>>>> safe to use?
>>>>>>>>>
>>>>>>>>> My test on an arm machine running Grub2 on top of EDK2 showed tha=
t
>>>>>>>>> when Xen is started, the get_parent_handle(=E2=80=A6) call was fa=
iling and stopping
>>>>>>>>> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was called=
 with the
>>>>>>>>> loaded_image->DeviceHandle argument NULL and the call was returni=
ng
>>>>>>>>> a EFI_INVALID_PARAMETER.
>>>>>>>>> So the parent handle can=E2=80=99t be requested and the filesyste=
m can=E2=80=99t be used,
>>>>>>>>> but any other code that doesn=E2=80=99t use the handle provided b=
y get_parent_handle(=E2=80=A6)
>>>>>>>>> can be used without problem like read_section(...).
>>>>>>>>
>>>>>>>> I understand this. My question was for the reason of ->DeviceHandl=
e
>>>>>>>> being NULL. IOW I'm wondering whether we're actually talking about=
 a
>>>>>>>> firmware or GrUB bug, in which case your change is a workaround fo=
r
>>>>>>>> that rather than (primarily) a fix for the earlier Xen change.
>>>>>>>
>>>>>>> The issue was found only when using EDK2+Grub2, no issue when booti=
ng
>>>>>>> directly from EDK2.
>>>>>>> This is a fix for the regression, because without the EFI changes, =
Grub2 was
>>>>>>> booting successfully Xen. Using grub2 to boot Xen on arm is a very =
common
>>>>>>> solution so not supporting this anymore could lead to lots of peopl=
e having
>>>>>>> issues if they update to Xen 4.16.
>>>>>>
>>>>>> I'm not objecting to addressing the issue. But the description needs
>>>>>> to make clear where the origin of the problem lies, and afaict that'=
s
>>>>>> not the earlier Xen change. That one merely uncovered what, accordin=
g
>>>>>> to your reply, might then be a GrUB bug. Unless, as said earlier, I
>>>>>> merely haven't been able to spot provisions in the spec for the fiel=
d
>>>>>> in question to be NULL.
>>>>>
>>>>> Maybe I can rephrase to be more specific from:
>>>>>
>>>>> The problem comes from the function get_parent_handle(...) that insid=
e
>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>>>>> is NULL, making Xen stop the UEFI boot.
>>>>>
>>>>> To:
>>>>>
>>>>> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHand=
le,
>>>>> that is used by efi_bs->HandleProtocol(=E2=80=A6) inside get_parent_h=
andle(=E2=80=A6),
>>>>> causing Xen to stop the boot getting an EFI_INVALID_PARAMETER error.
>>>>>
>>>>> Do you think it can be ok like this?
>>>>
>>>> Much better, yes, but I wonder what "returning" refers to. You want to
>>>> describe the origin of the NULL handle as precisely as possible. And
>>>> considering this turns out as a workaround, in a suitable place you
>>>> will also want to add a code comment, such that a later reader won't
>>>> decide this is all dead code and can be done in a simpler way.
>>>
>>> Ok I can write the issue from the beginning to be sure:
>>>
>>> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle
>>> inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
>>> handle is used later by efi_bs->HandleProtocol(=E2=80=A6) inside get_pa=
rent_handle(=E2=80=A6)
>>> when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL interface,
>>> causing Xen to stop the boot because of an EFI_INVALID_PARAMETER error.
>>>
>>> Regarding the comment, I can rephrase this comment:
>>> /*
>>> * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCOL
>>> * to have access to the filesystem.
>>> */
>>>
>>> To be:
>>>
>>> /*
>>> * If DeviceHandle is NULL, the firmware offering the UEFI services migh=
t not be
>>> * compliant to the standard and we can't use the SIMPLE_FILE_SYSTEM_PRO=
TOCOL
>>> * to have access to the filesystem. However the system can boot if and =
only if it doesn=E2=80=99t
>>> * require access to the filesystem. (e.g. Xen image has everything buil=
t in or the
>>> * bootloader did previously load every needed binary in memory)
>>> */
>>>
>>> What do you think?
>>
>> Largely okay, albeit you don't mention GrUB at all (which isn't really p=
art
>> of the firmware, but which looks to be the culprit) and it gets a little
>> too verbose. Provided the facts have been verified, how about
>>
>>    /*
>>     * GrUB has been observed to supply a NULL DeviceHandle. We can't use
>>     * that to gain access to the filesystem. However the system can stil=
l
>>     * boot if it doesn=E2=80=99t require access to the filesystem.
>>     */
>>
>> (and it's up to you whether you include your further "e.g. ..." then, bu=
t
>> if you do I think the parenthesized part belong before the final full
>> stop, and the last "in" would want to be "into")? It's still dubious to =
me
>> how they can get away with such a NULL handle (and why that happens only
>> on Arm), but I guess it would go too far to try to understand the
>> background.
>=20
> This might not be a problem in Grub but actually in EDK2 or due to the fa=
ct that
> EDK2 is starting Grub which is starting Xen. Grub is not modifying this e=
xplicitly
> from what we found during our investigations.

Otoh Luca said that there's no problem without GrUB. So maybe "GrUB
in combination with EDK2 ..."?

Thinking more about it, this may also be partly related to our
limitation to loading files from file systems (and not e.g. networks
or RAM). Yet even then I couldn't see how a NULL device handle could
be used for anything.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 15:52:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 15:52:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221049.382565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIYT-0004Ep-9j; Wed, 03 Nov 2021 15:52:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221049.382565; Wed, 03 Nov 2021 15:52:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIYT-0004Ei-6F; Wed, 03 Nov 2021 15:52:01 +0000
Received: by outflank-mailman (input) for mailman id 221049;
 Wed, 03 Nov 2021 15:52:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miIYS-0004EL-5y; Wed, 03 Nov 2021 15:52:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miIYS-0003kJ-0Z; Wed, 03 Nov 2021 15:52:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miIYR-0003qf-LI; Wed, 03 Nov 2021 15:51:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miIYR-0002by-Kn; Wed, 03 Nov 2021 15:51:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=d9igQHsmQEqqyV7PI1HlwqaOBTx37DOpbv4ZleQKipM=; b=ifAPjfZ4eXywP1osobcWrq22m+
	V93nG/Or9PnRDqOJS9+ncfn/CQJK0ik2iLtafMEl+XcQl7ZC9fmLXZiHE8di2PqZ3oC4liXm1kArj
	3P/8CJjJ1OEM4Kz+57W9aIvHCc5iGpLljlmNzpdYO6VsAg5NAnTmadHSz7f/hH5+JiGA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166025-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166025: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-i386-freebsd10-i386:guest-localmigrate/x10:fail:heisenbug
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:allowable
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=22d5760cb43e2fe73e61fda145a98f3217ca47bf
X-Osstest-Versions-That:
    qemuu=50352cce138ef3b30c1cda28a4df68fff5da3202
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 15:51:59 +0000

flight 166025 qemu-mainline real [real]
flight 166032 qemu-mainline real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166025/
http://logs.test-lab.xenproject.org/osstest/logs/166032/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-freebsd10-i386 19 guest-localmigrate/x10 fail pass in 166032-retest

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10   fail REGR. vs. 165682

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165682
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165682
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165682
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165682
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165682
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165682
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165682
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165682
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 qemuu                22d5760cb43e2fe73e61fda145a98f3217ca47bf
baseline version:
 qemuu                50352cce138ef3b30c1cda28a4df68fff5da3202

Last test of basis   165682  2021-10-19 21:09:14 Z   14 days
Failing since        165694  2021-10-20 18:09:12 Z   13 days   38 attempts
Testing same since   166025  2021-11-03 06:30:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Alexey Baturo <baturo.alexey@gmail.com>
  Alexey Baturo <space.monkey.delivers@gmail.com>
  Alistair Francis <alistair.francis@wdc.com>
  Anatoly Parshintsev <kupokupokupopo@gmail.com>
  Andrew Jones <drjones@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  BALATON Zoltan <balaton@eik.bme.hu>
  Bin Meng <bmeng.cn@gmail.com>
  Chenyi Qiang <chenyi.qiang@intel.com>
  Chih-Min Chao <chihmin.chao@sifive.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cédric Le Goater <clg@kaod.org>
  Damien Hedde <damien.hedde@greensocs.com>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  David Gibson <david@gibson.dropbear.id.au>
  David Hildenbrand <david@redhat.com>
  Dr. David Alan Gilbert <dgilbert@redhat.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Eric Blake <eblake@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Frank Chang <frank.chang@sifive.com>
  Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
  Gavin Shan <gshan@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Greg Kurz <groug@kaod.org>
  Gustavo Romero <gromero@linux.ibm.com>
  Hanna Reitz <hreitz@redhat.com>
  Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
  Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
  Igor Mammedov <imammedo@redhat.com>
  Jason Andryuk <jandryuk@gmail.com>
  Jason Wang <jasowang@redhat.com>
  Jean-Philippe Brucker <jean-philippe@linaro.org>
  John Snow <jsnow@redhat.com>
  John Wang <wangzhiqiang02@inspur.com>
  John Wang <wangzq.jn@gmail.com>
  Jose Martins <josemartins90@gmail.com>
  Juan Quintela <quintela@redhat.com>
  Kunkun Jiang <jiangkunkun@huawei.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Li Zhijian <lizhijian@cn.fujitsu.com>
  Luc Michel <lmichel@kalray.eu>
  Luis Pires <luis.pires@eldorado.org.br>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Mathieu Poirier <mathieu.poirier@linaro.org>
  Max Filippov <jcmvbkbc@gmail.com>
  Michael S. Tsirkin <mst@redhat.com>
  Mingwang Li <limingwang@huawei.com>
  Oğuz Ersen <oguzersen@protonmail.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Krempa <pkrempa@redhat.com>
  Peter Xu <peterx@redhat.com>
  Philipp Tomsich <philipp.tomsich@vrull.eu>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Shuuichirou Ishii <ishii.shuuichir@fujitsu.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  Thomas Weißschuh <thomas.weissschuh.ext@zeiss.com>
  Tong Ho <tong.ho@xilinx.com>
  Travis Geiselbrecht <travisg@gmail.com>
  Vincent Palatin <vpalatin@rivosinc.com>
  Vivek Goyal <vgoyal@redhat.com>
  Warner Losh <imp@bsdimp.com>
  Xueming Li <xuemingl@nvidia.com>
  Yanan Wang <wangyanan55@huawei.com>
  Yifei Jiang <jiangyifei@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   50352cce13..22d5760cb4  22d5760cb43e2fe73e61fda145a98f3217ca47bf -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 16:03:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 16:03:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221065.382578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIip-0006bs-Fr; Wed, 03 Nov 2021 16:02:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221065.382578; Wed, 03 Nov 2021 16:02:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIip-0006bl-D3; Wed, 03 Nov 2021 16:02:43 +0000
Received: by outflank-mailman (input) for mailman id 221065;
 Wed, 03 Nov 2021 16:02:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miIin-0006bf-Fp
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:02:41 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miIin-0004VV-DR
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:02:41 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miIin-0001ff-Cl
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:02:41 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miIib-0004it-15; Wed, 03 Nov 2021 16:02:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=6ZhMmnOTaonDxKjw7IMu2Zw8Vzt3mgULfVEZA9fTTk8=; b=n9yrxMVDWGjPfsf+EwzswGwgeD
	Hgmb+2eKi/SJl7Tt7OMMJjp2L+NHBjlsTH8A0kGb7TdmBRa0aalyRF1Xd3cHHFUB1PvyjNAsUPChJ
	HxVRwTLEf1DgcUxRtban3ZxzfGR8K8itL/3TProzZAYmtE3tZs/Zah/Ln9QBSbeOrv3E=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24962.45715.983883.929178@mariner.uk.xensource.com>
Date: Wed, 3 Nov 2021 16:02:27 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>,
    Ian Jackson <iwj@xenproject.org>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    Wei Liu <wl@xen.org>,
    Bobby Eshleman <bobby.eshleman@gmail.com>,
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/traps: Fix typo in do_entry_CP()
In-Reply-To: <519bcaac-cc32-c1d5-8f01-34318ed398ca@citrix.com>
References: <20210928210014.27954-1-andrew.cooper3@citrix.com>
	<3408f175-d71a-267b-515a-972b3ed8c4e8@suse.com>
	<519bcaac-cc32-c1d5-8f01-34318ed398ca@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("Re: [PATCH] x86/traps: Fix typo in do_entry_CP()"):
> It turns out that I forgot to commit this patch, and it now needs a
> Release Ack to go in.
> 
> It is very safe and obvious. It is passing the wrong constant into a
> debug function.
> 
> Luckily the impact is benign due to other properties of the logic, and
> would only cause problems for people adding manual debug logic.

Thanks,

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 16:07:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 16:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221073.382590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miInl-0007HE-2i; Wed, 03 Nov 2021 16:07:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221073.382590; Wed, 03 Nov 2021 16:07:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miInk-0007H7-Vz; Wed, 03 Nov 2021 16:07:48 +0000
Received: by outflank-mailman (input) for mailman id 221073;
 Wed, 03 Nov 2021 16:07:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9PtR=PW=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1miInj-0007Gt-2Z
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:07:47 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on0611.outbound.protection.outlook.com
 [2a01:111:f400:fe0d::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e11b547-3cc0-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 17:07:45 +0100 (CET)
Received: from DB6PR07CA0166.eurprd07.prod.outlook.com (2603:10a6:6:43::20) by
 DB9PR08MB7006.eurprd08.prod.outlook.com (2603:10a6:10:2c7::11) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10; Wed, 3 Nov 2021 16:07:42 +0000
Received: from DB5EUR03FT041.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:6:43:cafe::ec) by DB6PR07CA0166.outlook.office365.com
 (2603:10a6:6:43::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.4 via Frontend
 Transport; Wed, 3 Nov 2021 16:07:42 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT041.mail.protection.outlook.com (10.152.21.4) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Wed, 3 Nov 2021 16:07:41 +0000
Received: ("Tessian outbound 2bb1f94ba47e:v108");
 Wed, 03 Nov 2021 16:07:41 +0000
Received: from cb1468ac0cc7.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F05DB63A-86A9-4301-8A3E-C5DFAD49A67C.1; 
 Wed, 03 Nov 2021 16:07:25 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id cb1468ac0cc7.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 03 Nov 2021 16:07:25 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PAXPR08MB6495.eurprd08.prod.outlook.com (2603:10a6:102:dd::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov
 2021 16:07:23 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Wed, 3 Nov 2021
 16:07:22 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO4P123CA0126.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Wed, 3 Nov 2021 16:07:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e11b547-3cc0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mMzRqRCXP00W+MueiHojl3OajnY7XnqQcfJg8A5FYXQ=;
 b=7Et4LERTT++IBj2CtYt68j3M1k9ZSECfbkTboP0Gz69WuDl4xVa9tsyjN6bhoeRdcIId4DQ9RcUkP7bbRtZOwlqM2jd2CYpDA4pMnq/S4uOI/kKmwMc4qjn3FEMIdjcY9yqJ2Xdkhp3dUyuIJlOQOupI4xzhhRVrjwLO+bglk6M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 2effdc7b911a0c3a
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XzERY7cscE8y5RpwmGOzfIpeRAn0h/8/0ZEfpIH3IUfGQMlAr50V5tB9RWBYrxFTIUMhwA/KbEE5e7emi4F7ckwHCEyhGOu8iwRMDNyyWuIWaSUVc4l2HlzUSAvhM8QVCS4vHl6R1BNs9r586WvdMdsH0MrOl8ZDrxUW9jg/6nlLcn4daIkA+CdIN4nNx0Jrp6O5MuuqcDrgUaOoKg3oBu/SBwsD6eOwTD51SybR8iNLYWQz6mAOFZ6mnKaDyLzP1NDwPPQ8znlUGfNE1RDOUFtXudzOBY5e9P3XncC9QhExrncQUadH9Z7gWJJZAHD4/neelsFELuey1jiw0VdMbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mMzRqRCXP00W+MueiHojl3OajnY7XnqQcfJg8A5FYXQ=;
 b=aDkCINZuHCv+1rNVnKkYhD0as/1QDnDoTJPCMWiDAXXHgJEUxX1wTjiOvc09oEV+H/tdLVOwM2aBD57EzZa5/mFYHgD2psmWG+xbk0UZBP6yjUPKmtxR1NFuYdWrEleewiCz3fZSbvlZtIGs1yiatueYdKIR8mxk7ayvPLIuIsG6TJjHM2w5OjbKw/7QmDBvLIw/DfH8lL9Lm/qhWGA+O6ef5W0u1AMFfl1dsYHjdhPlriPFEeKbNIhS5exfMPJIyT8hvRs7LgJ9URmsIyh75DxPbmnV8V6hQYQtCOD1dFonYW6pKWY6IGEf0KVJBwUmX9NM1+GP81wZq2mmRCABoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mMzRqRCXP00W+MueiHojl3OajnY7XnqQcfJg8A5FYXQ=;
 b=7Et4LERTT++IBj2CtYt68j3M1k9ZSECfbkTboP0Gz69WuDl4xVa9tsyjN6bhoeRdcIId4DQ9RcUkP7bbRtZOwlqM2jd2CYpDA4pMnq/S4uOI/kKmwMc4qjn3FEMIdjcY9yqJ2Xdkhp3dUyuIJlOQOupI4xzhhRVrjwLO+bglk6M=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <9729d03e-efae-d862-d685-0308608c3771@suse.com>
Date: Wed, 3 Nov 2021 16:07:15 +0000
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Wei Chen <Wei.Chen@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <25B03CAA-716F-498E-9F0C-6C71B9ECFA8E@arm.com>
References: <20211102140511.5542-1-luca.fancellu@arm.com>
 <5290fa91-9470-be1b-47e4-a8de911b4fb3@suse.com>
 <6F65B5FB-A511-4553-AA17-B144C3DB70CA@arm.com>
 <6a8ecb5b-7ea4-7dd8-4acf-587b51862aed@suse.com>
 <845D8368-B9DA-4A5C-8F8D-6AAE55E326A0@arm.com>
 <16c6757d-1bb3-361f-a41f-26b9bc89a2b4@suse.com>
 <83E4F969-892C-4AA2-829D-67C02B4B5885@arm.com>
 <ad621757-afac-f36f-0b3c-7fe1ddb83a66@suse.com>
 <AB5E1F4C-36BC-413B-88DA-487BA573BFCC@arm.com>
 <b3d140fa-019e-a469-be16-47b6e42e124d@suse.com>
 <AB3CD75D-3E18-4802-91E5-7FBBA0734170@arm.com>
 <9729d03e-efae-d862-d685-0308608c3771@suse.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO4P123CA0126.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:192::23) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c8619a5e-ade8-4c84-088a-08d99ee410ab
X-MS-TrafficTypeDiagnostic: PAXPR08MB6495:|DB9PR08MB7006:
X-Microsoft-Antispam-PRVS:
	<DB9PR08MB7006D8E5D8D2385A1D96BBD7E48C9@DB9PR08MB7006.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 eBJCkRTpiOlx/hYMNYrt49EK80hPt97Esaqz8wL9R/ME1OT1UiaawT/FgOuY96w1j2ThG9JBKpPlEmOHA6ZIRkCGP6938CPT3FfsdHYhUUhLVz6eTpSY/GiXEpLk+dJiIpTbmst7O+ev5a3BH8oP3vBLhDQ3OCEE17mSlnhKFkllUbNhjeP2OWRS9xz7c5jYsZ/6QuT73NYw2KLzZsuvQPUv/oOcaFNV4FXXBwyHFN4gVuGHYz/AsFDcPeT6w2N01igs8KuBgggMcaMhXkWn0boYgmEjMOGt9pv/0mxWECSTJ/GcXqllwJsFj3y0b79YiQ7qVCamxsa7GqSyBqJfCc8hHOXs01hrMF/87yqAszj9mN2vFGDjxarVxHlVYW6gOAnGjKc6IECK9JPDT3xoCQjl/kQ827FDyg3DbgmhHLRsI6c9lfgnEYXvBAaShxRvFI17M9gBXLsR9D0iIzHow2H+QkqRh/VIqL7Ye6zDNg4Qe/STPa8O1cBfZdVdBFfl/In0wyTPBHyyOf9kYRtCcAhL4/9n7tjG6HZpPSvxPkc03eSyKq8dWTAChQCJCoekPYa55s1xFeKWaUvCqqsHoOO+Q/GHb1Tlpm0aR7zj2dX3HEuFuaiY8AyV/9uG++XPutH0yBPLKwiYKEtmSXeKJpX/iCjPmwcHhHMeHF8Ro181DHn4QbUdPK4D/KRweAWXe2rnzlx6y2Zj+DHf+/e96+AqK4dUvObEZ6O0WSJHsmu9v58PCYvvOA9iek4eg4UU
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(6486002)(86362001)(33656002)(53546011)(26005)(508600001)(2906002)(6506007)(66556008)(8676002)(186003)(5660300002)(44832011)(316002)(6916009)(956004)(38100700002)(66946007)(6512007)(36756003)(2616005)(8936002)(52116002)(38350700002)(6666004)(54906003)(83380400001)(66476007)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6495
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT041.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2c9e0aba-70ac-4717-95b0-08d99ee40524
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	UPCJsjdtTml+M6qoWXeck8jgaelhf+azx59M/riqC6VoobdXb6UGcpddjsg6Ug4Udna4qniYNnpTMTUPFLUGjV0RCYrBG3STjlvNjCayGiXIZisG+7ZzthJy+tUrikkaXyCxp0LgrtqS0PrFuUcVRfUUF0SO45szOuhfcQatnvZ9Gh6mxAlX/R9hPpsAn49aUzMzdCFlSHbKwVuVbHdSOq8bpGKBIVaQzN5G4pjqMr97yADSSSbl42ePwpay+6Ka0BOC29JtnaB6vJ3LFoFPHWb+H5i0YYexzE2PToWCkbKf7cR75oudvfhTkR/NenLGiPGN1ApPTdmm+l9NJCZ4cmC4veimTAFSJbn6Kun8+eNp9E5YsTBKIwk5OufNGKjeFJklzPQ639w6ACNnIODccgoKoruGn2tTidTxX1SE2q1+hjg0Z5guyqMv+H7KyfFF3Y/8pVTd83vk8Vn3AYjNjRUxtCgOPMXeHmcXRaKwDECrl9mrNB+1gji3UyvvRzjrq1qwJXWa4nbMGl447MziJE/3wNDgai62NS/lDOFbEqIiSLFDhzkkGAqbL/9HFHSxo9v086Lntun/ZFuVyDv9DyFzTwIGMZcJnm6N7oJD6Ts+yUTZki0bkk+U/XkG+uhAC4rFFn57vDFi/ZWvx1uWqD10CTDFlzlPuHpzaMmqp9f9sIHPpRE1vkXKrbtfBeHFF3g44uV8floLVivAfZqQ8g==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(83380400001)(2906002)(81166007)(36860700001)(336012)(6666004)(6862004)(186003)(356005)(5660300002)(53546011)(6506007)(8936002)(4326008)(26005)(47076005)(956004)(70586007)(86362001)(316002)(82310400003)(54906003)(33656002)(70206006)(36756003)(8676002)(508600001)(6486002)(6512007)(2616005)(44832011);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 16:07:41.8932
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c8619a5e-ade8-4c84-088a-08d99ee410ab
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT041.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7006



> On 3 Nov 2021, at 15:51, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 03.11.2021 16:41, Bertrand Marquis wrote:
>> Hi Jan,
>>=20
>>> On 3 Nov 2021, at 15:30, Jan Beulich <jbeulich@suse.com> wrote:
>>>=20
>>> On 03.11.2021 16:16, Luca Fancellu wrote:
>>>>=20
>>>>=20
>>>>> On 3 Nov 2021, at 14:30, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>=20
>>>>> On 03.11.2021 15:09, Luca Fancellu wrote:
>>>>>>> On 3 Nov 2021, at 11:28, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>> On 03.11.2021 11:20, Luca Fancellu wrote:
>>>>>>>>> On 3 Nov 2021, at 08:20, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>>>> On 02.11.2021 18:12, Luca Fancellu wrote:
>>>>>>>>>>> On 2 Nov 2021, at 14:45, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>>>>>> On 02.11.2021 15:05, Luca Fancellu wrote:
>>>>>>>>>>>> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf21=
4fd9b882
>>>>>>>>>>>> ("arm/efi: Use dom0less configuration when using EFI boot") is
>>>>>>>>>>>> introducing a problem to boot Xen using Grub2 on ARM machine u=
sing EDK2.
>>>>>>>>>>>>=20
>>>>>>>>>>>> The problem comes from the function get_parent_handle(...) tha=
t inside
>>>>>>>>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the=
 last
>>>>>>>>>>>> is NULL, making Xen stop the UEFI boot.
>>>>>>>>>>>=20
>>>>>>>>>>> According to my reading the UEFI spec doesn't (explicitly) allo=
w for
>>>>>>>>>>> this to be NULL. Could you clarify why this is the case? What o=
ther
>>>>>>>>>>> information may end up being invalid / absent? Is e.g. read_sec=
tion()
>>>>>>>>>>> safe to use?
>>>>>>>>>>=20
>>>>>>>>>> My test on an arm machine running Grub2 on top of EDK2 showed th=
at
>>>>>>>>>> when Xen is started, the get_parent_handle(=E2=80=A6) call was f=
ailing and stopping
>>>>>>>>>> the boot because the efi_bs->HandleProtocol(=E2=80=A6) was calle=
d with the
>>>>>>>>>> loaded_image->DeviceHandle argument NULL and the call was return=
ing
>>>>>>>>>> a EFI_INVALID_PARAMETER.
>>>>>>>>>> So the parent handle can=E2=80=99t be requested and the filesyst=
em can=E2=80=99t be used,
>>>>>>>>>> but any other code that doesn=E2=80=99t use the handle provided =
by get_parent_handle(=E2=80=A6)
>>>>>>>>>> can be used without problem like read_section(...).
>>>>>>>>>=20
>>>>>>>>> I understand this. My question was for the reason of ->DeviceHand=
le
>>>>>>>>> being NULL. IOW I'm wondering whether we're actually talking abou=
t a
>>>>>>>>> firmware or GrUB bug, in which case your change is a workaround f=
or
>>>>>>>>> that rather than (primarily) a fix for the earlier Xen change.
>>>>>>>>=20
>>>>>>>> The issue was found only when using EDK2+Grub2, no issue when boot=
ing
>>>>>>>> directly from EDK2.
>>>>>>>> This is a fix for the regression, because without the EFI changes,=
 Grub2 was
>>>>>>>> booting successfully Xen. Using grub2 to boot Xen on arm is a very=
 common
>>>>>>>> solution so not supporting this anymore could lead to lots of peop=
le having
>>>>>>>> issues if they update to Xen 4.16.
>>>>>>>=20
>>>>>>> I'm not objecting to addressing the issue. But the description need=
s
>>>>>>> to make clear where the origin of the problem lies, and afaict that=
's
>>>>>>> not the earlier Xen change. That one merely uncovered what, accordi=
ng
>>>>>>> to your reply, might then be a GrUB bug. Unless, as said earlier, I
>>>>>>> merely haven't been able to spot provisions in the spec for the fie=
ld
>>>>>>> in question to be NULL.
>>>>>>=20
>>>>>> Maybe I can rephrase to be more specific from:
>>>>>>=20
>>>>>> The problem comes from the function get_parent_handle(...) that insi=
de
>>>>>> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
>>>>>> is NULL, making Xen stop the UEFI boot.
>>>>>>=20
>>>>>> To:
>>>>>>=20
>>>>>> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHan=
dle,
>>>>>> that is used by efi_bs->HandleProtocol(=E2=80=A6) inside get_parent_=
handle(=E2=80=A6),
>>>>>> causing Xen to stop the boot getting an EFI_INVALID_PARAMETER error.
>>>>>>=20
>>>>>> Do you think it can be ok like this?
>>>>>=20
>>>>> Much better, yes, but I wonder what "returning" refers to. You want t=
o
>>>>> describe the origin of the NULL handle as precisely as possible. And
>>>>> considering this turns out as a workaround, in a suitable place you
>>>>> will also want to add a code comment, such that a later reader won't
>>>>> decide this is all dead code and can be done in a simpler way.
>>>>=20
>>>> Ok I can write the issue from the beginning to be sure:
>>>>=20
>>>> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandl=
e
>>>> inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
>>>> handle is used later by efi_bs->HandleProtocol(=E2=80=A6) inside get_p=
arent_handle(=E2=80=A6)
>>>> when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL interface,
>>>> causing Xen to stop the boot because of an EFI_INVALID_PARAMETER error=
.
>>>>=20
>>>> Regarding the comment, I can rephrase this comment:
>>>> /*
>>>> * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCO=
L
>>>> * to have access to the filesystem.
>>>> */
>>>>=20
>>>> To be:
>>>>=20
>>>> /*
>>>> * If DeviceHandle is NULL, the firmware offering the UEFI services mig=
ht not be
>>>> * compliant to the standard and we can't use the SIMPLE_FILE_SYSTEM_PR=
OTOCOL
>>>> * to have access to the filesystem. However the system can boot if and=
 only if it doesn=E2=80=99t
>>>> * require access to the filesystem. (e.g. Xen image has everything bui=
lt in or the
>>>> * bootloader did previously load every needed binary in memory)
>>>> */
>>>>=20
>>>> What do you think?
>>>=20
>>> Largely okay, albeit you don't mention GrUB at all (which isn't really =
part
>>> of the firmware, but which looks to be the culprit) and it gets a littl=
e
>>> too verbose. Provided the facts have been verified, how about
>>>=20
>>>   /*
>>>    * GrUB has been observed to supply a NULL DeviceHandle. We can't use
>>>    * that to gain access to the filesystem. However the system can stil=
l
>>>    * boot if it doesn=E2=80=99t require access to the filesystem.
>>>    */
>>>=20
>>> (and it's up to you whether you include your further "e.g. ..." then, b=
ut
>>> if you do I think the parenthesized part belong before the final full
>>> stop, and the last "in" would want to be "into")? It's still dubious to=
 me
>>> how they can get away with such a NULL handle (and why that happens onl=
y
>>> on Arm), but I guess it would go too far to try to understand the
>>> background.
>>=20
>> This might not be a problem in Grub but actually in EDK2 or due to the f=
act that
>> EDK2 is starting Grub which is starting Xen. Grub is not modifying this =
explicitly
>> from what we found during our investigations.
>=20
> Otoh Luca said that there's no problem without GrUB. So maybe "GrUB
> in combination with EDK2 ..."?

Yes as Bertrand suggested and following your wording is more complete to sa=
y:

    /*
     * Grub2 running on top of EDK2 has been observed to supply a NULL
     * DeviceHandle. We can't use that to gain access to the filesystem.
     * However the system can still boot if it doesn=E2=80=99t require acce=
ss to the
     * filesystem.
     */

>=20
> Thinking more about it, this may also be partly related to our
> limitation to loading files from file systems (and not e.g. networks
> or RAM). Yet even then I couldn't see how a NULL device handle could
> be used for anything.
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 16:13:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 16:13:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221079.382601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miItO-0000DR-Pa; Wed, 03 Nov 2021 16:13:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221079.382601; Wed, 03 Nov 2021 16:13:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miItO-0000DK-Ks; Wed, 03 Nov 2021 16:13:38 +0000
Received: by outflank-mailman (input) for mailman id 221079;
 Wed, 03 Nov 2021 16:13:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miItO-0000DE-8u
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:13:38 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miItO-0004gt-6h
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:13:38 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miItO-0002bT-5n
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:13:38 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miItF-0004kk-0k; Wed, 03 Nov 2021 16:13:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=tN6YB8UXGoO/QYw5dsZ2usugQryNCTLaa3SFgZe3KxI=; b=Rd/8yeRRFj86qfgPzFGdB3lSLd
	ZnVdUQR10TqHvXtrPZ6T3dOG1tCfvVXJkv1OdbSeLgdC/XgSkaQ3ma3lAjF/59KmS1K0tUcUWk0Jq
	zuC/QFrSeRGO3edu87eH6LhiaXRbhzKYUo8jxpScAbyLgMriZzfpYRu2jLnemTYRO+XM=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24962.46376.136195.463274@mariner.uk.xensource.com>
Date: Wed, 3 Nov 2021 16:13:28 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    Wei Liu <wl@xen.org>,
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with GCC 12
In-Reply-To: <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
	<77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH] x86/passthrough: Fix hvm_gsi_eoi() build with GCC 12"):
> On 27.10.2021 22:07, Andrew Cooper wrote:
> >   if ( !((pirq) ? &(pirq)->arch.hvm.dpci : NULL) )
> 
> I disagree with the compiler's analysis: While &(pirq)->arch.hvm.dpci
> indeed can't be NULL, that's not the operand of !. The operand of !
> can very well be NULL, when pirq is.
> 
> > which is a hint that the code is should be simplified to just:
> > 
> >   if ( !pirq )
> > 
> > Do so.
> 
> And I further agree with Roger's original reply (despite you
> apparently having managed to convince him): You shouldn't be open-
> coding pirq_dpci(). Your observation that the construct's result
> isn't otherwise used in the function is only one half of it. The
> other half is that hvm_pirq_eoi() gets called from here, and that
> one does require the result to be non-NULL.

Can you (collectively) please come to some agreement here ?
I think this is mostly a question of taste or style.  Please vote on
it if you can't quickly get consensus.

I have added the for-4.16 tag since this seems like a bugfix that
should probably go into 4.16 ?  Unless I have misunderstood.

Thanks,
Ian.
(with RM hat on)


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 16:19:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 16:19:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221087.382611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIzB-0000t9-Cv; Wed, 03 Nov 2021 16:19:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221087.382611; Wed, 03 Nov 2021 16:19:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miIzB-0000t2-9x; Wed, 03 Nov 2021 16:19:37 +0000
Received: by outflank-mailman (input) for mailman id 221087;
 Wed, 03 Nov 2021 16:19:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miIz9-0000sw-UK
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:19:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miIz9-0004my-Q2
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:19:35 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miIz9-0002rc-OP
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 16:19:35 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miIz1-0004mp-7a; Wed, 03 Nov 2021 16:19:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=ab5CL6e3yOj6109hkJWHetVrsHpL7IULwpbRJx4AE/o=; b=JColMU4EnNms0dbHQHWoOAYfqg
	6ks/K52Itn78Y8QbBN3zGDalZDQUwFPBoBZBJseYRdTp23PIayGwvELlrBlvbB0CVVioSFOUgLUMN
	CoBFsvl7QYzzigeyxH6trGm+L7sVvPzfYIyjFfnZV28+gemwJLlKljiZji7cUoygJGuU=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24962.46734.824520.805708@mariner.uk.xensource.com>
Date: Wed, 3 Nov 2021 16:19:26 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?=  <roger.pau@citrix.com>,
    Paul Durrant <paul@xen.org>,
    "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 0/3][4.16] x86/IOMMU: enabled / intremap handling
In-Reply-To: <dde21f84-861f-9c68-5e55-28f5bf407aa4@suse.com>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
	<a51d6449-caba-8a67-3c11-b593574f3839@suse.com>
	<dde21f84-861f-9c68-5e55-28f5bf407aa4@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH v2 0/3][4.16] x86/IOMMU: enabled / intremap handling"):
> On 02.11.2021 11:17, Jan Beulich wrote:
> > On 21.10.2021 11:57, Jan Beulich wrote:
> >> In the course of reading the response to v1 (patch 1 only) I realized
> >> that not only that patch needs further adjustment, but that also
> >> further changes are needed (and there's likely yet more amiss).
> >>
> >> 1: x86/IOMMU: mark IOMMU / intremap not in use when ACPI tables are missing
> >> 2: x86/APIC: avoid iommu_supports_x2apic() on error path
> >> 3: AMD/IOMMU: iommu_enable vs iommu_intremap
> > 
> > Ian, while we further discuss / refine patch 3, the first two have the
> > needed R-b, but will now need you release-ack aiui.
> 
> Seeing your reply on IRC, here an attempt at a release justification
> (the patches were ready by Oct 29, but no-one cared to commit them
> in my absence, so I thought I'd get away without such a write-up):
> 
> Patch 1 addresses a regression identified by Andrew. The main risk I
> see here (which has turned up only very recently) is disagreement on
> patch 3 which imo has an effect also on what patch 1 does, as to the
> (non-)effects of "iommu=off" on the hypervisor command line. This,
> however, is not an effect of the patch, but pre-existing behavior.
> The behavioral change (in this regard) is in patch 3, which is still
> under discussion.

Thank you.  I also went to the list and read the thread there.

Patch 1:

Reviewed-by: Ian Jackson <iwj@xenproject.org>

> Patch 2 corrects an (unlikely but not impossible to be taken) error
> path, supposedly making systems functional again in case they would
> in fact cause that error path to be taken. The risk looks low to me,
> given that two function calls with previously assumed to be
> identical results now get folded into one with the result latched.

This one also:

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

I think, from reading the thread, that patch 3 is not targeting 4.16.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 17:00:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 17:00:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221095.382623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miJce-0005oq-HJ; Wed, 03 Nov 2021 17:00:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221095.382623; Wed, 03 Nov 2021 17:00:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miJce-0005oj-E3; Wed, 03 Nov 2021 17:00:24 +0000
Received: by outflank-mailman (input) for mailman id 221095;
 Wed, 03 Nov 2021 17:00:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4+yV=PW=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1miJcc-0005od-LN
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 17:00:23 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 859f9e8f-3cc7-11ec-9787-a32c541c8605;
 Wed, 03 Nov 2021 18:00:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 859f9e8f-3cc7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1635958819;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=A8gltBmfwnQqi46oxfrWK2jUtPuq5owj2WpDVGfyqnE=;
  b=hlhNwdl2MWCCTJV/Z94cRKISlGKoKbgYOl8C4gxNALshjeE48yJOMOxZ
   t6wEQ07K85eOFBlTq48TGIiR2NZ0joYtImGLjqHd5FsbAye9tfpI2VW6I
   8n1NvtiI6RlCS/W/DrptqfIBwJqBXbuvAKit5Pm27DCP/QUJPWJzquzBz
   w=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: y5+XZMR1l0qtGF3CL4avDFiiHA9lrHK0o2Ols3lD35qWqlcjV24A7JEwqWAmgYVx9+VUytSGyb
 jjUwiHDkPvtSnKXX90zeqkgiTDy+AV0btKfdDnlNbRqwMeLHmdJ03CSDNNsWpGfFyds1sqc1/v
 OAFog/pka4iylPOIb6E6A6GZUTnjRAR8da816M6zdp21qONAMx5rN3gtAAPNx4QePy6eQg8ZOK
 +wHdzzqmH/wQ2MoG/WZbx+ek5IMafUBnvjTs+FBSoqUCir4RHCXwr/3d7KN/Pn1FDUJSmoxhMz
 6rAjXbkDzdfVAGo1+2pRyfx0
X-SBRS: 5.1
X-MesageID: 56977856
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LiE0iKuLfOEM7z7AFN66qMQ/K+fnVLpZMUV32f8akzHdYApBsoF/q
 tZmKWiAaPqOZjT1edxzaIzj/BkEuZTdn4NjTVE5+H1gFCoa+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YPhWGthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Nplk7O/FT4XOojwluUTajhqSCA9D5dY0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY254fQqmOO
 pRxhTxHNxfBQiRmZ3QrLpMQo/eZl0fmVj1VgQfAzUYwyzeKl1EguFT3C/LFd9rPSchLk0Kwo
 mPd43+/EhwcLMaYyzeO7jSrnOCntTz/cJIfEvu/7PECqF+Zy3EXCRYWfUCmuvT/gUm7M/pHI
 lEQ0jojq+417kPDczXmd0Tm+jje5EdaAocOVb1hgO2Q9kbKyyC2CTQ9cDpkVNInuvYXd2crl
 W2zgfq8UFSDr4apYX6a876Vqxa7Ni4UMXIOaEc4cOcV3zXwiNpt10ySF76PBIbw14SoQm+on
 1hmuQBn3+1L5fPnwZlX6rwub9iEgpHSBjA46QzMNo5OxlMoPdX1D2BEBLWy0BqhEGp7ZgXe1
 JTns5LHhAzrMX1rvHbTKAnqNOv4j8tpyBWG3TZS82AJrlxBAUKLc4FK+y1ZL0x0KMsCcjKBS
 BaN4l4Bu88NZCH2PfAfj2eN5yICl/aI+TPNDai8UzazSsIpKF/vEN9GPBb4M5/RfLgEzvhkZ
 MbznTeEBncGE6V3pAdatM9GuYLHMhsWnDuJLbiilkzP+ePHOBa9FOdUWHPTP7tRxP7V/23oH
 yN3apLiJ+N3C7alPEE6MOc7cDg3EJTMLcuq8JcPJrLYeVcO9aNII6a5/I7NsrdNxsx9vuzJ4
 mu8Sglfzl/+jmfAMgKEdjZob7aHYHq1hStT0fUEMQn61n49T5yo6atDJZI7caN+rL5ozOJuT
 ulDcMKFW6wdRjPC8jUbTJ/8sI09K0j72VPQZ3KoMGolYpptZw3V4du4LAHhwzYDU3isvswkr
 rz+ig6CGcgfRx5vBdr9Ye60yw/jpmAUne9/BhOaItRadEj23pJtLij90q0+L80WcE2RzTqGz
 QeGRxwfoLCV8YMy9dDIg4GCrpuoTLQiThYLQTGD4O/vZyfA/2elzYtRa8qyfGjQBDHu5aGvR
 eRJ1PWgYvcJq0lH7thnGLFxwKNgu9a2/+1Gzh5pFWngZkiwDu8yOWGP2MRCu/EfxrJdvgfqC
 EuD9sMDZOeMMcLhVlUQOBAkfqKI0vRNwmve6vE8IUPb4i5r/eXYDRUObkfU0CENfqFoNI4Fw
 Ps6vJ9E4gOyvRMmL9Kag30G7G+LNHEBD/0qu5xy7FUHUeb3JoWuuaDhNxI=
IronPort-HdrOrdr: A9a23:Hu6fJK8W/M1rCx6l5Xtuk+FEdb1zdoMgy1knxilNoENuHPBwxv
 rAoB1E73PJYVYqOE3Jmbi7Sc+9qFfnhONICO4qTMuftWjdyRGVxeRZjLcKrAeQfhEWmtQtsZ
 uINpIOd+EYbmIK/foSgjPIa+rIqePvmMvD6Ja8vhUdPj2CKZsQlDuRYjzrY3GeLzM2fKbReq
 Dsgfau8FGbCAoqh4mAdzQ4dtmGg+eOuIPtYBYACRJiwA6SjQmw4Lq/NxSDxB8RXx5G3L9nqA
 H+4kPEz5Tml8v+5g7X1mfV4ZgTsNz9yuFbDMjJrsQOMD3jhiuheYwkcbyfuzIepv2p9T8R4Z
 XxiiZlG/42x2Laf2mzrxeo8w780Aw243un8lOciWuLm72weBsKT+56wa5JeBrQ7EQt+Ptm1r
 hQ4m6fv51LSTvdgSXU/bHzJlFXv3vxhUBnvf8YjnRZX4dbQqRWt5Yj8ERcF4pFND7m6bogDP
 JlAKjnlbdrmGuhHjLkV1RUsZmRtixZJGbDfqFCgL3a79FupgE786NCr/Zv2Uvp9/oGOtB5Dq
 r/Q+JVfYp1P7orhJRGdZE8qPuMex7wqC33QRavyHTcZeo60iH22tTKCItc3pDcRHVP9upqpK
 j8
X-IronPort-AV: E=Sophos;i="5.87,206,1631592000"; 
   d="scan'208";a="56977856"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=W3Mt3+VFqHVtDR6oeNjrXP2lku7gxIVU6ZAmN+WE1MeeXkfOzYJkfv9AwZoXbM18TH2/t8BtljHa8tEs7UVIibWOGGQ4Z5cJWiClUcrbRuuoZxXh5EuY+MFt8kvfsAh6SjsVlhMxRrSC9P31zfrHuvduQHFJkCJ09xi50gxSZxdanp2E5MUmoix3w3wgz9BhVvHAZaFCkWZZC5Sxzdht1koKZkQTkqSas89lcEsAsWE4gW31rf/DCMmf0T8Ku2xovAENk7l69JiRBuV1wjR+xsY2lL61SkuWzSIfv30zAAoeO82ncMf3pavUfiv2872j7bXAWXv5ZgjvKAJUXfmwWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7E24NxF7hiAupysPcbVLz2RmMrpixKrNtgEVV8OTdfA=;
 b=S8bPM+dmenGnA0JkqpNCzwQ6kz/QcMZ8PIU+mYRMrH30Vqn/26P8cjdQ2UqytcxzsL/Wet6fxaLhc5nRxChj0lrISdyOvTwytTWOsbZ4/zt9+R1Q/2L/pck7+7qQ5EN8VUe6OH1encxgYHNdkEevQVvrvB/Jwm/inmHX4Uw5RUBbbDM8x2LzsUmtahi2VJGEjmUnashytodspuSjs3WDTVDXvPi1Ns/YhvT6cmH1+sNB00CEvwrY5U1d+Ik4ZIjWmFHp8ivuD7c1suGz58QxvR0m7+VxvGULRjWkORgnDHF8cqpDxfOExAHgQ5CHtZCSMATtk5C3hRy7ozJ2pEEhNw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7E24NxF7hiAupysPcbVLz2RmMrpixKrNtgEVV8OTdfA=;
 b=BN9s7NXRg3SD2AqlKbwm4+OWwNMyyJSoOO3cqiXDlWrHzZiJoA3ZrIJggLU5f8Su7RYz/YiezLLAd+HeZJwJ0pCs5hSsxiDac93oah5XpFby110JF43Q+pwP9U0ROIPXDPCqB0tk8OryuUUnXrzQyLg4Q4O4yPXb+oIBfbNzacw=
Date: Wed, 3 Nov 2021 18:00:08 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Paul Durrant <paul@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: Re: [PATCH v2 3/3] AMD/IOMMU: iommu_enable vs iommu_intremap
Message-ID: <YYLAGMIBjYGGPS1e@Air-de-Roger>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <ff7b68b2-5bba-2927-e3f0-f3062862c466@suse.com>
 <YXaGxX3J1aB39mSG@MacBook-Air-de-Roger.local>
 <dd2929fc-dc1a-1c16-5954-6894766d9dda@suse.com>
 <YYEa6HQGR1cHJBw/@Air-de-Roger>
 <bcaf1547-98ae-923f-5be8-50156e318bf4@suse.com>
 <YYKldeiym0fLWTsa@Air-de-Roger>
 <ebe6b551-2302-830d-72ea-8d4fae1c411d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ebe6b551-2302-830d-72ea-8d4fae1c411d@suse.com>
X-ClientProxiedBy: FR0P281CA0061.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:49::16) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: cde0f117-fcb1-4a73-c8c6-08d99eeb66d7
X-MS-TrafficTypeDiagnostic: DS7PR03MB5445:
X-Microsoft-Antispam-PRVS: <DS7PR03MB544584A15F46A036002931868F8C9@DS7PR03MB5445.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Y0hymv8NTBuSywX/esKoVOupkcy33UrtbrYaBoGqLYfMAIXEuGkF+DFPvjK6sCaOxZtSk79XL2Pos7W57wS5R3i5bgXOeU+xqsBGGExGvOOQTFzsHaW0hj0VjXMsFjzEJmJrps5/3csItAXZCvfiYVf9/Lb62rLJ59ABbRkpixuZ/lf/TK0SsvbxmCnhGziJXa/+3/CmqxehZ+RX2fhs4R2vILpCqVrxJOXsonduUbJ05tlFEFNFEZ5y/TVA3Sd9wjqOHQN6C2u6ceMW8DbCdqgt2p4Lh8P1IC0YbjBOXv/lNTDcVi0j0zIXafp4EkpTsONE1K85o9TflvmM9ZQQ4k3TACYaay+Fqvu01CNY7dni0vP/wbKzhd4c7QnXOfO/sGWCn91SUlNspPtYw8Anqv7gew/Bc8/v1k9PbLG5w6Jsg3NZJb2/+nQKV/bWRT7scgHLSZNAYrDWgbYfXDeSrssPzem6Twqk8UhXbbMSkJn56Mvr8peivOPR1lLYRM3yKfDN35ysQsF1E18c5JH2LASUq1NTjqqVjHyIQuEz8sQYYuV8jobDi39CqthMHmbTWhWliGai3binxfAzVD3BshWLk18Ew+J6EM4J7g1vhvBhBzGveArH/zoySTmgB90J7MRlbJ9tiolWqq+oXjU8FA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(6486002)(85182001)(2906002)(9686003)(8936002)(66946007)(66556008)(956004)(66476007)(86362001)(6496006)(6916009)(508600001)(82960400001)(83380400001)(186003)(316002)(5660300002)(33716001)(54906003)(4326008)(8676002)(26005)(53546011)(38100700002)(6666004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NFR0SXFCei9BWmthekN3SUN1Z0R6NHRTZThwZ05YZWNvVXZxMVA1c1ZyUkNX?=
 =?utf-8?B?cGZPZVF2MEVRS09xcllQVTV0NVZSZmwvTGE4N0ROVnlkZ05mS2lsNlJKSGRV?=
 =?utf-8?B?TjJHQ3k0ZnVXVmhFK2lYS0k3SmtMMzRwQjhwNklFVExSSTVsTnRTcDRxaHF4?=
 =?utf-8?B?VlB0KzBzdzA1aWl4a3ErdmFDalliRmxQUy8rVURPZ1NMRUx0eG1MazJrSGtN?=
 =?utf-8?B?L3lJcDBmNUZZM0FLT2lmSHk5UGdhNnJKa2N2NHJub2hBTFF4OFMrcHFsZFFh?=
 =?utf-8?B?R2dKbmpGaGdmUnJyUDdUbzRJT1VJOUJJUjhqQjlyZVdJenJFMzdETUs1MWds?=
 =?utf-8?B?V1hXdU9LTEhpK0JZTk1JZTV6eDY3QWQ1WitBSWdZeXRCR0JHcFl6OG9Pb28v?=
 =?utf-8?B?SStuQlh4UTZURUI3bnlzT0grTWgyeGVZNWdPZ3hpbzZVYXV0THUycFg4OXBz?=
 =?utf-8?B?NSt1dUZoZnZHeFlwYVc3Q1g3V2pwMkRNbld4aERqYzlrYzN3LzQ0QUp3bHhm?=
 =?utf-8?B?bnBDd1lQQXNkb2RMeTQraWozcTNiUWJmTG9LRFVNYk01OEhWOG9jY3ZpOE1H?=
 =?utf-8?B?VzhlZlFNanBYTjEvRVloa0h5U1B6aUtlWEtmSExjUXZJTExWVzErL0NRQTVt?=
 =?utf-8?B?cFJXKzZMVXR3OCtOWVB6MTBLeFM0OWQxMnluNk5VWEpaNm5aUExxTzNxK1o5?=
 =?utf-8?B?L3lKVWVKaWUxRlJwbWYwTTIrelFMdzh2VWdDUXMvTlZQUjM0V2F6Uld3TDBJ?=
 =?utf-8?B?cHhpVjByNldQbDJZWVhYQ1k1NGI1ZEcwVDhTNlpRcHpXNUNOYTBkR01MSFZJ?=
 =?utf-8?B?SlFUYlRLS3dwMkU2Yk1PSkI3a25FNk1wVS95a1hYcmI0ZS8ydzVRV0xrc2JK?=
 =?utf-8?B?aW03N2RXOHQ1MkRQVks4RWpPQms0TzNIQnBINmwrUC8xVXQxTGxzWHJGZ2hT?=
 =?utf-8?B?N3cvUHZ5WlFlVzVQZW5sTnNMVnN4NFk0eGxMbGV5WWc4U1NseTNSUjltbGFr?=
 =?utf-8?B?N2RxUGdHRHlCNWpmUUNhL3EwcXlzcUVXQnFKbTFvTlZSNEkxL0RPc2pjcllF?=
 =?utf-8?B?b2N1bFhuNTduWklQS0RPc3ErZjVwZUVJb1ZaQU9uWkpYVStDSlV4WmFucG42?=
 =?utf-8?B?L2tUbktCamxQTGRMeERQOVRtaFZBS0srY1dsODNRK3J0STA0T3ljTEtrcDVW?=
 =?utf-8?B?K0FoRlc1Q2thbXpMYWNmSzh2UzhxMTVpNGpkOXJ4U0tmamp0dHJrdGRsSnRm?=
 =?utf-8?B?eUlXWXRUYjl3bTRMRVArclNZSGg4cEN1S3R1enQxZkpxQ2dNdHVjajhvYVBF?=
 =?utf-8?B?cjUzazhJUjVsVEd0NTIrSXBSUWtVeWFTY1dEa2RQZW9kUXJWb2ZOSTF1d1VV?=
 =?utf-8?B?a1VOWDVPbVg3cVhEV0pPNlhFblNzSWpGZWxGTXRRN3RwaktGMSthR1ZjWGp4?=
 =?utf-8?B?MllwMTB6V2I5VTdUOWpwb3dEem05KzJObTltSjFjQm5rWkRGYURjb281QTJE?=
 =?utf-8?B?UDJROEIwREJ5RUtCSmNvWTYzSWVEeUNDZnRMdXp5aVZBZWhnNzFkaEQ5Zkow?=
 =?utf-8?B?cUhNRXJhTUxudVNLR0hRZzRCK09VQVJhQU0rcnFlQ1hVZktKd0l0YUkyek9I?=
 =?utf-8?B?MTV4MTlackRYQVJBTkx4ZVdzdkI0KytvaStQbTNvQ2wvNDNQaEtBbExtbS80?=
 =?utf-8?B?Z0Z2Uk4vZkhXZmRCaGsreW16K2dPSlFRaW5GcWY4RmhvaGthVWtuY1cvR2xM?=
 =?utf-8?B?Q1lQUm9XMFl2RVBDMzloL2RvaVlqUzhIV0Zla1MvajBVWndmL0ZuSThGMm1M?=
 =?utf-8?B?Tzd6OS93VndIaEQxOFRsQUZZTUVJc3FWb1I2YkN0QTYzZ3dvMkRaWTlCanY0?=
 =?utf-8?B?ZytkMVlMSE5BWDFvYkdyV3pwVXUzTXg0K3Mra3BFSXp5ZEJvSVh2SER4bUVP?=
 =?utf-8?B?dnQ2MEJNRW5MSEhqR3BsUWxHOXhPeUEwOVY5aDl1RzI1UEJsaWN0OVhxM1VG?=
 =?utf-8?B?cFlTUFcvWUxzVlRpSnpmQVA0ZzloclRhN2w1Rmg1YTBaRGZFOGtyNDFZTGhO?=
 =?utf-8?B?UGZ6emgwaXFzZnJkNERVckVOU3FmMDI3V3dCdmc1M0VrWnBTQmhpaWVQdU9M?=
 =?utf-8?B?bWZJTWRPYkdrdU9DNGhHdWJLNDc3dFRXZ01rdzdJR2VOQU94WEk2RHFqVlo1?=
 =?utf-8?Q?VbFl2qckgEOEFobZjazfQ2s=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: cde0f117-fcb1-4a73-c8c6-08d99eeb66d7
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 17:00:13.1169
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wOaW2mSruF8egq/PGu/uU3Te6qDT9TELAqT6oDxPhG6OhLJVGj8IUEGHSEs92aO8E/dUcGhDf8WTAgHxxPXbfw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5445
X-OriginatorOrg: citrix.com

On Wed, Nov 03, 2021 at 04:15:52PM +0100, Jan Beulich wrote:
> On 03.11.2021 16:06, Roger Pau Monné wrote:
> > On Wed, Nov 03, 2021 at 10:46:40AM +0100, Jan Beulich wrote:
> >> On 02.11.2021 12:03, Roger Pau Monné wrote:
> >>> On Tue, Nov 02, 2021 at 11:13:08AM +0100, Jan Beulich wrote:
> >>>> On 25.10.2021 12:28, Roger Pau Monné wrote:
> >>>>> On Thu, Oct 21, 2021 at 11:59:02AM +0200, Jan Beulich wrote:
> >>>>>> The two are really meant to be independent settings; iov_supports_xt()
> >>>>>> using || instead of && was simply wrong. The corrected check is,
> >>>>>> however, redundant, just like the (correct) one in iov_detect(): These
> >>>>>> hook functions are unreachable without acpi_ivrs_init() installing the
> >>>>>> iommu_init_ops pointer, which it does only upon success. (Unlike for
> >>>>>> VT-d there is no late clearing of iommu_enable due to quirks, and any
> >>>>>> possible clearing of iommu_intremap happens only after iov_supports_xt()
> >>>>>> has run.)
> >>>>>>
> >>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>>>>> ---
> >>>>>> In fact in iov_detect() it could be iommu_enable alone which gets
> >>>>>> checked, but this felt overly aggressive to me. Instead I'm getting the
> >>>>>> impression that the function may wrongly not get called when "iommu=off"
> >>>>>> but interrupt remapping is in use: We'd not get the interrupt handler
> >>>>>> installed, and hence interrupt remapping related events would never get
> >>>>>> reported. (Same on VT-d, FTAOD.)
> >>>>>
> >>>>> I've spend a non-trivial amount of time looking into this before
> >>>>> reading this note. AFAICT you could set iommu=off and still get x2APIC
> >>>>> enabled and relying on interrupt remapping.
> >>>>
> >>>> Right, contrary to ...
> >>>>
> >>>>>> For iov_supports_xt() the question is whether, like VT-d's
> >>>>>> intel_iommu_supports_eim(), it shouldn't rather check iommu_intremap
> >>>>>> alone (in which case it would need to remain a check rather than getting
> >>>>>> converted to ASSERT()).
> >>>>>
> >>>>> Hm, no, I don't think so. I think iommu_enable should take precedence
> >>>>> over iommu_intremap, and having iommu_enable == false should force
> >>>>> interrupt remapping to be reported as disabled. Note that disabling it
> >>>>> in iommu_setup is too late, as the APIC initialization will have
> >>>>> already taken place.
> >>>>>
> >>>>> It's my reading of the command line parameter documentation that
> >>>>> setting iommu=off should disable all usage of the IOMMU, and that
> >>>>> includes the interrupt remapping support (ie: a user should not need
> >>>>> to set iommu=off,no-intremap)
> >>>>
> >>>> ... that documentation. But I think it's the documentation that
> >>>> wants fixing, such that iommu=off really only control DMA remap.
> >>>
> >>> IMO I think it's confusing to have sub-options that could be enabled
> >>> when you set the global one to off. I would expect `iommu=off` to
> >>> disable all the iommu related options, and I think it's fair for
> >>> people to expect that behavior.
> >>
> >> It occurs to me that this reply of yours here contradicts your R-b
> >> on patch 1, in particular with its revision log saying:
> >>
> >> v2: Treat iommu_enable and iommu_intremap as separate options.
> > 
> > Right, I see. patch 1 uses
> > 
> > if ( !iommu_enable && !iommu_intremap )
> >     return;
> > 
> > Which I think should be:
> > 
> > if ( !iommu_enable )
> >     return;
> > 
> > Sorry I didn't realize in that context. I think we need to decide
> > whether we want to fix the documentation to match the code, or whether
> > we should fix the code to match the documentation.
> 
> Except that adjusting the conditional(s) in patch 1 would then
> be a functional change that's not really the purpose of that
> patch - it really only folds acpi_ivrs_init()'s and
> acpi_parse_dmar()'s into a vendor-independent instance in
> acpi_iommu_init().

Right.

> Alternatively we could adjust the conditional
> here (in patch 3), but that would feel unrelated once again, as
> this change is supposed to be AMD-specific.

Depending on what we end up doing regarding interrupt remapping being
disabled with iommu=off we might want to rework patch 3.

> > My preference would be for the latter, because I think the resulting
> > interface would be clearer. That will require introducing a new
> > dmaremap iommu suboption, but again I think this will result in a
> > better interface overall.
> 
> I guess we could do with a 3rd opinion: Paul, any chance?
> 
> In any event I hope that we can agree that patches 1 and 2 are
> okay for 4.16 in their present shape, and patch 3 (plus whichever
> further ones) would better wait for post-4.16?

I consider the issues either a bug in the documentation or the code,
so it's likely I would suggest whatever fix we end up doing to be
backported. At which point it might make sense to add to the release.

I don't think it should be a blocked though, as this hasn't been
introduced in this release.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 18:11:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 18:11:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221103.382633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miKim-0003xn-N2; Wed, 03 Nov 2021 18:10:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221103.382633; Wed, 03 Nov 2021 18:10:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miKim-0003xg-KA; Wed, 03 Nov 2021 18:10:48 +0000
Received: by outflank-mailman (input) for mailman id 221103;
 Wed, 03 Nov 2021 18:10:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miKik-0003xa-Lp
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 18:10:46 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miKik-0006g9-IX
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 18:10:46 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miKik-0006Py-Gy
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 18:10:46 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miKii-0000Ll-At; Wed, 03 Nov 2021 18:10:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Subject:CC:To:Date:Message-ID:
	Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=4pr86glgSNDczjsEO/ivaBNBPOwu/35tHqCoVrWtdHk=; b=lHFN7fzngX/sWK5rHaDeImT6UQ
	b4YAUp++2W5t6qrS9DP2N9TAgWm4H7Li1lKnNVylXDWK/zCluM7dSwbXdnnvtpKXPHVhx8Cw20roD
	dDpycMhILVyQmwjFKyUeyES+uq1YuY4ncWJijtN6O2lJrPCvdoxDkvS/4EQhoomqlkT8=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24962.53411.573690.15547@mariner.uk.xensource.com>
Date: Wed, 3 Nov 2021 18:10:43 +0000
To: xen-devel@lists.xenproject.org
CC: Anthony PERARD <anthony.perard@citrix.com>
Subject: qemu build failure on release tarball with python <= 3.5
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

The RC1 release tarball failed its test build on the rather old install
I was using.  I decided to release it anyway, but ideally this would
be improved.

The problem is that the version of qemu upstream we are now using
requires Python 3.6.  We don't want to downgrade it and trying to
improve the version support upstream is not going to be practical.

Most distro users won't use the qemu we ship.  It's there for the
benefit of users, to make sure we can provide one that is known to be
working.

It seems like the best available alternative for users who cannot
upgrade their python3 is to use --with-system-qemu and hope that the
system qemu works well enough.  (We have quite loose coupling here.)

I will look into improving the error handling, to try to give users
who encounter this problem some advice and save they trying doomed
approaches to fix it.

In the meantime, with my release technician hat on, I will do the test
builds in an environment with Python 3.6.

IRC conversation below.

Ian.

17:08 <@Diziet> anthonyper: My test build for the RC1 failed because I did it 
                in an environment whose python3 version was 3.5.3
17:08 <@Diziet> I decided to release it anyway.
17:08 <@Diziet> Now I debug it I discover that this is because qemu upstream 
                needs python 3.6
17:10 <@Diziet> Python 3.6.0 was released upstream a shade less than 5ya
17:11 <@Diziet> What is your opinion about this situation ?  (Feel free to cast 
                aspersions.)
17:13 <anthonyper> people can build older version of QEMU if their build 
                   environment is too old to build recent version.
17:13 <@Diziet> And not use the one we supply, you mean.
17:13 <@andyhhp> hmm - current CI has a check for Py3.5
17:13 <@andyhhp> so apparently we have no containers using Py3.5
17:14 <anthonyper> ah, I forgot we include QEMU in the release tarball :-(
17:15 <@Diziet> That is useful to people getting our stuff directly because 
                upstream qemu often breaks :-(
17:15 <anthonyper> Do you mean that released version of QEMU often break?
17:16 <@Diziet> I think we have sometimes failed to get regressions fixed 
                before upstream qemu released with them.
17:17 <@Diziet> (I would have to search through my records to be sure.)
17:17 <@Diziet> I doubt we want to try to fix our tarball so that it can build 
                that qemu with older python.
17:19 <@Diziet> That leaves: (i) don't put qemu in the tarball; (ii) ship it as 
                is and expect users with old python to disable it (iii) same 
                but disable the build by default
17:19 <@Diziet> In any case I should do the test build with newer python.
17:19 <@Diziet> Right now the failure mode is very poor: it runs through our 
                configure, and then our make runs qemu configure which bombs out
17:19 <anthonyper> I usually keep an eye on osstest flight, and would try 
                   harder to get QEMU fixed before it releases. But yes, it can 
                   happen that a release is broken. Hopofully, that doesn't 
                   happen too often.
17:22 <@Diziet> Do you see any other options besides my (i),(ii),(iii) above ?  
                Which do you think is best ?
17:22 <@Diziet> (I guess we could make whether we build qemu depend on the 
                python version we find but omg that is going to be fragile and 
                also quite surprising to people)
17:25 <anthonyper> I guess (ii) is fine for now. (i) would probably be best, 
                   but we would probably want to change the way we build xen 
                   and the tool I think. (iii) disable qemu by default would be 
                   supprising as well, I guess.
17:25 <anthonyper> I wounder how many distribution would have a separate build 
                   for qemu, and thus not using xen's tarball for qemu.
17:27 <anthonyper> I don't think we can disable qemu's build depending on 
                   python version, we might be building a qemu that have 
                   different requirement.
17:31 <@Diziet> I think distros will generally want to have only one qemu.
17:31 <@Diziet> Certainly that's true of Debian.
17:32 <@Diziet> So they won't use ours.  It's the people just getting our 
                tarball that might need our help.  If it won't build hopefully 
                their distro qemu will work and they can use --with-system-qemu
17:34 <@Diziet> I wonder if we can improve the UX here.  Ideally we would run 
                the upstream qemu configure as part of our configure but since 
                our Makefile is the thing which clones it that's not so easy.
17:34 <anthonyper> also, we need to start building the toolstack anyway (libs 
                   and include) before to call QEMU's configure.
17:38 <@Diziet> Mmm, yes
17:38 <@Diziet> And our configure doesn't know what version of qemu's it's 
                going to get
17:40 <@Diziet> Maybe I can improve the error message at least.
17:40 <@Diziet> anthonyper: Thanks for your help.  I will go away and think 
                about it.


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 18:17:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 18:17:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221110.382645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miKpM-0004dL-G6; Wed, 03 Nov 2021 18:17:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221110.382645; Wed, 03 Nov 2021 18:17:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miKpM-0004dE-C5; Wed, 03 Nov 2021 18:17:36 +0000
Received: by outflank-mailman (input) for mailman id 221110;
 Wed, 03 Nov 2021 18:17:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1miKpL-0004d8-BA
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 18:17:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1miKpJ-0006o1-LR; Wed, 03 Nov 2021 18:17:33 +0000
Received: from [54.239.6.186] (helo=[192.168.4.55])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1miKpJ-0006rc-FH; Wed, 03 Nov 2021 18:17:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=7Fe2Vk7Bbp+o4e+kEkMw0HfqrGYbgOAcS/y4c7VJSU0=; b=xxviETfNVqZrgqEOgNbYj1ywd+
	rriKUIP71Qck2JIApY6AuI1p+NOgHHZX2cdk9OGJvg3qnn4XBlQ1Q8OgHPNAeAJ3W7sIwVeHoqH/U
	RCH0nLDdtgnO6UFrMJk0K2/QkK5bynB+R8YjJ8sS2M0U52uxFcq/zpFNkwIb1UH1SZPk=;
Message-ID: <568d087e-d740-47e2-173e-34915f645a76@xen.org>
Date: Wed, 3 Nov 2021 18:17:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH-4.16 v2] xen/arm: fix SBDF calculation for vPCI MMIO
 handlers
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "iwj@xenproject.org" <iwj@xenproject.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211102112041.551369-1-andr2000@gmail.com>
 <alpine.DEB.2.21.2111021545130.18170@sstabellini-ThinkPad-T480s>
 <4559d7c6-7a03-54c0-ca93-9319cc7989d5@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <4559d7c6-7a03-54c0-ca93-9319cc7989d5@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

On 03/11/2021 12:08, Oleksandr Andrushchenko wrote:
> 
> 
> On 03.11.21 00:47, Stefano Stabellini wrote:
>> On Tue, 2 Nov 2021, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> While in vPCI MMIO trap handlers for the guest PCI host bridge it is not
>>> enough for SBDF translation to simply call VPCI_ECAM_BDF(info->gpa) as
>>> the base address may not be aligned in the way that the translation
>>> always work. If not adjusted with respect to the base address it may not be
>>> able to properly convert SBDF.
>>> Fix this by adjusting the gpa with respect to the host bridge base address
>>> in a way as it is done for x86.
>>>
>>> Please note, that this change is not strictly required given the current
>>> value of GUEST_VPCI_ECAM_BASE which has bits 0 to 27 clear, but could cause
>>> issues if such value is changed, or when handlers for dom0 ECAM
>>> regions are added as those will be mapped over existing hardware
>>> regions that could use non-aligned base addresses.
>>>
>>> Fixes: d59168dc05a5 ("xen/arm: Enable the existing x86 virtual PCI support for ARM")
>>>
>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
>>
>> Also, Ian already gave his release-ack.
> Thank you,
> Do I need to resend the patch with Acks? Or hopefully those can be applied
> on commit?

I have committed with the two tags applied.

Next time, please remember to carry Release-acked-by tag.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 18:40:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 18:40:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221118.382660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miLBi-0007lY-9t; Wed, 03 Nov 2021 18:40:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221118.382660; Wed, 03 Nov 2021 18:40:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miLBi-0007lR-66; Wed, 03 Nov 2021 18:40:42 +0000
Received: by outflank-mailman (input) for mailman id 221118;
 Wed, 03 Nov 2021 18:40:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vzBQ=PW=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1miLBh-0007lL-72
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 18:40:41 +0000
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com
 [66.111.4.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 89dbeffd-3cd5-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 19:40:39 +0100 (CET)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44])
 by mailout.nyi.internal (Postfix) with ESMTP id B55FC5C0191;
 Wed,  3 Nov 2021 14:40:37 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute4.internal (MEProxy); Wed, 03 Nov 2021 14:40:37 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 3 Nov 2021 14:40:36 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89dbeffd-3cd5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-transfer-encoding:content-type
	:date:from:message-id:mime-version:subject:to:x-me-proxy
	:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=gVU9tB
	42BsY+gMOp4NsCDMzjhsyHYtjFguFfI9f80Wg=; b=ml5mUmEAHe7+lWKSmf89GZ
	2Ys0ZfPZHkmKjQ1LLMmBPKu7C2Eyz+p6M6XwjNez2/NClaZgdmYavPLRNQyJCNP1
	3zjStRnHK7Sd1vRf9RwnTonlT7DK36z8O2zFFRwtK0fL5aT0XuFPANiwybQa44A/
	CEq0R7CoX8y2ZJY992EtaSipVE6aVnA3XpUWCLyL+FIL2iKuT7NH4Fk/sruSWU4a
	/EqHpNTCJg5Sweh36UAG7sOUXszbp/VrsBDSU20hRy353QXgyEFf7UMoY36v4Te9
	0jXTWBsYPuuMmYdWD67Rb7MRH9se+pZZWPL/DcFSljdXQbw2srwsIcC1dGlq/pog
	==
X-ME-Sender: <xms:pdeCYchd0SuPwcyMrkGZP5GlSs8C3UyBDh5ClqeeIxak1ILd73828A>
    <xme:pdeCYVC6vO5AqzNqJeWEMoVZ8Ij-rriozjyD_xr_pQg68FY7brl7KLlLyzcvQ35FF
    JMM0XvMOZ251A>
X-ME-Received: <xmr:pdeCYUGM3054m9NDNES5IA9bXmF0A5nmMllU2d4ArI1BCQkxdliz_eiH0Td8GDQAB7gxD8HArHmACn8HlZOpDDx2dRO3eqNkj5_RTERoogktuYSdIw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrtddvgdduuddvucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhephffvufffkffogggtohfgsehtkeertdertdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeetgeet
    keeukeffhfejueeludehtedtkeeuiedtgffgtdfhveefueeiiefhudehgeenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:pdeCYdSJAFwrH13tn3_xLf6CXsOtiMci8TfXIHScrQlPlPATzfnM3A>
    <xmx:pdeCYZzrwsus5y_vPDayyw546y5Fbt7oDnUyd5Bo78hSioZWv6z7og>
    <xmx:pdeCYb4VY97MfESZdN6ywUfLsVPgoAQrA5-jBScwcZUHWDniemteZw>
    <xmx:pdeCYbsX-XicQAaFcDLosChEP_iDw_cunfUGT8J_zrKfreW1gRLgcw>
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Ian Jackson <iwj@xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH-4.16 v2] x86/xstate: reset cached register values on resume
Date: Wed,  3 Nov 2021 19:40:20 +0100
Message-Id: <20211103184020.1276465-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.31.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Organization: Invisible Things Lab
Content-Transfer-Encoding: 8bit

set_xcr0() and set_msr_xss() use cached value to avoid setting the
register to the same value over and over. But suspend/resume implicitly
reset the registers and since percpu areas are not deallocated on
suspend anymore, the cache gets stale.
Reset the cache on resume, to ensure the next write will really hit the
hardware. Choose value 0, as it will never be a legitimate write to
those registers - and so, will force write (and cache update).

Note the cache is used io get_xcr0() and get_msr_xss() too, but:
- set_xcr0() is called few lines below in xstate_init(), so it will
  update the cache with appropriate value
- get_msr_xss() is not used anywhere - and thus not before any
  set_msr_xss() that will fill the cache

Fixes: aca2a985a55a "xen: don't free percpu areas during suspend"
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v2:
 - adjust xss init value per Jan request

For 4.16: this unbreaks S3 resume, it was posted initially back in
August and is shipped in Qubes since September (although backported to
4.14, not unstable) with no reported regressions.

Cc: Ian Jackson <iwj@xenproject.org>
---
 xen/arch/x86/xstate.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 6aaf9a2f1546..a16dfbb3877b 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -642,6 +642,13 @@ void xstate_init(struct cpuinfo_x86 *c)
         return;
     }
 
+    /*
+     * Clear the cached value to make set_xcr0() and set_msr_xss() really
+     * write it.
+     */
+    this_cpu(xcr0) = 0;
+    this_cpu(xss) = ~0;
+
     cpuid_count(XSTATE_CPUID, 0, &eax, &ebx, &ecx, &edx);
     feature_mask = (((u64)edx << 32) | eax) & XCNTXT_MASK;
     BUG_ON(!valid_xcr0(feature_mask));
-- 
2.31.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 03 18:42:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 18:42:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221127.382670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miLDa-0008Py-P3; Wed, 03 Nov 2021 18:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221127.382670; Wed, 03 Nov 2021 18:42:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miLDa-0008Pr-Lr; Wed, 03 Nov 2021 18:42:38 +0000
Received: by outflank-mailman (input) for mailman id 221127;
 Wed, 03 Nov 2021 18:42:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miLDZ-0008Pl-9b
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 18:42:37 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miLDZ-0007D2-7i
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 18:42:37 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miLDZ-00007J-6F
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 18:42:37 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miLDV-0000QP-7c; Wed, 03 Nov 2021 18:42:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=KGl+pmkYP8R0jSZm+bqGERf5sIvPm5hZcdZp549tzZ0=; b=Ibf3oDC1jQlAqYSE/E8Wk9jeA5
	QL+7A0pztZZJLtmJvMDt2/Gs1ZAJ6w7TfniKTVPs1Qa8UXHbpaHNnrdX9CkFVCxXP9Rx9mQX2+M8t
	nCLB5lb5boivr0pehtRkxgwUAhofRzLn6gm/g+gghYdibpob2oDqWMpvkOuA2oUe3Iug=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24962.55319.231102.233448@mariner.uk.xensource.com>
Date: Wed, 3 Nov 2021 18:42:31 +0000
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
    Jan Beulich <jbeulich@suse.com>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH-4.16 v2] x86/xstate: reset cached register values on resume
In-Reply-To: <20211103184020.1276465-1-marmarek@invisiblethingslab.com>
References: <20211103184020.1276465-1-marmarek@invisiblethingslab.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Marek Marczykowski-Grecki writes ("[PATCH-4.16 v2] x86/xstate: reset cached register values on resume"):
> set_xcr0() and set_msr_xss() use cached value to avoid setting the
> register to the same value over and over. But suspend/resume implicitly
> reset the registers and since percpu areas are not deallocated on
> suspend anymore, the cache gets stale.
> Reset the cache on resume, to ensure the next write will really hit the
> hardware. Choose value 0, as it will never be a legitimate write to
> those registers - and so, will force write (and cache update).
> 
> Note the cache is used io get_xcr0() and get_msr_xss() too, but:
> - set_xcr0() is called few lines below in xstate_init(), so it will
>   update the cache with appropriate value
> - get_msr_xss() is not used anywhere - and thus not before any
>   set_msr_xss() that will fill the cache
> 
> Fixes: aca2a985a55a "xen: don't free percpu areas during suspend"
> Signed-off-by: Marek Marczykowski-Grecki <marmarek@invisiblethingslab.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
> Changes in v2:
>  - adjust xss init value per Jan request
> 
> For 4.16: this unbreaks S3 resume, it was posted initially back in
> August and is shipped in Qubes since September (although backported to
> 4.14, not unstable) with no reported regressions.

Thank you.  I went back and read the thread.  Thanks to everyone who
contributed there.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 18:44:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 18:44:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221135.382682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miLFm-0000c1-5J; Wed, 03 Nov 2021 18:44:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221135.382682; Wed, 03 Nov 2021 18:44:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miLFm-0000bu-1h; Wed, 03 Nov 2021 18:44:54 +0000
Received: by outflank-mailman (input) for mailman id 221135;
 Wed, 03 Nov 2021 18:44:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miLFl-0000bk-1E; Wed, 03 Nov 2021 18:44:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miLFk-0007F0-S4; Wed, 03 Nov 2021 18:44:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miLFk-0004vw-G2; Wed, 03 Nov 2021 18:44:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miLFk-0004NN-FX; Wed, 03 Nov 2021 18:44:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=iQJ2Y1XdtfE8MlWU8fL2gp22Bm0JpZ6/Y1MHVr2uvto=; b=ytCpgq4CBsKjbq3Jx4jUO62NdT
	4ifhu6XHzLR8m4HLS2RIzrhqI2rSn38EwFHSpo0H7W6HLcdn+jUpR7sdadctV9ltQIfZ9jWxUfDEb
	OD2BAYHy+VXNvKN+yclS3Wn9IteG/YczdVTYcgHBlbfFiUXH3K2+PxAOn8BrAeK4pF5k=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166030-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166030: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b2851580b1f2ff121737a37cb25a370d7692ae3b
X-Osstest-Versions-That:
    xen=b67f09721f136cc3a9afcb6a82466d1bd27aa6c0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 18:44:52 +0000

flight 166030 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166030/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  b2851580b1f2ff121737a37cb25a370d7692ae3b
baseline version:
 xen                  b67f09721f136cc3a9afcb6a82466d1bd27aa6c0

Last test of basis   166028  2021-11-03 10:00:28 Z    0 days
Testing same since   166030  2021-11-03 14:02:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Ian Jackson <iwj@xenproject.org>
  Juergen Gross <jgross@suse.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   b67f09721f..b2851580b1  b2851580b1f2ff121737a37cb25a370d7692ae3b -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 18:58:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 18:58:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221143.382696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miLSE-00026Q-BL; Wed, 03 Nov 2021 18:57:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221143.382696; Wed, 03 Nov 2021 18:57:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miLSE-00026J-8C; Wed, 03 Nov 2021 18:57:46 +0000
Received: by outflank-mailman (input) for mailman id 221143;
 Wed, 03 Nov 2021 18:57:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1miLSC-00026D-Nh
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 18:57:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1miLSC-0007SC-Dn; Wed, 03 Nov 2021 18:57:44 +0000
Received: from [54.239.6.186] (helo=[192.168.4.55])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1miLSC-00017d-7P; Wed, 03 Nov 2021 18:57:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=qZlAdGIcpw0bvP4NYJYm+JVlaFPs4whD1YUrtf25hFc=; b=B28KZAIKFLF0bhReK79F6vMSEz
	1nsMipqqmVF8AqDsnOFqyjSo/xQCHmLK4apl5ZAYcoJZtWdxpke95K0Mt0bDQOfNDP5AQIUNx3nvQ
	TQ3XfPhuPCFoAjjwOGdg0dZHUfqHNhcUK4qr5q0SsxLiXUnDHe0Ltiv+5qZPiELz6KMQ=;
Message-ID: <f4daf916-06bd-e002-8b74-be6fb45ef257@xen.org>
Date: Wed, 3 Nov 2021 18:57:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: Arm EFI boot issue for Dom0 module listed inside subnode of
 chosen
To: Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com
References: <8A60FA62-2BAA-400B-BB53-AB3E8CCA67F1@arm.com>
 <alpine.DEB.2.21.2111021625160.18170@sstabellini-ThinkPad-T480s>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.21.2111021625160.18170@sstabellini-ThinkPad-T480s>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Luca and Stefano,

On 02/11/2021 23:36, Stefano Stabellini wrote:
> On Tue, 2 Nov 2021, Luca Fancellu wrote:
>> Hi all,
>>
>> We recently discovered that there is a way to list Dom0 modules that is not supported by the EFI boot,
>> It’s happened browsing some Wiki pages like this one:
>> https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/Lager
>>
>> In that page the Dom0 modules are listed inside a subnode of the /chosen node:
>>
>> chosen {
>>
>>      modules {
>>          #address-cells = <1>;
>>          #size-cells = <1>;
>>
>>          module@0x72000000 {
>>              compatible = "multiboot,kernel", "multiboot,module";
>>              reg = <0x72000000 0x2fd158>;
>>          };
>>
>>          module@0x74000000 {
>>              compatible = "xen,xsm-policy", "multiboot,module";
>>              reg = <0x74000000 0x2559>;
>>          };
>>      };
>> };
>>
>> Instead for how it is implemented now in the EFI code and described in:
>> 1) https://xenbits.xen.org/docs/unstable/misc/arm/device-tree/booting.txt
>> 2) https://xenbits.xen.org/docs/unstable/misc/efi.html
>>
>> Only the following approach is supported, so Dom0 modules must be a direct child of /chosen:

Do you mean this is not supported after your changes or this was never 
supported? (see more below).

>>
>> chosen {
>>      #address-cells = <1>;
>>      #size-cells = <1>;
>>
>>      module@0x72000000 {
>>          compatible = "multiboot,kernel", "multiboot,module";
>>          reg = <0x72000000 0x2fd158>;
>>      };
>>
>>      module@0x74000000 {
>>          compatible = "xen,xsm-policy", "multiboot,module";
>>          reg = <0x74000000 0x2559>;
>>      };
>> };
>>
>> Is this a problem that needs a fix?
> 
> 
> Let me start by saying that I don't feel strongly either way, so I am
> happy to go with other people's opinion on this one.
> 
> In this kind of situations I usually look at two things:
> - what the specification says
> - what the existing code actually does
> 
> In general, I try to follow the specification unless obviously
> production code relies on something that contradicts the spec, in which
> case I'd say to update the spec.
> 
> In this case, although it is true that "modules" could be nice to have,
> it is missing a compatible string,

There are a few nodes in the DT without compatible (e.g. cpus, memory, 
chosen, soc). So I am a bit confused why this is a problem.

> it is not described in arm/device-tree/booting.txt,

Up until Xen 4.4, we had the following sentence:

"
Each node has the form /chosen/modules/module@<N> and contains the 
following properties:
"

This was removed by commit af82a77f3abc "xen: arm: remove innaccurate 
statement about multiboot module path". But, IMHO, the new wording still 
doesn't explicit says the module should be directly in /chosen.

> and it is only rarely used.

Hmmm... We have quite a few examples on the wiki that create 'module' 
under 'modules'. In fact, we have provided U-boot script [2] that can be 
easily re-used. So I would not call it rare.

> 
> For these reasons, I don't think it is a problem that we need to fix.
> Especially considering that the EFI case is the only case not working
> and it was never supported until now.

Hmmm... Looking at the implementation of efi_arch_use_config_file() in 
4.12, we are looking for the compatible "mutiboot,module". So I would 
say this is supported.

> If we want to add support for "modules", that could be fine, but I think
> we should describe it in arm/device-tree/booting.txt and also add a
> compatible string for it. For 4.16 

I think the first question we need to resolved is whether this has ever 
been supported in EFI. I think it was and therefore this is technically 
a regression.

That said, outside of the dom0less case, I don't expect any UEFI users 
will bother to create the nodes manually and instead rely on GRUB to 
create them. So I think breaking it would be OK.

I am less convinced about breaking it for non-UEFI case. That said, I 
think the documentation should be updated either way for 4.16 (the more 
if this has been broken as part of recent changes).

> I'd just update the wikipage.

There are quite a few places to update on the wiki page. AFAICT, they 
are all related to U-boot, so I don't think there is an action needed here.

Cheers,

[1]
[2] https://xenbits.xen.org/people/julieng/load-xen-tftp.scr.txt


-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 21:58:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 21:58:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221151.382710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miOGl-0001Ib-4F; Wed, 03 Nov 2021 21:58:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221151.382710; Wed, 03 Nov 2021 21:58:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miOGl-0001IU-1J; Wed, 03 Nov 2021 21:58:07 +0000
Received: by outflank-mailman (input) for mailman id 221151;
 Wed, 03 Nov 2021 21:58:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5wz0=PW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1miOGj-0001IO-MH
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 21:58:05 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d8f50f4-3cf1-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 22:58:03 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 6644C60EDF;
 Wed,  3 Nov 2021 21:58:01 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d8f50f4-3cf1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635976681;
	bh=MKD442ERJpq553kE5jnV7aSNqk9dxH5xuAEN+miOdOw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=QAgGRNUD0xjPNW4QG6ZHJVsqyQtwoytNhmUJcX+jSBq3sr+wkONcPnD7lzRGcssAH
	 nEBA0iLs7DpGij5I2GTnKrZTVxkaeTdltMR4n5SebxO4z+hhLeQzI7dbYoilbAQ4My
	 kWTRcNpygzr3g69r/pzE4AjP/o15dZRtKodshNt171sKOgGqdI9uNbuUQ5+t4uj7ZV
	 GAuu8hI4RZJTVgF5W0nRIpvveLzA4uo0wPf2xRSXOVq09ux+avYLeZAzO9BgpyKveW
	 KOXE24j06aVr12gAir4M1HKXn5rFieOzGCZ7YZeB6o5y6zYT/4NAx1KV4ATTupzqdQ
	 R3A9bSMN2NDGQ==
Date: Wed, 3 Nov 2021 14:57:59 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Luca Fancellu <luca.fancellu@arm.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com
Subject: Re: Arm EFI boot issue for Dom0 module listed inside subnode of
 chosen
In-Reply-To: <f4daf916-06bd-e002-8b74-be6fb45ef257@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111031457540.267621@ubuntu-linux-20-04-desktop>
References: <8A60FA62-2BAA-400B-BB53-AB3E8CCA67F1@arm.com> <alpine.DEB.2.21.2111021625160.18170@sstabellini-ThinkPad-T480s> <f4daf916-06bd-e002-8b74-be6fb45ef257@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1519837360-1635976681=:267621"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1519837360-1635976681=:267621
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 3 Nov 2021, Julien Grall wrote:
> On 02/11/2021 23:36, Stefano Stabellini wrote:
> > On Tue, 2 Nov 2021, Luca Fancellu wrote:
> > > Hi all,
> > > 
> > > We recently discovered that there is a way to list Dom0 modules that is
> > > not supported by the EFI boot,
> > > It’s happened browsing some Wiki pages like this one:
> > > https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/Lager
> > > 
> > > In that page the Dom0 modules are listed inside a subnode of the /chosen
> > > node:
> > > 
> > > chosen {
> > > 
> > >      modules {
> > >          #address-cells = <1>;
> > >          #size-cells = <1>;
> > > 
> > >          module@0x72000000 {
> > >              compatible = "multiboot,kernel", "multiboot,module";
> > >              reg = <0x72000000 0x2fd158>;
> > >          };
> > > 
> > >          module@0x74000000 {
> > >              compatible = "xen,xsm-policy", "multiboot,module";
> > >              reg = <0x74000000 0x2559>;
> > >          };
> > >      };
> > > };
> > > 
> > > Instead for how it is implemented now in the EFI code and described in:
> > > 1) https://xenbits.xen.org/docs/unstable/misc/arm/device-tree/booting.txt
> > > 2) https://xenbits.xen.org/docs/unstable/misc/efi.html
> > > 
> > > Only the following approach is supported, so Dom0 modules must be a direct
> > > child of /chosen:
> 
> Do you mean this is not supported after your changes or this was never
> supported? (see more below).
> 
> > > 
> > > chosen {
> > >      #address-cells = <1>;
> > >      #size-cells = <1>;
> > > 
> > >      module@0x72000000 {
> > >          compatible = "multiboot,kernel", "multiboot,module";
> > >          reg = <0x72000000 0x2fd158>;
> > >      };
> > > 
> > >      module@0x74000000 {
> > >          compatible = "xen,xsm-policy", "multiboot,module";
> > >          reg = <0x74000000 0x2559>;
> > >      };
> > > };
> > > 
> > > Is this a problem that needs a fix?
> > 
> > 
> > Let me start by saying that I don't feel strongly either way, so I am
> > happy to go with other people's opinion on this one.
> > 
> > In this kind of situations I usually look at two things:
> > - what the specification says
> > - what the existing code actually does
> > 
> > In general, I try to follow the specification unless obviously
> > production code relies on something that contradicts the spec, in which
> > case I'd say to update the spec.
> > 
> > In this case, although it is true that "modules" could be nice to have,
> > it is missing a compatible string,
> 
> There are a few nodes in the DT without compatible (e.g. cpus, memory, chosen,
> soc). So I am a bit confused why this is a problem.

They tend to be "exceptions". Node names are usually not meaningful
except for few top-level nodes without a compatible string. Cpus, memory
and chosen are all top level nodes. I don't know about "soc", that one
should probably be compatible = "simple-bus". If you have a pointer to
an "soc" node without a compatible I'd be interested in taking a look.
No worries if you don't have it handy, I was just curious.


> > it is not described in arm/device-tree/booting.txt,
> 
> Up until Xen 4.4, we had the following sentence:
> 
> "
> Each node has the form /chosen/modules/module@<N> and contains the following
> properties:
> "
> 
> This was removed by commit af82a77f3abc "xen: arm: remove innaccurate
> statement about multiboot module path". But, IMHO, the new wording still
> doesn't explicit says the module should be directly in /chosen.

Nice work of archaeology there!


> > and it is only rarely used.
> 
> Hmmm... We have quite a few examples on the wiki that create 'module' under
> 'modules'. In fact, we have provided U-boot script [2] that can be easily
> re-used. So I would not call it rare.
> 
> > 
> > For these reasons, I don't think it is a problem that we need to fix.
> > Especially considering that the EFI case is the only case not working
> > and it was never supported until now.
> 
> Hmmm... Looking at the implementation of efi_arch_use_config_file() in 4.12,
> we are looking for the compatible "mutiboot,module". So I would say this is
> supported.
> 
> > If we want to add support for "modules", that could be fine, but I think
> > we should describe it in arm/device-tree/booting.txt and also add a
> > compatible string for it. For 4.16 
> 
> I think the first question we need to resolved is whether this has ever been
> supported in EFI. I think it was and therefore this is technically a
> regression.
> 
> That said, outside of the dom0less case, I don't expect any UEFI users will
> bother to create the nodes manually and instead rely on GRUB to create them.
> So I think breaking it would be OK.
> 
> I am less convinced about breaking it for non-UEFI case.
>
> That said, I think the documentation should be updated either way for
> 4.16 (the more if this has been broken as part of recent changes).

It would be good to clarify. If we decide to go with making it clear
that "modules" is not supported then from a device tree point of view I
think we should say that "multiboot,module" nodes for Dom0 and Xen (xsm)
are children of /chosen. I prefer this option because I think that if
we wanted to group the dom0 and/or Xen modules together (which could be
good) we could come up with something better than "modules", more
aligned with dom0less.

Otherwise we could try to add a "modules" node to the description with a
compatible string and a comment saying certain legacy versions might not
have a compatible string.


> > I'd just update the wikipage.
> 
> There are quite a few places to update on the wiki page. AFAICT, they are all
> related to U-boot, so I don't think there is an action needed here.

OK
--8323329-1519837360-1635976681=:267621--


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 22:07:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 22:07:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221158.382722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miOQ8-0002kr-5H; Wed, 03 Nov 2021 22:07:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221158.382722; Wed, 03 Nov 2021 22:07:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miOQ8-0002kk-0I; Wed, 03 Nov 2021 22:07:48 +0000
Received: by outflank-mailman (input) for mailman id 221158;
 Wed, 03 Nov 2021 22:07:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miOQ6-0002ka-7U; Wed, 03 Nov 2021 22:07:46 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miOQ5-0002Mc-Vk; Wed, 03 Nov 2021 22:07:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miOQ5-0006aE-Mk; Wed, 03 Nov 2021 22:07:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miOQ5-0003wd-MH; Wed, 03 Nov 2021 22:07:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=yhGrXlnM81otp95+Okg9PHD1QhIEBMOMMIk4E3QvUyI=; b=t13allKsbSjhZJAvPx7VwV4bsP
	P6umjblNL/CxP2rf+X7wvlQlM8HU46OtJyFh2uK+84DTPRORiL1wiAafVA7Q0f7TLsVzBQYNS7Rdj
	4Etm1YK4PXLTekpnFpJsEwfkBQpI9fkA0ukA1xvtGw0n7neMSP99i858ffykppe3IHTg=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166034-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166034: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=3231ddf9dc384a386df43fd1c0a0bcbba9d79569
X-Osstest-Versions-That:
    xen=b2851580b1f2ff121737a37cb25a370d7692ae3b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Nov 2021 22:07:45 +0000

flight 166034 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166034/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  3231ddf9dc384a386df43fd1c0a0bcbba9d79569
baseline version:
 xen                  b2851580b1f2ff121737a37cb25a370d7692ae3b

Last test of basis   166030  2021-11-03 14:02:16 Z    0 days
Testing same since   166034  2021-11-03 19:01:38 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
  Stefano Stabellini <sstabellini@kernel.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   b2851580b1..3231ddf9dc  3231ddf9dc384a386df43fd1c0a0bcbba9d79569 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 22:30:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 22:30:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221168.382735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miOlZ-00059L-7T; Wed, 03 Nov 2021 22:29:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221168.382735; Wed, 03 Nov 2021 22:29:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miOlZ-00059E-4N; Wed, 03 Nov 2021 22:29:57 +0000
Received: by outflank-mailman (input) for mailman id 221168;
 Wed, 03 Nov 2021 22:29:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5wz0=PW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1miOlX-000594-Cv
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 22:29:55 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90465336-3cf5-11ec-a9d2-d9f7a1cc8784;
 Wed, 03 Nov 2021 23:29:53 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id C9AA4610FD;
 Wed,  3 Nov 2021 22:29:51 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90465336-3cf5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1635978592;
	bh=RpM3sDRhsehYphyelFM8Wrph+g6XSbrv+fqZR8ZQy8Q=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=uJBZiB0KEP4/4SmtDScqQs+MjiDZQKWim4aU9BSpen3sohf2ZfcNPfcph7XHkSeJs
	 KHRSa1gtzPCfUvApJBETV2tcrtCiXiMe+NP4K8vpqx8wT2YNYNy5nckZ4jB2hljtlL
	 FkbQh7E2uad/W/hWmKMtGUuoFcmWpDDU0Pb07nYfkrYWB0GX8OrYiyQfK1u+mSC9up
	 p5OMadWQV0PVaBmimh59YBOTQorIm9TvBKn3mY48BufWDD7E4lJPYZxz8INvgqqZmb
	 ilpnjd4DyOQOIWbNK2bQo1oZoaaHm3Fi43wBLeS6Y80CXzkJk1U4KuLIBquCBVZLhZ
	 X1KBzFcQk3JfQ==
Date: Wed, 3 Nov 2021 15:29:50 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <luca.fancellu@arm.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com, 
    Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <67A7B343-8230-49C5-91CA-18C0E2ACDEF3@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111031526150.267621@ubuntu-linux-20-04-desktop>
References: <20211102140511.5542-1-luca.fancellu@arm.com> <alpine.DEB.2.21.2111021610180.18170@sstabellini-ThinkPad-T480s> <67A7B343-8230-49C5-91CA-18C0E2ACDEF3@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1876138409-1635978591=:267621"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1876138409-1635978591=:267621
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 3 Nov 2021, Luca Fancellu wrote:
> > On 2 Nov 2021, at 23:17, Stefano Stabellini <sstabellini@kernel.org> wrote:
> > 
> > On Tue, 2 Nov 2021, Luca Fancellu wrote:
> >> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
> >> ("arm/efi: Use dom0less configuration when using EFI boot") is
> >> introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.
> >> 
> >> The problem comes from the function get_parent_handle(...) that inside
> >> uses the HandleProtocol on loaded_image->DeviceHandle, but the last
> >> is NULL, making Xen stop the UEFI boot.
> >> 
> >> Before the commit above, the function was never called because the
> >> logic was skipping the call when there were multiboot modules in the
> >> DT because the filesystem was never used and the bootloader had
> >> put in place all the right modules in memory and the addresses
> >> in the DT.
> >> 
> >> To fix the problem we allow the get_parent_handle(...) function to
> >> return a NULL handle on error and we check the usage of the function
> >> to handle the new use case. The function in fact should not prevent
> >> the boot even if the filesystem can't be used, because the DT and
> >> the modules could be put in place by the bootloader before running
> >> Xen and if xen,uefi-binary property is not used, there is no need
> >> for the filesystem.
> >> 
> >> Another problem is found when the UEFI stub tries to check if Dom0
> >> image or DomUs are present.
> >> The logic doesn't work when the UEFI stub is not responsible to load
> >> any modules, so the efi_check_dt_boot(...) return value is modified
> >> to return the number of multiboot module found and not only the number
> >> of module loaded by the stub.
> >> 
> >> Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI boot")
> >> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> >> ---
> >> Justification for integration in 4.16:
> >> Upside: allow booting xen from grub on arm64 when the stub doesn't load
> >>        any module.
> >> Downside: It's affecting the EFI boot path.
> >> Risk: It's not affecting x86 arch that works the same way as before.
> >>      If something is wrong it creates a problem on early boot and not at
> >>      runtime, so risk is low.
> >> 
> >> Tested in this configurations:
> >> - Bootloader loads modules and specify them as multiboot modules in DT:
> >>   * combination of Dom0, DomUs, Dom0 and DomUs
> >> - DT specifies multiboot modules in DT using xen,uefi-binary property:
> >>   * combination of Dom0, DomUs, Dom0 and DomUs
> >> - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
> >>   other multiboot modules are listed for DomUs using xen,uefi-binary
> >> - No multiboot modules in DT and no kernel entry in cfg file:
> >>   * proper error thrown
> >> 
> >> ---
> >> xen/arch/arm/efi/efi-boot.h | 28 ++++++++++++++++++----------
> >> xen/common/efi/boot.c       | 15 ++++++++++++++-
> >> 2 files changed, 32 insertions(+), 11 deletions(-)
> >> 
> >> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> >> index 8b88dd26a5..e714b2b44c 100644
> >> --- a/xen/arch/arm/efi/efi-boot.h
> >> +++ b/xen/arch/arm/efi/efi-boot.h
> >> @@ -51,9 +51,11 @@ static int handle_module_node(EFI_FILE_HANDLE dir_handle,
> >>                               int module_node_offset,
> >>                               int reg_addr_cells,
> >>                               int reg_size_cells,
> >> -                              bool is_domu_module);
> >> +                              bool is_domu_module,
> >> +                              unsigned int *modules_found);
> >> static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >> -                                       int domain_node);
> >> +                                       int domain_node,
> >> +                                       unsigned int *modules_found);
> >> static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
> >> 
> >> #define DEVICE_TREE_GUID \
> >> @@ -707,7 +709,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
> >>                                      int module_node_offset,
> >>                                      int reg_addr_cells,
> >>                                      int reg_size_cells,
> >> -                                     bool is_domu_module)
> >> +                                     bool is_domu_module,
> >> +                                     unsigned int *modules_found)
> >> {
> >>     const void *uefi_name_prop;
> >>     char mod_string[24]; /* Placeholder for module@ + a 64-bit number + \0 */
> >> @@ -725,6 +728,9 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
> >>         /* Module is not a multiboot,module */
> >>         return 0;
> >> 
> >> +    /* Count the multiboot module as found */
> >> +    (*modules_found)++;
> >> +
> >>     /* Read xen,uefi-binary property to get the file name. */
> >>     uefi_name_prop = fdt_getprop(fdt, module_node_offset, "xen,uefi-binary",
> >>                                  &uefi_name_len);
> >> @@ -804,7 +810,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
> >>  * Returns 0 on success, negative number on error.
> >>  */
> >> static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >> -                                              int domain_node)
> >> +                                              int domain_node,
> >> +                                              unsigned int *modules_found)
> >> {
> >>     int module_node, addr_cells, size_cells, len;
> >>     const struct fdt_property *prop;
> >> @@ -834,7 +841,7 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >>           module_node = fdt_next_subnode(fdt, module_node) )
> >>     {
> >>         int ret = handle_module_node(dir_handle, module_node, addr_cells,
> >> -                                     size_cells, true);
> >> +                                     size_cells, true, modules_found);
> >>         if ( ret < 0 )
> >>             return ret;
> >>     }
> >> @@ -845,12 +852,12 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >> /*
> >>  * This function checks for xen domain nodes under the /chosen node for possible
> >>  * dom0 and domU guests to be loaded.
> >> - * Returns the number of modules loaded or a negative number for error.
> >> + * Returns the number of multiboot modules found or a negative number for error.
> >>  */
> >> static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> >> {
> >>     int chosen, node, addr_len, size_len;
> >> -    unsigned int i = 0;
> >> +    unsigned int i = 0, modules_found = 0;
> >> 
> >>     /* Check for the chosen node in the current DTB */
> >>     chosen = setup_chosen_node(fdt, &addr_len, &size_len);
> >> @@ -868,11 +875,12 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> >>         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
> >>         {
> >>             /* Found a node with compatible xen,domain; handle this node. */
> >> -            if ( handle_dom0less_domain_node(dir_handle, node) < 0 )
> >> +            if ( handle_dom0less_domain_node(dir_handle, node,
> >> +                                             &modules_found) < 0 )
> >>                 return ERROR_DT_MODULE_DOMU;
> >>         }
> >>         else if ( handle_module_node(dir_handle, node, addr_len, size_len,
> >> -                                     false) < 0 )
> >> +                                     false, &modules_found) < 0 )
> >>                  return ERROR_DT_MODULE_DOM0;
> > 
> > I think there is no need to add modules_found to the parameters of
> > handle_dom0less_domain_node and handle_module_node. You could just
> > increment modules_found here for every iteration of the loop where
> > there is no error.  You would have to change a couple of returns in
> > handle_module_node, just to give you the idea:
> 
> Yes we could do that but when we handle a xen,domain node we will count
> only one module and that defeats the aim to count every multiboot,module.
> 
> If we want to continue with your proposal let me know and I will implement it.

Not necessarely. We could make the change that both
handle_dom0less_domain_node and handle_module_node return:

- < 0 on error
- 0 on nothing to do
- the number of modules on success (currently this is also 0)

In the dom0less case, if one of the modules returns error, we should
return error as we already do today.


> > diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> > index e714b2b44c..7739789c41 100644
> > --- a/xen/arch/arm/efi/efi-boot.h
> > +++ b/xen/arch/arm/efi/efi-boot.h
> > @@ -726,7 +726,7 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
> > 
> >     if ( module_compat != 0 )
> >         /* Module is not a multiboot,module */
> > -        return 0;
> > +        return 1;
> > 
> >     /* Count the multiboot module as found */
> >     (*modules_found)++;
> > @@ -737,7 +737,7 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
> > 
> >     if ( !uefi_name_prop )
> >         /* Property not found */
> > -        return 0;
> > +        return 1;
> > 
> >     file_idx = get_module_file_index(uefi_name_prop, uefi_name_len);
> >     if ( file_idx < 0 )
> > 
> > 
> >>     }
> >> 
> >> @@ -883,7 +891,7 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> >>         efi_bs->FreePool(modules[i].name);
> >>     }
> >> 
> >> -    return modules_idx;
> >> +    return modules_found;
> >> }
> >> 
> >> static void __init efi_arch_cpu(void)
> >> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> >> index 392ff3ac9b..495e7a4096 100644
> >> --- a/xen/common/efi/boot.c
> >> +++ b/xen/common/efi/boot.c
> >> @@ -449,6 +449,13 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> >>     CHAR16 *pathend, *ptr;
> >>     EFI_STATUS ret;
> >> 
> >> +    /*
> >> +     * If DeviceHandle is NULL, we can't use the SIMPLE_FILE_SYSTEM_PROTOCOL
> >> +     * to have access to the filesystem.
> >> +     */
> >> +    if ( !loaded_image->DeviceHandle )
> >> +        return NULL;
> >> +
> >>     do {
> >>         EFI_FILE_IO_INTERFACE *fio;
> >> 
> >> @@ -581,6 +588,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
> >>     EFI_STATUS ret;
> >>     const CHAR16 *what = NULL;
> >> 
> >> +    if ( !dir_handle )
> >> +        blexit(L"Error: No access to the filesystem");
> >>     if ( !name )
> >>         PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
> >>     ret = dir_handle->Open(dir_handle, &FileHandle, name,
> >> @@ -1333,6 +1342,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >>             EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
> >>                                                        &file_name);
> >> 
> >> +            if ( !handle )
> >> +                blexit(L"Error retrieving image name: no filesystem access");
> > 
> > I think it would be nice to have an other explicit check like this one
> > at the beginning of if ( use_cfg_file ) to make sure dir_handle is not
> > null in that case. If I am not mistaken, if we take the use_cfg_file
> > path, dir_handle has to be valid, right?
> 
> Dir_handle could be invalid and we would be able to boot successfully when we take everywhere
> the path using read_section, for that reason I didn’t stop the boot earlier.
> Given Jan suggestion that check could be also modified to be something like “if there is no handle, *argv=“xen.efi” "
> so the boot can continue without problem if we don’t need to read anything from the filesystem.

OK
--8323329-1876138409-1635978591=:267621--


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 23:26:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 23:26:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221176.382747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miPe5-0002QG-C6; Wed, 03 Nov 2021 23:26:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221176.382747; Wed, 03 Nov 2021 23:26:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miPe5-0002Q9-9F; Wed, 03 Nov 2021 23:26:17 +0000
Received: by outflank-mailman (input) for mailman id 221176;
 Wed, 03 Nov 2021 23:26:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1PY5=PW=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1miPe3-0002Q3-P9
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 23:26:15 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6bbf9017-3cfd-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 00:26:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6bbf9017-3cfd-11ec-a9d2-d9f7a1cc8784
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1635981965;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=UfTyFoXajtV0v9y/BzmoswZaGOzbbSsMzbV3xAEe7f8=;
	b=FG232QjcqbTedwDbie2TZlaxunqVOoH7LkuCfHq9pkVIrcjDea/Jq7f4TE4HKlJKokS5Qd
	mk3z0Zjoj8VI5X34ZomjX1G4/fEJ5mQEwdRTwnQCLLUF5TzjqkDxdWKDQg4/Pp04ati32T
	LReCTHFGzrgNprU+Ps61kW5PcsjY9O9kqlKUTuYJvSbES8zwklYl+no3/15X5qd/rkPEYO
	YU6Z/zGM+AqFTwoVix4R9s9BYpVcZ3bENnaOOfJsMUKxIDFFPjspwNlwWt8EtwxzjQBwG+
	eKdK/dUMdlpAhhqS52T770CdDjTuPGeSoreno/76+rV2A27PHJbpxAurtevwAA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1635981965;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=UfTyFoXajtV0v9y/BzmoswZaGOzbbSsMzbV3xAEe7f8=;
	b=Wi+PWP2tcmH6wdHfleglyGLWoarqN06h513enO1PuRi77n2p1ZX35nkizmwepUsrxjlzHy
	+B+iC4GV3dxfcuBg==
To: Josef Johansson <josef@oderland.se>
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org, jgross@suse.com,
 linux-pci@vger.kernel.org, maz@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jandryuk@gmail.com>, David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH] PCI/MSI: Move non-mask check back into low level accessors
In-Reply-To: <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se>
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se>
Date: Thu, 04 Nov 2021 00:26:05 +0100
Message-ID: <87k0ho6ctu.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

Josef!

On Wed, Oct 27 2021 at 17:29, Josef Johansson wrote:
> On 10/27/21 14:01, Josef Johansson wrote:
>> diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
>> index 6a5ecee6e567..28d509452958 100644
>> --- a/kernel/irq/msi.c
>> +++ b/kernel/irq/msi.c
>> @@ -529,10 +529,10 @@ static bool msi_check_reservation_mode(struct irq_domain *domain,
>>  
>>  	/*
>>  	 * Checking the first MSI descriptor is sufficient. MSIX supports
>> -	 * masking and MSI does so when the maskbit is set.
>> +	 * masking and MSI does so when the can_mask is set.
>>  	 */
>>  	desc = first_msi_entry(dev);
>> -	return desc->msi_attrib.is_msix || desc->msi_attrib.maskbit;
>> +	return desc->msi_attrib.is_msix || desc->msi_attrib.can_mask;
>>  }
>>  
>>  int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
>>
> Hi Thomas,
>
> With the above added the kernel boots fine and I can even suspend it twice.
> Which is with my laptop, a good sign.
>
> You can add Tested-By: josef@oderland.se.

Thank you for fixing my quick hack in vacation mode. I'll send out a v2
in a minute.

Thanks,

        tglx
 


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 23:27:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 23:27:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221179.382758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miPfI-0002xK-MD; Wed, 03 Nov 2021 23:27:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221179.382758; Wed, 03 Nov 2021 23:27:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miPfI-0002xD-Iy; Wed, 03 Nov 2021 23:27:32 +0000
Received: by outflank-mailman (input) for mailman id 221179;
 Wed, 03 Nov 2021 23:27:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1PY5=PW=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1miPfH-0002tz-BR
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 23:27:31 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d434dac-3cfd-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 00:27:30 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d434dac-3cfd-11ec-a9d2-d9f7a1cc8784
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1635982049;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=lDDnoosuRNvWD7CuXVCdoj1xtKBkTouC/FU6yWiMyvg=;
	b=C8z1BxAI8GIJsZSkGLCWSa4YFoPmD7xTlPVkYBZTYYIZG4c1pPFHj3t6Nq7wV35gw+9dsq
	OFRyAu/N9A812oznFmUt0yQwc2gQyRRPq468JA8hvUuEYpq7OktBk3C4AC8wx7NIfkrOLr
	kU0YfD41pe/OR+X1fkXpFaJwbJ2ruNW/RY2qYpXmh6dTsHf0MLXX7qsC6K2mqHLtBq/LYw
	GitT70+krEvEKoGMk9WrpC7ZszZ2DZC6N+Ia/U5PDzoO04Ng6aOQkbuBZvRePTgN5ArM8s
	5WyH7jHd8yozYMV7PT+KBLWm5EmoPBGlL0ECNXdQDdltW+P62HtY6NFZSt3rvg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1635982049;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=lDDnoosuRNvWD7CuXVCdoj1xtKBkTouC/FU6yWiMyvg=;
	b=rgygKXmt4QIddOW8QA8i4kBWYDuEaKN+W9sz0tFpDFLoEhKK1rkQ5Mzap6yObEqz1g7ihm
	UhBa5+NWxEhG9FDA==
To: Josef Johansson <josef@oderland.se>
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org, jgross@suse.com,
 linux-pci@vger.kernel.org, maz@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jandryuk@gmail.com>, David Woodhouse <dwmw2@infradead.org>
Subject: [PATCH v2] PCI/MSI: Move non-mask check back into low level accessors
In-Reply-To: <87k0ho6ctu.ffs@tglx>
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se> <87k0ho6ctu.ffs@tglx>
Date: Thu, 04 Nov 2021 00:27:29 +0100
Message-ID: <87h7cs6cri.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

From: Thomas Gleixner <tglx@linutronix.de>

The recent rework of PCI/MSI[X] masking moved the non-mask checks from the
low level accessors into the higher level mask/unmask functions.

This missed the fact that these accessors can be invoked from other places
as well. The missing checks break XEN-PV which sets pci_msi_ignore_mask and
also violates the virtual MSIX and the msi_attrib.maskbit protections.

Instead of sprinkling checks all over the place, lift them back into the
low level accessor functions. To avoid checking three different conditions
combine them into one property of msi_desc::msi_attrib.

[ josef: Fixed the missed conversion in the core code ]

Fixes: fcacdfbef5a1 ("PCI/MSI: Provide a new set of mask and unmask functions")
Reported-by: Josef Johansson <josef@oderland.se>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Josef Johansson <josef@oderland.se>
Cc: stable@vger.kernel.org
---
V2: Added the missing conversion in the core code - Josef
---
 drivers/pci/msi.c   |   26 ++++++++++++++------------
 include/linux/msi.h |    2 +-
 kernel/irq/msi.c    |    4 ++--
 3 files changed, 17 insertions(+), 15 deletions(-)

--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -148,6 +148,9 @@ static noinline void pci_msi_update_mask
 	raw_spinlock_t *lock = &desc->dev->msi_lock;
 	unsigned long flags;
 
+	if (!desc->msi_attrib.can_mask)
+		return;
+
 	raw_spin_lock_irqsave(lock, flags);
 	desc->msi_mask &= ~clear;
 	desc->msi_mask |= set;
@@ -181,7 +184,8 @@ static void pci_msix_write_vector_ctrl(s
 {
 	void __iomem *desc_addr = pci_msix_desc_addr(desc);
 
-	writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
+	if (desc->msi_attrib.can_mask)
+		writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
 }
 
 static inline void pci_msix_mask(struct msi_desc *desc)
@@ -200,23 +204,17 @@ static inline void pci_msix_unmask(struc
 
 static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
 {
-	if (pci_msi_ignore_mask || desc->msi_attrib.is_virtual)
-		return;
-
 	if (desc->msi_attrib.is_msix)
 		pci_msix_mask(desc);
-	else if (desc->msi_attrib.maskbit)
+	else
 		pci_msi_mask(desc, mask);
 }
 
 static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
 {
-	if (pci_msi_ignore_mask || desc->msi_attrib.is_virtual)
-		return;
-
 	if (desc->msi_attrib.is_msix)
 		pci_msix_unmask(desc);
-	else if (desc->msi_attrib.maskbit)
+	else
 		pci_msi_unmask(desc, mask);
 }
 
@@ -484,7 +482,8 @@ msi_setup_entry(struct pci_dev *dev, int
 	entry->msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
 	entry->msi_attrib.is_virtual    = 0;
 	entry->msi_attrib.entry_nr	= 0;
-	entry->msi_attrib.maskbit	= !!(control & PCI_MSI_FLAGS_MASKBIT);
+	entry->msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+					  !!(control & PCI_MSI_FLAGS_MASKBIT);
 	entry->msi_attrib.default_irq	= dev->irq;	/* Save IOAPIC IRQ */
 	entry->msi_attrib.multi_cap	= (control & PCI_MSI_FLAGS_QMASK) >> 1;
 	entry->msi_attrib.multiple	= ilog2(__roundup_pow_of_two(nvec));
@@ -495,7 +494,7 @@ msi_setup_entry(struct pci_dev *dev, int
 		entry->mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
 
 	/* Save the initial mask status */
-	if (entry->msi_attrib.maskbit)
+	if (entry->msi_attrib.can_mask)
 		pci_read_config_dword(dev, entry->mask_pos, &entry->msi_mask);
 
 out:
@@ -638,10 +637,13 @@ static int msix_setup_entries(struct pci
 		entry->msi_attrib.is_virtual =
 			entry->msi_attrib.entry_nr >= vec_count;
 
+		entry->msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+						  !entry->msi_attrib.is_virtual;
+
 		entry->msi_attrib.default_irq	= dev->irq;
 		entry->mask_base		= base;
 
-		if (!entry->msi_attrib.is_virtual) {
+		if (!entry->msi_attrib.can_mask) {
 			addr = pci_msix_desc_addr(entry);
 			entry->msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
 		}
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -148,7 +148,7 @@ struct msi_desc {
 				u8	is_msix		: 1;
 				u8	multiple	: 3;
 				u8	multi_cap	: 3;
-				u8	maskbit		: 1;
+				u8	can_mask	: 1;
 				u8	is_64		: 1;
 				u8	is_virtual	: 1;
 				u16	entry_nr;
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -529,10 +529,10 @@ static bool msi_check_reservation_mode(s
 
 	/*
 	 * Checking the first MSI descriptor is sufficient. MSIX supports
-	 * masking and MSI does so when the maskbit is set.
+	 * masking and MSI does so when the can_mask attribute is set.
 	 */
 	desc = first_msi_entry(dev);
-	return desc->msi_attrib.is_msix || desc->msi_attrib.maskbit;
+	return desc->msi_attrib.is_msix || desc->msi_attrib.can_mask;
 }
 
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,


From xen-devel-bounces@lists.xenproject.org Wed Nov 03 23:45:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Nov 2021 23:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221188.382769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miPwl-0005K0-7A; Wed, 03 Nov 2021 23:45:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221188.382769; Wed, 03 Nov 2021 23:45:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miPwl-0005Jt-2B; Wed, 03 Nov 2021 23:45:35 +0000
Received: by outflank-mailman (input) for mailman id 221188;
 Wed, 03 Nov 2021 23:45:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1PY5=PW=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1miPwj-0005Jn-PN
 for xen-devel@lists.xenproject.org; Wed, 03 Nov 2021 23:45:33 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2190c686-3d00-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 00:45:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2190c686-3d00-11ec-9787-a32c541c8605
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1635983129;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=ZXp9Lu3U6B6l2NAqi+9utvh+Hmq8hDnJ1Vzy6C5T/4k=;
	b=cJogEg3FVkGBT1u+km6LhtAFlGHVz01T7D+hVPGdk+XV356VC52liohtD6EnXrEBhlgK4o
	ivrjcFsp1iFFsqJhxRxocjKlfaH2ykqKeom6af3+7AvAL5AnEauZTvOw07fBSqF+exO5d1
	lNUu71clGiGge5xGOcstgS7goRIvrLV8lbvp2B2B5CyOW7ftofsS8i8UOiPImBL1weGKGF
	VliOdRyJIZYkfMQTQHcJEy9wXTMlBoIX7ZQexSnaZwWCJye7cQat2o/onFarcWy+xz7SKK
	1oMdQGY3tzIUd5VU2DqcqDYOQZPQsPE6/UfTwEJb54FGRW7y68XHhadydOxDuw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1635983129;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=ZXp9Lu3U6B6l2NAqi+9utvh+Hmq8hDnJ1Vzy6C5T/4k=;
	b=ocwXEWY8V/mdNl9ciCnRaseU1cj/8aIwVmzrb0WhvwsAnDhdUeaodP/lpQe/YwChxtlLOe
	28ugHU4I7lXJuKAA==
To: Josef Johansson <josef@oderland.se>
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org, jgross@suse.com,
 linux-pci@vger.kernel.org, maz@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jandryuk@gmail.com>, David Woodhouse <dwmw2@infradead.org>,
 Peter Jones <pjones@redhat.com>, linux-fbdev@vger.kernel.org, Peter
 Zijlstra <peterz@infradead.org>, LKML <linux-kernel@vger.kernel.org>,
 x86@kernel.org
Subject: Re: [PATCH] PCI/MSI: Move non-mask check back into low level accessors
In-Reply-To: <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se>
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se>
Date: Thu, 04 Nov 2021 00:45:29 +0100
Message-ID: <87ee7w6bxi.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Wed, Oct 27 2021 at 17:29, Josef Johansson wrote:

CC+: EFIFB and scheduler folks

> On 10/27/21 14:01, Josef Johansson wrote:
> When I suspend I get errors from Xen, including stacktraces below
> if anyone has any clue, if this might be related. I get one each time I
> suspend
> and the third time amdgpu gives up.
>
> rtc_cmos 00:01: registered as rtc0
> rtc_cmos 00:01: setting system clock to 2021-10-27T15:04:35 UTC (1635347075)
> rtc_cmos 00:01: no alarms, y3k, 114 bytes nvram
> device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log.
> device-mapper: uevent: version 1.0.3
> device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@redhat.com
> efifb: probing for efifb
> efifb: cannot reserve video memory at 0x60000000
> ------------[ cut here ]------------
> ioremap on RAM at 0x0000000060000000 - 0x00000000607e8fff
> WARNING: CPU: 7 PID: 1 at arch/x86/mm/ioremap.c:210 __ioremap_caller+0x332/0x350

That's this warning:

	/*
	 * Don't allow anybody to remap normal RAM that we're using..
	 */
	if (io_desc.flags & IORES_MAP_SYSTEM_RAM) {
		WARN_ONCE(1, "ioremap on RAM at %pa - %pa\n",
			  &phys_addr, &last_addr);
		return NULL;
	}


> Modules linked in:
> CPU: 7 PID: 1 Comm: swapper/0 Not tainted 5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
> Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17/2021
> RIP: e030:__ioremap_caller+0x332/0x350
> Code: e8 c3 ca ff ff 49 09 c6 e9 32 fe ff ff 48 8d 54 24 28 48 8d 74 24 18 48 c7 c7 35 f2 5d 82 c6 05 e8 7b a9 01 01 e8 48 39 be 00 <0f> 0b 45 31 e4 e9 ac fe ff ff e8 ff f5 c3 00 66 66 2e 0f 1f 84 00
> RSP: e02b:ffffc9004007bb00 EFLAGS: 00010286
> RAX: 0000000000000000 RBX: 00000000007e9000 RCX: ffffffff82915ca8
> RDX: c0000000ffffdfff RSI: 0000000000000000 RDI: ffffffff82865ca0
> RBP: 0000000060000000 R08: 0000000000000000 R09: ffffc9004007b948
> R10: ffffc9004007b940 R11: ffffffff82945ce8 R12: 0000000000000001
> R13: 00000000007e9000 R14: 00000000007e9000 R15: ffffffff81c8f772
> FS:  0000000000000000(0000) GS:ffff8881407c0000(0000) knlGS:0000000000000000
> CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000000000000 CR3: 0000000002810000 CR4: 0000000000050660
> Call Trace:
>  efifb_probe.cold+0x2e6/0x688

Why is this probing EFIFB at resume? Josef is that hibernate or suspend
to RAM?

>  platform_probe+0x3f/0x90
>  call_driver_probe+0x24/0xc0
>  really_probe+0x1e7/0x310
>  __driver_probe_device+0xfe/0x180
>  driver_probe_device+0x1e/0x90
>  __device_attach_driver+0x72/0xe0
>  ? driver_allows_async_probing+0x50/0x50
>  ? driver_allows_async_probing+0x50/0x50
>  bus_for_each_drv+0x8f/0xd0
>  __device_attach+0xe9/0x1f0
>  bus_probe_device+0x8e/0xa0
>  device_add+0x3fb/0x630
>  platform_device_add+0x102/0x230
>  sysfb_init+0xea/0x141
>  ? firmware_map_add_early+0xb8/0xb8
>  do_one_initcall+0x57/0x200
>  do_initcalls+0x109/0x166
>  kernel_init_freeable+0x23c/0x2bd
>  ? rest_init+0xc0/0xc0
>  kernel_init+0x16/0x120
>  ret_from_fork+0x22/0x30
> ---[ end trace b068d3cd1b7f5f49 ]---
> efifb: abort, cannot remap video memory 0x7e9000 @ 0x60000000
> efi-framebuffer: probe of efi-framebuffer.0 failed with error -5
> --
> printk: Suspending console(s) (use no_console_suspend to debug)
> [drm] free PSP TMR buffer
> PM: suspend devices took 0.428 seconds
> ACPI: EC: interrupt blocked
> ACPI: PM: Preparing to enter system sleep state S3
> ACPI: EC: event blocked
> ACPI: EC: EC stopped
> ACPI: PM: Saving platform NVS memory
> Disabling non-boot CPUs ...
> ------------[ cut here ]------------
> WARNING: CPU: 1 PID: 0 at arch/x86/mm/tlb.c:522  switch_mm_irqs_off+0x3c5/0x400

	if (WARN_ON_ONCE(__read_cr3() != build_cr3(real_prev->pgd, prev_asid))) {

> Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd_timer nf_tables nfnetlink vfat fat intel_rapl_msr think_lmi firmware_attributes_class wmi_bmof intel_rapl_common pcspkr uvcvideo videobuf2_vmalloc videobuf2_memops joydev videobuf2_v4l2 sp5100_tco k10temp videobuf2_common i2c_piix4 iwlwifi videodev mc cfg80211 thinkpad_acpi ipmi_devintf ucsi_acpi platform_profile typec_ucsi ledtrig_audio ipmi_msghandler r8169 rfkill typec snd wmi soundcore video i2c_scmi fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt trusted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul crc32_pclmul crc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ghash_clmulni_intel ttm serio_raw drm_kms_helper cec sdhci_pci cqhci sdhci xhci_pci drm xhci_pci_renesas nvme xhci_hcd ehci_pci mmc_core ehci_hcd nvme_core xen_acpi_processor xen_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
> CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W        --------- ---  5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
> Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17/2021
> RIP: e030:switch_mm_irqs_off+0x3c5/0x400
> Code: f0 41 80 65 01 fb ba 01 00 00 00 49 8d b5 60 23 00 00 4c 89 ef 49 c7 85 68 23 00 00 60 1d 08 81 e8 a0 f3 08 00 e9 15 fd ff ff <0f> 0b e8 34 fa ff ff e9 ad fc ff ff 0f 0b e9 31 fe ff ff 0f 0b e9
> RSP: e02b:ffffc900400f3eb0 EFLAGS: 00010006
> RAX: 00000001336c6000 RBX: ffff888140660000 RCX: 0000000000000040
> RDX: ffff8881003027c0 RSI: 0000000000000000 RDI: ffff8881b36c6000
> RBP: ffffffff829d91c0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000008 R11: 0000000000000000 R12: ffff888104e88440
> R13: ffff8881003027c0 R14: 0000000000000000 R15: 0000000000000001
> FS:  0000000000000000(0000) GS:ffff888140640000(0000) knlGS:0000000000000000
> CS:  10000e030 DS: 002b ES: 002b CR0: 0000000080050033
> CR2: 000060b7d78bf198 CR3: 0000000002810000 CR4: 0000000000050660
> Call Trace:
>  switch_mm+0x1c/0x30
>  idle_task_exit+0x55/0x60
>  play_dead_common+0xa/0x20
>  xen_pv_play_dead+0xa/0x60

So this is when bringing the non boot CPUs down and the switch_mm() code
discovers inconsistency between CR3 and the expected value.

Would probably be interesting to print the actual values, but XEN folks
might have an idea.

>  do_idle+0xd1/0xe0
>  cpu_startup_entry+0x19/0x20
>  asm_cpu_bringup_and_idle+0x5/0x1000
> ---[ end trace b068d3cd1b7f5f4b ]---
> smpboot: CPU 1 is now offline
> smpboot: CPU 2 is now offline
> smpboot: CPU 3 is now offline
> smpboot: CPU 4 is now offline
> smpboot: CPU 5 is now offline
> smpboot: CPU 6 is now offline
> smpboot: CPU 7 is now offline
> ACPI: PM: Low-level resume complete
> ACPI: EC: EC started
> ACPI: PM: Restoring platform NVS memory
> xen_acpi_processor: Uploading Xen processor PM info
> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU1
> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU3
> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU5
> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU7
> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU9
> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU11
> --
> CPU2 is up
> installing Xen timer for CPU 3
> cpu 3 spinlock event irq 79
> [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
> ACPI: \_SB_.PLTF.C003: Found 3 idle states
> ACPI: FW issue: working around C-state latencies out of order
> CPU3 is up
> ------------[ cut here ]------------
> cfs_rq->avg.load_avg || cfs_rq->avg.util_avg || cfs_rq->avg.runnable_avg
> installing Xen timer for CPU 4
> WARNING: CPU: 3 PID: 455 at kernel/sched/fair.c:3339  __update_blocked_fair+0x49b/0x4b0

	/*
	 * _avg must be null when _sum are null because _avg = _sum / divider
	 * Make sure that rounding and/or propagation of PELT values never
	 * break this.
	 */
	SCHED_WARN_ON(cfs_rq->avg.load_avg ||
		      cfs_rq->avg.util_avg ||
		      cfs_rq->avg.runnable_avg);

PeterZ, does that ring any bell?

> Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd_timer nf_tables nfnetlink vfat fat intel_rapl_msr think_lmi firmware_attributes_class wmi_bmof intel_rapl_common pcspkr uvcvideo videobuf2_vmalloc videobuf2_memops joydev videobuf2_v4l2 sp5100_tco k10temp videobuf2_common i2c_piix4 iwlwifi videodev mc cfg80211 thinkpad_acpi ipmi_devintf ucsi_acpi platform_profile typec_ucsi ledtrig_audio ipmi_msghandler r8169 rfkill typec snd wmi soundcore video i2c_scmi fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt trusted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul crc32_pclmul crc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ghash_clmulni_intel ttm serio_raw drm_kms_helper cec sdhci_pci cqhci sdhci xhci_pci drm xhci_pci_renesas nvme xhci_hcd ehci_pci mmc_core ehci_hcd nvme_core xen_acpi_processor xen_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
> CPU: 3 PID: 455 Comm: kworker/3:2 Tainted: G        W        --------- ---  5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
> Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17/2021
> Workqueue:  0x0 (events)
> RIP: e030:__update_blocked_fair+0x49b/0x4b0
> Code: 6b fd ff ff 49 8b 96 48 01 00 00 48 89 90 50 09 00 00 e9 ff fc ff ff 48 c7 c7 10 7a 5e 82 c6 05 f3 35 9e 01 01 e8 1f f3 b2 00 <0f> 0b 41 8b 86 38 01 00 00 e9 c6 fc ff ff 0f 1f 80 00 00 00 00 0f
> RSP: e02b:ffffc900410d7ce0 EFLAGS: 00010082
> RAX: 0000000000000000 RBX: 0000000000000018 RCX: ffff8881406d8a08
> RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffff8881406d8a00
> RBP: ffff8881406e9800 R08: 0000000000000048 R09: ffffc900410d7c78
> R10: 0000000000000049 R11: 000000002d2d2d2d R12: ffff8881406e9f80
> R13: ffff8881406e9e40 R14: ffff8881406e96c0 R15: 0000000000000000
> FS:  0000000000000000(0000) GS:ffff8881406c0000(0000) knlGS:0000000000000000
> CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000782e51820000 CR3: 0000000002810000 CR4: 0000000000050660
> Call Trace:
>  update_blocked_averages+0xa8/0x180
>  newidle_balance+0x175/0x380
>  pick_next_task_fair+0x39/0x3e0
>  pick_next_task+0x4c/0xbd0
>  ? dequeue_task_fair+0xba/0x390
>  __schedule+0x13a/0x570
>  schedule+0x44/0xa0
>  worker_thread+0xc0/0x320
>  ? process_one_work+0x390/0x390
>  kthread+0x10f/0x130
>  ? set_kthread_struct+0x40/0x40
>  ret_from_fork+0x22/0x30
> ---[ end trace b068d3cd1b7f5f4c ]---
> cpu 4 spinlock event irq 85
> [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
> ACPI: \_SB_.PLTF.C004: Found 3 idle states
> ACPI: FW issue: working around C-state latencies out of order
> CPU4 is up
> installing Xen timer for CPU 5
> cpu 5 spinlock event irq 91
> [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
> ACPI: \_SB_.PLTF.C005: Found 3 idle states
> ACPI: FW issue: working around C-state latencies out of order
> CPU5 is up


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 01:49:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 01:49:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221196.382783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miRrw-0001xt-JZ; Thu, 04 Nov 2021 01:48:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221196.382783; Thu, 04 Nov 2021 01:48:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miRrw-0001xm-FB; Thu, 04 Nov 2021 01:48:44 +0000
Received: by outflank-mailman (input) for mailman id 221196;
 Thu, 04 Nov 2021 01:48:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xlTz=PX=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1miRrv-0001xg-95
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 01:48:43 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 541a263d-3d11-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 02:48:38 +0100 (CET)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A40aX2c001806; 
 Thu, 4 Nov 2021 01:48:36 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c3n8p5nap-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 01:48:35 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A41eL4E056728;
 Thu, 4 Nov 2021 01:48:34 GMT
Received: from nam04-mw2-obe.outbound.protection.outlook.com
 (mail-mw2nam08lp2171.outbound.protection.outlook.com [104.47.73.171])
 by userp3020.oracle.com with ESMTP id 3c1khwhwcs-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 01:48:34 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB4061.namprd10.prod.outlook.com (2603:10b6:208:182::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 01:48:32 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.011; Thu, 4 Nov 2021
 01:48:32 +0000
Received: from [10.74.107.153] (138.3.200.25) by
 BY5PR04CA0006.namprd04.prod.outlook.com (2603:10b6:a03:1d0::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17 via Frontend
 Transport; Thu, 4 Nov 2021 01:48:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 541a263d-3d11-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=NQdb3wpLkT+ZOd6PhVs5iJNG5n4zFSvhqoGFFDHbzKo=;
 b=YivDU0iN72437ci+gxyfn4sDqHEPGzgVvVLUMJdBgn9mek1YvrpcgWxUjxea5MHYCO6Q
 /EbGEsErf3opvth1qk0rHYZ0ffjdwvLhCanuAGwBEnJqurCEEzcRI7OaBa3Xkv/03uS9
 QVNfp1rdgKls1WteNNanWt5DqmCU2fEy+vo7WK4lRdVI7lkoD7JYEeZvHIQp41/qg7wF
 SrnBhnKsYOXHX1LavcgtnyBpbSK2mZ7m4n3IhBExnUEX+QZgjTqwVJjPCYbSVy1jUO+j
 hR3UiWjTBnr0ORLxxV66hhgoGKcxABGNEVCmgnj3SHKb/S+/mKo7sKsWMywD0RKVqZ4U 1g== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Wl6MFbu4HgjJG+BMJMtkVSjnXXRLyW2aaIfWBcjPokGUsjDyUNgeOEIWodBJERXiajjnP5DNk47nrOWCdqYde7/Gu1K5L4lL08qnbPDUCDYPmeGxtRTwdjkFk6l/Dfw2Wpm9tA9aNN+Kr/i1Xw1PSKFiKVhzy41WkjiVPFuzzKGDsy3dGBvsNzdV+Ju27cBYGQRpf2N63aUQvVee3pTSYLCQlL8n3Gd3Drl1fJdeEXYsIS3i+ZR9nANZlJ6KF8jh7rK/iDg8d7b2/AY0GMKnSJ/JV8rJLRzG/t1pyZSKePWQsNRci5ThHBMwfDP46Vo3dfebmzRjRd9ujJ9qiahPKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NQdb3wpLkT+ZOd6PhVs5iJNG5n4zFSvhqoGFFDHbzKo=;
 b=lKQjhQy4UvVllFA5m1EdEJebIRXp1R1AoCK3/wzKfOEyb6tZYHLJfsCV6blRprTkIj7v8DAKEKdtJQ9JfVR67MxK+iFPYlnl6q0dRJ7iCeo52Pu4abU6KreZw8yu+XUT4Thzi11A4upJhPrhyRBiZrT3kxthMAEYjqJxjZ4raNgQ4Zt3dj7j7WO9QLccf0OAbD+Psv2t1W+YHZ5O/iU7V3px7LC+cuVsFjLT7bDYx3yqlJencDAig3sw9WohJrB5lm2DYV2XCgtiEg6RdzVJ+52m0aZvi5G4xcQxPlMroJ4kefAS//t6WnrmX4vIrpdNGBCAXZWuhGbYy0XkWjI8ZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NQdb3wpLkT+ZOd6PhVs5iJNG5n4zFSvhqoGFFDHbzKo=;
 b=xlFkK6VrsG/hFQ07YXpXoveQHYrDVm4NvScHwptR7Bq09WDKbp96eoa3Ee4Br/1gvmAh9vXatLwO/ZjrX3vekFxncTSdIFWTBGeBd2AfHaZMf4Rw5DH/2ai5jOH77cUX341FOJTW12vrUnRsBUM0ELAbq8MIbm8QHxFQKMFaTLI=
Authentication-Results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <ad39f8e8-b377-dfef-b977-1afe4e6d2efb@oracle.com>
Date: Wed, 3 Nov 2021 21:48:27 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v2] xen/balloon: rename alloc/free_xenballooned_pages
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>
References: <20211102092234.17852-1-jgross@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211102092234.17852-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY5PR04CA0006.namprd04.prod.outlook.com
 (2603:10b6:a03:1d0::16) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 28a35a24-133f-4f62-0058-08d99f353515
X-MS-TrafficTypeDiagnostic: MN2PR10MB4061:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB40610CEDB88B65C8187E9EA98A8D9@MN2PR10MB4061.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2582;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	nY7lVVcwSQagOAxyLdxmZyp/v1hrbK+Q3bCWhbAKA3BhuMVAwhP92SSfa+hO4eQND+kl9zZqOLYax/X73VwzdaRS3u/5Gfq/bERZQRvzjykj2O0/A9wY4QX2jBzooAwik7UtkuTIxPWdb3m2M51lFe59ikKKgNgQVHjZsJEcM5qndmCydpR56vekbipxb3JuHv1MMSxRp21Pag2eSEpf1sKh0XRUcpqshpyH0QNOJKIk9yVkDDhKezFDSsLfXDhFz1ky4v8tK2Mf/UWCTDXaTD/nwj7Fnd9tCDrLRJCBBz0UdklF201jE9clDfXngLkBEanNwqfaanrpwUBcfumkz/nPT2l20klR1nux6rmT+18xPTjg4ZkhanVFuSwmdO0umRSQ/zpA+KG+e8GZyKyqqHDLUgwhZlMNLBLOJZ+Ht2Y+xF9B1IJARP5HZOKA8dbvEC7rKih8qM3POq1hT5uG6mijG+LwamyIbJeiwbnMJ30P64MnD9hOSQT9i3S4AhBVAnck4bgzrkMKgDEpLXbovK2Ja20+IXXCgNmTt4BT9kjIK2/9OiPBxqLbeQWvgia8pV9D/0got57upj4qD35z8r/nQsGXtxIBS9l+FRDyy3KUD9I3NS2s5D7NsGvdZLVKrkuYLM8W8vg+A58LGxx351khrT7hZF5CBIOvzLIfnDCxNoYRsvsN/TwLH8oZsgkEQSnT6S1ehoomscfQbYhUlllgGVshnezzB8nCg06RkDel94HzF70lDEIjm/R6I+8b
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6666004)(6486002)(66946007)(316002)(38100700002)(8676002)(5660300002)(86362001)(53546011)(16576012)(186003)(508600001)(4744005)(2906002)(2616005)(31696002)(956004)(26005)(66476007)(31686004)(66556008)(44832011)(4326008)(8936002)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?cnNwNkVOUmZGNjhkWmZGd0hEaVYxMHhFNnIxdjZhbUJEdFlwN1VvTHdLSENL?=
 =?utf-8?B?Yld4NnJDS2o5Rnk0YXlEdDl0WXdXME1HaDU4VzhBK1Frek80dEZHem9kLzNV?=
 =?utf-8?B?bEZvT3FFSXhIdmcxUDFjQUtVWHA3anBOVDJFUStPaHQzQVJrTlU5MitaS28z?=
 =?utf-8?B?bHlaYmkwWDZsSjM0eUFXSUFSRmpKbndqMnRyQ0JCR1NXaEIvRTJwVTFwSTBW?=
 =?utf-8?B?Qm5Mcm5QSDcvc2ZFakkyQ2R2eTVacFBKbFMxM0crWHNBVi9ZWEZUT2N6Y0Qz?=
 =?utf-8?B?UTZOUTBPYjNsUUVTa05xSzI4dHgva1hHOVYvOUNFa1QzQmovdGlzc2FzdXN4?=
 =?utf-8?B?UlBwajVUZmRuaGxvMnpaS0ttSmwxT0xmNEpLODlRQ05MN050M3JRZTBkZGJO?=
 =?utf-8?B?U1RxaGdXWkt2V2xSS0syaW0vMWRJQ1FJb1JRNTQrUkhuRzd5d3R0b3dnQXRz?=
 =?utf-8?B?bDdXZW5WK21JL3VYOHBGVVlqTm42bkFoUWpxOWZtRmlSTFg2c2hYb0g4WjZZ?=
 =?utf-8?B?NC9yZ281bDk3SXVzV1FsWVl2eXVtamdvMjBheXl2aWdkZWFjRml5NFp5V1cv?=
 =?utf-8?B?SWJQT0UrYjFBMUNURUpMbnlEcThEUlJLRm5HMUU4U1M0MFJaUzltMkV6STha?=
 =?utf-8?B?dmM1Y1didmdpUVR5MXMyQnZKV0FXSFFvVmx1QXhLcjBmTkJtTURmTEc4ejR1?=
 =?utf-8?B?K1RNY294MW5oZmRDNDJITzYzOWFoS3Fob0F2MkVkTTVrNUJmSXZKaTN2UnIz?=
 =?utf-8?B?eUVKY25uN3pieURKeC9HaE5uUXpvdVVCSk9lQkhTUEQ2K0xvbmtSMDVnWENL?=
 =?utf-8?B?UUxoWEVmaVFhclVGOTJXWDlNOXg5OVIxSC94Mmh6TDNHZ2t6eFhqSnF6Szhu?=
 =?utf-8?B?OFExRS9ZV0RiT2ZlY0Y5V2NoY0UxNkplU0ZiWkJqanJkM0V6RDRFZ2ZLTmtZ?=
 =?utf-8?B?d01jVDlvVExoKzlhTk1kdS9tR0ZyTFhiczBwTTB4WDFKaEZpTG5hcCtvTnhv?=
 =?utf-8?B?YlpiTGpoeko2R2dUUmJQZnBlYi9XOEJsT2tHNm8zdVp3T2x2SThvL2pPbEFo?=
 =?utf-8?B?NnB1ZDhiRWNkbWxhUGdRQWhoVlBZL05ZQ3ozZ0d0bHl6T1FKeVB6dHFTU0Vu?=
 =?utf-8?B?NzhYNEtrMXM0R2VDTTJoREdZTmhDazl3TmtZMTZMWWRVK1ltODNxQVUvcjZL?=
 =?utf-8?B?K3dkVmYyTHMzYnA4NXNvdXhiQTQ2SFA5WWYxc3pqSnRONmtJbjk2cGNSYWp2?=
 =?utf-8?B?UzI0WTlSYWVPSHRXc1ordXpUT0dYQU5BVGFrNnVzSjZIK0VEV01ENVY5T3hW?=
 =?utf-8?B?aDk1UGgzVStnWEZuZ1ViaEczR1g1UGd2NGdlUDhLRzQySkM2RW1DNFJTZHVN?=
 =?utf-8?B?bGlacFFNWjRvQVVQN3BxQ29JTWQybkZoQ0syRys3VVR6WjUwSzlPbSs1NGxO?=
 =?utf-8?B?QTRnOXBQNExIL2RrMXRWSmVGeFBjOUFKRmhNUk5LcndURkp1UXZjNld3d2Ry?=
 =?utf-8?B?T1RzVGxWK2Q5YUFaeEtFbDkyUzM0VWxtUGIwVjlKZElnZTZKbFF3R3k0eklB?=
 =?utf-8?B?bkYrS2ovRDFCeVZobG9LWGJUVW81T3RZS2xPWGFHeHRmS2NONHo5MlFyQllL?=
 =?utf-8?B?NktlbXMvUVNxQjV3M2pra3JQSlN2aGwweFNMZDRQSHVHMmlEOW9CYkJWK1BZ?=
 =?utf-8?B?ZDRqQitEVHFNNHRZR21iSTMyNFRrVEhLeisvSGJxVHprUzVCdDEwY0p3VzRi?=
 =?utf-8?B?NnNhWW1SOWo2WVNObk9rYnk5akp0aS9CcnFicjJjMFh2ZDVIUHlubnptWlFD?=
 =?utf-8?B?RElxWWxBQ1I2R3pPSzN5VUJ5Z3pEcVNCeUg3OERZRHNaZFE1TUx5R294MUNP?=
 =?utf-8?B?dkQ3UWI4a1dLSkVPaUs2aytPRE9uYzZEZDM3QXRFa1R3bVR1bUJkUDJ0Nkw4?=
 =?utf-8?B?cXArMUlLcUFIL2R1SHpIajlIMW5QM0VMbVBrMUpDSmdGRzMrLzFNbmJBVVVI?=
 =?utf-8?B?bEIvQmE3VjFTam0wSTNvOVpCNEFYMTYxV1NhT2R5d2t5R01GME9ROWRQS0wr?=
 =?utf-8?B?TTNzcXpmbWRjUXRNU1llR2ljeVVxVWwvV01LUm9ETXh0MFJLL3I3TmE0dkJS?=
 =?utf-8?B?c3BJandSMlJZcnQxcnAzVEE5N0JuKzJrYVQ3ekg4QlFxRWJtQ0tNWlRKdDhP?=
 =?utf-8?B?aGMxeEhFWC9DMG56aERwb2N4cWlDdGR0WWRKbUJ5TE0rUTloNy9RazI2RGRy?=
 =?utf-8?Q?5xXHwVGGmbL2+OFk/wOWza7ftyWhAn+2bV/eNViFz4=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 28a35a24-133f-4f62-0058-08d99f353515
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 01:48:32.4776
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tWqA+ola3/7Q+Xd9AiE+6xiQ/Yiay2cgn3kmiR2TIWnsuLLBJ+bRZLlVakvQNoKtipN7sDkRA3+txi9JWzcZPR+jKsrJt61F0nnSGPJfCsI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4061
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10157 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 bulkscore=0
 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111040006
X-Proofpoint-ORIG-GUID: 9RDw6VqlBx2VvRa3rthxBVCrolH9atBA
X-Proofpoint-GUID: 9RDw6VqlBx2VvRa3rthxBVCrolH9atBA


On 11/2/21 5:22 AM, Juergen Gross wrote:
> alloc_xenballooned_pages() and free_xenballooned_pages() are used as
> direct replacements of xen_alloc_unpopulated_pages() and
> xen_free_unpopulated_pages() in case CONFIG_XEN_UNPOPULATED_ALLOC isn't
> defined.
>
> Guard both functions with !CONFIG_XEN_UNPOPULATED_ALLOC and rename them
> to the xen_*() variants they are replacing. This allows to remove some
> ifdeffery from the xen.h header file. Adapt the prototype of the
> functions to match.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 01:55:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 01:55:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221203.382794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miRyL-0003NV-AI; Thu, 04 Nov 2021 01:55:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221203.382794; Thu, 04 Nov 2021 01:55:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miRyL-0003NO-6v; Thu, 04 Nov 2021 01:55:21 +0000
Received: by outflank-mailman (input) for mailman id 221203;
 Thu, 04 Nov 2021 01:55:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xlTz=PX=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1miRyJ-0003NI-Pp
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 01:55:19 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 421b7928-3d12-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 02:55:18 +0100 (CET)
Received: from pps.filterd (m0246629.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A40jHnr020385; 
 Thu, 4 Nov 2021 01:55:13 GMT
Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c3q1nd8f4-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 01:55:13 +0000
Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1])
 by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A41pxYq098955;
 Thu, 4 Nov 2021 01:55:12 GMT
Received: from nam11-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168])
 by aserp3020.oracle.com with ESMTP id 3c0wv76ve6-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 01:55:12 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BL0PR10MB2866.namprd10.prod.outlook.com (2603:10b6:208:30::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Thu, 4 Nov
 2021 01:55:10 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.011; Thu, 4 Nov 2021
 01:55:10 +0000
Received: from [10.74.107.153] (138.3.200.25) by
 BYAPR03CA0012.namprd03.prod.outlook.com (2603:10b6:a02:a8::25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.15 via Frontend Transport; Thu, 4 Nov 2021 01:55:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 421b7928-3d12-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=mtsdcrwN2psltZmt0adIPJ2dJJsOPTWwTR+VJ8YLfdg=;
 b=M5drTKj+8fDbvo7tBcrUdTgGX0yWBorNaSxQqVEPo/5YJi7MjIeL6RPMoiiyYUZtFMPV
 5XZnOdbYArMbuVMJu06SaHvBU8M3ItXZtoXxF2V+/48xhPJ4SLtjPs/ljsAWSezUfrw5
 Z+/B9NKTVBiKp73tRENmT98lMgjJmzhW8Wf+dzXbUyyk3/cvBeQukfq51lE+Izg/sqT9
 wJ77Y9QzbkOZY85aJotMGsKKGHIReOe/LV7azR/tb/SaH97R+L9zYX6zU5ZcRoBn8pHe
 3m60vnMjXbtPFX2/nfn740GkJ7Jfzu1sduBvwTZXjnP5SnGc4KKfyHtqwuPdimVwduuo qw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IN53X1iXaaet0wd+9hpr1wxKnjyGjZp4k1k6VaWKifZCJyTplMJW7yIc/TV6VhbIm6O4k9NeMu4RnR5F9j1VRfLxsTV0kM0sAKfbxrNOqPsP5G52yyo1G9xPeYVCvwUc09nGrnGdFV9awhMmQAN9mX7xVgvJCH9SPFtbn/1VyXKbqjlr7zXjxj8xzf8qhclUFnCP9H+zeu5wE0mUwDkfalKO7lhFhCmuMbHDalNxnuFul/SmzOp6zcShOjyW9gsU8uVDRE7EdW6qNOCUkEiBNgqaqDjoDI5Ux5AfY8+hsRv9MxJMzTSz/WfFxv14Gvrc9uiZJP2AjMOp6Limm2bNZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mtsdcrwN2psltZmt0adIPJ2dJJsOPTWwTR+VJ8YLfdg=;
 b=I8exgqiCTmukDMrq5ZybIeHNqnXnyQfFXfEp0ntFpsJbmXl2xsnl8TjvKgC41f1nkcK8uqmVqdNSd+G+DTxxRsBptGOgnWkZM5Hf9GVicq9Jzz0rKdbIRdFxCOP+CIbexgON0nKpruvknePrdDsKVl1I5bkehW5VHIGAv52xfPo1Xi1wIf1IsSvQ25S9yFxOaPQmveNFVOd4c7rD4l6SIOIob4GjYGn00f/octhdSYDM/Rl7FxWp0WtXUILfPsuOMmjYBkRpwLeDZ/hiujRj2MS5QXJhphWF+wlv+9QA2w8gRgX5k3+R8saOwnP1Zhm1tigjmKl7ixU8uDotehRblQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mtsdcrwN2psltZmt0adIPJ2dJJsOPTWwTR+VJ8YLfdg=;
 b=qsrP1Ns3LeSGxDh6AhsNFUvv/S4mymBEhMvzqqS3U9HmAhOoAvvMfR/OZAVo8elmhwRv8Luv0G4nHXQuO5wA7LYvV2MkhX4D4uYkF226ZZDravsL3Sg3w4EQJtYEFWMIIi77gJ9v+6sAifBk2U8/oLhuNlR/yF7XqmVqVDHkQ6w=
Authentication-Results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
Date: Wed, 3 Nov 2021 21:55:05 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
        Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
        =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
References: <20211102091944.17487-1-jgross@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211102091944.17487-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BYAPR03CA0012.namprd03.prod.outlook.com
 (2603:10b6:a02:a8::25) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b3ee48a6-7344-48ab-714d-08d99f36226d
X-MS-TrafficTypeDiagnostic: BL0PR10MB2866:
X-Microsoft-Antispam-PRVS: 
	<BL0PR10MB28661F96FA9A38F099A3D3218A8D9@BL0PR10MB2866.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	Soh9GpFSHkvrhJzOhbsgK/Crsa/tmOzMVHn+EHkUn4u6Db+i3SAOeeTz/MScnR7rKeW9NrKOMiCfArtmFOcAXPpK9e3zySG5ziBdrI9LPwQ3f0QiJs0e+/fNit0pVmMIMVF/xs8ZRzI/baGbPbTmDBmCTheVJzAvozPbGdlGtmwg7asV8jf0BwBWOtd2bQ167vzaeEz7fGPz2sJbgkmxcye9JlxW5vry1BqI0MWX179wR/r8WRvqZoU9PXC5aXDuLX4o1B2ExoRgc9GCE+JCbrOF3QqWywdloBOErp4LUgoEmewGwwE3KhYqtrOsQpany8R/DSNaz3gxvBwLh5IloraEw4XkNEdyZhq5Y2SSKcJ0ANPV+AyAjVLdYxuQ2oMzc/MNMWemVIPYAVHXCmYES7IMSp3ba4rEZtdThK3gWggtYlqj0jPQo+qLKhYC10GMChzk8nLbtLKYBH6cjA1xoVObAGEDXFyUo5oiFW+ZHU546m3kOfMUTFqLS6K1qTXaWuRtGWDvqtC83xKC3SELZSfcMG9Nw6xFrR9vxGPnURFvWT25wZYKTvwyK9LWzNr21HD1wjQVfX5P10XhsFJGtLacEbkZ3z3m2C4S02eGbbGpz33OD6P21ZplU+6A7VXMGbI6fU2/YQZG/3Xfas7Z6+l7C9qJVAcutzcuwIYtTcqvT+R6B2qOdR66aMlveMsR0u1eqenuQLgy/V9BB4JLt1U7yZ1OZKy1n75bVKShFtksqgSOzqYzEigv/SuSyqfd
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(54906003)(83380400001)(31686004)(2906002)(86362001)(6666004)(26005)(31696002)(38100700002)(8936002)(4326008)(5660300002)(16576012)(66946007)(8676002)(508600001)(53546011)(44832011)(186003)(6486002)(66556008)(36756003)(2616005)(66476007)(66574015)(956004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?SStkL0FsZG1scFdPaEl1R29YSzUzUnprWXdPSUFydHY5aVQ4NmxONDhPOVVE?=
 =?utf-8?B?TXd4TytjLzVNdnAxWERkMlVRVm56ZnFVRUpuU3BpcGVNT1hmWEdGTTFwRnU4?=
 =?utf-8?B?RjUreE82M0xLeUVkK3J2N1NwNGNuTFNINkJFb2ozdG82ejYzREpEYlBNcDFq?=
 =?utf-8?B?d09xc0tXNi8vOVlhK2dXU2Q1SVF1TWlTRVV3K2NqenFwQUNtRm1GTElPSlMy?=
 =?utf-8?B?S2hPSTd5SHpacTBIOW5ZOFRXQ2FNYVliWUdOcWFSN2hiWGtsZ2JQZlBkcUxJ?=
 =?utf-8?B?UWREbDVTSWJxQ2hzUVRyTHhGTlBpSk4wM1FQWFpvQ04rZTFBVG9UcGliVy9w?=
 =?utf-8?B?RVY5UVVPdXJxa1orc055Tzh2RVF1QnU2aXJKT3BnMVVsei9HZHIvVS9rRVFV?=
 =?utf-8?B?bFBYeXZXajB6WUlYVDFmUkRVMDYxOUpoM044dHlWQ0pKLzZzdW1UZUxhU1RL?=
 =?utf-8?B?VzRpdjVsV1d6VWhHWWE1QmlwT0M3cmVUT2k4Yy9mcWxqWnhXMWJzUUhGdmw5?=
 =?utf-8?B?b0pUNitYT1pPM3pmQVIreFBScGU1dHEzMDFPcFluQ2pNUWw0dDFqMmxIRGcy?=
 =?utf-8?B?d3Fweld5K1FvdDEvOEhNeGVKRDRIaWZKRE9Ba0JRSXM3R00xRm9NZmV6NEhm?=
 =?utf-8?B?YUFvWElBZk52dUJzV1BBUkcwWUlDN2tsaFJpaW1wbFUrYmNpKzlMUm5GTlhW?=
 =?utf-8?B?ZmtaaFA4b2plMGhtVTRrUlVWSVpXS3p2Z2gweFlnNUljTFB4YURBejhEUVJk?=
 =?utf-8?B?SU82ZVV0NFZIaC9IS1dacFVZbGJTRmZrbnRyOXZSM016bzZTc3dxdFk4L1Fx?=
 =?utf-8?B?WEVTRFJrZDBoN294T2xkQUM5VkFzek9SSTJkaHphOFJoRE05R2xmbTNVNEoy?=
 =?utf-8?B?M01CQWlLeGtlZFRoL1c2emR4aXdZa1liWDZzenp1djRrVnZYWkgvMXdmY04v?=
 =?utf-8?B?YTd2V3dJb2NPV3BVL3N6TzVaejZUN2RMUC9GL3I4ZnQwUUJDclh0SWp3TkNu?=
 =?utf-8?B?eldha2JMeEFFVTc2ai9tejdJYUttcXg0RFVUVlFxV0Nqc1lQa0M3V3o3U01N?=
 =?utf-8?B?Wno3SXNKU3hWQ25LODNCcnZ1RjhvdU9pQkYrNjlaaElPeVM1Y1E2WW8wQ2dY?=
 =?utf-8?B?eStYL0VyeHcvZDZqa2VVdDJCVWg4TTNYZWRaY3Q3MnBFQmhabEJ5SktGcTV4?=
 =?utf-8?B?cDY0VUtZR0N6MUY1ZVMyd01QOFdRSlo0NG5rTUNTOXBHQzNpYk80Z2UwRlp1?=
 =?utf-8?B?YnJGelFvZksyK054MUtmZzRwdmU5cnJqUzZCVzYyR2l4SExvb3lmWlVTUnhs?=
 =?utf-8?B?ZzdPWFdrMHZzbU8vWjdZQXlSRHN6b2QyaHREbHdVZndaaTF6R2RlUHlvSm1x?=
 =?utf-8?B?c0ZWY3pVNzFiT0Y1blJYWUtqNFc1NlJLN0ZvN2hVMkdnSjZjZ2xxUFlUeVg0?=
 =?utf-8?B?ZGdLOFRUVU9FNDdCcDdGOW5KaWszWEltYys5d3BHdytTYXhIdzNuZms1N0Jo?=
 =?utf-8?B?ZmxJTzRsSWF0dFhPcitBWEpoNG1OamlCUk1jZG9paVIrOGR3Rm5ZVzdxeDFO?=
 =?utf-8?B?dU53SHFWZDRvR1VMdDZNNUU1VzZUeVVQenhYQTlFSnZLd1c5Y2Z1ZFQ2S3VC?=
 =?utf-8?B?TGxBd0lDN0kwQlBSNUQvT0xZdW5UbXllUno3ZHVJWW1HT2JLQ2pXakJ5ZVpZ?=
 =?utf-8?B?Ri9PcHV1aDRxS3hJU2ZNM1h2UTdWNUkvY0Z4WXRlMEQxbVdGL25BdHdpRmhO?=
 =?utf-8?B?cGZWeVBvcHNEc0c2cndVRGlBQ1R4eU84OGM2T2U0NmY3ZDNFaTFYUmIvaUl2?=
 =?utf-8?B?NWtWQW95anRHWWd5WHhVRElwZWYyQ0VLNEV1d2xyOFM4Mng5VlJtelUzZ3ho?=
 =?utf-8?B?eGVnemNJYlJtaTVDMHk2MFNoRlExRFZCbWlLRmxjcjRnWHJFYm9NNHkyUjlY?=
 =?utf-8?B?OHBoUXVNdnlRQys2RGlEazlHOHF4TndhaTBSWlNZNzhiRmxNS0NMRG5UU3ly?=
 =?utf-8?B?YkRLNmFJUUhsNjZland0OFZaV0JMYmZ4Z25JcExDNW1BMGJlTDF6MzZUZEdE?=
 =?utf-8?B?ZlJnS0lMNWRKQnM4cFZBSnBPVEhpNU9EZ3NXYXZvYUl4bWVSWnIrTnloVkJz?=
 =?utf-8?B?bTdQYVRkZjVzRXd4eG45dmJWeVl0WVI2NlZMSFoyN1BrL1JKVWRxOHpZUWtL?=
 =?utf-8?B?NTFKOUgvQUs5K1E4eHlDSVZPY2pqamx5UHdvNTNnWi9iNTJFTWVBMFJIaExY?=
 =?utf-8?Q?zJJh9mpn5jWreZfEkEuihqClHcwkjAJ1l8AHv+6HpM=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b3ee48a6-7344-48ab-714d-08d99f36226d
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 01:55:10.6125
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 34X3JnH9j7h2utarHdGhzYhC5q8JXA4FpniZdmGy7YAb+8roYMxsSNcY+vTNMoye9LzffNZNQr5wlnWthyRUtXnm3jcwvYUcQhgsXvW1Fqg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB2866
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10157 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 malwarescore=0
 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 spamscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111040007
X-Proofpoint-ORIG-GUID: NNkTtpbl3soZRXfNxlpO9Hy15d_yNAMq
X-Proofpoint-GUID: NNkTtpbl3soZRXfNxlpO9Hy15d_yNAMq


On 11/2/21 5:19 AM, Juergen Gross wrote:
> When running as PVH or HVM guest with actual memory < max memory the
> hypervisor is using "populate on demand" in order to allow the guest
> to balloon down from its maximum memory size. For this to work
> correctly the guest must not touch more memory pages than its target
> memory size as otherwise the PoD cache will be exhausted and the guest
> is crashed as a result of that.
>
> In extreme cases ballooning down might not be finished today before
> the init process is started, which can consume lots of memory.
>
> In order to avoid random boot crashes in such cases, add a late init
> call to wait for ballooning down having finished for PVH/HVM guests.
>
> Warn on console if initial ballooning fails, panic() after stalling
> for more than 3 minutes per default. Add a module parameter for
> changing this timeout.
>
> Cc: <stable@vger.kernel.org>
> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>



Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 02:53:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 02:53:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221210.382804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miSri-0000xn-MN; Thu, 04 Nov 2021 02:52:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221210.382804; Thu, 04 Nov 2021 02:52:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miSri-0000xg-JQ; Thu, 04 Nov 2021 02:52:34 +0000
Received: by outflank-mailman (input) for mailman id 221210;
 Thu, 04 Nov 2021 02:52:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miSrg-0000xW-Tn; Thu, 04 Nov 2021 02:52:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miSrg-0001Cg-HW; Thu, 04 Nov 2021 02:52:32 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miSrg-0005Tf-6K; Thu, 04 Nov 2021 02:52:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miSrg-0007Db-5Y; Thu, 04 Nov 2021 02:52:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Hfx7u7qrevI1Oe/P60/GdobIIJV+QPS7fd6y5+6wtnU=; b=ljZFOekpoplYa8kX+O3q0X0bIV
	dwTaQ01DpijxlipGK5nUo/lZi5h4JAGRs5UXc0MsG0w0K8FVrQdPH8Jt06+8yr+8p+80vx0/e2e8T
	sqGcwkhL93mjy40+YIBBUBS+4/coMIipYpRaQlsxWNMmihKCDRKXQMzUOHYgQcCAf3/I=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166037-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166037: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=512863ed238d7390f74d43f0ba298b1dfa8f4803
X-Osstest-Versions-That:
    xen=3231ddf9dc384a386df43fd1c0a0bcbba9d79569
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Nov 2021 02:52:32 +0000

flight 166037 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166037/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  512863ed238d7390f74d43f0ba298b1dfa8f4803
baseline version:
 xen                  3231ddf9dc384a386df43fd1c0a0bcbba9d79569

Last test of basis   166034  2021-11-03 19:01:38 Z    0 days
Testing same since   166037  2021-11-03 23:00:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   3231ddf9dc..512863ed23  512863ed238d7390f74d43f0ba298b1dfa8f4803 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 05:01:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 05:01:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221220.382819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miUrf-0005CT-Qv; Thu, 04 Nov 2021 05:00:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221220.382819; Thu, 04 Nov 2021 05:00:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miUrf-0005CM-MO; Thu, 04 Nov 2021 05:00:39 +0000
Received: by outflank-mailman (input) for mailman id 221220;
 Thu, 04 Nov 2021 05:00:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miUre-0005CC-Af; Thu, 04 Nov 2021 05:00:38 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miUrd-0003oq-QZ; Thu, 04 Nov 2021 05:00:37 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miUrd-00032o-FF; Thu, 04 Nov 2021 05:00:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miUrd-0001SL-Em; Thu, 04 Nov 2021 05:00:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kH/ZgbqVE/hnLTttwSrwF8KCdvNm1al/of4nnhtyWAc=; b=14XovU74r9t8pzE7vlZ1Hb9Cif
	6utr6DX6FMyCf95IsAoIE70AvpNmhdbBumowpjPQynSOQHQnvDwHiHYo1Z0jDZlcXcb1hyQ/lP0+R
	gyVT4Cy97M6grmmJNTVInnHtYFk4xRvql5ZrwkKLUTTyT0mZ44n9gnHoxtups3H6HjPQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166026-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166026: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=dcd68326d29b62f3039e4f4d23d3e38f24d37360
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Nov 2021 05:00:37 +0000

flight 166026 linux-linus real [real]
flight 166036 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166026/
http://logs.test-lab.xenproject.org/osstest/logs/166036/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                dcd68326d29b62f3039e4f4d23d3e38f24d37360
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    2 days
Failing since        165992  2021-11-02 05:40:21 Z    1 days    3 attempts
Testing same since   166026  2021-11-03 08:38:50 Z    0 days    1 attempts

------------------------------------------------------------
1249 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 116196 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 05:43:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 05:43:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221228.382833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miVXG-0000ob-UQ; Thu, 04 Nov 2021 05:43:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221228.382833; Thu, 04 Nov 2021 05:43:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miVXG-0000oU-RH; Thu, 04 Nov 2021 05:43:38 +0000
Received: by outflank-mailman (input) for mailman id 221228;
 Thu, 04 Nov 2021 05:43:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTzK=PX=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1miVXF-0000oO-CC
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 05:43:37 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061a.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25ceec0f-3d32-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 06:43:35 +0100 (CET)
Received: from BN9PR03CA0777.namprd03.prod.outlook.com (2603:10b6:408:13a::32)
 by CO6PR02MB8753.namprd02.prod.outlook.com (2603:10b6:303:135::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Thu, 4 Nov
 2021 05:43:31 +0000
Received: from BN1NAM02FT018.eop-nam02.prod.protection.outlook.com
 (2603:10b6:408:13a:cafe::da) by BN9PR03CA0777.outlook.office365.com
 (2603:10b6:408:13a::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Thu, 4 Nov 2021 05:43:31 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 BN1NAM02FT018.mail.protection.outlook.com (10.13.3.159) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Thu, 4 Nov 2021 05:43:31 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Wed, 3 Nov 2021 22:43:30 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Wed, 3 Nov 2021 22:43:30 -0700
Received: from [172.19.2.115] (port=60174 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1miVX8-0001OJ-53; Wed, 03 Nov 2021 22:43:30 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25ceec0f-3d32-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QBBvrA7bSXKT9FtkCkYxnBOSZrlHu0/iapqtYgp/KonJlnY3vCeKKYB7bg/gz93CmjDEs8Qr/8xLYCG8bNidngUGuSH49kfPH4FaMe3l2qGCpdkP2Mj95EUl92E4/mb0rDC0K2TFpFQNsBURO5o0TF/EAnLTzyh5HySgJHXyZ41Z6vnfAB2rTwjyha0sAYgVRgkEA/YMF4a0cZDtSa87x32kfYVN0Vyr86dRENXOtlNayaqY+UBZDI9ztYOdAAsvr7fFDbCHmjIEw16OUq0dKU91DyeZb64ZpJ5FAVB44IHpzUdn6S/a6PempkCHzhlT/ow3Ke0zzHwzFJMcyVTMoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LWMRBqd3yfJugKLPOYJKViPfzC8e1kdNt05Z6GfIEW8=;
 b=l5t6cLlL0YJdO3RF8LDw5gFsOckS+5hKEk6e28dEzDo9xbmm8TgXW+EVjq6mxJ4V+w2dnJRuJ+yF6Y5z9T9qq4CDmhS9iIRNOhiVMiLxczUvBSbrGuyD8mD2KpG17whyl08RzhSlDCD0FppJBJF3la+2l0atw7BNmt7+RGGOp4UDXhfR5rzlEnJQO+mxnosonLUJ28If5xTdeDac+bR/CwRyfj0vc71/M26Ei7hcBAYtANdDTrY4Nae72mWZWeFOUkcxX/DQYVhfJYUVxp0BjCnUeJPOaA3IUoAe/x/jiTadPUqlhUErWVUWHUiBUtuQ1+31VNrV4KN5Pc0OrMdIdw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LWMRBqd3yfJugKLPOYJKViPfzC8e1kdNt05Z6GfIEW8=;
 b=dJEv5SeTq+swFV82EM63RUsZ+ZkCsRVFRl0fYJkhapdRTqRJtoD3b942b4D/AVlRLOMvF1KuAkd4O5wXfzKaWzjWnNo21svM8dphRJ0Kzy1/uvGuPresuWacQuqPON/4YIPqlEPb8lCaMmcpfPgHdSLXF0AWw2RvyYnO7j6/eXI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, Vikram Garhwal
	<fnu.vikram@xilinx.com>
Subject: [XEN][PATCH 0/1] Update libfdt to v1.6.1
Date: Wed, 3 Nov 2021 22:43:21 -0700
Message-ID: <1636004602-258775-1-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7d043d38-0dc7-4f4f-4674-08d99f5608bc
X-MS-TrafficTypeDiagnostic: CO6PR02MB8753:
X-Microsoft-Antispam-PRVS:
	<CO6PR02MB875319F601FF2DBCD16AF8ACBC8D9@CO6PR02MB8753.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:2803;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Zx1ZwSl+HRrkz1ivA2RCWsfaI+lytweTO+GycBS6kLOuRzne2Xsq8yUzfzFwRL/bsnto1CFYvlw0pLiOyQf/VYCznL/x8Ez9/u1dKtmL65SL/GlFCx7KfMB/f1NWWA9ONMIEapy7V90fhS6byx2ZiimX3uC3nxX1Sudm9WdxOEhPTJDkYWcXROpp+v6IJau96cKV/kAL3eZiXtiukOgxNI9PuoCCRQjO7gJrhUHYcdnAbWkTv3+8V/iFPee7KZNUEEIEGLIJN1Vh4QyCvtiF23yYvEhl4BB0ZaBVqGGkZ37O7K3GsWbFh+1zqd40JcGuODXKicPOnPDxQNb1eUgrumujQt84gowP6LRI2KMWQinYIND/eyrX7+45ooR7m6N7HWSRAAZurHNGctOptqD93Lpwf55UjPvPkrrh1YNsU0Ub7d+6AGdwmAr9BSl8qDj2taDtWZdU2ZLFzwt53FEirwYTdOQP3M33PzPylih6Nf4dsdsw0gbOm9QoBTKwO4xm5SsHLnOm7gWROZirn1VbJMz9wcYFTHb/8Uzm4TsyuhTgsf9xzzrcbEE3JL8wBji1/rfYiuXGs6ID6OxREeisonVRu3UWMIyw89SztqJ5mO4qzcKAPCI8r536AbsOJ0jpu8INTMhxj7r+7YCEDD5+IE752n2ObXncE7o+VhM6gOeHE9mt5YIw4kVg4ABpgjGqIEh0CTBEMD3ks3Ku38BU+ObQcF5NA1SHt8Q6+dlgmza0TL/npHuVoQQx3F1L2L4IrKDg6BIqm8xdQ2b4d0REz7/6Bc6bQi3s3DPv5siBUUykfoWOfOdb1TqfWhCmpCZt
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(36860700001)(47076005)(8676002)(70586007)(2616005)(6666004)(83380400001)(82310400003)(7696005)(426003)(70206006)(186003)(356005)(2906002)(508600001)(7636003)(15650500001)(54906003)(36756003)(6916009)(4326008)(316002)(26005)(36906005)(107886003)(336012)(5660300002)(9786002)(8936002)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 05:43:31.0876
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d043d38-0dc7-4f4f-4674-08d99f5608bc
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1NAM02FT018.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR02MB8753

This update is done to support device tree overlays functionality. This is taken
from David Gibson's DTC git: github.com/dgibson/dtc

Regards,
Vikram

Vikram Garhwal (1):
  Update libfdt to v1.6.1

 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 ++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
 xen/include/xen/libfdt/libfdt_env.h | 100 +++-
 15 files changed, 3025 insertions(+), 785 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 05:43:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 05:43:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221229.382844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miVXR-00017f-6t; Thu, 04 Nov 2021 05:43:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221229.382844; Thu, 04 Nov 2021 05:43:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miVXR-00017Y-3B; Thu, 04 Nov 2021 05:43:49 +0000
Received: by outflank-mailman (input) for mailman id 221229;
 Thu, 04 Nov 2021 05:43:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTzK=PX=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1miVXP-0000oO-Kr
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 05:43:48 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2062f.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a8b7815-3d32-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 06:43:43 +0100 (CET)
Received: from BN7PR02CA0014.namprd02.prod.outlook.com (2603:10b6:408:20::27)
 by MWHPR02MB2783.namprd02.prod.outlook.com (2603:10b6:300:107::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Thu, 4 Nov
 2021 05:43:35 +0000
Received: from BN1NAM02FT046.eop-nam02.prod.protection.outlook.com
 (2603:10b6:408:20:cafe::8b) by BN7PR02CA0014.outlook.office365.com
 (2603:10b6:408:20::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Thu, 4 Nov 2021 05:43:35 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 BN1NAM02FT046.mail.protection.outlook.com (10.13.3.181) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Thu, 4 Nov 2021 05:43:34 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Wed, 3 Nov 2021 22:43:33 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Wed, 3 Nov 2021 22:43:33 -0700
Received: from [172.19.2.115] (port=60174 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1miVXB-0001OJ-Cb; Wed, 03 Nov 2021 22:43:33 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a8b7815-3d32-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=n762Q73K90u2o2NnGgKL69hd2am5VxOxvYNxyi8YPpdUrij3rVTjeIP7yje+uUAOB8CTGK2oN23QDDA9apw+iKx46eQSvXwJ9S5yargILsGxgNag5trcbsU4x3QiJFpQs7gPeAeEBBeoxsW6xn6LBhqye50tC/jL1TrbLUc0C/j4Njnn6pbwql2baNnQwGZNhV0+qude0LuE/709Y3uDkbzIOVaoHUStt8iae6eMo427eqlggmEIbdT+Z6pdPH+2tlpVGZRaZzoeQbX76H4kusR9cpXOwHX37GGAgsRY0r2ksXRqWiLrzl0HFGPWINfluAX3zhxEM5I/R8GOypaW3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=i3uJ8ms6Ri7pzwj8Brgpk9WeTZ+Drsqt4uHidQzYG28=;
 b=i2GxcV79X3gpqoFsmQEcfZPIVTtUU7x2XujpygUi16shrsrALVY8m0T1009nBb4aonlI+YEOpBmw1a+nH+RM2YCvmpGgsgOqpHX0W0orpDCGaShrujQqgVR+gf+4zdcRi4gqxpuGmKzb3OqVRQ00h+cIkgs3HJAFYmrEtZO9/DuI2ecUTT7vGVsp3JfsQ71S3IZHesOPJnmBYKvjILVlzPXi73ikrHoNaHAEUi6Liv8zcpspOkL8u9xVqbMvAh3Z2kaBw+unVVf2nY8kf2h/LgqPn0fziWSKx9NdICUm1V1F3f5vFHCPZ+yvZ/IAsmpalcxEDupnZV+jC7GUVf3M7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=i3uJ8ms6Ri7pzwj8Brgpk9WeTZ+Drsqt4uHidQzYG28=;
 b=XTU85LpWDxk7m3BB04yZJoIr+VCZNZ2k13/vIa2OMCMiVXaxU5IeCAiX086QGKVvc67w4G2BJb8op/+LdmXuG9bswZjo5ueZ0sOc94nVPFI5xwF6HyQp/5uek7HcBKBFqFrZFspxUosuokjWEbpPvaulpNxebPZtZcESorhn5U0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, Vikram Garhwal
	<fnu.vikram@xilinx.com>
Subject: [XEN][PATCH 1/1] Update libfdt to v1.6.1
Date: Wed, 3 Nov 2021 22:43:22 -0700
Message-ID: <1636004602-258775-2-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636004602-258775-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636004602-258775-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 944a9800-4d4e-4b92-8df0-08d99f560aeb
X-MS-TrafficTypeDiagnostic: MWHPR02MB2783:
X-Microsoft-Antispam-PRVS:
	<MWHPR02MB27833680F07BAB804D0CB564BC8D9@MWHPR02MB2783.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:2803;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1d20+7powT+5FA4PjXmQalzSAW66MbJF6rRjmyiOrba9PBLurAZKc/acdENkM0NHj0kd0Sd26K9KgSQhNdm6PDiUvWEiA4pfGBmueHlz7cDgDbl4v55yish7MuS764gss8MF8qGumgtHSnjhO1ewuv6ehC76hHFdg48zKultCRo5eH4K7vAr+TN/l/jmRc4md0PFQ2dvkE+rlzGVCSunYQgde48fnHXIxhiriLjf0KYPKwI6gPuFF8K9zYZ2vedYDfL/2RkdfrDNa5iMyamm6V1n0AykzmW3ZyWi15ae+7XLDguBYNEQVJCSgi7Dk/hvv1Bc5iezhIheaNOE9TBHDMhi1YG1Mky5NlUMiNkPKKxio4gTfHDBCc+ryNA12NUakoQYn8cozRLe0HpuhK2TBURtZ6JxtxSEGsqYk7URwVJAb/5JI463fz4Hj7ayF9kgbrZ2g9TT4FjgCpyk8gJ+4lcP1sSGycQNlewufKamvmhNwS8HNQnst0b6Rd/aj//uP07A0zbhDmymJlDdIMoXrp9mgZHAedM91VB0s/Vfj2UJd20D8amXeqPw8bfWHuklYL29SE4NMtPcPMU6uMaXDjUL37Vw5VtMQdXccxO+6UvcHU6+XrtrTj10JCDo35mA4R0YeBMG1KOqCka+iqeiCjbwp8BrgroBblRCr8M07cfOJ/NsECPEVAAveGeZh+IcYajYBdHkx73XzS1Usu2lM2BWDPvog9pxfCkt0X/s19FTr9mXKrebvTRVmMspOwleq0YgkI+EkB1aElP//T12Nf82Hz9enhI/pSJsJrxpuWD5x69h0XeVTnwC3ZZVXW81wivMAQOQy4m9s37QdEi2pVinE/S4HQwjJ2GcnII/z7o=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(186003)(508600001)(8936002)(7696005)(7636003)(356005)(6916009)(36756003)(30864003)(336012)(107886003)(54906003)(83380400001)(8676002)(316002)(426003)(36906005)(82310400003)(2906002)(4326008)(2616005)(6666004)(36860700001)(15650500001)(47076005)(5660300002)(9786002)(70206006)(70586007)(26005)(102446001)(46800400005)(2004002)(559001)(579004);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 05:43:34.7389
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 944a9800-4d4e-4b92-8df0-08d99f560aeb
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1NAM02FT046.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR02MB2783

Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
This update is done to support device tree overlays.

A few minor changes are done to make it compatible with Xen:
fdt_overlay.c: overlay_fixup_phandle()
    Replace  strtoul() simple_strtoul() as strtoul() is not available in Xen lib
    and included lib.h.
    Change char *endptr to const char *endptr.

libfdt_env.h:
    Changed path for config.h and stdbool.h. Remaining Xen changes to
    libfdt_env.h carried over from existing libfdt (v1.4.0)

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 ++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
 xen/include/xen/libfdt/libfdt_env.h | 100 +++-
 15 files changed, 3025 insertions(+), 785 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

diff --git a/xen/common/libfdt/Makefile.libfdt b/xen/common/libfdt/Makefile.libfdt
index 91126c0..b6d8fc0 100644
--- a/xen/common/libfdt/Makefile.libfdt
+++ b/xen/common/libfdt/Makefile.libfdt
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 # Makefile.libfdt
 #
 # This is not a complete Makefile of itself.  Instead, it is designed to
@@ -6,5 +7,12 @@
 LIBFDT_soname = libfdt.$(SHAREDLIB_EXT).1
 LIBFDT_INCLUDES = fdt.h libfdt.h libfdt_env.h
 LIBFDT_VERSION = version.lds
-LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c
+LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c \
+	fdt_addresses.c fdt_overlay.c fdt_check.c
 LIBFDT_OBJS = $(LIBFDT_SRCS:%.c=%.o)
+LIBFDT_LIB = libfdt-$(DTC_VERSION).$(SHAREDLIB_EXT)
+
+libfdt_clean:
+	@$(VECHO) CLEAN "(libfdt)"
+	rm -f $(STD_CLEANFILES:%=$(LIBFDT_dir)/%)
+	rm -f $(LIBFDT_dir)/$(LIBFDT_soname)
diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
index bbc7717..9fe7cf4 100644
--- a/xen/common/libfdt/fdt.c
+++ b/xen/common/libfdt/fdt.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,40 +10,156 @@
 
 #include "libfdt_internal.h"
 
-int fdt_check_header(const void *fdt)
+/*
+ * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
+ * that the given buffer contains what appears to be a flattened
+ * device tree with sane information in its header.
+ */
+int32_t fdt_ro_probe_(const void *fdt)
 {
+	uint32_t totalsize = fdt_totalsize(fdt);
+
+	if (can_assume(VALID_DTB))
+		return totalsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
 	if (fdt_magic(fdt) == FDT_MAGIC) {
 		/* Complete tree */
-		if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
-		if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
+		if (!can_assume(LATEST)) {
+			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+			if (fdt_last_comp_version(fdt) >
+					FDT_LAST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+		}
 	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
 		/* Unfinished sequential-write blob */
-		if (fdt_size_dt_struct(fdt) == 0)
+		if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) == 0)
 			return -FDT_ERR_BADSTATE;
 	} else {
 		return -FDT_ERR_BADMAGIC;
 	}
 
+	if (totalsize < INT32_MAX)
+		return totalsize;
+	else
+		return -FDT_ERR_TRUNCATED;
+}
+
+static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off)
+{
+	return (off >= hdrsize) && (off <= totalsize);
+}
+
+static int check_block_(uint32_t hdrsize, uint32_t totalsize,
+			uint32_t base, uint32_t size)
+{
+	if (!check_off_(hdrsize, totalsize, base))
+		return 0; /* block start out of bounds */
+	if ((base + size) < base)
+		return 0; /* overflow */
+	if (!check_off_(hdrsize, totalsize, base + size))
+		return 0; /* block end out of bounds */
+	return 1;
+}
+
+size_t fdt_header_size_(uint32_t version)
+{
+	if (version <= 1)
+		return FDT_V1_SIZE;
+	else if (version <= 2)
+		return FDT_V2_SIZE;
+	else if (version <= 3)
+		return FDT_V3_SIZE;
+	else if (version <= 16)
+		return FDT_V16_SIZE;
+	else
+		return FDT_V17_SIZE;
+}
+
+size_t fdt_header_size(const void *fdt)
+{
+	return can_assume(LATEST) ? FDT_V17_SIZE :
+		fdt_header_size_(fdt_version(fdt));
+}
+
+int fdt_check_header(const void *fdt)
+{
+	size_t hdrsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
+	if (fdt_magic(fdt) != FDT_MAGIC)
+		return -FDT_ERR_BADMAGIC;
+	if (!can_assume(LATEST)) {
+		if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+		    || (fdt_last_comp_version(fdt) >
+			FDT_LAST_SUPPORTED_VERSION))
+			return -FDT_ERR_BADVERSION;
+		if (fdt_version(fdt) < fdt_last_comp_version(fdt))
+			return -FDT_ERR_BADVERSION;
+	}
+	hdrsize = fdt_header_size(fdt);
+	if (!can_assume(VALID_DTB)) {
+
+		if ((fdt_totalsize(fdt) < hdrsize)
+		    || (fdt_totalsize(fdt) > INT_MAX))
+			return -FDT_ERR_TRUNCATED;
+
+		/* Bounds check memrsv block */
+		if (!check_off_(hdrsize, fdt_totalsize(fdt),
+				fdt_off_mem_rsvmap(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
+	if (!can_assume(VALID_DTB)) {
+		/* Bounds check structure block */
+		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
+			if (!check_off_(hdrsize, fdt_totalsize(fdt),
+					fdt_off_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		} else {
+			if (!check_block_(hdrsize, fdt_totalsize(fdt),
+					  fdt_off_dt_struct(fdt),
+					  fdt_size_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		}
+
+		/* Bounds check strings block */
+		if (!check_block_(hdrsize, fdt_totalsize(fdt),
+				  fdt_off_dt_strings(fdt),
+				  fdt_size_dt_strings(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
 	return 0;
 }
 
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
 {
-	unsigned absoffset = offset + fdt_off_dt_struct(fdt);
+	unsigned int uoffset = offset;
+	unsigned int absoffset = offset + fdt_off_dt_struct(fdt);
 
-	if ((absoffset < offset)
-	    || ((absoffset + len) < absoffset)
-	    || (absoffset + len) > fdt_totalsize(fdt))
+	if (offset < 0)
 		return NULL;
 
-	if (fdt_version(fdt) >= 0x11)
-		if (((offset + len) < offset)
+	if (!can_assume(VALID_INPUT))
+		if ((absoffset < uoffset)
+		    || ((absoffset + len) < absoffset)
+		    || (absoffset + len) > fdt_totalsize(fdt))
+			return NULL;
+
+	if (can_assume(LATEST) || fdt_version(fdt) >= 0x11)
+		if (((uoffset + len) < uoffset)
 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
 			return NULL;
 
-	return _fdt_offset_ptr(fdt, offset);
+	return fdt_offset_ptr_(fdt, offset);
 }
 
 uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
@@ -98,7 +171,7 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 
 	*nextoffset = -FDT_ERR_TRUNCATED;
 	tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
-	if (!tagp)
+	if (!can_assume(VALID_DTB) && !tagp)
 		return FDT_END; /* premature end */
 	tag = fdt32_to_cpu(*tagp);
 	offset += FDT_TAGSIZE;
@@ -110,17 +183,21 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 		do {
 			p = fdt_offset_ptr(fdt, offset++, 1);
 		} while (p && (*p != '\0'));
-		if (!p)
+		if (!can_assume(VALID_DTB) && !p)
 			return FDT_END; /* premature end */
 		break;
 
 	case FDT_PROP:
 		lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp));
-		if (!lenp)
+		if (!can_assume(VALID_DTB) && !lenp)
 			return FDT_END; /* premature end */
 		/* skip-name offset, length and value */
 		offset += sizeof(struct fdt_property) - FDT_TAGSIZE
 			+ fdt32_to_cpu(*lenp);
+		if (!can_assume(LATEST) &&
+		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >= 8 &&
+		    ((offset - fdt32_to_cpu(*lenp)) % 8) != 0)
+			offset += 4;
 		break;
 
 	case FDT_END:
@@ -139,19 +216,25 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 	return tag;
 }
 
-int _fdt_check_node_offset(const void *fdt, int offset)
+int fdt_check_node_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
 }
 
-int _fdt_check_prop_offset(const void *fdt, int offset)
+int fdt_check_prop_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
@@ -163,7 +246,7 @@ int fdt_next_node(const void *fdt, int offset, int *depth)
 	uint32_t tag;
 
 	if (offset >= 0)
-		if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0)
+		if ((nextoffset = fdt_check_node_offset_(fdt, offset)) < 0)
 			return nextoffset;
 
 	do {
@@ -225,7 +308,7 @@ int fdt_next_subnode(const void *fdt, int offset)
 	return offset;
 }
 
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s)
 {
 	int len = strlen(s) + 1;
 	const char *last = strtab + tabsize - len;
@@ -239,9 +322,12 @@ const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
 
 int fdt_move(const void *fdt, void *buf, int bufsize)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (!can_assume(VALID_INPUT) && bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_totalsize(fdt) > bufsize)
+	if (fdt_totalsize(fdt) > (unsigned int)bufsize)
 		return -FDT_ERR_NOSPACE;
 
 	memmove(buf, fdt, fdt_totalsize(fdt));
diff --git a/xen/common/libfdt/fdt_addresses.c b/xen/common/libfdt/fdt_addresses.c
new file mode 100644
index 0000000..9a82cd0
--- /dev/null
+++ b/xen/common/libfdt/fdt_addresses.c
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
+ * Copyright (C) 2018 embedded brains GmbH
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
+{
+	const fdt32_t *c;
+	uint32_t val;
+	int len;
+
+	c = fdt_getprop(fdt, nodeoffset, name, &len);
+	if (!c)
+		return len;
+
+	if (len != sizeof(*c))
+		return -FDT_ERR_BADNCELLS;
+
+	val = fdt32_to_cpu(*c);
+	if (val > FDT_MAX_NCELLS)
+		return -FDT_ERR_BADNCELLS;
+
+	return (int)val;
+}
+
+int fdt_address_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#address-cells");
+	if (val == 0)
+		return -FDT_ERR_BADNCELLS;
+	if (val == -FDT_ERR_NOTFOUND)
+		return 2;
+	return val;
+}
+
+int fdt_size_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#size-cells");
+	if (val == -FDT_ERR_NOTFOUND)
+		return 1;
+	return val;
+}
+
+/* This function assumes that [address|size]_cells is 1 or 2 */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size)
+{
+	int addr_cells, size_cells, ret;
+	uint8_t data[sizeof(fdt64_t) * 2], *prop;
+
+	ret = fdt_address_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	addr_cells = ret;
+
+	ret = fdt_size_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	size_cells = ret;
+
+	/* check validity of address */
+	prop = data;
+	if (addr_cells == 1) {
+		if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)addr);
+	} else if (addr_cells == 2) {
+		fdt64_st(prop, addr);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	/* check validity of size */
+	prop += addr_cells * sizeof(fdt32_t);
+	if (size_cells == 1) {
+		if (size > UINT32_MAX)
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)size);
+	} else if (size_cells == 2) {
+		fdt64_st(prop, size);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	return fdt_appendprop(fdt, nodeoffset, name, data,
+			      (addr_cells + size_cells) * sizeof(fdt32_t));
+}
diff --git a/xen/common/libfdt/fdt_check.c b/xen/common/libfdt/fdt_check.c
new file mode 100644
index 0000000..fa410a8
--- /dev/null
+++ b/xen/common/libfdt/fdt_check.c
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+int fdt_check_full(const void *fdt, size_t bufsize)
+{
+	int err;
+	int num_memrsv;
+	int offset, nextoffset = 0;
+	uint32_t tag;
+	unsigned int depth = 0;
+	const void *prop;
+	const char *propname;
+	bool expect_end = false;
+
+	if (bufsize < FDT_V1_SIZE)
+		return -FDT_ERR_TRUNCATED;
+	if (bufsize < fdt_header_size(fdt))
+		return -FDT_ERR_TRUNCATED;
+	err = fdt_check_header(fdt);
+	if (err != 0)
+		return err;
+	if (bufsize < fdt_totalsize(fdt))
+		return -FDT_ERR_TRUNCATED;
+
+	num_memrsv = fdt_num_mem_rsv(fdt);
+	if (num_memrsv < 0)
+		return num_memrsv;
+
+	while (1) {
+		offset = nextoffset;
+		tag = fdt_next_tag(fdt, offset, &nextoffset);
+
+		if (nextoffset < 0)
+			return nextoffset;
+
+		/* If we see two root nodes, something is wrong */
+		if (expect_end && tag != FDT_END)
+			return -FDT_ERR_BADSTRUCTURE;
+
+		switch (tag) {
+		case FDT_NOP:
+			break;
+
+		case FDT_END:
+			if (depth != 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			return 0;
+
+		case FDT_BEGIN_NODE:
+			depth++;
+			if (depth > INT_MAX)
+				return -FDT_ERR_BADSTRUCTURE;
+
+			/* The root node must have an empty name */
+			if (depth == 1) {
+				const char *name;
+				int len;
+
+				name = fdt_get_name(fdt, offset, &len);
+				if (*name || len)
+					return -FDT_ERR_BADSTRUCTURE;
+			}
+			break;
+
+		case FDT_END_NODE:
+			if (depth == 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			depth--;
+			if (depth == 0)
+				expect_end = true;
+			break;
+
+		case FDT_PROP:
+			prop = fdt_getprop_by_offset(fdt, offset, &propname,
+						     &err);
+			if (!prop)
+				return err;
+			break;
+
+		default:
+			return -FDT_ERR_INTERNAL;
+		}
+	}
+}
diff --git a/xen/common/libfdt/fdt_empty_tree.c b/xen/common/libfdt/fdt_empty_tree.c
index d505611..49d54d4 100644
--- a/xen/common/libfdt/fdt_empty_tree.c
+++ b/xen/common/libfdt/fdt_empty_tree.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2012 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -79,4 +36,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
 
 	return fdt_open_into(buf, buf, bufsize);
 }
-
diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
new file mode 100644
index 0000000..bac9ba6
--- /dev/null
+++ b/xen/common/libfdt/fdt_overlay.c
@@ -0,0 +1,884 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2016 Free Electrons
+ * Copyright (C) 2016 NextThing Co.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+#include <lib.h>
+
+#include "libfdt_internal.h"
+
+/**
+ * overlay_get_target_phandle - retrieves the target phandle of a fragment
+ * @fdto: pointer to the device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ *
+ * overlay_get_target_phandle() retrieves the target phandle of an
+ * overlay fragment when that fragment uses a phandle (target
+ * property) instead of a path (target-path property).
+ *
+ * returns:
+ *      the phandle pointed by the target property
+ *      0, if the phandle was not found
+ *	-1, if the phandle was malformed
+ */
+static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
+{
+	const fdt32_t *val;
+	int len;
+
+	val = fdt_getprop(fdto, fragment, "target", &len);
+	if (!val)
+		return 0;
+
+	if ((len != sizeof(*val)) || (fdt32_to_cpu(*val) == (uint32_t)-1))
+		return (uint32_t)-1;
+
+	return fdt32_to_cpu(*val);
+}
+
+/**
+ * overlay_get_target - retrieves the offset of a fragment's target
+ * @fdt: Base device tree blob
+ * @fdto: Device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ * @pathp: pointer which receives the path of the target (or NULL)
+ *
+ * overlay_get_target() retrieves the target offset in the base
+ * device tree of a fragment, no matter how the actual targeting is
+ * done (through a phandle or a path)
+ *
+ * returns:
+ *      the targeted node offset in the base device tree
+ *      Negative error code on error
+ */
+static int overlay_get_target(const void *fdt, const void *fdto,
+			      int fragment, char const **pathp)
+{
+	uint32_t phandle;
+	const char *path = NULL;
+	int path_len = 0, ret;
+
+	/* Try first to do a phandle based lookup */
+	phandle = overlay_get_target_phandle(fdto, fragment);
+	if (phandle == (uint32_t)-1)
+		return -FDT_ERR_BADPHANDLE;
+
+	/* no phandle, try path */
+	if (!phandle) {
+		/* And then a path based lookup */
+		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
+		if (path)
+			ret = fdt_path_offset(fdt, path);
+		else
+			ret = path_len;
+	} else
+		ret = fdt_node_offset_by_phandle(fdt, phandle);
+
+	/*
+	* If we haven't found either a target or a
+	* target-path property in a node that contains a
+	* __overlay__ subnode (we wouldn't be called
+	* otherwise), consider it a improperly written
+	* overlay
+	*/
+	if (ret < 0 && path_len == -FDT_ERR_NOTFOUND)
+		ret = -FDT_ERR_BADOVERLAY;
+
+	/* return on error */
+	if (ret < 0)
+		return ret;
+
+	/* return pointer to path (if available) */
+	if (pathp)
+		*pathp = path ? path : NULL;
+
+	return ret;
+}
+
+/**
+ * overlay_phandle_add_offset - Increases a phandle by an offset
+ * @fdt: Base device tree blob
+ * @node: Device tree overlay blob
+ * @name: Name of the property to modify (phandle or linux,phandle)
+ * @delta: offset to apply
+ *
+ * overlay_phandle_add_offset() increments a node phandle by a given
+ * offset.
+ *
+ * returns:
+ *      0 on success.
+ *      Negative error code on error
+ */
+static int overlay_phandle_add_offset(void *fdt, int node,
+				      const char *name, uint32_t delta)
+{
+	const fdt32_t *val;
+	uint32_t adj_val;
+	int len;
+
+	val = fdt_getprop(fdt, node, name, &len);
+	if (!val)
+		return len;
+
+	if (len != sizeof(*val))
+		return -FDT_ERR_BADPHANDLE;
+
+	adj_val = fdt32_to_cpu(*val);
+	if ((adj_val + delta) < adj_val)
+		return -FDT_ERR_NOPHANDLES;
+
+	adj_val += delta;
+	if (adj_val == (uint32_t)-1)
+		return -FDT_ERR_NOPHANDLES;
+
+	return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
+}
+
+/**
+ * overlay_adjust_node_phandles - Offsets the phandles of a node
+ * @fdto: Device tree overlay blob
+ * @node: Offset of the node we want to adjust
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_node_phandles() adds a constant to all the phandles
+ * of a given node. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_node_phandles(void *fdto, int node,
+					uint32_t delta)
+{
+	int child;
+	int ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	fdt_for_each_subnode(child, fdto, node) {
+		ret = overlay_adjust_node_phandles(fdto, child, delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_adjust_local_phandles - Adjust the phandles of a whole overlay
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_local_phandles() adds a constant to all the
+ * phandles of an overlay. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
+{
+	/*
+	 * Start adjusting the phandles from the overlay root
+	 */
+	return overlay_adjust_node_phandles(fdto, 0, delta);
+}
+
+/**
+ * overlay_update_local_node_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @tree_node: Node offset of the node to operate on
+ * @fixup_node: Node offset of the matching local fixups node
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_nodes_references() update the phandles
+ * pointing to a node within the device tree overlay by adding a
+ * constant delta.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_node_references(void *fdto,
+						int tree_node,
+						int fixup_node,
+						uint32_t delta)
+{
+	int fixup_prop;
+	int fixup_child;
+	int ret;
+
+	fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
+		const fdt32_t *fixup_val;
+		const char *tree_val;
+		const char *name;
+		int fixup_len;
+		int tree_len;
+		int i;
+
+		fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
+						  &name, &fixup_len);
+		if (!fixup_val)
+			return fixup_len;
+
+		if (fixup_len % sizeof(uint32_t))
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len /= sizeof(uint32_t);
+
+		tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
+		if (!tree_val) {
+			if (tree_len == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_BADOVERLAY;
+
+			return tree_len;
+		}
+
+		for (i = 0; i < fixup_len; i++) {
+			fdt32_t adj_val;
+			uint32_t poffset;
+
+			poffset = fdt32_to_cpu(fixup_val[i]);
+
+			/*
+			 * phandles to fixup can be unaligned.
+			 *
+			 * Use a memcpy for the architectures that do
+			 * not support unaligned accesses.
+			 */
+			memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
+
+			adj_val = cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
+
+			ret = fdt_setprop_inplace_namelen_partial(fdto,
+								  tree_node,
+								  name,
+								  strlen(name),
+								  poffset,
+								  &adj_val,
+								  sizeof(adj_val));
+			if (ret == -FDT_ERR_NOSPACE)
+				return -FDT_ERR_BADOVERLAY;
+
+			if (ret)
+				return ret;
+		}
+	}
+
+	fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
+		const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
+							    NULL);
+		int tree_child;
+
+		tree_child = fdt_subnode_offset(fdto, tree_node,
+						fixup_child_name);
+		if (tree_child == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_BADOVERLAY;
+		if (tree_child < 0)
+			return tree_child;
+
+		ret = overlay_update_local_node_references(fdto,
+							   tree_child,
+							   fixup_child,
+							   delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_update_local_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_references() update all the phandles pointing
+ * to a node within the device tree overlay by adding a constant
+ * delta to not conflict with the base overlay.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_references(void *fdto, uint32_t delta)
+{
+	int fixups;
+
+	fixups = fdt_path_offset(fdto, "/__local_fixups__");
+	if (fixups < 0) {
+		/* There's no local phandles to adjust, bail out */
+		if (fixups == -FDT_ERR_NOTFOUND)
+			return 0;
+
+		return fixups;
+	}
+
+	/*
+	 * Update our local references from the root of the tree
+	 */
+	return overlay_update_local_node_references(fdto, 0, fixups,
+						    delta);
+}
+
+/**
+ * overlay_fixup_one_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @path: Path to a node holding a phandle in the overlay
+ * @path_len: number of path characters to consider
+ * @name: Name of the property holding the phandle reference in the overlay
+ * @name_len: number of name characters to consider
+ * @poffset: Offset within the overlay property where the phandle is stored
+ * @label: Label of the node referenced by the phandle
+ *
+ * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
+ * a node in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_one_phandle(void *fdt, void *fdto,
+				     int symbols_off,
+				     const char *path, uint32_t path_len,
+				     const char *name, uint32_t name_len,
+				     int poffset, const char *label)
+{
+	const char *symbol_path;
+	uint32_t phandle;
+	fdt32_t phandle_prop;
+	int symbol_off, fixup_off;
+	int prop_len;
+
+	if (symbols_off < 0)
+		return symbols_off;
+
+	symbol_path = fdt_getprop(fdt, symbols_off, label,
+				  &prop_len);
+	if (!symbol_path)
+		return prop_len;
+
+	symbol_off = fdt_path_offset(fdt, symbol_path);
+	if (symbol_off < 0)
+		return symbol_off;
+
+	phandle = fdt_get_phandle(fdt, symbol_off);
+	if (!phandle)
+		return -FDT_ERR_NOTFOUND;
+
+	fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
+	if (fixup_off == -FDT_ERR_NOTFOUND)
+		return -FDT_ERR_BADOVERLAY;
+	if (fixup_off < 0)
+		return fixup_off;
+
+	phandle_prop = cpu_to_fdt32(phandle);
+	return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
+						   name, name_len, poffset,
+						   &phandle_prop,
+						   sizeof(phandle_prop));
+};
+
+/**
+ * overlay_fixup_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @property: Property offset in the overlay holding the list of fixups
+ *
+ * overlay_fixup_phandle() resolves all the overlay phandles pointed
+ * to in a __fixups__ property, and updates them to match the phandles
+ * in use in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
+				 int property)
+{
+	const char *value;
+	const char *label;
+	int len;
+
+	value = fdt_getprop_by_offset(fdto, property,
+				      &label, &len);
+	if (!value) {
+		if (len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+
+		return len;
+	}
+
+	do {
+		const char *path, *name, *fixup_end;
+		const char *fixup_str = value;
+		uint32_t path_len, name_len;
+		uint32_t fixup_len;
+		char *sep;
+		const char *endptr;
+		int poffset, ret;
+
+		fixup_end = memchr(value, '\0', len);
+		if (!fixup_end)
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len = fixup_end - fixup_str;
+
+		len -= fixup_len + 1;
+		value += fixup_len + 1;
+
+		path = fixup_str;
+		sep = memchr(fixup_str, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		path_len = sep - path;
+		if (path_len == (fixup_len - 1))
+			return -FDT_ERR_BADOVERLAY;
+
+		fixup_len -= path_len + 1;
+		name = sep + 1;
+		sep = memchr(name, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		name_len = sep - name;
+		if (!name_len)
+			return -FDT_ERR_BADOVERLAY;
+
+		poffset = simple_strtoul(sep + 1, &endptr, 10);
+		if ((*endptr != '\0') || (endptr <= (sep + 1)))
+			return -FDT_ERR_BADOVERLAY;
+
+		ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
+						path, path_len, name, name_len,
+						poffset, label);
+		if (ret)
+			return ret;
+	} while (len > 0);
+
+	return 0;
+}
+
+/**
+ * overlay_fixup_phandles - Resolve the overlay phandles to the base
+ *                          device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_fixup_phandles() resolves all the overlay phandles pointing
+ * to nodes in the base device tree.
+ *
+ * This is one of the steps of the device tree overlay application
+ * process, when you want all the phandles in the overlay to point to
+ * the actual base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandles(void *fdt, void *fdto)
+{
+	int fixups_off, symbols_off;
+	int property;
+
+	/* We can have overlays without any fixups */
+	fixups_off = fdt_path_offset(fdto, "/__fixups__");
+	if (fixups_off == -FDT_ERR_NOTFOUND)
+		return 0; /* nothing to do */
+	if (fixups_off < 0)
+		return fixups_off;
+
+	/* And base DTs without symbols */
+	symbols_off = fdt_path_offset(fdt, "/__symbols__");
+	if ((symbols_off < 0 && (symbols_off != -FDT_ERR_NOTFOUND)))
+		return symbols_off;
+
+	fdt_for_each_property_offset(property, fdto, fixups_off) {
+		int ret;
+
+		ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_apply_node - Merges a node into the base device tree
+ * @fdt: Base Device Tree blob
+ * @target: Node offset in the base device tree to apply the fragment to
+ * @fdto: Device tree overlay blob
+ * @node: Node offset in the overlay holding the changes to merge
+ *
+ * overlay_apply_node() merges a node into a target base device tree
+ * node pointed.
+ *
+ * This is part of the final step in the device tree overlay
+ * application process, when all the phandles have been adjusted and
+ * resolved and you just have to merge overlay into the base device
+ * tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_apply_node(void *fdt, int target,
+			      void *fdto, int node)
+{
+	int property;
+	int subnode;
+
+	fdt_for_each_property_offset(property, fdto, node) {
+		const char *name;
+		const void *prop;
+		int prop_len;
+		int ret;
+
+		prop = fdt_getprop_by_offset(fdto, property, &name,
+					     &prop_len);
+		if (prop_len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+		if (prop_len < 0)
+			return prop_len;
+
+		ret = fdt_setprop(fdt, target, name, prop, prop_len);
+		if (ret)
+			return ret;
+	}
+
+	fdt_for_each_subnode(subnode, fdto, node) {
+		const char *name = fdt_get_name(fdto, subnode, NULL);
+		int nnode;
+		int ret;
+
+		nnode = fdt_add_subnode(fdt, target, name);
+		if (nnode == -FDT_ERR_EXISTS) {
+			nnode = fdt_subnode_offset(fdt, target, name);
+			if (nnode == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_INTERNAL;
+		}
+
+		if (nnode < 0)
+			return nnode;
+
+		ret = overlay_apply_node(fdt, nnode, fdto, subnode);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_merge - Merge an overlay into its base device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_merge() merges an overlay into its base device tree.
+ *
+ * This is the next to last step in the device tree overlay application
+ * process, when all the phandles have been adjusted and resolved and
+ * you just have to merge overlay into the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_merge(void *fdt, void *fdto)
+{
+	int fragment;
+
+	fdt_for_each_subnode(fragment, fdto, 0) {
+		int overlay;
+		int target;
+		int ret;
+
+		/*
+		 * Each fragments will have an __overlay__ node. If
+		 * they don't, it's not supposed to be merged
+		 */
+		overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (overlay == -FDT_ERR_NOTFOUND)
+			continue;
+
+		if (overlay < 0)
+			return overlay;
+
+		target = overlay_get_target(fdt, fdto, fragment, NULL);
+		if (target < 0)
+			return target;
+
+		ret = overlay_apply_node(fdt, target, fdto, overlay);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+static int get_path_len(const void *fdt, int nodeoffset)
+{
+	int len = 0, namelen;
+	const char *name;
+
+	FDT_RO_PROBE(fdt);
+
+	for (;;) {
+		name = fdt_get_name(fdt, nodeoffset, &namelen);
+		if (!name)
+			return namelen;
+
+		/* root? we're done */
+		if (namelen == 0)
+			break;
+
+		nodeoffset = fdt_parent_offset(fdt, nodeoffset);
+		if (nodeoffset < 0)
+			return nodeoffset;
+		len += namelen + 1;
+	}
+
+	/* in case of root pretend it's "/" */
+	if (len == 0)
+		len++;
+	return len;
+}
+
+/**
+ * overlay_symbol_update - Update the symbols of base tree after a merge
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_symbol_update() updates the symbols of the base tree with the
+ * symbols of the applied overlay
+ *
+ * This is the last step in the device tree overlay application
+ * process, allowing the reference of overlay symbols by subsequent
+ * overlay operations.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_symbol_update(void *fdt, void *fdto)
+{
+	int root_sym, ov_sym, prop, path_len, fragment, target;
+	int len, frag_name_len, ret, rel_path_len;
+	const char *s, *e;
+	const char *path;
+	const char *name;
+	const char *frag_name;
+	const char *rel_path;
+	const char *target_path;
+	char *buf;
+	void *p;
+
+	ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
+
+	/* if no overlay symbols exist no problem */
+	if (ov_sym < 0)
+		return 0;
+
+	root_sym = fdt_subnode_offset(fdt, 0, "__symbols__");
+
+	/* it no root symbols exist we should create them */
+	if (root_sym == -FDT_ERR_NOTFOUND)
+		root_sym = fdt_add_subnode(fdt, 0, "__symbols__");
+
+	/* any error is fatal now */
+	if (root_sym < 0)
+		return root_sym;
+
+	/* iterate over each overlay symbol */
+	fdt_for_each_property_offset(prop, fdto, ov_sym) {
+		path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
+		if (!path)
+			return path_len;
+
+		/* verify it's a string property (terminated by a single \0) */
+		if (path_len < 1 || memchr(path, '\0', path_len) != &path[path_len - 1])
+			return -FDT_ERR_BADVALUE;
+
+		/* keep end marker to avoid strlen() */
+		e = path + path_len;
+
+		if (*path != '/')
+			return -FDT_ERR_BADVALUE;
+
+		/* get fragment name first */
+		s = strchr(path + 1, '/');
+		if (!s) {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		frag_name = path + 1;
+		frag_name_len = s - path - 1;
+
+		/* verify format; safe since "s" lies in \0 terminated prop */
+		len = sizeof("/__overlay__/") - 1;
+		if ((e - s) > len && (memcmp(s, "/__overlay__/", len) == 0)) {
+			/* /<fragment-name>/__overlay__/<relative-subnode-path> */
+			rel_path = s + len;
+			rel_path_len = e - rel_path - 1;
+		} else if ((e - s) == len
+			   && (memcmp(s, "/__overlay__", len - 1) == 0)) {
+			/* /<fragment-name>/__overlay__ */
+			rel_path = "";
+			rel_path_len = 0;
+		} else {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		/* find the fragment index in which the symbol lies */
+		ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
+					       frag_name_len);
+		/* not found? */
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+		fragment = ret;
+
+		/* an __overlay__ subnode must exist */
+		ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+
+		/* get the target of the fragment */
+		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+		if (ret < 0)
+			return ret;
+		target = ret;
+
+		/* if we have a target path use */
+		if (!target_path) {
+			ret = get_path_len(fdt, target);
+			if (ret < 0)
+				return ret;
+			len = ret;
+		} else {
+			len = strlen(target_path);
+		}
+
+		ret = fdt_setprop_placeholder(fdt, root_sym, name,
+				len + (len > 1) + rel_path_len + 1, &p);
+		if (ret < 0)
+			return ret;
+
+		if (!target_path) {
+			/* again in case setprop_placeholder changed it */
+			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+			if (ret < 0)
+				return ret;
+			target = ret;
+		}
+
+		buf = p;
+		if (len > 1) { /* target is not root */
+			if (!target_path) {
+				ret = fdt_get_path(fdt, target, buf, len + 1);
+				if (ret < 0)
+					return ret;
+			} else
+				memcpy(buf, target_path, len + 1);
+
+		} else
+			len--;
+
+		buf[len] = '/';
+		memcpy(buf + len + 1, rel_path, rel_path_len);
+		buf[len + 1 + rel_path_len] = '\0';
+	}
+
+	return 0;
+}
+
+int fdt_overlay_apply(void *fdt, void *fdto)
+{
+	uint32_t delta;
+	int ret;
+
+	FDT_RO_PROBE(fdt);
+	FDT_RO_PROBE(fdto);
+
+	ret = fdt_find_max_phandle(fdt, &delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_adjust_local_phandles(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_update_local_references(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_fixup_phandles(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_merge(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_symbol_update(fdt, fdto);
+	if (ret)
+		goto err;
+
+	/*
+	 * The overlay has been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	return 0;
+
+err:
+	/*
+	 * The overlay might have been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	/*
+	 * The base device tree might have been damaged, erase its
+	 * magic.
+	 */
+	fdt_set_magic(fdt, ~0);
+
+	return ret;
+}
diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
index 36f9b48..17584da 100644
--- a/xen/common/libfdt/fdt_ro.c
+++ b/xen/common/libfdt/fdt_ro.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,12 +10,13 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_nodename_eq(const void *fdt, int offset,
+static int fdt_nodename_eq_(const void *fdt, int offset,
 			    const char *s, int len)
 {
-	const char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);
+	int olen;
+	const char *p = fdt_get_name(fdt, offset, &olen);
 
-	if (! p)
+	if (!p || olen < len)
 		/* short match */
 		return 0;
 
@@ -73,37 +31,174 @@ static int _fdt_nodename_eq(const void *fdt, int offset,
 		return 0;
 }
 
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
+{
+	int32_t totalsize;
+	uint32_t absoffset;
+	size_t len;
+	int err;
+	const char *s, *n;
+
+	if (can_assume(VALID_INPUT)) {
+		s = (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+
+		if (lenp)
+			*lenp = strlen(s);
+		return s;
+	}
+	totalsize = fdt_ro_probe_(fdt);
+	err = totalsize;
+	if (totalsize < 0)
+		goto fail;
+
+	err = -FDT_ERR_BADOFFSET;
+	absoffset = stroffset + fdt_off_dt_strings(fdt);
+	if (absoffset >= (unsigned)totalsize)
+		goto fail;
+	len = totalsize - absoffset;
+
+	if (fdt_magic(fdt) == FDT_MAGIC) {
+		if (stroffset < 0)
+			goto fail;
+		if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
+			if ((unsigned)stroffset >= fdt_size_dt_strings(fdt))
+				goto fail;
+			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
+				len = fdt_size_dt_strings(fdt) - stroffset;
+		}
+	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
+		unsigned int sw_stroffset = -stroffset;
+
+		if ((stroffset >= 0) ||
+		    (sw_stroffset > fdt_size_dt_strings(fdt)))
+			goto fail;
+		if (sw_stroffset < len)
+			len = sw_stroffset;
+	} else {
+		err = -FDT_ERR_INTERNAL;
+		goto fail;
+	}
+
+	s = (const char *)fdt + absoffset;
+	n = memchr(s, '\0', len);
+	if (!n) {
+		/* missing terminating NULL */
+		err = -FDT_ERR_TRUNCATED;
+		goto fail;
+	}
+
+	if (lenp)
+		*lenp = n - s;
+	return s;
+
+fail:
+	if (lenp)
+		*lenp = err;
+	return NULL;
+}
+
 const char *fdt_string(const void *fdt, int stroffset)
 {
-	return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+	return fdt_get_string(fdt, stroffset, NULL);
 }
 
-static int _fdt_string_eq(const void *fdt, int stroffset,
+static int fdt_string_eq_(const void *fdt, int stroffset,
 			  const char *s, int len)
 {
-	const char *p = fdt_string(fdt, stroffset);
+	int slen;
+	const char *p = fdt_get_string(fdt, stroffset, &slen);
+
+	return p && (slen == len) && (memcmp(p, s, len) == 0);
+}
+
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max = 0;
+	int offset = -1;
+
+	while (true) {
+		uint32_t value;
+
+		offset = fdt_next_node(fdt, offset, NULL);
+		if (offset < 0) {
+			if (offset == -FDT_ERR_NOTFOUND)
+				break;
+
+			return offset;
+		}
+
+		value = fdt_get_phandle(fdt, offset);
+
+		if (value > max)
+			max = value;
+	}
+
+	if (phandle)
+		*phandle = max;
+
+	return 0;
+}
+
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &max);
+	if (err < 0)
+		return err;
+
+	if (max == FDT_MAX_PHANDLE)
+		return -FDT_ERR_NOPHANDLES;
+
+	if (phandle)
+		*phandle = max + 1;
+
+	return 0;
+}
 
-	return (strlen(p) == len) && (memcmp(p, s, len) == 0);
+static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int n)
+{
+	unsigned int offset = n * sizeof(struct fdt_reserve_entry);
+	unsigned int absoffset = fdt_off_mem_rsvmap(fdt) + offset;
+
+	if (!can_assume(VALID_INPUT)) {
+		if (absoffset < fdt_off_mem_rsvmap(fdt))
+			return NULL;
+		if (absoffset > fdt_totalsize(fdt) -
+		    sizeof(struct fdt_reserve_entry))
+			return NULL;
+	}
+	return fdt_mem_rsv_(fdt, n);
 }
 
 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size)
 {
-	FDT_CHECK_HEADER(fdt);
-	*address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address);
-	*size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size);
+	const struct fdt_reserve_entry *re;
+
+	FDT_RO_PROBE(fdt);
+	re = fdt_mem_rsv(fdt, n);
+	if (!can_assume(VALID_INPUT) && !re)
+		return -FDT_ERR_BADOFFSET;
+
+	*address = fdt64_ld_(&re->address);
+	*size = fdt64_ld_(&re->size);
 	return 0;
 }
 
 int fdt_num_mem_rsv(const void *fdt)
 {
-	int i = 0;
+	int i;
+	const struct fdt_reserve_entry *re;
 
-	while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0)
-		i++;
-	return i;
+	for (i = 0; (re = fdt_mem_rsv(fdt, i)) != NULL; i++) {
+		if (fdt64_ld_(&re->size) == 0)
+			return i;
+	}
+	return -FDT_ERR_TRUNCATED;
 }
 
-static int _nextprop(const void *fdt, int offset)
+static int nextprop_(const void *fdt, int offset)
 {
 	uint32_t tag;
 	int nextoffset;
@@ -132,13 +227,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int offset,
 {
 	int depth;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	for (depth = 0;
 	     (offset >= 0) && (depth >= 0);
 	     offset = fdt_next_node(fdt, offset, &depth))
 		if ((depth == 1)
-		    && _fdt_nodename_eq(fdt, offset, name, namelen))
+		    && fdt_nodename_eq_(fdt, offset, name, namelen))
 			return offset;
 
 	if (depth < 0)
@@ -152,17 +247,17 @@ int fdt_subnode_offset(const void *fdt, int parentoffset,
 	return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name));
 }
 
-int fdt_path_offset(const void *fdt, const char *path)
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen)
 {
-	const char *end = path + strlen(path);
+	const char *end = path + namelen;
 	const char *p = path;
 	int offset = 0;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* see if we have an alias */
 	if (*path != '/') {
-		const char *q = strchr(path, '/');
+		const char *q = memchr(path, '/', end - p);
 
 		if (!q)
 			q = end;
@@ -175,14 +270,15 @@ int fdt_path_offset(const void *fdt, const char *path)
 		p = q;
 	}
 
-	while (*p) {
+	while (p < end) {
 		const char *q;
 
-		while (*p == '/')
+		while (*p == '/') {
 			p++;
-		if (! *p)
-			return offset;
-		q = strchr(p, '/');
+			if (p == end)
+				return offset;
+		}
+		q = memchr(p, '/', end - p);
 		if (! q)
 			q = end;
 
@@ -196,19 +292,42 @@ int fdt_path_offset(const void *fdt, const char *path)
 	return offset;
 }
 
+int fdt_path_offset(const void *fdt, const char *path)
+{
+	return fdt_path_offset_namelen(fdt, path, strlen(path));
+}
+
 const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
 {
-	const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset);
+	const struct fdt_node_header *nh = fdt_offset_ptr_(fdt, nodeoffset);
+	const char *nameptr;
 	int err;
 
-	if (((err = fdt_check_header(fdt)) != 0)
-	    || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0))
+	if (((err = fdt_ro_probe_(fdt)) < 0)
+	    || ((err = fdt_check_node_offset_(fdt, nodeoffset)) < 0))
+			goto fail;
+
+	nameptr = nh->name;
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		/*
+		 * For old FDT versions, match the naming conventions of V16:
+		 * give only the leaf name (after all /). The actual tree
+		 * contents are loosely checked.
+		 */
+		const char *leaf;
+		leaf = strrchr(nameptr, '/');
+		if (leaf == NULL) {
+			err = -FDT_ERR_BADSTRUCTURE;
 			goto fail;
+		}
+		nameptr = leaf+1;
+	}
 
 	if (len)
-		*len = strlen(nh->name);
+		*len = strlen(nameptr);
 
-	return nh->name;
+	return nameptr;
 
  fail:
 	if (len)
@@ -220,58 +339,81 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset)
 {
 	int offset;
 
-	if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((offset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
 int fdt_next_property_offset(const void *fdt, int offset)
 {
-	if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0)
+	if ((offset = fdt_check_prop_offset_(fdt, offset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
-const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
-						      int offset,
-						      int *lenp)
+static const struct fdt_property *fdt_get_property_by_offset_(const void *fdt,
+						              int offset,
+						              int *lenp)
 {
 	int err;
 	const struct fdt_property *prop;
 
-	if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) {
+	if (!can_assume(VALID_INPUT) &&
+	    (err = fdt_check_prop_offset_(fdt, offset)) < 0) {
 		if (lenp)
 			*lenp = err;
 		return NULL;
 	}
 
-	prop = _fdt_offset_ptr(fdt, offset);
+	prop = fdt_offset_ptr_(fdt, offset);
 
 	if (lenp)
-		*lenp = fdt32_to_cpu(prop->len);
+		*lenp = fdt32_ld_(&prop->len);
 
 	return prop;
 }
 
-const struct fdt_property *fdt_get_property_namelen(const void *fdt,
-						    int offset,
-						    const char *name,
-						    int namelen, int *lenp)
+const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
+						      int offset,
+						      int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_by_offset_(fdt, offset, lenp);
+}
+
+static const struct fdt_property *fdt_get_property_namelen_(const void *fdt,
+						            int offset,
+						            const char *name,
+						            int namelen,
+							    int *lenp,
+							    int *poffset)
 {
 	for (offset = fdt_first_property_offset(fdt, offset);
 	     (offset >= 0);
 	     (offset = fdt_next_property_offset(fdt, offset))) {
 		const struct fdt_property *prop;
 
-		if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) {
+		prop = fdt_get_property_by_offset_(fdt, offset, lenp);
+		if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
 			offset = -FDT_ERR_INTERNAL;
 			break;
 		}
-		if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff),
-				   name, namelen))
+		if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
+				   name, namelen)) {
+			if (poffset)
+				*poffset = offset;
 			return prop;
+		}
 	}
 
 	if (lenp)
@@ -279,6 +421,25 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 	return NULL;
 }
 
+
+const struct fdt_property *fdt_get_property_namelen(const void *fdt,
+						    int offset,
+						    const char *name,
+						    int namelen, int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
+					 NULL);
+}
+
+
 const struct fdt_property *fdt_get_property(const void *fdt,
 					    int nodeoffset,
 					    const char *name, int *lenp)
@@ -290,12 +451,18 @@ const struct fdt_property *fdt_get_property(const void *fdt,
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp)
 {
+	int poffset;
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp);
-	if (! prop)
+	prop = fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp,
+					 &poffset);
+	if (!prop)
 		return NULL;
 
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -304,11 +471,31 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
 {
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_by_offset(fdt, offset, lenp);
+	prop = fdt_get_property_by_offset_(fdt, offset, lenp);
 	if (!prop)
 		return NULL;
-	if (namep)
-		*namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
+	if (namep) {
+		const char *name;
+		int namelen;
+
+		if (!can_assume(VALID_INPUT)) {
+			name = fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
+					      &namelen);
+			if (!name) {
+				if (lenp)
+					*lenp = namelen;
+				return NULL;
+			}
+			*namep = name;
+		} else {
+			*namep = fdt_string(fdt, fdt32_ld_(&prop->nameoff));
+		}
+	}
+
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -332,7 +519,7 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)
 			return 0;
 	}
 
-	return fdt32_to_cpu(*php);
+	return fdt32_ld_(php);
 }
 
 const char *fdt_get_alias_namelen(const void *fdt,
@@ -358,7 +545,7 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen)
 	int offset, depth, namelen;
 	const char *name;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (buflen < 2)
 		return -FDT_ERR_NOSPACE;
@@ -410,7 +597,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 	int offset, depth;
 	int supernodeoffset = -FDT_ERR_INTERNAL;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (supernodedepth < 0)
 		return -FDT_ERR_NOTFOUND;
@@ -432,10 +619,12 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 		}
 	}
 
-	if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
-		return -FDT_ERR_BADOFFSET;
-	else if (offset == -FDT_ERR_BADOFFSET)
-		return -FDT_ERR_BADSTRUCTURE;
+	if (!can_assume(VALID_INPUT)) {
+		if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
+			return -FDT_ERR_BADOFFSET;
+		else if (offset == -FDT_ERR_BADOFFSET)
+			return -FDT_ERR_BADSTRUCTURE;
+	}
 
 	return offset; /* error from fdt_next_node() */
 }
@@ -447,7 +636,8 @@ int fdt_node_depth(const void *fdt, int nodeoffset)
 
 	err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
 	if (err)
-		return (err < 0) ? err : -FDT_ERR_INTERNAL;
+		return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
+			-FDT_ERR_INTERNAL;
 	return nodedepth;
 }
 
@@ -469,7 +659,7 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 	const void *val;
 	int len;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_getprop(), then if that didn't
@@ -492,10 +682,10 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
 {
 	int offset;
 
-	if ((phandle == 0) || (phandle == -1))
+	if ((phandle == 0) || (phandle == ~0U))
 		return -FDT_ERR_BADPHANDLE;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we
 	 * potentially scan each property of a node in
@@ -530,6 +720,106 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
 	return 0;
 }
 
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
+{
+	const char *list, *end;
+	int length, count = 0;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		list += length;
+		count++;
+	}
+
+	return count;
+}
+
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string)
+{
+	int length, len, idx = 0;
+	const char *list, *end;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	len = strlen(string) + 1;
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		if (length == len && memcmp(list, string, length) == 0)
+			return idx;
+
+		list += length;
+		idx++;
+	}
+
+	return -FDT_ERR_NOTFOUND;
+}
+
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int idx,
+			       int *lenp)
+{
+	const char *list, *end;
+	int length;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list) {
+		if (lenp)
+			*lenp = length;
+
+		return NULL;
+	}
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end) {
+			if (lenp)
+				*lenp = -FDT_ERR_BADVALUE;
+
+			return NULL;
+		}
+
+		if (idx == 0) {
+			if (lenp)
+				*lenp = length - 1;
+
+			return list;
+		}
+
+		list += length;
+		idx--;
+	}
+
+	if (lenp)
+		*lenp = -FDT_ERR_NOTFOUND;
+
+	return NULL;
+}
+
 int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 			      const char *compatible)
 {
@@ -539,10 +829,8 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 	prop = fdt_getprop(fdt, nodeoffset, "compatible", &len);
 	if (!prop)
 		return len;
-	if (fdt_stringlist_contains(prop, len, compatible))
-		return 0;
-	else
-		return 1;
+
+	return !fdt_stringlist_contains(prop, len, compatible);
 }
 
 int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
@@ -550,7 +838,7 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
 {
 	int offset, err;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_node_check_compatible(), then if
diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
index 8b8cd25..3621d36 100644
--- a/xen/common/libfdt/fdt_rw.c
+++ b/xen/common/libfdt/fdt_rw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,8 +10,8 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_blocks_misordered(const void *fdt,
-			      int mem_rsv_size, int struct_size)
+static int fdt_blocks_misordered_(const void *fdt,
+				  int mem_rsv_size, int struct_size)
 {
 	return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8))
 		|| (fdt_off_dt_struct(fdt) <
@@ -65,40 +22,44 @@ static int _fdt_blocks_misordered(const void *fdt,
 		    (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
 }
 
-static int _fdt_rw_check_header(void *fdt)
+static int fdt_rw_probe_(void *fdt)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (can_assume(VALID_DTB))
+		return 0;
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_version(fdt) < 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
 		return -FDT_ERR_BADVERSION;
-	if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
+	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
 				   fdt_size_dt_struct(fdt)))
 		return -FDT_ERR_BADLAYOUT;
-	if (fdt_version(fdt) > 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
 		fdt_set_version(fdt, 17);
 
 	return 0;
 }
 
-#define FDT_RW_CHECK_HEADER(fdt) \
+#define FDT_RW_PROBE(fdt) \
 	{ \
-		int err; \
-		if ((err = _fdt_rw_check_header(fdt)) != 0) \
-			return err; \
+		int err_; \
+		if ((err_ = fdt_rw_probe_(fdt)) != 0) \
+			return err_; \
 	}
 
-static inline unsigned int _fdt_data_size(void *fdt)
+static inline unsigned int fdt_data_size_(void *fdt)
 {
 	return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 }
 
-static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
+static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int newlen)
 {
 	char *p = splicepoint;
-	unsigned int dsize = _fdt_data_size(fdt);
+	unsigned int dsize = fdt_data_size_(fdt);
 	size_t soff = p - (char *)fdt;
 
-	if (oldlen < 0 || soff + oldlen < soff || soff + oldlen > dsize)
+	if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
+		return -FDT_ERR_BADOFFSET;
+	if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
 		return -FDT_ERR_BADOFFSET;
 	if (dsize - oldlen + newlen > fdt_totalsize(fdt))
 		return -FDT_ERR_NOSPACE;
@@ -106,12 +67,12 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
 	return 0;
 }
 
-static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
+static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
 			       int oldn, int newn)
 {
 	int delta = (newn - oldn) * sizeof(*p);
 	int err;
-	err = _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
+	err = fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
 	if (err)
 		return err;
 	fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
@@ -119,13 +80,13 @@ static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
 	return 0;
 }
 
-static int _fdt_splice_struct(void *fdt, void *p,
+static int fdt_splice_struct_(void *fdt, void *p,
 			      int oldlen, int newlen)
 {
 	int delta = newlen - oldlen;
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, oldlen, newlen)))
+	if ((err = fdt_splice_(fdt, p, oldlen, newlen)))
 		return err;
 
 	fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
@@ -133,20 +94,37 @@ static int _fdt_splice_struct(void *fdt, void *p,
 	return 0;
 }
 
-static int _fdt_splice_string(void *fdt, int newlen)
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
+	int newlen = strlen(s) + 1;
+
+	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
+}
+
+static int fdt_splice_string_(void *fdt, int newlen)
 {
 	void *p = (char *)fdt
 		+ fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, 0, newlen)))
+	if ((err = fdt_splice_(fdt, p, 0, newlen)))
 		return err;
 
 	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+/**
+ * fdt_find_add_string_() - Find or allocate a string
+ *
+ * @fdt: pointer to the device tree to check/adjust
+ * @s: string to find/add
+ * @allocated: Set to 0 if the string was found, 1 if not found and so
+ *	allocated. Ignored if can_assume(NO_ROLLBACK)
+ * @return offset of string in the string table (whether found or added)
+ */
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
 {
 	char *strtab = (char *)fdt + fdt_off_dt_strings(fdt);
 	const char *p;
@@ -154,16 +132,22 @@ static int _fdt_find_add_string(void *fdt, const char *s)
 	int len = strlen(s) + 1;
 	int err;
 
-	p = _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s);
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 0;
+
+	p = fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
 	if (p)
 		/* found it */
 		return (p - strtab);
 
 	new = strtab + fdt_size_dt_strings(fdt);
-	err = _fdt_splice_string(fdt, len);
+	err = fdt_splice_string_(fdt, len);
 	if (err)
 		return err;
 
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 1;
+
 	memcpy(new, s, len);
 	return (new - strtab);
 }
@@ -173,10 +157,10 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	re = _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt));
-	err = _fdt_splice_mem_rsv(fdt, re, 0, 1);
+	re = fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
+	err = fdt_splice_mem_rsv_(fdt, re, 0, 1);
 	if (err)
 		return err;
 
@@ -187,31 +171,27 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 
 int fdt_del_mem_rsv(void *fdt, int n)
 {
-	struct fdt_reserve_entry *re = _fdt_mem_rsv_w(fdt, n);
-	int err;
+	struct fdt_reserve_entry *re = fdt_mem_rsv_w_(fdt, n);
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	if (n >= fdt_num_mem_rsv(fdt))
 		return -FDT_ERR_NOTFOUND;
 
-	err = _fdt_splice_mem_rsv(fdt, re, 1, 0);
-	if (err)
-		return err;
-	return 0;
+	return fdt_splice_mem_rsv_(fdt, re, 1, 0);
 }
 
-static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_resize_property_(void *fdt, int nodeoffset, const char *name,
 				int len, struct fdt_property **prop)
 {
 	int oldlen;
 	int err;
 
 	*prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
-	if (! (*prop))
+	if (!*prop)
 		return oldlen;
 
-	if ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
+	if ((err = fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
 				      FDT_TAGALIGN(len))))
 		return err;
 
@@ -219,27 +199,32 @@ static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
 	return 0;
 }
 
-static int _fdt_add_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_add_property_(void *fdt, int nodeoffset, const char *name,
 			     int len, struct fdt_property **prop)
 {
 	int proplen;
 	int nextoffset;
 	int namestroff;
 	int err;
+	int allocated;
 
-	if ((nextoffset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((nextoffset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return nextoffset;
 
-	namestroff = _fdt_find_add_string(fdt, name);
+	namestroff = fdt_find_add_string_(fdt, name, &allocated);
 	if (namestroff < 0)
 		return namestroff;
 
-	*prop = _fdt_offset_ptr_w(fdt, nextoffset);
+	*prop = fdt_offset_ptr_w_(fdt, nextoffset);
 	proplen = sizeof(**prop) + FDT_TAGALIGN(len);
 
-	err = _fdt_splice_struct(fdt, *prop, 0, proplen);
-	if (err)
+	err = fdt_splice_struct_(fdt, *prop, 0, proplen);
+	if (err) {
+		/* Delete the string if we failed to add it */
+		if (!can_assume(NO_ROLLBACK) && allocated)
+			fdt_del_last_string_(fdt, name);
 		return err;
+	}
 
 	(*prop)->tag = cpu_to_fdt32(FDT_PROP);
 	(*prop)->nameoff = cpu_to_fdt32(namestroff);
@@ -253,7 +238,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	int oldlen, newlen;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	namep = (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
 	if (!namep)
@@ -261,7 +246,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 
 	newlen = strlen(name);
 
-	err = _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1),
+	err = fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
 				 FDT_TAGALIGN(newlen+1));
 	if (err)
 		return err;
@@ -270,21 +255,36 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	return 0;
 }
 
-int fdt_setprop(void *fdt, int nodeoffset, const char *name,
-		const void *val, int len)
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data)
 {
 	struct fdt_property *prop;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	err = _fdt_resize_property(fdt, nodeoffset, name, len, &prop);
+	err = fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
 	if (err == -FDT_ERR_NOTFOUND)
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
+	if (err)
+		return err;
+
+	*prop_data = prop->data;
+	return 0;
+}
+
+int fdt_setprop(void *fdt, int nodeoffset, const char *name,
+		const void *val, int len)
+{
+	void *prop_data;
+	int err;
+
+	err = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data);
 	if (err)
 		return err;
 
-	memcpy(prop->data, val, len);
+	if (len)
+		memcpy(prop_data, val, len);
 	return 0;
 }
 
@@ -294,12 +294,12 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 	struct fdt_property *prop;
 	int err, oldlen, newlen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
 	if (prop) {
 		newlen = len + oldlen;
-		err = _fdt_splice_struct(fdt, prop->data,
+		err = fdt_splice_struct_(fdt, prop->data,
 					 FDT_TAGALIGN(oldlen),
 					 FDT_TAGALIGN(newlen));
 		if (err)
@@ -307,7 +307,7 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 		prop->len = cpu_to_fdt32(newlen);
 		memcpy(prop->data + oldlen, val, len);
 	} else {
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
 		if (err)
 			return err;
 		memcpy(prop->data, val, len);
@@ -320,14 +320,14 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name)
 	struct fdt_property *prop;
 	int len, proplen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
 	proplen = sizeof(*prop) + FDT_TAGALIGN(len);
-	return _fdt_splice_struct(fdt, prop, proplen, 0);
+	return fdt_splice_struct_(fdt, prop, proplen, 0);
 }
 
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
@@ -340,7 +340,7 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 	uint32_t tag;
 	fdt32_t *endtag;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	offset = fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
 	if (offset >= 0)
@@ -349,16 +349,19 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 		return offset;
 
 	/* Try to place the new node after the parent's properties */
-	fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
+	tag = fdt_next_tag(fdt, parentoffset, &nextoffset);
+	/* the fdt_subnode_offset_namelen() should ensure this never hits */
+	if (!can_assume(LIBFDT_FLAWLESS) && (tag != FDT_BEGIN_NODE))
+		return -FDT_ERR_INTERNAL;
 	do {
 		offset = nextoffset;
 		tag = fdt_next_tag(fdt, offset, &nextoffset);
 	} while ((tag == FDT_PROP) || (tag == FDT_NOP));
 
-	nh = _fdt_offset_ptr_w(fdt, offset);
+	nh = fdt_offset_ptr_w_(fdt, offset);
 	nodelen = sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
 
-	err = _fdt_splice_struct(fdt, nh, 0, nodelen);
+	err = fdt_splice_struct_(fdt, nh, 0, nodelen);
 	if (err)
 		return err;
 
@@ -380,18 +383,20 @@ int fdt_del_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset),
+	return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
 				  endoffset - nodeoffset, 0);
 }
 
-static void _fdt_packblocks(const char *old, char *new,
-			    int mem_rsv_size, int struct_size)
+static void fdt_packblocks_(const char *old, char *new,
+			    int mem_rsv_size,
+			    int struct_size,
+			    int strings_size)
 {
 	int mem_rsv_off, struct_off, strings_off;
 
@@ -406,8 +411,7 @@ static void _fdt_packblocks(const char *old, char *new,
 	fdt_set_off_dt_struct(new, struct_off);
 	fdt_set_size_dt_struct(new, struct_size);
 
-	memmove(new + strings_off, old + fdt_off_dt_strings(old),
-		fdt_size_dt_strings(old));
+	memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size);
 	fdt_set_off_dt_strings(new, strings_off);
 	fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
 }
@@ -421,22 +425,25 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 	const char *fdtend = fdtstart + fdt_totalsize(fdt);
 	char *tmp;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
 
-	if (fdt_version(fdt) >= 17) {
+	if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
 		struct_size = fdt_size_dt_struct(fdt);
-	} else {
+	} else if (fdt_version(fdt) == 16) {
 		struct_size = 0;
 		while (fdt_next_tag(fdt, struct_size, &struct_size) != FDT_END)
 			;
 		if (struct_size < 0)
 			return struct_size;
+	} else {
+		return -FDT_ERR_BADVERSION;
 	}
 
-	if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) {
+	if (can_assume(LIBFDT_ORDER) ||
+	    !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
 		/* no further work necessary */
 		err = fdt_move(fdt, buf, bufsize);
 		if (err)
@@ -464,7 +471,8 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 			return -FDT_ERR_NOSPACE;
 	}
 
-	_fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size);
+	fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
+			fdt_size_dt_strings(fdt));
 	memmove(buf, tmp, newsize);
 
 	fdt_set_magic(buf, FDT_MAGIC);
@@ -480,12 +488,13 @@ int fdt_pack(void *fdt)
 {
 	int mem_rsv_size;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
-	_fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt));
-	fdt_set_totalsize(fdt, _fdt_data_size(fdt));
+	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
+			fdt_size_dt_strings(fdt));
+	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
 
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_strerror.c b/xen/common/libfdt/fdt_strerror.c
index 8d0289c..b435693 100644
--- a/xen/common/libfdt/fdt_strerror.c
+++ b/xen/common/libfdt/fdt_strerror.c
@@ -1,49 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
@@ -67,6 +25,7 @@ static struct fdt_errtabent fdt_errtable[] = {
 
 	FDT_ERRTABENT(FDT_ERR_BADOFFSET),
 	FDT_ERRTABENT(FDT_ERR_BADPATH),
+	FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
 	FDT_ERRTABENT(FDT_ERR_BADSTATE),
 
 	FDT_ERRTABENT(FDT_ERR_TRUNCATED),
@@ -74,8 +33,14 @@ static struct fdt_errtabent fdt_errtable[] = {
 	FDT_ERRTABENT(FDT_ERR_BADVERSION),
 	FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
 	FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
+	FDT_ERRTABENT(FDT_ERR_INTERNAL),
+	FDT_ERRTABENT(FDT_ERR_BADNCELLS),
+	FDT_ERRTABENT(FDT_ERR_BADVALUE),
+	FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
+	FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
+	FDT_ERRTABENT(FDT_ERR_BADFLAGS),
 };
-#define FDT_ERRTABSIZE	(sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
+#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
 
 const char *fdt_strerror(int errval)
 {
@@ -83,7 +48,7 @@ const char *fdt_strerror(int errval)
 		return "<valid offset/length>";
 	else if (errval == 0)
 		return "<no error>";
-	else if (errval > -FDT_ERRTABSIZE) {
+	else if (-errval < FDT_ERRTABSIZE) {
 		const char *s = fdt_errtable[-errval].str;
 
 		if (s)
diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
index c7d93d3..4c569ee 100644
--- a/xen/common/libfdt/fdt_sw.c
+++ b/xen/common/libfdt/fdt_sw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,25 +10,91 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_sw_check_header(void *fdt)
+static int fdt_sw_probe_(void *fdt)
+{
+	if (!can_assume(VALID_INPUT)) {
+		if (fdt_magic(fdt) == FDT_MAGIC)
+			return -FDT_ERR_BADSTATE;
+		else if (fdt_magic(fdt) != FDT_SW_MAGIC)
+			return -FDT_ERR_BADMAGIC;
+	}
+
+	return 0;
+}
+
+#define FDT_SW_PROBE(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'memrsv' state:	Initial state after fdt_create()
+ *
+ * Allowed functions:
+ *	fdt_add_reservemap_entry()
+ *	fdt_finish_reservemap()		[moves to 'struct' state]
+ */
+static int fdt_sw_probe_memrsv_(void *fdt)
+{
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) != 0)
+		return -FDT_ERR_BADSTATE;
+	return 0;
+}
+
+#define FDT_SW_PROBE_MEMRSV(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_memrsv_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'struct' state:	Enter this state after fdt_finish_reservemap()
+ *
+ * Allowed functions:
+ *	fdt_begin_node()
+ *	fdt_end_node()
+ *	fdt_property*()
+ *	fdt_finish()			[moves to 'complete' state]
+ */
+static int fdt_sw_probe_struct_(void *fdt)
 {
-	if (fdt_magic(fdt) != FDT_SW_MAGIC)
-		return -FDT_ERR_BADMAGIC;
-	/* FIXME: should check more details about the header state */
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) &&
+	    fdt_off_dt_strings(fdt) != fdt_totalsize(fdt))
+		return -FDT_ERR_BADSTATE;
 	return 0;
 }
 
-#define FDT_SW_CHECK_HEADER(fdt) \
+#define FDT_SW_PROBE_STRUCT(fdt) \
 	{ \
 		int err; \
-		if ((err = _fdt_sw_check_header(fdt)) != 0) \
+		if ((err = fdt_sw_probe_struct_(fdt)) != 0) \
 			return err; \
 	}
 
-static void *_fdt_grab_space(void *fdt, size_t len)
+static inline uint32_t sw_flags(void *fdt)
 {
-	int offset = fdt_size_dt_struct(fdt);
-	int spaceleft;
+	/* assert: (fdt_magic(fdt) == FDT_SW_MAGIC) */
+	return fdt_last_comp_version(fdt);
+}
+
+/* 'complete' state:	Enter this state after fdt_finish()
+ *
+ * Allowed functions: none
+ */
+
+static void *fdt_grab_space_(void *fdt, size_t len)
+{
+	unsigned int offset = fdt_size_dt_struct(fdt);
+	unsigned int spaceleft;
 
 	spaceleft = fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
 		- fdt_size_dt_strings(fdt);
@@ -80,27 +103,84 @@ static void *_fdt_grab_space(void *fdt, size_t len)
 		return NULL;
 
 	fdt_set_size_dt_struct(fdt, offset + len);
-	return _fdt_offset_ptr_w(fdt, offset);
+	return fdt_offset_ptr_w_(fdt, offset);
 }
 
-int fdt_create(void *buf, int bufsize)
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
 {
+	const int hdrsize = FDT_ALIGN(sizeof(struct fdt_header),
+				      sizeof(struct fdt_reserve_entry));
 	void *fdt = buf;
 
-	if (bufsize < sizeof(struct fdt_header))
+	if (bufsize < hdrsize)
 		return -FDT_ERR_NOSPACE;
 
+	if (flags & ~FDT_CREATE_FLAGS_ALL)
+		return -FDT_ERR_BADFLAGS;
+
 	memset(buf, 0, bufsize);
 
+	/*
+	 * magic and last_comp_version keep intermediate state during the fdt
+	 * creation process, which is replaced with the proper FDT format by
+	 * fdt_finish().
+	 *
+	 * flags should be accessed with sw_flags().
+	 */
 	fdt_set_magic(fdt, FDT_SW_MAGIC);
 	fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
-	fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION);
+	fdt_set_last_comp_version(fdt, flags);
+
 	fdt_set_totalsize(fdt,  bufsize);
 
-	fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header),
-					      sizeof(struct fdt_reserve_entry)));
+	fdt_set_off_mem_rsvmap(fdt, hdrsize);
 	fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
-	fdt_set_off_dt_strings(fdt, bufsize);
+	fdt_set_off_dt_strings(fdt, 0);
+
+	return 0;
+}
+
+int fdt_create(void *buf, int bufsize)
+{
+	return fdt_create_with_flags(buf, bufsize, 0);
+}
+
+int fdt_resize(void *fdt, void *buf, int bufsize)
+{
+	size_t headsize, tailsize;
+	char *oldtail, *newtail;
+
+	FDT_SW_PROBE(fdt);
+
+	if (bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	headsize = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	tailsize = fdt_size_dt_strings(fdt);
+
+	if (!can_assume(VALID_DTB) &&
+	    headsize + tailsize > fdt_totalsize(fdt))
+		return -FDT_ERR_INTERNAL;
+
+	if ((headsize + tailsize) > (unsigned)bufsize)
+		return -FDT_ERR_NOSPACE;
+
+	oldtail = (char *)fdt + fdt_totalsize(fdt) - tailsize;
+	newtail = (char *)buf + bufsize - tailsize;
+
+	/* Two cases to avoid clobbering data if the old and new
+	 * buffers partially overlap */
+	if (buf <= fdt) {
+		memmove(buf, fdt, headsize);
+		memmove(newtail, oldtail, tailsize);
+	} else {
+		memmove(newtail, oldtail, tailsize);
+		memmove(buf, fdt, headsize);
+	}
+
+	fdt_set_totalsize(buf, bufsize);
+	if (fdt_off_dt_strings(buf))
+		fdt_set_off_dt_strings(buf, bufsize);
 
 	return 0;
 }
@@ -110,10 +190,7 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int offset;
 
-	FDT_SW_CHECK_HEADER(fdt);
-
-	if (fdt_size_dt_struct(fdt))
-		return -FDT_ERR_BADSTATE;
+	FDT_SW_PROBE_MEMRSV(fdt);
 
 	offset = fdt_off_dt_struct(fdt);
 	if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
@@ -130,17 +207,24 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 
 int fdt_finish_reservemap(void *fdt)
 {
-	return fdt_add_reservemap_entry(fdt, 0, 0);
+	int err = fdt_add_reservemap_entry(fdt, 0, 0);
+
+	if (err)
+		return err;
+
+	fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
+	return 0;
 }
 
 int fdt_begin_node(void *fdt, const char *name)
 {
 	struct fdt_node_header *nh;
-	int namelen = strlen(name) + 1;
+	int namelen;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nh = _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
+	namelen = strlen(name) + 1;
+	nh = fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
 	if (! nh)
 		return -FDT_ERR_NOSPACE;
 
@@ -153,9 +237,9 @@ int fdt_end_node(void *fdt)
 {
 	fdt32_t *en;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	en = _fdt_grab_space(fdt, FDT_TAGSIZE);
+	en = fdt_grab_space_(fdt, FDT_TAGSIZE);
 	if (! en)
 		return -FDT_ERR_NOSPACE;
 
@@ -163,48 +247,90 @@ int fdt_end_node(void *fdt)
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+static int fdt_add_string_(void *fdt, const char *s)
 {
 	char *strtab = (char *)fdt + fdt_totalsize(fdt);
-	const char *p;
+	unsigned int strtabsize = fdt_size_dt_strings(fdt);
+	unsigned int len = strlen(s) + 1;
+	unsigned int struct_top, offset;
+
+	offset = strtabsize + len;
+	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	if (fdt_totalsize(fdt) - offset < struct_top)
+		return 0; /* no more room :( */
+
+	memcpy(strtab - offset, s, len);
+	fdt_set_size_dt_strings(fdt, strtabsize + len);
+	return -offset;
+}
+
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
 	int strtabsize = fdt_size_dt_strings(fdt);
 	int len = strlen(s) + 1;
-	int struct_top, offset;
 
-	p = _fdt_find_string(strtab - strtabsize, strtabsize, s);
+	fdt_set_size_dt_strings(fdt, strtabsize - len);
+}
+
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
+{
+	char *strtab = (char *)fdt + fdt_totalsize(fdt);
+	int strtabsize = fdt_size_dt_strings(fdt);
+	const char *p;
+
+	*allocated = 0;
+
+	p = fdt_find_string_(strtab - strtabsize, strtabsize, s);
 	if (p)
 		return p - strtab;
 
-	/* Add it */
-	offset = -strtabsize - len;
-	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
-	if (fdt_totalsize(fdt) + offset < struct_top)
-		return 0; /* no more room :( */
+	*allocated = 1;
 
-	memcpy(strtab + offset, s, len);
-	fdt_set_size_dt_strings(fdt, strtabsize + len);
-	return offset;
+	return fdt_add_string_(fdt, s);
 }
 
-int fdt_property(void *fdt, const char *name, const void *val, int len)
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)
 {
 	struct fdt_property *prop;
 	int nameoff;
+	int allocated;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nameoff = _fdt_find_add_string(fdt, name);
+	/* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
+	if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
+		allocated = 1;
+		nameoff = fdt_add_string_(fdt, name);
+	} else {
+		nameoff = fdt_find_add_string_(fdt, name, &allocated);
+	}
 	if (nameoff == 0)
 		return -FDT_ERR_NOSPACE;
 
-	prop = _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
-	if (! prop)
+	prop = fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
+	if (! prop) {
+		if (allocated)
+			fdt_del_last_string_(fdt, name);
 		return -FDT_ERR_NOSPACE;
+	}
 
 	prop->tag = cpu_to_fdt32(FDT_PROP);
 	prop->nameoff = cpu_to_fdt32(nameoff);
 	prop->len = cpu_to_fdt32(len);
-	memcpy(prop->data, val, len);
+	*valp = prop->data;
+	return 0;
+}
+
+int fdt_property(void *fdt, const char *name, const void *val, int len)
+{
+	void *ptr;
+	int ret;
+
+	ret = fdt_property_placeholder(fdt, name, len, &ptr);
+	if (ret)
+		return ret;
+	memcpy(ptr, val, len);
 	return 0;
 }
 
@@ -216,10 +342,10 @@ int fdt_finish(void *fdt)
 	uint32_t tag;
 	int offset, nextoffset;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
 	/* Add terminator */
-	end = _fdt_grab_space(fdt, sizeof(*end));
+	end = fdt_grab_space_(fdt, sizeof(*end));
 	if (! end)
 		return -FDT_ERR_NOSPACE;
 	*end = cpu_to_fdt32(FDT_END);
@@ -235,7 +361,7 @@ int fdt_finish(void *fdt)
 	while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {
 		if (tag == FDT_PROP) {
 			struct fdt_property *prop =
-				_fdt_offset_ptr_w(fdt, offset);
+				fdt_offset_ptr_w_(fdt, offset);
 			int nameoff;
 
 			nameoff = fdt32_to_cpu(prop->nameoff);
@@ -249,6 +375,10 @@ int fdt_finish(void *fdt)
 
 	/* Finally, adjust the header */
 	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
+
+	/* And fix up fields that were keeping intermediate state. */
+	fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
 	fdt_set_magic(fdt, FDT_MAGIC);
+
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_wip.c b/xen/common/libfdt/fdt_wip.c
index 2d1cac0..c2d7566 100644
--- a/xen/common/libfdt/fdt_wip.c
+++ b/xen/common/libfdt/fdt_wip.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,24 +10,45 @@
 
 #include "libfdt_internal.h"
 
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len)
+{
+	void *propval;
+	int proplen;
+
+	propval = fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
+					&proplen);
+	if (!propval)
+		return proplen;
+
+	if ((unsigned)proplen < (len + idx))
+		return -FDT_ERR_NOSPACE;
+
+	memcpy((char *)propval + idx, val, len);
+	return 0;
+}
+
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len)
 {
-	void *propval;
+	const void *propval;
 	int proplen;
 
-	propval = fdt_getprop_w(fdt, nodeoffset, name, &proplen);
-	if (! propval)
+	propval = fdt_getprop(fdt, nodeoffset, name, &proplen);
+	if (!propval)
 		return proplen;
 
 	if (proplen != len)
 		return -FDT_ERR_NOSPACE;
 
-	memcpy(propval, val, len);
-	return 0;
+	return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
+						   strlen(name), 0,
+						   val, len);
 }
 
-static void _fdt_nop_region(void *start, int len)
+static void fdt_nop_region_(void *start, int len)
 {
 	fdt32_t *p;
 
@@ -84,15 +62,15 @@ int fdt_nop_property(void *fdt, int nodeoffset, const char *name)
 	int len;
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
-	_fdt_nop_region(prop, len + sizeof(*prop));
+	fdt_nop_region_(prop, len + sizeof(*prop));
 
 	return 0;
 }
 
-int _fdt_node_end_offset(void *fdt, int offset)
+int fdt_node_end_offset_(void *fdt, int offset)
 {
 	int depth = 0;
 
@@ -106,11 +84,11 @@ int fdt_nop_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	_fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0),
+	fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
 			endoffset - nodeoffset);
 	return 0;
 }
diff --git a/xen/common/libfdt/libfdt_internal.h b/xen/common/libfdt/libfdt_internal.h
index d50c4e1..16bda19 100644
--- a/xen/common/libfdt/libfdt_internal.h
+++ b/xen/common/libfdt/libfdt_internal.h
@@ -1,81 +1,39 @@
-#ifndef _LIBFDT_INTERNAL_H
-#define _LIBFDT_INTERNAL_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_INTERNAL_H
+#define LIBFDT_INTERNAL_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include <fdt.h>
 
 #define FDT_ALIGN(x, a)		(((x) + (a) - 1) & ~((a) - 1))
 #define FDT_TAGALIGN(x)		(FDT_ALIGN((x), FDT_TAGSIZE))
 
-#define FDT_CHECK_HEADER(fdt) \
-	{ \
-		int err; \
-		if ((err = fdt_check_header(fdt)) != 0) \
-			return err; \
+int32_t fdt_ro_probe_(const void *fdt);
+#define FDT_RO_PROBE(fdt)					\
+	{							\
+		int32_t totalsize_;				\
+		if ((totalsize_ = fdt_ro_probe_(fdt)) < 0)	\
+			return totalsize_;			\
 	}
 
-int _fdt_check_node_offset(const void *fdt, int offset);
-int _fdt_check_prop_offset(const void *fdt, int offset);
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s);
-int _fdt_node_end_offset(void *fdt, int nodeoffset);
+int fdt_check_node_offset_(const void *fdt, int offset);
+int fdt_check_prop_offset_(const void *fdt, int offset);
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s);
+int fdt_node_end_offset_(void *fdt, int nodeoffset);
 
-static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
+static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
 {
 	return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
 }
 
-static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
+static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
 {
-	return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
+	return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
 }
 
-static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int n)
+static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *fdt, int n)
 {
 	const struct fdt_reserve_entry *rsv_table =
 		(const struct fdt_reserve_entry *)
@@ -83,11 +41,152 @@ static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int
 
 	return rsv_table + n;
 }
-static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
+static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
+{
+	return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
+}
+
+/*
+ * Internal helpers to access tructural elements of the device tree
+ * blob (rather than for exaple reading integers from within property
+ * values).  We assume that we are either given a naturally aligned
+ * address for the platform or if we are not, we are on a platform
+ * where unaligned memory reads will be handled in a graceful manner.
+ * If not the external helpers fdtXX_ld() from libfdt.h can be used
+ * instead.
+ */
+static inline uint32_t fdt32_ld_(const fdt32_t *p)
 {
-	return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
+	return fdt32_to_cpu(*p);
+}
+
+static inline uint64_t fdt64_ld_(const fdt64_t *p)
+{
+	return fdt64_to_cpu(*p);
 }
 
 #define FDT_SW_MAGIC		(~FDT_MAGIC)
 
-#endif /* _LIBFDT_INTERNAL_H */
+/**********************************************************************/
+/* Checking controls                                                  */
+/**********************************************************************/
+
+#ifndef FDT_ASSUME_MASK
+#define FDT_ASSUME_MASK 0
+#endif
+
+/*
+ * Defines assumptions which can be enabled. Each of these can be enabled
+ * individually. For maximum safety, don't enable any assumptions!
+ *
+ * For minimal code size and no safety, use ASSUME_PERFECT at your own risk.
+ * You should have another method of validating the device tree, such as a
+ * signature or hash check before using libfdt.
+ *
+ * For situations where security is not a concern it may be safe to enable
+ * ASSUME_SANE.
+ */
+enum {
+	/*
+	 * This does essentially no checks. Only the latest device-tree
+	 * version is correctly handled. Inconsistencies or errors in the device
+	 * tree may cause undefined behaviour or crashes. Invalid parameters
+	 * passed to libfdt may do the same.
+	 *
+	 * If an error occurs when modifying the tree it may leave the tree in
+	 * an intermediate (but valid) state. As an example, adding a property
+	 * where there is insufficient space may result in the property name
+	 * being added to the string table even though the property itself is
+	 * not added to the struct section.
+	 *
+	 * Only use this if you have a fully validated device tree with
+	 * the latest supported version and wish to minimise code size.
+	 */
+	ASSUME_PERFECT		= 0xff,
+
+	/*
+	 * This assumes that the device tree is sane. i.e. header metadata
+	 * and basic hierarchy are correct.
+	 *
+	 * With this assumption enabled, normal device trees produced by libfdt
+	 * and the compiler should be handled safely. Malicious device trees and
+	 * complete garbage may cause libfdt to behave badly or crash. Truncated
+	 * device trees (e.g. those only partially loaded) can also cause
+	 * problems.
+	 *
+	 * Note: Only checks that relate exclusively to the device tree itself
+	 * (not the parameters passed to libfdt) are disabled by this
+	 * assumption. This includes checking headers, tags and the like.
+	 */
+	ASSUME_VALID_DTB	= 1 << 0,
+
+	/*
+	 * This builds on ASSUME_VALID_DTB and further assumes that libfdt
+	 * functions are called with valid parameters, i.e. not trigger
+	 * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
+	 * extensive checking of parameters and the device tree, making various
+	 * assumptions about correctness.
+	 *
+	 * It doesn't make sense to enable this assumption unless
+	 * ASSUME_VALID_DTB is also enabled.
+	 */
+	ASSUME_VALID_INPUT	= 1 << 1,
+
+	/*
+	 * This disables checks for device-tree version and removes all code
+	 * which handles older versions.
+	 *
+	 * Only enable this if you know you have a device tree with the latest
+	 * version.
+	 */
+	ASSUME_LATEST		= 1 << 2,
+
+	/*
+	 * This assumes that it is OK for a failed addition to the device tree,
+	 * due to lack of space or some other problem, to skip any rollback
+	 * steps (such as dropping the property name from the string table).
+	 * This is safe to enable in most circumstances, even though it may
+	 * leave the tree in a sub-optimal state.
+	 */
+	ASSUME_NO_ROLLBACK	= 1 << 3,
+
+	/*
+	 * This assumes that the device tree components appear in a 'convenient'
+	 * order, i.e. the memory reservation block first, then the structure
+	 * block and finally the string block.
+	 *
+	 * This order is not specified by the device-tree specification,
+	 * but is expected by libfdt. The device-tree compiler always created
+	 * device trees with this order.
+	 *
+	 * This assumption disables a check in fdt_open_into() and removes the
+	 * ability to fix the problem there. This is safe if you know that the
+	 * device tree is correctly ordered. See fdt_blocks_misordered_().
+	 */
+	ASSUME_LIBFDT_ORDER	= 1 << 4,
+
+	/*
+	 * This assumes that libfdt itself does not have any internal bugs. It
+	 * drops certain checks that should never be needed unless libfdt has an
+	 * undiscovered bug.
+	 *
+	 * This can generally be considered safe to enable.
+	 */
+	ASSUME_LIBFDT_FLAWLESS	= 1 << 5,
+};
+
+/**
+ * can_assume_() - check if a particular assumption is enabled
+ *
+ * @mask: Mask to check (ASSUME_...)
+ * @return true if that assumption is enabled, else false
+ */
+static inline bool can_assume_(int mask)
+{
+	return FDT_ASSUME_MASK & mask;
+}
+
+/** helper macros for checking assumptions */
+#define can_assume(_assume)	can_assume_(ASSUME_ ## _assume)
+
+#endif /* LIBFDT_INTERNAL_H */
diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
index f460b0d..f2e6880 100644
--- a/xen/include/xen/libfdt/fdt.h
+++ b/xen/include/xen/libfdt/fdt.h
@@ -1,53 +1,10 @@
-#ifndef _FDT_H
-#define _FDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef FDT_H
+#define FDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #ifndef __ASSEMBLY__
@@ -106,4 +63,4 @@ struct fdt_property {
 #define FDT_V16_SIZE	FDT_V3_SIZE
 #define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(fdt32_t))
 
-#endif /* _FDT_H */
+#endif /* FDT_H */
diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
index 7c75688..c71689e 100644
--- a/xen/include/xen/libfdt/libfdt.h
+++ b/xen/include/xen/libfdt/libfdt.h
@@ -1,65 +1,27 @@
-#ifndef _LIBFDT_H
-#define _LIBFDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_H
+#define LIBFDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <xen/libfdt/libfdt_env.h>
 #include <xen/libfdt/fdt.h>
 
-#define FDT_FIRST_SUPPORTED_VERSION	0x10
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FDT_FIRST_SUPPORTED_VERSION	0x02
+#define FDT_LAST_COMPATIBLE_VERSION 0x10
 #define FDT_LAST_SUPPORTED_VERSION	0x11
 
 /* Error codes: informative error codes */
 #define FDT_ERR_NOTFOUND	1
 	/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
 #define FDT_ERR_EXISTS		2
-	/* FDT_ERR_EXISTS: Attemped to create a node or property which
+	/* FDT_ERR_EXISTS: Attempted to create a node or property which
 	 * already exists */
 #define FDT_ERR_NOSPACE		3
 	/* FDT_ERR_NOSPACE: Operation needed to expand the device
@@ -77,8 +39,10 @@
 	 * (e.g. missing a leading / for a function which requires an
 	 * absolute path) */
 #define FDT_ERR_BADPHANDLE	6
-	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle
-	 * value.  phandle values of 0 and -1 are not permitted. */
+	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
+	 * This can be caused either by an invalid phandle property
+	 * length, or the phandle value was either 0 or -1, which are
+	 * not permitted. */
 #define FDT_ERR_BADSTATE	7
 	/* FDT_ERR_BADSTATE: Function was passed an incomplete device
 	 * tree created by the sequential-write functions, which is
@@ -86,8 +50,9 @@
 
 /* Error codes: codes for bad device tree blobs */
 #define FDT_ERR_TRUNCATED	8
-	/* FDT_ERR_TRUNCATED: Structure block of the given device tree
-	 * ends without an FDT_END tag. */
+	/* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
+	 * terminated (overflows, goes outside allowed bounds, or
+	 * isn't properly terminated).  */
 #define FDT_ERR_BADMAGIC	9
 	/* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
 	 * device tree at all - it is missing the flattened device
@@ -114,13 +79,46 @@
 	 * Should never be returned, if it is, it indicates a bug in
 	 * libfdt itself. */
 
-#define FDT_ERR_MAX		13
+/* Errors in device tree content */
+#define FDT_ERR_BADNCELLS	14
+	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
+	 * or similar property with a bad format or value */
+
+#define FDT_ERR_BADVALUE	15
+	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
+	 * value. For example: a property expected to contain a string list
+	 * is not NUL-terminated within the length of its value. */
+
+#define FDT_ERR_BADOVERLAY	16
+	/* FDT_ERR_BADOVERLAY: The device tree overlay, while
+	 * correctly structured, cannot be applied due to some
+	 * unexpected or missing value, property or node. */
+
+#define FDT_ERR_NOPHANDLES	17
+	/* FDT_ERR_NOPHANDLES: The device tree doesn't have any
+	 * phandle available anymore without causing an overflow */
+
+#define FDT_ERR_BADFLAGS	18
+	/* FDT_ERR_BADFLAGS: The function was passed a flags field that
+	 * contains invalid flags or an invalid combination of flags. */
+
+#define FDT_ERR_ALIGNMENT	19
+	/* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
+	 * aligned. */
+
+#define FDT_ERR_MAX		19
+
+/* constants */
+#define FDT_MAX_PHANDLE 0xfffffffe
+	/* Valid values for phandles range from 1 to 2^32-2. */
 
 /**********************************************************************/
 /* Low-level functions (you probably don't need these)                */
 /**********************************************************************/
 
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen);
+#endif
 static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 {
 	return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
@@ -128,6 +126,59 @@ static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 
 uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
 
+/*
+ * External helpers to access words from a device tree blob. They're built
+ * to work even with unaligned pointers on platforms (such as ARMv5) that don't
+ * like unaligned loads and stores.
+ */
+static inline uint32_t fdt32_ld(const fdt32_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint32_t)bp[0] << 24)
+		| ((uint32_t)bp[1] << 16)
+		| ((uint32_t)bp[2] << 8)
+		| bp[3];
+}
+
+static inline void fdt32_st(void *property, uint32_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 24;
+	bp[1] = (value >> 16) & 0xff;
+	bp[2] = (value >> 8) & 0xff;
+	bp[3] = value & 0xff;
+}
+
+static inline uint64_t fdt64_ld(const fdt64_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint64_t)bp[0] << 56)
+		| ((uint64_t)bp[1] << 48)
+		| ((uint64_t)bp[2] << 40)
+		| ((uint64_t)bp[3] << 32)
+		| ((uint64_t)bp[4] << 24)
+		| ((uint64_t)bp[5] << 16)
+		| ((uint64_t)bp[6] << 8)
+		| bp[7];
+}
+
+static inline void fdt64_st(void *property, uint64_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 56;
+	bp[1] = (value >> 48) & 0xff;
+	bp[2] = (value >> 40) & 0xff;
+	bp[3] = (value >> 32) & 0xff;
+	bp[4] = (value >> 24) & 0xff;
+	bp[5] = (value >> 16) & 0xff;
+	bp[6] = (value >> 8) & 0xff;
+	bp[7] = value & 0xff;
+}
+
 /**********************************************************************/
 /* Traversal functions                                                */
 /**********************************************************************/
@@ -136,74 +187,118 @@ int fdt_next_node(const void *fdt, int offset, int *depth);
 
 /**
  * fdt_first_subnode() - get offset of first direct subnode
- *
  * @fdt:	FDT blob
  * @offset:	Offset of node to check
- * @return offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
+ *
+ * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
  */
 int fdt_first_subnode(const void *fdt, int offset);
 
 /**
  * fdt_next_subnode() - get offset of next direct subnode
+ * @fdt:	FDT blob
+ * @offset:	Offset of previous subnode
  *
  * After first calling fdt_first_subnode(), call this function repeatedly to
  * get direct subnodes of a parent node.
  *
- * @fdt:	FDT blob
- * @offset:	Offset of previous subnode
- * @return offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
- * subnodes
+ * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
+ *         subnodes
  */
 int fdt_next_subnode(const void *fdt, int offset);
 
+/**
+ * fdt_for_each_subnode - iterate over all subnodes of a parent
+ *
+ * @node:	child node (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @parent:	parent node (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_subnode(node, fdt, parent) {
+ *		Use node
+ *		...
+ *	}
+ *
+ *	if ((node < 0) && (node != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and @node is used as
+ * iterator in the loop. The parent variable be constant or even a
+ * literal.
+ */
+#define fdt_for_each_subnode(node, fdt, parent)		\
+	for (node = fdt_first_subnode(fdt, parent);	\
+	     node >= 0;					\
+	     node = fdt_next_subnode(fdt, node))
+
 /**********************************************************************/
 /* General functions                                                  */
 /**********************************************************************/
-
 #define fdt_get_header(fdt, field) \
-	(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))
-#define fdt_magic(fdt) 			(fdt_get_header(fdt, magic))
+	(fdt32_ld(&((const struct fdt_header *)(fdt))->field))
+#define fdt_magic(fdt)			(fdt_get_header(fdt, magic))
 #define fdt_totalsize(fdt)		(fdt_get_header(fdt, totalsize))
 #define fdt_off_dt_struct(fdt)		(fdt_get_header(fdt, off_dt_struct))
 #define fdt_off_dt_strings(fdt)		(fdt_get_header(fdt, off_dt_strings))
 #define fdt_off_mem_rsvmap(fdt)		(fdt_get_header(fdt, off_mem_rsvmap))
 #define fdt_version(fdt)		(fdt_get_header(fdt, version))
-#define fdt_last_comp_version(fdt) 	(fdt_get_header(fdt, last_comp_version))
-#define fdt_boot_cpuid_phys(fdt) 	(fdt_get_header(fdt, boot_cpuid_phys))
-#define fdt_size_dt_strings(fdt) 	(fdt_get_header(fdt, size_dt_strings))
+#define fdt_last_comp_version(fdt)	(fdt_get_header(fdt, last_comp_version))
+#define fdt_boot_cpuid_phys(fdt)	(fdt_get_header(fdt, boot_cpuid_phys))
+#define fdt_size_dt_strings(fdt)	(fdt_get_header(fdt, size_dt_strings))
 #define fdt_size_dt_struct(fdt)		(fdt_get_header(fdt, size_dt_struct))
 
-#define __fdt_set_hdr(name) \
+#define fdt_set_hdr_(name) \
 	static inline void fdt_set_##name(void *fdt, uint32_t val) \
 	{ \
-		struct fdt_header *fdth = (struct fdt_header*)fdt; \
+		struct fdt_header *fdth = (struct fdt_header *)fdt; \
 		fdth->name = cpu_to_fdt32(val); \
 	}
-__fdt_set_hdr(magic);
-__fdt_set_hdr(totalsize);
-__fdt_set_hdr(off_dt_struct);
-__fdt_set_hdr(off_dt_strings);
-__fdt_set_hdr(off_mem_rsvmap);
-__fdt_set_hdr(version);
-__fdt_set_hdr(last_comp_version);
-__fdt_set_hdr(boot_cpuid_phys);
-__fdt_set_hdr(size_dt_strings);
-__fdt_set_hdr(size_dt_struct);
-#undef __fdt_set_hdr
-
-/**
- * fdt_check_header - sanity check a device tree or possible device tree
+fdt_set_hdr_(magic);
+fdt_set_hdr_(totalsize);
+fdt_set_hdr_(off_dt_struct);
+fdt_set_hdr_(off_dt_strings);
+fdt_set_hdr_(off_mem_rsvmap);
+fdt_set_hdr_(version);
+fdt_set_hdr_(last_comp_version);
+fdt_set_hdr_(boot_cpuid_phys);
+fdt_set_hdr_(size_dt_strings);
+fdt_set_hdr_(size_dt_struct);
+#undef fdt_set_hdr_
+
+/**
+ * fdt_header_size - return the size of the tree's header
+ * @fdt: pointer to a flattened device tree
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size(const void *fdt);
+
+/**
+ * fdt_header_size_ - internal function to get header size from a version number
+ * @version: devicetree version number
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size_(uint32_t version);
+
+/**
+ * fdt_check_header - sanity check a device tree header
  * @fdt: pointer to data which might be a flattened device tree
  *
  * fdt_check_header() checks that the given buffer contains what
- * appears to be a flattened device tree with sane information in its
- * header.
+ * appears to be a flattened device tree, and that the header contains
+ * valid information (to the extent that can be determined from the
+ * header alone).
  *
  * returns:
  *     0, if the buffer appears to contain a valid device tree
  *     -FDT_ERR_BADMAGIC,
  *     -FDT_ERR_BADVERSION,
- *     -FDT_ERR_BADSTATE, standard meanings, as above
+ *     -FDT_ERR_BADSTATE,
+ *     -FDT_ERR_TRUNCATED, standard meanings, as above
  */
 int fdt_check_header(const void *fdt);
 
@@ -232,6 +327,24 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
 /* Read-only functions                                                */
 /**********************************************************************/
 
+int fdt_check_full(const void *fdt, size_t bufsize);
+
+/**
+ * fdt_get_string - retrieve a string from the strings block of a device tree
+ * @fdt: pointer to the device tree blob
+ * @stroffset: offset of the string within the strings block (native endian)
+ * @lenp: optional pointer to return the string's length
+ *
+ * fdt_get_string() retrieves a pointer to a single string from the
+ * strings block of the device tree blob at fdt, and optionally also
+ * returns the string's length in *lenp.
+ *
+ * returns:
+ *     a pointer to the string, on success
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
+ */
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
+
 /**
  * fdt_string - retrieve a string from the strings block of a device tree
  * @fdt: pointer to the device tree blob
@@ -242,11 +355,66 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
  *
  * returns:
  *     a pointer to the string, on success
- *     NULL, if stroffset is out of bounds
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
  */
 const char *fdt_string(const void *fdt, int stroffset);
 
 /**
+ * fdt_find_max_phandle - find and return the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the highest phandle value found in the tree
+ *
+ * fdt_find_max_phandle() finds the highest phandle value in the given device
+ * tree. The value returned in @phandle is only valid if the function returns
+ * success.
+ *
+ * returns:
+ *     0 on success or a negative error code on failure
+ */
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
+
+/**
+ * fdt_get_max_phandle - retrieves the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ *
+ * fdt_get_max_phandle retrieves the highest phandle in the given
+ * device tree. This will ignore badly formatted phandles, or phandles
+ * with a value of 0 or -1.
+ *
+ * This function is deprecated in favour of fdt_find_max_phandle().
+ *
+ * returns:
+ *      the highest phandle on success
+ *      0, if no phandle was found in the device tree
+ *      -1, if an error occurred
+ */
+static inline uint32_t fdt_get_max_phandle(const void *fdt)
+{
+	uint32_t phandle;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &phandle);
+	if (err < 0)
+		return (uint32_t)-1;
+
+	return phandle;
+}
+
+/**
+ * fdt_generate_phandle - return a new, unused phandle for a device tree blob
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the new phandle
+ *
+ * Walks the device tree blob and looks for the highest phandle value. On
+ * success, the new, unused phandle value (one higher than the previously
+ * highest phandle value in the device tree blob) will be returned in the
+ * @phandle parameter.
+ *
+ * Return: 0 on success or a negative error-code on failure
+ */
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
+
+/**
  * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
  * @fdt: pointer to the device tree blob
  *
@@ -262,9 +430,11 @@ int fdt_num_mem_rsv(const void *fdt);
 /**
  * fdt_get_mem_rsv - retrieve one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: pointers to 64-bit variables
+ * @n: index of reserve map entry
+ * @address: pointer to 64-bit variable to hold the start address
+ * @size: pointer to 64-bit variable to hold the size of the entry
  *
- * On success, *address and *size will contain the address and size of
+ * On success, @address and @size will contain the address and size of
  * the n-th reserve map entry from the device tree blob, in
  * native-endian format.
  *
@@ -287,9 +457,13 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size);
  * namelen characters of name for matching the subnode name.  This is
  * useful for finding subnodes based on a portion of a larger string,
  * such as a full path.
+ *
+ * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 			       const char *name, int namelen);
+#endif
 /**
  * fdt_subnode_offset - find a subnode of a given node
  * @fdt: pointer to the device tree blob
@@ -306,8 +480,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
  * returns:
  *	structure block offset of the requested subnode (>=0), on success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
- *      -FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
+ *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
  *	-FDT_ERR_BADSTRUCTURE,
@@ -316,6 +491,21 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
 
 /**
+ * fdt_path_offset_namelen - find a tree node by its full path
+ * @fdt: pointer to the device tree blob
+ * @path: full path of the node to locate
+ * @namelen: number of characters of path to consider
+ *
+ * Identical to fdt_path_offset(), but only consider the first namelen
+ * characters of path as the path name.
+ *
+ * Return: offset of the node or negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);
+#endif
+
+/**
  * fdt_path_offset - find a tree node by its full path
  * @fdt: pointer to the device tree blob
  * @path: full path of the node to locate
@@ -328,7 +518,8 @@ int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
  * address).
  *
  * returns:
- *	structure block offset of the node with the requested path (>=0), on success
+ *	structure block offset of the node with the requested path (>=0), on
+ *		success
  *	-FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
  *	-FDT_ERR_NOTFOUND, if the requested node does not exist
  *      -FDT_ERR_BADMAGIC,
@@ -352,10 +543,12 @@ int fdt_path_offset(const void *fdt, const char *path);
  *
  * returns:
  *	pointer to the node's name, on success
- *		If lenp is non-NULL, *lenp contains the length of that name (>=0)
+ *		If lenp is non-NULL, *lenp contains the length of that name
+ *			(>=0)
  *	NULL, on error
  *		if lenp is non-NULL *lenp contains an error code (<0):
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE, standard meanings
@@ -404,6 +597,33 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset);
 int fdt_next_property_offset(const void *fdt, int offset);
 
 /**
+ * fdt_for_each_property_offset - iterate over all properties of a node
+ *
+ * @property:	property offset (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @node:	node offset (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_property_offset(property, fdt, node) {
+ *		Use property
+ *		...
+ *	}
+ *
+ *	if ((property < 0) && (property != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and property is used as
+ * iterator in the loop. The node variable can be constant or even a
+ * literal.
+ */
+#define fdt_for_each_property_offset(property, fdt, node)	\
+	for (property = fdt_first_property_offset(fdt, node);	\
+	     property >= 0;					\
+	     property = fdt_next_property_offset(fdt, property))
+
+/**
  * fdt_get_property_by_offset - retrieve the property at a given offset
  * @fdt: pointer to the device tree blob
  * @offset: offset of the property to retrieve
@@ -414,6 +634,9 @@ int fdt_next_property_offset(const void *fdt, int offset);
  * offset.  If lenp is non-NULL, the length of the property value is
  * also returned, in the integer pointed to by lenp.
  *
+ * Note that this code only works on device tree versions >= 16. fdt_getprop()
+ * works on all versions.
+ *
  * returns:
  *	pointer to the structure representing the property
  *		if lenp is non-NULL, *lenp contains the length of the property
@@ -439,13 +662,18 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
  * @namelen: number of characters of name to consider
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
- * Identical to fdt_get_property_namelen(), but only examine the first
- * namelen characters of name for matching the property name.
+ * Identical to fdt_get_property(), but only examine the first namelen
+ * characters of name for matching the property name.
+ *
+ * Return: pointer to the structure representing the property, or NULL
+ *         if not found
  */
+#ifndef SWIG /* Not available in Python */
 const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 						    int nodeoffset,
 						    const char *name,
 						    int namelen, int *lenp);
+#endif
 
 /**
  * fdt_get_property - find a given property in a given node
@@ -467,7 +695,8 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -487,7 +716,7 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
 /**
  * fdt_getprop_by_offset - retrieve the value of a property at a given offset
  * @fdt: pointer to the device tree blob
- * @ffset: offset of the property to read
+ * @offset: offset of the property to read
  * @namep: pointer to a string variable (will be overwritten) or NULL
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
@@ -515,8 +744,10 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
  *		-FDT_ERR_BADSTRUCTURE,
  *		-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_getprop_by_offset(const void *fdt, int offset,
 				  const char **namep, int *lenp);
+#endif
 
 /**
  * fdt_getprop_namelen - get property value based on substring
@@ -528,9 +759,20 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
  *
  * Identical to fdt_getprop(), but only examine the first namelen
  * characters of name for matching the property name.
+ *
+ * Return: pointer to the property's value or NULL on error
  */
+#ifndef SWIG /* Not available in Python */
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp);
+static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
+					  const char *name, int namelen,
+					  int *lenp)
+{
+	return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
+						      namelen, lenp);
+}
+#endif
 
 /**
  * fdt_getprop - retrieve the value of a given property
@@ -540,10 +782,10 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
  * fdt_getprop() retrieves a pointer to the value of the property
- * named 'name' of the node at offset nodeoffset (this will be a
+ * named @name of the node at offset @nodeoffset (this will be a
  * pointer to within the device blob itself, not a copy of the value).
- * If lenp is non-NULL, the length of the property value is also
- * returned, in the integer pointed to by lenp.
+ * If @lenp is non-NULL, the length of the property value is also
+ * returned, in the integer pointed to by @lenp.
  *
  * returns:
  *	pointer to the property's value
@@ -552,7 +794,8 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -587,11 +830,16 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset);
  * @name: name of the alias th look up
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_get_alias(), but only examine the first namelen
- * characters of name for matching the alias name.
+ * Identical to fdt_get_alias(), but only examine the first @namelen
+ * characters of @name for matching the alias name.
+ *
+ * Return: a pointer to the expansion of the alias named @name, if it exists,
+ *	   NULL otherwise
  */
+#ifndef SWIG /* Not available in Python */
 const char *fdt_get_alias_namelen(const void *fdt,
 				  const char *name, int namelen);
+#endif
 
 /**
  * fdt_get_alias - retrieve the path referenced by a given alias
@@ -599,7 +847,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
  * @name: name of the alias th look up
  *
  * fdt_get_alias() retrieves the value of a given alias.  That is, the
- * value of the property named 'name' in the node /aliases.
+ * value of the property named @name in the node /aliases.
  *
  * returns:
  *	a pointer to the expansion of the alias named 'name', if it exists
@@ -624,7 +872,7 @@ const char *fdt_get_alias(const void *fdt, const char *name);
  *	0, on success
  *		buf contains the absolute path of the node at
  *		nodeoffset, as a NUL-terminated string.
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1)
  *		characters and will not fit in the given buffer.
  *	-FDT_ERR_BADMAGIC,
@@ -654,11 +902,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen);
  * structure from the start to nodeoffset.
  *
  * returns:
-
  *	structure block offset of the node at node offset's ancestor
  *		of depth supernodedepth (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-*	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeoffset
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
+ *		nodeoffset
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -680,7 +928,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
  *
  * returns:
  *	depth of the node at nodeoffset (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -703,7 +951,7 @@ int fdt_node_depth(const void *fdt, int nodeoffset);
  * returns:
  *	structure block offset of the parent of the node at nodeoffset
  *		(>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -743,7 +991,7 @@ int fdt_parent_offset(const void *fdt, int nodeoffset);
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -775,14 +1023,13 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
 
 /**
- * fdt_node_check_compatible: check a node's compatible property
+ * fdt_node_check_compatible - check a node's compatible property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of a tree node
  * @compatible: string to match against
  *
- *
  * fdt_node_check_compatible() returns 0 if the given node contains a
- * 'compatible' property with the given string as one of its elements,
+ * @compatible property with the given string as one of its elements,
  * it returns non-zero otherwise, or on error.
  *
  * returns:
@@ -790,7 +1037,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
  *	1, if the node has a 'compatible' property, but it does not list
  *		the given string
  *	-FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
- * 	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -827,7 +1074,7 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -846,15 +1093,160 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
  * one or more strings, each terminated by \0, as is found in a device tree
  * "compatible" property.
  *
- * @return: 1 if the string is found in the list, 0 not found, or invalid list
+ * Return: 1 if the string is found in the list, 0 not found, or invalid list
  */
 int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
 
+/**
+ * fdt_stringlist_count - count the number of strings in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ *
+ * Return:
+ *   the number of strings in the given property
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist
+ */
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
+
+/**
+ * fdt_stringlist_search - find a string in a string list and return its index
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @string: string to look up in the string list
+ *
+ * Note that it is possible for this function to succeed on property values
+ * that are not NUL-terminated. That's because the function will stop after
+ * finding the first occurrence of @string. This can for example happen with
+ * small-valued cell properties, such as #address-cells, when searching for
+ * the empty string.
+ *
+ * return:
+ *   the index of the string in the list of strings
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist or does not contain
+ *                     the given string
+ */
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string);
+
+/**
+ * fdt_stringlist_get() - obtain the string at a given index in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @index: index of the string to return
+ * @lenp: return location for the string length or an error code on failure
+ *
+ * Note that this will successfully extract strings from properties with
+ * non-NUL-terminated values. For example on small-valued cell properties
+ * this function will return the empty string.
+ *
+ * If non-NULL, the length of the string (on success) or a negative error-code
+ * (on failure) will be stored in the integer pointer to by lenp.
+ *
+ * Return:
+ *   A pointer to the string at the given index in the string list or NULL on
+ *   failure. On success the length of the string will be stored in the memory
+ *   location pointed to by the lenp parameter, if non-NULL. On failure one of
+ *   the following negative error codes will be returned in the lenp parameter
+ *   (if non-NULL):
+ *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *     -FDT_ERR_NOTFOUND if the property does not exist
+ */
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int index,
+			       int *lenp);
+
+/**********************************************************************/
+/* Read-only functions (addressing related)                           */
+/**********************************************************************/
+
+/**
+ * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
+ *
+ * This is the maximum value for #address-cells, #size-cells and
+ * similar properties that will be processed by libfdt.  IEE1275
+ * requires that OF implementations handle values up to 4.
+ * Implementations may support larger values, but in practice higher
+ * values aren't used.
+ */
+#define FDT_MAX_NCELLS		4
+
+/**
+ * fdt_address_cells - retrieve address size for a bus represented in the tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address size for
+ *
+ * When the node has a valid #address-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      2, if the node has no #address-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_address_cells(const void *fdt, int nodeoffset);
+
+/**
+ * fdt_size_cells - retrieve address range size for a bus represented in the
+ *                  tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address range size for
+ *
+ * When the node has a valid #size-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      1, if the node has no #size-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#size-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_size_cells(const void *fdt, int nodeoffset);
+
+
 /**********************************************************************/
 /* Write-in-place functions                                           */
 /**********************************************************************/
 
 /**
+ * fdt_setprop_inplace_namelen_partial - change a property's value,
+ *                                       but not its size
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @namelen: number of characters of name to consider
+ * @idx: index of the property to change in the array
+ * @val: pointer to data to replace the property value with
+ * @len: length of the property value
+ *
+ * Identical to fdt_setprop_inplace(), but modifies the given property
+ * starting from the given index, and using only the first characters
+ * of the name. It is useful when you want to manipulate only one value of
+ * an array and you have a string that doesn't end with \0.
+ *
+ * Return: 0 on success, negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len);
+#endif
+
+/**
  * fdt_setprop_inplace - change a property's value, but not its size
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -882,8 +1274,10 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
  *	-FDT_ERR_BADSTRUCTURE,
  *	-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len);
+#endif
 
 /**
  * fdt_setprop_inplace_u32 - change the value of a 32-bit integer property
@@ -957,8 +1351,13 @@ static inline int fdt_setprop_inplace_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_setprop_inplace_cell - change the value of a single-cell property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node containing the property
+ * @name: name of the property to change the value of
+ * @val: new value of the 32-bit cell
  *
  * This is an alternative name for fdt_setprop_inplace_u32()
+ * Return: 0 on success, negative libfdt error number otherwise.
  */
 static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
 					   const char *name, uint32_t val)
@@ -1020,7 +1419,46 @@ int fdt_nop_node(void *fdt, int nodeoffset);
 /* Sequential write functions                                         */
 /**********************************************************************/
 
+/* fdt_create_with_flags flags */
+#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
+	/* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
+	 * names in the fdt. This can result in faster creation times, but
+	 * a larger fdt. */
+
+#define FDT_CREATE_FLAGS_ALL	(FDT_CREATE_FLAG_NO_NAME_DEDUP)
+
+/**
+ * fdt_create_with_flags - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
+ *
+ * fdt_create_with_flags() begins the process of creating a new fdt with
+ * the sequential write interface.
+ *
+ * fdt creation process must end with fdt_finished() to produce a valid fdt.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ *	-FDT_ERR_BADFLAGS, flags is not valid
+ */
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
+
+/**
+ * fdt_create - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ *
+ * fdt_create() is equivalent to fdt_create_with_flags() with flags=0.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ */
 int fdt_create(void *buf, int bufsize);
+
+int fdt_resize(void *fdt, void *buf, int bufsize);
 int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
 int fdt_finish_reservemap(void *fdt);
 int fdt_begin_node(void *fdt, const char *name);
@@ -1035,10 +1473,29 @@ static inline int fdt_property_u64(void *fdt, const char *name, uint64_t val)
 	fdt64_t tmp = cpu_to_fdt64(val);
 	return fdt_property(fdt, name, &tmp, sizeof(tmp));
 }
+
+#ifndef SWIG /* Not available in Python */
 static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val)
 {
 	return fdt_property_u32(fdt, name, val);
 }
+#endif
+
+/**
+ * fdt_property_placeholder - add a new property and return a ptr to its value
+ *
+ * @fdt: pointer to the device tree blob
+ * @name: name of property to add
+ * @len: length of property value in bytes
+ * @valp: returns a pointer to where where the value should be placed
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_NOSPACE, standard meanings
+ */
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp);
+
 #define fdt_property_string(fdt, name, str) \
 	fdt_property(fdt, name, str, strlen(str)+1)
 int fdt_end_node(void *fdt);
@@ -1055,7 +1512,8 @@ int fdt_pack(void *fdt);
 /**
  * fdt_add_mem_rsv - add one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: 64-bit values (native endian)
+ * @address: 64-bit start address of the reserve map entry
+ * @size: 64-bit size of the reserved region
  *
  * Adds a reserve map entry to the given blob reserving a region at
  * address address of length size.
@@ -1158,6 +1616,37 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
 		const void *val, int len);
 
 /**
+ * fdt_setprop_placeholder - allocate space for a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @len: length of the property value
+ * @prop_data: return pointer to property data
+ *
+ * fdt_setprop_placeholer() allocates the named property in the given node.
+ * If the property exists it is resized. In either case a pointer to the
+ * property data is returned.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data);
+
+/**
  * fdt_setprop_u32 - set a property to a 32-bit integer
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -1229,8 +1718,14 @@ static inline int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name,
 
 /**
  * fdt_setprop_cell - set a property to a single cell value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value for the property (native endian)
  *
  * This is an alternative name for fdt_setprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 				   uint32_t val)
@@ -1269,6 +1764,36 @@ static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 #define fdt_setprop_string(fdt, nodeoffset, name, str) \
 	fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
+
+/**
+ * fdt_setprop_empty - set a property to an empty value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ *
+ * fdt_setprop_empty() sets the value of the named property in the
+ * given node to an empty (zero length) value, or creates a new empty
+ * property if it does not already exist.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+#define fdt_setprop_empty(fdt, nodeoffset, name) \
+	fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
+
 /**
  * fdt_appendprop - append to or create a property
  * @fdt: pointer to the device tree blob
@@ -1371,8 +1896,14 @@ static inline int fdt_appendprop_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_appendprop_cell - append a single cell value to a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value to append to the property (native endian)
  *
  * This is an alternative name for fdt_appendprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 				      const char *name, uint32_t val)
@@ -1411,6 +1942,43 @@ static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 	fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
 /**
+ * fdt_appendprop_addrrange - append a address range property
+ * @fdt: pointer to the device tree blob
+ * @parent: offset of the parent node
+ * @nodeoffset: offset of the node to add a property at
+ * @name: name of property
+ * @addr: start address of a given range
+ * @size: size of a given range
+ *
+ * fdt_appendprop_addrrange() appends an address range value (start
+ * address and size) to the value of the named property in the given
+ * node, or creates a new property with that value if it does not
+ * already exist.
+ * If "name" is not specified, a default "reg" is used.
+ * Cell sizes are determined by parent's #address-cells and #size-cells.
+ *
+ * This function may insert data into the blob, and will therefore
+ * change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain a new property
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size);
+
+/**
  * fdt_delprop - delete a property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to nop
@@ -1438,16 +2006,21 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name);
  * fdt_add_subnode_namelen - creates a new node based on substring
  * @fdt: pointer to the device tree blob
  * @parentoffset: structure block offset of a node
- * @name: name of the subnode to locate
+ * @name: name of the subnode to create
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_add_subnode(), but use only the first namelen
- * characters of name as the name of the new node.  This is useful for
+ * Identical to fdt_add_subnode(), but use only the first @namelen
+ * characters of @name as the name of the new node.  This is useful for
  * creating subnodes based on a portion of a larger string, such as a
  * full path.
+ *
+ * Return: structure block offset of the created subnode (>=0),
+ *	   negative libfdt error value otherwise
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 			    const char *name, int namelen);
+#endif
 
 /**
  * fdt_add_subnode - creates a new node
@@ -1461,11 +2034,13 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
  *
  * This function will insert data into the blob, and will therefore
  * change the offsets of some existing nodes.
-
+ *
  * returns:
- *	structure block offset of the created nodeequested subnode (>=0), on success
+ *	structure block offset of the created nodeequested subnode (>=0), on
+ *		success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
  *	-FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
  *		the given name
  *	-FDT_ERR_NOSPACE, if there is insufficient free space in the
@@ -1503,10 +2078,45 @@ int fdt_add_subnode(void *fdt, int parentoffset, const char *name);
  */
 int fdt_del_node(void *fdt, int nodeoffset);
 
+/**
+ * fdt_overlay_apply - Applies a DT overlay on a base DT
+ * @fdt: pointer to the base device tree blob
+ * @fdto: pointer to the device tree overlay blob
+ *
+ * fdt_overlay_apply() will apply the given device tree overlay on the
+ * given base device tree.
+ *
+ * Expect the base device tree to be modified, even if the function
+ * returns an error.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there's not enough space in the base device tree
+ *	-FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
+ *		properties in the base DT
+ *	-FDT_ERR_BADPHANDLE,
+ *	-FDT_ERR_BADOVERLAY,
+ *	-FDT_ERR_NOPHANDLES,
+ *	-FDT_ERR_INTERNAL,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET,
+ *	-FDT_ERR_BADPATH,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_overlay_apply(void *fdt, void *fdto);
+
 /**********************************************************************/
 /* Debugging / informational functions                                */
 /**********************************************************************/
 
 const char *fdt_strerror(int errval);
 
-#endif /* _LIBFDT_H */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBFDT_H */
diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
index 035bf75..03380d5 100644
--- a/xen/include/xen/libfdt/libfdt_env.h
+++ b/xen/include/xen/libfdt/libfdt_env.h
@@ -1,22 +1,98 @@
-#ifndef _LIBFDT_ENV_H
-#define _LIBFDT_ENV_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_ENV_H
+#define LIBFDT_ENV_H
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ * Copyright 2012 Kim Phillips, Freescale Semiconductor.
+ */
 
+#include <xen/config.h>
 #include <xen/types.h>
 #include <xen/string.h>
 #include <asm/byteorder.h>
+#include <xen/stdbool.h>
 
-typedef uint16_t fdt16_t;
-typedef uint32_t fdt32_t;
-typedef uint64_t fdt64_t;
+#ifdef __CHECKER__
+#define FDT_FORCE __attribute__((force))
+#define FDT_BITWISE __attribute__((bitwise))
+#else
+#define FDT_FORCE
+#define FDT_BITWISE
+#endif
 
-#define fdt16_to_cpu(x) be16_to_cpu(x)
-#define cpu_to_fdt16(x) cpu_to_be16(x)
-#define fdt32_to_cpu(x) be32_to_cpu(x)
-#define cpu_to_fdt32(x) cpu_to_be32(x)
-#define fdt64_to_cpu(x) be64_to_cpu(x)
-#define cpu_to_fdt64(x) cpu_to_be64(x)
+typedef uint16_t FDT_BITWISE fdt16_t;
+typedef uint32_t FDT_BITWISE fdt32_t;
+typedef uint64_t FDT_BITWISE fdt64_t;
+
+#define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
+#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
+#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | \
+			 (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
+#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | \
+			 (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
+			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
+			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
 
 /* Xen-specific libfdt error code. */
 #define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
 
-#endif /* _LIBFDT_ENV_H */
+static inline uint16_t fdt16_to_cpu(fdt16_t x)
+{
+	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
+}
+static inline fdt16_t cpu_to_fdt16(uint16_t x)
+{
+	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
+}
+
+static inline uint32_t fdt32_to_cpu(fdt32_t x)
+{
+	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
+}
+static inline fdt32_t cpu_to_fdt32(uint32_t x)
+{
+	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
+}
+
+static inline uint64_t fdt64_to_cpu(fdt64_t x)
+{
+	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
+}
+static inline fdt64_t cpu_to_fdt64(uint64_t x)
+{
+	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
+}
+#undef CPU_TO_FDT64
+#undef CPU_TO_FDT32
+#undef CPU_TO_FDT16
+#undef EXTRACT_BYTE
+
+#ifdef __APPLE__
+#include <AvailabilityMacros.h>
+
+/* strnlen() is not available on Mac OS < 10.7 */
+# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < \
+                                         MAC_OS_X_VERSION_10_7)
+
+#define strnlen fdt_strnlen
+
+/*
+ * fdt_strnlen: returns the length of a string or max_count - which ever is
+ * smallest.
+ * Input 1 string: the string whose size is to be determined
+ * Input 2 max_count: the maximum value returned by this function
+ * Output: length of the string or max_count (the smallest of the two)
+ */
+static inline size_t fdt_strnlen(const char *string, size_t max_count)
+{
+    const char *p = memchr(string, 0, max_count);
+    return p ? p - string : max_count;
+}
+
+#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED <
+          MAC_OS_X_VERSION_10_7) */
+
+#endif /* __APPLE__ */
+
+#endif /* LIBFDT_ENV_H */
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 06:02:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 06:02:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221242.382854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miVok-0003oZ-Tm; Thu, 04 Nov 2021 06:01:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221242.382854; Thu, 04 Nov 2021 06:01:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miVok-0003oS-Qj; Thu, 04 Nov 2021 06:01:42 +0000
Received: by outflank-mailman (input) for mailman id 221242;
 Thu, 04 Nov 2021 06:01:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miVoi-0003oI-QO; Thu, 04 Nov 2021 06:01:40 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miVoi-0004uJ-JY; Thu, 04 Nov 2021 06:01:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miVoi-0005ew-Ay; Thu, 04 Nov 2021 06:01:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miVoi-0003KP-AW; Thu, 04 Nov 2021 06:01:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fXl1pGaJ0R7XTUtLdJ1HzVHb+bif3K4xWAz5sESBelA=; b=cgg3JHpOPZbvYe95wafQ0E3Os7
	C3Y7/n+4Jr+YXM2Yw4pZPOBtmkh4TSPvGf0K9oy/9RnLjAoQWMd54ZLVPkDMoBe/2xI9YGPmOtHxE
	inO8A3XBKhR1SPcGwmqMIhCCYJySLls1RLmn1nnJOKeUEGOoxCxEZEKQinVKkFbpButI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166035-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166035: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=6f9e83f757ed7c5c78d071f475b2e72d899c2aef
X-Osstest-Versions-That:
    ovmf=939c2355daaf94cd7eb2018d15928b9bc471d680
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Nov 2021 06:01:40 +0000

flight 166035 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166035/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 6f9e83f757ed7c5c78d071f475b2e72d899c2aef
baseline version:
 ovmf                 939c2355daaf94cd7eb2018d15928b9bc471d680

Last test of basis   165969  2021-11-01 04:41:22 Z    3 days
Testing same since   166035  2021-11-03 21:40:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Vineel Kovvuri <vineel.kovvuri@gmail.com>
  Vineel Kovvuri <vineelko@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   939c2355da..6f9e83f757  6f9e83f757ed7c5c78d071f475b2e72d899c2aef -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 06:02:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 06:02:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221244.382869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miVp0-00049D-7J; Thu, 04 Nov 2021 06:01:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221244.382869; Thu, 04 Nov 2021 06:01:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miVp0-000496-3h; Thu, 04 Nov 2021 06:01:58 +0000
Received: by outflank-mailman (input) for mailman id 221244;
 Thu, 04 Nov 2021 06:01:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cFoW=PX=epam.com=prvs=194277eb9a=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1miVoy-000481-OC
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 06:01:57 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b51b5048-3d34-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 07:01:54 +0100 (CET)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A45unCd009663;
 Thu, 4 Nov 2021 06:01:51 GMT
Received: from eur01-db5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2053.outbound.protection.outlook.com [104.47.2.53])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c49dc02rr-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 04 Nov 2021 06:01:51 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR0302MB3281.eurprd03.prod.outlook.com (2603:10a6:208:a::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Thu, 4 Nov
 2021 05:56:14 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.011; Thu, 4 Nov 2021
 05:56:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b51b5048-3d34-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fpGlxOynnZLAKn9i1SzdjC/oiuWs4UubwXyp+eBZOZj4nczPmZVZ/yFxy6nulRb/605nxUJW0wFWoW9HOmA6fygUyAju/AHMHRD7YqG0W6wXepnuizuMMWMzasX5nhno4aK9qAnaCM54a81x95706RGpgZQjURVrXFCT1SisfCZsQj8iyO6nyz4IgaP4unZcm+Ncv/DTaIENu4rAmJR8vKCEGFfpHNJChf0pUCGpsp875CIj1AowdNzU+nUluClpHRvIv07fINKtF35mvikzuxbYzj+kA79VEombGBsOeiOn0gJLx5uiw7FGzhN+BC9diGu6SkGNJ6/Pp3PkWn6Osg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6xD4aOzzrmyrPeI7wtP+M1VF7la7CPCoP50Qw3RVEu4=;
 b=CYOE1fnyuII+P4E4Si3KMeiBQv76wDNez/BLyWinw3wVj6DiWPLsRy21bZqxMcv+MHeRvBODdBmHTjLFBXN40wLFIFwfnsdOvJeAFHRrs9fVDdjHIIGSQuYeWqUr/ZGMrV7nmGQ6Ezs5vA8GEdFe4/6ZAw2H6HCUNgwiUMWXZQoz6Cr5co0WJ4HFym6SOwFhB3P7+6b8y2ZVOKEbPeGa3c4GtrgEy99ng87jc3v9QuSZac8T0BaELBtFNb4yeTosfIuiCGcLU85SFamtoVb3u6S/XdqEn8U8O+6npLl7G6DuaJRBirqeuV4qFbYGiNC1yKnKVH/n8NTBI/j8DtOeQQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6xD4aOzzrmyrPeI7wtP+M1VF7la7CPCoP50Qw3RVEu4=;
 b=WbEQFKkIjUni5mTPoS+yLQC84+W6UJWA1UF8RiDT7shJxSEkYLQ/y0kctCy8wbHroxQmXlAfpGzJkwH9drHPbAEfidgIaXVLm8akdoRIXM3ET8wogL4xRoxgXtO9GIldMWaWouoI73J4BC0ilaHiZcR5XdR1Qgb+h6n3Jh4AfcSHA2KDndDX/4laEjcq1kpcshSoj9WgJJxwEvIJhzYpukrVyH4VjD8aULqwmYnInE8t3TlToVwjw7xCL1ZR5kM5NpuYc24Ok8pW8FeC5k62m3KpcoNBWad8T9VDI4H0OBwzwe4Bli/siFTOoVO4338f1PWqaCiBDc4L79SgbGhM5w==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        "iwj@xenproject.org" <iwj@xenproject.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>
Subject: Re: [PATCH-4.16 v2] xen/arm: fix SBDF calculation for vPCI MMIO
 handlers
Thread-Topic: [PATCH-4.16 v2] xen/arm: fix SBDF calculation for vPCI MMIO
 handlers
Thread-Index: AQHXz9uvpkVSL/P+h0KvYyBzgfugSKvw16AAgADfnQCAAGctgIAAwzYA
Date: Thu, 4 Nov 2021 05:56:14 +0000
Message-ID: <6512850c-08b8-ddb2-3e7c-28ec463f51d6@epam.com>
References: <20211102112041.551369-1-andr2000@gmail.com>
 <alpine.DEB.2.21.2111021545130.18170@sstabellini-ThinkPad-T480s>
 <4559d7c6-7a03-54c0-ca93-9319cc7989d5@epam.com>
 <568d087e-d740-47e2-173e-34915f645a76@xen.org>
In-Reply-To: <568d087e-d740-47e2-173e-34915f645a76@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 13359ada-0029-47d0-ff1f-08d99f57cfd2
x-ms-traffictypediagnostic: AM0PR0302MB3281:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR0302MB3281A5299FF24F4149126720E78D9@AM0PR0302MB3281.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 cky8aYFx4CNtn4sKX75R7iuGzVJ1uoeyFmBJl9h68njBUMLD5A5d+bp78pY0yLMmQlchYoGVWfqjpDCpskuBX/PuwG/dnIbec7971JLPJtarG8Ub2S6eqFLEdSab9q0F9Fqc2Ng258Af9v7Tri+ktcah2pbpZi6FvRHbcy7E+RZvRkExDP9fFDEgTMPGiVyVhdN/ezif6VzNk2Zk9hHYCsQCk4NsLZeWSoTnucS0pr5asEOnnUnTFmRhq1r4DeuPVFt0Kb/9emFq/w+R1vB3d9W9zxjuH9rNAwI7PIqiZTSrD2ZU9fQqVffuj9QAmw8w9kwmz8dPCkfI9VvgqgsNtX6Pm344NJQpZ8opPiGmU0m0CgsvlXvH6rOUd8LMvDPHQE8MQM/tz6ISacGkoCzgyTlBa4w1w3l4PUdeh5j9G37TVS3q9voUl7GrBgQHlaLLEdgWvrg8YNpn7PCjklU1X7AWHS48u5wWWmhNtMVzaE4OyrGYhj7dRvDGXp4NdKRZvLk46crRJvk3rDTSEmnQWaKxudfrwZvtUQ/UHTTMZbZNQ7l7oVFLlTIhPdcXkRFVxPGP8h6fixs7ChzVoG5AzFqM+YR/dhysoMqMGH3b0SdSkcjIPrFrYBIaoUR1vx/4VYXVpKgiec5reA820lPoNViEBiRLZSsZ97KbCGvhkIyhiuHj5iYfKCLOWy2QuukMGR3sYHtHTIAZg0jSiE+rHZV8m5Z0/SxTQiIG8fBsSPIXtjpRCosLglxb8AAUo7r4
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66446008)(122000001)(66556008)(64756008)(31696002)(186003)(8676002)(53546011)(38100700002)(5660300002)(6506007)(36756003)(66476007)(71200400001)(26005)(6512007)(110136005)(91956017)(4326008)(54906003)(8936002)(508600001)(86362001)(2906002)(76116006)(38070700005)(2616005)(316002)(6486002)(31686004)(66946007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?bVVpMjl3bFU1aTBmTGVKM3czVStwaDI1dW9oeWVTQStHc3RWbVBSTlhNUk9Y?=
 =?utf-8?B?WXZVVHh3QTdTVjk2SWpZZ0J5eUx2c0krWEpzNXV0NEZXMGVEaGw3b1Ezd0ZP?=
 =?utf-8?B?NjNYRUUzbTZPSDUvdlNzYnFsa1pCWUJzRTVmTXdMcHRjTkpZR1pvOStURGJV?=
 =?utf-8?B?OFBRNWVIY0NuaVVEOUU5SHd5b29jY1lranFxTDd3WW1rWE1jMU51djRLUG9F?=
 =?utf-8?B?T1c4bG40a1lyNmNQOW94VEFKNTBpQVl2TEZ0cEc0TUhHWXpHbWVOVThzcVlE?=
 =?utf-8?B?SXRIOXZvUXU0dm43L1JpZmdaQWdnNXVKWHQ4cUVxcXhySWFzYS9Kc2ZNekhZ?=
 =?utf-8?B?blpFUXg1N1dpTk9jbXdOYVVXVnN4a2xvZk1GWlZkaDRRR1pjQnZncHZDR1Nw?=
 =?utf-8?B?Slo4aGg5eDJVQzBKVXRXc0hnS2JWTkpEeFRoOEhkTnhCMFNWZ1NyREJpd0lI?=
 =?utf-8?B?aUhPd2xpM2ZXY2ZlNllQT040SFJhWXJLV2l0WXFibk1WaTBuZ0ROTHFBRHdj?=
 =?utf-8?B?TlB5Z3praS84aU9hWjhtS1VMSXhhMTJOUnJndkRMUGNyNk90YkNiUTJ3SEdL?=
 =?utf-8?B?VzdhTHVLWlZSVmk4MGVzWmVwYTR4ZmxxcjdGVStzSENQRXhWU1ZkSG5oalFr?=
 =?utf-8?B?Ymw3czdLUmpVMWNxV0VDRmN4cEY3MVVEeSttcy8xVm84OFBjdEhwT0wxa1cr?=
 =?utf-8?B?aXJvbExiMnhIM1ZoMGlwR2JuMm9KZFdGN0JEbnlvQ21GYlB1Qkp6SWFNaWRQ?=
 =?utf-8?B?K3VJcTFoQXpPUzA4K0s1NFI0VTlFa2RRck04SEtYcFBaUStaZThnRFVoUHky?=
 =?utf-8?B?Y2VzaUhkNnV5RjNnWEQrZURsdFgxcFY3SzcyVjhxL2p1WmxzWWJYV2tGMWdn?=
 =?utf-8?B?akk1U0swVGRFOUM2R1B5K1NBUE5SNUEyZG1xaXB2dXluSW1IK3MvSUhPZlVh?=
 =?utf-8?B?T2ZYTk93SEVwVlZSMndHbjJhbW5WS3hpUzVEMVIrMWtBZHJ0cDVWbURTL3A0?=
 =?utf-8?B?OTJJMzNzVTlsM25KWG9BSURHNTVCRUkwaGlBbEw1S2lsNmk4SGtzQThhY25Z?=
 =?utf-8?B?cUpzN09MZFJFQnJ0aHBKenRTejA1R2cyMFlrN0hRUndpUFllNS9ubSthN2Er?=
 =?utf-8?B?OG14VkloM3dnVHdyVmdMeWZLVE5iZGFCYURad0VnQzNoMVhqZUJZZ3htRm5D?=
 =?utf-8?B?Z3JyM0NqekZFNTdDdlA0OExRMEZ0dmNFcE9iTkd5SjgrQnpGT3oySlJ1eHdu?=
 =?utf-8?B?Ni9lZ1hCM0c5NEdkbkVEWjdDVUFNeEQyZGdwQ3RaQjhxOVN4V1JkbVQyYjVh?=
 =?utf-8?B?UkZUbUFsODFhMndaSE5CbHpkeFlWZWxkT2NqNGNzVnZQZE8zYUI2dDgwckF2?=
 =?utf-8?B?MXJqbm93eHhzdzVJbEhMczZES0ZOS1ovbDNYbk8rQWprZnRhUmJQYk9pVGhp?=
 =?utf-8?B?SGp1NHpKL25WdHdNOXpnSElSaXRRTDZBejhoa2xJajl1aHRqbXRnMVlzeE4w?=
 =?utf-8?B?eGJCb0NPZkZ6NEtMVnJHcnJuMDVHeTdNbHhUYmJJNjI1SzJiRlYxVmZhRS9X?=
 =?utf-8?B?U0lSRTkxVG1PVFJHRmliUzAxWW43UlE5WG56UEhEeXNZSDNibmNETkNheUd3?=
 =?utf-8?B?RjRpSkJ3anBFUUxueXp5eHl5VlYzdTlyL2lEbHVOMGVtUlk4clFIZ0JuT3pl?=
 =?utf-8?B?cmpRUnN2R1NnWHo0NDlGeGpiUjdMeXRLeC94Y29wbTgzM29YZzd2MkRFVCsr?=
 =?utf-8?B?WnZkYUlqcmFvWndKdVhuVXRLNFY3MlBzSGpyUU5jaGFPWEw0ZFkwUStMMXJW?=
 =?utf-8?B?QVhLRzZVelBtSWxPaDIzQkZLSEtLcmZXSWUzNlBGMCsxSHlka0NpTnQrd2pH?=
 =?utf-8?B?SXNtT3VXbGdKdzhNZWJ0WkJMNWVKVXBxZjBITmZMLzhnT1J2elVXT0FOZXR1?=
 =?utf-8?B?M2VqYlZnbUFUcy9XdjVkV3kyRGtGTnNaWFNEdEoyRVI3SUE5bVFRenVNejJs?=
 =?utf-8?B?WC83M2d4SVoyQjl1U3dlbnZZNVlodEk3RFRCNmQ3Tnpsc3RZUlhtOWdVWEh4?=
 =?utf-8?B?d21aSGVkRXJMbzVHSUk1a2paS3lzY1VIOHVYVTRhdXZWbFF5REcyVzRyV1FN?=
 =?utf-8?B?eXBFYzQ1MWNpYUR0TjNVeWpPNWNRb3BHV0gzb0lLaW9xbGlYMjllRyszRlll?=
 =?utf-8?B?MHZZTVFvc1drdzlRdU40MkFKakVBOGh2N3Arb1V0VGRKYUtRMnNTU2xlRTJ2?=
 =?utf-8?B?R1ZSOGpoeXErVWxMMm9oSzVnQkdMYVluN3d3UVRhRXpRaFhYMGFOQXYwYVlJ?=
 =?utf-8?B?NXhqc2Z6bjVsaVdkeG9XNmpaN0ZuRWZkTDcxV0tvdUtta0lEWHBOUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1618C9D09025E847A0239479464BE582@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 13359ada-0029-47d0-ff1f-08d99f57cfd2
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2021 05:56:14.6322
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: J5rIYOGUrjGW+r7D+E/a6NRV7AgHB2fxNhdQ5hpCfNU/Zo+vhCRTj5EZV7ei08GjC9aNrKGAtkyR8KA19wNkoY5bOX5s1+R7hsaOVBtvlNfvpdqZTLtHzYp5PnZGG88M
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0302MB3281
X-Proofpoint-GUID: Kzug3eiQjcZXm3afix6BgWna44Jffc8g
X-Proofpoint-ORIG-GUID: Kzug3eiQjcZXm3afix6BgWna44Jffc8g
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-04_01,2021-11-03_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 priorityscore=1501 bulkscore=0 clxscore=1015 mlxlogscore=999 mlxscore=0
 impostorscore=0 phishscore=0 spamscore=0 suspectscore=0 adultscore=0
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111040033

SGksIEp1bGllbiENCg0KT24gMDMuMTEuMjEgMjA6MTcsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRyLA0KPg0KPiBPbiAwMy8xMS8yMDIxIDEyOjA4LCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+DQo+Pg0KPj4gT24gMDMuMTEuMjEgMDA6NDcsIFN0ZWZhbm8gU3Rh
YmVsbGluaSB3cm90ZToNCj4+PiBPbiBUdWUsIDIgTm92IDIwMjEsIE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIHdyb3RlOg0KPj4+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3Nh
bmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pj4+DQo+Pj4+IFdoaWxlIGluIHZQQ0kgTU1J
TyB0cmFwIGhhbmRsZXJzIGZvciB0aGUgZ3Vlc3QgUENJIGhvc3QgYnJpZGdlIGl0IGlzIG5vdA0K
Pj4+PiBlbm91Z2ggZm9yIFNCREYgdHJhbnNsYXRpb24gdG8gc2ltcGx5IGNhbGwgVlBDSV9FQ0FN
X0JERihpbmZvLT5ncGEpIGFzDQo+Pj4+IHRoZSBiYXNlIGFkZHJlc3MgbWF5IG5vdCBiZSBhbGln
bmVkIGluIHRoZSB3YXkgdGhhdCB0aGUgdHJhbnNsYXRpb24NCj4+Pj4gYWx3YXlzIHdvcmsuIElm
IG5vdCBhZGp1c3RlZCB3aXRoIHJlc3BlY3QgdG8gdGhlIGJhc2UgYWRkcmVzcyBpdCBtYXkgbm90
IGJlDQo+Pj4+IGFibGUgdG8gcHJvcGVybHkgY29udmVydCBTQkRGLg0KPj4+PiBGaXggdGhpcyBi
eSBhZGp1c3RpbmcgdGhlIGdwYSB3aXRoIHJlc3BlY3QgdG8gdGhlIGhvc3QgYnJpZGdlIGJhc2Ug
YWRkcmVzcw0KPj4+PiBpbiBhIHdheSBhcyBpdCBpcyBkb25lIGZvciB4ODYuDQo+Pj4+DQo+Pj4+
IFBsZWFzZSBub3RlLCB0aGF0IHRoaXMgY2hhbmdlIGlzIG5vdCBzdHJpY3RseSByZXF1aXJlZCBn
aXZlbiB0aGUgY3VycmVudA0KPj4+PiB2YWx1ZSBvZiBHVUVTVF9WUENJX0VDQU1fQkFTRSB3aGlj
aCBoYXMgYml0cyAwIHRvIDI3IGNsZWFyLCBidXQgY291bGQgY2F1c2UNCj4+Pj4gaXNzdWVzIGlm
IHN1Y2ggdmFsdWUgaXMgY2hhbmdlZCwgb3Igd2hlbiBoYW5kbGVycyBmb3IgZG9tMCBFQ0FNDQo+
Pj4+IHJlZ2lvbnMgYXJlIGFkZGVkIGFzIHRob3NlIHdpbGwgYmUgbWFwcGVkIG92ZXIgZXhpc3Rp
bmcgaGFyZHdhcmUNCj4+Pj4gcmVnaW9ucyB0aGF0IGNvdWxkIHVzZSBub24tYWxpZ25lZCBiYXNl
IGFkZHJlc3Nlcy4NCj4+Pj4NCj4+Pj4gRml4ZXM6IGQ1OTE2OGRjMDVhNSAoInhlbi9hcm06IEVu
YWJsZSB0aGUgZXhpc3RpbmcgeDg2IHZpcnR1YWwgUENJIHN1cHBvcnQgZm9yIEFSTSIpDQo+Pj4+
DQo+Pj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJf
YW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+PiBBY2tlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5p
IDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPg0KPj4+DQo+Pj4gQWxzbywgSWFuIGFscmVhZHkgZ2F2
ZSBoaXMgcmVsZWFzZS1hY2suDQo+PiBUaGFuayB5b3UsDQo+PiBEbyBJIG5lZWQgdG8gcmVzZW5k
IHRoZSBwYXRjaCB3aXRoIEFja3M/IE9yIGhvcGVmdWxseSB0aG9zZSBjYW4gYmUgYXBwbGllZA0K
Pj4gb24gY29tbWl0Pw0KPg0KPiBJIGhhdmUgY29tbWl0dGVkIHdpdGggdGhlIHR3byB0YWdzIGFw
cGxpZWQuDQpUaGFuayB5b3UNCj4NCj4gTmV4dCB0aW1lLCBwbGVhc2UgcmVtZW1iZXIgdG8gY2Fy
cnkgUmVsZWFzZS1hY2tlZC1ieSB0YWcuDQpUaGUgUmVsZWFzZS1hY2tlZC1ieSB0YWcgd2FzIHNl
bnQgYnkgSWFuICphZnRlciogSSd2ZSBzZW50IHYyIG9mIHRoZSBwYXRjaA0KKHRoaXMgb25lKSBh
bmQgaXQgd2FzIGluIHYxIG1haWwgdGhyZWFkLi4uLg0KPg0KPiBDaGVlcnMsDQo+DQo=


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 06:20:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 06:20:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221259.382880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miW6m-0006gt-LC; Thu, 04 Nov 2021 06:20:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221259.382880; Thu, 04 Nov 2021 06:20:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miW6m-0006gm-Hn; Thu, 04 Nov 2021 06:20:20 +0000
Received: by outflank-mailman (input) for mailman id 221259;
 Thu, 04 Nov 2021 06:20:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTzK=PX=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1miW6l-0006gg-W1
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 06:20:19 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20619.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4786cfb8-3d37-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 07:20:18 +0100 (CET)
Received: from SA0PR11CA0116.namprd11.prod.outlook.com (2603:10b6:806:d1::31)
 by SN6PR02MB3968.namprd02.prod.outlook.com (2603:10b6:805:2b::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13; Thu, 4 Nov
 2021 06:20:14 +0000
Received: from SN1NAM02FT0041.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:d1:cafe::d1) by SA0PR11CA0116.outlook.office365.com
 (2603:10b6:806:d1::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Thu, 4 Nov 2021 06:20:14 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0041.mail.protection.outlook.com (10.97.5.44) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Thu, 4 Nov 2021 06:20:14 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Wed, 3 Nov 2021 23:20:03 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Wed, 3 Nov 2021 23:20:03 -0700
Received: from [172.19.2.115] (port=60724 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1miW6U-0006GW-58; Wed, 03 Nov 2021 23:20:03 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4786cfb8-3d37-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NpT27fEcj0ZcpE67lz3x4pS+CuLZA81mqd2UG49Thpg42ApHhp3E4Vh3iSX/pcL9C7SJtL8kGfF0KAzhzEkwsgtOQeMAP8RbKIhhbB/cWtSKzdkRcnQOrUhn0oQr1jhjoDBsbeGn1BFP0K4LC43dddq93Vo1+wuOvpgMnRL/NrU9NB6vepjVM3SehhAx8R0oQhqgIUrUw+Sunfbg5kpnZ9nfuald4xRa9gQQ+o9BW4in3obyNHqv18UiX0Z/oKWs3rObnRr1SW5EghnFr90iP3sx1Fb9Ox05+7gvF7PGDsglQbn/RRM9eOvvOZ0uSRCLozgdDAeT7X00owXjWZMMkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2U4jXB6apTf85EYjY++ZUwGS6bfjwI92tFO5pG6fENU=;
 b=ZoAHmx+h7rs96g4bfcZAdjc0XJlQkZUJEGcaLAz9g7hWyKmclXTy4WeabIOrRUEJ/KPjrlNF9Yj3LK74l+Ywm3kPn/dHcFDiCwcIJvI2UJl5p9ln1sntM9CYwyzcPam+iAtfQ157KtAiqh66Kr0yK3qlcmcZGaAC93CJcYybcS084fW+HTlE1BSN5HVAjglc5RFzfJw1sAKx4W2lQlNq1y3hc9MjZRpuopjLzUTAuFbCMKTZPQFD3ipnlmsvD+u8/heE/1kyeYPOH3zpk58FahARMO9kWhdTQ+omc7gHqI33kqakF+0dy8lJGz0Mi6YUbaAPccDOx/gtp/B2uStgyw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2U4jXB6apTf85EYjY++ZUwGS6bfjwI92tFO5pG6fENU=;
 b=PQzlyD2JOIGN3ZkHbtN2znmv0G7MOAJfgMJiHmqQgnhc9hUaCUA3fDZHDU92EjnHciY7L9m8eePhFsEfJZinVSkBW0M7oup2Ozf3vbaTYtTC8ceMo6RPGWebfNASPTvk+8zhRMdCYiMTSw2PFSoD8PJkrMLIEixXp8lEMe5fomA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, Vikram Garhwal
	<fnu.vikram@xilinx.com>
Subject: [XEN][PATCH v2 0/1] Update libfdt to v1.6.1
Date: Wed, 3 Nov 2021 23:19:55 -0700
Message-ID: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d198d29e-5542-4435-d0f7-08d99f5b29e2
X-MS-TrafficTypeDiagnostic: SN6PR02MB3968:
X-Microsoft-Antispam-PRVS:
	<SN6PR02MB3968AC5397808A388BE6DDACBC8D9@SN6PR02MB3968.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	2QLxpvFOx8+OK9XLxD14KxQApW5I6QTOpahYKUmIky3GzSUhXMJvg0Yd41RzfhKio8dBjfgldfaKlS/fahJngJ/z7xRY7gSCxMUrpjl25ddsZGMqRk39Meyqvz9W3iaskCNZIbbCmZvZSI5N/efPqun5rx2wjpa8BhLftxIC/+EkqVDeGdeB4Mgq3l6QhMdJStBa/QhkjFcjp28UW7GLJRLbpvwvz4C3l6mZ46HtxejewSR9nQ2+H+vzfk9lKOYWQwz67aWrrMkDrSSH9mFQllbqx7ED2ZNYoRneugCO/78HGNYdzQHTVyWMNRXL7X4i4+j0Gy/ak+VGbth9Rz1kKaiv4FkuuN/fJZWkBu3oPjeCDQYDcrUqqbTMPBTroHs3K0mXXBpQo4n/aasj3YW0xvFCWMqnCih8M9PGdmgLeiCnxcMWU5VJ2t3Xfy0TTgKz+8i8yfWdqsFhXkvqVIWbqHHRObJrP/6hAx9UqWWwZLNowkK6bFamjWRJscXAQBrsfr4wS0lYm/4IViJoN9I8fY4M3v2xe80gtKWRShp70wyhUs0z0rNcHTmMd1Vk9RTI7nCrYMCa62rEPlKD68lrfTL2mUYDWbESGaIxLy4pzWqAwyftsjtQiWrLdxBqzxEPhRlHc2MdfJhJHcUEXS59msfrW0XVRmAJtKBcTT7dH+m5Yeb4B+xFPwGOtaiGCDVgcnce96N6CSk+rAU6Uy+Q+qYZqemvEmL6NFkl6wSpsX9hu8mEc/ObRiM6Nhe9e5xuadOeRcpQnJPrUQ7ErWAb/GFgLvcrB96Z+FxJTbIc/6u1K/lubl7xp7F496vnEC1W
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(36860700001)(70586007)(36756003)(336012)(186003)(5660300002)(26005)(82310400003)(7696005)(107886003)(2906002)(15650500001)(4326008)(70206006)(2616005)(8936002)(316002)(7636003)(54906003)(36906005)(6916009)(8676002)(356005)(426003)(508600001)(6666004)(83380400001)(9786002)(47076005)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 06:20:14.2377
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d198d29e-5542-4435-d0f7-08d99f5b29e2
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0041.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR02MB3968

This update is done to support device tree overlays functionality. This is taken
from David Gibson's DTC git: github.com/dgibson/dtc

Change log:
v1 -> v2:
    Correct the compilation issue due to incorrect lib.h path.

Regards,
Vikram


Vikram Garhwal (1):
  Update libfdt to v1.6.1

 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 ++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
 xen/include/xen/libfdt/libfdt_env.h | 100 +++-
 15 files changed, 3025 insertions(+), 785 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 06:20:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 06:20:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221260.382891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miW6x-000702-W0; Thu, 04 Nov 2021 06:20:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221260.382891; Thu, 04 Nov 2021 06:20:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miW6x-0006zs-Ql; Thu, 04 Nov 2021 06:20:31 +0000
Received: by outflank-mailman (input) for mailman id 221260;
 Thu, 04 Nov 2021 06:20:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTzK=PX=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1miW6w-0006zE-7n
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 06:20:30 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam07on20603.outbound.protection.outlook.com
 [2a01:111:f400:7e83::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b829612-3d37-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 07:20:26 +0100 (CET)
Received: from SA0PR11CA0097.namprd11.prod.outlook.com (2603:10b6:806:d1::12)
 by BL0PR02MB5604.namprd02.prod.outlook.com (2603:10b6:208:8e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 06:20:17 +0000
Received: from SN1NAM02FT0041.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:d1:cafe::1f) by SA0PR11CA0097.outlook.office365.com
 (2603:10b6:806:d1::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Thu, 4 Nov 2021 06:20:17 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0041.mail.protection.outlook.com (10.97.5.44) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Thu, 4 Nov 2021 06:20:17 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Wed, 3 Nov 2021 23:20:07 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Wed, 3 Nov 2021 23:20:07 -0700
Received: from [172.19.2.115] (port=60724 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1miW6Y-0006GW-W3; Wed, 03 Nov 2021 23:20:07 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b829612-3d37-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nXa+ek4ZeZYyMG4ffOOCEB+pi1U0T8HhCQ4bPIViOcDxO8LRnvrYVmHCNn9sTJLP92+Tr0MIZNZED7xgjHISltDRMx9OIFWdTnu75/F1jH6lBlSHRAMNK+kNfs1cBdZSTPGs69n4HEJ29e/ofIrPURgzPpolRgwfWVmC5MuIjLL1NsOzXOtG8DdbnQN7zBXK3yANUH4IHO652srNXZ4Hbp2eahAfxrVgY4pM3zA/G+Dtc1OohgRrGelH+9+7Z/Idfz15WE2e+kPDNlJqEA1VwbB1lzNGieQxieyvmgc9MBLLudxI0fPKhHMnOjtjmM87SzO3MA7K5D0HaReGzjXqKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=o+qXJA/OJgagyOPXv6+ThxiBTzWd5xqTcsrmbSj8gbc=;
 b=M0znmQ7UGVHj2//BUQAOExw+ItkfDmAxEeVG/GUtwZ/UxS87aPdoAPhtsdtbMoc4eaw1Fcq/x34IfDMscwEAyrUhYWO9+vgXWQ7kHbdv3yduXxBZU6oBWkbVnUhQ+hBkdMQHtS5pFHpjhr5FtRpMZO7UtFM5CNS/WLiukkniATxeUDDNYVHqnz6zOoskHfd4ncSfAbzUddu1Tq5CyJzfWno9NYUenxt/lsb5H7xNXL6Caeot6RyWTpYtJnXH6xy0STfYQC7kDa8sxFxL20fW4iBIH2Np5q6NALkQWSGq3XDJgG6iRM0D8WT+x4reUTmoF+/o8SSUdxxyXls6veLnHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o+qXJA/OJgagyOPXv6+ThxiBTzWd5xqTcsrmbSj8gbc=;
 b=og2ou1A7Ztctu+UYiqzWHNratAFTxcAInNl6PEQBJPyr1oSN3bXfzloL7G0fwlusJ8Skzidj1WBryu4P0AhDyc6BsAiuAw6gDFTA0VDuQHJANyPP7Jk9R9h/RtD+lNgwxtpvbAqhwHcvm6+oLYkk57nkicGYsB7yg4JB6rPw3J0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, Vikram Garhwal
	<fnu.vikram@xilinx.com>
Subject: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
Date: Wed, 3 Nov 2021 23:19:56 -0700
Message-ID: <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b4e4dd08-ef63-442a-3512-08d99f5b2be2
X-MS-TrafficTypeDiagnostic: BL0PR02MB5604:
X-Microsoft-Antispam-PRVS:
	<BL0PR02MB5604BE7B90F9E1B700506F83BC8D9@BL0PR02MB5604.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:2803;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	cof05y15CD6PP9JZF9VIj7AU0mCPI1XeZoVBm0C5n4iB33+yVJB/qB7plMu5ahSN4iRNO7BWVZvPFC1gbrthFcZ3M3GBmeCzztgtTx18GHFbDVKqdSV66t3hHLbblLwgvo2hvCaKwnpU+FyprXEerFYcOJ4/Dl3qvxKgooat03shQCTn29+FGUIPpE/8+LB165sNd4w0ad8/8I33+RyDdJ4szBAEr4nmL/CublBAtZq1+gV0L2RtEkzTxOg7MS+lmv+1H8AnfSn0DtB3B3t4bwOt6Iqce19bWUW0CNMGiHeYZCpAoBk/m+4FwW0DdonIhKfRPhG6FbHHkaISGpsoXUdz1xSw3p4p4wVLYVJp+E1D/X3tcEnUScRjuen5QrBIA9NPThQwcQNm/6wUvY1CBjjKL1lKVmUse1TBi24xar4w3H3t2dC0HL4Xqs80Y4tKqcoovyEtXTYOxkIeElIyP/fzUAjICax80WBJxH2N9fzb++7uMugEqjXMs6OogahVrnph6F/EFr1KIJK5RTe38GrcuXMgSfDqWd8yjhM9W/7R5a+HP1fPv7qWcoJgXvqOEwNyl7pyRdb72py+5f2pDFAlG+krSleiO/+1OXy5sEWvLr6fq5cgGHH8FJ5T7UXJrzOq7vj9IpMx51yYQf/pjp47BzI0rkuhzBIWgZzc33Cvoiui/tSMNkOhqymTvmszAS/nEIdGYhVG74e4BpO6nn9VXATcvvjBPAK0bl+UwDdro6xlT8tbxW35CNJlaGilOpDE2G+FpUIJnAF6mi+EKFmLmEAfUglIRXIPKP8MKIB4QG9mFNInjmInYMhj5kB6N+kqeVPwISYzNTq7I439HW8OY/f0rb7gll+lwro/xcQ=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(6666004)(186003)(36860700001)(26005)(8936002)(8676002)(30864003)(82310400003)(6916009)(36756003)(47076005)(83380400001)(107886003)(7696005)(70206006)(15650500001)(54906003)(316002)(5660300002)(7636003)(9786002)(508600001)(4326008)(336012)(356005)(36906005)(2906002)(70586007)(2616005)(426003)(102446001)(46800400005)(2004002)(579004)(559001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 06:20:17.5871
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b4e4dd08-ef63-442a-3512-08d99f5b2be2
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0041.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR02MB5604

Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
This update is done to support device tree overlays.

A few minor changes are done to make it compatible with Xen:
fdt_overlay.c: overlay_fixup_phandle()
    Replace  strtoul() simple_strtoul() as strtoul() is not available in Xen lib
    and included lib.h.
    Change char *endptr to const char *endptr.

libfdt_env.h:
    Changed path for config.h and stdbool.h. Remaining Xen changes to
    libfdt_env.h carried over from existing libfdt (v1.4.0)

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 ++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
 xen/include/xen/libfdt/libfdt_env.h | 100 +++-
 15 files changed, 3025 insertions(+), 785 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

diff --git a/xen/common/libfdt/Makefile.libfdt b/xen/common/libfdt/Makefile.libfdt
index 91126c0..b6d8fc0 100644
--- a/xen/common/libfdt/Makefile.libfdt
+++ b/xen/common/libfdt/Makefile.libfdt
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 # Makefile.libfdt
 #
 # This is not a complete Makefile of itself.  Instead, it is designed to
@@ -6,5 +7,12 @@
 LIBFDT_soname = libfdt.$(SHAREDLIB_EXT).1
 LIBFDT_INCLUDES = fdt.h libfdt.h libfdt_env.h
 LIBFDT_VERSION = version.lds
-LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c
+LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c \
+	fdt_addresses.c fdt_overlay.c fdt_check.c
 LIBFDT_OBJS = $(LIBFDT_SRCS:%.c=%.o)
+LIBFDT_LIB = libfdt-$(DTC_VERSION).$(SHAREDLIB_EXT)
+
+libfdt_clean:
+	@$(VECHO) CLEAN "(libfdt)"
+	rm -f $(STD_CLEANFILES:%=$(LIBFDT_dir)/%)
+	rm -f $(LIBFDT_dir)/$(LIBFDT_soname)
diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
index bbc7717..9fe7cf4 100644
--- a/xen/common/libfdt/fdt.c
+++ b/xen/common/libfdt/fdt.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,40 +10,156 @@
 
 #include "libfdt_internal.h"
 
-int fdt_check_header(const void *fdt)
+/*
+ * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
+ * that the given buffer contains what appears to be a flattened
+ * device tree with sane information in its header.
+ */
+int32_t fdt_ro_probe_(const void *fdt)
 {
+	uint32_t totalsize = fdt_totalsize(fdt);
+
+	if (can_assume(VALID_DTB))
+		return totalsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
 	if (fdt_magic(fdt) == FDT_MAGIC) {
 		/* Complete tree */
-		if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
-		if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
+		if (!can_assume(LATEST)) {
+			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+			if (fdt_last_comp_version(fdt) >
+					FDT_LAST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+		}
 	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
 		/* Unfinished sequential-write blob */
-		if (fdt_size_dt_struct(fdt) == 0)
+		if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) == 0)
 			return -FDT_ERR_BADSTATE;
 	} else {
 		return -FDT_ERR_BADMAGIC;
 	}
 
+	if (totalsize < INT32_MAX)
+		return totalsize;
+	else
+		return -FDT_ERR_TRUNCATED;
+}
+
+static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off)
+{
+	return (off >= hdrsize) && (off <= totalsize);
+}
+
+static int check_block_(uint32_t hdrsize, uint32_t totalsize,
+			uint32_t base, uint32_t size)
+{
+	if (!check_off_(hdrsize, totalsize, base))
+		return 0; /* block start out of bounds */
+	if ((base + size) < base)
+		return 0; /* overflow */
+	if (!check_off_(hdrsize, totalsize, base + size))
+		return 0; /* block end out of bounds */
+	return 1;
+}
+
+size_t fdt_header_size_(uint32_t version)
+{
+	if (version <= 1)
+		return FDT_V1_SIZE;
+	else if (version <= 2)
+		return FDT_V2_SIZE;
+	else if (version <= 3)
+		return FDT_V3_SIZE;
+	else if (version <= 16)
+		return FDT_V16_SIZE;
+	else
+		return FDT_V17_SIZE;
+}
+
+size_t fdt_header_size(const void *fdt)
+{
+	return can_assume(LATEST) ? FDT_V17_SIZE :
+		fdt_header_size_(fdt_version(fdt));
+}
+
+int fdt_check_header(const void *fdt)
+{
+	size_t hdrsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
+	if (fdt_magic(fdt) != FDT_MAGIC)
+		return -FDT_ERR_BADMAGIC;
+	if (!can_assume(LATEST)) {
+		if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+		    || (fdt_last_comp_version(fdt) >
+			FDT_LAST_SUPPORTED_VERSION))
+			return -FDT_ERR_BADVERSION;
+		if (fdt_version(fdt) < fdt_last_comp_version(fdt))
+			return -FDT_ERR_BADVERSION;
+	}
+	hdrsize = fdt_header_size(fdt);
+	if (!can_assume(VALID_DTB)) {
+
+		if ((fdt_totalsize(fdt) < hdrsize)
+		    || (fdt_totalsize(fdt) > INT_MAX))
+			return -FDT_ERR_TRUNCATED;
+
+		/* Bounds check memrsv block */
+		if (!check_off_(hdrsize, fdt_totalsize(fdt),
+				fdt_off_mem_rsvmap(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
+	if (!can_assume(VALID_DTB)) {
+		/* Bounds check structure block */
+		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
+			if (!check_off_(hdrsize, fdt_totalsize(fdt),
+					fdt_off_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		} else {
+			if (!check_block_(hdrsize, fdt_totalsize(fdt),
+					  fdt_off_dt_struct(fdt),
+					  fdt_size_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		}
+
+		/* Bounds check strings block */
+		if (!check_block_(hdrsize, fdt_totalsize(fdt),
+				  fdt_off_dt_strings(fdt),
+				  fdt_size_dt_strings(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
 	return 0;
 }
 
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
 {
-	unsigned absoffset = offset + fdt_off_dt_struct(fdt);
+	unsigned int uoffset = offset;
+	unsigned int absoffset = offset + fdt_off_dt_struct(fdt);
 
-	if ((absoffset < offset)
-	    || ((absoffset + len) < absoffset)
-	    || (absoffset + len) > fdt_totalsize(fdt))
+	if (offset < 0)
 		return NULL;
 
-	if (fdt_version(fdt) >= 0x11)
-		if (((offset + len) < offset)
+	if (!can_assume(VALID_INPUT))
+		if ((absoffset < uoffset)
+		    || ((absoffset + len) < absoffset)
+		    || (absoffset + len) > fdt_totalsize(fdt))
+			return NULL;
+
+	if (can_assume(LATEST) || fdt_version(fdt) >= 0x11)
+		if (((uoffset + len) < uoffset)
 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
 			return NULL;
 
-	return _fdt_offset_ptr(fdt, offset);
+	return fdt_offset_ptr_(fdt, offset);
 }
 
 uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
@@ -98,7 +171,7 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 
 	*nextoffset = -FDT_ERR_TRUNCATED;
 	tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
-	if (!tagp)
+	if (!can_assume(VALID_DTB) && !tagp)
 		return FDT_END; /* premature end */
 	tag = fdt32_to_cpu(*tagp);
 	offset += FDT_TAGSIZE;
@@ -110,17 +183,21 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 		do {
 			p = fdt_offset_ptr(fdt, offset++, 1);
 		} while (p && (*p != '\0'));
-		if (!p)
+		if (!can_assume(VALID_DTB) && !p)
 			return FDT_END; /* premature end */
 		break;
 
 	case FDT_PROP:
 		lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp));
-		if (!lenp)
+		if (!can_assume(VALID_DTB) && !lenp)
 			return FDT_END; /* premature end */
 		/* skip-name offset, length and value */
 		offset += sizeof(struct fdt_property) - FDT_TAGSIZE
 			+ fdt32_to_cpu(*lenp);
+		if (!can_assume(LATEST) &&
+		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >= 8 &&
+		    ((offset - fdt32_to_cpu(*lenp)) % 8) != 0)
+			offset += 4;
 		break;
 
 	case FDT_END:
@@ -139,19 +216,25 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 	return tag;
 }
 
-int _fdt_check_node_offset(const void *fdt, int offset)
+int fdt_check_node_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
 }
 
-int _fdt_check_prop_offset(const void *fdt, int offset)
+int fdt_check_prop_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
@@ -163,7 +246,7 @@ int fdt_next_node(const void *fdt, int offset, int *depth)
 	uint32_t tag;
 
 	if (offset >= 0)
-		if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0)
+		if ((nextoffset = fdt_check_node_offset_(fdt, offset)) < 0)
 			return nextoffset;
 
 	do {
@@ -225,7 +308,7 @@ int fdt_next_subnode(const void *fdt, int offset)
 	return offset;
 }
 
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s)
 {
 	int len = strlen(s) + 1;
 	const char *last = strtab + tabsize - len;
@@ -239,9 +322,12 @@ const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
 
 int fdt_move(const void *fdt, void *buf, int bufsize)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (!can_assume(VALID_INPUT) && bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_totalsize(fdt) > bufsize)
+	if (fdt_totalsize(fdt) > (unsigned int)bufsize)
 		return -FDT_ERR_NOSPACE;
 
 	memmove(buf, fdt, fdt_totalsize(fdt));
diff --git a/xen/common/libfdt/fdt_addresses.c b/xen/common/libfdt/fdt_addresses.c
new file mode 100644
index 0000000..9a82cd0
--- /dev/null
+++ b/xen/common/libfdt/fdt_addresses.c
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
+ * Copyright (C) 2018 embedded brains GmbH
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
+{
+	const fdt32_t *c;
+	uint32_t val;
+	int len;
+
+	c = fdt_getprop(fdt, nodeoffset, name, &len);
+	if (!c)
+		return len;
+
+	if (len != sizeof(*c))
+		return -FDT_ERR_BADNCELLS;
+
+	val = fdt32_to_cpu(*c);
+	if (val > FDT_MAX_NCELLS)
+		return -FDT_ERR_BADNCELLS;
+
+	return (int)val;
+}
+
+int fdt_address_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#address-cells");
+	if (val == 0)
+		return -FDT_ERR_BADNCELLS;
+	if (val == -FDT_ERR_NOTFOUND)
+		return 2;
+	return val;
+}
+
+int fdt_size_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#size-cells");
+	if (val == -FDT_ERR_NOTFOUND)
+		return 1;
+	return val;
+}
+
+/* This function assumes that [address|size]_cells is 1 or 2 */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size)
+{
+	int addr_cells, size_cells, ret;
+	uint8_t data[sizeof(fdt64_t) * 2], *prop;
+
+	ret = fdt_address_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	addr_cells = ret;
+
+	ret = fdt_size_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	size_cells = ret;
+
+	/* check validity of address */
+	prop = data;
+	if (addr_cells == 1) {
+		if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)addr);
+	} else if (addr_cells == 2) {
+		fdt64_st(prop, addr);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	/* check validity of size */
+	prop += addr_cells * sizeof(fdt32_t);
+	if (size_cells == 1) {
+		if (size > UINT32_MAX)
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)size);
+	} else if (size_cells == 2) {
+		fdt64_st(prop, size);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	return fdt_appendprop(fdt, nodeoffset, name, data,
+			      (addr_cells + size_cells) * sizeof(fdt32_t));
+}
diff --git a/xen/common/libfdt/fdt_check.c b/xen/common/libfdt/fdt_check.c
new file mode 100644
index 0000000..fa410a8
--- /dev/null
+++ b/xen/common/libfdt/fdt_check.c
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+int fdt_check_full(const void *fdt, size_t bufsize)
+{
+	int err;
+	int num_memrsv;
+	int offset, nextoffset = 0;
+	uint32_t tag;
+	unsigned int depth = 0;
+	const void *prop;
+	const char *propname;
+	bool expect_end = false;
+
+	if (bufsize < FDT_V1_SIZE)
+		return -FDT_ERR_TRUNCATED;
+	if (bufsize < fdt_header_size(fdt))
+		return -FDT_ERR_TRUNCATED;
+	err = fdt_check_header(fdt);
+	if (err != 0)
+		return err;
+	if (bufsize < fdt_totalsize(fdt))
+		return -FDT_ERR_TRUNCATED;
+
+	num_memrsv = fdt_num_mem_rsv(fdt);
+	if (num_memrsv < 0)
+		return num_memrsv;
+
+	while (1) {
+		offset = nextoffset;
+		tag = fdt_next_tag(fdt, offset, &nextoffset);
+
+		if (nextoffset < 0)
+			return nextoffset;
+
+		/* If we see two root nodes, something is wrong */
+		if (expect_end && tag != FDT_END)
+			return -FDT_ERR_BADSTRUCTURE;
+
+		switch (tag) {
+		case FDT_NOP:
+			break;
+
+		case FDT_END:
+			if (depth != 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			return 0;
+
+		case FDT_BEGIN_NODE:
+			depth++;
+			if (depth > INT_MAX)
+				return -FDT_ERR_BADSTRUCTURE;
+
+			/* The root node must have an empty name */
+			if (depth == 1) {
+				const char *name;
+				int len;
+
+				name = fdt_get_name(fdt, offset, &len);
+				if (*name || len)
+					return -FDT_ERR_BADSTRUCTURE;
+			}
+			break;
+
+		case FDT_END_NODE:
+			if (depth == 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			depth--;
+			if (depth == 0)
+				expect_end = true;
+			break;
+
+		case FDT_PROP:
+			prop = fdt_getprop_by_offset(fdt, offset, &propname,
+						     &err);
+			if (!prop)
+				return err;
+			break;
+
+		default:
+			return -FDT_ERR_INTERNAL;
+		}
+	}
+}
diff --git a/xen/common/libfdt/fdt_empty_tree.c b/xen/common/libfdt/fdt_empty_tree.c
index d505611..49d54d4 100644
--- a/xen/common/libfdt/fdt_empty_tree.c
+++ b/xen/common/libfdt/fdt_empty_tree.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2012 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -79,4 +36,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
 
 	return fdt_open_into(buf, buf, bufsize);
 }
-
diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
new file mode 100644
index 0000000..7b95e2b
--- /dev/null
+++ b/xen/common/libfdt/fdt_overlay.c
@@ -0,0 +1,884 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2016 Free Electrons
+ * Copyright (C) 2016 NextThing Co.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+#include <xen/lib.h>
+
+#include "libfdt_internal.h"
+
+/**
+ * overlay_get_target_phandle - retrieves the target phandle of a fragment
+ * @fdto: pointer to the device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ *
+ * overlay_get_target_phandle() retrieves the target phandle of an
+ * overlay fragment when that fragment uses a phandle (target
+ * property) instead of a path (target-path property).
+ *
+ * returns:
+ *      the phandle pointed by the target property
+ *      0, if the phandle was not found
+ *	-1, if the phandle was malformed
+ */
+static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
+{
+	const fdt32_t *val;
+	int len;
+
+	val = fdt_getprop(fdto, fragment, "target", &len);
+	if (!val)
+		return 0;
+
+	if ((len != sizeof(*val)) || (fdt32_to_cpu(*val) == (uint32_t)-1))
+		return (uint32_t)-1;
+
+	return fdt32_to_cpu(*val);
+}
+
+/**
+ * overlay_get_target - retrieves the offset of a fragment's target
+ * @fdt: Base device tree blob
+ * @fdto: Device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ * @pathp: pointer which receives the path of the target (or NULL)
+ *
+ * overlay_get_target() retrieves the target offset in the base
+ * device tree of a fragment, no matter how the actual targeting is
+ * done (through a phandle or a path)
+ *
+ * returns:
+ *      the targeted node offset in the base device tree
+ *      Negative error code on error
+ */
+static int overlay_get_target(const void *fdt, const void *fdto,
+			      int fragment, char const **pathp)
+{
+	uint32_t phandle;
+	const char *path = NULL;
+	int path_len = 0, ret;
+
+	/* Try first to do a phandle based lookup */
+	phandle = overlay_get_target_phandle(fdto, fragment);
+	if (phandle == (uint32_t)-1)
+		return -FDT_ERR_BADPHANDLE;
+
+	/* no phandle, try path */
+	if (!phandle) {
+		/* And then a path based lookup */
+		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
+		if (path)
+			ret = fdt_path_offset(fdt, path);
+		else
+			ret = path_len;
+	} else
+		ret = fdt_node_offset_by_phandle(fdt, phandle);
+
+	/*
+	* If we haven't found either a target or a
+	* target-path property in a node that contains a
+	* __overlay__ subnode (we wouldn't be called
+	* otherwise), consider it a improperly written
+	* overlay
+	*/
+	if (ret < 0 && path_len == -FDT_ERR_NOTFOUND)
+		ret = -FDT_ERR_BADOVERLAY;
+
+	/* return on error */
+	if (ret < 0)
+		return ret;
+
+	/* return pointer to path (if available) */
+	if (pathp)
+		*pathp = path ? path : NULL;
+
+	return ret;
+}
+
+/**
+ * overlay_phandle_add_offset - Increases a phandle by an offset
+ * @fdt: Base device tree blob
+ * @node: Device tree overlay blob
+ * @name: Name of the property to modify (phandle or linux,phandle)
+ * @delta: offset to apply
+ *
+ * overlay_phandle_add_offset() increments a node phandle by a given
+ * offset.
+ *
+ * returns:
+ *      0 on success.
+ *      Negative error code on error
+ */
+static int overlay_phandle_add_offset(void *fdt, int node,
+				      const char *name, uint32_t delta)
+{
+	const fdt32_t *val;
+	uint32_t adj_val;
+	int len;
+
+	val = fdt_getprop(fdt, node, name, &len);
+	if (!val)
+		return len;
+
+	if (len != sizeof(*val))
+		return -FDT_ERR_BADPHANDLE;
+
+	adj_val = fdt32_to_cpu(*val);
+	if ((adj_val + delta) < adj_val)
+		return -FDT_ERR_NOPHANDLES;
+
+	adj_val += delta;
+	if (adj_val == (uint32_t)-1)
+		return -FDT_ERR_NOPHANDLES;
+
+	return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
+}
+
+/**
+ * overlay_adjust_node_phandles - Offsets the phandles of a node
+ * @fdto: Device tree overlay blob
+ * @node: Offset of the node we want to adjust
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_node_phandles() adds a constant to all the phandles
+ * of a given node. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_node_phandles(void *fdto, int node,
+					uint32_t delta)
+{
+	int child;
+	int ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	fdt_for_each_subnode(child, fdto, node) {
+		ret = overlay_adjust_node_phandles(fdto, child, delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_adjust_local_phandles - Adjust the phandles of a whole overlay
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_local_phandles() adds a constant to all the
+ * phandles of an overlay. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
+{
+	/*
+	 * Start adjusting the phandles from the overlay root
+	 */
+	return overlay_adjust_node_phandles(fdto, 0, delta);
+}
+
+/**
+ * overlay_update_local_node_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @tree_node: Node offset of the node to operate on
+ * @fixup_node: Node offset of the matching local fixups node
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_nodes_references() update the phandles
+ * pointing to a node within the device tree overlay by adding a
+ * constant delta.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_node_references(void *fdto,
+						int tree_node,
+						int fixup_node,
+						uint32_t delta)
+{
+	int fixup_prop;
+	int fixup_child;
+	int ret;
+
+	fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
+		const fdt32_t *fixup_val;
+		const char *tree_val;
+		const char *name;
+		int fixup_len;
+		int tree_len;
+		int i;
+
+		fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
+						  &name, &fixup_len);
+		if (!fixup_val)
+			return fixup_len;
+
+		if (fixup_len % sizeof(uint32_t))
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len /= sizeof(uint32_t);
+
+		tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
+		if (!tree_val) {
+			if (tree_len == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_BADOVERLAY;
+
+			return tree_len;
+		}
+
+		for (i = 0; i < fixup_len; i++) {
+			fdt32_t adj_val;
+			uint32_t poffset;
+
+			poffset = fdt32_to_cpu(fixup_val[i]);
+
+			/*
+			 * phandles to fixup can be unaligned.
+			 *
+			 * Use a memcpy for the architectures that do
+			 * not support unaligned accesses.
+			 */
+			memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
+
+			adj_val = cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
+
+			ret = fdt_setprop_inplace_namelen_partial(fdto,
+								  tree_node,
+								  name,
+								  strlen(name),
+								  poffset,
+								  &adj_val,
+								  sizeof(adj_val));
+			if (ret == -FDT_ERR_NOSPACE)
+				return -FDT_ERR_BADOVERLAY;
+
+			if (ret)
+				return ret;
+		}
+	}
+
+	fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
+		const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
+							    NULL);
+		int tree_child;
+
+		tree_child = fdt_subnode_offset(fdto, tree_node,
+						fixup_child_name);
+		if (tree_child == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_BADOVERLAY;
+		if (tree_child < 0)
+			return tree_child;
+
+		ret = overlay_update_local_node_references(fdto,
+							   tree_child,
+							   fixup_child,
+							   delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_update_local_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_references() update all the phandles pointing
+ * to a node within the device tree overlay by adding a constant
+ * delta to not conflict with the base overlay.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_references(void *fdto, uint32_t delta)
+{
+	int fixups;
+
+	fixups = fdt_path_offset(fdto, "/__local_fixups__");
+	if (fixups < 0) {
+		/* There's no local phandles to adjust, bail out */
+		if (fixups == -FDT_ERR_NOTFOUND)
+			return 0;
+
+		return fixups;
+	}
+
+	/*
+	 * Update our local references from the root of the tree
+	 */
+	return overlay_update_local_node_references(fdto, 0, fixups,
+						    delta);
+}
+
+/**
+ * overlay_fixup_one_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @path: Path to a node holding a phandle in the overlay
+ * @path_len: number of path characters to consider
+ * @name: Name of the property holding the phandle reference in the overlay
+ * @name_len: number of name characters to consider
+ * @poffset: Offset within the overlay property where the phandle is stored
+ * @label: Label of the node referenced by the phandle
+ *
+ * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
+ * a node in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_one_phandle(void *fdt, void *fdto,
+				     int symbols_off,
+				     const char *path, uint32_t path_len,
+				     const char *name, uint32_t name_len,
+				     int poffset, const char *label)
+{
+	const char *symbol_path;
+	uint32_t phandle;
+	fdt32_t phandle_prop;
+	int symbol_off, fixup_off;
+	int prop_len;
+
+	if (symbols_off < 0)
+		return symbols_off;
+
+	symbol_path = fdt_getprop(fdt, symbols_off, label,
+				  &prop_len);
+	if (!symbol_path)
+		return prop_len;
+
+	symbol_off = fdt_path_offset(fdt, symbol_path);
+	if (symbol_off < 0)
+		return symbol_off;
+
+	phandle = fdt_get_phandle(fdt, symbol_off);
+	if (!phandle)
+		return -FDT_ERR_NOTFOUND;
+
+	fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
+	if (fixup_off == -FDT_ERR_NOTFOUND)
+		return -FDT_ERR_BADOVERLAY;
+	if (fixup_off < 0)
+		return fixup_off;
+
+	phandle_prop = cpu_to_fdt32(phandle);
+	return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
+						   name, name_len, poffset,
+						   &phandle_prop,
+						   sizeof(phandle_prop));
+};
+
+/**
+ * overlay_fixup_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @property: Property offset in the overlay holding the list of fixups
+ *
+ * overlay_fixup_phandle() resolves all the overlay phandles pointed
+ * to in a __fixups__ property, and updates them to match the phandles
+ * in use in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
+				 int property)
+{
+	const char *value;
+	const char *label;
+	int len;
+
+	value = fdt_getprop_by_offset(fdto, property,
+				      &label, &len);
+	if (!value) {
+		if (len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+
+		return len;
+	}
+
+	do {
+		const char *path, *name, *fixup_end;
+		const char *fixup_str = value;
+		uint32_t path_len, name_len;
+		uint32_t fixup_len;
+		char *sep;
+		const char *endptr;
+		int poffset, ret;
+
+		fixup_end = memchr(value, '\0', len);
+		if (!fixup_end)
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len = fixup_end - fixup_str;
+
+		len -= fixup_len + 1;
+		value += fixup_len + 1;
+
+		path = fixup_str;
+		sep = memchr(fixup_str, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		path_len = sep - path;
+		if (path_len == (fixup_len - 1))
+			return -FDT_ERR_BADOVERLAY;
+
+		fixup_len -= path_len + 1;
+		name = sep + 1;
+		sep = memchr(name, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		name_len = sep - name;
+		if (!name_len)
+			return -FDT_ERR_BADOVERLAY;
+
+		poffset = simple_strtoul(sep + 1, &endptr, 10);
+		if ((*endptr != '\0') || (endptr <= (sep + 1)))
+			return -FDT_ERR_BADOVERLAY;
+
+		ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
+						path, path_len, name, name_len,
+						poffset, label);
+		if (ret)
+			return ret;
+	} while (len > 0);
+
+	return 0;
+}
+
+/**
+ * overlay_fixup_phandles - Resolve the overlay phandles to the base
+ *                          device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_fixup_phandles() resolves all the overlay phandles pointing
+ * to nodes in the base device tree.
+ *
+ * This is one of the steps of the device tree overlay application
+ * process, when you want all the phandles in the overlay to point to
+ * the actual base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandles(void *fdt, void *fdto)
+{
+	int fixups_off, symbols_off;
+	int property;
+
+	/* We can have overlays without any fixups */
+	fixups_off = fdt_path_offset(fdto, "/__fixups__");
+	if (fixups_off == -FDT_ERR_NOTFOUND)
+		return 0; /* nothing to do */
+	if (fixups_off < 0)
+		return fixups_off;
+
+	/* And base DTs without symbols */
+	symbols_off = fdt_path_offset(fdt, "/__symbols__");
+	if ((symbols_off < 0 && (symbols_off != -FDT_ERR_NOTFOUND)))
+		return symbols_off;
+
+	fdt_for_each_property_offset(property, fdto, fixups_off) {
+		int ret;
+
+		ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_apply_node - Merges a node into the base device tree
+ * @fdt: Base Device Tree blob
+ * @target: Node offset in the base device tree to apply the fragment to
+ * @fdto: Device tree overlay blob
+ * @node: Node offset in the overlay holding the changes to merge
+ *
+ * overlay_apply_node() merges a node into a target base device tree
+ * node pointed.
+ *
+ * This is part of the final step in the device tree overlay
+ * application process, when all the phandles have been adjusted and
+ * resolved and you just have to merge overlay into the base device
+ * tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_apply_node(void *fdt, int target,
+			      void *fdto, int node)
+{
+	int property;
+	int subnode;
+
+	fdt_for_each_property_offset(property, fdto, node) {
+		const char *name;
+		const void *prop;
+		int prop_len;
+		int ret;
+
+		prop = fdt_getprop_by_offset(fdto, property, &name,
+					     &prop_len);
+		if (prop_len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+		if (prop_len < 0)
+			return prop_len;
+
+		ret = fdt_setprop(fdt, target, name, prop, prop_len);
+		if (ret)
+			return ret;
+	}
+
+	fdt_for_each_subnode(subnode, fdto, node) {
+		const char *name = fdt_get_name(fdto, subnode, NULL);
+		int nnode;
+		int ret;
+
+		nnode = fdt_add_subnode(fdt, target, name);
+		if (nnode == -FDT_ERR_EXISTS) {
+			nnode = fdt_subnode_offset(fdt, target, name);
+			if (nnode == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_INTERNAL;
+		}
+
+		if (nnode < 0)
+			return nnode;
+
+		ret = overlay_apply_node(fdt, nnode, fdto, subnode);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_merge - Merge an overlay into its base device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_merge() merges an overlay into its base device tree.
+ *
+ * This is the next to last step in the device tree overlay application
+ * process, when all the phandles have been adjusted and resolved and
+ * you just have to merge overlay into the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_merge(void *fdt, void *fdto)
+{
+	int fragment;
+
+	fdt_for_each_subnode(fragment, fdto, 0) {
+		int overlay;
+		int target;
+		int ret;
+
+		/*
+		 * Each fragments will have an __overlay__ node. If
+		 * they don't, it's not supposed to be merged
+		 */
+		overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (overlay == -FDT_ERR_NOTFOUND)
+			continue;
+
+		if (overlay < 0)
+			return overlay;
+
+		target = overlay_get_target(fdt, fdto, fragment, NULL);
+		if (target < 0)
+			return target;
+
+		ret = overlay_apply_node(fdt, target, fdto, overlay);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+static int get_path_len(const void *fdt, int nodeoffset)
+{
+	int len = 0, namelen;
+	const char *name;
+
+	FDT_RO_PROBE(fdt);
+
+	for (;;) {
+		name = fdt_get_name(fdt, nodeoffset, &namelen);
+		if (!name)
+			return namelen;
+
+		/* root? we're done */
+		if (namelen == 0)
+			break;
+
+		nodeoffset = fdt_parent_offset(fdt, nodeoffset);
+		if (nodeoffset < 0)
+			return nodeoffset;
+		len += namelen + 1;
+	}
+
+	/* in case of root pretend it's "/" */
+	if (len == 0)
+		len++;
+	return len;
+}
+
+/**
+ * overlay_symbol_update - Update the symbols of base tree after a merge
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_symbol_update() updates the symbols of the base tree with the
+ * symbols of the applied overlay
+ *
+ * This is the last step in the device tree overlay application
+ * process, allowing the reference of overlay symbols by subsequent
+ * overlay operations.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_symbol_update(void *fdt, void *fdto)
+{
+	int root_sym, ov_sym, prop, path_len, fragment, target;
+	int len, frag_name_len, ret, rel_path_len;
+	const char *s, *e;
+	const char *path;
+	const char *name;
+	const char *frag_name;
+	const char *rel_path;
+	const char *target_path;
+	char *buf;
+	void *p;
+
+	ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
+
+	/* if no overlay symbols exist no problem */
+	if (ov_sym < 0)
+		return 0;
+
+	root_sym = fdt_subnode_offset(fdt, 0, "__symbols__");
+
+	/* it no root symbols exist we should create them */
+	if (root_sym == -FDT_ERR_NOTFOUND)
+		root_sym = fdt_add_subnode(fdt, 0, "__symbols__");
+
+	/* any error is fatal now */
+	if (root_sym < 0)
+		return root_sym;
+
+	/* iterate over each overlay symbol */
+	fdt_for_each_property_offset(prop, fdto, ov_sym) {
+		path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
+		if (!path)
+			return path_len;
+
+		/* verify it's a string property (terminated by a single \0) */
+		if (path_len < 1 || memchr(path, '\0', path_len) != &path[path_len - 1])
+			return -FDT_ERR_BADVALUE;
+
+		/* keep end marker to avoid strlen() */
+		e = path + path_len;
+
+		if (*path != '/')
+			return -FDT_ERR_BADVALUE;
+
+		/* get fragment name first */
+		s = strchr(path + 1, '/');
+		if (!s) {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		frag_name = path + 1;
+		frag_name_len = s - path - 1;
+
+		/* verify format; safe since "s" lies in \0 terminated prop */
+		len = sizeof("/__overlay__/") - 1;
+		if ((e - s) > len && (memcmp(s, "/__overlay__/", len) == 0)) {
+			/* /<fragment-name>/__overlay__/<relative-subnode-path> */
+			rel_path = s + len;
+			rel_path_len = e - rel_path - 1;
+		} else if ((e - s) == len
+			   && (memcmp(s, "/__overlay__", len - 1) == 0)) {
+			/* /<fragment-name>/__overlay__ */
+			rel_path = "";
+			rel_path_len = 0;
+		} else {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		/* find the fragment index in which the symbol lies */
+		ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
+					       frag_name_len);
+		/* not found? */
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+		fragment = ret;
+
+		/* an __overlay__ subnode must exist */
+		ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+
+		/* get the target of the fragment */
+		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+		if (ret < 0)
+			return ret;
+		target = ret;
+
+		/* if we have a target path use */
+		if (!target_path) {
+			ret = get_path_len(fdt, target);
+			if (ret < 0)
+				return ret;
+			len = ret;
+		} else {
+			len = strlen(target_path);
+		}
+
+		ret = fdt_setprop_placeholder(fdt, root_sym, name,
+				len + (len > 1) + rel_path_len + 1, &p);
+		if (ret < 0)
+			return ret;
+
+		if (!target_path) {
+			/* again in case setprop_placeholder changed it */
+			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+			if (ret < 0)
+				return ret;
+			target = ret;
+		}
+
+		buf = p;
+		if (len > 1) { /* target is not root */
+			if (!target_path) {
+				ret = fdt_get_path(fdt, target, buf, len + 1);
+				if (ret < 0)
+					return ret;
+			} else
+				memcpy(buf, target_path, len + 1);
+
+		} else
+			len--;
+
+		buf[len] = '/';
+		memcpy(buf + len + 1, rel_path, rel_path_len);
+		buf[len + 1 + rel_path_len] = '\0';
+	}
+
+	return 0;
+}
+
+int fdt_overlay_apply(void *fdt, void *fdto)
+{
+	uint32_t delta;
+	int ret;
+
+	FDT_RO_PROBE(fdt);
+	FDT_RO_PROBE(fdto);
+
+	ret = fdt_find_max_phandle(fdt, &delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_adjust_local_phandles(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_update_local_references(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_fixup_phandles(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_merge(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_symbol_update(fdt, fdto);
+	if (ret)
+		goto err;
+
+	/*
+	 * The overlay has been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	return 0;
+
+err:
+	/*
+	 * The overlay might have been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	/*
+	 * The base device tree might have been damaged, erase its
+	 * magic.
+	 */
+	fdt_set_magic(fdt, ~0);
+
+	return ret;
+}
diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
index 36f9b48..17584da 100644
--- a/xen/common/libfdt/fdt_ro.c
+++ b/xen/common/libfdt/fdt_ro.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,12 +10,13 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_nodename_eq(const void *fdt, int offset,
+static int fdt_nodename_eq_(const void *fdt, int offset,
 			    const char *s, int len)
 {
-	const char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);
+	int olen;
+	const char *p = fdt_get_name(fdt, offset, &olen);
 
-	if (! p)
+	if (!p || olen < len)
 		/* short match */
 		return 0;
 
@@ -73,37 +31,174 @@ static int _fdt_nodename_eq(const void *fdt, int offset,
 		return 0;
 }
 
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
+{
+	int32_t totalsize;
+	uint32_t absoffset;
+	size_t len;
+	int err;
+	const char *s, *n;
+
+	if (can_assume(VALID_INPUT)) {
+		s = (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+
+		if (lenp)
+			*lenp = strlen(s);
+		return s;
+	}
+	totalsize = fdt_ro_probe_(fdt);
+	err = totalsize;
+	if (totalsize < 0)
+		goto fail;
+
+	err = -FDT_ERR_BADOFFSET;
+	absoffset = stroffset + fdt_off_dt_strings(fdt);
+	if (absoffset >= (unsigned)totalsize)
+		goto fail;
+	len = totalsize - absoffset;
+
+	if (fdt_magic(fdt) == FDT_MAGIC) {
+		if (stroffset < 0)
+			goto fail;
+		if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
+			if ((unsigned)stroffset >= fdt_size_dt_strings(fdt))
+				goto fail;
+			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
+				len = fdt_size_dt_strings(fdt) - stroffset;
+		}
+	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
+		unsigned int sw_stroffset = -stroffset;
+
+		if ((stroffset >= 0) ||
+		    (sw_stroffset > fdt_size_dt_strings(fdt)))
+			goto fail;
+		if (sw_stroffset < len)
+			len = sw_stroffset;
+	} else {
+		err = -FDT_ERR_INTERNAL;
+		goto fail;
+	}
+
+	s = (const char *)fdt + absoffset;
+	n = memchr(s, '\0', len);
+	if (!n) {
+		/* missing terminating NULL */
+		err = -FDT_ERR_TRUNCATED;
+		goto fail;
+	}
+
+	if (lenp)
+		*lenp = n - s;
+	return s;
+
+fail:
+	if (lenp)
+		*lenp = err;
+	return NULL;
+}
+
 const char *fdt_string(const void *fdt, int stroffset)
 {
-	return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+	return fdt_get_string(fdt, stroffset, NULL);
 }
 
-static int _fdt_string_eq(const void *fdt, int stroffset,
+static int fdt_string_eq_(const void *fdt, int stroffset,
 			  const char *s, int len)
 {
-	const char *p = fdt_string(fdt, stroffset);
+	int slen;
+	const char *p = fdt_get_string(fdt, stroffset, &slen);
+
+	return p && (slen == len) && (memcmp(p, s, len) == 0);
+}
+
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max = 0;
+	int offset = -1;
+
+	while (true) {
+		uint32_t value;
+
+		offset = fdt_next_node(fdt, offset, NULL);
+		if (offset < 0) {
+			if (offset == -FDT_ERR_NOTFOUND)
+				break;
+
+			return offset;
+		}
+
+		value = fdt_get_phandle(fdt, offset);
+
+		if (value > max)
+			max = value;
+	}
+
+	if (phandle)
+		*phandle = max;
+
+	return 0;
+}
+
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &max);
+	if (err < 0)
+		return err;
+
+	if (max == FDT_MAX_PHANDLE)
+		return -FDT_ERR_NOPHANDLES;
+
+	if (phandle)
+		*phandle = max + 1;
+
+	return 0;
+}
 
-	return (strlen(p) == len) && (memcmp(p, s, len) == 0);
+static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int n)
+{
+	unsigned int offset = n * sizeof(struct fdt_reserve_entry);
+	unsigned int absoffset = fdt_off_mem_rsvmap(fdt) + offset;
+
+	if (!can_assume(VALID_INPUT)) {
+		if (absoffset < fdt_off_mem_rsvmap(fdt))
+			return NULL;
+		if (absoffset > fdt_totalsize(fdt) -
+		    sizeof(struct fdt_reserve_entry))
+			return NULL;
+	}
+	return fdt_mem_rsv_(fdt, n);
 }
 
 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size)
 {
-	FDT_CHECK_HEADER(fdt);
-	*address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address);
-	*size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size);
+	const struct fdt_reserve_entry *re;
+
+	FDT_RO_PROBE(fdt);
+	re = fdt_mem_rsv(fdt, n);
+	if (!can_assume(VALID_INPUT) && !re)
+		return -FDT_ERR_BADOFFSET;
+
+	*address = fdt64_ld_(&re->address);
+	*size = fdt64_ld_(&re->size);
 	return 0;
 }
 
 int fdt_num_mem_rsv(const void *fdt)
 {
-	int i = 0;
+	int i;
+	const struct fdt_reserve_entry *re;
 
-	while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0)
-		i++;
-	return i;
+	for (i = 0; (re = fdt_mem_rsv(fdt, i)) != NULL; i++) {
+		if (fdt64_ld_(&re->size) == 0)
+			return i;
+	}
+	return -FDT_ERR_TRUNCATED;
 }
 
-static int _nextprop(const void *fdt, int offset)
+static int nextprop_(const void *fdt, int offset)
 {
 	uint32_t tag;
 	int nextoffset;
@@ -132,13 +227,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int offset,
 {
 	int depth;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	for (depth = 0;
 	     (offset >= 0) && (depth >= 0);
 	     offset = fdt_next_node(fdt, offset, &depth))
 		if ((depth == 1)
-		    && _fdt_nodename_eq(fdt, offset, name, namelen))
+		    && fdt_nodename_eq_(fdt, offset, name, namelen))
 			return offset;
 
 	if (depth < 0)
@@ -152,17 +247,17 @@ int fdt_subnode_offset(const void *fdt, int parentoffset,
 	return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name));
 }
 
-int fdt_path_offset(const void *fdt, const char *path)
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen)
 {
-	const char *end = path + strlen(path);
+	const char *end = path + namelen;
 	const char *p = path;
 	int offset = 0;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* see if we have an alias */
 	if (*path != '/') {
-		const char *q = strchr(path, '/');
+		const char *q = memchr(path, '/', end - p);
 
 		if (!q)
 			q = end;
@@ -175,14 +270,15 @@ int fdt_path_offset(const void *fdt, const char *path)
 		p = q;
 	}
 
-	while (*p) {
+	while (p < end) {
 		const char *q;
 
-		while (*p == '/')
+		while (*p == '/') {
 			p++;
-		if (! *p)
-			return offset;
-		q = strchr(p, '/');
+			if (p == end)
+				return offset;
+		}
+		q = memchr(p, '/', end - p);
 		if (! q)
 			q = end;
 
@@ -196,19 +292,42 @@ int fdt_path_offset(const void *fdt, const char *path)
 	return offset;
 }
 
+int fdt_path_offset(const void *fdt, const char *path)
+{
+	return fdt_path_offset_namelen(fdt, path, strlen(path));
+}
+
 const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
 {
-	const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset);
+	const struct fdt_node_header *nh = fdt_offset_ptr_(fdt, nodeoffset);
+	const char *nameptr;
 	int err;
 
-	if (((err = fdt_check_header(fdt)) != 0)
-	    || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0))
+	if (((err = fdt_ro_probe_(fdt)) < 0)
+	    || ((err = fdt_check_node_offset_(fdt, nodeoffset)) < 0))
+			goto fail;
+
+	nameptr = nh->name;
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		/*
+		 * For old FDT versions, match the naming conventions of V16:
+		 * give only the leaf name (after all /). The actual tree
+		 * contents are loosely checked.
+		 */
+		const char *leaf;
+		leaf = strrchr(nameptr, '/');
+		if (leaf == NULL) {
+			err = -FDT_ERR_BADSTRUCTURE;
 			goto fail;
+		}
+		nameptr = leaf+1;
+	}
 
 	if (len)
-		*len = strlen(nh->name);
+		*len = strlen(nameptr);
 
-	return nh->name;
+	return nameptr;
 
  fail:
 	if (len)
@@ -220,58 +339,81 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset)
 {
 	int offset;
 
-	if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((offset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
 int fdt_next_property_offset(const void *fdt, int offset)
 {
-	if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0)
+	if ((offset = fdt_check_prop_offset_(fdt, offset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
-const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
-						      int offset,
-						      int *lenp)
+static const struct fdt_property *fdt_get_property_by_offset_(const void *fdt,
+						              int offset,
+						              int *lenp)
 {
 	int err;
 	const struct fdt_property *prop;
 
-	if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) {
+	if (!can_assume(VALID_INPUT) &&
+	    (err = fdt_check_prop_offset_(fdt, offset)) < 0) {
 		if (lenp)
 			*lenp = err;
 		return NULL;
 	}
 
-	prop = _fdt_offset_ptr(fdt, offset);
+	prop = fdt_offset_ptr_(fdt, offset);
 
 	if (lenp)
-		*lenp = fdt32_to_cpu(prop->len);
+		*lenp = fdt32_ld_(&prop->len);
 
 	return prop;
 }
 
-const struct fdt_property *fdt_get_property_namelen(const void *fdt,
-						    int offset,
-						    const char *name,
-						    int namelen, int *lenp)
+const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
+						      int offset,
+						      int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_by_offset_(fdt, offset, lenp);
+}
+
+static const struct fdt_property *fdt_get_property_namelen_(const void *fdt,
+						            int offset,
+						            const char *name,
+						            int namelen,
+							    int *lenp,
+							    int *poffset)
 {
 	for (offset = fdt_first_property_offset(fdt, offset);
 	     (offset >= 0);
 	     (offset = fdt_next_property_offset(fdt, offset))) {
 		const struct fdt_property *prop;
 
-		if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) {
+		prop = fdt_get_property_by_offset_(fdt, offset, lenp);
+		if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
 			offset = -FDT_ERR_INTERNAL;
 			break;
 		}
-		if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff),
-				   name, namelen))
+		if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
+				   name, namelen)) {
+			if (poffset)
+				*poffset = offset;
 			return prop;
+		}
 	}
 
 	if (lenp)
@@ -279,6 +421,25 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 	return NULL;
 }
 
+
+const struct fdt_property *fdt_get_property_namelen(const void *fdt,
+						    int offset,
+						    const char *name,
+						    int namelen, int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
+					 NULL);
+}
+
+
 const struct fdt_property *fdt_get_property(const void *fdt,
 					    int nodeoffset,
 					    const char *name, int *lenp)
@@ -290,12 +451,18 @@ const struct fdt_property *fdt_get_property(const void *fdt,
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp)
 {
+	int poffset;
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp);
-	if (! prop)
+	prop = fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp,
+					 &poffset);
+	if (!prop)
 		return NULL;
 
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -304,11 +471,31 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
 {
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_by_offset(fdt, offset, lenp);
+	prop = fdt_get_property_by_offset_(fdt, offset, lenp);
 	if (!prop)
 		return NULL;
-	if (namep)
-		*namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
+	if (namep) {
+		const char *name;
+		int namelen;
+
+		if (!can_assume(VALID_INPUT)) {
+			name = fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
+					      &namelen);
+			if (!name) {
+				if (lenp)
+					*lenp = namelen;
+				return NULL;
+			}
+			*namep = name;
+		} else {
+			*namep = fdt_string(fdt, fdt32_ld_(&prop->nameoff));
+		}
+	}
+
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -332,7 +519,7 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)
 			return 0;
 	}
 
-	return fdt32_to_cpu(*php);
+	return fdt32_ld_(php);
 }
 
 const char *fdt_get_alias_namelen(const void *fdt,
@@ -358,7 +545,7 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen)
 	int offset, depth, namelen;
 	const char *name;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (buflen < 2)
 		return -FDT_ERR_NOSPACE;
@@ -410,7 +597,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 	int offset, depth;
 	int supernodeoffset = -FDT_ERR_INTERNAL;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (supernodedepth < 0)
 		return -FDT_ERR_NOTFOUND;
@@ -432,10 +619,12 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 		}
 	}
 
-	if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
-		return -FDT_ERR_BADOFFSET;
-	else if (offset == -FDT_ERR_BADOFFSET)
-		return -FDT_ERR_BADSTRUCTURE;
+	if (!can_assume(VALID_INPUT)) {
+		if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
+			return -FDT_ERR_BADOFFSET;
+		else if (offset == -FDT_ERR_BADOFFSET)
+			return -FDT_ERR_BADSTRUCTURE;
+	}
 
 	return offset; /* error from fdt_next_node() */
 }
@@ -447,7 +636,8 @@ int fdt_node_depth(const void *fdt, int nodeoffset)
 
 	err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
 	if (err)
-		return (err < 0) ? err : -FDT_ERR_INTERNAL;
+		return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
+			-FDT_ERR_INTERNAL;
 	return nodedepth;
 }
 
@@ -469,7 +659,7 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 	const void *val;
 	int len;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_getprop(), then if that didn't
@@ -492,10 +682,10 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
 {
 	int offset;
 
-	if ((phandle == 0) || (phandle == -1))
+	if ((phandle == 0) || (phandle == ~0U))
 		return -FDT_ERR_BADPHANDLE;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we
 	 * potentially scan each property of a node in
@@ -530,6 +720,106 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
 	return 0;
 }
 
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
+{
+	const char *list, *end;
+	int length, count = 0;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		list += length;
+		count++;
+	}
+
+	return count;
+}
+
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string)
+{
+	int length, len, idx = 0;
+	const char *list, *end;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	len = strlen(string) + 1;
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		if (length == len && memcmp(list, string, length) == 0)
+			return idx;
+
+		list += length;
+		idx++;
+	}
+
+	return -FDT_ERR_NOTFOUND;
+}
+
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int idx,
+			       int *lenp)
+{
+	const char *list, *end;
+	int length;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list) {
+		if (lenp)
+			*lenp = length;
+
+		return NULL;
+	}
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end) {
+			if (lenp)
+				*lenp = -FDT_ERR_BADVALUE;
+
+			return NULL;
+		}
+
+		if (idx == 0) {
+			if (lenp)
+				*lenp = length - 1;
+
+			return list;
+		}
+
+		list += length;
+		idx--;
+	}
+
+	if (lenp)
+		*lenp = -FDT_ERR_NOTFOUND;
+
+	return NULL;
+}
+
 int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 			      const char *compatible)
 {
@@ -539,10 +829,8 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 	prop = fdt_getprop(fdt, nodeoffset, "compatible", &len);
 	if (!prop)
 		return len;
-	if (fdt_stringlist_contains(prop, len, compatible))
-		return 0;
-	else
-		return 1;
+
+	return !fdt_stringlist_contains(prop, len, compatible);
 }
 
 int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
@@ -550,7 +838,7 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
 {
 	int offset, err;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_node_check_compatible(), then if
diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
index 8b8cd25..3621d36 100644
--- a/xen/common/libfdt/fdt_rw.c
+++ b/xen/common/libfdt/fdt_rw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,8 +10,8 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_blocks_misordered(const void *fdt,
-			      int mem_rsv_size, int struct_size)
+static int fdt_blocks_misordered_(const void *fdt,
+				  int mem_rsv_size, int struct_size)
 {
 	return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8))
 		|| (fdt_off_dt_struct(fdt) <
@@ -65,40 +22,44 @@ static int _fdt_blocks_misordered(const void *fdt,
 		    (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
 }
 
-static int _fdt_rw_check_header(void *fdt)
+static int fdt_rw_probe_(void *fdt)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (can_assume(VALID_DTB))
+		return 0;
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_version(fdt) < 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
 		return -FDT_ERR_BADVERSION;
-	if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
+	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
 				   fdt_size_dt_struct(fdt)))
 		return -FDT_ERR_BADLAYOUT;
-	if (fdt_version(fdt) > 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
 		fdt_set_version(fdt, 17);
 
 	return 0;
 }
 
-#define FDT_RW_CHECK_HEADER(fdt) \
+#define FDT_RW_PROBE(fdt) \
 	{ \
-		int err; \
-		if ((err = _fdt_rw_check_header(fdt)) != 0) \
-			return err; \
+		int err_; \
+		if ((err_ = fdt_rw_probe_(fdt)) != 0) \
+			return err_; \
 	}
 
-static inline unsigned int _fdt_data_size(void *fdt)
+static inline unsigned int fdt_data_size_(void *fdt)
 {
 	return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 }
 
-static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
+static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int newlen)
 {
 	char *p = splicepoint;
-	unsigned int dsize = _fdt_data_size(fdt);
+	unsigned int dsize = fdt_data_size_(fdt);
 	size_t soff = p - (char *)fdt;
 
-	if (oldlen < 0 || soff + oldlen < soff || soff + oldlen > dsize)
+	if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
+		return -FDT_ERR_BADOFFSET;
+	if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
 		return -FDT_ERR_BADOFFSET;
 	if (dsize - oldlen + newlen > fdt_totalsize(fdt))
 		return -FDT_ERR_NOSPACE;
@@ -106,12 +67,12 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
 	return 0;
 }
 
-static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
+static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
 			       int oldn, int newn)
 {
 	int delta = (newn - oldn) * sizeof(*p);
 	int err;
-	err = _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
+	err = fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
 	if (err)
 		return err;
 	fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
@@ -119,13 +80,13 @@ static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
 	return 0;
 }
 
-static int _fdt_splice_struct(void *fdt, void *p,
+static int fdt_splice_struct_(void *fdt, void *p,
 			      int oldlen, int newlen)
 {
 	int delta = newlen - oldlen;
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, oldlen, newlen)))
+	if ((err = fdt_splice_(fdt, p, oldlen, newlen)))
 		return err;
 
 	fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
@@ -133,20 +94,37 @@ static int _fdt_splice_struct(void *fdt, void *p,
 	return 0;
 }
 
-static int _fdt_splice_string(void *fdt, int newlen)
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
+	int newlen = strlen(s) + 1;
+
+	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
+}
+
+static int fdt_splice_string_(void *fdt, int newlen)
 {
 	void *p = (char *)fdt
 		+ fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, 0, newlen)))
+	if ((err = fdt_splice_(fdt, p, 0, newlen)))
 		return err;
 
 	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+/**
+ * fdt_find_add_string_() - Find or allocate a string
+ *
+ * @fdt: pointer to the device tree to check/adjust
+ * @s: string to find/add
+ * @allocated: Set to 0 if the string was found, 1 if not found and so
+ *	allocated. Ignored if can_assume(NO_ROLLBACK)
+ * @return offset of string in the string table (whether found or added)
+ */
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
 {
 	char *strtab = (char *)fdt + fdt_off_dt_strings(fdt);
 	const char *p;
@@ -154,16 +132,22 @@ static int _fdt_find_add_string(void *fdt, const char *s)
 	int len = strlen(s) + 1;
 	int err;
 
-	p = _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s);
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 0;
+
+	p = fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
 	if (p)
 		/* found it */
 		return (p - strtab);
 
 	new = strtab + fdt_size_dt_strings(fdt);
-	err = _fdt_splice_string(fdt, len);
+	err = fdt_splice_string_(fdt, len);
 	if (err)
 		return err;
 
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 1;
+
 	memcpy(new, s, len);
 	return (new - strtab);
 }
@@ -173,10 +157,10 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	re = _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt));
-	err = _fdt_splice_mem_rsv(fdt, re, 0, 1);
+	re = fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
+	err = fdt_splice_mem_rsv_(fdt, re, 0, 1);
 	if (err)
 		return err;
 
@@ -187,31 +171,27 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 
 int fdt_del_mem_rsv(void *fdt, int n)
 {
-	struct fdt_reserve_entry *re = _fdt_mem_rsv_w(fdt, n);
-	int err;
+	struct fdt_reserve_entry *re = fdt_mem_rsv_w_(fdt, n);
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	if (n >= fdt_num_mem_rsv(fdt))
 		return -FDT_ERR_NOTFOUND;
 
-	err = _fdt_splice_mem_rsv(fdt, re, 1, 0);
-	if (err)
-		return err;
-	return 0;
+	return fdt_splice_mem_rsv_(fdt, re, 1, 0);
 }
 
-static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_resize_property_(void *fdt, int nodeoffset, const char *name,
 				int len, struct fdt_property **prop)
 {
 	int oldlen;
 	int err;
 
 	*prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
-	if (! (*prop))
+	if (!*prop)
 		return oldlen;
 
-	if ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
+	if ((err = fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
 				      FDT_TAGALIGN(len))))
 		return err;
 
@@ -219,27 +199,32 @@ static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
 	return 0;
 }
 
-static int _fdt_add_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_add_property_(void *fdt, int nodeoffset, const char *name,
 			     int len, struct fdt_property **prop)
 {
 	int proplen;
 	int nextoffset;
 	int namestroff;
 	int err;
+	int allocated;
 
-	if ((nextoffset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((nextoffset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return nextoffset;
 
-	namestroff = _fdt_find_add_string(fdt, name);
+	namestroff = fdt_find_add_string_(fdt, name, &allocated);
 	if (namestroff < 0)
 		return namestroff;
 
-	*prop = _fdt_offset_ptr_w(fdt, nextoffset);
+	*prop = fdt_offset_ptr_w_(fdt, nextoffset);
 	proplen = sizeof(**prop) + FDT_TAGALIGN(len);
 
-	err = _fdt_splice_struct(fdt, *prop, 0, proplen);
-	if (err)
+	err = fdt_splice_struct_(fdt, *prop, 0, proplen);
+	if (err) {
+		/* Delete the string if we failed to add it */
+		if (!can_assume(NO_ROLLBACK) && allocated)
+			fdt_del_last_string_(fdt, name);
 		return err;
+	}
 
 	(*prop)->tag = cpu_to_fdt32(FDT_PROP);
 	(*prop)->nameoff = cpu_to_fdt32(namestroff);
@@ -253,7 +238,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	int oldlen, newlen;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	namep = (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
 	if (!namep)
@@ -261,7 +246,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 
 	newlen = strlen(name);
 
-	err = _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1),
+	err = fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
 				 FDT_TAGALIGN(newlen+1));
 	if (err)
 		return err;
@@ -270,21 +255,36 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	return 0;
 }
 
-int fdt_setprop(void *fdt, int nodeoffset, const char *name,
-		const void *val, int len)
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data)
 {
 	struct fdt_property *prop;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	err = _fdt_resize_property(fdt, nodeoffset, name, len, &prop);
+	err = fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
 	if (err == -FDT_ERR_NOTFOUND)
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
+	if (err)
+		return err;
+
+	*prop_data = prop->data;
+	return 0;
+}
+
+int fdt_setprop(void *fdt, int nodeoffset, const char *name,
+		const void *val, int len)
+{
+	void *prop_data;
+	int err;
+
+	err = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data);
 	if (err)
 		return err;
 
-	memcpy(prop->data, val, len);
+	if (len)
+		memcpy(prop_data, val, len);
 	return 0;
 }
 
@@ -294,12 +294,12 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 	struct fdt_property *prop;
 	int err, oldlen, newlen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
 	if (prop) {
 		newlen = len + oldlen;
-		err = _fdt_splice_struct(fdt, prop->data,
+		err = fdt_splice_struct_(fdt, prop->data,
 					 FDT_TAGALIGN(oldlen),
 					 FDT_TAGALIGN(newlen));
 		if (err)
@@ -307,7 +307,7 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 		prop->len = cpu_to_fdt32(newlen);
 		memcpy(prop->data + oldlen, val, len);
 	} else {
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
 		if (err)
 			return err;
 		memcpy(prop->data, val, len);
@@ -320,14 +320,14 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name)
 	struct fdt_property *prop;
 	int len, proplen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
 	proplen = sizeof(*prop) + FDT_TAGALIGN(len);
-	return _fdt_splice_struct(fdt, prop, proplen, 0);
+	return fdt_splice_struct_(fdt, prop, proplen, 0);
 }
 
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
@@ -340,7 +340,7 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 	uint32_t tag;
 	fdt32_t *endtag;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	offset = fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
 	if (offset >= 0)
@@ -349,16 +349,19 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 		return offset;
 
 	/* Try to place the new node after the parent's properties */
-	fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
+	tag = fdt_next_tag(fdt, parentoffset, &nextoffset);
+	/* the fdt_subnode_offset_namelen() should ensure this never hits */
+	if (!can_assume(LIBFDT_FLAWLESS) && (tag != FDT_BEGIN_NODE))
+		return -FDT_ERR_INTERNAL;
 	do {
 		offset = nextoffset;
 		tag = fdt_next_tag(fdt, offset, &nextoffset);
 	} while ((tag == FDT_PROP) || (tag == FDT_NOP));
 
-	nh = _fdt_offset_ptr_w(fdt, offset);
+	nh = fdt_offset_ptr_w_(fdt, offset);
 	nodelen = sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
 
-	err = _fdt_splice_struct(fdt, nh, 0, nodelen);
+	err = fdt_splice_struct_(fdt, nh, 0, nodelen);
 	if (err)
 		return err;
 
@@ -380,18 +383,20 @@ int fdt_del_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset),
+	return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
 				  endoffset - nodeoffset, 0);
 }
 
-static void _fdt_packblocks(const char *old, char *new,
-			    int mem_rsv_size, int struct_size)
+static void fdt_packblocks_(const char *old, char *new,
+			    int mem_rsv_size,
+			    int struct_size,
+			    int strings_size)
 {
 	int mem_rsv_off, struct_off, strings_off;
 
@@ -406,8 +411,7 @@ static void _fdt_packblocks(const char *old, char *new,
 	fdt_set_off_dt_struct(new, struct_off);
 	fdt_set_size_dt_struct(new, struct_size);
 
-	memmove(new + strings_off, old + fdt_off_dt_strings(old),
-		fdt_size_dt_strings(old));
+	memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size);
 	fdt_set_off_dt_strings(new, strings_off);
 	fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
 }
@@ -421,22 +425,25 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 	const char *fdtend = fdtstart + fdt_totalsize(fdt);
 	char *tmp;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
 
-	if (fdt_version(fdt) >= 17) {
+	if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
 		struct_size = fdt_size_dt_struct(fdt);
-	} else {
+	} else if (fdt_version(fdt) == 16) {
 		struct_size = 0;
 		while (fdt_next_tag(fdt, struct_size, &struct_size) != FDT_END)
 			;
 		if (struct_size < 0)
 			return struct_size;
+	} else {
+		return -FDT_ERR_BADVERSION;
 	}
 
-	if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) {
+	if (can_assume(LIBFDT_ORDER) ||
+	    !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
 		/* no further work necessary */
 		err = fdt_move(fdt, buf, bufsize);
 		if (err)
@@ -464,7 +471,8 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 			return -FDT_ERR_NOSPACE;
 	}
 
-	_fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size);
+	fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
+			fdt_size_dt_strings(fdt));
 	memmove(buf, tmp, newsize);
 
 	fdt_set_magic(buf, FDT_MAGIC);
@@ -480,12 +488,13 @@ int fdt_pack(void *fdt)
 {
 	int mem_rsv_size;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
-	_fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt));
-	fdt_set_totalsize(fdt, _fdt_data_size(fdt));
+	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
+			fdt_size_dt_strings(fdt));
+	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
 
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_strerror.c b/xen/common/libfdt/fdt_strerror.c
index 8d0289c..b435693 100644
--- a/xen/common/libfdt/fdt_strerror.c
+++ b/xen/common/libfdt/fdt_strerror.c
@@ -1,49 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
@@ -67,6 +25,7 @@ static struct fdt_errtabent fdt_errtable[] = {
 
 	FDT_ERRTABENT(FDT_ERR_BADOFFSET),
 	FDT_ERRTABENT(FDT_ERR_BADPATH),
+	FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
 	FDT_ERRTABENT(FDT_ERR_BADSTATE),
 
 	FDT_ERRTABENT(FDT_ERR_TRUNCATED),
@@ -74,8 +33,14 @@ static struct fdt_errtabent fdt_errtable[] = {
 	FDT_ERRTABENT(FDT_ERR_BADVERSION),
 	FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
 	FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
+	FDT_ERRTABENT(FDT_ERR_INTERNAL),
+	FDT_ERRTABENT(FDT_ERR_BADNCELLS),
+	FDT_ERRTABENT(FDT_ERR_BADVALUE),
+	FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
+	FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
+	FDT_ERRTABENT(FDT_ERR_BADFLAGS),
 };
-#define FDT_ERRTABSIZE	(sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
+#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
 
 const char *fdt_strerror(int errval)
 {
@@ -83,7 +48,7 @@ const char *fdt_strerror(int errval)
 		return "<valid offset/length>";
 	else if (errval == 0)
 		return "<no error>";
-	else if (errval > -FDT_ERRTABSIZE) {
+	else if (-errval < FDT_ERRTABSIZE) {
 		const char *s = fdt_errtable[-errval].str;
 
 		if (s)
diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
index c7d93d3..4c569ee 100644
--- a/xen/common/libfdt/fdt_sw.c
+++ b/xen/common/libfdt/fdt_sw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,25 +10,91 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_sw_check_header(void *fdt)
+static int fdt_sw_probe_(void *fdt)
+{
+	if (!can_assume(VALID_INPUT)) {
+		if (fdt_magic(fdt) == FDT_MAGIC)
+			return -FDT_ERR_BADSTATE;
+		else if (fdt_magic(fdt) != FDT_SW_MAGIC)
+			return -FDT_ERR_BADMAGIC;
+	}
+
+	return 0;
+}
+
+#define FDT_SW_PROBE(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'memrsv' state:	Initial state after fdt_create()
+ *
+ * Allowed functions:
+ *	fdt_add_reservemap_entry()
+ *	fdt_finish_reservemap()		[moves to 'struct' state]
+ */
+static int fdt_sw_probe_memrsv_(void *fdt)
+{
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) != 0)
+		return -FDT_ERR_BADSTATE;
+	return 0;
+}
+
+#define FDT_SW_PROBE_MEMRSV(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_memrsv_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'struct' state:	Enter this state after fdt_finish_reservemap()
+ *
+ * Allowed functions:
+ *	fdt_begin_node()
+ *	fdt_end_node()
+ *	fdt_property*()
+ *	fdt_finish()			[moves to 'complete' state]
+ */
+static int fdt_sw_probe_struct_(void *fdt)
 {
-	if (fdt_magic(fdt) != FDT_SW_MAGIC)
-		return -FDT_ERR_BADMAGIC;
-	/* FIXME: should check more details about the header state */
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) &&
+	    fdt_off_dt_strings(fdt) != fdt_totalsize(fdt))
+		return -FDT_ERR_BADSTATE;
 	return 0;
 }
 
-#define FDT_SW_CHECK_HEADER(fdt) \
+#define FDT_SW_PROBE_STRUCT(fdt) \
 	{ \
 		int err; \
-		if ((err = _fdt_sw_check_header(fdt)) != 0) \
+		if ((err = fdt_sw_probe_struct_(fdt)) != 0) \
 			return err; \
 	}
 
-static void *_fdt_grab_space(void *fdt, size_t len)
+static inline uint32_t sw_flags(void *fdt)
 {
-	int offset = fdt_size_dt_struct(fdt);
-	int spaceleft;
+	/* assert: (fdt_magic(fdt) == FDT_SW_MAGIC) */
+	return fdt_last_comp_version(fdt);
+}
+
+/* 'complete' state:	Enter this state after fdt_finish()
+ *
+ * Allowed functions: none
+ */
+
+static void *fdt_grab_space_(void *fdt, size_t len)
+{
+	unsigned int offset = fdt_size_dt_struct(fdt);
+	unsigned int spaceleft;
 
 	spaceleft = fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
 		- fdt_size_dt_strings(fdt);
@@ -80,27 +103,84 @@ static void *_fdt_grab_space(void *fdt, size_t len)
 		return NULL;
 
 	fdt_set_size_dt_struct(fdt, offset + len);
-	return _fdt_offset_ptr_w(fdt, offset);
+	return fdt_offset_ptr_w_(fdt, offset);
 }
 
-int fdt_create(void *buf, int bufsize)
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
 {
+	const int hdrsize = FDT_ALIGN(sizeof(struct fdt_header),
+				      sizeof(struct fdt_reserve_entry));
 	void *fdt = buf;
 
-	if (bufsize < sizeof(struct fdt_header))
+	if (bufsize < hdrsize)
 		return -FDT_ERR_NOSPACE;
 
+	if (flags & ~FDT_CREATE_FLAGS_ALL)
+		return -FDT_ERR_BADFLAGS;
+
 	memset(buf, 0, bufsize);
 
+	/*
+	 * magic and last_comp_version keep intermediate state during the fdt
+	 * creation process, which is replaced with the proper FDT format by
+	 * fdt_finish().
+	 *
+	 * flags should be accessed with sw_flags().
+	 */
 	fdt_set_magic(fdt, FDT_SW_MAGIC);
 	fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
-	fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION);
+	fdt_set_last_comp_version(fdt, flags);
+
 	fdt_set_totalsize(fdt,  bufsize);
 
-	fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header),
-					      sizeof(struct fdt_reserve_entry)));
+	fdt_set_off_mem_rsvmap(fdt, hdrsize);
 	fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
-	fdt_set_off_dt_strings(fdt, bufsize);
+	fdt_set_off_dt_strings(fdt, 0);
+
+	return 0;
+}
+
+int fdt_create(void *buf, int bufsize)
+{
+	return fdt_create_with_flags(buf, bufsize, 0);
+}
+
+int fdt_resize(void *fdt, void *buf, int bufsize)
+{
+	size_t headsize, tailsize;
+	char *oldtail, *newtail;
+
+	FDT_SW_PROBE(fdt);
+
+	if (bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	headsize = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	tailsize = fdt_size_dt_strings(fdt);
+
+	if (!can_assume(VALID_DTB) &&
+	    headsize + tailsize > fdt_totalsize(fdt))
+		return -FDT_ERR_INTERNAL;
+
+	if ((headsize + tailsize) > (unsigned)bufsize)
+		return -FDT_ERR_NOSPACE;
+
+	oldtail = (char *)fdt + fdt_totalsize(fdt) - tailsize;
+	newtail = (char *)buf + bufsize - tailsize;
+
+	/* Two cases to avoid clobbering data if the old and new
+	 * buffers partially overlap */
+	if (buf <= fdt) {
+		memmove(buf, fdt, headsize);
+		memmove(newtail, oldtail, tailsize);
+	} else {
+		memmove(newtail, oldtail, tailsize);
+		memmove(buf, fdt, headsize);
+	}
+
+	fdt_set_totalsize(buf, bufsize);
+	if (fdt_off_dt_strings(buf))
+		fdt_set_off_dt_strings(buf, bufsize);
 
 	return 0;
 }
@@ -110,10 +190,7 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int offset;
 
-	FDT_SW_CHECK_HEADER(fdt);
-
-	if (fdt_size_dt_struct(fdt))
-		return -FDT_ERR_BADSTATE;
+	FDT_SW_PROBE_MEMRSV(fdt);
 
 	offset = fdt_off_dt_struct(fdt);
 	if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
@@ -130,17 +207,24 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 
 int fdt_finish_reservemap(void *fdt)
 {
-	return fdt_add_reservemap_entry(fdt, 0, 0);
+	int err = fdt_add_reservemap_entry(fdt, 0, 0);
+
+	if (err)
+		return err;
+
+	fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
+	return 0;
 }
 
 int fdt_begin_node(void *fdt, const char *name)
 {
 	struct fdt_node_header *nh;
-	int namelen = strlen(name) + 1;
+	int namelen;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nh = _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
+	namelen = strlen(name) + 1;
+	nh = fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
 	if (! nh)
 		return -FDT_ERR_NOSPACE;
 
@@ -153,9 +237,9 @@ int fdt_end_node(void *fdt)
 {
 	fdt32_t *en;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	en = _fdt_grab_space(fdt, FDT_TAGSIZE);
+	en = fdt_grab_space_(fdt, FDT_TAGSIZE);
 	if (! en)
 		return -FDT_ERR_NOSPACE;
 
@@ -163,48 +247,90 @@ int fdt_end_node(void *fdt)
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+static int fdt_add_string_(void *fdt, const char *s)
 {
 	char *strtab = (char *)fdt + fdt_totalsize(fdt);
-	const char *p;
+	unsigned int strtabsize = fdt_size_dt_strings(fdt);
+	unsigned int len = strlen(s) + 1;
+	unsigned int struct_top, offset;
+
+	offset = strtabsize + len;
+	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	if (fdt_totalsize(fdt) - offset < struct_top)
+		return 0; /* no more room :( */
+
+	memcpy(strtab - offset, s, len);
+	fdt_set_size_dt_strings(fdt, strtabsize + len);
+	return -offset;
+}
+
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
 	int strtabsize = fdt_size_dt_strings(fdt);
 	int len = strlen(s) + 1;
-	int struct_top, offset;
 
-	p = _fdt_find_string(strtab - strtabsize, strtabsize, s);
+	fdt_set_size_dt_strings(fdt, strtabsize - len);
+}
+
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
+{
+	char *strtab = (char *)fdt + fdt_totalsize(fdt);
+	int strtabsize = fdt_size_dt_strings(fdt);
+	const char *p;
+
+	*allocated = 0;
+
+	p = fdt_find_string_(strtab - strtabsize, strtabsize, s);
 	if (p)
 		return p - strtab;
 
-	/* Add it */
-	offset = -strtabsize - len;
-	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
-	if (fdt_totalsize(fdt) + offset < struct_top)
-		return 0; /* no more room :( */
+	*allocated = 1;
 
-	memcpy(strtab + offset, s, len);
-	fdt_set_size_dt_strings(fdt, strtabsize + len);
-	return offset;
+	return fdt_add_string_(fdt, s);
 }
 
-int fdt_property(void *fdt, const char *name, const void *val, int len)
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)
 {
 	struct fdt_property *prop;
 	int nameoff;
+	int allocated;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nameoff = _fdt_find_add_string(fdt, name);
+	/* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
+	if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
+		allocated = 1;
+		nameoff = fdt_add_string_(fdt, name);
+	} else {
+		nameoff = fdt_find_add_string_(fdt, name, &allocated);
+	}
 	if (nameoff == 0)
 		return -FDT_ERR_NOSPACE;
 
-	prop = _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
-	if (! prop)
+	prop = fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
+	if (! prop) {
+		if (allocated)
+			fdt_del_last_string_(fdt, name);
 		return -FDT_ERR_NOSPACE;
+	}
 
 	prop->tag = cpu_to_fdt32(FDT_PROP);
 	prop->nameoff = cpu_to_fdt32(nameoff);
 	prop->len = cpu_to_fdt32(len);
-	memcpy(prop->data, val, len);
+	*valp = prop->data;
+	return 0;
+}
+
+int fdt_property(void *fdt, const char *name, const void *val, int len)
+{
+	void *ptr;
+	int ret;
+
+	ret = fdt_property_placeholder(fdt, name, len, &ptr);
+	if (ret)
+		return ret;
+	memcpy(ptr, val, len);
 	return 0;
 }
 
@@ -216,10 +342,10 @@ int fdt_finish(void *fdt)
 	uint32_t tag;
 	int offset, nextoffset;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
 	/* Add terminator */
-	end = _fdt_grab_space(fdt, sizeof(*end));
+	end = fdt_grab_space_(fdt, sizeof(*end));
 	if (! end)
 		return -FDT_ERR_NOSPACE;
 	*end = cpu_to_fdt32(FDT_END);
@@ -235,7 +361,7 @@ int fdt_finish(void *fdt)
 	while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {
 		if (tag == FDT_PROP) {
 			struct fdt_property *prop =
-				_fdt_offset_ptr_w(fdt, offset);
+				fdt_offset_ptr_w_(fdt, offset);
 			int nameoff;
 
 			nameoff = fdt32_to_cpu(prop->nameoff);
@@ -249,6 +375,10 @@ int fdt_finish(void *fdt)
 
 	/* Finally, adjust the header */
 	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
+
+	/* And fix up fields that were keeping intermediate state. */
+	fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
 	fdt_set_magic(fdt, FDT_MAGIC);
+
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_wip.c b/xen/common/libfdt/fdt_wip.c
index 2d1cac0..c2d7566 100644
--- a/xen/common/libfdt/fdt_wip.c
+++ b/xen/common/libfdt/fdt_wip.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,24 +10,45 @@
 
 #include "libfdt_internal.h"
 
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len)
+{
+	void *propval;
+	int proplen;
+
+	propval = fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
+					&proplen);
+	if (!propval)
+		return proplen;
+
+	if ((unsigned)proplen < (len + idx))
+		return -FDT_ERR_NOSPACE;
+
+	memcpy((char *)propval + idx, val, len);
+	return 0;
+}
+
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len)
 {
-	void *propval;
+	const void *propval;
 	int proplen;
 
-	propval = fdt_getprop_w(fdt, nodeoffset, name, &proplen);
-	if (! propval)
+	propval = fdt_getprop(fdt, nodeoffset, name, &proplen);
+	if (!propval)
 		return proplen;
 
 	if (proplen != len)
 		return -FDT_ERR_NOSPACE;
 
-	memcpy(propval, val, len);
-	return 0;
+	return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
+						   strlen(name), 0,
+						   val, len);
 }
 
-static void _fdt_nop_region(void *start, int len)
+static void fdt_nop_region_(void *start, int len)
 {
 	fdt32_t *p;
 
@@ -84,15 +62,15 @@ int fdt_nop_property(void *fdt, int nodeoffset, const char *name)
 	int len;
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
-	_fdt_nop_region(prop, len + sizeof(*prop));
+	fdt_nop_region_(prop, len + sizeof(*prop));
 
 	return 0;
 }
 
-int _fdt_node_end_offset(void *fdt, int offset)
+int fdt_node_end_offset_(void *fdt, int offset)
 {
 	int depth = 0;
 
@@ -106,11 +84,11 @@ int fdt_nop_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	_fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0),
+	fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
 			endoffset - nodeoffset);
 	return 0;
 }
diff --git a/xen/common/libfdt/libfdt_internal.h b/xen/common/libfdt/libfdt_internal.h
index d50c4e1..16bda19 100644
--- a/xen/common/libfdt/libfdt_internal.h
+++ b/xen/common/libfdt/libfdt_internal.h
@@ -1,81 +1,39 @@
-#ifndef _LIBFDT_INTERNAL_H
-#define _LIBFDT_INTERNAL_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_INTERNAL_H
+#define LIBFDT_INTERNAL_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include <fdt.h>
 
 #define FDT_ALIGN(x, a)		(((x) + (a) - 1) & ~((a) - 1))
 #define FDT_TAGALIGN(x)		(FDT_ALIGN((x), FDT_TAGSIZE))
 
-#define FDT_CHECK_HEADER(fdt) \
-	{ \
-		int err; \
-		if ((err = fdt_check_header(fdt)) != 0) \
-			return err; \
+int32_t fdt_ro_probe_(const void *fdt);
+#define FDT_RO_PROBE(fdt)					\
+	{							\
+		int32_t totalsize_;				\
+		if ((totalsize_ = fdt_ro_probe_(fdt)) < 0)	\
+			return totalsize_;			\
 	}
 
-int _fdt_check_node_offset(const void *fdt, int offset);
-int _fdt_check_prop_offset(const void *fdt, int offset);
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s);
-int _fdt_node_end_offset(void *fdt, int nodeoffset);
+int fdt_check_node_offset_(const void *fdt, int offset);
+int fdt_check_prop_offset_(const void *fdt, int offset);
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s);
+int fdt_node_end_offset_(void *fdt, int nodeoffset);
 
-static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
+static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
 {
 	return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
 }
 
-static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
+static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
 {
-	return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
+	return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
 }
 
-static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int n)
+static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *fdt, int n)
 {
 	const struct fdt_reserve_entry *rsv_table =
 		(const struct fdt_reserve_entry *)
@@ -83,11 +41,152 @@ static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int
 
 	return rsv_table + n;
 }
-static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
+static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
+{
+	return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
+}
+
+/*
+ * Internal helpers to access tructural elements of the device tree
+ * blob (rather than for exaple reading integers from within property
+ * values).  We assume that we are either given a naturally aligned
+ * address for the platform or if we are not, we are on a platform
+ * where unaligned memory reads will be handled in a graceful manner.
+ * If not the external helpers fdtXX_ld() from libfdt.h can be used
+ * instead.
+ */
+static inline uint32_t fdt32_ld_(const fdt32_t *p)
 {
-	return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
+	return fdt32_to_cpu(*p);
+}
+
+static inline uint64_t fdt64_ld_(const fdt64_t *p)
+{
+	return fdt64_to_cpu(*p);
 }
 
 #define FDT_SW_MAGIC		(~FDT_MAGIC)
 
-#endif /* _LIBFDT_INTERNAL_H */
+/**********************************************************************/
+/* Checking controls                                                  */
+/**********************************************************************/
+
+#ifndef FDT_ASSUME_MASK
+#define FDT_ASSUME_MASK 0
+#endif
+
+/*
+ * Defines assumptions which can be enabled. Each of these can be enabled
+ * individually. For maximum safety, don't enable any assumptions!
+ *
+ * For minimal code size and no safety, use ASSUME_PERFECT at your own risk.
+ * You should have another method of validating the device tree, such as a
+ * signature or hash check before using libfdt.
+ *
+ * For situations where security is not a concern it may be safe to enable
+ * ASSUME_SANE.
+ */
+enum {
+	/*
+	 * This does essentially no checks. Only the latest device-tree
+	 * version is correctly handled. Inconsistencies or errors in the device
+	 * tree may cause undefined behaviour or crashes. Invalid parameters
+	 * passed to libfdt may do the same.
+	 *
+	 * If an error occurs when modifying the tree it may leave the tree in
+	 * an intermediate (but valid) state. As an example, adding a property
+	 * where there is insufficient space may result in the property name
+	 * being added to the string table even though the property itself is
+	 * not added to the struct section.
+	 *
+	 * Only use this if you have a fully validated device tree with
+	 * the latest supported version and wish to minimise code size.
+	 */
+	ASSUME_PERFECT		= 0xff,
+
+	/*
+	 * This assumes that the device tree is sane. i.e. header metadata
+	 * and basic hierarchy are correct.
+	 *
+	 * With this assumption enabled, normal device trees produced by libfdt
+	 * and the compiler should be handled safely. Malicious device trees and
+	 * complete garbage may cause libfdt to behave badly or crash. Truncated
+	 * device trees (e.g. those only partially loaded) can also cause
+	 * problems.
+	 *
+	 * Note: Only checks that relate exclusively to the device tree itself
+	 * (not the parameters passed to libfdt) are disabled by this
+	 * assumption. This includes checking headers, tags and the like.
+	 */
+	ASSUME_VALID_DTB	= 1 << 0,
+
+	/*
+	 * This builds on ASSUME_VALID_DTB and further assumes that libfdt
+	 * functions are called with valid parameters, i.e. not trigger
+	 * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
+	 * extensive checking of parameters and the device tree, making various
+	 * assumptions about correctness.
+	 *
+	 * It doesn't make sense to enable this assumption unless
+	 * ASSUME_VALID_DTB is also enabled.
+	 */
+	ASSUME_VALID_INPUT	= 1 << 1,
+
+	/*
+	 * This disables checks for device-tree version and removes all code
+	 * which handles older versions.
+	 *
+	 * Only enable this if you know you have a device tree with the latest
+	 * version.
+	 */
+	ASSUME_LATEST		= 1 << 2,
+
+	/*
+	 * This assumes that it is OK for a failed addition to the device tree,
+	 * due to lack of space or some other problem, to skip any rollback
+	 * steps (such as dropping the property name from the string table).
+	 * This is safe to enable in most circumstances, even though it may
+	 * leave the tree in a sub-optimal state.
+	 */
+	ASSUME_NO_ROLLBACK	= 1 << 3,
+
+	/*
+	 * This assumes that the device tree components appear in a 'convenient'
+	 * order, i.e. the memory reservation block first, then the structure
+	 * block and finally the string block.
+	 *
+	 * This order is not specified by the device-tree specification,
+	 * but is expected by libfdt. The device-tree compiler always created
+	 * device trees with this order.
+	 *
+	 * This assumption disables a check in fdt_open_into() and removes the
+	 * ability to fix the problem there. This is safe if you know that the
+	 * device tree is correctly ordered. See fdt_blocks_misordered_().
+	 */
+	ASSUME_LIBFDT_ORDER	= 1 << 4,
+
+	/*
+	 * This assumes that libfdt itself does not have any internal bugs. It
+	 * drops certain checks that should never be needed unless libfdt has an
+	 * undiscovered bug.
+	 *
+	 * This can generally be considered safe to enable.
+	 */
+	ASSUME_LIBFDT_FLAWLESS	= 1 << 5,
+};
+
+/**
+ * can_assume_() - check if a particular assumption is enabled
+ *
+ * @mask: Mask to check (ASSUME_...)
+ * @return true if that assumption is enabled, else false
+ */
+static inline bool can_assume_(int mask)
+{
+	return FDT_ASSUME_MASK & mask;
+}
+
+/** helper macros for checking assumptions */
+#define can_assume(_assume)	can_assume_(ASSUME_ ## _assume)
+
+#endif /* LIBFDT_INTERNAL_H */
diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
index f460b0d..f2e6880 100644
--- a/xen/include/xen/libfdt/fdt.h
+++ b/xen/include/xen/libfdt/fdt.h
@@ -1,53 +1,10 @@
-#ifndef _FDT_H
-#define _FDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef FDT_H
+#define FDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #ifndef __ASSEMBLY__
@@ -106,4 +63,4 @@ struct fdt_property {
 #define FDT_V16_SIZE	FDT_V3_SIZE
 #define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(fdt32_t))
 
-#endif /* _FDT_H */
+#endif /* FDT_H */
diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
index 7c75688..c71689e 100644
--- a/xen/include/xen/libfdt/libfdt.h
+++ b/xen/include/xen/libfdt/libfdt.h
@@ -1,65 +1,27 @@
-#ifndef _LIBFDT_H
-#define _LIBFDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_H
+#define LIBFDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <xen/libfdt/libfdt_env.h>
 #include <xen/libfdt/fdt.h>
 
-#define FDT_FIRST_SUPPORTED_VERSION	0x10
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FDT_FIRST_SUPPORTED_VERSION	0x02
+#define FDT_LAST_COMPATIBLE_VERSION 0x10
 #define FDT_LAST_SUPPORTED_VERSION	0x11
 
 /* Error codes: informative error codes */
 #define FDT_ERR_NOTFOUND	1
 	/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
 #define FDT_ERR_EXISTS		2
-	/* FDT_ERR_EXISTS: Attemped to create a node or property which
+	/* FDT_ERR_EXISTS: Attempted to create a node or property which
 	 * already exists */
 #define FDT_ERR_NOSPACE		3
 	/* FDT_ERR_NOSPACE: Operation needed to expand the device
@@ -77,8 +39,10 @@
 	 * (e.g. missing a leading / for a function which requires an
 	 * absolute path) */
 #define FDT_ERR_BADPHANDLE	6
-	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle
-	 * value.  phandle values of 0 and -1 are not permitted. */
+	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
+	 * This can be caused either by an invalid phandle property
+	 * length, or the phandle value was either 0 or -1, which are
+	 * not permitted. */
 #define FDT_ERR_BADSTATE	7
 	/* FDT_ERR_BADSTATE: Function was passed an incomplete device
 	 * tree created by the sequential-write functions, which is
@@ -86,8 +50,9 @@
 
 /* Error codes: codes for bad device tree blobs */
 #define FDT_ERR_TRUNCATED	8
-	/* FDT_ERR_TRUNCATED: Structure block of the given device tree
-	 * ends without an FDT_END tag. */
+	/* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
+	 * terminated (overflows, goes outside allowed bounds, or
+	 * isn't properly terminated).  */
 #define FDT_ERR_BADMAGIC	9
 	/* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
 	 * device tree at all - it is missing the flattened device
@@ -114,13 +79,46 @@
 	 * Should never be returned, if it is, it indicates a bug in
 	 * libfdt itself. */
 
-#define FDT_ERR_MAX		13
+/* Errors in device tree content */
+#define FDT_ERR_BADNCELLS	14
+	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
+	 * or similar property with a bad format or value */
+
+#define FDT_ERR_BADVALUE	15
+	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
+	 * value. For example: a property expected to contain a string list
+	 * is not NUL-terminated within the length of its value. */
+
+#define FDT_ERR_BADOVERLAY	16
+	/* FDT_ERR_BADOVERLAY: The device tree overlay, while
+	 * correctly structured, cannot be applied due to some
+	 * unexpected or missing value, property or node. */
+
+#define FDT_ERR_NOPHANDLES	17
+	/* FDT_ERR_NOPHANDLES: The device tree doesn't have any
+	 * phandle available anymore without causing an overflow */
+
+#define FDT_ERR_BADFLAGS	18
+	/* FDT_ERR_BADFLAGS: The function was passed a flags field that
+	 * contains invalid flags or an invalid combination of flags. */
+
+#define FDT_ERR_ALIGNMENT	19
+	/* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
+	 * aligned. */
+
+#define FDT_ERR_MAX		19
+
+/* constants */
+#define FDT_MAX_PHANDLE 0xfffffffe
+	/* Valid values for phandles range from 1 to 2^32-2. */
 
 /**********************************************************************/
 /* Low-level functions (you probably don't need these)                */
 /**********************************************************************/
 
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen);
+#endif
 static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 {
 	return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
@@ -128,6 +126,59 @@ static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 
 uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
 
+/*
+ * External helpers to access words from a device tree blob. They're built
+ * to work even with unaligned pointers on platforms (such as ARMv5) that don't
+ * like unaligned loads and stores.
+ */
+static inline uint32_t fdt32_ld(const fdt32_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint32_t)bp[0] << 24)
+		| ((uint32_t)bp[1] << 16)
+		| ((uint32_t)bp[2] << 8)
+		| bp[3];
+}
+
+static inline void fdt32_st(void *property, uint32_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 24;
+	bp[1] = (value >> 16) & 0xff;
+	bp[2] = (value >> 8) & 0xff;
+	bp[3] = value & 0xff;
+}
+
+static inline uint64_t fdt64_ld(const fdt64_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint64_t)bp[0] << 56)
+		| ((uint64_t)bp[1] << 48)
+		| ((uint64_t)bp[2] << 40)
+		| ((uint64_t)bp[3] << 32)
+		| ((uint64_t)bp[4] << 24)
+		| ((uint64_t)bp[5] << 16)
+		| ((uint64_t)bp[6] << 8)
+		| bp[7];
+}
+
+static inline void fdt64_st(void *property, uint64_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 56;
+	bp[1] = (value >> 48) & 0xff;
+	bp[2] = (value >> 40) & 0xff;
+	bp[3] = (value >> 32) & 0xff;
+	bp[4] = (value >> 24) & 0xff;
+	bp[5] = (value >> 16) & 0xff;
+	bp[6] = (value >> 8) & 0xff;
+	bp[7] = value & 0xff;
+}
+
 /**********************************************************************/
 /* Traversal functions                                                */
 /**********************************************************************/
@@ -136,74 +187,118 @@ int fdt_next_node(const void *fdt, int offset, int *depth);
 
 /**
  * fdt_first_subnode() - get offset of first direct subnode
- *
  * @fdt:	FDT blob
  * @offset:	Offset of node to check
- * @return offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
+ *
+ * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
  */
 int fdt_first_subnode(const void *fdt, int offset);
 
 /**
  * fdt_next_subnode() - get offset of next direct subnode
+ * @fdt:	FDT blob
+ * @offset:	Offset of previous subnode
  *
  * After first calling fdt_first_subnode(), call this function repeatedly to
  * get direct subnodes of a parent node.
  *
- * @fdt:	FDT blob
- * @offset:	Offset of previous subnode
- * @return offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
- * subnodes
+ * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
+ *         subnodes
  */
 int fdt_next_subnode(const void *fdt, int offset);
 
+/**
+ * fdt_for_each_subnode - iterate over all subnodes of a parent
+ *
+ * @node:	child node (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @parent:	parent node (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_subnode(node, fdt, parent) {
+ *		Use node
+ *		...
+ *	}
+ *
+ *	if ((node < 0) && (node != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and @node is used as
+ * iterator in the loop. The parent variable be constant or even a
+ * literal.
+ */
+#define fdt_for_each_subnode(node, fdt, parent)		\
+	for (node = fdt_first_subnode(fdt, parent);	\
+	     node >= 0;					\
+	     node = fdt_next_subnode(fdt, node))
+
 /**********************************************************************/
 /* General functions                                                  */
 /**********************************************************************/
-
 #define fdt_get_header(fdt, field) \
-	(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))
-#define fdt_magic(fdt) 			(fdt_get_header(fdt, magic))
+	(fdt32_ld(&((const struct fdt_header *)(fdt))->field))
+#define fdt_magic(fdt)			(fdt_get_header(fdt, magic))
 #define fdt_totalsize(fdt)		(fdt_get_header(fdt, totalsize))
 #define fdt_off_dt_struct(fdt)		(fdt_get_header(fdt, off_dt_struct))
 #define fdt_off_dt_strings(fdt)		(fdt_get_header(fdt, off_dt_strings))
 #define fdt_off_mem_rsvmap(fdt)		(fdt_get_header(fdt, off_mem_rsvmap))
 #define fdt_version(fdt)		(fdt_get_header(fdt, version))
-#define fdt_last_comp_version(fdt) 	(fdt_get_header(fdt, last_comp_version))
-#define fdt_boot_cpuid_phys(fdt) 	(fdt_get_header(fdt, boot_cpuid_phys))
-#define fdt_size_dt_strings(fdt) 	(fdt_get_header(fdt, size_dt_strings))
+#define fdt_last_comp_version(fdt)	(fdt_get_header(fdt, last_comp_version))
+#define fdt_boot_cpuid_phys(fdt)	(fdt_get_header(fdt, boot_cpuid_phys))
+#define fdt_size_dt_strings(fdt)	(fdt_get_header(fdt, size_dt_strings))
 #define fdt_size_dt_struct(fdt)		(fdt_get_header(fdt, size_dt_struct))
 
-#define __fdt_set_hdr(name) \
+#define fdt_set_hdr_(name) \
 	static inline void fdt_set_##name(void *fdt, uint32_t val) \
 	{ \
-		struct fdt_header *fdth = (struct fdt_header*)fdt; \
+		struct fdt_header *fdth = (struct fdt_header *)fdt; \
 		fdth->name = cpu_to_fdt32(val); \
 	}
-__fdt_set_hdr(magic);
-__fdt_set_hdr(totalsize);
-__fdt_set_hdr(off_dt_struct);
-__fdt_set_hdr(off_dt_strings);
-__fdt_set_hdr(off_mem_rsvmap);
-__fdt_set_hdr(version);
-__fdt_set_hdr(last_comp_version);
-__fdt_set_hdr(boot_cpuid_phys);
-__fdt_set_hdr(size_dt_strings);
-__fdt_set_hdr(size_dt_struct);
-#undef __fdt_set_hdr
-
-/**
- * fdt_check_header - sanity check a device tree or possible device tree
+fdt_set_hdr_(magic);
+fdt_set_hdr_(totalsize);
+fdt_set_hdr_(off_dt_struct);
+fdt_set_hdr_(off_dt_strings);
+fdt_set_hdr_(off_mem_rsvmap);
+fdt_set_hdr_(version);
+fdt_set_hdr_(last_comp_version);
+fdt_set_hdr_(boot_cpuid_phys);
+fdt_set_hdr_(size_dt_strings);
+fdt_set_hdr_(size_dt_struct);
+#undef fdt_set_hdr_
+
+/**
+ * fdt_header_size - return the size of the tree's header
+ * @fdt: pointer to a flattened device tree
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size(const void *fdt);
+
+/**
+ * fdt_header_size_ - internal function to get header size from a version number
+ * @version: devicetree version number
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size_(uint32_t version);
+
+/**
+ * fdt_check_header - sanity check a device tree header
  * @fdt: pointer to data which might be a flattened device tree
  *
  * fdt_check_header() checks that the given buffer contains what
- * appears to be a flattened device tree with sane information in its
- * header.
+ * appears to be a flattened device tree, and that the header contains
+ * valid information (to the extent that can be determined from the
+ * header alone).
  *
  * returns:
  *     0, if the buffer appears to contain a valid device tree
  *     -FDT_ERR_BADMAGIC,
  *     -FDT_ERR_BADVERSION,
- *     -FDT_ERR_BADSTATE, standard meanings, as above
+ *     -FDT_ERR_BADSTATE,
+ *     -FDT_ERR_TRUNCATED, standard meanings, as above
  */
 int fdt_check_header(const void *fdt);
 
@@ -232,6 +327,24 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
 /* Read-only functions                                                */
 /**********************************************************************/
 
+int fdt_check_full(const void *fdt, size_t bufsize);
+
+/**
+ * fdt_get_string - retrieve a string from the strings block of a device tree
+ * @fdt: pointer to the device tree blob
+ * @stroffset: offset of the string within the strings block (native endian)
+ * @lenp: optional pointer to return the string's length
+ *
+ * fdt_get_string() retrieves a pointer to a single string from the
+ * strings block of the device tree blob at fdt, and optionally also
+ * returns the string's length in *lenp.
+ *
+ * returns:
+ *     a pointer to the string, on success
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
+ */
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
+
 /**
  * fdt_string - retrieve a string from the strings block of a device tree
  * @fdt: pointer to the device tree blob
@@ -242,11 +355,66 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
  *
  * returns:
  *     a pointer to the string, on success
- *     NULL, if stroffset is out of bounds
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
  */
 const char *fdt_string(const void *fdt, int stroffset);
 
 /**
+ * fdt_find_max_phandle - find and return the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the highest phandle value found in the tree
+ *
+ * fdt_find_max_phandle() finds the highest phandle value in the given device
+ * tree. The value returned in @phandle is only valid if the function returns
+ * success.
+ *
+ * returns:
+ *     0 on success or a negative error code on failure
+ */
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
+
+/**
+ * fdt_get_max_phandle - retrieves the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ *
+ * fdt_get_max_phandle retrieves the highest phandle in the given
+ * device tree. This will ignore badly formatted phandles, or phandles
+ * with a value of 0 or -1.
+ *
+ * This function is deprecated in favour of fdt_find_max_phandle().
+ *
+ * returns:
+ *      the highest phandle on success
+ *      0, if no phandle was found in the device tree
+ *      -1, if an error occurred
+ */
+static inline uint32_t fdt_get_max_phandle(const void *fdt)
+{
+	uint32_t phandle;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &phandle);
+	if (err < 0)
+		return (uint32_t)-1;
+
+	return phandle;
+}
+
+/**
+ * fdt_generate_phandle - return a new, unused phandle for a device tree blob
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the new phandle
+ *
+ * Walks the device tree blob and looks for the highest phandle value. On
+ * success, the new, unused phandle value (one higher than the previously
+ * highest phandle value in the device tree blob) will be returned in the
+ * @phandle parameter.
+ *
+ * Return: 0 on success or a negative error-code on failure
+ */
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
+
+/**
  * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
  * @fdt: pointer to the device tree blob
  *
@@ -262,9 +430,11 @@ int fdt_num_mem_rsv(const void *fdt);
 /**
  * fdt_get_mem_rsv - retrieve one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: pointers to 64-bit variables
+ * @n: index of reserve map entry
+ * @address: pointer to 64-bit variable to hold the start address
+ * @size: pointer to 64-bit variable to hold the size of the entry
  *
- * On success, *address and *size will contain the address and size of
+ * On success, @address and @size will contain the address and size of
  * the n-th reserve map entry from the device tree blob, in
  * native-endian format.
  *
@@ -287,9 +457,13 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size);
  * namelen characters of name for matching the subnode name.  This is
  * useful for finding subnodes based on a portion of a larger string,
  * such as a full path.
+ *
+ * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 			       const char *name, int namelen);
+#endif
 /**
  * fdt_subnode_offset - find a subnode of a given node
  * @fdt: pointer to the device tree blob
@@ -306,8 +480,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
  * returns:
  *	structure block offset of the requested subnode (>=0), on success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
- *      -FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
+ *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
  *	-FDT_ERR_BADSTRUCTURE,
@@ -316,6 +491,21 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
 
 /**
+ * fdt_path_offset_namelen - find a tree node by its full path
+ * @fdt: pointer to the device tree blob
+ * @path: full path of the node to locate
+ * @namelen: number of characters of path to consider
+ *
+ * Identical to fdt_path_offset(), but only consider the first namelen
+ * characters of path as the path name.
+ *
+ * Return: offset of the node or negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);
+#endif
+
+/**
  * fdt_path_offset - find a tree node by its full path
  * @fdt: pointer to the device tree blob
  * @path: full path of the node to locate
@@ -328,7 +518,8 @@ int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
  * address).
  *
  * returns:
- *	structure block offset of the node with the requested path (>=0), on success
+ *	structure block offset of the node with the requested path (>=0), on
+ *		success
  *	-FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
  *	-FDT_ERR_NOTFOUND, if the requested node does not exist
  *      -FDT_ERR_BADMAGIC,
@@ -352,10 +543,12 @@ int fdt_path_offset(const void *fdt, const char *path);
  *
  * returns:
  *	pointer to the node's name, on success
- *		If lenp is non-NULL, *lenp contains the length of that name (>=0)
+ *		If lenp is non-NULL, *lenp contains the length of that name
+ *			(>=0)
  *	NULL, on error
  *		if lenp is non-NULL *lenp contains an error code (<0):
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE, standard meanings
@@ -404,6 +597,33 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset);
 int fdt_next_property_offset(const void *fdt, int offset);
 
 /**
+ * fdt_for_each_property_offset - iterate over all properties of a node
+ *
+ * @property:	property offset (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @node:	node offset (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_property_offset(property, fdt, node) {
+ *		Use property
+ *		...
+ *	}
+ *
+ *	if ((property < 0) && (property != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and property is used as
+ * iterator in the loop. The node variable can be constant or even a
+ * literal.
+ */
+#define fdt_for_each_property_offset(property, fdt, node)	\
+	for (property = fdt_first_property_offset(fdt, node);	\
+	     property >= 0;					\
+	     property = fdt_next_property_offset(fdt, property))
+
+/**
  * fdt_get_property_by_offset - retrieve the property at a given offset
  * @fdt: pointer to the device tree blob
  * @offset: offset of the property to retrieve
@@ -414,6 +634,9 @@ int fdt_next_property_offset(const void *fdt, int offset);
  * offset.  If lenp is non-NULL, the length of the property value is
  * also returned, in the integer pointed to by lenp.
  *
+ * Note that this code only works on device tree versions >= 16. fdt_getprop()
+ * works on all versions.
+ *
  * returns:
  *	pointer to the structure representing the property
  *		if lenp is non-NULL, *lenp contains the length of the property
@@ -439,13 +662,18 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
  * @namelen: number of characters of name to consider
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
- * Identical to fdt_get_property_namelen(), but only examine the first
- * namelen characters of name for matching the property name.
+ * Identical to fdt_get_property(), but only examine the first namelen
+ * characters of name for matching the property name.
+ *
+ * Return: pointer to the structure representing the property, or NULL
+ *         if not found
  */
+#ifndef SWIG /* Not available in Python */
 const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 						    int nodeoffset,
 						    const char *name,
 						    int namelen, int *lenp);
+#endif
 
 /**
  * fdt_get_property - find a given property in a given node
@@ -467,7 +695,8 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -487,7 +716,7 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
 /**
  * fdt_getprop_by_offset - retrieve the value of a property at a given offset
  * @fdt: pointer to the device tree blob
- * @ffset: offset of the property to read
+ * @offset: offset of the property to read
  * @namep: pointer to a string variable (will be overwritten) or NULL
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
@@ -515,8 +744,10 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
  *		-FDT_ERR_BADSTRUCTURE,
  *		-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_getprop_by_offset(const void *fdt, int offset,
 				  const char **namep, int *lenp);
+#endif
 
 /**
  * fdt_getprop_namelen - get property value based on substring
@@ -528,9 +759,20 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
  *
  * Identical to fdt_getprop(), but only examine the first namelen
  * characters of name for matching the property name.
+ *
+ * Return: pointer to the property's value or NULL on error
  */
+#ifndef SWIG /* Not available in Python */
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp);
+static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
+					  const char *name, int namelen,
+					  int *lenp)
+{
+	return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
+						      namelen, lenp);
+}
+#endif
 
 /**
  * fdt_getprop - retrieve the value of a given property
@@ -540,10 +782,10 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
  * fdt_getprop() retrieves a pointer to the value of the property
- * named 'name' of the node at offset nodeoffset (this will be a
+ * named @name of the node at offset @nodeoffset (this will be a
  * pointer to within the device blob itself, not a copy of the value).
- * If lenp is non-NULL, the length of the property value is also
- * returned, in the integer pointed to by lenp.
+ * If @lenp is non-NULL, the length of the property value is also
+ * returned, in the integer pointed to by @lenp.
  *
  * returns:
  *	pointer to the property's value
@@ -552,7 +794,8 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -587,11 +830,16 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset);
  * @name: name of the alias th look up
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_get_alias(), but only examine the first namelen
- * characters of name for matching the alias name.
+ * Identical to fdt_get_alias(), but only examine the first @namelen
+ * characters of @name for matching the alias name.
+ *
+ * Return: a pointer to the expansion of the alias named @name, if it exists,
+ *	   NULL otherwise
  */
+#ifndef SWIG /* Not available in Python */
 const char *fdt_get_alias_namelen(const void *fdt,
 				  const char *name, int namelen);
+#endif
 
 /**
  * fdt_get_alias - retrieve the path referenced by a given alias
@@ -599,7 +847,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
  * @name: name of the alias th look up
  *
  * fdt_get_alias() retrieves the value of a given alias.  That is, the
- * value of the property named 'name' in the node /aliases.
+ * value of the property named @name in the node /aliases.
  *
  * returns:
  *	a pointer to the expansion of the alias named 'name', if it exists
@@ -624,7 +872,7 @@ const char *fdt_get_alias(const void *fdt, const char *name);
  *	0, on success
  *		buf contains the absolute path of the node at
  *		nodeoffset, as a NUL-terminated string.
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1)
  *		characters and will not fit in the given buffer.
  *	-FDT_ERR_BADMAGIC,
@@ -654,11 +902,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen);
  * structure from the start to nodeoffset.
  *
  * returns:
-
  *	structure block offset of the node at node offset's ancestor
  *		of depth supernodedepth (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-*	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeoffset
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
+ *		nodeoffset
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -680,7 +928,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
  *
  * returns:
  *	depth of the node at nodeoffset (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -703,7 +951,7 @@ int fdt_node_depth(const void *fdt, int nodeoffset);
  * returns:
  *	structure block offset of the parent of the node at nodeoffset
  *		(>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -743,7 +991,7 @@ int fdt_parent_offset(const void *fdt, int nodeoffset);
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -775,14 +1023,13 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
 
 /**
- * fdt_node_check_compatible: check a node's compatible property
+ * fdt_node_check_compatible - check a node's compatible property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of a tree node
  * @compatible: string to match against
  *
- *
  * fdt_node_check_compatible() returns 0 if the given node contains a
- * 'compatible' property with the given string as one of its elements,
+ * @compatible property with the given string as one of its elements,
  * it returns non-zero otherwise, or on error.
  *
  * returns:
@@ -790,7 +1037,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
  *	1, if the node has a 'compatible' property, but it does not list
  *		the given string
  *	-FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
- * 	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -827,7 +1074,7 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -846,15 +1093,160 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
  * one or more strings, each terminated by \0, as is found in a device tree
  * "compatible" property.
  *
- * @return: 1 if the string is found in the list, 0 not found, or invalid list
+ * Return: 1 if the string is found in the list, 0 not found, or invalid list
  */
 int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
 
+/**
+ * fdt_stringlist_count - count the number of strings in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ *
+ * Return:
+ *   the number of strings in the given property
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist
+ */
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
+
+/**
+ * fdt_stringlist_search - find a string in a string list and return its index
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @string: string to look up in the string list
+ *
+ * Note that it is possible for this function to succeed on property values
+ * that are not NUL-terminated. That's because the function will stop after
+ * finding the first occurrence of @string. This can for example happen with
+ * small-valued cell properties, such as #address-cells, when searching for
+ * the empty string.
+ *
+ * return:
+ *   the index of the string in the list of strings
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist or does not contain
+ *                     the given string
+ */
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string);
+
+/**
+ * fdt_stringlist_get() - obtain the string at a given index in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @index: index of the string to return
+ * @lenp: return location for the string length or an error code on failure
+ *
+ * Note that this will successfully extract strings from properties with
+ * non-NUL-terminated values. For example on small-valued cell properties
+ * this function will return the empty string.
+ *
+ * If non-NULL, the length of the string (on success) or a negative error-code
+ * (on failure) will be stored in the integer pointer to by lenp.
+ *
+ * Return:
+ *   A pointer to the string at the given index in the string list or NULL on
+ *   failure. On success the length of the string will be stored in the memory
+ *   location pointed to by the lenp parameter, if non-NULL. On failure one of
+ *   the following negative error codes will be returned in the lenp parameter
+ *   (if non-NULL):
+ *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *     -FDT_ERR_NOTFOUND if the property does not exist
+ */
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int index,
+			       int *lenp);
+
+/**********************************************************************/
+/* Read-only functions (addressing related)                           */
+/**********************************************************************/
+
+/**
+ * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
+ *
+ * This is the maximum value for #address-cells, #size-cells and
+ * similar properties that will be processed by libfdt.  IEE1275
+ * requires that OF implementations handle values up to 4.
+ * Implementations may support larger values, but in practice higher
+ * values aren't used.
+ */
+#define FDT_MAX_NCELLS		4
+
+/**
+ * fdt_address_cells - retrieve address size for a bus represented in the tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address size for
+ *
+ * When the node has a valid #address-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      2, if the node has no #address-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_address_cells(const void *fdt, int nodeoffset);
+
+/**
+ * fdt_size_cells - retrieve address range size for a bus represented in the
+ *                  tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address range size for
+ *
+ * When the node has a valid #size-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      1, if the node has no #size-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#size-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_size_cells(const void *fdt, int nodeoffset);
+
+
 /**********************************************************************/
 /* Write-in-place functions                                           */
 /**********************************************************************/
 
 /**
+ * fdt_setprop_inplace_namelen_partial - change a property's value,
+ *                                       but not its size
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @namelen: number of characters of name to consider
+ * @idx: index of the property to change in the array
+ * @val: pointer to data to replace the property value with
+ * @len: length of the property value
+ *
+ * Identical to fdt_setprop_inplace(), but modifies the given property
+ * starting from the given index, and using only the first characters
+ * of the name. It is useful when you want to manipulate only one value of
+ * an array and you have a string that doesn't end with \0.
+ *
+ * Return: 0 on success, negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len);
+#endif
+
+/**
  * fdt_setprop_inplace - change a property's value, but not its size
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -882,8 +1274,10 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
  *	-FDT_ERR_BADSTRUCTURE,
  *	-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len);
+#endif
 
 /**
  * fdt_setprop_inplace_u32 - change the value of a 32-bit integer property
@@ -957,8 +1351,13 @@ static inline int fdt_setprop_inplace_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_setprop_inplace_cell - change the value of a single-cell property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node containing the property
+ * @name: name of the property to change the value of
+ * @val: new value of the 32-bit cell
  *
  * This is an alternative name for fdt_setprop_inplace_u32()
+ * Return: 0 on success, negative libfdt error number otherwise.
  */
 static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
 					   const char *name, uint32_t val)
@@ -1020,7 +1419,46 @@ int fdt_nop_node(void *fdt, int nodeoffset);
 /* Sequential write functions                                         */
 /**********************************************************************/
 
+/* fdt_create_with_flags flags */
+#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
+	/* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
+	 * names in the fdt. This can result in faster creation times, but
+	 * a larger fdt. */
+
+#define FDT_CREATE_FLAGS_ALL	(FDT_CREATE_FLAG_NO_NAME_DEDUP)
+
+/**
+ * fdt_create_with_flags - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
+ *
+ * fdt_create_with_flags() begins the process of creating a new fdt with
+ * the sequential write interface.
+ *
+ * fdt creation process must end with fdt_finished() to produce a valid fdt.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ *	-FDT_ERR_BADFLAGS, flags is not valid
+ */
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
+
+/**
+ * fdt_create - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ *
+ * fdt_create() is equivalent to fdt_create_with_flags() with flags=0.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ */
 int fdt_create(void *buf, int bufsize);
+
+int fdt_resize(void *fdt, void *buf, int bufsize);
 int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
 int fdt_finish_reservemap(void *fdt);
 int fdt_begin_node(void *fdt, const char *name);
@@ -1035,10 +1473,29 @@ static inline int fdt_property_u64(void *fdt, const char *name, uint64_t val)
 	fdt64_t tmp = cpu_to_fdt64(val);
 	return fdt_property(fdt, name, &tmp, sizeof(tmp));
 }
+
+#ifndef SWIG /* Not available in Python */
 static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val)
 {
 	return fdt_property_u32(fdt, name, val);
 }
+#endif
+
+/**
+ * fdt_property_placeholder - add a new property and return a ptr to its value
+ *
+ * @fdt: pointer to the device tree blob
+ * @name: name of property to add
+ * @len: length of property value in bytes
+ * @valp: returns a pointer to where where the value should be placed
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_NOSPACE, standard meanings
+ */
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp);
+
 #define fdt_property_string(fdt, name, str) \
 	fdt_property(fdt, name, str, strlen(str)+1)
 int fdt_end_node(void *fdt);
@@ -1055,7 +1512,8 @@ int fdt_pack(void *fdt);
 /**
  * fdt_add_mem_rsv - add one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: 64-bit values (native endian)
+ * @address: 64-bit start address of the reserve map entry
+ * @size: 64-bit size of the reserved region
  *
  * Adds a reserve map entry to the given blob reserving a region at
  * address address of length size.
@@ -1158,6 +1616,37 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
 		const void *val, int len);
 
 /**
+ * fdt_setprop_placeholder - allocate space for a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @len: length of the property value
+ * @prop_data: return pointer to property data
+ *
+ * fdt_setprop_placeholer() allocates the named property in the given node.
+ * If the property exists it is resized. In either case a pointer to the
+ * property data is returned.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data);
+
+/**
  * fdt_setprop_u32 - set a property to a 32-bit integer
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -1229,8 +1718,14 @@ static inline int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name,
 
 /**
  * fdt_setprop_cell - set a property to a single cell value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value for the property (native endian)
  *
  * This is an alternative name for fdt_setprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 				   uint32_t val)
@@ -1269,6 +1764,36 @@ static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 #define fdt_setprop_string(fdt, nodeoffset, name, str) \
 	fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
+
+/**
+ * fdt_setprop_empty - set a property to an empty value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ *
+ * fdt_setprop_empty() sets the value of the named property in the
+ * given node to an empty (zero length) value, or creates a new empty
+ * property if it does not already exist.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+#define fdt_setprop_empty(fdt, nodeoffset, name) \
+	fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
+
 /**
  * fdt_appendprop - append to or create a property
  * @fdt: pointer to the device tree blob
@@ -1371,8 +1896,14 @@ static inline int fdt_appendprop_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_appendprop_cell - append a single cell value to a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value to append to the property (native endian)
  *
  * This is an alternative name for fdt_appendprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 				      const char *name, uint32_t val)
@@ -1411,6 +1942,43 @@ static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 	fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
 /**
+ * fdt_appendprop_addrrange - append a address range property
+ * @fdt: pointer to the device tree blob
+ * @parent: offset of the parent node
+ * @nodeoffset: offset of the node to add a property at
+ * @name: name of property
+ * @addr: start address of a given range
+ * @size: size of a given range
+ *
+ * fdt_appendprop_addrrange() appends an address range value (start
+ * address and size) to the value of the named property in the given
+ * node, or creates a new property with that value if it does not
+ * already exist.
+ * If "name" is not specified, a default "reg" is used.
+ * Cell sizes are determined by parent's #address-cells and #size-cells.
+ *
+ * This function may insert data into the blob, and will therefore
+ * change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain a new property
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size);
+
+/**
  * fdt_delprop - delete a property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to nop
@@ -1438,16 +2006,21 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name);
  * fdt_add_subnode_namelen - creates a new node based on substring
  * @fdt: pointer to the device tree blob
  * @parentoffset: structure block offset of a node
- * @name: name of the subnode to locate
+ * @name: name of the subnode to create
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_add_subnode(), but use only the first namelen
- * characters of name as the name of the new node.  This is useful for
+ * Identical to fdt_add_subnode(), but use only the first @namelen
+ * characters of @name as the name of the new node.  This is useful for
  * creating subnodes based on a portion of a larger string, such as a
  * full path.
+ *
+ * Return: structure block offset of the created subnode (>=0),
+ *	   negative libfdt error value otherwise
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 			    const char *name, int namelen);
+#endif
 
 /**
  * fdt_add_subnode - creates a new node
@@ -1461,11 +2034,13 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
  *
  * This function will insert data into the blob, and will therefore
  * change the offsets of some existing nodes.
-
+ *
  * returns:
- *	structure block offset of the created nodeequested subnode (>=0), on success
+ *	structure block offset of the created nodeequested subnode (>=0), on
+ *		success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
  *	-FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
  *		the given name
  *	-FDT_ERR_NOSPACE, if there is insufficient free space in the
@@ -1503,10 +2078,45 @@ int fdt_add_subnode(void *fdt, int parentoffset, const char *name);
  */
 int fdt_del_node(void *fdt, int nodeoffset);
 
+/**
+ * fdt_overlay_apply - Applies a DT overlay on a base DT
+ * @fdt: pointer to the base device tree blob
+ * @fdto: pointer to the device tree overlay blob
+ *
+ * fdt_overlay_apply() will apply the given device tree overlay on the
+ * given base device tree.
+ *
+ * Expect the base device tree to be modified, even if the function
+ * returns an error.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there's not enough space in the base device tree
+ *	-FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
+ *		properties in the base DT
+ *	-FDT_ERR_BADPHANDLE,
+ *	-FDT_ERR_BADOVERLAY,
+ *	-FDT_ERR_NOPHANDLES,
+ *	-FDT_ERR_INTERNAL,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET,
+ *	-FDT_ERR_BADPATH,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_overlay_apply(void *fdt, void *fdto);
+
 /**********************************************************************/
 /* Debugging / informational functions                                */
 /**********************************************************************/
 
 const char *fdt_strerror(int errval);
 
-#endif /* _LIBFDT_H */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBFDT_H */
diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
index 035bf75..03380d5 100644
--- a/xen/include/xen/libfdt/libfdt_env.h
+++ b/xen/include/xen/libfdt/libfdt_env.h
@@ -1,22 +1,98 @@
-#ifndef _LIBFDT_ENV_H
-#define _LIBFDT_ENV_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_ENV_H
+#define LIBFDT_ENV_H
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ * Copyright 2012 Kim Phillips, Freescale Semiconductor.
+ */
 
+#include <xen/config.h>
 #include <xen/types.h>
 #include <xen/string.h>
 #include <asm/byteorder.h>
+#include <xen/stdbool.h>
 
-typedef uint16_t fdt16_t;
-typedef uint32_t fdt32_t;
-typedef uint64_t fdt64_t;
+#ifdef __CHECKER__
+#define FDT_FORCE __attribute__((force))
+#define FDT_BITWISE __attribute__((bitwise))
+#else
+#define FDT_FORCE
+#define FDT_BITWISE
+#endif
 
-#define fdt16_to_cpu(x) be16_to_cpu(x)
-#define cpu_to_fdt16(x) cpu_to_be16(x)
-#define fdt32_to_cpu(x) be32_to_cpu(x)
-#define cpu_to_fdt32(x) cpu_to_be32(x)
-#define fdt64_to_cpu(x) be64_to_cpu(x)
-#define cpu_to_fdt64(x) cpu_to_be64(x)
+typedef uint16_t FDT_BITWISE fdt16_t;
+typedef uint32_t FDT_BITWISE fdt32_t;
+typedef uint64_t FDT_BITWISE fdt64_t;
+
+#define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
+#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
+#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | \
+			 (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
+#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | \
+			 (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
+			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
+			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
 
 /* Xen-specific libfdt error code. */
 #define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
 
-#endif /* _LIBFDT_ENV_H */
+static inline uint16_t fdt16_to_cpu(fdt16_t x)
+{
+	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
+}
+static inline fdt16_t cpu_to_fdt16(uint16_t x)
+{
+	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
+}
+
+static inline uint32_t fdt32_to_cpu(fdt32_t x)
+{
+	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
+}
+static inline fdt32_t cpu_to_fdt32(uint32_t x)
+{
+	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
+}
+
+static inline uint64_t fdt64_to_cpu(fdt64_t x)
+{
+	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
+}
+static inline fdt64_t cpu_to_fdt64(uint64_t x)
+{
+	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
+}
+#undef CPU_TO_FDT64
+#undef CPU_TO_FDT32
+#undef CPU_TO_FDT16
+#undef EXTRACT_BYTE
+
+#ifdef __APPLE__
+#include <AvailabilityMacros.h>
+
+/* strnlen() is not available on Mac OS < 10.7 */
+# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < \
+                                         MAC_OS_X_VERSION_10_7)
+
+#define strnlen fdt_strnlen
+
+/*
+ * fdt_strnlen: returns the length of a string or max_count - which ever is
+ * smallest.
+ * Input 1 string: the string whose size is to be determined
+ * Input 2 max_count: the maximum value returned by this function
+ * Output: length of the string or max_count (the smallest of the two)
+ */
+static inline size_t fdt_strnlen(const char *string, size_t max_count)
+{
+    const char *p = memchr(string, 0, max_count);
+    return p ? p - string : max_count;
+}
+
+#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED <
+          MAC_OS_X_VERSION_10_7) */
+
+#endif /* __APPLE__ */
+
+#endif /* LIBFDT_ENV_H */
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 07:46:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 07:46:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221275.382910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miXRg-0006i7-Je; Thu, 04 Nov 2021 07:46:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221275.382910; Thu, 04 Nov 2021 07:46:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miXRg-0006hz-Gd; Thu, 04 Nov 2021 07:46:00 +0000
Received: by outflank-mailman (input) for mailman id 221275;
 Thu, 04 Nov 2021 07:46:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miXRg-0006hq-64; Thu, 04 Nov 2021 07:46:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miXRg-0006b2-0o; Thu, 04 Nov 2021 07:46:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miXRf-0003pQ-LI; Thu, 04 Nov 2021 07:45:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miXRf-0004xO-Kp; Thu, 04 Nov 2021 07:45:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=VQWMP/SepqCXoQWbJkKADtTVUxq69aqMNHoCczMvhtg=; b=XwGpL/xPRCTP0ciVycKcgaj5hT
	o7IVBR1C+AKnk12lI8hTMLSHBINI9Z5p2cF5T8H1mZ+a9Dwh9rWWfGVkCH+c9SCLdshODF3msYEgd
	Fdipre/K/bEV5MOPUkracj+2rLQ2Qc4sLDFZprK24eiS4gjcobc2WL0FU4wBlsCoealE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166031-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166031: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b67f09721f136cc3a9afcb6a82466d1bd27aa6c0
X-Osstest-Versions-That:
    xen=9f8434d77859462ad98a51ec49ad8e23769d9b10
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Nov 2021 07:45:59 +0000

flight 166031 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166031/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166022
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166022
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166022
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166022
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166022
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166022
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166022
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166022
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166022
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166022
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166022
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166022
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  b67f09721f136cc3a9afcb6a82466d1bd27aa6c0
baseline version:
 xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10

Last test of basis   166022  2021-11-03 01:52:57 Z    1 days
Testing same since   166031  2021-11-03 14:06:47 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dongli Zhang <dongli.zhang@oracle.com>
  Jan Beulich <jbeulich@suse.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Stefano Stabellini <sstabellini@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9f8434d778..b67f09721f  b67f09721f136cc3a9afcb6a82466d1bd27aa6c0 -> master


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 08:08:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 08:08:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221286.382924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miXmt-0001Ef-Mp; Thu, 04 Nov 2021 08:07:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221286.382924; Thu, 04 Nov 2021 08:07:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miXmt-0001EY-It; Thu, 04 Nov 2021 08:07:55 +0000
Received: by outflank-mailman (input) for mailman id 221286;
 Thu, 04 Nov 2021 08:07:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miXms-0001ES-5g
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 08:07:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4eb403a4-3d46-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 09:07:52 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2054.outbound.protection.outlook.com [104.47.6.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-27-eCtrcNlFNFOERomWyqFm0w-1; Thu, 04 Nov 2021 09:07:50 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3774.eurprd04.prod.outlook.com (2603:10a6:803:1f::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Thu, 4 Nov
 2021 08:07:49 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 08:07:49 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0093.eurprd04.prod.outlook.com (2603:10a6:20b:31e::8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Thu, 4 Nov 2021 08:07:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4eb403a4-3d46-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636013271;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=9gcqew/cT6mEn33a5vopPSuLysDz0wbCMrM2k/usQCU=;
	b=C1szR8OeBpjVEeAN9yUR0ECVZ16xGWOMl08g2iaj/+Y6dp2CRGhU53dvuPN8FpFtxAnTti
	7QT5i6OViYymZg6OdiR87EenvH6qX3SxhUAgzMCjMAx4OBR8se6cIF/itA/Fu68oZV8OOM
	MiYlEd6cdi3HH6RBUN9PlwmXoyAYFtc=
X-MC-Unique: eCtrcNlFNFOERomWyqFm0w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=X7BEDNpnlY3V4pYZBlFbg7eZeEH6kIHaurvjZa+h/Ab4Vs0GmGxZnpqifgldxHmRYZX33UkBIL85QTpg4ONbUnDieA2KdXBsPTVuVixciZTNd+95TXSRwhHVWs7DFfPFQUUNFyT7qEaVEgjl6izprwsCRgo7U1CGt7sKqzpmTBgKeCwZO+wK1WHhpYFhG7XhD5KJEHoB8k3iZNqeU0LEAV/W6s9ZMproDvbueNruf81Yko8DvuhdzFv07r8H5GLWWtEk6bs6y+E0cxK/gIIFV7/toaoM086fyHZAuVt6OMVDujbN/t/8rDgy5qj48M/+2+a42C/4udpAr8e3regalw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9gcqew/cT6mEn33a5vopPSuLysDz0wbCMrM2k/usQCU=;
 b=AwvyW7Pltg7di158DlYnW2QyTeBEsqGrLVgmvRbCUHoYPouD+3+/oRetL3KGneoa4DfjcYafDdm50947QS1egfs4J/jjHN9tC2/Nl/+KMvAslw3hG3IFpA1fAs0BucpY5tkcoGd7oFYeS90i5QqaEQ0QubDefY1+FTR1YCvD4MQTFSdw0k8TSug2iR6aR7PuZHnlGFxlT4SMocQXhDenI+VoI1owXM1y+Wos/FoX+Obuicc9MBACB4wb6DnXV39PGvKHNx6ZjPqBZLrl7bycW9l5tublucWTVaBZB1rPgTdpENjFCdEt0yVlWFoa9XrHag2/NH+uhBHwRCvllswcOA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
Date: Thu, 4 Nov 2021 09:07:47 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
 <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
 <24962.46376.136195.463274@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24962.46376.136195.463274@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0093.eurprd04.prod.outlook.com
 (2603:10a6:20b:31e::8) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 392158e6-4844-4362-541e-08d99f6a3161
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3774:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3774A65854E71D915F0C765CB38D9@VI1PR0402MB3774.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1jPz7Py144gspYPOQl1zQwnQYCpbyn8csbbazK22tHdIHwlBZBMTln2CqnToL+TAOShlqEGvH8cyJJ9DBt96JJuACcbMX1RQzYqxYN7hZxKcK2CApBhieG9sEvQgEvI84ZLMOTdmzlEUlNq9YGToR+Rst9i1dhSsD/q6xPPutBcTccHeqtXRoeaiVUzwQWZNNYgcVbGp0rat803JZXxfsDVzczGMjyWZnHmiZtWGwjI/+obHokw+4wBOVynzV92sjBFNGsr65nnIVVpOOisMR/HgWFtSVxxpERZDx48uhPRYAtPchZpmt/u68KuJxcIxwknKRAQ/VPSGZI7HNF3ihJwZf6U/WCuA2ilwiY2RDuxcYJ6ICAUhwvT2o+rpJyNnNE7EtJB3RWLfOsFSDHiZIrzY5eUvyR5tyrzd5Kl99CREqiHnUBpYFk3JcnqQx6taic+52aIdPTgaptQLdpcWeCi4dJxAKrUaQF4RvWiJnj+SDz4lPAf0vxd5OWe+8tDwgwORrUMgLWnnQiNXQkNevYj5YiYHLK6qgUz/z3qSqel4dZssZyVV4fhrrW5FnprqhzZXQ37IucUDYqxx5M4xnQSgaEF7Mn42TSfxKt0rwcx4lZY8OZ0trGWuYogdfNEkiUVE6h7N5voSgF5ouOsjJZJ/VeiXCOqK/AEkiBM1qJPRhIqgDPPkii0GIWoWaYL5ud9rucizsqqsspYC6A++m0pHIhpToizfuXBtlVaIlkU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(5660300002)(2906002)(38100700002)(6916009)(8676002)(508600001)(26005)(53546011)(8936002)(31696002)(956004)(83380400001)(66946007)(66556008)(66476007)(186003)(6486002)(36756003)(31686004)(54906003)(16576012)(316002)(4326008)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S0tZTUJnMDl2OGljOUJQYlNpVDFkZlV3Mkt0Z1pQdDJHM2wyb2tFMEk3Umk0?=
 =?utf-8?B?cCtKeS8xeWJqZUJPWGZwQmF1S01qRmFudUM5bkYzbUt5Uk1KZ2F4Z1hJdDk5?=
 =?utf-8?B?cU4wdVZ1QTNsU2w0MVI5SUtIV0FPbDN3MkM4TW9rRTVSTlcrNVRSd3Z1aGZs?=
 =?utf-8?B?amVHYllFZmdNUUJ3b2o0dTlPVUdhN0sySGd5NWx3TjAvZXJQMUdnTEdOZE5w?=
 =?utf-8?B?UStnNCtKWUc1eXIzTjBEd2R1c1owMWlFWWxkeVgrOVZ3RlR2M2lwakhWMjRH?=
 =?utf-8?B?aXFXRE9uN05TS3hpR3R1WXptUTZXK0NvRWZ5WkI4L1g0TFE2bWFiT2E0UURF?=
 =?utf-8?B?YWR1VHZacEx2QWxQRVF4d2o3RDRPOTRyWjBoWlV0dGNlK0hBR3NUL1RHWTlB?=
 =?utf-8?B?MmxMTUdKN1g0OXo3NGVuR1JkUDczYnRzUGJmRktJdS93NTZpNnEvcUh5WmpE?=
 =?utf-8?B?UWI0ZGJsdDVaTyswNlN5VFhmQ25ZeFBTRGVpdVVwWnk4T3hycjJwd2xCRG82?=
 =?utf-8?B?VVN2UUtyN1NXWnBmQ0hjZTg3ZjlPQVZaYmp1RkxQUFN2dXpmbUtxZ2ZtTWFC?=
 =?utf-8?B?YXdVSittYzQ2L252cU5ORXgvQ0p3RHlGN3loaEdiSERLY2FObFl0MmRTVll1?=
 =?utf-8?B?amg5U016QS9YYmFSQ2hOb21DTnpBclhvaTlsWnVKbnk5bEdFd2RoZ0libnBH?=
 =?utf-8?B?ZldaYXEvRVE5KzdNc3FxdStteWowVTRpQU5Ya2VpQ0pqbTlnZE1KVlRZTkVv?=
 =?utf-8?B?bThCZlJ1WjhLcFJhNm55dUc2TVRmbTVPcHRENW1vaUo2VVI5aUJxRnVMMFZU?=
 =?utf-8?B?SzFQQUdGUHNkdjc5S2JwbkRxeDdac1lEOW1NdVlKakZrdlBnSXNJWWtscXE0?=
 =?utf-8?B?Qm5oNFJMTVZDeTBVT1JpU1h2dGM5MjhkdThNOUdZTWM3d0Ira1RzMy9ZN0R0?=
 =?utf-8?B?YkFuYUVsaVJmNkRsd0xrSG5UKy83ZDN2U3p3OGgrMWxnaENSQWhtUmlzUWs2?=
 =?utf-8?B?T1Boc1VORkN5enI0YzI0dTRUWVJlR1puMEUyWERLL2JFQmpuNXFlU0ZrcFNY?=
 =?utf-8?B?M3JxN1hXRVluV2cxd2txZE4zN0FubUplZ1VYYmRZa01DbVdvemRqYkc3WEpY?=
 =?utf-8?B?aWlDUnhmdGRSSDF2cGk4TWJpWk9TWXNWSGd6dGpCeEpkaE1sbFNWaTJQS3Va?=
 =?utf-8?B?RHJ6QnR5UDJKMkhIZ2doYW9QTFpkUFYvTVhkSS9WZXJ4WVVTWkszZTNCZ0d2?=
 =?utf-8?B?MWI1YXpCbVlGZkFGdXVVbmREcEd2Z0pJT0o1RXQ0YmVTMWJIZ05leU4vSDU1?=
 =?utf-8?B?aU9PRTBYczhSNUFXNGEwM09rQzNNY05TenAxOVh1TXJLV2Vyem9tZWlBUjZv?=
 =?utf-8?B?YjIxTHFXaVMwT256dXBRTlE0MDBXR3Y2UjlHd2hBdlZydGRZVFNXTVZDRUZp?=
 =?utf-8?B?RHFhTEpaS1A2MncxdWtQREFHYnpnNEdXZTk0TDMrdE5HbklXM2pxeURzd1Rm?=
 =?utf-8?B?S1k5ZXpKUlJFUTloZHNvZldxd2ZrVG9iNUYvZTVrMHRFdkFxRFA3T3dpSWgz?=
 =?utf-8?B?Q0hwUHIyVTA2cktoZUY0WXpGT2ppUklkWm90aG94b3EzNjFPeDBhMy95c05N?=
 =?utf-8?B?OWVHazF0MmE1cDhXa093QTNYQWp1Qkhjb3RyR2VFM0xVeVN6WE5KRGZZVDNk?=
 =?utf-8?B?SXVqMGkxajNlcFNTUzBlYTltUGZ6OFFLRk5Ic2tkSWVCSGE3OUR6cXFtbUFm?=
 =?utf-8?B?Tko5aEoxb1RQVGFRNDJkOWExNDNtNURVZTBCVGR0QVVveFdVa1NkSHFXS25k?=
 =?utf-8?B?VHkxNnRHb2lPY1pMdjlYbDJKa3p6VlE1ek5WVnhVaW1ObHlSNWpVSUZoeGpF?=
 =?utf-8?B?b1VJZHVHSXVQNC92MDdLcjRUU1hlaE8yMklGWXc3MXU3ODBhekdBSk1qSnJN?=
 =?utf-8?B?S3dIcXAzbmEyenlvaXVpMGN2SXllNVF1NFQ0ODl6MmY0NnBya20zYktTck1V?=
 =?utf-8?B?emZ1Sk5zOWxQOFRPWmI0MUlsZHIxNVJYYk9rRHcvd0Q5UTIwU1BXTVJ6cThC?=
 =?utf-8?B?enFKQ082Q1hpakF4NFpYZ3l5RHJiUTJVTEN1SWx6NGh5VTlYSjVnNzdWb2FP?=
 =?utf-8?B?QUNUYi8vY0ZkZFAyNmtLeHVBblBhL0xyRXRkaUtLZVBaazQ0UDJyREtrbTVL?=
 =?utf-8?Q?NwMDSGQWXGIVR4adWZ5nr5w=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 392158e6-4844-4362-541e-08d99f6a3161
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 08:07:49.5376
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZJHgyD7gAdbBlpYewlDkIUTb2ejoA19yXULIZlYGx2ijJJqW6xlKx37NmObA2uhVXgwuhIdr+Ep7E+/jpef09A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3774

On 03.11.2021 17:13, Ian Jackson wrote:
> Jan Beulich writes ("Re: [PATCH] x86/passthrough: Fix hvm_gsi_eoi() build with GCC 12"):
>> On 27.10.2021 22:07, Andrew Cooper wrote:
>>>   if ( !((pirq) ? &(pirq)->arch.hvm.dpci : NULL) )
>>
>> I disagree with the compiler's analysis: While &(pirq)->arch.hvm.dpci
>> indeed can't be NULL, that's not the operand of !. The operand of !
>> can very well be NULL, when pirq is.
>>
>>> which is a hint that the code is should be simplified to just:
>>>
>>>   if ( !pirq )
>>>
>>> Do so.
>>
>> And I further agree with Roger's original reply (despite you
>> apparently having managed to convince him): You shouldn't be open-
>> coding pirq_dpci(). Your observation that the construct's result
>> isn't otherwise used in the function is only one half of it. The
>> other half is that hvm_pirq_eoi() gets called from here, and that
>> one does require the result to be non-NULL.
> 
> Can you (collectively) please come to some agreement here ?
> I think this is mostly a question of taste or style.

Personally I don't think open-coding of constructs is merely a style /
taste issue. The supposed construct changing and the open-coded
instance then being forgotten (likely not even noticed) can lead to
actual bugs. I guess the issue should at least be raised as one against
gcc12, such that the compiler folks can provide their view on whether
the warning is actually appropriate in that case (and if so, what their
take is on a general approach towards silencing such warnings when
they're identified as false positives).

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 08:15:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 08:15:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221294.382935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miXuN-0002ij-Ms; Thu, 04 Nov 2021 08:15:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221294.382935; Thu, 04 Nov 2021 08:15:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miXuN-0002ic-Hw; Thu, 04 Nov 2021 08:15:39 +0000
Received: by outflank-mailman (input) for mailman id 221294;
 Thu, 04 Nov 2021 08:15:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miXuL-0002iW-Vs
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 08:15:37 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 616d4661-3d47-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 09:15:36 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2052.outbound.protection.outlook.com [104.47.14.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-1-kQWTqm6vMRyEri5tWctLiA-2;
 Thu, 04 Nov 2021 09:15:31 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5902.eurprd04.prod.outlook.com (2603:10a6:803:ed::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 08:15:30 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 08:15:30 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR3P281CA0021.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.5 via Frontend Transport; Thu, 4 Nov 2021 08:15:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 616d4661-3d47-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636013732;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=rrBAnLWCEJ+V7odonJowqC18zN8nm0yaxFTMbA0KT8M=;
	b=QoxJdwbAJnz3qtYk5IWYaBNirtzIT+pgtUBIAQSI/r5pYRkhmOV834cGz+UJ3DFvF9CXPS
	gwY2fwwIN+4mXBLyxz8b7RabjSfYlMcXHcpqOAQGPt15Icc+7H1K2RZhkf4uoMTHiEluWt
	Mj3ZbX+x7/A1NN43FYXXS3ae9Lbsen8=
X-MC-Unique: kQWTqm6vMRyEri5tWctLiA-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VmzyU3D8wwAkpsB2JaIdnI4duXWrewat7mAACivE199ChU4olo0BRa2w/CSEqnuyZIfHvtAcK03rQr0jIly5CtwpXVyXDpMZGAcXTuhCpwFzvTNdIoEpUOcarnwr28p1+fa3Vku69htMRbs9HieaFCk5OG8Q0EqgVHLvlCxFOn108tOIYeMBQQdvYg2lrHleIiG/QboVpbWrGtc8iLj3grN0eMXHb4+d7dgBxJlIu4BJVpMiAsPV6iUO6hazwgcjCyawYrsigyrixGHcvPJgBpBmNCLznLnS9c5uodhWps2+nwKP18VmqhYcgw27ByqP/zk90wau1UGw1B6jBryMwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rrBAnLWCEJ+V7odonJowqC18zN8nm0yaxFTMbA0KT8M=;
 b=elI2A41vmyhUQWpmsnIYVkBulgc6s7VDDoG9rEUAriwvGPFuCJhAqYVOFWcvgZkTilrmabZSqnZl/9GhSjljPqmBWGGrx5Hq+M9EJjlBea+6/mIJBjrOe3G9EeRO6kyqPSlP6Sqf+nRNO0Tw3h0WDnRdQSD4la84THDHX7M9ioV1ZzoDui5U7uhjpgqmxrz65oBl0+o7Dg4dd9TGNjSI++IWF0uY4EkLeNdYJemN/jvFL+xGtchsIhlKMUXGUq9MTFt9KkJ4lyQLB9OF944LYLpWDxYbRZPxIJK+K8F2wOFoBMuUcNQ784iA8Jrb8p3R8jIi0Z0G7EFN+gkYBveYlg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1d65c4a1-129c-c9ba-15a3-6780c3c8d9a0@suse.com>
Date: Thu, 4 Nov 2021 09:15:27 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 0/3][4.16] x86/IOMMU: enabled / intremap handling
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Paul Durrant <paul@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
 <a51d6449-caba-8a67-3c11-b593574f3839@suse.com>
 <dde21f84-861f-9c68-5e55-28f5bf407aa4@suse.com>
 <24962.46734.824520.805708@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24962.46734.824520.805708@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0021.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:1c::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0f3f54b0-c441-4092-6176-08d99f6b43f0
X-MS-TrafficTypeDiagnostic: VI1PR04MB5902:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB590298BE6AF52DE0C441C2EEB38D9@VI1PR04MB5902.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	DpzBi75+Z/M9LlgZv38+8GG0+KBM01L/nBVWDiGPMKj2Lc3vVQUnvRxTRM4c8Na+VTe1KHpxBAtD+iT2/4MW/Ndzq31g/beAEJv6hsN0+l3K6T6shhH5MsrkwXxfgD2xq5dsBYjl/pm26ddV84pIB38Fv4M+u2ZFxKVZ9SlK7tHC/IuUPVZUFtS5jUVfVy7vz46E/qbnEAxOmLEQTcSmlZjmtBEGGTSu1ZqCQ68c/Th6p1KpvbZRhOO76aBV/Ath3V+bZpq0U8gjN3mqALFTOMEQi4mUtmWi+D1w/k0duxsmkNyxlszpuj4Als7wLg57CvGiUkSknjpIrS6gDHXT36btyyygSlTvgkU/ps0MCHnglaPRYNwKUo23r3dWjzKwho1TF97NSh/bxQrEzS6SuhDFsEn8o5V+7bAgQyg/xkmSGxHjxRQupSGOPRpB8OpMIkw1LFkrl+MIYfPiBE7yWe5+HZW6E8wKIJmvC8VLIEot8lUUdas7lY9or7h1HzZ8FIGfBEcwzyxlH8IpTNTT0RrfUnd4SC7WJ1RyBKybFlnV/jGjsEJV1koXCxZDIvtDldP/sfXXYNhq7usZ2hdwWtQqU1NmL64DGacV5IUvf8UJDEHcgk8/nAyoWfqDmfqU1QSv5ukMfsFg2xEFRupS+txYCfbb2yQrxet1ejuMATqjqWMzei5OXHY0Mtxw5WjK3QEVwGGpvPWMxLes+ipKs5Mal3fg2PtzwZdl4bo/keE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66946007)(66556008)(6916009)(66476007)(508600001)(86362001)(53546011)(8676002)(2616005)(5660300002)(31696002)(38100700002)(956004)(16576012)(83380400001)(31686004)(2906002)(54906003)(186003)(316002)(6486002)(8936002)(26005)(36756003)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YlR5UzBodjd6T3hYa0NEUTRCSTF6VnlzZnRlb3JIWXFlamFsVnFYZTY5a1lG?=
 =?utf-8?B?K0w4R1NJWW4zS0VrWFRQVE1ZeWh3V1V1M09sWEhaRTczZHJNOEZNMXg4OGJD?=
 =?utf-8?B?Q3Irb1BLOVlHNnNhd2duS1dIaVlXUS9uS2pQQUxCZU1XMWtHZEtpNW55M0xh?=
 =?utf-8?B?S2pOdUFlWmgvQlV3U3ZNQzZNLytrR3lqWjQ2ejk2Z0RkVlVvVExFbGlNemsy?=
 =?utf-8?B?RVFKRFdmQllrbGtlTGoxT0EwUHllY2JzOUxRVCtmcGhXb1UvT0VYaDF3QStx?=
 =?utf-8?B?S1hMbXZvbHJULzRNSk1naU16THdhUXZ0Ry95d2FLK0tTZW82ZUdGN1JpL0t3?=
 =?utf-8?B?M0ZaekJUbTJCVjQrVWxSeHJVeU1zWG5RYW5zTjh4cjg1UmNvUndKVDhyL2NQ?=
 =?utf-8?B?VGpkWm9QZU9kOHNGL1VGL1J3ZG5GSjlpcTR4OTR3c1VReFBDK3Z3eCttMlhL?=
 =?utf-8?B?Mk56WWVDZGxhcDM1aGdmRVVsOFI4enNPQS8ydURCSUhHaDZ0SkJFZFlaWkJC?=
 =?utf-8?B?ZGJZa2E2QjZQN0ZLYzV0eHY1MG45SW9GMVJ2VjFzQmswczFBYWtjMGNtRFcv?=
 =?utf-8?B?WUFDUU9VNyt0MkRHLytZUTByMmNna0pxWmNheWFqbkFSNk9rMFZUTDE1Q3Na?=
 =?utf-8?B?dlBzbnA3dW9zM0U0Y1p2Qzd3R3FqS3YvQ216cHJ5L2ozNGlFUkhSS2dkVXd3?=
 =?utf-8?B?emZydzZpRlJpaGlOakFYVlZhUmx6Z2VSdlBJYklVUXYvYjBqbUtvN2QwYWdr?=
 =?utf-8?B?aSt4SkdSWGJEWEVhU2RYcGN5QWZxQnhYSVZnMisxWkdiK1VjSFlETW5NVFZF?=
 =?utf-8?B?OUoxZ0IvWk00VHJ0clV4T2FEZ2cxc0ZiTjhXK0JVV0sxSEdQMk9mRVIwM0Ft?=
 =?utf-8?B?bHZ6dXI0T1d2ZnFqWk8zMUZZY1JWbkErSWx2eWlYRW5tZzFlbWY3OGdjRnVH?=
 =?utf-8?B?eXMvcjJTcEw2SlR1b0xUTzJpRHVjT1ZWVjlaT05zK0wvTVJuMVhHSnlpTzVF?=
 =?utf-8?B?RVZxTGRmc0pib1ZUcFJ1VDZoSVkzdWVjU29RTVRDWDRVTndFNmNLYVVEZE43?=
 =?utf-8?B?c0NhL2UySFFIeWtsQzFNL3BmS0tjTFBIZmZMYWJkNC9xRGltYmZtT21lbEsr?=
 =?utf-8?B?cHN3eCtDWXIvNnRKekEvc2NLS0hmU1k4eGI5SFp4Yk9RWGVBd2xRZC9sSk43?=
 =?utf-8?B?TWxJTTNRR2MvZDR0OWQxcGhsQ0M2SXFTaTFhWktBQVAvRVQwQ05JTUlyVTJn?=
 =?utf-8?B?ZGVZS1hGem9tVlUwRXp4SlJ0TXNLOWMxUmZ5bzREM0xvNHFZWlJxc0hiVmpU?=
 =?utf-8?B?ZWxGTjBxN09uRUNHQXR2cmgwekhuQUk5VmFFTG9hSEg4OHN6eVhCc0V3NHdI?=
 =?utf-8?B?aGZsUnp3MnNLYjJsdFBITjZyMFA0clVvdHJLejgzRlczLzV3N2h5aVNrMWFn?=
 =?utf-8?B?Rzd3SjlQTnNoRG80UEpNZDVBTit1d3kwcG42YThOaDB0NUxERS9rejBId2hV?=
 =?utf-8?B?ekxHcTlFSWhiU2VtOFZ3bjRGMS90Tm1nNlgyR1YzZC92TXQveU5wUXdRNjdT?=
 =?utf-8?B?NmJVZ2RLdzlyYnlqdnFtYVVkSVQ2Mkh6cFlKVkpYQTVXVHlJSEtZOERwaWZX?=
 =?utf-8?B?OTFnTDlmaVl1Nm5CZnVtMm1aL1ZrL3dDendKM1RxVVZmd0MzeE1LajhpU1Rt?=
 =?utf-8?B?ajRkdG02R21NU0NPdHV4alpZZUphWWJJNlhEUTVadlphRWVwdGE3c2U4TzMz?=
 =?utf-8?B?TjkrNzBqL01mbi8wbTlUb3B2a2cxWDIzQVlQZ2RGT3k2SDgzc3pxc2JQc2VQ?=
 =?utf-8?B?ZHpPU2RwcVZLODZoNERxNHRrYUJmNHFMMTQyRm5hVW9DYVd2a0RFYlJha01u?=
 =?utf-8?B?MmZHUTNXa05mV0JNUTR6WWYvYlprbytIZ0c2L2hKNVVGQll5Yk9XL3ZZZ2RN?=
 =?utf-8?B?N0l5ZkhmSHgrdkJCcTZicGNZMDROVVJVNzJPNDJSRzBPRVR6S0hkRFNkQ0tw?=
 =?utf-8?B?Wlg3eUxzNHI3OUNXRDFrQURhTmVXYTV3NUJGbks1TGFLdnFKVks0RFhBOHFL?=
 =?utf-8?B?RlJ1bTMrdjFaaytnQWdIVllJYXVGVlVpREV4WUQrVWlVVUtkQVZYdlFwSkxt?=
 =?utf-8?B?Y3JOQVg5WlRpTC9nWEl6dDdzZVp1d1dLVzAwdVpVZmlwTTc2cXZta2F2YmdG?=
 =?utf-8?Q?f+R1aLMr9DuKmurmJSpfkEU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f3f54b0-c441-4092-6176-08d99f6b43f0
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 08:15:30.2698
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: s6qRRebEw30S0q90YyiRqTR6yoxZLd6JYXcFdYQojmRPU6Hw62mFXv20ZjNOVWdoTQoA/NsRgB2XOiy3ZASAcA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5902

On 03.11.2021 17:19, Ian Jackson wrote:
> Jan Beulich writes ("Re: [PATCH v2 0/3][4.16] x86/IOMMU: enabled / intremap handling"):
>> On 02.11.2021 11:17, Jan Beulich wrote:
>>> On 21.10.2021 11:57, Jan Beulich wrote:
>>>> In the course of reading the response to v1 (patch 1 only) I realized
>>>> that not only that patch needs further adjustment, but that also
>>>> further changes are needed (and there's likely yet more amiss).
>>>>
>>>> 1: x86/IOMMU: mark IOMMU / intremap not in use when ACPI tables are missing
>>>> 2: x86/APIC: avoid iommu_supports_x2apic() on error path
>>>> 3: AMD/IOMMU: iommu_enable vs iommu_intremap
>>>
>>> Ian, while we further discuss / refine patch 3, the first two have the
>>> needed R-b, but will now need you release-ack aiui.
>>
>> Seeing your reply on IRC, here an attempt at a release justification
>> (the patches were ready by Oct 29, but no-one cared to commit them
>> in my absence, so I thought I'd get away without such a write-up):
>>
>> Patch 1 addresses a regression identified by Andrew. The main risk I
>> see here (which has turned up only very recently) is disagreement on
>> patch 3 which imo has an effect also on what patch 1 does, as to the
>> (non-)effects of "iommu=off" on the hypervisor command line. This,
>> however, is not an effect of the patch, but pre-existing behavior.
>> The behavioral change (in this regard) is in patch 3, which is still
>> under discussion.
> 
> Thank you.  I also went to the list and read the thread there.
> 
> Patch 1:
> 
> Reviewed-by: Ian Jackson <iwj@xenproject.org>
> 
>> Patch 2 corrects an (unlikely but not impossible to be taken) error
>> path, supposedly making systems functional again in case they would
>> in fact cause that error path to be taken. The risk looks low to me,
>> given that two function calls with previously assumed to be
>> identical results now get folded into one with the result latched.
> 
> This one also:
> 
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>

Thanks, but your reply leaves me a little confused: Your use of "also"
may mean R-b for both patches but R-a-b only for patch 2. But I could
also find a variety of other interpretations, including that the
first R-b really was meant to be R-a-b (which otherwise I'd need on
top of the R-b anyway). Please clarify.

> I think, from reading the thread, that patch 3 is not targeting 4.16.

Correct. The other related one now targeting 4.16 is the separately
submitted "x86/x2APIC: defer probe until after IOMMU ACPI table
parsing". But I can see reasons for you to prefer to have that
deferred.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 08:56:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 08:56:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221302.382946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYWs-0006gB-Ia; Thu, 04 Nov 2021 08:55:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221302.382946; Thu, 04 Nov 2021 08:55:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYWs-0006g4-F7; Thu, 04 Nov 2021 08:55:26 +0000
Received: by outflank-mailman (input) for mailman id 221302;
 Thu, 04 Nov 2021 08:55:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miYWq-0006fy-Jy
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 08:55:24 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id efe5d2b3-3d4c-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 09:55:19 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2110.outbound.protection.outlook.com [104.47.17.110])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-33-N9zeJZk6MuiQNh5n33aF3A-2; Thu, 04 Nov 2021 09:55:18 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4848.eurprd04.prod.outlook.com (2603:10a6:803:55::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Thu, 4 Nov
 2021 08:55:14 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 08:55:14 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR2P281CA0020.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.5 via Frontend Transport; Thu, 4 Nov 2021 08:55:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: efe5d2b3-3d4c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636016119;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ShUlOTLU116Krk8rATLYXHFG9Lxg2GMVu6mfRYYR3XU=;
	b=b7lmQt3PqRgh4UllOBr2rJceQdFXw6SIGVIVk7jligY28oT46CHRxVcJVfi7NXO6na2qJv
	BgpNhEqYNszE7GUP8MIIPuPXGcrTNxXKuUYkZ1Gn3DarAPxO+QsjO5OnqSi06rCDA6TvBk
	VXx08jOr67CygfkqK2lOPI7ta0j7JR8=
X-MC-Unique: N9zeJZk6MuiQNh5n33aF3A-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OTquDklSdtNjM2D9MelTC3a7qHrY+hHA2VurmF/g4iLosc4DkSLDnc/DrM9xVWHTpKQr3n98SA1GWCNj8m1YSzT/ETkqIoj5P0E7ucHhBiJpqsNunJpA4tkudKsgfkU7DDrAqCTF/Cs7MWMpSCM3oGLjzisUsngUB4waMhVE1mi6ZbD9JCiyO76ZQHZ/yGQWZKunlNpXnv269HlNXWjbCOF/6dChABfCsNMFY2/kliNUnORRU9s5kVs2HD9mtLJeuFOY+CvimHctbDQusVb6rqy+aASjezaunASv9IRW7M7JDBz3s96PHke3CX5m/tAPI7swQrNyMxlaoEt0njKBGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ShUlOTLU116Krk8rATLYXHFG9Lxg2GMVu6mfRYYR3XU=;
 b=HS7yGQmiURDvKIdtv91PIQNa4Eu7/2ZolTXWB/H/Z3VOfLPWtW4q8VtxEmDldg+vw3rAMMPWJKCdSBsQpP4NUpWM5KKmKoA50k9pXZEQbMyO9E9DCh7wL/PwJz0yZ/KMg46U7e/6b5GF4q9zwAk2iEakRJXD44w2X4bEYjlctK+X9zMA8f3hA6FLv3f70cWxTtkGDBmsjIzpft1eDDvC5QkmckLcpcEtaEw8h+gnYKnNCXVy1vPdcuTKMqQ90iju5Fzw3dYAMLyyajueyC9db13JUhcWykQs+cSTaqf6YvALQx5dguXtJNBqgkQFlVHf7+OrgJI3H6aaW0nUZKeJUQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e50141eb-f776-4b8d-024d-709614143ce7@suse.com>
Date: Thu, 4 Nov 2021 09:55:03 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 v5] gnttab: allow setting max version per-domain
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211103145719.96162-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211103145719.96162-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0020.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:14::7) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 54bf8578-b531-464a-8d5c-08d99f70d0e8
X-MS-TrafficTypeDiagnostic: VI1PR04MB4848:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4848A0C9BF382BBC5B88624FB38D9@VI1PR04MB4848.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	lg+DsdsPRDKVcGUDsoTn60PyaAiAC6TYUGZRrcn3Yj5a9OOX0m7PGUkFa8tOjmNK9roCHJRXvlAvUUCHM6r1M92QSviaW8+ySaVpcckQYhy2lxQ2HZdKK8lSmwJyjBhQYdI5UCr+yQ5PtjxyIfC/4MR4Q7oWP+PRwkS2HvKti9ZJRLEmvCHavHYr09assT/f0S2KHHayOyAOkE42imMlo72eikXFwTw0MUEtYoYFzY6wwNcMzort8jEwrzeqVvaguu9w+eCAyayS/gGzX14vkV1deta4hvT+wJU5Rewx2C9niMvNKncygLU5E7Mw63j5kKmlQ3b3rKIe1uTd0aMvvKTJwjuWyRYKK9WfR3dKdsBEH/cY+/AfNdx9ZKa0xiu6QBkVK4b/h6dR57C08M70y6k7lQmJ7WjATc0t+pj+DcLLKoh87Vd4t94XH9lgZvqpRmO3i/IRFr+U1EMOK4LQAv95dlpSOGQTu4b2/4jBAC3cRhtOoTS31c3e6Hcux+hwsbx17/gcGGZz89sbWkESuBmv8WG3LLxVIziVXPOEElijgSpOTP0/KzCW0LhtM+nC94UohP3pJ3tRlOVLRm3OtXf82NNmt9P0WjB8ftlvBpcHyyViDZCGwX5Hl/m/sBA6WRCY0ndSWnpkekmvYX/QWne5DYl3iazpFfWh33+A3X2TyR1FZCEIf0GTwbKF0diX0O2oR6mJnsxrUh41sWLQHc6HraWq1JbRtZbogK4MHIo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(66556008)(186003)(66476007)(8936002)(5660300002)(4326008)(36756003)(53546011)(66946007)(26005)(86362001)(6666004)(16576012)(316002)(7416002)(31686004)(54906003)(2616005)(2906002)(83380400001)(8676002)(956004)(6916009)(38100700002)(31696002)(508600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eTdLS21oSGgxaHIzS3BCK3NsQVBjNVIramRJMGFhbS9UNGxRbDRhTGlTd05s?=
 =?utf-8?B?MzMzTFA2ZzNEb01QcFVVV1EzUGxXU0RsL1BjOXlqNEFYV3piekMycEk4eHox?=
 =?utf-8?B?MnRyT0JEbjVqSzZ6NW02c3BuNlZOU0ZFcVpsSHJEcnBQcEZaQWxLQmlPL3NG?=
 =?utf-8?B?U2k4dXJsMy96VDVaamNXVEtzam9WT3dOazVMelZOdEVUVFkzZW1mUVZsbWpk?=
 =?utf-8?B?czdCcHF4VG9CbWlkSnd2K3AvRWtZekJNZnRxWWd4WklEMlBKZTlSTjFVNEFt?=
 =?utf-8?B?bk50UnducnVnT3RUK3JURGF2QUJ0TzhKRmQ3V3pjRjdYSDlpSmtiSisxSTVs?=
 =?utf-8?B?cmpZVERBY0I3LzcwTlpkUEJaZE5RY0J0Z1ZnTTVOaW5IOFUyRFMrZEwzKzlx?=
 =?utf-8?B?TTZXMGJ0SDdUelZjY05hOU1VRmNXUFdFd2VoTFhkbERvMEU2ZzVlWlNib0Jt?=
 =?utf-8?B?ZDl1bGhsWjk0VDFXelpFVVlLQmtWV2JUM1FQbjE2L1ludVB2RTlEaFF5M0Zs?=
 =?utf-8?B?V0lYZkxQL1g4YjB4a2JmbnZDZlZCa0tFcXFTOGlTVEwyVy9rQm9FOGdzMmlD?=
 =?utf-8?B?WEpKTXFhV1NwQ2NiRTRZVzUrVnl4Mnh0b1diLy9LMjRKOHJ6WjNmbk4xdXE3?=
 =?utf-8?B?V29XeEdRZG1xOHAyc2FtcGVvTXhMR2ZhRXZaa0VzVkxzTzEvWFg2Ty9PL3dt?=
 =?utf-8?B?M1pscjFQREprVHRMRTNBRnAyY29JNjd4ZEgvYlpkdGtOUmttZmtwdHNzM3Yx?=
 =?utf-8?B?YUdOV01URk5nclFEVUdlL2NlMisrZzY4b2VtTEZ2KzU5YkxlOVdreHNUTDJT?=
 =?utf-8?B?cVFXcmhWdTN2cStGeWJDV0pLVmJnbjY1b3dOTHpTSldHRzE2YzVXbXhKOTdy?=
 =?utf-8?B?bkhBdHNpS0x0NzRWdTZCdCszaUFOMEx0bHpNVDV0MlJSM1RBNkhnK3A3dllv?=
 =?utf-8?B?VlIzZHF6dUxyUE5KNVF3RGtyc29GTS85ditBNTB3elRNSlV5dkRCMjFiUFc5?=
 =?utf-8?B?K3k4bFRaRlNZbk83UWFQV3pRdzNpN3hmNDREVlNMNWtWT2ZRaTJZc0UyZER5?=
 =?utf-8?B?ODNWdWNQUVNoNWNNZDBZOGZYRGtPY3oxUjFDVEJxYVNBN0w0NDRsYmNiWVBP?=
 =?utf-8?B?REpHQVhDTjJZa0FMRmZneGh0WXk1citqZzFiY296SU1WYW1hQlhPTzk1Nk05?=
 =?utf-8?B?eEZJNXc2c05nZjA0aU4zQXdFbVg4cnREdC8wZ0RiSGRzQ2NNWTRRZEx4c2Vy?=
 =?utf-8?B?b25FQlk1YVRtZGhJSGpYRjhRTzczZE5PR0huRDlTbXVtN244aXJDNC9oQnRX?=
 =?utf-8?B?UHdkVWhsNU1Zd2FQVzZvZnhGOEtEM2lBUnYyNEJ1V0pXOE91bmxzaDhiUCs4?=
 =?utf-8?B?M2pxb0d0SjN3cUFEU2JlWDJmNnB1a2F2R0JYR2RDOTl1QW5BV1ZqWU5QWUFJ?=
 =?utf-8?B?anNwcWVaUFZyQWVnUEtpendESHZQd0FwNEYvc29WcUJhYXFkLzBLUlh5ajJK?=
 =?utf-8?B?ZzhkRXF2OHFERnNQNUVSek93ZzVLa1dSRjhRTlVsa1pWa2E3bVVZbzduekd4?=
 =?utf-8?B?OGtpMVc4THRqcndCTDNuVVVocVlOeUVkYnYzK2VIQm0wM2tFdjJkK2VYdE5t?=
 =?utf-8?B?WjExb1c4TjY1OTBRTGZCdVBFVjQzWGdCMVZEMTVoekdzZ3lybjhxcUMyallj?=
 =?utf-8?B?SFNPUVc0RlRPblp6bTZTYXBFMi9JLzV5M1l3akh3cnJnMytIWS9jL0hQMmlx?=
 =?utf-8?B?SG9LZEszWUNKSUpKd0pzV0lIdlNaWENpQkdWbzBKVzREZWMxNzA3aWhEaWhL?=
 =?utf-8?B?dXcrU2Fkb3k4OThSaFBZLzAwOGQyNXZaM1d6c0FqVzZGY1VweUhzYUJUL1BS?=
 =?utf-8?B?dWpvV2swVnVWd3ZPemhkd29EN1ROdi85Q3Z5dXRZTlJQVjJqOTBqWCtxclVa?=
 =?utf-8?B?azNPcUpydUR6ZFlKK3VINjZlSjNMN0JuYTEvWUpjVkxTeGNIbUU4eHBPZ3Vi?=
 =?utf-8?B?bGdiS1N3b1IzZDUzMnVBelZBVXJRSDhzaWRHSlduQ2V3VUxpM0tRcHNZdnhR?=
 =?utf-8?B?aWJtQzlKUkpKSEsyRlJzSEUwcytINnhSVXFPMC9ydlNrOHhtRTRQYm1KYXo5?=
 =?utf-8?B?ekNtdTBXZndrc1JsNVZVVUFqQ0cwQStFSithcTNWbjUwVWVtTUxtdmQxQ0ZV?=
 =?utf-8?Q?VCL9oCw7zZ31PCO7MA9Vcmo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 54bf8578-b531-464a-8d5c-08d99f70d0e8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 08:55:14.1060
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uvUjkdhHrhDEoWtkhKkPD/XbuCNtPcQoQs3wnHkXSs/jBxA5VJQSS2JiyNzSAH4vT5mbMBaOizpdi/BRlRdYIQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4848

On 03.11.2021 15:57, Roger Pau Monne wrote:
> --- a/tools/libs/light/libxl_create.c
> +++ b/tools/libs/light/libxl_create.c
> @@ -454,6 +454,28 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
>          libxl_defbool_setdefault(&b_info->nested_hvm,               false);
>      }
>  
> +    if (b_info->max_grant_version == LIBXL_MAX_GRANT_DEFAULT) {
> +        libxl_physinfo info;
> +
> +        rc = libxl_get_physinfo(CTX, &info);
> +        if (rc) {
> +            LOG(ERROR, "failed to get hypervisor info");
> +            return rc;
> +        }
> +
> +        if (info.cap_gnttab_v2)
> +            b_info->max_grant_version = 2;
> +        else if (info.cap_gnttab_v1)
> +            b_info->max_grant_version = 1;
> +        else
> +            /* No grant table support reported */
> +            b_info->max_grant_version = 0;
> +    } else if (b_info->max_grant_version & ~XEN_DOMCTL_GRANT_version_mask) {

Aren't you introducing a dependency of a stable library on an unstable
interface here? I'm surprised this even builds, as I didn't expect
libxl sources to include domctl.h in the first place.

> @@ -219,6 +220,13 @@ static void parse_global_config(const char *configfile,
>      else if (e != ESRCH)
>          exit(1);
>  
> +    e = xlu_cfg_get_bounded_long (config, "max_grant_version", 0,
> +                                  INT_MAX, &l, 1);
> +    if (!e)
> +        max_grant_version = l;
> +    else if (e != ESRCH)
> +        exit(1);

Would be kind of nice if out-of-range values were detected and
reported right here, rather than causing puzzling errors at domain
creation. But I have no idea whether doing so would be inconsistent
with the processing of other global settings.

> @@ -1917,11 +1918,26 @@ active_alloc_failed:
>  }
>  
>  int grant_table_init(struct domain *d, int max_grant_frames,
> -                     int max_maptrack_frames)
> +                     int max_maptrack_frames, unsigned int options)
>  {
>      struct grant_table *gt;
> +    unsigned int max_grant_version = options & XEN_DOMCTL_GRANT_version_mask;
>      int ret = -ENOMEM;
>  
> +    if ( !max_grant_version )
> +    {
> +        dprintk(XENLOG_INFO, "%pd: invalid grant table version 0 requested\n",
> +                d);
> +        return -EINVAL;
> +    }

Wouldn't 0 rather be the most natural way to request no gnttab at all
for a domain? (Arguably making things work that way could be left to
a future change.)

> +    if ( max_grant_version > opt_gnttab_max_version )
> +    {
> +        dprintk(XENLOG_INFO,
> +                "%pd: requested grant version (%u) greater than supported (%u)\n",
> +                d, max_grant_version, opt_gnttab_max_version);
> +        return -EINVAL;
> +    }
> +
>      /* Default to maximum value if no value was specified */
>      if ( max_grant_frames < 0 )
>          max_grant_frames = opt_max_grant_frames;

Neither here nor in domain_create() you check that the other bits of
"options" are zero.

> @@ -69,7 +69,8 @@ int gnttab_acquire_resource(
>  
>  static inline int grant_table_init(struct domain *d,
>                                     int max_grant_frames,
> -                                   int max_maptrack_frames)
> +                                   int max_maptrack_frames,
> +                                   unsigned int options)
>  {
>      return 0;
>  }

While arbitrary table size requests may be okay to ignore here, I'm
unsure about the max-version: Requesting v3 is surely an error in any
event; I'd even be inclined to suggest requesting v1 or v2 is as
well. Adding such a check here looks like it would be compatible with
all the other adjustments you're making.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:00:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:00:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221309.382957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYbi-00086Q-5x; Thu, 04 Nov 2021 09:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221309.382957; Thu, 04 Nov 2021 09:00:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYbi-00086J-1s; Thu, 04 Nov 2021 09:00:26 +0000
Received: by outflank-mailman (input) for mailman id 221309;
 Thu, 04 Nov 2021 09:00:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4d49=PX=oderland.se=josef@srs-se1.protection.inumbo.net>)
 id 1miYbh-00086C-Cy
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:00:25 +0000
Received: from office.oderland.com (office.oderland.com [91.201.60.5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5636efd-3d4d-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 10:00:24 +0100 (CET)
Received: from [193.180.18.161] (port=59860 helo=[10.137.0.14])
 by office.oderland.com with esmtpsa (TLS1.2) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2)
 (envelope-from <josef@oderland.se>)
 id 1miYbf-00DxwI-0N; Thu, 04 Nov 2021 10:00:23 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5636efd-3d4d-11ec-9787-a32c541c8605
Message-ID: <4ae69258-524c-8349-1dbd-147e96f90138@oderland.se>
Date: Thu, 4 Nov 2021 10:00:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101
 Thunderbird/93.0
Content-Language: en-US
To: Thomas Gleixner <tglx@linutronix.de>
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org, jgross@suse.com,
 linux-pci@vger.kernel.org, maz@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jandryuk@gmail.com>, David Woodhouse <dwmw2@infradead.org>,
 Peter Jones <pjones@redhat.com>, linux-fbdev@vger.kernel.org,
 Peter Zijlstra <peterz@infradead.org>, LKML <linux-kernel@vger.kernel.org>,
 x86@kernel.org
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se> <87ee7w6bxi.ffs@tglx>
From: Josef Johansson <josef@oderland.se>
Subject: Re: [PATCH] PCI/MSI: Move non-mask check back into low level
 accessors
In-Reply-To: <87ee7w6bxi.ffs@tglx>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - office.oderland.com
X-AntiAbuse: Original Domain - lists.xenproject.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - oderland.se
X-Get-Message-Sender-Via: office.oderland.com: authenticated_id: josjoh@oderland.se
X-Authenticated-Sender: office.oderland.com: josjoh@oderland.se

On 11/4/21 00:45, Thomas Gleixner wrote:
> On Wed, Oct 27 2021 at 17:29, Josef Johansson wrote:
>
> CC+: EFIFB and scheduler folks
>
>> On 10/27/21 14:01, Josef Johansson wrote:
>> When I suspend I get errors from Xen, including stacktraces below
>> if anyone has any clue, if this might be related. I get one each time I
>> suspend
>> and the third time amdgpu gives up.
>>
>> rtc_cmos 00:01: registered as rtc0
>> rtc_cmos 00:01: setting system clock to 2021-10-27T15:04:35 UTC (1635347075)
>> rtc_cmos 00:01: no alarms, y3k, 114 bytes nvram
>> device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log.
>> device-mapper: uevent: version 1.0.3
>> device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@redhat.com
>> efifb: probing for efifb
>> efifb: cannot reserve video memory at 0x60000000
>> ------------[ cut here ]------------
>> ioremap on RAM at 0x0000000060000000 - 0x00000000607e8fff
>> WARNING: CPU: 7 PID: 1 at arch/x86/mm/ioremap.c:210 __ioremap_caller+0x332/0x350
> That's this warning:
>
> 	/*
> 	 * Don't allow anybody to remap normal RAM that we're using..
> 	 */
> 	if (io_desc.flags & IORES_MAP_SYSTEM_RAM) {
> 		WARN_ONCE(1, "ioremap on RAM at %pa - %pa\n",
> 			  &phys_addr, &last_addr);
> 		return NULL;
> 	}
>
>
>> Modules linked in:
>> CPU: 7 PID: 1 Comm: swapper/0 Not tainted 5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
>> Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17/2021
>> RIP: e030:__ioremap_caller+0x332/0x350
>> Code: e8 c3 ca ff ff 49 09 c6 e9 32 fe ff ff 48 8d 54 24 28 48 8d 74 24 18 48 c7 c7 35 f2 5d 82 c6 05 e8 7b a9 01 01 e8 48 39 be 00 <0f> 0b 45 31 e4 e9 ac fe ff ff e8 ff f5 c3 00 66 66 2e 0f 1f 84 00
>> RSP: e02b:ffffc9004007bb00 EFLAGS: 00010286
>> RAX: 0000000000000000 RBX: 00000000007e9000 RCX: ffffffff82915ca8
>> RDX: c0000000ffffdfff RSI: 0000000000000000 RDI: ffffffff82865ca0
>> RBP: 0000000060000000 R08: 0000000000000000 R09: ffffc9004007b948
>> R10: ffffc9004007b940 R11: ffffffff82945ce8 R12: 0000000000000001
>> R13: 00000000007e9000 R14: 00000000007e9000 R15: ffffffff81c8f772
>> FS:  0000000000000000(0000) GS:ffff8881407c0000(0000) knlGS:0000000000000000
>> CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
>> CR2: 0000000000000000 CR3: 0000000002810000 CR4: 0000000000050660
>> Call Trace:
>>  efifb_probe.cold+0x2e6/0x688
> Why is this probing EFIFB at resume? Josef is that hibernate or suspend
> to RAM?
This is actually on boot, might be a totally ignore able warning though.
Would be nice to actually get rid of!
>
>>  platform_probe+0x3f/0x90
>>  call_driver_probe+0x24/0xc0
>>  really_probe+0x1e7/0x310
>>  __driver_probe_device+0xfe/0x180
>>  driver_probe_device+0x1e/0x90
>>  __device_attach_driver+0x72/0xe0
>>  ? driver_allows_async_probing+0x50/0x50
>>  ? driver_allows_async_probing+0x50/0x50
>>  bus_for_each_drv+0x8f/0xd0
>>  __device_attach+0xe9/0x1f0
>>  bus_probe_device+0x8e/0xa0
>>  device_add+0x3fb/0x630
>>  platform_device_add+0x102/0x230
>>  sysfb_init+0xea/0x141
>>  ? firmware_map_add_early+0xb8/0xb8
>>  do_one_initcall+0x57/0x200
>>  do_initcalls+0x109/0x166
>>  kernel_init_freeable+0x23c/0x2bd
>>  ? rest_init+0xc0/0xc0
>>  kernel_init+0x16/0x120
>>  ret_from_fork+0x22/0x30
>> ---[ end trace b068d3cd1b7f5f49 ]---
>> efifb: abort, cannot remap video memory 0x7e9000 @ 0x60000000
>> efi-framebuffer: probe of efi-framebuffer.0 failed with error -5
>> --
>> printk: Suspending console(s) (use no_console_suspend to debug)
>> [drm] free PSP TMR buffer
>> PM: suspend devices took 0.428 seconds
>> ACPI: EC: interrupt blocked
>> ACPI: PM: Preparing to enter system sleep state S3
>> ACPI: EC: event blocked
>> ACPI: EC: EC stopped
>> ACPI: PM: Saving platform NVS memory
>> Disabling non-boot CPUs ...
>> ------------[ cut here ]------------
>> WARNING: CPU: 1 PID: 0 at arch/x86/mm/tlb.c:522  switch_mm_irqs_off+0x3c5/0x400
> 	if (WARN_ON_ONCE(__read_cr3() != build_cr3(real_prev->pgd, prev_asid))) {
>
>> Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd_timer nf_tables nfnetlink vfat fat intel_rapl_msr think_lmi firmware_attributes_class wmi_bmof intel_rapl_common pcspkr uvcvideo videobuf2_vmalloc videobuf2_memops joydev videobuf2_v4l2 sp5100_tco k10temp videobuf2_common i2c_piix4 iwlwifi videodev mc cfg80211 thinkpad_acpi ipmi_devintf ucsi_acpi platform_profile typec_ucsi ledtrig_audio ipmi_msghandler r8169 rfkill typec snd wmi soundcore video i2c_scmi fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt trusted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul crc32_pclmul crc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ghash_clmulni_intel ttm serio_raw drm_kms_helper cec sdhci_pci cqhci sdhci xhci_pci drm xhci_pci_renesas nvme xhci_hcd ehci_pci mmc_core ehci_hcd nvme_core xen_acpi_processor xen_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
>> CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W        --------- ---  5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
>> Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17/2021
>> RIP: e030:switch_mm_irqs_off+0x3c5/0x400
>> Code: f0 41 80 65 01 fb ba 01 00 00 00 49 8d b5 60 23 00 00 4c 89 ef 49 c7 85 68 23 00 00 60 1d 08 81 e8 a0 f3 08 00 e9 15 fd ff ff <0f> 0b e8 34 fa ff ff e9 ad fc ff ff 0f 0b e9 31 fe ff ff 0f 0b e9
>> RSP: e02b:ffffc900400f3eb0 EFLAGS: 00010006
>> RAX: 00000001336c6000 RBX: ffff888140660000 RCX: 0000000000000040
>> RDX: ffff8881003027c0 RSI: 0000000000000000 RDI: ffff8881b36c6000
>> RBP: ffffffff829d91c0 R08: 0000000000000000 R09: 0000000000000000
>> R10: 0000000000000008 R11: 0000000000000000 R12: ffff888104e88440
>> R13: ffff8881003027c0 R14: 0000000000000000 R15: 0000000000000001
>> FS:  0000000000000000(0000) GS:ffff888140640000(0000) knlGS:0000000000000000
>> CS:  10000e030 DS: 002b ES: 002b CR0: 0000000080050033
>> CR2: 000060b7d78bf198 CR3: 0000000002810000 CR4: 0000000000050660
>> Call Trace:
>>  switch_mm+0x1c/0x30
>>  idle_task_exit+0x55/0x60
>>  play_dead_common+0xa/0x20
>>  xen_pv_play_dead+0xa/0x60
> So this is when bringing the non boot CPUs down and the switch_mm() code
> discovers inconsistency between CR3 and the expected value.
>
> Would probably be interesting to print the actual values, but XEN folks
> might have an idea.
My guess here after digging through the code is that XEN is just (as the
comment above this warn
says), just doing a load_cr3(swapper_pg_dir) without going through
switch_mm first.
I could add a BUG_ON somewhere, or maybe printk, but I'm very unsure to
where I should put them.
Assistance here would be great.
>
>>  do_idle+0xd1/0xe0
>>  cpu_startup_entry+0x19/0x20
>>  asm_cpu_bringup_and_idle+0x5/0x1000
>> ---[ end trace b068d3cd1b7f5f4b ]---
>> smpboot: CPU 1 is now offline
>> smpboot: CPU 2 is now offline
>> smpboot: CPU 3 is now offline
>> smpboot: CPU 4 is now offline
>> smpboot: CPU 5 is now offline
>> smpboot: CPU 6 is now offline
>> smpboot: CPU 7 is now offline
>> ACPI: PM: Low-level resume complete
>> ACPI: EC: EC started
>> ACPI: PM: Restoring platform NVS memory
>> xen_acpi_processor: Uploading Xen processor PM info
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU1
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU3
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU5
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU7
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU9
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU11
>> --
>> CPU2 is up
>> installing Xen timer for CPU 3
>> cpu 3 spinlock event irq 79
>> [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
>> ACPI: \_SB_.PLTF.C003: Found 3 idle states
>> ACPI: FW issue: working around C-state latencies out of order
>> CPU3 is up
>> ------------[ cut here ]------------
>> cfs_rq->avg.load_avg || cfs_rq->avg.util_avg || cfs_rq->avg.runnable_avg
>> installing Xen timer for CPU 4
>> WARNING: CPU: 3 PID: 455 at kernel/sched/fair.c:3339  __update_blocked_fair+0x49b/0x4b0
> 	/*
> 	 * _avg must be null when _sum are null because _avg = _sum / divider
> 	 * Make sure that rounding and/or propagation of PELT values never
> 	 * break this.
> 	 */
> 	SCHED_WARN_ON(cfs_rq->avg.load_avg ||
> 		      cfs_rq->avg.util_avg ||
> 		      cfs_rq->avg.runnable_avg);
>
> PeterZ, does that ring any bell?
I also assume that the first BUG triggers this one.
>
>> Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd_timer nf_tables nfnetlink vfat fat intel_rapl_msr think_lmi firmware_attributes_class wmi_bmof intel_rapl_common pcspkr uvcvideo videobuf2_vmalloc videobuf2_memops joydev videobuf2_v4l2 sp5100_tco k10temp videobuf2_common i2c_piix4 iwlwifi videodev mc cfg80211 thinkpad_acpi ipmi_devintf ucsi_acpi platform_profile typec_ucsi ledtrig_audio ipmi_msghandler r8169 rfkill typec snd wmi soundcore video i2c_scmi fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt trusted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul crc32_pclmul crc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ghash_clmulni_intel ttm serio_raw drm_kms_helper cec sdhci_pci cqhci sdhci xhci_pci drm xhci_pci_renesas nvme xhci_hcd ehci_pci mmc_core ehci_hcd nvme_core xen_acpi_processor xen_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
>> CPU: 3 PID: 455 Comm: kworker/3:2 Tainted: G        W        --------- ---  5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
>> Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17/2021
>> Workqueue:  0x0 (events)
>> RIP: e030:__update_blocked_fair+0x49b/0x4b0
>> Code: 6b fd ff ff 49 8b 96 48 01 00 00 48 89 90 50 09 00 00 e9 ff fc ff ff 48 c7 c7 10 7a 5e 82 c6 05 f3 35 9e 01 01 e8 1f f3 b2 00 <0f> 0b 41 8b 86 38 01 00 00 e9 c6 fc ff ff 0f 1f 80 00 00 00 00 0f
>> RSP: e02b:ffffc900410d7ce0 EFLAGS: 00010082
>> RAX: 0000000000000000 RBX: 0000000000000018 RCX: ffff8881406d8a08
>> RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffff8881406d8a00
>> RBP: ffff8881406e9800 R08: 0000000000000048 R09: ffffc900410d7c78
>> R10: 0000000000000049 R11: 000000002d2d2d2d R12: ffff8881406e9f80
>> R13: ffff8881406e9e40 R14: ffff8881406e96c0 R15: 0000000000000000
>> FS:  0000000000000000(0000) GS:ffff8881406c0000(0000) knlGS:0000000000000000
>> CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
>> CR2: 0000782e51820000 CR3: 0000000002810000 CR4: 0000000000050660
>> Call Trace:
>>  update_blocked_averages+0xa8/0x180
>>  newidle_balance+0x175/0x380
>>  pick_next_task_fair+0x39/0x3e0
>>  pick_next_task+0x4c/0xbd0
>>  ? dequeue_task_fair+0xba/0x390
>>  __schedule+0x13a/0x570
>>  schedule+0x44/0xa0
>>  worker_thread+0xc0/0x320
>>  ? process_one_work+0x390/0x390
>>  kthread+0x10f/0x130
>>  ? set_kthread_struct+0x40/0x40
>>  ret_from_fork+0x22/0x30
>> ---[ end trace b068d3cd1b7f5f4c ]---
>> cpu 4 spinlock event irq 85
>> [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
>> ACPI: \_SB_.PLTF.C004: Found 3 idle states
>> ACPI: FW issue: working around C-state latencies out of order
>> CPU4 is up
>> installing Xen timer for CPU 5
>> cpu 5 spinlock event irq 91
>> [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
>> ACPI: \_SB_.PLTF.C005: Found 3 idle states
>> ACPI: FW issue: working around C-state latencies out of order
>> CPU5 is up



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:03:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:03:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221317.382968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYe6-0000KE-MI; Thu, 04 Nov 2021 09:02:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221317.382968; Thu, 04 Nov 2021 09:02:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYe6-0000K7-Ip; Thu, 04 Nov 2021 09:02:54 +0000
Received: by outflank-mailman (input) for mailman id 221317;
 Thu, 04 Nov 2021 09:02:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miYe5-0000Jv-9R; Thu, 04 Nov 2021 09:02:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miYe5-0008QE-2G; Thu, 04 Nov 2021 09:02:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miYe4-0007Sg-MP; Thu, 04 Nov 2021 09:02:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miYe4-0004bw-Ls; Thu, 04 Nov 2021 09:02:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=9ThWirfD14YJiREFvrc9CFRG4qx4uqrtgu19VL7CfVM=; b=kKe9l8uVUzCFG+3psgKzZrhcbF
	dfoz91kWMqAhJS91mD/K+cdgOyAzWimq79r3ggT4bZsoJdA5OQ5xiUe9emHBFJdf3yW8QO7JGDs9a
	6suw5LB3a2FiiClvN1Li+aI7Pqq7W26jdMKk6eZHuvZL7C5XLaTNT8kC0f0mB4du8wmY=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166033-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166033: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=cc23377516072d293b0f9ab04741f8982d274639
X-Osstest-Versions-That:
    qemuu=22d5760cb43e2fe73e61fda145a98f3217ca47bf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Nov 2021 09:02:52 +0000

flight 166033 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166033/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166025
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166025
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166025
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166025
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166025
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166025
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166025
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166025
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166025
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 qemuu                cc23377516072d293b0f9ab04741f8982d274639
baseline version:
 qemuu                22d5760cb43e2fe73e61fda145a98f3217ca47bf

Last test of basis   166025  2021-11-03 06:30:44 Z    1 days
Testing same since   166033  2021-11-03 16:09:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexander Graf <agraf@csgraf.de>
  Ari Sundholm <ari@tuxera.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Dongwon Kim <dongwon.kim@intel.com>
  Emil Karlson <jkarlson@tuxera.com>
  Eric Auger <eric.auger@redhat.com>
  Fabrice Fontaine <fontaine.fabrice@gmail.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Hanna Reitz <hreitz@redhat.com>
  Hao Wu <wuhaotsh@google.com>
  Jean-Philippe Brucker <jean-philippe@linaro.org>
  Kevin Wolf <kwolf@redhat.com>
  Nikola Pavlica <pavlica.nikola@gmail.com>
  Peter Lieven <pl@kamp.de>
  Peter Maydell <peter.maydell@linaro.org>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Samuel Thibault <samuel.thibault@ens-lyon.org>
  Shengtan Mao <stmao@google.com>
  Stefano Garzarella <sgarzare@redhat.com>
  Thomas Huth <huth@tuxfamily.org>
  Volker Rümelin <vr_qemu@t-online.de>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   22d5760cb4..cc23377516  cc23377516072d293b0f9ab04741f8982d274639 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:13:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:13:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221326.382981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYoX-0001pK-P6; Thu, 04 Nov 2021 09:13:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221326.382981; Thu, 04 Nov 2021 09:13:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYoX-0001pD-M2; Thu, 04 Nov 2021 09:13:41 +0000
Received: by outflank-mailman (input) for mailman id 221326;
 Thu, 04 Nov 2021 09:13:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miYoW-0001p7-8C
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:13:40 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ee4621b-3d4f-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 10:13:38 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2056.outbound.protection.outlook.com [104.47.13.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-1-dIVlQN7QO5yRG9JQcfQDnw-1;
 Thu, 04 Nov 2021 10:13:36 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3120.eurprd04.prod.outlook.com (2603:10a6:802:e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 09:13:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 09:13:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0048.eurprd04.prod.outlook.com (2603:10a6:20b:f0::25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.13 via Frontend Transport; Thu, 4 Nov 2021 09:13:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ee4621b-3d4f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636017218;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=/81wyuY2f14e2jpOysYAPhE3iEyIGZo5UgzxSu9XhT8=;
	b=HSEujXenfV8uK/3n05gEVpMWucBZoFmKv4P+ocAog/G81UGDdBpU4pM77po11iCTdLPy40
	0l0cNHDGWOsPPhJy9hQ4e+td98XIxC2AhO5Naw8rAvcjvSgoUWN+gG4bbW6dcpnjVOdMpY
	g8qE6UVmyrixN/qMFh+kmZbQToHRxqE=
X-MC-Unique: dIVlQN7QO5yRG9JQcfQDnw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ClNnkJozI4eWHzUSQAGtMJhyxDVICTcUXGeDKiuzVgdhCqK0JGvf3mrhptK15vgCAbe1BS5Qr4R6lYFviZwUH1t9uRSJJW7IDo1u3psSfR4Pb0vAi3fv0UePf5RNrm99fzx0/zBCLQcYQcT++FNg/hhRHshkhg+5pUx++0utCj3W66Jmy6oe6a6FAP0OMg813lSY5Kv4fSKbdaPVck6aa9wrsDN+DRHzZ6H99dtirPFztB6DcmPISw3zcBipGOG7F8b4VP0tYKPOg0LZk1tBvMK5KZEXVLmlGYSkG7xMb1KQhLKXyHUjHXuOlURgmK43jGaEUnb4iDBD/1WoWaDpLg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/81wyuY2f14e2jpOysYAPhE3iEyIGZo5UgzxSu9XhT8=;
 b=VdLxEx92DSQXKn8U+vP53IFw7pTaQ67BTnoZ6SgUgMU6yeN7naqZR8vxY3JDO+cEzBQCdNnnhigMUd8Yjn4OKyPkLxCzNjy/lg/Q+GbnXBSUCZO1a71Ci/OaxZ/XNOKCzlGnldYeAgLHpWXTMJ4uUkM2WEmo8EsRcG238WouymMny7cqXBVp9+77PM0aA7s9s4vrUShIk6UbBMqg8LD9AiUIhnW/Gnx2jw27SFtxJXFcXrzwomuZvJCTpfWhSxKKPw8rCGdp9gfwYd2I455bGREqxHZedOZWIFHW5oQxE7lLY07mItKxV/VRHcBbK3KerIzFgkSg8QU440f1I4hIEQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6ddeeb9a-814d-6a22-7099-f69162dd0db7@suse.com>
Date: Thu, 4 Nov 2021 10:13:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 09/15] x86/pv-shim: don't modify hypercall table
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-10-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211101152015.28488-10-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR04CA0048.eurprd04.prod.outlook.com
 (2603:10a6:20b:f0::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f6a81e6b-10b0-4d00-aba3-08d99f7360b6
X-MS-TrafficTypeDiagnostic: VI1PR04MB3120:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3120F22017045B92EA268AADB38D9@VI1PR04MB3120.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ZDBpISU+u9X6tYF9KoDSNsRS+sPn9I65QoKZrsHzWN6oM+uZFVjTsXMfFmytCsur7gMiggUDFKgGiBDRuCM31+SXhY+gBTDRtHTH/93h+fCPLzcfadzackGIS24BhNWdsHVBSQ68gxz0JonjZWndRCG7u3aKG5Xx3TQ8ZJapuybwrv77cp1fAM0ybjm3+9qElIXfIg7C6qcOGXK5Kby3wCLUziOQRYcMsOECHbaCWlJTYSdz0rAyc/5hktDnMa3XIgA+IGbQnWxCKfIE8ZxRmPrDUSE39wNngpvRcXh0PxBmjtX9Zq9PVHESq3gcB9GmayY88QOUJhgmp/4LM+oChJvdo7PqV0gCknETB3qzcnp4U1T7nwpGWIwAFk9FylXQJ6OxL11vFr+MJhqGLb6AnZlLQP8OowFsDNqYkYRgcM0jpAlSqtyyoMbXuIDCAXi5eMqv5/IAKQm5V3TSg/5T7yf9SRT0vFgC6V8B38LRE03gcF3/n6xgym58Z+7MeAmoZgp65JjgUgx3Ae676RFOhtd5EpsNgH9oaiCudNsjidguxvRn+NyR7L7OY6X3IWYtSRyb6pUbcuQt0S614vr0tl+5tPTXvlT6UOJ8Qwk75sn4Loq96nV7zpVOb12P5H+yS+THV+OxGdzaflzdYhGWxjxvpJnoQ3jzvE9DMkC7kmIiuHTzZiOtlxxE3gefuQdmaN/tkFU2Mpc6iy+JTMnkXeZWU0VDA3cCLfDHv+KR9xI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(6486002)(8676002)(316002)(8936002)(16576012)(38100700002)(26005)(4326008)(53546011)(5660300002)(83380400001)(86362001)(36756003)(956004)(66946007)(2616005)(66556008)(66476007)(6636002)(186003)(508600001)(31686004)(37006003)(54906003)(2906002)(6862004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Tk94c3c4enppdVpGWW9CeUpWT2tIZkliMXpwY2pCVmN3Y1FNWTJTbGdLZkNi?=
 =?utf-8?B?Z0k4MEtEeEZkSTAyKzgxVklxYWRtV3ptVjNLd1N3d1BYR2prZDNiZTBDTTZR?=
 =?utf-8?B?WEprTVRTeWI5R2wzQmdON2NsQjlKbzhDckdka0IrMW85dVo4SVliM0hHSVNZ?=
 =?utf-8?B?Uk9xUkJZS1lRSDZjY0xhYi93YUxQWktTYjY1NmRUSHdVQUw2N2lhVTFaRE1r?=
 =?utf-8?B?dTZIZnpSUExPNGpBdTgwOE5yYTA3RjlnRzNUbzJtVm9aeERxenp6QWhTMUtB?=
 =?utf-8?B?T2F0MU9BZ3lWekNvNWhMaElaYjJXTXJSRUEwYnJFYXppcmNLMHUzbWFTNHhp?=
 =?utf-8?B?anZKVlBRbnFKSUc2MDlxeFkwMW4xZmlCejRsSUVPemRWL09Rbm5EWWNuUVJW?=
 =?utf-8?B?dUx1VDR5Y0JpQytLTDFnRW9UV1Q4ZXlUV0dSSFdKcFJHUFBTc0lKVWJQZWdL?=
 =?utf-8?B?TWsxYy9BbndJbVFTclJXdzdIT0F6QVExYjBCUWR1azlHYnZqejRmUUNvNG9I?=
 =?utf-8?B?WmlHWWZZQmNObnY0emdIWUc5OTJzTTZpcWkwNnhHbC9MRmRLYTdSZ3B5S0ww?=
 =?utf-8?B?UGN3YXJLYlkzTDBYWmZINmNzbCtIT2pQTHRHSytXQVJYYWQzbmRDVGdWcWUz?=
 =?utf-8?B?VWJ6M0ZTUXRkTnhzMGlzcVNTTTBkZ0JTZUVnU2N3UWpuaGl2Z05wd0UzMjUv?=
 =?utf-8?B?bTVicVp5ZkUvc1UrVHpNZFk5YkdsMk9wMHNCY3hMTDRwaWtnOHhicUI0M0Ur?=
 =?utf-8?B?U09qWU9kVXl5ZWRmNDcyeWFlTDR2ZnpBdFhXS1ZFeXFoRXhISW0vY0xrK1U4?=
 =?utf-8?B?YmdYSE5TSzFMTU9vdEt3Ukw3YVNoTTJaSm1MN3JvWkoxNGtGZThhaTc0VDIw?=
 =?utf-8?B?ZjdOUnVYMWNWelBid3J3Mm9Na0N3a3ZzM0xTdWd4Zlo1OXQvRnJyU09mcElI?=
 =?utf-8?B?c1BnaEJtYjZjL0dyVGh3YnBKbloycFhTTDErTE9aMDdqL2lxVzdaMHJsMy96?=
 =?utf-8?B?MXYvcnZuc0dld1g3ZzRzc1E1WWNTSGgzL0kvS0ZJby9BcUFkYlVWdUQ0bEtJ?=
 =?utf-8?B?RjNoY2dpQWZmYnpFQ0xlTHNyWGpwbGd0aFBxNnhKczlzaGgyMi9ON2FpLzVY?=
 =?utf-8?B?VEZXU1d5NXJNSmp3QXRVbWgxQXdaK2NwaG5rb0x5SnJ4Z2JFSGRvN2NnSVBu?=
 =?utf-8?B?dGpFTFlTTkR6NWl2ME1rdndHN2VDN0c2ZXdrb1dTSUYvbWVRZkhZQ1BYbzA4?=
 =?utf-8?B?eFd5aU9IczVyMWZlaTdtdHBERzZOaVBtblBJMVJPNjlzRUtnS3JIUHNXMEt5?=
 =?utf-8?B?ZjF1MzB1bDhxL1BZUUh3Tkx3UWEvajJDOUNJTzhLSFU1NjFPbkplRXlhd29B?=
 =?utf-8?B?K0JZeGc0QlIyb0pldHFUK3ZnazBWMWZsTS9TS3hXaGpVSlRScnh0OENMNGpX?=
 =?utf-8?B?R0cvcFVMZjYrYWpuYWVCSC9rRTZ3OHFONGtRYTNKWi9ha2tNRVBOVFliYUdQ?=
 =?utf-8?B?ODFwZm9wWDBDejlSTitXMmh0bjA3ekU4VndNc2crTG0xUmt6Q1UraGV4UytS?=
 =?utf-8?B?Zy9FY3lDdkp4ZWdGd0VKVUF6WWtrd3JEeWtWWEhKcGtpUTd3ZG9PVmlRK2V1?=
 =?utf-8?B?ZE1hVkROR3pjVEkzV0s1TlZBdUJ6eEx6Nno4WmsrZHFPbGNYYUQ2Y2hDVGRp?=
 =?utf-8?B?bUdGNDhGQ0dsTlhHMDlpYWZpV1NpdFhuUFZDOTE2VjErSnIwN1JOTU5SRC9K?=
 =?utf-8?B?Lzd3QzczcmFkblNIaENadUVqSjNTMkJuR2FCdFJ6RWZyTTdQcEQvbDJ3YU5W?=
 =?utf-8?B?bkZzWVV1Qm5Nd2g0MWFPR2E0MkdQd3ZKUVpRcEpsYXcxTGh3VTdIMVFZc2R6?=
 =?utf-8?B?RkFCNnlSMlE3dHVULzVpQkhINjM5dGFUUnFWUTMwU0wzRGNVamJxR0k1Y3do?=
 =?utf-8?B?MGVmWUxmNVZlMVVrVm1NYStDTmsrWWVxVmovaW1ES05oVWdnblpHWjVNVlM0?=
 =?utf-8?B?YVFRMGgyRlRPSTNBRlAyVm1jYUJvM0UrMFVOV2N5eUlLRUZ4SktiN3l4T3Ur?=
 =?utf-8?B?bFJNYkR2UXRhaUdwNW9sQUdvVmVlUzU0VmR4THBJMnd3NEh5d2Q3K0pHUXRK?=
 =?utf-8?B?Y01vb1l0RlVyVlF3bU1wMHZHZCtDUEU0VUtzVjRCQktmalkrSnpqSjlaTHVP?=
 =?utf-8?Q?dKW8qqs03KX2EGlOwAPgPys=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f6a81e6b-10b0-4d00-aba3-08d99f7360b6
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 09:13:34.3684
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VYFeLJX+aJD0Zkeyg+iXSK54knKSIOojkB6kD7lzVn+uEwEASeyCnrXppnfbOqtrJl7y4q8pGGY20OjMSJtyvw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3120

On 01.11.2021 16:20, Juergen Gross wrote:
> When running as pv-shim the hypercall is modified today in order to
> replace the functions for __HYPERVISOR_event_channel_op and
> __HYPERVISOR_grant_table_op hypercalls.
> 
> Change this to call the related functions from the normal handlers
> instead when running as shim. The performance implications are not
> really relevant, as a normal production hypervisor will not be
> configured to support shim mode, so the related calls will be dropped
> due to optimization of the compiler.
> 
> Note that for the CONFIG_PV_SHIM_EXCLUSIVE case there is a dummy
> wrapper do_grant_table_op() needed, as in this case grant_table.c
> isn't being built.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
albeit with a remark:

> @@ -1190,6 +1194,11 @@ long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>  {
>      int rc;
>  
> +#ifdef CONFIG_PV_SHIM
> +    if ( pv_shim )
> +        return pv_shim_event_channel_op(cmd, arg);
> +#endif

At the example of this, this is sub-optimal: In !PV_SHIM_EXCLUSIVE
this would imo better be unlikely(pv_shim). If it was just for the
positive forms, the annotation could actually be included in
pv_shim itself:

extern bool pv_shim;
#define pv_shim unlikely(pv_shim)

but this wouldn't necessarily play well with e.g. "if ( !pv_shim )".

As I would hope compilers don't mind constructs like "unlikely(1)",
I'd like to suggest considering to add likely() / unlikely() on
this and similar paths you add here.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:16:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:16:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221333.382993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYrY-0002Wp-EV; Thu, 04 Nov 2021 09:16:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221333.382993; Thu, 04 Nov 2021 09:16:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYrY-0002Wi-Aj; Thu, 04 Nov 2021 09:16:48 +0000
Received: by outflank-mailman (input) for mailman id 221333;
 Thu, 04 Nov 2021 09:16:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F6ik=PX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1miYrX-0002Wc-5E
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:16:47 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed202a25-3d4f-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 10:16:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed202a25-3d4f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636017405;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=e25DeakF1GciaaMyvi/2bSR/EOOvXC4O+Nh5jNUWAgs=;
  b=P4dD1t5cXXGWwA7ZbO9tGKnbq6E/bEfnhY//nyqnDKY7lrl78q9CZD+/
   kFRbHUDwXHsfw9njABq4xJs3GqkDFXv9JUl2tp6zxtvZ0cqYjP/sgFh9e
   KwapusRG68AOTX0I3ZRQmtGyrtWYwdSeShkOMKi2v4EP51V2GG+eurGyZ
   c=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: TWL5OE9mckwiKtQruVEuRmkk75DKgDWxHgrrcT1qM6Zgs790vravq9lSgrzNvwdzRlbIvIxSsV
 q0YgtNZ6qpBpi/TkoPizzjgehXGfKsfCQjqCoj07rp5vKOGd7KqsRjKBYoCVrrAhqYl5fRICWu
 okjXNrGa6MXesLrDSVOSDPiXAkFHnwNCKEN28Se6Hj6Dh7XmCkPUZLAK/RNx9DvBJL+uLkZxFU
 xkEZ7+hSmExK/MtexSngBTecfs5kyYRuD3UwuaHtLeTuB7zeJZ187WTwTFFY6Gth5ctlK3UDX5
 eVCdNzeDX+RocU8DqzKEaxa3
X-SBRS: 5.1
X-MesageID: 57052522
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:y2Hd56P4mspPS5PvrR31kcFynXyQoLVcMsEvi/4bfWQNrUp0hWdSy
 GUcXj2GOvzcMWb8Lt0nbtni90IO7ZHRzNdlTgto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eo/w7dRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozeAjo9Tk
 dltj7ybcydyJLfPosI9QQYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/iVvYICgW1q7ixINbXBZ
 9M4amJ0UDjnaCdNBUlHN6Bgl9790xETdBUH8QnI9MLb+VP78gt117T8NcvPTfaDT85Vg0Wwq
 3rP+iLyBRRyHNCW1zet6H+nge7L2yThV+o6BLC+s/JnnlCX7mgSEwENE0u2p+GjjUyzUM4ZL
 FYbkgIvsqoa5EGtVsP6XRCzvDiDpBF0c9hfCeoh8ymW17HZpQ2eAwAsUTppeNEg8sgsSlQC1
 FWEgtfoDjxHq6CORDSW8bL8hSipJSEfIGsGZCkFZQgI+d/upMc0lB2nZtR+FK+4iPXlFDe2x
 CqFxBXSnJ1K05RNjf/iuwma3XT8/fAlUzLZ+C3VV3P6zFp1RLSFTLaIskLB7sxmDJSGGwzpU
 Gc/p+CS6+UHDJeonSOLQfkQELzB28tpIAEwknY0QcB/qm3FF2qLONkJvWogfBsB3tMsIGexO
 CfuVRVtCIi/1ZdARYt+eMqPBssj1sAM/vy1B6mPPrKijnWcHTJrHR2Ch2bMgAgBc2B2yMnT3
 Kt3l+72XR727ow9nVKLqx81i+ND+8zH7Tq7qWrH5xqmy6GCQ3WeVK0INlCDBshgsvjZ8VuIq
 48PbZPbo/m6bAEYSnOHmWL0BQpbRUXX+Lis85AHHgJ9ClM+cI3eNxMh6ex4INE090ikvuzJ4
 mu8SidlJKnX3hX6xfGxQik7MtvHBM8nxVpiZHBEFQv4ihALPNf0hI9CJsRfQFXS3LE6pRKCZ
 6JeIJvo7zUmYmmvxgnxmrGn89AyKk/23F3TV8dnCRBmF6Ndq8Xy0oaMViPk9TUUDzrxss07o
 ra60RjcT4ZFTANnZPs6otr1p79olXRCyu90QWXSJdxfJBfl/IRwcnSjhf4rOcAcbx7Ew2LCh
 QqRBB4Zo8jLopM0r4aV1fzV8d/xHrssBFdeEkna8a2yaXvQ8F28zNISS+2PZz3cCj/5of3we
 eVPwvjgG/Qbh1IW4ZFkGrNmwPtmtdvirrNX1Cp+G3DPYwj5A79sOCDej8JOqrdM1vlSvg7vA
 hCD/dxTOLOoPsL5EQFOeFp5P7rbjfxNw2vc9/U4Jkn+9RRbxrvfXBUAJQSIhQxcMKBxbNEvz
 9A+tZNE8Ae4kBcrbIqL13gG62SWI3UceKw7rZVGUpTzgw8mx1weM5zRDij6vMOGZ9lWaxR4J
 zaVgOzJhqhGx1qEeH02TCCf0e1YjJUImRZL0F5deAjZxoub3qc6jE9L7DA6bgVJ1REWget8N
 19iO1BxOajTrSxjg9JOXjz0FgxMbPFDFpcdF7fdeLXlcnSV
IronPort-HdrOrdr: A9a23:AueUqKl/cEBi8FtMwLbHXDf1MtPpDfPIimdD5ihNYBxZY6Wkfp
 +V88jzhCWZtN9OYhwdcLC7WZVpQRvnhPlICK0qTM2ftWjdyRCVxeRZg7cKrAeQeREWmtQtsJ
 uINpIOdeEYbmIK8/oSgjPIaurIqePvmMvD5Za8vgZQpENRGtldBm9Ce3mm+yZNNW977PQCZf
 6hDp0tnUvdRZ1bVLXxOlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJr3CQKR0BsyWy5Ghe5Kyx
 mJryXJooGY992rwB7V0GHeq7xQhdva09NGQOiBkNIcJDnAghuhIK5hR7qBljYop/zH0idhrP
 D85zMbe+hj4XLYeW+45TPrxgnbyT4rr0TvzFeJ6EGT1/DRdXYfMY5slIhZehzW5w4Lp9dnyp
 9G2Gqfqt5+EQ7AtD6V3amHazha0m6P5VYym+8aiHJSFaEEbqVKkIAZ9ERJVL8dASPB7pw9Gu
 UGNrCS2B9vSyLbU5nlhBgt/DT1NU5DXCtuA3Jy9vB96gIm3UyQlCAjtYkidnRpzuNLd3AL3Z
 WBDk1SrsA8ciYhV9MIOA4we7rGNoXze2O/DIuzGyWvKEhVAQOEl3bIiI9Fkd1CPqZ4i6cPpA
 ==
X-IronPort-AV: E=Sophos;i="5.87,208,1631592000"; 
   d="scan'208";a="57052522"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SHxwfaTxYyAEvhminN5EECqSzMDiwNhNRNK8ibJOsbKrhb7vA8W+QTfVAysA0tDpitp49wlXqJSDTZVbyO3TdfTZtQ8nJVkyxrNLajV7/kuapdvGOl33addY49MRWST/bKNYVazDlZjKIyRtPP6UuWyAFdAjJvzDjHxszS3ld57Vm4yNLbMxag1ly8IRxwwtVwMLnbRW2Mbe0gDLM6uSfp2xwBKaC2vmtVJx2bhj2pQZ6D/aCoYiLY0i22gL/aO4WqRdrEtnkE8I2YItToBDdWUT89jrJJ1LT1Q68M6lqRgluy1lZFccqmME+0D4rtvyAhtyJlHpBQZ4oHQeJWbVAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gKKk0XoB4XQUp49SgpGlaWSDRxe1hJkXB8hf87pfg0Y=;
 b=Yudn4HsE3uhSJ2lhvOsF16Q4dlj741AAqnq2ZuUHmjoApCSfC7NXsy3VrLcYbFTliJP7pw/HcyQ3UZUiUp+jQcoPnAKzKpViXGmy23AsnL1GJdT7l2ac4E5I9aqCi/fIbIVEWksMifAjZLHYlWNrO3fwmTcY7lCkr0gZ5tGcAEBVr2Q7c6G2/MmPPQc8ViRWPIYrH8SrOLjp41fvjwI7UK1M0JjKhnwmjiON4zJSQmBTfZPIea28t+VLo6bDEoi0gMM5E5Pv5v98Ih37cBBVo7PuDyz+PFy2lS7dAgv67Wj7BIBGWpTnW3EKd6lw0juRawt5sdSyFeq6dJpgRT7W5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gKKk0XoB4XQUp49SgpGlaWSDRxe1hJkXB8hf87pfg0Y=;
 b=rka75OOC7tQwckUBYggpyLr6xsUBq/Uiu4JhQIDsGF+t+zk3l2W570caQzQrapMgId77fjjvZasqRUORpNv3lAzNWt0N0rq+ul6Y3Wsh3rQhpPNfwYUMAlT0k1qsRs91eGNXqE7HuPYFS/mRW+lAHUD8JURVANE1eRCrbntFOIc=
Date: Thu, 4 Nov 2021 10:16:33 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>, George
 Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Christian
 Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Ian Jackson
	<iwj@xenproject.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16 v5] gnttab: allow setting max version per-domain
Message-ID: <YYOk8fK5uGeJEBP9@Air-de-Roger>
References: <20211103145719.96162-1-roger.pau@citrix.com>
 <e50141eb-f776-4b8d-024d-709614143ce7@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <e50141eb-f776-4b8d-024d-709614143ce7@suse.com>
X-ClientProxiedBy: FR0P281CA0068.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:49::13) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 34dfe88b-fa49-4549-89cf-08d99f73cf2a
X-MS-TrafficTypeDiagnostic: DM6PR03MB4841:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4841EF58012D4C5F03CAE14D8F8D9@DM6PR03MB4841.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: GNBhhdIgtEl+hyVjNmNBFlidVDFzo7rWtLaIkVlVhb1EbLDFGHhDtjn7p/924IPADmWG9n23pO+zhyGmqtAAzKEu3Hh9J8M+8AaakSkpmOmtuQ48sN+bIf8FnZ0j6EguMQ7h1X43D4c+4XB9gzVLkQW1Uy0dv/Xp4sRPaqERFIekDobHOXuUHzh1RHXKVbeMZ1HD2umlm90UYf0AXHNZqNQWa2gsBnRVX8GYlxhAOU2MRTmLOgdCvnf+eqah3GiE6slHCOwRvAXHeZQ0Tulla9yWWXF3tA6QOv+AV/RfHHSiFVTPvpZQgTF3RXPZMUUTyoXlLs45UvFNXgzS4h2DPMraPi7CnGl1Ja7cluOmV1dkN3gyjz4AMHPiA/W7dEzG1EHFqcAEz6OGPDoGDCj1XukTihX7FUzCnc2gFvLWrYBR82sF880CcXeYxpaVIiKoNztPzckJo1SKtSm6yKeAU+rpSd4ADTkOloC1uO1UY6K147Msjl4J1mJQ6fYRhQoMP7Bx2bcgZjnmEbOpCF30/cdrCHtlCduv9btJrNsLC14bVAaAZ8EwtRYCtTQYG//phfyJoxISdDhDRqOquddGX8PUN/8TXXZJAOviVCJk9Mple56iWNlYusPNMeCmqfZT67atBLkwZyLEPy9C4BeY1Q==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(33716001)(6916009)(66476007)(54906003)(2906002)(83380400001)(86362001)(316002)(66946007)(66556008)(4326008)(82960400001)(85182001)(956004)(8676002)(9686003)(5660300002)(6486002)(6666004)(508600001)(38100700002)(8936002)(6496006)(53546011)(186003)(26005);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TzJBWUZoWVkvOFpLSXBaRENGNmNqNkxwNGNDNDRSM3J2eVlRbTMwemZObWhC?=
 =?utf-8?B?OW50Y0dpcFNkRi9mUXRURVRQcFZBWXdMb0I3eHRoL3lRbmNVVVh3cmMvVXgx?=
 =?utf-8?B?dU5LanVMb3cyTnRGQ0JpSis0SFVJeThzRmdKY25GbVlZejVBNFh3TU5OeWdy?=
 =?utf-8?B?LzNwNWI0WXVvRkUxR2JaWjAvMWtqeWhvL1ZlK1JBVlFXOENhTWVaU0VqMXlr?=
 =?utf-8?B?blo0VVZMVzQrTm00TmZ2YUZVblhzY2phTk5UaXQ1UEhjVk9UZ0pEWDZ1eSs3?=
 =?utf-8?B?R3JmeEFzR3ZMMU1TWW9iYm1yM2tjc3hmT0hrK05aK3JnVktqYXFoNUJrdE5S?=
 =?utf-8?B?MTFHdWIzSFZacytZUlFZa2hHS0NPdjA4Q1BBckpPWXdPcXE2MWpMbFhwMnht?=
 =?utf-8?B?K2Q3WG5TVUQvRXIzU2VoZzhzWXdPQW1pbjNBYnFGK09zS28rYUptU2FvOGFj?=
 =?utf-8?B?dnJrWFVKY0ttUWEyS1FEYWVSLzVYdGw3Sk00QXZEYkV6MVk3TFNRQmVHUjZU?=
 =?utf-8?B?ZEk5b3Y1MmpGUXdsTTVHSUowQXRtMFp1bnhzcWpxOFd3R29PM3hJeWdyWFpn?=
 =?utf-8?B?Rk1ZRjg3N0lJUnM0MytucmI3TUx1Wm5EU0YwUlkrYmk2cW0xeHYzaytRWGEw?=
 =?utf-8?B?cG9sZ2VDbEM5MUdLWkVadzRFNXN2NmlNS0J3R1FrOEp2MG1iMHR0amFMNW4r?=
 =?utf-8?B?bVMyeEtJSDYrYWY4aXFENStzd1oyeEhaY2dhS0FRK0s2MGdmUE1FOTZoVUdI?=
 =?utf-8?B?clBZWVRVb3N2cU10S0lKU1BMeUpHYWVuU1d5L3NDUlNBUlVWOW9zaW1ZMVpp?=
 =?utf-8?B?b2NlS0FCa2xNN0ljczZCMDVQczdoY2Yxa3RJb0N1b3FDT3Q1Qy9WcE1DeUc3?=
 =?utf-8?B?UzJEL005N0xzTVNIQWkvbXV1eXllWTVXdzZBY1NtUG0xRG9GWXg0SnpSL3Nz?=
 =?utf-8?B?Y3o3MDhTSVByY3E2NjZNT2F5N3FqSDdXZ2M0WFRzaFpVcGV2M1hZdXo5VkpD?=
 =?utf-8?B?WHN1c2lnYnZpMUZodG9TTEdmdzdUVC9jamdOVjJEMXcyM0Y2OEgyelYxTlVO?=
 =?utf-8?B?cUluMUVjY0VndkhabHVDczRzWnV6ajkzOFhlaGQwV2tmYlpIUUFVL1RpZmF6?=
 =?utf-8?B?Q0RPbmw0Q2JLakhMRi9qcmNQTTVaS096eTFtcFphVlhuNnJVckpQYkovUzFz?=
 =?utf-8?B?RE1WYllGbEphejF3VmZUS0FCQytoTmQxOVJnSE1tK0E3MElnVThnTko1Zktn?=
 =?utf-8?B?NkVrbTdlbGw5UkRSUS9hdWFMa2VFWVV0SzZ4ZnRNV2I3R2xZc0FVMmkxYVdJ?=
 =?utf-8?B?SnYvVkMvc0lwSU5GU3k3ZFZ5VEUxZEwydWJmNDVOSEF6ZHczdHJlTWhVaXVU?=
 =?utf-8?B?eDQ4SS9oaFJoT2hRMVhid0E0a2UzbTVXNHBNTEU0VUdjRGh3bG1TQ2FtdHRo?=
 =?utf-8?B?YlRMRXpacG1MbGhxYkJGdHk0UW5ZaGs3UHJGbCtxekZDNFZveVZWWlJpUmlh?=
 =?utf-8?B?ZUJMWUIwUXpYSVFDejhuanNUQ0x6UHFRUGdBb3pvU2R3M0pRZTRVQytveVNF?=
 =?utf-8?B?Z3lwNXE2ck5qaG9rTUF6UEpMeW1rUE43cUVHdllpZUFJZlA5M0xBK3pwaFNC?=
 =?utf-8?B?L2J3WWQ0cFJ6c0drZTFHaitKc0lFUUpOQ0M0UDl0bDV4NmdIUmtRM210ckRp?=
 =?utf-8?B?Y3pYZ3dqTXBKRHBDM0Z1OC9MMWUwMkJFanRCcG41RUFteWFDZXhuZGx4ZUVl?=
 =?utf-8?B?b0ZtZGFNeisxaG5wRDRzem1pc1V3bTYrdGdZTDAzYmdPN3I3aEpOdExNN1Fa?=
 =?utf-8?B?MVE4MXpWT3o3WmZ4VzJMQkNVL3YxVFh4QVp5UWpiVDE5Nkd5eWE3MGtvU2VR?=
 =?utf-8?B?cGduNjMxYzVQc1R1NFUzM2ZHbWNxUUk2YVd3eFE0ZFNINERUQ01FTTVDeHVT?=
 =?utf-8?B?VnlDZFN4UTJlQ1N5TmxzOFZuREZuTDFGMENnK0Mvd20rWjRMb3F3RVA2ekVm?=
 =?utf-8?B?clUrMUc2cSsxWm9YanJXVU40WWROcDlISU93aisycTlhYXo0TWtobENjNytu?=
 =?utf-8?B?QVczVnZZRmpRNlVzT1pOMXBNdGFYb0RkMVVCZ2M1dDNXN3NuVXF2WmNLZmxS?=
 =?utf-8?B?TWt1bGVtZkIzSXRuUW5zVmszeFpNeWJGWlFmSDV2U2J0RVNTMDlRQ3BmUGQr?=
 =?utf-8?Q?2hEoslQ0/8O3rPSKNsLwK9U=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 34dfe88b-fa49-4549-89cf-08d99f73cf2a
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 09:16:39.6856
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ElIZDM8y2SlNgfwdL1M6kEAkXKQLy1qpVLiP8QFoXkf1pgfPnTuZgNiM10bZhiWuCxc5Nt7Awc5+UNtCPK9o3g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4841
X-OriginatorOrg: citrix.com

On Thu, Nov 04, 2021 at 09:55:03AM +0100, Jan Beulich wrote:
> On 03.11.2021 15:57, Roger Pau Monne wrote:
> > --- a/tools/libs/light/libxl_create.c
> > +++ b/tools/libs/light/libxl_create.c
> > @@ -454,6 +454,28 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
> >          libxl_defbool_setdefault(&b_info->nested_hvm,               false);
> >      }
> >  
> > +    if (b_info->max_grant_version == LIBXL_MAX_GRANT_DEFAULT) {
> > +        libxl_physinfo info;
> > +
> > +        rc = libxl_get_physinfo(CTX, &info);
> > +        if (rc) {
> > +            LOG(ERROR, "failed to get hypervisor info");
> > +            return rc;
> > +        }
> > +
> > +        if (info.cap_gnttab_v2)
> > +            b_info->max_grant_version = 2;
> > +        else if (info.cap_gnttab_v1)
> > +            b_info->max_grant_version = 1;
> > +        else
> > +            /* No grant table support reported */
> > +            b_info->max_grant_version = 0;
> > +    } else if (b_info->max_grant_version & ~XEN_DOMCTL_GRANT_version_mask) {
> 
> Aren't you introducing a dependency of a stable library on an unstable
> interface here? I'm surprised this even builds, as I didn't expect
> libxl sources to include domctl.h in the first place.

libxl API is stable, but not it's ABI, and libxl strictly depends and
uses domctl. See for example libxl__domain_make and it's usage of
xen_domctl_createdomain.

I think the usage here of XEN_DOMCTL_GRANT_version_mask is fine.

> > @@ -219,6 +220,13 @@ static void parse_global_config(const char *configfile,
> >      else if (e != ESRCH)
> >          exit(1);
> >  
> > +    e = xlu_cfg_get_bounded_long (config, "max_grant_version", 0,
> > +                                  INT_MAX, &l, 1);
> > +    if (!e)
> > +        max_grant_version = l;
> > +    else if (e != ESRCH)
> > +        exit(1);
> 
> Would be kind of nice if out-of-range values were detected and
> reported right here, rather than causing puzzling errors at domain
> creation. But I have no idea whether doing so would be inconsistent
> with the processing of other global settings.

Hm, it could be done but doesn't seem to be common. AFAICT
parse_global_config just reads the values from the config file,
whether those values are sane doesn't seem to be implemented there.

> > @@ -1917,11 +1918,26 @@ active_alloc_failed:
> >  }
> >  
> >  int grant_table_init(struct domain *d, int max_grant_frames,
> > -                     int max_maptrack_frames)
> > +                     int max_maptrack_frames, unsigned int options)
> >  {
> >      struct grant_table *gt;
> > +    unsigned int max_grant_version = options & XEN_DOMCTL_GRANT_version_mask;
> >      int ret = -ENOMEM;
> >  
> > +    if ( !max_grant_version )
> > +    {
> > +        dprintk(XENLOG_INFO, "%pd: invalid grant table version 0 requested\n",
> > +                d);
> > +        return -EINVAL;
> > +    }
> 
> Wouldn't 0 rather be the most natural way to request no gnttab at all
> for a domain? (Arguably making things work that way could be left to
> a future change.)

Indeed, but that's not part of this change. I will post an updated
version of the grant disabling patch separately, as I don't think
that's 4.16 material.

> > +    if ( max_grant_version > opt_gnttab_max_version )
> > +    {
> > +        dprintk(XENLOG_INFO,
> > +                "%pd: requested grant version (%u) greater than supported (%u)\n",
> > +                d, max_grant_version, opt_gnttab_max_version);
> > +        return -EINVAL;
> > +    }
> > +
> >      /* Default to maximum value if no value was specified */
> >      if ( max_grant_frames < 0 )
> >          max_grant_frames = opt_max_grant_frames;
> 
> Neither here nor in domain_create() you check that the other bits of
> "options" are zero.

Right, will add.

> > @@ -69,7 +69,8 @@ int gnttab_acquire_resource(
> >  
> >  static inline int grant_table_init(struct domain *d,
> >                                     int max_grant_frames,
> > -                                   int max_maptrack_frames)
> > +                                   int max_maptrack_frames,
> > +                                   unsigned int options)
> >  {
> >      return 0;
> >  }
> 
> While arbitrary table size requests may be okay to ignore here, I'm
> unsure about the max-version: Requesting v3 is surely an error in any
> event; I'd even be inclined to suggest requesting v1 or v2 is as
> well. Adding such a check here looks like it would be compatible with
> all the other adjustments you're making.

I think if the grant table is disabled at build time we should only
accept version 0 as valid here.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:19:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:19:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221341.383004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYth-00038S-Qm; Thu, 04 Nov 2021 09:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221341.383004; Thu, 04 Nov 2021 09:19:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miYth-00038L-Nk; Thu, 04 Nov 2021 09:19:01 +0000
Received: by outflank-mailman (input) for mailman id 221341;
 Thu, 04 Nov 2021 09:19:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VHTO=PX=arm.com=michal.orzel@srs-se1.protection.inumbo.net>)
 id 1miYtg-00038D-Pu
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:19:00 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3d61db30-3d50-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 10:18:59 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6D9B31063;
 Thu,  4 Nov 2021 02:18:57 -0700 (PDT)
Received: from [10.57.26.6] (unknown [10.57.26.6])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B36253F719;
 Thu,  4 Nov 2021 02:18:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d61db30-3d50-11ec-9787-a32c541c8605
Subject: Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a lock
To: Stefano Stabellini <sstabellini@kernel.org>,
 Ian Jackson <iwj@xenproject.org>
Cc: Julien Grall <julien@xen.org>, Julien Grall <julien.grall.oss@gmail.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20211026122903.15042-1-michal.orzel@arm.com>
 <e5632a4e-db98-41b4-1045-2b3532c098fa@xen.org>
 <70c30a6c-b779-805e-079a-41bb484894b9@xen.org>
 <cb452c0c-ccde-7798-c403-f972b48a2c46@arm.com>
 <01545115-e82e-2a9d-a8e4-da9676080c0f@xen.org>
 <alpine.DEB.2.21.2110271557570.20134@sstabellini-ThinkPad-T480s>
 <CAJ=z9a2SSgG7a87_xTGT5LeNLgubOLQf1+dbnrsTsP8_p5ErJg@mail.gmail.com>
 <alpine.DEB.2.21.2110271658330.20134@sstabellini-ThinkPad-T480s>
 <4554621d-63da-ea3e-e56a-4e01d0cef347@xen.org>
 <alpine.DEB.2.21.2110281311030.20134@sstabellini-ThinkPad-T480s>
 <24959.49895.14808.77881@mariner.uk.xensource.com>
 <alpine.DEB.2.21.2111011341480.20134@sstabellini-ThinkPad-T480s>
From: Michal Orzel <michal.orzel@arm.com>
Message-ID: <9955c390-e5a4-0e58-f0db-b070249d3b16@arm.com>
Date: Thu, 4 Nov 2021 10:18:37 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.21.2111011341480.20134@sstabellini-ThinkPad-T480s>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 7bit

Hello,

On 01.11.2021 21:51, Stefano Stabellini wrote:
> On Mon, 1 Nov 2021, Ian Jackson wrote:
>> Stefano Stabellini writes ("Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a lock"):
>>> In regards to this specific patch and also the conversation about 4.16
>>> or 4.17: I think it would be fine to take this patch in 4.16 in its
>>> current form. Although it is not required because PCI passthrough is
>>> not going to be complete in 4.16 anyway, I like that this patch makes
>>> the code consistent in terms of protection of rbtree accesses.  With
>>> this patch the arm_smmu_master rbtree is consistently protected from
>>> concurrent accesses. Without this patch, it is sometimes protected and
>>> sometimes not, which is not great.
>>
>> It sounds like this is a possible latent bug, or at least a bad state
>> of the code that might lead to the introduction of bad bugs later.
>>
>> So I think I understand the upside.
>>
>>> So I think that is something that could be good to have in 4.16. But
>>> like you said, the patch is not strictly required so it is fine either
>>> way.
>>
>> Can you set out the downside for me too ?  What are the risks ?  How
>> are the affected code paths used in 4.16 ?
>>
>> A good way to think about this is: if taking this patch for 4.16
>> causes problems, what would that look like ?
> 
> The patch affects the SMMU code paths that are currently in-use for
> non-PCI devices which are currently supported. A bug in this patch could
> cause a failure to setup the SMMU for one or more devices. I would
> imagine that it would manifest probably as either an error or an hang
> (given that it is adding spin locks) early at boot when the SMMU is
> configured.
> 
> The validation of this patch would mostly happen by review: it is the
> kind of patch that changes some "return -1" into "goto err".
> 

In order not to leave this patch high and dry:
I can see that Stefano and Bertrand are in favor of this patch and
Julien is rather against. Therefore I wanted to ask what are we doing with this patch.
Do we want it for 4.16?

Cheers,
Michal


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:26:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:26:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221349.383015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ0t-0004Yr-Ii; Thu, 04 Nov 2021 09:26:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221349.383015; Thu, 04 Nov 2021 09:26:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ0t-0004Yk-Fj; Thu, 04 Nov 2021 09:26:27 +0000
Received: by outflank-mailman (input) for mailman id 221349;
 Thu, 04 Nov 2021 09:26:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miZ0s-0004Ye-Hl
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:26:26 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47eb0554-3d51-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 10:26:25 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-32-tUFMG11DPbSuS-Cf6S53og-1; Thu, 04 Nov 2021 10:26:23 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4384.eurprd04.prod.outlook.com (2603:10a6:803:6f::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 09:26:21 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 09:26:21 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0001.eurprd04.prod.outlook.com (2603:10a6:20b:92::14) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Thu, 4 Nov 2021 09:26:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47eb0554-3d51-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636017984;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=REfHvitxeO5kKWtpDJ1uPc/dax70aeONLAz/WVTHs6s=;
	b=V/rB/Fjs+fmzY81t/uRFBzxeS6+O8pXDsL4pVYHkdP8sow48DX7QRrYeOvP/8Ur7ZsYtQA
	MpOdIQHqyjePNM8JzTH386o2i/N6qsNRBZQh+e1ypBtuFyQzIGipBPaA1M/zGLL4k/jKhk
	wyTta8spFPVXjp2WyTKj1R1VnlY8pQQ=
X-MC-Unique: tUFMG11DPbSuS-Cf6S53og-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=P0pFSBg7qJfvLwjtBGSw//T8QlNsIRbCo1lYlKHDgSn7RNriq3uN2EjXB6zqMZ+2MhWB4rO54uiueEu4b/KW7mJLb9mCGf1GJQBu/M+ezHI3+dr5z9MqO5CI6mtVQhzCxeBKeD9oKHV/Q/AymFV2ovnBkGWRjv97xb5lVHKf6ylIW/tJg347Vv0qMO0YE1jhZyar/jyI/I9vMEuRNMr7EJNnj1BNf5R7P8YSOpsxAZCjtlWUezrHmY5lSaxzK/rYJl2AAw8LYuOAbUuceYuujCLgtdFufnR2DBc87gM2SSjPG1hdL01BUXM8xrvwjGZ8tzOnV5gFMu2GnHmd3u2hHg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=REfHvitxeO5kKWtpDJ1uPc/dax70aeONLAz/WVTHs6s=;
 b=RaO/q2SABPF2A8e0mkEVVWET0wT5Kxr36lsbS1a4xyJGibfpUpttZ5T+jGo48WBhj0BavIkeiwY2DbYND4g5q25X79qO3T4EUBGDi6mmNLO6cp4ZGINHnekd07qwPeSuj03Ps/eOUAhcc+hrj/nD0XgFfylqIgMS0GAhO71pLs+qNde6YUGSznvqAJvEdcHAjn7ri/UURn9nk+kfAFiH5bL5NpaJJ1qzG8HkYiBtfLhytqhkb3rThsYnf5JZdSYea4WzG9BaYYP/eIuqtRu+a5ileqqOmpXO4uAJmMxmwtjQuVyAjOYCKdXAa3oNxX2ep1Hidz2jtiKpI349bAnhAw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a3f722ea-8f66-8632-a243-d13e97d5bc9d@suse.com>
Date: Thu, 4 Nov 2021 10:26:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 11/15] xen/x86: call hypercall handlers via generated
 macro
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-12-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211101152015.28488-12-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR04CA0001.eurprd04.prod.outlook.com
 (2603:10a6:20b:92::14) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 63837cbe-9221-490e-ea3c-08d99f7529e8
X-MS-TrafficTypeDiagnostic: VI1PR04MB4384:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4384AAB6CFB44F3169C9B4ACB38D9@VI1PR04MB4384.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	M3SpjnDbjQV6yjbzDZxR/9q0MTCY7GUr7OLaKR76wbhcZQh6gXD1vmkwRrsPxqFT1UTXHZVNp/Lm7p/KVhqp/S899dgSpHqsIMNYulqDrlNn2jQAqr1k5rVAlaZDMS+t3/8kChTx7mkqFnp35usToTKFATDMpFi3+nKz7YtnvYDd2DVIPFri1TWH0hUZzO3FOQmY+vPOqKWGRDBpoy0HTjN/yXIEbfFYT6psBLT6WmCdtULRx+suUN3hjHi0jd8Qurnvp9Ldi/vpe4TI586122GniCRJ4sqfWqUWL621103GNPeseDcWXUAOE47Ofw4KZhApqqFKhOBxVmP8dxnFhFUXNsfiFks/ZPWxTK/jhEYdZa06WOMKvQN6iRUZjiTeyLvWmjQHKuH7C0lGOM+eBl6JSrX1AzkliPyU/L7fzqz/YSBPa8lqu+O0Inx65w/F0wsrHzPl0AdsdApwL6YMU0qtRRADnjiqfxUgBdCPc4t6v8RnR5NrZcv7xZIT7uKTNhOsiIENEzphunMMoZg0kP4qEsTQ6SoUQJJAC/2JczX+RO0Lu7V6mm/zw0ok4f+1hVFB9WotiEZMCVMUS1sP6QKcnf8H7Ydeen3EP5XZ4gpPhGHUOhQ3mCoy6WFu1OBS14hx7NCwtrqf4DjaHNsmSEPO6MuwSsyTZ6dqNqB5ccIsmr9JElV0JWwmc3wU6WZ8kx3p7y4Rp4vINA4npFW/wVuHfLUIsFprx1anCpkUObNbS8GjKmd7/PPlgpFiS36F
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(86362001)(26005)(186003)(38100700002)(956004)(6862004)(8936002)(2616005)(54906003)(16576012)(6486002)(316002)(37006003)(53546011)(36756003)(31686004)(508600001)(66946007)(83380400001)(6636002)(4326008)(66556008)(31696002)(66476007)(2906002)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cVl3WFR2RDBsU0Zka0tNS28yYXVWeW9LMzdWbE1vWGFSVjlaU1FmUzlmU1VW?=
 =?utf-8?B?ekUxWGxoNmM2QVhnM2NuZEl0OS9lM2ZaSXZPU2o0alIwSkVzQVBlQkRLeC9a?=
 =?utf-8?B?WWRqYkoySVVMRmJrUWltcTQ4UFVpc1IzczhrclIxWDM2QWFXWmRtWk5jc3M3?=
 =?utf-8?B?M21XTi9FbW5ERkhESWVzREsxN3lQZXhUT0xaZU1NT0VJYUZialRKRHBCZm1F?=
 =?utf-8?B?M3NjWVJIZEJOczM0QkVqcHJYVkJhc3IrM05HRjVqQXlnOXZzaFcyL05ES1Jo?=
 =?utf-8?B?ZmlCdlRZT09YSFdPRVEvaSsyMGIzM1dsQ0IzRlEvVjhwT0xyOU9VOWgzK2FZ?=
 =?utf-8?B?SkFiQnRnbEt5VmhYdVlVNmFjVGJyd1dkeUUwUm5UZ2RyTDVaOVF3d2pZbG5N?=
 =?utf-8?B?Um5TZWxOaXplemxCc2lXWFlqVGExZkxHaXdadjZ4Z1JBR2dpUERJVnUrWXN0?=
 =?utf-8?B?UHZwYmFLUmZJVmE5aGFzRXd4Q0xOZWVSbC8rRGdVZUxla2JIZi9hSzhnQXBB?=
 =?utf-8?B?eTV2c0cra1V5WWtzTUhTZVkzUE1pZjE5MWQ3ZXJaU3hGYnEyNlJKVGpoTFF2?=
 =?utf-8?B?VjV2Tlk1S1l0L1J0a2FyYkNmZFhWQXB2SlhZTHNCb3JNbENKdG1MT2hxNDFu?=
 =?utf-8?B?WXNOczQ2aXNPbVdDaThFaFFxdUJtNW1LV0RmZ21WMTM3QTdBcWl4eG10VTQv?=
 =?utf-8?B?K0FKci9PaWpCZitFa2ZaOGFmVmJEb3JBTll2THdIKzdaN1NWR0ZRaTJPUW9H?=
 =?utf-8?B?N2w4Q3J3ZC9CUGRvQVp6TFBwK1BJS0swQUt5eUpXb2dPOWw2OXZpUjJyTVNY?=
 =?utf-8?B?TkExYkh2ZWUxdEdnSXRhbUlIQkNvY0J2QWp3WlJDV1FhZEgxajVyMG5kNFMv?=
 =?utf-8?B?azA1MG5QR3F2UWwxN3lmb1QxcGNPR2NCNTlaRnRSK0ZVTzQwM1ptZ3ZqTU8w?=
 =?utf-8?B?dXRVT0dPWDAxU29ObHZ0bGhDMTRFVmhRLys3RlZNWXNBdC8ycEh6Sk9ZOXMy?=
 =?utf-8?B?ZDRYSlBVYWdaTUM0Z1NhNGNCYkI3dUFEc1MwWUN4aHdGSlJCVFRIRVdldFhO?=
 =?utf-8?B?eHFWRktRUW5zVlZEWGpxRHpmc09wYnl3aXQzUHJRamc1eUxjWlo1MEw2aXVX?=
 =?utf-8?B?WndtdUprZ05TaGpic2l0VWpNLy9ZY1E2TWZLVTZTaDlob1owUy8ybVM3STFu?=
 =?utf-8?B?bzc1d256T3F2NW52REgwSUNINkxiWStlS2Q4VFhJbExqcFh5eGd1N3dLdzJW?=
 =?utf-8?B?WFV5MjE2b2VNZFprMllhL1RYTjFGbHRMRDV4Nkk1dGU5VDlya1E3N21CQlJZ?=
 =?utf-8?B?VUpQMVI2aFJaQi84VEtzeW1GL2w5RjRVbG9iZjlVcklwTTFsVkdDTmNTS0Js?=
 =?utf-8?B?SmtsYklIOU5lKy9Nc1dxQjU4NWtMYzh5bTY3OHZDRnA0MTNFUjlnNzlHNi9I?=
 =?utf-8?B?N0UxVGZXS2pKUG42WFNOeHI0TzdhV3RYd3lvUVh1emszc1pCNTh5RDNBWnBk?=
 =?utf-8?B?Z2crOHNZc29oNmwraXhET3dLRDdkTStIbmRWc1BvWGJFeEUvcEhUQktKUkE3?=
 =?utf-8?B?QUtGWE8vLytKcjFSWnh1cW1DdUJ6YWFMUDNaNXBBMDJTSGw2YUxoazJOdzl2?=
 =?utf-8?B?TnZmeEVqR3QySEZGQXIvZTdlYnVPT3czRnNhOFRyeTc4TllMbXJBVTd5QkFq?=
 =?utf-8?B?cFVadnhKU2p4UjNOUDRwaVU1OEQyMERRQlFkNTNsNnV4T29BWjJzb3puZTVr?=
 =?utf-8?B?d1prR09TKytMQWdrYTlDR2xNU29sZG1YRW1XTEdYT3NUVTNabkVUczJuR1ZH?=
 =?utf-8?B?ZVp6RFVOd1crOXFmUUJzTWV6OTh1Vnd5K1dWL2k0bmIxU3l1NUhxb0lPblAz?=
 =?utf-8?B?clh3Rk9kcGVtOFcrRUtJUDkwWXBkT1A5UTBGQ3J6UDJHbTRNcVdWeGNHRERD?=
 =?utf-8?B?THJBd25zS0NWNGZ2cWxXdmg1aXhaUlEyUzd2TFpqbG1LQTh5UXJDWnM2eE00?=
 =?utf-8?B?ZnIxb1AvUXpuVElTaDY0TjVCdFVsRTgrL013cFdFckk0TVJyMXVkaWJ3TitE?=
 =?utf-8?B?VXVVdHUvT09ZMWU2SEJxSlptdG5hRmJ1RDl0YitRS0d4VmpkNWYzSkxidFBh?=
 =?utf-8?B?aEhjWGhwNWt4T3J0QzltQzVacDhBMzI0ODNyTTBJOFdRVXJlMTZEWm9nM2c3?=
 =?utf-8?Q?t3GSgA+AvxMl2xhlbHd0zeE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 63837cbe-9221-490e-ea3c-08d99f7529e8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 09:26:21.4265
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xqZDu89UiASCkqouZRnQtK6vyZUEWxX9B4EiD+F74TKj1Qfl0zBVD1t/tdJE7Q+1jj1NZbM2F0SDkctBZKrefQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4384

On 01.11.2021 16:20, Juergen Gross wrote:
> Instead of using a function table use the generated macros for calling
> the appropriate hypercall handlers.
> 
> This is beneficial to performance and avoids speculation issues.
> 
> With calling the handlers using the correct number of parameters now
> it is possible to do the parameter register clobbering in the NDEBUG
> case after returning from the handler. With the additional generated
> data the hard coded hypercall_args_table[] can be replaced by tables
> using the generated number of parameters.
> 
> Note that this change modifies behavior of clobbering registers in a
> minor way: in case a hypercall is returning -ENOSYS for any reason
> the parameter registers will no longer be clobbered. This should be
> of no real concern, as those cases ought to be extremely rare and
> reuse of the registers in those cases seems rather far fetched.

Considering mem-op where certain sub-ops can return huge positive
values, may I suggest to amend -ENOSYS by "(or the unsigned equivalent
thereof)" to make clear that this case was also recognized/considered?

> @@ -55,4 +42,45 @@ compat_common_vcpu_op(
>  
>  #endif /* CONFIG_COMPAT */
>  
> +#ifndef NDEBUG
> +static inline unsigned int get_nargs(const unsigned char *tbl, unsigned int c)
> +{
> +    return tbl[c];

While maybe not overly relevant in debug builds, it doesn't cost us
much to use array_access_nospec() here, so I'd like to ask for that
to be switched to (replacing the original array_index_nospec() that
you remove). Preferably with this adjustment
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:29:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:29:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221355.383025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ3M-0005EA-3R; Thu, 04 Nov 2021 09:29:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221355.383025; Thu, 04 Nov 2021 09:29:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ3M-0005E3-0W; Thu, 04 Nov 2021 09:29:00 +0000
Received: by outflank-mailman (input) for mailman id 221355;
 Thu, 04 Nov 2021 09:28:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miZ3K-0005Dv-It
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:28:58 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a29f6c12-3d51-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 10:28:57 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2058.outbound.protection.outlook.com [104.47.4.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-19-lKlKu7G1N0OrFGuaCmXytQ-1; Thu, 04 Nov 2021 10:28:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4944.eurprd04.prod.outlook.com (2603:10a6:803:60::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Thu, 4 Nov
 2021 09:28:54 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 09:28:54 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0026.eurprd04.prod.outlook.com (2603:10a6:20b:92::39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Thu, 4 Nov 2021 09:28:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a29f6c12-3d51-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636018137;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=49CtYtBMTrJEQjLrxr9q4WUukTfd0TB81+zhmPYcj5s=;
	b=TI6lx2+1ul47ncfXXJBGIajERFlBuBjBqdqu70yJGmZ8BKczo7RfnTQYeppmJsBGsLHgTR
	OGsaTjr3bEzqczr46zgGlQrHgxra/MMWl0nqJjPl9ZAkHdrUBfTpuVFr2+9188S1zuLaY5
	XL0MwyQ1AyCRHIPleRSPztyGmDQ3IUM=
X-MC-Unique: lKlKu7G1N0OrFGuaCmXytQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kWQPFL86FWLZihKZrccVusQBOtYgZT6w0v44JMISbK4xLQD1e168mG2gxgoetR+6K01xSN8DybWjsFt9iiiH+CvDCGkJJ/LedNag/mPwrxNK3wHygJONS2uXRoI3dlfFXiRkbuWahEV2g04DlHPRB7JXtB0zCRgm7030FeJe0NjG6fBcojPtfUvkGu2mWT9sdydAr/EB9iIbXGd7iLFW3m7Ofr2lXl5l2GVCm35LxMt/TwNsnQAz+apbG+upPytWOvRycDYhaFfKudf/qpeAZTlWhooVCUHCXv5mEmZ0F0SIpIUsJDLkQXqLnJgoqI5qz3Amh/OFXkICyqidPBD37w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KE8DEev9toGOWwWTKUArAZjTU0VFhGpTM+F7KvHF0ZE=;
 b=RsXOi02xiEKLKOM2QHwIEE2mVjE8br/IciByK7StTPRaQc9s0a/z73UMdPmQxNQVdv5xzdRXXBpcf2utz/kR68hLw9kLUmvyZQnwsEhhQ4BAdCjTwNAz4A12ivUF4Ndax4Vcz64LnOD5aQLJfFY/jRC4n7KlEGsOI1wmaYf5o1hAKfDoRrjRlSR/7lYrAni56YkOlvCNkxia41RqZ5egVpsdw7KV6syG+dsL0sZTrMNrbSjc8jksd47s5++4BPjnxL8irficTBEm26OnGD7e7ch0LCy6EX29hs6B/teIpx8o/0kUEE+ZweK4keXNkKHpdXj9q/57iH5pMIvpfoUi9g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b783d157-e8eb-9ba5-c70d-2efb7e426c67@suse.com>
Date: Thu, 4 Nov 2021 10:28:51 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 v5] gnttab: allow setting max version per-domain
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211103145719.96162-1-roger.pau@citrix.com>
 <e50141eb-f776-4b8d-024d-709614143ce7@suse.com>
 <YYOk8fK5uGeJEBP9@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYOk8fK5uGeJEBP9@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR04CA0026.eurprd04.prod.outlook.com
 (2603:10a6:20b:92::39) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d48a5a79-796c-4264-09e9-08d99f758518
X-MS-TrafficTypeDiagnostic: VI1PR04MB4944:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4944BA88E9142C2CEC7DE62CB38D9@VI1PR04MB4944.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6108;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	3TOOUDIcdWB/jEcma4X6lAOY7dwPPIajbDsBS01rabHzvdGbiXCK0WIm1cjkV9ONSW2b2q15K/UyywKA+AOfD10aKGBME4FIHPqMH0u3tH/m8TnXXL+QkT5/dZwJ+zgeLqva0SQydEHo5p3iGDTrV4l3Erc7AeRFyEitnj+vPNPeRy5AoTBooHwm/TCK/Hw5KVj12OlfNKF2rQR4RmFSu1ZBPjrzPfD4HF6rtArYZSTQzKIphbTswhEBuSU2ogDiF2WIJ2sh+pDYfvxGmnASAF3qwi2NWlGFpGiOOQy4LNEeUrU7XAb/Uyim9kyfKcVOO0048hpgy1Z0D5atKTu5z5qf9m9ME+EwG5XUTz2nwVxpgdlU/9ykTQRKSkycLGPjo/ViqE2jr36VCULlHMbYo5kGCpV+900Ba/d0RdTz6+Zq9jarwMkTjzIaNZ2/jEkRs2e1rOtnJ6nh/aAhA5FBt852OrbqII9zcqHOW360Au9SVSUlJX3iP+E6nGvXKV5fj9115cHO/dEkp/cGMyY8lJIpy4TZAYHmS8yCJD8f2t+9dGErEi3m4+Pwe0s3GuXKIq5Fsu2TlRhHS6+FEcwlNIlmhKKoy+jpx5oBdK63GNh1jb6aTefJY+FgBWDFFJVGJl3/M0JTPKEhD5Tw32Grv5Z/cblZNraC/6IgKcPSYpvVQQEKSva7VRPAkwp9/W82teSQICNDvjeH3qBFKukiAEKTg7SERQW8i4U8TfA8uI2/tNFJ/V4z1cnAIJT1Gucn
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(38100700002)(86362001)(8936002)(31686004)(5660300002)(31696002)(8676002)(7416002)(26005)(16576012)(66476007)(316002)(4326008)(83380400001)(36756003)(6916009)(186003)(2906002)(508600001)(4744005)(956004)(54906003)(66556008)(66946007)(2616005)(6486002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ssJ54WY8e8QhwChntysP48153A99mRb/0mJX3B7HfsEQ4vzkTbIXNu24on7+?=
 =?us-ascii?Q?7l+i+uv7ViTdUWkmteYaxPdYRhB+RFt8oAxeAMVz4QTSYuCG5sl+Cjm1KVwW?=
 =?us-ascii?Q?xt+xuwDpVteOO2T9xVXckQTkIk4CqyWo2kkY5Mdx7k0tV6Ns6H3oehBwidT2?=
 =?us-ascii?Q?xA1oNzhIjcAm1lxsXF7up7jWDrmvsUv3WS4Tmyn+XEZSIyXIk3YVFAq7ZlyQ?=
 =?us-ascii?Q?80crDBC/a2eZ3QJMZ6npMl7xdfeQ3nvo1ZGe2DPQgtaoQP6nFcu3YXt3pSHm?=
 =?us-ascii?Q?MvjFpVoaCIC4IB5X3o1ISqDwWu0cD14n3sYW4Oqzdztihv9RAE3spvHuUP+B?=
 =?us-ascii?Q?bpDRLrWvo0q49FEJWwz3YFDX9xY3/hdRwrFT9ERvzpcxXv6PsKzeCzTwyMEO?=
 =?us-ascii?Q?KbnzC4xc3qbPc0CMNcdYu45IDeuvqc4n0qm1+B7VSmhXByt+VAFygLOpxGEs?=
 =?us-ascii?Q?87aw0PxlShHBZGDXPQ3FAZiYDVDGJ+iG2xzoDIovTm6sNL+2CqZiY0p5CUMZ?=
 =?us-ascii?Q?JlkNE9HO2y6X4FhLMyHAYOsIvD2LABPulzhrn1z5g8Hb6smF2+5+xEtTCTl+?=
 =?us-ascii?Q?SeAzOYorcSNibqJ6Ktg0LZK8f8FqE9ZMPI0BBMuN3LAT/ZzhKrcTXnzIRDpl?=
 =?us-ascii?Q?9MHaJ7acFlivIXgSWRjjOvajpBspmdfMyTFDLltFDAXkGFe5JGw8rSnRj3Pq?=
 =?us-ascii?Q?MUHdXf4lKd4NM0+OTM4GOti+EfcoMhmfMe6WHqkjuWGp+X/sVrUKmAILcWej?=
 =?us-ascii?Q?L/E+yY7oWSvCsvYkx6b3joM5GANCCA+AK6/nqaRbDgEJRECNFeWEbI0W5GJv?=
 =?us-ascii?Q?BvY4bEyGrN766XEVKnBiJrJhblCe3/9itdZrjW6+6cSJNbfL15HTV+ldAGCM?=
 =?us-ascii?Q?oQyw0XhUL49QyJD8zR0ersqSA79rywG+8uRgMpnQWrJhzUeY66iy7Lh6JNY8?=
 =?us-ascii?Q?7EpkzZraiiOkoBRuiWV8EnEvtocOu4cnS9jNyRwLVlPrx5+1m3HHObKvJzR0?=
 =?us-ascii?Q?t06ZFKL68R5inZhMx7ZMVtCDIWjKFRVF1GB06mfS31cc0qUlo9GSENLpqLBK?=
 =?us-ascii?Q?CJx2XczqCEb7F8z0ZBG2rsNVc9HXtWd+Hq+RG5vuMkanvk/7LEn7PhqwZSlb?=
 =?us-ascii?Q?CmzotU3JbM4vGCD9mp8PvsmjOx2x7HBcPV3zESzMdwaVIj+6tv0ETlYXsi6G?=
 =?us-ascii?Q?3tNCHcEtPieEsBmiRvsRJxFj0EDuQ5ZNz99XqxU5SsxpLrISXku3Lr8WdfqI?=
 =?us-ascii?Q?a/UcrmBziKI5UmtcP9wBHviCZuzHB4Wd9GvhUkGlvDoKOLr5K4iJnKKycoOZ?=
 =?us-ascii?Q?Lqc199XK+2ECM7de8qKql1oyel0Shl0MYGfLaGK48chSfu3X1hiVtQ6Ao4O8?=
 =?us-ascii?Q?F/IsgcRPA9nUSZbnwkmBIvHV7Ue2GD2HEFuYBDH5lcUxvxha6c+gEt/CMEgS?=
 =?us-ascii?Q?usfcaXjTBBynGXhtBDUxfCKX6lmX9BdrtsVvKXkNUZPTJSh4euK6fDomdBhW?=
 =?us-ascii?Q?SOxMhP2weqCS5gaoEpbcY85SKe+W5/gFql6Q0hzozF2ksbnZCfb8oz36ihEF?=
 =?us-ascii?Q?RthH6m3dgiTGE9yk9bIs0ZdkMiNLW6INMRhE6HZSGgU5ieHuZWCmwSuRq+8s?=
 =?us-ascii?Q?q25cueI9WAqmPBCLePUIKZc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d48a5a79-796c-4264-09e9-08d99f758518
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 09:28:54.4569
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: h3uTQTb+fMq4L6KePc7dWAESdeaYmf4HIGiVs1sUiQQSnAX22paSVGTix0dxTXmgWLf3L+V5gGNybqbY7uUAHw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4944

On 04.11.2021 10:16, Roger Pau Monn=C3=A9 wrote:
> On Thu, Nov 04, 2021 at 09:55:03AM +0100, Jan Beulich wrote:
>> On 03.11.2021 15:57, Roger Pau Monne wrote:
>>> @@ -69,7 +69,8 @@ int gnttab_acquire_resource(
>>> =20
>>>  static inline int grant_table_init(struct domain *d,
>>>                                     int max_grant_frames,
>>> -                                   int max_maptrack_frames)
>>> +                                   int max_maptrack_frames,
>>> +                                   unsigned int options)
>>>  {
>>>      return 0;
>>>  }
>>
>> While arbitrary table size requests may be okay to ignore here, I'm
>> unsure about the max-version: Requesting v3 is surely an error in any
>> event; I'd even be inclined to suggest requesting v1 or v2 is as
>> well. Adding such a check here looks like it would be compatible with
>> all the other adjustments you're making.
>=20
> I think if the grant table is disabled at build time we should only
> accept version 0 as valid here.

IOW "options" as a whole then wants to be checked against zero.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:30:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:30:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221362.383036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ4d-0006Z8-F3; Thu, 04 Nov 2021 09:30:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221362.383036; Thu, 04 Nov 2021 09:30:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ4d-0006Z1-C8; Thu, 04 Nov 2021 09:30:19 +0000
Received: by outflank-mailman (input) for mailman id 221362;
 Thu, 04 Nov 2021 09:30:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F6ik=PX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1miZ4b-0005mf-8Z
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:30:17 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d040d816-3d51-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 10:30:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d040d816-3d51-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636018215;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=HX610lG9AAqpIOgB2vsQy/PwoPY/LR0f1cyu7Lq6WFs=;
  b=eeskhh40DhBdW3Z3q3sQt5e8UmLkBRDh989hb+F1vKnUILkqwB05/k3e
   iLnCYsc3hRmF7BrCDAG5j6EGj0bts/gBsY7wER43lXVe/rX46DdnlZYrL
   qWVyaqP0FycOUDjN3WfY4ckhhwZiChWTH0GARnsiSIUFBaVQ+DsqF+IrI
   8=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: f0qwi2xV04NLmTOCHM8wIeYUh6b1TqdKxbLLlWY8jxGmcu94e+9y/N7Yl9LcQBcP/lUlwJrnMJ
 RMKyTooGP+os1fHmTB2e5d66qsAZ6LUzzleOGQu1rFeuWyKI7pnCEvTvfhUVPAozI5bqx+A9Ib
 IozvCZcpr0Ci9czdAjou1adMlIlKCUmo++GHvIyXDBohlMydVxFdCR1+TROh/BX8n80KPED5/3
 T0AZBgs5eMXkzCMYMn0dUICog3OH8L0d1PYnUr+BS4JeLZ7EHVS1s4OUMneJxo7Xe9TlP+CnTL
 cVujxG0DgSSbO60j/cBgdDnu
X-SBRS: 5.1
X-MesageID: 58994990
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:SbOHGKAaeGjkVhVW/0Xlw5YqxClBgxIJ4kV8jS/XYbTApD4r3z0Dy
 zAeUW7SOviMY2SkKI9zady+px9SvsXSyNJlQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540U47wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/sxqrx+Fb5
 8p3kI2tRxwTEK3AgvlEekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvWbtIMJjW9YasZmQdbDe
 vcSS2RTcy/ufjMTOEwrA80Xg7L97pX4W2IB8w/EzUYt2EDZywZ7wbX2MN7Yf9WMbcpQl0ec4
 GnB+gzRPBYeM9COzCufxViljOTPgCDTVZobEfuz8fsCqFaUwGoUChEfS1qgifa8g0+6HdlYL
 iQ88y4vtrQ79VbtQMP0WRa5u1abshVaUN1Ve8Uh8x2EwKfQ5wefB0AHQyRHZdhgs9U5LRQo3
 FKUm9LiBRR0raaYD3ma89+8vT60fCQYM2IGTSsFVhcepcnuppkpiRDCRcolF7S65vX3BDXxz
 jaivCU4wbIJgqYjyKGT7V3BxTW2qfD0ohUdv1uNGDj/t0UgOdDjN9fABUXnAehoFKm7Fmirk
 2c+vtmD4vs0I5GBjjHUabBYdF223MqtPDrZiF9pOpAu8TWx5nKuFbxtDCFCyFRBaZhdJ2KwC
 KPHkUYIvcIIYiP2BUNiS9vpU5xC8ET2KTjyuhk4hPJqa4M5SgKI9ToGiaW4jzG0yxhEfU3S1
 P6mnSeQ4ZQyVfsPINmeHb51PVoXKsYWnzO7qXfTlUXP7FZmTCTJIYrpyXPXBgzD0IuKoR/O7
 /FUPNaQxhNUXYXWO3eMrN9NcAhTfSJjVPgaTvC7kMbZcmKK/0l7WpfsLU4JIdQ5z8y5aM+Rp
 hlRpXO0OHKg3CaaeG1mm1hoaa/1XIYXkJ7IFXdEALpc4FB6OdzHxP5GL/MfJOB7nMQ+na8cZ
 6RUIK2oX6UQIgkrDhxANPERWqQ5L0/17e9PVgL4CAUCk2lIHVOVqoG/I1KwqUHjzEOf7KMDn
 lFp7SuCKbIrTAV+FsfGLvWpylK6p38Gn+xuGUDPJ7FulI/EquCG8gT90a06Jd8iMxLGymfI3
 gqaG05A9+LMv5U04J/CgqXd99WlFO53H0x7GWjH7OnpaXmGrzT7mYIQAvyVeT39VX/v/Pnwb
 +ti0PyhYuYMm0xHstQgHu8zn74+/dbmu5RT0h9gQCfQd12uB745eiuG0MBDu7dj3LhcvQfqC
 EuD9sMDYeeCOd//EU5XLw0gN7zR2fYRkzjUzPI0PESlu3MnoOvZCR1fZkDehjZcIb15NJIe7
 d0g4MNGuRaijhcKM8qdinwG/Wq7MXFdAb4ssYsXAdG3h1NzmE1Ce5HVFgT//IqLN4dXKkAvL
 zKZ2PjCirBbyhaQenY/DyGQj+9UhJBIsxFW1l4SYV+On4Od1PMw2RRQ9xUxTxhUkUobg74iZ
 DAzOh0nP7iK8hdpmNNHDjKlFAx2DRGE/lD8lgkSn2rDQkj0DmHAIQXR4wpWEJz1J46EQgVmw
 Q==
IronPort-HdrOrdr: A9a23:BgvCB6EVmKCJ72igpLqFdJHXdLJyesId70hD6qkvc3Jom52j+P
 xGws526faVslYssHFJo6HnBEClewKgyXcT2/hsAV7CZnidhILMFuBfBOTZsljd8kHFh4pgPO
 JbAtdD4b7LfChHZKTBkXGF+r8bqbHtms3Y5pa9vgRQpENRGtpdBm9Ce3em+yZNNXB77PQCZf
 2hDp0tnUvfRZ1bVLX3OlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJr3CQKR0BsyWy5Ghe5Kyx
 mLryXJooGY992rwB7V0GHeq7xQhdva09NGQOiBkNIcJDnAghuhIK5hR7qBljYop/zH0idnrP
 D85zMbe+hj4XLYeW+45TPrxgnbyT4rr0TvzFeJ6EGT6fDRdXYfMY5slIhZehzW5w4Lp9dnyp
 9G2Gqfqt5+EQ7AtD6V3amJazha0m6P5VYym+8aiHJSFaEEbqVKkIAZ9ERJVL8dASPB7pw9Gu
 UGNrCc2B9vSyLZU5nlhBgr/DT1NU5DWituA3Jy9PB96gIm30yQlCAjtYsidnRpzuN1d3AL3Z
 WDDk1SrsA6ciYhV9MKOA4we7rENoXze2O5DIuzGyWtKEhVAQOGl3bIiI9Fk91CPqZ4lacPpA
 ==
X-IronPort-AV: E=Sophos;i="5.87,208,1631592000"; 
   d="scan'208";a="58994990"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=M/EC5jxa8K1HlV06YWDlWH1HS2ghWyz41o4FKPNrbLvj5+rVasRpk2HGvjaGpi+EPr3BsrCVlUOaZsJU73jlS/ZJzTDsl539tNQaCk38MFfeaXwsyTxLA6h0f+FnZ0S+m14qvfjJ/Isg7HE9pYTOfjlls/Rmh9/pHDof3a+JyMYHxYBK+L8Xz2EqKoNOktuFZtHbZn+yMwxDwSbX0Lw1ohe9gnYn8eqRp9E/T4BJusx6+Wyno5h+2S2gsyekf8BtcrJZK2vQ9UKS4IMKcRss5iuaABWvsN7sdmmjiKoQT2IqqzYLZw3AO1sBWyljIXnU2VzFm2Ok+LU7UXBkVACV9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=efBHgVNGpIbGL1nFIdEWwrOtaSf7azmEN6szJRLeU2Y=;
 b=AkfAYMpKq0UDmXoYQRPos1MsFGMEhOZ65e7ngdpPJGNJHFPDK7O0olIlkeQQ+Lm7tbchuMedZbpn6e2rHcquN8X2YTFMk2Y3iY37TYN0xrE1T5EwX/eLV0JzI9J9FgJoLBwBkc0PxoKgsel6hnWIacJY0fmA4gNtMarRQzrKLx8VTPj9fSKzgyJf/uY8gIDY4lzB+zfdn+z8MK08tIUgzlyi8NskYbdIj0xjPTQ9xaM0O7jqrYgvpM+S94hIeO1lg1DqHxP42U/io5TwO6gp+QNBGtXsJpazVxE8wH56HgZnlN2Pv1GvhM1WtWvo/fLx4MR0whSt2fLo+t/aMwHWBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=efBHgVNGpIbGL1nFIdEWwrOtaSf7azmEN6szJRLeU2Y=;
 b=qHwFOb2f4vsePR2oJ7cD+l3tHt57upfq3MmxMOiTAVB2CKXQK25kK3vwuwpH4tdrM8iCrIWP49jxaCZ2hFjyCoTnmjEMwFhJsjRedkbGP4MI9JQNsxNK+OuxjPV5Hwh6BSWS+XW2gZS3JyqE1Bx63kpbRtp5mOwpCNQJx5/d+gM=
Date: Thu, 4 Nov 2021 10:30:00 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jane Malalane <jane.malalane@citrix.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel
	<xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bobby Eshleman <bobbyeshleman@gmail.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>
Subject: Re: Arch-neutral name for hardware interrupt support
Message-ID: <YYOoGEDo/mSmYPR+@Air-de-Roger>
References: <b34c957f-8439-709c-d8be-cc2f5111c342@citrix.com>
 <YYD8L6MCrpytCkr7@Air-de-Roger>
 <0230a444-05f0-04e2-c20a-5bb22c0ef63d@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0230a444-05f0-04e2-c20a-5bb22c0ef63d@citrix.com>
X-ClientProxiedBy: MR1P264CA0018.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::23) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bded55e6-4026-4aac-0992-08d99f75aeeb
X-MS-TrafficTypeDiagnostic: DM4PR03MB6047:
X-Microsoft-Antispam-PRVS: <DM4PR03MB604703EF0BAAE565621DC2BD8F8D9@DM4PR03MB6047.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: bh5gt9IiMTsfElnng0qGzWqK1hPR3BrrMrPrBVZLfUjHQUMpbvgY0ZgXbyZpZkZvkYWU8M1gj4ShlqERCw3E4z4x3WR8wsKhWjAAiRiut6evXY87wDDg2h6DwvjalxaSjV0TF0gzubN0Ed66EfdHSAGq6yqMLX1Kfq22y2oj6zvnQX+tdCQClEeowwRDO2UWyU83oNBe9PwvRwtbCH+Ws8rIjrjdfHdA8ibhulS4OQ1G6lEr7kSwhuN1AMa/bfUsRbioGqX5jj6rhYcXYPLTBd4s1vgmv5X+0jjzdpUul2awDW2gX14M/8sKl+CCUVhZc9QFJ8o0zYP8kx4w1Kn2jNs72S0iebx1FUZqeYHFkixW4GFCmBFHvdJ6aa6/GMhHUNQRZMQRi4wZj+6jdOoL/XpwVExz56RfDtmRRlxYghiUHBHukCsdOigpiyNWsf8wEfRu7WDjG6zowaAac5YH9HAtJL8tI+GxWZXz56IU3Gq5xCFktoUNkU+TUkmvrPuPPZ8zM1gbm1fn9+DewCaRQpjYW8LknOBvfrxNK8UvwhF3LhfjwocnHh21KTWVzEXAI7fsKbKyM6QMeT+rbvPVoAVc5s9Qi5qk3cxXTHe3y53PmeOTGkY0m/defjZR5uds6xf4hRwIiFmGiDt5gr9Y/Q==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(956004)(508600001)(26005)(6666004)(6486002)(6862004)(54906003)(5660300002)(8676002)(86362001)(316002)(9686003)(186003)(38100700002)(6636002)(66946007)(33716001)(85182001)(83380400001)(53546011)(2906002)(4326008)(66476007)(8936002)(6496006)(82960400001)(66556008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?amZmQzJCK3lHK1FuZjQ2bDZVblFaU1MzZWpHUm1LWWxqVVhLNTA1YXBBd2cw?=
 =?utf-8?B?ZUFnZkhxMExTMW55S3NBU21xQ05lSjN5VTNIak1OZ0lHcUJYYitCYUllbXhp?=
 =?utf-8?B?cEdYMDdkSTZTRVlwR0N5VjA4WmRvNjM5MlNxTDk0dldISEVnNi9IakwxTXZh?=
 =?utf-8?B?VjVrRm1rV25uZWpiTzAxYTBNRlVHK3p4d2s5MmFUc0g1STNGWHllYzd5Tlp5?=
 =?utf-8?B?VkIwVDZibzRuZ0pyWGtXaXlydXBTbzdXMktvSjVzSW03WmlRRjdBaWtzejgx?=
 =?utf-8?B?eHZRNnJJaVF5RWpGQ2NiMVZiMjU1WGtkY1ZSdStkRWtqcm9zZGdZejB5Y2p3?=
 =?utf-8?B?QmhaQ2xoOFRvQXpHT1JVcjYybUpySEVPaEpUZnhMVXlac3V1MzFRVlJwQ3M3?=
 =?utf-8?B?U2JOMHNpUTh2YnRFSXlVVnBMcjNVMGtGZ05kNmNybEJMMXo2K3Nkd3dmMHZO?=
 =?utf-8?B?d0RBSXAydWx3a1RwZEJhUW9lYS9QK3E4Y0E5eHVrUUVVL21PdGJWOHRqZ1Jn?=
 =?utf-8?B?SHJPcGxpTzJ4eit3K3RScWJNYkdwTUhFZmc0K0VpblhvcWZ4L0wvZGdsSHFM?=
 =?utf-8?B?ZTd4MnM0ZzBMWFZaRGJqYmRsSUI5NjdaeFRVeWR0V1Z1ckRRWnJHd2lPMmFp?=
 =?utf-8?B?TlFhUjg1a3ZiL2prVmg3QW9XckdadS9leU8rdTUwQS9xdXl0K3pEdHJWWkxF?=
 =?utf-8?B?bU5Md29tcGZ5MWNXWUU1OU5EdDFNcHl4b0psdjRWdXc2b3pRSE5PRGlaelND?=
 =?utf-8?B?aXY0dW9jRG0rU3UrMUdEbkNLbExjeUdrdEtVc2x6L05GWGE5am43bC9mYjl4?=
 =?utf-8?B?ZXV6VEx4Q1FFaWlFQjhlb1huOGtOTElTWDVqNkg4TzRqVGE0bjVzZkkvbGsx?=
 =?utf-8?B?akNXNTZ6aWNiSyt1RllKSVZhOHVVOVloM3ZFQkRaTXhXY2RVYlREbmN1UG9y?=
 =?utf-8?B?K3MwREptazE3K1VnMWpicGpmRktjV1hsODU3TWZBZDZLdDhIQXVXclJLR0xV?=
 =?utf-8?B?NWlabDE5dW13LzR2US90RzVrNVN0c21EY040VW1LNFhEQmprQ2hOeWN2Z1Bs?=
 =?utf-8?B?WFRHRkpUWUtPLzdsdDRIa21iRkY5MHlIU3RJYU5Jd0tFOSsyQVU3TjZ1UnA4?=
 =?utf-8?B?enBQZVFxMWhlbU9qRlM1T0VkT0I0bk9RSzBMZXQ2cFkrVVEzdVJ0bHZVdlk0?=
 =?utf-8?B?MmkrY1ZyVTUwSDUyTUtoSHI4Nko3bmwzUDh2VnpNYlJEMGs0U0lhVjVBY0hK?=
 =?utf-8?B?S2lNUlpFL0FtSDdBZ21OQUNUNWpXRXRQUEF5WGNBS2RXOWhZekZ2NlJZVjdw?=
 =?utf-8?B?c0hkdTlTTWtzT04zdmxqMFFnbFdyY0VuTUV1TWY3WWlXT3plZXh5b2FyNStj?=
 =?utf-8?B?REplQzhUaERQQ0tDdXVIbWh4Qit2bDQvb1BPK0k3MTFDZjN3S3AvQ2p4OTNQ?=
 =?utf-8?B?TGovZ3hNM0Y5SnR5QXcyWHRXUnRyTkFiWERRUml2S215LzVQQXk2Z1hGTFNt?=
 =?utf-8?B?S2FyTE1YY1VyMlFXZit5Mk5OdEdPcXBxT1Z2Y1ZMODZoNEt1NHFyaFVQVGZK?=
 =?utf-8?B?SmxZYzB0ZFl4eGNzamprZ1I1c1lRTGw4cXRxV1FSWGxqUjlnak13U1c2YVkz?=
 =?utf-8?B?MXExL1NqNDF3WXdwR3gvbUU3RjNmSzh5dmVKTE1zcjhhNDlzTzM3WXNQN3dO?=
 =?utf-8?B?Qk9WdGlrdExrTGdHb1MrMVZFWE0yV0gvc0NUTlR6SzhGTXEwQ08vbzVLWXlE?=
 =?utf-8?B?YXVyQVlvd1dWeWd3M2MycVZKelN5c0IxQkExN3ZQaDRQcXJ6RGhOZ3NiN09Q?=
 =?utf-8?B?NU5VaDdsYUN6Z3E3S3dHcm5iZEMvK0orTjRjV2F1bS83SmdDY0t2NWN5R3V4?=
 =?utf-8?B?UlIxeTVGbGFZTTdacXQ2VUk1ek1sQjRkakZHS2laakEyUFJrc3hXL0VXOXEr?=
 =?utf-8?B?dC9sMS9HSlhyTEJxWFB3a1JZclVtdWI2UjdlZUhZTDFvOUg3ZjRUbWl5NjJU?=
 =?utf-8?B?U2NINmJjcTlTOUFkV1JZWlkrODBlQzBIck9ITXAxR3luTE1XRXd3REllVzBn?=
 =?utf-8?B?S09YQkFhc2FlSTducXBuWUhjck1naXNpWmVLclN5aUp0QjZBTDRzQnRmZitx?=
 =?utf-8?B?ZDNhT3Y4NFpZR2s2aWZjUWpKTnd2bUhMc21ycEVpaHlabUFxMGhxN3BraGdC?=
 =?utf-8?Q?HXR23qqvBNsPJWrykQR92Vw=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: bded55e6-4026-4aac-0992-08d99f75aeeb
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 09:30:04.6355
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8om5Napf9JcwBs/LNZdU0gn9nVqAEUvfdbucjjp2O25YUdSWznkaBiArbiUZDEUfmOZrfVaFw4Uaxz9ucRZSZQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6047
X-OriginatorOrg: citrix.com

On Wed, Nov 03, 2021 at 10:16:26AM +0000, Jane Malalane wrote:
> On 02/11/2021 08:51, Roger Pau Monné wrote:
> > On Mon, Nov 01, 2021 at 10:47:26AM +0000, Andrew Cooper wrote:
> > > Hello,
> > > 
> > > On ARM, the GIC is a hard prerequisite for VMs.
> > > 
> > > I can't remember what the state of RISCV is, but IIRC there is still
> > > some debate over how interrupts are expected to work under virt.
> > > 
> > > On x86, the story is very different.  PV have no hardware assistance,
> > > while HVM hardware assistance depends on hardware support.  Therefore we
> > > want to introduce a new CDF flag so we can control the setting per
> > > domain, rather than globally as it is done now.
> > > 
> > > This brings us to the question of what a suitable architecture name
> > > would be.
> > > 
> > > Hardware Virtual Interrupts is a little too close to Hardware Virtual
> > > (Machine) Introspection, and Hardware Assisted Interrupts (mirroring
> > > HAP) doesn't seem great either.
> > > 
> > > Thoughts / ideas / suggestions?
> > Is this going to cover both hardware assisted interrupt
> > controller and assisted interrupt delivery (ie: APIC virtualization
> > and posted interrupts in x86 speak) or just one of them?
> > 
> > Thanks, Roger.
> 
> It's not going to cover IOMMU posted interrupts, only CPU posted interrupts.

IMO it needs to be something like Hardware {assisted,virtual}
interrupt controller, or some such, to differentiate from IOMMU posted
interrupts, which will likely use Hardware {assisted,virtual}
interrupts. So:

 * Hardware {assisted,virtual} interrupt controller: all APIC related
   hardware assisted emulation.
 * Hardware {assisted,virtual} interrupts: IOMMU posted interrupts.

I prefer `assisted` rather than `virtual`, but I'm not a native
speaker so my taste could go against what most prefer.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:32:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:32:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221368.383048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ6B-0007AE-RX; Thu, 04 Nov 2021 09:31:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221368.383048; Thu, 04 Nov 2021 09:31:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ6B-0007A7-Nz; Thu, 04 Nov 2021 09:31:55 +0000
Received: by outflank-mailman (input) for mailman id 221368;
 Thu, 04 Nov 2021 09:31:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miZ6A-00079z-OY
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:31:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b66879c-3d52-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 10:31:53 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2177.outbound.protection.outlook.com [104.47.17.177])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-5-j_vE1JZZNY2o6D1aQ0y_PA-1; Thu, 04 Nov 2021 10:31:52 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2702.eurprd04.prod.outlook.com (2603:10a6:800:b4::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Thu, 4 Nov
 2021 09:31:50 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 09:31:50 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR0P281CA0008.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::13) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.5 via Frontend Transport; Thu, 4 Nov 2021 09:31:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b66879c-3d52-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636018312;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=YowYuaSMRJ/uJ0Zf0DC1BaJOVZ2nWimwP7x/ERMX9NI=;
	b=l1mOia+l5xvALY3mKf91QrWQgVlqSl38y5/K4th18yIlStaB+IoyMbsmvRhR9WfQUaVq7F
	nv678WF0VHXmEbZ4yk2Mo2TszMTPWCgM1BEr1XFLYnyRtCzG4BsXdcMZv+YN9u2KszcLee
	1yzO4ELwOftf/1sqElRW/8FhbPgwGNk=
X-MC-Unique: j_vE1JZZNY2o6D1aQ0y_PA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HJafmPF6+EtjRZG41nDVc2yo1q+UfAInnauRZqL5D0dy3wALsBU3E3neXuqTaLFkqlBoASeTZPyHIVoMvgaBiPhArm3AA8tAt6vxceGeLWfoVtRLCb34gYG5D2dn0W1iTKahNafmMR5LZ0rzkk724PQtMH0g50a92ONfIL2JNhd93XfVxcS+j4faJNK5ynyggZBJgoxPQhvTqWNYUULjB+zOKocpELXhDalsRzhAroQuMTL7YPESgZPUn+enUzwxywD8HRgDL7jNX3bgRb3GKetikiQDwpixTB6vv7et54JgiNyl2BSDNoxIxBbO8DpqVAHJ9C3nLhO2ENAPmX83HQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YowYuaSMRJ/uJ0Zf0DC1BaJOVZ2nWimwP7x/ERMX9NI=;
 b=kXRxht7Ksvuqq4/Y3BDwVs2Oz6BIetvvF8uBPRsCHJsozyu6pQTdo2HvBVmZccSq3jYneoVVG4gLfSHVKkKB/k8wSMe0vaccRETKe05OI68AEi/yLHT/OaEXv30gxdnkqVDaqszoWVTW2WMPzAazMG/gOrliNG5RrXgQWNbEJxylCGGcBplQr6C+dBeVmYmVndNTmLCRtFeOoixTfrxvWJ+OCvHaIStrbDTdAf9BqAokRXO+sYXWLkWYX6Hsv3gnHis1Uk2sS9XNQ5YnvRCLeuVl/LDJ9dSjOh4kmQd4egqKqiN1oHiJjt920S03F8/ClaFcjvbSiqjemGRR+GFxUw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a3dfc2ea-3df8-0d78-80c3-4bcfa023efc1@suse.com>
Date: Thu, 4 Nov 2021 10:31:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [4.16?] Re: [PATCH v2 13/15] xen/x86: add hypercall performance
 counters for hvm, correct pv
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-14-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211101152015.28488-14-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0008.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:15::13) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 41ce6161-95de-4cf0-504f-08d99f75edf2
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2702:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB270250DCAB3D141C90909936B38D9@VI1PR0402MB2702.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	osOfYUerImBB0+78VJ6nOos7BrSu5wBdWZeR1ChNfzFir5lNdCBV6oALIGU4/UpT58ksSN/C4yQueTYbS7Pkt/m/ZQ8jwqk8OP1pJQSEv/Mv9aKmj41+OranzG7eFoqp31QeyxAeo1nsHyJ/uWaOxC5vHP0f8xZRg44YoGCVQCLs/NOT38QOHUOhRKxPwYIt8TOolaRhqajUo6PMQc3z88pRWqxbgWRlGE+ELHjh7MHs92xJyc4rgUbuITeTpqpnhsfLkFjzTW5rB7LSwvIxex9phrA0PXn/TJJZXdfwDpLFGYKnYuHXpF8LD4wqEYW6Y9uk6Ces946ph9OJKj0lohE4Bt8nE0gKNM+/ma7pgmJWlB2y/n/2uVMgfqICtw6vf/nEYGLlKn3LWxU4bM1khar+Qeavc8tVK8rgcu640pkYIIL0n6AfUPhptady5kor6jo+2W8NNIw1Rk/C1Ry+64dTwCdC3wjzN1t3jin2OBAMBKpJbAuBXTSXCKH7uEEiEl9a++PyDF+fXBrkACKh6Ka/HDDiv4JZGfE4FGcgLp/W/XukuU/WahrsOTupaeyfJysiQplKvCPHnCa6pXj72C4j+oCQAv8dUPOGVnbTmKcpfBGZVtw0vcuGeMGPuVRL35nol6fKCZDjDxBP4iSkNGJtOYtUgbrs5U0bmIupvI5gqwfqIh7SepvK1XT6zsDAFy/4YRdjoA5iOfQP42DsReM7uHxNIx9dK9E8rA0YsPI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(2616005)(508600001)(31686004)(186003)(26005)(38100700002)(31696002)(956004)(36756003)(5660300002)(4326008)(16576012)(6916009)(8676002)(107886003)(53546011)(8936002)(6486002)(2906002)(54906003)(316002)(66556008)(66476007)(83380400001)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NE42SmRpUFdrNEc5YlhRTmtQb2pFK1BaVmF5WitlMmV1QmkwVm4vcVJlUmEy?=
 =?utf-8?B?V2JYem5hemdRczgxQ3BpMDFYLzF2RC9DdVhsSHJTYTRaTmZiaUgzWnYxcVU2?=
 =?utf-8?B?bmhxTVRmUURjMHZ4ZjRqZ1p0Y2dTY1RDVWpqOWxXVldNM1dLckZmaTVISkJy?=
 =?utf-8?B?S3F6bGpLU1UyS0Rub1I2d0NyUkxPbHJDR0w3cEVDc3ovWjJuRnhERFVkamgx?=
 =?utf-8?B?ZUUxNjc4Mzh0OVdHMFc0Vmt0YnhHMWJVSnVzTlBXOG40STA1WXBsYk1kbUht?=
 =?utf-8?B?Y1NNLzlTNElTU0dZdm9BRVA2bHhocGlwOWtCRytwM0tsY2lMOGhvZkdyMHdR?=
 =?utf-8?B?Y2JkMVhrWXZ0eng5WGRabHNlVm5UZEdjV2pJaGpSV0YyUS9ORldBRmcrQko1?=
 =?utf-8?B?VXVqUXV0aU44QkpjeXQ5VC9Ra2FVQzR1MEd1MHhPc3JzNWJ0YnRkdkZQZDZs?=
 =?utf-8?B?WW16eG1QajBSTDNETW5vZW9MeEcwaWVTRU1Bb0NLV1c0aDJ5S09zUEdDUWpO?=
 =?utf-8?B?Y1RicXZGVE1ueE5aeHdIdzZMOUQxUHJ2VlNBZlBGQXVUY1o3MDllUlpVT3Jo?=
 =?utf-8?B?ZlhidlE3R0VYZlhmZHdQVmJhT1FnNGlMOFB1aWhZQk1RT0JZU1h0bzkwd2lF?=
 =?utf-8?B?RytSYUE4R05zbStOOVg2SElkSUlIMVVjbzRERHgwQitPUEpDUnRTKzJFMnBw?=
 =?utf-8?B?a0htRElFdkt6ZVcvZCtMVjBiUHpXSWpnVTErREZLZWFyOVhRdW5sekcxdGFU?=
 =?utf-8?B?TUVTTFFncGFEUW1yb2MrRVFwV29WcVk4M3YwWFdHM1RyQlZQUXBaTHRjSmx3?=
 =?utf-8?B?ejc1QjdJdHpBWjJBM21VTEIyaXZtbExZWWdxc1NCckZHM2h2VW1ZZEdzenJY?=
 =?utf-8?B?Q1BKejhPc0hCMENaWVAxeEdjTTlaREFhU3hQVDJ1SmF3S3lHaGs4M1VBOVVV?=
 =?utf-8?B?Qm1Sb3JoZFRUU3oxQm5CczZHTHEvU0kzUnNWdWpjcFFPYnEvY0wwOTEyeUJP?=
 =?utf-8?B?RklVM1k5ME9TZHVRVG5QWkhLZGdZNlA0TEdTSEpxU3p2Y2RLU05zUUhtTFhN?=
 =?utf-8?B?SXNzQWVYT3ljQnd6NDRTNFRBRUJETm1xT2lCczNTOUttd3ZvbXpGaXM1L3JJ?=
 =?utf-8?B?K0dJa0xpQWR2LzZWOGVYcHhwRDhkZGdwOSs0eUFzRjJleDBGckhoRlNMSEtZ?=
 =?utf-8?B?K3IxNEtVS0U5QnNTNWh1ZGtWZWRQcTZHTGlzRmhyUVBwSitzZ1NkbXorVEgv?=
 =?utf-8?B?Z3RzN05rdVo1czdYbnRFYXJIZVpuYWFxSmZsaE1FcEFnTmNvYlRLUDBHZFlm?=
 =?utf-8?B?ai9jSis3cnpGdFZNN2tSVmtmcmxPZEtxNGRLNHBjdGhlV3JPZjRkYUEzZ2pR?=
 =?utf-8?B?NGJnUXRWdDNCd0IyWmlzNTdkRloxY2lBVmZOTHhuQVZPVlVrRjZjakZCTmFr?=
 =?utf-8?B?eU9GeXJFZ0YycFk3YkQycndCbnVEZVUzd3hpODZBTUlmQ0JOY1kwUUZzTG5U?=
 =?utf-8?B?ekVkWldnNkdOdUtHQk5PYytCSDhkMkgvbVI2eFdSb1k0TVM0TFdTdUtnWVBD?=
 =?utf-8?B?bk1kTkczVktEaEFDbjJHNSt4bEZEZmlsUHBZUXNKWFVjbFp4U05MaUkzUE1Q?=
 =?utf-8?B?Z2k2blVPZisrRlpSYjBvdlZ5KzRZeHVob052WXlvZzJPMlo3OWlBM1lxSU9M?=
 =?utf-8?B?cGJIWjA5dW5qNHA1WDQxWEVJWVZVSlRqM2JtSzFDbGdCcWNwVUJ3cVhmeVRk?=
 =?utf-8?B?dUFtQlVZdmlJM0pJanI0VHJCVWZOQk5kQksrZ0tyQmJYby9leUtOMVhJV2pN?=
 =?utf-8?B?aWwvMzc1MU9NdjZTemVDdTVPKzJOM2F4czFQc3ZEcnczZituVjJiY04veEcv?=
 =?utf-8?B?VFF5MW5md2UyVGNWQVVqVXlKVjlCUHh6cGdoQ1huOHRQL3cwUHdVYklsRkM1?=
 =?utf-8?B?VmdXNytTR0tTcE1GeEFXNmtveWZJWStIVkQvR0R1aXpVSmFleXVLOStDNnJ3?=
 =?utf-8?B?bm9KYTFzSVdmVnp4TzFCUXpOLzNDSW0wS2ZySkdMMXdldlQvdkJZMTI4VXk1?=
 =?utf-8?B?aEZGN2treDZHdGU5NkJrQU10SDJhOTFiTktvZEZ6d2ZQaXBrZEY2NlVQbERm?=
 =?utf-8?B?L2NsYkdRdEtJSkppUmFRYnZQQTROejN3TjhTOUdocksvTktzMk5ITGRwVklW?=
 =?utf-8?Q?jHeBJKOU/nIbKijx1lk0cUU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 41ce6161-95de-4cf0-504f-08d99f75edf2
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 09:31:50.6203
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: b41hYte/Wn6KUeMgkL4evvuqSOdFOfrvfu2y6dtwvubgEu1sOa3WKaJCg0ShQuTTYyGaW/jW0XeTloxa08NlaQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2702

Ian,

On 01.11.2021 16:20, Juergen Gross wrote:
> The HVM hypercall handler is missing incrementing the per hypercall
> counters. Add that.
> 
> The counters for PV are handled wrong, as they are not using
> perf_incra() with the number of the hypercall as index, but are
> incrementing the first hypercall entry (set_trap_table) for each
> hypercall. Fix that.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

this looks to be independent of all earlier patches in this series,
and I'd like to suggest to at least consider taking this as a low-
risk bug fix for 4.16. Thoughts?

Jan

> ---
>  xen/arch/x86/hvm/hypercall.c | 2 ++
>  xen/arch/x86/pv/hypercall.c  | 2 +-
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
> index 6d8d6693dc..1bac5d4d44 100644
> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -210,6 +210,8 @@ int hvm_hypercall(struct cpu_user_regs *regs)
>          ioreq_signal_mapcache_invalidate();
>      }
>  
> +    perfc_incra(hypercalls, eax);
> +
>      return curr->hcall_preempted ? HVM_HCALL_preempted : HVM_HCALL_completed;
>  }
>  
> diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
> index ef92266620..bf64bb41bb 100644
> --- a/xen/arch/x86/pv/hypercall.c
> +++ b/xen/arch/x86/pv/hypercall.c
> @@ -102,7 +102,7 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
>      if ( curr->hcall_preempted )
>          regs->rip -= 2;
>  
> -    perfc_incr(hypercalls);
> +    perfc_incra(hypercalls, eax);
>  }
>  
>  enum mc_disposition pv_do_multicall_call(struct mc_state *state)
> 



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:32:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:32:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221375.383058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ6u-0007nx-98; Thu, 04 Nov 2021 09:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221375.383058; Thu, 04 Nov 2021 09:32:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ6u-0007nn-67; Thu, 04 Nov 2021 09:32:40 +0000
Received: by outflank-mailman (input) for mailman id 221375;
 Thu, 04 Nov 2021 09:32:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K5/8=PX=gmail.com=like.xu.linux@srs-se1.protection.inumbo.net>)
 id 1miZ6s-00079z-64
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:32:38 +0000
Received: from mail-pg1-x52d.google.com (mail-pg1-x52d.google.com
 [2607:f8b0:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24f33ab5-3d52-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 10:32:36 +0100 (CET)
Received: by mail-pg1-x52d.google.com with SMTP id p17so4939345pgj.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 02:32:36 -0700 (PDT)
Received: from [192.168.255.10] ([103.7.29.32])
 by smtp.gmail.com with ESMTPSA id ng9sm7166405pjb.4.2021.11.04.02.32.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Nov 2021 02:32:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24f33ab5-3d52-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:subject:content-language:to
         :cc:references:from:organization:in-reply-to
         :content-transfer-encoding;
        bh=xc0JBrJOB9+yVQnMStNToryhrhjrwmhOIz4w47Lw54c=;
        b=SyXfkfdvicspq1qwxqg2f7wZmQHTvyhN8XNqj5y7NNSR4079c7521i+HTiNyT/uYIt
         c6LDDje7fPfiTS0HR7tCwaCB91LPM/cTdMsr4ZsgURhtunmbSPGiwDcyGfSgzgxLtlp+
         rvax61jfawG6zqb/uTGWFQYC5BAcMY1/t+UqCl8TNdV5JPcuGjBIZ5h1AA6dXBZomOJb
         DlDOifc7466hgJifR3RsbL12BAGRXuLkOGPURUFv8EAJQApk/y1kFT6mHgWhdLoCRAe9
         ITNWNK13VRNRpA/1kJ5e7IEq4Ra2RuPAyv/7F8SpTLM332/+s8n1sl90sqiR0niRvK7o
         hvCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:organization:in-reply-to
         :content-transfer-encoding;
        bh=xc0JBrJOB9+yVQnMStNToryhrhjrwmhOIz4w47Lw54c=;
        b=mVhaBAYCvU2/nUhjqDdIm9am05rM00r1FeCt9VaQiCSebCKXVObKDy1JplFvX5j5bw
         4BQ2oZtfEnJdnP7lKnHwuA09MC1JgN/KQjLy/PvxPJdJAsIZTzYfGOsOvI0uv7Fl/uQ9
         7ouV3DlgZJn7GMBrzK7B/DGI7pVaWDaZepTZlfDuNPFLd7j2a+JaA3E6Uk7RxtTKGq06
         TAVGx/ChwYvOF9GmzV6ek4p9ujs6ScfA9pZbc9mlFNFMXTcp7pofSfuJYqSo6FVXck2r
         MvjyZEMvTxRebUkGbAxCcFBQKy/g1DVzMsQL0dtcn+yiK3ARm0Dhe5UvPajwBI781lSu
         YESg==
X-Gm-Message-State: AOAM530QiUXIM4hfj2GjeV3cDxh1Mo/jUf7S7hcZERnwRrEY+gU3q7CO
	h+XjiOltY2DCydRrW+9Wxq8=
X-Google-Smtp-Source: ABdhPJwm9vetu2mRo6NPhZbdTexC59YzvjJqoliFt1MyPiF48kiTnDdrFnE7rf61S+Y62nMo0nPXPQ==
X-Received: by 2002:a05:6a00:1c4a:b0:480:fb90:3ab7 with SMTP id s10-20020a056a001c4a00b00480fb903ab7mr32323406pfw.3.1636018355134;
        Thu, 04 Nov 2021 02:32:35 -0700 (PDT)
Message-ID: <77e3a76a-016b-8945-a1d5-aae4075e2147@gmail.com>
Date: Thu, 4 Nov 2021 17:32:21 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v3 01/16] perf: Ensure perf_guest_cbs aren't reloaded
 between !NULL check and deref
Content-Language: en-US
To: Sean Christopherson <seanjc@google.com>,
 Peter Zijlstra <peterz@infradead.org>, Will Deacon <will@kernel.org>,
 Paolo Bonzini <pbonzini@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>,
 Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
 James Morse <james.morse@arm.com>,
 Alexandru Elisei <alexandru.elisei@arm.com>,
 Suzuki K Poulose <suzuki.poulose@arm.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>,
 Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org,
 linux-kernel@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
 linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org,
 kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
 Artem Kashkanov <artem.kashkanov@intel.com>,
 Zhu Lingshan <lingshan.zhu@intel.com>, Juergen Gross <jgross@suse.com>,
 Ingo Molnar <mingo@redhat.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Palmer Dabbelt <palmer@dabbelt.com>, Vincent Chen <deanbo422@gmail.com>,
 Paul Walmsley <paul.walmsley@sifive.com>, Greentime Hu <green.hu@gmail.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Marc Zyngier <maz@kernel.org>,
 Nick Hu <nickhu@andestech.com>, Guo Ren <guoren@kernel.org>,
 Mark Rutland <mark.rutland@arm.com>,
 Arnaldo Carvalho de Melo <acme@kernel.org>
References: <20210922000533.713300-1-seanjc@google.com>
 <20210922000533.713300-2-seanjc@google.com>
From: Like Xu <like.xu.linux@gmail.com>
Organization: Tencent
In-Reply-To: <20210922000533.713300-2-seanjc@google.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 22/9/2021 8:05 am, Sean Christopherson wrote:
> Protect perf_guest_cbs with READ_ONCE/WRITE_ONCE to ensure it's not
> reloaded between a !NULL check and a dereference, and wait for all
> readers via syncrhonize_rcu() to prevent use-after-free, e.g. if the
> callbacks are being unregistered during module unload.  Because the
> callbacks are global, it's possible for readers to run in parallel with
> an unregister operation.
> 
> The bug has escaped notice because all dereferences of perf_guest_cbs
> follow the same "perf_guest_cbs && perf_guest_cbs->is_in_guest()" pattern,
> and it's extremely unlikely a compiler will reload perf_guest_cbs in this
> sequence.  Compilers do reload perf_guest_cbs for future derefs, e.g. for
> ->is_user_mode(), but the ->is_in_guest() guard all but guarantees the
> PMI handler will win the race, e.g. to nullify perf_guest_cbs, KVM has to
> completely exit the guest and teardown down all VMs before KVM start its
> module unload / unregister sequence.
> 
> But with help, unloading kvm_intel can trigger a NULL pointer derference,
> e.g. wrapping perf_guest_cbs with READ_ONCE in perf_misc_flags() while
> spamming kvm_intel module load/unload leads to:
> 
>    BUG: kernel NULL pointer dereference, address: 0000000000000000
>    #PF: supervisor read access in kernel mode
>    #PF: error_code(0x0000) - not-present page
>    PGD 0 P4D 0
>    Oops: 0000 [#1] PREEMPT SMP
>    CPU: 6 PID: 1825 Comm: stress Not tainted 5.14.0-rc2+ #459
>    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
>    RIP: 0010:perf_misc_flags+0x1c/0x70
>    Call Trace:
>     perf_prepare_sample+0x53/0x6b0
>     perf_event_output_forward+0x67/0x160
>     __perf_event_overflow+0x52/0xf0
>     handle_pmi_common+0x207/0x300
>     intel_pmu_handle_irq+0xcf/0x410
>     perf_event_nmi_handler+0x28/0x50
>     nmi_handle+0xc7/0x260
>     default_do_nmi+0x6b/0x170
>     exc_nmi+0x103/0x130
>     asm_exc_nmi+0x76/0xbf
> 
> Fixes: 39447b386c84 ("perf: Enhance perf to allow for guest statistic collection from host")
> Cc: stable@vger.kernel.org
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
>   arch/arm/kernel/perf_callchain.c   | 17 +++++++++++------
>   arch/arm64/kernel/perf_callchain.c | 18 ++++++++++++------
>   arch/csky/kernel/perf_callchain.c  |  6 ++++--
>   arch/nds32/kernel/perf_event_cpu.c | 17 +++++++++++------
>   arch/riscv/kernel/perf_callchain.c |  7 +++++--
>   arch/x86/events/core.c             | 17 +++++++++++------
>   arch/x86/events/intel/core.c       |  9 ++++++---
>   include/linux/perf_event.h         |  8 ++++++++
>   kernel/events/core.c               | 11 +++++++++--
>   9 files changed, 77 insertions(+), 33 deletions(-)
> 
> diff --git a/arch/arm/kernel/perf_callchain.c b/arch/arm/kernel/perf_callchain.c
> index 3b69a76d341e..1626dfc6f6ce 100644
> --- a/arch/arm/kernel/perf_callchain.c
> +++ b/arch/arm/kernel/perf_callchain.c
> @@ -62,9 +62,10 @@ user_backtrace(struct frame_tail __user *tail,
>   void
>   perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	struct frame_tail __user *tail;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		/* We don't support guest os callchain now */
>   		return;
>   	}
> @@ -98,9 +99,10 @@ callchain_trace(struct stackframe *fr,
>   void
>   perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	struct stackframe fr;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		/* We don't support guest os callchain now */
>   		return;
>   	}
> @@ -111,18 +113,21 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
>   
>   unsigned long perf_instruction_pointer(struct pt_regs *regs)
>   {
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
> -		return perf_guest_cbs->get_guest_ip();
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
> +
> +	if (guest_cbs && guest_cbs->is_in_guest())
> +		return guest_cbs->get_guest_ip();
>   
>   	return instruction_pointer(regs);
>   }
>   
>   unsigned long perf_misc_flags(struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	int misc = 0;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> -		if (perf_guest_cbs->is_user_mode())
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
> +		if (guest_cbs->is_user_mode())
>   			misc |= PERF_RECORD_MISC_GUEST_USER;
>   		else
>   			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
> diff --git a/arch/arm64/kernel/perf_callchain.c b/arch/arm64/kernel/perf_callchain.c
> index 4a72c2727309..86d9f2013172 100644
> --- a/arch/arm64/kernel/perf_callchain.c
> +++ b/arch/arm64/kernel/perf_callchain.c
> @@ -102,7 +102,9 @@ compat_user_backtrace(struct compat_frame_tail __user *tail,
>   void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
>   			 struct pt_regs *regs)
>   {
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
> +
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		/* We don't support guest os callchain now */
>   		return;
>   	}
> @@ -147,9 +149,10 @@ static bool callchain_trace(void *data, unsigned long pc)
>   void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
>   			   struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	struct stackframe frame;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		/* We don't support guest os callchain now */
>   		return;
>   	}
> @@ -160,18 +163,21 @@ void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
>   
>   unsigned long perf_instruction_pointer(struct pt_regs *regs)
>   {
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
> -		return perf_guest_cbs->get_guest_ip();
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
> +
> +	if (guest_cbs && guest_cbs->is_in_guest())
> +		return guest_cbs->get_guest_ip();
>   
>   	return instruction_pointer(regs);
>   }
>   
>   unsigned long perf_misc_flags(struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	int misc = 0;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> -		if (perf_guest_cbs->is_user_mode())
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
> +		if (guest_cbs->is_user_mode())
>   			misc |= PERF_RECORD_MISC_GUEST_USER;
>   		else
>   			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
> diff --git a/arch/csky/kernel/perf_callchain.c b/arch/csky/kernel/perf_callchain.c
> index ab55e98ee8f6..35318a635a5f 100644
> --- a/arch/csky/kernel/perf_callchain.c
> +++ b/arch/csky/kernel/perf_callchain.c
> @@ -86,10 +86,11 @@ static unsigned long user_backtrace(struct perf_callchain_entry_ctx *entry,
>   void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
>   			 struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	unsigned long fp = 0;
>   
>   	/* C-SKY does not support virtualization. */
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
> +	if (guest_cbs && guest_cbs->is_in_guest())
>   		return;
>   
>   	fp = regs->regs[4];
> @@ -110,10 +111,11 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
>   void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
>   			   struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	struct stackframe fr;
>   
>   	/* C-SKY does not support virtualization. */
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		pr_warn("C-SKY does not support perf in guest mode!");
>   		return;
>   	}
> diff --git a/arch/nds32/kernel/perf_event_cpu.c b/arch/nds32/kernel/perf_event_cpu.c
> index 0ce6f9f307e6..f38791960781 100644
> --- a/arch/nds32/kernel/perf_event_cpu.c
> +++ b/arch/nds32/kernel/perf_event_cpu.c
> @@ -1363,6 +1363,7 @@ void
>   perf_callchain_user(struct perf_callchain_entry_ctx *entry,
>   		    struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	unsigned long fp = 0;
>   	unsigned long gp = 0;
>   	unsigned long lp = 0;
> @@ -1371,7 +1372,7 @@ perf_callchain_user(struct perf_callchain_entry_ctx *entry,
>   
>   	leaf_fp = 0;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		/* We don't support guest os callchain now */
>   		return;
>   	}
> @@ -1479,9 +1480,10 @@ void
>   perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
>   		      struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	struct stackframe fr;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		/* We don't support guest os callchain now */
>   		return;
>   	}
> @@ -1493,20 +1495,23 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
>   
>   unsigned long perf_instruction_pointer(struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
> +
>   	/* However, NDS32 does not support virtualization */
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
> -		return perf_guest_cbs->get_guest_ip();
> +	if (guest_cbs && guest_cbs->is_in_guest())
> +		return guest_cbs->get_guest_ip();
>   
>   	return instruction_pointer(regs);
>   }
>   
>   unsigned long perf_misc_flags(struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	int misc = 0;
>   
>   	/* However, NDS32 does not support virtualization */
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> -		if (perf_guest_cbs->is_user_mode())
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
> +		if (guest_cbs->is_user_mode())
>   			misc |= PERF_RECORD_MISC_GUEST_USER;
>   		else
>   			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
> diff --git a/arch/riscv/kernel/perf_callchain.c b/arch/riscv/kernel/perf_callchain.c
> index 0bb1854dce83..8ecfc4c128bc 100644
> --- a/arch/riscv/kernel/perf_callchain.c
> +++ b/arch/riscv/kernel/perf_callchain.c
> @@ -56,10 +56,11 @@ static unsigned long user_backtrace(struct perf_callchain_entry_ctx *entry,
>   void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
>   			 struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	unsigned long fp = 0;
>   
>   	/* RISC-V does not support perf in guest mode. */
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
> +	if (guest_cbs && guest_cbs->is_in_guest())
>   		return;
>   
>   	fp = regs->s0;
> @@ -78,8 +79,10 @@ static bool fill_callchain(void *entry, unsigned long pc)
>   void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
>   			   struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
> +
>   	/* RISC-V does not support perf in guest mode. */
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		pr_warn("RISC-V does not support perf in guest mode!");
>   		return;
>   	}
> diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
> index 1eb45139fcc6..ffb3e6c0d367 100644
> --- a/arch/x86/events/core.c
> +++ b/arch/x86/events/core.c
> @@ -2761,10 +2761,11 @@ static bool perf_hw_regs(struct pt_regs *regs)
>   void
>   perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	struct unwind_state state;
>   	unsigned long addr;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		/* TODO: We don't support guest os callchain now */
>   		return;
>   	}
> @@ -2864,10 +2865,11 @@ perf_callchain_user32(struct pt_regs *regs, struct perf_callchain_entry_ctx *ent
>   void
>   perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	struct stack_frame frame;
>   	const struct stack_frame __user *fp;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
>   		/* TODO: We don't support guest os callchain now */
>   		return;
>   	}
> @@ -2944,18 +2946,21 @@ static unsigned long code_segment_base(struct pt_regs *regs)
>   
>   unsigned long perf_instruction_pointer(struct pt_regs *regs)
>   {
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
> -		return perf_guest_cbs->get_guest_ip();
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
> +
> +	if (guest_cbs && guest_cbs->is_in_guest())
> +		return guest_cbs->get_guest_ip();
>   
>   	return regs->ip + code_segment_base(regs);
>   }
>   
>   unsigned long perf_misc_flags(struct pt_regs *regs)
>   {
> +	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
>   	int misc = 0;
>   
> -	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
> -		if (perf_guest_cbs->is_user_mode())
> +	if (guest_cbs && guest_cbs->is_in_guest()) {
> +		if (guest_cbs->is_user_mode())
>   			misc |= PERF_RECORD_MISC_GUEST_USER;
>   		else
>   			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
> diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
> index fca7a6e2242f..9baa46185d94 100644
> --- a/arch/x86/events/intel/core.c
> +++ b/arch/x86/events/intel/core.c
> @@ -2786,6 +2786,7 @@ static int handle_pmi_common(struct pt_regs *regs, u64 status)
>   {
>   	struct perf_sample_data data;
>   	struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
> +	struct perf_guest_info_callbacks *guest_cbs;
>   	int bit;
>   	int handled = 0;
>   	u64 intel_ctrl = hybrid(cpuc->pmu, intel_ctrl);
> @@ -2852,9 +2853,11 @@ static int handle_pmi_common(struct pt_regs *regs, u64 status)
>   	 */
>   	if (__test_and_clear_bit(GLOBAL_STATUS_TRACE_TOPAPMI_BIT, (unsigned long *)&status)) {
>   		handled++;
> -		if (unlikely(perf_guest_cbs && perf_guest_cbs->is_in_guest() &&
> -			perf_guest_cbs->handle_intel_pt_intr))
> -			perf_guest_cbs->handle_intel_pt_intr();
> +
> +		guest_cbs = perf_get_guest_cbs();
> +		if (unlikely(guest_cbs && guest_cbs->is_in_guest() &&
> +			     guest_cbs->handle_intel_pt_intr))
> +			guest_cbs->handle_intel_pt_intr();
>   		else
>   			intel_pt_interrupt();
>   	}
> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
> index 2d510ad750ed..6b0405e578c1 100644
> --- a/include/linux/perf_event.h
> +++ b/include/linux/perf_event.h
> @@ -1237,6 +1237,14 @@ extern void perf_event_bpf_event(struct bpf_prog *prog,
>   				 u16 flags);
>   
>   extern struct perf_guest_info_callbacks *perf_guest_cbs;
> +static inline struct perf_guest_info_callbacks *perf_get_guest_cbs(void)
> +{
> +	/* Reg/unreg perf_guest_cbs waits for readers via synchronize_rcu(). */
> +	lockdep_assert_preemption_disabled();
> +
> +	/* Prevent reloading between a !NULL check and dereferences. */
> +	return READ_ONCE(perf_guest_cbs);
> +}
>   extern int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks);
>   extern int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks);
>   
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 464917096e73..80ff050a7b55 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -6491,14 +6491,21 @@ struct perf_guest_info_callbacks *perf_guest_cbs;
>   
>   int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
>   {
> -	perf_guest_cbs = cbs;
> +	if (WARN_ON_ONCE(perf_guest_cbs))
> +		return -EBUSY;
> +
> +	WRITE_ONCE(perf_guest_cbs, cbs);

So per Paolo's comment [1], does it help to use
	smp_store_release(perf_guest_cbs, cbs)
or
	rcu_assign_pointer(perf_guest_cbs, cbs)
here?

[1] https://lore.kernel.org/kvm/37afc465-c12f-01b9-f3b6-c2573e112d76@redhat.com/

>   	return 0;
>   }
>   EXPORT_SYMBOL_GPL(perf_register_guest_info_callbacks);
>   
>   int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
>   {
> -	perf_guest_cbs = NULL;
> +	if (WARN_ON_ONCE(perf_guest_cbs != cbs))
> +		return -EINVAL;
> +
> +	WRITE_ONCE(perf_guest_cbs, NULL);
> +	synchronize_rcu();
>   	return 0;
>   }
>   EXPORT_SYMBOL_GPL(perf_unregister_guest_info_callbacks);
> 


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:32:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:32:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221376.383070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ6v-00084O-K3; Thu, 04 Nov 2021 09:32:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221376.383070; Thu, 04 Nov 2021 09:32:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZ6v-00084F-Ew; Thu, 04 Nov 2021 09:32:41 +0000
Received: by outflank-mailman (input) for mailman id 221376;
 Thu, 04 Nov 2021 09:32:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miZ6u-0007ee-30
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:32:40 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26f500be-3d52-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 10:32:39 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2059.outbound.protection.outlook.com [104.47.12.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-7-c_3bFHckNieOdFYdW1VE_g-1;
 Thu, 04 Nov 2021 10:32:38 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2702.eurprd04.prod.outlook.com (2603:10a6:800:b4::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Thu, 4 Nov
 2021 09:32:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 09:32:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR0P281CA0001.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.4 via Frontend Transport; Thu, 4 Nov 2021 09:32:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26f500be-3d52-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636018359;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GrtL42eKsnPKcYIQNUb89Fi/gCwdhcmtVO0Rm0bwB6Q=;
	b=ds1olHEEQduKu/LQjJpcspJHY7gylzReKaQRuAy6488vhLt2Vk6JpNCEYZcm6LOLI3+Ozs
	LKotriyVkh5LMcfNFhmn0ZPqOKUwAxtOrTf3SHwCp+R6nE6RuoJ8Z+q+IVd7eV4dOS+Mu9
	SqW4uhQQBwoLLz89YF5bVivJl5/wmCo=
X-MC-Unique: c_3bFHckNieOdFYdW1VE_g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Sn/lDgqvhZNZxW1HuAbiwHl6KY1GFc0TSVX0LtF7TTuYLe4+SV+mYy9P3sFW+KiQb52ozLZT/tAHLUXfgCklYuoBKXxXHsz03yLJ7P1s3FSx+sloyKFU+pNmWLE7kCRxuB/9G1/Ms0wNmsphiGwBqZVjMoMaLwANCHONkJxIqYDaKDG375XFFumJhAO4FAwkCkjzLWh3wWhHCEZqJHEuhgtkbHa/kAw7y4lGWgmOh/XmAAwixjN6CVJBkXy5eE1I8hN7bW9WfMJ0V0JqU5XazFRKRLqElPoKNLCScKsbb3cPE4UhVmMPB20ddHc6SD7tSzHoIOKOEyhiLgOxz1psbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GrtL42eKsnPKcYIQNUb89Fi/gCwdhcmtVO0Rm0bwB6Q=;
 b=Kmjmo/HwHE+FUDGKxryBPaxpjqyowC6tRU3a7B0ACyMnswvQBiozV7KpO9g3j6irY9vrPJPpY3kNEMr0asVgyJ+jbYLssTqm3CWq/IkVQzNuU8k4izZvAjoSzAbBdiZ43ECsnrskDDludutnSNL7SiMWipgPAlZV8e5zXKyyXIhL4koLVEGwKIfSRz/uoToo8lTXQbr0b7BA5OobVmhyd/85HlMFeGw537TFTs41XnLxchjYdqfGwJe7+Flv8MsuUtqtFIhmjxwQ5ELV/0ubfzoPrw2JowX1qOAFAwMWCX5rg7DhG94ro+USYLcBk7xLX5264doAG6xfE09Tgpp2lw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9267539c-5242-ae89-6b0b-26a27a3f459f@suse.com>
Date: Thu, 4 Nov 2021 10:32:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 14/15] xen: drop calls_to_multicall performance counter
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-15-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211101152015.28488-15-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0001.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:15::6) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 40f2af0f-97f1-4bcc-86f3-08d99f760986
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2702:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2702355061F64803AAEE2E9BB38D9@VI1PR0402MB2702.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1824;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	sURjWJ2ehdmLAnPmpFtugbiaBSf4NfZNbUJ/2ZBmAENeasb+Gd4i1h3Vu6M4nGNd1JNFY5JWvAL93fiRjs2fy2UkdOzy4DWCLcizqeHQLQOD5Gq6TupkNLHl5Mt7jAKHfDVUdnvaHf5xM5ZhixBHmwejR0+gupy3R4EyhXHHnBDRHskcN0XzLLAjOs8+Rm4G1cV0RWc4mFQXG4gU4wn2UsGRKE0khilMtZq1cYd8HH8kyfx4GsiNGJa+9JsTWyicYup9bcDnsNRdrgepzZ8YaX8eu1ZBry/gKQAGpjD87dNW0KvNqv83MfbtnR5tt2TccE8ozbWO1OkgPWNkg8ut/DdEEx2M0q8oISpoWTVWNvLifa7ZrM+juwj1YUoAHKpdz6wy1ECHx6NtM+8u2jUrmQIE+UblHSO8D0HfzhcOB4iESWpzgcm9DEk5/qPt9fRfU/3uy48pxs2iVtxY5RAOZQfqdl2F34KGBLrPBtk9FcD1LGdOhT/H+Rp3k+r6iXm1ky5OS8iC4CU4LgfJkDi90hch3rl7pRWFtEm6lIDXJjveJsiwbnGw3vqk7pheuyuw/Fho7HFEXkSACpLhL0lBy8RrZzqw3jy2a+KCweXtAgByg5sobJAD8LROyjeSkruSk2zRPw3Db2FAELj0NU2hHkBQ+9Wb/WMb5E2VZwDKF1zUF8nHOf0/R7hiNjc9Wc+PoJRBVHpK5GGz5D6bqmL26jtz0T0XdpfzgbNonPdnPZf46CWlD9DETSe7gDkGkYAC
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(2616005)(508600001)(31686004)(186003)(26005)(6862004)(38100700002)(31696002)(956004)(36756003)(5660300002)(4326008)(4744005)(16576012)(6636002)(8676002)(53546011)(8936002)(6486002)(2906002)(54906003)(316002)(37006003)(66556008)(66476007)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UjdNS3JDb2VQUGlqUWtOeVg3MGxxcWZnRkhNa3pPZnRXQTNHenhBaE9RZFdu?=
 =?utf-8?B?eHZyV3hGSkt6cStDQ2J2QUx3SU1aZDJqVHNBa0FZRzM0SzhYUzBoVXNxN25z?=
 =?utf-8?B?NzB3ejY5RzJIenVKTndmTEdNMVFNYVdHejVNc2lxbVRBMDIzamwwQ2xDckIr?=
 =?utf-8?B?WXJUR0RreFFEQ1lWMEJ3UFRpQmV6Uy9zdEpsTFQxUlpvZTJEVTRHVExnbHZw?=
 =?utf-8?B?SlpndnRXa01VTmVCTXhTdWE0SFJwQWd6aTN0Y2hLRnV1d3I0WE82cjQzRmdB?=
 =?utf-8?B?aHhZNGZuZDRrclF0QVdrbVBmYXlUVy9wTkYxb1QzbURrVHFNT2FQbXVDYjdJ?=
 =?utf-8?B?Q0FRS3puU0ZiRUFoZ21iTzJCcVpKRkx6QjRpTEdLc3NUdHZZMzg3aE11ZXNV?=
 =?utf-8?B?S2orZGZMdFNCbFB4NytySSthM3JCUWVPVFlsNFlnZU5tSzVoVU1kbmNIeVl6?=
 =?utf-8?B?SXZzSVNHTWRWamdSaW02ejZ5eDFqTHhRSkpMdWdycE9MV0d5YzJqck5yZXNJ?=
 =?utf-8?B?cUd5bFh2blFXM0ZJUFhWckx2citlWkZLOWRwTGdMWHZtS1FkVU1YOWErbHVV?=
 =?utf-8?B?aTh2NTh4MlhkTy9iVi9ocStTeENBWjBCdVNJK0YxVC9pTThVSUl1SlZvdTA4?=
 =?utf-8?B?dy9VY052a29QMVZzZWFyOXVFazc2RFhFNEVoZW02UFV5bXVySXRQVEpmZ2M0?=
 =?utf-8?B?aW8rZHVZcVo0c0MvUTFhelcwUTl0QytWVWRQWFc0cnpPdjc1cTFQVHBPbjZQ?=
 =?utf-8?B?dVo4QkYvbDQrRE5mVytBRWdTTlg0cVAzeCthSWs1OVVNWktCTFJSeUV4Nzh0?=
 =?utf-8?B?QXltTHhORmx4KzJSN3N0a1lKTm51RE0zSzFCWDBsZkl3UXVGZ25hU05adXlh?=
 =?utf-8?B?NklTd3NFVHRJaWFUdDBxY2hITlU5WTBmSm8yckJJM2s2NUY0Z21kK3BpUUhx?=
 =?utf-8?B?VmZwN2h2WUtiRWRRRDhHWW1ub0hXSFd6MWxxWmdlWk5ldFZLc2ZySTRySkdZ?=
 =?utf-8?B?VHdYTTRFeGY5MlFScHZJeTA1d1FMczhqVVpRVlZEcXpPcSt1dWtoRitmR3dW?=
 =?utf-8?B?Z1Y1cWUwMS95bDEzRm5obUNSQWpralArZ1RONFA4dXFjUitzZmUvRVJVaUVq?=
 =?utf-8?B?OXdXa0R6aXNLY1BkNFkvejhKcm45bXp4aVhzODRkK01xZkZUVnd2Mk1LTTZC?=
 =?utf-8?B?WmNHM1ptN0FmbHNnSjhhZkNKT3l3TWlrYkhyOExLWWh0MExNa2IwUXdHcUU3?=
 =?utf-8?B?Sm5CMU5VMTVGaEJFUVU5WmhsS241UG5nTGd5cEF6cHVYcU1maHFVanBpeGpL?=
 =?utf-8?B?NjBxSXlFMXlqZC9xTkNQLzN6NzVOU2sxWDBSU2dCSlFSNlFoWkNTNmhCVHpR?=
 =?utf-8?B?UjUxTkJwRVplOW5oaWFieGtpSXc4WmpaczZIUlF0OWt1RE5tb3Ftc1FITll6?=
 =?utf-8?B?SGQxY2oyRURpdUZLZ1FNUjB1V1VoQTMyV1BsVjM2bGlLcVBnOEhnV1JMQngy?=
 =?utf-8?B?SGN6YzZONUI1cEdYQXE4WmRkUFN3ckpGT2d3d0Y2cVhDbE15UnVZOVZ3NTE4?=
 =?utf-8?B?MlRjTVJ1NU16L08rTGQ0MTZSK3FiazdlUjdhbUNYaW01UUZ1K2llOE8rNmRO?=
 =?utf-8?B?WHM5WCtHUWN0dnhtaGJZREQzQUo0czlnVVFYZXduR1VyM0owRWg5ZVRMY1dl?=
 =?utf-8?B?OTYyaHh0ejdXbzErUGlTcDhZd2tLaEJJZjFsY0xlck83V2xDRG5FY0s2Yy81?=
 =?utf-8?B?N3crUmovbElsNEtkWmdGSkdpcXg1M0ZjU2dHWE93UGRIOWpuUUhtZCtxU0lx?=
 =?utf-8?B?Rk9jOWtRa2FhaE85QWZZREZlWGFzdU9kNExqZ0puQW84YnVTWTMzcGp4SnYz?=
 =?utf-8?B?Q3paaXJ2NC9HVDBtQzltc1orOEd2U1hDYm5ZdjN6VklwNXRwN0x1Wi9JSGJr?=
 =?utf-8?B?ZmcrSURuWGNiQWJ6aW1ySkhhQ2JpOHVmWTNmWkoyazM2S09Xa3VKYnFVSHV1?=
 =?utf-8?B?N1F3dlp4K2JOUkE4T2Q0bXJYY1VldWhDZENERjI1VUVvMlhnVnlsaFdjdStV?=
 =?utf-8?B?akgyOHMzbmNJT0l4MzdxRlBBR2NxclMwWlBYYlJvSEZSaSs4aTh0MjRsL1ZN?=
 =?utf-8?B?THV0anlNdHNCc2pCam5OU3FlcjVJOG1KS0ZYZHZackFnbWJBZkt4Ui9XdTgw?=
 =?utf-8?Q?Vo/GjGeMNEFUKlxrLBt0BbE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40f2af0f-97f1-4bcc-86f3-08d99f760986
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 09:32:36.6053
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Dz2PvNyL0gsWOyMEeJk6umqeI28D8QaGTKldwD3tMUsZ/K63a4A+vsCglQX8oMLbdiLv9YPFwKeWLG1LPlonyg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2702

On 01.11.2021 16:20, Juergen Gross wrote:
> The calls_to_multicall performance counter is basically redundant to
> the multicall hypercall counter. The only difference is the counting
> of continuation calls, which isn't really that interesting.
> 
> Drop the calls_to_multicall performance counter.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:37:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:37:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221391.383081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZBK-0000jB-B0; Thu, 04 Nov 2021 09:37:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221391.383081; Thu, 04 Nov 2021 09:37:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZBK-0000j4-7d; Thu, 04 Nov 2021 09:37:14 +0000
Received: by outflank-mailman (input) for mailman id 221391;
 Thu, 04 Nov 2021 09:37:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miZBI-0000iy-Vz
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:37:12 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c97847a5-3d52-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 10:37:12 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2177.outbound.protection.outlook.com [104.47.17.177])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-32-j1WIS8WONxm9crx5hvZjOA-1; Thu, 04 Nov 2021 10:37:10 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6477.eurprd04.prod.outlook.com (2603:10a6:803:11e::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Thu, 4 Nov
 2021 09:37:09 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 09:37:02 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0029.eurprd04.prod.outlook.com (2603:10a6:20b:92::42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Thu, 4 Nov 2021 09:37:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c97847a5-3d52-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636018631;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=6b4ENUkGgzMC9YQ6UxLJ/5iXzLycEhm39PiQJbawDnQ=;
	b=Fi1qeLBFga3DO5y1PVULEfav3qaG+EA4lGa1G86wDQJChFqmcIF2+ACrwplsGp4GM3Z7qy
	lXovW+DjaqIrlGLCgzzogNvV/daYj/16I35nTLzS3n/IVAKVAjGvgDjSS29gx089CLuyNq
	ig0K9xD9eVs0M/WAgk/8boswULj9yQo=
X-MC-Unique: j1WIS8WONxm9crx5hvZjOA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oGbAMJBz/OwfU46qpzR9xFnoZSOjXXgiqNYvXHBlX/tzIH7MPLnt7dNk6E7yri7P2ovFtiHoO43c7xMr8jVuYqKNdDws3vItq+FZYQXJFNl71F6hA1m62EWlHJVOGawDZS7+Br/51qP6LvLMpb48NfqM5pNYXNM15zydHZZ8v22Hx08HBBvB44CI7AGw38vDlQZg6qBYoDbHXOwThtncVAoYkLlgpKYCOdNCuivSAwf7QI+wVfauB48P8i4aDDMRNFwPAy8ZoqWSJKtLY/txtNwFUo7viMwzri3DwOAVrEo8DmaP6o7v2ur89tS5QIrLPTXNAI3TFidYLr98EuQsdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6b4ENUkGgzMC9YQ6UxLJ/5iXzLycEhm39PiQJbawDnQ=;
 b=JwNLBgv22ZqNFOeuXyIaEthbFY/c+4MJsN/l2/CSzVnNhJmU1wextrKp3Dotn8kHM2ShRbgKzHrydGbaj2GT+QZb6PAzZ+CY5j0xZzxoU6GYGpXJI//cMbamewVjUfYVHUBF/wZoIlBiQTc8zw1X/cO6Q+OUScepYQgkQldAlqSsv37lYv9aijAV/C+GIeyorstJA6jCDMJCZN811B1lNX5J6DFqE6rYVTBOvHkwZU7G7KSCtbzImBEsagoonf5hbQCGVOG06+XGsFtENX5QYdp/FNdKKtDUJgjh/NObWmDPaJBV8M/whZJqh+pbvZjQPXdbalM8kPM3GQUMyPsjxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ac2ec244-b857-f785-0488-c46021bc4cb6@suse.com>
Date: Thu, 4 Nov 2021 10:37:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 15/15] tools/xenperf: update hypercall names
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <20211101152015.28488-1-jgross@suse.com>
 <20211101152015.28488-16-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211101152015.28488-16-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR04CA0029.eurprd04.prod.outlook.com
 (2603:10a6:20b:92::42) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 22bb06af-6657-4e79-f5f8-08d99f76a7f2
X-MS-TrafficTypeDiagnostic: VE1PR04MB6477:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6477D9EACAC677B05BCBB009B38D9@VE1PR04MB6477.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2276;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/efSAdHZ1T9QFOEqpe2dXaWgCoX5MtKl+T3WWB1nsdPRoYi9Q69S9RudloNB60juscxQD6uepHaFNKpqy7AxRQif54vzvJ9ULxG+wNbIsEXFSOPaeaajkiplAt4p3u99BaRYybrLgZlCOGfyosDh/QKcqgGHDn/z/jIrAEIdQIfnCN97bsTyAto1udW2lpRglYnKgcRUDBsdqgF5G7x0zP+/eQYVukOqfs6OBVs9ZvCM++Zosm1lQJovaFv9BjYOIK1fe5RB3rAZsESTkNd/sdZvjild/eSHLIIN3jUdl17zmb+SEolvG5x4f3eI4bi0VvQps3d56JBz1zG4y2kHXWj6TTIFfRXvUmcEVngJoil+HBF3z+9u/EpEJpemqyWmbFBxzpbjGL2AJtsV1HLSGBp1nhE5KzMTbo7VCcmiUTAAi0dv1KK082gRGD5pCqNB6HnSc3FKj1xzkYKD7DcVeSQEX+rOxKY/7IMz3clRu8wjSw17qxDhHGzxcrYTbMC4Eg97+liGdSlKBuwaCLZv5kyekTqfW7BhljDpBtFapMDpnoTQLqCdUYX5AUppOj0CE08D2UzzV5I2KbVH5/dlvFjTBfQCOoxkXvu9n/MOcM6+kgSyyuuvNm654JzArKO6K8Byv2PS/1GFBd05bmg2B4C6Wt70f09pceZ5l0KkZ90bH85Ch3p4MCy0sbiCsmYLzdg7clNg0LqzDVrKQXrGWS76FNjI/2iZNfWHQ3QShX5oAmD1lNyQNgvTOqHgQk1q
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(37006003)(16576012)(15650500001)(31696002)(54906003)(508600001)(5660300002)(6636002)(26005)(4744005)(86362001)(8936002)(956004)(2906002)(83380400001)(6862004)(316002)(38100700002)(2616005)(53546011)(186003)(8676002)(6486002)(36756003)(4326008)(66946007)(31686004)(66556008)(66476007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TlV5bSs5TkwzVCtwVUVDVGo3YTdleVc2SytMYmYrcjhpcERZZFh4cmw4SThI?=
 =?utf-8?B?OFRUOGVaR1YyUnNidkUydXNxRFZ1b3VUbHlnQzR1WUtIM21CZy9iRFpPU2xs?=
 =?utf-8?B?cmtTNlYyQ1RkM1lVbHBUU3BqemdNbE1za2hkVHo5WHJSZGVPSlB1QjVrNHdp?=
 =?utf-8?B?MkptNkg5VFp6UUxLQjJrdkhCVGk2T1Q3RlEzeE9nNENjR2EzSGhkQ1A3WkRi?=
 =?utf-8?B?WXcrNmhOSEI3N1h2WGIvWU1rOW5zSzdSQ1Q0RDRQSHJWUVJvdWdlK0xBSXV0?=
 =?utf-8?B?Zk0yTVo4YVMrNVl5VDFoVWprVDFyOWJWWnpBSCtJUHNOcG1CY1o5T3ZhLzRo?=
 =?utf-8?B?blRjWmhLTXRVWDJjdERSZi83MGxjcEVKeWN4Mmo4YUhNY3BNMm1FcVU1M0RG?=
 =?utf-8?B?WU1LQzFRTEpPWDk5WlBleDBhVGRnV004SDBPSEcycW1HbHdnb3R4NHBQS1Rw?=
 =?utf-8?B?UE1DMDFxLzM2b1dUaHdBdFZ0aDAzemNPRWoyNDhlZGRxMTlVUmFIa2M3NE16?=
 =?utf-8?B?RC92RngvS2lxSGpHRDJkTmQrV1UyUEljdnRmRFhUdGk2RjNvbi8vUFVRUUQy?=
 =?utf-8?B?KysyQ3BoWXR6M2RxZnlUdXVPU1pRWGMzRUNTVlpKYlh3TGJUT3BYeWRyM0RY?=
 =?utf-8?B?WUpKNjg5dzRZQVRhcWg0aUxKNU4wMngvdjJVaWFPVkZVMDJwQmVCKy8rTXdj?=
 =?utf-8?B?VUQ1WUkyWG5iWUZSdWFua2lITnhGMi9UaWUvM2plSUtRTkZPN25TUUs3SEh5?=
 =?utf-8?B?cDJGL2tUb2plVWJqQTBzdldDenRRSkZsL3JkTm9ZWGVwUFpoNDl1ZXNFVTd4?=
 =?utf-8?B?MXlWVUc4KzMzQ1B0eWtyK1lxc2hDNlF6aVM0MEYyZ2UvU3FwTXdEU0hwejNM?=
 =?utf-8?B?Qkg1NXZ2SUYzQnhBVXVzejY1ZHBUampDMFhWMkNHVE9HK2hJUzkwcjdFRXdP?=
 =?utf-8?B?dlhPWE9KamNTY2VCV3JUbE1HdUJHQnZIWHY3WXVxQndES3FublFwdW5zaWw1?=
 =?utf-8?B?MFlDTFNXSzdlZFV0TEdsbWZYVXp2S3I1UFBpMXkwQXRzVVVHT0hGdGVoWWhK?=
 =?utf-8?B?OVliNEpDTitDTTE1S2pDNVM0Tlo2YTNEb0NvMXc3cmdodFZtU2x1OGFraG1o?=
 =?utf-8?B?WlpHcGdQYXQzZXQwN1c2dzV6WDluNjNZc2ozUHRFVE9MekVmcGxvd2tHVGZq?=
 =?utf-8?B?bW83L0d0ZHJpd1FPNzNJek10S21yUElLYm0ySU50QXR0Q0xkaDRJRm9sN2p4?=
 =?utf-8?B?dzFkTWQwdEZXRVRLZ2M4TmcxQSttZVlscjdmbHpWTjZIYWd3R3laTWhCbnJX?=
 =?utf-8?B?aFNPc2NKdVBvZ3NMSmIrNmE4eUsxN0FOSHJVTVFJK0gyYlc2RkJoS2E2QzdT?=
 =?utf-8?B?TFk0YnlabkpjWG5SV3lPcHhJUWlQL3hBUTJCemdvQlliMitOaXpsOXdhVDIr?=
 =?utf-8?B?NlhUVEF6eXpvUkxxQzhxWGpMdmIvUXBlbnF0TGRWYUxFWmFpUFF2Y25WYXE1?=
 =?utf-8?B?Mkh5a041dXRKUEJMK0w0UXdseXVZNDlRdjlmVlMxSTNNamw2TS9nVEt6STg2?=
 =?utf-8?B?dkJyblMrOE43cGxuS0VRY2hkbC9NSlJQb05keXB4V3R0SUVVQmc2UnRhUGJG?=
 =?utf-8?B?UlkveHVBSUMzMk5NOFhYZ3gzVXdiS2sxYlB6ZzU5WHovczRhMlAxem0wUWp6?=
 =?utf-8?B?WksxNXFscWFrcVF0UmRRZThOcTRzTjdFcmtmaVZ1cDdUdndLKzlETklTYjhi?=
 =?utf-8?B?WGxqeENhbGVKd0Jlc0JFc2JxWHJaSkYwQkNuUTlTcWdlcWdWbFZOTUZmbkZW?=
 =?utf-8?B?elpjTEZPTU1ScEpoOHhNcGUweVRjUmtNSFpYamxoRGZRbTU4SmlLdFYvaGg5?=
 =?utf-8?B?bFFGSmxnRS93c3B5dXA2RmdVaHRKVTNKVE5PR3F0MW9Fb3NRQUF6dnF2Sllk?=
 =?utf-8?B?WW1PL1VXcmNHb1EvUXdUV0V4MmFYV1ZkL2YwUmZxRDdMbTNWYzZGMmY5REd5?=
 =?utf-8?B?RVgvUWc2MmJCckxXUDhiaHNqY0JTeEtVTURCYktvd0pHQ0hUUGFhQWVnWThV?=
 =?utf-8?B?YTJ1YWxwWWNicEsyUlMzWjlPdGxHaDVWdVF2bCtxRy9pQVdMczdIL01FSE1o?=
 =?utf-8?B?R09GRVp2TmQzc3l2bnFBa0NlVkpSVGhKWTV4bG5ObkxZb3ZsMnZnODcxWVdK?=
 =?utf-8?Q?yoS2GoOJsYSC2ZMttdL1JZs=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 22bb06af-6657-4e79-f5f8-08d99f76a7f2
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 09:37:02.4349
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3DHL9Yqklwv//hjpYHw/B0VHGFOhEMRPmxCBUDDefRWToJ+GIso6Z0CrFl3hedEwHhDN4Ni9W79Cy8ez9WxcfA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6477

On 01.11.2021 16:20, Juergen Gross wrote:
> The hypercall names need some update.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

In the context of reviewing v1 of this series I came to make an
almost identical patch (sole difference being that I took the
opportunity and also switched the table itself to "static const
char *const"), so
Reviewed-by: Jan Beulich <jbeulich@suse.com>

> --- a/tools/misc/xenperf.c
> +++ b/tools/misc/xenperf.c
> @@ -57,6 +57,11 @@ const char *hypercall_name_table[64] =
>      X(sysctl),
>      X(domctl),
>      X(kexec_op),
> +    X(tmem_op),
> +    X(argo_op),
> +    X(xenpmu_op),
> +    X(dm_op),
> +    X(hypfs_op),
>      X(arch_0),
>      X(arch_1),
>      X(arch_2),
> 



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 09:46:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 09:46:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221401.383092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZK0-0002CM-6P; Thu, 04 Nov 2021 09:46:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221401.383092; Thu, 04 Nov 2021 09:46:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miZK0-0002CF-3C; Thu, 04 Nov 2021 09:46:12 +0000
Received: by outflank-mailman (input) for mailman id 221401;
 Thu, 04 Nov 2021 09:46:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miZJy-0002Bq-TE
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 09:46:10 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06a04a9f-3d54-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 10:46:04 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2056.outbound.protection.outlook.com [104.47.14.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-24-Wvq8sCgHNBiaR0Li0tIEAQ-1; Thu, 04 Nov 2021 10:46:02 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6174.eurprd04.prod.outlook.com (2603:10a6:803:fa::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Thu, 4 Nov
 2021 09:46:01 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 09:46:01 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0301CA0008.eurprd03.prod.outlook.com (2603:10a6:206:14::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.19 via Frontend
 Transport; Thu, 4 Nov 2021 09:46:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06a04a9f-3d54-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636019163;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=q2PeWNDLm6SE87C8u2uiwmZqcYXDGafiYCkUQakxIKk=;
	b=gW43U3C61DNESHrfHCOaA8106LWewIWkHzdZBKZ7VGO3UpHOx378PJg5CF5RtqE0nbrDjx
	Z9z3/2Pauxp0QVeArx7VZmfcBbDHmyrPpZeGRiYqkwi8dtq1Quvyr2ONUrZRf+A4lYczoM
	O+5vx45QFv1eUilTqziPpNdmZS+glqw=
X-MC-Unique: Wvq8sCgHNBiaR0Li0tIEAQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZAtdQ9J6rJs0Jh2l3F8lmQPFNPaXowvP2Q+XA+0b+p9LCVWn7Avv/L48mkCwUrmlNB9lLpCCa/jzaWoZrRBb/dipDnSI86hbDStXElDucmqMHfnMETEUp2x3D+yqIYj3jKrtbLhVAquwcb/fkvM4AKJaaeA2b3UgbMtuowDin/pVArMrHMhYyCxxWNIxuzcndjJ4UVcxffJIn9jtcc2W7A+0UFymaMiQkb4TvJiqjDCY+astrr59H7956zNWpywPHdJTB+ocYVjcH/y2P/izZ+PWqp9K8bjXl6/3KqhgVH2F230WMjvzhqIerF8XS0wnvT083nGxzWjvjT2MBIvoaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q2PeWNDLm6SE87C8u2uiwmZqcYXDGafiYCkUQakxIKk=;
 b=b0ku0VdfeMxC5mNP6yrNcDwJ+puT8Ck/gqtGHOzH80n8UMczVUf0DJBpbd5a9yJcbgcHwFywPXf++cslmGGeASQHPFXdVo/i24tb1mCF+nsRqhWpMZmgWlst2cS46dxI+Yrn+oQ9yYu9gYZqyGZnozMUnMVbn63XdkoGU7SAtpFKCJJZSP4+et7et8jB42Xg/mXK67E0wswD2NCNwKe2N3yPv79gI2A4UWQC0dIhBMKETZHrkfGU8dNX/CNtXchvq0jkDXqSXpZWYcjeuVGJYinZ4iscfGEKhrrQUdBwS0Nf1B8B2I0X6LnBV0H2olrfEYtWHZJcKvUqEQztUd+CKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <770fdb92-123f-f33a-3b8e-4d251093844d@suse.com>
Date: Thu, 4 Nov 2021 10:45:58 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: Ping: [PATCH v4 3/3] unzstd: make helper symbols static
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <12054cba-4386-0dbf-46fd-41ace0344f8e@suse.com>
 <759c8524-cc01-fac8-bc62-0ba6558477bd@suse.com>
 <cb8fa703-f421-ce55-811a-d4a649bc201a@xen.org>
 <1696e5f2-481a-5a7f-258d-b2a0679b041f@suse.com>
 <f6e00fd9-a207-858e-37e8-fb25427cf8de@xen.org>
 <4a083cb0-9131-adbe-9be6-bc1ee3028eb0@suse.com>
In-Reply-To: <4a083cb0-9131-adbe-9be6-bc1ee3028eb0@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0301CA0008.eurprd03.prod.outlook.com
 (2603:10a6:206:14::21) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6d59024c-eec3-4757-90e2-08d99f77e8e8
X-MS-TrafficTypeDiagnostic: VI1PR04MB6174:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6174C2AA48E4DDF09F3DB1C0B38D9@VI1PR04MB6174.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ELIPzfBpaEAXkDVhDnpiq73FogUyaYagvCypn9NzAtMBhgqMd0chm8KlIyCGVp69qGlfpY1MbvDbG/y522r0MjCmwUfG/FVI58LaE7Nxlw40UO2x3lPxKri8sqvShFWCj590ara9asSsli0UMqgncqe+oMy9l0I7F6GT4SH+bDQUlpuAAFDYKyJfQJ3W7Tg46ICIUcH8jxKFU78fbMtG1DyfLZiZm6SA5A5EAIJ9HB+2dr5tPc/PxzGknJDzZj6+dRZ6T5S4ApDQ1tYJKx0XRNsXMkbE8rGHFPp1xmfJ4qUPVuaXobKv+cDkBmEhfl+QvKHHC+q/Cb0PLB02EH/pgLv8nagkBLZGIn660GHvPOjPpBoZsuyOuSs70atKQ2KHw+3RT3HBJtTESbr4G1IqtCqwhIQx42j+fuRDlXUz6I0NJDaz8GgElE3NntZArtqY0aSQRY+RC0tv86l31/N2LSxUe0RbjfgV8HzxmZ+5rlHToNFP3KCDZRlnsIkDUKm8Cid9RJcJsYFxVE65vxUqkUvjfuIpX/D7ESQKIf8aH1jQE6HgnSUa38gkiEVZjnqPwjtMatSFd/U5/HFXAwcHIOdOE4U12ZtttcRhaZDqV5lnRC+3Z9DqPiWpxuALvyLWGi3abWu5/MXtdlLZjJovYiowG+k9VxK2l3IJHKCMhZxFj3cf/+A2itZgwBm1YojmqMYJTuRDfzsd7iSCJnLMWHF/VevOPeBU0qX98d7FjjNOoPESwNV6w1nS3ST44/mk
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(16576012)(8676002)(2906002)(38100700002)(2616005)(83380400001)(66476007)(66556008)(6486002)(26005)(36756003)(186003)(316002)(8936002)(53546011)(66946007)(4326008)(6916009)(54906003)(508600001)(5660300002)(31696002)(86362001)(31686004)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Vkw0ejdVYXh6TktaYXpXcUphd1VCVkpzamxianYxVEV4YU80KzJqT1dJNURC?=
 =?utf-8?B?VFo2RDhtVmJrYkQwdDZpUmhyUjBhT3l2bi9HTVI3cUNwWThHN1crVlV3WGxx?=
 =?utf-8?B?Q2haRytDbkJCRkhWbXhVK3J5OGpnQml5d05ORDYvUHd1VFR5ZEUweXIzMFA2?=
 =?utf-8?B?c1Jnb3h2TWNjb3FDMWVCL04vbVhWNmV0YmNrSjJtVGp3dEJsK1BIclFKM012?=
 =?utf-8?B?RkU0U3VMdjNoNWZzL0VBc1N4cnkvcUxaNjZwZkREQVR3RWtCYS9hME5LVEg1?=
 =?utf-8?B?SkhDeTAvTTllVGxzM2pSY0Y5TTFhSE1iaFdBc1ZoYksyMjZRYmRyVENIN1hy?=
 =?utf-8?B?RHZPZDYxTjFjOXR6RFN6S1Yvd0d0cTBSeWpYM1VBQ1YrRmxSTlRWUmtQeVcv?=
 =?utf-8?B?dlBQeGZCRUEzOGEyZm5oWStPZkdYVUdNdjhXUmFkRGNDamtwR1J5Wm1lbFZn?=
 =?utf-8?B?UTJqYmJLa1llYTNTT3V2Y1Y0ZDNKOXdaTW0zdlFySkNNcTdhOU5PVE0wUFZS?=
 =?utf-8?B?Rit4SzBuNjVVbEJUWUQ0dzZCb1dIVFp2UGJvMVU4SmNFcndDcVhHc3p6aU5j?=
 =?utf-8?B?aUNPaVpyWjB2OHVaa2Vyc1dQQzk3cFNzbVBCNDhDcmxSUUtnUkFGTGNrWUJF?=
 =?utf-8?B?R20xQSs4YmlPcjhjQ1pKdURtUG1MOUdtMWFsR2x2c0tSeXk3SnRSdWdZRisx?=
 =?utf-8?B?bXkwSVdvUGtTbnAwYXZBOVZNaGRWNmFlYWJ6NmVvVXQ1ZmMxL2RPZ3J2NjVJ?=
 =?utf-8?B?RFpPRCtMemFrMEt5ZlN3V3Q0UGVyNGY3b2Q5eHllbU4wOFdaVGEvbE41UXZs?=
 =?utf-8?B?OTg1MWdFYUxVOVE5bElWL1FLL2UvSDlLY1RYWVA0dW1LeGRISDhRelRoQ3k5?=
 =?utf-8?B?dlY3Z1p1QU9CdGhMQ21HNzRzRys0MzI2UCtNUk1HdDl2cnB2dXM3L29XU3FN?=
 =?utf-8?B?c2p2M2J6MVp5dTRNa3RwWkROZlpIMFFZWHpGdlBGTGJpNkNCMWhoSTRsZmYx?=
 =?utf-8?B?eTVGWDlxUlkwcGNJZFlXSUp2NGkySmNaL0dPb0JzSkw3V2xSS3hOU21CLzF2?=
 =?utf-8?B?dkVaNnBOaWdmYk5EMVQwdWdPSnZqZ3JtcW5zUXBGZVRIQklTL1ZFMVQ3c0NH?=
 =?utf-8?B?bVpSTC9qWGttSFJqcnVDdy9NWjJHUHBxUWFRM1NGQ0tmRUFMMzJHYkpzbEVK?=
 =?utf-8?B?YlJGWExYV1hacEV5a21kUDYzTWtsNjgzeWZXbTI1WkFJYzJZZVVpVk1uQ0Iz?=
 =?utf-8?B?d0ZrVGptbG12VHNRWURKTG9ZYzdtY0syUXRRbEhCWnRoSjRyVHRlN3hzUDJI?=
 =?utf-8?B?blJMT1dYZUZlbjdFRStESGVyVDZ6TnFOdHptMmw3dlFrT3A4SUk2dzU3cnhF?=
 =?utf-8?B?dWpEUDdEcXpPMG5ZYVllNFFOa21KUDc3aEIwNkdwamNjNmZGU1BBTUhzMWJs?=
 =?utf-8?B?cjhYSTB0S251Nkg4d2JOVllybExVbnhPVHRhekNJRzArWHhRUlcwU20xYSt4?=
 =?utf-8?B?b1pXSGRPSDI2cmxIc2xtbXZTU2wzY2duOHM1TWVMbFVuYVJ2cDd4SS9VeElX?=
 =?utf-8?B?VjBmV29DbDdmSGxTUUFGcUNsVWVscmFpRkROVkllekVVdjRGb0UxamNuTTdD?=
 =?utf-8?B?MXpiSyt5OXcrVms1Y0dLdXNmZjcyd0Nldm1kUjFwamRJQ241ZlN2Ry9XUkpm?=
 =?utf-8?B?b216a0hVWEJvRmFvNzJBaUR3SURNdDBDSkVJZnZEMDNWMm5DRmZIT1VpMWFo?=
 =?utf-8?B?WGRnMWNzQWlENjFDV2dEZEhUbUhjaEtrRStsTmZrSk5FWmNDOUgxdzRIeEQr?=
 =?utf-8?B?YkNIK3BFSHYrWDJOVEFsZXVJQWhrZjhOb1ViTGE1aklMQjRiNGx4RzRhcGhH?=
 =?utf-8?B?T2dBS3ZiVVptU2kvRkhHdXRjcGd5QTFrWnRuS3NLeVRTeCtwcmdPa2dYa2tr?=
 =?utf-8?B?VTM1eXh6a2UwUEdlZll3c1ZiOHF3VkEvWTVybVlLWWtzZk45NFcwcVdBRU9z?=
 =?utf-8?B?anN5QmZVem9hT3draE5CUy93ZHFXZU5KMGd5M0ZFRVQ0NWpNY0VJQ1pxZnZj?=
 =?utf-8?B?ZXJCRXk3SEtxUEhETE9oUk94MTNKdS9QRldYMzBlVmlZSWZmZWNnSXpjcW0w?=
 =?utf-8?B?Nk9iMVRwSkRHejM5R0tiVVBER3JRdHhBa3lvdFpMcnk1aFZ2VXJQM1BaYlFw?=
 =?utf-8?Q?UOHl0f6PfuYQSz8Kt8EKhUg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d59024c-eec3-4757-90e2-08d99f77e8e8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 09:46:00.8595
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XuC7+deoRhd73JJ4UUa3N0BB9B+SN4FO/YRKmHsW49ZW3LUEX7tpbLjgWlDRNgTM6v7USRECHP2sSXkv41NBVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6174

On 30.06.2021 09:43, Jan Beulich wrote:
> On 05.05.2021 19:35, Julien Grall wrote:
>>
>>
>> On 29/04/2021 14:26, Jan Beulich wrote:
>>> On 29.04.2021 13:27, Julien Grall wrote:
>>>> On 21/04/2021 11:22, Jan Beulich wrote:
>>>>> While for the original library's purposes these functions of course want
>>>>> to be externally exposed, we don't need this, and we also don't want
>>>>> this both to prevent unintended use and to keep the name space tidy.
>>>>> (When functions have no callers at all, wrap them with a suitable
>>>>> #ifdef.) This has the added benefit of reducing the resulting binary
>>>>> size - while this is all .init code, it's still desirable to not carry
>>>>> dead code.
>>>>
>>>> So I understand the desire to keep the code close to Linux and removing
>>>> the dead code. However I am still not convinced that the approach taken
>>>> is actually worth the amount of memory saved.
>>>>
>>>> How much memory are we talking about here?
>>>
>>> There are no (runtime) memory savings, as is being said by the
>>> description. There are savings on the image and symbol table sizes
>>> (see below - .*.0/ holding files as produced without the patch
>>> applied, while .*.1/ holding output with it in place), the image
>>> size reduction part of which is - as also expressed by the
>>> description - a nice side effect, but not the main motivation for
>>> the change.
>>
>> Thanks for the providing the information. I have misunderstood your 
>> original intention.
>>
>> Reading them again, I have to admit this doesn't really change my view 
>> here. You are trading a smaller name space or prevent unintended use 
>> (not clear what would be wrong to call them) to code 
>> maintenability/readability.
>>
>> At the same time, this is not a code I usually work on (even if I am 
>> meant to maintain it). I will leave another maintainer to make the 
>> decision here.
> 
> May I ask for another REST maintainer's view here? If there's support
> for Julien's position, then I'll at least know to drop the patch. Of
> course I'd prefer it, or a stripped down version of it, to go in.

FTR - a response to this was iirc supplied on a community call (by
Andrew), requesting to actually delete the sections of code enclosed
in BUILD_DEAD_CODE conditionals. I've been pondering the request for
quite some time, and I've now come to the conclusion that I do not
want to do so. Hence, while I'm not happy about this, I'll treat this
patch as rejected.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 10:33:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 10:33:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221411.383102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mia3A-00072F-R0; Thu, 04 Nov 2021 10:32:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221411.383102; Thu, 04 Nov 2021 10:32:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mia3A-000728-O1; Thu, 04 Nov 2021 10:32:52 +0000
Received: by outflank-mailman (input) for mailman id 221411;
 Thu, 04 Nov 2021 10:32:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mia39-00071y-8j; Thu, 04 Nov 2021 10:32:51 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mia39-0001cF-1C; Thu, 04 Nov 2021 10:32:51 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mia38-0003VU-LP; Thu, 04 Nov 2021 10:32:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mia38-00079b-Kt; Thu, 04 Nov 2021 10:32:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=GWKCffSUYO6hj9+nC9otL9OlUeBd3pjbIYzBfwt+9ps=; b=oWF75tjuBEOLRuL8C86Z83YgM3
	FWWWO794FVmlFsaK8uz4H76ua50loZYQEkiHWZSmHjzO6NPA3BVBP9AQ1Wzw+lK90dNa4yplpELXT
	3PIQByVZO4Z/0UqfOziQClMZJ7UHkxpPSOy8F0VS6fgaVLy8UjTNTBMGxue7sTDSpYao=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166040-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166040: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=8970094afd473234a3cbf0d8f1f8cbe6e2e421b7
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Nov 2021 10:32:50 +0000

flight 166040 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166040/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              8970094afd473234a3cbf0d8f1f8cbe6e2e421b7
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  482 days
Failing since        151818  2020-07-11 04:18:52 Z  481 days  467 attempts
Testing same since   166040  2021-11-04 04:20:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 81928 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 10:48:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 10:48:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221421.383117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miaIB-0000By-Cg; Thu, 04 Nov 2021 10:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221421.383117; Thu, 04 Nov 2021 10:48:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miaIB-0000Br-9N; Thu, 04 Nov 2021 10:48:23 +0000
Received: by outflank-mailman (input) for mailman id 221421;
 Thu, 04 Nov 2021 10:48:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WbKJ=PX=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1miaI9-0000Bl-Ra
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 10:48:22 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7b7c284-3d5c-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 11:48:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7b7c284-3d5c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636022899;
  h=to:cc:references:from:subject:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=BL0t2KZ+dMNR47mWg5wvBPm/knloEJ0jkB6nfDydSzE=;
  b=VGN3y9ai37NZEjs5XCaz8bsBvNcGprEaR+xElbZvWtJ96v6R+LYYtH9b
   Co6Ar91nI/sYt6ZlWhxgoHpOzNDsR7k8NYog5Bqb1r9p4O3ENMSpf9ij+
   z3m2cn2iLZlNMx8tMi59HyA9CHSskVAXiquOetmChvCIG2hDoAYZONOFh
   M=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: dUCJrT+QWLdxsxTW9yJB5kv6U3Kb8I4TuZq3DzDeu4Vr8bnn5qNAEpIlVetRiK5Lj+wDlKo5i+
 WoxOghHb1E3mMtEExA6EsuHiDk8cAYwkJXbJVcqpwHIE3gIEH18jHp00W7OY7DGZmUp4fZ+x2h
 UHK8OlRyaAsfBoxu2EXYaRa7nr5oXh5ZNwmDceEskouQT9ET+0WMVGwDReA8EAFP21mQqcUc2g
 pp8LgGFmD1MOxan/rghd7r4K/4iwtHTvtVNFbIi7s5SqClCXuoTH6Iq+OIENYqz2P3u4h5ev2F
 WToRPJdKSqmP+/NtuR6z+ANq
X-SBRS: 5.1
X-MesageID: 58999591
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:nH4G6quqzGdj1jLBEdvfGVXeF+fnVKdZMUV32f8akzHdYApBsoF/q
 tZmKWqBbq3YNmPxetggOt+/o0sE65bTyIVqTgM5qCBgRClG+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YThWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Nplmr6XaTkJY/LwtMsTVhtoLA15J4drweqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5tIOGc+NXwsZTVhYgsKU6M6u96tuV/2XzhlqH2St64etj27IAtZj+G2bYu9lsaxbcRKnG6Iq
 2Te5WP7DxoGctuFxlKt8Hihm+vOliPTQ58JGfuz8fsCqE2ewCkfBQMbUXO/oOKlkQiuVtRHM
 UsW9yEy668o+ySDUd3VTxC+5nmesXYht8F4SrNgrlvXk+yNvljfVjNsoiN9hMIOm+0RZQIKi
 wC1s/znAD5fj5GSU1iwz+LBxd+tAhQ9IWgHbC4CaAIK5dj/vY0+5i7yosZf/L2d1YOsR2ypq
 9yehG1n3uhI05ZXv0mu1Qmf22rEm3TfcuIiCuw7tEqB5xgxWoOqbpfABbPzvacZd9bxorVsU
 RE5dymiAAImUc7leM+lGrxl8FSVCxCtam20bblHRchJythV0yT/Fb28GRknTKuTDu4KeCXyf
 GjYsh5L6ZlYMROCNPEsPtPvVpxznfK4RLwJs8w4iPIUMvCdkyfdrUlTibO4hTixwCDAb4lmY
 f93jvpA/V5FUP86nVJats8W0KMxxzBW+I8gbcuT8vhT6pLHPCT9Ye5caDOmN7llhIvZ8FS92
 4sObKOilkQAONASlwGKqOb/23hRdiNlbX03wuQKHtO+zv1OQj59W6GKnOp+JuSIXc19z4/1w
 510YWcBoHLXjnzbMwSaLHdlbbLkR5FkqnwneycrOD6VN7ILOO5DNY8TKMk6e6cJ7utmwaImR
 vUJYZzYUP9OVi7G63IWapyk9N5ucxGihASvOSu5YWdgI848FlKRotK0LBHy8CQuDzassZdsq
 bOXyQ6GE4EIQB5vDZiKZav3nU+xp3UUhMl7Q1DMfotIYEzp/YUzc37xg/Y7LtsiMxLGwjfGh
 Q+aDQ1B/bvGopMv8cmPjqeB9t/7H+x7F0tcPm/a8bfpanWKojv9mddNCb/acyrcWWX4/LSZS
 d9Ul/ysYucamFtqspZnF+o5x6wJ+Nay9aRRyR5pHSuXYg3zWK9gOHSPweJGqrZJmu1CoQKzV
 0+CpotaNLGONJ+3GVIdPlN4POGK1PVSkTjO9/UlZk794XYvrraAVExTOTiKiTBcc+QpYN90n
 795tZ5E8RG7hzorLs2C33Jd+Gm7J3AdV7kq68MBC4jxhwt3klxPbPQw0MMtDE1jvzmUDnQXH
 w==
IronPort-HdrOrdr: A9a23:VO7Dt6C3jth9ePvlHeg8sceALOsnbusQ8zAXPh9KJiC9I/b1qy
 nxppkmPH/P6Qr4WBkb6LW90dq7MAzhHPlOkPUs1NaZLXTbUQ6TQr2KgrGSuwEIdxeOkdK1kJ
 0QCZSWa+eAfWSS7/yKmTVQeuxIqLLskNHK9JTjJjVWPGVXgslbnnZE422gYytLrWd9dPgE/d
 anl7F6T23KQwVoUi33PAhJY8Hz4/nw0L72ax8PABAqrCGIkDOT8bb/VzyVxA0XXT9jyaortT
 GtqX232oyT99WAjjPM3W7a6Jpb3PPn19t4HcSJzuwYMC/lhAqEbJloH5eCoDc2iuey70tCqq
 iBnz4Qe+BIr1/BdGC8phXgnyHmzTYV8nfnjWSVhHPyyPaJDA4SOo5kv8Z0YxHZ400vsJVXy6
 RQxV+UsJJREFfpgDn9z8KgbWArqmOE5V4Z1cIDhX1WVoUTLJVLq5YEwU9TGJAcWArn9YEcFv
 V0Bs203ocWTbqjVQGagoBT+q3oYpxqdS32BnTq+/blnQS+pUoJjHfxn6ck7zA9HJFUcegM2w
 2LCNUvqFh0dL5iUUtKPpZ2fSKGMB2+ffvyChPnHb3GLtBNB5ufke+83F0KjNvaD6DgiqFCwa
 j8bA==
X-IronPort-AV: E=Sophos;i="5.87,208,1631592000"; 
   d="scan'208";a="58999591"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kt+/kymELTzoe40lXNAn7eQUuZIceVWIzmKtMa95+/+CBfThsRhJS8Te4g5azvaSgk/F09Vgshs9QlvWrXF2wOP08/Bj5gOABcpjxQzVpJcF4gValv87wtg5LJV5xqje3OGrD/2zeAQCKnswSVZkCNm+t3CoJ3oapKnY5oyX+USIxBgu5ImysTwsunjLKj6r4Ql6knUJFPt7U/VRA3TGbUkdFhuZlqUh3f+vNuLEA8amRH3AISNDaaEPkMyKpa2YiyNPvCTxxjWDjU87nYOzDBFidnejjcG81l9yzXQivZKAdahTWS1ZN/SlvX4UWPl7QSkTHwa+kmZBk9+PdNHplw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jZL74gpMZNhOsIucIIbBcK1/5VYlyzbYulIQ/CkgVEU=;
 b=fRJb/3K46SrQyNk/treIHWKPRhPjyW8wyVrX1RSPHvRT6Gw2CvfXZVtYf0v0/0AIDt6QytBCdvezyLlp4BzZkrOZlOGfiJvhs+CPph+h2BSk0EwqicwKo0/HpZq213EhB5wWoGwEoEYExLVeSLGUZNzK79mJhkil0eb7gYMcN+MWsYA4OEl3RK1orIbK/es0uHkR4YgEn9JGpMg8iF3K3mRfPtkpvqUHHPPN4MA3cSDAyAzcbenBJeQeaS3PkT4SKwM+/E26INs36O+vJA8cbJ3boMpiWQ8JX0WvC8hqwCXG3205URrK1bi0SI/iIgW/W/lWjESKheyci0kJpKouPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jZL74gpMZNhOsIucIIbBcK1/5VYlyzbYulIQ/CkgVEU=;
 b=OD07dzwEBl9D0G9y5NLGvIZJNgEnRD8fOAtpQ2zv6X1Es/rPi/hlyvLv6kKkTyCVQEqf6R+NXNcBPcE8UdzryUD+n1dt1ranWSkiuO3bvFXVLhjWZhX4H5iPQVtyvz/DML0OOqx4j0ATPtP9iZ+qYFKx0rs3KLbWv+nV/lUeOkE=
To: Jan Beulich <jbeulich@suse.com>, Ian Jackson <iwj@xenproject.org>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
 <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
 <24962.46376.136195.463274@mariner.uk.xensource.com>
 <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
Message-ID: <67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
Date: Thu, 4 Nov 2021 10:48:02 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LO2P265CA0315.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a4::15) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e989a163-6ccc-4029-e420-08d99f8096bb
X-MS-TrafficTypeDiagnostic: BYAPR03MB3495:
X-Microsoft-Antispam-PRVS: <BYAPR03MB3495E1CA2075C653087BA2E2BA8D9@BYAPR03MB3495.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: L/JULrbplkHzKb+lEO1/Uwgpu+6xl7yUDG4rFaPVD5BrStG7k76YSkxMODUzhMM6W+uUPiSAIApIfxgnNcnZDOFTm4DRgRXUaaUgJ4iKP9f6TYeTOY7HzNacQIgqu5oByYYATKbRW9aOFyuOlI0Uz8Zx6RiSnMtKXcxjvjM/zKW8HvHeSJM/6vTgTQ69/WzyP2Vi5IRrc3QQdwk6d5SwgisZJHCrVbJ34duZPd4dt2aqS5GmD7ma8gT+etM1T2CRlbF58hX/5t9qati8nDBac0tjlc5ytKwUxXqf7OzLMfGvGBav/aDdNGFVpAZ+buiNj+EM05LE49OFxnV8xEYKBLBSclKN71yzCN8K166iIFVoLxHn3OGzXFrEsCeAdX55zV7QtyvThAxmgwLZgubUlNWGLS+DRUSGbvGc3pdwRpNLjyTN8n8d2Kr8PGEzdbZovAMI4IGgUnDDe0p2MPr2HAQQRPO7a+lhqnzx5C4bD2jGBgJxSGp4g2F4TRS5ujZnM8fG8zmkfnnX8WFf2f6jmXpM/+r8sbC5POWKPwHRwjNVvDsmCE1oDKe/87d29z5GuOcpxBFuifuxOdNoS7Zen4laZbV5s1QMOTLsg9BYZAGLXEGYD9DJfLolujMHFJymvXR41xl6BdcPJrs6CSI9Lt4gAv+kix0B+WIdZVwH8UiPC1UbvzFRcY3DW9lylhp1iCtYNLPc0D2UmuF6mwH6SWVJk97RvChmzcnnyvZ98aF4r+kwjPtMKEehSXIZ5M5++pb+9x4OukWs4muYs0alFEm0N+g2lZHGfv7eh9aR3wzLHKvhXtfPHxwbic+K5ERo
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(110136005)(82960400001)(4326008)(54906003)(6486002)(31686004)(16576012)(83380400001)(186003)(956004)(6666004)(966005)(8676002)(31696002)(5660300002)(53546011)(8936002)(508600001)(66476007)(66556008)(26005)(2906002)(66946007)(36756003)(38100700002)(316002)(86362001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dnlwYnA1NUtqSHkwbjIzelpaS09DOGlOUzdXOERCaDdLZkROZDZzeEE2QVBY?=
 =?utf-8?B?VDJPQW9ITmZNOUZnU25HT0JVU1Q0VVk1TlFJVTRBMFhzdHFxa1ozdU5ZblVx?=
 =?utf-8?B?UllNb2E4Z29yMEhNV3J1WkVUOEJERGxxakxMcktiMjFUd0NGMVZESEU3Kzkx?=
 =?utf-8?B?VERkS2s2blZDMXpFdFFiWFI2MlFicHBLd3Z5RWxEdnJpVHI3Y1hLNi85MC9D?=
 =?utf-8?B?TFF6aGZQT1l3MGFKRzBiWjRITDRBOUpBZmRFUWtvZjlwdlRGRWVnOUdmWGF6?=
 =?utf-8?B?a0NEdENjWkJuMnpKeG12dkxvSk5pYWNveGNJQVJ3VVh2M21xbnlHcHRrSG9Y?=
 =?utf-8?B?K0FaV01lNWpXL3A0LzVBaHI3cUFYZWZycXRMUmUrV3FnRWVWSTBHdC9HUkN1?=
 =?utf-8?B?NExzbU5EWkc4TGpaN3M2T1U2VURlbmxUMTJFNHRvL1hTdGdXTGJzR1FkZ3k3?=
 =?utf-8?B?ZHh6NGRLVnJ6ZFZpNE95L1YvcTNad3F3QnBUblp2dzd5T0JqVjRuNlB2emNt?=
 =?utf-8?B?MkJaZW1BVXJUTDd4UXBJajY3dldKSkFvUkJ1c0dtbEVaeDAyZHdVdjFuZGhl?=
 =?utf-8?B?UWZROUVMTURIN29laXFoRW1vVnFTekFReTErM1pkMkMrU25oZmhLaGRnakpN?=
 =?utf-8?B?Y3FUZ3hFeGFIOFJSUXdKVnNyNkVFVGlBdElGVXhPQlNYMG80VHk2cnNvZi9E?=
 =?utf-8?B?aElPZ21kYS85aDBZLzRIWThuMWo1VHBUMGd6WThkODJnektpa2VpZWZEUUMv?=
 =?utf-8?B?Y2FsalNiellhem56ZnhNT1hEajJLZCtZNTRQZDdkbkM2RTZlVDhLOG9ZTTdS?=
 =?utf-8?B?ZktIQm4wbVJyTE11N0kzSXpuOTIvWUlSb3ptVmYwZkxFNEVYS3BQNnBZS3hu?=
 =?utf-8?B?OG4xajNJUlJhdnN5THlNWjdnZC9aeVRrK0dCTnh5Z1dlZlNqUlFBL2VEQXhP?=
 =?utf-8?B?YlRtL1FNUVBmcVlVbTZzVUFVZlNVdkwrUy80TFZCTUU0a0RDWHIwWmppa0ZW?=
 =?utf-8?B?WlM3bHJ0MVByT3VqZFBBUXd3MmJaWldkUGZTaWRaMzd1ZzNSa2xzU3JRUW9N?=
 =?utf-8?B?U01TbGliQkl0cWozVXB0MGUybzRMaGNXVWFRdVRJUmtaeU40RHY2VnJ1Q0N5?=
 =?utf-8?B?NFhLWXlJTllHNHF4MlFEU2g1NDRSTERnMmtjWTZYR1JOWGVvT3FxTXVBWEc2?=
 =?utf-8?B?UUNqNkNSQkVCZ1FEa0VSbUk3RExBT3lWRURpeTlTOXR0T1ROOERjS2tRMTlj?=
 =?utf-8?B?ZlBvWkFSK2FoeGo4d29CNXh3bzVpeVpoM2lVVU9oaytjZEQ1cGR4Skl3SjZ1?=
 =?utf-8?B?VXRUcnF4d0NvaWNuZ0Q3OERNZkYxVEdiNmF3MFEwSVBqTXg3U1dpOWZkT2x1?=
 =?utf-8?B?bVViWGpvQ0ZKUFFmK3AvVzlGSEFDQ0NJbUlrMmtadUJRU29PMkJ2UUVqd3dv?=
 =?utf-8?B?NDZ0U0JsS2d6RXlPc1VGQkxqVUsxeTRIYitWUDloVkkwc2xmaTQ0NmVqYTRD?=
 =?utf-8?B?aDBFQjcrUlorbkwyY0xuaUNIbUhmWnlvaXM5dmJudnMwQVpjZmdYaGowcXZF?=
 =?utf-8?B?QjlkYThCVHNMcDFUcDJXSDd3UDI3N0tKdzA2a2U2eDZtSEV5a09PTnBvQWJF?=
 =?utf-8?B?LzNYK2Raam12ZmlPZ3RpcWRNbVhlc3FCMlJKOE1Kb05vUnljMTdWSTRRRStp?=
 =?utf-8?B?cGpzMWhDZGFOTldFZGgrV2FjZ2lGc2lWUEhGV0srditHc0Q5Sm5uZEdKTmdX?=
 =?utf-8?B?K1A3WmNrQldDdmYyOG9XWG9QRkkyUzk1Ui9qeGlLQTdJYm9qbEZOa24reU92?=
 =?utf-8?B?L2ozeXo0cHBSRlZHcWF2eWpySm9qSFRrVDBvN2ZqN1A2SUx3eTNGU1hHd0E4?=
 =?utf-8?B?RVY0NzVYNzh4UWNSanBLN3JlNFJYOVFsdForbFhCRHJsZjA0R3hqT0J6QWpa?=
 =?utf-8?B?MDU1elpBTS9mZkNhNTV1Um1iQ3dHQzhWNUpJRTc4M25OYW90YzJJMHA2ejFo?=
 =?utf-8?B?L2VuNEhPQTBXMmsxdlpJTmROcHFkTWZlencyUTZjWkpOa2s2TGF0YWtDc1FF?=
 =?utf-8?B?dENXSkZiMnhFYWd3ODdkU3JDKzI2RDI3Q0gwTnR5S0ZHb09oZmQzNnNTZVVa?=
 =?utf-8?B?YW44LzhKeTlmY3RmeUtFVmJpM1FNdkc3OWhvVFZpTWhOQm9DSk5MRm5jNzUw?=
 =?utf-8?B?YWphTEFObTNwUyt2VTJpL2NxM2FOQ2J4ZFk3SlpZOURheHQzSDlqV1FZWmo4?=
 =?utf-8?B?aHo3ME45MjgzWjJEcEpkUkE1ODBBPT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: e989a163-6ccc-4029-e420-08d99f8096bb
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 10:48:08.5011
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mULKKkTH3WEAu02Op2HZh2jwJeLKCVPMJvOWuSR1WsnBIKAufDdgED/moSw9yWCREq86ohNS4psAJFB9CZMbsruVnsq+VTzSY1ywD+El5uo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB3495
X-OriginatorOrg: citrix.com

On 04/11/2021 08:07, Jan Beulich wrote:
> On 03.11.2021 17:13, Ian Jackson wrote:
>> Jan Beulich writes ("Re: [PATCH] x86/passthrough: Fix hvm_gsi_eoi() buil=
d with GCC 12"):
>>> On 27.10.2021 22:07, Andrew Cooper wrote:
>>>>   if ( !((pirq) ? &(pirq)->arch.hvm.dpci : NULL) )
>>> I disagree with the compiler's analysis: While &(pirq)->arch.hvm.dpci
>>> indeed can't be NULL, that's not the operand of !. The operand of !
>>> can very well be NULL, when pirq is.
>>>
>>>> which is a hint that the code is should be simplified to just:
>>>>
>>>>   if ( !pirq )
>>>>
>>>> Do so.
>>> And I further agree with Roger's original reply (despite you
>>> apparently having managed to convince him): You shouldn't be open-
>>> coding pirq_dpci(). Your observation that the construct's result
>>> isn't otherwise used in the function is only one half of it. The
>>> other half is that hvm_pirq_eoi() gets called from here, and that
>>> one does require the result to be non-NULL.
>> Can you (collectively) please come to some agreement here ?
>> I think this is mostly a question of taste or style.
> Personally I don't think open-coding of constructs is merely a style /
> taste issue. The supposed construct changing and the open-coded
> instance then being forgotten (likely not even noticed) can lead to
> actual bugs. I guess the issue should at least be raised as one against
> gcc12, such that the compiler folks can provide their view on whether
> the warning is actually appropriate in that case (and if so, what their
> take is on a general approach towards silencing such warnings when
> they're identified as false positives).

This isn't opencoding anything.

The compiler has pointed out that the logic, as currently expressed, is
junk and doesn't do what you think it does.

And based on the, IMO dubious, argument that both you and Roger have
used to try and defend the current code, I agree with the compiler.

pirq_dpci() does not have the property that you seem expect of it, and
its use in this case does not do what the source code comment says
either.=C2=A0 A GSI is mapped when a pirq object exists, not a dpci object.


If your answer is "well actually, we didn't mean to say 'if a GSI is
mapped' in the comment, and here's a different predicate which actually
inspects the state of a dpci object for validity", then fine -=C2=A0 that
will shut the compiler up because you're no longer checking for the
NULLness of a pointer to a sub-object of a non-NULL pointer, but that's
a bugfix which needs backporting several releases too.

The current logic is not correct, and does not become correct by trying
pass blame to the compiler.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D102967 is the GCC bug, but
the result of it was them persuading me that the diagnostic was
legitimate, even if currently expressed badly.=C2=A0 They've agreed to fix
how it is expressed, but I doubt you'll persuade them that the trigger
for the diagnostic in the first place was wrong.

~Andrew



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 10:49:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 10:49:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221425.383128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miaIg-0000hZ-MJ; Thu, 04 Nov 2021 10:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221425.383128; Thu, 04 Nov 2021 10:48:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miaIg-0000hS-Ih; Thu, 04 Nov 2021 10:48:54 +0000
Received: by outflank-mailman (input) for mailman id 221425;
 Thu, 04 Nov 2021 10:48:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F6ik=PX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1miaIf-0000Bl-50
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 10:48:53 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id caee5a35-3d5c-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 11:48:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: caee5a35-3d5c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636022931;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=ANgRQ6QT708gWZ7JGo8eaTBwKdtqOwXOgQh965egHYQ=;
  b=hOJf+a3duyAkvfl2NcP9WiA78/pUP81RXkeYv+AZmO7AaFtaDpZxmHPX
   1aoyeBv4Zw76mXO3utkkVVWMQ0ivnv5t7DjGbouFE8SVhctxGcq/mHt02
   tWGPuXIHNeJvtcZcmdn1VzO1R0lr4skYsLO71W7/wkMoEmbOyWL3fTX7R
   g=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: sDe2+mcW4zyrGJOn5xTrFmxyOEt0gxwlU7dE47d8AVqyI8rUKWGegaDRe6z4jtJFjPLGcYj3v0
 0LYozQjdy2z7nhFSL3AJfhK9T0wFBC4Mthp28fnAlcdTvwOFpVMwYAyy/EeaCnW5+aLtx2bbqt
 ZYK30RgbxOGhw8qXEw6rKtTm8dR7hQ/VKf/v78ewIQo7lV8QwZZ5WM3YuOPUQ40B/3uMvuxzC4
 zZGhFhKPXHJwVXz0qigE5vIPvf/k6q9Ni82UMmRPyrq9f9HCpuN0ZjA9w4pD3f4sfMjL9bS0GL
 hdrF347jJMHlIsaYZir1Imlf
X-SBRS: 5.1
X-MesageID: 57446271
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:a0QrD6vs1QOgdlANvQ6YRkFCeefnVAZYMUV32f8akzHdYApBsoF/q
 tZmKTyPOvzYMzP2f9tyPI3j8x4Gv5eByt5nHFA9rXgzEigX+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YThWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Nplt4WweFYTIKb3hN9FbyR0MXpzDK8B0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258SQaiEO
 JNxhTxHZU7lbj4SAEosCdE1tv75nUnabjxZpwfAzUYwyzeKl1EguFT3C/LZc8KHbd9YlUGZo
 iTB5WuRKhMVLtuE0hKe72mhwOTImEvTWZ0QPK218OZwh1+ezXBVDwcZPXOFpv2+hl+7SshoA
 UUe8SozroA/7EWuCNL6WnWQu2WYtxQRX95RFewS6wyXzKfQpQGDCQAsUTppeNEg8sgsSlQCx
 lKP2t/kGzFrmLmUUm6GsKeZqyuoPioYJnNEYjULJSMH/t3irYcbnh/JCNF5H8adjNf4BDXxy
 DCitzUlivMYistj6kmg1QmZ2XT2/MGPF1NroFWMNo640u9nTIy8Z73500bQ1up7dLqkYnvas
 UkG3OHLuYjiEqqxvCCKRewMGpSg6PCELCDQjDZTInUxy9i+0yX9JN4NuVmSMG8sa59ZImGxP
 Cc/rCsIvMcLVEZGe5ObdG5Y5y4C6aH7XeroWfnPBjalSsggLVTXlM2CiKP54owMrKTOuf1gU
 Xt4WZz1ZZr/NUiB5GDmLwv6+eV6rh3SPUuJGfjGI+2PiNJynkK9R7YfK0epZesk9q6Cqwi92
 48BbJbblUgHCb2kOni/HWsvwbYidyhT6Xfe8Z0/SwJ+ClA+RDFJ5wH5mOtJl3NZc1R9yb6To
 yDVtr5ww1vjn3zXQThmmVg4AI4Dqa1X9CphVQR1ZA7A8yF6Pe6HsfdOH7NqLOJP3LEykpZJo
 wwtJpzo7gJnEW+cpVzwrPDV8eRfSfhcrVjRY3r7O2VmIMMIqs6g0oaMQzYDPRImV0KfncA/v
 6ehxkXcR58CTB5lF8HYdLSkyFbZgJTXsLsas5LgLoYBdUPy3pJtLiCt3PY7L9tVcUfIxyeA1
 hbQChAd/LGfr4gw+djPpKaFs4b2TLcuQhsERzHWveSsKC3X3mu/2oscAuyGSi/QCTHv86K4a
 OQLk/ylaK8bnExHupZXGqpwyf5s/MPmorJXl1w2HHjCY1mxJKlnJ32KgZtGuqFXn+cLsgqqQ
 EOfvNJdPOzRas/iFVcQIisjb/iCiq5IymWDs6xtLRyjtiFt/beBXUFDBDW2iXRQfOlvLYco4
 eY9o8pKuQaxvQUnb4SdhSdO+mXScnFZC/c7tosXCZPAgxYwzg0QeoTVDyL77c3da9hINUV2c
 DaYiLCb2uZZz0vGNXEyCWLMzaxWgpFX4EJGy1oLJlKonNvZh6BogE0NoGpvFgkFnA9a1+9TO
 3RwMxwnLKqDyD5kmcxfUj3+AApGHhCYphT8xlZheLc1lKV0urgh9FEABNs=
IronPort-HdrOrdr: A9a23:jGKI9KglIA9M//UlvZWrFwAgMXBQXzR13DAbv31ZSRFFG/FwyP
 rAoB1L73PJYWgqNU3I+ergBEGBKUmskaKdhrNhR4tKPTOWw1dASbsN0WKM+UyHJ8STzJ8+6U
 4CSdkANDSTNykCsS+S2mDReLxBsbr3jpxA7d2us0uFJjsaDJ2IgT0JbzpyRSZNNXR77NcCZd
 Khz/sCgwDlVWUcb8y9CHVAd+/fp+fTnJajRRIdHRYo5CSHkDvtsdfBYlKl9yZbdwkK7aYp8G
 DDnQC8zqK/s8ujwhuZ82PI9ZxZlPbo19MGLs2Rjco+LCnql2+TFc9ccozHmApwjPCk6V4snt
 WJixA8P/5r43eURW2xqQuF4XiW7B8er1vZjXOIi3rqpsL0ABggDdBauI5fehzFr2I9odBVys
 twri2knqsSKSmFsDX25tDOWR0vvFGzu2AenekaiGEaeZcCaYVWsZcU8CpuYds99RrBmcEa+d
 RVfYHhDK48SyLYU5mZhBgj/DWUZAV8Iv/cKXJy+PB80FBt7QREJgUjtYkid0w7heIAoq9/lp
 H525RT5cBzp/AtHNFA7Z86MLOK40z2MGTx2TGpUB3a/J9uAQO+l3ew2sRw2N2X
X-IronPort-AV: E=Sophos;i="5.87,208,1631592000"; 
   d="scan'208";a="57446271"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DPZ6POezdpEqejUzxpLVfi9RiVegx453dOK6z2Q1BU+bYWEZCHnxeB07juNX1dtQMQg+NF/Qm+yTtc0oh8wxTd6Khq4pz6HpEdw0qIOniPtC7RftXj86EBrmF/E3FLXkOfCO2UwyYVKEhXhip8hn8cwUxnhJYs/AeF6PWuKGk5NIl/bW7IYSZEtNR/w05Gk460O+LqLuO46n8e+KGk945T5PIOMjMVb3R/Jf3xqkS4j7WZTjSooL3zA42fh/06T1DzU3+4wi8wnBqvTzZebDufYvyb8PFvU3AB3SvKjXCySRJR9eh5LiK5Ee9BciKxgDCwSu2XB1PMuvMr9C5BfcBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IlgGmC0r/Nbro1OyRdI/heY2zL/igj9t8z6NISauGXE=;
 b=f7gpxHpA09i2X2SFjAyU5titYUz0A8QxYMpM5yHsDUl8uS/7iEoBnP9sM0ALFxuSs9r6tvt/7XuCJlSExQ1INdgu8BGP2l2f1p+lSIW0uX+LhEFLeG0OeRWQKK2vrLYaBHs2dpOu0GK9haJ/D+6NMWi00jIYKzuwz4B+8eMgcqiOywME5/nsuqATNIFi/rWTUhe8aCAjF7zkopkYHRB4KYto8/9A6Ut7mins1OrGliujza0qO7IQ6P0qeSLd4Dph6vftAk2NCBfJ8le5PX6GOJrjz1OvoplzUN5EsInAUbetbDZ8W3NohMkZzn9itxScoSJ13l+dhj/hJuqMs0qJlw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IlgGmC0r/Nbro1OyRdI/heY2zL/igj9t8z6NISauGXE=;
 b=KdWbykkZY6GfI/tI2Zdl8dDtWAA37+qL10B7M2f27dRVqXiqlUt/F3VIWGhzHJ73fxHfGSE3ctSQGcKnQ6cTvdBWouerGSPNv73/TZ36U/X49LJag3Ym2XD7qvKfkqiZOz8P/77quKDZp5oJpiaA66sgFAeh+xPjm9VI4AL59bM=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Christian
 Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
Date: Thu,  4 Nov 2021 11:48:34 +0100
Message-ID: <20211104104834.10977-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR0P281CA0038.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:48::21) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f8ed30aa-a8ad-4ce4-2524-08d99f80ac20
X-MS-TrafficTypeDiagnostic: DM6PR03MB5339:
X-Microsoft-Antispam-PRVS: <DM6PR03MB53391B6D55679F39DC0C885B8F8D9@DM6PR03MB5339.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: tFo/wHRyVKpJMD7OHMa/wM7wAXdh2qSWD8HoixlHhP3LT6rO3t4uaTVRVrnacjeysCSiQ7T85CKPBdj5H+r3YdqAl2/fHjAVHgmezx8tSL2s6t8sl71qxTmA4T+x1YsidXqOgcpqCpnRiYnhj8nrjM1OVWB6uPeBv4TuqLGAEde2SPWsfXrIDEUMTffrOI4Il4VjxMXk8WUyzOct0iVdyJy7fUa77N52sPK+v/lJz49r8MpRdwKkL11wI1DkYSgpnOv/TktFSjwTpYEvXwaawPXZ7dmlxbO2fqJKgblXLMblaeBeGXkHkKAX39e5qHZYXYp2OdMvURHILxpi6nNIueFG0WAJi94LP0HeZ0kd1/ZxNZ0JxGZfLzkRZLyf6cxa0UrjzZSaZ7Qh5vNGoH73aM59fEBbbvBh6GXfdhORpF7bbUstL9EnHG/cHmFF73htFAioQFw+p1HTkASlHQVn1A6cqbISvrLi/Ai/CYpRyGsuDzZXRqEE3WfAq8h8MRMXA1ESM4STi2C9gOm7OX6Pd9ErVEp2oNNDvOQfHuE43qqh2rTH4ZknKhtXMtptY2BWC8hLSunMOeO2b2OLUkirpqVzFikQmyWlaXt7zZcupFfvwF7Uk6CQfVki0CTLxuWThEyhUzS2KCoy6QgQPC8OPnHe8MUmkuaFTtYLZNDXr9g/AL6enLg4O5BB21J4xOZ+HhmyPi3X3GURCYYZcCVlJy4dZcyQcKYZa4PGTC/xMnk=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2906002)(36756003)(2616005)(6486002)(6916009)(8936002)(54906003)(5660300002)(316002)(186003)(66476007)(1076003)(30864003)(956004)(6666004)(38100700002)(66946007)(6496006)(82960400001)(508600001)(86362001)(8676002)(966005)(26005)(83380400001)(4326008)(66556008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eHBqbjAzbEJOb3FqL1Z2YSt5RkVjZTZtYlE1RXlFWVBPT0gvbThhc3dlaDhk?=
 =?utf-8?B?N2s2a3ZzbDBjYkt5NXZ4OTlNUjNTUXZpZ1daWS9jSzBVVzhvOU9UWWgyOEVP?=
 =?utf-8?B?SDhDcm1Tei95dmhvTGtBOUR5cDdOd21MeHlkYW9NQS9ZZkUvRlJVU3o0c0k1?=
 =?utf-8?B?NDhUN1ZXOVhmdFY0ZUdKTjNhV3QzOUdvVWt5YVBCTTJaTXFObld3QVlzRU5h?=
 =?utf-8?B?VWY1YlFXZmE0WXJPK1FDajVDcDhKM0V3NlhJc3FQQ3gyd0ZqMXJYb0ROcnFG?=
 =?utf-8?B?VmNoRWJaL29mUmppN1Y3U0lCcXpxaTkwYXZTU3NXR0ZWSnlvT0piVXFncmwx?=
 =?utf-8?B?YndSSHNFTVFiM0M2c2pRWEtFTnpSY0dGS09tbE4xNDI3bUZEZWErRjJvbkU0?=
 =?utf-8?B?RFoxWkxFcnJUU3NDWUJLRDRNN3p5eW8zWjJOWi80bGJIL29VWkhGb0h5cFJ5?=
 =?utf-8?B?eVBLRk5rMEY0K2ZPMUtIRHFOMldFRlk3SDVVM0N5MFVHemlURkxKVlN5NnRH?=
 =?utf-8?B?bURUbzRva2xYU0p1UGxkNmNJK3pNYlFvaC9kS1R2a3RwTjBlNGptQ2NTSnJI?=
 =?utf-8?B?QmZSYXh6dG4zc0RHQXQ0eUlhalZ5M3FTQ0wzUXFUdUU3SnA1MWh4T3pWNFJQ?=
 =?utf-8?B?UkZLMW5RVlZabUs2Q3JITjdwaEIwbHkzQW1kaVhNS3gySXMweURsQUdKVVky?=
 =?utf-8?B?Ump3RVBlQTlyckdEcFFrNGZSYzVXNEk3cytvcnVlcFBHQXlmOHlDaUJBSlky?=
 =?utf-8?B?RDREaERZZDFtRTg0RUNNMDVMdjByMmpsVUpFYi9BTTVWTTZ4elkvNGlYc1Fw?=
 =?utf-8?B?MFdGc3BFb3VYRWtIZnlWZ00zUjVyV2Rrb0tIcjVFNWJHYTc1aE5QQmxCcmNm?=
 =?utf-8?B?UUxQSE5VekpkYXQ2RTR3WkQraGZKYTFkcGl2VDRJdkF5eW1BMVl1V2lqd2VP?=
 =?utf-8?B?QkdjV1JEdDRTSm5QZmE0WkRCMHlTWUkyN1BrQVVaM2dVY0gxTUY1TTFxZ29i?=
 =?utf-8?B?K3k3Qit1UmljWTA4TTV1U0F3c0NTM1VNQ2NRaCtFSVB1dEpHcWYwZEowV0Ja?=
 =?utf-8?B?VjdzSW1uL2tSN3FmZ3BuSVVsM1dZT1Uyam01Y0ZhdlFNZHhRTk5lY1BOaE5i?=
 =?utf-8?B?S0FkbzlyRCtFTjY3aW53d3hrL0VnNkxjMEZxandDVWt1Yk5CNGl2TmZBMjNH?=
 =?utf-8?B?WW9KWXdYQVV2RFBrZjlYcGlLcGZ1bVVSeUhIR2R5ZVFnc1A1bDJYczdvMTZV?=
 =?utf-8?B?cGNJSDl1cmdyZXRJdHVGSktLZjUxY29NSlRyM1FERHVsZkJCeGhYbE9YOGpz?=
 =?utf-8?B?dlFyM3U4R1RPNjJzQTFlZ0syRExTZGo4NHFNelNzV1V4WnZhUU5MNjFrck9w?=
 =?utf-8?B?OHo1eFBCRHphcHptdWdVMTk4cFlrRURZVG8yQTY3TWc5NGlOVkFSWkNuc21w?=
 =?utf-8?B?cXdsQm05WUlhQWswZ0ltYUZ2eEVlek0zSkF3K1lYU2dJNFAvbTY1YkhLZExV?=
 =?utf-8?B?Mkc4NzFTcDR4OW04N0xpNlBjYWlpeFJDanlaRkxLWDc3ZFVFNHQyNTBFUXJt?=
 =?utf-8?B?NG9wNVBsS0M1YlcxSnJSMWNndCsxWHM0QThZN21WNU9wZDJwSFZuclRBWVZX?=
 =?utf-8?B?ZWUwY0FFajdMR3psRUdXL1cyY0ZpRmJnbzFYa0VaMVRVZ3hjdXhmV1ZLNUY1?=
 =?utf-8?B?N005SE1VK1NaVkpaTGpqSFNHT3VzNlIrcUVEeVZGck04amY5TmRLbUZCOStZ?=
 =?utf-8?B?MGo5eVpLNnVNaWdVYlZJeStENG5IUXJHNkM3Wmo3MEVrdG8xUC9pQmVxTmN4?=
 =?utf-8?B?Kzk1ZnVlcFgwMGFvTXNXVmwrT3pOV05IaHpsTkRiOG1QWTdzV3RpNFBpMUR2?=
 =?utf-8?B?dys4bWlEanAvU3JzYlFTNzR2UFJMT3R5N21qR0FRK0dCQXVzUWVoakZyaE5Z?=
 =?utf-8?B?QWkvdzhRd0orRzNIYngrMzhncitVT01XREYwTEZoWDN3STNuaHMzVHNybUZG?=
 =?utf-8?B?NU1odGhPRTlLVkRlcDNLTmIrMGhzM2ZjT0NST1YxSTg0Zk5PWXRROFFUTmIz?=
 =?utf-8?B?eGpacEVTbTh1OUs1R0xXTVJ1cUlvTVBPQU9lMVJiWWM1ODZnV1VxaVJ5Y3NJ?=
 =?utf-8?B?K1p0TFI2NzhXTzIxbjZuc2ZYc29IaDQ4MVM5VjloRFpOUFA3TzkwOGkwSUZI?=
 =?utf-8?Q?/yCuKovyLdP6UirDPGoc6Ak=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: f8ed30aa-a8ad-4ce4-2524-08d99f80ac20
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 10:48:44.4035
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0mAsJd/LjuTDKsOZtWwgGgg2PkX1nTaEMbeyfrlf6YvHZgmdbAkRBMAZ7R5cG+UCImZ8cFwOSr7tZSzGfku+aQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5339
X-OriginatorOrg: citrix.com

Introduce a new domain create field so that toolstack can specify the
maximum grant table version usable by the domain. This is plumbed into
xl and settable by the user as max_grant_version.

Previously this was only settable on a per host basis using the
gnttab command line option.

Note the version is specified using 4 bits, which leaves room to
specify up to grant table version 15. Given that we only have 2 grant
table versions right now, and a new version is unlikely in the near
future using 4 bits seems more than enough.

xenstored stubdomains are limited to grant table v1 because the
current MiniOS code used to build them only has support for grants v1.
There are existing limits set for xenstored stubdomains at creation
time that already match the defaults in MiniOS.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
This needs to be applied on top of Andrew's:

xen: Report grant table v1/v2 capabilities to the toolstack
https://lore.kernel.org/xen-devel/20211029173813.23002-1-andrew.cooper3@citrix.com/

NB: the stubdom max grant version is cloned from the domain one. Not
sure whether long term we might want to use different options for the
stubdom and the domain. In any case the attack surface will always be
max(stubdom, domain), so maybe it's just pointless to allow more fine
grained settings.
---
Changes since v5:
 - Check reserved bits in grant_opts are 0.
 - Return failure if a grant table version is specified but grant
   table support has been compiled out.

Changes since v4:
 - Remove the check for 16TB: there's no check currently, and there's
   some discussion about how to implement it properly for all guest
   types.
 - Place the logic to pick the default version in the toolstack, so
   the create domain domctl will always specify a grant table version.
   Such version will also be part of the migration stream.

Changes since v3:
 - Expand commit message re xenstored stubdomains.

Changes since v2:
 - Drop XEN_DOMCTLGRANT_MAX - it's unused.
 - Rename max_grant_version field to max_version in the grant table
   struct.
 - Print domain on log messages.
 - Print a message if host has more than 16Tb of RAM and grant v2 is
   disabled.
 - Add a TB macro.

Changes since v1:
 - Introduce a grant_opts field and use the low 4 bits to specify the
   version. Remaining bits will be used for other purposes.
---
Cc: Ian Jackson <iwj@xenproject.org>
---
Posting this patch alone as I think allowing to control transient
grants on a per-domain basis will require a bit more of work.

Release rationale:

We have had a bunch of security issues involving grant table v2 (382,
379, 268, 255) which could have been avoided by limiting the grant
table version available to guests. This can be currently done using a
global host parameter, but it's certainly more helpful to be able to
do it on a per domain basis from the toolstack.

Changes to the hypervisor by this patch are fairly minimal, as there
are already checks for the max grant table version allowed, so the
main change there is moving the max grant table version limit inside
the domain struct and plumbing it through the toolstrack.

I think the risk here is quite low for libxl/xl, because it's
extensively tested by osstest, so the main risk would be breaking the
Ocaml stubs, which could go unnoticed as those are not actually tested
by osstest.
---
 docs/man/xl.cfg.5.pod.in             |  5 +++++
 docs/man/xl.conf.5.pod.in            |  6 ++++++
 tools/helpers/init-xenstore-domain.c |  2 ++
 tools/include/libxl.h                |  7 +++++++
 tools/libs/light/libxl_create.c      | 23 +++++++++++++++++++++++
 tools/libs/light/libxl_dm.c          |  1 +
 tools/libs/light/libxl_types.idl     |  1 +
 tools/ocaml/libs/xc/xenctrl.ml       |  1 +
 tools/ocaml/libs/xc/xenctrl.mli      |  1 +
 tools/ocaml/libs/xc/xenctrl_stubs.c  |  5 ++++-
 tools/xl/xl.c                        |  8 ++++++++
 tools/xl/xl.h                        |  1 +
 tools/xl/xl_parse.c                  |  9 +++++++++
 xen/arch/arm/domain_build.c          |  2 ++
 xen/arch/x86/setup.c                 |  1 +
 xen/common/domain.c                  |  9 ++++++++-
 xen/common/grant_table.c             | 21 +++++++++++++++++++--
 xen/include/public/domctl.h          |  5 +++++
 xen/include/xen/grant_table.h        |  8 ++++++--
 19 files changed, 110 insertions(+), 6 deletions(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 55c4881205..b98d161398 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -580,6 +580,11 @@ to have. This value controls how many pages of foreign domains can be accessed
 via the grant mechanism by this domain. The default value is settable via
 L<xl.conf(5)>.
 
+=item B<max_grant_version=NUMBER>
+
+Specify the maximum grant table version the domain is allowed to use. The
+default value is settable via L<xl.conf(5)>.
+
 =item B<nomigrate=BOOLEAN>
 
 Disable migration of this domain.  This enables certain other features
diff --git a/docs/man/xl.conf.5.pod.in b/docs/man/xl.conf.5.pod.in
index b48e99131a..df20c08137 100644
--- a/docs/man/xl.conf.5.pod.in
+++ b/docs/man/xl.conf.5.pod.in
@@ -101,6 +101,12 @@ Sets the default value for the C<max_maptrack_frames> domain config value.
 Default: value of Xen command line B<gnttab_max_maptrack_frames>
 parameter (or its default value if unspecified).
 
+=item B<max_grant_version=NUMBER>
+
+Sets the default value for the C<max_grant_version> domain config value.
+
+Default: maximum grant version supported by the hypervisor.
+
 =item B<vif.default.script="PATH">
 
 Configures the default hotplug script used by virtual network devices.
diff --git a/tools/helpers/init-xenstore-domain.c b/tools/helpers/init-xenstore-domain.c
index 6836002f0b..41a7c38ada 100644
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -85,9 +85,11 @@ static int build(xc_interface *xch)
          * 1 grant frame is enough: we don't need many grants.
          * Mini-OS doesn't like less than 4, though, so use 4.
          * 128 maptrack frames: 256 entries per frame, enough for 32768 domains.
+         * Currently Mini-OS only supports grant v1.
          */
         .max_grant_frames = 4,
         .max_maptrack_frames = 128,
+        .grant_opts = 1,
     };
 
     xs_fd = open("/dev/xen/xenbus_backend", O_RDWR);
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 54c10f6efe..2bbbd21f0b 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -520,6 +520,13 @@
  */
 #define LIBXL_HAVE_PHYSINFO_CAP_GNTTAB 1
 
+/*
+ * LIBXL_HAVE_MAX_GRANT_VERSION indicates libxl_domain_build_info has a
+ * max_grant_version field for setting the max grant table version per
+ * domain.
+ */
+#define LIBXL_HAVE_MAX_GRANT_VERSION 1
+
 /*
  * libxl ABI compatibility
  *
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index 5a61d01722..b6855c7b46 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -454,6 +454,28 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         libxl_defbool_setdefault(&b_info->nested_hvm,               false);
     }
 
+    if (b_info->max_grant_version == LIBXL_MAX_GRANT_DEFAULT) {
+        libxl_physinfo info;
+
+        rc = libxl_get_physinfo(CTX, &info);
+        if (rc) {
+            LOG(ERROR, "failed to get hypervisor info");
+            return rc;
+        }
+
+        if (info.cap_gnttab_v2)
+            b_info->max_grant_version = 2;
+        else if (info.cap_gnttab_v1)
+            b_info->max_grant_version = 1;
+        else
+            /* No grant table support reported */
+            b_info->max_grant_version = 0;
+    } else if (b_info->max_grant_version & ~XEN_DOMCTL_GRANT_version_mask) {
+        LOG(ERROR, "max grant version %d out of range",
+            b_info->max_grant_version);
+        return -ERROR_INVAL;
+    }
+
     return 0;
 }
 
@@ -607,6 +629,7 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
             .max_evtchn_port = b_info->event_channels,
             .max_grant_frames = b_info->max_grant_frames,
             .max_maptrack_frames = b_info->max_maptrack_frames,
+            .grant_opts = b_info->max_grant_version,
             .vmtrace_size = ROUNDUP(b_info->vmtrace_buf_kb << 10, XC_PAGE_SHIFT),
         };
 
diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 9d93056b5c..9a8ddbe188 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -2320,6 +2320,7 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
 
     dm_config->b_info.max_grant_frames = guest_config->b_info.max_grant_frames;
     dm_config->b_info.max_maptrack_frames = guest_config->b_info.max_maptrack_frames;
+    dm_config->b_info.max_grant_version = guest_config->b_info.max_grant_version;
 
     dm_config->b_info.u.pv.features = "";
 
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index 573bba68ee..2a42da2f7d 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -519,6 +519,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
 
     ("max_grant_frames",    uint32, {'init_val': 'LIBXL_MAX_GRANT_DEFAULT'}),
     ("max_maptrack_frames", uint32, {'init_val': 'LIBXL_MAX_GRANT_DEFAULT'}),
+    ("max_grant_version",   integer, {'init_val': 'LIBXL_MAX_GRANT_DEFAULT'}),
     
     ("device_model_version", libxl_device_model_version),
     ("device_model_stubdomain", libxl_defbool),
diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
index ed2924a2b3..7503031d8f 100644
--- a/tools/ocaml/libs/xc/xenctrl.ml
+++ b/tools/ocaml/libs/xc/xenctrl.ml
@@ -84,6 +84,7 @@ type domctl_create_config =
 	max_evtchn_port: int;
 	max_grant_frames: int;
 	max_maptrack_frames: int;
+	max_grant_version: int;
 	arch: arch_domainconfig;
 }
 
diff --git a/tools/ocaml/libs/xc/xenctrl.mli b/tools/ocaml/libs/xc/xenctrl.mli
index d20dc0108d..d1d9c9247a 100644
--- a/tools/ocaml/libs/xc/xenctrl.mli
+++ b/tools/ocaml/libs/xc/xenctrl.mli
@@ -76,6 +76,7 @@ type domctl_create_config = {
   max_evtchn_port: int;
   max_grant_frames: int;
   max_maptrack_frames: int;
+  max_grant_version: int;
   arch: arch_domainconfig;
 }
 
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index ad953d36bd..eca0b8b334 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -188,7 +188,8 @@ CAMLprim value stub_xc_domain_create(value xch, value wanted_domid, value config
 #define VAL_MAX_EVTCHN_PORT     Field(config, 5)
 #define VAL_MAX_GRANT_FRAMES    Field(config, 6)
 #define VAL_MAX_MAPTRACK_FRAMES Field(config, 7)
-#define VAL_ARCH                Field(config, 8)
+#define VAL_MAX_GRANT_VERSION   Field(config, 8)
+#define VAL_ARCH                Field(config, 9)
 
 	uint32_t domid = Int_val(wanted_domid);
 	int result;
@@ -198,6 +199,7 @@ CAMLprim value stub_xc_domain_create(value xch, value wanted_domid, value config
 		.max_evtchn_port = Int_val(VAL_MAX_EVTCHN_PORT),
 		.max_grant_frames = Int_val(VAL_MAX_GRANT_FRAMES),
 		.max_maptrack_frames = Int_val(VAL_MAX_MAPTRACK_FRAMES),
+		.grant_opts = Int_val(VAL_MAX_GRANT_VERSION),
 	};
 
 	domain_handle_of_uuid_string(cfg.handle, String_val(VAL_HANDLE));
@@ -251,6 +253,7 @@ CAMLprim value stub_xc_domain_create(value xch, value wanted_domid, value config
 	}
 
 #undef VAL_ARCH
+#undef VAL_MAX_GRANT_VERSION
 #undef VAL_MAX_MAPTRACK_FRAMES
 #undef VAL_MAX_GRANT_FRAMES
 #undef VAL_MAX_EVTCHN_PORT
diff --git a/tools/xl/xl.c b/tools/xl/xl.c
index f422f9fed5..2d1ec18ea3 100644
--- a/tools/xl/xl.c
+++ b/tools/xl/xl.c
@@ -55,6 +55,7 @@ bool progress_use_cr = 0;
 bool timestamps = 0;
 int max_grant_frames = -1;
 int max_maptrack_frames = -1;
+int max_grant_version = LIBXL_MAX_GRANT_DEFAULT;
 libxl_domid domid_policy = INVALID_DOMID;
 
 xentoollog_level minmsglevel = minmsglevel_default;
@@ -219,6 +220,13 @@ static void parse_global_config(const char *configfile,
     else if (e != ESRCH)
         exit(1);
 
+    e = xlu_cfg_get_bounded_long (config, "max_grant_version", 0,
+                                  INT_MAX, &l, 1);
+    if (!e)
+        max_grant_version = l;
+    else if (e != ESRCH)
+        exit(1);
+
     libxl_cpu_bitmap_alloc(ctx, &global_vm_affinity_mask, 0);
     libxl_cpu_bitmap_alloc(ctx, &global_hvm_affinity_mask, 0);
     libxl_cpu_bitmap_alloc(ctx, &global_pv_affinity_mask, 0);
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 7e23f30192..cf12c79a9b 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -282,6 +282,7 @@ extern char *default_colo_proxy_script;
 extern char *blkdev_start;
 extern int max_grant_frames;
 extern int max_maptrack_frames;
+extern int max_grant_version;
 extern libxl_bitmap global_vm_affinity_mask;
 extern libxl_bitmap global_hvm_affinity_mask;
 extern libxl_bitmap global_pv_affinity_mask;
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index c503b9be00..117fcdcb2b 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1431,6 +1431,15 @@ void parse_config_data(const char *config_source,
     else
         exit(1);
 
+    e = xlu_cfg_get_bounded_long (config, "max_grant_version", 0,
+                                  INT_MAX, &l, 1);
+    if (e == ESRCH) /* not specified */
+        b_info->max_grant_version = max_grant_version;
+    else if (!e)
+        b_info->max_grant_version = l;
+    else
+        exit(1);
+
     libxl_defbool_set(&b_info->claim_mode, claim_mode);
 
     if (xlu_cfg_get_string (config, "on_poweroff", &buf, 0))
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 0167731ab0..9e92b640cd 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2967,6 +2967,7 @@ void __init create_domUs(void)
             .max_evtchn_port = -1,
             .max_grant_frames = -1,
             .max_maptrack_frames = -1,
+            .grant_opts = opt_gnttab_max_version,
         };
 
         if ( !dt_device_is_compatible(node, "xen,domain") )
@@ -3074,6 +3075,7 @@ void __init create_dom0(void)
         .max_evtchn_port = -1,
         .max_grant_frames = gnttab_dom0_frames(),
         .max_maptrack_frames = -1,
+        .grant_opts = opt_gnttab_max_version,
     };
 
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index b101565f14..26fee5d9fb 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -750,6 +750,7 @@ static struct domain *__init create_dom0(const module_t *image,
         .max_evtchn_port = -1,
         .max_grant_frames = -1,
         .max_maptrack_frames = -1,
+        .grant_opts = opt_gnttab_max_version,
         .max_vcpus = dom0_max_vcpus(),
         .arch = {
             .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 8b53c49d1e..d80ccfe626 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -492,6 +492,12 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
+    if ( config->grant_opts & ~XEN_DOMCTL_GRANT_version_mask )
+    {
+        dprintk(XENLOG_INFO, "Unknown grant options %#x\n", config->grant_opts);
+        return -EINVAL;
+    }
+
     if ( config->max_vcpus < 1 )
     {
         dprintk(XENLOG_INFO, "No vCPUS\n");
@@ -678,7 +684,8 @@ struct domain *domain_create(domid_t domid,
         init_status |= INIT_evtchn;
 
         if ( (err = grant_table_init(d, config->max_grant_frames,
-                                     config->max_maptrack_frames)) != 0 )
+                                     config->max_maptrack_frames,
+                                     config->grant_opts)) != 0 )
             goto fail;
         init_status |= INIT_gnttab;
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index a20319b22a..8b322b51c0 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -53,6 +53,7 @@ struct grant_table {
     percpu_rwlock_t       lock;
     /* Lock protecting the maptrack limit */
     spinlock_t            maptrack_lock;
+    unsigned int          max_version;
     /*
      * Defaults to v1.  May be changed with GNTTABOP_set_version.  All other
      * values are invalid.
@@ -1917,11 +1918,26 @@ active_alloc_failed:
 }
 
 int grant_table_init(struct domain *d, int max_grant_frames,
-                     int max_maptrack_frames)
+                     int max_maptrack_frames, unsigned int options)
 {
     struct grant_table *gt;
+    unsigned int max_grant_version = options & XEN_DOMCTL_GRANT_version_mask;
     int ret = -ENOMEM;
 
+    if ( !max_grant_version )
+    {
+        dprintk(XENLOG_INFO, "%pd: invalid grant table version 0 requested\n",
+                d);
+        return -EINVAL;
+    }
+    if ( max_grant_version > opt_gnttab_max_version )
+    {
+        dprintk(XENLOG_INFO,
+                "%pd: requested grant version (%u) greater than supported (%u)\n",
+                d, max_grant_version, opt_gnttab_max_version);
+        return -EINVAL;
+    }
+
     /* Default to maximum value if no value was specified */
     if ( max_grant_frames < 0 )
         max_grant_frames = opt_max_grant_frames;
@@ -1947,6 +1963,7 @@ int grant_table_init(struct domain *d, int max_grant_frames,
     gt->gt_version = 1;
     gt->max_grant_frames = max_grant_frames;
     gt->max_maptrack_frames = max_maptrack_frames;
+    gt->max_version = max_grant_version;
 
     /* Install the structure early to simplify the error path. */
     gt->domain = d;
@@ -3076,7 +3093,7 @@ gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t) uop)
         goto out;
 
     res = -ENOSYS;
-    if ( op.version == 2 && opt_gnttab_max_version == 1 )
+    if ( op.version == 2 && gt->max_version == 1 )
         goto out; /* Behave as before set_version was introduced. */
 
     res = 0;
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 51017b47bc..1c21d4dc75 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -97,6 +97,11 @@ struct xen_domctl_createdomain {
     int32_t max_grant_frames;
     int32_t max_maptrack_frames;
 
+/* Grant version, use low 4 bits. */
+#define XEN_DOMCTL_GRANT_version_mask    0xf
+
+    uint32_t grant_opts;
+
     /* Per-vCPU buffer size in bytes.  0 to disable. */
     uint32_t vmtrace_size;
 
diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
index 9ee830cfd0..85fe6b7b5e 100644
--- a/xen/include/xen/grant_table.h
+++ b/xen/include/xen/grant_table.h
@@ -37,7 +37,7 @@ extern unsigned int opt_max_grant_frames;
 
 /* Create/destroy per-domain grant table context. */
 int grant_table_init(struct domain *d, int max_grant_frames,
-                     int max_maptrack_frames);
+                     int max_maptrack_frames, unsigned int options);
 void grant_table_destroy(
     struct domain *d);
 void grant_table_init_vcpu(struct vcpu *v);
@@ -69,8 +69,12 @@ int gnttab_acquire_resource(
 
 static inline int grant_table_init(struct domain *d,
                                    int max_grant_frames,
-                                   int max_maptrack_frames)
+                                   int max_maptrack_frames,
+                                   unsigned int options)
 {
+    if ( options )
+        return -EINVAL;
+
     return 0;
 }
 
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 11:00:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 11:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221435.383140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miaTd-00035F-TL; Thu, 04 Nov 2021 11:00:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221435.383140; Thu, 04 Nov 2021 11:00:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miaTd-000358-O7; Thu, 04 Nov 2021 11:00:13 +0000
Received: by outflank-mailman (input) for mailman id 221435;
 Thu, 04 Nov 2021 11:00:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PDfK=PX=citrix.com=christian.lindig@srs-se1.protection.inumbo.net>)
 id 1miaTb-00034j-DS
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 11:00:11 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f6a09b7-3d5e-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 12:00:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f6a09b7-3d5e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636023609;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:mime-version;
  bh=KthbVi3WH/DgRzFkRx9xFpp1B13xzcx04bcqM/SQSwk=;
  b=GJOry1W/VnFc9bAJu+vKWQcgAPYvA5cW8OjJj8xzoat0GG56AJwfwrtm
   TrxGft3K6dDRQfTS4iRG4HzDHjjLLwQcitF7yeXlE/Fs2a1wvwfm5FsX6
   QtLSWI87LBSGCKsLM9AuV+liqjHqxDOzQCoYQavUwPBDH+ToCcXm7UJRQ
   M=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: VDdXn8stlkBYSLPNvyrQceDJ2tIIWEw5afYGtH7ZpI8eNaQMQzLxY3G9sIF5cE+lL5qMDI+GJd
 UFbXOXbbD5X8CETKYmvFmrOgYfzwyHbx8ihy4HZfZQq1TnlBu3gdn4Gl1ksALq8gDxtyJyMdct
 zo7Efcb4zelxP/akt9KQKE6VUBOt5Xe+L9JHtqGfdwUZZqZ+svDmJ6DHlbDBLK1kPgN8CV0uXh
 4C/f3T6CjP0juohLhZYjbdS8PGZVr5orgjKAm56OcVuEftDyQr3oj1CvNp03Ow2H7A59cJaJoN
 3jBaSEM/qrUTBzKM9bXl52OF
X-SBRS: 5.1
X-MesageID: 57031824
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:lZorHaxDn7D6CH4l3jp6t+duwCrEfRIJ4+MujC+fZmUNrF6WrkUPm
 DAbXD/XbPvbNmLwfIxyPou3/RwG6p6GnN41SFZrqyAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrZl2tcAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt/JIk
 sxGjYSScF5zY5Xxp/wXeURDSggraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVors8jNsjwIIIWvDdkzDfVDPkOSpHfWaTao9Rf2V/cg+gTQq6FP
 ppDNVKDajzjbkd0EXUqUqgxs+mLlFz9YidxqFia8P9fD2/7k1UqjemF3MDuUtCDW8h9hEuTo
 WPCuWPjDXkyNtOFziGe2mmxneKJliT+MKoTC7+Q5vNsmEeUxGEYFFsRT1TTice+jkmyStdOM
 Xs+8yAlrbUx3EGzR9y7VBq9yFafpQIVUddUF+w86SmOx7DS7gLfAXILJhZebPQ2uclwQiYlv
 neZktWsCTFxvbm9TXOG6qzSvT60ITISL2IJeWkDVwRty9v+pIA+iDrfQ9AlF7S65vX3Ezztx
 zGBrAAlmq4ey8UM0s2GEUvv2mz24MKTF0hsu1uRDjnNAh5FiJCNRbXy8FPj9dR5ddzEdmS+p
 HIuxtPHxbVbZX2SrxClTOIIFbCvwv+KNjzAnFJid6UcGySRF22LJt4JvmwnTKt9GoNdIGKyP
 heP0e9EzMYLZCPCUENhX26m5y3GJ4DEHM+taP3bZ8EmjnNZJF7ep3EGiaJ9MgnQfKkQfUMXZ
 cjznSWEVy9y5UFbINyeHbd1PVgDnHFW+I8rbcqnpylLKJLHDJJvdZ8LMUGVcscy576erQPe/
 r53bpXRlkQBDbWnMnOPoOb/yGzmy1BhVfgaTOQNJ4a+zvdOQjl9W5c9P5t4I+SJYJi5Zs+Xp
 yrgCye0OXL0hGHdKBXiV5yQQOiHYHqLllpiZXZEFQ/xgxALON/zhI9CJ8pfVeR2r4RLkK8rJ
 8Tpju3dW5yjvBycoG9DBXQ8xaQ/HCmWafWmZXX5MGZkIsc/GmQkOLbMJ2PSycXHNQLu3eMWq
 Ly8zALLB50FQgVpFsHNb/yziVi2uBAgdChaBSMk+/FfJxfh9pZEMSv0gqNlKs0AM0yblDCby
 xyXEVETouyU+90599zAhKalqYa1ErQhQhoGTjeDtbvmZzPH+meDwJNbVLradz7qS26pqr6pY
 v9Yzq+gPaRfzkpKqYd1D51i0bk6u4n0v7Zfwwk9RCfLYl2nB6lOOH6D2cUT5KRByqUA4Vm9W
 16V+8kcMrKMYZu3HFkULQsjT+KCyfBLxWWCsaVreB33vXYl8qCGXENeOwi3pBZcdLYlYpk4x
 eoBudIN71DtgBQdLdvb3Dtf8H6BLyJcXvx/5I0aGoLiliEi1kpGPc7HEibz7ZyCN4dMP00tL
 mPGjabOne0BlE/Lcn51HnnRx+tNw58JvUkSnlMFIl2InPvDh+M2g0INoWhmEFwNw0UVyf93N
 0hqK1ZxdPeH8DpfjcReW3yhRlNaDxqD902tk1YEmQU1laVzurAh+IHlBduwwQ==
IronPort-HdrOrdr: A9a23:HISeAquh2+F323Wz4p5g8goZ7skCwYMji2hC6mlwRA09TyXGra
 +TdaUguSMc1gx9ZJh5o6H8BEGBKUmskKKdkrNhQYtKPTOW91dASbsN0WKM+UyYJ8STzJ8/6U
 4kSdkFNDSSNyk1sS+Z2njBLz9I+rDum8rI5ds2jU0dNj2CA5sQtzuRYTzrdnGeMTM2Y6bRY6
 DsgfavyQDQG0g/X4CePD0oTuLDr9rEmNbNehgdHSMq7wGIkHeB9KP6OwLw5GZebxp/hZMZtU
 TVmQ3w4auu99uhzAXH6mPV55NK3PP819p4AtCWgMR9EESttu/oXvUjZ1SxhkFxnAid0idvrD
 AKmWZmAy1H0QKSQohym2qq5+Cv6kd215ao8y7mvZKqm72GeNt9MbsbuWsRSGqo12Mw+N57y6
 5FxGSfqt5eCg7Bhj3045zSWwhtjVfcmwtprQaC50YvILf2RYUh5bD3xnklW6vo3RiKnLwPAa
 1rFoXR9fxWeVSVYzTQuXRu2sWlWjA2Eg2dSkYPt8SJ23wO9UoJg3cw1YgahDMN5Zg9Q55L66
 DNNblpjqhHSosTYbhmDOkMTMOrAijGQA7KMmiVPVP7fZt3dk7lutry+vE49euqcJsHwN87n4
 nASkpRsSood0fnGaS1rdR2G9D2MROAtBjWu7NjDqlCy8rBreDQQF6+oXgV4r6dn8k=
X-IronPort-AV: E=Sophos;i="5.87,208,1631592000"; 
   d="scan'208,217";a="57031824"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FHNd7upw2fz090eS0F4gX9+qu38dRiapZINigYvgc1Dmggh3qWM2bfRqa6Nko0zijZYGhskoYagOCSiqf/iGlKwX3DvOc3KlsiLiSsT9mx0NFr/vLMQfakBdlt4tveTs4k7RUGPQFAvd0B7I9neKzOGUsXmdUbRWMjOGfNrYr7clO0aih4jDbrt5Qw3a8IjOMVr6y1FiovyMMy8wORQ7hkZhT3Cf1Exk5ixdNsoaZ2VoLqnzPhO//Yb8LoVLEtEiebf7Wz9JbyNnQqc3//kCzY0iJZ9CUk/6erhhIPpTxbvCgf/zGw9WA6mqOgr7TziHyxFzaIphoS5IuLNb/gmDTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KthbVi3WH/DgRzFkRx9xFpp1B13xzcx04bcqM/SQSwk=;
 b=cFErQA5wurGidz8yY76xcL+UlvK72gTwt3NZr0BQdVIqfAvqGeXmConEYD1onbvy5OR84P7H9WUxMR+YR57GGcZ6P7axUuxRd9b/ogVNV3jRhFXvxts7TaOzlKUM5+j3DKXN9oEznBNxtpDWoK4wDNXsNYxD73lsxkIvo7Ujtmc/2tzS+Gr3O+fqFdTxHMuBTEWk8F0cyI9SSmZ50lesvI+prRX4Rhp5yfgBicuwaBKEHBqeFD/kn0ImbLYNChALcNFOiijJ1Gh/3/NJKM2iAdypAY3MthBWVuKa4oJQqhg7/L/a+6zuuzAdZ3L00cozlWtMUb76vt3D4Vd0BVovjg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KthbVi3WH/DgRzFkRx9xFpp1B13xzcx04bcqM/SQSwk=;
 b=gzJd9g7E1DcZ80+MHygZjiOcFM4HyerE6nNtiMxkJbzpmc5uw+St4VBqZxyHWHjdl2mesifgn5MG6OuR2aGKWfMqDcHMW2DTqH7aAAOeVqPATDE2TSoSD8dxs2zn6SOrAYn+C8F7C+A/pw1ghRHh+ge5kIr0Uvb4weh2f0pNML0=
From: Christian Lindig <christian.lindig@citrix.com>
To: Roger Pau Monne <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>, "Andrew
 Cooper" <Andrew.Cooper3@citrix.com>, George Dunlap
	<George.Dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, Anthony
 Perard <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, David
 Scott <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Ian
 Jackson" <iwj@xenproject.org>
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
Thread-Topic: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
Thread-Index: AQHX0WmL9nixhMEvEEqGVp3NZX0Jw6vzM2UA
Date: Thu, 4 Nov 2021 11:00:01 +0000
Message-ID: <40742A94-35DF-4561-B68A-500FF0A861F5@citrix.com>
References: <20211104104834.10977-1-roger.pau@citrix.com>
In-Reply-To: <20211104104834.10977-1-roger.pau@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3608.120.23.2.4)
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 12361bc3-7994-45b3-530e-08d99f823fc3
x-ms-traffictypediagnostic: MWHPR03MB2717:
x-microsoft-antispam-prvs: <MWHPR03MB27177B1E2CBCE9070F3BAB6BF68D9@MWHPR03MB2717.namprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5797;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: eeXf3y3WtbmEBjsXn7wxS2FALfX2w6RpTFHo0DvJC+E0v1s4Yd8L8d26ArpZi1QuDtqreZZ6sdCXbW0v3goFjCcQvSMPKHIFCgRVbpx2hR3famcaIqvXtfCQEWKCMQPoXYPAquwgPz7hPK3MZrZitWaTkcnY+S0DdY5uqS4SZJMXgDRthjTm2ErQfvSON0FujC5Ho4/g9asNd1zfrXFq/Y91IZKNRAaxoTGsNXwnTtiFuGRi9jsRH7wfwivcYerpuHlkqtaFlFcXbgUJKLd/vQ7icdY9EK/XByQX0ZdCNXSEl9NKcRA+nwiJ0oA4cY9hnOQZRaWkDrW5Ckjigf9IndtE3bacJQkwcuqSBe58Wofw12UQQciFsUo2JZFXDLhbdTJOjn36jBEzPaY6XpjMo1dFfglQuTtxBRvf9teu4YtsSa8pUcRB245DLdH7DcwBGmPWr9dFzcuylnXH17+wMvmz867V7tKC0jOcfcp9VOXAvUQ+rkHZzaIWufx+u0HI7a2IP1bDGCi3q7NAQQs/EUNe8V9B6XWqZH5VOvojiWgxDGL/9COWiDEYVRCwCRaYqi8kp0jNy1OO9Vnbo0T9O/m4EhDbqzMmPjqkt6TiVv17yIHYTyv5EjYPKIYynANovFt87PlKg2Shqc8vQ1mG/fJbCUZlCMoevTU/ZF7bDtGi3o3hpr2Yq3CwrKEqv5/nnnL0YyUe/6Twp0ea31k84C0tYTITxElYLnQrLMCqYIgmUjZMtoDPmkKqYIHCcOWl
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6380.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(54906003)(4326008)(6636002)(5660300002)(66556008)(6862004)(82960400001)(38070700005)(37006003)(26005)(44832011)(2616005)(508600001)(122000001)(66946007)(66476007)(91956017)(38100700002)(71200400001)(186003)(6506007)(36756003)(4744005)(2906002)(53546011)(86362001)(8676002)(6486002)(76116006)(316002)(66446008)(33656002)(8936002)(6512007)(64756008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?6qwcYPAOws11IbA7uw94ivnOn+y3ihQsIJPC03Qc11ETuwSrYMyIHRPUbLQA?=
 =?us-ascii?Q?hHDVQMYVRtd9xqFGbQlV+C0qF63SUQ8El4E21pbmWmOrD0I+/0sETCkFmSZc?=
 =?us-ascii?Q?gSZTeFWJluV/MK6FunmMHiAxrnmTcFCjkoUKup/hBNznzMMKie9ATgplSwe6?=
 =?us-ascii?Q?fdnU0fw83hGuAnsakrpwjtpanbNT7Kzprh7+hdG1X7Ejboo8VqaXye4CFH6Y?=
 =?us-ascii?Q?20J/avpyrVh2pAb4pUSliyyQ+2PwLs07+XUB7NYlFaGOIQADIVLjP1tkfxD0?=
 =?us-ascii?Q?HnVH+KgsNiQg5WeIVtgTFwBeU5RH0QBUlXja+e6G3jF5zrsjJdHOWvSmtvgu?=
 =?us-ascii?Q?9vtFeeqLMRHObe6bdgDacQ8hfPywuHBOgsJDcn32WOWwqb3HmLoshlFvj+LW?=
 =?us-ascii?Q?/bnmuwDHj3bKK80dhjihNSLfnBF2HQoQ2qriVNCld3YPl0QVsn+1BPaauCJ2?=
 =?us-ascii?Q?pbGNwBa36R87jdc+kwo62oa1bYZmiSIAVloYNj3X9ofoQcL7RRP9pagXEIsZ?=
 =?us-ascii?Q?CTh4pqzFdoYscx3zkB/n3JgBl334mhCY9z9WBUHWJiTv4ihT+9/UAKuV8qHJ?=
 =?us-ascii?Q?D5uEpsWK9dnAw+fwhGWiGUi9sUFMLCnUYIlvT3j4GCtXgzhU0xbRVMoy4naF?=
 =?us-ascii?Q?K0GARR51BEMWWNh+CyKqwXFneina9B4mBELWz22jB/+VlZa4zH67m1Yi1hAq?=
 =?us-ascii?Q?1YqaHcEECbNYXNfWZ9ocJEHTHU9ZkwSVPKZkeznDiJtue4/+xZK9RZsbj+wh?=
 =?us-ascii?Q?R86hIavrKOZnCRaKQslvZ5EvrvIxdysk1gxx06AeLMZL5/u0aNeJOmes6SZO?=
 =?us-ascii?Q?vHUYqZsas+olGHSy1DJhkTJVwT17yDAqipMh1HwbMd5r7ps0N+f72+BSayvm?=
 =?us-ascii?Q?B3A/Uwl1dioxBUREbOVMBJCRWN5eNYlDbrXkMCeQOKm1dH2hUBXpqxhXTwr5?=
 =?us-ascii?Q?LxmBaojDvLDfBv55/IKdjHL+VmhmOMwe3r4CbmKu66tzj1+HNYjHhqXoO6P9?=
 =?us-ascii?Q?YIAS+1oXKN5/f5pfFkGa9GKakYo90TiYyS/X9TFNchGspgIiVprUxeV8PtMX?=
 =?us-ascii?Q?MIiTst6qcdr+T/KTGSiEIWb3XvRxbWrytTOfGASpShYkQ5cLIjPIMTXXFnOE?=
 =?us-ascii?Q?agyC6J7IjvvSwQWTmLXMiB28raXyQ0Enb9VIfB7Evl1O4deK2NF0aRdvVjy1?=
 =?us-ascii?Q?oSof62FZdmktmzR3J4qNDNVbqIlqiszNtS/9arDjXV83Crd2zEC/89uBczc+?=
 =?us-ascii?Q?HHy6/BMs9svCIHyHp51Wrb/cocdNs26dGdTPg85CjIf6nNnrHgdcIwbTunuK?=
 =?us-ascii?Q?ULANJXOBcpUsaKAg7QtEzmCVUF8jBmABX537bstSMd9rZGZze2tZ84W5QBuz?=
 =?us-ascii?Q?sIIk3i/d5Ym50UkqrI7SzwhHPwLZUWuA8iVynb8G5gifJB8j0cqLnfWVsRgm?=
 =?us-ascii?Q?YW6FDWnbJa/q29slpWrFnyXz9qCyh9bHbm3CzGddaPR8cBZqF/sC2mZF0mGL?=
 =?us-ascii?Q?38q3oXwC9/VANFwH2bH56wg8y8qt7Tb3IzztrN9mOA2xaXlp7CdlTVZmSZkE?=
 =?us-ascii?Q?UINuyeyue2ufunhLrQRM2R3Lb6UsJacZjAaD5KP2IikrsZJ/Rg1MXKriDM7y?=
 =?us-ascii?Q?w0hT3JxwU+Qk21/fKgP08W6BirptC74dheRnmzxvrLki8BypuUgiZnuR0e+N?=
 =?us-ascii?Q?w/Bw4iVSx/xn0Htlfe3n09ju+OA=3D?=
Content-Type: multipart/alternative;
	boundary="_000_40742A9435DF4561B68A500FF0A861F5citrixcom_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6380.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 12361bc3-7994-45b3-530e-08d99f823fc3
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2021 11:00:01.1178
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: mMUPdzudJLZ27/oe1ZNnNh1/mbYnxKoQXRDXvB1caN5HB1ilAKcVKVr+/CJsBFLMQJ27hhyw+ZryfwhiASZCdypP3SfgBLsTSjRruQCqiKM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR03MB2717
X-OriginatorOrg: citrix.com

--_000_40742A9435DF4561B68A500FF0A861F5citrixcom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable



On 4 Nov 2021, at 10:48, Roger Pau Monne <roger.pau@citrix.com<mailto:roger=
.pau@citrix.com>> wrote:

Introduce a new domain create field so that toolstack can specify the
maximum grant table version usable by the domain. This is plumbed into
xl and settable by the user as max_grant_version.

Acked-by: Christian Lindig <christian.lindig@citrix.com<mailto:christian.li=
ndig@citrix.com>>

--_000_40742A9435DF4561B68A500FF0A861F5citrixcom_
Content-Type: text/html; charset="us-ascii"
Content-ID: <CA4087CF6D77B441AA5BDFF13159FDC1@namprd03.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
</head>
<body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; line-break:=
 after-white-space;" class=3D"">
<br class=3D"">
<div><br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">On 4 Nov 2021, at 10:48, Roger Pau Monne &lt;<a href=3D"mai=
lto:roger.pau@citrix.com" class=3D"">roger.pau@citrix.com</a>&gt; wrote:</d=
iv>
<br class=3D"Apple-interchange-newline">
<div class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: Helv=
etica; font-size: 12px; font-style: normal; font-variant-caps: normal; font=
-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0p=
x; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-te=
xt-stroke-width: 0px; text-decoration: none; float: none; display: inline !=
important;" class=3D"">Introduce
 a new domain create field so that toolstack can specify the</span><br styl=
e=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; fo=
nt-style: normal; font-variant-caps: normal; font-weight: normal; letter-sp=
acing: normal; text-align: start; text-indent: 0px; text-transform: none; w=
hite-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text=
-decoration: none;" class=3D"">
<span style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size=
: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal;=
 letter-spacing: normal; text-align: start; text-indent: 0px; text-transfor=
m: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width:=
 0px; text-decoration: none; float: none; display: inline !important;" clas=
s=3D"">maximum
 grant table version usable by the domain. This is plumbed into</span><br s=
tyle=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;=
 font-style: normal; font-variant-caps: normal; font-weight: normal; letter=
-spacing: normal; text-align: start; text-indent: 0px; text-transform: none=
; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; t=
ext-decoration: none;" class=3D"">
<span style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size=
: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal;=
 letter-spacing: normal; text-align: start; text-indent: 0px; text-transfor=
m: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width:=
 0px; text-decoration: none; float: none; display: inline !important;" clas=
s=3D"">xl
 and settable by the user as max_grant_version.</span><br style=3D"caret-co=
lor: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: nor=
mal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal=
; text-align: start; text-indent: 0px; text-transform: none; white-space: n=
ormal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D"">
</div>
</blockquote>
</div>
<br class=3D"">
<div class=3D"">Acked-by: Christian Lindig &lt;<a href=3D"mailto:christian.=
lindig@citrix.com" class=3D"">christian.lindig@citrix.com</a>&gt;<br class=
=3D"">
</div>
</body>
</html>

--_000_40742A9435DF4561B68A500FF0A861F5citrixcom_--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 11:11:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 11:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221442.383150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miadw-0004Wa-Si; Thu, 04 Nov 2021 11:10:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221442.383150; Thu, 04 Nov 2021 11:10:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miadw-0004WT-No; Thu, 04 Nov 2021 11:10:52 +0000
Received: by outflank-mailman (input) for mailman id 221442;
 Thu, 04 Nov 2021 11:10:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miadv-0004WN-PL
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 11:10:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miadv-0002GZ-OM
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 11:10:51 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miadv-0002Md-Nj
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 11:10:51 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miadm-0002VH-Pm; Thu, 04 Nov 2021 11:10:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=+LF0QStxz4XOOvOJPVghT7gYSIbVET7I893lSGCaARw=; b=tqzpVbsZfmDtSjXqLZpDwYalRR
	Y6wwV/EKPvLfNBcwuKOxzJVG1+Gm1Xt5/Jjn3ZYWpHZJwLPzAKHJa//3YM79nBlWhThUsuRixFNmv
	cP938z5YqCP6J5XXIVHkJ8o657d2Zz065GM+rbYUu8av+gk/qisKxHCro0W9xUR/GhQY=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24963.49073.792435.490087@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 11:10:41 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?=  <roger.pau@citrix.com>,
    Paul Durrant <paul@xen.org>,
    "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 0/3][4.16] x86/IOMMU: enabled / intremap handling
In-Reply-To: <1d65c4a1-129c-c9ba-15a3-6780c3c8d9a0@suse.com>
References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com>
	<a51d6449-caba-8a67-3c11-b593574f3839@suse.com>
	<dde21f84-861f-9c68-5e55-28f5bf407aa4@suse.com>
	<24962.46734.824520.805708@mariner.uk.xensource.com>
	<1d65c4a1-129c-c9ba-15a3-6780c3c8d9a0@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH v2 0/3][4.16] x86/IOMMU: enabled / intremap handling"):
> > Reviewed-by: Ian Jackson <iwj@xenproject.org>
> > 
> >> Patch 2 corrects an (unlikely but not impossible to be taken) error
> >> path, supposedly making systems functional again in case they would
> >> in fact cause that error path to be taken. The risk looks low to me,
> >> given that two function calls with previously assumed to be
> >> identical results now get folded into one with the result latched.
> > 
> > This one also:
> > 
> > Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> 
> Thanks, but your reply leaves me a little confused: Your use of "also"
> may mean R-b for both patches but R-a-b only for patch 2. But I could
> also find a variety of other interpretations, including that the
> first R-b really was meant to be R-a-b (which otherwise I'd need on
> top of the R-b anyway). Please clarify.

Um.  Well spotted.  I meant release-acked-by for both.  I botched the
keystroke in my MUA.  Sorry for the confusion.

So FTAAD I have *not* "Reviewed" either patch (although I did read it,
I don't consider myself qualified to give an R-b).

> > I think, from reading the thread, that patch 3 is not targeting 4.16.
> 
> Correct. The other related one now targeting 4.16 is the separately
> submitted "x86/x2APIC: defer probe until after IOMMU ACPI table
> parsing". But I can see reasons for you to prefer to have that
> deferred.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 11:31:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 11:31:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221449.383160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miaxQ-0006oX-GG; Thu, 04 Nov 2021 11:31:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221449.383160; Thu, 04 Nov 2021 11:31:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miaxQ-0006oQ-DL; Thu, 04 Nov 2021 11:31:00 +0000
Received: by outflank-mailman (input) for mailman id 221449;
 Thu, 04 Nov 2021 11:30:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miaxO-0006oG-S0; Thu, 04 Nov 2021 11:30:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miaxO-0002aZ-EW; Thu, 04 Nov 2021 11:30:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1miaxO-0005yg-6n; Thu, 04 Nov 2021 11:30:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1miaxO-0005Qh-6H; Thu, 04 Nov 2021 11:30:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=6SPv2Erm8oz7lVH4brsJB0LyeGjYV3f8K48zaXfr1u4=; b=piM1y3WPjCyQGc4qxMks8DDjMn
	yrt/aNYKssYHSsMTRG37qsq9JblCsy+PPd2slBIMEsJDnP5S8fhVYnPDLTm5B/NQc5csn8EEp6bOv
	K83+q1xEufJNCjW7YCRdTYDsr/bH4AYXoit4Tn/Q4SFbZxej/mGyI8Z24XJsoqauS9Vc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166042-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166042: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=b258f12889c09555e99c9cebf56dba45190c5dc2
X-Osstest-Versions-That:
    ovmf=6f9e83f757ed7c5c78d071f475b2e72d899c2aef
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Nov 2021 11:30:58 +0000

flight 166042 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166042/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 b258f12889c09555e99c9cebf56dba45190c5dc2
baseline version:
 ovmf                 6f9e83f757ed7c5c78d071f475b2e72d899c2aef

Last test of basis   166035  2021-11-03 21:40:06 Z    0 days
Testing same since   166042  2021-11-04 06:02:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael D Kinney <michael.d.kinney@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   6f9e83f757..b258f12889  b258f12889c09555e99c9cebf56dba45190c5dc2 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:03:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:03:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221460.383180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibSu-0001i6-Lt; Thu, 04 Nov 2021 12:03:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221460.383180; Thu, 04 Nov 2021 12:03:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibSu-0001gs-Dn; Thu, 04 Nov 2021 12:03:32 +0000
Received: by outflank-mailman (input) for mailman id 221460;
 Thu, 04 Nov 2021 12:03:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mibSs-0001eM-W1
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:03:31 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38d9c73c-3d67-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 13:03:29 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 75F361FD47;
 Thu,  4 Nov 2021 12:03:28 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 51CA613C68;
 Thu,  4 Nov 2021 12:03:28 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id AKnaEhDMg2HJfQAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 12:03:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38d9c73c-3d67-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636027408; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=4W8QFCSZ6YUbqfKweIjCXKAp41fzIgy106byLf3XNR4=;
	b=Wexz9RccvlB9oSkK2FMZzMLj23F8Cz9U1nkKCutgOHML5s/V/+SbznnubuTlw2L90GMBWj
	Lv3ZA46aRlhto0HZjBnlnGBhc5s4t/ALVMezuRx55AWwG8ktQ4r7wzsh+/OO+vIOUFPQaa
	0nZ5EO5BEzRNMnURbT/EMbxt0prFABM=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH-for-4.16 1/2] configure: modify default of building rombios
Date: Thu,  4 Nov 2021 13:03:23 +0100
Message-Id: <20211104120324.9668-2-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211104120324.9668-1-jgross@suse.com>
References: <20211104120324.9668-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The tools/configure script will default to build rombios if qemu
traditional is enabled. If rombios is being built, ipxe will be built
per default, too.

This results in rombios and ipxe no longer being built per default when
disabling qemu traditional.

Fix that be rearranging the dependencies:

- build ipxe per default
- build rombios per default if either ipxe or qemu traditional are
  being built

This modification prepares not building qemu traditional per default
without affecting build of rombios and ipxe.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/configure    | 116 +++++++++++++++++++++------------------------
 tools/configure.ac |  67 +++++++++++++-------------
 2 files changed, 86 insertions(+), 97 deletions(-)

diff --git a/tools/configure b/tools/configure
index 33814b24b3..7b62b3cdd8 100755
--- a/tools/configure
+++ b/tools/configure
@@ -698,7 +698,6 @@ APPEND_INCLUDES
 PREPEND_LIB
 PREPEND_INCLUDES
 EXTRA_QEMUU_CONFIGURE_ARGS
-ipxe
 qemu_xen_systemd
 qemu_xen_path
 qemu_xen
@@ -706,6 +705,7 @@ rombios
 BCC
 LD86
 AS86
+ipxe
 qemu_traditional
 LINUX_BACKEND_MODULES
 golang
@@ -815,13 +815,13 @@ enable_seabios
 enable_golang
 with_linux_backend_modules
 enable_qemu_traditional
+enable_ipxe
+with_system_ipxe
 enable_rombios
 with_system_qemu
 with_stubdom_qmp_proxy
 with_system_seabios
 with_system_ovmf
-enable_ipxe
-with_system_ipxe
 with_extra_qemuu_configure_args
 with_xenstored
 enable_systemd
@@ -1504,10 +1504,10 @@ Optional Features:
   --enable-qemu-traditional
                           Enable qemu traditional device model, (DEFAULT is on
                           for Linux or NetBSD x86, otherwise off)
+  --enable-ipxe           Enable in-tree IPXE, (DEFAULT is on for x86,
+                          otherwise off, see also --with-system-ipxe)
   --enable-rombios        Enable ROMBIOS, (DEFAULT is on if qemu-traditional
-                          is enabled, otherwise off)
-  --disable-ipxe          Enable in-tree IPXE, (DEFAULT is on if rombios is
-                          enabled, otherwise off, see also --with-system-ipxe)
+                          or ipxe is enabled, otherwise off)
   --enable-systemd        Enable systemd support (default is DISABLED)
   --enable-9pfs           Explicitly enable 9pfs support in QEMU build
                           (default is to defer to QEMU configure default)
@@ -1538,6 +1538,12 @@ Optional Packages:
   --with-linux-backend-modules="mod1 mod2"
                           List of Linux backend module or modalias names to be
                           autoloaded on startup.
+  --with-system-ipxe[=PATH]
+                          Use system supplied IPXE PATH instead of building
+                          and installing our own version, it takes precedence
+                          over --{en,dis}able-ipxe and is bound by the
+                          presence of rombios, --without-system-ipxe is an
+                          error
   --with-system-qemu[=PATH]
                           Use system supplied qemu PATH or qemu (taken from
                           $PATH) as qemu-xen device model instead of building
@@ -1551,12 +1557,6 @@ Optional Packages:
   --with-system-ovmf[=PATH]
                           Use system supplied OVMF PATH instead of building
                           and installing our own version
-  --with-system-ipxe[=PATH]
-                          Use system supplied IPXE PATH instead of building
-                          and installing our own version, it takes precedence
-                          over --{en,dis}able-ipxe and is bound by the
-                          presence of rombios, --without-system-ipxe is an
-                          error
   --with-extra-qemuu-configure-args[="--ARG1 ..."]
                           List of additional configure options for upstream
                           qemu
@@ -4314,13 +4314,54 @@ else
 
 fi
 
+if test "x$enable_ipxe" = "xno"; then :
+  ipxe=n
+else
+  ipxe=y
+fi
+
+# Check whether --enable-ipxe was given.
+if test "${enable_ipxe+set}" = set; then :
+  enableval=$enable_ipxe;
+else
+
+    case "$host_cpu" in
+        i[3456]86|x86_64)
+           enable_ipxe="yes";;
+        *) enable_ipxe="no";;
+    esac
+
+fi
+
+
+# Check whether --with-system-ipxe was given.
+if test "${with_system_ipxe+set}" = set; then :
+  withval=$with_system_ipxe;
+    case $withval in
+        no) as_fn_error $? "--without-system-ipxe has no effect" "$LINENO" 5 ;;
+        /*)  ipxe_path=$withval; ipxe=n ;;
+        *) as_fn_error $? "IPXE specified, but is not an absolute path" "$LINENO" 5 ;;
+    esac
+
+fi
+
+if test "x$ipxe" = "xy" -o -n "$ipxe_path" ; then :
+
+
+cat >>confdefs.h <<_ACEOF
+#define IPXE_PATH "${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"
+_ACEOF
+
+
+fi
+
 
 # Check whether --enable-rombios was given.
 if test "${enable_rombios+set}" = set; then :
   enableval=$enable_rombios;
 else
 
-    if test "x$enable_qemu_traditional" = "xyes"; then :
+    if test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"; then :
 
         enable_rombios="yes"
 
@@ -4635,55 +4676,6 @@ _ACEOF
 
 fi
 
-# Check whether --enable-ipxe was given.
-if test "${enable_ipxe+set}" = set; then :
-  enableval=$enable_ipxe;
-     if test "x$enable_ipxe" = "xno"; then :
-  ipxe=n
-else
-  ipxe=y
-fi
-
-else
-
-    if test "x$enable_rombios" = "xno"; then :
-  ipxe=n
-else
-  ipxe=y
-fi
-
-fi
-
-
-# Check whether --with-system-ipxe was given.
-if test "${with_system_ipxe+set}" = set; then :
-  withval=$with_system_ipxe;
-    case $withval in
-        no) as_fn_error $? "--without-system-ipxe has no effect" "$LINENO" 5 ;;
-        /*)  ipxe_path=$withval; ipxe=n ;;
-        *) as_fn_error $? "IPXE specified, but is not an absolute path" "$LINENO" 5 ;;
-    esac
-
-fi
-
-if test "x$ipxe" = "xy" -o -n "$ipxe_path" ; then :
-
-
-    if test "x$enable_rombios" = "xno"; then :
-
-        as_fn_error $? "Rombios is required to use IPXE" "$LINENO" 5
-
-fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define IPXE_PATH "${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"
-_ACEOF
-
-
-fi
-
-
 
 # Check whether --with-extra-qemuu-configure-args was given.
 if test "${with_extra_qemuu_configure_args+set}" = set; then :
diff --git a/tools/configure.ac b/tools/configure.ac
index 6414fcbb44..4be3138cb3 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -139,10 +139,40 @@ AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled])
 ])
 AC_SUBST(qemu_traditional)
 
+AC_ARG_ENABLE([ipxe],
+    AS_HELP_STRING([--enable-ipxe],
+                   [Enable in-tree IPXE, (DEFAULT is on for x86,
+                    otherwise off, see also --with-system-ipxe)]),,[
+    case "$host_cpu" in
+        i[[3456]]86|x86_64)
+           enable_ipxe="yes";;
+        *) enable_ipxe="no";;
+    esac
+])
+AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
+AC_ARG_WITH([system-ipxe],
+    AS_HELP_STRING([--with-system-ipxe@<:@=PATH@:>@],
+       [Use system supplied IPXE PATH instead of building and installing
+        our own version, it takes precedence over --{en,dis}able-ipxe and is
+        bound by the presence of rombios, --without-system-ipxe is an error]),[
+    case $withval in
+        no) AC_MSG_ERROR([--without-system-ipxe has no effect]) ;;
+        /*)  ipxe_path=$withval; ipxe=n ;;
+        *) AC_MSG_ERROR([IPXE specified, but is not an absolute path]) ;;
+    esac
+],[])
+AS_IF([test "x$ipxe" = "xy" -o -n "$ipxe_path" ], [
+    AC_DEFINE_UNQUOTED([IPXE_PATH],
+                       ["${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"],
+                       [IPXE path])
+])
+AC_SUBST(ipxe)
+
 AC_ARG_ENABLE([rombios],
     AS_HELP_STRING([--enable-rombios],
-                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional is enabled, otherwise off)]),,[
-    AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
+                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional or ipxe is enabled,
+                    otherwise off)]),,[
+    AS_IF([test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"], [
         enable_rombios="yes"
     ], [
         enable_rombios="no"
@@ -240,39 +270,6 @@ AS_IF([test "x$ovmf" = "xy" -o -n "$ovmf_path" ], [
                        [OVMF path])
 ])
 
-AC_ARG_ENABLE([ipxe],
-    AS_HELP_STRING([--disable-ipxe],
-                   [Enable in-tree IPXE, (DEFAULT is on if rombios is enabled,
-                    otherwise off, see also --with-system-ipxe)]),
-    [
-     AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
-    ],
-    [
-    AS_IF([test "x$enable_rombios" = "xno"], [ipxe=n], [ipxe=y])
-])
-AC_ARG_WITH([system-ipxe],
-    AS_HELP_STRING([--with-system-ipxe@<:@=PATH@:>@],
-       [Use system supplied IPXE PATH instead of building and installing
-        our own version, it takes precedence over --{en,dis}able-ipxe and is
-        bound by the presence of rombios, --without-system-ipxe is an error]),[
-    case $withval in
-        no) AC_MSG_ERROR([--without-system-ipxe has no effect]) ;;
-        /*)  ipxe_path=$withval; ipxe=n ;;
-        *) AC_MSG_ERROR([IPXE specified, but is not an absolute path]) ;;
-    esac
-],[])
-AS_IF([test "x$ipxe" = "xy" -o -n "$ipxe_path" ], [
-
-    AS_IF([test "x$enable_rombios" = "xno"], [
-        AC_MSG_ERROR([Rombios is required to use IPXE])
-    ], [])
-
-    AC_DEFINE_UNQUOTED([IPXE_PATH],
-                       ["${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"],
-                       [IPXE path])
-])
-AC_SUBST(ipxe)
-
 AC_ARG_WITH([extra-qemuu-configure-args],
     AS_HELP_STRING([--with-extra-qemuu-configure-args@<:@="--ARG1 ..."@:>@],
        [List of additional configure options for upstream qemu]),[
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:03:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:03:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221461.383188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibSv-0001oq-0c; Thu, 04 Nov 2021 12:03:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221461.383188; Thu, 04 Nov 2021 12:03:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibSu-0001lD-OC; Thu, 04 Nov 2021 12:03:32 +0000
Received: by outflank-mailman (input) for mailman id 221461;
 Thu, 04 Nov 2021 12:03:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mibSt-0001eN-Ic
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:03:31 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38eaa456-3d67-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 13:03:29 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id A7E96218D5;
 Thu,  4 Nov 2021 12:03:28 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7D40D13C68;
 Thu,  4 Nov 2021 12:03:28 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id uMJsHRDMg2HJfQAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 12:03:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38eaa456-3d67-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636027408; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=k/v5OEykdgPDYAbYvSHlTvD3M2pDaoCL1y7adw+gtcU=;
	b=Lilj/uFphU6V6ULoQp+bU8PUtpxmviLaCKSaeDfqNdLLdicbBhy6jdUbx4Bp5wUSTrkNdp
	x+5jRDbFv4iJbEOFE36EaOgCmWDPAd8SpYwwdLKTv3+pYd6/o1T14Z46/IQ8M8IFHrpN6M
	EgpK1Ac5LEAnAzv3ax25lK3xcICM1P8=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Ian Jackson <iwj@xenproject.org>,
	Community Manager <community.manager@xenproject.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH-for-4.16 2/2] tools: disable building qemu-trad per default
Date: Thu,  4 Nov 2021 13:03:24 +0100
Message-Id: <20211104120324.9668-3-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211104120324.9668-1-jgross@suse.com>
References: <20211104120324.9668-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Using qemu-traditional as device model is deprecated for some time now.

So change the default for building it to "disable". This will affect
ioemu-stubdom, too, as there is a direct dependency between the two.

Today it is possible to use a PVH/HVM Linux-based stubdom as device
model. Additionally using ioemu-stubdom isn't really helping for
security, as it requires to run a very old and potentially buggy qemu
version in a PV domain. This is adding probably more security problems
than it is removing by using a stubdom.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Acked-by: Ian Jackson <iwj@xenproject.org>
---
This is a resend of my original patch after that has been reverted due
to dependencies to ipxe and rombios. Those have been dealt with in the
first patch of this series.
---
 CHANGELOG.md         |  3 +++
 stubdom/configure    |  8 --------
 stubdom/configure.ac |  8 +-------
 tools/configure      | 17 ++---------------
 tools/configure.ac   | 13 +------------
 5 files changed, 7 insertions(+), 42 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e7107ac3de..e5ab49e779 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    or by passing "iommu=quarantine=scratch-page" on the hypervisor command line.
  - pv-grub stubdoms will no longer be built per default. In order to be able to use pv-grub
    configure needs to be called with "--enable-pv-grub" as parameter.
+ - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
+   no longer be built per default. In order to be able to use those, configure needs to
+   be called with "--enable-qemu-traditional" as parameter.
 
 ## [4.15.0 UNRELEASED](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - TBD
 
diff --git a/stubdom/configure b/stubdom/configure
index df31532abb..07b709f998 100755
--- a/stubdom/configure
+++ b/stubdom/configure
@@ -2286,14 +2286,6 @@ fi
 # Check whether --enable-qemu-traditional was given.
 if test "${enable_qemu_traditional+set}" = set; then :
   enableval=$enable_qemu_traditional;
-else
-
-    case "$host_cpu" in
-        i[3456]86|x86_64)
-           enable_qemu_traditional="yes";;
-        *) enable_qemu_traditional="no";;
-    esac
-
 fi
 
 if test "x$enable_qemu_traditional" = "xyes"; then :
diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index a07a1edae5..e20d99edac 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -27,13 +27,7 @@ AX_STUBDOM_DEFAULT_ENABLE([xenstorepvh-stubdom], [xenstorepvh])
 AX_STUBDOM_CONDITIONAL([vtpm-stubdom], [vtpm])
 AX_STUBDOM_CONDITIONAL([vtpmmgr-stubdom], [vtpmmgr])
 
-AC_ARG_ENABLE([qemu-traditional],,,[
-    case "$host_cpu" in
-        i[[3456]]86|x86_64)
-           enable_qemu_traditional="yes";;
-        *) enable_qemu_traditional="no";;
-    esac
-])
+AC_ARG_ENABLE([qemu-traditional])
 AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
     qemu_traditional=y],[
     qemu_traditional=n
diff --git a/tools/configure b/tools/configure
index 7b62b3cdd8..eb4ab9d723 100755
--- a/tools/configure
+++ b/tools/configure
@@ -1502,8 +1502,8 @@ Optional Features:
   --disable-seabios       Disable SeaBIOS (default is ENABLED)
   --disable-golang        Disable Go tools (default is ENABLED)
   --enable-qemu-traditional
-                          Enable qemu traditional device model, (DEFAULT is on
-                          for Linux or NetBSD x86, otherwise off)
+                          Enable qemu traditional device model, (DEFAULT is
+                          off)
   --enable-ipxe           Enable in-tree IPXE, (DEFAULT is on for x86,
                           otherwise off, see also --with-system-ipxe)
   --enable-rombios        Enable ROMBIOS, (DEFAULT is on if qemu-traditional
@@ -4287,19 +4287,6 @@ LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
 # Check whether --enable-qemu-traditional was given.
 if test "${enable_qemu_traditional+set}" = set; then :
   enableval=$enable_qemu_traditional;
-else
-
-    case "$host_cpu" in
-        i[3456]86|x86_64)
-           enable_qemu_traditional="yes";;
-        *) enable_qemu_traditional="no";;
-    esac
-    case "$host_os" in
-        freebsd*)
-           enable_qemu_traditional="no";;
-    esac
-
-
 fi
 
 if test "x$enable_qemu_traditional" = "xyes"; then :
diff --git a/tools/configure.ac b/tools/configure.ac
index 4be3138cb3..02f310ce6c 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -120,18 +120,7 @@ AC_SUBST(LINUX_BACKEND_MODULES)
 
 AC_ARG_ENABLE([qemu-traditional],
     AS_HELP_STRING([--enable-qemu-traditional],
-                   [Enable qemu traditional device model, (DEFAULT is on for Linux or NetBSD x86, otherwise off)]),,[
-    case "$host_cpu" in
-        i[[3456]]86|x86_64)
-           enable_qemu_traditional="yes";;
-        *) enable_qemu_traditional="no";;
-    esac
-    case "$host_os" in
-        freebsd*)
-           enable_qemu_traditional="no";;
-    esac
-
-])
+                   [Enable qemu traditional device model, (DEFAULT is off)]))
 AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
 AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled])
     qemu_traditional=y],[
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:04:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:04:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221459.383175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibSu-0001ek-8e; Thu, 04 Nov 2021 12:03:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221459.383175; Thu, 04 Nov 2021 12:03:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibSu-0001ed-5D; Thu, 04 Nov 2021 12:03:32 +0000
Received: by outflank-mailman (input) for mailman id 221459;
 Thu, 04 Nov 2021 12:03:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mibSs-0001eM-6g
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:03:30 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38d9d1a5-3d67-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 13:03:29 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 4CB701FD33;
 Thu,  4 Nov 2021 12:03:28 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 105FD13C68;
 Thu,  4 Nov 2021 12:03:28 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id aZWdAhDMg2HJfQAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 12:03:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38d9d1a5-3d67-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636027408; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=a9R4E0HB2xLDp4LWHws5TWDAPG+j3kmu84UPTEalP5k=;
	b=nzFIHgQVNLTTLwftyBNwFVgPa60mMmMxGnUZ/DIvWa3G/nv/hrOi03fa0bl6QVSVPPfPE4
	zD8/gDhKCf0BlAdCDzw7elKYeIps45ImfSpKIYN+GPVprmRG4Ocos8mm6QAB+4FAacDCXD
	LJYzjWuzIMG13UMUe/rsrZhEIyD3yio=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>,
	Community Manager <community.manager@xenproject.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PATCH-for-4.16 0/2] next try for disabling build of qemu-trad
Date: Thu,  4 Nov 2021 13:03:22 +0100
Message-Id: <20211104120324.9668-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Another try to disable building qemu-traditional per default.

Juergen Gross (2):
  configure: modify default of building rombios
  tools: disable building qemu-trad per default

 CHANGELOG.md         |   3 +
 stubdom/configure    |   8 ---
 stubdom/configure.ac |   8 +--
 tools/configure      | 131 ++++++++++++++++++-------------------------
 tools/configure.ac   |  80 +++++++++++---------------
 5 files changed, 92 insertions(+), 138 deletions(-)

-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:05:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:05:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221481.383208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibUz-0003QT-95; Thu, 04 Nov 2021 12:05:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221481.383208; Thu, 04 Nov 2021 12:05:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibUz-0003QM-5a; Thu, 04 Nov 2021 12:05:41 +0000
Received: by outflank-mailman (input) for mailman id 221481;
 Thu, 04 Nov 2021 12:05:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mibUy-0003QE-Cw
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:05:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mibUy-0003Br-BH
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:05:40 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mibUy-0005eg-AY
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:05:40 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mibUu-0002cx-LE; Thu, 04 Nov 2021 12:05:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=fYs3/kt/25W/RXG+fn+moxgx2aoM0459AtPpOLLnnYE=; b=obctjq6A36hy5BMoZV5N8z5yGm
	95pcBT7aAbjSG0OxcA7uUvpWn0ch0a/8gD/jdsQxzEYKheuiRMPR3SFax96b/SseAgQdqTRObIpQV
	r9plh2QZNbhZT9Nfzfow2JpchKRbOPg0r77eH+i5Ko7vKbEEczOWk+Cev8JxKd2TrL1Q=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24963.52367.786659.412345@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 12:05:35 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    Andrew  Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    Julien Grall <julien@xen.org>,
    Stefano  Stabellini <sstabellini@kernel.org>,
    Anthony PERARD <anthony.perard@citrix.com>,
    Juergen Gross <jgross@suse.com>,
    Christian  Lindig <christian.lindig@citrix.com>,
    David Scott <dave@recoil.org>,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
In-Reply-To: <20211104104834.10977-1-roger.pau@citrix.com>
References: <20211104104834.10977-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
> Introduce a new domain create field so that toolstack can specify the
> maximum grant table version usable by the domain. This is plumbed into
> xl and settable by the user as max_grant_version.
> 
> Previously this was only settable on a per host basis using the
> gnttab command line option.
> 
> Note the version is specified using 4 bits, which leaves room to
> specify up to grant table version 15. Given that we only have 2 grant
> table versions right now, and a new version is unlikely in the near
> future using 4 bits seems more than enough.
> 
> xenstored stubdomains are limited to grant table v1 because the
> current MiniOS code used to build them only has support for grants v1.
> There are existing limits set for xenstored stubdomains at creation
> time that already match the defaults in MiniOS.
> 
> Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>
> ---
> This needs to be applied on top of Andrew's:
> 
> xen: Report grant table v1/v2 capabilities to the toolstack
> https://lore.kernel.org/xen-devel/20211029173813.23002-1-andrew.cooper3@citrix.com/

Tools:

Reviewed-by: Ian Jackson <iwj@xenproject.org>

> NB: the stubdom max grant version is cloned from the domain one. Not
> sure whether long term we might want to use different options for the
> stubdom and the domain. In any case the attack surface will always be
> max(stubdom, domain), so maybe it's just pointless to allow more fine
> grained settings.

^ I think maybe this should go into a comment or commit message or
something, not just a tail note ?

Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:07:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221488.383219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibXB-00044x-MX; Thu, 04 Nov 2021 12:07:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221488.383219; Thu, 04 Nov 2021 12:07:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibXB-00044p-Hz; Thu, 04 Nov 2021 12:07:57 +0000
Received: by outflank-mailman (input) for mailman id 221488;
 Thu, 04 Nov 2021 12:07:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mibX9-00044Z-Ll
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:07:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mibX9-0003Fi-L1
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:07:55 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mibX9-0005s0-KG
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:07:55 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mibX5-0002eh-SU; Thu, 04 Nov 2021 12:07:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=6LmqJogxqnAiMsJ+A1ho8TJKw9Y5jS9iL3OhpMIYY9k=; b=4xdiZD8fL2sSzWfSp4KcaDFvQw
	FRbEOM4nGlv+Mg+yNYAsUKhddv8n5+XGPNo3/Aj8pPPr/pDcV6IsSCVJp71NbdgrV03iBdmaLfPI8
	Mg/m8tV5yqJWoPPTXJQFE/oRyijEyjbZUSV6glCo6VRoiYeYFnw1y+st60bpm9RZw8y4=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24963.52503.323399.54108@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 12:07:51 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
    George Dunlap <George.Dunlap@eu.citrix.com>,
    Jan Beulich <JBeulich@suse.com>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Wei Liu <wl@xen.org>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    Julien Grall <julien@xen.org>,
    Christian Lindig <christian.lindig@citrix.com>,
    Edwin =?iso-8859-1?Q?T=F6r=F6k?= <edvin.torok@citrix.com>
Subject: Re: [PATCH for-4.16 2/2] xen: Report grant table v1/v2 capabilities to the toolstack
In-Reply-To: <20211029173813.23002-1-andrew.cooper3@citrix.com>
References: <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
	<20211029173813.23002-1-andrew.cooper3@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("[PATCH for-4.16 2/2] xen: Report grant table v1/v2 capabilities to the toolstack"):
> In order to let the toolstack be able to set the gnttab version on a
> per-domain basis, it needs to know which ABIs Xen supports.  Introduce
> XEN_SYSCTL_PHYSCAP_gnttab_v{1,2} for the purpose, and plumb in down into
> userspace.

It's not clear to me whether there is consensus around this patch ?

Anyway, tools parts:

Reviewed-by: Ian Jackson <iwj@xenproject.org>

Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:09:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:09:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221496.383230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibYt-0004lA-7u; Thu, 04 Nov 2021 12:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221496.383230; Thu, 04 Nov 2021 12:09:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibYt-0004l3-3T; Thu, 04 Nov 2021 12:09:43 +0000
Received: by outflank-mailman (input) for mailman id 221496;
 Thu, 04 Nov 2021 12:09:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mibYs-0004kv-Gj
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:09:42 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mibYs-0003IB-Fu
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:09:42 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mibYs-0005yZ-FM
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:09:42 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mibYo-0002fh-Rs; Thu, 04 Nov 2021 12:09:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=ZSAjBo/vl1Dz1jl2ULZNxJUBYRI5js9z35iKbsNE+yE=; b=4qFps4Da3igzhWhyAATd/RjGt/
	xWTa/axwLqPCcBr4k+ldSv8YtF/OvNJAqxuoWPCf1eh3HROZsIuHVdMF8KtOsHxZukFzTZgp922Wh
	cphtRjuPBNOrkGpiYcZFLQ/+70L2oKmei1BVOlF/nnnlqeh+QpzALOso8X63DlU2VL8c=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24963.52610.316896.770905@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 12:09:38 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    Andrew  Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    Julien Grall <julien@xen.org>,
    Stefano  Stabellini <sstabellini@kernel.org>,
    Anthony PERARD <anthony.perard@citrix.com>,
    Juergen Gross <jgross@suse.com>,
    Christian  Lindig <christian.lindig@citrix.com>,
    David Scott <dave@recoil.org>,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
In-Reply-To: <20211104104834.10977-1-roger.pau@citrix.com>
References: <20211104104834.10977-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
> Introduce a new domain create field so that toolstack can specify the
> maximum grant table version usable by the domain. This is plumbed into
> xl and settable by the user as max_grant_version.
> 
> Previously this was only settable on a per host basis using the
> gnttab command line option.
> 
> Note the version is specified using 4 bits, which leaves room to
> specify up to grant table version 15. Given that we only have 2 grant
> table versions right now, and a new version is unlikely in the near
> future using 4 bits seems more than enough.
> 
> xenstored stubdomains are limited to grant table v1 because the
> current MiniOS code used to build them only has support for grants v1.
> There are existing limits set for xenstored stubdomains at creation
> time that already match the defaults in MiniOS.
...
> This needs to be applied on top of Andrew's:
> 
> xen: Report grant table v1/v2 capabilities to the toolstack
> https://lore.kernel.org/xen-devel/20211029173813.23002-1-andrew.cooper3@citrix.com/

Thanks.

We have discussed this wrt 4.16.  I am minded to grant a release ack
for this.  If anyone has a contrary opinion please speak now.

(I think committing both of these would be subject to maintainer acks
for "Report grant table v1/v2 capabilities", which I didn't see but
perhaps I am missing.)

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:17:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:17:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221502.383241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibgS-0006BE-2I; Thu, 04 Nov 2021 12:17:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221502.383241; Thu, 04 Nov 2021 12:17:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibgR-0006B7-Uv; Thu, 04 Nov 2021 12:17:31 +0000
Received: by outflank-mailman (input) for mailman id 221502;
 Thu, 04 Nov 2021 12:17:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mibgR-0006B1-61
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:17:31 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2db0d0b1-3d69-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 13:17:29 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 99A3B1FD47;
 Thu,  4 Nov 2021 12:17:28 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 72B1713BD4;
 Thu,  4 Nov 2021 12:17:28 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id oZn8GVjPg2FLBQAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 12:17:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2db0d0b1-3d69-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636028248; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type;
	bh=cERZ+HkOutNHTT9/h8QiQyN5mS0BUi3cvjUsilW++nE=;
	b=FjSnF2jcBSKSDujgCL5zpFztEh0tQQ+GNmCtDtAks3JA+w2aMIz6aoSvVkSLmB7I3KyoGH
	h7yOBzgsPU8V8mp3On6d98uP4JKKg4jsewPG0/1l/MteO2i8Ktw4cWMPT3kEXuTARwPcl0
	vAYP7fpnuwF60/5hO9QjRoe2RTbCcV8=
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Ian Jackson <iwj@xenproject.org>, Jane Malalane <jane.malalane@citrix.com>
From: Juergen Gross <jgross@suse.com>
Subject: xenstore stubdom broken
Message-ID: <807f9a01-92b6-9f94-358c-9552afb25ad2@suse.com>
Date: Thu, 4 Nov 2021 13:17:27 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="2YywZmawUUMXnLmqgMBvFYwnivsR0Zj8f"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--2YywZmawUUMXnLmqgMBvFYwnivsR0Zj8f
Content-Type: multipart/mixed; boundary="LPB9GBsgVstYQPFc5SufmdR97O19rDPzK";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Ian Jackson <iwj@xenproject.org>, Jane Malalane <jane.malalane@citrix.com>
Message-ID: <807f9a01-92b6-9f94-358c-9552afb25ad2@suse.com>
Subject: xenstore stubdom broken

--LPB9GBsgVstYQPFc5SufmdR97O19rDPzK
Content-Type: multipart/mixed;
 boundary="------------1383FF59EDA7A09654E23CB0"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------1383FF59EDA7A09654E23CB0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Probably due to commit 1787cc167906f3 ("libs/guest: Move the guest ABI
check earlier into xc_dom_parse_image()") Xenstore stubdom is broken:

Nov 04 13:08:03 localhost systemd[1]: Starting The Xen xenstore...
Nov 04 13:08:05 localhost launch-xenstore[699]: Starting=20
/usr/lib/xen/boot/xenstore-stubdom.gz...
Nov 04 13:08:05 localhost launch-xenstore[720]: xc: error: panic:=20
xg_dom_elfloader.c:65: xc_dom_guest_type: image not capable of booting=20
inside a >
Nov 04 13:08:05 localhost launch-xenstore[720]: xc: error: panic:=20
xg_dom_boot.c:88: xc_dom_compat_check: guest type xen-3.0-x86_64 not=20
supported b>
Nov 04 13:08:05 localhost launch-xenstore[720]: xc_dom_parse_image failed=

Nov 04 13:08:05 localhost systemd[1]: xenstored.service: Main process=20
exited, code=3Dexited, status=3D1/FAILURE

This is a severe regression, so it should be handled as a release
blocker for 4.16.


Juergen

--------------1383FF59EDA7A09654E23CB0
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------1383FF59EDA7A09654E23CB0--

--LPB9GBsgVstYQPFc5SufmdR97O19rDPzK--

--2YywZmawUUMXnLmqgMBvFYwnivsR0Zj8f
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGDz1cFAwAAAAAACgkQsN6d1ii/Ey8F
pwf+L26CBUDUyfi8ZFj1kPmFg4gOA1VYRtE2s4CQipfCyINXlHtnx+tQi3SWDrQiRPxXFmyS7BRw
yioT8yFv9anYYAx553XEYGcWMoyLQOVSSMeLpU1t79+fZE3Y+8r9ATmkvcCw7JNrqaUec50PaZwV
ohEKM/H1LQArEI71D4I/ntJY92ixMiRGgUl4cnlMWbpLTBGA9+zNhaHTIF41tgVJR2xJzd94VEUj
UUAD7vZhev2AI4otTfBhsMr3glrN/VwlnsrOZzurA/j8IkNC+1ESvHsJGTJxIxlBm/YjE55Pobj4
m7p/6d76IfMuVHrlk4BPnG09fsZ3vCxHtmsAT5dBDw==
=Cf9N
-----END PGP SIGNATURE-----

--2YywZmawUUMXnLmqgMBvFYwnivsR0Zj8f--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:18:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221507.383252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibgv-0006fy-BX; Thu, 04 Nov 2021 12:18:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221507.383252; Thu, 04 Nov 2021 12:18:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mibgv-0006fr-81; Thu, 04 Nov 2021 12:18:01 +0000
Received: by outflank-mailman (input) for mailman id 221507;
 Thu, 04 Nov 2021 12:17:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mibgt-0006B1-8z
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:17:59 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3eaec08e-3d69-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 13:17:57 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-15-nhwbFiGvNqabzfWquvoDkw-1; Thu, 04 Nov 2021 13:17:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5472.eurprd04.prod.outlook.com (2603:10a6:803:d3::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 12:17:55 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 12:17:55 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0018.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::31) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Thu, 4 Nov 2021 12:17:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3eaec08e-3d69-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636028277;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=c7bKtW6Hg0jWQkd+9REPQtpu4R77WSF3SKCWNIjGn4s=;
	b=GsiZwwiquTMlQZAHc9Qw6u8QdRqX+O3t5uWakBhT521/uqZFztFLzEymM9+CZcAeaQwAO7
	tzkdWKGr8BOWQnJDRm87/f1FhW+JY+8CKj6Xaw8V4ljUQOrBcRDtdygOPGW9Z68JsZcJ2v
	zqW9QHbDhvrBtPmdo2tUzeln/do6HJ8=
X-MC-Unique: nhwbFiGvNqabzfWquvoDkw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SQ2lUX8JiXnn8c53mXnY6W9cmoShF2nvmP3QPqRmLXpq+uUsgNvo3MWCLJc2rEz/8zp4z3/lSXT5lDUmehc45BZD+o2jIekZV90JcSz+oi4qWOrp67sbBZyR57DajdLShSfabg3Se6n+1l1IsU0QMpgbjfPpP9vw1ON8qEwEJRCQj/Tc6AqXgiEKtNEEcqSRDLgJDNiVQgwEDWbi46LDkvPF7tgvBoASuhZesE0O8h0VHNRHKyC5l/xszVCEf5vq/lRSAygwlO+DsihYq8hv4TkXn/dr2RsHOIEza0RwYEnZYpEyPEyib5xappEzlp4fXEBPWghL/yW19ZKAZr/x+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UXBvy/wr+tafUqj75IgbeseJvLJptr9zNkUk78xP2Ys=;
 b=enbxtGrYbZjiEaSuhbnETCqMvasQAwHn5yHjdfPnZ9qQl0tpjfMQ9xTnFc8TXPJaSr2MVeWVUQn3ZZRyqqFvSJ2AYxUiTHaNhHamgQ/3el+y4T3/KN2MLj+NG5UCrUQKPDaYUj2SVaG5U2kKqhsYYyzbGpV1DdxARQbHDjJ0Q+Dq1oEXlOE0JTZ4JxQ7Q1113mgfBezSAgQ0nQFeSE5MGoKiOQcCSsIAMfJTIlU0kBX/GOgmpvPQk8484B1+h+uQaMEM7BIt7Yc2pPvLmIQLNEuarvCmBrnLvSsyCE2P0WfhvG40phgkcZvjsOvqdRA0kcRDBxUyrVopW1hPL3X7aw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
Date: Thu, 4 Nov 2021 13:17:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
 <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
 <24962.46376.136195.463274@mariner.uk.xensource.com>
 <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
 <67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P194CA0018.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:90::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7d388094-2abe-44e2-0f48-08d99f8d217a
X-MS-TrafficTypeDiagnostic: VI1PR04MB5472:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5472E4D2D994B7AA9FD5F685B38D9@VI1PR04MB5472.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	vLDr6JJCKgvBb08HV81I43Oq8K9G5eiHjCzcHq0xBwagPR1FgPHXl3eh0DyafxAdHPgaiFVRx9vvZefwH+k4uguG0Zy3j/z0uE8bm0pDM0l8sHIY4A7RWVPOhlDnXyT+pCX+tlng+gqDjr0fBEfT1KW0tviMiNkr2neg7Ybv6OaL2tzx/loQg+caVpBzA7Ix2qurqoXlbaFJ3NENMk/KEIE/8BeRVWsoHpgtIdjcxnqWfVvYAK2oKIGDa+MSo2zHFaxGaehmEEH7tNg1zHlzRp2e91BhR9RvDr4CVtEsWnqsXgzb/UUHdxfKteEELyhZcQXR3wXTV2zMpM8UrTuhQjLOpdl2U/Cl1xH+TvcAGttkQrgIKv7CIj4fpeGmpNK5u2TVzq2sq8Pa5KsnOmPF5KWr9vgdK5fmDeYKL6VX9kUu+7yEQjCf0AhKYN09yJ+9eei9nMy931QVN2oqJRRCwZAwR3p87MJTZuMbi5FkL4AnfdPtKyZ5Fhwug17C4SSGK5TTEevVbTz10m42HQoECtL/opoBMLlrOmjirBRH3Y3v1M9+F1GITAkB+K0JVI2PuHf6T193vj/lx1Tt8y1DsZDEBWiYPxIfL/V5nt9FPvowVUdd3Ckjs8vEz+n2vrpiDTjYQxjxJhTw6ZqkkhYZKcXcga3NT9LZW/cMr8JuK5ESywKZp4gZn7lrgQvevubOeL/2Z05/3a4SOa5tUI4PNU0qXBZ/va+HpMlGN1giOkGqd4ifOqZzqbW7++jKQRhz5W01PFJGBiFttVW2u8GI2/WJzROXoYtZZ6aL6mPVB67Z0nRYW4BMdGo8bsWIiPEI
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(31686004)(508600001)(6916009)(86362001)(5660300002)(83380400001)(8936002)(8676002)(2616005)(54906003)(966005)(4326008)(26005)(956004)(53546011)(36756003)(66476007)(66556008)(66946007)(16576012)(186003)(31696002)(6486002)(2906002)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?m/HlhoPaucTZCFWoc+fzG4FB4ZZQL9puCFdw2wDxN14hOHSaKoRMWvWtEvR7?=
 =?us-ascii?Q?qpj5ta0msZLjapKVcTvN3IfeGOm6eMLrcyN+JKIRECIjnW38pNfH9mt70Y6x?=
 =?us-ascii?Q?Lg7KJgRHBQw4pi9O8iP2OHQ34BfWUu93qozc3Qqw7xbmAb66Rtwajjd5cB/N?=
 =?us-ascii?Q?TkULKPHiV8MJf/r1oGJWdqPK/j+Hrbfhhb2sYJdIb3Z0vCFWajb4W9Aena4y?=
 =?us-ascii?Q?wz5jzy5/HwxASpRN/ZOOrSPJheEahSzbbsxjLSfiy8jpiLiNRmiGqdCHDK0f?=
 =?us-ascii?Q?k4HE+3NPv4QKwViRdQQUWSRK+vG5hFrKEVk3amspGRN//odOhj39tsbZz9R9?=
 =?us-ascii?Q?G8tHN1UwqQvh3Sju0UF5CFe8je/9vHrMxNNovR8o5JVqglPv1XtQJB7yWQwM?=
 =?us-ascii?Q?4pxk6zqfVdngoskGPY199rW4cifUcylYkudUBcPM/2ioyJkpjHgb3XgnYRJo?=
 =?us-ascii?Q?sn818kiV8wp0UIor6gEQXyzqWmglTZ4boM+OaStL9zIZk7efAkBdEelCeszH?=
 =?us-ascii?Q?KTPUgJOf05U/2td+t16C1JuE4uS/f8H4ccxvK25Zpfkxn6ZqpEARXCyjcTln?=
 =?us-ascii?Q?00Vh6F8IOSw7bce5OrzMsJiJBuDAud2CTmmO1Vs8NjhTGVcahVSxZ8RgQPyt?=
 =?us-ascii?Q?LXqymM1uHWj0FYkQtAmqgVRHM0DZrDfeL3EMUf9mCBm6mWaQXqjbAGE5z0dx?=
 =?us-ascii?Q?aE2yDRpVXX2Vu1FcwJQUCKgYwWeGJ54Emvv7l8avSfDex1EppM5lVMliu4ui?=
 =?us-ascii?Q?jRNJA0kjKc0E4ym1ZgZozJvT8QJfwzuyX5e8F4HsPynHjZX4GAZwpEESdxDK?=
 =?us-ascii?Q?vWjRqTgqOOCmXUy/ADhy4WN3FJxsZSwlJCEnppiqgKwK2Q6Dj1ZpyDqc8rCV?=
 =?us-ascii?Q?MpAs5Ev1Q1TCyF5lMYSJW8EqXbSUUmhGC9r/7vIDq4Q3PcKtHVZX9uSYlax/?=
 =?us-ascii?Q?rm4xhq2lc9YhntIqwBWTYZMjmAUlSAnqfb+WOtIKnNsQ+Zq/LhFMO+C7xl0/?=
 =?us-ascii?Q?qoR7HmDXQmdS2YaVUxj3GM43xciEfqVpk8PGEi15/hpXoriSSE5nZDz+eqlT?=
 =?us-ascii?Q?iH93ysZbW4to2+JYyZcE9ZJrhfC2u3KyLW70iIANgwH98sAnp46kqsTaZRJk?=
 =?us-ascii?Q?mlbY0p0pB3h6mT7gThLwFU/sNfTkONq2Ln66ijW7g6+p9pBy8yj74cyn5ONb?=
 =?us-ascii?Q?TShWrEHXDiNDfEyo/tuTEXVBmqfMpG/3xvRJLKLd71C4bT6ODuVqMh9PJs93?=
 =?us-ascii?Q?reUt/QzVDi7SlOWDgX/h01xqfzv+6oUheQ9TzrjrQuq1E0s4ymDudGWgqyPl?=
 =?us-ascii?Q?RnHqOD90GNGqxF0DjYEkMRqDRIWP0h4vwXNdHgv2deaMydrbtXk8JjYgnrB8?=
 =?us-ascii?Q?umq4FHZ6y6fUQuto77ofQKwWMCZu1D8HS5La8WtisByDcTRgdGJgYgnkxilN?=
 =?us-ascii?Q?SnxzYcGNhYUD+y6EEiMMFZqlDpbVSv/vav6o7X9L2h723gL9KxmWwes0UhGP?=
 =?us-ascii?Q?BxoWRynwT2moR5dTu2TPN8WrkTKNd3rBCp99Vck8SPDO4nekYOnoR7j5umH3?=
 =?us-ascii?Q?E2na8URTFMVNARf6or3XSFoTMImFqJxF+SRjCytJSg5ZlVsVOtiQLEbqoZNT?=
 =?us-ascii?Q?msrJVOQ9UJhVpx8nnYNwZRA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d388094-2abe-44e2-0f48-08d99f8d217a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 12:17:55.4186
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mkMvsvyneA+m8yaATpGHI1fQte3LQJ6R47QJzkHcVf+UE3eGirNFr2tDVhwFhcQh1M3kmkuGvAxCVOmDKJh24g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5472

On 04.11.2021 11:48, Andrew Cooper wrote:
> On 04/11/2021 08:07, Jan Beulich wrote:
>> On 03.11.2021 17:13, Ian Jackson wrote:
>>> Jan Beulich writes ("Re: [PATCH] x86/passthrough: Fix hvm_gsi_eoi() bui=
ld with GCC 12"):
>>>> On 27.10.2021 22:07, Andrew Cooper wrote:
>>>>>   if ( !((pirq) ? &(pirq)->arch.hvm.dpci : NULL) )
>>>> I disagree with the compiler's analysis: While &(pirq)->arch.hvm.dpci
>>>> indeed can't be NULL, that's not the operand of !. The operand of !
>>>> can very well be NULL, when pirq is.
>>>>
>>>>> which is a hint that the code is should be simplified to just:
>>>>>
>>>>>   if ( !pirq )
>>>>>
>>>>> Do so.
>>>> And I further agree with Roger's original reply (despite you
>>>> apparently having managed to convince him): You shouldn't be open-
>>>> coding pirq_dpci(). Your observation that the construct's result
>>>> isn't otherwise used in the function is only one half of it. The
>>>> other half is that hvm_pirq_eoi() gets called from here, and that
>>>> one does require the result to be non-NULL.
>>> Can you (collectively) please come to some agreement here ?
>>> I think this is mostly a question of taste or style.
>> Personally I don't think open-coding of constructs is merely a style /
>> taste issue. The supposed construct changing and the open-coded
>> instance then being forgotten (likely not even noticed) can lead to
>> actual bugs. I guess the issue should at least be raised as one against
>> gcc12, such that the compiler folks can provide their view on whether
>> the warning is actually appropriate in that case (and if so, what their
>> take is on a general approach towards silencing such warnings when
>> they're identified as false positives).
>=20
> This isn't opencoding anything.
>=20
> The compiler has pointed out that the logic, as currently expressed, is
> junk and doesn't do what you think it does.
>=20
> And based on the, IMO dubious, argument that both you and Roger have
> used to try and defend the current code, I agree with the compiler.
>=20
> pirq_dpci() does not have the property that you seem expect of it,

Which property is that, exactly?

> and
> its use in this case does not do what the source code comment says
> either.=C2=A0 A GSI is mapped when a pirq object exists, not a dpci objec=
t.

As per my earlier reply on the thread, I view the check as a guard
for the subsequent call to hvm_pirq_eoi(), where _this_ pointer
(and not pirq) is assumed to be non-NULL (while pirq gets explicitly
checked).

> If your answer is "well actually, we didn't mean to say 'if a GSI is
> mapped' in the comment, and here's a different predicate which actually
> inspects the state of a dpci object for validity", then fine -=C2=A0 that
> will shut the compiler up because you're no longer checking for the
> NULLness of a pointer to a sub-object of a non-NULL pointer, but that's
> a bugfix which needs backporting several releases too.
>=20
> The current logic is not correct, and does not become correct by trying
> pass blame to the compiler.

I have yet to understand in which way you deem the current logic to not
be correct. I'm sorry for being dense.

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D102967 is the GCC bug, but
> the result of it was them persuading me that the diagnostic was
> legitimate, even if currently expressed badly.=C2=A0 They've agreed to fi=
x
> how it is expressed, but I doubt you'll persuade them that the trigger
> for the diagnostic in the first place was wrong.

Well, thanks for the pointer in any event. I've commented there as well.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:25:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:25:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221514.383262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miboL-0008Dl-4U; Thu, 04 Nov 2021 12:25:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221514.383262; Thu, 04 Nov 2021 12:25:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miboL-0008De-1T; Thu, 04 Nov 2021 12:25:41 +0000
Received: by outflank-mailman (input) for mailman id 221514;
 Thu, 04 Nov 2021 12:25:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miboJ-0008DX-OQ
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:25:39 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 514c6de0-3d6a-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 13:25:38 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2110.outbound.protection.outlook.com [104.47.17.110])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-18-a2_y9Y_9PZ2gRlFkXpJTEQ-1; Thu, 04 Nov 2021 13:25:37 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4351.eurprd04.prod.outlook.com (2603:10a6:803:49::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Thu, 4 Nov
 2021 12:25:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 12:25:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0286.eurprd06.prod.outlook.com (2603:10a6:20b:45a::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Thu, 4 Nov 2021 12:25:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 514c6de0-3d6a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636028738;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=r1WfbRWjZHG5PbM9FFk92+xJ8AVB/z5YNIg62yAl33Y=;
	b=DV6xE7GMubw+z6lcpJwdYQpDExCxik9hnT8dK2ZxsRpbvUe+kR+NCCVCBSZvX96OekfkFY
	mhwU+jVP7EjpwgirqIsZ72O79VhN27Q4i7TK5QyDh5Hd7EUBkFVcSx7gUIQwFicW6WmzmS
	SKrdPp94H0Zkwxjxzj0heV8z+vAy6Uk=
X-MC-Unique: a2_y9Y_9PZ2gRlFkXpJTEQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SMxRn275xd66ufF2a+C60q3vlDnNSHzPGucxmvduzV5dSxd1nZ+qAqUniXI5RkNR5Ey0HNnNheQx73djqCBx9dWWK8Lly5YByQJIpYX2n4OOc67peyxcqiHpQ2Q/Z+qwnxKW+MDfHXX7ebsmWhS4lDEFepvrx7ffh3bv+GjkUfKK9sjFGIO9/on79fedP+IOcF2VVyMBKxwhQTpbb2CRLW0qYpteALEumHNd+xmCuONK6PU77e9Cfv0Jh71+UHCbgDPJX1G2P/h+AgiOZH+uvb/LugEuNvEhNieaOi29p4SFr/LtzI/itcFsXkSJAmlZqwfUEjYbDXGXOrmXP1H1ew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r1WfbRWjZHG5PbM9FFk92+xJ8AVB/z5YNIg62yAl33Y=;
 b=JsirQPa3KSRKiAdlSw4UttGQjqP6UtGt8dKEmM+AhEnRTeen+8TaLr9n7cpATyiQDlmOjHYfWqaPphatRYWkc/F/XiB3yYcOEK2aFZxy2jqKm3u6XCyakWEncPFLPzwdeTYId0sCtTF8avMutMiYtGBfcYvbPKhkl5kD28xICMGz+TYFEFq2QaYJ0CsQGdcTSRuwkL0fIWGwXqWlGEuH/WXUBSXmvEqXN2OSKfIJ2CUE3jxHUJ6MED+6VMeujnuJlS7Co98SCDn+w6cjogoOyddSRogkNMLdMENyC5xQJ4bLLbeFTARVtu85BAme4PhcHJ1ZKoeqK8CxWTnIkXIZGQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8ae2c1ac-b220-a5ab-920b-244590ae3ef0@suse.com>
Date: Thu, 4 Nov 2021 13:25:31 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Roger Pau Monne <roger.pau@citrix.com>
References: <20211104104834.10977-1-roger.pau@citrix.com>
 <24963.52610.316896.770905@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24963.52610.316896.770905@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0286.eurprd06.prod.outlook.com
 (2603:10a6:20b:45a::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 73c21c4a-343c-43a1-c815-08d99f8e32df
X-MS-TrafficTypeDiagnostic: VI1PR04MB4351:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43515FFC1B77C30B19E8A200B38D9@VI1PR04MB4351.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ZO8Mt5ZZYILtfwfxUf/Fzaw4yDfVL9pMMc7gm8CAeiU5FRPzHWQeP2KW45gTUGzNmqzh2SlhRv2qUGO9CmsySlNBCTCekdFWIyqIVS40t14SeZMoapZ/e1XXLhf92nfQcRIqii6hR0mgO/x8Oey/AWLSsWVUx8aXKbLxt0WVMs0yn7a9uFz+sAKnQESjwLFYvrCjd9JV2gvU7Cb9z6LDCC2w1EVsC5l4bqlMbAHyGAc+1SYN4j7vlBix646xCp6fNXF9VOWo+ujjHBYFYEj/K/u85vKXFYDZB2HQ7jLe94RZM/hn8C28wZpOG/yNpNRuvY7OoU/+8JVI12FUW9FuYLoPaCOr13HhOmCdmOFZj+l1EqyEGplfRCeFk+uKN6OhPCB7/veTDPweWFnsjNvsCine3uf6i7zTIWcEimxv+a6XkH7RUsZoLngln2ZpNqmgyRvNB4YTlTsEIcrpuT/goo5FpYB673zQXMDfWC6y9mHWgFtnj7nGrdJLl9Zc549ol8iRZWTFfAb1OY+yWiQKIr9LugRQDe2iDHd/M1zgOhrH3wusK2Ey0vkdroCHR5HldL6h9oW4s/CrBw/RcfaRGeP1Nc9dkSEHgXNTWwqvOtGQ98OyWAIbir+U5czUffEkSYeRwe+9ndDrkV4QuVADJ4/qG55VLQq+0DHt2N9CNjuKv95X1ToB92cWhSrG5kZl1qDzU3rN6bzjnQEnVe6uiLfmmZpc3MaM5+GPF5m6G3dPJPdahi212rKjei4fduNoLw/OQyViMTjWLsZsySMfwiOcKdA/AdmGiIB3EPrGULwRqd1gh0Yj32uinYRfbXdY1vyVnt4K8UvCytEL9g2R+w==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(966005)(8676002)(31696002)(26005)(7416002)(86362001)(186003)(5660300002)(38100700002)(36756003)(508600001)(83380400001)(2616005)(956004)(66476007)(316002)(66556008)(6486002)(66946007)(54906003)(8936002)(2906002)(4326008)(16576012)(31686004)(6916009)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RlFtUitLa0JBZVQxYURIaFR3THZnb21jSHdLaDFBWkhQUVhRKzB0K3RsTHE0?=
 =?utf-8?B?SkQvd1EwUGlJcjRvN09JdXhlTkVNWDh5YlZSQTloRTN0K3FyY3dTSmxEeXor?=
 =?utf-8?B?cG1lOStBS2ZFT1JhOFF6UjVpd2s5dkkyREdrUFZBNjg1WUlwemVmUmpsclFZ?=
 =?utf-8?B?dHJWbExiYzNHSklYcS9ZdmtUUEVWWFIyQXhCWU10azZEbXZheWR0RVpRdjA5?=
 =?utf-8?B?VFNsaTFGV083cUxkbjJycUxTR0M2VFZHNDdLbW5yTjJ4aTFpSHpWYjNpU3Bk?=
 =?utf-8?B?TmJCejVsNmxJVFcrS0JqMEpkZWFZeGYzdEIxU2pQam5xZkRncTVheWJVQks2?=
 =?utf-8?B?VVFJTkphT1hNWmozbExQU1UvS1l5Wi94RCtmYVAyaVIyaGcra1F3L3hiMlpa?=
 =?utf-8?B?M0hFRlhWTEprejdNb1htQXpYM0xHTWY4eWlNQklTQVh1VkJsVEZzYjVXT1Ny?=
 =?utf-8?B?U0ltOTJZZVNNV3p1RDFCVWZSNDZFU2RTaGZFbVprT2NNWDIveEE0RW1lUkVU?=
 =?utf-8?B?U3BaTVhJcmpXcUZSYm55cnJiRE02YmdCaTJ2cVRnQW9FTjNuYy8vQW8wN05l?=
 =?utf-8?B?WmxpRHptRFFnblN4UEZaUDcrQ0RVZ2NhZEZFTHk1eXlDeHN3NW84YVRxaTdF?=
 =?utf-8?B?Rm92QTZveWdwNGdYZE9rM3Nkdnd0d2V1c3ozaGNCa005N0dwQkVuUm1keWdV?=
 =?utf-8?B?MU01Y1VURndaRCtpQjVyMlNrNlkrUjdHTDVoOGkwOG5CZktQc2kzNnpNSTd4?=
 =?utf-8?B?WDlHM2xLbk55NmxhU1ZlV3RvMS9vaUpJZDE4VEk3cTNUVG5jQjROZjk4Qm45?=
 =?utf-8?B?c1NNQXNNbHNHMFgzYld3VVUzeUVPMzVHTFdpbzJQNnVxVUJiem81Y1FQc3dH?=
 =?utf-8?B?Zll0N0pZeDE0cmVwVGQvRlBxU09mczlTVTRQelpwS0lCTWlmeHkwWTA0dmRs?=
 =?utf-8?B?bDU1VFJzZjVRRFdTRmFOUm0zN2sxU3VSenFxMWpRc3lWQUNnajBxZVVuNFZ4?=
 =?utf-8?B?MW9VSlZYUm1EaXBiWnJ2ZGIraWFKSjRWUU5QVHljSVE5T3dic1U1Ly9YMUti?=
 =?utf-8?B?ekRGQzlGQk9vbll2M3YxMFN6Mk85Y1E5Zk1FZ0RlNHE0WTFnZnpnVVZkWnk3?=
 =?utf-8?B?UlcxK2dSRXY0SEt2N0t2WE9mbWVhUzRZZWtpc3kxZVlaMWtKSzJGdUp1aXFK?=
 =?utf-8?B?djd4Nlg2ZkdtS0wzVVpLZ09vODlKbjlhSlhSMGF1b28yWHBRdjF2VUYzOXdL?=
 =?utf-8?B?Yko0WW9TbW1rQkRTS2FWZXRNQytYanBhS1NLc3pieENqcDMxOUpqUU5ZRWFS?=
 =?utf-8?B?NU9nNGV3VmtjUXdHRDRNVVhTVGNxcnE1OTkzMHZCNDd1dHJncVNSVnBCcXRh?=
 =?utf-8?B?eTljajN3TnNxYjdQWFdkdVFMcWRsaWVydmx4bWNuQmxmNzhReDk2RDl1OW8v?=
 =?utf-8?B?aWRmc3BSTElwVTB3ZkdDeUFNekUwVXVWdVc5cGZDTXVKUmtkOXN2NTIxYkFp?=
 =?utf-8?B?bFhCMExvc2NzanF2Y1VsZVI3TS96WHZkNkJNZ0hSM2NTcENkeC9mZFM4UDRo?=
 =?utf-8?B?WUFsUUM1L0YyUXo3akFSZmRJVHJGWnR4T0l5cjlPeS9aNXorK0VDV1c0d1Bu?=
 =?utf-8?B?a08xOEFXZlZPOG9sU29jNGdia3NqeHJKdlB0OE9XSFluYjNFQTRweC9hMjN4?=
 =?utf-8?B?TjU1TUhCR1djMUFrKzNGR0owMmdUcjB6c2psMEl6ejhzTEQ3RHNkMk9wUHJP?=
 =?utf-8?B?TVpnWWNEQUUvSlMwNEViUWFNanYwdjNZSjlpdzJlcjJDL1pkeENUVE1DWVVQ?=
 =?utf-8?B?YnFDZStraUJuZ1pWR3VkOTd3NitLekY5bmFiMWxucnI3ZkRLaWxVOWRvV25p?=
 =?utf-8?B?SUhneitQcjZnZUs1cXhsNnY3VURzZUtjeGJaZnJpWnFMcHB1aTNlemxPSWs2?=
 =?utf-8?B?djgydy9WUC9FZmFJUVVZRmMrUlAvMjNZSVhxSGVERmlWcUxHd2publlubVlv?=
 =?utf-8?B?TFNkUEYxdEpmenVJY3NVbkc2YkQ2RVZsblN2MWdFNzhtYkxyNEp5Y1FkdFB0?=
 =?utf-8?B?OEdpQ1c3cmhsTFNRYVJlTTh2RTlpSmU5VVZSRDErL1J3RWZOMEpuWmZiYnZh?=
 =?utf-8?B?SmEvZzJhcmNrM2U5Rlk5Sm1wUFFEQ240VXljTmV4OEd6ZzlrR3d1M2htWXZ1?=
 =?utf-8?Q?OrAh0A5ib0toM6PrnXCXxaQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 73c21c4a-343c-43a1-c815-08d99f8e32df
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 12:25:33.9213
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GyB0JsZtL2B8nL+qjUvK1Hq7obr+RkvhULEaCBhAN8QqhPxLz8ZzNA01HyL5enb0hdR8UpD9RuySoPX3jbEgvQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4351

On 04.11.2021 13:09, Ian Jackson wrote:
> Roger Pau Monne writes ("[PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
>> Introduce a new domain create field so that toolstack can specify the
>> maximum grant table version usable by the domain. This is plumbed into
>> xl and settable by the user as max_grant_version.
>>
>> Previously this was only settable on a per host basis using the
>> gnttab command line option.
>>
>> Note the version is specified using 4 bits, which leaves room to
>> specify up to grant table version 15. Given that we only have 2 grant
>> table versions right now, and a new version is unlikely in the near
>> future using 4 bits seems more than enough.
>>
>> xenstored stubdomains are limited to grant table v1 because the
>> current MiniOS code used to build them only has support for grants v1.
>> There are existing limits set for xenstored stubdomains at creation
>> time that already match the defaults in MiniOS.
> ...
>> This needs to be applied on top of Andrew's:
>>
>> xen: Report grant table v1/v2 capabilities to the toolstack
>> https://lore.kernel.org/xen-devel/20211029173813.23002-1-andrew.cooper3@citrix.com/
> 
> Thanks.
> 
> We have discussed this wrt 4.16.  I am minded to grant a release ack
> for this.  If anyone has a contrary opinion please speak now.
> 
> (I think committing both of these would be subject to maintainer acks
> for "Report grant table v1/v2 capabilities", which I didn't see but
> perhaps I am missing.)

Afaic that patch looks okay (albeit not really a scalable way to express
things, if we were to consider further versions to appear), but it wasn't
clear to me whether Roger's reply was meant as an objection, a direction
towards doing things differently, or merely a benign comment. Hence it
didn't feel appropriate to give an A-b just yet.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 12:56:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 12:56:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221526.383273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1micIM-0002zE-Nz; Thu, 04 Nov 2021 12:56:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221526.383273; Thu, 04 Nov 2021 12:56:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1micIM-0002z7-L2; Thu, 04 Nov 2021 12:56:42 +0000
Received: by outflank-mailman (input) for mailman id 221526;
 Thu, 04 Nov 2021 12:56:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WbKJ=PX=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1micIL-0002z1-WC
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 12:56:42 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5d4867f-3d6e-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 13:56:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5d4867f-3d6e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636030599;
  h=subject:to:cc:references:from:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=jEzrk8E4XJmCR/FBRCX9U5kAowOT4EQsSDSaetAW0Xg=;
  b=aEVva/DHHPzNu91QBnNBZGG2wVEJ/mLh0DEjR1v6AmxYokbO7c4gAAXn
   Irx3QkMPLJq6OmMloaAyBZfKE++O577IRhgYYmK+7kFj8p0o9/DpW0Vcb
   IPhH07N2tJPr+JuzdW6BCcXGQznJs0zZgbm0BRGXFsT62yxY/UdOwBphe
   4=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: iHNCIau0hJkGgg26qn+sD9vX+27O8kC+8Xl0/dJM9SI4Xeh5Edt5MUgA/R2VuuEUKSeILRBFGG
 kRRnxoCl4s3FQ8kCB3nhPaKaeKobyQ1tRFgeR45vcIFu6WnTUg5Eoi8qdD4eaq7jl/72CiRER6
 J3K40ok14f8vg0lKMgvpacleXDq8naIpsqJogtxzd0eP+wmKU4M1C/QePIIC0VlZ1jw7aEziDw
 NGnuorAFZuTedQQ+hRJ7RIY9EEBs7xUpfm+gPHJ7nxEUoDnz7fUgHagkquHy4A9Kfpqc0LDrPf
 BlubxCWowT2GUz4hRpMDOtvs
X-SBRS: 5.1
X-MesageID: 57456733
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:QuUdl6oW3/rU+lQlIEpRvP3Wv8teBmJHYxIvgKrLsJaIsI4StFCzt
 garIBmPPfzfZWLxf9h3b4WypkgB6sCHy4c1SVc+/y5hQSsQp5uZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IDlW1rlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnZqSFVYCNIDMoccYUidoOC9hPKBY3paSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O
 pVFNGQwN0+ojxtnFgYSWbUSxL2SqmjbUh1kiFaaj/Aryj2GpOB2+Oe0a4eEEjCQfu1XlEuFo
 mPN/0ziHwoXcteYzFKt8G+oh+LJtTP2XsQVDrLQ3u5nhhify3IeDDUSVECnur+ph0imQdVdJ
 kcIvC00osAa60iDXtT7GRqirxaspQUAUtBdF+k77gClyafO5QudQG8eQVZpVtsis8MnQC0w4
 XWAldjpGD9HvaWcTDSW8bL8hTKtOwAFIGkafygGQAAZpd75r+kbjB3VSc14OLWoldCzEjb1q
 xiGpTYzr68ehskK0+O851+vvt63jsGXFEhvvFyRBz/7qFMiDGK4W2C2wV75sadrJquZd3qEv
 UY0sMaB7e0QK7jYwURhX94xNL2u4v+ENhjVjlhuA4Qt+lyRxpKzQWxDyGogfRk0a67obResO
 RaO4l0JuPe/KVPzNfcvC79dHfjG2kQJ+T7NcvnPJuRDbZFqHONs1HE/PBXAt4wBfaVFrE3eB
 Xt5WZrzZZr5If4+pNZTewv7+eV7rszZ7TmCLa0XNzz9jdKjiIe9EN/pymemYOEj97+jqw7I6
 dtZPMbi40wBC7CvPHSPqN5JdQFiwZ0H6Xbe8Zw/mgmreFsOJY3cI6WJneNJl3JNxvw9ehj0E
 oGVBRYDlQuXaYzvIgSWcHFzAI4Drr4kxU/XyRcEZA7ys1B6ON7HxP5GK/MfIOl2nMQ+nKUcZ
 6RUJK297gFnF22vF8I1NsKm8uSPtX2D2GqzAsZSSGJgI84+HFGQpYKMk8mG3HBmMxdbfPAW+
 tWI/gjaXYACV0JlCsPXY+io1FS/oT4Wn+caYqcCCoA7lJzE/Nc4JirvoOUwJs1QexzPyiHDj
 1SdAAsCpPmLqIgwqYGbiaeBpoavMu1/AksFQDWLsefobXHXrji53ItNcOeUZjSBBmn6z7qvO
 LdOxPbmPfxZwFsT69hgE6xmxL4V7sf0o+MI1RxtGXjGNgz5Cr5pLnSc89NIs6lBmu1QtQesA
 xrd8dhGI7SZfsjiFQdJdgYia+2C09ASmyXTsqtpcBmruncv8ePeA0tIPhSKhChMF5dPMdsok
 bU7pcobyw2jkR52YNyIuT9ZqjaXJXsaXqR56pxDWN33ihAmw01paIDHDnOk+4mGbthBPxV4I
 jKQg6ae1b1QylCbLig2HHnJm+FcmY4PqFZBy1pbfwaFnd/Mh/kW2hxN8GtoElQJn0sfi+8ja
 HJ2M0BVJLmV+2Y6jcdOaGmgBgVdCUDL4Uf20VYIyDXUQkTAurYh94Hh1TJhJHwkzl8=
IronPort-HdrOrdr: A9a23:Va30CqlEzM2H4AApOplDlBZ1F3zpDfO+imdD5ihNYBxZY6Wkfp
 +V8sjzhCWatN9OYh0dcLC7WJVpQRvnhPlICPoqTMmftW7dyRSVxeBZnPffKljbehEWmdQtrp
 uIH5IOceEYSGIK8PoSgzPIYOrIouP3iJxA7N22pxwGIHAIGsMQnTuRSDzrdHGeLDM2dabRf6
 Dsg/avyQDQHUj/Iv7LfEXsCIP41qz2fd/dEFI7Li9izDPLoSKj6bb8HRTd9hACUwlXybNn1W
 TeiQT26oiqrvn+k3bnpiHuxqUTvOGk5spIBcSKhMRQAjLwijywbIAkf7GZpjg6rMym9V5vut
 jRpBULOdh19hrqDy6IiCqo/zOl/Ccl6nfkx1PdqXz/ofbhTDZ/MMZFjZIxSGqT12MQ+PVHlI
 5b1WOQsJRaSTnamj7m2tTOXxZ20mKpvHsLi4co/j9ieLpbTIUUgZ0U/UtTHptFNjn98pobHO
 5nC9yZzOpKcGmdc2vSsgBUsZyRt0wIb1K7q3U5y4ioO2A8pgE/86JY/r1fop44zuN+d3EejN
 60dJiBl9l1P4crhOxGdb48qPCMexjwqCT3QSuvyGTcZdQ60k322unKCZUOlauXkc8zvdYPcK
 qoaiIviYd1QTO3NfGz
X-IronPort-AV: E=Sophos;i="5.87,208,1631592000"; 
   d="scan'208";a="57456733"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SCuaSNZaPX1CZLpEK/FGMMG/nFhPPP/52dl5dmi1JSRmaPJm2tiM/csWCOCqIBU+Zx4n37oYXUl4LtsX2EMCC9NF4tSPm0dGQ3ek8WbzUimjYYJ/6dEraV7m7ClCTouN3b0DLiumgOOxcGqmvDVTl1Z4za611Xw1dTgGb2UgT3RDD3oDqoeKTgu0F2jvi/RxVJZO+XNZc0tD6k7UKXL/A5ZLEw04t7+G+E5MDuwpJiENHgxE8juknNwhuCj9sHrSSNzZUPqeS0KCTIu1TQ2Dge2955xm6UuKizrhVqNsUE/3aHwqaUQr/UxcsiCc5YaS/cG6Jamo8wVF8DNMBtOAKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jEzrk8E4XJmCR/FBRCX9U5kAowOT4EQsSDSaetAW0Xg=;
 b=APp7DfFcVMoKTUforJQ8NJ4i7+XNBPS0PdsFXN7m8rR3N4EdfwJc9W/5Uqf5IqGqJ7FPqSgDffJoe+qMYt0mRjROE7rtay4SwB3Ve/m47N5SAQipF5elbOhduZacwR1sgh8GM2estq4lUkoJaP6Qz4X7Hfg5TWJKPNnJk/Zmo7byG4uhcmP0xM+KLLTQBBsmT6yFAhF6PxhHwbFseDNVZAVHNmOs7ifvWPVWycggnN3BO75VcSk3T8u5erFVNnBgnnnpDEmvOPJUZrdnRVc1g8D5F6Xnx44UuNvxN1JuTedckYzNHZHLwfMad/hl/OhLVXqmGuCaWRkbOiIotopQgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jEzrk8E4XJmCR/FBRCX9U5kAowOT4EQsSDSaetAW0Xg=;
 b=EQUAzGbkRZuaxRp3gctF4X3XB1n9sUSzLDNbCp/qOzS/DjEN98ln3XaIca3LDs5+AzmGb+/rMGuywPMD8KtEOeICOlpxPh+MnNXHDXt4Q2twkihZgKWLedzsFS6tQ+kirzE2AHvp6Vmypga/UbcnRJOHW3wZ8WLhL/G3md8Yaa0=
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
To: Roger Pau Monne <roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
CC: Wei Liu <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, "Christian
 Lindig" <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Ian Jackson
	<iwj@xenproject.org>
References: <20211104104834.10977-1-roger.pau@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <1bc6b0eb-841a-fe93-877a-5149b8b5f5dc@citrix.com>
Date: Thu, 4 Nov 2021 12:56:25 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <20211104104834.10977-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
X-ClientProxiedBy: LO4P123CA0418.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18b::9) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fe9e5fb3-6122-4ecc-0172-08d99f92877c
X-MS-TrafficTypeDiagnostic: BYAPR03MB4117:
X-Microsoft-Antispam-PRVS: <BYAPR03MB4117FA1D79D847B25E161A01BA8D9@BYAPR03MB4117.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 7Zlf6ewQ5QUfrPY6amj+NsXXYGnwN1STyOwQOp3TMyx6xNep+0W72L4Uz4ASgUA8txi/TD6FAthZ71DEaN72DUFrKY7gR6vZWsBS+MDQDNlD3XQjWmobzooy+weVs8P1gwJ/t/un5ZbP0WqBLs8ybS7TPw1+8FDvoz/NiumDKHAqTfHtZD7iV3WLNH6Yr4+PAcwue5K8aM1tJ2G1eX2gj/+JbC/SvrDLpCFYrTr2pVoAuvmwBSekZHMCXMZr9ElGNSHB6i9QDs/Syjxd5c+YUbaPKlKqE/HzfOz2nUWuq/sm0FHCL8bL7QEnXZ97k8y6mLGBGFQKIyiG/iGuqx4DCSge1MeUlcUuY+xY1AJhIkJSwdDmSBRr6cXVPIi5azQ6TVebkgheXfyQVGVYhhzbBeXRhbFQX8OGchR1V42XdYKxWzgHZK4UD0ZqskLvAcxhqBqCVqma578rHauJ2mjpLQBaxPax0h8JdKyh+IXRlx7gfiU9yHKtvMupWJdJQNR0qY5h88Gj+92u4MJ0KGknNr/ZhQvzKiPRl1nW0ZYGJjxvh4uDmb2lHLPQ2bchOzkewl3GLi5tfdutqC7MAySRxEeRxxzW9eFoI/WF3uLHJKhU/A3+Rr1tYMxLRQTaRIRT7VHPxE70E/l2Sy/S940fCdqJQW7XulEpGjFQGU9ucmOfj2f265Vn/DtCzu2g9AOaPi8OoUOyWzfFIdpCdg+hxbVD2SvUjtIgJrd86L8hrqDzDAilrHBbAQH9sTGNXAI/
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(53546011)(31696002)(66476007)(2906002)(66556008)(956004)(8936002)(186003)(6486002)(4744005)(5660300002)(26005)(8676002)(83380400001)(2616005)(36756003)(16576012)(38100700002)(82960400001)(6666004)(4326008)(31686004)(316002)(54906003)(86362001)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZTlNMHQwT0RUOTNHNFJldDBiQVJTWFBDT0IwVVM1bTRSSWtUcE5pSld5ZGVo?=
 =?utf-8?B?aWV0YldUZDRWSjI0YjJkRzNFYmNscWFlWjdtSTZZTlVWRDg5SXJaelhLZnNK?=
 =?utf-8?B?UmdyaWZTNS9Ud1FId3RLRVVvYWtuaEtFVDJITWdid3hNcUwrd2NBYm5QVHZQ?=
 =?utf-8?B?ZjVtQXd1OVpnNi9iSGNQUEJ4Mk9aMWJEZGE0VEdPS1lRWmF4bmYyN29YelM4?=
 =?utf-8?B?S1FHeW14eUNmQTRDWCt5dFZJRlpKaTBWQk9NYmI1eEtLSWJnSC9GWE5CeEJr?=
 =?utf-8?B?bFQ1YWV2dVRwMVdIWHJ2emVGMnRiZTZDdlUzVW9mM01COFRpNVVzbmpTb0VY?=
 =?utf-8?B?ZGZuQU5uZWhwcm9xeVduSU9sc1VkdlVnS3Bmd2RZN3A4R1N3Mk5VVjRyQmNx?=
 =?utf-8?B?NWplcTRidWpQbkVFU3ZuOFRNY1VDNG1RcnQwSSt2Wjh6azVlOWIyZ3JOZFZp?=
 =?utf-8?B?eExzcC9LeVZ3UGpMMTFwaEc1K1hFMDJKV0psd1pzb3IxdEJMSWRKcDVyUWUz?=
 =?utf-8?B?RWwzeG5PK05BWTFab3E0aHBpa0U3bzRMODlDM0ovUmhVZXF5ek5KKzdyWHVo?=
 =?utf-8?B?dVhOUjJJNDNJb0F1M3NLTG1STFE4OGl4ZWI0aUZ5SXdrMS93dElQYmVZdlVD?=
 =?utf-8?B?OFFFVHRWUWFVMVVhOHVGU04yOWkvUk1GSnE4NWFYVVlEdkN1Nm1Xd3UvTlNW?=
 =?utf-8?B?R0kxOFNKMktPKzZ3a2V6bFA0SmlER0tCMW5zajdQTVRMdGRKclc5aE05M01z?=
 =?utf-8?B?cEVXZFAvN2RQWVc2eXd6dCswSmsvQVR5ejE1TVBSY1NldmhmTGxYdUVmek53?=
 =?utf-8?B?RSsrZmZpS2RISkdJR2tqamgyWGdLVG9RMS8wMEtiUHliU0FBcUwrUkhaNU5t?=
 =?utf-8?B?SUh6Wmw3ZlFFSXNDRit1bGhBVUg3YW5yTnhUbkhDd0hMYW9wb0JOWHpuSkxp?=
 =?utf-8?B?QTdFdGVRVW5jcGQzbEVjbWpKOXBJMXU1cDR1eG9TbGh5c1JXbEZDUDU0aWMx?=
 =?utf-8?B?OTM4NFdiTFZ1OEhZNms4SlhUdFNSbEg4NE42M0hKci96YlM1UENPWWJzUVRF?=
 =?utf-8?B?bGJ6RElNZXRrWTF2bTg1VFdBRjlDTGRlZVZMeGk4MERRT2ZaNGZodmp5RzRm?=
 =?utf-8?B?UXBGd2FGVlNNV0FBSHMvc0hyS29sVmw2TTdxYTgrTUVmVU1oWGx5NHFTUlR0?=
 =?utf-8?B?a25sdjNvaENJbWd5c1Jucm50OVJHTS94MEdEQVRWTjNLNCt6K0pFT0Jwb2l6?=
 =?utf-8?B?Rng3d0RhV2gyVTQzNFovejN0ZzQ3SFJqby9saTM2ZURUVHpzcDhMZFpzYVdo?=
 =?utf-8?B?T0tLVGxMcjNhUkVTTUp4cy8welRyNEtOU0NwWDFpRlFWV0c2UFNQT0V5NGZP?=
 =?utf-8?B?aktaS0xJTWNPeFk3ckhvM01pUnVSbm9UQ092dU5YSnp2WHVsenRaeXgxWU1Z?=
 =?utf-8?B?aG84Um00Ykx6QVdva3l1dFJFeWcxdVIrUVZQQ3VEVjkxVzdyMDZ5NXBBc0py?=
 =?utf-8?B?aklEenhXNmFuS1pZTUdrSUlKUEtGNE01YkI1eG9hSDB0VW5aQlBFL0MzMzNS?=
 =?utf-8?B?aVVVM2xnM2dGZEVOZ1k3M28xWnd1ajVldUM1UUVzTkljbUlZSXo5ZWl5Mnp3?=
 =?utf-8?B?MHM1N2VaYkIzRFpZVGdZNm1wc0xOdGNyM05HYWhMckExVXd5aGFPekhMdng1?=
 =?utf-8?B?TTZZU2YzMkJvWitQeUhMRHpnSWora0FMMDd6NzJ6c2JwZis0RFBZNWJxRXg5?=
 =?utf-8?B?RUxBNkRtUklmVzE3NWZuOU1ZOXdqTm5QNE0rYkNIbThDQyswSmtZdjZPQTVx?=
 =?utf-8?B?USt5dnlTR3dzdjBGaGphRDEyblUzVS9qbzkxR0Zvd1ZuMklQR1U1bldUdkhv?=
 =?utf-8?B?VzQrcFJ4bkRVcXROM1BleXNYLzNnM1JkL3RSb0NlVEhWaUtCRHNaMDNDT3A0?=
 =?utf-8?B?UlY1bE1PaWZmWlYzeFFKU1VGeHR1ZFE5NWdjYUUrb2FXb25QeUIzaHFpcGUv?=
 =?utf-8?B?Ky9BbFVHWnFqSi9wcnJzdk11YVo2Tld3TDhURWk5S053OGZpQTBmRDF4MnZ2?=
 =?utf-8?B?dmlMTGtBNWhnLytHaWl1b1VGU3ZkZm5sa0JQU015eWxsdWdSbkZLVHRyVGZv?=
 =?utf-8?B?QTNic3Y2eG1MRkZHT0JNeEpvUWFTeHNqM2s5eEY2bVU1cjFISE9iZDVMYUVk?=
 =?utf-8?B?VCt3clVIbjJwUGljamllUVZudGZzOVB2MVRrRHhDa0h1cjkvYnAxU1JNanRu?=
 =?utf-8?B?YU10RzI5N0h4TEp6QWQrWnhqMnpBPT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: fe9e5fb3-6122-4ecc-0172-08d99f92877c
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 12:56:33.7937
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: w9BdpRTuSxuASxl/u3TMdfed1+B6BhfCKFVB9vz7IDvpb+dKxHSGjvtvQ/MgE5GDcR7zDIih4iKUg5vPGcbYOaIwzfWGWSgOciI5hpYra3s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB4117
X-OriginatorOrg: citrix.com

On 04/11/2021 10:48, Roger Pau Monne wrote:
> Introduce a new domain create field so that toolstack can specify the
> maximum grant table version usable by the domain. This is plumbed into
> xl and settable by the user as max_grant_version.
>
> Previously this was only settable on a per host basis using the
> gnttab command line option.
>
> Note the version is specified using 4 bits, which leaves room to
> specify up to grant table version 15. Given that we only have 2 grant
> table versions right now, and a new version is unlikely in the near
> future using 4 bits seems more than enough.
>
> xenstored stubdomains are limited to grant table v1 because the
> current MiniOS code used to build them only has support for grants v1.
> There are existing limits set for xenstored stubdomains at creation
> time that already match the defaults in MiniOS.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thankyou.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 13:49:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 13:49:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221534.383285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mid7C-0007rE-Mn; Thu, 04 Nov 2021 13:49:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221534.383285; Thu, 04 Nov 2021 13:49:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mid7C-0007r7-IR; Thu, 04 Nov 2021 13:49:14 +0000
Received: by outflank-mailman (input) for mailman id 221534;
 Thu, 04 Nov 2021 13:49:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F6ik=PX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mid7A-0007ql-Gg
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 13:49:12 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa5eedb7-3d75-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 14:49:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa5eedb7-3d75-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636033748;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=lIvtllifk+xmK9ZMVg9mPwCt/ZLi/3zQDXCkzr0+E/w=;
  b=Tm3ms7SrO+sLddsk6eVjeVmbZdLK8pmiiJosezz16wdaacyrAx3ySzGj
   38j7Ctpw4SGlHBa++Pg4XcgLJ8Hqry9Q0RvVIa1JrZcYBO9yvZBc0NnbM
   gq+5S3wIvxB1uNnGn/cS2qFrqeEhquWQTvFo/F8D8G4dJJtuQX3Ibl7C6
   o=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 5lnaiZB6zW4rd4l3ui4DZe6ddU1XPsNhpy78nfpSoQ7URSX9Qnw5BsAgFTDdtAMZjvp3n7/Usb
 PCU+f86x3hb6jNbT7ubxUr/0agScTwqrr7o88X+QNH6hzb6U7O2w8seSpckMKOdsc23qWHT6Pi
 fhboL2h7Z9/lgjtvgCRPpBTXUEfXvAHyNDKuuHzpTXKT574jrmLwl+xsSRTfNKh1k2ANGxHceY
 qpBncunFojydnYhVHnwxumPNWm0G7ZajAxd+4jlXM04LP1t+qhAM9kxWt636KFlTL+seFu0ReY
 30Pmcn9Q4vlMzHIx9BN9NaK6
X-SBRS: 5.1
X-MesageID: 59016528
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:U0zBnqsu28UUTvsUET/aOlBrG+fnVAZYMUV32f8akzHdYApBsoF/q
 tZmKW3UPfePMWWjL9kka9yx/UkDvZ/WyIM3Gldt/31nEShG+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YThWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npl6rOrd1k7OrD3nt8eDCEJCyx3ZJFa5+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY25EWRKiDP
 ZpxhTxHayz4TCcTAWssLqkAw+nwmH7nfiNbpwfAzUYwyzeKl1EguFT3C/LXdcaNXt59hVuDq
 yTN+GGRKgoBKNWVxD6B83StruzChyX2XMQVDrLQ3sBthFqf12kCEio8XFGwoeS6okOmUtcZI
 EsRkgIipLY/3FamRd78W1u/unHslhwBX9tdFcUq5QfLzbDbiy6YGWosXjNHcMYhtsI9WXotz
 FDht9HjCCFrsbaVYWmA7brSpjS3UQAKKUcSaClCShEKi/HzrYd2gh/RQ9JLFK+uksazCTz22
 yqNriU1m/MUl8Fj6kmg1QmZ2XT2/MGPF1NroFWMNo640u9nTNGKfLL2+1zG1vB7L9mhH0GMt
 SE4h9fLuYjiEqqxvCCKRewMGpSg6PCELCDQjDZTInUxy9i+0yX9JN4NuVmSMG8sa59ZImGxP
 Cc/rCsIvMcLVEZGe5ObdG5Y5y4C6aH7XeroWfnPBjalSsggLVTXlM2CiKP54owMrKTOuf1gU
 Xt4WZz1ZZr/NUiB5GDmLwv6+eV6rh3SPUuJGfjGI+2PiNJynkK9R7YfK0epZesk9q6Cqwi92
 48BbJbblUgHCb2kOni/HWsvwbYidyhT6Xfe8Z0/SwJ+ClA+RDFJ5wH5mOtJl3NZc1R9yb6To
 yDVtr5ww1vjn3zXQThmmVg4AI4Dqa1X9CphVQR1ZA7A8yF6Pe6HsfdOH7NqLOJP3LEykpZJo
 wwtJpzo7gJnEW+cpVzwrPDV8eRfSfhcrVjRY3r7O2VmIMMIqs6g0oaMQzYDPRImV0KfncA/v
 6ehxkXcR58CTB5lF8HYdLSkyFbZgJTXsLsas5LgLoYBdUPy3pJtLiCt3PY7L9tVcUfIxyeA1
 hbQChAd/LGfr4gw+djPpKaFs4b2TLcuQhsERzHWveSsKC3X3mu/2oscAuyGSi/QCTHv86K4a
 OQLk/ylaK8bnExHupZXGqpwyf5s/MPmorJXl1w2HHjCY1mxJKlnJ32KgZtGuqFXn+cLsgqqQ
 EOfvNJdPOzRas/iFVcQIisjb/iCiq5IymWDs6xtLRyjtiFt/beBXUFDBDW2iXRQfOlvLYco4
 eY9o8pKuQaxvQUnb4SdhSdO+mXScnFZC/c7tosXCZPAgxYwzg0QeoTVDyL77c3da9hINUV2c
 DaYiLCb2uZZz0vGNXEyCWLMzaxWgpFX4EJGy1oLJlKonNvZh6BogE0NoGpvFgkFnA9a1+9TO
 3RwMxwnLKqDyD5kmcxfUj3+AApGHhCYphT8xlZheLc1lKV0urgh9FEABNs=
IronPort-HdrOrdr: A9a23:NXLQk60KtY6dXVethVS7kwqjBVRyeYIsimQD101hICG9Lfb3qy
 n+ppsmPEHP5Ar5OEtBpTiBUJPwJ0800aQFnLX5XI3SJjUO3VHIEGgM1/qG/9SNIVybygcZ79
 YdT0EcMqyAMbEZt7eD3ODQKb9Jq7PrgcPY55av854ud3AQV0gJ1XYGNu/xKDwOeOApP+tfKH
 LKjfA32AZINE5nJPiTNz0gZazuttfLnJXpbVovAAMm0hCHiXeN5KThGxaV8x8CW3cXqI1SvV
 Ttokjc3OGOovu7whjT2yv66IlXosLozp9mCNaXgsYYBz3wgkKDZZhnWZeFoDcpydvfpWoCoZ
 3pmVMNLs5z43TeciWcpgbs4RDp1HIU53rr2Taj8DLeiP28YAh/J9tKhIpffBecwVEnpstA3K
 VC2H/cn4ZLDDvb9R6NpuTgZlVPrA6ZsHAimekcgzh0So0FcoJcqoQZ4Qd8DIoAJiTn84oqed
 MeQv003MwmMm9yUkqp/FWGmLeXLzEO91a9Mwc/U/WuonhrdCsT9Tpd+CQd9k1wgq7VBaM0oN
 gsCZ4Y5o2mePVmGp6VNN1xMvdfNVa9NC4kEFjiaWgPR5t3cE4klfbMkcEIDaeRCdo18Kc=
X-IronPort-AV: E=Sophos;i="5.87,208,1631592000"; 
   d="scan'208";a="59016528"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jekYKNhgO4DV/Nmr/yAg4ZJ/T79XInwbY6ebzfiiALG8asJqbUb5xkoSFNBjUzAruHwFMI9WbQJx+72J+vv/uUqrk4V1DR+gBE2nyOfICwTNf2n4n/U/527h19OFRNp2eOJPPBe5PvWcCEsNWtwk7fIHusNCVKp4ntCz+Db9MTKyYIQ9XFfwbsVf29EUo1KOokUYnCp+KgvB40jFViCXSMm9uFKjzA276j22RjQAWc7cPCYc3XuRJfa4EPXKTeazgrc+25FDw7mq693Sm+13VYyiPVfiDN9JMmWL82Zo4OVAMA5Z+aqp80btRd7f0tvWmUqHbgxReYBPS37rggj5VA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=E7IdaPAf2jJ7QOUmRRBkAHEm3RXcsFbubNZC17kL7o4=;
 b=oA0/tR1aBMkwOWSQM++f8LPmYOlO5GtM3moh/EnkHXjrR+OD56GqZMyI9WPtNeCVWq0ZVtZ/H2SglmDdc4oSU4527pH7Vov3tgHMKzWmF4VNxc7fansnomg90E7TXW0ahYDBeYYIzCHsf8fHFXc1K2+rygLojw6Ya9/wsaYr7HeVvK798qo8qjIKZvKVzRSi0CGT0GRgNml5OetkIEvcVd0kBWAY6rg3qlGnzvPb5pW111cuwAKrZemzQ/ry6NegGoORxwYt0gxfA860JZbQ4dt++KnSYy/qJXPyCsxqM/DxFbPkqC1NTajfYVNGEgDs4G6d4LNwwySpT0Q+CV/aOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=E7IdaPAf2jJ7QOUmRRBkAHEm3RXcsFbubNZC17kL7o4=;
 b=ai6fvbqrhrfO0rjdVjwUewfP0RmsbFz6m2CBws+ksUh0/FhD1JnCH2AAXmuhZTBiblfbZj7ncJpzDky5OCZ1Emk18XBi0P9sGZZhwWcSOqkGEQBIMTIAqKeTzoinC/uWdCx1anjBUZpbbZZ2FKYbuMesYhzq5rOIfA77Q6hv50k=
Date: Thu, 4 Nov 2021 14:48:55 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Ian Jackson <iwj@xenproject.org>, <xen-devel@lists.xenproject.org>, "Wei
 Liu" <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony.perard@citrix.com>,
	"Juergen Gross" <jgross@suse.com>, Christian Lindig
	<christian.lindig@citrix.com>, David Scott <dave@recoil.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
Message-ID: <YYPkx7148Ive/352@Air-de-Roger>
References: <20211104104834.10977-1-roger.pau@citrix.com>
 <24963.52610.316896.770905@mariner.uk.xensource.com>
 <8ae2c1ac-b220-a5ab-920b-244590ae3ef0@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <8ae2c1ac-b220-a5ab-920b-244590ae3ef0@suse.com>
X-ClientProxiedBy: MRXP264CA0028.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::16) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0281ece5-e1f5-426b-432d-08d99f99dae3
X-MS-TrafficTypeDiagnostic: DM5PR03MB2778:
X-Microsoft-Antispam-PRVS: <DM5PR03MB27789C0E9FACE6B4E91694BB8F8D9@DM5PR03MB2778.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 1mymN445joHBJ4f7JiOfE22ctfeKHQ3Lh/UqZF4vaIWqjpmAiwj1ZkkgG89/gPsryGSWOkXGP0q8dVhUjC/T5Lspf6LYqCXSx4KYZAaydc8KllDi4vLtNupc3JarrbBv/yr662mZMmNVz/9ehJSW/Pz3OivNbUWTLT1ROZzcA+Q8Mh9kHu/Y4K6GhZ26dgfx6ShlPKkxbe4NMhMytIYTgYeywcvXIXE9C86t9q9sSEzwRTqWfpsJoO3zU3tUAFjYHQ++WBBpPZhQS2QUyXZEJfIIZ6sIJTLNGN3JYMpMo5ay7FrIY0aOQ2txlcEA7B7XUICDLMqMtEqkfQYylrGSSQYvRlyo+O0onuT+tog70aDNEXALOVRk5YCxBCorGUmM40W/UR3C2wm3bW9597w+icC7SkQfu2cVaHt8vTbHonUc5bDFtH939xTtKjh00TsIxYbeDxShEN8L2aW6tlGVWF1xxiA9bzkzEQMjVoA8U1qIyGwhewXTMuswJOBpweS9COjYU5ZEE/MdumuidtTwINfDXBrTavjHOflzviI3n06L3bw4WyCr8hb/WnmuWDR+oFmyhdO9h+O0Mgyhd/nN3Y/EQTKmjOmjkwbh9uBGCjzy3/DlfmmFda2cnSJppjj2s/hXIcunomO1v2DT3upd+9QkmJ3gw2gEZgWJ0FlU2ENBOq9PQnO+sm4AAMXw7Q/Q/f4JsxoVn5EdbBKyCxnCuvcISKW/ZeinFBgkVho3e2c=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(4326008)(6496006)(6486002)(956004)(9686003)(2906002)(54906003)(86362001)(316002)(5660300002)(6916009)(966005)(8676002)(38100700002)(66476007)(66946007)(8936002)(66556008)(6666004)(53546011)(186003)(508600001)(26005)(85182001)(33716001)(82960400001)(83380400001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aUxndnZ3Z0Y0UDBtNFVIc0ZvZHBHSWtYaEI0Zk5KRzZqSlk0UzdWNlFvMUNR?=
 =?utf-8?B?ZndqdUZHMzVRUS91ZmRwVEZiU3VTb1FKY1doOG01N2NCZFNKVkZrczFFVEtz?=
 =?utf-8?B?a2pFYmVEQXFPS1lSblZKVnhCa3F0QjRrd2dvc2Z0bC8rUndRNUxkejQyS3NH?=
 =?utf-8?B?SjE5VHpvL0t4UExzNHl6VUI0RzQ2U09yUTQ3OTE4QVc0MUFScVRZQXdkT3U5?=
 =?utf-8?B?STdlaWVGMmhpeEhENVlTRHZqekE4NnJnZEVVa2pINmdlS0l4NFY5bTJ5bGdy?=
 =?utf-8?B?b0s0NjlFa2VMbXlkNlBWc1dxYzEvbG96QXdqSUdVa09oSkdYOTFKZ1JDWTlY?=
 =?utf-8?B?ekdKdXpsR3FJNXFoV2daV0J0OU5tMW5OaDBCdE12QVRVZ0U4WDFPc1VUa25p?=
 =?utf-8?B?c3VBMDFXUUVGZmlmSUl5VWROUkJiTS9YMTJnay9YS0xNVEZGalZxT1hKRVNU?=
 =?utf-8?B?UStlbGNsaU9zNVpRbW16L296eFh1THBJV0c5WS9oZFdzUWlEN1lwQXFxTGgw?=
 =?utf-8?B?dnFLa3pIRG1Ubm9SZkZCL3NjWFdkejVtY3cySG9uVEtoa21STWlBZjk0a1E4?=
 =?utf-8?B?R3NQeGI2a293Q0pOWHpna00vcTRXTGpOUzZ5cnRWV2c2R3JzZW5NR1JGYk41?=
 =?utf-8?B?SlYrZnQwemJuZWpRRkNoTmpzMkdtUmVmeDZ4OWRuTFJKeHRaamtUWHB5dENI?=
 =?utf-8?B?UkRoM25xSXcxZTI4U3BTdG5pb0JWUGlIeUNZNFk0c0x4NjhNNHB6UjBrMm9l?=
 =?utf-8?B?U1FRNzBPSmhNRkxRRGhNM3R3WUpsZmplMlduTHhyem9IK3JMVlJUaXN1UUlk?=
 =?utf-8?B?VFkwM285bklpRlpTRElQK0ZZT1crT0JyZFRkTVhUL200K2RyUkVWYUJBdHFY?=
 =?utf-8?B?dm0yS05VWWxuL3V6Y1BjMjQ1VzdJbkswUXFkME03TkRIRnVyNHN3MmRvcGVs?=
 =?utf-8?B?b2pPOTB2WmJkdzVqT2o3OVZmWTJ5Y0Yxem1LTjlMbWRkalBnVUI2a29NSU9h?=
 =?utf-8?B?QjBselFPSzhncnBvZGIxbUxubGJtWnVyTVJxM2lnVkJiQ2FMcGFBUjBYZHZq?=
 =?utf-8?B?ZTZpdmxBdDVaUXd4M3VHdVJJb3IxOFZ6UHdpWGJNMCtSN0NCN2ZWZngzTGZM?=
 =?utf-8?B?bFBLMXcvRkQ2QlVPa2Y2d1VQckg0R0piekdkdDJ2dklSVjFlaThVL2UyczFo?=
 =?utf-8?B?TE1lY21rMURSUFN0N2YreXg2dmVkekZuRzFvc2FsTEtLZjhiMWpxWDhzWlhS?=
 =?utf-8?B?WUgwWlF1ZGFxa2s4SmtoSWtRVmhvY3JFaHYxYXVsdzBIYkJKMTRpa3JOdjYy?=
 =?utf-8?B?QUpNbXJlL1BHemd5MGM0YnExWGZZVkJRYVczN1hHcnp1R2cwOGRPTzdTdTJD?=
 =?utf-8?B?YTQ1UFMvR0tJR2RSbGpLRFNzMjFuSll6K1BuSlppTmN1dVJITkU5Z1B3UUow?=
 =?utf-8?B?WTBpY3I3bkZaK3JKK08wZ0hjbXZBWEVQejAzdFNEeFJGVWNYdFhBZEF6QmV2?=
 =?utf-8?B?ZzVxVTV2eCt3bzBhcDBPSnhMd1dwWm40c2xzdDBPL2wvZUp3R2ZRQVNBTlEv?=
 =?utf-8?B?WEZVaTd5UlFHQ2wraXRBUG5LRzgwQWMvMVhCZzhwNnFQRW0vZkFDRHREQzlP?=
 =?utf-8?B?NStaUmdMazhDOXdJemtRM0hDd3c5ZXhDZTlDYVJWbDFrbm9TRDg4cFJMRjYz?=
 =?utf-8?B?M2JNTG4zdFc4c2xDVGtZZjlsOTZTQlZKUks5azhVZ05IdGFLeVE5VHRmcXNU?=
 =?utf-8?B?cjdXaHJoVFVBYkRqU2ZCd0Z0WjJWN2FGMEZYNEpXMzU5TzZUSnc2eVcrQ2sx?=
 =?utf-8?B?NDlkZ09tS2xoUEpBcFNWNHhrMmVFVzNCWGkrMzMzR2EzU05JdzRtWXNRN0Y2?=
 =?utf-8?B?eTZlWEJyK0lIMXVNSWFGcFhvTUpGMndkV25rVjEvK1VIL2g5bXBCakk3WFBo?=
 =?utf-8?B?UnJzRjArdlowV0VZTUluRHg3VTc4b1haS2FEVjQzY2REVTVzTnA0WjIxSWhH?=
 =?utf-8?B?cUlKZWlJVFlWZVp0cDlHRUI1TUh3MzZmOVh2VDZTeENHbmkraVBHZVhLck9t?=
 =?utf-8?B?Z1VFR2lWNStPK2pqWE4yWVEvcVlwVVppVGU2OWNFdDFVL0pHYUw1cUl6ZkVa?=
 =?utf-8?B?S2xkOHloYnJOa21RVThkaGJrVTZnU1pKd3YwTWt6QllxeXRsR0w3MHEzRTNG?=
 =?utf-8?Q?tV+oTeO71dgBD39Rc/+1uUE=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 0281ece5-e1f5-426b-432d-08d99f99dae3
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 13:49:00.2149
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qI7UkjHNd3cw35KsN5/Fd5zNHlQqg+S2Av8aarjuxHSCoU4SP5D9JNHeY2/j/vK6AKo5LGTWUKW0Hr6epPe7QA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2778
X-OriginatorOrg: citrix.com

On Thu, Nov 04, 2021 at 01:25:31PM +0100, Jan Beulich wrote:
> On 04.11.2021 13:09, Ian Jackson wrote:
> > Roger Pau Monne writes ("[PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
> >> Introduce a new domain create field so that toolstack can specify the
> >> maximum grant table version usable by the domain. This is plumbed into
> >> xl and settable by the user as max_grant_version.
> >>
> >> Previously this was only settable on a per host basis using the
> >> gnttab command line option.
> >>
> >> Note the version is specified using 4 bits, which leaves room to
> >> specify up to grant table version 15. Given that we only have 2 grant
> >> table versions right now, and a new version is unlikely in the near
> >> future using 4 bits seems more than enough.
> >>
> >> xenstored stubdomains are limited to grant table v1 because the
> >> current MiniOS code used to build them only has support for grants v1.
> >> There are existing limits set for xenstored stubdomains at creation
> >> time that already match the defaults in MiniOS.
> > ...
> >> This needs to be applied on top of Andrew's:
> >>
> >> xen: Report grant table v1/v2 capabilities to the toolstack
> >> https://lore.kernel.org/xen-devel/20211029173813.23002-1-andrew.cooper3@citrix.com/
> > 
> > Thanks.
> > 
> > We have discussed this wrt 4.16.  I am minded to grant a release ack
> > for this.  If anyone has a contrary opinion please speak now.
> > 
> > (I think committing both of these would be subject to maintainer acks
> > for "Report grant table v1/v2 capabilities", which I didn't see but
> > perhaps I am missing.)
> 
> Afaic that patch looks okay (albeit not really a scalable way to express
> things, if we were to consider further versions to appear), but it wasn't
> clear to me whether Roger's reply was meant as an objection, a direction
> towards doing things differently, or merely a benign comment. Hence it
> didn't feel appropriate to give an A-b just yet.

I think it's fine, let me reply there. Overall I think it's best to
express supported grant versions independently, and we might wish to
also allow to select a discrete set of grant versions that a domain
supports. IMO it might be sensible in the future if a new grant
version appears (v3), to select to expose grant v1 and v3 only to the
domain, and avoid v2. This would require some changes here, but we can
see about those when the time comes.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:02:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221544.383307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midKA-0001q2-Vz; Thu, 04 Nov 2021 14:02:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221544.383307; Thu, 04 Nov 2021 14:02:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midKA-0001pv-Sq; Thu, 04 Nov 2021 14:02:38 +0000
Received: by outflank-mailman (input) for mailman id 221544;
 Thu, 04 Nov 2021 14:02:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F6ik=PX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1midK9-0001pp-BO
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:02:37 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db29b5b0-3d77-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 15:02:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db29b5b0-3d77-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636034555;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=ZtrsNs/CSj51LF1tFa/TNOEhgy7T08adrRfn++QPxuM=;
  b=LmGJSaXc+IMAM0OOZdcDtTNy/9WSq3dpImYX7B/YX1h+7PGweOdTomrp
   rZspswJBsmldYVDmkURezcTTFFmBUMEFgyEW4BBg8ERmrpHkZ+gyLRy7R
   j2xTGHn5LVerGpKGdrlAjftGKOZa30okit9NlywmtHMXSzaO3OPeCXngh
   I=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: MF9hJa4ocq3HKYOoI/Qvv8giDfMBbmpEa4aEozyeLBxwmiumwrMZ0NSUAcoiIPgUKPMG3A1ARB
 C19UvDA+/A7zS8lLcCzhvhpI/oW8JgjGX8yId3KUCpEv95hf3zDCgT4jf5+xDqAttSml4jkH/r
 P+eccH2pICED2CJ8WKja3NtU/rRF2DVeCEF7B8TklggFPdfOYvYbK1C3Zf1BzeXi0+oUYUik2z
 5YomspM+LG+EcwixQ/j0EJzC37pl376gNXQ0uUqLaxpbrX3mzEU9BFDsQGAYy7oQybXDQmR1g2
 A9bpHb0aTSeprnwN1W6uEZmB
X-SBRS: 5.1
X-MesageID: 57102438
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:zdFXqatXmhimYpmgJW9AWGUUVefnVMtZMUV32f8akzHdYApBsoF/q
 tZmKWCGbvyNZmTxLosgPdjloU5VvpTVyoNkS1Ft/C02FSka+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YThWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplsqSdEiESMvf1hN9CfkhRAzhYP/F75+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258XRayCP
 JpxhTxHbw7GSBsSM1AtMMwjn/n0oEu8eScHtwfAzUYwyzeKl1EguFT3C/LOYcCDT8hRmkeep
 0rF8n7/DxVcM8aQoRKa9lq8i+mJmjn0MKoQCbm5+/hCkFCVgGsJB3U+RVa95PW0lEO6c9ZeM
 FAPvDojq7Ao806mRcW7WAe3yFaFoRw0S9dWC/c96gyG1uzT+QnxLkouQyNFadcmnNQrXjFs3
 ViM9+4FHhQ27ufTEyjEsO7J83XiYkD5MFPuewcDdSZexeLv+rgvtU3iH99zCYi30uDqTGSYL
 y+xkAAygLAajMgu3qq9/Ezajz/EmqUlXjLZ9S2MADv7s1oRiJqNItXxtAOFtaoowJOxFwHZ5
 BA5d96iAPfi5H1nvAiEW60zEb6g/J5p2xWM0Ac0T/HNG9lAkkNPnLy8Ahkiey+F0e5eIFcFh
 XM/XysLtPe/21PwPMdKj3qZUZhC8EQZPY2NugroRtRPeINtUwSM4TtjY0Wdt0i0zhNxwP9iY
 c7LK579ZZr/NUiB5GDmLwv6+eV6rh3SOEuJHcyrp/hZ+ePGDJJqdVv1GATXNb1ohE91iA7U7
 8xeJ6O3J+Z3C4XDjt3s2ddLdzgidCFjbbiv8pA/XrPTc2JORTB6Y9eMkOxJRmCQt/kM/gs+1
 irmAREwJZuWrSCvFDhmnVg5N++/A80i9C1mVcHuVH7xs0UejU+UxP53X7M8fKU99fwlyvhxT
 vIffN6HDOgJQTPCkwnxp7Gk/eSOrTyn2lCDOTSLej86c8IyTgDF4Ia8LADu6DMPHmy8ss5n+
 ++s0QbSQJwiQQV+DZmJNKLzng3p5XVNyvhvW0boI8VIfBm++oZdNCGs3OQ8JNsBKEufy2LCh
 RqWGxoRucLEv5QxrIvSnamBoorwS7l+E0NWEnP197GzMSWGrGOvzZUZCLSDfCzHVXOy86KnP
 L0Hw/b5OfwBvVBLr4sjTOo7kfNgv4Pi/uYIwB5lEXPHa0WQJolhenTWj9NSsqBtx6NCvVfkU
 Ey45dQHa66CP9noEQBNKVN9PPiDz/wdhhLb8e8xfBfh/CZy8beKDRdSMh2LhHAPJbd5Ktp4k
 +IoucpQ4A2jkBs6dN2Bi3kMpWiLK3UBVYQht40bX9C32lZ6lAkabMyOEDLy7bGOd85IYxsjL
 TKjjabfg6hRmxjZeH0pGHmRhedQiPziYvyRIIPu87hRpuf4uw==
IronPort-HdrOrdr: A9a23:hRfwdqqQ6wq8Qa6UiJgqSQ8aV5uxL9V00zEX/kB9WHVpm5Oj+P
 xGzc526farslsssREb+OxpOMG7MBThHLpOkPMs1NCZLXTbUQqTXfpfBO7ZrQEIdBeOlNK1uZ
 0QFpSWTeeAcWSS7vyKkTVQcexQueVvmZrA7Yy1rwYPPHFXguNbnn9E426gYzNLrWJ9dPwE/f
 Snl656T23KQwVpUi33PAhOY8Hz4/nw0L72ax8PABAqrCGIkDOT8bb/VzyVxA0XXT9jyaortT
 GtqX202oyT99WAjjPM3W7a6Jpb3PPn19t4HcSJzuwYMC/lhAqEbJloH5eCoDc2iuey70tCqq
 iAnz4Qe+BIr1/BdGC8phXgnyHmzTYV8nfnjWSVhHPyyPaJDQ4SOo5kv8Z0YxHZ400vsJVXy6
 RQxV+UsJJREFfpgDn9z8KgbWAqqmOE5V4Z1cIDhX1WVoUTLJVLq5YEwU9TGJAcWArn9YEcFv
 V0Bs203ocZTbqjVQGbgoBT+q3vYpxqdS32B3Tq+/blnAS+pUoJj3fxn6ck7zM9HJFUcegz2w
 2LCNUuqFh0dL5lUUtKPpZ3fSKGMB2/ffvyChPmHb3GLtBOB5ufke+93F0KjNvaDKDgiqFC3q
 j8bA==
X-IronPort-AV: E=Sophos;i="5.87,208,1631592000"; 
   d="scan'208";a="57102438"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dFjGzfuKjviH5Yj+fBVcvh8USoCNPegpHDE+QX2dvP3A46665C2DFhJxinf1D8I2UrQNvKl9GutovyOr3M2mQiPOJai3Cr8mXPXKUbNkwxVTOUJXUhn68AFnSungrCNP85YpfMQb0wcnxq0+fymv3lPbGyCmnZIlZrFExRn+ZdSwnpBaYInH1RFGIZzpfNcy/3WnmcI65QAUBSfXD4SM/pLz6F5RLI1bswvEDSHjyhYg62WW7sDA4IEZeQjVDIdVc4O5QaqbYNfiwppCFIxGFKdU0bXjeo6BaDtBC888QVCQj5vGdGJgdWm3vM7doZ4mq9bzeghllczShm2IcAQVuA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LhoEmf3Kw3ApVvwIm5kTVVfM8ZKNc0WwCJO+Itvf1r4=;
 b=oHy8et+EW4qJu7jb38gnuiO2Twr+7g8LVsp8L9cj8w44HKXQYfyMvv2KLihxMmA9ZrQR9BnaSJ1OqdyXChGIEs8T8b3+exK0yOdZN8mLGjmuMlWc2k386UzPzzwyb2wBtoQz+8GBfwr7bngLTiEmuGkKFTdcuz/utChU0TUj3sbrpy0ZSv43sGPtt+yx8xcUme8vgOP6ftpQljfUHSwEMI2PmnqtQcV3skImw6T0hzW/JTtHcSq7lomZZ3VccORbVn2k7+IE+zSM50uKwXj7h6cETO9x7lANN0dhjaa4XC1DassKzb7hM7H8ZHU0zfMaIVok93slzs8DjmZlvid/Dw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LhoEmf3Kw3ApVvwIm5kTVVfM8ZKNc0WwCJO+Itvf1r4=;
 b=XGKskXAD2yEdHwPvSHS/Wep8cmpQfgFrVm6fHIuF3Ty4VAxNDx1Ywp3345VnjBC/PZ/ufY/yyafNTnaVQmvdJbrNpiW2+FFmjSaAZfSfI3TjX/KecmgHhXiRXBgfiR4WS1kzbCaHn6bg3SbynQRZ/8iLcIiaNR24IKXQbHIQMws=
Date: Thu, 4 Nov 2021 15:02:19 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, George Dunlap
	<George.Dunlap@eu.citrix.com>, Ian Jackson <iwj@xenproject.org>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Christian Lindig
	<christian.lindig@citrix.com>, Edwin =?utf-8?B?VMO2csO2aw==?=
	<edvin.torok@citrix.com>
Subject: Re: [PATCH for-4.16 2/2] xen: Report grant table v1/v2 capabilities
 to the toolstack
Message-ID: <YYPn674C9XJhrwhD@Air-de-Roger>
References: <ffd27f87-9e47-12cf-2cfd-1688a19c445f@citrix.com>
 <20211029173813.23002-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211029173813.23002-1-andrew.cooper3@citrix.com>
X-ClientProxiedBy: MR1P264CA0130.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::23) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d849ed20-1f79-45bb-6b64-08d99f9bba44
X-MS-TrafficTypeDiagnostic: DM6PR03MB4473:
X-Microsoft-Antispam-PRVS: <DM6PR03MB44732382419F71B1A89E9A558F8D9@DM6PR03MB4473.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: zocPBwVeiJLxJWYgVP5m6liI1M3ZYl7gHfsfhkwWReJAcZnh4w2l3rDSplIW8D3ro8ExNGbxeYXzNUi+MyG3hLIiPWoW2X4RdNFBa8fWGCEyO6UOvPe2F8xmmUp2p1jYi5rrMsCP3XJnPEAfmNzBNdSKBnhvzHp6bQx0I3RzjkkwZB2IQA0efZeV6e/oIgoB1UgNFfpO/Lp8afCOKRouR9cvA0anP3hf1Yrl6U4BFYObrW6YcwDbz9VSo6n6iW6OYuYzmM1NbtRFCw66Yh7X4C0dTKZIPB98rB7ldQTxr/udm589/s3ljORbo+pHwXwF9FeCfeVAM96Sd1EGXtDLGmLYbw0ya+R+OP+YWOaLV7du9Eisfi0hAJGjTzPR8aI+GuqWSwVDtvPHnHHJbZAa87ezXM4CCNk8L6iXp5ziDIcJNu7xAIzZWrzpyjM6KrmS/Do7/6LTyqQUuZIqAQJbJVATARUHltwupzurLNR/PzKd+BYKvkWvnCREJTW/fLrJEDtuTXgd/lwuFtHSFCL2F2P6BUqeul7uwrFBWgVxM2lBxeGMcffbx0RZjckAG1ko1AP9xfCJNZzaVULa+yIUKVcnucSsZSth4BhrXEQdyGZp5SjwEI6WUg/knLji94M9YAPXWPiwfjizm7+CpoZOlw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(5660300002)(82960400001)(66946007)(66476007)(956004)(6496006)(2906002)(6636002)(33716001)(4744005)(85182001)(66556008)(6862004)(186003)(54906003)(316002)(8676002)(38100700002)(86362001)(9686003)(6666004)(508600001)(26005)(4326008)(83380400001)(8936002)(107886003)(6486002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RzUyTjZFeGx0VERFOW5ES0NXUnM2cXd4N3FYNzYvOVhyeXVseGNiN0J4QzlN?=
 =?utf-8?B?K01HRS9scHdtY2F2emxzVFpZd2w2czRmMUNTZHh2SVZpTGNGS2FJUTd3cjNu?=
 =?utf-8?B?RU5kaEZkamxNQmVPZnpVd2Y5VFQrTmF2bEdlWFMydWZ1RklrTFJJQUdzM1J4?=
 =?utf-8?B?Uzl1Ti83cUp3cWJSYXlWL0cyVkJYdXR5aUJ3cjJZTDZaVlJjTk1SVUphRmtM?=
 =?utf-8?B?QlgrNlBOS2ZsOUs3aHp4WFJ5ZEk3NGY0YlpGUVJoOEZ1c0tCY1c2UkdKRS9q?=
 =?utf-8?B?eTVzQjYyRmxWOXF1S3ZOdGpyQmxtU3pYY0QzeG5GdzFSQjlBMk1uSWQ5alhQ?=
 =?utf-8?B?djdBUFlUaXMzWmY0R0NWbDFDWGxzcnBrc1hyYzl3L25rWjVyczRlUHY1OFRa?=
 =?utf-8?B?YUtyL0tGMERYL3p4OEN1YTdpNnlNV2NnNnZTNGdrUThiYWQzR1g0KzQyMG1C?=
 =?utf-8?B?Rmhhd2dqTytRUzBQMXVTWTJZb01GVmZuaEJjZ1hZUVFkUHZObTVLcEZhaVhi?=
 =?utf-8?B?MFRSd1BnbGxlcGtQc2VjR2U0cFVyZDQ5bUZHOGdVK3RLKzhwUkdPVmJDZE9G?=
 =?utf-8?B?WFYwbzRNekYwNlVRSUFMSEtmbnZEU2Vpb05USjJQRzAxK2RQZFJ0M20yZUkx?=
 =?utf-8?B?SWkyVUo5UFhrSnhMd01XalFMRzBJQ1lJeUUxa1d2STNBTjRyK0o4Zkk1akRt?=
 =?utf-8?B?SlpTY1J3WmlFREtJREJhU29nTFlMejNSanlqOFp6ckkvUGM1U0RnUXJOVXBQ?=
 =?utf-8?B?Tm85c1V2dEFVLzRVWUc1MXhJQnQzZ25qREdJNW9uQS9oNHVrczV3am5JRW5j?=
 =?utf-8?B?b1NuSnlyNWdTVHJSNGY5ZUoxQ2JpUEpiSG1BWGJqNVhOcCtvTXE0UytsT0N0?=
 =?utf-8?B?WGVmWUdvWHNGeFhjbXIrdEJ1bEdvcVVHMVZZdVl3bExhTE1hMFhIc3BaMWlD?=
 =?utf-8?B?QXpyU2YwT3YwbjhmMWdPZVdXUTRyTDhSVjhqTmZodUIxelZJQWlGWGYrbGRO?=
 =?utf-8?B?SDhxVlRuRE5DNlozc0FPTEc0cTZxT1djNThqMEdJaVM4bTBYeWtGdlVCL1hh?=
 =?utf-8?B?MVdwUjJoWmwrK0lHcklrRmxTN1V5anhEL05hVFZjSkVwd3lMOHc5L2EwNHEv?=
 =?utf-8?B?Z2pmRG9LRGNqeGlEK3pxLzk5SHlSOU9nbjhBMS8vT0dVODY0RVFMaDFEVEdq?=
 =?utf-8?B?Ymg2anZoOFhiKzMrdERUSGVvWlhUbDBCNkhNNE8yUHlpREFLOVdjbWw4RWhU?=
 =?utf-8?B?Zm1hbytXZHhQaDN1QlZNZG9LbW9tVHVEYnNlbjlhYU9nSU8xNjhtQU9qYUcz?=
 =?utf-8?B?RllKam5wM20vcDBmOG1BaU9tRXgxSlk5VEloeGdsa2Q2dmxRaGR2L2ZEWFFl?=
 =?utf-8?B?MkVGSE12eVhianJsOTFMRzFGNW1GVWgwRnF0ZUhRNUVCd0psRDRuZklraTFH?=
 =?utf-8?B?YUF0NEpUcDFGTGdBb25KYTlrTXVRMm1EdHBVSTZFZHNrZ3BFSlRZMGF4dEhZ?=
 =?utf-8?B?SUNlUkRWaXBZTlZWc3M3bzJFdURZQ3pjU1Z6aG41dXo0Q1FVSlM5REQ4WVF4?=
 =?utf-8?B?N0Y2NHFBUHAvSDhKVU1qRVl0clVtcitQTGM4OFk5Y0svbC9jeGYzdDB0RjRw?=
 =?utf-8?B?Z3lUNWtvMkVaSmlVSWxkRkpFR1lUYzdtWWJNaElYcDBnOEdhRk80cEN1VndJ?=
 =?utf-8?B?a05uT1RXWENEeGIzVG9FWmFteWxzQlJWZkJKS0I0Z0VHMVM4NW1tbnJ2SVFQ?=
 =?utf-8?B?YnQrU1hXNmh6QStDYU94Z2Y2dWE4TVFuQ2g1TzdBNERLY3ZEb05PVHliV0E2?=
 =?utf-8?B?MEw3SXgrd0dVOHNUaTMxWEY1bkwvZmNtcEs5cnE1T0Z4SDk3R1piTjcrZlls?=
 =?utf-8?B?a0JUQktxWGFKVWo5V0F0NVBFRnAvdlE4aGVROGgxeDRMSFRSRGpyNUM2WWg1?=
 =?utf-8?B?TFY3SzkyYXIyRW1xcXNDWHNUdlV6SVlYNTcrM1ArSkNFMU4rYk5BN3drUXVC?=
 =?utf-8?B?MXRzTWIvQ1M3N0FEZVNFK0dtL3lDUkdMYmU0aHZ0NUM2NElKZ3hFVytEL0E3?=
 =?utf-8?B?c1dqUExUOTZ5WkdNRzg5MjNKQWt3WTVqQVU3MzVYOC9VMUQxbmQ5SkoyR2VV?=
 =?utf-8?B?NHo5UGFqczNYdG52TVFtVUdiOFp5NUZiV1VJdzV4ekZyaDc3L21sR2ZxUXlh?=
 =?utf-8?Q?dc2rbVbSB24Mergtl7SxUC0=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: d849ed20-1f79-45bb-6b64-08d99f9bba44
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 14:02:24.5221
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lb22+GDwc2QxwRX9v06IRe+EnR9dqlRnK6rNZoUVLxMXT48Vc09vM1nCOyElVU/cPGID/i7hEWLvIARwRR89Hg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4473
X-OriginatorOrg: citrix.com

On Fri, Oct 29, 2021 at 06:38:13PM +0100, Andrew Cooper wrote:
> In order to let the toolstack be able to set the gnttab version on a
> per-domain basis, it needs to know which ABIs Xen supports.  Introduce
> XEN_SYSCTL_PHYSCAP_gnttab_v{1,2} for the purpose, and plumb in down into
> userspace.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:14:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:14:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221552.383318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midV2-0003LH-3d; Thu, 04 Nov 2021 14:13:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221552.383318; Thu, 04 Nov 2021 14:13:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midV2-0003LA-0j; Thu, 04 Nov 2021 14:13:52 +0000
Received: by outflank-mailman (input) for mailman id 221552;
 Thu, 04 Nov 2021 14:13:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t6+c=PX=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1midV0-0003L4-Pi
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:13:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 6d99cb18-3d79-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 15:13:48 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 9435B1FB;
 Thu,  4 Nov 2021 07:13:47 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.cambridge.arm.com
 [10.1.195.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 520F83F7D7;
 Thu,  4 Nov 2021 07:13:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d99cb18-3d79-11ec-9787-a32c541c8605
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com,
	wei.chen@arm.com,
	iwj@xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Date: Thu,  4 Nov 2021 14:12:06 +0000
Message-Id: <20211104141206.25153-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
("arm/efi: Use dom0less configuration when using EFI boot") is
introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.

Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle
inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
handle is used later by efi_bs->HandleProtocol(...) inside
get_parent_handle(...) when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL
interface, causing Xen to stop the boot because of an EFI_INVALID_PARAMETER
error.

Before the commit above, the function was never called because the
logic was skipping the call when there were multiboot modules in the
DT because the filesystem was never used and the bootloader had
put in place all the right modules in memory and the addresses
in the DT.

To fix the problem we allow the get_parent_handle(...) function to
return a NULL handle on error and we check the usage of the function
to handle the new use case. The function in fact should not prevent
the boot even if the filesystem can't be used, because the DT and
the modules could be put in place by the bootloader before running
Xen and if xen,uefi-binary property is not used, there is no need
for the filesystem.

Another problem is found when the UEFI stub tries to check if Dom0
image or DomUs are present.
The logic doesn't work when the UEFI stub is not responsible to load
any modules, so the efi_check_dt_boot(...) return value is modified
to return the number of multiboot module found and not only the number
of module loaded by the stub.
Taking the occasion to update the comment in handle_module_node(...)
to explain why we return success even if xen,uefi-binary is not found.

Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI boot")
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>

---
Justification for integration in 4.16:
Upside: allow booting xen from grub on arm64 when the stub doesn't load
        any module.
Downside: It's affecting the EFI boot path.
Risk: It's not affecting x86 arch that works the same way as before.
      If something is wrong it creates a problem on early boot and not at
      runtime, so risk is low.

Tested in this configurations:
 - Bootloader loads modules and specify them as multiboot modules in DT:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - DT specifies multiboot modules in DT using xen,uefi-binary property:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
   other multiboot modules are listed for DomUs using xen,uefi-binary
 - No multiboot modules in DT and no kernel entry in cfg file:
   * proper error thrown

Changes in v2:
 - Changed comment on DeviceHandle NULL (Jan)
 - Removed fatal condition on handle NULL (Jan)
 - Add more info about the EDK2+Grub2 issue to the commit msg (Jan)
 - Removed modules_found from function signature and pass everything
   on return (Stefano)
 - Improved comment in handle_module_node

---
 xen/arch/arm/efi/efi-boot.h | 34 +++++++++++++++++++++++-----------
 xen/common/efi/boot.c       | 28 +++++++++++++++++++++++++---
 2 files changed, 48 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 8b88dd26a5..c3ae9751ab 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -702,6 +702,7 @@ static int __init allocate_module_file(EFI_FILE_HANDLE dir_handle,
  * This function checks for the presence of the xen,uefi-binary property in the
  * module, if found it loads the binary as module and sets the right address
  * for the reg property into the module DT node.
+ * Returns 1 if module is multiboot,module, 0 if not, < 0 on error
  */
 static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
                                      int module_node_offset,
@@ -730,8 +731,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
                                  &uefi_name_len);
 
     if ( !uefi_name_prop )
-        /* Property not found */
-        return 0;
+        /* Property not found, but signal this is a multiboot,module */
+        return 1;
 
     file_idx = get_module_file_index(uefi_name_prop, uefi_name_len);
     if ( file_idx < 0 )
@@ -795,19 +796,20 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
         }
     }
 
-    return 0;
+    return 1;
 }
 
 /*
  * This function checks for boot modules under the domU guest domain node
  * in the DT.
- * Returns 0 on success, negative number on error.
+ * Returns number of multiboot,module found or negative number on error.
  */
 static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
                                               int domain_node)
 {
     int module_node, addr_cells, size_cells, len;
     const struct fdt_property *prop;
+    unsigned int mb_modules_found = 0;
 
     /* Get #address-cells and #size-cells from domain node */
     prop = fdt_get_property(fdt, domain_node, "#address-cells", &len);
@@ -837,20 +839,22 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
                                      size_cells, true);
         if ( ret < 0 )
             return ret;
+
+        mb_modules_found += ret;
     }
 
-    return 0;
+    return mb_modules_found;
 }
 
 /*
  * This function checks for xen domain nodes under the /chosen node for possible
  * dom0 and domU guests to be loaded.
- * Returns the number of modules loaded or a negative number for error.
+ * Returns the number of multiboot modules found or a negative number for error.
  */
 static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
 {
     int chosen, node, addr_len, size_len;
-    unsigned int i = 0;
+    unsigned int i = 0, modules_found = 0;
 
     /* Check for the chosen node in the current DTB */
     chosen = setup_chosen_node(fdt, &addr_len, &size_len);
@@ -865,15 +869,23 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
           node > 0;
           node = fdt_next_subnode(fdt, node) )
     {
+        int ret;
+
         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
         {
             /* Found a node with compatible xen,domain; handle this node. */
-            if ( handle_dom0less_domain_node(dir_handle, node) < 0 )
+            ret = handle_dom0less_domain_node(dir_handle, node);
+            if ( ret < 0 )
                 return ERROR_DT_MODULE_DOMU;
         }
-        else if ( handle_module_node(dir_handle, node, addr_len, size_len,
-                                     false) < 0 )
+        else
+        {
+            ret = handle_module_node(dir_handle, node, addr_len, size_len,
+                                     false);
+            if ( ret < 0 )
                  return ERROR_DT_MODULE_DOM0;
+        }
+        modules_found += ret;
     }
 
     /* Free boot modules file names if any */
@@ -883,7 +895,7 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
         efi_bs->FreePool(modules[i].name);
     }
 
-    return modules_idx;
+    return modules_found;
 }
 
 static void __init efi_arch_cpu(void)
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 392ff3ac9b..112b7e7571 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
     CHAR16 *pathend, *ptr;
     EFI_STATUS ret;
 
+    /*
+     * Grub2 running on top of EDK2 has been observed to supply a NULL
+     * DeviceHandle. We can't use that to gain access to the filesystem.
+     * However the system can still boot if it doesn’t require access to the
+     * filesystem.
+     */
+    if ( !loaded_image->DeviceHandle )
+        return NULL;
+
     do {
         EFI_FILE_IO_INTERFACE *fio;
 
@@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
     EFI_STATUS ret;
     const CHAR16 *what = NULL;
 
+    if ( !dir_handle )
+        blexit(L"Error: No access to the filesystem");
     if ( !name )
         PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
     ret = dir_handle->Open(dir_handle, &FileHandle, name,
@@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
             EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
                                                        &file_name);
 
-            handle->Close(handle);
-            *argv = file_name;
+            if ( !handle )
+            {
+                PrintErr(L"Error retrieving image name: no filesystem access."
+                         L" Setting default to xen.efi");
+                PrintErr(newline);
+                *argv = L"xen.efi";
+            }
+            else
+            {
+                handle->Close(handle);
+                *argv = file_name;
+            }
         }
 
         name.s = get_value(&cfg, section.s, "options");
@@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
     /* Get the number of boot modules specified on the DT or an error (<0) */
     dt_modules_found = efi_check_dt_boot(dir_handle);
 
-    dir_handle->Close(dir_handle);
+    if ( dir_handle )
+        dir_handle->Close(dir_handle);
 
     if ( dt_modules_found < 0 )
         /* efi_check_dt_boot throws some error */
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:18:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221559.383330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midZb-0003zZ-NM; Thu, 04 Nov 2021 14:18:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221559.383330; Thu, 04 Nov 2021 14:18:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midZb-0003zS-KI; Thu, 04 Nov 2021 14:18:35 +0000
Received: by outflank-mailman (input) for mailman id 221559;
 Thu, 04 Nov 2021 14:18:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5OH1=PX=google.com=seanjc@srs-se1.protection.inumbo.net>)
 id 1midZa-0003yx-Mg
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:18:34 +0000
Received: from mail-pg1-x532.google.com (mail-pg1-x532.google.com
 [2607:f8b0:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16aade43-3d7a-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 15:18:34 +0100 (CET)
Received: by mail-pg1-x532.google.com with SMTP id q126so1590014pgq.13
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 07:18:33 -0700 (PDT)
Received: from google.com (157.214.185.35.bc.googleusercontent.com.
 [35.185.214.157])
 by smtp.gmail.com with ESMTPSA id c9sm4061004pgq.58.2021.11.04.07.18.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 07:18:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16aade43-3d7a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:in-reply-to;
        bh=GgU1oUsck/kv7V8rA9YPXtLGsU5UGF/lzeg6fggjKVY=;
        b=RTR1r+Ui0w7nUSHbbKl234uth/uzF1T7qF0sliOvvfsRTTb+Ux1LBt/ffQdTAY+/ec
         E1O0cYaxUcP9JJO91gsHWRMciPl/F1cyjYk822jBCR9TBPiuByHH3wQyg8CO0RsG69s3
         xxzxbxhqtVhFtR1IL3PwpUwYtMOSHDPFnwjUBiz3EACBzoEuXHLTOpHAkW6OfrqPvopQ
         XlcXyGEUw7b6wzkLr4K8OvDzbhOksbBNbi3EmpkiMJmFBXoGv87f+9auU+g0UJJslfkq
         YHd6yOra6jxs1gpwYkmD3+RM+zmhPNdO2qhY5Blp/Ql4/z42+YEAbgjAkELLYFLa2Wdb
         1tBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=GgU1oUsck/kv7V8rA9YPXtLGsU5UGF/lzeg6fggjKVY=;
        b=u8M8fa4mk6zCjB0cjZVCyTPDL/EFQcQw/Rzc+BOlGAYV9ZWqH2TWR4tcsZc0x0SCv/
         i5uLeQrQBCOUmqOFOntvvmNmkypsXH6+tCSYcmGhS7XVNURgNXTNIDN0xqs8rL9LiYbD
         wAfGI2aCkbXE6yH6wEiWYDYsh7SMN44F0ES7xHH6yEnNPbegBkLi95jGHmcK/IZrWy0h
         i1k3/d4YiRzCEPWSY9dh+Ic5IOoCwm2b98tY3v0E2DREEf+vCalB3RqEUhoBq6NfnJ/P
         PrE//Ys7QMbUrv2jrnwGBggmThJ6D6IbjlHe1OP5gzFer11e2QV1CsN3DyMQQrB8TC9A
         oqsA==
X-Gm-Message-State: AOAM531Tx0UwlzVKYkCfiBV5ioREGfFFS4VDIcGnwQxo6It00/AXkgxW
	ND+xm+GCzJoTQwKWife3NVFsZw==
X-Google-Smtp-Source: ABdhPJxdt1yraCn5ATAvpc1jCPrfM/2fIu0pWDknNbK+x2XDbxsbKhM1gzBOeaAuduFP4pk+NDgWGQ==
X-Received: by 2002:a65:5b01:: with SMTP id y1mr22260090pgq.451.1636035510920;
        Thu, 04 Nov 2021 07:18:30 -0700 (PDT)
Date: Thu, 4 Nov 2021 14:18:26 +0000
From: Sean Christopherson <seanjc@google.com>
To: Like Xu <like.xu.linux@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>, Will Deacon <will@kernel.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	James Morse <james.morse@arm.com>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org,
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Artem Kashkanov <artem.kashkanov@intel.com>,
	Zhu Lingshan <lingshan.zhu@intel.com>,
	Juergen Gross <jgross@suse.com>, Ingo Molnar <mingo@redhat.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Vincent Chen <deanbo422@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Greentime Hu <green.hu@gmail.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Marc Zyngier <maz@kernel.org>, Nick Hu <nickhu@andestech.com>,
	Guo Ren <guoren@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>
Subject: Re: [PATCH v3 01/16] perf: Ensure perf_guest_cbs aren't reloaded
 between !NULL check and deref
Message-ID: <YYPrst2CUBXLYc9h@google.com>
References: <20210922000533.713300-1-seanjc@google.com>
 <20210922000533.713300-2-seanjc@google.com>
 <77e3a76a-016b-8945-a1d5-aae4075e2147@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <77e3a76a-016b-8945-a1d5-aae4075e2147@gmail.com>

On Thu, Nov 04, 2021, Like Xu wrote:
> On 22/9/2021 8:05 am, Sean Christopherson wrote:
> > diff --git a/kernel/events/core.c b/kernel/events/core.c
> > index 464917096e73..80ff050a7b55 100644
> > --- a/kernel/events/core.c
> > +++ b/kernel/events/core.c
> > @@ -6491,14 +6491,21 @@ struct perf_guest_info_callbacks *perf_guest_cbs;
> >   int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
> >   {
> > -	perf_guest_cbs = cbs;
> > +	if (WARN_ON_ONCE(perf_guest_cbs))
> > +		return -EBUSY;
> > +
> > +	WRITE_ONCE(perf_guest_cbs, cbs);
> 
> So per Paolo's comment [1], does it help to use
> 	smp_store_release(perf_guest_cbs, cbs)
> or
> 	rcu_assign_pointer(perf_guest_cbs, cbs)
> here?

Heh, if by "help" you mean "required to prevent bad things on weakly ordered
architectures", then yes, it helps :-)  If I'm interpeting Paolo's suggestion
correctly, he's pointing out that oustanding stores to the function pointers in
@cbs need to complete before assigning a non-NULL pointer to perf_guest_cbs,
otherwise a perf event handler may see a valid pointer with half-baked callbacks.

I think smp_store_release() with a comment would be appropriate, assuming my
above interpretation is correct.

> [1] https://lore.kernel.org/kvm/37afc465-c12f-01b9-f3b6-c2573e112d76@redhat.com/
> 
> >   	return 0;
> >   }
> >   EXPORT_SYMBOL_GPL(perf_register_guest_info_callbacks);
> >   int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
> >   {
> > -	perf_guest_cbs = NULL;
> > +	if (WARN_ON_ONCE(perf_guest_cbs != cbs))
> > +		return -EINVAL;
> > +
> > +	WRITE_ONCE(perf_guest_cbs, NULL);
> > +	synchronize_rcu();
> >   	return 0;
> >   }
> >   EXPORT_SYMBOL_GPL(perf_unregister_guest_info_callbacks);
> > 


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:21:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:21:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221566.383341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midcB-0005Mr-55; Thu, 04 Nov 2021 14:21:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221566.383341; Thu, 04 Nov 2021 14:21:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midcB-0005Mk-1m; Thu, 04 Nov 2021 14:21:15 +0000
Received: by outflank-mailman (input) for mailman id 221566;
 Thu, 04 Nov 2021 14:21:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F6ik=PX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1midc9-0005MO-KO
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:21:13 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 756eef3c-3d7a-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 15:21:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 756eef3c-3d7a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636035672;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=f113rqIlyAAMQik7LwxK38LWV7J5b2q3y57sY3EZHOc=;
  b=X5+MUfWHXs7eUxq0o5AqzhgBJkE5ZDFcyBK4/aaL5VnqJqLgakshOTJf
   SHbSWDjP+RhrczRS2lS7WZCyX+iTkvfP0bNJ1w+Qh0XvyvAxLJklcr0Af
   5ArP68dwwJLLo1Z++C187HC6HiFg565hamPFSG4ofT8dDr1TUgofCHLVh
   U=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: btP4cNgu87rZpeILjyrlA/gpGzwyVIMKTg4Z0v5rH/h2gNu65dxmXEVQx2gIsj0/fBS1YopQBM
 E9hwc3xVLMUVHXo4+CS8Trf9z+g6w3wvOzFuJxYQbiaLT8U2pEHNaozWZ69zPhZbjq4IQ+kkqb
 A7RHMx0EMJX8S6eMfrBjX9sQ9SmkV7GtxjWDSQT5xxOFc6/u7xlC768gx/t0ch5S3bT0EwdKhl
 PFtDEfWlJDsFQ0DOJRg1BYeYm4UI6sooIZMU9fUcRQUUz/HnboI5qwvP46ZMBT42BcuNzC7xz2
 sr8nXrrhAQ6RQwHO4NkFxQrq
X-SBRS: 5.1
X-MesageID: 57105626
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:lDvqlKsPq+QaAAGzBlX6SAG/UefnVIhZMUV32f8akzHdYApBsoF/q
 tZmKTuFafrYZmf0LY8iPN+1800EuZPSy4VqHlQ6r3s8RHtE+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YThWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NpljcSrEyQVIbzwv6dGeDcEPQogI6xr9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258XRauAP
 ZRxhTxHMBb5OgJGHG8sV4M6h82jqV6vSGFFtwfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krW8mK8DhwEOdi3zTue7mnqluLJhTn8Wo8ZCPu/7PECqF+Zy3EXCRYWfUCmuvT/gUm7M++zM
 GRNpHBo9/JrshX2EJ+tBHVUvUJooDYkA8EKMNEl+T2qifH/zVq3LTYaTxNOPYlOWNANeRQm0
 VqAntXMDDNpsaGIRX/1yop4vQ9eKgBOczZcOHZsoR8tpoC6/dpt1k6nosNLSfbt1rXI9SfML
 ydmRcTUr5EaloY12qqy5jgraBr898GSHmbZCug6N19JDz+Vhqb5OORECnCBtJ6sybp1qHHb7
 BDofODEvYgz4WmlznDlfQn0NOjBCwy5GDPdm0VzOJIq6i6g/XWuFagJvmojdRk0ap9UI2e4C
 KM2he+3zMUDVJdNRfUmC79d9uxwlfSwfTgbfqmMBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WkPXWHr9VOdA9XRZX5bLivw/Fqmie4ClMOMEkqCuPLwKNnfIpgnq9PkfzP8
 G37UUhdoGcTT1WdQelTQnw8Or7pQ7hlqnc3YX4lMVqygiBxaoez9qYPMZAweOB/puBkyPd1S
 dgDetmBXasTGmiWpWxFYMmvtpFmeTSqmRmKY3ivbg8gcsMyXAfO4NLlIFfirXFcEiqtuMIii
 LS8zQeHE4EbTgFvAZ+OOvKixl+8p1YHn+d2UxeaK9VfYhy0ooNrNzbwnrk8JMRVcUfPwT6T1
 gC3BxYEpLaS/99poYeR3a3d9tWnCepzGEZeDlL317fuOHmI5HenzK9BTP2MIWLXWlTr9fjwf
 u5S1fz9bqEKxQ4Yr4pmHr935qsi/N+z9aRCxwFpEXiXPVSmDrRsfiuP0cVV7/Afw7ZYvU29W
 16V+8kcMrKMYZu3HFkULQsjT+KCyfBLxWWCsaVreB33tH1t4b6KcUROJB3d2iVSIYx8PJ4h3
 ep86tUd7Bayi0ZyP9uL5syOG79g8pDUv30bi6wn
IronPort-HdrOrdr: A9a23:LPfxU6PhpP0Fo8BcTsWjsMiBIKoaSvp037BN7TEXdfU1SL39qy
 nKpp8mPHDP5Ar5NEtOpTniAsm9qBHnm6KdiLN5Vd3OYOCMggqVBbAnwYz+wyDxXw3Sn9QtsJ
 uIqpIOa+EY22IK7/rH3A==
X-IronPort-AV: E=Sophos;i="5.87,209,1631592000"; 
   d="scan'208";a="57105626"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=f8lsnT4xOzwnfCusm/f2ozuimFNoRWD3ndSs/rmZsEGqYF6z9LFPeJlxv9e6/Uco5Tg+1WvMPyoBGsH3uAPiLhqkUeSfnGLgmRGNciiRF1FhCkGxgOrSnHd/GlxlLdpBDibI5jDqoQ2WThB0LmjJKKcmoWmF7tcTclDGvZOGMuZnzk5Rfouqgbi9gtIZ7FCUYmr8Ig8Ja3k8CvVSS2uljMKUPs4sE7WFySh19wdfnbp1XKsJ78Kc38i2t1TUe8wHPImwnzQ3rbiXS/4S1cmE/Lym6Y2KZ5TiB17LfRGG0iX3mh7mVMSOjSVU51STwEUpclos/bw0qczI6SteE7tLJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I470PyzyOWDbwozZat05vK0CLwjf8a8JYmNsm/kpx/I=;
 b=UdktcX2bIz5B1o8NECC1tg2h9sORR6pZLD33KfmMyL2ZVNduw+DAoOqjJAAjUnoJG95kHoY+YcUKvppzIy1xU8gUrlkDjb0QiHIu2diRDL3VvXMaN2c/ExydKe+LM0fDuG3L935wcQZ00KiqU1imV+tKdxBribEXDTmw0uByfcaHKLBpi0bKBkLb8KUSE8oIqBfyY8zZ4uMVLno0Cwiw3SnqIneV6QbnBcuJM84YglbG0G4RTdvt5qpnKR5E2+YjIsey/V6ciX/B4ZQJZGTN1/THGPxRqnaeigP/KAKytlLc6aYRIQQxOPGKaUXmMqNwuyMMPTPpPo5MaMNtUyxfuA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=I470PyzyOWDbwozZat05vK0CLwjf8a8JYmNsm/kpx/I=;
 b=qHJVokOE6DbkRldU7nE7bTouuVvm4o+cDVfiK6exO0nY7JMTy2BTcO8hRqawuLJVzd66892uaOmbBHKLzyZskkbjy2vsvKmG2O8AwCef4uelumSf8mKZA7mn7RZtWV+bEgxZUoEBMhhoo1p3Om0Ss+g+erWq3efhVS6BMeW6KFA=
Date: Thu, 4 Nov 2021 15:21:03 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<ian.jackson@citrix.com>
Subject: Re: [PATCH][4.16] x86/x2APIC: defer probe until after IOMMU ACPI
 table parsing
Message-ID: <YYPsT7wp0aWZapHU@Air-de-Roger>
References: <47392789-2f10-9de7-036d-b2345a24a028@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <47392789-2f10-9de7-036d-b2345a24a028@suse.com>
X-ClientProxiedBy: MR2P264CA0078.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::18) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7d225185-a263-40f1-c34b-08d99f9e5783
X-MS-TrafficTypeDiagnostic: DM8PR03MB6216:
X-Microsoft-Antispam-PRVS: <DM8PR03MB62161E52DAD55683C500427E8F8D9@DM8PR03MB6216.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1850;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: NB0aahffzl+rmqE1BH33jWhRI5mmjSWDdP3DK1VdPaYiORGfPzPzQJXZGnKlapT6BtVwqm/kXfxVCf4jhtql8aAf5BnThWFTazbWueeSA/3rRCXllf4RvL54ZdF5amrxqeFjUcJsFCHd7MUEyrSCJKBTadakvgt9M6fz5oE8FJ0HhOJe56Ez8ZZYcSrzGv8kewS/gsmOuTO6JvJul3gI4SHEDQdbz3bK3iRgw8Mn+9ImbpBrbJTgc+Azb1hUxdlRl2DDn4B7skmRegLMXyFa7AtoCDw6ZKzQYYh8S8tPPF8vUKbqszAzSNEDAly06LfKnPooH6zXNFrnRsweHwFE6M90Q9CYgDx6dC3WyxGlJZU6KgboV1BXaCVLk5pY+FbnkMiq95ASdL+ebsYOfMTdvrk4jHsE+0tVHSlxQD4E0XYcaW9szZmtJKXlD8G5gVU3l/Bhaqi0lnlWSDDX7uzhKsNrlYOssLuacf3SimBPaarT9Evgm9edkqVYAzucoaYEbEAekYEc0mIZuTnY+LD1adttw8VfhsTg4vlQkz84jnHesD1hIp3cNSCP/5pa4Ny9f41jsaZ0tAN4woULB7lwU5gLiodDKd7Zn1zx3+FMvnpk551KIOhDu3Fabq7hUfoJTlE/9mB1yrv0W0Wcq1iSUw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(82960400001)(2906002)(66946007)(6486002)(508600001)(5660300002)(316002)(6666004)(107886003)(38100700002)(186003)(83380400001)(4744005)(956004)(26005)(66476007)(66556008)(8676002)(33716001)(6496006)(9686003)(4326008)(86362001)(6916009)(85182001)(54906003)(8936002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?L2U5OVFvaTh4TkhCQ1ZwMGJ1ZFBLMUVJVXdRUEZXTm0yZTJZK0FqNEtCektN?=
 =?utf-8?B?YzBJWmVTQm0wVnlvUFQrc0E3WW5ycGtORnkza3hlQ3hpME9iTEE2ZzdsaXhp?=
 =?utf-8?B?UE5BSHlLcVNVY0hrbkp2NmdxOXdOQUxKb0xnQ0UydFE2T1Q0YTQ4T1FDNExp?=
 =?utf-8?B?RzFwc3BIeHVRVXIwY1Y2dzF2SVJjSEFyb0Q3NldvdG42cW10dHFmeXVtVjI4?=
 =?utf-8?B?L2dQamNmZHdiTHVHWXVaeWVTRWlGRGt3b00rUjFIL1hoQmpvdEhpUTZ4UW5J?=
 =?utf-8?B?c2QzTzVsWEFMbFRUOFNOSzVUbERIOEw1TEtKQnNvaUlpMUlLRkVxN1VmWUdZ?=
 =?utf-8?B?VUY1enY1dTlGdkFjWG9hMlBJRHl3eW8zeWNDUkxYSzNxZmc3R2NhUnVkSmFn?=
 =?utf-8?B?bm1IT256T09RY2syYXpGZVJ4ZUlzZVNYL1pld29STVhmNCtkc3hpZVFMcWJh?=
 =?utf-8?B?NnRURG9iejRrcXQxekhkWUg1T1RxOFZoVEJZQjMvRkFZVGNKeXhpTDRvT2xZ?=
 =?utf-8?B?ZWU0RTZ3cWRCeG9TVEFWU2JuM1lDcjNrWm9XakxISmRWVjFvVkQyM09jTTh6?=
 =?utf-8?B?aEFweDIrQ1dYSGhlY2wyclN6UXE5UXVJVmY4R0FheTZkQTMrOVpqeGl5NXRX?=
 =?utf-8?B?bnBSaisxNzAweGRaY3ZjQWtZQ1lVWEtuOFk3ekNFbHJxMjlkZmo3OThRTWJn?=
 =?utf-8?B?ZlZoWDVKUW9lT0lTd0lSUEZxRThtUnZNdm9QRzRRN3oyQjF3SGlHT3QzdTdr?=
 =?utf-8?B?ejdVRGtRSlJzZURXK3FmRFpiTENyeW5jc2h4V09tVXhTdkVWdXE1MHhZR0Fs?=
 =?utf-8?B?L3R6bFduZVRIYTJlbUZsSG91U1ZtdEN0U1lKTWxnNDVRN1doK3BOVHgwMUov?=
 =?utf-8?B?UGU5WjM4VDV4bnNYRUszYVZPR1ZMRERxWnVyMmFMK21jL055c2NtOXIzdGhv?=
 =?utf-8?B?Z1RLa2tKS293ZG53MXltbU1ydTQ3eTJxdS91Rm9wRnV6cUM4R3B2LzErU3M0?=
 =?utf-8?B?NW1YdXJyY0RzUGh0QXZudE9ZMDhzM3BDNEdyVTJKSWRFUXRYMmUyL2lLWm9i?=
 =?utf-8?B?d1M0ODhFMkhRZWlqOE0vOVB0eUV3RGxQOHhEaDVuWnBhZEFTUy8vNXhjQ2RH?=
 =?utf-8?B?K1o4SDlWUXZRY3RvT2ZWUW5HaCsyVUN3WGZqODk3a3Rma083d2hrMlh1dlRm?=
 =?utf-8?B?amY3MC9UdHdQUHJ0OS9kaDRCcTRWZkNHQzRKbTBkUlkrUUFSWWlHNmM1eGIw?=
 =?utf-8?B?UklKbTA4Q0FWTjRPZUxLVnpZWERkT0tzK2h1SWdtOS9BbFdIb0J2bTNkdjcr?=
 =?utf-8?B?Q25sVWowd1RTU25Ya1BXekppbG8wZVdLUWM0NXdwTDNLb2tqdWJTVjVLWHNS?=
 =?utf-8?B?U0tzMlFFU2lWYndkU1BGNzNyRmhJTHRZZXFVT2tDekpnSFphZTlkakkxOXFH?=
 =?utf-8?B?ZnFwcGJzaUsyMFVkdnVKMGtMYUQ1WGNTMkdnc1dOR01zTnlFcGFDWlR1a21D?=
 =?utf-8?B?WlB3SEZqWklkVk11ZEZPenBuMTRra0wyVFJseE93Wm5DUkZwYlU5OWM1TFFl?=
 =?utf-8?B?QU80VUxnQmRQWlVZazlhakREWXA3eUxtbmFWUkkyd3N1aks5L3RIWFV5WFZK?=
 =?utf-8?B?N0c3QXUzYXFHUmhteld2VjRzT1RNTjhRallIbnQvdUlWL3Y5ZldGNGp2ZThV?=
 =?utf-8?B?cC95TVVDZmNmRExhZk5Wb0FsU0p4QjhXeWgxK2hhb1NQQWpPcGtQQ0ViQXpX?=
 =?utf-8?B?cDZCTzVreDRwem9NcDA0Y1ZlSHZGWHNLRmxyemZjWDhMZXZDRk1CWldvbEpS?=
 =?utf-8?B?dk5sd1FDNVo2dGY5eEtleGk5K1FVRTFPSzgvRTNkbnpGNDFNNGNKaC9xa1ox?=
 =?utf-8?B?eWlMRlQyNENaaThpQ0x0aDZadXdCb2RvaitDM1ZiUU1wZ3Q0am1YeGxDWDNX?=
 =?utf-8?B?UTN1LzFKdmJ2d3FyMEIybXBSdjJtVXgvQ3ZuankvZWV3d2FoemdITXF0cnBC?=
 =?utf-8?B?cmtUeFRwZW5lYnd3Vk1sMjd2SUFDNk5JcExVOHhZUlpteFdXakRvQnZCbTND?=
 =?utf-8?B?RzhhbnhkV1hpcURPT3lHSlFDcWR6ODdJNDc4UXRWcHoxK2xPSWR1RkZmVGN6?=
 =?utf-8?B?QWRCZkcyVG9iVG5OTDl0TU94VlUreStTTkZQV1BYNk1CVHYraW5GeUV0WktQ?=
 =?utf-8?Q?yrF1ja7D9S06OpjWI+CUVx0=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d225185-a263-40f1-c34b-08d99f9e5783
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 14:21:07.2692
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QXDP4UE/R3A7RJghJswdmEz0/5c+4eVw008a9btguPBj9BzTIO6uJaMV61q4jdtPRJVksgTZ8EWqguVTUCPTrA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6216
X-OriginatorOrg: citrix.com

On Wed, Nov 03, 2021 at 03:40:55PM +0100, Jan Beulich wrote:
> While commit XXXXXXXXXXXX ("x86/IOMMU: mark IOMMU / intremap not in use
> when ACPI tables are missing") deals with apic_x2apic_probe() as called
> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
> affected: The call needs to occur after acpi_boot_init() (which is what
> calls acpi_iommu_init()), such that iommu_intremap getting disabled
> there can be properly taken into account by apic_x2apic_probe().
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

LGTM. I cannot find any dependency between acpi_boot_init and having
initialized the apic.

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:34:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:34:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221574.383352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midoM-0006sO-EG; Thu, 04 Nov 2021 14:33:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221574.383352; Thu, 04 Nov 2021 14:33:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midoM-0006sH-Ax; Thu, 04 Nov 2021 14:33:50 +0000
Received: by outflank-mailman (input) for mailman id 221574;
 Thu, 04 Nov 2021 14:33:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/P4=PX=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1midoL-0006sB-NB
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:33:49 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20609.outbound.protection.outlook.com
 [2a01:111:f400:7d00::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38af737c-3d7c-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 15:33:48 +0100 (CET)
Received: from AM6PR04CA0036.eurprd04.prod.outlook.com (2603:10a6:20b:92::49)
 by AM0PR08MB5409.eurprd08.prod.outlook.com (2603:10a6:208:183::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Thu, 4 Nov
 2021 14:33:40 +0000
Received: from VE1EUR03FT021.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:92:cafe::e8) by AM6PR04CA0036.outlook.office365.com
 (2603:10a6:20b:92::49) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Thu, 4 Nov 2021 14:33:40 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT021.mail.protection.outlook.com (10.152.18.117) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Thu, 4 Nov 2021 14:33:39 +0000
Received: ("Tessian outbound 7129402754f2:v108");
 Thu, 04 Nov 2021 14:33:39 +0000
Received: from 2b48cd86b889.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 2E818B6B-30FA-4B7C-AEA3-BB54E7F2C4A2.1; 
 Thu, 04 Nov 2021 14:33:27 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2b48cd86b889.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 04 Nov 2021 14:33:27 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB3781.eurprd08.prod.outlook.com (2603:10a6:20b:8b::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Thu, 4 Nov
 2021 14:33:25 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4649.020; Thu, 4 Nov 2021
 14:33:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38af737c-3d7c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=F8g4gSFdJxtTKrNYV8AE29t1FkdgwzcgIVnXIkFhPH8=;
 b=i7OTrHEFUIoMrEpMKYtHi8g4ndTJ9SIux9iNa2dA1MdCLGA7nbQEjB29kNdkQgAK1jDdSpaL2qARUC0p3Kl+HcLQxe4/ZiKac8XwCol8lePyqH2FBZOGZrwEHXGP91gxoW4QThBKN7pxXyLTL+z3YsNGJszFCjbWncmJPrulLp4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 3363e24ea6acba01
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Tqqs2g7d/m9fyf80rDASB2U6RSh+TmZRYvpUzIBXufVEC2q/S91qd43RXT+xGs9k2Gq7KW9ckrd38vQwydgHXEzjKWFSIVUSZ2fPVmgn+yoPZsCK40XicJl6u9M8UAv9uAVv6fo8Y6zFzIBRbmKTz0R/l680JnHAG1MsnS2Jzm1oXnOQ0zSSBbA1dQzLm3pXheHpgCS4L3sBpe8GUta7HBQHV+Wjq9CSC4qvGT4oMwQhYP4l8G/3F3jHxcCH/RkNCaSk0PCFc+iK1MY1zGZ/Vat7PXsdBVuO+yivd2O+z40eU0aNoXCZM/1Sd+cRs/5dzIYMHc6VZA93AGXDekOQlw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F8g4gSFdJxtTKrNYV8AE29t1FkdgwzcgIVnXIkFhPH8=;
 b=ksVGWZiNJdJU+pTHOqbGNAMHnq6TcRY7tnpe6FR3pnf0n5CbRuQcM3vhyY57hLT82JKm988wgrfzENAw6kjICmfhtAumi6BxJJqf2pYBOYKoFAenx/qEg0RpDjRvBE0Gm2lo3FckpGnB9nL69YZbNrzi3RwSx2hE28qoUntkzafDh2r5KwjM/qlk6umRQec+0ZvJGVpqfftrVrfB1QR3YsXwn7H+y0mbJWgHvqmwwDsSLCIY9oAdYgiEb1AQUHWhKCs0jKkx8TlR3FrF5QQ6M6t2tThvEvx31wWK7MeqUgXqQqaPnoVxyauhutWW0mIxstmquGHXAjMTtuTtitvlRw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=F8g4gSFdJxtTKrNYV8AE29t1FkdgwzcgIVnXIkFhPH8=;
 b=i7OTrHEFUIoMrEpMKYtHi8g4ndTJ9SIux9iNa2dA1MdCLGA7nbQEjB29kNdkQgAK1jDdSpaL2qARUC0p3Kl+HcLQxe4/ZiKac8XwCol8lePyqH2FBZOGZrwEHXGP91gxoW4QThBKN7pxXyLTL+z3YsNGJszFCjbWncmJPrulLp4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Wei
 Chen <Wei.Chen@arm.com>, "iwj@xenproject.org" <iwj@xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Thread-Topic: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Thread-Index: AQHX0YY96HVobluxaEWY0Nw7Qq/BvavzbswA
Date: Thu, 4 Nov 2021 14:33:25 +0000
Message-ID: <C2BF5877-AA78-4592-AE76-AFCFE352775F@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
In-Reply-To: <20211104141206.25153-1-luca.fancellu@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: c4c26263-dba1-40bd-f00e-08d99fa017f7
x-ms-traffictypediagnostic: AM6PR08MB3781:|AM0PR08MB5409:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB5409749C996E49FD723263269D8D9@AM0PR08MB5409.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:248;OLM:248;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 D1yNWG6bjbftaFzywVlUE+PDsgbIIrbxLFdIa7V6Y6etM59BFmcgiiy5sejm07djwUbGrDicGItPDxRcsZfQycYHEydVfMpZ4ZxJa07kWZvrBoNEBpU2Ghd9/snHkVmP9qj/zrmzx0FtMnrXso3GiymB7h482xTrOHh5emOWU0aDLyY1+XL5ybnOeM/NWnFRHn6M3/kHeMQddPWrzpXaagOE0OhjoYwiuPFKpiCNN4QoC13u+k0DVUOgNunx4s7GBp3zobYdgOzxVEa73bEhy8ATYsP0Gc+ily0QSKw1l/RlDxHsS0je0XxhZnU4AG/wB8WvnwxIdGxy+9psvAXKfvyy4ni9iiH0XqEqAGgAOUUzX9ZDZwmkPlkgXKQ+iRG6erFn1KZkt4xt5rJEvRLe/+eIagvFyiJy0LeHA9+omIDp3jMgHAsKLZHgUkff9djv+T47Yn3jLluzEWVP9qZ7YtIKbw50LNyI637Wxg0aCOYddEWI3+lGJej7dX5qsFbhp7A18Kp9NMkLlDr9h0BXJe2DPcNJVU9kS+5pBpwb2i8Dtb+V6Nxjk5jQjc+kHeECM/XGLMpTH+anDKAkpkssUJG3vjbkNPGaPnvqHQ3ErcKzPhYqf6eYmiigtA30Iq4QIElyV4Ot23I/F8G5rrQtbCaMZ6WZ113fAeX8JLgsoEYYUKvSdq1Mma4Uffu9uvh8Ov2yAgs0NvJYShH1qb78V4ZWu5fvoq6gnP0LS3cWpv63wP5boj0MnLjnCo4lHRHP
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66446008)(508600001)(66946007)(122000001)(83380400001)(8676002)(66556008)(91956017)(6862004)(64756008)(76116006)(86362001)(6636002)(37006003)(38070700005)(53546011)(186003)(66476007)(54906003)(38100700002)(26005)(6486002)(6506007)(316002)(5660300002)(2616005)(33656002)(8936002)(6512007)(71200400001)(4326008)(36756003)(2906002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <ADDFC3252DD1904C96D8AB4A4736346F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3781
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT021.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	583dd2e7-2ef0-4585-4e29-08d99fa00f71
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	n5RjEYXiaSyZFg8r8brVjjy5uXD0TAitFWgPvtgd9OTinqay69U+ysmMJAxnx97bnIH65ByNJjLqW2l3Pc9xHCCz4YFtDhqDuWv5PxUdbMclT5OHf0kSHTtElM61+9t5xEw/Li90qXlaiF/o5joX4ZD4cCTICTEwPmo87LkyJ2kqpvJfGAPxD15awSSLQLFyRQ5bO9vKGc9m9ph/dqNju7brAppCEM3bOhlNFYziuzZjqxIxV3DVOBvl5sCXdgXYbfjVaXzYSJzQxQQ/n7guQt6E9ncOlmqPhPutSzJ3gBEbc34wmhJIaN39wrkIoFPSUZ20b1u13XVqwdVKodFR6BI5f5XUZugg6mrX86V2M9nU2PcYRhSoORT4gh1T3JEefMA2DdIyCJ4tm5P1H3jHUJ4+9mWkmUyGjAd7L/JYqyergRzqMDSHrUWWorNn1d8aJwXwAa7cKAxfYFqaOZvPeRF5tp/CevJbhNo0dZj61HvThiVaOLzPnphu+Mrtpltbk9PdWuYVQOAqN9urpuYtmlAc2LW8KiN+N7/EpuNMVoEcbimbiqcEZEhbtHjsggUhymhRx1MqXH65zt6ricjILX+FKN+ci3boja4MEn+nHkbr666tMTPahMs5FOBvEr+RqKZvn1hjiQgHOCRzmryoNoVzHQaZJpluaVr9JKdI4z9lW0bDyUAy+H0g78UtneAKjv3OH0QSBY9lt584ESJLfw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(36756003)(6486002)(2906002)(26005)(82310400003)(5660300002)(33656002)(86362001)(6636002)(8676002)(336012)(83380400001)(70586007)(6506007)(107886003)(8936002)(53546011)(54906003)(37006003)(356005)(4326008)(6862004)(6512007)(508600001)(70206006)(47076005)(2616005)(316002)(81166007)(186003)(36860700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 14:33:39.3925
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c4c26263-dba1-40bd-f00e-08d99fa017f7
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT021.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5409

SGkgTHVjYSwNCg0KPiBPbiA0IE5vdiAyMDIxLCBhdCAxNDoxMiwgTHVjYSBGYW5jZWxsdSA8THVj
YS5GYW5jZWxsdUBhcm0uY29tPiB3cm90ZToNCj4gDQo+IFRoZSBjb2RlIGludHJvZHVjZWQgYnkg
Y29tbWl0IGExNzQzZmMzYTlmZTliNjhjMjY1YzQ1MjY0ZGRkZjIxNGZkOWI4ODINCj4gKCJhcm0v
ZWZpOiBVc2UgZG9tMGxlc3MgY29uZmlndXJhdGlvbiB3aGVuIHVzaW5nIEVGSSBib290IikgaXMN
Cj4gaW50cm9kdWNpbmcgYSBwcm9ibGVtIHRvIGJvb3QgWGVuIHVzaW5nIEdydWIyIG9uIEFSTSBt
YWNoaW5lIHVzaW5nIEVESzIuDQo+IA0KPiBEZXNwaXRlIFVFRkkgc3BlY2lmaWNhdGlvbiwgRURL
MitHcnViMiBpcyByZXR1cm5pbmcgYSBOVUxMIERldmljZUhhbmRsZQ0KPiBpbnNpZGUgdGhlIGlu
dGVyZmFjZSBnaXZlbiBieSB0aGUgTE9BREVEX0lNQUdFX1BST1RPQ09MIHNlcnZpY2UsIHRoaXMN
Cj4gaGFuZGxlIGlzIHVzZWQgbGF0ZXIgYnkgZWZpX2JzLT5IYW5kbGVQcm90b2NvbCguLi4pIGlu
c2lkZQ0KPiBnZXRfcGFyZW50X2hhbmRsZSguLi4pIHdoZW4gcmVxdWVzdGluZyB0aGUgU0lNUExF
X0ZJTEVfU1lTVEVNX1BST1RPQ09MDQo+IGludGVyZmFjZSwgY2F1c2luZyBYZW4gdG8gc3RvcCB0
aGUgYm9vdCBiZWNhdXNlIG9mIGFuIEVGSV9JTlZBTElEX1BBUkFNRVRFUg0KPiBlcnJvci4NCj4g
DQo+IEJlZm9yZSB0aGUgY29tbWl0IGFib3ZlLCB0aGUgZnVuY3Rpb24gd2FzIG5ldmVyIGNhbGxl
ZCBiZWNhdXNlIHRoZQ0KPiBsb2dpYyB3YXMgc2tpcHBpbmcgdGhlIGNhbGwgd2hlbiB0aGVyZSB3
ZXJlIG11bHRpYm9vdCBtb2R1bGVzIGluIHRoZQ0KPiBEVCBiZWNhdXNlIHRoZSBmaWxlc3lzdGVt
IHdhcyBuZXZlciB1c2VkIGFuZCB0aGUgYm9vdGxvYWRlciBoYWQNCj4gcHV0IGluIHBsYWNlIGFs
bCB0aGUgcmlnaHQgbW9kdWxlcyBpbiBtZW1vcnkgYW5kIHRoZSBhZGRyZXNzZXMNCj4gaW4gdGhl
IERULg0KPiANCj4gVG8gZml4IHRoZSBwcm9ibGVtIHdlIGFsbG93IHRoZSBnZXRfcGFyZW50X2hh
bmRsZSguLi4pIGZ1bmN0aW9uIHRvDQo+IHJldHVybiBhIE5VTEwgaGFuZGxlIG9uIGVycm9yIGFu
ZCB3ZSBjaGVjayB0aGUgdXNhZ2Ugb2YgdGhlIGZ1bmN0aW9uDQo+IHRvIGhhbmRsZSB0aGUgbmV3
IHVzZSBjYXNlLiBUaGUgZnVuY3Rpb24gaW4gZmFjdCBzaG91bGQgbm90IHByZXZlbnQNCj4gdGhl
IGJvb3QgZXZlbiBpZiB0aGUgZmlsZXN5c3RlbSBjYW4ndCBiZSB1c2VkLCBiZWNhdXNlIHRoZSBE
VCBhbmQNCj4gdGhlIG1vZHVsZXMgY291bGQgYmUgcHV0IGluIHBsYWNlIGJ5IHRoZSBib290bG9h
ZGVyIGJlZm9yZSBydW5uaW5nDQo+IFhlbiBhbmQgaWYgeGVuLHVlZmktYmluYXJ5IHByb3BlcnR5
IGlzIG5vdCB1c2VkLCB0aGVyZSBpcyBubyBuZWVkDQo+IGZvciB0aGUgZmlsZXN5c3RlbS4NCj4g
DQo+IEFub3RoZXIgcHJvYmxlbSBpcyBmb3VuZCB3aGVuIHRoZSBVRUZJIHN0dWIgdHJpZXMgdG8g
Y2hlY2sgaWYgRG9tMA0KPiBpbWFnZSBvciBEb21VcyBhcmUgcHJlc2VudC4NCj4gVGhlIGxvZ2lj
IGRvZXNuJ3Qgd29yayB3aGVuIHRoZSBVRUZJIHN0dWIgaXMgbm90IHJlc3BvbnNpYmxlIHRvIGxv
YWQNCj4gYW55IG1vZHVsZXMsIHNvIHRoZSBlZmlfY2hlY2tfZHRfYm9vdCguLi4pIHJldHVybiB2
YWx1ZSBpcyBtb2RpZmllZA0KPiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBtdWx0aWJvb3QgbW9k
dWxlIGZvdW5kIGFuZCBub3Qgb25seSB0aGUgbnVtYmVyDQo+IG9mIG1vZHVsZSBsb2FkZWQgYnkg
dGhlIHN0dWIuDQo+IFRha2luZyB0aGUgb2NjYXNpb24gdG8gdXBkYXRlIHRoZSBjb21tZW50IGlu
IGhhbmRsZV9tb2R1bGVfbm9kZSguLi4pDQo+IHRvIGV4cGxhaW4gd2h5IHdlIHJldHVybiBzdWNj
ZXNzIGV2ZW4gaWYgeGVuLHVlZmktYmluYXJ5IGlzIG5vdCBmb3VuZC4NCj4gDQo+IEZpeGVzOiBh
MTc0M2ZjM2E5ICgiYXJtL2VmaTogVXNlIGRvbTBsZXNzIGNvbmZpZ3VyYXRpb24gd2hlbiB1c2lu
ZyBFRkkgYm9vdCIpDQo+IFNpZ25lZC1vZmYtYnk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2Vs
bHVAYXJtLmNvbT4NClJldmlld2VkLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJx
dWlzQGFybS5jb20+DQoNClRoYW5rcyBmb3IgdGhlIGRldGFpbGVkIGV4cGxhbmF0aW9uIGFuZCB0
ZXN0aW5nIGFsbCB0aG9zZSBjb25maWd1cmF0aW9ucy4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQoN
Cj4gDQo+IC0tLQ0KPiBKdXN0aWZpY2F0aW9uIGZvciBpbnRlZ3JhdGlvbiBpbiA0LjE2Og0KPiBV
cHNpZGU6IGFsbG93IGJvb3RpbmcgeGVuIGZyb20gZ3J1YiBvbiBhcm02NCB3aGVuIHRoZSBzdHVi
IGRvZXNuJ3QgbG9hZA0KPiAgICAgICAgYW55IG1vZHVsZS4NCj4gRG93bnNpZGU6IEl0J3MgYWZm
ZWN0aW5nIHRoZSBFRkkgYm9vdCBwYXRoLg0KPiBSaXNrOiBJdCdzIG5vdCBhZmZlY3RpbmcgeDg2
IGFyY2ggdGhhdCB3b3JrcyB0aGUgc2FtZSB3YXkgYXMgYmVmb3JlLg0KPiAgICAgIElmIHNvbWV0
aGluZyBpcyB3cm9uZyBpdCBjcmVhdGVzIGEgcHJvYmxlbSBvbiBlYXJseSBib290IGFuZCBub3Qg
YXQNCj4gICAgICBydW50aW1lLCBzbyByaXNrIGlzIGxvdy4NCj4gDQo+IFRlc3RlZCBpbiB0aGlz
IGNvbmZpZ3VyYXRpb25zOg0KPiAtIEJvb3Rsb2FkZXIgbG9hZHMgbW9kdWxlcyBhbmQgc3BlY2lm
eSB0aGVtIGFzIG11bHRpYm9vdCBtb2R1bGVzIGluIERUOg0KPiAgICogY29tYmluYXRpb24gb2Yg
RG9tMCwgRG9tVXMsIERvbTAgYW5kIERvbVVzDQo+IC0gRFQgc3BlY2lmaWVzIG11bHRpYm9vdCBt
b2R1bGVzIGluIERUIHVzaW5nIHhlbix1ZWZpLWJpbmFyeSBwcm9wZXJ0eToNCj4gICAqIGNvbWJp
bmF0aW9uIG9mIERvbTAsIERvbVVzLCBEb20wIGFuZCBEb21Vcw0KPiAtIEJvb3Rsb2FkZXIgbG9h
ZHMgYSBEb20wIG1vZHVsZSBhbmQgYXBwZW5kcyBpdCBhcyBtdWx0aWJvb3QgbW9kdWxlIGluIERU
LA0KPiAgIG90aGVyIG11bHRpYm9vdCBtb2R1bGVzIGFyZSBsaXN0ZWQgZm9yIERvbVVzIHVzaW5n
IHhlbix1ZWZpLWJpbmFyeQ0KPiAtIE5vIG11bHRpYm9vdCBtb2R1bGVzIGluIERUIGFuZCBubyBr
ZXJuZWwgZW50cnkgaW4gY2ZnIGZpbGU6DQo+ICAgKiBwcm9wZXIgZXJyb3IgdGhyb3duDQo+IA0K
PiBDaGFuZ2VzIGluIHYyOg0KPiAtIENoYW5nZWQgY29tbWVudCBvbiBEZXZpY2VIYW5kbGUgTlVM
TCAoSmFuKQ0KPiAtIFJlbW92ZWQgZmF0YWwgY29uZGl0aW9uIG9uIGhhbmRsZSBOVUxMIChKYW4p
DQo+IC0gQWRkIG1vcmUgaW5mbyBhYm91dCB0aGUgRURLMitHcnViMiBpc3N1ZSB0byB0aGUgY29t
bWl0IG1zZyAoSmFuKQ0KPiAtIFJlbW92ZWQgbW9kdWxlc19mb3VuZCBmcm9tIGZ1bmN0aW9uIHNp
Z25hdHVyZSBhbmQgcGFzcyBldmVyeXRoaW5nDQo+ICAgb24gcmV0dXJuIChTdGVmYW5vKQ0KPiAt
IEltcHJvdmVkIGNvbW1lbnQgaW4gaGFuZGxlX21vZHVsZV9ub2RlDQo+IA0KPiAtLS0NCj4geGVu
L2FyY2gvYXJtL2VmaS9lZmktYm9vdC5oIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKystLS0t
LS0tLS0tLQ0KPiB4ZW4vY29tbW9uL2VmaS9ib290LmMgICAgICAgfCAyOCArKysrKysrKysrKysr
KysrKysrKysrKysrLS0tDQo+IDIgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMTQg
ZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2VmaS9lZmktYm9v
dC5oIGIveGVuL2FyY2gvYXJtL2VmaS9lZmktYm9vdC5oDQo+IGluZGV4IDhiODhkZDI2YTUuLmMz
YWU5NzUxYWIgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9lZmkvZWZpLWJvb3QuaA0KPiAr
KysgYi94ZW4vYXJjaC9hcm0vZWZpL2VmaS1ib290LmgNCj4gQEAgLTcwMiw2ICs3MDIsNyBAQCBz
dGF0aWMgaW50IF9faW5pdCBhbGxvY2F0ZV9tb2R1bGVfZmlsZShFRklfRklMRV9IQU5ETEUgZGly
X2hhbmRsZSwNCj4gICogVGhpcyBmdW5jdGlvbiBjaGVja3MgZm9yIHRoZSBwcmVzZW5jZSBvZiB0
aGUgeGVuLHVlZmktYmluYXJ5IHByb3BlcnR5IGluIHRoZQ0KPiAgKiBtb2R1bGUsIGlmIGZvdW5k
IGl0IGxvYWRzIHRoZSBiaW5hcnkgYXMgbW9kdWxlIGFuZCBzZXRzIHRoZSByaWdodCBhZGRyZXNz
DQo+ICAqIGZvciB0aGUgcmVnIHByb3BlcnR5IGludG8gdGhlIG1vZHVsZSBEVCBub2RlLg0KPiAr
ICogUmV0dXJucyAxIGlmIG1vZHVsZSBpcyBtdWx0aWJvb3QsbW9kdWxlLCAwIGlmIG5vdCwgPCAw
IG9uIGVycm9yDQo+ICAqLw0KPiBzdGF0aWMgaW50IF9faW5pdCBoYW5kbGVfbW9kdWxlX25vZGUo
RUZJX0ZJTEVfSEFORExFIGRpcl9oYW5kbGUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgbW9kdWxlX25vZGVfb2Zmc2V0LA0KPiBAQCAtNzMwLDggKzczMSw4IEBA
IHN0YXRpYyBpbnQgX19pbml0IGhhbmRsZV9tb2R1bGVfbm9kZShFRklfRklMRV9IQU5ETEUgZGly
X2hhbmRsZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnVlZmlfbmFtZV9s
ZW4pOw0KPiANCj4gICAgIGlmICggIXVlZmlfbmFtZV9wcm9wICkNCj4gLSAgICAgICAgLyogUHJv
cGVydHkgbm90IGZvdW5kICovDQo+IC0gICAgICAgIHJldHVybiAwOw0KPiArICAgICAgICAvKiBQ
cm9wZXJ0eSBub3QgZm91bmQsIGJ1dCBzaWduYWwgdGhpcyBpcyBhIG11bHRpYm9vdCxtb2R1bGUg
Ki8NCj4gKyAgICAgICAgcmV0dXJuIDE7DQo+IA0KPiAgICAgZmlsZV9pZHggPSBnZXRfbW9kdWxl
X2ZpbGVfaW5kZXgodWVmaV9uYW1lX3Byb3AsIHVlZmlfbmFtZV9sZW4pOw0KPiAgICAgaWYgKCBm
aWxlX2lkeCA8IDAgKQ0KPiBAQCAtNzk1LDE5ICs3OTYsMjAgQEAgc3RhdGljIGludCBfX2luaXQg
aGFuZGxlX21vZHVsZV9ub2RlKEVGSV9GSUxFX0hBTkRMRSBkaXJfaGFuZGxlLA0KPiAgICAgICAg
IH0NCj4gICAgIH0NCj4gDQo+IC0gICAgcmV0dXJuIDA7DQo+ICsgICAgcmV0dXJuIDE7DQo+IH0N
Cj4gDQo+IC8qDQo+ICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGZvciBib290IG1vZHVsZXMgdW5k
ZXIgdGhlIGRvbVUgZ3Vlc3QgZG9tYWluIG5vZGUNCj4gICogaW4gdGhlIERULg0KPiAtICogUmV0
dXJucyAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIG51bWJlciBvbiBlcnJvci4NCj4gKyAqIFJldHVy
bnMgbnVtYmVyIG9mIG11bHRpYm9vdCxtb2R1bGUgZm91bmQgb3IgbmVnYXRpdmUgbnVtYmVyIG9u
IGVycm9yLg0KPiAgKi8NCj4gc3RhdGljIGludCBfX2luaXQgaGFuZGxlX2RvbTBsZXNzX2RvbWFp
bl9ub2RlKEVGSV9GSUxFX0hBTkRMRSBkaXJfaGFuZGxlLA0KPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRvbWFpbl9ub2RlKQ0KPiB7DQo+ICAgICBp
bnQgbW9kdWxlX25vZGUsIGFkZHJfY2VsbHMsIHNpemVfY2VsbHMsIGxlbjsNCj4gICAgIGNvbnN0
IHN0cnVjdCBmZHRfcHJvcGVydHkgKnByb3A7DQo+ICsgICAgdW5zaWduZWQgaW50IG1iX21vZHVs
ZXNfZm91bmQgPSAwOw0KPiANCj4gICAgIC8qIEdldCAjYWRkcmVzcy1jZWxscyBhbmQgI3NpemUt
Y2VsbHMgZnJvbSBkb21haW4gbm9kZSAqLw0KPiAgICAgcHJvcCA9IGZkdF9nZXRfcHJvcGVydHko
ZmR0LCBkb21haW5fbm9kZSwgIiNhZGRyZXNzLWNlbGxzIiwgJmxlbik7DQo+IEBAIC04MzcsMjAg
KzgzOSwyMiBAQCBzdGF0aWMgaW50IF9faW5pdCBoYW5kbGVfZG9tMGxlc3NfZG9tYWluX25vZGUo
RUZJX0ZJTEVfSEFORExFIGRpcl9oYW5kbGUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX2NlbGxzLCB0cnVlKTsNCj4gICAgICAgICBpZiAoIHJldCA8IDAgKQ0K
PiAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsgICAgICAgIG1iX21vZHVsZXNfZm91
bmQgKz0gcmV0Ow0KPiAgICAgfQ0KPiANCj4gLSAgICByZXR1cm4gMDsNCj4gKyAgICByZXR1cm4g
bWJfbW9kdWxlc19mb3VuZDsNCj4gfQ0KPiANCj4gLyoNCj4gICogVGhpcyBmdW5jdGlvbiBjaGVj
a3MgZm9yIHhlbiBkb21haW4gbm9kZXMgdW5kZXIgdGhlIC9jaG9zZW4gbm9kZSBmb3IgcG9zc2li
bGUNCj4gICogZG9tMCBhbmQgZG9tVSBndWVzdHMgdG8gYmUgbG9hZGVkLg0KPiAtICogUmV0dXJu
cyB0aGUgbnVtYmVyIG9mIG1vZHVsZXMgbG9hZGVkIG9yIGEgbmVnYXRpdmUgbnVtYmVyIGZvciBl
cnJvci4NCj4gKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBtdWx0aWJvb3QgbW9kdWxlcyBmb3Vu
ZCBvciBhIG5lZ2F0aXZlIG51bWJlciBmb3IgZXJyb3IuDQo+ICAqLw0KPiBzdGF0aWMgaW50IF9f
aW5pdCBlZmlfY2hlY2tfZHRfYm9vdChFRklfRklMRV9IQU5ETEUgZGlyX2hhbmRsZSkNCj4gew0K
PiAgICAgaW50IGNob3Nlbiwgbm9kZSwgYWRkcl9sZW4sIHNpemVfbGVuOw0KPiAtICAgIHVuc2ln
bmVkIGludCBpID0gMDsNCj4gKyAgICB1bnNpZ25lZCBpbnQgaSA9IDAsIG1vZHVsZXNfZm91bmQg
PSAwOw0KPiANCj4gICAgIC8qIENoZWNrIGZvciB0aGUgY2hvc2VuIG5vZGUgaW4gdGhlIGN1cnJl
bnQgRFRCICovDQo+ICAgICBjaG9zZW4gPSBzZXR1cF9jaG9zZW5fbm9kZShmZHQsICZhZGRyX2xl
biwgJnNpemVfbGVuKTsNCj4gQEAgLTg2NSwxNSArODY5LDIzIEBAIHN0YXRpYyBpbnQgX19pbml0
IGVmaV9jaGVja19kdF9ib290KEVGSV9GSUxFX0hBTkRMRSBkaXJfaGFuZGxlKQ0KPiAgICAgICAg
ICAgbm9kZSA+IDA7DQo+ICAgICAgICAgICBub2RlID0gZmR0X25leHRfc3Vibm9kZShmZHQsIG5v
ZGUpICkNCj4gICAgIHsNCj4gKyAgICAgICAgaW50IHJldDsNCj4gKw0KPiAgICAgICAgIGlmICgg
IWZkdF9ub2RlX2NoZWNrX2NvbXBhdGlibGUoZmR0LCBub2RlLCAieGVuLGRvbWFpbiIpICkNCj4g
ICAgICAgICB7DQo+ICAgICAgICAgICAgIC8qIEZvdW5kIGEgbm9kZSB3aXRoIGNvbXBhdGlibGUg
eGVuLGRvbWFpbjsgaGFuZGxlIHRoaXMgbm9kZS4gKi8NCj4gLSAgICAgICAgICAgIGlmICggaGFu
ZGxlX2RvbTBsZXNzX2RvbWFpbl9ub2RlKGRpcl9oYW5kbGUsIG5vZGUpIDwgMCApDQo+ICsgICAg
ICAgICAgICByZXQgPSBoYW5kbGVfZG9tMGxlc3NfZG9tYWluX25vZGUoZGlyX2hhbmRsZSwgbm9k
ZSk7DQo+ICsgICAgICAgICAgICBpZiAoIHJldCA8IDAgKQ0KPiAgICAgICAgICAgICAgICAgcmV0
dXJuIEVSUk9SX0RUX01PRFVMRV9ET01VOw0KPiAgICAgICAgIH0NCj4gLSAgICAgICAgZWxzZSBp
ZiAoIGhhbmRsZV9tb2R1bGVfbm9kZShkaXJfaGFuZGxlLCBub2RlLCBhZGRyX2xlbiwgc2l6ZV9s
ZW4sDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpIDwgMCAp
DQo+ICsgICAgICAgIGVsc2UNCj4gKyAgICAgICAgew0KPiArICAgICAgICAgICAgcmV0ID0gaGFu
ZGxlX21vZHVsZV9ub2RlKGRpcl9oYW5kbGUsIG5vZGUsIGFkZHJfbGVuLCBzaXplX2xlbiwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7DQo+ICsgICAgICAg
ICAgICBpZiAoIHJldCA8IDAgKQ0KPiAgICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUl9EVF9N
T0RVTEVfRE9NMDsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBtb2R1bGVzX2ZvdW5kICs9IHJl
dDsNCj4gICAgIH0NCj4gDQo+ICAgICAvKiBGcmVlIGJvb3QgbW9kdWxlcyBmaWxlIG5hbWVzIGlm
IGFueSAqLw0KPiBAQCAtODgzLDcgKzg5NSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGVmaV9jaGVj
a19kdF9ib290KEVGSV9GSUxFX0hBTkRMRSBkaXJfaGFuZGxlKQ0KPiAgICAgICAgIGVmaV9icy0+
RnJlZVBvb2wobW9kdWxlc1tpXS5uYW1lKTsNCj4gICAgIH0NCj4gDQo+IC0gICAgcmV0dXJuIG1v
ZHVsZXNfaWR4Ow0KPiArICAgIHJldHVybiBtb2R1bGVzX2ZvdW5kOw0KPiB9DQo+IA0KPiBzdGF0
aWMgdm9pZCBfX2luaXQgZWZpX2FyY2hfY3B1KHZvaWQpDQo+IGRpZmYgLS1naXQgYS94ZW4vY29t
bW9uL2VmaS9ib290LmMgYi94ZW4vY29tbW9uL2VmaS9ib290LmMNCj4gaW5kZXggMzkyZmYzYWM5
Yi4uMTEyYjdlNzU3MSAxMDA2NDQNCj4gLS0tIGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jDQo+ICsr
KyBiL3hlbi9jb21tb24vZWZpL2Jvb3QuYw0KPiBAQCAtNDQ5LDYgKzQ0OSwxNSBAQCBzdGF0aWMg
RUZJX0ZJTEVfSEFORExFIF9faW5pdCBnZXRfcGFyZW50X2hhbmRsZShFRklfTE9BREVEX0lNQUdF
ICpsb2FkZWRfaW1hZ2UsDQo+ICAgICBDSEFSMTYgKnBhdGhlbmQsICpwdHI7DQo+ICAgICBFRklf
U1RBVFVTIHJldDsNCj4gDQo+ICsgICAgLyoNCj4gKyAgICAgKiBHcnViMiBydW5uaW5nIG9uIHRv
cCBvZiBFREsyIGhhcyBiZWVuIG9ic2VydmVkIHRvIHN1cHBseSBhIE5VTEwNCj4gKyAgICAgKiBE
ZXZpY2VIYW5kbGUuIFdlIGNhbid0IHVzZSB0aGF0IHRvIGdhaW4gYWNjZXNzIHRvIHRoZSBmaWxl
c3lzdGVtLg0KPiArICAgICAqIEhvd2V2ZXIgdGhlIHN5c3RlbSBjYW4gc3RpbGwgYm9vdCBpZiBp
dCBkb2VzbuKAmXQgcmVxdWlyZSBhY2Nlc3MgdG8gdGhlDQo+ICsgICAgICogZmlsZXN5c3RlbS4N
Cj4gKyAgICAgKi8NCj4gKyAgICBpZiAoICFsb2FkZWRfaW1hZ2UtPkRldmljZUhhbmRsZSApDQo+
ICsgICAgICAgIHJldHVybiBOVUxMOw0KPiArDQo+ICAgICBkbyB7DQo+ICAgICAgICAgRUZJX0ZJ
TEVfSU9fSU5URVJGQUNFICpmaW87DQo+IA0KPiBAQCAtNTgxLDYgKzU5MCw4IEBAIHN0YXRpYyBi
b29sIF9faW5pdCByZWFkX2ZpbGUoRUZJX0ZJTEVfSEFORExFIGRpcl9oYW5kbGUsIENIQVIxNiAq
bmFtZSwNCj4gICAgIEVGSV9TVEFUVVMgcmV0Ow0KPiAgICAgY29uc3QgQ0hBUjE2ICp3aGF0ID0g
TlVMTDsNCj4gDQo+ICsgICAgaWYgKCAhZGlyX2hhbmRsZSApDQo+ICsgICAgICAgIGJsZXhpdChM
IkVycm9yOiBObyBhY2Nlc3MgdG8gdGhlIGZpbGVzeXN0ZW0iKTsNCj4gICAgIGlmICggIW5hbWUg
KQ0KPiAgICAgICAgIFByaW50RXJyTWVzZyhMIk5vIGZpbGVuYW1lIiwgRUZJX09VVF9PRl9SRVNP
VVJDRVMpOw0KPiAgICAgcmV0ID0gZGlyX2hhbmRsZS0+T3BlbihkaXJfaGFuZGxlLCAmRmlsZUhh
bmRsZSwgbmFtZSwNCj4gQEAgLTEzMzMsOCArMTM0NCwxOCBAQCBlZmlfc3RhcnQoRUZJX0hBTkRM
RSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpDQo+ICAgICAgICAg
ICAgIEVGSV9GSUxFX0hBTkRMRSBoYW5kbGUgPSBnZXRfcGFyZW50X2hhbmRsZShsb2FkZWRfaW1h
Z2UsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmZmlsZV9uYW1lKTsNCj4gDQo+IC0gICAgICAgICAgICBoYW5kbGUtPkNsb3NlKGhhbmRs
ZSk7DQo+IC0gICAgICAgICAgICAqYXJndiA9IGZpbGVfbmFtZTsNCj4gKyAgICAgICAgICAgIGlm
ICggIWhhbmRsZSApDQo+ICsgICAgICAgICAgICB7DQo+ICsgICAgICAgICAgICAgICAgUHJpbnRF
cnIoTCJFcnJvciByZXRyaWV2aW5nIGltYWdlIG5hbWU6IG5vIGZpbGVzeXN0ZW0gYWNjZXNzLiIN
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBMIiBTZXR0aW5nIGRlZmF1bHQgdG8geGVuLmVm
aSIpOw0KPiArICAgICAgICAgICAgICAgIFByaW50RXJyKG5ld2xpbmUpOw0KPiArICAgICAgICAg
ICAgICAgICphcmd2ID0gTCJ4ZW4uZWZpIjsNCj4gKyAgICAgICAgICAgIH0NCj4gKyAgICAgICAg
ICAgIGVsc2UNCj4gKyAgICAgICAgICAgIHsNCj4gKyAgICAgICAgICAgICAgICBoYW5kbGUtPkNs
b3NlKGhhbmRsZSk7DQo+ICsgICAgICAgICAgICAgICAgKmFyZ3YgPSBmaWxlX25hbWU7DQo+ICsg
ICAgICAgICAgICB9DQo+ICAgICAgICAgfQ0KPiANCj4gICAgICAgICBuYW1lLnMgPSBnZXRfdmFs
dWUoJmNmZywgc2VjdGlvbi5zLCAib3B0aW9ucyIpOw0KPiBAQCAtMTM2OSw3ICsxMzkwLDggQEAg
ZWZpX3N0YXJ0KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFCTEUgKlN5c3Rl
bVRhYmxlKQ0KPiAgICAgLyogR2V0IHRoZSBudW1iZXIgb2YgYm9vdCBtb2R1bGVzIHNwZWNpZmll
ZCBvbiB0aGUgRFQgb3IgYW4gZXJyb3IgKDwwKSAqLw0KPiAgICAgZHRfbW9kdWxlc19mb3VuZCA9
IGVmaV9jaGVja19kdF9ib290KGRpcl9oYW5kbGUpOw0KPiANCj4gLSAgICBkaXJfaGFuZGxlLT5D
bG9zZShkaXJfaGFuZGxlKTsNCj4gKyAgICBpZiAoIGRpcl9oYW5kbGUgKQ0KPiArICAgICAgICBk
aXJfaGFuZGxlLT5DbG9zZShkaXJfaGFuZGxlKTsNCj4gDQo+ICAgICBpZiAoIGR0X21vZHVsZXNf
Zm91bmQgPCAwICkNCj4gICAgICAgICAvKiBlZmlfY2hlY2tfZHRfYm9vdCB0aHJvd3Mgc29tZSBl
cnJvciAqLw0KPiAtLSANCj4gMi4xNy4xDQo+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:42:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221581.383363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midx2-0008JX-Aq; Thu, 04 Nov 2021 14:42:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221581.383363; Thu, 04 Nov 2021 14:42:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midx2-0008JQ-7n; Thu, 04 Nov 2021 14:42:48 +0000
Received: by outflank-mailman (input) for mailman id 221581;
 Thu, 04 Nov 2021 14:42:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1midx1-0008JK-C9
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:42:47 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 78d25066-3d7d-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 15:42:46 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 93AD71FD35;
 Thu,  4 Nov 2021 14:42:44 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 725DB13BD4;
 Thu,  4 Nov 2021 14:42:44 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id kovGGmTxg2HRVwAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 14:42:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78d25066-3d7d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636036964; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=N7uP8qI3LyZgnDWEU0EWoytM6APluRGPXr/31WyFdvk=;
	b=JQN/zxv36m+io0UZr9tYgkauzKPXznWDfoLlFSdlTz4ruxRCmjJG1Ok0AjPoFweyxaWQAs
	iPRkL11XpsRg3a4z//eVGMzcbIWTIVEXnP+BN9kyv8XHAtE9LUUP5dDCuhWEthRee+iupK
	EBm/iorpfMpEPvUot4rmgmOovrNNen4=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH-for-4.16] tools/helpers: fix broken xenstore stubdom init
Date: Thu,  4 Nov 2021 15:42:42 +0100
Message-Id: <20211104144242.14351-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Commit 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier
into xc_dom_parse_image()") broke starting the xenstore stubdom. This
is due to a rather special way the xenstore stubdom domain config is
being initialized: in order to support both, PV and PVH stubdom,
init-xenstore-domain is using xc_dom_parse_image() to find the correct
domain type. Unfortunately above commit requires xc_dom_boot_xen_init()
to have been called before using xc_dom_parse_image(). This requires
the domid, which is known only after xc_domain_create(), which requires
the domain type.

In order to break this circular dependency, call xc_dom_boot_xen_init()
with an arbitrary domid first, and then set dom->guest_domid later.

Fixes: 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier into xc_dom_parse_image()")
Signed-off-by: Juergen Gross <jgross@suse.com>
Release-acked-by: Ian Jackson <iwj@xenproject.org>
---
 tools/helpers/init-xenstore-domain.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/tools/helpers/init-xenstore-domain.c b/tools/helpers/init-xenstore-domain.c
index 6836002f0b..a79662bd1b 100644
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -132,6 +132,13 @@ static int build(xc_interface *xch)
         }
     }
 
+    rv = xc_dom_boot_xen_init(dom, xch, domid);
+    if ( rv )
+    {
+        fprintf(stderr, "xc_dom_boot_xen_init failed\n");
+        goto err;
+    }
+
     dom->container_type = XC_DOM_HVM_CONTAINER;
     rv = xc_dom_parse_image(dom);
     if ( rv )
@@ -214,16 +221,11 @@ static int build(xc_interface *xch)
     else
         snprintf(cmdline, 512, "--event %d --internal-db", rv);
 
+    dom->guest_domid = domid;
     dom->cmdline = xc_dom_strdup(dom, cmdline);
     dom->xenstore_domid = domid;
     dom->console_evtchn = console_evtchn;
 
-    rv = xc_dom_boot_xen_init(dom, xch, domid);
-    if ( rv )
-    {
-        fprintf(stderr, "xc_dom_boot_xen_init failed\n");
-        goto err;
-    }
     rv = xc_dom_mem_init(dom, memory);
     if ( rv )
     {
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:44:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:44:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221586.383374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midyN-0000Sm-N2; Thu, 04 Nov 2021 14:44:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221586.383374; Thu, 04 Nov 2021 14:44:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1midyN-0000Sf-K2; Thu, 04 Nov 2021 14:44:11 +0000
Received: by outflank-mailman (input) for mailman id 221586;
 Thu, 04 Nov 2021 14:44:10 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1midyM-0000SZ-C8
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:44:10 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1midyM-0005ws-BF
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:44:10 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1midyM-00087m-9g
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:44:10 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1midyG-00031U-KI; Thu, 04 Nov 2021 14:44:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=hBktsLv96WVzvrzzcTZnv+XLp+x1cuy8ENA84t3tk9M=; b=Xe/cmJuSM99Logx7z+Klt/5e7i
	u+awrvHMo4wCg3q2jmYJgteUzXhVBAUfpRkQMXvuJ7GieoqNOarFg2ecPTsMsLo4oSD9j4m6xLkG9
	15gln/jvfBVAk3GKPvZniLtQ/+0WLD1OSkptsxMqgtiwjxUlEo5yZKj+n6JQIsEYwn5k=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24963.61875.920980.336873@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 14:44:03 +0000
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
    "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Wei  Chen <Wei.Chen@arm.com>,
    Stefano  Stabellini <sstabellini@kernel.org>,
    Julien Grall <julien@xen.org>,
    Volodymyr  Babchuk <Volodymyr_Babchuk@epam.com>,
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <C2BF5877-AA78-4592-AE76-AFCFE352775F@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
	<C2BF5877-AA78-4592-AE76-AFCFE352775F@arm.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Bertrand Marquis writes ("Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64"):
> > On 4 Nov 2021, at 14:12, Luca Fancellu <Luca.Fancellu@arm.com> wrote:
> > Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI boot")
> > Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>
> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
> 
> Thanks for the detailed explanation and testing all those configurations.

Indeed, thank you for the careful thought and documentation of your
conclusions.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:52:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:52:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221596.383384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mie69-0001y6-Ji; Thu, 04 Nov 2021 14:52:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221596.383384; Thu, 04 Nov 2021 14:52:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mie69-0001xz-Gt; Thu, 04 Nov 2021 14:52:13 +0000
Received: by outflank-mailman (input) for mailman id 221596;
 Thu, 04 Nov 2021 14:52:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mie67-0001xt-HL
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:52:11 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mie67-00065l-DJ
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:52:11 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mie67-0000JD-CF
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:52:11 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mie63-000333-HY; Thu, 04 Nov 2021 14:52:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=j8g5EwIwoncbJNqOrakepExTYWU+dWSo+hOQMfPfqOE=; b=J2j+jUuS9bZ5MdI9yKJmav7t2S
	UQW2JYinfsn5xX1HkzVgrUVnQgZEomWL9HtF8VM706xYICKb0AKDqZhjdAoX93d7yvAHRj4wgZ78h
	RP53ltS+eTRkhuUy1mSKGCyetInN2qQswMYXx5m1ywpsX0En/HqnAxlVYdPYzl+kEl2c=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24963.62355.300645.675596@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 14:52:03 +0000
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org,
    Wei Liu <wl@xen.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH-for-4.16 1/2] configure: modify default of building rombios
In-Reply-To: <20211104120324.9668-2-jgross@suse.com>
References: <20211104120324.9668-1-jgross@suse.com>
	<20211104120324.9668-2-jgross@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Juergen Gross writes ("[PATCH-for-4.16 1/2] configure: modify default of building rombios"):
> The tools/configure script will default to build rombios if qemu
> traditional is enabled. If rombios is being built, ipxe will be built
> per default, too.
> 
> This results in rombios and ipxe no longer being built per default when
> disabling qemu traditional.
> 
> Fix that be rearranging the dependencies:
> 
> - build ipxe per default
> - build rombios per default if either ipxe or qemu traditional are
>   being built
> 
> This modification prepares not building qemu traditional per default
> without affecting build of rombios and ipxe.

Thanks.  We had a conversation on irc about this.  In summary:

Reviewed-by: Ian Jackson <iwj@xenproject.org>


Discussion:

Both before and after this patch --with-system-ipxe --disable-ipxe (or
--with-system-ipxe on arm) would set IPXE_PATH but not cause ipxe to
be actually built.  I think that is correct.

We discussed the linkage between rombios and ipxe.  Our understanding
is that thbe intent was to support two configurations:
  qemu-trad + {hvmloader, rombios, ipxe}
  qemu-upstraem + {hvmloader, seabios, pxe rom provided by qemu}

Before this patch, --disable-rombios --enable-ipxe would be an error.
After this patch, it is tolerated (and indeed, it might occur with
only one of those options due to defaulting).  But we think that there
is no actual functional link between these pieces: ie, nothing will
actually go wrong.  You just might not have ipxe support since you
wouldn't be using trad at all.

We think that someone who explicitly manipulates the
--en/disable-rombios and --en/disable-ipxe options so as to construct
such a situation ought to know what they are doing and should get what
the asked for.

Most people will controlling this via --en/disable-qemu-trad, which
will do a plausible. thing.


I think *this* patch is a bugfix, although to rather obscure configure
behaviour.  I am inclined to release ack both this and the followup,
for the reasons I gave previously.

Comments (especially, anything to contradict what I wrote above) ASAP
please.


Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:59:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221606.383406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mieDV-0002uU-Lc; Thu, 04 Nov 2021 14:59:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221606.383406; Thu, 04 Nov 2021 14:59:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mieDV-0002uN-IV; Thu, 04 Nov 2021 14:59:49 +0000
Received: by outflank-mailman (input) for mailman id 221606;
 Thu, 04 Nov 2021 14:59:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mieDU-0002qc-4H
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:59:48 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mieDT-0006Ck-WD
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:59:48 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mieDT-0000pp-Uh
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:59:47 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mieDE-00034f-LJ; Thu, 04 Nov 2021 14:59:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=Pv4EWumR8CeTeU6BT5hmNiF9s2b+PTxdBMI7cab5+m8=; b=CIc1QNJn9aLPK28hRi/CakARNR
	MO2L94qws5an/RRWqzV6GxHlrVg6d0wxFxRszdckaiADk+O91ZPn/gG6M8X6RDwNXXnOEeAeTfNhs
	+fLPGyIGEt3ad/n2wvVQGC+1D4kTEo1s9UaNjCJrdhcKYxLrRzNj9d7ZCs9LEEWfoB7A=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24963.62794.407130.517684@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 14:59:22 +0000
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH][4.16] x86/x2APIC: defer probe until after IOMMU ACPI table
 parsing [and 1 more messages]
In-Reply-To: <47392789-2f10-9de7-036d-b2345a24a028@suse.com>,
	<YYPsT7wp0aWZapHU@Air-de-Roger>
References: <47392789-2f10-9de7-036d-b2345a24a028@suse.com>
	<YYPsT7wp0aWZapHU@Air-de-Roger>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("[PATCH][4.16] x86/x2APIC: defer probe until after IOMMU ACPI table parsing"):
> While commit XXXXXXXXXXXX ("x86/IOMMU: mark IOMMU / intremap not in use
> when ACPI tables are missing") deals with apic_x2apic_probe() as called
> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
> affected: The call needs to occur after acpi_boot_init() (which is what
> calls acpi_iommu_init()), such that iommu_intremap getting disabled
> there can be properly taken into account by apic_x2apic_probe().
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Based on code inspection only - I have no affected system and hence no
> way to actually test the case.

Do we have any tests for this ?  I see it's tagged for 4.16 (and I'm
favourably inclined) but I'm not sure I follow the implications.

Roger Pau Monn writes ("Re: [PATCH][4.16] x86/x2APIC: defer probe until after IOMMU ACPI table parsing"):
> LGTM. I cannot find any dependency between acpi_boot_init and having
> initialized the apic.
> 
> Reviewed-by: Roger Pau Monn <roger.pau@citrix.com>

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 14:59:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 14:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221605.383396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mieDT-0002eL-E0; Thu, 04 Nov 2021 14:59:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221605.383396; Thu, 04 Nov 2021 14:59:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mieDT-0002eE-9g; Thu, 04 Nov 2021 14:59:47 +0000
Received: by outflank-mailman (input) for mailman id 221605;
 Thu, 04 Nov 2021 14:59:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WbKJ=PX=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mieDS-0002e8-9y
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 14:59:46 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d761bd38-3d7f-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 15:59:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d761bd38-3d7f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636037984;
  h=to:cc:references:from:subject:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=Egel0g/qjpocY2MIuu9W8MEAndCTPcxwzC0ukdNqHfs=;
  b=NqnwOk2y1cheFWOUjXIubv5w7h3zFNRi0lIopW5/vWrza+/hkefoBhk6
   6g2sa/F46b0pG4s/ipsHxBNew/EsmyTq3FnaXlHjtG/vuEcO7BezQD3cg
   UvfU1elFT8oxviKBTIGQ99U4KVLXjUjQ4dngucBxTaLiItMhPvMaNhbBy
   k=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: z4dxc8gzmRYjVxec+4u/Qc8uHtq9RTkvYHLqWTzVx32PCkZMq1iNLRYtzACCcOIe/C7XzThb/s
 XfaWNSFLB5ktCXVrDq2X0l15hegjD3dWLkOYAjIT4RAXuX14KX9u+OZqo0e1SD03wfMubC/fQ5
 wYQk03Kjk/NNcqljGrrY/c1cHLLptsOTlBdqtSxp/5SlD1ZcyvqZsdaGQtb/qVU9gwuu2KQmqZ
 rkH39eypbzjQPLt6YL6u3QVwAbD010ht0bMYRlVwTRRV7gmtFN8wS0ogt4PJm0dw3zcLNkSzi3
 HTkcer8BYHS6pozCv6bNfll6
X-SBRS: 5.1
X-MesageID: 59027134
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:JHycp6MM5tdyojLvrR1TkMFynXyQoLVcMsEvi/4bfWQNrUon0jIDy
 jEbCjyAOfuIa2Gmc9wkaYi/pB5SuMKAmtI2Twto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eo/w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoxmvz89V9
 Mh9jMC1GA4oNfHsvr8CfTANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWZo3J8XRqq2i
 8wxdhk2bgTGPQ11eVISEJkiv7iwpkTbbGgNwL6SjfVuuDWCpOBr65D9PdyQdtGUSMF9mkeDu
 nmA72n/GgsdNtGU1XyC6H3Eru3AhyTgQ6oJCaa1sPVthTW72Wg7GBAQE1yhrpGRi1G8c8JSL
 VQO/SgjprR081akJuQRRDXh/iTC5ERFHYMNTatqs2lh15Y4/S61IDgbagJcWOV6sZ4/RDd29
 nnSgP3AUGkHXKKudVqR8bKdrDWXMCcTLHMfaSJscTbp8+UPs6lo0EuRE48L/Lqdy4SsRGqum
 2ziQD0W3u1L1aY2O7OHEUcrat5GjrzAVUYL6wreRQpJBSspNdf+N+REBbU2hMuszbp1rHHd4
 xDoeODEtYji6K1hcgTXEI3h+5nztp643MX02wIHInXY323FF4SfVY5R+ipiA0xiL9wJfzTkC
 GeK51gMtcEOZCL6N/cmC25UNyjM5fKwfTgCfqqFBuein7ArLFPXlM2QTRfIt4wSrKTcuf5mY
 srKGSpdJX0bFb5m3FKLqxQ1itcWKtQF7TqLH/jTlk3/uZLHPSL9YepVYTOmM7FihIvZ8Vq9z
 jqqH5bTo/mpeLalOXe/HE96BQ1iEEXX8ris9JAHKLXee1U7cIzjYteIqY4cl0Vet/09vs/D/
 22nW18ez1z6hHbdLh6NZGwlY7TqNauTZ1piY0TA5H6khCouZ5iB9qAae8dldLUr7rU7n/V1U
 +MEa4OLBfEWEmbL/DEUbJ/cqo1+dUv02VLSbnT9ODVvLYR9QwHp+8P/ele9/ic5ESfq59A1p
 Ket112HTMNbFRhiFsvfdNmm00i14SoGgOt3UkaReotTdUzg/ZJEMSv0ivNrccgAJQ+anmmR1
 hqMAAderu7I+tdn/N7MjKGCjoGoD+ohQRYKQziFte67bHCI8HCizIlMVPezUQrcDG6kqr+/Y
 eh1zu3nNKFVllh9rIchQa1gyrgz5oWzquYCnBhkBnjCc3+iFqhkfiudxcBKu6BAmu1ZtA+xV
 h7d89VWI+zUasbsEVpXLws5dOWTk/oTn2CKv/gyJUz74g5x/aaGDhoOb0Xd1nQFIesnKp4hz
 McgpNUSul62hRcdO9qbijxZqjaXJXsaXqR77pwXDecHUObwJo2utXAENhLL3Q==
IronPort-HdrOrdr: A9a23:vpgrEawIEE6DzAySHYmgKrPxvOskLtp133Aq2lEZdPULSKOlfp
 GV8MjziyWYtN9wYhAdcdDpAtjkfZquz+8L3WB3B8bfYOCGghrUEGgG1+XfKlLbalXDH4JmpM
 Bdmu1FeafN5DtB/LbHCWuDYq8dKbC8mcjC74eurAYfcegpUdAF0+4QMHfrLqQcfnghOXNWLu
 v/2iMKnUvaRZxBBf7LeEXtEtKz6uHjpdbDW1orFhQn4A6BgXeB76P7KQGR2lM7XylUybkv3G
 DZm0ihj5/T/M2T+1v57Sv+/p5WkNzuxp9qA9GNsNEcLnHJhhyzbIpsdrWetHQeof2p6nwtjN
 7Qyi1Qc/hb2jf0RCWYsBHt0w7v3HIH7GLj80aRhT/ZrcnwVFsBeoJ8rLMcViGcx1srvdl63q
 4O9XmerYBrARTJmzm4z8TUVjlx/3DE4UYKoKo2tThyQIEeYLheocg050VOCqoNGyr89cQODP
 RuNsfB//xbGGnqLkwxhlMfguBEY05DWytvGiM5y4ioOnlt7T5EJnIjtY8idixqzuN7d3FGj9
 60e5iA2os+CPP+VpgNcdvpd/HHfFAlcSi8Ql56Hm6XYJ3vG0i94KIfs49Frt1DRvQzvewPcd
 L6IQpliVI=
X-IronPort-AV: E=Sophos;i="5.87,209,1631592000"; 
   d="scan'208";a="59027134"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ClMZJbHnR9YSZkOZ3Za+1KYGzgXnLLgD3LbEQSNHWz12pCXsPlQAwO4A0jL5qrF+6SfYtd5eVg5JW17EAZNIMSMMuwbOFs9mZcNawHz/gJCK4Ybw2mCy+WaYXbGsqXbl7AyylhFjwRLWnqdIOz9iKhHWpZYC1rNlHFYmkIdPoqb451SaJASPKFpJXOhmbdzpTffP3hMDLMQjPNe4Ch017aRbTwEpJtBVf2mN+8vY5gKcCrgNbLXWHe8rlUoyJbfJJyihj4WTm5GnsxsHYDc0eQ4UX1f2y+YWY22kKe13NnxTaUFaPidIdk1jNwTvryZqZaQTMIBdnWUOXE2GeKMZJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Egel0g/qjpocY2MIuu9W8MEAndCTPcxwzC0ukdNqHfs=;
 b=kkHry3+LkBxc4zwyNrYLH/6oo9ZEKGlzDSLF6MklBrI4PhM56Z4p0fmwFcrh4KvwBGYsPpYGvlh07OwQgCegLgQ3xeK+5xCm+K+SYSBzvv4H3onwufMtkeb0EiMjHmmmy3/q3lW+TueSOlXS+LjitaPXAmZpHRlhmw5nKnIjTG2DJN91iYY3cfpwaOmiN9n9g3xI0U/ZKzu6qzMCapnR4IdOz1wco2esgamuE+4IGjEpgrpxKO3ojN7vaQGxEOz/n3MHTXo3fy12b4r6f5DqzI7mOiBSAAGsHNvN78/NMe7piO+b29iM3s8gsxd3E+5r+QaEWF4qtfs2TX0KnKg5dg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Egel0g/qjpocY2MIuu9W8MEAndCTPcxwzC0ukdNqHfs=;
 b=jXAqx68SVh7DC8tWjgtBKeMGABqsKasxg8moeiofSJ26Qv1i0NiNRzCueMAyBpqmbIXELoyXQ/Wgc60wIjJgVyiE0369sF5xS4/E+Bf6BTPUHItqHJmU2JmYhdrsLA27LkwZVqtpaS/cvjVl1wY6Z9ausCWGgOpCDaH2ujuPQwo=
To: Juergen Gross <jgross@suse.com>, <xen-devel@lists.xenproject.org>
CC: Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>
References: <20211104144242.14351-1-jgross@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH-for-4.16] tools/helpers: fix broken xenstore stubdom init
Message-ID: <54900dfb-c6fa-a2ad-471c-227a4888c687@citrix.com>
Date: Thu, 4 Nov 2021 14:59:32 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <20211104144242.14351-1-jgross@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LNXP265CA0050.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:5d::14) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5229dac8-b333-4349-7da4-08d99fa3b8ba
X-MS-TrafficTypeDiagnostic: BYAPR03MB3445:
X-Microsoft-Antispam-PRVS: <BYAPR03MB344559C9D5CDC098C398D0F5BA8D9@BYAPR03MB3445.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:513;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: tfUOIqEpPUh/eXN4Dx42kekpOJKhteHo61Cr4/wkcGLGOt81/9XLrccR3qVwu1IRdVd7O0CSnOJ/NoSaEUuhb++VuGc7LRm1ckuiNgk/rUSNzWtcxAHKMx6kgiQaXnW60tgGEMwA9gXYVzLQ5mDHfira73/VUpdIGLslpN0czqvpqZOVYy3JyC7Nuv+qCmjv/NBzK8bzPEqcLJCcNDEuIq4mHTLDLyMGdJ8dHXfK6ioQhU9iYQBjPNExXXd8JSmTnlNyZR7FmE9ENvc20SmdL8LtcaxIGD/aRMEcQ7/gumBvbJvRo+d0rWnBda1r1Lm/o36pTbUsr8kB4cCTNHnR4iX87+V4bd/z+51nvtfbzpp/uVk9wSC9NFXl3zyHT32VPY8myFPX8HSM1nmiB/EII5RlH3lYfR9Exi6x7/QhnaqeLlUxdiWdsWJHtFSsGY4CJgLpWL167on9UB/BTFDcV6GIYTtKqWITONnuqHGhFdiMm/HB9BecI4U5QxKXdaB1dbtHOm+vWoiKdwJdm6W1ckcwAhu085ZFsWMYHL4xdeI9zj+mZPjsrzQUPQqc4Bq91k1rHPoV2PdIExDPvxLWykVcO+dTGXkAr0GRi6wok5YkttNb7VreXXoyQFIDqx1uicESlIvjOP3GFQq2Jb3hl85Z1op3cPBv889cQqocBMuzqSI1tPNeKiKG3ibU/8hgLr81b4WoqmWFcQl8kRVzGtHnJb5iWbDzFNh39L7nGEUwGyLEzUPesVYXcNchIGBO
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(38100700002)(26005)(83380400001)(186003)(8676002)(5660300002)(36756003)(31696002)(2906002)(8936002)(82960400001)(31686004)(4326008)(54906003)(2616005)(6666004)(956004)(53546011)(6486002)(508600001)(316002)(16576012)(66556008)(66476007)(66946007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RGplSForVnFQL1lZQ1ZDOW95TTBVVEQrV1VQbkh1d3V2Qld1dDNxcWdpOGps?=
 =?utf-8?B?U3FXRHo0b3ZLSE04WmJsZkhPQU9ldDQyWDNrTGdoR3ErdVZrTUlTNmtqZEgw?=
 =?utf-8?B?Qlo4ZGMxa09YR3Jqd0hxTXJuS3FIaDgrWVpXenFHVmpIZXhDZzRUTEFlbTU5?=
 =?utf-8?B?K0QrTU1Kd3hxZy9jVnlXeVBSWUJYU2VzV2lsM3dmOE5hSUNFeVBkRHFobVdE?=
 =?utf-8?B?OVRYMmlIYXpRZ3N6VEdZY3JOcDVTdkVLRTFqb2lQNlQ3b0RGUnRJb1Q2cWpj?=
 =?utf-8?B?dFZOektWVy9PK29EN3FtMnF4cDNnVjJYUkZiQjc3TzA2bzcvWm5IbDJlS0VH?=
 =?utf-8?B?c2psNkVkNGVIdkhNUXFId3FQSTNuS3NNMjZwZlhpWGNlcG5yR1pVSURITGUv?=
 =?utf-8?B?S1lMN1Ard0NrYkVlT0hSSWhyRmFtOG1tR3h6MlBTT0FtSkJTTFo5eGtIRm4z?=
 =?utf-8?B?S1hzTWZ1eHJnT1V4VW0vc3JSWlF2Zy94elZFdXBqYkQxbk1PcEh3WWYrMzJU?=
 =?utf-8?B?QmhOeHlpU05SRksrOVRUZjlESm8zVGZaWnd1TWJtSW90RW15aDlVdXh4Um1m?=
 =?utf-8?B?L25Ib2ZxZnRXZU9nWlRVS1d0Q2VucXJRRE8rU056MWc5MUJtSTFsNEN0WXRz?=
 =?utf-8?B?U3Iwc2pNWWZxNytQYkJtaTMyL2c0bnBTOGRDR201RmVyM0syQ3ZmZ2lHNEE4?=
 =?utf-8?B?WWlhUU40dWpGT3FCZ1NFOGZVaE5WMWVoQklwVU9hbC9FY0g4M241Vis5TUpr?=
 =?utf-8?B?eS9FUU9IRndkRWJtb2t4V0hzSHBJRXZOKy9IK1U3cWUza0pSKzE0eHV1RTla?=
 =?utf-8?B?bERJbjJLMkVJOU5jK1ZoNVhEVFRRK3BjdGd3YXc4NDJIWlVJRlZHcTB3QS96?=
 =?utf-8?B?Sm5YRkI4QVAvYm5aemVMZ3lqN25mdmFIS253TjEwUG02SWlXYU1zdlJmV0tr?=
 =?utf-8?B?eGRDTW1hK3RweGNwT2RyK2Nza2I2eCs3Q3FoOHZ5MVRMYjRCSE9XQ1pIelE0?=
 =?utf-8?B?RHBGSm1jcVlaaU15SW1HTUpKUmE4Y2RyQUErS25sMWoyRzFDb05uOC9PMXZX?=
 =?utf-8?B?UFpkcGM1WjVlRytrS1lxb1luckVLZloyYWt5M0tRRkJWTUt6WWYxR3BRemww?=
 =?utf-8?B?ditJZWZZNzlrcnlmcmw2aWpWTjR6RGJOcWJWdkkyU1VlWDNOcUtyQjgzK2Vj?=
 =?utf-8?B?b0xmQzJZYkVPdGV6R3dxaWZibkZKVXNIdEJXSTRQK2JCRVNBMmxjZXZhZDJP?=
 =?utf-8?B?RGRpalNUQ0lWeFBHMG1WSUhwRVpXUmhNeFdGdHkrcGYvVmRZUjNwL0dpSk1L?=
 =?utf-8?B?TzhwQlowd0taZWwyOTRRVEFHY2x4Zi83bi9OS1hIRThiWHRGUDgzOXM0eWls?=
 =?utf-8?B?czNnelcwNjRKeVRnd1B3Si9kUW9KZndQZzJkcmljcElqcDFuWGg2eS9FUTFl?=
 =?utf-8?B?WmRTYzdFWVVRWnkxUTJSWmsxczZQclptNHBTcWUrbkNPVzlXRFBGdUlpdmpT?=
 =?utf-8?B?T2pPM1ZwZkFMSU5pU2NFQjBuWkZhcExoVkluZVZHQlc2a1lIUGtCdGhkdGJR?=
 =?utf-8?B?WDV3YmpaRTJVa1FXMVZjcWNBSEJPSStFelVCMkNyeEFLbm9OaElHOXNzQ1ZO?=
 =?utf-8?B?R3gzb3A2cDQ3cG9TY0RFKzhNSFpLZS9QcXdTZGRsZDd2SGRnOURuMDYxWTNO?=
 =?utf-8?B?UCt1Y05CbmJxcEkrZkc1eGtyNEoyblJsdHh3bm1sSkN2U2VjYThyT2hVUjZr?=
 =?utf-8?B?SisvNHVrR1RaL3ZaM096cGd6cHQ0VWllMXlBQnd6b2NSM1duS09xMmlMZ2Vs?=
 =?utf-8?B?ZzcvOUV6RlhCWi9nalhsUEhGeUhXQTNBQmNIQ2k0aXhvR1JhOGVMakRaSU5K?=
 =?utf-8?B?dERZYlNPSTN1VjExNGFtY3FibHcra2VMcjhSVU1yYTdlLzVFcmxyQlhlb1RJ?=
 =?utf-8?B?VXhETmFSNm9SUldJYng1OWhNK0pLendCQ1c2ajRFOUVpS0wwZ1dabTZ0WmxG?=
 =?utf-8?B?cW0yRVF1dG8wR3l6MCtDZkVTQzRRcDJZQVFyNWRwM0liVnhjZHFEQW9WZTV1?=
 =?utf-8?B?eHl5MUg2Q3hRMk40cUlVdU1DYU9NaGtaSkRXU21jMDVIY0lnTXlBRWJaM0hm?=
 =?utf-8?B?akdkNW5VWnZYMFR0enc4d3VDWXdyZFRYaEE3OE1FaFBBY1pGS1BMNm80NnRO?=
 =?utf-8?B?V1pJM1hRWWZtbStYaWdRZGNGTmRYVnFZUjRjYWJ2Qlg0NjRuYlQ3WjRTQ25l?=
 =?utf-8?B?VHUxc3B3Y3prSWRma21pTmdhbWNRPT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 5229dac8-b333-4349-7da4-08d99fa3b8ba
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 14:59:38.6745
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: icVgTG3b5T58DcmG4IMYVD8G18F2oCuhpEPpj8Ts6eUuMkgGFB8qnCiavPlz/vhkObgG3zZFIjv807t3udu0hEiXvop+zZQu7CUrEfbcdwI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB3445
X-OriginatorOrg: citrix.com

On 04/11/2021 14:42, Juergen Gross wrote:
> Commit 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier
> into xc_dom_parse_image()") broke starting the xenstore stubdom. This
> is due to a rather special way the xenstore stubdom domain config is
> being initialized: in order to support both, PV and PVH stubdom,
> init-xenstore-domain is using xc_dom_parse_image() to find the correct
> domain type. Unfortunately above commit requires xc_dom_boot_xen_init()
> to have been called before using xc_dom_parse_image(). This requires
> the domid, which is known only after xc_domain_create(), which requires
> the domain type.
>
> In order to break this circular dependency, call xc_dom_boot_xen_init()
> with an arbitrary domid first, and then set dom->guest_domid later.
>
> Fixes: 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier int=
o xc_dom_parse_image()")
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Release-acked-by: Ian Jackson <iwj@xenproject.org>

This is all rather nasty, and really highlights problems with the
libxenguest abi, because you really ought to be able to ask "what ELF
properties do I have on my hand" without an implicit "and try to start
building a VM using it" on the side.

I agree this is probably the best thing to do right now.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 15:10:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 15:10:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221618.383418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mieMu-0004hx-Ha; Thu, 04 Nov 2021 15:09:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221618.383418; Thu, 04 Nov 2021 15:09:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mieMu-0004hq-E8; Thu, 04 Nov 2021 15:09:32 +0000
Received: by outflank-mailman (input) for mailman id 221618;
 Thu, 04 Nov 2021 15:09:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mieMt-0004hh-60
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 15:09:31 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 356dc24c-3d81-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 16:09:30 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2059.outbound.protection.outlook.com [104.47.2.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-23-jCZuCbWtOLWVsoF83YiVeQ-1; Thu, 04 Nov 2021 16:09:28 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2703.eurprd04.prod.outlook.com (2603:10a6:800:ae::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 15:09:26 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 15:09:26 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0034.eurprd05.prod.outlook.com (2603:10a6:20b:489::7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Thu, 4 Nov 2021 15:09:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 356dc24c-3d81-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636038569;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=QnZo+JwINu+yj1b7l3ZCxTtCOlVokXmizl2oT8gQ4ow=;
	b=RgISnOVGkSzgBwmdjkXx2IEeAyW4XxCQKQ5A+mFQmEXJDwgr7DEmY/XFppf8CaeFHrPmoe
	i99rpKJ4moU9yZofCveUGFJ/gZWL9j7JmTlhVVKTf3WndsM51xtVLGt3v0YFaGBMNJ4SDG
	nH6IFoS0VQkv1JFOPrMFOMH5nk8g4g8=
X-MC-Unique: jCZuCbWtOLWVsoF83YiVeQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WchwRT3yTzdIaLNb4Fkq6UhQ0XEaUxtNINjEOfTFr9ENVfVSAqDi9B9imSaBdf1PjM3QZT1yWQHD0jvFf7q6doE5LRH1Jbg/UIU7ugyBrkjKME4CpetVgH4i6qib8EoQ/bXLddX/yGcXFMSmQcBqIWNLuq9EkXL1G2LVSUC37PZjcWJabAdRM76bhLk6bG0SQmrYTJNwmg+YPogLEtz8+soe9ecbI10sV8ZMJROY8jCWkSCLl6uYvgGuTE9cB0QpnLyZOXcnmf11JQ/PWkVdQfXr4AhPDbkk2jw71r5bmby6jp+IWRBycd7z9FQwtACsLmwEyDzZpAMT7aRsGBJl9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QnZo+JwINu+yj1b7l3ZCxTtCOlVokXmizl2oT8gQ4ow=;
 b=nmXIx+wlo6b199kd20rkmWgZhOzpeRRNF2koqUnaO9M3tshGerWdGgH4wOOds9aJoHuL9NbO5ddnIsAN/57opmWoJ9vu66AibFBlgHTvTpSx2BoOLfCDyI4ZpJv4UtRDgnhlS2/PnUg70lpfgUUqtKHgyg1BoocqC/4OM+ADVc86j9rfbY8P3BVvXo9ha51LLY/Nhbb48KkOFoN8Iw1j5H/SVDEwGFUJqFCZRF98GNW6g+GJwOkNSYbK5q6+DbqyHH6vrmfjLbQPJjTGUmDYFLgabQgJ8qudafdEyQL5H3/ujxfyzqUgFaMyqi6rzxsAqcI2UhfjkUyAw5jwmLzSgQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <cbf609b6-3ac6-c355-66fa-81b353280773@suse.com>
Date: Thu, 4 Nov 2021 16:09:23 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH][4.16] x86/x2APIC: defer probe until after IOMMU ACPI
 table parsing [and 1 more messages]
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <47392789-2f10-9de7-036d-b2345a24a028@suse.com>
 <YYPsT7wp0aWZapHU@Air-de-Roger>
 <24963.62794.407130.517684@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24963.62794.407130.517684@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR05CA0034.eurprd05.prod.outlook.com
 (2603:10a6:20b:489::7) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: dfcdd8fd-b09c-42a9-f78e-08d99fa51719
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2703:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2703707389F9E21D798CD7ECB38D9@VI1PR0402MB2703.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4125;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hASlpeTtUeRl1vHnM26im8cp7HILsnJp9mnH5G7YCOiDnUcU6/89OrQbdcNcbOVN3DJJPF5s+3serJk9Rjba3aoVInqkExIh+eAMq3wgFA4n10iTYVOXAmdN5knh7mK43AefeqgJP78DSJox7upnS17c/X8ivVVyS7F2XAPa4vv59BT50sZAS5d88BZa3aMF11zIAVz8Hyj19FC9tKwM1yiLCJZGB3sX59o+Ry5ZCIIjgMK3W5I4Up9LkIzP7k8C+F1y/KE8KoArC7bVazRWMRRLZdIc4kyaZ/guq/ddSb5t0S5alAAGPuQy4Bg6HW0ai+Rdm+fLH5+ADVUDTz2m2j6LscGarLJrpGqO2gfD0C8gxBFVy4SBhYSTFGM1DZ7jAnL8FgbnONlZgtFGgXtWMHhSHt3I7v0tRPYaNkAW8CJNH/twxtCkxHcBUDNnirS+e3P3Mk4vR/yk4BjPdjB0HeB41koUkiwvBi5dh/CaKB/8Ms9vwaGZRykRDNENEk6O703Z54CPFoFaYf1GMHOsZ2EWHMIb2Ye2ZdbBf8Z56MXlHe4RveyrEtaAtm2whzbQoPUu/DDKeQmGYZaKJyWPUj4QUCf+ftGpOpo/WTPDlXWBYJXweYgKyVi0XbSQn1JVLpAkVbUhp1Gpnba83IbabC0lxvTz9RuY86iRaIzuYUgOIVbnYd/mZnx2mqlYdmyEqQw2bwrnFx0k696pSqItmeQBHwGuNEfq06ktCjONP8k=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(15650500001)(53546011)(54906003)(316002)(6486002)(186003)(26005)(6916009)(8936002)(16576012)(8676002)(508600001)(38100700002)(956004)(2906002)(86362001)(83380400001)(31696002)(5660300002)(4326008)(2616005)(31686004)(66476007)(66946007)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WTdGZWdZdWwvVGQzNVJPYi9zVFFpREdmaFFnTmdkKzJubjl5THBzZ0ovb1Bw?=
 =?utf-8?B?NXEzSDFGWjZVcHRxT2FiUTJnOHkyVE9uMEFlRWRydklXWGM5UDNkV3JLSVUy?=
 =?utf-8?B?UzF5cTJRLzJITUlOS2srMEM1YXo0SUZhNzZHQk1MQis2WmNLVWpKWHVscWQv?=
 =?utf-8?B?WENDM1pzeFp4RUZYYVVZbnVGTUgxMXcyeXlENG90K3UrQTVMcFVnYUozbXQw?=
 =?utf-8?B?SGhHR1p2VnJ2b1NwVFoyOE9xVG5qa1dmYloyRUNxVzJGKzE2eElONFh3SFlv?=
 =?utf-8?B?aVZUM3FzZXpzRzFadEJxeFdFQ09XdE1xSFlOMkFmSnVCNFBhWmVnN2hhNmQ1?=
 =?utf-8?B?MVBSRUFKMjVnUmhRdVFrY0UzUlc4djU1MVg3YSt6anduM2tITFR0L3U4UU5P?=
 =?utf-8?B?cjk3QjB5WURvNzRYb0xMc3BNTUcxTTBrcnBWWlhCVTdKUlM1TmVXZGo1cjRQ?=
 =?utf-8?B?TWhxMUJoK1RQMHdhV1NuRzJJdExQRHJaY1NzL2RQRy9vbW03QmxWNE1BcC9H?=
 =?utf-8?B?MlpmelRGam1DeTVoS0ZMb29pUTh2RG1kczhCakkxWHpDZjRML0ZzS0pIWWc0?=
 =?utf-8?B?YnoyZmJreGJ6UTVhNW90T3dzeXB2Lzh3YmgwL1hXR2xONHFHQWtsNGwxLytY?=
 =?utf-8?B?Z0s0emZGM0x3S0tDK1JVaU43cEhwRk9mNTlRZGgrMnFjVU9JTHA3WlNaSTFM?=
 =?utf-8?B?S2lRdXk4SGJ1MUE4TEt4UzZyVjRGVHJnUE5JTjNXR1BsbnRDUG5QWmdwM0ND?=
 =?utf-8?B?NUx4OEthbExOTEIvUW8vZVVNM3l0SmJiN2FqVmsyYVJWZzZ3dWUvdncwUDNs?=
 =?utf-8?B?TWhXaSt3bUhXalY0VU12bXNUbnZyV1BYVGUvdHVZL0ZQOUNMTUV1R2xVYmUy?=
 =?utf-8?B?RVBxQUlEZi9rUjRsSldJZlEwbnk5WDF0aHcrd094Ylo2aWdlT1NBSGVoZGhF?=
 =?utf-8?B?cVIwT2lJRjU0Mi9OOWFoTEpzc3dDd1FUMzVOSm5hVkJ6d0w5OXpoZlJuVE5Q?=
 =?utf-8?B?a001Zng2SkdBdXhHUkYzS2YrZ0duYmRZb01uL1dZWUJaZHRSajlLRitBN0RZ?=
 =?utf-8?B?Tisvd2lZL0NvRlQ0SytDYVpsOTd6NmJiRlNZSXJ5UXdlL1NyTnpyZnpSK2px?=
 =?utf-8?B?WFFrVWVBQ0pWWHYxR200VjBaeHRBSVowdXdDVkJCSUZNUVRJVzkwbUpxeUN2?=
 =?utf-8?B?MmE2TTlsK1NiV2VGZDdZVUVmbjg3MDZsOUxYT3lnUGQ2cG03ZURENUJXRWNE?=
 =?utf-8?B?azd6NDZaZHd3bVVGbWR4cUVGQndqQ1VBVlc1ZHI2bjBrTDZmWG9DOVVBdDl1?=
 =?utf-8?B?Umt2VU0ya2NqY3pjRmlLK2lndldjYmMvZ0hLNTJpY1BwWVkyQmI5STc2WHZz?=
 =?utf-8?B?b2NVOHNoZ0VJeWVlY3NHMmJOZU5xdW9kM1ZXcGFURnlPYXJsMkdzb3ZyUWxB?=
 =?utf-8?B?Zk1kSXBwRU9JL0twd2tFNDdpam5Gc3hYdVhZOENSRnpsNW9vcU9FUjZVbzFP?=
 =?utf-8?B?MVNrM1ZDSnM2YVdiOC96TlMwQndJSmoxTkJJejhZaWduKzB6NFdLRlB4Tktx?=
 =?utf-8?B?akFHS3lCVkFLYXBRTG1jdWI5RWNhTDMzeWhHa0hmZ0tndHNaVDFIYS83N25G?=
 =?utf-8?B?elVBTXNCVUovWklsUFE2OURBa3duS0FHS1g1NW5PTjZsb1pOS2phYmVoaExt?=
 =?utf-8?B?NkV2TE56VWtiQ0M4ZXUvRm5JVVVLTzVYaHpNSnp4Q0hsdmx1Ump6RElCTEYz?=
 =?utf-8?B?SEZqNkRmakk4dW0zUlBhV3NEVytpTkxSV0VBTHI3Q2U4MVhsMldiSmlmTkRr?=
 =?utf-8?B?TmNkbTdNd01UUENQa0Y4MHVRQlFnQnlJeUFWVW1QUWJ6NmZLLzJJRWtNYXpp?=
 =?utf-8?B?MjJuK0hDUXpRYVBFRE5ReHhyWlVjTEFKV0NiWmNSUUlhczRYL1VUbktValo3?=
 =?utf-8?B?T1FjVTZwRHFqaXhuUzAzdFRPbENXaEdydU9FcVlobHFDeUZ1ZDlVOUVQZzNQ?=
 =?utf-8?B?WUJCbUtIc3dQemY4ZFRvVThjSlpmcCt2REdGbW1LNS9vRElyYlpuVjZRTjFm?=
 =?utf-8?B?QTRtM3RHZTU3L3dja05udWVPMlp6dFE2Z09nazZZN0RxSVkrZytCWlJtTEQ0?=
 =?utf-8?B?TDRVT3FTQ2xlZmlHc0ZBcWxHMGNVbHJ5YjlrOVpHUmltV1ZSRmFaaDB6QU1I?=
 =?utf-8?Q?KNXMztLxAEo7rNHtGEBexno=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dfcdd8fd-b09c-42a9-f78e-08d99fa51719
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 15:09:25.8891
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VQBTH1RbU9dLvKfLBSoDAAhHeYDer0vGJY3wzzJNCbC7AculUP9OS7WwPEHZ1f/R3zvlmWPvPuQkw34XRjOwMw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2703

On 04.11.2021 15:59, Ian Jackson wrote:
> Jan Beulich writes ("[PATCH][4.16] x86/x2APIC: defer probe until after IOMMU ACPI table parsing"):
>> While commit XXXXXXXXXXXX ("x86/IOMMU: mark IOMMU / intremap not in use
>> when ACPI tables are missing") deals with apic_x2apic_probe() as called
>> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
>> affected: The call needs to occur after acpi_boot_init() (which is what
>> calls acpi_iommu_init()), such that iommu_intremap getting disabled
>> there can be properly taken into account by apic_x2apic_probe().
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Based on code inspection only - I have no affected system and hence no
>> way to actually test the case.
> 
> Do we have any tests for this ?

If you mean in osstest, then I'm unaware of any, but I also don't have
a clear view on how much x2APIC-capable hardware we have, and whether
among those there are any where the firmware pre-enables x2APIC.

>  I see it's tagged for 4.16 (and I'm
> favourably inclined) but I'm not sure I follow the implications.

The main aspect here is: This is the other side of the medal as to the
referenced earlier change (which I did commit an hour or so ago).

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 15:24:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 15:24:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221629.383429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miebA-0006zT-Vi; Thu, 04 Nov 2021 15:24:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221629.383429; Thu, 04 Nov 2021 15:24:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miebA-0006zM-Sc; Thu, 04 Nov 2021 15:24:16 +0000
Received: by outflank-mailman (input) for mailman id 221629;
 Thu, 04 Nov 2021 15:24:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F6ik=PX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mieb9-0006yx-Bf
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 15:24:15 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 42988a4c-3d83-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 16:24:13 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42988a4c-3d83-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636039452;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=scTOo4RUYtaECrO4Oku0vJDwnaiUtc5U26pKcmNJNhI=;
  b=HXbufmBfvF4H1SwWbhIv/qRfAdLFQMh3iCqx/oNCvxLL6RMZ4YhUadiq
   p0LO4hyggKDXi77ZHKtPlm2aVqILznJgFGFO6GToX0vysdHuIKTZlzo/J
   xgQUzYhVCVyMM5LUIJ+Kt4lre1kY90IbUG+a5HjG8Oq/g5s9Jf5z2pOHJ
   Q=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: jZ65L+xUk/df7csQKVPS1bZZ7FIiXT8egvUqpsuSJ20DZZK8z6tSe5CzZxasT+EdUT+/9Zs5zj
 Hw+EDKnt8QrJCKXNKX4fCjonnw49ZLRMggEL6Gg/3CFZGlCE5Y4kUMAvWCuws0yHHdyvfFP2TF
 vyFM0PRQPaEaEk/lyK0qVHgp23pw/3Sk6jDWmBjgAAM+mQ2Xy413O4FHjLxgkZts/3PNsGjpHt
 i2ilvPK+GOYV10qyKgg36evTLIsfFdkvjpVUP3f7kg56nQcQ2cs93YfF+3gHhlrMnau5uq35+r
 0EEjo+zHGK4Zb/bcar5NdUD+
X-SBRS: 5.1
X-MesageID: 57060988
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:BhtVgqyCANd0PYqjGOx6t+fdwSrEfRIJ4+MujC+fZmUNrF6WrkVVz
 mMdWmCOa/6JNGCjfNpybY7j9kwE6p7Rx4NlQANtpCAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrZl2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt+x89
 NtRrMPrcgtqEKDJiuAXfz9DFz4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYIHhGlo15AedRrYT
 +cwThxocQrGWUYMFFQsMKwdo8jxjFCqJlW0r3rK/PFqsgA/1jdZz7zFINfTPNuQSq19jkue4
 27L4Wn9KhUbL8CEjyqI9Gq2ge3Clj+9X5gdfJW6/PN3hFyYxkQIFQYbE1C8pJGRi1G8c8JSL
 VQO/SgjprR081akJuQRRDXh/iTC5ERFHYMNTatqs2lh15Y4/S6lC1QKUiceM+cq9+E7QC4u3
 HOvhNf2UGkHXKKudVqR8bKdrDWXMCcTLHMfaSJscTbp8+UPs6lo0EuRE48L/Lqdy4SsRGqum
 2ziQD0W3u1L1aY2O7OHEUcrat5GjrzAVUYL6wreRQpJBSspNdf+N+REBbU2hMuszbp1rHHd4
 xDoeODEtYji6K1hcgTXEI3h+5nztp643MX02wIHInXY323FF4SfVY5R+ipiA0xiL9wJfzTkC
 GeK51gMtcEOZCL6N/cmC25UNyjM5fKwfTgCfqqFBuein7ArLFPXlM2QTRfIt4wSrKTcuf5mY
 srKGSpdJX0bFb5m3FKLqxQ1itcWKtQF7TqLH/jTlk3/uZLHPSL9YepVYTOmM7FihIvZ8Vq9z
 jqqH5bTo/mpeLalOXe/HE96BQ1iEEXX8ris9JAHKLXee1U7cIzjYteIqY4cl0Vet/09vs/D/
 22nW18ez1z6hHbdLh6NZGwlY7TqNauTZ1pgVcD1FVr3iXUlf6i166ITK8k+cbU9rbQxxv9oV
 fgVPc6HB60XGDjA/j0ca7j7rZBjK0v31V7fYXL9bWhtZYNkSizI5sTgIlnl+h4RA3flrsA5u
 bChiF/WGMJRWwR4Ac/KQ/uz1Fft72MFked/UhKQcNlecUnh6qZwLCn1gqNlKs0AM0yblDCby
 xyXEVETouyU+90599zAhKalqYa1ErQhQhoGTjeDtbvvbHvU5Guux4NEQd2kRzGFWTOm4rima
 MVU0+r4bK8NkmFVvtcuCL1s168/uYfi/ucI0gR+EXzXRF23Ebc8cGKe1MxCu6ARlL9UvQy6B
 hCG9tVAYOjbPcrkFBgaJRY/b/TF3vYRw2GA4fMwKUT8xSl24LvYDhkCY0jS0HRQfOlvLYco4
 eY9o8pHuQWwhy0jPsuCki0JpX+HKWYNUvl/u5wXaGMxZtHHFr2WjUTgNxLL
IronPort-HdrOrdr: A9a23:hFnyyaF4edxzC7lQpLqEHseALOsnbusQ8zAXPiBKJCC9vPb5qy
 nOpoV86faQslwssR4b9uxoVJPvfZqYz+8W3WBzB8bEYOCFghrKEGgK1+KLrwEIWReOk9K1vZ
 0KT0EUMqyVMbEVt6fHCAnTKade/DGEmprY+9s3GR1WPHBXg6IL1XYINu6CeHcGPTWvnfACZe
 ehDswsnUvZRV0nKv6VK1MiROb5q9jChPvdEGI7705O0nj0sduwgoSKaSSl4g==
X-IronPort-AV: E=Sophos;i="5.87,209,1631592000"; 
   d="scan'208";a="57060988"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=N4EwORgvxkopVGKaI33XNFwu1n7xm1EFIkAJw7tm1lakseGBTm1zFPG93AUYoxnr81DVKiEttDCGomIqP9L/0yFMw+jOMLufUcezZuXDXpnTDOkXs0L/G023D8GOI0nw/Dry7wI/UILLiakTqPgyjyDx/S94ICdnJxwr0g74Z1W9ojKPo9yhrf/9iuG1GXOwjNS4ov5k/K4dHErXKE30+IAXgE9YbrtxXSFunWcQW3iNeM2EuAgFnSIEOFVwDFYTqGjmmhVHkKNu5jij+I8QqccwC00/nXPPGoRwM++EnrkL9qff2A7ilJfnK8r7gu/4Atvd+jxEhVE823L/K+LiMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fiKl2ChBbwozG+wJlw9dtbCio05pstTvIJjKNhROzDo=;
 b=Nqt8vwGabb6mtu/NPqTvzJHViFyEJehEr6eEYVsJ3URpcPJNo3XYbX6Zo2Hij4fRxfMyo9ePzIfndWGAOmG2X4ALoVCuBVPZYBkQJfLTLqVrHecu3Iel3T56AHpkajb1RfxYFV5dCujkpX0GCet/E2aXiJvuyr9aelS47vygQHkEvZ5kohuHw2mhSjEgj8/fVac7jyE3pdcVaCZIiePUNFUqIt4DwQamYFUv1rGXgjcNaIZqCkMBdF707F0zH1hWXQcmDjDuyuW4VfSiAGzdvtp/+fiLta5cb7FVXSiOly8bm3SLHmeRWOWmnVrAgwm9Kyatb1To58YzJTkYipr7Tg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fiKl2ChBbwozG+wJlw9dtbCio05pstTvIJjKNhROzDo=;
 b=k3LbVIzslPrZD/X5Ux3qSJpKHI4dEnXWotlxaRKCthj+/bAbnBdoowb1uwaUbF3v94uP57epQ6M1YmogOWbGHRi02YIqw54tGi8jR6tQkO+tVKmECVt89Yb2nMWQaic347twlYI2uO7A0iKqRV/W5wh/5k98qBrLMBYQzRn4xtg=
Date: Thu, 4 Nov 2021 16:24:02 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Ian Jackson <iwj@xenproject.org>
CC: Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
Message-ID: <YYP7EkWGdvlDzZE8@Air-de-Roger>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
 <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
 <24962.46376.136195.463274@mariner.uk.xensource.com>
 <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
 <67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
 <2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
X-ClientProxiedBy: MRXP264CA0006.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:15::18) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c7338121-669a-4c65-acd0-08d99fa7249b
X-MS-TrafficTypeDiagnostic: DM6PR03MB3738:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3738E01C99FBAB86D439283E8F8D9@DM6PR03MB3738.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: q9tc0ALXbkAtbdvi3tXFgTD43w0Ql3we6WCF5mTht9vZLGQKDNz28WDsAeF97rEqVyOba7A4/OECaxCjgqcfk8VswEDm5RmNw3NGw7cRXMyfnL8qhpxCIAT4+cc9HP0eeB5x7+SJrf8PKu7S/pBnbaqVqe4Y0Lho4vafoCPBrP9k73OPAyow1SqIimxIJlSc9h97RCJC0H0khR081ziCV+W6HU7OR0o/IpZyu4y6Vg+Lsl9X7CzSmCqwnLu/0j2wy778qH/n8cKhiGueosdJcDNzB75XyIqWnDgYBw/UG9A1Nno2UDYI7u3+dzWZFp8oM2JRp2cSNCrevTFUTYIuGCKrEz2VIw+XXUSYx5mDjioI4RK02UFYBTe5VrsyuOHRXSW2jJIPrSTS3U5WMd/Mx3AOukxz3/SjkGkONMwotCZiglmxCH6xv2cA+Kr4aYTc9EDpBhBy9XEYqJggpLerxCx+VGmPA/N8LbIyh2AyiQtjlx8v2RIa0bEvZNiXhthGez3YsWQz+axV6giA+uWUieI904aak+B+FRipwjSR4qwzGFxvbNm+4ugm3sdVM/3Q8oh+CUIZ3y8hpJPYuHzTmLAVHTIGlCuk6xKUPcxs+KY5Cn7uWKawwUZ0eVi3F+/BMClR3MkOagz8oiOPZ6f03g==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(4326008)(5660300002)(85182001)(508600001)(110136005)(316002)(6486002)(54906003)(9686003)(66946007)(2906002)(956004)(66476007)(66556008)(33716001)(38100700002)(82960400001)(26005)(186003)(8936002)(6666004)(8676002)(53546011)(83380400001)(86362001)(6496006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a2xmdGErbXVVUGZaOXZ2Ym1FSEdEdzBqckhFaEtrTE1TQVp6MDhUQWRscGV1?=
 =?utf-8?B?dml3QmJpdGREcjVMejJXaWgrMHB6R1pPS3dETzJKcnVDY2FaeUlWWHNXOWdE?=
 =?utf-8?B?emg2MUNjby9qazZlNjUxZU9Od1BMRHArbWpDVTNUZnNMdzM5UE9NVm1HeVNa?=
 =?utf-8?B?Q3AyY0E5WTdaSTJjZHZJa09vVDVTcHdLdDgzZjFOaXVQam91OWlFQWxKaVN5?=
 =?utf-8?B?VUY5WER4Y3VtbnhkV29EVjBNWVdPazV4bUpvOGJLd2d3M1laL2RHRnlrbHdG?=
 =?utf-8?B?V3ZEdTkzU1dsb2ZheDN6TG55aWpzelNhOWN3UFVNRmMvNUNTTi9JcDhESE9K?=
 =?utf-8?B?cnljQWZ6eDIxQml2Y05mbk1jeFk4VkJaOWRudmkwVmZ1bmhHYWEzc1FZNThZ?=
 =?utf-8?B?Ui8yLzdSM09uM0o0b3orK05CRk9ybWdBVUhYam5HRXA0eGZwMU9YWmkxNXk2?=
 =?utf-8?B?Lzg2WDdlSmF6ZnM1VFpTd1BvM1cyaTBGZnVtdFF0K1lJNTBDV29jSlVyejNE?=
 =?utf-8?B?Y3FnOFJtZUlCOWt5dmdqbWpnVXJWRjZ4ZFNZci9qQVN0RzBFV3JrUnU5THFV?=
 =?utf-8?B?SmV1enE3VlRLMitJS0tGODB6S1QzUElCN2xEdTFLemt4WDVLTlY4SmFMN1cw?=
 =?utf-8?B?dlVLbWN4Y00xaFpyaG1sL01GUDJsR0dCcVo1RTVlNk1Ea0FPK2lvQ3ZlenNQ?=
 =?utf-8?B?RGVuRVRJek5vYllQazZ6K1pTWmg4RGNESHptdzgrNjVZWGlLVGJkNWhrTldQ?=
 =?utf-8?B?L0k2VEFOb1FzcWV4a1dtTWZVMTdzeitNdUtNUlNuNVI2YllOVVhQdkJrU0RG?=
 =?utf-8?B?YTF1dHk3VHgwS0YxZk9KZDcrMW9oRmkzQjBzMnc0Q0NYVW5BVGdTb2lzNEtT?=
 =?utf-8?B?YlBZMnN4bVF5S1VpeTFKWkdORVVpZTFWaytGM1FRL3U1dU9UenhoQkVzZXVE?=
 =?utf-8?B?VE5PTHNtaFc4UHljOEs5ZjdYNG5qcW4yaHBtdTVNTDhSNnpObmZhaXRuNFlY?=
 =?utf-8?B?MzFubUZRZGthZ25rTGpHTGc3cXRwWFN4MzNGMEJ1c2VITnhBSVRUNkdwb0F4?=
 =?utf-8?B?TmU4Z3VOWjB5YTdreUdQOThnU2J4TWdzMHlyN0FzVmJDODVhajFzU25PbGh3?=
 =?utf-8?B?ZFZvRVRnNy9MTWJGMUVBS2FkdE5Mb3ZRdGd5dXJ1NWEvbTdlNEJzQjdjcDM3?=
 =?utf-8?B?bGxTc2g4M1lVT21OV0dGaXloandjbXlrbW1VV0lEcU9iS0lvK1ZsaE1EbVV3?=
 =?utf-8?B?dlg5bWpVVFZLSHlFZWRSWnFBRGZrU1A0dTh2ZTFuQTBlaDQrNkJOTFp5RG9W?=
 =?utf-8?B?SXRXaDIxUGwzVWpoaE9wMTBXS1ZLWG9RTElZRDRiaG1YcTNkbGtEY3ZvMXlW?=
 =?utf-8?B?MTBwL28rRk1SWVN4Y3ZKL1IydkJCQ0xjbE54cXpYL0hFR1ZVK3dhVHVFNDBm?=
 =?utf-8?B?TEcvdVRCQjI4V2ZzeGFRY0o2MnZvNWJtcEtOR3Fabm5iVGhuNTQ3aURUQUVX?=
 =?utf-8?B?RGZCalNSZjdrNGZNbmlPUUQ0OGJFN3RqTm5VVXQrK0xzdklNanVwRUlOTUc3?=
 =?utf-8?B?RG0yVVN5aThJb3JTbVpTMFhwUks0cVJCckJlWDRHek5RYklWZjJzS0FjNXBp?=
 =?utf-8?B?M0VoNHNwbzFzOHR1UjhBUVR6eXE3YmVRcHNOS1NEKzdqZHpOYXF1T2pKZW1Q?=
 =?utf-8?B?V3h1Ly9GRzJEWHI0MlZHZ2xTZXo2enE1MVdIeVUvLytoWFhubnQ0Q3VJOHBE?=
 =?utf-8?B?eW1FOTk3cjBmRU1yNFpra2xNWDRNS2RYWTRMbGlGRjF4MVQ1bVAyNEh3YjRn?=
 =?utf-8?B?V1lkZXVVYmxJdEdKTFJWWS9yWml2N0VpV0VFcFZNNmM0SzFTSi9vaGpIRUkz?=
 =?utf-8?B?aWpYOHRpWHV6alpBNTFoWExwbmxSTTQ1ZVZOcW45ZStvaFRrc1Z4QS93Vy9k?=
 =?utf-8?B?akhwV2VRYS9OWldzTk9WczAzT1Zucjh6NXRucmpSVmNVMEtGRVZoaWhEY0Zy?=
 =?utf-8?B?SWdRTGgzRlZKN2hsSS9SYllwVFJvY25tbm5ONE5la3NLL1ZBQ3ZaUU5OcTlk?=
 =?utf-8?B?MlVIVFlKK3Z0cEhQVElWSWY0NndDVENqU1hkbE1haUtvNEJIdXZLT2RCeWlQ?=
 =?utf-8?B?UVpRRnpydStIeWFpL2tJR0xkUUJkVHBaaFprNXZjSWx6a2loRXFCVTc3dnJS?=
 =?utf-8?Q?yCEHQMe9r0nAp08rpstVM1g=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: c7338121-669a-4c65-acd0-08d99fa7249b
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 15:24:07.3397
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: itYKbzCZk+N1nQG6srnJKYkZO2UfuayOZtYHBjcao9Bw/Ejmmef6TcDdNKlI+QKLL1rQSa3eW1bq5gxelFb1uQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3738
X-OriginatorOrg: citrix.com

On Thu, Nov 04, 2021 at 01:17:53PM +0100, Jan Beulich wrote:
> On 04.11.2021 11:48, Andrew Cooper wrote:
> > On 04/11/2021 08:07, Jan Beulich wrote:
> >> On 03.11.2021 17:13, Ian Jackson wrote:
> >>> Jan Beulich writes ("Re: [PATCH] x86/passthrough: Fix hvm_gsi_eoi() build with GCC 12"):
> >>>> On 27.10.2021 22:07, Andrew Cooper wrote:
> >>>>>   if ( !((pirq) ? &(pirq)->arch.hvm.dpci : NULL) )
> >>>> I disagree with the compiler's analysis: While &(pirq)->arch.hvm.dpci
> >>>> indeed can't be NULL, that's not the operand of !. The operand of !
> >>>> can very well be NULL, when pirq is.
> >>>>
> >>>>> which is a hint that the code is should be simplified to just:
> >>>>>
> >>>>>   if ( !pirq )
> >>>>>
> >>>>> Do so.
> >>>> And I further agree with Roger's original reply (despite you
> >>>> apparently having managed to convince him): You shouldn't be open-
> >>>> coding pirq_dpci(). Your observation that the construct's result
> >>>> isn't otherwise used in the function is only one half of it. The
> >>>> other half is that hvm_pirq_eoi() gets called from here, and that
> >>>> one does require the result to be non-NULL.
> >>> Can you (collectively) please come to some agreement here ?
> >>> I think this is mostly a question of taste or style.
> >> Personally I don't think open-coding of constructs is merely a style /
> >> taste issue. The supposed construct changing and the open-coded
> >> instance then being forgotten (likely not even noticed) can lead to
> >> actual bugs. I guess the issue should at least be raised as one against
> >> gcc12, such that the compiler folks can provide their view on whether
> >> the warning is actually appropriate in that case (and if so, what their
> >> take is on a general approach towards silencing such warnings when
> >> they're identified as false positives).
> > 
> > This isn't opencoding anything.
> > 
> > The compiler has pointed out that the logic, as currently expressed, is
> > junk and doesn't do what you think it does.
> > 
> > And based on the, IMO dubious, argument that both you and Roger have
> > used to try and defend the current code, I agree with the compiler.
> > 
> > pirq_dpci() does not have the property that you seem expect of it,
> 
> Which property is that, exactly?

I honestly don't think we expect any property of pirq_dpci, it just
tells whether a pirq has a dpci associated with it or not. As I said
on my previous replies I think GCC is not correct in doing the check
after expanding the macro.

The relation between a pirq and it's dpci is an implementation detail
that could change at any point, and hence the complain by GCC would no
longer be true. That's exactly why we use a macro to get the dpci out
of a pirq, because how that's obtained is opaque to the caller.

So while it's true that a NULL pirq will always result in a NULL dpci,
a non-NULL pirq should not be assumed to result in a non-NULL dpci,
which is inferred by GCC by expanding the macro.

In this specific case I think the change is fine for two reasons:

 * The pirq is obtained from the domain struct.
 * The domain is known to be HVM because the only caller of
   hvm_gsi_eoi is hvm_dpci_eoi which in
   turn is only called by the vIO-APIC and the vPIC emulation code.

I dislike of GCC doing those checks to expanded macros. In this case I
think the change is fine due to my reasoning above.

It might be appropriate to switch pirq_dpci to:

#define pirq_dpci(d, pirq) \
    ((is_hvm_domain(d) && (pirq)) ? &(pirq)->arch.hvm.dpci : NULL)

Or to an inline helper.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 15:30:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 15:30:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221636.383440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miegv-0008PL-Mf; Thu, 04 Nov 2021 15:30:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221636.383440; Thu, 04 Nov 2021 15:30:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miegv-0008PE-If; Thu, 04 Nov 2021 15:30:13 +0000
Received: by outflank-mailman (input) for mailman id 221636;
 Thu, 04 Nov 2021 15:30:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miegu-0008P8-P1
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 15:30:12 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miegu-0006k4-MS
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 15:30:12 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1miegu-0003A3-Lm
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 15:30:12 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1miegm-00039O-7W; Thu, 04 Nov 2021 15:30:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=bslyrMgq7JcyxCMheEO3gus9zjP9upMu4xt6Cchn8Jg=; b=OUwjlIpMLS4CvnIhE4gyRierHg
	L+YCbXjUDYqm4Hp01bJ2y8n/oQLNKEdCpOiLXShBRdmmZHnlkMJW2czZXCNy61UTSYyIJ/oEYdEzn
	I4T2cil4GKOVODqaKWSixkDLMPEL5C4y3wLV6KVMV0F30s4KJg8Muz4MA+3x1Z8lbQ1o=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24963.64635.597689.447218@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 15:30:03 +0000
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    Wei Liu <wl@xen.org>,
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
In-Reply-To: <YYP7EkWGdvlDzZE8@Air-de-Roger>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
	<77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
	<24962.46376.136195.463274@mariner.uk.xensource.com>
	<1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
	<67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
	<2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
	<YYP7EkWGdvlDzZE8@Air-de-Roger>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monn writes ("Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with GCC 12"):
> I honestly don't think we expect any property of pirq_dpci, it just
> tells whether a pirq has a dpci associated with it or not. As I said
> on my previous replies I think GCC is not correct in doing the check
> after expanding the macro.
> 
> The relation between a pirq and it's dpci is an implementation detail
> that could change at any point, and hence the complain by GCC would no
> longer be true. That's exactly why we use a macro to get the dpci out
> of a pirq, because how that's obtained is opaque to the caller.
> 
> So while it's true that a NULL pirq will always result in a NULL dpci,
> a non-NULL pirq should not be assumed to result in a non-NULL dpci,
> which is inferred by GCC by expanding the macro.
> 
> In this specific case I think the change is fine for two reasons:
> 
>  * The pirq is obtained from the domain struct.
>  * The domain is known to be HVM because the only caller of
>    hvm_gsi_eoi is hvm_dpci_eoi which in
>    turn is only called by the vIO-APIC and the vPIC emulation code.
> 
> I dislike of GCC doing those checks to expanded macros. In this case I
> think the change is fine due to my reasoning above.
> 
> It might be appropriate to switch pirq_dpci to:
> 
> #define pirq_dpci(d, pirq) \
>     ((is_hvm_domain(d) && (pirq)) ? &(pirq)->arch.hvm.dpci : NULL)
> 
> Or to an inline helper.

Anyway, I don't think there are any functional implications.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 15:34:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 15:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221642.383451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miel4-0000b3-8l; Thu, 04 Nov 2021 15:34:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221642.383451; Thu, 04 Nov 2021 15:34:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miel4-0000aw-4b; Thu, 04 Nov 2021 15:34:30 +0000
Received: by outflank-mailman (input) for mailman id 221642;
 Thu, 04 Nov 2021 15:34:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miel3-0000aq-2T
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 15:34:29 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b1fb6473-3d84-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 16:34:27 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2052.outbound.protection.outlook.com [104.47.6.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-23-f7tNf56YMyq1hLhobHP8AQ-1; Thu, 04 Nov 2021 16:34:26 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6863.eurprd04.prod.outlook.com (2603:10a6:803:12f::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Thu, 4 Nov
 2021 15:34:24 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 15:34:24 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0072.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::49) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Thu, 4 Nov 2021 15:34:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1fb6473-3d84-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636040067;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=gmu9kaCm9o+ZEbwJ6U7G597rnuvXZMSx8p6omsSrTHY=;
	b=KI0maFFzGZ9/Sy3lWwU7xiIC+gMbZ2sHVB9ya97Am5yLUCVGmCy9wtJ4hjMR0FKmxsm2Cy
	SwfCYcvR28NxEQJ1d8UmtY03X8DJd0XzlbXr5Q1Cr37DsmmKo3bSiHbVPucXRppOSiUYIP
	g7Jzv2Iy4jUhgl33DKsTrE56KUJnlWQ=
X-MC-Unique: f7tNf56YMyq1hLhobHP8AQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JCT8slFRzH+xoXQ8nxGHglK4wfqAHu+yo8bQEUyrfy9PztjJ5ugiEfm0RoKJh7rAHeFyDj9g1FxLsb9eu1rq1q4G7wzArlGsyBN3gsA3gHQNxFMcubk4fVmyVdBE4RESAOVoCM53LP4PIdC50C8bV34sEnsohDspwV2XRdjFa8r9DJ+Ece6a1GUG0HydPBoUt9gVndbYElm3Mpn9kyLuSaOsaCsnabz+TNTHLTKNFm54MAZ4I9dOshshs69yU5YzjxZXOSNaFlCXswuHBi+hXChUJwsoY/+meJPyTRbJgC/A5z9fK/E99exPhZ/492NMz31WFJLfx6jGkmmFehXAQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=INVcWkniTwhLZ9RP2WZneuVnVIWET/vgVHQxaeEyGYQ=;
 b=MFGb4moi26WtOWOxDw1nypnhhyUV50ggvMr3OWnARVx2rgj/09QH/+0F0UWOKHxMn6EF9TAF+JWkMEVjvKCWwmzlC+m538hVn5ikAps7shdgu2TReU3LmUI+7Rnp2OiNI/EaV4DXUCkasDVx46XigY1ewiuvwK6oigPdylyx6PIX5uEX97jgvcnLIVBKSxOzG8OOW+4RR25HaUpgr4G2qYi8PbIq7w3AcooxlMWcn7J5Wc0V6ZPpDGUak8YicKvs7p+y0jDnM1OZhE1ZDzVulx7Je9mWdQNbaosyMVDVBtRDqFTP+MycEe7UvZlpYqGcbDuOYXTRYyaK8v0ZYPF2Dg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8cea6550-ce3e-5a1b-32b3-2a3d3d717711@suse.com>
Date: Thu, 4 Nov 2021 16:34:23 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Ian Jackson <iwj@xenproject.org>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
 <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
 <24962.46376.136195.463274@mariner.uk.xensource.com>
 <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
 <67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
 <2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
 <YYP7EkWGdvlDzZE8@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYP7EkWGdvlDzZE8@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P194CA0072.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:84::49) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2683df8a-aad7-42fd-f38b-08d99fa894a8
X-MS-TrafficTypeDiagnostic: VI1PR04MB6863:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6863943A6E3EF4B589929691B38D9@VI1PR04MB6863.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	fatDvMSmCqIaXia6ZdQzdq81GLF6P/Vk/9feb6AmBYpUmJUkcjXQxvmszMHI2W+r8XOzFL1qjBzzrsxvfpux7WR6luvkILbv6Y53BDBP8hb3C62pULQXKRt4SxmFlZSF0wEzN3YdIhrbwFFunP7q5/iFLVcEDdrgds4KIkZrbD8+myuNEfjUmINoXMJVdoo4AM4WfXC0NDdWcX1Z+yAWleViSatnM8QVEjFOoNFzEVzRKPtyIvcQMfBJkHqeEkl1kQHpigHr6kurkedDzBe1aRZgfta1Rpq1GmqEUnl1RVDoJqg9wTvLlXMxDdOZHycgrlmL+PWw/vQZmmqJ9Wykz2yf7VNlyH8vfUIJ6ppnWd4kola80+FBZjedXprXSIPexf45FBGCTHSQ9y9W++C6j20xLsbiXolVLrUqHRufsvxlYTF0hSip87v1l/skf26VqQg70epXFBEgyPK9tOEeK6Nd/QHaZtBUC3g9D686UJT4ncfqDhAjPUbTzjlI8k4Z3jE/Wv6/ZU7voqhYQCSRu0cQHgP7VkhV0s1BA7PmjrkuOvtSYH3HqaRm8648Wr6XBdH6LMVSlg/pA453/K2R73X+ZvOn3VKJV0PRxN5mDU7c/sctNxPP2NZjLJt3NmKDCzb51+9ZN15Rh9TRJ3P+8+huQZTuGgUBMxJn+jnmORvlKTIcj2uc8vBvsO9OUiWLLM0wj6mtVj5h31o7/eXYtr9eOGRMiLKczRXjoIbqSnfzXSCaz9I2hB4EQThXo8OX
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66556008)(66476007)(4326008)(5660300002)(508600001)(4744005)(66946007)(31696002)(16576012)(53546011)(186003)(2906002)(86362001)(6916009)(38100700002)(2616005)(956004)(8936002)(8676002)(31686004)(6486002)(26005)(83380400001)(54906003)(36756003)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?FgA5wpjnkS4z6ZpSQVdGdxjyh96/7JhtvKNMvThkYKDXvPbD8Vjh2MFeICko?=
 =?us-ascii?Q?3LcVW+QLSb9w+npo34z+qw7GbGHVWsQq4Qw1ZnDzcmco5VqZaEhAsHETtf1j?=
 =?us-ascii?Q?FjTGCokCh6YhVyz8kyvB5QPGQfBYEPLUfXgwhiQfu9PqwLLE6nQOI63t/KSH?=
 =?us-ascii?Q?omuuivEDFRAh8qE+HtOcShEy6KMKWfrEoUQQ17PkZLUQRfAiURQORsZu9ZI9?=
 =?us-ascii?Q?+T7ajlXIudJuHq/bv+NyoCwrV8UVToV4WrgPhmn27Qhfs6Al7kctJbXnlRqv?=
 =?us-ascii?Q?ZmkhXgQtUb+q4byVAuIDkniWh28grVNSxbDEaMBHAk6SO6oqMdgjcI7AyTDK?=
 =?us-ascii?Q?YwKU4ItPvdnW9lbqwvRAQRPojh/wHbAwmGvB2l3/VUYky08KwnqlTm3yXHHN?=
 =?us-ascii?Q?coFiQhjnXEoQN3AJTNb3hK/eMrQL+HDNG55g8ynDmSJgxda9xVyCIIGh5Lto?=
 =?us-ascii?Q?JMLirRy6DJMdM5HN498hamPNplVlRCokSzwnMEdhlNUcqa5UGY269j30j/E6?=
 =?us-ascii?Q?ac0KUojG5X9kHHfNw62VVkHCskWw8SR1LjMemPc3jcqsfqjbN+RvdsYS1w32?=
 =?us-ascii?Q?dHOjMrp6RwK7wmwGw9+bLDz4Qn9pMI8KgYLAzLxqqNMXqkKfUhqjIbckEefy?=
 =?us-ascii?Q?eEUCpdH2XGasZMKmrAOVZXr4/6XJdp9TyiQCr/jEsa/QQBvcXFc61i/Madg+?=
 =?us-ascii?Q?bbz3M98/pzV8cO2jDocRHUFcrUO48vb9pEnI23CW7YHk1kv3ydPqpcjBkjJF?=
 =?us-ascii?Q?5EZtjM9yX0IybyvfT5i2u9U5RIE0O9xLmw2HN2Z0Lw18/CnSjQJoAuZ0UQ5H?=
 =?us-ascii?Q?Oea4Ln0FkgyqbwUPKQPSDCEaxJLZR8VDnoc2P9iViEPDQxE2gQ9g1RukrHfP?=
 =?us-ascii?Q?kiRw/WVOpR8x2ssQunTe1NOfLcrBNgFe/ZqKsEdMvqW4kPnXBDxMTDX5ZL2P?=
 =?us-ascii?Q?Q5vXsjd50dsECg30jd4Yuc/mBbErKxydfouc9S16fwvXnHpe7hQwPzhKbPIV?=
 =?us-ascii?Q?mT6MBRMLycDqkemV/YPPIwBO9gE7aHedrL3i4WN+GxzEvNs81sgjNOnWSQ4V?=
 =?us-ascii?Q?FScm5fbmwqozNExPAsx7VpGcRkpfTfvZBqKjOb0PHc+7y0ChJl7pg0+RJHZh?=
 =?us-ascii?Q?lrscl8bf3otyp7t4vrXuVv2FcMN4BmrafNmn6WbyPwHLSOFkGia+k9uM4388?=
 =?us-ascii?Q?TRLUzwot/4pSMsU1BrfXDvTpvt6kMGCunNSLyAiohJQ+JYLdKqVHXKmZ60lZ?=
 =?us-ascii?Q?nYL2DdA82nSMjP91biP0lsljPIjXViS2KwhyGNMUCGvdnbHtFkD3qsqsOQbo?=
 =?us-ascii?Q?2N7o6oBmK6ktyzAIywJxpiG5h3XjNd4cmy9+xo9TcqRLwdcLFr312Ax1zq2H?=
 =?us-ascii?Q?jVx0zbWv6zRJtoaHJO/ckuJvTXoHOKaaaNMr6W1N+w0X9u/JbiMfOzrOg2Li?=
 =?us-ascii?Q?7sUI/QrqP7Gm++UxBtS20QUYSj6kxCH13eVlFb1QokMnRI8g2bTcuMLwRcer?=
 =?us-ascii?Q?/mpQvpf/fJ2deupctRRgxDHSXlG3umUHaIO5fDo4b/JnydkgudDkWAYx6idE?=
 =?us-ascii?Q?v21gRY4We1SuGlBMCLF02ZK0GZ549aa7fyKfPVc16IiCOnYZtG+97M2pG7Pq?=
 =?us-ascii?Q?6OBL4BPGS6/Gb34xx48HC+0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2683df8a-aad7-42fd-f38b-08d99fa894a8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 15:34:24.7997
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bMiN/baGH9ShS0IZKSoNooA10LqSb67DwGMAJo8FQPdHgXgrH3xSq88EDtn86WC1rduVaTNiUO4pIRBF6tHGwg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6863

On 04.11.2021 16:24, Roger Pau Monn=C3=A9 wrote:
> It might be appropriate to switch pirq_dpci to:
>=20
> #define pirq_dpci(d, pirq) \
>     ((is_hvm_domain(d) && (pirq)) ? &(pirq)->arch.hvm.dpci : NULL)

I don't see how this would help suppress the warning.

> Or to an inline helper.

I expect it's a macro because an inline function would cause header
dependency issues. Plus both that or any other attempt to leverage
some means to circumvent gcc recognizing the pattern is only going
to help until they further enhance their recognition.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 15:41:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 15:41:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221652.383461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miera-00024m-0b; Thu, 04 Nov 2021 15:41:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221652.383461; Thu, 04 Nov 2021 15:41:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mierZ-00024f-Tj; Thu, 04 Nov 2021 15:41:13 +0000
Received: by outflank-mailman (input) for mailman id 221652;
 Thu, 04 Nov 2021 15:41:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mierY-00024Z-1z
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 15:41:12 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2745b0d-3d85-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 16:41:10 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2177.outbound.protection.outlook.com [104.47.17.177])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-12-SKVcAAQJNZmzf3DAtTQFog-1; Thu, 04 Nov 2021 16:41:09 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4384.eurprd04.prod.outlook.com (2603:10a6:803:6f::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 15:41:08 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 15:41:08 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0055.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Thu, 4 Nov 2021 15:41:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2745b0d-3d85-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636040470;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yoCaEg0C3Fg1pJTSzEB8ER9mwM8qGYZjmRopiTyZKmY=;
	b=YCuCz/BfKWzZ9RGno3iW8GHenu0ZfucLGnlnEaq12QnbNiJW/vZ8AXNao8JthaQ80X/kwt
	OTYj5Vl0+dCLZJgs4oHUHY/UApAaxXfAZr8unIlzbafKFfUY08B/fq+zIpcQFGPMDF5HGg
	tAlYoedSh8Oei6ohZEcjBwOO7XGu/xo=
X-MC-Unique: SKVcAAQJNZmzf3DAtTQFog-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g+N0BJsplrDoO67zNZdTwUBPxdC7Z3f6AM0/Aaq+4aDzGGx7MenLmMB7G+Wa3j2/lqorcXbHkMMkoYRRlkmAqxokAW3LO8XkyZmB5Ul0XGcc76xr62nkxEtefLtvSNfTBd/YGWQK6mt0K8TuUAlda6Qvw1Y5F/GhXbcFjtvlqMZgrrB69ti7e3kT8vRupe1ORtTIite1o3PMpR26OFHHNw3yh1uXg0bZnDhgHbZ2U6RgR2zt3NOPiWe+/Btd1e5wQdFOrRdXCdfEsB6iFxQc7UK2e9gOPn5txQ5QS/94O06fCtwJH107f/qjrfToYE2XKcH7pT7lcXSPZTWYsB9j3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JkLnCSa4yT7YYJx9k1XWUf7ff4DEuuzTFJCcqDj8Wv4=;
 b=H7M7mTxsR2s1exjNZ/W8GFVBo8bHVIwwEMgRfMwJOU/aaWVYAhi+FhJ0DwTIeEfvcXb4SFIbLvYUoSfc1Y8A4yqpnr0RWWN7e7TxZLHoGlDg4tPj9KJpaMmzz+b/XMQTEtzB7yvaoUCFr/RGi6xZLmP15QmVtzvGtwmVs1KbIaFEfCKj8+O8hZlj90AOg4m4F9EcA+PXDatWK4q5YWSPb/VMsbpCSkz8rOnn+4PtCaDQCDdlxImDnC4ATD80uhM0T7RH0QWDNPKhk0UgBDILAhEx+/ZJfifOAjgOsMwtlPimH+TAj0/6TPscoCFymscXA2Q1JxSIU35912RDzAhQvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ea046172-703e-002f-8e12-c579d5067b25@suse.com>
Date: Thu, 4 Nov 2021 16:41:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH][4.16] x86/x2APIC: defer probe until after IOMMU ACPI
 table parsing
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Ian Jackson <ian.jackson@citrix.com>
References: <47392789-2f10-9de7-036d-b2345a24a028@suse.com>
 <YYPsT7wp0aWZapHU@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYPsT7wp0aWZapHU@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR1001CA0055.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 754857d7-1542-4825-5c77-08d99fa98500
X-MS-TrafficTypeDiagnostic: VI1PR04MB4384:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4384DF37D5F3E4A259656FE6B38D9@VI1PR04MB4384.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	s1xjzix8GaEICSwkiiJn89Hz4uGNvxbs218MbhZ00E+Ad3TqyQATx9W76lGfrTsfwNHInJaiCKgulND6aPBGuQDEmQL6ADDnclCrdDePMg0x7Jii+tGLYfYTQ8IimcddUD0R/tLJzgRTn0qov/autypf/rLTYber5FwlRu6Wb5YPztW8krXRmWJIYt7Q2JRqo9ViLdru3YKWzPJBvlg2LBWYPonQ+lGceQd32m6viadShXn8NOTGMAmEzQy3OkTWMZ0EF7vIN7qKAQnTrLS7HugroW0O+gG6vcfardCSaMl1Xk+fGW8I9XD/i6VPlm2RkNFEHJZUwvVOOit2/YYFPE7kakOqLZeBGOZHfsc9k2oQfSPmslcXxFO3Lwrpt9VgVDoAT4iGjUMxqA+FlhYk0PAdZ5/sNqS8O+4hRmfPMyfz4VbFeLeUgasM9j76uJkARySncie33Az2i2ERdReNSHB4e3LXjA7NNRzsb0aXXWj+iVfp/mVr3ZzhZPwdBFoig5JD6FfC3bj7Q7WygFFKxbFY3aAw0MyylD0vu6p4xmqMD0VFalW4FXEhqlhKPvyL1nzK2efoexN5anZBsOm/TT7hL5zaGoL2LGbhURVcmHDTpndHNwmE+tcKQ/BTNRIJPiUTu5EdPNf80a86GFaW4t7x8/LVuqdR9sNb1l39AvUcGPV4Cc/lS2CVntvQ3l+AUsyyLxh1L41IDzHtKmUvxsBzRtUFVFLNCDVj69bnjTMdvpYEzEiwFx2xqhEpWuMU
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66946007)(31686004)(36756003)(508600001)(53546011)(6916009)(31696002)(66476007)(66556008)(5660300002)(2906002)(83380400001)(4326008)(8936002)(54906003)(186003)(2616005)(38100700002)(26005)(8676002)(86362001)(956004)(316002)(16576012)(6486002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?bueyCv6/xjnxFOzlleXQMZe0jQq+WMJaZ3T96VQF8DY9TAdvjsczfA1SXTMM?=
 =?us-ascii?Q?JUFLP06+fNINx8JD5L67MT8vLP0X+35qwbnsGwQZ55O/AdwGbGnWlBUD93B8?=
 =?us-ascii?Q?YO/Cb7s2Z34I6gHz+/811cNODONNZ6g07Q9RnCdc9X77gVRLUJ/wbJsK3z4U?=
 =?us-ascii?Q?tZ77J+iSHx0ACVpOCQKDRBzWQMCt9j44RsM8DASpEksPebCh4hVyjHk3tY5n?=
 =?us-ascii?Q?VEUqbWfw6e05qd+Y9oRYQh0l1X4fWM6sr+W7hc01+8hDP97OTR9ar2IxGAeQ?=
 =?us-ascii?Q?z30j/X80BtjHHhOCJsPthgSTN3ip0nn7yU4kinAqFRjExOYsXMnjiPcp6T5w?=
 =?us-ascii?Q?2L8sVBPGcWWLHKzEMRV9mv+gGGsw722u4oXqSZ9ET0x3tbT8RWB5wHlLxbgM?=
 =?us-ascii?Q?w4VbBiK/EjhGJ9wk8xcV1eWDIV4R8WJ+ikcm1xjH+AXZVHltxrKUGIr5Usdw?=
 =?us-ascii?Q?dBDX2+YBmWvetthHB0n6Ixpi35LKxJD/wZlsL95mpH6IeddTVDSgRqkF/ct2?=
 =?us-ascii?Q?TImo4g3VepVZpmJk7+gK7sctABGmlQAhkTrXOh5IbTL9gBlDvpugoj74UX1P?=
 =?us-ascii?Q?omNTYJDAU5+LNTjt9Qc+yaBgaBBbYnWg9CoGl9OMfzFTbnM07VqJ7HAptCyY?=
 =?us-ascii?Q?I97vLM9AdH/SYAlNoMgEsotB8Ix9PHiFG6eJuB3WywwURl4Sujc4Uw7HLGQp?=
 =?us-ascii?Q?r3nFRrAWdWt3QQ1SjNJTRPfmJ+9jGKJzsIsjKAVlsykDbWT2kiV5i+206e6e?=
 =?us-ascii?Q?u+Slgo5l4bP1/gl6teqhLeZjLqEiaLMqgxmv9C63+LrjxszP+cEp/6kXBXEH?=
 =?us-ascii?Q?Yu8RF6O+ltyIZ01vTtz9HV969B0X6lULajVln9M5YzweaP86YKix8MhQfVTw?=
 =?us-ascii?Q?7UWhmJhhs/kUrwCyOyn6LwqaiVuV4GVgq58+1yzsnsOv+G+KWDIUPZphXbb/?=
 =?us-ascii?Q?wi1zEw9L5z/MtvkEbGpT7ZY/bYNehFgK8BuxDlnlXUBiMVaqdXMI9FdpuAkE?=
 =?us-ascii?Q?fkbtG/OIq3r4SkmcPtbVeCSpbMnzYK4EA2jP8nSlfSExP0J2GjSYGP3M7Zbh?=
 =?us-ascii?Q?F6G4iuzN0AkSpW0QHdUFja4sYPYgTxs9NBPvEJ3gigbOJe3m6Sjhv+Os2M2B?=
 =?us-ascii?Q?uZoN4QWgxnw9m+zgSpblhDc+Yk6ht3yyllkDr6eGvknNVaaaBpvCKvZOBwkc?=
 =?us-ascii?Q?yhK2GqRgrnX1O6iEW29rf7ttqSFbMrK3fJYqTvFG1YzVWQSyVjVIelnMxmb1?=
 =?us-ascii?Q?6DpWU0zEdqr2MtFHo+NZScnMp5Om84l++7hhEBPmHjmFJnhrZQTLuqfPrb4s?=
 =?us-ascii?Q?U+uYEjiVTF/jpm3JH9GDZryF2IPAz9109kATGdDv07JTcM8xSCcYCJvTC4xu?=
 =?us-ascii?Q?sLhPlC1neZF8UL+V91J6ovQkPwruQStbNuPhxYvRlc83cxWrEz/1r2pAWsfn?=
 =?us-ascii?Q?RRvLsYpNwvTDLg+Qe4Qe7EZNYv6dq/K+2ZPgUjossH3wfT7Mba0czYdoQ8Dp?=
 =?us-ascii?Q?6htdJxVVcGCS3snk3a5jWaJNRYkf2A98nUBw0xCpBDN3Thf6wLI2yiwD/kq4?=
 =?us-ascii?Q?uVWlnpT3jgrzpnO4FOVTmzekFpD5i8Jqgs6F4s52Og+bOlGaY4v6Snut1MeX?=
 =?us-ascii?Q?+9mlirF0DO0mgOdYK546HI4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 754857d7-1542-4825-5c77-08d99fa98500
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 15:41:08.1497
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nDBKs0Z35l5KEzoI7sPF2jBMNvCf4ZjK9gztTPKQOho7TY62EZzYNJMre21eIynQfVLNPgePY0ItYV5MXedPdA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4384

On 04.11.2021 15:21, Roger Pau Monn=C3=A9 wrote:
> On Wed, Nov 03, 2021 at 03:40:55PM +0100, Jan Beulich wrote:
>> While commit XXXXXXXXXXXX ("x86/IOMMU: mark IOMMU / intremap not in use
>> when ACPI tables are missing") deals with apic_x2apic_probe() as called
>> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
>> affected: The call needs to occur after acpi_boot_init() (which is what
>> calls acpi_iommu_init()), such that iommu_intremap getting disabled
>> there can be properly taken into account by apic_x2apic_probe().
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> LGTM. I cannot find any dependency between acpi_boot_init and having
> initialized the apic.

Sadly there is, and I've now learned that when believing I would test
the change yesterday I actually didn't (or else I would have spotted
the problem that I've spotted now), and instead I did boot an older
binary: acpi_process_madt() calls clustered_apic_check() and hence
relies on genapic to have got filled before.

I'll have to see if I can come up with some variant avoiding the issue,
but I suspect that's not going to be 4.16 material anymore then. My
first try is likely going to be to simply pull out acpi_iommu_init()
from acpi_boot_init().

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 15:57:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 15:57:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221660.383473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mif6R-0003Zw-8h; Thu, 04 Nov 2021 15:56:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221660.383473; Thu, 04 Nov 2021 15:56:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mif6R-0003Zp-5f; Thu, 04 Nov 2021 15:56:35 +0000
Received: by outflank-mailman (input) for mailman id 221660;
 Thu, 04 Nov 2021 15:56:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xlTz=PX=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mif6O-0003Zi-Og
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 15:56:33 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3a43461-3d87-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 16:56:27 +0100 (CET)
Received: from pps.filterd (m0246627.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A4FtRAh007643; 
 Thu, 4 Nov 2021 15:56:22 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c3mt5h8gb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 15:56:20 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A4FaOGF177826;
 Thu, 4 Nov 2021 15:55:42 GMT
Received: from nam12-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam12lp2175.outbound.protection.outlook.com [104.47.59.175])
 by userp3020.oracle.com with ESMTP id 3c1khxdc7g-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 15:55:42 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BL0PR10MB2865.namprd10.prod.outlook.com (2603:10b6:208:72::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 15:55:40 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.011; Thu, 4 Nov 2021
 15:55:40 +0000
Received: from [10.74.104.20] (138.3.200.20) by
 BYAPR01CA0025.prod.exchangelabs.com (2603:10b6:a02:80::38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.17 via Frontend Transport; Thu, 4 Nov 2021 15:55:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3a43461-3d87-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : from : to : cc : references : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=6iI3dZjA1r1YLhi0I3cKEArQZIA2GcYQ+WPrNcay3+E=;
 b=zz1LiqhE9Swsa48CA4BgSKfjsPXvTxCfcafbny3VXEM9sXcwFykN9KVHAMN64yq4puBM
 sPYkNE7ap2fs01GwVFZxX7kiKe+UumDuqQzjjIz2jeAQtQ8MtDYJY5lAA3FKiDcMXXk9
 m3NleSbHxWMrrgX2XEDVjzVKjCZ9+LcDX5ju4ZIp2NMqOwhPX/2Ea9zVjfuu6vQKCar9
 jXwNhSrKBSuhT1rcxD6dwIxy/sdhJn1EbonM5J39x5g3kKpzMaefqqzB3ImFe2ZSeMoF
 n2pZ9NfkY5DP9wxKRdJSMbZuGvOEYzM+gzhiLIBlANzaF7mvaYRCr8Z6yuh9GiL9ziFV Dg== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jxQ8uvZLNyZFbo409FopsHq7kE1hoVsGJ3AyeFLPt6fRr+s+1af4bFkVzIju+EAiSYmkl1hEptGUeFGoBN6/TBIKzdOsr2nqIFBKGHX29S2JYk1+Dtyb6Ett0jiEvcWZK7cQ4SlmUyaJgTdCcO5GfApGmoEibAEZXb+qxbjw7CblDvPlQ4dTe33VdYVojk7lniu6rO/+vwLPS2ccvHF4THIHqygbOjdi52c9dFYKmAvEpUl/ZvjfYY03BnyX+KsoaBKN5QTMLcphWAzwD6osPmXgF4pVcLrnewq9zH4EMXjPbkih46VcjPmlFZDa0QYnAmMHnUez8iRrZdL5yrB4vg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6iI3dZjA1r1YLhi0I3cKEArQZIA2GcYQ+WPrNcay3+E=;
 b=BTNNEjkniLxsNZx4Li5MQtNC6KW5Bs+8qMrbLKEU0yADIVI0SsuAmlhUBAaNdgaCmZjYyDSlytYKwZlOQFV0cva1hTRnH0CV/bFJ6V07Yh+VxFrpDD1u2LBqqoijjZlAXC3Dur8Y58Mn+Tsu9BLXub/rEQXPCXhr60NjMFRqt+A4eyKBn/My34/DE69hz8q7q/Y6W/81ENHd0rMzwtAOICziOzmRXuCDbCWHUFyw1zQCoREneg/aQfguOdqZpyeSXnsIeb3joB4OtpMFRXeyQzEAnthMTTFE0BPhTGxrgKlRdjxnyLvhkiVGHdio+LFsn3YeGXQKt++GTFoWMiA9ng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6iI3dZjA1r1YLhi0I3cKEArQZIA2GcYQ+WPrNcay3+E=;
 b=VmTuZp1w1Q+xzwcYWQWhEfUfrLqGYsUGHZjIZmB7fd4N4NuRxWxQ0S/fg4P5833iLFFs5X6QxJ8IUImbfKfatha28AD4/o6JHAstOkx4LC14vha9/NhSFn0chTSzX0MOnujpJVmmENikzwGQzY+qdwQsHXJ9FKuZdZJV39N2HWU=
Authentication-Results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>
Date: Thu, 4 Nov 2021 11:55:34 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
Content-Language: en-US
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
        Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
        =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
References: <20211102091944.17487-1-jgross@suse.com>
 <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
In-Reply-To: <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BYAPR01CA0025.prod.exchangelabs.com (2603:10b6:a02:80::38)
 To BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f7fbeb1d-2c1d-4526-4561-08d99fab8d37
X-MS-TrafficTypeDiagnostic: BL0PR10MB2865:
X-Microsoft-Antispam-PRVS: 
	<BL0PR10MB28658F11D15CC9F818E64D2B8A8D9@BL0PR10MB2865.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	DxQGjVyIB5XmLkdvsRexmk08/wrLch8DD/LNcep4OMk0I/jONuvjnCVGDNYewiusHjGuRJ0vtvXvbbUFaJaCH6ftz8LRz4AvFte/9zvYnFU/ygt6+sTYUsjt8rJRe/bO9ZWdmAtFXIal7RZmtuF4CWPhV9+7EX19gNH2104oVK87CUTDmhETbwOQ0I4p0EggzIkMypCdhdJ33ouC8qkjg1ynTLfZ17DL+mtF+pGHdOQ8KfhrsySLx9tUKmWvByMewAdDM07GvOjksCkZKL9696/tqSSFzTy8lOVzQ8cV5jwWIyrpwSYwhPtYmVzIHEcrH4XBXXzp0G7bh1l0GQRxg6mrf/7MPWXn0Nmxe4v2+J63auznkHMDXykcnjGpTGj5IZE1HJUjmsXOj03/CKP9MnHlW2oViuQr1g6AZkzgbni53QO+CScjyrlrP8FjL2PfPSYP1zpuJmWBQtUhhl1ThQrJK6FqPjRdejAzzk6ccoDBsZ+bqPJ0pPdABzwP2vjYOAugKcQXEPba2l9qikMx3QG5ElqYJeqEw2y5ERmdjj6EQ/JS8inZhF/eSw77K6y1Y1shoU/vUbUPO0zlsmzOL59zyV93vB2MLvvpfNrBa843bCn8gsFwCmAllfR4TQe8E9OXRLKf/OY6TBWZu2OJ+CHdXeYL2qGaRscgacOZ12f9tTsH4lLmUiGXmLKqKOlM0N6+5c94luNjhPV24320uA==
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(31696002)(53546011)(66476007)(2906002)(44832011)(66556008)(956004)(8936002)(186003)(6486002)(8676002)(5660300002)(26005)(83380400001)(66574015)(2616005)(66946007)(316002)(36756003)(16576012)(38100700002)(6666004)(4326008)(31686004)(54906003)(86362001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?OTZHdHlRdUtlM1NaRUxjRlltcjNnWGkyRmd6Q2JxQU9IUnRnZ09KRE1XRDRq?=
 =?utf-8?B?dU83MVBSQWxUR0tKLzVaa2JXZjhQMld4dWp0R1VHQUJoSkZlRy83UzRkOTNw?=
 =?utf-8?B?QXZwTmhVM3RhMnRwOW1kOUtaaWhaWk5iaXdxellNNWsvZzZHOTNib1Q3VVB0?=
 =?utf-8?B?WFVSOGx1UFI5TktHVVlwZktINVVJenFUVHcxSkFWbmI1cUVKc3NobGpQcThI?=
 =?utf-8?B?MzdYdDlTODNQK3kzMlVjUHFEVS9uOTRGcHNOZEZabi9SUUVVMUgxQUhXVFV2?=
 =?utf-8?B?UVoyeHFxNUhaWC9DOXRPSEhDT0hKak82VTVweUZyK2VLNVlSQThzS3BWL3Vs?=
 =?utf-8?B?VFV1VXp2N3pGY3c5a0Vsam9OYmRyRHoyaEU0MTBIK3AwZnlyc1VTeEpycXUr?=
 =?utf-8?B?N1RpMWduQ0c2Ky9FbFFUdXRkODV2Y2FFRkp6TXhsNlQrVHd5VXFFdXBERWJz?=
 =?utf-8?B?alJBd1N6bTdtbjgvMTdNNGVIRG1zTlZjdDNER1lERHhSSDhtUnh6RjdKTktU?=
 =?utf-8?B?RElvNktLd3VESk8xeTJUcGFTK2oycXhhaXJDV09haEFoKzRsNFB0eUZPZ3k5?=
 =?utf-8?B?WXExdWNVNlZyZkNYamQ5QzZFSEhqbFRwNTUvSDl1NWdVSVBoZ0xIQzErcHh5?=
 =?utf-8?B?WFJ2OHppaURIOEpwL1RtSGZIS3ROaTNldTkvTUtRcVUwai9FK1cwcFVmcjIv?=
 =?utf-8?B?WUN0YmdXN29ydXdtbWhYR01qbUE5aDB3dEZ4UlhGczZOMnV5N2RpWEpaUzUw?=
 =?utf-8?B?V3pValpXdzhLb0xwQTk3Z2JEaUdEeHBDWjRGdExSSzVWcXBJR0x2dytHcTRD?=
 =?utf-8?B?dGVpU3dHNTFXNkNXWVRtRFZiMXhMeUJ6bWNkeUM1OXRLQTRyRUZUdHhhcXR1?=
 =?utf-8?B?VUNucE90MkxQQWdMbEJRMVJUM2VLRUcrUEZPUCtnczZweW50SVRJcTFlY21r?=
 =?utf-8?B?VGNHMGsyeXZnRHY2WFF6dFVYU3lKMWh1ZDVoMzU2aDAzVjJTRjNQMElVOTNY?=
 =?utf-8?B?LzRGNzd4TjB3S2h1SFR1Slo5eWRNN1VnUDJ3QUFkUkI1WjhpUk94VmdaVDBM?=
 =?utf-8?B?ZUo5NFJEelFIM2w4VDV5UFppMG1KMjZLbUs4SkpUQ1ZCVEZBaEE2eGxVTGJx?=
 =?utf-8?B?VkF3UWpabXlXZ2R0Z25PWEUzeHc0Wmw0MXFRNXRXZDdTZEhuVXNzL3JHOW9v?=
 =?utf-8?B?MDU4VWo4Zzd0WklXanVuczlCbHJOSCt1N1dqNTJ0Z2NSdXRIMWI0UzUvRFND?=
 =?utf-8?B?UmNaV1RQcW03YWtnMXQwRjRJQ3F4UW1uOFdYVjZoUlFyWVM2ZU5HNmJEVW5H?=
 =?utf-8?B?a29YSEdYRngyRG8wYzRlemFOSGNFRTNrRDMwTVRaQXA0QWR4a0Y2bGlSMHpK?=
 =?utf-8?B?NWVOWFh2YVBHNFJKbzNVa2NzQjBUdlV1QWV2YTlvdEpHMnJQYUdZZmY5MGJs?=
 =?utf-8?B?UHRmTUNONHBiOEF6OVk2aFB6SWxuaVc0THJybTI1a0EzdVRaVm4wdlRRV3NO?=
 =?utf-8?B?UThKVktWdDM2M1Z5MkY0QzJqUldHSll5ZHAvQnJXOEx6SGdEMXdSZDl5dy9C?=
 =?utf-8?B?VHo5U0dMc2JZUEhZakdvaVlUUjQvOUlvVFgyT2JOdjdFQ1ZoY2xDVExqWFpD?=
 =?utf-8?B?L3NKN1FyT3EwcCt5aXpJZXBWN3dBTUxZS3IrOThoQWtyclVieTgvS2FlaTR5?=
 =?utf-8?B?UDhTRlZvNmNIN1R0STNnRDh5cFdvcTE0TEdSZURJdjhjdkxRS3hLREJxN0tZ?=
 =?utf-8?B?c1kvMTZOSER0enR2MlRyYk9kUGhCcEVBVno0OC9Ba1NMRWpZNk5qWHpLTnpa?=
 =?utf-8?B?YmRNODNiZFlwbHpYWkF0NG8xMkI0dTM3TFFjcWk2NVd0OGt4YlhkYmFKNExE?=
 =?utf-8?B?VlAzdzlNb2xwQzViQTNYS3JldTl0cWltZitDMDFMRnFnL0NVVitGU09JRUtC?=
 =?utf-8?B?b2hYVDFaYk40c3l0aVVpWjRlYVhBdmxZOTZTSEZFTEJSWWZQT0ZpMnFsYXVj?=
 =?utf-8?B?RVRrWnZrKzFBLzdTQ0hPTUtsT0lmZ0kzVmcxVWRSNWgwb3FNcHRSY2RIOXlO?=
 =?utf-8?B?R1F4dCt6N1FmL25obU9nRlZ3WWw1N1BwLzd3MEJ4V3dYRTFCazNFanQxZVRk?=
 =?utf-8?B?MFl0RFpmNUFQdDZzUVpHYnZTcjdhZ0grQy9aMU1XZGh0UWJudDAyWFVabHh4?=
 =?utf-8?B?QUVtY1RXZGd2dnFMMW83eERDdDR6MmhhNXN4L1ZlMndxQm9CdFNJVmhiQ0VG?=
 =?utf-8?Q?lMIM8eQ8ojlY5NuiqaghEEiL3bnO6rDWP7UU1BmyJo=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f7fbeb1d-2c1d-4526-4561-08d99fab8d37
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 15:55:40.8762
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XzUNb1QSgK0nKpvlgzZbZM+g4olrKY65sokOSlsxeBKqdRplmP78LPEZN1uViEyae68MkaTGhhSECWOPKEaRKWjwiIjGeqtANrjE5rN0Odk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB2865
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10157 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 bulkscore=0
 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111040059
X-Proofpoint-ORIG-GUID: 3m0PyIltpDF4PZMgd8lxRO8nwPvbnZqL
X-Proofpoint-GUID: 3m0PyIltpDF4PZMgd8lxRO8nwPvbnZqL


On 11/3/21 9:55 PM, Boris Ostrovsky wrote:
>
> On 11/2/21 5:19 AM, Juergen Gross wrote:
>> When running as PVH or HVM guest with actual memory < max memory the
>> hypervisor is using "populate on demand" in order to allow the guest
>> to balloon down from its maximum memory size. For this to work
>> correctly the guest must not touch more memory pages than its target
>> memory size as otherwise the PoD cache will be exhausted and the guest
>> is crashed as a result of that.
>>
>> In extreme cases ballooning down might not be finished today before
>> the init process is started, which can consume lots of memory.
>>
>> In order to avoid random boot crashes in such cases, add a late init
>> call to wait for ballooning down having finished for PVH/HVM guests.
>>
>> Warn on console if initial ballooning fails, panic() after stalling
>> for more than 3 minutes per default. Add a module parameter for
>> changing this timeout.
>>
>> Cc: <stable@vger.kernel.org>
>> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>
>
>
> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>


This appears to have noticeable effect on boot time (and boot experience in general).


I have


   memory=1024
   maxmem=8192


And my boot time (on an admittedly slow box) went from 33 to 45 seconds. And boot pauses in the middle while it is waiting for ballooning to complete.


[    5.062714] xen:balloon: Waiting for initial ballooning down having finished.
[    5.449696] random: crng init done
[   34.613050] xen:balloon: Initial ballooning down finished.


So at least I think we should consider bumping log level down from info.



-boris



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 15:57:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 15:57:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221661.383484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mif6f-0003tB-Gb; Thu, 04 Nov 2021 15:56:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221661.383484; Thu, 04 Nov 2021 15:56:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mif6f-0003t0-DN; Thu, 04 Nov 2021 15:56:49 +0000
Received: by outflank-mailman (input) for mailman id 221661;
 Thu, 04 Nov 2021 15:56:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WbKJ=PX=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mif6d-0003Zi-5l
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 15:56:47 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cde77e86-3d87-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 16:56:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cde77e86-3d87-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636041405;
  h=to:cc:references:from:subject:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=i6IKeA5L4ynZRoHMubHW0AUNG0cMpoOq05AhBwLpwKI=;
  b=bBwdzzIknVdV2YwYaOrFTTfELdZ7FJP8+vUcCjMqdSEk0DuP8puSOMV7
   jqdzAjY7BeO6THPo3WmU18IqwnhfIHSf8AfTYpP7BUY29TtP7hFVEfLhG
   VNfBFxP4ODT02dFEpztAT8V7vwFyjqIy88anLkND7D7fXCy4DaDsPu1sm
   s=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: jHrg3yN4/FbqTdrgKw2SgDp4nSrwyIlsY94F9iGKSir05qmKiC5/JzdmtgygqkanNo1/Y+0e2l
 mTSwcGeY4Shdz9yWu4j/CWmET/v4ZjnYWBr/GjhHSwVmbFMnfbgGlSSTNwyboNd3+41E3xTe+7
 6kpKuE72ma+7vWNrpiaXSyD6zsQZGoA/cWit87Zwl5+MAVIKCdhw9fbC4btWw3i4f1QOn4pb/l
 6VJZCLkdbn4ZQoUVt+s3uzvlYNFVq6j1KBCCa2tTMIontzuBrzSiojnW5TMp+fxDWL/6zk/xvt
 NtwgPsvOxe2ElkoTDr20bCZ6
X-SBRS: 5.1
X-MesageID: 57089463
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ipOUOKpEr/mNjTW6F259afZkINJeBmLvYhIvgKrLsJaIsI4StFCzt
 garIBmBPquPNGb1eNx+bI+08E4Hu8SDz9JgTwNk/31jEHgR9puZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IDlW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnbzzZhUJIJaVpMc6dx1dGh9fApVt16CSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O
 pVBOWszMk+ojxtnH3FGVo5jhsCSplLYfABlkWO0vo4qyj2GpOB2+Oe0a4eEEjCQfu1XkVyfv
 Xnu5HniD1cRM9n34Tua8Fq8i+nXhyT5VYkOUrqi+ZZCn1m71mEVThoMWjOTsfS/z0KzRd9bA
 0gV4TY167g/8lSxSdvwVAH+p2SL1iPwQPIJTbd8slvUjPOJvUDJXQDoUwKtdvQG9+AkZSIRj
 2OquPftADVRkYKtYl2Co+L8QSyJBQAZKmoLZCkhRAQD4sX+rIxbsi8jXuqPA4bu0ISrRGiYL
 ySi6XFn2u5N1ZJjO7CTpAif21qRSo71ohnZD+k9dkas9UtHaYGsfOREAnCLvK8bfO51orRs1
 UXoevRyDshSUvlhdwTXGY3h+Y1FAd7fYFUwZnY1TvEcG8yFoSLLQGypyGgWyL1VGsgFYyT1R
 0TYpBlc4pReVFPzM/QqMtzsU516l/CxfTgAahwyRoAeCnSWXFXWlByCmGbKhzy9+KTSufhnU
 XtkTSpcJSlDUvk2pNZHb+wczaUq1kgDKZD7HvjGI+Cc+ePGPha9EO5dWHPXN7xRxP7U8W39r
 ocEX+PXmko3bQELSnSOmWLlBQtRdiZT6FGfg5E/S9Nv1SI8Rz1xVaSMmOx8E2Gn9owM/tr1E
 riGchYw4HL0hGHdKBXMbXZmabj1Wo14o259NispVWtEEVB5CWp2xKtAJZYxY5c98+lvkax9Q
 /UfIp3SCfVTUDXXvT8aaMCl/oBlcR2qgyOIPjakP2djL8IxGVSR94+2ZBbr+QkPEjGz6Zk0r
 Yq/216JWpEEXQljUprbMar901OrsHEBs+tuRE+UcMJLcUDh/dEyeSz8h/M6Oe8WLhDHymfI3
 gqaG05A9+LMv5U04J/CgqXd99WlFO53H0x7GWjH7OnpaXmGrzT7mYIZCbSGZzHQUm/w6Z6OX
 +QNwqGuKuADkXZLr5F4T+Rhw5Uh6oa9vLRd1AllQinGNgz5FrN6L3Ca9sBTrakRlKRBsA67V
 0/TqNlXPbKFZJHsHFILfVd3a+2C0bcfmyXI7ORzK0L/vXcl8L2CWERUHh+NlC0Cc+clbNJ7m
 b8s6JwM9giyqhs2KdLX3Clb+lOFImEET6h65IoRB5Xmi1Zzx1xPCXAG5vQaPH1bhw1wD3QX
IronPort-HdrOrdr: A9a23:pMx7TK138vB6h7HhlcrI5AqjBSJyeYIsimQD101hICG9Lfb2qy
 n+ppgmPEHP5Qr5OEtApTiBUJPwJE80hqQFnrX5Wo3SIDUO2VHYUb2KiLGN/9SOIVyHygcw79
 YGT0E6MqyLMbEYt7eL3ODbKadY/DDvysnB7o2/vhQdPj2CKZsQizuRYjzrY3GeLzM2Y6bReq
 DshPav6wDQAkj+Oa+Adwc4tqX41pD2vaOjRSRDKw8s6QGIgz/twLnmEyKA1hNbdz9U278t/U
 XMjgS8v8yYwr6G4y6Z81WWw4VdmdPnxNcGLMuQivINIjGprgqzfoxuV5CLoThwiuCy71QBls
 XKvn4bTohOwkKUWlvwjQrm2gHm3jprw3j+yWWAiX+mmsD9TCJSMbsIuatpNj/ir2YwttB116
 xGm0iDsYBMMB/GlCPho/DVShBDjCOP0DofuN9Wq0YafZoVabdXo4Ba1lhSCo08ECXz751iOP
 VyDfvb+O1dfTqhHjHkV1FUsZ6Rt0kIb1K7qhBogL3Q79EWpgE286Ig/r1dop9an6hNDKWt5I
 z/Q+1Vff91P4krhJlGdZI8qP2MexrwqCL3QRCvyGvcZdU60lL22tXKCeYOlauXkKJh9upEpH
 2GaiIAiVIP
X-IronPort-AV: E=Sophos;i="5.87,209,1631592000"; 
   d="scan'208";a="57089463"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=D0ahA5OFbO4zIEBSeOQ75GKfZ1fAv8YTmElzxsqwAFQb5qj6yoe6XkUoKnM61Gjg+aipatnh/OwAgh8+S4hsPkTKguCJbaqcTrzGC6qFE8gixgP572W3FiwY2DDonS8lcgO1yPPRMp3oNZGFKvJIrGy+EFyjtxRpD+VHNLSaO9Eu5YdksOJE2ncCqZL+RB5e4mtmc3/rLaP9YZ5oaagaZNrK/2dBb4KGLW4t8zgobn/hHbu8f5x/kgrCAL/TYtsmeyHbSYfSjzpx8iLkgJ7JXQ0P+j0dnqfVfcazNGM9ET54upXHMUDHemQhChobJPv1yKGg2tdG0FuZiMcUPnYotQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+pO4Y2pzcdTpXHfDjwnB6vqw9YoAtbAfUHN0aOdRlU0=;
 b=no2IGBMrjoTcGjwL6/C9f6/U+1fVT4U/R3LgCWnGxmoCh0M+Z65uZAcrdWhdUr9swbUuwMITrkLmCogkoQaBjIixUe+Nl9LptbQlZ1OwdKcyC7pgFVyIK1/Dr0uBZLBrvPEM2yGOtLCyJ0qeN3yuM8JDWG6wIvVR6lc7dhuhI8wGs8WKvRkA+TlOMnGupAZ7oGnYAD/f/ZAXGbnpL5uWHf8fAz2O0858wWTgauNvGNw2fHHCevwHtmAIwY4tC8vKiyWfUY1ryls1TzrHVKbc1uHURtPjCiJEHnUQ5kMRGw4CIhZgD22JaDtb88GWkdqWYa8nAeQCTHWP6LLgzAsRBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+pO4Y2pzcdTpXHfDjwnB6vqw9YoAtbAfUHN0aOdRlU0=;
 b=bVeDS3Mqwhnc8F1N6hGM2QfxB06sAPHebwKP4T4jO5/1vqxhMOAUKkdS6cqKhI8B6EzbHCdFrENCV33s8+UGZUR8T3Y+tB9jC9OPwGusfj/rVAqzvRZicvn2MFggToywBQeZXkSTnLUKpalSlvEPK/gCo+cMZrvZQhPeQvMIA6c=
To: Ian Jackson <iwj@xenproject.org>, Juergen Gross <jgross@suse.com>
CC: <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>
References: <20211104120324.9668-1-jgross@suse.com>
 <20211104120324.9668-2-jgross@suse.com>
 <24963.62355.300645.675596@mariner.uk.xensource.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH-for-4.16 1/2] configure: modify default of building
 rombios
Message-ID: <08637145-7f56-e605-5232-003b9b2d8009@citrix.com>
Date: Thu, 4 Nov 2021 15:56:33 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <24963.62355.300645.675596@mariner.uk.xensource.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LO2P265CA0123.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:9f::15) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0a0a068d-f4c4-4866-6c46-08d99fabb081
X-MS-TrafficTypeDiagnostic: SJ0PR03MB5773:
X-Microsoft-Antispam-PRVS: <SJ0PR03MB57730BD8FD44DE4B0BF54436BA8D9@SJ0PR03MB5773.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: YGY/17W2vE4Q+GPkLKvmufkeyIi6PLtPIfLExy2piG3jlKSowmFHiEZYwMYJe3xIrctGZjrVIas0qx6LWxMWrCOkd3x9nslSW7Y1wtOXl839wYToxZdoJv/eojLEgmexP4TB3sfVkJbLpAQGnNk8i50Uggs/lWzyp1+LeF8V8iS7UhFIPLRRSsvjjwn7wA2+hN7o0kjZIFU6IOPFetwTP3yV2/rf7ZankvjA2MdL91hxeVPjNVepQQyNukEFJeSSVe5OWCUr2k5gAeREesrCwBODoxiewaAPan3w5M2wMeaoni/LJASl4eUJzKoa9MGvRgnI9tyF7Yqf5SRUN6EONiSm1pQxq3AEqOaQ5q8Ly72Pn0ovLpqIK4Mc9wCmZZZTcA4hHdIfTehQC4ISdJrjeoHn8U3tndOVTocMKCSnqfRUd1ofIisF7BDmVdQXsjzZ/MN5k854/xp45GoYfJxEVFkfo89/wn3RWGJiRbNBV7fHIYCwZQxsBI+nROzlivWPGXfiqnJfgqmnc5Hhj9YXEiRAvCFgZeoUBdWMfxvL2lb/mPlOKCJvZ2Oc7nJKIS8FPsSqWtOMhiVpUL867oEH36s0HZJPGP4iqXF+3liyQ2ceemLdOGtPxaJ2iV+aRVO4jyDin3ZoTc5GMDV24OK36gdRk33037oDiQ7CSRq7wBOuGtvm0ED5ldck11Se6G+lNAA485V345ul+egCgAtBvgyM0fM0poa6BKPgQz443IAz1eXHLSQxvxVeq5056kAi
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(31696002)(66476007)(53546011)(110136005)(66556008)(26005)(186003)(38100700002)(6486002)(82960400001)(508600001)(16576012)(8676002)(316002)(66946007)(2906002)(6666004)(2616005)(31686004)(86362001)(5660300002)(956004)(4326008)(36756003)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cFludW5BTEgvRHNxK0pBd2F0Q1l6dzFQZWdPRFVYaFRGSW5ORnpFT1owcHY3?=
 =?utf-8?B?N1NXZTFSQ2ljOVhxbHl6UmNvQVVFZGEvMnhsMjY3c2NXYlhVcWxLa2JGcnJK?=
 =?utf-8?B?RE1Gek41d20yaEt5aFBqbXZQekVOc3dyQ1dRc3hYWmlqZ3BCaEs3ZnJIME4x?=
 =?utf-8?B?eVVrSXpWRjQ3VXFBUEJ0KzlkdHRFWUxYUTJnR2tBWk1JYzZrdHdNdUFLUlA0?=
 =?utf-8?B?dXcvQUkyQmF0Tjh0K3lNUFNCUDFRbk1xZzg2Qm9MY2NrNzBxMHFXbUxUWHg1?=
 =?utf-8?B?NURiM3ZqdTBnSDZqbTVvdVR3Y3UwWWxHMy9ZRm9WMVNYaGxIeDNFUlkwMnRQ?=
 =?utf-8?B?WmVHS056QzQwUGxaeitsY294WldaRmgzUEZhY1BKUkVKWlRkZ0Z0dU1GYWpm?=
 =?utf-8?B?ZFZDdHh1VjV5M0QvUnFnSURqOU1UblJadjJ4UzhZODgzYUxXSm9hMDJhRWdW?=
 =?utf-8?B?L1g3NDR1YU04V1E5MDQxNVhHWjZEOTZhSjAzamhLd3hkVmIvMDRhTzR3QjdH?=
 =?utf-8?B?dlcxQ1pIVk1uNXMxVGVzc3gzZU9uMTFCTmNMUk9VUGFwTit2bFM4RnVoYXMw?=
 =?utf-8?B?QWRjbWNSNU5wYXFrZy9kM3lKV2tWUFQ1cHM2alUwOGNxWnQ3dVJseFNFUC9i?=
 =?utf-8?B?K0JZWkNmcGFaMDZ4WUNzQjcrR0tFZnN1NGVmd0dsNXh5ZnlwZkZ5VjdCOVdu?=
 =?utf-8?B?M1M5SURIMFU2TmxSMUhRSitNektLTnFtOWxUZW5uSit6NXZEdkNtNnluL2JS?=
 =?utf-8?B?ZnFBTkszNU1WMEJkUGJhMlJHSldtaFdZNnl1M0dKaE5VSFI1K2JPZC9yMGRv?=
 =?utf-8?B?ckVkNks4Y2pDS3QxT1RqSHZlZmlBM25GQXliQ1RsaUdMYXZRYXVTYkFuNEhF?=
 =?utf-8?B?RWpDM21HSDhuUlMySW1xc3ozdmRBdi83bzl4U21FRUs0TnRmU3ZEQnJieGRO?=
 =?utf-8?B?Ykp6cElnOGRHTkc2Q05Wdk8yQU55UmVHL20zMFBsUjA0UkNoeERqMUREeXRE?=
 =?utf-8?B?cWtaTnNGOXpzNTV5elFUMFZYUjFsaVFWL0ZoM1dBMTAyaHlnQWdjVjRhMFZC?=
 =?utf-8?B?cTdLUDRNRkIzZ25UR2wwdWhhKzlvYUpjUFZpZ2RwaC9JYkZHczY5QzFpc0xu?=
 =?utf-8?B?b3B2YXdNd2xRNjNpTUtVU25DRkozQXRla3g5ZXE4WUlKUnNuelRzUDFSNzBx?=
 =?utf-8?B?NGZmbGVDNnNwUUI5QWxPNWNmV3dlN05JMWorYmZwWmlqU3ZqNDRzMDRKNHFr?=
 =?utf-8?B?cW9Md2pLZC9KRkYyWk1mSzBSR0VxRFU3QTIvQnZPTWJ5Y1o1eExURGl1VzJR?=
 =?utf-8?B?bVZNeElRSDlhNEVxL3VLOFFOVERaaTgvRHdjdjg3T1R2ZlFVN05ONy8yK0NC?=
 =?utf-8?B?cmxWcmpueUk2NFNLMjhvYXVEMGdRR3BCZVhHQjhoOFYvN2U3Ryt0Ry8zajRB?=
 =?utf-8?B?TktPeVNtZjB1S2hYVUdWRnArYUVVSzQ0UTVFY3YwUU1GVUFNdGVxVGFzME92?=
 =?utf-8?B?NElORm1hT3hFY0UzS3BaOXRFVTFMTkMwOExGZ3pSazgySDYzR3JENWZzWHNP?=
 =?utf-8?B?aFJ2eEhtbjlKdFNCYm5EYkc1WHFkYUFsYVJqSzhsNmR0V09GUjVzMUxEeVFN?=
 =?utf-8?B?eDBGcHJDRGhEazdWc1ZLNXFySndjaG15Z0FZcEthQUtHWXdCdk5nVWFQOE1L?=
 =?utf-8?B?MUZEd1lyOVAvbDl6L2ZzUjVQTU41aGFWak1ZOUwyL241b3AyUGFVckJsWGYx?=
 =?utf-8?B?aEI5WHdSYVd6TnFkYzdicUdMYXVmWlM5UHVlcjg4SjZpaHU1QlBNRks5OTMr?=
 =?utf-8?B?UXB3WmpWZm5OeWNMQy9Qc1BlTS9iL2ZoNWJEcVIwSkhPUlh4cmgwdDRsdXpU?=
 =?utf-8?B?MlVnYmErNEg0RFA3dy9Od2Y4ZEUvVXBpNlN1Mm1oYWRhMVg1cmJGajByQmlR?=
 =?utf-8?B?NlVHWXVSK0t5T0pGaEtNbXp1L2Q5V3lhcDJMMVBIdTFETVRwZmxFQURFeDFT?=
 =?utf-8?B?cW8xc0dQUm4yQ0FGMGVyd0pSbUhNTVFwOVp5S1lwOXQzVzFUc2V5MDNkNmZ1?=
 =?utf-8?B?eHBkSWN4R0pyeFVRSExpRjh6WHV5VFJmQ3lXdldWVmlaVkt2U2lxRVdvYy9R?=
 =?utf-8?B?ZWJuenQ5UXJERWdnTzdKV3BwNExWMDhINHM2YzNGV29nQzBVZUJaUkNnMG10?=
 =?utf-8?B?QmZscjJBS1I2MUtEdHVPQnJYaHBDdUtjUFlwbnN4R3BzUTcraXVRSjBOUVZl?=
 =?utf-8?B?Q2kzR2F1L0FNUkRsVU1BcmdLYU93PT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a0a068d-f4c4-4866-6c46-08d99fabb081
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 15:56:40.0540
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qsQotM9Xkz0yWPGMQ6BGHLkkPezAOubsFWsLLHSeG3DDu1/dQwHfWO2KHL9EU0tcpjm3Y3igfftyedV/AUqJ+H6SqqnBZ4mherL1YWC/4II=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5773
X-OriginatorOrg: citrix.com

On 04/11/2021 14:52, Ian Jackson wrote:
> Juergen Gross writes ("[PATCH-for-4.16 1/2] configure: modify default of =
building rombios"):
>> The tools/configure script will default to build rombios if qemu
>> traditional is enabled. If rombios is being built, ipxe will be built
>> per default, too.
>>
>> This results in rombios and ipxe no longer being built per default when
>> disabling qemu traditional.
>>
>> Fix that be rearranging the dependencies:
>>
>> - build ipxe per default
>> - build rombios per default if either ipxe or qemu traditional are
>>   being built
>>
>> This modification prepares not building qemu traditional per default
>> without affecting build of rombios and ipxe.
> Thanks.  We had a conversation on irc about this.  In summary:
>
> Reviewed-by: Ian Jackson <iwj@xenproject.org>
>
>
> Discussion:
>
> Both before and after this patch --with-system-ipxe --disable-ipxe (or
> --with-system-ipxe on arm) would set IPXE_PATH but not cause ipxe to
> be actually built.  I think that is correct.
>
> We discussed the linkage between rombios and ipxe.  Our understanding
> is that thbe intent was to support two configurations:
>   qemu-trad + {hvmloader, rombios, ipxe}
>   qemu-upstraem + {hvmloader, seabios, pxe rom provided by qemu}
>
> Before this patch, --disable-rombios --enable-ipxe would be an error.
> After this patch, it is tolerated (and indeed, it might occur with
> only one of those options due to defaulting).  But we think that there
> is no actual functional link between these pieces: ie, nothing will
> actually go wrong.  You just might not have ipxe support since you
> wouldn't be using trad at all.
>
> We think that someone who explicitly manipulates the
> --en/disable-rombios and --en/disable-ipxe options so as to construct
> such a situation ought to know what they are doing and should get what
> the asked for.
>
> Most people will controlling this via --en/disable-qemu-trad, which
> will do a plausible. thing.
>
>
> I think *this* patch is a bugfix, although to rather obscure configure
> behaviour.  I am inclined to release ack both this and the followup,
> for the reasons I gave previously.
>
> Comments (especially, anything to contradict what I wrote above) ASAP
> please.

I think the patch will fix the problem from CI.=C2=A0 And from that point o=
f
view it is an improvement.

However,=C2=A0 I don't think the help text is correct any more.=C2=A0 Speci=
fically:

+=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [Use system supplied IPXE PATH instea=
d of building and installing
+=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 our own version, it takes prece=
dence over --{en,dis}able-ipxe
and is
+=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bound by the presence of rombio=
s, --without-system-ipxe is an
error]),[

and the binding to RomBIOS is no longer true AFAICT.=C2=A0 At a minimum, I
think the wording there needs tweaking.

If tweaking is going on, then "per default" in the commit message feels
a little awkward, and would more normally be "by default".

Otherwise, LGTM.

~Andrew



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:08:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:08:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221676.383495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifHk-0006EN-Iq; Thu, 04 Nov 2021 16:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221676.383495; Thu, 04 Nov 2021 16:08:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifHk-0006EG-Eu; Thu, 04 Nov 2021 16:08:16 +0000
Received: by outflank-mailman (input) for mailman id 221676;
 Thu, 04 Nov 2021 16:08:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YH1c=PX=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1mifHj-0006Dr-NT
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:08:15 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a300518-3d89-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 17:08:14 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id o14so9364923wra.12
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 09:08:14 -0700 (PDT)
Received: from zen.linaroharston ([51.148.130.216])
 by smtp.gmail.com with ESMTPSA id t8sm5334045wrv.30.2021.11.04.09.08.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 09:08:12 -0700 (PDT)
Received: from zen (localhost [127.0.0.1])
 by zen.linaroharston (Postfix) with ESMTP id 879DC1FF96;
 Thu,  4 Nov 2021 16:08:11 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a300518-3d89-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google;
        h=references:user-agent:from:to:cc:subject:date:in-reply-to
         :message-id:mime-version:content-transfer-encoding;
        bh=cDGPwdP+u8gCnff+KSxvJmag59AJbiv/cCo7XUqE5QI=;
        b=sNSHqn6FfR2RH12mYF5ksupi/e884VuL+kPBI3B0q8b+Y3YGMKqSNxXUlgbJmi9AJG
         QnEm1ISIv3VkQQldmSPOTLRwezF79bUanFmwwEpDKb05rlXNWIToONTXyoG+G4G/9r4N
         h/CFg5sxsm90mTNv+WL6rWuU1LU++QMfn/CJd1yuDAoEx8AOs03USuJi6sHMiuhD2Vga
         KR34rBYH4K/rDgi7D2xNK17LD+D4skCeeUfwn9oAo1evxmBKGN73i7aUzC3RLjaOntSQ
         6SfCyZhDGxNoTdRc6YCLwyoQXOkUtPZqDi+kDlXbLx+KjSVbKRYsoX2bJQiVM0I0cylV
         rB5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:references:user-agent:from:to:cc:subject:date
         :in-reply-to:message-id:mime-version:content-transfer-encoding;
        bh=cDGPwdP+u8gCnff+KSxvJmag59AJbiv/cCo7XUqE5QI=;
        b=f77+c5s/GEWAPhBnQpmLNUaYIBWo/6gAWKkaOuDhuZ5rKC6N9wh5EAyuHOshx0cFy0
         iUoN9FrSWW9zIAfEULWbRHkdQfx/Ok6DBijixJiqPYEJ/h8JmKLOD9BBWPhJASYHpj+S
         ZMJAGvUAg5q1UJ+7mdHGJwMwAXKZ7Mdzo9lM1RReI8h1yDkldMt0EU4TH1YXsS79o/y+
         1WmVa3BYdLBZZM5VwpuvDVqTX9+EnBdLlGCRiyG9oaPL8qdsY/6zw26z/wNyfWOZ4YoI
         a0Hn1aDbS/DIISiYktrPne9r3sclq7KWX7Od+HBFOVXj7yVW3BDa9muNGQPMKyagxdDB
         XNNg==
X-Gm-Message-State: AOAM530vKIbzBEZDMxak6q852m2S8DnJH04fNI5fc2WiYCRkwTxKiJeU
	uku3pXjLZTL0dnTifsRfSRAqWw==
X-Google-Smtp-Source: ABdhPJwTZKb2rqw+OjC1rNMG490fbXsQoqHKNdRRqV5iQGKCJfOGKuWz5aum4S5PhKEOtEBB6ndWlw==
X-Received: by 2002:adf:f012:: with SMTP id j18mr58782958wro.353.1636042093855;
        Thu, 04 Nov 2021 09:08:13 -0700 (PDT)
References: <20210824105038.1257926-1-anthony.perard@citrix.com>
User-agent: mu4e 1.7.4; emacs 28.0.60
From: Alex =?utf-8?Q?Benn=C3=A9e?= <alex.bennee@linaro.org>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: Roger Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>, Kevin Tian
 <kevin.tian@intel.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Connor Davis <connojdavis@gmail.com>, Bob
 Eshleman <bobbyeshleman@gmail.com>, Alistair Francis
 <alistair.francis@wdc.com>, Tim Deegan <tim@xen.org>, Jun Nakajima
 <jun.nakajima@intel.com>, Tamas K Lengyel <tamas@tklengyel.com>, Doug
 Goldstein <cardoe@cardoe.com>, Jan Beulich <jbeulich@suse.com>, Konrad
 Rzeszutek Wilk <konrad.wilk@oracle.com>, Julien Grall <julien@xen.org>,
 Alexandru Isaila <aisaila@bitdefender.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Ross Lagerwall <ross.lagerwall@citrix.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>, Paul Durrant <paul@xen.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Wei Liu <wl@xen.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Lukasz Hawrylko
 <lukasz.hawrylko@linux.intel.com>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v7 00/51] xen: Build system improvements, now with
 out-of-tree build!
Date: Thu, 04 Nov 2021 15:49:36 +0000
In-reply-to: <20210824105038.1257926-1-anthony.perard@citrix.com>
Message-ID: <871r3vkiok.fsf@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


Anthony PERARD <anthony.perard@citrix.com> writes:

> Patch series available in this git branch:
> https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git br.build=
-system-xen-v7
>
> v7:
>     Out-of-tree build!
>
>     This mean many more patches. Everything after patch 27 is new.
>
>     There's a few new patch before that, but otherwise are rework of
>     v6.

This is something I've been looking forward to but obviously my QEMU
focused mind meant I did it wrong. Generally I create a builds subdir in
my tree with subdirs for each build flavour. So with:

  /home/alex/lsrc/xen/xen.git/builds/native

And executing:

  =E2=9E=9C  ../../configure
  checking build system type... x86_64-pc-linux-gnu
  checking host system type... x86_64-pc-linux-gnu
  Will build the following subsystems:
    xen
    tools
    stubdom
    docs
  configure: creating ./config.status
  config.status: creating config/Toplevel.mk
  config.status: creating config/Paths.mk

but this leaves a sparse tree:

  =F0=9F=95=9915:51:22 alex@zen:xen.git/builds/native  on =EE=82=A0 review/=
build-system-v7 (AM) [$?]=20
  =E2=9E=9C  find .
  .
  ./config.log
  ./config.status
  ./config
  ./config/Paths.mk
  ./config/Toplevel.mk

and no top level Makefile to do the build.

In the QEMU world we symlink the Makefile into the build directory and
then add a little bit of logic to the Makefile to detect incongruent
configurations, for example:

  # 0. ensure the build tree is okay

  # Check that we're not trying to do an out-of-tree build from
  # a tree that's been used for an in-tree build.
  ifneq ($(realpath $(SRC_PATH)),$(realpath .))
  ifneq ($(wildcard $(SRC_PATH)/config-host.mak),)
  $(error This is an out of tree build but your source tree ($(SRC_PATH)) \
  seems to have been used for an in-tree build. You can fix this by running=
 \
  "$(MAKE) distclean && rm -rf *-linux-user *-softmmu" in your source tree)
  endif
  endif

Of course you need some additional definitions to ensure the Makefile is
clear on where it gets the files from.

In "build: adding out-of-tree support to the xen build" you describe the
Linux kernel style which works well where the config can be done after
the fact but I wonder if the configure approach is better suited to
something that needs a bunch of checks running. Is the configure script
pure autoconf? This should work out of the box IIRC.

--=20
Alex Benn=C3=A9e


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:11:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221686.383514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifKp-0007fe-Cg; Thu, 04 Nov 2021 16:11:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221686.383514; Thu, 04 Nov 2021 16:11:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifKp-0007fE-73; Thu, 04 Nov 2021 16:11:27 +0000
Received: by outflank-mailman (input) for mailman id 221686;
 Thu, 04 Nov 2021 16:11:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mifKo-0007c6-5M
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:11:26 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dbc9262b-3d89-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 17:11:25 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id C946E1FD5B;
 Thu,  4 Nov 2021 16:11:24 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9948B13DA2;
 Thu,  4 Nov 2021 16:11:24 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id SKwtJCwGhGEABgAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 16:11:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbc9262b-3d89-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636042284; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=uT7wIMCexC5sOksHtDS/6G5hw1BD1mbW59xbOMQ15QY=;
	b=XmQ1nttShV9z6E3QHHsrq0TS/8vUYESiP9Kcp73wVN71spyRY+a0B6bvZ6LrVu3n8f3Igr
	P5+Y/dW6LT969xS0yZnYPIETkK2cFUlncNv2+1JuZKMhSOI8gX8DNkXGC8jCaLC73CROTK
	6OFyhm8kRGmc3clj2OvSsPyMQsJT53g=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Ian Jackson <iwj@xenproject.org>,
	Community Manager <community.manager@xenproject.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH-for-4.16 v2 2/2] tools: disable building qemu-trad per default
Date: Thu,  4 Nov 2021 17:11:21 +0100
Message-Id: <20211104161121.18995-3-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211104161121.18995-1-jgross@suse.com>
References: <20211104161121.18995-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Using qemu-traditional as device model is deprecated for some time now.

So change the default for building it to "disable". This will affect
ioemu-stubdom, too, as there is a direct dependency between the two.

Today it is possible to use a PVH/HVM Linux-based stubdom as device
model. Additionally using ioemu-stubdom isn't really helping for
security, as it requires to run a very old and potentially buggy qemu
version in a PV domain. This is adding probably more security problems
than it is removing by using a stubdom.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Acked-by: Ian Jackson <iwj@xenproject.org>
---
This is a resend of my original patch after that has been reverted due
to dependencies to ipxe and rombios. Those have been dealt with in the
first patch of this series.
---
 CHANGELOG.md         |  3 +++
 stubdom/configure    |  8 --------
 stubdom/configure.ac |  8 +-------
 tools/configure      | 17 ++---------------
 tools/configure.ac   | 13 +------------
 5 files changed, 7 insertions(+), 42 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e7107ac3de..e5ab49e779 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    or by passing "iommu=quarantine=scratch-page" on the hypervisor command line.
  - pv-grub stubdoms will no longer be built per default. In order to be able to use pv-grub
    configure needs to be called with "--enable-pv-grub" as parameter.
+ - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
+   no longer be built per default. In order to be able to use those, configure needs to
+   be called with "--enable-qemu-traditional" as parameter.
 
 ## [4.15.0 UNRELEASED](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - TBD
 
diff --git a/stubdom/configure b/stubdom/configure
index df31532abb..07b709f998 100755
--- a/stubdom/configure
+++ b/stubdom/configure
@@ -2286,14 +2286,6 @@ fi
 # Check whether --enable-qemu-traditional was given.
 if test "${enable_qemu_traditional+set}" = set; then :
   enableval=$enable_qemu_traditional;
-else
-
-    case "$host_cpu" in
-        i[3456]86|x86_64)
-           enable_qemu_traditional="yes";;
-        *) enable_qemu_traditional="no";;
-    esac
-
 fi
 
 if test "x$enable_qemu_traditional" = "xyes"; then :
diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index a07a1edae5..e20d99edac 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -27,13 +27,7 @@ AX_STUBDOM_DEFAULT_ENABLE([xenstorepvh-stubdom], [xenstorepvh])
 AX_STUBDOM_CONDITIONAL([vtpm-stubdom], [vtpm])
 AX_STUBDOM_CONDITIONAL([vtpmmgr-stubdom], [vtpmmgr])
 
-AC_ARG_ENABLE([qemu-traditional],,,[
-    case "$host_cpu" in
-        i[[3456]]86|x86_64)
-           enable_qemu_traditional="yes";;
-        *) enable_qemu_traditional="no";;
-    esac
-])
+AC_ARG_ENABLE([qemu-traditional])
 AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
     qemu_traditional=y],[
     qemu_traditional=n
diff --git a/tools/configure b/tools/configure
index d980b3ffc9..a3d33eb907 100755
--- a/tools/configure
+++ b/tools/configure
@@ -1502,8 +1502,8 @@ Optional Features:
   --disable-seabios       Disable SeaBIOS (default is ENABLED)
   --disable-golang        Disable Go tools (default is ENABLED)
   --enable-qemu-traditional
-                          Enable qemu traditional device model, (DEFAULT is on
-                          for Linux or NetBSD x86, otherwise off)
+                          Enable qemu traditional device model, (DEFAULT is
+                          off)
   --enable-ipxe           Enable in-tree IPXE, (DEFAULT is on for x86,
                           otherwise off, see also --with-system-ipxe)
   --enable-rombios        Enable ROMBIOS, (DEFAULT is on if qemu-traditional
@@ -4286,19 +4286,6 @@ LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
 # Check whether --enable-qemu-traditional was given.
 if test "${enable_qemu_traditional+set}" = set; then :
   enableval=$enable_qemu_traditional;
-else
-
-    case "$host_cpu" in
-        i[3456]86|x86_64)
-           enable_qemu_traditional="yes";;
-        *) enable_qemu_traditional="no";;
-    esac
-    case "$host_os" in
-        freebsd*)
-           enable_qemu_traditional="no";;
-    esac
-
-
 fi
 
 if test "x$enable_qemu_traditional" = "xyes"; then :
diff --git a/tools/configure.ac b/tools/configure.ac
index 97582951c8..03eb7cf146 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -120,18 +120,7 @@ AC_SUBST(LINUX_BACKEND_MODULES)
 
 AC_ARG_ENABLE([qemu-traditional],
     AS_HELP_STRING([--enable-qemu-traditional],
-                   [Enable qemu traditional device model, (DEFAULT is on for Linux or NetBSD x86, otherwise off)]),,[
-    case "$host_cpu" in
-        i[[3456]]86|x86_64)
-           enable_qemu_traditional="yes";;
-        *) enable_qemu_traditional="no";;
-    esac
-    case "$host_os" in
-        freebsd*)
-           enable_qemu_traditional="no";;
-    esac
-
-])
+                   [Enable qemu traditional device model, (DEFAULT is off)]))
 AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
 AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled])
     qemu_traditional=y],[
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:11:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221685.383508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifKp-0007cT-1b; Thu, 04 Nov 2021 16:11:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221685.383508; Thu, 04 Nov 2021 16:11:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifKo-0007cM-V3; Thu, 04 Nov 2021 16:11:26 +0000
Received: by outflank-mailman (input) for mailman id 221685;
 Thu, 04 Nov 2021 16:11:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mifKn-0007c5-QB
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:11:25 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dba3c7d3-3d89-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 17:11:24 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 717FD1FD35;
 Thu,  4 Nov 2021 16:11:24 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2E1A813DA2;
 Thu,  4 Nov 2021 16:11:24 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id oyD+CSwGhGEABgAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 16:11:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dba3c7d3-3d89-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636042284; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=/IlSgVfaLV5JiFiSsHq1njRtU2xo87ZDA/beZU1r2ac=;
	b=NO48AJhVnYGsI0kVtSNetBaLdbnOX+yychfYwLtUNLFaE+tIqhaEyX608B/eF+fMpnd7pS
	KqL9konURzAgz5xTVNuIoRUCQUIPEvtNqo9uAtGXvkVbFQnc57BBQaLPy3vzpqkNKOZ3i5
	64K97iRCk5Q9q5VXB4KutW4HXe8aMSw=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>,
	Community Manager <community.manager@xenproject.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PATCH-for-4.16 v2 0/2] next try for disabling build of qemu-trad
Date: Thu,  4 Nov 2021 17:11:19 +0100
Message-Id: <20211104161121.18995-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Another try to disable building qemu-traditional per default.

Juergen Gross (2):
  configure: modify default of building rombios
  tools: disable building qemu-trad per default

 CHANGELOG.md         |   3 +
 stubdom/configure    |   8 ---
 stubdom/configure.ac |   8 +--
 tools/configure      | 130 ++++++++++++++++++-------------------------
 tools/configure.ac   |  80 +++++++++++---------------
 5 files changed, 91 insertions(+), 138 deletions(-)

-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:11:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:11:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221687.383531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifKq-00087C-Iw; Thu, 04 Nov 2021 16:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221687.383531; Thu, 04 Nov 2021 16:11:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifKq-00086p-F8; Thu, 04 Nov 2021 16:11:28 +0000
Received: by outflank-mailman (input) for mailman id 221687;
 Thu, 04 Nov 2021 16:11:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mifKo-0007c5-Hv
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:11:26 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dba8dc0b-3d89-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 17:11:24 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 92FC01FD3F;
 Thu,  4 Nov 2021 16:11:24 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6B01313EEA;
 Thu,  4 Nov 2021 16:11:24 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 8Mv9GCwGhGEABgAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 16:11:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dba8dc0b-3d89-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636042284; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=HepRV8+VsNCo8NAgipaKy04UoWqLrUAfUhmyvWOwJkY=;
	b=CTifw9LtiYIimJf50J1IFq4HheblJMNfpPGpztKClkLgV4vCEtf8bo2yI50OYDqk7DyEwx
	v5WiYfRZU3PjTHilcf10qY2GNttgHNNZEnwlBbeIw9NJkvvTLwTF5lqaMGkj502kk4ZmTq
	gxNRr68DJHKTovliSz5vaxfNJP8onig=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH-for-4.16 v2 1/2] configure: modify default of building rombios
Date: Thu,  4 Nov 2021 17:11:20 +0100
Message-Id: <20211104161121.18995-2-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211104161121.18995-1-jgross@suse.com>
References: <20211104161121.18995-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The tools/configure script will default to build rombios if qemu
traditional is enabled. If rombios is being built, ipxe will be built
per default, too.

This results in rombios and ipxe no longer being built by default when
disabling qemu traditional.

Fix that be rearranging the dependencies:

- build ipxe by default
- build rombios by default if either ipxe or qemu traditional are
  being built

This modification prepares not building qemu traditional by default
without affecting build of rombios and ipxe.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Ian Jackson <iwj@xenproject.org>
---
V2:
- correct help text (Andrew Cooper)
- correct commit message (Andrew Cooper)
---
 tools/configure    | 115 +++++++++++++++++++++------------------------
 tools/configure.ac |  67 +++++++++++++-------------
 2 files changed, 85 insertions(+), 97 deletions(-)

diff --git a/tools/configure b/tools/configure
index 33814b24b3..d980b3ffc9 100755
--- a/tools/configure
+++ b/tools/configure
@@ -698,7 +698,6 @@ APPEND_INCLUDES
 PREPEND_LIB
 PREPEND_INCLUDES
 EXTRA_QEMUU_CONFIGURE_ARGS
-ipxe
 qemu_xen_systemd
 qemu_xen_path
 qemu_xen
@@ -706,6 +705,7 @@ rombios
 BCC
 LD86
 AS86
+ipxe
 qemu_traditional
 LINUX_BACKEND_MODULES
 golang
@@ -815,13 +815,13 @@ enable_seabios
 enable_golang
 with_linux_backend_modules
 enable_qemu_traditional
+enable_ipxe
+with_system_ipxe
 enable_rombios
 with_system_qemu
 with_stubdom_qmp_proxy
 with_system_seabios
 with_system_ovmf
-enable_ipxe
-with_system_ipxe
 with_extra_qemuu_configure_args
 with_xenstored
 enable_systemd
@@ -1504,10 +1504,10 @@ Optional Features:
   --enable-qemu-traditional
                           Enable qemu traditional device model, (DEFAULT is on
                           for Linux or NetBSD x86, otherwise off)
+  --enable-ipxe           Enable in-tree IPXE, (DEFAULT is on for x86,
+                          otherwise off, see also --with-system-ipxe)
   --enable-rombios        Enable ROMBIOS, (DEFAULT is on if qemu-traditional
-                          is enabled, otherwise off)
-  --disable-ipxe          Enable in-tree IPXE, (DEFAULT is on if rombios is
-                          enabled, otherwise off, see also --with-system-ipxe)
+                          or ipxe is enabled, otherwise off)
   --enable-systemd        Enable systemd support (default is DISABLED)
   --enable-9pfs           Explicitly enable 9pfs support in QEMU build
                           (default is to defer to QEMU configure default)
@@ -1538,6 +1538,11 @@ Optional Packages:
   --with-linux-backend-modules="mod1 mod2"
                           List of Linux backend module or modalias names to be
                           autoloaded on startup.
+  --with-system-ipxe[=PATH]
+                          Use system supplied IPXE PATH instead of building
+                          and installing our own version, it takes precedence
+                          over --{en,dis}able-ipxe, --without-system-ipxe is
+                          an error
   --with-system-qemu[=PATH]
                           Use system supplied qemu PATH or qemu (taken from
                           $PATH) as qemu-xen device model instead of building
@@ -1551,12 +1556,6 @@ Optional Packages:
   --with-system-ovmf[=PATH]
                           Use system supplied OVMF PATH instead of building
                           and installing our own version
-  --with-system-ipxe[=PATH]
-                          Use system supplied IPXE PATH instead of building
-                          and installing our own version, it takes precedence
-                          over --{en,dis}able-ipxe and is bound by the
-                          presence of rombios, --without-system-ipxe is an
-                          error
   --with-extra-qemuu-configure-args[="--ARG1 ..."]
                           List of additional configure options for upstream
                           qemu
@@ -4314,13 +4313,54 @@ else
 
 fi
 
+if test "x$enable_ipxe" = "xno"; then :
+  ipxe=n
+else
+  ipxe=y
+fi
+
+# Check whether --enable-ipxe was given.
+if test "${enable_ipxe+set}" = set; then :
+  enableval=$enable_ipxe;
+else
+
+    case "$host_cpu" in
+        i[3456]86|x86_64)
+           enable_ipxe="yes";;
+        *) enable_ipxe="no";;
+    esac
+
+fi
+
+
+# Check whether --with-system-ipxe was given.
+if test "${with_system_ipxe+set}" = set; then :
+  withval=$with_system_ipxe;
+    case $withval in
+        no) as_fn_error $? "--without-system-ipxe has no effect" "$LINENO" 5 ;;
+        /*)  ipxe_path=$withval; ipxe=n ;;
+        *) as_fn_error $? "IPXE specified, but is not an absolute path" "$LINENO" 5 ;;
+    esac
+
+fi
+
+if test "x$ipxe" = "xy" -o -n "$ipxe_path" ; then :
+
+
+cat >>confdefs.h <<_ACEOF
+#define IPXE_PATH "${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"
+_ACEOF
+
+
+fi
+
 
 # Check whether --enable-rombios was given.
 if test "${enable_rombios+set}" = set; then :
   enableval=$enable_rombios;
 else
 
-    if test "x$enable_qemu_traditional" = "xyes"; then :
+    if test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"; then :
 
         enable_rombios="yes"
 
@@ -4635,55 +4675,6 @@ _ACEOF
 
 fi
 
-# Check whether --enable-ipxe was given.
-if test "${enable_ipxe+set}" = set; then :
-  enableval=$enable_ipxe;
-     if test "x$enable_ipxe" = "xno"; then :
-  ipxe=n
-else
-  ipxe=y
-fi
-
-else
-
-    if test "x$enable_rombios" = "xno"; then :
-  ipxe=n
-else
-  ipxe=y
-fi
-
-fi
-
-
-# Check whether --with-system-ipxe was given.
-if test "${with_system_ipxe+set}" = set; then :
-  withval=$with_system_ipxe;
-    case $withval in
-        no) as_fn_error $? "--without-system-ipxe has no effect" "$LINENO" 5 ;;
-        /*)  ipxe_path=$withval; ipxe=n ;;
-        *) as_fn_error $? "IPXE specified, but is not an absolute path" "$LINENO" 5 ;;
-    esac
-
-fi
-
-if test "x$ipxe" = "xy" -o -n "$ipxe_path" ; then :
-
-
-    if test "x$enable_rombios" = "xno"; then :
-
-        as_fn_error $? "Rombios is required to use IPXE" "$LINENO" 5
-
-fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define IPXE_PATH "${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"
-_ACEOF
-
-
-fi
-
-
 
 # Check whether --with-extra-qemuu-configure-args was given.
 if test "${with_extra_qemuu_configure_args+set}" = set; then :
diff --git a/tools/configure.ac b/tools/configure.ac
index 6414fcbb44..97582951c8 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -139,10 +139,40 @@ AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled])
 ])
 AC_SUBST(qemu_traditional)
 
+AC_ARG_ENABLE([ipxe],
+    AS_HELP_STRING([--enable-ipxe],
+                   [Enable in-tree IPXE, (DEFAULT is on for x86,
+                    otherwise off, see also --with-system-ipxe)]),,[
+    case "$host_cpu" in
+        i[[3456]]86|x86_64)
+           enable_ipxe="yes";;
+        *) enable_ipxe="no";;
+    esac
+])
+AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
+AC_ARG_WITH([system-ipxe],
+    AS_HELP_STRING([--with-system-ipxe@<:@=PATH@:>@],
+       [Use system supplied IPXE PATH instead of building and installing
+        our own version, it takes precedence over --{en,dis}able-ipxe,
+        --without-system-ipxe is an error]),[
+    case $withval in
+        no) AC_MSG_ERROR([--without-system-ipxe has no effect]) ;;
+        /*)  ipxe_path=$withval; ipxe=n ;;
+        *) AC_MSG_ERROR([IPXE specified, but is not an absolute path]) ;;
+    esac
+],[])
+AS_IF([test "x$ipxe" = "xy" -o -n "$ipxe_path" ], [
+    AC_DEFINE_UNQUOTED([IPXE_PATH],
+                       ["${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"],
+                       [IPXE path])
+])
+AC_SUBST(ipxe)
+
 AC_ARG_ENABLE([rombios],
     AS_HELP_STRING([--enable-rombios],
-                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional is enabled, otherwise off)]),,[
-    AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
+                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional or ipxe is enabled,
+                    otherwise off)]),,[
+    AS_IF([test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"], [
         enable_rombios="yes"
     ], [
         enable_rombios="no"
@@ -240,39 +270,6 @@ AS_IF([test "x$ovmf" = "xy" -o -n "$ovmf_path" ], [
                        [OVMF path])
 ])
 
-AC_ARG_ENABLE([ipxe],
-    AS_HELP_STRING([--disable-ipxe],
-                   [Enable in-tree IPXE, (DEFAULT is on if rombios is enabled,
-                    otherwise off, see also --with-system-ipxe)]),
-    [
-     AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
-    ],
-    [
-    AS_IF([test "x$enable_rombios" = "xno"], [ipxe=n], [ipxe=y])
-])
-AC_ARG_WITH([system-ipxe],
-    AS_HELP_STRING([--with-system-ipxe@<:@=PATH@:>@],
-       [Use system supplied IPXE PATH instead of building and installing
-        our own version, it takes precedence over --{en,dis}able-ipxe and is
-        bound by the presence of rombios, --without-system-ipxe is an error]),[
-    case $withval in
-        no) AC_MSG_ERROR([--without-system-ipxe has no effect]) ;;
-        /*)  ipxe_path=$withval; ipxe=n ;;
-        *) AC_MSG_ERROR([IPXE specified, but is not an absolute path]) ;;
-    esac
-],[])
-AS_IF([test "x$ipxe" = "xy" -o -n "$ipxe_path" ], [
-
-    AS_IF([test "x$enable_rombios" = "xno"], [
-        AC_MSG_ERROR([Rombios is required to use IPXE])
-    ], [])
-
-    AC_DEFINE_UNQUOTED([IPXE_PATH],
-                       ["${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"],
-                       [IPXE path])
-])
-AC_SUBST(ipxe)
-
 AC_ARG_WITH([extra-qemuu-configure-args],
     AS_HELP_STRING([--with-extra-qemuu-configure-args@<:@="--ARG1 ..."@:>@],
        [List of additional configure options for upstream qemu]),[
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:13:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:13:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221704.383541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifN6-00011c-5F; Thu, 04 Nov 2021 16:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221704.383541; Thu, 04 Nov 2021 16:13:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifN6-00011V-2L; Thu, 04 Nov 2021 16:13:48 +0000
Received: by outflank-mailman (input) for mailman id 221704;
 Thu, 04 Nov 2021 16:13:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YH1c=PX=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1mifN5-00011P-3i
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:13:47 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2fde72fe-3d8a-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 17:13:46 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 b184-20020a1c1bc1000000b0033140bf8dd5so4636764wmb.5
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 09:13:46 -0700 (PDT)
Received: from zen.linaroharston ([51.148.130.216])
 by smtp.gmail.com with ESMTPSA id q84sm11381522wme.3.2021.11.04.09.13.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 09:13:44 -0700 (PDT)
Received: from zen (localhost [127.0.0.1])
 by zen.linaroharston (Postfix) with ESMTP id E88A41FF96;
 Thu,  4 Nov 2021 16:13:43 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2fde72fe-3d8a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google;
        h=references:user-agent:from:to:cc:subject:date:in-reply-to
         :message-id:mime-version:content-transfer-encoding;
        bh=QweRTtvGwADMsXTr1xaN3Kxa62JgHzc3jVnoh96Liqg=;
        b=CqCkuoc+TbTnyzP5LV9xx4zuvUP5vKRvx4+lI0AsrJUADBoiiHImcWZTrhZCJCBLwi
         7pDQ70OkhLRrVATjrrF+Q88zaANuotd1Q4AwM99pqW68kRQzAkTfuGPr/9lCaPlO2T+U
         n9K+W6yD0FMmS9VrPwGhpeViqiCYS3sH69dwc7+hwrwOcmKbGGUkeTC/VrMCbNX8dNsa
         nPhQHrMwXw2nvu2vwPzDjujjOVxc8LWSWKa8z8DMRJYra/QTYZHfwVWYBUbPbCPdMCsd
         yQfAuNd22JCnqp4vxY/QXR7g0Xj8ns447Hcd0xaWJO6YP/dWYOp4XN2rGKr6EQ68D26j
         XXGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:references:user-agent:from:to:cc:subject:date
         :in-reply-to:message-id:mime-version:content-transfer-encoding;
        bh=QweRTtvGwADMsXTr1xaN3Kxa62JgHzc3jVnoh96Liqg=;
        b=fjbYABDZMOtWT92m13RHgJp41MgM3Ae699WkEsNIgMX4SKB1g8c3UWNWXkxVphEsJl
         SJ81/OhJJbiqysJSHZkij458qo9g2Gh2Jd2ZriKMtfIoZ6kzxZqC9Ec2IMbTEi6EYH58
         OA5Yrn6EoYumK0tna+28YaMdQE/YaEeLTnvwNsAuzHIdLQ6phTWCeTzXE3iWs5+LnU4w
         R2KQ+Er/FnFDspCp/X30uJNtJd/qZBZwCBk5MWQo6Lal92RuIiMWhKjJrrWYjaCi7iu5
         eubaXxd+lp7VoIOSBxt89qtXX4SiwriK8StXSLTxu8u0OAlkpBcUfMo8VFJJcgt03nX8
         OPew==
X-Gm-Message-State: AOAM530h/aod3U9/36xS1WoL8SnUYW82LkQNT8eabWAkm6xWU1ThUTgA
	MKhgOrJaq7ymwlkZm2jo2+ZU/A==
X-Google-Smtp-Source: ABdhPJwe00CHw7UMoKWE6I9J9OGWAhW6QOqL4ETWy6bJnlNiej+OHH1jTwx5z/Ofqk+s49nl7oMbWw==
X-Received: by 2002:a1c:f31a:: with SMTP id q26mr24179035wmq.148.1636042425632;
        Thu, 04 Nov 2021 09:13:45 -0700 (PDT)
References: <20210824105038.1257926-1-anthony.perard@citrix.com>
 <871r3vkiok.fsf@linaro.org>
User-agent: mu4e 1.7.4; emacs 28.0.60
From: Alex =?utf-8?Q?Benn=C3=A9e?= <alex.bennee@linaro.org>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: Roger Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>, Kevin Tian
 <kevin.tian@intel.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Connor Davis <connojdavis@gmail.com>, Bob
 Eshleman <bobbyeshleman@gmail.com>, Alistair Francis
 <alistair.francis@wdc.com>, Tim Deegan <tim@xen.org>, Jun Nakajima
 <jun.nakajima@intel.com>, Tamas K Lengyel <tamas@tklengyel.com>, Doug
 Goldstein <cardoe@cardoe.com>, Jan Beulich <jbeulich@suse.com>, Konrad
 Rzeszutek Wilk <konrad.wilk@oracle.com>, Julien Grall <julien@xen.org>,
 Alexandru Isaila <aisaila@bitdefender.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Ross Lagerwall <ross.lagerwall@citrix.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>, Paul Durrant <paul@xen.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Wei Liu <wl@xen.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Lukasz Hawrylko
 <lukasz.hawrylko@linux.intel.com>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v7 00/51] xen: Build system improvements, now with
 out-of-tree build!
Date: Thu, 04 Nov 2021 16:12:24 +0000
In-reply-to: <871r3vkiok.fsf@linaro.org>
Message-ID: <87wnlnj3uw.fsf@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


Alex Benn=C3=A9e <alex.bennee@linaro.org> writes:

> Anthony PERARD <anthony.perard@citrix.com> writes:
>
>> Patch series available in this git branch:
>> https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git br.buil=
d-system-xen-v7
>>
>> v7:
>>     Out-of-tree build!
>>
>>     This mean many more patches. Everything after patch 27 is new.
>>
>>     There's a few new patch before that, but otherwise are rework of
>>     v6.
>
> This is something I've been looking forward to but obviously my QEMU
> focused mind meant I did it wrong. Generally I create a builds subdir in
> my tree with subdirs for each build flavour. So with:
>
<snip>
>
> In "build: adding out-of-tree support to the xen build" you describe the
> Linux kernel style which works well where the config can be done after
> the fact but I wonder if the configure approach is better suited to
> something that needs a bunch of checks running. Is the configure script
> pure autoconf? This should work out of the box IIRC.

FWIW doing it the make O way:

  =E2=9E=9C  pwd
  /home/alex/lsrc/xen/xen.git
  =F0=9F=95=9916:12:54 alex@zen:xen.git  on =EE=82=A0 review/build-system-v=
7 (AM) [$?]=20
  =E2=9E=9C  make O=3Dbuilds/native/
  make -C xen install
  make[1]: Entering directory '/home/alex/lsrc/xen/xen.git/xen'
  make[2]: Entering directory '/home/alex/lsrc/xen/xen.git/xen/builds/nativ=
e'
  make -f /home/alex/lsrc/xen/xen.git/xen/Rules.mk obj=3Dtools tools/fixdep
  make[3]: Entering directory '/home/alex/lsrc/xen/xen.git/xen/builds/nativ=
e'
  make[3]: Leaving directory '/home/alex/lsrc/xen/xen.git/xen/builds/native'
    GEN     Makefile
  make -f /home/alex/lsrc/xen/xen.git/xen/Rules.mk obj=3Dtools
  make[3]: Entering directory '/home/alex/lsrc/xen/xen.git/xen/builds/nativ=
e'
  make[3]: Leaving directory '/home/alex/lsrc/xen/xen.git/xen/builds/native'
  make -f /home/alex/lsrc/xen/xen.git/xen/Rules.mk obj=3D. include/xen/comp=
ile.h
  make[3]: Entering directory '/home/alex/lsrc/xen/xen.git/xen/builds/nativ=
e'
    BANNER  .banner
  error: could not load font /home/alex/lsrc/xen/xen.git/xen/tools/xen.flf
  make[3]: *** [/home/alex/lsrc/xen/xen.git/xen/./build.mk:12: .banner] Err=
or 255
  make[3]: Leaving directory '/home/alex/lsrc/xen/xen.git/xen/builds/native'
  make[2]: *** [/home/alex/lsrc/xen/xen.git/xen/Makefile:539: xen] Error 2
  make[2]: Leaving directory '/home/alex/lsrc/xen/xen.git/xen/builds/native'
  make[1]: *** [Makefile:176: __sub-make] Error 2
  make[1]: Leaving directory '/home/alex/lsrc/xen/xen.git/xen'
  make: *** [Makefile:136: install-xen] Error 2

which is odd because I have a "apt build-dep xen" and figlet installed
on this system.

--=20
Alex Benn=C3=A9e


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:22:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:22:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221713.383553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifUz-0002T6-0r; Thu, 04 Nov 2021 16:21:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221713.383553; Thu, 04 Nov 2021 16:21:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifUy-0002Sz-TT; Thu, 04 Nov 2021 16:21:56 +0000
Received: by outflank-mailman (input) for mailman id 221713;
 Thu, 04 Nov 2021 16:21:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mifUx-0002St-Qe
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:21:55 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52e6a025-3d8b-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 17:21:54 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 084071FD3F;
 Thu,  4 Nov 2021 16:21:54 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C88EF13DA2;
 Thu,  4 Nov 2021 16:21:53 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 5+7UL6EIhGEJDAAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 16:21:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52e6a025-3d8b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636042914; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=RyW5Wt/bfDet9n989u3PUHzkl4L+NrHrgmkaQ6ot2hU=;
	b=L92SKm06c/K/noNaQ0Z0+pat7K6xDrEy2Wn9WB8070x+MZT2MLOxJpTacYZxt8NfGexzWd
	mr+KdTjauTiBwOu6ApzjX9WyAtBPGFzBQBz+5/M3GAmli8x9F98uY/+4AEdeNQMQuvETvz
	YdWmVfKh3SSIYoL1FmIeHNaJ0fnoQ84=
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
 Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
References: <20211102091944.17487-1-jgross@suse.com>
 <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
 <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <3b1f1771-0a96-1f71-9c9d-9fb1a53a266e@suse.com>
Date: Thu, 4 Nov 2021 17:21:53 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="JzKPLG1VYmIxPCVCcWc1VenFHq5kAdOeC"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--JzKPLG1VYmIxPCVCcWc1VenFHq5kAdOeC
Content-Type: multipart/mixed; boundary="2vIdrc1xpWVHwJMCuVJCcJZ1hc8yPTd8m";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
 Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
Message-ID: <3b1f1771-0a96-1f71-9c9d-9fb1a53a266e@suse.com>
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
References: <20211102091944.17487-1-jgross@suse.com>
 <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
 <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>
In-Reply-To: <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>

--2vIdrc1xpWVHwJMCuVJCcJZ1hc8yPTd8m
Content-Type: multipart/mixed;
 boundary="------------EA8676FA21E0F3DD37BD799B"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------EA8676FA21E0F3DD37BD799B
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 04.11.21 16:55, Boris Ostrovsky wrote:
>=20
> On 11/3/21 9:55 PM, Boris Ostrovsky wrote:
>>
>> On 11/2/21 5:19 AM, Juergen Gross wrote:
>>> When running as PVH or HVM guest with actual memory < max memory the
>>> hypervisor is using "populate on demand" in order to allow the guest
>>> to balloon down from its maximum memory size. For this to work
>>> correctly the guest must not touch more memory pages than its target
>>> memory size as otherwise the PoD cache will be exhausted and the gues=
t
>>> is crashed as a result of that.
>>>
>>> In extreme cases ballooning down might not be finished today before
>>> the init process is started, which can consume lots of memory.
>>>
>>> In order to avoid random boot crashes in such cases, add a late init
>>> call to wait for ballooning down having finished for PVH/HVM guests.
>>>
>>> Warn on console if initial ballooning fails, panic() after stalling
>>> for more than 3 minutes per default. Add a module parameter for
>>> changing this timeout.
>>>
>>> Cc: <stable@vger.kernel.org>
>>> Reported-by: Marek Marczykowski-G=C3=B3recki=20
>>> <marmarek@invisiblethingslab.com>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>
>>
>>
>> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>=20
>=20
> This appears to have noticeable effect on boot time (and boot experienc=
e=20
> in general).
>=20
>=20
> I have
>=20
>=20
>  =C2=A0 memory=3D1024
>  =C2=A0 maxmem=3D8192
>=20
>=20
> And my boot time (on an admittedly slow box) went from 33 to 45 seconds=
=2E=20
> And boot pauses in the middle while it is waiting for ballooning to=20
> complete.
>=20
>=20
> [=C2=A0=C2=A0=C2=A0 5.062714] xen:balloon: Waiting for initial ballooni=
ng down having=20
> finished.
> [=C2=A0=C2=A0=C2=A0 5.449696] random: crng init done
> [=C2=A0=C2=A0 34.613050] xen:balloon: Initial ballooning down finished.=


This shows that before it was just by chance that the PoD cache wasn't
exhausted.

> So at least I think we should consider bumping log level down from info=
=2E

Which level would you prefer? warn?

And if so, would you mind doing this while committing (I have one day
off tomorrow)?


Juergen

--------------EA8676FA21E0F3DD37BD799B
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------EA8676FA21E0F3DD37BD799B--

--2vIdrc1xpWVHwJMCuVJCcJZ1hc8yPTd8m--

--JzKPLG1VYmIxPCVCcWc1VenFHq5kAdOeC
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGECKEFAwAAAAAACgkQsN6d1ii/Ey+P
BggAh6jDDygwPd1B1MxUqCUOGK7SQYdbqJnusvOH0yW8JyzIZXMriK8FS9A2KIaUTGoVZal7LsqD
L241gvpZq4mIP+QJR088u2IOzfYNJ3VoWRqAn4SZFw4EFMu/DIVi5CZem0Lu0fCwn0SqBjdYwhCX
4aHeSlOQi9nigZbA+VJRGPZfg+u4tq60OwyJT62ZyWzn7QveDHCpia0Bg8scrF/ClMF1QRtWG8en
QHvYw9aIfmuCDHP1rojzjiMMvqanZyUOFLNXwmnfxmORJXFB9pfytBWkxhGA6DU0pRtPTsdb1gwQ
a1x3VdrfLEtLQ7MJZOqcYKENNMxby6ovMdA9uWpCEg==
=saKu
-----END PGP SIGNATURE-----

--JzKPLG1VYmIxPCVCcWc1VenFHq5kAdOeC--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:23:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:23:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221718.383563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifWG-00032S-Ak; Thu, 04 Nov 2021 16:23:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221718.383563; Thu, 04 Nov 2021 16:23:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifWG-00032L-7j; Thu, 04 Nov 2021 16:23:16 +0000
Received: by outflank-mailman (input) for mailman id 221718;
 Thu, 04 Nov 2021 16:23:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JfF2=PX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1mifWE-00031z-Cs
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:23:14 +0000
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com
 [66.111.4.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 810c161a-3d8b-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 17:23:12 +0100 (CET)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46])
 by mailout.nyi.internal (Postfix) with ESMTP id 4A01A5C00EB;
 Thu,  4 Nov 2021 12:23:11 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute6.internal (MEProxy); Thu, 04 Nov 2021 12:23:11 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Nov 2021 12:23:08 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 810c161a-3d8b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to:x-me-proxy
	:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=F7ThL3
	bEF0AwmWK+5lDaywNOm4dgdIO3a3tYFPwmG3o=; b=NpcSFCK0fMEOT44lm2kABk
	7iIBZ1uXApevFBQirHZtrK+BmmBviHHZrxe73HV5x6R29UM6SCFu1nh6mUNYWGEj
	v8D1Ei95G900i3Ga00+cC1zz7Oy+WdOsor199CfoiDmSN21Ou1cMIkz/l5Rb3Ixd
	+C4ESfHMyYfZBEE3dhkCW2GzEe0XlrR1xkWU3T9LRSMzgjhgpRuVjciVlT8V0pkn
	UoUe1qP38PxukvedPDS1Ja3CO66Vb73QjaG22rfkkmW6t6Zd/rrharXZFMi47tSe
	/LHLZZPKkeXI5divGR5geziI4u0edTHd/N6ZqGVF40NC4a/egzjUWP2LuDZ3IoHw
	==
X-ME-Sender: <xms:7giEYXtTGKBg46bj0NiKjQLb_pTUQD06onODoDchEvEPrh8hAIiLKA>
    <xme:7giEYYcptuxe-WkF6F8FYbqOmdbEtQNLWbvdgAiuYWDqVQYoEvHll7sKxGGNkv8Ui
    s_nncOgmKamrQ>
X-ME-Received: <xmr:7giEYaxQs8ShRJ3wFK71sc000w3z1UkD4cNkI3Qa3WthAN5c6DSHuOFRwSfjj4EDCilcTr3sMFJg4dFkJooujj5BkLgw9tPFOxioLXeOgyI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrtdeggdekfecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepheevvdeu
    veehkeehhfevgffggfevudegteeugfeliedvhefgueeiuefgteetieffnecuffhomhgrih
    hnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhm
X-ME-Proxy: <xmx:7giEYWNNR6bp5iMup-zWeU3tfEHv0px9rWnJLruuJGRPrfubcInArQ>
    <xmx:7giEYX-pakkpVKZ0ZNINGW-J0vemCjtPNOaC1po2nK9XJYuE5pafWg>
    <xmx:7giEYWXhrPqnb9AZo255Mb7y_EIyEpD5oDCo-9y5_Eocxq9yZz2e_g>
    <xmx:7wiEYSmxxVEEIgGKUDeGGiM2mmHnV1p7zMzYVFKhPSxtQRjK-enDDw>
Date: Thu, 4 Nov 2021 17:23:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Jonathan Corbet <corbet@lwn.net>,
	Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
Message-ID: <YYQI6NQ8eY9XtSI4@mail-itl>
References: <20211102091944.17487-1-jgross@suse.com>
 <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
 <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="dtfzIy7fiid+QMXP"
Content-Disposition: inline
In-Reply-To: <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>


--dtfzIy7fiid+QMXP
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 4 Nov 2021 17:23:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Jonathan Corbet <corbet@lwn.net>,
	Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done

On Thu, Nov 04, 2021 at 11:55:34AM -0400, Boris Ostrovsky wrote:
> This appears to have noticeable effect on boot time (and boot experience =
in general).

Yes, this is kind of intentional. It avoids killing the domain ("out of
PoD memory") for the price of increased boot time. I still wonder why it
wasn't an issue before, although it could just be a race that was less
likely to loose before.

You can find some analysis of mine here:
https://lore.kernel.org/xen-devel/YXFxKC4shCATB913@mail-itl/

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--dtfzIy7fiid+QMXP
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmGECOgACgkQ24/THMrX
1yyYIQf+PK+WvewHZdnNVSkmaod5zSxBqVeO47i4A1ZdTACkgC6EgUbGDQtW3KtD
DARSfTbbDwto5VbzM13WfSiY9/0dNCSS79La3iYcIpML6q4jTGDC1/bu0mWlPFSN
GAn+RdG5XUN3c/YYlcqt/T+I/KGlEqazXo9P0q/704xDs6NQ3KFQB8bPq5cs9lp4
kpavY28wk2cSHT7c1LTiMkNQQRDM5VHdrH+NAf6sqZIj8GxJDk7v/FKki4sUxa7R
FdjiI0dgFGISxy48+6HXnw0mZHKNZXdA8pa0P7Lyw71AGq4PRmMzPjc36Zp0x8Om
RAeCy9mXJL2bbd17vEoH11N+53Eh3A==
=Vps0
-----END PGP SIGNATURE-----

--dtfzIy7fiid+QMXP--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:27:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:27:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221727.383575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifaW-0003iP-Sh; Thu, 04 Nov 2021 16:27:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221727.383575; Thu, 04 Nov 2021 16:27:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifaW-0003iI-Pj; Thu, 04 Nov 2021 16:27:40 +0000
Received: by outflank-mailman (input) for mailman id 221727;
 Thu, 04 Nov 2021 16:27:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mifaU-0003iC-R4
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:27:38 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mifaU-0008Hg-KA
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:27:38 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mifaU-0007Ng-Iq
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:27:38 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mifaO-0003I3-SE; Thu, 04 Nov 2021 16:27:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=VliKy/4FlrseDkM/hQwWa+nVNt6Owu0XIuivW0ffgos=; b=k2BJDbYxzw3rc2aFyr9ExVp+O6
	hedlpJsHt0xRmJ4YMeXVtDkRu+H0gBMqqASfCppd6iybJ0/4SEAifEse7YFIZ7AEQj3Ob4Tj+yhV4
	iZrORWv3aIfE3aDNQrG79MX1AP8IlkE2ntIi+wp/XklcTGQ5mT9ZcOXA2NgIsSWMd/tY=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24964.2546.976689.929650@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 16:27:30 +0000
To: Juergen Gross <jgross@suse.com>,
    Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
    Wei Liu <wl@xen.org>
Subject: [PATCH-for-4.16 v2 1/2] configure: modify default of building rombios
In-Reply-To: <20211104161121.18995-2-jgross@suse.com>
References: <20211104161121.18995-1-jgross@suse.com>
	<20211104161121.18995-2-jgross@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Juergen Gross writes ("[PATCH-for-4.16 v2 1/2] configure: modify default of building rombios"):
> The tools/configure script will default to build rombios if qemu
> traditional is enabled. If rombios is being built, ipxe will be built
> per default, too.
> 
> This results in rombios and ipxe no longer being built by default when
> disabling qemu traditional.
> 
> Fix that be rearranging the dependencies:

Andy, you asked for changes to the usage messages.  Are you happy ?

Thanks,
Ian.

> - build ipxe by default
> - build rombios by default if either ipxe or qemu traditional are
>   being built
> 
> This modification prepares not building qemu traditional by default
> without affecting build of rombios and ipxe.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Reviewed-by: Ian Jackson <iwj@xenproject.org>
> ---
> V2:
> - correct help text (Andrew Cooper)
> - correct commit message (Andrew Cooper)
> ---
>  tools/configure    | 115 +++++++++++++++++++++------------------------
>  tools/configure.ac |  67 +++++++++++++-------------
>  2 files changed, 85 insertions(+), 97 deletions(-)
> 
> diff --git a/tools/configure b/tools/configure
> index 33814b24b3..d980b3ffc9 100755
> --- a/tools/configure
> +++ b/tools/configure
> @@ -698,7 +698,6 @@ APPEND_INCLUDES
>  PREPEND_LIB
>  PREPEND_INCLUDES
>  EXTRA_QEMUU_CONFIGURE_ARGS
> -ipxe
>  qemu_xen_systemd
>  qemu_xen_path
>  qemu_xen
> @@ -706,6 +705,7 @@ rombios
>  BCC
>  LD86
>  AS86
> +ipxe
>  qemu_traditional
>  LINUX_BACKEND_MODULES
>  golang
> @@ -815,13 +815,13 @@ enable_seabios
>  enable_golang
>  with_linux_backend_modules
>  enable_qemu_traditional
> +enable_ipxe
> +with_system_ipxe
>  enable_rombios
>  with_system_qemu
>  with_stubdom_qmp_proxy
>  with_system_seabios
>  with_system_ovmf
> -enable_ipxe
> -with_system_ipxe
>  with_extra_qemuu_configure_args
>  with_xenstored
>  enable_systemd
> @@ -1504,10 +1504,10 @@ Optional Features:
>    --enable-qemu-traditional
>                            Enable qemu traditional device model, (DEFAULT is on
>                            for Linux or NetBSD x86, otherwise off)
> +  --enable-ipxe           Enable in-tree IPXE, (DEFAULT is on for x86,
> +                          otherwise off, see also --with-system-ipxe)
>    --enable-rombios        Enable ROMBIOS, (DEFAULT is on if qemu-traditional
> -                          is enabled, otherwise off)
> -  --disable-ipxe          Enable in-tree IPXE, (DEFAULT is on if rombios is
> -                          enabled, otherwise off, see also --with-system-ipxe)
> +                          or ipxe is enabled, otherwise off)
>    --enable-systemd        Enable systemd support (default is DISABLED)
>    --enable-9pfs           Explicitly enable 9pfs support in QEMU build
>                            (default is to defer to QEMU configure default)
> @@ -1538,6 +1538,11 @@ Optional Packages:
>    --with-linux-backend-modules="mod1 mod2"
>                            List of Linux backend module or modalias names to be
>                            autoloaded on startup.
> +  --with-system-ipxe[=PATH]
> +                          Use system supplied IPXE PATH instead of building
> +                          and installing our own version, it takes precedence
> +                          over --{en,dis}able-ipxe, --without-system-ipxe is
> +                          an error
>    --with-system-qemu[=PATH]
>                            Use system supplied qemu PATH or qemu (taken from
>                            $PATH) as qemu-xen device model instead of building
> @@ -1551,12 +1556,6 @@ Optional Packages:
>    --with-system-ovmf[=PATH]
>                            Use system supplied OVMF PATH instead of building
>                            and installing our own version
> -  --with-system-ipxe[=PATH]
> -                          Use system supplied IPXE PATH instead of building
> -                          and installing our own version, it takes precedence
> -                          over --{en,dis}able-ipxe and is bound by the
> -                          presence of rombios, --without-system-ipxe is an
> -                          error
>    --with-extra-qemuu-configure-args[="--ARG1 ..."]
>                            List of additional configure options for upstream
>                            qemu
> @@ -4314,13 +4313,54 @@ else
>  
>  fi
>  
> +if test "x$enable_ipxe" = "xno"; then :
> +  ipxe=n
> +else
> +  ipxe=y
> +fi
> +
> +# Check whether --enable-ipxe was given.
> +if test "${enable_ipxe+set}" = set; then :
> +  enableval=$enable_ipxe;
> +else
> +
> +    case "$host_cpu" in
> +        i[3456]86|x86_64)
> +           enable_ipxe="yes";;
> +        *) enable_ipxe="no";;
> +    esac
> +
> +fi
> +
> +
> +# Check whether --with-system-ipxe was given.
> +if test "${with_system_ipxe+set}" = set; then :
> +  withval=$with_system_ipxe;
> +    case $withval in
> +        no) as_fn_error $? "--without-system-ipxe has no effect" "$LINENO" 5 ;;
> +        /*)  ipxe_path=$withval; ipxe=n ;;
> +        *) as_fn_error $? "IPXE specified, but is not an absolute path" "$LINENO" 5 ;;
> +    esac
> +
> +fi
> +
> +if test "x$ipxe" = "xy" -o -n "$ipxe_path" ; then :
> +
> +
> +cat >>confdefs.h <<_ACEOF
> +#define IPXE_PATH "${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"
> +_ACEOF
> +
> +
> +fi
> +
>  
>  # Check whether --enable-rombios was given.
>  if test "${enable_rombios+set}" = set; then :
>    enableval=$enable_rombios;
>  else
>  
> -    if test "x$enable_qemu_traditional" = "xyes"; then :
> +    if test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"; then :
>  
>          enable_rombios="yes"
>  
> @@ -4635,55 +4675,6 @@ _ACEOF
>  
>  fi
>  
> -# Check whether --enable-ipxe was given.
> -if test "${enable_ipxe+set}" = set; then :
> -  enableval=$enable_ipxe;
> -     if test "x$enable_ipxe" = "xno"; then :
> -  ipxe=n
> -else
> -  ipxe=y
> -fi
> -
> -else
> -
> -    if test "x$enable_rombios" = "xno"; then :
> -  ipxe=n
> -else
> -  ipxe=y
> -fi
> -
> -fi
> -
> -
> -# Check whether --with-system-ipxe was given.
> -if test "${with_system_ipxe+set}" = set; then :
> -  withval=$with_system_ipxe;
> -    case $withval in
> -        no) as_fn_error $? "--without-system-ipxe has no effect" "$LINENO" 5 ;;
> -        /*)  ipxe_path=$withval; ipxe=n ;;
> -        *) as_fn_error $? "IPXE specified, but is not an absolute path" "$LINENO" 5 ;;
> -    esac
> -
> -fi
> -
> -if test "x$ipxe" = "xy" -o -n "$ipxe_path" ; then :
> -
> -
> -    if test "x$enable_rombios" = "xno"; then :
> -
> -        as_fn_error $? "Rombios is required to use IPXE" "$LINENO" 5
> -
> -fi
> -
> -
> -cat >>confdefs.h <<_ACEOF
> -#define IPXE_PATH "${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"
> -_ACEOF
> -
> -
> -fi
> -
> -
>  
>  # Check whether --with-extra-qemuu-configure-args was given.
>  if test "${with_extra_qemuu_configure_args+set}" = set; then :
> diff --git a/tools/configure.ac b/tools/configure.ac
> index 6414fcbb44..97582951c8 100644
> --- a/tools/configure.ac
> +++ b/tools/configure.ac
> @@ -139,10 +139,40 @@ AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled])
>  ])
>  AC_SUBST(qemu_traditional)
>  
> +AC_ARG_ENABLE([ipxe],
> +    AS_HELP_STRING([--enable-ipxe],
> +                   [Enable in-tree IPXE, (DEFAULT is on for x86,
> +                    otherwise off, see also --with-system-ipxe)]),,[
> +    case "$host_cpu" in
> +        i[[3456]]86|x86_64)
> +           enable_ipxe="yes";;
> +        *) enable_ipxe="no";;
> +    esac
> +])
> +AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
> +AC_ARG_WITH([system-ipxe],
> +    AS_HELP_STRING([--with-system-ipxe@<:@=PATH@:>@],
> +       [Use system supplied IPXE PATH instead of building and installing
> +        our own version, it takes precedence over --{en,dis}able-ipxe,
> +        --without-system-ipxe is an error]),[
> +    case $withval in
> +        no) AC_MSG_ERROR([--without-system-ipxe has no effect]) ;;
> +        /*)  ipxe_path=$withval; ipxe=n ;;
> +        *) AC_MSG_ERROR([IPXE specified, but is not an absolute path]) ;;
> +    esac
> +],[])
> +AS_IF([test "x$ipxe" = "xy" -o -n "$ipxe_path" ], [
> +    AC_DEFINE_UNQUOTED([IPXE_PATH],
> +                       ["${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"],
> +                       [IPXE path])
> +])
> +AC_SUBST(ipxe)
> +
>  AC_ARG_ENABLE([rombios],
>      AS_HELP_STRING([--enable-rombios],
> -                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional is enabled, otherwise off)]),,[
> -    AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
> +                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional or ipxe is enabled,
> +                    otherwise off)]),,[
> +    AS_IF([test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"], [
>          enable_rombios="yes"
>      ], [
>          enable_rombios="no"
> @@ -240,39 +270,6 @@ AS_IF([test "x$ovmf" = "xy" -o -n "$ovmf_path" ], [
>                         [OVMF path])
>  ])
>  
> -AC_ARG_ENABLE([ipxe],
> -    AS_HELP_STRING([--disable-ipxe],
> -                   [Enable in-tree IPXE, (DEFAULT is on if rombios is enabled,
> -                    otherwise off, see also --with-system-ipxe)]),
> -    [
> -     AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
> -    ],
> -    [
> -    AS_IF([test "x$enable_rombios" = "xno"], [ipxe=n], [ipxe=y])
> -])
> -AC_ARG_WITH([system-ipxe],
> -    AS_HELP_STRING([--with-system-ipxe@<:@=PATH@:>@],
> -       [Use system supplied IPXE PATH instead of building and installing
> -        our own version, it takes precedence over --{en,dis}able-ipxe and is
> -        bound by the presence of rombios, --without-system-ipxe is an error]),[
> -    case $withval in
> -        no) AC_MSG_ERROR([--without-system-ipxe has no effect]) ;;
> -        /*)  ipxe_path=$withval; ipxe=n ;;
> -        *) AC_MSG_ERROR([IPXE specified, but is not an absolute path]) ;;
> -    esac
> -],[])
> -AS_IF([test "x$ipxe" = "xy" -o -n "$ipxe_path" ], [
> -
> -    AS_IF([test "x$enable_rombios" = "xno"], [
> -        AC_MSG_ERROR([Rombios is required to use IPXE])
> -    ], [])
> -
> -    AC_DEFINE_UNQUOTED([IPXE_PATH],
> -                       ["${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"],
> -                       [IPXE path])
> -])
> -AC_SUBST(ipxe)
> -
>  AC_ARG_WITH([extra-qemuu-configure-args],
>      AS_HELP_STRING([--with-extra-qemuu-configure-args@<:@="--ARG1 ..."@:>@],
>         [List of additional configure options for upstream qemu]),[
> -- 
> 2.26.2
> 


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:28:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:28:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221734.383586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifb3-0004GZ-A3; Thu, 04 Nov 2021 16:28:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221734.383586; Thu, 04 Nov 2021 16:28:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifb3-0004GS-61; Thu, 04 Nov 2021 16:28:13 +0000
Received: by outflank-mailman (input) for mailman id 221734;
 Thu, 04 Nov 2021 16:28:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mifb2-0004GF-Gh
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:28:12 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mifb2-0008IE-Fv
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:28:12 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mifb2-0007PP-F5
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:28:12 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mifax-0003IX-Qj; Thu, 04 Nov 2021 16:28:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=4P2rXa7wAH/x8cxquAXPxQ2xOkEgnDhpm395bIb3wtM=; b=ZzCFxLPwDrvvgr1tIx1Ru/JJMY
	VQ0UTVk5sFDOpokqIW5BGsrEIU6pPUCOOV1DOZaTotB6FG2k3C3MZhhC5lmR1exdZNF7r5GpJ8Sfm
	5eNRieiRYeXgWsC/mVfvN3jOWAMm81fayMSIpQm3pgseV73qYdc0V23qWcroXMZs0P8M=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24964.2583.16255.794552@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 16:28:07 +0000
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org,
    Wei Liu <wl@xen.org>,
    Community Manager <community.manager@xenproject.org>,
    Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: Re: [PATCH-for-4.16 v2 0/2] next try for disabling build of qemu-trad
In-Reply-To: <20211104161121.18995-1-jgross@suse.com>
References: <20211104161121.18995-1-jgross@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Juergen Gross writes ("[PATCH-for-4.16 v2 0/2] next try for disabling build of qemu-trad"):
> Another try to disable building qemu-traditional per default.
> 
> Juergen Gross (2):
>   configure: modify default of building rombios
>   tools: disable building qemu-trad per default

Both patches.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

But let's see if Andy wants to comment on the help messages.

Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:33:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221742.383597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifg9-0005lD-Tg; Thu, 04 Nov 2021 16:33:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221742.383597; Thu, 04 Nov 2021 16:33:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifg9-0005l6-Qc; Thu, 04 Nov 2021 16:33:29 +0000
Received: by outflank-mailman (input) for mailman id 221742;
 Thu, 04 Nov 2021 16:33:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JCzN=PX=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1mifg8-0005l0-P7
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:33:28 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f042b5aa-3d8c-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 17:33:27 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id r10so9301379ljj.11
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 09:33:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f042b5aa-3d8c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=yz2Y7QOiHVchOO59o14q/Dic0tEfeCO9FutwyuxprH8=;
        b=k/YnnsYr+eGTSuiZtOeOVaKVhiUAtX5L4LeXT1MzGn+e2Wo1f2Y6VlHvPotZdv/DBv
         ZoSVtFKuhhJ6zyrIgTJYyWh7jga8Ci43q7kGvCGFvGJL5tzAiVLg8ZT1bgX3eLLHJMW7
         eE+TkJPYeDGHAkyHN+8wgO0OA9BnlE8Li8cT3Z6+SEl4cGCQ69CVHC3UzwP5IM0hG13T
         wF6SLIE+9Q8u2WsGKWsl+wzHHRe/CuMlWMfPbOTc3hRC366m0FzzdFOrFDz4zidsjxBs
         gYgn7oGBaWV52NmRjEPW7IhCDjWwf76UmBg4u0eCBVONpll4XNfPoAyuZHcL+KR0dcen
         PKMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=yz2Y7QOiHVchOO59o14q/Dic0tEfeCO9FutwyuxprH8=;
        b=haUjcTYg3tosBkcEnIpXXqxA1GxUh42i2SYX+Knbb3rAUbGpyjLsMvkJ7zsdGeXLmM
         BtCOI26t2/dc3sELuxkd9hhNBOGlVFbvgWkUWwavrqA7uJxdSgzGkXNVQk9loXA5IwvG
         2eOUE1/CWsuWyBF8G1T6ZRJFanoOXfsx1n39q7cjFYHpfXhg5YJFy5/G1CkpbsFxjEgf
         g6YzCtsOYoYSX642H13n9zMUvwB74cn82PzliDC2rnQoFye9NWAe4/QY3fnziEKzZfm1
         4t7GycIUhpRXYwh4Lg0cjSfBeMhLmO/b7HnpsYa83T0dyqyWiQpeuIpqm9ZXBNCarsMf
         lqiA==
X-Gm-Message-State: AOAM533URR/I8KwxHtSXlL5L6M60UyLg+PRJUgrlp+6U6As3lZ/4eQv/
	xgJVmkvhc2ycW0NdJikxpAkncybllvM7/9qsezYqcVd7
X-Google-Smtp-Source: ABdhPJzIk3yIcqmUuR19+Bn2lCLxvu8VlLpF6JPbvdi+3ChJbxEz7XA3BSjQVXkyxGhaint9GBVDwnzwoNa0vPudR1w=
X-Received: by 2002:a2e:9dd5:: with SMTP id x21mr8582702ljj.459.1636043607331;
 Thu, 04 Nov 2021 09:33:27 -0700 (PDT)
MIME-Version: 1.0
References: <20211104144242.14351-1-jgross@suse.com> <54900dfb-c6fa-a2ad-471c-227a4888c687@citrix.com>
In-Reply-To: <54900dfb-c6fa-a2ad-471c-227a4888c687@citrix.com>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Thu, 4 Nov 2021 12:33:15 -0400
Message-ID: <CAKf6xptNXd=eB0KNb=40CjqvzOT9xR8vMM-tV6e7DWez6AWKMg@mail.gmail.com>
Subject: Re: [PATCH-for-4.16] tools/helpers: fix broken xenstore stubdom init
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Juergen Gross <jgross@suse.com>, xen-devel <xen-devel@lists.xenproject.org>, 
	Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>
Content-Type: text/plain; charset="UTF-8"

On Thu, Nov 4, 2021 at 11:00 AM Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> On 04/11/2021 14:42, Juergen Gross wrote:
> > Commit 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier
> > into xc_dom_parse_image()") broke starting the xenstore stubdom. This
> > is due to a rather special way the xenstore stubdom domain config is
> > being initialized: in order to support both, PV and PVH stubdom,
> > init-xenstore-domain is using xc_dom_parse_image() to find the correct
> > domain type. Unfortunately above commit requires xc_dom_boot_xen_init()
> > to have been called before using xc_dom_parse_image(). This requires
> > the domid, which is known only after xc_domain_create(), which requires
> > the domain type.
> >
> > In order to break this circular dependency, call xc_dom_boot_xen_init()
> > with an arbitrary domid first, and then set dom->guest_domid later.
> >
> > Fixes: 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier into xc_dom_parse_image()")
> > Signed-off-by: Juergen Gross <jgross@suse.com>
> > Release-acked-by: Ian Jackson <iwj@xenproject.org>
>
> This is all rather nasty, and really highlights problems with the
> libxenguest abi, because you really ought to be able to ask "what ELF
> properties do I have on my hand" without an implicit "and try to start
> building a VM using it" on the side.
>
> I agree this is probably the best thing to do right now.

Yes, this is probably the best change before release.

If xc_dom_allocate() filled in dom->xen_version & dom->xen_caps - i.e.
move that from xc_dom_boot_xen_init() - then I think this patch
wouldn't be necessary.  But there could be side effects of such a
change.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:34:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:34:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221747.383607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifhW-0006Kw-8Y; Thu, 04 Nov 2021 16:34:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221747.383607; Thu, 04 Nov 2021 16:34:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifhW-0006Kp-5a; Thu, 04 Nov 2021 16:34:54 +0000
Received: by outflank-mailman (input) for mailman id 221747;
 Thu, 04 Nov 2021 16:34:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vs6a=PX=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mifhU-0006Kh-St
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:34:52 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 212f1e32-3d8d-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 17:34:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 212f1e32-3d8d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636043691;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:content-transfer-encoding:in-reply-to;
  bh=sIiHA2DT0X+lF9plIQCW1ff7vReUXq9RTxSmnPMpEYk=;
  b=ZZVfSdrqtlXwRqaGn63KTpAJFvNcB1CS3y4xUVbo45K0KI67n08RJtz7
   ALKPR5NJfPhi66mYxqZQKbyH/Qv8QmvDlxOml+11Haf3jmlyGSiQW1nz1
   YuO2Fq51UNy+uW4ANSlYYsEWkY7xA8Su6diFo2xHQ/KtxGLmooldHc/nT
   M=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Q+XJI9wdNLIj148Q7AjLHyTgOVp1XL789t9Y5BN1Bk6u6cgeHcikVqdHT4fOfTWCTy70ZsnMBO
 ALPuVPqQLrjgqYoWcR3JQqUeKcQT94FOlMw7Jb/duX0ujqdGn+8E1vEq8rGKdvC9XnpMkbGf11
 RNfU33UwLFPkPLC/GTefjkj9I+N2CmFNIsXopK1KT84pllCKB2IobDRyxGBWIeozvtn0iwxWFU
 wLJfzLOspDyb0GywIkIpIOB+0N02m1ao/IX5O9soM7+EqFdTcKp+hydC0PYk2o7r8evra1WcsR
 rqth1ApE5lfLYlB5oA61tG5b
X-SBRS: 5.1
X-MesageID: 56630957
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:az+to6mEGKpheC+s68wW0zLo5gykI0RdPkR7XQ2eYbSJt1+Wr1Gzt
 xIWUDqPPf/YZzSnf9p0YYvn8kgEucPdy99mHQtkqn80QiMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Y02YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 PZN6aeBRTt2ApKWlsZMUhl2Mwt9I7ITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBMDtIIMYvGAm1TzDBOwqaZvCX7/L9ZlT2zJYasVmQKiAP
 JJINGUHgBLoOxl2JAsbFY0EkvqJ20D1NBxWmQOZnP9ii4TU5FMoi+W8WDbPQfSWRMB9jkue4
 GXc8AzRCxUbL8CWyCDD/GilgOTOhgvkVIlUH7q9ntZonVvVwGUQAR8XUFKToP+lh0r4UNVaQ
 2Qf8zAiqqUa/0WxQt7wGRa/pRasohcZUsF4D+4+5QeC26fQpQ2eAwAsRDlLYs0rr88ySDkj0
 HeGmtroAXpkt7j9YXCX+6qQrDiyETMINmJEbigBJSMV7t+mrIwtgxbnStd4DLXzntDzASv3w
 T2BsG45nbp7pc0GyaS9u0zGijSEp57VQwpz7QLSNkqu6QV/Y4ypbpKp8nDU6P9BKMCSSVzpl
 HkbmeCO4eYWF5aPmSeRBuIXE9mB5PGDKjTQx0FuG5oJ8C6k8HquO4tX5VlWKF9yN8cYeRfge
 ELJpR5K/5hXIWeraqlsJYm2DqwCwafsGNv/X9jIf9FOZd53bwbB8yZwDWau2GTqnFkpgLsIE
 56ResaxDl4XEa1iijGxQo812Lsm1mY0yGXVSJ3TyxWh2KCZInmPRt8tL1+mfu0/qqSer2396
 99CM+OaxhMZV/fxCgHV7IoSIFYiPXU9Q5fspKR/cvOAKxF0XmEoFOXAxbAmU4hkmblF0ObO4
 ny5HERfzTLXjHzcIASOY1hpaa/jUJhyq342J2onOlPA82A7YJyk5aMWfYYfd7g7+OFtwPh4Q
 uNDcMKFatxUUSjO8TkZaZj7raRheQ6tiAbIODCqCAXTZLY5GVaPoIW9OFKyqm9eVUJbqPfSv
 ZWD1l/gcJY/GDhdVsj0OfOv4XObvmYCzbcas1TzHvFff0Dl8Y5PIiP3j+MqL8xkFSgv1gd2x
 C7NX05G+LClT5sdtYCQ2Pva99vB//5WRxICRwHmAaCK2T42F4ZJ6atJS662cD/UTwsYE43yN
 LwOn5kQ3BDq9WumUraQ8Z43ksrSBPO1/te2KziI+l2RPzxH7Zs6cxG7MTFn7PEl+1OjhSO4W
 1iU5v5RMqiTNcXuHTY5fVR+M7XdiKlNymOKvJzZxXkWAgctrNJrtm0IbnGxZNF1duMpYOvJP
 8944Kb6FDBTejJ1a43b30i4BkyHL2AaUrVPi33pKNSDt+bf8XkbOca0InavuPmnMowQWmF3c
 m78rPeT3Nx0mxudG0ff4FCQhIJ1n4oVghlWwTcqfhLR8jYzrqRsh0M5HPVeZlk98yirJMopZ
 TQ7aRYofPrTl9qq7eAaN12R98h6LEXx0iTMJ5EhzgU1lmGkCT7AKnMTI+GI8BxL+m5QZGEDr
 rqZ1HzkQXDhe8Sohnk+XktsqvrCS91t91KdxJD7TprdR5RqMyD4hqKOZHYTr0e1C80Gm0Ca9
 /Jh+/x9aPOnOHdI8bE7EYSTyZ8ZVAuAeD5ZWfhk8a5QRTPcdTi+1CKgMUe0fs8RdfXG/VXhU
 55lJ95VVgT43yGL92hJCakJKr5yvfgo+NtdJe+7eT9Y6+OS92M7vojR+y7ygH4Qb+9vyctte
 JnMcz+iE3CLgScGkWH6s8QZaHGzZsMJZVOg0bntovkJDZ8KrMplbVo2jumvp3yQPQZqo0CUs
 QfEa/OExuBu090xzY7lE6EFDASoM9LjEu+P9Vnr4dhJaNrON+bIth8U9Qa7b1gHY+NJVoQlj
 6mJvf72wFjB7eQ/XG3ukpWcE7VEuJepV+1NP8OrdHRXkENugiM3D8fvL4xgFaF0rQ==
IronPort-HdrOrdr: A9a23:1u8FxayjkUUJsUURfG/GKrPwFL1zdoMgy1knxilNoRw8SK2lfu
 SV7ZMmPHjP+VAssRAb6LS90ca7LU80maQb3WBVB8baYOCEghrMEGgB1/qA/9SIIUSXnYQx6U
 4jSdkdNDSZNykDsS+Q2mmF+rgbruW6zA==
X-IronPort-AV: E=Sophos;i="5.87,209,1631592000"; 
   d="scan'208";a="56630957"
Date: Thu, 4 Nov 2021 16:34:41 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Alex =?iso-8859-1?Q?Benn=E9e?= <alex.bennee@linaro.org>
CC: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>, Kevin Tian
	<kevin.tian@intel.com>, George Dunlap <george.dunlap@citrix.com>, Ian Jackson
	<iwj@xenproject.org>, Connor Davis <connojdavis@gmail.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Alistair Francis <alistair.francis@wdc.com>, "Tim
 Deegan" <tim@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Doug Goldstein <cardoe@cardoe.com>, Jan Beulich
	<jbeulich@suse.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, "Julien
 Grall" <julien@xen.org>, Alexandru Isaila <aisaila@bitdefender.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Petre Pircalabu <ppircalabu@bitdefender.com>,
	Paul Durrant <paul@xen.org>, Daniel De Graaf <dgdegra@tycho.nsa.gov>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Liu <wl@xen.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Lukasz Hawrylko
	<lukasz.hawrylko@linux.intel.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH v7 00/51] xen: Build system improvements, now with
 out-of-tree build!
Message-ID: <YYQLoR2ussToQjFV@perard>
References: <20210824105038.1257926-1-anthony.perard@citrix.com>
 <871r3vkiok.fsf@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <871r3vkiok.fsf@linaro.org>

On Thu, Nov 04, 2021 at 03:49:36PM +0000, Alex Bennée wrote:
> 
> Anthony PERARD <anthony.perard@citrix.com> writes:
> 
> > Patch series available in this git branch:
> > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fxenbits.xen.org%2Fgit-http%2Fpeople%2Faperard%2Fxen-unstable.git&amp;data=04%7C01%7Canthony.perard%40citrix.com%7C85bb0d32a72542aa9f6108d99fad9607%7C335836de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C637716390172120458%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=WWS4yPu9%2BJxBkBiM5SBrH7kDtHkUzMGuKSSdPcgEYII%3D&amp;reserved=0 br.build-system-xen-v7
> >
> > v7:
> >     Out-of-tree build!
> >
> >     This mean many more patches. Everything after patch 27 is new.
> >
> >     There's a few new patch before that, but otherwise are rework of
> >     v6.
> 
> This is something I've been looking forward to but obviously my QEMU
> focused mind meant I did it wrong. Generally I create a builds subdir in
> my tree with subdirs for each build flavour. So with:
> 
>   /home/alex/lsrc/xen/xen.git/builds/native
> 
> And executing:
> 
>   ➜  ../../configure

Thanks for testing, but the patch series only focus on a subset of the
repository, that is the hypervisor "xen.git/xen/". The rest of xen.git
isn't ready for out-of-tree build unfortunately. A lot more work is
needed.

> In "build: adding out-of-tree support to the xen build" you describe the
> Linux kernel style which works well where the config can be done after
> the fact but I wonder if the configure approach is better suited to
> something that needs a bunch of checks running. Is the configure script
> pure autoconf? This should work out of the box IIRC.

"xen.git/xen/" does use a build system similar to Linux's, we use
Linux's Kconfig for example.

For the rest of the repository, it is indeed autoconf for the
configuration phase. So yes running ./configure would be mostly ok, but
it doesn't take care of Makefiles at the moment and I found one bug in
our autoconf macros. Beyond that, our Makefiles aren't ready.

xen.git isn't a single build system, they are several (at least one
foreach of xen/ stubdom/ tools/)

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:35:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:35:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221751.383619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifhr-0006qQ-Hv; Thu, 04 Nov 2021 16:35:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221751.383619; Thu, 04 Nov 2021 16:35:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifhr-0006qJ-EV; Thu, 04 Nov 2021 16:35:15 +0000
Received: by outflank-mailman (input) for mailman id 221751;
 Thu, 04 Nov 2021 16:35:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xlTz=PX=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mifhp-0006Kh-Bv
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:35:13 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d8e094f-3d8d-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 17:35:11 +0100 (CET)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A4G6XTW027061; 
 Thu, 4 Nov 2021 16:35:05 GMT
Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c3mxh9n6p-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 16:35:05 +0000
Received: from pps.filterd (userp3030.oracle.com [127.0.0.1])
 by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A4GT7Lh145882;
 Thu, 4 Nov 2021 16:35:04 GMT
Received: from nam10-bn7-obe.outbound.protection.outlook.com
 (mail-bn7nam10lp2103.outbound.protection.outlook.com [104.47.70.103])
 by userp3030.oracle.com with ESMTP id 3c27k8wycg-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 16:35:03 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB4398.namprd10.prod.outlook.com (2603:10b6:208:1dc::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Thu, 4 Nov
 2021 16:35:02 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.011; Thu, 4 Nov 2021
 16:35:02 +0000
Received: from [10.74.104.20] (138.3.200.20) by
 SJ0PR03CA0083.namprd03.prod.outlook.com (2603:10b6:a03:331::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13 via Frontend
 Transport; Thu, 4 Nov 2021 16:34:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d8e094f-3d8d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=hhmNDCgXjQvoAX3ba1WOjDI+F6xGAojVC3VY2mG5XrM=;
 b=RVlzunmpCGb/yWgDPv78BgANxsEK3OwZAzW1ux67eQH9ZOazr2zga1W/2P4SrOqH1jx/
 m1Lpn5hoJtxL7orxJvTrrIi6wAbxsQ2b9RY4/WmblO1uyfO/2EOiVk3FFb6+Jn8vlC57
 ZWLw1yNjArHh04OefBmvBEezzU0cDVElTDLvVboB3NA2Vq/SBFwBlcwXEeI8uWfjw5Em
 qSU8pQkHar/SgwD7Rx0BTAmU707LV0ZdHxjyFwc3kzRQz7I1a0o1yemNrMXIp+qyuYhh
 /zRUz+xciQyf8dLsRMz18eGbA1mNMfmg+2/AVqflj/xTm4ei3ZXPirOLOX44pL4oKP45 rA== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ClQsqnBFpAHVOXKsfsmyaXhoe1CEevEzZPMDB7F1hGaZWf0++kf4VS169WLpK50B2zjOcbrfuO/rlmoFC69+vLc2FbHG1S9rkxkSV/Slbrk1AO482wMQUiY5iaptYVou8wRKu7F1JbI7RB1nigx1DVJXNeRrtI//kRCn8lNDPJMzRyxCzAC+gDi/Cjhf5qoW1tI8HYrdDjT41HfX9VZ6lPba7Fay32GXm+GhaUOj6+fOhibO7fV4v3VT8roRzXpGss61UI6iMWN9RffQtz8tK+8c2PrAvWAgoGzvNR8iI5sEhv+UXoSLxU0u2lcTAp6FTwIRj03GX0+XOobh6w2VwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hhmNDCgXjQvoAX3ba1WOjDI+F6xGAojVC3VY2mG5XrM=;
 b=ZP+K4eLIvDz8+P1gINGcaG+u76lV3VenqMUBhFPy7tzsu7ITOKTIY+q7DC9cqLx9AyBDM7MHvHc8U2VF8AC4Ld8ZSX+Jx2vqTY8QiUenyjpKrv+q4dFIvdzGUoEi3tQm83np2E/rPFFYF+XPJjEOJ7U3UXxVNxpI0gVio4r3hFFPfIlwOHDbHNvBzUVnnEp3MJAwc2wzMI4ZFJGfw0nZfiEp5d1OH9xtDjGxW3uWnBn+XmTkTkktzAl37Pgt2O5GhvRVpNIItv7UBui/d2oHv50THSWcyznj+cRuXf5G6+EQdEHdRkUEgLfGJBETnN+meHY9tty25Oc9+LtTaucmXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hhmNDCgXjQvoAX3ba1WOjDI+F6xGAojVC3VY2mG5XrM=;
 b=kjKlPv6Ndo/a9jd9MPhpYzunIZAvATfNWs29kom1hhUnYDWLtnybWDtFt071gAqyA9iyO4gJAPsixVxkRxWHAP9iiNHCPFBbsV2IeY19RQWKL1+ucPwmO6l2DGT/gucdnvjkpLdWDfBPHfLVOTZ91icNN6EKweT0ThN1DUEOscU=
Authentication-Results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <18c12ead-ddf1-9231-7f3b-aafddd349dcf@oracle.com>
Date: Thu, 4 Nov 2021 12:34:56 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
        Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
        =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
References: <20211102091944.17487-1-jgross@suse.com>
 <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
 <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>
 <3b1f1771-0a96-1f71-9c9d-9fb1a53a266e@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <3b1f1771-0a96-1f71-9c9d-9fb1a53a266e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SJ0PR03CA0083.namprd03.prod.outlook.com
 (2603:10b6:a03:331::28) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 10359bba-0687-49c4-cebd-08d99fb10c95
X-MS-TrafficTypeDiagnostic: MN2PR10MB4398:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB43987948BAFFEC62453296D38A8D9@MN2PR10MB4398.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	FJmzZnHJjFiQO2QIpiCxvne/qcZZgqhbNhNM8S7nt4k0mlHEWNXpppg5W4ZtxVqgN2T3PqhCIPXdniqaa1FqKVoGHqK6718B5uN0SkFBObrUlMRBay6N66sq5vLhQWgSduaWasGrjYEHn0bnm1LhqCyib2/2z/S+YlYydcJPfpW1aJlteYRHTc2VOkxXgGACL2d9Zv+9JJbw9QD7f2+v6gme0+y+zVLXcTWU65bXyC88iURVEHF/heFYyaUsEvrrmHrkmwUy0BlRbwPjWwyz9V+Wf8XRU2DthgSjGNNcU4DqmuTWYE7ZTWWVyJZkF4nl3q9hb1seBJq8VCRbWmCJ5POUhkcfDhmM/JkKEIThnpbiiwZe/W3lyiD4FveTIUuT9T8lbyL1GR2MQhAb/BoM9EnW+TIIdH3mJs9xq1D2lHFjGNPpCvZQXqvHnX+zl/GnPqAhhR4xNN/pWqaHhDwm08iZDhml6IMqsnt3VeJpeW9yq9yr0IkJEelgnx5ucOsL9PjUb5F3Nv/GHnK/UDc8paeS6xO1gMgOfcD+TBArz4wnSqBkhjeF+ld4Oi33mlg8C9bhxMuKcqz3Whb2zz7t1QltzIQwzC+hGsL5H3mBs4QOh6MluyWPpRRKklra7U6O7ClqDXBYeXujgmZYstuwC+BSInG1tiWs9niG97gC0IhrqaQPq0VaAY909+guuhrAkcSAtmv3ni2c5nyIbfp6nlELYJn4ltg8cOqcMKQLZwZ/g0lS0JiWlcf0OwhCsD8V
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(4326008)(16576012)(8676002)(316002)(54906003)(6486002)(2906002)(44832011)(8936002)(38100700002)(31686004)(53546011)(5660300002)(956004)(6666004)(66574015)(36756003)(2616005)(186003)(26005)(508600001)(66556008)(66476007)(86362001)(31696002)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?ZDNvQVkvRWlSL3NyR1VuajRTdCthMFQ0SENucFQrRzRORTg0L2ZrQ0NGdGhP?=
 =?utf-8?B?bU1odDFaTlhhSFA0L3U5NHBMVUNwUS9DTE0wMVZmTmlWd1hOV0hkN0RYVnVV?=
 =?utf-8?B?cUVkTGF4K1ZoUkhsWWROcG9qK3VGa0l3SDZkdXNLZlNFSG9rdXZlekg1SDVO?=
 =?utf-8?B?ZGNiNHJNZ1Exb1pyeFdPVWJOT0VSTzBsRDJOZGpHT1AxWERHYjBFUGg1QnBo?=
 =?utf-8?B?cytWTStCMC9NcmFFaWw0eHlJU0pWVys3ZVE5RnNkU294Ykd0OGphUEl2ZkRy?=
 =?utf-8?B?N0JSS1Qwc0RGclBJYzNzL3cvendnY1B1THI5U0pkdHExUEFMOHpCcEprY21V?=
 =?utf-8?B?bjNSMFFHcCsrZTNLalhEOGFMMTJxUm04TFRZWXBsVUV2MmZ3SHNqeXRwK2JJ?=
 =?utf-8?B?Q1ZxVjRiNlh4TTBNUjl1ekw3dmJmWjJsSXM4SGVSMy8yQ3YxU0t2NzZ3Tkw0?=
 =?utf-8?B?UkdNSE0wZnRDazl4Y1FYNEExbnhJaHlIR0EvSW4rdjZFbm5FLzFuYi9SeDVq?=
 =?utf-8?B?MU9hYTkwbkhmdzAzQi9JMkV6eG9vb2ZUWEYvaUF3Um92cUtQN25oOXNNQlFp?=
 =?utf-8?B?YngxMElvdTVJNndyMlQrVmJmZ0lWbllYOE5vekFrMkVVZ3lJY09FZGlpSUpl?=
 =?utf-8?B?T3ZzUW03dm9ISDZ2Zit4VXpKR3ZqRzZtRFJpbkNrL3RIbi9XOVZaS3ppSlNk?=
 =?utf-8?B?Q3hhYmdiTVVWNDdMOGdjY3VVQnJyMTVsYmpxRFBlQWtweEtrVDZ6N04wN2FV?=
 =?utf-8?B?aDM3SWExNit5cWNGa1QvZEYzOEd4UHlBWXhMU0NMeWtrcllLVFhyK1NUSUpJ?=
 =?utf-8?B?Mkl3a1dVRHpWZ2pZTWZORnp4d3I1bFZyNGFPa3g2UWx1dGEwTkEvUG0wOVRZ?=
 =?utf-8?B?L2F1M00wUlB5Tyt3aEFVR1ArYm9CNVFaaVB4NTZDa2JDdzV5dnpkaW1DS3gz?=
 =?utf-8?B?ZHN5TGx1aXB1U0pXWldkSUNQRU41NWlyYktwaGZWUVdLSFcwRWE4ZjVqWWQy?=
 =?utf-8?B?bGtMRHl3dUZoejRVYldQR3JuQTdWZUFpYzlIa1ZSR0xrQm5RZEhaKzZNVmVw?=
 =?utf-8?B?NkN0dGhla0RISkdYMjNqVjY0cnFKVCsyVkwyRHZvdnpQVDNscjFkdEg2OFZO?=
 =?utf-8?B?SjNTaEZnQ1ptRTNKc0ZVTFVvczkxeVNrdVZJZzc4Ylo4eERtMVRtRU1xVFBG?=
 =?utf-8?B?ZHd0ZDBOYTRPNXpMdDQ4dGVDV1VCanlVTWYxcC9iU0Njem51RzhxT2Y3SVox?=
 =?utf-8?B?Qi9QZE10YTc2aGdYOUN5Tys2aGR6a0M5YUZyOU04SmJJU011bTRtM2phdUMx?=
 =?utf-8?B?aDlkVEl5Vmt6RTVHczU4ZndQaHVPT1lUcmNTcVhCMVJrRGxNK2pWRmpncXRH?=
 =?utf-8?B?TVZqZEtBM09Ib3hIUmNZN1orZlFjKzNualNjSXZYWERCY3QrSG5qb01zbStz?=
 =?utf-8?B?VC9LUGhmelplaXQ4R0l2c0pNVFRhTzBDZXlJNDE0UzkwUTA1TER6QlErdzBa?=
 =?utf-8?B?YnlBWWtlRExTcXpCczh0c3RiZHB6RjVXWCs1c0pPQkx5OXpiYUhVWU5nSWNv?=
 =?utf-8?B?M0t6eGpZYnplcndPWDlGb1l6MndKZXpuSit6UElTK2d0Y2pNNmNJMjRFR09h?=
 =?utf-8?B?VnZIWmdHVkRlQzRXNlF1RktQUDlxSDI0SWVZSHV5ek1mWkd0SDF4YnUxcWR2?=
 =?utf-8?B?cnNITjNnRE5VOVlkRTJibElzQjRqZ3BLOWc5TVFUM1puOEFMRi9jOUVtQW8w?=
 =?utf-8?B?NmFvY3VYbmtUNnZMMnJ2b3NEMUJWR2ZiN0dNK1loTnpYU0N4L3ZKeXBWNzdB?=
 =?utf-8?B?K1NycVcrdHFaNUVsMEE1bVl3UndiU1FoWDVXU3dhYXN1MnZtMCtNY1NlWmNx?=
 =?utf-8?B?c25OOE9lb2xvd3lvbklZbDZTQ3Q1K0FEMVJzREJSUVplbFBRTXpUMzJQYU56?=
 =?utf-8?B?WjNCcFYzek9zVnVxZGRzVm9pQkxIVVp2VXAxOW16VEtzMWdYWHlsTUtkbllR?=
 =?utf-8?B?S2piSy8ySlBnK1c1SHhVVDRidmhrWnhveDhDd1B1a3kzQUQvSFpDOTB4MzFL?=
 =?utf-8?B?V08rNjRVNlAwSVpRdVhOUFhNaHMzaEJaYXFXTUxzUENqOGlIYitETzVpS3FS?=
 =?utf-8?B?UFlMZ09OZEpwWWVHcGwzWWVYbU80NDJ0WlkwaDRaVWFCT1orS3NWUGhOM3dC?=
 =?utf-8?B?NnBpWjZnZnlWM3hiRUtwTVN1elhiaFRJTEYxbCtMTmEreEZJa1lNK2NSekdP?=
 =?utf-8?Q?82aBFmtk+umb5j9sQjTL9Y4rfkDUCDD6KfmoFrzoMU=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10359bba-0687-49c4-cebd-08d99fb10c95
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 16:35:02.0182
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SoN3R3B67Z5ljWjas3GRHnRDZNcPCSBC75cA2h3CI/UFFAv9ixtznOcYThQsnjRdvLr+KI9LVtAUR//vUKAGpvMcYivywtsBILwzAWgjrk0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4398
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10158 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxscore=0 spamscore=0
 malwarescore=0 mlxlogscore=999 adultscore=0 phishscore=0 bulkscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111040062
X-Proofpoint-ORIG-GUID: WM7SLmzvSZ4tgtwDyxagxjxmPCIFQFUZ
X-Proofpoint-GUID: WM7SLmzvSZ4tgtwDyxagxjxmPCIFQFUZ


On 11/4/21 12:21 PM, Juergen Gross wrote:
> On 04.11.21 16:55, Boris Ostrovsky wrote:
>>
>> On 11/3/21 9:55 PM, Boris Ostrovsky wrote:
>>>
>>> On 11/2/21 5:19 AM, Juergen Gross wrote:
>>>> When running as PVH or HVM guest with actual memory < max memory the
>>>> hypervisor is using "populate on demand" in order to allow the guest
>>>> to balloon down from its maximum memory size. For this to work
>>>> correctly the guest must not touch more memory pages than its target
>>>> memory size as otherwise the PoD cache will be exhausted and the guest
>>>> is crashed as a result of that.
>>>>
>>>> In extreme cases ballooning down might not be finished today before
>>>> the init process is started, which can consume lots of memory.
>>>>
>>>> In order to avoid random boot crashes in such cases, add a late init
>>>> call to wait for ballooning down having finished for PVH/HVM guests.
>>>>
>>>> Warn on console if initial ballooning fails, panic() after stalling
>>>> for more than 3 minutes per default. Add a module parameter for
>>>> changing this timeout.
>>>>
>>>> Cc: <stable@vger.kernel.org>
>>>> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>>
>>>
>>>
>>> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>>
>>
>> This appears to have noticeable effect on boot time (and boot experience in general).
>>
>>
>> I have
>>
>>
>>    memory=1024
>>    maxmem=8192
>>
>>
>> And my boot time (on an admittedly slow box) went from 33 to 45 seconds. And boot pauses in the middle while it is waiting for ballooning to complete.
>>
>>
>> [    5.062714] xen:balloon: Waiting for initial ballooning down having finished.
>> [    5.449696] random: crng init done
>> [   34.613050] xen:balloon: Initial ballooning down finished.
>
> This shows that before it was just by chance that the PoD cache wasn't
> exhausted.


True.


>
>> So at least I think we should consider bumping log level down from info.
>
> Which level would you prefer? warn?
>

Notice? Although that won't make much difference as WARN is the default level.


I suppose we can't turn scrubbing off at this point?


> And if so, would you mind doing this while committing (I have one day
> off tomorrow)?


Yes, of course.


-boris



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:36:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:36:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221760.383630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifir-0007c4-0J; Thu, 04 Nov 2021 16:36:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221760.383630; Thu, 04 Nov 2021 16:36:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifiq-0007bx-SX; Thu, 04 Nov 2021 16:36:16 +0000
Received: by outflank-mailman (input) for mailman id 221760;
 Thu, 04 Nov 2021 16:36:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s15q=PX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mifiq-0006gR-2y
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:36:16 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53d4b00d-3d8d-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 17:36:15 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-25-yMkzNde3PziHkGG1FzfJ8w-1; Thu, 04 Nov 2021 17:36:13 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB2960.eurprd04.prod.outlook.com (2603:10a6:802:9::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Thu, 4 Nov
 2021 16:36:12 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Thu, 4 Nov 2021
 16:36:11 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P251CA0030.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::19) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Thu, 4 Nov 2021 16:36:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53d4b00d-3d8d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636043774;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=TvVcj1cSlOYm/o+qzZnxnqZvNaP0pk3zrhfKGoOruK0=;
	b=g9DrYCYcbnuqYc37f8/Js158yHcFDS9R12zfPrh/f0otvwKqBAQE16g+grSiI4l2O1p9kz
	KrXl5W/CyNsYW8oW11KjhCSF2TMvXGKcy9kOBllRprJ9nI9DdANFfGimSn3uAflPweR7Kq
	noCLkFmTWzAQcIhw2G/b0ZFe7dBatGU=
X-MC-Unique: yMkzNde3PziHkGG1FzfJ8w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Z61eT23jRKUDQbpFIE9ot+OC/bjaY6cmtJsd75aPMITn1rSPDIY9QmBenE8a2CZBFjEWXO5u8MOEuSPWtP2kcNB4W++MKfZ+UB3VWgJWU87o946aCNIGGbdMRZtayQBF9Ac9BddT71IQ9My1k+Z9TtxuYZjnMsIvfs2OSBG9LqAv1oIY1gzhymZkWCquy9Gnq0M5GegNoo4FTk9vw9oRFplFNXIDy0z+2UenPZgtTtk2JYW2P9vMKYKd/D1jQrT0vJFJ5XCis3DE9WLTuEH7yertGjIveS1GziH3dRVV7NAw2DptBkZQYw5qrIuE70BxiOk6jgN06RtsC1UA2wB/7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1nKfMgo1diL+LUlDwyB2iNtX9RXnW1f3Dbvi53KgCxI=;
 b=Gtmr45GnfnUkCcDn2IUiIcc7QZAc2TgHxSZ6dwiS/OZu6vV2/09HlfSLibSVLubzRTSASDhz6jHrzkcHaJ4EMXRvLkaozMYvcMiToCUnqvP37kQ9TKZMJKG2WRWQ7ZrU5ALf8W5/u46VLJLzN3UlxTCZ336FHyQ87hIEzWWboT2lXIlSevlHEuvIB74759MrpKQRFeLTLEh+KI9kO7IZn0gKyxDSnmcaUfjSvi/5ka/02pHzJ4QsdorQhzyrUIDAi9lG/jUAG+qID4jJAoDWbbA0d3lofLwqj9T2mSKIf5imUbWOf+iuMJC+yJE2cjFDnleUTwl4IhLJMU3MbkWLKQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
Date: Thu, 4 Nov 2021 17:36:09 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Luca Fancellu <luca.fancellu@arm.com>
CC: bertrand.marquis@arm.com, wei.chen@arm.com, iwj@xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211104141206.25153-1-luca.fancellu@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211104141206.25153-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8P251CA0030.EURP251.PROD.OUTLOOK.COM
 (2603:10a6:20b:2f2::19) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a25ad3f4-461a-4367-7746-08d99fb13632
X-MS-TrafficTypeDiagnostic: VI1PR04MB2960:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB2960FC7E5627006A28D08988B38D9@VI1PR04MB2960.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:245;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	DD+0C0I3FE8R7uAIMN+fxGA3fbMjPvPBHO1Vfbfpo0uDhQHkMW4CJSBPRi88xMg1T8NUsRF2azXN3StSSGfFi2t+oXozR31f5AazAi1qz2zPyLJe16Qoea6HQDIi4MRkQGot81VDwmty/PgyTb+f8o4h93DmVxwKmLhPGmPhqsAGToZYkxeL2b9APNJe8p2R0OBrB1ZfuIHSAw0kkk74RqeAoGIHoANHSp8jWyAUDMNlQcGK4AqDlZzLCoJ1FTFXKH0FvOrjWW2FEMUf39mbGN7c26SfMErDFzH2FzYeOLuBY1RU8zqZApqiZityi0ITgp8drkQ7BLJm3gqc+cMGGjSCPdGSbbA3Qouq+NBHT+/+UdAKiWPLDKhgo7QjbaKtzQ2qnSM5FgRpC+2WWI38WKGWEavuD2G0UCnu0bs2wQ+Es636jrkgodzre0+M9SREkrY7NT+bzKjvhJ+PsNQ6PY+CdnMMCwD/EZjezLP53cSsTDfG9lILu8eLy3EZBwMK9rqHNkn/S3Gge4XPpkUVnZOYXfr26ZROk6a3IQ+v9j+gMwC2Yn1ifKMMLxcrIxvJJ6aglGZhO4n7gxlGa1zplT12O3qJG4RnPUIHb5I3SA0cUgZbLhTFSfKyfWky1nedenjzpqMLu7i1ncCh0HucwYahlr8Mc8PE0x0GzhxqRPuYaE302KxipceL8iLaqVBxkcKjZ/UyPP8efD/svnRYXMWyQUO3GubxvV944Anymzz+cXrcwgudMN6NKlp+lTX4
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(26005)(53546011)(8936002)(36756003)(16576012)(6916009)(38100700002)(5660300002)(4326008)(2906002)(86362001)(316002)(186003)(8676002)(956004)(66476007)(31696002)(31686004)(66556008)(508600001)(83380400001)(6486002)(2616005)(66946007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?spe7W9vTPda8BQHbU7aHXisizZt93jupKeqpoQ7Ri23zS5h+y7uKMmxfPxO6?=
 =?us-ascii?Q?GkEhu11q31sctWvdGswuby/f342ysNWee0BNslemjBTjlRNJOmwSbEyQYY1w?=
 =?us-ascii?Q?qU8/CQUWOEkeiBqnBYPdlkLMCz3xtTjOdWjtlOBfdiLUiBdEGbT+8V3SUCxm?=
 =?us-ascii?Q?IQeQhEzn+eLMsuAQsh+Rx9mgJ0v/b8+dUj2aFSlzd444BWVMelqhF37Cg+D5?=
 =?us-ascii?Q?FDBAJgr8Ikxbe7gWvDZT1ksJ/09fsRDQZ/TlxQvljMAV/AoFkV9UyezhVFia?=
 =?us-ascii?Q?DkJ06Dl9nOzwC1AojLmumGr2t4gY0O5vPMuHL+SheTE07XeSVEMKnTEKpUO+?=
 =?us-ascii?Q?udRr449pYjQLKeJMRjsj/bfIO11zxKIhb7V2yijasbc/LkE7MvGwE6VuNPjh?=
 =?us-ascii?Q?bxTLvgK6xsaG4D7qmjZUICZZnxKfSfqPZSJOn6ytvvFYtuLSiyfZpt6CNta4?=
 =?us-ascii?Q?LuYLV1GbOeYBnC1zPUmAaNRZw9hhfcHs264EZfprpWGDxGzROim8+j0k486Z?=
 =?us-ascii?Q?KLdNMEgSPOzHVKhBB6veSdodVOZh/WuzhTmDsAt6vJapY4vxnrBpCHJ59NNt?=
 =?us-ascii?Q?/5jb1SuL09+f79VOXiEKATW26yoXrvi/pbk6boKwOInpeDieOW6kwXd0HnG0?=
 =?us-ascii?Q?1mTUz6ELLTQ8CGJJIHpzT/Qx8Es10XN3StLx2u34pegoTgc0sw7DU1tG4d3C?=
 =?us-ascii?Q?XmqI/N1/H1p+CgYERMiphCLw0LFhgTTcViRlS0QHyw7Vf0FOPcy8MkXhotPQ?=
 =?us-ascii?Q?2uQavT4xjbOUfO2tq6hGNEYHHM3zT/NDv9GmcLQu+o9HFT9Kq3nPmKqIG+ZH?=
 =?us-ascii?Q?i6pwi61VReLU5S67jMYZCDgTcx3WcIiInIYNzWYcyzB+gdypLHfgCgaM/l5L?=
 =?us-ascii?Q?Jf1JePBZKQPXRzIy4Qdz3bG+ngPg5y4A/RvKk4jZ6Cg8XuKZMEwUwwFLdqeg?=
 =?us-ascii?Q?XUQM/a7csQSvv9GbAAFYXB6H2UQWV61iEJ7twwWQ6j5GFWgO+Pf7xKWDiCEB?=
 =?us-ascii?Q?SaNYEQsQdJ1gFddCyBVSuYbFsmkpdPwGevDlSjCMtsJE1LU4Gsblb8BlFdEc?=
 =?us-ascii?Q?k9UT33UOh0PVtoMXOu3oag3VfaC0jvcZ+zvEMEUoeGtw/pn15VdPTx1hF30/?=
 =?us-ascii?Q?bYDoUZIHeHBAIQokif61i2Q5sRVW1jzWRNRQ8lobJ69xZwdy3Dc8B/3CmTOl?=
 =?us-ascii?Q?nDEOHmaJHOlBn+Dw/THRcMFloMo6nelTVBZ5yA0pp7gIU1BLCHnF+C7tIcn1?=
 =?us-ascii?Q?nbL40K/QGGd9sdQ0m3jHjtt0zjdDrTfe998Yhj+sxMGX4n1cjytW2dWwLR0n?=
 =?us-ascii?Q?q6ZASMcytqr2hWyxWvOv6/9M+L17/SIdi35CG+x/ZDmztJ40dpWdCvKXxt3K?=
 =?us-ascii?Q?880lKeYME9h6WRn7azWBojfJuKUl5kg+E5sbooCD+jZgSSi7CHoA8usveb6s?=
 =?us-ascii?Q?5wrX2MJ2XmVRcIwnKljU3Pz2n7XJlmq7d4qeGP/GOf9taAti7K0Iadd49cTo?=
 =?us-ascii?Q?cE+JeRQzZwKMHMCMH4LBVYmuu+ueBMye+WS9HNhVQdnzFaEh6Wp2+YLgo0yL?=
 =?us-ascii?Q?5vO/TtPD1MqotMzKmfFUQysKesyInFl3auytO0NGgP4SgfBr0lIwBfJZ2Lzj?=
 =?us-ascii?Q?qQbhdG9iXu+oSbDXPpzByoA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a25ad3f4-461a-4367-7746-08d99fb13632
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 16:36:11.8209
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IRSkrNOv+Be9LGUbi5q0IGbT24Zti5Goq9x8hy+LBhkqCZ0KJzs8of3C7R7RWTMjo7zsWwz8PqaTyZj4csAwSA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2960

On 04.11.2021 15:12, Luca Fancellu wrote:
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_=
LOADED_IMAGE *loaded_image,
>      CHAR16 *pathend, *ptr;
>      EFI_STATUS ret;
> =20
> +    /*
> +     * Grub2 running on top of EDK2 has been observed to supply a NULL
> +     * DeviceHandle. We can't use that to gain access to the filesystem.
> +     * However the system can still boot if it doesn=E2=80=99t require a=
ccess to the
> +     * filesystem.
> +     */
> +    if ( !loaded_image->DeviceHandle )
> +        return NULL;
> +
>      do {
>          EFI_FILE_IO_INTERFACE *fio;
> =20
> @@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_hand=
le, CHAR16 *name,
>      EFI_STATUS ret;
>      const CHAR16 *what =3D NULL;
> =20
> +    if ( !dir_handle )
> +        blexit(L"Error: No access to the filesystem");
>      if ( !name )
>          PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
>      ret =3D dir_handle->Open(dir_handle, &FileHandle, name,
> @@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE=
 *SystemTable)
>              EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>                                                         &file_name);
> =20
> -            handle->Close(handle);
> -            *argv =3D file_name;
> +            if ( !handle )
> +            {
> +                PrintErr(L"Error retrieving image name: no filesystem ac=
cess."
> +                         L" Setting default to xen.efi");
> +                PrintErr(newline);
> +                *argv =3D L"xen.efi";
> +            }
> +            else
> +            {
> +                handle->Close(handle);
> +                *argv =3D file_name;
> +            }
>          }
> =20
>          name.s =3D get_value(&cfg, section.s, "options");
> @@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE =
*SystemTable)
>      /* Get the number of boot modules specified on the DT or an error (<=
0) */
>      dt_modules_found =3D efi_check_dt_boot(dir_handle);
> =20
> -    dir_handle->Close(dir_handle);
> +    if ( dir_handle )
> +        dir_handle->Close(dir_handle);
> =20
>      if ( dt_modules_found < 0 )
>          /* efi_check_dt_boot throws some error */
>=20

I'm sorry, but I think we need to take a step back here and revisit
the earlier change. If that hadn't moved obtaining dir_handle out by
one level of scope, nothing bad would have happened to the case that
you're now trying to fix, I understand? So perhaps that part wants
undoing, with efi_check_dt_boot() instead getting passed loaded_image.
That way, down the call tree the needed handle can be obtained via
another call to get_parent_handle(), and quite likely in the scenario
you're trying to fix here execution wouldn't even make it there. This
then wouldn't be much different to the image name retrieval calling
get_parent_handle() a 2nd time, rather than trying to re-use
dir_handle.

Net effect being that I think get_parent_handle() would then again
only be called when the returned handle is actually needed, and hence
when failure of HandleProtocol() (for DeviceHandle being NULL just
like for any other reason) is indeed an error that needs reporting.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:45:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:45:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221770.383640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifrI-0000d7-SF; Thu, 04 Nov 2021 16:45:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221770.383640; Thu, 04 Nov 2021 16:45:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifrI-0000d0-PH; Thu, 04 Nov 2021 16:45:00 +0000
Received: by outflank-mailman (input) for mailman id 221770;
 Thu, 04 Nov 2021 16:44:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mifrH-0000cu-Q0
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:44:59 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8bf11adf-3d8e-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 17:44:58 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 0D969212BD;
 Thu,  4 Nov 2021 16:44:58 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id B694913E70;
 Thu,  4 Nov 2021 16:44:57 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id eHvVKgkOhGFeFwAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 16:44:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bf11adf-3d8e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636044298; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=+iHyYJVejxE3c+M9dmelJzpLB+/Wh6THMcNjAw741DM=;
	b=ZG+o2TcgbZrkgBuC6dv9I8/AQoEDlU7rGmksNtmvXMrdavMzT9X0x/tiCrqhfE/uyD6UmT
	Zpw1mvkaLp6SZwQ+QJqjicM7b3Ess/0cvGAmyRmlUJkHcAZPaf1eV8pJcW1zNc7z8/pz+2
	YrrYu3b8BezNiBddbntqNlhqadObGRc=
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
 Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
References: <20211102091944.17487-1-jgross@suse.com>
 <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
 <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>
 <3b1f1771-0a96-1f71-9c9d-9fb1a53a266e@suse.com>
 <18c12ead-ddf1-9231-7f3b-aafddd349dcf@oracle.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
Message-ID: <2f3addff-fbe0-8ef0-6407-e879c0e9827f@suse.com>
Date: Thu, 4 Nov 2021 17:44:56 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <18c12ead-ddf1-9231-7f3b-aafddd349dcf@oracle.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="g757mACy6ndOeHy2l0XCaKTMldya4VhZX"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--g757mACy6ndOeHy2l0XCaKTMldya4VhZX
Content-Type: multipart/mixed; boundary="7NqwldsUw7TpcaPNG4ex5XcZovKmVXFSQ";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
 Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
Message-ID: <2f3addff-fbe0-8ef0-6407-e879c0e9827f@suse.com>
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
References: <20211102091944.17487-1-jgross@suse.com>
 <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
 <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>
 <3b1f1771-0a96-1f71-9c9d-9fb1a53a266e@suse.com>
 <18c12ead-ddf1-9231-7f3b-aafddd349dcf@oracle.com>
In-Reply-To: <18c12ead-ddf1-9231-7f3b-aafddd349dcf@oracle.com>

--7NqwldsUw7TpcaPNG4ex5XcZovKmVXFSQ
Content-Type: multipart/mixed;
 boundary="------------4A2F17B6B681BBA4AE9C74EE"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------4A2F17B6B681BBA4AE9C74EE
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 04.11.21 17:34, Boris Ostrovsky wrote:
>=20
> On 11/4/21 12:21 PM, Juergen Gross wrote:
>> On 04.11.21 16:55, Boris Ostrovsky wrote:
>>>
>>> On 11/3/21 9:55 PM, Boris Ostrovsky wrote:
>>>>
>>>> On 11/2/21 5:19 AM, Juergen Gross wrote:
>>>>> When running as PVH or HVM guest with actual memory < max memory th=
e
>>>>> hypervisor is using "populate on demand" in order to allow the gues=
t
>>>>> to balloon down from its maximum memory size. For this to work
>>>>> correctly the guest must not touch more memory pages than its targe=
t
>>>>> memory size as otherwise the PoD cache will be exhausted and the gu=
est
>>>>> is crashed as a result of that.
>>>>>
>>>>> In extreme cases ballooning down might not be finished today before=

>>>>> the init process is started, which can consume lots of memory.
>>>>>
>>>>> In order to avoid random boot crashes in such cases, add a late ini=
t
>>>>> call to wait for ballooning down having finished for PVH/HVM guests=
=2E
>>>>>
>>>>> Warn on console if initial ballooning fails, panic() after stalling=

>>>>> for more than 3 minutes per default. Add a module parameter for
>>>>> changing this timeout.
>>>>>
>>>>> Cc: <stable@vger.kernel.org>
>>>>> Reported-by: Marek Marczykowski-G=C3=B3recki=20
>>>>> <marmarek@invisiblethingslab.com>
>>>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>>>
>>>>
>>>>
>>>> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>>>
>>>
>>> This appears to have noticeable effect on boot time (and boot=20
>>> experience in general).
>>>
>>>
>>> I have
>>>
>>>
>>> =C2=A0=C2=A0 memory=3D1024
>>> =C2=A0=C2=A0 maxmem=3D8192
>>>
>>>
>>> And my boot time (on an admittedly slow box) went from 33 to 45=20
>>> seconds. And boot pauses in the middle while it is waiting for=20
>>> ballooning to complete.
>>>
>>>
>>> [=C2=A0=C2=A0=C2=A0 5.062714] xen:balloon: Waiting for initial balloo=
ning down=20
>>> having finished.
>>> [=C2=A0=C2=A0=C2=A0 5.449696] random: crng init done
>>> [=C2=A0=C2=A0 34.613050] xen:balloon: Initial ballooning down finishe=
d.
>>
>> This shows that before it was just by chance that the PoD cache wasn't=

>> exhausted.
>=20
>=20
> True.
>=20
>=20
>>
>>> So at least I think we should consider bumping log level down from in=
fo.
>>
>> Which level would you prefer? warn?
>>
>=20
> Notice? Although that won't make much difference as WARN is the default=
=20
> level.

Right. That was my thinking.

> I suppose we can't turn scrubbing off at this point?

I don't think we can be sure a ballooned page wasn't in use before. And
it could contain some data e.g. from the loaded initrd, maybe even put
there by the boot loader. So no, I wouldn't want to do that by default.

We could add another value to the xen_scrub_pages boot parameter, like
xen_scrub_pages=3Dnot-at-boot or some such. But this should be another
patch. And it should be documented that initrd or kernel data might
leak.

>> And if so, would you mind doing this while committing (I have one day
>> off tomorrow)?
>=20
>=20
> Yes, of course.

Thanks.


Juergen


--------------4A2F17B6B681BBA4AE9C74EE
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------4A2F17B6B681BBA4AE9C74EE--

--7NqwldsUw7TpcaPNG4ex5XcZovKmVXFSQ--

--g757mACy6ndOeHy2l0XCaKTMldya4VhZX
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGEDggFAwAAAAAACgkQsN6d1ii/Ey9m
cQf/Y8gjihmtFO7hC5ULMnfDS95jAGACBv8aeEPDpOoA4xQj/n6WO/Ecb3sHUKOTm/+rMxlTUIrz
i/LHUEG+dp+LMFSf9E2ex/p7CodZEy3z2w14ov9KjtzRp+4qPfTSSwnjYRGhrK4pwaY2lw5G7LLD
JLRan5rgj5HRQv3f+oh6qtoIeQPf4DmmYIOE9tQs1lPELvKJPuhybycfou1GOfhdolqVqMEmQJHm
HtejYDi6MOjQ/rH33WPGtEF7MiUy2YxPs86Cer/nRoDc8W4gBOJsTjgM/9DHeVAi8I59pRo2yy81
NrbDRY2uXA5m2usYdtzAWh+TXb4lcNOHsVI1I/aNUg==
=b84U
-----END PGP SIGNATURE-----

--g757mACy6ndOeHy2l0XCaKTMldya4VhZX--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 16:46:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 16:46:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221775.383652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifsA-0001Cf-67; Thu, 04 Nov 2021 16:45:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221775.383652; Thu, 04 Nov 2021 16:45:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mifsA-0001CY-2U; Thu, 04 Nov 2021 16:45:54 +0000
Received: by outflank-mailman (input) for mailman id 221775;
 Thu, 04 Nov 2021 16:45:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=93tI=PX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mifs8-0001CM-J1
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 16:45:52 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ab8a7ec3-3d8e-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 17:45:51 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 4CBC81FD3F;
 Thu,  4 Nov 2021 16:45:51 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 23C1113E70;
 Thu,  4 Nov 2021 16:45:51 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id Au5iBz8OhGHZFwAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 04 Nov 2021 16:45:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab8a7ec3-3d8e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636044351; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=N4RA94Pu9lXJHCoAnW2hrDsvs6zvPxl9XCI4Xkvzqz8=;
	b=KM3+gA0VtzXKmxPcuOkV9WIa+vX4IcGxZ5tt36xPvyHxseTMDB+mCSakflu3GAv+VtZGGm
	gokSvkgKxn73GZSBXITt0dvAN4CEWPlnv0nFqRvnO6fyyi/+q+ltyv63ncrq3uQvS4vG88
	QB8uqNgpeB9Z4qk5CgJJWV8p/1sc/eg=
Subject: Re: [PATCH-for-4.16] tools/helpers: fix broken xenstore stubdom init
To: Jason Andryuk <jandryuk@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>
References: <20211104144242.14351-1-jgross@suse.com>
 <54900dfb-c6fa-a2ad-471c-227a4888c687@citrix.com>
 <CAKf6xptNXd=eB0KNb=40CjqvzOT9xR8vMM-tV6e7DWez6AWKMg@mail.gmail.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <b20ebd19-0886-c92d-6819-394124c20c95@suse.com>
Date: Thu, 4 Nov 2021 17:45:50 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <CAKf6xptNXd=eB0KNb=40CjqvzOT9xR8vMM-tV6e7DWez6AWKMg@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="ZrBxIdh40nYEDKlT1qnDW2W0A0NuptDxG"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--ZrBxIdh40nYEDKlT1qnDW2W0A0NuptDxG
Content-Type: multipart/mixed; boundary="KauNgDpX7q0H4sQ8uSdkvtO1enPf02OSR";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jason Andryuk <jandryuk@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>
Message-ID: <b20ebd19-0886-c92d-6819-394124c20c95@suse.com>
Subject: Re: [PATCH-for-4.16] tools/helpers: fix broken xenstore stubdom init
References: <20211104144242.14351-1-jgross@suse.com>
 <54900dfb-c6fa-a2ad-471c-227a4888c687@citrix.com>
 <CAKf6xptNXd=eB0KNb=40CjqvzOT9xR8vMM-tV6e7DWez6AWKMg@mail.gmail.com>
In-Reply-To: <CAKf6xptNXd=eB0KNb=40CjqvzOT9xR8vMM-tV6e7DWez6AWKMg@mail.gmail.com>

--KauNgDpX7q0H4sQ8uSdkvtO1enPf02OSR
Content-Type: multipart/mixed;
 boundary="------------41A4CEA736293263C46A0AB0"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------41A4CEA736293263C46A0AB0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 04.11.21 17:33, Jason Andryuk wrote:
> On Thu, Nov 4, 2021 at 11:00 AM Andrew Cooper <andrew.cooper3@citrix.co=
m> wrote:
>>
>> On 04/11/2021 14:42, Juergen Gross wrote:
>>> Commit 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier=

>>> into xc_dom_parse_image()") broke starting the xenstore stubdom. This=

>>> is due to a rather special way the xenstore stubdom domain config is
>>> being initialized: in order to support both, PV and PVH stubdom,
>>> init-xenstore-domain is using xc_dom_parse_image() to find the correc=
t
>>> domain type. Unfortunately above commit requires xc_dom_boot_xen_init=
()
>>> to have been called before using xc_dom_parse_image(). This requires
>>> the domid, which is known only after xc_domain_create(), which requir=
es
>>> the domain type.
>>>
>>> In order to break this circular dependency, call xc_dom_boot_xen_init=
()
>>> with an arbitrary domid first, and then set dom->guest_domid later.
>>>
>>> Fixes: 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier=
 into xc_dom_parse_image()")
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> Release-acked-by: Ian Jackson <iwj@xenproject.org>
>>
>> This is all rather nasty, and really highlights problems with the
>> libxenguest abi, because you really ought to be able to ask "what ELF
>> properties do I have on my hand" without an implicit "and try to start=

>> building a VM using it" on the side.
>>
>> I agree this is probably the best thing to do right now.
>=20
> Yes, this is probably the best change before release.
>=20
> If xc_dom_allocate() filled in dom->xen_version & dom->xen_caps - i.e.
> move that from xc_dom_boot_xen_init() - then I think this patch
> wouldn't be necessary.  But there could be side effects of such a
> change.

This is a nice idea for a cleanup patch after 4.16 has been branched.


Juergen

--------------41A4CEA736293263C46A0AB0
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------41A4CEA736293263C46A0AB0--

--KauNgDpX7q0H4sQ8uSdkvtO1enPf02OSR--

--ZrBxIdh40nYEDKlT1qnDW2W0A0NuptDxG
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGEDj4FAwAAAAAACgkQsN6d1ii/Ey/T
2wf9FdNJyXfEQ6IN2KDIsoVD+cpMIbNVG7I2VlevTsIsREyvvjIMQvQU5jfHzNufZT4+7O1WygUo
PYCCsp6zR5sP4sPQLbgcllNTLLsW54Vp5ns2QX73+wH0jwK3EDwHwKPrIUXOeqm+XvpmtJCp5JQR
QPFi9AwYXJVIGdG/40UPyIUffYAITWHtiCNBk3sLdYAALv9p6vFgRFCYnTtYVTeyOy4BLpJHR/qd
uZkoBApU1bIQ6FdlZ4o+pO38cEI3v78oElxIYCAMzfiH7zTvavASJIoG4D1pH1EbeQ5oJWYd6Kdh
+fzJziIhIFtjifmxxLYPVYyvHC87zfFQLOHEmQkRhg==
=7/X+
-----END PGP SIGNATURE-----

--ZrBxIdh40nYEDKlT1qnDW2W0A0NuptDxG--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 17:05:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 17:05:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221787.383663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migB3-0003cp-Tq; Thu, 04 Nov 2021 17:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221787.383663; Thu, 04 Nov 2021 17:05:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migB3-0003ci-Qt; Thu, 04 Nov 2021 17:05:25 +0000
Received: by outflank-mailman (input) for mailman id 221787;
 Thu, 04 Nov 2021 17:05:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YH1c=PX=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1migB2-0003cc-0z
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 17:05:24 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 657fc3fd-3d91-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 18:05:22 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id d3so9669577wrh.8
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 10:05:22 -0700 (PDT)
Received: from zen.linaroharston ([51.148.130.216])
 by smtp.gmail.com with ESMTPSA id m2sm8889088wml.15.2021.11.04.10.05.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 10:05:20 -0700 (PDT)
Received: from zen (localhost [127.0.0.1])
 by zen.linaroharston (Postfix) with ESMTP id 291B41FF96;
 Thu,  4 Nov 2021 17:05:20 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 657fc3fd-3d91-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google;
        h=references:user-agent:from:to:cc:subject:date:in-reply-to
         :message-id:mime-version:content-transfer-encoding;
        bh=uf/69JMRSf6nvg4vi7HqiYdJdQ1piecLXhyNR54I664=;
        b=ZHg6a2NvEWc+jgEYLtdVPsBca/hJ4fFNLotBYVfhS/4SCEJ6HZwHebVxGnJ1ChdybS
         60TL3/B/4fXQ7VMyq0ydqN7e26Iux5ahjghgF7EUEDNtBnjaYq+0F4M9Zdkc6yu+YUlm
         hlJnvYaYxJenw+Bow4Ro81qP5QLXDHTNdnyZB+yiXx2oGyr2rdq71JQ0spN3fT/WaGUp
         YwN2aw37DqGQ+ROFpiO/EI+MAA2hwRdTo1aIrroZ4zDZgq62Vnsa/Ee8gPFqEQCUAzqV
         VzXtdSivJxN6gxo+wSzFEjNJ/kySGJcEPJ3ChPbTJR/NQ5qKTAyW2nt+kZBLtApbhqYB
         Z2qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:references:user-agent:from:to:cc:subject:date
         :in-reply-to:message-id:mime-version:content-transfer-encoding;
        bh=uf/69JMRSf6nvg4vi7HqiYdJdQ1piecLXhyNR54I664=;
        b=vBuzYQp6jry1+8WVeyLM2K/vc3S+8u1qtZECKIVTRdBCqZ2mBLRnIsoPYD6Nyzvwcz
         1L7GtwwX8gKQEWXltY9C7CEWd+TJ6EW9XSjpfWTQbZIuphE5OZRapHY0QK8tZpaxuo/9
         st6WlSWn6xuSsMoZAhteX7fauqrloqwKvkXvERI6/iHP7eLnP9cZ20BqJ+cRBRjRJ3vF
         hAcZCTV9xIRm9Z/pl0SfvS1jpJLO3P73hiwysAUApvyCDLQGamsp3ckCNm4sdciffJ9j
         s+l+D0XrqcqQH6c7J6KiOHaQvC+Dk2bePq1TZXoTD0c/mIC+FuAV749vUBmRRJOvRuRJ
         t6Ug==
X-Gm-Message-State: AOAM5311zwDz8jiJzSW16p4XNfgGVilAlPAF7YJkR/Aantj8cNyWBWvL
	IPGNplIiLeYBJyjF2h12P5YgIQ==
X-Google-Smtp-Source: ABdhPJw6UUxjbOP6KaaRre3cxTc/H9m+fkuNt/okM7p6s4Wjf1ncL4dX7zALbraAx4E/Z8k9/+/RMg==
X-Received: by 2002:adf:e109:: with SMTP id t9mr33372725wrz.387.1636045522048;
        Thu, 04 Nov 2021 10:05:22 -0700 (PDT)
References: <20210824105038.1257926-1-anthony.perard@citrix.com>
 <871r3vkiok.fsf@linaro.org> <YYQLoR2ussToQjFV@perard>
User-agent: mu4e 1.7.4; emacs 28.0.60
From: Alex =?utf-8?Q?Benn=C3=A9e?= <alex.bennee@linaro.org>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: Roger Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>, Kevin Tian
 <kevin.tian@intel.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Connor Davis <connojdavis@gmail.com>, Bob
 Eshleman <bobbyeshleman@gmail.com>, Alistair Francis
 <alistair.francis@wdc.com>, Tim Deegan <tim@xen.org>, Jun Nakajima
 <jun.nakajima@intel.com>, Tamas K Lengyel <tamas@tklengyel.com>, Doug
 Goldstein <cardoe@cardoe.com>, Jan Beulich <jbeulich@suse.com>, Konrad
 Rzeszutek Wilk <konrad.wilk@oracle.com>, Julien Grall <julien@xen.org>,
 Alexandru Isaila <aisaila@bitdefender.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Ross Lagerwall <ross.lagerwall@citrix.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>, Paul Durrant <paul@xen.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Wei Liu <wl@xen.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Lukasz Hawrylko
 <lukasz.hawrylko@linux.intel.com>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v7 00/51] xen: Build system improvements, now with
 out-of-tree build!
Date: Thu, 04 Nov 2021 16:59:39 +0000
In-reply-to: <YYQLoR2ussToQjFV@perard>
Message-ID: <87k0hnj1gv.fsf@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


Anthony PERARD <anthony.perard@citrix.com> writes:

> On Thu, Nov 04, 2021 at 03:49:36PM +0000, Alex Benn=C3=A9e wrote:
>>=20
>> Anthony PERARD <anthony.perard@citrix.com> writes:
>>=20
>> > Patch series available in this git branch:
>> > https://nam04.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fxe=
nbits.xen.org%2Fgit-http%2Fpeople%2Faperard%2Fxen-unstable.git&amp;data=3D0=
4%7C01%7Canthony.perard%40citrix.com%7C85bb0d32a72542aa9f6108d99fad9607%7C3=
35836de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C637716390172120458%7CUnknown%7CTW=
FpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3=
D%7C1000&amp;sdata=3DWWS4yPu9%2BJxBkBiM5SBrH7kDtHkUzMGuKSSdPcgEYII%3D&amp;r=
eserved=3D0
>> > br.build-system-xen-v7
>> >
>> > v7:
>> >     Out-of-tree build!
>> >
>> >     This mean many more patches. Everything after patch 27 is new.
>> >
>> >     There's a few new patch before that, but otherwise are rework of
>> >     v6.
>>=20
>> This is something I've been looking forward to but obviously my QEMU
>> focused mind meant I did it wrong. Generally I create a builds subdir in
>> my tree with subdirs for each build flavour. So with:
>>=20
>>   /home/alex/lsrc/xen/xen.git/builds/native
>>=20
>> And executing:
>>=20
>>   =E2=9E=9C  ../../configure
>
> Thanks for testing, but the patch series only focus on a subset of the
> repository, that is the hypervisor "xen.git/xen/". The rest of xen.git
> isn't ready for out-of-tree build unfortunately. A lot more work is
> needed.
>
>> In "build: adding out-of-tree support to the xen build" you describe the
>> Linux kernel style which works well where the config can be done after
>> the fact but I wonder if the configure approach is better suited to
>> something that needs a bunch of checks running. Is the configure script
>> pure autoconf? This should work out of the box IIRC.
>
> "xen.git/xen/" does use a build system similar to Linux's, we use
> Linux's Kconfig for example.

Ahh makes more sense in that context ;-)

> For the rest of the repository, it is indeed autoconf for the
> configuration phase. So yes running ./configure would be mostly ok, but
> it doesn't take care of Makefiles at the moment and I found one bug in
> our autoconf macros. Beyond that, our Makefiles aren't ready.
>
> xen.git isn't a single build system, they are several (at least one
> foreach of xen/ stubdom/ tools/)

I wonder if there is any millage in thinking about splitting
repositories and having them as subrepos of the main xen.git?

I can imagine building the core hypervisor as a standalone project is
something that is done a lot at least by developers. In a hypothetical
rust-vmm enabled world for example would you only need the hypervisor
itself if you had an alternate userspace to launch things?

>
> Cheers,


--=20
Alex Benn=C3=A9e


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 17:07:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 17:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221794.383674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migD0-0004Cj-Bm; Thu, 04 Nov 2021 17:07:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221794.383674; Thu, 04 Nov 2021 17:07:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migD0-0004Cc-8c; Thu, 04 Nov 2021 17:07:26 +0000
Received: by outflank-mailman (input) for mailman id 221794;
 Thu, 04 Nov 2021 17:07:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xlTz=PX=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1migCz-0004CW-0k
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 17:07:25 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id acec1700-3d91-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 18:07:23 +0100 (CET)
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A4GwXMe032494; 
 Thu, 4 Nov 2021 17:07:18 GMT
Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c3ju72en5-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 17:07:17 +0000
Received: from pps.filterd (userp3030.oracle.com [127.0.0.1])
 by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A4H196c079510;
 Thu, 4 Nov 2021 17:06:00 GMT
Received: from nam12-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170])
 by userp3030.oracle.com with ESMTP id 3c27k8y5tj-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 17:06:00 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB3935.namprd10.prod.outlook.com (2603:10b6:208:1bf::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Thu, 4 Nov
 2021 17:05:58 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.011; Thu, 4 Nov 2021
 17:05:58 +0000
Received: from [10.74.104.20] (138.3.200.20) by
 SN7PR04CA0120.namprd04.prod.outlook.com (2603:10b6:806:122::35) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Thu, 4 Nov 2021 17:05:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: acec1700-3d91-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=dg7qnGWqYcfGB4K778L7/rd3o+DSNONsoBxzoHeq1iU=;
 b=SBPguLS/rl7IJZJTLaSIL59WXicQB884HRyO92stgJgowyusHB6oW8AXuxZYZrv2Q1/d
 WgKQAe1iBYU03oRDRSxSCYJpMbwXa7I8dOTcAbGkv0k7QgkD4Hx9Y9nDi4IJGQxjahx8
 zkSmSNBEVkF23Xv7F0bbjQS0QDO0gpv3YRSlG9gjxZh16s7dAJNcr8mr0zGcBH0B/VCo
 UYktzCmxxG6EeOZFD6S9SKm7xkrum+Yisoc1iyM/yPhCuIyvrL+e8sB1Y4y8zI+3NEiw
 oZKKLsPP8JYA7z1uH9cB+/PqIdCi6/aLqGzzB/oYJi8skGtevHiCCy3Eg6TuYVSTvGIL sA== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JRzaq0J1iDVEU969VfgFI7v3i+pqseECzxfVBmBdu/1XOiCKYVlcL/1n3RlzQnRN2/1NH39IiDRDsPJswixuUPOyA8Ka3XmfA5aVXS7opQcRtvPhtIM5fNUDv9EFzzIhqFnMozt65osSYc2w04D/HsTG8bP88wKmegwOww0uD1ddgb//G//OTjQNCjkuwqM0nTQlZhzzuQCwyNk/eYfdkyVv9c1Bg77zs8izTm3V3WZJY0dsIZA4rOBujzT9LGBOdZpepzIpCPPVxy1gCNt38SDWVoXdhedO1iTF+Dnw6w9HPOYxmxnR9ezb+RASB4egP/39XHMv3cVqHgDc+qn2fQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dg7qnGWqYcfGB4K778L7/rd3o+DSNONsoBxzoHeq1iU=;
 b=A9U0JPFe4o9URpWBaQwSF6bRAPKQY/EfME1S5KEkm9VGQjZyeXes3OZqgBVZFbq1rYizczWZleiF5kVKwfIv9VV1hgRxV+a7wBInkj6KKjJpQrS9tsRPHMz+Mx2ZGQo80Fv81sxyxFQXIZEfKu82igP12Sfy/x6ALQqUuKx7ufd3vJi9zyi91WLtD15GYfv2n4YD6OoJTN4o4qqcrrtKbG9Y+ftAsaEFuIa6bjx1Wppry4K5c9G3fxB1ZNOAnyR46u9MwuDNIVwSwdO6SjLgIoHc2Vu8PnWm+mQFz6p5yU5tWMQ8/B0LIowDw2T4xl4vMtO2k3ecDkDkNl3mAr/aBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dg7qnGWqYcfGB4K778L7/rd3o+DSNONsoBxzoHeq1iU=;
 b=eMTRlbQyFKR6oL76SOJJyLeeQ83S1mjTlP+lX7grAQNdGRXEzD467lrfKlo5nCOWL2LCWDAj2L8Fk4uLuIQw2ctgPrJs08wPtlnvZDGLPrcY1Js0TS2r1wjlPbZZdWc7nTQUIjIbzjQudsh6fU45qE7E1N0VRF8/+j8YSb2tA10=
Authentication-Results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <0a37429c-05ed-74a2-81c6-7e187d0adc12@oracle.com>
Date: Thu, 4 Nov 2021 13:05:52 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
        Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
        =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
References: <20211102091944.17487-1-jgross@suse.com>
 <f986a7c4-3032-fecd-2e19-4d63a2ee10c7@oracle.com>
 <f8e52acc-2566-1ed0-d2a3-21e2d468fab7@oracle.com>
 <3b1f1771-0a96-1f71-9c9d-9fb1a53a266e@suse.com>
 <18c12ead-ddf1-9231-7f3b-aafddd349dcf@oracle.com>
 <2f3addff-fbe0-8ef0-6407-e879c0e9827f@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <2f3addff-fbe0-8ef0-6407-e879c0e9827f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SN7PR04CA0120.namprd04.prod.outlook.com
 (2603:10b6:806:122::35) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b8b8cb64-42f6-4360-c699-08d99fb55efa
X-MS-TrafficTypeDiagnostic: MN2PR10MB3935:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB3935E9F57F3E73A31D266DF68A8D9@MN2PR10MB3935.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2449;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	dlBbCOgWkAOzYJn7w9mJlRZauEN4T1CKWKyJejTT1J5zc7LrH0Avvp2J+yr9mbm5/jxKLDxNozcUE5dRcoCYOjVrnc2Ha7o5BoMLHiolZzMTNNbqro2gHbKvI/uIpe045JPhUiIVpki/Begrwfcvrsqtr3fy64HgF3lON1A5t+m12kUR6lNMKAu0nAY0Y8zt0L6sjaO3HjNf0Zn9ugbCoiZghGaX7bnuL7ggGuFQgzULHL28dU7jTRBbU5wVL2/tw4kM3Nv4LiWaXqAe47HWEVnWcEdB2h2R22PiXEYI/XvXnTliCOdlgabKiQ6afdomMQ1UIfh6dBbzhaSxTfbJuug3DaPRUsG0VHqD54X9oznMHOoEmVf+w32NslyN4LE07IF3R127kFNoE3Zeszd2HIh5zPFbj+4qEZI2wEZMuR2lXtASWL2gQZTlpqYS7W/A1l9UeifYpd7NPyO1nEDcchdHkmKziC2BfjYaB57G8+yq5hbfJSWcHR8fAH6YI1prU2xm5N35Ww8b35qNv33TPRnu7rGyhGSJ8yovdY0bmWvj0A0H1OyqT70cmMT+nYK1eQTEj+2vLZlPXjht+qtTuZenQ91AF/yjzZHlCdneyOr5CoKPtrtV6/t+oIpKwnrc0fOjBUYG/XWKE5LJafA/DzOLhEJi/iMYMgkKhoRq/Vf7YBODje0+jCK/AIxWrw2CGRBKg4jSE0ijLqxs5maQMYW6BcAmbq+VI02Rx/m+s6Uoe8t6Wjm0X8YFaWq1uQbC
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(5660300002)(86362001)(31696002)(558084003)(26005)(6486002)(16576012)(2616005)(4326008)(54906003)(83380400001)(36756003)(66946007)(38100700002)(6666004)(44832011)(8676002)(66556008)(66476007)(508600001)(31686004)(186003)(8936002)(956004)(316002)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?SnFoLzBsc1JwSDErSlQzRU9aUllna2crMzJjOEdhNzVxOUp6TjVmRk1ZRFVK?=
 =?utf-8?B?NVdNVzlLY2E1aDJqaFhnK1hoMlhyOHQycCtvSTd2a3VnNmVldE1uSFlSd2ZT?=
 =?utf-8?B?aTVWcFdsczEvTWlkYjkzZjNBYXdFald4Zy9uR3ZVc2d6MEE4NVZiU3huQzNS?=
 =?utf-8?B?UTdRN3Q3Q2dJaGRsb2IvVHFMMTRmRFl5UU5uR0NEMHQwbTNwVjRhRzErM3d1?=
 =?utf-8?B?cDBZOU5md3FCQWgwRkFUVXBpTzgxKzRuYXZwcHVYTnRQSlVYWXd3TUxTby9L?=
 =?utf-8?B?bmE4NGtGemt3UDZadTlyQnRwLzEwN2xhU2pZVXJzVG1lTzlyNTV0ZzFRclE2?=
 =?utf-8?B?Y1I4bncwVEplMloreWpOOE9GbzkzREFsV0RYWDREUHZWcmk1aHloQmZ5L3Yw?=
 =?utf-8?B?YjNsdnIzTGFTd0cwM1lRQk1KTTkraEpIVjNtYzFXVVkzWEhZL3EzbFl3dzNp?=
 =?utf-8?B?SnVDc3J3NXdHaXFacFVtdGl2bks1bmtEMXdnU3IxYXVOOWkxenN0bUFLQmpM?=
 =?utf-8?B?VjYzTkpyTm04QjhxY1RyLzdiQk1FVUhWbHROc0VMeWdIb25MZUZNV0JBWStm?=
 =?utf-8?B?RWpTNm9CUThmTFN0dVJWWmUvTW82aCs2L3cvOFQwTHJTVjlVb05vZnVtOEhw?=
 =?utf-8?B?THNLWE0vYUdBY1E5UXhkcURTT3FKdEFOMGhKOXVmMzhlSEl3UEQ0VUx4UC9H?=
 =?utf-8?B?eTlhUHVZdHdONTFHZElvUFZPRGV4WnN5Y2g4Nk5ra1lzT01RUEdwZUNnSFBY?=
 =?utf-8?B?MFNoWTBTYWJtaG4raEdWWkVDaXVIeHlKbExsYlNvUm9USTJlMm4vUXdQNFQ3?=
 =?utf-8?B?d3lCNUFwazcvMEZUbmZOS1A5YndGQkRaTVYzVkxGV21Id3Q0L3ArdFVOOG10?=
 =?utf-8?B?b0RwaDZoT1NJc29qblZJdkgzSTJ4TFQ5aERnaXovUlMxT09iZ2pBOHgzR3Bv?=
 =?utf-8?B?amIwd0hWdXJjYm80MndDdlRpT0tMT0NNWStNdUdNNW1mcEh1OHJJQytnY0gy?=
 =?utf-8?B?VXdqbnpvRHBkYlVTMkp3c0REZDZXQy9ONTFGdlUwc1JCYitac0IvSlc5bEEw?=
 =?utf-8?B?ZHY3Z094bldRYk83cGxZTHlUZXBjWVYyMlB1YzVnUUtRQmdTU3NlYWFVSnh5?=
 =?utf-8?B?c0dRSitzWjBaN0tJRVJudks0QzNRZDFoMlpkSDQxZW94dHlYUE1YcCtMbjNM?=
 =?utf-8?B?bG44MnBDOGEwSnAyN0lsK0huMlROdVpKMVJ1YUJpWjJDMThmSktNeDVIM3FW?=
 =?utf-8?B?YkdHZzRkejlHcEVNSm91TXNUalhJY2M3WHJuVWFwNDFqeTZmNXhaZkpZQlA4?=
 =?utf-8?B?a1N0VmFrSW80SUNzK1MzNS9vUkN6WnMxVjVUd2hQV0NDZGZPaEEyQXJPeFRW?=
 =?utf-8?B?YjVBOHlMOFR5bWdBM1ZLYk56SFJOMlE1a3U1dkUxMlIwY1JDWGx4M1NGUzdk?=
 =?utf-8?B?S1VjYVduTm5OWjVYeks5TEs5R2UyWTVZNkFsd3d5VTJKUEFrTE8xVnRpV3d4?=
 =?utf-8?B?bnBWWUpjSDlmQ1V6S1JkRm9vSnpwY3F0cmVjYTNrL0xlV2N0S3ZaSldic3Fh?=
 =?utf-8?B?WGJ6NDhJb2JFR0Z5OUFUeGJzOXhnV2dPWDlQb2dDdURBRzdQR3VHZmZZdmFG?=
 =?utf-8?B?blB5TTlBM2hkZVZaZDNFaDdoL1BZR0VwVzVsTzhXb3FaSUhiclpKcksxQXNW?=
 =?utf-8?B?MjdIMFJoMmcyN0tJS2VOVjE1SWduY2NleU9CSzJoSU1xNTF5b2s0eWQ3YkJh?=
 =?utf-8?B?bWRYTHlCOFkzTDExTk5FSTRpbFRmb1BWZkhyWUVhNy85N1ZudGtMcUZqVk1N?=
 =?utf-8?B?L3hRck82eWJJYXZ4TFRsYmJZelBXbnozUXN3WVU2RDJ5bllJT21TczFzZkRq?=
 =?utf-8?B?NFViMVg4OFRaWE1ZNHNQUWpyemlQQzgraDZEM0lFdkFDU3hteXdGZjV2eERo?=
 =?utf-8?B?SzZKdFVYUHJWWndVWVBIeGVuU2NUcXJ5UTJuVUdMcXRLRVdDVkdPT3d4MVB6?=
 =?utf-8?B?Z1NwamZYaWU2Q1pJZXdFdXNHc1NEWEtiaERmWGxqT2RrOWNSUFVZMUFQNUJX?=
 =?utf-8?B?UzhFSDBncjJGU2ljNllhTVlYSUpWMXE4SWhadVVCeDBhNjIrOUlQd0k3bXFQ?=
 =?utf-8?B?cWxmdWxRVlZ3cWlRZnptc2NBbG5mY015bFRxNmVPZDVLTmwwWlBxVzZEcVVn?=
 =?utf-8?B?ek5jbnlxRzJFQWdrWjcvTWdXUWt0RlZWa1NodjJhVUh4aFdlaWU5dzFuVUdO?=
 =?utf-8?Q?ySGlYrM9xV1tSAQFX1U/caGl0PaGMYvMaDCpSrJioY=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b8b8cb64-42f6-4360-c699-08d99fb55efa
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 17:05:58.2280
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HpWphvP1ymcJw6q7pq70bCCYidKUoH/bKLpgNojlpsMgq4RHk/57eHFdwp+wGF65rpL000nzZXff/h+cVFMtPCzspHgMKG6qtri9leN3BME=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3935
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10158 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxscore=0 spamscore=0
 malwarescore=0 mlxlogscore=999 adultscore=0 phishscore=0 bulkscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111040064
X-Proofpoint-GUID: eMqr_Z7NuTGNfxv0icKfOtEOybzoGgFl
X-Proofpoint-ORIG-GUID: eMqr_Z7NuTGNfxv0icKfOtEOybzoGgFl



>
>>> And if so, would you mind doing this while committing (I have one day
>>> off tomorrow)?
>>
>>
>> Yes, of course.
>
> Thanks.


So I'll change this to pr_notice, even though it's not the best solution.


-boris



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 17:11:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 17:11:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221801.383685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migH0-0005bd-TQ; Thu, 04 Nov 2021 17:11:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221801.383685; Thu, 04 Nov 2021 17:11:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migH0-0005bW-QL; Thu, 04 Nov 2021 17:11:34 +0000
Received: by outflank-mailman (input) for mailman id 221801;
 Thu, 04 Nov 2021 17:11:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1migGz-0005bQ-70
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 17:11:33 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1migGw-0000eT-R0; Thu, 04 Nov 2021 17:11:30 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[10.95.146.237]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1migGw-0005ur-Kx; Thu, 04 Nov 2021 17:11:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=OAmyiZ0qzBRRYXBld9AroZiwwpPHFWtdzBbX+cGfx6U=; b=bVSdhBZTtsS2XKr+ekTzzvMmZ0
	mEJiVelYpqClsHPeIlsyFxxm+KtL8y8f16Ou56zwC8t4chxSKi8fwTYGfCZz8+y5MlaAOblQxH29K
	rgGXcbqw4XJToX1xDRfkb+Vk0ZaMFlEXRcW769mpLqhMpjjfW3gkuxCGMUYxjJCC63+Q=;
Message-ID: <8ff2dc1a-b640-ec2a-810a-c135f0399130@xen.org>
Date: Thu, 4 Nov 2021 17:11:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a lock
To: Michal Orzel <michal.orzel@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Ian Jackson <iwj@xenproject.org>
Cc: Julien Grall <julien.grall.oss@gmail.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20211026122903.15042-1-michal.orzel@arm.com>
 <e5632a4e-db98-41b4-1045-2b3532c098fa@xen.org>
 <70c30a6c-b779-805e-079a-41bb484894b9@xen.org>
 <cb452c0c-ccde-7798-c403-f972b48a2c46@arm.com>
 <01545115-e82e-2a9d-a8e4-da9676080c0f@xen.org>
 <alpine.DEB.2.21.2110271557570.20134@sstabellini-ThinkPad-T480s>
 <CAJ=z9a2SSgG7a87_xTGT5LeNLgubOLQf1+dbnrsTsP8_p5ErJg@mail.gmail.com>
 <alpine.DEB.2.21.2110271658330.20134@sstabellini-ThinkPad-T480s>
 <4554621d-63da-ea3e-e56a-4e01d0cef347@xen.org>
 <alpine.DEB.2.21.2110281311030.20134@sstabellini-ThinkPad-T480s>
 <24959.49895.14808.77881@mariner.uk.xensource.com>
 <alpine.DEB.2.21.2111011341480.20134@sstabellini-ThinkPad-T480s>
 <9955c390-e5a4-0e58-f0db-b070249d3b16@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9955c390-e5a4-0e58-f0db-b070249d3b16@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 04/11/2021 09:18, Michal Orzel wrote:
> Hello,

Hi Michal,

> 
> On 01.11.2021 21:51, Stefano Stabellini wrote:
>> On Mon, 1 Nov 2021, Ian Jackson wrote:
>>> Stefano Stabellini writes ("Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a lock"):
>>>> In regards to this specific patch and also the conversation about 4.16
>>>> or 4.17: I think it would be fine to take this patch in 4.16 in its
>>>> current form. Although it is not required because PCI passthrough is
>>>> not going to be complete in 4.16 anyway, I like that this patch makes
>>>> the code consistent in terms of protection of rbtree accesses.  With
>>>> this patch the arm_smmu_master rbtree is consistently protected from
>>>> concurrent accesses. Without this patch, it is sometimes protected and
>>>> sometimes not, which is not great.
>>>
>>> It sounds like this is a possible latent bug, or at least a bad state
>>> of the code that might lead to the introduction of bad bugs later.
>>>
>>> So I think I understand the upside.
>>>
>>>> So I think that is something that could be good to have in 4.16. But
>>>> like you said, the patch is not strictly required so it is fine either
>>>> way.
>>>
>>> Can you set out the downside for me too ?  What are the risks ?  How
>>> are the affected code paths used in 4.16 ?
>>>
>>> A good way to think about this is: if taking this patch for 4.16
>>> causes problems, what would that look like ?
>>
>> The patch affects the SMMU code paths that are currently in-use for
>> non-PCI devices which are currently supported. A bug in this patch could
>> cause a failure to setup the SMMU for one or more devices. I would
>> imagine that it would manifest probably as either an error or an hang
>> (given that it is adding spin locks) early at boot when the SMMU is
>> configured.
>>
>> The validation of this patch would mostly happen by review: it is the
>> kind of patch that changes some "return -1" into "goto err".
>>
> 
> In order not to leave this patch high and dry:
> I can see that Stefano and Bertrand are in favor of this patch and
> Julien is rather against. Therefore I wanted to ask what are we doing with this patch.
My main objection is on the process. We should not merge patch that 
doesn't fix a real issue at this stage of this release.

That said, the patch is low risk and both Stefano/Bertrand are for it. So...

> Do we want it for 4.16?

... Ian can we get your release-acked-by?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 17:15:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 17:15:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221809.383696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migKa-0006FR-F0; Thu, 04 Nov 2021 17:15:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221809.383696; Thu, 04 Nov 2021 17:15:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migKa-0006FK-AX; Thu, 04 Nov 2021 17:15:16 +0000
Received: by outflank-mailman (input) for mailman id 221809;
 Thu, 04 Nov 2021 17:15:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i+tn=PX=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1migKX-0006FE-Cd
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 17:15:14 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c35fd36f-3d92-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 18:15:11 +0100 (CET)
Received: from j217100.upc-j.chello.nl ([24.132.217.100]
 helo=worktop.programming.kicks-ass.net)
 by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux))
 id 1migHi-0060wt-Q1; Thu, 04 Nov 2021 17:12:46 +0000
Received: by worktop.programming.kicks-ass.net (Postfix, from userid 1000)
 id 545E19869DF; Thu,  4 Nov 2021 18:12:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c35fd36f-3d92-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=ltenyXnrsDdntMO+B9vjFdERdO2QMdRjBCFjFF1YnzM=; b=s1zqU90WpXefrE9/qFNAhs06pj
	PNIRGvj9Mo14MJwqJ2YvpwjEmCdCt7LspW4QsKgGD1laP1jOSckBmVZSTp6r2ds88QER8mzA787QJ
	NBYJ2SxLq732Xen5/Ct/GCwMFrQcd6k0OSXwOzfsBonUWTwjoiwTC1ycb9OjWXTbNUehGGvEysWIx
	yqOfBqztiPIAdXY5XsB9tw6wppnhlUKhrdqUK6gsgwrIT4aSfbN8f3C3TuP1fmlnVxeFS0i8slsmU
	4f9MGKQwAc0LVY54eZ/6ogbuspBewtHOid/fEM7hUJsoeLtoGrC6UAFlvAS0g8O+i6H2ULnvlFJu7
	f6a7rA/w==;
Date: Thu, 4 Nov 2021 18:12:18 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Josef Johansson <josef@oderland.se>, boris.ostrovsky@oracle.com,
	helgaas@kernel.org, jgross@suse.com, linux-pci@vger.kernel.org,
	maz@kernel.org, xen-devel@lists.xenproject.org,
	Jason Andryuk <jandryuk@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Peter Jones <pjones@redhat.com>, linux-fbdev@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>, x86@kernel.org,
	Vincent Guittot <vincent.guittot@linaro.org>
Subject: Re: [PATCH] PCI/MSI: Move non-mask check back into low level
 accessors
Message-ID: <20211104171218.GD174703@worktop.programming.kicks-ass.net>
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com>
 <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx>
 <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se>
 <87ee7w6bxi.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <87ee7w6bxi.ffs@tglx>

On Thu, Nov 04, 2021 at 12:45:29AM +0100, Thomas Gleixner wrote:
> On Wed, Oct 27 2021 at 17:29, Josef Johansson wrote:
> > ------------[ cut here ]------------
> > cfs_rq->avg.load_avg || cfs_rq->avg.util_avg || cfs_rq->avg.runnable_avg
> > installing Xen timer for CPU 4
> > WARNING: CPU: 3 PID: 455 at kernel/sched/fair.c:3339  __update_blocked_fair+0x49b/0x4b0
> 
> 	/*
> 	 * _avg must be null when _sum are null because _avg = _sum / divider
> 	 * Make sure that rounding and/or propagation of PELT values never
> 	 * break this.
> 	 */
> 	SCHED_WARN_ON(cfs_rq->avg.load_avg ||
> 		      cfs_rq->avg.util_avg ||
> 		      cfs_rq->avg.runnable_avg);
> 
> PeterZ, does that ring any bell?

Hurrr.. I thought we fixed all those. Vincent?

> > Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd_timer nf_tables nfnetlink vfat fat intel_rapl_msr think_lmi firmware_attributes_class wmi_bmof intel_rapl_common pcspkr uvcvideo videobuf2_vmalloc videobuf2_memops joydev videobuf2_v4l2 sp5100_tco k10temp videobuf2_common i2c_piix4 iwlwifi videodev mc cfg80211 thinkpad_acpi ipmi_devintf ucsi_acpi platform_profile typec_ucsi ledtrig_audio ipmi_msghandler r8169 rfkill typec snd wmi soundcore video i2c_scmi fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt trusted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul crc32_pclmul crc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ghash_clmulni_intel ttm serio_raw drm_kms_helper cec sdhci_pci cqhci sdhci xhci_pci drm xhci_pci_renesas nvme xhci_hcd ehci_pci mmc_core ehci_hcd nvme_core xen_acpi_processor xen_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
> > CPU: 3 PID: 455 Comm: kworker/3:2 Tainted: G        W        --------- ---  5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
> > Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17/2021
> > Workqueue:  0x0 (events)
> > RIP: e030:__update_blocked_fair+0x49b/0x4b0
> > Code: 6b fd ff ff 49 8b 96 48 01 00 00 48 89 90 50 09 00 00 e9 ff fc ff ff 48 c7 c7 10 7a 5e 82 c6 05 f3 35 9e 01 01 e8 1f f3 b2 00 <0f> 0b 41 8b 86 38 01 00 00 e9 c6 fc ff ff 0f 1f 80 00 00 00 00 0f
> > RSP: e02b:ffffc900410d7ce0 EFLAGS: 00010082
> > RAX: 0000000000000000 RBX: 0000000000000018 RCX: ffff8881406d8a08
> > RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffff8881406d8a00
> > RBP: ffff8881406e9800 R08: 0000000000000048 R09: ffffc900410d7c78
> > R10: 0000000000000049 R11: 000000002d2d2d2d R12: ffff8881406e9f80
> > R13: ffff8881406e9e40 R14: ffff8881406e96c0 R15: 0000000000000000
> > FS:  0000000000000000(0000) GS:ffff8881406c0000(0000) knlGS:0000000000000000
> > CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 0000782e51820000 CR3: 0000000002810000 CR4: 0000000000050660
> > Call Trace:
> >  update_blocked_averages+0xa8/0x180
> >  newidle_balance+0x175/0x380
> >  pick_next_task_fair+0x39/0x3e0
> >  pick_next_task+0x4c/0xbd0
> >  ? dequeue_task_fair+0xba/0x390
> >  __schedule+0x13a/0x570
> >  schedule+0x44/0xa0
> >  worker_thread+0xc0/0x320
> >  ? process_one_work+0x390/0x390
> >  kthread+0x10f/0x130
> >  ? set_kthread_struct+0x40/0x40
> >  ret_from_fork+0x22/0x30


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 17:42:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 17:42:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221821.383708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migkz-000118-PU; Thu, 04 Nov 2021 17:42:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221821.383708; Thu, 04 Nov 2021 17:42:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migkz-000111-K7; Thu, 04 Nov 2021 17:42:33 +0000
Received: by outflank-mailman (input) for mailman id 221821;
 Thu, 04 Nov 2021 17:42:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1migkx-00010r-OH; Thu, 04 Nov 2021 17:42:31 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1migkx-00018k-Fl; Thu, 04 Nov 2021 17:42:31 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1migkx-0008L1-82; Thu, 04 Nov 2021 17:42:31 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1migkx-0002ba-7X; Thu, 04 Nov 2021 17:42:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=xH6tOsgeDMh2mZu6NN/uUBRSRF7bpYJgUnGkgJ3LuSo=; b=Yzkzc4vwx5cGgV1Uo2H+lPb04Y
	Jq8Pk9bdwErlp2IALQhtjbmFNoroQ/T2/4/wxRp3+3P03UsmE0MnGj/Cy1CZq32q4ZoE75ZTEjpwj
	tiK9zB1lGVuHVE5gr0KYcXY9uUkdDwzTS70HQ04HCEEUrrPXHmNbu27TQgdJ8RuDBoQA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166045-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166045: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=0f50d1696b3c13cbf0b18fec817fc291d5a30a31
X-Osstest-Versions-That:
    xen=512863ed238d7390f74d43f0ba298b1dfa8f4803
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Nov 2021 17:42:31 +0000

flight 166045 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166045/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  0f50d1696b3c13cbf0b18fec817fc291d5a30a31
baseline version:
 xen                  512863ed238d7390f74d43f0ba298b1dfa8f4803

Last test of basis   166037  2021-11-03 23:00:25 Z    0 days
Testing same since   166045  2021-11-04 14:02:55 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   512863ed23..0f50d1696b  0f50d1696b3c13cbf0b18fec817fc291d5a30a31 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 17:53:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 17:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221830.383721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migv1-0002SW-Oy; Thu, 04 Nov 2021 17:52:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221830.383721; Thu, 04 Nov 2021 17:52:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1migv1-0002SP-L7; Thu, 04 Nov 2021 17:52:55 +0000
Received: by outflank-mailman (input) for mailman id 221830;
 Thu, 04 Nov 2021 17:52:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1migv0-0002SJ-V7
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 17:52:54 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1migv0-0001Iu-RW
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 17:52:54 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1migv0-0007lD-Q6
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 17:52:54 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1migug-0003Tg-Ee; Thu, 04 Nov 2021 17:52:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=sYZte+nVO5b9Nzc5VUhZ1ihjQjw/VMqCPKDV2mSvyUU=; b=1IX4PIOB3GXoo5iv74C8gFPKgK
	Mvtgp15J5TfrWyB+5/NuPLpe4OgfpwFpfNQaMGQOLb0LOB2+6xUuZkAqI6TFMw+GGllCkVFbwkiC5
	LQQVcnty4d0EOOB+AAEid+4Xa5RF1PfeXNxBdy3HdWhh9xWz6/ypHP2fB7TXcAYGM3Aw=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24964.7640.116612.519384@mariner.uk.xensource.com>
Date: Thu, 4 Nov 2021 17:52:24 +0000
To: Julien Grall <julien@xen.org>
Cc: Michal Orzel <michal.orzel@arm.com>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Ian Jackson <iwj@xenproject.org>,
    Julien Grall <julien.grall.oss@gmail.com>,
    xen-devel <xen-devel@lists.xenproject.org>,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a lock
In-Reply-To: <8ff2dc1a-b640-ec2a-810a-c135f0399130@xen.org>
References: <20211026122903.15042-1-michal.orzel@arm.com>
	<e5632a4e-db98-41b4-1045-2b3532c098fa@xen.org>
	<70c30a6c-b779-805e-079a-41bb484894b9@xen.org>
	<cb452c0c-ccde-7798-c403-f972b48a2c46@arm.com>
	<01545115-e82e-2a9d-a8e4-da9676080c0f@xen.org>
	<alpine.DEB.2.21.2110271557570.20134@sstabellini-ThinkPad-T480s>
	<CAJ=z9a2SSgG7a87_xTGT5LeNLgubOLQf1+dbnrsTsP8_p5ErJg@mail.gmail.com>
	<alpine.DEB.2.21.2110271658330.20134@sstabellini-ThinkPad-T480s>
	<4554621d-63da-ea3e-e56a-4e01d0cef347@xen.org>
	<alpine.DEB.2.21.2110281311030.20134@sstabellini-ThinkPad-T480s>
	<24959.49895.14808.77881@mariner.uk.xensource.com>
	<alpine.DEB.2.21.2111011341480.20134@sstabellini-ThinkPad-T480s>
	<9955c390-e5a4-0e58-f0db-b070249d3b16@arm.com>
	<8ff2dc1a-b640-ec2a-810a-c135f0399130@xen.org>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Julien Grall writes ("Re: [patch-4.16] arm/smmuv1,v2: Protect smmu master list with a lock"):
> On 04/11/2021 09:18, Michal Orzel wrote:
> > On 01.11.2021 21:51, Stefano Stabellini wrote:
> >> On Mon, 1 Nov 2021, Ian Jackson wrote:
> >>> It sounds like this is a possible latent bug, or at least a bad state
> >>> of the code that might lead to the introduction of bad bugs later.

^ this is the upside.

> >>> Can you set out the downside for me too ?  What are the risks ?  How
> >>> are the affected code paths used in 4.16 ?
> >>>
> >>> A good way to think about this is: if taking this patch for 4.16
> >>> causes problems, what would that look like ?
> >>
> >> The patch affects the SMMU code paths that are currently in-use for
> >> non-PCI devices which are currently supported. A bug in this patch could
> >> cause a failure to setup the SMMU for one or more devices. I would
> >> imagine that it would manifest probably as either an error or an hang
> >> (given that it is adding spin locks) early at boot when the SMMU is
> >> configured.
> >>
> >> The validation of this patch would mostly happen by review: it is the
> >> kind of patch that changes some "return -1" into "goto err".

^ this is the downside.

> > In order not to leave this patch high and dry:

Michal, you are right that we should not just stall this.

> My main objection is on the process. We should not merge patch that 
> doesn't fix a real issue at this stage of this release.

I agree with Julien.  I wouldn't characterise this as a process
objection.  I think it is a practical objection.  As I understand it
the patch can only harm the experience of users of 4.16.  The release
process is primarily aimed at making sure 4.16 meets the needs of
users.

So:

Release-Nacked-by: Ian Jackson <iwj@xenproject.org>

I would be very sympathetic to code comment patches which document the
limitations/restrictions so as to make the future bugs less likely.

> ... Ian can we get your release-acked-by?

You can have my decision.  I hope this is helpful.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 18:00:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 18:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221837.383732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mih28-0003xD-Gt; Thu, 04 Nov 2021 18:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221837.383732; Thu, 04 Nov 2021 18:00:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mih28-0003x6-D3; Thu, 04 Nov 2021 18:00:16 +0000
Received: by outflank-mailman (input) for mailman id 221837;
 Thu, 04 Nov 2021 18:00:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=phq3=PX=oracle.com=dongli.zhang@srs-se1.protection.inumbo.net>)
 id 1mih27-0003x0-H1
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 18:00:15 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e9010c6-3d99-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 19:00:13 +0100 (CET)
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A4H7Ox9026115; 
 Thu, 4 Nov 2021 17:59:55 GMT
Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c3n9xsxx7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 17:59:54 +0000
Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1])
 by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A4Hu0ur127950;
 Thu, 4 Nov 2021 17:59:52 GMT
Received: from nam04-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam08lp2047.outbound.protection.outlook.com [104.47.74.47])
 by aserp3020.oracle.com with ESMTP id 3c0wv84r6a-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 04 Nov 2021 17:59:52 +0000
Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20)
 by SJ0PR10MB5550.namprd10.prod.outlook.com (2603:10b6:a03:3d3::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Thu, 4 Nov
 2021 17:59:50 +0000
Received: from BYAPR10MB2663.namprd10.prod.outlook.com
 ([fe80::2848:63dc:b87:8021]) by BYAPR10MB2663.namprd10.prod.outlook.com
 ([fe80::2848:63dc:b87:8021%7]) with mapi id 15.20.4669.013; Thu, 4 Nov 2021
 17:59:50 +0000
Received: from [IPv6:2606:b400:400:744d:8000::c5] (2606:b400:8301:1010::16aa)
 by SJ0PR13CA0204.namprd13.prod.outlook.com (2603:10b6:a03:2c3::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.5 via Frontend
 Transport; Thu, 4 Nov 2021 17:59:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e9010c6-3d99-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc :
 references : from : message-id : date : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=LSsZuX5lrhlHrIaWGT9by6mxLU7zT8jVf7PA6//gvwM=;
 b=EhGKGb3LG03iWEDOgRjf48ajwjjrpOLV5FemzbWkqSHba5mlT41Q0nfywOMWhNtn5b9u
 bpYpPQXiQ6oej3TF7zIdiFavByfJfdTdfCpxINwtj9UI/fJnaCTe4qO3Fn+muv5wJ1Yr
 0JA2rXNylJWOp9S2kXwoLqGZrywHWiu08NW8LIm1mnPZUKeh9E650vKNjtSOi4WBvoKU
 nckwfa6Krc+qcx56BKN7c5U6ld/DoxYIk7WNeZmX3ln5SQM6yv3oXFqzcTplVS9jIiGz
 6buT/nxKeGtEmaKODxq5QVk9s51n6tN0Dwk3/NSaqGDCQ4QfOhZvq/aEt4vyzpcAQAfF tA== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jNnNba2PEVHZBuNlgSnRmWRPu6fSO9Yl3Xrze9viBst/liTlpCuF+2ftAIlCgdBlF6GL01odkncV/nXzENZJFv8BPdqwRqODFz4axJj0UQ4uxt52JyKmus2lZtUdT/B7VRQOhtYDajg/OQkP0z/P/WVHi0nHe4AREeL6QNwV4QOCn8KhxEchbJ2dG3wVP534/TbVLdRD8mtDrYjCR5HaYuIvNL2NWZMb/igvrNm8ybmhUaLZ9X7Zsnrus/GIhkor2PXf2tDkPNXD5A32hAlbFvp9kH1GURuhvenz6BoWO+OvTp1YmwIPtxVvooteCP411GmeGlMwD1+2O1bCAKg68w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LSsZuX5lrhlHrIaWGT9by6mxLU7zT8jVf7PA6//gvwM=;
 b=oKoc6RkCMFpPUzm9LONPfcuK4cVlKNiYFZV87T8J3+5nhHHEwoh/rcQNImpVxSzR58WqQmDSwRnOxrzaqqgPSTIpF0jKjbEnFzJrf0W70ScLrAzmz2jMKLPr8V7kVf1xug4GYkX/38r7B0MgAJaL0uPq8yvQ/7N5la5mL5zfOrZgZWFzHaMURyvk2XPhbBw49SDH/0uqaBpse8xsHs8RRWNaNWVX0FFenQxpP054ScnWaBRZfy8jUAGMsuUk32xjCGEr/HPF+1ngXdNFMtJuJoPD4fQVEdE5k1P3Xqxz+6n508LQ3wM1KyDuZIq5TBl2ORv2xTuAIb8chpNfJ1zExg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LSsZuX5lrhlHrIaWGT9by6mxLU7zT8jVf7PA6//gvwM=;
 b=IZuraHNiTb0GChP2J0zsXxf8xG6yJKi5sbvCTws/Y2M/Q7abzcqhkiTcEPkuwLNWJJ7noi25SsYh/hU8Pgf6VgvI6m0i+emwrtTIgQz4KLNYiIvMCuoLO3Tez7WBUqC7f+suAWO0JhWfh1xRudKTOTUlOy6ETM3/c1uOa7oMmkg=
Authentication-Results: vger.kernel.org; dkim=none (message not signed)
 header.d=none;vger.kernel.org; dmarc=none action=none header.from=oracle.com;
Subject: Re: [PATCH v2 1/1] xen: delay xen_hvm_init_time_ops() if kdump is
 boot on vcpu>=32
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        xen-devel@lists.xenproject.org, x86@kernel.org
Cc: jgross@suse.com, sstabellini@kernel.org, tglx@linutronix.de,
        mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
        hpa@zytor.com, joe.jin@oracle.com, linux-kernel@vger.kernel.org
References: <20211028012543.8776-1-dongli.zhang@oracle.com>
 <1f19674f-e608-1faa-5656-fec853297198@oracle.com>
From: Dongli Zhang <dongli.zhang@oracle.com>
Message-ID: <fe6d7aaf-97b5-dfa2-75e5-1a072f4aac92@oracle.com>
Date: Thu, 4 Nov 2021 10:59:55 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.6.1
In-Reply-To: <1f19674f-e608-1faa-5656-fec853297198@oracle.com>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SJ0PR13CA0204.namprd13.prod.outlook.com
 (2603:10b6:a03:2c3::29) To BYAPR10MB2663.namprd10.prod.outlook.com
 (2603:10b6:a02:a9::20)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2e3d8a68-fd31-440a-0e77-08d99fbce585
X-MS-TrafficTypeDiagnostic: SJ0PR10MB5550:
X-Microsoft-Antispam-PRVS: 
	<SJ0PR10MB55500C068C4DB1ED756BF952F08D9@SJ0PR10MB5550.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	EfVYgLat806FXUps/nrPfI+Ce6d/6PSmRhZfGDU6PsI9uJRwxs0OMGNqcnVuEC89t1AB3wTzleAB1VFGkmm+1SeRaYrmMyimHpevDtu3/eqGQh8nb3sPChEuE/6rYviaOlRutBiRJj6IHCPgyP9x8GiKBVw0pKkVNvmh88OObSWeRmDEkktJr8iDgiuZDAhykVeSlxBSKUyoxdDN0P/M1cRQVpRHL09j4GuWHWfI8Gd5n2WpglqMvfnE1hlF5y4+TJZj7o15RkQP4n8BO98mZ0VuAv0Ss5XZYy22lxkGOkaAsHiADgRxcVxBuBXBj0erFcXQ03HSwt1BWekQQZzbjRzymxsCuj0VcFB1XnidpxUtCH8MnL6zc1SEsdUoiwe+ucdjvBZsA6TRhzDX9ddMllQz/MmlTpqJBWS97SE6VwhTYus82v/rta/wdPOwO70Q/cP1alUuxSzDO+galRBLuGAu3OeQLhBFDsv8GB7StLQLl5W+2Uly1hv1BXMEwMJxO7FfUG+/9iNLJGv2a8DktN+mfZuLray2e3v0M8rCHWiVIPv08/8Ap2rCVX2NzdEzg6Q+DR3WZzDne6K98XkYH8pZiuVys4RErZdaKUfIuIbJ+TmvBw+mM1W7/51LgL/mOwtyX6FrFOW0XqoyFfF77mi28D+rz2WDcPEX4BxEZ7SD5XRSoFIb9peTxpoh5n8BNaH1kvJC/3NDjQSN6LunwYKBQYpo9hQegXrNPnsPEsHv5i8R6Q9rzqRRyq3Ljgo72z4Pc4KPv57QqM5MsYU/pLBm+VDpy+44sCKEqRB0W0HPunXygHky5++dzAXbiQGGQ7v2td1uPr6VJlxd3yvEfc151HRBFjn8VqBCVbiZwwE=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB2663.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(316002)(31686004)(8676002)(86362001)(6486002)(44832011)(5660300002)(31696002)(2906002)(6666004)(7416002)(4326008)(66946007)(36756003)(66556008)(186003)(53546011)(66476007)(38100700002)(8936002)(83380400001)(2616005)(966005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?cG9oNmxUVk1OclBNZW10WUl4eDVJN0tsSUpLalVyd0JxU0UvOFNkR3FWQVh2?=
 =?utf-8?B?bXBteWliMmdGcnhyL24vMWg2R0VpcXJsK0JLUjBZS3VvcDhRck5aZmFLTnY1?=
 =?utf-8?B?NG5jSjJIcHJuUUNNYjRmeVpzVXV6Tnk5ck9GMEZ0M1cxb1VWS29CVXFzSEZw?=
 =?utf-8?B?WEdKYmx3djM2MS9GV3hscWdzNjc4YlR6ME0wL09xV1BTWkpVY2EzZ2V3Z3J0?=
 =?utf-8?B?YXZFbmx1S0UyRG9CTEpPTUc2Mm5NYWFXcWE1R3drQ2ZLZTVaQWh3S3pkSllT?=
 =?utf-8?B?SlBVRE9sOHJWdnY0TytnUHRUVXg0VWx2VDczcmtUd29YV3Q0eC9ZcDZZM0Vq?=
 =?utf-8?B?dVoxUEJOd3lyRU9GZlM0TGd1NS82NkNISHh3VFRTYUw4UFRYM0s4NXdzNkhN?=
 =?utf-8?B?QlU4THJSVFZPUjJsaE53Lzc2MG90SVFMdElrdEhtZ05acTV3Z1hURmU1ck5a?=
 =?utf-8?B?eVlWT01xalZqVzJCZzY1NzlVWkhhV0FtWmxIQ0t1YVRyQzhsdlhDbCtYUW5l?=
 =?utf-8?B?WW12eS9NVis3MzFCeGRsQzlUWjg2aThNQkdqYmszSkZCMlJmb1YvbER4ZnZa?=
 =?utf-8?B?ek9Dcnp6UHNISktZdFlNUE9sNWNhWERpN0p1U3VHMDI5TGM4SjVTWjBKWVpj?=
 =?utf-8?B?bTFqNzNGV3pRK3RNeU05VFowWFhhNEIvcEt0SnBxZmZWemZlSVhQQWVia0cx?=
 =?utf-8?B?ckx1K1B0blJkNEdvL2lHdkpDK2RncUYyb3Q3a2x3Smo3QlBXa1VhSFVJVGli?=
 =?utf-8?B?bTUyYjAwZlFVcTZuV2VEekk4UkFwdjV0Q1FxVzhlb1k1K1NkNkQ0SFVhbFdr?=
 =?utf-8?B?ZWJYdDhrMWFRdlNNeFFWSHQ2Rk5rQ2NuTjRxK0RUTWc3RFg4eWlxRVhRU1hq?=
 =?utf-8?B?OFJleEM2N0VyVzJ4cW1pbjZBamd4Y2crd2l5TFNpMTlCSWxBUHZ3b0NHRy83?=
 =?utf-8?B?TTdJdWZ0SU5uaGxiZ3V2cTBnL3N1WXZxZmszN3hHL0M3VWYrTm1VU25wcFZY?=
 =?utf-8?B?Y0QxUVNGT0tsd1BqcXIzOVRBVGhzSW51Rno1VEJML0w0ZElNUjhDdnhVREM1?=
 =?utf-8?B?dXhRMGdhY0V1aUpMdGwrdkg2bnpKOFlaY1kvTDJwcEpCQkUxMmo1eXpDTm9p?=
 =?utf-8?B?NDRHZ0ptSTR4c2g0bkdtSGltRElxTW9OdWZmbmxiVTRzK3ZUTUFNbXlPQ2lH?=
 =?utf-8?B?S3ZMbkhBbnFLY2U0SkdDR2ttc2c4YUd0b0RpUFpmaUIyejlWMHRzM2E0d0Nw?=
 =?utf-8?B?M2c4eUtiUExPc252TXlrT2labTdDS052RHV3SDNua3VCT2JVekQwcnY2bFhT?=
 =?utf-8?B?dzNiZEpqcWVVT2Q2UmV6MmJxelNlb3I2S1BseUtuczVPclhVcEpNeUFNSlVi?=
 =?utf-8?B?RldMenlZM3Bza0g4eXp5Yng1d2phclNjSDE3UVpQeDZqejRHTXZFMGUvN0tD?=
 =?utf-8?B?NHhzLzUxTExMWnhnT3RsdmJYOG1XMHlkcVVJTDFZSFRoZDZIWHdieWk5REhE?=
 =?utf-8?B?NFBoUlZCZE8vdTA2c25IMVpnNWM4eThzUlFQLzdmTWowd2JUdlpGQnJFeGpD?=
 =?utf-8?B?TWJoY1IySmUxTVJad0psV1RlK0dEQjA3SjlHc0FVVEphMDdkbnc4cUxtVkh4?=
 =?utf-8?B?cGgrSFE5OHNaYUg0OHcxNmd6d2xXTHlXZ1Npc3RiYkZHa0ZGQUM4VWcvNmx0?=
 =?utf-8?B?dGFrZllhOWFGSUwyTmxEejlHcGVwb0dZQXhYRXpRZDlyTkRiSWwzazBENlhL?=
 =?utf-8?B?UzhiMlJ5aEhHakdkZXRlVjJoVEFzSitROVh0d2VOYVN2VDZIcWRoYklsbGY3?=
 =?utf-8?B?MkdhUy9RVDhnMVZqZERrb2FTcmI3QkJabVBXMUt3Y2luZWwzVFN6U0F6YjNr?=
 =?utf-8?B?UFE4T1ByWmxNaUhoSVJFQ0FkQSs5andSSVJUcEtVSlU1ZjBmWng1Skt1Y1Uy?=
 =?utf-8?B?a3U5azJwUERKTTc5NEV1UkpqU05yTE5nTkpwdEUwcldSOU82cG9JMkdTOG13?=
 =?utf-8?B?RnowaFErMXZLOXRLMnlsSmtvNGJyWUF0MWwrd0tKRkRjMGNVTENZS2FQSFBu?=
 =?utf-8?B?cERoYjF3ZzBQRWJjY0hsVUVFY1NWMjNEMERsa0V1Z1JJdkQzMVFIUTlDZHVR?=
 =?utf-8?B?SFQ0N05XWnpucEY5ckF5ZlE2U0lHRzVSSzYzRy80b1RLWVdLWFA4NGxtbkxM?=
 =?utf-8?Q?ZYZXBR/ypWAA58uNEev+yt2pPEeCtEX+pKMIcIijc1ba?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e3d8a68-fd31-440a-0e77-08d99fbce585
X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 17:59:50.4725
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7C9LCDFLWzWMBDJa6BtdpG3EoSiudUc0r8wunuTmmFLVqSwBrCEsCxMjaZ+TzxNh+q+X+Bl+5WogKk3KhE0wZg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5550
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10158 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 malwarescore=0
 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 spamscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111040069
X-Proofpoint-ORIG-GUID: HNmlFvK5jXFawfujbpyNh2aApfUSvMW9
X-Proofpoint-GUID: HNmlFvK5jXFawfujbpyNh2aApfUSvMW9

Hi Boris,

On 11/1/21 10:34 AM, Boris Ostrovsky wrote:
> 
> On 10/27/21 9:25 PM, Dongli Zhang wrote:
>> The sched_clock() can be used very early since
>> commit 857baa87b642 ("sched/clock: Enable sched clock early"). In addition,
>> with commit 38669ba205d1 ("x86/xen/time: Output xen sched_clock time from
>> 0"), kdump kernel in Xen HVM guest may panic at very early stage when
>> accessing &__this_cpu_read(xen_vcpu)->time as in below:
>>
>> setup_arch()
>>   -> init_hypervisor_platform()
>>       -> x86_init.hyper.init_platform = xen_hvm_guest_init()
>>           -> xen_hvm_init_time_ops()
>>               -> xen_clocksource_read()
>>                   -> src = &__this_cpu_read(xen_vcpu)->time;
>>
>> This is because Xen HVM supports at most MAX_VIRT_CPUS=32 'vcpu_info'
>> embedded inside 'shared_info' during early stage until xen_vcpu_setup() is
>> used to allocate/relocate 'vcpu_info' for boot cpu at arbitrary address.
>>
>> However, when Xen HVM guest panic on vcpu >= 32, since
>> xen_vcpu_info_reset(0) would set per_cpu(xen_vcpu, cpu) = NULL when
>> vcpu >= 32, xen_clocksource_read() on vcpu >= 32 would panic.
>>
>> This patch delays xen_hvm_init_time_ops() to later in
>> xen_hvm_smp_prepare_boot_cpu() after the 'vcpu_info' for boot vcpu is
>> registered when the boot vcpu is >= 32.
>>
>> Another option is to always delay xen_hvm_init_time_ops() for any vcpus
>> (including vcpu=0). Since to delay xen_hvm_init_time_ops() may lead to
>> clock backward issue,
> 
> 
> This is referring to
> https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg01516.html I
> assume?

No.

So far there are clock forward (e.g., from 0 to 65345) issue and clock backward
issue (e.g., from 2.432 to 0).

The clock forward issue can be resolved by above link to enforce clock update
during vcpu info registration. However, so far I am only able to reproduce clock
forward when "taskset -c 33 echo c > /proc/sysrq-trigger".

That is, I am not able to see any clock forward drift during regular boot (on
CPU=0), without the fix at hypervisor side.

The clock backward issue is because the native clock source is used if we delay
the initialization of xen clock source. We will see a backward when the source
is switched from native to xen.

> 
> 
>>   it is preferred to avoid that for regular boot (The
>> pv_sched_clock=native_sched_clock() is used at the very beginning until
>> xen_sched_clock() is registered). That requires to adjust
>> xen_sched_clock_offset. That's why we only delay xen_hvm_init_time_ops()
>> for vcpu>=32.
> 
> 
> We delay only on VCPU>=32 because we want to avoid the clock going backwards due
> to hypervisor problem pointed to be the link above, not because we need to
> adjust xen_sched_clock_offset (which we could if we wanted).

I will add that.

Just to clarify that so far I am not able to reproduce the clock backward issue
during regular boot (on CPU=0), when the fix is not available at hypervisor side.

> 
> 
>>
>> This issue can be reproduced on purpose via below command at the guest
>> side when kdump/kexec is enabled:
>>
>> "taskset -c 33 echo c > /proc/sysrq-trigger"
>>
>> Reference:
>> https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg00571.html
>> Cc: Joe Jin <joe.jin@oracle.com>
>> Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
>> ---
>> Changed since v1:
>>    - Add commit message to explain why xen_hvm_init_time_ops() is delayed
>>      for any vcpus. (Suggested by Boris Ostrovsky)
>>    - Add a comment in xen_hvm_smp_prepare_boot_cpu() referencing the related
>>      code in xen_hvm_guest_init(). (suggested by Juergen Gross)
>>
>>   arch/x86/xen/enlighten_hvm.c | 20 +++++++++++++++++++-
>>   arch/x86/xen/smp_hvm.c       |  8 ++++++++
>>   2 files changed, 27 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
>> index e68ea5f4ad1c..7734dec52794 100644
>> --- a/arch/x86/xen/enlighten_hvm.c
>> +++ b/arch/x86/xen/enlighten_hvm.c
>> @@ -216,7 +216,25 @@ static void __init xen_hvm_guest_init(void)
>>       WARN_ON(xen_cpuhp_setup(xen_cpu_up_prepare_hvm, xen_cpu_dead_hvm));
>>       xen_unplug_emulated_devices();
>>       x86_init.irqs.intr_init = xen_init_IRQ;
>> -    xen_hvm_init_time_ops();
>> +
>> +    /*
>> +     * Only MAX_VIRT_CPUS 'vcpu_info' are embedded inside 'shared_info'
>> +     * and the VM would use them until xen_vcpu_setup() is used to
>> +     * allocate/relocate them at arbitrary address.
>> +     *
>> +     * However, when Xen HVM guest panic on vcpu >= MAX_VIRT_CPUS,
>> +     * per_cpu(xen_vcpu, cpu) is still NULL at this stage. To access
>> +     * per_cpu(xen_vcpu, cpu) via xen_clocksource_read() would panic.
>> +     *
>> +     * Therefore we delay xen_hvm_init_time_ops() to
>> +     * xen_hvm_smp_prepare_boot_cpu() when boot vcpu is >= MAX_VIRT_CPUS.
>> +     */
>> +    if (xen_vcpu_nr(0) >= MAX_VIRT_CPUS)
>> +        pr_info("Delay xen_hvm_init_time_ops() as kernel is running on
>> vcpu=%d\n",
>> +            xen_vcpu_nr(0));
>> +    else
>> +        xen_hvm_init_time_ops();
>> +
>>       xen_hvm_init_mmu_ops();
>>     #ifdef CONFIG_KEXEC_CORE
>> diff --git a/arch/x86/xen/smp_hvm.c b/arch/x86/xen/smp_hvm.c
>> index 6ff3c887e0b9..f99043df8bb5 100644
>> --- a/arch/x86/xen/smp_hvm.c
>> +++ b/arch/x86/xen/smp_hvm.c
>> @@ -19,6 +19,14 @@ static void __init xen_hvm_smp_prepare_boot_cpu(void)
>>        */
>>       xen_vcpu_setup(0);
>>   +    /*
>> +     * The xen_hvm_init_time_ops() is delayed from
>> +     * xen_hvm_guest_init() to here to avoid panic when the kernel
>> +     * boots from vcpu>=MAX_VIRT_CPUS (32).
>> +     */
> 
> 
> How about
> 
>   /* Deferred call to xen_hvm_init_time_ops(). See comment in
> xen_hvm_guest_init() */
> 

I will do that.

Thank you very much!

Dongli Zhang

> 
> -boris
> 
> 
> 
>> +    if (xen_vcpu_nr(0) >= MAX_VIRT_CPUS)
>> +        xen_hvm_init_time_ops();
>> +
>>       /*
>>        * The alternative logic (which patches the unlock/lock) runs before
>>        * the smp bootup up code is activated. Hence we need to set this up


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 18:13:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 18:13:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221844.383743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mihEU-0005Rf-NV; Thu, 04 Nov 2021 18:13:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221844.383743; Thu, 04 Nov 2021 18:13:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mihEU-0005RY-JR; Thu, 04 Nov 2021 18:13:02 +0000
Received: by outflank-mailman (input) for mailman id 221844;
 Thu, 04 Nov 2021 18:13:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WbKJ=PX=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mihET-0005RS-3g
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 18:13:01 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d64687b4-3d9a-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 19:12:59 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d64687b4-3d9a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636049578;
  h=subject:to:cc:references:from:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=UNMBh6J8ducn9YkE2jwVJGDIyB8ONaSfyVKdjtTks0c=;
  b=KUdLm5Iq2hEOuE1mENurB8n+QKeUTNyL8tb0XsIlZcrsZwgDBzGmGkkK
   9GSHniUFh+VpxUVSMTyl/Jjh6uJc7iUm9aFL8GspRBSVbvJpa0MTmQ5Rt
   sOL3mwedqdQd66PN+NJOUGtih7baU0YUWEzeUWdb5goNqCEgUWUOKksiV
   8=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 0U2ffWiGqDbbVoJptVtjykFHFWLAlCCPfxpDtWLX1OeNT784EY4noKNrhee8weXpPa89CyEXaN
 sjEujFp6c7WhgIq/DB6RpFjh+P4rBvi/FyRO+kGoyYwcFXGse5VszQA9Jv6/EyB/ptybLrCKIh
 KkEHGWNO+mS71P7aFK+bPiLIUhDqrdsOJcOZfRsuIi+ykYwrWWO9vAsWZroA/7aWVR6EnEdbJ+
 bJtdcGjwc43/SXFOwDApgWTAA87b8VhEY5/EF7+ZIXG65+prR1mpTy2S3mPwYmXvr3msSGuGqh
 zmWooNCWThjFThJ+ZRxbS6J1
X-SBRS: 5.1
X-MesageID: 59049044
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:/wVaR6u3U42zGiwxOx3wSREFuOfnVKFZMUV32f8akzHdYApBsoF/q
 tZmKW6EbvvbamKjKd5zOd+19EtUvpLUzNFhTFE9/iBjHypH+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2YThWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplnqW2cQN0H7T1qukeWCFaDAhlOKh45+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 pJFOGIzMHwsZTV1CnA5Fb0mod65nzqmIg9Rk0iP4oYotj27IAtZj+G2bYu9lsaxbcdahEGDv
 Urd4n/0RBodMbS3yCWH2mKhgPfVmiH2U55UE6e3ntZ1hHWDy2pVDwcZPXOrrP/8hkOgVtZ3L
 00P5jFovaU07FasTNT2Q1u/unHsg/IHc4MOSatgsljLk/eKpVbCboQZctJfQPcfsvcyGB0z7
 22EnNjRByNGq7iQd23Io994sgiOESQSKGYDYwoNQg0E/8TvrekPs/7fcjpwOPXr14OoQFkc1
 xjP9XFj3OtL0abnwo3ipQif6w9AsKQlWeLcCu//emu+pj10a4e+D2BDwQiKtK0QRGp1o7Tog
 ZTlpyR8xLxRZX1uvHbUKAnoIF1Pz6zVWNE7qQQ+d6TNDxz3pxaekXl4uVmS3ntBPMceYiPOa
 0TOow5X75I7FCL0NvImPd/pUpRwlfmI+THZuhb8NIomjn9ZLl7vwc2TTRTIgzCFfLYEyPlX1
 WinnTaEUi9BVPUPIMueTOYBy747rh3SNkuILa0XOy+PiOLEDFbMEO9tGALXMogRsfPVyC2Io
 o03H5bblH1ivBjWP3C/HXg7dgtRcxDWxPne9qRqSwJ0ClA5RDF/UKKInu5Jlk4Mt/09q9okN
 0qVAydw4FH+mWfGOUONbHViY6noRpFxsTQwOilEALpi8yFLjV+H4PhNep0pU6Mg8eA/n/d4Q
 +NcI5eLA+hVSySB8DMYNMGvoItnfRWtpASPIyv6P2RvI88+H1TEqo3+Yw/i1CgSFS7r58Ewl
 KKti1HASp0ZSgU8UMuPMKCzz0m8tGQ2kf5pWxeaOcFafUjhqdA4KyH4gvItDdsLLBHPmmmT2
 wqMWE9KrujRuY4lttLOgPnc/YuuFuJ/GGtcHnXasunqZXWLoDL7zNYZAuiSfD3bWGflw4mYZ
 L1Yn6PmLfkKvFdWqI4gQbxl+r0zuon0rLhAwwU6QHiSNwa3CqltK2Wt1NVUsvEf3adQvAa7V
 x7d+tRePrnVasrpHERIeVggZ+WHk/oVhiPT/bI+J0CjvH17+7+OUENzORiQiXMCcOspYd19m
 epx6tQL7wGfiwYxNofUhy9ZwG2AM3gcXvh1rZodGoLq1lImx1wqjUYw0cMqDEVjs+lxD3Q=
IronPort-HdrOrdr: A9a23:M07Oe61yBy7yxkXQhm+gCAqjBSJyeYIsimQD101hICG9Lfb2qy
 n+ppgmPEHP5Qr5OEtApTiBUJPwJU80hqQFnrX5Wo3SIDUO2VHYUb2KiLGN/9SOIVyHygcw79
 YHT0E6MqyLMbEYt7eL3ODbKadY/DDvysnB7o2/vhQdPj2CKZsQiDuRYjzrY3GeLzM2Z6bReq
 Dsg/av6wDQAkj+Oa+Adwc4tqX41pD2vaOjRSRDKw8s6QGIgz/twLnmEyKA1hNbdz9U278t/U
 XMjgS8v8yYwr6G4y6Z81WWw4VdmdPnxNcGLMuQivINIjGprgqzfoxuV5CLoThwiuCy71QBls
 XKvn4bTohOwkKUWlvwjQrm2gHm3jprw3j+yWWAiX+mmsD9TCJSMbsIuatpNj/ir2YwttB116
 xGm0iDsYBMMB/GlCPho/DVShBDjCOP0DofuN9Wq0YafZoVabdXo4Ba1lhSCo08ECXz751iOP
 VyDfvb+O1dfTqhHjHkV1FUsZ6Rt0kIb1K7qhBogL3Q79EWpgE286Ig/r1dop9an6hNDKWt5I
 z/Q+1Vff91P4krhJlGdZI8qP2MexrwqCL3QRCvyGvcZdU60lL22tXKCeYOlauXkKJh9upEpH
 2GaiIAiVIP
X-IronPort-AV: E=Sophos;i="5.87,209,1631592000"; 
   d="scan'208";a="59049044"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jVpfzJiUlcsx8Cv+AkbyoGt7yFpk0bgBN5z05a/CcrvmxKy+e2Vk6B12irsAZlyIe3qqd0lQ/j9CNXuAlazI5vkZj0BMakuWyzDhQdsIOZ1ymgQG1/KMv9Xx2o1aANtPkwYlGp26TCxeO1yBz6aFHFyfiribD/oVxYK71sT0f1ZyV+6KF3m5U/QsBk88Th+wEOpo8Fwpn9llVUBXXU8XLUSjw2rlE/3I4HxHhTUbPvv0y2bMl5BGkOi+HNdfpbaqZVC7F1t2hIZSJnHMEEcpUrKyWXRlCdZQ4OWmnruWwakIFlSxhvRk4rzJXy/VfxQ+KzahUTdIxG0bvgIm3ho58Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lEodEYO9+mLTTYwln4jMIKZDYM2iI2UzxSLjaZNcxeg=;
 b=RFqfdTOZ4HQiN1yl5YHzMMpOdVIVkWAJRU7X/yY1XcyBdBCYKW08ZDLHZpjSaDYdUoJ6ebfBZD/8BPU60FLPzqF8QTG1Lpovufsb0PVkuA0TVY6ki6wGy+cTeecvfLQPQ8iFbS9p2GDvFA786o/0CWgLx5mde360va5XKWAyi8Hg1rXIomh4qSP4ziwAKe7ARsjzkkzfWXGLgNKzdw1LEO3qAljrnu1tQPkgwluLm0H3otCGeQWuzuuAnpwZGszLLgFGAEHMypP2cd5doEm3mZMit2BCautsXnZuyQPri+eEWp6t1Xdae939XMpouzhlMNvAJm2IC6KhLsq7Ji7erA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lEodEYO9+mLTTYwln4jMIKZDYM2iI2UzxSLjaZNcxeg=;
 b=kblV0tOmY5VRZmE2RfS7QrsAwUx0lmLUycCkjce9PK7gCVkGYYali+F1JkF/HicehdtOVgfFi/5HAX/PfJOhgn5F513+RsJs5K7s5XOilMgv7ZXdCF/G4wtN2zYrfn/pcCmPymHc68ch71uoPaSkUBAnf9NY9OESVtu+hyKbljg=
Subject: Re: [PATCH-for-4.16 v2 1/2] configure: modify default of building
 rombios
To: Ian Jackson <iwj@xenproject.org>, Juergen Gross <jgross@suse.com>
CC: <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>
References: <20211104161121.18995-1-jgross@suse.com>
 <20211104161121.18995-2-jgross@suse.com>
 <24964.2546.976689.929650@mariner.uk.xensource.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <758e53b5-c967-fa3d-50dc-b547e2736f27@citrix.com>
Date: Thu, 4 Nov 2021 18:12:48 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <24964.2546.976689.929650@mariner.uk.xensource.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Content-Language: en-GB
X-ClientProxiedBy: LO2P123CA0107.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:139::22) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bcd69a70-4cf8-4763-3074-08d99fbeb82c
X-MS-TrafficTypeDiagnostic: BYAPR03MB4293:
X-Microsoft-Antispam-PRVS: <BYAPR03MB4293318027914794FD917775BA8D9@BYAPR03MB4293.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: g0XIElnkHIhRhBdFWqyMihml0q68vYEgNh07B99yTbr0uSKlgxfg6JBTeHpKk3Dc64vxncT3gLT/7F8mV3G6LMjw5lBFxybS680jvynIt+brUEwaiBu16B6F3nhxcQiXYSsXnHEMJepiEiCMmKxWQrYjpmPAdfI34vd1PxTIGw9IR5kMwIUIScGbTg/r75QAet4MWgPBEzo4Uh5cRNuKBylRa5sChwYtP4IJsYoVp8s6PiUd3KLx8rRCfXeGDnHk2GT9+56n5vPxtZW+cT8Jr/h1i6C9giOfkBPwga84148qiTFLumRENjUtpG9xzJbSNB4xNtuOA7NjpNQdd8LG/PnM/2hsocXo4MLre1grezuiX6/PmG4w4010jvvYXPybiCzOh0qiojtGemCTf9Sl1Ec8GdbTlss8/12IakxMm0LkMKENOkvcVoT3G3z8rpoQnvLJ3sbhm5ovBlP1+D7npJ87ibUtw3YRVKk4Xnyp5RlPvNo5Beq/1QeiCkb8WCG4mixorwRaPqI55pzEX+3JODinF+ntYhWO6JLvrTyBDw84ehf4QZlNVD6DPzSxczUfa18ywCrdh+WnDGZzDu+v/p1D8C1ROY8iM/Y77jVqUPFGxNtIwbEwfafFG7HOUuvdht6Hl3sNcgbxbSMHUwO6CHOwAbhQXCFT9G6fYSAAukPdP5I/YWERVgT5SqLkupYSDoU7Tli1INskcjtXzt1IuGYX6lx3AH8uZeblh+OS/M4Rl5U3V12s30itmn0yPSXZ
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(6486002)(31686004)(508600001)(4744005)(8936002)(8676002)(16576012)(110136005)(316002)(2906002)(186003)(26005)(6666004)(86362001)(38100700002)(2616005)(956004)(53546011)(31696002)(66946007)(66556008)(83380400001)(66476007)(82960400001)(36756003)(5660300002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aXpFZFNyRzh3RjdXWTliUmVjMnpzMm5kaGxzbVRNRDNZN0o5YklOQ29zRXlt?=
 =?utf-8?B?TElZZUhjVXZKZlp5TlVRbjJKRkpOYUg0aE91ejlnM1hPWGJacWd2L3plQkQy?=
 =?utf-8?B?emRCQ2ZWd3RNelRDeUJTMlUwS0tic1YxSHhPdmVQQ1B5Slp4Ry9FblhMcWFO?=
 =?utf-8?B?Q3lkV2VBRFZVNkhTWGhHSThIcC9JbEkxd0RjbnBPYzc5RHhNZFZ3WlJvQzdt?=
 =?utf-8?B?d0cwY1A1bWMvVVlmbzYrN1h5U3dqYng4ZTcrSk56U1oyZWdMdHJzUis1dGZU?=
 =?utf-8?B?bW1kTndaSFpXa1lpU0MzVUlaMTVnbkc1eFVwRjVSb3B1VVQ0Q2FVSEg2b0Nm?=
 =?utf-8?B?b2tPeXZiNDNqWk5VQWtyS043K1JwWVd3Vmx4bXlKQ3N4RkJhRU5vMjRENXZB?=
 =?utf-8?B?dFNtYVFUcW5sQ2RPRnJZbEpNVUk0dXIvTFlRNEZwdnF3amEvSTl4bTZYVGlG?=
 =?utf-8?B?MzB5dm5lSzlDakxJQ2tmYTByb2N4WFptcmVQOW5qOVNhQmVLY09xK1piOVp3?=
 =?utf-8?B?VTUxQys2aU1CM0JmSEJwb2ljU1BPb2xMVm1lTlpETVorQzAyeC9sZzBmN1BS?=
 =?utf-8?B?QVovc2I2R0dnV1MzRklJZkNFSjJYcVhSeUY1TW0rd3FZV2JVaG1NWGJpN0xR?=
 =?utf-8?B?amtURFRvdDhhUmpJTFlQQWZBTEpsbGo2cVhTT1Rkb1Y5blBLazBQcFFoS0R2?=
 =?utf-8?B?VlRtNHFFL0pVMldvUmY4V1E5NTgyYjIzTS9lbjM2bE9wRVd3UXJ0a2xWamFi?=
 =?utf-8?B?VmU1a21IVTkvdm5sZkYxNG82cFZ4NUpoYWhpRnlwdnVOb1NYbUtLKzNVMkpY?=
 =?utf-8?B?WmoySUh0V0lXemcvdU9WeXo5dlBLaFVKdXNaVDRZVGxCSUNDVW50RER5SlpS?=
 =?utf-8?B?Q2N6OHZVbFFZeE5qV2hna0t6WU50R1NOdFJtNjd4WXNiMlJEQ09qR1U5bnk0?=
 =?utf-8?B?U0hhMlZmaVVPQ2RTbDExd1hhTnlBWWRFN1B6Q0xIME9zT3dQZ3ZZVXRXQ2Rt?=
 =?utf-8?B?VUNOQjNTY3ZCZGJyZnJLR0g1Y3hlMTA0VVd0empidG4vbXhDWkk2aU5qVnhK?=
 =?utf-8?B?bXJBb3RmK3dHVkVQb2Y3Tkx4dkluQ2owSzRVc09vOXdMeXVkbmdZeXRNeUR5?=
 =?utf-8?B?TmU4OTFXcTZhcWJwSFFRRlV6d3VFRUtGK0g5VzdCaFNxdG82S1BLSHoreU81?=
 =?utf-8?B?OHo5dy91eDUvaGVEbDRPU3l4UW5xOTZqQTk5NzdteDZvejB4VG1wKzdaNVJS?=
 =?utf-8?B?T01xTlhsQVVVcnU5NFFQdkNuMzE1NlNTdTljZVRSR3B6MWNjLzRZOGtOdEVp?=
 =?utf-8?B?RU5PbVF0WDYvTkVYTjh2cGJBZXVYU21nSjhzNm9rK3FPWEdmNlMrZ0VvQ3Fz?=
 =?utf-8?B?eE4wUXFCdTRWTFEyc2dLM3F5QUhiTDJzb0p3RDNkSFp0eFZvdG8weFVyemxV?=
 =?utf-8?B?Z2ZmM2JqYThuWm84V2xuU1FGOHdYRjFZZURLdzNxWlNVclI4Z05xT3QzTnVF?=
 =?utf-8?B?VTBtU2FDZk1KT1gyRlQ2TTNTMUpDbUdmaXFpemFnQWlhczNZa2REZkR1dHJn?=
 =?utf-8?B?ZkNqaHVORng0ekpNQWNQSFJHYkJsQWc4bXR1N2JBNEJycU1oQ0ZKaWF3UGN0?=
 =?utf-8?B?VFYrOUt5NHdKbFdxbjVyblJTejdXRWg0UDlnZWE2VUxON1V4eWhQeVRGejFR?=
 =?utf-8?B?TUJ2b3NuaFpqTHJQVjd3aDRVM3NyT3pPNk1wVU9tMVpTUzhOMnhmQlU0TFgy?=
 =?utf-8?B?aERTUlFpZFl3eVF6bUxhSjlLZlEwTGxmeTI3UzZOd0xTMHptRVl2MDJrejd0?=
 =?utf-8?B?MFZsaTRWcTZnSFRibjVnUnNMUWRRbWk5QVBKVXEyNVpEd0ZzMGEzazNMV0t5?=
 =?utf-8?B?dUM1UHhKNXlJa2lJa3pQVDF4bk1OUE9KUkRaNjJ4Zm9rZEV4SjVwVE9EdWtT?=
 =?utf-8?B?RHRlS2VMRWJVUkNycFpZckhoVElkRlhSK0tkeXdrZGFIZ0syUWRrNlFFdUpI?=
 =?utf-8?B?WndNbnN6cmp2OWE4UU1HUS9uQ3NoWDhHOHRyaHFlazMrc2ljaGU5S0Q4RDhl?=
 =?utf-8?B?NnA3OEFJNjBaQUJrSXBKbUxWdDVZaEg3clVYTzVnT2ZyTXdpWUxTZ1lIVDZU?=
 =?utf-8?B?TnBsenVuNU81TW9JSXlza2Z2R3E3b0VKa0lyS1RTd1NWSW45MmlHUHpDSURW?=
 =?utf-8?B?SVRWK2l4clc2QmFhZkJxMXBMOWFBb21oUmtpdjZPQStBRWsxZW96OEd2V2pu?=
 =?utf-8?B?cEtFUW03TmFNSXBHZ0FoWlU1L21RPT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: bcd69a70-4cf8-4763-3074-08d99fbeb82c
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 18:12:53.4101
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iPVukNfwiuHRzr4RpdrOrc0SZNT41IHu7bVRMR7AWl1lJp/9Cso5MyzVkifVsvLSiMGhrLlTQeezcdRHGfQK1rl8gC0nBaOD//peLAmXEVw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB4293
X-OriginatorOrg: citrix.com

On 04/11/2021 16:27, Ian Jackson wrote:
> Juergen Gross writes ("[PATCH-for-4.16 v2 1/2] configure: modify default of building rombios"):
>> The tools/configure script will default to build rombios if qemu
>> traditional is enabled. If rombios is being built, ipxe will be built
>> per default, too.
>>
>> This results in rombios and ipxe no longer being built by default when
>> disabling qemu traditional.
>>
>> Fix that be rearranging the dependencies:
> Andy, you asked for changes to the usage messages.  Are you happy ?
>
> Thanks,
> Ian.

LGTM.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 20:52:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 20:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221863.383765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijiA-0002zq-Ck; Thu, 04 Nov 2021 20:51:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221863.383765; Thu, 04 Nov 2021 20:51:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijiA-0002zj-9C; Thu, 04 Nov 2021 20:51:50 +0000
Received: by outflank-mailman (input) for mailman id 221863;
 Thu, 04 Nov 2021 20:51:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqP1=PX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1miji9-0002zd-7c
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 20:51:49 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 059d5e75-3db1-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 21:51:46 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id B8DB96120E;
 Thu,  4 Nov 2021 20:51:44 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 059d5e75-3db1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636059105;
	bh=NZt8sIiHyzU+dqFNBgvTX8SvkhLgbMvUZEtvyh7m6Rg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=W9p6K951rOr7rBl3bR9GcGs0FdShoSt7BWt2a6U0gwtbtIJQU0GWvcUM/N6nTxR46
	 6U/9fA5rKS+ng/0AxeUoWwQLTcVbiQZN4tEx09H7YUMcw96G6aSRVG8DfVi3byAuDp
	 n0UEVWrXzYitHGIwhxiBMQ4STXgPGZBReoMv5syqmDz8W4O7wdn3LOLD/r1DUoDS2U
	 V4dvyLIuI9nk6p2PNP9AAqc0yiDK/MHaYJsOM2il5hUiL2bgeGISMTiCMRpGWzpgWY
	 VPud1vEe6nNw3BO9f3KGGwDSXBtNjWRgw2hupNJlI6oSrnWAyPXwC9EHfDlovYPDxC
	 gj/I9485hxYRw==
Date: Thu, 4 Nov 2021 13:51:43 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <luca.fancellu@arm.com>
cc: xen-devel@lists.xenproject.org, bertrand.marquis@arm.com, wei.chen@arm.com, 
    iwj@xenproject.org, Stefano Stabellini <sstabellini@kernel.org>, 
    Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <20211104141206.25153-1-luca.fancellu@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111041350200.284830@ubuntu-linux-20-04-desktop>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-33341033-1636059105=:284830"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-33341033-1636059105=:284830
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Nov 2021, Luca Fancellu wrote:
> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
> ("arm/efi: Use dom0less configuration when using EFI boot") is
> introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.
> 
> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle
> inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
> handle is used later by efi_bs->HandleProtocol(...) inside
> get_parent_handle(...) when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL
> interface, causing Xen to stop the boot because of an EFI_INVALID_PARAMETER
> error.
> 
> Before the commit above, the function was never called because the
> logic was skipping the call when there were multiboot modules in the
> DT because the filesystem was never used and the bootloader had
> put in place all the right modules in memory and the addresses
> in the DT.
> 
> To fix the problem we allow the get_parent_handle(...) function to
> return a NULL handle on error and we check the usage of the function
> to handle the new use case. The function in fact should not prevent
> the boot even if the filesystem can't be used, because the DT and
> the modules could be put in place by the bootloader before running
> Xen and if xen,uefi-binary property is not used, there is no need
> for the filesystem.
> 
> Another problem is found when the UEFI stub tries to check if Dom0
> image or DomUs are present.
> The logic doesn't work when the UEFI stub is not responsible to load
> any modules, so the efi_check_dt_boot(...) return value is modified
> to return the number of multiboot module found and not only the number
> of module loaded by the stub.
> Taking the occasion to update the comment in handle_module_node(...)
> to explain why we return success even if xen,uefi-binary is not found.
> 
> Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI boot")
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>

For the ARM part (xen/arch/arm/efi/efi-boot.h):

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


To be honest the changes to xen/common/efi/boot.c look OK too, but I'll
reply to Jan's email about his suggestion


> ---
> Justification for integration in 4.16:
> Upside: allow booting xen from grub on arm64 when the stub doesn't load
>         any module.
> Downside: It's affecting the EFI boot path.
> Risk: It's not affecting x86 arch that works the same way as before.
>       If something is wrong it creates a problem on early boot and not at
>       runtime, so risk is low.
> 
> Tested in this configurations:
>  - Bootloader loads modules and specify them as multiboot modules in DT:
>    * combination of Dom0, DomUs, Dom0 and DomUs
>  - DT specifies multiboot modules in DT using xen,uefi-binary property:
>    * combination of Dom0, DomUs, Dom0 and DomUs
>  - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
>    other multiboot modules are listed for DomUs using xen,uefi-binary
>  - No multiboot modules in DT and no kernel entry in cfg file:
>    * proper error thrown
> 
> Changes in v2:
>  - Changed comment on DeviceHandle NULL (Jan)
>  - Removed fatal condition on handle NULL (Jan)
>  - Add more info about the EDK2+Grub2 issue to the commit msg (Jan)
>  - Removed modules_found from function signature and pass everything
>    on return (Stefano)
>  - Improved comment in handle_module_node
> 
> ---
>  xen/arch/arm/efi/efi-boot.h | 34 +++++++++++++++++++++++-----------
>  xen/common/efi/boot.c       | 28 +++++++++++++++++++++++++---
>  2 files changed, 48 insertions(+), 14 deletions(-)
> 
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index 8b88dd26a5..c3ae9751ab 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -702,6 +702,7 @@ static int __init allocate_module_file(EFI_FILE_HANDLE dir_handle,
>   * This function checks for the presence of the xen,uefi-binary property in the
>   * module, if found it loads the binary as module and sets the right address
>   * for the reg property into the module DT node.
> + * Returns 1 if module is multiboot,module, 0 if not, < 0 on error
>   */
>  static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
>                                       int module_node_offset,
> @@ -730,8 +731,8 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
>                                   &uefi_name_len);
>  
>      if ( !uefi_name_prop )
> -        /* Property not found */
> -        return 0;
> +        /* Property not found, but signal this is a multiboot,module */
> +        return 1;
>  
>      file_idx = get_module_file_index(uefi_name_prop, uefi_name_len);
>      if ( file_idx < 0 )
> @@ -795,19 +796,20 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
>          }
>      }
>  
> -    return 0;
> +    return 1;
>  }
>  
>  /*
>   * This function checks for boot modules under the domU guest domain node
>   * in the DT.
> - * Returns 0 on success, negative number on error.
> + * Returns number of multiboot,module found or negative number on error.
>   */
>  static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
>                                                int domain_node)
>  {
>      int module_node, addr_cells, size_cells, len;
>      const struct fdt_property *prop;
> +    unsigned int mb_modules_found = 0;
>  
>      /* Get #address-cells and #size-cells from domain node */
>      prop = fdt_get_property(fdt, domain_node, "#address-cells", &len);
> @@ -837,20 +839,22 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
>                                       size_cells, true);
>          if ( ret < 0 )
>              return ret;
> +
> +        mb_modules_found += ret;
>      }
>  
> -    return 0;
> +    return mb_modules_found;
>  }
>  
>  /*
>   * This function checks for xen domain nodes under the /chosen node for possible
>   * dom0 and domU guests to be loaded.
> - * Returns the number of modules loaded or a negative number for error.
> + * Returns the number of multiboot modules found or a negative number for error.
>   */
>  static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>  {
>      int chosen, node, addr_len, size_len;
> -    unsigned int i = 0;
> +    unsigned int i = 0, modules_found = 0;
>  
>      /* Check for the chosen node in the current DTB */
>      chosen = setup_chosen_node(fdt, &addr_len, &size_len);
> @@ -865,15 +869,23 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>            node > 0;
>            node = fdt_next_subnode(fdt, node) )
>      {
> +        int ret;
> +
>          if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
>          {
>              /* Found a node with compatible xen,domain; handle this node. */
> -            if ( handle_dom0less_domain_node(dir_handle, node) < 0 )
> +            ret = handle_dom0less_domain_node(dir_handle, node);
> +            if ( ret < 0 )
>                  return ERROR_DT_MODULE_DOMU;
>          }
> -        else if ( handle_module_node(dir_handle, node, addr_len, size_len,
> -                                     false) < 0 )
> +        else
> +        {
> +            ret = handle_module_node(dir_handle, node, addr_len, size_len,
> +                                     false);
> +            if ( ret < 0 )
>                   return ERROR_DT_MODULE_DOM0;
> +        }
> +        modules_found += ret;
>      }
>  
>      /* Free boot modules file names if any */
> @@ -883,7 +895,7 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>          efi_bs->FreePool(modules[i].name);
>      }
>  
> -    return modules_idx;
> +    return modules_found;
>  }
>  
>  static void __init efi_arch_cpu(void)
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 392ff3ac9b..112b7e7571 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
>      CHAR16 *pathend, *ptr;
>      EFI_STATUS ret;
>  
> +    /*
> +     * Grub2 running on top of EDK2 has been observed to supply a NULL
> +     * DeviceHandle. We can't use that to gain access to the filesystem.
> +     * However the system can still boot if it doesn’t require access to the
> +     * filesystem.
> +     */
> +    if ( !loaded_image->DeviceHandle )
> +        return NULL;
> +
>      do {
>          EFI_FILE_IO_INTERFACE *fio;
>  
> @@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>      EFI_STATUS ret;
>      const CHAR16 *what = NULL;
>  
> +    if ( !dir_handle )
> +        blexit(L"Error: No access to the filesystem");
>      if ( !name )
>          PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
>      ret = dir_handle->Open(dir_handle, &FileHandle, name,
> @@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
>              EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
>                                                         &file_name);
>  
> -            handle->Close(handle);
> -            *argv = file_name;
> +            if ( !handle )
> +            {
> +                PrintErr(L"Error retrieving image name: no filesystem access."
> +                         L" Setting default to xen.efi");
> +                PrintErr(newline);
> +                *argv = L"xen.efi";
> +            }
> +            else
> +            {
> +                handle->Close(handle);
> +                *argv = file_name;
> +            }
>          }
>  
>          name.s = get_value(&cfg, section.s, "options");
> @@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
>      /* Get the number of boot modules specified on the DT or an error (<0) */
>      dt_modules_found = efi_check_dt_boot(dir_handle);
>  
> -    dir_handle->Close(dir_handle);
> +    if ( dir_handle )
> +        dir_handle->Close(dir_handle);
>  
>      if ( dt_modules_found < 0 )
>          /* efi_check_dt_boot throws some error */
> -- 
> 2.17.1
> 
--8323329-33341033-1636059105=:284830--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 20:56:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 20:56:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221871.383777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijmR-0003e1-V1; Thu, 04 Nov 2021 20:56:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221871.383777; Thu, 04 Nov 2021 20:56:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijmR-0003du-R9; Thu, 04 Nov 2021 20:56:15 +0000
Received: by outflank-mailman (input) for mailman id 221871;
 Thu, 04 Nov 2021 20:56:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dXG6=PX=redhat.com=eblake@srs-se1.protection.inumbo.net>)
 id 1mijmQ-0003do-Ft
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 20:56:14 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [216.205.24.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1ee97f3-3db1-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 21:56:09 +0100 (CET)
Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com
 [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-593-E_i9VflPPPOlxP1i9h_oYw-1; Thu, 04 Nov 2021 16:56:06 -0400
Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com
 [10.5.11.22])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5A3121006AA3;
 Thu,  4 Nov 2021 20:56:03 +0000 (UTC)
Received: from redhat.com (ovpn-112-104.phx2.redhat.com [10.3.112.104])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 6D6EB1017CF5;
 Thu,  4 Nov 2021 20:54:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1ee97f3-3db1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1636059367;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IfcsgPcnlI/5XKJkTvjUo3gZAIv46LvfuSL2K44V28E=;
	b=E+GlgoTrurMjNLoiwiLBJwIJuYPeIDB2ruTvzl0HVcx6KajwxG/564tnS4AjeH6IvvJdpz
	wJBb8E24V0+yMu1jhxOZ0q9LH+b0zJID47Z/U6s07ikeJvCdNLKCGx7PMTeOUYDBp3J64O
	JClb2WVMj7vs4oObf3xdqzSemONGMXY=
X-MC-Unique: E_i9VflPPPOlxP1i9h_oYw-1
Date: Thu, 4 Nov 2021 15:54:28 -0500
From: Eric Blake <eblake@redhat.com>
To: Juan Quintela <quintela@redhat.com>
Cc: qemu-devel@nongnu.org, Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	xen-devel@lists.xenproject.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= <philmd@redhat.com>,
	kvm@vger.kernel.org, Peter Xu <peterx@redhat.com>,
	=?utf-8?Q?Marc-Andr=C3=A9?= Lureau <marcandre.lureau@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Hyman =?utf-8?B?SHVhbmcow6nCu+KAnsOl4oC54oChKQ==?= <huangy81@chinatelecom.cn>
Subject: Re: [PULL 04/20] migration/dirtyrate: introduce struct and adjust
 DirtyRateStat
Message-ID: <20211104205428.stcjcd54moksfep2@redhat.com>
References: <20211101220912.10039-1-quintela@redhat.com>
 <20211101220912.10039-5-quintela@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211101220912.10039-5-quintela@redhat.com>
User-Agent: NeoMutt/20211029-10-fe244a
X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22

On Mon, Nov 01, 2021 at 11:08:56PM +0100, Juan Quintela wrote:
> From: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
> 
> introduce "DirtyRateMeasureMode" to specify what method should be
> used to calculate dirty rate, introduce "DirtyRateVcpu" to store
> dirty rate for each vcpu.
> 
> use union to store stat data of specific mode
> 
> Signed-off-by: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
> Message-Id: <661c98c40f40e163aa58334337af8f3ddf41316a.1624040308.git.huangy81@chinatelecom.cn>
> Reviewed-by: Peter Xu <peterx@redhat.com>
> Reviewed-by: Juan Quintela <quintela@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
>  qapi/migration.json   | 30 +++++++++++++++++++++++++++
>  migration/dirtyrate.h | 21 +++++++++++++++----
>  migration/dirtyrate.c | 48 +++++++++++++++++++++++++------------------
>  3 files changed, 75 insertions(+), 24 deletions(-)
> 
> diff --git a/qapi/migration.json b/qapi/migration.json
> index 9aa8bc5759..94eece16e1 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -1731,6 +1731,21 @@
>  { 'event': 'UNPLUG_PRIMARY',
>    'data': { 'device-id': 'str' } }
>  
> +##
> +# @DirtyRateVcpu:
> +#
> +# Dirty rate of vcpu.
> +#
> +# @id: vcpu index.
> +#
> +# @dirty-rate: dirty rate.
> +#
> +# Since: 6.1

I'm a bit late on the review, since this pull request is already in.
We'll want a followup patch that changes this to mention 6.2, to
correctly match the release that will first have it.  Such a followup
is safe during freeze, since it is doc-only.

> +#
> +##
> +{ 'struct': 'DirtyRateVcpu',
> +  'data': { 'id': 'int', 'dirty-rate': 'int64' } }
> +
>  ##
>  # @DirtyRateStatus:
>  #

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 20:56:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 20:56:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221872.383788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijmY-0003wU-8E; Thu, 04 Nov 2021 20:56:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221872.383788; Thu, 04 Nov 2021 20:56:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijmY-0003wN-2o; Thu, 04 Nov 2021 20:56:22 +0000
Received: by outflank-mailman (input) for mailman id 221872;
 Thu, 04 Nov 2021 20:56:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqP1=PX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mijmX-0003do-7l
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 20:56:21 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8cb80b9-3db1-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 21:56:20 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 1208160E98;
 Thu,  4 Nov 2021 20:56:18 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8cb80b9-3db1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636059378;
	bh=36u8fpAzAfcjW9ta+qI0K6hG3z1d9HGHzCpBs72u2Q8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=e9g4wzh4QwYcxjgBHjRkThwYZAOX4gMBgxCqUwz21UbzWXtzgUwlipOfNfgz5l6Eb
	 iEa54L3vcnUZNiUEN2ywSZkH6Go8zFPh6+1HpnhBtkbkbUnrILzmadhJlKWRpHLjaV
	 51vGZlSfI0hav6q3bLHfdpAjiejrieV9tcgeEeV6uSBfzaXp4nmMmg0tVDx4owxltG
	 bkEk+lhuF8zDtNup3mDD94P/Hko+tiTLIjsCJ+3C4hScPiQ6uv0e5IswlNA3fIhzYX
	 dJedVhwVjYjWSvRXUfh2A8523J2IZS+u1Ig9wnU7Ms07TCBc6hPoAjesbSlAFnDROb
	 6owqK+9gux5WA==
Date: Thu, 4 Nov 2021 13:56:16 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Luca Fancellu <luca.fancellu@arm.com>, bertrand.marquis@arm.com, 
    wei.chen@arm.com, iwj@xenproject.org, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
References: <20211104141206.25153-1-luca.fancellu@arm.com> <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-122792740-1636059378=:284830"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-122792740-1636059378=:284830
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Nov 2021, Jan Beulich wrote:
> On 04.11.2021 15:12, Luca Fancellu wrote:
> > --- a/xen/common/efi/boot.c
> > +++ b/xen/common/efi/boot.c
> > @@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> >      CHAR16 *pathend, *ptr;
> >      EFI_STATUS ret;
> >  
> > +    /*
> > +     * Grub2 running on top of EDK2 has been observed to supply a NULL
> > +     * DeviceHandle. We can't use that to gain access to the filesystem.
> > +     * However the system can still boot if it doesn’t require access to the
> > +     * filesystem.
> > +     */
> > +    if ( !loaded_image->DeviceHandle )
> > +        return NULL;
> > +
> >      do {
> >          EFI_FILE_IO_INTERFACE *fio;
> >  
> > @@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
> >      EFI_STATUS ret;
> >      const CHAR16 *what = NULL;
> >  
> > +    if ( !dir_handle )
> > +        blexit(L"Error: No access to the filesystem");
> >      if ( !name )
> >          PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
> >      ret = dir_handle->Open(dir_handle, &FileHandle, name,
> > @@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >              EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
> >                                                         &file_name);
> >  
> > -            handle->Close(handle);
> > -            *argv = file_name;
> > +            if ( !handle )
> > +            {
> > +                PrintErr(L"Error retrieving image name: no filesystem access."
> > +                         L" Setting default to xen.efi");
> > +                PrintErr(newline);
> > +                *argv = L"xen.efi";
> > +            }
> > +            else
> > +            {
> > +                handle->Close(handle);
> > +                *argv = file_name;
> > +            }
> >          }
> >  
> >          name.s = get_value(&cfg, section.s, "options");
> > @@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >      /* Get the number of boot modules specified on the DT or an error (<0) */
> >      dt_modules_found = efi_check_dt_boot(dir_handle);
> >  
> > -    dir_handle->Close(dir_handle);
> > +    if ( dir_handle )
> > +        dir_handle->Close(dir_handle);
> >  
> >      if ( dt_modules_found < 0 )
> >          /* efi_check_dt_boot throws some error */
> > 
> 
> I'm sorry, but I think we need to take a step back here and revisit
> the earlier change. If that hadn't moved obtaining dir_handle out by
> one level of scope, nothing bad would have happened to the case that
> you're now trying to fix, I understand? So perhaps that part wants
> undoing, with efi_check_dt_boot() instead getting passed loaded_image.
> That way, down the call tree the needed handle can be obtained via
> another call to get_parent_handle(), and quite likely in the scenario
> you're trying to fix here execution wouldn't even make it there. This
> then wouldn't be much different to the image name retrieval calling
> get_parent_handle() a 2nd time, rather than trying to re-use
> dir_handle.
> 
> Net effect being that I think get_parent_handle() would then again
> only be called when the returned handle is actually needed, and hence
> when failure of HandleProtocol() (for DeviceHandle being NULL just
> like for any other reason) is indeed an error that needs reporting.

In my opinion the current version is good enough. Regardless, I looked
at your suggestion into details. As it took me some time to understand
it, I thought I would share the code changes that I think correspond to
what you wrote. Does everything check out?

If so, I think it looks fine, maybe a bit better than the current
version. I'll leave that to you and Luca.


diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index c3ae9751ab..9dcd8547cd 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -8,6 +8,8 @@
 #include <asm/setup.h>
 #include <asm/smp.h>
 
+extern EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
+                                                CHAR16 **leaf);
 typedef struct {
     char *name;
     unsigned int name_len;
@@ -54,7 +56,7 @@ static int handle_module_node(EFI_FILE_HANDLE dir_handle,
                               bool is_domu_module);
 static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
                                        int domain_node);
-static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
+static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
 
 #define DEVICE_TREE_GUID \
 {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0}}
@@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
  * dom0 and domU guests to be loaded.
  * Returns the number of multiboot modules found or a negative number for error.
  */
-static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
+static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
 {
     int chosen, node, addr_len, size_len;
     unsigned int i = 0, modules_found = 0;
+    EFI_FILE_HANDLE dir_handle;
+    CHAR16 *file_name;
+
+    dir_handle = get_parent_handle(loaded_image, &file_name);
 
     /* Check for the chosen node in the current DTB */
     chosen = setup_chosen_node(fdt, &addr_len, &size_len);
@@ -895,6 +901,8 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
         efi_bs->FreePool(modules[i].name);
     }
 
+    dir_handle->Close(dir_handle);
+
     return modules_found;
 }
 
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 112b7e7571..2407671a7d 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -167,7 +167,7 @@ static void __init PrintErr(const CHAR16 *s)
 }
 
 #ifndef CONFIG_HAS_DEVICE_TREE
-static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
+static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
 {
     return 0;
 }
@@ -439,8 +439,8 @@ static unsigned int __init get_argv(unsigned int argc, CHAR16 **argv,
     return argc;
 }
 
-static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
-                                                CHAR16 **leaf)
+EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
+                                         CHAR16 **leaf)
 {
     static EFI_GUID __initdata fs_protocol = SIMPLE_FILE_SYSTEM_PROTOCOL;
     static CHAR16 __initdata buffer[512];
@@ -1236,9 +1236,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
 
     efi_arch_relocate_image(0);
 
-    /* Get the file system interface. */
-    dir_handle = get_parent_handle(loaded_image, &file_name);
-
     if ( use_cfg_file )
     {
         UINTN depth, cols, rows, size;
@@ -1251,6 +1248,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
 
         gop = efi_get_gop();
 
+        /* Get the file system interface. */
+        dir_handle = get_parent_handle(loaded_image, &file_name);
+
         /* Read and parse the config file. */
         if ( read_section(loaded_image, L"config", &cfg, NULL) )
             PrintStr(L"Using builtin config file\r\n");
@@ -1344,18 +1344,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
             EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
                                                        &file_name);
 
-            if ( !handle )
-            {
-                PrintErr(L"Error retrieving image name: no filesystem access."
-                         L" Setting default to xen.efi");
-                PrintErr(newline);
-                *argv = L"xen.efi";
-            }
-            else
-            {
-                handle->Close(handle);
-                *argv = file_name;
-            }
+            handle->Close(handle);
+            *argv = file_name;
         }
 
         name.s = get_value(&cfg, section.s, "options");
@@ -1383,15 +1373,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
         efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
         cfg.addr = 0;
 
+        dir_handle->Close(dir_handle);
+
         if ( gop && !base_video )
             gop_mode = efi_find_gop_mode(gop, cols, rows, depth);
     }
 
     /* Get the number of boot modules specified on the DT or an error (<0) */
-    dt_modules_found = efi_check_dt_boot(dir_handle);
-
-    if ( dir_handle )
-        dir_handle->Close(dir_handle);
+    dt_modules_found = efi_check_dt_boot(loaded_image);
 
     if ( dt_modules_found < 0 )
         /* efi_check_dt_boot throws some error */
--8323329-122792740-1636059378=:284830--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 21:01:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 21:01:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221885.383798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijqy-0005i4-Sy; Thu, 04 Nov 2021 21:00:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221885.383798; Thu, 04 Nov 2021 21:00:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijqy-0005hx-Pw; Thu, 04 Nov 2021 21:00:56 +0000
Received: by outflank-mailman (input) for mailman id 221885;
 Thu, 04 Nov 2021 21:00:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqP1=PX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mijqx-0005hr-Al
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 21:00:55 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c4f3916-3db2-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 22:00:54 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id D51906124A;
 Thu,  4 Nov 2021 21:00:52 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c4f3916-3db2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636059653;
	bh=rkWwZl1orBqN8GfHdUHU+9HlIMR3FOjWj6Imce2oXAs=;
	h=Date:From:To:cc:Subject:From;
	b=GkzOdtO+C5ccaeaxqlYOxjDvwtp76j/WEvVfy1AAaJnDyxpiIEJVJP12PXMK5eDR5
	 i3JgNVEzMmvhLU3po+/0yiAIvKJ9RfX7CdOhjJrnznjPVe5QylnesrHRjORQgDoZb4
	 IUoXFyq9xWc7ufKBindizRoeo7qD/B+i+Xpd6Cx6WEjFeLQkyf/K4rXh3xXynA1/+E
	 PjDnFzHJOWPvyz9Of+6vztZIPqRdw6SE9CQPqacH+sFxtODiczwsRLRRhbXVXcThEk
	 X22khIgNidiAn0WxdZ2wa87brgtfmDnk6tTNPaGDuf2HLvTPwXSWWnzpYYBu8fVBBx
	 9LzsxGKRsgVtg==
Date: Thu, 4 Nov 2021 14:00:52 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: sstabellini@kernel.org, julien@xen.org, bertrand.marquis@arm.com, 
    Volodymyr_Babchuk@epam.com
Subject: [PATCH] MAINTAINERS: add Bertrand to the ARM reviewers
Message-ID: <alpine.DEB.2.22.394.2111041357580.284830@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII


Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>

diff --git a/MAINTAINERS b/MAINTAINERS
index 9be4ad653a..4956db1011 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -232,6 +232,7 @@ ARM (W/ VIRTUALISATION EXTENSIONS) ARCHITECTURE
 M:	Stefano Stabellini <sstabellini@kernel.org>
 M:	Julien Grall <julien@xen.org>
 R:	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
+R:	Bertrand Marquis <bertrand.marquis@arm.com>
 S:	Supported
 L:	xen-devel@lists.xenproject.org
 F:	docs/misc/arm/


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 21:08:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 21:08:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221893.383810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijy2-0006NA-LS; Thu, 04 Nov 2021 21:08:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221893.383810; Thu, 04 Nov 2021 21:08:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mijy2-0006N3-HP; Thu, 04 Nov 2021 21:08:14 +0000
Received: by outflank-mailman (input) for mailman id 221893;
 Thu, 04 Nov 2021 21:08:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t6+c=PX=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1mijy1-0006Mx-QJ
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 21:08:14 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2060f.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51a734a6-3db3-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 22:08:12 +0100 (CET)
Received: from DU2PR04CA0078.eurprd04.prod.outlook.com (2603:10a6:10:232::23)
 by VI1PR08MB3695.eurprd08.prod.outlook.com (2603:10a6:803:c4::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Thu, 4 Nov
 2021 21:08:04 +0000
Received: from DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:232:cafe::85) by DU2PR04CA0078.outlook.office365.com
 (2603:10a6:10:232::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Thu, 4 Nov 2021 21:08:04 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT036.mail.protection.outlook.com (10.152.20.185) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Thu, 4 Nov 2021 21:08:03 +0000
Received: ("Tessian outbound 2bb1f94ba47e:v108");
 Thu, 04 Nov 2021 21:08:03 +0000
Received: from 001c86edd1b5.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 728837AD-63E8-4068-9BB7-9145D32321D8.1; 
 Thu, 04 Nov 2021 21:07:53 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 001c86edd1b5.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 04 Nov 2021 21:07:53 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PR2PR08MB4778.eurprd08.prod.outlook.com (2603:10a6:101:21::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Thu, 4 Nov
 2021 21:07:50 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Thu, 4 Nov 2021
 21:07:50 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO2P265CA0057.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:60::21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Thu, 4 Nov 2021 21:07:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51a734a6-3db3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eAqMqeLlUmdZdU4YPJ925G9WTajx+NrU2nRO88OXSY0=;
 b=WNGytKE09EKuao3vRgF85KYbGxEJsuBmRRPA9uo3vXbJl3XjdJ8BfLnpE6kBaS9XoewVnHAngQ7kPbzGylMnyby9AC2YmYrDHW0Zq1mBjfH1FfSoY+iBv57+Mc5HprCCj7ZQTw9Pi6EM8qmlnG+5FDnNqPGTlBPfx16I1uKzpx8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 112ae79f2d09ca4d
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=a+YyINbtx+Hs6fDg2q80f/hGhgSWp3lkx+WI7Mw8/zFBfUG1cnBtG20tXg37Y91H5pxTHE3CJM15Kv3KYTN5vOCNjOxm5Y0c3BnusmwxE80uCNVDze/wjhArz5ZK+N1R1/ZW2MRfa+gDfwk45sC8RqOmGqbEg0+5IM0ccmQrY6jhaTT/QMAjGkv0my/mucW7SDzY5oMh0L9AvY6nLeECYk0s2Yxkn6W5VQ1Fju1oFeXrLDzl3ZsxmtbZEoTw86rJdp6wfCeLogBL3TgBPLsUV19PIqnGyd7UM2alA90+YbeOvshIa/J7LveiRNOe/AUTat3yiroFs9vzj+aLUo+kAg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eAqMqeLlUmdZdU4YPJ925G9WTajx+NrU2nRO88OXSY0=;
 b=ag0BL+sHcLfks7AiRLaXg1Es99km8cEQIvzwRU4ZWYZBs4imBVifiAZlNNROMZH3yccIz1U3MiGa3TYJH6WhZxfrYqFEgnYZ3L2YFGqj2q8pHFHJXG/Pu9fua6YmtAYZ5MWyXLT08HL0NSTAqzSLcdqSal8FH2gCsNp1k8ZH0ft/V/Qa0H8J9zdYov0Flrb1YTxV2kMNTUbnxBc239h1EfPYAYnVqqM2/fHtNhbLy/VT5mW5OndowHIT3G14Tw1srUIibjmlCtzgGF46psTGkO5gk4NlHPk4uBNxzB8zDM0Vc713JwCoTTg06P63IcmOZhXq8w+JMmbDvO0ExQtDvQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eAqMqeLlUmdZdU4YPJ925G9WTajx+NrU2nRO88OXSY0=;
 b=WNGytKE09EKuao3vRgF85KYbGxEJsuBmRRPA9uo3vXbJl3XjdJ8BfLnpE6kBaS9XoewVnHAngQ7kPbzGylMnyby9AC2YmYrDHW0Zq1mBjfH1FfSoY+iBv57+Mc5HprCCj7ZQTw9Pi6EM8qmlnG+5FDnNqPGTlBPfx16I1uKzpx8=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
Date: Thu, 4 Nov 2021 21:07:43 +0000
Cc: Jan Beulich <jbeulich@suse.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
To: Stefano Stabellini <sstabellini@kernel.org>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO2P265CA0057.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:60::21) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d42c212a-5c8d-4f97-e6fc-08d99fd730f8
X-MS-TrafficTypeDiagnostic: PR2PR08MB4778:|VI1PR08MB3695:
X-Microsoft-Antispam-PRVS:
	<VI1PR08MB3695DEE2E1C5261540FC0BE2E48D9@VI1PR08MB3695.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:366;OLM:366;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 sMQNKaVzUMqWUfCBVx3bCsWjDLZLkH2YuVVm0knRkWbLh1UhT7gDcu1UGUHaxzjAGX/nZx9fe+zMClEXnX49Mv9MGWamWsCCGjJjI0B+OICF5Btg+Q33IuYLDIXhwTcGRN5ldUlhdCf2m4HsAnTo5nxzaXAEjv+T7BHQJMESkQwspcWqu2FA14P1XxJzdWiBNq4YoG4Jb39L5xS0/8EWz0B97vHjeYMiFLfcV41wLLGjB3aHb55QOOtfkQ74XcouXSrCZQzIacb62OYzA/mpqBh9GXpSibH5/F9O3Qpn8S3LvZvgdXkBUorlWQcfWpM6ieI9X6Ot2JGfmy2rtu3agFchxG4dv8c7w/ysptLdqpQ5XBZH8mt/YX6xq8bbr89rNIzqESl/qCSbOFWAVYJT9zqx4FNcHiZw8uCIBua0PRhiBTnDHpPDIzLcpYBzCL78ONNqev7Pa4fg46pYIg9eT2U0prX6iWXK0fZn1DdQf/PIAsIPaoVwCqwv2/OHmPotqLxNGucUHqzwe3r61T/PORQDoieoR2KNz8HxmzC9rLqYxkc2rn6TZ+4/XxQXg9WbiVLhFmJr2p1A8Pr9gNcDRj9MiF3wEQ0XbuhGz64TJghQlZS455ToVJnKqKzociJPkjoYZpka3i0QvAvTnb/1QO0oLMNuWdR8dIgmclU5Azw3jOAH8SedFAcC23kmZ3m5R4bfGdj8VA3E2IanQ+8v5etzuc6t5uSsai7L/s4SZbI=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38100700002)(33656002)(8936002)(66556008)(66476007)(956004)(66946007)(38350700002)(8676002)(186003)(6666004)(44832011)(6506007)(26005)(2616005)(6916009)(54906003)(36756003)(2906002)(508600001)(316002)(86362001)(4326008)(6486002)(83380400001)(5660300002)(53546011)(52116002)(6512007)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4778
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f66d6a60-eddd-4f8d-5874-08d99fd728d4
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	s4vtpOeBL5gCV1HBIJtlZffE0cCLYZp9jU8EyZXb/+kgjjBYEKm2lQaK0J4AfqPDNkw+M0ioNzGgRe5CvwQ3eqZaI8R8fA2Bm1/3gxsgLympfwE0acSfYCUFTrK9uk2IYit42dq0HkzXIxJmwjIztSi8q785BUhcwA8+uuglMBIQVThe/sqZh3IbI9jmhT4XaEGsSUhEPd6mKCDdSapgIuq3G5tN6rMHr5tCnbvaaT6vNqpvjvKGxWxZZCFvkV6wPXy9RBHFbFeospj6Fd/inNli+pfTlqPoNM72aFZOccQ5MO+syGRseBCPJDh6hT5eo3gqDlkbB+Z60nGa4ChG02+AiybF9Qz/5oTiEzdxpU0zdsPDSPZjm1qwWlbskPPc8+hEwyno8gSm/gPfTEFQ9KZheOyGXCZOKjtb0aQOEUHM9kQY072RnlcVSbTfmjU82cpCWbfJ/CVah5nXUBdzkFj5P9EXxdV0AQPYiA9k7BRdz+zYKAroXlgixUdyq0FczXNtqfEKp76JZilht/O2CbQI/Hn3Ii1KzEl9cZABF3MNaemeCvcTci0imW6cJ/vo+OaMONk0YoEameyH1nOyuh7O84w63JvtYAGME7Y26/EYWx7qoVeQbNhzmcO3d4brWJcwtieYCDcxcRX/sbB4zEZLqVk2adIQ6KKa8sb0ezN0+EpcOmKp4o2TzjpAUVT3IqvVeBz4ATbmx8NfqM8nSw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(36860700001)(316002)(6486002)(70206006)(70586007)(54906003)(33656002)(956004)(6512007)(6666004)(2616005)(6862004)(8936002)(2906002)(44832011)(4326008)(26005)(82310400003)(81166007)(53546011)(6506007)(8676002)(336012)(86362001)(5660300002)(36756003)(47076005)(508600001)(83380400001)(186003)(356005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 21:08:03.7894
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d42c212a-5c8d-4f97-e6fc-08d99fd730f8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3695



> On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.org> wrot=
e:
>=20
> On Thu, 4 Nov 2021, Jan Beulich wrote:
>> On 04.11.2021 15:12, Luca Fancellu wrote:
>>> --- a/xen/common/efi/boot.c
>>> +++ b/xen/common/efi/boot.c
>>> @@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(EF=
I_LOADED_IMAGE *loaded_image,
>>>     CHAR16 *pathend, *ptr;
>>>     EFI_STATUS ret;
>>>=20
>>> +    /*
>>> +     * Grub2 running on top of EDK2 has been observed to supply a NULL
>>> +     * DeviceHandle. We can't use that to gain access to the filesyste=
m.
>>> +     * However the system can still boot if it doesn=E2=80=99t require=
 access to the
>>> +     * filesystem.
>>> +     */
>>> +    if ( !loaded_image->DeviceHandle )
>>> +        return NULL;
>>> +
>>>     do {
>>>         EFI_FILE_IO_INTERFACE *fio;
>>>=20
>>> @@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_ha=
ndle, CHAR16 *name,
>>>     EFI_STATUS ret;
>>>     const CHAR16 *what =3D NULL;
>>>=20
>>> +    if ( !dir_handle )
>>> +        blexit(L"Error: No access to the filesystem");
>>>     if ( !name )
>>>         PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
>>>     ret =3D dir_handle->Open(dir_handle, &FileHandle, name,
>>> @@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TAB=
LE *SystemTable)
>>>             EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>>>                                                        &file_name);
>>>=20
>>> -            handle->Close(handle);
>>> -            *argv =3D file_name;
>>> +            if ( !handle )
>>> +            {
>>> +                PrintErr(L"Error retrieving image name: no filesystem =
access."
>>> +                         L" Setting default to xen.efi");
>>> +                PrintErr(newline);
>>> +                *argv =3D L"xen.efi";
>>> +            }
>>> +            else
>>> +            {
>>> +                handle->Close(handle);
>>> +                *argv =3D file_name;
>>> +            }
>>>         }
>>>=20
>>>         name.s =3D get_value(&cfg, section.s, "options");
>>> @@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABL=
E *SystemTable)
>>>     /* Get the number of boot modules specified on the DT or an error (=
<0) */
>>>     dt_modules_found =3D efi_check_dt_boot(dir_handle);
>>>=20
>>> -    dir_handle->Close(dir_handle);
>>> +    if ( dir_handle )
>>> +        dir_handle->Close(dir_handle);
>>>=20
>>>     if ( dt_modules_found < 0 )
>>>         /* efi_check_dt_boot throws some error */
>>>=20
>>=20
>> I'm sorry, but I think we need to take a step back here and revisit
>> the earlier change. If that hadn't moved obtaining dir_handle out by
>> one level of scope, nothing bad would have happened to the case that
>> you're now trying to fix, I understand? So perhaps that part wants
>> undoing, with efi_check_dt_boot() instead getting passed loaded_image.
>> That way, down the call tree the needed handle can be obtained via
>> another call to get_parent_handle(), and quite likely in the scenario
>> you're trying to fix here execution wouldn't even make it there. This
>> then wouldn't be much different to the image name retrieval calling
>> get_parent_handle() a 2nd time, rather than trying to re-use
>> dir_handle.
>>=20
>> Net effect being that I think get_parent_handle() would then again
>> only be called when the returned handle is actually needed, and hence
>> when failure of HandleProtocol() (for DeviceHandle being NULL just
>> like for any other reason) is indeed an error that needs reporting.
>=20
> In my opinion the current version is good enough. Regardless, I looked
> at your suggestion into details. As it took me some time to understand
> it, I thought I would share the code changes that I think correspond to
> what you wrote. Does everything check out?
>=20
> If so, I think it looks fine, maybe a bit better than the current
> version. I'll leave that to you and Luca.
>=20
>=20
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index c3ae9751ab..9dcd8547cd 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -8,6 +8,8 @@
> #include <asm/setup.h>
> #include <asm/smp.h>
>=20
> +extern EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded=
_image,
> +                                                CHAR16 **leaf);
> typedef struct {
>     char *name;
>     unsigned int name_len;
> @@ -54,7 +56,7 @@ static int handle_module_node(EFI_FILE_HANDLE dir_handl=
e,
>                               bool is_domu_module);
> static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
>                                        int domain_node);
> -static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
> +static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
>=20
> #define DEVICE_TREE_GUID \
> {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0=
xe0}}
> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(EFI_F=
ILE_HANDLE dir_handle,
>  * dom0 and domU guests to be loaded.
>  * Returns the number of multiboot modules found or a negative number for=
 error.
>  */
> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> {
>     int chosen, node, addr_len, size_len;
>     unsigned int i =3D 0, modules_found =3D 0;
> +    EFI_FILE_HANDLE dir_handle;
> +    CHAR16 *file_name;
> +
> +    dir_handle =3D get_parent_handle(loaded_image, &file_name);

We can=E2=80=99t use get_parent_handle here because we will end up with the=
 same problem,
we would need to use the filesystem if and only if we need to use it, so th=
e way I see
is to pass loaded_image down to the stack until allocate_module_file(=E2=80=
=A6), in this
function we can use get_parent_handle(=E2=80=A6) because the user wants us =
to do that.
The downside is that we must close the handle there, so for each loaded fil=
e we will
request and close the handle. Is this something we don=E2=80=99t bother too=
 much?

>=20
>     /* Check for the chosen node in the current DTB */
>     chosen =3D setup_chosen_node(fdt, &addr_len, &size_len);
> @@ -895,6 +901,8 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE d=
ir_handle)
>         efi_bs->FreePool(modules[i].name);
>     }
>=20
> +    dir_handle->Close(dir_handle);
> +
>     return modules_found;
> }
>=20
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 112b7e7571..2407671a7d 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -167,7 +167,7 @@ static void __init PrintErr(const CHAR16 *s)
> }
>=20
> #ifndef CONFIG_HAS_DEVICE_TREE
> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> {
>     return 0;
> }
> @@ -439,8 +439,8 @@ static unsigned int __init get_argv(unsigned int argc=
, CHAR16 **argv,
>     return argc;
> }
>=20
> -static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded=
_image,
> -                                                CHAR16 **leaf)
> +EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> +                                         CHAR16 **leaf)
> {
>     static EFI_GUID __initdata fs_protocol =3D SIMPLE_FILE_SYSTEM_PROTOCO=
L;
>     static CHAR16 __initdata buffer[512];
> @@ -1236,9 +1236,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE =
*SystemTable)
>=20
>     efi_arch_relocate_image(0);
>=20
> -    /* Get the file system interface. */
> -    dir_handle =3D get_parent_handle(loaded_image, &file_name);
> -
>     if ( use_cfg_file )
>     {
>         UINTN depth, cols, rows, size;
> @@ -1251,6 +1248,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE =
*SystemTable)
>=20
>         gop =3D efi_get_gop();
>=20
> +        /* Get the file system interface. */
> +        dir_handle =3D get_parent_handle(loaded_image, &file_name);
> +
>         /* Read and parse the config file. */
>         if ( read_section(loaded_image, L"config", &cfg, NULL) )
>             PrintStr(L"Using builtin config file\r\n");
> @@ -1344,18 +1344,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE=
 *SystemTable)
>             EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>                                                        &file_name);
>=20
> -            if ( !handle )
> -            {
> -                PrintErr(L"Error retrieving image name: no filesystem ac=
cess."
> -                         L" Setting default to xen.efi");
> -                PrintErr(newline);
> -                *argv =3D L"xen.efi";
> -            }
> -            else
> -            {
> -                handle->Close(handle);
> -                *argv =3D file_name;
> -            }
> +            handle->Close(handle);
> +            *argv =3D file_name;
>         }
>=20
>         name.s =3D get_value(&cfg, section.s, "options");
> @@ -1383,15 +1373,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABL=
E *SystemTable)
>         efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
>         cfg.addr =3D 0;
>=20
> +        dir_handle->Close(dir_handle);
> +
>         if ( gop && !base_video )
>             gop_mode =3D efi_find_gop_mode(gop, cols, rows, depth);
>     }
>=20
>     /* Get the number of boot modules specified on the DT or an error (<0=
) */
> -    dt_modules_found =3D efi_check_dt_boot(dir_handle);
> -
> -    if ( dir_handle )
> -        dir_handle->Close(dir_handle);
> +    dt_modules_found =3D efi_check_dt_boot(loaded_image);
>=20
>     if ( dt_modules_found < 0 )
>         /* efi_check_dt_boot throws some error */



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 21:36:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 21:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221900.383821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mikOo-00014L-Ll; Thu, 04 Nov 2021 21:35:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221900.383821; Thu, 04 Nov 2021 21:35:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mikOo-00014E-Ia; Thu, 04 Nov 2021 21:35:54 +0000
Received: by outflank-mailman (input) for mailman id 221900;
 Thu, 04 Nov 2021 21:35:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqP1=PX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mikOn-000148-TO
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 21:35:53 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2ad70948-3db7-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 22:35:46 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 105BB61213;
 Thu,  4 Nov 2021 21:35:44 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ad70948-3db7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636061744;
	bh=rp7VrtyeMSdeuCuQ8DXT6fp7bY8Ta+E/hnPkZG3nOsk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=q0R0vV90pH2ucj74L6Uh421Zyi9pKdbkI+/di/SzN75iSLMAqpXmnNFq3kBMjMATl
	 kJ6T9fGbnINsib/X/lUJ3dyx+dws1StuGyxx4//C6Zrp9/05gwjf8vP92Vj0at66QY
	 P6w4/OkwpZKNnG7gE9Z+Xrc1gafqKiB63/dhm6xT4K5v5LaP4Ac4ZE2Rx/bdV1a1vE
	 fXTJ9o9VVaqg1HYqTQNM9BG4HntNwaBBL/wIHFQCJqlEd9yfhktCms2dcI3oFjCar+
	 cXDMXUvU+vtAR2VmJJwDdgOIN2hCvgNDRR+9Zvyfu8w5jSMFTBa/bxvk38FgkUBOoI
	 voQ4P7cKp+7Yw==
Date: Thu, 4 Nov 2021 14:35:43 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <luca.fancellu@arm.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Jan Beulich <jbeulich@suse.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com, 
    Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
References: <20211104141206.25153-1-luca.fancellu@arm.com> <81685961-501e-7a41-6f6f-bc4491645264@suse.com> <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop> <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-662813538-1636061744=:284830"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-662813538-1636061744=:284830
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Nov 2021, Luca Fancellu wrote:
> > On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.org> wrote:
> > 
> > On Thu, 4 Nov 2021, Jan Beulich wrote:
> >> On 04.11.2021 15:12, Luca Fancellu wrote:
> >>> --- a/xen/common/efi/boot.c
> >>> +++ b/xen/common/efi/boot.c
> >>> @@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> >>>     CHAR16 *pathend, *ptr;
> >>>     EFI_STATUS ret;
> >>> 
> >>> +    /*
> >>> +     * Grub2 running on top of EDK2 has been observed to supply a NULL
> >>> +     * DeviceHandle. We can't use that to gain access to the filesystem.
> >>> +     * However the system can still boot if it doesn’t require access to the
> >>> +     * filesystem.
> >>> +     */
> >>> +    if ( !loaded_image->DeviceHandle )
> >>> +        return NULL;
> >>> +
> >>>     do {
> >>>         EFI_FILE_IO_INTERFACE *fio;
> >>> 
> >>> @@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
> >>>     EFI_STATUS ret;
> >>>     const CHAR16 *what = NULL;
> >>> 
> >>> +    if ( !dir_handle )
> >>> +        blexit(L"Error: No access to the filesystem");
> >>>     if ( !name )
> >>>         PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
> >>>     ret = dir_handle->Open(dir_handle, &FileHandle, name,
> >>> @@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >>>             EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
> >>>                                                        &file_name);
> >>> 
> >>> -            handle->Close(handle);
> >>> -            *argv = file_name;
> >>> +            if ( !handle )
> >>> +            {
> >>> +                PrintErr(L"Error retrieving image name: no filesystem access."
> >>> +                         L" Setting default to xen.efi");
> >>> +                PrintErr(newline);
> >>> +                *argv = L"xen.efi";
> >>> +            }
> >>> +            else
> >>> +            {
> >>> +                handle->Close(handle);
> >>> +                *argv = file_name;
> >>> +            }
> >>>         }
> >>> 
> >>>         name.s = get_value(&cfg, section.s, "options");
> >>> @@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >>>     /* Get the number of boot modules specified on the DT or an error (<0) */
> >>>     dt_modules_found = efi_check_dt_boot(dir_handle);
> >>> 
> >>> -    dir_handle->Close(dir_handle);
> >>> +    if ( dir_handle )
> >>> +        dir_handle->Close(dir_handle);
> >>> 
> >>>     if ( dt_modules_found < 0 )
> >>>         /* efi_check_dt_boot throws some error */
> >>> 
> >> 
> >> I'm sorry, but I think we need to take a step back here and revisit
> >> the earlier change. If that hadn't moved obtaining dir_handle out by
> >> one level of scope, nothing bad would have happened to the case that
> >> you're now trying to fix, I understand? So perhaps that part wants
> >> undoing, with efi_check_dt_boot() instead getting passed loaded_image.
> >> That way, down the call tree the needed handle can be obtained via
> >> another call to get_parent_handle(), and quite likely in the scenario
> >> you're trying to fix here execution wouldn't even make it there. This
> >> then wouldn't be much different to the image name retrieval calling
> >> get_parent_handle() a 2nd time, rather than trying to re-use
> >> dir_handle.
> >> 
> >> Net effect being that I think get_parent_handle() would then again
> >> only be called when the returned handle is actually needed, and hence
> >> when failure of HandleProtocol() (for DeviceHandle being NULL just
> >> like for any other reason) is indeed an error that needs reporting.
> > 
> > In my opinion the current version is good enough. Regardless, I looked
> > at your suggestion into details. As it took me some time to understand
> > it, I thought I would share the code changes that I think correspond to
> > what you wrote. Does everything check out?
> > 
> > If so, I think it looks fine, maybe a bit better than the current
> > version. I'll leave that to you and Luca.
> > 
> > 
> > diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> > index c3ae9751ab..9dcd8547cd 100644
> > --- a/xen/arch/arm/efi/efi-boot.h
> > +++ b/xen/arch/arm/efi/efi-boot.h
> > @@ -8,6 +8,8 @@
> > #include <asm/setup.h>
> > #include <asm/smp.h>
> > 
> > +extern EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> > +                                                CHAR16 **leaf);
> > typedef struct {
> >     char *name;
> >     unsigned int name_len;
> > @@ -54,7 +56,7 @@ static int handle_module_node(EFI_FILE_HANDLE dir_handle,
> >                               bool is_domu_module);
> > static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >                                        int domain_node);
> > -static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
> > +static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
> > 
> > #define DEVICE_TREE_GUID \
> > {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0}}
> > @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >  * dom0 and domU guests to be loaded.
> >  * Returns the number of multiboot modules found or a negative number for error.
> >  */
> > -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> > +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> > {
> >     int chosen, node, addr_len, size_len;
> >     unsigned int i = 0, modules_found = 0;
> > +    EFI_FILE_HANDLE dir_handle;
> > +    CHAR16 *file_name;
> > +
> > +    dir_handle = get_parent_handle(loaded_image, &file_name);
> 
> We can’t use get_parent_handle here because we will end up with the same problem,
> we would need to use the filesystem if and only if we need to use it, 

Understood, but it would work the same way as this version of the patch:
if we end up calling read_file with dir_handle == NULL, then read_file
would do:

  blexit(L"Error: No access to the filesystem");

If we don't end up calling read_file, then everything works even if
dir_handle == NULL. Right?


> so the way I see
> is to pass loaded_image down to the stack until allocate_module_file(…), in this
> function we can use get_parent_handle(…) because the user wants us to do that.
> The downside is that we must close the handle there, so for each loaded file we will
> request and close the handle. Is this something we don’t bother too much?

Yeah, that doesn't seem ideal.


> > 
> >     /* Check for the chosen node in the current DTB */
> >     chosen = setup_chosen_node(fdt, &addr_len, &size_len);
> > @@ -895,6 +901,8 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> >         efi_bs->FreePool(modules[i].name);
> >     }
> > 
> > +    dir_handle->Close(dir_handle);
> > +
> >     return modules_found;
> > }
> > 
> > diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> > index 112b7e7571..2407671a7d 100644
> > --- a/xen/common/efi/boot.c
> > +++ b/xen/common/efi/boot.c
> > @@ -167,7 +167,7 @@ static void __init PrintErr(const CHAR16 *s)
> > }
> > 
> > #ifndef CONFIG_HAS_DEVICE_TREE
> > -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> > +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> > {
> >     return 0;
> > }
> > @@ -439,8 +439,8 @@ static unsigned int __init get_argv(unsigned int argc, CHAR16 **argv,
> >     return argc;
> > }
> > 
> > -static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> > -                                                CHAR16 **leaf)
> > +EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> > +                                         CHAR16 **leaf)
> > {
> >     static EFI_GUID __initdata fs_protocol = SIMPLE_FILE_SYSTEM_PROTOCOL;
> >     static CHAR16 __initdata buffer[512];
> > @@ -1236,9 +1236,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> > 
> >     efi_arch_relocate_image(0);
> > 
> > -    /* Get the file system interface. */
> > -    dir_handle = get_parent_handle(loaded_image, &file_name);
> > -
> >     if ( use_cfg_file )
> >     {
> >         UINTN depth, cols, rows, size;
> > @@ -1251,6 +1248,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> > 
> >         gop = efi_get_gop();
> > 
> > +        /* Get the file system interface. */
> > +        dir_handle = get_parent_handle(loaded_image, &file_name);
> > +
> >         /* Read and parse the config file. */
> >         if ( read_section(loaded_image, L"config", &cfg, NULL) )
> >             PrintStr(L"Using builtin config file\r\n");
> > @@ -1344,18 +1344,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >             EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
> >                                                        &file_name);
> > 
> > -            if ( !handle )
> > -            {
> > -                PrintErr(L"Error retrieving image name: no filesystem access."
> > -                         L" Setting default to xen.efi");
> > -                PrintErr(newline);
> > -                *argv = L"xen.efi";
> > -            }
> > -            else
> > -            {
> > -                handle->Close(handle);
> > -                *argv = file_name;
> > -            }
> > +            handle->Close(handle);
> > +            *argv = file_name;
> >         }
> > 
> >         name.s = get_value(&cfg, section.s, "options");
> > @@ -1383,15 +1373,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >         efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> >         cfg.addr = 0;
> > 
> > +        dir_handle->Close(dir_handle);
> > +
> >         if ( gop && !base_video )
> >             gop_mode = efi_find_gop_mode(gop, cols, rows, depth);
> >     }
> > 
> >     /* Get the number of boot modules specified on the DT or an error (<0) */
> > -    dt_modules_found = efi_check_dt_boot(dir_handle);
> > -
> > -    if ( dir_handle )
> > -        dir_handle->Close(dir_handle);
> > +    dt_modules_found = efi_check_dt_boot(loaded_image);
> > 
> >     if ( dt_modules_found < 0 )
> >         /* efi_check_dt_boot throws some error */
> 
--8323329-662813538-1636061744=:284830--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 21:43:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 21:43:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221907.383831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mikWK-0002WT-IY; Thu, 04 Nov 2021 21:43:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221907.383831; Thu, 04 Nov 2021 21:43:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mikWK-0002WM-FI; Thu, 04 Nov 2021 21:43:40 +0000
Received: by outflank-mailman (input) for mailman id 221907;
 Thu, 04 Nov 2021 21:43:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t6+c=PX=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1mikWJ-0002WG-HM
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 21:43:39 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on061e.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43d4b1fa-3db8-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 22:43:37 +0100 (CET)
Received: from AS9PR06CA0028.eurprd06.prod.outlook.com (2603:10a6:20b:462::16)
 by AS8PR08MB6263.eurprd08.prod.outlook.com (2603:10a6:20b:290::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 21:43:34 +0000
Received: from VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:462:cafe::c1) by AS9PR06CA0028.outlook.office365.com
 (2603:10a6:20b:462::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Thu, 4 Nov 2021 21:43:34 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT037.mail.protection.outlook.com (10.152.19.70) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Thu, 4 Nov 2021 21:43:32 +0000
Received: ("Tessian outbound d49ee2bec50d:v108");
 Thu, 04 Nov 2021 21:43:32 +0000
Received: from d0445c77d051.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F8B96258-7C71-4142-BFBB-0E0444EED0B3.1; 
 Thu, 04 Nov 2021 21:43:21 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d0445c77d051.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 04 Nov 2021 21:43:21 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PAXPR08MB6575.eurprd08.prod.outlook.com (2603:10a6:102:156::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 4 Nov
 2021 21:43:19 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Thu, 4 Nov 2021
 21:43:19 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO2P265CA0116.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:c::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Thu, 4 Nov 2021 21:43:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43d4b1fa-3db8-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XjGjs5IFfPBLprncu1qpCBVOm0VVfMuJ2lAecmxQRBw=;
 b=aKycb4pgR0COXw6egKz17jb9uj93jaEg/piyUbLiFBxpKsQF/WJwGfPrao+tazahVf9mQkmdWboLqYWBgYSrjrdKa49TYGbCH6q1CBwVLOKY3QsWdY77LiUNT7pp8vtaq6Li9WjntWrZSVB6UaRhWEeUbo8APpffuZVjV00N1Zg=
X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is
 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=temperror action=none
 header.from=arm.com;
Received-SPF: TempError (protection.outlook.com: error in processing during
 lookup of arm.com: DNS Timeout)
X-CheckRecipientChecked: true
X-CR-MTA-CID: 4eed59951c45e2eb
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=C5AuFLyZGrhCf0hLwkUSHVAxTNKmAg8CXUJx3XHBrKPytxyA81izc0qnrVeT1QYTykXMI5vhb55ENfUHGMC2CHeXuMwJ1Usu8+amEZLBgVWhVFVSjYAQZGSiwSdpOQQLABSs/jqaPPLxUItfhxPXf7SMapo4StTcjRcsqqhROLyE8U95ulpae8OQ8oqm1jknX2HBdSWaEDVOIG2/63166zMy1mT7ejnTp/zx73orhshxDecd/lnuye8FUWf+MCBGVlqLLNjH8BnOl2Hrpdzn8qv9GoY0+mi7wkmR1jh+q9Qa1qgXQ2QpQqzstBO1zXSNH8NZfG+L2JZjVo8m1qab8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XjGjs5IFfPBLprncu1qpCBVOm0VVfMuJ2lAecmxQRBw=;
 b=dBggIqhw8J3LZWfLMptT0fOrwlQ8gXuyOhfT4DwIKX2THA8JMIXkFQ+m17ZnJVCLAAQtgWOAaPdzGsbMWt8ne6AT2PiuI0GX9GNCaIZLu/TEBVzoj4ELdHP0RIjsbWeVpk1ADoP7uTB8t4+tbF9a7YZJ5nWHPDOGEpl/WTVjrcSN9CmcSB/xl2xtbIEZkZUwoLclr/KpIp2fWPngounxHHoDK2Vq0vThAL+syCFL27TZDx/dm0LUGfdqF5uyieUJHP3aFLhrVeYFLUKxKNJWSaRsT6szJHbapDZkyFZpYYiC6hyWJ6aLAQbPN75kOR2DP9FYyx0z9rJRLQ+skGvc/Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XjGjs5IFfPBLprncu1qpCBVOm0VVfMuJ2lAecmxQRBw=;
 b=aKycb4pgR0COXw6egKz17jb9uj93jaEg/piyUbLiFBxpKsQF/WJwGfPrao+tazahVf9mQkmdWboLqYWBgYSrjrdKa49TYGbCH6q1CBwVLOKY3QsWdY77LiUNT7pp8vtaq6Li9WjntWrZSVB6UaRhWEeUbo8APpffuZVjV00N1Zg=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
Date: Thu, 4 Nov 2021 21:43:12 +0000
Cc: Jan Beulich <jbeulich@suse.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
To: Stefano Stabellini <sstabellini@kernel.org>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO2P265CA0116.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:c::32) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 59f44a63-8cca-4eec-82a3-08d99fdc25d5
X-MS-TrafficTypeDiagnostic: PAXPR08MB6575:|AS8PR08MB6263:
X-Microsoft-Antispam-PRVS:
	<AS8PR08MB62636830F900379A074E8E87E48D9@AS8PR08MB6263.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:353;OLM:353;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 wSxjAt5QBRGINJ/3XLYn3CJRJxNX6C7f1SPRfMt7oaHb/XuvGaKo/hKvmeCtftJRVobU3sGYH6ZNf4eZgWq8gpRGWFqar4pI4kLSSzAWfpv6TlxFRpMOsmyr+r/8rnR4yr9j759QsWMjxEgG2h/NBwNiwxL1ce1untY5y0Wqdiy1ZwdBQJcyIqoAUcxDfDrpb447EwopMcsKyd331fWwJFzekC3CBvXS30gUp3d6NBPz7/uaFhyipggnsbCULBF8gvuI2GA9u/bmrHj36GblZFI3ymtIdOU+3VR1n2bh87Sz+k3x/bfb26Bi3UsCyf0dJp9anHKuC0ZovUrjdZtq5qc1onCXoWvRWxmZDSjCuGHLM4b17A4uNVdeD31s1dhb+R9GDopijcBQZ2CM5Bgq8xdO4ld5yKPfHIJLnmllnGg6Kq2OhauFeyAPpj4OkG/6j/XtLXHCwSbFWd53q1GojD7wCLpoIgnUvi+De9iBN/lsqt4Nnm06mmGdJMSltwElKcPQ17zvySED2L3Eb2dEctUuph3aeTgATA4BHXN9b5HAMoTeeQlkD3wbenn0EJuZ24mt0xonb4DjvnB35epBKIOKYdHWFrScvE5iFeQ4auVqn+oMZZSiB2bIglOMVq9CCTqFHvduYNE64eV+vtbF2IsWd8aRrl9xOsjkWcGrf5tqixlb/hV/CZ3xeVMBkqYFx9I4uIYfpazN2VMh8aC50e3g+11W/nkJADRANk8Qi2PjwwG2PeMt0NVPZHbRCwD+
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6512007)(4326008)(83380400001)(66476007)(66556008)(956004)(8936002)(36756003)(33656002)(6916009)(26005)(44832011)(54906003)(8676002)(5660300002)(6486002)(66946007)(86362001)(52116002)(38100700002)(6666004)(316002)(38350700002)(508600001)(6506007)(53546011)(2906002)(2616005)(186003)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6575
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	05a315ac-36b7-4fab-28d2-08d99fdc1ddb
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	+q4kVTG3PG0455zZVXxLgGVaOdu/3fv1QuRE1ukXstSUIsAb/akzsjUSnyUUC671ellQ8rixMRsNixbf03nduZbcm+w3n/TQnkfeo6EPRnICvpItKHAEMhbvj3DfYO0S/83v2Skc28MLqUe3c4agMQMGGqr2kBKL1rPoi/PbRoqTCudiRQn9arTs5MR1dZMY2QAxwg0uXUpWuwXx8AssDY4yIpPxMnSxmbgudpayQdsl/euQXuqUsCihh4iuSFJvZKfpvFmnfyV+LzpeXbe+NxQjvBLOBmmyUyb2LZ1bcxB0klFyYechNbkMR460q3dzh+jyQnOUu6pyfV1CHuEouwfF/moQ/G1ePlsXIOREV1MnKweztlTlrJR0vSs3AhL2srirGU6SoXvCBcAQ7ZAm+6lKECWHkLwCwFM+g/NdWCiASaC21U77ezmGFXhzgQMWDosCskbZ3cFuDTPlSWUViaUSz3kfO/bz+RVvAw68UZyCVs3g2xOvk45B66Y/ew5DA5ofMOUEC4wwKrIFjq+AjiOku8dOyzRSAJsP7ZtmLrr/fYe1Z8x27Fk9Wvaktbat74PWJvUG5qrGFn8jqT9wYhgaxrW+SywAdiaqPex3keRtBdghyrWOII3FEnuvHrSE3DRvXr62Fpe6VOX6Dg7srvbSliGdOMzLb1VprN9MdazW/clEp3W6h7ciy91jcZxYdoeBd5FNzYshZbg83Bx1PNjPzByhb54UVIPs4xFniIs=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(2906002)(4326008)(86362001)(54906003)(356005)(508600001)(6862004)(6666004)(81166007)(70206006)(316002)(6512007)(33656002)(70586007)(36860700001)(8936002)(336012)(186003)(47076005)(36756003)(26005)(82310400003)(956004)(83380400001)(2616005)(44832011)(5660300002)(53546011)(6506007)(8676002)(63370400001)(6486002)(63350400001)(45980500001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 21:43:32.4614
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 59f44a63-8cca-4eec-82a3-08d99fdc25d5
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6263



> On 4 Nov 2021, at 21:35, Stefano Stabellini <sstabellini@kernel.org> wrot=
e:
>=20
> On Thu, 4 Nov 2021, Luca Fancellu wrote:
>>> On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.org> wr=
ote:
>>>=20
>>> On Thu, 4 Nov 2021, Jan Beulich wrote:
>>>> On 04.11.2021 15:12, Luca Fancellu wrote:
>>>>> --- a/xen/common/efi/boot.c
>>>>> +++ b/xen/common/efi/boot.c
>>>>> @@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(=
EFI_LOADED_IMAGE *loaded_image,
>>>>>    CHAR16 *pathend, *ptr;
>>>>>    EFI_STATUS ret;
>>>>>=20
>>>>> +    /*
>>>>> +     * Grub2 running on top of EDK2 has been observed to supply a NU=
LL
>>>>> +     * DeviceHandle. We can't use that to gain access to the filesys=
tem.
>>>>> +     * However the system can still boot if it doesn=E2=80=99t requi=
re access to the
>>>>> +     * filesystem.
>>>>> +     */
>>>>> +    if ( !loaded_image->DeviceHandle )
>>>>> +        return NULL;
>>>>> +
>>>>>    do {
>>>>>        EFI_FILE_IO_INTERFACE *fio;
>>>>>=20
>>>>> @@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_=
handle, CHAR16 *name,
>>>>>    EFI_STATUS ret;
>>>>>    const CHAR16 *what =3D NULL;
>>>>>=20
>>>>> +    if ( !dir_handle )
>>>>> +        blexit(L"Error: No access to the filesystem");
>>>>>    if ( !name )
>>>>>        PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
>>>>>    ret =3D dir_handle->Open(dir_handle, &FileHandle, name,
>>>>> @@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_T=
ABLE *SystemTable)
>>>>>            EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>>>>>                                                       &file_name);
>>>>>=20
>>>>> -            handle->Close(handle);
>>>>> -            *argv =3D file_name;
>>>>> +            if ( !handle )
>>>>> +            {
>>>>> +                PrintErr(L"Error retrieving image name: no filesyste=
m access."
>>>>> +                         L" Setting default to xen.efi");
>>>>> +                PrintErr(newline);
>>>>> +                *argv =3D L"xen.efi";
>>>>> +            }
>>>>> +            else
>>>>> +            {
>>>>> +                handle->Close(handle);
>>>>> +                *argv =3D file_name;
>>>>> +            }
>>>>>        }
>>>>>=20
>>>>>        name.s =3D get_value(&cfg, section.s, "options");
>>>>> @@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TA=
BLE *SystemTable)
>>>>>    /* Get the number of boot modules specified on the DT or an error =
(<0) */
>>>>>    dt_modules_found =3D efi_check_dt_boot(dir_handle);
>>>>>=20
>>>>> -    dir_handle->Close(dir_handle);
>>>>> +    if ( dir_handle )
>>>>> +        dir_handle->Close(dir_handle);
>>>>>=20
>>>>>    if ( dt_modules_found < 0 )
>>>>>        /* efi_check_dt_boot throws some error */
>>>>>=20
>>>>=20
>>>> I'm sorry, but I think we need to take a step back here and revisit
>>>> the earlier change. If that hadn't moved obtaining dir_handle out by
>>>> one level of scope, nothing bad would have happened to the case that
>>>> you're now trying to fix, I understand? So perhaps that part wants
>>>> undoing, with efi_check_dt_boot() instead getting passed loaded_image.
>>>> That way, down the call tree the needed handle can be obtained via
>>>> another call to get_parent_handle(), and quite likely in the scenario
>>>> you're trying to fix here execution wouldn't even make it there. This
>>>> then wouldn't be much different to the image name retrieval calling
>>>> get_parent_handle() a 2nd time, rather than trying to re-use
>>>> dir_handle.
>>>>=20
>>>> Net effect being that I think get_parent_handle() would then again
>>>> only be called when the returned handle is actually needed, and hence
>>>> when failure of HandleProtocol() (for DeviceHandle being NULL just
>>>> like for any other reason) is indeed an error that needs reporting.
>>>=20
>>> In my opinion the current version is good enough. Regardless, I looked
>>> at your suggestion into details. As it took me some time to understand
>>> it, I thought I would share the code changes that I think correspond to
>>> what you wrote. Does everything check out?
>>>=20
>>> If so, I think it looks fine, maybe a bit better than the current
>>> version. I'll leave that to you and Luca.
>>>=20
>>>=20
>>> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
>>> index c3ae9751ab..9dcd8547cd 100644
>>> --- a/xen/arch/arm/efi/efi-boot.h
>>> +++ b/xen/arch/arm/efi/efi-boot.h
>>> @@ -8,6 +8,8 @@
>>> #include <asm/setup.h>
>>> #include <asm/smp.h>
>>>=20
>>> +extern EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *load=
ed_image,
>>> +                                                CHAR16 **leaf);
>>> typedef struct {
>>>    char *name;
>>>    unsigned int name_len;
>>> @@ -54,7 +56,7 @@ static int handle_module_node(EFI_FILE_HANDLE dir_han=
dle,
>>>                              bool is_domu_module);
>>> static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
>>>                                       int domain_node);
>>> -static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
>>> +static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
>>>=20
>>> #define DEVICE_TREE_GUID \
>>> {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa,=
 0xe0}}
>>> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(EFI=
_FILE_HANDLE dir_handle,
>>> * dom0 and domU guests to be loaded.
>>> * Returns the number of multiboot modules found or a negative number fo=
r error.
>>> */
>>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>>> {
>>>    int chosen, node, addr_len, size_len;
>>>    unsigned int i =3D 0, modules_found =3D 0;
>>> +    EFI_FILE_HANDLE dir_handle;
>>> +    CHAR16 *file_name;
>>> +
>>> +    dir_handle =3D get_parent_handle(loaded_image, &file_name);
>>=20
>> We can=E2=80=99t use get_parent_handle here because we will end up with =
the same problem,
>> we would need to use the filesystem if and only if we need to use it,=20
>=20
> Understood, but it would work the same way as this version of the patch:
> if we end up calling read_file with dir_handle =3D=3D NULL, then read_fil=
e
> would do:
>=20
>  blexit(L"Error: No access to the filesystem");
>=20
> If we don't end up calling read_file, then everything works even if
> dir_handle =3D=3D NULL. Right?

Oh yes sorry my bad Stefano! Having this version of the patch, it will work=
.

My understanding was instead that the Jan suggestion is to revert the place
of call of get_parent_handle (like in your code diff), but also to remove t=
he
changes to get_parent_handle and read_file.
I guess Jan will specify his preference, but if he meant the last one, then
the only way I see...

>=20
>=20
>> so the way I see
>> is to pass loaded_image down to the stack until allocate_module_file(=E2=
=80=A6), in this
>> function we can use get_parent_handle(=E2=80=A6) because the user wants =
us to do that.
>> The downside is that we must close the handle there, so for each loaded =
file we will
>> request and close the handle. Is this something we don=E2=80=99t bother =
too much?
>=20
> Yeah, that doesn't seem ideal.

=E2=80=A6 is this one.

>=20
>=20
>>>=20
>>>    /* Check for the chosen node in the current DTB */
>>>    chosen =3D setup_chosen_node(fdt, &addr_len, &size_len);
>>> @@ -895,6 +901,8 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE=
 dir_handle)
>>>        efi_bs->FreePool(modules[i].name);
>>>    }
>>>=20
>>> +    dir_handle->Close(dir_handle);
>>> +
>>>    return modules_found;
>>> }
>>>=20
>>> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
>>> index 112b7e7571..2407671a7d 100644
>>> --- a/xen/common/efi/boot.c
>>> +++ b/xen/common/efi/boot.c
>>> @@ -167,7 +167,7 @@ static void __init PrintErr(const CHAR16 *s)
>>> }
>>>=20
>>> #ifndef CONFIG_HAS_DEVICE_TREE
>>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>>> {
>>>    return 0;
>>> }
>>> @@ -439,8 +439,8 @@ static unsigned int __init get_argv(unsigned int ar=
gc, CHAR16 **argv,
>>>    return argc;
>>> }
>>>=20
>>> -static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *load=
ed_image,
>>> -                                                CHAR16 **leaf)
>>> +EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_imag=
e,
>>> +                                         CHAR16 **leaf)
>>> {
>>>    static EFI_GUID __initdata fs_protocol =3D SIMPLE_FILE_SYSTEM_PROTOC=
OL;
>>>    static CHAR16 __initdata buffer[512];
>>> @@ -1236,9 +1236,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABL=
E *SystemTable)
>>>=20
>>>    efi_arch_relocate_image(0);
>>>=20
>>> -    /* Get the file system interface. */
>>> -    dir_handle =3D get_parent_handle(loaded_image, &file_name);
>>> -
>>>    if ( use_cfg_file )
>>>    {
>>>        UINTN depth, cols, rows, size;
>>> @@ -1251,6 +1248,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABL=
E *SystemTable)
>>>=20
>>>        gop =3D efi_get_gop();
>>>=20
>>> +        /* Get the file system interface. */
>>> +        dir_handle =3D get_parent_handle(loaded_image, &file_name);
>>> +
>>>        /* Read and parse the config file. */
>>>        if ( read_section(loaded_image, L"config", &cfg, NULL) )
>>>            PrintStr(L"Using builtin config file\r\n");
>>> @@ -1344,18 +1344,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TAB=
LE *SystemTable)
>>>            EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>>>                                                       &file_name);
>>>=20
>>> -            if ( !handle )
>>> -            {
>>> -                PrintErr(L"Error retrieving image name: no filesystem =
access."
>>> -                         L" Setting default to xen.efi");
>>> -                PrintErr(newline);
>>> -                *argv =3D L"xen.efi";
>>> -            }
>>> -            else
>>> -            {
>>> -                handle->Close(handle);
>>> -                *argv =3D file_name;
>>> -            }
>>> +            handle->Close(handle);
>>> +            *argv =3D file_name;
>>>        }
>>>=20
>>>        name.s =3D get_value(&cfg, section.s, "options");
>>> @@ -1383,15 +1373,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TA=
BLE *SystemTable)
>>>        efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
>>>        cfg.addr =3D 0;
>>>=20
>>> +        dir_handle->Close(dir_handle);
>>> +
>>>        if ( gop && !base_video )
>>>            gop_mode =3D efi_find_gop_mode(gop, cols, rows, depth);
>>>    }
>>>=20
>>>    /* Get the number of boot modules specified on the DT or an error (<=
0) */
>>> -    dt_modules_found =3D efi_check_dt_boot(dir_handle);
>>> -
>>> -    if ( dir_handle )
>>> -        dir_handle->Close(dir_handle);
>>> +    dt_modules_found =3D efi_check_dt_boot(loaded_image);
>>>=20
>>>    if ( dt_modules_found < 0 )
>>>        /* efi_check_dt_boot throws some error */



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 21:50:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 21:50:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221913.383843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mikd7-0003w8-9z; Thu, 04 Nov 2021 21:50:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221913.383843; Thu, 04 Nov 2021 21:50:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mikd7-0003w1-6z; Thu, 04 Nov 2021 21:50:41 +0000
Received: by outflank-mailman (input) for mailman id 221913;
 Thu, 04 Nov 2021 21:50:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqP1=PX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mikd5-0003vv-G1
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 21:50:39 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3de75170-3db9-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 22:50:37 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 143E76120F;
 Thu,  4 Nov 2021 21:50:35 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3de75170-3db9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636062635;
	bh=9AS43ni7EXnXmJf0+O7IPl/f91pfnREZIgO+IMwJL1Q=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JlAuq96qGEy95NmfYSguAVDeijhyfp0O8hUnCgJGZ00e7Y2Jd46JWNPTE2EWBVuUk
	 FSgiqDmX2/zON33s07WcTFoH4pXXfgRXRIeYkUlY1f6W0LsgD7u4SYh04dk8tmVQFL
	 Gu6tIqirCG5rJC+ocK2CI/0z6wX02Cp5kGxC2uyWybQDi4FxVQVfQrtMJExSqmd4gT
	 8upGtae+EXqBZ216tGmByIEFcoHgSX+3Taqw1U2SpQVp6BdfBtpak00W1/GSaZOv3q
	 uC3gJQrTgIFDgCqivXq8oIv0EJGP/FJQKP180IT1dRqzGXWn6KQT7vG8KFwZAO85Ko
	 f7WTWps0w9/BA==
Date: Thu, 4 Nov 2021 14:50:34 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <luca.fancellu@arm.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Jan Beulich <jbeulich@suse.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com, 
    Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
References: <20211104141206.25153-1-luca.fancellu@arm.com> <81685961-501e-7a41-6f6f-bc4491645264@suse.com> <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop> <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop> <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-855182026-1636062635=:284830"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-855182026-1636062635=:284830
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Nov 2021, Luca Fancellu wrote:
> > On 4 Nov 2021, at 21:35, Stefano Stabellini <sstabellini@kernel.org> wrote:
> > 
> > On Thu, 4 Nov 2021, Luca Fancellu wrote:
> >>> On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.org> wrote:
> >>> 
> >>> On Thu, 4 Nov 2021, Jan Beulich wrote:
> >>>> On 04.11.2021 15:12, Luca Fancellu wrote:
> >>>>> --- a/xen/common/efi/boot.c
> >>>>> +++ b/xen/common/efi/boot.c
> >>>>> @@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> >>>>>    CHAR16 *pathend, *ptr;
> >>>>>    EFI_STATUS ret;
> >>>>> 
> >>>>> +    /*
> >>>>> +     * Grub2 running on top of EDK2 has been observed to supply a NULL
> >>>>> +     * DeviceHandle. We can't use that to gain access to the filesystem.
> >>>>> +     * However the system can still boot if it doesn’t require access to the
> >>>>> +     * filesystem.
> >>>>> +     */
> >>>>> +    if ( !loaded_image->DeviceHandle )
> >>>>> +        return NULL;
> >>>>> +
> >>>>>    do {
> >>>>>        EFI_FILE_IO_INTERFACE *fio;
> >>>>> 
> >>>>> @@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
> >>>>>    EFI_STATUS ret;
> >>>>>    const CHAR16 *what = NULL;
> >>>>> 
> >>>>> +    if ( !dir_handle )
> >>>>> +        blexit(L"Error: No access to the filesystem");
> >>>>>    if ( !name )
> >>>>>        PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
> >>>>>    ret = dir_handle->Open(dir_handle, &FileHandle, name,
> >>>>> @@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >>>>>            EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
> >>>>>                                                       &file_name);
> >>>>> 
> >>>>> -            handle->Close(handle);
> >>>>> -            *argv = file_name;
> >>>>> +            if ( !handle )
> >>>>> +            {
> >>>>> +                PrintErr(L"Error retrieving image name: no filesystem access."
> >>>>> +                         L" Setting default to xen.efi");
> >>>>> +                PrintErr(newline);
> >>>>> +                *argv = L"xen.efi";
> >>>>> +            }
> >>>>> +            else
> >>>>> +            {
> >>>>> +                handle->Close(handle);
> >>>>> +                *argv = file_name;
> >>>>> +            }
> >>>>>        }
> >>>>> 
> >>>>>        name.s = get_value(&cfg, section.s, "options");
> >>>>> @@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >>>>>    /* Get the number of boot modules specified on the DT or an error (<0) */
> >>>>>    dt_modules_found = efi_check_dt_boot(dir_handle);
> >>>>> 
> >>>>> -    dir_handle->Close(dir_handle);
> >>>>> +    if ( dir_handle )
> >>>>> +        dir_handle->Close(dir_handle);
> >>>>> 
> >>>>>    if ( dt_modules_found < 0 )
> >>>>>        /* efi_check_dt_boot throws some error */
> >>>>> 
> >>>> 
> >>>> I'm sorry, but I think we need to take a step back here and revisit
> >>>> the earlier change. If that hadn't moved obtaining dir_handle out by
> >>>> one level of scope, nothing bad would have happened to the case that
> >>>> you're now trying to fix, I understand? So perhaps that part wants
> >>>> undoing, with efi_check_dt_boot() instead getting passed loaded_image.
> >>>> That way, down the call tree the needed handle can be obtained via
> >>>> another call to get_parent_handle(), and quite likely in the scenario
> >>>> you're trying to fix here execution wouldn't even make it there. This
> >>>> then wouldn't be much different to the image name retrieval calling
> >>>> get_parent_handle() a 2nd time, rather than trying to re-use
> >>>> dir_handle.
> >>>> 
> >>>> Net effect being that I think get_parent_handle() would then again
> >>>> only be called when the returned handle is actually needed, and hence
> >>>> when failure of HandleProtocol() (for DeviceHandle being NULL just
> >>>> like for any other reason) is indeed an error that needs reporting.
> >>> 
> >>> In my opinion the current version is good enough. Regardless, I looked
> >>> at your suggestion into details. As it took me some time to understand
> >>> it, I thought I would share the code changes that I think correspond to
> >>> what you wrote. Does everything check out?
> >>> 
> >>> If so, I think it looks fine, maybe a bit better than the current
> >>> version. I'll leave that to you and Luca.
> >>> 
> >>> 
> >>> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> >>> index c3ae9751ab..9dcd8547cd 100644
> >>> --- a/xen/arch/arm/efi/efi-boot.h
> >>> +++ b/xen/arch/arm/efi/efi-boot.h
> >>> @@ -8,6 +8,8 @@
> >>> #include <asm/setup.h>
> >>> #include <asm/smp.h>
> >>> 
> >>> +extern EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> >>> +                                                CHAR16 **leaf);
> >>> typedef struct {
> >>>    char *name;
> >>>    unsigned int name_len;
> >>> @@ -54,7 +56,7 @@ static int handle_module_node(EFI_FILE_HANDLE dir_handle,
> >>>                              bool is_domu_module);
> >>> static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >>>                                       int domain_node);
> >>> -static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
> >>> +static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
> >>> 
> >>> #define DEVICE_TREE_GUID \
> >>> {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0}}
> >>> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >>> * dom0 and domU guests to be loaded.
> >>> * Returns the number of multiboot modules found or a negative number for error.
> >>> */
> >>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> >>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> >>> {
> >>>    int chosen, node, addr_len, size_len;
> >>>    unsigned int i = 0, modules_found = 0;
> >>> +    EFI_FILE_HANDLE dir_handle;
> >>> +    CHAR16 *file_name;
> >>> +
> >>> +    dir_handle = get_parent_handle(loaded_image, &file_name);
> >> 
> >> We can’t use get_parent_handle here because we will end up with the same problem,
> >> we would need to use the filesystem if and only if we need to use it, 
> > 
> > Understood, but it would work the same way as this version of the patch:
> > if we end up calling read_file with dir_handle == NULL, then read_file
> > would do:
> > 
> >  blexit(L"Error: No access to the filesystem");
> > 
> > If we don't end up calling read_file, then everything works even if
> > dir_handle == NULL. Right?
> 
> Oh yes sorry my bad Stefano! Having this version of the patch, it will work.
> 
> My understanding was instead that the Jan suggestion is to revert the place
> of call of get_parent_handle (like in your code diff), but also to remove the
> changes to get_parent_handle and read_file.
> I guess Jan will specify his preference, but if he meant the last one, then
> the only way I see...

I think we should keep the changes to get_parent_handle and read_file,
otherwise it will make it awkward, and those changes are good in their
own right anyway.
 
 
> >> so the way I see
> >> is to pass loaded_image down to the stack until allocate_module_file(…), in this
> >> function we can use get_parent_handle(…) because the user wants us to do that.
> >> The downside is that we must close the handle there, so for each loaded file we will
> >> request and close the handle. Is this something we don’t bother too much?
> > 
> > Yeah, that doesn't seem ideal.
> 
> … is this one.
> 
> > 
> > 
> >>> 
> >>>    /* Check for the chosen node in the current DTB */
> >>>    chosen = setup_chosen_node(fdt, &addr_len, &size_len);
> >>> @@ -895,6 +901,8 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> >>>        efi_bs->FreePool(modules[i].name);
> >>>    }
> >>> 
> >>> +    dir_handle->Close(dir_handle);
> >>> +
> >>>    return modules_found;
> >>> }
> >>> 
> >>> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> >>> index 112b7e7571..2407671a7d 100644
> >>> --- a/xen/common/efi/boot.c
> >>> +++ b/xen/common/efi/boot.c
> >>> @@ -167,7 +167,7 @@ static void __init PrintErr(const CHAR16 *s)
> >>> }
> >>> 
> >>> #ifndef CONFIG_HAS_DEVICE_TREE
> >>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> >>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> >>> {
> >>>    return 0;
> >>> }
> >>> @@ -439,8 +439,8 @@ static unsigned int __init get_argv(unsigned int argc, CHAR16 **argv,
> >>>    return argc;
> >>> }
> >>> 
> >>> -static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> >>> -                                                CHAR16 **leaf)
> >>> +EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> >>> +                                         CHAR16 **leaf)
> >>> {
> >>>    static EFI_GUID __initdata fs_protocol = SIMPLE_FILE_SYSTEM_PROTOCOL;
> >>>    static CHAR16 __initdata buffer[512];
> >>> @@ -1236,9 +1236,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >>> 
> >>>    efi_arch_relocate_image(0);
> >>> 
> >>> -    /* Get the file system interface. */
> >>> -    dir_handle = get_parent_handle(loaded_image, &file_name);
> >>> -
> >>>    if ( use_cfg_file )
> >>>    {
> >>>        UINTN depth, cols, rows, size;
> >>> @@ -1251,6 +1248,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >>> 
> >>>        gop = efi_get_gop();
> >>> 
> >>> +        /* Get the file system interface. */
> >>> +        dir_handle = get_parent_handle(loaded_image, &file_name);
> >>> +
> >>>        /* Read and parse the config file. */
> >>>        if ( read_section(loaded_image, L"config", &cfg, NULL) )
> >>>            PrintStr(L"Using builtin config file\r\n");
> >>> @@ -1344,18 +1344,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >>>            EFI_FILE_HANDLE handle = get_parent_handle(loaded_image,
> >>>                                                       &file_name);
> >>> 
> >>> -            if ( !handle )
> >>> -            {
> >>> -                PrintErr(L"Error retrieving image name: no filesystem access."
> >>> -                         L" Setting default to xen.efi");
> >>> -                PrintErr(newline);
> >>> -                *argv = L"xen.efi";
> >>> -            }
> >>> -            else
> >>> -            {
> >>> -                handle->Close(handle);
> >>> -                *argv = file_name;
> >>> -            }
> >>> +            handle->Close(handle);
> >>> +            *argv = file_name;
> >>>        }
> >>> 
> >>>        name.s = get_value(&cfg, section.s, "options");
> >>> @@ -1383,15 +1373,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
> >>>        efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> >>>        cfg.addr = 0;
> >>> 
> >>> +        dir_handle->Close(dir_handle);
> >>> +
> >>>        if ( gop && !base_video )
> >>>            gop_mode = efi_find_gop_mode(gop, cols, rows, depth);
> >>>    }
> >>> 
> >>>    /* Get the number of boot modules specified on the DT or an error (<0) */
> >>> -    dt_modules_found = efi_check_dt_boot(dir_handle);
> >>> -
> >>> -    if ( dir_handle )
> >>> -        dir_handle->Close(dir_handle);
> >>> +    dt_modules_found = efi_check_dt_boot(loaded_image);
> >>> 
> >>>    if ( dt_modules_found < 0 )
> >>>        /* efi_check_dt_boot throws some error */
> 
--8323329-855182026-1636062635=:284830--


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 22:05:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 22:05:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221922.383854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mikrN-0005Wz-OH; Thu, 04 Nov 2021 22:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221922.383854; Thu, 04 Nov 2021 22:05:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mikrN-0005Ws-LB; Thu, 04 Nov 2021 22:05:25 +0000
Received: by outflank-mailman (input) for mailman id 221922;
 Thu, 04 Nov 2021 22:05:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jM55=PX=redhat.com=philmd@srs-se1.protection.inumbo.net>)
 id 1mikrL-0005Wm-Ld
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 22:05:23 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [216.205.24.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d79c2cd-3dbb-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 23:05:22 +0100 (CET)
Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com
 [209.85.128.70]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-435-eQOgmhKeMk6V4Fy7_GcItA-1; Thu, 04 Nov 2021 18:05:17 -0400
Received: by mail-wm1-f70.google.com with SMTP id
 l4-20020a05600c1d0400b00332f47a0fa3so2863007wms.8
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 15:05:17 -0700 (PDT)
Received: from [192.168.1.36] (62.red-83-57-168.dynamicip.rima-tde.net.
 [83.57.168.62])
 by smtp.gmail.com with ESMTPSA id c17sm6507637wmk.23.2021.11.04.15.05.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Nov 2021 15:05:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d79c2cd-3dbb-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1636063520;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=55IgmPgmgSuFU9TD9sDvt/2ASWtxXb/fPvF+Rr/pBEI=;
	b=OeRsT9OZj037HOboHxS3iv080deug4S+vX9wINGdKbuLky9iA/OesbKr9mQqXoWCXvJ+rO
	QL1KMGx/fpY8TV+yRYj9kXe7+6bC9Qhn3AYnCyYIPUOf+ZPOSr60l1fLnnMfzpfuNA1ovr
	JgWni7d+q78t7qeCKrFq5BH64wq38dY=
X-MC-Unique: eQOgmhKeMk6V4Fy7_GcItA-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=55IgmPgmgSuFU9TD9sDvt/2ASWtxXb/fPvF+Rr/pBEI=;
        b=RUlkILbjtxfiMkb2Azhbe4F9BquLErOtMRmHk+gG41yBLXpNcGpG0jVgcBsunFTHMQ
         txvdBUyjwcPS8Rs8PJMJuxsI2D/VpKTTevrs+v4UHG3CL36HqqaxGsZBzEBE2IQ+L/Dw
         1HcShVJxLSKvcedhWod22jigcn8Fi51cLdUCtVGaFe/lYErga1+yurIUsBBnPWIt7mJ/
         pW3MW9hPjy8+5Uo0dkw8oje1ES4U9NqFZbrkm6P1QvPKoeJTK4SjIAAbE+6xkuK418rc
         hVtIm/8DYMUuy+Aeji9IwMCU8ANMlDOVkbtx4i5kbedgsXGlwVaa7VDNvHulvM7EK7Gg
         ClsQ==
X-Gm-Message-State: AOAM533etl0K1VYlnSH3ZsrjrGZgztbDU1+/QCiZa4FWriWyExP2eVC3
	v2xtQjFThuJo5BbDNQb9SVCxOj/JktOKMmWyHTZShy1+/fFLuNRkMUKafnYS8wrjjYkIyv2J1or
	Av6jdKgOhGzbRS1vXM5E98kyiwyM=
X-Received: by 2002:a7b:c316:: with SMTP id k22mr27241658wmj.22.1636063516522;
        Thu, 04 Nov 2021 15:05:16 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJyjuyOzFEoyPllk1OzGlmTypUNL8HrTM0i7sNCF1fqIwt5RxcZxT6UmP+XE0SaD8CiW4+dEaQ==
X-Received: by 2002:a7b:c316:: with SMTP id k22mr27241636wmj.22.1636063516364;
        Thu, 04 Nov 2021 15:05:16 -0700 (PDT)
Message-ID: <6f8b30c5-d93d-882d-cf1a-502592e4bcf8@redhat.com>
Date: Thu, 4 Nov 2021 23:05:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.0
Subject: Re: [PULL 07/20] migration/dirtyrate: implement dirty-ring dirtyrate
 calculation
To: Juan Quintela <quintela@redhat.com>, qemu-devel@nongnu.org,
 Laurent Vivier <laurent@vivier.eu>
Cc: Markus Armbruster <armbru@redhat.com>,
 David Hildenbrand <david@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>,
 xen-devel@lists.xenproject.org,
 Richard Henderson <richard.henderson@linaro.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Eric Blake
 <eblake@redhat.com>, kvm@vger.kernel.org, Peter Xu <peterx@redhat.com>,
 =?UTF-8?Q?Marc-Andr=c3=a9_Lureau?= <marcandre.lureau@redhat.com>,
 Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
 "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
 "Michael S. Tsirkin" <mst@redhat.com>,
 Anthony Perard <anthony.perard@citrix.com>,
 =?UTF-8?B?SHltYW4gSHVhbmcow6nCu+KAnsOl4oC54oChKQ==?=
 <huangy81@chinatelecom.cn>
References: <20211101220912.10039-1-quintela@redhat.com>
 <20211101220912.10039-8-quintela@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=c3=a9?= <philmd@redhat.com>
In-Reply-To: <20211101220912.10039-8-quintela@redhat.com>
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hi Juan,

On 11/1/21 23:08, Juan Quintela wrote:
> From: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>
> 
> use dirty ring feature to implement dirtyrate calculation.
> 
> introduce mode option in qmp calc_dirty_rate to specify what
> method should be used when calculating dirtyrate, either
> page-sampling or dirty-ring should be passed.
> 
> introduce "dirty_ring:-r" option in hmp calc_dirty_rate to
> indicate dirty ring method should be used for calculation.
> 
> Signed-off-by: Hyman Huang(é»„å‹‡) <huangy81@chinatelecom.cn>

Just noticing in the git history some commits from your
pull request have the author name (from + S-o-b) mojibaked.

> Message-Id: <7db445109bd18125ce8ec86816d14f6ab5de6a7d.1624040308.git.huangy81@chinatelecom.cn>
> Reviewed-by: Peter Xu <peterx@redhat.com>
> Reviewed-by: Juan Quintela <quintela@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
>  qapi/migration.json    |  16 +++-
>  migration/dirtyrate.c  | 208 +++++++++++++++++++++++++++++++++++++++--
>  hmp-commands.hx        |   7 +-
>  migration/trace-events |   2 +
>  4 files changed, 218 insertions(+), 15 deletions(-)



From xen-devel-bounces@lists.xenproject.org Thu Nov 04 22:48:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 22:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221930.383865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1milXG-00016h-26; Thu, 04 Nov 2021 22:48:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221930.383865; Thu, 04 Nov 2021 22:48:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1milXF-00016a-V6; Thu, 04 Nov 2021 22:48:41 +0000
Received: by outflank-mailman (input) for mailman id 221930;
 Thu, 04 Nov 2021 22:48:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqP1=PX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1milXF-00016U-FM
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 22:48:41 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5978d6cf-3dc1-11ec-9787-a32c541c8605;
 Thu, 04 Nov 2021 23:48:39 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 6CB0D60F36;
 Thu,  4 Nov 2021 22:48:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5978d6cf-3dc1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636066117;
	bh=P/qJiLsk3+QIAFTv3HSmlpPSXkju1Ch8wH/OgNp5Y00=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=IUY5eA9spIIm21FwVJ/H+OGyRZufRuRy72RXrDvzkNIEqPNnm7ILeEdGs+Ve1Sp6u
	 L8i4hUZp6glw/zVDZUyhCWQhh/E7z+YncLHkkfXh5apowsVhl5/cKi1f4fAj5X85ye
	 t5flE7YhVdGaC03/OJBH/Vin/DoaUJSGPlx+m5zWk7UX+wkoCEavxq8RIdRmQo5itx
	 1juLHaFPlr9xiFz/mO7yhyAkJc1dDV1ndtDhb0ntWLZ9WCzMzSppiJTnd5mvp0wP6g
	 3QgA2YzCN05TBoyCVCdPDlNB5aoJUMCvNvs2M0o4T2hek1sWnbgn36WxEwwIwKCkaG
	 gAFMPuEUL/wzA==
Date: Thu, 4 Nov 2021 15:48:36 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Vikram Garhwal <fnu.vikram@xilinx.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, julien@xen.org
Subject: Re: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
In-Reply-To: <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com>
Message-ID: <alpine.DEB.2.22.394.2111041546030.284830@ubuntu-linux-20-04-desktop>
References: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com> <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 3 Nov 2021, Vikram Garhwal wrote:
> Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
> This update is done to support device tree overlays.
> 
> A few minor changes are done to make it compatible with Xen:
> fdt_overlay.c: overlay_fixup_phandle()
>     Replace  strtoul() simple_strtoul() as strtoul() is not available in Xen lib
>     and included lib.h.
>     Change char *endptr to const char *endptr.
> 
> libfdt_env.h:
>     Changed path for config.h and stdbool.h. Remaining Xen changes to
>     libfdt_env.h carried over from existing libfdt (v1.4.0)

Hi Vikram, thanks for the patch!

Would you be able to split this patch into two patches:

- the first patch pulls in the new libfdt
- the second patch makes the necessary changes to make it compatible
  with Xen

I understand that the first patch alone would break the build, but they
can be easily squashed together on commit. And reading the two patches
separately it would make them a lot easier to review.


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 22:59:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 22:59:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221938.383876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1milhx-0002YV-3V; Thu, 04 Nov 2021 22:59:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221938.383876; Thu, 04 Nov 2021 22:59:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1milhx-0002YO-0L; Thu, 04 Nov 2021 22:59:45 +0000
Received: by outflank-mailman (input) for mailman id 221938;
 Thu, 04 Nov 2021 22:59:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1milhw-0002YI-8D
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 22:59:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1milhv-0006T9-Ta; Thu, 04 Nov 2021 22:59:43 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.26.82]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1milhv-0001W5-N3; Thu, 04 Nov 2021 22:59:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=6So2Z5VjW3eOo7zzm6bBVxoAYgZpQUTSWCaMT616TpE=; b=b6pqk/mjpKUieNZTZs6j3I04qs
	Fw8wvAi1qxU+7Iwjx6qsFY45tqQQpdYu7pgMZ8GVvuRQzQUcuI1SpR5W0UCkv8V2TkBrwvMHzj/JB
	9WLXzqJ7kudXu2MOI9lbl8xSLT/w9n/aZSX8KPB/hmA7VQg+a20mjmkWM5LGdE+NGG/c=;
Message-ID: <9f3208df-f3a8-e5ed-ee30-aed152d32ad5@xen.org>
Date: Thu, 4 Nov 2021 22:59:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH] MAINTAINERS: add Bertrand to the ARM reviewers
To: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com, Volodymyr_Babchuk@epam.com
References: <alpine.DEB.2.22.394.2111041357580.284830@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111041357580.284830@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 04/11/2021 21:00, Stefano Stabellini wrote:
> 
> Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>

I am not sure where the Acked-by is coming from. Can Bertrand confirm on 
the ML that the is happy to be a reviewer?

> Acked-by: Stefano Stabellini <sstabellini@kernel.org>

There is a missing signed-off-by on the patch.

I am happy with the proposal, although I will wait for the two remarks 
to be resolved before giving my acked-by.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 23:04:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 23:04:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221946.383887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1milmG-0003xD-JD; Thu, 04 Nov 2021 23:04:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221946.383887; Thu, 04 Nov 2021 23:04:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1milmG-0003x6-FY; Thu, 04 Nov 2021 23:04:12 +0000
Received: by outflank-mailman (input) for mailman id 221946;
 Thu, 04 Nov 2021 23:04:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqP1=PX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1milmF-0003x0-Hc
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 23:04:11 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8480d98f-3dc3-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 00:04:10 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id A284D6120D;
 Thu,  4 Nov 2021 23:04:08 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8480d98f-3dc3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636067048;
	bh=9jt+BSwma52OmORglvvPLalIKhSMuZ8Hu1UoyeOmbVc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=B+CuFtvjddzJLG6A7WVAdMoS2Q5IQKRsDPf6am8KzOphsl9bv64emhW4E4XaON8cF
	 knCORQ8HHEvRrN+Cot9HjwOh67bdIIjQscqbnIK+GBClyfomzOl1G6kVIEJA3IWrVs
	 aa1JfxfidWJUkuK4HpsfHH1d5Y/GRV+P4pXx+gPF79hDmykcy9EcPUp68KENs3cGKl
	 dNUJ+9I+oNiryT/ZaUg6oo9mpUUqiT/7daniHoKQojY8SffW1ukEvHDgeRAlPAdg5g
	 n/NH+HV2AmGxlgjwCtjWfyj2rnbpuMV9RxZiANoT74lTbg+tUSM5SVoo2xvnjPu6w1
	 r5vnuXeGOwsqA==
Date: Thu, 4 Nov 2021 16:04:07 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, bertrand.marquis@arm.com, 
    Volodymyr_Babchuk@epam.com
Subject: Re: [PATCH] MAINTAINERS: add Bertrand to the ARM reviewers
In-Reply-To: <9f3208df-f3a8-e5ed-ee30-aed152d32ad5@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111041601390.284830@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2111041357580.284830@ubuntu-linux-20-04-desktop> <9f3208df-f3a8-e5ed-ee30-aed152d32ad5@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 4 Nov 2021, Julien Grall wrote:
> Hi Stefano,
> 
> On 04/11/2021 21:00, Stefano Stabellini wrote:
> > 
> > Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>
> 
> I am not sure where the Acked-by is coming from. Can Bertrand confirm on the
> ML that the is happy to be a reviewer?

Yes, he gave it to me verbally but I was assuming Bertrand would also
confirm on xen-devel.


> > Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> There is a missing signed-off-by on the patch.
> 
> I am happy with the proposal, although I will wait for the two remarks to be
> resolved before giving my acked-by.

Ahah oh man I somehow forgot it


From xen-devel-bounces@lists.xenproject.org Thu Nov 04 23:11:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Nov 2021 23:11:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221951.383898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1milt5-0005NN-Co; Thu, 04 Nov 2021 23:11:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221951.383898; Thu, 04 Nov 2021 23:11:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1milt5-0005NG-80; Thu, 04 Nov 2021 23:11:15 +0000
Received: by outflank-mailman (input) for mailman id 221951;
 Thu, 04 Nov 2021 23:11:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1milt3-0005N6-KL; Thu, 04 Nov 2021 23:11:13 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1milt3-0006hp-Gn; Thu, 04 Nov 2021 23:11:13 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1milt3-00082h-7O; Thu, 04 Nov 2021 23:11:13 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1milt3-0001zM-6r; Thu, 04 Nov 2021 23:11:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=sWs2tzv/x9E67Rgr6qD3HtTGYAvvx/uSqu3Yg1D5YFs=; b=OadhwdAol0ahzwqB5DJmBrmfyi
	UeczMu4n/GTQbFdvi1sELM+Je/ZOnepMlY3Qzo7JQPn3ksLrfLhZo2mzOQLUlddBCTiylWz/P8sEu
	E0s8lo2FEOLtTbhA8fd9uuK2xmuICIA9nDJGpSwtoAsI5Ai3/9QQoeXMb937OhbCW3vE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166047-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166047: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=faddd16e367530fe4de5480610f69d8ceb6011d8
X-Osstest-Versions-That:
    xen=0f50d1696b3c13cbf0b18fec817fc291d5a30a31
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Nov 2021 23:11:13 +0000

flight 166047 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166047/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  faddd16e367530fe4de5480610f69d8ceb6011d8
baseline version:
 xen                  0f50d1696b3c13cbf0b18fec817fc291d5a30a31

Last test of basis   166045  2021-11-04 14:02:55 Z    0 days
Testing same since   166047  2021-11-04 20:01:40 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Juergen Gross <jgross@suse.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   0f50d1696b..faddd16e36  faddd16e367530fe4de5480610f69d8ceb6011d8 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 01:36:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 01:36:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221962.383912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mio9F-000419-5E; Fri, 05 Nov 2021 01:36:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221962.383912; Fri, 05 Nov 2021 01:36:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mio9E-00040i-Ui; Fri, 05 Nov 2021 01:36:04 +0000
Received: by outflank-mailman (input) for mailman id 221962;
 Fri, 05 Nov 2021 01:36:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mio9C-00040c-OU
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 01:36:03 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9e875bb-3dd8-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 02:36:00 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id A309561245;
 Fri,  5 Nov 2021 01:35:57 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9e875bb-3dd8-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636076157;
	bh=KUSZRoT9wMvTtStTHiRtYeUgAcZUABArhGpHv8fdJO0=;
	h=Date:From:To:cc:Subject:From;
	b=onVueMSD43mzVi+WxkhJG+dVXz0s3Z05aj3c4jBp5AfeHq09ICxAkYCtG6gckA1Eh
	 l55niUDyjeSwK+Gw/FL1/c6vzdX90+W0C0jDQS0gqeG3PqNLWKlqp0PvYcM/68fpCH
	 KdPE76WNP2SdmOMXzFXO6jaHDuXLi9x2p71J+Tg7msp5PSfEVfnsRN799eMilfGAV/
	 OFD1CfXholgRdFST26CcJFOSjb+EyRNe6B0QIOB0CpjaSbaEYXBHbGdq0ElbP8IZMh
	 nx9JOJjZdRim6M9/Z2AtPdNWBnT7GdIzkpWoxsUqxHJY6hmIDdVaUsKrDz7TnG7tTz
	 w3PSsCq1NXVOQ==
Date: Thu, 4 Nov 2021 18:35:56 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Penny.Zheng@arm.com
cc: sstabellini@kernel.org, xen-devel@lists.xenproject.org
Subject: static-mem preventing dom0 from booting
Message-ID: <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1172480714-1636076013=:284830"
Content-ID: <alpine.DEB.2.22.394.2111041833390.284830@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1172480714-1636076013=:284830
Content-Type: text/plain; CHARSET=US-ASCII
Content-ID: <alpine.DEB.2.22.394.2111041833391.284830@ubuntu-linux-20-04-desktop>

Hi Penny,

I am trying to test the static-mem feature in Xen 4.16 but I am having
some issues. I can boot a dom0less domU with static-mem configured
correctly, but when I do so, dom0 doesn't boot any longer.

In the same configuration, if I remove the static-mem related lines from
the domU node on device tree, both dom0 and domU boot successfully.

I am sure the dom0 memory range, allocated by Xen automatically, and the
domU memory range, hand-picked by me, do not clash as you can see from
the boot logs (appended).

Am I missing anything in the configuration? I am using a ZCU102 board,
the memory node on the host device tree is:

	memory {
		device_type = "memory";
		reg = <0x00 0x00 0x00 0x7ff00000 0x08 0x00 0x00 0x80000000>;
	};

I am attaching my u-boot boot.scr script with the device tree
modification to add static memory.

Many thanks for your help!

Cheers,

Stefano


(XEN) Xen version 4.16-rc (sstabellini@) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0) debug=y Thu Nov  4 18:28:30 PDT 2021
(XEN) Latest ChangeSet: Mon Nov 1 12:36:26 2021 +0000 git:9f8434d778-dirty
(XEN) Processor: 00000000410fd034: "ARM Limited", variant: 0x0, part 0xd03,rev 0x4
(XEN) 64-bit Execution:
(XEN)   Processor Features: 1100000000002222 0000000000000000
(XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
(XEN)     Extensions: FloatingPoint AdvancedSIMD
(XEN)   Debug Features: 0000000010305106 0000000000000000
(XEN)   Auxiliary Features: 0000000000000000 0000000000000000
(XEN)   Memory Model Features: 0000000000001122 0000000000000000
(XEN)   ISA Features:  0000000000011120 0000000000000000
(XEN) 32-bit Execution:
(XEN)   Processor Features: 0000000000001231:0000000000011011
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
(XEN)     Extensions: GenericTimer Security
(XEN)   Debug Features: 0000000003010066
(XEN)   Auxiliary Features: 0000000000000000
(XEN)   Memory Model Features: 0000000010101105 0000000040000000
(XEN)                          0000000001260000 0000000002102211
(XEN)   ISA Features: 0000000002101110 0000000013112111 0000000021232042
(XEN)                 0000000001112131 0000000000011142 0000000000011121
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 65000 KHz
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=00000000f9010000
(XEN)         gic_cpu_addr=00000000f9020000
(XEN)         gic_hyp_addr=00000000f9040000
(XEN)         gic_vcpu_addr=00000000f9060000
(XEN)         gic_maintenance_irq=25
(XEN) GICv2: Adjusting CPU interface base to 0xf902f000
(XEN) GICv2: 192 lines, 4 cpus, secure (IID 00000000).
(XEN) XSM Framework v1.0.1 initialized
(XEN) Initialising XSM SILO mode
(XEN) Using scheduler: null Scheduler (null)
(XEN) Initializing null scheduler
(XEN) WARNING: This is experimental software in development.
(XEN) Use at your own risk.
(XEN) Allocated console ring of 16 KiB.
(XEN) Bringing up CPU1
(XEN) Bringing up CPU2
(XEN) Bringing up CPU3
(XEN) Brought up 4 CPUs
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID
(XEN) P2M: 3 levels with order-1 root, VTCR 0x0000000080023558
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading d0 kernel from boot module @ 0000000000e00000
(XEN) Loading ramdisk from boot module @ 0000000002200000
(XEN) Allocating 1:1 mappings totalling 1024MB for dom0:
(XEN) BANK[0] 0x00000020000000-0x00000060000000 (1024MB)
(XEN) Grant table range: 0x00000005600000-0x00000005640000
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Extended region 0: 0x80000000->0xc0000000
(XEN) Extended region 1: 0xc8000000->0xe0000000
(XEN) Extended region 2: 0xf0000000->0xf9000000
(XEN) Extended region 3: 0xffc00000->0x600000000
(XEN) Extended region 4: 0x880000000->0x8000000000
(XEN) Extended region 5: 0x8001000000->0x10000000000
(XEN) Loading zImage from 0000000000e00000 to 0000000020000000-0000000021367a00
(XEN) Loading d0 initrd from 0000000002200000 to 0x0000000028200000-0x0000000029d60ac0
(XEN) Loading d0 DTB to 0x0000000028000000-0x00000000280096d4
(XEN) *** LOADING DOMU cpus=1 memory=80000KB ***
(XEN) Loading d1 kernel from boot module @ 0000000003e00000
(XEN) Loading ramdisk from boot module @ 0000000005200000
(XEN) Loading zImage from 0000000003e00000 to 0000000040000000-0000000041367a00
(XEN) Loading d1 initrd from 0000000005200000 to 0x0000000048200000-0x0000000048383400
(XEN) Loading d1 DTB to 0x0000000048000000-0x00000000480007f3
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: Errors and warnings
(XEN) Guest Loglevel: All
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) DEBUG start_xen 1054 id=0
(XEN) null.c:353: 0 <-- d0v0
(XEN) DEBUG start_xen 1054 id=1
(XEN) null.c:353: 1 <-- d1v0
(XEN) Freed 348kB init memory.
(XEN) traps.c:2013:d0v0 HSR=0x00000092000045 pc=0xffffffc0105300ec gva=0xfffffffdfda3b000 gpa=0x0000081ffff000
(XEN) d1v0 Unhandled SMC/HVC: 0x84000050
(XEN) d1v0 Unhandled SMC/HVC: 0x8600ff01
(XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER4
(XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER8
(XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER12
(XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER16
(XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER20
(XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
(XEN) DOM1: [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
(XEN) DOM1: [    0.000000] Linux version 5.14.0-00002-g9c4bc20097e8 (sstabellini@ubuntu-linux-20-04-desktop) (gcc (Ubuntu 9.3.0-17ubuntu1~
(XEN) DOM1: 20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #9 SMP Wed Nov 3 16:50:00 PDT 2021
(XEN) DOM1: [    0.000000] efi: UEFI not found.
(XEN) DOM1: [    0.000000] Zone ranges:
(XEN) DOM1: [    0.000000]   DMA32    [mem 0x0000000040000000-0x000000005fffffff]
(XEN) DOM1: [    0.000000]   Normal   empty
(XEN) DOM1: [    0.000000] Movable zone start for each node
(XEN) DOM1: [    0.000000] Early memory node ranges
(XEN) DOM1: [    0.000000]   node   0: [mem 0x0000000040000000-0x000000005fffffff]
(XEN) DOM1: [    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000005fffffff]
(XEN) DOM1: [    0.000000] cma: Reserved 256 MiB at 0x000000004f400000
(XEN) DOM1: [    0.000000] psci: probing for conduit method from DT.
(XEN) DOM1: [    0.000000] psci: PSCIv1.1 detected in firmware.
(XEN) DOM1: [    0.000000] psci: Using standard PSCI v0.2 function IDs
(XEN) DOM1: [    0.000000] psci: Trusted OS migration not required
(XEN) DOM1: [    0.000000] psci: SMC Calling Convention v1.1
(XEN) DOM1: [    0.000000] percpu: Embedded 22 pages/cpu s51672 r8192 d30248 u90112
(XEN) DOM1: [    0.000000] Detected VIPT I-cache on CPU0
(XEN) DOM1: [    0.000000] CPU features: detected: ARM erratum 843419
(XEN) DOM1: [    0.000000] CPU features: detected: ARM erratum 845719
(XEN) DOM1: [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129280
(XEN) DOM1: [    0.000000] Kernel command line: console=ttyAMA0
(XEN) DOM1: [    0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
(XEN) DOM1: [    0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
(XEN) DOM1: [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
(XEN) DOM1: [    0.000000] Memory: 230280K/524288K available (13184K kernel code, 862K rwdata, 3636K rodata, 2048K init, 315K bss, 31864K 
(XEN) DOM1: reserved, 262144K cma-reserved)
(XEN) DOM1: [    0.000000] rcu: Hierarchical RCU implementation.
(XEN) DOM1: [    0.000000] rcu:         RCU event tracing is enabled.
(XEN) DOM1: [    0.000000] rcu:         RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
(XEN) DOM1: [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
(XEN) DOM1: [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
(XEN) DOM1: [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
(XEN) DOM1: [    0.000000] Root IRQ handler: gic_handle_irq
(XEN) DOM1: [    0.000000] random: get_random_bytes called from start_kernel+0x4a8/0x728 with crng_init=0
(XEN) DOM1: [    0.000000] arch_timer: cp15 timer(s) running at 65.00MHz (virt).
(XEN) DOM1: [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xefdb196da, max_idle_ns: 440795204367 ns
(XEN) DOM1: [    0.000055] sched_clock: 56 bits at 65MHz, resolution 15ns, wraps every 2199023255550ns
(XEN) DOM1: [    0.015323] Console: colour dummy device 80x25
(XEN) DOM1: [    0.017224] Calibrating delay loop (skipped), value calculated using timer frequency.. 130.00 BogoMIPS (lpj=260000)
(XEN) DOM1: [    0.017335] pid_max: default: 32768 minimum: 301
(XEN) DOM1: [    0.019932] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
(XEN) DOM1: [    0.020022] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
(XEN) DOM1: [    0.070463] rcu: Hierarchical SRCU implementation.
(XEN) DOM1: [    0.073611] EFI services will not be available.
(XEN) DOM1: [    0.074889] smp: Bringing up secondary CPUs ...
(XEN) DOM1: [    0.075178] smp: Brought up 1 node, 1 CPU
(XEN) DOM1: [    0.075205] SMP: Total of 1 processors activated.
(XEN) DOM1: [    0.075253] CPU features: detected: 32-bit EL0 Support
(XEN) DOM1: [    0.075304] CPU features: detected: CRC32 instructions
(XEN) DOM1: [    0.076596] CPU: All CPU(s) started at EL1
(XEN) DOM1: [    0.076717] alternatives: patching kernel code
(XEN) DOM1: [    0.092884] devtmpfs: initialized
(XEN) DOM1: [    0.109553] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
(XEN) DOM1: [    0.109716] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
(XEN) DOM1: [    0.124058] pinctrl core: initialized pinctrl subsystem
(XEN) DOM1: [    0.143628] NET: Registered PF_NETLINK/PF_ROUTE protocol family
(XEN) DOM1: [    0.157764] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
(XEN) DOM1: [    0.158089] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
(XEN) DOM1: [    0.158426] audit: initializing netlink subsys (disabled)
(XEN) DOM1: [    0.166578] cpuidle: using governor menu
(XEN) DOM1: [    0.167213] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
(XEN) DOM1: [    0.168930] audit: type=2000 audit(0.140:1): state=initialized audit_enabled=0 res=1
(XEN) DOM1: [    0.169475] ASID allocator initialised with 65536 entries
(XEN) DOM1: [    0.171250] Serial: AMBA PL011 UART driver
(XEN) DOM1: [    0.181920] 22000000.sbsa-uart: ttyAMA0 at MMIO 0x22000000 (irq = 13, base_baud = 0) is a SBSA
(XEN) DOM1: [    0.533061] printk: console [ttyAMA0] enabled

[... cutting here, DOM1 boots until the end, no signs of dom0]
--8323329-1172480714-1636076013=:284830
Content-Type: text/plain; CHARSET=US-ASCII; NAME=boot.source
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.22.394.2111041833330.284830@ubuntu-linux-20-04-desktop>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME=boot.source

dGZ0cGIgMHhFMDAwMDAgNC4xNi0yMDIyLjEvSW1hZ2UtZG9tVQ0KdGZ0cGIg
MHgyMjAwMDAwIDQuMTYtMjAyMi4xL3hlbi1yb290ZnMuY3Bpby5neg0KdGZ0
cGIgMHgzRTAwMDAwIDQuMTYtMjAyMi4xL0ltYWdlLWRvbVUNCnRmdHBiIDB4
NTIwMDAwMCA0LjE2LTIwMjIuMS9pbml0cmQuY3Bpbw0KdGZ0cGIgMHg1NDAw
MDAwIDQuMTYtMjAyMi4xL3Bhc3N0aHJvdWdoLWV4YW1wbGUtcGFydC5kdGIN
CnRmdHBiIDB4NTYwMDAwMCA0LjE2LTIwMjIuMS94ZW4NCnRmdHBiIDB4NTgw
MDAwMCA0LjE2LTIwMjIuMS9tcHNvYy5kdGINCmZkdCBhZGRyIDB4NTgwMDAw
MA0KZmR0IHJlc2l6ZSAxMDI0DQpmZHQgc2V0IC9jaG9zZW4gXCNhZGRyZXNz
LWNlbGxzIDwweDI+DQpmZHQgc2V0IC9jaG9zZW4gXCNzaXplLWNlbGxzIDww
eDI+DQpmZHQgc2V0IC9jaG9zZW4geGVuLHhlbi1ib290YXJncyAiY29uc29s
ZT1kdHVhcnQgZHR1YXJ0PXNlcmlhbDAgZG9tMF9tZW09MUcgZG9tMF9tYXhf
dmNwdXM9MSBib290c2NydWI9MCB2d2ZpPW5hdGl2ZSBzY2hlZD1udWxsIGxv
Z2x2bD05Ig0KZmR0IG1rbm9kIC9jaG9zZW4gZG9tMA0KZmR0IHNldCAvY2hv
c2VuL2RvbTAgY29tcGF0aWJsZSAgInhlbixsaW51eC16aW1hZ2UiICJ4ZW4s
bXVsdGlib290LW1vZHVsZSIgIm11bHRpYm9vdCxtb2R1bGUiDQpmZHQgc2V0
IC9jaG9zZW4vZG9tMCByZWcgPDB4MCAweEUwMDAwMCAweDAgMHgxMzY3YTAw
Pg0KZmR0IHNldCAvY2hvc2VuIHhlbixkb20wLWJvb3RhcmdzICJjb25zb2xl
PWh2YzAgZWFybHljb249eGVuIGVhcmx5cHJpbnRrPXhlbiBjbGtfaWdub3Jl
X3VudXNlZCByb290PS9kZXYvcmFtMCINCmZkdCBta25vZCAvY2hvc2VuIGRv
bTAtcmFtZGlzaw0KZmR0IHNldCAvY2hvc2VuL2RvbTAtcmFtZGlzayBjb21w
YXRpYmxlICAieGVuLGxpbnV4LWluaXRyZCIgInhlbixtdWx0aWJvb3QtbW9k
dWxlIiAibXVsdGlib290LG1vZHVsZSINCmZkdCBzZXQgL2Nob3Nlbi9kb20w
LXJhbWRpc2sgcmVnIDwweDAgMHgyMjAwMDAwIDB4MCAweDFiNjBhYzA+DQpm
ZHQgbWtub2QgL2Nob3NlbiBkb21VMA0KZmR0IHNldCAvY2hvc2VuL2RvbVUw
IGNvbXBhdGlibGUgInhlbixkb21haW4iDQpmZHQgc2V0IC9jaG9zZW4vZG9t
VTAgXCNhZGRyZXNzLWNlbGxzIDwweDI+DQpmZHQgc2V0IC9jaG9zZW4vZG9t
VTAgXCNzaXplLWNlbGxzIDwweDI+DQpmZHQgc2V0IC9jaG9zZW4vZG9tVTAg
bWVtb3J5IDwwIDB4ODAwMDA+DQpmZHQgc2V0IC9jaG9zZW4vZG9tVTAgXCN4
ZW4sc3RhdGljLW1lbS1hZGRyZXNzLWNlbGxzIDwweDI+DQpmZHQgc2V0IC9j
aG9zZW4vZG9tVTAgXCN4ZW4sc3RhdGljLW1lbS1zaXplLWNlbGxzIDwweDE+
DQpmZHQgc2V0IC9jaG9zZW4vZG9tVTAgeGVuLHN0YXRpYy1tZW0gPDB4OCAw
eDAgMHgyMDAwMDAwMD4NCmZkdCBzZXQgL2Nob3Nlbi9kb21VMCBjcHVzIDwx
Pg0KZmR0IHNldCAvY2hvc2VuL2RvbVUwIHZwbDAxMSA8MHgxPg0KZmR0IG1r
bm9kIC9jaG9zZW4vZG9tVTAgbW9kdWxlMHgzRTAwMDAwDQpmZHQgc2V0IC9j
aG9zZW4vZG9tVTAvbW9kdWxlMHgzRTAwMDAwIGNvbXBhdGlibGUgICJtdWx0
aWJvb3Qsa2VybmVsIiAibXVsdGlib290LG1vZHVsZSINCmZkdCBzZXQgL2No
b3Nlbi9kb21VMC9tb2R1bGUweDNFMDAwMDAgcmVnIDwweDAgMHgzRTAwMDAw
IDB4MCAweDEzNjdhMDA+DQpmZHQgc2V0IC9jaG9zZW4vZG9tVTAvbW9kdWxl
MHgzRTAwMDAwIGJvb3RhcmdzICJjb25zb2xlPXR0eUFNQTAiDQpmZHQgbWtu
b2QgL2Nob3Nlbi9kb21VMCBtb2R1bGUweDUyMDAwMDANCmZkdCBzZXQgL2No
b3Nlbi9kb21VMC9tb2R1bGUweDUyMDAwMDAgY29tcGF0aWJsZSAgIm11bHRp
Ym9vdCxyYW1kaXNrIiAibXVsdGlib290LG1vZHVsZSINCmZkdCBzZXQgL2No
b3Nlbi9kb21VMC9tb2R1bGUweDUyMDAwMDAgcmVnIDwweDAgMHg1MjAwMDAw
IDB4MCAweDE4MzQwMD4NCmZkdCBta25vZCAvY2hvc2VuL2RvbVUwIG1vZHVs
ZTB4NTQwMDAwMA0KZmR0IHNldCAvY2hvc2VuL2RvbVUwL21vZHVsZTB4NTQw
MDAwMCBjb21wYXRpYmxlICAibXVsdGlib290LGRldmljZS10cmVlIiAibXVs
dGlib290LG1vZHVsZSINCmZkdCBzZXQgL2Nob3Nlbi9kb21VMC9tb2R1bGUw
eDU0MDAwMDAgcmVnIDwweDAgMHg1NDAwMDAwIDB4MCAweDQ1Yj4NCnNldGVu
diBmZHRfaGlnaCAweGZmZmZmZmZmZmZmZmZmZmYNCmJvb3RpIDB4NTYwMDAw
MCAtIDB4NTgwMDAwMA0K

--8323329-1172480714-1636076013=:284830--


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 01:51:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 01:51:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221970.383923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mioOI-0006Iw-GY; Fri, 05 Nov 2021 01:51:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221970.383923; Fri, 05 Nov 2021 01:51:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mioOI-0006Ip-DN; Fri, 05 Nov 2021 01:51:38 +0000
Received: by outflank-mailman (input) for mailman id 221970;
 Fri, 05 Nov 2021 01:51:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mioOG-0006If-Ua; Fri, 05 Nov 2021 01:51:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mioOG-00036r-8s; Fri, 05 Nov 2021 01:51:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mioOF-00052a-SP; Fri, 05 Nov 2021 01:51:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mioOF-00084W-Rh; Fri, 05 Nov 2021 01:51:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=naNCgSHjnU9N/aaiGvJm/0zGhIdHhIpn+X3gCMRAznk=; b=Hk9bDgIHtpauuEfOU5zbnGr3VO
	9tGic/wRdbFTTo/r0e9d0Zdxmy39waQr6Iwscs6HBuKGtf0pfAKv5sXsW+K+rlZtKB8VJKSpsDiVr
	mmRObimo4ioRgJm0bVQQffH3lk76VArco7pYnmh5QmaGjSd/hXtnY/UI2Uh6QRq7rMTI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166043-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166043: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=512863ed238d7390f74d43f0ba298b1dfa8f4803
X-Osstest-Versions-That:
    xen=b67f09721f136cc3a9afcb6a82466d1bd27aa6c0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Nov 2021 01:51:35 +0000

flight 166043 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166043/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166031
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  512863ed238d7390f74d43f0ba298b1dfa8f4803
baseline version:
 xen                  b67f09721f136cc3a9afcb6a82466d1bd27aa6c0

Last test of basis   166031  2021-11-03 14:06:47 Z    1 days
Testing same since   166043  2021-11-04 07:49:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Ian Jackson <iwj@xenproject.org>
  Juergen Gross <jgross@suse.com>
  Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
  Stefano Stabellini <sstabellini@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   b67f09721f..512863ed23  512863ed238d7390f74d43f0ba298b1dfa8f4803 -> master


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 03:23:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 03:23:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221985.383956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mippJ-0006mA-D1; Fri, 05 Nov 2021 03:23:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221985.383956; Fri, 05 Nov 2021 03:23:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mippJ-0006m3-9t; Fri, 05 Nov 2021 03:23:37 +0000
Received: by outflank-mailman (input) for mailman id 221985;
 Fri, 05 Nov 2021 03:23:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=znic=PY=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mippH-0006lu-Ap
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 03:23:35 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02on0613.outbound.protection.outlook.com
 [2a01:111:f400:fe06::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c028e0a3-3de7-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 04:23:32 +0100 (CET)
Received: from AM5PR0601CA0048.eurprd06.prod.outlook.com
 (2603:10a6:203:68::34) by VI1PR0802MB2494.eurprd08.prod.outlook.com
 (2603:10a6:800:b6::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Fri, 5 Nov
 2021 03:23:28 +0000
Received: from AM5EUR03FT025.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:203:68:cafe::2b) by AM5PR0601CA0048.outlook.office365.com
 (2603:10a6:203:68::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 03:23:27 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT025.mail.protection.outlook.com (10.152.16.157) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Fri, 5 Nov 2021 03:23:27 +0000
Received: ("Tessian outbound d49ee2bec50d:v108");
 Fri, 05 Nov 2021 03:23:26 +0000
Received: from 0e111bae777b.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 80424ABC-9627-47B7-AC39-78D5BCD21FBB.1; 
 Fri, 05 Nov 2021 03:23:21 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0e111bae777b.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 05 Nov 2021 03:23:21 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com (2603:10a6:10:2e4::7)
 by DB9PR08MB7050.eurprd08.prod.outlook.com (2603:10a6:10:2bd::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Fri, 5 Nov
 2021 03:23:17 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165]) by DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165%3]) with mapi id 15.20.4669.011; Fri, 5 Nov 2021
 03:23:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c028e0a3-3de7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+pzeIrlEfGm/kn9oItGNutQTWoFYDoC1gT21Ki9oJd0=;
 b=XJ6J3UURvv4eU4QUAdZRWouZ59BpK+XSmD/ufCav613H7OJgpzyFPIBOCnY/4pA6gFnawp7k+GVVb6HQeM3049u7CkznwyGWQhhQLHIc5DH/ujxD9cyIdmkzHqbC7JoofAR7EMTLNrexerzJc51xPVQ8EJtrvAb8gVUlUYvDXLo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LCbpePdUiN3gTeoShFPKIfMnWzQJq5qxKKq5ysAAoQbx6h/cDsvEFPjW0xUzF2kXW7sKsfz1DrOgYHjBEHEcsl7UTdLpEAF/71VILqmBwNQOSI3CkoTs0TFzbiTz9KDzcHao2rzIhEnVSAhgS67esYbp64rf7uudjZdm4xktAVTgzTx+/80kQr412DAWHnA4rKl0oOJHCyPRjZLOip5wJW8ZksdR6HFz3WUhQPX2N50r2O0c8j03RAieZWeWDxujLfTWXlvPKzKfjdHDbwbRLyFzpMR+NXO4nGtNnJp1ASQL8WvPpfv1cS/MLDG1ExXiS67j3ZxqrgMdaKXv72B03w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+pzeIrlEfGm/kn9oItGNutQTWoFYDoC1gT21Ki9oJd0=;
 b=D5+QI/fMJktWhob4tDizm/jM1L0IvJQpLs4pj0jldcJWwMWvqF4YHdezvesTb9EMAkg+Q0BFwlBVPaxcRR9F2BagSoPtA3gSRdAicV6Oss9pKkhfaBj2GQ8EkoTMxq69ZpAoMcc7aO6lKUmWgsAdCnEGF4yzlXdccdHyezaWjsxGEiFYt3FE4E7mWTIgNebzFYLAuuO0on3uG9n/pTrszKO/x/VUBszS5wxTK5udCc8LWjGldQGaniP5VLY1/h4HnJsfYEFIiSgvwh5UKeu31C7eSRlQdA10uKdmdYZzqKm56zJ7V3/CKf9Yx9Zeo6HPN7G+R3F4OuRVZC3dKWIhtQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+pzeIrlEfGm/kn9oItGNutQTWoFYDoC1gT21Ki9oJd0=;
 b=XJ6J3UURvv4eU4QUAdZRWouZ59BpK+XSmD/ufCav613H7OJgpzyFPIBOCnY/4pA6gFnawp7k+GVVb6HQeM3049u7CkznwyGWQhhQLHIc5DH/ujxD9cyIdmkzHqbC7JoofAR7EMTLNrexerzJc51xPVQ8EJtrvAb8gVUlUYvDXLo=
From: Penny Zheng <Penny.Zheng@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Wei
 Chen <Wei.Chen@arm.com>
Subject: RE: static-mem preventing dom0 from booting
Thread-Topic: static-mem preventing dom0 from booting
Thread-Index: AQHX0eWC7qpRq+VAt0Cu1/k92WugAqv0ODjw
Date: Fri, 5 Nov 2021 03:23:17 +0000
Message-ID:
 <DU2PR08MB73256624607E7624CAAD38E5F78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
References:
 <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: E7D2571691319C469BF12B212A6D158C.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: ef27ea12-021c-49a1-b6d4-08d9a00ba201
x-ms-traffictypediagnostic: DB9PR08MB7050:|VI1PR0802MB2494:
X-Microsoft-Antispam-PRVS:
	<VI1PR0802MB24941919970C1FC17F385148F78E9@VI1PR0802MB2494.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:293;OLM:293;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 43oB7iEGgBkWBOlgJNGVh1zORcJwoO2P58uPAkRdTr4et9Fxx3aqxZiNe7pte+Tk+KYAQIGbbGot7XLvqTEiPvDtycICIwy24tVVUcPqYtNU6SSmKxrdOXzVo6HVUSMVOBeW1Xo5gEstvW7vno0qAhs+5fuwfrG3juBv/ogTl3RX5T+p9MFtLp9M+GLSdk16n2Wvwvl5VcbK+3hplJ8d9Zy+NxeU7rGMpFp5hjDXzqkXOLYtMqNbBsjJ/1wztd7uI4+t21fXZi66XJfTeywW+TmO8n9zFaF6wBT66L/Vo1VO7eXZlhjbIGdS/KscDRqJV2j7IV3IvslImKzJuMERUsi1WE7UaLTJGYLAlg49sxGq+ga0+K7u5tyCZULlTbEEYwOQPgn6jDT125hpjhPHaCsB43UywSo4ewqQrlNY4unSEryDQlWynZcgsBU6rWsUM7wVS+sTCPcQnWnSbqkV7fBQ6fky5WGGdbVtlEQVWCzwLf5ZHguiZGyDYOAK3SnWt7iLstJgWOwytz2yyNinw/RvMimfGZ/zZ2yKqc0WenRSq35ZP0RPz+qWKdIB+Za4TS3U/Q06gGz7ZkUzY8uvG//ptaQfjmCPQmtk5cdxI/LkwVkhIpEwr5Aqdh86ws1/KDT2XBLkd6DWhQch78rXQQtS15lu5efHwgBreW7A/aHHuBQMusMrqksyYeGEnbYBVZ1LKY2FI9MfdP+Ae3y9kZlBEahoSy/4RR05aRRxUVA=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(71200400001)(64756008)(316002)(66446008)(52536014)(508600001)(6916009)(2906002)(76116006)(30864003)(7696005)(8676002)(66946007)(186003)(8936002)(66476007)(9686003)(6506007)(53546011)(55016002)(54906003)(66556008)(26005)(122000001)(38100700002)(86362001)(83380400001)(38070700005)(33656002)(4326008)(5660300002)(139555002);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7050
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9bf363f2-d400-4f3c-ab74-08d9a00b9c41
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	T+7ipK/KR/UAzZnlwmD7nD+WFiXOvkLl9BbddsgLieNqQTvCrCof3iRJ7Zix4Pm4N29xAizQIVKCuMau0SgPYbhWcaO84B1tV6tWmZFrXyrHNwcKRryi8Epl4CAOQk0k0aNG54mTSM8/kkiENFR/WUqWAxjYcUkGxeezOcwoYSW5+hcAjqARlycjFwzWoatr3hl6ov0kxqT1ZinlAQWiK7T1E4mj3gHzLTDeHSJBZu1qjPvyp1wr2P3h9vPGOfYIkeNG4S4dIgPr5ui9wIFCNS8BPZljF19pAKtGzZ/MbxhHwZtR11cxZSZ5/K3iCnmKqbyHruKqybA/ZOh5YgaSx9SB9X3Tqo+0CHNrbMs5hwGyZK56skklDTphcGC4xrdH0+JtY2lODaeGJgy7YS/uFafmz7zlVHa7foxI0JKCVjQ6HrZFlJY8fTSx3IvBloPlfZIODOEnQAF9NO27xi3vzDrvPf6xSLOeopGk0PFRntsaQ9aJwyj5fRN5LNcYSVtPpSaLbUWp/5ZcGm8nCQxn5tf3VRBSrTZy9oVSucSG9j0ZWELGpTCnB6xsDlwe7/ysO8NKXLlAPoety1zXpamVwzYu2oXAJ0VIlPkEdLN9elwBvFPgoT9kuYTuACjob1Wg47++MEWpOPQCq4VORIVlRlstdkITEv9XRCOdggUyfimfjrGMsa3Me5apzkkqal4EV8YnrH1ni/0gBvq1WS03zFij6bDcJb9xbbygdP789Zc=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(186003)(336012)(6862004)(82310400003)(7696005)(30864003)(54906003)(5660300002)(508600001)(47076005)(55016002)(316002)(4326008)(26005)(8936002)(52536014)(36860700001)(6506007)(8676002)(33656002)(81166007)(2906002)(9686003)(53546011)(70586007)(70206006)(86362001)(356005)(83380400001)(139555002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 03:23:27.2031
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ef27ea12-021c-49a1-b6d4-08d9a00ba201
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2494

Hi Stefano

> -----Original Message-----
> From: Stefano Stabellini <sstabellini@kernel.org>
> Sent: Friday, November 5, 2021 9:36 AM
> To: Penny Zheng <Penny.Zheng@arm.com>
> Cc: sstabellini@kernel.org; xen-devel@lists.xenproject.org
> Subject: static-mem preventing dom0 from booting
>=20
> Hi Penny,
>=20
> I am trying to test the static-mem feature in Xen 4.16 but I am having so=
me
> issues. I can boot a dom0less domU with static-mem configured correctly, =
but
> when I do so, dom0 doesn't boot any longer.
>=20

Hmm, In our first intention, dom0less is a mandatory option for static allo=
cation.
domU on static allocation shall boot when dom0 doesn't boot there.

We think that, nevertheless, dom0 memory range is allocated by Xen automati=
cally,
and it leads to the unpredictability. Static allocation through device tree=
 configuration
prefers the total static environment to avoid unpredictability.

> In the same configuration, if I remove the static-mem related lines from =
the
> domU node on device tree, both dom0 and domU boot successfully.
>=20
> I am sure the dom0 memory range, allocated by Xen automatically, and the
> domU memory range, hand-picked by me, do not clash as you can see from th=
e
> boot logs (appended).
>=20
> Am I missing anything in the configuration? I am using a ZCU102 board, th=
e
> memory node on the host device tree is:
>=20

Are you suggesting one scenario where dom0 with static-mem domU?

Hmmm, one quick thought, it may not be working with vpl011 emulation.
When dom0 exists, vpl011 will take dom0 as backend, which requests event
channel, xen store, etc, involved to communicate. but static-mem domU
without CONFIG_XEN shall not handle it.

> 	memory {
> 		device_type =3D "memory";
> 		reg =3D <0x00 0x00 0x00 0x7ff00000 0x08 0x00 0x00 0x80000000>;
> 	};
>=20
> I am attaching my u-boot boot.scr script with the device tree modificatio=
n to
> add static memory.
>=20
> Many thanks for your help!
>=20
> Cheers,
>=20
> Stefano
>=20
>=20
> (XEN) Xen version 4.16-rc (sstabellini@) (gcc (Ubuntu 9.3.0-17ubuntu1~20.=
04)
> 9.3.0) debug=3Dy Thu Nov  4 18:28:30 PDT 2021
> (XEN) Latest ChangeSet: Mon Nov 1 12:36:26 2021 +0000 git:9f8434d778-dirt=
y
> (XEN) Processor: 00000000410fd034: "ARM Limited", variant: 0x0, part
> 0xd03,rev 0x4
> (XEN) 64-bit Execution:
> (XEN)   Processor Features: 1100000000002222 0000000000000000
> (XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
> (XEN)     Extensions: FloatingPoint AdvancedSIMD
> (XEN)   Debug Features: 0000000010305106 0000000000000000
> (XEN)   Auxiliary Features: 0000000000000000 0000000000000000
> (XEN)   Memory Model Features: 0000000000001122 0000000000000000
> (XEN)   ISA Features:  0000000000011120 0000000000000000
> (XEN) 32-bit Execution:
> (XEN)   Processor Features: 0000000000001231:0000000000011011
> (XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
> (XEN)     Extensions: GenericTimer Security
> (XEN)   Debug Features: 0000000003010066
> (XEN)   Auxiliary Features: 0000000000000000
> (XEN)   Memory Model Features: 0000000010101105 0000000040000000
> (XEN)                          0000000001260000 0000000002102211
> (XEN)   ISA Features: 0000000002101110 0000000013112111
> 0000000021232042
> (XEN)                 0000000001112131 0000000000011142 0000000000011121
> (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: 65000 KHz
> (XEN) GICv2 initialization:
> (XEN)         gic_dist_addr=3D00000000f9010000
> (XEN)         gic_cpu_addr=3D00000000f9020000
> (XEN)         gic_hyp_addr=3D00000000f9040000
> (XEN)         gic_vcpu_addr=3D00000000f9060000
> (XEN)         gic_maintenance_irq=3D25
> (XEN) GICv2: Adjusting CPU interface base to 0xf902f000
> (XEN) GICv2: 192 lines, 4 cpus, secure (IID 00000000).
> (XEN) XSM Framework v1.0.1 initialized
> (XEN) Initialising XSM SILO mode
> (XEN) Using scheduler: null Scheduler (null)
> (XEN) Initializing null scheduler
> (XEN) WARNING: This is experimental software in development.
> (XEN) Use at your own risk.
> (XEN) Allocated console ring of 16 KiB.
> (XEN) Bringing up CPU1
> (XEN) Bringing up CPU2
> (XEN) Bringing up CPU3
> (XEN) Brought up 4 CPUs
> (XEN) I/O virtualisation enabled
> (XEN)  - Dom0 mode: Relaxed
> (XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID
> (XEN) P2M: 3 levels with order-1 root, VTCR 0x0000000080023558
> (XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
> (XEN) *** LOADING DOMAIN 0 ***
> (XEN) Loading d0 kernel from boot module @ 0000000000e00000
> (XEN) Loading ramdisk from boot module @ 0000000002200000
> (XEN) Allocating 1:1 mappings totalling 1024MB for dom0:
> (XEN) BANK[0] 0x00000020000000-0x00000060000000 (1024MB)
> (XEN) Grant table range: 0x00000005600000-0x00000005640000
> (XEN) Allocating PPI 16 for event channel interrupt
> (XEN) Extended region 0: 0x80000000->0xc0000000
> (XEN) Extended region 1: 0xc8000000->0xe0000000
> (XEN) Extended region 2: 0xf0000000->0xf9000000
> (XEN) Extended region 3: 0xffc00000->0x600000000
> (XEN) Extended region 4: 0x880000000->0x8000000000
> (XEN) Extended region 5: 0x8001000000->0x10000000000
> (XEN) Loading zImage from 0000000000e00000 to 0000000020000000-
> 0000000021367a00
> (XEN) Loading d0 initrd from 0000000002200000 to 0x0000000028200000-
> 0x0000000029d60ac0
> (XEN) Loading d0 DTB to 0x0000000028000000-0x00000000280096d4
> (XEN) *** LOADING DOMU cpus=3D1 memory=3D80000KB ***
> (XEN) Loading d1 kernel from boot module @ 0000000003e00000
> (XEN) Loading ramdisk from boot module @ 0000000005200000
> (XEN) Loading zImage from 0000000003e00000 to 0000000040000000-
> 0000000041367a00
> (XEN) Loading d1 initrd from 0000000005200000 to 0x0000000048200000-
> 0x0000000048383400
> (XEN) Loading d1 DTB to 0x0000000048000000-0x00000000480007f3
> (XEN) Initial low memory virq threshold set at 0x4000 pages.
> (XEN) Std. Loglevel: Errors and warnings
> (XEN) Guest Loglevel: All
> (XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input=
)
> (XEN) DEBUG start_xen 1054 id=3D0
> (XEN) null.c:353: 0 <-- d0v0
> (XEN) DEBUG start_xen 1054 id=3D1
> (XEN) null.c:353: 1 <-- d1v0
> (XEN) Freed 348kB init memory.
> (XEN) traps.c:2013:d0v0 HSR=3D0x00000092000045 pc=3D0xffffffc0105300ec
> gva=3D0xfffffffdfda3b000 gpa=3D0x0000081ffff000
> (XEN) d1v0 Unhandled SMC/HVC: 0x84000050
> (XEN) d1v0 Unhandled SMC/HVC: 0x8600ff01
> (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER4
> (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER8
> (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER12
> (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER16
> (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER20
> (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
> (XEN) DOM1: [    0.000000] Booting Linux on physical CPU 0x0000000000
> [0x410fd034]
> (XEN) DOM1: [    0.000000] Linux version 5.14.0-00002-g9c4bc20097e8
> (sstabellini@ubuntu-linux-20-04-desktop) (gcc (Ubuntu 9.3.0-17ubuntu1~
> (XEN) DOM1: 20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #9 SMP W=
ed
> Nov 3 16:50:00 PDT 2021
> (XEN) DOM1: [    0.000000] efi: UEFI not found.
> (XEN) DOM1: [    0.000000] Zone ranges:
> (XEN) DOM1: [    0.000000]   DMA32    [mem 0x0000000040000000-
> 0x000000005fffffff]
> (XEN) DOM1: [    0.000000]   Normal   empty
> (XEN) DOM1: [    0.000000] Movable zone start for each node
> (XEN) DOM1: [    0.000000] Early memory node ranges
> (XEN) DOM1: [    0.000000]   node   0: [mem 0x0000000040000000-
> 0x000000005fffffff]
> (XEN) DOM1: [    0.000000] Initmem setup node 0 [mem 0x0000000040000000-
> 0x000000005fffffff]
> (XEN) DOM1: [    0.000000] cma: Reserved 256 MiB at 0x000000004f400000
> (XEN) DOM1: [    0.000000] psci: probing for conduit method from DT.
> (XEN) DOM1: [    0.000000] psci: PSCIv1.1 detected in firmware.
> (XEN) DOM1: [    0.000000] psci: Using standard PSCI v0.2 function IDs
> (XEN) DOM1: [    0.000000] psci: Trusted OS migration not required
> (XEN) DOM1: [    0.000000] psci: SMC Calling Convention v1.1
> (XEN) DOM1: [    0.000000] percpu: Embedded 22 pages/cpu s51672 r8192
> d30248 u90112
> (XEN) DOM1: [    0.000000] Detected VIPT I-cache on CPU0
> (XEN) DOM1: [    0.000000] CPU features: detected: ARM erratum 843419
> (XEN) DOM1: [    0.000000] CPU features: detected: ARM erratum 845719
> (XEN) DOM1: [    0.000000] Built 1 zonelists, mobility grouping on.  Tota=
l pages:
> 129280
> (XEN) DOM1: [    0.000000] Kernel command line: console=3DttyAMA0
> (XEN) DOM1: [    0.000000] Dentry cache hash table entries: 65536 (order:=
 7,
> 524288 bytes, linear)
> (XEN) DOM1: [    0.000000] Inode-cache hash table entries: 32768 (order: =
6,
> 262144 bytes, linear)
> (XEN) DOM1: [    0.000000] mem auto-init: stack:off, heap alloc:off, heap
> free:off
> (XEN) DOM1: [    0.000000] Memory: 230280K/524288K available (13184K
> kernel code, 862K rwdata, 3636K rodata, 2048K init, 315K bss, 31864K
> (XEN) DOM1: reserved, 262144K cma-reserved)
> (XEN) DOM1: [    0.000000] rcu: Hierarchical RCU implementation.
> (XEN) DOM1: [    0.000000] rcu:         RCU event tracing is enabled.
> (XEN) DOM1: [    0.000000] rcu:         RCU restricting CPUs from NR_CPUS=
=3D4 to
> nr_cpu_ids=3D1.
> (XEN) DOM1: [    0.000000] rcu: RCU calculated value of scheduler-enlistm=
ent
> delay is 25 jiffies.
> (XEN) DOM1: [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=3D=
16,
> nr_cpu_ids=3D1
> (XEN) DOM1: [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
> (XEN) DOM1: [    0.000000] Root IRQ handler: gic_handle_irq
> (XEN) DOM1: [    0.000000] random: get_random_bytes called from
> start_kernel+0x4a8/0x728 with crng_init=3D0
> (XEN) DOM1: [    0.000000] arch_timer: cp15 timer(s) running at 65.00MHz =
(virt).
> (XEN) DOM1: [    0.000000] clocksource: arch_sys_counter: mask: 0xfffffff=
fffffff
> max_cycles: 0xefdb196da, max_idle_ns: 440795204367 ns
> (XEN) DOM1: [    0.000055] sched_clock: 56 bits at 65MHz, resolution 15ns=
,
> wraps every 2199023255550ns
> (XEN) DOM1: [    0.015323] Console: colour dummy device 80x25
> (XEN) DOM1: [    0.017224] Calibrating delay loop (skipped), value calcul=
ated
> using timer frequency.. 130.00 BogoMIPS (lpj=3D260000)
> (XEN) DOM1: [    0.017335] pid_max: default: 32768 minimum: 301
> (XEN) DOM1: [    0.019932] Mount-cache hash table entries: 1024 (order: 1=
,
> 8192 bytes, linear)
> (XEN) DOM1: [    0.020022] Mountpoint-cache hash table entries: 1024 (ord=
er:
> 1, 8192 bytes, linear)
> (XEN) DOM1: [    0.070463] rcu: Hierarchical SRCU implementation.
> (XEN) DOM1: [    0.073611] EFI services will not be available.
> (XEN) DOM1: [    0.074889] smp: Bringing up secondary CPUs ...
> (XEN) DOM1: [    0.075178] smp: Brought up 1 node, 1 CPU
> (XEN) DOM1: [    0.075205] SMP: Total of 1 processors activated.
> (XEN) DOM1: [    0.075253] CPU features: detected: 32-bit EL0 Support
> (XEN) DOM1: [    0.075304] CPU features: detected: CRC32 instructions
> (XEN) DOM1: [    0.076596] CPU: All CPU(s) started at EL1
> (XEN) DOM1: [    0.076717] alternatives: patching kernel code
> (XEN) DOM1: [    0.092884] devtmpfs: initialized
> (XEN) DOM1: [    0.109553] clocksource: jiffies: mask: 0xffffffff max_cyc=
les:
> 0xffffffff, max_idle_ns: 7645041785100000 ns
> (XEN) DOM1: [    0.109716] futex hash table entries: 256 (order: 2, 16384=
 bytes,
> linear)
> (XEN) DOM1: [    0.124058] pinctrl core: initialized pinctrl subsystem
> (XEN) DOM1: [    0.143628] NET: Registered PF_NETLINK/PF_ROUTE protocol
> family
> (XEN) DOM1: [    0.157764] DMA: preallocated 128 KiB GFP_KERNEL pool for
> atomic allocations
> (XEN) DOM1: [    0.158089] DMA: preallocated 128 KiB
> GFP_KERNEL|GFP_DMA32 pool for atomic allocations
> (XEN) DOM1: [    0.158426] audit: initializing netlink subsys (disabled)
> (XEN) DOM1: [    0.166578] cpuidle: using governor menu
> (XEN) DOM1: [    0.167213] hw-breakpoint: found 6 breakpoint and 4
> watchpoint registers.
> (XEN) DOM1: [    0.168930] audit: type=3D2000 audit(0.140:1): state=3Dini=
tialized
> audit_enabled=3D0 res=3D1
> (XEN) DOM1: [    0.169475] ASID allocator initialised with 65536 entries
> (XEN) DOM1: [    0.171250] Serial: AMBA PL011 UART driver
> (XEN) DOM1: [    0.181920] 22000000.sbsa-uart: ttyAMA0 at MMIO 0x22000000
> (irq =3D 13, base_baud =3D 0) is a SBSA
> (XEN) DOM1: [    0.533061] printk: console [ttyAMA0] enabled
>=20

Cheers=1B$B!$=1B(B

Penny  Zheng
> [... cutting here, DOM1 boots until the end, no signs of dom0]


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 05:10:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 05:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221994.383967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mirTu-0008Dj-BY; Fri, 05 Nov 2021 05:09:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221994.383967; Fri, 05 Nov 2021 05:09:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mirTu-0008Dc-8W; Fri, 05 Nov 2021 05:09:38 +0000
Received: by outflank-mailman (input) for mailman id 221994;
 Fri, 05 Nov 2021 05:09:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mirTs-0008DS-Lj; Fri, 05 Nov 2021 05:09:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mirTs-0007GG-H6; Fri, 05 Nov 2021 05:09:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mirTs-0004Ut-76; Fri, 05 Nov 2021 05:09:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mirTs-00017K-6E; Fri, 05 Nov 2021 05:09:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=SurEQ3YMftBZKeXPbgtK0gpc8NLmJHnvLwcSti1qkmg=; b=zw5TC8NYTn0BJdVMqd24L4orv5
	3vu0jkB1n4Z+28vr2f6eKeQYm3f9q4TP6+cnStNinhZhjYad6XJqBGkoUqRUOOZFC7Lt2JUXaWOQZ
	Eq2eQK1OyVEUaobaUGnL3MWxE/EMBiYZs6Vq4zOf0GEI2jQIap34KldfRWNjR1+Ns7+A=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166041-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166041: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=7ddb58cb0ecae8e8b6181d736a87667cc9ab8389
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Nov 2021 05:09:36 +0000

flight 166041 linux-linus real [real]
flight 166048 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166041/
http://logs.test-lab.xenproject.org/osstest/logs/166048/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                7ddb58cb0ecae8e8b6181d736a87667cc9ab8389
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    3 days
Failing since        165992  2021-11-02 05:40:21 Z    2 days    4 attempts
Testing same since   166041  2021-11-04 05:04:52 Z    1 days    1 attempts

------------------------------------------------------------
1533 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 153643 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 05:55:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 05:55:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222003.383982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misC6-0004g5-VI; Fri, 05 Nov 2021 05:55:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222003.383982; Fri, 05 Nov 2021 05:55:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misC6-0004fy-S5; Fri, 05 Nov 2021 05:55:18 +0000
Received: by outflank-mailman (input) for mailman id 222003;
 Fri, 05 Nov 2021 05:55:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1misC5-0004fo-Ak; Fri, 05 Nov 2021 05:55:17 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1misC5-0007ya-2a; Fri, 05 Nov 2021 05:55:17 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1misC4-0007Oi-JY; Fri, 05 Nov 2021 05:55:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1misC4-0004ko-J5; Fri, 05 Nov 2021 05:55:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dC6IMebobHgBla28bug8n0JvX25XRiGMpTUi6rlZ/jc=; b=fpA+gjD0/hIj09rO8e1JS98XvY
	bvjmLUtV7UJiL+pELBd0l3Bjh1wDKq0L+2TCI3KWnnnHTlgWKEfTHGEY6N4cGyCWXexXbXi/4UgK0
	YLJoE1Pa0iMR7Edd0hV8yPVaH+nDZDopGTUsbuLkhFZEDhaEK9ohfKal7EE7Tv7oC9n0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166044-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166044: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=b1fd92137e4d485adeec8e9f292f928ff335b76c
X-Osstest-Versions-That:
    qemuu=cc23377516072d293b0f9ab04741f8982d274639
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Nov 2021 05:55:16 +0000

flight 166044 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166044/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166033
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166033
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166033
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166033
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166033
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166033
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166033
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166033
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                b1fd92137e4d485adeec8e9f292f928ff335b76c
baseline version:
 qemuu                cc23377516072d293b0f9ab04741f8982d274639

Last test of basis   166033  2021-11-03 16:09:29 Z    1 days
Testing same since   166044  2021-11-04 09:06:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adam Lackorzynski <adam@l4re.org>
  Alex Bennée <alex.bennee@linaro.org>
  Alexander Graf <agraf@csgraf.de>
  Eric Auger <eric.auger@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Greg Kurz <groug@kaod.org>
  Helge Konetzka <hk@zapateado.de>
  Jean-Philippe Brucker <jean-philippe@linaro.org>
  Jessica Clarke <jrtc27@jrtc27.com>
  Laurent Vivier <laurent@vivier.eu>
  Marcus Hähnel <marcus.haehnel@kernkonzept.com>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Markus Armbruster <armbru@redhat.com>
  Max Filippov <jcmvbkbc@gmail.com>
  Maxim Levitsky <mlevitsk@redhat.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
  Peter Xu <peterx@redhat.com>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Richard Henderson <richard.henderson@linaro.org>
  Thomas Huth <thuth@redhat.com>
  Yanan Wang <wangyanan55@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   cc23377516..b1fd92137e  b1fd92137e4d485adeec8e9f292f928ff335b76c -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:12:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:12:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.221818.383996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misSH-00073P-HI; Fri, 05 Nov 2021 06:12:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 221818.383996; Fri, 05 Nov 2021 06:12:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misSH-00073I-Dv; Fri, 05 Nov 2021 06:12:01 +0000
Received: by outflank-mailman (input) for mailman id 221818;
 Thu, 04 Nov 2021 17:31:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t0Te=PX=linaro.org=vincent.guittot@srs-se1.protection.inumbo.net>)
 id 1migai-00008w-6q
 for xen-devel@lists.xenproject.org; Thu, 04 Nov 2021 17:31:56 +0000
Received: from mail-yb1-xb34.google.com (mail-yb1-xb34.google.com
 [2607:f8b0:4864:20::b34])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a1ca371-3d95-11ec-a9d2-d9f7a1cc8784;
 Thu, 04 Nov 2021 18:31:54 +0100 (CET)
Received: by mail-yb1-xb34.google.com with SMTP id v7so16341738ybq.0
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 10:31:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a1ca371-3d95-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc:content-transfer-encoding;
        bh=D8JwUP60PhxOJOW8b3P62tf/j1hQpPS/M0FGiVyS3f4=;
        b=dz6QfeO9JCGesAJoX/sXQPTImgb7wBVidf//skkofG3Q/Av5ZokWE7XxcS9WLFEPyp
         HtXPrzDhyrymY4K7o2oz83qBdIkZCDnkte/2sCwZchDKmP0fuYF7rx/OiuL6/1EUIYKw
         NoESTJ/y1Hy+kvwj43qSo9+FRvUg7+hUP/P/dDWSsnutI+KKqhvTfo6RtTpPVhmPWnsa
         Zha/5iFF7VSqBDoOC2oVtY1TcCooGZE8b3jBEQf7WBOaf6XNrY9+QG9gx3JuBKBmWcMm
         EcYqNT1MkhHOgUR8YUEusse8yfOWp0bXIC3usghBUgkJRCnw4roZ/W/shmHsu78J3JZ7
         ESiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc:content-transfer-encoding;
        bh=D8JwUP60PhxOJOW8b3P62tf/j1hQpPS/M0FGiVyS3f4=;
        b=btCGp8MW5WaGENbOBXJIw0XmyjXu6GfSf2GMaOGsMti3oYEV1vP/bf36yK+qvTipSq
         NtCSvU9GcBx/HKNtbSjXsmSmIbLqNxaihV7ghnZoVviTj4rJV0Fl6rGMb2AtwzfsAo1J
         pqXNtOL541JRSzkxIt0ryjQXNaFg3Qq9DFQh2pCq0Qp3yWW3FESzeucXuTbx8o+Z0c7T
         E51fBwYIRlNVv2MgBG+rgIPKnYsZcR3bmN8BEmLRqCjJ5CFRGyWZa5MLnoPd10gK1UDS
         uwxtQ8bFm3lIZR/25hUaCuoJ5lFI2TrIprKTubbLu7AkUwrBMSJJIaEQoZhC7h9I9tvg
         /mrQ==
X-Gm-Message-State: AOAM532TNgpWSf9nCmNnrUxPeYN3AXXxkD/qLJzqJjEF5YvRmltOTRd6
	MIk1kAofu56NpUPeLfNhtb994eDEvKV4thtZjV1KJg==
X-Google-Smtp-Source: ABdhPJyMOvctA0BUuqv8TxOg/p2NJviaoeq6gEfXhqaW74BRf/VuH4O28FbIXMSejBt/UQoxD0o+4Rd/iL+0d0+5HYc=
X-Received: by 2002:a5b:445:: with SMTP id s5mr41900051ybp.425.1636047113210;
 Thu, 04 Nov 2021 10:31:53 -0700 (PDT)
MIME-Version: 1.0
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se> <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se>
 <87ee7w6bxi.ffs@tglx>
In-Reply-To: <87ee7w6bxi.ffs@tglx>
From: Vincent Guittot <vincent.guittot@linaro.org>
Date: Thu, 4 Nov 2021 18:31:41 +0100
Message-ID: <CAKfTPtAyuvp8CbDjEVHeck-bKeEaz4ot_vHhGCsTf0722Xxt6g@mail.gmail.com>
Subject: Re: [PATCH] PCI/MSI: Move non-mask check back into low level accessors
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Josef Johansson <josef@oderland.se>, boris.ostrovsky@oracle.com, helgaas@kernel.org, 
	jgross@suse.com, linux-pci@vger.kernel.org, maz@kernel.org, 
	xen-devel@lists.xenproject.org, Jason Andryuk <jandryuk@gmail.com>, 
	David Woodhouse <dwmw2@infradead.org>, Peter Jones <pjones@redhat.com>, linux-fbdev@vger.kernel.org, 
	Peter Zijlstra <peterz@infradead.org>, LKML <linux-kernel@vger.kernel.org>, x86@kernel.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 4 Nov 2021 at 00:45, Thomas Gleixner <tglx@linutronix.de> wrote:
>
> On Wed, Oct 27 2021 at 17:29, Josef Johansson wrote:
>
> CC+: EFIFB and scheduler folks
>
> > On 10/27/21 14:01, Josef Johansson wrote:
> > When I suspend I get errors from Xen, including stacktraces below
> > if anyone has any clue, if this might be related. I get one each time I
> > suspend
> > and the third time amdgpu gives up.
> >
> > rtc_cmos 00:01: registered as rtc0
> > rtc_cmos 00:01: setting system clock to 2021-10-27T15:04:35 UTC (163534=
7075)
> > rtc_cmos 00:01: no alarms, y3k, 114 bytes nvram
> > device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate I=
MA measurements will not be recorded in the IMA log.
> > device-mapper: uevent: version 1.0.3
> > device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@r=
edhat.com
> > efifb: probing for efifb
> > efifb: cannot reserve video memory at 0x60000000
> > ------------[ cut here ]------------
> > ioremap on RAM at 0x0000000060000000 - 0x00000000607e8fff
> > WARNING: CPU: 7 PID: 1 at arch/x86/mm/ioremap.c:210 __ioremap_caller+0x=
332/0x350
>
> That's this warning:
>
>         /*
>          * Don't allow anybody to remap normal RAM that we're using..
>          */
>         if (io_desc.flags & IORES_MAP_SYSTEM_RAM) {
>                 WARN_ONCE(1, "ioremap on RAM at %pa - %pa\n",
>                           &phys_addr, &last_addr);
>                 return NULL;
>         }
>
>
> > Modules linked in:
> > CPU: 7 PID: 1 Comm: swapper/0 Not tainted 5.15.0-0.rc7.0.fc32.qubes.x86=
_64 #1
> > Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17=
/2021
> > RIP: e030:__ioremap_caller+0x332/0x350
> > Code: e8 c3 ca ff ff 49 09 c6 e9 32 fe ff ff 48 8d 54 24 28 48 8d 74 24=
 18 48 c7 c7 35 f2 5d 82 c6 05 e8 7b a9 01 01 e8 48 39 be 00 <0f> 0b 45 31 =
e4 e9 ac fe ff ff e8 ff f5 c3 00 66 66 2e 0f 1f 84 00
> > RSP: e02b:ffffc9004007bb00 EFLAGS: 00010286
> > RAX: 0000000000000000 RBX: 00000000007e9000 RCX: ffffffff82915ca8
> > RDX: c0000000ffffdfff RSI: 0000000000000000 RDI: ffffffff82865ca0
> > RBP: 0000000060000000 R08: 0000000000000000 R09: ffffc9004007b948
> > R10: ffffc9004007b940 R11: ffffffff82945ce8 R12: 0000000000000001
> > R13: 00000000007e9000 R14: 00000000007e9000 R15: ffffffff81c8f772
> > FS:  0000000000000000(0000) GS:ffff8881407c0000(0000) knlGS:00000000000=
00000
> > CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 0000000000000000 CR3: 0000000002810000 CR4: 0000000000050660
> > Call Trace:
> >  efifb_probe.cold+0x2e6/0x688
>
> Why is this probing EFIFB at resume? Josef is that hibernate or suspend
> to RAM?
>
> >  platform_probe+0x3f/0x90
> >  call_driver_probe+0x24/0xc0
> >  really_probe+0x1e7/0x310
> >  __driver_probe_device+0xfe/0x180
> >  driver_probe_device+0x1e/0x90
> >  __device_attach_driver+0x72/0xe0
> >  ? driver_allows_async_probing+0x50/0x50
> >  ? driver_allows_async_probing+0x50/0x50
> >  bus_for_each_drv+0x8f/0xd0
> >  __device_attach+0xe9/0x1f0
> >  bus_probe_device+0x8e/0xa0
> >  device_add+0x3fb/0x630
> >  platform_device_add+0x102/0x230
> >  sysfb_init+0xea/0x141
> >  ? firmware_map_add_early+0xb8/0xb8
> >  do_one_initcall+0x57/0x200
> >  do_initcalls+0x109/0x166
> >  kernel_init_freeable+0x23c/0x2bd
> >  ? rest_init+0xc0/0xc0
> >  kernel_init+0x16/0x120
> >  ret_from_fork+0x22/0x30
> > ---[ end trace b068d3cd1b7f5f49 ]---
> > efifb: abort, cannot remap video memory 0x7e9000 @ 0x60000000
> > efi-framebuffer: probe of efi-framebuffer.0 failed with error -5
> > --
> > printk: Suspending console(s) (use no_console_suspend to debug)
> > [drm] free PSP TMR buffer
> > PM: suspend devices took 0.428 seconds
> > ACPI: EC: interrupt blocked
> > ACPI: PM: Preparing to enter system sleep state S3
> > ACPI: EC: event blocked
> > ACPI: EC: EC stopped
> > ACPI: PM: Saving platform NVS memory
> > Disabling non-boot CPUs ...
> > ------------[ cut here ]------------
> > WARNING: CPU: 1 PID: 0 at arch/x86/mm/tlb.c:522  switch_mm_irqs_off+0x3=
c5/0x400
>
>         if (WARN_ON_ONCE(__read_cr3() !=3D build_cr3(real_prev->pgd, prev=
_asid))) {
>
> > Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd=
_timer nf_tables nfnetlink vfat fat intel_rapl_msr think_lmi firmware_attri=
butes_class wmi_bmof intel_rapl_common pcspkr uvcvideo videobuf2_vmalloc vi=
deobuf2_memops joydev videobuf2_v4l2 sp5100_tco k10temp videobuf2_common i2=
c_piix4 iwlwifi videodev mc cfg80211 thinkpad_acpi ipmi_devintf ucsi_acpi p=
latform_profile typec_ucsi ledtrig_audio ipmi_msghandler r8169 rfkill typec=
 snd wmi soundcore video i2c_scmi fuse xenfs ip_tables dm_thin_pool dm_pers=
istent_data dm_bio_prison dm_crypt trusted asn1_encoder hid_multitouch amdg=
pu crct10dif_pclmul crc32_pclmul crc32c_intel gpu_sched i2c_algo_bit drm_tt=
m_helper ghash_clmulni_intel ttm serio_raw drm_kms_helper cec sdhci_pci cqh=
ci sdhci xhci_pci drm xhci_pci_renesas nvme xhci_hcd ehci_pci mmc_core ehci=
_hcd nvme_core xen_acpi_processor xen_privcmd xen_pciback xen_blkback xen_g=
ntalloc xen_gntdev xen_evtchn uinput
> > CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W        --------- --- =
 5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
> > Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17=
/2021
> > RIP: e030:switch_mm_irqs_off+0x3c5/0x400
> > Code: f0 41 80 65 01 fb ba 01 00 00 00 49 8d b5 60 23 00 00 4c 89 ef 49=
 c7 85 68 23 00 00 60 1d 08 81 e8 a0 f3 08 00 e9 15 fd ff ff <0f> 0b e8 34 =
fa ff ff e9 ad fc ff ff 0f 0b e9 31 fe ff ff 0f 0b e9
> > RSP: e02b:ffffc900400f3eb0 EFLAGS: 00010006
> > RAX: 00000001336c6000 RBX: ffff888140660000 RCX: 0000000000000040
> > RDX: ffff8881003027c0 RSI: 0000000000000000 RDI: ffff8881b36c6000
> > RBP: ffffffff829d91c0 R08: 0000000000000000 R09: 0000000000000000
> > R10: 0000000000000008 R11: 0000000000000000 R12: ffff888104e88440
> > R13: ffff8881003027c0 R14: 0000000000000000 R15: 0000000000000001
> > FS:  0000000000000000(0000) GS:ffff888140640000(0000) knlGS:00000000000=
00000
> > CS:  10000e030 DS: 002b ES: 002b CR0: 0000000080050033
> > CR2: 000060b7d78bf198 CR3: 0000000002810000 CR4: 0000000000050660
> > Call Trace:
> >  switch_mm+0x1c/0x30
> >  idle_task_exit+0x55/0x60
> >  play_dead_common+0xa/0x20
> >  xen_pv_play_dead+0xa/0x60
>
> So this is when bringing the non boot CPUs down and the switch_mm() code
> discovers inconsistency between CR3 and the expected value.
>
> Would probably be interesting to print the actual values, but XEN folks
> might have an idea.
>
> >  do_idle+0xd1/0xe0
> >  cpu_startup_entry+0x19/0x20
> >  asm_cpu_bringup_and_idle+0x5/0x1000
> > ---[ end trace b068d3cd1b7f5f4b ]---
> > smpboot: CPU 1 is now offline
> > smpboot: CPU 2 is now offline
> > smpboot: CPU 3 is now offline
> > smpboot: CPU 4 is now offline
> > smpboot: CPU 5 is now offline
> > smpboot: CPU 6 is now offline
> > smpboot: CPU 7 is now offline
> > ACPI: PM: Low-level resume complete
> > ACPI: EC: EC started
> > ACPI: PM: Restoring platform NVS memory
> > xen_acpi_processor: Uploading Xen processor PM info
> > xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU1
> > xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU3
> > xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU5
> > xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU7
> > xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU9
> > xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU11
> > --
> > CPU2 is up
> > installing Xen timer for CPU 3
> > cpu 3 spinlock event irq 79
> > [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
> > ACPI: \_SB_.PLTF.C003: Found 3 idle states
> > ACPI: FW issue: working around C-state latencies out of order
> > CPU3 is up
> > ------------[ cut here ]------------
> > cfs_rq->avg.load_avg || cfs_rq->avg.util_avg || cfs_rq->avg.runnable_av=
g
> > installing Xen timer for CPU 4
> > WARNING: CPU: 3 PID: 455 at kernel/sched/fair.c:3339  __update_blocked_=
fair+0x49b/0x4b0
>
>         /*
>          * _avg must be null when _sum are null because _avg =3D _sum / d=
ivider
>          * Make sure that rounding and/or propagation of PELT values neve=
r
>          * break this.
>          */
>         SCHED_WARN_ON(cfs_rq->avg.load_avg ||
>                       cfs_rq->avg.util_avg ||
>                       cfs_rq->avg.runnable_avg);
>
> PeterZ, does that ring any bell?

This warning raises when the PELT signal is not propagated correctly
in the cfs hierarchy which can impact the fairness. This is a bit
strange to get this warning during a resume. CPU 3 has just been put
online so no propagation already  happened and everything should be
synced

>
> > Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd=
_timer nf_tables nfnetlink vfat fat intel_rapl_msr think_lmi firmware_attri=
butes_class wmi_bmof intel_rapl_common pcspkr uvcvideo videobuf2_vmalloc vi=
deobuf2_memops joydev videobuf2_v4l2 sp5100_tco k10temp videobuf2_common i2=
c_piix4 iwlwifi videodev mc cfg80211 thinkpad_acpi ipmi_devintf ucsi_acpi p=
latform_profile typec_ucsi ledtrig_audio ipmi_msghandler r8169 rfkill typec=
 snd wmi soundcore video i2c_scmi fuse xenfs ip_tables dm_thin_pool dm_pers=
istent_data dm_bio_prison dm_crypt trusted asn1_encoder hid_multitouch amdg=
pu crct10dif_pclmul crc32_pclmul crc32c_intel gpu_sched i2c_algo_bit drm_tt=
m_helper ghash_clmulni_intel ttm serio_raw drm_kms_helper cec sdhci_pci cqh=
ci sdhci xhci_pci drm xhci_pci_renesas nvme xhci_hcd ehci_pci mmc_core ehci=
_hcd nvme_core xen_acpi_processor xen_privcmd xen_pciback xen_blkback xen_g=
ntalloc xen_gntdev xen_evtchn uinput
> > CPU: 3 PID: 455 Comm: kworker/3:2 Tainted: G        W        --------- =
---  5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
> > Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17=
/2021
> > Workqueue:  0x0 (events)
> > RIP: e030:__update_blocked_fair+0x49b/0x4b0
> > Code: 6b fd ff ff 49 8b 96 48 01 00 00 48 89 90 50 09 00 00 e9 ff fc ff=
 ff 48 c7 c7 10 7a 5e 82 c6 05 f3 35 9e 01 01 e8 1f f3 b2 00 <0f> 0b 41 8b =
86 38 01 00 00 e9 c6 fc ff ff 0f 1f 80 00 00 00 00 0f
> > RSP: e02b:ffffc900410d7ce0 EFLAGS: 00010082
> > RAX: 0000000000000000 RBX: 0000000000000018 RCX: ffff8881406d8a08
> > RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffff8881406d8a00
> > RBP: ffff8881406e9800 R08: 0000000000000048 R09: ffffc900410d7c78
> > R10: 0000000000000049 R11: 000000002d2d2d2d R12: ffff8881406e9f80
> > R13: ffff8881406e9e40 R14: ffff8881406e96c0 R15: 0000000000000000
> > FS:  0000000000000000(0000) GS:ffff8881406c0000(0000) knlGS:00000000000=
00000
> > CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 0000782e51820000 CR3: 0000000002810000 CR4: 0000000000050660
> > Call Trace:
> >  update_blocked_averages+0xa8/0x180
> >  newidle_balance+0x175/0x380
> >  pick_next_task_fair+0x39/0x3e0
> >  pick_next_task+0x4c/0xbd0
> >  ? dequeue_task_fair+0xba/0x390
> >  __schedule+0x13a/0x570
> >  schedule+0x44/0xa0
> >  worker_thread+0xc0/0x320
> >  ? process_one_work+0x390/0x390
> >  kthread+0x10f/0x130
> >  ? set_kthread_struct+0x40/0x40
> >  ret_from_fork+0x22/0x30
> > ---[ end trace b068d3cd1b7f5f4c ]---
> > cpu 4 spinlock event irq 85
> > [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
> > ACPI: \_SB_.PLTF.C004: Found 3 idle states
> > ACPI: FW issue: working around C-state latencies out of order
> > CPU4 is up
> > installing Xen timer for CPU 5
> > cpu 5 spinlock event irq 91
> > [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
> > ACPI: \_SB_.PLTF.C005: Found 3 idle states
> > ACPI: FW issue: working around C-state latencies out of order
> > CPU5 is up


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:33:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:33:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222022.384035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnA-0001Vs-AO; Fri, 05 Nov 2021 06:33:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222022.384035; Fri, 05 Nov 2021 06:33:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnA-0001VY-3l; Fri, 05 Nov 2021 06:33:36 +0000
Received: by outflank-mailman (input) for mailman id 222022;
 Fri, 05 Nov 2021 06:33:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1misn9-0000uf-0Y
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:33:35 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4cc0448d-3e02-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:33:34 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id b15so10319817edd.7
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:33:34 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id e12sm3599870ejs.86.2021.11.04.23.33.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:33:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4cc0448d-3e02-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=7DFfi4NJpO6ZXPEa/MCt5rYVrF3eNK6m45b8kORo1QM=;
        b=KU2BVBauL1W0b/kJmCt+Hr5QQBqzVNc0UslYueGmROgDiwKbNU0oPqWXHhFe0LI4gW
         o/8iXU7+Dx8ENyZtdb8vH2lbgsSrBukG9TH3JHp5Lwug+65NLBGjcKQBbLumdy3WjNQT
         1kNHTFFTEwsmBIRjG/g3LmRlqMD6V/8dU6MUftY5E9gbn7A19FkWZK8cWWh9+/hQgjqP
         AxH3e23Ad4eotR/kZWprmoQOCCGv0Bhju38poSp/cdFl7lFOieGH9GAL/Fy+qeDmDCJl
         wjnB6INtfkTho6b9W+TuujtFlEiUfrp/DpevSZXJ85XHO/z5OPaMAbKb4QAW+KcWgVS9
         KzCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=7DFfi4NJpO6ZXPEa/MCt5rYVrF3eNK6m45b8kORo1QM=;
        b=NzG7boXjcofdvd2w1NG2fHGXPqnnaFYRY+u0qqbGX74fW6qrSyz1SqexKU99ueOAup
         p5ULyGbNvWGQI4ey4eqXWaunTagvpGpgFCmNsYPbw9FWb1QJR3lFDmtFwGu/WFOnaILZ
         BOAs9/IJALcMdNjlB+m0gAatAgffAnqypXF3rtf/d5eGXXt8Eflks6rPDUEOvJ+1Edkv
         htljP1tnRBbwyrfMiwuGiQEimcsjs3Zvh7RGc0MuPOuga69bDmusGnhyRvrR2SrNRHnW
         KrmlAre+PvozGJ8ordFgltyTILA9vf19L98pOVADTNlRi7Ubqvy6d4njFm5UAr+EpbB4
         k+Zw==
X-Gm-Message-State: AOAM532WOh220kG0PbixkIoa5GzH3xkiE1ItaKOK5MeVMQVgqJk/amed
	p58lvoAo9x3s8r3IPvOvSEbJQlQMxZYvkQ==
X-Google-Smtp-Source: ABdhPJxknzRzOzobhrZIu7O3Gw2GhpxGesAfhPjns3ww0txfV1NaULioEwlrF/dxT5ryKUEXPdt1sg==
X-Received: by 2002:a17:906:478e:: with SMTP id cw14mr52604639ejc.46.1636094013511;
        Thu, 04 Nov 2021 23:33:33 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for hardware domain
Date: Fri,  5 Nov 2021 08:33:22 +0200
Message-Id: <20211105063326.939843-4-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105063326.939843-1-andr2000@gmail.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

In order for vPCI to work it needs to maintain guest and hardware
domain's views of the configuration space. For example, BARs and
COMMAND registers require emulation for guests and the guest view
of the registers needs to be in sync with the real contents of the
relevant registers. For that ECAM address space needs to also be
trapped for the hardware domain, so we need to implement PCI host
bridge specific callbacks to properly setup MMIO handlers for those
ranges depending on particular host bridge implementation.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v5:
- add vpci_sbdf_from_gpa helper for gpa to SBDF translation
- take bridge's bus start into account while calculating SBDF
Since v4:
- unsigned int for functions working with count
- gate number of MMIO handlers needed for CONFIG_HAS_PCI_MSI
  and fix their number, e.g. single handler for PBA and
  MSI-X tables (Roger)
- re-work code for assigning MMIO handlers to be simpler
  and account on the fact that there could multiple host bridges
  exist for the hwdom
Since v3:
- fixed comment formatting
Since v2:
- removed unneeded assignment (count = 0)
- removed unneeded header inclusion
- update commit message
Since v1:
 - Dynamically calculate the number of MMIO handlers required for vPCI
   and update the total number accordingly
 - s/clb/cb
 - Do not introduce a new callback for MMIO handler setup
---
 xen/arch/arm/domain.c              |  2 +
 xen/arch/arm/pci/pci-host-common.c | 27 ++++++++++++
 xen/arch/arm/vpci.c                | 66 ++++++++++++++++++++++++++----
 xen/arch/arm/vpci.h                |  6 +++
 xen/include/asm-arm/pci.h          |  5 +++
 5 files changed, 98 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 96e1b235501d..92a6c509e5c5 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -739,6 +739,8 @@ int arch_domain_create(struct domain *d,
     if ( (rc = domain_vgic_register(d, &count)) != 0 )
         goto fail;
 
+    count += domain_vpci_get_num_mmio_handlers(d);
+
     if ( (rc = domain_io_init(d, count + MAX_IO_HANDLER)) != 0 )
         goto fail;
 
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
index 47104b22b221..0d271a6e8881 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -289,6 +289,33 @@ int pci_get_host_bridge_segment(const struct dt_device_node *node,
     return -EINVAL;
 }
 
+int pci_host_iterate_bridges(struct domain *d,
+                             int (*cb)(struct domain *d,
+                                       struct pci_host_bridge *bridge))
+{
+    struct pci_host_bridge *bridge;
+    int err;
+
+    list_for_each_entry( bridge, &pci_host_bridges, node )
+    {
+        err = cb(d, bridge);
+        if ( err )
+            return err;
+    }
+    return 0;
+}
+
+unsigned int pci_host_get_num_bridges(void)
+{
+    struct pci_host_bridge *bridge;
+    unsigned int count = 0;
+
+    list_for_each_entry( bridge, &pci_host_bridges, node )
+        count++;
+
+    return count;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 23f45386f4b3..5a6ebd8b9868 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -16,16 +16,31 @@
 
 #include <asm/mmio.h>
 
+static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
+                                     paddr_t gpa)
+{
+    pci_sbdf_t sbdf;
+
+    if ( bridge )
+    {
+        sbdf.sbdf = VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
+        sbdf.seg = bridge->segment;
+        sbdf.bus += bridge->cfg->busn_start;
+    }
+    else
+        sbdf.sbdf = VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
+
+    return sbdf;
+}
+
 static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
                           register_t *r, void *p)
 {
-    pci_sbdf_t sbdf;
+    struct pci_host_bridge *bridge = p;
+    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
     /* data is needed to prevent a pointer cast on 32bit */
     unsigned long data;
 
-    /* We ignore segment part and always handle segment 0 */
-    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
-
     if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
                         1U << info->dabt.size, &data) )
     {
@@ -41,10 +56,8 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
 static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
                            register_t r, void *p)
 {
-    pci_sbdf_t sbdf;
-
-    /* We ignore segment part and always handle segment 0 */
-    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
+    struct pci_host_bridge *bridge = p;
+    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
 
     return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                            1U << info->dabt.size, r);
@@ -55,17 +68,54 @@ static const struct mmio_handler_ops vpci_mmio_handler = {
     .write = vpci_mmio_write,
 };
 
+static int vpci_setup_mmio_handler_cb(struct domain *d,
+                                      struct pci_host_bridge *bridge)
+{
+    struct pci_config_window *cfg = bridge->cfg;
+
+    register_mmio_handler(d, &vpci_mmio_handler,
+                          cfg->phys_addr, cfg->size, bridge);
+    return 0;
+}
+
 int domain_vpci_init(struct domain *d)
 {
     if ( !has_vpci(d) )
         return 0;
 
+    if ( is_hardware_domain(d) )
+        return pci_host_iterate_bridges(d, vpci_setup_mmio_handler_cb);
+
+    /* Guest domains use what is programmed in their device tree. */
     register_mmio_handler(d, &vpci_mmio_handler,
                           GUEST_VPCI_ECAM_BASE, GUEST_VPCI_ECAM_SIZE, NULL);
 
     return 0;
 }
 
+unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
+{
+    unsigned int count;
+
+    if ( is_hardware_domain(d) )
+        /* For each PCI host bridge's configuration space. */
+        count = pci_host_get_num_bridges();
+    else
+        /*
+         * There's a single MSI-X MMIO handler that deals with both PBA
+         * and MSI-X tables per each PCI device being passed through.
+         * Maximum number of supported devices is 32 as virtual bus
+         * topology emulates the devices as embedded endpoints.
+         * +1 for a single emulated host bridge's configuration space.
+         */
+        count = 1;
+#ifdef CONFIG_HAS_PCI_MSI
+        count += 32;
+#endif
+
+    return count;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/vpci.h b/xen/arch/arm/vpci.h
index d8a7b0e3e802..3c713f3fcdb5 100644
--- a/xen/arch/arm/vpci.h
+++ b/xen/arch/arm/vpci.h
@@ -17,11 +17,17 @@
 
 #ifdef CONFIG_HAS_VPCI
 int domain_vpci_init(struct domain *d);
+unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d);
 #else
 static inline int domain_vpci_init(struct domain *d)
 {
     return 0;
 }
+
+static inline unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
+{
+    return 0;
+}
 #endif
 
 #endif /* __ARCH_ARM_VPCI_H__ */
diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
index c20eba643d86..969333043431 100644
--- a/xen/include/asm-arm/pci.h
+++ b/xen/include/asm-arm/pci.h
@@ -110,6 +110,11 @@ void arch_pci_init_pdev(struct pci_dev *pdev);
 
 int pci_get_new_domain_nr(void);
 
+int pci_host_iterate_bridges(struct domain *d,
+                             int (*clb)(struct domain *d,
+                                        struct pci_host_bridge *bridge));
+unsigned int pci_host_get_num_bridges(void);
+
 #else   /*!CONFIG_HAS_PCI*/
 
 struct arch_pci_dev { };
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:33:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:33:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222019.384008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misn6-0000us-B4; Fri, 05 Nov 2021 06:33:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222019.384008; Fri, 05 Nov 2021 06:33:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misn6-0000ul-62; Fri, 05 Nov 2021 06:33:32 +0000
Received: by outflank-mailman (input) for mailman id 222019;
 Fri, 05 Nov 2021 06:33:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1misn5-0000uf-GQ
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:33:31 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4a94e84d-3e02-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:33:30 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id ee33so29816880edb.8
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:33:30 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id e12sm3599870ejs.86.2021.11.04.23.33.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:33:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a94e84d-3e02-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=FPTLs/th97uodahK+/rvaeKkUTbLWUfjUdtAkojp37I=;
        b=qJ/Zuah5p5AvtiYZmPziyBOYzAbiu34pi5DHbmJzKqlTrjr/QxVjFUx762nneVskhk
         sFi2RsDg8NyBhRU4yoeNdyS72nDutjXo8SP6bN+IoIQFEjn61SJrGNlwMneTOIVcebFz
         Z1Qmb8ajCBDDs9rmAJJOjCUDZsbx7YXqTToSKMWfwpddUAYMT1aQ2t+D883FIAanmgGj
         z6XWHW1oj3+ZT4faDBhzbxujh+zH8w/VRt+oxEpGdpg2sqY0FmimjQPllkppKtnl4sWg
         lRFjJo8WkkVBfVDd6jdIr/uVq7Oml3FgiWseEcGYLoIPigfbIDt4nC2eoi2dBWgeg5b3
         9kww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=FPTLs/th97uodahK+/rvaeKkUTbLWUfjUdtAkojp37I=;
        b=wBmfatPxOTAp/MiqQed+byHVZ3gn2PmfFfEEtINl1DKS9MgkX8kyFqXxacjZBRnXJP
         9betglTQfjzg/ltFxympeN8IzQebiZOk+ySVFp44WH9R/ZZK56othHW9JbrI6xT5mK2L
         wHfWKd+sEHx9vGER1HnTXly8rWcnxxQixWUhGgAmwg7PDyrrpdQZPVUL9hzxbZ3YIg2f
         LVnxFEbtuHrCMVAu7MidgWIvjJmKSsuzaY6cxTmZmJ9/Ug4L2/1aBcmz7PlKIw6p62X3
         9uy+iJkBDqhIhLnzh2A4GFFRuFwbJK3ngp/ygNrbCcpQfmC4nIyfKr7Io2DIoFcY4Gno
         01tw==
X-Gm-Message-State: AOAM531+JGJBtxpQcYGK8y5lQbGeogDxr1OMyiMZ+qy4MByZxAKHD23u
	LxT5P+37M7OACtNOJkOz87Wngk9h9+zwtg==
X-Google-Smtp-Source: ABdhPJyJjgVbxwD/cJ0i6X2H3Ivu3dBormZVxdhDbafV70kVNekKnHNbfXf+CvN/V3XOKrs45pd+rQ==
X-Received: by 2002:a17:906:4f05:: with SMTP id t5mr18288750eju.68.1636094009824;
        Thu, 04 Nov 2021 23:33:29 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v6 0/7] PCI devices passthrough on Arm, part 2
Date: Fri,  5 Nov 2021 08:33:19 +0200
Message-Id: <20211105063326.939843-1-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Hi, all!

This is an assorted series of patches which aim is to make some further
basis for PCI passthrough on Arm support. The series continues the work
published earlier by Arm [1] and adds new helpers and clears the way for
vPCI changes which will follow.

RFC is at [2], [3]. Design presentation can be found at [4].

Thank you,
Oleksandr

[1] https://patchwork.kernel.org/project/xen-devel/list/?series=558681
[2] https://lists.xenproject.org/archives/html/xen-devel/2020-07/msg01184.html
[3] https://lists.xenproject.org/archives/html/xen-devel/2020-07/threads.html#01184
[4] https://static.sched.com/hosted_files/xen2021/e4/PCI_Device_Passthrough_On_Arm.pdf

Oleksandr Andrushchenko (7):
  xen/arm: rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE
  xen/arm: add pci-domain for disabled devices
  xen/arm: setup MMIO range trap handlers for hardware domain
  xen/arm: do not map PCI ECAM and MMIO space to Domain-0's p2m
  xen/arm: do not map IRQs and memory for disabled devices
  xen/arm: process pending vPCI map/unmap operations
  xen/arm: do not use void pointer in pci_host_common_probe

 xen/arch/arm/domain.c               |  2 +
 xen/arch/arm/domain_build.c         | 83 ++++++++++++++++++----------
 xen/arch/arm/pci/ecam.c             | 18 +++++-
 xen/arch/arm/pci/pci-host-common.c  | 85 +++++++++++++++++++++++++++--
 xen/arch/arm/pci/pci-host-generic.c |  2 +-
 xen/arch/arm/pci/pci-host-zynqmp.c  |  3 +-
 xen/arch/arm/pci/pci.c              |  2 +-
 xen/arch/arm/traps.c                | 13 +++++
 xen/arch/arm/vpci.c                 | 66 +++++++++++++++++++---
 xen/arch/arm/vpci.h                 |  6 ++
 xen/arch/x86/hvm/hvm.c              |  6 ++
 xen/common/ioreq.c                  |  9 ---
 xen/include/asm-arm/device.h        |  2 +-
 xen/include/asm-arm/pci.h           | 28 +++++++++-
 xen/include/asm-arm/setup.h         | 13 +++++
 15 files changed, 278 insertions(+), 60 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:33:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:33:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222020.384018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misn7-0001Ag-GG; Fri, 05 Nov 2021 06:33:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222020.384018; Fri, 05 Nov 2021 06:33:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misn7-0001AZ-D5; Fri, 05 Nov 2021 06:33:33 +0000
Received: by outflank-mailman (input) for mailman id 222020;
 Fri, 05 Nov 2021 06:33:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1misn6-0000uf-DE
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:33:32 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b4c8a72-3e02-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:33:31 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id g10so29445450edj.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:33:31 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id e12sm3599870ejs.86.2021.11.04.23.33.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:33:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b4c8a72-3e02-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=NpxZeW1ob2oJ1OjlMF1HQC/OBJW7HkL+IWHKhX4cdFQ=;
        b=VpF5QomEvz3AkIO6BVmFPxKcI93OQn8rhyLo6uT1gpTKm/Sl2UKZNcBwhrCq3iYt4N
         0he1AifpyHyfLaPdDfkPQz4X9UCSxf5WFJahzUGsrm2XIE6EPPEaYjzTFY1lM/A/NaYW
         nbC7urXradjKl/AEnXLqcHfbjeRiMgN7+V0ktv/qfchhPwBXxLtpkfRigySJ4gOUsGHG
         44Kg62aPnzk8mCQYd3jYJAmEHGQAFXSJI7aH1uNF0gLSS4FUR4ABmWuNE7yeKE9PaUnA
         3Q6IWepGjLAxchz4R8A12nZO5bz9mYre/RZ7rJCdJFoPWd2/R6eKxGTR6KMUFXuZSY6X
         CU2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=NpxZeW1ob2oJ1OjlMF1HQC/OBJW7HkL+IWHKhX4cdFQ=;
        b=YzULZWg3ZX0c5oR60p7AjG4F4xRPoKhrXlJzSoYE31sBJ4dVy8gPxsgdRH+d92ssNf
         p5bkawlFRkwKVJy0omV9SlQlVfaYUwU7apcUpboGMUuIXm4yygjSFzTx7yOVifGtGQHK
         5S8TlSOCdeUtIYej35hWFBBlQoGh8raPUgUf7owTAnJtlkVrE1WbEY7k/CzBhgbMsjXZ
         Dmmap/+FcSQp/2BSh3eSqQnx+Q5N45UJXlnKQ5wuVROjYd9Kx9QPsa9+9jTnHHijdFo8
         GjlEBior6Z6o0oOUjmdwNhege9AduWhdNutswXojMz2W2hKqXqvI/Eg5BuKwn5hgpsPS
         bV/w==
X-Gm-Message-State: AOAM5307Cj9WKqyQQrF7GoAhtsKwte8DwT5w62InqMq8KUz6dEG45SCt
	pkon8WfoFDtJhddkbuR6mEK73M680PwJBw==
X-Google-Smtp-Source: ABdhPJwiKXxH8CFi6cbmauliu4A8R5NQ6lsQtohPzmA81YwvSXPzM2kcbskCcVp9emt/qAgTee6K7A==
X-Received: by 2002:aa7:cf91:: with SMTP id z17mr55010868edx.193.1636094011048;
        Thu, 04 Nov 2021 23:33:31 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v6 1/7] xen/arm: rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE
Date: Fri,  5 Nov 2021 08:33:20 +0200
Message-Id: <20211105063326.939843-2-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105063326.939843-1-andr2000@gmail.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

To better reflect the nature of the device type and not to make any
confusion rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE which it
really is.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Suggested-by: Julien Grall <julien@xen.org>

---
New in v6
---
 xen/arch/arm/pci/pci-host-generic.c | 2 +-
 xen/arch/arm/pci/pci-host-zynqmp.c  | 2 +-
 xen/arch/arm/pci/pci.c              | 2 +-
 xen/include/asm-arm/device.h        | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-host-generic.c
index 33457fbe9615..46de6e43cc72 100644
--- a/xen/arch/arm/pci/pci-host-generic.c
+++ b/xen/arch/arm/pci/pci-host-generic.c
@@ -32,7 +32,7 @@ static int __init pci_host_generic_probe(struct dt_device_node *dev,
     return pci_host_common_probe(dev, &pci_generic_ecam_ops);
 }
 
-DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI)
+DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
 .dt_match = gen_pci_dt_match,
 .init = pci_host_generic_probe,
 DT_DEVICE_END
diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host-zynqmp.c
index 61a9807d3d58..516982bca833 100644
--- a/xen/arch/arm/pci/pci-host-zynqmp.c
+++ b/xen/arch/arm/pci/pci-host-zynqmp.c
@@ -49,7 +49,7 @@ static int __init pci_host_generic_probe(struct dt_device_node *dev,
     return pci_host_common_probe(dev, &nwl_pcie_ops);
 }
 
-DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI)
+DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
 .dt_match = nwl_pcie_dt_match,
 .init = pci_host_generic_probe,
 DT_DEVICE_END
diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index 082c14e127a8..78b97beaef12 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -46,7 +46,7 @@ static int __init dt_pci_init(void)
 
     dt_for_each_device_node(dt_host, np)
     {
-        rc = device_init(np, DEVICE_PCI, NULL);
+        rc = device_init(np, DEVICE_PCI_HOSTBRIDGE, NULL);
         /*
          * Ignore the following error codes:
          *   - EBADF: Indicate the current device is not a pci device.
diff --git a/xen/include/asm-arm/device.h b/xen/include/asm-arm/device.h
index 3782660751b6..086dde13eb6b 100644
--- a/xen/include/asm-arm/device.h
+++ b/xen/include/asm-arm/device.h
@@ -37,7 +37,7 @@ enum device_class
     DEVICE_SERIAL,
     DEVICE_IOMMU,
     DEVICE_GIC,
-    DEVICE_PCI,
+    DEVICE_PCI_HOSTBRIDGE,
     /* Use for error */
     DEVICE_UNKNOWN,
 };
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:33:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:33:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222021.384028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misn9-0001Re-P0; Fri, 05 Nov 2021 06:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222021.384028; Fri, 05 Nov 2021 06:33:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misn9-0001RT-M1; Fri, 05 Nov 2021 06:33:35 +0000
Received: by outflank-mailman (input) for mailman id 222021;
 Fri, 05 Nov 2021 06:33:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1misn8-0001ER-6k
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:33:34 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c03c8fa-3e02-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 07:33:33 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id g10so29445595edj.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:33:32 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id e12sm3599870ejs.86.2021.11.04.23.33.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:33:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c03c8fa-3e02-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=OlgpjgahBsbrNbkfAB2Gqbx6wbNdhBt0yFjmP2Yi1zg=;
        b=NjwUjpR5HC2Bg0akPdE1AxsQePsbsjfXZYA7sDRBtsedkkOWlwLQPkdkz+x9kboXGy
         M5YFcQfs8nVUDz5uQYw7zAaySt4XLq+bd3hiPlT9x79OrufwJDT/nSZsHalyDN4syhvf
         icawSkNQD5UiHo78v+auxuFt51ODnNJ+plgo+pjcfX/KIBRAtPLkKYEvHkWnTQaHtMFg
         bar38eAT+zlAqhs9DCmZLpY+VTfCsjv1tYAwj9HpuAwppp86NNhixVu+1GE9Zz2guVm0
         N91ReZaZrdmUYH6nqZPk02tpBGslt3yJWvTCCgaqceTsc6kOaaTnWzyhFMthCltsuZ2U
         tunw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=OlgpjgahBsbrNbkfAB2Gqbx6wbNdhBt0yFjmP2Yi1zg=;
        b=SCmFJdWIPacI6cbNn6N8n4bwZYAVuw4cyrTGl+Ghhzdj/ufkpt9ESvUtjgqGTPW3QC
         S66gFy5WWdbTU+qqVaQkjobWXUA4alhfjLiiw79zXypb4PtXwzgzK8jdskHpq/KnPEyF
         h4uqCMInPI9tcJ+6WorkaRafCUE1pAsMBDcTZhlI3DiQNGk4IH1lVwdQB914hS1VE1lo
         0NMlyH3KfiwQ+pPXJjlnqEWdsJ5WtuBvncjDf6sincg1kqnyrItkDKzi55a5jmntJAZh
         nKzpzamnRtfJlsA0b1jjWU2cc157mHBWfxkecf8k/qLdc93SEZE3O8BGW1oo9dlXLyQK
         0p2g==
X-Gm-Message-State: AOAM532rxyIfjyhyMvPEpPNhf07YEOGJVTx19MVkJfIAKYaUjH5d4RKw
	0UHVtywT+pANtrdEYp3nfD4/RJTCujKLDA==
X-Google-Smtp-Source: ABdhPJwtG+PaF+XhSApDY2g23/Yp/gjYGWQ5/anjKkWg4HqvSYC2pJy8ySF6kDMl2A3dJIRSpL48Tw==
X-Received: by 2002:a17:906:2cd5:: with SMTP id r21mr71140062ejr.435.1636094012280;
        Thu, 04 Nov 2021 23:33:32 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Date: Fri,  5 Nov 2021 08:33:21 +0200
Message-Id: <20211105063326.939843-3-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105063326.939843-1-andr2000@gmail.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

If a PCI host bridge device is present in the device tree, but is
disabled, then its PCI host bridge driver was not instantiated.
This results in the failure of the pci_get_host_bridge_segment()
and the following panic during Xen start:

(XEN) Device tree generation failed (-22).
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Could not set up DOM0 guest OS
(XEN) ****************************************

Fix this by adding "linux,pci-domain" property for all device tree nodes
which have "pci" device type, so we know which segments will be used by
the guest for which bridges.

Fixes: 4cfab4425d39 ("xen/arm: Add linux,pci-domain property for hwdom if not available.")

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
New in v6
---
 xen/arch/arm/domain_build.c        | 15 ++++++++++++++-
 xen/arch/arm/pci/pci-host-common.c |  2 +-
 xen/include/asm-arm/pci.h          |  8 ++++++++
 3 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 491f5e2c316e..f7fcb1400c19 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -753,9 +753,22 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
         {
             uint16_t segment;
 
+            /*
+             * The node doesn't have "linux,pci-domain" property and it is
+             * possible that:
+             *  - Xen only has drivers for a part of the host bridges
+             *  - some host bridges are disabled
+             * Make sure we insert the correct "linux,pci-domain" property
+             * in any case, so we know which segments will be used
+             * by Linux for which bridges.
+             */
             res = pci_get_host_bridge_segment(node, &segment);
             if ( res < 0 )
-                return res;
+            {
+                segment = pci_get_new_domain_nr();
+                printk(XENLOG_DEBUG "Assigned segment %d to %s\n",
+                       segment, node->full_name);
+            }
 
             res = fdt_property_cell(kinfo->fdt, "linux,pci-domain", segment);
             if ( res )
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
index d8cbaaaba654..47104b22b221 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -137,7 +137,7 @@ void pci_add_host_bridge(struct pci_host_bridge *bridge)
     list_add_tail(&bridge->node, &pci_host_bridges);
 }
 
-static int pci_get_new_domain_nr(void)
+int pci_get_new_domain_nr(void)
 {
     return atomic_inc_return(&domain_nr);
 }
diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
index 81273e0d87ac..c20eba643d86 100644
--- a/xen/include/asm-arm/pci.h
+++ b/xen/include/asm-arm/pci.h
@@ -108,6 +108,8 @@ static always_inline bool is_pci_passthrough_enabled(void)
 
 void arch_pci_init_pdev(struct pci_dev *pdev);
 
+int pci_get_new_domain_nr(void);
+
 #else   /*!CONFIG_HAS_PCI*/
 
 struct arch_pci_dev { };
@@ -128,5 +130,11 @@ static inline int pci_get_host_bridge_segment(const struct dt_device_node *node,
     return -EINVAL;
 }
 
+static inline int pci_get_new_domain_nr(void)
+{
+    ASSERT_UNREACHABLE();
+    return -1;
+}
+
 #endif  /*!CONFIG_HAS_PCI*/
 #endif /* __ARM_PCI_H__ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:33:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:33:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222023.384051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnC-00021Y-Gu; Fri, 05 Nov 2021 06:33:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222023.384051; Fri, 05 Nov 2021 06:33:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnC-00021K-DK; Fri, 05 Nov 2021 06:33:38 +0000
Received: by outflank-mailman (input) for mailman id 222023;
 Fri, 05 Nov 2021 06:33:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1misnA-0000uf-L6
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:33:36 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d889433-3e02-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:33:35 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id o8so29539932edc.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:33:35 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id e12sm3599870ejs.86.2021.11.04.23.33.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:33:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d889433-3e02-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=ynKiddE/cdPB0rzSPZ2YwMN5+mv/4H5TbvJgrgmAIn4=;
        b=EpFqyisfx/vBiGnUM/Sj3APtqWb9zBlkaLeZ3pBz7poLyBjzYafEbjd165RQ7qVw3L
         bq1dPGrKeGJXJdyrlVFoCLiBd7fbiL7jKbVqVkfdVF3GS/84y8tNq0t6AqKHLYFGl9E2
         IQOJnddbc4OOuXBi+DKDXn9HY/l5RWdlNVI7SGZT4QZfcG055x4fDlSc0IAC9KDXrelu
         Olky4subGN13B+KAh5Uz2osi9PtaamqnzHDlS5ZHLL/XFD0ehB+7Isaz45uQfhx7Qg09
         j6Ar0pNpx7JRr5I2P5m1V74ve/OYZ9lQwUaQF7SozqKOPj7v5R24Wy721wPCW38iDGmR
         vWqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=ynKiddE/cdPB0rzSPZ2YwMN5+mv/4H5TbvJgrgmAIn4=;
        b=nGF07MbpCsRCn4Cqe3vWlle5G8fa3+5hxArSpjeFe+jnzETRWij5bRS9v+0ojMepPF
         J0JRE4/9UeTkFzlCPKF1gb8lSYkp6dMPbj1pDTaQ7R6CzFgzzg7OWUJQSE36h7g2d/0C
         XiIXcQb21KKa92nvZLlig0fw1ljg4cJMo7LoT8SAddXYlMhu+eHuhFUVi9ZnHC82oFXd
         yQI1cH4LuVT0blA9A2WyfNfaPCTxcLAVoIHo1TWMxkcQGH/QNV6g2hL0S5Yu+TsIep42
         AtgIUJ25Dhj4L4XJANi3Atxz3IbtnvdZRBqlwvlESN96xu51TkrlumNKpcc/cZtV+dWc
         eGPg==
X-Gm-Message-State: AOAM533C3gxqdEQMfwh92ua6pJ69dbgpIJMKI83+uB8GgtnYYF8g8rYF
	2WKwJeQwyIQasqXSdtP+M1pUqWxyoT5G/Q==
X-Google-Smtp-Source: ABdhPJynu/s2vk/tUF0oWhS/xn0iTnOuUjuSSMnYvzPxrAZZh+AC4SqJZVSM8n+3HbvDQNwY3yhQ1g==
X-Received: by 2002:a17:906:3542:: with SMTP id s2mr70316097eja.379.1636094014709;
        Thu, 04 Nov 2021 23:33:34 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v6 4/7] xen/arm: do not map PCI ECAM and MMIO space to Domain-0's p2m
Date: Fri,  5 Nov 2021 08:33:23 +0200
Message-Id: <20211105063326.939843-5-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105063326.939843-1-andr2000@gmail.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

PCI host bridges are special devices in terms of implementing PCI
passthrough. According to [1] the current implementation depends on
Domain-0 to perform the initialization of the relevant PCI host
bridge hardware and perform PCI device enumeration. In order to
achieve that one of the required changes is to not map all the memory
ranges in map_range_to_domain as we traverse the device tree on startup
and perform some additional checks if the range needs to be mapped to
Domain-0.

The generic PCI host controller device tree binding says [2]:
- ranges: As described in IEEE Std 1275-1994, but must provide
          at least a definition of non-prefetchable memory. One
          or both of prefetchable Memory and IO Space may also
          be provided.

- reg   : The Configuration Space base address and size, as accessed
          from the parent bus.  The base address corresponds to
          the first bus in the "bus-range" property.  If no
          "bus-range" is specified, this will be bus 0 (the default).

>From the above none of the memory ranges from the "ranges" property
needs to be mapped to Domain-0 at startup as MMIO mapping is going to
be handled dynamically by vPCI as we assign PCI devices, e.g. each
device assigned to Domain-0/guest will have its MMIOs mapped/unmapped
as needed by Xen.

The "reg" property covers not only ECAM space, but may also have other
then the configuration memory ranges described, for example [3]:
- reg: Should contain rc_dbi, config registers location and length.
- reg-names: Must include the following entries:
   "rc_dbi": controller configuration registers;
   "config": PCIe configuration space registers.

This patch makes it possible to not map all the ranges from the
"ranges" property and also ECAM from the "reg". All the rest from the
"reg" property still needs to be mapped to Domain-0, so the PCI
host bridge remains functional in Domain-0.

[1] https://lists.xenproject.org/archives/html/xen-devel/2020-07/msg00777.html
[2] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/host-generic-pci.txt
[3] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/hisilicon-pcie.txt

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v5:
- remove some need_mapping local variables
- use own_device in handle_device
- add __init for pci_ecam_need_p2m_hwdom_mapping
- make pci_host_bridge_mappings use p2m_mmio_direct_dev directly
Since v4:
- update skip_mapping comment
- add comment why we need to map interrupts to Dom0
Since v3:
 - pass struct map_range_data to map_dt_irq_to_domain
 - remove redundant check from map_range_to_domain
 - fix handle_device's .skip_mapping
Since v2:
 - removed check in map_range_to_domain for PCI_DEV
   and moved it to handle_device, so the code is
   simpler
 - s/map_pci_bridge/skip_mapping
 - extended comment in pci_host_bridge_mappings
 - minor code restructure in construct_dom0
 - s/.need_p2m_mapping/.need_p2m_hwdom_mapping and related
   callbacks
 - unsigned int i; in pci_host_bridge_mappings
Since v1:
 - Added better description of why and what needs to be mapped into
   Domain-0's p2m and what doesn't
 - Do not do any mappings for PCI devices while traversing the DT
 - Walk all the bridges and make required mappings in one go
---
 xen/arch/arm/domain_build.c        | 67 +++++++++++++++++-------------
 xen/arch/arm/pci/ecam.c            | 14 +++++++
 xen/arch/arm/pci/pci-host-common.c | 50 ++++++++++++++++++++++
 xen/arch/arm/pci/pci-host-zynqmp.c |  1 +
 xen/include/asm-arm/pci.h          | 10 +++++
 xen/include/asm-arm/setup.h        | 13 ++++++
 6 files changed, 126 insertions(+), 29 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index f7fcb1400c19..c7d992456ca7 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -10,7 +10,6 @@
 #include <asm/regs.h>
 #include <xen/errno.h>
 #include <xen/err.h>
-#include <xen/device_tree.h>
 #include <xen/libfdt/libfdt.h>
 #include <xen/guest_access.h>
 #include <xen/iocap.h>
@@ -51,12 +50,6 @@ static int __init parse_dom0_mem(const char *s)
 }
 custom_param("dom0_mem", parse_dom0_mem);
 
-struct map_range_data
-{
-    struct domain *d;
-    p2m_type_t p2mt;
-};
-
 /* Override macros from asm/page.h to make them work with mfn_t */
 #undef virt_to_mfn
 #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
@@ -1676,10 +1669,10 @@ static int __init map_dt_irq_to_domain(const struct dt_device_node *dev,
                                        const struct dt_irq *dt_irq,
                                        void *data)
 {
-    struct domain *d = data;
+    struct map_range_data *mr_data = data;
+    struct domain *d = mr_data->d;
     unsigned int irq = dt_irq->irq;
     int res;
-    bool need_mapping = !dt_device_for_passthrough(dev);
 
     if ( irq < NR_LOCAL_IRQS )
     {
@@ -1698,18 +1691,16 @@ static int __init map_dt_irq_to_domain(const struct dt_device_node *dev,
         return res;
     }
 
-    res = map_irq_to_domain(d, irq, need_mapping, dt_node_name(dev));
+    res = map_irq_to_domain(d, irq, !mr_data->skip_mapping, dt_node_name(dev));
 
     return 0;
 }
 
-static int __init map_range_to_domain(const struct dt_device_node *dev,
-                                      u64 addr, u64 len,
-                                      void *data)
+int __init map_range_to_domain(const struct dt_device_node *dev,
+                               u64 addr, u64 len, void *data)
 {
     struct map_range_data *mr_data = data;
     struct domain *d = mr_data->d;
-    bool need_mapping = !dt_device_for_passthrough(dev);
     int res;
 
     res = iomem_permit_access(d, paddr_to_pfn(addr),
@@ -1723,7 +1714,7 @@ static int __init map_range_to_domain(const struct dt_device_node *dev,
         return res;
     }
 
-    if ( need_mapping )
+    if ( !mr_data->skip_mapping )
     {
         res = map_regions_p2mt(d,
                                gaddr_to_gfn(addr),
@@ -1752,23 +1743,21 @@ static int __init map_range_to_domain(const struct dt_device_node *dev,
  * then we may need to perform additional mappings in order to make
  * the child resources available to domain 0.
  */
-static int __init map_device_children(struct domain *d,
-                                      const struct dt_device_node *dev,
-                                      p2m_type_t p2mt)
+static int __init map_device_children(const struct dt_device_node *dev,
+                                      struct map_range_data *mr_data)
 {
-    struct map_range_data mr_data = { .d = d, .p2mt = p2mt };
-    int ret;
-
     if ( dt_device_type_is_equal(dev, "pci") )
     {
+        int ret;
+
         dt_dprintk("Mapping children of %s to guest\n",
                    dt_node_full_name(dev));
 
-        ret = dt_for_each_irq_map(dev, &map_dt_irq_to_domain, d);
+        ret = dt_for_each_irq_map(dev, &map_dt_irq_to_domain, mr_data);
         if ( ret < 0 )
             return ret;
 
-        ret = dt_for_each_range(dev, &map_range_to_domain, &mr_data);
+        ret = dt_for_each_range(dev, &map_range_to_domain, mr_data);
         if ( ret < 0 )
             return ret;
     }
@@ -1848,14 +1837,28 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
     unsigned int i;
     int res;
     u64 addr, size;
-    bool need_mapping = !dt_device_for_passthrough(dev);
+    bool own_device = !dt_device_for_passthrough(dev);
+    /*
+     * For PCI passthrough we only need to remap to Dom0 the interrupts
+     * and memory ranges from "reg" property which cover controller's
+     * configuration registers and such. PCIe configuration space registers
+     * of the PCIe Root Complex and PCIe aperture should not be mapped
+     * automatically to Dom0.
+     */
+    struct map_range_data mr_data = {
+        .d = d,
+        .p2mt = p2mt,
+        .skip_mapping = !own_device ||
+                        (is_pci_passthrough_enabled() &&
+                        (device_get_class(dev) == DEVICE_PCI_HOSTBRIDGE))
+    };
 
     naddr = dt_number_of_address(dev);
 
     dt_dprintk("%s passthrough = %d naddr = %u\n",
-               dt_node_full_name(dev), need_mapping, naddr);
+               dt_node_full_name(dev), own_device, naddr);
 
-    if ( need_mapping )
+    if ( own_device )
     {
         dt_dprintk("Check if %s is behind the IOMMU and add it\n",
                    dt_node_full_name(dev));
@@ -1881,14 +1884,13 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
         }
     }
 
-    res = handle_device_interrupts(d, dev, need_mapping);
+    res = handle_device_interrupts(d, dev, own_device);
     if ( res < 0 )
         return res;
 
     /* Give permission and map MMIOs */
     for ( i = 0; i < naddr; i++ )
     {
-        struct map_range_data mr_data = { .d = d, .p2mt = p2mt };
         res = dt_device_get_address(dev, i, &addr, &size);
         if ( res )
         {
@@ -1902,7 +1904,7 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
             return res;
     }
 
-    res = map_device_children(d, dev, p2mt);
+    res = map_device_children(dev, &mr_data);
     if ( res )
         return res;
 
@@ -3060,7 +3062,14 @@ static int __init construct_dom0(struct domain *d)
         return rc;
 
     if ( acpi_disabled )
+    {
         rc = prepare_dtb_hwdom(d, &kinfo);
+        if ( rc < 0 )
+            return rc;
+#ifdef CONFIG_HAS_PCI
+        rc = pci_host_bridge_mappings(d);
+#endif
+    }
     else
         rc = prepare_acpi(d, &kinfo);
 
diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
index 602d00799c8d..4f71b11c3057 100644
--- a/xen/arch/arm/pci/ecam.c
+++ b/xen/arch/arm/pci/ecam.c
@@ -40,6 +40,19 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
     return base + (PCI_DEVFN2(sbdf.bdf) << devfn_shift) + where;
 }
 
+bool __init pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
+                                            struct pci_host_bridge *bridge,
+                                            uint64_t addr)
+{
+    struct pci_config_window *cfg = bridge->cfg;
+
+    /*
+     * We do not want ECAM address space to be mapped in Domain-0's p2m,
+     * so we can trap access to it.
+     */
+    return cfg->phys_addr != addr;
+}
+
 /* ECAM ops */
 const struct pci_ecam_ops pci_generic_ecam_ops = {
     .bus_shift  = 20,
@@ -47,6 +60,7 @@ const struct pci_ecam_ops pci_generic_ecam_ops = {
         .map_bus                = pci_ecam_map_bus,
         .read                   = pci_generic_config_read,
         .write                  = pci_generic_config_write,
+        .need_p2m_hwdom_mapping = pci_ecam_need_p2m_hwdom_mapping,
     }
 };
 
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
index 0d271a6e8881..6af845ab9d6c 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -22,6 +22,8 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/setup.h>
+
 /*
  * List for all the pci host bridges.
  */
@@ -316,6 +318,54 @@ unsigned int pci_host_get_num_bridges(void)
     return count;
 }
 
+int __init pci_host_bridge_mappings(struct domain *d)
+{
+    struct pci_host_bridge *bridge;
+    struct map_range_data mr_data = {
+        .d = d,
+        .p2mt = p2m_mmio_direct_dev,
+        .skip_mapping = false
+    };
+
+    /*
+     * For each PCI host bridge we need to only map those ranges
+     * which are used by Domain-0 to properly initialize the bridge,
+     * e.g. we do not want to map ECAM configuration space which lives in
+     * "reg" device tree property, but we want to map other regions of
+     * the host bridge. The PCI aperture defined by the "ranges" device
+     * tree property should also be skipped.
+     */
+    list_for_each_entry( bridge, &pci_host_bridges, node )
+    {
+        const struct dt_device_node *dev = bridge->dt_node;
+        unsigned int i;
+
+        for ( i = 0; i < dt_number_of_address(dev); i++ )
+        {
+            uint64_t addr, size;
+            int err;
+
+            err = dt_device_get_address(dev, i, &addr, &size);
+            if ( err )
+            {
+                printk(XENLOG_ERR
+                       "Unable to retrieve address range index=%u for %s\n",
+                       i, dt_node_full_name(dev));
+                return err;
+            }
+
+            if ( bridge->ops->need_p2m_hwdom_mapping(d, bridge, addr) )
+            {
+                err = map_range_to_domain(dev, addr, size, &mr_data);
+                if ( err )
+                    return err;
+            }
+        }
+    }
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host-zynqmp.c
index 516982bca833..101edb8593c1 100644
--- a/xen/arch/arm/pci/pci-host-zynqmp.c
+++ b/xen/arch/arm/pci/pci-host-zynqmp.c
@@ -34,6 +34,7 @@ const struct pci_ecam_ops nwl_pcie_ops = {
         .map_bus                = pci_ecam_map_bus,
         .read                   = pci_generic_config_read,
         .write                  = pci_generic_config_write,
+        .need_p2m_hwdom_mapping = pci_ecam_need_p2m_hwdom_mapping,
     }
 };
 
diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
index 969333043431..3d706fdd1d88 100644
--- a/xen/include/asm-arm/pci.h
+++ b/xen/include/asm-arm/pci.h
@@ -17,6 +17,8 @@
 
 #ifdef CONFIG_HAS_PCI
 
+#include <asm/p2m.h>
+
 #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
 
 extern bool pci_passthrough_enabled;
@@ -73,6 +75,9 @@ struct pci_ops {
                 uint32_t reg, uint32_t len, uint32_t *value);
     int (*write)(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
                  uint32_t reg, uint32_t len, uint32_t value);
+    bool (*need_p2m_hwdom_mapping)(struct domain *d,
+                                   struct pci_host_bridge *bridge,
+                                   uint64_t addr);
 };
 
 /*
@@ -96,6 +101,9 @@ int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
                              uint32_t reg, uint32_t len, uint32_t value);
 void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
                                pci_sbdf_t sbdf, uint32_t where);
+bool pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
+                                     struct pci_host_bridge *bridge,
+                                     uint64_t addr);
 struct pci_host_bridge *pci_find_host_bridge(uint16_t segment, uint8_t bus);
 struct dt_device_node *pci_find_host_bridge_node(struct device *dev);
 int pci_get_host_bridge_segment(const struct dt_device_node *node,
@@ -115,6 +123,8 @@ int pci_host_iterate_bridges(struct domain *d,
                                         struct pci_host_bridge *bridge));
 unsigned int pci_host_get_num_bridges(void);
 
+int pci_host_bridge_mappings(struct domain *d);
+
 #else   /*!CONFIG_HAS_PCI*/
 
 struct arch_pci_dev { };
diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
index 95da0b7ab9cd..88d9673db817 100644
--- a/xen/include/asm-arm/setup.h
+++ b/xen/include/asm-arm/setup.h
@@ -2,6 +2,8 @@
 #define __ARM_SETUP_H_
 
 #include <public/version.h>
+#include <asm/p2m.h>
+#include <xen/device_tree.h>
 
 #define MIN_FDT_ALIGN 8
 #define MAX_FDT_SIZE SZ_2M
@@ -77,6 +79,14 @@ struct bootinfo {
 #endif
 };
 
+struct map_range_data
+{
+    struct domain *d;
+    p2m_type_t p2mt;
+    /* Set if mapping of the memory ranges must be skipped. */
+    bool skip_mapping;
+};
+
 extern struct bootinfo bootinfo;
 
 extern domid_t max_init_domid;
@@ -124,6 +134,9 @@ void device_tree_get_reg(const __be32 **cell, u32 address_cells,
 u32 device_tree_get_u32(const void *fdt, int node,
                         const char *prop_name, u32 dflt);
 
+int map_range_to_domain(const struct dt_device_node *dev,
+                        u64 addr, u64 len, void *data);
+
 #endif
 /*
  * Local variables:
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:33:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:33:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222024.384056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnC-000243-UR; Fri, 05 Nov 2021 06:33:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222024.384056; Fri, 05 Nov 2021 06:33:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnC-00023j-OZ; Fri, 05 Nov 2021 06:33:38 +0000
Received: by outflank-mailman (input) for mailman id 222024;
 Fri, 05 Nov 2021 06:33:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1misnB-0000uf-9c
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:33:37 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e1ba8e0-3e02-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:33:36 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id g10so29446069edj.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:33:36 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id e12sm3599870ejs.86.2021.11.04.23.33.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:33:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e1ba8e0-3e02-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=stTfdYmsCC/2Kmn4pDoWefR6cFnWNl9nnA6XN7kP6KA=;
        b=RrUXMZjfuRVcVwWaN83xyLLOv4csdbKiElqWVwCIZByOoI8zw9325+q2N4a37Antnw
         JBSWsmLXh5F3pheSFKHoqulolgtSO1RQT5Ym7U2tvGEdK7DPW1o3ALSFMaCA5sLtMAtO
         VPeuXIu1LANoaf3CKEdmL4UiWDPJ27eqlJCXnnSAbARIoClGPfvHrfrp+iPLNOeburDV
         MplYa1LjpQ1FcOvWC/czuim/YVDtA3i5h+9XtLp5WIiXP3iCNkMlx2Sm/G3cI62ihJ9V
         muZlfDBMz/4U21Cb+9fvPmolf0+ZqELYpzj2hRoWNTnPva8eXxdmm564aTYsj9yB28bI
         1+sw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=stTfdYmsCC/2Kmn4pDoWefR6cFnWNl9nnA6XN7kP6KA=;
        b=MnUpQjQPeJJMKhfj9hnYBzmUVQ5nPZGJ5FYyH5bfHradQcgmyuZ+DfO9RPTss5joaa
         zrc9ejVxzQcFSJMUBFqGweMZbUwn8gLU4tDiCCsR79TtqGPxnb7N3jaGIm4AF2u75Wiz
         fIASPf7Gwp+eTw9tYlwvE0cpx+RyFoOu7Pn0l0frOYq9lb1T3CQxAlZG1kPM7hbzt6sQ
         qxlsD3Rdh0ymFQsl7a0Xy/ucd345Re7cKjEdXVPpxJGMro+0xv2Nmc1FkmXSL0SL8GEt
         RkTUQzNuRaf541PodpC2hDylYfPF7DQclc0QFfJmTMGjGPYJubAt1ywy12CR5BLAkbyZ
         ST4g==
X-Gm-Message-State: AOAM5307D5ofmX++QbaglSgLhbXTiqJ7qJRLJ22b4/pzArlqReyJLjSs
	Gui1LYU9l4Xh4xRyalS1/LUvh2hge7k2pw==
X-Google-Smtp-Source: ABdhPJxrKjutd4WGx5j5BYryIufBgqCfi+owCQzpGgyAM2oQP58FDlI26VRqE+2qFGV4IRSp83bPTg==
X-Received: by 2002:a17:906:5641:: with SMTP id v1mr19942107ejr.357.1636094015861;
        Thu, 04 Nov 2021 23:33:35 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v6 5/7] xen/arm: do not map IRQs and memory for disabled devices
Date: Fri,  5 Nov 2021 08:33:24 +0200
Message-Id: <20211105063326.939843-6-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105063326.939843-1-andr2000@gmail.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Currently Xen maps all IRQs and memory ranges for all devices except
those marked for passthrough, e.g. it doesn't pay attention to the
"status" property of the node.

According to the device tree specification [1]:
 - "okay"     Indicates the device is operational.
 - "disabled" Indicates that the device is not presently operational,
              but it might become operational in the future (for example,
	      something is not plugged in, or switched off).
	      Refer to the device binding for details on what disabled means
	      for a given device.

So, "disabled" status is device dependent and mapping should be taken by
case-by-case approach with that respect. Although in general Xen should map
IRQs and memory ranges as the disabled devices might become operational it
makes it impossible for the other devices, which are not operational in
any case, to skip the mappings.

This patch disables mapping for the devices with status = "disabled".

[1] https://github.com/devicetree-org/devicetree-specification/releases/download/v0.3/devicetree-specification-v0.3.pdf

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
New in v6
---
 xen/arch/arm/domain_build.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index c7d992456ca7..d3a4c0a173b8 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1837,7 +1837,8 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
     unsigned int i;
     int res;
     u64 addr, size;
-    bool own_device = !dt_device_for_passthrough(dev);
+    bool own_device = !dt_device_for_passthrough(dev) &&
+                      dt_device_is_available(dev);
     /*
      * For PCI passthrough we only need to remap to Dom0 the interrupts
      * and memory ranges from "reg" property which cover controller's
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:33:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:33:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222025.384063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnD-0002GP-Ko; Fri, 05 Nov 2021 06:33:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222025.384063; Fri, 05 Nov 2021 06:33:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnD-0002E9-EJ; Fri, 05 Nov 2021 06:33:39 +0000
Received: by outflank-mailman (input) for mailman id 222025;
 Fri, 05 Nov 2021 06:33:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1misnC-0000uf-BP
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:33:38 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4ed02a88-3e02-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:33:37 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id r4so28862671edi.5
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:33:37 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id e12sm3599870ejs.86.2021.11.04.23.33.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:33:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ed02a88-3e02-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=sGK8Pm6RypWgXJkvMD4+e3RPRWZCdgGUZOOGFT2QhCc=;
        b=i7ywQryvHdyLIfZJGgicojKb9SnEXWuT1Bj9bVk6hTWVxo91p52uTyU0HR4FNKFYZi
         dzeslv82jS4cHhWqhsCvXNG2exjYcpMtDAUG34M7SW1HF0uO+8xJHz2QGPMgtRiDKXxB
         2vLLz098HV7e4qaeu21VvmDtBjsxw4gUaTAbAJra8dzuPQ+YQxw3P/WlRDwtPvmaDC2Q
         vPwdfNV1vYMzdN35G97zbyD2CMph+IHMZXd1rQA5JCUKRrHbw8ykvIbB/EjAcDM8SEJq
         p+V2alnGb9FUbkYler+gX0VXQssM37lXJu13di3G0eGc2Lg1D2o5TAW2/uI65DBUpkei
         D3BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=sGK8Pm6RypWgXJkvMD4+e3RPRWZCdgGUZOOGFT2QhCc=;
        b=hAbZUx9ZPAKocGyZ+cvNcgaxAHdFZ+2ahqlMA3MnWmhde4M5bg2RAZQlzphb8SCVLN
         MQUvHbQimbCf1v99jBesJ6Iefz/61wZpBS1NuEWCMgze6lSkpuEoWbywyVU3XioP7E+y
         XIz6+25k+zyTB9f1T5cBcxSUlBaGCGMBFaKd3RnEhTR4mWpyok2aLs61H4QQd3LYuo0x
         a7aBB5EWGK8WBZPZy2/iGnjdQ/VUAjtnc98Moy++/4wsoOCEFo/USX9kmy0tTTSBaZX1
         aABW3bpND5bb7QUYpNG5U1dArUInoWJ9hdDhgEA9cdzlWCjvpF7xSakJFZpN1DTJvkQT
         itJA==
X-Gm-Message-State: AOAM530AMHmToPNvFqJ/LQvhoOyABCNT2s+Iyg859Iesj6s25fjWgS9I
	vJw/n/zwxTHhXy5PP4V2+gIvCwsx8dqS3g==
X-Google-Smtp-Source: ABdhPJxj576TShH4DBFMpmVbDp7CpVwPbsc9NWydnsmtIkF+CjmzVn+aOPMN4Hce10ZKTtAbYmEdww==
X-Received: by 2002:a17:906:c187:: with SMTP id g7mr67130837ejz.534.1636094016970;
        Thu, 04 Nov 2021 23:33:36 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v6 6/7] xen/arm: process pending vPCI map/unmap operations
Date: Fri,  5 Nov 2021 08:33:25 +0200
Message-Id: <20211105063326.939843-7-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105063326.939843-1-andr2000@gmail.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

vPCI may map and unmap PCI device memory (BARs) being passed through which
may take a lot of time. For this those operations may be deferred to be
performed later, so that they can be safely preempted.

Currently this deferred processing is happening in common IOREQ code
which doesn't seem to be the right place for x86 and is even more
doubtful because IOREQ may not be enabled for Arm at all.
So, for Arm the pending vPCI work may have no chance to be executed
if the processing is left as is in the common IOREQ code only.
For that reason make vPCI processing happen in arch specific code.

Please be aware that there are a few outstanding TODOs affecting this
code path, see xen/drivers/vpci/header.c:map_range and
xen/drivers/vpci/header.c:vpci_process_pending.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Paul Durrant <paul@xen.org>

Since v5:
 - check_for_vcpu_work: vPCI addition is moved before the
   vcpu_ioreq__handle_completion(v). This is to avoid differences
   with the x86 version. (Julien)
Since v2:
 - update commit message with more insight on x86, IOREQ and Arm
 - restored order of invocation for IOREQ and vPCI processing (Jan)
Since v1:
 - Moved the check for pending vpci work from the common IOREQ code
   to hvm_do_resume on x86
 - Re-worked the code for Arm to ensure we don't miss pending vPCI work
---
 xen/arch/arm/traps.c   | 13 +++++++++++++
 xen/arch/x86/hvm/hvm.c |  6 ++++++
 xen/common/ioreq.c     |  9 ---------
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 219ab3c3fbde..8757210a798b 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -34,6 +34,7 @@
 #include <xen/symbols.h>
 #include <xen/version.h>
 #include <xen/virtual_region.h>
+#include <xen/vpci.h>
 
 #include <public/sched.h>
 #include <public/xen.h>
@@ -2290,6 +2291,18 @@ static bool check_for_vcpu_work(void)
 {
     struct vcpu *v = current;
 
+    if ( has_vpci(v->domain) )
+    {
+        bool pending;
+
+        local_irq_enable();
+        pending = vpci_process_pending(v);
+        local_irq_disable();
+
+        if ( pending )
+            return true;
+    }
+
 #ifdef CONFIG_IOREQ_SERVER
     if ( domain_has_ioreq_server(v->domain) )
     {
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index eee365711d63..096a61b7ea02 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -546,6 +546,12 @@ void hvm_do_resume(struct vcpu *v)
 
     pt_restore_timer(v);
 
+    if ( has_vpci(v->domain) && vpci_process_pending(v) )
+    {
+        raise_softirq(SCHEDULE_SOFTIRQ);
+        return;
+    }
+
     if ( !vcpu_ioreq_handle_completion(v) )
         return;
 
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index d732dc045df9..689d256544c8 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -25,9 +25,7 @@
 #include <xen/lib.h>
 #include <xen/paging.h>
 #include <xen/sched.h>
-#include <xen/softirq.h>
 #include <xen/trace.h>
-#include <xen/vpci.h>
 
 #include <asm/guest_atomics.h>
 #include <asm/ioreq.h>
@@ -212,19 +210,12 @@ static bool wait_for_io(struct ioreq_vcpu *sv, ioreq_t *p)
 
 bool vcpu_ioreq_handle_completion(struct vcpu *v)
 {
-    struct domain *d = v->domain;
     struct vcpu_io *vio = &v->io;
     struct ioreq_server *s;
     struct ioreq_vcpu *sv;
     enum vio_completion completion;
     bool res = true;
 
-    if ( has_vpci(d) && vpci_process_pending(v) )
-    {
-        raise_softirq(SCHEDULE_SOFTIRQ);
-        return false;
-    }
-
     while ( (sv = get_pending_vcpu(v, &s)) != NULL )
         if ( !wait_for_io(sv, get_ioreq(s, v)) )
             return false;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:33:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:33:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222026.384081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnF-0002k1-5k; Fri, 05 Nov 2021 06:33:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222026.384081; Fri, 05 Nov 2021 06:33:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1misnE-0002i1-S8; Fri, 05 Nov 2021 06:33:40 +0000
Received: by outflank-mailman (input) for mailman id 222026;
 Fri, 05 Nov 2021 06:33:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1misnD-0001ER-Hv
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:33:39 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4f8eac75-3e02-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 07:33:38 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id j21so29439095edt.11
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:33:38 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id e12sm3599870ejs.86.2021.11.04.23.33.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:33:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f8eac75-3e02-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=LylF1cpLHbISjBJqhF+mgwyYAEJHR3syGzKHfKTNLi4=;
        b=Gb1Tzc+FiWeAo4gYgZJI7/zVVhxSsRR70ZC7KSuPQvNGguptQB3sNexSAp5CwJI5VJ
         /K2eB1ZF8c98NyO/gtNCcQKPCZni/nPcUtnYGaX1mcSNU1P1u839zJDKFkRcYZlAgVxS
         PfUwixFuQgTRq9ATCMli/7FLRqm/QVwsQ8a//7FSGlnj1JOirpsL0ctL2Nx58pgE6/X6
         x+gtsipn21Vr0nhRB5c0q1UtxPSeSe+aqIRW6ZeFKNiEylI37ZWSoz+tuWvO54ratC3m
         xZ4ihes4NrAbGYrkOTH+FY30KwAgvEH2kPptjphIpP9HTLNEFSszxF3vDm7HKkS6qRGp
         iWNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=LylF1cpLHbISjBJqhF+mgwyYAEJHR3syGzKHfKTNLi4=;
        b=eXtkw8VwrXPw88OZ55aO5RS8DgS+v8kGzOHn8A5hol3dSujPxZD6ObFHbtlQH5KIfG
         lKFxoA6E2o056IKyuN5iJZUogpnCKpKpCo1y32nyRzbtyNTlETiwAEUY5dkMrDxqsjS6
         aB/t3bHXFwFCfmzclZLClMq8ivVHzJ20AOYdY4Eu/3v3fqbqwyZRCPf8ZIGXKpJUfvUg
         xnIJ/g2GJBVjgzlRR4hmwHtBx7HOFm9UmBlR/STCN40Fbt8h5oq5jwf9v9z36U0ufJ3x
         Z6K9+jsTiyaghfpuD9zbYO3aItzhXIg0p3QdpK0vNmLC4GZo4hDORThVGRF8Xzt+OCTB
         4PkQ==
X-Gm-Message-State: AOAM532ei8AhDJeJdt/mKFkalIpY3EruU3MMr/9FHoFgvVgqPps8DF8W
	WYZCHtfMNDyTKx/COKCyWOlRM/2FhMAVfA==
X-Google-Smtp-Source: ABdhPJx6KXyOXUui/Xab210y17uEpTCWAHBBf70htETILb3uWGGNACWCe6wxS5hfGSRplFUVJGz2Tw==
X-Received: by 2002:a17:907:6289:: with SMTP id nd9mr68670282ejc.101.1636094018309;
        Thu, 04 Nov 2021 23:33:38 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v6 7/7] xen/arm: do not use void pointer in pci_host_common_probe
Date: Fri,  5 Nov 2021 08:33:26 +0200
Message-Id: <20211105063326.939843-8-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105063326.939843-1-andr2000@gmail.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There is no reason to use void pointer while passing ECAM ops to the
pci_host_common_probe function as it is anyway casted to struct pci_ecam_ops
inside. For that reason remove the void pointer and pass struct pci_ecam_ops
pointer as is.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
New in v4
---
 xen/arch/arm/pci/ecam.c            | 4 ++--
 xen/arch/arm/pci/pci-host-common.c | 6 ++----
 xen/include/asm-arm/pci.h          | 5 +++--
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
index 4f71b11c3057..6aeea12a68bf 100644
--- a/xen/arch/arm/pci/ecam.c
+++ b/xen/arch/arm/pci/ecam.c
@@ -24,8 +24,8 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
                                pci_sbdf_t sbdf, uint32_t where)
 {
     const struct pci_config_window *cfg = bridge->cfg;
-    struct pci_ecam_ops *ops =
-        container_of(bridge->ops, struct pci_ecam_ops, pci_ops);
+    const struct pci_ecam_ops *ops =
+        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
     unsigned int devfn_shift = ops->bus_shift - 8;
     void __iomem *base;
 
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
index 6af845ab9d6c..1aad664b213e 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -194,15 +194,13 @@ static int pci_bus_find_domain_nr(struct dt_device_node *dev)
     return domain;
 }
 
-int pci_host_common_probe(struct dt_device_node *dev, const void *data)
+int pci_host_common_probe(struct dt_device_node *dev,
+                          const struct pci_ecam_ops *ops)
 {
     struct pci_host_bridge *bridge;
     struct pci_config_window *cfg;
-    struct pci_ecam_ops *ops;
     int err;
 
-    ops = (struct pci_ecam_ops *) data;
-
     bridge = pci_alloc_host_bridge();
     if ( !bridge )
         return -ENOMEM;
diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
index 3d706fdd1d88..4199e0267d24 100644
--- a/xen/include/asm-arm/pci.h
+++ b/xen/include/asm-arm/pci.h
@@ -65,7 +65,7 @@ struct pci_host_bridge {
     struct list_head node;           /* Node in list of host bridges */
     uint16_t segment;                /* Segment number */
     struct pci_config_window* cfg;   /* Pointer to the bridge config window */
-    struct pci_ops *ops;
+    const struct pci_ops *ops;
 };
 
 struct pci_ops {
@@ -94,7 +94,8 @@ struct pci_ecam_ops {
 /* Default ECAM ops */
 extern const struct pci_ecam_ops pci_generic_ecam_ops;
 
-int pci_host_common_probe(struct dt_device_node *dev, const void *data);
+int pci_host_common_probe(struct dt_device_node *dev,
+                          const struct pci_ecam_ops *ops);
 int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
                             uint32_t reg, uint32_t len, uint32_t *value);
 int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:36:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:36:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222060.384095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mispm-0005os-Mm; Fri, 05 Nov 2021 06:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222060.384095; Fri, 05 Nov 2021 06:36:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mispm-0005ol-JG; Fri, 05 Nov 2021 06:36:18 +0000
Received: by outflank-mailman (input) for mailman id 222060;
 Fri, 05 Nov 2021 06:36:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=znic=PY=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mispl-0005oe-BG
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:36:17 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02on061c.outbound.protection.outlook.com
 [2a01:111:f400:fe07::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac3c17c7-3e02-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 07:36:14 +0100 (CET)
Received: from AM6PR04CA0013.eurprd04.prod.outlook.com (2603:10a6:20b:92::26)
 by AS8PR08MB7111.eurprd08.prod.outlook.com (2603:10a6:20b:402::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Fri, 5 Nov
 2021 06:36:08 +0000
Received: from VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:92:cafe::85) by AM6PR04CA0013.outlook.office365.com
 (2603:10a6:20b:92::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 06:36:08 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT025.mail.protection.outlook.com (10.152.18.74) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Fri, 5 Nov 2021 06:36:07 +0000
Received: ("Tessian outbound c71e1a752bff:v108");
 Fri, 05 Nov 2021 06:36:07 +0000
Received: from 5d75a7617347.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 9BBD1E68-D202-4DE7-8B53-B2A1D3848001.1; 
 Fri, 05 Nov 2021 06:36:01 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5d75a7617347.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 05 Nov 2021 06:36:01 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com (2603:10a6:10:2e4::7)
 by DB9PR08MB7147.eurprd08.prod.outlook.com (2603:10a6:10:2cb::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 06:35:59 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165]) by DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165%3]) with mapi id 15.20.4669.011; Fri, 5 Nov 2021
 06:35:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac3c17c7-3e02-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gRCrcWdwvwVrrN9UGNWdcsejMI2CfEHwFHDg5GmoJyQ=;
 b=sZdXErw0BM+cAOXRP8c4tN4ydEcyKvwsAy+bowQq22Wq+ab899+UWDvOmP/3tO1l2qjuZyrqwKk3Spr9bCZwxMlWUk9UxyCxCoNMWEKzhu5qwxDhL3BYRRtk2YjfCW6cPe1m7rQBIY1tjbUzxPCXx/LjsGLw03chlMu6fdF8m44=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JGjavCM4iQ7ntj6XH9YH6+OI+UWuW99fMi6gzBILL5+hyVd8JhzF+fnB0s1r/RkrqkFbnDCz1sj5tQ45cbFk/cs0hoEGXYs9DHJ/ls9iZ6vmza0lKoI8+ZVik5d61k2aHLAAwN0bw0Gc+16phqJissqrQX7cO8GV439heWUuP6PW/giV1+mszMgEzuuCq65E5Hgf/aG4H3VOtPNLDW4ifisONIV8c5li3LxtOXWNv8LselQTXGA2kKbmzA47RJ/UEKhcOFEXAf4y8Qzf4cTdZrw/q57vLYGNqq+RB5D788BVLWimOtvFes1MP75Yo8u9OUh+cokaSnq+9bqpco99sg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gRCrcWdwvwVrrN9UGNWdcsejMI2CfEHwFHDg5GmoJyQ=;
 b=R5CSGSGQI4ByJz7xxE4SjWTpMOry02Bbo4GDWG/ZpnXVeGDpv6etGf3HQiD7DGJIlMOjsuXatrEhXa+nNyDjpaYrQ9Qerr79/Kp5knWLfzAiBOC8BVbvM3X/av1EGMmLSVXlEGishL2i+qHIB5YBWwuWkycu1JTxpW4dU/ei5IaM6wrqeN8kk8L8vX+IEPgxk6ppikLa4RZKkRgk4aRj5zTEJOJ7UjpkJs9YimZx6C6jl/otWrVq3Qi9wG+V+Y9YCcx8btHpltLEU+PV9mtxkXtWtNtL3g+vzAykeADstzDH5CR4mnNVRxUyKbDEt4YZhAdjcipWQqasJS3YpIP4sA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gRCrcWdwvwVrrN9UGNWdcsejMI2CfEHwFHDg5GmoJyQ=;
 b=sZdXErw0BM+cAOXRP8c4tN4ydEcyKvwsAy+bowQq22Wq+ab899+UWDvOmP/3tO1l2qjuZyrqwKk3Spr9bCZwxMlWUk9UxyCxCoNMWEKzhu5qwxDhL3BYRRtk2YjfCW6cPe1m7rQBIY1tjbUzxPCXx/LjsGLw03chlMu6fdF8m44=
From: Penny Zheng <Penny.Zheng@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Wei
 Chen <Wei.Chen@arm.com>
Subject: RE: static-mem preventing dom0 from booting
Thread-Topic: static-mem preventing dom0 from booting
Thread-Index: AQHX0eWC7qpRq+VAt0Cu1/k92WugAqv0ODjwgABBVXA=
Date: Fri, 5 Nov 2021 06:35:59 +0000
Message-ID:
 <DU2PR08MB7325A7A5658B1EB7C6EB4DECF78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
References:
 <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop>
 <DU2PR08MB73256624607E7624CAAD38E5F78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
In-Reply-To:
 <DU2PR08MB73256624607E7624CAAD38E5F78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: 659194B75B60CA459F57A23FEE854BB7.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 0d19d39f-cfe5-4d7c-694d-08d9a0268cad
x-ms-traffictypediagnostic: DB9PR08MB7147:|AS8PR08MB7111:
X-Microsoft-Antispam-PRVS:
	<AS8PR08MB711113E996F78833A5C44932F78E9@AS8PR08MB7111.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:383;OLM:383;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 DvKH18AwwuWs5nT/RbQ0uGirsOUvmGY/cY011NvwYgiSTPLslDC3DGGVf3BnL2NsjnRbRR1eIOiv5ovHfXIV68bkJ+POnGjOsTEs5aNQahjlIehf+eGY6/q3jrlwsuwdMGvbnKmDsdyLYJeHc0pLnx2FItiSlEi+/iDNdHKkK+AGdlHpHR7fpXeop+Zg2CL7TysL8i0UAKtmXauS10E3y3wfEUyfDsw9qjbVYdFkWBZo8gl79G92JMMZqbj/i1pDOlQYf6DVqsxSfq0nrHR8FrrBdwsV/nmWz7NZkdcXlvhSI4CUY5FcrZDIyLHaNYrYGwQj8lo9jsP40dtup7St+L2FzRUq+bZ+G3v+l92mPiBgBCFmuT+NjsopVjtJ8JRpqT9km12GkK1M9unNKOdeF7PxBhwQSGYQpfRah+Iq4Bpn+E7awbSSpRd7gIwYAy0oa8XgD0Fu82HWr8zQFNgYIESAeSiFOH5gvQZw8gbFhI6ffRvcOYxTh6pG8ea0M75R8vYy9KAF9uWFTNoYlHBJZ0Mmu4ewz87LlwvgBX3WU37gn6ZmkOSYKIgegwUi5/Zx2JebiBHqL8qSHWFEkP16noLFrfRcsBNr1FNFNKFMEJ/VfRwRMX+JJNbWupCv6jKbCSFysoYQ6iXQEMMZ4dyarNxzZaC/OTse0n0xSEHRJ5qvCJlUKnQfemcUHy1SYge7EvSY7u+fHPWhDHOe3VKOnfFqhGQ+zBgR2eQs9yVXYtU=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6506007)(71200400001)(122000001)(7696005)(86362001)(4326008)(83380400001)(66476007)(53546011)(30864003)(66556008)(5660300002)(2906002)(508600001)(76116006)(66446008)(8676002)(66946007)(316002)(38070700005)(26005)(52536014)(54906003)(9686003)(6916009)(55016002)(8936002)(186003)(64756008)(33656002)(2940100002)(38100700002)(139555002);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7147
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f0b4750d-7d29-4905-eb81-08d9a02687c8
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	sDJKQupH1N6YjPFTVDsldcmVdpyqB5OU8k7jrizV/Qu9WWaVj27lJgFdpLIUk61bW1bdXnmQGuxJDXiee54HOlnq8hcHXIMauhXNBjaInp6aFzdzzajMBMLz158zhDG6lUDsYHASLVkWpuJr9PLmNILPPhMCg2pLWJCXju/wSuUei60amox637mEdvSbR2RNwdsWw35ckR8GyUx/mOJ0muFLfIbwW2EzUKzyu6NgNmhHKgoQDlLb7YzWkAMqL8XNvt35vcdtLtMB+SEIiJr42Hol/uhirpP00V/jMZjolwLRJqssSeGU02VSSin3iZyw6a+g7d6EtRq3MP0wW6RxHLpJBlDJ44dp2JkgexEygPDH3UpVBDGycOxZaR8bk4ufaBAp1MPITM1lf2YLsCF6OqvGdflDvRX53eZE/DvWIXWnxYOjpfOZL9Rb5q8oPBoEKzreJ3tLaDLlyLw82vgZ/6HU8GWeG38cSafinqjbMdcVhVH65Cg1IcTAEkdWQfvgWakwOMQRGoEwrFRXZ0T+X1yMuFV2wZhgwkAfVX93qjTILQM+RjzC8SOogWEtkc5j/nDEiYq/39V4M1xlYALLMRzEZHOCRr9lsvMJZOqhtJuv14bxPwAVHr2Zrz7nYPlOOhVkPu1sOBfHnQPAaweoMmoWKpcxvDiEbLqhrUfxgvY1XhcbS53ACf01wMFFtZ8Bm1EkmkL+bwRZeVN3/2pWcAS7QekYq/sHNdcAffhKIkQ=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(82310400003)(55016002)(54906003)(33656002)(2940100002)(4326008)(316002)(30864003)(8676002)(9686003)(508600001)(70586007)(52536014)(70206006)(86362001)(186003)(7696005)(83380400001)(36860700001)(2906002)(47076005)(6506007)(81166007)(8936002)(356005)(26005)(53546011)(5660300002)(336012)(6862004)(139555002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 06:36:07.7562
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d19d39f-cfe5-4d7c-694d-08d9a0268cad
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7111

Hi stefano

> -----Original Message-----
> From: Penny Zheng
> Sent: Friday, November 5, 2021 11:23 AM
> To: Stefano Stabellini <sstabellini@kernel.org>
> Cc: xen-devel@lists.xenproject.org; Wei Chen <Wei.Chen@arm.com>
> Subject: RE: static-mem preventing dom0 from booting
>=20
> Hi Stefano
>=20
> > -----Original Message-----
> > From: Stefano Stabellini <sstabellini@kernel.org>
> > Sent: Friday, November 5, 2021 9:36 AM
> > To: Penny Zheng <Penny.Zheng@arm.com>
> > Cc: sstabellini@kernel.org; xen-devel@lists.xenproject.org
> > Subject: static-mem preventing dom0 from booting
> >
> > Hi Penny,
> >
> > I am trying to test the static-mem feature in Xen 4.16 but I am having
> > some issues. I can boot a dom0less domU with static-mem configured
> > correctly, but when I do so, dom0 doesn't boot any longer.
> >
>=20
> Hmm, In our first intention, dom0less is a mandatory option for static
> allocation.
> domU on static allocation shall boot when dom0 doesn't boot there.
>=20
> We think that, nevertheless, dom0 memory range is allocated by Xen
> automatically, and it leads to the unpredictability. Static allocation th=
rough
> device tree configuration prefers the total static environment to avoid
> unpredictability.
>=20
> > In the same configuration, if I remove the static-mem related lines
> > from the domU node on device tree, both dom0 and domU boot successfully=
.
> >
> > I am sure the dom0 memory range, allocated by Xen automatically, and
> > the domU memory range, hand-picked by me, do not clash as you can see
> > from the boot logs (appended).
> >
> > Am I missing anything in the configuration? I am using a ZCU102 board,
> > the memory node on the host device tree is:
> >
>=20
> Are you suggesting one scenario where dom0 with static-mem domU?
>=20
> Hmmm, one quick thought, it may not be working with vpl011 emulation.
> When dom0 exists, vpl011 will take dom0 as backend, which requests event
> channel, xen store, etc, involved to communicate. but static-mem domU
> without CONFIG_XEN shall not handle it.
>=20

Digging on this, and my misunderstanding. Domain created through device tre=
e
shall use xen as backend, not dom0. I guess that only the one created by xl=
 is using
dom0 as backend.

Nevertheless, if this is your scenario, where dom0 and static-mem domU(NO C=
ONFIG_XEN) co-exists,
I'll test for you.

> > 	memory {
> > 		device_type =3D "memory";
> > 		reg =3D <0x00 0x00 0x00 0x7ff00000 0x08 0x00 0x00 0x80000000>;
> > 	};
> >
> > I am attaching my u-boot boot.scr script with the device tree
> > modification to add static memory.
> >
> > Many thanks for your help!
> >
> > Cheers,
> >
> > Stefano
> >
> >
> > (XEN) Xen version 4.16-rc (sstabellini@) (gcc (Ubuntu
> > 9.3.0-17ubuntu1~20.04)
> > 9.3.0) debug=3Dy Thu Nov  4 18:28:30 PDT 2021
> > (XEN) Latest ChangeSet: Mon Nov 1 12:36:26 2021 +0000
> > git:9f8434d778-dirty
> > (XEN) Processor: 00000000410fd034: "ARM Limited", variant: 0x0, part
> > 0xd03,rev 0x4
> > (XEN) 64-bit Execution:
> > (XEN)   Processor Features: 1100000000002222 0000000000000000
> > (XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
> > (XEN)     Extensions: FloatingPoint AdvancedSIMD
> > (XEN)   Debug Features: 0000000010305106 0000000000000000
> > (XEN)   Auxiliary Features: 0000000000000000 0000000000000000
> > (XEN)   Memory Model Features: 0000000000001122 0000000000000000
> > (XEN)   ISA Features:  0000000000011120 0000000000000000
> > (XEN) 32-bit Execution:
> > (XEN)   Processor Features: 0000000000001231:0000000000011011
> > (XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
> > (XEN)     Extensions: GenericTimer Security
> > (XEN)   Debug Features: 0000000003010066
> > (XEN)   Auxiliary Features: 0000000000000000
> > (XEN)   Memory Model Features: 0000000010101105 0000000040000000
> > (XEN)                          0000000001260000 0000000002102211
> > (XEN)   ISA Features: 0000000002101110 0000000013112111
> > 0000000021232042
> > (XEN)                 0000000001112131 0000000000011142 000000000001112=
1
> > (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: 65000 KHz
> > (XEN) GICv2 initialization:
> > (XEN)         gic_dist_addr=3D00000000f9010000
> > (XEN)         gic_cpu_addr=3D00000000f9020000
> > (XEN)         gic_hyp_addr=3D00000000f9040000
> > (XEN)         gic_vcpu_addr=3D00000000f9060000
> > (XEN)         gic_maintenance_irq=3D25
> > (XEN) GICv2: Adjusting CPU interface base to 0xf902f000
> > (XEN) GICv2: 192 lines, 4 cpus, secure (IID 00000000).
> > (XEN) XSM Framework v1.0.1 initialized
> > (XEN) Initialising XSM SILO mode
> > (XEN) Using scheduler: null Scheduler (null)
> > (XEN) Initializing null scheduler
> > (XEN) WARNING: This is experimental software in development.
> > (XEN) Use at your own risk.
> > (XEN) Allocated console ring of 16 KiB.
> > (XEN) Bringing up CPU1
> > (XEN) Bringing up CPU2
> > (XEN) Bringing up CPU3
> > (XEN) Brought up 4 CPUs
> > (XEN) I/O virtualisation enabled
> > (XEN)  - Dom0 mode: Relaxed
> > (XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID
> > (XEN) P2M: 3 levels with order-1 root, VTCR 0x0000000080023558
> > (XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
> > (XEN) *** LOADING DOMAIN 0 ***
> > (XEN) Loading d0 kernel from boot module @ 0000000000e00000
> > (XEN) Loading ramdisk from boot module @ 0000000002200000
> > (XEN) Allocating 1:1 mappings totalling 1024MB for dom0:
> > (XEN) BANK[0] 0x00000020000000-0x00000060000000 (1024MB)
> > (XEN) Grant table range: 0x00000005600000-0x00000005640000
> > (XEN) Allocating PPI 16 for event channel interrupt
> > (XEN) Extended region 0: 0x80000000->0xc0000000
> > (XEN) Extended region 1: 0xc8000000->0xe0000000
> > (XEN) Extended region 2: 0xf0000000->0xf9000000
> > (XEN) Extended region 3: 0xffc00000->0x600000000
> > (XEN) Extended region 4: 0x880000000->0x8000000000
> > (XEN) Extended region 5: 0x8001000000->0x10000000000
> > (XEN) Loading zImage from 0000000000e00000 to 0000000020000000-
> > 0000000021367a00
> > (XEN) Loading d0 initrd from 0000000002200000 to 0x0000000028200000-
> > 0x0000000029d60ac0
> > (XEN) Loading d0 DTB to 0x0000000028000000-0x00000000280096d4
> > (XEN) *** LOADING DOMU cpus=3D1 memory=3D80000KB ***
> > (XEN) Loading d1 kernel from boot module @ 0000000003e00000
> > (XEN) Loading ramdisk from boot module @ 0000000005200000
> > (XEN) Loading zImage from 0000000003e00000 to 0000000040000000-
> > 0000000041367a00
> > (XEN) Loading d1 initrd from 0000000005200000 to 0x0000000048200000-
> > 0x0000000048383400
> > (XEN) Loading d1 DTB to 0x0000000048000000-0x00000000480007f3
> > (XEN) Initial low memory virq threshold set at 0x4000 pages.
> > (XEN) Std. Loglevel: Errors and warnings
> > (XEN) Guest Loglevel: All
> > (XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch
> > input)
> > (XEN) DEBUG start_xen 1054 id=3D0
> > (XEN) null.c:353: 0 <-- d0v0
> > (XEN) DEBUG start_xen 1054 id=3D1
> > (XEN) null.c:353: 1 <-- d1v0
> > (XEN) Freed 348kB init memory.
> > (XEN) traps.c:2013:d0v0 HSR=3D0x00000092000045 pc=3D0xffffffc0105300ec
> > gva=3D0xfffffffdfda3b000 gpa=3D0x0000081ffff000
> > (XEN) d1v0 Unhandled SMC/HVC: 0x84000050
> > (XEN) d1v0 Unhandled SMC/HVC: 0x8600ff01
> > (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER4
> > (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER8
> > (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to
> > ICACTIVER12
> > (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to
> > ICACTIVER16
> > (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to
> > ICACTIVER20
> > (XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
> > (XEN) DOM1: [    0.000000] Booting Linux on physical CPU 0x0000000000
> > [0x410fd034]
> > (XEN) DOM1: [    0.000000] Linux version 5.14.0-00002-g9c4bc20097e8
> > (sstabellini@ubuntu-linux-20-04-desktop) (gcc (Ubuntu 9.3.0-17ubuntu1~
> > (XEN) DOM1: 20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #9
> > SMP Wed Nov 3 16:50:00 PDT 2021
> > (XEN) DOM1: [    0.000000] efi: UEFI not found.
> > (XEN) DOM1: [    0.000000] Zone ranges:
> > (XEN) DOM1: [    0.000000]   DMA32    [mem 0x0000000040000000-
> > 0x000000005fffffff]
> > (XEN) DOM1: [    0.000000]   Normal   empty
> > (XEN) DOM1: [    0.000000] Movable zone start for each node
> > (XEN) DOM1: [    0.000000] Early memory node ranges
> > (XEN) DOM1: [    0.000000]   node   0: [mem 0x0000000040000000-
> > 0x000000005fffffff]
> > (XEN) DOM1: [    0.000000] Initmem setup node 0 [mem
> 0x0000000040000000-
> > 0x000000005fffffff]
> > (XEN) DOM1: [    0.000000] cma: Reserved 256 MiB at 0x000000004f400000
> > (XEN) DOM1: [    0.000000] psci: probing for conduit method from DT.
> > (XEN) DOM1: [    0.000000] psci: PSCIv1.1 detected in firmware.
> > (XEN) DOM1: [    0.000000] psci: Using standard PSCI v0.2 function IDs
> > (XEN) DOM1: [    0.000000] psci: Trusted OS migration not required
> > (XEN) DOM1: [    0.000000] psci: SMC Calling Convention v1.1
> > (XEN) DOM1: [    0.000000] percpu: Embedded 22 pages/cpu s51672 r8192
> > d30248 u90112
> > (XEN) DOM1: [    0.000000] Detected VIPT I-cache on CPU0
> > (XEN) DOM1: [    0.000000] CPU features: detected: ARM erratum 843419
> > (XEN) DOM1: [    0.000000] CPU features: detected: ARM erratum 845719
> > (XEN) DOM1: [    0.000000] Built 1 zonelists, mobility grouping on.  To=
tal
> pages:
> > 129280
> > (XEN) DOM1: [    0.000000] Kernel command line: console=3DttyAMA0
> > (XEN) DOM1: [    0.000000] Dentry cache hash table entries: 65536 (orde=
r: 7,
> > 524288 bytes, linear)
> > (XEN) DOM1: [    0.000000] Inode-cache hash table entries: 32768 (order=
: 6,
> > 262144 bytes, linear)
> > (XEN) DOM1: [    0.000000] mem auto-init: stack:off, heap alloc:off, he=
ap
> > free:off
> > (XEN) DOM1: [    0.000000] Memory: 230280K/524288K available (13184K
> > kernel code, 862K rwdata, 3636K rodata, 2048K init, 315K bss, 31864K
> > (XEN) DOM1: reserved, 262144K cma-reserved)
> > (XEN) DOM1: [    0.000000] rcu: Hierarchical RCU implementation.
> > (XEN) DOM1: [    0.000000] rcu:         RCU event tracing is enabled.
> > (XEN) DOM1: [    0.000000] rcu:         RCU restricting CPUs from NR_CP=
US=3D4 to
> > nr_cpu_ids=3D1.
> > (XEN) DOM1: [    0.000000] rcu: RCU calculated value of scheduler-enlis=
tment
> > delay is 25 jiffies.
> > (XEN) DOM1: [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=
=3D16,
> > nr_cpu_ids=3D1
> > (XEN) DOM1: [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs:=
 0
> > (XEN) DOM1: [    0.000000] Root IRQ handler: gic_handle_irq
> > (XEN) DOM1: [    0.000000] random: get_random_bytes called from
> > start_kernel+0x4a8/0x728 with crng_init=3D0
> > (XEN) DOM1: [    0.000000] arch_timer: cp15 timer(s) running at 65.00MH=
z
> (virt).
> > (XEN) DOM1: [    0.000000] clocksource: arch_sys_counter: mask: 0xfffff=
fffffffff
> > max_cycles: 0xefdb196da, max_idle_ns: 440795204367 ns
> > (XEN) DOM1: [    0.000055] sched_clock: 56 bits at 65MHz, resolution 15=
ns,
> > wraps every 2199023255550ns
> > (XEN) DOM1: [    0.015323] Console: colour dummy device 80x25
> > (XEN) DOM1: [    0.017224] Calibrating delay loop (skipped), value calc=
ulated
> > using timer frequency.. 130.00 BogoMIPS (lpj=3D260000)
> > (XEN) DOM1: [    0.017335] pid_max: default: 32768 minimum: 301
> > (XEN) DOM1: [    0.019932] Mount-cache hash table entries: 1024 (order:=
 1,
> > 8192 bytes, linear)
> > (XEN) DOM1: [    0.020022] Mountpoint-cache hash table entries: 1024 (o=
rder:
> > 1, 8192 bytes, linear)
> > (XEN) DOM1: [    0.070463] rcu: Hierarchical SRCU implementation.
> > (XEN) DOM1: [    0.073611] EFI services will not be available.
> > (XEN) DOM1: [    0.074889] smp: Bringing up secondary CPUs ...
> > (XEN) DOM1: [    0.075178] smp: Brought up 1 node, 1 CPU
> > (XEN) DOM1: [    0.075205] SMP: Total of 1 processors activated.
> > (XEN) DOM1: [    0.075253] CPU features: detected: 32-bit EL0 Support
> > (XEN) DOM1: [    0.075304] CPU features: detected: CRC32 instructions
> > (XEN) DOM1: [    0.076596] CPU: All CPU(s) started at EL1
> > (XEN) DOM1: [    0.076717] alternatives: patching kernel code
> > (XEN) DOM1: [    0.092884] devtmpfs: initialized
> > (XEN) DOM1: [    0.109553] clocksource: jiffies: mask: 0xffffffff max_c=
ycles:
> > 0xffffffff, max_idle_ns: 7645041785100000 ns
> > (XEN) DOM1: [    0.109716] futex hash table entries: 256 (order: 2, 163=
84
> bytes,
> > linear)
> > (XEN) DOM1: [    0.124058] pinctrl core: initialized pinctrl subsystem
> > (XEN) DOM1: [    0.143628] NET: Registered PF_NETLINK/PF_ROUTE protocol
> > family
> > (XEN) DOM1: [    0.157764] DMA: preallocated 128 KiB GFP_KERNEL pool fo=
r
> > atomic allocations
> > (XEN) DOM1: [    0.158089] DMA: preallocated 128 KiB
> > GFP_KERNEL|GFP_DMA32 pool for atomic allocations
> > (XEN) DOM1: [    0.158426] audit: initializing netlink subsys (disabled=
)
> > (XEN) DOM1: [    0.166578] cpuidle: using governor menu
> > (XEN) DOM1: [    0.167213] hw-breakpoint: found 6 breakpoint and 4
> > watchpoint registers.
> > (XEN) DOM1: [    0.168930] audit: type=3D2000 audit(0.140:1): state=3Di=
nitialized
> > audit_enabled=3D0 res=3D1
> > (XEN) DOM1: [    0.169475] ASID allocator initialised with 65536 entrie=
s
> > (XEN) DOM1: [    0.171250] Serial: AMBA PL011 UART driver
> > (XEN) DOM1: [    0.181920] 22000000.sbsa-uart: ttyAMA0 at MMIO
> 0x22000000
> > (irq =3D 13, base_baud =3D 0) is a SBSA
> > (XEN) DOM1: [    0.533061] printk: console [ttyAMA0] enabled
> >
>=20
> Cheers=1B$B!$=1B(B
>=20
> Penny  Zheng
> > [... cutting here, DOM1 boots until the end, no signs of dom0]


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222088.384139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9T-0000bd-7K; Fri, 05 Nov 2021 06:56:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222088.384139; Fri, 05 Nov 2021 06:56:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9T-0000bS-3M; Fri, 05 Nov 2021 06:56:39 +0000
Received: by outflank-mailman (input) for mailman id 222088;
 Fri, 05 Nov 2021 06:56:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9R-0008NQ-3q
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:37 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 849e8569-3e05-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:56:36 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id g14so29235879edz.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:36 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 849e8569-3e05-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=ndViLhJiu5nJA5llxtFbdf7nx2zoDFBKma1YLn+Pglc=;
        b=O8CfU7uVVxraZ90rmP/W7ldSpEaLtcuqJl04xFonUzrW4ZHU+AieeyGl4xo8ymCEE2
         F1yrTAkkKUGDv0srM0HLcueKvmd8iQMSZDxUnoY4SloB+2xXg4y06Okekq07O2rrWgSM
         w3BM1tXvBhJ7mmCBABL7jmR5FSxICrh5YweHft2v8ekLuB5aXstiGGYlN5/hpxePp72j
         gePT1kfSPwV9VluNAs2+iIYlVcC3b8gIV1f5ANzq9Ok7TfBNZwfpiihepf0KOzRnZgC8
         iBAk9mgwqltzMIuz0nOyCdU+xsh30OYi9a/Jw+/d2WkSSthQfRd7YsZLv4mIhkrnDxKx
         U0Wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=ndViLhJiu5nJA5llxtFbdf7nx2zoDFBKma1YLn+Pglc=;
        b=cokzhkZ2VR2XLCc351NSnC+0fIOVhcYSmL/6qbMXHk/43eet7fjN6FJRmRTpgyJ5L9
         fmTz+rYuelhu1KCW/GPrA6hyuu1Qcstih0Y6+NB189S//FiB7v1bT4VN9/RCOymMfNjN
         10Rh2QDr5UQ6NOMv1q8GWMtg/BL8jjUaF2mpXxbQTBStP2GMs3QHylsvVAePNcSe8h1M
         dNGAiKarXCD+5muTj3snnqBTpjlmvxmYCXNS+/Xe82kEwABzBqvTKUqKPVdwAOChRjRI
         N0WgH7mCHSnpr6bxHpCePFgusgm5CnUn12v3+W+5a6rx4U8pf2oxrVwgdA2mJ9EhAfXj
         2Ecw==
X-Gm-Message-State: AOAM533zPdk2zXzsfIsQUJcB+f+a7CBdPsng3rnenZt0LhTgtCl6am6v
	CnzxmiDeR2cnq/9ZBKFaP+4yYue2Udi9Gw==
X-Google-Smtp-Source: ABdhPJwvgUws2STx5uDR0C5x7eXgFsEjsvQ41PddklT8xFMzxt05VZNafwWyw+SPkIGRrx9enPTVmg==
X-Received: by 2002:a17:906:270e:: with SMTP id z14mr69685944ejc.414.1636095395773;
        Thu, 04 Nov 2021 23:56:35 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 03/11] vpci: make vpci registers removal a dedicated function
Date: Fri,  5 Nov 2021 08:56:21 +0200
Message-Id: <20211105065629.940943-4-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

This is in preparation for dynamic assignment of the vpci register
handlers depending on the domain: hwdom or guest.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v3:
- remove all R-b's due to changes
- s/vpci_remove_device_registers/vpci_remove_device_handlers
- minor comment cleanup
Since v1:
 - constify struct pci_dev where possible
---
 xen/drivers/vpci/vpci.c | 6 +++++-
 xen/include/xen/vpci.h  | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 4e24956419aa..d7f033a0811f 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -35,7 +35,7 @@ extern vpci_register_init_t *const __start_vpci_array[];
 extern vpci_register_init_t *const __end_vpci_array[];
 #define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
 
-void vpci_remove_device(struct pci_dev *pdev)
+void vpci_remove_device_handlers(const struct pci_dev *pdev)
 {
     if ( !has_vpci(pdev->domain) )
         return;
@@ -51,8 +51,12 @@ void vpci_remove_device(struct pci_dev *pdev)
         xfree(r);
     }
     spin_unlock(&pdev->vpci->lock);
+}
 
+void vpci_remove_device(struct pci_dev *pdev)
+{
     vpci_cancel_pending(pdev);
+    vpci_remove_device_handlers(pdev);
     xfree(pdev->vpci->msix);
     xfree(pdev->vpci->msi);
     xfree(pdev->vpci);
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 609d6383b252..1883b9d08a70 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -30,6 +30,8 @@ int __must_check vpci_add_handlers(struct pci_dev *dev);
 
 /* Remove all handlers and free vpci related structures. */
 void vpci_remove_device(struct pci_dev *pdev);
+/* Remove all handlers for the device. */
+void vpci_remove_device_handlers(const struct pci_dev *pdev);
 
 /* Add/remove a register handler. */
 int __must_check vpci_add_register(struct vpci *vpci,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222085.384106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9P-0008Et-Fn; Fri, 05 Nov 2021 06:56:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222085.384106; Fri, 05 Nov 2021 06:56:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9P-0008Em-Bx; Fri, 05 Nov 2021 06:56:35 +0000
Received: by outflank-mailman (input) for mailman id 222085;
 Fri, 05 Nov 2021 06:56:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9O-0008Eb-09
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:34 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 82974e6f-3e05-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 07:56:33 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id r4so29011706edi.5
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:32 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82974e6f-3e05-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=a4FUkdMsQS3UMD1e/TXUYRGM7Cd9GNBhZoSGHnn8tNU=;
        b=p0nx9qG8DXRvGhpB8qRkZOY2v/FaidEi1JYGN0aqO38mnDOR0/jvbyFDYG3ZpNOmwb
         4BbVMLquu31+W3oRsmZGrOaaR1wms5Q01urhxZU6/YbJbx/7ZCzEwOThW3TyIyzXEZLn
         JpMvJqzszrS/ww/3PWhHBwhf7YSoOJhArl65o72v2qNGO8J5MHK1Vm/wtxJrROkVxczT
         6T3YOjsDF+8meMMBZjvf3Rij66EZv+j5WqUV13Kutu2Zw20AAKb7+EN1vg5VOVBJyRMJ
         zU33Do7iKn/w98NrxAOsoJ4TuB3k8UFMpoVN8Dk2N+EaKyUMvMsSIPa762aIWEeGP20M
         HjNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=a4FUkdMsQS3UMD1e/TXUYRGM7Cd9GNBhZoSGHnn8tNU=;
        b=O5LF2ce1dkcwJGl1oM1wFvCdsNBHXfMFQ2NPKe21pPnGMu/lhsJv/ApUoHLCePxwZq
         Adu4J9Q+jVCIRM8Y+Wp+zp3LC38FZOdI7dxaP+fug9ix9yEcIeYZWhr1iToPhNKsmz4n
         6Yd+t997gdaMOuiLkZnXQ4W5ajTtl8jZns6vjhs5HMtflFy+AqXSTr4NoJXshIX+qf9n
         VlVMTM7JG7jJ1AJHbnjyW8RLNrn6/p6Yi/DoIMSmKjpdEr9/AibC/ZDUo1hSgM9uX8tU
         U0k7StyOkXvDH2lV58Xmizj4LQTtXOlSbcMxAuXGw4cmkrdbM0E8BKhi8gG3HYQkbZ3G
         zkpQ==
X-Gm-Message-State: AOAM533+1r8xmJMbvLQw3U1GtnLKPgodYT7acq7kpjQu7G6NiUHqNmbk
	uO1eiWJJPhhxwI8HWNOYawSG56fV4VF4Sw==
X-Google-Smtp-Source: ABdhPJxbde+Ldfjs0/Ym06Gexd73P66Ot7Is1QOkm4yGhVAtAG+y5LISGl4R+AqOCF+pIbNiRnBWkA==
X-Received: by 2002:a05:6402:4309:: with SMTP id m9mr14242106edc.93.1636095392375;
        Thu, 04 Nov 2021 23:56:32 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Date: Fri,  5 Nov 2021 08:56:18 +0200
Message-Id: <20211105065629.940943-1-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Hi, all!

This patch series is focusing on vPCI and adds support for non-identity
PCI BAR mappings which is required while passing through a PCI device to
a guest. The highlights are:

- Add relevant vpci register handlers when assigning PCI device to a domain
  and remove those when de-assigning. This allows having different
  handlers for different domains, e.g. hwdom and other guests.

- Emulate guest BAR register values based on physical BAR values.
  This allows creating a guest view of the registers and emulates
  size and properties probe as it is done during PCI device enumeration by
  the guest.

- Instead of handling a single range set, that contains all the memory
  regions of all the BARs and ROM, have them per BAR.

- Take into account guest's BAR view and program its p2m accordingly:
  gfn is guest's view of the BAR and mfn is the physical BAR value as set
  up by the host bridge in the hardware domain.
  This way hardware doamin sees physical BAR values and guest sees
  emulated ones.

The series also adds support for virtual PCI bus topology for guests:
 - We emulate a single host bridge for the guest, so segment is always 0.
 - The implementation is limited to 32 devices which are allowed on
   a single PCI bus.
 - The virtual bus number is set to 0, so virtual devices are seen
   as embedded endpoints behind the root complex.

The series was also tested on:
 - x86 PVH Dom0 and doesn't break it.
 - x86 HVM with PCI passthrough to DomU and doesn't break it.

Thank you,
Oleksandr

Oleksandr Andrushchenko (11):
  vpci: fix function attributes for vpci_process_pending
  vpci: cancel pending map/unmap on vpci removal
  vpci: make vpci registers removal a dedicated function
  vpci: add hooks for PCI device assign/de-assign
  vpci/header: implement guest BAR register handlers
  vpci/header: handle p2m range sets per BAR
  vpci/header: program p2m with guest BAR view
  vpci/header: emulate PCI_COMMAND register for guests
  vpci/header: reset the command register when adding devices
  vpci: add initial support for virtual PCI bus topology
  xen/arm: translate virtual PCI bus topology for guests

 xen/arch/arm/vpci.c           |  18 ++
 xen/drivers/Kconfig           |   4 +
 xen/drivers/passthrough/pci.c |   6 +
 xen/drivers/vpci/header.c     | 320 +++++++++++++++++++++++++++-------
 xen/drivers/vpci/vpci.c       | 163 ++++++++++++++++-
 xen/include/xen/sched.h       |   8 +
 xen/include/xen/vpci.h        |  37 +++-
 7 files changed, 484 insertions(+), 72 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222086.384111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9P-0008Hr-PJ; Fri, 05 Nov 2021 06:56:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222086.384111; Fri, 05 Nov 2021 06:56:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9P-0008Gf-It; Fri, 05 Nov 2021 06:56:35 +0000
Received: by outflank-mailman (input) for mailman id 222086;
 Fri, 05 Nov 2021 06:56:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9O-0008Eb-Oj
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:34 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 834c34e1-3e05-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 07:56:34 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id w1so30026395edd.10
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:34 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 834c34e1-3e05-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=yH9Aud+KhB6bv78AcEs/8owAaYp6cfId4snOD7ig8jw=;
        b=EfwEGn9TETYI3BA8ZmMTaDRqGPxCqXvnVwC3dRPjriRMBXX3h/wixWYL8mkilXFism
         4ROBY4RdKHXgMgbKWI8NO+s0nJQU9XgD9EA5O4lH5BDPOcIaiqUD4yE/rWlJf0zj0hzD
         7iPduDZB2eOSWU3sVQQDxlKr62mlS28xpaWu1Oy8KxJzWnmK0/ajj3LKL3hQeynGu9gq
         tIS2yxE9jh/KHIlICHhSdzlmCyGORvS1MuI8ipwcmEYxbQaX/xs+3NNHfXuKpcEyLL9P
         H0wFfHiQQxHVtPrrjCTc5+tRUOkUnnMUMk2xmc/XYoSc99XeyLGbspcGP1hgKtePggK4
         dbjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=yH9Aud+KhB6bv78AcEs/8owAaYp6cfId4snOD7ig8jw=;
        b=WGgHvPIxk+fmqz2WLT0K3snTOipPGx0fJb+hJC7xr31Pg78S0tHYJeUtAf9iEGnRzI
         lCzXR0X40UqXnGzWplU0hHkJhrR/bZ22uFrlFAIi4+KrGTHVQXj3F9JTShvhm6fOTEZ2
         ElM022M2VdjXprgv9vCjtVcwiGIGLQ/2JHShrDjjdxtUWyuq1BDfnrcvyauAqilK5GA6
         bCFa1VUHevtG5kjcF6KNvqEdEc0kTj99aIg1EbDNq305y5uLBRf00+xJfRDqFB4gh4Sn
         MIfZLrwNDb64qvGE3hoJSiUsd5moNXk8fJowkYq1BXRpKKVnKhBoLTg+5EG4Z/8BbVr+
         00Yg==
X-Gm-Message-State: AOAM533zlrCt0MT8AhX98tIBsFm2H8COVLCY7S2po19SaACHSdFVWqKD
	3gGRY3nSwU/QkVA4mCppIcPfp7S99/bC4A==
X-Google-Smtp-Source: ABdhPJyPoRRSpp2BwAz5XkpMz3lTivAT+uV0OLjngnMXEocJYUDT7N4y3Xq77SbrGFLNMo7gJZ1yZg==
X-Received: by 2002:a17:906:3647:: with SMTP id r7mr22797776ejb.124.1636095393576;
        Thu, 04 Nov 2021 23:56:33 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 01/11] vpci: fix function attributes for vpci_process_pending
Date: Fri,  5 Nov 2021 08:56:19 +0200
Message-Id: <20211105065629.940943-2-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

vpci_process_pending is defined with different attributes, e.g.
with __must_check if CONFIG_HAS_VPCI enabled and not otherwise.
Fix this by defining both of the definitions with __must_check.

Fixes: 14583a590783 ("7fbb096bf345 kconfig: don't select VPCI if building a shim-only binary")

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Cc: Roger Pau Monné <roger.pau@citrix.com>

New in v4
---
 xen/include/xen/vpci.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 9ea66e033f11..3f32de9d7eb3 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -247,7 +247,7 @@ static inline void vpci_write(pci_sbdf_t sbdf, unsigned int reg,
     ASSERT_UNREACHABLE();
 }
 
-static inline bool vpci_process_pending(struct vcpu *v)
+static inline bool __must_check vpci_process_pending(struct vcpu *v)
 {
     ASSERT_UNREACHABLE();
     return false;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222087.384128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9R-0000KL-VF; Fri, 05 Nov 2021 06:56:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222087.384128; Fri, 05 Nov 2021 06:56:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9R-0000KE-Re; Fri, 05 Nov 2021 06:56:37 +0000
Received: by outflank-mailman (input) for mailman id 222087;
 Fri, 05 Nov 2021 06:56:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9Q-0008NQ-Cl
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:36 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83fe1709-3e05-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:56:35 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id v11so27203983edc.9
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:35 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83fe1709-3e05-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=6lI/emOWTuirK6y60vvPuIerMn7oLAhUBrzibAoZIaY=;
        b=WCrBBXgcHf+gNUzvLec/FGEN0I45bKwR7dhe/BEj3ewFeldoCRSnISCh/7BsOUw3EM
         z/AyEABFXCyhXDZli/d3jPsKiKxWW6KseG/9ZmImy7j7UX1PULDxn1xTTU7nDKSEclZm
         n3MUlfXe2cXlZiQ7upfmT647hQ2GqlsADdm0+Gq8+KY34i+ge+i5b8os1r9/KtsHphB0
         yrcINSdO9pQwGCc+2Hy8esbXiBTVdEUTH75khVXCHVqaXYjtOWaV0VsYcs4Qt5JHa9lS
         b0qNKzb5OqGWm4kDfQS1EIO86SoYQRoSbXuU2n4/WZaw7QJr1C04crS1O3C9MPrJtCg0
         EfOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=6lI/emOWTuirK6y60vvPuIerMn7oLAhUBrzibAoZIaY=;
        b=hsRIVW3EdS+8RZ/5AD2PK5CuNEgzIqbh0M1hS76ZNswfP7bQrprFotz7SHGbMzQT9x
         SnyvWRSvdPH8QlJ77z9L7gQQiSUbzt9CH2XWxkkYOv5QHuYGhCLGTdsbTgaWex+eOrxg
         q3h2PgX327ByVcF3wUPo2XXrOJ2Ruo7O5wdXmFZ+hRgDk6HNwnCjCrBcU5kqwitAiWBS
         jeqvIw8+UFbr8Sed5i9lmGx9OfmHTLKi+Nwi6vhZlVG40QkXSL9gThn8pNhBwGgkS0SI
         RvniRrt+kFDNM2kUSNYM8CkbbbhohFwGkHyJuj37l0p3A3g9lOwCihLk43pWXzjcWtsb
         XIKg==
X-Gm-Message-State: AOAM5303A3T+DT1bZq3VN/k+S2V7MhctbZEQKuFinyXoHNf0hSlXiFUB
	Zi+7/DZ8ryzAQTumtxiAtAmxb8/dTUJArA==
X-Google-Smtp-Source: ABdhPJymCd9sLsIV7Rr3M2VzY0Yo2fETPycY1rmqoGvzy38X4VgIs53DsYMsZFc/OMd+LldvIKHN6A==
X-Received: by 2002:a17:906:730c:: with SMTP id di12mr66471844ejc.184.1636095394698;
        Thu, 04 Nov 2021 23:56:34 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Date: Fri,  5 Nov 2021 08:56:20 +0200
Message-Id: <20211105065629.940943-3-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

When a vPCI is removed for a PCI device it is possible that we have
scheduled a delayed work for map/unmap operations for that device.
For example, the following scenario can illustrate the problem:

pci_physdev_op
   pci_add_device
       init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
   iommu_add_device <- FAILS
   vpci_remove_device -> xfree(pdev->vpci)

leave_hypervisor_to_guest
   vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL

For the hardware domain we continue execution as the worse that
could happen is that MMIO mappings are left in place when the
device has been deassigned

For unprivileged domains that get a failure in the middle of a vPCI
{un}map operation we need to destroy them, as we don't know in which
state the p2m is. This can only happen in vpci_process_pending for
DomUs as they won't be allowed to call pci_add_device.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Cc: Roger Pau Monné <roger.pau@citrix.com>

New in v4
---
 xen/drivers/vpci/header.c | 15 +++++++++++++--
 xen/drivers/vpci/vpci.c   |  2 ++
 xen/include/xen/vpci.h    |  6 ++++++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 40ff79c33f8f..ef538386e95d 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -149,8 +149,7 @@ bool vpci_process_pending(struct vcpu *v)
                         !rc && v->vpci.rom_only);
         spin_unlock(&v->vpci.pdev->vpci->lock);
 
-        rangeset_destroy(v->vpci.mem);
-        v->vpci.mem = NULL;
+        vpci_cancel_pending(v->vpci.pdev);
         if ( rc )
             /*
              * FIXME: in case of failure remove the device from the domain.
@@ -165,6 +164,18 @@ bool vpci_process_pending(struct vcpu *v)
     return false;
 }
 
+void vpci_cancel_pending(const struct pci_dev *pdev)
+{
+    struct vcpu *v = current;
+
+    /* Cancel any pending work now. */
+    if ( v->vpci.mem && v->vpci.pdev == pdev)
+    {
+        rangeset_destroy(v->vpci.mem);
+        v->vpci.mem = NULL;
+    }
+}
+
 static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
                             struct rangeset *mem, uint16_t cmd)
 {
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 657697fe3406..4e24956419aa 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -51,6 +51,8 @@ void vpci_remove_device(struct pci_dev *pdev)
         xfree(r);
     }
     spin_unlock(&pdev->vpci->lock);
+
+    vpci_cancel_pending(pdev);
     xfree(pdev->vpci->msix);
     xfree(pdev->vpci->msi);
     xfree(pdev->vpci);
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 3f32de9d7eb3..609d6383b252 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -56,6 +56,7 @@ uint32_t vpci_hw_read32(const struct pci_dev *pdev, unsigned int reg,
  * should not run.
  */
 bool __must_check vpci_process_pending(struct vcpu *v);
+void vpci_cancel_pending(const struct pci_dev *pdev);
 
 struct vpci {
     /* List of vPCI handlers for a device. */
@@ -252,6 +253,11 @@ static inline bool __must_check vpci_process_pending(struct vcpu *v)
     ASSERT_UNREACHABLE();
     return false;
 }
+
+static inline void vpci_cancel_pending(const struct pci_dev *pdev)
+{
+    ASSERT_UNREACHABLE();
+}
 #endif
 
 #endif
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222089.384143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9T-0000e5-JN; Fri, 05 Nov 2021 06:56:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222089.384143; Fri, 05 Nov 2021 06:56:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9T-0000da-CM; Fri, 05 Nov 2021 06:56:39 +0000
Received: by outflank-mailman (input) for mailman id 222089;
 Fri, 05 Nov 2021 06:56:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9S-0008Eb-Ei
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:38 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 855f26ec-3e05-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 07:56:37 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id b15so10471843edd.7
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:37 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 855f26ec-3e05-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=/BhVSzCyfrKMDozwQH/ExTubI3Dx6s3goXHMqPKDfjg=;
        b=K7U9vUsEU4wDAlfzmWQaQ3shYxNk5c+bFa7pzSjVc9szODwmj997M5/1FpSgD0eaVK
         7WplqIySozk5AxYy4oMhaEPLGSxfkN7celQjwmaMeHS+9al9oeFLxn+hEpRWIJa0eRol
         dlHYax4HBRFmhwYC3bpinjWlU6KifLIXjkHPNDZCfYl72u7mFp94E98wGor0WhXKYgxH
         qQEwipLYMJzmuI3UVKAce6WXBmnz/4GF2u00pzkS12WokvNCrlTiduespTGbsV7HPQ7H
         nOb5v5gbIG0bG+S8nGlsSF0o31vuHYLCu5UMBL/Az9um0vy3VGFtqOD3W4GYs+hpk3ur
         x7Cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=/BhVSzCyfrKMDozwQH/ExTubI3Dx6s3goXHMqPKDfjg=;
        b=SQq3uEdo7fmz7TJxivUoW8bVukEoAv/vH6ieZUZdIei13N6BKsniNPyQqpHaKUsyP4
         FmRz2rIWhX35FFw7Ls4I6HH0rrXGTTNg2h/gZmkHJw+zt0TIeoQnh+RtwPZV44Ziiy9P
         6P3HCJZMgaFm1ncT/4p+5KGQwcyvm5OwBZA2Ck00WhmpEgLNct78YxnUU1p6t/hMezf7
         j7MPwReGMLFEALfrm267j/Zs/DKargxbOWTl5Niz5ligCl9J873xbj4nLOMSJueTnXHP
         6ePn3jvdR5Hfatc4KWQhIBMRSHAHJWy0k4CJ/WAtOCDr0UKgGypIErhVrYWLmuNZhlg7
         poFA==
X-Gm-Message-State: AOAM532sxEcSLL6kVmZhBTXlGBFYtaxadXAx7lOfnr1UFSiknYSKZyYa
	54rCsZIYsfk0ZWj6a5B71cXEAVuWhbaraQ==
X-Google-Smtp-Source: ABdhPJwH3nj2qgzWQi6uwb8KYRy2nn02Sm8YsU5o9cvWZgY9/c+lRZTPHGNkKX53KMbOHn9w8eTdEg==
X-Received: by 2002:a17:906:3408:: with SMTP id c8mr14550874ejb.41.1636095397004;
        Thu, 04 Nov 2021 23:56:37 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 04/11] vpci: add hooks for PCI device assign/de-assign
Date: Fri,  5 Nov 2021 08:56:22 +0200
Message-Id: <20211105065629.940943-5-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

When a PCI device gets assigned/de-assigned some work on vPCI side needs
to be done for that device. Introduce a pair of hooks so vPCI can handle
that.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v3:
 - remove toolstack roll-back description from the commit message
   as error are to be handled with proper cleanup in Xen itself
 - remove __must_check
 - remove redundant rc check while assigning devices
 - fix redundant CONFIG_HAS_VPCI check for CONFIG_HAS_VPCI_GUEST_SUPPORT
 - use REGISTER_VPCI_INIT machinery to run required steps on device
   init/assign: add run_vpci_init helper
Since v2:
- define CONFIG_HAS_VPCI_GUEST_SUPPORT so dead code is not compiled
  for x86
Since v1:
 - constify struct pci_dev where possible
 - do not open code is_system_domain()
 - extended the commit message
---
 xen/drivers/Kconfig           |  4 +++
 xen/drivers/passthrough/pci.c |  6 ++++
 xen/drivers/vpci/vpci.c       | 57 ++++++++++++++++++++++++++++++-----
 xen/include/xen/vpci.h        | 16 ++++++++++
 4 files changed, 75 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/Kconfig b/xen/drivers/Kconfig
index db94393f47a6..780490cf8e39 100644
--- a/xen/drivers/Kconfig
+++ b/xen/drivers/Kconfig
@@ -15,4 +15,8 @@ source "drivers/video/Kconfig"
 config HAS_VPCI
 	bool
 
+config HAS_VPCI_GUEST_SUPPORT
+	bool
+	depends on HAS_VPCI
+
 endmenu
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index a9d31293ac09..529a4f50aa80 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -873,6 +873,10 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     if ( ret )
         goto out;
 
+    ret = vpci_deassign_device(d, pdev);
+    if ( ret )
+        goto out;
+
     if ( pdev->domain == hardware_domain  )
         pdev->quarantine = false;
 
@@ -1445,6 +1449,8 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
         rc = hd->platform_ops->assign_device(d, devfn, pci_to_dev(pdev), flag);
     }
 
+    rc = vpci_assign_device(d, pdev);
+
  done:
     if ( rc )
         printk(XENLOG_G_WARNING "%pd: assign (%pp) failed (%d)\n",
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index d7f033a0811f..5f086398a98c 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -63,11 +63,25 @@ void vpci_remove_device(struct pci_dev *pdev)
     pdev->vpci = NULL;
 }
 
-int vpci_add_handlers(struct pci_dev *pdev)
+static int run_vpci_init(struct pci_dev *pdev)
 {
     unsigned int i;
     int rc = 0;
 
+    for ( i = 0; i < NUM_VPCI_INIT; i++ )
+    {
+        rc = __start_vpci_array[i](pdev);
+        if ( rc )
+            break;
+    }
+
+    return rc;
+}
+
+int vpci_add_handlers(struct pci_dev *pdev)
+{
+    int rc;
+
     if ( !has_vpci(pdev->domain) )
         return 0;
 
@@ -81,18 +95,45 @@ int vpci_add_handlers(struct pci_dev *pdev)
     INIT_LIST_HEAD(&pdev->vpci->handlers);
     spin_lock_init(&pdev->vpci->lock);
 
-    for ( i = 0; i < NUM_VPCI_INIT; i++ )
-    {
-        rc = __start_vpci_array[i](pdev);
-        if ( rc )
-            break;
-    }
-
+    rc = run_vpci_init(pdev);
     if ( rc )
         vpci_remove_device(pdev);
 
     return rc;
 }
+
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+/* Notify vPCI that device is assigned to guest. */
+int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
+{
+    int rc;
+
+    /* It only makes sense to assign for hwdom or guest domain. */
+    if ( is_system_domain(d) || !has_vpci(d) )
+        return 0;
+
+    vpci_remove_device_handlers(pdev);
+
+    rc = run_vpci_init(pdev);
+    if ( rc )
+        vpci_deassign_device(d, pdev);
+
+    return rc;
+}
+
+/* Notify vPCI that device is de-assigned from guest. */
+int vpci_deassign_device(struct domain *d, struct pci_dev *pdev)
+{
+    /* It only makes sense to de-assign from hwdom or guest domain. */
+    if ( is_system_domain(d) || !has_vpci(d) )
+        return 0;
+
+    vpci_remove_device_handlers(pdev);
+
+    return 0;
+}
+#endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
+
 #endif /* __XEN__ */
 
 static int vpci_register_cmp(const struct vpci_register *r1,
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 1883b9d08a70..a016b4197801 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -262,6 +262,22 @@ static inline void vpci_cancel_pending(const struct pci_dev *pdev)
 }
 #endif
 
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+/* Notify vPCI that device is assigned/de-assigned to/from guest. */
+int vpci_assign_device(struct domain *d, struct pci_dev *pdev);
+int vpci_deassign_device(struct domain *d, struct pci_dev *pdev);
+#else
+static inline int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
+{
+    return 0;
+};
+
+static inline int vpci_deassign_device(struct domain *d, struct pci_dev *pdev)
+{
+    return 0;
+};
+#endif
+
 #endif
 
 /*
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222090.384161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9V-00018V-1v; Fri, 05 Nov 2021 06:56:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222090.384161; Fri, 05 Nov 2021 06:56:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9U-00018H-SN; Fri, 05 Nov 2021 06:56:40 +0000
Received: by outflank-mailman (input) for mailman id 222090;
 Fri, 05 Nov 2021 06:56:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9T-0008Eb-Mr
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:39 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 861e9070-3e05-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 07:56:38 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id f4so29495659edx.12
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:38 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 861e9070-3e05-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=ML1aAu3IHztXCkFRlcAEFUek/kmwkbVwdWAMwIa7IiY=;
        b=B+kLXAGSoP5K67q+UjBfKNTD07Hi8tXBKZLuFqxX1ybcLGn6BehgY/xDJFrLTcoL/P
         2KTYZxueyCl84lqK9QCrmfVdk3xpuuNI5eQXRzEA9wjKSZKSd8K2jtyEf6k6qiB7yxCJ
         s6LRoVrhDoG9Ro1fEEaw8EvoPdbSVouXPqeT13NrKyyMibrHi2y7xgxi23UWK3elpIfu
         zZVJI3Yrl5M7E4D/DczQ8NxtOx6U+iMrgOGq+9TJiSGgRe/nN9Ir+XH/EhVO8jrJFpT1
         7op+WMUShlFkxkQUnYlDzuzQyG7Yo+fVBW76d3tXmiImIkGYmMTWEtFPcdGbOM01AhWH
         iXhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=ML1aAu3IHztXCkFRlcAEFUek/kmwkbVwdWAMwIa7IiY=;
        b=WKMa7fmMdYIGPeWdjEzMa6pmHm8/mswW16zy0o9zMogtw76+hBhCKlfHvjIt1dZTvE
         VelJL1KPJXwSMT8FZ1+Q8GzqJFeyIH+lgfOjgi9PV+IFPpL7WO78SH/KLweaeddvUGqx
         idOxgXwndzDgXikB1DEhFFes1uvD1Azzdb1wRSUFj6xuOZc5hifbYKkcZ5k/uJ5V6GKm
         2RdViZzRDlsOSe/dmLFq7DOV4jLH6b+SN87ZxGH9++yzoeLDEyBo2Rn6u4bwE3busSRG
         beUp1OaQJj2gA5LdUV6yTNjg2JwgZAVidJeW0K++jzLBgNrA57ilfw6lLiGgvlugS2vf
         oQpQ==
X-Gm-Message-State: AOAM532rBehjrUnER4975Muz97aRjxy7Kort4MQXgqrQVrhvUrqVLIYK
	v2o8R2Ox4BJvOaewl7xm9aJIzlOqMHX8cw==
X-Google-Smtp-Source: ABdhPJxj//nL6Afs0JcLrsOFV1xEzm8zxoqIz8BOeE7e8dGiIwXDkh0VQ5NF5uzvT6GZpOM6XJun2g==
X-Received: by 2002:a17:907:6e16:: with SMTP id sd22mr55367485ejc.542.1636095398279;
        Thu, 04 Nov 2021 23:56:38 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 05/11] vpci/header: implement guest BAR register handlers
Date: Fri,  5 Nov 2021 08:56:23 +0200
Message-Id: <20211105065629.940943-6-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Add relevant vpci register handlers when assigning PCI device to a domain
and remove those when de-assigning. This allows having different
handlers for different domains, e.g. hwdom and other guests.

Emulate guest BAR register values: this allows creating a guest view
of the registers and emulates size and properties probe as it is done
during PCI device enumeration by the guest.

ROM BAR is only handled for the hardware domain and for guest domains
there is a stub: at the moment PCI expansion ROM is x86 only, so it
might not be used by other architectures without emulating x86. Other
use-cases may include using that expansion ROM before Xen boots, hence
no emulation is needed in Xen itself. Or when a guest wants to use the
ROM code which seems to be rare.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v3:
- squashed two patches: dynamic add/remove handlers and guest BAR
  handler implementation
- fix guest BAR read of the high part of a 64bit BAR (Roger)
- add error handling to vpci_assign_device
- s/dom%pd/%pd
- blank line before return
Since v2:
- remove unneeded ifdefs for CONFIG_HAS_VPCI_GUEST_SUPPORT as more code
  has been eliminated from being built on x86
Since v1:
 - constify struct pci_dev where possible
 - do not open code is_system_domain()
 - simplify some code3. simplify
 - use gdprintk + error code instead of gprintk
 - gate vpci_bar_{add|remove}_handlers with CONFIG_HAS_VPCI_GUEST_SUPPORT,
   so these do not get compiled for x86
 - removed unneeded is_system_domain check
 - re-work guest read/write to be much simpler and do more work on write
   than read which is expected to be called more frequently
 - removed one too obvious comment
---
 xen/drivers/vpci/header.c | 72 +++++++++++++++++++++++++++++++++++----
 xen/include/xen/vpci.h    |  3 ++
 2 files changed, 69 insertions(+), 6 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index ef538386e95d..1239051ee8ff 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -408,6 +408,48 @@ static void bar_write(const struct pci_dev *pdev, unsigned int reg,
     pci_conf_write32(pdev->sbdf, reg, val);
 }
 
+static void guest_bar_write(const struct pci_dev *pdev, unsigned int reg,
+                            uint32_t val, void *data)
+{
+    struct vpci_bar *bar = data;
+    bool hi = false;
+
+    if ( bar->type == VPCI_BAR_MEM64_HI )
+    {
+        ASSERT(reg > PCI_BASE_ADDRESS_0);
+        bar--;
+        hi = true;
+    }
+    else
+    {
+        val &= PCI_BASE_ADDRESS_MEM_MASK;
+        val |= bar->type == VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_TYPE_32
+                                           : PCI_BASE_ADDRESS_MEM_TYPE_64;
+        val |= bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
+    }
+
+    bar->guest_addr &= ~(0xffffffffull << (hi ? 32 : 0));
+    bar->guest_addr |= (uint64_t)val << (hi ? 32 : 0);
+
+    bar->guest_addr &= ~(bar->size - 1) | ~PCI_BASE_ADDRESS_MEM_MASK;
+}
+
+static uint32_t guest_bar_read(const struct pci_dev *pdev, unsigned int reg,
+                               void *data)
+{
+    const struct vpci_bar *bar = data;
+    bool hi = false;
+
+    if ( bar->type == VPCI_BAR_MEM64_HI )
+    {
+        ASSERT(reg > PCI_BASE_ADDRESS_0);
+        bar--;
+        hi = true;
+    }
+
+    return bar->guest_addr >> (hi ? 32 : 0);
+}
+
 static void rom_write(const struct pci_dev *pdev, unsigned int reg,
                       uint32_t val, void *data)
 {
@@ -456,6 +498,17 @@ static void rom_write(const struct pci_dev *pdev, unsigned int reg,
         rom->addr = val & PCI_ROM_ADDRESS_MASK;
 }
 
+static void guest_rom_write(const struct pci_dev *pdev, unsigned int reg,
+                            uint32_t val, void *data)
+{
+}
+
+static uint32_t guest_rom_read(const struct pci_dev *pdev, unsigned int reg,
+                               void *data)
+{
+    return 0xffffffff;
+}
+
 static int init_bars(struct pci_dev *pdev)
 {
     uint16_t cmd;
@@ -464,6 +517,7 @@ static int init_bars(struct pci_dev *pdev)
     struct vpci_header *header = &pdev->vpci->header;
     struct vpci_bar *bars = header->bars;
     int rc;
+    bool is_hwdom = is_hardware_domain(pdev->domain);
 
     switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
     {
@@ -503,8 +557,10 @@ static int init_bars(struct pci_dev *pdev)
         if ( i && bars[i - 1].type == VPCI_BAR_MEM64_LO )
         {
             bars[i].type = VPCI_BAR_MEM64_HI;
-            rc = vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write, reg,
-                                   4, &bars[i]);
+            rc = vpci_add_register(pdev->vpci,
+                                   is_hwdom ? vpci_hw_read32 : guest_bar_read,
+                                   is_hwdom ? bar_write : guest_bar_write,
+                                   reg, 4, &bars[i]);
             if ( rc )
             {
                 pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
@@ -544,8 +600,10 @@ static int init_bars(struct pci_dev *pdev)
         bars[i].size = size;
         bars[i].prefetchable = val & PCI_BASE_ADDRESS_MEM_PREFETCH;
 
-        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write, reg, 4,
-                               &bars[i]);
+        rc = vpci_add_register(pdev->vpci,
+                               is_hwdom ? vpci_hw_read32 : guest_bar_read,
+                               is_hwdom ? bar_write : guest_bar_write,
+                               reg, 4, &bars[i]);
         if ( rc )
         {
             pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
@@ -565,8 +623,10 @@ static int init_bars(struct pci_dev *pdev)
         header->rom_enabled = pci_conf_read32(pdev->sbdf, rom_reg) &
                               PCI_ROM_ADDRESS_ENABLE;
 
-        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, rom_write, rom_reg,
-                               4, rom);
+        rc = vpci_add_register(pdev->vpci,
+                               is_hwdom ? vpci_hw_read32 : guest_rom_read,
+                               is_hwdom ? rom_write : guest_rom_write,
+                               rom_reg, 4, rom);
         if ( rc )
             rom->type = VPCI_BAR_EMPTY;
     }
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index a016b4197801..3e7428da822c 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -70,7 +70,10 @@ struct vpci {
     struct vpci_header {
         /* Information about the PCI BARs of this device. */
         struct vpci_bar {
+            /* Physical view of the BAR. */
             uint64_t addr;
+            /* Guest view of the BAR. */
+            uint64_t guest_addr;
             uint64_t size;
             enum {
                 VPCI_BAR_EMPTY,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222091.384172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9W-0001RQ-IV; Fri, 05 Nov 2021 06:56:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222091.384172; Fri, 05 Nov 2021 06:56:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9W-0001R3-Ax; Fri, 05 Nov 2021 06:56:42 +0000
Received: by outflank-mailman (input) for mailman id 222091;
 Fri, 05 Nov 2021 06:56:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9V-0008Eb-9o
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:41 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86e6829e-3e05-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 07:56:40 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id g14so29236259edz.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:40 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86e6829e-3e05-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=Ov4OeG0y0S9wF384aoMSS8nrG9C7KacWnjexXbSAJKA=;
        b=Ygg8Kw2PgYYWbUaPHVHr3ncCSlDkgVKitIY41ydr4W+kINTYeSzHNrli5PH5igfBJf
         5KVg9L165M5E/gh2/9bgNC36oXtFOvRGx3cqiBCs3wiPvjVHKNA7zvt5y9kobuyNkawp
         s4GEGfD06lo+L5iqn8R6Dq85OFPEiXTbx8la/0M7+GtQ6loojNKAye8xb/uDZqVOLm9A
         vVLHZGGJBP4tsn9OVj73P9YyrWxSjfpwtOgTfc0Cp9b2325M1Fu+/08hztAJuh4D5n84
         2KCSrX9+1wIu8YgMfzPG69sLy6aABux0EgwPN2Tlna/DhsNwP5bm3xOs/r+KdQPJfbIJ
         hleA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=Ov4OeG0y0S9wF384aoMSS8nrG9C7KacWnjexXbSAJKA=;
        b=1O+wZq8mEneiR4sITWrmGqz8+eo/ZMwJOXl3X/Pxptf2YAH+gATF1CP7aSYep4rvJA
         v14DSkIKGMggov8RwpTXgmkFRBiNH2Ao3M/fkRpthoAZtFV6Z1KWggQFEQtpIlXvhNFR
         CyEOqtkESmcm9ZgOsN3VthDPlcNK5AcEWSaX3Yaqcbkfhsi8Hv+1c1OenslamD/ifrTH
         uF0IbfQ2i1kkwGoHT2/MKNoHYKO8zoAR4ZfvI6HjunIcOSQFm8bhLYbxWm/BGskhHXXF
         7JPHXcg3qgkHb29S5MW/0AnChnmZReToSZUllqXDDF15JGfdlka48D67QqW76Cxhl+GO
         AFVw==
X-Gm-Message-State: AOAM532IM9bl5+zV26TVpWskzNTee1jTS9I8AbgeBCbp0e2K5MHobXGz
	F6/XHYMkp6v9p0LXu+PoMGgP48Rn2VBZ5Q==
X-Google-Smtp-Source: ABdhPJzwW/asJb0bvmcPKQN0yvkDuDBQ2D84ldeYdNb020GJuam20MKFJNTL5jXaXCWobIQlP0aZZQ==
X-Received: by 2002:a17:906:2887:: with SMTP id o7mr67588980ejd.425.1636095399489;
        Thu, 04 Nov 2021 23:56:39 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Date: Fri,  5 Nov 2021 08:56:24 +0200
Message-Id: <20211105065629.940943-7-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Instead of handling a single range set, that contains all the memory
regions of all the BARs and ROM, have them per BAR.

This is in preparation of making non-identity mappings in p2m for the
MMIOs/ROM.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Since v3:
- re-work vpci_cancel_pending accordingly to the per-BAR handling
- s/num_mem_ranges/map_pending and s/uint8_t/bool
- ASSERT(bar->mem) in modify_bars
- create and destroy the rangesets on add/remove
---
 xen/drivers/vpci/header.c | 178 ++++++++++++++++++++++++++------------
 xen/drivers/vpci/vpci.c   |  26 +++++-
 xen/include/xen/vpci.h    |   3 +-
 3 files changed, 150 insertions(+), 57 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 1239051ee8ff..5fc2dfbbc864 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -131,34 +131,50 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
 
 bool vpci_process_pending(struct vcpu *v)
 {
-    if ( v->vpci.mem )
+    if ( v->vpci.map_pending )
     {
         struct map_data data = {
             .d = v->domain,
             .map = v->vpci.cmd & PCI_COMMAND_MEMORY,
         };
-        int rc = rangeset_consume_ranges(v->vpci.mem, map_range, &data);
+        struct pci_dev *pdev = v->vpci.pdev;
+        struct vpci_header *header = &pdev->vpci->header;
+        unsigned int i;
 
-        if ( rc == -ERESTART )
-            return true;
+        for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+        {
+            struct vpci_bar *bar = &header->bars[i];
+            int rc;
 
-        spin_lock(&v->vpci.pdev->vpci->lock);
-        /* Disable memory decoding unconditionally on failure. */
-        modify_decoding(v->vpci.pdev,
-                        rc ? v->vpci.cmd & ~PCI_COMMAND_MEMORY : v->vpci.cmd,
-                        !rc && v->vpci.rom_only);
-        spin_unlock(&v->vpci.pdev->vpci->lock);
+            if ( rangeset_is_empty(bar->mem) )
+                continue;
 
-        vpci_cancel_pending(v->vpci.pdev);
-        if ( rc )
-            /*
-             * FIXME: in case of failure remove the device from the domain.
-             * Note that there might still be leftover mappings. While this is
-             * safe for Dom0, for DomUs the domain will likely need to be
-             * killed in order to avoid leaking stale p2m mappings on
-             * failure.
-             */
-            vpci_remove_device(v->vpci.pdev);
+            rc = rangeset_consume_ranges(bar->mem, map_range, &data);
+
+            if ( rc == -ERESTART )
+                return true;
+
+            spin_lock(&pdev->vpci->lock);
+            /* Disable memory decoding unconditionally on failure. */
+            modify_decoding(pdev,
+                            rc ? v->vpci.cmd & ~PCI_COMMAND_MEMORY : v->vpci.cmd,
+                            !rc && v->vpci.rom_only);
+            spin_unlock(&pdev->vpci->lock);
+
+            if ( rc )
+            {
+                /*
+                 * FIXME: in case of failure remove the device from the domain.
+                 * Note that there might still be leftover mappings. While this is
+                 * safe for Dom0, for DomUs the domain will likely need to be
+                 * killed in order to avoid leaking stale p2m mappings on
+                 * failure.
+                 */
+                vpci_remove_device(pdev);
+                break;
+            }
+        }
+        v->vpci.map_pending = false;
     }
 
     return false;
@@ -169,22 +185,48 @@ void vpci_cancel_pending(const struct pci_dev *pdev)
     struct vcpu *v = current;
 
     /* Cancel any pending work now. */
-    if ( v->vpci.mem && v->vpci.pdev == pdev)
+    if ( v->vpci.map_pending && v->vpci.pdev == pdev)
     {
-        rangeset_destroy(v->vpci.mem);
-        v->vpci.mem = NULL;
+        struct vpci_header *header = &pdev->vpci->header;
+        unsigned int i;
+        int rc;
+
+        for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+        {
+            struct vpci_bar *bar = &header->bars[i];
+
+            if ( rangeset_is_empty(bar->mem) )
+                continue;
+
+            rc = rangeset_remove_range(bar->mem, 0, ~0ULL);
+            if ( !rc )
+                printk(XENLOG_ERR
+                       "%pd %pp failed to remove range set for BAR: %d\n",
+                       v->domain, &pdev->sbdf, rc);
+        }
+        v->vpci.map_pending = false;
     }
 }
 
 static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
-                            struct rangeset *mem, uint16_t cmd)
+                            uint16_t cmd)
 {
     struct map_data data = { .d = d, .map = true };
-    int rc;
+    struct vpci_header *header = &pdev->vpci->header;
+    int rc = 0;
+    unsigned int i;
+
+    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+    {
+        struct vpci_bar *bar = &header->bars[i];
+
+        if ( rangeset_is_empty(bar->mem) )
+            continue;
 
-    while ( (rc = rangeset_consume_ranges(mem, map_range, &data)) == -ERESTART )
-        process_pending_softirqs();
-    rangeset_destroy(mem);
+        while ( (rc = rangeset_consume_ranges(bar->mem, map_range,
+                                              &data)) == -ERESTART )
+            process_pending_softirqs();
+    }
     if ( !rc )
         modify_decoding(pdev, cmd, false);
 
@@ -192,7 +234,7 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
 }
 
 static void defer_map(struct domain *d, struct pci_dev *pdev,
-                      struct rangeset *mem, uint16_t cmd, bool rom_only)
+                      uint16_t cmd, bool rom_only)
 {
     struct vcpu *curr = current;
 
@@ -203,9 +245,9 @@ static void defer_map(struct domain *d, struct pci_dev *pdev,
      * started for the same device if the domain is not well-behaved.
      */
     curr->vpci.pdev = pdev;
-    curr->vpci.mem = mem;
     curr->vpci.cmd = cmd;
     curr->vpci.rom_only = rom_only;
+    curr->vpci.map_pending = true;
     /*
      * Raise a scheduler softirq in order to prevent the guest from resuming
      * execution with pending mapping operations, to trigger the invocation
@@ -217,42 +259,40 @@ static void defer_map(struct domain *d, struct pci_dev *pdev,
 static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
 {
     struct vpci_header *header = &pdev->vpci->header;
-    struct rangeset *mem = rangeset_new(NULL, NULL, 0);
     struct pci_dev *tmp, *dev = NULL;
     const struct vpci_msix *msix = pdev->vpci->msix;
-    unsigned int i;
+    unsigned int i, j;
     int rc;
-
-    if ( !mem )
-        return -ENOMEM;
+    bool map_pending;
 
     /*
-     * Create a rangeset that represents the current device BARs memory region
+     * Create a rangeset per BAR that represents the current device memory region
      * and compare it against all the currently active BAR memory regions. If
      * an overlap is found, subtract it from the region to be mapped/unmapped.
      *
-     * First fill the rangeset with all the BARs of this device or with the ROM
+     * First fill the rangesets with all the BARs of this device or with the ROM
      * BAR only, depending on whether the guest is toggling the memory decode
      * bit of the command register, or the enable bit of the ROM BAR register.
      */
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
     {
-        const struct vpci_bar *bar = &header->bars[i];
+        struct vpci_bar *bar = &header->bars[i];
         unsigned long start = PFN_DOWN(bar->addr);
         unsigned long end = PFN_DOWN(bar->addr + bar->size - 1);
 
+        ASSERT(bar->mem);
+
         if ( !MAPPABLE_BAR(bar) ||
              (rom_only ? bar->type != VPCI_BAR_ROM
                        : (bar->type == VPCI_BAR_ROM && !header->rom_enabled)) )
             continue;
 
-        rc = rangeset_add_range(mem, start, end);
+        rc = rangeset_add_range(bar->mem, start, end);
         if ( rc )
         {
             printk(XENLOG_G_WARNING "Failed to add [%lx, %lx]: %d\n",
                    start, end, rc);
-            rangeset_destroy(mem);
-            return rc;
+            goto fail;
         }
     }
 
@@ -263,14 +303,21 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
         unsigned long end = PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
                                      vmsix_table_size(pdev->vpci, i) - 1);
 
-        rc = rangeset_remove_range(mem, start, end);
-        if ( rc )
+        for ( j = 0; j < ARRAY_SIZE(header->bars); j++ )
         {
-            printk(XENLOG_G_WARNING
-                   "Failed to remove MSIX table [%lx, %lx]: %d\n",
-                   start, end, rc);
-            rangeset_destroy(mem);
-            return rc;
+            const struct vpci_bar *bar = &header->bars[j];
+
+            if ( rangeset_is_empty(bar->mem) )
+                continue;
+
+            rc = rangeset_remove_range(bar->mem, start, end);
+            if ( rc )
+            {
+                printk(XENLOG_G_WARNING
+                       "Failed to remove MSIX table [%lx, %lx]: %d\n",
+                       start, end, rc);
+                goto fail;
+            }
         }
     }
 
@@ -302,7 +349,8 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
             unsigned long start = PFN_DOWN(bar->addr);
             unsigned long end = PFN_DOWN(bar->addr + bar->size - 1);
 
-            if ( !bar->enabled || !rangeset_overlaps_range(mem, start, end) ||
+            if ( !bar->enabled ||
+                 !rangeset_overlaps_range(bar->mem, start, end) ||
                  /*
                   * If only the ROM enable bit is toggled check against other
                   * BARs in the same device for overlaps, but not against the
@@ -311,13 +359,12 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
                  (rom_only && tmp == pdev && bar->type == VPCI_BAR_ROM) )
                 continue;
 
-            rc = rangeset_remove_range(mem, start, end);
+            rc = rangeset_remove_range(bar->mem, start, end);
             if ( rc )
             {
                 printk(XENLOG_G_WARNING "Failed to remove [%lx, %lx]: %d\n",
                        start, end, rc);
-                rangeset_destroy(mem);
-                return rc;
+                goto fail;
             }
         }
     }
@@ -335,12 +382,35 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
          * will always be to establish mappings and process all the BARs.
          */
         ASSERT((cmd & PCI_COMMAND_MEMORY) && !rom_only);
-        return apply_map(pdev->domain, pdev, mem, cmd);
+        return apply_map(pdev->domain, pdev, cmd);
     }
 
-    defer_map(dev->domain, dev, mem, cmd, rom_only);
+    /* Find out how many memory ranges has left after MSI and overlaps. */
+    map_pending = false;
+    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+        if ( !rangeset_is_empty(header->bars[i].mem) )
+        {
+            map_pending = true;
+            break;
+        }
+
+    /*
+     * There are cases when PCI device, root port for example, has neither
+     * memory space nor IO. In this case PCI command register write is
+     * missed resulting in the underlying PCI device not functional, so:
+     *   - if there are no regions write the command register now
+     *   - if there are regions then defer work and write later on
+     */
+    if ( !map_pending )
+        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
+    else
+        defer_map(dev->domain, dev, cmd, rom_only);
 
     return 0;
+
+fail:
+    vpci_cancel_pending(pdev);
+    return rc;
 }
 
 static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 5f086398a98c..45733300f00b 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -55,7 +55,12 @@ void vpci_remove_device_handlers(const struct pci_dev *pdev)
 
 void vpci_remove_device(struct pci_dev *pdev)
 {
+    struct vpci_header *header = &pdev->vpci->header;
+    unsigned int i;
+
     vpci_cancel_pending(pdev);
+    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+        rangeset_destroy(header->bars[i].mem);
     vpci_remove_device_handlers(pdev);
     xfree(pdev->vpci->msix);
     xfree(pdev->vpci->msi);
@@ -80,6 +85,8 @@ static int run_vpci_init(struct pci_dev *pdev)
 
 int vpci_add_handlers(struct pci_dev *pdev)
 {
+    struct vpci_header *header;
+    unsigned int i;
     int rc;
 
     if ( !has_vpci(pdev->domain) )
@@ -95,10 +102,25 @@ int vpci_add_handlers(struct pci_dev *pdev)
     INIT_LIST_HEAD(&pdev->vpci->handlers);
     spin_lock_init(&pdev->vpci->lock);
 
+    header = &pdev->vpci->header;
+    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+    {
+        struct vpci_bar *bar = &header->bars[i];
+
+        bar->mem = rangeset_new(NULL, NULL, 0);
+        if ( !bar->mem )
+        {
+            rc = -ENOMEM;
+            goto fail;
+        }
+    }
+
     rc = run_vpci_init(pdev);
-    if ( rc )
-        vpci_remove_device(pdev);
+    if ( !rc )
+        return 0;
 
+ fail:
+    vpci_remove_device(pdev);
     return rc;
 }
 
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 3e7428da822c..143f3166a730 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -75,6 +75,7 @@ struct vpci {
             /* Guest view of the BAR. */
             uint64_t guest_addr;
             uint64_t size;
+            struct rangeset *mem;
             enum {
                 VPCI_BAR_EMPTY,
                 VPCI_BAR_IO,
@@ -149,9 +150,9 @@ struct vpci {
 
 struct vpci_vcpu {
     /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
-    struct rangeset *mem;
     struct pci_dev *pdev;
     uint16_t cmd;
+    bool map_pending : 1;
     bool rom_only : 1;
 };
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222092.384183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9Y-0001l3-1L; Fri, 05 Nov 2021 06:56:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222092.384183; Fri, 05 Nov 2021 06:56:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9X-0001jh-Oh; Fri, 05 Nov 2021 06:56:43 +0000
Received: by outflank-mailman (input) for mailman id 222092;
 Fri, 05 Nov 2021 06:56:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9W-0008NQ-0U
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:42 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87859bdc-3e05-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:56:41 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id f8so29948103edy.4
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:41 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87859bdc-3e05-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=XyZSMZ7iKKLkWA3FJonAF/JNUpQ9LSX1yaRvNFIyvMA=;
        b=paJTQbNmX2422YdQxWAkilGdnCnfHcrX2/PzNL261GPmAbwsW/hW0kMVLU7BDmktI9
         +JANFVQP1BD65WstErEcXciOyRkV+R1+rIcSIldz9iiZz9R1NqpO/uDu7NI80dpdkYTW
         kQ4y8h1qZ5/OeU6Sf8vPNnkB+orjbVrz53tjMfsRJz2MJJ6SFSVYtyV3I56I7Su5ANvx
         j2UqBdk0N++TAeevhZHkrGmZ93CtMT4iINrgTFs4mdGojt4F7ZCvfJ9eFIq1i7Llo6xl
         ebr68ogUy0sBwWO7Om6TPtN/Nc1yl6KavKrpJBrEn4vwqZ6tpdqoCAoOxFPcv3NpziqY
         cXSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=XyZSMZ7iKKLkWA3FJonAF/JNUpQ9LSX1yaRvNFIyvMA=;
        b=N5OvLfxvUmZ/dspgu4KNY3YjfyEQ5HEpIEuw1WMneZLsH6aKWb2zkysaYlMl1gjMzN
         xpB3LRzeUchVAHBXfHZsvnt/Z/phr6GZ7W13MY/m8mCjVfGezItZkM6icH0t8OicW6Ie
         TFyUthVuh/sTk+TR+tsfUFPDIfUgsGafEJIZup6IsQIdaSQ4+MKZ9X83we4cISeb1Pyi
         flJtGuW7UQacgcNfqYAQahadkkO2ShzEMjtXIgwLgYindW5CvgMl8iZqZMIrkaMAM9pj
         e8hObMTym9gHXhJApZgeM7ee/divEWitMRP7j3ZCigd/tabRbp0DtWWktFlCEVH4g+sE
         A7Cg==
X-Gm-Message-State: AOAM532d6KOXxM1zl1RVPRfvMmcaNl+B8Iuo/P2iNDndU67bLRW18Wc4
	iuiMw/QeoKzYQ1wEeomg7Ea1w8kC92o7sQ==
X-Google-Smtp-Source: ABdhPJw6edY8YQ99u9eqfsvwlkGtZAjVgFNAwPaaqGlEbF+LcSDWS6OORU0obPFktGIYzCLWO6v6Bw==
X-Received: by 2002:a17:907:8a1b:: with SMTP id sc27mr35150537ejc.572.1636095400630;
        Thu, 04 Nov 2021 23:56:40 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 07/11] vpci/header: program p2m with guest BAR view
Date: Fri,  5 Nov 2021 08:56:25 +0200
Message-Id: <20211105065629.940943-8-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Take into account guest's BAR view and program its p2m accordingly:
gfn is guest's view of the BAR and mfn is the physical BAR value as set
up by the host bridge in the hardware domain.
This way hardware doamin sees physical BAR values and guest sees
emulated ones.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v3:
- updated comment (Roger)
- removed gfn_add(map->start_gfn, rc); which is wrong
- use v->domain instead of v->vpci.pdev->domain
- removed odd e.g. in comment
- s/d%d/%pd in altered code
- use gdprintk for map/unmap logs
Since v2:
- improve readability for data.start_gfn and restructure ?: construct
Since v1:
 - s/MSI/MSI-X in comments
---
 xen/drivers/vpci/header.c | 33 +++++++++++++++++++++++++++++----
 1 file changed, 29 insertions(+), 4 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 5fc2dfbbc864..34158da2d5f6 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -30,6 +30,10 @@
 
 struct map_data {
     struct domain *d;
+    /* Start address of the BAR as seen by the guest. */
+    gfn_t start_gfn;
+    /* Physical start address of the BAR. */
+    mfn_t start_mfn;
     bool map;
 };
 
@@ -37,12 +41,24 @@ static int map_range(unsigned long s, unsigned long e, void *data,
                      unsigned long *c)
 {
     const struct map_data *map = data;
+    gfn_t start_gfn;
     int rc;
 
     for ( ; ; )
     {
         unsigned long size = e - s + 1;
 
+        /*
+         * Ranges to be mapped don't always start at the BAR start address, as
+         * there can be holes or partially consumed ranges. Account for the
+         * offset of the current address from the BAR start.
+         */
+        start_gfn = gfn_add(map->start_gfn, s - mfn_x(map->start_mfn));
+
+        gdprintk(XENLOG_G_DEBUG,
+                 "%smap [%lx, %lx] -> %#"PRI_gfn" for %pd\n",
+                 map->map ? "" : "un", s, e, gfn_x(start_gfn),
+                 map->d);
         /*
          * ARM TODOs:
          * - On ARM whether the memory is prefetchable or not should be passed
@@ -52,8 +68,10 @@ static int map_range(unsigned long s, unsigned long e, void *data,
          * - {un}map_mmio_regions doesn't support preemption.
          */
 
-        rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(s))
-                      : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(s));
+        rc = map->map ? map_mmio_regions(map->d, start_gfn,
+                                         size, _mfn(s))
+                      : unmap_mmio_regions(map->d, start_gfn,
+                                           size, _mfn(s));
         if ( rc == 0 )
         {
             *c += size;
@@ -62,8 +80,8 @@ static int map_range(unsigned long s, unsigned long e, void *data,
         if ( rc < 0 )
         {
             printk(XENLOG_G_WARNING
-                   "Failed to identity %smap [%lx, %lx] for d%d: %d\n",
-                   map->map ? "" : "un", s, e, map->d->domain_id, rc);
+                   "Failed to identity %smap [%lx, %lx] for %pd: %d\n",
+                   map->map ? "" : "un", s, e, map->d, rc);
             break;
         }
         ASSERT(rc < size);
@@ -149,6 +167,10 @@ bool vpci_process_pending(struct vcpu *v)
             if ( rangeset_is_empty(bar->mem) )
                 continue;
 
+            data.start_gfn =
+                 _gfn(PFN_DOWN(is_hardware_domain(v->domain)
+                               ? bar->addr : bar->guest_addr));
+            data.start_mfn = _mfn(PFN_DOWN(bar->addr));
             rc = rangeset_consume_ranges(bar->mem, map_range, &data);
 
             if ( rc == -ERESTART )
@@ -223,6 +245,9 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
         if ( rangeset_is_empty(bar->mem) )
             continue;
 
+        data.start_gfn = _gfn(PFN_DOWN(is_hardware_domain(d)
+                                       ? bar->addr : bar->guest_addr));
+        data.start_mfn = _mfn(PFN_DOWN(bar->addr));
         while ( (rc = rangeset_consume_ranges(bar->mem, map_range,
                                               &data)) == -ERESTART )
             process_pending_softirqs();
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222093.384187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9Y-0001uY-Sf; Fri, 05 Nov 2021 06:56:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222093.384187; Fri, 05 Nov 2021 06:56:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9Y-0001rV-J9; Fri, 05 Nov 2021 06:56:44 +0000
Received: by outflank-mailman (input) for mailman id 222093;
 Fri, 05 Nov 2021 06:56:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9X-0008NQ-0W
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:43 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 882d0480-3e05-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:56:42 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id g14so29236504edz.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:42 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 882d0480-3e05-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=pQYQjf/W6J0SupymAgyjXFbgcoTAynkHvQvG8kaNKtE=;
        b=REKx4tJPrYDsJUNCJKpj14ih7omKhQQe5cRTJOAGrnflNXA0QYA6mXstHT5V0pVFf6
         gNsdSf977poOoLNRmfBcW3sgmOZfOSLP0RSbsm0LCdFFSvfQYHnMDE3bUxk8m793XkIC
         /9K17kLCe9oGpNBb2DuvKwFkdh+gBs5zkdJx0zPY8ZVwqkL0ogMJob4pqdbPDiAVWOpc
         xRe7z9xHKBwMYi6LwPnCz6byiN8MmQR0wpZl9ZhyG6kNRYEFrBuUxdql6TGnv2ZD4+Y1
         NP52JvIugUJUToEgMWtL5Ubo+ViZQLrWdfSd2QzrpbWzLU7/d+HxQ9I7lJfjPuONycLB
         ispQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=pQYQjf/W6J0SupymAgyjXFbgcoTAynkHvQvG8kaNKtE=;
        b=1uwUcklCiIJFLSLhTgUMJ4jYQGoRN2o2TIyoFzMh+G3HEBjZMLTF4saD939ycfRMmo
         cIFWkgDdMhhmqWH2/I3VvODN+lMDaqxt44OxhLjQTWixhqBurJvotWjUs6Bf1RWF552c
         H/alaZPbCE2d9B3Vr7jG1Ze53VsN86WGfJu2JUj4AbDTqifqcTdlOMERHAYPy3NgIR93
         F7XNGH832Omo4TPeBBt3dV0WWCOrpy7dXSmtDFsm271dPG0+roaFXvkEJH00Rt/r1cOB
         g/UtzEycbRa99K0OwzepFadmP/2ilMY5dHhWv7kJJprM5PPpGYyFY+1V5ZwLIdAln8QJ
         o/dw==
X-Gm-Message-State: AOAM531beRvJ+f8EVpsuGorHvMJMof0K8agxqF6KEYs0KVSquF2wY8iB
	bpB2Qo3wNCaCfCXRhZaFCIiSZ0ucHLMHuA==
X-Google-Smtp-Source: ABdhPJyfcQnz2s3OZb7zo0UDGNsehpeHVTWJcimzQRS/jBRT+UODYLMfQyENC816TfBAVXOfgiVs3Q==
X-Received: by 2002:a17:907:d94:: with SMTP id go20mr8942339ejc.78.1636095401673;
        Thu, 04 Nov 2021 23:56:41 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 08/11] vpci/header: emulate PCI_COMMAND register for guests
Date: Fri,  5 Nov 2021 08:56:26 +0200
Message-Id: <20211105065629.940943-9-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Add basic emulation support for guests. At the moment only emulate
PCI_COMMAND_INTX_DISABLE bit, the rest is not emulated yet and left
as TODO.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v3:
- gate more code on CONFIG_HAS_MSI
- removed logic for the case when MSI/MSI-X not enabled
---
 xen/drivers/vpci/header.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 34158da2d5f6..64cfc268c341 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -459,6 +459,22 @@ static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
         pci_conf_write16(pdev->sbdf, reg, cmd);
 }
 
+static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
+                            uint32_t cmd, void *data)
+{
+    /* TODO: Add proper emulation for all bits of the command register. */
+
+#ifdef CONFIG_HAS_PCI_MSI
+    if ( pdev->vpci->msi->enabled )
+    {
+        /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X enabled. */
+        cmd |= PCI_COMMAND_INTX_DISABLE;
+    }
+#endif
+
+    cmd_write(pdev, reg, cmd, data);
+}
+
 static void bar_write(const struct pci_dev *pdev, unsigned int reg,
                       uint32_t val, void *data)
 {
@@ -631,8 +647,9 @@ static int init_bars(struct pci_dev *pdev)
     }
 
     /* Setup a handler for the command register. */
-    rc = vpci_add_register(pdev->vpci, vpci_hw_read16, cmd_write, PCI_COMMAND,
-                           2, header);
+    rc = vpci_add_register(pdev->vpci, vpci_hw_read16,
+                           is_hwdom ? cmd_write : guest_cmd_write,
+                           PCI_COMMAND, 2, header);
     if ( rc )
         return rc;
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222094.384201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9a-0002Kt-Cb; Fri, 05 Nov 2021 06:56:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222094.384201; Fri, 05 Nov 2021 06:56:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9a-0002K5-6n; Fri, 05 Nov 2021 06:56:46 +0000
Received: by outflank-mailman (input) for mailman id 222094;
 Fri, 05 Nov 2021 06:56:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9Y-0008NQ-49
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:44 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 88d4f31b-3e05-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:56:43 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id b15so10472327edd.7
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:43 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88d4f31b-3e05-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=f+1sZF7ROamhznPmSSkwy1b94iIH1O5NvYMBmRXBAH8=;
        b=A2TDKmeWGL2QFwTzv8KDdpoYv2eJE6NeCgA7AVx1l6oYPcqGOyG28ee0T4YGHbwTmY
         5Lxfgyn7gO6AjCLLcWNAVOgS4y34NOACvl0IGfGnW2uW9wCbAUtLH+XkO/7wCiI2sM3Q
         nO+XzRkBs0mq7Lv4TuegSkQACn7rOI3Odu61EnNiQi/AfEoXf5yR70Lyx+XuBU8GTPVq
         lzJpEwS7erjnemiMGTjBJvBgE+ixpjo/VS+l6ngpTp2bfvwwIuQAqrrzwVlru23wi1t6
         aclcSAHLHG1ZVsqPHVIvPDqM/SiXoHYrlo4jDJdn+x/fsG5tz/SteTSsjH8ErUJMgah7
         iXgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=f+1sZF7ROamhznPmSSkwy1b94iIH1O5NvYMBmRXBAH8=;
        b=lI1sRInMZoxFufHmtTXXuhK9LSv9cKDmV/nfEjo9BuUqqqN0r/y45HObNmDYa67yWS
         Gcl849dWENP1gNPTvb4xC20D+AgsXwfOaJxkIgHtAEj6EAN1j1crE9SAXgV4RSlDtGni
         bdUVhRSICDsf3eA5tuGCaO7DzXrxZWmAL9/eCSJgjRykttNUv9VaV2NFKTtpp5jvKQlZ
         iWO+IG48V3KXShnJlq5t03nnofxJe8nvdQUt4GU0dFvNkYO3qoTJLVLM+Z0VxxFIyoDl
         xGK1gwnMsKi1rxica2a2Uf3M061Zf/F2nqiS5Aw7eBvV2kNaOaTrohhD4G8pT2s1obOm
         jdfw==
X-Gm-Message-State: AOAM530GMkr6DgvllKNPUUmYKCosyBpVW7eoxqeUPRFTDt6VIZw2CU1L
	3B3pFcRHChQJY95cq/NaPrN9yNbL4f9y1A==
X-Google-Smtp-Source: ABdhPJwSvyYC+lehQ6glU0T9q9cBKvQJaw1rh4jciNd34Vt0gDz8IkOSukIGAv03A6mROto6h+7HKA==
X-Received: by 2002:aa7:c1c6:: with SMTP id d6mr35817680edp.203.1636095402813;
        Thu, 04 Nov 2021 23:56:42 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 09/11] vpci/header: reset the command register when adding devices
Date: Fri,  5 Nov 2021 08:56:27 +0200
Message-Id: <20211105065629.940943-10-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Reset the command register when passing through a PCI device:
it is possible that when passing through a PCI device its memory
decoding bits in the command register are already set. Thus, a
guest OS may not write to the command register to update memory
decoding, so guest mappings (guest's view of the BARs) are
left not updated.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v1:
 - do not write 0 to the command register, but respect host settings.
---
 xen/drivers/vpci/header.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 64cfc268c341..680319b3a63f 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -459,8 +459,7 @@ static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
         pci_conf_write16(pdev->sbdf, reg, cmd);
 }
 
-static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
-                            uint32_t cmd, void *data)
+static uint32_t emulate_cmd_reg(const struct pci_dev *pdev, uint32_t cmd)
 {
     /* TODO: Add proper emulation for all bits of the command register. */
 
@@ -472,7 +471,13 @@ static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
     }
 #endif
 
-    cmd_write(pdev, reg, cmd, data);
+    return cmd;
+}
+
+static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
+                            uint32_t cmd, void *data)
+{
+    cmd_write(pdev, reg, emulate_cmd_reg(pdev, cmd), data);
 }
 
 static void bar_write(const struct pci_dev *pdev, unsigned int reg,
@@ -646,6 +651,10 @@ static int init_bars(struct pci_dev *pdev)
         return -EOPNOTSUPP;
     }
 
+    /* Reset the command register for the guest. */
+    if ( !is_hwdom )
+        pci_conf_write16(pdev->sbdf, PCI_COMMAND, emulate_cmd_reg(pdev, 0));
+
     /* Setup a handler for the command register. */
     rc = vpci_add_register(pdev->vpci, vpci_hw_read16,
                            is_hwdom ? cmd_write : guest_cmd_write,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222095.384213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9c-0002i0-3f; Fri, 05 Nov 2021 06:56:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222095.384213; Fri, 05 Nov 2021 06:56:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9b-0002fW-Py; Fri, 05 Nov 2021 06:56:47 +0000
Received: by outflank-mailman (input) for mailman id 222095;
 Fri, 05 Nov 2021 06:56:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9Z-0008NQ-EU
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:45 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 898bd0fe-3e05-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:56:44 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id ee33so29969942edb.8
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:44 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 898bd0fe-3e05-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=AyhDGXJChmWgqH4NGZkz5hh623ehbMnVZq0mFeTc4N8=;
        b=S74F3KC5Ll7YUiFRMNzJmPU1QEjH37KMs0pYrg9xJLZn2V9McTPuQuSvBOMyE6IBK+
         ZXL6caNB4Kay83nmnMI3A1oFymf6Cw5M25klv8kmgHbY1ztmnBiqWxYUHj4POot147SE
         4DqfjshSdkR/0W39QQzvMjANhQnkY9Iw31TugmdSyBwgTot+HT+Nw/z/EiECBR9TZCq3
         URK3xEVJPcu3gw2TEOiRoc8j2YkbdCNfljotoetQ5Xk31cn4AMf8+sDwZSs7/gpjWYL4
         vDo42kC/mXAW1BtQlM7rZ+yA8N2+4waNT34QDVF5laHsNflg4G7RrBXyH1UgRUxeHo2Q
         URNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=AyhDGXJChmWgqH4NGZkz5hh623ehbMnVZq0mFeTc4N8=;
        b=km3EKa1tvfgetkE3+2nhpqBtV6QaWSl13f1Noi/Bxx7JiIgFRB8RzUu6ubn20sK1lG
         sZZNxUx88act7ON9JUsRkZvZn5+ajdK+MENWKKRgKpceVZblUF9frK7/qam4cwF99pC8
         2HexSECQeWZ9YGWCjx2uZGoeB8HNn+kr+FKJIa7d5XbTzyEV68tsZTplfsYiLckQv1UB
         V7PjtkTE7lPZxyhhCxgEylr/YQMFR4afzq9utLgSphdtgGypQ4ysNxgYqBpwbO1steKQ
         gydJlJYzkbx2MK5i9ku77JUS8Sl4jn2io/Qb2ecnka7Mo5l1du+DWm0YBoMP0VPYVybg
         3AfA==
X-Gm-Message-State: AOAM530vTxRyKO3kM9+fWgdQiuVTP9RtVzsdY/Tjmh3JdrV7ZFReJRTc
	xb9fMmQwnu80XehqLnnHvVlBYMsXFcOVtA==
X-Google-Smtp-Source: ABdhPJwEvro3SUyelH8U7WRbrV+bXktuw9rqoGQ+lFYh6UrNug2qOPwBNRl25+SrND7hV+wShj6HEg==
X-Received: by 2002:a05:6402:520b:: with SMTP id s11mr37432396edd.213.1636095404026;
        Thu, 04 Nov 2021 23:56:44 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 10/11] vpci: add initial support for virtual PCI bus topology
Date: Fri,  5 Nov 2021 08:56:28 +0200
Message-Id: <20211105065629.940943-11-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Assign SBDF to the PCI devices being passed through with bus 0.
The resulting topology is where PCIe devices reside on the bus 0 of the
root complex itself (embedded endpoints).
This implementation is limited to 32 devices which are allowed on
a single PCI bus.

Please note, that at the moment only function 0 of a multifunction
device can be passed through.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v3:
 - make use of VPCI_INIT
 - moved all new code to vpci.c which belongs to it
 - changed open-coded 31 to PCI_SLOT(~0)
 - revisited locking: add dedicated vdev list's lock
 - added comments and code to reject multifunction devices with
   functions other than 0
 - updated comment about vpci_dev_next and made it unsigned int
 - implement roll back in case of error while assigning/deassigning devices
 - s/dom%pd/%pd
Since v2:
 - remove casts that are (a) malformed and (b) unnecessary
 - add new line for better readability
 - remove CONFIG_HAS_VPCI_GUEST_SUPPORT ifdef's as the relevant vPCI
    functions are now completely gated with this config
 - gate common code with CONFIG_HAS_VPCI_GUEST_SUPPORT
New in v2
---
 xen/drivers/vpci/vpci.c | 52 +++++++++++++++++++++++++++++++++++++++++
 xen/include/xen/sched.h |  8 +++++++
 xen/include/xen/vpci.h  |  4 ++++
 3 files changed, 64 insertions(+)

diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 45733300f00b..6657d236dc1a 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -101,6 +101,9 @@ int vpci_add_handlers(struct pci_dev *pdev)
 
     INIT_LIST_HEAD(&pdev->vpci->handlers);
     spin_lock_init(&pdev->vpci->lock);
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    pdev->vpci->guest_sbdf.sbdf = ~0;
+#endif
 
     header = &pdev->vpci->header;
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
@@ -125,6 +128,54 @@ int vpci_add_handlers(struct pci_dev *pdev)
 }
 
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+int vpci_add_virtual_device(struct pci_dev *pdev)
+{
+    struct domain *d = pdev->domain;
+    pci_sbdf_t sbdf;
+    unsigned long new_dev_number;
+
+    /*
+     * Each PCI bus supports 32 devices/slots at max or up to 256 when
+     * there are multi-function ones which are not yet supported.
+     */
+    if ( pdev->info.is_extfn )
+    {
+        gdprintk(XENLOG_ERR, "%pp: only function 0 passthrough supported\n",
+                 &pdev->sbdf);
+        return -EOPNOTSUPP;
+    }
+
+    new_dev_number = find_first_zero_bit(&d->vpci_dev_assigned_map,
+                                         PCI_SLOT(~0) + 1);
+    if ( new_dev_number > PCI_SLOT(~0) )
+        return -ENOSPC;
+
+    set_bit(new_dev_number, &d->vpci_dev_assigned_map);
+
+    /*
+     * Both segment and bus number are 0:
+     *  - we emulate a single host bridge for the guest, e.g. segment 0
+     *  - with bus 0 the virtual devices are seen as embedded
+     *    endpoints behind the root complex
+     *
+     * TODO: add support for multi-function devices.
+     */
+    sbdf.sbdf = 0;
+    sbdf.devfn = PCI_DEVFN(new_dev_number, 0);
+    pdev->vpci->guest_sbdf = sbdf;
+
+    return 0;
+
+}
+REGISTER_VPCI_INIT(vpci_add_virtual_device, VPCI_PRIORITY_MIDDLE);
+
+static void vpci_remove_virtual_device(struct domain *d,
+                                       const struct pci_dev *pdev)
+{
+    clear_bit(pdev->vpci->guest_sbdf.dev, &d->vpci_dev_assigned_map);
+    pdev->vpci->guest_sbdf.sbdf = ~0;
+}
+
 /* Notify vPCI that device is assigned to guest. */
 int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
 {
@@ -150,6 +201,7 @@ int vpci_deassign_device(struct domain *d, struct pci_dev *pdev)
     if ( is_system_domain(d) || !has_vpci(d) )
         return 0;
 
+    vpci_remove_virtual_device(d, pdev);
     vpci_remove_device_handlers(pdev);
 
     return 0;
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 28146ee404e6..10bff103317c 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -444,6 +444,14 @@ struct domain
 
 #ifdef CONFIG_HAS_PCI
     struct list_head pdev_list;
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /*
+     * The bitmap which shows which device numbers are already used by the
+     * virtual PCI bus topology and is used to assign a unique SBDF to the
+     * next passed through virtual PCI device.
+     */
+    unsigned long vpci_dev_assigned_map;
+#endif
 #endif
 
 #ifdef CONFIG_HAS_PASSTHROUGH
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 143f3166a730..9cc7071bc0af 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -145,6 +145,10 @@ struct vpci {
             struct vpci_arch_msix_entry arch;
         } entries[];
     } *msix;
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /* Virtual SBDF of the device. */
+    pci_sbdf_t guest_sbdf;
+#endif
 #endif
 };
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 06:56:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 06:56:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222096.384221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9d-0002rM-Jx; Fri, 05 Nov 2021 06:56:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222096.384221; Fri, 05 Nov 2021 06:56:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mit9c-0002o7-Dt; Fri, 05 Nov 2021 06:56:48 +0000
Received: by outflank-mailman (input) for mailman id 222096;
 Fri, 05 Nov 2021 06:56:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gmz5=PY=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mit9a-0008NQ-SQ
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 06:56:46 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a5cd3be-3e05-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 07:56:46 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id w1so30027716edd.10
 for <xen-devel@lists.xenproject.org>; Thu, 04 Nov 2021 23:56:46 -0700 (PDT)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id dt4sm3735150ejb.27.2021.11.04.23.56.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Nov 2021 23:56:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a5cd3be-3e05-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=ku75VZX/TQ1wxjSevU0hc8PtkdlgtlMhhIG2xgl6Ofc=;
        b=NDxX5Vm/k7LYA5JCIm0+QlVCsPrIHbjm785HHBMfst0ab/k3PkoKp6vV7UtSKJnK1I
         zmZt3fjOD4AsivSHuRVhUlEVeRyNBWJw8H76QEe8QoI5hViHDly4GU7XY5tQSZI95MJB
         cJN5Kv+OCyQ4+UkATNtLw89S7+aKTnt3W69te4SFDQD9nKjzf5xPMX4v1PddbMdOqhfc
         XaHX7XRc4oXNQP+2PQG6UXw4nx3knp52pVfSoMlEryfTy7Ef6oJpGZ8Igh9RvhyDA3Eu
         YQlK6E2e2NHAIOEBbVJr1M2nfL2nMAFYEZnlZF2ATBU1ewkl5VQqD3zuTnUU8VoY0lHg
         B46A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=ku75VZX/TQ1wxjSevU0hc8PtkdlgtlMhhIG2xgl6Ofc=;
        b=vmCpnMlFnLTnIWOytwcpTTMvQv5vAVOqyvDbarPp8cMmOGWA9GIzzSySj56OXBLv+b
         7q7JEO1imZdZj/F0tLUEyDqf4UFctcfKsgPNPQiAavzIGi8M1abQ8P2RuiskK3HVofzk
         KP6+CKMR0TR02LO/llutcA5WZ9eDll1DK3W4+xtG9b2u325VGvwuoEeyah6COtzJSpVM
         qGmw2oGdDNhVR3qomUZCoSuJtOyrm0Mjq71oqesl07hErHhVEVsPdecVCg85QDlzVs6S
         bGOk7+AqBJNxGrDWkpzpdnwtB6P1pT8KsHW0MYw5+cK0gZ8s0yapzzEHMM7VtAIc8qMF
         xjUA==
X-Gm-Message-State: AOAM530fUTyEbyx+aZivXH5r7Z0Z927PF0vOuD2koum2yGJJWOsGvR3E
	CFsjF7cSbX9+YMUtGAOvY2Ke3ZH7/CbHdw==
X-Google-Smtp-Source: ABdhPJznZ1Bt/7VgyWdSOs5D8rXKBDaD9RskvSN9Sr6eFAexPm+adsmBAZZCGxHmQQPmpDaN31lv+A==
X-Received: by 2002:a05:6402:5190:: with SMTP id q16mr37435741edd.12.1636095405353;
        Thu, 04 Nov 2021 23:56:45 -0700 (PDT)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v4 11/11] xen/arm: translate virtual PCI bus topology for guests
Date: Fri,  5 Nov 2021 08:56:29 +0200
Message-Id: <20211105065629.940943-12-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There are three  originators for the PCI configuration space access:
1. The domain that owns physical host bridge: MMIO handlers are
there so we can update vPCI register handlers with the values
written by the hardware domain, e.g. physical view of the registers
vs guest's view on the configuration space.
2. Guest access to the passed through PCI devices: we need to properly
map virtual bus topology to the physical one, e.g. pass the configuration
space access to the corresponding physical devices.
3. Emulated host PCI bridge access. It doesn't exist in the physical
topology, e.g. it can't be mapped to some physical host bridge.
So, all access to the host bridge itself needs to be trapped and
emulated.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v3:
- revisit locking
- move code to vpci.c
Since v2:
 - pass struct domain instead of struct vcpu
 - constify arguments where possible
 - gate relevant code with CONFIG_HAS_VPCI_GUEST_SUPPORT
New in v2
---
 xen/arch/arm/vpci.c     | 18 ++++++++++++++++++
 xen/drivers/vpci/vpci.c | 30 ++++++++++++++++++++++++++++++
 xen/include/xen/vpci.h  |  1 +
 3 files changed, 49 insertions(+)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 5a6ebd8b9868..6a37f770f8f0 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -41,6 +41,15 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
     /* data is needed to prevent a pointer cast on 32bit */
     unsigned long data;
 
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /*
+     * For the passed through devices we need to map their virtual SBDF
+     * to the physical PCI device being passed through.
+     */
+    if ( !bridge && !vpci_translate_virtual_device(v->domain, &sbdf) )
+            return 1;
+#endif
+
     if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
                         1U << info->dabt.size, &data) )
     {
@@ -59,6 +68,15 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
     struct pci_host_bridge *bridge = p;
     pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
 
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /*
+     * For the passed through devices we need to map their virtual SBDF
+     * to the physical PCI device being passed through.
+     */
+    if ( !bridge && !vpci_translate_virtual_device(v->domain, &sbdf) )
+            return 1;
+#endif
+
     return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                            1U << info->dabt.size, r);
 }
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 6657d236dc1a..cb0bde35b6a6 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -94,6 +94,7 @@ int vpci_add_handlers(struct pci_dev *pdev)
 
     /* We should not get here twice for the same device. */
     ASSERT(!pdev->vpci);
+    ASSERT(pcidevs_locked());
 
     pdev->vpci = xzalloc(struct vpci);
     if ( !pdev->vpci )
@@ -134,6 +135,8 @@ int vpci_add_virtual_device(struct pci_dev *pdev)
     pci_sbdf_t sbdf;
     unsigned long new_dev_number;
 
+    ASSERT(pcidevs_locked());
+
     /*
      * Each PCI bus supports 32 devices/slots at max or up to 256 when
      * there are multi-function ones which are not yet supported.
@@ -172,10 +175,37 @@ REGISTER_VPCI_INIT(vpci_add_virtual_device, VPCI_PRIORITY_MIDDLE);
 static void vpci_remove_virtual_device(struct domain *d,
                                        const struct pci_dev *pdev)
 {
+    ASSERT(pcidevs_locked());
+
     clear_bit(pdev->vpci->guest_sbdf.dev, &d->vpci_dev_assigned_map);
     pdev->vpci->guest_sbdf.sbdf = ~0;
 }
 
+/*
+ * Find the physical device which is mapped to the virtual device
+ * and translate virtual SBDF to the physical one.
+ */
+bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf)
+{
+    const struct pci_dev *pdev;
+    bool found = false;
+
+    pcidevs_lock();
+    for_each_pdev( d, pdev )
+    {
+        if ( pdev->vpci->guest_sbdf.sbdf == sbdf->sbdf )
+        {
+            /* Replace virtual SBDF with the physical one. */
+            *sbdf = pdev->sbdf;
+            found = true;
+            break;
+        }
+    }
+    pcidevs_unlock();
+
+    return found;
+}
+
 /* Notify vPCI that device is assigned to guest. */
 int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
 {
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 9cc7071bc0af..d5765301e442 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -274,6 +274,7 @@ static inline void vpci_cancel_pending(const struct pci_dev *pdev)
 /* Notify vPCI that device is assigned/de-assigned to/from guest. */
 int vpci_assign_device(struct domain *d, struct pci_dev *pdev);
 int vpci_deassign_device(struct domain *d, struct pci_dev *pdev);
+bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf);
 #else
 static inline int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
 {
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 07:28:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 07:28:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222168.384238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mitdw-0001Jb-DK; Fri, 05 Nov 2021 07:28:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222168.384238; Fri, 05 Nov 2021 07:28:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mitdw-0001JU-9w; Fri, 05 Nov 2021 07:28:08 +0000
Received: by outflank-mailman (input) for mailman id 222168;
 Fri, 05 Nov 2021 07:28:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mitdv-0001JO-47
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 07:28:07 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ea78c1f1-3e09-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 08:28:05 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2110.outbound.protection.outlook.com [104.47.17.110])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-34-Bd2OgPCmPQSV_1fUMUlcoQ-1; Fri, 05 Nov 2021 08:28:03 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3119.eurprd04.prod.outlook.com (2603:10a6:802:10::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Fri, 5 Nov
 2021 07:28:01 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 07:28:01 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0038.eurprd06.prod.outlook.com (2603:10a6:203:68::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Fri, 5 Nov 2021 07:28:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea78c1f1-3e09-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636097285;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=PSsgtyfSeNKidGRLgL3AQHv8dEAIVMgEVatnJDLAPpc=;
	b=k60Sq0EyB0S0syhNQ7u6h79COatPzIkuMMPIpyKj434KooG+MgXpmQ1bTBJHwvy6H/YzFz
	Jm/qzR25ArEyaDarLhhcgjAXTyhWLNbFOMuP1701JxD5zYIykS2D7R2k1SNymu96sC00ur
	/vOBkeUVakz8ryTNaf32NTcBMKE7yzY=
X-MC-Unique: Bd2OgPCmPQSV_1fUMUlcoQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=M7RcagulQA9MCwBp8Cbupq6dkdQKJK7Ou9MTbtkWhT0rZgU8MsNaOIgscuRBNR0FIrpW9BDTVdO0fub4mbg6fFH25R8DFUh15dBuagSJln00QasWJqvtk9OnCr2YGDJKiMGMMrVv+Upkd7GrEYtuLW7DM9TnV7XLk/NARGtHcrLve2D/P5oFcdmdzkNkDXr2rPv0WPRd0cewgtoel4UbETmTPB97cn+NFT26/BUETaDMBVBSOyMLKF2kH/Fv67fJZFG/dsKE2dasBlwyJhp3ZrokkXch/yh7rpemFywfvQixS9eZ98z1QMco3WXjRVj4ucnRQUipkHSuld4olnHi+A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8pwnsHS9R6j7xnBOQLsyaMFjzojV1Mrn4R3jAozxkSM=;
 b=SnCTNa0DwF/z2At/nuOECvRwCW07cQm/zkyaKByrGtz+9p7MGBl0hFWAhsPYsKXxY0u9w0JniPjXzkuGZxCnKrz04dg5p+cuj9wyjLOSuWsIEsVJA2M6vYvsFotmrJ/rAcVnAyZS+EdjoZA3Wiqp1hI0QcZXccDu+47Bx/a9zcCp44iTpAa22OpJGTm+16CbAv6YKwl3Ri2LLg0VWBUYp2gCyooOGTL+O78HZD/04fBUqGhfwi0gPkJ/dkSBKpP4770iV5/8z+ir09kMkhvoom6jWxnEIPsgJj09ifvFnOZ+hKh68RXlauzLOFQJSrIZyjTQhGF2IGGr6kYwc25Geg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bcf4fc98-30a6-4b85-a095-ae495bad2b79@suse.com>
Date: Fri, 5 Nov 2021 08:27:58 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, bertrand.marquis@arm.com,
 wei.chen@arm.com, iwj@xenproject.org, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0601CA0038.eurprd06.prod.outlook.com
 (2603:10a6:203:68::24) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: acd4c509-f00c-4c47-a484-08d9a02dcc25
X-MS-TrafficTypeDiagnostic: VI1PR04MB3119:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3119CC5BC8199849C38F3D0BB38E9@VI1PR04MB3119.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:418;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	VfDPpQebb9CtD4G/IqwUlz6ukM+eP3pMBh7FUlyFRtmYmrmQkQd+za2WoYXZE3EPc19AXs1iSaOzb9p2pZYxTwo1nvlJ5I1e9PlQGwFbT+rSrG2l8LoCyfAdp1cV60S5tlvpkKKIvnpJX3DSNsGpT5/NXB1hle9mv5knWu5GDvD999mPXv5uJuyjNwHonsFvsTUmngXLvCY436QBlpG/LHgHl3W5UXwLj7s7cLrnYSb/Kj0DSowZ/TM9Qp/X1iAITWndHXp3YYfy9qpKjRS3BDdhNI4YHzS57oUcmJ0FU+PIkeshY0nFZFCuxGJ6mpEvLt4ZwlxFvNq0t4/NSevtdIEXoEG6oHkBWcSmLO0AALh1VNM2anzofCwDFG1jlCZzJa2Mjhbxy2xpfZlxlM4Yk4VGEkqQ7Wb2n71gVtKIGFWsiOxflsNpPKyTQ42vgW9bqryHOXUzJOpiAqGWvZd3Ruoovgdb3+H3DvDzG4fGzhho4NIvSHV2m11CHMSR3HBK21Thzh1aihqr47c5uaccrrhnDG+rL6D8U0vGh62PH2Oi0swXfxO+JvndHIrICJUaXiWbOi5kDGgFmOag3zHT/pkLcux33DDMR2HtSzAnlg5SDh1D+Tay4xY/8/aVHKBDfdtTEIXrX4uNwlY6etkUAJWD7UTcEnQ2xXcv7TbdHflsxh+OxMm/v+r+p0DC8NbZ81whteiee40gVFKFiWht2UY9GAoboshSZ9S8xXMSVFU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(4326008)(2616005)(86362001)(6486002)(956004)(186003)(31696002)(53546011)(2906002)(5660300002)(83380400001)(36756003)(54906003)(6916009)(8676002)(38100700002)(16576012)(26005)(316002)(66476007)(508600001)(66556008)(66946007)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?i/QApInp4WTlFNCmEFxnb4mFARrfzleBLwMjdAUEqbLOiTWcHBiIEC+/IcCZ?=
 =?us-ascii?Q?wteRBQQUV6pKSjqwZcSM7xAdB/kuDQQxqBSwB9msxhh+n5c/8O+TR2pC9IVB?=
 =?us-ascii?Q?WBMjtl8qsiGMnBAUyzFs9vjZfLmW2HoXn2YMcD7qJY82Rg1fUoRkMszNGydw?=
 =?us-ascii?Q?zlJsDfUeptsWHhbBcDoeDtEqaw5Hb7rzCBqECkpPeFOn400PUc49jKy/zhhw?=
 =?us-ascii?Q?EpFwnOsBqJe4EmvA3/52MitX4oH3b4xgiIT9XQwiVII7aYsFIeXB43DSz0Pk?=
 =?us-ascii?Q?bQS4zlz6MvDmw29JHFVRM0DGAl2ZoiRkftiMNsCs2ximpEmlCCilxtDrqVKj?=
 =?us-ascii?Q?0gmbYq0tXcruO4ajWdfI6yUNG8OQ6ZlUE76ZJk7FjWWmjMI4BNONPPY6QmLG?=
 =?us-ascii?Q?eEKUBTqYxlkX8+wa7spLaOQ9TKTSj7WEvkovYEEohsd/UJEmC3GvbI0c4vZu?=
 =?us-ascii?Q?/x/deTlnLbYFFQ34hUuE84tQWLiG5ZOCwFgi3PKzcdmKBc5VD4CttyTymLeG?=
 =?us-ascii?Q?ENWbs82lwlQ/ve9fhmTZjXHjrbmQF6rGzCZG69ZkdGMyi+15Znn/vcHaqEvH?=
 =?us-ascii?Q?3SX0T/MeRFqq8mlxnsYiKcyZJ0BinIvDW2lWOuvMBTDLYPHj2XdkRIRPoq1w?=
 =?us-ascii?Q?qEJ4xXIRC2r3L19XH2pxvJZQep1d/50QERupC0CZ/gAb2tZiihcOnddvycKI?=
 =?us-ascii?Q?XrgQlHm78DmR/0z6LlplENyJiTrKNny46lcd5tLvKV/mOuQXbBDH3tTnW9+5?=
 =?us-ascii?Q?dvNvjOoixvtdn+WrF7smzNBAgW1840p/jQKnBAq+pU0KUX1DdU3Q1I55bCev?=
 =?us-ascii?Q?p6vHmXuWLvOfXiIiRNcbfg1AKTjWEsdWflJt6QmPyycl02RAOJmmT+Ht+lA4?=
 =?us-ascii?Q?a6StOLK6H6oFUhfAXxpaKsp44XNZDKOcUdGniC/LmEwSMQp3wbFUaHWKDk02?=
 =?us-ascii?Q?RhGMvxQ29fckNNVigX8fxReIIS0wbWT0uUv2lDarAisvfP/mQmx/fZJGlcsC?=
 =?us-ascii?Q?w1vrYUNlG287T65WKUQQn1F+XICoNF5X9LWRkZAWZXIvpX6uAjINJV6fikFv?=
 =?us-ascii?Q?A2obGq13/7QjZo6jH7MVOpGmNR7FreRB4CWxeRisOYcIGyTwn9EBVMKL739Z?=
 =?us-ascii?Q?rkjPTedSWnjkHQ1Ld4ZNPsdb+dB2f/vxOa3vTTSg64r9c4Q2nqzGe8tosDr0?=
 =?us-ascii?Q?ggkO7q9YEuNmz9qalnrEzxdiZ7E56aVkMKVsM3sXuB4Ad+c03uo5vB7E+/7y?=
 =?us-ascii?Q?upUh396jFeG5gZMc8OMK860yXqUbKJDnWizLUcvvexqTzPGMVtctxPMhhW8T?=
 =?us-ascii?Q?DokKo6eulswJ30qyIrdEhbFycF3CZoX6FUwM7uD1cwJdSowAGzwrw7z8nyyZ?=
 =?us-ascii?Q?s0Uep8NATWHFkStrteX1ss/WDNzIXZfWWGQUeYWhjkiffzkhQXBBdzw5/3Ry?=
 =?us-ascii?Q?oLwz1ZX7aPDSDNgQhBqu6lZ93IL9BND3gVt9s/KorVHMHZR1UX6wg9vZgr1R?=
 =?us-ascii?Q?hg0SaBx8RMD4aAVbkwRMgaGvbxY61SkdnSgHCLY7+mhjvpmYDHsw8Oih36dT?=
 =?us-ascii?Q?g9loaKlmJLKK0PsgTUz+QYi3BYL1RsEKFqvFtOLQ+YNrvdF0qLyr5SY//x2j?=
 =?us-ascii?Q?+KjFzSbYxzK9e7Xlp0speXg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: acd4c509-f00c-4c47-a484-08d9a02dcc25
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 07:28:01.0116
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZqsWpisAKb3HbDbcHgocf+Ykv19g/Eep4hIl8uEx0c0Lovwt1Iqb5aRRGoQaJpbCoKU7uQLXJLbOXOUPsoeRUw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3119

On 04.11.2021 21:56, Stefano Stabellini wrote:
> On Thu, 4 Nov 2021, Jan Beulich wrote:
>> On 04.11.2021 15:12, Luca Fancellu wrote:
>>> --- a/xen/common/efi/boot.c
>>> +++ b/xen/common/efi/boot.c
>>> @@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(EF=
I_LOADED_IMAGE *loaded_image,
>>>      CHAR16 *pathend, *ptr;
>>>      EFI_STATUS ret;
>>> =20
>>> +    /*
>>> +     * Grub2 running on top of EDK2 has been observed to supply a NULL
>>> +     * DeviceHandle. We can't use that to gain access to the filesyste=
m.
>>> +     * However the system can still boot if it doesn=E2=80=99t require=
 access to the
>>> +     * filesystem.
>>> +     */
>>> +    if ( !loaded_image->DeviceHandle )
>>> +        return NULL;
>>> +
>>>      do {
>>>          EFI_FILE_IO_INTERFACE *fio;
>>> =20
>>> @@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir_ha=
ndle, CHAR16 *name,
>>>      EFI_STATUS ret;
>>>      const CHAR16 *what =3D NULL;
>>> =20
>>> +    if ( !dir_handle )
>>> +        blexit(L"Error: No access to the filesystem");
>>>      if ( !name )
>>>          PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
>>>      ret =3D dir_handle->Open(dir_handle, &FileHandle, name,
>>> @@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TAB=
LE *SystemTable)
>>>              EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
>>>                                                         &file_name);
>>> =20
>>> -            handle->Close(handle);
>>> -            *argv =3D file_name;
>>> +            if ( !handle )
>>> +            {
>>> +                PrintErr(L"Error retrieving image name: no filesystem =
access."
>>> +                         L" Setting default to xen.efi");
>>> +                PrintErr(newline);
>>> +                *argv =3D L"xen.efi";
>>> +            }
>>> +            else
>>> +            {
>>> +                handle->Close(handle);
>>> +                *argv =3D file_name;
>>> +            }
>>>          }
>>> =20
>>>          name.s =3D get_value(&cfg, section.s, "options");
>>> @@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABL=
E *SystemTable)
>>>      /* Get the number of boot modules specified on the DT or an error =
(<0) */
>>>      dt_modules_found =3D efi_check_dt_boot(dir_handle);
>>> =20
>>> -    dir_handle->Close(dir_handle);
>>> +    if ( dir_handle )
>>> +        dir_handle->Close(dir_handle);
>>> =20
>>>      if ( dt_modules_found < 0 )
>>>          /* efi_check_dt_boot throws some error */
>>>
>>
>> I'm sorry, but I think we need to take a step back here and revisit
>> the earlier change. If that hadn't moved obtaining dir_handle out by
>> one level of scope, nothing bad would have happened to the case that
>> you're now trying to fix, I understand? So perhaps that part wants
>> undoing, with efi_check_dt_boot() instead getting passed loaded_image.
>> That way, down the call tree the needed handle can be obtained via
>> another call to get_parent_handle(), and quite likely in the scenario
>> you're trying to fix here execution wouldn't even make it there. This
>> then wouldn't be much different to the image name retrieval calling
>> get_parent_handle() a 2nd time, rather than trying to re-use
>> dir_handle.
>>
>> Net effect being that I think get_parent_handle() would then again
>> only be called when the returned handle is actually needed, and hence
>> when failure of HandleProtocol() (for DeviceHandle being NULL just
>> like for any other reason) is indeed an error that needs reporting.
>=20
> In my opinion the current version is good enough. Regardless, I looked
> at your suggestion into details. As it took me some time to understand
> it, I thought I would share the code changes that I think correspond to
> what you wrote. Does everything check out?

Well, first of all I understand that's an incremental change on top of
Luca's, not a replacement. And then there are a couple of things to be
done slightly differently (imo), to match the present model:

> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -8,6 +8,8 @@
>  #include <asm/setup.h>
>  #include <asm/smp.h>
> =20
> +extern EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded=
_image,
> +                                                CHAR16 **leaf);

This should remain static, but will need forward-declaring (for the
time being, I have a post-4.16 patch eliminating a fair part of
those forward decls).

> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(EFI_F=
ILE_HANDLE dir_handle,
>   * dom0 and domU guests to be loaded.
>   * Returns the number of multiboot modules found or a negative number fo=
r error.
>   */
> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>  {
>      int chosen, node, addr_len, size_len;
>      unsigned int i =3D 0, modules_found =3D 0;
> +    EFI_FILE_HANDLE dir_handle;
> +    CHAR16 *file_name;
> +
> +    dir_handle =3D get_parent_handle(loaded_image, &file_name);
> =20
>      /* Check for the chosen node in the current DTB */
>      chosen =3D setup_chosen_node(fdt, &addr_len, &size_len);
> @@ -895,6 +901,8 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE d=
ir_handle)
>          efi_bs->FreePool(modules[i].name);
>      }
> =20
> +    dir_handle->Close(dir_handle);
> +
>      return modules_found;
>  }

Imo obtaining of the handle wants pushing further down the call tree.
Placing it here will, afaict, still trip the problem Luca is trying
to resolve. Plus of course the handle wants closing also on error
paths (if any in the function this really wants to be put into).

> @@ -1236,9 +1236,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE =
*SystemTable)
> =20
>      efi_arch_relocate_image(0);
> =20
> -    /* Get the file system interface. */
> -    dir_handle =3D get_parent_handle(loaded_image, &file_name);
> -
>      if ( use_cfg_file )
>      {
>          UINTN depth, cols, rows, size;
> @@ -1251,6 +1248,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE =
*SystemTable)
> =20
>          gop =3D efi_get_gop();
> =20
> +        /* Get the file system interface. */
> +        dir_handle =3D get_parent_handle(loaded_image, &file_name);

Along with this the declaration of dir_handle also wants to move back
into the more narrow scope.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 07:32:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 07:32:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222174.384248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mithy-0002ky-2H; Fri, 05 Nov 2021 07:32:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222174.384248; Fri, 05 Nov 2021 07:32:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mithx-0002kr-VY; Fri, 05 Nov 2021 07:32:17 +0000
Received: by outflank-mailman (input) for mailman id 222174;
 Fri, 05 Nov 2021 07:32:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mithw-0002kl-9Z
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 07:32:16 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f629649-3e0a-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 08:32:15 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2055.outbound.protection.outlook.com [104.47.4.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-2-aBeZWAxmNI-5vKzVF9_pWA-1;
 Fri, 05 Nov 2021 08:32:14 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2607.eurprd04.prod.outlook.com (2603:10a6:800:58::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Fri, 5 Nov
 2021 07:32:13 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 07:32:12 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR0202CA0038.eurprd02.prod.outlook.com (2603:10a6:20b:3a::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 07:32:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f629649-3e0a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636097534;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Tjt/kvsamUUxJ9U6RiX1M+cP7qZUh0NZGoymS27dUV4=;
	b=IO7DdtbPgCleWn8zxJq49cpWQB94xciunBmj/aRjQPPnikR968P961OS+W4kdU9fwSdoGC
	QM2OVTo+99AnwEAW7Vo/m+YL05Yv8iSyX2W4faSYb6k+p4fgvImsOJSzI41y1TQS6fjvS3
	ksOkTNpFIgsH5VyT0pULrfKbcJmFq3g=
X-MC-Unique: aBeZWAxmNI-5vKzVF9_pWA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FD4zDFqMadCdWAIB+mBJ3IfUrYJMv9Yi1i2OhfheMZEEiKW5rVfN3SP59gWS/5jBdCjNrtSnCiZq9hKKKK2hpALlgQayFqDbSeeFmf0Hf8DZfJ3qThyFMsDwGvhtkLBCEqjA/YANm4ySiTH5K+WKhTf8qlT4eMQRbTyBq2mtujy90IzfLWBD1cmC7K87jx8BNOvu29sCPYREkKME5pkVFPeTK7tPUGE04mJLlKRQGJfHEUxjEsJmXN5taj9+BdF789lVCRB4p+pU1DzXwa44X8bQFju9SWs0HieEQzpxMUaRx3PM+CCtPxX9peKsVXiolnVF7ghvgR40GX8Phz5IHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R0meqmD4C+AzQd/rnYomwCnSpg9TSN1xLkWIR5Cssjk=;
 b=C8d0vuLgAGXsDBsKK8yee6Y7BDIGdkhznYLlCVkK1BE98fdO8I7exPt4t4Uus3rbBeEQwO67SRrv37aPYy0n3Kt/f+l5ymEvXP/tSkbPCJQ3CZyEkwTWRJHEFxYPoPmQ2SY4ros/xp6Afw2x0vmnoDZpMdmgsuNNj2eIcwjuiqaORp+o+8mlNRtZ4XyoptcE/rImZfEmkU9xFzfzK6TGN7OXwvBW6GYlguSwDif4sYZUIKGjLMScxe352m7Tx3Z4WjeqDgMfEcv6tRfBEe/NV4lsdJoFVDkQaBRTmF0656aFaFSyxs3JjCCM2RlK6H5590JaFKwYzBQi35hPlXynCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <abff150a-b84a-d6b5-c8ea-dc495ba3cfeb@suse.com>
Date: Fri, 5 Nov 2021 08:32:10 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Luca Fancellu <luca.fancellu@arm.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR0202CA0038.eurprd02.prod.outlook.com
 (2603:10a6:20b:3a::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a139e500-dcf9-4f37-44d9-08d9a02e6252
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2607:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB260785CF6340454B19F81531B38E9@VI1PR0401MB2607.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:353;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	dYSVfPjhqzQ8wM+inK9anNbW1Mkbar/1ZGVFrGjJqTamLi87vTCwnRYafOEDzts5qVue6Qq+BsYGre6I7g4P4HCO+3SAGuehJPC6NypZt29hm8V7Dys2ow8tAWmhsYDO5oA4eGiyh16Mx9w9MSc84AIRg9bnI12Q0YBmvTe10fMFfa/2fKyElJEUmNlznrK+JQ6U5UfQdQ4z2Vo1UEgMxkZ1y+kuQBckCKxkguNciXFB4Dli/LCh1WXbqvgkKhOPPjz2KJSOXDd/6tjqtr0bzCB4MXrOkVau+agGVTGyh2HxJy6SkOT5TWJxoM5HYNLlzkG9ueQSkmjaeQWLJMwH/zwlcqXAGiHHg34m0FjDUPptqv108GDy99PcMS+7cIlXDl9m6dW5+6xJkH1BMVLESriBGhOAO9eJzZOCjJg9desDdDck/Z3qNM5gN0sJP/MO7wLMqImo5IW/T0Kp0LzywjkWFzck7HsAZrAkaiTQABwiORhamUFIz1hT0rTVvnbTR+LkFJUF8VQOKUnyCtY/IWKNQCOtmo/EideHjFVbhInPYoJMGIPgomgwJy2G+IbXEgFvGAFNDPm1KHFp2A7Dl5phYWrtfBD6j3vQzIxGu1V1gsYU/h5xl4VabQdcJat5sNYkuL4TpowlKgU2bJu+UT33ssKCmEwQfEm8Q1q0181hW3Aa3+W3AysHBezins1fEjw1xv991oYHWjOtP//ILzTCeTTIxxn33p/ttyJXRCM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(66556008)(54906003)(956004)(5660300002)(2616005)(31696002)(86362001)(66476007)(16576012)(4326008)(508600001)(66946007)(36756003)(316002)(186003)(8676002)(2906002)(83380400001)(26005)(8936002)(31686004)(38100700002)(6486002)(53546011)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xWjlae5Gvhnm2GBtDmFcMjO22BKxNtJbTGkXUZmzLw48r5LmA+ZbxI2EtSRB?=
 =?us-ascii?Q?wBJop+Ycaxj8iJIDTLGe4MTG1xNvRZCjW8IgQzA0/ZrJSeOoU7RrnKsnP27n?=
 =?us-ascii?Q?+ziMugnhAWDC0Y67BaSrHDhv9GDHwV0B2YJ0zgBv6aanFT7Lq7FeCmHigcBk?=
 =?us-ascii?Q?u7VuUXEqZ/YZfIQs7yNVxqWiy/H/EQRtWSr2hrRulu3uIKX9dfUqvegd/8sv?=
 =?us-ascii?Q?gCyJIr1A7k12fy0guZC89rHosBguZrrjplw5dJIcTGP8QQjlVzXu+mBpa5+j?=
 =?us-ascii?Q?jp01FUOEpGgrUekkHdiOD55KpR1R9xFp/SlL+HWgqsD7Flu/NUW7ac0rojD6?=
 =?us-ascii?Q?p5SWJHvWJFA6dmufVrK31xLX06HebPcM5sQky7gI/K1CSX+u5ILit1S4H51m?=
 =?us-ascii?Q?MSW6xCGHBcDyDVJfD+FswlupVolz8VrHnYGPF5zl4IxU5RbvQGCbsLsAiVa+?=
 =?us-ascii?Q?F71venYUTqSj4Wg007E50lsHEN1UZ3heZPW8mEjyd6fMzpFhN1YvGapW70L3?=
 =?us-ascii?Q?EMw27Lkg0MwzYwIV7NHsZlrTShbrpqYSGv0V6/YYxkPdbP7QJCIlWkp/JYqj?=
 =?us-ascii?Q?n7yZIWNO+LI2dPAfOKMIlJrdwiKNTFjh0IOq5Chc7pBgtydmvP2kD+A9wdW+?=
 =?us-ascii?Q?1w+ohPJfQCmGkaRrCN057VL1dZ46PF5iAbFEQIEtZahk0cfcVXdC+IUzOQnS?=
 =?us-ascii?Q?tuAkR88/9TsdXrLo/qpjlBAwr/3iPzVfEwGLh5WyOmUPtXzeRvV/2sY369Sl?=
 =?us-ascii?Q?37hsaRCVN2wZ+AfNJt4ZNFqKPZ8WIQQOz+jp1liKa1+cM1lAELh8Fgnka+2i?=
 =?us-ascii?Q?dVcD1YY+J8l5drnSOWH/T+OtPkKnyFNstbuzf46c/Q43IPoaOIPxLM4K32Xq?=
 =?us-ascii?Q?cfo9uccjMyNZ7bfrieGJvnfzbLzwtEUb1hgju+lzD1bLj4geshbORSjwBIBM?=
 =?us-ascii?Q?zqjB/B4e5moDyWOxIxvvWbz3B7a5wV/yz+me1AQTZh/LNWtyqpW+Ipibr51Z?=
 =?us-ascii?Q?8nSbqQ8PwAtxpWN5yqdtWAk3lh81o1TIs5e+ywnImzZnfsMo50AY6PVS8tlb?=
 =?us-ascii?Q?MvTYISIP1FAIUvDtZjccGHSV6bZ2QOwh+I0xcRVd5pnG7ZUJlu8XSHAGZbyj?=
 =?us-ascii?Q?uxSlQ6PgqwGFi4HNfQDJorIwnYdZmWMuh8wywEcSpCz6xlg/Fy9JLoRglxGO?=
 =?us-ascii?Q?uzZISY0kxKqQEv9W4pY1y3MdnYlwJLV+n1gFaZ+kTt4ZPjZVAbWj4hyb8Ftq?=
 =?us-ascii?Q?oRSGvdkWOnnghOSbDHNfZTQbZckKXKN01HLFHYJWSuWpD4eCldZcH7m2DODJ?=
 =?us-ascii?Q?eojKAlxGQ78yM2oCVhf16pHvOZdENr4HTi82AEEd+Go2E986xHGHJyN2UEYK?=
 =?us-ascii?Q?r4dMWYfP3JMSKv0Sx8QaphWe7eo11Q3LEtNRjudNE588crNvPekMuAISmzim?=
 =?us-ascii?Q?3pa1USxT18+cwLv9VGQ78syABvAnfeIXZEx6V26b2+j4H1jTr2G4K0oeJ2r5?=
 =?us-ascii?Q?HrSM2isuigmpqUhIHpYpp7Z0VoH9urkRuqS8M+lK7NioifTmdfAW5bvfOFGF?=
 =?us-ascii?Q?aKawPLu38ogGi9WiXVpZLOOLsVHrE1QiK6poJYs8gKE7KeQNEIoLniPQt6fz?=
 =?us-ascii?Q?dvA9WIUD5MkmFvOsKMlSbtc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a139e500-dcf9-4f37-44d9-08d9a02e6252
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 07:32:12.9493
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: e84olPsHHSUW0T2Kkl3kti++k5ibNThQMfu7dKMxLApCZa3IENZET00vqG5FkbRJ67wu0cxLhy8gnUrYpnxjxQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2607

On 04.11.2021 22:43, Luca Fancellu wrote:
>=20
>=20
>> On 4 Nov 2021, at 21:35, Stefano Stabellini <sstabellini@kernel.org> wro=
te:
>>
>> On Thu, 4 Nov 2021, Luca Fancellu wrote:
>>>> On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.org> w=
rote:
>>>>
>>>> On Thu, 4 Nov 2021, Jan Beulich wrote:
>>>>> On 04.11.2021 15:12, Luca Fancellu wrote:
>>>>>> --- a/xen/common/efi/boot.c
>>>>>> +++ b/xen/common/efi/boot.c
>>>>>> @@ -449,6 +449,15 @@ static EFI_FILE_HANDLE __init get_parent_handle=
(EFI_LOADED_IMAGE *loaded_image,
>>>>>>    CHAR16 *pathend, *ptr;
>>>>>>    EFI_STATUS ret;
>>>>>>
>>>>>> +    /*
>>>>>> +     * Grub2 running on top of EDK2 has been observed to supply a N=
ULL
>>>>>> +     * DeviceHandle. We can't use that to gain access to the filesy=
stem.
>>>>>> +     * However the system can still boot if it doesn=E2=80=99t requ=
ire access to the
>>>>>> +     * filesystem.
>>>>>> +     */
>>>>>> +    if ( !loaded_image->DeviceHandle )
>>>>>> +        return NULL;
>>>>>> +
>>>>>>    do {
>>>>>>        EFI_FILE_IO_INTERFACE *fio;
>>>>>>
>>>>>> @@ -581,6 +590,8 @@ static bool __init read_file(EFI_FILE_HANDLE dir=
_handle, CHAR16 *name,
>>>>>>    EFI_STATUS ret;
>>>>>>    const CHAR16 *what =3D NULL;
>>>>>>
>>>>>> +    if ( !dir_handle )
>>>>>> +        blexit(L"Error: No access to the filesystem");
>>>>>>    if ( !name )
>>>>>>        PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
>>>>>>    ret =3D dir_handle->Open(dir_handle, &FileHandle, name,
>>>>>> @@ -1333,8 +1344,18 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_=
TABLE *SystemTable)
>>>>>>            EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image=
,
>>>>>>                                                       &file_name);
>>>>>>
>>>>>> -            handle->Close(handle);
>>>>>> -            *argv =3D file_name;
>>>>>> +            if ( !handle )
>>>>>> +            {
>>>>>> +                PrintErr(L"Error retrieving image name: no filesyst=
em access."
>>>>>> +                         L" Setting default to xen.efi");
>>>>>> +                PrintErr(newline);
>>>>>> +                *argv =3D L"xen.efi";
>>>>>> +            }
>>>>>> +            else
>>>>>> +            {
>>>>>> +                handle->Close(handle);
>>>>>> +                *argv =3D file_name;
>>>>>> +            }
>>>>>>        }
>>>>>>
>>>>>>        name.s =3D get_value(&cfg, section.s, "options");
>>>>>> @@ -1369,7 +1390,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_T=
ABLE *SystemTable)
>>>>>>    /* Get the number of boot modules specified on the DT or an error=
 (<0) */
>>>>>>    dt_modules_found =3D efi_check_dt_boot(dir_handle);
>>>>>>
>>>>>> -    dir_handle->Close(dir_handle);
>>>>>> +    if ( dir_handle )
>>>>>> +        dir_handle->Close(dir_handle);
>>>>>>
>>>>>>    if ( dt_modules_found < 0 )
>>>>>>        /* efi_check_dt_boot throws some error */
>>>>>>
>>>>>
>>>>> I'm sorry, but I think we need to take a step back here and revisit
>>>>> the earlier change. If that hadn't moved obtaining dir_handle out by
>>>>> one level of scope, nothing bad would have happened to the case that
>>>>> you're now trying to fix, I understand? So perhaps that part wants
>>>>> undoing, with efi_check_dt_boot() instead getting passed loaded_image=
.
>>>>> That way, down the call tree the needed handle can be obtained via
>>>>> another call to get_parent_handle(), and quite likely in the scenario
>>>>> you're trying to fix here execution wouldn't even make it there. This
>>>>> then wouldn't be much different to the image name retrieval calling
>>>>> get_parent_handle() a 2nd time, rather than trying to re-use
>>>>> dir_handle.
>>>>>
>>>>> Net effect being that I think get_parent_handle() would then again
>>>>> only be called when the returned handle is actually needed, and hence
>>>>> when failure of HandleProtocol() (for DeviceHandle being NULL just
>>>>> like for any other reason) is indeed an error that needs reporting.
>>>>
>>>> In my opinion the current version is good enough. Regardless, I looked
>>>> at your suggestion into details. As it took me some time to understand
>>>> it, I thought I would share the code changes that I think correspond t=
o
>>>> what you wrote. Does everything check out?
>>>>
>>>> If so, I think it looks fine, maybe a bit better than the current
>>>> version. I'll leave that to you and Luca.
>>>>
>>>>
>>>> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
>>>> index c3ae9751ab..9dcd8547cd 100644
>>>> --- a/xen/arch/arm/efi/efi-boot.h
>>>> +++ b/xen/arch/arm/efi/efi-boot.h
>>>> @@ -8,6 +8,8 @@
>>>> #include <asm/setup.h>
>>>> #include <asm/smp.h>
>>>>
>>>> +extern EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loa=
ded_image,
>>>> +                                                CHAR16 **leaf);
>>>> typedef struct {
>>>>    char *name;
>>>>    unsigned int name_len;
>>>> @@ -54,7 +56,7 @@ static int handle_module_node(EFI_FILE_HANDLE dir_ha=
ndle,
>>>>                              bool is_domu_module);
>>>> static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
>>>>                                       int domain_node);
>>>> -static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
>>>> +static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
>>>>
>>>> #define DEVICE_TREE_GUID \
>>>> {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa=
, 0xe0}}
>>>> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(EF=
I_FILE_HANDLE dir_handle,
>>>> * dom0 and domU guests to be loaded.
>>>> * Returns the number of multiboot modules found or a negative number f=
or error.
>>>> */
>>>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>>>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>>>> {
>>>>    int chosen, node, addr_len, size_len;
>>>>    unsigned int i =3D 0, modules_found =3D 0;
>>>> +    EFI_FILE_HANDLE dir_handle;
>>>> +    CHAR16 *file_name;
>>>> +
>>>> +    dir_handle =3D get_parent_handle(loaded_image, &file_name);
>>>
>>> We can=E2=80=99t use get_parent_handle here because we will end up with=
 the same problem,
>>> we would need to use the filesystem if and only if we need to use it,=20
>>
>> Understood, but it would work the same way as this version of the patch:
>> if we end up calling read_file with dir_handle =3D=3D NULL, then read_fi=
le
>> would do:
>>
>>  blexit(L"Error: No access to the filesystem");
>>
>> If we don't end up calling read_file, then everything works even if
>> dir_handle =3D=3D NULL. Right?
>=20
> Oh yes sorry my bad Stefano! Having this version of the patch, it will wo=
rk.
>=20
> My understanding was instead that the Jan suggestion is to revert the pla=
ce
> of call of get_parent_handle (like in your code diff), but also to remove=
 the
> changes to get_parent_handle and read_file.

This is indeed a correct understanding of yours. (Hence why an incremental
change on top of yours wasn't the most expressive way to outline Stefano's
thoughts.)

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 07:35:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 07:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222181.384260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mitkl-0003Ol-HK; Fri, 05 Nov 2021 07:35:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222181.384260; Fri, 05 Nov 2021 07:35:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mitkl-0003Oe-DP; Fri, 05 Nov 2021 07:35:11 +0000
Received: by outflank-mailman (input) for mailman id 222181;
 Fri, 05 Nov 2021 07:35:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mitkk-0003Ng-1j
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 07:35:10 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e70817db-3e0a-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 08:35:09 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2176.outbound.protection.outlook.com [104.47.17.176])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-38--fVoVTKQOwSCpn4HLu2KkA-1; Fri, 05 Nov 2021 08:35:07 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7038.eurprd04.prod.outlook.com (2603:10a6:800:12d::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Fri, 5 Nov
 2021 07:35:06 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 07:35:06 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P192CA0068.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:82::45) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 07:35:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e70817db-3e0a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636097708;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2Yt3jlLhJfrajvYxYdkR16ODd5gOaEl+vqdRBKWaiDU=;
	b=if3D/DvacE/9pWxa/7L9DAyMfWtSZ9Z6fF7XtTuCAiLp7CA/tdJQ0PP7fRzb+WpOmC40Mb
	O869HcmIwgxQcyFiRNVO0WTzd6QR5p+1h6UzFNwG/uAPRZy1la/Ls0LRKymwlq7+2m6wjP
	G7/H/iDmXBC9Sl14E27DGpwlHaSv9wY=
X-MC-Unique: -fVoVTKQOwSCpn4HLu2KkA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NIiIWPUwXAx2qyDeTt3eTwun1jwZyZ1EqA81Rz300EJW3gtdQWqLfWgcuwvoRYNh9k2+OuOiGPjz7edYst2hqEF4foA+uOS3+9CwWGug5CoO+OQGePIGM98/h1UmWfrpgkXUu6LqW6y7vow+vUGKr3cfFFmM46to86WYEQ5jdcxmHTQ2YP+BJX5gbi7YVGD8vaFeBZFTjbms4+jdnDdTc6v4KkizjYqFbCIRYukSNr4gqQnhQkxNmpS0I3BvaorE8AXYzyB29SQZU6xCvZ5jcfu9qNveyu37LGJu2KZu61Oq//zsGmbeYvWzVWnTZ9eBDpLNLJQ7yeMz76O+1IeZ6w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W/GzU/QGWQHeMxRn5F2BXlpmwnLwWlVaERfJKAxfqYk=;
 b=WDtCnVHfwNnuTf7arEMrrbyY2AAPdnpIN9n2+onroXhS12wcLYRRknRgpg0nbDAsh7oUogIxFn4E4QYRSJJk0c0SGEH0//YzAPyVsSEwDRIYB3cIIux8VOBvZCfwjd+b++FJB+ebB/nfV6thndGuCtcC7zgNjPvc9l/HfVNdG65zSb3u6KQ+zsrwOFvso0Yzy0DxIWGWsBhFgT5AvkAX/xrzFV4ISOYVf/3/0HE3o6zIdTy7A2osMfMJl7WxXTuNm9oiu96O/lXC7Uj/eB9sP1/a1NU2ozFvGdh9MHTuIEVePTglqtaUAuqohYh/2OKPm+05DglE2qs/4VymJh3mVA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
Date: Fri, 5 Nov 2021 08:35:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P192CA0068.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:209:82::45) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 401773f1-dcf7-4b1b-7483-08d9a02ec9da
X-MS-TrafficTypeDiagnostic: VI1PR04MB7038:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB70380B5EDC83E219AA075ADFB38E9@VI1PR04MB7038.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Dr/54y9p95mt6957k0xUT5j6HFafDL2cWWTTO+/hGASsRMcnjSdx/xKCcBep+y5XSyvqCinJ5s4HkzjwWLbGGddfG0I8RZZ8Yf20pmTmmPakb+o9Xgah0k47ZJIFrIKLJlComZsQ3yNXSwuXPq6FQk/tuUyRt7DYjrFwPk9A7ZI3qeLGTAUINUUbYL6c0Xv2S+MxuClKd94LFWJYMgXrgX90IJWLj0orJI6jB320Ei8W2c4rOrYGW9Ga0Y3jfqkN9opsLvN/iOQnkdI67tfJpP6ehPMev9+hthetVBH2fxOr2sSatZkqvN0J9RQAdYOatovvxHpRJi+QRP2lxcDjdd+CB6dn9+sht93XMJmJHD0qrn5Dxp3BiI/Yg9/JQpzDjp1u3C+ItVVDyLLQdROPxRHwjWHaMbGXDvEXaXgtitdqJtg3P/MstWjMXWWwBCjcEAQXCkfKpw4j86cVH8IFJRMpasYNNfkEPhIQQxc04d3/MElMuATWrYmQ49GmfnXAniPIyj3Yx6HlTcIwGNzZQy2QnkiAcUz053gX+1SJ/wdAzXcf5AfOLVtBl8y5pHsQvGJeccemVobX9HmfFJiUxCBywzZZBaCxbsWO22MToRRoPdwec0SLC8sdV1uDDzd3dc8Eekwr30YpTgM5As7toVQtIH1lIr8myZlAIkbKBk9YzWPsZg2e16+XQcyq5iFHXgLlUhcJmOw7Wl13l6XRtbNUZbF8MN0t3Qoq7erjizTZLkGB4YEVCKBFkRSazL3Z
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(83380400001)(66556008)(86362001)(31696002)(31686004)(66476007)(316002)(16576012)(2906002)(66946007)(4326008)(2616005)(38100700002)(5660300002)(8676002)(186003)(6486002)(54906003)(26005)(508600001)(36756003)(8936002)(53546011)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?abFBlyAKPCcfCBKbX4gJDyj48f3Phh1xmY1taJMITxxNrIYG42b5H0HHazF1?=
 =?us-ascii?Q?KROppGBX6djZaQzVRR/LaNvvr5jaVGX9pWly5+pws71aY0AjReG4kND4r0q4?=
 =?us-ascii?Q?Hd1Bqgihtx4Cqz5C/sVeOZLTOiEN0Ow0vkn38PuZ2N8dZVMweNSuB8VJS+lf?=
 =?us-ascii?Q?0dMm1gU5WbgLW34n/he0JezDyNlYk3H6m16B1JYxNB98+q7dK5AWAU92Ft9+?=
 =?us-ascii?Q?jd1IgSUn6BGIx9Ec6n/qsjH3YxjeEvHI/7y5YiMXCZ+2p6fT23QJBDvLtN0n?=
 =?us-ascii?Q?omyTUDUl/syyYOJHwUUvDnRz5Dkjz1oX8Rbcvo9pWINbO0Cxg4WyCf2zV3Hv?=
 =?us-ascii?Q?E4JAe4sLX1Zy7hCfLnIRBSsjB5/SXvo9mr5LTRJ+0PlyazsAWzbBwaqna11i?=
 =?us-ascii?Q?//0/sot4lXqZlbeEOXiE7rM2rU71jUQc13U7gixbB9n34BzoiyyCoD3CUD0h?=
 =?us-ascii?Q?uuJdsO8yQoe/NsoFPNarXvFlpts5Jk+gPWtheh+0PyFyDVj1QGXuvzUK9510?=
 =?us-ascii?Q?VI7JVqnnVGnP/xloatVdfqwAAJtkxGIBwkLCa12LAtiuyAspUilGPxX5hYux?=
 =?us-ascii?Q?cG/gGKhkzqNtt6stiJwSOor7r6T8C+ekEcQNDjnuTAlJgXILyyLc1r1k1cS6?=
 =?us-ascii?Q?zrD8ZBqTpqDX/KmLFDNlI4ZL38Xk/DoG/tod67lmEJhSqCbIZWfE+wPXwNDS?=
 =?us-ascii?Q?JZTnUopx+hDtBeA/i+Lx1hZD1jq99U/JvkZnIKPPxe7R+t/8/g7jLt6GPJU0?=
 =?us-ascii?Q?8tUotRKtOFTYbmuki4rIpeUTB2UyrvXJ8j41H42GWKVxn6/aLUIGEkna6B08?=
 =?us-ascii?Q?pKr8u9u8SJV1wk8sgjtW0MWESsQrGA2fiw+/jkpp01Gk86zp4gKDJ2Z/WqhA?=
 =?us-ascii?Q?hnDsEg1H+kI95MlaeKyPsFbHDELK+zxakAz96WyCNv0LtTkSaZgyYNt5TTv9?=
 =?us-ascii?Q?dtOHo1dMbZ9fRB8bB/t5YBy6UiwrIt7i6pZn/nLEUfuviU3/p6qkCkcjMS6R?=
 =?us-ascii?Q?jHNsosmzim4E5zzCq/7Hx9FDc36xxVc1mmbIsvONHSD3f8WHyDJlmA4fEfNn?=
 =?us-ascii?Q?Sf/xQnv7ieD2I+rJ76SfEFki4w3sgjG3xAooiHt7/c6kRVen4f24Rak6EdxM?=
 =?us-ascii?Q?qeGRJGS+eww5hfDZz3cm7dmoR7qowXWln8dXRXl2SiE+FS6Zt1aQZ3XlcR2A?=
 =?us-ascii?Q?b4jICyEg0wdhcLV4yec6rEtKq/gopZSb4kARcoepsfv7AwiBVejo+9B5K/bF?=
 =?us-ascii?Q?smt9l2A7loftrCzEeHGez9QbY1s6reHS84rinOGap3IBty3+Fd+ty4iJlP1z?=
 =?us-ascii?Q?vaaetxPhv1dMrMcz6eYrgbz4ATfvg4LfP28dNSS0x6hXgvHkGl0HfoApoY4V?=
 =?us-ascii?Q?rrCaV4Zb2CFAu2Mnv+gI5yRReb75GQAvd+PK38Hyt9RotF0VbnJrTuqeEKi/?=
 =?us-ascii?Q?UCM+JNRUMuOC7YL47oKf7UBkAoZvlFix7I4EfIhV1AszD2j67QcksxG1OEPd?=
 =?us-ascii?Q?PrD60v6T6JKBZL6pCWndXyXtmfn40alAAmfpcxcZ31y5aeMMe1K6GGg7XTNm?=
 =?us-ascii?Q?+1QFZircoq6t5s1k8MQfIcb1XUx7wr1H/E08+wG8kVCge6voNlvIDBzkUv/d?=
 =?us-ascii?Q?VsNFr/eDNLeZ2w6p+uZSDoQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 401773f1-dcf7-4b1b-7483-08d9a02ec9da
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 07:35:06.6372
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XTD4TYYoksaywaN9P1KSXpr8ibGJPkQWFEXCAhUnB7e2tkJH6jQ7P2JZYGlocscTGJkPNTMJelrtfMQaAO6xDQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7038

On 04.11.2021 22:50, Stefano Stabellini wrote:
> On Thu, 4 Nov 2021, Luca Fancellu wrote:
>>> On 4 Nov 2021, at 21:35, Stefano Stabellini <sstabellini@kernel.org> wr=
ote:
>>> On Thu, 4 Nov 2021, Luca Fancellu wrote:
>>>>> On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.org> =
wrote:
>>>>> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(E=
FI_FILE_HANDLE dir_handle,
>>>>> * dom0 and domU guests to be loaded.
>>>>> * Returns the number of multiboot modules found or a negative number =
for error.
>>>>> */
>>>>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>>>>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>>>>> {
>>>>>    int chosen, node, addr_len, size_len;
>>>>>    unsigned int i =3D 0, modules_found =3D 0;
>>>>> +    EFI_FILE_HANDLE dir_handle;
>>>>> +    CHAR16 *file_name;
>>>>> +
>>>>> +    dir_handle =3D get_parent_handle(loaded_image, &file_name);
>>>>
>>>> We can=E2=80=99t use get_parent_handle here because we will end up wit=
h the same problem,
>>>> we would need to use the filesystem if and only if we need to use it,=
=20
>>>
>>> Understood, but it would work the same way as this version of the patch=
:
>>> if we end up calling read_file with dir_handle =3D=3D NULL, then read_f=
ile
>>> would do:
>>>
>>>  blexit(L"Error: No access to the filesystem");
>>>
>>> If we don't end up calling read_file, then everything works even if
>>> dir_handle =3D=3D NULL. Right?
>>
>> Oh yes sorry my bad Stefano! Having this version of the patch, it will w=
ork.
>>
>> My understanding was instead that the Jan suggestion is to revert the pl=
ace
>> of call of get_parent_handle (like in your code diff), but also to remov=
e the
>> changes to get_parent_handle and read_file.
>> I guess Jan will specify his preference, but if he meant the last one, t=
hen
>> the only way I see...
>=20
> I think we should keep the changes to get_parent_handle and read_file,
> otherwise it will make it awkward, and those changes are good in their
> own right anyway.

As a maintainer of this code I'm afraid I have to say that I disagree.
These changes were actually part of the reason why I went and looked
how things could (and imo ought to be) done differently.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 07:40:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 07:40:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222190.384271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mitpe-0004nA-5B; Fri, 05 Nov 2021 07:40:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222190.384271; Fri, 05 Nov 2021 07:40:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mitpe-0004n3-1r; Fri, 05 Nov 2021 07:40:14 +0000
Received: by outflank-mailman (input) for mailman id 222190;
 Fri, 05 Nov 2021 07:40:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mitpc-0004mx-LH
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 07:40:12 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b7db2b9-3e0b-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 08:40:11 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2111.outbound.protection.outlook.com [104.47.17.111])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-20-X6YvG3pQN-6Awvs88dUpeQ-1; Fri, 05 Nov 2021 08:40:10 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3774.eurprd04.prod.outlook.com (2603:10a6:803:1f::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Fri, 5 Nov
 2021 07:40:08 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 07:40:08 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0079.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:8f::20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Fri, 5 Nov 2021 07:40:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b7db2b9-3e0b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636098011;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=/SeAcumihhdSemzUK582nM28r1ZjsgyUumggUR1JHuU=;
	b=UWm2Kgt6ePYQG5lXEiH3d9vzF0/yWO/AzQaSzFh0DwXgIbWdtS6XuOXVCtXiljveU2hm29
	3/Y9tbz6NOgQqBWQv/IwtcZA4hE97TkL3SNoQGoRBIy6z9Y2QdQqaJqPqfEPZYfQh2stDs
	j2eC6zdOxM1ZuA9I+djJ+zXcuT9s3+Y=
X-MC-Unique: X6YvG3pQN-6Awvs88dUpeQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PJ0cKwJoh3sJ9M731jvjY8gk0wDhdWonllwlro7kRWKA5qrN6yV2RYiW9E5rtqYXJKB9MtqdZKQ7pNqwqu4oOuRdfIKEBj9joISkp5IWQsoNmSs/imHp9m9WFDKRrvAJNvoKpujZm567mBsgzUQ4/IMbqOJhOhGWKtyCAMiecHGYpf7YEhZFACiwoaUYaV+aFlEu1fopCmzR7zca97SvG68JW+T65igEPbegK1PO1Vh5qhc229N3dgncx0FD6IUnLzT3M8Y/TEQlfvpG92n+J4qqN6JEwf4bHIAgfxvrY8UgoAuiNSvo8hRwFRS1Ops0GaXexOSrm3oyx0E+LpeMew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/SeAcumihhdSemzUK582nM28r1ZjsgyUumggUR1JHuU=;
 b=kRZ1yKZKVx4pOSSv9YZ1npog0VXHutV2i2CulRoR6h8Y61GKFylleAmVmPviZy1sxs3FRpL07hmX/SSSF8m/qt2uHzOSnl2oyENjoDqfFfFp1IOVski7ewLvFnoLkA2aDvdAgxpYHkuAvq6DJQxpaDYpOdZa2eIdWFu/qm3k3QF3Ib3U/cqkmvSboRlSSgfpalU7SzQd3QIQoNIwyPyGxhkDvYVFFX2h0GsNRJP8eiazqDMqX+M+WD2gm1MGUHAPf8CVHU24X7rTiMcr6mze46O2KPzXj3p26yHk/nde95DRZViOC0MYxERYW2xLx7+9N7G9XPqLGSTswtJgqy8bfQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bb57557a-1001-9bbf-3a1a-b2627d609f18@suse.com>
Date: Fri, 5 Nov 2021 08:40:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v6 6/7] xen/arm: process pending vPCI map/unmap operations
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-7-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105063326.939843-7-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P194CA0079.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:8f::20) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0feb5440-e55d-44f1-1849-08d9a02f7dcd
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3774:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3774D77E57AD0695B950675AB38E9@VI1PR0402MB3774.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4125;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	6kRfPidRR7M6U9/xVi3XHCwdsNuPcc+jUcuoK7ElxbozyTG/OX6aCsM/Nnz+bPiwdkB56BRkwJFyjm8Pc6Di2T1AHmL+bSTrvPJUvQdMGEfyX5VkwDHy3WDXIoJPeIq5nOJ4cr9yjKvemUWiinezY/D3R3COwbmwL9+iR4q5NrUwVNWF7SXlFzFtVIP61O5wrEA1ndARw26x1Qn/nkL8ZANVGssTReWRJTWX6tK+iuvNscs4uC9WzoVs2MfO43vvyLqCeAmt6geEsqkJ46ExmXOm3E+4A3LeTHx5/1Jfrs0LlJBROYN9nSKeQ2pbDDSThpc2QYnuOQIXutPXdrx3b07v2nJYci1m4Y9Q3nc3xtNtxReKYNDwNE29jMnGf0dCtGx1B+rQHNimCBacMQRn1TQy6BFay6ymn/43CeYb4Vr5C4EKXQ4CeoHd5z1G9ucHpUTdZnfXqofSRlItpq1Zc1hl4ATR9xRs8gPkPXiC422uFKd7RUR7rH/a819cawPG5CW61yj7b2ycWwK+8xqAnHo0aE1ecxQsunVXDCceQM379FabW4DNqabndrLkOWTvmhGIIbJ2C91kHSSZjVAvNrTWbDv0kpq9aRl5zSotdcsjYzb10b3Gr+t543Vv3ASuat4cq68maAoJaahL+G97tl9yngA3EGxLqWbCB/mFJ6ZdJPGVjjnh37458CdvrLyeurK31vpA0cfAVNpAUt4oWfnzNab0oUWcP8Cl7J/4+sM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(5660300002)(316002)(2906002)(38100700002)(6916009)(8676002)(508600001)(53546011)(26005)(83380400001)(4744005)(8936002)(66476007)(186003)(66556008)(956004)(7416002)(66946007)(36756003)(6486002)(31696002)(16576012)(31686004)(4326008)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NUtIdVFEOWFzbWFBNFU4TDJEVEljdVUwZys4bFJ0eTBQVEcrVVdMdGdMekhC?=
 =?utf-8?B?SUFtVTg1Q1FTa0lGaXhKaUFpcUhNcURWMGJ2RnpSYUEvelF0VXRmcjNFUWEw?=
 =?utf-8?B?TmFQYTBqUzExMklMK0o0TnJydEtxV1BYVnJQZkEydFN6QkxiaGQ2MnlhV2s1?=
 =?utf-8?B?andUU2NiUVpIWC9XU2N0WWE4Y292YmsrUGFlVVI2NExuNGt2cEJNVHJvZEFP?=
 =?utf-8?B?SjlMUkkxM2FrUTY4RW1wQmpXYVhBWGpHWFJrMUV3ZWxIV2srT1dpQkpTUVll?=
 =?utf-8?B?UlpMT0VtMi9BemNBYmFIcUc1MDl6NU01dVZoaXJlcXNxZFh3SFc0RXE3Rk0r?=
 =?utf-8?B?WmdtaFRzb1J4Tzg2M0ZXU1ZhVjRJWWF6dlJJOFhIVUxGOG9zbWRkeDBaNktV?=
 =?utf-8?B?S3VRZHdZTUlsS0ZzS2xRNWpsQk41ZmRwWGttYWs4dkRnZHhHUlRJdGREWncr?=
 =?utf-8?B?ZjJKZmgxV0V3TytKYlZLNndVK3VBQUxqVi8raWE3QTE1VU16RzltQ3JIWUF0?=
 =?utf-8?B?NkQwa0ZucnZHM2Y3K1JDQmk0UHN1VHd2WnBpU2ZPTm8zbGxRWFAvSThlMUFH?=
 =?utf-8?B?bzFsSlQwTTlPQXdCZEkzQW1teUI4WmRWQ0hqSFRHNk9sVTZXanJYRmVXbUpj?=
 =?utf-8?B?U3U0T1A2TlhFd1Fkemt6amdmOXJWZzM4U3VPblFwOHQxMzVKTzh0NHc2TmtK?=
 =?utf-8?B?ZU51NFJ4ZXZaUkY2NWNWUTdWMFJnQ0UzVnFISnpwV1R4VUM4TDBEQldGSEVx?=
 =?utf-8?B?VUJySE1md2ZOaWExOUZoc0JrL0VPbldOWXNxVTRCUUt4cmw5SG9SWExRTENr?=
 =?utf-8?B?YVJRYkJtUnlxYWdRTkVaSG41Y0Q2NlVtSjRrbDBpYlp5NXBhOTloOXFvYU85?=
 =?utf-8?B?cWhuTWJZNVNvWmUrMjl5WGNCaDd3d2dzMXdXUytTSkh3aHlsOHhSa0JJZ0cz?=
 =?utf-8?B?eVZ0bkRpSFFyU1ZoNFk5V2JHT0xwUU5ZdVkrZ01FdGtTYi9EbW82NXVTYlZv?=
 =?utf-8?B?S01aL2E0WkovdzNhQmRLREdBRTVYRnA1WUVKZXZNMHYyMHY1UnBFbWptU1lp?=
 =?utf-8?B?aDFJVkg1V1hBQWVER1lvaHZtdmVlSmRoUGdMZGhVd1pZb1lENjhHNDlwYlJq?=
 =?utf-8?B?VHVqS3pYUGtoUXNkZWtNWkFKMThZRTlvNkJVSFBxKzJ5ZEcwOGNFc3N4K2ky?=
 =?utf-8?B?YUVkN004cS9PUDZxSlhQTmVNNENTWnorcWFUR0JaeGlSc0x5Z2FUaTNlYjFr?=
 =?utf-8?B?RFdFSTIyVmE0T1k3aHZUY1hqZEZNTGQ1Wk40UGV4NVp6a3RSRkhvOVp2aWVh?=
 =?utf-8?B?T2ZQT2JtaW9aK0ZsTnFYa20vVXlmb3BtbkNxSDFXMU5sWEJ1bWJMV3V2ZmRY?=
 =?utf-8?B?WHQ4TzVORTBaM0ZlNXliRTl0QnhySzFqUXhyVkhmSmJReXc0dTVkblVWT3pX?=
 =?utf-8?B?ZlFmdURLWEo3cnF3QmpIYk5ScFpZaHVMOVdzbkpzZ0hUdXh1WEg0MUp4ayt1?=
 =?utf-8?B?M1dYSHZSOUoyUmVZVnJkbVZWMTQ5T2xualh2Z1Q4c2QxSFFOdXV0bnlkdUkx?=
 =?utf-8?B?WjJ6M2YzbGRDMVpoNjA2c2dGNmQzK0ZoTTg2ZUtsK1lCb0g2RVpOSFlmbWti?=
 =?utf-8?B?alhDK0h4VEFnZlRJajR5QXd5c2xsc3JJcFpVWUFta1NzY1V6dzRReHhKVVdL?=
 =?utf-8?B?QnBhUmZhOXN1eDU2TTNTa1Z2c1E1bGNrdk5jUFQrQU5KNllMbi9pZnZuWXhJ?=
 =?utf-8?B?c2laVTlvbEh6VXpkQ2lkYUNIT0RscEU1cVdaWThHQXNGSmp6TlFvbGllVmFk?=
 =?utf-8?B?emIyKzhTMjhHYzVQcm1YQXhMZWt3TWV5YmpZUGxNQmNLV2JpUHNKdnN6RGw3?=
 =?utf-8?B?TXB2K09zZTFJcXFJbXJQZjdRNEZ6QjF5RjRHSEs2WkNzK0ZpWDN6ZXBJSjZ4?=
 =?utf-8?B?dUFKbmttSTZRc3FJS2Riazl4ZWtJUlA1bXh3QjNKNFNwbHRLQXI3L0s0Z2Fj?=
 =?utf-8?B?d3R1dXNLN01nTXl0aWx3RjBqdVJHQW0ySEhzTDJsOXl5bzJVNTJ6SU5Yd0Jj?=
 =?utf-8?B?N1JQakJKL0xydVRCdDJBVTdZa0FGUGxxby8xaGZqWjlRU1ZaOWl4THV1cmRn?=
 =?utf-8?B?TGVGdUxZdHJtbWlqWnFBYWNTSDVFSE1Wak9rL3N2NG0xaWxoYlJaaEJNYmVE?=
 =?utf-8?Q?FQO15szS1VrSZTPorVroI3Q=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0feb5440-e55d-44f1-1849-08d9a02f7dcd
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 07:40:08.6114
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZEjKf0B/y530EWsTbxIvTomRRSbXjbImV347oakUaWM8BmycT06u+Zf9vWua15NJv/QDSIOqox883u1TPihJwA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3774

On 05.11.2021 07:33, Oleksandr Andrushchenko wrote:
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -546,6 +546,12 @@ void hvm_do_resume(struct vcpu *v)
>  
>      pt_restore_timer(v);
>  
> +    if ( has_vpci(v->domain) && vpci_process_pending(v) )
> +    {
> +        raise_softirq(SCHEDULE_SOFTIRQ);
> +        return;
> +    }
> +
>      if ( !vcpu_ioreq_handle_completion(v) )
>          return;
>  

For this part of the change:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 08:36:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 08:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222207.384282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miuhU-0001su-OT; Fri, 05 Nov 2021 08:35:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222207.384282; Fri, 05 Nov 2021 08:35:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miuhU-0001sn-Kl; Fri, 05 Nov 2021 08:35:52 +0000
Received: by outflank-mailman (input) for mailman id 222207;
 Fri, 05 Nov 2021 08:35:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MQ27=PY=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1miuhT-0001sh-4A
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 08:35:51 +0000
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03on0621.outbound.protection.outlook.com
 [2a01:111:f400:fe09::621])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6050ccb2-3e13-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 09:35:49 +0100 (CET)
Received: from DU2PR04CA0189.eurprd04.prod.outlook.com (2603:10a6:10:28d::14)
 by AM8PR08MB5587.eurprd08.prod.outlook.com (2603:10a6:20b:1dd::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Fri, 5 Nov
 2021 08:35:46 +0000
Received: from DB5EUR03FT009.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:28d:cafe::57) by DU2PR04CA0189.outlook.office365.com
 (2603:10a6:10:28d::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Fri, 5 Nov 2021 08:35:46 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT009.mail.protection.outlook.com (10.152.20.117) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Fri, 5 Nov 2021 08:35:46 +0000
Received: ("Tessian outbound e7ce0d853b63:v108");
 Fri, 05 Nov 2021 08:35:46 +0000
Received: from 69b117715896.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 925DAAA3-B598-45D4-8693-62A5955D5BF3.1; 
 Fri, 05 Nov 2021 08:35:38 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 69b117715896.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 05 Nov 2021 08:35:38 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB4900.eurprd08.prod.outlook.com (2603:10a6:20b:cc::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 08:35:37 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4649.023; Fri, 5 Nov 2021
 08:35:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6050ccb2-3e13-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FUaJlqk60YkRIp6Y0mBmrcjnA8Te8bnQDYSxJU9iyGU=;
 b=jNRaVrcwKncL72v9/u4JD2kRctgNuBXmtm6y7KPiW4wj8GMlsEc7oPPzPfaQG5m/U18hmIlzpT60mg5szPOvl9yo/tMYQdef+mn3MIAfMsKOnZZRqxvNdbujHdA6kx98GcZY9ZQSvO6/ri9HVXwWKwbG5zMRp+XOqEbGQ9/QGVU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 32e54b1b3dad7c3d
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ik4236GJMmLycz1/QX50heDEKr94UV0gByB7i6C6kntuWRVVfX3fe5UQ6xbkSmF9urp3qr1B086JxqcPL8izm4HZmhuYLiNZZKme49hRSnf18dYLuuiahHaDdQmE6Z9B1kD2gF9FOnc+832o73LcOBl9fnN4Zj2eyXsdDfY4sldoWuk5BB7FNV3phqj6P+nFXoHb6H7aWqQ0hAiff+cNcrK13Ieqcvv6eiCl3t3KId/bPn0i/xP4b6iX1VB6il4DuG9AN2X3sRH6GFDiZ/Xrr2T5Boj0GY3E9Aork9VX180grOtWhTWy0wtGsLwS4H/xGR+72blvY7PPNPMxksbw9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FUaJlqk60YkRIp6Y0mBmrcjnA8Te8bnQDYSxJU9iyGU=;
 b=isRPOjbHK1Y28LIe/iitXM49wJl+ZE3Az3ImMZyQz3epMpd58R3Lmwto8wggUvn3nXN2z7F8swFxDf7ipoSXl4nbAPk26kxPbd9l8OhSHNyzYjXT2z1Cdj+DftNWHFy7mh37kTlSyJqzRaRp4JakrxRlLFJw9N4DePHcl1/bHXT75FJP3CGN6JhJhRTDE64F/+k/+cRHOeOqnbw6LE3SELIHPYEF69dMB0J5bKfTOLv+JjJKtbuHCaDpeRsIJ/7v3Op33gOw6NfB24fhm3nI2y2YMA8RGf70iiJFfreWudMc6pjzSacvgF6s19/hDPJX+N9wAILdKk8MYiO/ET6GLA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FUaJlqk60YkRIp6Y0mBmrcjnA8Te8bnQDYSxJU9iyGU=;
 b=jNRaVrcwKncL72v9/u4JD2kRctgNuBXmtm6y7KPiW4wj8GMlsEc7oPPzPfaQG5m/U18hmIlzpT60mg5szPOvl9yo/tMYQdef+mn3MIAfMsKOnZZRqxvNdbujHdA6kx98GcZY9ZQSvO6/ri9HVXwWKwbG5zMRp+XOqEbGQ9/QGVU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] MAINTAINERS: add Bertrand to the ARM reviewers
Thread-Topic: [PATCH] MAINTAINERS: add Bertrand to the ARM reviewers
Thread-Index: AQHX0b8Z5UpGAFt+x06A4NMH1xlmkKvz+86AgACg6IA=
Date: Fri, 5 Nov 2021 08:35:35 +0000
Message-ID: <F999B8F3-0EB5-4D25-9125-BD2BE85B8C8F@arm.com>
References:
 <alpine.DEB.2.22.394.2111041357580.284830@ubuntu-linux-20-04-desktop>
 <9f3208df-f3a8-e5ed-ee30-aed152d32ad5@xen.org>
In-Reply-To: <9f3208df-f3a8-e5ed-ee30-aed152d32ad5@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: be0c96bd-ae24-4fdf-70ce-08d9a037436d
x-ms-traffictypediagnostic: AM6PR08MB4900:|AM8PR08MB5587:
X-Microsoft-Antispam-PRVS:
	<AM8PR08MB55875AEF3BC4EE6159C723529D8E9@AM8PR08MB5587.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 PDSd++X0Rd7yWxZUVDls4pq/neVwoUR95q8CNALzIOEtuh/ehLKwUJk0C0Bi/LGAFsnE2P1I0RtEBrXUxDZkToBpSXvIT8H2CwFFwsCpWevgVWTZFvzsjsnxgZ3Kv/Wcpg2QhUUWcu7sSbVZJNneguRoNrLTsQoyzQ1cxxJhXlSEyb0+TKpOBkn106TfDYoRpkiKWA5iSs84GA2jBODJYRtgf4n7zia2Nt8m6yhE5TyD8Pl7xJRfRlIPytPBfQtlDFC/iqfG123deQQogDdbW9OP9okokFk90EzW6PBrmg+XRJQm+B889qaB+ddbFngQ2F7j0ZLrZmFsEWznfQdtAXcqSYzUxL+kXXCGQBc+7AWjh7D2fY8YYM2kiqrgUAf9zHT8/BhecfkzLKwNXDAcjqN4i3MuqG+rNOUsWNGDpdItneGI46hDx/CspjWh6nwg1erXQN1feXA4x5TS1fsamJ1SlYagxRfUl4hlH1TWTM5EvMgznr+Z2HCdd8NkMyljdNMbF+1dWFjOxuGYXTati634CfAPluCA/PoaD2/QDR5NjKpS2J73/Sgmr9qNo9nc0mF4xHgJKwZ3m2oXWZz8JgqHg15w4sjjdSblvXCP5zaKOGdZ51uUE8MznCqxhkf1rqvc043342PeSrvLfInGbI2lBrPez1hHKmn5YZ1XIJw8M0bku/veXdcp6rjr/VpfG6iE97r+bSjFJ3l/sq6cz3AkSuAGuefG+WoeDsu2PKoqJgU77bkvj7mg7k1eFIXI
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(186003)(6486002)(64756008)(6916009)(8676002)(83380400001)(8936002)(26005)(2906002)(6506007)(2616005)(71200400001)(38070700005)(5660300002)(86362001)(54906003)(33656002)(6512007)(508600001)(122000001)(316002)(38100700002)(91956017)(66446008)(36756003)(66556008)(66476007)(53546011)(66946007)(4744005)(76116006)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <F82EBC2D2F9B5A43A9C1F4F434685956@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4900
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT009.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	d3b87b23-c375-4a4b-0e77-08d9a0373d83
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1EZCTx/rcJAtnBNtyg+OCxOB60gB6nmzaNn2nbr3pNpUsoBdjcW1xAqq3cNu5xvZgROQhJ/qgI/9ldjRp0l9TxUMopn594jvK62UdQqXqaYy4mcwP1J2s3rCLZYcI9nt1v2R6u9OM9dnLKh4ra/vZJRd8atKiWFjHwn7cYpIznTD3/cxq78G9sSuIJ3p3o1j7cL/Rd4FGAL5RBzW9TkqcG65pwc0zA+kP1wGvFxkkmKbvJ+XWD6AYiKVXc69r2H5TghPtyULPIOBvkxImT8K6a7kt8aRQq7ZKqQutqfB2LpATPFB02yEKIPVhtBSvNHEWwnOaXb3ujbH+rPD/K+RLidu709kOKKBMlRIBhlWx8VsUa5xrpMTjDtCwW4+jpT6QDVjCG8m4GXYXnpGXEKKDpRnj14A1Z0v3OVFnOsqvfD26VVYY4vmNkTc3YmXwWRzwtGT3dQvYHKfgmFwzZBdANqZ4I8vHUP2xEn93ug/R+vy22iuIM25HCVub5jpq9vNotOULx7npMa+ZUDauQNQ4jk5IVoYjVvFu461HCAeZ9igiX8iV/sBMM1cxDAtYqEFbAOIVopofWOel/7jfzURWUIfcMningzUpsmCYYi2PaJkjQJ3nZFtdAqYbbc7Nzdddm4piC3JnydlNxCqraHJKvj7xnsYwE1riW3QEDWTo0RqonEECfQ+oWwTFX1ElrN5RRd1+PnoOoUYMVIMVJfk1w==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(107886003)(53546011)(81166007)(47076005)(4326008)(356005)(36756003)(83380400001)(5660300002)(4744005)(33656002)(70586007)(70206006)(508600001)(2906002)(6862004)(6486002)(36860700001)(8936002)(8676002)(336012)(86362001)(2616005)(6512007)(54906003)(82310400003)(186003)(26005)(6506007)(316002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 08:35:46.4447
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: be0c96bd-ae24-4fdf-70ce-08d9a037436d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT009.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5587

Hi Julien,

> On 4 Nov 2021, at 22:59, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Stefano,
>=20
> On 04/11/2021 21:00, Stefano Stabellini wrote:
>> Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>
>=20
> I am not sure where the Acked-by is coming from. Can Bertrand confirm on =
the ML that the is happy to be a reviewer?

I can confirm I am happy to be a reviewer :-)

So I can say:
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

>=20
>> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
>=20
> There is a missing signed-off-by on the patch.
>=20
> I am happy with the proposal, although I will wait for the two remarks to=
 be resolved before giving my acked-by.

Then it might be easier to give my ack by on the v2 signed off by Stefano.

Cheers
Bertrand

>=20
> Cheers,
>=20
> --=20
> Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 11:22:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 11:22:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222225.384298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mixIN-0000CD-4h; Fri, 05 Nov 2021 11:22:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222225.384298; Fri, 05 Nov 2021 11:22:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mixIN-0000C6-1S; Fri, 05 Nov 2021 11:22:07 +0000
Received: by outflank-mailman (input) for mailman id 222225;
 Fri, 05 Nov 2021 11:22:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ym5/=PY=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1mixIK-0000C0-UP
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 11:22:05 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 96bf0de3-3e2a-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 12:22:02 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 12B731FB;
 Fri,  5 Nov 2021 04:21:58 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.cambridge.arm.com
 [10.1.195.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CC8553F7B4;
 Fri,  5 Nov 2021 04:21:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96bf0de3-3e2a-11ec-9787-a32c541c8605
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com,
	wei.chen@arm.com,
	iwj@xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH-4.16 v3] xen/efi: Fix Grub2 boot on arm64
Date: Fri,  5 Nov 2021 11:21:48 +0000
Message-Id: <20211105112148.48719-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.17.1

The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
("arm/efi: Use dom0less configuration when using EFI boot") is
introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.

Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle
inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
handle is used later by efi_bs->HandleProtocol(...) inside
get_parent_handle(...) when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL
interface, causing Xen to stop the boot because of an EFI_INVALID_PARAMETER
error.

Before the commit above, the function was never called because the
logic was skipping the call when there were multiboot modules in the
DT because the filesystem was never used and the bootloader had
put in place all the right modules in memory and the addresses
in the DT.

To fix the problem the old logic is put back in place. Because the handle
was given to the efi_check_dt_boot(...), but the revert put the handle
out of scope, the signature of the function is changed to use an
EFI_LOADED_IMAGE handle and request the EFI_FILE_HANDLE only when
needed (module found using xen,uefi-binary).

Another problem is found when the UEFI stub tries to check if Dom0
image or DomUs are present.
The logic doesn't work when the UEFI stub is not responsible to load
any modules, so the efi_check_dt_boot(...) return value is modified
to return the number of multiboot module found and not only the number
of module loaded by the stub.
Taking the occasion to update the comment in handle_module_node(...)
to explain why we return success even if xen,uefi-binary is not found.

Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI boot")
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>

---
Justification for integration in 4.16:
Upside: allow booting xen from grub on arm64 when the stub doesn't load
        any module.
Downside: It's affecting the EFI boot path.
Risk: It's not affecting x86 arch that works the same way as before.
      If something is wrong it creates a problem on early boot and not at
      runtime, so risk is low.

Tested in this configurations:
 - Bootloader loads modules and specify them as multiboot modules in DT:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - DT specifies multiboot modules in DT using xen,uefi-binary property:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
   other multiboot modules are listed for DomUs using xen,uefi-binary
 - No multiboot modules in DT and no kernel entry in cfg file:
   * proper error thrown

Changes in v3:
 - Revert back to the logic that protects get_parent_handle(...) (Jan)
 - Changed efi_check_dt_boot(...) to use a EFI_LOADED_IMAGE handle and
   request, along the call stack, the parent dir handle only when needed.
Changes in v2:
 - Changed comment on DeviceHandle NULL (Jan)
 - Removed fatal condition on handle NULL (Jan)
 - Add more info about the EDK2+Grub2 issue to the commit msg (Jan)
 - Removed modules_found from function signature and pass everything
   on return (Stefano)
 - Improved comment in handle_module_node

---
 xen/arch/arm/efi/efi-boot.h | 61 ++++++++++++++++++++++++-------------
 xen/common/efi/boot.c       | 16 +++++-----
 2 files changed, 49 insertions(+), 28 deletions(-)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 8b88dd26a5..458cfbbed4 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -44,17 +44,17 @@ void __flush_dcache_area(const void *vaddr, unsigned long size);
 
 static int get_module_file_index(const char *name, unsigned int name_len);
 static void PrintMessage(const CHAR16 *s);
-static int allocate_module_file(EFI_FILE_HANDLE dir_handle,
+static int allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
                                 const char *name,
                                 unsigned int name_len);
-static int handle_module_node(EFI_FILE_HANDLE dir_handle,
+static int handle_module_node(EFI_LOADED_IMAGE *loaded_image,
                               int module_node_offset,
                               int reg_addr_cells,
                               int reg_size_cells,
                               bool is_domu_module);
-static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
+static int handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
                                        int domain_node);
-static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
+static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
 
 #define DEVICE_TREE_GUID \
 {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0}}
@@ -647,11 +647,13 @@ static void __init PrintMessage(const CHAR16 *s)
  * This function allocates a binary and keeps track of its name, it returns the
  * index of the file in the modules array or a negative number on error.
  */
-static int __init allocate_module_file(EFI_FILE_HANDLE dir_handle,
+static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
                                        const char *name,
                                        unsigned int name_len)
 {
+    EFI_FILE_HANDLE dir_handle;
     module_name *file_name;
+    CHAR16 *fname;
     union string module_name;
     int ret;
 
@@ -683,9 +685,14 @@ static int __init allocate_module_file(EFI_FILE_HANDLE dir_handle,
     strlcpy(file_name->name, name, name_len + 1);
     file_name->name_len = name_len;
 
+    /* Get the file system interface. */
+    dir_handle = get_parent_handle(loaded_image, &fname);
+
     /* Load the binary in memory */
     read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
 
+    dir_handle->Close(dir_handle);
+
     /* Save address and size */
     file_name->addr = module_binary.addr;
     file_name->size = module_binary.size;
@@ -702,8 +709,9 @@ static int __init allocate_module_file(EFI_FILE_HANDLE dir_handle,
  * This function checks for the presence of the xen,uefi-binary property in the
  * module, if found it loads the binary as module and sets the right address
  * for the reg property into the module DT node.
+ * Returns 1 if module is multiboot,module, 0 if not, < 0 on error
  */
-static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
+static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
                                      int module_node_offset,
                                      int reg_addr_cells,
                                      int reg_size_cells,
@@ -730,13 +738,13 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
                                  &uefi_name_len);
 
     if ( !uefi_name_prop )
-        /* Property not found */
-        return 0;
+        /* Property not found, but signal this is a multiboot,module */
+        return 1;
 
     file_idx = get_module_file_index(uefi_name_prop, uefi_name_len);
     if ( file_idx < 0 )
     {
-        file_idx = allocate_module_file(dir_handle, uefi_name_prop,
+        file_idx = allocate_module_file(loaded_image, uefi_name_prop,
                                         uefi_name_len);
         if ( file_idx < 0 )
             return file_idx;
@@ -795,19 +803,20 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
         }
     }
 
-    return 0;
+    return 1;
 }
 
 /*
  * This function checks for boot modules under the domU guest domain node
  * in the DT.
- * Returns 0 on success, negative number on error.
+ * Returns number of multiboot,module found or negative number on error.
  */
-static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
+static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
                                               int domain_node)
 {
     int module_node, addr_cells, size_cells, len;
     const struct fdt_property *prop;
+    unsigned int mb_modules_found = 0;
 
     /* Get #address-cells and #size-cells from domain node */
     prop = fdt_get_property(fdt, domain_node, "#address-cells", &len);
@@ -833,24 +842,26 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
           module_node > 0;
           module_node = fdt_next_subnode(fdt, module_node) )
     {
-        int ret = handle_module_node(dir_handle, module_node, addr_cells,
+        int ret = handle_module_node(loaded_image, module_node, addr_cells,
                                      size_cells, true);
         if ( ret < 0 )
             return ret;
+
+        mb_modules_found += ret;
     }
 
-    return 0;
+    return mb_modules_found;
 }
 
 /*
  * This function checks for xen domain nodes under the /chosen node for possible
  * dom0 and domU guests to be loaded.
- * Returns the number of modules loaded or a negative number for error.
+ * Returns the number of multiboot modules found or a negative number for error.
  */
-static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
+static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
 {
     int chosen, node, addr_len, size_len;
-    unsigned int i = 0;
+    unsigned int i = 0, modules_found = 0;
 
     /* Check for the chosen node in the current DTB */
     chosen = setup_chosen_node(fdt, &addr_len, &size_len);
@@ -865,15 +876,23 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
           node > 0;
           node = fdt_next_subnode(fdt, node) )
     {
+        int ret;
+
         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
         {
             /* Found a node with compatible xen,domain; handle this node. */
-            if ( handle_dom0less_domain_node(dir_handle, node) < 0 )
+            ret = handle_dom0less_domain_node(loaded_image, node);
+            if ( ret < 0 )
                 return ERROR_DT_MODULE_DOMU;
         }
-        else if ( handle_module_node(dir_handle, node, addr_len, size_len,
-                                     false) < 0 )
+        else
+        {
+            ret = handle_module_node(loaded_image, node, addr_len, size_len,
+                                     false);
+            if ( ret < 0 )
                  return ERROR_DT_MODULE_DOM0;
+        }
+        modules_found += ret;
     }
 
     /* Free boot modules file names if any */
@@ -883,7 +902,7 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
         efi_bs->FreePool(modules[i].name);
     }
 
-    return modules_idx;
+    return modules_found;
 }
 
 static void __init efi_arch_cpu(void)
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 392ff3ac9b..cbfa5b0f35 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -121,6 +121,8 @@ static char *get_value(const struct file *cfg, const char *section,
 static char *split_string(char *s);
 static CHAR16 *s2w(union string *str);
 static char *w2s(const union string *str);
+static EFI_FILE_HANDLE get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
+                                         CHAR16 **leaf);
 static bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
                       struct file *file, const char *options);
 static bool read_section(const EFI_LOADED_IMAGE *image, const CHAR16 *name,
@@ -167,7 +169,7 @@ static void __init PrintErr(const CHAR16 *s)
 }
 
 #ifndef CONFIG_HAS_DEVICE_TREE
-static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
+static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
 {
     return 0;
 }
@@ -1225,9 +1227,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
 
     efi_arch_relocate_image(0);
 
-    /* Get the file system interface. */
-    dir_handle = get_parent_handle(loaded_image, &file_name);
-
     if ( use_cfg_file )
     {
         UINTN depth, cols, rows, size;
@@ -1240,6 +1239,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
 
         gop = efi_get_gop();
 
+        /* Get the file system interface. */
+        dir_handle = get_parent_handle(loaded_image, &file_name);
+
         /* Read and parse the config file. */
         if ( read_section(loaded_image, L"config", &cfg, NULL) )
             PrintStr(L"Using builtin config file\r\n");
@@ -1362,14 +1364,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
         efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
         cfg.addr = 0;
 
+        dir_handle->Close(dir_handle);
+
         if ( gop && !base_video )
             gop_mode = efi_find_gop_mode(gop, cols, rows, depth);
     }
 
     /* Get the number of boot modules specified on the DT or an error (<0) */
-    dt_modules_found = efi_check_dt_boot(dir_handle);
-
-    dir_handle->Close(dir_handle);
+    dt_modules_found = efi_check_dt_boot(loaded_image);
 
     if ( dt_modules_found < 0 )
         /* efi_check_dt_boot throws some error */
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:18:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:18:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222233.384310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyB2-0005Bw-I6; Fri, 05 Nov 2021 12:18:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222233.384310; Fri, 05 Nov 2021 12:18:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyB2-0005Bp-Ez; Fri, 05 Nov 2021 12:18:36 +0000
Received: by outflank-mailman (input) for mailman id 222233;
 Fri, 05 Nov 2021 12:18:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFAl=PY=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1miyB1-0005Bj-0Q
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:18:35 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7da85577-3e32-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 13:18:33 +0100 (CET)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A59xO6D022776; 
 Fri, 5 Nov 2021 12:18:28 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c4t7f24qx-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 05 Nov 2021 12:18:28 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A5CAQnB077370;
 Fri, 5 Nov 2021 12:18:27 GMT
Received: from nam10-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109])
 by userp3020.oracle.com with ESMTP id 3c4t615jkf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 05 Nov 2021 12:18:27 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BLAPR10MB4916.namprd10.prod.outlook.com (2603:10b6:208:326::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Fri, 5 Nov
 2021 12:18:25 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.011; Fri, 5 Nov 2021
 12:18:25 +0000
Received: from [10.74.104.120] (138.3.200.56) by
 SN4PR0401CA0019.namprd04.prod.outlook.com (2603:10b6:803:21::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 12:18:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7da85577-3e32-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=x8/rz+OH4OwGFbijOPoJfOcgZgB7bM1t+vg5tMMe7xE=;
 b=ztW/ajhUmrYMP/zRLEOypSoyr1I/SGAPAOF716bkMiuOCigPP045mxniaWP59YZyLbSZ
 c6qDPXwlbrb8Znyqrlb36m9B8DIp2ENiHdKDRG6fgYB1cDHXRKetQTu7mugYdHP7Spfd
 rw8DzY1Dd3KnRua7UiFUDV5P4mTjc76p/yiPYOLfOa9RB3BBWuoJPgUs5BOL9ufFerz5
 gUcenSMBKtCH/+RJYdKsHqTAcNrcFYHLXjSoHsXugrnSbxjFYqxlxvXrKF6BR48pKM1i
 zk6/oR2aN5+Ty4MrGg803/o0tQRNVsZyCY92N3d05R2AkfQbwZlxL1pmhuMiRo09wogU jw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JGCq5y2MTQKorvGqHlA3hhCaT6llmjosfiy89RkYEWD1/JAmQz7LtWzB02MuKd1RCcVZwLSHIMhPiupcKVPI/slycCl9kL2B2PcS1s7WNX2yH4ZLPSPa7+D1gvubhLpuf0kY+PqyFmLLjBqRWXDD4nE0UuyQ+fy7vJC5MsU43qyhMIPave9Z8y7gDlUJHfYh9Vc99U8y6pgn/MsopY6RfaCkzLO9+FTTt0r301JGxrH9T3BTg+hjDEvNh/KaJN/lBFHInAlF5ert+gle2Sa8br/onwZL7DpG+vFLGaWIBr4+tdZd1fyx/kjII/Sbdr70qrkkSVJuRTfKf9s8NdTp2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x8/rz+OH4OwGFbijOPoJfOcgZgB7bM1t+vg5tMMe7xE=;
 b=mxOABSZIbXdYxv90cchRUKBFAj8T8oNcMVnXi8RrGYGWjnHyoqVRwPqS8iKy4YBFVlPa2fKV3PXCrD4EP5ylCQY8DAqcj9+04/KfFlu5zMY69yVWq2GSJwfWSu35EaJ2IS2gVlxBasUiXgdrWcMuSa7ZE3SRaKSw0XEf+06HnJgXd2X4WN33qEU3HVLu1hoHDP74hNZyLTwiXUpzLgwqAujoVIF1cGkq11Ja1FXU3NBJkxCi/NLsb7nv8sfJT0gCPTZQca8UQKUhSLnfNqYl6Fuu+X9ofrLb+DsVTu1nBRdIHjK1yUqJqfZDJKqnsojC7CGc2MxltUd+bpQ2GUI6SQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=x8/rz+OH4OwGFbijOPoJfOcgZgB7bM1t+vg5tMMe7xE=;
 b=IEMJYHASUnKvN944aAFpvT9LMPPA7UJI4rf7nIHx1PW6vOBaWDe+j05vco3/E0gJZEjw0TlUWn9jSyJZzPX408aRkCauuH0/wrO3ZCKbaL5pFYmgoo9tCRKdsp+xr3ATknKZwbSZ7iv2CDNrMFRPFW8iT0G6fsqCvVyIZxiFkXI=
Authentication-Results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <b3c448fe-b37d-2df4-093b-e09c8543be83@oracle.com>
Date: Fri, 5 Nov 2021 08:18:19 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial
 ballooning done
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
        Stefano Stabellini <sstabellini@kernel.org>, stable@vger.kernel.org,
        =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
References: <20211102091944.17487-1-jgross@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211102091944.17487-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SN4PR0401CA0019.namprd04.prod.outlook.com
 (2603:10b6:803:21::29) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6268cd14-b3d4-4601-242e-08d9a0565db3
X-MS-TrafficTypeDiagnostic: BLAPR10MB4916:
X-Microsoft-Antispam-PRVS: 
	<BLAPR10MB491674CFA3883408AEB995658A8E9@BLAPR10MB4916.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	vDLclJIrSktbVGwjKwqWJ7n0IcRLH3rECprOZN+Q9k0dB95SI4t2E8AteglO3gxFE//nK1+wrdubGl5iayVnOBRH7eosIcbMHsxK78Fdob6oWdGQ7nT4vqHuSP9ma36ZiFdpAy8ZnyN12zRznke4yUq/0mF4rcT6rsu0/X+vqmIHlvKo1tRf7mwtPfCdthaWDUXdyCrR/ABG1FTC36I/Y+STjYEyTibSSAXJVysFMjFKjlodAJGjugLyqVFBAaHqvWdfAd+fLiM3yK6WqB8qBhEK52KTJTg+wDEKV+BsqkjV60WlY9Z0lcrFPd5Ron7PCfUfNp5hph3rKNTRwYNqWTU7bunJZzEVfgV3uVUbWq3vq/72aqEhzX19Nj3xbZjVwW8zbik+MHf+/Q0DyVLByB2mq3qrYD0Dh4qq4uzRJxBUaom0oOod8AEAZ/quw19T6oqod9lX7rbA5QwBqDN5D3qp96zO7XbKnz6Zdrk9D4v9JC1tFRm4BQjoXCbAgwEviVtVixldH0nvm9s1rii0Jdlwz6/TAUi59RhChrBVhh9wO61zP6kcvT7ABpxeYVsA36Ml9uFy7umhcc9YHsFb4tD53+C/LSvaJ+XXF9Ivn0JEiKqlNGyjw7FPDvcr2apuXn+zHcaf1TKV0hJfKUqs5fpIyoIpksgi0mYthFnvLEhbm+fNQR6xXW+OZ/PHhS7FOzHnE/doNNnrr97/EwPk0ttbteUd/QR3UUswMcxZCkk27nK+XatWGkULAnpLKScc
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(16576012)(83380400001)(31696002)(6666004)(2906002)(956004)(8936002)(186003)(86362001)(2616005)(5660300002)(316002)(54906003)(508600001)(26005)(44832011)(66574015)(53546011)(4326008)(66946007)(66556008)(66476007)(38100700002)(6486002)(8676002)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?Tzk3Vm96a3BGbzc0RGxDc2dwdGoyQlRveVJtbE16Mmtmellnc1NtS3N2MEhi?=
 =?utf-8?B?L1N0eVRuRjY3a2dQVXhZVFZmempTc0YyMENiN2lIV2syZEdZUEREVjFiYVVr?=
 =?utf-8?B?U2hOeFpCdHoySUsrWktwSkt4bGRxMnlUREJ0TXB4TzRGcGhoQ2NKNTdRSW1h?=
 =?utf-8?B?VTJxa1BUbnpzSnFKMVJFdkRCTE1vREI3NzNrWFU3TkpuajBOb21mdW5NUEVo?=
 =?utf-8?B?TXpYUXBBUlVwa3RheWFJRS9lK29iKzZqTm1IVlNrKzJQWkpRZUhzQVVtWWFj?=
 =?utf-8?B?aVdsRzlVSXNnUlZ5WHhyZFdjeTNKZVE5VXZGWEtzak1xamVpSG9XZkxkY1JF?=
 =?utf-8?B?Z3NyZ0RXYTBEMVRSd2NnblAzMjY1Uk9McXBZdEJXZnlxZkdXeHg2WmlWdVhM?=
 =?utf-8?B?M2V5ZU9LeHRMK0UwSXNCVVNDbUYrelo0OThYazc4SFVEVjFVVVFsRVQ1eUhv?=
 =?utf-8?B?UXFFMGltMzJMcThtbzRUSUJ3R3UxOUVDZGZPdit4SnVUQU4zaVMxaE4ySU1r?=
 =?utf-8?B?TzVZYUJLYkFuVDVldWJSdUptdTdkczNNMitlQjVDcnNQenBFOTMzRFRCa0ZJ?=
 =?utf-8?B?aWVaSGVqTDJCUFpBdnQrNGVBOVVKZmxWSVFEakl6dUNBeEpuaGk4ZUVndExH?=
 =?utf-8?B?SElZQ3paVXI1U0Q3Qi9GOHo1eGc4dWFmZUVIK0hVSTFwY0E4dm1lY0xZQTNm?=
 =?utf-8?B?UTJFT1JkNkEyek93SnRkdEgxSEFBUnJYNnMzd0xNVC9HZklLeEhHS3RQUEkw?=
 =?utf-8?B?NUsxa3RTdVB2VXdwRWNqOFN2RFNmK0N5RDNJUnlBVG83MXFNek9nYWpWc1hU?=
 =?utf-8?B?WHVtREdXVHZqUUp5akRseTJFb0M3dUdESDQ3WW1QTUhFYlNCUUtCOEgxN0U5?=
 =?utf-8?B?NXo0YmJ4N1BVdldIWGczdXViSHMzT2FWY3FjSUZhSjV4M2g1ai9sOFpwQyt5?=
 =?utf-8?B?UXB4T2czZ2ozcHdEVlNjWlJFbVprMDUyR3lQYTJrTHRWZERmbVNBMWQrdlB4?=
 =?utf-8?B?SFdEWFNzd0JOK1ZpQTFGZTk4bnZiWnZkbm9ubW03a1NUN2ZMOTRuVkRsS0JI?=
 =?utf-8?B?VDVCUlYvL0RpSjVQVnpzSkdmSzhmWGEyMlF1ZjRPZkI1RFpZTnFUb3kyMndx?=
 =?utf-8?B?amZ6YWd4d2tscWt1UXBWZEliN3E2MGVQTDhKbnQyanNuRHJmM0FIN0dYbkND?=
 =?utf-8?B?MFhicGM4YWowK0RHZlJIR3lPVUYxRS9uZVB5VWIwNUNISWZocFFtT2UrcE1D?=
 =?utf-8?B?T1VNK2JJeVBFT2xKajVIR3M5Z21DaXpFMkVmblVOaGsxN0VKQWNHTzZBdGlF?=
 =?utf-8?B?cDM1bS94T1E0NW5Md3lwazVqODJTNzR6eFhCeU9tYVF1ejFpMFFnT0t1WnNH?=
 =?utf-8?B?WTF6dTJKTVR3alhaeDJ3UUhkMUJLUHp5dU13QzVnRFpIaFA3QUxBc1FZdzdn?=
 =?utf-8?B?eTVGc3VTT2I5RnBES2RncWZKeHM4ZDlsZDFQYjJnZXVRTngwUWFyeDlldlRw?=
 =?utf-8?B?OTlNeE00WERnZ0E4ZXFVODFNSEFGMXV6ZWgxYkl6TkNYOHc5Y3JINzUxdUhM?=
 =?utf-8?B?Q3ovK2s1VjRBeDhGWnB6bkxjeU5uZGRkQTdyUFR4WUJOcjE4cWV6YU9sQ2Ra?=
 =?utf-8?B?UFhRMmtRZU1XTEVHcGZnWWdxOGdqbHpsMVJMU0pnWnQxY3NCRUVvMUNiTGx2?=
 =?utf-8?B?RnJhb2hoaGZDd2ExYnlwMHRqd2ErZ2cxUVZQWUxIRDlUaDBORDhoMGdCdkVm?=
 =?utf-8?B?anNzdEFKSlhlR05VVFViZlVWdlI4b0lpd0RHRk5acUh2Y2ZsUXp4a0poRmNk?=
 =?utf-8?B?YUtxMlpzUFdpbi9OQnFHaitweVFlZmNXSm9rMEIzK1Qzb1l1QTNWMk12Q1lT?=
 =?utf-8?B?L0huaEZFN3VmWHFWV2FZMVgxb2pjb0ZCZVQwcnBBVDVITXU1cXQ2L0lMeTBF?=
 =?utf-8?B?N3YxTHJUNjVZNk9DdmR1QkI3MFFna0ZZZFYwVHlGdG5KWFhqNkY5cnlwelI3?=
 =?utf-8?B?ZzM2VUl4UUtMUktSOC9qWXYxNkFFakJ0QmVoOXBvU0lIOEI3NE9WZUxVaEp6?=
 =?utf-8?B?dnNwRy9NSlNEbGZ1bnVia25JMWl0cjlsT2tSZ0JvUW9yNGtESzhzRVJaWWli?=
 =?utf-8?B?L1VOb3lRSzZuOXhYTlJGMWRXclVhZmQyWWgyZUYyZ0xwZk5EZ013TXBKa2VG?=
 =?utf-8?B?RkNCOE96WkErdkx3dDYzeFJuMlJRQlJveU5vaXdRRE9zRWhXam1ySTRoQ2lH?=
 =?utf-8?Q?0/K66zyMJBX98qcVWT76ZVODETLOjy3gGQJQfzQEyM=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6268cd14-b3d4-4601-242e-08d9a0565db3
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:18:25.1638
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: il6hcuNbbF2DHDx+1YHdyXYwRzD70//qT5foNlexqZsJ2nTMggDNzU/ImdyRPGxXlOHKqhmKBWbggEYg/1rVQ9dbmBfHHm/lCBG94zVbMGY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB4916
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10158 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0
 spamscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 suspectscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111050072
X-Proofpoint-ORIG-GUID: kUhmW-FhLCPmwZMmwFtjT6B9KNv4nZgo
X-Proofpoint-GUID: kUhmW-FhLCPmwZMmwFtjT6B9KNv4nZgo


On 11/2/21 5:19 AM, Juergen Gross wrote:
> When running as PVH or HVM guest with actual memory < max memory the
> hypervisor is using "populate on demand" in order to allow the guest
> to balloon down from its maximum memory size. For this to work
> correctly the guest must not touch more memory pages than its target
> memory size as otherwise the PoD cache will be exhausted and the guest
> is crashed as a result of that.
>
> In extreme cases ballooning down might not be finished today before
> the init process is started, which can consume lots of memory.
>
> In order to avoid random boot crashes in such cases, add a late init
> call to wait for ballooning down having finished for PVH/HVM guests.
>
> Warn on console if initial ballooning fails, panic() after stalling
> for more than 3 minutes per default. Add a module parameter for
> changing this timeout.
>
> Cc: <stable@vger.kernel.org>
> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>



Applied to for-linus-5-16b.


-boris



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:19:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:19:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222234.384321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyBM-0005Xt-R4; Fri, 05 Nov 2021 12:18:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222234.384321; Fri, 05 Nov 2021 12:18:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyBM-0005Xm-NZ; Fri, 05 Nov 2021 12:18:56 +0000
Received: by outflank-mailman (input) for mailman id 222234;
 Fri, 05 Nov 2021 12:18:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFAl=PY=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1miyBK-0005Bj-UK
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:18:55 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89e9ee67-3e32-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 13:18:53 +0100 (CET)
Received: from pps.filterd (m0246627.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A59xV0U014276; 
 Fri, 5 Nov 2021 12:18:51 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c4t7k268p-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 05 Nov 2021 12:18:51 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A5CBlQ7051575;
 Fri, 5 Nov 2021 12:18:50 GMT
Received: from nam12-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam12lp2174.outbound.protection.outlook.com [104.47.59.174])
 by aserp3030.oracle.com with ESMTP id 3c4t5nk7fu-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 05 Nov 2021 12:18:50 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BLAPR10MB4884.namprd10.prod.outlook.com (2603:10b6:208:30c::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 12:18:48 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.011; Fri, 5 Nov 2021
 12:18:48 +0000
Received: from [10.74.104.120] (138.3.200.56) by
 SN4PR0401CA0006.namprd04.prod.outlook.com (2603:10b6:803:21::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Fri, 5 Nov 2021 12:18:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89e9ee67-3e32-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=+1n0aW1qRjyd2dJ1wc6zCGKxwvh8PrkR5DsZCsxE/yg=;
 b=Tpb398Q58F3UvaKlXDZ3LjmVr/1SeHv3RJg7dQ2vIY4MYe361f00iMMefdi3AQimos3H
 xUhZrhFZ3Y4sWk4akUYWNE93oMo0KSdR7dmeo53UkVhk6YPI4zxSCTZ5zI4gz/yH9APn
 hMNpC9hGlIM+KOKyaOd/vUymsFBk4OMCdOdP3qkGDR6STRxZAuX05IMfGPsZs3tZdjJl
 ELcxdWLDkZuxb2Cqt+s4P6qVKlfHN+ejz6vS0ZxycOLcI/ZD32W7DtoBQ3CqWn84WaKK
 0bUxdosXTde5/cDNFeRySDfLsSX/xs6TOpDvg55dJGUSeK/vx8Np8yybFr1itfioJndo EQ== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IIfPZC2jQ79SNDKx26An6CPYjcX366y9VFv9rVluftyZt6F1E0dHaDLNOVX8P0SjjCe1ak70iOWCKFH8i52nFCToQgMBK4mEGgEcJM5KeCFrn1Q4Qo6bcCIiOB8PzUAy9OwTfZKfrjFN+2dUZ5dmVxMcKrWVXYpx/dHIgkz/OgU59rIAtPUz+piQgCi6zBJx+PCDj0HxigUfyHNNQ7AC5/of+2g8JjeBDDMK0x+4aVnmle4WRqWlURlE7MBUP68EhqNLzxP8n3g2y7kDLR9XaMDxq6gPcYkEiYQxAb3s+scEd8UnchQzYchEa7kirAvfpbli3VH9/0Bk8nJg6SvoeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+1n0aW1qRjyd2dJ1wc6zCGKxwvh8PrkR5DsZCsxE/yg=;
 b=S38a36J/UYPwPWkGSoghDJzOxAoZTUXzkzF6wG3iwoXiUnXmO3mjpR+bA+ni5Il1tDK5Ex1UkNn2GxNXmBqS6N9vMqu75NEYm/fqow75Wr6wcTl47mzOPLRpxRS1HImbymKVKj2awvdBIs9F05zxrGG+F7L/Au8bMQv9oI05rADhHUUWyNVXLJR2PMH5rrqB/BdmtTeUVZcUSz666J//h/nImg2qQRgg4EIB3BHGMvoDhNLbmIBhAGBrbrwJZvNDNm3cJA6NOSm58qo7ZEgKWQAxrv8tIAGyuQ464jJrVgGllHw3hwHPXq+Zu2V6T/N1pcQFNepbTc1RnoYL/WEyvA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+1n0aW1qRjyd2dJ1wc6zCGKxwvh8PrkR5DsZCsxE/yg=;
 b=PSuo4W+ti9TE6iJDrUjOgrG+czn8IW41tLDQUD16n5kD2DisV4lalHh0MFqo0xJRj/AMxohEr+mpzpywXR/Pc9J4gN/VIZzqnrjJzJikPeGN/bEEauzMptcvgmCQfaphowEIyMO73KbNB8Jn6k2UlvgovFSJFJIe+byGUID/U9A=
Authentication-Results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <d4784df8-ca54-5a9a-6422-386e508947c5@oracle.com>
Date: Fri, 5 Nov 2021 08:18:44 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v2] xen/balloon: rename alloc/free_xenballooned_pages
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>
References: <20211102092234.17852-1-jgross@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211102092234.17852-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SN4PR0401CA0006.namprd04.prod.outlook.com
 (2603:10b6:803:21::16) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 15ab1160-79d9-4ca2-9cc3-08d9a0566b90
X-MS-TrafficTypeDiagnostic: BLAPR10MB4884:
X-Microsoft-Antispam-PRVS: 
	<BLAPR10MB48843E784FD089EEDBBC98958A8E9@BLAPR10MB4884.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2657;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	F8vIjgFmoXTo/O5nyvIovKT67V3o4ElZEQccBUNJy1Us4f8zPmwfT5HJMjKwoLoSNZdM8dKjujMeGPOMPa0fiI8oSoEHuOotxei252zzWqKibVFG9hPmhZvJ7JIG/YU/zjZfLJKpTyishfuDOSGBip1NqznfU3UIssmlheCDXhWK7//SQ8NQ0BGTbOWrkhEuJGdDaJoj+oy2EKDxpGXChpxwNccXrOdVsX82hQwu09dUcOpYC1aJL4rZXnme6QIrnYUY89Pd7y+6+K/GnfkLj71N2qYEKcJ0OL1a7i0ELKDoUg1Yg9/2vskAV9JZvC6lGSDr4MwrmseLITZQEEbJ6GwwBJa6VR8qkA5AOH/FaJ1UQ41URbTQN4g6afys2jAqziXyJnfiG8YsSmkE+e+XTfKyaJSm86alLJNrsTRMow5XO7jPNQKSEYrbKPVeEbX0iuxlBjzQKLVn9xWTB/cXQprZAOdvyX+9OHAuIfXUar5Yl63gsZvKaLVaDUWJCLH0yMcQ5szCr9wtSlh/O8M3A6lWiVxhDRgaP6/WErQTRfbFmwoHHUIzXXkcacc0kQhLrNktvklBVubIDluTrWzT1+PlADLRsLiUgNP14+T+cdr0AQdxfrwD3F8sh5znkbm8QBZbijcTtHNpiJ4tDq14YzsB0DguC5TSnkphiK8txSk48i3Vc95xaxw0y2FSPOCxk7XpLOe4cfwJbe8UuPaPG3AYA+EK21ir+iGYhB2PmcrUQ5g4/OSEZxPYZu1ZQXUa
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(956004)(31686004)(4744005)(26005)(186003)(16576012)(38100700002)(8936002)(36756003)(2616005)(8676002)(2906002)(31696002)(6486002)(508600001)(66946007)(6666004)(66556008)(5660300002)(53546011)(66476007)(44832011)(86362001)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?emdldjZHT29iTU9paE1lQUw2Z2dsSm1USW8xUU9ObkdhbTBuQitUT25uWHRR?=
 =?utf-8?B?b21Ga3lRMkV3U1hXQ1ljdTRjU1paYzNPUVFkQXBOSTlEMzcrcmNReE1VTElT?=
 =?utf-8?B?R2VmYVU2V0N1U3BzMmM3NjAwMnF3YTVodmhKRlZtN2tNeFUwQnViWUZoWDFz?=
 =?utf-8?B?SzJtZlc1RE45UjhudTMrZnJsL0Ruc3BlZGI5VGtvYnlQYVBET0c5WmhNUllv?=
 =?utf-8?B?Zk93TVRHSE11NXgyNGsyak9Nc3M2RzNaMXlHOTN2NUd3TzVzTW9VQ3k0SUJ6?=
 =?utf-8?B?WHVSeG94TVZQRjc3MnozWndXd2VjVjlGcnFkeXVIS1JXNzFWV1hBdmJsVU9W?=
 =?utf-8?B?dGZhVm5MVUhET1FEYzZrNWgzSXFrUStUM1kxeGhDQlQ1YmlzdUFZeWw3VGlE?=
 =?utf-8?B?dnNoSW1iN1RaWDBxMVZuVGwrMjNSYXVvSjlaN3Q2aFhpYVdHUXhIZVhsMUdJ?=
 =?utf-8?B?Q2F0VHplUGtqWU9EMTJUT3pIcWJlendvUWhXSUl2NnNObkt3MFlRMmpNaEg1?=
 =?utf-8?B?NnBkdzROZEtsN2hqMkJTR3RtUGtUNWJTZHhLcnRuc0tkekNZa1g4QThraU4r?=
 =?utf-8?B?VDcrRmVoTlBtMFMxTTF6bS83SFB6ZzBoL3FENjM4WDZMaDlocXo5Um9kMU5p?=
 =?utf-8?B?S2pjbitCY2xNVllFS3p1VSsxZ3N5eDVXb2lCaFdnOXhBZGJ3bVFHZWxWRXVW?=
 =?utf-8?B?ZVdtU0hNQ2JTRy9QN3NodUI5MHlCU0ViZnpTTjc0blRPM3lDVmNZVmFLU0Fn?=
 =?utf-8?B?VnF0YThLc0lJNXlFODNMam9Pb2M0RTBucmtadjhETHhuTDNQc1VTK3ZVRjJz?=
 =?utf-8?B?aE9DRDViU2dkZnpsQTJOZ0JCOEN2cEFHQ0d2YlVHS0JpdG1vbVdYK1lleURN?=
 =?utf-8?B?RVFTbHROSlU2UHZTK2JNOTlzNjJrZkt1UjdvQTlpeXA1WFhLNVZRaHk2eEgy?=
 =?utf-8?B?L3N5MlErc3ZNeUhleU1VeHdrMGpDVnlpS3BQK1hMSjVZUXlVQkJwNVhaNklt?=
 =?utf-8?B?TC9OeGJCbGx1UU5CUFY5bXE5YkFINUxsVVJoQS9QWkYxeFdON0p1bDV5MVJV?=
 =?utf-8?B?eGE4dWR6MUlCc3c2RU9GbnNKRmNJdXVRTGkvRldjMUZINlFoWWVnTGxhTWtI?=
 =?utf-8?B?cEFvdUhvWndOcnlvNld4RmEwWDF2bnJIUjZuR0F2RGMveVZMZytpeTc1K0hK?=
 =?utf-8?B?UFFPQWl0dmZha2tmSmFXRlpLdkVmMGc3Vk9rYUk4NEJ2em9od1JHVjN2ZVlK?=
 =?utf-8?B?VVBpL2h2eGVibE5ZaStmUUFRenU2SzlGcnRFMitpRHUxSUpla0xNdERJRm5M?=
 =?utf-8?B?eFFJa1ZjeExtQVNKK3F5T0kwYWV1OFBINVZjcmIzODQrZERtSk1MT3MwTjR3?=
 =?utf-8?B?L1JZd3ppajlVR0xlOXExNFo2QWhjQndaS2J2NFRYdEpzMVBiS1lxd2Y2ZDdv?=
 =?utf-8?B?K3RwUzRwTXhKbExDNG5leXlYeXd1MkxMSXFUNXRaWk1UWWc4WFV5eGpDQUhv?=
 =?utf-8?B?ZTVwMHdHQkhhYngxOTZKT0JqKys2NGNvbnJWbmtHTjRYVWxnbGZlQ2lpbm5V?=
 =?utf-8?B?d0VnSExRVmkxMk9UNEtsbzBRbG1WRlV5MDNtM091YUpJWkVncHNBYjBMRy9q?=
 =?utf-8?B?aUc2UDRMQS9CUmxMZVZ4Nmc1OUx6NU5oN3ZkaSswMUVUd3dDaGowQzhraC8v?=
 =?utf-8?B?d0F1RHpRc0ZzSmo5a0tGdm1nZVg4bE93Mlc2Y05FcWdrMmpRcEJQTk10VkpY?=
 =?utf-8?B?VitneTZ6cGlLVjROS2pVcVd5Q1EwT2J3YjViTkkyelRhcFVGS2RCYWhkWlBn?=
 =?utf-8?B?aXpOejMramErSnRmNlBGWkd1NGd0My8rRmFFdjZBR2U2cDR6V1U4Q0twdURK?=
 =?utf-8?B?aUFIM3NEd1djbHllNnVzYU1ET3JOOEgzU0FVOXFOSmI0bkR4L0lGUE5ybklr?=
 =?utf-8?B?dUhHYUM1UlYvYmxGVjdWNW1JV2Y3T2JvcURVQzZKSW1KOWJ0bUlRbkdiSU1q?=
 =?utf-8?B?S2pGQis0UEJJL3poWURUeE5GRWZraElRUndtcytFWmVXN3hheDFYK0dJL0ky?=
 =?utf-8?B?OGcrTUUrR3N6STlaTi90dmJkSUlZK1FyWDZpNkM2TndTZTBpZW1UdWJsNFlC?=
 =?utf-8?B?MlJvVzJBQzJWTkx5ZGkrSVFWdVVmMjQzNFZrTFpwQmphSFpDYUl3Sko5Q0Rv?=
 =?utf-8?B?Y1JxR052bS9MK2g5STZxaFRldGVKTHl1aWw3Mjlwb1hPdEJMUVp6UUpJY1cx?=
 =?utf-8?Q?QbYZrbu3JhrNX5ieB0IBFN9XHq3njP2AaLzmjT/hU0=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 15ab1160-79d9-4ca2-9cc3-08d9a0566b90
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:18:48.5212
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IhoFlncXnMDd/b/rKZAtckdGrA4x53axN0C6LI1ovuIGV5Mb6nU6Zw4afQb90nT9e9WdKiOCan05xoeuLd/R8uNBPwWgufEFBW8VoQkWjFI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB4884
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10158 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0
 adultscore=0 mlxscore=0 malwarescore=0 phishscore=0 bulkscore=0
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111050072
X-Proofpoint-ORIG-GUID: sdyWVEPLMy0y0LWnBC2Fn0GVmVBO8pu9
X-Proofpoint-GUID: sdyWVEPLMy0y0LWnBC2Fn0GVmVBO8pu9


On 11/2/21 5:22 AM, Juergen Gross wrote:
> alloc_xenballooned_pages() and free_xenballooned_pages() are used as
> direct replacements of xen_alloc_unpopulated_pages() and
> xen_free_unpopulated_pages() in case CONFIG_XEN_UNPOPULATED_ALLOC isn't
> defined.
>
> Guard both functions with !CONFIG_XEN_UNPOPULATED_ALLOC and rename them
> to the xen_*() variants they are replacing. This allows to remove some
> ifdeffery from the xen.h header file. Adapt the prototype of the
> functions to match.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>


Applied to for-linus-5-16b.


-boris



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:20:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:20:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222248.384332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyDC-00077B-7x; Fri, 05 Nov 2021 12:20:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222248.384332; Fri, 05 Nov 2021 12:20:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyDC-000774-4I; Fri, 05 Nov 2021 12:20:50 +0000
Received: by outflank-mailman (input) for mailman id 222248;
 Fri, 05 Nov 2021 12:20:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miyDA-00076u-MI
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:20:48 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cde1e27a-3e32-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 13:20:47 +0100 (CET)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2050.outbound.protection.outlook.com [104.47.1.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-12-fYk34GgpNYK3Ngv_6Zopyw-1; Fri, 05 Nov 2021 13:20:45 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2333.eurprd04.prod.outlook.com (2603:10a6:800:28::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Fri, 5 Nov
 2021 12:20:44 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:20:43 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0054.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::31) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Fri, 5 Nov 2021 12:20:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cde1e27a-3e32-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636114846;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=HDqEUN4ssFvG7PbZpz12I1u9v5m0rsvpqScC+frE0dQ=;
	b=hgy0SfUunOCFAW+2VakQP0ycT1khvu64IGNshgnQwf45nT9hL9PRpCuVrkNG01SzFGpp80
	krUusRtFatIyb8Usf46gPt4ZcFuOJVGkAVksT73jgkpqFSjsc0kwcq9XcXoHAknXTbaWoH
	rod6zIU/YAZaYogi/JD6GhTOoAK/44c=
X-MC-Unique: fYk34GgpNYK3Ngv_6Zopyw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ePs1oEB/Vu9AYAITyjGBgiqGdyZJCHucQ0uWw30vEgmJkLUUGxXQzHinewyEOYODlHGv+87AQc0D3kCUS59NF0qkVUPVojulwSH7PST4ebuYbjIvqdWGxjcYX+vwFohA0+PFPo5BWfMdNFQnSvAgvewZKcZQWaDJcs87Da/7ozYKBsRmAnBdSC92L2/xap80iaE330NopDC0m80MRSW0xSXG4OhFUjOOzfmaMgNJTkOv5vNgRWzg4tTwRRxIczjX14qBxUjhBiibGltv+0PpJsf1ZZ+M5rmJn8XUS3EiXULpF1QgcVXV3ELj7mHd1FwS46TE7DS0dWulCk3fZQStAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HDqEUN4ssFvG7PbZpz12I1u9v5m0rsvpqScC+frE0dQ=;
 b=c6l+iPVxhMynBkjTVDBpAnIO+x+7BAX2HlfDH1R2V5cpXsQUom8Lu1K7sklyIXWgLdTXpNRcEXNhazFE1OQ0yWNKiRsoPCjf3MMTKN46xi/X5qaeO00dZiEm3jK7L70cPj6OMxzIXk5WMYLZddY5ljX10p56F4ZpY8mQItTDkmVP4ZmaSi9gJB0I/XOQZFai81mcVe4DVA3a/7sjTNHk0PfGOkiybQs0HmuPNSpjZ43W/iFofRuD1/7WcpL52oS9RTTjrH39eBmjkGrV2nwihyeH3XJ9CWlPc6aAWzge1RjrUKIARwU2smLPERuRQ/XQgOnkc4ZFhgRmxaP3v+/rTg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e10f21db-3533-3c72-b3d7-7857f2f28160@suse.com>
Date: Fri, 5 Nov 2021 13:20:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v3] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: bertrand.marquis@arm.com, wei.chen@arm.com, iwj@xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105112148.48719-1-luca.fancellu@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105112148.48719-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0054.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:80::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2264d9c1-7d9a-4f80-cad6-08d9a056b064
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2333:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB233304F77DC8D98BFD62CFBEB38E9@VI1PR0401MB2333.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:257;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	oy8ZhSJx/SxyI7p4FgQmDOYy5C/CArZoDe9zQX/D+LGvtTYPpV+/+0xwD3W4XfjF/yTq6frxA7rqsclu0zO0E1Se0ijfJCHj6BLbw6H2+jdYBB6WcXMHxTYFaErLDFgzZtQC/O8XVrSBbPhlRXj0io4nwyT5YMAGs3urOjfmjzL2hI/HkMzsfHiXv2V3vjiI8V6t7wDVN4ftkEdnvkbpkIsLXqFD5Vtff6osPSLB0rqVNPPQ4nulI4ogZ/sI1x+wXGf5bYcM3oYOwe9syXYGyZl0wMgEgbkiM2K5PJM9yi18IWozWNgeJNJekzHnjQcA50dNDZuno1wezvS/pJcE4Fguves/ny5GpZy97NPM8tE8G1uC++5HsClQZ/5C32D9lTlkLjoWeZPheR2Xl+IzHJJf6+Brl5fxFU96ifxY7+3uj6FCbbSD8+F3ITADSdysC2YjRbBLgD1FCpgNGjqnJ0GgaRsiMbHMZtwPrW5RM/13XmjnN5Clgz/N4spDP+pGRlem9tGq6RNYsd0o0xssQj3mjbHMiJ8tilQwbdDNJfqItXAGw06Io7wYYbCVVqBbpC9xGqKzzx8Q9aJGmYoT8p7gWf2V05l4Y9tfT6H+Wtlg4VSw+aVgFbXLp5+oRW6wo3gPYhzfr8zsCBwL6CYKBf5wQ9kNPzT5i+OlGwwM+Gb1LQhH1yrKLCZOyTWYSyiqkNWLwinvQcmYhShoOYyl0M8HcEpTPOqa1M6KRPhZUKovaPOILKOHw8lo6eu6rX2W
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(5660300002)(2906002)(31686004)(8676002)(6916009)(53546011)(26005)(66946007)(508600001)(8936002)(54906003)(31696002)(86362001)(2616005)(38100700002)(83380400001)(36756003)(4326008)(16576012)(956004)(6486002)(66556008)(66476007)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QUh5eEFjSzNjUHRGTDRzQlp5WW1CZklwdmdyaHdpaE1Sb1BDMDE0ZUc5N0dj?=
 =?utf-8?B?VTYzZkxWU3dlMUJiOXR0Rmd4cGR3ajhHclU3VkVjN0NmL0VYOGgwTzNGYlNU?=
 =?utf-8?B?bWxobUdJUUNpc3VUZ1ExZG04bG92Q1VBRU1ob3grMXRkUXlJeHVXWlRKL3NV?=
 =?utf-8?B?SnJ3OG9qaHRJZW1oQ0ZCMUlRUlNTQkY1dXY1cTVPTTIyOUkwL0taUDNXOFhP?=
 =?utf-8?B?MXQrblova0I5WUtENmNqcFk3RGthTUVObS9pK21OTHBjVkV2U2NTUHZzY3RW?=
 =?utf-8?B?aDk2UUdHbitXelRFM29RZGNqVk9pQ3BIL1JFT1I3NUswQit2aDBnVGdTN2pp?=
 =?utf-8?B?M1VtclcvdEhOWHMxdFBUSXIwTUVEQitSQW93UXhxd05yWUU0aWZVR3R3ZFVB?=
 =?utf-8?B?czlBTHlpS3R3NEFzK3B5SFk1cWpQelBiSDRueGtvVVhzN0I1aElId1IvSDkr?=
 =?utf-8?B?c2wrS2pjS1dtT0JsVldpY28xR2NEUjRicFhvQW9qNzNEUytBVk5lZzJ4Wmhi?=
 =?utf-8?B?dFVqOFNmem11dnUrRko0ZUxGb1lULzUyU0FBK1FVVktOZUVwV3kxR1h2NHB3?=
 =?utf-8?B?ZEFaQUpBWC85SEIrTUVxajFuY05Zd2NJYmJwRDBhbzFtNDhxMTg0djU2cFMx?=
 =?utf-8?B?SERYc0tKaHRzbk1XTTN0aFMzR1JCcnRnNlZ3RENBMHNQaVBQQ2VlSnR1SWZw?=
 =?utf-8?B?a1UzVUJZcnhlZFBtRklTWXNFeFRSalJVRVFmdTltR3BiNmZNL1NyL0ZRNThj?=
 =?utf-8?B?a3FJNE9uNERsZUg3cVFtN3hoNUxYd3NtcjV4SUErUDFPK3BycmdBZGhDaGhY?=
 =?utf-8?B?WWdacFlXa1pONUVMSlVrbUNyT3o4T0pNNHBwZERZajZ6M0JnSE9UN2dvOEJ5?=
 =?utf-8?B?WUcyQzBOUkFCK3U5TFFHc0ZnUFI3YTBxRXdLcVdMUFF5emVlcHV6VFhJVExq?=
 =?utf-8?B?ZFdWTUVBdFJQREtuYWxESnNBMXdiend0Z2dBamlHTDFZK0poYjdVc2dCSXBT?=
 =?utf-8?B?SHp6b3krNElGWUlmaWJkZnpvYWhZUnlnVitOeDBPb2hrREhWcW1ITTg5NUpt?=
 =?utf-8?B?UDVwSEhwUEJWTFJ5VXp3V2NBeDd0bkw4eU1rbVM0d1h2UXEvQlJoR2NSQms5?=
 =?utf-8?B?d2hwV1pYVGs2b2dwVFVpL2l5aEFjTGdOdkdRYUlWNks4bW9hVEVyZWxRYjA0?=
 =?utf-8?B?b1ZVZktjZVJ3V1dXMnlVRm5mRWlCOWpxWFU4cFNXY0hxYjFFVDZlVmVmNTB3?=
 =?utf-8?B?a25vRDU4dW5vMWVtYVdsTkp4SmdoQ2RpTTZVd0xWbU9ENnBHOCsrUVdUaVU2?=
 =?utf-8?B?dFU1V2pUQ1grSHFkTGxnbzdpQm84WDVtSC8rRllHenlTTzRtcXRJZVo1SlZV?=
 =?utf-8?B?SXlqcUxNenJOZm5yN253Qjh2d0Ivclh5Z2U3Nlk3SjRRQ3VmYmlUY0pLbWZN?=
 =?utf-8?B?VDg1RlM1c0pzL2ttcHpXUXdqSTlYODZPNjBxbk5yQTBua0pHTDN4akdVN0pY?=
 =?utf-8?B?SHFobFhuY3BTRDRpU2FHMkFNOVBkQVUwSlNOa241bmpRNGdiTVNhWlZ6czJ3?=
 =?utf-8?B?K1lZd09xMCtjL0lCUjByWHdUOEt4U3JkUzZrZVhNL1dCK2lma1o4NFZWRVly?=
 =?utf-8?B?OHp1TFIrRDQ0d3g5TXI2bHNXekhCOEIvRlhFdlljSkU4aVo2Q3dMVHB4aWd5?=
 =?utf-8?B?cDdUQXJhM2pkWG1PQ0pVV21Zb250S0JhQ3VZU2hjM2R2QW41V21oSmE3NS9S?=
 =?utf-8?B?U0x5V1JJNG1IQlpjSXdhOVlRMFoveGRkYVdyQWJIK05maFhaTnd1ZkNTYWtq?=
 =?utf-8?B?MG4zcXErVW9SQUU1cFZzNUtFdEczUmlaelQzNXFPYnBFQXBIK0o3WVVxeGYy?=
 =?utf-8?B?WEs4dHFrRDJXZkRFelAzUTV5bTg0Zkd5UmtlSnNXWnFmbkFwTXUxQ3NnWm8r?=
 =?utf-8?B?QlRkVmtUdFFUY1I3Sk16d1A0dS9XU3hFUjNIeWZTS1Bib050YWs4SnMyekpK?=
 =?utf-8?B?b0VvbmtxeWVaQWFMWUF5M2QzTWFXQUtBeGZWMlU5OVFYYkkzTWNuZ2FpWUpR?=
 =?utf-8?B?cmJTR1hoUTJDcmIxWDJiQnNqaGZtbGZuM1UyMmNCWGQ4OUw5Tlg1NUpBcGZl?=
 =?utf-8?B?THkxVzgwRzFCWFc3ZEx3anM0K2ptWmlwUjVld1VyQ05WOXpscy91OEFWVjRh?=
 =?utf-8?Q?tFY57yZ+STm3ntsOIm2zE28=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2264d9c1-7d9a-4f80-cad6-08d9a056b064
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:20:43.7722
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DxGOKb0H00aKkfhI4a5YuqQ0RE1P8FSxf54iOoogoyavEbRrLr28kcdwslWDaKo9SLLy276yYpbplATwOqFgIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2333

On 05.11.2021 12:21, Luca Fancellu wrote:
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -121,6 +121,8 @@ static char *get_value(const struct file *cfg, const char *section,
>  static char *split_string(char *s);
>  static CHAR16 *s2w(union string *str);
>  static char *w2s(const union string *str);
> +static EFI_FILE_HANDLE get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> +                                         CHAR16 **leaf);
>  static bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>                        struct file *file, const char *options);
>  static bool read_section(const EFI_LOADED_IMAGE *image, const CHAR16 *name,
> @@ -167,7 +169,7 @@ static void __init PrintErr(const CHAR16 *s)
>  }
>  
>  #ifndef CONFIG_HAS_DEVICE_TREE
> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>  {
>      return 0;
>  }
> @@ -1225,9 +1227,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
>  
>      efi_arch_relocate_image(0);
>  
> -    /* Get the file system interface. */
> -    dir_handle = get_parent_handle(loaded_image, &file_name);
> -
>      if ( use_cfg_file )
>      {
>          UINTN depth, cols, rows, size;

With the dir_handle declaration also moved back here (as I did
indicated in reply to Stefano's proposal), ...

> @@ -1240,6 +1239,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
>  
>          gop = efi_get_gop();
>  
> +        /* Get the file system interface. */
> +        dir_handle = get_parent_handle(loaded_image, &file_name);
> +
>          /* Read and parse the config file. */
>          if ( read_section(loaded_image, L"config", &cfg, NULL) )
>              PrintStr(L"Using builtin config file\r\n");
> @@ -1362,14 +1364,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
>          efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
>          cfg.addr = 0;
>  
> +        dir_handle->Close(dir_handle);
> +
>          if ( gop && !base_video )
>              gop_mode = efi_find_gop_mode(gop, cols, rows, depth);
>      }
>  
>      /* Get the number of boot modules specified on the DT or an error (<0) */
> -    dt_modules_found = efi_check_dt_boot(dir_handle);
> -
> -    dir_handle->Close(dir_handle);
> +    dt_modules_found = efi_check_dt_boot(loaded_image);
>  
>      if ( dt_modules_found < 0 )
>          /* efi_check_dt_boot throws some error */
> 

... all of the quoted part
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Down the road we will want to constify efi_check_dt_boot()'s parameter,
but that will require changes elsewhere as well.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:30:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:30:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222257.384343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyMF-0000C8-9U; Fri, 05 Nov 2021 12:30:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222257.384343; Fri, 05 Nov 2021 12:30:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyMF-0000C1-5X; Fri, 05 Nov 2021 12:30:11 +0000
Received: by outflank-mailman (input) for mailman id 222257;
 Fri, 05 Nov 2021 12:30:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miyME-0000B9-H7
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:30:10 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d0d2b9b-3e34-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 13:30:09 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2051.outbound.protection.outlook.com [104.47.14.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-40-17nFVlFgOKKvdk-SO7fhVA-1; Fri, 05 Nov 2021 13:30:07 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2607.eurprd04.prod.outlook.com (2603:10a6:800:58::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Fri, 5 Nov
 2021 12:30:05 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:30:05 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0301CA0018.eurprd03.prod.outlook.com (2603:10a6:206:14::31) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.19 via Frontend
 Transport; Fri, 5 Nov 2021 12:30:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d0d2b9b-3e34-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636115408;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=Dsp1ygk8FLkuJXZ38flLcu/V0KRF1ARfOvhMMgkMWjw=;
	b=S8cPGqiRZeaLaDUqrimo+5EYIXPxkHCbgQDnUHMydatONQ4dBm6tuxAK8I9fXP+goz6Fzy
	uOq/m4MzWLeZ4l3GzKWnyH/rSdBXDuG8EJdSKt6RtWaVQGXGi3RZamBbCgt33OMHMfJ8xC
	hgXd3/voTICeLy8qxBWZd0HTBobAqow=
X-MC-Unique: 17nFVlFgOKKvdk-SO7fhVA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XP7cVYANgneKSi19cdx1iCbjPflK1QfSL9CRXt4frs+iaYkwmbKXnEpiotAwSLRZzQgXJ0Rem7Eo3GIZVdRhZF5Dk3sAWvs91pY52AKoskXdzijzCDwuPB+gqnVNdM8au21lGKJb0EOccHwdge30V72HKU/sWGLjXD4LWktKOurnW1JLKVVy/f/ZY3AIh28tvM1Ng9e+zp0vKRdPBMxAg3UAlzZ4Mk1v9cmV+YbWIO1HyYn7besCpSXE7Tajw+Y/ky8GyJSxfK/Fwms8czgjiW3f60ANUXTSAxk0O5+nuOzteCl1r+KKZ4kgTK4GeP+VZv9n2IqUEZhGobP6CoK9AQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Dsp1ygk8FLkuJXZ38flLcu/V0KRF1ARfOvhMMgkMWjw=;
 b=XywiRC8B8JuHXkNVK9nwpYVaRByG5da1Qw9jPdOiySVw/U293NseHi/KbWVdKwGrmbD5qI9S5yvuUILnaVNIj8aKET9BJRTa+oP2c37ilasgYtEI+84S5NQtQay6PUwg6IMnpCbJoC9JjcQ6fFISnjuySAvma3YfRq77gl5EleR1lQsEMvn4YZn5cR5o0Vgsxo4mtohKlDNnyQaVYDoc6ccdsBl++QfGuiYPQCWPty/WhM+1+59NYZthysBgf8EhX8mo8fFP7uPEQvPV0QcQdVpWjKaGQxlwIoJyrf/Bemg6T9Kc/Gk16LcPlMEs5XjqqOJ3Yl0ynzDI8xH0xktLjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Date: Fri, 5 Nov 2021 13:30:03 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/6] x86: ACPI / APIC / IOMMU interaction
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0301CA0018.eurprd03.prod.outlook.com
 (2603:10a6:206:14::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 16bd955b-f539-4656-394e-08d9a057ff2b
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2607:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2607E96E84373B40D8FFC4DCB38E9@VI1PR0401MB2607.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	t/hEtIKx/dPqGs9WGs+ylxa44HcLz1I+9CPLvAg7L7mY20NFuI5YtB+iV6KslZb08j94V4Lo6cpAgT3e5X6clATcXeUPpL5jY8CHWNOD2ds0PE0jE/8jPZrlx15iKTYMGSs+Vmfb1525EfBHOAgiqA7lp0wHfm4tRDIXwj2UREtNBDL7MDvkRrUn6xKxV869WwsMhBMxC4MPqo+8G9TWfThd1dLdXRdTkdrCiDG+x8yErmoUmeSbKR0MQROa/w//RMEu0lgZp6Wo1+N9gzM7pvaoHsFs4ZVv/FaazoLnb6PJtwh0bNIy7dbHxw0i6SG0OueyDoEL2GXnRFSUAxZPDtOHNN2kncy/pzHG8yNFOrkcxbPG7oBijAEZu+EPsRVjamOzdCHcm7HNrWyRXvCs3klhjAA3YTglLxa0xVvUQQKdiKZUOkQ5nRfBgPEaesgWsGcNCeogtwZFFXiNEAbwTTmEeZ7jJ0NuCtMwTw7tVwHpmOd7ab42/Z1vHGVNhSVhuNFYd4uvc6iq0X7G7Uu5rZUUSSm8kykx088+MnJtlBWs9NR8hs7NPSIINLejfORXkyFUgdbgCOqNA2RTNGNushqfsxGek7a0wLm3pq596oE0nZZesQbnLRxD3yvBJNSxW/8Aic0asiGIqhoMwgRMPu3TWsFQlr3OxVqEe3BLA6yvkxmdAVzRP8cChV1kXiry4ywhfp5E3aaqs2s+QJRWUmjP0PcLV3hJ3Xfw8VqIgSLt/LYqQbTIzqpaWD4LgT2i
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(66556008)(6916009)(956004)(5660300002)(2616005)(31696002)(86362001)(16576012)(66946007)(508600001)(4326008)(8676002)(36756003)(316002)(66476007)(186003)(4744005)(2906002)(26005)(8936002)(38100700002)(31686004)(6486002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eTRWYUFua0R3ZVVjanZ3M2N6bzVOUGFVWmc4dThOa25QM0s4OTdlK1lJb2pU?=
 =?utf-8?B?YzdmZjN0U2ZkVmlsRUdrZXMxc3REMlU0UkRhRU5oeE9qRG5YS3JDMkx2T0ZS?=
 =?utf-8?B?K2hFT0FJOUd0azZVaVZxc3pmakQ1MlhYR2JXSGVNZ1dqa011RFBNNHVmR0c3?=
 =?utf-8?B?Z0txZk45TG5Cdms1Y2hLcGRlRzdSMlVpTURzT2x0aTFmb1lFK2hta2xJL2VV?=
 =?utf-8?B?U21TZUwxL0JHdG1NWEhHNHZNL2Y2WnZ4Z1RPVnhCSTRlRG5pUzh0aEN4SVVn?=
 =?utf-8?B?ekNmWEk5bjFvYlE0Mkc0bmwveWFmNStlQWxhQ3krWlRRcHRMQWhobUFHNi9o?=
 =?utf-8?B?Mm5BVDV3QXp4T1E2SDVjREJhYzFUS3VBV0Z2bE4zVVlya204bGdGdm01cDNW?=
 =?utf-8?B?S01HV1lZY2ZtNmRHVk5lNkp6ZncwRHZhaDcydzRkTEkweW5ENmF5R0FYZWxV?=
 =?utf-8?B?MWErdUlkQUFkR0h1YW5qVVZYWldHcERoMk1KTGpQY2hVL3ZKTG1JZ1o3K01z?=
 =?utf-8?B?NWI5U2ZUL2tYZURnU2dORnYwZmMrQ0hRT1pzSkJURW9XVWVHM2lvMFNGL0hX?=
 =?utf-8?B?TDhDeDd6a09WNG1IVFQ2YlA2dUhHcHpkbXJ5TzQrQlVnd2RQL1U0NDMrZXVj?=
 =?utf-8?B?U2wvODFZSE9VZUtmK21sanFodDV1VVJBTU51a0JDNVBuSGtmNUhWSUN3dW1G?=
 =?utf-8?B?Z1JuNlhveDRPWGhLUnBLaDh3bXdoTjhKZzlvU1RCbE5pOFRhd2ZqQlZmS3hX?=
 =?utf-8?B?OEV5K2VLZHdDL3VCb1kxbVFGK2pxdkl3Y2tEVWJPdlNpTFJGMXNyVGRsclJB?=
 =?utf-8?B?QU9ycjd0dUNpdnQxTHpZclgzSG1SQ25vQlJ1Z25IR3AxT3JSdmFYc2tuWUNq?=
 =?utf-8?B?YUJuKzZMVitVVHVxeXdyQWhpOG4zTWg4ejZJeXg3ejhsZ3gzQ1F1SWVpVHRJ?=
 =?utf-8?B?VnFnOFROU0lLWlBqcnVqQ1ZHSTU5bnJQcTZBOG9PTytRckNBY3ZHcUdZa3N3?=
 =?utf-8?B?Z2tEaWt5VWJoTkVaMUIwcE1wZGF6clVxeVlOdVM5YXk4VFRBZVpnWVc3QzZo?=
 =?utf-8?B?L281b0JvSFJoamtaZk1yQVljU1hKNnhvd3BXdHZESXVxVThBSHh4TmJWbTVY?=
 =?utf-8?B?Zkk1MkMzQkpnVVBqVWY3KzJuNW4vRnpUL1hHbDRtNXFaYWpVQTM5aDNYcndx?=
 =?utf-8?B?dCtsM3cwMlJGNFN0VjVnK0U2b25QY1dhUEFBQW9JL0R5cmxoTHZtcnBVNmY3?=
 =?utf-8?B?VlJXbExwOXpPU3orTHE0cEFSK3FCcVJrS3ArWnJLSXhvVDFMcTVkMi9FejVj?=
 =?utf-8?B?QnhCY3ZEcFU5ckNHZXNvWldTL1UrU3p1UnZnRy9QY3laVHJUMjJrWXR6QTZQ?=
 =?utf-8?B?Q1RhNUhRZXBNL3FZMU9ENnpBQXp3Y1huekZrVXhYQjk1dUNJRjZZT0xFaUVY?=
 =?utf-8?B?VGw2blk5SGdSaG55UWpCdmszaWswcnllYW5iNFhRb3JlMkkyblZwSlh0OFdZ?=
 =?utf-8?B?dEtFUkpuRldHSU9PbDk2a2VZUlBlbmRvV040WHdLcDltY3NrVEU4N0E3MlNR?=
 =?utf-8?B?YWZadmJ0aUtXNTI5SlpoM2dKejVBZzYwemR5SHB6U1laRkVKOUhaVWZlWjRB?=
 =?utf-8?B?bkpmdC9XVGVyQlFadjcwWUZnVVp4NE85M094cW9RYnloU1Z0Zmx2Y081aEhy?=
 =?utf-8?B?RzBPalVPanoxMkVscG84SDBDamZISSszVG1qYVByYzR4V3pKNkc5M2tSSUJB?=
 =?utf-8?B?VHBwTWg4TEJRRXI5MytvWEkvMWFLWGloVTQrSjNoMTFKdFBXR0RLblNuSE1m?=
 =?utf-8?B?M0dVek1TUTNXcEZUQVdqZUh1TTRMRTMxK2EzZ1JzQ3Rwb2NvM1ZwQkhWbzJ0?=
 =?utf-8?B?SnhPcFRLL2k3WU52NUJhTzRjUWVBWjB5eWtnMTA1MURZajFnQnF6NUtFK2pG?=
 =?utf-8?B?blk2V0ViNkJMeFM0NFVwbDJTWDNjSy9kWnZJMHFVeGxFVHRsWFF1aVZJcFgy?=
 =?utf-8?B?clgxV3MvTCtDWFZXMUg3TmJXS1kxR2NsaXZTNTNoNzVQRkFwUkVLdzF3amxu?=
 =?utf-8?B?NHh1RWlWby9BVjhHQkZzaG1NRHIxUFVOVU5qS2t0R2tYcTc3Vmo3ZHNKSEl5?=
 =?utf-8?B?enhZWnpYb3QvVElXMzNMV0pBV2VzQldmUjRMWGxERjMzOXFSYWtGUER4Z2ZW?=
 =?utf-8?Q?hvfiuZoyROGbK5WLaJOSl0s=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 16bd955b-f539-4656-394e-08d9a057ff2b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:30:05.5376
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /NS+bof9I3OadD12MfOFEhqSkUyLVUMTejlcKin2ceJMdiwFyE4uKehPKRgGH2T2U8pa1VyzR1NB7cH0bvRJFw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2607

While reworking patch 1 (the only one here that I consider a candidate
for 4.16; see there) I stumbled over quite a few things that have long
been ripe for cleaning up. Hence the tail of 5 further patches ...

1: x2APIC: defer probe until after IOMMU ACPI table parsing
2: APIC: drop clustered_apic_check() hook
3: APIC: drop {acpi_madt,mps}_oem_check() hooks
4: APIC: drop probe_default()
5: APIC: rename cmdline_apic
6: ACPI: drop dead interpreter-related code

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:32:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:32:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222264.384354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyOO-0000n3-LJ; Fri, 05 Nov 2021 12:32:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222264.384354; Fri, 05 Nov 2021 12:32:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyOO-0000mw-IC; Fri, 05 Nov 2021 12:32:24 +0000
Received: by outflank-mailman (input) for mailman id 222264;
 Fri, 05 Nov 2021 12:32:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miyON-0000mo-Gv
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:32:23 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c83d156-3e34-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 13:32:22 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-19-lSjUHJ7rPrmeIepn1VvHJg-1; Fri, 05 Nov 2021 13:32:21 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4848.eurprd04.prod.outlook.com (2603:10a6:803:55::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Fri, 5 Nov
 2021 12:32:20 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:32:20 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0161.eurprd04.prod.outlook.com (2603:10a6:20b:331::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 12:32:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c83d156-3e34-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636115542;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eD3TE16l92CP4qd/opwvhY7rtYk3soAjAnhlGWqnci8=;
	b=QktXnAJlDVVkZKtenrzLDsHWX6DSuED/Hx7o7GgZl43734u+IH2aCPgZswJcRD7mwuZ411
	6+O2sex/hnyuW9LUk8HXFBDFVM6jBSve8cMyI2+yRCXPb+xqnI+Yix1tg0qIZQxBIexzLY
	N92yFarQpXS7Ev/6mF7+ADnOzTyvybs=
X-MC-Unique: lSjUHJ7rPrmeIepn1VvHJg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Z6evdVd8b0/2GuxJZRcgSrT3jvoS3bVEdrh75B/I2OgHQnBTa+8o2djW+awmjNd546V4cxHSk6ILPTcK+kIyfnCWt4vs8e/CJjfnJmJY3pBudEhNUAmgrInKK5Ncql/mfgpwSpiJ7jKHsgZzqucF/j4RFnLa+/WeQ2oqd+bL0Ld8wiBXpk5TYgvq7gRmQ+ICTdFDAcE3ilJ3ql5+A0XMj/4TfrBMglq8o8a4G6KStHPFl4eKUrFaQBxrdqi45b5VRNa8YpRhlFD5bhtxWlfaxuSeKVlcrzttuQyYoBPSy3km2xGQmDObBVZ6Wum7AJuj7OUPxfldnLYvQ1CHzC74CQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eD3TE16l92CP4qd/opwvhY7rtYk3soAjAnhlGWqnci8=;
 b=A+TVSN2Dttn7XP5CmPVy2ZeIfb+W8Ulo6DTDcLeJ5ySuZkosvRMjmelSqXosLnIef4r38q27kDs5vWE4X0IJxfzdGVLnWWpzaiIu5bo5zb0M4t+VoMsf54v3ojIOmFsizxP4DbCya8kJ92W6aMPacAsCWllL7sVoGOnQCMgf0TojxzzbpgfieDWYd+drT1DnXFzV3M3D/XwyPbWtnst4ppLGy+WIuMbpCkMgOwFoEG8C/IOq5BvcIk1Hejx+bF2z52S1gVsrVYi164QxVUZo1wMkxIhniy+D2+/brw6xfYskwBJVFmuswq1xvepcq9s04TiX+4QG1A+WyYOMqRLA3Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
Date: Fri, 5 Nov 2021 13:32:18 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU ACPI
 table parsing
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Ian Jackson <iwj@xenproject.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
In-Reply-To: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0161.eurprd04.prod.outlook.com
 (2603:10a6:20b:331::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4b873c24-d10c-4b83-bc46-08d9a0584f83
X-MS-TrafficTypeDiagnostic: VI1PR04MB4848:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4848B3F3423BCD1195A58650B38E9@VI1PR04MB4848.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	lCRgs9ToYOeIyJ6z/18rDA0igNGeweNkzniOVaaOMVHXrzNs4wpLGsxzhv6lqfJ1kja/R34s8agGIyX9tmW74esPxHDqbsGz5CRUUiSSbaQD0TaHm1uVSPWgM06lNApf8+t0nIBk8S7DiGbmfU0ficGN3JIVJaol5MwDuZBnZT3frlVW8Zo5noMyqyzPaajAt0gh5naUOjBfS0OHO3dE2C7A1p7lomnL651OOFgErIfe7RK1WguPG22s5ZPiZdKzZUjCHGobv2hp5/pwYr9lBVaxEIEB+OB3BTDtb4u0bRe57i+ThJ7HMGAZEPJomDfp2Y9IBRxn/BTLs958anmHR1C1c90qesT54VaxZeIKAbYPFt5v3poHGBS/mrecfdJQkycscx6tz00SqvucR+EHI2/ZdeCk3yDXLG+H4SEtShRReQCKLnu4TO5NMJe48hmPcsDcKeseHl+pcTz4UjuNvdIWRPUSOm50iL0pct3AiWnNteH09lLFnNw7TqZ+0MmRBL4SqW7e5aUfZSY7bfNL7iWxsmmBMZN8vjX0twFmfwlnuvW1RW6DQormUmpz+Sj53ANJKFQsOcmyAW8K4Lo5oWmNKuOmUDEFHz0MNNXLo6BJDuOk0Qj5qJjs5vV8wO4LiBwQmTBSSTzcqRcms0DmPeXUPo/8nt/7mSmp2zG6XFq18mbeVlr1kBPlbhEneF1fiLDaLPqvOdR3Vtbzk8VgcMaad7LmcEqed19NPjiYBzg1/Tgq641bAovVPAKqwi0m
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(6486002)(36756003)(66556008)(4326008)(38100700002)(31696002)(26005)(5660300002)(66476007)(66946007)(8936002)(86362001)(83380400001)(16576012)(316002)(31686004)(54906003)(8676002)(956004)(2616005)(6916009)(2906002)(508600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M3d6YkpPU3FEdnIwWFZBRFVudk1EQXIxOVJNVEpzTE1YZzdpUjhnNmtvR1I5?=
 =?utf-8?B?Qm9nTWw3TjlWMEZxczBHUzhXb0VJeXN6WXU3K0ZUUGlnWEdhVXZCek5DWSt4?=
 =?utf-8?B?M1N6SzAzeVFQVnhLaSs3a09UUXlZc0lmWTBXV1dTNDBXTGtPVVZMMks3enZH?=
 =?utf-8?B?Q09SYjE1bzNrRUxGRlg1cmR5L0g5T0xVaHhwOEtpTXM0RmVMSG53OGFXNEF2?=
 =?utf-8?B?OXRDbTc4djNHMWFrUHl0Tll3cnRwb25MNVdJOWxYTEt1WnVUbzNxUHcvUjAx?=
 =?utf-8?B?M1lVbm9UY2tCUVhTMzVwaFkzc0ZDeFlpbzRpT01ueG82Rk1QOTJaY05pbTFo?=
 =?utf-8?B?VUcxVFdlaCtzRDJXVWhjRXlTY0g5OWwxTHBDZktIaVNwWEpKZDdwMkxld1BC?=
 =?utf-8?B?ckF5YStNMEo3aHdYcGJZNXFEekhuOGYvbXFKb0dpQ3g3NDBIMUlFYVk1Qm9R?=
 =?utf-8?B?M0lLQ2crZTYvaHpjeThOSjZvS29HeG1pM3VtVjRYQ29Pdmh3dXN4czVZc29D?=
 =?utf-8?B?Q2NvZ0RVK2cyWjhiai80N1AvbzY4VVhwYlE2NmNpbmV0K2RpdEttUTlJUjl5?=
 =?utf-8?B?dG1LRlRiVTgxVUFxQzd1N3FBckhuSHYreldhQW4vYXdJS3RWWVhjS0lhNnBj?=
 =?utf-8?B?aERodFcvMnZEVTNrOUhuT1NNdThRNHhXVyt3bUY5S2xiNFJSRi9Ebi85WE5I?=
 =?utf-8?B?cXRuQ1hRTmtXM2pBQVZVTk45RlJaNXNPYzAxMWRPd1FwRHRGR3JlcjhNSUtB?=
 =?utf-8?B?ckRhWndJK0VUMzZNdFZlYVZuVmNkOG95djVweEtlbXFEWDFqNlRFRUhzRjMv?=
 =?utf-8?B?ZVpxenQxcGU4VkdLSTZEZkNRT3grY1pneFVqa1lqT3hwQUxmL2hYcnJZeDBM?=
 =?utf-8?B?MFRhL3pXb3VtRmpucEJJTmtWandYbEJQcXFSaWlHOTJXTFlaUU50OHhDeXRp?=
 =?utf-8?B?OTc5WGlEeFRQUXpoZk51OWZDaFNhNmRKcnNUY0dDTExrY3diQkp1eW4wNDVU?=
 =?utf-8?B?UWZQS0w4NUJPcnZzbUE3MFZHQkZXTWZWVmZOK2R3K1J3YmQzQlJ1RHAzS0Qv?=
 =?utf-8?B?cElDTlpCSXIzcmU4dUI1OGJySjdEMUZTY2FuK3MyYWt6M1NFTG52OGF2WmZL?=
 =?utf-8?B?RnMwYnZZT0ZFL1VkV0pKNmxoSU83VllPNVdhQVh3c1RYTkJBR0NFUnMyelJm?=
 =?utf-8?B?RlZJNHVweFVNV0RjQzJvMld4Ky9VRVJyRU9KcUxwbFpnRXIrTFRrNGdhNWFz?=
 =?utf-8?B?WCtQcDEyYmVWZm1wVVpvK29VU05qRGpZdXZaTUhTTU5GaGcxcTB4ZmFTNXl4?=
 =?utf-8?B?c1FOcnZ6L2c5ZUYxc09sVnBHL2dCTCt3Q04xUlJ5NUlwakdCRWVhZXRtbnNS?=
 =?utf-8?B?UkpNdHZRY2RLWC9ZWHc4SFVPbWxiN2dvVngxNmJYclJ0a1JVRWdYTjd2bnBG?=
 =?utf-8?B?SHBsdXFmSldYY05wZFBkeUhKQ0xIZ3BRd3AzSmZldkljN3ZGQkRua2JrTG5B?=
 =?utf-8?B?MDNEa0JkUmRyZnBmTWl4T0RIQXNnZ2Z3MXVDalpvbjdPS0dtZDZrNlFDRFJk?=
 =?utf-8?B?WUhmWkI3T204WWRwM2hVbFZOSjNpSGc5TmNZS2svS1Rab2JhU1pRR1VtT3Z3?=
 =?utf-8?B?MDFIVTlNSmdzNTZzeVludW82dHB0Qk9aUFZHK1dUL2dhM3gwSE9EMmNETFdV?=
 =?utf-8?B?RDJQMFE0U25DWXExK2FsbTBvMEQvSnF6M0lYdlVNSE51dnNZUlZjK0I0ZEVy?=
 =?utf-8?B?YmVaZmhpZmgxbWNYNFZQUERCSGpkZFRLeXVyd1Vmd0tENmExQmY1U3hqM0tz?=
 =?utf-8?B?anZnam5KMVk5dUc3cWRIV0VWM1NkQVFoa2R4eUVDQUpHQnJ4Zm9QU1krU2Vh?=
 =?utf-8?B?UE90c3JKa05WVXpsVTBFTC9tenUzcWpVdDkrN3hmanFORXhxTFhDY3kyRVZP?=
 =?utf-8?B?SldQTjFDay9ob084aUhKMFZjWmZPSG9HQWxVcTFsa3hjd2FJNjFVQUcvWXZk?=
 =?utf-8?B?dTQ4cGJ0aElTOUVhR09vTVR3eG1jRGtiY1V2MjZhcFZ0WTdMKzRiMmpsY2hX?=
 =?utf-8?B?Wm50WlJHaVROY1BnNWROQTM3czNjU2VPcEk4RDhFVnE0Y0pFMTY5UEdvZFc2?=
 =?utf-8?B?VTZFWWtoK3ZZaXJmTGp0TFVqUnIzUTJMaE5mUTkwb01hY3l6Smlwc1kwZHZt?=
 =?utf-8?Q?tKLRkWV8fdAyt17U5iPkTgI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b873c24-d10c-4b83-bc46-08d9a0584f83
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:32:20.2394
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: w4H0iw0fLFKKcTCqwIEOUP7SzwULCOOO2khwePjCMSzrVUs2shQS67PBtUq/toNtxbm4+eBaOXp1+0sf5Gfdvg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4848

While commit 46c4061cd2bf ("x86/IOMMU: mark IOMMU / intremap not in use
when ACPI tables are missing") deals with apic_x2apic_probe() as called
from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
affected: The call needs to occur after acpi_iommu_init(), such that
iommu_intremap getting disabled there can be properly taken into account
by apic_x2apic_probe().

Note that, for the time being (further cleanup patches following),
reversing the order of the calls to generic_apic_probe() and
acpi_boot_init() is not an option:
- acpi_process_madt() calls clustered_apic_check() and hence relies on
  genapic to have got filled before,
- generic_bigsmp_probe() (called from acpi_process_madt()) needs to
  occur after generic_apic_probe(),
- acpi_parse_madt() (called from acpi_process_madt()) calls
  acpi_madt_oem_check(), which wants to be after generic_apic_probe().

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Based on code inspection only - I have no affected system and hence no
way to actually test the case.
---
v2: Don't move generic_apic_probe() invocation, instead pull out
    acpi_iommu_init() from acpi_boot_init().
---
4.16: While investigating the issue addressed by the referenced commit,
      a variant of that problem was identified when firmware pre-enables
      x2APIC mode. Whether that's something sane firmware would do when
      at the same time IOMMU(s) is/are disabled is unclear, so this may
      be a purely academical consideration. Working around the problem
      also ought to be as simple as passing "iommu=no-intremap" on the
      command line. Considering the fragility of the code (as further
      demonstrated by v1 having been completely wrong), it may therefore
      be advisable to defer this change until after branching.
      Nevertheless it will then be a backporting candidate, so
      considering to take it right away can't simply be put off.

--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -757,8 +757,6 @@ int __init acpi_boot_init(void)
 
 	acpi_mmcfg_init();
 
-	acpi_iommu_init();
-
 	erst_init();
 
 	acpi_hest_init();
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1699,6 +1699,13 @@ void __init noreturn __start_xen(unsigne
 
     dmi_scan_machine();
 
+    /*
+     * IOMMU-related ACPI table parsing has to happen before APIC probing, for
+     * check_x2apic_preenabled() to be able to observe respective findings, in
+     * particular iommu_intremap having got turned off.
+     */
+    acpi_iommu_init();
+
     generic_apic_probe();
 
     mmio_ro_ranges = rangeset_new(NULL, "r/o mmio ranges",



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:34:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:34:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222270.384365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyQG-0001P9-2F; Fri, 05 Nov 2021 12:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222270.384365; Fri, 05 Nov 2021 12:34:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyQF-0001P2-VF; Fri, 05 Nov 2021 12:34:19 +0000
Received: by outflank-mailman (input) for mailman id 222270;
 Fri, 05 Nov 2021 12:34:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miyQE-0001Ou-NV
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:34:18 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b13866cb-3e34-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 13:34:17 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2052.outbound.protection.outlook.com [104.47.4.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-3-frPjDaL1OYuAG_gX1lUW4Q-1;
 Fri, 05 Nov 2021 13:34:16 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 12:34:14 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:34:14 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0072.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::49) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 12:34:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b13866cb-3e34-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636115657;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IY3+tB01KnV66hCC8nS+KXB316mGWF0nPKRUL2Nl/rc=;
	b=JHZV9vd4QanvznIidaewjTOCLPmkAy0CFKMMKcc8WdrO8ojU0s605YfWu29OK2znO1xubU
	JuztvimRVQ44zRFFI6K8vWuDmj6axQvjTIQyBAsnkU2tE4XqQlZUumKl2APq4jtxx3MXcX
	Ayeoboug37PvS/yv0UawYhmacTAdbPg=
X-MC-Unique: frPjDaL1OYuAG_gX1lUW4Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=V7R0Xv5Ld6OuRQ8hsDlU6coEom2JxV+rXvxmRQyOrn+6sSbPn75u6j+skmdQWmpA+gXr7m9YkaLzIlEAekFgMrgjnHrhNPbgNZy1bWPvK/Qjo4AtbwRd7KAwOoWZq9fiBLeZdw2LoBTHYRuiDqQtNc/LrczF1dNP4piPpc2+YfcChOG1wUtgeTLd9KZA+OZsDUVGCmPRwznOe0x191UZVdEzzPIyl+rF68wqbWjvvTgvtAu0c13E+k6ruvOEgPipFErHMNwpxonsa8XhxKWcEc5H4MljYiF/pDj+6Y5tmzql3goe9XvtRv14K7vOjONIFzLZB+FSSfe4icj+8kBizg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IY3+tB01KnV66hCC8nS+KXB316mGWF0nPKRUL2Nl/rc=;
 b=DNn8Xj0XWZDD5nZlAkWwnPQKMx9AdVqYACinAi+XmQ2zQ7dVzHvRx3ogUThBHRo9OVkLDjpeMU4GiB+0NB/QyGTLaViQ6rqTCuXPLBZCRa3xVpZEnqO/bdRvbBSwQRNN3Zde4fFf7esaOpgwry6W7WbOi7d/DDf7h6wycQUlc5Q65En2F6XYcJlkeXns8/5/vneDmEWnLsU/lTmC9G1i+r511V6GSVxqUYzOyNG9SWH3XjA5iqsBBdUBbGYG9tPZJ8OHsDMBzVC6fuV/AVYLZdpReYUqw/8gVdHd3TMd8LU0HNy1IXT0qu20+4TgwJ1RzVRDPMrxRfSDy9mHyk4kxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7e2c8dd5-e20d-5678-1fad-1b79fd8e06e4@suse.com>
Date: Fri, 5 Nov 2021 13:34:12 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH v2 2/6] x86/APIC: drop clustered_apic_check() hook
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
In-Reply-To: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0072.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:80::49) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f39bf716-1ebc-4d9e-055a-08d9a0589385
X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB703758B7F135D3049C9BDE1CB38E9@VI1PR04MB7037.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	BppUMrcG47H8MYWFscXO+Tdf4+NdVnj6bOSBHoZh7tOZMSb8fVXcyA7yqm/4O3U5IwCFnovlFtp886kYt92IixW4fQ1acW8R+6fYiycOUp70+xpScQ1uxZU2u+9oFjbbJ2u0qrnA7wyvQf/dy0g3WTptMl30oM+HFLrHdJxe7jMr7hTgFREkFyGthzlvIHC5Gb10exrwSA+fjhH+VRY6WIWOwVLPll/9yt9mfS6UCjI11Pbh2ybTsnczcbMCGlbORzRUnPKiBjN8EqOYK9oQZDsHLJoFflyQTh1MLn2NYGmZE5q6ClkIIJ3YD5Yi+PLbpTrBXvtaOBy3EetbYKmEvOUuCCeXt2fk5wYdE1f6D2ZFhSz95o6Q5RxKqjWkkNkz7640ZlO6fuwhKc1xJMe+3AGBblhwGQgR1n70awPTeRBdqdB6Weh+Fr7/gkPcMgOgKINBXQBKgqzL4lzDG0sE2LmI94XrGCe/diIbiHM2Sl/G4EZVf92wNnB8HefGim2NHoQxAWeQPm+lCS8w5mmEi8ZNaMjcIT4/rdtfT5AHwArv/Wgwbkwbb71/eGj4+NJUK7UCwhoqGcL64QQwT0sz9AhiOnsZFvRaleFTXcVmJi7MCTcyGCRPSSUN9a6VTb781cG4atRVtF9jmMPt2UfMX2pcrnwgt5kJARg3CIRTHgxJ2MrlyVosis4OrQauhTp9EtEVTWYoWNfSIl4ZG0Iy9GG80aBbBBb1Cl1xWKuNiS9M625cRRu6zPMhRm3hgKN6
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(26005)(8676002)(956004)(66476007)(186003)(38100700002)(6916009)(36756003)(86362001)(31696002)(31686004)(83380400001)(4326008)(316002)(2616005)(6486002)(5660300002)(508600001)(54906003)(16576012)(66556008)(66946007)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aVg5TE56NW1yQ20veHdWbmhYQ2dnL2xiS1RQSFU5M2VKYVdnMjBqMEFHNWI4?=
 =?utf-8?B?V1lUQ0dMaGg1dlZ2YUY5Q1h2TUlTTXNmUFhQSk54cXlSa2ZyaUltKzI5N0Y4?=
 =?utf-8?B?dU83Mys1QVM2RzR6aEkrS002aGlxZjNaQmFuRk9xaUNQY3MzSnFHY3RnWEdi?=
 =?utf-8?B?S2VISVJhemFWS0U1SFJBK2REcEhjQmIwS2tNSSszSFRmalZTdDRXbVBZdklO?=
 =?utf-8?B?T2I5akF1Q3Q3eDVRWGM1YldNUHRUcU5KSTY2N25Fby95THNmK3NzWEZuVWtw?=
 =?utf-8?B?NG1QMDcwMU1ONThYcGhTMVpxMEduYmhIb0RBUVRSTjVJRFBHN3FXRE5xRWV6?=
 =?utf-8?B?TFc2ZFNFS3oxRUZVZzVaeE1QMnpDczBmaUdwYS9YcWVoMDhONDlmMk96RDBT?=
 =?utf-8?B?MUdyVm9mSHhFbUpQN3ZkY3JiSFZIdFdCdzN1MG84SkVpcS9DK3RWSXZMWmJw?=
 =?utf-8?B?cThqdFlJOHM5eHZ6YThLQ3hhanV2RFp3WjN1V1lkVTJRc3FLWXArSkpiVzU4?=
 =?utf-8?B?ZWIrVzlYZ2tEdCtVU2l6SDNxcXZqTm4vRFUveGZ5ekhlR0loZFlIWDEyU1FS?=
 =?utf-8?B?OHRiRXdyUWoxS3ZEUFpiOVh0TW93dC96Z3IrbGhYUTBycy95aUpuZ2tUUFZa?=
 =?utf-8?B?L1RGMEU3TWczRHZzakRjMWRUZVJHbmJWOFlNWEJCZzBNMzVMQUFNUmtJZEcw?=
 =?utf-8?B?czYwUldqMHRZOEIxTzkzeVRUc0JkS2RPcDZCVmRmaDRPdzRWemJ1c3QxekVy?=
 =?utf-8?B?dG1QaE5FSXluUWY5UlZjV1h2N2NTT3FlUVgweUdvQUdzVmZOUnVpTGpkOUtC?=
 =?utf-8?B?cEFBVmI4WTl5RHhQMjlIRDZrVmwzYzJSS1NaM2FOZ2JZMllHL3YzbDkrUU45?=
 =?utf-8?B?eVNLc01BNUFBcFA3TkhQNTZjWmdmMFhnRkZRZWVJMU10a0tQUGhmbm4zSHNP?=
 =?utf-8?B?ajROYmdsUGZoNkZrYkxPdGtlT0VLZjFBTG9UdGNqQVVjY1dRUGYra0VTdXdD?=
 =?utf-8?B?ZGJSM0txUzEvK21vMllOcUhkNmxXL3dNTnVxWkFPUHpCSDF4S3pKbzVRV3J2?=
 =?utf-8?B?a0s4dHZBWnIxbmtwTXVBdWtOblRzRzdyWUJEQ2ZQV3V4VHVuamMrcDdoTWNN?=
 =?utf-8?B?TTZzK082dEgyOHNRZ2ZNUXJJOFExZTJqM05rMUVtV3I3YTNyVG04dUxLM21G?=
 =?utf-8?B?aG5HRmI0SGRnUzhXekhjZUlLcHo4VWN5cHZBbUxTVWtQUGhQbWxJRVF1MWhl?=
 =?utf-8?B?amdNWUozczFhZ29FRzVYMzJsRVdmcUZEMEtvak9UbENPMFlZR3MxZklMbUtG?=
 =?utf-8?B?eTJWcVlGY1hLWXVPOHJzTXpUY1l5bktKd0YzY1F1d3dTYlBHanFLbmp2TDdD?=
 =?utf-8?B?bkp5Ny9WV1R5QnFiMklPQjZydm11RFJOeHh5WjlJdElRc1pFM1RUYlVhL3FK?=
 =?utf-8?B?cXFHR0h5bVQ5b3pmd1p2eW40YVJZTnlVT1VBeFZXMkNMbzhqYU9YRGk0MnRD?=
 =?utf-8?B?UDN1YytHQTA3SVpRVFpDWFlHbDNsS2k0Um5yR0xCSUkrby9TZjJTVnJqVmcr?=
 =?utf-8?B?TFpLS2ZkTklVZUwzQjZBRVZMNCt2dmVRZVY4UG1icDF5ZXdiTmtPNWlmQmZI?=
 =?utf-8?B?M2hka1dtTFhRZjJCVWkreFRiOHlRaEhqQnc2eUZkaC9FRnhOc0ttMllBYzV5?=
 =?utf-8?B?UHVBb2ZPbHI3SjZhRUxFcjU5Nm52S2d5SFRYc2owOG0rQi8xQzNzbjdNVkkw?=
 =?utf-8?B?aEIrRWFFSVFFc2EwQUZDaGZPRzBlWGs5eG92ZktKU3dCNGJtaGFWc0UyVG1q?=
 =?utf-8?B?U0ZtQm9mSVQwUm9wM2tQQlMvbmxjOElraUovUHhTZkRMUVBsZjhTWHVuTFpJ?=
 =?utf-8?B?VkQwSmJuNzJvejcxZzJZN3dnSDh3T0dyRUdxZXh5clgvUWswOG9UdTU4bmdH?=
 =?utf-8?B?M21nQXltbmV6TXRvczJZNVQ5M2VzVEJXRHprY1FWOEhJaW9XQktweGN4aG5K?=
 =?utf-8?B?Z3c1Um5TZHRycGNobVNJZ2w3UFlpNE5GOStaVjN0U2tBUnJMS1NlM3c3VHlD?=
 =?utf-8?B?Vm9mZEJaZi9SbFB3QU5aS0FnWWpicEpDL05wRndqUG9tVDZsZWlud1ZKMmx2?=
 =?utf-8?B?ejBmcXI4ZDVwREl2a1dxdEwwaDBhcm5MOWp0S2kvV0dpWXdCZW9zZDJzVTRL?=
 =?utf-8?Q?yjFErOq//qdgkeHIsfZt9cU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f39bf716-1ebc-4d9e-055a-08d9a0589385
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:34:14.3539
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Oo6VaNffHIC7lPi6AuBdRTjs9KbdJjoIDwPujLA9mGeAKOeNDG/ABRbhC5swhSRXjnuxroQxuFtaqqGc94l/Qw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037

The hook functions have been empty forever (x2APIC) or issuing merely a
printk() for a long time (xAPIC). Since that printk() is (a) generally
useful (i.e. also in the x2APIC case) and (b) would better only be
issued once the final APIC driver to use was determined, move (and
generalize) it into connect_bsp_APIC().

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: New.

--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -674,9 +674,7 @@ static void __init acpi_process_madt(voi
 			error = acpi_parse_madt_ioapic_entries();
 			if (!error) {
 				acpi_ioapic = true;
-
 				smp_found_config = true;
-				clustered_apic_check();
 			}
 		}
 		if (error == -EINVAL) {
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -243,6 +243,12 @@ void __init connect_bsp_APIC(void)
         outb(0x70, 0x22);
         outb(0x01, 0x23);
     }
+
+    printk("Enabling APIC mode:  %s.  Using %d I/O APICs\n",
+           !INT_DEST_MODE ? "Physical"
+                          : init_apic_ldr == init_apic_ldr_flat ? "Flat"
+                                                                : "Clustered",
+           nr_ioapics);
     enable_apic_mode();
 }
 
--- a/xen/arch/x86/genapic/delivery.c
+++ b/xen/arch/x86/genapic/delivery.c
@@ -19,11 +19,6 @@ void init_apic_ldr_flat(void)
 	apic_write(APIC_LDR, val);
 }
 
-void __init clustered_apic_check_flat(void)
-{
-	printk("Enabling APIC mode:  Flat.  Using %d I/O APICs\n", nr_ioapics);
-}
-
 const cpumask_t *vector_allocation_cpumask_flat(int cpu)
 {
 	return &cpu_online_map;
@@ -43,11 +38,6 @@ void init_apic_ldr_phys(void)
 	/* We only deliver in phys mode - no setup needed. */
 }
 
-void __init clustered_apic_check_phys(void)
-{
-	printk("Enabling APIC mode:  Phys.  Using %d I/O APICs\n", nr_ioapics);
-}
-
 const cpumask_t *vector_allocation_cpumask_phys(int cpu)
 {
 	return cpumask_of(cpu);
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -75,10 +75,6 @@ static void init_apic_ldr_x2apic_cluster
     cpumask_set_cpu(this_cpu, per_cpu(cluster_cpus, this_cpu));
 }
 
-static void __init clustered_apic_check_x2apic(void)
-{
-}
-
 static const cpumask_t *vector_allocation_cpumask_x2apic_cluster(int cpu)
 {
     return per_cpu(cluster_cpus, cpu);
@@ -175,7 +171,6 @@ static const struct genapic __initconstr
     .int_delivery_mode = dest_Fixed,
     .int_dest_mode = 0 /* physical delivery */,
     .init_apic_ldr = init_apic_ldr_phys,
-    .clustered_apic_check = clustered_apic_check_x2apic,
     .vector_allocation_cpumask = vector_allocation_cpumask_phys,
     .cpu_mask_to_apicid = cpu_mask_to_apicid_phys,
     .send_IPI_mask = send_IPI_mask_x2apic_phys,
@@ -187,7 +182,6 @@ static const struct genapic __initconstr
     .int_delivery_mode = dest_LowestPrio,
     .int_dest_mode = 1 /* logical delivery */,
     .init_apic_ldr = init_apic_ldr_x2apic_cluster,
-    .clustered_apic_check = clustered_apic_check_x2apic,
     .vector_allocation_cpumask = vector_allocation_cpumask_x2apic_cluster,
     .cpu_mask_to_apicid = cpu_mask_to_apicid_x2apic_cluster,
     .send_IPI_mask = send_IPI_mask_x2apic_cluster,
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -410,7 +410,6 @@ static int __init smp_read_mpc(struct mp
 			}
 		}
 	}
-	clustered_apic_check();
 	if (!num_processors)
 		printk(KERN_ERR "SMP mptable: no processors registered!\n");
 	return num_processors;
--- a/xen/include/asm-x86/genapic.h
+++ b/xen/include/asm-x86/genapic.h
@@ -32,7 +32,6 @@ struct genapic {
 	int int_delivery_mode;
 	int int_dest_mode;
 	void (*init_apic_ldr)(void);
-	void (*clustered_apic_check)(void);
 	const cpumask_t *(*vector_allocation_cpumask)(int cpu);
 	unsigned int (*cpu_mask_to_apicid)(const cpumask_t *cpumask);
 	void (*send_IPI_mask)(const cpumask_t *mask, int vector);
@@ -54,7 +53,6 @@ extern const struct genapic apic_bigsmp;
 void send_IPI_self_legacy(uint8_t vector);
 
 void init_apic_ldr_flat(void);
-void clustered_apic_check_flat(void);
 unsigned int cpu_mask_to_apicid_flat(const cpumask_t *cpumask);
 void send_IPI_mask_flat(const cpumask_t *mask, int vector);
 const cpumask_t *vector_allocation_cpumask_flat(int cpu);
@@ -62,14 +60,12 @@ const cpumask_t *vector_allocation_cpuma
 	.int_delivery_mode = dest_LowestPrio, \
 	.int_dest_mode = 1 /* logical delivery */, \
 	.init_apic_ldr = init_apic_ldr_flat, \
-	.clustered_apic_check = clustered_apic_check_flat, \
 	.vector_allocation_cpumask = vector_allocation_cpumask_flat, \
 	.cpu_mask_to_apicid = cpu_mask_to_apicid_flat, \
 	.send_IPI_mask = send_IPI_mask_flat, \
 	.send_IPI_self = send_IPI_self_legacy
 
 void init_apic_ldr_phys(void);
-void clustered_apic_check_phys(void);
 unsigned int cpu_mask_to_apicid_phys(const cpumask_t *cpumask);
 void send_IPI_mask_phys(const cpumask_t *mask, int vector);
 const cpumask_t *vector_allocation_cpumask_phys(int cpu);
@@ -77,7 +73,6 @@ const cpumask_t *vector_allocation_cpuma
 	.int_delivery_mode = dest_Fixed, \
 	.int_dest_mode = 0 /* physical delivery */, \
 	.init_apic_ldr = init_apic_ldr_phys, \
-	.clustered_apic_check = clustered_apic_check_phys, \
 	.vector_allocation_cpumask = vector_allocation_cpumask_phys, \
 	.cpu_mask_to_apicid = cpu_mask_to_apicid_phys, \
 	.send_IPI_mask = send_IPI_mask_phys, \
--- a/xen/include/asm-x86/mach-generic/mach_apic.h
+++ b/xen/include/asm-x86/mach-generic/mach_apic.h
@@ -14,7 +14,6 @@
 #define INT_DEST_MODE (genapic.int_dest_mode)
 #define TARGET_CPUS ((const typeof(cpu_online_map) *)&cpu_online_map)
 #define init_apic_ldr (genapic.init_apic_ldr)
-#define clustered_apic_check (genapic.clustered_apic_check)
 #define cpu_mask_to_apicid(mask) ({ \
 	/* \
 	 * There are a number of places where the address of a local variable \



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:34:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:34:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222273.384376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyQe-0001v2-Fo; Fri, 05 Nov 2021 12:34:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222273.384376; Fri, 05 Nov 2021 12:34:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyQe-0001ut-By; Fri, 05 Nov 2021 12:34:44 +0000
Received: by outflank-mailman (input) for mailman id 222273;
 Fri, 05 Nov 2021 12:34:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miyQc-0001oS-FF
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:34:42 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf862ca3-3e34-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 13:34:41 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2059.outbound.protection.outlook.com [104.47.4.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-25-BJeZGZFQPaWWITxkYE6xIA-1; Fri, 05 Nov 2021 13:34:40 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 12:34:39 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:34:39 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0062.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Fri, 5 Nov 2021 12:34:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf862ca3-3e34-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636115681;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=vpyFyOIyYBFgdujGQvciBKudkZZ0UUaeJu4HvGRPCY4=;
	b=GlIgAY4FXa5x/j3KGJ1OmcI7+CNSWJyiQX9d1U5HGY99GxeO4N1EfQP/abojeCR3cd9432
	IU00hpJqhqpatGfTfVLdN/pTbNxHbOggCcNsS3AdZpOTM+wqEl6dNdeYkRXKxAcIpomic6
	QawNgm1MZsa3yaQ+FyCFg/dE31MnW9M=
X-MC-Unique: BJeZGZFQPaWWITxkYE6xIA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ANtaR4RXqBt0ME6t3m/xTHzDNRdEn7OxEow/A4vfMN813rS1j4l85Xij0vUAlRiYYh5mFdKsiAYRiNrowET8WobzKz1Pq5v8Ej1q9u+sizaFRFq20bJ0HJlIvPfLNfdq4mVUaJjQltwPM6ZJQtCjMp2/j+iAqkS49+rri8a5wHk9acSo9eLv0vQI1CDQw5vLpfWZUt/YH+wM+JBIizs+vjFUvDLMDpCw8Zfy7RtGaU8D0zIh3x6QCvUK3OkfM/fRznxwctLJjg1XpbeVXyaENol49j0QI4bo/hg1obFc7O9OLfC48iu21C1sxNtwCxx3i2fp5qIT0Nez1D0bz8/dOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vpyFyOIyYBFgdujGQvciBKudkZZ0UUaeJu4HvGRPCY4=;
 b=fJNLe0gp5zWk4gO+5wwiOhC3Q319uAbHYuDwDAsoMwztQ6jPnQeOy9F5XqqEHvUlVNtYD0ofD5sCM7fbNY9Hl/YwHdPrduN5MCY4U+SVjdq8s/lHCt3x6KkpKQOaBPsXB/JCyQQeBAu1ErdS8i0QUoIogkaXYqnFdO/LuR/cj7CMsa6Hn4nCbrXJM7nV/6atckyLWPYyrBIQl1hl/7bNUNje5BPDn/DfCzo0dd8kcdvv5gvM9Yt+3cQer9KpyyvkFFT8pwU5H5rbFMSPvsQ7BeiiRl2w2mUa39vLj5TjeLLKWU9lHJm+xYDxy2MjI4KbNZeOhtMfCvYANl9pCxrcAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <777dd74c-37a0-20b8-72b4-fe52890aa9e0@suse.com>
Date: Fri, 5 Nov 2021 13:34:37 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH v2 3/6] x86/APIC: drop {acpi_madt,mps}_oem_check() hooks
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
In-Reply-To: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0062.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:80::39) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0ca4ca57-430a-4d23-4661-08d9a058a267
X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB703768ABE9FA63E7CDDA0704B38E9@VI1PR04MB7037.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OiwxTodr6iCtBxTOwgEIV3/Yx65J3jKARHm12A+PU0OX66vLwv/jPrDGUIDcX4axnc5Tfn1QN3EDjjODUtdDCsdyO5qBLmlfqXZAcl/Gec3gkdotdprHb6u9Dg7xc6mmzs6g2/RvVUCvFYCtDXFaEshQcabQlSk7fq/wIgw1FocPhZUyMwkQKEbCd2GIqPt5MpGIgLyVZ5VQ9sJbkb6Rnq04OfrAkqx9Q/7Y5V704gAK5ZTz8mB9BbMuAAHbJmv/nASXjx7ROFRtB/LjzpBD/E6JdWPHPma14UEZDgKyw4+C4JCgTSrRet+b4Tg1Y++Z1hg5ksoVTbmooJf6GzDBsiw0QcXkW8kZISsOKvUCiRIsJTMSt5Mn9W+ooj87+qXjfCYzdNW+QJuQf+czsNZLC4uuftKynL7F356DUdWA2nsUyMTdVFDqrDfHr/5Mb881kBiAOwvTxxPXbxPgcU190x373Ez5xw/hUoPGmgbnzSZpJUktm2bXgyCdRQJ9aUZHOWod2NmWlbNoZTnmncGY/Y0QR7NF2w143Iann8G+/apEAfIxzf+vto8GbuGAt2qtlM6N4mY24o3ga21seSLGtrVXwRxWGQ/NvTt6fMmiKcmE4V3msUTRqTUG3XdE51owdE10MtnfyJidqBPGjnfV4SWd8DKozxtyPjHE2VVWkM3Ite/R+sgcFO5FHG7AqI0ndaXgi+Mgb7q954Ji92W3OoMPWUuuf3ERQdfGKRxEoGY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(26005)(8676002)(956004)(66476007)(186003)(38100700002)(6916009)(36756003)(86362001)(31696002)(31686004)(4326008)(316002)(2616005)(6486002)(5660300002)(508600001)(54906003)(16576012)(66556008)(66946007)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VnpPRUI1OHg4SkJqVW14bXplc0QzWHFwUXpZTjJmUHFBeWZlTlgrQmxocmR4?=
 =?utf-8?B?NktSOG9FblpYTVg3VkxwQXhVbkt1UTNLTjN1VUJhVm0vVXVzK2pDNGVRNlpv?=
 =?utf-8?B?QUlEeXYrVWhIRFYydzJaMjZxZFRBMFFPdElUUHorODZrTTkrVzVKa1pkZWpG?=
 =?utf-8?B?NUhheGd5ak51M3V0R01pS0xGOGZia0RlaWpKOXN5bytqaFJjK1VNOTRIYnps?=
 =?utf-8?B?bHorR3BsU0hZRkRGbnlHTjFKSm52bVNJOEdIandNMklwQ0dPK25acytjRjlL?=
 =?utf-8?B?ZXYzSFlvQW5ocVBESjhUZHdRMS8rU0tpQVZuRHk4WTJwK2pWdlJ4M0JOSmJO?=
 =?utf-8?B?STRkQm5qS0VpRGs2MUtaTWdnUzhrQXpGSnVaOWdLY0UxM3hUNEtXb3lqZXg5?=
 =?utf-8?B?TllEdEg0V1lwMWFyQVhJRjltaE9tRzVXeEp1bFVKb3BRMmYxZTF1QU5wdjBo?=
 =?utf-8?B?UDlXWmkzUFBQbDhPOEQ1Yy92cXI0VHNxNE1zT3NwUVhQVnE1akVaV1psVnFV?=
 =?utf-8?B?ZTFhbWZaVFNhSEJVQi9VU0R1bGhnbnp1TU1pajRWZ3A4RE02cDR2cGxQeE9X?=
 =?utf-8?B?WFVrMVJ2V3ZoM1cydUJ1SGVibjE1c3VtTlpTUm5NS0V6Z3BOK1FHN2FuMHVV?=
 =?utf-8?B?MnNGSkFWQncrajdGTEVVK2tINUwyT1NEZUJSZnNPU1JsTVRCM0xnaDNIL3pn?=
 =?utf-8?B?eHphVmVnY3pRNnM0bTlrTFFIUHF3V1V5OU9uQlRaMGxtQUhoSjRMU0JIZGZZ?=
 =?utf-8?B?emxtTXdSdWtiaGpERXVxMGNHMDBOM1I3eDNaWTRuVFhUOFFoS0xXNk9waU1x?=
 =?utf-8?B?TXF5YXhSUXV2VTNUc0lMWEF3UmVTclQxL2dQRUo1dXJnaXI4SkNnSUtEMkl3?=
 =?utf-8?B?L2t1bkJKQ2xzOUFkdU9zZG5NRnh2STNWWHJRTXY1U2FaNk5uVXN0Unlzb0pW?=
 =?utf-8?B?Sk9MZHFqaTRCQjhaekVjaHQwNHFEdWNEZnhZOG4wc1ZKd1ZzZThJYlZUMWU1?=
 =?utf-8?B?di9XRkx6N3VEZWhMclZ5Q2g0T0ZxM0trcVlwYnBnZkFhMXZ1VjJXclgxOXpz?=
 =?utf-8?B?THBBS0RFRHYzSzFtS1J2MFd3Tm1NRHloSUV0eUdOTldYZG0ydzhEK2VDNGd1?=
 =?utf-8?B?UXdGZUY3dmNDWTJBR0ExNEkxUVZUMDdMS1dJamdlekpBM1J5N3VQdDBmdmpZ?=
 =?utf-8?B?TVV2MDl0VkpuOFdsRzhhenFvTDJ5ajVGektlc21BcXIvbm1QQ1RvRUwxNU11?=
 =?utf-8?B?dXN5TUJ5d1dsaWFTWWFEb09oQWNuTG9hRG9oWTczOXcxRHpPVFVBZ25jaVVl?=
 =?utf-8?B?enNMTlZQemNEWllkaXY3NGpNM3dpNjJIUnllL0tLeWZHUDFzM1IwWG1Rek1S?=
 =?utf-8?B?LzBodnRIeXVtYlhrTlk1S3Vuem1HQVgwamF3amZjK2FaM1l5MmlSSHplbUVz?=
 =?utf-8?B?UU5pTmZQQUJ0RnBqWnU5amdNdXRZditZNVZPNmdHWlA3cFNqQmhhSTM2RjNY?=
 =?utf-8?B?Zk5VeFRIalFZV1FuZ0tYbklNOENHb0x2RXowbngvZlFyWEhVcU9tNTVVMEh3?=
 =?utf-8?B?dE5WdFB6ZVdpbmYrMm9qN1NpblVab05RL0psK2NTQTgrYyt6N2RHai9oVjRu?=
 =?utf-8?B?dnQ1ekJOTFNsb1UwOHJJQ0s0ZWI2WDVJOWxEQ1I4TWxvdWV2WlAwYWVmOW1E?=
 =?utf-8?B?MTM4UldINThqdEJHYkZ6RTlSOGJHR0krak9lZFZsMVg3a0FOdDZFZVdGTVpU?=
 =?utf-8?B?enVzdjE5SzU3K2U1aFpVZWN2ZHhCM2FOa2N3Tjd4Ymc5a2wzOVNJVmtBQUlw?=
 =?utf-8?B?OFA5Ky9TV1ZBMzBoNFIyWFdSUFdpaFZ0bXlzR3hjamFxMUdURE5JdUZvWGhL?=
 =?utf-8?B?L3ZoQmVDeXgxd0d1NktTc2JOUXFUVmRBbmw2ZVZWR1ludnkvYmtHYXRQU3Vh?=
 =?utf-8?B?UXNRam9tWmU4aUtjV0tXeGVnT0F6Y0NlcVl3RGQ1QlhJVWpFOEw4aFA3THZ2?=
 =?utf-8?B?d3pPUFZUay9VczYxdFJKaGprTlp3dGw0NXdLUXhVSldicXh5NXhwaEx1a2sw?=
 =?utf-8?B?dk5OS0FlV0x5WVJPanhxWFU2UVNTRDRzcy9QOWFvV3k5OHBTZEdCUGNtaEEr?=
 =?utf-8?B?S0pBampweWVRUHpXcWFWbGU0V3dOWndTRk5tL0pjVmdJOHlxejFTakZtK01J?=
 =?utf-8?Q?LIHjeWqyBRrNtUfd7KDmGjw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ca4ca57-430a-4d23-4661-08d9a058a267
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:34:39.3038
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: m6CwI0N3/xQtc3a2lPLc8N1fYueJp3tEDjuUdOz/s7iGaOtdquSw2oxfukZg/eyDpeSGm6wefCYBQB62P+Ntdw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037

The hook functions have been empty for a very long time, if not
(according to git history) forever. Ditch them alongside the then empty
mach_mpparse.h instances and the then unused APICFUNC() macro.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: New.

--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -39,7 +39,6 @@
 #include <asm/processor.h>
 #include <asm/hpet.h> /* for hpet_address */
 #include <mach_apic.h>
-#include <mach_mpparse.h>
 
 #define PREFIX			"ACPI: "
 
@@ -75,8 +74,6 @@ static int __init acpi_parse_madt(struct
 		       madt->address);
 	}
 
-	acpi_madt_oem_check(madt->header.oem_id, madt->header.oem_table_id);
-
 	return 0;
 }
 
--- a/xen/arch/x86/genapic/bigsmp.c
+++ b/xen/arch/x86/genapic/bigsmp.c
@@ -8,7 +8,6 @@
 #include <xen/smp.h>
 #include <xen/init.h>
 #include <xen/dmi.h>
-#include <asm/mach-default/mach_mpparse.h>
 #include <asm/io_apic.h>
 
 static __init int force_bigsmp(const struct dmi_system_id *d)
--- a/xen/arch/x86/genapic/default.c
+++ b/xen/arch/x86/genapic/default.c
@@ -12,7 +12,6 @@
 #include <xen/smp.h>
 #include <xen/init.h>
 #include <asm/io_apic.h>
-#include <asm/mach-default/mach_mpparse.h>
 
 /* should be called last. */
 static __init int probe_default(void)
--- a/xen/arch/x86/genapic/probe.c
+++ b/xen/arch/x86/genapic/probe.c
@@ -78,39 +78,3 @@ void __init generic_apic_probe(void)
 
 	printk(KERN_INFO "Using APIC driver %s\n", genapic.name);
 } 
-
-/* These functions can switch the APIC even after the initial ->probe() */
-
-int __init mps_oem_check(struct mp_config_table *mpc, char *oem, char *productid)
-{ 
-	int i;
-	for (i = 0; apic_probe[i]; ++i) { 
-		if (apic_probe[i]->mps_oem_check(mpc,oem,productid)) { 
-			if (!cmdline_apic &&
-			     genapic.name != apic_probe[i]->name) {
-				genapic = *apic_probe[i];
-				printk(KERN_INFO "Switched to APIC driver `%s'.\n", 
-				       genapic.name);
-			}
-			return 1;
-		} 
-	} 
-	return 0;
-} 
-
-int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
-{
-	int i;
-	for (i = 0; apic_probe[i]; ++i) { 
-		if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) { 
-			if (!cmdline_apic &&
-			     genapic.name != apic_probe[i]->name) {
-				genapic = *apic_probe[i];
-				printk(KERN_INFO "Switched to APIC driver `%s'.\n", 
-				       genapic.name);
-			}
-			return 1;
-		} 
-	} 
-	return 0;	
-}
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -27,7 +27,6 @@
 #include <asm/msr.h>
 #include <asm/processor.h>
 #include <xen/smp.h>
-#include <asm/mach-default/mach_mpparse.h>
 
 static DEFINE_PER_CPU_READ_MOSTLY(u32, cpu_2_logical_apicid);
 static DEFINE_PER_CPU_READ_MOSTLY(cpumask_t *, cluster_cpus);
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -30,7 +30,6 @@
 #include <asm/setup.h>
 
 #include <mach_apic.h>
-#include <mach_mpparse.h>
 #include <bios_ebda.h>
 
 /* Have we found an MP table */
@@ -326,8 +325,6 @@ static int __init smp_read_mpc(struct mp
 	str[12]=0;
 	printk("Product ID: %s ",str);
 
-	mps_oem_check(mpc, oem, str);
-
 	printk("APIC at: %#x\n", mpc->mpc_lapic);
 
 	/* 
--- a/xen/arch/x86/x86_64/acpi_mmcfg.c
+++ b/xen/arch/x86/x86_64/acpi_mmcfg.c
@@ -38,7 +38,6 @@
 #include <asm/mpspec.h>
 #include <asm/processor.h>
 #include <mach_apic.h>
-#include <mach_mpparse.h>
 
 #include "mmconfig.h"
 
--- a/xen/include/asm-x86/genapic.h
+++ b/xen/include/asm-x86/genapic.h
@@ -21,13 +21,6 @@ struct genapic {
 	const char *name;
 	int (*probe)(void);
 
-	/* When one of the next two hooks returns 1 the genapic
-	   is switched to this. Essentially they are additional probe 
-	   functions. */
-	int (*mps_oem_check)(struct mp_config_table *mpc, char *oem, 
-			      char *productid);
-	int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id);
-
 	/* Interrupt delivery parameters ('physical' vs. 'logical flat'). */
 	int int_delivery_mode;
 	int int_dest_mode;
@@ -38,13 +31,9 @@ struct genapic {
     void (*send_IPI_self)(uint8_t vector);
 };
 
-#define APICFUNC(x) .x = x
-
 #define APIC_INIT(aname, aprobe) \
 	.name = aname, \
-	.probe = aprobe, \
-	APICFUNC(mps_oem_check), \
-	APICFUNC(acpi_madt_oem_check)
+	.probe = aprobe
 
 extern struct genapic genapic;
 extern const struct genapic apic_default;
--- a/xen/include/asm-x86/mach-default/mach_mpparse.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef __ASM_MACH_MPPARSE_H
-#define __ASM_MACH_MPPARSE_H
-
-static inline int __init mps_oem_check(struct mp_config_table *mpc, char *oem,
-				       char *productid)
-{
-	return 0;
-}
-
-/* Hook from generic ACPI tables.c */
-static inline int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
-{
-	return 0;
-}
-
-
-#endif /* __ASM_MACH_MPPARSE_H */
--- a/xen/include/asm-x86/mach-generic/mach_mpparse.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _MACH_MPPARSE_H
-#define _MACH_MPPARSE_H 1
-
-int mps_oem_check(struct mp_config_table *mpc, char *oem, char *productid);
-int acpi_madt_oem_check(char *oem_id, char *oem_table_id);
-
-#endif



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:35:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:35:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222277.384387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyQy-0002UB-Pg; Fri, 05 Nov 2021 12:35:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222277.384387; Fri, 05 Nov 2021 12:35:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyQy-0002U4-Ln; Fri, 05 Nov 2021 12:35:04 +0000
Received: by outflank-mailman (input) for mailman id 222277;
 Fri, 05 Nov 2021 12:35:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miyQx-0001oS-PY
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:35:03 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb4327ec-3e34-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 13:35:01 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2169.outbound.protection.outlook.com [104.47.17.169])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-38-XtlarPb2OJSLhouHKRnBTA-1; Fri, 05 Nov 2021 13:34:59 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 12:34:59 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:34:59 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0301CA0004.eurprd03.prod.outlook.com (2603:10a6:206:14::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.19 via Frontend
 Transport; Fri, 5 Nov 2021 12:34:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb4327ec-3e34-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636115701;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eRkmeCDY9qmOnl/LgdTXyOV/AKSNeWTq/aTjmmt073o=;
	b=kg9DXIdJQQoYnk66qxpCWctoxYbcjGpCwuXUHu2RTgxBHJ1i8Epjpz5vW17w8At79Ott0x
	T4uc3TbBOdzC2XzKqDy8NawWbRPPbnGC4ySYyRd7SvY2q7mO8R+id9DLo/QW2gRoautObP
	VtHR/4RIiBsXLIWYwezRC+XtRq5rJB0=
X-MC-Unique: XtlarPb2OJSLhouHKRnBTA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hLYriAh8JmamKWYSHB8x6DaO9zEd2sXtCa1j/cErARPRS9i1MIL1KOyWzIHWLgwhGLll4mwUPSBdHfer0vWL87mYifkd6ypdMmObMtyQIXAAtZKFhopGBG5iNI9+aDOD4m9rU6UqF6JcXzCgQZDfuUhNdpb0NqLTBLdK/3BX3zL5lKUbXv5T1du1k8A2J1bikJ6iWccekJpwYgrQ4bLvX3uxNDZDwa98DXn7Ej332JXeZDoi0YsxBbIFg7CYNwYjiDXHwxs7rPd1pE2ceT/4wrNonjXT5tNTzQZCplU7VrCO1narfUudz09WeAYHNcU59C2VtmnTACNP7EiZ9xjZ2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eRkmeCDY9qmOnl/LgdTXyOV/AKSNeWTq/aTjmmt073o=;
 b=KfU1I9KEEihNtulQuXPDwfjE2CYQf3caDD7gtsAVMnXQZ729Pr5WuydNGaXnBYrRnnEekXfELpCY01uoC4Ac/MMqNe4UDHVZ6iAgIpBVdD1CAjAnHCjRY2JScFRT3eTGxXHZmJnwvrVFr1mttTSRCozCHLj2rw8vgGWj4piO4ic6HOXR/FL3tdHUbGPs0kpjAFPxBwiAlGmzKdr4IRD+3QCP4tpiZ7V5YQqEBk9KJdH54OPwZKkBvG1kWEnUj391cwynqPMyT7JAH/eZ41+i4ZQrJJ3kHob+tC6JO8XmNJk0E2n2CTLvNd1PKL+ESwBU8bybA/+BxHMB5XEr069A/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <38e0ef5b-0cef-9fd3-ea5d-8cf76005c689@suse.com>
Date: Fri, 5 Nov 2021 13:34:57 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH v2 4/6] x86/APIC: drop probe_default()
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
In-Reply-To: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0301CA0004.eurprd03.prod.outlook.com
 (2603:10a6:206:14::17) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 09bd1a6f-b8b6-4ee2-b3ea-08d9a058ae3e
X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB70377A269FCAB8A32ABFC3FCB38E9@VI1PR04MB7037.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	TAeIZ0doTKpMEknzpKYkr6OaIIeXsI6sCNwY/iLeF5qnYgbkvRYCcF+K4ySlRQEQaytUv2Tw95okM3sPjqbRDDruuL32Wrcvc4yuT02ZwRS1S6QHtZ7jwGX4ON+e/aEvD4epWqYasQJrkY7yj59TbU4HzjGmlKWblkVGXFtLrX91O6i2LZ/la9ymjKwc7JxGZEnnm1oAMIhchCmL2rHeIvJ77e6tiMBAYcOVPxJQRXGQEp1A01KrKah5e3UCCE09mtjjWFCzHIVqH5yaWvWAjItm2yK2Zyu7+1iHzStyG0WrjFIP35v42mYNmdgstuJEqLkyfcSnZVdwhJjcURDrcltiCy0+cdi6t2duxl2iSarminO3RdQreXS5s42UedPPsb1UjczAQeyAxsya15IuBF/Vh2bF4/leYzte7sPZtC4rAykUflqEj03CLb7ZluUqvA2B8gVSgvoJl/DElw2suur6CT03XZH+28zh7xAUqFckYvtS2LCPeqUwD5txf7QqP3TFrwKuFsZPIJkROGN2ft2Bma8nzC+DlHa3M4Y9w582dH5k3CYhfFZaFdk2V3kca1pqERepr/CcXUA4kjDq+Umw7C4IyGWYeau01Jwl/XD06pcsALSYcfdCGsHy8ktTf5gGF6GRlV98y6J5oG6sIF+IS9uU4JERFNbbKBUPhS2i3IeimTwRsAezQNnFnVLao33x1l/R8uya1Ud8ryVflgRF+ke/9Ga3kAqpoUu30eR0rTxgYQD7hS/fiillhd/yGvvtqlF8MbIbwBxDjfBp6A==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(26005)(8676002)(956004)(66476007)(186003)(38100700002)(6916009)(36756003)(86362001)(31696002)(31686004)(83380400001)(4326008)(316002)(2616005)(6486002)(5660300002)(508600001)(54906003)(16576012)(66556008)(66946007)(2906002)(43740500002)(45980500001)(309714004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VVg4aGNxbTZkSDZCRDhudlg5M3NVWlNnOXNBaFlRNHdQcGNERUZtRTJLd2pr?=
 =?utf-8?B?Um5USnQ0c01BcGJrVWlTWHRXaVVJa2xsV2MvZzN0Y3UrMGdIQXZIN0wxL2ZQ?=
 =?utf-8?B?ayttdkRBZG5Xd3VLTFdHejM1bjQ4aldhRjdUOVVRaU5Ec1JtSFdtYWFJM00r?=
 =?utf-8?B?Vm1oYzFyMWR0enRjekVzZldYWkZEeFlNblVCMTdwTDFOTEE5STQrVjJDcE8x?=
 =?utf-8?B?b3pVYXAyMHlRQjRLQk1ibHZtTGdCSkRWTEpwQ293RS90ZlVlYkwwUGNnZk8x?=
 =?utf-8?B?QjFoQ0pPb2tBSDNENWV6Z1h1dmdLYklmczhEZExFK0ZMMzd6blVmdTdoaUtU?=
 =?utf-8?B?QXpxVTNPM21oR24vVWJYYlJuQ1hxd25sek5vR20vd254TjhlSW1zK0lySTlr?=
 =?utf-8?B?YWZRVFA5b2dWWDFlU1IyU0hBVmdZKzFEcEc2MldhamR3TUVsdnU0RXF1VjlK?=
 =?utf-8?B?d1Y3S1hKRjZqS1NTdHZzYTAzdFBhR0w1Vk1oVzVwNnZsVWRUY1NzN1BCMklp?=
 =?utf-8?B?aEFlUGRGM2NGcFdMd1hyUXlybzlOU0ZDMzEzWjE1UWkwWCtHUkhRbEtLcHFJ?=
 =?utf-8?B?N1hqSEFMRUY5cTdQZXd0SHBKWXprWjBNNXgvMmJ0UUJLTVYwZkFiWjAxWk1P?=
 =?utf-8?B?MGxPdS9KVVVKeGdYbXZEanpmd2JCK1YxUUxQRUxuNG5NSnNrVml0Y2tYKzlz?=
 =?utf-8?B?cmFKeU1XanBoQjk1aUUwM2RoZjJhdnY0eU9jUGVTYkR5aTlRelZKMU1FcVdt?=
 =?utf-8?B?TEZSVUxyaWZubUc5LzNhakU3RGpON1FjN2dIdkwwTHVaQ2JjWVE1M2RSRVZz?=
 =?utf-8?B?WEdMVDQ3RTcvNHdyQytXblFmUWEyWi9vU01kdy9TR2x4clY1RG9qbTRSbDN6?=
 =?utf-8?B?MFJ3YjJLd05IajRxOVB4MlBiNWM3WFlvNVZ2UkNOWis3UVdXY3BIMlF3ejVU?=
 =?utf-8?B?bjhtWVEyNndXWUpsTXREcVZhOGlsZVFjTXdOL3FSQ0FsWWRhMGRZeThCK0Va?=
 =?utf-8?B?RnV3Rzc3Y0VJREM1aEVwemVqa3BUUXFlU2lpeEhjdHJSRmlmVDd0UHAzTE9B?=
 =?utf-8?B?dmoyRTNVNmZranh0RXRPSmViYnJZbkJ2dUE5UE9sOXpDcEFKNzgxMTRBMVNu?=
 =?utf-8?B?MTlMaW1tMGNtYXUxTEcveUlDL2VtZ2NiVmIyL05ENEpwdGlwVWhxUmRhNUJi?=
 =?utf-8?B?Y0pBa0pMNFh1Q3BKaisyU0p0ZmR5RWZLL3k2UlQ1RFFRRlZBNVo2elZkdkZI?=
 =?utf-8?B?VHNmcDVwbmVFSW1BUE4xdmVVZ3VidVJCUTJka2tDeXZBRjR5ZVZMRzN2akNt?=
 =?utf-8?B?cVhBTGwvcks4MFUwamhWay9Gb2JXMVpCb3k5NlYyMHBWUHFuRVdnaVB5Y3RX?=
 =?utf-8?B?Tk1CZGZEaUMyNzRVckRSZ0JCSzY4bkdHUVAzb28vd0ZlQm8yVDdLeVJKR0dx?=
 =?utf-8?B?RU8yU05NS3NJOFNUN0xWenVLWUFHM25rbzM5SzFaQXRqRlVML1RlWUpIMTI2?=
 =?utf-8?B?ZGxuclRCUWE3Y0R1OWJwZ1BuRy9ZNGpDc1NmUzgweWpOa2dzb3NCMG8wcUxl?=
 =?utf-8?B?ZUlEWEJiVk50SmZNbFVHNWxySnZXV3k5azM0LzAycWFYRjBZMWQxeTZkdzBj?=
 =?utf-8?B?Ylo5RlVMeEFaSzNncENiUlJraktPMHpZWHEwcHA4ak1iK3g0a0c2cE1saitl?=
 =?utf-8?B?V2RhM2tWcEx5cmVSR1ViYXZMTkR6UDhJMk1Icm1EYzdsa3JQb3d1TDYwLzJi?=
 =?utf-8?B?c2E5Zm9iODFrOUxIZkszT2JBclBOcFRhYU8wS3FVUUZkN3FpVVhGZzkrQzhz?=
 =?utf-8?B?VFN4RTUwcFJnTk1MeEFNZDF5ZkhBUnk0ekdobitkT3QrK2pEK1hiU0Rlc3hU?=
 =?utf-8?B?STBvVlVFUlpXVnFIdU5aRjVpN3Z6b1dnUkllY3hqZkF4cVc3UnV1M1l4WXVZ?=
 =?utf-8?B?VDFQVDR6R2dQZytUVHZBY0ozMXFOUlNKWmV1dktnQWppOS9aS0puOWtDbFNT?=
 =?utf-8?B?T2FRdVVJZDJIeVIvcUo3dHUzVHgycGdHL0VZRmY3RVczVVloYURFdmI4ZUtU?=
 =?utf-8?B?NGtyK3hSN24yeTk3NWExRC8xYm5Fa1RmeGVrNFFZLy9RL29keFA2VnNYSnA3?=
 =?utf-8?B?SFAyOFhUQW1BM3dpM0g1Zml0ZHNEVkhFc1NjUkhFVENCNnFzVUx0bnRFR0k4?=
 =?utf-8?Q?3Zc817f5O+vQ2A+MduKPvYY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 09bd1a6f-b8b6-4ee2-b3ea-08d9a058ae3e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:34:59.1706
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wPdCG/r2kVeBvLubSL2s27IN2tE4329x3G56+0z6pg9PjMpii2l6NRhYQO89oFMUY9x2J9Kzj+bzoL2B+xaK9g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037

The function does nothing but return success. Simply treat absence of a
probe hook to mean just this. This then eliminates the (purely
theoretical at this point) risk of trying to call through
apic_x2apic_{cluster,phys}'s respective NULL pointers.

While doing this also eliminate generic_apic_probe()'s "changed"
variable: apic_probe[]'s default entry will now be used unconditionally
in yet more obvious a way, such that separately setting genapic from
apic_default is (hopefully) no longer justified. Yet that was the main
purpose of the variable.

To help prove that apic_default's probe() hook doesn't get used
elsewhere, further make apic_probe[] static at this occasion.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: New.

--- a/xen/arch/x86/genapic/default.c
+++ b/xen/arch/x86/genapic/default.c
@@ -14,12 +14,7 @@
 #include <asm/io_apic.h>
 
 /* should be called last. */
-static __init int probe_default(void)
-{ 
-	return 1;
-} 
-
 const struct genapic __initconstrel apic_default = {
-	APIC_INIT("default", probe_default),
+	APIC_INIT("default", NULL),
 	GENAPIC_FLAT
 };
--- a/xen/arch/x86/genapic/probe.c
+++ b/xen/arch/x86/genapic/probe.c
@@ -18,7 +18,7 @@
 
 struct genapic __read_mostly genapic;
 
-const struct genapic *const __initconstrel apic_probe[] = {
+static const struct genapic *const __initconstrel apic_probe[] = {
 	&apic_bigsmp, 
 	&apic_default,	/* must be last */
 	NULL,
@@ -59,22 +59,20 @@ custom_param("apic", genapic_apic_force)
 
 void __init generic_apic_probe(void) 
 { 
-	bool changed;
 	int i;
 
 	record_boot_APIC_mode();
 
 	check_x2apic_preenabled();
-	cmdline_apic = changed = !!genapic.name;
 
-	for (i = 0; !changed && apic_probe[i]; i++) { 
-		if (apic_probe[i]->probe()) {
-			changed = 1;
+	cmdline_apic = genapic.name;
+
+	for (i = 0; !genapic.name && apic_probe[i]; i++) {
+		if (!apic_probe[i]->probe || apic_probe[i]->probe())
 			genapic = *apic_probe[i];
-		} 
 	}
-	if (!changed) 
-		genapic = apic_default;
+
+	BUG_ON(!genapic.name);
 
 	printk(KERN_INFO "Using APIC driver %s\n", genapic.name);
 } 



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:35:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:35:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222281.384398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyRM-00035H-3L; Fri, 05 Nov 2021 12:35:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222281.384398; Fri, 05 Nov 2021 12:35:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyRL-000355-UG; Fri, 05 Nov 2021 12:35:27 +0000
Received: by outflank-mailman (input) for mailman id 222281;
 Fri, 05 Nov 2021 12:35:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miyRK-0001oS-7k
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:35:26 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9acb659-3e34-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 13:35:25 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2175.outbound.protection.outlook.com [104.47.17.175])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-10-jbdLz5vAMKSydrRXpgynYg-1; Fri, 05 Nov 2021 13:35:24 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 12:35:23 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:35:23 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR04CA0055.eurprd04.prod.outlook.com (2603:10a6:20b:46a::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Fri, 5 Nov 2021 12:35:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9acb659-3e34-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636115725;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jpgB95rPSSAEva6eQRre47O5y0IXJlpRfMop3oBtTjw=;
	b=NkUu9GpjOKtHG3sYYFGoqlVBBCdphX92aGWWfJhDZocWL4JFkwI8LHL/REja96N4ilkhh1
	PwMuGUd9bfEQ7/HWbSSvCRqqBXhzcTbylOo/PYKp42GhqLJT2+1NWmY/vN/FHPzKcQvLmz
	eEm2fWI1eMsXLq5FOOiu2jVE0bn240I=
X-MC-Unique: jbdLz5vAMKSydrRXpgynYg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OURxSrgnDpDhlt3I3/9o2pRy4GJ9mP8A7XVoTfx1rlglU52SGz5Et6h+VZlg+/VxjOsjZW2i5yuZ4C++BMyRupvT/BASEeQKo7GuDiM+jhgRTq2Av9LcxjM//a+DMbLZT3NdfJTeko28QRkFOotiq8smtgxN5JtwyW9sCaV83pcM9rDzgfyP0jIE7c3wNLlkXqv5SJLo7t6AjoqDcFLxb+i4ZYC4uJi3TdEkPNk7BMKdc0eaVVM6j38dSykneKbD7Fhnz4AftaA3wRavbkCI+MRfFG+FiHV3GHjT3+6RJ9pO/jbPYZH2nyT6i84OtEZrBv4naxAoSaCK6RLVHuWDKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jpgB95rPSSAEva6eQRre47O5y0IXJlpRfMop3oBtTjw=;
 b=X9g98COVJ+0Drr2P+8iBKGdhYrXSYZK2JncT9e/NK2fiAgRUHxFkg/MPhhZ2+FCL2kAS645Bk+sgsu6S/FQY8eI16Z5i7F5U4GW3fvp5oVJ82s8GqdssE+EHRXmo8YYg3iuCFoFFj0gLJhlc/TDhDzWYBPosVgPR7GbBnlbLl39fJE2QNbjPkuk/lDLOQTrt8zwE4QM7GrbipREn1luSxJP5aSVcLKBo3KJ81x4QwARkBjEUZ/kk/WXt4zUIgZBQBumSnXwSxei53oJ6t231PU95Xe4DPPdC7jARZlAxbcySX2mDyDF1XnTs8dVlVJ6mL8u9UYfOPKqimWUCivKWmQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4b578ac1-f39f-5bb3-d53c-731ab94cbb6b@suse.com>
Date: Fri, 5 Nov 2021 13:35:21 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH v2 5/6] x86/APIC: rename cmdline_apic
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
In-Reply-To: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR04CA0055.eurprd04.prod.outlook.com
 (2603:10a6:20b:46a::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5c048b62-34a2-4874-1213-08d9a058bcb4
X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7037DB0B37C206AE4695AAC2B38E9@VI1PR04MB7037.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NIbny2zryNYkN1wzf4e5L4K2RjiYPjrd1NPDy1U1qzxSKcIYmljFVVQ+W6rxDzHAPV1P62oBxfm8e12XUnSskGJAFqApNegyttlN0V6ceAR0NJZ2LcSJdDMNlTROEdtcM9b4EklvNPPBDrpeLYX1naEAYixVIQ7E0OFRz4hPmNs03tp43QJ+WEuqnW1kX7YUN3F+6buEVwPV9wtxkQbfYfz1wvh2c+3m70TE9tTrssMRGmSJrCDHqvvZ6bNd34kU7dXwlQxflT9wlyTVhRQFcgiXtdEEII6R4xefs3i5BpeqBbieklATSlE73R4r4dX4+TIgvT17mUiXKJ005wWjKYtPxhwbvcK95uEl97nmp4ammR/lxKZc8NEz4ZW0URWpYxCOyEB+sVifsOVef6mzvWFpxqXF77HLEvDss3BRL4tY72W3lIEFeDxvtDJxI9tPKkNgtkgz5hB94/wux3blT1048C2Eba5hN9ImcWELA46EcfB19zxgU6AujdO7IhjT4lqAMyAQxUdDTWm36KZftKN4VpRlYXak3thrXkQfOO3brvlFPFtvcU8Ixajvfs6/pjDbrAaCqtdGLayRblye5WOximEAKFfqMMU4SM6gKMfa/gZCuq/1AWxkTlUaD4oLEt5LZorwtkGzqKtDPufkKJoSaqhDeDg8eZYGVdGF29UaypFVvjXkiyA/ztx1k0NOTjlfAhwDRROP8C/YjuWSqZ3ly9B9H68YYMXpUcuWLEw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(26005)(8676002)(956004)(66476007)(186003)(38100700002)(6916009)(36756003)(86362001)(31696002)(31686004)(4326008)(316002)(2616005)(6486002)(5660300002)(508600001)(54906003)(16576012)(66556008)(66946007)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b2R5bjNsR09HbWErQjNIeUNkUVgzMm14dTZJTUFGcDhXTDNBdmhuV2hwS3R2?=
 =?utf-8?B?ZUJQcHpUcXlNUkdmc0p2RDVkWXBWc1F3dzlyYnQvZkNHZjk1d2xpUWdSNVdZ?=
 =?utf-8?B?OTFzREJFb0tiTURURUNZUUdaRUNDd2NTa2JxbWhQd3kybjdLR3pEVlc0alM4?=
 =?utf-8?B?dDJRd2d1bU9FRk14anVFUytTVkNMbCtoTG9sRDU0T3JsVTllRGtlWjVoYVh3?=
 =?utf-8?B?WUppbjBSRVRPZmtaZ2R2TzVkZHU5L0NpWTd3R2Y2NDVDcDRYV3VNd0VMNm4r?=
 =?utf-8?B?MlhoUHpONmVCUXg4S1BHTXdQWTVzMVFKeUN4RXpRdDJ1ZEo5U0p3LzQzREdx?=
 =?utf-8?B?dURLOXcwRmVvTzAvY01iSnhhVFVma2o5Vnh6L2IzRVFmSlhjaDVUZTJ1QTBr?=
 =?utf-8?B?NllibTdoZStXa0tGY2JHd1Z1LzFldjJJQkN3bnZzYStma0ZEMnRuVktMZkp0?=
 =?utf-8?B?OUpYMis3THdYWU82K0dRQzF2OHp6VFJPQXBmQ0Rrblp0WTR6bTdVQUk2dHVZ?=
 =?utf-8?B?VXJ5WDJ6b253L1ovN253U0pmYnI0VWFuUit0N0t0ajdhNUZKQ1UxdW82eVkx?=
 =?utf-8?B?cGEzZWI1cktQWTB0MW1mZ0ZCTk4xLy9MV01mWUxZYjNFbFAxSDd5WFNlTnBE?=
 =?utf-8?B?YzhBb3g0aWFMSEVPcVUwd2tyNlJYR1BBWndNSTBMSjBrRS9oWER3NnhBMzRP?=
 =?utf-8?B?Q2tBMnBqM1JLTjAwSzFBc1pUSEV1NkZVUkVkOFloa1R0QWc3ZWhFc2hONnYy?=
 =?utf-8?B?NUxPeG11L00zN2ZiRUFFNi9FTTFaMEw2OVh4a05lTkhIVG5rTWo0UC9FMmxW?=
 =?utf-8?B?bGNzSHFpRXlJTkE3L29WUE5zcFU3eGNtOWQzTEROeWhWZzNlQklxcjRiRXdY?=
 =?utf-8?B?UGRJZ3dyTTR2UmZKSXZJYUhseDlyUnB4RTU4N3VLYmdyM25HbVFIbndlQjdJ?=
 =?utf-8?B?L0htbU1VZzcrdEJxRlZ2Y2JDRHZUa1hCQnVTL0pPR2pSeWIyNGh4Y0JsQ2tn?=
 =?utf-8?B?S2ZZWXExeGtmS2lMMWd6SDFrWnhzcmd2MlRreXJoTnYwRnljdVNmRXc0am1D?=
 =?utf-8?B?ZUdIaVl3czdiRjNUZUtXK1RzSFhFS2drOVNFVHZlYUNUdVFqQTlNbElONXhr?=
 =?utf-8?B?UXhWTldGUlJNUEJhbU9IbWdFbU5ZSUFCbEtzbW42QUxWNTVCb3FQSWtxZDJy?=
 =?utf-8?B?a1lSSTdZMjFZWU96eTllSXJqWnl2Zm1aZ1BINVdCR0YzMjEzNUVLZklaT0lF?=
 =?utf-8?B?MUZKeXVQdHhYM25GN0k3ZkYreG1FSkoyVkh4SG9NSVN0QUZoejgzNEQ4L3dE?=
 =?utf-8?B?ejJXWWJMV0hkRmJvdG1qOUpZbndBdTBKdHk1S09ZeHVBN3J2OEdFVGdGV3Mr?=
 =?utf-8?B?RDV2bmpMN2dUU0pQazB0U0pFK3laZkl2K2pJYjJLVkFlUFBxaUMycHRWc3Vr?=
 =?utf-8?B?RjRLTitUUW4yNThvTUZIRXZFWGZLNGVrbTJpT0pXWGdIa2RHQytSRVg5eFZt?=
 =?utf-8?B?QitVWllybGNaUGg0S29rUmE0NHl4TEJmM0plRUZsZXdFSGc5WGZ4NjNXcm5B?=
 =?utf-8?B?bGtZRE9BVDJsNlZjWkdmMlpCdU1nSkdXWXdXd3VQbnVRWkJmMU5WNnRZWFVl?=
 =?utf-8?B?MHNOY1JoRit4dWhlLzJpcXpHZTBMTTFJQ0lwNzh4MXBLTmZ1ZS9WMVVJOHZ1?=
 =?utf-8?B?dVdkQUFNYUdXcUJKNFVQbEN5a0IwUXA5SzEwNFF4MHFTWmQzbzVXbTM0RnVw?=
 =?utf-8?B?U0tPbEJuRDVjd0tCa0xmOVlQcDVDbnB4c3g5WHdqV1k4WDNRMnhPTWZFSEFp?=
 =?utf-8?B?N2txK09KbTgyY2RYWit3R1BpREVURGZENCtxeVliSjRBaW5UQmFua3YyQmlC?=
 =?utf-8?B?UldORkltZGZTaFk0NE8yWVVIMzlxeVprS3llREl0UnZRM1Zqb1VGV3RxUDRZ?=
 =?utf-8?B?M1k4YjVkVnVOeTdvRlFKa20vbloyZGx5YnZweG1lVitFOFVBeHIvaDJobmpq?=
 =?utf-8?B?STZpSDJMeXc1dmxseU5Qb0JwanN2SjVnSXdMOHZrbTZ5ejdycWhHR2pSVU9h?=
 =?utf-8?B?V09ZUG8rZlJBRUdQeXMxS2JmRW9kMkxnbzRuYS9iMVN6ZGwrb2pITTgwNjEv?=
 =?utf-8?B?RmNwZDA3bjJEaDg2Y1dGUTcrbTBiSVZxZ2gvU1h3aEhvSzVpbmFUcjAwSFRv?=
 =?utf-8?Q?WW9Xk0XF82nnMZts3mwbJZM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c048b62-34a2-4874-1213-08d9a058bcb4
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:35:23.4758
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8Hx57Z7QS8/Hf323yim0NeO/c8axoMiugtLlOerUaN4CSzBzjg3fjuN5Gqvr3evK1kOnh8VDo2fb3pTSVJMzWw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037

The name hasn't been appropriate for a long time: It covers not only
command line overrides, but also x2APIC pre-enabled state.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: New.

--- a/xen/arch/x86/genapic/probe.c
+++ b/xen/arch/x86/genapic/probe.c
@@ -24,7 +24,7 @@ static const struct genapic *const __ini
 	NULL,
 };
 
-static bool_t __initdata cmdline_apic;
+static bool __initdata forced_apic;
 
 void __init generic_bigsmp_probe(void)
 {
@@ -35,7 +35,7 @@ void __init generic_bigsmp_probe(void)
 	 * - we find more than 8 CPUs in acpi LAPIC listing with xAPIC support
 	 */
 
-	if (!cmdline_apic && genapic.name == apic_default.name)
+	if (!forced_apic && genapic.name == apic_default.name)
 		if (apic_bigsmp.probe()) {
 			genapic = apic_bigsmp;
 			printk(KERN_INFO "Overriding APIC driver with %s\n",
@@ -65,7 +65,7 @@ void __init generic_apic_probe(void)
 
 	check_x2apic_preenabled();
 
-	cmdline_apic = genapic.name;
+	forced_apic = genapic.name;
 
 	for (i = 0; !genapic.name && apic_probe[i]; i++) {
 		if (!apic_probe[i]->probe || apic_probe[i]->probe())



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:36:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222284.384409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyRn-0003ja-Di; Fri, 05 Nov 2021 12:35:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222284.384409; Fri, 05 Nov 2021 12:35:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyRn-0003jT-AS; Fri, 05 Nov 2021 12:35:55 +0000
Received: by outflank-mailman (input) for mailman id 222284;
 Fri, 05 Nov 2021 12:35:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miyRl-0002QJ-ED
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:35:53 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9f5122a-3e34-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 13:35:52 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2054.outbound.protection.outlook.com [104.47.13.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-31-sK78T82QPKu0O40-FE22LQ-1; Fri, 05 Nov 2021 13:35:51 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3935.eurprd04.prod.outlook.com (2603:10a6:803:1f::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Fri, 5 Nov
 2021 12:35:48 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:35:48 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0039.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 12:35:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9f5122a-3e34-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636115752;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GaKPFWGowONl59x/p9INNuBefQFrOkbIUigpYW5UB78=;
	b=jpDv+1t9V6au1XkzNCNxEWsx0uQD2mFWvA4ALnNkWA6Eg431sPyib5m2EcqkkJ3NRjVjzT
	W5iZ2McdmRLA5xXKdgT9pSvuFvZSwJZZ0Mk9+jGHySRfywl09ZeJZXpgkDJYMnGaLCKtPk
	KhA8rvGTYZzzzsYNvTZuY+M41uZ7Owg=
X-MC-Unique: sK78T82QPKu0O40-FE22LQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bT3g1O2fjo3w8l5wh/07F87aPjFggzh5gYjJXRk7PgzOS0Dz1un/TunethOuQlWtPl0o6tELzta21QFCv58eQP/TEzm45+EkGHJWCwL/cYK51QA2aUdBXSgYPmGb05zACJlmfYFh7QQg5SaoWI0SuREHnA60fvhkHUqme89zR/rtX6NmZvxXO7jDAtg1AzYr3d4dL18t7+6hAnn/KJYrlyphRSoZq8LuoniZJm7s7wg4QM1ttDe+P+6WDlfMGnT90bIzlIPIMgn8HgpQWgZai8u2GFrmqi9gO40XRToZPjb2CetQTJ6qtNprfEmaOKpvSLaf4twSMSerjaEkQLvbNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GaKPFWGowONl59x/p9INNuBefQFrOkbIUigpYW5UB78=;
 b=FFDhcp2ltYwTcaetsNR3PrymCj21o3jdsoZb2XI+Gv4gwce9pMXz8dzYxZFJU2ll1Y0h9+AuUE5NoFKQtnLIlNqOdFoMX9WYpU8ARJfT6WTyUEUiyP8o324BgwthL5ZxruZ4AvIX1VfxRY+lkwrXdiykPyr0vvayw7O9CQZO6I6bxwZIe7yhg2v0aczYu5LcjfjmvRUrzZ3Mlj6PJk6TogI+Nd+Q+qyIQRX9Zd8aeJu1NIwDRKZ/37baK3heSsyhYDz55vTmq4pXmAaQS0renYmLulcuU03ArjjqVVAs9uyOlUKypa657tpSPeZk5d2H6tZZ0ohLQgAdo8mAId5SjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <45034389-b5d7-4679-7874-9bdd6aeeb100@suse.com>
Date: Fri, 5 Nov 2021 13:35:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH v2 6/6] x86/ACPI: drop dead interpreter-related code
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
In-Reply-To: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR1001CA0039.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bbcf815f-05c6-4daa-a991-08d9a058cb9b
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3935:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3935FBEA2A4F92C7AEE9736DB38E9@VI1PR0402MB3935.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	e/K3/w+7I4iNhEGIZi5ZbGpTopqz4C36hivas3uU7R6j371MmCK9C+kl9So0QUTZ8R45FQWWRuDksq2vbnYy6UHcB3xsWkZKG1xY3PYEPznz5UjEppug4PyuShYqFpijoZWEA+eOGT0Hqmrk+n6pZ2ftwMoZJOZe/NEO9FMROUrDN9eHQFR773ryWVdOaxv1PWe8VOjywELm0UaP3dPnZ9c8ZLOzn4mvf1H3uRXNI7/y+ze3v2X9qlmJxnZ6ygOgWabfO11tyt2kOE/7Mwrjg/Iz9U4VWri8bgNpB2cP7+dfn34op4JT5qGlljCfB5iMFcCyJAIepbwKUzDSWLjPasNMX4m0t+tdnJKNTdsd5ugfv9h6+Fs3olEscZnUCjDMRjGn/Zk4b6U7TIOXuejYi2VxIwpKHVYiHu0UjrIqpRPEXbGOuRzevd1oWHrI1XSaTMdyMPBIzOf/AlH2cDaC84JYd0Mh6qdi5rPdQ5mMtgTCj4t0rnx7Gy0vouWHetG0kf+hByZhO4t7m0hqotVm+ud8ijNmEMQjlh2obTStoMvnYw/jFecZbgSWrnXzlCpaoV5sZHlrCL7jrEQUuc1pAlmJpRPFW3z84cPfij9lW2WUmWEVuLEeZ1c9nGnud59vxYmABFhcyPtPnk2iUDoBM1V9fREP/GzauZouy9PsHlmZyOO/bb7iKEdGh8jb9fixg8uLSfT6f7HLmS2/6VLzyOw+Ke9WnVM2xhIXpk4ETUM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(2616005)(5660300002)(83380400001)(8936002)(6486002)(4744005)(956004)(186003)(36756003)(54906003)(31686004)(26005)(8676002)(66946007)(86362001)(6916009)(38100700002)(2906002)(316002)(66476007)(16576012)(31696002)(4326008)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cU53MGVkMG9TLzFTQ0xWcDBNa3RueW16NUhUcEIvbUJoZ1VBSE1uR2pSOXd6?=
 =?utf-8?B?VWFCVG8rZy94cllnOEtKNzNDU3VjbHk1UXpOTStuT3hIeGxrTUR2aUxENHZz?=
 =?utf-8?B?RFFwZWdYcXpJOExsdnJKcW50VVVnZTZyOHNUSzlJSFIyVERWdjlaSmk4a3E5?=
 =?utf-8?B?R1gyV2h3c2ZIRWtKbmVNRGNsSUQ3VkVKdzRrbWYyYnJZUEY2Q0tld1VLaWF4?=
 =?utf-8?B?VkRXMTFTdUVLbjFaTDM5L1ExdXNoWFBieExSdFJGWTlTNFhFblBHZzFTUm9C?=
 =?utf-8?B?dWtTQk1nWWZVU3U1Y1l6djR0M1g0K085ODZxaDFCbWtkai9KRTV2dDB1azhL?=
 =?utf-8?B?N0xkSngrWHp0RzdOWFhZOEJkYmdJb3hGN2Y3MUJpcTlaWkZ0ZmlLby9GVU1P?=
 =?utf-8?B?WkhRejgrc0dhQnIzRnhnazgvV1N1Y0hnb2x2SktBRnkvT0cwcCtGVWJxSUxS?=
 =?utf-8?B?Yzh5b2xveHhTODhUZDNuT20xdXBBMHZXOUdLQktBMHBkOFp5dFlpT0JxQ2po?=
 =?utf-8?B?cVk1YkJEL0kzbXdJOGc0Yk1UZlU3TllKL1pMT3N0c0hQaFZvN0NFQjczOSth?=
 =?utf-8?B?WmFHOG1jZlFyQ1F3RzhJQ2FVZ3Zsajl1ZnhneVFYbnc2OHZzVkVFY2s5ckxw?=
 =?utf-8?B?a1ZVT29GLzNWbmtnVTFJV0JkMzF4VDZKbzEvZnNWUTREaS9sc1MrOFhsUTJJ?=
 =?utf-8?B?K05lTHJkcjBDYkk3d0FRT2xYWjBNdjFNYjMwMkp4ek9DL0F0ZkE4cDJPSG5E?=
 =?utf-8?B?VC9tN0tseHFKYUlYNkd5SC8vN3J3YWdMS3ZTdHVWUUJ4eDZpNkcvYmtCdkVL?=
 =?utf-8?B?ZXFoVjBJU0JhRUx4WHpEYnJxT0N0R3ZNb0FSYnhTRkw2TnhiZ0s5OGdCZkJN?=
 =?utf-8?B?bkgzZXBuQ1RCTFQ1VWdjSzk3RUhmK1N1N0hyZ0F0VnR5d2NGbWJiMGxUNmI5?=
 =?utf-8?B?VG1ZQTJPckN2dTFFd3lrbktxRXY1dkNmdHlvSDZjYm9NYnN4ZzZCMm1uY1NT?=
 =?utf-8?B?NnVYcm1rajg5QkJuRmEyRERhN0VkSEl4aUJBZk5kN3EvU21SOWRkYnFJa2NI?=
 =?utf-8?B?eHQzbWFHa0kyVWY0Y3BPbmxnbEh4Ri9ZTzVEZnlTcHBROW9IQ292TEZobFE1?=
 =?utf-8?B?ZEpvSTY4RjV5em9jYVVRbW9UTzZVUkZSUG9VOVRZUk9uOTcrMGxaTVR4a2U2?=
 =?utf-8?B?R1dxMkRUd2txLzZUcXdDMnJLVzJtcU54cTFxSWQ1UGtvazlzV1h4SHNNYmJr?=
 =?utf-8?B?Nlo2eW5wbk1rRzExeE5JU2JXckdjb2k3eUljYzI5Wit0U2ZabGtLUjQ0aWIr?=
 =?utf-8?B?MmdaNjJ6UDhZdnh0ZEZsNmNSN3Z0WnA5N1Y0WFUyRkhJUGxuRXV3SUxhSEhS?=
 =?utf-8?B?ME5oOXg4QnZXektxSGhNYU54OFYyVmJLRDNrWUM4b0dTR3lFdGlDUWNVbk9z?=
 =?utf-8?B?UXdHZExnREhxUXE3WVQrbVZ3MStlTFZoNFpncXBPcngvdFk0MUhVdDBzUUdC?=
 =?utf-8?B?K1BPT0pyM0ZOOTR5ZzZGbGhrb1F6OEdIdmovQ0hDL2QzWXUzeWIzQXI2UC8x?=
 =?utf-8?B?WURqazFwMmZxY0hncGZaTnJUeUxvSmNyb1A3RFBDdXRFYjVJZ3prMXQ1bGI4?=
 =?utf-8?B?RzhZZHk1RG5lT1Bwd29MSzl6cUVtMWp3ZURLQTVtMlhQOUhiZmN2SFV6ejhB?=
 =?utf-8?B?eDFFKzVDNnZwR0VwZ09BUTQ1N0hudU81QVROaHZJSFN5eURLUktyUnlIUVhQ?=
 =?utf-8?B?S01hbGFqcjlVZlQrQmlCSi9LcTNlakxnT1JMR1U1a3YzSVdBaDhNSDAxaFo5?=
 =?utf-8?B?NFd0ZUdGRFZscTZkNi81TklJN2xEaDN4VXFzWm13b2R0MUFXOWRmeXI4UG1o?=
 =?utf-8?B?WUR1Rng4cDhBcDJPSG5idzBWSVUxK3A4TXZzYTZrYWVyZVR3NFNNSElvbG5j?=
 =?utf-8?B?K1F2VVg0M3NUdzh1dSszQ1JTWXRFQVNQbVd4R3A3eXFwRVNHd2xobVl4cXJL?=
 =?utf-8?B?OWY1eUF5MzdhT3JiMFM2bWdsc3M3RXl3aHFObE1PRjgvcEttUkpaemVQWGhQ?=
 =?utf-8?B?TngzSnR4Tk56VWhuY3Bmd0RvcE1TRElhUnpuKzIwak5vN3krMkpwZFZTMEtL?=
 =?utf-8?B?NjVyWUlFSjJXSDVPUE1taEorZUJBNmE1T3pOTzRiaEh3RHovU2dwenVCN29a?=
 =?utf-8?Q?9AkN7A+z9I8ClB//yYTYM2o=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bbcf815f-05c6-4daa-a991-08d9a058cb9b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:35:48.4317
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: y7rchkhi7sRSe5kpm8nw5Pihx0R7322KDZ9gBBNcpY+oC7MlR9/tHlZMjBS8BRUwLW+gyqK3EGUAISJreLgdgQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3935

CONFIG_ACPI_INTERPRETER does not get defined anywhere, the enclosed code
wouldn't build, and the default-to-phys logic works differently anyway
(see genapic/bigsmp.c:probe_bigsmp()).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: New.

--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -477,16 +477,6 @@ static int __init acpi_parse_fadt(struct
 	const struct acpi_table_fadt *fadt =
 		container_of(table, const struct acpi_table_fadt, header);
 
-#ifdef	CONFIG_ACPI_INTERPRETER
-	/* initialize sci_int early for INT_SRC_OVR MADT parsing */
-	acpi_fadt.sci_int = fadt->sci_int;
-
-	/* initialize rev and apic_phys_dest_mode for x86_64 genapic */
-	acpi_fadt.revision = fadt->revision;
-	acpi_fadt.force_apic_physical_destination_mode =
-	    fadt->force_apic_physical_destination_mode;
-#endif
-
 	/* detect the location of the ACPI PM Timer */
 	if (fadt->header.revision >= FADT2_REVISION_ID &&
 	    fadt->xpm_timer_block.space_id == ACPI_ADR_SPACE_SYSTEM_IO) {



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:47:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:47:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222298.384420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miycx-0005Po-G8; Fri, 05 Nov 2021 12:47:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222298.384420; Fri, 05 Nov 2021 12:47:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miycx-0005Ph-D1; Fri, 05 Nov 2021 12:47:27 +0000
Received: by outflank-mailman (input) for mailman id 222298;
 Fri, 05 Nov 2021 12:47:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miycv-0005Pb-QP
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:47:25 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 863c75b9-3e36-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 13:47:24 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2108.outbound.protection.outlook.com [104.47.17.108])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-29-POx9wcENOKisZdnQ6GmGTw-1; Fri, 05 Nov 2021 13:47:23 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4381.eurprd04.prod.outlook.com (2603:10a6:803:6d::30)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Fri, 5 Nov
 2021 12:47:21 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:47:21 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0221.eurprd06.prod.outlook.com (2603:10a6:20b:45e::6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 12:47:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 863c75b9-3e36-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636116444;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=WmmuYe13+6QfsQMsh3TbBdhckZveyiGTojp8Dc28lrI=;
	b=XA9pW6WXKpXaxYu9BJm2BLkPiiW8vbC4BZxIIeP2wLMB2l+fDSvOcAM1QVbHQ8NxrXxv8V
	qfWSIqD+of2lypvvwf7tvyzQLRbdjYGQVT+TPvG2pAjBDnJkDHN7gJItvHToSm2aLwFbn6
	jFGv2Ig6jSjIchYoI8UWgSO3NtYL3B4=
X-MC-Unique: POx9wcENOKisZdnQ6GmGTw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XY5nyhpToAk5loznZrzdETJYbm8JYFc+uG9Z42IqxaOqWOlxdqwLqwN/+1m6PhemBCBf6Q3iM7nhLjxKZwTKTP/Qnt6NfeEDz4eiYkd2glns2K5TkEvQ+fOYo+sHdF0uZAj4+CCTboIgXcs9PKuietXJKfpEJzraqIm/sYkuzqE7JXnLIjOnplvFMpn5t/7uJfWwxFgsNsSEZsXfuu93P/W5kclCrn/YcXvuWFRZLGj12DuQE3brGJm7amKOzGsU4HbgKM1LywpXSrHV1hErBE2kNPx1GeGs/yiFiobwLIZUUsK81AFHj1M0k1H/msyLcpMTe65ekjW78PUR8jBpCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WmmuYe13+6QfsQMsh3TbBdhckZveyiGTojp8Dc28lrI=;
 b=U+Rf85aO6N11zw8vAn2KD+tYlfpcpeFet7ILuJnDsovSB9SNZEiwDEnlLC/7JyjEaCDxxKiYPVmWw6WtFIKhCsB0PtfOHeSvSvPd9oWy0w153KlkeDvwwrC4bEpsDIs7QICh7ZiRNiAVURTwe3QV4L1dmj4lE7KR7xpprqvSIsR24PtA2q5VvspbPnU+3OsmB/LVZqr4LAiGtCUeQ8u87YAn8RPEKCYjhNcrxAgN0VMAjYBxMPaeql/o4thdFqjxCULvZivSAMc1YrEmO9tn/xcfAM6Ku4SS5p7MfJR3UpbgQSQv1cDzTQAADjOAkPp/kRm/11mFD+zjZcXVyjUmNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9802643a-243d-76c3-a976-f630b8d6ea7d@suse.com>
Date: Fri, 5 Nov 2021 13:47:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: Error around cc-option on AArch64
Content-Language: en-US
To: Penny Zheng <Penny.Zheng@arm.com>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen <Wei.Chen@arm.com>,
 "julien@xen.org" <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <VE1PR08MB5215CBA5B28A1FB90D7B161FF7D39@VE1PR08MB5215.eurprd08.prod.outlook.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <VE1PR08MB5215CBA5B28A1FB90D7B161FF7D39@VE1PR08MB5215.eurprd08.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0221.eurprd06.prod.outlook.com
 (2603:10a6:20b:45e::6) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1c42a84c-d282-447e-028e-08d9a05a688a
X-MS-TrafficTypeDiagnostic: VI1PR04MB4381:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4381FF4FF974986EBC3D0E17B38E9@VI1PR04MB4381.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	P7tT9WgBBGYsqbX71HVoEEVYsEA6dlkkSzf3xrcChfS0j85nR8BWZ4RSco+sL2sMKXdtURQpoPP6wHQfMEOtT0jnFtp/rRnLOmntNcU1z9nSUwCLFDPwa1WbR6wGXP562/EAh4BJqLGUUw0K/ruHZXOLgUG9KB3nurgJi4WWc1Hs6xFoWH13lgwpfAe+n9fbduO8Jq3rYtYEi4Z7TNdFnvM6VtIjSiLL8DZPayswNeMq0tZ91mdP673d55fDyFLupw7O1A/sQP+PO2enULIBvmmSMqVIs03+FIB47ULPd9AGaTpDvhxIdcquFTusEud9zeyu/ezioFbbDmaNGtPMEmEwPbFK8XF6frLAMVnRMJHpHU6tlFB1CsPWd6Kvx4nyZC6jxbw9Z2QWNa//sbsnnSpZQkpsxdyqGWzDrZYoSbWc487OE5IbsuZ9a49j7f66HMvy9rwHO8/MklRB5RCUJaQ6R40b/IWQZN5Qk5YvHdDUZs8Q0tUO3y243pkEbdm/6W6ykjqVo9YersbGh0x/ymGIw1l2Rn2y3/ZEugV5nlJEL78xiG2qQilU1zZNfa8AxMzKLJJ7TqpbNLFTqDK5A/5hbH1aKZw8yH1AYaUvW4zHLMNFwokvsGIGuYz6JGTh2tn4U+4LnUKeiWDO5XcLUUbqhZbRicObYK9BWgoq5PKQbjRbEaHlTqITwzMS4nQqRVMSe6tosxRvIldeRbqRXFf/b3NJGRfvapAs0UsxztTgs8+bibjQycIOWf7VNw1dL0sivnIMe4DUl0+Wjt8ym5GP3d83pOwF2N7dHk0qS8db93NE9qsWCc2yBqyanqMvRQZIuEXjWky7kcKjhrrYvA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(2906002)(8936002)(508600001)(83380400001)(8676002)(26005)(966005)(53546011)(2616005)(66946007)(5660300002)(66476007)(66556008)(36756003)(186003)(16576012)(31696002)(316002)(956004)(6486002)(86362001)(54906003)(6916009)(38100700002)(31686004)(21314003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MlJ6TUxQRkpTMkJSdS9wMWFGbjNwMlpEWXZIL084SmFJaWpGWUR6MDU3TXdC?=
 =?utf-8?B?TXZaR0hkRlBuQW5NUXREemdwaEk1bEFSMWNzZ0VkMDJHTXBhRlNzWUtEY0p3?=
 =?utf-8?B?eGZNTEtGRTRORkVOMkxoQkZRYXhYNnpLS1huQkxrLzEzaGJ1WU1nV3dUV1dp?=
 =?utf-8?B?MmRYaUNYWC9lbWhVQ0pQLzdieFN2eDgra2hpbktsWVhyQ3VuYWFHWm5Va0wz?=
 =?utf-8?B?UE5vRUFlZDM1YVg0aWNpVGpKV0lOWVkxY0RRbEtOSjBhVk45eXhPUVRtSlFh?=
 =?utf-8?B?YlF4QlUzZCt6QnRybzZBK2NxN1dsdnhYKzlBRzhoS2h5ZEljMklNSzQxb1dh?=
 =?utf-8?B?MnVjSzhGMmlFMFVBczl2TndmcGNIcWF1UXphbTdodFdWQWtIZlFzNUxOdDl0?=
 =?utf-8?B?TFU0eEpFVEhGVTRCeUk2MFNpQ05TbHlXRlhPVU9JQ3o2YWQ1dDZnR21HVmZy?=
 =?utf-8?B?VndnTzJSVmp3bmgrRXQ1M3pUa0t5M2MvSVpLRWY3NktsSjZkbmFHOFl2cVkz?=
 =?utf-8?B?QXE0cFA4M1JFZHoyUVVXdXlFcTRDcUNQVTVZc29sSnNOLzF6MFpDcEs0S09N?=
 =?utf-8?B?TVZVV0pjSkhqdHdTOG9kSlpvemhjODVId2V3bTM3VlZ6YkRnU3hxRlkrUTAv?=
 =?utf-8?B?VGlmQ0k4a3ZneDU2QXhJYmZ6VThhUWhwa0ZOUnZRZXB4VThLNzhkYytSMThx?=
 =?utf-8?B?WExYZ0N1N1RJako0OFRMVUNhMmJ2TE9DcWRKYVhaOVBOS1Z6WFJjUWQ5Q0lF?=
 =?utf-8?B?VTRpM3JONDIwdzdiQ2FBYzZhOXoyUm9ieHpwZUNRZmlieFJQTjAxdkt2Risw?=
 =?utf-8?B?WVQvVFEwaDBHRFNYMklMZ3NUd3BFbG1vMmVDQzcxVlU4N05SY1RsZTBjU0hU?=
 =?utf-8?B?NnRZODRuYmwvU2g0WHVyL2RkVjZZZHUwcXhBWlM1UTRoMFkxb3Q3STMrNlhS?=
 =?utf-8?B?eVBkaXdPK0NDckdBNFhLVy9nTXlZUFlYemhES2lDM2NtRHpDSEh2V0V1RzlW?=
 =?utf-8?B?ejh4UExmdnVEK2R2MXdJanIrV3pYRVptcGVtbHRLZjhlcGFRMGRZRUZ6dXVs?=
 =?utf-8?B?eVJ2cWkxdjJnVkRYZ1pQV3gwY2QvWERkZktYdFVNek5VYTRmYXRmOWhkUUIx?=
 =?utf-8?B?Qi9wbCtOaU02ZDBzbHlKMk5XUDNrQnFoRXFhM1BtZ0hiNkhxWG54bmFwcWIy?=
 =?utf-8?B?OSt4YnRnNGhXajI0clhlaWcraDFFSUUzTVBPNy91OUdWeUhNbG1qdjZleG9R?=
 =?utf-8?B?dnJYdVEwcXltNk4vSTNXSE5LWStaMi95WitLZU5BOURqendjM1k5bEtVOWFi?=
 =?utf-8?B?SE5kREhWR01UcFFSK1FjcFVpRG1BVUpDc3J3eVN3ei8ydlZ1bVNuUUhONkNq?=
 =?utf-8?B?OTNLdUhDZE8wUTJZdVFYZFVjeGgya2MyS0dianJha255S0tyY1g0L01LRGd5?=
 =?utf-8?B?cFg0WmdJT0gwUDhrQ2tsbXhwSUdPRXV3bGUvT3ZmNUY5Q3JQdmt5ZEh5Mm1S?=
 =?utf-8?B?QjB1NHY2S1dIYnlQcGMxVlJlTEwrMWNFd09zaTJETkFkS05jTEY2WkJqaXBu?=
 =?utf-8?B?aGZDb1VpZEN3L05WOWlqc2FjNWZrb3NNcEllVFUzSzlOdFkvQ3Z1ZERQbklv?=
 =?utf-8?B?M2RVSEhBL1JveFhHWFhNblZ5TnZnVmxWZlRZSnB6ZVRUY1pyL2lUVWwzaGNQ?=
 =?utf-8?B?Zlp2TTdCRkwwc2llWGd3TllVYkdDQUZwSCtmeVk5K0Y3YUR3Kyt5SXM1TWNS?=
 =?utf-8?B?T0hiclVKQUFySk9uYUZJaVd3MTlkbm5pVWZaNVIyZndpKzBLRFU3RzJlQUto?=
 =?utf-8?B?MHFuSjRjL1kzNVJwa3FjSkphMUk3NUx6U2lVRFJRckVzNTNESjVlV012ZFZk?=
 =?utf-8?B?azV6Y0cvOTJHcjREM0xoSXFnYXlVczJFTCtXWjFsazc5a3VsUlNYb1RzWnJG?=
 =?utf-8?B?b3RjTTVvaUV0T1NFNGJWNWlDUjVOWkpBQlBFSXNKVmF4NUtKNXJuY3l5OTln?=
 =?utf-8?B?QmFSQklKRDF4cDFkckR6bEZPOGJxS2V1NlIvdWo0V2JyTVE1Rm1JcDUyV292?=
 =?utf-8?B?MkZXb0RwWHRtS2dvTkRydDZvTVdDZitQdG1nUGZ3L0FyOEtBZktQZm00V3Bn?=
 =?utf-8?B?MEgwWjB6dVVxK3Y0UGxsSyt0L3FXcUh1QXUrOTJ2VVFMcWJPcTg4MEdwazNr?=
 =?utf-8?Q?vL4tpDYwRLDgl/8ChDyd/r8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c42a84c-d282-447e-028e-08d9a05a688a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:47:21.2730
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L3NjrWIIj/sWyC/uLeG/viRyp4yOgAYmUdOcbiE87zhtDVwShqP3z5WAILgafnTDQ2B39xzgaZyC1hBTKyW0zw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4381

On 07.09.2021 15:03, Penny Zheng wrote:
> Hi Julien and Stefano
> 
> I found that the "cc-option/cc-option-add" is not working for "-march=xxx" option on a few very common aarch64 compilers.
> Here is what I got when trying to compile XEN on r82 platform.
> ```
> diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
> index 11caec86ba..d2d71baef4 100644
> --- a/xen/arch/arm/arch.mk
> +++ b/xen/arch/arm/arch.mk
> @@ -10,6 +10,10 @@ $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
> CFLAGS-$(CONFIG_ARM_32) += -msoft-float
> CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15
> 
> +#ifeq ($(CONFIG_ARM64_V8R),y)
> +    CFLAGS-$(CONFIG_ARM_64) += $(call cc-option,$(CC),-march=armv8-r,-march=armv8.4-a)
> +#endif
> +
> CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
> CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
> $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
> ```
> My gcc compiler version is as follows:
> ```
> Using built-in specs.
> COLLECT_GCC=aarch64-linux-gnu-gcc
> COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/aarch64-linux-gnu/9/lto-wrapper
> Target: aarch64-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04'
> --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,
> go,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9
> --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext
> --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
> --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new
> --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin
> --enable-default-pie --with-system-zlib --without-target-system-zlib --enable-libpth-m2 --enable-multiarch
> --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=x86_64-linux-gnu
> --host=x86_64-linux-gnu --target=aarch64-linux-gnu --program-prefix=aarch64-linux-gnu- --includedir=/usr/aarch64-linux-gnu/include
> Thread model: posix
> gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)
> ```
> However. even if my gcc compiler is indeed not supporting "-march=armv8-r", above check will not identify it
> "unrecognized option" and seek to the "-march=armv8.4-a" as expected.
> See the resulting errors, it still uses "-march=armv8-r":
> ```
> make[3]: Entering directory '/home/penny/FVP/r82/fvp_aemv8r_cortexr82_0.0_6347_gcc6.4/xen/xen'
> aarch64-linux-gnu-gcc -MMD -MP -MF ./.asm-offsets.s.d -DBUILD_ID -fno-strict-aliasing -std=gnu99 -Wall
> -Wstrict-prototypes -Wdeclaration-after-statement -Wno-unused-but-set-variable -Wno-unused-local-typedefs
> -O1 -fno-omit-frame-pointer -nostdinc -fno-builtin -fno-common -Werror -Wredundant-decls -Wno-pointer-arith -Wvla
> -pipe -D__XEN__ -include /home/penny/FVP/r82/fvp_aemv8r_cortexr82_0.0_6347_gcc6.4/xen/xen/include/xen/config.h
> -g -march=armv8-r -mgeneral-regs-only -mno-outline-atomics -I/home/penny/FVP/r82/fvp_aemv8r_cortexr82_0.0_6347_gcc6.4
> /xen/xen/include -fno-stack-protector -fno-exceptions -fno-asynchronous-unwind-tables -fcf-protection=none
> -Wnested-externs '-D__OBJECT_FILE__="asm-offsets.s"' -S -g0 -o asm-offsets.s.new -MQ asm-offsets.s arch/arm/arm64/asm-offsets.c
> cc1: error: unknown value 'armv8-r' for '-march'
> cc1: note: valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a; did you mean 'armv8-a'?
> make[3]: *** [Makefile:413: asm-offsets.s] Error 1
> ```
> And the reason is that in the implementation of "cc-option": To handle this we do a test compile, passing the option-under-test,
> on a code fragment that will always produce a warning (integer assigned to pointer). We then grep for the option-under-test in
> the compiler's output, the presence of which would indicate an "unrecognized command-line option" warning/error.
> ```
> cc-option = $(shell if test -z "`echo 'void*p=1;' | \
>                      $(1) $(2) -S -o /dev/null -x c - 2>&1 | grep -- $(2) -`"; \
>                      then echo "$(2)"; else echo "$(3)"; fi ;)
> ```
> Here, that is, we are trying to grep "-march=armv8-r" in output message of the test compile, and since the output
> message(unknown value 'armv8-r' for '-march') doesn't contain the COMPLETE string, it thought the compiler supported this
> option, but it actually not...
> 
> Tracing back to the commit about the implementation of "cc-option", it discards the linux method(using exit code to tell) for dealing with
> disable-warning options.
> See https://github.com/xen-project/xen/commit/28f8fb7d2b3fde2f5cbe5526ac4f1c932e3f5d26 for more details.
> 
> To fix this issue, I could loose the "grep check", instead trying to grep the COMPLETE option string("-march=armv8-r"), only partial(armv8-r) is
> enough. But, hmmm, the way of greping output message to check is kinds of reliable, IMO, since there is no standard for that.

Since we need to be careful about not relaxing this too much, my
immediate suggestion here would be to split option strings at =
signs, and then use grep to check that every resulting piece is
present in the error message coming from the compiler. Afaict
this should cover your case and might also make a few others
less fragile. Unfortunately I expect this will make for quite a
bit more complicated a make macro. I wonder whether Linux hasn't
run into the same problem at some point, and has found some more
elegant and/or robust solution.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 12:50:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 12:50:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222305.384431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyfb-0006mr-VO; Fri, 05 Nov 2021 12:50:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222305.384431; Fri, 05 Nov 2021 12:50:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miyfb-0006mk-Rz; Fri, 05 Nov 2021 12:50:11 +0000
Received: by outflank-mailman (input) for mailman id 222305;
 Fri, 05 Nov 2021 12:50:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1miyfa-0006mV-TM
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 12:50:10 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e8ce4933-3e36-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 13:50:09 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2057.outbound.protection.outlook.com [104.47.12.57]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-17-Tv8zj7NjM6qpVY85X1Tnyw-1; Fri, 05 Nov 2021 13:50:08 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6671.eurprd04.prod.outlook.com (2603:10a6:803:11f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Fri, 5 Nov
 2021 12:50:06 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 12:50:06 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0024.eurprd06.prod.outlook.com (2603:10a6:20b:462::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Fri, 5 Nov 2021 12:50:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8ce4933-3e36-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636116609;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OsmaAP8oZ7Snerm7QV7ZROMuDBqUeEqa1aL3UwUf88w=;
	b=aU8YoDZF8ZijLHOswq1jDXEwvbifGmiRVtTeRDEPWmpHENLFr3YfpQGsTFp3tbfTAMFhnk
	FTxNqOwWrcotgAGlmyQ5GhkHwEOrEZMMZ8ecn6OK+QNVIFKeL1DLWqUbuG9zeUmgthD2KL
	VAv/JdnPaRswzV1/no+PcKA/DXBDTrY=
X-MC-Unique: Tv8zj7NjM6qpVY85X1Tnyw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=URAaA5MW1kY7RqthIXAi1zg4+4seI1ewllGqxdnubMDMv6NWuTOoZJwcYpAZKYEE6pH+PYDBANEMlck3V7TM8KtieYqD81mL2Fdc9yG99ccYGcu27L0UPv+GhFDCM5G/nzZhh5MMMRpNSGKJoxzMP3S8AHAEsNPKLFlR7JPC46vRa2xyWc9/ErZTqTcDPHyqyAFJ3lNhz8yed8J90KtaXirsJ+TzKSpWh+HUh+fR8qGnGVr/uCvMDHlQ7EYiar238jiYfN57Sd+rt7kePIje54v4+unm3YDYRPSVov9VlmZW+bM9H1apo35I8U8xbjbweSH3XYLkBvx3EnWgILGDoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OsmaAP8oZ7Snerm7QV7ZROMuDBqUeEqa1aL3UwUf88w=;
 b=jaQ/UfoOO6mOVydyGXIv3Iln5z/uQZTGIzjbCk+jVYQ2tb3mg27xOuD2h2cbjRKwm4Hi5+PUHHu0/Wj3Tfj8sQGziF2BSQeqOXVKxA47h1tzM0H4THr4q22sPQ8HQAVJ4Aj8/ASu1cNo1+8JMpkZ435GdoBxh8W0fhDIuZDd/lp650lQH0WwEK5JOM9QNYPyAS2VvbcGx3n5kuKZd5nb/g8Zzm6ijucgCh9fXQ+YSQK61VIWQy7Lxx1PwMVMJDY7j5vusbgSoQDyBSeBUcI+/KKa99V5229+ppxis3Mv+/8FGGhK6/Wx3rkG+yLHFVKFqQ8/ZHrev7GCCW3vNducDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <06be7360-0235-3773-b833-3e0d65512092@suse.com>
Date: Fri, 5 Nov 2021 13:50:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: xen 4.11.4 incorrect (~3x) cpu frequency reported
Content-Language: en-US
To: James Dingwall <james@dingwall.me.uk>
References: <20210721092958.GA2502468@dingwall.me.uk>
 <c9c6778d-9823-4b07-fb48-604acef1f3de@suse.com>
 <20210726123332.GA3844057@dingwall.me.uk>
Cc: xen-devel@lists.xenproject.org
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20210726123332.GA3844057@dingwall.me.uk>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0024.eurprd06.prod.outlook.com
 (2603:10a6:20b:462::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9e1812c4-399b-4907-371b-08d9a05acb04
X-MS-TrafficTypeDiagnostic: VE1PR04MB6671:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB667126F133CEC99145EDBF57B38E9@VE1PR04MB6671.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	6u47DoH9iMnw7JHORyD86vg7pRTMVMgul5cG+VM/xhbuGpcHDa2T/bSeKAHKdZMh2kWS3CFzb0hcyq1EnSxeo3fuRZvM/AbgjWwAYIzb/7Z1WFkVrCWPQQ4DHpEawJTivs2+BCkTDNG5Ga8tfei0Str49yHXNxq8LS/IVyCSoDG/tp3iwM5Nf2vNXc8uV2simB7l2akDEeF8Nx5bxSldsB1dSPc0VapPHScwaN/1eC0PrNcYfS+YxwSB5x2Vq46jkZ9W+c3VBRNPF/4z7AyXMJKbEB1BuSp3iESRlo65n3DwmIWqzqExakRXp4b3xAGz+N8Fqv64fITKADXFfGZTwfRTBEmhhmTvEFve5yJVLAU/hbBvelupNXbGTu4sJIAKQvXsuJKwvvSx9CFT2/BRLruYZ1V0N8y9FO/6n1ZaJXOPqqiPd1zjdwEqodA/yZV/bIAUfwRLBpGzb2TibCgjjDYWNj1AM909cWTbhpLNYbNRwPGuAJYzbH2SCnoNhyf26ws8SAGBSRBIqmdinBpyM9IBzexm/bmtMCe8/lSF0jfNLTIGaqfrUDHWrTzy/1UgN6ElCyY5HJyCYH6dW20lZ0gV7ghUHCFRNNL/nC56arz3u4aCOdbVONpYRQ9E9Rd8DkxZ/NXv4qpI0et2DowzDqt5b6daKT5QE5CtJ5T4Etgiflof97V0+Mvs1fPsEj6soT8KhhwtckqQOPsLKN4jb65pVPCaPAF7p/7F1APWnoI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(83380400001)(66556008)(2906002)(6916009)(8676002)(5660300002)(31686004)(53546011)(31696002)(8936002)(6486002)(2616005)(316002)(26005)(86362001)(66476007)(66946007)(16576012)(38100700002)(4326008)(956004)(508600001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QWlhL0d3ZDB5VCtacEtkd0tPNUh4N2t6K3d1dkxidVh0RVVhQXZkUzQvNTJW?=
 =?utf-8?B?TkorR0pCOVJvNWlMWTlMOGo5U2VtclJrb3Y2cXBMYlZzblVBeUltODRlVFZF?=
 =?utf-8?B?YTlzTDd4ditPdW9qbjJ4UDdPTVY3TkEyRzA0MzltVlVoc3lzRE82amdoWDRR?=
 =?utf-8?B?bDZGTDFlZ0pIMU83OGF5OXRuZEJ0cmZVYXJSSWpqcUhyM1hLNXlRNVFpV3I1?=
 =?utf-8?B?dkVISllNdmY1VjY0Zmc4SkhIYWNzVTNqT2lHQjRrQWFld0VLVnZsMGwvM0tp?=
 =?utf-8?B?Q00wWXlXdnZoTXhnM1M5T0lGbUpVNzB0d2FwOEF2SlluLzBSc3Z4MlAwWllV?=
 =?utf-8?B?YW9ZYnI0MUNGcHVrQjUwOVJ5WDB0TzRMSW5rVFRubFFIN0c2T2pTeDRyanlG?=
 =?utf-8?B?MThTWFNSMlZLakhEbmo4VTZsL2RzTmt4WVZkUU5aaFgraFZFQ0wzOXJ3Vno1?=
 =?utf-8?B?QU1Za09oZEJ2YjEvUll5MjhQMDN2NHpXQTBFbFZxanp6NW1iZVRURmNUS0RX?=
 =?utf-8?B?ZnlmL0pRdDV6bFVOSE85dU1QUkpmS0ZJM1V4RHBpMVo5Y0hWaHMrd1Vtc25L?=
 =?utf-8?B?V1dRMm5vL3B4UEpqNm9sZWV3Znd3NlhGellpMWx2SGZXY2Y3QU1QdHlTc3NP?=
 =?utf-8?B?R0paenFOcjRLSXJMSG0zM3F5TXNkY2Z0TzRSZEFpb29lb245VzZvcFI5RTQx?=
 =?utf-8?B?dGI1YzNVVUhTdHB2ZnE0dTgyRE9TSkp6bGxuT1B4QXdRcmJyekVIbERvam1X?=
 =?utf-8?B?UWttQ0ZOT0lpZm0vVURQNkRYSHU5Y1ZJYy8zY1UxaTJORnFNbHE1MWRnTGRC?=
 =?utf-8?B?Q2s2UGwrVFM0R1FTbFBnNUQvUlNQNG9QTXkwL2VweDlIeFNQQndVODh4MzBj?=
 =?utf-8?B?YU56QmRtbXovSVN6T2tSaW12NU1zWGE5NzU3SWRGTkFDNTVOOVlDVlo5eHI0?=
 =?utf-8?B?VVFaVHhNcFZHK0d3NHVzbmd5Ynd6N1FOUlUrWGZIdlAyY3JlVnNkWUg1S0I3?=
 =?utf-8?B?ZUt6NmJNTDh2dlNUOWExUm1KaGxVYVdEcjhUT3h4bFZmR0xYOFZZVVQyQ0lE?=
 =?utf-8?B?VDkwQ1Q4WWErU1Z5UkcxZ3FsSHFTVlBtRXE5MzViZFkxVWJWTHFncWlYOWFZ?=
 =?utf-8?B?NDRvVnMzdXV2YXB5VmZUODFyTjY5U0xmWVU3cXFOdEc3eGhhRGNmKzNLQkho?=
 =?utf-8?B?WVRLZFFmb1VLbTNFdkx3bGt1clV4c1drOExZbnFpUC9SaGQ0d1AyVkxjeWVj?=
 =?utf-8?B?UXRKa3VWTEZidXJaUHoyaGcycHNXdnhLMTZjZk5VeGZwV0pMMVNJbjVzaEcv?=
 =?utf-8?B?RzJXMUNFNW16V0lxMUVhbWlwSGZDWlZVdjdxaEVaZ1AwdWovcWRFRDliRWtu?=
 =?utf-8?B?UzI0MENCbEVncUJHd3N5RnduYktZZWxmYllIUlhGb1dHRG1zSHpQRmFXWEFx?=
 =?utf-8?B?TDBtemZldkYyalMyNTVpcjBYOFNBQ1JRRU1vL0VkUlZDYzM0UDQ0clpjUi8x?=
 =?utf-8?B?dXhleVArV1NuVTg3dEF4NWdlbHVrTS9FZXFIR3h1QlI2S1lRcGZ6N1FxTEM2?=
 =?utf-8?B?MWkySHRweUdXOUViN1F0VVRRMW5aVjM1SEhRbEF5VkhmTmJNTXFFRVVGaDBv?=
 =?utf-8?B?MWVRQWdxOW00RHg0UlZwOWtzUDN2R0xLOXNMNjVyazJCSHNFMVFuc3RTd1ZB?=
 =?utf-8?B?czJBQ0E3cUs1SG5vN1ljdkdSRm9Jb0RHd3IrcURFaGlGUUVPaE1sU1p4NGxX?=
 =?utf-8?B?c1RHQ3BTdDNVU0lVL2c5cFVSMUhIRGNWRjEyMENvTHRjQk0vTTZzcjFiSDRz?=
 =?utf-8?B?MmgzNURpK1pScEx1RFY0cVJkZnN0b2FwSnM1bHRSRFRWNnZLeFFxbkY2RG5U?=
 =?utf-8?B?SXdxMU5qVS9TWTZ1K044QWtodGVXUHRsYVFoV1UxTVQ4U3A0WjdDMS9yb1dY?=
 =?utf-8?B?QTBheUxJMWZDeGpZaHdnQ2FsTnkrbVBFTTBzQkdsRFVwL2wvbEJ3ZUZucWFz?=
 =?utf-8?B?VFEzR25MNmh4R1pUUUdGVFpDNHY5RUR1dmhEMStsVWdKdy9vTVpnd1EwWEpt?=
 =?utf-8?B?ZlVFNGZJWGlwbmlJL1FYV0JLRkxIYTd4TUxZbHJVZWZUREVERnBHNWZFa1Y3?=
 =?utf-8?B?YWJJOURsUE5hbGFDVnBPN3hLZWpJOUhQUlpnTUgxb1hXTmhSL2lNSTRXbTB5?=
 =?utf-8?Q?jWIbrl3cBF/m6AoWOzN5RY8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e1812c4-399b-4907-371b-08d9a05acb04
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 12:50:06.4796
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dpb7m1VTFubqColbJKOVf5ylN4B5RAm6xYS0UrnbXgrwi1MxlVvQ/1n1yaQ/FQsmOG1fUB2atvSZuGeFxdKL3w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6671

On 26.07.2021 14:33, James Dingwall wrote:
> Hi Jan,
> 
> Thank you for taking the time to reply.
> 
> On Wed, Jul 21, 2021 at 12:59:11PM +0200, Jan Beulich wrote:
>> On 21.07.2021 11:29, James Dingwall wrote:
>>> We have a system which intermittently starts up and reports an incorrect cpu frequency:
>>>
>>> # grep -i mhz /var/log/kern.log 
>>> Jul 14 17:47:47 dom0 kernel: [    0.000475] tsc: Detected 2194.846 MHz processor
>>> Jul 14 22:03:37 dom0 kernel: [    0.000476] tsc: Detected 2194.878 MHz processor
>>> Jul 14 23:05:13 dom0 kernel: [    0.000478] tsc: Detected 2194.848 MHz processor
>>> Jul 14 23:20:47 dom0 kernel: [    0.000474] tsc: Detected 2194.856 MHz processor
>>> Jul 14 23:57:39 dom0 kernel: [    0.000476] tsc: Detected 2194.906 MHz processor
>>> Jul 15 01:04:09 dom0 kernel: [    0.000476] tsc: Detected 2194.858 MHz processor
>>> Jul 15 01:27:15 dom0 kernel: [    0.000482] tsc: Detected 2194.870 MHz processor
>>> Jul 15 02:00:13 dom0 kernel: [    0.000481] tsc: Detected 2194.924 MHz processor
>>> Jul 15 03:09:23 dom0 kernel: [    0.000475] tsc: Detected 2194.892 MHz processor
>>> Jul 15 03:32:50 dom0 kernel: [    0.000482] tsc: Detected 2194.856 MHz processor
>>> Jul 15 04:05:27 dom0 kernel: [    0.000480] tsc: Detected 2194.886 MHz processor
>>> Jul 15 05:00:38 dom0 kernel: [    0.000473] tsc: Detected 2194.914 MHz processor
>>> Jul 15 05:59:33 dom0 kernel: [    0.000480] tsc: Detected 2194.924 MHz processor
>>> Jul 15 06:22:31 dom0 kernel: [    0.000474] tsc: Detected 2194.910 MHz processor
>>> Jul 15 17:52:57 dom0 kernel: [    0.000474] tsc: Detected 2194.854 MHz processor
>>> Jul 15 18:51:36 dom0 kernel: [    0.000474] tsc: Detected 2194.900 MHz processor
>>> Jul 15 19:07:26 dom0 kernel: [    0.000478] tsc: Detected 2194.902 MHz processor
>>> Jul 15 19:43:56 dom0 kernel: [    0.000154] tsc: Detected 6895.384 MHz processor
>>
>> Well, this is output from Dom0. What we'd need to see (in addition)
>> is the corresponding hypervisor log at maximum verbosity (loglvl=all).
> 
> This was just to illustrate that the dom0 usually reports the correct speed.  I'll update the xen boot options with loglvl=all and try to collect the boot messages for each case.
> 
>>
>>> The xen 's' debug output:
>>>
>>> (XEN) TSC marked as reliable, warp = 0 (count=4)
>>> (XEN) dom1: mode=0,ofs=0x1d1ac8bf8e,khz=6895385,inc=1
>>> (XEN) dom2: mode=0,ofs=0x28bc24c746,khz=6895385,inc=1
>>> (XEN) dom3: mode=0,ofs=0x345696b138,khz=6895385,inc=1
>>> (XEN) dom4: mode=0,ofs=0x34f2635f31,khz=6895385,inc=1
>>> (XEN) dom5: mode=0,ofs=0x3581618a7d,khz=6895385,inc=1
>>> (XEN) dom6: mode=0,ofs=0x3627ca68b2,khz=6895385,inc=1
>>> (XEN) dom7: mode=0,ofs=0x36dd491860,khz=6895385,inc=1
>>> (XEN) dom8: mode=0,ofs=0x377a57ea1a,khz=6895385,inc=1
>>> (XEN) dom9: mode=0,ofs=0x381eb175ce,khz=6895385,inc=1
>>> (XEN) dom10: mode=0,ofs=0x38cab2e260,khz=6895385,inc=1
>>> (XEN) dom11: mode=0,ofs=0x397fc47387,khz=6895385,inc=1
>>> (XEN) dom12: mode=0,ofs=0x3a552762a0,khz=6895385,inc=1
>>>
>>> A processor from /proc/cpuinfo in dom0:
>>>
>>> processor       : 3
>>> vendor_id       : GenuineIntel
>>> cpu family      : 6
>>> model           : 85
>>> model name      : Intel(R) Xeon(R) D-2123IT CPU @ 2.20GHz
>>> stepping        : 4
>>> microcode       : 0x2000065
>>> cpu MHz         : 6895.384
>>> [...]
>>>
>>> Xen has been built at 310ab79875cb705cc2c7daddff412b5a4899f8c9 from the stable-4.12 branch.
>>
>> While this contradicts the title, both 4.11 and 4.12 are out of general
>> support. Hence it would be more helpful if you could obtain respective
>> logs with a more modern version of Xen - ideally from the master branch,
>> or else the most recent stable one (4.15). Provided of course the issue
>> continues to exist there in the first place.
> 
> That was my error, I meant the stable-4.11 branch.  We have a development environment based around 4.14.2 which I can test.

I'm sorry to ask, but have you got around to actually doing that? Or
else is resolving this no longer of interest?

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 13:07:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 13:07:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222315.384441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miywO-0008Oh-Gg; Fri, 05 Nov 2021 13:07:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222315.384441; Fri, 05 Nov 2021 13:07:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miywO-0008Oa-DW; Fri, 05 Nov 2021 13:07:32 +0000
Received: by outflank-mailman (input) for mailman id 222315;
 Fri, 05 Nov 2021 13:07:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ym5/=PY=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1miywM-0008OU-Ps
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 13:07:30 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02on0604.outbound.protection.outlook.com
 [2a01:111:f400:fe07::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 53bf9326-3e39-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 14:07:29 +0100 (CET)
Received: from AM7PR03CA0008.eurprd03.prod.outlook.com (2603:10a6:20b:130::18)
 by AM8PR08MB5716.eurprd08.prod.outlook.com (2603:10a6:20b:1d5::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Fri, 5 Nov
 2021 13:07:26 +0000
Received: from VE1EUR03FT048.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:130:cafe::f4) by AM7PR03CA0008.outlook.office365.com
 (2603:10a6:20b:130::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Fri, 5 Nov 2021 13:07:26 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT048.mail.protection.outlook.com (10.152.19.8) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Fri, 5 Nov 2021 13:07:25 +0000
Received: ("Tessian outbound 4ce13939bd4a:v108");
 Fri, 05 Nov 2021 13:07:25 +0000
Received: from 039a31f5c704.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 C3718586-D033-45C6-B6BA-5C10F0F1DE14.1; 
 Fri, 05 Nov 2021 13:07:13 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 039a31f5c704.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 05 Nov 2021 13:07:13 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PA4PR08MB6045.eurprd08.prod.outlook.com (2603:10a6:102:ef::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Fri, 5 Nov
 2021 13:07:11 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::c1b4:db1c:376f:b697%8]) with mapi id 15.20.4649.019; Fri, 5 Nov 2021
 13:07:11 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO4P123CA0080.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:190::13) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Fri, 5 Nov 2021 13:07:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53bf9326-3e39-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZhDtJbfn4DvtUyAyZ93g4S+X0I+6c+d11iSdcoIXeSQ=;
 b=8sTw7kSAQyVe3DqroZco99jTAG4lusB69KjGma68tuXYXvh7e2tDc9sS9pybvvLp6LWV7y0I1j/vVxipYOoXP2UHJhMheWsaKOejF5uFYhlAstFcbmIVBXh1WCh+UF3ohhJ5l1KXAxZaERm/jn3omcaY2jN4vklYwa3u8p9rikc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 1ccf9cf93073682a
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iaODJGSMSGnu/pga5TcXR8CQ37eH+PP+4E7mhappLvUzrRiSefl9+PNRE3Q1oKvBi5VX1eu7Or/P0WJbvSA99dNxEx3YSHB181HkcABsrj5RTJ3+c3dSosW7/amVFkRVIKdY+em3kdHHHBm1AlVVZhdsa25Ht0Pwisr9SVHHu39ZXWua7hjOx+ALhYqpzhvinF9g4tIElLFDbtnVX+r9y2H+XU2Bk8HdEs4KdhfaU1uSNTLGnPh24mY2tUoro2HnZbQRaOkqnelEB1yrNt2paQk00RcmHjzptiq93f0R+6a+4hplsi7p9KS0vG6QwAGeDweLTbt3B+qm7MWTW/WmkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZhDtJbfn4DvtUyAyZ93g4S+X0I+6c+d11iSdcoIXeSQ=;
 b=SAM04hFCKUgDv6PHZtA+Gk5WFryfY5s27S4AMZohHU/lOW8BsAo+M6fYr6WupTjDQ9jLB1+cLt8BxtoU8LZY0n3x0mamybF2diWcHymYAE/X5FmvZRI2cgdcddqzbRVYQV9w9PvfaqAOtPbqVriDRI6BiCh9I+n9nzW4MdWW8dJ/AI4y13JbpUTTKjcjA6xhQe9QHbZMJWjuN6CfEjezhMg5z1DyedXRlhq6THsohPIjEwgyUtf3VWF21/PGGLONZSZsIY6QRnO4Z1D8dEtHf3th4oDAeuMMGSrhu5qxMxqWWvzdOD1DV3ARdMQzZ7+WW+COVlb8kdoci/hk4ASfDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZhDtJbfn4DvtUyAyZ93g4S+X0I+6c+d11iSdcoIXeSQ=;
 b=8sTw7kSAQyVe3DqroZco99jTAG4lusB69KjGma68tuXYXvh7e2tDc9sS9pybvvLp6LWV7y0I1j/vVxipYOoXP2UHJhMheWsaKOejF5uFYhlAstFcbmIVBXh1WCh+UF3ohhJ5l1KXAxZaERm/jn3omcaY2jN4vklYwa3u8p9rikc=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=us-ascii
Subject: Re: [PATCH-4.16 v3] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <e10f21db-3533-3c72-b3d7-7857f2f28160@suse.com>
Date: Fri, 5 Nov 2021 13:07:04 +0000
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <9750169B-A2CA-40A8-81AD-55365C15FA0E@arm.com>
References: <20211105112148.48719-1-luca.fancellu@arm.com>
 <e10f21db-3533-3c72-b3d7-7857f2f28160@suse.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO4P123CA0080.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:190::13) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6b659dd9-12f1-475f-7c3f-08d9a05d368c
X-MS-TrafficTypeDiagnostic: PA4PR08MB6045:|AM8PR08MB5716:
X-Microsoft-Antispam-PRVS:
	<AM8PR08MB5716A181AC8A95BA3F43C120E48E9@AM8PR08MB5716.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:451;OLM:451;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 onW1v8Kq7l4/O9i0EcfyIhZDyU4BxxavqWS7DIyvqlgWsHRSMbaVO6OVcKKxnj34X0mP+QN4Te9vY1bSDhMCERee6ueYbkb7Ll3hhJcRjs14yC58JQ4pkKvhfM5/iu8IBM/MN5yMFH99MQUSqNkPjPlnMMk07Hz88FzAjGvZCGVntSmD8eccp+5F8Bj3CO88cSoof2SQsHCVRYiX6Vi11Yzb02OPFz0MuLsmq5lu9D/zSZELj0NSzvDJjh2y8cPeBFKARx5Y57AwL/ikFfzCGVoVUCce0FZuzaUQ7AauH2rVTOwap92qZrSeuFIwL0l1S4SCRtpK+oobcYvW1uCw2GR2GcFxd0c5KLuE35kI+B3utdO4ziv8udYqeKxTifmJ3Fso8Pfjk/UhHKG1Own/L3BStdcg2NImO0SthY5rwn1g1itm0/72rWfauHIFL4begKSQH7Hde7gIjI6lfe34TL3rdaTxwrXxhvEvagUOYfJ5FIlj6GXKLLJDCxmRJu0FmRnUq97n3Vsf++/Cj/240sAkD5K9qEgHFO7b2Qu5ywZED9n68/TC2PCUPDRw0wDZWKnH+smeeg3ILjF3TO+rLVbPSXH3KRtzfL3fWA0u4hYTBcDLFLT27UipCEGCEySBm+MHDzLyXCJ7Ys+60E5+SKHcX2Ps+A7rZR3YmrdM0WqDGHiaj7O7uuLSlFgAhjf1zTNXHoNL0nljtfjhjcHj1sH9AGEUt2FHTzA3wT/Teiw=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38350700002)(186003)(6486002)(6512007)(86362001)(6916009)(2906002)(83380400001)(26005)(53546011)(66556008)(6506007)(36756003)(66476007)(66946007)(8936002)(38100700002)(316002)(4326008)(2616005)(6666004)(956004)(33656002)(44832011)(8676002)(5660300002)(508600001)(52116002)(54906003)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6045
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT048.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	7d7f9002-720b-4ea8-b7aa-08d9a05d2de5
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	q1qKwoBe2wWFWni+XCU6N2MeT7246uep4HzTKL70/w0ToHlRCTxlawTR/08q0FI+tPDnk/wNP8pM/0Bt69UAtqRaSntL2AxkXzfK8Md2aWcAbqamn+qHi113aqKNegC4k8VyxI6yDjJKRZKbatBn2zYrkCkzTQpcHGMYxLQlw1hnztHup6G501N/oFIbQNJSpYSk4K8uzom3CvkFePML42/dNzTgizi1F8YmIKDseKZlZXHw9xDJXQpBOjw971LVsBvlAIhTR89cXSuEPJqutBlLUreL7mJjm474lmRT13+6o6WOR3SNlqVKWisyoLS8rDpvb8mSXIb4/4ehUZUeZR3900fJDEWhK25I/coj1altdFluzASNuvD09Kl1abtfh96FSzyKwBLomJWc8CnAgcx0BgeQNHmyb7g328roi7JP5r9UYMZCfc/Zxlvou4t7cUwtWiyb9gcOY5WxkdosB+RSa36oYAbMGje9FbvCJOF4KB2lWP5qpLZuTytU2ndNFq8in046hj4JTxcveH6kXWjyEgzdNUJ9gq2+8GVU3RaCXUR0TtzdgzTJVTBXJ7TiFWNYQJ2/ipbKAO3mY/TNirNqHDxAp2ID8H2OZpSqZNILO8+t/5QDAU//XSsicx98NSbchMvYpfLhmxb7pe9byKEkZvO7F4v+DFAvHeqGQilxu8+DNinEfK1+dj/mWOBHAKssxvau/6q+Jq9vXcAqNQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(26005)(6666004)(83380400001)(81166007)(36756003)(8936002)(33656002)(356005)(4326008)(6862004)(54906003)(6506007)(82310400003)(316002)(6486002)(70206006)(70586007)(53546011)(47076005)(6512007)(86362001)(44832011)(186003)(36860700001)(956004)(508600001)(8676002)(2616005)(336012)(5660300002)(2906002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 13:07:25.6185
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b659dd9-12f1-475f-7c3f-08d9a05d368c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT048.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5716



> On 5 Nov 2021, at 12:20, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 05.11.2021 12:21, Luca Fancellu wrote:
>> --- a/xen/common/efi/boot.c
>> +++ b/xen/common/efi/boot.c
>> @@ -121,6 +121,8 @@ static char *get_value(const struct file *cfg, const=
 char *section,
>> static char *split_string(char *s);
>> static CHAR16 *s2w(union string *str);
>> static char *w2s(const union string *str);
>> +static EFI_FILE_HANDLE get_parent_handle(EFI_LOADED_IMAGE *loaded_image=
,
>> +                                         CHAR16 **leaf);
>> static bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>>                       struct file *file, const char *options);
>> static bool read_section(const EFI_LOADED_IMAGE *image, const CHAR16 *na=
me,
>> @@ -167,7 +169,7 @@ static void __init PrintErr(const CHAR16 *s)
>> }
>>=20
>> #ifndef CONFIG_HAS_DEVICE_TREE
>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>> {
>>     return 0;
>> }
>> @@ -1225,9 +1227,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE=
 *SystemTable)
>>=20
>>     efi_arch_relocate_image(0);
>>=20
>> -    /* Get the file system interface. */
>> -    dir_handle =3D get_parent_handle(loaded_image, &file_name);
>> -
>>     if ( use_cfg_file )
>>     {
>>         UINTN depth, cols, rows, size;
>=20
> With the dir_handle declaration also moved back here (as I did
> indicated in reply to Stefano's proposal), ...

Ops.. sorry forgot that, will fix it

>=20
>> @@ -1240,6 +1239,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE=
 *SystemTable)
>>=20
>>         gop =3D efi_get_gop();
>>=20
>> +        /* Get the file system interface. */
>> +        dir_handle =3D get_parent_handle(loaded_image, &file_name);
>> +
>>         /* Read and parse the config file. */
>>         if ( read_section(loaded_image, L"config", &cfg, NULL) )
>>             PrintStr(L"Using builtin config file\r\n");
>> @@ -1362,14 +1364,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TAB=
LE *SystemTable)
>>         efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
>>         cfg.addr =3D 0;
>>=20
>> +        dir_handle->Close(dir_handle);
>> +
>>         if ( gop && !base_video )
>>             gop_mode =3D efi_find_gop_mode(gop, cols, rows, depth);
>>     }
>>=20
>>     /* Get the number of boot modules specified on the DT or an error (<=
0) */
>> -    dt_modules_found =3D efi_check_dt_boot(dir_handle);
>> -
>> -    dir_handle->Close(dir_handle);
>> +    dt_modules_found =3D efi_check_dt_boot(loaded_image);
>>=20
>>     if ( dt_modules_found < 0 )
>>         /* efi_check_dt_boot throws some error */
>>=20
>=20
> ... all of the quoted part
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thank you for your time, will push very soon v4=20

>=20
> Down the road we will want to constify efi_check_dt_boot()'s parameter,
> but that will require changes elsewhere as well.
>=20
> Jan
>=20



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 13:07:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 13:07:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222316.384453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miywa-0000G2-Pk; Fri, 05 Nov 2021 13:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222316.384453; Fri, 05 Nov 2021 13:07:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1miywa-0000Ft-Lm; Fri, 05 Nov 2021 13:07:44 +0000
Received: by outflank-mailman (input) for mailman id 222316;
 Fri, 05 Nov 2021 13:07:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ym5/=PY=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1miywZ-0000F6-2L
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 13:07:43 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5b6556d3-3e39-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 14:07:41 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 855B82F;
 Fri,  5 Nov 2021 06:07:40 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.cambridge.arm.com
 [10.1.195.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4E1673FA4D;
 Fri,  5 Nov 2021 06:07:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b6556d3-3e39-11ec-a9d2-d9f7a1cc8784
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com,
	wei.chen@arm.com,
	iwj@xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64
Date: Fri,  5 Nov 2021 13:07:28 +0000
Message-Id: <20211105130728.30648-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.17.1

The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
("arm/efi: Use dom0less configuration when using EFI boot") is
introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.

Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle
inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
handle is used later by efi_bs->HandleProtocol(...) inside
get_parent_handle(...) when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL
interface, causing Xen to stop the boot because of an EFI_INVALID_PARAMETER
error.

Before the commit above, the function was never called because the
logic was skipping the call when there were multiboot modules in the
DT because the filesystem was never used and the bootloader had
put in place all the right modules in memory and the addresses
in the DT.

To fix the problem the old logic is put back in place. Because the handle
was given to the efi_check_dt_boot(...), but the revert put the handle
out of scope, the signature of the function is changed to use an
EFI_LOADED_IMAGE handle and request the EFI_FILE_HANDLE only when
needed (module found using xen,uefi-binary).

Another problem is found when the UEFI stub tries to check if Dom0
image or DomUs are present.
The logic doesn't work when the UEFI stub is not responsible to load
any modules, so the efi_check_dt_boot(...) return value is modified
to return the number of multiboot module found and not only the number
of module loaded by the stub.
Taking the occasion to update the comment in handle_module_node(...)
to explain why we return success even if xen,uefi-binary is not found.

Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI boot")
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Justification for integration in 4.16:
Upside: allow booting xen from grub on arm64 when the stub doesn't load
        any module.
Downside: It's affecting the EFI boot path.
Risk: It's not affecting x86 arch that works the same way as before.
      If something is wrong it creates a problem on early boot and not at
      runtime, so risk is low.

Tested in this configurations:
 - Bootloader loads modules and specify them as multiboot modules in DT:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - DT specifies multiboot modules in DT using xen,uefi-binary property:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
   other multiboot modules are listed for DomUs using xen,uefi-binary
 - No multiboot modules in DT and no kernel entry in cfg file:
   * proper error thrown

Changes in v4:
 - dir_handle scope reverted back (Jan)
Changes in v3:
 - Revert back to the logic that protects get_parent_handle(...) (Jan)
 - Changed efi_check_dt_boot(...) to use a EFI_LOADED_IMAGE handle and
   request, along the call stack, the parent dir handle only when needed.
Changes in v2:
 - Changed comment on DeviceHandle NULL (Jan)
 - Removed fatal condition on handle NULL (Jan)
 - Add more info about the EDK2+Grub2 issue to the commit msg (Jan)
 - Removed modules_found from function signature and pass everything
   on return (Stefano)
 - Improved comment in handle_module_node

---
 xen/arch/arm/efi/efi-boot.h | 61 ++++++++++++++++++++++++-------------
 xen/common/efi/boot.c       | 18 ++++++-----
 2 files changed, 50 insertions(+), 29 deletions(-)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 8b88dd26a5..458cfbbed4 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -44,17 +44,17 @@ void __flush_dcache_area(const void *vaddr, unsigned long size);
 
 static int get_module_file_index(const char *name, unsigned int name_len);
 static void PrintMessage(const CHAR16 *s);
-static int allocate_module_file(EFI_FILE_HANDLE dir_handle,
+static int allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
                                 const char *name,
                                 unsigned int name_len);
-static int handle_module_node(EFI_FILE_HANDLE dir_handle,
+static int handle_module_node(EFI_LOADED_IMAGE *loaded_image,
                               int module_node_offset,
                               int reg_addr_cells,
                               int reg_size_cells,
                               bool is_domu_module);
-static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
+static int handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
                                        int domain_node);
-static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
+static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
 
 #define DEVICE_TREE_GUID \
 {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0}}
@@ -647,11 +647,13 @@ static void __init PrintMessage(const CHAR16 *s)
  * This function allocates a binary and keeps track of its name, it returns the
  * index of the file in the modules array or a negative number on error.
  */
-static int __init allocate_module_file(EFI_FILE_HANDLE dir_handle,
+static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
                                        const char *name,
                                        unsigned int name_len)
 {
+    EFI_FILE_HANDLE dir_handle;
     module_name *file_name;
+    CHAR16 *fname;
     union string module_name;
     int ret;
 
@@ -683,9 +685,14 @@ static int __init allocate_module_file(EFI_FILE_HANDLE dir_handle,
     strlcpy(file_name->name, name, name_len + 1);
     file_name->name_len = name_len;
 
+    /* Get the file system interface. */
+    dir_handle = get_parent_handle(loaded_image, &fname);
+
     /* Load the binary in memory */
     read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
 
+    dir_handle->Close(dir_handle);
+
     /* Save address and size */
     file_name->addr = module_binary.addr;
     file_name->size = module_binary.size;
@@ -702,8 +709,9 @@ static int __init allocate_module_file(EFI_FILE_HANDLE dir_handle,
  * This function checks for the presence of the xen,uefi-binary property in the
  * module, if found it loads the binary as module and sets the right address
  * for the reg property into the module DT node.
+ * Returns 1 if module is multiboot,module, 0 if not, < 0 on error
  */
-static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
+static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
                                      int module_node_offset,
                                      int reg_addr_cells,
                                      int reg_size_cells,
@@ -730,13 +738,13 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
                                  &uefi_name_len);
 
     if ( !uefi_name_prop )
-        /* Property not found */
-        return 0;
+        /* Property not found, but signal this is a multiboot,module */
+        return 1;
 
     file_idx = get_module_file_index(uefi_name_prop, uefi_name_len);
     if ( file_idx < 0 )
     {
-        file_idx = allocate_module_file(dir_handle, uefi_name_prop,
+        file_idx = allocate_module_file(loaded_image, uefi_name_prop,
                                         uefi_name_len);
         if ( file_idx < 0 )
             return file_idx;
@@ -795,19 +803,20 @@ static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
         }
     }
 
-    return 0;
+    return 1;
 }
 
 /*
  * This function checks for boot modules under the domU guest domain node
  * in the DT.
- * Returns 0 on success, negative number on error.
+ * Returns number of multiboot,module found or negative number on error.
  */
-static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
+static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
                                               int domain_node)
 {
     int module_node, addr_cells, size_cells, len;
     const struct fdt_property *prop;
+    unsigned int mb_modules_found = 0;
 
     /* Get #address-cells and #size-cells from domain node */
     prop = fdt_get_property(fdt, domain_node, "#address-cells", &len);
@@ -833,24 +842,26 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
           module_node > 0;
           module_node = fdt_next_subnode(fdt, module_node) )
     {
-        int ret = handle_module_node(dir_handle, module_node, addr_cells,
+        int ret = handle_module_node(loaded_image, module_node, addr_cells,
                                      size_cells, true);
         if ( ret < 0 )
             return ret;
+
+        mb_modules_found += ret;
     }
 
-    return 0;
+    return mb_modules_found;
 }
 
 /*
  * This function checks for xen domain nodes under the /chosen node for possible
  * dom0 and domU guests to be loaded.
- * Returns the number of modules loaded or a negative number for error.
+ * Returns the number of multiboot modules found or a negative number for error.
  */
-static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
+static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
 {
     int chosen, node, addr_len, size_len;
-    unsigned int i = 0;
+    unsigned int i = 0, modules_found = 0;
 
     /* Check for the chosen node in the current DTB */
     chosen = setup_chosen_node(fdt, &addr_len, &size_len);
@@ -865,15 +876,23 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
           node > 0;
           node = fdt_next_subnode(fdt, node) )
     {
+        int ret;
+
         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
         {
             /* Found a node with compatible xen,domain; handle this node. */
-            if ( handle_dom0less_domain_node(dir_handle, node) < 0 )
+            ret = handle_dom0less_domain_node(loaded_image, node);
+            if ( ret < 0 )
                 return ERROR_DT_MODULE_DOMU;
         }
-        else if ( handle_module_node(dir_handle, node, addr_len, size_len,
-                                     false) < 0 )
+        else
+        {
+            ret = handle_module_node(loaded_image, node, addr_len, size_len,
+                                     false);
+            if ( ret < 0 )
                  return ERROR_DT_MODULE_DOM0;
+        }
+        modules_found += ret;
     }
 
     /* Free boot modules file names if any */
@@ -883,7 +902,7 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
         efi_bs->FreePool(modules[i].name);
     }
 
-    return modules_idx;
+    return modules_found;
 }
 
 static void __init efi_arch_cpu(void)
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 392ff3ac9b..8fd5e2d078 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -121,6 +121,8 @@ static char *get_value(const struct file *cfg, const char *section,
 static char *split_string(char *s);
 static CHAR16 *s2w(union string *str);
 static char *w2s(const union string *str);
+static EFI_FILE_HANDLE get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
+                                         CHAR16 **leaf);
 static bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
                       struct file *file, const char *options);
 static bool read_section(const EFI_LOADED_IMAGE *image, const CHAR16 *name,
@@ -167,7 +169,7 @@ static void __init PrintErr(const CHAR16 *s)
 }
 
 #ifndef CONFIG_HAS_DEVICE_TREE
-static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
+static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
 {
     return 0;
 }
@@ -1144,7 +1146,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
     const char *option_str;
     bool use_cfg_file;
     int dt_modules_found;
-    EFI_FILE_HANDLE dir_handle;
 
     __set_bit(EFI_BOOT, &efi_flags);
     __set_bit(EFI_LOADER, &efi_flags);
@@ -1225,11 +1226,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
 
     efi_arch_relocate_image(0);
 
-    /* Get the file system interface. */
-    dir_handle = get_parent_handle(loaded_image, &file_name);
-
     if ( use_cfg_file )
     {
+        EFI_FILE_HANDLE dir_handle;
         UINTN depth, cols, rows, size;
 
         size = cols = rows = depth = 0;
@@ -1240,6 +1239,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
 
         gop = efi_get_gop();
 
+        /* Get the file system interface. */
+        dir_handle = get_parent_handle(loaded_image, &file_name);
+
         /* Read and parse the config file. */
         if ( read_section(loaded_image, L"config", &cfg, NULL) )
             PrintStr(L"Using builtin config file\r\n");
@@ -1362,14 +1364,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
         efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
         cfg.addr = 0;
 
+        dir_handle->Close(dir_handle);
+
         if ( gop && !base_video )
             gop_mode = efi_find_gop_mode(gop, cols, rows, depth);
     }
 
     /* Get the number of boot modules specified on the DT or an error (<0) */
-    dt_modules_found = efi_check_dt_boot(dir_handle);
-
-    dir_handle->Close(dir_handle);
+    dt_modules_found = efi_check_dt_boot(loaded_image);
 
     if ( dt_modules_found < 0 )
         /* efi_check_dt_boot throws some error */
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 13:38:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 13:38:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222332.384463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizPm-0003iP-7Y; Fri, 05 Nov 2021 13:37:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222332.384463; Fri, 05 Nov 2021 13:37:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizPm-0003iI-4H; Fri, 05 Nov 2021 13:37:54 +0000
Received: by outflank-mailman (input) for mailman id 222332;
 Fri, 05 Nov 2021 13:37:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mizPk-0003i8-TH; Fri, 05 Nov 2021 13:37:52 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mizPk-0007zW-NS; Fri, 05 Nov 2021 13:37:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mizPk-0006Mu-Do; Fri, 05 Nov 2021 13:37:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mizPk-0003Cd-DE; Fri, 05 Nov 2021 13:37:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=jo5GO/als5uStCENRTmpjwzHXM5XPqA58kesv0RAzEs=; b=MP/iZS3VLCx2Pu2l+5WIh666Zo
	aCChJCOQFeO+QW23g5bXOSyOvdNd8297phLb+1TLa+42YrzSdoLrVxXV0YPcz61R+E5WDz1elsFSF
	y2lRWNFfp7Ldvy0e+VAsWZ+eS+8g3oQfSro8DBUjOu9aTxtE+pxEfUw/71yui5s9U1xM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166050-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166050: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=506c3a39d6e645c8414c278ceaba97935f90cb95
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Nov 2021 13:37:52 +0000

flight 166050 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166050/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              506c3a39d6e645c8414c278ceaba97935f90cb95
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  483 days
Failing since        151818  2020-07-11 04:18:52 Z  482 days  468 attempts
Testing same since   166050  2021-11-05 04:20:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 82185 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 13:56:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 13:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222348.384517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhf-0006vV-5p; Fri, 05 Nov 2021 13:56:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222348.384517; Fri, 05 Nov 2021 13:56:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhe-0006ue-V0; Fri, 05 Nov 2021 13:56:22 +0000
Received: by outflank-mailman (input) for mailman id 222348;
 Fri, 05 Nov 2021 13:56:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VR3F=PY=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mizhd-00063k-OQ
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 13:56:21 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25c0639a-3e40-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 14:56:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25c0639a-3e40-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636120579;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version;
  bh=jE3t3ojHgtOHN6Ilg6l9UgKhubTh2BJEn5CMoqQCWrM=;
  b=Ytn6jnIHF6+8WIMVvWiIJ1WgHuSXMV0NMtnkxQwHLY5KcONcA5rzjaYO
   68EFHoH7lG6XOV8b5vXBpvuHzc2REykS4Hrxr4STftdZzfj1/hIjwGvjM
   rK5kL3TWlbNBVYKTjmAPTzVx0yEmpmvAi1Jb/g2XsLWsLbZIz+FT94kr6
   I=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: jPPOO8eak+TuVctPl7Fi/nDgDR1SgKPTta6cvNGMdPBNSP1+8z7oWfuk7xDRFYTT8XRg8DY/hF
 ewAnFUBwirH3pOC0WgfZzAv+lauvq7wlFmZrJxdI6k/mMwtwQkPzrY8kJfTbRsnf183nOUFmom
 f3ueUrP29KLyV2eiLH87N2TFP4MYrH6eVoZLeAkItrq3TTthc3zOGSnjsXhsMS/vt0m2hlXX4e
 k2RuppHNB+XbWgkpgqQCdZh9Q1PyZ+w6u/UwY1gpNPVybwkf+tNocYxrKMslbMs1MXH8V2twKV
 hRd8EqITFmBdmCIzzmP4kHca
X-SBRS: 5.1
X-MesageID: 57163417
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Gh0Ye6l0ak6bc4LdoalbVijo5gxZIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIaXzuPO6rcZmumKdt1btyw8k0HuMXVzIdlQFRt+ylgFyMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Y12YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 PtGlreUbyVwB6iStO8iTQUICw9dApQTrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQKmHO
 ZFFMGUHgBLoOCNweQdQObIExbmspl39Iwxkq1+qnP9ii4TU5FMoi+W8WDbPQfSGXd5Qn1qYj
 mve8n7lHwoBM9iC1TuC9GnqjejK9Qv3V44fG6ex3uJ7i12UgGoIAVsZUkXTiem0jAuyVsxSL
 2QQ+zEytu4i+UqzVN7/Uhak5nmesXYht8F4SrNgrlvXk+yNvljfVjNsoiN9hMIOmsQVbhgM9
 Aawmo3FDgNxrO2NZ1Giz+LBxd+tAhQ9IWgHbC4CaAIK5dj/vY0+5i7yosZf/L2d1YOsR2ypq
 9yehG1n3uhI05ZXv0mu1Qmf22rEm3TfcuIiCuw7tEqB5xgxWoOqbpfABbPzvacZd9bxorVsU
 RE5dymiAAImUc7leM+lGrxl8FSVCxCtamC0bblHRchJythV0yT/Fb28GRknTKuTDu4KeCXyf
 GjYsh5L6ZlYMROCNPEsPdrsUp93k/e4RLwJs8w4iPIUP/CdkyfdrUlTibO4hTixwCDAb4lmY
 f93jvpA/V5FUP86nVJats8W0KMxxzBW+I8gbcuT8vhT6pLHPCT9Ye5caDOmN7llhIvZ8FS92
 4sObKOilkQAONASlwGKqOb/23hRdiNlbX03wuQKHtO+zv1OQzp9VKOImOtJlk4Mt/09q9okN
 0qVAidwoGcTT1WeQelTQnw8Or7pQ7hlqnc3YX4lMVqygiBxaoez9qYPMZAweOB/puBkyPd1S
 dgDetmBXasTGmiWpWxFYMmvtpFmeTSqmRmKY3ivbg8gcsMyXAfO4NLlIFfirXFcEiqtuMIii
 LS8zQeHE4EbTgFvAZ+OOvKixl+8p1YHn+d2UxeaK9VfYhy0ooNrNzbwnrk8JMRVcUfPwT6T1
 gC3BxYEpLaS/99poYeR3a3d9tWnCepzGEZeDlL317fuOHmI5HenzK9BTP2MIWLXWlTr9fjwf
 u5S1fz9bqEKxQ4Yr4pmHr935qsi/N+z9aRCxwFpEXiXPVSmDrRsfiuP0cVV7/Afw7ZYvU29W
 16V+8kcMrKMYZu3HFkULQsjT+KCyfBLxWWCsaVreB33tH1t4b6KcUROJB3d2iVSIYx8PJ4h3
 ep86tUd7Bayi0ZyP9uL5syOG79g8pDUv30bi6wn
IronPort-HdrOrdr: A9a23:2rJlBq7J+Juc7Vs5RQPXwMrXdLJyesId70hD6qhwISY6TiX4rb
 HWoB1173/JYVoqNE3I3OrwXZVoIkmsk6Kdg7NhXotKNTOO0ADDQb2Kr7GSpwEIcxeOkdK1vp
 0AT0ERMrLN5CBB/KTH3DU=
X-IronPort-AV: E=Sophos;i="5.87,211,1631592000"; 
   d="scan'208";a="57163417"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Daniel Smith <dpsmith@apertussolutions.com>
Subject: [PATCH 5/5] xen/xsm: Address hypercall ABI problems
Date: Fri, 5 Nov 2021 13:55:55 +0000
Message-ID: <20211105135555.24261-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211105135555.24261-1-andrew.cooper3@citrix.com>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain

Currently, __HYPERVISOR_xsm_op enters xsm_ops.do_{xsm,compat}_op() which means
that if any other XSM module registers a handler, we'll break the hypercall
ABI totally by having the behaviour depend on the selected XSM module.

There are 2 options:
 1) Rename __HYPERVISOR_xsm_op to __HYPERVISOR_flask_op.  If another XSM
    module wants hypercalls, they'll have to introduce a new top-level
    hypercall.
 2) Make the current flask_op() be common, and require new hypercalls to fit
    compatibly with xen_flask_op_t.  This can be done fairly easily by
    subdividing the .cmd space.

In this patch, we implement option 2.

Move the stub {do,compat}_xsm_op() implementation into a new xsm_op.c so we
can more easily do multi-inclusion compat magic.  Also add a new private.h,
because flask/hook.c's local declaration of {do,compat}_flask_op() wasn't
remotely safe.

The top level now dispatches into {do,compat}_flask_op() based on op.cmd, and
handles the primary copy in/out.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
CC: Daniel Smith <dpsmith@apertussolutions.com>

Only lightly tested.  Slightly RFC.  There are several things which aren't
great, but probably want addressing in due course.

 1) The public headers probably want to lose the flask name (in a compatible
    way), now that the hypercall is common.  This probably wants to be
    combined with no longer taking a void handle.
 2) {do,compat}_xsm_op() are currently identical other than the dispatched-to
    functions because the size of xsm_flask_op_t is invariant with
    COMPAT-ness.  We could simplfy things by only having one, and dispatching
    to {do,compat}_*_op() directly, but I'm not sure whether the complexity is
    worth it.
 3) Bloat-o-meter says these changes add 16 extra bytes to dm_op() and I can't
    figure out what could possibly be causing this.
---
 xen/include/Makefile     |  2 +-
 xen/include/xsm/dummy.h  | 12 ----------
 xen/include/xsm/xsm.h    | 17 --------------
 xen/xsm/Makefile         |  1 +
 xen/xsm/dummy.c          |  5 ----
 xen/xsm/flask/flask_op.c | 60 ++++++++++++++++++++++--------------------------
 xen/xsm/flask/hooks.c    |  8 -------
 xen/xsm/private.h        | 16 +++++++++++++
 xen/xsm/xsm_core.c       | 12 ----------
 xen/xsm/xsm_op.c         | 51 ++++++++++++++++++++++++++++++++++++++++
 10 files changed, 96 insertions(+), 88 deletions(-)
 create mode 100644 xen/xsm/private.h
 create mode 100644 xen/xsm/xsm_op.c

diff --git a/xen/include/Makefile b/xen/include/Makefile
index 95daa8a28975..9547f848635c 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -32,7 +32,7 @@ headers-$(CONFIG_HYPFS)   += compat/hypfs.h
 headers-$(CONFIG_KEXEC)   += compat/kexec.h
 headers-$(CONFIG_TRACEBUFFER) += compat/trace.h
 headers-$(CONFIG_XENOPROF) += compat/xenoprof.h
-headers-$(CONFIG_XSM_FLASK) += compat/xsm/flask_op.h
+headers-$(CONFIG_XSM)      += compat/xsm/flask_op.h
 
 cppflags-y                := -include public/xen-compat.h -DXEN_GENERATING_COMPAT_HEADERS
 cppflags-$(CONFIG_X86)    += -m32
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index b024119896e6..5448e9970bc1 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -466,18 +466,6 @@ static XSM_INLINE int xsm_hypfs_op(XSM_DEFAULT_VOID)
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
-{
-    return -ENOSYS;
-}
-
-#ifdef CONFIG_COMPAT
-static XSM_INLINE int xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) op)
-{
-    return -ENOSYS;
-}
-#endif
-
 static XSM_INLINE char *xsm_show_irq_sid(int irq)
 {
     return NULL;
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 5aa4dd588d17..4856b589dd86 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -141,11 +141,6 @@ struct xsm_ops {
     int (*page_offline)(uint32_t cmd);
     int (*hypfs_op)(void);
 
-    long (*do_xsm_op)(XEN_GUEST_HANDLE_PARAM(void) op);
-#ifdef CONFIG_COMPAT
-    int (*do_compat_op)(XEN_GUEST_HANDLE_PARAM(void) op);
-#endif
-
     int (*hvm_param)(struct domain *d, unsigned long op);
     int (*hvm_param_altp2mhvm)(struct domain *d);
     int (*hvm_altp2mhvm_op)(struct domain *d, uint64_t mode, uint32_t op);
@@ -585,18 +580,6 @@ static inline int xsm_hypfs_op(xsm_default_t def)
     return alternative_call(xsm_ops.hypfs_op);
 }
 
-static inline long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
-{
-    return alternative_call(xsm_ops.do_xsm_op, op);
-}
-
-#ifdef CONFIG_COMPAT
-static inline int xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) op)
-{
-    return alternative_call(xsm_ops.do_compat_op, op);
-}
-#endif
-
 static inline int xsm_hvm_param(
     xsm_default_t def, struct domain *d, unsigned long op)
 {
diff --git a/xen/xsm/Makefile b/xen/xsm/Makefile
index cf0a728f1c96..93ba20256f6e 100644
--- a/xen/xsm/Makefile
+++ b/xen/xsm/Makefile
@@ -1,4 +1,5 @@
 obj-y += xsm_core.o
+obj-y += xsm_op.o
 obj-$(CONFIG_XSM) += xsm_policy.o
 obj-$(CONFIG_XSM) += dummy.o
 obj-$(CONFIG_XSM_SILO) += silo.o
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index c111fa05968d..4fb7b0d04f7b 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -99,11 +99,6 @@ static const struct xsm_ops __initconstrel dummy_ops = {
     .hvm_param_altp2mhvm           = xsm_hvm_param_altp2mhvm,
     .hvm_altp2mhvm_op              = xsm_hvm_altp2mhvm_op,
 
-    .do_xsm_op                     = xsm_do_xsm_op,
-#ifdef CONFIG_COMPAT
-    .do_compat_op                  = xsm_do_compat_op,
-#endif
-
     .add_to_physmap                = xsm_add_to_physmap,
     .remove_from_physmap           = xsm_remove_from_physmap,
     .map_gmfn_foreign              = xsm_map_gmfn_foreign,
diff --git a/xen/xsm/flask/flask_op.c b/xen/xsm/flask/flask_op.c
index 221ff00fd3cc..e25664711019 100644
--- a/xen/xsm/flask/flask_op.c
+++ b/xen/xsm/flask/flask_op.c
@@ -22,6 +22,8 @@
 #include <objsec.h>
 #include <conditional.h>
 
+#include "../private.h"
+
 #define ret_t long
 #define _copy_to_guest copy_to_guest
 #define _copy_from_guest copy_from_guest
@@ -607,21 +609,17 @@ static int flask_relabel_domain(struct xen_flask_relabel *arg)
 
 #endif /* !COMPAT */
 
-ret_t do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op)
+ret_t do_flask_op(xen_flask_op_t *op, bool *copyback)
 {
-    xen_flask_op_t op;
     int rv;
 
-    if ( copy_from_guest(&op, u_flask_op, 1) )
-        return -EFAULT;
-
-    if ( op.interface_version != XEN_FLASK_INTERFACE_VERSION )
+    if ( op->interface_version != XEN_FLASK_INTERFACE_VERSION )
         return -ENOSYS;
 
-    switch ( op.cmd )
+    switch ( op->cmd )
     {
     case FLASK_LOAD:
-        rv = flask_security_load(&op.u.load);
+        rv = flask_security_load(&op->u.load);
         break;
 
     case FLASK_GETENFORCE:
@@ -629,27 +627,27 @@ ret_t do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op)
         break;
 
     case FLASK_SETENFORCE:
-        rv = flask_security_setenforce(&op.u.enforce);
+        rv = flask_security_setenforce(&op->u.enforce);
         break;
 
     case FLASK_CONTEXT_TO_SID:
-        rv = flask_security_context(&op.u.sid_context);
+        rv = flask_security_context(&op->u.sid_context);
         break;
 
     case FLASK_SID_TO_CONTEXT:
-        rv = flask_security_sid(&op.u.sid_context);
+        rv = flask_security_sid(&op->u.sid_context);
         break;
 
     case FLASK_ACCESS:
-        rv = flask_security_access(&op.u.access);
+        rv = flask_security_access(&op->u.access);
         break;
 
     case FLASK_CREATE:
-        rv = flask_security_create(&op.u.transition);
+        rv = flask_security_create(&op->u.transition);
         break;
 
     case FLASK_RELABEL:
-        rv = flask_security_relabel(&op.u.transition);
+        rv = flask_security_relabel(&op->u.transition);
         break;
 
     case FLASK_POLICYVERS:
@@ -657,11 +655,11 @@ ret_t do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op)
         break;
 
     case FLASK_GETBOOL:
-        rv = flask_security_get_bool(&op.u.boolean);
+        rv = flask_security_get_bool(&op->u.boolean);
         break;
 
     case FLASK_SETBOOL:
-        rv = flask_security_set_bool(&op.u.boolean);
+        rv = flask_security_set_bool(&op->u.boolean);
         break;
 
     case FLASK_COMMITBOOLS:
@@ -677,41 +675,41 @@ ret_t do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op)
         break;
 
     case FLASK_SETAVC_THRESHOLD:
-        rv = flask_security_setavc_threshold(&op.u.setavc_threshold);
+        rv = flask_security_setavc_threshold(&op->u.setavc_threshold);
         break;
 
     case FLASK_AVC_HASHSTATS:
-        rv = avc_get_hash_stats(&op.u.hash_stats);
+        rv = avc_get_hash_stats(&op->u.hash_stats);
         break;
 
 #ifdef CONFIG_XSM_FLASK_AVC_STATS
     case FLASK_AVC_CACHESTATS:
-        rv = flask_security_avc_cachestats(&op.u.cache_stats);
+        rv = flask_security_avc_cachestats(&op->u.cache_stats);
         break;
 #endif
 
     case FLASK_MEMBER:
-        rv = flask_security_member(&op.u.transition);
+        rv = flask_security_member(&op->u.transition);
         break;
 
     case FLASK_ADD_OCONTEXT:
-        rv = flask_ocontext_add(&op.u.ocontext);
+        rv = flask_ocontext_add(&op->u.ocontext);
         break;
 
     case FLASK_DEL_OCONTEXT:
-        rv = flask_ocontext_del(&op.u.ocontext);
+        rv = flask_ocontext_del(&op->u.ocontext);
         break;
 
     case FLASK_GET_PEER_SID:
-        rv = flask_get_peer_sid(&op.u.peersid);
+        rv = flask_get_peer_sid(&op->u.peersid);
         break;
 
     case FLASK_RELABEL_DOMAIN:
-        rv = flask_relabel_domain(&op.u.relabel);
+        rv = flask_relabel_domain(&op->u.relabel);
         break;
 
     case FLASK_DEVICETREE_LABEL:
-        rv = flask_devicetree_label(&op.u.devicetree_label);
+        rv = flask_devicetree_label(&op->u.devicetree_label);
         break;
 
     default:
@@ -719,16 +717,12 @@ ret_t do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op)
     }
 
     if ( rv < 0 )
-        goto out;
+        return rv;
 
-    if ( (FLASK_COPY_OUT&(1UL<<op.cmd)) )
-    {
-        if ( copy_to_guest(u_flask_op, &op, 1) )
-            rv = -EFAULT;
-    }
+    if ( (1ul << op->cmd) & FLASK_COPY_OUT )
+        *copyback = true;
 
- out:
-    return rv;
+    return 0;
 }
 
 #if defined(CONFIG_COMPAT) && !defined(COMPAT)
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 3b29f7fde372..8f4fc7458b8f 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1742,9 +1742,6 @@ static int flask_argo_send(const struct domain *d, const struct domain *t)
 
 #endif
 
-long do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op);
-int compat_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op);
-
 static const struct xsm_ops __initconstrel flask_ops = {
     .security_domaininfo = flask_security_domaininfo,
     .domain_create = flask_domain_create,
@@ -1819,7 +1816,6 @@ static const struct xsm_ops __initconstrel flask_ops = {
     .hvm_param_altp2mhvm = flask_hvm_param_altp2mhvm,
     .hvm_altp2mhvm_op = flask_hvm_altp2mhvm_op,
 
-    .do_xsm_op = do_flask_op,
     .get_vnumainfo = flask_get_vnumainfo,
 
     .vm_event_control = flask_vm_event_control,
@@ -1836,10 +1832,6 @@ static const struct xsm_ops __initconstrel flask_ops = {
     .mem_sharing = flask_mem_sharing,
 #endif
 
-#ifdef CONFIG_COMPAT
-    .do_compat_op = compat_flask_op,
-#endif
-
     .add_to_physmap = flask_add_to_physmap,
     .remove_from_physmap = flask_remove_from_physmap,
     .map_gmfn_foreign = flask_map_gmfn_foreign,
diff --git a/xen/xsm/private.h b/xen/xsm/private.h
new file mode 100644
index 000000000000..19ade2eed6b7
--- /dev/null
+++ b/xen/xsm/private.h
@@ -0,0 +1,16 @@
+#ifndef XSM_PRIVATE_H
+#define XSM_PRIVATE_H
+
+#include <public/xsm/flask_op.h>
+
+long do_flask_op(xen_flask_op_t *op, bool *copyback);
+
+#ifdef CONFIG_COMPAT
+
+#include <compat/xsm/flask_op.h>
+
+int compat_flask_op(compat_flask_op_t *op, bool *copyback);
+
+#endif /* CONFIG_COMPAT */
+
+#endif /* XSM_PRIVATE_H */
diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c
index 21fffbcb41d3..819a6ccd54cc 100644
--- a/xen/xsm/xsm_core.c
+++ b/xen/xsm/xsm_core.c
@@ -218,15 +218,3 @@ bool __init has_xsm_magic(paddr_t start)
 #endif
 
 #endif
-
-long do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
-{
-    return xsm_do_xsm_op(op);
-}
-
-#ifdef CONFIG_COMPAT
-int compat_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
-{
-    return xsm_do_compat_op(op);
-}
-#endif
diff --git a/xen/xsm/xsm_op.c b/xen/xsm/xsm_op.c
new file mode 100644
index 000000000000..5922299fc4dc
--- /dev/null
+++ b/xen/xsm/xsm_op.c
@@ -0,0 +1,51 @@
+#ifndef COMPAT
+
+#include <xen/guest_access.h>
+
+#include "private.h"
+
+#define ret_t long
+#define _copy_to_guest copy_to_guest
+#define _copy_from_guest copy_from_guest
+
+#endif /* COMPAT */
+
+ret_t do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op)
+{
+    xen_flask_op_t op;
+    bool copyback = false;
+    ret_t rc = -ENOSYS;
+
+    if ( copy_from_guest(&op, u_flask_op, 1) )
+        return -EFAULT;
+
+    switch ( op.cmd )
+    {
+    case FLASK_LOAD ... FLASK_DEVICETREE_LABEL:
+        if ( IS_ENABLED(CONFIG_XSM_FLASK) )
+            rc = do_flask_op(&op, &copyback);
+        break;
+    }
+
+    if ( copyback && copy_to_guest(u_flask_op, &op, 1) )
+        rc = -EFAULT;
+
+    return rc;
+}
+
+#if defined(CONFIG_COMPAT) && !defined(COMPAT)
+#define COMPAT
+
+#undef _copy_to_guest
+#define _copy_to_guest copy_to_compat
+#undef _copy_from_guest
+#define _copy_from_guest copy_from_compat
+
+#define xen_flask_op_t compat_flask_op_t
+#undef ret_t
+#define ret_t int
+#define do_flask_op compat_flask_op
+#define do_xsm_op compat_xsm_op
+
+#include "xsm_op.c"
+#endif
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 13:56:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 13:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222347.384511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhe-0006rD-LW; Fri, 05 Nov 2021 13:56:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222347.384511; Fri, 05 Nov 2021 13:56:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhe-0006qr-HM; Fri, 05 Nov 2021 13:56:22 +0000
Received: by outflank-mailman (input) for mailman id 222347;
 Fri, 05 Nov 2021 13:56:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VR3F=PY=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mizhc-00063k-O5
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 13:56:20 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26a6ab5f-3e40-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 14:56:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26a6ab5f-3e40-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636120579;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version;
  bh=fOKvCwOi4OlG1f6O+oqdtMDNMG9VOfKqmOXJmlq8GK4=;
  b=RdNGBYg/Uxn/xUI1kKHMAqLuyCJfc7Kt0aEurCzKn5A13LQLVFwGcJE+
   lcBnpzmTRZRrgIerDipr+ijYhfLHapUPNgYGvwoqG766lM5lTwIIH01SY
   +D/y81nY7m7/+v9FmlMfAWqmJKebtkIuaMqRdjsaCBEmBbv6H8tbGtn6V
   c=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: YSPAK9CXf0pQ/VfHSun52glhaduhRU3vBrd+kO3mgogNToRmkvqd36E6XoanmbaT5Du9cTzWdg
 5fbwYh+mBbBY3cvxs7UBxLNBA5jV/GjTmfyzcRXTTTlnGaYugRxy9bS1TI6cEnAXRUeaqpBoSp
 AKQnW1djsGgDLpL0Fi3LmR0NNGPME4DqXd+regm+0sSaVS5GMsYFFgJ8Z2E+O32RZu/L8bxr4X
 B8/zSLPjQVlcF1GHc5jUzvtsCm3nugZmy9J5SCnutrz2wx8+tYcC704GGjLxJLYO7bH8tl3CJt
 UMmaxbWLKoCNdoBpsmOpMm4o
X-SBRS: 5.1
X-MesageID: 57137740
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:J/hufaK7Sa9f+dImFE+RCZIlxSXFcZb7ZxGr2PjKsXjdYENSgmZWy
 WdLWTqHOaneNDamKosgat+w9E8FsJDdzIdlQAZlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es7xrZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB24pfct4
 tcWuqbodl55O4/LqaM5eSBHRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpv35sRQqqGD
 yYfQQtyLx/RRDxXA1hUUs4Yo9WDnWH+VAQN/Tp5ooJoujOOnWSdyoPFPMLOf92WRe1chkuCu
 n/d5GP9Hw0bM9qEjzGC9xqEiuDDkCzhUaoOBba48bhsm1TVyWsNYDUGWF3+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQnZKflkdCAZwKSbR8sVzTjPqPi+qEOoQaZg97T4AMtpQ5f2QVj
 w+MvdTYQhhFiaLAHBpx6YyohT+1PCEUK0oLaikFURYJ7rHfnW0jsv7cZo09SfDo17UZDRm1m
 mnX93Zm293/mOZSj/3jlW0rlQ5AsXQgouQdwgzMFlyo4QpiDGJOT9z5sAOLhRqswWvwc7Vgg
 JTms5TBhAztJcvU/MBofAnrNOv0jxpiGGeN6WOD57F7q1yQF4eLJOi8Gg1WKkZzKdojcjT0e
 kLVsg45zMYNZyXyMPYsPtzuU5VCIU3c+TLNDK28gj1mOMkZSeN61Hs2OR74M57FyRBEfV4D1
 WezLp/3UCdy5VVPxzuqXeYNuYLHNQhlrV4/savTlkz9uZLHPSb9Ye5cbDOmM7BohIvZ8V692
 4sOaKO3J+B3DbSWjt//qtVIczjn7BETWPjLliCgXrXYflU6QTh5YxITqJt4E7FYc21uvr+g1
 hmAtoVwkzITXFXLdleHbG5NcrTqUcotpH43J3V0b12px2IiccCk66JGL8k7erwu9epCy/9oT
 qZaJ5XcU6oXEjmXqS4AaZTdrZB5cEj5jwy5ICf4MiM0eIRtRlKV94a8LBfv7iQHEgG+qdA6/
 ++7zgreTJdaH1ZiAc/aZeiB1VS0uXRByut+U1GReotYeVn28ZgsICv016dlL8YJIBTF5z2by
 wfJXktI+biT+9c4qYCbi7qFooGlF/pFMnBbR2SLv6yrMST6/3a4xdMSWui/Yj2ABnj//7+vZ
 LsJwqikYuEHhltDr6F1D61vkfAl/9LqqrJXklZkEXHMYwj5A79sOCDbj8xGt6kLzb5FowqmH
 EmI/4ACa7mOPcrkFn8XJRYkMbvfha1FxGGK4KRnOlj+6Q924KGDABdbMBS7gSBAKKd4bdE+y
 uA7tc9KswGyh3LG6DpdYvy4I4hUEkE9bg==
IronPort-HdrOrdr: A9a23:h0mtf64XDzfxV4cfFAPXwMzXdLJyesId70hD6qhwISY1TiX4rb
 HXoB11726WtN98Yh4dcJW7Sc29qBDnhOdICOsqTNWftWDd0QPCRuwP0WKh+UyGJ8SXzJ866U
 4KSchD4bPLY2SS9fyKhTWFLw==
X-IronPort-AV: E=Sophos;i="5.87,211,1631592000"; 
   d="scan'208";a="57137740"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Daniel Smith <dpsmith@apertussolutions.com>
Subject: [PATCH 4/5] xen/xsm: Improve fallback handling in xsm_fixup_ops()
Date: Fri, 5 Nov 2021 13:55:54 +0000
Message-ID: <20211105135555.24261-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211105135555.24261-1-andrew.cooper3@citrix.com>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain

The current xsm_fixup_ops() is just shy of a full page when compiled, and very
fragile to NULL function pointer errors.

Address both of these issues with a minor piece of structure (ab)use.
Introduce dummy_ops, and fixup the provided xsm_ops pointer by treating both
as an array of unsigned longs.

The compiled size improvement speaks for itself:

  $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
  add/remove: 1/0 grow/shrink: 0/1 up/down: 712/-3897 (-3185)
  Function                                     old     new   delta
  dummy_ops                                      -     712    +712
  xsm_fixup_ops                               3987      90   -3897

and there is an additional safety check that will make it obvious during
development if there is an issue with the fallback handling.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
CC: Daniel Smith <dpsmith@apertussolutions.com>
---
 xen/include/xsm/xsm.h |   9 ++
 xen/xsm/dummy.c       | 254 +++++++++++++++++++++++++++-----------------------
 2 files changed, 147 insertions(+), 116 deletions(-)

diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index c5bd4213490a..5aa4dd588d17 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -42,6 +42,15 @@ enum xsm_default {
 };
 typedef enum xsm_default xsm_default_t;
 
+/*
+ * !!! WARNING !!!
+ *
+ * For simplicity, xsm_fixup_ops() expects that this structure is made
+ * exclusively of function pointers to non-init functions.  Think carefully
+ * before deviating from the pattern.
+ *
+ * !!! WARNING !!!
+ */
 struct xsm_ops {
     void (*security_domaininfo)(struct domain *d,
                                 struct xen_domctl_getdomaininfo *info);
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 041f59fdf4ad..c111fa05968d 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -13,145 +13,167 @@
 #define XSM_NO_WRAPPERS
 #include <xsm/dummy.h>
 
-#define set_to_dummy_if_null(ops, function)                            \
-    do {                                                               \
-        if ( !ops->function )                                          \
-            ops->function = xsm_##function;                            \
-    } while (0)
-
-void __init xsm_fixup_ops (struct xsm_ops *ops)
-{
-    set_to_dummy_if_null(ops, security_domaininfo);
-    set_to_dummy_if_null(ops, domain_create);
-    set_to_dummy_if_null(ops, getdomaininfo);
-    set_to_dummy_if_null(ops, domctl_scheduler_op);
-    set_to_dummy_if_null(ops, sysctl_scheduler_op);
-    set_to_dummy_if_null(ops, set_target);
-    set_to_dummy_if_null(ops, domctl);
-    set_to_dummy_if_null(ops, sysctl);
-    set_to_dummy_if_null(ops, readconsole);
-
-    set_to_dummy_if_null(ops, evtchn_unbound);
-    set_to_dummy_if_null(ops, evtchn_interdomain);
-    set_to_dummy_if_null(ops, evtchn_close_post);
-    set_to_dummy_if_null(ops, evtchn_send);
-    set_to_dummy_if_null(ops, evtchn_status);
-    set_to_dummy_if_null(ops, evtchn_reset);
-
-    set_to_dummy_if_null(ops, grant_mapref);
-    set_to_dummy_if_null(ops, grant_unmapref);
-    set_to_dummy_if_null(ops, grant_setup);
-    set_to_dummy_if_null(ops, grant_transfer);
-    set_to_dummy_if_null(ops, grant_copy);
-    set_to_dummy_if_null(ops, grant_query_size);
-
-    set_to_dummy_if_null(ops, alloc_security_domain);
-    set_to_dummy_if_null(ops, free_security_domain);
-    set_to_dummy_if_null(ops, alloc_security_evtchns);
-    set_to_dummy_if_null(ops, free_security_evtchns);
-    set_to_dummy_if_null(ops, show_security_evtchn);
-    set_to_dummy_if_null(ops, init_hardware_domain);
-
-    set_to_dummy_if_null(ops, get_pod_target);
-    set_to_dummy_if_null(ops, set_pod_target);
-
-    set_to_dummy_if_null(ops, memory_exchange);
-    set_to_dummy_if_null(ops, memory_adjust_reservation);
-    set_to_dummy_if_null(ops, memory_stat_reservation);
-    set_to_dummy_if_null(ops, memory_pin_page);
-    set_to_dummy_if_null(ops, claim_pages);
-
-    set_to_dummy_if_null(ops, console_io);
-
-    set_to_dummy_if_null(ops, profile);
-
-    set_to_dummy_if_null(ops, kexec);
-    set_to_dummy_if_null(ops, schedop_shutdown);
-
-    set_to_dummy_if_null(ops, show_irq_sid);
-    set_to_dummy_if_null(ops, map_domain_pirq);
-    set_to_dummy_if_null(ops, map_domain_irq);
-    set_to_dummy_if_null(ops, unmap_domain_pirq);
-    set_to_dummy_if_null(ops, unmap_domain_irq);
-    set_to_dummy_if_null(ops, bind_pt_irq);
-    set_to_dummy_if_null(ops, unbind_pt_irq);
-    set_to_dummy_if_null(ops, irq_permission);
-    set_to_dummy_if_null(ops, iomem_permission);
-    set_to_dummy_if_null(ops, iomem_mapping);
-    set_to_dummy_if_null(ops, pci_config_permission);
-    set_to_dummy_if_null(ops, get_vnumainfo);
+static const struct xsm_ops __initconstrel dummy_ops = {
+    .security_domaininfo           = xsm_security_domaininfo,
+    .domain_create                 = xsm_domain_create,
+    .getdomaininfo                 = xsm_getdomaininfo,
+    .domctl_scheduler_op           = xsm_domctl_scheduler_op,
+    .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
+    .set_target                    = xsm_set_target,
+    .domctl                        = xsm_domctl,
+    .sysctl                        = xsm_sysctl,
+    .readconsole                   = xsm_readconsole,
+
+    .evtchn_unbound                = xsm_evtchn_unbound,
+    .evtchn_interdomain            = xsm_evtchn_interdomain,
+    .evtchn_close_post             = xsm_evtchn_close_post,
+    .evtchn_send                   = xsm_evtchn_send,
+    .evtchn_status                 = xsm_evtchn_status,
+    .evtchn_reset                  = xsm_evtchn_reset,
+
+    .grant_mapref                  = xsm_grant_mapref,
+    .grant_unmapref                = xsm_grant_unmapref,
+    .grant_setup                   = xsm_grant_setup,
+    .grant_transfer                = xsm_grant_transfer,
+    .grant_copy                    = xsm_grant_copy,
+    .grant_query_size              = xsm_grant_query_size,
+
+    .alloc_security_domain         = xsm_alloc_security_domain,
+    .free_security_domain          = xsm_free_security_domain,
+    .alloc_security_evtchns        = xsm_alloc_security_evtchns,
+    .free_security_evtchns         = xsm_free_security_evtchns,
+    .show_security_evtchn          = xsm_show_security_evtchn,
+    .init_hardware_domain          = xsm_init_hardware_domain,
+
+    .get_pod_target                = xsm_get_pod_target,
+    .set_pod_target                = xsm_set_pod_target,
+
+    .memory_exchange               = xsm_memory_exchange,
+    .memory_adjust_reservation     = xsm_memory_adjust_reservation,
+    .memory_stat_reservation       = xsm_memory_stat_reservation,
+    .memory_pin_page               = xsm_memory_pin_page,
+    .claim_pages                   = xsm_claim_pages,
+
+    .console_io                    = xsm_console_io,
+
+    .profile                       = xsm_profile,
+
+    .kexec                         = xsm_kexec,
+    .schedop_shutdown              = xsm_schedop_shutdown,
+
+    .show_irq_sid                  = xsm_show_irq_sid,
+    .map_domain_pirq               = xsm_map_domain_pirq,
+    .map_domain_irq                = xsm_map_domain_irq,
+    .unmap_domain_pirq             = xsm_unmap_domain_pirq,
+    .unmap_domain_irq              = xsm_unmap_domain_irq,
+    .bind_pt_irq                   = xsm_bind_pt_irq,
+    .unbind_pt_irq                 = xsm_unbind_pt_irq,
+    .irq_permission                = xsm_irq_permission,
+    .iomem_permission              = xsm_iomem_permission,
+    .iomem_mapping                 = xsm_iomem_mapping,
+    .pci_config_permission         = xsm_pci_config_permission,
+    .get_vnumainfo                 = xsm_get_vnumainfo,
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
-    set_to_dummy_if_null(ops, get_device_group);
-    set_to_dummy_if_null(ops, assign_device);
-    set_to_dummy_if_null(ops, deassign_device);
+    .get_device_group              = xsm_get_device_group,
+    .assign_device                 = xsm_assign_device,
+    .deassign_device               = xsm_deassign_device,
 #endif
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE)
-    set_to_dummy_if_null(ops, assign_dtdevice);
-    set_to_dummy_if_null(ops, deassign_dtdevice);
+    .assign_dtdevice               = xsm_assign_dtdevice,
+    .deassign_dtdevice             = xsm_deassign_dtdevice,
 #endif
 
-    set_to_dummy_if_null(ops, resource_plug_core);
-    set_to_dummy_if_null(ops, resource_unplug_core);
-    set_to_dummy_if_null(ops, resource_plug_pci);
-    set_to_dummy_if_null(ops, resource_unplug_pci);
-    set_to_dummy_if_null(ops, resource_setup_pci);
-    set_to_dummy_if_null(ops, resource_setup_gsi);
-    set_to_dummy_if_null(ops, resource_setup_misc);
-
-    set_to_dummy_if_null(ops, page_offline);
-    set_to_dummy_if_null(ops, hypfs_op);
-    set_to_dummy_if_null(ops, hvm_param);
-    set_to_dummy_if_null(ops, hvm_param_altp2mhvm);
-    set_to_dummy_if_null(ops, hvm_altp2mhvm_op);
-
-    set_to_dummy_if_null(ops, do_xsm_op);
+    .resource_plug_core            = xsm_resource_plug_core,
+    .resource_unplug_core          = xsm_resource_unplug_core,
+    .resource_plug_pci             = xsm_resource_plug_pci,
+    .resource_unplug_pci           = xsm_resource_unplug_pci,
+    .resource_setup_pci            = xsm_resource_setup_pci,
+    .resource_setup_gsi            = xsm_resource_setup_gsi,
+    .resource_setup_misc           = xsm_resource_setup_misc,
+
+    .page_offline                  = xsm_page_offline,
+    .hypfs_op                      = xsm_hypfs_op,
+    .hvm_param                     = xsm_hvm_param,
+    .hvm_param_altp2mhvm           = xsm_hvm_param_altp2mhvm,
+    .hvm_altp2mhvm_op              = xsm_hvm_altp2mhvm_op,
+
+    .do_xsm_op                     = xsm_do_xsm_op,
 #ifdef CONFIG_COMPAT
-    set_to_dummy_if_null(ops, do_compat_op);
+    .do_compat_op                  = xsm_do_compat_op,
 #endif
 
-    set_to_dummy_if_null(ops, add_to_physmap);
-    set_to_dummy_if_null(ops, remove_from_physmap);
-    set_to_dummy_if_null(ops, map_gmfn_foreign);
+    .add_to_physmap                = xsm_add_to_physmap,
+    .remove_from_physmap           = xsm_remove_from_physmap,
+    .map_gmfn_foreign              = xsm_map_gmfn_foreign,
 
-    set_to_dummy_if_null(ops, vm_event_control);
+    .vm_event_control              = xsm_vm_event_control,
 
 #ifdef CONFIG_MEM_ACCESS
-    set_to_dummy_if_null(ops, mem_access);
+    .mem_access                    = xsm_mem_access,
 #endif
 
 #ifdef CONFIG_MEM_PAGING
-    set_to_dummy_if_null(ops, mem_paging);
+    .mem_paging                    = xsm_mem_paging,
 #endif
 
 #ifdef CONFIG_MEM_SHARING
-    set_to_dummy_if_null(ops, mem_sharing);
+    .mem_sharing                   = xsm_mem_sharing,
 #endif
 
-    set_to_dummy_if_null(ops, platform_op);
+    .platform_op                   = xsm_platform_op,
 #ifdef CONFIG_X86
-    set_to_dummy_if_null(ops, do_mca);
-    set_to_dummy_if_null(ops, shadow_control);
-    set_to_dummy_if_null(ops, mem_sharing_op);
-    set_to_dummy_if_null(ops, apic);
-    set_to_dummy_if_null(ops, machine_memory_map);
-    set_to_dummy_if_null(ops, domain_memory_map);
-    set_to_dummy_if_null(ops, mmu_update);
-    set_to_dummy_if_null(ops, mmuext_op);
-    set_to_dummy_if_null(ops, update_va_mapping);
-    set_to_dummy_if_null(ops, priv_mapping);
-    set_to_dummy_if_null(ops, ioport_permission);
-    set_to_dummy_if_null(ops, ioport_mapping);
-    set_to_dummy_if_null(ops, pmu_op);
+    .do_mca                        = xsm_do_mca,
+    .shadow_control                = xsm_shadow_control,
+    .mem_sharing_op                = xsm_mem_sharing_op,
+    .apic                          = xsm_apic,
+    .machine_memory_map            = xsm_machine_memory_map,
+    .domain_memory_map             = xsm_domain_memory_map,
+    .mmu_update                    = xsm_mmu_update,
+    .mmuext_op                     = xsm_mmuext_op,
+    .update_va_mapping             = xsm_update_va_mapping,
+    .priv_mapping                  = xsm_priv_mapping,
+    .ioport_permission             = xsm_ioport_permission,
+    .ioport_mapping                = xsm_ioport_mapping,
+    .pmu_op                        = xsm_pmu_op,
 #endif
-    set_to_dummy_if_null(ops, dm_op);
-    set_to_dummy_if_null(ops, xen_version);
-    set_to_dummy_if_null(ops, domain_resource_map);
+    .dm_op                         = xsm_dm_op,
+    .xen_version                   = xsm_xen_version,
+    .domain_resource_map           = xsm_domain_resource_map,
 #ifdef CONFIG_ARGO
-    set_to_dummy_if_null(ops, argo_enable);
-    set_to_dummy_if_null(ops, argo_register_single_source);
-    set_to_dummy_if_null(ops, argo_register_any_source);
-    set_to_dummy_if_null(ops, argo_send);
+    .argo_enable                   = xsm_argo_enable,
+    .argo_register_single_source   = xsm_argo_register_single_source,
+    .argo_register_any_source      = xsm_argo_register_any_source,
+    .argo_send                     = xsm_argo_send,
 #endif
+};
+
+void __init xsm_fixup_ops(struct xsm_ops *ops)
+{
+    /*
+     * We make some simplifying assumptions about struct xsm_ops; that it is
+     * made exclusively of function pointers to non-init text.
+     *
+     * This allows us to walk over struct xsm_ops as if it were an array of
+     * unsigned longs.
+     */
+    unsigned long *dst = _p(ops);
+    unsigned long *src = _p(&dummy_ops);
+
+    for ( ; dst < (unsigned long *)(ops + 1); src++, dst++ )
+    {
+        /*
+         * If you encounter this BUG(), then you've most likely added a new
+         * XSM hook but failed to provide the default implementation in
+         * dummy_ops.
+         *
+         * If not, then perhaps a function pointer to an init function, or
+         * something which isn't a function pointer at all.
+         */
+        BUG_ON(!is_kernel_text(*src));
+
+        if ( !*dst )
+            *dst = *src;
+    }
 }
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 13:56:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 13:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222346.384500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhd-0006aG-DH; Fri, 05 Nov 2021 13:56:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222346.384500; Fri, 05 Nov 2021 13:56:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhd-0006a3-9y; Fri, 05 Nov 2021 13:56:21 +0000
Received: by outflank-mailman (input) for mailman id 222346;
 Fri, 05 Nov 2021 13:56:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VR3F=PY=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mizhb-00063k-Nl
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 13:56:19 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25162320-3e40-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 14:56:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25162320-3e40-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636120577;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version;
  bh=73dQ75yd67p2Kv9Z6qIaurf9n5YwDjcozGH/T+POHx8=;
  b=edcdlVkGD58YbTJxZvYikkfmYw+N2wqYtgMm3qLD2cAVQ6RZPr383AYO
   qT9oT4jnHp5cCYtpghCSpoSYo6zHfUPfO+PeuKNu2PmS/BOthE8zdl5SY
   ATcfzvxUYyJwXBzYzNgt19ZwYwHql2Fycg0HKtISR7VLJhAK1yW6J9yTh
   o=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: zPkwD9+bTi71w9vwU7TMWjRFRkPZQkquaaBfjLYiOd1zeD6ibayESVTxgxbr1IL4knvEU+6WN+
 YokxvY3P6PcRmPjC/ejcQNBfjff0H+a4oG2CpmGtA/O+BIL64buZTvfFj5qwUTf67plgGT/B2a
 OzN2KqYFD75O6MflfVpTiFWExIK6hHwshRE2NxjcU4e6iJdLtxZv/LylHS7oelo0pZwDSro6qq
 X7Zr0GfgEkquBJzvZKbeKzpKgPK0YOanNPR9IaNQvVEIZ6Lrzo5eOZ8+Ffx2fTRtwaJgnKv1EH
 AF7IY33V3xCEEKOus+CAsJWI
X-SBRS: 5.1
X-MesageID: 57137739
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:pwFVBKLUqLteUOw0FE+RCZIlxSXFcZb7ZxGr2PjKsXjdYENSgj1Vn
 GEcXWHSPPeLYDP0Ktl2Pom19EJV68PXn9Q1TwtlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es7xrZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB24pfct4
 tcWuqbodl55O4/LqaM5eSBHRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpv35sRQq2PD
 yYfQRpmaTuZRSdeA3ZJUosDtcCKxUnvahQN/Tp5ooJoujOOnWSdyoPFPMLOf92WRe1chkuCu
 n/d5GP9Hw0bM9qEjzGC9xqEiuDDkCzhUaoOBba48bhsm1TVyWsNYDUGWF3+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQnZKflkdCAZwKSbR8sVzTjPqPi+qEOoQaZg97T4AMtpQ5f2QVj
 w+MvdTYQhhFiaLAHBpx6YyohT+1PCEUK0oLaikFURYJ7rHfnW0jsv7cZo09SfDo17UZDRm1m
 mnX93Zm293/mOZSj/3jlW0rlQ5AsXQgouQdwgzMFlyo4QpiDGJOT9z5sAOLhRqswWvwc7Vgg
 JTms5TBhAztJcvU/MBofAnrNOv0jxpiGGeN6WOD57F7q1yQF4eLJOi8Gg1WKkZzKdojcjT0e
 kLVsg45zMYNZyXyMPYsPtzuU5VCIU3c+TLNDK28gj1mOMkZSeN61Hs2OR74M57FyRBEfV4D1
 WezLp/3UCdy5VVPxzuqXeYNuYLHNQhlrV4/savTlkz9uZLHPSb9Ye5cbDOmM7BohIvZ8V692
 4sOaKO3J+B3DbSWjt//qtVIczjn7BETWPjLliCgXrXYflU6QTh5YxITqJt4E7FYc21uvr+g1
 hmAtoVwkjITXFXLdleHbG5NcrTqUcotpH43J3V0b12px2IiccCk66JGL8k7erwu9epCy/9oT
 qZaJ5XcU6oXEjmXqS4AaZTdrZB5cEj5jwy5ICf4MiM0eIRtRlKV94a8LBfv7iQHEgG+qdA6/
 ++7zgreTJdaH1ZiAc/aZeiB1VS0uXRByut+U1GReotYeVn28ZgsICv016dlL8YJIBTF5z2by
 wfJXktI+biT+9c4qYCbi7qFooGlF/pFMnBbR2SLv6yrMST6/3a4xdMSWui/Yj2ABnj//7+vZ
 LsJwqikYuEHhltDr6F1D61vkfAl/9LqqrJXklZkEXHMYwj5A79sOCDbj8xGt6kLzb5FowqmH
 EmI/4ACa7mOPcrkFn8XJRYkMbvfha1FxGGK4KRnOlj+6Q924KGDABdbMBS7gSBAKKd4bdE+y
 uA7tc9KswGyh3LG6DpdYvy4I4hUEkE9bg==
IronPort-HdrOrdr: A9a23:WOACbK5NPPlqa/p3fgPXwf2CI+orL9Y04lQ7vn2ZFiY6TiXIra
 +TdaoguSMc0AxhI03Jmbi7Scy9qADnhORICOgqTPmftWzd0ldAQ7sSlLcKrweQeBEWldQtlJ
 uIEZIOcOEYZGIS5a2WgWmF+r0bsb26GdWT9IHjJgBWPGZXgs9bnmVEIzfeNnczaBhNBJI/Gp
 bZzNFAvSCcdXMeadn+LmUZXsDYzue7167OUFojPVoK+QOOhTSn5PrRCB6DxCoTVDtJ3PML7X
 XFqQrk/a+u2svLiCM0llWjqqi+quGRjeerN/b8zPT97Q+c0zpAUb4RH4FqegpF+N1Hpmxay+
 Uk6C1QQvibo0mhAl1d5yGdmzXI4XIW8HnlxkafgXz/5eLEZB9SMbsduatpNiLD7Uwupdd917
 8O+Vm4md54MTPs9R6NveQhcXlR5xWJSL4Z4LIuZjVkIPUjQa4UoooF8ExPFpAcWCr89YA8Ce
 FrSNrR/fBMbDqhHj3kl3gqwselUWkzEheAUQwFptGf1SRQkRlCvjwlLWMk7wI9Hb8GOtJ5Dt
 7/Q+5VfXB1P7srRLM4AP1ETdq8C2TLTx6JOGWOIU7/HKVCP37WsZb47Lg8+envIfUzvdQPsY
 WEVEkduX85ekroB8HL1JpX8grVSGH4WTj20MlR65Vwp7W5Trv2Ni+ITkwojqKb0rkiK9yeX+
 z2NINdAvflI2erEYFV3xfmU50XMnUaWN19gKdyZ3ue5sbQboH6vO3Sd/jeYLDkFDoiV2vlRm
 EORzj+PoFB6Vq3UnjzjFzQVhrWCzzCFbkZKtmqwwHS8vlFCmRhiHlntb2J3LD8FdQZiN1IQK
 JXGsKUrp+G
X-IronPort-AV: E=Sophos;i="5.87,211,1631592000"; 
   d="scan'208";a="57137739"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Daniel Smith <dpsmith@apertussolutions.com>
Subject: [PATCH 3/5] xen/xsm: Drop xsm_hvm_control() hook
Date: Fri, 5 Nov 2021 13:55:53 +0000
Message-ID: <20211105135555.24261-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211105135555.24261-1-andrew.cooper3@citrix.com>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain

The final caller was dropped by c/s 58cbc034dc62 "dm_op: convert
HVMOP_inject_trap and HVMOP_inject_msi"

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
CC: Daniel Smith <dpsmith@apertussolutions.com>
---
 xen/include/xsm/dummy.h | 7 -------
 xen/include/xsm/xsm.h   | 7 -------
 xen/xsm/dummy.c         | 1 -
 xen/xsm/flask/hooks.c   | 1 -
 4 files changed, 16 deletions(-)

diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 3b1b378b5899..b024119896e6 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -580,13 +580,6 @@ static XSM_INLINE int xsm_hvm_param(
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_hvm_control(
-    XSM_DEFAULT_ARG struct domain *d, unsigned long op)
-{
-    XSM_ASSERT_ACTION(XSM_DM_PRIV);
-    return xsm_default_action(action, current->domain, d);
-}
-
 static XSM_INLINE int xsm_hvm_param_altp2mhvm(XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 82458066f625..c5bd4213490a 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -138,7 +138,6 @@ struct xsm_ops {
 #endif
 
     int (*hvm_param)(struct domain *d, unsigned long op);
-    int (*hvm_control)(struct domain *d, unsigned long op);
     int (*hvm_param_altp2mhvm)(struct domain *d);
     int (*hvm_altp2mhvm_op)(struct domain *d, uint64_t mode, uint32_t op);
     int (*get_vnumainfo)(struct domain *d);
@@ -595,12 +594,6 @@ static inline int xsm_hvm_param(
     return alternative_call(xsm_ops.hvm_param, d, op);
 }
 
-static inline int xsm_hvm_control(
-    xsm_default_t def, struct domain *d, unsigned long op)
-{
-    return alternative_call(xsm_ops.hvm_control, d, op);
-}
-
 static inline int xsm_hvm_param_altp2mhvm(xsm_default_t def, struct domain *d)
 {
     return alternative_call(xsm_ops.hvm_param_altp2mhvm, d);
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index d8c935328e67..041f59fdf4ad 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -103,7 +103,6 @@ void __init xsm_fixup_ops (struct xsm_ops *ops)
     set_to_dummy_if_null(ops, page_offline);
     set_to_dummy_if_null(ops, hypfs_op);
     set_to_dummy_if_null(ops, hvm_param);
-    set_to_dummy_if_null(ops, hvm_control);
     set_to_dummy_if_null(ops, hvm_param_altp2mhvm);
     set_to_dummy_if_null(ops, hvm_altp2mhvm_op);
 
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index ea9a12bd7121..3b29f7fde372 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1816,7 +1816,6 @@ static const struct xsm_ops __initconstrel flask_ops = {
     .page_offline = flask_page_offline,
     .hypfs_op = flask_hypfs_op,
     .hvm_param = flask_hvm_param,
-    .hvm_control = flask_hvm_param,
     .hvm_param_altp2mhvm = flask_hvm_param_altp2mhvm,
     .hvm_altp2mhvm_op = flask_hvm_altp2mhvm_op,
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 13:56:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 13:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222344.384478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizha-00063z-Tr; Fri, 05 Nov 2021 13:56:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222344.384478; Fri, 05 Nov 2021 13:56:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizha-00063r-Ql; Fri, 05 Nov 2021 13:56:18 +0000
Received: by outflank-mailman (input) for mailman id 222344;
 Fri, 05 Nov 2021 13:56:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VR3F=PY=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mizhZ-00063k-Vo
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 13:56:17 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23e943a8-3e40-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 14:56:16 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23e943a8-3e40-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636120575;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version;
  bh=Z0Fb+9kkOYecGzb6U/s5TW2X9lK58LRjbXJhRNnGzwg=;
  b=IIu/Z/aWUxq4+caaASqLOp2M3uIioZPZpiAG2LagRmDO35WnDZh//FrG
   1fd6msg/SU7EyyMybtic3H3NHMFc8ruT0zQwY/RXcqHlNKlp7z1Z3vUGY
   7UP0v1g2vR9Gc6xDz+gGIxyfbNji/OCm8hvi3CFUc384hV1THXvkJMdv3
   E=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: MLiHBsRH6c7KuqnbWbxgoNIzmyHYLZOhG4NGjVXV2hz8jG3ktzg4koUXly4UCZSo+2WSOukyxo
 /ajic0xUicILEFZ1eV399eRn0Varr8pJyd8UGofV2cA+Ybo+DraGF3zkSVC8Rg2CKAn3wwZzuI
 ck2MgSnEUkawRP86RW23630j7MbWKAPIxNBD+JZiAnUASZY2sMF0/9USvA7YrHkxWWBxXand1E
 IFYGxp89vHjXpvSfnbSa+ULPcCJa+Dq15pUAgZsRwvtXYd7qvgJ0ldwCYcfv0phxEdeYfa2Ymz
 tTGV+9JbF8GAFCPig977luWC
X-SBRS: 5.1
X-MesageID: 56699459
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:watG/qIZ4Q/hkhg8FE+RCZIlxSXFcZb7ZxGr2PjKsXjdYENS0GcGm
 2MbWGuOPa2PYWL2LdgkYI+x9htS7cDUy4NgQQVlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es7xrZi6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2An9Fq8
 etkraCCSDgxNb3WwuE4bjxXRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpu2JEfQauPD
 yYfQTtRYj79UjQSAFsON7c4jqSwmEigIjIN/Tp5ooJoujOOnWSdyoPFPMLOf92WRe1chkuCu
 n/d5GP9Hw0bM9qEjzGC9xqEiuDDkCzhUaoOBba48bhsm1TVyWsNYDUGWF3+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQnZKflkdCAZwKSbR8sVzTjPqPi+qEOoQaZjdBaccfiuYueQ4r6
 UeCj8mzABlSlbLAHBpx6YyohT+1PCEUK0oLaikFURYJ7rHfnW0jsv7cZo09SfDo17UZDRm1m
 mnX93Zm293/mOZSj/3jlW0rlQ5AsXQgouQdwgzMFlyo4QpiDGJOT9z5sAOLhRqswWvwc7Vgg
 JTms5TBhAztJcvU/MBofAnrNOv0jxpiGGeN6WOD57F7q1yQF4eLJOi8Gg1WKkZzKdojcjT0e
 kLVsg45zMYNZyXyMPYsPtzuU5VCIU3c+TLNDK28gj1mOMkZSeN61Hs2OR74M57FyRBEfV4D1
 WezLp/3UCdy5VVPxzuqXeYNuYLHNQhlrV4/savTlkz9uZLHPSb9Ye5cbDOmM7BohIvZ8V692
 4sOaKO3J+B3DbSWjt//qtVIczjn7BETWPjLliCgXrXYflU6QTh5YxITqJt4E7FYc21uvr+g1
 hmAtoVwkjITXFXLdleHbG5NcrTqUcotpH43J3V0b12px2IiccCk66JGL8k7erwu9epCy/9oT
 qZaJ5XcU6oXEjmXqS4AaZTdrZB5cEj5jwy5ICf4MiM0eIRtRlKV94a8LBfv7iQHEgG+qdA6/
 ++7zgreTJdaH1ZiAc/aZeiB1VS0uXRByut+U1GReotYeVn28ZgsICv016dlL8YJIBTF5z2by
 wfJXktI+biT+9c4qYCbi7qFooGlF/pFMnBbR2SLv6yrMST6/3a4xdMSWui/Yj2ABnj//7+vZ
 LsJwqikYuEHhltDr6F1D61vkfAl/9LqqrJXklZkEXHMYwj5A79sOCDbj8xGt6kLzb5FowqmH
 EmI/4ACa7mOPcrkFn8XJRYkMbvfha1FxGGK4KRnOlj+6Q924KGDABdbMBS7gSBAKKd4bdE+y
 uA7tc9KswGyh3LG6DpdYvy4I4hUEkE9bg==
IronPort-HdrOrdr: A9a23:GtMINK6Ua+lE6zHBAwPXwMrXdLJyesId70hD6qhwISY6TiX4rb
 HWoB1173/JYVoqNE3I3OrwXZVoIkmsk6Kdg7NhXotKNTOO0ADDQb2Kr7GSpwEIcxeOkdK1vp
 0AT0ERMrLN5CBB/KTH3DU=
X-IronPort-AV: E=Sophos;i="5.87,212,1631592000"; 
   d="scan'208";a="56699459"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Daniel Smith <dpsmith@apertussolutions.com>
Subject: [PATCH 2/5] xen/xsm: Complete altcall conversion of xsm interface
Date: Fri, 5 Nov 2021 13:55:52 +0000
Message-ID: <20211105135555.24261-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211105135555.24261-1-andrew.cooper3@citrix.com>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain

With alternative_call() capable of handling compound types, the three
remaining hooks can be optimised at boot time too.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
CC: Daniel Smith <dpsmith@apertussolutions.com>

I'm on the fence as to whether to declare this as fixing "xsm: convert xsm_ops
hook calls to alternative call"
---
 xen/include/xsm/xsm.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 0b360e1a3553..82458066f625 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -579,13 +579,13 @@ static inline int xsm_hypfs_op(xsm_default_t def)
 
 static inline long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
 {
-    return xsm_ops.do_xsm_op(op);
+    return alternative_call(xsm_ops.do_xsm_op, op);
 }
 
 #ifdef CONFIG_COMPAT
 static inline int xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) op)
 {
-    return xsm_ops.do_compat_op(op);
+    return alternative_call(xsm_ops.do_compat_op, op);
 }
 #endif
 
@@ -698,7 +698,7 @@ static inline int xsm_mmuext_op(
 static inline int xsm_update_va_mapping(
     xsm_default_t def, struct domain *d, struct domain *f, l1_pgentry_t pte)
 {
-    return xsm_ops.update_va_mapping(d, f, pte);
+    return alternative_call(xsm_ops.update_va_mapping, d, f, pte);
 }
 
 static inline int xsm_priv_mapping(
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 13:56:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 13:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222345.384489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhc-0006Jt-5q; Fri, 05 Nov 2021 13:56:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222345.384489; Fri, 05 Nov 2021 13:56:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhc-0006Jm-2F; Fri, 05 Nov 2021 13:56:20 +0000
Received: by outflank-mailman (input) for mailman id 222345;
 Fri, 05 Nov 2021 13:56:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VR3F=PY=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mizha-00063k-Nb
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 13:56:18 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 249af9b0-3e40-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 14:56:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 249af9b0-3e40-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636120577;
  h=from:to:cc:subject:date:message-id:mime-version;
  bh=Kmw99jHG9jZ0ybbWkzYmVYV9drXXHgz8umrrykspItg=;
  b=ADcBoKsfJB6TLheLNHIOE3GbjMH02AzO0ahmXxFeF+TJYBzPJV7ElZqO
   pzuL09sajVwnfeXH2uwh2sjmatJBd47BMBa4OCexfSwiKctGaM5hr0kwz
   17RFr29h+uNY6/pXVTVS2ybUtGcJ49/rjBX43n5XyO3m4IYoAI8OJ7di/
   A=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: foJkf00BqU59HBw2PvkXMG7tO9sOgLFTWQ5o6P2DSvHWI3EaUP4QbWCS8zVHC06brEccZC2Ig1
 h/3NLyeBCc9RzY9Q26NW+X8QhGfL7dA89suBhIkJ8xpHp0oG4NZybnx1a2Z39JLGvXxbS69tGm
 yhh5EW6ST6zr4lQQrSYX6w0+c8391KOg2OoXooxj1i0dw/JpUyui/aHQ0yigcPu8JfSTu155I7
 tI/cKgMQTGc2UAvxzLfDlwfr7X7IGyrdpku1b0UmuHMYEBRiqMm/3DR0CZML1fiJRAuA4McOKY
 8AmtWSI6i8QH4SO59XQz/9dD
X-SBRS: 5.1
X-MesageID: 57553079
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:uc1LUa59sRbNW/FYvFFVyQxRtM3AchMFZxGqfqrLsTDasY5as4F+v
 jMeUGvTb/aMazfxc4p1Ponl8xgA7JDczNFnTwFopCtmHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2tMw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z6
 +pSsKG6aB8SZo6Svv4lWEloSnBgMvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTQquDP
 JJGOFKDajzyZj5oako6M6gEgceopj7DLiYIk0m88P9fD2/7k1UqjemF3MDuUtCSXsBUgkawr
 3rL5XjkGQodMMGDyD2D6TSngeqntQHRVZ8WFba43uV3m1DVzWsWYDUGWF3+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQiHKLshMTQdN4D/wx6AbLzLHdpQmeGAA5oiVpMYJ88pVsHHpzi
 wHPz4iB6SFTXKO9ak2C84qejCuJYQtLC3U6bn80FFob7Iy2yG0stS7nQtFmGa+zq9T6HzDs3
 jyHxBQDa6UvYd0jjPviow2e6964jt2QF1NuuF2LNo6wxlohPNbNWmC+1bTMAR+sxq69R0LJg
 nULktP2AAsmXcDUz3zlrAng8diUCxe53N/03QEH83oJrW3FF5ufkWZ4umwWyKBBaJdsRNMRS
 BWP0T69HbcKVJdQUYd5YpiqF+MhxrX6GNLuW5j8N4QVPMAsLVTaon42NCZ8OlwBdmB2zMnT3
 r/BIK6R4YsyU/w7nFJauc9EidfHORzSNUuMHMumnnxLIJKVZWKPSKdtDbd9RrtR0U9wmy2Mq
 4w3H5LTk313CbSiCgGKod97BQ1bdhATWMGpw/G7g8bee2KK7kl6UKSPqV7gEqQ495loehDgp
 SrhBRMBkQKXaL+uAVziV02PoYjHBf5XxU/X9wR3Vbpx83R8M4up8okFcJ47Iesu+OB5lKYmR
 PgZYcSQRP9IT22fqTgaaJD8qq1kdQiq2l3Sb3b0PmBncs4yXRHN9//lYhDrqHsEAB2ouJZsu
 LanzA7aH8YOHlwwEMbMZfuz5FqtpnxByvlqVk7FL4ALKkXh+YRnMQLrifozL51eIBnP3GLCh
 Q2XHQ0Zta/GpIpsqIvFgqWNroGIFepiHxUFQzmHvOjubSSDpzit245NVuqMbAvxbmKs9fXwf
 /hRwtH9LOYDwARAvb1jHus51qk5/dbu+eNXl1w2AHXRYl23Ibp8OX3aj9JXv6hAy7IF6wu7X
 kWDpotTNbmTYZ63FVcQIEwub/iZ1OFSkT7XtKxnLEL/7S5x3byGTUQNYEXc1H0DdON4YNE/3
 OMsmM8K8Aju2BMlP+GPgj1Q62nRfGcLVL8qt81CDYLm4ubxJoquvXAI5vfK3ayy
IronPort-HdrOrdr: A9a23:HvAdW6DWw9adfa3lHem655DYdb4zR+YMi2TC1yhKJyC9E/bo8P
 xG88566faZslossRIb6LS90cu7MBDhHPdOiOF7V9qftWHdyQ6VxepZjLcKrQeOJ8SHzJ8+6Z
 td
X-IronPort-AV: E=Sophos;i="5.87,211,1631592000"; 
   d="scan'208";a="57553079"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Daniel Smith <dpsmith@apertussolutions.com>, "Jan
 Beulich" <JBeulich@suse.com>
Subject: [PATCH 0/5] XSM: cleanups
Date: Fri, 5 Nov 2021 13:55:50 +0000
Message-ID: <20211105135555.24261-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain

Various XSM cleanups from observations based on Daniel's previous cleanup
series.

Andrew Cooper (4):
  xen/xsm: Complete altcall conversion of xsm interface
  xen/xsm: Drop xsm_hvm_control() hook
  xen/xsm: Improve fallback handling in xsm_fixup_ops()
  xen/xsm: Address hypercall ABI problems

Jan Beulich (1):
  x86/altcall: allow compound types to be passed

 xen/include/Makefile              |   2 +-
 xen/include/asm-x86/alternative.h |   4 +-
 xen/include/xsm/dummy.h           |  19 ---
 xen/include/xsm/xsm.h             |  39 ++----
 xen/xsm/Makefile                  |   1 +
 xen/xsm/dummy.c                   | 254 ++++++++++++++++++++------------------
 xen/xsm/flask/flask_op.c          |  60 ++++-----
 xen/xsm/flask/hooks.c             |   9 --
 xen/xsm/private.h                 |  16 +++
 xen/xsm/xsm_core.c                |  12 --
 xen/xsm/xsm_op.c                  |  51 ++++++++
 11 files changed, 245 insertions(+), 222 deletions(-)
 create mode 100644 xen/xsm/private.h
 create mode 100644 xen/xsm/xsm_op.c

-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 13:56:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 13:56:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222349.384533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhg-0007OI-M8; Fri, 05 Nov 2021 13:56:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222349.384533; Fri, 05 Nov 2021 13:56:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizhg-0007MW-Eg; Fri, 05 Nov 2021 13:56:24 +0000
Received: by outflank-mailman (input) for mailman id 222349;
 Fri, 05 Nov 2021 13:56:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VR3F=PY=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mizhe-00063k-OX
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 13:56:22 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26f7d69f-3e40-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 14:56:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26f7d69f-3e40-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636120579;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version;
  bh=mYlYUqOc/+bi2I+rPJTW2ld9A+2pgx6YlF9pI9t4rtU=;
  b=QEGPihKcGmO3QaYlfZa0bUrFCgGsCJD5xuwpLieDrwQSLYOfpFmtKwEX
   cCydJYxZ7UGCequOT0vTDX9+y3/G7rT+oONIiw70XR8MTWTER4sy9nr5K
   I++vhHK0MPaKGVkgttZQxVOorPYMacGKl/5oxCpIZWjSLh+GqPQe93GsI
   o=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: WpEORgIi5z5MvhqWEwCS9Zp0hU5g1XTcOBU9ITD7d83OB4GqbuwzOePR5ICKUrfrJ2crzMz13s
 Pnz3jKDPK+ZNYB6MM96Be41qentQqHx4jUFYMpSeFnqlbzJXKdF1uVRE9/AmpSTHbUSOjNZ1TI
 sUSeqryrFTSCk+eDeGBiyXP266V8mFtRGW2NCeGD+VHoDnQprCwgksveqXIX77/RiP1zQGrx4D
 QgtA16cR0nfVgfwmwVl+0/6f0wIXBWTrf/Y5+6o9PGCMIlKN3u0VOvOKDGgAOUgHQydQk6PT/I
 efaH98y8s11DGjPb61BU5NoN
X-SBRS: 5.1
X-MesageID: 56699466
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LZf3sqBTGQm4gxVW/9zkw5YqxClBgxIJ4kV8jS/XYbTApG4igzYOz
 GVNUDqFO/eDZGX9etgnb4y+8BxXvcTQyNJjQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540U87wIbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/ig/Kz/Fvl
 P90rZGUYw4IO5LIwuceXEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFgmlh15wQQ54yY
 eI4dhNeNA6ZJCREHX05V5MCxL732XnWJmgwRFW9+vNsvjm7IBZK+LT1K9/UZtyiTN1YhFqFv
 XnB+3nlAxYcL5qUzj/t2nCmi/LLnCj7cJkPD7D+/flv6HWDy2pWBBAIWF+TpfiillX4S99ZM
 1YT+Cclse417kPDZtXyUxC3unesog8XW90WFfYzrg6K1MLpDx2xXzZeCGQbMZp/6ZFwFWdCO
 kK1c83BBAYs4JyLFVik7rqwhzqTPBcRd2wBanpRJeca2OXLrIY2hxPJa99sFq+pk9H4cQ3NL
 yC2QDsW3OtK05NSv0mv1RWe2m/3+MCVJuIgzlyPBjrN0+9vWGKyi2VEA3D/5O0IEouWR0LpU
 JMsy5nHt7Bm4X1geUWwrAQx8FOBu6nt3N702wcH83wdG9KFoSPLkWd4umAWGauRGpxYEQIFm
 WeK0e+r2LddPWGxcYh8aJ+rBsIhwMDITIq+CKiJN4ETPMcpJWdrGR2Cg2bKgggBd2B2wMkC1
 WqzK57wXR7294w+lFJauNvxIZd0n3tjlAs/tLjwzgi90Kr2WZJmYextDbd6VchgtPnsiFyMq
 753bpLWoz0CALyWSnSGquY7cAFVRUXX8Lir8qS7gMbYeVE4cIzgYteMqY4cl3tNxP8JybuRp
 ynVt40x4AOXuEAr4D6iMhhLAI4Dl74lxZ7iFSBzb1uuxVY5ZoOjsPUWe5ctJOF1/+1/1/9kC
 fICfpzYUPhITz3G/RUbbIX889M+JEj621rWMnr3eiU7cr5hWxfNpo3ucDzw+XRcFSGwr8Y//
 eGtj1uJXZoZSg1+J8/Kc/bznUiptH0QlbsqDUvFK9VeYmv2941uJ3Cjh/M7OZhUex7C2iGbx
 0CdBhJB/bvBpIo88d/og6GYrtj2T7siTxQCR2SCtOS4LyjX+Gan0LRsaufQcGCPTn7w9YWje
 f5Rk6P2PsoYkQsYqIF7Cbtqk/4zvoO9u79Aww14N3zXdFD3WKh4K3yL0MQT5K1AwrhV5Vm/V
 k6Vo4QIPLyIPIXuEUILJRpjZeOGjKlGlj7X5PUzAUP7+C4oo+bXDRQMZ0GB2H5HMb94EII52
 uNw6scZ5ju2hgcuLtvb3Dtf8H6BLyBYXqgq3n3A7FQHVub/Jol+XKHh
IronPort-HdrOrdr: A9a23:Wnimjqqhx0g8Mt296v/zWUoaV5opeYIsimQD101hICG8cqSj+f
 xG/c5rrCMc5wxwZJhNo7y90ey7MBbhHP1OkO8s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpM
 BdmsNFaeEYY2IUsS+D2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,212,1631592000"; 
   d="scan'208";a="56699466"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>, "Daniel
 Smith" <dpsmith@apertussolutions.com>, Jan Beulich <JBeulich@suse.com>
Subject: [PATCH 1/5] x86/altcall: allow compound types to be passed
Date: Fri, 5 Nov 2021 13:55:51 +0000
Message-ID: <20211105135555.24261-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211105135555.24261-1-andrew.cooper3@citrix.com>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain

From: Jan Beulich <jbeulich@suse.com>

Replace the conditional operator in ALT_CALL_ARG(), which was intended
to limit usable types to scalar ones, by a size check. Some restriction
here is necessary to make sure we don't violate the ABI's calling
conventions, but limiting to scalar types was both too restrictive
(disallowing e.g. guest handles) and too permissive (allowing e.g.
__int128_t).

Note that there was some anomaly with that conditional operator anyway:
Something - I don't recall what - made it impossible to omit the middle
operand.

Code-generation-wise this has the effect of removing certain zero- or
sign-extending in some altcall invocations. This ought to be fine as the
ABI doesn't require sub-sizeof(int) values to be extended, except when
passed through an ellipsis. No functions subject to altcall patching has
a variable number of arguments, though.

Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Unfortunately this triggers [-Werror=sizeof-array-argument] on some versions
of GCC, so alter xsm_{alloc,free}_security_evtchns() to use a pointer rather
than array parameter.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
CC: Daniel Smith <dpsmith@apertussolutions.com>
CC: Jan Beulich <JBeulich@suse.com>
---
 xen/include/asm-x86/alternative.h | 4 ++--
 xen/include/xsm/xsm.h             | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/include/asm-x86/alternative.h b/xen/include/asm-x86/alternative.h
index 8e78cc91c35b..8bc59b02afd7 100644
--- a/xen/include/asm-x86/alternative.h
+++ b/xen/include/asm-x86/alternative.h
@@ -168,8 +168,8 @@ extern void alternative_branches(void);
 #define ALT_CALL_arg6 "r9"
 
 #define ALT_CALL_ARG(arg, n) \
-    register typeof((arg) ? (arg) : 0) a ## n ## _ \
-    asm ( ALT_CALL_arg ## n ) = (arg)
+    register typeof(arg) a ## n ## _ asm ( ALT_CALL_arg ## n ) = \
+        ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })
 #define ALT_CALL_NO_ARG(n) \
     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n )
 
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index c101e653f6d7..0b360e1a3553 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -332,13 +332,13 @@ static inline void xsm_free_security_domain(struct domain *d)
 }
 
 static inline int xsm_alloc_security_evtchns(
-    struct evtchn chn[], unsigned int nr)
+    struct evtchn *chn, unsigned int nr)
 {
     return alternative_call(xsm_ops.alloc_security_evtchns, chn, nr);
 }
 
 static inline void xsm_free_security_evtchns(
-    struct evtchn chn[], unsigned int nr)
+    struct evtchn *chn, unsigned int nr)
 {
     alternative_vcall(xsm_ops.free_security_evtchns, chn, nr);
 }
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 14:00:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 14:00:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222384.384544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizlk-00027f-5y; Fri, 05 Nov 2021 14:00:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222384.384544; Fri, 05 Nov 2021 14:00:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizlk-00027Y-1g; Fri, 05 Nov 2021 14:00:36 +0000
Received: by outflank-mailman (input) for mailman id 222384;
 Fri, 05 Nov 2021 14:00:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mr/O=PY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mizli-00027S-9F
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 14:00:34 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be2316c0-3e40-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 15:00:33 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2054.outbound.protection.outlook.com [104.47.13.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-25--4loScLiM5ufDGzMKc1bsw-1; Fri, 05 Nov 2021 15:00:30 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5904.eurprd04.prod.outlook.com (2603:10a6:803:e6::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 14:00:27 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4649.022; Fri, 5 Nov 2021
 14:00:27 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0320.eurprd06.prod.outlook.com (2603:10a6:20b:45b::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 14:00:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be2316c0-3e40-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636120832;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2kyrwkKQo8PqQ6qsiek9v6gJpL5wetJ+6I5TmhJWjrg=;
	b=V1X/noUZewkEyruCeWx9PPtukb+O/nKfPs0mxrh5H+sHXkg1ccT7XHpqn7uE8ydledNMRa
	ugnpXSQc8hHHNZvwLGOwtirbBwm004YmQulaSbJpILl5Pk/hKtW6Wxp8In/FumwpCuJOCr
	SeX+4kBDaTqmdXgvCdvZpj/uyxX5v3Q=
X-MC-Unique: -4loScLiM5ufDGzMKc1bsw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=R/YAD0wUQh0549UjDoeJQLX8qY9OhArl74gzYI9fDx6edZQhcCYtUs0EqFZuhDugTuY6aigBr16wveEhJEg0Zb+mac5ehBlRlbHXdLwY0TG2g4SVUdca15z1a0HHQ6kJOxRy4hxCQWZjHcAcgGWCXJ96TQE6jyVZnv6irmTpIMSnrW2Wxn/2H0Bd2KRy1b+PDWnBI1sD7jk310MsIIYLy94yNOWPNAC9Jgn+W/duu1z94wFXELBBzEUsqiYF1hxszNYFcJ7pRX2ByvyOyql3ATIc6VLqEf7/PNRK9WbR8aP3prE8t9AinH/R8+uJrK7KHsJG4yfypD4FFpmFM++eZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2kyrwkKQo8PqQ6qsiek9v6gJpL5wetJ+6I5TmhJWjrg=;
 b=el3dk9EsB32vfCb/woTU3WJbHNUjhGHmjaDiqGgnyrq/KB2pxEt8Zbp0YBtI1GOzy8fTHLAD2PdX42Yep+moR5aNVfRT7PZfdpHxsJgWB5qhsqRTi5J7LAnM/EWOL9r/9qQ0iypw+WFCTI46u1uvUvy20gl0/AGmrGzmuyCAnSwXEekVFOXJQHFnuAAbpfd9RxWwxFKbHufYXDUc0Nrdsv7xICJjrdI6oFlFw9gsIVJaOkDQHSCkU8M8whO1vw0AGKTOg1IlF0GlSsnpdHfDgboVPGrIjJIwyES5Jwj1HyHx9V2wwAs8QPDUs5swf7qkyiDjCnffKYRiE4iUll3l+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ddb80a49-3704-8b30-2bd9-180bc58f6f9e@suse.com>
Date: Fri, 5 Nov 2021 15:00:24 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 2/5] xen/xsm: Complete altcall conversion of xsm interface
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-3-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105135555.24261-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0320.eurprd06.prod.outlook.com
 (2603:10a6:20b:45b::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 63bfc805-7340-4f3f-a767-08d9a0649ed5
X-MS-TrafficTypeDiagnostic: VI1PR04MB5904:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB590424F0D3176B5A6BB611BAB38E9@VI1PR04MB5904.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1186;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	euSOQwXgxCrzsqsYC7njl8L9AgcW2TxmQUzLeLq4xuk58HukcBr7QjLEPRmwkXczoiv8W8oiW0DMgwmBs3HDaEUdfCKQ/H7gQ682tS+0coKO6wMUKhr9z0gi1ZXmL00EBm7MnzDHqLskHgG4j6DJSRL5e5latiubpNCpMQp2hrjFFQehyxDqALno6Q9tbyFEL+NP1jmv/Nvm+8ZM14UEX7b8bw+nMmiPiVbx7XZ+DlBuYSeqDoEuPmI9YJtropMMPztS9bKrx9sWDr5YCNR+qUhLSlFtHEUxGkRedzvu0SpyFXrAN8mtBOgH58lbRh996/yVZdVDcCqbW+ZDxJfu9YnwJxGgXYDYiSTpUoVC4ztiJ6ln4TMmJoH7MiGcoO+R97TuZdiBc6vUEy7kZFy4Bn41OVYW3DWYuOYsFO5/GNfl1blQt/ANuRemr0GRLVHigPgo43vVSWJySZWj5yNFQo8Lhudigp9fnommYXWfQUfIPR/iyt6eQrgJohKNH6sWgCPi4pmec+sbRu5xxz8cYE3eWUARJi5NakuWA6VARc/mXrZMMbHQhVy4ZaR4M4Y+SwQuxnKOMaT7dBJ+S/fYgqvTkJkRihGlr54kfvCuKLFb9BdOlYeC/j/FblP23dUyVIDvycmlxbCErwLOLuymlEDCOriUZ3NmkNW3W8oVlV27rauM2lWF6Y/RtwKCvbGc8KBoGo/UD6lhBeRKUTc2sIGzRtr0OuYBxMsOAjGhCVs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(6916009)(36756003)(2616005)(558084003)(2906002)(316002)(16576012)(8936002)(5660300002)(53546011)(54906003)(956004)(38100700002)(66476007)(186003)(8676002)(66946007)(31696002)(26005)(31686004)(66556008)(4326008)(86362001)(508600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NVZhNHVWanJoTmRoaUljZXVSMjdFcnh6K0tqMzVsZ1RubVJYaXl0dmpHcmlM?=
 =?utf-8?B?TEV4SGtYTGZNYzZMVHhTRXhLUkdmRWJSdlJNbEF2SVVnWFpqMWpBWG5HWnp2?=
 =?utf-8?B?U2c2NmgzZWt6bjZBS25INVZVQ0dyOWVtZGl6QU9tbU5zVEZMK0hoTnFPQUhD?=
 =?utf-8?B?Nm9BOHhHZDNSaDRrTmcvLzFObjlwazNVZnAyR25XYzhGYlhWcldLMUNBU04y?=
 =?utf-8?B?enEraXlScGRjTXRpcWtFcVlpdlBLcHNwTGF3bUxNUFRFaFMvUUZ4VHhWOVdB?=
 =?utf-8?B?RjRGcXJWUWJNQVlpRjRYYVNWYWlUcEZManpwZkI3dUFvQ0ZqY2VweDFzUFBI?=
 =?utf-8?B?WkhPYklLNTM2eUMxUU8wTFV2bUZYem83WmRFa3RtQjVtVzNEaVRQNEVQSHg5?=
 =?utf-8?B?c001YmsxOHFHS0Z6d1JleDl5TnlqMXNyeEJlMG1EbDRSMlBJb0JqWkkxRnlF?=
 =?utf-8?B?ZDFYU3cwOW5qUkFydDU4V2xld0U5VmMwRGRoeE1LNyttaGE5cTlLK1VlMXFN?=
 =?utf-8?B?NlBVUWF3bGJweCtSNFBzUkJ4R2YvOHV4SEZtZkJwNWVGMHk0YzhxUVBDYVhO?=
 =?utf-8?B?WXRqa2p1R1pFeUJZMi9GYk9TRE9vRmEvSjNoTjhkNzJrMUNVS3I1YlFxT1Zo?=
 =?utf-8?B?b0hqQ080VHZBa1V3azA4WEMwa1lldE1pZUoyMmVscmlZZTZEdjdSeHZnTDcv?=
 =?utf-8?B?bS92UGZsTkxlYWlVSGJma3pEbjRQU3hya0xOdWMxcnNOVXc4bU15Y1pyWlh5?=
 =?utf-8?B?ZnBRN09BNVEyWVhlS1ROL0pwdWZTeU1jb1lxdGM1MTlvby9SQkxqSVZhWHUr?=
 =?utf-8?B?aEZPbk1KT0ViZGFKT1FSNFNjcnh1UXBVN0tWaURNelhZc1R4STVSc3VqRjll?=
 =?utf-8?B?M1VmQXQrR2Q1azZ4azVXYzFnOElEeFlyZzNuYVp1SnhGazZGb1ovV0dsYzFw?=
 =?utf-8?B?bTUvOU5JL2xDSzZPVk84K0lDU1ZKRmZCSE1ieThRc2hrYVQrMjFJZTliMmtx?=
 =?utf-8?B?Y3hSMG5DcGYwcEJ5RDNldTZ3Sk12bDh4TXRlbW5tZjJLU29wK0s2eFFNRk5X?=
 =?utf-8?B?RDR1ODNiUzJsTlNsbHUwRU9ucWNEN0grcjVuZDJKTkNVenU3U24xQ05GWWtZ?=
 =?utf-8?B?dDQrZnROdmpneTFvMXlMazN4Z0YwSUlTOFprV1BYTnRkK04zQW9ic2M0NzFQ?=
 =?utf-8?B?ODI1MThaRnZzWkNaVUtibFdEN0pCUFpMUWVyT25yVnJVSzRMMmZFbyt3a1VR?=
 =?utf-8?B?bWxDS25EMStrajJvQ1NnNGw0N0dDVG1WdWNmRTBNY0NQVE1pTHdMU1hxdjk3?=
 =?utf-8?B?dmpGbkVWdnJRcWU1ajhRc2luQVRocGhZamk1cjhHakxWeFltWjRyUEJhZTBy?=
 =?utf-8?B?M1RlODI5ZVdEa1Zqb2JQQVNma2tzZTJkOHJ2ZHRhTnBhemJ2STF5azJBYnR1?=
 =?utf-8?B?dUFnVzJMNDB3MXZrZHRBSW1qWGhacnh6UDd3OTRMSENuUXp3K3RCcWlBK1U3?=
 =?utf-8?B?WnF0QXd3ZC9TUzFmMGYzaGhEUFpUSk9pWmxBYTNtdzdGNGJTWjJlT1ovdFA3?=
 =?utf-8?B?OSt2eGswODBhanNRaXRDUEd3TlJkQVYySmszWUkzS0Jvam5Rc1hYUUliUDVs?=
 =?utf-8?B?Ri9LemRVWTRBVXRVZ05iL2wvRHlYU09BakpBdTIvQmFoaWh3UmdUTUM5NmFI?=
 =?utf-8?B?b2hsaXYwWlNEbjdsUWpLL0dqTmtmKzNRSHJUamdnTG9ZM1ArdlR4ZTJHZE5j?=
 =?utf-8?B?SW9BV051YlBnck9OYSttTFFPb0U4YnlXdEVoY3Zja1ZlT2lZMXorUjFWVWVm?=
 =?utf-8?B?TnR5M3hpVDdIcDFZdFhzMnE3OXNqSHJhZXU3ekEwV21ZNVo4c0thc3hId1JL?=
 =?utf-8?B?M0xPY2pubUpwWkR3bTdaRVNtempXNG95QVd1ZTh2Vk1UbDVmdzRvZTc3SW1E?=
 =?utf-8?B?SFlzWWJLNGRDcEluenRiRnlSd0QrWVl2bGdLY3ZxYWZCZ2J5Sk5pUGVmbEVU?=
 =?utf-8?B?UkVoRHdoMVdVMmQ0N3ZJZWh1UkM0MllBRk5xWmQ0WU5Ed2tqME1NcS9SMk1T?=
 =?utf-8?B?blFwVGZ1Mys3L1lCK0t3SmFybmVLQmhFc1lwazZBNEZZMG5LUnFYZkc0VDRR?=
 =?utf-8?B?dW1jMittVTdNQkh4TDM1M3pKZjQzZ2kxR1JyazF0emNOZ09DZ3hSSVhaSjJE?=
 =?utf-8?Q?JZZOF2JqQ412uChTgIudaKQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 63bfc805-7340-4f3f-a767-08d9a0649ed5
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 14:00:27.3110
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0XjyHa2YK7L+4UfZQp2RsC5SvMQJq0WkmlQrxQEN+O+fU3aCAu5fG3V93j+PWZVCPZ0kidp1KxnPI4yX1rSvWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5904

On 05.11.2021 14:55, Andrew Cooper wrote:
> With alternative_call() capable of handling compound types, the three
> remaining hooks can be optimised at boot time too.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 14:08:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 14:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222393.384554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizti-0002sU-3a; Fri, 05 Nov 2021 14:08:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222393.384554; Fri, 05 Nov 2021 14:08:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizti-0002sN-0W; Fri, 05 Nov 2021 14:08:50 +0000
Received: by outflank-mailman (input) for mailman id 222393;
 Fri, 05 Nov 2021 14:08:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MQ27=PY=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mizth-0002sC-7b
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 14:08:49 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on061c.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::61c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e497b692-3e41-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 15:08:48 +0100 (CET)
Received: from DB6PR1001CA0036.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:4:55::22)
 by HE1PR0802MB2364.eurprd08.prod.outlook.com (2603:10a6:3:c7::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 14:08:32 +0000
Received: from DB5EUR03FT043.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:4:55:cafe::9a) by DB6PR1001CA0036.outlook.office365.com
 (2603:10a6:4:55::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 14:08:32 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT043.mail.protection.outlook.com (10.152.20.236) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Fri, 5 Nov 2021 14:08:32 +0000
Received: ("Tessian outbound 7b0bcc4a550a:v108");
 Fri, 05 Nov 2021 14:08:32 +0000
Received: from d822431b56d8.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 1BF1ECA0-CC94-4FF4-A065-1CA1B6B628B3.1; 
 Fri, 05 Nov 2021 14:08:24 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d822431b56d8.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 05 Nov 2021 14:08:24 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM5PR0801MB1956.eurprd08.prod.outlook.com (2603:10a6:203:4b::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Fri, 5 Nov
 2021 14:08:21 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4649.023; Fri, 5 Nov 2021
 14:08:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e497b692-3e41-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mLPrkt6/zQYH8DBVZfGNI6NIF13uejdapsIuDgyczu0=;
 b=cSp4PuTIPymS5Aqlxl6oFJOnTaOkSRtDxwN4FdeHbs3aLDcyhC32QsXG1pP/383P/fKuSoTb3zL6P9I2pGtezhCb4r4WZVgvjK6k8YFf02xa9X/nIhkI8ZXtFo6oDqBuoelzUQscsPbfOyJspsKMB6LxZumnJKa6pYxHRyePaeQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: a61d91ca9011c893
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=D9kHz5xgne7T77xo4S0kEn9jJ902af3P4CFeY24cgKzEkHU6TglYVYdIQs5PZmXRsj6KXDSaZwt1e4eEzHQzJgDewXG2jiWeID/KcFuCZz2Lo26+Tl1tEK9Ik22tBJXIDlF7vUScURsM18RqvZAL9p5u9NOFVNy+QtSa/cerP8YY6cpjbwURzeEbYxzrNamcAxPRP8ep8Y8xQYOq/Qedbi5FQ4AXmkku7ykpGzmgjUkWSha/oCRopYV9hDun13aVTZ09Kwiv9io9nALo+P3Z5AsKOf2VFnsnkMpvQtqq5riRMdG0S4KjPkQxrhLSSNYmxXY7jIA0C5JTHAXa8Sq5YQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mLPrkt6/zQYH8DBVZfGNI6NIF13uejdapsIuDgyczu0=;
 b=WA8MGAoKm3SpSpl6pvcU3vHw8+EV2VjcLkMLDBe8GHyIWcwy7V9lMtnf4lePQQm18O9NxRMdNziRl8tLLtmtu+6Y9sKBd/IlC56LJlgxbWNuIX0w84JYqcxAAs24sbO/uRm3XBrYmxem/kiUNa1ym4tfra4wQE3bn1S6doZpBA2OIJ0B7HlTqcQm4JLtR1L837xDQOgz9F9q1g+SmgIWjbqolfKQzp+94Im0i1QrtwJPMCxQBvyJaU9oIR099dAq9C6Q5ZjN1qP6I27Afo5vw83Ve313ZYwkcdp/AkKfeBkfFK+OZq+E01F2LbJQj0V1sSsE1QXAUhaOwCZB+wcwQw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mLPrkt6/zQYH8DBVZfGNI6NIF13uejdapsIuDgyczu0=;
 b=cSp4PuTIPymS5Aqlxl6oFJOnTaOkSRtDxwN4FdeHbs3aLDcyhC32QsXG1pP/383P/fKuSoTb3zL6P9I2pGtezhCb4r4WZVgvjK6k8YFf02xa9X/nIhkI8ZXtFo6oDqBuoelzUQscsPbfOyJspsKMB6LxZumnJKa6pYxHRyePaeQ=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Wei
 Chen <Wei.Chen@arm.com>, "iwj@xenproject.org" <iwj@xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64
Thread-Topic: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64
Thread-Index: AQHX0kYoSoO8NNoKbUqbCOBW9Z1B86v0+J6A
Date: Fri, 5 Nov 2021 14:08:20 +0000
Message-ID: <445836DF-C831-4478-B4C7-2D98E2258FD2@arm.com>
References: <20211105130728.30648-1-luca.fancellu@arm.com>
In-Reply-To: <20211105130728.30648-1-luca.fancellu@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 55da97e5-4cce-42b9-d004-08d9a065bfec
x-ms-traffictypediagnostic: AM5PR0801MB1956:|HE1PR0802MB2364:
X-Microsoft-Antispam-PRVS:
	<HE1PR0802MB2364B977A9B9AFEDFA95F97A9D8E9@HE1PR0802MB2364.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:153;OLM:153;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 cTo3ozCFRdTM7j2k1wZyvZ805h6K0PAFhMj/fiOXjy9jGJqJUnG/m/iSHxauOAsBp6Ipnk8Ffb1eUG04i5kt3Qz9c+mab3uRRslN57A+muo9wgeD/KGXUCbiZFVpghFB5cSCl9oMr+4vflaCnXqj5vIJKzchvI1GVR36g8RjLinBcWoGJjTi5u4Xelwd3f2l6vONCfoqCOabfbELXljcZnp+ZgjNOIQK4lFOhKG6Pd9M/ZxiO17R8n644vckEk/d54YrZLv3Vt2K/KZZKZYm50XtCbYWTHIpKGru/hKdSsDs7BHGwfqC1Oo2FkBZKkAjmho4+SJfehOZS+QqXyHgWLzeIUyJQjZ7InHV9ShMO5ALSUi2Eirxk9CLGUr2RCA98cpp0Pvk84XwSWG6H3syiKsb0jdsR8XWGgXGBIHURBi2yDil5LxlUyJqOEFmEu266l93JidIc0nza85kQixJmYijWdKZvSf0qnHhYpn1wZJStEWI8W7BpL5lQgGMfjyrdpWVGdFp3iOhgtx8lmcl4uJTRNssF0LDuNdP8h4Za0HZYVB/T9e/x28urjTxh6eV1EczeoAuCCNTs5Bifj1R7PNLbyPDnOkH+ITJN6fxkit2I6UDw4bY2+n0xSBJqZJ3zRurYPRzybZfaPcGTzM96PCLr0Y0+2Yq4/Cyd7RWAuVj1et228Y1JfGBkS1K7oBjwQRzSbwlm4nUz8Eq+iQHeGQng+5mMI941Xldw62xoM2+jk+ZOyuBwcYLYcY23Jii
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(122000001)(54906003)(6486002)(6636002)(66556008)(64756008)(38100700002)(66446008)(6506007)(53546011)(186003)(6512007)(66476007)(76116006)(66946007)(71200400001)(6862004)(2906002)(86362001)(26005)(8936002)(91956017)(37006003)(83380400001)(2616005)(38070700005)(8676002)(5660300002)(30864003)(33656002)(316002)(36756003)(4326008)(508600001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <127D58C527DC624AB2BEF74D3AB97C2C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1956
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT043.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b1dc4b4a-bfc7-448c-94b3-08d9a065b94e
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	n/DlpI/nJe8Perj1B3HfSj4A2ViUVogmIL1Tb3UUivJsXGeKbGppoj/u/BxUcdlzWVibxVIc9yWZoAjbEvYZP90fibZLT3GThUSgiQPfjf2gQargBsm2iNUz+iWjb22tgIhOa3S6Yq9S0Sf2+DE4h1LqEnaSXJ1c4YiAXaNxJHby8DJI7EzLM4c4+sj6x3yMhsKDm7QAl3TOyVCjjRIHA/S2aAcl1LLD5HV2uCgflfEYUTVPCL3MBJlMV5+mMlKiSXikJIU9roDu05Pj5ZTJW4/LETK41fn0nNBn1v5+aZIyPr9nRP01hI0YUKHjvjN/HAD9Gb5Avl9MQdY38TTFeWpjxBdpQfAaedWCqpReii9BoLMOc5DYUfDSFKP9pGzZ2OlQvnAYqT4RO1kWdqReODfuxUDpG15/Nk6IJbv8Jn0GxqcOk7bhCj/dGNhp/Gje961O9JuBSLGPy5FezvUx0EDPN/nIrRKNHIOvwFh7yXTivFIZ0s52SsXyoIu9RrJU4/m7kqdFPONnNwXkWum9Z2h/3f7Qo51MMl1NejTf7dJGpMt6kHcuXeM85WfCzuO695kmDuhf0lzfHzCkdVviCZFQ0R+t0Xm5IeH5sU+VVLcA8T+LmJNo7WWVsGQf1IHqP8pqVlE0206bBJtGg7eWXYa4VTjmI7lG/FS9YBwtcCWWrznXDFEn7/mgp2b0p8/ukqkbQsRIZGfXxurypXdIiA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(186003)(2906002)(54906003)(70586007)(47076005)(8936002)(356005)(336012)(6486002)(37006003)(2616005)(6636002)(70206006)(5660300002)(6862004)(6506007)(107886003)(53546011)(316002)(6512007)(36756003)(508600001)(82310400003)(8676002)(26005)(33656002)(36860700001)(4326008)(30864003)(86362001)(81166007)(83380400001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 14:08:32.1660
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 55da97e5-4cce-42b9-d004-08d9a065bfec
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT043.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2364

Hi Luca,

> On 5 Nov 2021, at 13:07, Luca Fancellu <Luca.Fancellu@arm.com> wrote:
>=20
> The code introduced by commit a1743fc3a9fe9b68c265c45264dddf214fd9b882
> ("arm/efi: Use dom0less configuration when using EFI boot") is
> introducing a problem to boot Xen using Grub2 on ARM machine using EDK2.
>=20
> Despite UEFI specification, EDK2+Grub2 is returning a NULL DeviceHandle
> inside the interface given by the LOADED_IMAGE_PROTOCOL service, this
> handle is used later by efi_bs->HandleProtocol(...) inside
> get_parent_handle(...) when requesting the SIMPLE_FILE_SYSTEM_PROTOCOL
> interface, causing Xen to stop the boot because of an EFI_INVALID_PARAMET=
ER
> error.
>=20
> Before the commit above, the function was never called because the
> logic was skipping the call when there were multiboot modules in the
> DT because the filesystem was never used and the bootloader had
> put in place all the right modules in memory and the addresses
> in the DT.
>=20
> To fix the problem the old logic is put back in place. Because the handle
> was given to the efi_check_dt_boot(...), but the revert put the handle
> out of scope, the signature of the function is changed to use an
> EFI_LOADED_IMAGE handle and request the EFI_FILE_HANDLE only when
> needed (module found using xen,uefi-binary).
>=20
> Another problem is found when the UEFI stub tries to check if Dom0
> image or DomUs are present.
> The logic doesn't work when the UEFI stub is not responsible to load
> any modules, so the efi_check_dt_boot(...) return value is modified
> to return the number of multiboot module found and not only the number
> of module loaded by the stub.
> Taking the occasion to update the comment in handle_module_node(...)
> to explain why we return success even if xen,uefi-binary is not found.
>=20
> Fixes: a1743fc3a9 ("arm/efi: Use dom0less configuration when using EFI bo=
ot")
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

> ---
> Justification for integration in 4.16:
> Upside: allow booting xen from grub on arm64 when the stub doesn't load
>        any module.
> Downside: It's affecting the EFI boot path.
> Risk: It's not affecting x86 arch that works the same way as before.
>      If something is wrong it creates a problem on early boot and not at
>      runtime, so risk is low.
>=20
> Tested in this configurations:
> - Bootloader loads modules and specify them as multiboot modules in DT:
>   * combination of Dom0, DomUs, Dom0 and DomUs
> - DT specifies multiboot modules in DT using xen,uefi-binary property:
>   * combination of Dom0, DomUs, Dom0 and DomUs
> - Bootloader loads a Dom0 module and appends it as multiboot module in DT=
,
>   other multiboot modules are listed for DomUs using xen,uefi-binary
> - No multiboot modules in DT and no kernel entry in cfg file:
>   * proper error thrown
>=20
> Changes in v4:
> - dir_handle scope reverted back (Jan)
> Changes in v3:
> - Revert back to the logic that protects get_parent_handle(...) (Jan)
> - Changed efi_check_dt_boot(...) to use a EFI_LOADED_IMAGE handle and
>   request, along the call stack, the parent dir handle only when needed.
> Changes in v2:
> - Changed comment on DeviceHandle NULL (Jan)
> - Removed fatal condition on handle NULL (Jan)
> - Add more info about the EDK2+Grub2 issue to the commit msg (Jan)
> - Removed modules_found from function signature and pass everything
>   on return (Stefano)
> - Improved comment in handle_module_node
>=20
> ---
> xen/arch/arm/efi/efi-boot.h | 61 ++++++++++++++++++++++++-------------
> xen/common/efi/boot.c       | 18 ++++++-----
> 2 files changed, 50 insertions(+), 29 deletions(-)
>=20
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index 8b88dd26a5..458cfbbed4 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -44,17 +44,17 @@ void __flush_dcache_area(const void *vaddr, unsigned =
long size);
>=20
> static int get_module_file_index(const char *name, unsigned int name_len)=
;
> static void PrintMessage(const CHAR16 *s);
> -static int allocate_module_file(EFI_FILE_HANDLE dir_handle,
> +static int allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
>                                 const char *name,
>                                 unsigned int name_len);
> -static int handle_module_node(EFI_FILE_HANDLE dir_handle,
> +static int handle_module_node(EFI_LOADED_IMAGE *loaded_image,
>                               int module_node_offset,
>                               int reg_addr_cells,
>                               int reg_size_cells,
>                               bool is_domu_module);
> -static int handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> +static int handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
>                                        int domain_node);
> -static int efi_check_dt_boot(EFI_FILE_HANDLE dir_handle);
> +static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
>=20
> #define DEVICE_TREE_GUID \
> {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0=
xe0}}
> @@ -647,11 +647,13 @@ static void __init PrintMessage(const CHAR16 *s)
>  * This function allocates a binary and keeps track of its name, it retur=
ns the
>  * index of the file in the modules array or a negative number on error.
>  */
> -static int __init allocate_module_file(EFI_FILE_HANDLE dir_handle,
> +static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
>                                        const char *name,
>                                        unsigned int name_len)
> {
> +    EFI_FILE_HANDLE dir_handle;
>     module_name *file_name;
> +    CHAR16 *fname;
>     union string module_name;
>     int ret;
>=20
> @@ -683,9 +685,14 @@ static int __init allocate_module_file(EFI_FILE_HAND=
LE dir_handle,
>     strlcpy(file_name->name, name, name_len + 1);
>     file_name->name_len =3D name_len;
>=20
> +    /* Get the file system interface. */
> +    dir_handle =3D get_parent_handle(loaded_image, &fname);
> +
>     /* Load the binary in memory */
>     read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
>=20
> +    dir_handle->Close(dir_handle);
> +
>     /* Save address and size */
>     file_name->addr =3D module_binary.addr;
>     file_name->size =3D module_binary.size;
> @@ -702,8 +709,9 @@ static int __init allocate_module_file(EFI_FILE_HANDL=
E dir_handle,
>  * This function checks for the presence of the xen,uefi-binary property =
in the
>  * module, if found it loads the binary as module and sets the right addr=
ess
>  * for the reg property into the module DT node.
> + * Returns 1 if module is multiboot,module, 0 if not, < 0 on error
>  */
> -static int __init handle_module_node(EFI_FILE_HANDLE dir_handle,
> +static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
>                                      int module_node_offset,
>                                      int reg_addr_cells,
>                                      int reg_size_cells,
> @@ -730,13 +738,13 @@ static int __init handle_module_node(EFI_FILE_HANDL=
E dir_handle,
>                                  &uefi_name_len);
>=20
>     if ( !uefi_name_prop )
> -        /* Property not found */
> -        return 0;
> +        /* Property not found, but signal this is a multiboot,module */
> +        return 1;
>=20
>     file_idx =3D get_module_file_index(uefi_name_prop, uefi_name_len);
>     if ( file_idx < 0 )
>     {
> -        file_idx =3D allocate_module_file(dir_handle, uefi_name_prop,
> +        file_idx =3D allocate_module_file(loaded_image, uefi_name_prop,
>                                         uefi_name_len);
>         if ( file_idx < 0 )
>             return file_idx;
> @@ -795,19 +803,20 @@ static int __init handle_module_node(EFI_FILE_HANDL=
E dir_handle,
>         }
>     }
>=20
> -    return 0;
> +    return 1;
> }
>=20
> /*
>  * This function checks for boot modules under the domU guest domain node
>  * in the DT.
> - * Returns 0 on success, negative number on error.
> + * Returns number of multiboot,module found or negative number on error.
>  */
> -static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle=
,
> +static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_i=
mage,
>                                               int domain_node)
> {
>     int module_node, addr_cells, size_cells, len;
>     const struct fdt_property *prop;
> +    unsigned int mb_modules_found =3D 0;
>=20
>     /* Get #address-cells and #size-cells from domain node */
>     prop =3D fdt_get_property(fdt, domain_node, "#address-cells", &len);
> @@ -833,24 +842,26 @@ static int __init handle_dom0less_domain_node(EFI_F=
ILE_HANDLE dir_handle,
>           module_node > 0;
>           module_node =3D fdt_next_subnode(fdt, module_node) )
>     {
> -        int ret =3D handle_module_node(dir_handle, module_node, addr_cel=
ls,
> +        int ret =3D handle_module_node(loaded_image, module_node, addr_c=
ells,
>                                      size_cells, true);
>         if ( ret < 0 )
>             return ret;
> +
> +        mb_modules_found +=3D ret;
>     }
>=20
> -    return 0;
> +    return mb_modules_found;
> }
>=20
> /*
>  * This function checks for xen domain nodes under the /chosen node for p=
ossible
>  * dom0 and domU guests to be loaded.
> - * Returns the number of modules loaded or a negative number for error.
> + * Returns the number of multiboot modules found or a negative number fo=
r error.
>  */
> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> {
>     int chosen, node, addr_len, size_len;
> -    unsigned int i =3D 0;
> +    unsigned int i =3D 0, modules_found =3D 0;
>=20
>     /* Check for the chosen node in the current DTB */
>     chosen =3D setup_chosen_node(fdt, &addr_len, &size_len);
> @@ -865,15 +876,23 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE=
 dir_handle)
>           node > 0;
>           node =3D fdt_next_subnode(fdt, node) )
>     {
> +        int ret;
> +
>         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
>         {
>             /* Found a node with compatible xen,domain; handle this node.=
 */
> -            if ( handle_dom0less_domain_node(dir_handle, node) < 0 )
> +            ret =3D handle_dom0less_domain_node(loaded_image, node);
> +            if ( ret < 0 )
>                 return ERROR_DT_MODULE_DOMU;
>         }
> -        else if ( handle_module_node(dir_handle, node, addr_len, size_le=
n,
> -                                     false) < 0 )
> +        else
> +        {
> +            ret =3D handle_module_node(loaded_image, node, addr_len, siz=
e_len,
> +                                     false);
> +            if ( ret < 0 )
>                  return ERROR_DT_MODULE_DOM0;
> +        }
> +        modules_found +=3D ret;
>     }
>=20
>     /* Free boot modules file names if any */
> @@ -883,7 +902,7 @@ static int __init efi_check_dt_boot(EFI_FILE_HANDLE d=
ir_handle)
>         efi_bs->FreePool(modules[i].name);
>     }
>=20
> -    return modules_idx;
> +    return modules_found;
> }
>=20
> static void __init efi_arch_cpu(void)
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 392ff3ac9b..8fd5e2d078 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -121,6 +121,8 @@ static char *get_value(const struct file *cfg, const =
char *section,
> static char *split_string(char *s);
> static CHAR16 *s2w(union string *str);
> static char *w2s(const union string *str);
> +static EFI_FILE_HANDLE get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
> +                                         CHAR16 **leaf);
> static bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>                       struct file *file, const char *options);
> static bool read_section(const EFI_LOADED_IMAGE *image, const CHAR16 *nam=
e,
> @@ -167,7 +169,7 @@ static void __init PrintErr(const CHAR16 *s)
> }
>=20
> #ifndef CONFIG_HAS_DEVICE_TREE
> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> {
>     return 0;
> }
> @@ -1144,7 +1146,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE =
*SystemTable)
>     const char *option_str;
>     bool use_cfg_file;
>     int dt_modules_found;
> -    EFI_FILE_HANDLE dir_handle;
>=20
>     __set_bit(EFI_BOOT, &efi_flags);
>     __set_bit(EFI_LOADER, &efi_flags);
> @@ -1225,11 +1226,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE=
 *SystemTable)
>=20
>     efi_arch_relocate_image(0);
>=20
> -    /* Get the file system interface. */
> -    dir_handle =3D get_parent_handle(loaded_image, &file_name);
> -
>     if ( use_cfg_file )
>     {
> +        EFI_FILE_HANDLE dir_handle;
>         UINTN depth, cols, rows, size;
>=20
>         size =3D cols =3D rows =3D depth =3D 0;
> @@ -1240,6 +1239,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE =
*SystemTable)
>=20
>         gop =3D efi_get_gop();
>=20
> +        /* Get the file system interface. */
> +        dir_handle =3D get_parent_handle(loaded_image, &file_name);
> +
>         /* Read and parse the config file. */
>         if ( read_section(loaded_image, L"config", &cfg, NULL) )
>             PrintStr(L"Using builtin config file\r\n");
> @@ -1362,14 +1364,14 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABL=
E *SystemTable)
>         efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
>         cfg.addr =3D 0;
>=20
> +        dir_handle->Close(dir_handle);
> +
>         if ( gop && !base_video )
>             gop_mode =3D efi_find_gop_mode(gop, cols, rows, depth);
>     }
>=20
>     /* Get the number of boot modules specified on the DT or an error (<0=
) */
> -    dt_modules_found =3D efi_check_dt_boot(dir_handle);
> -
> -    dir_handle->Close(dir_handle);
> +    dt_modules_found =3D efi_check_dt_boot(loaded_image);
>=20
>     if ( dt_modules_found < 0 )
>         /* efi_check_dt_boot throws some error */
> --=20
> 2.17.1
>=20



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 14:11:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 14:11:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222402.384565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizwE-0004EQ-HB; Fri, 05 Nov 2021 14:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222402.384565; Fri, 05 Nov 2021 14:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizwE-0004EJ-EK; Fri, 05 Nov 2021 14:11:26 +0000
Received: by outflank-mailman (input) for mailman id 222402;
 Fri, 05 Nov 2021 14:11:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UJNx=PY=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1mizwC-0004EB-R1
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 14:11:25 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 40a9bc76-3e42-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 15:11:23 +0100 (CET)
Received: from [172.20.51.40] (50.216.66.194 [50.216.66.194]) by
 mx.zohomail.com with SMTPS id 1636121476377792.0721610260464;
 Fri, 5 Nov 2021 07:11:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 40a9bc76-3e42-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; t=1636121480; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=c2IDRfn5CUF8QQMG3JO5C9O1JZ5yN3ExQaqbLCTCCrWer+YMj1D/FDX0HfvP9LMo6+sZ6PMVnD9ErYniOhYtLh3+uW/Re7A+HQHYEIkhDivlMEy7FGzh9TLxW6ULQfkE9fS7SQDuyc9T7Lt0tiSrteyF5w6NCZKaZ3y+GzScKyA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1636121480; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; 
	bh=rfUbYO0yhwfzz0H0V1T3veDUs7oHHuqMmGxL+oZifDM=; 
	b=SmRphK0CTOzpLxRv5V2itr6LDuYKtrTt9zyuHWaFifb4RWT7nyidC2tUeD+wWbKNkvPZDpmu2DMAjaD3MgYY7f3/ark4b9BoFW0u6znwl0+qc8vhCHCXd+KdiDjKnChp9/AMQvuCEYTvjC0qmOWMGjojFkgxGGGmn2O8XySdTdM=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1636121480;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Subject:To:Cc:References:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding;
	bh=rfUbYO0yhwfzz0H0V1T3veDUs7oHHuqMmGxL+oZifDM=;
	b=LfDxL4HhlvoeQFy11ObGjl9dGd3glpp8+y6YZr8wCW1mWOJe8Tk8WtGIyGHcY4zi
	jIgTAnOyeD1lqfRBL9i/iqNQQVvi+L0S/N5mBaoWyj1lfu/28f/MQm69sRK5Yw6lDFo
	4IT+xZzueKJDDC9ZqGCRiSqSvsWUA+aZZT3WKm14=
Subject: Re: [PATCH 1/5] x86/altcall: allow compound types to be passed
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-2-andrew.cooper3@citrix.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Message-ID: <7353d569-5baf-1ecb-3fcd-31a3b4f5874a@apertussolutions.com>
Date: Fri, 5 Nov 2021 10:09:05 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211105135555.24261-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External


On 11/5/21 9:55 AM, Andrew Cooper wrote:
> From: Jan Beulich <jbeulich@suse.com>
> 
> Replace the conditional operator in ALT_CALL_ARG(), which was intended
> to limit usable types to scalar ones, by a size check. Some restriction
> here is necessary to make sure we don't violate the ABI's calling
> conventions, but limiting to scalar types was both too restrictive
> (disallowing e.g. guest handles) and too permissive (allowing e.g.
> __int128_t).
> 
> Note that there was some anomaly with that conditional operator anyway:
> Something - I don't recall what - made it impossible to omit the middle
> operand.
> 
> Code-generation-wise this has the effect of removing certain zero- or
> sign-extending in some altcall invocations. This ought to be fine as the
> ABI doesn't require sub-sizeof(int) values to be extended, except when
> passed through an ellipsis. No functions subject to altcall patching has
> a variable number of arguments, though.
> 
> Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 14:14:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 14:14:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222408.384577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizyv-0004rB-Va; Fri, 05 Nov 2021 14:14:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222408.384577; Fri, 05 Nov 2021 14:14:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mizyv-0004r4-SP; Fri, 05 Nov 2021 14:14:13 +0000
Received: by outflank-mailman (input) for mailman id 222408;
 Fri, 05 Nov 2021 14:14:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UJNx=PY=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1mizyu-0004qy-CS
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 14:14:12 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a5169c06-3e42-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 15:14:11 +0100 (CET)
Received: from [172.20.51.40] (50.216.66.194 [50.216.66.194]) by
 mx.zohomail.com with SMTPS id 1636121646415664.9324363814346;
 Fri, 5 Nov 2021 07:14:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5169c06-3e42-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; t=1636121648; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=dm6iLrZyJuJ6LXB7iTxbow8qCxCxP05Kwruvp6qhovwE+1+DewgAM5n+3RfEYM+o1t21XrFjSCAPvAZ6xkUkakyvcDTiDyG+C9GhpAlGvQc6SjKqXG25vnOANQHp/9XCmWfNAQ22zpCxNp+MUsCe2nUDkL/iznUmsTDZlMJFaXY=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1636121648; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; 
	bh=0AKKwH1oqvQxqu1OBKQOXJgoSAmhgOiLDohjGsZITb8=; 
	b=gn55JsHsvWPkBAAKOl1/LcPMKvoLXwlKN+c9X62zt72YYyeipJ7Qay94X9T/o50Q2cuac0fMmkFG4zmQCVUF1Wdk+k7lbYPEiLJgafWJyC6MWi9qahGR2H8zGR4VXqJJamHuCytWozlHgxkTjBKnix6VFmRhLoBKc7DhzR1tvj8=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1636121648;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Subject:To:Cc:References:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding;
	bh=0AKKwH1oqvQxqu1OBKQOXJgoSAmhgOiLDohjGsZITb8=;
	b=k++mu7XXnEdMze2rmHriijhZpqiLZp+HlAkHsXYkpGZFDVQDapx/F0BD1ZHTWq4L
	LpvyW5crbUS7iCKTwKiiQgTMN5TX7+fieZfLprcfx5BxPEPImnIWde7w91xCPRpQfqd
	OHew3zWZXqb3BZfbtUiAVM0wET2oqnmDtk8WOE3M=
Subject: Re: [PATCH 2/5] xen/xsm: Complete altcall conversion of xsm interface
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-3-andrew.cooper3@citrix.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Message-ID: <dbcb19c6-3b21-46ac-dbba-4290fb21676d@apertussolutions.com>
Date: Fri, 5 Nov 2021 10:11:56 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211105135555.24261-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/5/21 9:55 AM, Andrew Cooper wrote:
> With alternative_call() capable of handling compound types, the three
> remaining hooks can be optimised at boot time too.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
> CC: Daniel Smith <dpsmith@apertussolutions.com>
> 
> I'm on the fence as to whether to declare this as fixing "xsm: convert xsm_ops
> hook calls to alternative call"

I don't know about fixing but completing was accurate. I am fairly 
certain in one of the incarnations of the patch set there was a comment 
identifying that these were left remaining since compound types were not 
supported by altcall.

Regardless,

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 14:18:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 14:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222416.384588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj038-0005Ze-MP; Fri, 05 Nov 2021 14:18:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222416.384588; Fri, 05 Nov 2021 14:18:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj038-0005ZX-JA; Fri, 05 Nov 2021 14:18:34 +0000
Received: by outflank-mailman (input) for mailman id 222416;
 Fri, 05 Nov 2021 14:18:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VR3F=PY=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mj037-0005ZR-4S
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 14:18:33 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f211296-3e43-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 15:18:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f211296-3e43-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636121911;
  h=subject:to:cc:references:from:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=9qzAvhEkB9Z+n4IkV/g1ObOpirm5X4OpzbyV2v96Bc0=;
  b=OkGIPb3EoJJLCbVgMXW0e7ZdmTznSFnMR2rJ4uZDVAixuI0LiIkKSAY9
   26LeHYY3KqoZLuQkXKMLX6gMXqHrF+CdYQmTh6LokHUAfcWtxBlkrWXqv
   tvPJvJumBLWazUupGwlc1+xwN2SyHtEOlGMLOfxpOeC1yHTmHX4UIXGFu
   U=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: LcTrzB4gCCyFXKk33tWGuoUhiITI55oEn7mJNKTiIhyKzIiG/uZsPMpGoEppYFWtK1puQkPO+d
 qNZS+mnJjOnWXlnVHAzqSl3x3B9AKgWjzoNpNQtWkm//kBITsZ1agKRMz1Yw+R5dgNUyrdhj/s
 0r4tFoTrlkbtZ28yLjJZiCj5PvQAaNOVeQLND8Mfu6aveR/1OQjvJCiwi0tIwtwA8gXXKfFRF5
 jxKkK8NtwjVhna6LBgIO+WNcwcDIxL2ICVLCIKdybmD0CyAQJKwXix5dqJCJ5hiaBDiqSIt1P7
 w0cnEvqVaebSLmKdK5N0nsOG
X-SBRS: 5.1
X-MesageID: 59114375
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:rSEyB6p+e3XgGfzYGvNZ5JfFJkReBmJ7YxIvgKrLsJaIsI4StFCzt
 garIBmOOqyNajGkKI10Pdzg9RxQ75HQmtRqSVM+qS1gFXgV9JuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IDkW1jlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnY7pGBx1OK2RotYQQyECE3wiJYx2o5aSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O
 ptAMGY0M0mojxtnF3pOOJAjtuSToCfaTjIDswPNirIN/D2GpOB2+Oe0a4eEEjCQfu1XlEuFo
 mPN/0ziHwoXcteYzFKt7XaEluLJ2yThV+o6FrKi8eVxqEaO3WFVAxoTPXOrrP/8hkOgVtZ3L
 00P5jFovaU07FasTNT2Q1u/unHslgUHR9NaHuk+6QeM4qnZ+QCUAi4DVDEpQN05tucmSDoyz
 FiLktj1Qzt1v9W9QnKH96yIqiuyNDJTMikJYSYeTiMK5tDipMc4iRenZtR+FK+4iPXlFDe2x
 CqFxAAAgLEUgd8Oxr+M11nNiDKxpbDEVgcwoA7QWwqYAhhRPdD/IdbysB6CsKgGfN3xokS9U
 GYsiZHP97wIDcy3piGdeL8NQe2xxsbeGWiJ6bJwJKUJ+zOo8n+lWIlf5jBiOUtkWvo5lS/Vj
 Fz74l0IusIKVJe+ReouOt/qVZx2pUT1PY29Dqi8UzZYXnRmmOZrFglKbFXY4W3imVNEfUoXa
 cbCKpbE4Zr35M1aINuKqwU1jeBDKsMWnzq7qXXHI/KPi+f2iJm9E+ZtDbd2RrplhJ5oWS2Mm
 zqlC+OEyg9ETMr1aTTN/IgYIDgidCZgW8ir8pcKKLHbc2KK/V3N7deLnNvNnKQ/zsxoehrgp
 CnhCie0NnKm3RUr1jlmmlg8MeiyDP6TXFowPDA2PEbA5pTQSd3H0UvrTLNuJeNP3LU6lZZcF
 qBZE+3dUqUnYmmWoFw1MMiixLGOgTz23GpiyQL+O2NhF3OhLiSUkuLZkvzHr3JSUXbu7JNWT
 n/J/lqzfKfvjj9KVa7+QPmu00mwrT4anudzVFHPOd5dZAPn940CFsA7pqZfzxgkJUqRyz2E+
 RyRBBtE9+DBr5VsqIvChLyerpfvGOx7RxIIE27e5LewFC/b4mv8ntMQDLfWJWjQBDHu5aGvR
 eRJ1PWgYvcJq0lH7thnGLFxwKNgu9a2/+1Gzh5pFWngZkiwDu8yOWGP2MRC7/UfxrJQtQasd
 FiI/91WZeeANM//SQZDLws5dOWTk/oTn2CKv/gyJUz74g5x/aaGDhoOb0Xd1nQFIeIsYo0/w
 OontMoH0CCFi0InYoSckyRZ12WQNXhcAa8pgY4XXd3wgQ0xx1AcPZGFUn3q4IuCYslnO1UxJ
 mPGn7LLgrlRyxaQc3c3EnSRj+NRiY5X5UJPxV4GYV+IhsDElrk82xgIqWY7SQFczxNm1eNvO
 zc0ax0pdPvWpzo41tJeW22MGh1aAEzL80P8/FIFiWnFQhT6TWfKNmA8Zb6A8U1xH7iwpdSHE
 GV0EFrYbAs=
IronPort-HdrOrdr: A9a23:DK1066lpMY64hRKdnjJy01bbVqXpDfO8imdD5ihNYBxZY6Wkfp
 +V88jzhCWZtN9OYhwdcLC7WZVpQRvnhPpICPoqTMiftW7dyReVxeBZnPbfKljbdREWmdQtrZ
 uIH5IObuEYSGIK9/oSgzPIY+rIouP3iZxA7N22pxwGLXAIGtJdBkVCe2Gm+yVNNXh77PECZf
 ihD6R81l+dkDgsH7+G7i5vZZm8mzSHruOqXTc2QzocrCWehzKh77D3VzCewxclSjtKhZMv63
 LMnQDV7riq96jT8G6S60bjq7Bt3PfxwNpKA8KBzuATNzXXkw6tIKBsQaeLsjwZqPymrHwqjN
 7PiRE9ONkb0QKcQkiF5T/WnyXw2jcn7HHvjXeenHvYuMT8AAk3DsJQ7LgpOifx2g4FhpVRwa
 hL12WWu958FhXbhhnw4NDOSlVDile0iWBKq59Ss1VvFa8lLJNBp40W+01YVL0aGjjh1YwhGO
 5ySOnB+fdtd0+AZXyxhBgv/DWVZAVwIv66eDlGhiTMuAIm2EyRjnFoivD3p01wt67UEPJ/lq
 P52qcBrsAGciZZV9M6OA47e7rDNoX6e2O7DIujGyWUKEg5AQO4l3fW2sR/2Aj4Qu1D8HMN8K
 6xJ2+w81RCIn7TNQ==
X-IronPort-AV: E=Sophos;i="5.87,212,1631592000"; 
   d="scan'208";a="59114375"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lyAn620+EonpPUf9zr8Tg3vmBLph9NjcV/pLqJkQ5oZ56qWaR5WjA2uh2DSxDyKhGLf5PTLG2amlS8ZQjc4xTaF6dilUa/rnON3N1bfNkQxx8AlUEXShaktH/Fk3MYzEQsADI9z6HQR3jDX2SBxM4yuwBO//yDs7v164hp1OjYFBFmEIvX7911H2Ktk+nzokBJZ9ZEC9I8HNHdNXJWBKW8nmvxC4DEbUspQUHcFebH7T/g/D4OdUup2/d2cV5l8yrrQe9AZ6lW2liJr9bhERcwf+NuDe1GnDTdZ4fh0kXmBDep14HAxuk64Mj+tHi2Esnm1rgPX1gI8QAyECf2Fc7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/M+TudPcWuv2Qlh0V/XNnt8gaDo4/za+cTeiDqELojU=;
 b=Us5HpKnF1ShgTnBAyp2CS5MUePYMlJqnwurL2OqPHmsSJPkiCGKx4UANRb7X57uXGn9fOnldW0ckvEoN0NWh9khTWOk6CAnu+2J7xrxoa/gCy4w87ShAN/DateBPV2uBlc68zfCp8t3HpA81y3kbHQPmIyzDNqDaqXKK6s4TIhuJZ2yglbYDBsrMIaWrqxAfHxjn4F0y/wYeNNaB+AMz11OjVwiXMMJpgn3XtvmabrQInvfvaf1sp7aL/SqrAwaynPRGfAWBu/7WF/9tJSWs7JSgyOl7pURDzGX130gF4wY2Al1Rp7r2FahBVYReBedbO8sls8rTf+7ffHom/8dhyQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/M+TudPcWuv2Qlh0V/XNnt8gaDo4/za+cTeiDqELojU=;
 b=qYsus32Ub5EVaEtDKOXAqPStxrQstW/LWq9K/1TU8jSRRH26xw2+n0JwQRETgmR7VmDLD2lbuAixlMZG7ROaUxT1DtvnlBmzeEnrip9PTejGsnBlpQcAPPNrXYwKMguQ3A8hbpZOZsIeRj3JFPNeiGaKBr9LPyliOtnWWU/IH9s=
Subject: Re: [PATCH v2 00/15] xen: drop hypercall function tables
To: Juergen Gross <jgross@suse.com>, <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<george.dunlap@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Ian Jackson <iwj@xenproject.org>, Christopher
 Clark <christopher.w.clark@gmail.com>
References: <20211101152015.28488-1-jgross@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <ddde3565-de0f-f025-f762-9d3e08a5c2e5@citrix.com>
Date: Fri, 5 Nov 2021 14:18:17 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <20211101152015.28488-1-jgross@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
X-ClientProxiedBy: LO4P123CA0361.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::6) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7ad09954-ee4c-4a5a-1a67-08d9a0672161
X-MS-TrafficTypeDiagnostic: SJ0PR03MB5949:
X-Microsoft-Antispam-PRVS: <SJ0PR03MB5949ED2DD9D8D2CC5DBD9262BA8E9@SJ0PR03MB5949.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: En6Ttf3FdToNFznHKWux+IyPTjDplPUFim1hFuYKEG5H2slMYYPwa/j+S6JnrRPjU9Sz91s5YvvKSqikPKKjYmEYcKSEkmrdYBCOUvYY1eTm12ZQg6wK/ge2x6Qbd/AXAeA9i1B17GIyaUXO+j6UfCt3eW4mtd3+uSf1Pgpi+AuUGEJ8Wq5LcAu1YFQkfoxYmYv3zZIHyXpV7RostLV2/9s71s228UiGoBiTO04zBoh64j86ZoyGWigepNB5Xf5D1mKxI0oZIj7D2oV5wKBqcLeb7Yr0zEM+3ZVB1Gby0f5cfX1tyHMHeND24XQODXPAjCEqzzvkFn1BLRD0uh3P93SB0wgefcDoY+1lRG1JaBJFxrnfoyPIAY9fHnB6SNvnCR7aIxy+wGwMEdS4lA7vfKEOMxnYmyYn8hlhW4di6tEbR5kT0ZApYyBDl19+z8IMjLqrZEWhKyuQc1HTop19it5v/rGWzjKq0J6nxM10V5rJufgfqg7O1BfOof+AWUO2tySzxT59EkPE6h3z5Pzisk1hONkfF7gBaO0WT47I8Kw/ZCH0am9jZFmL5Bo3iR4E0rflF8w7DWA0HNhauXt+HOAOI8ZWTowamlGGu8OjivmwK6Dv3bLXYK6Fke71EjvtWgNfJ2kuQaA/ZJRiTm49sMjPQALqeNhR47gxvwPVMQjrRykgEIYFhz9A6xc5pdzpwJwVUa70H1LehZr0BwrWZXTsnWdggDt+1Z43fClY93eqcxQtGc1vdHlqmD0lJDKd1DWyEebu6KTMG+9fmsKNzVuMNDhJEywk1dOLF+SrGvGLwzeHV1cAkEN621AWrpuF
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66476007)(66946007)(956004)(5660300002)(966005)(2906002)(2616005)(66556008)(31696002)(53546011)(83380400001)(82960400001)(38100700002)(31686004)(54906003)(6666004)(36756003)(16576012)(508600001)(186003)(8936002)(8676002)(6486002)(26005)(4326008)(316002)(86362001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WGw5V0QxMWZwNTI4cXBOTEN0RHkvTW94b1dMS3hTZ1BuKzE5d2xyN1kzU3Ny?=
 =?utf-8?B?TTFjYVRCVHJGaVZ5SmFQT1FRNlhhYWNiYVFCSWo5ZjlmZlpMQThVUDBxSUNw?=
 =?utf-8?B?RFZ6ak1OcUhINUdxdEExVnJQL2FRQ21WUHMzb21kM05zSUlMc2xKbmNCMnVH?=
 =?utf-8?B?U09yamFvRVhtY3RGV0JnYk1RSWpLUmtIcjlNVm5QRTYzU1BPeFNXMEdCMUo5?=
 =?utf-8?B?UUt6UU5rTGo1WE9nbm5LQWtFNUtwZGI1NWhOMXBZOWs5U0NuclVqQ2lRQXhM?=
 =?utf-8?B?OUF1VkFOMXFMUDBpNm4wand3VENTbzVqcWVNTytLcHN5ci9mZ2hmdHgrVzBO?=
 =?utf-8?B?MUR3aDZOTmY5aVZuNFBMZ1ZmR01XQ1dGalZBUzlRNXNhcjZobWNqSDJlTGVl?=
 =?utf-8?B?aTh2aUptOGRNOVJqTGthWlQva3RaZTZmRWpZdkdiRWs5WnB6dHNRMVN5YW9W?=
 =?utf-8?B?MTkxdk5iSFlINFJZVWkxRjNRRmRwbURPVDV3N0l2TW1hQXc2c2YzdTRnMzhq?=
 =?utf-8?B?ZC9sZ1NGWDRJdXFCMDRObTAzd2NiMlJiNUFSYWMyeXVOOGFMektDQmZZRi9R?=
 =?utf-8?B?ZnpwV2tHRis1Q3ZJalRtNkNOcTAwZWhhTUlUcGwxOUFrRlhDRlhkR1lIMUhr?=
 =?utf-8?B?T2xmdzJGN1ByTzdOWElNelhXVUE2MWxwcDZHS1BZenI1UlNPWWduWUcwZ1pP?=
 =?utf-8?B?R2FBVEFDQTYxY1RZM1M5c3ZCWFp4YzBRamJqVko1eDBNaW5xTFdnMDJzTzFM?=
 =?utf-8?B?N0dZUmJROVQ4UmFpc3dnbmkvalpCZUtPYWhTRGw5ckxDb0F3YkFLS2Rhdnkv?=
 =?utf-8?B?eGpsa0pnRUtOSkZZTGh4NldpbmxCdDNXS1cxU2FEdlVOK3VsS0JPYzB4R0Vu?=
 =?utf-8?B?eEZsR2NreVZkUVRsa1BhZHZHTTNZcVlOZ3VvWWJUd3E0VVBSa2VjME81S0xl?=
 =?utf-8?B?bXN3U3luZWdIRnJ5RUZzdDFPSVd5Y3duMXNiaXlxelYyUmk0UFdxQVdkQU9M?=
 =?utf-8?B?dW50a1lmNFkraEpvSnVqZHZHTDRGeU56a214TXl3SEJkb2xKSGp3ZE1oM2Ex?=
 =?utf-8?B?VlY4VlhCaElueDR6QzJBY0xsZWNORDRDVW95cHpzcmk5WGxZU3ZIaTl5Ujhr?=
 =?utf-8?B?M0k4VFdjL0ptTXVDNGN0ZlBpNTZNZ0R3aDRTeWZmbWlTMnFZZ3FRUTJHclBi?=
 =?utf-8?B?MHk5WWNRTXRFMEszd1NBYjFmeGR3YU1TMHJLNEE5YUE5Tjl2NGRlME9ZcWRG?=
 =?utf-8?B?WkF4MHY2VUU1R0ZXN25tQXlqc1FBTHV5bHNMSTJ0ZmZNbDJuSFAwcWQ5Sks4?=
 =?utf-8?B?a3h2aEphWVV5L0thTUgxcE5tY3JxSkR6MUhJODIxVlVEQnNvZk43SUE4Z3BP?=
 =?utf-8?B?eENpdGRPZy9kQm9UUXQvOVliVmZqTm5jNEJ1Szd6V09qVG5TcG9jaHpFWjFY?=
 =?utf-8?B?akNPUTYvRCtOQ2NLZ01NMm9TZHhObFcwRk5ZMVM0K2RRNDZpeTNHSFpKZTcz?=
 =?utf-8?B?VGxyYk1ibEdCOW45blNYanhnQ3pPTkNJeEIwS3p2ZTZ0WlMzekN6SWFOOEtn?=
 =?utf-8?B?YjhITGgzbGdkQU9mK3ZLY0lmaTdEK3pnNFhPb3dwMUEzT09ON2VkQ0VibmhI?=
 =?utf-8?B?eDJuOUd4NzZaQTZhWVFOT2hVTzMyRnRsbmRZa09NMmsxTThDeWQ1R2Q4c0Nk?=
 =?utf-8?B?SEZ2dWxEREptV0RiMVlXOUhwV1dZK1g4MlF4U0pQY21SdmpIbnBncndiYkZL?=
 =?utf-8?B?bmpzT3RGclJvNzQ1c2o2YjZpYVRCZUtYWEg4NEVjbmN3MzU1eTlWS3lpYThM?=
 =?utf-8?B?VDhpN1E4S0xUMm9sQlBzSWxkaEZaSHhwK1RyODlUMFpzbW9MNi9paFE2ZWQz?=
 =?utf-8?B?SHI5QWdpc1hTTENiV1A3NHQvdGFyTEhzV2VLQWpqdlJUeUVEa0RSRU1aRFg4?=
 =?utf-8?B?Y1Q0RG9RS0o3cVNpTERXTmlkRVFYWmo0N2RxcDJMNjVGU0QyTjhVRlVWKzVV?=
 =?utf-8?B?dCsrckpTcTVTTG9uQTlCMndVYkc2WjgxRFRmS2Q2YUVacFNQWk9RMEdlRXZu?=
 =?utf-8?B?QUJDdnIrT1p3RFZROS9zYlpwZ0ZOb2trNE8xOU9uQTJzR09NVFF6S0hMVGtU?=
 =?utf-8?B?ajBKVzB2OERPUlFDdzI3S05LVmQzU3N3T0lJczZRejFNSU82ak1QZm90YWFh?=
 =?utf-8?B?S01DZC9CeHN5VUdvTDZrMTNDUkRXUHBTOHN5VDNJNXpsN2tSTmUrU0FYTnBq?=
 =?utf-8?B?YWNuRFN1MzdEK3Q5K2Q0Z0ZPKzl3PT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ad09954-ee4c-4a5a-1a67-08d9a0672161
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 14:18:25.4361
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gMO+Bpz676Zh9wvhhpCfpLpceC5EJUhSKZt2eGHNSMGTX98ifJfMJmLweZFJPFCzlSc+apeKtQeX98A8hFoa4WhdbJlamwSA4Erj4muAhRc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5949
X-OriginatorOrg: citrix.com

On 01/11/2021 15:20, Juergen Gross wrote:
> In order to avoid indirect function calls on the hypercall path as
> much as possible this series is removing the hypercall function tables
> and is replacing the hypercall handler calls via the function array
> by automatically generated call macros.
>
> Another by-product of generating the call macros is the automatic
> generating of the hypercall handler prototypes from the same data base
> which is used to generate the macros.
>
> This has the additional advantage of using type safe calls of the
> handlers and to ensure related handler (e.g. PV and HVM ones) share
> the same prototypes.
>
> A very brief performance test (parallel build of the Xen hypervisor
> in a 6 vcpu guest) showed a very slim improvement (less than 1%) of
> the performance with the patches applied. The test was performed using
> a PV and a PVH guest.
>
> Changes in V2:
> - new patches 6, 14, 15
> - patch 7: support hypercall priorities for faster code
> - comments addressed
>
> Juergen Gross (15):
>   xen: limit number of hypercall parameters to 5
>   xen: move do_vcpu_op() to arch specific code
>   xen: harmonize return types of hypercall handlers
>   xen/x86: modify hvm_memory_op() prototype
>   xen: don't include asm/hypercall.h from C sources
>   add .gitignore entries for *.[is] below xen
>   xen: generate hypercall interface related code
>   xen: use generated prototypes for hypercall handlers
>   x86/pv-shim: don't modify hypercall table
>   xen/x86: don't use hypercall table for calling compat hypercalls
>   xen/x86: call hypercall handlers via generated macro
>   xen/arm: call hypercall handlers via generated macro
>   xen/x86: add hypercall performance counters for hvm, correct pv
>   xen: drop calls_to_multicall performance counter
>   tools/xenperf: update hypercall names

https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/1752237172

Something here causes

hypercall.c: In function 'hvm_hypercall':
hypercall.c:174:23: error: unused variable 'r8' [-Werror=unused-variable]
  174 |         unsigned long r8 = regs->r8;
      |                       ^~
hypercall.c:190:22: error: unused variable 'edi' [-Werror=unused-variable]
  190 |         unsigned int edi = regs->edi;
      |                      ^~~
cc1: all warnings being treated as errors

I suspect it will be "call hypercall handlers via generated macro", but
I haven't investigated further.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 14:23:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 14:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222423.384599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj07M-0006wQ-8M; Fri, 05 Nov 2021 14:22:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222423.384599; Fri, 05 Nov 2021 14:22:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj07M-0006wJ-4M; Fri, 05 Nov 2021 14:22:56 +0000
Received: by outflank-mailman (input) for mailman id 222423;
 Fri, 05 Nov 2021 14:22:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UJNx=PY=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1mj07K-0006wD-QT
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 14:22:54 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc34ec93-3e43-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 15:22:53 +0100 (CET)
Received: from [172.20.51.40] (50.216.66.194 [50.216.66.194]) by
 mx.zohomail.com with SMTPS id 1636122167162223.0732521740996;
 Fri, 5 Nov 2021 07:22:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc34ec93-3e43-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; t=1636122170; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=kyqpGSgfPCKfY34VtSewANLbOzF/IjBIO2vifbIh70hXcIycEkkML3QP1SR2iwxKsBGDAIVEFhGerU2ub2YNXW6yb2daXlRvLk7FtWh6dgDeQbx8kO5M50rLP74Wor98VQgU3T2nksNq6+GNKOj4loiHzfv8ZQh7j9ObUArOsR0=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1636122170; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; 
	bh=bAxe5EcljUj22y9bmvV/Cyi1yP2wctTekgXbyalBHXE=; 
	b=PVb61bmXzdOiTIjv1CEjX7E8pYFC5JyMofOUtgJpSflzHDNWfVhto0+U6b5BMaR5BBUvieQKel/4iqjK+FFGg/6+QlElPFnv620QSYAuMwW3eU/Bc/paAM/5w/ZZ58pdZjxWWTaK+h94g9PvG9YzJbFrnB8/tsCLGwYTo5wwQGg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1636122170;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Subject:To:Cc:References:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding;
	bh=bAxe5EcljUj22y9bmvV/Cyi1yP2wctTekgXbyalBHXE=;
	b=ev3NA9hTtUeo6BnQTr8KYfrvVguAXefwzfyROCMAZjOQ+E8xXpPSOEQ6bIR8aOEC
	uIjpl4BRxX7AkIFDCEmhlYnZZavehkuXzwrrgRwYnNxqvzdsSrgXaxX+mjeQ5sHC5tm
	+HW9nDY/fjcGDkQRO6cdOtYAD3F8d3e0+80o2Uc8=
Subject: Re: [PATCH 3/5] xen/xsm: Drop xsm_hvm_control() hook
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-4-andrew.cooper3@citrix.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Message-ID: <8d5dac86-9a0d-c4d8-8ca1-803342843072@apertussolutions.com>
Date: Fri, 5 Nov 2021 10:20:36 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211105135555.24261-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/5/21 9:55 AM, Andrew Cooper wrote:
> The final caller was dropped by c/s 58cbc034dc62 "dm_op: convert
> HVMOP_inject_trap and HVMOP_inject_msi"
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
> CC: Daniel Smith <dpsmith@apertussolutions.com>

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 14:24:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 14:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222429.384610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj08p-0007WO-J4; Fri, 05 Nov 2021 14:24:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222429.384610; Fri, 05 Nov 2021 14:24:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj08p-0007WH-FU; Fri, 05 Nov 2021 14:24:27 +0000
Received: by outflank-mailman (input) for mailman id 222429;
 Fri, 05 Nov 2021 14:24:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UJNx=PY=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1mj08o-0007W4-26
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 14:24:26 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 123d17b8-3e44-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 15:24:24 +0100 (CET)
Received: from [172.20.51.40] (50.216.66.194 [50.216.66.194]) by
 mx.zohomail.com with SMTPS id 1636122257858344.84417735095747;
 Fri, 5 Nov 2021 07:24:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 123d17b8-3e44-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; t=1636122261; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=jnxG/rsByc0XvpNG7AYPU0jEArlHFJ0HZ4wJhARrdSMrAg7HDRr84vSTfA5g6OK5ROUfh7iDvdOZED5gk3rkSvoGlfQ7smxMq5fB5VOBOxQXCfHM+rQT7u14bMuhUmzEecym9NyEQGpirUbNqlNsgqOSudjPMNodRG15zB9IihU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1636122261; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; 
	bh=ejx6XTr8UJAJxOcAsUPXtPka4YA3F0nyBW6RZkn0wM4=; 
	b=EiFi4UuF7GYiN/UbPL4V/pWvobhusmBD3PwGG7tpIwVa7uadVyPU+XpB8eL6WbzjuIg49M3RtM2QMqzKxLyzhIQvCno0Vy5sRCGdJ9oJqvUGiRY3IYk2JUACPYST8GZkjdGKBaDrTZtJBa100o2rI9zAWiik9BlTtTFmDJRQ+hE=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1636122261;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Subject:To:Cc:References:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding;
	bh=ejx6XTr8UJAJxOcAsUPXtPka4YA3F0nyBW6RZkn0wM4=;
	b=aaydQ4z6/IHw2iq6ZB/ftumrfyR9c7roIm7VKUw5AhB8kirlZAH8VYljsCj+0R8t
	8u3vnhMtQ2x9CoC1EdEc6dYC38RqOsJEkFXfGerba2vfWrIILJkAmy8Q9hlGCm+tBnP
	TqT1oEo3PVcDQdPZQeNc/OIxSY563JPDCxJT/R44=
Subject: Re: [PATCH 4/5] xen/xsm: Improve fallback handling in xsm_fixup_ops()
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-5-andrew.cooper3@citrix.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Message-ID: <be3cc020-0dcf-57e8-dfd3-4ed19f52ea42@apertussolutions.com>
Date: Fri, 5 Nov 2021 10:22:07 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211105135555.24261-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/5/21 9:55 AM, Andrew Cooper wrote:
> The current xsm_fixup_ops() is just shy of a full page when compiled, and very
> fragile to NULL function pointer errors.
> 
> Address both of these issues with a minor piece of structure (ab)use.
> Introduce dummy_ops, and fixup the provided xsm_ops pointer by treating both
> as an array of unsigned longs.
> 
> The compiled size improvement speaks for itself:
> 
>    $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
>    add/remove: 1/0 grow/shrink: 0/1 up/down: 712/-3897 (-3185)
>    Function                                     old     new   delta
>    dummy_ops                                      -     712    +712
>    xsm_fixup_ops                               3987      90   -3897
> 
> and there is an additional safety check that will make it obvious during
> development if there is an issue with the fallback handling.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
> CC: Daniel Smith <dpsmith@apertussolutions.com>


Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 14:44:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 14:44:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222439.384621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj0RI-0001Oh-71; Fri, 05 Nov 2021 14:43:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222439.384621; Fri, 05 Nov 2021 14:43:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj0RI-0001Oa-3G; Fri, 05 Nov 2021 14:43:32 +0000
Received: by outflank-mailman (input) for mailman id 222439;
 Fri, 05 Nov 2021 14:43:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MQ27=PY=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mj0RF-0001OE-RL
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 14:43:30 +0000
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01on062d.outbound.protection.outlook.com
 [2a01:111:f400:fe1f::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc69944e-3e46-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 15:43:28 +0100 (CET)
Received: from DB6PR0402CA0008.eurprd04.prod.outlook.com (2603:10a6:4:91::18)
 by PAXPR08MB6942.eurprd08.prod.outlook.com (2603:10a6:102:135::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Fri, 5 Nov
 2021 14:43:22 +0000
Received: from DB5EUR03FT050.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:4:91:cafe::bb) by DB6PR0402CA0008.outlook.office365.com
 (2603:10a6:4:91::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 14:43:22 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT050.mail.protection.outlook.com (10.152.21.128) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Fri, 5 Nov 2021 14:43:21 +0000
Received: ("Tessian outbound e7ce0d853b63:v108");
 Fri, 05 Nov 2021 14:43:21 +0000
Received: from db40e6212822.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 BB20C00F-E59E-4BAD-BD6D-AF337A79BE02.1; 
 Fri, 05 Nov 2021 14:43:12 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id db40e6212822.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 05 Nov 2021 14:43:12 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB6581.eurprd08.prod.outlook.com (2603:10a6:20b:33a::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Fri, 5 Nov
 2021 14:43:08 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4649.023; Fri, 5 Nov 2021
 14:43:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc69944e-3e46-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PhKwgATobAJ2RaGyNqcm8Tk7nbZKT2wKUjvnK2m6LP4=;
 b=qv57y5dFX7boISRH0W8cA+Su4VsT0airjEqxZX/Y4aQHVuHUnDWmajrvOHekqL4IrvjuwHq0Fpuy9EpxxLlROresNHsr6ANwZyovuIEjJhJeRVeuPYhluBhyjtmi6CiFtzSf9YlYUAzBW+N0t7dHeVDAS/G4q6YIXfuOI/VDVWo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: bca618ff691cc291
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=d27FnhtR4ZhOz9ty/8AFd5i472CbyoOZkChDuTraclvhPznQymXEcN5iW+sAZQWo6KQVaI5Vfj9x8OzpqBLbUnpFODfJp3hsFd9hJCQw1wnyAWgT3q0w+WhShcLpL2Mp8hlAGJdhBLfDsGARV/EPMHio97DG056gXmLaradcgERnv63y90eoTmj1sTVaKfsOV+5C0okFbM8+38wlA265oZ8k0W8PfvsUD6w9qPRHPF4tC9/pju8Zh8V6YAQ+dacq/1soNfrdTwl0YtPZp1Blq0dihkruJlMzDFyRPKxlZwqMQJxRrRqClGmw3qS1t6UKDZcK0Oa3iIQfIJiq0JVj1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PhKwgATobAJ2RaGyNqcm8Tk7nbZKT2wKUjvnK2m6LP4=;
 b=AQRKGSVliSgcHnWpcFnI2C0o/VmuLd9ihHzx+XjZD8cNlt7u/lQgB8RFpke1Iov8RqZw5pscP+yiy9BtPDUpxCbI9lpnPBMsRvl1W3dymK2VBIEuCpjNXaYoUtD0cqlazPqrBhasXW9h866hr72ze2FUV9sWplNwiWHivfGO60sTpmt0o5rHg85UPb0yttsbDrCDaEO3tfFocBgp4k86lnyzqzL9RjDjZ1ootGDDsqMYwiDC2w5cOblKkHCrX4ZfU2gqq2QNh/XLAyLPdUQD0OmFYUVoZW94MTPhPg97Enq1QkiF55e8mNOfWd/Q64zJt2pN/TQTP0xoyYgXjWuzqQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PhKwgATobAJ2RaGyNqcm8Tk7nbZKT2wKUjvnK2m6LP4=;
 b=qv57y5dFX7boISRH0W8cA+Su4VsT0airjEqxZX/Y4aQHVuHUnDWmajrvOHekqL4IrvjuwHq0Fpuy9EpxxLlROresNHsr6ANwZyovuIEjJhJeRVeuPYhluBhyjtmi6CiFtzSf9YlYUAzBW+N0t7dHeVDAS/G4q6YIXfuOI/VDVWo=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Vikram Garhwal <fnu.vikram@xilinx.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, "julien@xen.org"
	<julien@xen.org>
Subject: Re: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
Thread-Topic: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
Thread-Index: AQHX0UQblDQwk25oXUS4+EmFAqHUdKv1BFoA
Date: Fri, 5 Nov 2021 14:43:07 +0000
Message-ID: <BCD82839-0BBC-4CD6-956B-E4938D9ACB7D@arm.com>
References: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com>
 <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com>
In-Reply-To: <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 18c1ffd5-9d13-423d-be5d-08d9a06a9d5e
x-ms-traffictypediagnostic: AS8PR08MB6581:|PAXPR08MB6942:
X-Microsoft-Antispam-PRVS:
	<PAXPR08MB694215C085792BD3858D951C9D8E9@PAXPR08MB6942.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:2803;OLM:2803;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 uhfemjbmqXthj5acsK9yUz68uNvzuxr15PKNf5i+PyiDVlao9iLJn9OvF6/CUfunNde6W/C5gxw1S7sCRTL+rmAfFXlC0NP1rRMMVDsHRov7RlufxGXrj4hb/G21/96oNrR5ilJVH6HRQV9DLUeOC4UdM6jaNXYTnTj1A8U2CigoybyOcgbj2qhC/p6nmh5JxMtE4YDUwiMicB43Tb43n+pmnGykdjen0mYQPJ5RPj99iK5Tn6nw+6GDj/OYyWE6n/3H07dMSL5tAbqXSo5fWeYBtQkfrUyPSQG79dfMGcOYxdFOidJGtgbat50Rvf2Saz7yhVWl2mpicTtnkFfZDyuywPo+aSDMMT7OVSUUcgtWRVf4O5oH5D0+10azGpvdD28avxfPH14raaP3ndBVlZntm8tIJrzCE3YgN6N4A4w5BtnEpbH+MA1594JnvkQA3kUIFai+mCU5NERBvD8Rj6EoAZI6Z3vvKFBqn3Yx2Sp+OPzjaPQLA9Aw3DoNY3ITnjhvREwxtSJPcvLRRt9dCV8m2irg/7hotMmYqQTZdJs2ydIiz+qodQ9r3dr+Jn/FSfSlkWw8zQKRKZg8R9LRTx0OJHCvfJEjjre6AG38KMbL17PPOhOXcdFUGiMNyf3C+aEjAvmModKK02lD36oqq3A7yO92ys5Hv6E3UcOUUL7fbQu9lHiIYM8RgHduuxawV9BkagW+Gus+NrVtp2t/irdh6RdBbNryUWK/ulPJBdUk5OxhLA0f5p4lyYhN11r1CgPy9Ajg2Y2/7QxAfHUEvoQGLBYCKx6RHlONAYrpXE8sWQumm1gCDbCquZLV+craG0aJmYP4lvthHy0w33Ei/CNOdQZ9wgSKZylLiXNcSDIyTfxjfZLHLx6a8uBExZIZ
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(71200400001)(6512007)(5660300002)(186003)(8676002)(122000001)(316002)(38100700002)(54906003)(86362001)(91956017)(64756008)(66446008)(26005)(66556008)(508600001)(38070700005)(15650500001)(53546011)(66946007)(6486002)(4326008)(33656002)(83380400001)(2616005)(36756003)(2906002)(30864003)(76116006)(6506007)(66476007)(6916009)(46800400005)(2004002)(45980500001)(559001)(579004);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <637C4DBDC088AD46834A227FB95B12E8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6581
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT050.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	d3157d0d-fa2b-4da4-8869-08d9a06a953f
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	0GKta3GvMQ0wBD16G2EsfdLN56Fo+MIRTpYQh5w+BUiAH7Lg1WuMnY9jq9wEX2YHQfJqIxZcHw6CcvVakFdMKlX0qz6S7U1svyoc3yUiLVLmTt2a5lO9FusRoZX/bcWnnJLlWywJYuM9LcinZ4sgmMtHGXUTyuvwqVnmbHtJhGZpXaeDhXSwVqaaCbU34vqzY1HmzohFKMhoWTnCQP0Bc4lszZfYbueeu4k8l3jALwB/5Laz5Plr+XeHJ+Xtiz93DDKsNwgkPmnnz9Sq2oSeEb+lerAFWIHo6hhckpAL7jd7IRm5CAtvGhc7J0WlscZZ5Evmi6yaF1p8ORbIw7WlRxwjI/c2cVsCfxUPuRargKNnOEUcgZX1t8oB5ZD0xaw12oMLsZThqbhB2TKsfvfkVp3TXo7n+wrk/hPeOmUZvm4BTlOypnsX1RRFRzKrhfyOJjFLpOqlNR1c2JdlvQNp5Yf4h5taJ6r0YA+CqO570+Ku+AdlWntPkk+UsS09ak1M7sgU73C35BiiBMA0A2ynN608IeG4wa/PfWbZ8YAHkeDRNU/G/zzCypD+nqWAQsaZiLZhYqqI4/VFVh2U8Jm9P9BbpDC2qZ3YSvDOjyWIYudcPwN2L6t98MJBI+4BzlxQUn7gucp4MrRH3QSVtyNJvtTiDjUlAJG8uDFR/SHvX9g23R7eOTGeNStJyCeP5sBLXrrqktPpXr8IO7qHNX8Y/+9iZMfflOxWw+lxZNdxiPW8ozkRJmTrtI3BAby5J5Cl+nIGrcnbg0paE/kTi61oXVj0eCmW8xDd0qFeS5UyQ4Y0WLS1cNymNLwjSGfj43qLqxho/9tQ/mdmOBE8ZdgiHA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(70206006)(70586007)(356005)(47076005)(15650500001)(508600001)(30864003)(81166007)(82310400003)(33656002)(86362001)(83380400001)(36860700001)(2906002)(186003)(54906003)(36756003)(8676002)(8936002)(4326008)(2616005)(53546011)(6486002)(6506007)(316002)(6862004)(26005)(6512007)(336012)(5660300002)(46800400005)(2004002)(559001)(579004);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 14:43:21.6755
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 18c1ffd5-9d13-423d-be5d-08d9a06a9d5e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT050.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6942

Hi Vikram,

> On 4 Nov 2021, at 06:19, Vikram Garhwal <fnu.vikram@xilinx.com> wrote:
>=20
> Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc=
.
> This update is done to support device tree overlays.
>=20
> A few minor changes are done to make it compatible with Xen:
> fdt_overlay.c: overlay_fixup_phandle()
>    Replace  strtoul() simple_strtoul() as strtoul() is not available in X=
en lib
>    and included lib.h.
>    Change char *endptr to const char *endptr.
>=20
> libfdt_env.h:
>    Changed path for config.h and stdbool.h. Remaining Xen changes to
>    libfdt_env.h carried over from existing libfdt (v1.4.0)

I can confirm that you updated all sources to version 1.6.1 and the changes
are actually limited to what you said here.

But you forgot to update the version.lds file to sync it (which was done on=
 the
previous update to 1.4.0). Could also update version.lds ?

I can also confirm this is compiling for arm32, arm64 and x86.

Cheers
Bertrand

>=20
> Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
> ---
> xen/common/libfdt/Makefile.libfdt   |  10 +-
> xen/common/libfdt/fdt.c             | 226 ++++++---
> xen/common/libfdt/fdt_addresses.c   | 101 ++++
> xen/common/libfdt/fdt_check.c       |  93 ++++
> xen/common/libfdt/fdt_empty_tree.c  |  46 +-
> xen/common/libfdt/fdt_overlay.c     | 884 +++++++++++++++++++++++++++++++=
+++++
> xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
> xen/common/libfdt/fdt_rw.c          | 249 +++++-----
> xen/common/libfdt/fdt_strerror.c    |  55 +--
> xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
> xen/common/libfdt/fdt_wip.c         |  88 ++--
> xen/common/libfdt/libfdt_internal.h | 223 ++++++---
> xen/include/xen/libfdt/fdt.h        |  51 +--
> xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++--=
---
> xen/include/xen/libfdt/libfdt_env.h | 100 +++-
> 15 files changed, 3025 insertions(+), 785 deletions(-)
> create mode 100644 xen/common/libfdt/fdt_addresses.c
> create mode 100644 xen/common/libfdt/fdt_check.c
> create mode 100644 xen/common/libfdt/fdt_overlay.c
>=20
> diff --git a/xen/common/libfdt/Makefile.libfdt b/xen/common/libfdt/Makefi=
le.libfdt
> index 91126c0..b6d8fc0 100644
> --- a/xen/common/libfdt/Makefile.libfdt
> +++ b/xen/common/libfdt/Makefile.libfdt
> @@ -1,3 +1,4 @@
> +# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> # Makefile.libfdt
> #
> # This is not a complete Makefile of itself.  Instead, it is designed to
> @@ -6,5 +7,12 @@
> LIBFDT_soname =3D libfdt.$(SHAREDLIB_EXT).1
> LIBFDT_INCLUDES =3D fdt.h libfdt.h libfdt_env.h
> LIBFDT_VERSION =3D version.lds
> -LIBFDT_SRCS =3D fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.=
c fdt_empty_tree.c
> +LIBFDT_SRCS =3D fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.=
c fdt_empty_tree.c \
> +	fdt_addresses.c fdt_overlay.c fdt_check.c
> LIBFDT_OBJS =3D $(LIBFDT_SRCS:%.c=3D%.o)
> +LIBFDT_LIB =3D libfdt-$(DTC_VERSION).$(SHAREDLIB_EXT)
> +
> +libfdt_clean:
> +	@$(VECHO) CLEAN "(libfdt)"
> +	rm -f $(STD_CLEANFILES:%=3D$(LIBFDT_dir)/%)
> +	rm -f $(LIBFDT_dir)/$(LIBFDT_soname)
> diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
> index bbc7717..9fe7cf4 100644
> --- a/xen/common/libfdt/fdt.c
> +++ b/xen/common/libfdt/fdt.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,40 +10,156 @@
>=20
> #include "libfdt_internal.h"
>=20
> -int fdt_check_header(const void *fdt)
> +/*
> + * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
> + * that the given buffer contains what appears to be a flattened
> + * device tree with sane information in its header.
> + */
> +int32_t fdt_ro_probe_(const void *fdt)
> {
> +	uint32_t totalsize =3D fdt_totalsize(fdt);
> +
> +	if (can_assume(VALID_DTB))
> +		return totalsize;
> +
> +	/* The device tree must be at an 8-byte aligned address */
> +	if ((uintptr_t)fdt & 7)
> +		return -FDT_ERR_ALIGNMENT;
> +
> 	if (fdt_magic(fdt) =3D=3D FDT_MAGIC) {
> 		/* Complete tree */
> -		if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> -			return -FDT_ERR_BADVERSION;
> -		if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
> -			return -FDT_ERR_BADVERSION;
> +		if (!can_assume(LATEST)) {
> +			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> +				return -FDT_ERR_BADVERSION;
> +			if (fdt_last_comp_version(fdt) >
> +					FDT_LAST_SUPPORTED_VERSION)
> +				return -FDT_ERR_BADVERSION;
> +		}
> 	} else if (fdt_magic(fdt) =3D=3D FDT_SW_MAGIC) {
> 		/* Unfinished sequential-write blob */
> -		if (fdt_size_dt_struct(fdt) =3D=3D 0)
> +		if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) =3D=3D 0)
> 			return -FDT_ERR_BADSTATE;
> 	} else {
> 		return -FDT_ERR_BADMAGIC;
> 	}
>=20
> +	if (totalsize < INT32_MAX)
> +		return totalsize;
> +	else
> +		return -FDT_ERR_TRUNCATED;
> +}
> +
> +static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off=
)
> +{
> +	return (off >=3D hdrsize) && (off <=3D totalsize);
> +}
> +
> +static int check_block_(uint32_t hdrsize, uint32_t totalsize,
> +			uint32_t base, uint32_t size)
> +{
> +	if (!check_off_(hdrsize, totalsize, base))
> +		return 0; /* block start out of bounds */
> +	if ((base + size) < base)
> +		return 0; /* overflow */
> +	if (!check_off_(hdrsize, totalsize, base + size))
> +		return 0; /* block end out of bounds */
> +	return 1;
> +}
> +
> +size_t fdt_header_size_(uint32_t version)
> +{
> +	if (version <=3D 1)
> +		return FDT_V1_SIZE;
> +	else if (version <=3D 2)
> +		return FDT_V2_SIZE;
> +	else if (version <=3D 3)
> +		return FDT_V3_SIZE;
> +	else if (version <=3D 16)
> +		return FDT_V16_SIZE;
> +	else
> +		return FDT_V17_SIZE;
> +}
> +
> +size_t fdt_header_size(const void *fdt)
> +{
> +	return can_assume(LATEST) ? FDT_V17_SIZE :
> +		fdt_header_size_(fdt_version(fdt));
> +}
> +
> +int fdt_check_header(const void *fdt)
> +{
> +	size_t hdrsize;
> +
> +	/* The device tree must be at an 8-byte aligned address */
> +	if ((uintptr_t)fdt & 7)
> +		return -FDT_ERR_ALIGNMENT;
> +
> +	if (fdt_magic(fdt) !=3D FDT_MAGIC)
> +		return -FDT_ERR_BADMAGIC;
> +	if (!can_assume(LATEST)) {
> +		if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> +		    || (fdt_last_comp_version(fdt) >
> +			FDT_LAST_SUPPORTED_VERSION))
> +			return -FDT_ERR_BADVERSION;
> +		if (fdt_version(fdt) < fdt_last_comp_version(fdt))
> +			return -FDT_ERR_BADVERSION;
> +	}
> +	hdrsize =3D fdt_header_size(fdt);
> +	if (!can_assume(VALID_DTB)) {
> +
> +		if ((fdt_totalsize(fdt) < hdrsize)
> +		    || (fdt_totalsize(fdt) > INT_MAX))
> +			return -FDT_ERR_TRUNCATED;
> +
> +		/* Bounds check memrsv block */
> +		if (!check_off_(hdrsize, fdt_totalsize(fdt),
> +				fdt_off_mem_rsvmap(fdt)))
> +			return -FDT_ERR_TRUNCATED;
> +	}
> +
> +	if (!can_assume(VALID_DTB)) {
> +		/* Bounds check structure block */
> +		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
> +			if (!check_off_(hdrsize, fdt_totalsize(fdt),
> +					fdt_off_dt_struct(fdt)))
> +				return -FDT_ERR_TRUNCATED;
> +		} else {
> +			if (!check_block_(hdrsize, fdt_totalsize(fdt),
> +					  fdt_off_dt_struct(fdt),
> +					  fdt_size_dt_struct(fdt)))
> +				return -FDT_ERR_TRUNCATED;
> +		}
> +
> +		/* Bounds check strings block */
> +		if (!check_block_(hdrsize, fdt_totalsize(fdt),
> +				  fdt_off_dt_strings(fdt),
> +				  fdt_size_dt_strings(fdt)))
> +			return -FDT_ERR_TRUNCATED;
> +	}
> +
> 	return 0;
> }
>=20
> const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
> {
> -	unsigned absoffset =3D offset + fdt_off_dt_struct(fdt);
> +	unsigned int uoffset =3D offset;
> +	unsigned int absoffset =3D offset + fdt_off_dt_struct(fdt);
>=20
> -	if ((absoffset < offset)
> -	    || ((absoffset + len) < absoffset)
> -	    || (absoffset + len) > fdt_totalsize(fdt))
> +	if (offset < 0)
> 		return NULL;
>=20
> -	if (fdt_version(fdt) >=3D 0x11)
> -		if (((offset + len) < offset)
> +	if (!can_assume(VALID_INPUT))
> +		if ((absoffset < uoffset)
> +		    || ((absoffset + len) < absoffset)
> +		    || (absoffset + len) > fdt_totalsize(fdt))
> +			return NULL;
> +
> +	if (can_assume(LATEST) || fdt_version(fdt) >=3D 0x11)
> +		if (((uoffset + len) < uoffset)
> 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
> 			return NULL;
>=20
> -	return _fdt_offset_ptr(fdt, offset);
> +	return fdt_offset_ptr_(fdt, offset);
> }
>=20
> uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> @@ -98,7 +171,7 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset=
, int *nextoffset)
>=20
> 	*nextoffset =3D -FDT_ERR_TRUNCATED;
> 	tagp =3D fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
> -	if (!tagp)
> +	if (!can_assume(VALID_DTB) && !tagp)
> 		return FDT_END; /* premature end */
> 	tag =3D fdt32_to_cpu(*tagp);
> 	offset +=3D FDT_TAGSIZE;
> @@ -110,17 +183,21 @@ uint32_t fdt_next_tag(const void *fdt, int startoff=
set, int *nextoffset)
> 		do {
> 			p =3D fdt_offset_ptr(fdt, offset++, 1);
> 		} while (p && (*p !=3D '\0'));
> -		if (!p)
> +		if (!can_assume(VALID_DTB) && !p)
> 			return FDT_END; /* premature end */
> 		break;
>=20
> 	case FDT_PROP:
> 		lenp =3D fdt_offset_ptr(fdt, offset, sizeof(*lenp));
> -		if (!lenp)
> +		if (!can_assume(VALID_DTB) && !lenp)
> 			return FDT_END; /* premature end */
> 		/* skip-name offset, length and value */
> 		offset +=3D sizeof(struct fdt_property) - FDT_TAGSIZE
> 			+ fdt32_to_cpu(*lenp);
> +		if (!can_assume(LATEST) &&
> +		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >=3D 8 &&
> +		    ((offset - fdt32_to_cpu(*lenp)) % 8) !=3D 0)
> +			offset +=3D 4;
> 		break;
>=20
> 	case FDT_END:
> @@ -139,19 +216,25 @@ uint32_t fdt_next_tag(const void *fdt, int startoff=
set, int *nextoffset)
> 	return tag;
> }
>=20
> -int _fdt_check_node_offset(const void *fdt, int offset)
> +int fdt_check_node_offset_(const void *fdt, int offset)
> {
> -	if ((offset < 0) || (offset % FDT_TAGSIZE)
> -	    || (fdt_next_tag(fdt, offset, &offset) !=3D FDT_BEGIN_NODE))
> +	if (!can_assume(VALID_INPUT)
> +	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
> +		return -FDT_ERR_BADOFFSET;
> +
> +	if (fdt_next_tag(fdt, offset, &offset) !=3D FDT_BEGIN_NODE)
> 		return -FDT_ERR_BADOFFSET;
>=20
> 	return offset;
> }
>=20
> -int _fdt_check_prop_offset(const void *fdt, int offset)
> +int fdt_check_prop_offset_(const void *fdt, int offset)
> {
> -	if ((offset < 0) || (offset % FDT_TAGSIZE)
> -	    || (fdt_next_tag(fdt, offset, &offset) !=3D FDT_PROP))
> +	if (!can_assume(VALID_INPUT)
> +	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
> +		return -FDT_ERR_BADOFFSET;
> +
> +	if (fdt_next_tag(fdt, offset, &offset) !=3D FDT_PROP)
> 		return -FDT_ERR_BADOFFSET;
>=20
> 	return offset;
> @@ -163,7 +246,7 @@ int fdt_next_node(const void *fdt, int offset, int *d=
epth)
> 	uint32_t tag;
>=20
> 	if (offset >=3D 0)
> -		if ((nextoffset =3D _fdt_check_node_offset(fdt, offset)) < 0)
> +		if ((nextoffset =3D fdt_check_node_offset_(fdt, offset)) < 0)
> 			return nextoffset;
>=20
> 	do {
> @@ -225,7 +308,7 @@ int fdt_next_subnode(const void *fdt, int offset)
> 	return offset;
> }
>=20
> -const char *_fdt_find_string(const char *strtab, int tabsize, const char=
 *s)
> +const char *fdt_find_string_(const char *strtab, int tabsize, const char=
 *s)
> {
> 	int len =3D strlen(s) + 1;
> 	const char *last =3D strtab + tabsize - len;
> @@ -239,9 +322,12 @@ const char *_fdt_find_string(const char *strtab, int=
 tabsize, const char *s)
>=20
> int fdt_move(const void *fdt, void *buf, int bufsize)
> {
> -	FDT_CHECK_HEADER(fdt);
> +	if (!can_assume(VALID_INPUT) && bufsize < 0)
> +		return -FDT_ERR_NOSPACE;
> +
> +	FDT_RO_PROBE(fdt);
>=20
> -	if (fdt_totalsize(fdt) > bufsize)
> +	if (fdt_totalsize(fdt) > (unsigned int)bufsize)
> 		return -FDT_ERR_NOSPACE;
>=20
> 	memmove(buf, fdt, fdt_totalsize(fdt));
> diff --git a/xen/common/libfdt/fdt_addresses.c b/xen/common/libfdt/fdt_ad=
dresses.c
> new file mode 100644
> index 0000000..9a82cd0
> --- /dev/null
> +++ b/xen/common/libfdt/fdt_addresses.c
> @@ -0,0 +1,101 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> +/*
> + * libfdt - Flat Device Tree manipulation
> + * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
> + * Copyright (C) 2018 embedded brains GmbH
> + */
> +#include "libfdt_env.h"
> +
> +#include <fdt.h>
> +#include <libfdt.h>
> +
> +#include "libfdt_internal.h"
> +
> +static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
> +{
> +	const fdt32_t *c;
> +	uint32_t val;
> +	int len;
> +
> +	c =3D fdt_getprop(fdt, nodeoffset, name, &len);
> +	if (!c)
> +		return len;
> +
> +	if (len !=3D sizeof(*c))
> +		return -FDT_ERR_BADNCELLS;
> +
> +	val =3D fdt32_to_cpu(*c);
> +	if (val > FDT_MAX_NCELLS)
> +		return -FDT_ERR_BADNCELLS;
> +
> +	return (int)val;
> +}
> +
> +int fdt_address_cells(const void *fdt, int nodeoffset)
> +{
> +	int val;
> +
> +	val =3D fdt_cells(fdt, nodeoffset, "#address-cells");
> +	if (val =3D=3D 0)
> +		return -FDT_ERR_BADNCELLS;
> +	if (val =3D=3D -FDT_ERR_NOTFOUND)
> +		return 2;
> +	return val;
> +}
> +
> +int fdt_size_cells(const void *fdt, int nodeoffset)
> +{
> +	int val;
> +
> +	val =3D fdt_cells(fdt, nodeoffset, "#size-cells");
> +	if (val =3D=3D -FDT_ERR_NOTFOUND)
> +		return 1;
> +	return val;
> +}
> +
> +/* This function assumes that [address|size]_cells is 1 or 2 */
> +int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
> +			     const char *name, uint64_t addr, uint64_t size)
> +{
> +	int addr_cells, size_cells, ret;
> +	uint8_t data[sizeof(fdt64_t) * 2], *prop;
> +
> +	ret =3D fdt_address_cells(fdt, parent);
> +	if (ret < 0)
> +		return ret;
> +	addr_cells =3D ret;
> +
> +	ret =3D fdt_size_cells(fdt, parent);
> +	if (ret < 0)
> +		return ret;
> +	size_cells =3D ret;
> +
> +	/* check validity of address */
> +	prop =3D data;
> +	if (addr_cells =3D=3D 1) {
> +		if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
> +			return -FDT_ERR_BADVALUE;
> +
> +		fdt32_st(prop, (uint32_t)addr);
> +	} else if (addr_cells =3D=3D 2) {
> +		fdt64_st(prop, addr);
> +	} else {
> +		return -FDT_ERR_BADNCELLS;
> +	}
> +
> +	/* check validity of size */
> +	prop +=3D addr_cells * sizeof(fdt32_t);
> +	if (size_cells =3D=3D 1) {
> +		if (size > UINT32_MAX)
> +			return -FDT_ERR_BADVALUE;
> +
> +		fdt32_st(prop, (uint32_t)size);
> +	} else if (size_cells =3D=3D 2) {
> +		fdt64_st(prop, size);
> +	} else {
> +		return -FDT_ERR_BADNCELLS;
> +	}
> +
> +	return fdt_appendprop(fdt, nodeoffset, name, data,
> +			      (addr_cells + size_cells) * sizeof(fdt32_t));
> +}
> diff --git a/xen/common/libfdt/fdt_check.c b/xen/common/libfdt/fdt_check.=
c
> new file mode 100644
> index 0000000..fa410a8
> --- /dev/null
> +++ b/xen/common/libfdt/fdt_check.c
> @@ -0,0 +1,93 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> +/*
> + * libfdt - Flat Device Tree manipulation
> + * Copyright (C) 2006 David Gibson, IBM Corporation.
> + */
> +#include "libfdt_env.h"
> +
> +#include <fdt.h>
> +#include <libfdt.h>
> +
> +#include "libfdt_internal.h"
> +
> +int fdt_check_full(const void *fdt, size_t bufsize)
> +{
> +	int err;
> +	int num_memrsv;
> +	int offset, nextoffset =3D 0;
> +	uint32_t tag;
> +	unsigned int depth =3D 0;
> +	const void *prop;
> +	const char *propname;
> +	bool expect_end =3D false;
> +
> +	if (bufsize < FDT_V1_SIZE)
> +		return -FDT_ERR_TRUNCATED;
> +	if (bufsize < fdt_header_size(fdt))
> +		return -FDT_ERR_TRUNCATED;
> +	err =3D fdt_check_header(fdt);
> +	if (err !=3D 0)
> +		return err;
> +	if (bufsize < fdt_totalsize(fdt))
> +		return -FDT_ERR_TRUNCATED;
> +
> +	num_memrsv =3D fdt_num_mem_rsv(fdt);
> +	if (num_memrsv < 0)
> +		return num_memrsv;
> +
> +	while (1) {
> +		offset =3D nextoffset;
> +		tag =3D fdt_next_tag(fdt, offset, &nextoffset);
> +
> +		if (nextoffset < 0)
> +			return nextoffset;
> +
> +		/* If we see two root nodes, something is wrong */
> +		if (expect_end && tag !=3D FDT_END)
> +			return -FDT_ERR_BADSTRUCTURE;
> +
> +		switch (tag) {
> +		case FDT_NOP:
> +			break;
> +
> +		case FDT_END:
> +			if (depth !=3D 0)
> +				return -FDT_ERR_BADSTRUCTURE;
> +			return 0;
> +
> +		case FDT_BEGIN_NODE:
> +			depth++;
> +			if (depth > INT_MAX)
> +				return -FDT_ERR_BADSTRUCTURE;
> +
> +			/* The root node must have an empty name */
> +			if (depth =3D=3D 1) {
> +				const char *name;
> +				int len;
> +
> +				name =3D fdt_get_name(fdt, offset, &len);
> +				if (*name || len)
> +					return -FDT_ERR_BADSTRUCTURE;
> +			}
> +			break;
> +
> +		case FDT_END_NODE:
> +			if (depth =3D=3D 0)
> +				return -FDT_ERR_BADSTRUCTURE;
> +			depth--;
> +			if (depth =3D=3D 0)
> +				expect_end =3D true;
> +			break;
> +
> +		case FDT_PROP:
> +			prop =3D fdt_getprop_by_offset(fdt, offset, &propname,
> +						     &err);
> +			if (!prop)
> +				return err;
> +			break;
> +
> +		default:
> +			return -FDT_ERR_INTERNAL;
> +		}
> +	}
> +}
> diff --git a/xen/common/libfdt/fdt_empty_tree.c b/xen/common/libfdt/fdt_e=
mpty_tree.c
> index d505611..49d54d4 100644
> --- a/xen/common/libfdt/fdt_empty_tree.c
> +++ b/xen/common/libfdt/fdt_empty_tree.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2012 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -79,4 +36,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
>=20
> 	return fdt_open_into(buf, buf, bufsize);
> }
> -
> diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_over=
lay.c
> new file mode 100644
> index 0000000..7b95e2b
> --- /dev/null
> +++ b/xen/common/libfdt/fdt_overlay.c
> @@ -0,0 +1,884 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> +/*
> + * libfdt - Flat Device Tree manipulation
> + * Copyright (C) 2016 Free Electrons
> + * Copyright (C) 2016 NextThing Co.
> + */
> +#include "libfdt_env.h"
> +
> +#include <fdt.h>
> +#include <libfdt.h>
> +#include <xen/lib.h>
> +
> +#include "libfdt_internal.h"
> +
> +/**
> + * overlay_get_target_phandle - retrieves the target phandle of a fragme=
nt
> + * @fdto: pointer to the device tree overlay blob
> + * @fragment: node offset of the fragment in the overlay
> + *
> + * overlay_get_target_phandle() retrieves the target phandle of an
> + * overlay fragment when that fragment uses a phandle (target
> + * property) instead of a path (target-path property).
> + *
> + * returns:
> + *      the phandle pointed by the target property
> + *      0, if the phandle was not found
> + *	-1, if the phandle was malformed
> + */
> +static uint32_t overlay_get_target_phandle(const void *fdto, int fragmen=
t)
> +{
> +	const fdt32_t *val;
> +	int len;
> +
> +	val =3D fdt_getprop(fdto, fragment, "target", &len);
> +	if (!val)
> +		return 0;
> +
> +	if ((len !=3D sizeof(*val)) || (fdt32_to_cpu(*val) =3D=3D (uint32_t)-1)=
)
> +		return (uint32_t)-1;
> +
> +	return fdt32_to_cpu(*val);
> +}
> +
> +/**
> + * overlay_get_target - retrieves the offset of a fragment's target
> + * @fdt: Base device tree blob
> + * @fdto: Device tree overlay blob
> + * @fragment: node offset of the fragment in the overlay
> + * @pathp: pointer which receives the path of the target (or NULL)
> + *
> + * overlay_get_target() retrieves the target offset in the base
> + * device tree of a fragment, no matter how the actual targeting is
> + * done (through a phandle or a path)
> + *
> + * returns:
> + *      the targeted node offset in the base device tree
> + *      Negative error code on error
> + */
> +static int overlay_get_target(const void *fdt, const void *fdto,
> +			      int fragment, char const **pathp)
> +{
> +	uint32_t phandle;
> +	const char *path =3D NULL;
> +	int path_len =3D 0, ret;
> +
> +	/* Try first to do a phandle based lookup */
> +	phandle =3D overlay_get_target_phandle(fdto, fragment);
> +	if (phandle =3D=3D (uint32_t)-1)
> +		return -FDT_ERR_BADPHANDLE;
> +
> +	/* no phandle, try path */
> +	if (!phandle) {
> +		/* And then a path based lookup */
> +		path =3D fdt_getprop(fdto, fragment, "target-path", &path_len);
> +		if (path)
> +			ret =3D fdt_path_offset(fdt, path);
> +		else
> +			ret =3D path_len;
> +	} else
> +		ret =3D fdt_node_offset_by_phandle(fdt, phandle);
> +
> +	/*
> +	* If we haven't found either a target or a
> +	* target-path property in a node that contains a
> +	* __overlay__ subnode (we wouldn't be called
> +	* otherwise), consider it a improperly written
> +	* overlay
> +	*/
> +	if (ret < 0 && path_len =3D=3D -FDT_ERR_NOTFOUND)
> +		ret =3D -FDT_ERR_BADOVERLAY;
> +
> +	/* return on error */
> +	if (ret < 0)
> +		return ret;
> +
> +	/* return pointer to path (if available) */
> +	if (pathp)
> +		*pathp =3D path ? path : NULL;
> +
> +	return ret;
> +}
> +
> +/**
> + * overlay_phandle_add_offset - Increases a phandle by an offset
> + * @fdt: Base device tree blob
> + * @node: Device tree overlay blob
> + * @name: Name of the property to modify (phandle or linux,phandle)
> + * @delta: offset to apply
> + *
> + * overlay_phandle_add_offset() increments a node phandle by a given
> + * offset.
> + *
> + * returns:
> + *      0 on success.
> + *      Negative error code on error
> + */
> +static int overlay_phandle_add_offset(void *fdt, int node,
> +				      const char *name, uint32_t delta)
> +{
> +	const fdt32_t *val;
> +	uint32_t adj_val;
> +	int len;
> +
> +	val =3D fdt_getprop(fdt, node, name, &len);
> +	if (!val)
> +		return len;
> +
> +	if (len !=3D sizeof(*val))
> +		return -FDT_ERR_BADPHANDLE;
> +
> +	adj_val =3D fdt32_to_cpu(*val);
> +	if ((adj_val + delta) < adj_val)
> +		return -FDT_ERR_NOPHANDLES;
> +
> +	adj_val +=3D delta;
> +	if (adj_val =3D=3D (uint32_t)-1)
> +		return -FDT_ERR_NOPHANDLES;
> +
> +	return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
> +}
> +
> +/**
> + * overlay_adjust_node_phandles - Offsets the phandles of a node
> + * @fdto: Device tree overlay blob
> + * @node: Offset of the node we want to adjust
> + * @delta: Offset to shift the phandles of
> + *
> + * overlay_adjust_node_phandles() adds a constant to all the phandles
> + * of a given node. This is mainly use as part of the overlay
> + * application process, when we want to update all the overlay
> + * phandles to not conflict with the overlays of the base device tree.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_adjust_node_phandles(void *fdto, int node,
> +					uint32_t delta)
> +{
> +	int child;
> +	int ret;
> +
> +	ret =3D overlay_phandle_add_offset(fdto, node, "phandle", delta);
> +	if (ret && ret !=3D -FDT_ERR_NOTFOUND)
> +		return ret;
> +
> +	ret =3D overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
> +	if (ret && ret !=3D -FDT_ERR_NOTFOUND)
> +		return ret;
> +
> +	fdt_for_each_subnode(child, fdto, node) {
> +		ret =3D overlay_adjust_node_phandles(fdto, child, delta);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_adjust_local_phandles - Adjust the phandles of a whole overla=
y
> + * @fdto: Device tree overlay blob
> + * @delta: Offset to shift the phandles of
> + *
> + * overlay_adjust_local_phandles() adds a constant to all the
> + * phandles of an overlay. This is mainly use as part of the overlay
> + * application process, when we want to update all the overlay
> + * phandles to not conflict with the overlays of the base device tree.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
> +{
> +	/*
> +	 * Start adjusting the phandles from the overlay root
> +	 */
> +	return overlay_adjust_node_phandles(fdto, 0, delta);
> +}
> +
> +/**
> + * overlay_update_local_node_references - Adjust the overlay references
> + * @fdto: Device tree overlay blob
> + * @tree_node: Node offset of the node to operate on
> + * @fixup_node: Node offset of the matching local fixups node
> + * @delta: Offset to shift the phandles of
> + *
> + * overlay_update_local_nodes_references() update the phandles
> + * pointing to a node within the device tree overlay by adding a
> + * constant delta.
> + *
> + * This is mainly used as part of a device tree application process,
> + * where you want the device tree overlays phandles to not conflict
> + * with the ones from the base device tree before merging them.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_update_local_node_references(void *fdto,
> +						int tree_node,
> +						int fixup_node,
> +						uint32_t delta)
> +{
> +	int fixup_prop;
> +	int fixup_child;
> +	int ret;
> +
> +	fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
> +		const fdt32_t *fixup_val;
> +		const char *tree_val;
> +		const char *name;
> +		int fixup_len;
> +		int tree_len;
> +		int i;
> +
> +		fixup_val =3D fdt_getprop_by_offset(fdto, fixup_prop,
> +						  &name, &fixup_len);
> +		if (!fixup_val)
> +			return fixup_len;
> +
> +		if (fixup_len % sizeof(uint32_t))
> +			return -FDT_ERR_BADOVERLAY;
> +		fixup_len /=3D sizeof(uint32_t);
> +
> +		tree_val =3D fdt_getprop(fdto, tree_node, name, &tree_len);
> +		if (!tree_val) {
> +			if (tree_len =3D=3D -FDT_ERR_NOTFOUND)
> +				return -FDT_ERR_BADOVERLAY;
> +
> +			return tree_len;
> +		}
> +
> +		for (i =3D 0; i < fixup_len; i++) {
> +			fdt32_t adj_val;
> +			uint32_t poffset;
> +
> +			poffset =3D fdt32_to_cpu(fixup_val[i]);
> +
> +			/*
> +			 * phandles to fixup can be unaligned.
> +			 *
> +			 * Use a memcpy for the architectures that do
> +			 * not support unaligned accesses.
> +			 */
> +			memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
> +
> +			adj_val =3D cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
> +
> +			ret =3D fdt_setprop_inplace_namelen_partial(fdto,
> +								  tree_node,
> +								  name,
> +								  strlen(name),
> +								  poffset,
> +								  &adj_val,
> +								  sizeof(adj_val));
> +			if (ret =3D=3D -FDT_ERR_NOSPACE)
> +				return -FDT_ERR_BADOVERLAY;
> +
> +			if (ret)
> +				return ret;
> +		}
> +	}
> +
> +	fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
> +		const char *fixup_child_name =3D fdt_get_name(fdto, fixup_child,
> +							    NULL);
> +		int tree_child;
> +
> +		tree_child =3D fdt_subnode_offset(fdto, tree_node,
> +						fixup_child_name);
> +		if (tree_child =3D=3D -FDT_ERR_NOTFOUND)
> +			return -FDT_ERR_BADOVERLAY;
> +		if (tree_child < 0)
> +			return tree_child;
> +
> +		ret =3D overlay_update_local_node_references(fdto,
> +							   tree_child,
> +							   fixup_child,
> +							   delta);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_update_local_references - Adjust the overlay references
> + * @fdto: Device tree overlay blob
> + * @delta: Offset to shift the phandles of
> + *
> + * overlay_update_local_references() update all the phandles pointing
> + * to a node within the device tree overlay by adding a constant
> + * delta to not conflict with the base overlay.
> + *
> + * This is mainly used as part of a device tree application process,
> + * where you want the device tree overlays phandles to not conflict
> + * with the ones from the base device tree before merging them.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_update_local_references(void *fdto, uint32_t delta)
> +{
> +	int fixups;
> +
> +	fixups =3D fdt_path_offset(fdto, "/__local_fixups__");
> +	if (fixups < 0) {
> +		/* There's no local phandles to adjust, bail out */
> +		if (fixups =3D=3D -FDT_ERR_NOTFOUND)
> +			return 0;
> +
> +		return fixups;
> +	}
> +
> +	/*
> +	 * Update our local references from the root of the tree
> +	 */
> +	return overlay_update_local_node_references(fdto, 0, fixups,
> +						    delta);
> +}
> +
> +/**
> + * overlay_fixup_one_phandle - Set an overlay phandle to the base one
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + * @symbols_off: Node offset of the symbols node in the base device tree
> + * @path: Path to a node holding a phandle in the overlay
> + * @path_len: number of path characters to consider
> + * @name: Name of the property holding the phandle reference in the over=
lay
> + * @name_len: number of name characters to consider
> + * @poffset: Offset within the overlay property where the phandle is sto=
red
> + * @label: Label of the node referenced by the phandle
> + *
> + * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
> + * a node in the base device tree.
> + *
> + * This is part of the device tree overlay application process, when
> + * you want all the phandles in the overlay to point to the actual
> + * base dt nodes.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_fixup_one_phandle(void *fdt, void *fdto,
> +				     int symbols_off,
> +				     const char *path, uint32_t path_len,
> +				     const char *name, uint32_t name_len,
> +				     int poffset, const char *label)
> +{
> +	const char *symbol_path;
> +	uint32_t phandle;
> +	fdt32_t phandle_prop;
> +	int symbol_off, fixup_off;
> +	int prop_len;
> +
> +	if (symbols_off < 0)
> +		return symbols_off;
> +
> +	symbol_path =3D fdt_getprop(fdt, symbols_off, label,
> +				  &prop_len);
> +	if (!symbol_path)
> +		return prop_len;
> +
> +	symbol_off =3D fdt_path_offset(fdt, symbol_path);
> +	if (symbol_off < 0)
> +		return symbol_off;
> +
> +	phandle =3D fdt_get_phandle(fdt, symbol_off);
> +	if (!phandle)
> +		return -FDT_ERR_NOTFOUND;
> +
> +	fixup_off =3D fdt_path_offset_namelen(fdto, path, path_len);
> +	if (fixup_off =3D=3D -FDT_ERR_NOTFOUND)
> +		return -FDT_ERR_BADOVERLAY;
> +	if (fixup_off < 0)
> +		return fixup_off;
> +
> +	phandle_prop =3D cpu_to_fdt32(phandle);
> +	return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
> +						   name, name_len, poffset,
> +						   &phandle_prop,
> +						   sizeof(phandle_prop));
> +};
> +
> +/**
> + * overlay_fixup_phandle - Set an overlay phandle to the base one
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + * @symbols_off: Node offset of the symbols node in the base device tree
> + * @property: Property offset in the overlay holding the list of fixups
> + *
> + * overlay_fixup_phandle() resolves all the overlay phandles pointed
> + * to in a __fixups__ property, and updates them to match the phandles
> + * in use in the base device tree.
> + *
> + * This is part of the device tree overlay application process, when
> + * you want all the phandles in the overlay to point to the actual
> + * base dt nodes.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
> +				 int property)
> +{
> +	const char *value;
> +	const char *label;
> +	int len;
> +
> +	value =3D fdt_getprop_by_offset(fdto, property,
> +				      &label, &len);
> +	if (!value) {
> +		if (len =3D=3D -FDT_ERR_NOTFOUND)
> +			return -FDT_ERR_INTERNAL;
> +
> +		return len;
> +	}
> +
> +	do {
> +		const char *path, *name, *fixup_end;
> +		const char *fixup_str =3D value;
> +		uint32_t path_len, name_len;
> +		uint32_t fixup_len;
> +		char *sep;
> +		const char *endptr;
> +		int poffset, ret;
> +
> +		fixup_end =3D memchr(value, '\0', len);
> +		if (!fixup_end)
> +			return -FDT_ERR_BADOVERLAY;
> +		fixup_len =3D fixup_end - fixup_str;
> +
> +		len -=3D fixup_len + 1;
> +		value +=3D fixup_len + 1;
> +
> +		path =3D fixup_str;
> +		sep =3D memchr(fixup_str, ':', fixup_len);
> +		if (!sep || *sep !=3D ':')
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		path_len =3D sep - path;
> +		if (path_len =3D=3D (fixup_len - 1))
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		fixup_len -=3D path_len + 1;
> +		name =3D sep + 1;
> +		sep =3D memchr(name, ':', fixup_len);
> +		if (!sep || *sep !=3D ':')
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		name_len =3D sep - name;
> +		if (!name_len)
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		poffset =3D simple_strtoul(sep + 1, &endptr, 10);
> +		if ((*endptr !=3D '\0') || (endptr <=3D (sep + 1)))
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		ret =3D overlay_fixup_one_phandle(fdt, fdto, symbols_off,
> +						path, path_len, name, name_len,
> +						poffset, label);
> +		if (ret)
> +			return ret;
> +	} while (len > 0);
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_fixup_phandles - Resolve the overlay phandles to the base
> + *                          device tree
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + *
> + * overlay_fixup_phandles() resolves all the overlay phandles pointing
> + * to nodes in the base device tree.
> + *
> + * This is one of the steps of the device tree overlay application
> + * process, when you want all the phandles in the overlay to point to
> + * the actual base dt nodes.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_fixup_phandles(void *fdt, void *fdto)
> +{
> +	int fixups_off, symbols_off;
> +	int property;
> +
> +	/* We can have overlays without any fixups */
> +	fixups_off =3D fdt_path_offset(fdto, "/__fixups__");
> +	if (fixups_off =3D=3D -FDT_ERR_NOTFOUND)
> +		return 0; /* nothing to do */
> +	if (fixups_off < 0)
> +		return fixups_off;
> +
> +	/* And base DTs without symbols */
> +	symbols_off =3D fdt_path_offset(fdt, "/__symbols__");
> +	if ((symbols_off < 0 && (symbols_off !=3D -FDT_ERR_NOTFOUND)))
> +		return symbols_off;
> +
> +	fdt_for_each_property_offset(property, fdto, fixups_off) {
> +		int ret;
> +
> +		ret =3D overlay_fixup_phandle(fdt, fdto, symbols_off, property);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_apply_node - Merges a node into the base device tree
> + * @fdt: Base Device Tree blob
> + * @target: Node offset in the base device tree to apply the fragment to
> + * @fdto: Device tree overlay blob
> + * @node: Node offset in the overlay holding the changes to merge
> + *
> + * overlay_apply_node() merges a node into a target base device tree
> + * node pointed.
> + *
> + * This is part of the final step in the device tree overlay
> + * application process, when all the phandles have been adjusted and
> + * resolved and you just have to merge overlay into the base device
> + * tree.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_apply_node(void *fdt, int target,
> +			      void *fdto, int node)
> +{
> +	int property;
> +	int subnode;
> +
> +	fdt_for_each_property_offset(property, fdto, node) {
> +		const char *name;
> +		const void *prop;
> +		int prop_len;
> +		int ret;
> +
> +		prop =3D fdt_getprop_by_offset(fdto, property, &name,
> +					     &prop_len);
> +		if (prop_len =3D=3D -FDT_ERR_NOTFOUND)
> +			return -FDT_ERR_INTERNAL;
> +		if (prop_len < 0)
> +			return prop_len;
> +
> +		ret =3D fdt_setprop(fdt, target, name, prop, prop_len);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	fdt_for_each_subnode(subnode, fdto, node) {
> +		const char *name =3D fdt_get_name(fdto, subnode, NULL);
> +		int nnode;
> +		int ret;
> +
> +		nnode =3D fdt_add_subnode(fdt, target, name);
> +		if (nnode =3D=3D -FDT_ERR_EXISTS) {
> +			nnode =3D fdt_subnode_offset(fdt, target, name);
> +			if (nnode =3D=3D -FDT_ERR_NOTFOUND)
> +				return -FDT_ERR_INTERNAL;
> +		}
> +
> +		if (nnode < 0)
> +			return nnode;
> +
> +		ret =3D overlay_apply_node(fdt, nnode, fdto, subnode);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_merge - Merge an overlay into its base device tree
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + *
> + * overlay_merge() merges an overlay into its base device tree.
> + *
> + * This is the next to last step in the device tree overlay application
> + * process, when all the phandles have been adjusted and resolved and
> + * you just have to merge overlay into the base device tree.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_merge(void *fdt, void *fdto)
> +{
> +	int fragment;
> +
> +	fdt_for_each_subnode(fragment, fdto, 0) {
> +		int overlay;
> +		int target;
> +		int ret;
> +
> +		/*
> +		 * Each fragments will have an __overlay__ node. If
> +		 * they don't, it's not supposed to be merged
> +		 */
> +		overlay =3D fdt_subnode_offset(fdto, fragment, "__overlay__");
> +		if (overlay =3D=3D -FDT_ERR_NOTFOUND)
> +			continue;
> +
> +		if (overlay < 0)
> +			return overlay;
> +
> +		target =3D overlay_get_target(fdt, fdto, fragment, NULL);
> +		if (target < 0)
> +			return target;
> +
> +		ret =3D overlay_apply_node(fdt, target, fdto, overlay);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +static int get_path_len(const void *fdt, int nodeoffset)
> +{
> +	int len =3D 0, namelen;
> +	const char *name;
> +
> +	FDT_RO_PROBE(fdt);
> +
> +	for (;;) {
> +		name =3D fdt_get_name(fdt, nodeoffset, &namelen);
> +		if (!name)
> +			return namelen;
> +
> +		/* root? we're done */
> +		if (namelen =3D=3D 0)
> +			break;
> +
> +		nodeoffset =3D fdt_parent_offset(fdt, nodeoffset);
> +		if (nodeoffset < 0)
> +			return nodeoffset;
> +		len +=3D namelen + 1;
> +	}
> +
> +	/* in case of root pretend it's "/" */
> +	if (len =3D=3D 0)
> +		len++;
> +	return len;
> +}
> +
> +/**
> + * overlay_symbol_update - Update the symbols of base tree after a merge
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + *
> + * overlay_symbol_update() updates the symbols of the base tree with the
> + * symbols of the applied overlay
> + *
> + * This is the last step in the device tree overlay application
> + * process, allowing the reference of overlay symbols by subsequent
> + * overlay operations.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_symbol_update(void *fdt, void *fdto)
> +{
> +	int root_sym, ov_sym, prop, path_len, fragment, target;
> +	int len, frag_name_len, ret, rel_path_len;
> +	const char *s, *e;
> +	const char *path;
> +	const char *name;
> +	const char *frag_name;
> +	const char *rel_path;
> +	const char *target_path;
> +	char *buf;
> +	void *p;
> +
> +	ov_sym =3D fdt_subnode_offset(fdto, 0, "__symbols__");
> +
> +	/* if no overlay symbols exist no problem */
> +	if (ov_sym < 0)
> +		return 0;
> +
> +	root_sym =3D fdt_subnode_offset(fdt, 0, "__symbols__");
> +
> +	/* it no root symbols exist we should create them */
> +	if (root_sym =3D=3D -FDT_ERR_NOTFOUND)
> +		root_sym =3D fdt_add_subnode(fdt, 0, "__symbols__");
> +
> +	/* any error is fatal now */
> +	if (root_sym < 0)
> +		return root_sym;
> +
> +	/* iterate over each overlay symbol */
> +	fdt_for_each_property_offset(prop, fdto, ov_sym) {
> +		path =3D fdt_getprop_by_offset(fdto, prop, &name, &path_len);
> +		if (!path)
> +			return path_len;
> +
> +		/* verify it's a string property (terminated by a single \0) */
> +		if (path_len < 1 || memchr(path, '\0', path_len) !=3D &path[path_len -=
 1])
> +			return -FDT_ERR_BADVALUE;
> +
> +		/* keep end marker to avoid strlen() */
> +		e =3D path + path_len;
> +
> +		if (*path !=3D '/')
> +			return -FDT_ERR_BADVALUE;
> +
> +		/* get fragment name first */
> +		s =3D strchr(path + 1, '/');
> +		if (!s) {
> +			/* Symbol refers to something that won't end
> +			 * up in the target tree */
> +			continue;
> +		}
> +
> +		frag_name =3D path + 1;
> +		frag_name_len =3D s - path - 1;
> +
> +		/* verify format; safe since "s" lies in \0 terminated prop */
> +		len =3D sizeof("/__overlay__/") - 1;
> +		if ((e - s) > len && (memcmp(s, "/__overlay__/", len) =3D=3D 0)) {
> +			/* /<fragment-name>/__overlay__/<relative-subnode-path> */
> +			rel_path =3D s + len;
> +			rel_path_len =3D e - rel_path - 1;
> +		} else if ((e - s) =3D=3D len
> +			   && (memcmp(s, "/__overlay__", len - 1) =3D=3D 0)) {
> +			/* /<fragment-name>/__overlay__ */
> +			rel_path =3D "";
> +			rel_path_len =3D 0;
> +		} else {
> +			/* Symbol refers to something that won't end
> +			 * up in the target tree */
> +			continue;
> +		}
> +
> +		/* find the fragment index in which the symbol lies */
> +		ret =3D fdt_subnode_offset_namelen(fdto, 0, frag_name,
> +					       frag_name_len);
> +		/* not found? */
> +		if (ret < 0)
> +			return -FDT_ERR_BADOVERLAY;
> +		fragment =3D ret;
> +
> +		/* an __overlay__ subnode must exist */
> +		ret =3D fdt_subnode_offset(fdto, fragment, "__overlay__");
> +		if (ret < 0)
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		/* get the target of the fragment */
> +		ret =3D overlay_get_target(fdt, fdto, fragment, &target_path);
> +		if (ret < 0)
> +			return ret;
> +		target =3D ret;
> +
> +		/* if we have a target path use */
> +		if (!target_path) {
> +			ret =3D get_path_len(fdt, target);
> +			if (ret < 0)
> +				return ret;
> +			len =3D ret;
> +		} else {
> +			len =3D strlen(target_path);
> +		}
> +
> +		ret =3D fdt_setprop_placeholder(fdt, root_sym, name,
> +				len + (len > 1) + rel_path_len + 1, &p);
> +		if (ret < 0)
> +			return ret;
> +
> +		if (!target_path) {
> +			/* again in case setprop_placeholder changed it */
> +			ret =3D overlay_get_target(fdt, fdto, fragment, &target_path);
> +			if (ret < 0)
> +				return ret;
> +			target =3D ret;
> +		}
> +
> +		buf =3D p;
> +		if (len > 1) { /* target is not root */
> +			if (!target_path) {
> +				ret =3D fdt_get_path(fdt, target, buf, len + 1);
> +				if (ret < 0)
> +					return ret;
> +			} else
> +				memcpy(buf, target_path, len + 1);
> +
> +		} else
> +			len--;
> +
> +		buf[len] =3D '/';
> +		memcpy(buf + len + 1, rel_path, rel_path_len);
> +		buf[len + 1 + rel_path_len] =3D '\0';
> +	}
> +
> +	return 0;
> +}
> +
> +int fdt_overlay_apply(void *fdt, void *fdto)
> +{
> +	uint32_t delta;
> +	int ret;
> +
> +	FDT_RO_PROBE(fdt);
> +	FDT_RO_PROBE(fdto);
> +
> +	ret =3D fdt_find_max_phandle(fdt, &delta);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_adjust_local_phandles(fdto, delta);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_update_local_references(fdto, delta);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_fixup_phandles(fdt, fdto);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_merge(fdt, fdto);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_symbol_update(fdt, fdto);
> +	if (ret)
> +		goto err;
> +
> +	/*
> +	 * The overlay has been damaged, erase its magic.
> +	 */
> +	fdt_set_magic(fdto, ~0);
> +
> +	return 0;
> +
> +err:
> +	/*
> +	 * The overlay might have been damaged, erase its magic.
> +	 */
> +	fdt_set_magic(fdto, ~0);
> +
> +	/*
> +	 * The base device tree might have been damaged, erase its
> +	 * magic.
> +	 */
> +	fdt_set_magic(fdt, ~0);
> +
> +	return ret;
> +}
> diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
> index 36f9b48..17584da 100644
> --- a/xen/common/libfdt/fdt_ro.c
> +++ b/xen/common/libfdt/fdt_ro.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,12 +10,13 @@
>=20
> #include "libfdt_internal.h"
>=20
> -static int _fdt_nodename_eq(const void *fdt, int offset,
> +static int fdt_nodename_eq_(const void *fdt, int offset,
> 			    const char *s, int len)
> {
> -	const char *p =3D fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);
> +	int olen;
> +	const char *p =3D fdt_get_name(fdt, offset, &olen);
>=20
> -	if (! p)
> +	if (!p || olen < len)
> 		/* short match */
> 		return 0;
>=20
> @@ -73,37 +31,174 @@ static int _fdt_nodename_eq(const void *fdt, int off=
set,
> 		return 0;
> }
>=20
> +const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
> +{
> +	int32_t totalsize;
> +	uint32_t absoffset;
> +	size_t len;
> +	int err;
> +	const char *s, *n;
> +
> +	if (can_assume(VALID_INPUT)) {
> +		s =3D (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
> +
> +		if (lenp)
> +			*lenp =3D strlen(s);
> +		return s;
> +	}
> +	totalsize =3D fdt_ro_probe_(fdt);
> +	err =3D totalsize;
> +	if (totalsize < 0)
> +		goto fail;
> +
> +	err =3D -FDT_ERR_BADOFFSET;
> +	absoffset =3D stroffset + fdt_off_dt_strings(fdt);
> +	if (absoffset >=3D (unsigned)totalsize)
> +		goto fail;
> +	len =3D totalsize - absoffset;
> +
> +	if (fdt_magic(fdt) =3D=3D FDT_MAGIC) {
> +		if (stroffset < 0)
> +			goto fail;
> +		if (can_assume(LATEST) || fdt_version(fdt) >=3D 17) {
> +			if ((unsigned)stroffset >=3D fdt_size_dt_strings(fdt))
> +				goto fail;
> +			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
> +				len =3D fdt_size_dt_strings(fdt) - stroffset;
> +		}
> +	} else if (fdt_magic(fdt) =3D=3D FDT_SW_MAGIC) {
> +		unsigned int sw_stroffset =3D -stroffset;
> +
> +		if ((stroffset >=3D 0) ||
> +		    (sw_stroffset > fdt_size_dt_strings(fdt)))
> +			goto fail;
> +		if (sw_stroffset < len)
> +			len =3D sw_stroffset;
> +	} else {
> +		err =3D -FDT_ERR_INTERNAL;
> +		goto fail;
> +	}
> +
> +	s =3D (const char *)fdt + absoffset;
> +	n =3D memchr(s, '\0', len);
> +	if (!n) {
> +		/* missing terminating NULL */
> +		err =3D -FDT_ERR_TRUNCATED;
> +		goto fail;
> +	}
> +
> +	if (lenp)
> +		*lenp =3D n - s;
> +	return s;
> +
> +fail:
> +	if (lenp)
> +		*lenp =3D err;
> +	return NULL;
> +}
> +
> const char *fdt_string(const void *fdt, int stroffset)
> {
> -	return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
> +	return fdt_get_string(fdt, stroffset, NULL);
> }
>=20
> -static int _fdt_string_eq(const void *fdt, int stroffset,
> +static int fdt_string_eq_(const void *fdt, int stroffset,
> 			  const char *s, int len)
> {
> -	const char *p =3D fdt_string(fdt, stroffset);
> +	int slen;
> +	const char *p =3D fdt_get_string(fdt, stroffset, &slen);
> +
> +	return p && (slen =3D=3D len) && (memcmp(p, s, len) =3D=3D 0);
> +}
> +
> +int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
> +{
> +	uint32_t max =3D 0;
> +	int offset =3D -1;
> +
> +	while (true) {
> +		uint32_t value;
> +
> +		offset =3D fdt_next_node(fdt, offset, NULL);
> +		if (offset < 0) {
> +			if (offset =3D=3D -FDT_ERR_NOTFOUND)
> +				break;
> +
> +			return offset;
> +		}
> +
> +		value =3D fdt_get_phandle(fdt, offset);
> +
> +		if (value > max)
> +			max =3D value;
> +	}
> +
> +	if (phandle)
> +		*phandle =3D max;
> +
> +	return 0;
> +}
> +
> +int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
> +{
> +	uint32_t max;
> +	int err;
> +
> +	err =3D fdt_find_max_phandle(fdt, &max);
> +	if (err < 0)
> +		return err;
> +
> +	if (max =3D=3D FDT_MAX_PHANDLE)
> +		return -FDT_ERR_NOPHANDLES;
> +
> +	if (phandle)
> +		*phandle =3D max + 1;
> +
> +	return 0;
> +}
>=20
> -	return (strlen(p) =3D=3D len) && (memcmp(p, s, len) =3D=3D 0);
> +static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int =
n)
> +{
> +	unsigned int offset =3D n * sizeof(struct fdt_reserve_entry);
> +	unsigned int absoffset =3D fdt_off_mem_rsvmap(fdt) + offset;
> +
> +	if (!can_assume(VALID_INPUT)) {
> +		if (absoffset < fdt_off_mem_rsvmap(fdt))
> +			return NULL;
> +		if (absoffset > fdt_totalsize(fdt) -
> +		    sizeof(struct fdt_reserve_entry))
> +			return NULL;
> +	}
> +	return fdt_mem_rsv_(fdt, n);
> }
>=20
> int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *=
size)
> {
> -	FDT_CHECK_HEADER(fdt);
> -	*address =3D fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address);
> -	*size =3D fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size);
> +	const struct fdt_reserve_entry *re;
> +
> +	FDT_RO_PROBE(fdt);
> +	re =3D fdt_mem_rsv(fdt, n);
> +	if (!can_assume(VALID_INPUT) && !re)
> +		return -FDT_ERR_BADOFFSET;
> +
> +	*address =3D fdt64_ld_(&re->address);
> +	*size =3D fdt64_ld_(&re->size);
> 	return 0;
> }
>=20
> int fdt_num_mem_rsv(const void *fdt)
> {
> -	int i =3D 0;
> +	int i;
> +	const struct fdt_reserve_entry *re;
>=20
> -	while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) !=3D 0)
> -		i++;
> -	return i;
> +	for (i =3D 0; (re =3D fdt_mem_rsv(fdt, i)) !=3D NULL; i++) {
> +		if (fdt64_ld_(&re->size) =3D=3D 0)
> +			return i;
> +	}
> +	return -FDT_ERR_TRUNCATED;
> }
>=20
> -static int _nextprop(const void *fdt, int offset)
> +static int nextprop_(const void *fdt, int offset)
> {
> 	uint32_t tag;
> 	int nextoffset;
> @@ -132,13 +227,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int=
 offset,
> {
> 	int depth;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	for (depth =3D 0;
> 	     (offset >=3D 0) && (depth >=3D 0);
> 	     offset =3D fdt_next_node(fdt, offset, &depth))
> 		if ((depth =3D=3D 1)
> -		    && _fdt_nodename_eq(fdt, offset, name, namelen))
> +		    && fdt_nodename_eq_(fdt, offset, name, namelen))
> 			return offset;
>=20
> 	if (depth < 0)
> @@ -152,17 +247,17 @@ int fdt_subnode_offset(const void *fdt, int parento=
ffset,
> 	return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name))=
;
> }
>=20
> -int fdt_path_offset(const void *fdt, const char *path)
> +int fdt_path_offset_namelen(const void *fdt, const char *path, int namel=
en)
> {
> -	const char *end =3D path + strlen(path);
> +	const char *end =3D path + namelen;
> 	const char *p =3D path;
> 	int offset =3D 0;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	/* see if we have an alias */
> 	if (*path !=3D '/') {
> -		const char *q =3D strchr(path, '/');
> +		const char *q =3D memchr(path, '/', end - p);
>=20
> 		if (!q)
> 			q =3D end;
> @@ -175,14 +270,15 @@ int fdt_path_offset(const void *fdt, const char *pa=
th)
> 		p =3D q;
> 	}
>=20
> -	while (*p) {
> +	while (p < end) {
> 		const char *q;
>=20
> -		while (*p =3D=3D '/')
> +		while (*p =3D=3D '/') {
> 			p++;
> -		if (! *p)
> -			return offset;
> -		q =3D strchr(p, '/');
> +			if (p =3D=3D end)
> +				return offset;
> +		}
> +		q =3D memchr(p, '/', end - p);
> 		if (! q)
> 			q =3D end;
>=20
> @@ -196,19 +292,42 @@ int fdt_path_offset(const void *fdt, const char *pa=
th)
> 	return offset;
> }
>=20
> +int fdt_path_offset(const void *fdt, const char *path)
> +{
> +	return fdt_path_offset_namelen(fdt, path, strlen(path));
> +}
> +
> const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
> {
> -	const struct fdt_node_header *nh =3D _fdt_offset_ptr(fdt, nodeoffset);
> +	const struct fdt_node_header *nh =3D fdt_offset_ptr_(fdt, nodeoffset);
> +	const char *nameptr;
> 	int err;
>=20
> -	if (((err =3D fdt_check_header(fdt)) !=3D 0)
> -	    || ((err =3D _fdt_check_node_offset(fdt, nodeoffset)) < 0))
> +	if (((err =3D fdt_ro_probe_(fdt)) < 0)
> +	    || ((err =3D fdt_check_node_offset_(fdt, nodeoffset)) < 0))
> +			goto fail;
> +
> +	nameptr =3D nh->name;
> +
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> +		/*
> +		 * For old FDT versions, match the naming conventions of V16:
> +		 * give only the leaf name (after all /). The actual tree
> +		 * contents are loosely checked.
> +		 */
> +		const char *leaf;
> +		leaf =3D strrchr(nameptr, '/');
> +		if (leaf =3D=3D NULL) {
> +			err =3D -FDT_ERR_BADSTRUCTURE;
> 			goto fail;
> +		}
> +		nameptr =3D leaf+1;
> +	}
>=20
> 	if (len)
> -		*len =3D strlen(nh->name);
> +		*len =3D strlen(nameptr);
>=20
> -	return nh->name;
> +	return nameptr;
>=20
>  fail:
> 	if (len)
> @@ -220,58 +339,81 @@ int fdt_first_property_offset(const void *fdt, int =
nodeoffset)
> {
> 	int offset;
>=20
> -	if ((offset =3D _fdt_check_node_offset(fdt, nodeoffset)) < 0)
> +	if ((offset =3D fdt_check_node_offset_(fdt, nodeoffset)) < 0)
> 		return offset;
>=20
> -	return _nextprop(fdt, offset);
> +	return nextprop_(fdt, offset);
> }
>=20
> int fdt_next_property_offset(const void *fdt, int offset)
> {
> -	if ((offset =3D _fdt_check_prop_offset(fdt, offset)) < 0)
> +	if ((offset =3D fdt_check_prop_offset_(fdt, offset)) < 0)
> 		return offset;
>=20
> -	return _nextprop(fdt, offset);
> +	return nextprop_(fdt, offset);
> }
>=20
> -const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> -						      int offset,
> -						      int *lenp)
> +static const struct fdt_property *fdt_get_property_by_offset_(const void=
 *fdt,
> +						              int offset,
> +						              int *lenp)
> {
> 	int err;
> 	const struct fdt_property *prop;
>=20
> -	if ((err =3D _fdt_check_prop_offset(fdt, offset)) < 0) {
> +	if (!can_assume(VALID_INPUT) &&
> +	    (err =3D fdt_check_prop_offset_(fdt, offset)) < 0) {
> 		if (lenp)
> 			*lenp =3D err;
> 		return NULL;
> 	}
>=20
> -	prop =3D _fdt_offset_ptr(fdt, offset);
> +	prop =3D fdt_offset_ptr_(fdt, offset);
>=20
> 	if (lenp)
> -		*lenp =3D fdt32_to_cpu(prop->len);
> +		*lenp =3D fdt32_ld_(&prop->len);
>=20
> 	return prop;
> }
>=20
> -const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> -						    int offset,
> -						    const char *name,
> -						    int namelen, int *lenp)
> +const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> +						      int offset,
> +						      int *lenp)
> +{
> +	/* Prior to version 16, properties may need realignment
> +	 * and this API does not work. fdt_getprop_*() will, however. */
> +
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> +		if (lenp)
> +			*lenp =3D -FDT_ERR_BADVERSION;
> +		return NULL;
> +	}
> +
> +	return fdt_get_property_by_offset_(fdt, offset, lenp);
> +}
> +
> +static const struct fdt_property *fdt_get_property_namelen_(const void *=
fdt,
> +						            int offset,
> +						            const char *name,
> +						            int namelen,
> +							    int *lenp,
> +							    int *poffset)
> {
> 	for (offset =3D fdt_first_property_offset(fdt, offset);
> 	     (offset >=3D 0);
> 	     (offset =3D fdt_next_property_offset(fdt, offset))) {
> 		const struct fdt_property *prop;
>=20
> -		if (!(prop =3D fdt_get_property_by_offset(fdt, offset, lenp))) {
> +		prop =3D fdt_get_property_by_offset_(fdt, offset, lenp);
> +		if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
> 			offset =3D -FDT_ERR_INTERNAL;
> 			break;
> 		}
> -		if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff),
> -				   name, namelen))
> +		if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
> +				   name, namelen)) {
> +			if (poffset)
> +				*poffset =3D offset;
> 			return prop;
> +		}
> 	}
>=20
> 	if (lenp)
> @@ -279,6 +421,25 @@ const struct fdt_property *fdt_get_property_namelen(=
const void *fdt,
> 	return NULL;
> }
>=20
> +
> +const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> +						    int offset,
> +						    const char *name,
> +						    int namelen, int *lenp)
> +{
> +	/* Prior to version 16, properties may need realignment
> +	 * and this API does not work. fdt_getprop_*() will, however. */
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> +		if (lenp)
> +			*lenp =3D -FDT_ERR_BADVERSION;
> +		return NULL;
> +	}
> +
> +	return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
> +					 NULL);
> +}
> +
> +
> const struct fdt_property *fdt_get_property(const void *fdt,
> 					    int nodeoffset,
> 					    const char *name, int *lenp)
> @@ -290,12 +451,18 @@ const struct fdt_property *fdt_get_property(const v=
oid *fdt,
> const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> 				const char *name, int namelen, int *lenp)
> {
> +	int poffset;
> 	const struct fdt_property *prop;
>=20
> -	prop =3D fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp)=
;
> -	if (! prop)
> +	prop =3D fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp=
,
> +					 &poffset);
> +	if (!prop)
> 		return NULL;
>=20
> +	/* Handle realignment */
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
> +	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >=3D 8)
> +		return prop->data + 4;
> 	return prop->data;
> }
>=20
> @@ -304,11 +471,31 @@ const void *fdt_getprop_by_offset(const void *fdt, =
int offset,
> {
> 	const struct fdt_property *prop;
>=20
> -	prop =3D fdt_get_property_by_offset(fdt, offset, lenp);
> +	prop =3D fdt_get_property_by_offset_(fdt, offset, lenp);
> 	if (!prop)
> 		return NULL;
> -	if (namep)
> -		*namep =3D fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
> +	if (namep) {
> +		const char *name;
> +		int namelen;
> +
> +		if (!can_assume(VALID_INPUT)) {
> +			name =3D fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
> +					      &namelen);
> +			if (!name) {
> +				if (lenp)
> +					*lenp =3D namelen;
> +				return NULL;
> +			}
> +			*namep =3D name;
> +		} else {
> +			*namep =3D fdt_string(fdt, fdt32_ld_(&prop->nameoff));
> +		}
> +	}
> +
> +	/* Handle realignment */
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
> +	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >=3D 8)
> +		return prop->data + 4;
> 	return prop->data;
> }
>=20
> @@ -332,7 +519,7 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoff=
set)
> 			return 0;
> 	}
>=20
> -	return fdt32_to_cpu(*php);
> +	return fdt32_ld_(php);
> }
>=20
> const char *fdt_get_alias_namelen(const void *fdt,
> @@ -358,7 +545,7 @@ int fdt_get_path(const void *fdt, int nodeoffset, cha=
r *buf, int buflen)
> 	int offset, depth, namelen;
> 	const char *name;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	if (buflen < 2)
> 		return -FDT_ERR_NOSPACE;
> @@ -410,7 +597,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int=
 nodeoffset,
> 	int offset, depth;
> 	int supernodeoffset =3D -FDT_ERR_INTERNAL;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	if (supernodedepth < 0)
> 		return -FDT_ERR_NOTFOUND;
> @@ -432,10 +619,12 @@ int fdt_supernode_atdepth_offset(const void *fdt, i=
nt nodeoffset,
> 		}
> 	}
>=20
> -	if ((offset =3D=3D -FDT_ERR_NOTFOUND) || (offset >=3D 0))
> -		return -FDT_ERR_BADOFFSET;
> -	else if (offset =3D=3D -FDT_ERR_BADOFFSET)
> -		return -FDT_ERR_BADSTRUCTURE;
> +	if (!can_assume(VALID_INPUT)) {
> +		if ((offset =3D=3D -FDT_ERR_NOTFOUND) || (offset >=3D 0))
> +			return -FDT_ERR_BADOFFSET;
> +		else if (offset =3D=3D -FDT_ERR_BADOFFSET)
> +			return -FDT_ERR_BADSTRUCTURE;
> +	}
>=20
> 	return offset; /* error from fdt_next_node() */
> }
> @@ -447,7 +636,8 @@ int fdt_node_depth(const void *fdt, int nodeoffset)
>=20
> 	err =3D fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
> 	if (err)
> -		return (err < 0) ? err : -FDT_ERR_INTERNAL;
> +		return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
> +			-FDT_ERR_INTERNAL;
> 	return nodedepth;
> }
>=20
> @@ -469,7 +659,7 @@ int fdt_node_offset_by_prop_value(const void *fdt, in=
t startoffset,
> 	const void *val;
> 	int len;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	/* FIXME: The algorithm here is pretty horrible: we scan each
> 	 * property of a node in fdt_getprop(), then if that didn't
> @@ -492,10 +682,10 @@ int fdt_node_offset_by_phandle(const void *fdt, uin=
t32_t phandle)
> {
> 	int offset;
>=20
> -	if ((phandle =3D=3D 0) || (phandle =3D=3D -1))
> +	if ((phandle =3D=3D 0) || (phandle =3D=3D ~0U))
> 		return -FDT_ERR_BADPHANDLE;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	/* FIXME: The algorithm here is pretty horrible: we
> 	 * potentially scan each property of a node in
> @@ -530,6 +720,106 @@ int fdt_stringlist_contains(const char *strlist, in=
t listlen, const char *str)
> 	return 0;
> }
>=20
> +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *pr=
operty)
> +{
> +	const char *list, *end;
> +	int length, count =3D 0;
> +
> +	list =3D fdt_getprop(fdt, nodeoffset, property, &length);
> +	if (!list)
> +		return length;
> +
> +	end =3D list + length;
> +
> +	while (list < end) {
> +		length =3D strnlen(list, end - list) + 1;
> +
> +		/* Abort if the last string isn't properly NUL-terminated. */
> +		if (list + length > end)
> +			return -FDT_ERR_BADVALUE;
> +
> +		list +=3D length;
> +		count++;
> +	}
> +
> +	return count;
> +}
> +
> +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *p=
roperty,
> +			  const char *string)
> +{
> +	int length, len, idx =3D 0;
> +	const char *list, *end;
> +
> +	list =3D fdt_getprop(fdt, nodeoffset, property, &length);
> +	if (!list)
> +		return length;
> +
> +	len =3D strlen(string) + 1;
> +	end =3D list + length;
> +
> +	while (list < end) {
> +		length =3D strnlen(list, end - list) + 1;
> +
> +		/* Abort if the last string isn't properly NUL-terminated. */
> +		if (list + length > end)
> +			return -FDT_ERR_BADVALUE;
> +
> +		if (length =3D=3D len && memcmp(list, string, length) =3D=3D 0)
> +			return idx;
> +
> +		list +=3D length;
> +		idx++;
> +	}
> +
> +	return -FDT_ERR_NOTFOUND;
> +}
> +
> +const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
> +			       const char *property, int idx,
> +			       int *lenp)
> +{
> +	const char *list, *end;
> +	int length;
> +
> +	list =3D fdt_getprop(fdt, nodeoffset, property, &length);
> +	if (!list) {
> +		if (lenp)
> +			*lenp =3D length;
> +
> +		return NULL;
> +	}
> +
> +	end =3D list + length;
> +
> +	while (list < end) {
> +		length =3D strnlen(list, end - list) + 1;
> +
> +		/* Abort if the last string isn't properly NUL-terminated. */
> +		if (list + length > end) {
> +			if (lenp)
> +				*lenp =3D -FDT_ERR_BADVALUE;
> +
> +			return NULL;
> +		}
> +
> +		if (idx =3D=3D 0) {
> +			if (lenp)
> +				*lenp =3D length - 1;
> +
> +			return list;
> +		}
> +
> +		list +=3D length;
> +		idx--;
> +	}
> +
> +	if (lenp)
> +		*lenp =3D -FDT_ERR_NOTFOUND;
> +
> +	return NULL;
> +}
> +
> int fdt_node_check_compatible(const void *fdt, int nodeoffset,
> 			      const char *compatible)
> {
> @@ -539,10 +829,8 @@ int fdt_node_check_compatible(const void *fdt, int n=
odeoffset,
> 	prop =3D fdt_getprop(fdt, nodeoffset, "compatible", &len);
> 	if (!prop)
> 		return len;
> -	if (fdt_stringlist_contains(prop, len, compatible))
> -		return 0;
> -	else
> -		return 1;
> +
> +	return !fdt_stringlist_contains(prop, len, compatible);
> }
>=20
> int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
> @@ -550,7 +838,7 @@ int fdt_node_offset_by_compatible(const void *fdt, in=
t startoffset,
> {
> 	int offset, err;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	/* FIXME: The algorithm here is pretty horrible: we scan each
> 	 * property of a node in fdt_node_check_compatible(), then if
> diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
> index 8b8cd25..3621d36 100644
> --- a/xen/common/libfdt/fdt_rw.c
> +++ b/xen/common/libfdt/fdt_rw.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,8 +10,8 @@
>=20
> #include "libfdt_internal.h"
>=20
> -static int _fdt_blocks_misordered(const void *fdt,
> -			      int mem_rsv_size, int struct_size)
> +static int fdt_blocks_misordered_(const void *fdt,
> +				  int mem_rsv_size, int struct_size)
> {
> 	return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8=
))
> 		|| (fdt_off_dt_struct(fdt) <
> @@ -65,40 +22,44 @@ static int _fdt_blocks_misordered(const void *fdt,
> 		    (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
> }
>=20
> -static int _fdt_rw_check_header(void *fdt)
> +static int fdt_rw_probe_(void *fdt)
> {
> -	FDT_CHECK_HEADER(fdt);
> +	if (can_assume(VALID_DTB))
> +		return 0;
> +	FDT_RO_PROBE(fdt);
>=20
> -	if (fdt_version(fdt) < 17)
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
> 		return -FDT_ERR_BADVERSION;
> -	if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
> +	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
> 				   fdt_size_dt_struct(fdt)))
> 		return -FDT_ERR_BADLAYOUT;
> -	if (fdt_version(fdt) > 17)
> +	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
> 		fdt_set_version(fdt, 17);
>=20
> 	return 0;
> }
>=20
> -#define FDT_RW_CHECK_HEADER(fdt) \
> +#define FDT_RW_PROBE(fdt) \
> 	{ \
> -		int err; \
> -		if ((err =3D _fdt_rw_check_header(fdt)) !=3D 0) \
> -			return err; \
> +		int err_; \
> +		if ((err_ =3D fdt_rw_probe_(fdt)) !=3D 0) \
> +			return err_; \
> 	}
>=20
> -static inline unsigned int _fdt_data_size(void *fdt)
> +static inline unsigned int fdt_data_size_(void *fdt)
> {
> 	return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
> }
>=20
> -static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int new=
len)
> +static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int new=
len)
> {
> 	char *p =3D splicepoint;
> -	unsigned int dsize =3D _fdt_data_size(fdt);
> +	unsigned int dsize =3D fdt_data_size_(fdt);
> 	size_t soff =3D p - (char *)fdt;
>=20
> -	if (oldlen < 0 || soff + oldlen < soff || soff + oldlen > dsize)
> +	if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
> +		return -FDT_ERR_BADOFFSET;
> +	if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
> 		return -FDT_ERR_BADOFFSET;
> 	if (dsize - oldlen + newlen > fdt_totalsize(fdt))
> 		return -FDT_ERR_NOSPACE;
> @@ -106,12 +67,12 @@ static int _fdt_splice(void *fdt, void *splicepoint,=
 int oldlen, int newlen)
> 	return 0;
> }
>=20
> -static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
> +static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
> 			       int oldn, int newn)
> {
> 	int delta =3D (newn - oldn) * sizeof(*p);
> 	int err;
> -	err =3D _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
> +	err =3D fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
> 	if (err)
> 		return err;
> 	fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
> @@ -119,13 +80,13 @@ static int _fdt_splice_mem_rsv(void *fdt, struct fdt=
_reserve_entry *p,
> 	return 0;
> }
>=20
> -static int _fdt_splice_struct(void *fdt, void *p,
> +static int fdt_splice_struct_(void *fdt, void *p,
> 			      int oldlen, int newlen)
> {
> 	int delta =3D newlen - oldlen;
> 	int err;
>=20
> -	if ((err =3D _fdt_splice(fdt, p, oldlen, newlen)))
> +	if ((err =3D fdt_splice_(fdt, p, oldlen, newlen)))
> 		return err;
>=20
> 	fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
> @@ -133,20 +94,37 @@ static int _fdt_splice_struct(void *fdt, void *p,
> 	return 0;
> }
>=20
> -static int _fdt_splice_string(void *fdt, int newlen)
> +/* Must only be used to roll back in case of error */
> +static void fdt_del_last_string_(void *fdt, const char *s)
> +{
> +	int newlen =3D strlen(s) + 1;
> +
> +	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
> +}
> +
> +static int fdt_splice_string_(void *fdt, int newlen)
> {
> 	void *p =3D (char *)fdt
> 		+ fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
> 	int err;
>=20
> -	if ((err =3D _fdt_splice(fdt, p, 0, newlen)))
> +	if ((err =3D fdt_splice_(fdt, p, 0, newlen)))
> 		return err;
>=20
> 	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
> 	return 0;
> }
>=20
> -static int _fdt_find_add_string(void *fdt, const char *s)
> +/**
> + * fdt_find_add_string_() - Find or allocate a string
> + *
> + * @fdt: pointer to the device tree to check/adjust
> + * @s: string to find/add
> + * @allocated: Set to 0 if the string was found, 1 if not found and so
> + *	allocated. Ignored if can_assume(NO_ROLLBACK)
> + * @return offset of string in the string table (whether found or added)
> + */
> +static int fdt_find_add_string_(void *fdt, const char *s, int *allocated=
)
> {
> 	char *strtab =3D (char *)fdt + fdt_off_dt_strings(fdt);
> 	const char *p;
> @@ -154,16 +132,22 @@ static int _fdt_find_add_string(void *fdt, const ch=
ar *s)
> 	int len =3D strlen(s) + 1;
> 	int err;
>=20
> -	p =3D _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s);
> +	if (!can_assume(NO_ROLLBACK))
> +		*allocated =3D 0;
> +
> +	p =3D fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
> 	if (p)
> 		/* found it */
> 		return (p - strtab);
>=20
> 	new =3D strtab + fdt_size_dt_strings(fdt);
> -	err =3D _fdt_splice_string(fdt, len);
> +	err =3D fdt_splice_string_(fdt, len);
> 	if (err)
> 		return err;
>=20
> +	if (!can_assume(NO_ROLLBACK))
> +		*allocated =3D 1;
> +
> 	memcpy(new, s, len);
> 	return (new - strtab);
> }
> @@ -173,10 +157,10 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, ui=
nt64_t size)
> 	struct fdt_reserve_entry *re;
> 	int err;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> -	re =3D _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt));
> -	err =3D _fdt_splice_mem_rsv(fdt, re, 0, 1);
> +	re =3D fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
> +	err =3D fdt_splice_mem_rsv_(fdt, re, 0, 1);
> 	if (err)
> 		return err;
>=20
> @@ -187,31 +171,27 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, ui=
nt64_t size)
>=20
> int fdt_del_mem_rsv(void *fdt, int n)
> {
> -	struct fdt_reserve_entry *re =3D _fdt_mem_rsv_w(fdt, n);
> -	int err;
> +	struct fdt_reserve_entry *re =3D fdt_mem_rsv_w_(fdt, n);
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	if (n >=3D fdt_num_mem_rsv(fdt))
> 		return -FDT_ERR_NOTFOUND;
>=20
> -	err =3D _fdt_splice_mem_rsv(fdt, re, 1, 0);
> -	if (err)
> -		return err;
> -	return 0;
> +	return fdt_splice_mem_rsv_(fdt, re, 1, 0);
> }
>=20
> -static int _fdt_resize_property(void *fdt, int nodeoffset, const char *n=
ame,
> +static int fdt_resize_property_(void *fdt, int nodeoffset, const char *n=
ame,
> 				int len, struct fdt_property **prop)
> {
> 	int oldlen;
> 	int err;
>=20
> 	*prop =3D fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
> -	if (! (*prop))
> +	if (!*prop)
> 		return oldlen;
>=20
> -	if ((err =3D _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen=
),
> +	if ((err =3D fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen=
),
> 				      FDT_TAGALIGN(len))))
> 		return err;
>=20
> @@ -219,27 +199,32 @@ static int _fdt_resize_property(void *fdt, int node=
offset, const char *name,
> 	return 0;
> }
>=20
> -static int _fdt_add_property(void *fdt, int nodeoffset, const char *name=
,
> +static int fdt_add_property_(void *fdt, int nodeoffset, const char *name=
,
> 			     int len, struct fdt_property **prop)
> {
> 	int proplen;
> 	int nextoffset;
> 	int namestroff;
> 	int err;
> +	int allocated;
>=20
> -	if ((nextoffset =3D _fdt_check_node_offset(fdt, nodeoffset)) < 0)
> +	if ((nextoffset =3D fdt_check_node_offset_(fdt, nodeoffset)) < 0)
> 		return nextoffset;
>=20
> -	namestroff =3D _fdt_find_add_string(fdt, name);
> +	namestroff =3D fdt_find_add_string_(fdt, name, &allocated);
> 	if (namestroff < 0)
> 		return namestroff;
>=20
> -	*prop =3D _fdt_offset_ptr_w(fdt, nextoffset);
> +	*prop =3D fdt_offset_ptr_w_(fdt, nextoffset);
> 	proplen =3D sizeof(**prop) + FDT_TAGALIGN(len);
>=20
> -	err =3D _fdt_splice_struct(fdt, *prop, 0, proplen);
> -	if (err)
> +	err =3D fdt_splice_struct_(fdt, *prop, 0, proplen);
> +	if (err) {
> +		/* Delete the string if we failed to add it */
> +		if (!can_assume(NO_ROLLBACK) && allocated)
> +			fdt_del_last_string_(fdt, name);
> 		return err;
> +	}
>=20
> 	(*prop)->tag =3D cpu_to_fdt32(FDT_PROP);
> 	(*prop)->nameoff =3D cpu_to_fdt32(namestroff);
> @@ -253,7 +238,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const cha=
r *name)
> 	int oldlen, newlen;
> 	int err;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	namep =3D (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
> 	if (!namep)
> @@ -261,7 +246,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const cha=
r *name)
>=20
> 	newlen =3D strlen(name);
>=20
> -	err =3D _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1),
> +	err =3D fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
> 				 FDT_TAGALIGN(newlen+1));
> 	if (err)
> 		return err;
> @@ -270,21 +255,36 @@ int fdt_set_name(void *fdt, int nodeoffset, const c=
har *name)
> 	return 0;
> }
>=20
> -int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> -		const void *val, int len)
> +int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
> +			    int len, void **prop_data)
> {
> 	struct fdt_property *prop;
> 	int err;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> -	err =3D _fdt_resize_property(fdt, nodeoffset, name, len, &prop);
> +	err =3D fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
> 	if (err =3D=3D -FDT_ERR_NOTFOUND)
> -		err =3D _fdt_add_property(fdt, nodeoffset, name, len, &prop);
> +		err =3D fdt_add_property_(fdt, nodeoffset, name, len, &prop);
> +	if (err)
> +		return err;
> +
> +	*prop_data =3D prop->data;
> +	return 0;
> +}
> +
> +int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> +		const void *val, int len)
> +{
> +	void *prop_data;
> +	int err;
> +
> +	err =3D fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data)=
;
> 	if (err)
> 		return err;
>=20
> -	memcpy(prop->data, val, len);
> +	if (len)
> +		memcpy(prop_data, val, len);
> 	return 0;
> }
>=20
> @@ -294,12 +294,12 @@ int fdt_appendprop(void *fdt, int nodeoffset, const=
 char *name,
> 	struct fdt_property *prop;
> 	int err, oldlen, newlen;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	prop =3D fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
> 	if (prop) {
> 		newlen =3D len + oldlen;
> -		err =3D _fdt_splice_struct(fdt, prop->data,
> +		err =3D fdt_splice_struct_(fdt, prop->data,
> 					 FDT_TAGALIGN(oldlen),
> 					 FDT_TAGALIGN(newlen));
> 		if (err)
> @@ -307,7 +307,7 @@ int fdt_appendprop(void *fdt, int nodeoffset, const c=
har *name,
> 		prop->len =3D cpu_to_fdt32(newlen);
> 		memcpy(prop->data + oldlen, val, len);
> 	} else {
> -		err =3D _fdt_add_property(fdt, nodeoffset, name, len, &prop);
> +		err =3D fdt_add_property_(fdt, nodeoffset, name, len, &prop);
> 		if (err)
> 			return err;
> 		memcpy(prop->data, val, len);
> @@ -320,14 +320,14 @@ int fdt_delprop(void *fdt, int nodeoffset, const ch=
ar *name)
> 	struct fdt_property *prop;
> 	int len, proplen;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	prop =3D fdt_get_property_w(fdt, nodeoffset, name, &len);
> -	if (! prop)
> +	if (!prop)
> 		return len;
>=20
> 	proplen =3D sizeof(*prop) + FDT_TAGALIGN(len);
> -	return _fdt_splice_struct(fdt, prop, proplen, 0);
> +	return fdt_splice_struct_(fdt, prop, proplen, 0);
> }
>=20
> int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> @@ -340,7 +340,7 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffs=
et,
> 	uint32_t tag;
> 	fdt32_t *endtag;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	offset =3D fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
> 	if (offset >=3D 0)
> @@ -349,16 +349,19 @@ int fdt_add_subnode_namelen(void *fdt, int parentof=
fset,
> 		return offset;
>=20
> 	/* Try to place the new node after the parent's properties */
> -	fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
> +	tag =3D fdt_next_tag(fdt, parentoffset, &nextoffset);
> +	/* the fdt_subnode_offset_namelen() should ensure this never hits */
> +	if (!can_assume(LIBFDT_FLAWLESS) && (tag !=3D FDT_BEGIN_NODE))
> +		return -FDT_ERR_INTERNAL;
> 	do {
> 		offset =3D nextoffset;
> 		tag =3D fdt_next_tag(fdt, offset, &nextoffset);
> 	} while ((tag =3D=3D FDT_PROP) || (tag =3D=3D FDT_NOP));
>=20
> -	nh =3D _fdt_offset_ptr_w(fdt, offset);
> +	nh =3D fdt_offset_ptr_w_(fdt, offset);
> 	nodelen =3D sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
>=20
> -	err =3D _fdt_splice_struct(fdt, nh, 0, nodelen);
> +	err =3D fdt_splice_struct_(fdt, nh, 0, nodelen);
> 	if (err)
> 		return err;
>=20
> @@ -380,18 +383,20 @@ int fdt_del_node(void *fdt, int nodeoffset)
> {
> 	int endoffset;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> -	endoffset =3D _fdt_node_end_offset(fdt, nodeoffset);
> +	endoffset =3D fdt_node_end_offset_(fdt, nodeoffset);
> 	if (endoffset < 0)
> 		return endoffset;
>=20
> -	return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset),
> +	return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
> 				  endoffset - nodeoffset, 0);
> }
>=20
> -static void _fdt_packblocks(const char *old, char *new,
> -			    int mem_rsv_size, int struct_size)
> +static void fdt_packblocks_(const char *old, char *new,
> +			    int mem_rsv_size,
> +			    int struct_size,
> +			    int strings_size)
> {
> 	int mem_rsv_off, struct_off, strings_off;
>=20
> @@ -406,8 +411,7 @@ static void _fdt_packblocks(const char *old, char *ne=
w,
> 	fdt_set_off_dt_struct(new, struct_off);
> 	fdt_set_size_dt_struct(new, struct_size);
>=20
> -	memmove(new + strings_off, old + fdt_off_dt_strings(old),
> -		fdt_size_dt_strings(old));
> +	memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size)=
;
> 	fdt_set_off_dt_strings(new, strings_off);
> 	fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
> }
> @@ -421,22 +425,25 @@ int fdt_open_into(const void *fdt, void *buf, int b=
ufsize)
> 	const char *fdtend =3D fdtstart + fdt_totalsize(fdt);
> 	char *tmp;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	mem_rsv_size =3D (fdt_num_mem_rsv(fdt)+1)
> 		* sizeof(struct fdt_reserve_entry);
>=20
> -	if (fdt_version(fdt) >=3D 17) {
> +	if (can_assume(LATEST) || fdt_version(fdt) >=3D 17) {
> 		struct_size =3D fdt_size_dt_struct(fdt);
> -	} else {
> +	} else if (fdt_version(fdt) =3D=3D 16) {
> 		struct_size =3D 0;
> 		while (fdt_next_tag(fdt, struct_size, &struct_size) !=3D FDT_END)
> 			;
> 		if (struct_size < 0)
> 			return struct_size;
> +	} else {
> +		return -FDT_ERR_BADVERSION;
> 	}
>=20
> -	if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) {
> +	if (can_assume(LIBFDT_ORDER) ||
> +	    !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
> 		/* no further work necessary */
> 		err =3D fdt_move(fdt, buf, bufsize);
> 		if (err)
> @@ -464,7 +471,8 @@ int fdt_open_into(const void *fdt, void *buf, int buf=
size)
> 			return -FDT_ERR_NOSPACE;
> 	}
>=20
> -	_fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size);
> +	fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
> +			fdt_size_dt_strings(fdt));
> 	memmove(buf, tmp, newsize);
>=20
> 	fdt_set_magic(buf, FDT_MAGIC);
> @@ -480,12 +488,13 @@ int fdt_pack(void *fdt)
> {
> 	int mem_rsv_size;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	mem_rsv_size =3D (fdt_num_mem_rsv(fdt)+1)
> 		* sizeof(struct fdt_reserve_entry);
> -	_fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt));
> -	fdt_set_totalsize(fdt, _fdt_data_size(fdt));
> +	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
> +			fdt_size_dt_strings(fdt));
> +	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
>=20
> 	return 0;
> }
> diff --git a/xen/common/libfdt/fdt_strerror.c b/xen/common/libfdt/fdt_str=
error.c
> index 8d0289c..b435693 100644
> --- a/xen/common/libfdt/fdt_strerror.c
> +++ b/xen/common/libfdt/fdt_strerror.c
> @@ -1,49 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
>  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
> @@ -67,6 +25,7 @@ static struct fdt_errtabent fdt_errtable[] =3D {
>=20
> 	FDT_ERRTABENT(FDT_ERR_BADOFFSET),
> 	FDT_ERRTABENT(FDT_ERR_BADPATH),
> +	FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
> 	FDT_ERRTABENT(FDT_ERR_BADSTATE),
>=20
> 	FDT_ERRTABENT(FDT_ERR_TRUNCATED),
> @@ -74,8 +33,14 @@ static struct fdt_errtabent fdt_errtable[] =3D {
> 	FDT_ERRTABENT(FDT_ERR_BADVERSION),
> 	FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
> 	FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
> +	FDT_ERRTABENT(FDT_ERR_INTERNAL),
> +	FDT_ERRTABENT(FDT_ERR_BADNCELLS),
> +	FDT_ERRTABENT(FDT_ERR_BADVALUE),
> +	FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
> +	FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
> +	FDT_ERRTABENT(FDT_ERR_BADFLAGS),
> };
> -#define FDT_ERRTABSIZE	(sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
> +#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable=
[0])))
>=20
> const char *fdt_strerror(int errval)
> {
> @@ -83,7 +48,7 @@ const char *fdt_strerror(int errval)
> 		return "<valid offset/length>";
> 	else if (errval =3D=3D 0)
> 		return "<no error>";
> -	else if (errval > -FDT_ERRTABSIZE) {
> +	else if (-errval < FDT_ERRTABSIZE) {
> 		const char *s =3D fdt_errtable[-errval].str;
>=20
> 		if (s)
> diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
> index c7d93d3..4c569ee 100644
> --- a/xen/common/libfdt/fdt_sw.c
> +++ b/xen/common/libfdt/fdt_sw.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,25 +10,91 @@
>=20
> #include "libfdt_internal.h"
>=20
> -static int _fdt_sw_check_header(void *fdt)
> +static int fdt_sw_probe_(void *fdt)
> +{
> +	if (!can_assume(VALID_INPUT)) {
> +		if (fdt_magic(fdt) =3D=3D FDT_MAGIC)
> +			return -FDT_ERR_BADSTATE;
> +		else if (fdt_magic(fdt) !=3D FDT_SW_MAGIC)
> +			return -FDT_ERR_BADMAGIC;
> +	}
> +
> +	return 0;
> +}
> +
> +#define FDT_SW_PROBE(fdt) \
> +	{ \
> +		int err; \
> +		if ((err =3D fdt_sw_probe_(fdt)) !=3D 0) \
> +			return err; \
> +	}
> +
> +/* 'memrsv' state:	Initial state after fdt_create()
> + *
> + * Allowed functions:
> + *	fdt_add_reservemap_entry()
> + *	fdt_finish_reservemap()		[moves to 'struct' state]
> + */
> +static int fdt_sw_probe_memrsv_(void *fdt)
> +{
> +	int err =3D fdt_sw_probe_(fdt);
> +	if (err)
> +		return err;
> +
> +	if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) !=3D 0)
> +		return -FDT_ERR_BADSTATE;
> +	return 0;
> +}
> +
> +#define FDT_SW_PROBE_MEMRSV(fdt) \
> +	{ \
> +		int err; \
> +		if ((err =3D fdt_sw_probe_memrsv_(fdt)) !=3D 0) \
> +			return err; \
> +	}
> +
> +/* 'struct' state:	Enter this state after fdt_finish_reservemap()
> + *
> + * Allowed functions:
> + *	fdt_begin_node()
> + *	fdt_end_node()
> + *	fdt_property*()
> + *	fdt_finish()			[moves to 'complete' state]
> + */
> +static int fdt_sw_probe_struct_(void *fdt)
> {
> -	if (fdt_magic(fdt) !=3D FDT_SW_MAGIC)
> -		return -FDT_ERR_BADMAGIC;
> -	/* FIXME: should check more details about the header state */
> +	int err =3D fdt_sw_probe_(fdt);
> +	if (err)
> +		return err;
> +
> +	if (!can_assume(VALID_INPUT) &&
> +	    fdt_off_dt_strings(fdt) !=3D fdt_totalsize(fdt))
> +		return -FDT_ERR_BADSTATE;
> 	return 0;
> }
>=20
> -#define FDT_SW_CHECK_HEADER(fdt) \
> +#define FDT_SW_PROBE_STRUCT(fdt) \
> 	{ \
> 		int err; \
> -		if ((err =3D _fdt_sw_check_header(fdt)) !=3D 0) \
> +		if ((err =3D fdt_sw_probe_struct_(fdt)) !=3D 0) \
> 			return err; \
> 	}
>=20
> -static void *_fdt_grab_space(void *fdt, size_t len)
> +static inline uint32_t sw_flags(void *fdt)
> {
> -	int offset =3D fdt_size_dt_struct(fdt);
> -	int spaceleft;
> +	/* assert: (fdt_magic(fdt) =3D=3D FDT_SW_MAGIC) */
> +	return fdt_last_comp_version(fdt);
> +}
> +
> +/* 'complete' state:	Enter this state after fdt_finish()
> + *
> + * Allowed functions: none
> + */
> +
> +static void *fdt_grab_space_(void *fdt, size_t len)
> +{
> +	unsigned int offset =3D fdt_size_dt_struct(fdt);
> +	unsigned int spaceleft;
>=20
> 	spaceleft =3D fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
> 		- fdt_size_dt_strings(fdt);
> @@ -80,27 +103,84 @@ static void *_fdt_grab_space(void *fdt, size_t len)
> 		return NULL;
>=20
> 	fdt_set_size_dt_struct(fdt, offset + len);
> -	return _fdt_offset_ptr_w(fdt, offset);
> +	return fdt_offset_ptr_w_(fdt, offset);
> }
>=20
> -int fdt_create(void *buf, int bufsize)
> +int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
> {
> +	const int hdrsize =3D FDT_ALIGN(sizeof(struct fdt_header),
> +				      sizeof(struct fdt_reserve_entry));
> 	void *fdt =3D buf;
>=20
> -	if (bufsize < sizeof(struct fdt_header))
> +	if (bufsize < hdrsize)
> 		return -FDT_ERR_NOSPACE;
>=20
> +	if (flags & ~FDT_CREATE_FLAGS_ALL)
> +		return -FDT_ERR_BADFLAGS;
> +
> 	memset(buf, 0, bufsize);
>=20
> +	/*
> +	 * magic and last_comp_version keep intermediate state during the fdt
> +	 * creation process, which is replaced with the proper FDT format by
> +	 * fdt_finish().
> +	 *
> +	 * flags should be accessed with sw_flags().
> +	 */
> 	fdt_set_magic(fdt, FDT_SW_MAGIC);
> 	fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
> -	fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION);
> +	fdt_set_last_comp_version(fdt, flags);
> +
> 	fdt_set_totalsize(fdt,  bufsize);
>=20
> -	fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header),
> -					      sizeof(struct fdt_reserve_entry)));
> +	fdt_set_off_mem_rsvmap(fdt, hdrsize);
> 	fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
> -	fdt_set_off_dt_strings(fdt, bufsize);
> +	fdt_set_off_dt_strings(fdt, 0);
> +
> +	return 0;
> +}
> +
> +int fdt_create(void *buf, int bufsize)
> +{
> +	return fdt_create_with_flags(buf, bufsize, 0);
> +}
> +
> +int fdt_resize(void *fdt, void *buf, int bufsize)
> +{
> +	size_t headsize, tailsize;
> +	char *oldtail, *newtail;
> +
> +	FDT_SW_PROBE(fdt);
> +
> +	if (bufsize < 0)
> +		return -FDT_ERR_NOSPACE;
> +
> +	headsize =3D fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> +	tailsize =3D fdt_size_dt_strings(fdt);
> +
> +	if (!can_assume(VALID_DTB) &&
> +	    headsize + tailsize > fdt_totalsize(fdt))
> +		return -FDT_ERR_INTERNAL;
> +
> +	if ((headsize + tailsize) > (unsigned)bufsize)
> +		return -FDT_ERR_NOSPACE;
> +
> +	oldtail =3D (char *)fdt + fdt_totalsize(fdt) - tailsize;
> +	newtail =3D (char *)buf + bufsize - tailsize;
> +
> +	/* Two cases to avoid clobbering data if the old and new
> +	 * buffers partially overlap */
> +	if (buf <=3D fdt) {
> +		memmove(buf, fdt, headsize);
> +		memmove(newtail, oldtail, tailsize);
> +	} else {
> +		memmove(newtail, oldtail, tailsize);
> +		memmove(buf, fdt, headsize);
> +	}
> +
> +	fdt_set_totalsize(buf, bufsize);
> +	if (fdt_off_dt_strings(buf))
> +		fdt_set_off_dt_strings(buf, bufsize);
>=20
> 	return 0;
> }
> @@ -110,10 +190,7 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t add=
r, uint64_t size)
> 	struct fdt_reserve_entry *re;
> 	int offset;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> -
> -	if (fdt_size_dt_struct(fdt))
> -		return -FDT_ERR_BADSTATE;
> +	FDT_SW_PROBE_MEMRSV(fdt);
>=20
> 	offset =3D fdt_off_dt_struct(fdt);
> 	if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
> @@ -130,17 +207,24 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t ad=
dr, uint64_t size)
>=20
> int fdt_finish_reservemap(void *fdt)
> {
> -	return fdt_add_reservemap_entry(fdt, 0, 0);
> +	int err =3D fdt_add_reservemap_entry(fdt, 0, 0);
> +
> +	if (err)
> +		return err;
> +
> +	fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
> +	return 0;
> }
>=20
> int fdt_begin_node(void *fdt, const char *name)
> {
> 	struct fdt_node_header *nh;
> -	int namelen =3D strlen(name) + 1;
> +	int namelen;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> +	FDT_SW_PROBE_STRUCT(fdt);
>=20
> -	nh =3D _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
> +	namelen =3D strlen(name) + 1;
> +	nh =3D fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
> 	if (! nh)
> 		return -FDT_ERR_NOSPACE;
>=20
> @@ -153,9 +237,9 @@ int fdt_end_node(void *fdt)
> {
> 	fdt32_t *en;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> +	FDT_SW_PROBE_STRUCT(fdt);
>=20
> -	en =3D _fdt_grab_space(fdt, FDT_TAGSIZE);
> +	en =3D fdt_grab_space_(fdt, FDT_TAGSIZE);
> 	if (! en)
> 		return -FDT_ERR_NOSPACE;
>=20
> @@ -163,48 +247,90 @@ int fdt_end_node(void *fdt)
> 	return 0;
> }
>=20
> -static int _fdt_find_add_string(void *fdt, const char *s)
> +static int fdt_add_string_(void *fdt, const char *s)
> {
> 	char *strtab =3D (char *)fdt + fdt_totalsize(fdt);
> -	const char *p;
> +	unsigned int strtabsize =3D fdt_size_dt_strings(fdt);
> +	unsigned int len =3D strlen(s) + 1;
> +	unsigned int struct_top, offset;
> +
> +	offset =3D strtabsize + len;
> +	struct_top =3D fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> +	if (fdt_totalsize(fdt) - offset < struct_top)
> +		return 0; /* no more room :( */
> +
> +	memcpy(strtab - offset, s, len);
> +	fdt_set_size_dt_strings(fdt, strtabsize + len);
> +	return -offset;
> +}
> +
> +/* Must only be used to roll back in case of error */
> +static void fdt_del_last_string_(void *fdt, const char *s)
> +{
> 	int strtabsize =3D fdt_size_dt_strings(fdt);
> 	int len =3D strlen(s) + 1;
> -	int struct_top, offset;
>=20
> -	p =3D _fdt_find_string(strtab - strtabsize, strtabsize, s);
> +	fdt_set_size_dt_strings(fdt, strtabsize - len);
> +}
> +
> +static int fdt_find_add_string_(void *fdt, const char *s, int *allocated=
)
> +{
> +	char *strtab =3D (char *)fdt + fdt_totalsize(fdt);
> +	int strtabsize =3D fdt_size_dt_strings(fdt);
> +	const char *p;
> +
> +	*allocated =3D 0;
> +
> +	p =3D fdt_find_string_(strtab - strtabsize, strtabsize, s);
> 	if (p)
> 		return p - strtab;
>=20
> -	/* Add it */
> -	offset =3D -strtabsize - len;
> -	struct_top =3D fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> -	if (fdt_totalsize(fdt) + offset < struct_top)
> -		return 0; /* no more room :( */
> +	*allocated =3D 1;
>=20
> -	memcpy(strtab + offset, s, len);
> -	fdt_set_size_dt_strings(fdt, strtabsize + len);
> -	return offset;
> +	return fdt_add_string_(fdt, s);
> }
>=20
> -int fdt_property(void *fdt, const char *name, const void *val, int len)
> +int fdt_property_placeholder(void *fdt, const char *name, int len, void =
**valp)
> {
> 	struct fdt_property *prop;
> 	int nameoff;
> +	int allocated;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> +	FDT_SW_PROBE_STRUCT(fdt);
>=20
> -	nameoff =3D _fdt_find_add_string(fdt, name);
> +	/* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
> +	if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
> +		allocated =3D 1;
> +		nameoff =3D fdt_add_string_(fdt, name);
> +	} else {
> +		nameoff =3D fdt_find_add_string_(fdt, name, &allocated);
> +	}
> 	if (nameoff =3D=3D 0)
> 		return -FDT_ERR_NOSPACE;
>=20
> -	prop =3D _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
> -	if (! prop)
> +	prop =3D fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
> +	if (! prop) {
> +		if (allocated)
> +			fdt_del_last_string_(fdt, name);
> 		return -FDT_ERR_NOSPACE;
> +	}
>=20
> 	prop->tag =3D cpu_to_fdt32(FDT_PROP);
> 	prop->nameoff =3D cpu_to_fdt32(nameoff);
> 	prop->len =3D cpu_to_fdt32(len);
> -	memcpy(prop->data, val, len);
> +	*valp =3D prop->data;
> +	return 0;
> +}
> +
> +int fdt_property(void *fdt, const char *name, const void *val, int len)
> +{
> +	void *ptr;
> +	int ret;
> +
> +	ret =3D fdt_property_placeholder(fdt, name, len, &ptr);
> +	if (ret)
> +		return ret;
> +	memcpy(ptr, val, len);
> 	return 0;
> }
>=20
> @@ -216,10 +342,10 @@ int fdt_finish(void *fdt)
> 	uint32_t tag;
> 	int offset, nextoffset;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> +	FDT_SW_PROBE_STRUCT(fdt);
>=20
> 	/* Add terminator */
> -	end =3D _fdt_grab_space(fdt, sizeof(*end));
> +	end =3D fdt_grab_space_(fdt, sizeof(*end));
> 	if (! end)
> 		return -FDT_ERR_NOSPACE;
> 	*end =3D cpu_to_fdt32(FDT_END);
> @@ -235,7 +361,7 @@ int fdt_finish(void *fdt)
> 	while ((tag =3D fdt_next_tag(fdt, offset, &nextoffset)) !=3D FDT_END) {
> 		if (tag =3D=3D FDT_PROP) {
> 			struct fdt_property *prop =3D
> -				_fdt_offset_ptr_w(fdt, offset);
> +				fdt_offset_ptr_w_(fdt, offset);
> 			int nameoff;
>=20
> 			nameoff =3D fdt32_to_cpu(prop->nameoff);
> @@ -249,6 +375,10 @@ int fdt_finish(void *fdt)
>=20
> 	/* Finally, adjust the header */
> 	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
> +
> +	/* And fix up fields that were keeping intermediate state. */
> +	fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
> 	fdt_set_magic(fdt, FDT_MAGIC);
> +
> 	return 0;
> }
> diff --git a/xen/common/libfdt/fdt_wip.c b/xen/common/libfdt/fdt_wip.c
> index 2d1cac0..c2d7566 100644
> --- a/xen/common/libfdt/fdt_wip.c
> +++ b/xen/common/libfdt/fdt_wip.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,24 +10,45 @@
>=20
> #include "libfdt_internal.h"
>=20
> +int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
> +					const char *name, int namelen,
> +					uint32_t idx, const void *val,
> +					int len)
> +{
> +	void *propval;
> +	int proplen;
> +
> +	propval =3D fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
> +					&proplen);
> +	if (!propval)
> +		return proplen;
> +
> +	if ((unsigned)proplen < (len + idx))
> +		return -FDT_ERR_NOSPACE;
> +
> +	memcpy((char *)propval + idx, val, len);
> +	return 0;
> +}
> +
> int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
> 			const void *val, int len)
> {
> -	void *propval;
> +	const void *propval;
> 	int proplen;
>=20
> -	propval =3D fdt_getprop_w(fdt, nodeoffset, name, &proplen);
> -	if (! propval)
> +	propval =3D fdt_getprop(fdt, nodeoffset, name, &proplen);
> +	if (!propval)
> 		return proplen;
>=20
> 	if (proplen !=3D len)
> 		return -FDT_ERR_NOSPACE;
>=20
> -	memcpy(propval, val, len);
> -	return 0;
> +	return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
> +						   strlen(name), 0,
> +						   val, len);
> }
>=20
> -static void _fdt_nop_region(void *start, int len)
> +static void fdt_nop_region_(void *start, int len)
> {
> 	fdt32_t *p;
>=20
> @@ -84,15 +62,15 @@ int fdt_nop_property(void *fdt, int nodeoffset, const=
 char *name)
> 	int len;
>=20
> 	prop =3D fdt_get_property_w(fdt, nodeoffset, name, &len);
> -	if (! prop)
> +	if (!prop)
> 		return len;
>=20
> -	_fdt_nop_region(prop, len + sizeof(*prop));
> +	fdt_nop_region_(prop, len + sizeof(*prop));
>=20
> 	return 0;
> }
>=20
> -int _fdt_node_end_offset(void *fdt, int offset)
> +int fdt_node_end_offset_(void *fdt, int offset)
> {
> 	int depth =3D 0;
>=20
> @@ -106,11 +84,11 @@ int fdt_nop_node(void *fdt, int nodeoffset)
> {
> 	int endoffset;
>=20
> -	endoffset =3D _fdt_node_end_offset(fdt, nodeoffset);
> +	endoffset =3D fdt_node_end_offset_(fdt, nodeoffset);
> 	if (endoffset < 0)
> 		return endoffset;
>=20
> -	_fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0),
> +	fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
> 			endoffset - nodeoffset);
> 	return 0;
> }
> diff --git a/xen/common/libfdt/libfdt_internal.h b/xen/common/libfdt/libf=
dt_internal.h
> index d50c4e1..16bda19 100644
> --- a/xen/common/libfdt/libfdt_internal.h
> +++ b/xen/common/libfdt/libfdt_internal.h
> @@ -1,81 +1,39 @@
> -#ifndef _LIBFDT_INTERNAL_H
> -#define _LIBFDT_INTERNAL_H
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> +#ifndef LIBFDT_INTERNAL_H
> +#define LIBFDT_INTERNAL_H
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include <fdt.h>
>=20
> #define FDT_ALIGN(x, a)		(((x) + (a) - 1) & ~((a) - 1))
> #define FDT_TAGALIGN(x)		(FDT_ALIGN((x), FDT_TAGSIZE))
>=20
> -#define FDT_CHECK_HEADER(fdt) \
> -	{ \
> -		int err; \
> -		if ((err =3D fdt_check_header(fdt)) !=3D 0) \
> -			return err; \
> +int32_t fdt_ro_probe_(const void *fdt);
> +#define FDT_RO_PROBE(fdt)					\
> +	{							\
> +		int32_t totalsize_;				\
> +		if ((totalsize_ =3D fdt_ro_probe_(fdt)) < 0)	\
> +			return totalsize_;			\
> 	}
>=20
> -int _fdt_check_node_offset(const void *fdt, int offset);
> -int _fdt_check_prop_offset(const void *fdt, int offset);
> -const char *_fdt_find_string(const char *strtab, int tabsize, const char=
 *s);
> -int _fdt_node_end_offset(void *fdt, int nodeoffset);
> +int fdt_check_node_offset_(const void *fdt, int offset);
> +int fdt_check_prop_offset_(const void *fdt, int offset);
> +const char *fdt_find_string_(const char *strtab, int tabsize, const char=
 *s);
> +int fdt_node_end_offset_(void *fdt, int nodeoffset);
>=20
> -static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
> +static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
> {
> 	return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
> }
>=20
> -static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
> +static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
> {
> -	return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
> +	return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
> }
>=20
> -static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *f=
dt, int n)
> +static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *f=
dt, int n)
> {
> 	const struct fdt_reserve_entry *rsv_table =3D
> 		(const struct fdt_reserve_entry *)
> @@ -83,11 +41,152 @@ static inline const struct fdt_reserve_entry *_fdt_m=
em_rsv(const void *fdt, int
>=20
> 	return rsv_table + n;
> }
> -static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
> +static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
> +{
> +	return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
> +}
> +
> +/*
> + * Internal helpers to access tructural elements of the device tree
> + * blob (rather than for exaple reading integers from within property
> + * values).  We assume that we are either given a naturally aligned
> + * address for the platform or if we are not, we are on a platform
> + * where unaligned memory reads will be handled in a graceful manner.
> + * If not the external helpers fdtXX_ld() from libfdt.h can be used
> + * instead.
> + */
> +static inline uint32_t fdt32_ld_(const fdt32_t *p)
> {
> -	return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
> +	return fdt32_to_cpu(*p);
> +}
> +
> +static inline uint64_t fdt64_ld_(const fdt64_t *p)
> +{
> +	return fdt64_to_cpu(*p);
> }
>=20
> #define FDT_SW_MAGIC		(~FDT_MAGIC)
>=20
> -#endif /* _LIBFDT_INTERNAL_H */
> +/**********************************************************************/
> +/* Checking controls                                                  */
> +/**********************************************************************/
> +
> +#ifndef FDT_ASSUME_MASK
> +#define FDT_ASSUME_MASK 0
> +#endif
> +
> +/*
> + * Defines assumptions which can be enabled. Each of these can be enable=
d
> + * individually. For maximum safety, don't enable any assumptions!
> + *
> + * For minimal code size and no safety, use ASSUME_PERFECT at your own r=
isk.
> + * You should have another method of validating the device tree, such as=
 a
> + * signature or hash check before using libfdt.
> + *
> + * For situations where security is not a concern it may be safe to enab=
le
> + * ASSUME_SANE.
> + */
> +enum {
> +	/*
> +	 * This does essentially no checks. Only the latest device-tree
> +	 * version is correctly handled. Inconsistencies or errors in the devic=
e
> +	 * tree may cause undefined behaviour or crashes. Invalid parameters
> +	 * passed to libfdt may do the same.
> +	 *
> +	 * If an error occurs when modifying the tree it may leave the tree in
> +	 * an intermediate (but valid) state. As an example, adding a property
> +	 * where there is insufficient space may result in the property name
> +	 * being added to the string table even though the property itself is
> +	 * not added to the struct section.
> +	 *
> +	 * Only use this if you have a fully validated device tree with
> +	 * the latest supported version and wish to minimise code size.
> +	 */
> +	ASSUME_PERFECT		=3D 0xff,
> +
> +	/*
> +	 * This assumes that the device tree is sane. i.e. header metadata
> +	 * and basic hierarchy are correct.
> +	 *
> +	 * With this assumption enabled, normal device trees produced by libfdt
> +	 * and the compiler should be handled safely. Malicious device trees an=
d
> +	 * complete garbage may cause libfdt to behave badly or crash. Truncate=
d
> +	 * device trees (e.g. those only partially loaded) can also cause
> +	 * problems.
> +	 *
> +	 * Note: Only checks that relate exclusively to the device tree itself
> +	 * (not the parameters passed to libfdt) are disabled by this
> +	 * assumption. This includes checking headers, tags and the like.
> +	 */
> +	ASSUME_VALID_DTB	=3D 1 << 0,
> +
> +	/*
> +	 * This builds on ASSUME_VALID_DTB and further assumes that libfdt
> +	 * functions are called with valid parameters, i.e. not trigger
> +	 * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
> +	 * extensive checking of parameters and the device tree, making various
> +	 * assumptions about correctness.
> +	 *
> +	 * It doesn't make sense to enable this assumption unless
> +	 * ASSUME_VALID_DTB is also enabled.
> +	 */
> +	ASSUME_VALID_INPUT	=3D 1 << 1,
> +
> +	/*
> +	 * This disables checks for device-tree version and removes all code
> +	 * which handles older versions.
> +	 *
> +	 * Only enable this if you know you have a device tree with the latest
> +	 * version.
> +	 */
> +	ASSUME_LATEST		=3D 1 << 2,
> +
> +	/*
> +	 * This assumes that it is OK for a failed addition to the device tree,
> +	 * due to lack of space or some other problem, to skip any rollback
> +	 * steps (such as dropping the property name from the string table).
> +	 * This is safe to enable in most circumstances, even though it may
> +	 * leave the tree in a sub-optimal state.
> +	 */
> +	ASSUME_NO_ROLLBACK	=3D 1 << 3,
> +
> +	/*
> +	 * This assumes that the device tree components appear in a 'convenient=
'
> +	 * order, i.e. the memory reservation block first, then the structure
> +	 * block and finally the string block.
> +	 *
> +	 * This order is not specified by the device-tree specification,
> +	 * but is expected by libfdt. The device-tree compiler always created
> +	 * device trees with this order.
> +	 *
> +	 * This assumption disables a check in fdt_open_into() and removes the
> +	 * ability to fix the problem there. This is safe if you know that the
> +	 * device tree is correctly ordered. See fdt_blocks_misordered_().
> +	 */
> +	ASSUME_LIBFDT_ORDER	=3D 1 << 4,
> +
> +	/*
> +	 * This assumes that libfdt itself does not have any internal bugs. It
> +	 * drops certain checks that should never be needed unless libfdt has a=
n
> +	 * undiscovered bug.
> +	 *
> +	 * This can generally be considered safe to enable.
> +	 */
> +	ASSUME_LIBFDT_FLAWLESS	=3D 1 << 5,
> +};
> +
> +/**
> + * can_assume_() - check if a particular assumption is enabled
> + *
> + * @mask: Mask to check (ASSUME_...)
> + * @return true if that assumption is enabled, else false
> + */
> +static inline bool can_assume_(int mask)
> +{
> +	return FDT_ASSUME_MASK & mask;
> +}
> +
> +/** helper macros for checking assumptions */
> +#define can_assume(_assume)	can_assume_(ASSUME_ ## _assume)
> +
> +#endif /* LIBFDT_INTERNAL_H */
> diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
> index f460b0d..f2e6880 100644
> --- a/xen/include/xen/libfdt/fdt.h
> +++ b/xen/include/xen/libfdt/fdt.h
> @@ -1,53 +1,10 @@
> -#ifndef _FDT_H
> -#define _FDT_H
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> +#ifndef FDT_H
> +#define FDT_H
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
>  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
>=20
> #ifndef __ASSEMBLY__
> @@ -106,4 +63,4 @@ struct fdt_property {
> #define FDT_V16_SIZE	FDT_V3_SIZE
> #define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(fdt32_t))
>=20
> -#endif /* _FDT_H */
> +#endif /* FDT_H */
> diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/lib=
fdt.h
> index 7c75688..c71689e 100644
> --- a/xen/include/xen/libfdt/libfdt.h
> +++ b/xen/include/xen/libfdt/libfdt.h
> @@ -1,65 +1,27 @@
> -#ifndef _LIBFDT_H
> -#define _LIBFDT_H
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> +#ifndef LIBFDT_H
> +#define LIBFDT_H
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
>=20
> #include <xen/libfdt/libfdt_env.h>
> #include <xen/libfdt/fdt.h>
>=20
> -#define FDT_FIRST_SUPPORTED_VERSION	0x10
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +#define FDT_FIRST_SUPPORTED_VERSION	0x02
> +#define FDT_LAST_COMPATIBLE_VERSION 0x10
> #define FDT_LAST_SUPPORTED_VERSION	0x11
>=20
> /* Error codes: informative error codes */
> #define FDT_ERR_NOTFOUND	1
> 	/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
> #define FDT_ERR_EXISTS		2
> -	/* FDT_ERR_EXISTS: Attemped to create a node or property which
> +	/* FDT_ERR_EXISTS: Attempted to create a node or property which
> 	 * already exists */
> #define FDT_ERR_NOSPACE		3
> 	/* FDT_ERR_NOSPACE: Operation needed to expand the device
> @@ -77,8 +39,10 @@
> 	 * (e.g. missing a leading / for a function which requires an
> 	 * absolute path) */
> #define FDT_ERR_BADPHANDLE	6
> -	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle
> -	 * value.  phandle values of 0 and -1 are not permitted. */
> +	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
> +	 * This can be caused either by an invalid phandle property
> +	 * length, or the phandle value was either 0 or -1, which are
> +	 * not permitted. */
> #define FDT_ERR_BADSTATE	7
> 	/* FDT_ERR_BADSTATE: Function was passed an incomplete device
> 	 * tree created by the sequential-write functions, which is
> @@ -86,8 +50,9 @@
>=20
> /* Error codes: codes for bad device tree blobs */
> #define FDT_ERR_TRUNCATED	8
> -	/* FDT_ERR_TRUNCATED: Structure block of the given device tree
> -	 * ends without an FDT_END tag. */
> +	/* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
> +	 * terminated (overflows, goes outside allowed bounds, or
> +	 * isn't properly terminated).  */
> #define FDT_ERR_BADMAGIC	9
> 	/* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
> 	 * device tree at all - it is missing the flattened device
> @@ -114,13 +79,46 @@
> 	 * Should never be returned, if it is, it indicates a bug in
> 	 * libfdt itself. */
>=20
> -#define FDT_ERR_MAX		13
> +/* Errors in device tree content */
> +#define FDT_ERR_BADNCELLS	14
> +	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
> +	 * or similar property with a bad format or value */
> +
> +#define FDT_ERR_BADVALUE	15
> +	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
> +	 * value. For example: a property expected to contain a string list
> +	 * is not NUL-terminated within the length of its value. */
> +
> +#define FDT_ERR_BADOVERLAY	16
> +	/* FDT_ERR_BADOVERLAY: The device tree overlay, while
> +	 * correctly structured, cannot be applied due to some
> +	 * unexpected or missing value, property or node. */
> +
> +#define FDT_ERR_NOPHANDLES	17
> +	/* FDT_ERR_NOPHANDLES: The device tree doesn't have any
> +	 * phandle available anymore without causing an overflow */
> +
> +#define FDT_ERR_BADFLAGS	18
> +	/* FDT_ERR_BADFLAGS: The function was passed a flags field that
> +	 * contains invalid flags or an invalid combination of flags. */
> +
> +#define FDT_ERR_ALIGNMENT	19
> +	/* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
> +	 * aligned. */
> +
> +#define FDT_ERR_MAX		19
> +
> +/* constants */
> +#define FDT_MAX_PHANDLE 0xfffffffe
> +	/* Valid values for phandles range from 1 to 2^32-2. */
>=20
> /**********************************************************************/
> /* Low-level functions (you probably don't need these)                */
> /**********************************************************************/
>=20
> +#ifndef SWIG /* This function is not useful in Python */
> const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int chec=
klen);
> +#endif
> static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
> {
> 	return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
> @@ -128,6 +126,59 @@ static inline void *fdt_offset_ptr_w(void *fdt, int =
offset, int checklen)
>=20
> uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
>=20
> +/*
> + * External helpers to access words from a device tree blob. They're bui=
lt
> + * to work even with unaligned pointers on platforms (such as ARMv5) tha=
t don't
> + * like unaligned loads and stores.
> + */
> +static inline uint32_t fdt32_ld(const fdt32_t *p)
> +{
> +	const uint8_t *bp =3D (const uint8_t *)p;
> +
> +	return ((uint32_t)bp[0] << 24)
> +		| ((uint32_t)bp[1] << 16)
> +		| ((uint32_t)bp[2] << 8)
> +		| bp[3];
> +}
> +
> +static inline void fdt32_st(void *property, uint32_t value)
> +{
> +	uint8_t *bp =3D (uint8_t *)property;
> +
> +	bp[0] =3D value >> 24;
> +	bp[1] =3D (value >> 16) & 0xff;
> +	bp[2] =3D (value >> 8) & 0xff;
> +	bp[3] =3D value & 0xff;
> +}
> +
> +static inline uint64_t fdt64_ld(const fdt64_t *p)
> +{
> +	const uint8_t *bp =3D (const uint8_t *)p;
> +
> +	return ((uint64_t)bp[0] << 56)
> +		| ((uint64_t)bp[1] << 48)
> +		| ((uint64_t)bp[2] << 40)
> +		| ((uint64_t)bp[3] << 32)
> +		| ((uint64_t)bp[4] << 24)
> +		| ((uint64_t)bp[5] << 16)
> +		| ((uint64_t)bp[6] << 8)
> +		| bp[7];
> +}
> +
> +static inline void fdt64_st(void *property, uint64_t value)
> +{
> +	uint8_t *bp =3D (uint8_t *)property;
> +
> +	bp[0] =3D value >> 56;
> +	bp[1] =3D (value >> 48) & 0xff;
> +	bp[2] =3D (value >> 40) & 0xff;
> +	bp[3] =3D (value >> 32) & 0xff;
> +	bp[4] =3D (value >> 24) & 0xff;
> +	bp[5] =3D (value >> 16) & 0xff;
> +	bp[6] =3D (value >> 8) & 0xff;
> +	bp[7] =3D value & 0xff;
> +}
> +
> /**********************************************************************/
> /* Traversal functions                                                */
> /**********************************************************************/
> @@ -136,74 +187,118 @@ int fdt_next_node(const void *fdt, int offset, int=
 *depth);
>=20
> /**
>  * fdt_first_subnode() - get offset of first direct subnode
> - *
>  * @fdt:	FDT blob
>  * @offset:	Offset of node to check
> - * @return offset of first subnode, or -FDT_ERR_NOTFOUND if there is non=
e
> + *
> + * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is non=
e
>  */
> int fdt_first_subnode(const void *fdt, int offset);
>=20
> /**
>  * fdt_next_subnode() - get offset of next direct subnode
> + * @fdt:	FDT blob
> + * @offset:	Offset of previous subnode
>  *
>  * After first calling fdt_first_subnode(), call this function repeatedly=
 to
>  * get direct subnodes of a parent node.
>  *
> - * @fdt:	FDT blob
> - * @offset:	Offset of previous subnode
> - * @return offset of next subnode, or -FDT_ERR_NOTFOUND if there are no =
more
> - * subnodes
> + * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no =
more
> + *         subnodes
>  */
> int fdt_next_subnode(const void *fdt, int offset);
>=20
> +/**
> + * fdt_for_each_subnode - iterate over all subnodes of a parent
> + *
> + * @node:	child node (int, lvalue)
> + * @fdt:	FDT blob (const void *)
> + * @parent:	parent node (int)
> + *
> + * This is actually a wrapper around a for loop and would be used like s=
o:
> + *
> + *	fdt_for_each_subnode(node, fdt, parent) {
> + *		Use node
> + *		...
> + *	}
> + *
> + *	if ((node < 0) && (node !=3D -FDT_ERR_NOTFOUND)) {
> + *		Error handling
> + *	}
> + *
> + * Note that this is implemented as a macro and @node is used as
> + * iterator in the loop. The parent variable be constant or even a
> + * literal.
> + */
> +#define fdt_for_each_subnode(node, fdt, parent)		\
> +	for (node =3D fdt_first_subnode(fdt, parent);	\
> +	     node >=3D 0;					\
> +	     node =3D fdt_next_subnode(fdt, node))
> +
> /**********************************************************************/
> /* General functions                                                  */
> /**********************************************************************/
> -
> #define fdt_get_header(fdt, field) \
> -	(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))
> -#define fdt_magic(fdt) 			(fdt_get_header(fdt, magic))
> +	(fdt32_ld(&((const struct fdt_header *)(fdt))->field))
> +#define fdt_magic(fdt)			(fdt_get_header(fdt, magic))
> #define fdt_totalsize(fdt)		(fdt_get_header(fdt, totalsize))
> #define fdt_off_dt_struct(fdt)		(fdt_get_header(fdt, off_dt_struct))
> #define fdt_off_dt_strings(fdt)		(fdt_get_header(fdt, off_dt_strings))
> #define fdt_off_mem_rsvmap(fdt)		(fdt_get_header(fdt, off_mem_rsvmap))
> #define fdt_version(fdt)		(fdt_get_header(fdt, version))
> -#define fdt_last_comp_version(fdt) 	(fdt_get_header(fdt, last_comp_versi=
on))
> -#define fdt_boot_cpuid_phys(fdt) 	(fdt_get_header(fdt, boot_cpuid_phys))
> -#define fdt_size_dt_strings(fdt) 	(fdt_get_header(fdt, size_dt_strings))
> +#define fdt_last_comp_version(fdt)	(fdt_get_header(fdt, last_comp_versio=
n))
> +#define fdt_boot_cpuid_phys(fdt)	(fdt_get_header(fdt, boot_cpuid_phys))
> +#define fdt_size_dt_strings(fdt)	(fdt_get_header(fdt, size_dt_strings))
> #define fdt_size_dt_struct(fdt)		(fdt_get_header(fdt, size_dt_struct))
>=20
> -#define __fdt_set_hdr(name) \
> +#define fdt_set_hdr_(name) \
> 	static inline void fdt_set_##name(void *fdt, uint32_t val) \
> 	{ \
> -		struct fdt_header *fdth =3D (struct fdt_header*)fdt; \
> +		struct fdt_header *fdth =3D (struct fdt_header *)fdt; \
> 		fdth->name =3D cpu_to_fdt32(val); \
> 	}
> -__fdt_set_hdr(magic);
> -__fdt_set_hdr(totalsize);
> -__fdt_set_hdr(off_dt_struct);
> -__fdt_set_hdr(off_dt_strings);
> -__fdt_set_hdr(off_mem_rsvmap);
> -__fdt_set_hdr(version);
> -__fdt_set_hdr(last_comp_version);
> -__fdt_set_hdr(boot_cpuid_phys);
> -__fdt_set_hdr(size_dt_strings);
> -__fdt_set_hdr(size_dt_struct);
> -#undef __fdt_set_hdr
> -
> -/**
> - * fdt_check_header - sanity check a device tree or possible device tree
> +fdt_set_hdr_(magic);
> +fdt_set_hdr_(totalsize);
> +fdt_set_hdr_(off_dt_struct);
> +fdt_set_hdr_(off_dt_strings);
> +fdt_set_hdr_(off_mem_rsvmap);
> +fdt_set_hdr_(version);
> +fdt_set_hdr_(last_comp_version);
> +fdt_set_hdr_(boot_cpuid_phys);
> +fdt_set_hdr_(size_dt_strings);
> +fdt_set_hdr_(size_dt_struct);
> +#undef fdt_set_hdr_
> +
> +/**
> + * fdt_header_size - return the size of the tree's header
> + * @fdt: pointer to a flattened device tree
> + *
> + * Return: size of DTB header in bytes
> + */
> +size_t fdt_header_size(const void *fdt);
> +
> +/**
> + * fdt_header_size_ - internal function to get header size from a versio=
n number
> + * @version: devicetree version number
> + *
> + * Return: size of DTB header in bytes
> + */
> +size_t fdt_header_size_(uint32_t version);
> +
> +/**
> + * fdt_check_header - sanity check a device tree header
>  * @fdt: pointer to data which might be a flattened device tree
>  *
>  * fdt_check_header() checks that the given buffer contains what
> - * appears to be a flattened device tree with sane information in its
> - * header.
> + * appears to be a flattened device tree, and that the header contains
> + * valid information (to the extent that can be determined from the
> + * header alone).
>  *
>  * returns:
>  *     0, if the buffer appears to contain a valid device tree
>  *     -FDT_ERR_BADMAGIC,
>  *     -FDT_ERR_BADVERSION,
> - *     -FDT_ERR_BADSTATE, standard meanings, as above
> + *     -FDT_ERR_BADSTATE,
> + *     -FDT_ERR_TRUNCATED, standard meanings, as above
>  */
> int fdt_check_header(const void *fdt);
>=20
> @@ -232,6 +327,24 @@ int fdt_move(const void *fdt, void *buf, int bufsize=
);
> /* Read-only functions                                                */
> /**********************************************************************/
>=20
> +int fdt_check_full(const void *fdt, size_t bufsize);
> +
> +/**
> + * fdt_get_string - retrieve a string from the strings block of a device=
 tree
> + * @fdt: pointer to the device tree blob
> + * @stroffset: offset of the string within the strings block (native end=
ian)
> + * @lenp: optional pointer to return the string's length
> + *
> + * fdt_get_string() retrieves a pointer to a single string from the
> + * strings block of the device tree blob at fdt, and optionally also
> + * returns the string's length in *lenp.
> + *
> + * returns:
> + *     a pointer to the string, on success
> + *     NULL, if stroffset is out of bounds, or doesn't point to a valid =
string
> + */
> +const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
> +
> /**
>  * fdt_string - retrieve a string from the strings block of a device tree
>  * @fdt: pointer to the device tree blob
> @@ -242,11 +355,66 @@ int fdt_move(const void *fdt, void *buf, int bufsiz=
e);
>  *
>  * returns:
>  *     a pointer to the string, on success
> - *     NULL, if stroffset is out of bounds
> + *     NULL, if stroffset is out of bounds, or doesn't point to a valid =
string
>  */
> const char *fdt_string(const void *fdt, int stroffset);
>=20
> /**
> + * fdt_find_max_phandle - find and return the highest phandle in a tree
> + * @fdt: pointer to the device tree blob
> + * @phandle: return location for the highest phandle value found in the =
tree
> + *
> + * fdt_find_max_phandle() finds the highest phandle value in the given d=
evice
> + * tree. The value returned in @phandle is only valid if the function re=
turns
> + * success.
> + *
> + * returns:
> + *     0 on success or a negative error code on failure
> + */
> +int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
> +
> +/**
> + * fdt_get_max_phandle - retrieves the highest phandle in a tree
> + * @fdt: pointer to the device tree blob
> + *
> + * fdt_get_max_phandle retrieves the highest phandle in the given
> + * device tree. This will ignore badly formatted phandles, or phandles
> + * with a value of 0 or -1.
> + *
> + * This function is deprecated in favour of fdt_find_max_phandle().
> + *
> + * returns:
> + *      the highest phandle on success
> + *      0, if no phandle was found in the device tree
> + *      -1, if an error occurred
> + */
> +static inline uint32_t fdt_get_max_phandle(const void *fdt)
> +{
> +	uint32_t phandle;
> +	int err;
> +
> +	err =3D fdt_find_max_phandle(fdt, &phandle);
> +	if (err < 0)
> +		return (uint32_t)-1;
> +
> +	return phandle;
> +}
> +
> +/**
> + * fdt_generate_phandle - return a new, unused phandle for a device tree=
 blob
> + * @fdt: pointer to the device tree blob
> + * @phandle: return location for the new phandle
> + *
> + * Walks the device tree blob and looks for the highest phandle value. O=
n
> + * success, the new, unused phandle value (one higher than the previousl=
y
> + * highest phandle value in the device tree blob) will be returned in th=
e
> + * @phandle parameter.
> + *
> + * Return: 0 on success or a negative error-code on failure
> + */
> +int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
> +
> +/**
>  * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
>  * @fdt: pointer to the device tree blob
>  *
> @@ -262,9 +430,11 @@ int fdt_num_mem_rsv(const void *fdt);
> /**
>  * fdt_get_mem_rsv - retrieve one memory reserve map entry
>  * @fdt: pointer to the device tree blob
> - * @address, @size: pointers to 64-bit variables
> + * @n: index of reserve map entry
> + * @address: pointer to 64-bit variable to hold the start address
> + * @size: pointer to 64-bit variable to hold the size of the entry
>  *
> - * On success, *address and *size will contain the address and size of
> + * On success, @address and @size will contain the address and size of
>  * the n-th reserve map entry from the device tree blob, in
>  * native-endian format.
>  *
> @@ -287,9 +457,13 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t=
 *address, uint64_t *size);
>  * namelen characters of name for matching the subnode name.  This is
>  * useful for finding subnodes based on a portion of a larger string,
>  * such as a full path.
> + *
> + * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
>  */
> +#ifndef SWIG /* Not available in Python */
> int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
> 			       const char *name, int namelen);
> +#endif
> /**
>  * fdt_subnode_offset - find a subnode of a given node
>  * @fdt: pointer to the device tree blob
> @@ -306,8 +480,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int p=
arentoffset,
>  * returns:
>  *	structure block offset of the requested subnode (>=3D0), on success
>  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
> - *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NOD=
E tag
> - *      -FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NOD=
E
> + *		tag
> + *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
>  *	-FDT_ERR_BADSTRUCTURE,
> @@ -316,6 +491,21 @@ int fdt_subnode_offset_namelen(const void *fdt, int =
parentoffset,
> int fdt_subnode_offset(const void *fdt, int parentoffset, const char *nam=
e);
>=20
> /**
> + * fdt_path_offset_namelen - find a tree node by its full path
> + * @fdt: pointer to the device tree blob
> + * @path: full path of the node to locate
> + * @namelen: number of characters of path to consider
> + *
> + * Identical to fdt_path_offset(), but only consider the first namelen
> + * characters of path as the path name.
> + *
> + * Return: offset of the node or negative libfdt error value otherwise
> + */
> +#ifndef SWIG /* Not available in Python */
> +int fdt_path_offset_namelen(const void *fdt, const char *path, int namel=
en);
> +#endif
> +
> +/**
>  * fdt_path_offset - find a tree node by its full path
>  * @fdt: pointer to the device tree blob
>  * @path: full path of the node to locate
> @@ -328,7 +518,8 @@ int fdt_subnode_offset(const void *fdt, int parentoff=
set, const char *name);
>  * address).
>  *
>  * returns:
> - *	structure block offset of the node with the requested path (>=3D0), o=
n success
> + *	structure block offset of the node with the requested path (>=3D0), o=
n
> + *		success
>  *	-FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
>  *	-FDT_ERR_NOTFOUND, if the requested node does not exist
>  *      -FDT_ERR_BADMAGIC,
> @@ -352,10 +543,12 @@ int fdt_path_offset(const void *fdt, const char *pa=
th);
>  *
>  * returns:
>  *	pointer to the node's name, on success
> - *		If lenp is non-NULL, *lenp contains the length of that name (>=3D0)
> + *		If lenp is non-NULL, *lenp contains the length of that name
> + *			(>=3D0)
>  *	NULL, on error
>  *		if lenp is non-NULL *lenp contains an error code (<0):
> - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> + *			tag
>  *		-FDT_ERR_BADMAGIC,
>  *		-FDT_ERR_BADVERSION,
>  *		-FDT_ERR_BADSTATE, standard meanings
> @@ -404,6 +597,33 @@ int fdt_first_property_offset(const void *fdt, int n=
odeoffset);
> int fdt_next_property_offset(const void *fdt, int offset);
>=20
> /**
> + * fdt_for_each_property_offset - iterate over all properties of a node
> + *
> + * @property:	property offset (int, lvalue)
> + * @fdt:	FDT blob (const void *)
> + * @node:	node offset (int)
> + *
> + * This is actually a wrapper around a for loop and would be used like s=
o:
> + *
> + *	fdt_for_each_property_offset(property, fdt, node) {
> + *		Use property
> + *		...
> + *	}
> + *
> + *	if ((property < 0) && (property !=3D -FDT_ERR_NOTFOUND)) {
> + *		Error handling
> + *	}
> + *
> + * Note that this is implemented as a macro and property is used as
> + * iterator in the loop. The node variable can be constant or even a
> + * literal.
> + */
> +#define fdt_for_each_property_offset(property, fdt, node)	\
> +	for (property =3D fdt_first_property_offset(fdt, node);	\
> +	     property >=3D 0;					\
> +	     property =3D fdt_next_property_offset(fdt, property))
> +
> +/**
>  * fdt_get_property_by_offset - retrieve the property at a given offset
>  * @fdt: pointer to the device tree blob
>  * @offset: offset of the property to retrieve
> @@ -414,6 +634,9 @@ int fdt_next_property_offset(const void *fdt, int off=
set);
>  * offset.  If lenp is non-NULL, the length of the property value is
>  * also returned, in the integer pointed to by lenp.
>  *
> + * Note that this code only works on device tree versions >=3D 16. fdt_g=
etprop()
> + * works on all versions.
> + *
>  * returns:
>  *	pointer to the structure representing the property
>  *		if lenp is non-NULL, *lenp contains the length of the property
> @@ -439,13 +662,18 @@ const struct fdt_property *fdt_get_property_by_offs=
et(const void *fdt,
>  * @namelen: number of characters of name to consider
>  * @lenp: pointer to an integer variable (will be overwritten) or NULL
>  *
> - * Identical to fdt_get_property_namelen(), but only examine the first
> - * namelen characters of name for matching the property name.
> + * Identical to fdt_get_property(), but only examine the first namelen
> + * characters of name for matching the property name.
> + *
> + * Return: pointer to the structure representing the property, or NULL
> + *         if not found
>  */
> +#ifndef SWIG /* Not available in Python */
> const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> 						    int nodeoffset,
> 						    const char *name,
> 						    int namelen, int *lenp);
> +#endif
>=20
> /**
>  * fdt_get_property - find a given property in a given node
> @@ -467,7 +695,8 @@ const struct fdt_property *fdt_get_property_namelen(c=
onst void *fdt,
>  *	NULL, on error
>  *		if lenp is non-NULL, *lenp contains an error code (<0):
>  *		-FDT_ERR_NOTFOUND, node does not have named property
> - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> + *			tag
>  *		-FDT_ERR_BADMAGIC,
>  *		-FDT_ERR_BADVERSION,
>  *		-FDT_ERR_BADSTATE,
> @@ -487,7 +716,7 @@ static inline struct fdt_property *fdt_get_property_w=
(void *fdt, int nodeoffset,
> /**
>  * fdt_getprop_by_offset - retrieve the value of a property at a given of=
fset
>  * @fdt: pointer to the device tree blob
> - * @ffset: offset of the property to read
> + * @offset: offset of the property to read
>  * @namep: pointer to a string variable (will be overwritten) or NULL
>  * @lenp: pointer to an integer variable (will be overwritten) or NULL
>  *
> @@ -515,8 +744,10 @@ static inline struct fdt_property *fdt_get_property_=
w(void *fdt, int nodeoffset,
>  *		-FDT_ERR_BADSTRUCTURE,
>  *		-FDT_ERR_TRUNCATED, standard meanings
>  */
> +#ifndef SWIG /* This function is not useful in Python */
> const void *fdt_getprop_by_offset(const void *fdt, int offset,
> 				  const char **namep, int *lenp);
> +#endif
>=20
> /**
>  * fdt_getprop_namelen - get property value based on substring
> @@ -528,9 +759,20 @@ const void *fdt_getprop_by_offset(const void *fdt, i=
nt offset,
>  *
>  * Identical to fdt_getprop(), but only examine the first namelen
>  * characters of name for matching the property name.
> + *
> + * Return: pointer to the property's value or NULL on error
>  */
> +#ifndef SWIG /* Not available in Python */
> const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> 				const char *name, int namelen, int *lenp);
> +static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
> +					  const char *name, int namelen,
> +					  int *lenp)
> +{
> +	return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
> +						      namelen, lenp);
> +}
> +#endif
>=20
> /**
>  * fdt_getprop - retrieve the value of a given property
> @@ -540,10 +782,10 @@ const void *fdt_getprop_namelen(const void *fdt, in=
t nodeoffset,
>  * @lenp: pointer to an integer variable (will be overwritten) or NULL
>  *
>  * fdt_getprop() retrieves a pointer to the value of the property
> - * named 'name' of the node at offset nodeoffset (this will be a
> + * named @name of the node at offset @nodeoffset (this will be a
>  * pointer to within the device blob itself, not a copy of the value).
> - * If lenp is non-NULL, the length of the property value is also
> - * returned, in the integer pointed to by lenp.
> + * If @lenp is non-NULL, the length of the property value is also
> + * returned, in the integer pointed to by @lenp.
>  *
>  * returns:
>  *	pointer to the property's value
> @@ -552,7 +794,8 @@ const void *fdt_getprop_namelen(const void *fdt, int =
nodeoffset,
>  *	NULL, on error
>  *		if lenp is non-NULL, *lenp contains an error code (<0):
>  *		-FDT_ERR_NOTFOUND, node does not have named property
> - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> + *			tag
>  *		-FDT_ERR_BADMAGIC,
>  *		-FDT_ERR_BADVERSION,
>  *		-FDT_ERR_BADSTATE,
> @@ -587,11 +830,16 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeo=
ffset);
>  * @name: name of the alias th look up
>  * @namelen: number of characters of name to consider
>  *
> - * Identical to fdt_get_alias(), but only examine the first namelen
> - * characters of name for matching the alias name.
> + * Identical to fdt_get_alias(), but only examine the first @namelen
> + * characters of @name for matching the alias name.
> + *
> + * Return: a pointer to the expansion of the alias named @name, if it ex=
ists,
> + *	   NULL otherwise
>  */
> +#ifndef SWIG /* Not available in Python */
> const char *fdt_get_alias_namelen(const void *fdt,
> 				  const char *name, int namelen);
> +#endif
>=20
> /**
>  * fdt_get_alias - retrieve the path referenced by a given alias
> @@ -599,7 +847,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
>  * @name: name of the alias th look up
>  *
>  * fdt_get_alias() retrieves the value of a given alias.  That is, the
> - * value of the property named 'name' in the node /aliases.
> + * value of the property named @name in the node /aliases.
>  *
>  * returns:
>  *	a pointer to the expansion of the alias named 'name', if it exists
> @@ -624,7 +872,7 @@ const char *fdt_get_alias(const void *fdt, const char=
 *name);
>  *	0, on success
>  *		buf contains the absolute path of the node at
>  *		nodeoffset, as a NUL-terminated string.
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1=
)
>  *		characters and will not fit in the given buffer.
>  *	-FDT_ERR_BADMAGIC,
> @@ -654,11 +902,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, c=
har *buf, int buflen);
>  * structure from the start to nodeoffset.
>  *
>  * returns:
> -
>  *	structure block offset of the node at node offset's ancestor
>  *		of depth supernodedepth (>=3D0), on success
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> -*	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeof=
fset
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
> + *		nodeoffset
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -680,7 +928,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int=
 nodeoffset,
>  *
>  * returns:
>  *	depth of the node at nodeoffset (>=3D0), on success
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -703,7 +951,7 @@ int fdt_node_depth(const void *fdt, int nodeoffset);
>  * returns:
>  *	structure block offset of the parent of the node at nodeoffset
>  *		(>=3D0), on success
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -743,7 +991,7 @@ int fdt_parent_offset(const void *fdt, int nodeoffset=
);
>  *		 on success
>  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
>  *		tree after startoffset
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -775,14 +1023,13 @@ int fdt_node_offset_by_prop_value(const void *fdt,=
 int startoffset,
> int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
>=20
> /**
> - * fdt_node_check_compatible: check a node's compatible property
> + * fdt_node_check_compatible - check a node's compatible property
>  * @fdt: pointer to the device tree blob
>  * @nodeoffset: offset of a tree node
>  * @compatible: string to match against
>  *
> - *
>  * fdt_node_check_compatible() returns 0 if the given node contains a
> - * 'compatible' property with the given string as one of its elements,
> + * @compatible property with the given string as one of its elements,
>  * it returns non-zero otherwise, or on error.
>  *
>  * returns:
> @@ -790,7 +1037,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint=
32_t phandle);
>  *	1, if the node has a 'compatible' property, but it does not list
>  *		the given string
>  *	-FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
> - * 	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -827,7 +1074,7 @@ int fdt_node_check_compatible(const void *fdt, int n=
odeoffset,
>  *		 on success
>  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
>  *		tree after startoffset
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -846,15 +1093,160 @@ int fdt_node_offset_by_compatible(const void *fdt=
, int startoffset,
>  * one or more strings, each terminated by \0, as is found in a device tr=
ee
>  * "compatible" property.
>  *
> - * @return: 1 if the string is found in the list, 0 not found, or invali=
d list
> + * Return: 1 if the string is found in the list, 0 not found, or invalid=
 list
>  */
> int fdt_stringlist_contains(const char *strlist, int listlen, const char =
*str);
>=20
> +/**
> + * fdt_stringlist_count - count the number of strings in a string list
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of a tree node
> + * @property: name of the property containing the string list
> + *
> + * Return:
> + *   the number of strings in the given property
> + *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> + *   -FDT_ERR_NOTFOUND if the property does not exist
> + */
> +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *pr=
operty);
> +
> +/**
> + * fdt_stringlist_search - find a string in a string list and return its=
 index
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of a tree node
> + * @property: name of the property containing the string list
> + * @string: string to look up in the string list
> + *
> + * Note that it is possible for this function to succeed on property val=
ues
> + * that are not NUL-terminated. That's because the function will stop af=
ter
> + * finding the first occurrence of @string. This can for example happen =
with
> + * small-valued cell properties, such as #address-cells, when searching =
for
> + * the empty string.
> + *
> + * return:
> + *   the index of the string in the list of strings
> + *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> + *   -FDT_ERR_NOTFOUND if the property does not exist or does not contai=
n
> + *                     the given string
> + */
> +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *p=
roperty,
> +			  const char *string);
> +
> +/**
> + * fdt_stringlist_get() - obtain the string at a given index in a string=
 list
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of a tree node
> + * @property: name of the property containing the string list
> + * @index: index of the string to return
> + * @lenp: return location for the string length or an error code on fail=
ure
> + *
> + * Note that this will successfully extract strings from properties with
> + * non-NUL-terminated values. For example on small-valued cell propertie=
s
> + * this function will return the empty string.
> + *
> + * If non-NULL, the length of the string (on success) or a negative erro=
r-code
> + * (on failure) will be stored in the integer pointer to by lenp.
> + *
> + * Return:
> + *   A pointer to the string at the given index in the string list or NU=
LL on
> + *   failure. On success the length of the string will be stored in the =
memory
> + *   location pointed to by the lenp parameter, if non-NULL. On failure =
one of
> + *   the following negative error codes will be returned in the lenp par=
ameter
> + *   (if non-NULL):
> + *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> + *     -FDT_ERR_NOTFOUND if the property does not exist
> + */
> +const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
> +			       const char *property, int index,
> +			       int *lenp);
> +
> +/**********************************************************************/
> +/* Read-only functions (addressing related)                           */
> +/**********************************************************************/
> +
> +/**
> + * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
> + *
> + * This is the maximum value for #address-cells, #size-cells and
> + * similar properties that will be processed by libfdt.  IEE1275
> + * requires that OF implementations handle values up to 4.
> + * Implementations may support larger values, but in practice higher
> + * values aren't used.
> + */
> +#define FDT_MAX_NCELLS		4
> +
> +/**
> + * fdt_address_cells - retrieve address size for a bus represented in th=
e tree
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node to find the address size for
> + *
> + * When the node has a valid #address-cells property, returns its value.
> + *
> + * returns:
> + *	0 <=3D n < FDT_MAX_NCELLS, on success
> + *      2, if the node has no #address-cells property
> + *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> + *		#address-cells property
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_address_cells(const void *fdt, int nodeoffset);
> +
> +/**
> + * fdt_size_cells - retrieve address range size for a bus represented in=
 the
> + *                  tree
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node to find the address range size for
> + *
> + * When the node has a valid #size-cells property, returns its value.
> + *
> + * returns:
> + *	0 <=3D n < FDT_MAX_NCELLS, on success
> + *      1, if the node has no #size-cells property
> + *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> + *		#size-cells property
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_size_cells(const void *fdt, int nodeoffset);
> +
> +
> /**********************************************************************/
> /* Write-in-place functions                                           */
> /**********************************************************************/
>=20
> /**
> + * fdt_setprop_inplace_namelen_partial - change a property's value,
> + *                                       but not its size
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + * @namelen: number of characters of name to consider
> + * @idx: index of the property to change in the array
> + * @val: pointer to data to replace the property value with
> + * @len: length of the property value
> + *
> + * Identical to fdt_setprop_inplace(), but modifies the given property
> + * starting from the given index, and using only the first characters
> + * of the name. It is useful when you want to manipulate only one value =
of
> + * an array and you have a string that doesn't end with \0.
> + *
> + * Return: 0 on success, negative libfdt error value otherwise
> + */
> +#ifndef SWIG /* Not available in Python */
> +int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
> +					const char *name, int namelen,
> +					uint32_t idx, const void *val,
> +					int len);
> +#endif
> +
> +/**
>  * fdt_setprop_inplace - change a property's value, but not its size
>  * @fdt: pointer to the device tree blob
>  * @nodeoffset: offset of the node whose property to change
> @@ -882,8 +1274,10 @@ int fdt_stringlist_contains(const char *strlist, in=
t listlen, const char *str);
>  *	-FDT_ERR_BADSTRUCTURE,
>  *	-FDT_ERR_TRUNCATED, standard meanings
>  */
> +#ifndef SWIG /* Not available in Python */
> int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
> 			const void *val, int len);
> +#endif
>=20
> /**
>  * fdt_setprop_inplace_u32 - change the value of a 32-bit integer propert=
y
> @@ -957,8 +1351,13 @@ static inline int fdt_setprop_inplace_u64(void *fdt=
, int nodeoffset,
>=20
> /**
>  * fdt_setprop_inplace_cell - change the value of a single-cell property
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node containing the property
> + * @name: name of the property to change the value of
> + * @val: new value of the 32-bit cell
>  *
>  * This is an alternative name for fdt_setprop_inplace_u32()
> + * Return: 0 on success, negative libfdt error number otherwise.
>  */
> static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
> 					   const char *name, uint32_t val)
> @@ -1020,7 +1419,46 @@ int fdt_nop_node(void *fdt, int nodeoffset);
> /* Sequential write functions                                         */
> /**********************************************************************/
>=20
> +/* fdt_create_with_flags flags */
> +#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
> +	/* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
> +	 * names in the fdt. This can result in faster creation times, but
> +	 * a larger fdt. */
> +
> +#define FDT_CREATE_FLAGS_ALL	(FDT_CREATE_FLAG_NO_NAME_DEDUP)
> +
> +/**
> + * fdt_create_with_flags - begin creation of a new fdt
> + * @buf: pointer to memory allocated where fdt will be created
> + * @bufsize: size of the memory space at fdt
> + * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
> + *
> + * fdt_create_with_flags() begins the process of creating a new fdt with
> + * the sequential write interface.
> + *
> + * fdt creation process must end with fdt_finished() to produce a valid =
fdt.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
> + *	-FDT_ERR_BADFLAGS, flags is not valid
> + */
> +int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
> +
> +/**
> + * fdt_create - begin creation of a new fdt
> + * @buf: pointer to memory allocated where fdt will be created
> + * @bufsize: size of the memory space at fdt
> + *
> + * fdt_create() is equivalent to fdt_create_with_flags() with flags=3D0.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
> + */
> int fdt_create(void *buf, int bufsize);
> +
> +int fdt_resize(void *fdt, void *buf, int bufsize);
> int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
> int fdt_finish_reservemap(void *fdt);
> int fdt_begin_node(void *fdt, const char *name);
> @@ -1035,10 +1473,29 @@ static inline int fdt_property_u64(void *fdt, con=
st char *name, uint64_t val)
> 	fdt64_t tmp =3D cpu_to_fdt64(val);
> 	return fdt_property(fdt, name, &tmp, sizeof(tmp));
> }
> +
> +#ifndef SWIG /* Not available in Python */
> static inline int fdt_property_cell(void *fdt, const char *name, uint32_t=
 val)
> {
> 	return fdt_property_u32(fdt, name, val);
> }
> +#endif
> +
> +/**
> + * fdt_property_placeholder - add a new property and return a ptr to its=
 value
> + *
> + * @fdt: pointer to the device tree blob
> + * @name: name of property to add
> + * @len: length of property value in bytes
> + * @valp: returns a pointer to where where the value should be placed
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_NOSPACE, standard meanings
> + */
> +int fdt_property_placeholder(void *fdt, const char *name, int len, void =
**valp);
> +
> #define fdt_property_string(fdt, name, str) \
> 	fdt_property(fdt, name, str, strlen(str)+1)
> int fdt_end_node(void *fdt);
> @@ -1055,7 +1512,8 @@ int fdt_pack(void *fdt);
> /**
>  * fdt_add_mem_rsv - add one memory reserve map entry
>  * @fdt: pointer to the device tree blob
> - * @address, @size: 64-bit values (native endian)
> + * @address: 64-bit start address of the reserve map entry
> + * @size: 64-bit size of the reserved region
>  *
>  * Adds a reserve map entry to the given blob reserving a region at
>  * address address of length size.
> @@ -1158,6 +1616,37 @@ int fdt_setprop(void *fdt, int nodeoffset, const c=
har *name,
> 		const void *val, int len);
>=20
> /**
> + * fdt_setprop_placeholder - allocate space for a property
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + * @len: length of the property value
> + * @prop_data: return pointer to property data
> + *
> + * fdt_setprop_placeholer() allocates the named property in the given no=
de.
> + * If the property exists it is resized. In either case a pointer to the
> + * property data is returned.
> + *
> + * This function may insert or delete data from the blob, and will
> + * therefore change the offsets of some existing nodes.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> + *		contain the new property value
> + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
> +			    int len, void **prop_data);
> +
> +/**
>  * fdt_setprop_u32 - set a property to a 32-bit integer
>  * @fdt: pointer to the device tree blob
>  * @nodeoffset: offset of the node whose property to change
> @@ -1229,8 +1718,14 @@ static inline int fdt_setprop_u64(void *fdt, int n=
odeoffset, const char *name,
>=20
> /**
>  * fdt_setprop_cell - set a property to a single cell value
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + * @val: 32-bit integer value for the property (native endian)
>  *
>  * This is an alternative name for fdt_setprop_u32()
> + *
> + * Return: 0 on success, negative libfdt error value otherwise.
>  */
> static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char =
*name,
> 				   uint32_t val)
> @@ -1269,6 +1764,36 @@ static inline int fdt_setprop_cell(void *fdt, int =
nodeoffset, const char *name,
> #define fdt_setprop_string(fdt, nodeoffset, name, str) \
> 	fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
>=20
> +
> +/**
> + * fdt_setprop_empty - set a property to an empty value
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + *
> + * fdt_setprop_empty() sets the value of the named property in the
> + * given node to an empty (zero length) value, or creates a new empty
> + * property if it does not already exist.
> + *
> + * This function may insert or delete data from the blob, and will
> + * therefore change the offsets of some existing nodes.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> + *		contain the new property value
> + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +#define fdt_setprop_empty(fdt, nodeoffset, name) \
> +	fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
> +
> /**
>  * fdt_appendprop - append to or create a property
>  * @fdt: pointer to the device tree blob
> @@ -1371,8 +1896,14 @@ static inline int fdt_appendprop_u64(void *fdt, in=
t nodeoffset,
>=20
> /**
>  * fdt_appendprop_cell - append a single cell value to a property
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + * @val: 32-bit integer value to append to the property (native endian)
>  *
>  * This is an alternative name for fdt_appendprop_u32()
> + *
> + * Return: 0 on success, negative libfdt error value otherwise.
>  */
> static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
> 				      const char *name, uint32_t val)
> @@ -1411,6 +1942,43 @@ static inline int fdt_appendprop_cell(void *fdt, i=
nt nodeoffset,
> 	fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
>=20
> /**
> + * fdt_appendprop_addrrange - append a address range property
> + * @fdt: pointer to the device tree blob
> + * @parent: offset of the parent node
> + * @nodeoffset: offset of the node to add a property at
> + * @name: name of property
> + * @addr: start address of a given range
> + * @size: size of a given range
> + *
> + * fdt_appendprop_addrrange() appends an address range value (start
> + * address and size) to the value of the named property in the given
> + * node, or creates a new property with that value if it does not
> + * already exist.
> + * If "name" is not specified, a default "reg" is used.
> + * Cell sizes are determined by parent's #address-cells and #size-cells.
> + *
> + * This function may insert data into the blob, and will therefore
> + * change the offsets of some existing nodes.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> + *		#address-cells property
> + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
> + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> + *		contain a new property
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
> +			     const char *name, uint64_t addr, uint64_t size);
> +
> +/**
>  * fdt_delprop - delete a property
>  * @fdt: pointer to the device tree blob
>  * @nodeoffset: offset of the node whose property to nop
> @@ -1438,16 +2006,21 @@ int fdt_delprop(void *fdt, int nodeoffset, const =
char *name);
>  * fdt_add_subnode_namelen - creates a new node based on substring
>  * @fdt: pointer to the device tree blob
>  * @parentoffset: structure block offset of a node
> - * @name: name of the subnode to locate
> + * @name: name of the subnode to create
>  * @namelen: number of characters of name to consider
>  *
> - * Identical to fdt_add_subnode(), but use only the first namelen
> - * characters of name as the name of the new node.  This is useful for
> + * Identical to fdt_add_subnode(), but use only the first @namelen
> + * characters of @name as the name of the new node.  This is useful for
>  * creating subnodes based on a portion of a larger string, such as a
>  * full path.
> + *
> + * Return: structure block offset of the created subnode (>=3D0),
> + *	   negative libfdt error value otherwise
>  */
> +#ifndef SWIG /* Not available in Python */
> int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> 			    const char *name, int namelen);
> +#endif
>=20
> /**
>  * fdt_add_subnode - creates a new node
> @@ -1461,11 +2034,13 @@ int fdt_add_subnode_namelen(void *fdt, int parent=
offset,
>  *
>  * This function will insert data into the blob, and will therefore
>  * change the offsets of some existing nodes.
> -
> + *
>  * returns:
> - *	structure block offset of the created nodeequested subnode (>=3D0), o=
n success
> + *	structure block offset of the created nodeequested subnode (>=3D0), o=
n
> + *		success
>  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
> - *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NOD=
E tag
> + *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NOD=
E
> + *		tag
>  *	-FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
>  *		the given name
>  *	-FDT_ERR_NOSPACE, if there is insufficient free space in the
> @@ -1503,10 +2078,45 @@ int fdt_add_subnode(void *fdt, int parentoffset, =
const char *name);
>  */
> int fdt_del_node(void *fdt, int nodeoffset);
>=20
> +/**
> + * fdt_overlay_apply - Applies a DT overlay on a base DT
> + * @fdt: pointer to the base device tree blob
> + * @fdto: pointer to the device tree overlay blob
> + *
> + * fdt_overlay_apply() will apply the given device tree overlay on the
> + * given base device tree.
> + *
> + * Expect the base device tree to be modified, even if the function
> + * returns an error.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, there's not enough space in the base device tree
> + *	-FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
> + *		properties in the base DT
> + *	-FDT_ERR_BADPHANDLE,
> + *	-FDT_ERR_BADOVERLAY,
> + *	-FDT_ERR_NOPHANDLES,
> + *	-FDT_ERR_INTERNAL,
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADOFFSET,
> + *	-FDT_ERR_BADPATH,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_overlay_apply(void *fdt, void *fdto);
> +
> /**********************************************************************/
> /* Debugging / informational functions                                */
> /**********************************************************************/
>=20
> const char *fdt_strerror(int errval);
>=20
> -#endif /* _LIBFDT_H */
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* LIBFDT_H */
> diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt=
/libfdt_env.h
> index 035bf75..03380d5 100644
> --- a/xen/include/xen/libfdt/libfdt_env.h
> +++ b/xen/include/xen/libfdt/libfdt_env.h
> @@ -1,22 +1,98 @@
> -#ifndef _LIBFDT_ENV_H
> -#define _LIBFDT_ENV_H
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> +#ifndef LIBFDT_ENV_H
> +#define LIBFDT_ENV_H
> +/*
> + * libfdt - Flat Device Tree manipulation
> + * Copyright (C) 2006 David Gibson, IBM Corporation.
> + * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> + */
>=20
> +#include <xen/config.h>
> #include <xen/types.h>
> #include <xen/string.h>
> #include <asm/byteorder.h>
> +#include <xen/stdbool.h>
>=20
> -typedef uint16_t fdt16_t;
> -typedef uint32_t fdt32_t;
> -typedef uint64_t fdt64_t;
> +#ifdef __CHECKER__
> +#define FDT_FORCE __attribute__((force))
> +#define FDT_BITWISE __attribute__((bitwise))
> +#else
> +#define FDT_FORCE
> +#define FDT_BITWISE
> +#endif
>=20
> -#define fdt16_to_cpu(x) be16_to_cpu(x)
> -#define cpu_to_fdt16(x) cpu_to_be16(x)
> -#define fdt32_to_cpu(x) be32_to_cpu(x)
> -#define cpu_to_fdt32(x) cpu_to_be32(x)
> -#define fdt64_to_cpu(x) be64_to_cpu(x)
> -#define cpu_to_fdt64(x) cpu_to_be64(x)
> +typedef uint16_t FDT_BITWISE fdt16_t;
> +typedef uint32_t FDT_BITWISE fdt32_t;
> +typedef uint64_t FDT_BITWISE fdt64_t;
> +
> +#define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
> +#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
> +#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1=
) << 16) | \
> +			 (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
> +#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1=
) << 48) | \
> +			 (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
> +			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
> +			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
>=20
> /* Xen-specific libfdt error code. */
> #define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
>=20
> -#endif /* _LIBFDT_ENV_H */
> +static inline uint16_t fdt16_to_cpu(fdt16_t x)
> +{
> +	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
> +}
> +static inline fdt16_t cpu_to_fdt16(uint16_t x)
> +{
> +	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
> +}
> +
> +static inline uint32_t fdt32_to_cpu(fdt32_t x)
> +{
> +	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
> +}
> +static inline fdt32_t cpu_to_fdt32(uint32_t x)
> +{
> +	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
> +}
> +
> +static inline uint64_t fdt64_to_cpu(fdt64_t x)
> +{
> +	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
> +}
> +static inline fdt64_t cpu_to_fdt64(uint64_t x)
> +{
> +	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
> +}
> +#undef CPU_TO_FDT64
> +#undef CPU_TO_FDT32
> +#undef CPU_TO_FDT16
> +#undef EXTRACT_BYTE
> +
> +#ifdef __APPLE__
> +#include <AvailabilityMacros.h>
> +
> +/* strnlen() is not available on Mac OS < 10.7 */
> +# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < =
\
> +                                         MAC_OS_X_VERSION_10_7)
> +
> +#define strnlen fdt_strnlen
> +
> +/*
> + * fdt_strnlen: returns the length of a string or max_count - which ever=
 is
> + * smallest.
> + * Input 1 string: the string whose size is to be determined
> + * Input 2 max_count: the maximum value returned by this function
> + * Output: length of the string or max_count (the smallest of the two)
> + */
> +static inline size_t fdt_strnlen(const char *string, size_t max_count)
> +{
> +    const char *p =3D memchr(string, 0, max_count);
> +    return p ? p - string : max_count;
> +}
> +
> +#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOW=
ED <
> +          MAC_OS_X_VERSION_10_7) */
> +
> +#endif /* __APPLE__ */
> +
> +#endif /* LIBFDT_ENV_H */
> --=20
> 2.7.4
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 14:49:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 14:49:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222445.384632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj0Wl-00027e-3O; Fri, 05 Nov 2021 14:49:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222445.384632; Fri, 05 Nov 2021 14:49:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj0Wl-00027X-0F; Fri, 05 Nov 2021 14:49:11 +0000
Received: by outflank-mailman (input) for mailman id 222445;
 Fri, 05 Nov 2021 14:49:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MQ27=PY=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mj0Wj-00027Q-Hv
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 14:49:09 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20612.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87964bf2-3e47-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 15:49:08 +0100 (CET)
Received: from DU2PR04CA0217.eurprd04.prod.outlook.com (2603:10a6:10:2b1::12)
 by DB9PR08MB7083.eurprd08.prod.outlook.com (2603:10a6:10:2c3::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 14:49:07 +0000
Received: from DB5EUR03FT013.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:2b1:cafe::79) by DU2PR04CA0217.outlook.office365.com
 (2603:10a6:10:2b1::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 14:49:06 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT013.mail.protection.outlook.com (10.152.20.105) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Fri, 5 Nov 2021 14:49:06 +0000
Received: ("Tessian outbound c71e1a752bff:v108");
 Fri, 05 Nov 2021 14:49:06 +0000
Received: from a18893f522ec.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 635C5986-293A-43AD-B6A6-13EF2E031ECD.1; 
 Fri, 05 Nov 2021 14:49:00 +0000
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a18893f522ec.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 05 Nov 2021 14:49:00 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB4264.eurprd08.prod.outlook.com (2603:10a6:20b:72::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Fri, 5 Nov
 2021 14:48:59 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4649.023; Fri, 5 Nov 2021
 14:48:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87964bf2-3e47-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Yb9cHsz5nA2sjAqdyO5YpbFgoJdxUPeYCL/2YE2yDBA=;
 b=RwUwwgsqaef3xoqhObZ4S7sRMEFwZgkaDl4Bs51DyBfydWJCKmWbOHA7P8Byh314wKYSbjmFkDuSAi9wZc4RBbn0JszrBov7ieGs2LWT1xmU2/X0CezsEqMAO391uPs6xxU7QjKy55Dp+cmFkutuGVWAZr8svocFMCtr9gGlFQs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 8384e98c0cde9658
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HgbCG7RU/emrwCRVBuf5aZcxc2T1JfWrbL00UvIBGxEKoOld944ie9URVPTt6aG/xq8EEq2weEuzubtfKBKLO9SvxNupCddx43U8R+VmDUUV944JIykz90bnVL09kyEvr4Hg+0Wl3LhSbg4EQ8+lWfsgmV4PjDerwiQuE9WE2ALlwSgL4FrZ520a7hIFLqa1Y3CcPHFvjeoK3Ly8JszFOH7Jp05HnUhEBbB3aYm7MZ/s7Q+5wp8XXOu0a/961sPZrf+CmjdZDrHKA4UZNX3Pr2lSJ8Q1rPClZyEDOrV8EhrN6+sWSTySru5lg3WRT+mhexkLNrAZDZAWsMoJJW97hA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Yb9cHsz5nA2sjAqdyO5YpbFgoJdxUPeYCL/2YE2yDBA=;
 b=mWxggqXTQO7oXV0CtI0OBKVOzeMc+voIFCDRrzb8MI1mEqtGV/+XPUt677Lg0KVI4Atpxf3FKvXHH/Eno1Q7nb0Q3xTsWAawOzXQsVowdSs5qXotTkNTOOMj0ALh/0SEZFKT9uGNgz0xgZMkDFhhVlXXhnPyWp3HdpDmHQMxT9kBId+ZdGfRpYoaPmm68FzZePYtz692GLsbMXWeKX2gttoNx7XoFDTAyc3qFdFYJCPXCYapgdIegqM2FSyIOTkEMN11AUrGUZtn93TFhn6uKVWQjhDUFTBTOlPPbQOZkpR0ep8w6ciIuy9tugWtcfMAbWchAAvU7zldG/fmzxRVYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Yb9cHsz5nA2sjAqdyO5YpbFgoJdxUPeYCL/2YE2yDBA=;
 b=RwUwwgsqaef3xoqhObZ4S7sRMEFwZgkaDl4Bs51DyBfydWJCKmWbOHA7P8Byh314wKYSbjmFkDuSAi9wZc4RBbn0JszrBov7ieGs2LWT1xmU2/X0CezsEqMAO391uPs6xxU7QjKy55Dp+cmFkutuGVWAZr8svocFMCtr9gGlFQs=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Vikram Garhwal <fnu.vikram@xilinx.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "julien@xen.org" <julien@xen.org>
Subject: Re: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
Thread-Topic: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
Thread-Index: AQHX0UQblDQwk25oXUS4+EmFAqHUdKvz+asAgAEMUwA=
Date: Fri, 5 Nov 2021 14:48:59 +0000
Message-ID: <38804A99-54B8-4694-AFB0-9AA9212562A7@arm.com>
References: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com>
 <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com>
 <alpine.DEB.2.22.394.2111041546030.284830@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2111041546030.284830@ubuntu-linux-20-04-desktop>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: f8d0f2c4-ec5c-49a9-0a7e-08d9a06b6ae9
x-ms-traffictypediagnostic: AM6PR08MB4264:|DB9PR08MB7083:
X-Microsoft-Antispam-PRVS:
	<DB9PR08MB7083F86AB35892649E3C074B9D8E9@DB9PR08MB7083.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 d1446Ypb/W9L8cB41Tlz2VB1JsZXyaYLAEWd6/Ke7W4+Uqe8eI7a4PLAr89TuLiG599SFYI0kGZrHbe02JphD0GmtAQZiFsYv+wgaOGboFt7sr+aGtChIcJppXm7666Zsk9RNdQ+5dYt0SoblrJwuzKJsCIWkcvAwyRlgKPjnEy9Ea4ZCoSQYJ8p1WktFZbN7BiBpvUGQ8HXyOD+mdI+grPRj2v+iJS1QJncwrg9YlrBpkml4w3RZPJe7PF5ILJyVrgw3/ZJuoGWUP6ZDMmXoe6GQCgC7nZKf7v5MEUgxRNiPQKRYCLIMvI2yu157L2v8cAZ1n3+q3xrkwEZxz2kNiTl/UoB1ngDrzA91Yzj/PJERt+dptVd+6SB0vV8YcXa6Pa6qRFyLa6Esuo9/4EDx0tOhnDCbGBa4ORQMUZVGV3fysDv5LzC5hnFuA1kWgGYtSNLyG1y3RisSEGOZ1bpDVkL3kcgREWMFqS7D2dNIGySf73Wl7i3R6fnyStLEaX6sf2b2e3/Djz5pYGrV6hOxEYkAmor1VqXLvJYWF7C7dE2lUTJviTDX5GEz1AHNAzev7yAp83tQHjbw2xs+2xFf1tFQotqrU7ySSlZXnzEPZ912CCNGAHk1HRtWjPwNorDvBsoQRn4/+B4vOOzHUZ1MbD1+S5jgGIpRW1U/xyLZN2XmJrztD9dQ0DlKsY8jOikKZmlbwE2QDi/yA4mbU/0qpboWOr9ZaxMTQR2J6dEdo9piL3x2OpuQr79uMUoeZPN
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(6506007)(8676002)(66446008)(66556008)(71200400001)(2906002)(66476007)(66946007)(53546011)(8936002)(2616005)(64756008)(5660300002)(26005)(6916009)(76116006)(6486002)(186003)(508600001)(15650500001)(91956017)(33656002)(86362001)(38100700002)(38070700005)(316002)(36756003)(83380400001)(6512007)(54906003)(122000001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <3E11ED5D6D5FEE4080FCC8822F51F7FA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4264
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT013.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	21ffe196-ee24-4ea2-2bdc-08d9a06b6684
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qzz1J7A+Yxj2/59HHqbdQLD0oU8If98kEUiy75ZGSPwJxl8ruy2WgetyJymJk6YAY4pszo1wiXoD/fd3uY7QZEaFO/C7Ayfc0sZkppnrIJ9S/qn9aXBwWE7hUImFOT1M1v4H1Riv3xbw6iR4lfZzdB7aSfm0OBnQJLqIXtJCdTIHlYWVc3OP1Y6U2I1IkBMrGp/FZlV43z/tRzBtfkxGEcFsKGbopTLoRE7bTSiNOnLDQanyUU6v2zYdOurmEvDdBlvSxjo9GZQxlG4LaA1NZcKN7H0M/XpN7OGDNnmOB/j/CjPf9/S+MM+meNyI89BKMW8YXR0P7KK1dd4KDzmWR7BE73ZVWXKeicbJIuURs/fWnOm2CIgdbWuKOMOgHdRrbs6ght3GRQPl45YJD0ffb1LY6xhP3tffNTLk1YlPw5tdfRLvUy7VNirYuOQbvurcGRQCOiyGwnnFAB5LkSFwPzy91wOAvhmCVwZF1mX9DmsS+eUEuoJlKq22ImEyZFHOiVFjsmNwt/AGv63KDewTRJWl6xd/vFMVKAl2Qe7F7GdNlgfXvGMcTtkHvxHXeVbBvEj5zkx6d0Nu7LaCJ6kHt7/FD7/oc5/XE5QHPG2yaD0elAjEXmFmhbzRNLGwI4vpEuvMtJri4PEE+7y7F+hbWRMeXxa+yS8xhJ7IBhr8lBPOgkb82e4nsrvIcQUyBdUbPZedStRq2ebtalR5lA4WsQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(186003)(53546011)(70206006)(33656002)(70586007)(6506007)(356005)(36860700001)(8936002)(54906003)(36756003)(316002)(2906002)(47076005)(26005)(4326008)(15650500001)(86362001)(6486002)(336012)(82310400003)(508600001)(6512007)(81166007)(5660300002)(83380400001)(2616005)(8676002)(6862004);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 14:49:06.5163
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f8d0f2c4-ec5c-49a9-0a7e-08d9a06b6ae9
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT013.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7083

Hi Stefano,

> On 4 Nov 2021, at 22:48, Stefano Stabellini <sstabellini@kernel.org> wrot=
e:
>=20
> On Wed, 3 Nov 2021, Vikram Garhwal wrote:
>> Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dt=
c.
>> This update is done to support device tree overlays.
>>=20
>> A few minor changes are done to make it compatible with Xen:
>> fdt_overlay.c: overlay_fixup_phandle()
>>    Replace  strtoul() simple_strtoul() as strtoul() is not available in =
Xen lib
>>    and included lib.h.
>>    Change char *endptr to const char *endptr.
>>=20
>> libfdt_env.h:
>>    Changed path for config.h and stdbool.h. Remaining Xen changes to
>>    libfdt_env.h carried over from existing libfdt (v1.4.0)
>=20
> Hi Vikram, thanks for the patch!
>=20
> Would you be able to split this patch into two patches:
>=20
> - the first patch pulls in the new libfdt
> - the second patch makes the necessary changes to make it compatible
>  with Xen
>=20
> I understand that the first patch alone would break the build, but they
> can be easily squashed together on commit. And reading the two patches
> separately it would make them a lot easier to review.

Actually the diff will be quite small and limited to what was said by Vikra=
m
here but will break the build.

I manually checked by comparing libfdt directory in xen with the one in dtc
and could not find other differences than the one mentioned by Vikram or
stuff done before in Xen in the env header which was carried over.

So I would not say splitting is needed here.

Cheers
Bertrand


>=20



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 15:18:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 15:18:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222455.384643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj0yX-0005J8-8i; Fri, 05 Nov 2021 15:17:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222455.384643; Fri, 05 Nov 2021 15:17:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj0yX-0005J1-4z; Fri, 05 Nov 2021 15:17:53 +0000
Received: by outflank-mailman (input) for mailman id 222455;
 Fri, 05 Nov 2021 15:17:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj0yV-0005Ir-6y; Fri, 05 Nov 2021 15:17:51 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj0yU-0001LQ-Rk; Fri, 05 Nov 2021 15:17:50 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj0yU-0003Bk-HV; Fri, 05 Nov 2021 15:17:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mj0yU-0004OB-H0; Fri, 05 Nov 2021 15:17:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=9LCXE8aKn8S1TKiBPfH9dCktVPoqpBG3WCTsqpuRff4=; b=sB3FJyCA5aGbWCXpaoc/gUqfLL
	cbsmvav2QmZCw5lkjimSF3rSVdpoyu0owP2ynMfXL1me5WKzUBCoOQZm8MD5v80DV/IZOwrYhXuzW
	EwKuYAUyPv07e8BskCCHWOYIP/cQiK1SFylpTrIYYZIYcWT98eg9zdLj4qyj4H8l852Y=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166049-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166049: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=faddd16e367530fe4de5480610f69d8ceb6011d8
X-Osstest-Versions-That:
    xen=512863ed238d7390f74d43f0ba298b1dfa8f4803
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Nov 2021 15:17:50 +0000

flight 166049 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166049/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166043
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166043
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166043
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166043
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166043
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166043
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166043
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166043
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166043
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166043
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166043
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166043
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  faddd16e367530fe4de5480610f69d8ceb6011d8
baseline version:
 xen                  512863ed238d7390f74d43f0ba298b1dfa8f4803

Last test of basis   166043  2021-11-04 07:49:14 Z    1 days
Testing same since   166049  2021-11-05 01:54:00 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   512863ed23..faddd16e36  faddd16e367530fe4de5480610f69d8ceb6011d8 -> master


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 15:25:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 15:25:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222471.384680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj15b-00074p-Gg; Fri, 05 Nov 2021 15:25:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222471.384680; Fri, 05 Nov 2021 15:25:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj15b-00074i-Dh; Fri, 05 Nov 2021 15:25:11 +0000
Received: by outflank-mailman (input) for mailman id 222471;
 Fri, 05 Nov 2021 15:25:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3fan=PY=dingwall.me.uk=james@srs-se1.protection.inumbo.net>)
 id 1mj15a-00073q-4k
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:25:10 +0000
Received: from smarthost01c.ixn.mail.zen.net.uk
 (smarthost01c.ixn.mail.zen.net.uk [212.23.1.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c2aede9-3e4c-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 16:25:05 +0100 (CET)
Received: from [217.155.64.189] (helo=mail0.xen.dingwall.me.uk)
 by smarthost01c.ixn.mail.zen.net.uk with esmtpsa
 (TLS1.0:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1)
 (envelope-from <james@dingwall.me.uk>)
 id 1mj15S-0008EZ-IW; Fri, 05 Nov 2021 15:25:02 +0000
Received: from localhost (localhost [IPv6:::1])
 by mail0.xen.dingwall.me.uk (Postfix) with ESMTP id 8D1BF1CCC97;
 Fri,  5 Nov 2021 15:25:01 +0000 (GMT)
Received: from mail0.xen.dingwall.me.uk ([127.0.0.1])
 by localhost (mail0.xen.dingwall.me.uk [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id DPkqon5_M_OX; Fri,  5 Nov 2021 15:25:01 +0000 (GMT)
Received: from ghoul.dingwall.me.uk (ghoul.dingwall.me.uk
 [IPv6:2a02:8010:698e:302::c0a8:1c8])
 by dingwall.me.uk (Postfix) with ESMTP id 715BF1CCC94;
 Fri,  5 Nov 2021 15:25:01 +0000 (GMT)
Received: by ghoul.dingwall.me.uk (Postfix, from userid 1000)
 id 633DF1DA; Fri,  5 Nov 2021 15:25:01 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c2aede9-3e4c-11ec-a9d2-d9f7a1cc8784
X-Virus-Scanned: Debian amavisd-new at dingwall.me.uk
Date: Fri, 5 Nov 2021 15:25:01 +0000
From: James Dingwall <james-xen@dingwall.me.uk>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
Subject: Re: xen 4.11.4 incorrect (~3x) cpu frequency reported
Message-ID: <20211105152501.GA485838@dingwall.me.uk>
References: <20210721092958.GA2502468@dingwall.me.uk>
 <c9c6778d-9823-4b07-fb48-604acef1f3de@suse.com>
 <20210726123332.GA3844057@dingwall.me.uk>
 <06be7360-0235-3773-b833-3e0d65512092@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <06be7360-0235-3773-b833-3e0d65512092@suse.com>
X-Originating-smarthost01c-IP: [217.155.64.189]
Feedback-ID: 217.155.64.189

Hi Jan,

On Fri, Nov 05, 2021 at 01:50:04PM +0100, Jan Beulich wrote:
> On 26.07.2021 14:33, James Dingwall wrote:
> > Hi Jan,
> > 
> > Thank you for taking the time to reply.
> > 
> > On Wed, Jul 21, 2021 at 12:59:11PM +0200, Jan Beulich wrote:
> >> On 21.07.2021 11:29, James Dingwall wrote:
> >>> We have a system which intermittently starts up and reports an incorrect cpu frequency:
> >>>
> >>> # grep -i mhz /var/log/kern.log 
> >>> Jul 14 17:47:47 dom0 kernel: [    0.000475] tsc: Detected 2194.846 MHz processor
> >>> Jul 14 22:03:37 dom0 kernel: [    0.000476] tsc: Detected 2194.878 MHz processor
> >>> Jul 14 23:05:13 dom0 kernel: [    0.000478] tsc: Detected 2194.848 MHz processor
> >>> Jul 14 23:20:47 dom0 kernel: [    0.000474] tsc: Detected 2194.856 MHz processor
> >>> Jul 14 23:57:39 dom0 kernel: [    0.000476] tsc: Detected 2194.906 MHz processor
> >>> Jul 15 01:04:09 dom0 kernel: [    0.000476] tsc: Detected 2194.858 MHz processor
> >>> Jul 15 01:27:15 dom0 kernel: [    0.000482] tsc: Detected 2194.870 MHz processor
> >>> Jul 15 02:00:13 dom0 kernel: [    0.000481] tsc: Detected 2194.924 MHz processor
> >>> Jul 15 03:09:23 dom0 kernel: [    0.000475] tsc: Detected 2194.892 MHz processor
> >>> Jul 15 03:32:50 dom0 kernel: [    0.000482] tsc: Detected 2194.856 MHz processor
> >>> Jul 15 04:05:27 dom0 kernel: [    0.000480] tsc: Detected 2194.886 MHz processor
> >>> Jul 15 05:00:38 dom0 kernel: [    0.000473] tsc: Detected 2194.914 MHz processor
> >>> Jul 15 05:59:33 dom0 kernel: [    0.000480] tsc: Detected 2194.924 MHz processor
> >>> Jul 15 06:22:31 dom0 kernel: [    0.000474] tsc: Detected 2194.910 MHz processor
> >>> Jul 15 17:52:57 dom0 kernel: [    0.000474] tsc: Detected 2194.854 MHz processor
> >>> Jul 15 18:51:36 dom0 kernel: [    0.000474] tsc: Detected 2194.900 MHz processor
> >>> Jul 15 19:07:26 dom0 kernel: [    0.000478] tsc: Detected 2194.902 MHz processor
> >>> Jul 15 19:43:56 dom0 kernel: [    0.000154] tsc: Detected 6895.384 MHz processor
> >>
> >> Well, this is output from Dom0. What we'd need to see (in addition)
> >> is the corresponding hypervisor log at maximum verbosity (loglvl=all).
> > 
> > This was just to illustrate that the dom0 usually reports the correct speed.  I'll update the xen boot options with loglvl=all and try to collect the boot messages for each case.
> > 
> >>
> >>> The xen 's' debug output:
> >>>
> >>> (XEN) TSC marked as reliable, warp = 0 (count=4)
> >>> (XEN) dom1: mode=0,ofs=0x1d1ac8bf8e,khz=6895385,inc=1
> >>> (XEN) dom2: mode=0,ofs=0x28bc24c746,khz=6895385,inc=1
> >>> (XEN) dom3: mode=0,ofs=0x345696b138,khz=6895385,inc=1
> >>> (XEN) dom4: mode=0,ofs=0x34f2635f31,khz=6895385,inc=1
> >>> (XEN) dom5: mode=0,ofs=0x3581618a7d,khz=6895385,inc=1
> >>> (XEN) dom6: mode=0,ofs=0x3627ca68b2,khz=6895385,inc=1
> >>> (XEN) dom7: mode=0,ofs=0x36dd491860,khz=6895385,inc=1
> >>> (XEN) dom8: mode=0,ofs=0x377a57ea1a,khz=6895385,inc=1
> >>> (XEN) dom9: mode=0,ofs=0x381eb175ce,khz=6895385,inc=1
> >>> (XEN) dom10: mode=0,ofs=0x38cab2e260,khz=6895385,inc=1
> >>> (XEN) dom11: mode=0,ofs=0x397fc47387,khz=6895385,inc=1
> >>> (XEN) dom12: mode=0,ofs=0x3a552762a0,khz=6895385,inc=1
> >>>
> >>> A processor from /proc/cpuinfo in dom0:
> >>>
> >>> processor       : 3
> >>> vendor_id       : GenuineIntel
> >>> cpu family      : 6
> >>> model           : 85
> >>> model name      : Intel(R) Xeon(R) D-2123IT CPU @ 2.20GHz
> >>> stepping        : 4
> >>> microcode       : 0x2000065
> >>> cpu MHz         : 6895.384
> >>> [...]
> >>>
> >>> Xen has been built at 310ab79875cb705cc2c7daddff412b5a4899f8c9 from the stable-4.12 branch.
> >>
> >> While this contradicts the title, both 4.11 and 4.12 are out of general
> >> support. Hence it would be more helpful if you could obtain respective
> >> logs with a more modern version of Xen - ideally from the master branch,
> >> or else the most recent stable one (4.15). Provided of course the issue
> >> continues to exist there in the first place.
> > 
> > That was my error, I meant the stable-4.11 branch.  We have a development environment based around 4.14.2 which I can test.
> 
> I'm sorry to ask, but have you got around to actually doing that? Or
> else is resolving this no longer of interest?

We have recorded a couple of other occurences on 4.11 but it is happening so
infrequently (probably once every few hundred boots) that further investigation
is low on a long list of tasks.  We are also moving to 4.14.3 and so far have
no occurences with that version.

Thanks,
James


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 15:29:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 15:29:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222479.384692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj19v-0007hk-2q; Fri, 05 Nov 2021 15:29:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222479.384692; Fri, 05 Nov 2021 15:29:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj19u-0007hd-Vm; Fri, 05 Nov 2021 15:29:38 +0000
Received: by outflank-mailman (input) for mailman id 222479;
 Fri, 05 Nov 2021 15:29:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ebf4=PY=intel.com=lucas.demarchi@srs-se1.protection.inumbo.net>)
 id 1mj19t-0007hX-Mi
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:29:37 +0000
Received: from mga09.intel.com (mga09.intel.com [134.134.136.24])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2c8de263-3e4d-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 16:29:34 +0100 (CET)
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Nov 2021 08:29:31 -0700
Received: from lucas-s2600cw.jf.intel.com (HELO lucas-S2600CW)
 ([10.165.21.202])
 by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Nov 2021 08:29:31 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c8de263-3e4d-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10158"; a="231764256"
X-IronPort-AV: E=Sophos;i="5.87,212,1631602800"; 
   d="scan'208";a="231764256"
X-IronPort-AV: E=Sophos;i="5.87,212,1631602800"; 
   d="scan'208";a="668276282"
Date: Fri, 5 Nov 2021 08:29:36 -0700
From: Lucas De Marchi <lucas.demarchi@intel.com>
To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Daniel Vetter <daniel.vetter@ffwll.ch>
Subject: Re: [PATCH 2/2] x86/mm: nuke PAGE_KERNEL_IO
Message-ID: <20211105152936.vp4xikbg23uob7n3@lucas-S2600CW>
References: <20211021181511.1533377-1-lucas.demarchi@intel.com>
 <20211021181511.1533377-3-lucas.demarchi@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Disposition: inline
In-Reply-To: <20211021181511.1533377-3-lucas.demarchi@intel.com>

Hi, gentle ping on this. Is it something that could go through the tip
tree?

thanks
Lucas De Marchi

On Thu, Oct 21, 2021 at 11:15:11AM -0700, Lucas De Marchi wrote:
>PAGE_KERNEL_IO is only defined for x86 and nowadays is the same as
>PAGE_KERNEL. It was different for some time, OR'ing a `_PAGE_IOMAP` flag
>in commit be43d72835ba ("x86: add _PAGE_IOMAP pte flag for IO
>mappings").  This got removed in commit f955371ca9d3 ("x86: remove the
>Xen-specific _PAGE_IOMAP PTE flag"), so today they are just the same.
>
>With the last users outside arch/x86 being remove we can now remove
>PAGE_KERNEL_IO.
>
>Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
>---
> arch/x86/include/asm/fixmap.h        | 2 +-
> arch/x86/include/asm/pgtable_types.h | 7 -------
> arch/x86/mm/ioremap.c                | 2 +-
> arch/x86/xen/setup.c                 | 2 +-
> include/asm-generic/fixmap.h         | 2 +-
> 5 files changed, 4 insertions(+), 11 deletions(-)
>
>diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h
>index d0dcefb5cc59..5e186a69db10 100644
>--- a/arch/x86/include/asm/fixmap.h
>+++ b/arch/x86/include/asm/fixmap.h
>@@ -173,7 +173,7 @@ static inline void __set_fixmap(enum fixed_addresses idx,
>  * supported for MMIO addresses, so make sure that the memory encryption
>  * mask is not part of the page attributes.
>  */
>-#define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_IO_NOCACHE
>+#define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_NOCACHE
>
> /*
>  * Early memremap routines used for in-place encryption. The mappings created
>diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
>index 40497a9020c6..a87224767ff3 100644
>--- a/arch/x86/include/asm/pgtable_types.h
>+++ b/arch/x86/include/asm/pgtable_types.h
>@@ -199,10 +199,6 @@ enum page_cache_mode {
> #define __PAGE_KERNEL_WP	 (__PP|__RW|   0|___A|__NX|___D|   0|___G| __WP)
>
>
>-#define __PAGE_KERNEL_IO		__PAGE_KERNEL
>-#define __PAGE_KERNEL_IO_NOCACHE	__PAGE_KERNEL_NOCACHE
>-
>-
> #ifndef __ASSEMBLY__
>
> #define __PAGE_KERNEL_ENC	(__PAGE_KERNEL    | _ENC)
>@@ -223,9 +219,6 @@ enum page_cache_mode {
> #define PAGE_KERNEL_LARGE_EXEC	__pgprot_mask(__PAGE_KERNEL_LARGE_EXEC | _ENC)
> #define PAGE_KERNEL_VVAR	__pgprot_mask(__PAGE_KERNEL_VVAR       | _ENC)
>
>-#define PAGE_KERNEL_IO		__pgprot_mask(__PAGE_KERNEL_IO)
>-#define PAGE_KERNEL_IO_NOCACHE	__pgprot_mask(__PAGE_KERNEL_IO_NOCACHE)
>-
> #endif	/* __ASSEMBLY__ */
>
> /*         xwr */
>diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
>index 026031b3b782..3102dda4b152 100644
>--- a/arch/x86/mm/ioremap.c
>+++ b/arch/x86/mm/ioremap.c
>@@ -243,7 +243,7 @@ __ioremap_caller(resource_size_t phys_addr, unsigned long size,
> 	 * make sure the memory encryption attribute is enabled in the
> 	 * resulting mapping.
> 	 */
>-	prot = PAGE_KERNEL_IO;
>+	prot = PAGE_KERNEL;
> 	if ((io_desc.flags & IORES_MAP_ENCRYPTED) || encrypted)
> 		prot = pgprot_encrypted(prot);
>
>diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
>index 8bfc10330107..5dc0771a50f3 100644
>--- a/arch/x86/xen/setup.c
>+++ b/arch/x86/xen/setup.c
>@@ -435,7 +435,7 @@ static unsigned long __init xen_set_identity_and_remap_chunk(
> 	for (pfn = start_pfn; pfn <= max_pfn_mapped && pfn < end_pfn; pfn++)
> 		(void)HYPERVISOR_update_va_mapping(
> 			(unsigned long)__va(pfn << PAGE_SHIFT),
>-			mfn_pte(pfn, PAGE_KERNEL_IO), 0);
>+			mfn_pte(pfn, PAGE_KERNEL), 0);
>
> 	return remap_pfn;
> }
>diff --git a/include/asm-generic/fixmap.h b/include/asm-generic/fixmap.h
>index 8cc7b09c1bc7..f1b0c6f3d0be 100644
>--- a/include/asm-generic/fixmap.h
>+++ b/include/asm-generic/fixmap.h
>@@ -54,7 +54,7 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr)
> #define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_NOCACHE
> #endif
> #ifndef FIXMAP_PAGE_IO
>-#define FIXMAP_PAGE_IO PAGE_KERNEL_IO
>+#define FIXMAP_PAGE_IO PAGE_KERNEL
> #endif
> #ifndef FIXMAP_PAGE_CLEAR
> #define FIXMAP_PAGE_CLEAR __pgprot(0)
>-- 
>2.33.1
>
>


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 15:33:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 15:33:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222485.384703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1DU-0000d8-JS; Fri, 05 Nov 2021 15:33:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222485.384703; Fri, 05 Nov 2021 15:33:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1DU-0000d1-G9; Fri, 05 Nov 2021 15:33:20 +0000
Received: by outflank-mailman (input) for mailman id 222485;
 Fri, 05 Nov 2021 15:33:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj1DT-0000cv-Lu
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:33:19 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b232a093-3e4d-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 16:33:18 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id A9BC161245;
 Fri,  5 Nov 2021 15:33:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b232a093-3e4d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636126396;
	bh=H9UUUqkgOcHzQWMv8LWu8HE74C6jUXBkpgUx5V8aikY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KgDt1A3WFQSDVKUVHCYfq+8pn9jxEoNky+EeCT4jxow3TpokFtLbX0bX0y0cFJQ0q
	 SRFseoY86GRcsF1k2wADtp3zCE9YYH5Hkdeb+KskWtaMrpxxF5KYizNd4ADffoyHAi
	 aCmnuBFN3xuOaVrj/dmssRY9L42PrssGaFzYzmPJqgPAihnt5Ljq2slzHpiIOGruEZ
	 NVYly1K/lt3g0mceW5g1zJbK7ntg1OAOTG8OsjGeIzc96/Kp+uhian+eglONw5Abrj
	 W/FIaW+57Ypbsvdn8+x7vztXJhhoMvGf45fwohY7GIOQvCGT6Ps8DR8QenGxyjSZpi
	 z8tNTk/DZeyaA==
Date: Fri, 5 Nov 2021 08:33:14 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com, 
    Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
References: <20211104141206.25153-1-luca.fancellu@arm.com> <81685961-501e-7a41-6f6f-bc4491645264@suse.com> <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop> <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop> <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com> <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop> <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-2108625499-1636126396=:284830"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-2108625499-1636126396=:284830
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 5 Nov 2021, Jan Beulich wrote:
> On 04.11.2021 22:50, Stefano Stabellini wrote:
> > On Thu, 4 Nov 2021, Luca Fancellu wrote:
> >>> On 4 Nov 2021, at 21:35, Stefano Stabellini <sstabellini@kernel.org> wrote:
> >>> On Thu, 4 Nov 2021, Luca Fancellu wrote:
> >>>>> On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.org> wrote:
> >>>>> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >>>>> * dom0 and domU guests to be loaded.
> >>>>> * Returns the number of multiboot modules found or a negative number for error.
> >>>>> */
> >>>>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> >>>>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> >>>>> {
> >>>>>    int chosen, node, addr_len, size_len;
> >>>>>    unsigned int i = 0, modules_found = 0;
> >>>>> +    EFI_FILE_HANDLE dir_handle;
> >>>>> +    CHAR16 *file_name;
> >>>>> +
> >>>>> +    dir_handle = get_parent_handle(loaded_image, &file_name);
> >>>>
> >>>> We can’t use get_parent_handle here because we will end up with the same problem,
> >>>> we would need to use the filesystem if and only if we need to use it, 
> >>>
> >>> Understood, but it would work the same way as this version of the patch:
> >>> if we end up calling read_file with dir_handle == NULL, then read_file
> >>> would do:
> >>>
> >>>  blexit(L"Error: No access to the filesystem");
> >>>
> >>> If we don't end up calling read_file, then everything works even if
> >>> dir_handle == NULL. Right?
> >>
> >> Oh yes sorry my bad Stefano! Having this version of the patch, it will work.
> >>
> >> My understanding was instead that the Jan suggestion is to revert the place
> >> of call of get_parent_handle (like in your code diff), but also to remove the
> >> changes to get_parent_handle and read_file.
> >> I guess Jan will specify his preference, but if he meant the last one, then
> >> the only way I see...
> > 
> > I think we should keep the changes to get_parent_handle and read_file,
> > otherwise it will make it awkward, and those changes are good in their
> > own right anyway.
> 
> As a maintainer of this code I'm afraid I have to say that I disagree.
> These changes were actually part of the reason why I went and looked
> how things could (and imo ought to be) done differently.

You know this code and EFI booting better than me -- aren't you
concerned about Xen calling get_parent_handle / dir_handle->Close so
many times (by allocate_module_file)?

My main concern is performance and resource utilization. With v3 of the
patch get_parent_handle will get called for every module to be loaded.
With dom0less, it could easily get called 10 times or more. Taking a
look at get_parent_handle, the Xen side doesn't seem small and I have
no idea how the EDK2 side looks. I am just worried that it would
actually have an impact on boot times (also depending on the bootloader
implementation).
--8323329-2108625499-1636126396=:284830--


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 15:39:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 15:39:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222492.384714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1Iq-0001Hw-73; Fri, 05 Nov 2021 15:38:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222492.384714; Fri, 05 Nov 2021 15:38:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1Iq-0001Hp-3v; Fri, 05 Nov 2021 15:38:52 +0000
Received: by outflank-mailman (input) for mailman id 222492;
 Fri, 05 Nov 2021 15:38:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OnCM=PY=freebsd.org=royger@srs-se1.protection.inumbo.net>)
 id 1mj1Ip-0001Hj-4h
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:38:51 +0000
Received: from mx2.freebsd.org (mx2.freebsd.org [96.47.72.81])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 780c6c80-3e4e-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 16:38:49 +0100 (CET)
Received: from mx1.freebsd.org (mx1.freebsd.org [96.47.72.80])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits)
 client-signature RSA-PSS (4096 bits))
 (Client CN "mx1.freebsd.org", Issuer "R3" (verified OK))
 by mx2.freebsd.org (Postfix) with ESMTPS id DD6D4851DA;
 Fri,  5 Nov 2021 15:38:47 +0000 (UTC)
 (envelope-from royger@FreeBSD.org)
Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
 client-signature RSA-PSS (4096 bits) client-digest SHA256)
 (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4Hm4RW5g4Fz4rcM;
 Fri,  5 Nov 2021 15:38:47 +0000 (UTC)
 (envelope-from royger@FreeBSD.org)
Received: from localhost (unknown [93.176.190.2])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate) (Authenticated sender: royger)
 by smtp.freebsd.org (Postfix) with ESMTPSA id 48F037B57;
 Fri,  5 Nov 2021 15:38:47 +0000 (UTC)
 (envelope-from royger@FreeBSD.org)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 780c6c80-3e4e-11ec-9787-a32c541c8605
Date: Fri, 5 Nov 2021 16:38:40 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <royger@FreeBSD.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
Message-ID: <YYVQAH7OYmFSVOei@Air-de-Roger>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>

On Fri, Nov 05, 2021 at 01:32:18PM +0100, Jan Beulich wrote:
> While commit 46c4061cd2bf ("x86/IOMMU: mark IOMMU / intremap not in use
> when ACPI tables are missing") deals with apic_x2apic_probe() as called
> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
> affected: The call needs to occur after acpi_iommu_init(), such that
> iommu_intremap getting disabled there can be properly taken into account
> by apic_x2apic_probe().
> 
> Note that, for the time being (further cleanup patches following),
> reversing the order of the calls to generic_apic_probe() and
> acpi_boot_init() is not an option:
> - acpi_process_madt() calls clustered_apic_check() and hence relies on
>   genapic to have got filled before,
> - generic_bigsmp_probe() (called from acpi_process_madt()) needs to
>   occur after generic_apic_probe(),
> - acpi_parse_madt() (called from acpi_process_madt()) calls
>   acpi_madt_oem_check(), which wants to be after generic_apic_probe().
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Based on code inspection only - I have no affected system and hence no
> way to actually test the case.
> ---
> v2: Don't move generic_apic_probe() invocation, instead pull out
>     acpi_iommu_init() from acpi_boot_init().
> ---
> 4.16: While investigating the issue addressed by the referenced commit,
>       a variant of that problem was identified when firmware pre-enables
>       x2APIC mode. Whether that's something sane firmware would do when
>       at the same time IOMMU(s) is/are disabled is unclear, so this may
>       be a purely academical consideration. Working around the problem
>       also ought to be as simple as passing "iommu=no-intremap" on the
>       command line. Considering the fragility of the code (as further
>       demonstrated by v1 having been completely wrong), it may therefore
>       be advisable to defer this change until after branching.
>       Nevertheless it will then be a backporting candidate, so
>       considering to take it right away can't simply be put off.

The main issue here would be missing a dependency between
acpi_iommu_init and the rest of acpi_boot_init, apart from the
existing dependencies between acpi_iommu_init and generic_apic_probe.

> 
> --- a/xen/arch/x86/acpi/boot.c
> +++ b/xen/arch/x86/acpi/boot.c
> @@ -757,8 +757,6 @@ int __init acpi_boot_init(void)
>  
>  	acpi_mmcfg_init();
>  
> -	acpi_iommu_init();
> -
>  	erst_init();
>  
>  	acpi_hest_init();
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1699,6 +1699,13 @@ void __init noreturn __start_xen(unsigne
>  
>      dmi_scan_machine();
>  
> +    /*
> +     * IOMMU-related ACPI table parsing has to happen before APIC probing, for
> +     * check_x2apic_preenabled() to be able to observe respective findings, in
> +     * particular iommu_intremap having got turned off.
> +     */
> +    acpi_iommu_init();

If we pull this out I think we should add a check for acpi_disabled
and if set turn off iommu_intremap and iommu_enable?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 15:41:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 15:41:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222499.384725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1LF-0002ex-Ju; Fri, 05 Nov 2021 15:41:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222499.384725; Fri, 05 Nov 2021 15:41:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1LF-0002eq-Gv; Fri, 05 Nov 2021 15:41:21 +0000
Received: by outflank-mailman (input) for mailman id 222499;
 Fri, 05 Nov 2021 15:41:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj1LE-0002ei-Md
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:41:20 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1698c69-3e4e-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 16:41:19 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id B1FE56125F;
 Fri,  5 Nov 2021 15:41:17 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1698c69-3e4e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636126877;
	bh=HnhtG5FvSyIA75ZwEw1CvVr/rFaWgLWI6dajxsws5m4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=iDjSQZSIAbrpVa/Hrym65um/PCCdVIGOuHr7yTP9Z6QR8cYfbr7jRCfbnvGHcesRp
	 C5YuDx/hQP5mpm/bwAh1w+YYW5bhxwjF1i3oshmHeEXqvU8qqnW6yKxbGmKd8vvMki
	 4QcEMMoLluqoTsgjlUenphKYrsRnAyIAobVL3/+iOAzJUYurZtF9Qj+8Mov5EVSmF5
	 QMIgajrw3dRZfNDoVNOh1ROCiAVfQM+7d7J9jVqE4jfae38leR6K9s0Q93VTi/QmTN
	 zBMTLj7/fnWkLCYM8Y3MsX41W+uSzY/+zyi3QN5hgQgBKC7z2avUfxFqzFExen3eTE
	 nQnxCN8o3iv7Q==
Date: Fri, 5 Nov 2021 08:41:17 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Penny Zheng <Penny.Zheng@arm.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Wei Chen <Wei.Chen@arm.com>
Subject: RE: static-mem preventing dom0 from booting
In-Reply-To: <DU2PR08MB7325A7A5658B1EB7C6EB4DECF78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
Message-ID: <alpine.DEB.2.22.394.2111050836580.284830@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop> <DU2PR08MB73256624607E7624CAAD38E5F78E9@DU2PR08MB7325.eurprd08.prod.outlook.com> <DU2PR08MB7325A7A5658B1EB7C6EB4DECF78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 5 Nov 2021, Penny Zheng wrote:
> > -----Original Message-----
> > From: Penny Zheng
> > Sent: Friday, November 5, 2021 11:23 AM
> > To: Stefano Stabellini <sstabellini@kernel.org>
> > Cc: xen-devel@lists.xenproject.org; Wei Chen <Wei.Chen@arm.com>
> > Subject: RE: static-mem preventing dom0 from booting
> > 
> > Hi Stefano
> > 
> > > -----Original Message-----
> > > From: Stefano Stabellini <sstabellini@kernel.org>
> > > Sent: Friday, November 5, 2021 9:36 AM
> > > To: Penny Zheng <Penny.Zheng@arm.com>
> > > Cc: sstabellini@kernel.org; xen-devel@lists.xenproject.org
> > > Subject: static-mem preventing dom0 from booting
> > >
> > > Hi Penny,
> > >
> > > I am trying to test the static-mem feature in Xen 4.16 but I am having
> > > some issues. I can boot a dom0less domU with static-mem configured
> > > correctly, but when I do so, dom0 doesn't boot any longer.
> > >
> > 
> > Hmm, In our first intention, dom0less is a mandatory option for static
> > allocation.
> > domU on static allocation shall boot when dom0 doesn't boot there.
> > 
> > We think that, nevertheless, dom0 memory range is allocated by Xen
> > automatically, and it leads to the unpredictability. Static allocation through
> > device tree configuration prefers the total static environment to avoid
> > unpredictability.
> > 
> > > In the same configuration, if I remove the static-mem related lines
> > > from the domU node on device tree, both dom0 and domU boot successfully.
> > >
> > > I am sure the dom0 memory range, allocated by Xen automatically, and
> > > the domU memory range, hand-picked by me, do not clash as you can see
> > > from the boot logs (appended).
> > >
> > > Am I missing anything in the configuration? I am using a ZCU102 board,
> > > the memory node on the host device tree is:
> > >
> > 
> > Are you suggesting one scenario where dom0 with static-mem domU?
> > 
> > Hmmm, one quick thought, it may not be working with vpl011 emulation.
> > When dom0 exists, vpl011 will take dom0 as backend, which requests event
> > channel, xen store, etc, involved to communicate. but static-mem domU
> > without CONFIG_XEN shall not handle it.
> > 
> 
> Digging on this, and my misunderstanding. Domain created through device tree
> shall use xen as backend, not dom0. I guess that only the one created by xl is using
> dom0 as backend.
> 
> Nevertheless, if this is your scenario, where dom0 and static-mem domU(NO CONFIG_XEN) co-exists,
> I'll test for you.

The scenario is extremely simple; you can see the full device tree
configuration in the attachment to my previous email.

- dom0
- dom0less domU with static-mem

That's it! So basically it is just a normal dom0 + dom0less domU
configuration, which already works fine, where I added static-mem to the
domU and suddenly dom0 (not the domU!) stopped working.


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 15:45:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 15:45:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222505.384736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1Oc-0003L8-7K; Fri, 05 Nov 2021 15:44:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222505.384736; Fri, 05 Nov 2021 15:44:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1Oc-0003L1-47; Fri, 05 Nov 2021 15:44:50 +0000
Received: by outflank-mailman (input) for mailman id 222505;
 Fri, 05 Nov 2021 15:44:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj1Oa-0003Kv-NT
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:44:48 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d513fee-3e4f-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 16:44:47 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 94C3F61108;
 Fri,  5 Nov 2021 15:44:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d513fee-3e4f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636127085;
	bh=Yy6HyThmQ15NAkTjlEucZ9OKI+rlfpz7Du/A3lWiud4=;
	h=Date:From:To:cc:Subject:From;
	b=bWkJbwoBy1WSMN9x7ioxt8OVBrBD7pZPi2w6HLG0R12+pE3pOi9VoqIHrkr53yfTs
	 WPODzW5ZLkUDWrmGmSPgLefrK3LpTc6Nv1qHXskeXRC1h1imCUubZHyc7aP8Kz1W+E
	 V1OGVKHLPOzReRtxzHR1+BIyBnFNsr5VbAOoWIwcwMitMSmkPn2o/31kxxaNJ2TRRj
	 /hXpa3PV/eBhrC9s4IlP7XMoD5J3LFgu9lzbuRR+LCGJVNCiukIMZgmohUtFaVgLb2
	 Bl9l/SwwBQdjYTOtq0C53e/ChNr1rYRVQpZZL1mXvHZhZSMO5qwXfMHDr+YTKeNS7J
	 SVVMa1da+VyZg==
Date: Fri, 5 Nov 2021 08:44:45 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: sstabellini@kernel.org, julien@xen.org, bertrand.marquis@arm.com, 
    Volodymyr_Babchuk@epam.com
Subject: [PATCH v2] MAINTAINERS: add Bertrand to the ARM reviewers
Message-ID: <alpine.DEB.2.22.394.2111050843450.284830@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>

diff --git a/MAINTAINERS b/MAINTAINERS
index 9be4ad653a..4956db1011 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -232,6 +232,7 @@ ARM (W/ VIRTUALISATION EXTENSIONS) ARCHITECTURE
 M:	Stefano Stabellini <sstabellini@kernel.org>
 M:	Julien Grall <julien@xen.org>
 R:	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
+R:	Bertrand Marquis <bertrand.marquis@arm.com>
 S:	Supported
 L:	xen-devel@lists.xenproject.org
 F:	docs/misc/arm/


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 15:47:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 15:47:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222510.384747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1Rd-0003yW-Ly; Fri, 05 Nov 2021 15:47:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222510.384747; Fri, 05 Nov 2021 15:47:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1Rd-0003yP-Ik; Fri, 05 Nov 2021 15:47:57 +0000
Received: by outflank-mailman (input) for mailman id 222510;
 Fri, 05 Nov 2021 15:47:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mj1Rb-0003yJ-Ty
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:47:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mj1Rb-0001sN-P9
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:47:55 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mj1Rb-0005he-Na
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:47:55 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mj1RW-0006TW-9J; Fri, 05 Nov 2021 15:47:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=WK95rS3U7D7PlYqAjxWco2D1Q6J5eJ8pU+e/1MfMVf0=; b=yaoHUC+M2m7kYv1JQZypxVVeTF
	ilG+Jo+JsU2lD/L8No2Hi/Ow2X2qB7EAYqel+NSMSjkESvcBj3EDxFGQmsOc1p4MJh8EGoZZbKefW
	pOwS1Yp5qNM2TyGvDkoa6j5EqTQvLCx8kdcB+Sg+igKW3YLC+b98UfDVgY40ENZWMdbI=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24965.21029.795504.152439@mariner.uk.xensource.com>
Date: Fri, 5 Nov 2021 15:47:49 +0000
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <royger@FreeBSD.org>
Cc: Jan Beulich <jbeulich@suse.com>,
    "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
In-Reply-To: <YYVQAH7OYmFSVOei@Air-de-Roger>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
	<43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
	<YYVQAH7OYmFSVOei@Air-de-Roger>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monn writes ("Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU ACPI table parsing"):
> > 4.16: While investigating the issue addressed by the referenced commit,
> >       a variant of that problem was identified when firmware pre-enables
> >       x2APIC mode. Whether that's something sane firmware would do when
> >       at the same time IOMMU(s) is/are disabled is unclear, so this may
> >       be a purely academical consideration. Working around the problem
> >       also ought to be as simple as passing "iommu=no-intremap" on the
> >       command line. Considering the fragility of the code (as further
> >       demonstrated by v1 having been completely wrong), it may therefore
> >       be advisable to defer this change until after branching.

Thanks for the frank analysis.

> The main issue here would be missing a dependency between
> acpi_iommu_init and the rest of acpi_boot_init, apart from the
> existing dependencies between acpi_iommu_init and generic_apic_probe.

I have been thinking about this.  I'm still not sure.

> >       Nevertheless it will then be a backporting candidate, so
> >       considering to take it right away can't simply be put off.

This part confused me.  Under what circumstances would we backport
this ?  AIUI it would be backporting a potentially-fragile and
not-readily-testable bugfix, for a theoretical scenario with a
straightforward workaround.

Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 16:00:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 16:00:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222520.384757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1d0-0005RB-P0; Fri, 05 Nov 2021 15:59:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222520.384757; Fri, 05 Nov 2021 15:59:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1d0-0005R4-Lv; Fri, 05 Nov 2021 15:59:42 +0000
Received: by outflank-mailman (input) for mailman id 222520;
 Fri, 05 Nov 2021 15:59:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MQ27=PY=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mj1cz-0005Qy-5c
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 15:59:41 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2062c.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 619548bb-3e51-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 16:59:40 +0100 (CET)
Received: from AS9PR05CA0052.eurprd05.prod.outlook.com (2603:10a6:20b:489::10)
 by AM5PR0802MB2402.eurprd08.prod.outlook.com (2603:10a6:203:a1::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 15:59:36 +0000
Received: from AM5EUR03FT007.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:489:cafe::4c) by AS9PR05CA0052.outlook.office365.com
 (2603:10a6:20b:489::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Fri, 5 Nov 2021 15:59:36 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT007.mail.protection.outlook.com (10.152.16.145) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Fri, 5 Nov 2021 15:59:36 +0000
Received: ("Tessian outbound d49ee2bec50d:v108");
 Fri, 05 Nov 2021 15:59:36 +0000
Received: from fcce8ae85782.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 95FBC594-6754-4499-B235-7A3F927FA9CC.1; 
 Fri, 05 Nov 2021 15:59:29 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id fcce8ae85782.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 05 Nov 2021 15:59:29 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM5PR0802MB2403.eurprd08.prod.outlook.com (2603:10a6:203:9f::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 15:59:28 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4649.023; Fri, 5 Nov 2021
 15:59:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 619548bb-3e51-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZSwQQx6s66SDQWrufre0csSS3wES0mHK2akKgQLxuCc=;
 b=sLkcJy4cmmqj6lk3TvrYcnY5ZsuzZLV23LsIZB/wInNg6jSg2SdhCMJ0XOqwI6Ev3xaiSukFSFcQKoZdJQaN4RQ4O64TGU3y4sPJ4OpyevHgSzYw2rIES/uMJ9QOKHgQ5Lxuq+8B6WCFHPmBN4s12ol3/RVCqf1clT71vECmW+w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 20b12c2ad44c8d70
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SETyip8QjeINGjHrOzfrEQLTk2d0Q1063N4Yo5GbjxuO7HDiAXgKe8E7puq9XU2YVqdJtA8WY4WwC7L7v3RXxYftDpqs1JLaW/2jPAIMK3aPaGlmlWP4Rqv/ObFhySTBiayrZ9Avt/AYGk4rX1GDYPf33XO/Qf8gNgzGtiMdiWAPPPy6CNJ20pfd9hfIWLULhmPSBdITIqmRrERbb3L3PthtuPPErePZC3WJRyboUyFwRDfRfK08/7QhL8FwcczYB/5yCIXN3gFURVn7NSfAb1Y9+JXTNY5V5Gj3b8VQf0LM3SZbszfNB1LwDvahUWBpRdMVpkibdtaYcLQUDDttAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZSwQQx6s66SDQWrufre0csSS3wES0mHK2akKgQLxuCc=;
 b=SxHJVjVed5T6rI2O9DTQos4Ip1rZYn50KKY7sJIyXqJkiwfB4mzDutBapkv7eyi3YJQfuDXj9WZVwMS3KV6Xo6OBRlY2scEispLnFo1tSyqFRtqW5AflhYSYPtCsIprxQ7euvgEmxrJz2OC3LO2OjUNeaA56BFKsnCtiDlVxbteu1dgLttUKTfK0n6AL5Rxb9EmK4LuS5x0wYDwz+ov2OXjGXSmZttUadHNBQ2Hztz07N1angYemQTGnZpYiQSVdbD7GUpbTyJKEVScurJT6JP+d9zlfUERs0zbHy2mcxhDO3Gfd5T3uSGXDFn1Q1G+FaEmKfB9SuEZDE/iDIHXT8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZSwQQx6s66SDQWrufre0csSS3wES0mHK2akKgQLxuCc=;
 b=sLkcJy4cmmqj6lk3TvrYcnY5ZsuzZLV23LsIZB/wInNg6jSg2SdhCMJ0XOqwI6Ev3xaiSukFSFcQKoZdJQaN4RQ4O64TGU3y4sPJ4OpyevHgSzYw2rIES/uMJ9QOKHgQ5Lxuq+8B6WCFHPmBN4s12ol3/RVCqf1clT71vECmW+w=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"julien@xen.org" <julien@xen.org>, "Volodymyr_Babchuk@epam.com"
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2] MAINTAINERS: add Bertrand to the ARM reviewers
Thread-Topic: [PATCH v2] MAINTAINERS: add Bertrand to the ARM reviewers
Thread-Index: AQHX0lwUbMqNNPfAlUOn9lEHPYC846v1F4EA
Date: Fri, 5 Nov 2021 15:59:28 +0000
Message-ID: <2725DA19-860D-4A23-AA76-0A1F31256B75@arm.com>
References:
 <alpine.DEB.2.22.394.2111050843450.284830@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2111050843450.284830@ubuntu-linux-20-04-desktop>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 4daa4749-dd66-4854-27b9-08d9a0754432
x-ms-traffictypediagnostic: AM5PR0802MB2403:|AM5PR0802MB2402:
X-Microsoft-Antispam-PRVS:
	<AM5PR0802MB2402A3596755258A356ED9F29D8E9@AM5PR0802MB2402.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:454;OLM:454;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 u1Cj5thrALhPq9HcH5zv0Expi7UyNbUPGBAxV2j56pnOIdJQbg3O1jRWQ4ETEiKAWiahhYqnukSVpQDalyt5w+iCSKwiF7o3goQQz2F47krG7Uoo2v27tHcyMPVLPnhZvTX0F0pKSmFdsToaGhZ+x+ci5BrrV8b9UF5UotaJYkNWp9O3QHdABaOJYdhUVaScXv3b+U88gxPyNQGPAyJlSbkrby+jpaeFKHyRQ6BWBCWuBICYMkGrGc1eK6X0rGAP7Bj8a7LUNgMkci4DS4PhpHGfz5MtifqbZrc+8r2fBaQM9EBYdFHcs6vb6C58/D57kQ2wsqn/L/6dtKZiNrk7k0mmmVLWg6bwcDNlj/Oi9YWSilzYIvNsjYtrpOiMC0JBMR5GvQpL4cV+BTHq8H6YrHHgAnm/PDyOnHY7GEiiXYNtb2UMYyTecgz9lKfpOsu8Nrq7pKQQ3/uJV9hv1jsxhg3f8WNEj2U47NazNjpnqPk9Rd1w19cX3EADZACM0W/SYGyeP8KU3Gyepg/0HbGk+P3Jy4lObb9ZUK41wyGwQAi3dvAkqc5LPFCr8aw0gCBVtZwRVrTAGs9guNNxJJt4xYySyARdt/lImJfppKDUREBmHmW9Z0HtW7cvV0oJREtLh9y2f3kaB7LvW175fKBJ1LVhOsETCtBbiRfIQ3y0xovgXh5xCPyk5+jHWXqfb3su+QHBJQ6e5hkb4PG4+dk5oYTYMTnU/KBK0PHisn0YNyeh7IethuMyCaWVWxnypnxE
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(316002)(38100700002)(26005)(36756003)(4326008)(5660300002)(2906002)(66946007)(91956017)(64756008)(66446008)(66556008)(71200400001)(66476007)(8676002)(122000001)(6916009)(76116006)(53546011)(8936002)(33656002)(54906003)(38070700005)(86362001)(6506007)(6486002)(186003)(2616005)(6512007)(508600001)(4744005)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <A2A3DA0C4A85C746A8275552466A4E53@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2403
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT007.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5aafd9d4-470c-4f20-3583-08d9a0753f64
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	DiWFtWzUk+XBJxTNw1PdaW+GvRQCmNGm+j34lQbuiDkvOkkXmJ7HIP2PC8BkrGmt1ahwdUJ2TrnIkGcPIrqxxpoMny73zNbhV8H8QXFzP41w6WcHozgGj+6rw36bFvXECoLsNFT9O6OjBIzXjDK9HazeyouDa6J3mu9YIu2ieXP+70AK5AC8j8r3hZE/YiqiUTDJbM/vaQWj43DM0Uf8A1klMBGud4ikBY0FJ9Hk5050O6dluolZYxSVTCRFscU+Fd2jr85xQqBSrLP+CRTm0bhcxEfEqZVSkJqtwsnfw2eomeDpaTm37Wi8aE5Yhp+36BghxHbwRx1fRt1hPuTp3H3QRqaO3dOiKxb/dGtg3oq7RaOd98jjwx6jKjt5td/YFGfPo0JrBIYZYps81zx6cjZDeKlHnzCHCBrF8WVFG42M3WF75uDLJwh9Onvne28n1gXXOs0zGCvzdo/tkDcL3m4pusmL1uA7C0W8ZNPnWPHu16DamAsD/nGTUuEl0G8gEMvCZP3l6konnRWpyeK8hGKSN7UE46jjnk8SZmYAWs8ArvHEDWIInuYIO6CySvl3BVnEjLngv/KaCWlWFmYXFWGJWxuJProwZV00dxJl9LZGXBB3T9cfYA1LLdxQ5pK56eOVUpIXmpZYQQ4nN3rmTb3k5a4mmbkXIFSr+u66tq9p6JxsTB/TRls4zarwHIqIa7xcmZoMX4Wzonm38ScPgg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(6506007)(316002)(36860700001)(70586007)(6486002)(336012)(36756003)(186003)(26005)(508600001)(33656002)(82310400003)(8676002)(53546011)(356005)(54906003)(8936002)(70206006)(4744005)(47076005)(2906002)(6862004)(107886003)(5660300002)(4326008)(81166007)(6512007)(2616005)(86362001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 15:59:36.4851
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4daa4749-dd66-4854-27b9-08d9a0754432
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT007.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2402

Hi Stefano

> On 5 Nov 2021, at 15:44, Stefano Stabellini <sstabellini@kernel.org> wrot=
e:
>=20
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>

Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

>=20
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 9be4ad653a..4956db1011 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -232,6 +232,7 @@ ARM (W/ VIRTUALISATION EXTENSIONS) ARCHITECTURE
> M:	Stefano Stabellini <sstabellini@kernel.org>
> M:	Julien Grall <julien@xen.org>
> R:	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> +R:	Bertrand Marquis <bertrand.marquis@arm.com>
> S:	Supported
> L:	xen-devel@lists.xenproject.org
> F:	docs/misc/arm/



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 16:00:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 16:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222524.384773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1dX-000759-2g; Fri, 05 Nov 2021 16:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222524.384773; Fri, 05 Nov 2021 16:00:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1dW-000752-Vt; Fri, 05 Nov 2021 16:00:14 +0000
Received: by outflank-mailman (input) for mailman id 222524;
 Fri, 05 Nov 2021 16:00:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mj1dV-00074d-Li
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:00:13 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mj1dV-0002ct-L2
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:00:13 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mj1dV-0006UQ-K5
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:00:13 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mj1dQ-0006XM-F7; Fri, 05 Nov 2021 16:00:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=cuLXzqj2MTmxb5XVYiKnZ8/NeOInZqx3U7QuSrUiu7Q=; b=xFB5ePKfoiTfnK3LbJnyG129G2
	ygSXrAy4V9VjIXgL4MOtdpjdXvXdAPrgLGctfTlK3sdlsfzl4lW7sMth7eyjRTv6bjX5qJLCmHXri
	CikbpbREkdU3w3uAMYIe6X6AScF7q5VquudWZfJ11KH3L1bEYI3P47GGz9hVUAYBrGH8=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24965.21767.924957.937812@mariner.uk.xensource.com>
Date: Fri, 5 Nov 2021 16:00:07 +0000
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
    "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Wei  Chen <Wei.Chen@arm.com>,
    Stefano  Stabellini <sstabellini@kernel.org>,
    Julien Grall <julien@xen.org>,
    Volodymyr  Babchuk <Volodymyr_Babchuk@epam.com>,
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <445836DF-C831-4478-B4C7-2D98E2258FD2@arm.com>
References: <20211105130728.30648-1-luca.fancellu@arm.com>
	<445836DF-C831-4478-B4C7-2D98E2258FD2@arm.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Bertrand Marquis writes ("Re: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64"):
> > Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> > Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> > Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Thanks all, pushed.

Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 16:21:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 16:21:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222536.384783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1xZ-0001DH-TP; Fri, 05 Nov 2021 16:20:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222536.384783; Fri, 05 Nov 2021 16:20:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1xZ-0001DA-PV; Fri, 05 Nov 2021 16:20:57 +0000
Received: by outflank-mailman (input) for mailman id 222536;
 Fri, 05 Nov 2021 16:20:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj1xX-0001D4-RU
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:20:55 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59461bae-3e54-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 17:20:54 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id ED82B60187;
 Fri,  5 Nov 2021 16:20:52 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59461bae-3e54-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636129253;
	bh=d6juSpA7LnBXFINiGa7f7mQ4sgx85iIEZoxbiPJ55Hg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Kwf4Ecz4+SmPXYnfoWYAWWj3/hed07nW9iLRubOsG6narpTic5RtP2/QtqMr07OXP
	 0Cuov758sVbne8kg+QB5xIKvoxiy3xpvWKcvx4PWNqcDra0Zvj3kAMe04kDKFhqrKb
	 AtqtEqf/0ggKYOryLwNLTd/JEHwgGLXMnUrtzg1FkTK/8OvUtPhcWWFF9oGrnL1AOh
	 X/Pa+O8BmzmLH2OkhD7DVjno5eh3dTWbhcgMkWrMlBAIdHJbuPp7yZlzd6tWqIAQJs
	 Zk+U10X9VRNnX61amweRijVH19V+7nB0MAITitrWFhPHM/ZiEaMs6tgudxB1iEBmGh
	 mABXP96uTwvGw==
Date: Fri, 5 Nov 2021 09:20:52 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ian Jackson <iwj@xenproject.org>
cc: Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Luca Fancellu <Luca.Fancellu@arm.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Wei  Chen <Wei.Chen@arm.com>, Stefano  Stabellini <sstabellini@kernel.org>, 
    Julien Grall <julien@xen.org>, 
    Volodymyr  Babchuk <Volodymyr_Babchuk@epam.com>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <24965.21767.924957.937812@mariner.uk.xensource.com>
Message-ID: <alpine.DEB.2.22.394.2111050914390.284830@ubuntu-linux-20-04-desktop>
References: <20211105130728.30648-1-luca.fancellu@arm.com> <445836DF-C831-4478-B4C7-2D98E2258FD2@arm.com> <24965.21767.924957.937812@mariner.uk.xensource.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 5 Nov 2021, Ian Jackson wrote:
> Bertrand Marquis writes ("Re: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64"):
> > > Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> > > Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> > > Reviewed-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
> 
> Thanks all, pushed.

Hey Ian,

I had a question for Jan, but in reply to the previous version of the
patch so you might have missed it:

https://lore.kernel.org/all/alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop/


However, the concern is about resource utilization and slowness, rather
than correctness, so I think the version of the patch you committed
should work OK (unless it turns out that with broken EFI firmware
opening HandleProtocol/OpenVolume and closing it many times causes
some sort of error.) So maybe for 4.16 we are OK as is and we can make
any changes (if necessary) for 4.17.


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 16:23:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 16:23:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222541.384795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1zm-0001nt-9R; Fri, 05 Nov 2021 16:23:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222541.384795; Fri, 05 Nov 2021 16:23:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj1zm-0001nm-6L; Fri, 05 Nov 2021 16:23:14 +0000
Received: by outflank-mailman (input) for mailman id 222541;
 Fri, 05 Nov 2021 16:23:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mj1zk-0001ng-EQ
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:23:12 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mj1zk-00031o-C2
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:23:12 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mj1zk-00087J-AL
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:23:12 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mj1zd-0006bx-D4; Fri, 05 Nov 2021 16:23:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=nMKZ3UYv/kkT4uVQ4Ooy+r3P3hVBcGwfDbCLXpwqLa0=; b=uAxVHL3IIA9J0YD11XNcQT/ed8
	z32oCVBjEmhvqjVJzsSlwMu9Uy18M+RaJ0lFze+ZfX9B6sdnUL1cEBNpboauOFHhkVqRKEhLUg9pd
	gFzWO+9agjCd6A1lPDkoDKzes/3DznY2IvwODwW5kxLu/poHWnDC2XkHSiHfYnV/yF6E=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24965.23144.983207.25672@mariner.uk.xensource.com>
Date: Fri, 5 Nov 2021 16:23:04 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>,
    Luca Fancellu <Luca.Fancellu@arm.com>,
    "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Wei  Chen <Wei.Chen@arm.com>,
    Julien Grall <julien@xen.org>,
    Volodymyr  Babchuk <Volodymyr_Babchuk@epam.com>,
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <alpine.DEB.2.22.394.2111050914390.284830@ubuntu-linux-20-04-desktop>
References: <20211105130728.30648-1-luca.fancellu@arm.com>
	<445836DF-C831-4478-B4C7-2D98E2258FD2@arm.com>
	<24965.21767.924957.937812@mariner.uk.xensource.com>
	<alpine.DEB.2.22.394.2111050914390.284830@ubuntu-linux-20-04-desktop>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Stefano Stabellini writes ("Re: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64"):
> I had a question for Jan, but in reply to the previous version of the
> patch so you might have missed it:
> 
> https://lore.kernel.org/all/alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop/

Ah.  Yes.  I saw that but hadn't realised it might be a blocker.

> However, the concern is about resource utilization and slowness, rather
> than correctness, so I think the version of the patch you committed
> should work OK (unless it turns out that with broken EFI firmware
> opening HandleProtocol/OpenVolume and closing it many times causes
> some sort of error.) So maybe for 4.16 we are OK as is and we can make
> any changes (if necessary) for 4.17.

I hope you are OK with this being in-tree now.  If not please let me
know ASAP and I could revert it.  I'd be happy to consider a followup
patch on its merits, of course.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 16:47:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 16:47:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222550.384806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj2MQ-0004As-Au; Fri, 05 Nov 2021 16:46:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222550.384806; Fri, 05 Nov 2021 16:46:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj2MQ-0004Al-6I; Fri, 05 Nov 2021 16:46:38 +0000
Received: by outflank-mailman (input) for mailman id 222550;
 Fri, 05 Nov 2021 16:46:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mj2MP-0004Af-0N
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:46:37 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mj2MN-0003P9-OO; Fri, 05 Nov 2021 16:46:35 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[192.168.21.75]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mj2MN-00016g-Hj; Fri, 05 Nov 2021 16:46:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=pOmkKuBgOvy/pXXr8VH1SFyPw02pwmcPyAMYHdnzDrs=; b=yrj3v9KDrteVS1v+Lg6tzpfcz0
	c9x+6onNY8q0fZTc+WGmHG3LzNm1rxT3ymF7RBZUIv1r0w0iOWpNiShALESl0X771K+h5O6kAeQ7R
	uip5Bk+H95xN3RgGoz0z+AxtbKGGc39nvncGaQwXNaJfT6HKebxmb5v9paLko+VNxtVk=;
Message-ID: <a19a844b-672e-8630-fc60-f41d20760b49@xen.org>
Date: Fri, 5 Nov 2021 16:46:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v2] MAINTAINERS: add Bertrand to the ARM reviewers
To: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Ian Jackson <iwj@xenproject.org>
Cc: bertrand.marquis@arm.com, Volodymyr_Babchuk@epam.com
References: <alpine.DEB.2.22.394.2111050843450.284830@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111050843450.284830@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

(+ Ian)

On 05/11/2021 15:44, Stefano Stabellini wrote:
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>

Acked-by: Julien Grall <jgrall@amazon.com>

@Ian, do we need a release-acked-by for this?

Cheers,

> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 9be4ad653a..4956db1011 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -232,6 +232,7 @@ ARM (W/ VIRTUALISATION EXTENSIONS) ARCHITECTURE
>   M:	Stefano Stabellini <sstabellini@kernel.org>
>   M:	Julien Grall <julien@xen.org>
>   R:	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> +R:	Bertrand Marquis <bertrand.marquis@arm.com>
>   S:	Supported
>   L:	xen-devel@lists.xenproject.org
>   F:	docs/misc/arm/
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 16:49:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 16:49:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222557.384817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj2On-0004q5-T2; Fri, 05 Nov 2021 16:49:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222557.384817; Fri, 05 Nov 2021 16:49:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj2On-0004py-Q7; Fri, 05 Nov 2021 16:49:05 +0000
Received: by outflank-mailman (input) for mailman id 222557;
 Fri, 05 Nov 2021 16:49:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj2Om-0004pq-KF
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:49:04 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47b702f8-3e58-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 17:49:03 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 81A3761037;
 Fri,  5 Nov 2021 16:49:01 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47b702f8-3e58-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636130941;
	bh=Ob6jmUVFHpoqp+Bd6PCq3dkOFXqAwnB25Cvt93I8oD8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kKzFo2OpPKHkjszXUh+r7Efm/L0h64e5hq5SXWvCLHVwO2KMk8KYlXFisK8DxyKr/
	 k89/UqqY1WTcH2WikNoqyIJw6e6y4NJ2FpT4JFQXIT6BLdnwamxH8z6D67PbALAsjK
	 oWTdTkVhfj3xi20/CcmpH+Hx7eZ55EPBuiAF3dO/fE9lNtmv0H5LvuBg2+jydyirgp
	 9odQa/RAB0oJBgNrzLELr9G7s9GH/1LeEpUppJekJyykjYCvDFKXB7RLXo+bnDdffW
	 uSBGa6JrUAhrtZqG0UUsKBPbvUrwG52WI+iI1eaQskkhYcx/Gd0xZ8MOe8jAxla4bX
	 kp1Gf8M7VFUTg==
Date: Fri, 5 Nov 2021 09:49:00 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ian Jackson <iwj@xenproject.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Luca Fancellu <Luca.Fancellu@arm.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Wei  Chen <Wei.Chen@arm.com>, Julien Grall <julien@xen.org>, 
    Volodymyr  Babchuk <Volodymyr_Babchuk@epam.com>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <24965.23144.983207.25672@mariner.uk.xensource.com>
Message-ID: <alpine.DEB.2.22.394.2111050947360.284830@ubuntu-linux-20-04-desktop>
References: <20211105130728.30648-1-luca.fancellu@arm.com> <445836DF-C831-4478-B4C7-2D98E2258FD2@arm.com> <24965.21767.924957.937812@mariner.uk.xensource.com> <alpine.DEB.2.22.394.2111050914390.284830@ubuntu-linux-20-04-desktop>
 <24965.23144.983207.25672@mariner.uk.xensource.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 5 Nov 2021, Ian Jackson wrote:
> Stefano Stabellini writes ("Re: [PATCH-4.16 v4] xen/efi: Fix Grub2 boot on arm64"):
> > I had a question for Jan, but in reply to the previous version of the
> > patch so you might have missed it:
> > 
> > https://lore.kernel.org/all/alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop/
> 
> Ah.  Yes.  I saw that but hadn't realised it might be a blocker.
> 
> > However, the concern is about resource utilization and slowness, rather
> > than correctness, so I think the version of the patch you committed
> > should work OK (unless it turns out that with broken EFI firmware
> > opening HandleProtocol/OpenVolume and closing it many times causes
> > some sort of error.) So maybe for 4.16 we are OK as is and we can make
> > any changes (if necessary) for 4.17.
> 
> I hope you are OK with this being in-tree now.  If not please let me
> know ASAP and I could revert it.  I'd be happy to consider a followup
> patch on its merits, of course.

As mentioned on IRC, I would keep it. I think it should be OK, the only
potential issues are:
- slowness (not a blocker)
- broken firmware (this is me being a bit paranoid, with firmware one
  never knows)

We can address both later separately if we need to.


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 16:52:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 16:52:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222565.384827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj2SA-0006DU-Bw; Fri, 05 Nov 2021 16:52:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222565.384827; Fri, 05 Nov 2021 16:52:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj2SA-0006DN-93; Fri, 05 Nov 2021 16:52:34 +0000
Received: by outflank-mailman (input) for mailman id 222565;
 Fri, 05 Nov 2021 16:52:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj2S8-0006Cx-Bd
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 16:52:32 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c34f9d3d-3e58-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 17:52:31 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 06F7660F9D;
 Fri,  5 Nov 2021 16:52:28 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c34f9d3d-3e58-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636131149;
	bh=r9psmQc7i8wzf1f7DN7XAzz0xeNQ90NORKTPdTp5Kz4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=SExp45XdeUG5Q4wZjHsFnEqQ2M15naZih/pFiiuKklvtO+RUkAKLMISBH7fz4lmrX
	 fBH+RYjTBgQ6HqYZFFw8c4Zpd7TpZc1l2Mq4NjvtO08Gbn2VIl1fgPzJRAdb/71ifs
	 biAs3KzrIlae+uk4fUMboqVrYR2NWZeFYQQLA3uMwlYkNCBoECTSJVv74TGy1shhhp
	 wQ9iZpIg2qdQX4eDuNdRy4gbKm6T8pWjkdUdnbXgODF5ykMQ2sJfqTI/aaCLfVzpqs
	 p3GxTuwgFqNzrGBa2YXMCcN07InymWXOhKChR4y3B1HJ0YA+6n/khKE0pT92noKRzG
	 WoL5LQ4cZFAcw==
Date: Fri, 5 Nov 2021 09:52:28 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Vikram Garhwal <fnu.vikram@xilinx.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    "julien@xen.org" <julien@xen.org>
Subject: Re: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
In-Reply-To: <38804A99-54B8-4694-AFB0-9AA9212562A7@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111050952070.284830@ubuntu-linux-20-04-desktop>
References: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com> <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com> <alpine.DEB.2.22.394.2111041546030.284830@ubuntu-linux-20-04-desktop> <38804A99-54B8-4694-AFB0-9AA9212562A7@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 5 Nov 2021, Bertrand Marquis wrote:
> Hi Stefano,
> 
> > On 4 Nov 2021, at 22:48, Stefano Stabellini <sstabellini@kernel.org> wrote:
> > 
> > On Wed, 3 Nov 2021, Vikram Garhwal wrote:
> >> Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
> >> This update is done to support device tree overlays.
> >> 
> >> A few minor changes are done to make it compatible with Xen:
> >> fdt_overlay.c: overlay_fixup_phandle()
> >>    Replace  strtoul() simple_strtoul() as strtoul() is not available in Xen lib
> >>    and included lib.h.
> >>    Change char *endptr to const char *endptr.
> >> 
> >> libfdt_env.h:
> >>    Changed path for config.h and stdbool.h. Remaining Xen changes to
> >>    libfdt_env.h carried over from existing libfdt (v1.4.0)
> > 
> > Hi Vikram, thanks for the patch!
> > 
> > Would you be able to split this patch into two patches:
> > 
> > - the first patch pulls in the new libfdt
> > - the second patch makes the necessary changes to make it compatible
> >  with Xen
> > 
> > I understand that the first patch alone would break the build, but they
> > can be easily squashed together on commit. And reading the two patches
> > separately it would make them a lot easier to review.
> 
> Actually the diff will be quite small and limited to what was said by Vikram
> here but will break the build.
> 
> I manually checked by comparing libfdt directory in xen with the one in dtc
> and could not find other differences than the one mentioned by Vikram or
> stuff done before in Xen in the env header which was carried over.
> 
> So I would not say splitting is needed here.

OK, thank you so much for looking into it!


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 17:10:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 17:10:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222572.384838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj2jh-0008VQ-SS; Fri, 05 Nov 2021 17:10:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222572.384838; Fri, 05 Nov 2021 17:10:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj2jh-0008VJ-PW; Fri, 05 Nov 2021 17:10:41 +0000
Received: by outflank-mailman (input) for mailman id 222572;
 Fri, 05 Nov 2021 17:10:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mj2jg-0008VD-Dq
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 17:10:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mj2jf-0003oD-D7; Fri, 05 Nov 2021 17:10:39 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.21.75]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mj2jf-0006yz-6y; Fri, 05 Nov 2021 17:10:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=yoGmwQcWiJ4vvjPUYyJAGe7uaoLX0/CU8LEhU+h7OD8=; b=MX8Z/K5ZgpNqLVkyMeoeGN79pC
	qAJSpLIdDIcJaCleqLxSAudWd6JrM3o/dqf2pj/nopvxtnG2y+CqaSW3Atbgor6ah3QOOVBjeHdqu
	Ib86HpzTKD9I5VY6VdCfyt1vN5JeUTSKBdLHkwc0t4TVf/0YBvATf351rKKbetCMQ3qc=;
Message-ID: <15331d70-9610-be3a-640f-621774d6f093@xen.org>
Date: Fri, 5 Nov 2021 17:10:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: Arm EFI boot issue for Dom0 module listed inside subnode of
 chosen
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Luca Fancellu <luca.fancellu@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <8A60FA62-2BAA-400B-BB53-AB3E8CCA67F1@arm.com>
 <alpine.DEB.2.21.2111021625160.18170@sstabellini-ThinkPad-T480s>
 <f4daf916-06bd-e002-8b74-be6fb45ef257@xen.org>
 <alpine.DEB.2.22.394.2111031457540.267621@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111031457540.267621@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Stefano,

On 03/11/2021 21:57, Stefano Stabellini wrote:
> On Wed, 3 Nov 2021, Julien Grall wrote:
>> On 02/11/2021 23:36, Stefano Stabellini wrote:
>>> On Tue, 2 Nov 2021, Luca Fancellu wrote:
>>>> Hi all,
>>>>
>>>> We recently discovered that there is a way to list Dom0 modules that is
>>>> not supported by the EFI boot,
>>>> It’s happened browsing some Wiki pages like this one:
>>>> https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/Lager
>>>>
>>>> In that page the Dom0 modules are listed inside a subnode of the /chosen
>>>> node:
>>>>
>>>> chosen {
>>>>
>>>>       modules {
>>>>           #address-cells = <1>;
>>>>           #size-cells = <1>;
>>>>
>>>>           module@0x72000000 {
>>>>               compatible = "multiboot,kernel", "multiboot,module";
>>>>               reg = <0x72000000 0x2fd158>;
>>>>           };
>>>>
>>>>           module@0x74000000 {
>>>>               compatible = "xen,xsm-policy", "multiboot,module";
>>>>               reg = <0x74000000 0x2559>;
>>>>           };
>>>>       };
>>>> };
>>>>
>>>> Instead for how it is implemented now in the EFI code and described in:
>>>> 1) https://xenbits.xen.org/docs/unstable/misc/arm/device-tree/booting.txt
>>>> 2) https://xenbits.xen.org/docs/unstable/misc/efi.html
>>>>
>>>> Only the following approach is supported, so Dom0 modules must be a direct
>>>> child of /chosen:
>>
>> Do you mean this is not supported after your changes or this was never
>> supported? (see more below).
>>
>>>>
>>>> chosen {
>>>>       #address-cells = <1>;
>>>>       #size-cells = <1>;
>>>>
>>>>       module@0x72000000 {
>>>>           compatible = "multiboot,kernel", "multiboot,module";
>>>>           reg = <0x72000000 0x2fd158>;
>>>>       };
>>>>
>>>>       module@0x74000000 {
>>>>           compatible = "xen,xsm-policy", "multiboot,module";
>>>>           reg = <0x74000000 0x2559>;
>>>>       };
>>>> };
>>>>
>>>> Is this a problem that needs a fix?
>>>
>>>
>>> Let me start by saying that I don't feel strongly either way, so I am
>>> happy to go with other people's opinion on this one.
>>>
>>> In this kind of situations I usually look at two things:
>>> - what the specification says
>>> - what the existing code actually does
>>>
>>> In general, I try to follow the specification unless obviously
>>> production code relies on something that contradicts the spec, in which
>>> case I'd say to update the spec.
>>>
>>> In this case, although it is true that "modules" could be nice to have,
>>> it is missing a compatible string,
>>
>> There are a few nodes in the DT without compatible (e.g. cpus, memory, chosen,
>> soc). So I am a bit confused why this is a problem.
> 
> They tend to be "exceptions". Node names are usually not meaningful
> except for few top-level nodes without a compatible string. 

I think you misundertood my point here. I wasn't necessarily saying that 
the name "modules" was meaningful. Instead, I was pointing out there was 
various nodes without compatible property. I can see how this is useful 
to group nodes.

In fact, I couldn't find a section in the Device-Tree suggesting that 
the compatible property was mandatory. Do you have one pointer in hand?

> Cpus, memory
> and chosen are all top level nodes. I don't know about "soc", that one
> should probably be compatible = "simple-bus". If you have a pointer to
> an "soc" node without a compatible I'd be interested in taking a look.

See above, I wasn't suggesting that the name "soc" is meaningful.

> No worries if you don't have it handy, I was just curious.
Nothing in hand sorry. I vaguely recall we had that discussion when 
introducing the partial device-tree a few years ago.

>>> and it is only rarely used.
>>
>> Hmmm... We have quite a few examples on the wiki that create 'module' under
>> 'modules'. In fact, we have provided U-boot script [2] that can be easily
>> re-used. So I would not call it rare.
>>
>>>
>>> For these reasons, I don't think it is a problem that we need to fix.
>>> Especially considering that the EFI case is the only case not working
>>> and it was never supported until now.
>>
>> Hmmm... Looking at the implementation of efi_arch_use_config_file() in 4.12,
>> we are looking for the compatible "mutiboot,module". So I would say this is
>> supported.
>>
>>> If we want to add support for "modules", that could be fine, but I think
>>> we should describe it in arm/device-tree/booting.txt and also add a
>>> compatible string for it. For 4.16
>>
>> I think the first question we need to resolved is whether this has ever been
>> supported in EFI. I think it was and therefore this is technically a
>> regression.
>>
>> That said, outside of the dom0less case, I don't expect any UEFI users will
>> bother to create the nodes manually and instead rely on GRUB to create them.
>> So I think breaking it would be OK.
>>
>> I am less convinced about breaking it for non-UEFI case.
>>
>> That said, I think the documentation should be updated either way for
>> 4.16 (the more if this has been broken as part of recent changes).
> 
> It would be good to clarify. If we decide to go with making it clear
> that "modules" is not supported then from a device tree point of view I
> think we should say that "multiboot,module" nodes for Dom0 and Xen (xsm)
> are children of /chosen. I prefer this option because I think that if
> we wanted to group the dom0 and/or Xen modules together (which could be
> good) we could come up with something better than "modules", more
> aligned with dom0less.

To expand what I wrote above, I viewed "modules" as just a way to group 
nodes rather than a meaningful name.

In the current implementation in Xen doesn't care of the name. It just 
looks for any node in chosen up to depth 3. So anyone could create a 
node "bar" to group everything together.

> 
> Otherwise we could try to add a "modules" node to the description with a
> compatible string and a comment saying certain legacy versions might not
> have a compatible string.

I am not really in favor of introducing a new compatible because it will 
never be used by Xen (or anyone else).

So if the compatible is mandatory, then I would prefer to deprecate the 
use in the next release (we could add a warning).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 18:19:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 18:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222584.384850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj3oK-0005tc-5A; Fri, 05 Nov 2021 18:19:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222584.384850; Fri, 05 Nov 2021 18:19:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj3oK-0005tV-1J; Fri, 05 Nov 2021 18:19:32 +0000
Received: by outflank-mailman (input) for mailman id 222584;
 Fri, 05 Nov 2021 18:19:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0iX8=PY=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mj3oI-0005tM-8Y
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 18:19:30 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060c.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::60c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e764a832-3e64-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 19:19:25 +0100 (CET)
Received: from SN4PR0601CA0010.namprd06.prod.outlook.com
 (2603:10b6:803:2f::20) by BYAPR02MB5447.namprd02.prod.outlook.com
 (2603:10b6:a03:9a::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Fri, 5 Nov
 2021 18:19:21 +0000
Received: from SN1NAM02FT0004.eop-nam02.prod.protection.outlook.com
 (2603:10b6:803:2f:cafe::c9) by SN4PR0601CA0010.outlook.office365.com
 (2603:10b6:803:2f::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 18:19:21 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0004.mail.protection.outlook.com (10.97.4.226) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 18:19:20 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Fri, 5 Nov 2021 11:19:20 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Fri, 5 Nov 2021 11:19:20 -0700
Received: from [172.19.2.115] (port=34588 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mj3o8-0006lr-Iv; Fri, 05 Nov 2021 11:19:20 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e764a832-3e64-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=j9HPdes8m4h2Em+DRCBAru0vY3wCWYwI1x0wz7WwwXDUxPk5PKrq6HIkOYBRzTIRB54r6Dh8WFfh+WxoLeGB0reh0hNWQok2ILFyHeN1e9zM4IVNim+wsSUphbr2URxrXW12abidm5JRrKaVZru/RWKRkyGvqickiQXtfNbtymBDFEy0gcFWYtidUQkaRMdM92qT4aqmDFtgVWrM+bahP7oIsby7bY5maNv3pmk1Rdjz3t4ZYtWYHLSg1uzBr9q60DKFreVFl6LAp/akJsmc6+ZRkztbsHySUMDAoe3JCoVOi0bVCf3zIBxJiO2S7L6KgWhBDm93NqWs4KbdE5a4qw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fbrm6WOqitjlB4v+roRybE3UOpXKBlAofqKO4nGIhGg=;
 b=GLSBEOraDJldbwZNKszTfNEidL1PMWUEpIeopl3f/OYtPz9L91dXD3c1eXdB6no+G84H/qlV1YCcsuvrMxN1nC01/f8qql6lOGTuG5FlMtHUxdPVAiYTh2WZ3IoahZ8RsDKWoZ1Kf78wv94fV6xOCUueUjvRfjAdBRs246JZZV+1pe7tpzFHhg5dLXbeEC7U0UBwzFcHUBwWtnbQIuPtJrkjd802opij0iYihOBWtO+6rVohDAt3NRaMc5aHTXonVXi9u7Bv3nqmHfwxvTQC1XXsJlaXgs2PRLA1/lKuUtnrDnzdILQlCegFIRdgszYytGrgQj5Cy/68jcw6/FTk8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fbrm6WOqitjlB4v+roRybE3UOpXKBlAofqKO4nGIhGg=;
 b=iQs9wcdMs+tSUT874onfrlrtGtp5vaMrd+YNb/3PD7BGFq+Yol4/OrokTPsO8qj85YXJj5lnUtw1QfAnAHDxQ0otWXmRNBDs8PL97wabiv552aizkz7FXzWubOFXK7q3RvSEuJRf/SkxWJzWI2T3s1DY+XGQLsj9DdbSH+5Ss6g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][PATCH 0/2] Changes for libfdt v.1.6.1
Date: Fri, 5 Nov 2021 11:19:12 -0700
Message-ID: <1636136354-68413-1-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d08be6c0-74f8-4bb1-4512-08d9a088c9ba
X-MS-TrafficTypeDiagnostic: BYAPR02MB5447:
X-Microsoft-Antispam-PRVS:
	<BYAPR02MB5447817A78F86E84BCD9F958BC8E9@BYAPR02MB5447.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:639;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	nxclHhDA3V2cSvjSxqoVRlBda40UIShYU8KXu/54tAY+Hj2QThcXNz8OHZlSi8PVccL4LLr4T+W33Ocht0Sb9/TeNDzmAULeKXPTDWX5rtvqB+/SDAWVgiy0yTG19vgI107EQEzVarXcs7ppw6KayDEsffF3dmAioAVlqBN9tAeoASPWPX4ZCIZU6ju/Aymw5yPlKeG1C6eI7UhENgiPQyXsgimlnhtDftB/Trtkz35opcxVFtAA/mathg++PlqfkiHFXLSGoxii6VmTy31wlQ49214k7yZonI9uEuesfzXlY8G9P9BoabldlnR5SguYKPGp9OfJhbfZ0/4HV85psDMwtGbuT15WpPJeEvLXrYeugXYKutVMOPd202kDhN3ualHlNYdRyb6tQQXBQdzu6frPEgL1GC4RDzXV3YZZPA52E4oUE1tq305V9ofEItnQfx7mugruiDKzY5+LKJMfsrKvPXn+Rek9y6f9a8vaiNXPQ2B9nBC3NHMG/eeq52BndBtzWEaOCpCG4looo12b0w/AsvgVf3RpOD/KF/d9i+PkEBKSFX+hqNM27eVjXVdhuxWLXIc0Xsyec/ywh8DQV9C1wprKscHHCA3oBaiaFpFg/sbDbSwXEB2+JpOGO/ychVDf2go9iyNmnWBjtIwYdIILQN0OxjvXMTsCvGY1VgKz718fJmZLinRsMZwWIbHD7Me5H36BqIAxdWUQpX+BWQ1A6JpYhKUzVYXtWk8A6Sc=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(83380400001)(2616005)(70586007)(70206006)(9786002)(36906005)(426003)(2906002)(4326008)(8676002)(47076005)(82310400003)(6916009)(186003)(6666004)(7636003)(5660300002)(356005)(107886003)(36756003)(36860700001)(508600001)(7696005)(8936002)(336012)(54906003)(316002)(26005)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 18:19:20.9260
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d08be6c0-74f8-4bb1-4512-08d9a088c9ba
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0004.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR02MB5447

This patch series is NOT INTENDED for commit. Instead this is just a helper
patch series to highlight the changes made to ported DTC 1.6.1.

Hopefully, it will save time while reviewing "[XEN][PATCH v2 1/1] Update libfdt
to v1.6.1" series.

[Patch 1/2] is just copy of DTC v1.6.1.
[Patch 2/2] contains the changes made to make it work with Xen.

Regards,
Vikram

Vikram Garhwal (2):
  Update libfdt to v1.6.1
  xen: libfdt: Changes to make libfdt v1.6.1 compatible with Xen

 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 ++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
 xen/include/xen/libfdt/libfdt_env.h | 100 +++-
 15 files changed, 3025 insertions(+), 785 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 18:19:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 18:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222586.384871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj3oS-0006T2-Oj; Fri, 05 Nov 2021 18:19:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222586.384871; Fri, 05 Nov 2021 18:19:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj3oS-0006Sq-Kh; Fri, 05 Nov 2021 18:19:40 +0000
Received: by outflank-mailman (input) for mailman id 222586;
 Fri, 05 Nov 2021 18:19:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0iX8=PY=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mj3oQ-0005tM-2l
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 18:19:38 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20630.outbound.protection.outlook.com
 [2a01:111:f400:7e88::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec7ff0f4-3e64-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 19:19:34 +0100 (CET)
Received: from SN4PR0501CA0044.namprd05.prod.outlook.com
 (2603:10b6:803:41::21) by DM5PR0201MB3494.namprd02.prod.outlook.com
 (2603:10b6:4:78::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Fri, 5 Nov
 2021 18:19:27 +0000
Received: from SN1NAM02FT0015.eop-nam02.prod.protection.outlook.com
 (2603:10b6:803:41:cafe::e7) by SN4PR0501CA0044.outlook.office365.com
 (2603:10b6:803:41::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.4 via Frontend
 Transport; Fri, 5 Nov 2021 18:19:27 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0015.mail.protection.outlook.com (10.97.5.180) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 18:19:26 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Fri, 5 Nov 2021 11:19:24 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Fri, 5 Nov 2021 11:19:24 -0700
Received: from [172.19.2.115] (port=34588 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mj3oC-0006lr-Jr; Fri, 05 Nov 2021 11:19:24 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec7ff0f4-3e64-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MI9DajOVbIK07Kcbx/0IqDIhjAVoSfTzwnDhoLfmoJuYy8Ryi3RjimbNaLdjMmtRpMn9jLqNadqFoNwVf2bNpKuDoGDdab8+hLxG5nSzMKW+bzWnosF7YggPnsOtcK1kaLMFBuu59uqV+NOn0zs1plI9V/y4MElpCajdwrgyYsukgWR1j3htY8GBM4vfSDuUOgtNAWzaunrp8dYylnwyQ8h6j/K/z2T7zw4VjLwLd0e4oUChRMOlzvIQPy+jhp1OTEJS8Ji+lYYJaWb3LdCv+EWdAhtcyyYlFq6QtsTbGjHZHToJnwSyISfUjg5exl7iu0ePRVAJf1//9r99UKGjcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TgZvHw/01BnrytZEHvdfbwRRnX8uErXChj69kvgJxH4=;
 b=Bf4PGY0FiBtUTRdpa2lgv6fHJPvya4j57qYbvOb9qV8Q65bESWF8/VIKNpLqYo5B8c4LhDWMRZ9ApIPcdAo/oh4vtUa5kcSr5wAQLQ+KGU6HeI4kMFxQeyoKwMxRkkjYyRS96FLtKc2JBdKCqmD4LQs1bu53jwTpzKLHtVitwAg0dLTgCv+Q/pKIXEJTXuRFLl+KUO3Jg5BrH/Wv896sJSI+KLiIE+Br+Jh8mBi4CN3hGTA/K0oHA/cXUlnyRWD/94A/Fk6XXrQwJjRLzgS9wZpnXU9FIhLrpaM7WGui4e2ICpvEvCvfAvSBd7BweU+N1hhmFm71wcOlIsLkQkmKCA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TgZvHw/01BnrytZEHvdfbwRRnX8uErXChj69kvgJxH4=;
 b=Ad7EbpQG8+erfP3XWi5cqR0XGmNWyppx+zqDFn7H8hASHFTNU7cXqiR8RRuO8uXHu0am94hdb8z0N7UfpGo4/co5ll2NJDonRlk60UTXb6AIH024Sdz2jMvMPH4zzrW9EhOnQMRQ9h4ZoWo6zY1MyqYPRLEjRPRhpGz8L+QId6Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][PATCH 1/2] Update libfdt to v1.6.1
Date: Fri, 5 Nov 2021 11:19:13 -0700
Message-ID: <1636136354-68413-2-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636136354-68413-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636136354-68413-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e9418ed0-70e0-419c-0d53-08d9a088cd48
X-MS-TrafficTypeDiagnostic: DM5PR0201MB3494:
X-Microsoft-Antispam-PRVS:
	<DM5PR0201MB3494DDFD71E4C30B26415118BC8E9@DM5PR0201MB3494.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:2803;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	HvqKy6EzMfXAr1VYXNMIdjSjt//D4GRlEEeyI9wLbzEHb8xxXAYhzZ4EXhXp8WQIc3bNWVmnU7AtCrbCtLIGeHNXUBMwaL175wpFxPgcWDibzKlald1CgpTp45A7Jo0QoDUWOnEiRBUfuibRY9rHBrOsnvQMBdWN8ji4I+riv+WTSMrAjNbH2y4b2kKXLbG7pNaNVjH2hcR189sUdoVye8+/iuKcABSXw+IfD3hn7G79oPTlJ0lFpvx7nMtqNrdBg2Wyb9mClcEHeA1m+YApdTF1XUqCZ8wG/sUCX5Y7oqNC4zWyNjo8igoiAzsb1LoCrmyolYYf3FRZ9ZnMzRoYvADzHNe0cXUHaBJJqcRMCp1kDFf9KqmCsLhL2dXVmXWVYAbyRtxZjk9MaJbUXkNYJAdb8Ceoi+49jye1CheEKnTwC0KIrVBKdKOLb8kXyiQkuMpFm3mADQIx6Sl/sgGmlhjG0U1ulsODeblaLKnGvtjhER9wAlofz5rvHqs1JylIc+FaKAHVN8KrOoKFkXrIeBTf8v79LXxF1DxVfDN+i+U+Xld4paRDwh+BT6zhWqSkt07kUgWntX+MIqRwsX9in7cBUGjVOcrDn2nbCNeC9EG+cJFrB3oVh/K220z00OzZgFeHUdTTAXJO/UhJUGwcXpxlS9iWJWnfjrfPjKVhmYgQokJVVDtZBKaBopAAQ7HBKuTD+P1Y/8Uouk5pDVGsOuRxx/abcvkLwTYmXMMsriLNxoF6DS7RuKZobngMkB3zE5xg1ULuFInx5uZ3qCJ5x2yWpIs6+yht0PbCihBSn/zgswchpQrPbtieMix4iBFxuuCmGTiJCAOyekJw2QLDw2kpi7m1f3/gMYJTS7A/ZpQ=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(2906002)(83380400001)(4326008)(2616005)(6916009)(36860700001)(426003)(15650500001)(8936002)(82310400003)(7696005)(356005)(47076005)(70586007)(54906003)(508600001)(5660300002)(70206006)(7636003)(9786002)(36756003)(316002)(186003)(36906005)(336012)(26005)(6666004)(107886003)(30864003)(8676002)(102446001)(46800400005)(2004002)(559001)(579004);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 18:19:26.8813
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e9418ed0-70e0-419c-0d53-08d9a088cd48
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0015.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR0201MB3494

Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
This update is done to support device tree overlays.

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 +++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 882 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 868 +++++++++++++++++++++++++++++------
 xen/include/xen/libfdt/libfdt_env.h | 108 ++++-
 15 files changed, 3031 insertions(+), 795 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

diff --git a/xen/common/libfdt/Makefile.libfdt b/xen/common/libfdt/Makefile.libfdt
index 91126c0..b6d8fc0 100644
--- a/xen/common/libfdt/Makefile.libfdt
+++ b/xen/common/libfdt/Makefile.libfdt
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 # Makefile.libfdt
 #
 # This is not a complete Makefile of itself.  Instead, it is designed to
@@ -6,5 +7,12 @@
 LIBFDT_soname = libfdt.$(SHAREDLIB_EXT).1
 LIBFDT_INCLUDES = fdt.h libfdt.h libfdt_env.h
 LIBFDT_VERSION = version.lds
-LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c
+LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c \
+	fdt_addresses.c fdt_overlay.c fdt_check.c
 LIBFDT_OBJS = $(LIBFDT_SRCS:%.c=%.o)
+LIBFDT_LIB = libfdt-$(DTC_VERSION).$(SHAREDLIB_EXT)
+
+libfdt_clean:
+	@$(VECHO) CLEAN "(libfdt)"
+	rm -f $(STD_CLEANFILES:%=$(LIBFDT_dir)/%)
+	rm -f $(LIBFDT_dir)/$(LIBFDT_soname)
diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
index bbc7717..9fe7cf4 100644
--- a/xen/common/libfdt/fdt.c
+++ b/xen/common/libfdt/fdt.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,40 +10,156 @@
 
 #include "libfdt_internal.h"
 
-int fdt_check_header(const void *fdt)
+/*
+ * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
+ * that the given buffer contains what appears to be a flattened
+ * device tree with sane information in its header.
+ */
+int32_t fdt_ro_probe_(const void *fdt)
 {
+	uint32_t totalsize = fdt_totalsize(fdt);
+
+	if (can_assume(VALID_DTB))
+		return totalsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
 	if (fdt_magic(fdt) == FDT_MAGIC) {
 		/* Complete tree */
-		if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
-		if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
+		if (!can_assume(LATEST)) {
+			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+			if (fdt_last_comp_version(fdt) >
+					FDT_LAST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+		}
 	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
 		/* Unfinished sequential-write blob */
-		if (fdt_size_dt_struct(fdt) == 0)
+		if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) == 0)
 			return -FDT_ERR_BADSTATE;
 	} else {
 		return -FDT_ERR_BADMAGIC;
 	}
 
+	if (totalsize < INT32_MAX)
+		return totalsize;
+	else
+		return -FDT_ERR_TRUNCATED;
+}
+
+static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off)
+{
+	return (off >= hdrsize) && (off <= totalsize);
+}
+
+static int check_block_(uint32_t hdrsize, uint32_t totalsize,
+			uint32_t base, uint32_t size)
+{
+	if (!check_off_(hdrsize, totalsize, base))
+		return 0; /* block start out of bounds */
+	if ((base + size) < base)
+		return 0; /* overflow */
+	if (!check_off_(hdrsize, totalsize, base + size))
+		return 0; /* block end out of bounds */
+	return 1;
+}
+
+size_t fdt_header_size_(uint32_t version)
+{
+	if (version <= 1)
+		return FDT_V1_SIZE;
+	else if (version <= 2)
+		return FDT_V2_SIZE;
+	else if (version <= 3)
+		return FDT_V3_SIZE;
+	else if (version <= 16)
+		return FDT_V16_SIZE;
+	else
+		return FDT_V17_SIZE;
+}
+
+size_t fdt_header_size(const void *fdt)
+{
+	return can_assume(LATEST) ? FDT_V17_SIZE :
+		fdt_header_size_(fdt_version(fdt));
+}
+
+int fdt_check_header(const void *fdt)
+{
+	size_t hdrsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
+	if (fdt_magic(fdt) != FDT_MAGIC)
+		return -FDT_ERR_BADMAGIC;
+	if (!can_assume(LATEST)) {
+		if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+		    || (fdt_last_comp_version(fdt) >
+			FDT_LAST_SUPPORTED_VERSION))
+			return -FDT_ERR_BADVERSION;
+		if (fdt_version(fdt) < fdt_last_comp_version(fdt))
+			return -FDT_ERR_BADVERSION;
+	}
+	hdrsize = fdt_header_size(fdt);
+	if (!can_assume(VALID_DTB)) {
+
+		if ((fdt_totalsize(fdt) < hdrsize)
+		    || (fdt_totalsize(fdt) > INT_MAX))
+			return -FDT_ERR_TRUNCATED;
+
+		/* Bounds check memrsv block */
+		if (!check_off_(hdrsize, fdt_totalsize(fdt),
+				fdt_off_mem_rsvmap(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
+	if (!can_assume(VALID_DTB)) {
+		/* Bounds check structure block */
+		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
+			if (!check_off_(hdrsize, fdt_totalsize(fdt),
+					fdt_off_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		} else {
+			if (!check_block_(hdrsize, fdt_totalsize(fdt),
+					  fdt_off_dt_struct(fdt),
+					  fdt_size_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		}
+
+		/* Bounds check strings block */
+		if (!check_block_(hdrsize, fdt_totalsize(fdt),
+				  fdt_off_dt_strings(fdt),
+				  fdt_size_dt_strings(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
 	return 0;
 }
 
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
 {
-	unsigned absoffset = offset + fdt_off_dt_struct(fdt);
+	unsigned int uoffset = offset;
+	unsigned int absoffset = offset + fdt_off_dt_struct(fdt);
 
-	if ((absoffset < offset)
-	    || ((absoffset + len) < absoffset)
-	    || (absoffset + len) > fdt_totalsize(fdt))
+	if (offset < 0)
 		return NULL;
 
-	if (fdt_version(fdt) >= 0x11)
-		if (((offset + len) < offset)
+	if (!can_assume(VALID_INPUT))
+		if ((absoffset < uoffset)
+		    || ((absoffset + len) < absoffset)
+		    || (absoffset + len) > fdt_totalsize(fdt))
+			return NULL;
+
+	if (can_assume(LATEST) || fdt_version(fdt) >= 0x11)
+		if (((uoffset + len) < uoffset)
 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
 			return NULL;
 
-	return _fdt_offset_ptr(fdt, offset);
+	return fdt_offset_ptr_(fdt, offset);
 }
 
 uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
@@ -98,7 +171,7 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 
 	*nextoffset = -FDT_ERR_TRUNCATED;
 	tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
-	if (!tagp)
+	if (!can_assume(VALID_DTB) && !tagp)
 		return FDT_END; /* premature end */
 	tag = fdt32_to_cpu(*tagp);
 	offset += FDT_TAGSIZE;
@@ -110,17 +183,21 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 		do {
 			p = fdt_offset_ptr(fdt, offset++, 1);
 		} while (p && (*p != '\0'));
-		if (!p)
+		if (!can_assume(VALID_DTB) && !p)
 			return FDT_END; /* premature end */
 		break;
 
 	case FDT_PROP:
 		lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp));
-		if (!lenp)
+		if (!can_assume(VALID_DTB) && !lenp)
 			return FDT_END; /* premature end */
 		/* skip-name offset, length and value */
 		offset += sizeof(struct fdt_property) - FDT_TAGSIZE
 			+ fdt32_to_cpu(*lenp);
+		if (!can_assume(LATEST) &&
+		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >= 8 &&
+		    ((offset - fdt32_to_cpu(*lenp)) % 8) != 0)
+			offset += 4;
 		break;
 
 	case FDT_END:
@@ -139,19 +216,25 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 	return tag;
 }
 
-int _fdt_check_node_offset(const void *fdt, int offset)
+int fdt_check_node_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
 }
 
-int _fdt_check_prop_offset(const void *fdt, int offset)
+int fdt_check_prop_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
@@ -163,7 +246,7 @@ int fdt_next_node(const void *fdt, int offset, int *depth)
 	uint32_t tag;
 
 	if (offset >= 0)
-		if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0)
+		if ((nextoffset = fdt_check_node_offset_(fdt, offset)) < 0)
 			return nextoffset;
 
 	do {
@@ -225,7 +308,7 @@ int fdt_next_subnode(const void *fdt, int offset)
 	return offset;
 }
 
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s)
 {
 	int len = strlen(s) + 1;
 	const char *last = strtab + tabsize - len;
@@ -239,9 +322,12 @@ const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
 
 int fdt_move(const void *fdt, void *buf, int bufsize)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (!can_assume(VALID_INPUT) && bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_totalsize(fdt) > bufsize)
+	if (fdt_totalsize(fdt) > (unsigned int)bufsize)
 		return -FDT_ERR_NOSPACE;
 
 	memmove(buf, fdt, fdt_totalsize(fdt));
diff --git a/xen/common/libfdt/fdt_addresses.c b/xen/common/libfdt/fdt_addresses.c
new file mode 100644
index 0000000..9a82cd0
--- /dev/null
+++ b/xen/common/libfdt/fdt_addresses.c
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
+ * Copyright (C) 2018 embedded brains GmbH
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
+{
+	const fdt32_t *c;
+	uint32_t val;
+	int len;
+
+	c = fdt_getprop(fdt, nodeoffset, name, &len);
+	if (!c)
+		return len;
+
+	if (len != sizeof(*c))
+		return -FDT_ERR_BADNCELLS;
+
+	val = fdt32_to_cpu(*c);
+	if (val > FDT_MAX_NCELLS)
+		return -FDT_ERR_BADNCELLS;
+
+	return (int)val;
+}
+
+int fdt_address_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#address-cells");
+	if (val == 0)
+		return -FDT_ERR_BADNCELLS;
+	if (val == -FDT_ERR_NOTFOUND)
+		return 2;
+	return val;
+}
+
+int fdt_size_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#size-cells");
+	if (val == -FDT_ERR_NOTFOUND)
+		return 1;
+	return val;
+}
+
+/* This function assumes that [address|size]_cells is 1 or 2 */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size)
+{
+	int addr_cells, size_cells, ret;
+	uint8_t data[sizeof(fdt64_t) * 2], *prop;
+
+	ret = fdt_address_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	addr_cells = ret;
+
+	ret = fdt_size_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	size_cells = ret;
+
+	/* check validity of address */
+	prop = data;
+	if (addr_cells == 1) {
+		if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)addr);
+	} else if (addr_cells == 2) {
+		fdt64_st(prop, addr);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	/* check validity of size */
+	prop += addr_cells * sizeof(fdt32_t);
+	if (size_cells == 1) {
+		if (size > UINT32_MAX)
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)size);
+	} else if (size_cells == 2) {
+		fdt64_st(prop, size);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	return fdt_appendprop(fdt, nodeoffset, name, data,
+			      (addr_cells + size_cells) * sizeof(fdt32_t));
+}
diff --git a/xen/common/libfdt/fdt_check.c b/xen/common/libfdt/fdt_check.c
new file mode 100644
index 0000000..fa410a8
--- /dev/null
+++ b/xen/common/libfdt/fdt_check.c
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+int fdt_check_full(const void *fdt, size_t bufsize)
+{
+	int err;
+	int num_memrsv;
+	int offset, nextoffset = 0;
+	uint32_t tag;
+	unsigned int depth = 0;
+	const void *prop;
+	const char *propname;
+	bool expect_end = false;
+
+	if (bufsize < FDT_V1_SIZE)
+		return -FDT_ERR_TRUNCATED;
+	if (bufsize < fdt_header_size(fdt))
+		return -FDT_ERR_TRUNCATED;
+	err = fdt_check_header(fdt);
+	if (err != 0)
+		return err;
+	if (bufsize < fdt_totalsize(fdt))
+		return -FDT_ERR_TRUNCATED;
+
+	num_memrsv = fdt_num_mem_rsv(fdt);
+	if (num_memrsv < 0)
+		return num_memrsv;
+
+	while (1) {
+		offset = nextoffset;
+		tag = fdt_next_tag(fdt, offset, &nextoffset);
+
+		if (nextoffset < 0)
+			return nextoffset;
+
+		/* If we see two root nodes, something is wrong */
+		if (expect_end && tag != FDT_END)
+			return -FDT_ERR_BADSTRUCTURE;
+
+		switch (tag) {
+		case FDT_NOP:
+			break;
+
+		case FDT_END:
+			if (depth != 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			return 0;
+
+		case FDT_BEGIN_NODE:
+			depth++;
+			if (depth > INT_MAX)
+				return -FDT_ERR_BADSTRUCTURE;
+
+			/* The root node must have an empty name */
+			if (depth == 1) {
+				const char *name;
+				int len;
+
+				name = fdt_get_name(fdt, offset, &len);
+				if (*name || len)
+					return -FDT_ERR_BADSTRUCTURE;
+			}
+			break;
+
+		case FDT_END_NODE:
+			if (depth == 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			depth--;
+			if (depth == 0)
+				expect_end = true;
+			break;
+
+		case FDT_PROP:
+			prop = fdt_getprop_by_offset(fdt, offset, &propname,
+						     &err);
+			if (!prop)
+				return err;
+			break;
+
+		default:
+			return -FDT_ERR_INTERNAL;
+		}
+	}
+}
diff --git a/xen/common/libfdt/fdt_empty_tree.c b/xen/common/libfdt/fdt_empty_tree.c
index d505611..49d54d4 100644
--- a/xen/common/libfdt/fdt_empty_tree.c
+++ b/xen/common/libfdt/fdt_empty_tree.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2012 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -79,4 +36,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
 
 	return fdt_open_into(buf, buf, bufsize);
 }
-
diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
new file mode 100644
index 0000000..d217e79
--- /dev/null
+++ b/xen/common/libfdt/fdt_overlay.c
@@ -0,0 +1,882 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2016 Free Electrons
+ * Copyright (C) 2016 NextThing Co.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+/**
+ * overlay_get_target_phandle - retrieves the target phandle of a fragment
+ * @fdto: pointer to the device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ *
+ * overlay_get_target_phandle() retrieves the target phandle of an
+ * overlay fragment when that fragment uses a phandle (target
+ * property) instead of a path (target-path property).
+ *
+ * returns:
+ *      the phandle pointed by the target property
+ *      0, if the phandle was not found
+ *	-1, if the phandle was malformed
+ */
+static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
+{
+	const fdt32_t *val;
+	int len;
+
+	val = fdt_getprop(fdto, fragment, "target", &len);
+	if (!val)
+		return 0;
+
+	if ((len != sizeof(*val)) || (fdt32_to_cpu(*val) == (uint32_t)-1))
+		return (uint32_t)-1;
+
+	return fdt32_to_cpu(*val);
+}
+
+/**
+ * overlay_get_target - retrieves the offset of a fragment's target
+ * @fdt: Base device tree blob
+ * @fdto: Device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ * @pathp: pointer which receives the path of the target (or NULL)
+ *
+ * overlay_get_target() retrieves the target offset in the base
+ * device tree of a fragment, no matter how the actual targeting is
+ * done (through a phandle or a path)
+ *
+ * returns:
+ *      the targeted node offset in the base device tree
+ *      Negative error code on error
+ */
+static int overlay_get_target(const void *fdt, const void *fdto,
+			      int fragment, char const **pathp)
+{
+	uint32_t phandle;
+	const char *path = NULL;
+	int path_len = 0, ret;
+
+	/* Try first to do a phandle based lookup */
+	phandle = overlay_get_target_phandle(fdto, fragment);
+	if (phandle == (uint32_t)-1)
+		return -FDT_ERR_BADPHANDLE;
+
+	/* no phandle, try path */
+	if (!phandle) {
+		/* And then a path based lookup */
+		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
+		if (path)
+			ret = fdt_path_offset(fdt, path);
+		else
+			ret = path_len;
+	} else
+		ret = fdt_node_offset_by_phandle(fdt, phandle);
+
+	/*
+	* If we haven't found either a target or a
+	* target-path property in a node that contains a
+	* __overlay__ subnode (we wouldn't be called
+	* otherwise), consider it a improperly written
+	* overlay
+	*/
+	if (ret < 0 && path_len == -FDT_ERR_NOTFOUND)
+		ret = -FDT_ERR_BADOVERLAY;
+
+	/* return on error */
+	if (ret < 0)
+		return ret;
+
+	/* return pointer to path (if available) */
+	if (pathp)
+		*pathp = path ? path : NULL;
+
+	return ret;
+}
+
+/**
+ * overlay_phandle_add_offset - Increases a phandle by an offset
+ * @fdt: Base device tree blob
+ * @node: Device tree overlay blob
+ * @name: Name of the property to modify (phandle or linux,phandle)
+ * @delta: offset to apply
+ *
+ * overlay_phandle_add_offset() increments a node phandle by a given
+ * offset.
+ *
+ * returns:
+ *      0 on success.
+ *      Negative error code on error
+ */
+static int overlay_phandle_add_offset(void *fdt, int node,
+				      const char *name, uint32_t delta)
+{
+	const fdt32_t *val;
+	uint32_t adj_val;
+	int len;
+
+	val = fdt_getprop(fdt, node, name, &len);
+	if (!val)
+		return len;
+
+	if (len != sizeof(*val))
+		return -FDT_ERR_BADPHANDLE;
+
+	adj_val = fdt32_to_cpu(*val);
+	if ((adj_val + delta) < adj_val)
+		return -FDT_ERR_NOPHANDLES;
+
+	adj_val += delta;
+	if (adj_val == (uint32_t)-1)
+		return -FDT_ERR_NOPHANDLES;
+
+	return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
+}
+
+/**
+ * overlay_adjust_node_phandles - Offsets the phandles of a node
+ * @fdto: Device tree overlay blob
+ * @node: Offset of the node we want to adjust
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_node_phandles() adds a constant to all the phandles
+ * of a given node. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_node_phandles(void *fdto, int node,
+					uint32_t delta)
+{
+	int child;
+	int ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	fdt_for_each_subnode(child, fdto, node) {
+		ret = overlay_adjust_node_phandles(fdto, child, delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_adjust_local_phandles - Adjust the phandles of a whole overlay
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_local_phandles() adds a constant to all the
+ * phandles of an overlay. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
+{
+	/*
+	 * Start adjusting the phandles from the overlay root
+	 */
+	return overlay_adjust_node_phandles(fdto, 0, delta);
+}
+
+/**
+ * overlay_update_local_node_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @tree_node: Node offset of the node to operate on
+ * @fixup_node: Node offset of the matching local fixups node
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_nodes_references() update the phandles
+ * pointing to a node within the device tree overlay by adding a
+ * constant delta.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_node_references(void *fdto,
+						int tree_node,
+						int fixup_node,
+						uint32_t delta)
+{
+	int fixup_prop;
+	int fixup_child;
+	int ret;
+
+	fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
+		const fdt32_t *fixup_val;
+		const char *tree_val;
+		const char *name;
+		int fixup_len;
+		int tree_len;
+		int i;
+
+		fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
+						  &name, &fixup_len);
+		if (!fixup_val)
+			return fixup_len;
+
+		if (fixup_len % sizeof(uint32_t))
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len /= sizeof(uint32_t);
+
+		tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
+		if (!tree_val) {
+			if (tree_len == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_BADOVERLAY;
+
+			return tree_len;
+		}
+
+		for (i = 0; i < fixup_len; i++) {
+			fdt32_t adj_val;
+			uint32_t poffset;
+
+			poffset = fdt32_to_cpu(fixup_val[i]);
+
+			/*
+			 * phandles to fixup can be unaligned.
+			 *
+			 * Use a memcpy for the architectures that do
+			 * not support unaligned accesses.
+			 */
+			memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
+
+			adj_val = cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
+
+			ret = fdt_setprop_inplace_namelen_partial(fdto,
+								  tree_node,
+								  name,
+								  strlen(name),
+								  poffset,
+								  &adj_val,
+								  sizeof(adj_val));
+			if (ret == -FDT_ERR_NOSPACE)
+				return -FDT_ERR_BADOVERLAY;
+
+			if (ret)
+				return ret;
+		}
+	}
+
+	fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
+		const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
+							    NULL);
+		int tree_child;
+
+		tree_child = fdt_subnode_offset(fdto, tree_node,
+						fixup_child_name);
+		if (tree_child == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_BADOVERLAY;
+		if (tree_child < 0)
+			return tree_child;
+
+		ret = overlay_update_local_node_references(fdto,
+							   tree_child,
+							   fixup_child,
+							   delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_update_local_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_references() update all the phandles pointing
+ * to a node within the device tree overlay by adding a constant
+ * delta to not conflict with the base overlay.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_references(void *fdto, uint32_t delta)
+{
+	int fixups;
+
+	fixups = fdt_path_offset(fdto, "/__local_fixups__");
+	if (fixups < 0) {
+		/* There's no local phandles to adjust, bail out */
+		if (fixups == -FDT_ERR_NOTFOUND)
+			return 0;
+
+		return fixups;
+	}
+
+	/*
+	 * Update our local references from the root of the tree
+	 */
+	return overlay_update_local_node_references(fdto, 0, fixups,
+						    delta);
+}
+
+/**
+ * overlay_fixup_one_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @path: Path to a node holding a phandle in the overlay
+ * @path_len: number of path characters to consider
+ * @name: Name of the property holding the phandle reference in the overlay
+ * @name_len: number of name characters to consider
+ * @poffset: Offset within the overlay property where the phandle is stored
+ * @label: Label of the node referenced by the phandle
+ *
+ * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
+ * a node in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_one_phandle(void *fdt, void *fdto,
+				     int symbols_off,
+				     const char *path, uint32_t path_len,
+				     const char *name, uint32_t name_len,
+				     int poffset, const char *label)
+{
+	const char *symbol_path;
+	uint32_t phandle;
+	fdt32_t phandle_prop;
+	int symbol_off, fixup_off;
+	int prop_len;
+
+	if (symbols_off < 0)
+		return symbols_off;
+
+	symbol_path = fdt_getprop(fdt, symbols_off, label,
+				  &prop_len);
+	if (!symbol_path)
+		return prop_len;
+
+	symbol_off = fdt_path_offset(fdt, symbol_path);
+	if (symbol_off < 0)
+		return symbol_off;
+
+	phandle = fdt_get_phandle(fdt, symbol_off);
+	if (!phandle)
+		return -FDT_ERR_NOTFOUND;
+
+	fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
+	if (fixup_off == -FDT_ERR_NOTFOUND)
+		return -FDT_ERR_BADOVERLAY;
+	if (fixup_off < 0)
+		return fixup_off;
+
+	phandle_prop = cpu_to_fdt32(phandle);
+	return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
+						   name, name_len, poffset,
+						   &phandle_prop,
+						   sizeof(phandle_prop));
+};
+
+/**
+ * overlay_fixup_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @property: Property offset in the overlay holding the list of fixups
+ *
+ * overlay_fixup_phandle() resolves all the overlay phandles pointed
+ * to in a __fixups__ property, and updates them to match the phandles
+ * in use in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
+				 int property)
+{
+	const char *value;
+	const char *label;
+	int len;
+
+	value = fdt_getprop_by_offset(fdto, property,
+				      &label, &len);
+	if (!value) {
+		if (len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+
+		return len;
+	}
+
+	do {
+		const char *path, *name, *fixup_end;
+		const char *fixup_str = value;
+		uint32_t path_len, name_len;
+		uint32_t fixup_len;
+		char *sep, *endptr;
+		int poffset, ret;
+
+		fixup_end = memchr(value, '\0', len);
+		if (!fixup_end)
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len = fixup_end - fixup_str;
+
+		len -= fixup_len + 1;
+		value += fixup_len + 1;
+
+		path = fixup_str;
+		sep = memchr(fixup_str, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		path_len = sep - path;
+		if (path_len == (fixup_len - 1))
+			return -FDT_ERR_BADOVERLAY;
+
+		fixup_len -= path_len + 1;
+		name = sep + 1;
+		sep = memchr(name, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		name_len = sep - name;
+		if (!name_len)
+			return -FDT_ERR_BADOVERLAY;
+
+		poffset = strtoul(sep + 1, &endptr, 10);
+		if ((*endptr != '\0') || (endptr <= (sep + 1)))
+			return -FDT_ERR_BADOVERLAY;
+
+		ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
+						path, path_len, name, name_len,
+						poffset, label);
+		if (ret)
+			return ret;
+	} while (len > 0);
+
+	return 0;
+}
+
+/**
+ * overlay_fixup_phandles - Resolve the overlay phandles to the base
+ *                          device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_fixup_phandles() resolves all the overlay phandles pointing
+ * to nodes in the base device tree.
+ *
+ * This is one of the steps of the device tree overlay application
+ * process, when you want all the phandles in the overlay to point to
+ * the actual base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandles(void *fdt, void *fdto)
+{
+	int fixups_off, symbols_off;
+	int property;
+
+	/* We can have overlays without any fixups */
+	fixups_off = fdt_path_offset(fdto, "/__fixups__");
+	if (fixups_off == -FDT_ERR_NOTFOUND)
+		return 0; /* nothing to do */
+	if (fixups_off < 0)
+		return fixups_off;
+
+	/* And base DTs without symbols */
+	symbols_off = fdt_path_offset(fdt, "/__symbols__");
+	if ((symbols_off < 0 && (symbols_off != -FDT_ERR_NOTFOUND)))
+		return symbols_off;
+
+	fdt_for_each_property_offset(property, fdto, fixups_off) {
+		int ret;
+
+		ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_apply_node - Merges a node into the base device tree
+ * @fdt: Base Device Tree blob
+ * @target: Node offset in the base device tree to apply the fragment to
+ * @fdto: Device tree overlay blob
+ * @node: Node offset in the overlay holding the changes to merge
+ *
+ * overlay_apply_node() merges a node into a target base device tree
+ * node pointed.
+ *
+ * This is part of the final step in the device tree overlay
+ * application process, when all the phandles have been adjusted and
+ * resolved and you just have to merge overlay into the base device
+ * tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_apply_node(void *fdt, int target,
+			      void *fdto, int node)
+{
+	int property;
+	int subnode;
+
+	fdt_for_each_property_offset(property, fdto, node) {
+		const char *name;
+		const void *prop;
+		int prop_len;
+		int ret;
+
+		prop = fdt_getprop_by_offset(fdto, property, &name,
+					     &prop_len);
+		if (prop_len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+		if (prop_len < 0)
+			return prop_len;
+
+		ret = fdt_setprop(fdt, target, name, prop, prop_len);
+		if (ret)
+			return ret;
+	}
+
+	fdt_for_each_subnode(subnode, fdto, node) {
+		const char *name = fdt_get_name(fdto, subnode, NULL);
+		int nnode;
+		int ret;
+
+		nnode = fdt_add_subnode(fdt, target, name);
+		if (nnode == -FDT_ERR_EXISTS) {
+			nnode = fdt_subnode_offset(fdt, target, name);
+			if (nnode == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_INTERNAL;
+		}
+
+		if (nnode < 0)
+			return nnode;
+
+		ret = overlay_apply_node(fdt, nnode, fdto, subnode);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_merge - Merge an overlay into its base device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_merge() merges an overlay into its base device tree.
+ *
+ * This is the next to last step in the device tree overlay application
+ * process, when all the phandles have been adjusted and resolved and
+ * you just have to merge overlay into the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_merge(void *fdt, void *fdto)
+{
+	int fragment;
+
+	fdt_for_each_subnode(fragment, fdto, 0) {
+		int overlay;
+		int target;
+		int ret;
+
+		/*
+		 * Each fragments will have an __overlay__ node. If
+		 * they don't, it's not supposed to be merged
+		 */
+		overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (overlay == -FDT_ERR_NOTFOUND)
+			continue;
+
+		if (overlay < 0)
+			return overlay;
+
+		target = overlay_get_target(fdt, fdto, fragment, NULL);
+		if (target < 0)
+			return target;
+
+		ret = overlay_apply_node(fdt, target, fdto, overlay);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+static int get_path_len(const void *fdt, int nodeoffset)
+{
+	int len = 0, namelen;
+	const char *name;
+
+	FDT_RO_PROBE(fdt);
+
+	for (;;) {
+		name = fdt_get_name(fdt, nodeoffset, &namelen);
+		if (!name)
+			return namelen;
+
+		/* root? we're done */
+		if (namelen == 0)
+			break;
+
+		nodeoffset = fdt_parent_offset(fdt, nodeoffset);
+		if (nodeoffset < 0)
+			return nodeoffset;
+		len += namelen + 1;
+	}
+
+	/* in case of root pretend it's "/" */
+	if (len == 0)
+		len++;
+	return len;
+}
+
+/**
+ * overlay_symbol_update - Update the symbols of base tree after a merge
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_symbol_update() updates the symbols of the base tree with the
+ * symbols of the applied overlay
+ *
+ * This is the last step in the device tree overlay application
+ * process, allowing the reference of overlay symbols by subsequent
+ * overlay operations.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_symbol_update(void *fdt, void *fdto)
+{
+	int root_sym, ov_sym, prop, path_len, fragment, target;
+	int len, frag_name_len, ret, rel_path_len;
+	const char *s, *e;
+	const char *path;
+	const char *name;
+	const char *frag_name;
+	const char *rel_path;
+	const char *target_path;
+	char *buf;
+	void *p;
+
+	ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
+
+	/* if no overlay symbols exist no problem */
+	if (ov_sym < 0)
+		return 0;
+
+	root_sym = fdt_subnode_offset(fdt, 0, "__symbols__");
+
+	/* it no root symbols exist we should create them */
+	if (root_sym == -FDT_ERR_NOTFOUND)
+		root_sym = fdt_add_subnode(fdt, 0, "__symbols__");
+
+	/* any error is fatal now */
+	if (root_sym < 0)
+		return root_sym;
+
+	/* iterate over each overlay symbol */
+	fdt_for_each_property_offset(prop, fdto, ov_sym) {
+		path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
+		if (!path)
+			return path_len;
+
+		/* verify it's a string property (terminated by a single \0) */
+		if (path_len < 1 || memchr(path, '\0', path_len) != &path[path_len - 1])
+			return -FDT_ERR_BADVALUE;
+
+		/* keep end marker to avoid strlen() */
+		e = path + path_len;
+
+		if (*path != '/')
+			return -FDT_ERR_BADVALUE;
+
+		/* get fragment name first */
+		s = strchr(path + 1, '/');
+		if (!s) {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		frag_name = path + 1;
+		frag_name_len = s - path - 1;
+
+		/* verify format; safe since "s" lies in \0 terminated prop */
+		len = sizeof("/__overlay__/") - 1;
+		if ((e - s) > len && (memcmp(s, "/__overlay__/", len) == 0)) {
+			/* /<fragment-name>/__overlay__/<relative-subnode-path> */
+			rel_path = s + len;
+			rel_path_len = e - rel_path - 1;
+		} else if ((e - s) == len
+			   && (memcmp(s, "/__overlay__", len - 1) == 0)) {
+			/* /<fragment-name>/__overlay__ */
+			rel_path = "";
+			rel_path_len = 0;
+		} else {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		/* find the fragment index in which the symbol lies */
+		ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
+					       frag_name_len);
+		/* not found? */
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+		fragment = ret;
+
+		/* an __overlay__ subnode must exist */
+		ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+
+		/* get the target of the fragment */
+		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+		if (ret < 0)
+			return ret;
+		target = ret;
+
+		/* if we have a target path use */
+		if (!target_path) {
+			ret = get_path_len(fdt, target);
+			if (ret < 0)
+				return ret;
+			len = ret;
+		} else {
+			len = strlen(target_path);
+		}
+
+		ret = fdt_setprop_placeholder(fdt, root_sym, name,
+				len + (len > 1) + rel_path_len + 1, &p);
+		if (ret < 0)
+			return ret;
+
+		if (!target_path) {
+			/* again in case setprop_placeholder changed it */
+			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+			if (ret < 0)
+				return ret;
+			target = ret;
+		}
+
+		buf = p;
+		if (len > 1) { /* target is not root */
+			if (!target_path) {
+				ret = fdt_get_path(fdt, target, buf, len + 1);
+				if (ret < 0)
+					return ret;
+			} else
+				memcpy(buf, target_path, len + 1);
+
+		} else
+			len--;
+
+		buf[len] = '/';
+		memcpy(buf + len + 1, rel_path, rel_path_len);
+		buf[len + 1 + rel_path_len] = '\0';
+	}
+
+	return 0;
+}
+
+int fdt_overlay_apply(void *fdt, void *fdto)
+{
+	uint32_t delta;
+	int ret;
+
+	FDT_RO_PROBE(fdt);
+	FDT_RO_PROBE(fdto);
+
+	ret = fdt_find_max_phandle(fdt, &delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_adjust_local_phandles(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_update_local_references(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_fixup_phandles(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_merge(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_symbol_update(fdt, fdto);
+	if (ret)
+		goto err;
+
+	/*
+	 * The overlay has been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	return 0;
+
+err:
+	/*
+	 * The overlay might have been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	/*
+	 * The base device tree might have been damaged, erase its
+	 * magic.
+	 */
+	fdt_set_magic(fdt, ~0);
+
+	return ret;
+}
diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
index 36f9b48..17584da 100644
--- a/xen/common/libfdt/fdt_ro.c
+++ b/xen/common/libfdt/fdt_ro.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,12 +10,13 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_nodename_eq(const void *fdt, int offset,
+static int fdt_nodename_eq_(const void *fdt, int offset,
 			    const char *s, int len)
 {
-	const char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);
+	int olen;
+	const char *p = fdt_get_name(fdt, offset, &olen);
 
-	if (! p)
+	if (!p || olen < len)
 		/* short match */
 		return 0;
 
@@ -73,37 +31,174 @@ static int _fdt_nodename_eq(const void *fdt, int offset,
 		return 0;
 }
 
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
+{
+	int32_t totalsize;
+	uint32_t absoffset;
+	size_t len;
+	int err;
+	const char *s, *n;
+
+	if (can_assume(VALID_INPUT)) {
+		s = (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+
+		if (lenp)
+			*lenp = strlen(s);
+		return s;
+	}
+	totalsize = fdt_ro_probe_(fdt);
+	err = totalsize;
+	if (totalsize < 0)
+		goto fail;
+
+	err = -FDT_ERR_BADOFFSET;
+	absoffset = stroffset + fdt_off_dt_strings(fdt);
+	if (absoffset >= (unsigned)totalsize)
+		goto fail;
+	len = totalsize - absoffset;
+
+	if (fdt_magic(fdt) == FDT_MAGIC) {
+		if (stroffset < 0)
+			goto fail;
+		if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
+			if ((unsigned)stroffset >= fdt_size_dt_strings(fdt))
+				goto fail;
+			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
+				len = fdt_size_dt_strings(fdt) - stroffset;
+		}
+	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
+		unsigned int sw_stroffset = -stroffset;
+
+		if ((stroffset >= 0) ||
+		    (sw_stroffset > fdt_size_dt_strings(fdt)))
+			goto fail;
+		if (sw_stroffset < len)
+			len = sw_stroffset;
+	} else {
+		err = -FDT_ERR_INTERNAL;
+		goto fail;
+	}
+
+	s = (const char *)fdt + absoffset;
+	n = memchr(s, '\0', len);
+	if (!n) {
+		/* missing terminating NULL */
+		err = -FDT_ERR_TRUNCATED;
+		goto fail;
+	}
+
+	if (lenp)
+		*lenp = n - s;
+	return s;
+
+fail:
+	if (lenp)
+		*lenp = err;
+	return NULL;
+}
+
 const char *fdt_string(const void *fdt, int stroffset)
 {
-	return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+	return fdt_get_string(fdt, stroffset, NULL);
 }
 
-static int _fdt_string_eq(const void *fdt, int stroffset,
+static int fdt_string_eq_(const void *fdt, int stroffset,
 			  const char *s, int len)
 {
-	const char *p = fdt_string(fdt, stroffset);
+	int slen;
+	const char *p = fdt_get_string(fdt, stroffset, &slen);
+
+	return p && (slen == len) && (memcmp(p, s, len) == 0);
+}
+
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max = 0;
+	int offset = -1;
+
+	while (true) {
+		uint32_t value;
+
+		offset = fdt_next_node(fdt, offset, NULL);
+		if (offset < 0) {
+			if (offset == -FDT_ERR_NOTFOUND)
+				break;
+
+			return offset;
+		}
+
+		value = fdt_get_phandle(fdt, offset);
+
+		if (value > max)
+			max = value;
+	}
+
+	if (phandle)
+		*phandle = max;
+
+	return 0;
+}
+
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &max);
+	if (err < 0)
+		return err;
+
+	if (max == FDT_MAX_PHANDLE)
+		return -FDT_ERR_NOPHANDLES;
+
+	if (phandle)
+		*phandle = max + 1;
+
+	return 0;
+}
 
-	return (strlen(p) == len) && (memcmp(p, s, len) == 0);
+static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int n)
+{
+	unsigned int offset = n * sizeof(struct fdt_reserve_entry);
+	unsigned int absoffset = fdt_off_mem_rsvmap(fdt) + offset;
+
+	if (!can_assume(VALID_INPUT)) {
+		if (absoffset < fdt_off_mem_rsvmap(fdt))
+			return NULL;
+		if (absoffset > fdt_totalsize(fdt) -
+		    sizeof(struct fdt_reserve_entry))
+			return NULL;
+	}
+	return fdt_mem_rsv_(fdt, n);
 }
 
 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size)
 {
-	FDT_CHECK_HEADER(fdt);
-	*address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address);
-	*size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size);
+	const struct fdt_reserve_entry *re;
+
+	FDT_RO_PROBE(fdt);
+	re = fdt_mem_rsv(fdt, n);
+	if (!can_assume(VALID_INPUT) && !re)
+		return -FDT_ERR_BADOFFSET;
+
+	*address = fdt64_ld_(&re->address);
+	*size = fdt64_ld_(&re->size);
 	return 0;
 }
 
 int fdt_num_mem_rsv(const void *fdt)
 {
-	int i = 0;
+	int i;
+	const struct fdt_reserve_entry *re;
 
-	while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0)
-		i++;
-	return i;
+	for (i = 0; (re = fdt_mem_rsv(fdt, i)) != NULL; i++) {
+		if (fdt64_ld_(&re->size) == 0)
+			return i;
+	}
+	return -FDT_ERR_TRUNCATED;
 }
 
-static int _nextprop(const void *fdt, int offset)
+static int nextprop_(const void *fdt, int offset)
 {
 	uint32_t tag;
 	int nextoffset;
@@ -132,13 +227,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int offset,
 {
 	int depth;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	for (depth = 0;
 	     (offset >= 0) && (depth >= 0);
 	     offset = fdt_next_node(fdt, offset, &depth))
 		if ((depth == 1)
-		    && _fdt_nodename_eq(fdt, offset, name, namelen))
+		    && fdt_nodename_eq_(fdt, offset, name, namelen))
 			return offset;
 
 	if (depth < 0)
@@ -152,17 +247,17 @@ int fdt_subnode_offset(const void *fdt, int parentoffset,
 	return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name));
 }
 
-int fdt_path_offset(const void *fdt, const char *path)
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen)
 {
-	const char *end = path + strlen(path);
+	const char *end = path + namelen;
 	const char *p = path;
 	int offset = 0;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* see if we have an alias */
 	if (*path != '/') {
-		const char *q = strchr(path, '/');
+		const char *q = memchr(path, '/', end - p);
 
 		if (!q)
 			q = end;
@@ -175,14 +270,15 @@ int fdt_path_offset(const void *fdt, const char *path)
 		p = q;
 	}
 
-	while (*p) {
+	while (p < end) {
 		const char *q;
 
-		while (*p == '/')
+		while (*p == '/') {
 			p++;
-		if (! *p)
-			return offset;
-		q = strchr(p, '/');
+			if (p == end)
+				return offset;
+		}
+		q = memchr(p, '/', end - p);
 		if (! q)
 			q = end;
 
@@ -196,19 +292,42 @@ int fdt_path_offset(const void *fdt, const char *path)
 	return offset;
 }
 
+int fdt_path_offset(const void *fdt, const char *path)
+{
+	return fdt_path_offset_namelen(fdt, path, strlen(path));
+}
+
 const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
 {
-	const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset);
+	const struct fdt_node_header *nh = fdt_offset_ptr_(fdt, nodeoffset);
+	const char *nameptr;
 	int err;
 
-	if (((err = fdt_check_header(fdt)) != 0)
-	    || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0))
+	if (((err = fdt_ro_probe_(fdt)) < 0)
+	    || ((err = fdt_check_node_offset_(fdt, nodeoffset)) < 0))
+			goto fail;
+
+	nameptr = nh->name;
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		/*
+		 * For old FDT versions, match the naming conventions of V16:
+		 * give only the leaf name (after all /). The actual tree
+		 * contents are loosely checked.
+		 */
+		const char *leaf;
+		leaf = strrchr(nameptr, '/');
+		if (leaf == NULL) {
+			err = -FDT_ERR_BADSTRUCTURE;
 			goto fail;
+		}
+		nameptr = leaf+1;
+	}
 
 	if (len)
-		*len = strlen(nh->name);
+		*len = strlen(nameptr);
 
-	return nh->name;
+	return nameptr;
 
  fail:
 	if (len)
@@ -220,58 +339,81 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset)
 {
 	int offset;
 
-	if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((offset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
 int fdt_next_property_offset(const void *fdt, int offset)
 {
-	if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0)
+	if ((offset = fdt_check_prop_offset_(fdt, offset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
-const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
-						      int offset,
-						      int *lenp)
+static const struct fdt_property *fdt_get_property_by_offset_(const void *fdt,
+						              int offset,
+						              int *lenp)
 {
 	int err;
 	const struct fdt_property *prop;
 
-	if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) {
+	if (!can_assume(VALID_INPUT) &&
+	    (err = fdt_check_prop_offset_(fdt, offset)) < 0) {
 		if (lenp)
 			*lenp = err;
 		return NULL;
 	}
 
-	prop = _fdt_offset_ptr(fdt, offset);
+	prop = fdt_offset_ptr_(fdt, offset);
 
 	if (lenp)
-		*lenp = fdt32_to_cpu(prop->len);
+		*lenp = fdt32_ld_(&prop->len);
 
 	return prop;
 }
 
-const struct fdt_property *fdt_get_property_namelen(const void *fdt,
-						    int offset,
-						    const char *name,
-						    int namelen, int *lenp)
+const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
+						      int offset,
+						      int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_by_offset_(fdt, offset, lenp);
+}
+
+static const struct fdt_property *fdt_get_property_namelen_(const void *fdt,
+						            int offset,
+						            const char *name,
+						            int namelen,
+							    int *lenp,
+							    int *poffset)
 {
 	for (offset = fdt_first_property_offset(fdt, offset);
 	     (offset >= 0);
 	     (offset = fdt_next_property_offset(fdt, offset))) {
 		const struct fdt_property *prop;
 
-		if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) {
+		prop = fdt_get_property_by_offset_(fdt, offset, lenp);
+		if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
 			offset = -FDT_ERR_INTERNAL;
 			break;
 		}
-		if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff),
-				   name, namelen))
+		if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
+				   name, namelen)) {
+			if (poffset)
+				*poffset = offset;
 			return prop;
+		}
 	}
 
 	if (lenp)
@@ -279,6 +421,25 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 	return NULL;
 }
 
+
+const struct fdt_property *fdt_get_property_namelen(const void *fdt,
+						    int offset,
+						    const char *name,
+						    int namelen, int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
+					 NULL);
+}
+
+
 const struct fdt_property *fdt_get_property(const void *fdt,
 					    int nodeoffset,
 					    const char *name, int *lenp)
@@ -290,12 +451,18 @@ const struct fdt_property *fdt_get_property(const void *fdt,
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp)
 {
+	int poffset;
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp);
-	if (! prop)
+	prop = fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp,
+					 &poffset);
+	if (!prop)
 		return NULL;
 
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -304,11 +471,31 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
 {
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_by_offset(fdt, offset, lenp);
+	prop = fdt_get_property_by_offset_(fdt, offset, lenp);
 	if (!prop)
 		return NULL;
-	if (namep)
-		*namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
+	if (namep) {
+		const char *name;
+		int namelen;
+
+		if (!can_assume(VALID_INPUT)) {
+			name = fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
+					      &namelen);
+			if (!name) {
+				if (lenp)
+					*lenp = namelen;
+				return NULL;
+			}
+			*namep = name;
+		} else {
+			*namep = fdt_string(fdt, fdt32_ld_(&prop->nameoff));
+		}
+	}
+
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -332,7 +519,7 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)
 			return 0;
 	}
 
-	return fdt32_to_cpu(*php);
+	return fdt32_ld_(php);
 }
 
 const char *fdt_get_alias_namelen(const void *fdt,
@@ -358,7 +545,7 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen)
 	int offset, depth, namelen;
 	const char *name;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (buflen < 2)
 		return -FDT_ERR_NOSPACE;
@@ -410,7 +597,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 	int offset, depth;
 	int supernodeoffset = -FDT_ERR_INTERNAL;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (supernodedepth < 0)
 		return -FDT_ERR_NOTFOUND;
@@ -432,10 +619,12 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 		}
 	}
 
-	if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
-		return -FDT_ERR_BADOFFSET;
-	else if (offset == -FDT_ERR_BADOFFSET)
-		return -FDT_ERR_BADSTRUCTURE;
+	if (!can_assume(VALID_INPUT)) {
+		if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
+			return -FDT_ERR_BADOFFSET;
+		else if (offset == -FDT_ERR_BADOFFSET)
+			return -FDT_ERR_BADSTRUCTURE;
+	}
 
 	return offset; /* error from fdt_next_node() */
 }
@@ -447,7 +636,8 @@ int fdt_node_depth(const void *fdt, int nodeoffset)
 
 	err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
 	if (err)
-		return (err < 0) ? err : -FDT_ERR_INTERNAL;
+		return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
+			-FDT_ERR_INTERNAL;
 	return nodedepth;
 }
 
@@ -469,7 +659,7 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 	const void *val;
 	int len;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_getprop(), then if that didn't
@@ -492,10 +682,10 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
 {
 	int offset;
 
-	if ((phandle == 0) || (phandle == -1))
+	if ((phandle == 0) || (phandle == ~0U))
 		return -FDT_ERR_BADPHANDLE;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we
 	 * potentially scan each property of a node in
@@ -530,6 +720,106 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
 	return 0;
 }
 
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
+{
+	const char *list, *end;
+	int length, count = 0;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		list += length;
+		count++;
+	}
+
+	return count;
+}
+
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string)
+{
+	int length, len, idx = 0;
+	const char *list, *end;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	len = strlen(string) + 1;
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		if (length == len && memcmp(list, string, length) == 0)
+			return idx;
+
+		list += length;
+		idx++;
+	}
+
+	return -FDT_ERR_NOTFOUND;
+}
+
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int idx,
+			       int *lenp)
+{
+	const char *list, *end;
+	int length;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list) {
+		if (lenp)
+			*lenp = length;
+
+		return NULL;
+	}
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end) {
+			if (lenp)
+				*lenp = -FDT_ERR_BADVALUE;
+
+			return NULL;
+		}
+
+		if (idx == 0) {
+			if (lenp)
+				*lenp = length - 1;
+
+			return list;
+		}
+
+		list += length;
+		idx--;
+	}
+
+	if (lenp)
+		*lenp = -FDT_ERR_NOTFOUND;
+
+	return NULL;
+}
+
 int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 			      const char *compatible)
 {
@@ -539,10 +829,8 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 	prop = fdt_getprop(fdt, nodeoffset, "compatible", &len);
 	if (!prop)
 		return len;
-	if (fdt_stringlist_contains(prop, len, compatible))
-		return 0;
-	else
-		return 1;
+
+	return !fdt_stringlist_contains(prop, len, compatible);
 }
 
 int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
@@ -550,7 +838,7 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
 {
 	int offset, err;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_node_check_compatible(), then if
diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
index 8b8cd25..3621d36 100644
--- a/xen/common/libfdt/fdt_rw.c
+++ b/xen/common/libfdt/fdt_rw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,8 +10,8 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_blocks_misordered(const void *fdt,
-			      int mem_rsv_size, int struct_size)
+static int fdt_blocks_misordered_(const void *fdt,
+				  int mem_rsv_size, int struct_size)
 {
 	return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8))
 		|| (fdt_off_dt_struct(fdt) <
@@ -65,40 +22,44 @@ static int _fdt_blocks_misordered(const void *fdt,
 		    (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
 }
 
-static int _fdt_rw_check_header(void *fdt)
+static int fdt_rw_probe_(void *fdt)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (can_assume(VALID_DTB))
+		return 0;
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_version(fdt) < 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
 		return -FDT_ERR_BADVERSION;
-	if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
+	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
 				   fdt_size_dt_struct(fdt)))
 		return -FDT_ERR_BADLAYOUT;
-	if (fdt_version(fdt) > 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
 		fdt_set_version(fdt, 17);
 
 	return 0;
 }
 
-#define FDT_RW_CHECK_HEADER(fdt) \
+#define FDT_RW_PROBE(fdt) \
 	{ \
-		int err; \
-		if ((err = _fdt_rw_check_header(fdt)) != 0) \
-			return err; \
+		int err_; \
+		if ((err_ = fdt_rw_probe_(fdt)) != 0) \
+			return err_; \
 	}
 
-static inline unsigned int _fdt_data_size(void *fdt)
+static inline unsigned int fdt_data_size_(void *fdt)
 {
 	return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 }
 
-static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
+static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int newlen)
 {
 	char *p = splicepoint;
-	unsigned int dsize = _fdt_data_size(fdt);
+	unsigned int dsize = fdt_data_size_(fdt);
 	size_t soff = p - (char *)fdt;
 
-	if (oldlen < 0 || soff + oldlen < soff || soff + oldlen > dsize)
+	if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
+		return -FDT_ERR_BADOFFSET;
+	if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
 		return -FDT_ERR_BADOFFSET;
 	if (dsize - oldlen + newlen > fdt_totalsize(fdt))
 		return -FDT_ERR_NOSPACE;
@@ -106,12 +67,12 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
 	return 0;
 }
 
-static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
+static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
 			       int oldn, int newn)
 {
 	int delta = (newn - oldn) * sizeof(*p);
 	int err;
-	err = _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
+	err = fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
 	if (err)
 		return err;
 	fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
@@ -119,13 +80,13 @@ static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
 	return 0;
 }
 
-static int _fdt_splice_struct(void *fdt, void *p,
+static int fdt_splice_struct_(void *fdt, void *p,
 			      int oldlen, int newlen)
 {
 	int delta = newlen - oldlen;
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, oldlen, newlen)))
+	if ((err = fdt_splice_(fdt, p, oldlen, newlen)))
 		return err;
 
 	fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
@@ -133,20 +94,37 @@ static int _fdt_splice_struct(void *fdt, void *p,
 	return 0;
 }
 
-static int _fdt_splice_string(void *fdt, int newlen)
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
+	int newlen = strlen(s) + 1;
+
+	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
+}
+
+static int fdt_splice_string_(void *fdt, int newlen)
 {
 	void *p = (char *)fdt
 		+ fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, 0, newlen)))
+	if ((err = fdt_splice_(fdt, p, 0, newlen)))
 		return err;
 
 	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+/**
+ * fdt_find_add_string_() - Find or allocate a string
+ *
+ * @fdt: pointer to the device tree to check/adjust
+ * @s: string to find/add
+ * @allocated: Set to 0 if the string was found, 1 if not found and so
+ *	allocated. Ignored if can_assume(NO_ROLLBACK)
+ * @return offset of string in the string table (whether found or added)
+ */
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
 {
 	char *strtab = (char *)fdt + fdt_off_dt_strings(fdt);
 	const char *p;
@@ -154,16 +132,22 @@ static int _fdt_find_add_string(void *fdt, const char *s)
 	int len = strlen(s) + 1;
 	int err;
 
-	p = _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s);
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 0;
+
+	p = fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
 	if (p)
 		/* found it */
 		return (p - strtab);
 
 	new = strtab + fdt_size_dt_strings(fdt);
-	err = _fdt_splice_string(fdt, len);
+	err = fdt_splice_string_(fdt, len);
 	if (err)
 		return err;
 
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 1;
+
 	memcpy(new, s, len);
 	return (new - strtab);
 }
@@ -173,10 +157,10 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	re = _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt));
-	err = _fdt_splice_mem_rsv(fdt, re, 0, 1);
+	re = fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
+	err = fdt_splice_mem_rsv_(fdt, re, 0, 1);
 	if (err)
 		return err;
 
@@ -187,31 +171,27 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 
 int fdt_del_mem_rsv(void *fdt, int n)
 {
-	struct fdt_reserve_entry *re = _fdt_mem_rsv_w(fdt, n);
-	int err;
+	struct fdt_reserve_entry *re = fdt_mem_rsv_w_(fdt, n);
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	if (n >= fdt_num_mem_rsv(fdt))
 		return -FDT_ERR_NOTFOUND;
 
-	err = _fdt_splice_mem_rsv(fdt, re, 1, 0);
-	if (err)
-		return err;
-	return 0;
+	return fdt_splice_mem_rsv_(fdt, re, 1, 0);
 }
 
-static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_resize_property_(void *fdt, int nodeoffset, const char *name,
 				int len, struct fdt_property **prop)
 {
 	int oldlen;
 	int err;
 
 	*prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
-	if (! (*prop))
+	if (!*prop)
 		return oldlen;
 
-	if ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
+	if ((err = fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
 				      FDT_TAGALIGN(len))))
 		return err;
 
@@ -219,27 +199,32 @@ static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
 	return 0;
 }
 
-static int _fdt_add_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_add_property_(void *fdt, int nodeoffset, const char *name,
 			     int len, struct fdt_property **prop)
 {
 	int proplen;
 	int nextoffset;
 	int namestroff;
 	int err;
+	int allocated;
 
-	if ((nextoffset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((nextoffset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return nextoffset;
 
-	namestroff = _fdt_find_add_string(fdt, name);
+	namestroff = fdt_find_add_string_(fdt, name, &allocated);
 	if (namestroff < 0)
 		return namestroff;
 
-	*prop = _fdt_offset_ptr_w(fdt, nextoffset);
+	*prop = fdt_offset_ptr_w_(fdt, nextoffset);
 	proplen = sizeof(**prop) + FDT_TAGALIGN(len);
 
-	err = _fdt_splice_struct(fdt, *prop, 0, proplen);
-	if (err)
+	err = fdt_splice_struct_(fdt, *prop, 0, proplen);
+	if (err) {
+		/* Delete the string if we failed to add it */
+		if (!can_assume(NO_ROLLBACK) && allocated)
+			fdt_del_last_string_(fdt, name);
 		return err;
+	}
 
 	(*prop)->tag = cpu_to_fdt32(FDT_PROP);
 	(*prop)->nameoff = cpu_to_fdt32(namestroff);
@@ -253,7 +238,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	int oldlen, newlen;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	namep = (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
 	if (!namep)
@@ -261,7 +246,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 
 	newlen = strlen(name);
 
-	err = _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1),
+	err = fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
 				 FDT_TAGALIGN(newlen+1));
 	if (err)
 		return err;
@@ -270,21 +255,36 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	return 0;
 }
 
-int fdt_setprop(void *fdt, int nodeoffset, const char *name,
-		const void *val, int len)
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data)
 {
 	struct fdt_property *prop;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	err = _fdt_resize_property(fdt, nodeoffset, name, len, &prop);
+	err = fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
 	if (err == -FDT_ERR_NOTFOUND)
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
+	if (err)
+		return err;
+
+	*prop_data = prop->data;
+	return 0;
+}
+
+int fdt_setprop(void *fdt, int nodeoffset, const char *name,
+		const void *val, int len)
+{
+	void *prop_data;
+	int err;
+
+	err = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data);
 	if (err)
 		return err;
 
-	memcpy(prop->data, val, len);
+	if (len)
+		memcpy(prop_data, val, len);
 	return 0;
 }
 
@@ -294,12 +294,12 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 	struct fdt_property *prop;
 	int err, oldlen, newlen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
 	if (prop) {
 		newlen = len + oldlen;
-		err = _fdt_splice_struct(fdt, prop->data,
+		err = fdt_splice_struct_(fdt, prop->data,
 					 FDT_TAGALIGN(oldlen),
 					 FDT_TAGALIGN(newlen));
 		if (err)
@@ -307,7 +307,7 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 		prop->len = cpu_to_fdt32(newlen);
 		memcpy(prop->data + oldlen, val, len);
 	} else {
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
 		if (err)
 			return err;
 		memcpy(prop->data, val, len);
@@ -320,14 +320,14 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name)
 	struct fdt_property *prop;
 	int len, proplen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
 	proplen = sizeof(*prop) + FDT_TAGALIGN(len);
-	return _fdt_splice_struct(fdt, prop, proplen, 0);
+	return fdt_splice_struct_(fdt, prop, proplen, 0);
 }
 
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
@@ -340,7 +340,7 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 	uint32_t tag;
 	fdt32_t *endtag;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	offset = fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
 	if (offset >= 0)
@@ -349,16 +349,19 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 		return offset;
 
 	/* Try to place the new node after the parent's properties */
-	fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
+	tag = fdt_next_tag(fdt, parentoffset, &nextoffset);
+	/* the fdt_subnode_offset_namelen() should ensure this never hits */
+	if (!can_assume(LIBFDT_FLAWLESS) && (tag != FDT_BEGIN_NODE))
+		return -FDT_ERR_INTERNAL;
 	do {
 		offset = nextoffset;
 		tag = fdt_next_tag(fdt, offset, &nextoffset);
 	} while ((tag == FDT_PROP) || (tag == FDT_NOP));
 
-	nh = _fdt_offset_ptr_w(fdt, offset);
+	nh = fdt_offset_ptr_w_(fdt, offset);
 	nodelen = sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
 
-	err = _fdt_splice_struct(fdt, nh, 0, nodelen);
+	err = fdt_splice_struct_(fdt, nh, 0, nodelen);
 	if (err)
 		return err;
 
@@ -380,18 +383,20 @@ int fdt_del_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset),
+	return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
 				  endoffset - nodeoffset, 0);
 }
 
-static void _fdt_packblocks(const char *old, char *new,
-			    int mem_rsv_size, int struct_size)
+static void fdt_packblocks_(const char *old, char *new,
+			    int mem_rsv_size,
+			    int struct_size,
+			    int strings_size)
 {
 	int mem_rsv_off, struct_off, strings_off;
 
@@ -406,8 +411,7 @@ static void _fdt_packblocks(const char *old, char *new,
 	fdt_set_off_dt_struct(new, struct_off);
 	fdt_set_size_dt_struct(new, struct_size);
 
-	memmove(new + strings_off, old + fdt_off_dt_strings(old),
-		fdt_size_dt_strings(old));
+	memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size);
 	fdt_set_off_dt_strings(new, strings_off);
 	fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
 }
@@ -421,22 +425,25 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 	const char *fdtend = fdtstart + fdt_totalsize(fdt);
 	char *tmp;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
 
-	if (fdt_version(fdt) >= 17) {
+	if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
 		struct_size = fdt_size_dt_struct(fdt);
-	} else {
+	} else if (fdt_version(fdt) == 16) {
 		struct_size = 0;
 		while (fdt_next_tag(fdt, struct_size, &struct_size) != FDT_END)
 			;
 		if (struct_size < 0)
 			return struct_size;
+	} else {
+		return -FDT_ERR_BADVERSION;
 	}
 
-	if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) {
+	if (can_assume(LIBFDT_ORDER) ||
+	    !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
 		/* no further work necessary */
 		err = fdt_move(fdt, buf, bufsize);
 		if (err)
@@ -464,7 +471,8 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 			return -FDT_ERR_NOSPACE;
 	}
 
-	_fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size);
+	fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
+			fdt_size_dt_strings(fdt));
 	memmove(buf, tmp, newsize);
 
 	fdt_set_magic(buf, FDT_MAGIC);
@@ -480,12 +488,13 @@ int fdt_pack(void *fdt)
 {
 	int mem_rsv_size;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
-	_fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt));
-	fdt_set_totalsize(fdt, _fdt_data_size(fdt));
+	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
+			fdt_size_dt_strings(fdt));
+	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
 
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_strerror.c b/xen/common/libfdt/fdt_strerror.c
index 8d0289c..b435693 100644
--- a/xen/common/libfdt/fdt_strerror.c
+++ b/xen/common/libfdt/fdt_strerror.c
@@ -1,49 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
@@ -67,6 +25,7 @@ static struct fdt_errtabent fdt_errtable[] = {
 
 	FDT_ERRTABENT(FDT_ERR_BADOFFSET),
 	FDT_ERRTABENT(FDT_ERR_BADPATH),
+	FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
 	FDT_ERRTABENT(FDT_ERR_BADSTATE),
 
 	FDT_ERRTABENT(FDT_ERR_TRUNCATED),
@@ -74,8 +33,14 @@ static struct fdt_errtabent fdt_errtable[] = {
 	FDT_ERRTABENT(FDT_ERR_BADVERSION),
 	FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
 	FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
+	FDT_ERRTABENT(FDT_ERR_INTERNAL),
+	FDT_ERRTABENT(FDT_ERR_BADNCELLS),
+	FDT_ERRTABENT(FDT_ERR_BADVALUE),
+	FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
+	FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
+	FDT_ERRTABENT(FDT_ERR_BADFLAGS),
 };
-#define FDT_ERRTABSIZE	(sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
+#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
 
 const char *fdt_strerror(int errval)
 {
@@ -83,7 +48,7 @@ const char *fdt_strerror(int errval)
 		return "<valid offset/length>";
 	else if (errval == 0)
 		return "<no error>";
-	else if (errval > -FDT_ERRTABSIZE) {
+	else if (-errval < FDT_ERRTABSIZE) {
 		const char *s = fdt_errtable[-errval].str;
 
 		if (s)
diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
index c7d93d3..4c569ee 100644
--- a/xen/common/libfdt/fdt_sw.c
+++ b/xen/common/libfdt/fdt_sw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,25 +10,91 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_sw_check_header(void *fdt)
+static int fdt_sw_probe_(void *fdt)
+{
+	if (!can_assume(VALID_INPUT)) {
+		if (fdt_magic(fdt) == FDT_MAGIC)
+			return -FDT_ERR_BADSTATE;
+		else if (fdt_magic(fdt) != FDT_SW_MAGIC)
+			return -FDT_ERR_BADMAGIC;
+	}
+
+	return 0;
+}
+
+#define FDT_SW_PROBE(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'memrsv' state:	Initial state after fdt_create()
+ *
+ * Allowed functions:
+ *	fdt_add_reservemap_entry()
+ *	fdt_finish_reservemap()		[moves to 'struct' state]
+ */
+static int fdt_sw_probe_memrsv_(void *fdt)
+{
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) != 0)
+		return -FDT_ERR_BADSTATE;
+	return 0;
+}
+
+#define FDT_SW_PROBE_MEMRSV(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_memrsv_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'struct' state:	Enter this state after fdt_finish_reservemap()
+ *
+ * Allowed functions:
+ *	fdt_begin_node()
+ *	fdt_end_node()
+ *	fdt_property*()
+ *	fdt_finish()			[moves to 'complete' state]
+ */
+static int fdt_sw_probe_struct_(void *fdt)
 {
-	if (fdt_magic(fdt) != FDT_SW_MAGIC)
-		return -FDT_ERR_BADMAGIC;
-	/* FIXME: should check more details about the header state */
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) &&
+	    fdt_off_dt_strings(fdt) != fdt_totalsize(fdt))
+		return -FDT_ERR_BADSTATE;
 	return 0;
 }
 
-#define FDT_SW_CHECK_HEADER(fdt) \
+#define FDT_SW_PROBE_STRUCT(fdt) \
 	{ \
 		int err; \
-		if ((err = _fdt_sw_check_header(fdt)) != 0) \
+		if ((err = fdt_sw_probe_struct_(fdt)) != 0) \
 			return err; \
 	}
 
-static void *_fdt_grab_space(void *fdt, size_t len)
+static inline uint32_t sw_flags(void *fdt)
 {
-	int offset = fdt_size_dt_struct(fdt);
-	int spaceleft;
+	/* assert: (fdt_magic(fdt) == FDT_SW_MAGIC) */
+	return fdt_last_comp_version(fdt);
+}
+
+/* 'complete' state:	Enter this state after fdt_finish()
+ *
+ * Allowed functions: none
+ */
+
+static void *fdt_grab_space_(void *fdt, size_t len)
+{
+	unsigned int offset = fdt_size_dt_struct(fdt);
+	unsigned int spaceleft;
 
 	spaceleft = fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
 		- fdt_size_dt_strings(fdt);
@@ -80,27 +103,84 @@ static void *_fdt_grab_space(void *fdt, size_t len)
 		return NULL;
 
 	fdt_set_size_dt_struct(fdt, offset + len);
-	return _fdt_offset_ptr_w(fdt, offset);
+	return fdt_offset_ptr_w_(fdt, offset);
 }
 
-int fdt_create(void *buf, int bufsize)
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
 {
+	const int hdrsize = FDT_ALIGN(sizeof(struct fdt_header),
+				      sizeof(struct fdt_reserve_entry));
 	void *fdt = buf;
 
-	if (bufsize < sizeof(struct fdt_header))
+	if (bufsize < hdrsize)
 		return -FDT_ERR_NOSPACE;
 
+	if (flags & ~FDT_CREATE_FLAGS_ALL)
+		return -FDT_ERR_BADFLAGS;
+
 	memset(buf, 0, bufsize);
 
+	/*
+	 * magic and last_comp_version keep intermediate state during the fdt
+	 * creation process, which is replaced with the proper FDT format by
+	 * fdt_finish().
+	 *
+	 * flags should be accessed with sw_flags().
+	 */
 	fdt_set_magic(fdt, FDT_SW_MAGIC);
 	fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
-	fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION);
+	fdt_set_last_comp_version(fdt, flags);
+
 	fdt_set_totalsize(fdt,  bufsize);
 
-	fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header),
-					      sizeof(struct fdt_reserve_entry)));
+	fdt_set_off_mem_rsvmap(fdt, hdrsize);
 	fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
-	fdt_set_off_dt_strings(fdt, bufsize);
+	fdt_set_off_dt_strings(fdt, 0);
+
+	return 0;
+}
+
+int fdt_create(void *buf, int bufsize)
+{
+	return fdt_create_with_flags(buf, bufsize, 0);
+}
+
+int fdt_resize(void *fdt, void *buf, int bufsize)
+{
+	size_t headsize, tailsize;
+	char *oldtail, *newtail;
+
+	FDT_SW_PROBE(fdt);
+
+	if (bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	headsize = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	tailsize = fdt_size_dt_strings(fdt);
+
+	if (!can_assume(VALID_DTB) &&
+	    headsize + tailsize > fdt_totalsize(fdt))
+		return -FDT_ERR_INTERNAL;
+
+	if ((headsize + tailsize) > (unsigned)bufsize)
+		return -FDT_ERR_NOSPACE;
+
+	oldtail = (char *)fdt + fdt_totalsize(fdt) - tailsize;
+	newtail = (char *)buf + bufsize - tailsize;
+
+	/* Two cases to avoid clobbering data if the old and new
+	 * buffers partially overlap */
+	if (buf <= fdt) {
+		memmove(buf, fdt, headsize);
+		memmove(newtail, oldtail, tailsize);
+	} else {
+		memmove(newtail, oldtail, tailsize);
+		memmove(buf, fdt, headsize);
+	}
+
+	fdt_set_totalsize(buf, bufsize);
+	if (fdt_off_dt_strings(buf))
+		fdt_set_off_dt_strings(buf, bufsize);
 
 	return 0;
 }
@@ -110,10 +190,7 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int offset;
 
-	FDT_SW_CHECK_HEADER(fdt);
-
-	if (fdt_size_dt_struct(fdt))
-		return -FDT_ERR_BADSTATE;
+	FDT_SW_PROBE_MEMRSV(fdt);
 
 	offset = fdt_off_dt_struct(fdt);
 	if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
@@ -130,17 +207,24 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 
 int fdt_finish_reservemap(void *fdt)
 {
-	return fdt_add_reservemap_entry(fdt, 0, 0);
+	int err = fdt_add_reservemap_entry(fdt, 0, 0);
+
+	if (err)
+		return err;
+
+	fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
+	return 0;
 }
 
 int fdt_begin_node(void *fdt, const char *name)
 {
 	struct fdt_node_header *nh;
-	int namelen = strlen(name) + 1;
+	int namelen;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nh = _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
+	namelen = strlen(name) + 1;
+	nh = fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
 	if (! nh)
 		return -FDT_ERR_NOSPACE;
 
@@ -153,9 +237,9 @@ int fdt_end_node(void *fdt)
 {
 	fdt32_t *en;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	en = _fdt_grab_space(fdt, FDT_TAGSIZE);
+	en = fdt_grab_space_(fdt, FDT_TAGSIZE);
 	if (! en)
 		return -FDT_ERR_NOSPACE;
 
@@ -163,48 +247,90 @@ int fdt_end_node(void *fdt)
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+static int fdt_add_string_(void *fdt, const char *s)
 {
 	char *strtab = (char *)fdt + fdt_totalsize(fdt);
-	const char *p;
+	unsigned int strtabsize = fdt_size_dt_strings(fdt);
+	unsigned int len = strlen(s) + 1;
+	unsigned int struct_top, offset;
+
+	offset = strtabsize + len;
+	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	if (fdt_totalsize(fdt) - offset < struct_top)
+		return 0; /* no more room :( */
+
+	memcpy(strtab - offset, s, len);
+	fdt_set_size_dt_strings(fdt, strtabsize + len);
+	return -offset;
+}
+
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
 	int strtabsize = fdt_size_dt_strings(fdt);
 	int len = strlen(s) + 1;
-	int struct_top, offset;
 
-	p = _fdt_find_string(strtab - strtabsize, strtabsize, s);
+	fdt_set_size_dt_strings(fdt, strtabsize - len);
+}
+
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
+{
+	char *strtab = (char *)fdt + fdt_totalsize(fdt);
+	int strtabsize = fdt_size_dt_strings(fdt);
+	const char *p;
+
+	*allocated = 0;
+
+	p = fdt_find_string_(strtab - strtabsize, strtabsize, s);
 	if (p)
 		return p - strtab;
 
-	/* Add it */
-	offset = -strtabsize - len;
-	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
-	if (fdt_totalsize(fdt) + offset < struct_top)
-		return 0; /* no more room :( */
+	*allocated = 1;
 
-	memcpy(strtab + offset, s, len);
-	fdt_set_size_dt_strings(fdt, strtabsize + len);
-	return offset;
+	return fdt_add_string_(fdt, s);
 }
 
-int fdt_property(void *fdt, const char *name, const void *val, int len)
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)
 {
 	struct fdt_property *prop;
 	int nameoff;
+	int allocated;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nameoff = _fdt_find_add_string(fdt, name);
+	/* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
+	if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
+		allocated = 1;
+		nameoff = fdt_add_string_(fdt, name);
+	} else {
+		nameoff = fdt_find_add_string_(fdt, name, &allocated);
+	}
 	if (nameoff == 0)
 		return -FDT_ERR_NOSPACE;
 
-	prop = _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
-	if (! prop)
+	prop = fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
+	if (! prop) {
+		if (allocated)
+			fdt_del_last_string_(fdt, name);
 		return -FDT_ERR_NOSPACE;
+	}
 
 	prop->tag = cpu_to_fdt32(FDT_PROP);
 	prop->nameoff = cpu_to_fdt32(nameoff);
 	prop->len = cpu_to_fdt32(len);
-	memcpy(prop->data, val, len);
+	*valp = prop->data;
+	return 0;
+}
+
+int fdt_property(void *fdt, const char *name, const void *val, int len)
+{
+	void *ptr;
+	int ret;
+
+	ret = fdt_property_placeholder(fdt, name, len, &ptr);
+	if (ret)
+		return ret;
+	memcpy(ptr, val, len);
 	return 0;
 }
 
@@ -216,10 +342,10 @@ int fdt_finish(void *fdt)
 	uint32_t tag;
 	int offset, nextoffset;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
 	/* Add terminator */
-	end = _fdt_grab_space(fdt, sizeof(*end));
+	end = fdt_grab_space_(fdt, sizeof(*end));
 	if (! end)
 		return -FDT_ERR_NOSPACE;
 	*end = cpu_to_fdt32(FDT_END);
@@ -235,7 +361,7 @@ int fdt_finish(void *fdt)
 	while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {
 		if (tag == FDT_PROP) {
 			struct fdt_property *prop =
-				_fdt_offset_ptr_w(fdt, offset);
+				fdt_offset_ptr_w_(fdt, offset);
 			int nameoff;
 
 			nameoff = fdt32_to_cpu(prop->nameoff);
@@ -249,6 +375,10 @@ int fdt_finish(void *fdt)
 
 	/* Finally, adjust the header */
 	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
+
+	/* And fix up fields that were keeping intermediate state. */
+	fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
 	fdt_set_magic(fdt, FDT_MAGIC);
+
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_wip.c b/xen/common/libfdt/fdt_wip.c
index 2d1cac0..c2d7566 100644
--- a/xen/common/libfdt/fdt_wip.c
+++ b/xen/common/libfdt/fdt_wip.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,24 +10,45 @@
 
 #include "libfdt_internal.h"
 
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len)
+{
+	void *propval;
+	int proplen;
+
+	propval = fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
+					&proplen);
+	if (!propval)
+		return proplen;
+
+	if ((unsigned)proplen < (len + idx))
+		return -FDT_ERR_NOSPACE;
+
+	memcpy((char *)propval + idx, val, len);
+	return 0;
+}
+
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len)
 {
-	void *propval;
+	const void *propval;
 	int proplen;
 
-	propval = fdt_getprop_w(fdt, nodeoffset, name, &proplen);
-	if (! propval)
+	propval = fdt_getprop(fdt, nodeoffset, name, &proplen);
+	if (!propval)
 		return proplen;
 
 	if (proplen != len)
 		return -FDT_ERR_NOSPACE;
 
-	memcpy(propval, val, len);
-	return 0;
+	return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
+						   strlen(name), 0,
+						   val, len);
 }
 
-static void _fdt_nop_region(void *start, int len)
+static void fdt_nop_region_(void *start, int len)
 {
 	fdt32_t *p;
 
@@ -84,15 +62,15 @@ int fdt_nop_property(void *fdt, int nodeoffset, const char *name)
 	int len;
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
-	_fdt_nop_region(prop, len + sizeof(*prop));
+	fdt_nop_region_(prop, len + sizeof(*prop));
 
 	return 0;
 }
 
-int _fdt_node_end_offset(void *fdt, int offset)
+int fdt_node_end_offset_(void *fdt, int offset)
 {
 	int depth = 0;
 
@@ -106,11 +84,11 @@ int fdt_nop_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	_fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0),
+	fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
 			endoffset - nodeoffset);
 	return 0;
 }
diff --git a/xen/common/libfdt/libfdt_internal.h b/xen/common/libfdt/libfdt_internal.h
index d50c4e1..16bda19 100644
--- a/xen/common/libfdt/libfdt_internal.h
+++ b/xen/common/libfdt/libfdt_internal.h
@@ -1,81 +1,39 @@
-#ifndef _LIBFDT_INTERNAL_H
-#define _LIBFDT_INTERNAL_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_INTERNAL_H
+#define LIBFDT_INTERNAL_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include <fdt.h>
 
 #define FDT_ALIGN(x, a)		(((x) + (a) - 1) & ~((a) - 1))
 #define FDT_TAGALIGN(x)		(FDT_ALIGN((x), FDT_TAGSIZE))
 
-#define FDT_CHECK_HEADER(fdt) \
-	{ \
-		int err; \
-		if ((err = fdt_check_header(fdt)) != 0) \
-			return err; \
+int32_t fdt_ro_probe_(const void *fdt);
+#define FDT_RO_PROBE(fdt)					\
+	{							\
+		int32_t totalsize_;				\
+		if ((totalsize_ = fdt_ro_probe_(fdt)) < 0)	\
+			return totalsize_;			\
 	}
 
-int _fdt_check_node_offset(const void *fdt, int offset);
-int _fdt_check_prop_offset(const void *fdt, int offset);
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s);
-int _fdt_node_end_offset(void *fdt, int nodeoffset);
+int fdt_check_node_offset_(const void *fdt, int offset);
+int fdt_check_prop_offset_(const void *fdt, int offset);
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s);
+int fdt_node_end_offset_(void *fdt, int nodeoffset);
 
-static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
+static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
 {
 	return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
 }
 
-static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
+static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
 {
-	return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
+	return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
 }
 
-static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int n)
+static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *fdt, int n)
 {
 	const struct fdt_reserve_entry *rsv_table =
 		(const struct fdt_reserve_entry *)
@@ -83,11 +41,152 @@ static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int
 
 	return rsv_table + n;
 }
-static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
+static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
+{
+	return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
+}
+
+/*
+ * Internal helpers to access tructural elements of the device tree
+ * blob (rather than for exaple reading integers from within property
+ * values).  We assume that we are either given a naturally aligned
+ * address for the platform or if we are not, we are on a platform
+ * where unaligned memory reads will be handled in a graceful manner.
+ * If not the external helpers fdtXX_ld() from libfdt.h can be used
+ * instead.
+ */
+static inline uint32_t fdt32_ld_(const fdt32_t *p)
 {
-	return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
+	return fdt32_to_cpu(*p);
+}
+
+static inline uint64_t fdt64_ld_(const fdt64_t *p)
+{
+	return fdt64_to_cpu(*p);
 }
 
 #define FDT_SW_MAGIC		(~FDT_MAGIC)
 
-#endif /* _LIBFDT_INTERNAL_H */
+/**********************************************************************/
+/* Checking controls                                                  */
+/**********************************************************************/
+
+#ifndef FDT_ASSUME_MASK
+#define FDT_ASSUME_MASK 0
+#endif
+
+/*
+ * Defines assumptions which can be enabled. Each of these can be enabled
+ * individually. For maximum safety, don't enable any assumptions!
+ *
+ * For minimal code size and no safety, use ASSUME_PERFECT at your own risk.
+ * You should have another method of validating the device tree, such as a
+ * signature or hash check before using libfdt.
+ *
+ * For situations where security is not a concern it may be safe to enable
+ * ASSUME_SANE.
+ */
+enum {
+	/*
+	 * This does essentially no checks. Only the latest device-tree
+	 * version is correctly handled. Inconsistencies or errors in the device
+	 * tree may cause undefined behaviour or crashes. Invalid parameters
+	 * passed to libfdt may do the same.
+	 *
+	 * If an error occurs when modifying the tree it may leave the tree in
+	 * an intermediate (but valid) state. As an example, adding a property
+	 * where there is insufficient space may result in the property name
+	 * being added to the string table even though the property itself is
+	 * not added to the struct section.
+	 *
+	 * Only use this if you have a fully validated device tree with
+	 * the latest supported version and wish to minimise code size.
+	 */
+	ASSUME_PERFECT		= 0xff,
+
+	/*
+	 * This assumes that the device tree is sane. i.e. header metadata
+	 * and basic hierarchy are correct.
+	 *
+	 * With this assumption enabled, normal device trees produced by libfdt
+	 * and the compiler should be handled safely. Malicious device trees and
+	 * complete garbage may cause libfdt to behave badly or crash. Truncated
+	 * device trees (e.g. those only partially loaded) can also cause
+	 * problems.
+	 *
+	 * Note: Only checks that relate exclusively to the device tree itself
+	 * (not the parameters passed to libfdt) are disabled by this
+	 * assumption. This includes checking headers, tags and the like.
+	 */
+	ASSUME_VALID_DTB	= 1 << 0,
+
+	/*
+	 * This builds on ASSUME_VALID_DTB and further assumes that libfdt
+	 * functions are called with valid parameters, i.e. not trigger
+	 * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
+	 * extensive checking of parameters and the device tree, making various
+	 * assumptions about correctness.
+	 *
+	 * It doesn't make sense to enable this assumption unless
+	 * ASSUME_VALID_DTB is also enabled.
+	 */
+	ASSUME_VALID_INPUT	= 1 << 1,
+
+	/*
+	 * This disables checks for device-tree version and removes all code
+	 * which handles older versions.
+	 *
+	 * Only enable this if you know you have a device tree with the latest
+	 * version.
+	 */
+	ASSUME_LATEST		= 1 << 2,
+
+	/*
+	 * This assumes that it is OK for a failed addition to the device tree,
+	 * due to lack of space or some other problem, to skip any rollback
+	 * steps (such as dropping the property name from the string table).
+	 * This is safe to enable in most circumstances, even though it may
+	 * leave the tree in a sub-optimal state.
+	 */
+	ASSUME_NO_ROLLBACK	= 1 << 3,
+
+	/*
+	 * This assumes that the device tree components appear in a 'convenient'
+	 * order, i.e. the memory reservation block first, then the structure
+	 * block and finally the string block.
+	 *
+	 * This order is not specified by the device-tree specification,
+	 * but is expected by libfdt. The device-tree compiler always created
+	 * device trees with this order.
+	 *
+	 * This assumption disables a check in fdt_open_into() and removes the
+	 * ability to fix the problem there. This is safe if you know that the
+	 * device tree is correctly ordered. See fdt_blocks_misordered_().
+	 */
+	ASSUME_LIBFDT_ORDER	= 1 << 4,
+
+	/*
+	 * This assumes that libfdt itself does not have any internal bugs. It
+	 * drops certain checks that should never be needed unless libfdt has an
+	 * undiscovered bug.
+	 *
+	 * This can generally be considered safe to enable.
+	 */
+	ASSUME_LIBFDT_FLAWLESS	= 1 << 5,
+};
+
+/**
+ * can_assume_() - check if a particular assumption is enabled
+ *
+ * @mask: Mask to check (ASSUME_...)
+ * @return true if that assumption is enabled, else false
+ */
+static inline bool can_assume_(int mask)
+{
+	return FDT_ASSUME_MASK & mask;
+}
+
+/** helper macros for checking assumptions */
+#define can_assume(_assume)	can_assume_(ASSUME_ ## _assume)
+
+#endif /* LIBFDT_INTERNAL_H */
diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
index f460b0d..f2e6880 100644
--- a/xen/include/xen/libfdt/fdt.h
+++ b/xen/include/xen/libfdt/fdt.h
@@ -1,53 +1,10 @@
-#ifndef _FDT_H
-#define _FDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef FDT_H
+#define FDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #ifndef __ASSEMBLY__
@@ -106,4 +63,4 @@ struct fdt_property {
 #define FDT_V16_SIZE	FDT_V3_SIZE
 #define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(fdt32_t))
 
-#endif /* _FDT_H */
+#endif /* FDT_H */
diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
index 7c75688..73467f7 100644
--- a/xen/include/xen/libfdt/libfdt.h
+++ b/xen/include/xen/libfdt/libfdt.h
@@ -1,65 +1,27 @@
-#ifndef _LIBFDT_H
-#define _LIBFDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_H
+#define LIBFDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <xen/libfdt/libfdt_env.h>
-#include <xen/libfdt/fdt.h>
-
-#define FDT_FIRST_SUPPORTED_VERSION	0x10
+ */
+
+#include <libfdt_env.h>
+#include <fdt.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FDT_FIRST_SUPPORTED_VERSION	0x02
+#define FDT_LAST_COMPATIBLE_VERSION 0x10
 #define FDT_LAST_SUPPORTED_VERSION	0x11
 
 /* Error codes: informative error codes */
 #define FDT_ERR_NOTFOUND	1
 	/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
 #define FDT_ERR_EXISTS		2
-	/* FDT_ERR_EXISTS: Attemped to create a node or property which
+	/* FDT_ERR_EXISTS: Attempted to create a node or property which
 	 * already exists */
 #define FDT_ERR_NOSPACE		3
 	/* FDT_ERR_NOSPACE: Operation needed to expand the device
@@ -77,8 +39,10 @@
 	 * (e.g. missing a leading / for a function which requires an
 	 * absolute path) */
 #define FDT_ERR_BADPHANDLE	6
-	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle
-	 * value.  phandle values of 0 and -1 are not permitted. */
+	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
+	 * This can be caused either by an invalid phandle property
+	 * length, or the phandle value was either 0 or -1, which are
+	 * not permitted. */
 #define FDT_ERR_BADSTATE	7
 	/* FDT_ERR_BADSTATE: Function was passed an incomplete device
 	 * tree created by the sequential-write functions, which is
@@ -86,8 +50,9 @@
 
 /* Error codes: codes for bad device tree blobs */
 #define FDT_ERR_TRUNCATED	8
-	/* FDT_ERR_TRUNCATED: Structure block of the given device tree
-	 * ends without an FDT_END tag. */
+	/* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
+	 * terminated (overflows, goes outside allowed bounds, or
+	 * isn't properly terminated).  */
 #define FDT_ERR_BADMAGIC	9
 	/* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
 	 * device tree at all - it is missing the flattened device
@@ -114,13 +79,46 @@
 	 * Should never be returned, if it is, it indicates a bug in
 	 * libfdt itself. */
 
-#define FDT_ERR_MAX		13
+/* Errors in device tree content */
+#define FDT_ERR_BADNCELLS	14
+	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
+	 * or similar property with a bad format or value */
+
+#define FDT_ERR_BADVALUE	15
+	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
+	 * value. For example: a property expected to contain a string list
+	 * is not NUL-terminated within the length of its value. */
+
+#define FDT_ERR_BADOVERLAY	16
+	/* FDT_ERR_BADOVERLAY: The device tree overlay, while
+	 * correctly structured, cannot be applied due to some
+	 * unexpected or missing value, property or node. */
+
+#define FDT_ERR_NOPHANDLES	17
+	/* FDT_ERR_NOPHANDLES: The device tree doesn't have any
+	 * phandle available anymore without causing an overflow */
+
+#define FDT_ERR_BADFLAGS	18
+	/* FDT_ERR_BADFLAGS: The function was passed a flags field that
+	 * contains invalid flags or an invalid combination of flags. */
+
+#define FDT_ERR_ALIGNMENT	19
+	/* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
+	 * aligned. */
+
+#define FDT_ERR_MAX		19
+
+/* constants */
+#define FDT_MAX_PHANDLE 0xfffffffe
+	/* Valid values for phandles range from 1 to 2^32-2. */
 
 /**********************************************************************/
 /* Low-level functions (you probably don't need these)                */
 /**********************************************************************/
 
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen);
+#endif
 static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 {
 	return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
@@ -128,6 +126,59 @@ static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 
 uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
 
+/*
+ * External helpers to access words from a device tree blob. They're built
+ * to work even with unaligned pointers on platforms (such as ARMv5) that don't
+ * like unaligned loads and stores.
+ */
+static inline uint32_t fdt32_ld(const fdt32_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint32_t)bp[0] << 24)
+		| ((uint32_t)bp[1] << 16)
+		| ((uint32_t)bp[2] << 8)
+		| bp[3];
+}
+
+static inline void fdt32_st(void *property, uint32_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 24;
+	bp[1] = (value >> 16) & 0xff;
+	bp[2] = (value >> 8) & 0xff;
+	bp[3] = value & 0xff;
+}
+
+static inline uint64_t fdt64_ld(const fdt64_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint64_t)bp[0] << 56)
+		| ((uint64_t)bp[1] << 48)
+		| ((uint64_t)bp[2] << 40)
+		| ((uint64_t)bp[3] << 32)
+		| ((uint64_t)bp[4] << 24)
+		| ((uint64_t)bp[5] << 16)
+		| ((uint64_t)bp[6] << 8)
+		| bp[7];
+}
+
+static inline void fdt64_st(void *property, uint64_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 56;
+	bp[1] = (value >> 48) & 0xff;
+	bp[2] = (value >> 40) & 0xff;
+	bp[3] = (value >> 32) & 0xff;
+	bp[4] = (value >> 24) & 0xff;
+	bp[5] = (value >> 16) & 0xff;
+	bp[6] = (value >> 8) & 0xff;
+	bp[7] = value & 0xff;
+}
+
 /**********************************************************************/
 /* Traversal functions                                                */
 /**********************************************************************/
@@ -136,74 +187,118 @@ int fdt_next_node(const void *fdt, int offset, int *depth);
 
 /**
  * fdt_first_subnode() - get offset of first direct subnode
- *
  * @fdt:	FDT blob
  * @offset:	Offset of node to check
- * @return offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
+ *
+ * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
  */
 int fdt_first_subnode(const void *fdt, int offset);
 
 /**
  * fdt_next_subnode() - get offset of next direct subnode
+ * @fdt:	FDT blob
+ * @offset:	Offset of previous subnode
  *
  * After first calling fdt_first_subnode(), call this function repeatedly to
  * get direct subnodes of a parent node.
  *
- * @fdt:	FDT blob
- * @offset:	Offset of previous subnode
- * @return offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
- * subnodes
+ * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
+ *         subnodes
  */
 int fdt_next_subnode(const void *fdt, int offset);
 
+/**
+ * fdt_for_each_subnode - iterate over all subnodes of a parent
+ *
+ * @node:	child node (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @parent:	parent node (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_subnode(node, fdt, parent) {
+ *		Use node
+ *		...
+ *	}
+ *
+ *	if ((node < 0) && (node != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and @node is used as
+ * iterator in the loop. The parent variable be constant or even a
+ * literal.
+ */
+#define fdt_for_each_subnode(node, fdt, parent)		\
+	for (node = fdt_first_subnode(fdt, parent);	\
+	     node >= 0;					\
+	     node = fdt_next_subnode(fdt, node))
+
 /**********************************************************************/
 /* General functions                                                  */
 /**********************************************************************/
-
 #define fdt_get_header(fdt, field) \
-	(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))
-#define fdt_magic(fdt) 			(fdt_get_header(fdt, magic))
+	(fdt32_ld(&((const struct fdt_header *)(fdt))->field))
+#define fdt_magic(fdt)			(fdt_get_header(fdt, magic))
 #define fdt_totalsize(fdt)		(fdt_get_header(fdt, totalsize))
 #define fdt_off_dt_struct(fdt)		(fdt_get_header(fdt, off_dt_struct))
 #define fdt_off_dt_strings(fdt)		(fdt_get_header(fdt, off_dt_strings))
 #define fdt_off_mem_rsvmap(fdt)		(fdt_get_header(fdt, off_mem_rsvmap))
 #define fdt_version(fdt)		(fdt_get_header(fdt, version))
-#define fdt_last_comp_version(fdt) 	(fdt_get_header(fdt, last_comp_version))
-#define fdt_boot_cpuid_phys(fdt) 	(fdt_get_header(fdt, boot_cpuid_phys))
-#define fdt_size_dt_strings(fdt) 	(fdt_get_header(fdt, size_dt_strings))
+#define fdt_last_comp_version(fdt)	(fdt_get_header(fdt, last_comp_version))
+#define fdt_boot_cpuid_phys(fdt)	(fdt_get_header(fdt, boot_cpuid_phys))
+#define fdt_size_dt_strings(fdt)	(fdt_get_header(fdt, size_dt_strings))
 #define fdt_size_dt_struct(fdt)		(fdt_get_header(fdt, size_dt_struct))
 
-#define __fdt_set_hdr(name) \
+#define fdt_set_hdr_(name) \
 	static inline void fdt_set_##name(void *fdt, uint32_t val) \
 	{ \
-		struct fdt_header *fdth = (struct fdt_header*)fdt; \
+		struct fdt_header *fdth = (struct fdt_header *)fdt; \
 		fdth->name = cpu_to_fdt32(val); \
 	}
-__fdt_set_hdr(magic);
-__fdt_set_hdr(totalsize);
-__fdt_set_hdr(off_dt_struct);
-__fdt_set_hdr(off_dt_strings);
-__fdt_set_hdr(off_mem_rsvmap);
-__fdt_set_hdr(version);
-__fdt_set_hdr(last_comp_version);
-__fdt_set_hdr(boot_cpuid_phys);
-__fdt_set_hdr(size_dt_strings);
-__fdt_set_hdr(size_dt_struct);
-#undef __fdt_set_hdr
-
-/**
- * fdt_check_header - sanity check a device tree or possible device tree
+fdt_set_hdr_(magic);
+fdt_set_hdr_(totalsize);
+fdt_set_hdr_(off_dt_struct);
+fdt_set_hdr_(off_dt_strings);
+fdt_set_hdr_(off_mem_rsvmap);
+fdt_set_hdr_(version);
+fdt_set_hdr_(last_comp_version);
+fdt_set_hdr_(boot_cpuid_phys);
+fdt_set_hdr_(size_dt_strings);
+fdt_set_hdr_(size_dt_struct);
+#undef fdt_set_hdr_
+
+/**
+ * fdt_header_size - return the size of the tree's header
+ * @fdt: pointer to a flattened device tree
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size(const void *fdt);
+
+/**
+ * fdt_header_size_ - internal function to get header size from a version number
+ * @version: devicetree version number
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size_(uint32_t version);
+
+/**
+ * fdt_check_header - sanity check a device tree header
  * @fdt: pointer to data which might be a flattened device tree
  *
  * fdt_check_header() checks that the given buffer contains what
- * appears to be a flattened device tree with sane information in its
- * header.
+ * appears to be a flattened device tree, and that the header contains
+ * valid information (to the extent that can be determined from the
+ * header alone).
  *
  * returns:
  *     0, if the buffer appears to contain a valid device tree
  *     -FDT_ERR_BADMAGIC,
  *     -FDT_ERR_BADVERSION,
- *     -FDT_ERR_BADSTATE, standard meanings, as above
+ *     -FDT_ERR_BADSTATE,
+ *     -FDT_ERR_TRUNCATED, standard meanings, as above
  */
 int fdt_check_header(const void *fdt);
 
@@ -232,6 +327,24 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
 /* Read-only functions                                                */
 /**********************************************************************/
 
+int fdt_check_full(const void *fdt, size_t bufsize);
+
+/**
+ * fdt_get_string - retrieve a string from the strings block of a device tree
+ * @fdt: pointer to the device tree blob
+ * @stroffset: offset of the string within the strings block (native endian)
+ * @lenp: optional pointer to return the string's length
+ *
+ * fdt_get_string() retrieves a pointer to a single string from the
+ * strings block of the device tree blob at fdt, and optionally also
+ * returns the string's length in *lenp.
+ *
+ * returns:
+ *     a pointer to the string, on success
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
+ */
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
+
 /**
  * fdt_string - retrieve a string from the strings block of a device tree
  * @fdt: pointer to the device tree blob
@@ -242,11 +355,66 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
  *
  * returns:
  *     a pointer to the string, on success
- *     NULL, if stroffset is out of bounds
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
  */
 const char *fdt_string(const void *fdt, int stroffset);
 
 /**
+ * fdt_find_max_phandle - find and return the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the highest phandle value found in the tree
+ *
+ * fdt_find_max_phandle() finds the highest phandle value in the given device
+ * tree. The value returned in @phandle is only valid if the function returns
+ * success.
+ *
+ * returns:
+ *     0 on success or a negative error code on failure
+ */
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
+
+/**
+ * fdt_get_max_phandle - retrieves the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ *
+ * fdt_get_max_phandle retrieves the highest phandle in the given
+ * device tree. This will ignore badly formatted phandles, or phandles
+ * with a value of 0 or -1.
+ *
+ * This function is deprecated in favour of fdt_find_max_phandle().
+ *
+ * returns:
+ *      the highest phandle on success
+ *      0, if no phandle was found in the device tree
+ *      -1, if an error occurred
+ */
+static inline uint32_t fdt_get_max_phandle(const void *fdt)
+{
+	uint32_t phandle;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &phandle);
+	if (err < 0)
+		return (uint32_t)-1;
+
+	return phandle;
+}
+
+/**
+ * fdt_generate_phandle - return a new, unused phandle for a device tree blob
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the new phandle
+ *
+ * Walks the device tree blob and looks for the highest phandle value. On
+ * success, the new, unused phandle value (one higher than the previously
+ * highest phandle value in the device tree blob) will be returned in the
+ * @phandle parameter.
+ *
+ * Return: 0 on success or a negative error-code on failure
+ */
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
+
+/**
  * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
  * @fdt: pointer to the device tree blob
  *
@@ -262,9 +430,11 @@ int fdt_num_mem_rsv(const void *fdt);
 /**
  * fdt_get_mem_rsv - retrieve one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: pointers to 64-bit variables
+ * @n: index of reserve map entry
+ * @address: pointer to 64-bit variable to hold the start address
+ * @size: pointer to 64-bit variable to hold the size of the entry
  *
- * On success, *address and *size will contain the address and size of
+ * On success, @address and @size will contain the address and size of
  * the n-th reserve map entry from the device tree blob, in
  * native-endian format.
  *
@@ -287,9 +457,13 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size);
  * namelen characters of name for matching the subnode name.  This is
  * useful for finding subnodes based on a portion of a larger string,
  * such as a full path.
+ *
+ * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 			       const char *name, int namelen);
+#endif
 /**
  * fdt_subnode_offset - find a subnode of a given node
  * @fdt: pointer to the device tree blob
@@ -306,8 +480,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
  * returns:
  *	structure block offset of the requested subnode (>=0), on success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
- *      -FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
+ *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
  *	-FDT_ERR_BADSTRUCTURE,
@@ -316,6 +491,21 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
 
 /**
+ * fdt_path_offset_namelen - find a tree node by its full path
+ * @fdt: pointer to the device tree blob
+ * @path: full path of the node to locate
+ * @namelen: number of characters of path to consider
+ *
+ * Identical to fdt_path_offset(), but only consider the first namelen
+ * characters of path as the path name.
+ *
+ * Return: offset of the node or negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);
+#endif
+
+/**
  * fdt_path_offset - find a tree node by its full path
  * @fdt: pointer to the device tree blob
  * @path: full path of the node to locate
@@ -328,7 +518,8 @@ int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
  * address).
  *
  * returns:
- *	structure block offset of the node with the requested path (>=0), on success
+ *	structure block offset of the node with the requested path (>=0), on
+ *		success
  *	-FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
  *	-FDT_ERR_NOTFOUND, if the requested node does not exist
  *      -FDT_ERR_BADMAGIC,
@@ -352,10 +543,12 @@ int fdt_path_offset(const void *fdt, const char *path);
  *
  * returns:
  *	pointer to the node's name, on success
- *		If lenp is non-NULL, *lenp contains the length of that name (>=0)
+ *		If lenp is non-NULL, *lenp contains the length of that name
+ *			(>=0)
  *	NULL, on error
  *		if lenp is non-NULL *lenp contains an error code (<0):
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE, standard meanings
@@ -404,6 +597,33 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset);
 int fdt_next_property_offset(const void *fdt, int offset);
 
 /**
+ * fdt_for_each_property_offset - iterate over all properties of a node
+ *
+ * @property:	property offset (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @node:	node offset (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_property_offset(property, fdt, node) {
+ *		Use property
+ *		...
+ *	}
+ *
+ *	if ((property < 0) && (property != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and property is used as
+ * iterator in the loop. The node variable can be constant or even a
+ * literal.
+ */
+#define fdt_for_each_property_offset(property, fdt, node)	\
+	for (property = fdt_first_property_offset(fdt, node);	\
+	     property >= 0;					\
+	     property = fdt_next_property_offset(fdt, property))
+
+/**
  * fdt_get_property_by_offset - retrieve the property at a given offset
  * @fdt: pointer to the device tree blob
  * @offset: offset of the property to retrieve
@@ -414,6 +634,9 @@ int fdt_next_property_offset(const void *fdt, int offset);
  * offset.  If lenp is non-NULL, the length of the property value is
  * also returned, in the integer pointed to by lenp.
  *
+ * Note that this code only works on device tree versions >= 16. fdt_getprop()
+ * works on all versions.
+ *
  * returns:
  *	pointer to the structure representing the property
  *		if lenp is non-NULL, *lenp contains the length of the property
@@ -439,13 +662,18 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
  * @namelen: number of characters of name to consider
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
- * Identical to fdt_get_property_namelen(), but only examine the first
- * namelen characters of name for matching the property name.
+ * Identical to fdt_get_property(), but only examine the first namelen
+ * characters of name for matching the property name.
+ *
+ * Return: pointer to the structure representing the property, or NULL
+ *         if not found
  */
+#ifndef SWIG /* Not available in Python */
 const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 						    int nodeoffset,
 						    const char *name,
 						    int namelen, int *lenp);
+#endif
 
 /**
  * fdt_get_property - find a given property in a given node
@@ -467,7 +695,8 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -487,7 +716,7 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
 /**
  * fdt_getprop_by_offset - retrieve the value of a property at a given offset
  * @fdt: pointer to the device tree blob
- * @ffset: offset of the property to read
+ * @offset: offset of the property to read
  * @namep: pointer to a string variable (will be overwritten) or NULL
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
@@ -515,8 +744,10 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
  *		-FDT_ERR_BADSTRUCTURE,
  *		-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_getprop_by_offset(const void *fdt, int offset,
 				  const char **namep, int *lenp);
+#endif
 
 /**
  * fdt_getprop_namelen - get property value based on substring
@@ -528,9 +759,20 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
  *
  * Identical to fdt_getprop(), but only examine the first namelen
  * characters of name for matching the property name.
+ *
+ * Return: pointer to the property's value or NULL on error
  */
+#ifndef SWIG /* Not available in Python */
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp);
+static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
+					  const char *name, int namelen,
+					  int *lenp)
+{
+	return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
+						      namelen, lenp);
+}
+#endif
 
 /**
  * fdt_getprop - retrieve the value of a given property
@@ -540,10 +782,10 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
  * fdt_getprop() retrieves a pointer to the value of the property
- * named 'name' of the node at offset nodeoffset (this will be a
+ * named @name of the node at offset @nodeoffset (this will be a
  * pointer to within the device blob itself, not a copy of the value).
- * If lenp is non-NULL, the length of the property value is also
- * returned, in the integer pointed to by lenp.
+ * If @lenp is non-NULL, the length of the property value is also
+ * returned, in the integer pointed to by @lenp.
  *
  * returns:
  *	pointer to the property's value
@@ -552,7 +794,8 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -587,11 +830,16 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset);
  * @name: name of the alias th look up
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_get_alias(), but only examine the first namelen
- * characters of name for matching the alias name.
+ * Identical to fdt_get_alias(), but only examine the first @namelen
+ * characters of @name for matching the alias name.
+ *
+ * Return: a pointer to the expansion of the alias named @name, if it exists,
+ *	   NULL otherwise
  */
+#ifndef SWIG /* Not available in Python */
 const char *fdt_get_alias_namelen(const void *fdt,
 				  const char *name, int namelen);
+#endif
 
 /**
  * fdt_get_alias - retrieve the path referenced by a given alias
@@ -599,7 +847,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
  * @name: name of the alias th look up
  *
  * fdt_get_alias() retrieves the value of a given alias.  That is, the
- * value of the property named 'name' in the node /aliases.
+ * value of the property named @name in the node /aliases.
  *
  * returns:
  *	a pointer to the expansion of the alias named 'name', if it exists
@@ -624,7 +872,7 @@ const char *fdt_get_alias(const void *fdt, const char *name);
  *	0, on success
  *		buf contains the absolute path of the node at
  *		nodeoffset, as a NUL-terminated string.
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1)
  *		characters and will not fit in the given buffer.
  *	-FDT_ERR_BADMAGIC,
@@ -654,11 +902,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen);
  * structure from the start to nodeoffset.
  *
  * returns:
-
  *	structure block offset of the node at node offset's ancestor
  *		of depth supernodedepth (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-*	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeoffset
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
+ *		nodeoffset
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -680,7 +928,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
  *
  * returns:
  *	depth of the node at nodeoffset (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -703,7 +951,7 @@ int fdt_node_depth(const void *fdt, int nodeoffset);
  * returns:
  *	structure block offset of the parent of the node at nodeoffset
  *		(>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -743,7 +991,7 @@ int fdt_parent_offset(const void *fdt, int nodeoffset);
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -775,14 +1023,13 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
 
 /**
- * fdt_node_check_compatible: check a node's compatible property
+ * fdt_node_check_compatible - check a node's compatible property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of a tree node
  * @compatible: string to match against
  *
- *
  * fdt_node_check_compatible() returns 0 if the given node contains a
- * 'compatible' property with the given string as one of its elements,
+ * @compatible property with the given string as one of its elements,
  * it returns non-zero otherwise, or on error.
  *
  * returns:
@@ -790,7 +1037,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
  *	1, if the node has a 'compatible' property, but it does not list
  *		the given string
  *	-FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
- * 	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -827,7 +1074,7 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -846,15 +1093,160 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
  * one or more strings, each terminated by \0, as is found in a device tree
  * "compatible" property.
  *
- * @return: 1 if the string is found in the list, 0 not found, or invalid list
+ * Return: 1 if the string is found in the list, 0 not found, or invalid list
  */
 int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
 
+/**
+ * fdt_stringlist_count - count the number of strings in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ *
+ * Return:
+ *   the number of strings in the given property
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist
+ */
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
+
+/**
+ * fdt_stringlist_search - find a string in a string list and return its index
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @string: string to look up in the string list
+ *
+ * Note that it is possible for this function to succeed on property values
+ * that are not NUL-terminated. That's because the function will stop after
+ * finding the first occurrence of @string. This can for example happen with
+ * small-valued cell properties, such as #address-cells, when searching for
+ * the empty string.
+ *
+ * return:
+ *   the index of the string in the list of strings
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist or does not contain
+ *                     the given string
+ */
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string);
+
+/**
+ * fdt_stringlist_get() - obtain the string at a given index in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @index: index of the string to return
+ * @lenp: return location for the string length or an error code on failure
+ *
+ * Note that this will successfully extract strings from properties with
+ * non-NUL-terminated values. For example on small-valued cell properties
+ * this function will return the empty string.
+ *
+ * If non-NULL, the length of the string (on success) or a negative error-code
+ * (on failure) will be stored in the integer pointer to by lenp.
+ *
+ * Return:
+ *   A pointer to the string at the given index in the string list or NULL on
+ *   failure. On success the length of the string will be stored in the memory
+ *   location pointed to by the lenp parameter, if non-NULL. On failure one of
+ *   the following negative error codes will be returned in the lenp parameter
+ *   (if non-NULL):
+ *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *     -FDT_ERR_NOTFOUND if the property does not exist
+ */
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int index,
+			       int *lenp);
+
+/**********************************************************************/
+/* Read-only functions (addressing related)                           */
+/**********************************************************************/
+
+/**
+ * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
+ *
+ * This is the maximum value for #address-cells, #size-cells and
+ * similar properties that will be processed by libfdt.  IEE1275
+ * requires that OF implementations handle values up to 4.
+ * Implementations may support larger values, but in practice higher
+ * values aren't used.
+ */
+#define FDT_MAX_NCELLS		4
+
+/**
+ * fdt_address_cells - retrieve address size for a bus represented in the tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address size for
+ *
+ * When the node has a valid #address-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      2, if the node has no #address-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_address_cells(const void *fdt, int nodeoffset);
+
+/**
+ * fdt_size_cells - retrieve address range size for a bus represented in the
+ *                  tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address range size for
+ *
+ * When the node has a valid #size-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      1, if the node has no #size-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#size-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_size_cells(const void *fdt, int nodeoffset);
+
+
 /**********************************************************************/
 /* Write-in-place functions                                           */
 /**********************************************************************/
 
 /**
+ * fdt_setprop_inplace_namelen_partial - change a property's value,
+ *                                       but not its size
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @namelen: number of characters of name to consider
+ * @idx: index of the property to change in the array
+ * @val: pointer to data to replace the property value with
+ * @len: length of the property value
+ *
+ * Identical to fdt_setprop_inplace(), but modifies the given property
+ * starting from the given index, and using only the first characters
+ * of the name. It is useful when you want to manipulate only one value of
+ * an array and you have a string that doesn't end with \0.
+ *
+ * Return: 0 on success, negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len);
+#endif
+
+/**
  * fdt_setprop_inplace - change a property's value, but not its size
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -882,8 +1274,10 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
  *	-FDT_ERR_BADSTRUCTURE,
  *	-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len);
+#endif
 
 /**
  * fdt_setprop_inplace_u32 - change the value of a 32-bit integer property
@@ -957,8 +1351,13 @@ static inline int fdt_setprop_inplace_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_setprop_inplace_cell - change the value of a single-cell property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node containing the property
+ * @name: name of the property to change the value of
+ * @val: new value of the 32-bit cell
  *
  * This is an alternative name for fdt_setprop_inplace_u32()
+ * Return: 0 on success, negative libfdt error number otherwise.
  */
 static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
 					   const char *name, uint32_t val)
@@ -1020,7 +1419,46 @@ int fdt_nop_node(void *fdt, int nodeoffset);
 /* Sequential write functions                                         */
 /**********************************************************************/
 
+/* fdt_create_with_flags flags */
+#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
+	/* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
+	 * names in the fdt. This can result in faster creation times, but
+	 * a larger fdt. */
+
+#define FDT_CREATE_FLAGS_ALL	(FDT_CREATE_FLAG_NO_NAME_DEDUP)
+
+/**
+ * fdt_create_with_flags - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
+ *
+ * fdt_create_with_flags() begins the process of creating a new fdt with
+ * the sequential write interface.
+ *
+ * fdt creation process must end with fdt_finished() to produce a valid fdt.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ *	-FDT_ERR_BADFLAGS, flags is not valid
+ */
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
+
+/**
+ * fdt_create - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ *
+ * fdt_create() is equivalent to fdt_create_with_flags() with flags=0.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ */
 int fdt_create(void *buf, int bufsize);
+
+int fdt_resize(void *fdt, void *buf, int bufsize);
 int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
 int fdt_finish_reservemap(void *fdt);
 int fdt_begin_node(void *fdt, const char *name);
@@ -1035,10 +1473,29 @@ static inline int fdt_property_u64(void *fdt, const char *name, uint64_t val)
 	fdt64_t tmp = cpu_to_fdt64(val);
 	return fdt_property(fdt, name, &tmp, sizeof(tmp));
 }
+
+#ifndef SWIG /* Not available in Python */
 static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val)
 {
 	return fdt_property_u32(fdt, name, val);
 }
+#endif
+
+/**
+ * fdt_property_placeholder - add a new property and return a ptr to its value
+ *
+ * @fdt: pointer to the device tree blob
+ * @name: name of property to add
+ * @len: length of property value in bytes
+ * @valp: returns a pointer to where where the value should be placed
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_NOSPACE, standard meanings
+ */
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp);
+
 #define fdt_property_string(fdt, name, str) \
 	fdt_property(fdt, name, str, strlen(str)+1)
 int fdt_end_node(void *fdt);
@@ -1055,7 +1512,8 @@ int fdt_pack(void *fdt);
 /**
  * fdt_add_mem_rsv - add one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: 64-bit values (native endian)
+ * @address: 64-bit start address of the reserve map entry
+ * @size: 64-bit size of the reserved region
  *
  * Adds a reserve map entry to the given blob reserving a region at
  * address address of length size.
@@ -1158,6 +1616,37 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
 		const void *val, int len);
 
 /**
+ * fdt_setprop_placeholder - allocate space for a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @len: length of the property value
+ * @prop_data: return pointer to property data
+ *
+ * fdt_setprop_placeholer() allocates the named property in the given node.
+ * If the property exists it is resized. In either case a pointer to the
+ * property data is returned.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data);
+
+/**
  * fdt_setprop_u32 - set a property to a 32-bit integer
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -1229,8 +1718,14 @@ static inline int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name,
 
 /**
  * fdt_setprop_cell - set a property to a single cell value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value for the property (native endian)
  *
  * This is an alternative name for fdt_setprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 				   uint32_t val)
@@ -1269,6 +1764,36 @@ static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 #define fdt_setprop_string(fdt, nodeoffset, name, str) \
 	fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
+
+/**
+ * fdt_setprop_empty - set a property to an empty value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ *
+ * fdt_setprop_empty() sets the value of the named property in the
+ * given node to an empty (zero length) value, or creates a new empty
+ * property if it does not already exist.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+#define fdt_setprop_empty(fdt, nodeoffset, name) \
+	fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
+
 /**
  * fdt_appendprop - append to or create a property
  * @fdt: pointer to the device tree blob
@@ -1371,8 +1896,14 @@ static inline int fdt_appendprop_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_appendprop_cell - append a single cell value to a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value to append to the property (native endian)
  *
  * This is an alternative name for fdt_appendprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 				      const char *name, uint32_t val)
@@ -1411,6 +1942,43 @@ static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 	fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
 /**
+ * fdt_appendprop_addrrange - append a address range property
+ * @fdt: pointer to the device tree blob
+ * @parent: offset of the parent node
+ * @nodeoffset: offset of the node to add a property at
+ * @name: name of property
+ * @addr: start address of a given range
+ * @size: size of a given range
+ *
+ * fdt_appendprop_addrrange() appends an address range value (start
+ * address and size) to the value of the named property in the given
+ * node, or creates a new property with that value if it does not
+ * already exist.
+ * If "name" is not specified, a default "reg" is used.
+ * Cell sizes are determined by parent's #address-cells and #size-cells.
+ *
+ * This function may insert data into the blob, and will therefore
+ * change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain a new property
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size);
+
+/**
  * fdt_delprop - delete a property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to nop
@@ -1438,16 +2006,21 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name);
  * fdt_add_subnode_namelen - creates a new node based on substring
  * @fdt: pointer to the device tree blob
  * @parentoffset: structure block offset of a node
- * @name: name of the subnode to locate
+ * @name: name of the subnode to create
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_add_subnode(), but use only the first namelen
- * characters of name as the name of the new node.  This is useful for
+ * Identical to fdt_add_subnode(), but use only the first @namelen
+ * characters of @name as the name of the new node.  This is useful for
  * creating subnodes based on a portion of a larger string, such as a
  * full path.
+ *
+ * Return: structure block offset of the created subnode (>=0),
+ *	   negative libfdt error value otherwise
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 			    const char *name, int namelen);
+#endif
 
 /**
  * fdt_add_subnode - creates a new node
@@ -1461,11 +2034,13 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
  *
  * This function will insert data into the blob, and will therefore
  * change the offsets of some existing nodes.
-
+ *
  * returns:
- *	structure block offset of the created nodeequested subnode (>=0), on success
+ *	structure block offset of the created nodeequested subnode (>=0), on
+ *		success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
  *	-FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
  *		the given name
  *	-FDT_ERR_NOSPACE, if there is insufficient free space in the
@@ -1503,10 +2078,45 @@ int fdt_add_subnode(void *fdt, int parentoffset, const char *name);
  */
 int fdt_del_node(void *fdt, int nodeoffset);
 
+/**
+ * fdt_overlay_apply - Applies a DT overlay on a base DT
+ * @fdt: pointer to the base device tree blob
+ * @fdto: pointer to the device tree overlay blob
+ *
+ * fdt_overlay_apply() will apply the given device tree overlay on the
+ * given base device tree.
+ *
+ * Expect the base device tree to be modified, even if the function
+ * returns an error.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there's not enough space in the base device tree
+ *	-FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
+ *		properties in the base DT
+ *	-FDT_ERR_BADPHANDLE,
+ *	-FDT_ERR_BADOVERLAY,
+ *	-FDT_ERR_NOPHANDLES,
+ *	-FDT_ERR_INTERNAL,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET,
+ *	-FDT_ERR_BADPATH,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_overlay_apply(void *fdt, void *fdto);
+
 /**********************************************************************/
 /* Debugging / informational functions                                */
 /**********************************************************************/
 
 const char *fdt_strerror(int errval);
 
-#endif /* _LIBFDT_H */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBFDT_H */
diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
index 035bf75..73b6d40 100644
--- a/xen/include/xen/libfdt/libfdt_env.h
+++ b/xen/include/xen/libfdt/libfdt_env.h
@@ -1,22 +1,96 @@
-#ifndef _LIBFDT_ENV_H
-#define _LIBFDT_ENV_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_ENV_H
+#define LIBFDT_ENV_H
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ * Copyright 2012 Kim Phillips, Freescale Semiconductor.
+ */
 
-#include <xen/types.h>
-#include <xen/string.h>
-#include <asm/byteorder.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
 
-typedef uint16_t fdt16_t;
-typedef uint32_t fdt32_t;
-typedef uint64_t fdt64_t;
+#ifdef __CHECKER__
+#define FDT_FORCE __attribute__((force))
+#define FDT_BITWISE __attribute__((bitwise))
+#else
+#define FDT_FORCE
+#define FDT_BITWISE
+#endif
 
-#define fdt16_to_cpu(x) be16_to_cpu(x)
-#define cpu_to_fdt16(x) cpu_to_be16(x)
-#define fdt32_to_cpu(x) be32_to_cpu(x)
-#define cpu_to_fdt32(x) cpu_to_be32(x)
-#define fdt64_to_cpu(x) be64_to_cpu(x)
-#define cpu_to_fdt64(x) cpu_to_be64(x)
+typedef uint16_t FDT_BITWISE fdt16_t;
+typedef uint32_t FDT_BITWISE fdt32_t;
+typedef uint64_t FDT_BITWISE fdt64_t;
 
-/* Xen-specific libfdt error code. */
-#define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
+#define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
+#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
+#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | \
+			 (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
+#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | \
+			 (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
+			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
+			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
 
-#endif /* _LIBFDT_ENV_H */
+static inline uint16_t fdt16_to_cpu(fdt16_t x)
+{
+	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
+}
+static inline fdt16_t cpu_to_fdt16(uint16_t x)
+{
+	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
+}
+
+static inline uint32_t fdt32_to_cpu(fdt32_t x)
+{
+	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
+}
+static inline fdt32_t cpu_to_fdt32(uint32_t x)
+{
+	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
+}
+
+static inline uint64_t fdt64_to_cpu(fdt64_t x)
+{
+	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
+}
+static inline fdt64_t cpu_to_fdt64(uint64_t x)
+{
+	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
+}
+#undef CPU_TO_FDT64
+#undef CPU_TO_FDT32
+#undef CPU_TO_FDT16
+#undef EXTRACT_BYTE
+
+#ifdef __APPLE__
+#include <AvailabilityMacros.h>
+
+/* strnlen() is not available on Mac OS < 10.7 */
+# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < \
+                                         MAC_OS_X_VERSION_10_7)
+
+#define strnlen fdt_strnlen
+
+/*
+ * fdt_strnlen: returns the length of a string or max_count - which ever is
+ * smallest.
+ * Input 1 string: the string whose size is to be determined
+ * Input 2 max_count: the maximum value returned by this function
+ * Output: length of the string or max_count (the smallest of the two)
+ */
+static inline size_t fdt_strnlen(const char *string, size_t max_count)
+{
+    const char *p = memchr(string, 0, max_count);
+    return p ? p - string : max_count;
+}
+
+#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED <
+          MAC_OS_X_VERSION_10_7) */
+
+#endif /* __APPLE__ */
+
+#endif /* LIBFDT_ENV_H */
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 18:19:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 18:19:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222585.384861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj3oN-00069o-CY; Fri, 05 Nov 2021 18:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222585.384861; Fri, 05 Nov 2021 18:19:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj3oN-00069h-8j; Fri, 05 Nov 2021 18:19:35 +0000
Received: by outflank-mailman (input) for mailman id 222585;
 Fri, 05 Nov 2021 18:19:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0iX8=PY=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mj3oM-00069X-Ak
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 18:19:34 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20620.outbound.protection.outlook.com
 [2a01:111:f400:fe59::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ea95c5de-3e64-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 19:19:31 +0100 (CET)
Received: from DM6PR18CA0017.namprd18.prod.outlook.com (2603:10b6:5:15b::30)
 by SN6PR02MB4685.namprd02.prod.outlook.com (2603:10b6:805:94::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Fri, 5 Nov
 2021 18:19:27 +0000
Received: from DM3NAM02FT052.eop-nam02.prod.protection.outlook.com
 (2603:10b6:5:15b:cafe::c4) by DM6PR18CA0017.outlook.office365.com
 (2603:10b6:5:15b::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 18:19:27 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 DM3NAM02FT052.mail.protection.outlook.com (10.13.5.134) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 18:19:26 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Fri, 5 Nov 2021 11:19:25 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Fri, 5 Nov 2021 11:19:25 -0700
Received: from [172.19.2.115] (port=34588 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mj3oD-0006lr-JN; Fri, 05 Nov 2021 11:19:25 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea95c5de-3e64-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ke9mDQgbgYpcu34owtBJvWOtHxxwtybNKZJFfvP2lCr6DEMPNfNQcB7o2KJCkykSeqDAJ1Zu5huwCY6GLATG1PCgICWKkMdvC4sdZ1SVXxbxYeuaB2SKoqOkiogqnTIvK0lRhr6KJexiLm/i0NG3bpwRXsNRbngl5ZQ0fAEbMhK8OG8w4grSvIGeiFGKaWxFcR2qc4xaiBF4RTJikBIUek9KK4SYh/LEVpudOOKP4zQWkMUrALEsZnyim7HzAyLobEqGDfjK9NdZVLRgqOzEg65cnHGfTaZIsv6F+LsXEW0Hyp2/X+HZDhRNfwxs0VHMhM34SxKD1glW7rE5cCrRAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hyL1tgGmUEuC7fmcxSVtgNwntAokYloJ8uUCQirAxIQ=;
 b=nLkkG2Fhx1n8bOO8/JNnfvvCCPttdBzKVRYJFYnf89naOoOxOoliio9Z0ccPVb8zE53PObQEutXzAcKms7rN6B3EhlHclUKnEiQUvDW6UGBg5iRhaE5GZl8EjqJAek1JGo5DJZeDs7o7ooN89Am2yoAtNq7g7+jZFNs/LLaf2hvPV4Lt5VyEqneoey9t/HPQFTkU1OTmDQDJsl5G7A+SOYiOMPVTTe38AtBt1PtQLRcJa/XuAQWcSz6CTOp4RKiWNIvovCNYTNejcMvCX87TXUYQnpnvna/z1QXOHOE6YYIDoEcWaRKwDswQJFBdAK2ZO+SB72S0s7qNkkf7B2gsDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hyL1tgGmUEuC7fmcxSVtgNwntAokYloJ8uUCQirAxIQ=;
 b=lTw5tWyOPv4dk0XQYG5r+reB+yq/zyELC+wgf3U13EIyDf3XXok+dYZ4geXA7/zXp5Ne9+D0Aq6RxzI/gAL+wwKl05Xd9YRr6Hof9OySWS67POxG333qjfLNNolX2JKw2CeMrWbg/ZlYQ6F9cddJdo8kC1fj/QEL0Po/z5AwMGY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][PATCH 2/2] xen: libfdt: Changes to make libfdt v1.6.1 compatible with Xen
Date: Fri, 5 Nov 2021 11:19:14 -0700
Message-ID: <1636136354-68413-3-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636136354-68413-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636136354-68413-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 80af2105-c7cc-42cb-9321-08d9a088cd54
X-MS-TrafficTypeDiagnostic: SN6PR02MB4685:
X-Microsoft-Antispam-PRVS:
	<SN6PR02MB4685ECB7A5EB76C7886F49F1BC8E9@SN6PR02MB4685.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:1850;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	uKZjRGNPBU1eHgTtm5OECa7rBSzGeyTkrfVK7jv1XbPwVTWahMM/DKSj8e99ZDYAKTyTahrz6lBl/fio2EBkSMPswSWiYDM9T/AT6wzHaiCMSsY3BTHqhW0VQ6uWecLPyuO6rBBJqr4KNORdWwr6MCI6jTtZbqAIUIu2OWkG6/ipvlpp88/WxJnZhaZ4QhHYQqNqzlTeq78z7F62VMcz5rJ7M38tMpSQb7TBlZ22L7AiPl+/pLxpEKn8p4r+5hr+qT+3t6kF9DaJWWsc9aNeJDxqg7Ui5qb6Uso8LqjMQy09yXIQ7GROXzYB4gsu3+ROWORg8ZPIXKGNXuUPRGmKQEEeFf/wOSrj10xXKeHWT7KbBuh1pYGHo4oAgLh5TYIf/UFR3WkNCv366V3ppxPcOfSRl0H8Ohw2vSOb9jzzLiooc3IesoBbc1ZI5oCltqRSk54DQxNGPinqYk1koGzx5XGiFV4agsa1a1B55b/5NeMsW2j6F1hhSyS5u7P03owzO3mcxVvFcfGymTfNx4sIYIMjHzqacXArE07t8WT8A5xlswC8x8VRTs9MRLjEj6AFcmd7Er4+OxuKVOmny71CwUZ2qdBut2JNPWGIcUO+whlBt12oYhGA6XbWwhCAJyBTheFUHna76Q1bL3lEp5we13EKun8DONceuzS81ZuQYP6BQ0fF29TPf8cDu7JBRhg31b5TT4UREter4dkDhnkyEyf0iNfhjYrcNiwHYTOo9r4=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(5660300002)(7636003)(36860700001)(26005)(426003)(47076005)(107886003)(8936002)(6666004)(6916009)(83380400001)(82310400003)(336012)(316002)(70206006)(36906005)(36756003)(186003)(7696005)(356005)(508600001)(8676002)(54906003)(2906002)(9786002)(70586007)(2616005)(4326008)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 18:19:26.9214
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 80af2105-c7cc-42cb-9321-08d9a088cd54
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT052.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR02MB4685

A few minor changes are done to make it compatible with Xen:
    fdt_overlay.c: overlay_fixup_phandle()

        Replace strtoul() with simple_strtoul() as strtoul() is not available in
        Xen lib and included lib.h.

        Change char *endptr to const char *endptr.

    libfdt_env.h:
        Changed path for config.h and stdbool.h. Remaining Xen changes to
        libfdt_env.h carried over from existing libfdt (v1.4.0)

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/libfdt/fdt_overlay.c     |  6 ++++--
 xen/include/xen/libfdt/libfdt.h     |  4 ++--
 xen/include/xen/libfdt/libfdt_env.h | 14 ++++++++------
 3 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
index d217e79..7b95e2b 100644
--- a/xen/common/libfdt/fdt_overlay.c
+++ b/xen/common/libfdt/fdt_overlay.c
@@ -8,6 +8,7 @@
 
 #include <fdt.h>
 #include <libfdt.h>
+#include <xen/lib.h>
 
 #include "libfdt_internal.h"
 
@@ -446,7 +447,8 @@ static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
 		const char *fixup_str = value;
 		uint32_t path_len, name_len;
 		uint32_t fixup_len;
-		char *sep, *endptr;
+		char *sep;
+		const char *endptr;
 		int poffset, ret;
 
 		fixup_end = memchr(value, '\0', len);
@@ -476,7 +478,7 @@ static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
 		if (!name_len)
 			return -FDT_ERR_BADOVERLAY;
 
-		poffset = strtoul(sep + 1, &endptr, 10);
+		poffset = simple_strtoul(sep + 1, &endptr, 10);
 		if ((*endptr != '\0') || (endptr <= (sep + 1)))
 			return -FDT_ERR_BADOVERLAY;
 
diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
index 73467f7..c71689e 100644
--- a/xen/include/xen/libfdt/libfdt.h
+++ b/xen/include/xen/libfdt/libfdt.h
@@ -6,8 +6,8 @@
  * Copyright (C) 2006 David Gibson, IBM Corporation.
  */
 
-#include <libfdt_env.h>
-#include <fdt.h>
+#include <xen/libfdt/libfdt_env.h>
+#include <xen/libfdt/fdt.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
index 73b6d40..03380d5 100644
--- a/xen/include/xen/libfdt/libfdt_env.h
+++ b/xen/include/xen/libfdt/libfdt_env.h
@@ -7,12 +7,11 @@
  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
  */
 
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
+#include <xen/config.h>
+#include <xen/types.h>
+#include <xen/string.h>
+#include <asm/byteorder.h>
+#include <xen/stdbool.h>
 
 #ifdef __CHECKER__
 #define FDT_FORCE __attribute__((force))
@@ -35,6 +34,9 @@ typedef uint64_t FDT_BITWISE fdt64_t;
 			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
 			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
 
+/* Xen-specific libfdt error code. */
+#define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
+
 static inline uint16_t fdt16_to_cpu(fdt16_t x)
 {
 	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 18:39:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 18:39:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222605.384883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj47e-00013A-Oi; Fri, 05 Nov 2021 18:39:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222605.384883; Fri, 05 Nov 2021 18:39:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj47e-000133-KB; Fri, 05 Nov 2021 18:39:30 +0000
Received: by outflank-mailman (input) for mailman id 222605;
 Fri, 05 Nov 2021 18:39:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0iX8=PY=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mj47d-00012x-40
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 18:39:29 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060b.outbound.protection.outlook.com
 [2a01:111:f400:7eab::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b16f9612-3e67-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 19:39:24 +0100 (CET)
Received: from SA0PR12CA0016.namprd12.prod.outlook.com (2603:10b6:806:6f::21)
 by MWHPR0201MB3579.namprd02.prod.outlook.com (2603:10b6:301:81::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 18:39:15 +0000
Received: from SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:6f:cafe::68) by SA0PR12CA0016.outlook.office365.com
 (2603:10b6:806:6f::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Fri, 5 Nov 2021 18:39:15 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0011.mail.protection.outlook.com (10.97.5.171) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 18:39:15 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Fri, 5 Nov 2021 11:39:14 -0700
Received: from smtp.xilinx.com (172.19.127.96) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Fri, 5 Nov 2021 11:39:14 -0700
Received: from [172.19.2.115] (port=34598 helo=xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mj47O-000G9P-LO; Fri, 05 Nov 2021 11:39:14 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b16f9612-3e67-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=edJLu8jcN6iosF4vWjZGfLgMRsEPkXfFdxFyPGfMAA5oCW5J7II4Qkx0u9DfZPWas2OQwD6hjUepSG4PNGokFU+TtkzV9xzdp40rjBI7i6nghEp4yhZfPt/KhpsK47eeUEa77fX/qQwZtDKp1UTQudMc/ebXzbp2hcwfm8XoiE0H+fg+7Fbmi521DmVSpNEpoZFGXi94Qv3cyZbKdkOvTAT78Wbk3XiedJvZ8Dzf2Z9Ae+6m81GKTF1QYhFMQXfu+FsDb7ieZPNrBk9lLDbxTGZF73O9cNkiy4PyZefHdeGzGg9ZEvhxtPvr37zoj5gyQDOJr59WlCUfotN9Ilc3oA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=URh5hYJdDndXKQ/T2H+4ONuD1IVHSfUdC/nmpCgIKSc=;
 b=gJdyOn2/QXEewrCyaqopUf7bRnmYkF2c3xi2k0f0SRHqmjYtkSBDP5Vn//2ZK2UspHRLc3++FZNdi4O7lOCIU4Kefh77V7YUtni+rDdlKluLRwLnBadFeHbEM3biWYzw61yPje4SBTa9I6Nzg2aUeHtYgoqBaZl7Ns25BbPv1eMY0qqHpOkKoBo3Me0Acfgvl+E/yDuCFgmnius5q6nSzoyu5cWkS0cNS8ITaSMiLx+yBDRPSmzTMCoe6h9xOIhy6v443uIL3m17hn/mEzXruKsOaRWeyvPVcvAwZ+mfanFn3Sav7SkKnRISBbL7oeQLrM+pKANSP41arxNS0L6Cfw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=arm.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=URh5hYJdDndXKQ/T2H+4ONuD1IVHSfUdC/nmpCgIKSc=;
 b=mAJBwIyWr4eRIXy1A78pxWAh7bfgL4AND1mHqFWLcuNU8IF/jAgciDKSz5heQzuKLpOvuT+TqxEYLxX5BYqxX8JFEoe8CmUqtQqNqx4arFLT3QhL+Nk5vNJK45Ulhw/aV7dtpFiuEGKgFbxSatf0aAxe8+bJ34l3wFR9FcUdySQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; arm.com; dkim=none (message not signed)
 header.d=none;arm.com; dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
Date: Fri, 5 Nov 2021 11:39:14 -0700
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, "julien@xen.org"
	<julien@xen.org>
Subject: Re: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
Message-ID: <20211105183913.GA68811@xilinx.com>
References: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com>
 <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com>
 <BCD82839-0BBC-4CD6-956B-E4938D9ACB7D@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
In-Reply-To: <BCD82839-0BBC-4CD6-956B-E4938D9ACB7D@arm.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3ade6599-ae80-4cee-3a3e-08d9a08b91cd
X-MS-TrafficTypeDiagnostic: MWHPR0201MB3579:
X-Microsoft-Antispam-PRVS:
	<MWHPR0201MB35793497FFB084A1247C275DBC8E9@MWHPR0201MB3579.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:5236;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ddYDvO6oinTBxkC5AcxyQW5RWhKtySFZeccFNch+E2NV+7zLcHtkYgusa38VnI1uBNH5J7op2LTqo3UldTFsgIUsjYk9/+ADBcuQHnYHAhKBeKt6LCQUXXUg2qF1Hfyqp7oysdcrVueDcFamWALbpThJ5qXmRZ7ke8jyzQWEm9VPrJO7mWCzK+1p3n3uAu5kDKOd6HweSxd5HlMFtAOfIFsxLecPKwSLfgZDUxtuaADlFepryTCWCsbDterm24XRODoelI/rr/tiTYXuCjBr9gB1gzCx8FKW7MnxzijBwYTFfOnSbW52rXtw/j6XOcuExhChTeZyIbqCRPhvMLgLgI2kSUwRwaZ2A5K/Ll21C/2oY+wAuRxOeXykTxwds6yC0f/XOybeA61z8lylffG3kLcJdgr3mJwC31QB++qwGUOqQuUEDzMuZrzaHxRNuf+0hy02CbHpeJpg4lrvSaFBB51MNQVeniUcY2MLbmaGHimer8Q3LOQBG8K3EiiTRfMpupEJd3ifgBEYObsrwrVirmvdjI7IVi16kVuCu3mLPZZM6FgWJgREvNdMt7ViJFpH9AmZTJZs6shVObq9dYb53ukzwoYifyR8po8Xhf9LuODIAj541asVNcDP6tlvvy0jn7rSngxdDGkvVVmWhsINLQwvkn+GZEBvAeC8Ptd4B+7bi2WigELXKL1mUDXIsEWXNtOpkIjaTA8HCd1H18Y+hJ7NvGo/3MYRnK0N9JqQ+KXQB2uQJWOphsnS6x7LrvANRSQO0ChkaRlL0nmpvbNSGDYknTUVBlN1BtZV3YCLrUnf6dS7gZECr38CyjL290Z1LcRzUdOlQLFeOSzTVyPrvg==
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(8676002)(9786002)(6916009)(33656002)(30864003)(8936002)(83380400001)(7636003)(54906003)(36756003)(15650500001)(4326008)(316002)(36860700001)(82310400003)(1076003)(5660300002)(36906005)(47076005)(7696005)(356005)(53546011)(336012)(426003)(2906002)(70586007)(186003)(26005)(2616005)(508600001)(70206006)(46800400005)(2004002)(559001)(579004);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 18:39:15.5850
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ade6599-ae80-4cee-3a3e-08d9a08b91cd
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR0201MB3579

On Fri, Nov 05, 2021 at 02:43:07PM +0000, Bertrand Marquis wrote:
Thanks Bertrand for taking time to review it. I will update the version.lds and
send a new version.

Regards,
Vikram
> Hi Vikram,
> 
> > On 4 Nov 2021, at 06:19, Vikram Garhwal <fnu.vikram@xilinx.com> wrote:
> > 
> > Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
> > This update is done to support device tree overlays.
> > 
> > A few minor changes are done to make it compatible with Xen:
> > fdt_overlay.c: overlay_fixup_phandle()
> >    Replace  strtoul() simple_strtoul() as strtoul() is not available in Xen lib
> >    and included lib.h.
> >    Change char *endptr to const char *endptr.
> > 
> > libfdt_env.h:
> >    Changed path for config.h and stdbool.h. Remaining Xen changes to
> >    libfdt_env.h carried over from existing libfdt (v1.4.0)
> 
> I can confirm that you updated all sources to version 1.6.1 and the changes
> are actually limited to what you said here.
> 
> But you forgot to update the version.lds file to sync it (which was done on the
> previous update to 1.4.0). Could also update version.lds ?
> 
> I can also confirm this is compiling for arm32, arm64 and x86.
> 
> Cheers
> Bertrand
> 
> > 
> > Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
> > ---
> > xen/common/libfdt/Makefile.libfdt   |  10 +-
> > xen/common/libfdt/fdt.c             | 226 ++++++---
> > xen/common/libfdt/fdt_addresses.c   | 101 ++++
> > xen/common/libfdt/fdt_check.c       |  93 ++++
> > xen/common/libfdt/fdt_empty_tree.c  |  46 +-
> > xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
> > xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
> > xen/common/libfdt/fdt_rw.c          | 249 +++++-----
> > xen/common/libfdt/fdt_strerror.c    |  55 +--
> > xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
> > xen/common/libfdt/fdt_wip.c         |  88 ++--
> > xen/common/libfdt/libfdt_internal.h | 223 ++++++---
> > xen/include/xen/libfdt/fdt.h        |  51 +--
> > xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
> > xen/include/xen/libfdt/libfdt_env.h | 100 +++-
> > 15 files changed, 3025 insertions(+), 785 deletions(-)
> > create mode 100644 xen/common/libfdt/fdt_addresses.c
> > create mode 100644 xen/common/libfdt/fdt_check.c
> > create mode 100644 xen/common/libfdt/fdt_overlay.c
> > 
> > diff --git a/xen/common/libfdt/Makefile.libfdt b/xen/common/libfdt/Makefile.libfdt
> > index 91126c0..b6d8fc0 100644
> > --- a/xen/common/libfdt/Makefile.libfdt
> > +++ b/xen/common/libfdt/Makefile.libfdt
> > @@ -1,3 +1,4 @@
> > +# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > # Makefile.libfdt
> > #
> > # This is not a complete Makefile of itself.  Instead, it is designed to
> > @@ -6,5 +7,12 @@
> > LIBFDT_soname = libfdt.$(SHAREDLIB_EXT).1
> > LIBFDT_INCLUDES = fdt.h libfdt.h libfdt_env.h
> > LIBFDT_VERSION = version.lds
> > -LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c
> > +LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c \
> > +	fdt_addresses.c fdt_overlay.c fdt_check.c
> > LIBFDT_OBJS = $(LIBFDT_SRCS:%.c=%.o)
> > +LIBFDT_LIB = libfdt-$(DTC_VERSION).$(SHAREDLIB_EXT)
> > +
> > +libfdt_clean:
> > +	@$(VECHO) CLEAN "(libfdt)"
> > +	rm -f $(STD_CLEANFILES:%=$(LIBFDT_dir)/%)
> > +	rm -f $(LIBFDT_dir)/$(LIBFDT_soname)
> > diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
> > index bbc7717..9fe7cf4 100644
> > --- a/xen/common/libfdt/fdt.c
> > +++ b/xen/common/libfdt/fdt.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,40 +10,156 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > -int fdt_check_header(const void *fdt)
> > +/*
> > + * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
> > + * that the given buffer contains what appears to be a flattened
> > + * device tree with sane information in its header.
> > + */
> > +int32_t fdt_ro_probe_(const void *fdt)
> > {
> > +	uint32_t totalsize = fdt_totalsize(fdt);
> > +
> > +	if (can_assume(VALID_DTB))
> > +		return totalsize;
> > +
> > +	/* The device tree must be at an 8-byte aligned address */
> > +	if ((uintptr_t)fdt & 7)
> > +		return -FDT_ERR_ALIGNMENT;
> > +
> > 	if (fdt_magic(fdt) == FDT_MAGIC) {
> > 		/* Complete tree */
> > -		if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> > -			return -FDT_ERR_BADVERSION;
> > -		if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
> > -			return -FDT_ERR_BADVERSION;
> > +		if (!can_assume(LATEST)) {
> > +			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> > +				return -FDT_ERR_BADVERSION;
> > +			if (fdt_last_comp_version(fdt) >
> > +					FDT_LAST_SUPPORTED_VERSION)
> > +				return -FDT_ERR_BADVERSION;
> > +		}
> > 	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
> > 		/* Unfinished sequential-write blob */
> > -		if (fdt_size_dt_struct(fdt) == 0)
> > +		if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) == 0)
> > 			return -FDT_ERR_BADSTATE;
> > 	} else {
> > 		return -FDT_ERR_BADMAGIC;
> > 	}
> > 
> > +	if (totalsize < INT32_MAX)
> > +		return totalsize;
> > +	else
> > +		return -FDT_ERR_TRUNCATED;
> > +}
> > +
> > +static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off)
> > +{
> > +	return (off >= hdrsize) && (off <= totalsize);
> > +}
> > +
> > +static int check_block_(uint32_t hdrsize, uint32_t totalsize,
> > +			uint32_t base, uint32_t size)
> > +{
> > +	if (!check_off_(hdrsize, totalsize, base))
> > +		return 0; /* block start out of bounds */
> > +	if ((base + size) < base)
> > +		return 0; /* overflow */
> > +	if (!check_off_(hdrsize, totalsize, base + size))
> > +		return 0; /* block end out of bounds */
> > +	return 1;
> > +}
> > +
> > +size_t fdt_header_size_(uint32_t version)
> > +{
> > +	if (version <= 1)
> > +		return FDT_V1_SIZE;
> > +	else if (version <= 2)
> > +		return FDT_V2_SIZE;
> > +	else if (version <= 3)
> > +		return FDT_V3_SIZE;
> > +	else if (version <= 16)
> > +		return FDT_V16_SIZE;
> > +	else
> > +		return FDT_V17_SIZE;
> > +}
> > +
> > +size_t fdt_header_size(const void *fdt)
> > +{
> > +	return can_assume(LATEST) ? FDT_V17_SIZE :
> > +		fdt_header_size_(fdt_version(fdt));
> > +}
> > +
> > +int fdt_check_header(const void *fdt)
> > +{
> > +	size_t hdrsize;
> > +
> > +	/* The device tree must be at an 8-byte aligned address */
> > +	if ((uintptr_t)fdt & 7)
> > +		return -FDT_ERR_ALIGNMENT;
> > +
> > +	if (fdt_magic(fdt) != FDT_MAGIC)
> > +		return -FDT_ERR_BADMAGIC;
> > +	if (!can_assume(LATEST)) {
> > +		if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> > +		    || (fdt_last_comp_version(fdt) >
> > +			FDT_LAST_SUPPORTED_VERSION))
> > +			return -FDT_ERR_BADVERSION;
> > +		if (fdt_version(fdt) < fdt_last_comp_version(fdt))
> > +			return -FDT_ERR_BADVERSION;
> > +	}
> > +	hdrsize = fdt_header_size(fdt);
> > +	if (!can_assume(VALID_DTB)) {
> > +
> > +		if ((fdt_totalsize(fdt) < hdrsize)
> > +		    || (fdt_totalsize(fdt) > INT_MAX))
> > +			return -FDT_ERR_TRUNCATED;
> > +
> > +		/* Bounds check memrsv block */
> > +		if (!check_off_(hdrsize, fdt_totalsize(fdt),
> > +				fdt_off_mem_rsvmap(fdt)))
> > +			return -FDT_ERR_TRUNCATED;
> > +	}
> > +
> > +	if (!can_assume(VALID_DTB)) {
> > +		/* Bounds check structure block */
> > +		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
> > +			if (!check_off_(hdrsize, fdt_totalsize(fdt),
> > +					fdt_off_dt_struct(fdt)))
> > +				return -FDT_ERR_TRUNCATED;
> > +		} else {
> > +			if (!check_block_(hdrsize, fdt_totalsize(fdt),
> > +					  fdt_off_dt_struct(fdt),
> > +					  fdt_size_dt_struct(fdt)))
> > +				return -FDT_ERR_TRUNCATED;
> > +		}
> > +
> > +		/* Bounds check strings block */
> > +		if (!check_block_(hdrsize, fdt_totalsize(fdt),
> > +				  fdt_off_dt_strings(fdt),
> > +				  fdt_size_dt_strings(fdt)))
> > +			return -FDT_ERR_TRUNCATED;
> > +	}
> > +
> > 	return 0;
> > }
> > 
> > const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
> > {
> > -	unsigned absoffset = offset + fdt_off_dt_struct(fdt);
> > +	unsigned int uoffset = offset;
> > +	unsigned int absoffset = offset + fdt_off_dt_struct(fdt);
> > 
> > -	if ((absoffset < offset)
> > -	    || ((absoffset + len) < absoffset)
> > -	    || (absoffset + len) > fdt_totalsize(fdt))
> > +	if (offset < 0)
> > 		return NULL;
> > 
> > -	if (fdt_version(fdt) >= 0x11)
> > -		if (((offset + len) < offset)
> > +	if (!can_assume(VALID_INPUT))
> > +		if ((absoffset < uoffset)
> > +		    || ((absoffset + len) < absoffset)
> > +		    || (absoffset + len) > fdt_totalsize(fdt))
> > +			return NULL;
> > +
> > +	if (can_assume(LATEST) || fdt_version(fdt) >= 0x11)
> > +		if (((uoffset + len) < uoffset)
> > 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
> > 			return NULL;
> > 
> > -	return _fdt_offset_ptr(fdt, offset);
> > +	return fdt_offset_ptr_(fdt, offset);
> > }
> > 
> > uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> > @@ -98,7 +171,7 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> > 
> > 	*nextoffset = -FDT_ERR_TRUNCATED;
> > 	tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
> > -	if (!tagp)
> > +	if (!can_assume(VALID_DTB) && !tagp)
> > 		return FDT_END; /* premature end */
> > 	tag = fdt32_to_cpu(*tagp);
> > 	offset += FDT_TAGSIZE;
> > @@ -110,17 +183,21 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> > 		do {
> > 			p = fdt_offset_ptr(fdt, offset++, 1);
> > 		} while (p && (*p != '\0'));
> > -		if (!p)
> > +		if (!can_assume(VALID_DTB) && !p)
> > 			return FDT_END; /* premature end */
> > 		break;
> > 
> > 	case FDT_PROP:
> > 		lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp));
> > -		if (!lenp)
> > +		if (!can_assume(VALID_DTB) && !lenp)
> > 			return FDT_END; /* premature end */
> > 		/* skip-name offset, length and value */
> > 		offset += sizeof(struct fdt_property) - FDT_TAGSIZE
> > 			+ fdt32_to_cpu(*lenp);
> > +		if (!can_assume(LATEST) &&
> > +		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >= 8 &&
> > +		    ((offset - fdt32_to_cpu(*lenp)) % 8) != 0)
> > +			offset += 4;
> > 		break;
> > 
> > 	case FDT_END:
> > @@ -139,19 +216,25 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> > 	return tag;
> > }
> > 
> > -int _fdt_check_node_offset(const void *fdt, int offset)
> > +int fdt_check_node_offset_(const void *fdt, int offset)
> > {
> > -	if ((offset < 0) || (offset % FDT_TAGSIZE)
> > -	    || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE))
> > +	if (!can_assume(VALID_INPUT)
> > +	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
> > +		return -FDT_ERR_BADOFFSET;
> > +
> > +	if (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)
> > 		return -FDT_ERR_BADOFFSET;
> > 
> > 	return offset;
> > }
> > 
> > -int _fdt_check_prop_offset(const void *fdt, int offset)
> > +int fdt_check_prop_offset_(const void *fdt, int offset)
> > {
> > -	if ((offset < 0) || (offset % FDT_TAGSIZE)
> > -	    || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP))
> > +	if (!can_assume(VALID_INPUT)
> > +	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
> > +		return -FDT_ERR_BADOFFSET;
> > +
> > +	if (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)
> > 		return -FDT_ERR_BADOFFSET;
> > 
> > 	return offset;
> > @@ -163,7 +246,7 @@ int fdt_next_node(const void *fdt, int offset, int *depth)
> > 	uint32_t tag;
> > 
> > 	if (offset >= 0)
> > -		if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0)
> > +		if ((nextoffset = fdt_check_node_offset_(fdt, offset)) < 0)
> > 			return nextoffset;
> > 
> > 	do {
> > @@ -225,7 +308,7 @@ int fdt_next_subnode(const void *fdt, int offset)
> > 	return offset;
> > }
> > 
> > -const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
> > +const char *fdt_find_string_(const char *strtab, int tabsize, const char *s)
> > {
> > 	int len = strlen(s) + 1;
> > 	const char *last = strtab + tabsize - len;
> > @@ -239,9 +322,12 @@ const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
> > 
> > int fdt_move(const void *fdt, void *buf, int bufsize)
> > {
> > -	FDT_CHECK_HEADER(fdt);
> > +	if (!can_assume(VALID_INPUT) && bufsize < 0)
> > +		return -FDT_ERR_NOSPACE;
> > +
> > +	FDT_RO_PROBE(fdt);
> > 
> > -	if (fdt_totalsize(fdt) > bufsize)
> > +	if (fdt_totalsize(fdt) > (unsigned int)bufsize)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > 	memmove(buf, fdt, fdt_totalsize(fdt));
> > diff --git a/xen/common/libfdt/fdt_addresses.c b/xen/common/libfdt/fdt_addresses.c
> > new file mode 100644
> > index 0000000..9a82cd0
> > --- /dev/null
> > +++ b/xen/common/libfdt/fdt_addresses.c
> > @@ -0,0 +1,101 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > +/*
> > + * libfdt - Flat Device Tree manipulation
> > + * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
> > + * Copyright (C) 2018 embedded brains GmbH
> > + */
> > +#include "libfdt_env.h"
> > +
> > +#include <fdt.h>
> > +#include <libfdt.h>
> > +
> > +#include "libfdt_internal.h"
> > +
> > +static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
> > +{
> > +	const fdt32_t *c;
> > +	uint32_t val;
> > +	int len;
> > +
> > +	c = fdt_getprop(fdt, nodeoffset, name, &len);
> > +	if (!c)
> > +		return len;
> > +
> > +	if (len != sizeof(*c))
> > +		return -FDT_ERR_BADNCELLS;
> > +
> > +	val = fdt32_to_cpu(*c);
> > +	if (val > FDT_MAX_NCELLS)
> > +		return -FDT_ERR_BADNCELLS;
> > +
> > +	return (int)val;
> > +}
> > +
> > +int fdt_address_cells(const void *fdt, int nodeoffset)
> > +{
> > +	int val;
> > +
> > +	val = fdt_cells(fdt, nodeoffset, "#address-cells");
> > +	if (val == 0)
> > +		return -FDT_ERR_BADNCELLS;
> > +	if (val == -FDT_ERR_NOTFOUND)
> > +		return 2;
> > +	return val;
> > +}
> > +
> > +int fdt_size_cells(const void *fdt, int nodeoffset)
> > +{
> > +	int val;
> > +
> > +	val = fdt_cells(fdt, nodeoffset, "#size-cells");
> > +	if (val == -FDT_ERR_NOTFOUND)
> > +		return 1;
> > +	return val;
> > +}
> > +
> > +/* This function assumes that [address|size]_cells is 1 or 2 */
> > +int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
> > +			     const char *name, uint64_t addr, uint64_t size)
> > +{
> > +	int addr_cells, size_cells, ret;
> > +	uint8_t data[sizeof(fdt64_t) * 2], *prop;
> > +
> > +	ret = fdt_address_cells(fdt, parent);
> > +	if (ret < 0)
> > +		return ret;
> > +	addr_cells = ret;
> > +
> > +	ret = fdt_size_cells(fdt, parent);
> > +	if (ret < 0)
> > +		return ret;
> > +	size_cells = ret;
> > +
> > +	/* check validity of address */
> > +	prop = data;
> > +	if (addr_cells == 1) {
> > +		if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		fdt32_st(prop, (uint32_t)addr);
> > +	} else if (addr_cells == 2) {
> > +		fdt64_st(prop, addr);
> > +	} else {
> > +		return -FDT_ERR_BADNCELLS;
> > +	}
> > +
> > +	/* check validity of size */
> > +	prop += addr_cells * sizeof(fdt32_t);
> > +	if (size_cells == 1) {
> > +		if (size > UINT32_MAX)
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		fdt32_st(prop, (uint32_t)size);
> > +	} else if (size_cells == 2) {
> > +		fdt64_st(prop, size);
> > +	} else {
> > +		return -FDT_ERR_BADNCELLS;
> > +	}
> > +
> > +	return fdt_appendprop(fdt, nodeoffset, name, data,
> > +			      (addr_cells + size_cells) * sizeof(fdt32_t));
> > +}
> > diff --git a/xen/common/libfdt/fdt_check.c b/xen/common/libfdt/fdt_check.c
> > new file mode 100644
> > index 0000000..fa410a8
> > --- /dev/null
> > +++ b/xen/common/libfdt/fdt_check.c
> > @@ -0,0 +1,93 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > +/*
> > + * libfdt - Flat Device Tree manipulation
> > + * Copyright (C) 2006 David Gibson, IBM Corporation.
> > + */
> > +#include "libfdt_env.h"
> > +
> > +#include <fdt.h>
> > +#include <libfdt.h>
> > +
> > +#include "libfdt_internal.h"
> > +
> > +int fdt_check_full(const void *fdt, size_t bufsize)
> > +{
> > +	int err;
> > +	int num_memrsv;
> > +	int offset, nextoffset = 0;
> > +	uint32_t tag;
> > +	unsigned int depth = 0;
> > +	const void *prop;
> > +	const char *propname;
> > +	bool expect_end = false;
> > +
> > +	if (bufsize < FDT_V1_SIZE)
> > +		return -FDT_ERR_TRUNCATED;
> > +	if (bufsize < fdt_header_size(fdt))
> > +		return -FDT_ERR_TRUNCATED;
> > +	err = fdt_check_header(fdt);
> > +	if (err != 0)
> > +		return err;
> > +	if (bufsize < fdt_totalsize(fdt))
> > +		return -FDT_ERR_TRUNCATED;
> > +
> > +	num_memrsv = fdt_num_mem_rsv(fdt);
> > +	if (num_memrsv < 0)
> > +		return num_memrsv;
> > +
> > +	while (1) {
> > +		offset = nextoffset;
> > +		tag = fdt_next_tag(fdt, offset, &nextoffset);
> > +
> > +		if (nextoffset < 0)
> > +			return nextoffset;
> > +
> > +		/* If we see two root nodes, something is wrong */
> > +		if (expect_end && tag != FDT_END)
> > +			return -FDT_ERR_BADSTRUCTURE;
> > +
> > +		switch (tag) {
> > +		case FDT_NOP:
> > +			break;
> > +
> > +		case FDT_END:
> > +			if (depth != 0)
> > +				return -FDT_ERR_BADSTRUCTURE;
> > +			return 0;
> > +
> > +		case FDT_BEGIN_NODE:
> > +			depth++;
> > +			if (depth > INT_MAX)
> > +				return -FDT_ERR_BADSTRUCTURE;
> > +
> > +			/* The root node must have an empty name */
> > +			if (depth == 1) {
> > +				const char *name;
> > +				int len;
> > +
> > +				name = fdt_get_name(fdt, offset, &len);
> > +				if (*name || len)
> > +					return -FDT_ERR_BADSTRUCTURE;
> > +			}
> > +			break;
> > +
> > +		case FDT_END_NODE:
> > +			if (depth == 0)
> > +				return -FDT_ERR_BADSTRUCTURE;
> > +			depth--;
> > +			if (depth == 0)
> > +				expect_end = true;
> > +			break;
> > +
> > +		case FDT_PROP:
> > +			prop = fdt_getprop_by_offset(fdt, offset, &propname,
> > +						     &err);
> > +			if (!prop)
> > +				return err;
> > +			break;
> > +
> > +		default:
> > +			return -FDT_ERR_INTERNAL;
> > +		}
> > +	}
> > +}
> > diff --git a/xen/common/libfdt/fdt_empty_tree.c b/xen/common/libfdt/fdt_empty_tree.c
> > index d505611..49d54d4 100644
> > --- a/xen/common/libfdt/fdt_empty_tree.c
> > +++ b/xen/common/libfdt/fdt_empty_tree.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2012 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -79,4 +36,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
> > 
> > 	return fdt_open_into(buf, buf, bufsize);
> > }
> > -
> > diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
> > new file mode 100644
> > index 0000000..7b95e2b
> > --- /dev/null
> > +++ b/xen/common/libfdt/fdt_overlay.c
> > @@ -0,0 +1,884 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > +/*
> > + * libfdt - Flat Device Tree manipulation
> > + * Copyright (C) 2016 Free Electrons
> > + * Copyright (C) 2016 NextThing Co.
> > + */
> > +#include "libfdt_env.h"
> > +
> > +#include <fdt.h>
> > +#include <libfdt.h>
> > +#include <xen/lib.h>
> > +
> > +#include "libfdt_internal.h"
> > +
> > +/**
> > + * overlay_get_target_phandle - retrieves the target phandle of a fragment
> > + * @fdto: pointer to the device tree overlay blob
> > + * @fragment: node offset of the fragment in the overlay
> > + *
> > + * overlay_get_target_phandle() retrieves the target phandle of an
> > + * overlay fragment when that fragment uses a phandle (target
> > + * property) instead of a path (target-path property).
> > + *
> > + * returns:
> > + *      the phandle pointed by the target property
> > + *      0, if the phandle was not found
> > + *	-1, if the phandle was malformed
> > + */
> > +static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
> > +{
> > +	const fdt32_t *val;
> > +	int len;
> > +
> > +	val = fdt_getprop(fdto, fragment, "target", &len);
> > +	if (!val)
> > +		return 0;
> > +
> > +	if ((len != sizeof(*val)) || (fdt32_to_cpu(*val) == (uint32_t)-1))
> > +		return (uint32_t)-1;
> > +
> > +	return fdt32_to_cpu(*val);
> > +}
> > +
> > +/**
> > + * overlay_get_target - retrieves the offset of a fragment's target
> > + * @fdt: Base device tree blob
> > + * @fdto: Device tree overlay blob
> > + * @fragment: node offset of the fragment in the overlay
> > + * @pathp: pointer which receives the path of the target (or NULL)
> > + *
> > + * overlay_get_target() retrieves the target offset in the base
> > + * device tree of a fragment, no matter how the actual targeting is
> > + * done (through a phandle or a path)
> > + *
> > + * returns:
> > + *      the targeted node offset in the base device tree
> > + *      Negative error code on error
> > + */
> > +static int overlay_get_target(const void *fdt, const void *fdto,
> > +			      int fragment, char const **pathp)
> > +{
> > +	uint32_t phandle;
> > +	const char *path = NULL;
> > +	int path_len = 0, ret;
> > +
> > +	/* Try first to do a phandle based lookup */
> > +	phandle = overlay_get_target_phandle(fdto, fragment);
> > +	if (phandle == (uint32_t)-1)
> > +		return -FDT_ERR_BADPHANDLE;
> > +
> > +	/* no phandle, try path */
> > +	if (!phandle) {
> > +		/* And then a path based lookup */
> > +		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
> > +		if (path)
> > +			ret = fdt_path_offset(fdt, path);
> > +		else
> > +			ret = path_len;
> > +	} else
> > +		ret = fdt_node_offset_by_phandle(fdt, phandle);
> > +
> > +	/*
> > +	* If we haven't found either a target or a
> > +	* target-path property in a node that contains a
> > +	* __overlay__ subnode (we wouldn't be called
> > +	* otherwise), consider it a improperly written
> > +	* overlay
> > +	*/
> > +	if (ret < 0 && path_len == -FDT_ERR_NOTFOUND)
> > +		ret = -FDT_ERR_BADOVERLAY;
> > +
> > +	/* return on error */
> > +	if (ret < 0)
> > +		return ret;
> > +
> > +	/* return pointer to path (if available) */
> > +	if (pathp)
> > +		*pathp = path ? path : NULL;
> > +
> > +	return ret;
> > +}
> > +
> > +/**
> > + * overlay_phandle_add_offset - Increases a phandle by an offset
> > + * @fdt: Base device tree blob
> > + * @node: Device tree overlay blob
> > + * @name: Name of the property to modify (phandle or linux,phandle)
> > + * @delta: offset to apply
> > + *
> > + * overlay_phandle_add_offset() increments a node phandle by a given
> > + * offset.
> > + *
> > + * returns:
> > + *      0 on success.
> > + *      Negative error code on error
> > + */
> > +static int overlay_phandle_add_offset(void *fdt, int node,
> > +				      const char *name, uint32_t delta)
> > +{
> > +	const fdt32_t *val;
> > +	uint32_t adj_val;
> > +	int len;
> > +
> > +	val = fdt_getprop(fdt, node, name, &len);
> > +	if (!val)
> > +		return len;
> > +
> > +	if (len != sizeof(*val))
> > +		return -FDT_ERR_BADPHANDLE;
> > +
> > +	adj_val = fdt32_to_cpu(*val);
> > +	if ((adj_val + delta) < adj_val)
> > +		return -FDT_ERR_NOPHANDLES;
> > +
> > +	adj_val += delta;
> > +	if (adj_val == (uint32_t)-1)
> > +		return -FDT_ERR_NOPHANDLES;
> > +
> > +	return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
> > +}
> > +
> > +/**
> > + * overlay_adjust_node_phandles - Offsets the phandles of a node
> > + * @fdto: Device tree overlay blob
> > + * @node: Offset of the node we want to adjust
> > + * @delta: Offset to shift the phandles of
> > + *
> > + * overlay_adjust_node_phandles() adds a constant to all the phandles
> > + * of a given node. This is mainly use as part of the overlay
> > + * application process, when we want to update all the overlay
> > + * phandles to not conflict with the overlays of the base device tree.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_adjust_node_phandles(void *fdto, int node,
> > +					uint32_t delta)
> > +{
> > +	int child;
> > +	int ret;
> > +
> > +	ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
> > +	if (ret && ret != -FDT_ERR_NOTFOUND)
> > +		return ret;
> > +
> > +	ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
> > +	if (ret && ret != -FDT_ERR_NOTFOUND)
> > +		return ret;
> > +
> > +	fdt_for_each_subnode(child, fdto, node) {
> > +		ret = overlay_adjust_node_phandles(fdto, child, delta);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_adjust_local_phandles - Adjust the phandles of a whole overlay
> > + * @fdto: Device tree overlay blob
> > + * @delta: Offset to shift the phandles of
> > + *
> > + * overlay_adjust_local_phandles() adds a constant to all the
> > + * phandles of an overlay. This is mainly use as part of the overlay
> > + * application process, when we want to update all the overlay
> > + * phandles to not conflict with the overlays of the base device tree.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
> > +{
> > +	/*
> > +	 * Start adjusting the phandles from the overlay root
> > +	 */
> > +	return overlay_adjust_node_phandles(fdto, 0, delta);
> > +}
> > +
> > +/**
> > + * overlay_update_local_node_references - Adjust the overlay references
> > + * @fdto: Device tree overlay blob
> > + * @tree_node: Node offset of the node to operate on
> > + * @fixup_node: Node offset of the matching local fixups node
> > + * @delta: Offset to shift the phandles of
> > + *
> > + * overlay_update_local_nodes_references() update the phandles
> > + * pointing to a node within the device tree overlay by adding a
> > + * constant delta.
> > + *
> > + * This is mainly used as part of a device tree application process,
> > + * where you want the device tree overlays phandles to not conflict
> > + * with the ones from the base device tree before merging them.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_update_local_node_references(void *fdto,
> > +						int tree_node,
> > +						int fixup_node,
> > +						uint32_t delta)
> > +{
> > +	int fixup_prop;
> > +	int fixup_child;
> > +	int ret;
> > +
> > +	fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
> > +		const fdt32_t *fixup_val;
> > +		const char *tree_val;
> > +		const char *name;
> > +		int fixup_len;
> > +		int tree_len;
> > +		int i;
> > +
> > +		fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
> > +						  &name, &fixup_len);
> > +		if (!fixup_val)
> > +			return fixup_len;
> > +
> > +		if (fixup_len % sizeof(uint32_t))
> > +			return -FDT_ERR_BADOVERLAY;
> > +		fixup_len /= sizeof(uint32_t);
> > +
> > +		tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
> > +		if (!tree_val) {
> > +			if (tree_len == -FDT_ERR_NOTFOUND)
> > +				return -FDT_ERR_BADOVERLAY;
> > +
> > +			return tree_len;
> > +		}
> > +
> > +		for (i = 0; i < fixup_len; i++) {
> > +			fdt32_t adj_val;
> > +			uint32_t poffset;
> > +
> > +			poffset = fdt32_to_cpu(fixup_val[i]);
> > +
> > +			/*
> > +			 * phandles to fixup can be unaligned.
> > +			 *
> > +			 * Use a memcpy for the architectures that do
> > +			 * not support unaligned accesses.
> > +			 */
> > +			memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
> > +
> > +			adj_val = cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
> > +
> > +			ret = fdt_setprop_inplace_namelen_partial(fdto,
> > +								  tree_node,
> > +								  name,
> > +								  strlen(name),
> > +								  poffset,
> > +								  &adj_val,
> > +								  sizeof(adj_val));
> > +			if (ret == -FDT_ERR_NOSPACE)
> > +				return -FDT_ERR_BADOVERLAY;
> > +
> > +			if (ret)
> > +				return ret;
> > +		}
> > +	}
> > +
> > +	fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
> > +		const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
> > +							    NULL);
> > +		int tree_child;
> > +
> > +		tree_child = fdt_subnode_offset(fdto, tree_node,
> > +						fixup_child_name);
> > +		if (tree_child == -FDT_ERR_NOTFOUND)
> > +			return -FDT_ERR_BADOVERLAY;
> > +		if (tree_child < 0)
> > +			return tree_child;
> > +
> > +		ret = overlay_update_local_node_references(fdto,
> > +							   tree_child,
> > +							   fixup_child,
> > +							   delta);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_update_local_references - Adjust the overlay references
> > + * @fdto: Device tree overlay blob
> > + * @delta: Offset to shift the phandles of
> > + *
> > + * overlay_update_local_references() update all the phandles pointing
> > + * to a node within the device tree overlay by adding a constant
> > + * delta to not conflict with the base overlay.
> > + *
> > + * This is mainly used as part of a device tree application process,
> > + * where you want the device tree overlays phandles to not conflict
> > + * with the ones from the base device tree before merging them.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_update_local_references(void *fdto, uint32_t delta)
> > +{
> > +	int fixups;
> > +
> > +	fixups = fdt_path_offset(fdto, "/__local_fixups__");
> > +	if (fixups < 0) {
> > +		/* There's no local phandles to adjust, bail out */
> > +		if (fixups == -FDT_ERR_NOTFOUND)
> > +			return 0;
> > +
> > +		return fixups;
> > +	}
> > +
> > +	/*
> > +	 * Update our local references from the root of the tree
> > +	 */
> > +	return overlay_update_local_node_references(fdto, 0, fixups,
> > +						    delta);
> > +}
> > +
> > +/**
> > + * overlay_fixup_one_phandle - Set an overlay phandle to the base one
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + * @symbols_off: Node offset of the symbols node in the base device tree
> > + * @path: Path to a node holding a phandle in the overlay
> > + * @path_len: number of path characters to consider
> > + * @name: Name of the property holding the phandle reference in the overlay
> > + * @name_len: number of name characters to consider
> > + * @poffset: Offset within the overlay property where the phandle is stored
> > + * @label: Label of the node referenced by the phandle
> > + *
> > + * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
> > + * a node in the base device tree.
> > + *
> > + * This is part of the device tree overlay application process, when
> > + * you want all the phandles in the overlay to point to the actual
> > + * base dt nodes.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_fixup_one_phandle(void *fdt, void *fdto,
> > +				     int symbols_off,
> > +				     const char *path, uint32_t path_len,
> > +				     const char *name, uint32_t name_len,
> > +				     int poffset, const char *label)
> > +{
> > +	const char *symbol_path;
> > +	uint32_t phandle;
> > +	fdt32_t phandle_prop;
> > +	int symbol_off, fixup_off;
> > +	int prop_len;
> > +
> > +	if (symbols_off < 0)
> > +		return symbols_off;
> > +
> > +	symbol_path = fdt_getprop(fdt, symbols_off, label,
> > +				  &prop_len);
> > +	if (!symbol_path)
> > +		return prop_len;
> > +
> > +	symbol_off = fdt_path_offset(fdt, symbol_path);
> > +	if (symbol_off < 0)
> > +		return symbol_off;
> > +
> > +	phandle = fdt_get_phandle(fdt, symbol_off);
> > +	if (!phandle)
> > +		return -FDT_ERR_NOTFOUND;
> > +
> > +	fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
> > +	if (fixup_off == -FDT_ERR_NOTFOUND)
> > +		return -FDT_ERR_BADOVERLAY;
> > +	if (fixup_off < 0)
> > +		return fixup_off;
> > +
> > +	phandle_prop = cpu_to_fdt32(phandle);
> > +	return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
> > +						   name, name_len, poffset,
> > +						   &phandle_prop,
> > +						   sizeof(phandle_prop));
> > +};
> > +
> > +/**
> > + * overlay_fixup_phandle - Set an overlay phandle to the base one
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + * @symbols_off: Node offset of the symbols node in the base device tree
> > + * @property: Property offset in the overlay holding the list of fixups
> > + *
> > + * overlay_fixup_phandle() resolves all the overlay phandles pointed
> > + * to in a __fixups__ property, and updates them to match the phandles
> > + * in use in the base device tree.
> > + *
> > + * This is part of the device tree overlay application process, when
> > + * you want all the phandles in the overlay to point to the actual
> > + * base dt nodes.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
> > +				 int property)
> > +{
> > +	const char *value;
> > +	const char *label;
> > +	int len;
> > +
> > +	value = fdt_getprop_by_offset(fdto, property,
> > +				      &label, &len);
> > +	if (!value) {
> > +		if (len == -FDT_ERR_NOTFOUND)
> > +			return -FDT_ERR_INTERNAL;
> > +
> > +		return len;
> > +	}
> > +
> > +	do {
> > +		const char *path, *name, *fixup_end;
> > +		const char *fixup_str = value;
> > +		uint32_t path_len, name_len;
> > +		uint32_t fixup_len;
> > +		char *sep;
> > +		const char *endptr;
> > +		int poffset, ret;
> > +
> > +		fixup_end = memchr(value, '\0', len);
> > +		if (!fixup_end)
> > +			return -FDT_ERR_BADOVERLAY;
> > +		fixup_len = fixup_end - fixup_str;
> > +
> > +		len -= fixup_len + 1;
> > +		value += fixup_len + 1;
> > +
> > +		path = fixup_str;
> > +		sep = memchr(fixup_str, ':', fixup_len);
> > +		if (!sep || *sep != ':')
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		path_len = sep - path;
> > +		if (path_len == (fixup_len - 1))
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		fixup_len -= path_len + 1;
> > +		name = sep + 1;
> > +		sep = memchr(name, ':', fixup_len);
> > +		if (!sep || *sep != ':')
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		name_len = sep - name;
> > +		if (!name_len)
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		poffset = simple_strtoul(sep + 1, &endptr, 10);
> > +		if ((*endptr != '\0') || (endptr <= (sep + 1)))
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
> > +						path, path_len, name, name_len,
> > +						poffset, label);
> > +		if (ret)
> > +			return ret;
> > +	} while (len > 0);
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_fixup_phandles - Resolve the overlay phandles to the base
> > + *                          device tree
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + *
> > + * overlay_fixup_phandles() resolves all the overlay phandles pointing
> > + * to nodes in the base device tree.
> > + *
> > + * This is one of the steps of the device tree overlay application
> > + * process, when you want all the phandles in the overlay to point to
> > + * the actual base dt nodes.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_fixup_phandles(void *fdt, void *fdto)
> > +{
> > +	int fixups_off, symbols_off;
> > +	int property;
> > +
> > +	/* We can have overlays without any fixups */
> > +	fixups_off = fdt_path_offset(fdto, "/__fixups__");
> > +	if (fixups_off == -FDT_ERR_NOTFOUND)
> > +		return 0; /* nothing to do */
> > +	if (fixups_off < 0)
> > +		return fixups_off;
> > +
> > +	/* And base DTs without symbols */
> > +	symbols_off = fdt_path_offset(fdt, "/__symbols__");
> > +	if ((symbols_off < 0 && (symbols_off != -FDT_ERR_NOTFOUND)))
> > +		return symbols_off;
> > +
> > +	fdt_for_each_property_offset(property, fdto, fixups_off) {
> > +		int ret;
> > +
> > +		ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_apply_node - Merges a node into the base device tree
> > + * @fdt: Base Device Tree blob
> > + * @target: Node offset in the base device tree to apply the fragment to
> > + * @fdto: Device tree overlay blob
> > + * @node: Node offset in the overlay holding the changes to merge
> > + *
> > + * overlay_apply_node() merges a node into a target base device tree
> > + * node pointed.
> > + *
> > + * This is part of the final step in the device tree overlay
> > + * application process, when all the phandles have been adjusted and
> > + * resolved and you just have to merge overlay into the base device
> > + * tree.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_apply_node(void *fdt, int target,
> > +			      void *fdto, int node)
> > +{
> > +	int property;
> > +	int subnode;
> > +
> > +	fdt_for_each_property_offset(property, fdto, node) {
> > +		const char *name;
> > +		const void *prop;
> > +		int prop_len;
> > +		int ret;
> > +
> > +		prop = fdt_getprop_by_offset(fdto, property, &name,
> > +					     &prop_len);
> > +		if (prop_len == -FDT_ERR_NOTFOUND)
> > +			return -FDT_ERR_INTERNAL;
> > +		if (prop_len < 0)
> > +			return prop_len;
> > +
> > +		ret = fdt_setprop(fdt, target, name, prop, prop_len);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	fdt_for_each_subnode(subnode, fdto, node) {
> > +		const char *name = fdt_get_name(fdto, subnode, NULL);
> > +		int nnode;
> > +		int ret;
> > +
> > +		nnode = fdt_add_subnode(fdt, target, name);
> > +		if (nnode == -FDT_ERR_EXISTS) {
> > +			nnode = fdt_subnode_offset(fdt, target, name);
> > +			if (nnode == -FDT_ERR_NOTFOUND)
> > +				return -FDT_ERR_INTERNAL;
> > +		}
> > +
> > +		if (nnode < 0)
> > +			return nnode;
> > +
> > +		ret = overlay_apply_node(fdt, nnode, fdto, subnode);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_merge - Merge an overlay into its base device tree
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + *
> > + * overlay_merge() merges an overlay into its base device tree.
> > + *
> > + * This is the next to last step in the device tree overlay application
> > + * process, when all the phandles have been adjusted and resolved and
> > + * you just have to merge overlay into the base device tree.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_merge(void *fdt, void *fdto)
> > +{
> > +	int fragment;
> > +
> > +	fdt_for_each_subnode(fragment, fdto, 0) {
> > +		int overlay;
> > +		int target;
> > +		int ret;
> > +
> > +		/*
> > +		 * Each fragments will have an __overlay__ node. If
> > +		 * they don't, it's not supposed to be merged
> > +		 */
> > +		overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
> > +		if (overlay == -FDT_ERR_NOTFOUND)
> > +			continue;
> > +
> > +		if (overlay < 0)
> > +			return overlay;
> > +
> > +		target = overlay_get_target(fdt, fdto, fragment, NULL);
> > +		if (target < 0)
> > +			return target;
> > +
> > +		ret = overlay_apply_node(fdt, target, fdto, overlay);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +static int get_path_len(const void *fdt, int nodeoffset)
> > +{
> > +	int len = 0, namelen;
> > +	const char *name;
> > +
> > +	FDT_RO_PROBE(fdt);
> > +
> > +	for (;;) {
> > +		name = fdt_get_name(fdt, nodeoffset, &namelen);
> > +		if (!name)
> > +			return namelen;
> > +
> > +		/* root? we're done */
> > +		if (namelen == 0)
> > +			break;
> > +
> > +		nodeoffset = fdt_parent_offset(fdt, nodeoffset);
> > +		if (nodeoffset < 0)
> > +			return nodeoffset;
> > +		len += namelen + 1;
> > +	}
> > +
> > +	/* in case of root pretend it's "/" */
> > +	if (len == 0)
> > +		len++;
> > +	return len;
> > +}
> > +
> > +/**
> > + * overlay_symbol_update - Update the symbols of base tree after a merge
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + *
> > + * overlay_symbol_update() updates the symbols of the base tree with the
> > + * symbols of the applied overlay
> > + *
> > + * This is the last step in the device tree overlay application
> > + * process, allowing the reference of overlay symbols by subsequent
> > + * overlay operations.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_symbol_update(void *fdt, void *fdto)
> > +{
> > +	int root_sym, ov_sym, prop, path_len, fragment, target;
> > +	int len, frag_name_len, ret, rel_path_len;
> > +	const char *s, *e;
> > +	const char *path;
> > +	const char *name;
> > +	const char *frag_name;
> > +	const char *rel_path;
> > +	const char *target_path;
> > +	char *buf;
> > +	void *p;
> > +
> > +	ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
> > +
> > +	/* if no overlay symbols exist no problem */
> > +	if (ov_sym < 0)
> > +		return 0;
> > +
> > +	root_sym = fdt_subnode_offset(fdt, 0, "__symbols__");
> > +
> > +	/* it no root symbols exist we should create them */
> > +	if (root_sym == -FDT_ERR_NOTFOUND)
> > +		root_sym = fdt_add_subnode(fdt, 0, "__symbols__");
> > +
> > +	/* any error is fatal now */
> > +	if (root_sym < 0)
> > +		return root_sym;
> > +
> > +	/* iterate over each overlay symbol */
> > +	fdt_for_each_property_offset(prop, fdto, ov_sym) {
> > +		path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
> > +		if (!path)
> > +			return path_len;
> > +
> > +		/* verify it's a string property (terminated by a single \0) */
> > +		if (path_len < 1 || memchr(path, '\0', path_len) != &path[path_len - 1])
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		/* keep end marker to avoid strlen() */
> > +		e = path + path_len;
> > +
> > +		if (*path != '/')
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		/* get fragment name first */
> > +		s = strchr(path + 1, '/');
> > +		if (!s) {
> > +			/* Symbol refers to something that won't end
> > +			 * up in the target tree */
> > +			continue;
> > +		}
> > +
> > +		frag_name = path + 1;
> > +		frag_name_len = s - path - 1;
> > +
> > +		/* verify format; safe since "s" lies in \0 terminated prop */
> > +		len = sizeof("/__overlay__/") - 1;
> > +		if ((e - s) > len && (memcmp(s, "/__overlay__/", len) == 0)) {
> > +			/* /<fragment-name>/__overlay__/<relative-subnode-path> */
> > +			rel_path = s + len;
> > +			rel_path_len = e - rel_path - 1;
> > +		} else if ((e - s) == len
> > +			   && (memcmp(s, "/__overlay__", len - 1) == 0)) {
> > +			/* /<fragment-name>/__overlay__ */
> > +			rel_path = "";
> > +			rel_path_len = 0;
> > +		} else {
> > +			/* Symbol refers to something that won't end
> > +			 * up in the target tree */
> > +			continue;
> > +		}
> > +
> > +		/* find the fragment index in which the symbol lies */
> > +		ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
> > +					       frag_name_len);
> > +		/* not found? */
> > +		if (ret < 0)
> > +			return -FDT_ERR_BADOVERLAY;
> > +		fragment = ret;
> > +
> > +		/* an __overlay__ subnode must exist */
> > +		ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
> > +		if (ret < 0)
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		/* get the target of the fragment */
> > +		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
> > +		if (ret < 0)
> > +			return ret;
> > +		target = ret;
> > +
> > +		/* if we have a target path use */
> > +		if (!target_path) {
> > +			ret = get_path_len(fdt, target);
> > +			if (ret < 0)
> > +				return ret;
> > +			len = ret;
> > +		} else {
> > +			len = strlen(target_path);
> > +		}
> > +
> > +		ret = fdt_setprop_placeholder(fdt, root_sym, name,
> > +				len + (len > 1) + rel_path_len + 1, &p);
> > +		if (ret < 0)
> > +			return ret;
> > +
> > +		if (!target_path) {
> > +			/* again in case setprop_placeholder changed it */
> > +			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
> > +			if (ret < 0)
> > +				return ret;
> > +			target = ret;
> > +		}
> > +
> > +		buf = p;
> > +		if (len > 1) { /* target is not root */
> > +			if (!target_path) {
> > +				ret = fdt_get_path(fdt, target, buf, len + 1);
> > +				if (ret < 0)
> > +					return ret;
> > +			} else
> > +				memcpy(buf, target_path, len + 1);
> > +
> > +		} else
> > +			len--;
> > +
> > +		buf[len] = '/';
> > +		memcpy(buf + len + 1, rel_path, rel_path_len);
> > +		buf[len + 1 + rel_path_len] = '\0';
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +int fdt_overlay_apply(void *fdt, void *fdto)
> > +{
> > +	uint32_t delta;
> > +	int ret;
> > +
> > +	FDT_RO_PROBE(fdt);
> > +	FDT_RO_PROBE(fdto);
> > +
> > +	ret = fdt_find_max_phandle(fdt, &delta);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_adjust_local_phandles(fdto, delta);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_update_local_references(fdto, delta);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_fixup_phandles(fdt, fdto);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_merge(fdt, fdto);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_symbol_update(fdt, fdto);
> > +	if (ret)
> > +		goto err;
> > +
> > +	/*
> > +	 * The overlay has been damaged, erase its magic.
> > +	 */
> > +	fdt_set_magic(fdto, ~0);
> > +
> > +	return 0;
> > +
> > +err:
> > +	/*
> > +	 * The overlay might have been damaged, erase its magic.
> > +	 */
> > +	fdt_set_magic(fdto, ~0);
> > +
> > +	/*
> > +	 * The base device tree might have been damaged, erase its
> > +	 * magic.
> > +	 */
> > +	fdt_set_magic(fdt, ~0);
> > +
> > +	return ret;
> > +}
> > diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
> > index 36f9b48..17584da 100644
> > --- a/xen/common/libfdt/fdt_ro.c
> > +++ b/xen/common/libfdt/fdt_ro.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,12 +10,13 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > -static int _fdt_nodename_eq(const void *fdt, int offset,
> > +static int fdt_nodename_eq_(const void *fdt, int offset,
> > 			    const char *s, int len)
> > {
> > -	const char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);
> > +	int olen;
> > +	const char *p = fdt_get_name(fdt, offset, &olen);
> > 
> > -	if (! p)
> > +	if (!p || olen < len)
> > 		/* short match */
> > 		return 0;
> > 
> > @@ -73,37 +31,174 @@ static int _fdt_nodename_eq(const void *fdt, int offset,
> > 		return 0;
> > }
> > 
> > +const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
> > +{
> > +	int32_t totalsize;
> > +	uint32_t absoffset;
> > +	size_t len;
> > +	int err;
> > +	const char *s, *n;
> > +
> > +	if (can_assume(VALID_INPUT)) {
> > +		s = (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
> > +
> > +		if (lenp)
> > +			*lenp = strlen(s);
> > +		return s;
> > +	}
> > +	totalsize = fdt_ro_probe_(fdt);
> > +	err = totalsize;
> > +	if (totalsize < 0)
> > +		goto fail;
> > +
> > +	err = -FDT_ERR_BADOFFSET;
> > +	absoffset = stroffset + fdt_off_dt_strings(fdt);
> > +	if (absoffset >= (unsigned)totalsize)
> > +		goto fail;
> > +	len = totalsize - absoffset;
> > +
> > +	if (fdt_magic(fdt) == FDT_MAGIC) {
> > +		if (stroffset < 0)
> > +			goto fail;
> > +		if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
> > +			if ((unsigned)stroffset >= fdt_size_dt_strings(fdt))
> > +				goto fail;
> > +			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
> > +				len = fdt_size_dt_strings(fdt) - stroffset;
> > +		}
> > +	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
> > +		unsigned int sw_stroffset = -stroffset;
> > +
> > +		if ((stroffset >= 0) ||
> > +		    (sw_stroffset > fdt_size_dt_strings(fdt)))
> > +			goto fail;
> > +		if (sw_stroffset < len)
> > +			len = sw_stroffset;
> > +	} else {
> > +		err = -FDT_ERR_INTERNAL;
> > +		goto fail;
> > +	}
> > +
> > +	s = (const char *)fdt + absoffset;
> > +	n = memchr(s, '\0', len);
> > +	if (!n) {
> > +		/* missing terminating NULL */
> > +		err = -FDT_ERR_TRUNCATED;
> > +		goto fail;
> > +	}
> > +
> > +	if (lenp)
> > +		*lenp = n - s;
> > +	return s;
> > +
> > +fail:
> > +	if (lenp)
> > +		*lenp = err;
> > +	return NULL;
> > +}
> > +
> > const char *fdt_string(const void *fdt, int stroffset)
> > {
> > -	return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
> > +	return fdt_get_string(fdt, stroffset, NULL);
> > }
> > 
> > -static int _fdt_string_eq(const void *fdt, int stroffset,
> > +static int fdt_string_eq_(const void *fdt, int stroffset,
> > 			  const char *s, int len)
> > {
> > -	const char *p = fdt_string(fdt, stroffset);
> > +	int slen;
> > +	const char *p = fdt_get_string(fdt, stroffset, &slen);
> > +
> > +	return p && (slen == len) && (memcmp(p, s, len) == 0);
> > +}
> > +
> > +int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
> > +{
> > +	uint32_t max = 0;
> > +	int offset = -1;
> > +
> > +	while (true) {
> > +		uint32_t value;
> > +
> > +		offset = fdt_next_node(fdt, offset, NULL);
> > +		if (offset < 0) {
> > +			if (offset == -FDT_ERR_NOTFOUND)
> > +				break;
> > +
> > +			return offset;
> > +		}
> > +
> > +		value = fdt_get_phandle(fdt, offset);
> > +
> > +		if (value > max)
> > +			max = value;
> > +	}
> > +
> > +	if (phandle)
> > +		*phandle = max;
> > +
> > +	return 0;
> > +}
> > +
> > +int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
> > +{
> > +	uint32_t max;
> > +	int err;
> > +
> > +	err = fdt_find_max_phandle(fdt, &max);
> > +	if (err < 0)
> > +		return err;
> > +
> > +	if (max == FDT_MAX_PHANDLE)
> > +		return -FDT_ERR_NOPHANDLES;
> > +
> > +	if (phandle)
> > +		*phandle = max + 1;
> > +
> > +	return 0;
> > +}
> > 
> > -	return (strlen(p) == len) && (memcmp(p, s, len) == 0);
> > +static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int n)
> > +{
> > +	unsigned int offset = n * sizeof(struct fdt_reserve_entry);
> > +	unsigned int absoffset = fdt_off_mem_rsvmap(fdt) + offset;
> > +
> > +	if (!can_assume(VALID_INPUT)) {
> > +		if (absoffset < fdt_off_mem_rsvmap(fdt))
> > +			return NULL;
> > +		if (absoffset > fdt_totalsize(fdt) -
> > +		    sizeof(struct fdt_reserve_entry))
> > +			return NULL;
> > +	}
> > +	return fdt_mem_rsv_(fdt, n);
> > }
> > 
> > int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size)
> > {
> > -	FDT_CHECK_HEADER(fdt);
> > -	*address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address);
> > -	*size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size);
> > +	const struct fdt_reserve_entry *re;
> > +
> > +	FDT_RO_PROBE(fdt);
> > +	re = fdt_mem_rsv(fdt, n);
> > +	if (!can_assume(VALID_INPUT) && !re)
> > +		return -FDT_ERR_BADOFFSET;
> > +
> > +	*address = fdt64_ld_(&re->address);
> > +	*size = fdt64_ld_(&re->size);
> > 	return 0;
> > }
> > 
> > int fdt_num_mem_rsv(const void *fdt)
> > {
> > -	int i = 0;
> > +	int i;
> > +	const struct fdt_reserve_entry *re;
> > 
> > -	while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0)
> > -		i++;
> > -	return i;
> > +	for (i = 0; (re = fdt_mem_rsv(fdt, i)) != NULL; i++) {
> > +		if (fdt64_ld_(&re->size) == 0)
> > +			return i;
> > +	}
> > +	return -FDT_ERR_TRUNCATED;
> > }
> > 
> > -static int _nextprop(const void *fdt, int offset)
> > +static int nextprop_(const void *fdt, int offset)
> > {
> > 	uint32_t tag;
> > 	int nextoffset;
> > @@ -132,13 +227,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int offset,
> > {
> > 	int depth;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	for (depth = 0;
> > 	     (offset >= 0) && (depth >= 0);
> > 	     offset = fdt_next_node(fdt, offset, &depth))
> > 		if ((depth == 1)
> > -		    && _fdt_nodename_eq(fdt, offset, name, namelen))
> > +		    && fdt_nodename_eq_(fdt, offset, name, namelen))
> > 			return offset;
> > 
> > 	if (depth < 0)
> > @@ -152,17 +247,17 @@ int fdt_subnode_offset(const void *fdt, int parentoffset,
> > 	return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name));
> > }
> > 
> > -int fdt_path_offset(const void *fdt, const char *path)
> > +int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen)
> > {
> > -	const char *end = path + strlen(path);
> > +	const char *end = path + namelen;
> > 	const char *p = path;
> > 	int offset = 0;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	/* see if we have an alias */
> > 	if (*path != '/') {
> > -		const char *q = strchr(path, '/');
> > +		const char *q = memchr(path, '/', end - p);
> > 
> > 		if (!q)
> > 			q = end;
> > @@ -175,14 +270,15 @@ int fdt_path_offset(const void *fdt, const char *path)
> > 		p = q;
> > 	}
> > 
> > -	while (*p) {
> > +	while (p < end) {
> > 		const char *q;
> > 
> > -		while (*p == '/')
> > +		while (*p == '/') {
> > 			p++;
> > -		if (! *p)
> > -			return offset;
> > -		q = strchr(p, '/');
> > +			if (p == end)
> > +				return offset;
> > +		}
> > +		q = memchr(p, '/', end - p);
> > 		if (! q)
> > 			q = end;
> > 
> > @@ -196,19 +292,42 @@ int fdt_path_offset(const void *fdt, const char *path)
> > 	return offset;
> > }
> > 
> > +int fdt_path_offset(const void *fdt, const char *path)
> > +{
> > +	return fdt_path_offset_namelen(fdt, path, strlen(path));
> > +}
> > +
> > const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
> > {
> > -	const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset);
> > +	const struct fdt_node_header *nh = fdt_offset_ptr_(fdt, nodeoffset);
> > +	const char *nameptr;
> > 	int err;
> > 
> > -	if (((err = fdt_check_header(fdt)) != 0)
> > -	    || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0))
> > +	if (((err = fdt_ro_probe_(fdt)) < 0)
> > +	    || ((err = fdt_check_node_offset_(fdt, nodeoffset)) < 0))
> > +			goto fail;
> > +
> > +	nameptr = nh->name;
> > +
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> > +		/*
> > +		 * For old FDT versions, match the naming conventions of V16:
> > +		 * give only the leaf name (after all /). The actual tree
> > +		 * contents are loosely checked.
> > +		 */
> > +		const char *leaf;
> > +		leaf = strrchr(nameptr, '/');
> > +		if (leaf == NULL) {
> > +			err = -FDT_ERR_BADSTRUCTURE;
> > 			goto fail;
> > +		}
> > +		nameptr = leaf+1;
> > +	}
> > 
> > 	if (len)
> > -		*len = strlen(nh->name);
> > +		*len = strlen(nameptr);
> > 
> > -	return nh->name;
> > +	return nameptr;
> > 
> >  fail:
> > 	if (len)
> > @@ -220,58 +339,81 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset)
> > {
> > 	int offset;
> > 
> > -	if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
> > +	if ((offset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
> > 		return offset;
> > 
> > -	return _nextprop(fdt, offset);
> > +	return nextprop_(fdt, offset);
> > }
> > 
> > int fdt_next_property_offset(const void *fdt, int offset)
> > {
> > -	if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0)
> > +	if ((offset = fdt_check_prop_offset_(fdt, offset)) < 0)
> > 		return offset;
> > 
> > -	return _nextprop(fdt, offset);
> > +	return nextprop_(fdt, offset);
> > }
> > 
> > -const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> > -						      int offset,
> > -						      int *lenp)
> > +static const struct fdt_property *fdt_get_property_by_offset_(const void *fdt,
> > +						              int offset,
> > +						              int *lenp)
> > {
> > 	int err;
> > 	const struct fdt_property *prop;
> > 
> > -	if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) {
> > +	if (!can_assume(VALID_INPUT) &&
> > +	    (err = fdt_check_prop_offset_(fdt, offset)) < 0) {
> > 		if (lenp)
> > 			*lenp = err;
> > 		return NULL;
> > 	}
> > 
> > -	prop = _fdt_offset_ptr(fdt, offset);
> > +	prop = fdt_offset_ptr_(fdt, offset);
> > 
> > 	if (lenp)
> > -		*lenp = fdt32_to_cpu(prop->len);
> > +		*lenp = fdt32_ld_(&prop->len);
> > 
> > 	return prop;
> > }
> > 
> > -const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> > -						    int offset,
> > -						    const char *name,
> > -						    int namelen, int *lenp)
> > +const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> > +						      int offset,
> > +						      int *lenp)
> > +{
> > +	/* Prior to version 16, properties may need realignment
> > +	 * and this API does not work. fdt_getprop_*() will, however. */
> > +
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> > +		if (lenp)
> > +			*lenp = -FDT_ERR_BADVERSION;
> > +		return NULL;
> > +	}
> > +
> > +	return fdt_get_property_by_offset_(fdt, offset, lenp);
> > +}
> > +
> > +static const struct fdt_property *fdt_get_property_namelen_(const void *fdt,
> > +						            int offset,
> > +						            const char *name,
> > +						            int namelen,
> > +							    int *lenp,
> > +							    int *poffset)
> > {
> > 	for (offset = fdt_first_property_offset(fdt, offset);
> > 	     (offset >= 0);
> > 	     (offset = fdt_next_property_offset(fdt, offset))) {
> > 		const struct fdt_property *prop;
> > 
> > -		if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) {
> > +		prop = fdt_get_property_by_offset_(fdt, offset, lenp);
> > +		if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
> > 			offset = -FDT_ERR_INTERNAL;
> > 			break;
> > 		}
> > -		if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff),
> > -				   name, namelen))
> > +		if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
> > +				   name, namelen)) {
> > +			if (poffset)
> > +				*poffset = offset;
> > 			return prop;
> > +		}
> > 	}
> > 
> > 	if (lenp)
> > @@ -279,6 +421,25 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> > 	return NULL;
> > }
> > 
> > +
> > +const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> > +						    int offset,
> > +						    const char *name,
> > +						    int namelen, int *lenp)
> > +{
> > +	/* Prior to version 16, properties may need realignment
> > +	 * and this API does not work. fdt_getprop_*() will, however. */
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> > +		if (lenp)
> > +			*lenp = -FDT_ERR_BADVERSION;
> > +		return NULL;
> > +	}
> > +
> > +	return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
> > +					 NULL);
> > +}
> > +
> > +
> > const struct fdt_property *fdt_get_property(const void *fdt,
> > 					    int nodeoffset,
> > 					    const char *name, int *lenp)
> > @@ -290,12 +451,18 @@ const struct fdt_property *fdt_get_property(const void *fdt,
> > const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> > 				const char *name, int namelen, int *lenp)
> > {
> > +	int poffset;
> > 	const struct fdt_property *prop;
> > 
> > -	prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp);
> > -	if (! prop)
> > +	prop = fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp,
> > +					 &poffset);
> > +	if (!prop)
> > 		return NULL;
> > 
> > +	/* Handle realignment */
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
> > +	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
> > +		return prop->data + 4;
> > 	return prop->data;
> > }
> > 
> > @@ -304,11 +471,31 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
> > {
> > 	const struct fdt_property *prop;
> > 
> > -	prop = fdt_get_property_by_offset(fdt, offset, lenp);
> > +	prop = fdt_get_property_by_offset_(fdt, offset, lenp);
> > 	if (!prop)
> > 		return NULL;
> > -	if (namep)
> > -		*namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
> > +	if (namep) {
> > +		const char *name;
> > +		int namelen;
> > +
> > +		if (!can_assume(VALID_INPUT)) {
> > +			name = fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
> > +					      &namelen);
> > +			if (!name) {
> > +				if (lenp)
> > +					*lenp = namelen;
> > +				return NULL;
> > +			}
> > +			*namep = name;
> > +		} else {
> > +			*namep = fdt_string(fdt, fdt32_ld_(&prop->nameoff));
> > +		}
> > +	}
> > +
> > +	/* Handle realignment */
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
> > +	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
> > +		return prop->data + 4;
> > 	return prop->data;
> > }
> > 
> > @@ -332,7 +519,7 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)
> > 			return 0;
> > 	}
> > 
> > -	return fdt32_to_cpu(*php);
> > +	return fdt32_ld_(php);
> > }
> > 
> > const char *fdt_get_alias_namelen(const void *fdt,
> > @@ -358,7 +545,7 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen)
> > 	int offset, depth, namelen;
> > 	const char *name;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	if (buflen < 2)
> > 		return -FDT_ERR_NOSPACE;
> > @@ -410,7 +597,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
> > 	int offset, depth;
> > 	int supernodeoffset = -FDT_ERR_INTERNAL;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	if (supernodedepth < 0)
> > 		return -FDT_ERR_NOTFOUND;
> > @@ -432,10 +619,12 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
> > 		}
> > 	}
> > 
> > -	if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
> > -		return -FDT_ERR_BADOFFSET;
> > -	else if (offset == -FDT_ERR_BADOFFSET)
> > -		return -FDT_ERR_BADSTRUCTURE;
> > +	if (!can_assume(VALID_INPUT)) {
> > +		if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
> > +			return -FDT_ERR_BADOFFSET;
> > +		else if (offset == -FDT_ERR_BADOFFSET)
> > +			return -FDT_ERR_BADSTRUCTURE;
> > +	}
> > 
> > 	return offset; /* error from fdt_next_node() */
> > }
> > @@ -447,7 +636,8 @@ int fdt_node_depth(const void *fdt, int nodeoffset)
> > 
> > 	err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
> > 	if (err)
> > -		return (err < 0) ? err : -FDT_ERR_INTERNAL;
> > +		return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
> > +			-FDT_ERR_INTERNAL;
> > 	return nodedepth;
> > }
> > 
> > @@ -469,7 +659,7 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
> > 	const void *val;
> > 	int len;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	/* FIXME: The algorithm here is pretty horrible: we scan each
> > 	 * property of a node in fdt_getprop(), then if that didn't
> > @@ -492,10 +682,10 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
> > {
> > 	int offset;
> > 
> > -	if ((phandle == 0) || (phandle == -1))
> > +	if ((phandle == 0) || (phandle == ~0U))
> > 		return -FDT_ERR_BADPHANDLE;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	/* FIXME: The algorithm here is pretty horrible: we
> > 	 * potentially scan each property of a node in
> > @@ -530,6 +720,106 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
> > 	return 0;
> > }
> > 
> > +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
> > +{
> > +	const char *list, *end;
> > +	int length, count = 0;
> > +
> > +	list = fdt_getprop(fdt, nodeoffset, property, &length);
> > +	if (!list)
> > +		return length;
> > +
> > +	end = list + length;
> > +
> > +	while (list < end) {
> > +		length = strnlen(list, end - list) + 1;
> > +
> > +		/* Abort if the last string isn't properly NUL-terminated. */
> > +		if (list + length > end)
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		list += length;
> > +		count++;
> > +	}
> > +
> > +	return count;
> > +}
> > +
> > +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
> > +			  const char *string)
> > +{
> > +	int length, len, idx = 0;
> > +	const char *list, *end;
> > +
> > +	list = fdt_getprop(fdt, nodeoffset, property, &length);
> > +	if (!list)
> > +		return length;
> > +
> > +	len = strlen(string) + 1;
> > +	end = list + length;
> > +
> > +	while (list < end) {
> > +		length = strnlen(list, end - list) + 1;
> > +
> > +		/* Abort if the last string isn't properly NUL-terminated. */
> > +		if (list + length > end)
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		if (length == len && memcmp(list, string, length) == 0)
> > +			return idx;
> > +
> > +		list += length;
> > +		idx++;
> > +	}
> > +
> > +	return -FDT_ERR_NOTFOUND;
> > +}
> > +
> > +const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
> > +			       const char *property, int idx,
> > +			       int *lenp)
> > +{
> > +	const char *list, *end;
> > +	int length;
> > +
> > +	list = fdt_getprop(fdt, nodeoffset, property, &length);
> > +	if (!list) {
> > +		if (lenp)
> > +			*lenp = length;
> > +
> > +		return NULL;
> > +	}
> > +
> > +	end = list + length;
> > +
> > +	while (list < end) {
> > +		length = strnlen(list, end - list) + 1;
> > +
> > +		/* Abort if the last string isn't properly NUL-terminated. */
> > +		if (list + length > end) {
> > +			if (lenp)
> > +				*lenp = -FDT_ERR_BADVALUE;
> > +
> > +			return NULL;
> > +		}
> > +
> > +		if (idx == 0) {
> > +			if (lenp)
> > +				*lenp = length - 1;
> > +
> > +			return list;
> > +		}
> > +
> > +		list += length;
> > +		idx--;
> > +	}
> > +
> > +	if (lenp)
> > +		*lenp = -FDT_ERR_NOTFOUND;
> > +
> > +	return NULL;
> > +}
> > +
> > int fdt_node_check_compatible(const void *fdt, int nodeoffset,
> > 			      const char *compatible)
> > {
> > @@ -539,10 +829,8 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
> > 	prop = fdt_getprop(fdt, nodeoffset, "compatible", &len);
> > 	if (!prop)
> > 		return len;
> > -	if (fdt_stringlist_contains(prop, len, compatible))
> > -		return 0;
> > -	else
> > -		return 1;
> > +
> > +	return !fdt_stringlist_contains(prop, len, compatible);
> > }
> > 
> > int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
> > @@ -550,7 +838,7 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
> > {
> > 	int offset, err;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	/* FIXME: The algorithm here is pretty horrible: we scan each
> > 	 * property of a node in fdt_node_check_compatible(), then if
> > diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
> > index 8b8cd25..3621d36 100644
> > --- a/xen/common/libfdt/fdt_rw.c
> > +++ b/xen/common/libfdt/fdt_rw.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,8 +10,8 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > -static int _fdt_blocks_misordered(const void *fdt,
> > -			      int mem_rsv_size, int struct_size)
> > +static int fdt_blocks_misordered_(const void *fdt,
> > +				  int mem_rsv_size, int struct_size)
> > {
> > 	return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8))
> > 		|| (fdt_off_dt_struct(fdt) <
> > @@ -65,40 +22,44 @@ static int _fdt_blocks_misordered(const void *fdt,
> > 		    (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
> > }
> > 
> > -static int _fdt_rw_check_header(void *fdt)
> > +static int fdt_rw_probe_(void *fdt)
> > {
> > -	FDT_CHECK_HEADER(fdt);
> > +	if (can_assume(VALID_DTB))
> > +		return 0;
> > +	FDT_RO_PROBE(fdt);
> > 
> > -	if (fdt_version(fdt) < 17)
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
> > 		return -FDT_ERR_BADVERSION;
> > -	if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
> > +	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
> > 				   fdt_size_dt_struct(fdt)))
> > 		return -FDT_ERR_BADLAYOUT;
> > -	if (fdt_version(fdt) > 17)
> > +	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
> > 		fdt_set_version(fdt, 17);
> > 
> > 	return 0;
> > }
> > 
> > -#define FDT_RW_CHECK_HEADER(fdt) \
> > +#define FDT_RW_PROBE(fdt) \
> > 	{ \
> > -		int err; \
> > -		if ((err = _fdt_rw_check_header(fdt)) != 0) \
> > -			return err; \
> > +		int err_; \
> > +		if ((err_ = fdt_rw_probe_(fdt)) != 0) \
> > +			return err_; \
> > 	}
> > 
> > -static inline unsigned int _fdt_data_size(void *fdt)
> > +static inline unsigned int fdt_data_size_(void *fdt)
> > {
> > 	return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
> > }
> > 
> > -static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
> > +static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int newlen)
> > {
> > 	char *p = splicepoint;
> > -	unsigned int dsize = _fdt_data_size(fdt);
> > +	unsigned int dsize = fdt_data_size_(fdt);
> > 	size_t soff = p - (char *)fdt;
> > 
> > -	if (oldlen < 0 || soff + oldlen < soff || soff + oldlen > dsize)
> > +	if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
> > +		return -FDT_ERR_BADOFFSET;
> > +	if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
> > 		return -FDT_ERR_BADOFFSET;
> > 	if (dsize - oldlen + newlen > fdt_totalsize(fdt))
> > 		return -FDT_ERR_NOSPACE;
> > @@ -106,12 +67,12 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
> > 	return 0;
> > }
> > 
> > -static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
> > +static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
> > 			       int oldn, int newn)
> > {
> > 	int delta = (newn - oldn) * sizeof(*p);
> > 	int err;
> > -	err = _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
> > +	err = fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
> > 	if (err)
> > 		return err;
> > 	fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
> > @@ -119,13 +80,13 @@ static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
> > 	return 0;
> > }
> > 
> > -static int _fdt_splice_struct(void *fdt, void *p,
> > +static int fdt_splice_struct_(void *fdt, void *p,
> > 			      int oldlen, int newlen)
> > {
> > 	int delta = newlen - oldlen;
> > 	int err;
> > 
> > -	if ((err = _fdt_splice(fdt, p, oldlen, newlen)))
> > +	if ((err = fdt_splice_(fdt, p, oldlen, newlen)))
> > 		return err;
> > 
> > 	fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
> > @@ -133,20 +94,37 @@ static int _fdt_splice_struct(void *fdt, void *p,
> > 	return 0;
> > }
> > 
> > -static int _fdt_splice_string(void *fdt, int newlen)
> > +/* Must only be used to roll back in case of error */
> > +static void fdt_del_last_string_(void *fdt, const char *s)
> > +{
> > +	int newlen = strlen(s) + 1;
> > +
> > +	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
> > +}
> > +
> > +static int fdt_splice_string_(void *fdt, int newlen)
> > {
> > 	void *p = (char *)fdt
> > 		+ fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
> > 	int err;
> > 
> > -	if ((err = _fdt_splice(fdt, p, 0, newlen)))
> > +	if ((err = fdt_splice_(fdt, p, 0, newlen)))
> > 		return err;
> > 
> > 	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
> > 	return 0;
> > }
> > 
> > -static int _fdt_find_add_string(void *fdt, const char *s)
> > +/**
> > + * fdt_find_add_string_() - Find or allocate a string
> > + *
> > + * @fdt: pointer to the device tree to check/adjust
> > + * @s: string to find/add
> > + * @allocated: Set to 0 if the string was found, 1 if not found and so
> > + *	allocated. Ignored if can_assume(NO_ROLLBACK)
> > + * @return offset of string in the string table (whether found or added)
> > + */
> > +static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
> > {
> > 	char *strtab = (char *)fdt + fdt_off_dt_strings(fdt);
> > 	const char *p;
> > @@ -154,16 +132,22 @@ static int _fdt_find_add_string(void *fdt, const char *s)
> > 	int len = strlen(s) + 1;
> > 	int err;
> > 
> > -	p = _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s);
> > +	if (!can_assume(NO_ROLLBACK))
> > +		*allocated = 0;
> > +
> > +	p = fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
> > 	if (p)
> > 		/* found it */
> > 		return (p - strtab);
> > 
> > 	new = strtab + fdt_size_dt_strings(fdt);
> > -	err = _fdt_splice_string(fdt, len);
> > +	err = fdt_splice_string_(fdt, len);
> > 	if (err)
> > 		return err;
> > 
> > +	if (!can_assume(NO_ROLLBACK))
> > +		*allocated = 1;
> > +
> > 	memcpy(new, s, len);
> > 	return (new - strtab);
> > }
> > @@ -173,10 +157,10 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
> > 	struct fdt_reserve_entry *re;
> > 	int err;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > -	re = _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt));
> > -	err = _fdt_splice_mem_rsv(fdt, re, 0, 1);
> > +	re = fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
> > +	err = fdt_splice_mem_rsv_(fdt, re, 0, 1);
> > 	if (err)
> > 		return err;
> > 
> > @@ -187,31 +171,27 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
> > 
> > int fdt_del_mem_rsv(void *fdt, int n)
> > {
> > -	struct fdt_reserve_entry *re = _fdt_mem_rsv_w(fdt, n);
> > -	int err;
> > +	struct fdt_reserve_entry *re = fdt_mem_rsv_w_(fdt, n);
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	if (n >= fdt_num_mem_rsv(fdt))
> > 		return -FDT_ERR_NOTFOUND;
> > 
> > -	err = _fdt_splice_mem_rsv(fdt, re, 1, 0);
> > -	if (err)
> > -		return err;
> > -	return 0;
> > +	return fdt_splice_mem_rsv_(fdt, re, 1, 0);
> > }
> > 
> > -static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
> > +static int fdt_resize_property_(void *fdt, int nodeoffset, const char *name,
> > 				int len, struct fdt_property **prop)
> > {
> > 	int oldlen;
> > 	int err;
> > 
> > 	*prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
> > -	if (! (*prop))
> > +	if (!*prop)
> > 		return oldlen;
> > 
> > -	if ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
> > +	if ((err = fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
> > 				      FDT_TAGALIGN(len))))
> > 		return err;
> > 
> > @@ -219,27 +199,32 @@ static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
> > 	return 0;
> > }
> > 
> > -static int _fdt_add_property(void *fdt, int nodeoffset, const char *name,
> > +static int fdt_add_property_(void *fdt, int nodeoffset, const char *name,
> > 			     int len, struct fdt_property **prop)
> > {
> > 	int proplen;
> > 	int nextoffset;
> > 	int namestroff;
> > 	int err;
> > +	int allocated;
> > 
> > -	if ((nextoffset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
> > +	if ((nextoffset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
> > 		return nextoffset;
> > 
> > -	namestroff = _fdt_find_add_string(fdt, name);
> > +	namestroff = fdt_find_add_string_(fdt, name, &allocated);
> > 	if (namestroff < 0)
> > 		return namestroff;
> > 
> > -	*prop = _fdt_offset_ptr_w(fdt, nextoffset);
> > +	*prop = fdt_offset_ptr_w_(fdt, nextoffset);
> > 	proplen = sizeof(**prop) + FDT_TAGALIGN(len);
> > 
> > -	err = _fdt_splice_struct(fdt, *prop, 0, proplen);
> > -	if (err)
> > +	err = fdt_splice_struct_(fdt, *prop, 0, proplen);
> > +	if (err) {
> > +		/* Delete the string if we failed to add it */
> > +		if (!can_assume(NO_ROLLBACK) && allocated)
> > +			fdt_del_last_string_(fdt, name);
> > 		return err;
> > +	}
> > 
> > 	(*prop)->tag = cpu_to_fdt32(FDT_PROP);
> > 	(*prop)->nameoff = cpu_to_fdt32(namestroff);
> > @@ -253,7 +238,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
> > 	int oldlen, newlen;
> > 	int err;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	namep = (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
> > 	if (!namep)
> > @@ -261,7 +246,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
> > 
> > 	newlen = strlen(name);
> > 
> > -	err = _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1),
> > +	err = fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
> > 				 FDT_TAGALIGN(newlen+1));
> > 	if (err)
> > 		return err;
> > @@ -270,21 +255,36 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
> > 	return 0;
> > }
> > 
> > -int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> > -		const void *val, int len)
> > +int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
> > +			    int len, void **prop_data)
> > {
> > 	struct fdt_property *prop;
> > 	int err;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > -	err = _fdt_resize_property(fdt, nodeoffset, name, len, &prop);
> > +	err = fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
> > 	if (err == -FDT_ERR_NOTFOUND)
> > -		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
> > +		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
> > +	if (err)
> > +		return err;
> > +
> > +	*prop_data = prop->data;
> > +	return 0;
> > +}
> > +
> > +int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> > +		const void *val, int len)
> > +{
> > +	void *prop_data;
> > +	int err;
> > +
> > +	err = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data);
> > 	if (err)
> > 		return err;
> > 
> > -	memcpy(prop->data, val, len);
> > +	if (len)
> > +		memcpy(prop_data, val, len);
> > 	return 0;
> > }
> > 
> > @@ -294,12 +294,12 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
> > 	struct fdt_property *prop;
> > 	int err, oldlen, newlen;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
> > 	if (prop) {
> > 		newlen = len + oldlen;
> > -		err = _fdt_splice_struct(fdt, prop->data,
> > +		err = fdt_splice_struct_(fdt, prop->data,
> > 					 FDT_TAGALIGN(oldlen),
> > 					 FDT_TAGALIGN(newlen));
> > 		if (err)
> > @@ -307,7 +307,7 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
> > 		prop->len = cpu_to_fdt32(newlen);
> > 		memcpy(prop->data + oldlen, val, len);
> > 	} else {
> > -		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
> > +		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
> > 		if (err)
> > 			return err;
> > 		memcpy(prop->data, val, len);
> > @@ -320,14 +320,14 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name)
> > 	struct fdt_property *prop;
> > 	int len, proplen;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
> > -	if (! prop)
> > +	if (!prop)
> > 		return len;
> > 
> > 	proplen = sizeof(*prop) + FDT_TAGALIGN(len);
> > -	return _fdt_splice_struct(fdt, prop, proplen, 0);
> > +	return fdt_splice_struct_(fdt, prop, proplen, 0);
> > }
> > 
> > int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> > @@ -340,7 +340,7 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> > 	uint32_t tag;
> > 	fdt32_t *endtag;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	offset = fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
> > 	if (offset >= 0)
> > @@ -349,16 +349,19 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> > 		return offset;
> > 
> > 	/* Try to place the new node after the parent's properties */
> > -	fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
> > +	tag = fdt_next_tag(fdt, parentoffset, &nextoffset);
> > +	/* the fdt_subnode_offset_namelen() should ensure this never hits */
> > +	if (!can_assume(LIBFDT_FLAWLESS) && (tag != FDT_BEGIN_NODE))
> > +		return -FDT_ERR_INTERNAL;
> > 	do {
> > 		offset = nextoffset;
> > 		tag = fdt_next_tag(fdt, offset, &nextoffset);
> > 	} while ((tag == FDT_PROP) || (tag == FDT_NOP));
> > 
> > -	nh = _fdt_offset_ptr_w(fdt, offset);
> > +	nh = fdt_offset_ptr_w_(fdt, offset);
> > 	nodelen = sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
> > 
> > -	err = _fdt_splice_struct(fdt, nh, 0, nodelen);
> > +	err = fdt_splice_struct_(fdt, nh, 0, nodelen);
> > 	if (err)
> > 		return err;
> > 
> > @@ -380,18 +383,20 @@ int fdt_del_node(void *fdt, int nodeoffset)
> > {
> > 	int endoffset;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > -	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
> > +	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
> > 	if (endoffset < 0)
> > 		return endoffset;
> > 
> > -	return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset),
> > +	return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
> > 				  endoffset - nodeoffset, 0);
> > }
> > 
> > -static void _fdt_packblocks(const char *old, char *new,
> > -			    int mem_rsv_size, int struct_size)
> > +static void fdt_packblocks_(const char *old, char *new,
> > +			    int mem_rsv_size,
> > +			    int struct_size,
> > +			    int strings_size)
> > {
> > 	int mem_rsv_off, struct_off, strings_off;
> > 
> > @@ -406,8 +411,7 @@ static void _fdt_packblocks(const char *old, char *new,
> > 	fdt_set_off_dt_struct(new, struct_off);
> > 	fdt_set_size_dt_struct(new, struct_size);
> > 
> > -	memmove(new + strings_off, old + fdt_off_dt_strings(old),
> > -		fdt_size_dt_strings(old));
> > +	memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size);
> > 	fdt_set_off_dt_strings(new, strings_off);
> > 	fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
> > }
> > @@ -421,22 +425,25 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
> > 	const char *fdtend = fdtstart + fdt_totalsize(fdt);
> > 	char *tmp;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
> > 		* sizeof(struct fdt_reserve_entry);
> > 
> > -	if (fdt_version(fdt) >= 17) {
> > +	if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
> > 		struct_size = fdt_size_dt_struct(fdt);
> > -	} else {
> > +	} else if (fdt_version(fdt) == 16) {
> > 		struct_size = 0;
> > 		while (fdt_next_tag(fdt, struct_size, &struct_size) != FDT_END)
> > 			;
> > 		if (struct_size < 0)
> > 			return struct_size;
> > +	} else {
> > +		return -FDT_ERR_BADVERSION;
> > 	}
> > 
> > -	if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) {
> > +	if (can_assume(LIBFDT_ORDER) ||
> > +	    !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
> > 		/* no further work necessary */
> > 		err = fdt_move(fdt, buf, bufsize);
> > 		if (err)
> > @@ -464,7 +471,8 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
> > 			return -FDT_ERR_NOSPACE;
> > 	}
> > 
> > -	_fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size);
> > +	fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
> > +			fdt_size_dt_strings(fdt));
> > 	memmove(buf, tmp, newsize);
> > 
> > 	fdt_set_magic(buf, FDT_MAGIC);
> > @@ -480,12 +488,13 @@ int fdt_pack(void *fdt)
> > {
> > 	int mem_rsv_size;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
> > 		* sizeof(struct fdt_reserve_entry);
> > -	_fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt));
> > -	fdt_set_totalsize(fdt, _fdt_data_size(fdt));
> > +	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
> > +			fdt_size_dt_strings(fdt));
> > +	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
> > 
> > 	return 0;
> > }
> > diff --git a/xen/common/libfdt/fdt_strerror.c b/xen/common/libfdt/fdt_strerror.c
> > index 8d0289c..b435693 100644
> > --- a/xen/common/libfdt/fdt_strerror.c
> > +++ b/xen/common/libfdt/fdt_strerror.c
> > @@ -1,49 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> >  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > @@ -67,6 +25,7 @@ static struct fdt_errtabent fdt_errtable[] = {
> > 
> > 	FDT_ERRTABENT(FDT_ERR_BADOFFSET),
> > 	FDT_ERRTABENT(FDT_ERR_BADPATH),
> > +	FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
> > 	FDT_ERRTABENT(FDT_ERR_BADSTATE),
> > 
> > 	FDT_ERRTABENT(FDT_ERR_TRUNCATED),
> > @@ -74,8 +33,14 @@ static struct fdt_errtabent fdt_errtable[] = {
> > 	FDT_ERRTABENT(FDT_ERR_BADVERSION),
> > 	FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
> > 	FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
> > +	FDT_ERRTABENT(FDT_ERR_INTERNAL),
> > +	FDT_ERRTABENT(FDT_ERR_BADNCELLS),
> > +	FDT_ERRTABENT(FDT_ERR_BADVALUE),
> > +	FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
> > +	FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
> > +	FDT_ERRTABENT(FDT_ERR_BADFLAGS),
> > };
> > -#define FDT_ERRTABSIZE	(sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
> > +#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
> > 
> > const char *fdt_strerror(int errval)
> > {
> > @@ -83,7 +48,7 @@ const char *fdt_strerror(int errval)
> > 		return "<valid offset/length>";
> > 	else if (errval == 0)
> > 		return "<no error>";
> > -	else if (errval > -FDT_ERRTABSIZE) {
> > +	else if (-errval < FDT_ERRTABSIZE) {
> > 		const char *s = fdt_errtable[-errval].str;
> > 
> > 		if (s)
> > diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
> > index c7d93d3..4c569ee 100644
> > --- a/xen/common/libfdt/fdt_sw.c
> > +++ b/xen/common/libfdt/fdt_sw.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,25 +10,91 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > -static int _fdt_sw_check_header(void *fdt)
> > +static int fdt_sw_probe_(void *fdt)
> > +{
> > +	if (!can_assume(VALID_INPUT)) {
> > +		if (fdt_magic(fdt) == FDT_MAGIC)
> > +			return -FDT_ERR_BADSTATE;
> > +		else if (fdt_magic(fdt) != FDT_SW_MAGIC)
> > +			return -FDT_ERR_BADMAGIC;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +#define FDT_SW_PROBE(fdt) \
> > +	{ \
> > +		int err; \
> > +		if ((err = fdt_sw_probe_(fdt)) != 0) \
> > +			return err; \
> > +	}
> > +
> > +/* 'memrsv' state:	Initial state after fdt_create()
> > + *
> > + * Allowed functions:
> > + *	fdt_add_reservemap_entry()
> > + *	fdt_finish_reservemap()		[moves to 'struct' state]
> > + */
> > +static int fdt_sw_probe_memrsv_(void *fdt)
> > +{
> > +	int err = fdt_sw_probe_(fdt);
> > +	if (err)
> > +		return err;
> > +
> > +	if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) != 0)
> > +		return -FDT_ERR_BADSTATE;
> > +	return 0;
> > +}
> > +
> > +#define FDT_SW_PROBE_MEMRSV(fdt) \
> > +	{ \
> > +		int err; \
> > +		if ((err = fdt_sw_probe_memrsv_(fdt)) != 0) \
> > +			return err; \
> > +	}
> > +
> > +/* 'struct' state:	Enter this state after fdt_finish_reservemap()
> > + *
> > + * Allowed functions:
> > + *	fdt_begin_node()
> > + *	fdt_end_node()
> > + *	fdt_property*()
> > + *	fdt_finish()			[moves to 'complete' state]
> > + */
> > +static int fdt_sw_probe_struct_(void *fdt)
> > {
> > -	if (fdt_magic(fdt) != FDT_SW_MAGIC)
> > -		return -FDT_ERR_BADMAGIC;
> > -	/* FIXME: should check more details about the header state */
> > +	int err = fdt_sw_probe_(fdt);
> > +	if (err)
> > +		return err;
> > +
> > +	if (!can_assume(VALID_INPUT) &&
> > +	    fdt_off_dt_strings(fdt) != fdt_totalsize(fdt))
> > +		return -FDT_ERR_BADSTATE;
> > 	return 0;
> > }
> > 
> > -#define FDT_SW_CHECK_HEADER(fdt) \
> > +#define FDT_SW_PROBE_STRUCT(fdt) \
> > 	{ \
> > 		int err; \
> > -		if ((err = _fdt_sw_check_header(fdt)) != 0) \
> > +		if ((err = fdt_sw_probe_struct_(fdt)) != 0) \
> > 			return err; \
> > 	}
> > 
> > -static void *_fdt_grab_space(void *fdt, size_t len)
> > +static inline uint32_t sw_flags(void *fdt)
> > {
> > -	int offset = fdt_size_dt_struct(fdt);
> > -	int spaceleft;
> > +	/* assert: (fdt_magic(fdt) == FDT_SW_MAGIC) */
> > +	return fdt_last_comp_version(fdt);
> > +}
> > +
> > +/* 'complete' state:	Enter this state after fdt_finish()
> > + *
> > + * Allowed functions: none
> > + */
> > +
> > +static void *fdt_grab_space_(void *fdt, size_t len)
> > +{
> > +	unsigned int offset = fdt_size_dt_struct(fdt);
> > +	unsigned int spaceleft;
> > 
> > 	spaceleft = fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
> > 		- fdt_size_dt_strings(fdt);
> > @@ -80,27 +103,84 @@ static void *_fdt_grab_space(void *fdt, size_t len)
> > 		return NULL;
> > 
> > 	fdt_set_size_dt_struct(fdt, offset + len);
> > -	return _fdt_offset_ptr_w(fdt, offset);
> > +	return fdt_offset_ptr_w_(fdt, offset);
> > }
> > 
> > -int fdt_create(void *buf, int bufsize)
> > +int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
> > {
> > +	const int hdrsize = FDT_ALIGN(sizeof(struct fdt_header),
> > +				      sizeof(struct fdt_reserve_entry));
> > 	void *fdt = buf;
> > 
> > -	if (bufsize < sizeof(struct fdt_header))
> > +	if (bufsize < hdrsize)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > +	if (flags & ~FDT_CREATE_FLAGS_ALL)
> > +		return -FDT_ERR_BADFLAGS;
> > +
> > 	memset(buf, 0, bufsize);
> > 
> > +	/*
> > +	 * magic and last_comp_version keep intermediate state during the fdt
> > +	 * creation process, which is replaced with the proper FDT format by
> > +	 * fdt_finish().
> > +	 *
> > +	 * flags should be accessed with sw_flags().
> > +	 */
> > 	fdt_set_magic(fdt, FDT_SW_MAGIC);
> > 	fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
> > -	fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION);
> > +	fdt_set_last_comp_version(fdt, flags);
> > +
> > 	fdt_set_totalsize(fdt,  bufsize);
> > 
> > -	fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header),
> > -					      sizeof(struct fdt_reserve_entry)));
> > +	fdt_set_off_mem_rsvmap(fdt, hdrsize);
> > 	fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
> > -	fdt_set_off_dt_strings(fdt, bufsize);
> > +	fdt_set_off_dt_strings(fdt, 0);
> > +
> > +	return 0;
> > +}
> > +
> > +int fdt_create(void *buf, int bufsize)
> > +{
> > +	return fdt_create_with_flags(buf, bufsize, 0);
> > +}
> > +
> > +int fdt_resize(void *fdt, void *buf, int bufsize)
> > +{
> > +	size_t headsize, tailsize;
> > +	char *oldtail, *newtail;
> > +
> > +	FDT_SW_PROBE(fdt);
> > +
> > +	if (bufsize < 0)
> > +		return -FDT_ERR_NOSPACE;
> > +
> > +	headsize = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> > +	tailsize = fdt_size_dt_strings(fdt);
> > +
> > +	if (!can_assume(VALID_DTB) &&
> > +	    headsize + tailsize > fdt_totalsize(fdt))
> > +		return -FDT_ERR_INTERNAL;
> > +
> > +	if ((headsize + tailsize) > (unsigned)bufsize)
> > +		return -FDT_ERR_NOSPACE;
> > +
> > +	oldtail = (char *)fdt + fdt_totalsize(fdt) - tailsize;
> > +	newtail = (char *)buf + bufsize - tailsize;
> > +
> > +	/* Two cases to avoid clobbering data if the old and new
> > +	 * buffers partially overlap */
> > +	if (buf <= fdt) {
> > +		memmove(buf, fdt, headsize);
> > +		memmove(newtail, oldtail, tailsize);
> > +	} else {
> > +		memmove(newtail, oldtail, tailsize);
> > +		memmove(buf, fdt, headsize);
> > +	}
> > +
> > +	fdt_set_totalsize(buf, bufsize);
> > +	if (fdt_off_dt_strings(buf))
> > +		fdt_set_off_dt_strings(buf, bufsize);
> > 
> > 	return 0;
> > }
> > @@ -110,10 +190,7 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
> > 	struct fdt_reserve_entry *re;
> > 	int offset;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > -
> > -	if (fdt_size_dt_struct(fdt))
> > -		return -FDT_ERR_BADSTATE;
> > +	FDT_SW_PROBE_MEMRSV(fdt);
> > 
> > 	offset = fdt_off_dt_struct(fdt);
> > 	if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
> > @@ -130,17 +207,24 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
> > 
> > int fdt_finish_reservemap(void *fdt)
> > {
> > -	return fdt_add_reservemap_entry(fdt, 0, 0);
> > +	int err = fdt_add_reservemap_entry(fdt, 0, 0);
> > +
> > +	if (err)
> > +		return err;
> > +
> > +	fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
> > +	return 0;
> > }
> > 
> > int fdt_begin_node(void *fdt, const char *name)
> > {
> > 	struct fdt_node_header *nh;
> > -	int namelen = strlen(name) + 1;
> > +	int namelen;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > +	FDT_SW_PROBE_STRUCT(fdt);
> > 
> > -	nh = _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
> > +	namelen = strlen(name) + 1;
> > +	nh = fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
> > 	if (! nh)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > @@ -153,9 +237,9 @@ int fdt_end_node(void *fdt)
> > {
> > 	fdt32_t *en;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > +	FDT_SW_PROBE_STRUCT(fdt);
> > 
> > -	en = _fdt_grab_space(fdt, FDT_TAGSIZE);
> > +	en = fdt_grab_space_(fdt, FDT_TAGSIZE);
> > 	if (! en)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > @@ -163,48 +247,90 @@ int fdt_end_node(void *fdt)
> > 	return 0;
> > }
> > 
> > -static int _fdt_find_add_string(void *fdt, const char *s)
> > +static int fdt_add_string_(void *fdt, const char *s)
> > {
> > 	char *strtab = (char *)fdt + fdt_totalsize(fdt);
> > -	const char *p;
> > +	unsigned int strtabsize = fdt_size_dt_strings(fdt);
> > +	unsigned int len = strlen(s) + 1;
> > +	unsigned int struct_top, offset;
> > +
> > +	offset = strtabsize + len;
> > +	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> > +	if (fdt_totalsize(fdt) - offset < struct_top)
> > +		return 0; /* no more room :( */
> > +
> > +	memcpy(strtab - offset, s, len);
> > +	fdt_set_size_dt_strings(fdt, strtabsize + len);
> > +	return -offset;
> > +}
> > +
> > +/* Must only be used to roll back in case of error */
> > +static void fdt_del_last_string_(void *fdt, const char *s)
> > +{
> > 	int strtabsize = fdt_size_dt_strings(fdt);
> > 	int len = strlen(s) + 1;
> > -	int struct_top, offset;
> > 
> > -	p = _fdt_find_string(strtab - strtabsize, strtabsize, s);
> > +	fdt_set_size_dt_strings(fdt, strtabsize - len);
> > +}
> > +
> > +static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
> > +{
> > +	char *strtab = (char *)fdt + fdt_totalsize(fdt);
> > +	int strtabsize = fdt_size_dt_strings(fdt);
> > +	const char *p;
> > +
> > +	*allocated = 0;
> > +
> > +	p = fdt_find_string_(strtab - strtabsize, strtabsize, s);
> > 	if (p)
> > 		return p - strtab;
> > 
> > -	/* Add it */
> > -	offset = -strtabsize - len;
> > -	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> > -	if (fdt_totalsize(fdt) + offset < struct_top)
> > -		return 0; /* no more room :( */
> > +	*allocated = 1;
> > 
> > -	memcpy(strtab + offset, s, len);
> > -	fdt_set_size_dt_strings(fdt, strtabsize + len);
> > -	return offset;
> > +	return fdt_add_string_(fdt, s);
> > }
> > 
> > -int fdt_property(void *fdt, const char *name, const void *val, int len)
> > +int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)
> > {
> > 	struct fdt_property *prop;
> > 	int nameoff;
> > +	int allocated;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > +	FDT_SW_PROBE_STRUCT(fdt);
> > 
> > -	nameoff = _fdt_find_add_string(fdt, name);
> > +	/* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
> > +	if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
> > +		allocated = 1;
> > +		nameoff = fdt_add_string_(fdt, name);
> > +	} else {
> > +		nameoff = fdt_find_add_string_(fdt, name, &allocated);
> > +	}
> > 	if (nameoff == 0)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > -	prop = _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
> > -	if (! prop)
> > +	prop = fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
> > +	if (! prop) {
> > +		if (allocated)
> > +			fdt_del_last_string_(fdt, name);
> > 		return -FDT_ERR_NOSPACE;
> > +	}
> > 
> > 	prop->tag = cpu_to_fdt32(FDT_PROP);
> > 	prop->nameoff = cpu_to_fdt32(nameoff);
> > 	prop->len = cpu_to_fdt32(len);
> > -	memcpy(prop->data, val, len);
> > +	*valp = prop->data;
> > +	return 0;
> > +}
> > +
> > +int fdt_property(void *fdt, const char *name, const void *val, int len)
> > +{
> > +	void *ptr;
> > +	int ret;
> > +
> > +	ret = fdt_property_placeholder(fdt, name, len, &ptr);
> > +	if (ret)
> > +		return ret;
> > +	memcpy(ptr, val, len);
> > 	return 0;
> > }
> > 
> > @@ -216,10 +342,10 @@ int fdt_finish(void *fdt)
> > 	uint32_t tag;
> > 	int offset, nextoffset;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > +	FDT_SW_PROBE_STRUCT(fdt);
> > 
> > 	/* Add terminator */
> > -	end = _fdt_grab_space(fdt, sizeof(*end));
> > +	end = fdt_grab_space_(fdt, sizeof(*end));
> > 	if (! end)
> > 		return -FDT_ERR_NOSPACE;
> > 	*end = cpu_to_fdt32(FDT_END);
> > @@ -235,7 +361,7 @@ int fdt_finish(void *fdt)
> > 	while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {
> > 		if (tag == FDT_PROP) {
> > 			struct fdt_property *prop =
> > -				_fdt_offset_ptr_w(fdt, offset);
> > +				fdt_offset_ptr_w_(fdt, offset);
> > 			int nameoff;
> > 
> > 			nameoff = fdt32_to_cpu(prop->nameoff);
> > @@ -249,6 +375,10 @@ int fdt_finish(void *fdt)
> > 
> > 	/* Finally, adjust the header */
> > 	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
> > +
> > +	/* And fix up fields that were keeping intermediate state. */
> > +	fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
> > 	fdt_set_magic(fdt, FDT_MAGIC);
> > +
> > 	return 0;
> > }
> > diff --git a/xen/common/libfdt/fdt_wip.c b/xen/common/libfdt/fdt_wip.c
> > index 2d1cac0..c2d7566 100644
> > --- a/xen/common/libfdt/fdt_wip.c
> > +++ b/xen/common/libfdt/fdt_wip.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,24 +10,45 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > +int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
> > +					const char *name, int namelen,
> > +					uint32_t idx, const void *val,
> > +					int len)
> > +{
> > +	void *propval;
> > +	int proplen;
> > +
> > +	propval = fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
> > +					&proplen);
> > +	if (!propval)
> > +		return proplen;
> > +
> > +	if ((unsigned)proplen < (len + idx))
> > +		return -FDT_ERR_NOSPACE;
> > +
> > +	memcpy((char *)propval + idx, val, len);
> > +	return 0;
> > +}
> > +
> > int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
> > 			const void *val, int len)
> > {
> > -	void *propval;
> > +	const void *propval;
> > 	int proplen;
> > 
> > -	propval = fdt_getprop_w(fdt, nodeoffset, name, &proplen);
> > -	if (! propval)
> > +	propval = fdt_getprop(fdt, nodeoffset, name, &proplen);
> > +	if (!propval)
> > 		return proplen;
> > 
> > 	if (proplen != len)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > -	memcpy(propval, val, len);
> > -	return 0;
> > +	return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
> > +						   strlen(name), 0,
> > +						   val, len);
> > }
> > 
> > -static void _fdt_nop_region(void *start, int len)
> > +static void fdt_nop_region_(void *start, int len)
> > {
> > 	fdt32_t *p;
> > 
> > @@ -84,15 +62,15 @@ int fdt_nop_property(void *fdt, int nodeoffset, const char *name)
> > 	int len;
> > 
> > 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
> > -	if (! prop)
> > +	if (!prop)
> > 		return len;
> > 
> > -	_fdt_nop_region(prop, len + sizeof(*prop));
> > +	fdt_nop_region_(prop, len + sizeof(*prop));
> > 
> > 	return 0;
> > }
> > 
> > -int _fdt_node_end_offset(void *fdt, int offset)
> > +int fdt_node_end_offset_(void *fdt, int offset)
> > {
> > 	int depth = 0;
> > 
> > @@ -106,11 +84,11 @@ int fdt_nop_node(void *fdt, int nodeoffset)
> > {
> > 	int endoffset;
> > 
> > -	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
> > +	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
> > 	if (endoffset < 0)
> > 		return endoffset;
> > 
> > -	_fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0),
> > +	fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
> > 			endoffset - nodeoffset);
> > 	return 0;
> > }
> > diff --git a/xen/common/libfdt/libfdt_internal.h b/xen/common/libfdt/libfdt_internal.h
> > index d50c4e1..16bda19 100644
> > --- a/xen/common/libfdt/libfdt_internal.h
> > +++ b/xen/common/libfdt/libfdt_internal.h
> > @@ -1,81 +1,39 @@
> > -#ifndef _LIBFDT_INTERNAL_H
> > -#define _LIBFDT_INTERNAL_H
> > +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> > +#ifndef LIBFDT_INTERNAL_H
> > +#define LIBFDT_INTERNAL_H
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include <fdt.h>
> > 
> > #define FDT_ALIGN(x, a)		(((x) + (a) - 1) & ~((a) - 1))
> > #define FDT_TAGALIGN(x)		(FDT_ALIGN((x), FDT_TAGSIZE))
> > 
> > -#define FDT_CHECK_HEADER(fdt) \
> > -	{ \
> > -		int err; \
> > -		if ((err = fdt_check_header(fdt)) != 0) \
> > -			return err; \
> > +int32_t fdt_ro_probe_(const void *fdt);
> > +#define FDT_RO_PROBE(fdt)					\
> > +	{							\
> > +		int32_t totalsize_;				\
> > +		if ((totalsize_ = fdt_ro_probe_(fdt)) < 0)	\
> > +			return totalsize_;			\
> > 	}
> > 
> > -int _fdt_check_node_offset(const void *fdt, int offset);
> > -int _fdt_check_prop_offset(const void *fdt, int offset);
> > -const char *_fdt_find_string(const char *strtab, int tabsize, const char *s);
> > -int _fdt_node_end_offset(void *fdt, int nodeoffset);
> > +int fdt_check_node_offset_(const void *fdt, int offset);
> > +int fdt_check_prop_offset_(const void *fdt, int offset);
> > +const char *fdt_find_string_(const char *strtab, int tabsize, const char *s);
> > +int fdt_node_end_offset_(void *fdt, int nodeoffset);
> > 
> > -static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
> > +static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
> > {
> > 	return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
> > }
> > 
> > -static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
> > +static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
> > {
> > -	return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
> > +	return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
> > }
> > 
> > -static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int n)
> > +static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *fdt, int n)
> > {
> > 	const struct fdt_reserve_entry *rsv_table =
> > 		(const struct fdt_reserve_entry *)
> > @@ -83,11 +41,152 @@ static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int
> > 
> > 	return rsv_table + n;
> > }
> > -static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
> > +static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
> > +{
> > +	return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
> > +}
> > +
> > +/*
> > + * Internal helpers to access tructural elements of the device tree
> > + * blob (rather than for exaple reading integers from within property
> > + * values).  We assume that we are either given a naturally aligned
> > + * address for the platform or if we are not, we are on a platform
> > + * where unaligned memory reads will be handled in a graceful manner.
> > + * If not the external helpers fdtXX_ld() from libfdt.h can be used
> > + * instead.
> > + */
> > +static inline uint32_t fdt32_ld_(const fdt32_t *p)
> > {
> > -	return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
> > +	return fdt32_to_cpu(*p);
> > +}
> > +
> > +static inline uint64_t fdt64_ld_(const fdt64_t *p)
> > +{
> > +	return fdt64_to_cpu(*p);
> > }
> > 
> > #define FDT_SW_MAGIC		(~FDT_MAGIC)
> > 
> > -#endif /* _LIBFDT_INTERNAL_H */
> > +/**********************************************************************/
> > +/* Checking controls                                                  */
> > +/**********************************************************************/
> > +
> > +#ifndef FDT_ASSUME_MASK
> > +#define FDT_ASSUME_MASK 0
> > +#endif
> > +
> > +/*
> > + * Defines assumptions which can be enabled. Each of these can be enabled
> > + * individually. For maximum safety, don't enable any assumptions!
> > + *
> > + * For minimal code size and no safety, use ASSUME_PERFECT at your own risk.
> > + * You should have another method of validating the device tree, such as a
> > + * signature or hash check before using libfdt.
> > + *
> > + * For situations where security is not a concern it may be safe to enable
> > + * ASSUME_SANE.
> > + */
> > +enum {
> > +	/*
> > +	 * This does essentially no checks. Only the latest device-tree
> > +	 * version is correctly handled. Inconsistencies or errors in the device
> > +	 * tree may cause undefined behaviour or crashes. Invalid parameters
> > +	 * passed to libfdt may do the same.
> > +	 *
> > +	 * If an error occurs when modifying the tree it may leave the tree in
> > +	 * an intermediate (but valid) state. As an example, adding a property
> > +	 * where there is insufficient space may result in the property name
> > +	 * being added to the string table even though the property itself is
> > +	 * not added to the struct section.
> > +	 *
> > +	 * Only use this if you have a fully validated device tree with
> > +	 * the latest supported version and wish to minimise code size.
> > +	 */
> > +	ASSUME_PERFECT		= 0xff,
> > +
> > +	/*
> > +	 * This assumes that the device tree is sane. i.e. header metadata
> > +	 * and basic hierarchy are correct.
> > +	 *
> > +	 * With this assumption enabled, normal device trees produced by libfdt
> > +	 * and the compiler should be handled safely. Malicious device trees and
> > +	 * complete garbage may cause libfdt to behave badly or crash. Truncated
> > +	 * device trees (e.g. those only partially loaded) can also cause
> > +	 * problems.
> > +	 *
> > +	 * Note: Only checks that relate exclusively to the device tree itself
> > +	 * (not the parameters passed to libfdt) are disabled by this
> > +	 * assumption. This includes checking headers, tags and the like.
> > +	 */
> > +	ASSUME_VALID_DTB	= 1 << 0,
> > +
> > +	/*
> > +	 * This builds on ASSUME_VALID_DTB and further assumes that libfdt
> > +	 * functions are called with valid parameters, i.e. not trigger
> > +	 * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
> > +	 * extensive checking of parameters and the device tree, making various
> > +	 * assumptions about correctness.
> > +	 *
> > +	 * It doesn't make sense to enable this assumption unless
> > +	 * ASSUME_VALID_DTB is also enabled.
> > +	 */
> > +	ASSUME_VALID_INPUT	= 1 << 1,
> > +
> > +	/*
> > +	 * This disables checks for device-tree version and removes all code
> > +	 * which handles older versions.
> > +	 *
> > +	 * Only enable this if you know you have a device tree with the latest
> > +	 * version.
> > +	 */
> > +	ASSUME_LATEST		= 1 << 2,
> > +
> > +	/*
> > +	 * This assumes that it is OK for a failed addition to the device tree,
> > +	 * due to lack of space or some other problem, to skip any rollback
> > +	 * steps (such as dropping the property name from the string table).
> > +	 * This is safe to enable in most circumstances, even though it may
> > +	 * leave the tree in a sub-optimal state.
> > +	 */
> > +	ASSUME_NO_ROLLBACK	= 1 << 3,
> > +
> > +	/*
> > +	 * This assumes that the device tree components appear in a 'convenient'
> > +	 * order, i.e. the memory reservation block first, then the structure
> > +	 * block and finally the string block.
> > +	 *
> > +	 * This order is not specified by the device-tree specification,
> > +	 * but is expected by libfdt. The device-tree compiler always created
> > +	 * device trees with this order.
> > +	 *
> > +	 * This assumption disables a check in fdt_open_into() and removes the
> > +	 * ability to fix the problem there. This is safe if you know that the
> > +	 * device tree is correctly ordered. See fdt_blocks_misordered_().
> > +	 */
> > +	ASSUME_LIBFDT_ORDER	= 1 << 4,
> > +
> > +	/*
> > +	 * This assumes that libfdt itself does not have any internal bugs. It
> > +	 * drops certain checks that should never be needed unless libfdt has an
> > +	 * undiscovered bug.
> > +	 *
> > +	 * This can generally be considered safe to enable.
> > +	 */
> > +	ASSUME_LIBFDT_FLAWLESS	= 1 << 5,
> > +};
> > +
> > +/**
> > + * can_assume_() - check if a particular assumption is enabled
> > + *
> > + * @mask: Mask to check (ASSUME_...)
> > + * @return true if that assumption is enabled, else false
> > + */
> > +static inline bool can_assume_(int mask)
> > +{
> > +	return FDT_ASSUME_MASK & mask;
> > +}
> > +
> > +/** helper macros for checking assumptions */
> > +#define can_assume(_assume)	can_assume_(ASSUME_ ## _assume)
> > +
> > +#endif /* LIBFDT_INTERNAL_H */
> > diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
> > index f460b0d..f2e6880 100644
> > --- a/xen/include/xen/libfdt/fdt.h
> > +++ b/xen/include/xen/libfdt/fdt.h
> > @@ -1,53 +1,10 @@
> > -#ifndef _FDT_H
> > -#define _FDT_H
> > +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> > +#ifndef FDT_H
> > +#define FDT_H
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> >  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > 
> > #ifndef __ASSEMBLY__
> > @@ -106,4 +63,4 @@ struct fdt_property {
> > #define FDT_V16_SIZE	FDT_V3_SIZE
> > #define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(fdt32_t))
> > 
> > -#endif /* _FDT_H */
> > +#endif /* FDT_H */
> > diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
> > index 7c75688..c71689e 100644
> > --- a/xen/include/xen/libfdt/libfdt.h
> > +++ b/xen/include/xen/libfdt/libfdt.h
> > @@ -1,65 +1,27 @@
> > -#ifndef _LIBFDT_H
> > -#define _LIBFDT_H
> > +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> > +#ifndef LIBFDT_H
> > +#define LIBFDT_H
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > 
> > #include <xen/libfdt/libfdt_env.h>
> > #include <xen/libfdt/fdt.h>
> > 
> > -#define FDT_FIRST_SUPPORTED_VERSION	0x10
> > +#ifdef __cplusplus
> > +extern "C" {
> > +#endif
> > +
> > +#define FDT_FIRST_SUPPORTED_VERSION	0x02
> > +#define FDT_LAST_COMPATIBLE_VERSION 0x10
> > #define FDT_LAST_SUPPORTED_VERSION	0x11
> > 
> > /* Error codes: informative error codes */
> > #define FDT_ERR_NOTFOUND	1
> > 	/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
> > #define FDT_ERR_EXISTS		2
> > -	/* FDT_ERR_EXISTS: Attemped to create a node or property which
> > +	/* FDT_ERR_EXISTS: Attempted to create a node or property which
> > 	 * already exists */
> > #define FDT_ERR_NOSPACE		3
> > 	/* FDT_ERR_NOSPACE: Operation needed to expand the device
> > @@ -77,8 +39,10 @@
> > 	 * (e.g. missing a leading / for a function which requires an
> > 	 * absolute path) */
> > #define FDT_ERR_BADPHANDLE	6
> > -	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle
> > -	 * value.  phandle values of 0 and -1 are not permitted. */
> > +	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
> > +	 * This can be caused either by an invalid phandle property
> > +	 * length, or the phandle value was either 0 or -1, which are
> > +	 * not permitted. */
> > #define FDT_ERR_BADSTATE	7
> > 	/* FDT_ERR_BADSTATE: Function was passed an incomplete device
> > 	 * tree created by the sequential-write functions, which is
> > @@ -86,8 +50,9 @@
> > 
> > /* Error codes: codes for bad device tree blobs */
> > #define FDT_ERR_TRUNCATED	8
> > -	/* FDT_ERR_TRUNCATED: Structure block of the given device tree
> > -	 * ends without an FDT_END tag. */
> > +	/* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
> > +	 * terminated (overflows, goes outside allowed bounds, or
> > +	 * isn't properly terminated).  */
> > #define FDT_ERR_BADMAGIC	9
> > 	/* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
> > 	 * device tree at all - it is missing the flattened device
> > @@ -114,13 +79,46 @@
> > 	 * Should never be returned, if it is, it indicates a bug in
> > 	 * libfdt itself. */
> > 
> > -#define FDT_ERR_MAX		13
> > +/* Errors in device tree content */
> > +#define FDT_ERR_BADNCELLS	14
> > +	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
> > +	 * or similar property with a bad format or value */
> > +
> > +#define FDT_ERR_BADVALUE	15
> > +	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
> > +	 * value. For example: a property expected to contain a string list
> > +	 * is not NUL-terminated within the length of its value. */
> > +
> > +#define FDT_ERR_BADOVERLAY	16
> > +	/* FDT_ERR_BADOVERLAY: The device tree overlay, while
> > +	 * correctly structured, cannot be applied due to some
> > +	 * unexpected or missing value, property or node. */
> > +
> > +#define FDT_ERR_NOPHANDLES	17
> > +	/* FDT_ERR_NOPHANDLES: The device tree doesn't have any
> > +	 * phandle available anymore without causing an overflow */
> > +
> > +#define FDT_ERR_BADFLAGS	18
> > +	/* FDT_ERR_BADFLAGS: The function was passed a flags field that
> > +	 * contains invalid flags or an invalid combination of flags. */
> > +
> > +#define FDT_ERR_ALIGNMENT	19
> > +	/* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
> > +	 * aligned. */
> > +
> > +#define FDT_ERR_MAX		19
> > +
> > +/* constants */
> > +#define FDT_MAX_PHANDLE 0xfffffffe
> > +	/* Valid values for phandles range from 1 to 2^32-2. */
> > 
> > /**********************************************************************/
> > /* Low-level functions (you probably don't need these)                */
> > /**********************************************************************/
> > 
> > +#ifndef SWIG /* This function is not useful in Python */
> > const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen);
> > +#endif
> > static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
> > {
> > 	return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
> > @@ -128,6 +126,59 @@ static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
> > 
> > uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
> > 
> > +/*
> > + * External helpers to access words from a device tree blob. They're built
> > + * to work even with unaligned pointers on platforms (such as ARMv5) that don't
> > + * like unaligned loads and stores.
> > + */
> > +static inline uint32_t fdt32_ld(const fdt32_t *p)
> > +{
> > +	const uint8_t *bp = (const uint8_t *)p;
> > +
> > +	return ((uint32_t)bp[0] << 24)
> > +		| ((uint32_t)bp[1] << 16)
> > +		| ((uint32_t)bp[2] << 8)
> > +		| bp[3];
> > +}
> > +
> > +static inline void fdt32_st(void *property, uint32_t value)
> > +{
> > +	uint8_t *bp = (uint8_t *)property;
> > +
> > +	bp[0] = value >> 24;
> > +	bp[1] = (value >> 16) & 0xff;
> > +	bp[2] = (value >> 8) & 0xff;
> > +	bp[3] = value & 0xff;
> > +}
> > +
> > +static inline uint64_t fdt64_ld(const fdt64_t *p)
> > +{
> > +	const uint8_t *bp = (const uint8_t *)p;
> > +
> > +	return ((uint64_t)bp[0] << 56)
> > +		| ((uint64_t)bp[1] << 48)
> > +		| ((uint64_t)bp[2] << 40)
> > +		| ((uint64_t)bp[3] << 32)
> > +		| ((uint64_t)bp[4] << 24)
> > +		| ((uint64_t)bp[5] << 16)
> > +		| ((uint64_t)bp[6] << 8)
> > +		| bp[7];
> > +}
> > +
> > +static inline void fdt64_st(void *property, uint64_t value)
> > +{
> > +	uint8_t *bp = (uint8_t *)property;
> > +
> > +	bp[0] = value >> 56;
> > +	bp[1] = (value >> 48) & 0xff;
> > +	bp[2] = (value >> 40) & 0xff;
> > +	bp[3] = (value >> 32) & 0xff;
> > +	bp[4] = (value >> 24) & 0xff;
> > +	bp[5] = (value >> 16) & 0xff;
> > +	bp[6] = (value >> 8) & 0xff;
> > +	bp[7] = value & 0xff;
> > +}
> > +
> > /**********************************************************************/
> > /* Traversal functions                                                */
> > /**********************************************************************/
> > @@ -136,74 +187,118 @@ int fdt_next_node(const void *fdt, int offset, int *depth);
> > 
> > /**
> >  * fdt_first_subnode() - get offset of first direct subnode
> > - *
> >  * @fdt:	FDT blob
> >  * @offset:	Offset of node to check
> > - * @return offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
> > + *
> > + * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
> >  */
> > int fdt_first_subnode(const void *fdt, int offset);
> > 
> > /**
> >  * fdt_next_subnode() - get offset of next direct subnode
> > + * @fdt:	FDT blob
> > + * @offset:	Offset of previous subnode
> >  *
> >  * After first calling fdt_first_subnode(), call this function repeatedly to
> >  * get direct subnodes of a parent node.
> >  *
> > - * @fdt:	FDT blob
> > - * @offset:	Offset of previous subnode
> > - * @return offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
> > - * subnodes
> > + * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
> > + *         subnodes
> >  */
> > int fdt_next_subnode(const void *fdt, int offset);
> > 
> > +/**
> > + * fdt_for_each_subnode - iterate over all subnodes of a parent
> > + *
> > + * @node:	child node (int, lvalue)
> > + * @fdt:	FDT blob (const void *)
> > + * @parent:	parent node (int)
> > + *
> > + * This is actually a wrapper around a for loop and would be used like so:
> > + *
> > + *	fdt_for_each_subnode(node, fdt, parent) {
> > + *		Use node
> > + *		...
> > + *	}
> > + *
> > + *	if ((node < 0) && (node != -FDT_ERR_NOTFOUND)) {
> > + *		Error handling
> > + *	}
> > + *
> > + * Note that this is implemented as a macro and @node is used as
> > + * iterator in the loop. The parent variable be constant or even a
> > + * literal.
> > + */
> > +#define fdt_for_each_subnode(node, fdt, parent)		\
> > +	for (node = fdt_first_subnode(fdt, parent);	\
> > +	     node >= 0;					\
> > +	     node = fdt_next_subnode(fdt, node))
> > +
> > /**********************************************************************/
> > /* General functions                                                  */
> > /**********************************************************************/
> > -
> > #define fdt_get_header(fdt, field) \
> > -	(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))
> > -#define fdt_magic(fdt) 			(fdt_get_header(fdt, magic))
> > +	(fdt32_ld(&((const struct fdt_header *)(fdt))->field))
> > +#define fdt_magic(fdt)			(fdt_get_header(fdt, magic))
> > #define fdt_totalsize(fdt)		(fdt_get_header(fdt, totalsize))
> > #define fdt_off_dt_struct(fdt)		(fdt_get_header(fdt, off_dt_struct))
> > #define fdt_off_dt_strings(fdt)		(fdt_get_header(fdt, off_dt_strings))
> > #define fdt_off_mem_rsvmap(fdt)		(fdt_get_header(fdt, off_mem_rsvmap))
> > #define fdt_version(fdt)		(fdt_get_header(fdt, version))
> > -#define fdt_last_comp_version(fdt) 	(fdt_get_header(fdt, last_comp_version))
> > -#define fdt_boot_cpuid_phys(fdt) 	(fdt_get_header(fdt, boot_cpuid_phys))
> > -#define fdt_size_dt_strings(fdt) 	(fdt_get_header(fdt, size_dt_strings))
> > +#define fdt_last_comp_version(fdt)	(fdt_get_header(fdt, last_comp_version))
> > +#define fdt_boot_cpuid_phys(fdt)	(fdt_get_header(fdt, boot_cpuid_phys))
> > +#define fdt_size_dt_strings(fdt)	(fdt_get_header(fdt, size_dt_strings))
> > #define fdt_size_dt_struct(fdt)		(fdt_get_header(fdt, size_dt_struct))
> > 
> > -#define __fdt_set_hdr(name) \
> > +#define fdt_set_hdr_(name) \
> > 	static inline void fdt_set_##name(void *fdt, uint32_t val) \
> > 	{ \
> > -		struct fdt_header *fdth = (struct fdt_header*)fdt; \
> > +		struct fdt_header *fdth = (struct fdt_header *)fdt; \
> > 		fdth->name = cpu_to_fdt32(val); \
> > 	}
> > -__fdt_set_hdr(magic);
> > -__fdt_set_hdr(totalsize);
> > -__fdt_set_hdr(off_dt_struct);
> > -__fdt_set_hdr(off_dt_strings);
> > -__fdt_set_hdr(off_mem_rsvmap);
> > -__fdt_set_hdr(version);
> > -__fdt_set_hdr(last_comp_version);
> > -__fdt_set_hdr(boot_cpuid_phys);
> > -__fdt_set_hdr(size_dt_strings);
> > -__fdt_set_hdr(size_dt_struct);
> > -#undef __fdt_set_hdr
> > -
> > -/**
> > - * fdt_check_header - sanity check a device tree or possible device tree
> > +fdt_set_hdr_(magic);
> > +fdt_set_hdr_(totalsize);
> > +fdt_set_hdr_(off_dt_struct);
> > +fdt_set_hdr_(off_dt_strings);
> > +fdt_set_hdr_(off_mem_rsvmap);
> > +fdt_set_hdr_(version);
> > +fdt_set_hdr_(last_comp_version);
> > +fdt_set_hdr_(boot_cpuid_phys);
> > +fdt_set_hdr_(size_dt_strings);
> > +fdt_set_hdr_(size_dt_struct);
> > +#undef fdt_set_hdr_
> > +
> > +/**
> > + * fdt_header_size - return the size of the tree's header
> > + * @fdt: pointer to a flattened device tree
> > + *
> > + * Return: size of DTB header in bytes
> > + */
> > +size_t fdt_header_size(const void *fdt);
> > +
> > +/**
> > + * fdt_header_size_ - internal function to get header size from a version number
> > + * @version: devicetree version number
> > + *
> > + * Return: size of DTB header in bytes
> > + */
> > +size_t fdt_header_size_(uint32_t version);
> > +
> > +/**
> > + * fdt_check_header - sanity check a device tree header
> >  * @fdt: pointer to data which might be a flattened device tree
> >  *
> >  * fdt_check_header() checks that the given buffer contains what
> > - * appears to be a flattened device tree with sane information in its
> > - * header.
> > + * appears to be a flattened device tree, and that the header contains
> > + * valid information (to the extent that can be determined from the
> > + * header alone).
> >  *
> >  * returns:
> >  *     0, if the buffer appears to contain a valid device tree
> >  *     -FDT_ERR_BADMAGIC,
> >  *     -FDT_ERR_BADVERSION,
> > - *     -FDT_ERR_BADSTATE, standard meanings, as above
> > + *     -FDT_ERR_BADSTATE,
> > + *     -FDT_ERR_TRUNCATED, standard meanings, as above
> >  */
> > int fdt_check_header(const void *fdt);
> > 
> > @@ -232,6 +327,24 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
> > /* Read-only functions                                                */
> > /**********************************************************************/
> > 
> > +int fdt_check_full(const void *fdt, size_t bufsize);
> > +
> > +/**
> > + * fdt_get_string - retrieve a string from the strings block of a device tree
> > + * @fdt: pointer to the device tree blob
> > + * @stroffset: offset of the string within the strings block (native endian)
> > + * @lenp: optional pointer to return the string's length
> > + *
> > + * fdt_get_string() retrieves a pointer to a single string from the
> > + * strings block of the device tree blob at fdt, and optionally also
> > + * returns the string's length in *lenp.
> > + *
> > + * returns:
> > + *     a pointer to the string, on success
> > + *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
> > + */
> > +const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
> > +
> > /**
> >  * fdt_string - retrieve a string from the strings block of a device tree
> >  * @fdt: pointer to the device tree blob
> > @@ -242,11 +355,66 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
> >  *
> >  * returns:
> >  *     a pointer to the string, on success
> > - *     NULL, if stroffset is out of bounds
> > + *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
> >  */
> > const char *fdt_string(const void *fdt, int stroffset);
> > 
> > /**
> > + * fdt_find_max_phandle - find and return the highest phandle in a tree
> > + * @fdt: pointer to the device tree blob
> > + * @phandle: return location for the highest phandle value found in the tree
> > + *
> > + * fdt_find_max_phandle() finds the highest phandle value in the given device
> > + * tree. The value returned in @phandle is only valid if the function returns
> > + * success.
> > + *
> > + * returns:
> > + *     0 on success or a negative error code on failure
> > + */
> > +int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
> > +
> > +/**
> > + * fdt_get_max_phandle - retrieves the highest phandle in a tree
> > + * @fdt: pointer to the device tree blob
> > + *
> > + * fdt_get_max_phandle retrieves the highest phandle in the given
> > + * device tree. This will ignore badly formatted phandles, or phandles
> > + * with a value of 0 or -1.
> > + *
> > + * This function is deprecated in favour of fdt_find_max_phandle().
> > + *
> > + * returns:
> > + *      the highest phandle on success
> > + *      0, if no phandle was found in the device tree
> > + *      -1, if an error occurred
> > + */
> > +static inline uint32_t fdt_get_max_phandle(const void *fdt)
> > +{
> > +	uint32_t phandle;
> > +	int err;
> > +
> > +	err = fdt_find_max_phandle(fdt, &phandle);
> > +	if (err < 0)
> > +		return (uint32_t)-1;
> > +
> > +	return phandle;
> > +}
> > +
> > +/**
> > + * fdt_generate_phandle - return a new, unused phandle for a device tree blob
> > + * @fdt: pointer to the device tree blob
> > + * @phandle: return location for the new phandle
> > + *
> > + * Walks the device tree blob and looks for the highest phandle value. On
> > + * success, the new, unused phandle value (one higher than the previously
> > + * highest phandle value in the device tree blob) will be returned in the
> > + * @phandle parameter.
> > + *
> > + * Return: 0 on success or a negative error-code on failure
> > + */
> > +int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
> > +
> > +/**
> >  * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
> >  * @fdt: pointer to the device tree blob
> >  *
> > @@ -262,9 +430,11 @@ int fdt_num_mem_rsv(const void *fdt);
> > /**
> >  * fdt_get_mem_rsv - retrieve one memory reserve map entry
> >  * @fdt: pointer to the device tree blob
> > - * @address, @size: pointers to 64-bit variables
> > + * @n: index of reserve map entry
> > + * @address: pointer to 64-bit variable to hold the start address
> > + * @size: pointer to 64-bit variable to hold the size of the entry
> >  *
> > - * On success, *address and *size will contain the address and size of
> > + * On success, @address and @size will contain the address and size of
> >  * the n-th reserve map entry from the device tree blob, in
> >  * native-endian format.
> >  *
> > @@ -287,9 +457,13 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size);
> >  * namelen characters of name for matching the subnode name.  This is
> >  * useful for finding subnodes based on a portion of a larger string,
> >  * such as a full path.
> > + *
> > + * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
> > 			       const char *name, int namelen);
> > +#endif
> > /**
> >  * fdt_subnode_offset - find a subnode of a given node
> >  * @fdt: pointer to the device tree blob
> > @@ -306,8 +480,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
> >  * returns:
> >  *	structure block offset of the requested subnode (>=0), on success
> >  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
> > - *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
> > - *      -FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
> > + *		tag
> > + *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> >  *	-FDT_ERR_BADSTRUCTURE,
> > @@ -316,6 +491,21 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
> > int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
> > 
> > /**
> > + * fdt_path_offset_namelen - find a tree node by its full path
> > + * @fdt: pointer to the device tree blob
> > + * @path: full path of the node to locate
> > + * @namelen: number of characters of path to consider
> > + *
> > + * Identical to fdt_path_offset(), but only consider the first namelen
> > + * characters of path as the path name.
> > + *
> > + * Return: offset of the node or negative libfdt error value otherwise
> > + */
> > +#ifndef SWIG /* Not available in Python */
> > +int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);
> > +#endif
> > +
> > +/**
> >  * fdt_path_offset - find a tree node by its full path
> >  * @fdt: pointer to the device tree blob
> >  * @path: full path of the node to locate
> > @@ -328,7 +518,8 @@ int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
> >  * address).
> >  *
> >  * returns:
> > - *	structure block offset of the node with the requested path (>=0), on success
> > + *	structure block offset of the node with the requested path (>=0), on
> > + *		success
> >  *	-FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
> >  *	-FDT_ERR_NOTFOUND, if the requested node does not exist
> >  *      -FDT_ERR_BADMAGIC,
> > @@ -352,10 +543,12 @@ int fdt_path_offset(const void *fdt, const char *path);
> >  *
> >  * returns:
> >  *	pointer to the node's name, on success
> > - *		If lenp is non-NULL, *lenp contains the length of that name (>=0)
> > + *		If lenp is non-NULL, *lenp contains the length of that name
> > + *			(>=0)
> >  *	NULL, on error
> >  *		if lenp is non-NULL *lenp contains an error code (<0):
> > - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> > + *			tag
> >  *		-FDT_ERR_BADMAGIC,
> >  *		-FDT_ERR_BADVERSION,
> >  *		-FDT_ERR_BADSTATE, standard meanings
> > @@ -404,6 +597,33 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset);
> > int fdt_next_property_offset(const void *fdt, int offset);
> > 
> > /**
> > + * fdt_for_each_property_offset - iterate over all properties of a node
> > + *
> > + * @property:	property offset (int, lvalue)
> > + * @fdt:	FDT blob (const void *)
> > + * @node:	node offset (int)
> > + *
> > + * This is actually a wrapper around a for loop and would be used like so:
> > + *
> > + *	fdt_for_each_property_offset(property, fdt, node) {
> > + *		Use property
> > + *		...
> > + *	}
> > + *
> > + *	if ((property < 0) && (property != -FDT_ERR_NOTFOUND)) {
> > + *		Error handling
> > + *	}
> > + *
> > + * Note that this is implemented as a macro and property is used as
> > + * iterator in the loop. The node variable can be constant or even a
> > + * literal.
> > + */
> > +#define fdt_for_each_property_offset(property, fdt, node)	\
> > +	for (property = fdt_first_property_offset(fdt, node);	\
> > +	     property >= 0;					\
> > +	     property = fdt_next_property_offset(fdt, property))
> > +
> > +/**
> >  * fdt_get_property_by_offset - retrieve the property at a given offset
> >  * @fdt: pointer to the device tree blob
> >  * @offset: offset of the property to retrieve
> > @@ -414,6 +634,9 @@ int fdt_next_property_offset(const void *fdt, int offset);
> >  * offset.  If lenp is non-NULL, the length of the property value is
> >  * also returned, in the integer pointed to by lenp.
> >  *
> > + * Note that this code only works on device tree versions >= 16. fdt_getprop()
> > + * works on all versions.
> > + *
> >  * returns:
> >  *	pointer to the structure representing the property
> >  *		if lenp is non-NULL, *lenp contains the length of the property
> > @@ -439,13 +662,18 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> >  * @namelen: number of characters of name to consider
> >  * @lenp: pointer to an integer variable (will be overwritten) or NULL
> >  *
> > - * Identical to fdt_get_property_namelen(), but only examine the first
> > - * namelen characters of name for matching the property name.
> > + * Identical to fdt_get_property(), but only examine the first namelen
> > + * characters of name for matching the property name.
> > + *
> > + * Return: pointer to the structure representing the property, or NULL
> > + *         if not found
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> > 						    int nodeoffset,
> > 						    const char *name,
> > 						    int namelen, int *lenp);
> > +#endif
> > 
> > /**
> >  * fdt_get_property - find a given property in a given node
> > @@ -467,7 +695,8 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> >  *	NULL, on error
> >  *		if lenp is non-NULL, *lenp contains an error code (<0):
> >  *		-FDT_ERR_NOTFOUND, node does not have named property
> > - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> > + *			tag
> >  *		-FDT_ERR_BADMAGIC,
> >  *		-FDT_ERR_BADVERSION,
> >  *		-FDT_ERR_BADSTATE,
> > @@ -487,7 +716,7 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
> > /**
> >  * fdt_getprop_by_offset - retrieve the value of a property at a given offset
> >  * @fdt: pointer to the device tree blob
> > - * @ffset: offset of the property to read
> > + * @offset: offset of the property to read
> >  * @namep: pointer to a string variable (will be overwritten) or NULL
> >  * @lenp: pointer to an integer variable (will be overwritten) or NULL
> >  *
> > @@ -515,8 +744,10 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
> >  *		-FDT_ERR_BADSTRUCTURE,
> >  *		-FDT_ERR_TRUNCATED, standard meanings
> >  */
> > +#ifndef SWIG /* This function is not useful in Python */
> > const void *fdt_getprop_by_offset(const void *fdt, int offset,
> > 				  const char **namep, int *lenp);
> > +#endif
> > 
> > /**
> >  * fdt_getprop_namelen - get property value based on substring
> > @@ -528,9 +759,20 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
> >  *
> >  * Identical to fdt_getprop(), but only examine the first namelen
> >  * characters of name for matching the property name.
> > + *
> > + * Return: pointer to the property's value or NULL on error
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> > 				const char *name, int namelen, int *lenp);
> > +static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
> > +					  const char *name, int namelen,
> > +					  int *lenp)
> > +{
> > +	return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
> > +						      namelen, lenp);
> > +}
> > +#endif
> > 
> > /**
> >  * fdt_getprop - retrieve the value of a given property
> > @@ -540,10 +782,10 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> >  * @lenp: pointer to an integer variable (will be overwritten) or NULL
> >  *
> >  * fdt_getprop() retrieves a pointer to the value of the property
> > - * named 'name' of the node at offset nodeoffset (this will be a
> > + * named @name of the node at offset @nodeoffset (this will be a
> >  * pointer to within the device blob itself, not a copy of the value).
> > - * If lenp is non-NULL, the length of the property value is also
> > - * returned, in the integer pointed to by lenp.
> > + * If @lenp is non-NULL, the length of the property value is also
> > + * returned, in the integer pointed to by @lenp.
> >  *
> >  * returns:
> >  *	pointer to the property's value
> > @@ -552,7 +794,8 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> >  *	NULL, on error
> >  *		if lenp is non-NULL, *lenp contains an error code (<0):
> >  *		-FDT_ERR_NOTFOUND, node does not have named property
> > - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> > + *			tag
> >  *		-FDT_ERR_BADMAGIC,
> >  *		-FDT_ERR_BADVERSION,
> >  *		-FDT_ERR_BADSTATE,
> > @@ -587,11 +830,16 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset);
> >  * @name: name of the alias th look up
> >  * @namelen: number of characters of name to consider
> >  *
> > - * Identical to fdt_get_alias(), but only examine the first namelen
> > - * characters of name for matching the alias name.
> > + * Identical to fdt_get_alias(), but only examine the first @namelen
> > + * characters of @name for matching the alias name.
> > + *
> > + * Return: a pointer to the expansion of the alias named @name, if it exists,
> > + *	   NULL otherwise
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > const char *fdt_get_alias_namelen(const void *fdt,
> > 				  const char *name, int namelen);
> > +#endif
> > 
> > /**
> >  * fdt_get_alias - retrieve the path referenced by a given alias
> > @@ -599,7 +847,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
> >  * @name: name of the alias th look up
> >  *
> >  * fdt_get_alias() retrieves the value of a given alias.  That is, the
> > - * value of the property named 'name' in the node /aliases.
> > + * value of the property named @name in the node /aliases.
> >  *
> >  * returns:
> >  *	a pointer to the expansion of the alias named 'name', if it exists
> > @@ -624,7 +872,7 @@ const char *fdt_get_alias(const void *fdt, const char *name);
> >  *	0, on success
> >  *		buf contains the absolute path of the node at
> >  *		nodeoffset, as a NUL-terminated string.
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1)
> >  *		characters and will not fit in the given buffer.
> >  *	-FDT_ERR_BADMAGIC,
> > @@ -654,11 +902,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen);
> >  * structure from the start to nodeoffset.
> >  *
> >  * returns:
> > -
> >  *	structure block offset of the node at node offset's ancestor
> >  *		of depth supernodedepth (>=0), on success
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > -*	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeoffset
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
> > + *		nodeoffset
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -680,7 +928,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
> >  *
> >  * returns:
> >  *	depth of the node at nodeoffset (>=0), on success
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -703,7 +951,7 @@ int fdt_node_depth(const void *fdt, int nodeoffset);
> >  * returns:
> >  *	structure block offset of the parent of the node at nodeoffset
> >  *		(>=0), on success
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -743,7 +991,7 @@ int fdt_parent_offset(const void *fdt, int nodeoffset);
> >  *		 on success
> >  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
> >  *		tree after startoffset
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -775,14 +1023,13 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
> > int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
> > 
> > /**
> > - * fdt_node_check_compatible: check a node's compatible property
> > + * fdt_node_check_compatible - check a node's compatible property
> >  * @fdt: pointer to the device tree blob
> >  * @nodeoffset: offset of a tree node
> >  * @compatible: string to match against
> >  *
> > - *
> >  * fdt_node_check_compatible() returns 0 if the given node contains a
> > - * 'compatible' property with the given string as one of its elements,
> > + * @compatible property with the given string as one of its elements,
> >  * it returns non-zero otherwise, or on error.
> >  *
> >  * returns:
> > @@ -790,7 +1037,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
> >  *	1, if the node has a 'compatible' property, but it does not list
> >  *		the given string
> >  *	-FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
> > - * 	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -827,7 +1074,7 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
> >  *		 on success
> >  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
> >  *		tree after startoffset
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -846,15 +1093,160 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
> >  * one or more strings, each terminated by \0, as is found in a device tree
> >  * "compatible" property.
> >  *
> > - * @return: 1 if the string is found in the list, 0 not found, or invalid list
> > + * Return: 1 if the string is found in the list, 0 not found, or invalid list
> >  */
> > int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
> > 
> > +/**
> > + * fdt_stringlist_count - count the number of strings in a string list
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of a tree node
> > + * @property: name of the property containing the string list
> > + *
> > + * Return:
> > + *   the number of strings in the given property
> > + *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> > + *   -FDT_ERR_NOTFOUND if the property does not exist
> > + */
> > +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
> > +
> > +/**
> > + * fdt_stringlist_search - find a string in a string list and return its index
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of a tree node
> > + * @property: name of the property containing the string list
> > + * @string: string to look up in the string list
> > + *
> > + * Note that it is possible for this function to succeed on property values
> > + * that are not NUL-terminated. That's because the function will stop after
> > + * finding the first occurrence of @string. This can for example happen with
> > + * small-valued cell properties, such as #address-cells, when searching for
> > + * the empty string.
> > + *
> > + * return:
> > + *   the index of the string in the list of strings
> > + *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> > + *   -FDT_ERR_NOTFOUND if the property does not exist or does not contain
> > + *                     the given string
> > + */
> > +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
> > +			  const char *string);
> > +
> > +/**
> > + * fdt_stringlist_get() - obtain the string at a given index in a string list
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of a tree node
> > + * @property: name of the property containing the string list
> > + * @index: index of the string to return
> > + * @lenp: return location for the string length or an error code on failure
> > + *
> > + * Note that this will successfully extract strings from properties with
> > + * non-NUL-terminated values. For example on small-valued cell properties
> > + * this function will return the empty string.
> > + *
> > + * If non-NULL, the length of the string (on success) or a negative error-code
> > + * (on failure) will be stored in the integer pointer to by lenp.
> > + *
> > + * Return:
> > + *   A pointer to the string at the given index in the string list or NULL on
> > + *   failure. On success the length of the string will be stored in the memory
> > + *   location pointed to by the lenp parameter, if non-NULL. On failure one of
> > + *   the following negative error codes will be returned in the lenp parameter
> > + *   (if non-NULL):
> > + *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> > + *     -FDT_ERR_NOTFOUND if the property does not exist
> > + */
> > +const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
> > +			       const char *property, int index,
> > +			       int *lenp);
> > +
> > +/**********************************************************************/
> > +/* Read-only functions (addressing related)                           */
> > +/**********************************************************************/
> > +
> > +/**
> > + * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
> > + *
> > + * This is the maximum value for #address-cells, #size-cells and
> > + * similar properties that will be processed by libfdt.  IEE1275
> > + * requires that OF implementations handle values up to 4.
> > + * Implementations may support larger values, but in practice higher
> > + * values aren't used.
> > + */
> > +#define FDT_MAX_NCELLS		4
> > +
> > +/**
> > + * fdt_address_cells - retrieve address size for a bus represented in the tree
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node to find the address size for
> > + *
> > + * When the node has a valid #address-cells property, returns its value.
> > + *
> > + * returns:
> > + *	0 <= n < FDT_MAX_NCELLS, on success
> > + *      2, if the node has no #address-cells property
> > + *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> > + *		#address-cells property
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_address_cells(const void *fdt, int nodeoffset);
> > +
> > +/**
> > + * fdt_size_cells - retrieve address range size for a bus represented in the
> > + *                  tree
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node to find the address range size for
> > + *
> > + * When the node has a valid #size-cells property, returns its value.
> > + *
> > + * returns:
> > + *	0 <= n < FDT_MAX_NCELLS, on success
> > + *      1, if the node has no #size-cells property
> > + *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> > + *		#size-cells property
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_size_cells(const void *fdt, int nodeoffset);
> > +
> > +
> > /**********************************************************************/
> > /* Write-in-place functions                                           */
> > /**********************************************************************/
> > 
> > /**
> > + * fdt_setprop_inplace_namelen_partial - change a property's value,
> > + *                                       but not its size
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + * @namelen: number of characters of name to consider
> > + * @idx: index of the property to change in the array
> > + * @val: pointer to data to replace the property value with
> > + * @len: length of the property value
> > + *
> > + * Identical to fdt_setprop_inplace(), but modifies the given property
> > + * starting from the given index, and using only the first characters
> > + * of the name. It is useful when you want to manipulate only one value of
> > + * an array and you have a string that doesn't end with \0.
> > + *
> > + * Return: 0 on success, negative libfdt error value otherwise
> > + */
> > +#ifndef SWIG /* Not available in Python */
> > +int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
> > +					const char *name, int namelen,
> > +					uint32_t idx, const void *val,
> > +					int len);
> > +#endif
> > +
> > +/**
> >  * fdt_setprop_inplace - change a property's value, but not its size
> >  * @fdt: pointer to the device tree blob
> >  * @nodeoffset: offset of the node whose property to change
> > @@ -882,8 +1274,10 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
> >  *	-FDT_ERR_BADSTRUCTURE,
> >  *	-FDT_ERR_TRUNCATED, standard meanings
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
> > 			const void *val, int len);
> > +#endif
> > 
> > /**
> >  * fdt_setprop_inplace_u32 - change the value of a 32-bit integer property
> > @@ -957,8 +1351,13 @@ static inline int fdt_setprop_inplace_u64(void *fdt, int nodeoffset,
> > 
> > /**
> >  * fdt_setprop_inplace_cell - change the value of a single-cell property
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node containing the property
> > + * @name: name of the property to change the value of
> > + * @val: new value of the 32-bit cell
> >  *
> >  * This is an alternative name for fdt_setprop_inplace_u32()
> > + * Return: 0 on success, negative libfdt error number otherwise.
> >  */
> > static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
> > 					   const char *name, uint32_t val)
> > @@ -1020,7 +1419,46 @@ int fdt_nop_node(void *fdt, int nodeoffset);
> > /* Sequential write functions                                         */
> > /**********************************************************************/
> > 
> > +/* fdt_create_with_flags flags */
> > +#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
> > +	/* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
> > +	 * names in the fdt. This can result in faster creation times, but
> > +	 * a larger fdt. */
> > +
> > +#define FDT_CREATE_FLAGS_ALL	(FDT_CREATE_FLAG_NO_NAME_DEDUP)
> > +
> > +/**
> > + * fdt_create_with_flags - begin creation of a new fdt
> > + * @buf: pointer to memory allocated where fdt will be created
> > + * @bufsize: size of the memory space at fdt
> > + * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
> > + *
> > + * fdt_create_with_flags() begins the process of creating a new fdt with
> > + * the sequential write interface.
> > + *
> > + * fdt creation process must end with fdt_finished() to produce a valid fdt.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
> > + *	-FDT_ERR_BADFLAGS, flags is not valid
> > + */
> > +int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
> > +
> > +/**
> > + * fdt_create - begin creation of a new fdt
> > + * @buf: pointer to memory allocated where fdt will be created
> > + * @bufsize: size of the memory space at fdt
> > + *
> > + * fdt_create() is equivalent to fdt_create_with_flags() with flags=0.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
> > + */
> > int fdt_create(void *buf, int bufsize);
> > +
> > +int fdt_resize(void *fdt, void *buf, int bufsize);
> > int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
> > int fdt_finish_reservemap(void *fdt);
> > int fdt_begin_node(void *fdt, const char *name);
> > @@ -1035,10 +1473,29 @@ static inline int fdt_property_u64(void *fdt, const char *name, uint64_t val)
> > 	fdt64_t tmp = cpu_to_fdt64(val);
> > 	return fdt_property(fdt, name, &tmp, sizeof(tmp));
> > }
> > +
> > +#ifndef SWIG /* Not available in Python */
> > static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val)
> > {
> > 	return fdt_property_u32(fdt, name, val);
> > }
> > +#endif
> > +
> > +/**
> > + * fdt_property_placeholder - add a new property and return a ptr to its value
> > + *
> > + * @fdt: pointer to the device tree blob
> > + * @name: name of property to add
> > + * @len: length of property value in bytes
> > + * @valp: returns a pointer to where where the value should be placed
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_NOSPACE, standard meanings
> > + */
> > +int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp);
> > +
> > #define fdt_property_string(fdt, name, str) \
> > 	fdt_property(fdt, name, str, strlen(str)+1)
> > int fdt_end_node(void *fdt);
> > @@ -1055,7 +1512,8 @@ int fdt_pack(void *fdt);
> > /**
> >  * fdt_add_mem_rsv - add one memory reserve map entry
> >  * @fdt: pointer to the device tree blob
> > - * @address, @size: 64-bit values (native endian)
> > + * @address: 64-bit start address of the reserve map entry
> > + * @size: 64-bit size of the reserved region
> >  *
> >  * Adds a reserve map entry to the given blob reserving a region at
> >  * address address of length size.
> > @@ -1158,6 +1616,37 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> > 		const void *val, int len);
> > 
> > /**
> > + * fdt_setprop_placeholder - allocate space for a property
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + * @len: length of the property value
> > + * @prop_data: return pointer to property data
> > + *
> > + * fdt_setprop_placeholer() allocates the named property in the given node.
> > + * If the property exists it is resized. In either case a pointer to the
> > + * property data is returned.
> > + *
> > + * This function may insert or delete data from the blob, and will
> > + * therefore change the offsets of some existing nodes.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> > + *		contain the new property value
> > + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
> > +			    int len, void **prop_data);
> > +
> > +/**
> >  * fdt_setprop_u32 - set a property to a 32-bit integer
> >  * @fdt: pointer to the device tree blob
> >  * @nodeoffset: offset of the node whose property to change
> > @@ -1229,8 +1718,14 @@ static inline int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name,
> > 
> > /**
> >  * fdt_setprop_cell - set a property to a single cell value
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + * @val: 32-bit integer value for the property (native endian)
> >  *
> >  * This is an alternative name for fdt_setprop_u32()
> > + *
> > + * Return: 0 on success, negative libfdt error value otherwise.
> >  */
> > static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
> > 				   uint32_t val)
> > @@ -1269,6 +1764,36 @@ static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
> > #define fdt_setprop_string(fdt, nodeoffset, name, str) \
> > 	fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
> > 
> > +
> > +/**
> > + * fdt_setprop_empty - set a property to an empty value
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + *
> > + * fdt_setprop_empty() sets the value of the named property in the
> > + * given node to an empty (zero length) value, or creates a new empty
> > + * property if it does not already exist.
> > + *
> > + * This function may insert or delete data from the blob, and will
> > + * therefore change the offsets of some existing nodes.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> > + *		contain the new property value
> > + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +#define fdt_setprop_empty(fdt, nodeoffset, name) \
> > +	fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
> > +
> > /**
> >  * fdt_appendprop - append to or create a property
> >  * @fdt: pointer to the device tree blob
> > @@ -1371,8 +1896,14 @@ static inline int fdt_appendprop_u64(void *fdt, int nodeoffset,
> > 
> > /**
> >  * fdt_appendprop_cell - append a single cell value to a property
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + * @val: 32-bit integer value to append to the property (native endian)
> >  *
> >  * This is an alternative name for fdt_appendprop_u32()
> > + *
> > + * Return: 0 on success, negative libfdt error value otherwise.
> >  */
> > static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
> > 				      const char *name, uint32_t val)
> > @@ -1411,6 +1942,43 @@ static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
> > 	fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
> > 
> > /**
> > + * fdt_appendprop_addrrange - append a address range property
> > + * @fdt: pointer to the device tree blob
> > + * @parent: offset of the parent node
> > + * @nodeoffset: offset of the node to add a property at
> > + * @name: name of property
> > + * @addr: start address of a given range
> > + * @size: size of a given range
> > + *
> > + * fdt_appendprop_addrrange() appends an address range value (start
> > + * address and size) to the value of the named property in the given
> > + * node, or creates a new property with that value if it does not
> > + * already exist.
> > + * If "name" is not specified, a default "reg" is used.
> > + * Cell sizes are determined by parent's #address-cells and #size-cells.
> > + *
> > + * This function may insert data into the blob, and will therefore
> > + * change the offsets of some existing nodes.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> > + *		#address-cells property
> > + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
> > + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> > + *		contain a new property
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
> > +			     const char *name, uint64_t addr, uint64_t size);
> > +
> > +/**
> >  * fdt_delprop - delete a property
> >  * @fdt: pointer to the device tree blob
> >  * @nodeoffset: offset of the node whose property to nop
> > @@ -1438,16 +2006,21 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name);
> >  * fdt_add_subnode_namelen - creates a new node based on substring
> >  * @fdt: pointer to the device tree blob
> >  * @parentoffset: structure block offset of a node
> > - * @name: name of the subnode to locate
> > + * @name: name of the subnode to create
> >  * @namelen: number of characters of name to consider
> >  *
> > - * Identical to fdt_add_subnode(), but use only the first namelen
> > - * characters of name as the name of the new node.  This is useful for
> > + * Identical to fdt_add_subnode(), but use only the first @namelen
> > + * characters of @name as the name of the new node.  This is useful for
> >  * creating subnodes based on a portion of a larger string, such as a
> >  * full path.
> > + *
> > + * Return: structure block offset of the created subnode (>=0),
> > + *	   negative libfdt error value otherwise
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> > 			    const char *name, int namelen);
> > +#endif
> > 
> > /**
> >  * fdt_add_subnode - creates a new node
> > @@ -1461,11 +2034,13 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> >  *
> >  * This function will insert data into the blob, and will therefore
> >  * change the offsets of some existing nodes.
> > -
> > + *
> >  * returns:
> > - *	structure block offset of the created nodeequested subnode (>=0), on success
> > + *	structure block offset of the created nodeequested subnode (>=0), on
> > + *		success
> >  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
> > - *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
> > + *		tag
> >  *	-FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
> >  *		the given name
> >  *	-FDT_ERR_NOSPACE, if there is insufficient free space in the
> > @@ -1503,10 +2078,45 @@ int fdt_add_subnode(void *fdt, int parentoffset, const char *name);
> >  */
> > int fdt_del_node(void *fdt, int nodeoffset);
> > 
> > +/**
> > + * fdt_overlay_apply - Applies a DT overlay on a base DT
> > + * @fdt: pointer to the base device tree blob
> > + * @fdto: pointer to the device tree overlay blob
> > + *
> > + * fdt_overlay_apply() will apply the given device tree overlay on the
> > + * given base device tree.
> > + *
> > + * Expect the base device tree to be modified, even if the function
> > + * returns an error.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, there's not enough space in the base device tree
> > + *	-FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
> > + *		properties in the base DT
> > + *	-FDT_ERR_BADPHANDLE,
> > + *	-FDT_ERR_BADOVERLAY,
> > + *	-FDT_ERR_NOPHANDLES,
> > + *	-FDT_ERR_INTERNAL,
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADOFFSET,
> > + *	-FDT_ERR_BADPATH,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_overlay_apply(void *fdt, void *fdto);
> > +
> > /**********************************************************************/
> > /* Debugging / informational functions                                */
> > /**********************************************************************/
> > 
> > const char *fdt_strerror(int errval);
> > 
> > -#endif /* _LIBFDT_H */
> > +#ifdef __cplusplus
> > +}
> > +#endif
> > +
> > +#endif /* LIBFDT_H */
> > diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
> > index 035bf75..03380d5 100644
> > --- a/xen/include/xen/libfdt/libfdt_env.h
> > +++ b/xen/include/xen/libfdt/libfdt_env.h
> > @@ -1,22 +1,98 @@
> > -#ifndef _LIBFDT_ENV_H
> > -#define _LIBFDT_ENV_H
> > +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> > +#ifndef LIBFDT_ENV_H
> > +#define LIBFDT_ENV_H
> > +/*
> > + * libfdt - Flat Device Tree manipulation
> > + * Copyright (C) 2006 David Gibson, IBM Corporation.
> > + * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> > + */
> > 
> > +#include <xen/config.h>
> > #include <xen/types.h>
> > #include <xen/string.h>
> > #include <asm/byteorder.h>
> > +#include <xen/stdbool.h>
> > 
> > -typedef uint16_t fdt16_t;
> > -typedef uint32_t fdt32_t;
> > -typedef uint64_t fdt64_t;
> > +#ifdef __CHECKER__
> > +#define FDT_FORCE __attribute__((force))
> > +#define FDT_BITWISE __attribute__((bitwise))
> > +#else
> > +#define FDT_FORCE
> > +#define FDT_BITWISE
> > +#endif
> > 
> > -#define fdt16_to_cpu(x) be16_to_cpu(x)
> > -#define cpu_to_fdt16(x) cpu_to_be16(x)
> > -#define fdt32_to_cpu(x) be32_to_cpu(x)
> > -#define cpu_to_fdt32(x) cpu_to_be32(x)
> > -#define fdt64_to_cpu(x) be64_to_cpu(x)
> > -#define cpu_to_fdt64(x) cpu_to_be64(x)
> > +typedef uint16_t FDT_BITWISE fdt16_t;
> > +typedef uint32_t FDT_BITWISE fdt32_t;
> > +typedef uint64_t FDT_BITWISE fdt64_t;
> > +
> > +#define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
> > +#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
> > +#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | \
> > +			 (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
> > +#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | \
> > +			 (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
> > +			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
> > +			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
> > 
> > /* Xen-specific libfdt error code. */
> > #define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
> > 
> > -#endif /* _LIBFDT_ENV_H */
> > +static inline uint16_t fdt16_to_cpu(fdt16_t x)
> > +{
> > +	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
> > +}
> > +static inline fdt16_t cpu_to_fdt16(uint16_t x)
> > +{
> > +	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
> > +}
> > +
> > +static inline uint32_t fdt32_to_cpu(fdt32_t x)
> > +{
> > +	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
> > +}
> > +static inline fdt32_t cpu_to_fdt32(uint32_t x)
> > +{
> > +	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
> > +}
> > +
> > +static inline uint64_t fdt64_to_cpu(fdt64_t x)
> > +{
> > +	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
> > +}
> > +static inline fdt64_t cpu_to_fdt64(uint64_t x)
> > +{
> > +	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
> > +}
> > +#undef CPU_TO_FDT64
> > +#undef CPU_TO_FDT32
> > +#undef CPU_TO_FDT16
> > +#undef EXTRACT_BYTE
> > +
> > +#ifdef __APPLE__
> > +#include <AvailabilityMacros.h>
> > +
> > +/* strnlen() is not available on Mac OS < 10.7 */
> > +# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < \
> > +                                         MAC_OS_X_VERSION_10_7)
> > +
> > +#define strnlen fdt_strnlen
> > +
> > +/*
> > + * fdt_strnlen: returns the length of a string or max_count - which ever is
> > + * smallest.
> > + * Input 1 string: the string whose size is to be determined
> > + * Input 2 max_count: the maximum value returned by this function
> > + * Output: length of the string or max_count (the smallest of the two)
> > + */
> > +static inline size_t fdt_strnlen(const char *string, size_t max_count)
> > +{
> > +    const char *p = memchr(string, 0, max_count);
> > +    return p ? p - string : max_count;
> > +}
> > +
> > +#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED <
> > +          MAC_OS_X_VERSION_10_7) */
> > +
> > +#endif /* __APPLE__ */
> > +
> > +#endif /* LIBFDT_ENV_H */
> > -- 
> > 2.7.4
> > 
> > 
> 


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 19:23:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 19:23:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222612.384893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj4nf-0005tC-6w; Fri, 05 Nov 2021 19:22:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222612.384893; Fri, 05 Nov 2021 19:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj4nf-0005t5-3p; Fri, 05 Nov 2021 19:22:55 +0000
Received: by outflank-mailman (input) for mailman id 222612;
 Fri, 05 Nov 2021 19:22:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj4nd-0005sv-4F; Fri, 05 Nov 2021 19:22:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj4nd-00066E-0C; Fri, 05 Nov 2021 19:22:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj4nc-0004dD-Lo; Fri, 05 Nov 2021 19:22:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mj4nc-0005XI-LL; Fri, 05 Nov 2021 19:22:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kg/iSF7yg+sOVrzfyEMeZ0/ux0oTygd0B6bDFC6SqP4=; b=yxWBvioHvdtk8hdiQ1pumbD4oJ
	lTtm25f0P9NPM1eJR+FDGUnYxRnRJsWypFxuaTReSIcz9c6/fkXkq/vNuT/fjg3vCcceja1Fxsb3i
	YQafTedSruh72RhluI/nb2ToZByxTcYHI2o78CfObKbvelXx15qBIMsKGOMh+vcMJRaU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166055-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166055: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
X-Osstest-Versions-That:
    xen=faddd16e367530fe4de5480610f69d8ceb6011d8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Nov 2021 19:22:52 +0000

flight 166055 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166055/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b
baseline version:
 xen                  faddd16e367530fe4de5480610f69d8ceb6011d8

Last test of basis   166047  2021-11-04 20:01:40 Z    0 days
Testing same since   166055  2021-11-05 16:02:53 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Luca Fancellu <luca.fancellu@arm.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   faddd16e36..9bc9fff04b  9bc9fff04ba077c4a9782f12578362d8947c534b -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 20:34:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 20:34:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222620.384908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj5uX-00042q-CV; Fri, 05 Nov 2021 20:34:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222620.384908; Fri, 05 Nov 2021 20:34:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj5uX-00042j-80; Fri, 05 Nov 2021 20:34:05 +0000
Received: by outflank-mailman (input) for mailman id 222620;
 Fri, 05 Nov 2021 20:34:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj5uV-00042d-Td
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 20:34:04 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4c562c9-3e77-11ec-a9d2-d9f7a1cc8784;
 Fri, 05 Nov 2021 21:34:01 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id D18F8611C0;
 Fri,  5 Nov 2021 20:33:58 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4c562c9-3e77-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636144439;
	bh=Rj60RohdBZKaYozXIpiWS4oKBoiKvp+5KpQeieB1hFQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Mfi9GpkvQNpfUO0Ppj1WBGhGrggPl1Mh1+4p0w3nWJ+Fl5ropYimA+mb2qQAcCYuc
	 7300FnfUob6F1uGdMdhBMtYP0hHz69BEz4T2nADaLlqfxXVPYu16XC1qOJgNbnfHjB
	 7CLn5rcuqovrOseMJc48tEmJygjDsK2a/CDWzXneSX02zTfv/p8xljQLMPwTQrRecQ
	 zOhCkN3esRAmfnKsQ4DWD42cJ10pARA4HJL4u/Mr44yWhtMsymjxv5F05er+CZWlPM
	 hT2oxoGq8Gs7vfw0zr6NVFxtR9Ff/PYmrTteGzJn9IciC518Pd725xPY1IBbuCjbst
	 7V/Ehz1YSrTcA==
Date: Fri, 5 Nov 2021 13:33:57 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Vikram Garhwal <fnu.vikram@xilinx.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, julien@xen.org, 
    bertrand.marquis@arm.com, volodymyr_babchuk@epam.com
Subject: Re: [XEN][PATCH 2/2] xen: libfdt: Changes to make libfdt v1.6.1
 compatible with Xen
In-Reply-To: <1636136354-68413-3-git-send-email-fnu.vikram@xilinx.com>
Message-ID: <alpine.DEB.2.22.394.2111051333312.284830@ubuntu-linux-20-04-desktop>
References: <1636136354-68413-1-git-send-email-fnu.vikram@xilinx.com> <1636136354-68413-3-git-send-email-fnu.vikram@xilinx.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 5 Nov 2021, Vikram Garhwal wrote:
> A few minor changes are done to make it compatible with Xen:
>     fdt_overlay.c: overlay_fixup_phandle()
> 
>         Replace strtoul() with simple_strtoul() as strtoul() is not available in
>         Xen lib and included lib.h.
> 
>         Change char *endptr to const char *endptr.
> 
>     libfdt_env.h:
>         Changed path for config.h and stdbool.h. Remaining Xen changes to
>         libfdt_env.h carried over from existing libfdt (v1.4.0)
> 
> Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>

Thanks! All makes sense to me.


> ---
>  xen/common/libfdt/fdt_overlay.c     |  6 ++++--
>  xen/include/xen/libfdt/libfdt.h     |  4 ++--
>  xen/include/xen/libfdt/libfdt_env.h | 14 ++++++++------
>  3 files changed, 14 insertions(+), 10 deletions(-)
> 
> diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
> index d217e79..7b95e2b 100644
> --- a/xen/common/libfdt/fdt_overlay.c
> +++ b/xen/common/libfdt/fdt_overlay.c
> @@ -8,6 +8,7 @@
>  
>  #include <fdt.h>
>  #include <libfdt.h>
> +#include <xen/lib.h>
>  
>  #include "libfdt_internal.h"
>  
> @@ -446,7 +447,8 @@ static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
>  		const char *fixup_str = value;
>  		uint32_t path_len, name_len;
>  		uint32_t fixup_len;
> -		char *sep, *endptr;
> +		char *sep;
> +		const char *endptr;
>  		int poffset, ret;
>  
>  		fixup_end = memchr(value, '\0', len);
> @@ -476,7 +478,7 @@ static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
>  		if (!name_len)
>  			return -FDT_ERR_BADOVERLAY;
>  
> -		poffset = strtoul(sep + 1, &endptr, 10);
> +		poffset = simple_strtoul(sep + 1, &endptr, 10);
>  		if ((*endptr != '\0') || (endptr <= (sep + 1)))
>  			return -FDT_ERR_BADOVERLAY;
>  
> diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
> index 73467f7..c71689e 100644
> --- a/xen/include/xen/libfdt/libfdt.h
> +++ b/xen/include/xen/libfdt/libfdt.h
> @@ -6,8 +6,8 @@
>   * Copyright (C) 2006 David Gibson, IBM Corporation.
>   */
>  
> -#include <libfdt_env.h>
> -#include <fdt.h>
> +#include <xen/libfdt/libfdt_env.h>
> +#include <xen/libfdt/fdt.h>
>  
>  #ifdef __cplusplus
>  extern "C" {
> diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
> index 73b6d40..03380d5 100644
> --- a/xen/include/xen/libfdt/libfdt_env.h
> +++ b/xen/include/xen/libfdt/libfdt_env.h
> @@ -7,12 +7,11 @@
>   * Copyright 2012 Kim Phillips, Freescale Semiconductor.
>   */
>  
> -#include <stdbool.h>
> -#include <stddef.h>
> -#include <stdint.h>
> -#include <stdlib.h>
> -#include <string.h>
> -#include <limits.h>
> +#include <xen/config.h>
> +#include <xen/types.h>
> +#include <xen/string.h>
> +#include <asm/byteorder.h>
> +#include <xen/stdbool.h>
>  
>  #ifdef __CHECKER__
>  #define FDT_FORCE __attribute__((force))
> @@ -35,6 +34,9 @@ typedef uint64_t FDT_BITWISE fdt64_t;
>  			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
>  			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
>  
> +/* Xen-specific libfdt error code. */
> +#define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
> +
>  static inline uint16_t fdt16_to_cpu(fdt16_t x)
>  {
>  	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
> -- 
> 2.7.4
> 


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 20:42:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 20:42:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222627.384919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj620-0005TM-4k; Fri, 05 Nov 2021 20:41:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222627.384919; Fri, 05 Nov 2021 20:41:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj620-0005TF-1X; Fri, 05 Nov 2021 20:41:48 +0000
Received: by outflank-mailman (input) for mailman id 222627;
 Fri, 05 Nov 2021 20:41:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFAl=PY=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mj61y-0005T9-Kx
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 20:41:46 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c914460e-3e78-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 21:41:44 +0100 (CET)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A5Jxt2x018600; 
 Fri, 5 Nov 2021 20:41:27 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c4t7e4f93-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 05 Nov 2021 20:41:27 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A5KaSNu168214;
 Fri, 5 Nov 2021 20:41:26 GMT
Received: from nam10-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam10lp2103.outbound.protection.outlook.com [104.47.58.103])
 by userp3020.oracle.com with ESMTP id 3c4t61s4up-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 05 Nov 2021 20:41:25 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BL0PR10MB3041.namprd10.prod.outlook.com (2603:10b6:208:7c::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov
 2021 20:41:23 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.011; Fri, 5 Nov 2021
 20:41:23 +0000
Received: from [10.74.104.120] (138.3.200.56) by
 SA0PR11CA0128.namprd11.prod.outlook.com (2603:10b6:806:131::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 20:41:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c914460e-3e78-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=9COEaYkMTdgVd5EKihn+6DfG0s4LaKi3jYGoq4hjSSU=;
 b=A5qPU8+eGpqjoT6OlocWb3JAeVt/9fs3+1iJkoSRuKxHzx+NLbi1XWQuKXb6vl7mxwvo
 cFphGjtkPwUWItzzfj3Ufa/UfGxxatzQyq1i0NiISKKKAHC+QutiWuMVnA7rqE+tUEwh
 hxlLZnclySl9ebj86xY4ebmZaglsX7zecwS0WqIPrRkrgmy6k28prOvKZ7WzsxDorvvb
 8ho0RzYOdgqaeB2676nu8AgRcaKnAyliMCaEqGx/RTnTAJmkh77wwHxwiVf0jWUQYKua
 hANmSyqo/CpXw4C3IZJGtkGUYkYHlqX9iNCsBRuSP9qgPDRqrOSXOHpLfz+xFLBfaqlb dw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Eq+YL1KnvQSEjKy3aeFoC3sGmXmpOoTGz1OrodXQUqdlZ6TmD85JP5KeFOrpbcFJAERTOSo6VkKj0x14BVU6Gh5o8MXbDtdvtnTmxTabBcfvSahUqau7IcusCZmznBfYWp3oSuD8vDZOPYl8jATb4C/59EYLmCi5GZPoUinYHFvAJb52wKtukOlHHIrDnYt6Giwuzh/trb+O5VggyiMggfK2BfmBAlv5ZLWR8iC9xfF8yW7ddF4q/2yUgScYY6QPjHziHCzN6bwYMQ3e1x2V5xq42sxtraxvPN8GiR8jJRLuYkUslwVxHu/bqdW/+Q5jHEr5tvl2JtOUoSgKUSSXcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9COEaYkMTdgVd5EKihn+6DfG0s4LaKi3jYGoq4hjSSU=;
 b=aV/xLgAhYr+xO53iFO366uKKrzFcejFg6C3P/bDVo2rh93uqiwkm5cCPG3XRUYPjRBjey85MYdazCKE9tnZwyEPofqsGUha9ALL2uYluWSPQuDB74lMPotuEbaOUARqB6XoCGP3T86E0MYz8jJNITHgCpjZi7syHrVVVETP22EqPW2o11CY0yybOClUoaECLktifvKHQGj68TRRT3OqLyfncrR46d2QHZSBnhHztSWGkaDLBv2BsznkbtsYMalD4JLYe1fKuOCGM/fLN6l9QfwpwNxmC6banjwBDPBwRzYFUMrc/nS3qiKhU0FTR33EKAlaLTCnQ6gpTCi00TPLTuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9COEaYkMTdgVd5EKihn+6DfG0s4LaKi3jYGoq4hjSSU=;
 b=zzUGHVXR8M1XoYUSr6NUN39AgblKNJ6fxgj+BQ8ZU1ToJebEbTeifpYtvAbkgySiad0QQ4fLHdZcmuo/OhRLEwR0EOP6fAFp5b1xugx+Zp1lWtKhxSVKHZUE0fTU3670FDDKyqPN0ohIMyKbSBHMdw22bqd3xEUkuFiUKs085Wk=
Authentication-Results: oracle.com; dkim=none (message not signed)
 header.d=none;oracle.com; dmarc=none action=none header.from=oracle.com;
Message-ID: <a891e4f6-9832-8335-2cf8-e494f8703fb7@oracle.com>
Date: Fri, 5 Nov 2021 16:41:16 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.2.1
Subject: Re: [PATCH v2 1/1] xen: delay xen_hvm_init_time_ops() if kdump is
 boot on vcpu>=32
Content-Language: en-US
To: Dongli Zhang <dongli.zhang@oracle.com>, xen-devel@lists.xenproject.org,
        x86@kernel.org
Cc: jgross@suse.com, sstabellini@kernel.org, tglx@linutronix.de,
        mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
        hpa@zytor.com, joe.jin@oracle.com, linux-kernel@vger.kernel.org
References: <20211028012543.8776-1-dongli.zhang@oracle.com>
 <1f19674f-e608-1faa-5656-fec853297198@oracle.com>
 <fe6d7aaf-97b5-dfa2-75e5-1a072f4aac92@oracle.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <fe6d7aaf-97b5-dfa2-75e5-1a072f4aac92@oracle.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SA0PR11CA0128.namprd11.prod.outlook.com
 (2603:10b6:806:131::13) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a97e24ab-9a90-4bf5-7e8c-08d9a09ca142
X-MS-TrafficTypeDiagnostic: BL0PR10MB3041:
X-Microsoft-Antispam-PRVS: 
	<BL0PR10MB3041D639B061FFB0674955068A8E9@BL0PR10MB3041.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	DuZWJ53XUcuyXPohLNCpd8V8ynvHnmsyhWT1Gm2Uz5r5R1vzwKkmPD17HQuDUFzP19LpVjSVLBKqH8EPq2yEagAu6VeCJtJhHSZHnF0Yf1GXPcgWBGbwGl8DL6aMVzMNZVcDgSIrM6PxRiZR1qOatul0uY3dYkX4J9g2SU99wRSAD8/nO/bN6ibsDn7s1MeuU0RwcHOnmbXCs5tqwSBL5beRhC5RQyqRCJbO+bMJlXtb5HWXQJQonrfAhSeKUpGC+StnP55VSJtjKS630gbMOes1Z4t/QyzI4e2YOvLpY4kL7ht5WTuw/OTqn66i+5cBNj/9WEoIw6myezEfUErHCCThO+n5cMG/1M/KCrLYdcal8T4FBsiPp4Qjs6CD4cClCGtSnrZqxJgcm7yhsx57jRWm9y8LdmN5YgRzeu1itHSqQaVKa5TeoxFceq+MZIIDfs2dmCOuoHOn5BRikjjt0rTvcJbvsnXNOaEgSK89vMorhAVr2XJAlV7VnKllsUZRN/0l53oVcdldyY3/Dg9JpnQ+I0nrM5RiLrGH/5p056/YxcbfmNor8O6502C+r/2SVTlwMJkO/FKMmUKBlLUCZL57ANlts36D3SbwUH8S24PZ5YXzVUeFSnoismoDiaijyEfGj5farHeCqMnWw8Wr8t0Z9rmnE5+X2CfnvkjIkfeRerSsnZjG4hJU+bwTlTcYTJLxruRyvA9tEmbdcrHxOua5fvWnT5DSBJQAIgo/Ha1s8uHE1Ni00JqeWdrcenjlZAc9n9GhOjnNGzBXqxLU6Ufw98nnLwQyeLbjkQsopmhz9kyEj1Mn15enmwlKylMLxPeiKs/Y0sY4G30t+xLPZQ==
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(186003)(38100700002)(956004)(66476007)(86362001)(53546011)(6666004)(36756003)(26005)(31696002)(7416002)(83380400001)(31686004)(5660300002)(6486002)(8936002)(4326008)(44832011)(966005)(508600001)(16576012)(66556008)(66946007)(2906002)(2616005)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?bnB5MWRWNy9yVVBZQnVjdThKdkpRb3A2VlBvMDJRZm9WdTlIeXRhSjVIL0li?=
 =?utf-8?B?b05lQTdRWGFVWjdwNEJBRmpYVEl6R1RqcTNUSXRST1N2SDQ2MlJJbEtrOVRv?=
 =?utf-8?B?cmxKMGg3Qm52RWZVVWI4UERvVy8xMG8rV09lYThoTFFNRXJrcG1oT3Z0SkRj?=
 =?utf-8?B?QWxSb085QkdaZk8xeWdqb3p4ZzNQMFhmOWhvR21tbGg5dDR3RkJZYXBIcjRs?=
 =?utf-8?B?UkdqV2taS1FtV0V4V0tGMDBBd2QyRS9xcHNlU3ZJbGlTTXJHZTN1TnZ3NkFi?=
 =?utf-8?B?aDhES1ZGc3dINVNNMzB5VFZmQ3I5OC9jbTQzTVZpV3VXeWRVNkFRQ1RjT2g5?=
 =?utf-8?B?dFhkQW1aT2tobjREdi9rYzNtd3h2TEhXNC83R0s0QWNDYnFYWm1zMlJhTUtG?=
 =?utf-8?B?bVZXVFBVSWMrU0NlV3ZZMTdYMThoa1VoT1dlYVVNeGpBQmkvMnhJM3VZUllj?=
 =?utf-8?B?bmU3ZHRzUGhRQmJycGtqaDEveHFydU9HLzkwWVRxMndxb2FvdllQKzEyUGNx?=
 =?utf-8?B?RHdOZG5XQlJhaEtJL0RZTGk2aU5DQUh0Tk5mQWpTN3hQVnlaL1hVWThjQi9m?=
 =?utf-8?B?OFJBM2RTVXNZc2c2YUdMUzdLbDJPQUgxM1RRU0dGM2ZHTDI0WDlETmVhQWth?=
 =?utf-8?B?d0dCcS9CR054VG5KQ3NSNjNUNXRieTR4ZTYrb2lodGdHenlWWTZYVmlSSnA3?=
 =?utf-8?B?bjN4aWZEZEpqYm13R1BGSFlFdStQSW10UWgrSm1BTlVYcDlWNGJFckdnRW51?=
 =?utf-8?B?UVd4bFZxOE12VVNIcm5PTmxVbkorY0hJdkt4YlRHaUN0bnhHVmRiZmpNZ251?=
 =?utf-8?B?MDczL2ZSb2ROUzdNM2ozbTFHZ1VkaFpQT3FwVC9iTktvTXJoUUsxK1E1Zk1C?=
 =?utf-8?B?Tis0NGFmakpiUjY0d3ZVUnd1UWQrOFg4OWNlLzhMdCtuV015UzduclcxQXBz?=
 =?utf-8?B?OHp4b3Nsalc1dnlwMXpEZFl3THU5ZnhRTlBmVWZBRjRFNkw1RE1MQWRxSGpy?=
 =?utf-8?B?ZzcyOFlhRHJQbFpiNTNWNTduWU5RRllXOGY2aTRZNzNlQ1dRZzZTUEYxYnNQ?=
 =?utf-8?B?SE9LZDNpMDFpK0JQSXBib3ZUZkcxLzZvUUVoWEpEUWpmYXhEK0ZXdXVLZlc0?=
 =?utf-8?B?b09RNUJBbmc5SkRoSHJJWjhNZEtadzdtbjFnNnVmZ3Z3b04yOUhpWW9GQXEy?=
 =?utf-8?B?cnI4NmE1WGR3SHZCNDVWTVZLcHY0amxjTmpvR3l2RjVEbUZtU0Z5cGlNbUxj?=
 =?utf-8?B?WiswQkZDT0Ixbm5TdnJHajdibnJQNFA3NCtoY25Sa1NFRE1wZUZtOWdFNlFV?=
 =?utf-8?B?NWgrVGZTTTl3WW0rUVYwRVBOVUpOSENBaTZNUlhZQXVpOUZTTFNLYm1UamUw?=
 =?utf-8?B?ZTQvNEVPVHIxZVN5M3U0VzNhK05WV3NwWmk3OEhmaGlDWmw4SERieHFGVUpq?=
 =?utf-8?B?NDBDZHBTeUNzcjI0Z3pXSGYrSWIwQkZtU2kxTUIwUURuSmFKY3lyZjNNYURZ?=
 =?utf-8?B?Wit6eVpYa0k1a24vWnVha1c4Vi9GcllpclZZNm54endxcGROL3JmNFU0V0VD?=
 =?utf-8?B?cEt2clQxWjg0RThvRnB5UmZWSE1NcWxUM3lHdDlCcENCRUREeEZ5c0VBbnYx?=
 =?utf-8?B?YmdHUi9qRmRNeXBibHhXRmtiMm5CelNVUy9pYlM1Q0FyZWltbkJCOW5IY3FD?=
 =?utf-8?B?M0JFSTZ2VlR1d0ZFbEVzZFBWK0tMWW9LU0I3djJqR0VtTjNVbGRtUllnOHlD?=
 =?utf-8?B?R3lma0lYdmE5b1JpN0wrRHQ4a1FwRGdNc2pwVnF4cGgreG1taDRPeEtieDBS?=
 =?utf-8?B?b2ZEbi9pc3hkNU9zekt3SVBRdkU4bG1EdStsOGg3ekFKL1UrUFZzZHJxQm9N?=
 =?utf-8?B?c0FUTm5TR0hiMklzSlU5b2hZWFBZR2RpeWVmV3Y2aHkvVXpYVnBNaVpvcXE5?=
 =?utf-8?B?QUd5S0xqVzh2TGNsWExpa3E1L1pTZnhqdkpwTmhCeEhzL0tGK0JzcmxRcEdL?=
 =?utf-8?B?M1AvN2VYaTR3VTlNQ215eFBnWUNiRXlPZDlwVXZEZ081VHNWd1J0UGRROFVl?=
 =?utf-8?B?MkF2ZzVSTXY0dTE3LzFoTDhjS1VTbExheUZaZlY5K0V6bkkwS0ZZbi9ZR1Bi?=
 =?utf-8?B?RmhXR0dnNFgwRUNTM1Z4SlRIbVpMWldoUnVMVlNQenh0aHJvQm15eTk3Q2ZJ?=
 =?utf-8?B?S1N1RmN2YVZBKzR4Yk45TlVsa0YwajAxaWdjNmkveWlGMzFJNVdSMjYyOUNN?=
 =?utf-8?B?N3dJSHc2cVNKUllpOEVYWG1nQkd3PT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a97e24ab-9a90-4bf5-7e8c-08d9a09ca142
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 20:41:23.4758
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lyilXXxYjqE/ENqVw3ypw+FyNW3Vy5rwtj+3RojKoFvYQtOXAIYOAcF3Svk0bw7UB8Jjb6f4kVFlYN2dOWBUGcx22yfA/J2AatTzyqLk9ZQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB3041
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10159 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0
 spamscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 suspectscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111050112
X-Proofpoint-GUID: l31QL-0wViEusr8b3_RGBrjE3WPNWJZO
X-Proofpoint-ORIG-GUID: l31QL-0wViEusr8b3_RGBrjE3WPNWJZO


On 11/4/21 1:59 PM, Dongli Zhang wrote:
> Hi Boris,
>
> On 11/1/21 10:34 AM, Boris Ostrovsky wrote:
>> On 10/27/21 9:25 PM, Dongli Zhang wrote:
>>> The sched_clock() can be used very early since
>>> commit 857baa87b642 ("sched/clock: Enable sched clock early"). In addition,
>>> with commit 38669ba205d1 ("x86/xen/time: Output xen sched_clock time from
>>> 0"), kdump kernel in Xen HVM guest may panic at very early stage when
>>> accessing &__this_cpu_read(xen_vcpu)->time as in below:
>>>
>>> setup_arch()
>>>    -> init_hypervisor_platform()
>>>        -> x86_init.hyper.init_platform = xen_hvm_guest_init()
>>>            -> xen_hvm_init_time_ops()
>>>                -> xen_clocksource_read()
>>>                    -> src = &__this_cpu_read(xen_vcpu)->time;
>>>
>>> This is because Xen HVM supports at most MAX_VIRT_CPUS=32 'vcpu_info'
>>> embedded inside 'shared_info' during early stage until xen_vcpu_setup() is
>>> used to allocate/relocate 'vcpu_info' for boot cpu at arbitrary address.
>>>
>>> However, when Xen HVM guest panic on vcpu >= 32, since
>>> xen_vcpu_info_reset(0) would set per_cpu(xen_vcpu, cpu) = NULL when
>>> vcpu >= 32, xen_clocksource_read() on vcpu >= 32 would panic.
>>>
>>> This patch delays xen_hvm_init_time_ops() to later in
>>> xen_hvm_smp_prepare_boot_cpu() after the 'vcpu_info' for boot vcpu is
>>> registered when the boot vcpu is >= 32.
>>>
>>> Another option is to always delay xen_hvm_init_time_ops() for any vcpus
>>> (including vcpu=0). Since to delay xen_hvm_init_time_ops() may lead to
>>> clock backward issue,
>>
>> This is referring to
>> https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg01516.html I
>> assume?
> No.
>
> So far there are clock forward (e.g., from 0 to 65345) issue and clock backward
> issue (e.g., from 2.432 to 0).
>
> The clock forward issue can be resolved by above link to enforce clock update
> during vcpu info registration. However, so far I am only able to reproduce clock
> forward when "taskset -c 33 echo c > /proc/sysrq-trigger".
>
> That is, I am not able to see any clock forward drift during regular boot (on
> CPU=0), without the fix at hypervisor side.
>
> The clock backward issue is because the native clock source is used if we delay
> the initialization of xen clock source. We will see a backward when the source
> is switched from native to xen.
>
>>
>>>    it is preferred to avoid that for regular boot (The
>>> pv_sched_clock=native_sched_clock() is used at the very beginning until
>>> xen_sched_clock() is registered). That requires to adjust
>>> xen_sched_clock_offset. That's why we only delay xen_hvm_init_time_ops()
>>> for vcpu>=32.
>>
>> We delay only on VCPU>=32 because we want to avoid the clock going backwards due
>> to hypervisor problem pointed to be the link above, not because we need to
>> adjust xen_sched_clock_offset (which we could if we wanted).
> I will add that.
>
> Just to clarify that so far I am not able to reproduce the clock backward issue
> during regular boot (on CPU=0), when the fix is not available at hypervisor side.


FTR, Dongli and I had a chat and he is going to provide another version of the patch where time initialization is deferred for all vcpus.



-boris




From xen-devel-bounces@lists.xenproject.org Fri Nov 05 21:09:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 21:09:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222635.384929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj6SB-0007qT-A1; Fri, 05 Nov 2021 21:08:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222635.384929; Fri, 05 Nov 2021 21:08:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj6SB-0007qM-6V; Fri, 05 Nov 2021 21:08:51 +0000
Received: by outflank-mailman (input) for mailman id 222635;
 Fri, 05 Nov 2021 21:08:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj6SA-0007qG-1W
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 21:08:50 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90b911ab-3e7c-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 22:08:48 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id E902B60ED4;
 Fri,  5 Nov 2021 21:08:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90b911ab-3e7c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636146526;
	bh=UUDcJYMAbHCsWhpJYmjHhiSG+kCF+tLvonpszVnWL5g=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=up7LHqqOaeq5WmIFt1e0s3hIbnaKW7lBwUBHp4eku5ETknWCpUYy2Cx22jwvR6DeK
	 F/LL5zlO/+L5/ckBtAa86bXAcje/QwDdzrSwq9WWThCEmeIJK9B0GUGTB4aX4cf0QZ
	 4KU2u1DLAea70Sys19GHBdjkBDRCRL4/E/wunEX8zbv6Ufx/fgjmyRA3xh77EI89VI
	 HxA08FzdWsUne4zpWwM3V30/Gtbgak3R8O0E+FRRKYEonrC0QSGvPetPLH7FNhqZ0Y
	 8uLKSrZfiU4mtWanAVaRvEJTEGbD1+nkxERwrFMFX9UyDpqmhOHEuuIO7/VYUDPbUV
	 OQYEm+VvswL9g==
Date: Fri, 5 Nov 2021 14:08:45 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Luca Fancellu <luca.fancellu@arm.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Arm EFI boot issue for Dom0 module listed inside subnode of
 chosen
In-Reply-To: <15331d70-9610-be3a-640f-621774d6f093@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111051348150.284830@ubuntu-linux-20-04-desktop>
References: <8A60FA62-2BAA-400B-BB53-AB3E8CCA67F1@arm.com> <alpine.DEB.2.21.2111021625160.18170@sstabellini-ThinkPad-T480s> <f4daf916-06bd-e002-8b74-be6fb45ef257@xen.org> <alpine.DEB.2.22.394.2111031457540.267621@ubuntu-linux-20-04-desktop>
 <15331d70-9610-be3a-640f-621774d6f093@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1571836450-1636146526=:284830"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1571836450-1636146526=:284830
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 5 Nov 2021, Julien Grall wrote:
> Hi Stefano,
> 
> On 03/11/2021 21:57, Stefano Stabellini wrote:
> > On Wed, 3 Nov 2021, Julien Grall wrote:
> > > On 02/11/2021 23:36, Stefano Stabellini wrote:
> > > > On Tue, 2 Nov 2021, Luca Fancellu wrote:
> > > > > Hi all,
> > > > > 
> > > > > We recently discovered that there is a way to list Dom0 modules that
> > > > > is
> > > > > not supported by the EFI boot,
> > > > > It’s happened browsing some Wiki pages like this one:
> > > > > https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/Lager
> > > > > 
> > > > > In that page the Dom0 modules are listed inside a subnode of the
> > > > > /chosen
> > > > > node:
> > > > > 
> > > > > chosen {
> > > > > 
> > > > >       modules {
> > > > >           #address-cells = <1>;
> > > > >           #size-cells = <1>;
> > > > > 
> > > > >           module@0x72000000 {
> > > > >               compatible = "multiboot,kernel", "multiboot,module";
> > > > >               reg = <0x72000000 0x2fd158>;
> > > > >           };
> > > > > 
> > > > >           module@0x74000000 {
> > > > >               compatible = "xen,xsm-policy", "multiboot,module";
> > > > >               reg = <0x74000000 0x2559>;
> > > > >           };
> > > > >       };
> > > > > };
> > > > > 
> > > > > Instead for how it is implemented now in the EFI code and described
> > > > > in:
> > > > > 1)
> > > > > https://xenbits.xen.org/docs/unstable/misc/arm/device-tree/booting.txt
> > > > > 2) https://xenbits.xen.org/docs/unstable/misc/efi.html
> > > > > 
> > > > > Only the following approach is supported, so Dom0 modules must be a
> > > > > direct
> > > > > child of /chosen:
> > > 
> > > Do you mean this is not supported after your changes or this was never
> > > supported? (see more below).
> > > 
> > > > > 
> > > > > chosen {
> > > > >       #address-cells = <1>;
> > > > >       #size-cells = <1>;
> > > > > 
> > > > >       module@0x72000000 {
> > > > >           compatible = "multiboot,kernel", "multiboot,module";
> > > > >           reg = <0x72000000 0x2fd158>;
> > > > >       };
> > > > > 
> > > > >       module@0x74000000 {
> > > > >           compatible = "xen,xsm-policy", "multiboot,module";
> > > > >           reg = <0x74000000 0x2559>;
> > > > >       };
> > > > > };
> > > > > 
> > > > > Is this a problem that needs a fix?
> > > > 
> > > > 
> > > > Let me start by saying that I don't feel strongly either way, so I am
> > > > happy to go with other people's opinion on this one.
> > > > 
> > > > In this kind of situations I usually look at two things:
> > > > - what the specification says
> > > > - what the existing code actually does
> > > > 
> > > > In general, I try to follow the specification unless obviously
> > > > production code relies on something that contradicts the spec, in which
> > > > case I'd say to update the spec.
> > > > 
> > > > In this case, although it is true that "modules" could be nice to have,
> > > > it is missing a compatible string,
> > > 
> > > There are a few nodes in the DT without compatible (e.g. cpus, memory,
> > > chosen,
> > > soc). So I am a bit confused why this is a problem.
> > 
> > They tend to be "exceptions". Node names are usually not meaningful
> > except for few top-level nodes without a compatible string. 
> 
> I think you misundertood my point here. I wasn't necessarily saying that the
> name "modules" was meaningful. Instead, I was pointing out there was various
> nodes without compatible property. I can see how this is useful to group
> nodes.
> 
> In fact, I couldn't find a section in the Device-Tree suggesting that the
> compatible property was mandatory. Do you have one pointer in hand?

I'll answer below to make the conversation easier to follow


> > Cpus, memory
> > and chosen are all top level nodes. I don't know about "soc", that one
> > should probably be compatible = "simple-bus". If you have a pointer to
> > an "soc" node without a compatible I'd be interested in taking a look.
> 
> See above, I wasn't suggesting that the name "soc" is meaningful.
> 
> > No worries if you don't have it handy, I was just curious.
> Nothing in hand sorry. I vaguely recall we had that discussion when
> introducing the partial device-tree a few years ago.
> 
> > > > and it is only rarely used.
> > > 
> > > Hmmm... We have quite a few examples on the wiki that create 'module'
> > > under
> > > 'modules'. In fact, we have provided U-boot script [2] that can be easily
> > > re-used. So I would not call it rare.
> > > 
> > > > 
> > > > For these reasons, I don't think it is a problem that we need to fix.
> > > > Especially considering that the EFI case is the only case not working
> > > > and it was never supported until now.
> > > 
> > > Hmmm... Looking at the implementation of efi_arch_use_config_file() in
> > > 4.12,
> > > we are looking for the compatible "mutiboot,module". So I would say this
> > > is
> > > supported.
> > > 
> > > > If we want to add support for "modules", that could be fine, but I think
> > > > we should describe it in arm/device-tree/booting.txt and also add a
> > > > compatible string for it. For 4.16
> > > 
> > > I think the first question we need to resolved is whether this has ever
> > > been
> > > supported in EFI. I think it was and therefore this is technically a
> > > regression.
> > > 
> > > That said, outside of the dom0less case, I don't expect any UEFI users
> > > will
> > > bother to create the nodes manually and instead rely on GRUB to create
> > > them.
> > > So I think breaking it would be OK.
> > > 
> > > I am less convinced about breaking it for non-UEFI case.
> > > 
> > > That said, I think the documentation should be updated either way for
> > > 4.16 (the more if this has been broken as part of recent changes).
> > 
> > It would be good to clarify. If we decide to go with making it clear
> > that "modules" is not supported then from a device tree point of view I
> > think we should say that "multiboot,module" nodes for Dom0 and Xen (xsm)
> > are children of /chosen. I prefer this option because I think that if
> > we wanted to group the dom0 and/or Xen modules together (which could be
> > good) we could come up with something better than "modules", more
> > aligned with dom0less.
> 
> To expand what I wrote above, I viewed "modules" as just a way to group nodes
> rather than a meaningful name.
> 
> In the current implementation in Xen doesn't care of the name. It just looks
> for any node in chosen up to depth 3. So anyone could create a node "bar" to
> group everything together.
 
First let me clarify that the specification is not mandating that the
module nodes are at a specific depth, from that point of view it is OK
to have "intermediate" nodes. The issue is that "modules" is not
described and doesn't have a compatible string, so we don't know how we
should deal with it.

Although in the device tree specification [1] is not written in clear
letters that a compatible string is mandatory, it written that the
compatible string is necessary for two things:

- identify the driver to use for a device
- specify the "Device Bindings" [2]

The device bindings are the "requirements for how specific types and
classes of devices are represented in the devicetree". Basically, it is
what tells us how to represent and what to do with a given node.

Let's say that we want to group together a bunch of device nodes. We use
a bus node like "amba" to do it. If we don't specify compatible =
"simple-bus" we don't know how to map the addresses of the children
nodes into the parent address space, so the device nodes under "amba"
become actually unusable.

Chosen is for configurations, not for the description of devices.
However, similar rules apply: if we encounter a "modules" node, what are
we going to do with it? Is it OK to proceed and parse the children nodes
as normal? We don't know for sure. Imagine that instead of "modules" one
calls it "disabled" instead. What do we do in that case?

In short, we need a description of "modules" to know what to do with it.
To describe "modules", we need a binding. To have a binding, we need a
compatible string.

[1] https://github.com/devicetree-org/devicetree-specification
[2] https://github.com/devicetree-org/devicetree-specification/blob/main/source/chapter4-device-bindings.rst
 

> > Otherwise we could try to add a "modules" node to the description with a
> > compatible string and a comment saying certain legacy versions might not
> > have a compatible string.
> 
> I am not really in favor of introducing a new compatible because it will never
> be used by Xen (or anyone else).
> 
> So if the compatible is mandatory, then I would prefer to deprecate the use in
> the next release (we could add a warning).

That's fine by me
--8323329-1571836450-1636146526=:284830--


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 21:29:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 21:29:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222643.384941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj6ln-0001kW-48; Fri, 05 Nov 2021 21:29:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222643.384941; Fri, 05 Nov 2021 21:29:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj6ln-0001kP-0O; Fri, 05 Nov 2021 21:29:07 +0000
Received: by outflank-mailman (input) for mailman id 222643;
 Fri, 05 Nov 2021 21:29:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0iX8=PY=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mj6ll-0001kJ-Jw
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 21:29:05 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2060f.outbound.protection.outlook.com
 [2a01:111:f400:fe59::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 64f75253-3e7f-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 22:29:03 +0100 (CET)
Received: from DM5PR17CA0072.namprd17.prod.outlook.com (2603:10b6:3:13f::34)
 by DM6PR02MB4986.namprd02.prod.outlook.com (2603:10b6:5:4b::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Fri, 5 Nov
 2021 21:29:00 +0000
Received: from DM3NAM02FT047.eop-nam02.prod.protection.outlook.com
 (2603:10b6:3:13f:cafe::ca) by DM5PR17CA0072.outlook.office365.com
 (2603:10b6:3:13f::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Fri, 5 Nov 2021 21:29:00 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 DM3NAM02FT047.mail.protection.outlook.com (10.13.4.114) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 21:28:59 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Fri, 5 Nov 2021 14:28:58 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Fri, 5 Nov 2021 14:28:58 -0700
Received: from [172.19.2.115] (port=34664 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mj6le-0002Oi-PS; Fri, 05 Nov 2021 14:28:58 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64f75253-3e7f-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CffpEYB2HwcKwPU5gxjC0ovRmniESjZAlCAZjOVga5PJG1IJHpLVsgqNVwBPeUfxzTjcxOTTm6ew/cTPYvHPq6amgn/KIsfYaeoY62P15Q+n4uiHvfmwOs/LIEJyCzjNmeEDpPOfz81ajXjEA7MQxIH0IRqigy55RiYiNGqzLI6Xk7jGz1ltzmhG4tDEdOcc9Y5/PEE4RwpcoxxTUA0meRA27RY/IU+K2VJUjfe5Yz4ob9fGUlkfvjFAfn9oNgIowTMgjVp6YFKCpfZRYYCe2RXtHrEl3zgu44FsqJcwkFnqq9lLOjGkKHmkXz6xFKhRbIfWdEO4w2c5q8STxDPudA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wmv+ZUqIQF1tS8mQC6KO4qH5l36Q+7PnjhOjjJJ/AJs=;
 b=YXcVSC1pT9YnQJx+lh72xEwNJf2jxSZFcz2nJFgWmAGgTSe0JS2NH/ai5vE25sEsDPl8a/fiopIsFYHRBVOPE3lokyL8SOgwwQ1EHbWPB+dtl9xDkgLPJr9PEVotpZVMSHnencjTwV9o2qOf1Mb4NcwlC2C1Nf1lOb+4lnkSzHdpCl5GejgQz/Eu4vXRVYLSbV467wMGLXCR/vqXEZTbkPIiUdWd431SATUWHJXV7PcnCOClRXmwtJ8d6nIRF6RaH+GSpFCDnkWp9Bs4R7EXwKksAMcwjwIP5z76S8JIHpzZUIaWZfKhW7AqVvnoxK6UP6g35B1Do+9DBbj+dKRBdw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wmv+ZUqIQF1tS8mQC6KO4qH5l36Q+7PnjhOjjJJ/AJs=;
 b=K/gN0aqAC4ZdYnLavi09P62I0O8TL7tQlnIeyj2iA741NTvduDG0ooYCY+klpXyUeqqD8WrObaUMwLhr20u1KlDHAWbsXpmMuZfcb2Uh6G+UNqw8XzEr8BIGdXsJl6leJhhvmaGkvGHRcZWQusg/vC7tRVvbwwT4indpGkntDlk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][PATCH v3 0/1] Update libfdt to v1.6.1
Date: Fri, 5 Nov 2021 14:28:38 -0700
Message-ID: <1636147719-80482-1-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a5477e51-9042-4f5f-d159-08d9a0a347e7
X-MS-TrafficTypeDiagnostic: DM6PR02MB4986:
X-Microsoft-Antispam-PRVS:
	<DM6PR02MB498643512C13E490F0E7A3B2BC8E9@DM6PR02MB4986.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CHLOOliTOyktOwdmMU7/i17bXequvM/hEH/rWuIVM4Tk8gUbFioibiTQZPIHAQpDp2b1UMsXWq6XAN+jEBV65YiBtYUOGIxbLgeIFg9Oixpz2TNtQGRQRT6aF0zbuS08UTY4HvKOCAQ2EcNDA0mWX8OgCi89eooii5qvI5sNZcA/3dCihc+xWEhybtmqb+crzI6Y+EKburqOzrbEMnadbRMisgUZCPwj/81A7DCDMF1/1H8iGOBJxos+Zrk3oZGkt2hOwPafS+eA9zA2WyKxag/i+qCMFcpBeX7yg9fGA1UncHTPIuIMn1w/IJ7pLYJ0g0aW/HWiBbGzsOFXaHSuGdgNkeWxtjyuFqHLXYApiK+9TU/W7zu7i+XNVQPWUTM4oAiyxHRg7y/hovt2SSodwAC8sfy1qqe9SIXDnOBkRJFUZKY97Kemrm6DPEXZI68uR/EEFll8bLUkh8Vl11J6puwntK21fRait5M6/0mXdGwImubYqkfV+x98D4QTw6cGy9H3Fo0VRhEcTfeI1vLMV8XVB7Ve9K8mCyKJW97Czxzq/BSpz30jIXzX8aY/jqXu2Sc6dKiz0MMQfl6nzAxKZoWGl2L2FKUJvuKfVVksD0+M/NTAIdfqTx3sKUven+FjSeLskqw/yOSMXsMYvrU34gQzWBoRbKzkFHai3zooUVx+Iib0TIBtDPNh3bE9aKJf8y79qG32NsXM4E74XTSlusBCcCWxN+lblYFQndj9O88uZ/lDJnEbQMzs3LLm/zOUCRZZrvw5RyjWSZMstAQiQUEaJnD0Mlb5/R6Z+QWqCpHDqlkdo6WZXVevkdYyQt/B
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(508600001)(2906002)(316002)(9786002)(36906005)(54906003)(336012)(15650500001)(6666004)(186003)(36756003)(426003)(2616005)(5660300002)(70206006)(70586007)(107886003)(26005)(36860700001)(6916009)(4326008)(82310400003)(7696005)(8936002)(356005)(8676002)(47076005)(83380400001)(7636003)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 21:28:59.4874
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a5477e51-9042-4f5f-d159-08d9a0a347e7
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT047.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB4986

This update is done to support device tree overlays functionality. This is taken
from David Gibson's DTC git: github.com/dgibson/dtc.

Change log:
v2 -> v3:
    Include version.lds changes.

v1 -> v2:
    Correct the compilation issue due to incorrect lib.h path.

Regards,
Vikram

Vikram Garhwal (1):
  Update libfdt to v1.6.1

 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 ++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/common/libfdt/version.lds       |  24 +-
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
 xen/include/xen/libfdt/libfdt_env.h | 100 +++-
 16 files changed, 3048 insertions(+), 786 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 21:29:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 21:29:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222644.384951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj6lx-00023a-DP; Fri, 05 Nov 2021 21:29:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222644.384951; Fri, 05 Nov 2021 21:29:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj6lx-00023T-9l; Fri, 05 Nov 2021 21:29:17 +0000
Received: by outflank-mailman (input) for mailman id 222644;
 Fri, 05 Nov 2021 21:29:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0iX8=PY=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mj6lv-0001kJ-Vh
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 21:29:16 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20620.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69a7d0d4-3e7f-11ec-9787-a32c541c8605;
 Fri, 05 Nov 2021 22:29:12 +0100 (CET)
Received: from DM5PR17CA0049.namprd17.prod.outlook.com (2603:10b6:3:13f::11)
 by SN6PR02MB5040.namprd02.prod.outlook.com (2603:10b6:805:73::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Fri, 5 Nov
 2021 21:29:04 +0000
Received: from DM3NAM02FT017.eop-nam02.prod.protection.outlook.com
 (2603:10b6:3:13f:cafe::a9) by DM5PR17CA0049.outlook.office365.com
 (2603:10b6:3:13f::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Fri, 5 Nov 2021 21:29:03 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 DM3NAM02FT017.mail.protection.outlook.com (10.13.5.6) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 21:29:03 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Fri, 5 Nov 2021 14:29:02 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Fri, 5 Nov 2021 14:29:02 -0700
Received: from [172.19.2.115] (port=34664 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mj6li-0002Oi-LW; Fri, 05 Nov 2021 14:29:02 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69a7d0d4-3e7f-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XrMzsd8aX9oL//u5tlC2/Ky/93qD1Xro4faPm3Z/B9pOhabrn/g5Wy5+FzMTCWi8wz1XFPKL1OO0V0A/q/+eMec6rVh7hVBNgx02YRnN7/tnJCEnRXSv57FK+sIxicgSbgEYLm8x+koAibgeCafgzOXhM/kZhvgbRcRxJRN+/MBPsUPY7HzilXCEfr2JUbgxqp17zj7fdNMOhgWUySvOJTsTzbqc4Zk/AgsQ5xkWbSk+68/Dj0m40u/ZV/j1M3X3sH5Wh8Cw1acHchjDXn8XTi/1z4PINw43/o0ki3F9ThhcyqYsFLycGQYUD5eXwuyip+LBv5s/Mu8rcA8bcXpULw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zQoe1nJfPgVhMiEpYQX0q8CMk3/f7UdbedRr5dNMuRk=;
 b=aJMvwGIRykUQgjeaXaCbVmLbwmkatFtvFimymZPEx2RdA+yM6h77NOkITWPRju/RCIE/7hH6yNEejba4MYJSAnyo4VlWnMhmCZHk03pJBKl1YEwpoTyGz8WMKjwdrDy2kNvHgt4GCj/92FqvGIOIoMM6maWNMuORMp/FaIJEMUIPb45rb72oxFVKPIHOl7Hr+ReqZyFrTLk8LT74JavwDxSVjwoKbnxjFtqYhCXDsBLdWfvA05I89Bod5cwnLlpy4sh2nHKnGl549WrXfetaJXILTpOIteTR7cbMmC5nDbt1IGhFLSodCtrD45Bw+Smn5VKMqtFOZkwc30NRHKm7GQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zQoe1nJfPgVhMiEpYQX0q8CMk3/f7UdbedRr5dNMuRk=;
 b=PMvWJjh/adgFo5AwMnqEsEroubtiLFZz3cR0FyfvBkD4JsPo1ViEsocJwbHid/Qe1gPXjHXpuzVwErHmDRAVnn4i7jLguzdQp2VlYIU9QyxVOxyAK9px2YoADHszAaUfQUVf5HliTFeB27foegc6dJBYWGJPMarzgIY+90OeYzo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][PATCH v3 1/1] Update libfdt to v1.6.1
Date: Fri, 5 Nov 2021 14:28:39 -0700
Message-ID: <1636147719-80482-2-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636147719-80482-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636147719-80482-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 70b154e7-4a53-4b75-ce10-08d9a0a34a4d
X-MS-TrafficTypeDiagnostic: SN6PR02MB5040:
X-Microsoft-Antispam-PRVS:
	<SN6PR02MB50409166DEB170F5D3B8AE6DBC8E9@SN6PR02MB5040.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:2803;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	EuwxEdr26FU8h0vDUKWOL8fAyycOnkJNeU6A6yFIf7KC/SQbHWxFXRbchjW76n6tZwcTZ1gGMEi5ZCO0iQcu38sqybML4oYBahOnzZjD3J5HeoPFxWBibOn6tBJ8Q65YRll9oBO0sJZyZsyrgAFfxl/sbcpJ4Z3W9Pysa7QLbe9MJi845xtn4D6jPqaQrAyUsNj9P3PLog6BXfdz0SBQrmwhUhvJq1lJ64yUuKaemeuzdOUEN9Rpu/YP3eoOhCoqHtJudcdXBLSkAJEe38lyp3EcbpkAB2pqcBRu+jn5fZC5SGnDgTQGZFDFtoEBr14MIUFtUUaYDRv2Rt8us5/YMG9JTSHawhoYApnc4fTpRsvUkDDIdV1d3w704P0auQ9/Au3Y9FvcqAUVuhKTTbON4sQDeKIdG2qwLq0UyCrQgOvEDn2jQD853Gv2veGByRJVKtCFkM/MTXXSrGu0RRspjx1ttd27zuWL6acsvGPEAq/2RqfZPrOF1lD5C5TIP89mzRn1+jqgCdqtz30u7P+6CvUx+Ejrhxk9xQybzuMXm60gbAGP8c8saBIRdjH97XXVC4Lkxj7lhO7jkg+xn/lIzjzfCO+FCWvJrbxFQUI5JvCFK593ajydcLRXLGqD7O9kT6QqqBQK2fqCXJkhvLsdPy/Tpk5DvNhhkyjbZjxy2Z6upx6dpn0Zvv1muVE264SDkG57dXeemqz+bjewAc4EVGi0jQ+C3AyxQSFLJlUrQFJGtuKbTjcrRIe7pJnHCM7zwUt30z9rQqKVeFEFmovBevJYmtV5V7/ONhKOubA3dGhKeyhBVqZf+v6mpLXzh3eK0hESL9dOrSxNyObQo4uHCNPoticqdg1RpQlIa479tHQ=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(8676002)(26005)(36860700001)(5660300002)(83380400001)(54906003)(82310400003)(30864003)(36756003)(2906002)(8936002)(186003)(356005)(426003)(7696005)(6916009)(9786002)(70586007)(336012)(70206006)(2616005)(7636003)(6666004)(15650500001)(47076005)(36906005)(4326008)(316002)(107886003)(508600001)(102446001)(46800400005)(2004002)(559001)(579004);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 21:29:03.5122
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 70b154e7-4a53-4b75-ce10-08d9a0a34a4d
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT017.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR02MB5040

Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
This update is done to support device tree overlays.

A few minor changes are done to make it compatible with Xen:
    fdt_overlay.c: overlay_fixup_phandle()

        Replace strtoul() with simple_strtoul() as strtoul() is not available in
        Xen lib and included lib.h.

        Change char *endptr to const char *endptr.

    libfdt_env.h:
        Changed path for config.h and stdbool.h. Remaining Xen changes to
        libfdt_env.h carried over from existing libfdt (v1.4.0)

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 ++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/common/libfdt/version.lds       |  24 +-
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
 xen/include/xen/libfdt/libfdt_env.h | 100 +++-
 16 files changed, 3048 insertions(+), 786 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

diff --git a/xen/common/libfdt/Makefile.libfdt b/xen/common/libfdt/Makefile.libfdt
index 91126c0..b6d8fc0 100644
--- a/xen/common/libfdt/Makefile.libfdt
+++ b/xen/common/libfdt/Makefile.libfdt
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 # Makefile.libfdt
 #
 # This is not a complete Makefile of itself.  Instead, it is designed to
@@ -6,5 +7,12 @@
 LIBFDT_soname = libfdt.$(SHAREDLIB_EXT).1
 LIBFDT_INCLUDES = fdt.h libfdt.h libfdt_env.h
 LIBFDT_VERSION = version.lds
-LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c
+LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c \
+	fdt_addresses.c fdt_overlay.c fdt_check.c
 LIBFDT_OBJS = $(LIBFDT_SRCS:%.c=%.o)
+LIBFDT_LIB = libfdt-$(DTC_VERSION).$(SHAREDLIB_EXT)
+
+libfdt_clean:
+	@$(VECHO) CLEAN "(libfdt)"
+	rm -f $(STD_CLEANFILES:%=$(LIBFDT_dir)/%)
+	rm -f $(LIBFDT_dir)/$(LIBFDT_soname)
diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
index bbc7717..9fe7cf4 100644
--- a/xen/common/libfdt/fdt.c
+++ b/xen/common/libfdt/fdt.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,40 +10,156 @@
 
 #include "libfdt_internal.h"
 
-int fdt_check_header(const void *fdt)
+/*
+ * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
+ * that the given buffer contains what appears to be a flattened
+ * device tree with sane information in its header.
+ */
+int32_t fdt_ro_probe_(const void *fdt)
 {
+	uint32_t totalsize = fdt_totalsize(fdt);
+
+	if (can_assume(VALID_DTB))
+		return totalsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
 	if (fdt_magic(fdt) == FDT_MAGIC) {
 		/* Complete tree */
-		if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
-		if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
+		if (!can_assume(LATEST)) {
+			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+			if (fdt_last_comp_version(fdt) >
+					FDT_LAST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+		}
 	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
 		/* Unfinished sequential-write blob */
-		if (fdt_size_dt_struct(fdt) == 0)
+		if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) == 0)
 			return -FDT_ERR_BADSTATE;
 	} else {
 		return -FDT_ERR_BADMAGIC;
 	}
 
+	if (totalsize < INT32_MAX)
+		return totalsize;
+	else
+		return -FDT_ERR_TRUNCATED;
+}
+
+static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off)
+{
+	return (off >= hdrsize) && (off <= totalsize);
+}
+
+static int check_block_(uint32_t hdrsize, uint32_t totalsize,
+			uint32_t base, uint32_t size)
+{
+	if (!check_off_(hdrsize, totalsize, base))
+		return 0; /* block start out of bounds */
+	if ((base + size) < base)
+		return 0; /* overflow */
+	if (!check_off_(hdrsize, totalsize, base + size))
+		return 0; /* block end out of bounds */
+	return 1;
+}
+
+size_t fdt_header_size_(uint32_t version)
+{
+	if (version <= 1)
+		return FDT_V1_SIZE;
+	else if (version <= 2)
+		return FDT_V2_SIZE;
+	else if (version <= 3)
+		return FDT_V3_SIZE;
+	else if (version <= 16)
+		return FDT_V16_SIZE;
+	else
+		return FDT_V17_SIZE;
+}
+
+size_t fdt_header_size(const void *fdt)
+{
+	return can_assume(LATEST) ? FDT_V17_SIZE :
+		fdt_header_size_(fdt_version(fdt));
+}
+
+int fdt_check_header(const void *fdt)
+{
+	size_t hdrsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
+	if (fdt_magic(fdt) != FDT_MAGIC)
+		return -FDT_ERR_BADMAGIC;
+	if (!can_assume(LATEST)) {
+		if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+		    || (fdt_last_comp_version(fdt) >
+			FDT_LAST_SUPPORTED_VERSION))
+			return -FDT_ERR_BADVERSION;
+		if (fdt_version(fdt) < fdt_last_comp_version(fdt))
+			return -FDT_ERR_BADVERSION;
+	}
+	hdrsize = fdt_header_size(fdt);
+	if (!can_assume(VALID_DTB)) {
+
+		if ((fdt_totalsize(fdt) < hdrsize)
+		    || (fdt_totalsize(fdt) > INT_MAX))
+			return -FDT_ERR_TRUNCATED;
+
+		/* Bounds check memrsv block */
+		if (!check_off_(hdrsize, fdt_totalsize(fdt),
+				fdt_off_mem_rsvmap(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
+	if (!can_assume(VALID_DTB)) {
+		/* Bounds check structure block */
+		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
+			if (!check_off_(hdrsize, fdt_totalsize(fdt),
+					fdt_off_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		} else {
+			if (!check_block_(hdrsize, fdt_totalsize(fdt),
+					  fdt_off_dt_struct(fdt),
+					  fdt_size_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		}
+
+		/* Bounds check strings block */
+		if (!check_block_(hdrsize, fdt_totalsize(fdt),
+				  fdt_off_dt_strings(fdt),
+				  fdt_size_dt_strings(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
 	return 0;
 }
 
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
 {
-	unsigned absoffset = offset + fdt_off_dt_struct(fdt);
+	unsigned int uoffset = offset;
+	unsigned int absoffset = offset + fdt_off_dt_struct(fdt);
 
-	if ((absoffset < offset)
-	    || ((absoffset + len) < absoffset)
-	    || (absoffset + len) > fdt_totalsize(fdt))
+	if (offset < 0)
 		return NULL;
 
-	if (fdt_version(fdt) >= 0x11)
-		if (((offset + len) < offset)
+	if (!can_assume(VALID_INPUT))
+		if ((absoffset < uoffset)
+		    || ((absoffset + len) < absoffset)
+		    || (absoffset + len) > fdt_totalsize(fdt))
+			return NULL;
+
+	if (can_assume(LATEST) || fdt_version(fdt) >= 0x11)
+		if (((uoffset + len) < uoffset)
 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
 			return NULL;
 
-	return _fdt_offset_ptr(fdt, offset);
+	return fdt_offset_ptr_(fdt, offset);
 }
 
 uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
@@ -98,7 +171,7 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 
 	*nextoffset = -FDT_ERR_TRUNCATED;
 	tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
-	if (!tagp)
+	if (!can_assume(VALID_DTB) && !tagp)
 		return FDT_END; /* premature end */
 	tag = fdt32_to_cpu(*tagp);
 	offset += FDT_TAGSIZE;
@@ -110,17 +183,21 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 		do {
 			p = fdt_offset_ptr(fdt, offset++, 1);
 		} while (p && (*p != '\0'));
-		if (!p)
+		if (!can_assume(VALID_DTB) && !p)
 			return FDT_END; /* premature end */
 		break;
 
 	case FDT_PROP:
 		lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp));
-		if (!lenp)
+		if (!can_assume(VALID_DTB) && !lenp)
 			return FDT_END; /* premature end */
 		/* skip-name offset, length and value */
 		offset += sizeof(struct fdt_property) - FDT_TAGSIZE
 			+ fdt32_to_cpu(*lenp);
+		if (!can_assume(LATEST) &&
+		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >= 8 &&
+		    ((offset - fdt32_to_cpu(*lenp)) % 8) != 0)
+			offset += 4;
 		break;
 
 	case FDT_END:
@@ -139,19 +216,25 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 	return tag;
 }
 
-int _fdt_check_node_offset(const void *fdt, int offset)
+int fdt_check_node_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
 }
 
-int _fdt_check_prop_offset(const void *fdt, int offset)
+int fdt_check_prop_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
@@ -163,7 +246,7 @@ int fdt_next_node(const void *fdt, int offset, int *depth)
 	uint32_t tag;
 
 	if (offset >= 0)
-		if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0)
+		if ((nextoffset = fdt_check_node_offset_(fdt, offset)) < 0)
 			return nextoffset;
 
 	do {
@@ -225,7 +308,7 @@ int fdt_next_subnode(const void *fdt, int offset)
 	return offset;
 }
 
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s)
 {
 	int len = strlen(s) + 1;
 	const char *last = strtab + tabsize - len;
@@ -239,9 +322,12 @@ const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
 
 int fdt_move(const void *fdt, void *buf, int bufsize)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (!can_assume(VALID_INPUT) && bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_totalsize(fdt) > bufsize)
+	if (fdt_totalsize(fdt) > (unsigned int)bufsize)
 		return -FDT_ERR_NOSPACE;
 
 	memmove(buf, fdt, fdt_totalsize(fdt));
diff --git a/xen/common/libfdt/fdt_addresses.c b/xen/common/libfdt/fdt_addresses.c
new file mode 100644
index 0000000..9a82cd0
--- /dev/null
+++ b/xen/common/libfdt/fdt_addresses.c
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
+ * Copyright (C) 2018 embedded brains GmbH
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
+{
+	const fdt32_t *c;
+	uint32_t val;
+	int len;
+
+	c = fdt_getprop(fdt, nodeoffset, name, &len);
+	if (!c)
+		return len;
+
+	if (len != sizeof(*c))
+		return -FDT_ERR_BADNCELLS;
+
+	val = fdt32_to_cpu(*c);
+	if (val > FDT_MAX_NCELLS)
+		return -FDT_ERR_BADNCELLS;
+
+	return (int)val;
+}
+
+int fdt_address_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#address-cells");
+	if (val == 0)
+		return -FDT_ERR_BADNCELLS;
+	if (val == -FDT_ERR_NOTFOUND)
+		return 2;
+	return val;
+}
+
+int fdt_size_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#size-cells");
+	if (val == -FDT_ERR_NOTFOUND)
+		return 1;
+	return val;
+}
+
+/* This function assumes that [address|size]_cells is 1 or 2 */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size)
+{
+	int addr_cells, size_cells, ret;
+	uint8_t data[sizeof(fdt64_t) * 2], *prop;
+
+	ret = fdt_address_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	addr_cells = ret;
+
+	ret = fdt_size_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	size_cells = ret;
+
+	/* check validity of address */
+	prop = data;
+	if (addr_cells == 1) {
+		if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)addr);
+	} else if (addr_cells == 2) {
+		fdt64_st(prop, addr);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	/* check validity of size */
+	prop += addr_cells * sizeof(fdt32_t);
+	if (size_cells == 1) {
+		if (size > UINT32_MAX)
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)size);
+	} else if (size_cells == 2) {
+		fdt64_st(prop, size);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	return fdt_appendprop(fdt, nodeoffset, name, data,
+			      (addr_cells + size_cells) * sizeof(fdt32_t));
+}
diff --git a/xen/common/libfdt/fdt_check.c b/xen/common/libfdt/fdt_check.c
new file mode 100644
index 0000000..fa410a8
--- /dev/null
+++ b/xen/common/libfdt/fdt_check.c
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+int fdt_check_full(const void *fdt, size_t bufsize)
+{
+	int err;
+	int num_memrsv;
+	int offset, nextoffset = 0;
+	uint32_t tag;
+	unsigned int depth = 0;
+	const void *prop;
+	const char *propname;
+	bool expect_end = false;
+
+	if (bufsize < FDT_V1_SIZE)
+		return -FDT_ERR_TRUNCATED;
+	if (bufsize < fdt_header_size(fdt))
+		return -FDT_ERR_TRUNCATED;
+	err = fdt_check_header(fdt);
+	if (err != 0)
+		return err;
+	if (bufsize < fdt_totalsize(fdt))
+		return -FDT_ERR_TRUNCATED;
+
+	num_memrsv = fdt_num_mem_rsv(fdt);
+	if (num_memrsv < 0)
+		return num_memrsv;
+
+	while (1) {
+		offset = nextoffset;
+		tag = fdt_next_tag(fdt, offset, &nextoffset);
+
+		if (nextoffset < 0)
+			return nextoffset;
+
+		/* If we see two root nodes, something is wrong */
+		if (expect_end && tag != FDT_END)
+			return -FDT_ERR_BADSTRUCTURE;
+
+		switch (tag) {
+		case FDT_NOP:
+			break;
+
+		case FDT_END:
+			if (depth != 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			return 0;
+
+		case FDT_BEGIN_NODE:
+			depth++;
+			if (depth > INT_MAX)
+				return -FDT_ERR_BADSTRUCTURE;
+
+			/* The root node must have an empty name */
+			if (depth == 1) {
+				const char *name;
+				int len;
+
+				name = fdt_get_name(fdt, offset, &len);
+				if (*name || len)
+					return -FDT_ERR_BADSTRUCTURE;
+			}
+			break;
+
+		case FDT_END_NODE:
+			if (depth == 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			depth--;
+			if (depth == 0)
+				expect_end = true;
+			break;
+
+		case FDT_PROP:
+			prop = fdt_getprop_by_offset(fdt, offset, &propname,
+						     &err);
+			if (!prop)
+				return err;
+			break;
+
+		default:
+			return -FDT_ERR_INTERNAL;
+		}
+	}
+}
diff --git a/xen/common/libfdt/fdt_empty_tree.c b/xen/common/libfdt/fdt_empty_tree.c
index d505611..49d54d4 100644
--- a/xen/common/libfdt/fdt_empty_tree.c
+++ b/xen/common/libfdt/fdt_empty_tree.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2012 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -79,4 +36,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
 
 	return fdt_open_into(buf, buf, bufsize);
 }
-
diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
new file mode 100644
index 0000000..7b95e2b
--- /dev/null
+++ b/xen/common/libfdt/fdt_overlay.c
@@ -0,0 +1,884 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2016 Free Electrons
+ * Copyright (C) 2016 NextThing Co.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+#include <xen/lib.h>
+
+#include "libfdt_internal.h"
+
+/**
+ * overlay_get_target_phandle - retrieves the target phandle of a fragment
+ * @fdto: pointer to the device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ *
+ * overlay_get_target_phandle() retrieves the target phandle of an
+ * overlay fragment when that fragment uses a phandle (target
+ * property) instead of a path (target-path property).
+ *
+ * returns:
+ *      the phandle pointed by the target property
+ *      0, if the phandle was not found
+ *	-1, if the phandle was malformed
+ */
+static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
+{
+	const fdt32_t *val;
+	int len;
+
+	val = fdt_getprop(fdto, fragment, "target", &len);
+	if (!val)
+		return 0;
+
+	if ((len != sizeof(*val)) || (fdt32_to_cpu(*val) == (uint32_t)-1))
+		return (uint32_t)-1;
+
+	return fdt32_to_cpu(*val);
+}
+
+/**
+ * overlay_get_target - retrieves the offset of a fragment's target
+ * @fdt: Base device tree blob
+ * @fdto: Device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ * @pathp: pointer which receives the path of the target (or NULL)
+ *
+ * overlay_get_target() retrieves the target offset in the base
+ * device tree of a fragment, no matter how the actual targeting is
+ * done (through a phandle or a path)
+ *
+ * returns:
+ *      the targeted node offset in the base device tree
+ *      Negative error code on error
+ */
+static int overlay_get_target(const void *fdt, const void *fdto,
+			      int fragment, char const **pathp)
+{
+	uint32_t phandle;
+	const char *path = NULL;
+	int path_len = 0, ret;
+
+	/* Try first to do a phandle based lookup */
+	phandle = overlay_get_target_phandle(fdto, fragment);
+	if (phandle == (uint32_t)-1)
+		return -FDT_ERR_BADPHANDLE;
+
+	/* no phandle, try path */
+	if (!phandle) {
+		/* And then a path based lookup */
+		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
+		if (path)
+			ret = fdt_path_offset(fdt, path);
+		else
+			ret = path_len;
+	} else
+		ret = fdt_node_offset_by_phandle(fdt, phandle);
+
+	/*
+	* If we haven't found either a target or a
+	* target-path property in a node that contains a
+	* __overlay__ subnode (we wouldn't be called
+	* otherwise), consider it a improperly written
+	* overlay
+	*/
+	if (ret < 0 && path_len == -FDT_ERR_NOTFOUND)
+		ret = -FDT_ERR_BADOVERLAY;
+
+	/* return on error */
+	if (ret < 0)
+		return ret;
+
+	/* return pointer to path (if available) */
+	if (pathp)
+		*pathp = path ? path : NULL;
+
+	return ret;
+}
+
+/**
+ * overlay_phandle_add_offset - Increases a phandle by an offset
+ * @fdt: Base device tree blob
+ * @node: Device tree overlay blob
+ * @name: Name of the property to modify (phandle or linux,phandle)
+ * @delta: offset to apply
+ *
+ * overlay_phandle_add_offset() increments a node phandle by a given
+ * offset.
+ *
+ * returns:
+ *      0 on success.
+ *      Negative error code on error
+ */
+static int overlay_phandle_add_offset(void *fdt, int node,
+				      const char *name, uint32_t delta)
+{
+	const fdt32_t *val;
+	uint32_t adj_val;
+	int len;
+
+	val = fdt_getprop(fdt, node, name, &len);
+	if (!val)
+		return len;
+
+	if (len != sizeof(*val))
+		return -FDT_ERR_BADPHANDLE;
+
+	adj_val = fdt32_to_cpu(*val);
+	if ((adj_val + delta) < adj_val)
+		return -FDT_ERR_NOPHANDLES;
+
+	adj_val += delta;
+	if (adj_val == (uint32_t)-1)
+		return -FDT_ERR_NOPHANDLES;
+
+	return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
+}
+
+/**
+ * overlay_adjust_node_phandles - Offsets the phandles of a node
+ * @fdto: Device tree overlay blob
+ * @node: Offset of the node we want to adjust
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_node_phandles() adds a constant to all the phandles
+ * of a given node. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_node_phandles(void *fdto, int node,
+					uint32_t delta)
+{
+	int child;
+	int ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	fdt_for_each_subnode(child, fdto, node) {
+		ret = overlay_adjust_node_phandles(fdto, child, delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_adjust_local_phandles - Adjust the phandles of a whole overlay
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_local_phandles() adds a constant to all the
+ * phandles of an overlay. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
+{
+	/*
+	 * Start adjusting the phandles from the overlay root
+	 */
+	return overlay_adjust_node_phandles(fdto, 0, delta);
+}
+
+/**
+ * overlay_update_local_node_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @tree_node: Node offset of the node to operate on
+ * @fixup_node: Node offset of the matching local fixups node
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_nodes_references() update the phandles
+ * pointing to a node within the device tree overlay by adding a
+ * constant delta.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_node_references(void *fdto,
+						int tree_node,
+						int fixup_node,
+						uint32_t delta)
+{
+	int fixup_prop;
+	int fixup_child;
+	int ret;
+
+	fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
+		const fdt32_t *fixup_val;
+		const char *tree_val;
+		const char *name;
+		int fixup_len;
+		int tree_len;
+		int i;
+
+		fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
+						  &name, &fixup_len);
+		if (!fixup_val)
+			return fixup_len;
+
+		if (fixup_len % sizeof(uint32_t))
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len /= sizeof(uint32_t);
+
+		tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
+		if (!tree_val) {
+			if (tree_len == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_BADOVERLAY;
+
+			return tree_len;
+		}
+
+		for (i = 0; i < fixup_len; i++) {
+			fdt32_t adj_val;
+			uint32_t poffset;
+
+			poffset = fdt32_to_cpu(fixup_val[i]);
+
+			/*
+			 * phandles to fixup can be unaligned.
+			 *
+			 * Use a memcpy for the architectures that do
+			 * not support unaligned accesses.
+			 */
+			memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
+
+			adj_val = cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
+
+			ret = fdt_setprop_inplace_namelen_partial(fdto,
+								  tree_node,
+								  name,
+								  strlen(name),
+								  poffset,
+								  &adj_val,
+								  sizeof(adj_val));
+			if (ret == -FDT_ERR_NOSPACE)
+				return -FDT_ERR_BADOVERLAY;
+
+			if (ret)
+				return ret;
+		}
+	}
+
+	fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
+		const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
+							    NULL);
+		int tree_child;
+
+		tree_child = fdt_subnode_offset(fdto, tree_node,
+						fixup_child_name);
+		if (tree_child == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_BADOVERLAY;
+		if (tree_child < 0)
+			return tree_child;
+
+		ret = overlay_update_local_node_references(fdto,
+							   tree_child,
+							   fixup_child,
+							   delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_update_local_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_references() update all the phandles pointing
+ * to a node within the device tree overlay by adding a constant
+ * delta to not conflict with the base overlay.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_references(void *fdto, uint32_t delta)
+{
+	int fixups;
+
+	fixups = fdt_path_offset(fdto, "/__local_fixups__");
+	if (fixups < 0) {
+		/* There's no local phandles to adjust, bail out */
+		if (fixups == -FDT_ERR_NOTFOUND)
+			return 0;
+
+		return fixups;
+	}
+
+	/*
+	 * Update our local references from the root of the tree
+	 */
+	return overlay_update_local_node_references(fdto, 0, fixups,
+						    delta);
+}
+
+/**
+ * overlay_fixup_one_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @path: Path to a node holding a phandle in the overlay
+ * @path_len: number of path characters to consider
+ * @name: Name of the property holding the phandle reference in the overlay
+ * @name_len: number of name characters to consider
+ * @poffset: Offset within the overlay property where the phandle is stored
+ * @label: Label of the node referenced by the phandle
+ *
+ * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
+ * a node in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_one_phandle(void *fdt, void *fdto,
+				     int symbols_off,
+				     const char *path, uint32_t path_len,
+				     const char *name, uint32_t name_len,
+				     int poffset, const char *label)
+{
+	const char *symbol_path;
+	uint32_t phandle;
+	fdt32_t phandle_prop;
+	int symbol_off, fixup_off;
+	int prop_len;
+
+	if (symbols_off < 0)
+		return symbols_off;
+
+	symbol_path = fdt_getprop(fdt, symbols_off, label,
+				  &prop_len);
+	if (!symbol_path)
+		return prop_len;
+
+	symbol_off = fdt_path_offset(fdt, symbol_path);
+	if (symbol_off < 0)
+		return symbol_off;
+
+	phandle = fdt_get_phandle(fdt, symbol_off);
+	if (!phandle)
+		return -FDT_ERR_NOTFOUND;
+
+	fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
+	if (fixup_off == -FDT_ERR_NOTFOUND)
+		return -FDT_ERR_BADOVERLAY;
+	if (fixup_off < 0)
+		return fixup_off;
+
+	phandle_prop = cpu_to_fdt32(phandle);
+	return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
+						   name, name_len, poffset,
+						   &phandle_prop,
+						   sizeof(phandle_prop));
+};
+
+/**
+ * overlay_fixup_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @property: Property offset in the overlay holding the list of fixups
+ *
+ * overlay_fixup_phandle() resolves all the overlay phandles pointed
+ * to in a __fixups__ property, and updates them to match the phandles
+ * in use in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
+				 int property)
+{
+	const char *value;
+	const char *label;
+	int len;
+
+	value = fdt_getprop_by_offset(fdto, property,
+				      &label, &len);
+	if (!value) {
+		if (len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+
+		return len;
+	}
+
+	do {
+		const char *path, *name, *fixup_end;
+		const char *fixup_str = value;
+		uint32_t path_len, name_len;
+		uint32_t fixup_len;
+		char *sep;
+		const char *endptr;
+		int poffset, ret;
+
+		fixup_end = memchr(value, '\0', len);
+		if (!fixup_end)
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len = fixup_end - fixup_str;
+
+		len -= fixup_len + 1;
+		value += fixup_len + 1;
+
+		path = fixup_str;
+		sep = memchr(fixup_str, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		path_len = sep - path;
+		if (path_len == (fixup_len - 1))
+			return -FDT_ERR_BADOVERLAY;
+
+		fixup_len -= path_len + 1;
+		name = sep + 1;
+		sep = memchr(name, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		name_len = sep - name;
+		if (!name_len)
+			return -FDT_ERR_BADOVERLAY;
+
+		poffset = simple_strtoul(sep + 1, &endptr, 10);
+		if ((*endptr != '\0') || (endptr <= (sep + 1)))
+			return -FDT_ERR_BADOVERLAY;
+
+		ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
+						path, path_len, name, name_len,
+						poffset, label);
+		if (ret)
+			return ret;
+	} while (len > 0);
+
+	return 0;
+}
+
+/**
+ * overlay_fixup_phandles - Resolve the overlay phandles to the base
+ *                          device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_fixup_phandles() resolves all the overlay phandles pointing
+ * to nodes in the base device tree.
+ *
+ * This is one of the steps of the device tree overlay application
+ * process, when you want all the phandles in the overlay to point to
+ * the actual base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandles(void *fdt, void *fdto)
+{
+	int fixups_off, symbols_off;
+	int property;
+
+	/* We can have overlays without any fixups */
+	fixups_off = fdt_path_offset(fdto, "/__fixups__");
+	if (fixups_off == -FDT_ERR_NOTFOUND)
+		return 0; /* nothing to do */
+	if (fixups_off < 0)
+		return fixups_off;
+
+	/* And base DTs without symbols */
+	symbols_off = fdt_path_offset(fdt, "/__symbols__");
+	if ((symbols_off < 0 && (symbols_off != -FDT_ERR_NOTFOUND)))
+		return symbols_off;
+
+	fdt_for_each_property_offset(property, fdto, fixups_off) {
+		int ret;
+
+		ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_apply_node - Merges a node into the base device tree
+ * @fdt: Base Device Tree blob
+ * @target: Node offset in the base device tree to apply the fragment to
+ * @fdto: Device tree overlay blob
+ * @node: Node offset in the overlay holding the changes to merge
+ *
+ * overlay_apply_node() merges a node into a target base device tree
+ * node pointed.
+ *
+ * This is part of the final step in the device tree overlay
+ * application process, when all the phandles have been adjusted and
+ * resolved and you just have to merge overlay into the base device
+ * tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_apply_node(void *fdt, int target,
+			      void *fdto, int node)
+{
+	int property;
+	int subnode;
+
+	fdt_for_each_property_offset(property, fdto, node) {
+		const char *name;
+		const void *prop;
+		int prop_len;
+		int ret;
+
+		prop = fdt_getprop_by_offset(fdto, property, &name,
+					     &prop_len);
+		if (prop_len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+		if (prop_len < 0)
+			return prop_len;
+
+		ret = fdt_setprop(fdt, target, name, prop, prop_len);
+		if (ret)
+			return ret;
+	}
+
+	fdt_for_each_subnode(subnode, fdto, node) {
+		const char *name = fdt_get_name(fdto, subnode, NULL);
+		int nnode;
+		int ret;
+
+		nnode = fdt_add_subnode(fdt, target, name);
+		if (nnode == -FDT_ERR_EXISTS) {
+			nnode = fdt_subnode_offset(fdt, target, name);
+			if (nnode == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_INTERNAL;
+		}
+
+		if (nnode < 0)
+			return nnode;
+
+		ret = overlay_apply_node(fdt, nnode, fdto, subnode);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_merge - Merge an overlay into its base device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_merge() merges an overlay into its base device tree.
+ *
+ * This is the next to last step in the device tree overlay application
+ * process, when all the phandles have been adjusted and resolved and
+ * you just have to merge overlay into the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_merge(void *fdt, void *fdto)
+{
+	int fragment;
+
+	fdt_for_each_subnode(fragment, fdto, 0) {
+		int overlay;
+		int target;
+		int ret;
+
+		/*
+		 * Each fragments will have an __overlay__ node. If
+		 * they don't, it's not supposed to be merged
+		 */
+		overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (overlay == -FDT_ERR_NOTFOUND)
+			continue;
+
+		if (overlay < 0)
+			return overlay;
+
+		target = overlay_get_target(fdt, fdto, fragment, NULL);
+		if (target < 0)
+			return target;
+
+		ret = overlay_apply_node(fdt, target, fdto, overlay);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+static int get_path_len(const void *fdt, int nodeoffset)
+{
+	int len = 0, namelen;
+	const char *name;
+
+	FDT_RO_PROBE(fdt);
+
+	for (;;) {
+		name = fdt_get_name(fdt, nodeoffset, &namelen);
+		if (!name)
+			return namelen;
+
+		/* root? we're done */
+		if (namelen == 0)
+			break;
+
+		nodeoffset = fdt_parent_offset(fdt, nodeoffset);
+		if (nodeoffset < 0)
+			return nodeoffset;
+		len += namelen + 1;
+	}
+
+	/* in case of root pretend it's "/" */
+	if (len == 0)
+		len++;
+	return len;
+}
+
+/**
+ * overlay_symbol_update - Update the symbols of base tree after a merge
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_symbol_update() updates the symbols of the base tree with the
+ * symbols of the applied overlay
+ *
+ * This is the last step in the device tree overlay application
+ * process, allowing the reference of overlay symbols by subsequent
+ * overlay operations.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_symbol_update(void *fdt, void *fdto)
+{
+	int root_sym, ov_sym, prop, path_len, fragment, target;
+	int len, frag_name_len, ret, rel_path_len;
+	const char *s, *e;
+	const char *path;
+	const char *name;
+	const char *frag_name;
+	const char *rel_path;
+	const char *target_path;
+	char *buf;
+	void *p;
+
+	ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
+
+	/* if no overlay symbols exist no problem */
+	if (ov_sym < 0)
+		return 0;
+
+	root_sym = fdt_subnode_offset(fdt, 0, "__symbols__");
+
+	/* it no root symbols exist we should create them */
+	if (root_sym == -FDT_ERR_NOTFOUND)
+		root_sym = fdt_add_subnode(fdt, 0, "__symbols__");
+
+	/* any error is fatal now */
+	if (root_sym < 0)
+		return root_sym;
+
+	/* iterate over each overlay symbol */
+	fdt_for_each_property_offset(prop, fdto, ov_sym) {
+		path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
+		if (!path)
+			return path_len;
+
+		/* verify it's a string property (terminated by a single \0) */
+		if (path_len < 1 || memchr(path, '\0', path_len) != &path[path_len - 1])
+			return -FDT_ERR_BADVALUE;
+
+		/* keep end marker to avoid strlen() */
+		e = path + path_len;
+
+		if (*path != '/')
+			return -FDT_ERR_BADVALUE;
+
+		/* get fragment name first */
+		s = strchr(path + 1, '/');
+		if (!s) {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		frag_name = path + 1;
+		frag_name_len = s - path - 1;
+
+		/* verify format; safe since "s" lies in \0 terminated prop */
+		len = sizeof("/__overlay__/") - 1;
+		if ((e - s) > len && (memcmp(s, "/__overlay__/", len) == 0)) {
+			/* /<fragment-name>/__overlay__/<relative-subnode-path> */
+			rel_path = s + len;
+			rel_path_len = e - rel_path - 1;
+		} else if ((e - s) == len
+			   && (memcmp(s, "/__overlay__", len - 1) == 0)) {
+			/* /<fragment-name>/__overlay__ */
+			rel_path = "";
+			rel_path_len = 0;
+		} else {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		/* find the fragment index in which the symbol lies */
+		ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
+					       frag_name_len);
+		/* not found? */
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+		fragment = ret;
+
+		/* an __overlay__ subnode must exist */
+		ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+
+		/* get the target of the fragment */
+		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+		if (ret < 0)
+			return ret;
+		target = ret;
+
+		/* if we have a target path use */
+		if (!target_path) {
+			ret = get_path_len(fdt, target);
+			if (ret < 0)
+				return ret;
+			len = ret;
+		} else {
+			len = strlen(target_path);
+		}
+
+		ret = fdt_setprop_placeholder(fdt, root_sym, name,
+				len + (len > 1) + rel_path_len + 1, &p);
+		if (ret < 0)
+			return ret;
+
+		if (!target_path) {
+			/* again in case setprop_placeholder changed it */
+			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+			if (ret < 0)
+				return ret;
+			target = ret;
+		}
+
+		buf = p;
+		if (len > 1) { /* target is not root */
+			if (!target_path) {
+				ret = fdt_get_path(fdt, target, buf, len + 1);
+				if (ret < 0)
+					return ret;
+			} else
+				memcpy(buf, target_path, len + 1);
+
+		} else
+			len--;
+
+		buf[len] = '/';
+		memcpy(buf + len + 1, rel_path, rel_path_len);
+		buf[len + 1 + rel_path_len] = '\0';
+	}
+
+	return 0;
+}
+
+int fdt_overlay_apply(void *fdt, void *fdto)
+{
+	uint32_t delta;
+	int ret;
+
+	FDT_RO_PROBE(fdt);
+	FDT_RO_PROBE(fdto);
+
+	ret = fdt_find_max_phandle(fdt, &delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_adjust_local_phandles(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_update_local_references(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_fixup_phandles(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_merge(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_symbol_update(fdt, fdto);
+	if (ret)
+		goto err;
+
+	/*
+	 * The overlay has been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	return 0;
+
+err:
+	/*
+	 * The overlay might have been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	/*
+	 * The base device tree might have been damaged, erase its
+	 * magic.
+	 */
+	fdt_set_magic(fdt, ~0);
+
+	return ret;
+}
diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
index 36f9b48..17584da 100644
--- a/xen/common/libfdt/fdt_ro.c
+++ b/xen/common/libfdt/fdt_ro.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,12 +10,13 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_nodename_eq(const void *fdt, int offset,
+static int fdt_nodename_eq_(const void *fdt, int offset,
 			    const char *s, int len)
 {
-	const char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);
+	int olen;
+	const char *p = fdt_get_name(fdt, offset, &olen);
 
-	if (! p)
+	if (!p || olen < len)
 		/* short match */
 		return 0;
 
@@ -73,37 +31,174 @@ static int _fdt_nodename_eq(const void *fdt, int offset,
 		return 0;
 }
 
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
+{
+	int32_t totalsize;
+	uint32_t absoffset;
+	size_t len;
+	int err;
+	const char *s, *n;
+
+	if (can_assume(VALID_INPUT)) {
+		s = (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+
+		if (lenp)
+			*lenp = strlen(s);
+		return s;
+	}
+	totalsize = fdt_ro_probe_(fdt);
+	err = totalsize;
+	if (totalsize < 0)
+		goto fail;
+
+	err = -FDT_ERR_BADOFFSET;
+	absoffset = stroffset + fdt_off_dt_strings(fdt);
+	if (absoffset >= (unsigned)totalsize)
+		goto fail;
+	len = totalsize - absoffset;
+
+	if (fdt_magic(fdt) == FDT_MAGIC) {
+		if (stroffset < 0)
+			goto fail;
+		if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
+			if ((unsigned)stroffset >= fdt_size_dt_strings(fdt))
+				goto fail;
+			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
+				len = fdt_size_dt_strings(fdt) - stroffset;
+		}
+	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
+		unsigned int sw_stroffset = -stroffset;
+
+		if ((stroffset >= 0) ||
+		    (sw_stroffset > fdt_size_dt_strings(fdt)))
+			goto fail;
+		if (sw_stroffset < len)
+			len = sw_stroffset;
+	} else {
+		err = -FDT_ERR_INTERNAL;
+		goto fail;
+	}
+
+	s = (const char *)fdt + absoffset;
+	n = memchr(s, '\0', len);
+	if (!n) {
+		/* missing terminating NULL */
+		err = -FDT_ERR_TRUNCATED;
+		goto fail;
+	}
+
+	if (lenp)
+		*lenp = n - s;
+	return s;
+
+fail:
+	if (lenp)
+		*lenp = err;
+	return NULL;
+}
+
 const char *fdt_string(const void *fdt, int stroffset)
 {
-	return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+	return fdt_get_string(fdt, stroffset, NULL);
 }
 
-static int _fdt_string_eq(const void *fdt, int stroffset,
+static int fdt_string_eq_(const void *fdt, int stroffset,
 			  const char *s, int len)
 {
-	const char *p = fdt_string(fdt, stroffset);
+	int slen;
+	const char *p = fdt_get_string(fdt, stroffset, &slen);
+
+	return p && (slen == len) && (memcmp(p, s, len) == 0);
+}
+
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max = 0;
+	int offset = -1;
+
+	while (true) {
+		uint32_t value;
+
+		offset = fdt_next_node(fdt, offset, NULL);
+		if (offset < 0) {
+			if (offset == -FDT_ERR_NOTFOUND)
+				break;
+
+			return offset;
+		}
+
+		value = fdt_get_phandle(fdt, offset);
+
+		if (value > max)
+			max = value;
+	}
+
+	if (phandle)
+		*phandle = max;
+
+	return 0;
+}
+
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &max);
+	if (err < 0)
+		return err;
+
+	if (max == FDT_MAX_PHANDLE)
+		return -FDT_ERR_NOPHANDLES;
+
+	if (phandle)
+		*phandle = max + 1;
+
+	return 0;
+}
 
-	return (strlen(p) == len) && (memcmp(p, s, len) == 0);
+static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int n)
+{
+	unsigned int offset = n * sizeof(struct fdt_reserve_entry);
+	unsigned int absoffset = fdt_off_mem_rsvmap(fdt) + offset;
+
+	if (!can_assume(VALID_INPUT)) {
+		if (absoffset < fdt_off_mem_rsvmap(fdt))
+			return NULL;
+		if (absoffset > fdt_totalsize(fdt) -
+		    sizeof(struct fdt_reserve_entry))
+			return NULL;
+	}
+	return fdt_mem_rsv_(fdt, n);
 }
 
 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size)
 {
-	FDT_CHECK_HEADER(fdt);
-	*address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address);
-	*size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size);
+	const struct fdt_reserve_entry *re;
+
+	FDT_RO_PROBE(fdt);
+	re = fdt_mem_rsv(fdt, n);
+	if (!can_assume(VALID_INPUT) && !re)
+		return -FDT_ERR_BADOFFSET;
+
+	*address = fdt64_ld_(&re->address);
+	*size = fdt64_ld_(&re->size);
 	return 0;
 }
 
 int fdt_num_mem_rsv(const void *fdt)
 {
-	int i = 0;
+	int i;
+	const struct fdt_reserve_entry *re;
 
-	while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0)
-		i++;
-	return i;
+	for (i = 0; (re = fdt_mem_rsv(fdt, i)) != NULL; i++) {
+		if (fdt64_ld_(&re->size) == 0)
+			return i;
+	}
+	return -FDT_ERR_TRUNCATED;
 }
 
-static int _nextprop(const void *fdt, int offset)
+static int nextprop_(const void *fdt, int offset)
 {
 	uint32_t tag;
 	int nextoffset;
@@ -132,13 +227,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int offset,
 {
 	int depth;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	for (depth = 0;
 	     (offset >= 0) && (depth >= 0);
 	     offset = fdt_next_node(fdt, offset, &depth))
 		if ((depth == 1)
-		    && _fdt_nodename_eq(fdt, offset, name, namelen))
+		    && fdt_nodename_eq_(fdt, offset, name, namelen))
 			return offset;
 
 	if (depth < 0)
@@ -152,17 +247,17 @@ int fdt_subnode_offset(const void *fdt, int parentoffset,
 	return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name));
 }
 
-int fdt_path_offset(const void *fdt, const char *path)
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen)
 {
-	const char *end = path + strlen(path);
+	const char *end = path + namelen;
 	const char *p = path;
 	int offset = 0;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* see if we have an alias */
 	if (*path != '/') {
-		const char *q = strchr(path, '/');
+		const char *q = memchr(path, '/', end - p);
 
 		if (!q)
 			q = end;
@@ -175,14 +270,15 @@ int fdt_path_offset(const void *fdt, const char *path)
 		p = q;
 	}
 
-	while (*p) {
+	while (p < end) {
 		const char *q;
 
-		while (*p == '/')
+		while (*p == '/') {
 			p++;
-		if (! *p)
-			return offset;
-		q = strchr(p, '/');
+			if (p == end)
+				return offset;
+		}
+		q = memchr(p, '/', end - p);
 		if (! q)
 			q = end;
 
@@ -196,19 +292,42 @@ int fdt_path_offset(const void *fdt, const char *path)
 	return offset;
 }
 
+int fdt_path_offset(const void *fdt, const char *path)
+{
+	return fdt_path_offset_namelen(fdt, path, strlen(path));
+}
+
 const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
 {
-	const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset);
+	const struct fdt_node_header *nh = fdt_offset_ptr_(fdt, nodeoffset);
+	const char *nameptr;
 	int err;
 
-	if (((err = fdt_check_header(fdt)) != 0)
-	    || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0))
+	if (((err = fdt_ro_probe_(fdt)) < 0)
+	    || ((err = fdt_check_node_offset_(fdt, nodeoffset)) < 0))
+			goto fail;
+
+	nameptr = nh->name;
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		/*
+		 * For old FDT versions, match the naming conventions of V16:
+		 * give only the leaf name (after all /). The actual tree
+		 * contents are loosely checked.
+		 */
+		const char *leaf;
+		leaf = strrchr(nameptr, '/');
+		if (leaf == NULL) {
+			err = -FDT_ERR_BADSTRUCTURE;
 			goto fail;
+		}
+		nameptr = leaf+1;
+	}
 
 	if (len)
-		*len = strlen(nh->name);
+		*len = strlen(nameptr);
 
-	return nh->name;
+	return nameptr;
 
  fail:
 	if (len)
@@ -220,58 +339,81 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset)
 {
 	int offset;
 
-	if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((offset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
 int fdt_next_property_offset(const void *fdt, int offset)
 {
-	if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0)
+	if ((offset = fdt_check_prop_offset_(fdt, offset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
-const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
-						      int offset,
-						      int *lenp)
+static const struct fdt_property *fdt_get_property_by_offset_(const void *fdt,
+						              int offset,
+						              int *lenp)
 {
 	int err;
 	const struct fdt_property *prop;
 
-	if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) {
+	if (!can_assume(VALID_INPUT) &&
+	    (err = fdt_check_prop_offset_(fdt, offset)) < 0) {
 		if (lenp)
 			*lenp = err;
 		return NULL;
 	}
 
-	prop = _fdt_offset_ptr(fdt, offset);
+	prop = fdt_offset_ptr_(fdt, offset);
 
 	if (lenp)
-		*lenp = fdt32_to_cpu(prop->len);
+		*lenp = fdt32_ld_(&prop->len);
 
 	return prop;
 }
 
-const struct fdt_property *fdt_get_property_namelen(const void *fdt,
-						    int offset,
-						    const char *name,
-						    int namelen, int *lenp)
+const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
+						      int offset,
+						      int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_by_offset_(fdt, offset, lenp);
+}
+
+static const struct fdt_property *fdt_get_property_namelen_(const void *fdt,
+						            int offset,
+						            const char *name,
+						            int namelen,
+							    int *lenp,
+							    int *poffset)
 {
 	for (offset = fdt_first_property_offset(fdt, offset);
 	     (offset >= 0);
 	     (offset = fdt_next_property_offset(fdt, offset))) {
 		const struct fdt_property *prop;
 
-		if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) {
+		prop = fdt_get_property_by_offset_(fdt, offset, lenp);
+		if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
 			offset = -FDT_ERR_INTERNAL;
 			break;
 		}
-		if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff),
-				   name, namelen))
+		if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
+				   name, namelen)) {
+			if (poffset)
+				*poffset = offset;
 			return prop;
+		}
 	}
 
 	if (lenp)
@@ -279,6 +421,25 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 	return NULL;
 }
 
+
+const struct fdt_property *fdt_get_property_namelen(const void *fdt,
+						    int offset,
+						    const char *name,
+						    int namelen, int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
+					 NULL);
+}
+
+
 const struct fdt_property *fdt_get_property(const void *fdt,
 					    int nodeoffset,
 					    const char *name, int *lenp)
@@ -290,12 +451,18 @@ const struct fdt_property *fdt_get_property(const void *fdt,
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp)
 {
+	int poffset;
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp);
-	if (! prop)
+	prop = fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp,
+					 &poffset);
+	if (!prop)
 		return NULL;
 
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -304,11 +471,31 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
 {
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_by_offset(fdt, offset, lenp);
+	prop = fdt_get_property_by_offset_(fdt, offset, lenp);
 	if (!prop)
 		return NULL;
-	if (namep)
-		*namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
+	if (namep) {
+		const char *name;
+		int namelen;
+
+		if (!can_assume(VALID_INPUT)) {
+			name = fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
+					      &namelen);
+			if (!name) {
+				if (lenp)
+					*lenp = namelen;
+				return NULL;
+			}
+			*namep = name;
+		} else {
+			*namep = fdt_string(fdt, fdt32_ld_(&prop->nameoff));
+		}
+	}
+
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -332,7 +519,7 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)
 			return 0;
 	}
 
-	return fdt32_to_cpu(*php);
+	return fdt32_ld_(php);
 }
 
 const char *fdt_get_alias_namelen(const void *fdt,
@@ -358,7 +545,7 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen)
 	int offset, depth, namelen;
 	const char *name;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (buflen < 2)
 		return -FDT_ERR_NOSPACE;
@@ -410,7 +597,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 	int offset, depth;
 	int supernodeoffset = -FDT_ERR_INTERNAL;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (supernodedepth < 0)
 		return -FDT_ERR_NOTFOUND;
@@ -432,10 +619,12 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 		}
 	}
 
-	if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
-		return -FDT_ERR_BADOFFSET;
-	else if (offset == -FDT_ERR_BADOFFSET)
-		return -FDT_ERR_BADSTRUCTURE;
+	if (!can_assume(VALID_INPUT)) {
+		if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
+			return -FDT_ERR_BADOFFSET;
+		else if (offset == -FDT_ERR_BADOFFSET)
+			return -FDT_ERR_BADSTRUCTURE;
+	}
 
 	return offset; /* error from fdt_next_node() */
 }
@@ -447,7 +636,8 @@ int fdt_node_depth(const void *fdt, int nodeoffset)
 
 	err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
 	if (err)
-		return (err < 0) ? err : -FDT_ERR_INTERNAL;
+		return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
+			-FDT_ERR_INTERNAL;
 	return nodedepth;
 }
 
@@ -469,7 +659,7 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 	const void *val;
 	int len;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_getprop(), then if that didn't
@@ -492,10 +682,10 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
 {
 	int offset;
 
-	if ((phandle == 0) || (phandle == -1))
+	if ((phandle == 0) || (phandle == ~0U))
 		return -FDT_ERR_BADPHANDLE;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we
 	 * potentially scan each property of a node in
@@ -530,6 +720,106 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
 	return 0;
 }
 
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
+{
+	const char *list, *end;
+	int length, count = 0;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		list += length;
+		count++;
+	}
+
+	return count;
+}
+
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string)
+{
+	int length, len, idx = 0;
+	const char *list, *end;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	len = strlen(string) + 1;
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		if (length == len && memcmp(list, string, length) == 0)
+			return idx;
+
+		list += length;
+		idx++;
+	}
+
+	return -FDT_ERR_NOTFOUND;
+}
+
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int idx,
+			       int *lenp)
+{
+	const char *list, *end;
+	int length;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list) {
+		if (lenp)
+			*lenp = length;
+
+		return NULL;
+	}
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end) {
+			if (lenp)
+				*lenp = -FDT_ERR_BADVALUE;
+
+			return NULL;
+		}
+
+		if (idx == 0) {
+			if (lenp)
+				*lenp = length - 1;
+
+			return list;
+		}
+
+		list += length;
+		idx--;
+	}
+
+	if (lenp)
+		*lenp = -FDT_ERR_NOTFOUND;
+
+	return NULL;
+}
+
 int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 			      const char *compatible)
 {
@@ -539,10 +829,8 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 	prop = fdt_getprop(fdt, nodeoffset, "compatible", &len);
 	if (!prop)
 		return len;
-	if (fdt_stringlist_contains(prop, len, compatible))
-		return 0;
-	else
-		return 1;
+
+	return !fdt_stringlist_contains(prop, len, compatible);
 }
 
 int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
@@ -550,7 +838,7 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
 {
 	int offset, err;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_node_check_compatible(), then if
diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
index 8b8cd25..3621d36 100644
--- a/xen/common/libfdt/fdt_rw.c
+++ b/xen/common/libfdt/fdt_rw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,8 +10,8 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_blocks_misordered(const void *fdt,
-			      int mem_rsv_size, int struct_size)
+static int fdt_blocks_misordered_(const void *fdt,
+				  int mem_rsv_size, int struct_size)
 {
 	return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8))
 		|| (fdt_off_dt_struct(fdt) <
@@ -65,40 +22,44 @@ static int _fdt_blocks_misordered(const void *fdt,
 		    (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
 }
 
-static int _fdt_rw_check_header(void *fdt)
+static int fdt_rw_probe_(void *fdt)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (can_assume(VALID_DTB))
+		return 0;
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_version(fdt) < 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
 		return -FDT_ERR_BADVERSION;
-	if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
+	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
 				   fdt_size_dt_struct(fdt)))
 		return -FDT_ERR_BADLAYOUT;
-	if (fdt_version(fdt) > 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
 		fdt_set_version(fdt, 17);
 
 	return 0;
 }
 
-#define FDT_RW_CHECK_HEADER(fdt) \
+#define FDT_RW_PROBE(fdt) \
 	{ \
-		int err; \
-		if ((err = _fdt_rw_check_header(fdt)) != 0) \
-			return err; \
+		int err_; \
+		if ((err_ = fdt_rw_probe_(fdt)) != 0) \
+			return err_; \
 	}
 
-static inline unsigned int _fdt_data_size(void *fdt)
+static inline unsigned int fdt_data_size_(void *fdt)
 {
 	return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 }
 
-static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
+static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int newlen)
 {
 	char *p = splicepoint;
-	unsigned int dsize = _fdt_data_size(fdt);
+	unsigned int dsize = fdt_data_size_(fdt);
 	size_t soff = p - (char *)fdt;
 
-	if (oldlen < 0 || soff + oldlen < soff || soff + oldlen > dsize)
+	if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
+		return -FDT_ERR_BADOFFSET;
+	if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
 		return -FDT_ERR_BADOFFSET;
 	if (dsize - oldlen + newlen > fdt_totalsize(fdt))
 		return -FDT_ERR_NOSPACE;
@@ -106,12 +67,12 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
 	return 0;
 }
 
-static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
+static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
 			       int oldn, int newn)
 {
 	int delta = (newn - oldn) * sizeof(*p);
 	int err;
-	err = _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
+	err = fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
 	if (err)
 		return err;
 	fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
@@ -119,13 +80,13 @@ static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
 	return 0;
 }
 
-static int _fdt_splice_struct(void *fdt, void *p,
+static int fdt_splice_struct_(void *fdt, void *p,
 			      int oldlen, int newlen)
 {
 	int delta = newlen - oldlen;
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, oldlen, newlen)))
+	if ((err = fdt_splice_(fdt, p, oldlen, newlen)))
 		return err;
 
 	fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
@@ -133,20 +94,37 @@ static int _fdt_splice_struct(void *fdt, void *p,
 	return 0;
 }
 
-static int _fdt_splice_string(void *fdt, int newlen)
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
+	int newlen = strlen(s) + 1;
+
+	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
+}
+
+static int fdt_splice_string_(void *fdt, int newlen)
 {
 	void *p = (char *)fdt
 		+ fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, 0, newlen)))
+	if ((err = fdt_splice_(fdt, p, 0, newlen)))
 		return err;
 
 	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+/**
+ * fdt_find_add_string_() - Find or allocate a string
+ *
+ * @fdt: pointer to the device tree to check/adjust
+ * @s: string to find/add
+ * @allocated: Set to 0 if the string was found, 1 if not found and so
+ *	allocated. Ignored if can_assume(NO_ROLLBACK)
+ * @return offset of string in the string table (whether found or added)
+ */
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
 {
 	char *strtab = (char *)fdt + fdt_off_dt_strings(fdt);
 	const char *p;
@@ -154,16 +132,22 @@ static int _fdt_find_add_string(void *fdt, const char *s)
 	int len = strlen(s) + 1;
 	int err;
 
-	p = _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s);
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 0;
+
+	p = fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
 	if (p)
 		/* found it */
 		return (p - strtab);
 
 	new = strtab + fdt_size_dt_strings(fdt);
-	err = _fdt_splice_string(fdt, len);
+	err = fdt_splice_string_(fdt, len);
 	if (err)
 		return err;
 
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 1;
+
 	memcpy(new, s, len);
 	return (new - strtab);
 }
@@ -173,10 +157,10 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	re = _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt));
-	err = _fdt_splice_mem_rsv(fdt, re, 0, 1);
+	re = fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
+	err = fdt_splice_mem_rsv_(fdt, re, 0, 1);
 	if (err)
 		return err;
 
@@ -187,31 +171,27 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 
 int fdt_del_mem_rsv(void *fdt, int n)
 {
-	struct fdt_reserve_entry *re = _fdt_mem_rsv_w(fdt, n);
-	int err;
+	struct fdt_reserve_entry *re = fdt_mem_rsv_w_(fdt, n);
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	if (n >= fdt_num_mem_rsv(fdt))
 		return -FDT_ERR_NOTFOUND;
 
-	err = _fdt_splice_mem_rsv(fdt, re, 1, 0);
-	if (err)
-		return err;
-	return 0;
+	return fdt_splice_mem_rsv_(fdt, re, 1, 0);
 }
 
-static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_resize_property_(void *fdt, int nodeoffset, const char *name,
 				int len, struct fdt_property **prop)
 {
 	int oldlen;
 	int err;
 
 	*prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
-	if (! (*prop))
+	if (!*prop)
 		return oldlen;
 
-	if ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
+	if ((err = fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
 				      FDT_TAGALIGN(len))))
 		return err;
 
@@ -219,27 +199,32 @@ static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
 	return 0;
 }
 
-static int _fdt_add_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_add_property_(void *fdt, int nodeoffset, const char *name,
 			     int len, struct fdt_property **prop)
 {
 	int proplen;
 	int nextoffset;
 	int namestroff;
 	int err;
+	int allocated;
 
-	if ((nextoffset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((nextoffset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return nextoffset;
 
-	namestroff = _fdt_find_add_string(fdt, name);
+	namestroff = fdt_find_add_string_(fdt, name, &allocated);
 	if (namestroff < 0)
 		return namestroff;
 
-	*prop = _fdt_offset_ptr_w(fdt, nextoffset);
+	*prop = fdt_offset_ptr_w_(fdt, nextoffset);
 	proplen = sizeof(**prop) + FDT_TAGALIGN(len);
 
-	err = _fdt_splice_struct(fdt, *prop, 0, proplen);
-	if (err)
+	err = fdt_splice_struct_(fdt, *prop, 0, proplen);
+	if (err) {
+		/* Delete the string if we failed to add it */
+		if (!can_assume(NO_ROLLBACK) && allocated)
+			fdt_del_last_string_(fdt, name);
 		return err;
+	}
 
 	(*prop)->tag = cpu_to_fdt32(FDT_PROP);
 	(*prop)->nameoff = cpu_to_fdt32(namestroff);
@@ -253,7 +238,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	int oldlen, newlen;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	namep = (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
 	if (!namep)
@@ -261,7 +246,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 
 	newlen = strlen(name);
 
-	err = _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1),
+	err = fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
 				 FDT_TAGALIGN(newlen+1));
 	if (err)
 		return err;
@@ -270,21 +255,36 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	return 0;
 }
 
-int fdt_setprop(void *fdt, int nodeoffset, const char *name,
-		const void *val, int len)
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data)
 {
 	struct fdt_property *prop;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	err = _fdt_resize_property(fdt, nodeoffset, name, len, &prop);
+	err = fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
 	if (err == -FDT_ERR_NOTFOUND)
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
+	if (err)
+		return err;
+
+	*prop_data = prop->data;
+	return 0;
+}
+
+int fdt_setprop(void *fdt, int nodeoffset, const char *name,
+		const void *val, int len)
+{
+	void *prop_data;
+	int err;
+
+	err = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data);
 	if (err)
 		return err;
 
-	memcpy(prop->data, val, len);
+	if (len)
+		memcpy(prop_data, val, len);
 	return 0;
 }
 
@@ -294,12 +294,12 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 	struct fdt_property *prop;
 	int err, oldlen, newlen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
 	if (prop) {
 		newlen = len + oldlen;
-		err = _fdt_splice_struct(fdt, prop->data,
+		err = fdt_splice_struct_(fdt, prop->data,
 					 FDT_TAGALIGN(oldlen),
 					 FDT_TAGALIGN(newlen));
 		if (err)
@@ -307,7 +307,7 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 		prop->len = cpu_to_fdt32(newlen);
 		memcpy(prop->data + oldlen, val, len);
 	} else {
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
 		if (err)
 			return err;
 		memcpy(prop->data, val, len);
@@ -320,14 +320,14 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name)
 	struct fdt_property *prop;
 	int len, proplen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
 	proplen = sizeof(*prop) + FDT_TAGALIGN(len);
-	return _fdt_splice_struct(fdt, prop, proplen, 0);
+	return fdt_splice_struct_(fdt, prop, proplen, 0);
 }
 
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
@@ -340,7 +340,7 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 	uint32_t tag;
 	fdt32_t *endtag;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	offset = fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
 	if (offset >= 0)
@@ -349,16 +349,19 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 		return offset;
 
 	/* Try to place the new node after the parent's properties */
-	fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
+	tag = fdt_next_tag(fdt, parentoffset, &nextoffset);
+	/* the fdt_subnode_offset_namelen() should ensure this never hits */
+	if (!can_assume(LIBFDT_FLAWLESS) && (tag != FDT_BEGIN_NODE))
+		return -FDT_ERR_INTERNAL;
 	do {
 		offset = nextoffset;
 		tag = fdt_next_tag(fdt, offset, &nextoffset);
 	} while ((tag == FDT_PROP) || (tag == FDT_NOP));
 
-	nh = _fdt_offset_ptr_w(fdt, offset);
+	nh = fdt_offset_ptr_w_(fdt, offset);
 	nodelen = sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
 
-	err = _fdt_splice_struct(fdt, nh, 0, nodelen);
+	err = fdt_splice_struct_(fdt, nh, 0, nodelen);
 	if (err)
 		return err;
 
@@ -380,18 +383,20 @@ int fdt_del_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset),
+	return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
 				  endoffset - nodeoffset, 0);
 }
 
-static void _fdt_packblocks(const char *old, char *new,
-			    int mem_rsv_size, int struct_size)
+static void fdt_packblocks_(const char *old, char *new,
+			    int mem_rsv_size,
+			    int struct_size,
+			    int strings_size)
 {
 	int mem_rsv_off, struct_off, strings_off;
 
@@ -406,8 +411,7 @@ static void _fdt_packblocks(const char *old, char *new,
 	fdt_set_off_dt_struct(new, struct_off);
 	fdt_set_size_dt_struct(new, struct_size);
 
-	memmove(new + strings_off, old + fdt_off_dt_strings(old),
-		fdt_size_dt_strings(old));
+	memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size);
 	fdt_set_off_dt_strings(new, strings_off);
 	fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
 }
@@ -421,22 +425,25 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 	const char *fdtend = fdtstart + fdt_totalsize(fdt);
 	char *tmp;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
 
-	if (fdt_version(fdt) >= 17) {
+	if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
 		struct_size = fdt_size_dt_struct(fdt);
-	} else {
+	} else if (fdt_version(fdt) == 16) {
 		struct_size = 0;
 		while (fdt_next_tag(fdt, struct_size, &struct_size) != FDT_END)
 			;
 		if (struct_size < 0)
 			return struct_size;
+	} else {
+		return -FDT_ERR_BADVERSION;
 	}
 
-	if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) {
+	if (can_assume(LIBFDT_ORDER) ||
+	    !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
 		/* no further work necessary */
 		err = fdt_move(fdt, buf, bufsize);
 		if (err)
@@ -464,7 +471,8 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 			return -FDT_ERR_NOSPACE;
 	}
 
-	_fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size);
+	fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
+			fdt_size_dt_strings(fdt));
 	memmove(buf, tmp, newsize);
 
 	fdt_set_magic(buf, FDT_MAGIC);
@@ -480,12 +488,13 @@ int fdt_pack(void *fdt)
 {
 	int mem_rsv_size;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
-	_fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt));
-	fdt_set_totalsize(fdt, _fdt_data_size(fdt));
+	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
+			fdt_size_dt_strings(fdt));
+	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
 
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_strerror.c b/xen/common/libfdt/fdt_strerror.c
index 8d0289c..b435693 100644
--- a/xen/common/libfdt/fdt_strerror.c
+++ b/xen/common/libfdt/fdt_strerror.c
@@ -1,49 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
@@ -67,6 +25,7 @@ static struct fdt_errtabent fdt_errtable[] = {
 
 	FDT_ERRTABENT(FDT_ERR_BADOFFSET),
 	FDT_ERRTABENT(FDT_ERR_BADPATH),
+	FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
 	FDT_ERRTABENT(FDT_ERR_BADSTATE),
 
 	FDT_ERRTABENT(FDT_ERR_TRUNCATED),
@@ -74,8 +33,14 @@ static struct fdt_errtabent fdt_errtable[] = {
 	FDT_ERRTABENT(FDT_ERR_BADVERSION),
 	FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
 	FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
+	FDT_ERRTABENT(FDT_ERR_INTERNAL),
+	FDT_ERRTABENT(FDT_ERR_BADNCELLS),
+	FDT_ERRTABENT(FDT_ERR_BADVALUE),
+	FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
+	FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
+	FDT_ERRTABENT(FDT_ERR_BADFLAGS),
 };
-#define FDT_ERRTABSIZE	(sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
+#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
 
 const char *fdt_strerror(int errval)
 {
@@ -83,7 +48,7 @@ const char *fdt_strerror(int errval)
 		return "<valid offset/length>";
 	else if (errval == 0)
 		return "<no error>";
-	else if (errval > -FDT_ERRTABSIZE) {
+	else if (-errval < FDT_ERRTABSIZE) {
 		const char *s = fdt_errtable[-errval].str;
 
 		if (s)
diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
index c7d93d3..4c569ee 100644
--- a/xen/common/libfdt/fdt_sw.c
+++ b/xen/common/libfdt/fdt_sw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,25 +10,91 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_sw_check_header(void *fdt)
+static int fdt_sw_probe_(void *fdt)
+{
+	if (!can_assume(VALID_INPUT)) {
+		if (fdt_magic(fdt) == FDT_MAGIC)
+			return -FDT_ERR_BADSTATE;
+		else if (fdt_magic(fdt) != FDT_SW_MAGIC)
+			return -FDT_ERR_BADMAGIC;
+	}
+
+	return 0;
+}
+
+#define FDT_SW_PROBE(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'memrsv' state:	Initial state after fdt_create()
+ *
+ * Allowed functions:
+ *	fdt_add_reservemap_entry()
+ *	fdt_finish_reservemap()		[moves to 'struct' state]
+ */
+static int fdt_sw_probe_memrsv_(void *fdt)
+{
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) != 0)
+		return -FDT_ERR_BADSTATE;
+	return 0;
+}
+
+#define FDT_SW_PROBE_MEMRSV(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_memrsv_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'struct' state:	Enter this state after fdt_finish_reservemap()
+ *
+ * Allowed functions:
+ *	fdt_begin_node()
+ *	fdt_end_node()
+ *	fdt_property*()
+ *	fdt_finish()			[moves to 'complete' state]
+ */
+static int fdt_sw_probe_struct_(void *fdt)
 {
-	if (fdt_magic(fdt) != FDT_SW_MAGIC)
-		return -FDT_ERR_BADMAGIC;
-	/* FIXME: should check more details about the header state */
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) &&
+	    fdt_off_dt_strings(fdt) != fdt_totalsize(fdt))
+		return -FDT_ERR_BADSTATE;
 	return 0;
 }
 
-#define FDT_SW_CHECK_HEADER(fdt) \
+#define FDT_SW_PROBE_STRUCT(fdt) \
 	{ \
 		int err; \
-		if ((err = _fdt_sw_check_header(fdt)) != 0) \
+		if ((err = fdt_sw_probe_struct_(fdt)) != 0) \
 			return err; \
 	}
 
-static void *_fdt_grab_space(void *fdt, size_t len)
+static inline uint32_t sw_flags(void *fdt)
 {
-	int offset = fdt_size_dt_struct(fdt);
-	int spaceleft;
+	/* assert: (fdt_magic(fdt) == FDT_SW_MAGIC) */
+	return fdt_last_comp_version(fdt);
+}
+
+/* 'complete' state:	Enter this state after fdt_finish()
+ *
+ * Allowed functions: none
+ */
+
+static void *fdt_grab_space_(void *fdt, size_t len)
+{
+	unsigned int offset = fdt_size_dt_struct(fdt);
+	unsigned int spaceleft;
 
 	spaceleft = fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
 		- fdt_size_dt_strings(fdt);
@@ -80,27 +103,84 @@ static void *_fdt_grab_space(void *fdt, size_t len)
 		return NULL;
 
 	fdt_set_size_dt_struct(fdt, offset + len);
-	return _fdt_offset_ptr_w(fdt, offset);
+	return fdt_offset_ptr_w_(fdt, offset);
 }
 
-int fdt_create(void *buf, int bufsize)
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
 {
+	const int hdrsize = FDT_ALIGN(sizeof(struct fdt_header),
+				      sizeof(struct fdt_reserve_entry));
 	void *fdt = buf;
 
-	if (bufsize < sizeof(struct fdt_header))
+	if (bufsize < hdrsize)
 		return -FDT_ERR_NOSPACE;
 
+	if (flags & ~FDT_CREATE_FLAGS_ALL)
+		return -FDT_ERR_BADFLAGS;
+
 	memset(buf, 0, bufsize);
 
+	/*
+	 * magic and last_comp_version keep intermediate state during the fdt
+	 * creation process, which is replaced with the proper FDT format by
+	 * fdt_finish().
+	 *
+	 * flags should be accessed with sw_flags().
+	 */
 	fdt_set_magic(fdt, FDT_SW_MAGIC);
 	fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
-	fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION);
+	fdt_set_last_comp_version(fdt, flags);
+
 	fdt_set_totalsize(fdt,  bufsize);
 
-	fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header),
-					      sizeof(struct fdt_reserve_entry)));
+	fdt_set_off_mem_rsvmap(fdt, hdrsize);
 	fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
-	fdt_set_off_dt_strings(fdt, bufsize);
+	fdt_set_off_dt_strings(fdt, 0);
+
+	return 0;
+}
+
+int fdt_create(void *buf, int bufsize)
+{
+	return fdt_create_with_flags(buf, bufsize, 0);
+}
+
+int fdt_resize(void *fdt, void *buf, int bufsize)
+{
+	size_t headsize, tailsize;
+	char *oldtail, *newtail;
+
+	FDT_SW_PROBE(fdt);
+
+	if (bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	headsize = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	tailsize = fdt_size_dt_strings(fdt);
+
+	if (!can_assume(VALID_DTB) &&
+	    headsize + tailsize > fdt_totalsize(fdt))
+		return -FDT_ERR_INTERNAL;
+
+	if ((headsize + tailsize) > (unsigned)bufsize)
+		return -FDT_ERR_NOSPACE;
+
+	oldtail = (char *)fdt + fdt_totalsize(fdt) - tailsize;
+	newtail = (char *)buf + bufsize - tailsize;
+
+	/* Two cases to avoid clobbering data if the old and new
+	 * buffers partially overlap */
+	if (buf <= fdt) {
+		memmove(buf, fdt, headsize);
+		memmove(newtail, oldtail, tailsize);
+	} else {
+		memmove(newtail, oldtail, tailsize);
+		memmove(buf, fdt, headsize);
+	}
+
+	fdt_set_totalsize(buf, bufsize);
+	if (fdt_off_dt_strings(buf))
+		fdt_set_off_dt_strings(buf, bufsize);
 
 	return 0;
 }
@@ -110,10 +190,7 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int offset;
 
-	FDT_SW_CHECK_HEADER(fdt);
-
-	if (fdt_size_dt_struct(fdt))
-		return -FDT_ERR_BADSTATE;
+	FDT_SW_PROBE_MEMRSV(fdt);
 
 	offset = fdt_off_dt_struct(fdt);
 	if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
@@ -130,17 +207,24 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 
 int fdt_finish_reservemap(void *fdt)
 {
-	return fdt_add_reservemap_entry(fdt, 0, 0);
+	int err = fdt_add_reservemap_entry(fdt, 0, 0);
+
+	if (err)
+		return err;
+
+	fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
+	return 0;
 }
 
 int fdt_begin_node(void *fdt, const char *name)
 {
 	struct fdt_node_header *nh;
-	int namelen = strlen(name) + 1;
+	int namelen;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nh = _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
+	namelen = strlen(name) + 1;
+	nh = fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
 	if (! nh)
 		return -FDT_ERR_NOSPACE;
 
@@ -153,9 +237,9 @@ int fdt_end_node(void *fdt)
 {
 	fdt32_t *en;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	en = _fdt_grab_space(fdt, FDT_TAGSIZE);
+	en = fdt_grab_space_(fdt, FDT_TAGSIZE);
 	if (! en)
 		return -FDT_ERR_NOSPACE;
 
@@ -163,48 +247,90 @@ int fdt_end_node(void *fdt)
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+static int fdt_add_string_(void *fdt, const char *s)
 {
 	char *strtab = (char *)fdt + fdt_totalsize(fdt);
-	const char *p;
+	unsigned int strtabsize = fdt_size_dt_strings(fdt);
+	unsigned int len = strlen(s) + 1;
+	unsigned int struct_top, offset;
+
+	offset = strtabsize + len;
+	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	if (fdt_totalsize(fdt) - offset < struct_top)
+		return 0; /* no more room :( */
+
+	memcpy(strtab - offset, s, len);
+	fdt_set_size_dt_strings(fdt, strtabsize + len);
+	return -offset;
+}
+
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
 	int strtabsize = fdt_size_dt_strings(fdt);
 	int len = strlen(s) + 1;
-	int struct_top, offset;
 
-	p = _fdt_find_string(strtab - strtabsize, strtabsize, s);
+	fdt_set_size_dt_strings(fdt, strtabsize - len);
+}
+
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
+{
+	char *strtab = (char *)fdt + fdt_totalsize(fdt);
+	int strtabsize = fdt_size_dt_strings(fdt);
+	const char *p;
+
+	*allocated = 0;
+
+	p = fdt_find_string_(strtab - strtabsize, strtabsize, s);
 	if (p)
 		return p - strtab;
 
-	/* Add it */
-	offset = -strtabsize - len;
-	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
-	if (fdt_totalsize(fdt) + offset < struct_top)
-		return 0; /* no more room :( */
+	*allocated = 1;
 
-	memcpy(strtab + offset, s, len);
-	fdt_set_size_dt_strings(fdt, strtabsize + len);
-	return offset;
+	return fdt_add_string_(fdt, s);
 }
 
-int fdt_property(void *fdt, const char *name, const void *val, int len)
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)
 {
 	struct fdt_property *prop;
 	int nameoff;
+	int allocated;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nameoff = _fdt_find_add_string(fdt, name);
+	/* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
+	if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
+		allocated = 1;
+		nameoff = fdt_add_string_(fdt, name);
+	} else {
+		nameoff = fdt_find_add_string_(fdt, name, &allocated);
+	}
 	if (nameoff == 0)
 		return -FDT_ERR_NOSPACE;
 
-	prop = _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
-	if (! prop)
+	prop = fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
+	if (! prop) {
+		if (allocated)
+			fdt_del_last_string_(fdt, name);
 		return -FDT_ERR_NOSPACE;
+	}
 
 	prop->tag = cpu_to_fdt32(FDT_PROP);
 	prop->nameoff = cpu_to_fdt32(nameoff);
 	prop->len = cpu_to_fdt32(len);
-	memcpy(prop->data, val, len);
+	*valp = prop->data;
+	return 0;
+}
+
+int fdt_property(void *fdt, const char *name, const void *val, int len)
+{
+	void *ptr;
+	int ret;
+
+	ret = fdt_property_placeholder(fdt, name, len, &ptr);
+	if (ret)
+		return ret;
+	memcpy(ptr, val, len);
 	return 0;
 }
 
@@ -216,10 +342,10 @@ int fdt_finish(void *fdt)
 	uint32_t tag;
 	int offset, nextoffset;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
 	/* Add terminator */
-	end = _fdt_grab_space(fdt, sizeof(*end));
+	end = fdt_grab_space_(fdt, sizeof(*end));
 	if (! end)
 		return -FDT_ERR_NOSPACE;
 	*end = cpu_to_fdt32(FDT_END);
@@ -235,7 +361,7 @@ int fdt_finish(void *fdt)
 	while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {
 		if (tag == FDT_PROP) {
 			struct fdt_property *prop =
-				_fdt_offset_ptr_w(fdt, offset);
+				fdt_offset_ptr_w_(fdt, offset);
 			int nameoff;
 
 			nameoff = fdt32_to_cpu(prop->nameoff);
@@ -249,6 +375,10 @@ int fdt_finish(void *fdt)
 
 	/* Finally, adjust the header */
 	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
+
+	/* And fix up fields that were keeping intermediate state. */
+	fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
 	fdt_set_magic(fdt, FDT_MAGIC);
+
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_wip.c b/xen/common/libfdt/fdt_wip.c
index 2d1cac0..c2d7566 100644
--- a/xen/common/libfdt/fdt_wip.c
+++ b/xen/common/libfdt/fdt_wip.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,24 +10,45 @@
 
 #include "libfdt_internal.h"
 
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len)
+{
+	void *propval;
+	int proplen;
+
+	propval = fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
+					&proplen);
+	if (!propval)
+		return proplen;
+
+	if ((unsigned)proplen < (len + idx))
+		return -FDT_ERR_NOSPACE;
+
+	memcpy((char *)propval + idx, val, len);
+	return 0;
+}
+
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len)
 {
-	void *propval;
+	const void *propval;
 	int proplen;
 
-	propval = fdt_getprop_w(fdt, nodeoffset, name, &proplen);
-	if (! propval)
+	propval = fdt_getprop(fdt, nodeoffset, name, &proplen);
+	if (!propval)
 		return proplen;
 
 	if (proplen != len)
 		return -FDT_ERR_NOSPACE;
 
-	memcpy(propval, val, len);
-	return 0;
+	return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
+						   strlen(name), 0,
+						   val, len);
 }
 
-static void _fdt_nop_region(void *start, int len)
+static void fdt_nop_region_(void *start, int len)
 {
 	fdt32_t *p;
 
@@ -84,15 +62,15 @@ int fdt_nop_property(void *fdt, int nodeoffset, const char *name)
 	int len;
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
-	_fdt_nop_region(prop, len + sizeof(*prop));
+	fdt_nop_region_(prop, len + sizeof(*prop));
 
 	return 0;
 }
 
-int _fdt_node_end_offset(void *fdt, int offset)
+int fdt_node_end_offset_(void *fdt, int offset)
 {
 	int depth = 0;
 
@@ -106,11 +84,11 @@ int fdt_nop_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	_fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0),
+	fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
 			endoffset - nodeoffset);
 	return 0;
 }
diff --git a/xen/common/libfdt/libfdt_internal.h b/xen/common/libfdt/libfdt_internal.h
index d50c4e1..16bda19 100644
--- a/xen/common/libfdt/libfdt_internal.h
+++ b/xen/common/libfdt/libfdt_internal.h
@@ -1,81 +1,39 @@
-#ifndef _LIBFDT_INTERNAL_H
-#define _LIBFDT_INTERNAL_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_INTERNAL_H
+#define LIBFDT_INTERNAL_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include <fdt.h>
 
 #define FDT_ALIGN(x, a)		(((x) + (a) - 1) & ~((a) - 1))
 #define FDT_TAGALIGN(x)		(FDT_ALIGN((x), FDT_TAGSIZE))
 
-#define FDT_CHECK_HEADER(fdt) \
-	{ \
-		int err; \
-		if ((err = fdt_check_header(fdt)) != 0) \
-			return err; \
+int32_t fdt_ro_probe_(const void *fdt);
+#define FDT_RO_PROBE(fdt)					\
+	{							\
+		int32_t totalsize_;				\
+		if ((totalsize_ = fdt_ro_probe_(fdt)) < 0)	\
+			return totalsize_;			\
 	}
 
-int _fdt_check_node_offset(const void *fdt, int offset);
-int _fdt_check_prop_offset(const void *fdt, int offset);
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s);
-int _fdt_node_end_offset(void *fdt, int nodeoffset);
+int fdt_check_node_offset_(const void *fdt, int offset);
+int fdt_check_prop_offset_(const void *fdt, int offset);
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s);
+int fdt_node_end_offset_(void *fdt, int nodeoffset);
 
-static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
+static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
 {
 	return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
 }
 
-static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
+static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
 {
-	return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
+	return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
 }
 
-static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int n)
+static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *fdt, int n)
 {
 	const struct fdt_reserve_entry *rsv_table =
 		(const struct fdt_reserve_entry *)
@@ -83,11 +41,152 @@ static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int
 
 	return rsv_table + n;
 }
-static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
+static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
+{
+	return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
+}
+
+/*
+ * Internal helpers to access tructural elements of the device tree
+ * blob (rather than for exaple reading integers from within property
+ * values).  We assume that we are either given a naturally aligned
+ * address for the platform or if we are not, we are on a platform
+ * where unaligned memory reads will be handled in a graceful manner.
+ * If not the external helpers fdtXX_ld() from libfdt.h can be used
+ * instead.
+ */
+static inline uint32_t fdt32_ld_(const fdt32_t *p)
 {
-	return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
+	return fdt32_to_cpu(*p);
+}
+
+static inline uint64_t fdt64_ld_(const fdt64_t *p)
+{
+	return fdt64_to_cpu(*p);
 }
 
 #define FDT_SW_MAGIC		(~FDT_MAGIC)
 
-#endif /* _LIBFDT_INTERNAL_H */
+/**********************************************************************/
+/* Checking controls                                                  */
+/**********************************************************************/
+
+#ifndef FDT_ASSUME_MASK
+#define FDT_ASSUME_MASK 0
+#endif
+
+/*
+ * Defines assumptions which can be enabled. Each of these can be enabled
+ * individually. For maximum safety, don't enable any assumptions!
+ *
+ * For minimal code size and no safety, use ASSUME_PERFECT at your own risk.
+ * You should have another method of validating the device tree, such as a
+ * signature or hash check before using libfdt.
+ *
+ * For situations where security is not a concern it may be safe to enable
+ * ASSUME_SANE.
+ */
+enum {
+	/*
+	 * This does essentially no checks. Only the latest device-tree
+	 * version is correctly handled. Inconsistencies or errors in the device
+	 * tree may cause undefined behaviour or crashes. Invalid parameters
+	 * passed to libfdt may do the same.
+	 *
+	 * If an error occurs when modifying the tree it may leave the tree in
+	 * an intermediate (but valid) state. As an example, adding a property
+	 * where there is insufficient space may result in the property name
+	 * being added to the string table even though the property itself is
+	 * not added to the struct section.
+	 *
+	 * Only use this if you have a fully validated device tree with
+	 * the latest supported version and wish to minimise code size.
+	 */
+	ASSUME_PERFECT		= 0xff,
+
+	/*
+	 * This assumes that the device tree is sane. i.e. header metadata
+	 * and basic hierarchy are correct.
+	 *
+	 * With this assumption enabled, normal device trees produced by libfdt
+	 * and the compiler should be handled safely. Malicious device trees and
+	 * complete garbage may cause libfdt to behave badly or crash. Truncated
+	 * device trees (e.g. those only partially loaded) can also cause
+	 * problems.
+	 *
+	 * Note: Only checks that relate exclusively to the device tree itself
+	 * (not the parameters passed to libfdt) are disabled by this
+	 * assumption. This includes checking headers, tags and the like.
+	 */
+	ASSUME_VALID_DTB	= 1 << 0,
+
+	/*
+	 * This builds on ASSUME_VALID_DTB and further assumes that libfdt
+	 * functions are called with valid parameters, i.e. not trigger
+	 * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
+	 * extensive checking of parameters and the device tree, making various
+	 * assumptions about correctness.
+	 *
+	 * It doesn't make sense to enable this assumption unless
+	 * ASSUME_VALID_DTB is also enabled.
+	 */
+	ASSUME_VALID_INPUT	= 1 << 1,
+
+	/*
+	 * This disables checks for device-tree version and removes all code
+	 * which handles older versions.
+	 *
+	 * Only enable this if you know you have a device tree with the latest
+	 * version.
+	 */
+	ASSUME_LATEST		= 1 << 2,
+
+	/*
+	 * This assumes that it is OK for a failed addition to the device tree,
+	 * due to lack of space or some other problem, to skip any rollback
+	 * steps (such as dropping the property name from the string table).
+	 * This is safe to enable in most circumstances, even though it may
+	 * leave the tree in a sub-optimal state.
+	 */
+	ASSUME_NO_ROLLBACK	= 1 << 3,
+
+	/*
+	 * This assumes that the device tree components appear in a 'convenient'
+	 * order, i.e. the memory reservation block first, then the structure
+	 * block and finally the string block.
+	 *
+	 * This order is not specified by the device-tree specification,
+	 * but is expected by libfdt. The device-tree compiler always created
+	 * device trees with this order.
+	 *
+	 * This assumption disables a check in fdt_open_into() and removes the
+	 * ability to fix the problem there. This is safe if you know that the
+	 * device tree is correctly ordered. See fdt_blocks_misordered_().
+	 */
+	ASSUME_LIBFDT_ORDER	= 1 << 4,
+
+	/*
+	 * This assumes that libfdt itself does not have any internal bugs. It
+	 * drops certain checks that should never be needed unless libfdt has an
+	 * undiscovered bug.
+	 *
+	 * This can generally be considered safe to enable.
+	 */
+	ASSUME_LIBFDT_FLAWLESS	= 1 << 5,
+};
+
+/**
+ * can_assume_() - check if a particular assumption is enabled
+ *
+ * @mask: Mask to check (ASSUME_...)
+ * @return true if that assumption is enabled, else false
+ */
+static inline bool can_assume_(int mask)
+{
+	return FDT_ASSUME_MASK & mask;
+}
+
+/** helper macros for checking assumptions */
+#define can_assume(_assume)	can_assume_(ASSUME_ ## _assume)
+
+#endif /* LIBFDT_INTERNAL_H */
diff --git a/xen/common/libfdt/version.lds b/xen/common/libfdt/version.lds
index 80b322b..7ab85f1 100644
--- a/xen/common/libfdt/version.lds
+++ b/xen/common/libfdt/version.lds
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
 LIBFDT_1.2 {
 	global:
 		fdt_next_node;
@@ -8,6 +9,7 @@ LIBFDT_1.2 {
 		fdt_get_mem_rsv;
 		fdt_subnode_offset_namelen;
 		fdt_subnode_offset;
+		fdt_path_offset_namelen;
 		fdt_path_offset;
 		fdt_get_name;
 		fdt_get_property_namelen;
@@ -18,6 +20,7 @@ LIBFDT_1.2 {
 		fdt_get_alias_namelen;
 		fdt_get_alias;
 		fdt_get_path;
+                fdt_header_size;
 		fdt_supernode_atdepth_offset;
 		fdt_node_depth;
 		fdt_parent_offset;
@@ -54,7 +57,26 @@ LIBFDT_1.2 {
 		fdt_get_property_by_offset;
 		fdt_getprop_by_offset;
 		fdt_next_property_offset;
-
+		fdt_first_subnode;
+		fdt_next_subnode;
+		fdt_address_cells;
+		fdt_size_cells;
+		fdt_stringlist_contains;
+		fdt_stringlist_count;
+		fdt_stringlist_search;
+		fdt_stringlist_get;
+		fdt_resize;
+		fdt_overlay_apply;
+		fdt_get_string;
+		fdt_find_max_phandle;
+		fdt_generate_phandle;
+		fdt_check_full;
+		fdt_setprop_placeholder;
+		fdt_property_placeholder;
+		fdt_header_size_;
+		fdt_appendprop_addrrange;
+		fdt_setprop_inplace_namelen_partial;
+		fdt_create_with_flags;
 	local:
 		*;
 };
diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
index f460b0d..f2e6880 100644
--- a/xen/include/xen/libfdt/fdt.h
+++ b/xen/include/xen/libfdt/fdt.h
@@ -1,53 +1,10 @@
-#ifndef _FDT_H
-#define _FDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef FDT_H
+#define FDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #ifndef __ASSEMBLY__
@@ -106,4 +63,4 @@ struct fdt_property {
 #define FDT_V16_SIZE	FDT_V3_SIZE
 #define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(fdt32_t))
 
-#endif /* _FDT_H */
+#endif /* FDT_H */
diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
index 7c75688..c71689e 100644
--- a/xen/include/xen/libfdt/libfdt.h
+++ b/xen/include/xen/libfdt/libfdt.h
@@ -1,65 +1,27 @@
-#ifndef _LIBFDT_H
-#define _LIBFDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_H
+#define LIBFDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <xen/libfdt/libfdt_env.h>
 #include <xen/libfdt/fdt.h>
 
-#define FDT_FIRST_SUPPORTED_VERSION	0x10
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FDT_FIRST_SUPPORTED_VERSION	0x02
+#define FDT_LAST_COMPATIBLE_VERSION 0x10
 #define FDT_LAST_SUPPORTED_VERSION	0x11
 
 /* Error codes: informative error codes */
 #define FDT_ERR_NOTFOUND	1
 	/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
 #define FDT_ERR_EXISTS		2
-	/* FDT_ERR_EXISTS: Attemped to create a node or property which
+	/* FDT_ERR_EXISTS: Attempted to create a node or property which
 	 * already exists */
 #define FDT_ERR_NOSPACE		3
 	/* FDT_ERR_NOSPACE: Operation needed to expand the device
@@ -77,8 +39,10 @@
 	 * (e.g. missing a leading / for a function which requires an
 	 * absolute path) */
 #define FDT_ERR_BADPHANDLE	6
-	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle
-	 * value.  phandle values of 0 and -1 are not permitted. */
+	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
+	 * This can be caused either by an invalid phandle property
+	 * length, or the phandle value was either 0 or -1, which are
+	 * not permitted. */
 #define FDT_ERR_BADSTATE	7
 	/* FDT_ERR_BADSTATE: Function was passed an incomplete device
 	 * tree created by the sequential-write functions, which is
@@ -86,8 +50,9 @@
 
 /* Error codes: codes for bad device tree blobs */
 #define FDT_ERR_TRUNCATED	8
-	/* FDT_ERR_TRUNCATED: Structure block of the given device tree
-	 * ends without an FDT_END tag. */
+	/* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
+	 * terminated (overflows, goes outside allowed bounds, or
+	 * isn't properly terminated).  */
 #define FDT_ERR_BADMAGIC	9
 	/* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
 	 * device tree at all - it is missing the flattened device
@@ -114,13 +79,46 @@
 	 * Should never be returned, if it is, it indicates a bug in
 	 * libfdt itself. */
 
-#define FDT_ERR_MAX		13
+/* Errors in device tree content */
+#define FDT_ERR_BADNCELLS	14
+	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
+	 * or similar property with a bad format or value */
+
+#define FDT_ERR_BADVALUE	15
+	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
+	 * value. For example: a property expected to contain a string list
+	 * is not NUL-terminated within the length of its value. */
+
+#define FDT_ERR_BADOVERLAY	16
+	/* FDT_ERR_BADOVERLAY: The device tree overlay, while
+	 * correctly structured, cannot be applied due to some
+	 * unexpected or missing value, property or node. */
+
+#define FDT_ERR_NOPHANDLES	17
+	/* FDT_ERR_NOPHANDLES: The device tree doesn't have any
+	 * phandle available anymore without causing an overflow */
+
+#define FDT_ERR_BADFLAGS	18
+	/* FDT_ERR_BADFLAGS: The function was passed a flags field that
+	 * contains invalid flags or an invalid combination of flags. */
+
+#define FDT_ERR_ALIGNMENT	19
+	/* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
+	 * aligned. */
+
+#define FDT_ERR_MAX		19
+
+/* constants */
+#define FDT_MAX_PHANDLE 0xfffffffe
+	/* Valid values for phandles range from 1 to 2^32-2. */
 
 /**********************************************************************/
 /* Low-level functions (you probably don't need these)                */
 /**********************************************************************/
 
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen);
+#endif
 static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 {
 	return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
@@ -128,6 +126,59 @@ static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 
 uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
 
+/*
+ * External helpers to access words from a device tree blob. They're built
+ * to work even with unaligned pointers on platforms (such as ARMv5) that don't
+ * like unaligned loads and stores.
+ */
+static inline uint32_t fdt32_ld(const fdt32_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint32_t)bp[0] << 24)
+		| ((uint32_t)bp[1] << 16)
+		| ((uint32_t)bp[2] << 8)
+		| bp[3];
+}
+
+static inline void fdt32_st(void *property, uint32_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 24;
+	bp[1] = (value >> 16) & 0xff;
+	bp[2] = (value >> 8) & 0xff;
+	bp[3] = value & 0xff;
+}
+
+static inline uint64_t fdt64_ld(const fdt64_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint64_t)bp[0] << 56)
+		| ((uint64_t)bp[1] << 48)
+		| ((uint64_t)bp[2] << 40)
+		| ((uint64_t)bp[3] << 32)
+		| ((uint64_t)bp[4] << 24)
+		| ((uint64_t)bp[5] << 16)
+		| ((uint64_t)bp[6] << 8)
+		| bp[7];
+}
+
+static inline void fdt64_st(void *property, uint64_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 56;
+	bp[1] = (value >> 48) & 0xff;
+	bp[2] = (value >> 40) & 0xff;
+	bp[3] = (value >> 32) & 0xff;
+	bp[4] = (value >> 24) & 0xff;
+	bp[5] = (value >> 16) & 0xff;
+	bp[6] = (value >> 8) & 0xff;
+	bp[7] = value & 0xff;
+}
+
 /**********************************************************************/
 /* Traversal functions                                                */
 /**********************************************************************/
@@ -136,74 +187,118 @@ int fdt_next_node(const void *fdt, int offset, int *depth);
 
 /**
  * fdt_first_subnode() - get offset of first direct subnode
- *
  * @fdt:	FDT blob
  * @offset:	Offset of node to check
- * @return offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
+ *
+ * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
  */
 int fdt_first_subnode(const void *fdt, int offset);
 
 /**
  * fdt_next_subnode() - get offset of next direct subnode
+ * @fdt:	FDT blob
+ * @offset:	Offset of previous subnode
  *
  * After first calling fdt_first_subnode(), call this function repeatedly to
  * get direct subnodes of a parent node.
  *
- * @fdt:	FDT blob
- * @offset:	Offset of previous subnode
- * @return offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
- * subnodes
+ * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
+ *         subnodes
  */
 int fdt_next_subnode(const void *fdt, int offset);
 
+/**
+ * fdt_for_each_subnode - iterate over all subnodes of a parent
+ *
+ * @node:	child node (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @parent:	parent node (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_subnode(node, fdt, parent) {
+ *		Use node
+ *		...
+ *	}
+ *
+ *	if ((node < 0) && (node != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and @node is used as
+ * iterator in the loop. The parent variable be constant or even a
+ * literal.
+ */
+#define fdt_for_each_subnode(node, fdt, parent)		\
+	for (node = fdt_first_subnode(fdt, parent);	\
+	     node >= 0;					\
+	     node = fdt_next_subnode(fdt, node))
+
 /**********************************************************************/
 /* General functions                                                  */
 /**********************************************************************/
-
 #define fdt_get_header(fdt, field) \
-	(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))
-#define fdt_magic(fdt) 			(fdt_get_header(fdt, magic))
+	(fdt32_ld(&((const struct fdt_header *)(fdt))->field))
+#define fdt_magic(fdt)			(fdt_get_header(fdt, magic))
 #define fdt_totalsize(fdt)		(fdt_get_header(fdt, totalsize))
 #define fdt_off_dt_struct(fdt)		(fdt_get_header(fdt, off_dt_struct))
 #define fdt_off_dt_strings(fdt)		(fdt_get_header(fdt, off_dt_strings))
 #define fdt_off_mem_rsvmap(fdt)		(fdt_get_header(fdt, off_mem_rsvmap))
 #define fdt_version(fdt)		(fdt_get_header(fdt, version))
-#define fdt_last_comp_version(fdt) 	(fdt_get_header(fdt, last_comp_version))
-#define fdt_boot_cpuid_phys(fdt) 	(fdt_get_header(fdt, boot_cpuid_phys))
-#define fdt_size_dt_strings(fdt) 	(fdt_get_header(fdt, size_dt_strings))
+#define fdt_last_comp_version(fdt)	(fdt_get_header(fdt, last_comp_version))
+#define fdt_boot_cpuid_phys(fdt)	(fdt_get_header(fdt, boot_cpuid_phys))
+#define fdt_size_dt_strings(fdt)	(fdt_get_header(fdt, size_dt_strings))
 #define fdt_size_dt_struct(fdt)		(fdt_get_header(fdt, size_dt_struct))
 
-#define __fdt_set_hdr(name) \
+#define fdt_set_hdr_(name) \
 	static inline void fdt_set_##name(void *fdt, uint32_t val) \
 	{ \
-		struct fdt_header *fdth = (struct fdt_header*)fdt; \
+		struct fdt_header *fdth = (struct fdt_header *)fdt; \
 		fdth->name = cpu_to_fdt32(val); \
 	}
-__fdt_set_hdr(magic);
-__fdt_set_hdr(totalsize);
-__fdt_set_hdr(off_dt_struct);
-__fdt_set_hdr(off_dt_strings);
-__fdt_set_hdr(off_mem_rsvmap);
-__fdt_set_hdr(version);
-__fdt_set_hdr(last_comp_version);
-__fdt_set_hdr(boot_cpuid_phys);
-__fdt_set_hdr(size_dt_strings);
-__fdt_set_hdr(size_dt_struct);
-#undef __fdt_set_hdr
-
-/**
- * fdt_check_header - sanity check a device tree or possible device tree
+fdt_set_hdr_(magic);
+fdt_set_hdr_(totalsize);
+fdt_set_hdr_(off_dt_struct);
+fdt_set_hdr_(off_dt_strings);
+fdt_set_hdr_(off_mem_rsvmap);
+fdt_set_hdr_(version);
+fdt_set_hdr_(last_comp_version);
+fdt_set_hdr_(boot_cpuid_phys);
+fdt_set_hdr_(size_dt_strings);
+fdt_set_hdr_(size_dt_struct);
+#undef fdt_set_hdr_
+
+/**
+ * fdt_header_size - return the size of the tree's header
+ * @fdt: pointer to a flattened device tree
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size(const void *fdt);
+
+/**
+ * fdt_header_size_ - internal function to get header size from a version number
+ * @version: devicetree version number
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size_(uint32_t version);
+
+/**
+ * fdt_check_header - sanity check a device tree header
  * @fdt: pointer to data which might be a flattened device tree
  *
  * fdt_check_header() checks that the given buffer contains what
- * appears to be a flattened device tree with sane information in its
- * header.
+ * appears to be a flattened device tree, and that the header contains
+ * valid information (to the extent that can be determined from the
+ * header alone).
  *
  * returns:
  *     0, if the buffer appears to contain a valid device tree
  *     -FDT_ERR_BADMAGIC,
  *     -FDT_ERR_BADVERSION,
- *     -FDT_ERR_BADSTATE, standard meanings, as above
+ *     -FDT_ERR_BADSTATE,
+ *     -FDT_ERR_TRUNCATED, standard meanings, as above
  */
 int fdt_check_header(const void *fdt);
 
@@ -232,6 +327,24 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
 /* Read-only functions                                                */
 /**********************************************************************/
 
+int fdt_check_full(const void *fdt, size_t bufsize);
+
+/**
+ * fdt_get_string - retrieve a string from the strings block of a device tree
+ * @fdt: pointer to the device tree blob
+ * @stroffset: offset of the string within the strings block (native endian)
+ * @lenp: optional pointer to return the string's length
+ *
+ * fdt_get_string() retrieves a pointer to a single string from the
+ * strings block of the device tree blob at fdt, and optionally also
+ * returns the string's length in *lenp.
+ *
+ * returns:
+ *     a pointer to the string, on success
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
+ */
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
+
 /**
  * fdt_string - retrieve a string from the strings block of a device tree
  * @fdt: pointer to the device tree blob
@@ -242,11 +355,66 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
  *
  * returns:
  *     a pointer to the string, on success
- *     NULL, if stroffset is out of bounds
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
  */
 const char *fdt_string(const void *fdt, int stroffset);
 
 /**
+ * fdt_find_max_phandle - find and return the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the highest phandle value found in the tree
+ *
+ * fdt_find_max_phandle() finds the highest phandle value in the given device
+ * tree. The value returned in @phandle is only valid if the function returns
+ * success.
+ *
+ * returns:
+ *     0 on success or a negative error code on failure
+ */
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
+
+/**
+ * fdt_get_max_phandle - retrieves the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ *
+ * fdt_get_max_phandle retrieves the highest phandle in the given
+ * device tree. This will ignore badly formatted phandles, or phandles
+ * with a value of 0 or -1.
+ *
+ * This function is deprecated in favour of fdt_find_max_phandle().
+ *
+ * returns:
+ *      the highest phandle on success
+ *      0, if no phandle was found in the device tree
+ *      -1, if an error occurred
+ */
+static inline uint32_t fdt_get_max_phandle(const void *fdt)
+{
+	uint32_t phandle;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &phandle);
+	if (err < 0)
+		return (uint32_t)-1;
+
+	return phandle;
+}
+
+/**
+ * fdt_generate_phandle - return a new, unused phandle for a device tree blob
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the new phandle
+ *
+ * Walks the device tree blob and looks for the highest phandle value. On
+ * success, the new, unused phandle value (one higher than the previously
+ * highest phandle value in the device tree blob) will be returned in the
+ * @phandle parameter.
+ *
+ * Return: 0 on success or a negative error-code on failure
+ */
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
+
+/**
  * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
  * @fdt: pointer to the device tree blob
  *
@@ -262,9 +430,11 @@ int fdt_num_mem_rsv(const void *fdt);
 /**
  * fdt_get_mem_rsv - retrieve one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: pointers to 64-bit variables
+ * @n: index of reserve map entry
+ * @address: pointer to 64-bit variable to hold the start address
+ * @size: pointer to 64-bit variable to hold the size of the entry
  *
- * On success, *address and *size will contain the address and size of
+ * On success, @address and @size will contain the address and size of
  * the n-th reserve map entry from the device tree blob, in
  * native-endian format.
  *
@@ -287,9 +457,13 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size);
  * namelen characters of name for matching the subnode name.  This is
  * useful for finding subnodes based on a portion of a larger string,
  * such as a full path.
+ *
+ * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 			       const char *name, int namelen);
+#endif
 /**
  * fdt_subnode_offset - find a subnode of a given node
  * @fdt: pointer to the device tree blob
@@ -306,8 +480,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
  * returns:
  *	structure block offset of the requested subnode (>=0), on success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
- *      -FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
+ *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
  *	-FDT_ERR_BADSTRUCTURE,
@@ -316,6 +491,21 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
 
 /**
+ * fdt_path_offset_namelen - find a tree node by its full path
+ * @fdt: pointer to the device tree blob
+ * @path: full path of the node to locate
+ * @namelen: number of characters of path to consider
+ *
+ * Identical to fdt_path_offset(), but only consider the first namelen
+ * characters of path as the path name.
+ *
+ * Return: offset of the node or negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);
+#endif
+
+/**
  * fdt_path_offset - find a tree node by its full path
  * @fdt: pointer to the device tree blob
  * @path: full path of the node to locate
@@ -328,7 +518,8 @@ int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
  * address).
  *
  * returns:
- *	structure block offset of the node with the requested path (>=0), on success
+ *	structure block offset of the node with the requested path (>=0), on
+ *		success
  *	-FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
  *	-FDT_ERR_NOTFOUND, if the requested node does not exist
  *      -FDT_ERR_BADMAGIC,
@@ -352,10 +543,12 @@ int fdt_path_offset(const void *fdt, const char *path);
  *
  * returns:
  *	pointer to the node's name, on success
- *		If lenp is non-NULL, *lenp contains the length of that name (>=0)
+ *		If lenp is non-NULL, *lenp contains the length of that name
+ *			(>=0)
  *	NULL, on error
  *		if lenp is non-NULL *lenp contains an error code (<0):
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE, standard meanings
@@ -404,6 +597,33 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset);
 int fdt_next_property_offset(const void *fdt, int offset);
 
 /**
+ * fdt_for_each_property_offset - iterate over all properties of a node
+ *
+ * @property:	property offset (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @node:	node offset (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_property_offset(property, fdt, node) {
+ *		Use property
+ *		...
+ *	}
+ *
+ *	if ((property < 0) && (property != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and property is used as
+ * iterator in the loop. The node variable can be constant or even a
+ * literal.
+ */
+#define fdt_for_each_property_offset(property, fdt, node)	\
+	for (property = fdt_first_property_offset(fdt, node);	\
+	     property >= 0;					\
+	     property = fdt_next_property_offset(fdt, property))
+
+/**
  * fdt_get_property_by_offset - retrieve the property at a given offset
  * @fdt: pointer to the device tree blob
  * @offset: offset of the property to retrieve
@@ -414,6 +634,9 @@ int fdt_next_property_offset(const void *fdt, int offset);
  * offset.  If lenp is non-NULL, the length of the property value is
  * also returned, in the integer pointed to by lenp.
  *
+ * Note that this code only works on device tree versions >= 16. fdt_getprop()
+ * works on all versions.
+ *
  * returns:
  *	pointer to the structure representing the property
  *		if lenp is non-NULL, *lenp contains the length of the property
@@ -439,13 +662,18 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
  * @namelen: number of characters of name to consider
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
- * Identical to fdt_get_property_namelen(), but only examine the first
- * namelen characters of name for matching the property name.
+ * Identical to fdt_get_property(), but only examine the first namelen
+ * characters of name for matching the property name.
+ *
+ * Return: pointer to the structure representing the property, or NULL
+ *         if not found
  */
+#ifndef SWIG /* Not available in Python */
 const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 						    int nodeoffset,
 						    const char *name,
 						    int namelen, int *lenp);
+#endif
 
 /**
  * fdt_get_property - find a given property in a given node
@@ -467,7 +695,8 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -487,7 +716,7 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
 /**
  * fdt_getprop_by_offset - retrieve the value of a property at a given offset
  * @fdt: pointer to the device tree blob
- * @ffset: offset of the property to read
+ * @offset: offset of the property to read
  * @namep: pointer to a string variable (will be overwritten) or NULL
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
@@ -515,8 +744,10 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
  *		-FDT_ERR_BADSTRUCTURE,
  *		-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_getprop_by_offset(const void *fdt, int offset,
 				  const char **namep, int *lenp);
+#endif
 
 /**
  * fdt_getprop_namelen - get property value based on substring
@@ -528,9 +759,20 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
  *
  * Identical to fdt_getprop(), but only examine the first namelen
  * characters of name for matching the property name.
+ *
+ * Return: pointer to the property's value or NULL on error
  */
+#ifndef SWIG /* Not available in Python */
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp);
+static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
+					  const char *name, int namelen,
+					  int *lenp)
+{
+	return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
+						      namelen, lenp);
+}
+#endif
 
 /**
  * fdt_getprop - retrieve the value of a given property
@@ -540,10 +782,10 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
  * fdt_getprop() retrieves a pointer to the value of the property
- * named 'name' of the node at offset nodeoffset (this will be a
+ * named @name of the node at offset @nodeoffset (this will be a
  * pointer to within the device blob itself, not a copy of the value).
- * If lenp is non-NULL, the length of the property value is also
- * returned, in the integer pointed to by lenp.
+ * If @lenp is non-NULL, the length of the property value is also
+ * returned, in the integer pointed to by @lenp.
  *
  * returns:
  *	pointer to the property's value
@@ -552,7 +794,8 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -587,11 +830,16 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset);
  * @name: name of the alias th look up
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_get_alias(), but only examine the first namelen
- * characters of name for matching the alias name.
+ * Identical to fdt_get_alias(), but only examine the first @namelen
+ * characters of @name for matching the alias name.
+ *
+ * Return: a pointer to the expansion of the alias named @name, if it exists,
+ *	   NULL otherwise
  */
+#ifndef SWIG /* Not available in Python */
 const char *fdt_get_alias_namelen(const void *fdt,
 				  const char *name, int namelen);
+#endif
 
 /**
  * fdt_get_alias - retrieve the path referenced by a given alias
@@ -599,7 +847,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
  * @name: name of the alias th look up
  *
  * fdt_get_alias() retrieves the value of a given alias.  That is, the
- * value of the property named 'name' in the node /aliases.
+ * value of the property named @name in the node /aliases.
  *
  * returns:
  *	a pointer to the expansion of the alias named 'name', if it exists
@@ -624,7 +872,7 @@ const char *fdt_get_alias(const void *fdt, const char *name);
  *	0, on success
  *		buf contains the absolute path of the node at
  *		nodeoffset, as a NUL-terminated string.
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1)
  *		characters and will not fit in the given buffer.
  *	-FDT_ERR_BADMAGIC,
@@ -654,11 +902,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen);
  * structure from the start to nodeoffset.
  *
  * returns:
-
  *	structure block offset of the node at node offset's ancestor
  *		of depth supernodedepth (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-*	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeoffset
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
+ *		nodeoffset
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -680,7 +928,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
  *
  * returns:
  *	depth of the node at nodeoffset (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -703,7 +951,7 @@ int fdt_node_depth(const void *fdt, int nodeoffset);
  * returns:
  *	structure block offset of the parent of the node at nodeoffset
  *		(>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -743,7 +991,7 @@ int fdt_parent_offset(const void *fdt, int nodeoffset);
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -775,14 +1023,13 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
 
 /**
- * fdt_node_check_compatible: check a node's compatible property
+ * fdt_node_check_compatible - check a node's compatible property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of a tree node
  * @compatible: string to match against
  *
- *
  * fdt_node_check_compatible() returns 0 if the given node contains a
- * 'compatible' property with the given string as one of its elements,
+ * @compatible property with the given string as one of its elements,
  * it returns non-zero otherwise, or on error.
  *
  * returns:
@@ -790,7 +1037,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
  *	1, if the node has a 'compatible' property, but it does not list
  *		the given string
  *	-FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
- * 	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -827,7 +1074,7 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -846,15 +1093,160 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
  * one or more strings, each terminated by \0, as is found in a device tree
  * "compatible" property.
  *
- * @return: 1 if the string is found in the list, 0 not found, or invalid list
+ * Return: 1 if the string is found in the list, 0 not found, or invalid list
  */
 int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
 
+/**
+ * fdt_stringlist_count - count the number of strings in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ *
+ * Return:
+ *   the number of strings in the given property
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist
+ */
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
+
+/**
+ * fdt_stringlist_search - find a string in a string list and return its index
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @string: string to look up in the string list
+ *
+ * Note that it is possible for this function to succeed on property values
+ * that are not NUL-terminated. That's because the function will stop after
+ * finding the first occurrence of @string. This can for example happen with
+ * small-valued cell properties, such as #address-cells, when searching for
+ * the empty string.
+ *
+ * return:
+ *   the index of the string in the list of strings
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist or does not contain
+ *                     the given string
+ */
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string);
+
+/**
+ * fdt_stringlist_get() - obtain the string at a given index in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @index: index of the string to return
+ * @lenp: return location for the string length or an error code on failure
+ *
+ * Note that this will successfully extract strings from properties with
+ * non-NUL-terminated values. For example on small-valued cell properties
+ * this function will return the empty string.
+ *
+ * If non-NULL, the length of the string (on success) or a negative error-code
+ * (on failure) will be stored in the integer pointer to by lenp.
+ *
+ * Return:
+ *   A pointer to the string at the given index in the string list or NULL on
+ *   failure. On success the length of the string will be stored in the memory
+ *   location pointed to by the lenp parameter, if non-NULL. On failure one of
+ *   the following negative error codes will be returned in the lenp parameter
+ *   (if non-NULL):
+ *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *     -FDT_ERR_NOTFOUND if the property does not exist
+ */
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int index,
+			       int *lenp);
+
+/**********************************************************************/
+/* Read-only functions (addressing related)                           */
+/**********************************************************************/
+
+/**
+ * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
+ *
+ * This is the maximum value for #address-cells, #size-cells and
+ * similar properties that will be processed by libfdt.  IEE1275
+ * requires that OF implementations handle values up to 4.
+ * Implementations may support larger values, but in practice higher
+ * values aren't used.
+ */
+#define FDT_MAX_NCELLS		4
+
+/**
+ * fdt_address_cells - retrieve address size for a bus represented in the tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address size for
+ *
+ * When the node has a valid #address-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      2, if the node has no #address-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_address_cells(const void *fdt, int nodeoffset);
+
+/**
+ * fdt_size_cells - retrieve address range size for a bus represented in the
+ *                  tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address range size for
+ *
+ * When the node has a valid #size-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      1, if the node has no #size-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#size-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_size_cells(const void *fdt, int nodeoffset);
+
+
 /**********************************************************************/
 /* Write-in-place functions                                           */
 /**********************************************************************/
 
 /**
+ * fdt_setprop_inplace_namelen_partial - change a property's value,
+ *                                       but not its size
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @namelen: number of characters of name to consider
+ * @idx: index of the property to change in the array
+ * @val: pointer to data to replace the property value with
+ * @len: length of the property value
+ *
+ * Identical to fdt_setprop_inplace(), but modifies the given property
+ * starting from the given index, and using only the first characters
+ * of the name. It is useful when you want to manipulate only one value of
+ * an array and you have a string that doesn't end with \0.
+ *
+ * Return: 0 on success, negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len);
+#endif
+
+/**
  * fdt_setprop_inplace - change a property's value, but not its size
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -882,8 +1274,10 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
  *	-FDT_ERR_BADSTRUCTURE,
  *	-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len);
+#endif
 
 /**
  * fdt_setprop_inplace_u32 - change the value of a 32-bit integer property
@@ -957,8 +1351,13 @@ static inline int fdt_setprop_inplace_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_setprop_inplace_cell - change the value of a single-cell property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node containing the property
+ * @name: name of the property to change the value of
+ * @val: new value of the 32-bit cell
  *
  * This is an alternative name for fdt_setprop_inplace_u32()
+ * Return: 0 on success, negative libfdt error number otherwise.
  */
 static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
 					   const char *name, uint32_t val)
@@ -1020,7 +1419,46 @@ int fdt_nop_node(void *fdt, int nodeoffset);
 /* Sequential write functions                                         */
 /**********************************************************************/
 
+/* fdt_create_with_flags flags */
+#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
+	/* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
+	 * names in the fdt. This can result in faster creation times, but
+	 * a larger fdt. */
+
+#define FDT_CREATE_FLAGS_ALL	(FDT_CREATE_FLAG_NO_NAME_DEDUP)
+
+/**
+ * fdt_create_with_flags - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
+ *
+ * fdt_create_with_flags() begins the process of creating a new fdt with
+ * the sequential write interface.
+ *
+ * fdt creation process must end with fdt_finished() to produce a valid fdt.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ *	-FDT_ERR_BADFLAGS, flags is not valid
+ */
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
+
+/**
+ * fdt_create - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ *
+ * fdt_create() is equivalent to fdt_create_with_flags() with flags=0.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ */
 int fdt_create(void *buf, int bufsize);
+
+int fdt_resize(void *fdt, void *buf, int bufsize);
 int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
 int fdt_finish_reservemap(void *fdt);
 int fdt_begin_node(void *fdt, const char *name);
@@ -1035,10 +1473,29 @@ static inline int fdt_property_u64(void *fdt, const char *name, uint64_t val)
 	fdt64_t tmp = cpu_to_fdt64(val);
 	return fdt_property(fdt, name, &tmp, sizeof(tmp));
 }
+
+#ifndef SWIG /* Not available in Python */
 static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val)
 {
 	return fdt_property_u32(fdt, name, val);
 }
+#endif
+
+/**
+ * fdt_property_placeholder - add a new property and return a ptr to its value
+ *
+ * @fdt: pointer to the device tree blob
+ * @name: name of property to add
+ * @len: length of property value in bytes
+ * @valp: returns a pointer to where where the value should be placed
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_NOSPACE, standard meanings
+ */
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp);
+
 #define fdt_property_string(fdt, name, str) \
 	fdt_property(fdt, name, str, strlen(str)+1)
 int fdt_end_node(void *fdt);
@@ -1055,7 +1512,8 @@ int fdt_pack(void *fdt);
 /**
  * fdt_add_mem_rsv - add one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: 64-bit values (native endian)
+ * @address: 64-bit start address of the reserve map entry
+ * @size: 64-bit size of the reserved region
  *
  * Adds a reserve map entry to the given blob reserving a region at
  * address address of length size.
@@ -1158,6 +1616,37 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
 		const void *val, int len);
 
 /**
+ * fdt_setprop_placeholder - allocate space for a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @len: length of the property value
+ * @prop_data: return pointer to property data
+ *
+ * fdt_setprop_placeholer() allocates the named property in the given node.
+ * If the property exists it is resized. In either case a pointer to the
+ * property data is returned.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data);
+
+/**
  * fdt_setprop_u32 - set a property to a 32-bit integer
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -1229,8 +1718,14 @@ static inline int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name,
 
 /**
  * fdt_setprop_cell - set a property to a single cell value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value for the property (native endian)
  *
  * This is an alternative name for fdt_setprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 				   uint32_t val)
@@ -1269,6 +1764,36 @@ static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 #define fdt_setprop_string(fdt, nodeoffset, name, str) \
 	fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
+
+/**
+ * fdt_setprop_empty - set a property to an empty value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ *
+ * fdt_setprop_empty() sets the value of the named property in the
+ * given node to an empty (zero length) value, or creates a new empty
+ * property if it does not already exist.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+#define fdt_setprop_empty(fdt, nodeoffset, name) \
+	fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
+
 /**
  * fdt_appendprop - append to or create a property
  * @fdt: pointer to the device tree blob
@@ -1371,8 +1896,14 @@ static inline int fdt_appendprop_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_appendprop_cell - append a single cell value to a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value to append to the property (native endian)
  *
  * This is an alternative name for fdt_appendprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 				      const char *name, uint32_t val)
@@ -1411,6 +1942,43 @@ static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 	fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
 /**
+ * fdt_appendprop_addrrange - append a address range property
+ * @fdt: pointer to the device tree blob
+ * @parent: offset of the parent node
+ * @nodeoffset: offset of the node to add a property at
+ * @name: name of property
+ * @addr: start address of a given range
+ * @size: size of a given range
+ *
+ * fdt_appendprop_addrrange() appends an address range value (start
+ * address and size) to the value of the named property in the given
+ * node, or creates a new property with that value if it does not
+ * already exist.
+ * If "name" is not specified, a default "reg" is used.
+ * Cell sizes are determined by parent's #address-cells and #size-cells.
+ *
+ * This function may insert data into the blob, and will therefore
+ * change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain a new property
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size);
+
+/**
  * fdt_delprop - delete a property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to nop
@@ -1438,16 +2006,21 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name);
  * fdt_add_subnode_namelen - creates a new node based on substring
  * @fdt: pointer to the device tree blob
  * @parentoffset: structure block offset of a node
- * @name: name of the subnode to locate
+ * @name: name of the subnode to create
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_add_subnode(), but use only the first namelen
- * characters of name as the name of the new node.  This is useful for
+ * Identical to fdt_add_subnode(), but use only the first @namelen
+ * characters of @name as the name of the new node.  This is useful for
  * creating subnodes based on a portion of a larger string, such as a
  * full path.
+ *
+ * Return: structure block offset of the created subnode (>=0),
+ *	   negative libfdt error value otherwise
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 			    const char *name, int namelen);
+#endif
 
 /**
  * fdt_add_subnode - creates a new node
@@ -1461,11 +2034,13 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
  *
  * This function will insert data into the blob, and will therefore
  * change the offsets of some existing nodes.
-
+ *
  * returns:
- *	structure block offset of the created nodeequested subnode (>=0), on success
+ *	structure block offset of the created nodeequested subnode (>=0), on
+ *		success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
  *	-FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
  *		the given name
  *	-FDT_ERR_NOSPACE, if there is insufficient free space in the
@@ -1503,10 +2078,45 @@ int fdt_add_subnode(void *fdt, int parentoffset, const char *name);
  */
 int fdt_del_node(void *fdt, int nodeoffset);
 
+/**
+ * fdt_overlay_apply - Applies a DT overlay on a base DT
+ * @fdt: pointer to the base device tree blob
+ * @fdto: pointer to the device tree overlay blob
+ *
+ * fdt_overlay_apply() will apply the given device tree overlay on the
+ * given base device tree.
+ *
+ * Expect the base device tree to be modified, even if the function
+ * returns an error.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there's not enough space in the base device tree
+ *	-FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
+ *		properties in the base DT
+ *	-FDT_ERR_BADPHANDLE,
+ *	-FDT_ERR_BADOVERLAY,
+ *	-FDT_ERR_NOPHANDLES,
+ *	-FDT_ERR_INTERNAL,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET,
+ *	-FDT_ERR_BADPATH,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_overlay_apply(void *fdt, void *fdto);
+
 /**********************************************************************/
 /* Debugging / informational functions                                */
 /**********************************************************************/
 
 const char *fdt_strerror(int errval);
 
-#endif /* _LIBFDT_H */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBFDT_H */
diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
index 035bf75..03380d5 100644
--- a/xen/include/xen/libfdt/libfdt_env.h
+++ b/xen/include/xen/libfdt/libfdt_env.h
@@ -1,22 +1,98 @@
-#ifndef _LIBFDT_ENV_H
-#define _LIBFDT_ENV_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_ENV_H
+#define LIBFDT_ENV_H
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ * Copyright 2012 Kim Phillips, Freescale Semiconductor.
+ */
 
+#include <xen/config.h>
 #include <xen/types.h>
 #include <xen/string.h>
 #include <asm/byteorder.h>
+#include <xen/stdbool.h>
 
-typedef uint16_t fdt16_t;
-typedef uint32_t fdt32_t;
-typedef uint64_t fdt64_t;
+#ifdef __CHECKER__
+#define FDT_FORCE __attribute__((force))
+#define FDT_BITWISE __attribute__((bitwise))
+#else
+#define FDT_FORCE
+#define FDT_BITWISE
+#endif
 
-#define fdt16_to_cpu(x) be16_to_cpu(x)
-#define cpu_to_fdt16(x) cpu_to_be16(x)
-#define fdt32_to_cpu(x) be32_to_cpu(x)
-#define cpu_to_fdt32(x) cpu_to_be32(x)
-#define fdt64_to_cpu(x) be64_to_cpu(x)
-#define cpu_to_fdt64(x) cpu_to_be64(x)
+typedef uint16_t FDT_BITWISE fdt16_t;
+typedef uint32_t FDT_BITWISE fdt32_t;
+typedef uint64_t FDT_BITWISE fdt64_t;
+
+#define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
+#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
+#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | \
+			 (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
+#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | \
+			 (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
+			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
+			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
 
 /* Xen-specific libfdt error code. */
 #define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
 
-#endif /* _LIBFDT_ENV_H */
+static inline uint16_t fdt16_to_cpu(fdt16_t x)
+{
+	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
+}
+static inline fdt16_t cpu_to_fdt16(uint16_t x)
+{
+	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
+}
+
+static inline uint32_t fdt32_to_cpu(fdt32_t x)
+{
+	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
+}
+static inline fdt32_t cpu_to_fdt32(uint32_t x)
+{
+	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
+}
+
+static inline uint64_t fdt64_to_cpu(fdt64_t x)
+{
+	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
+}
+static inline fdt64_t cpu_to_fdt64(uint64_t x)
+{
+	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
+}
+#undef CPU_TO_FDT64
+#undef CPU_TO_FDT32
+#undef CPU_TO_FDT16
+#undef EXTRACT_BYTE
+
+#ifdef __APPLE__
+#include <AvailabilityMacros.h>
+
+/* strnlen() is not available on Mac OS < 10.7 */
+# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < \
+                                         MAC_OS_X_VERSION_10_7)
+
+#define strnlen fdt_strnlen
+
+/*
+ * fdt_strnlen: returns the length of a string or max_count - which ever is
+ * smallest.
+ * Input 1 string: the string whose size is to be determined
+ * Input 2 max_count: the maximum value returned by this function
+ * Output: length of the string or max_count (the smallest of the two)
+ */
+static inline size_t fdt_strnlen(const char *string, size_t max_count)
+{
+    const char *p = memchr(string, 0, max_count);
+    return p ? p - string : max_count;
+}
+
+#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED <
+          MAC_OS_X_VERSION_10_7) */
+
+#endif /* __APPLE__ */
+
+#endif /* LIBFDT_ENV_H */
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Fri Nov 05 22:23:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 22:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222657.384962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj7bd-00084z-M7; Fri, 05 Nov 2021 22:22:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222657.384962; Fri, 05 Nov 2021 22:22:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj7bd-00084s-IX; Fri, 05 Nov 2021 22:22:41 +0000
Received: by outflank-mailman (input) for mailman id 222657;
 Fri, 05 Nov 2021 22:22:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj7bc-00084i-CI; Fri, 05 Nov 2021 22:22:40 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj7bc-0000hW-4w; Fri, 05 Nov 2021 22:22:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj7bb-0005o2-Oj; Fri, 05 Nov 2021 22:22:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mj7bb-0003Vy-OH; Fri, 05 Nov 2021 22:22:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=v6l+DP3f8xnuISc9bpTybaQnEW0INiOY+xoHJ3OgX7g=; b=f6s+RWRKRE1Ft8lhwukTX7cF61
	ntEaZv+MFkdGxlGqEjfw8CKerzuAP88Q6L/9f1kiW7GpUz9/18X/E7V2NA3WWOCk4EppAr7hdcCCJ
	2kpKRl1f4kBY+qNKOsf8pe8bQdI94ftHbG1LHOTTQxR0lNaEgqBuIPiJlACyBOiXvX7I=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166051-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166051: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-pygrub:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-xsm:guest-start/debian.repeat:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:debian-di-install:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=d4439a1189f93d0ac1eaf0197db8e6b3e197d5c7
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Nov 2021 22:22:39 +0000

flight 166051 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166051/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-pygrub       8 xen-boot                 fail REGR. vs. 165976
 test-amd64-amd64-xl-xsm     22 guest-start/debian.repeat fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd      12 debian-di-install        fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                d4439a1189f93d0ac1eaf0197db8e6b3e197d5c7
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    3 days
Failing since        165992  2021-11-02 05:40:21 Z    3 days    5 attempts
Testing same since   166051  2021-11-05 05:11:18 Z    0 days    1 attempts

------------------------------------------------------------
1682 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      fail    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 179765 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 22:41:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 22:41:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222666.384976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj7tb-0001vR-5y; Fri, 05 Nov 2021 22:41:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222666.384976; Fri, 05 Nov 2021 22:41:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj7tb-0001vK-30; Fri, 05 Nov 2021 22:41:15 +0000
Received: by outflank-mailman (input) for mailman id 222666;
 Fri, 05 Nov 2021 22:41:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj7tZ-0001vA-1n; Fri, 05 Nov 2021 22:41:13 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj7tY-00010j-MP; Fri, 05 Nov 2021 22:41:12 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mj7tY-0006vC-92; Fri, 05 Nov 2021 22:41:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mj7tY-00033c-8W; Fri, 05 Nov 2021 22:41:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dL0fVUbBfHZOh6XIJCcuXg1zZ8TKphHGgOFkHwzWNeU=; b=2D1GDV0oU5V7zNwNs9bIptEUxh
	QyH7znS5WorF6huRFldw652P5d9FfC8fnRm/Ffz7an7wnaviJduKx5wSbkFC+Dh05ZAAypF9eb9ww
	s15O71mHQgdxdWJAYmpbXvZaYU0VXxsZ3sKyhLVnNtrX7Q4bMN0iiA9O1sqwHCXZMm3k=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166052-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166052: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=18e356a53a2926a15343b914db64324d63748f25
X-Osstest-Versions-That:
    qemuu=b1fd92137e4d485adeec8e9f292f928ff335b76c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Nov 2021 22:41:12 +0000

flight 166052 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166052/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166044
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166044
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166044
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166044
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166044
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166044
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166044
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166044
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                18e356a53a2926a15343b914db64324d63748f25
baseline version:
 qemuu                b1fd92137e4d485adeec8e9f292f928ff335b76c

Last test of basis   166044  2021-11-04 09:06:02 Z    1 days
Testing same since   166052  2021-11-05 05:58:39 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Bennée <alex.bennee@linaro.org>
  Juan Quintela <quintela@redhat.com>
  Juan Quintela <quintela@trasno.org>
  Laurent Vivier <lvivier@redhat.com>
  Lei Rao <lei.rao@intel.com>
  Lukas Straub <lukasstraub2@web.de>
  Mahmoud Mandour <ma.mandourr@gmail.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Pavel Labath <pavel@labath.sk>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Rao, Lei <lei.rao@intel.com>
  Richard Henderson <richard.henderson@linaro.org>
  Taylor Simpson <tsimpson@quicinc.com>
  Thomas Huth <thuth@redhat.com>
  yuxiating <yuxiating@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   b1fd92137e..18e356a53a  18e356a53a2926a15343b914db64324d63748f25 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 23:03:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 23:03:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222675.384991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj8Ev-0004MC-3w; Fri, 05 Nov 2021 23:03:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222675.384991; Fri, 05 Nov 2021 23:03:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj8Ev-0004M5-0z; Fri, 05 Nov 2021 23:03:17 +0000
Received: by outflank-mailman (input) for mailman id 222675;
 Fri, 05 Nov 2021 23:03:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj8Et-0004Lz-SX
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 23:03:15 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d6ae631-3e8c-11ec-a9d2-d9f7a1cc8784;
 Sat, 06 Nov 2021 00:03:14 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 5EE6961159;
 Fri,  5 Nov 2021 23:03:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d6ae631-3e8c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636153392;
	bh=ZioTLqifP4tPK+oG+UaCqA3huIsBqj9rTnTJB+WNAzw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=X03523abx9R3xnTkVj2nYxoVAVO5igBHFfGideMW/eqkrfugII3G+lEPFqi09Qqfe
	 m0nFAxI2bDRShmHG8+r7aAAZbr31y7tPxipDJGxTya+2jV9vQLlhJgBCtjBN0Of/jG
	 0+knts4f3shsgeK0wcXhRcT+ZsT/C9gABjsA4MGE5U1KS4S96QGoxdLOJqfzfCQ+lu
	 z3SzkQv/Pync//HX+XO6wngU9s2yw2N/CXHHCYjcIcJFTqVRN25nGaDSXYyzSZy4G3
	 vzfBfTjahG8HOL6K+pgG/JILBM4G+pYnwEneSPZuWJv+7ksADqFyLqRLOkV7LJMI+4
	 I2hfsp+EzQujw==
Date: Fri, 5 Nov 2021 16:03:11 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Penny Zheng <Penny.Zheng@arm.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Wei Chen <Wei.Chen@arm.com>, Bertrand.Marquis@arm.com
Subject: RE: static-mem preventing dom0 from booting
In-Reply-To: <alpine.DEB.2.22.394.2111050836580.284830@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2111051554000.284830@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop> <DU2PR08MB73256624607E7624CAAD38E5F78E9@DU2PR08MB7325.eurprd08.prod.outlook.com> <DU2PR08MB7325A7A5658B1EB7C6EB4DECF78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
 <alpine.DEB.2.22.394.2111050836580.284830@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 5 Nov 2021, Stefano Stabellini wrote:
> The scenario is extremely simple; you can see the full device tree
> configuration in the attachment to my previous email.
> 
> - dom0
> - dom0less domU with static-mem
> 
> That's it! So basically it is just a normal dom0 + dom0less domU
> configuration, which already works fine, where I added static-mem to the
> domU and suddenly dom0 (not the domU!) stopped working.

I did some more debugging today and I found the problem. The issue is
that static-mem regions are added to the list of reserved_mem. However,
reserved_mem is automatically assigned to Dom0 by default at the bottom
of xen/arch/arm/domain_build.c:handle_node, see the second call to
make_memory_node. Really, we shouldn't give to dom0 static-mem ranges
meant for other domUs. E.g. the following change is sufficient to solve
the problem:

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 88a79247cb..dc609c4f0e 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -891,6 +891,9 @@ static int __init make_memory_node(const struct domain *d,
         u64 start = mem->bank[i].start;
         u64 size = mem->bank[i].size;
 
+        if ( mem->bank[i].xen_domain )
+            continue;
+
         dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
                    i, start, start + size);
 
However, maybe a better fix would be to purge reserved_mem of any
xen_domain items before calling make_memory_node.


I found one additional issue regarding is_domain_direct_mapped which
doesn't return true for static-mem domains. I think we need to add a
direct_map bool to arch_domain and set it for both dom0 and static-mem
dom0less domUs, so that we can change the implementation of
is_domain_direct_mapped to:

#define is_domain_direct_mapped(d) (d->arch.direct_map)


From xen-devel-bounces@lists.xenproject.org Fri Nov 05 23:06:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Nov 2021 23:06:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222682.385002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj8Ha-00050H-Hv; Fri, 05 Nov 2021 23:06:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222682.385002; Fri, 05 Nov 2021 23:06:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mj8Ha-00050A-F1; Fri, 05 Nov 2021 23:06:02 +0000
Received: by outflank-mailman (input) for mailman id 222682;
 Fri, 05 Nov 2021 23:06:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvBC=PY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mj8HY-000504-Tz
 for xen-devel@lists.xenproject.org; Fri, 05 Nov 2021 23:06:00 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef0dc454-3e8c-11ec-9787-a32c541c8605;
 Sat, 06 Nov 2021 00:05:59 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id D626161165;
 Fri,  5 Nov 2021 23:05:55 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef0dc454-3e8c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636153556;
	bh=f7lKiReoiLEL+uPnRE3zXuvLHugz5v6Kn93YBx69LK0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=sWmxIGkkB3MUxV+K6XPDiGu/sD74hkPfK8lHWMEReVbmbqPh1gwR+/LFzB1/iydSD
	 J+oDnRtxoWOOyyaAR2U170vsEWl8INT1Oq4eyG0RN+blb5WYK5LBYYjGvvRNBec+2f
	 Sdj51GMq7heKdWRlnYPKwKRdaJdO1vxEDWCEkfpnBLBmwxnkw4qS+X+bNF8mGwV8g0
	 RmhS3x2EJGDM1tKgDN1zvJ/4061j5mVt9dhryHI2EABMNDtg7x8zJWbIDUybNXqhDK
	 YrUuZoZc0CFiXXkyekreBLk/vOjFYL8bMm7c8FeZDWQKIE53JetzEpYpueAqzuy6rd
	 wPrAWtFKLRjhg==
Date: Fri, 5 Nov 2021 16:05:54 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Penny Zheng <Penny.Zheng@arm.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Wei Chen <Wei.Chen@arm.com>, julien@xen.org, Bertrand.Marquis@arm.com, 
    Volodymyr_Babchuk@epam.com, iwj@xenproject.org
Subject: RE: static-mem preventing dom0 from booting
In-Reply-To: <alpine.DEB.2.22.394.2111051554000.284830@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2111051604530.284830@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop> <DU2PR08MB73256624607E7624CAAD38E5F78E9@DU2PR08MB7325.eurprd08.prod.outlook.com> <DU2PR08MB7325A7A5658B1EB7C6EB4DECF78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
 <alpine.DEB.2.22.394.2111050836580.284830@ubuntu-linux-20-04-desktop> <alpine.DEB.2.22.394.2111051554000.284830@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

+ Julien, Ian and others

On Fri, 5 Nov 2021, Stefano Stabellini wrote:
> On Fri, 5 Nov 2021, Stefano Stabellini wrote:
> > The scenario is extremely simple; you can see the full device tree
> > configuration in the attachment to my previous email.
> > 
> > - dom0
> > - dom0less domU with static-mem
> > 
> > That's it! So basically it is just a normal dom0 + dom0less domU
> > configuration, which already works fine, where I added static-mem to the
> > domU and suddenly dom0 (not the domU!) stopped working.
> 
> I did some more debugging today and I found the problem. The issue is
> that static-mem regions are added to the list of reserved_mem. However,
> reserved_mem is automatically assigned to Dom0 by default at the bottom
> of xen/arch/arm/domain_build.c:handle_node, see the second call to
> make_memory_node. Really, we shouldn't give to dom0 static-mem ranges
> meant for other domUs. E.g. the following change is sufficient to solve
> the problem:
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 88a79247cb..dc609c4f0e 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -891,6 +891,9 @@ static int __init make_memory_node(const struct domain *d,
>          u64 start = mem->bank[i].start;
>          u64 size = mem->bank[i].size;
>  
> +        if ( mem->bank[i].xen_domain )
> +            continue;
> +
>          dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
>                     i, start, start + size);
>  
> However, maybe a better fix would be to purge reserved_mem of any
> xen_domain items before calling make_memory_node.
> 
> 
> I found one additional issue regarding is_domain_direct_mapped which
> doesn't return true for static-mem domains. I think we need to add a
> direct_map bool to arch_domain and set it for both dom0 and static-mem
> dom0less domUs, so that we can change the implementation of
> is_domain_direct_mapped to:
> 
> #define is_domain_direct_mapped(d) (d->arch.direct_map)
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 06 01:32:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Nov 2021 01:32:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222690.385012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjAYf-0003yf-84; Sat, 06 Nov 2021 01:31:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222690.385012; Sat, 06 Nov 2021 01:31:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjAYf-0003yY-4a; Sat, 06 Nov 2021 01:31:49 +0000
Received: by outflank-mailman (input) for mailman id 222690;
 Sat, 06 Nov 2021 01:31:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjAYe-0003yO-CO; Sat, 06 Nov 2021 01:31:48 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjAYe-00063b-3I; Sat, 06 Nov 2021 01:31:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjAYd-0007dr-JE; Sat, 06 Nov 2021 01:31:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjAYd-000096-Io; Sat, 06 Nov 2021 01:31:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=3FJBNckL1/JQVlgIT2TW5N2X+kc1Dnlk9jZtRufNr+A=; b=kh87lY9dr2TwvUJhb7E9VPYMIj
	f4RqYkhimFV6VHARGxOXoN0rxIrR3RW/do7mTxFCtwADFDZibIaFZ+pE/C2nJJA9fe9TLN6pT1YFD
	vPLEaCRH2cifMcz7Qb1IaAnHez5BEe2MdU3BBIqGMqy0r+UqscV05fQuURZ0ezDsWjQQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166063-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166063: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=4050c873b51f59cb6fcd7665029f931e727e0e4f
X-Osstest-Versions-That:
    ovmf=b258f12889c09555e99c9cebf56dba45190c5dc2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Nov 2021 01:31:47 +0000

flight 166063 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166063/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 4050c873b51f59cb6fcd7665029f931e727e0e4f
baseline version:
 ovmf                 b258f12889c09555e99c9cebf56dba45190c5dc2

Last test of basis   166042  2021-11-04 06:02:12 Z    1 days
Testing same since   166063  2021-11-05 20:10:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abner Chang <abner.chang@hpe.com>
  Jiewen Yao <Jiewen.yao@intel.com>
  Michael D Kinney <michael.d.kinney@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   b258f12889..4050c873b5  4050c873b51f59cb6fcd7665029f931e727e0e4f -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Nov 06 05:50:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Nov 2021 05:50:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222700.385030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjEaQ-0001MF-Nk; Sat, 06 Nov 2021 05:49:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222700.385030; Sat, 06 Nov 2021 05:49:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjEaQ-0001M7-Iw; Sat, 06 Nov 2021 05:49:54 +0000
Received: by outflank-mailman (input) for mailman id 222700;
 Sat, 06 Nov 2021 05:49:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjEaO-0001Lx-W0; Sat, 06 Nov 2021 05:49:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjEaO-0002f9-Nj; Sat, 06 Nov 2021 05:49:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjEaO-0003kX-Ai; Sat, 06 Nov 2021 05:49:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjEaO-0005Ii-AJ; Sat, 06 Nov 2021 05:49:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=y+hxefW/M8DIXeV6MIix1zibkyCjkSt430xpVzjRL7M=; b=3cRYxschrd4ef2L8kcaibO7LbE
	4LwhjQ08GaTPizaoP4kcmkno1PRdgBW1niAI8WV6ALnGz52eQmmzIvfbqyCj5NWlw7aFLeK7kVMmU
	++aOwwB2LF/Bo/Y5urqh9sFWEf0Ja6+iGsRJ4tLHmvt+iV41ntydafx3hRGyDUyOGsqM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166062-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166062: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-debianhvm-amd64:guest-start/debianhvm.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
X-Osstest-Versions-That:
    xen=faddd16e367530fe4de5480610f69d8ceb6011d8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Nov 2021 05:49:52 +0000

flight 166062 xen-unstable real [real]
flight 166068 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166062/
http://logs.test-lab.xenproject.org/osstest/logs/166068/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 20 guest-start/debianhvm.repeat fail pass in 166068-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166049
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166049
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166049
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166049
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166049
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166049
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166049
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166049
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166049
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166049
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166049
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166049
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b
baseline version:
 xen                  faddd16e367530fe4de5480610f69d8ceb6011d8

Last test of basis   166049  2021-11-05 01:54:00 Z    1 days
Testing same since   166062  2021-11-05 19:36:38 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Luca Fancellu <luca.fancellu@arm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   faddd16e36..9bc9fff04b  9bc9fff04ba077c4a9782f12578362d8947c534b -> master


From xen-devel-bounces@lists.xenproject.org Sat Nov 06 11:46:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Nov 2021 11:46:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222714.385047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjK9E-00088T-5c; Sat, 06 Nov 2021 11:46:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222714.385047; Sat, 06 Nov 2021 11:46:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjK9E-00088M-23; Sat, 06 Nov 2021 11:46:12 +0000
Received: by outflank-mailman (input) for mailman id 222714;
 Sat, 06 Nov 2021 11:46:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yfqQ=PZ=redhat.com=quintela@srs-se1.protection.inumbo.net>)
 id 1mjK9C-00088G-2d
 for xen-devel@lists.xenproject.org; Sat, 06 Nov 2021 11:46:10 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c5e19c4-3ef7-11ec-9787-a32c541c8605;
 Sat, 06 Nov 2021 12:46:02 +0100 (CET)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-454-l9HxVa9XPHqeru-QZjFeIw-1; Sat, 06 Nov 2021 07:45:58 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 g80-20020a1c2053000000b003331a764709so2152705wmg.2
 for <xen-devel@lists.xenproject.org>; Sat, 06 Nov 2021 04:45:57 -0700 (PDT)
Received: from localhost ([178.139.230.94])
 by smtp.gmail.com with ESMTPSA id t8sm8541831wmq.32.2021.11.06.04.45.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 06 Nov 2021 04:45:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c5e19c4-3ef7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1636199159;
	h=from:from:reply-to:reply-to:subject:subject:date:date:
	 message-id:message-id:to:to:cc:cc:mime-version:mime-version:
	 content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Cnxx2Tj189dc6BUL6LWLlDG155Pqih41c6nmxkCVYvU=;
	b=dr9fx3yBFOkxmPfV62Leflen+5xwbDeT0MiPU/NxycPNz/5yJTQFqGSFeSqkwIW9+bM6/i
	b4kpwMfMNpjkCICYgk99pmb7iJdp+Ae+BFSWvQK9lT7WuPXZ5/r/Ulvy8AYH8ts+VdN0pi
	E6OZdSf1vs9Iid49JB+swZgjhvFjubo=
X-MC-Unique: l9HxVa9XPHqeru-QZjFeIw-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:in-reply-to:references
         :user-agent:reply-to:date:message-id:mime-version
         :content-transfer-encoding;
        bh=Cnxx2Tj189dc6BUL6LWLlDG155Pqih41c6nmxkCVYvU=;
        b=wz9RYnKGwoQABZTWiEGgf71fVRSw6pga8LuWz5VPrLqk/Zh1kshK+9FCwryAPQJ07b
         m8AIsWwW4AgAcUWnNcdlJQaGkDkm7gUzlb0RbHyIp6hzy/TzSvTS6Msbn5VYRjM/EB9I
         Kb3jpSnTz5RtgOFmHPYIdLS06DxjtF3qv2797u1ah6oNG/oEJI0DK2oPtGJK3TPc7mfB
         8ffx/3Cy1uV6gcG1wG19O7jZnDuZpE8n010wcpqjdWYzwAywJW3P7cND2wVtK/wtsNkE
         5nYC7p0kbciw5Cgjfx1HpAQINDp5QJZERB266/LWIag1XRiRkBJgYuyhl/s4JZbrBdVc
         gPBw==
X-Gm-Message-State: AOAM531St4wCyPRSMyNrqR+jLJVWw6AgBXYEg/NsaX/uY/bdxwkO8CHe
	V2Ce9D5HK0RBHkhmau0oSqdBgkZ5m9mNic90ErRHJDBvNF7YLAIm1Fmd9h8zDEr2aFbr4AMtNzR
	sQwtsPUgW0LiFDjSgc/kZ88RjTfM=
X-Received: by 2002:a7b:c4c4:: with SMTP id g4mr36521073wmk.93.1636199156729;
        Sat, 06 Nov 2021 04:45:56 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJzMxAvhoUUm4X8ECxWpBYCM4doPEZ8ec3FX/83U4znN+uCwNPGfmTfYrdtDKUB/9dwB/eM1YA==
X-Received: by 2002:a7b:c4c4:: with SMTP id g4mr36521035wmk.93.1636199156503;
        Sat, 06 Nov 2021 04:45:56 -0700 (PDT)
From: Juan Quintela <quintela@redhat.com>
To: Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= <philmd@redhat.com>
Cc: qemu-devel@nongnu.org,  Laurent Vivier <laurent@vivier.eu>,  Markus
 Armbruster <armbru@redhat.com>,  David Hildenbrand <david@redhat.com>,
  Eduardo Habkost <ehabkost@redhat.com>,  xen-devel@lists.xenproject.org,
  Richard Henderson <richard.henderson@linaro.org>,  Stefano Stabellini
 <sstabellini@kernel.org>,  Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
  Eric Blake <eblake@redhat.com>,  kvm@vger.kernel.org,  Peter Xu
 <peterx@redhat.com>,  =?utf-8?Q?Marc-Andr=C3=A9?= Lureau
 <marcandre.lureau@redhat.com>,
  Paul Durrant <paul@xen.org>,  Paolo Bonzini <pbonzini@redhat.com>,  "Dr.
 David Alan Gilbert" <dgilbert@redhat.com>,  "Michael S. Tsirkin"
 <mst@redhat.com>,  Anthony Perard <anthony.perard@citrix.com>,
  =?utf-8?B?SHltYW4gSHVhbmcow6nCu+KAnsOl4oC54oChKQ==?=
 <huangy81@chinatelecom.cn>
Subject: Re: [PULL 07/20] migration/dirtyrate: implement dirty-ring
 dirtyrate calculation
In-Reply-To: <6f8b30c5-d93d-882d-cf1a-502592e4bcf8@redhat.com> ("Philippe
	=?utf-8?Q?Mathieu-Daud=C3=A9=22's?= message of "Thu, 4 Nov 2021 23:05:14
 +0100")
References: <20211101220912.10039-1-quintela@redhat.com>
	<20211101220912.10039-8-quintela@redhat.com>
	<6f8b30c5-d93d-882d-cf1a-502592e4bcf8@redhat.com>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Reply-To: quintela@redhat.com
Date: Sat, 06 Nov 2021 12:45:54 +0100
Message-ID: <87pmrdfqx9.fsf@secure.mitica>
MIME-Version: 1.0
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Philippe Mathieu-Daud=C3=A9 <philmd@redhat.com> wrote:
> Hi Juan,
>
> On 11/1/21 23:08, Juan Quintela wrote:
>> From: Hyman Huang(=C3=A9=C2=BB=E2=80=9E=C3=A5=E2=80=B9=E2=80=A1) <huangy=
81@chinatelecom.cn>
>>=20
>> use dirty ring feature to implement dirtyrate calculation.
>>=20
>> introduce mode option in qmp calc_dirty_rate to specify what
>> method should be used when calculating dirtyrate, either
>> page-sampling or dirty-ring should be passed.
>>=20
>> introduce "dirty_ring:-r" option in hmp calc_dirty_rate to
>> indicate dirty ring method should be used for calculation.
>>=20
>> Signed-off-by: Hyman Huang(=C3=A9=C2=BB=E2=80=9E=C3=A5=E2=80=B9=E2=80=A1=
) <huangy81@chinatelecom.cn>
>
> Just noticing in the git history some commits from your
> pull request have the author name (from + S-o-b) mojibaked.

Didn't knew the term.

I noticed that after the fact.  Still have to debug *why* my setup
decided to break some of the patches and not the others.  Obviosly, I
have no clue about how to write/read/whatever anything that is not
latin1, so if something breaks, I got in a difficult place O:-)

Thanks, Juan.

>> <7db445109bd18125ce8ec86816d14f6ab5de6a7d.1624040308.git.huangy81@chinat=
elecom.cn>
>> Reviewed-by: Peter Xu <peterx@redhat.com>
>> Reviewed-by: Juan Quintela <quintela@redhat.com>
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> ---
>>  qapi/migration.json    |  16 +++-
>>  migration/dirtyrate.c  | 208 +++++++++++++++++++++++++++++++++++++++--
>>  hmp-commands.hx        |   7 +-
>>  migration/trace-events |   2 +
>>  4 files changed, 218 insertions(+), 15 deletions(-)



From xen-devel-bounces@lists.xenproject.org Sat Nov 06 13:26:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Nov 2021 13:26:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222722.385058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjLhM-0000T6-Fd; Sat, 06 Nov 2021 13:25:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222722.385058; Sat, 06 Nov 2021 13:25:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjLhM-0000Sz-Cd; Sat, 06 Nov 2021 13:25:32 +0000
Received: by outflank-mailman (input) for mailman id 222722;
 Sat, 06 Nov 2021 13:25:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mjLhL-0000St-4k
 for xen-devel@lists.xenproject.org; Sat, 06 Nov 2021 13:25:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mjLhJ-0002BP-Ok; Sat, 06 Nov 2021 13:25:29 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[192.168.23.222]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mjLhJ-0004AC-H2; Sat, 06 Nov 2021 13:25:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=4c6QIT2egaO+YodV9TZFQFDYWkVXnH4Xsxu63oaRqDY=; b=IxRDMAX4bgsGuIDG1CmrcS8KPg
	mu3pQ1nWXqOn5vAob6iG+loAt/iE5A68g8XYjgPrZxIFer2Ulpdmr0b0INFagpXdYc0qjwh+yh9FU
	o2ydrNKmY3DkiNxV2b7tjnaMxt7WDpjrAE+S2Ght+cjkHUaGCMnExFIhpj6cMMfqnSQc=;
Message-ID: <7e94c7a2-7b20-2fb7-ee0a-ca24f6044fcc@xen.org>
Date: Sat, 6 Nov 2021 13:25:27 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: static-mem preventing dom0 from booting
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Penny Zheng <Penny.Zheng@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Wei Chen <Wei.Chen@arm.com>, Bertrand.Marquis@arm.com,
 Volodymyr_Babchuk@epam.com, iwj@xenproject.org
References: <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop>
 <DU2PR08MB73256624607E7624CAAD38E5F78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
 <DU2PR08MB7325A7A5658B1EB7C6EB4DECF78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
 <alpine.DEB.2.22.394.2111050836580.284830@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2111051554000.284830@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2111051604530.284830@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111051604530.284830@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 05/11/2021 23:05, Stefano Stabellini wrote:
> On Fri, 5 Nov 2021, Stefano Stabellini wrote:
>> On Fri, 5 Nov 2021, Stefano Stabellini wrote:
>>> The scenario is extremely simple; you can see the full device tree
>>> configuration in the attachment to my previous email.
>>>
>>> - dom0
>>> - dom0less domU with static-mem
>>>
>>> That's it! So basically it is just a normal dom0 + dom0less domU
>>> configuration, which already works fine, where I added static-mem to the
>>> domU and suddenly dom0 (not the domU!) stopped working.
>>
>> I did some more debugging today and I found the problem. The issue is
>> that static-mem regions are added to the list of reserved_mem. However,
>> reserved_mem is automatically assigned to Dom0 by default at the bottom
>> of xen/arch/arm/domain_build.c:handle_node, see the second call to
>> make_memory_node. Really, we shouldn't give to dom0 static-mem ranges
>> meant for other domUs. E.g. the following change is sufficient to solve
>> the problem:
>>
>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>> index 88a79247cb..dc609c4f0e 100644
>> --- a/xen/arch/arm/domain_build.c
>> +++ b/xen/arch/arm/domain_build.c
>> @@ -891,6 +891,9 @@ static int __init make_memory_node(const struct domain *d,
>>           u64 start = mem->bank[i].start;
>>           u64 size = mem->bank[i].size;
>>   
>> +        if ( mem->bank[i].xen_domain )
>> +            continue;
>> +
>>           dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
>>                      i, start, start + size);
>>   
>> However, maybe a better fix would be to purge reserved_mem of any
>> xen_domain items before calling make_memory_node.

I would rather not modify boot_info.reserved_mem because it may be used 
afterwards. I think your approach is the right one.

Alternatively, we would rework make_memory_node() to create one node per 
range (rather than a node with multiple ranges). This would move the 
loop outside of make_memory_node(). The advantage is we have more 
flexibily how on to filter ranges (in the future we may need to pass 
some reserved ranges to a domain).

>>
>>
>> I found one additional issue regarding is_domain_direct_mapped which
>> doesn't return true for static-mem domains. I think we need to add a
>> direct_map bool to arch_domain and set it for both dom0 and static-mem
>> dom0less domUs, so that we can change the implementation of
>> is_domain_direct_mapped to:
>>
>> #define is_domain_direct_mapped(d) (d->arch.direct_map)

In Xen 4.16, static-mem domains are not direct mapped (i.e MFN == GFN). 
Instead, the static memory is used to allocate memory for the domain at 
the default regions in the guest memory layout.

If you want to direct map static-mem domains, then you would have to 
apply [1] from Penny which is still under review.

Cheers,

[1] <20211015030945.2082898-1-penny.zheng@arm.com>

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Nov 06 18:57:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Nov 2021 18:57:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222729.385069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjQrh-0004eY-1y; Sat, 06 Nov 2021 18:56:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222729.385069; Sat, 06 Nov 2021 18:56:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjQrg-0004eR-VQ; Sat, 06 Nov 2021 18:56:32 +0000
Received: by outflank-mailman (input) for mailman id 222729;
 Sat, 06 Nov 2021 18:56:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjQrf-0004eG-JP; Sat, 06 Nov 2021 18:56:31 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjQrf-0008Bg-29; Sat, 06 Nov 2021 18:56:31 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjQre-0005fO-Ly; Sat, 06 Nov 2021 18:56:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjQre-0007zF-LT; Sat, 06 Nov 2021 18:56:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=jp/uxXp/a2aAnD+vqyPviEml1QxQfXkc7YcBhGEAxRo=; b=FmkzTEJlCxHqPR+bhBOqogPkhh
	gkOyE2u/UMwmgmYuCObBBbALeQe2oyRNQFDwcoQPI+RdeQAoY2Zxs5Ibisb3/ph0W/PALyUoNAxLX
	GtuSmeXopQPbeBLw9tvV8hBryX0wSg6JOAmlWNRUSwPExO4Q+nknAOeUes8B2PNgsS6Y=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166067-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166067: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=3bc6f46d305ed82f7314ffc4c2a66847b831a6bd
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Nov 2021 18:56:30 +0000

flight 166067 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166067/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              3bc6f46d305ed82f7314ffc4c2a66847b831a6bd
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  484 days
Failing since        151818  2020-07-11 04:18:52 Z  483 days  469 attempts
Testing same since   166067  2021-11-06 04:20:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 82561 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Nov 06 19:17:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Nov 2021 19:17:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222738.385084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjRBn-00071O-R3; Sat, 06 Nov 2021 19:17:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222738.385084; Sat, 06 Nov 2021 19:17:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjRBn-00071H-Ny; Sat, 06 Nov 2021 19:17:19 +0000
Received: by outflank-mailman (input) for mailman id 222738;
 Sat, 06 Nov 2021 19:17:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjRBm-000717-OD; Sat, 06 Nov 2021 19:17:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjRBm-00006L-Ih; Sat, 06 Nov 2021 19:17:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjRBm-0006BE-8I; Sat, 06 Nov 2021 19:17:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjRBm-0002IQ-7m; Sat, 06 Nov 2021 19:17:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Vs4Gh1agm1SMvwEz+MbCBbd1lyXuHDkNO/ibswKmZj8=; b=OS10sFw7QPoPZT5Umfh+vmNc3e
	3O6d2bbj9rVoFwfW/idPP0CBdMBxhrZRwezBe8bipjNgu0AwcPycBMwl1Slogc/NtIM5fJQSORKgQ
	w5vkb+cXAxs74JNhggEydwh+xD6ZTDuogSdo/UwaAekI35ZRSQyPp/lSnfY050ixfkHs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166065-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166065: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=c39deb218178d1fb814dd2138ceff4b541a03d85
X-Osstest-Versions-That:
    qemuu=18e356a53a2926a15343b914db64324d63748f25
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Nov 2021 19:17:18 +0000

flight 166065 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166065/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166052
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166052
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166052
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166052
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166052
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166052
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166052
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166052
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                c39deb218178d1fb814dd2138ceff4b541a03d85
baseline version:
 qemuu                18e356a53a2926a15343b914db64324d63748f25

Last test of basis   166052  2021-11-05 05:58:39 Z    1 days
Testing same since   166065  2021-11-05 23:06:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dongwon Kim <dongwon.kim@intel.com>
  Eduardo Habkost <ehabkost@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Jason Wang <jasowang@redhat.com>
  Jean-Louis Dupond <jean-louis@dupond.be>
  Jon Maloy <jmaloy@redhat.com>
  Khairul Anuar Romli <khairul.anuar.romli@intel.com>
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   18e356a53a..c39deb2181  c39deb218178d1fb814dd2138ceff4b541a03d85 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Sat Nov 06 19:24:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Nov 2021 19:24:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222746.385097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjRIL-0008U7-Pk; Sat, 06 Nov 2021 19:24:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222746.385097; Sat, 06 Nov 2021 19:24:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjRIL-0008U0-M5; Sat, 06 Nov 2021 19:24:05 +0000
Received: by outflank-mailman (input) for mailman id 222746;
 Sat, 06 Nov 2021 19:24:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjRIK-0008Tq-Ch; Sat, 06 Nov 2021 19:24:04 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjRIK-0000DC-7q; Sat, 06 Nov 2021 19:24:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjRIJ-0006JY-Ux; Sat, 06 Nov 2021 19:24:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjRIJ-0004Nj-UP; Sat, 06 Nov 2021 19:24:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=R/80jqogN1S4l4cJa7s1VzQvdIuPJJkMHH+bgeuKzAU=; b=YrNo7qwPIYNkv/7uT0kTzcWEna
	d98O+oC/sTKrWhqsGNivLuVjemnKdRRK/D3q3u+oYLOCFQIjP8mBRpnhxDDC3CFn9xswHAxCAAnKJ
	gWfVbajZdPEhfSHvFcTjYHpNVa16kpVx6mBxn1YjEM185Bi+TjwUKMeKngT+k81y4GV0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166064-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166064: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:leak-check/basis(11):fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=fe91c4725aeed35023ba4f7a1e1adfebb6878c23
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Nov 2021 19:24:03 +0000

flight 166064 linux-linus real [real]
flight 166071 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166064/
http://logs.test-lab.xenproject.org/osstest/logs/166071/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds     11 leak-check/basis(11)     fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                fe91c4725aeed35023ba4f7a1e1adfebb6878c23
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    4 days
Failing since        165992  2021-11-02 05:40:21 Z    4 days    6 attempts
Testing same since   166064  2021-11-05 22:44:04 Z    0 days    1 attempts

------------------------------------------------------------
1770 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 189447 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Nov 06 21:28:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Nov 2021 21:28:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222757.385112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjTE0-0002UR-QF; Sat, 06 Nov 2021 21:27:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222757.385112; Sat, 06 Nov 2021 21:27:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjTE0-0002UK-ME; Sat, 06 Nov 2021 21:27:44 +0000
Received: by outflank-mailman (input) for mailman id 222757;
 Sat, 06 Nov 2021 21:27:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjTDz-0002U9-Ac; Sat, 06 Nov 2021 21:27:43 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjTDz-0002IC-0d; Sat, 06 Nov 2021 21:27:43 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjTDy-0003Kz-8h; Sat, 06 Nov 2021 21:27:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjTDy-0002fQ-8E; Sat, 06 Nov 2021 21:27:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QQevf7fiRSUV9D36e6FIkM6Gk6WXYAbU4o72S5U6i+c=; b=l2536sA1IQOc0C97qjBNagF3Wk
	NPOFwk38C/CHcxAgs0D/b/cTjrka5U6q2HCybvUXvayR6s8krmM9+alJLTSo6wUbyDbqWJwWxbAVV
	H4vXQ2DIuRwCEArARwrQVgbd+G+WJoTSvZg/YU3xmimxBcxoyEgLfIetkkLLhZ+QCDSE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166069-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166069: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-debianhvm-amd64:guest-start/debianhvm.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
X-Osstest-Versions-That:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Nov 2021 21:27:42 +0000

flight 166069 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166069/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 20 guest-start/debianhvm.repeat fail in 166062 pass in 166069
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166062

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166062
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166062
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166062
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166062
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166062
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166062
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166062
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166062
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166062
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166062
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166062
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166062
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b
baseline version:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b

Last test of basis   166069  2021-11-06 05:53:10 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Nov 07 03:11:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 03:11:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222766.385126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjYZz-0002BT-7d; Sun, 07 Nov 2021 03:10:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222766.385126; Sun, 07 Nov 2021 03:10:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjYZz-0002B2-1R; Sun, 07 Nov 2021 03:10:47 +0000
Received: by outflank-mailman (input) for mailman id 222766;
 Sun, 07 Nov 2021 03:10:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjYZx-0002As-Nh; Sun, 07 Nov 2021 03:10:45 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjYZx-0001yd-FU; Sun, 07 Nov 2021 03:10:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjYZw-0005TV-WC; Sun, 07 Nov 2021 03:10:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjYZw-00016i-Vd; Sun, 07 Nov 2021 03:10:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=z49P3qhTRp0MDeuL42ji8EhHdUzSomGO5zIMlqV5QL4=; b=0PzxBPoLMtahyhHTSlQaLcNQtt
	r9bz8XaKcUGYhcc3jfVqhh8QSk6dUjdn2wwiO+EQG82mSYOWa5HTSh5XSxc4n7sCsdbBrDc79xC8M
	HQg0XY5KllgZqqBYaRcu0g582RHstNx+6m/r2Fr0Ku3mrY+bOtMAubZiZBtmIaLl8rls=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166070-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-5.4 test] 166070: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-5.4:test-amd64-amd64-xl-qemuu-debianhvm-amd64:guest-start/debianhvm.repeat:fail:heisenbug
    linux-5.4:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c65356f0f7268b1260dd64415c2145e73640872e
X-Osstest-Versions-That:
    linux=e6de9a8b5b30ebbc4d96df447ddee3202f1b4daf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Nov 2021 03:10:44 +0000

flight 166070 linux-5.4 real [real]
flight 166074 linux-5.4 real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166070/
http://logs.test-lab.xenproject.org/osstest/logs/166074/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 20 guest-start/debianhvm.repeat fail pass in 166074-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166019
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166019
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166019
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166019
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166019
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166019
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166019
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166019
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166019
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166019
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166019
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166019
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                c65356f0f7268b1260dd64415c2145e73640872e
baseline version:
 linux                e6de9a8b5b30ebbc4d96df447ddee3202f1b4daf

Last test of basis   166019  2021-11-02 19:12:09 Z    4 days
Testing same since   166070  2021-11-06 13:12:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dan Carpenter <dan.carpenter@oracle.com>
  David Ahern <dsahern@kernel.org>
  David S. Miller <davem@davemloft.net>
  Erik Ekman <erik@kryo.se>
  Eugene Crosser <crosser@average.org>
  Florian Fainelli <f.fainelli@gmail.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guenter Roeck <linux@roeck-us.net>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  Jon Hunter <jonathanh@nvidia.com>
  Kefeng Wang <wangkefeng.wang@huawei.com>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Ming Lei <ming.lei@redhat.com>
  Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
  Shuah Khan <skhan@linuxfoundation.org>
  Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
  Wang Kefeng <wangkefeng.wang@huawei.com>
  Yi Zhang <yi.zhang@redhat.com>
  Yuiko Oshino <yuiko.oshino@microchip.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   e6de9a8b5b30..c65356f0f726  c65356f0f7268b1260dd64415c2145e73640872e -> tested/linux-5.4


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 04:45:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 04:45:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222774.385140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mja35-0002FT-57; Sun, 07 Nov 2021 04:44:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222774.385140; Sun, 07 Nov 2021 04:44:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mja34-0002F7-TD; Sun, 07 Nov 2021 04:44:54 +0000
Received: by outflank-mailman (input) for mailman id 222774;
 Sun, 07 Nov 2021 04:44:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=isTu=P2=intel.com=lkp@srs-se1.protection.inumbo.net>)
 id 1mja33-0002F1-BG
 for xen-devel@lists.xenproject.org; Sun, 07 Nov 2021 04:44:53 +0000
Received: from mga03.intel.com (mga03.intel.com [134.134.136.65])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6fa1ac81-3f85-11ec-9787-a32c541c8605;
 Sun, 07 Nov 2021 05:44:49 +0100 (CET)
Received: from fmsmga001.fm.intel.com ([10.253.24.23])
 by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Nov 2021 21:44:46 -0700
Received: from lkp-server02.sh.intel.com (HELO c20d8bc80006) ([10.239.97.151])
 by fmsmga001.fm.intel.com with ESMTP; 06 Nov 2021 21:44:43 -0700
Received: from kbuild by c20d8bc80006 with local (Exim 4.92)
 (envelope-from <lkp@intel.com>)
 id 1mja2s-000A9Y-DV; Sun, 07 Nov 2021 04:44:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6fa1ac81-3f85-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10160"; a="232029061"
X-IronPort-AV: E=Sophos;i="5.87,215,1631602800"; 
   d="gz'50?scan'50,208,50";a="232029061"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,215,1631602800"; 
   d="gz'50?scan'50,208,50";a="640673195"
Date: Sun, 7 Nov 2021 12:43:39 +0800
From: kernel test robot <lkp@intel.com>
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	Juergen Gross <jgross@suse.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	alsa-devel@alsa-project.org
Subject: Re: [PATCH 5/5] xen: flag xen_snd_front to be not essential for
 system boot
Message-ID: <202111071205.aND24GaT-lkp@intel.com>
References: <20211022064800.14978-6-jgross@suse.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="d6Gm4EdcadzBjdND"
Content-Disposition: inline
In-Reply-To: <20211022064800.14978-6-jgross@suse.com>
User-Agent: Mutt/1.10.1 (2018-07-13)


--d6Gm4EdcadzBjdND
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi Juergen,

I love your patch! Yet something to improve:

[auto build test ERROR on xen-tip/linux-next]
[also build test ERROR on tty/tty-testing tiwai-sound/for-next hid/for-next linus/master v5.15 next-20211106]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Juergen-Gross/xen-cleanup-detection-of-non-essential-pv-devices/20211022-145043
base:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
config: arm64-randconfig-r005-20211025 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project a461fa64bb37cffd73f683c74f6b0780379fc2ca)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://github.com/0day-ci/linux/commit/ed8f15a6cafc5414c3821aad66273c580034c3c0
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Juergen-Gross/xen-cleanup-detection-of-non-essential-pv-devices/20211022-145043
        git checkout ed8f15a6cafc5414c3821aad66273c580034c3c0
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash sound/xen/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> sound/xen/xen_snd_front.c:361:23: error: unexpected ';' before '}'
           .not_essential = true;
                                ^
   1 error generated.


vim +361 sound/xen/xen_snd_front.c

   355	
   356	static struct xenbus_driver xen_driver = {
   357		.ids = xen_drv_ids,
   358		.probe = xen_drv_probe,
   359		.remove = xen_drv_remove,
   360		.otherend_changed = sndback_changed,
 > 361		.not_essential = true;
   362	};
   363	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

--d6Gm4EdcadzBjdND
Content-Type: application/gzip
Content-Disposition: attachment; filename=".config.gz"
Content-Transfer-Encoding: base64

H4sICL9Ph2EAAy5jb25maWcAnDzLdhu5jvv+Cp305s7idutl2Zk5XlBVrBJb9TLJkmVv6ii2
nOtpP3JlOd35+wuQ9SBZLDkzWSQRAYIgCIIACNavv/w6Iu/H1+fd8fFu9/T0Y/R1/7I/7I77
+9HD49P+f0ZhPspyOaIhk78BcvL48v7377vD82I+OvttMv9tPFrvDy/7p1Hw+vLw+PUd+j6+
vvzy6y9BnkUsroKg2lAuWJ5Vkm7l5ae7p93L19H3/eEN8EZIAWj84+vj8b9//x3+fn48HF4P
vz89fX+uvh1e/3d/dxzd7R/uxpOH3eJsd77/cnc3Gd99eZjdzb58mU7PL3aL3WQ6vd/vHv7r
UzNq3A17OTZYYaIKEpLFlz/aRvzZ4k7mY/jTwIjADnFWdujQ1OBOZ+cdahL2x4M26J4kYdc9
MfDssYC5FRAnIq3iXOYGgzagyktZlNILZ1nCMtoDZXlV8DxiCa2irCJS8g6F8avqOufrrmVZ
siSULKWVJEvoInJujCZXnBKYVxbl8BegCOwKy/3rKFaa8zR62x/fv3UKwDImK5ptKsJh/ixl
8nI2bTnM0wL5klQYgyR5QJJGTJ8+WZxVgiTSaAxpRMpEqmE8zatcyIyk9PLTP15eX/agIb+O
ahRxIzasCEaPb6OX1yOy3cGKXLBtlV6VtKQmQg2+JjJYVQoKXLe9Ap4LUaU0zfkNypkEK0/n
UtCELc1+pITd5cFckQ0FscFQCgMYBrkkjbxh6UZv71/efrwd98+dvGOaUc4CtbKw7EtDH0yQ
WOXXw5AqoRua+OE0imggGbIWRVWqNcCDl7KYE4lL6AWz7A8kY4JXhIcAEpW4rjgVNAv9XYMV
K2wVDvOUsMzXVq0Y5SjDGxsaESFpzjowjJ6FCSjdALsF6wNSwRA4CPDypWB5mpbmxHHohmOL
ouI15wEN673HTOslCsIF9fOgxqfLMo6EUrb9y/3o9cFRG7eT2vibTtMccABbcw2qkUlDTEpD
0dBIFqyrJc9JGBBzP3t6+9DU2OsS7UVtD5Sey8dnOCx8qq7GyzMKGmuQAXO3ukXLkirdancZ
NBbARh6ywLPXdC8Gy2D20a1RmSSeLvAPHmmV5CRY62XpTIED02s4NK6hCSxeoe4rYXBr4Xpy
aO1iEZmqBBuTQlP1B5POGl2TTLaWsUNRUoafPhEjVk8bsLHMCs42LbU8ikxebWpNv4JTmhYS
5pxZUm7aN3lSZpLwG79N1lgeGTb9gxy6NxMKivJ3uXv7c3QEuY12wNfbcXd8G+3u7l7fX46P
L1+7WW4Yh95FWZFA0XAWU+mZDfZw4SGCmm8Swi2ptPwkoaUI0XIHFA4TQDRW0YVUm5nFJ9hi
IYkUPhkJZokcjFCzdiETeNKHttTrlfwJMbb7AebORJ40Rl8tAw/KkfBsXViyCmAmT/CzolvY
o741FhrZ7O404eQVjdrceEC9pjKkvnbctQ4ACYNsk6SzLAYko2CfBY2DZcKU5WrlZ8/fUIW1
/o9X1dl6BZYe9r9HEI0xFcEKxlQmtZG1uPvX/v79aX8YPex3x/fD/k0115x4oJZ1EGVRgK8H
/mKZkmpJwDEOrMOmdidZJifTC8e0tJ1d6BAxu73VRZopVTQGjXleFsZpU5CY6p1ODT8WnK4g
dn5Wa/jHpaTl1rVGhPHKCwkiOKXgYL5moVxZeirNDt4FrMcqWOhbwhrKw5T02ItAs2/VzDpi
BbiM9qZ2BwrphnmPlxoOJGxLUrfro8OlljLhd4vb0cCr8O3RHO1kjUOkMTl0wcFXAcNlDlei
svnnpazkAAykwYdgIPEhUEblEAjWMVgXOegunr0y5z5R6g1HSpmrGRpO2I0AVQkpHEMBkaYK
uZBqM7UUiSbkxncAJGtcURXTcIOc+k1SICnyEtwJI97hYRXfml4xNCyhYWq1JLdK4zoGwmp7
65WIQs49vCnA3KJ6K6TB5DLP8STG/1umIy9gTdktRU8IHTH4J4XNbwdQDpqA/3h4gCgw5wU4
zeDRcCt+AN+nZOFkYS1BIBM4VwJaSJWFQNvewfWB0/12uqdglBgqnMmmiKnEuKfxjHzKola+
85zavpH29U9EndrzG3CBQEXXXpB/Ry4JRAfovloslOCaeonQIvfPhsUZSSJjlRWTZoNy61VD
J6YV2F8PNcKM9AbLq5I7/hYJNwz4rqXnFwWQXhLOIXrzjLDGbjepcWo0LZXlyLatSk64HTGu
tUwULL06maLQN5Mm8um4Aa4ziHTAhJhk1kFa+PeZoFcewkCOhqFpSpRu47ap3PCrCCbjeeMC
1Mm4Yn94eD08717u9iP6ff8CDhsBLyBAlw2CCO0g1907ml4H8Ccptl5wqok1R7TBqEjKpT47
7EgpLQiEI9yv1yIhS59GAi1L15Lcj0aWsDgcXIbawzDZARget+iyVRy2ZZ7aJE045ibA8/If
92JVRhEE8Mo3AZ3KwdrnfGA+IAT0lCFyl4wM2A5JU3WCYrKQRSxw8ig6nWf5U8qsqSPMChrt
pFynt+nCsOGL+dKMFa3UhELVExMrFsnLycIGwQ9ZFbIBn/mgadiHws5JUwJeUAYnFQNPIGWY
Ez2FQLaX03M/QqNFDaGfQQNy3WQgDmc5urDQbp7tEuJ3HQ7ULq5hupKExiSplNRh529IUtLL
8d/3+9392PjTHlvgHoEv0Cek6UNwGCUkFn144/KvrimLV77EiihTTytJ2JKD3wG6D46G47Gn
qwLNFkoGTsU6aandb2P6qSGLNeUZTao0h6Apo6Y+RnBsUcKTm0CTMjQ11llklU8Ul1OLhTZo
KFWi0k0pYaQLlhNMqb46qE1c8bQ7oikCnX7a39m3DTpZqtKKLjVRZlsrBNa4ScEyn4+hoUVh
SkO1LYN0ejE761GC9vnn8cUQKQBXDGfU70g5bOXBfkzWKUSnFw9SIX02T4Hp9ibLRa8X5gu3
Z0Od1jNnrqA1YMEDUtAepSSe+A22PhOZYIOjUDwsb3oUUxoyUNb1UD+IIPK+HNINHCjDjKRb
fySjgFdgDoahnJLEYcdFyKggvgBPg2G715lqZxFm06E+ghIpeyqH5iXB6CoqYuKq9U12BbGd
GQurdklj3sMtzGhCo63KLOx31q1Tp7nMWIH58t6MNuBFQ+Dk99Q0BoSUcBQMKsUWjZYz3C1M
LS3M08yz9U2vJ+qyHqoZjqDR/nDYHXejv14Pf+4O4Kzcv42+P+5Gx3/tR7sn8FxedsfH7/u3
0cNh97xHLNOY4AmGt2MEAj48PRIKMUdAIBC0RYB4lIOpLdPqYrqYTT5752mjnQOae8520Pl4
8fnEIJPP83O/Fllos+n4/GxwkPnZ+eTUIPPZ/MRMIApD11fZfqvHMMXJeDo/n1wMqImFOZ9c
jOfjwcGNVREFDUrtuVdEDk12MlmcnU2ng2BYjNnifBB8Nht/ns5csMEFpwXs3UomS3Zi/tOL
xcX4/MN1m8wXs+l0cOEmZ/PpfFh5Jmfji/nEyjQEZMMA0mBMp7Nz3yngos0m8/kpMjPg5CfI
nM/PFifIzMaTyZlXJ2pEuZ12xLwaGZV/gEtXtljjCfhdEyN6gvMoYeidtEJaTBbj8cXYEhMe
CFVEknXODZ0dzzwjDqB+7pG7CiPYzOOOtfHCJ3ofPQqB3cQkmG0YnJEgFp7CgRBkRYPqT8aB
F4R3UO0RgRclzI4P/n8m0tXv+VpFCEP2H1EmCw+OhbFoqLh6vSHaYZ9P+zurhZ0yKg3S2bDF
rFEu51O7vWjp98cuPiZbNGQv2r0Bod8SI/wMVtJyZxCSMDz+a+BgDjK1nEjdJlLfrUnGVfb4
cnrWBjqrXBZJqYazs/HGL/DwRR2xtQFZKVT+AblUuXtEqpiboRBUYt6bcn0TBj6UQRYvSRqQ
ynDA4cEhtg7A3VibU1rd4l7yriiApme+cwEAs/G4T8WPeznr4jItwBXHa76ex4T36xDR9CKj
NvUDgTgGf0UMzr1bloMCWZEwv8ZYLNHBpHmTwQleGpo8N20/cU24plsa4PAGV7pNqNSrvhJ6
//bt9XAcgdc0Kqiq6Rq9PX59UY4SVmE9PjzeqZKt0f3j2+7L0/7eTA4FnIhVFZZ29qoGbmmG
JQvjbvgtNYNCvPHGKLu6BTuUc3QzIb7vUmsZxp51UAlHJ018S8VzlQfBHObwJZHebOK6knLJ
xyDEzIVJEseYvQ9DXpGlUcqhMwJWrk7dL6xoUjhp2Man/H7x22S0O9z96/EITug7ples+zZr
4NV1RaJw6c2D1ibCZFYonUpCUvB+q0AHJ09Z4JrwUxwZXE+HubZZskJ43QaKAEGl7AkWDqE+
M4MDGczMflqEheR47eKrpaqvJJecZDphIEGeAThj/QI5zGEjoOSZUgMIV3oShr69tiBiYLli
TKNwgltY0v6EBydjTHj+k9InaelKWnMC4M1FZTlktXInS8xfxs6tgsXh4OgGh2cfc2hy0vNP
l5L1xO5ZGhuv9l3HRXjphpU6Jzu4c2pmUkldaqlvjQZnZ0jg/KeVkhb2Ae0MNkjIMVkbTyRZ
CFqGeZWlvmiZU5Vdtg8jLSi8NcOLDF97modlglccMd6B1TdC7lGFxxMuFA0kXr7dCEA35eiG
2bpw6BUYfP2GR4ihKEEaqlrUT5+MoiATU6fyXv/aH0bPu5fd1/3z/sWk07k3JQR4me/2pbDS
9UU6eC8NoCAxD960zZHqkjvDElxfVUV+DQcAjSIWMNpVTJ3qX+XWPToC4xuVKfUl+Ot8pJoX
XvoJtkwshR2US1PZVGOkLUaT8kAYu3/aW4c41uX07hy7+h7doe0eHfb/ft+/3P0Yvd3tnqw6
KaQUcWoUGzYtVZxvVGkxeoAD4H5JXgtGs+qPABuM5uxHQsbt8f+hE66qAD33HSO+DugGqJoF
L8cmZp6FFLgZKAXx9QAYUN+opMXP91KOaimZtxjRlLR9ve7FaKQxAD89+aFJ+1e9m+ogMe/M
Wo18cDVydH94/O7cYwKiFpgvDgLDCmMUrMGyDowml16RjTAQTKusw/NmiNX1ULCJblKxhKD8
phtrEFcEqRfJQFFZ3MnFos/3Vc7ZlcWtsaE9W9gE94yHkmP0eHj+awdRQdgXbssuHg95kPut
WoOj7Kdb+twuQUPCB7J72sNjuIn3bBHxVjpBKJleQ8BZX2qZh2C3JA2ScYmnc+sSS9W3k3GF
usqCEwhcmOWCDBi3ptRVMJWcM/BO8m3Fr+WAF1NFEcHrv0zYN34NSKRBYAX7eMt0vt1W2YYT
/91FnOcxvvSoZzowboFsR8YLgPqtQdoO6W3HWtEg31B+46yeAoo80BkBXbe9/3rYQcRZa5Xe
skYFKKp2xTZmnaZqWhZ20t9PRw1x++Pl36O0EK+BT3trqvoawVz6VlYOqO9AtEycHKlB6kG6
kTCmL0nCbtVN/olcVQB6KvOeGWzu8Q2vcv/P+/03GNn2m6zAvS5DsZIDbmnKHxDcVwlZej0V
XU3eekJlBlOIMwykg8AKoBTi2r3G1a3g8nsBUZmpm1pMYoK/6X0QAmjgB/fUEe+o8NJ8ledr
BximRFUdsLjMS89jDgHTRW+ofk7RR1BALITSySxfygf2Kotumiq8PsKa0sIt3muBQLW+bh8A
hoyDIOw6BGPe+gUWGKQSkK5XTNK65tikhaX+6uUXOKfmey9NR6Tom9YvrNxlAacfIjy8WMF4
oF7pihTuKmDp0tCK4luvwY6q4ghH8bWr5IseGdNOPgl0GnsaahZ01WgpxNYQyq9gDF2XgPU9
XjBWdftQ6pXSelkJElGIdYptsIpdZuqdUi8UZrYdjLqffu42AAvzsp92VO846lIWVgSVfgTU
PJjzyETQANFPgOo0ZofR6zKEaJDCVUsocXekHVdaqWsLMhwp1WUivlyqUYPlAD8kl8i8fv4p
V6angu31ExVvP8wIOa9I9Zr13wOZ4OH3ISaW54mIg5HmuFdKN/Oum1O3ubGVGaay0Yavyph6
lFHrNcCqjWV4dOJAqPQ/TSK1pzx2S4GabIOPtFXK5RCwYV0NmKe3UcA1RMREOe/vmyagknkB
+pLpfgm5ya1HtQmsf7WEdQS/IDSGyvEFKovr4N24EK5HreHEOchq6Gy6ZDq17xMRCr6v113r
yReiXapnra1nHkVWKD6A0M9udGeRhONQNhl6fr01jMEwyO3eZJ5MnI7t+gEwr1Y+aAHaNps2
OS/7rMJqOrPU1PcgETq6pS1KB04WkOuRowzr+Zh7gLdGQLmKyqqres/G6Y3BO/7nl93b/n70
p86WfTu8PjzWaZTOSQe0WnqnyooVWvN2uykkbyo7T4xkzQffwuONn05z9SpDP/AoW/WBlcS6
cdOLU1XTIkXGxt3caovhmVdjS9TrrQRct9IqjlrikvrEIbKJswz6pXslCnyDzm/qR1AfYFTL
1QmkD2j8HAH7Je4gip146aGV2QfMaITT7NQ4pxnqkOp3L35c5XEO89SCBznqMAb5sVCGBaTQ
TgnIQDjNzkcCcpBOCuiagxt+QkIdfJAnA2WQJRtnWEga75SUTIwPWPpITi5WT1Bl9qFyt2ZV
329WEI8bLgjaHd0ZQgs4s033k18Lmg4BFUsDMF3RCAZMfcYhVGiIb9i3YYjbmV/7u/baW9Oe
IUfgsiekKNATrK8kqybp2jtN9WMYkDZ0MOfRPRhUBwz9e3/3fsSLfH3Zrx5tHK1k3pJlUYr3
7dFw0XGD0V549sIfBNolD61Q4qxEED6sssp8a7Ii4Mz7jruG4/NDsxtmLNwShPYYG5qvmnC6
f349/DAynf1ESVvhYTg3XdHHFo4q01nrQJu6dr5XMe9iuCEyEbKKe2kFzBioV0T25qjL8s1X
1WYvPXiDVVf2mKKzIYPF4i4ZmHS+sSaVMHzkofaTKihqfXTl2TrernotwinuaCt88XwRxBxf
4ouEPkqgkjlV42Y1Y6xuhC7nkJ73K7C9JIucUuW18GVhm3hArWbKdHHA5Xz8eWHx2FqoWkoR
YUlpWrmh9tOxlw8KU70mN1bxvhct1e/kfBcwWKjc1Ck3bfbTT/g5eF/awiLhdlHvGge6YLUX
hG+fm7bbIjez/LfL0rriv51FEC15aN0ql9J+KdG09W4KG4e6Tt6pVygVA4uht15LAJaZcm7n
Y9SDWv8D/LB5zdUE86fcdCXpSh9xVvjbYhTqEY4dWbdALI9SaUsrXmtaLSnUbcMPCMD8Cv0R
ERisUu+JjD2jy/fUJyK6VjBGzveXLLaxvJoRK/QYNqsNhYy2z3Wy/RFrRvHWrmd8wXKszTnr
31XIiGE1wH3Y2r/wmslpqbu0ktqGhXqOPvRuHtbKv/LQjlXdmO5KCfeFI/iOvJAFpoCEYJGR
xW36gm1SQT4IOi2ct62AozNo/jsA70WRkIbaxISb6Rnzx5KzMLaS+7ql2iQQ6uphBz45ovE8
1KogMmStCF2Mp5MrX1sVb0wCBiDVAGM3Bs4CNB5bYm17+DkdEBRJ/E9ztlN/LTk4Wr7XUsUq
z0wVZJRS5Pls7mursqT+j3o3DmucSTN3a2Bq7TNWigQtXVMbTnxFIgx8HIcZJjbAI9jYx9sS
lIfg8bXxdNrUm8FYnbqlt3VaAEToxdKfd8JcJst9VG2Ap+YDpgyWcq2G9b/sLgaefOsPOKy8
sJXwpY+vuLREhL8rkfoOHQWSpcVqgdYSP8TAaRRkPnXl5pdJeKS+ymNeS6gvYvCtDgfwRqew
HKKt2b3+cIYyL9x8Im8AtM0JLZOD9JeluFF3Vsb2vUpstCjB77qpD/DZpnl03L8dmwRVbeJ7
IAdgmvPOv005CRXnurprd/fn/jji/+Hs2ZbcxnX8la7zNPMwe2z5/jAPsi620rpFlG11XlQ9
nd5J13aSqXRnK+fvFyApiaBA2bVTlak2APFO4kIAfPz88h2NU+/fn76/ms6EDQlxgV9t6CMb
TIliC22vaGR2VVCpRznwNf8FO/+bbvfn5/99eXo2/ES6USk/Rni/QzfOA3p34MVTHPKJEQyS
IyWhBCCiDQ1/8DOTa042sJ9r0xsYfrSVf6GAvcn7EHCwCD7Md4sdBYH+IFmI0gL9/C5UtY/u
ypH4PGrDuRmBYFcQ0VDGxaUBWt0xf0fOb20k8+vdnI0ZAg6VRrom8sWhCmxfSwMrTvmSc5RE
XINB8uPGB+NhlqC2BC0LHacsXLDZzEa9RSAMrO+oWuH5AhO8QPJzM30GgrOW6XxGGuaoTHzw
MdLB/jbKQIQLMhDfpr/DbtCmdAi+/aKIqWJnAFvpnN4vtJMAFoYZIv778Ym60eI3WzxcJQnb
PGw/YGk9kQgR6I06W+M1lFhtue0pl1FXGPns/uzjrrYaQacg2PsTrSwj/54r+TRatZ0L1nhc
6NbCmwWV0YlY7JmN2x8/JIJhj+k0opDjiIAyrRXyp3m/BYBMxDrcfoD5BagBFozREAEqojRG
bYKvO478+tQ52nTrZP/68/n9+/f3L+NT2yz5GCT72jVPGh9k3mzBns8KX8KybkgvEBqTRaaA
YZ3Ora7JBiy45JEamZ6iwK/C8Wdn+Md/llXnlI5+fX/yK3s60f2Ql1sAqWQuc6U4R7T76pJU
UUoceIL4gOIpDTeUwu5caofoy8xtAP0ZrtcoRZOfvFKDg4Apuw0idJzR6UzaIj9xRFX08QTN
kwEbaEKNDuGeIUNDY3f/iCTw44ErDm14/kASJpVySh9XCz+iND2lPjD5JGezKBJqvApvpI8N
Tdc2DImyLJWOpGMDndxIU9UFVegbeUHGZVygm9yNm1I6jOuzDqLuRwMGUQVoBhN1ZQqyJra3
mN1C9ee/vr58e3v/8fzafnn/14gQlOQj870+lAadoEMwYzUmgkJFZ7vh9V1aHnyQn9jq8kJd
XUwVAWrYHgTScWajoT1pxvoW2nSiZmxyY7Jj7bTc9TRFMKRasnHJXggnsnSjQDGbwPn10Y09
XrJyaoBgFajEWTd0XxIHwm2+pJRGh8Zl1WEqrpeD83JEf0oMZpQWvj52tIrvE1PrUr9H61eD
k7w8sWqkQh9KU+1DnW1HrCYKos97p4oMFE3Ey8sa7R7kwE+4S6E8JlYZ+Anq+yGp2fRViM2D
xP7AYoFaAX38cRe/PL9iIrGvX39+62JRf4MvftfMy1BPsBztSaurMBBxWNp1AqhNPDbdM2DL
fLVY0DIkyBbmBoRV1ojCa5F3O6qjrL6DUAG3h0JNFCrqcY8VbEybN+WYWAOZkhfxpcpXdo81
eGL8FMVWddoUP26c1t4EJ/yM5FnCZZrExJCZXupTznvLHKpCMm5BCwCBBO1MA1Ca8+mVBF7W
FGfzNjWqjzWQdFaqTkR16cvo++5ne0N7Uj7s/tGYVOXcSndEyQqEZaDlx/43Km/0O4S0aeGH
bZCMw5PL4I+nxx+f7/768fL57yETjnT2eXnSHbgrbEP8STlSqaDnoX4CbvGIJ7ITDHGdlazk
AkdmHvop8aIsK1Vc724vH3Tohrh3nn/9/vjZDBSIL7K75M67A8lJDaEgIwO6Evh6d/8hR+rw
lRHhzRVqoDElR7q3XPIGSrz9HCc+ssMBdI964Vu5IZ77i22zbLzluhAse2cpVcQqsUzAvepY
OXJxKAKU5/XXrbrq5YMmPxaC5uPvSlGflhGL7dPPoavrqS4cj1Ag+nxK4Ye/T9KkTkzPMowk
2ZvaAcjbNKhH/qaHmYaJNMmYb1tRmoEEGniZj0BZZnLhriLT+6UrEBP/oCblxrTZnvkuCIzT
QV78Hf1KLePYXJGIiqM8iOyktd0YKufeoizS4vDgQOvUHtTvb3wUKE3855vBdEn4FYZB4dV8
UbUpZ4bqYugOidjDB4SB7ut5a92+UFyTsLgha0/qeKdFhuVF+4S/JBIJ8hVcybAeuEPqlK9m
mAff04tt+BKTBbYVa/PRJzz8yiMzpbaCHzJyzncp07qknnxDuvxpo7zJsUjbzNoKGnbyy4RT
CbNjYtcy2AWM+e11TNWPwlh3MvGinWb2kAsyRPgbrRVoFOfzmEoKkVSxJhl9fdo3zNdDT2rO
4BHWxpYvYvNvHO1aH0Z9KQBGv6mw3nMjD9g4xbhlM8YDgMqPgEXdF/sPBBA+5H6WkFaNM0wA
jJwh8JvcOxaxfPKmOmN+H9MbSSHwts/qlfIe4/KHY9kkoU/pVzS+UANg5223m916jJh72+UY
mmMSh97XOT9nUZdghtwdmXDlh/Xy9jSW5v1w5a2aNiwLMmEG2CF8AlfMHqxncgKxW3hiOSMG
LL/GPFlCcIXAuZoWAo2ROuSTrG4V7wvaP0qW7qMHvbkqx9nkl6HYgQLpp9zCS0Tq7WYzQ/9Q
EI9Y8UWUi6ISbQ241YrPiNTR7I/zzWaaRDZpN+MMpMcsWC9WxKoeivl6y3maiMon93HqmqUV
YRxxI43+fG1VCzMAAE52+N999DCynHu40kZybRTBoZTdvRmrrZtHiYGp9rhUdBqLiXoD4ouo
EaDRr7dsLjxNsFsEjbE/NDQJ63a7O5aR2SmNi6L5bLY0Wa7VeB0d++vx7S5B09jPrzKd9tsX
kBU/373/ePz2JnM2vb58e8asTE8v/+Cf5hb7f3w9Xg1pItwqLeY+VfluSu5sj4KjIST1M2zP
Jr46wQqX59LPzSNTAzrha3A1Mk8OldEqEEln1h6WQ9c1QGKYgVkE9wFVzTDBlHHTpV5Xi6Lo
br7YLe9+Azn++QL/fueWH+gZEUp6LL+dLMRQVofLnn5ATe0dL/6JR7U8AMlq/iiDix1eRVhA
Hfmc2Jb5AbrpEJudiAJSOfwF/CfiYGPeBzjqhyD9GQr5bk5eV/AHVVlArW/Psofy8TzHywjn
iE3/pL1NFCM1ri2ywpFPmbBc9RtY3Ww+Bs5WlJMocOVfnAW3geXdp+Yt281+/WKK0piEe2Sj
qy2Bk4Yr0pspPsEj1BVstzLQ28EeICAG6S4EWX4RsAmWDIohm/YgfFzSNoKF4lxs3aepH2Bw
APsMIqFLL0lOvPPlrb6sxOimOpJqYZmKulIy/5PpN0xQI6NKm2dBSq/bgaptDnt+BWJpMknx
NLY9cwzTbArs1LymRh0TXbHWtoFAvZtXGALinuZo1XnIMQcR7+EIBAcb2aEOZMDlT8YHQOky
tuJhNDLww8iVnEftlLSJQh+GzFpFXFGYApad1UD6l5ORPERZkif9oudtILDv2KyQITkdjIqi
T/TFSfW7zUt8RCD3oVI0a0Wuz2O/8kOa8NzEgn6BoR3u0eoIVY7ba2Qq/8f0oPaKtSmRNatj
6LV6BRAdvI3t3d4jy9kSR5t+MV8089YxtcccBi00LSxHkoEA0KHwYwpxDu3x5F+ixDGyyRb0
CE7WNWkwu4vje+BrwJOKmF9G90UFi2+69MwHfY4+vpOdsfe8vot80HegypK3cZSND1J6y/NH
synQDj8vDHE1SxtxGaUDGaDt8ZI5UpUYRLjTMpcCL8l4HQ5wMv2MSbyP20NiZzHk5yXia7Rn
D/fpTYQiyngblEGY+7VNxhCht2JeZDyPyk2xLkGWwZwgw6VHGYyO8YGtFwFbRQnSPYZ6s0gU
E9Eld0B+DPyNch2jgNb2QlGmNn5TV5lrg+o3EohOe7RX63BN6p85i5tZHvoVV2xVws9AaiD3
vALZ+fW9ISKa8MtEFalfxfDv6qoUmePRPFKazsl9lbCWq/JKsx/yohSm00t4CdompUzc+KAm
J2WdtCEwV7wTdEyrQUGP7BrzlsHWxkAHQc9PjbrWwXPCH3QGySX5xK99g0ZZHoaGaUsE9idN
zLhFjfCbXqi0rRegodSOcSAVVkT40sIkgj3ySuXxwbp9RIBh9heX8khEghRfeK6SwwFvVo6c
WS9OGkygbb5kLeLerRdUxjv8zu1Dh/KtVfJw+uLjKu2hSZ0U+PK0o2GdTEvbpm2Lewrt5FcL
GmSr5Xw5a61BAfh60TSOegG7aRTW+mi73G7nzq4gwWZcqolvg4dDfhLuipVea01qkIDkaw2D
llLtRuLG0sPAtiEJytRZf9rUtBKVpK65+A8UngoUhuez+TygCC2Z2K3qwPPZwb1UNM1223jw
n6OJ3Ws+LV66k5ol9x5V3HFrV3E9vp6Py5Pse1RkURe4Wd1jnEs/RN+95tFnIliu2vqDP59P
LBiku0bj19vZwo3+2HWBY6/qJSK7g5q3uj7Szw9ZBwZwKbscUObms4aXk1DjhpWeBK5qwnK7
2KpVYPAhANbBdj4fg2FnMsD1ZrQ/JHjnqPUMh7sQkf2RPsoPcBZ6Ff6fW0nAybR3tbGIEEhv
2S7ygQPK94rYAnSFVcR4h0BpwCDLEaFuC4JE+6KMHLFgqoVJvfd5h0aJNt4Ys+GnPCFigUT0
yjWtZlLnkxTk3l1CsjNxZFIwEaAvaTKuISsa3lFKYougJs/LqSrLj8uZ+ehNB93O1v3zl1K3
yn6+vr/88/r8i7jqdFPcZqdmPPEI7Zjg3PNHDe5IJENac6+82WTj194IBfr6XStFPj5bplFD
XromFBmGOvee9GUgJvg/YNsGSThTNfNpL7qkpvGjLIm/CvzEZ+nREYaz85fobYjXqBEpYZRF
DmFZSd+ZkzAcApSkeOW3LAv2qeb0SEYelqbyCZOOK7xrzCVlX1y5UBvhMUy5TWHEfeo6DN48
4GL/Pkr3LMqvyf4xMMeLSPprCbxCeH1+e7uDdplze7k4gk3IB700HOX62qGNQVutQbalCsPY
MS4RYU5/ob3bUGczSiF/tqEgi0UB03lBtXLZka+Iu/vy+OOzkebV3L/y22McqHFSlzTf/vn5
7rwMkt62ZvUSIH1zuSmUyDjG23cdGmF9qFJ73Gc+t9IVSeaDCN/cK1cl2cTT2/OP10eYCxIF
RT8qTiKyAuooBl0kT5wlyyITIFrB1DZ/4kNr0zQPf27WW0ryoXhgWxGdAeysPDoboTxqQlze
kuqD++hhXxA3xw4COgbZtga8XK08zmZLSbZbtlDE7PiC6/s9z297ko8gPrMPDhGKzYyp+WPt
zdcztuIgLcUG5MWpckMdJ12ttyum9PQe2s4WHpW7BWv47CmopzkBy8u6iJudOvDXS/NxdBOz
Xc65wVcbgmt9tl3IB/XGzUfUgntzzSi12SxWO64+8+5rgJbV3JuzlYn8DKLtpQLA9DpIMj40
uCfIo0vN3jsOw0Tf5OzhRRnlaEzlms5YtYbpKtIwTtCexjzfPSqoLi7+xb/SSyH3p3AF3A50
p/zqzhFHVda1GrOS4+FmVcukTSvX4ZB8FGtvcrUXcB4v2WW7gIOBW5115rV1cQqOAGHQTe3a
eqiLtqwXzEDil6goMsWq0G6OB/Amgu7UFvhy2QSJzGPsSHSjCLCrijG4mYyVlUtBt9sy265n
TVvkrh1kEHJ0hMoPN/OlMTQmlCodGlMHXl/7GClfSfRL2T0bu8/8+WpmQ6NFMwPpuq5N/aPj
7c1ms94t2iOUmIyaAujtzlv1TbGnMZgvNtsFHjWqePdAZ3CYrmbjIuTpvI+iMuIiew2aMAqK
kLpZGNgzPgo+MVN+nUiv8DrirrJ7Hg7SUK7p7KG4b+oPu3Ht8nUHYAjcblcUD5FPraYKHGTz
2c4GgtqDr77iJSA7H/jU1zDaNrYuxXrlzbeEwmrvyRWupbsTxNvVZmmXXF4yPUkcRg7+uKrq
fjtbTbEhY/6qovblU+1ykp3NC/2Nt53pwRF2W0J/N1svHPsmbNIFtwslmNuGiUw0cBqBPwpv
vfMZ8Npbj8BB5i+sJAYE4XRVU1So08CpbOo07rGpzvLYcA0OotcrA23VpQg2HcFEq6QpRS78
6ZkVgYcW6Wt7U9RllgRz5ylaZcnS8hWTIBongRCR7S1IbDqjdhDpn11YcC/UPoQ2vRlorCGe
DVmQGdawJdtnjeQHRCFXU1+uiF+nVFCOnX6Z/Lu4Q3XRTAVJuyp/ouuzxesVHKO+7h13xooi
TfalYN1nJZokdtFlKgcn+GrUCuFlJEm3/qAKNLXdutKu2yIo8G7ZLwWnyioKJXYxbVFKggk/
WSN38LOI+pt3kDYXoIsx8JQ4zHKz1PtUcjq/MoV8efzx+ARaNhfDUtfcflHRBzLcilh/y0o+
NWQObFrKp6wKh6NOWTqUZNiwcE7kYUoYAkLRsarF103JASMx0hdWSvWuIpUFe3gRySpbJDZA
JLEFuoD0dAyLw7h6PK+KOGY7qmzU7X0gFPE+c1x7l/J27jqhLnBfs2RDu/ZcnwfD3IV5LlIb
RWUGnCdmdehvMegSU6ctiSPEAF0aUJCSPckbDcupo3zjMiPCZLDcDXsA/+g7hhKU8DxF44YX
vSep4NAHfcQRNWASSUHZ1TpNkwAkJ1Z5E5ufzkVtI8lrwAg4Q1cxuKh5GJci6sXiU+kt3RjK
xJokTR/QDC5Too3h5pD2tAUX3C6xnd96l2pnPJkdZ5GLrK2rE6jK+6Ko+9hUZQADGWVsiCQS
EwyXVPdgRAuy9XC65DsRvACA6CN8xx8zgFUXG+oeZLgCkU0Kvrz8w7YLQ/XUiQ5lp2mU0/yR
utjRbQVDkPEGSo1P62C5mK25ssvA362WXE4wSvGLjqFEJHlQV+kY0T1caoDDyPhiorIsbYIy
JREEk6NJa9FRwxj36qhD6ODUfrn4r39///Hy/uXrmzUz6aEgeY07ICgeHJBEeVoF95X1nBVD
AZlwBtkH5Qo6Okjl2v7P2/vz17u/MJBQmXfvfvv6/e399T93z1//ev78+fnz3b811R/fv/3x
BEP1u90vlHLs6Zm4+lRHFM0aR5FNw6Y4k1styLztYmVX11/QOQtFivuC9fCUaBXvSidC+z2P
djWePZNbSLtZOeoKI8yFJEPmqWxvIa3EiRbW8OOmdSeHJChS9v0lxEdZdPZoqVHzkBdiRYHa
pkzKlieLyhaknncreJallt3hmMLp6uBqikTwErfkUBmf00TheOOtxoFw51QukaIoLXs6QX/4
tNxseS6LaJC0PYd1Do8cdHt1Y/FG2o2t16uJdmX1Zu05z9Xzetk0zehAbhzaLDL5IvPDxN0V
LfE58YW0cTvaU1j5uiXs4jqo4bRzrucyg53Je7NIdO5uYdk4lG/AqYjQwL3+qiRhJVdE3S9G
Iy0Wgbecu5cNphuC89+hbkiKJKsj96oVZeU+T4VbyBB1tvBiXq8e8Bs3/pSvQYfwLq7jrJde
6flh3Y70oO5BUAPeRdXz0Da2xxov5P16aiwvGatpAaZ3MSX0Teo6Lpu03I33VQXaxIihRr9A
wvz2+Iqc9d8gFwBTffz8+I8UO8fuG+qsLjCp9mnisArTnFf8JScqvfWci3aVq9+OEpcNL/ZF
HZ8+fWoLqkHi9CT5A81fJAc7KTEjmrrhlR0o3r8oyUl30pAe7A5q6cvRQn270qpcQKM5kQFY
mP6jZF2nkSYWiS0msSIRWa9jtipBOuB3tLElDtMQnJzPC3g605nk51dIULpzCgZI0Gk7Rp8Y
4XTBLxlRctuU5koR0oYBvHexpolwJSIToNRlMt0In+LjKNhcRyXR0cqSScSm9PdS3D29vqgo
57HEih8GqXye9h6T7nP70qAZp0IYcFqC6Wv9Wz6R9v79h1mxwtYltOn70/+QFnUGgRGyr8vW
V7pMLRrRykzfph0qyYm7mkGPukr33ir9Av/iq1AIwywh37Abq0TD4Op2+WKx8RwBSB0JSOgw
fjzf6InYHKYddp/Nt1uywDpM6G9Xs7Y8lTxH68hA1JpvWc+HjiKDE3AhZluqk9vYMabzph1j
RJIf0ohrtGjmqxkvbPQkdRZPNVc9UM0VDrVGOStw9E3GO6Vxe4sgSmnCjb73vY+1cHgn9mVc
UrbDqxkvz/QEm2sEuysE2lh4uLLMNBX/EoRNtZ6kkgrkfHJRMTqmgVov5ttrNawX3g00qxto
1tO7lPFfdbTnCpFUnt1KbUemwygs49CILOe1jgFdXq8qF94N9ZRXafCsm16E+6gCmbDdH5YB
z9/76iY0oo4GdA5vdZ1kM02S0betRnipvUh2jaz6BlKxv4E0LX3M2VCOM3tWwDrfHt/u/nn5
9vT+45V1R+7OKRXGMD0CsbZDXKWqtv5ms9tN7/yBcPocMQqcXhE94WZ3Y4E3lrdzmO8ZQt4+
Nm7h9L4eClzcSHdjvbv1rXOyvrXL61urvnXZOKw4Y8IrB8RA6N9IuLyNbuFPL9jqkz89JkBw
42Asb+3j8sZ5Xd5a8Y0Lb3nj3l0Gt3YkunE9La8M8kC4vzYb+fWS/o+yL2mOG0nWvM+v4Gms
2+a1NXYge6wOSACZCRFIQAByoS4wlsSqoj2KlJFUd9X79eMegSUWD4Bz0JL+OWJfPCJ8aQ+h
Y623CbIF603C2NYXKWALnfV2Y2zr/YpsBh0Plc2nL5ZUtmh90DG2ZdluYHM/MEtZTT/UC6Hz
kZpelbSGs6Np39ROHZNasALwq3lKFOUIOvNcEGVnpsAjRXy8tVyRaIAnWOWpUbM32UQri/1w
Geksj9iBa2VcDxeX3vKYGLg+ktZhba1iXGVty4NaZUJfo8S5kunfxLZFQn5O9g67eo1d6tJf
4+kbQxIRwA6lf6/wiM7TFShyyRPmjPb0I49Wip68zpG4DsZiHNylOp7dZZkTuDZY2JUBOnKt
1wh9zcYrS/TM9sH07LUT9cz3sRQPyyvryLUyiUautf7jXHZg6KYRXkxGeTiQyA41f/izwlXx
VTiheZ9XaVYYTCVGtvG1QTv6lA/fHu+7h/9eOvtk+ZGF+lk+03VOaC3LB+yJb3kNYizLi1nZ
Rba73O3I4ixvzVhce1kWKLsgXDkGIMvKIQpZNmtlgUqvlSWyg7VUIjtca93IjtZZVk4gjGW1
A9zVpot8e3leQtO5atNNQX0Nw1a7JMU3aeLudPAgst2ascIARX1dXk2fxVdCzJmgpS8HS276
U1tHiio5HOO9GMNx+giVvIjEktYLiw15Z92V9Tlcu/DEWFdFvm3yEyWV4Z2X5GBkIDC/wyzi
Do/n6dvOyFHtFOO+8ZO8+SxfYPPbf52Zx/hWaAm3DFVJ/dlWqMNzg0Kd3PcPKySLH/39/seP
h2837GJPM/dln4UgRir++BldVyHiZLMOkYDrt9sKV3cwLEC8KpDKNmuauzrHIMBmxgUFogm/
7lvdTwBHuX6ROfklH4ucwWxiyq2EuM6RlnN6oSMlMzDLuWKB9lVG3z9yBaAO/7FsyopWHDSE
q0kON6puESMbtYE4WlwWhkJeUZrvDCqqfZ6c9R4hHpc0BtchHwoYXG6joA2vSt3K7PgFdlYt
t7JOILOF3HTtHgW/0ne3A0jp4XDN/sIKbK047IF37HxzuiYFGj5zFB0IBU2NMwUOu7GfOrBo
VtuTuljlu1x2jc/J6JwzgWXHnOFyTWB9Zf6UjGW6axNxG2TEURKVk2JU23AVwTlaLzJsFAyn
ZE2Z45xjcbqF+aC5ntHAvlV2Gs29GicWtULBV0p9MS7TfpfQfv74FEw71/FcZYhP0ohxi5h0
URn14c8f98/f9K1j9gegFIvTcTs0NUacHtUa7i/9qBMsTSO0Q1/qOMZAGifz6YKKza7awAN1
CHCgTDDEDDezAwNaJRpz7Oo8cSLb0gdp62lvr4JCidLWfBvfpXofEK1NOm7gm1waWr6jdxLQ
7cimpd2ZwfBkOjBAM9nlhdKV57tccXSUdi/qKNQ6A4l+4Kur9igOqiuc3/kRdXXC14zCiQbd
cnmpKWt9BRuM080dyQ1Y9e8QiALjh5cyckW755G42UgmWETncn8m7XZ54knqX1NyxGcsufPj
6/vP+6clITDe72Edj3mEGmV6VcntqSYHLZnwmK4Y9eli93whZ+Wx//Gfx0EVrLx/e5dKA5wl
yN1Z06et420sKQ0BiSSDvBlTdmTiW/tSUonKMvpMb/eSMhtRdrFO7dP9v2WbOEhpUFZDJ750
2ThDy0PS6F9ifS1KoVDmiMwfR+jeLsUQa2up2K45lWDtY8f4cWTRC430uUutYTKHbSwd6cxE
5oik/p0AX4xWLQJhZJkAmwaizPJMiB0S42gYL9OJF40CWYwiUXluJg46YgaM+2mQjskCjIcd
w1FJZeM2F2Qqg/N3ynqR4pYmlYrgfzvFA7LIg24KgAGV7+jzvcDLNa74j1XmAlpq4xuuiwS+
yf3BBzhZTVaaYwxBRjcJkw9NbYHOILqKFC5FNlVi1rGp60w5NQsa8UMSTYZGeb0arpxMjhvd
k2wYw6o0JSYlhSHYiju9xJxuDC4sMTFP61IS6EUWOWgJZ4zvlyb9Nu5gKyBdpg4OSVg6wsxn
+79KZSEhFdqQ9OTjRSwgWiKip2IU8KyAem8av46TLtp4viQsjVhycSxSHX1kwAUtsPQiTSug
liRfAleSlHfoESmyfdVnZ2qxHlnarRhifmgDTpyS4w7dGZnsvTGt7WccffTwmwobbyxy6xnz
BgbbpxuCIQt1gfFhh5Jts4I4BsSxr3ojCINEQfK2xtR0gA1Q0enECKDMza5EFLp6CzQnxFp8
oZmKzg3kgD4zknh24FCGRkI5bc8PiQKlWcds2jhL4AdkJZnXIAKpncDZUGXiGnjllrqFG3lg
9Hi2TzQ3A0ThVAQcn6gFAqHrk4BvygPOJnQe/iYyAMGVSAqq6XpEodgxxqLyGE4+oT469/Fp
n/Ed1LOpOTE6TFuYFU3nWy7RW00Hi5hP9RYzSoHzjUE3faoobDYufV+3O2XFUPiFLWlM6JS0
tmXREsLU3Olms/GpgHjN0e8C9Hskr/XjDiT+hKNcqpIGqxX+kMCjQN6/w+GKeuScog6moWdT
ZZEYpCPCjJS2RdowyhzC4JWBwARsDIBr04Atzn8B2DgeGbExTrvQI2+8ZQ7b+LFBk1viWYv3
yHioDXbiOHTiC/lERh1oipzgpTNZ5Gve7+LjGOVtKcsGFrekzslUtBcclaG71mT+GEe4PtPy
9ciTwF9xDjOWtg9T2er2pDdB2gZ0iE6Mlmm4jx9Z0IHsdak3dqENp9GdnisCkbPbU4jvhn6r
A6PDOcVt4gjvC9+OWurQL3A4VluSH4NQRl/0Cxy066MB5nbhR73Yh/wQ2C7Zwvm2jEkvKgJD
nV3JT/FBSA1npPJ0ETHFPyWeo1Nh9Wxshx4IcDTMYkMUo4lnfGleKA/fx4iVjQNEWQdAtm2S
wA0xqTlAVJKJRj6xHiLg2D5ZeYQMmhcSj0FrWOIJlpZPzkGUDmUx+UFNRALLoEUhMdn0A7DE
Q3qBFzk2pkK4dkgK9QJLwJdZCnA3hmSDwFuac4zDJwYAAzbEeOJF3ZCjvExq11pZ78ri2mR7
nOcLxeqSwPf0vEHKc9yI7N/suHPsbZmoQsvE0ISwcrnk8CwDWllnZjAo/AgMSys4wNTELENS
vCnKaHGIw1GdSiyip14ZUWqmM0xO/nLj0IltqHOwAPuOS3QbAzxqzWAAsZrVSRS6ATnGEPKc
pUodu4RfXuetFMF+wpMO5inRiAiEIVEcAMLIIlbDwZaLKuexjV2DsvzIUiVJX0eGWHgS06Zv
t5mePWBU2+0ifyPJQzW6F1rIA52QkhuvqNei3UdNEszwgrUs5mw70uJ7wkHmJFoeyLRoCYD7
53KOh877cznHhEw6LTNYi5dGWAZylEcvJgA5trU0TYAjuEjhhacSlW3ihSVd3wHbLK3mnGnr
Uut223Vt6BvSLoNg8UCQJrYTpZHozX3G2jByKADqGVEbVn6MHYs4aiGdnkuAuM7iia9LQmq/
OJQJtbl1ZW1T05nRiYWB0cnFGhDPWiwYMNAjGBDfXhoo+u37hHS2YxMte4ncMHSJAwECkZ3S
wMYIOCaAHPoMWRpGwFCEkd+1hq8BDMhARgJP4ISHneF7wLID7Tdp4mIX3UQWQ8jSub4DASOf
yO6nR4C99LSyq+ARy8qs2WfH5G56veiZ8nhftr9YKrMisYzkaqfTLk3O/LZjUMCayDfNuF+t
fXXGCF51f8lb6YmGYtzhubY9xAanI9Qn6NwVT64J9QQyfiCnrRdWLSQBY2Ar9hdVB3NB5quv
+kQFox3QNDvvmuyz0PdaHlmJD2o5eUYceWRdVObcmUgRPYotxcUFPCrLhdLeuvog/Vw1OVn+
ts7iZiExbu1CfDhFiFsqKyrtrTPABHAXuW7z5vZSVekiU1qdlwMKx4Ck8XIa6NjcWWiOsrvV
GzcumdanAAzhbN4fnm7Qe9H3e9GOg4FxUuc3+bFzPetK8EzP6ct8s1tjKiuWzvb15f7b15fv
RCZD8dEBRWjber0GzxRU7w+P6YuNyeJctqssrWGEDFUzlp/Vrnv48/4Nqv/2/vrzO3PyQ7Xl
OA9zjKG7mNt6eizB9v7728/n35cyG2whlzIzpcJvxs95msdQoN9f7819x42RoFYsH2lhmryf
LZZhMZsxF/HJWBnkn3/eP0HvUMNrKsrsPoIlUNJXKDNXl0Gh40KxNZ2KbMxyLO7kyk0b0cxw
VKPeHmBdwEuJE7uEJob76OyaWiDbLezdbZtvC/HgJWrDIks7OPsSv2Kunw8VezsnEhAYpBUb
EB4mzhQGEGZVLCYpTjfp4nX29vvbz+ev748vz3oAwHHh26V6tHegDV7n27u23FP3kYxnfsQX
qNxEdV/zK2aRvXVDUWgdaZJ6EHMZxvVDtSLFnROFltk7GmPqNjYIBYpqi8KCEWB2RXZNKto+
YeY6FElKa8wjDwYo3likcj+DR3VTrSbX2rGuhnM/65HBpZ1kX4OArmI6U42hMFiKaJJkUJ6d
cIO534RHlHA/oRutxziZvvflvZ8npEkxjgKm5XBVk0Sq7yxWlbGYa8JlAUNFeAQUuc0nbQqR
xhWFpYRRWf4Wzt7kLS5j4FsH84+jfryPu+xSNbdtv29NowIfb67ic7lAVIKvIqBpEjDqteVR
s4ztU14dEA1ahUVgOOQBnGhZJ6mpA+T7V81F0CgZd+hOEvtckJaBBkWX9J8xJR6/S03/FnYQ
0g8kgjyYlDYIOdk0cnUNFT6hJuUOZaKh3obhVm9mIA+YMxwFWm6jNoieWGTwJjAwRBuLuqia
UMcnUo02BkvZGSeD2SLaBcq97EjdGMsxXs3LtVZUwgXk2F3JYGmIYQAnlb9Odj7MWnM7QReb
dKrYjkV5wBLz7LxIVuTlVNQJMX3Cdf7lGqPvvUghccULNe02S5a3uTb3wuCq8UgcMFUyPpfU
paHVTA4YtfQtmyApSrGMfnsXwQSRlsB4e/UtfXcWvxpMGrio3ZWPX19fHp4evr6/vjw/fn27
4UH/8jEkqhAqdBaSkEVf/UfB++NpKhIL+iZuklKppaKbijQ4a8Sl68Ii17WJ8oqOeFG7m4UZ
i0pskWluQdpFqY/uuChj6vIeVZ5sy5cWSa4gRWqYcCjU1lROjyhd+RneKPufrm41VkAxlxHI
ksGMkEhEUKOALufG4BtbYNCEA5kFdgh5LneXwrPcBbESGALLW5E7L4XthO7S6C9K13eVFUGL
NcmIn8urukWIRuiyCNXkX6rjsux3KSPPYI82wK69JI2qxkEzTV9aBJshaeZfvMg2r8BNdSi5
+ZZRmB5ZBtMw8mMDAlL4tTzt9EKVrgMjU/MPTHAxHmoSchYWf41If2eu8iVJN65nqu1sGqET
9UafD7ra8EhQHRvXZYNPeGRiJ3QmO5lWpvElApdEJYpKwyyBamJ2iHFSTOfQMZPJcGGu2BzK
kakXUsAuv2ZQuKroYjlCzcxyzpvuFBcsSteJ9gM9M+NlMrtLntipXEFk3PP1iYIGEZSGAiuk
MDxIR4FP12A8ZdP3rDNb6rsb2vZRYDrCP5SNu8AyLChFWtmGAg0cMObRUmE5tfHMT6WjuY/W
WdRpMEODNSidNGEJSvAQp3MFxmVjMZHhoE4nwQ+TK12Cp0uDxozE5JCbusJik7MkPvqu7/tG
LIrIESuLfUJkVXb+MyNn3yXTy9sCzsaGHgMwcEKbMvaamWALDeQrAQGjlOcoPhDQwrX2ZkzL
Q5OZI5AjUxWBZMQ3NMAgIS3nyeUFMmmAgjCgIN1SQcb8KKCLtHjaVdnIM6/EFAUeWXQGBeSQ
QSiSD8YySJ9+FR6HHPoM8h0jFLoGaDzBG5vC4CRXYYus5QHGmRy6S4dLHyWoq4SHkandAIwM
t3IiV21Dp66UsfY9my5hHUX+xlAAwEhTdJHlc7iRr4AFsAtce20KMyb6FlBmMvianJnqbW5w
RC3wJDHs0asp7aKrQRAXmU5fMsWBn850hkU7MLQPAw0eChWuzUo2l5LOgomMTV1SRjMKlxw1
RAFP7bY/S0FWZwZR90yIRQ9CAYaYIb9Qb10ESL57EYDpBkaH4PhA0jsvsgxCDb8rWmyVBvKj
lztAJG1IESnPpunQOmUdG1wCylzt6qxp/TIKDQ7wBC6z1ZLANNwRrbEVex9G+9po5cewbVWh
j4MP8Z6bbLc90dpAKm99WU+TnfFWudg5tz+XhrC2Aiu0jhWsSfXAFTnkKVHhCY/UsOnq1rcD
l9zkhOsjEnNcepDyCyGHnGXUHZOKriw5jMk2F1m+ddIwciILV0oUpl0JCSfCJR9LwikT3fYt
VkvX5Zux6X6FSJnfp6yvskW8zbeSE4RGv0IekGS4XZYuC7I0jxmCZ7qK9AzAeQZc/3gA4FRe
dORBe2Tbps2ZBUNtsyJLul/+ElykjhcE73/9EIMxD8WLS/YoPZVAQuFwW1T7vjubGDCmZRcX
CxxNnLIg5yTYpo0JGl3UmXBmSC82nOheU66y0BRfX14f9Pi85zzNKuVlmLdOxYzspJDi6Xk7
d7WUqZT44HXn28OLVzw+//zz5uUH3ta8qbmevUKYmDNNvpIS6NjZGXR2natwnJ6ni51pIHGI
X+uU+ZEJAcc9GR6Ss3ano1hdlmeZlQ76aZCaiCG7y7FKM4UYt3dHtfCwb6ByDEE9l3FRVBR/
WvIuyPdiY1ONKnXx8/vry9PTw6vQ5OqknPoVu5O+YzMlxlJLH39/fL9/uunOer/iACm5F06R
El+hg+Ia5nH7ix2IUHp3jPF5nnVPK3/Goym3GQs/BidyDANT7WWeU5EJ/T6UnyihuCRoSius
XVB2nOcU4788/Pr1/rsQy31qSiZosiHDQoMTAwo59i2PmCyQSj+wpHculm13tgLyqpqlUkTi
1jkl3G8z2SXejAAhMybHOepc9E47A2mXtNw4nUg366pysbI9BnCv8yv9+acMff19Inc/gatw
LMvfJtTD/Mx1CxklHZ3PbXXME+ruZ2YpY3G0CfQGTuq2FVPY8RKJl4czUJ19e0MXBSBDUAqF
p6etAWeuOk4c8npCYgld0RBBgWyyx9vMk48fAnTcQKYGH3gq2/KAa6FPrltDNoh9Wv4c/vIt
chpwyFQDBtIHd5WLerNUeaKFbAyhgmQu2ycvkgWmzxv5VlOB6JOAxOQaIgIKTN2tRbpLkFhs
W/TYIUKwXsmucQTwdKwL0jxs5oEjq0sl3FV1U9HJwpEd9g/amb3AdY58lz4jzkznxKL9ZQos
sH6UdEGuOQZmu+2TnBJqZ74viXtVVov6kqhpAkl336Rx5Mf61PXZGWQQkm/YimBNpy7YMJUv
jYvxUuTyQBdfsi2vqUh2HPF6nycOQHceN8b4+f7p5XfcX9Hn4rw/Sl/U5wZQabOTAO4D3CiL
jVywy6tlOaQAqkQ2XgN8Vy8l+xcJVcn7KrTERzSR2iuxGySsqOKUPJWoKbDWtHopVjFvvn9+
m8UUuRmVLOOTZfJDOnT81XGV6JGqpGbIgIlQKMuQZoAl8znTw/lKbAf8ZuskzqDzWiMPWThk
jFtbvvQVBKv/woL97V5qjL8vNwXI4hFR0fblt3cWXvnbw2+Pzw/fbl7vvz2+0IMTaxTnTVvf
qXPxECe3jeGGh53kRhnWeBjlY6+v6jFgLisdaqHjWzWTO01nIexDT3R6NZxIzlMA6PG4fcff
znd5U15i8cJ+PDs4ykX+TCcOXIwO55tKtP+aEekYoqenHl9wyLR5fKz6Mu3k89J8quVq6a0+
t8qyHg7lxok1eKRXm2kg90mbO81VT1nEO3pzHA7C3GF9f65zOIPlbW0K0UKwJzA6TgalnoG9
DDwv6BOTFvjI5fr+B5gCv8/bnB6wavG22QdqU8HJDTq1OlE727AWMec5egO3B/zO+Nk5PxHd
bQiSOheGfvka9gcMWEqbbHMGdpEFw6mlX1uGcrsJ8iy2Ir/UTZOS9nzOmYYIo32SmVthMoZD
d3XaDsWjrQ1q3R7wqBwzYtrk/BqWhVK7O0F6mdc5Dn9i2g2K5PhlX+QddccnF4BxmlPCEtZ8
5VidEXHpueEVBuhuiYv7iF9qfTQQxMm9xgPzYak0zEojb5cmHue5foTJFDti6BVm2ZKs8QQa
j7xBACxaKYnUvpTkTVyEp9ssvgYb9211sSYZ8QrzQ4yYM7u0JJiETEUW+ZoHatWdiatO0RSO
k+6fvz4+Pd2//qWZUv5EkeDbw9cX9Az+Xzc/Xl9ALnh7eX2Db77dfH/8U1EOHjfg+JSS9lMD
nsah5xJSLgCbyKNeJybc3mxCfcfP4sCzfW0SM7qjSbBlW7uebKYwbHmt65IaeCPsu54m5SO1
cMWIRkPmxdl1rDhPHFeTxk9QEdfTLnIvZSQ5P5mp7kalnmsnbMtaa4u2Ot71227Xc2w2d/1Q
X/Ig0Wk7MaoyVxvHwRi/YYyNKbLP99hiEupUT8/oUW1pMWAcS3sZcngRdSSd8UB0byqR8Z2F
giKPGJYDgN8Ys9tiqDA1RSD6gZ4ekAPq4oSjt61lO9r5qiyiAEoeaAB0SGjb2hjnZH2moPoS
TD4TnWqX7lz7tkdIiAwwqFxMHKFFarAM+MWJ9D7qLhvJ/6xADSiqTUzlc311HYPi1NCi8XXj
yEr3wuDFOXEvTRliJoS2vhbBocSPBt+T4gsEOUUenk1ThKVO+lgS8EhbK9i8CYn24AB9qTdz
uB5lTiPgsibYDPg2pXEx4hs32mhrYHwbRTY1qg5t5BhCniitJrTk43dY0P79gJblN1//ePyh
ddepTgPPcu1Yz5FD6mojZaknP2+Q/+QscGT98QorKupYkyXApTP0nUOrLcvGFPhJPW1u3n8+
wzl4TFaSJmAcO1rPjuY4yqd80398+/oA+/3zw8vPt5s/Hp5+CEmrXRG6+kwsfSfcaCsO8QAJ
ognK0OnwfDPKIeb8ed3uvz+83kNFnmF3Mt2UgZScH/HZV5PjkqSlyIfcp9bivLw61tJFETKQ
174CvKHT9c2iBMKhtvAhdUNMXqC7sutDDXapxFz9TrI6W06sbxfV2Qk8Imek+/Qzy8xAOssT
YJ9MN1wQ9KqzH3hEIYFK1Aio2rbIqJFOHVwtasXxA4PPXoGBUg2e4Q1RstDxtUMrUCW15YlK
1jgMqNUc0/CWyxuB6LHCYPC4OTJsgsUe2hhacmMKKT8y2G60MDPObRA4np5w2W1Ki/TzJeCu
JlIj2ZbtHyagtkg9wQnvLEvrPSTbNiEkAnC2FnZBhpPlO9u2frPRWK5VJ642Io5VdbRsEir9
siq0GxAm5oR2L8UrHU73aZyUDtGJHDDXpfnke0e9zP5tEGvHIEYlpAage1myX7qhABZ/G1Pm
H9NKT9yndFF2G5G7Ib2xsD2nAJqu5TDKL36kHyLj29DVz2rpZRPa2lKM1CDSywr0yAr7c0K7
Y5EKxYq5e7p/+8O4JaaoL040Ndo9kj57JzjwAnGHlrPhQkidq6LCLGWomHzDP2oI8c3959v7
y/fH/3nAhwwmmmhaJYx/sJ6eW1LE8B4gciSDSBmNnM0SKErterqhbUQ3keiLWgKz2A8D05cM
NHxZdo51NRQIscBQE4a5RswJAiNmK7b0Avq5s2njZZHpyjQc6OSviW9ZhiJfE8+IldcCPvRb
U8E4Hpq1Ige2xPPayDK1C8rKkhG01vu2oV67BHYDY7Mx1OBmRWUjPRbo5XBMeWWeRdomyBmB
9GkZ2zKKmjaAVNZaszvFG2kTlGeoY/uGQZ13G9s1DOoGVlNdP3PsZNeymx2Nfi7t1IYWFC/O
NHwL1ZIiJlIrjrgUvT3coFLf7vXl+R0+mS4/mdXs2/v987f71283f3u7f4dDy+P7w99vfhNY
pRvgttta0YYS1Ac0sMXhz4lna2P9SRBtnTOwbcaqZIp0Wo+GaRLCxDG43mBwFKWtq/jLpRrg
6/2vTw83/+fm/eEVDqnvr4/48iw2hZBo2lxv5dKPS2vipKlWgxwnpaHVymMUeaGjfsPJeqEB
+0f7sd5Kro5nk2vdhIo69izXzrUdmfSlgD51A4q4UTrQP9ieLG6Nne2QHinGQWNZ9EcLI40N
FeqjDbl0DD0UWbLF2thxFu2cYvxKcvfPnh6y1r5ulLYbF4bUttRJwCHeH+pXLP2ryh/rM4l/
HlDEkCA66vSCQXhV82lhn9OaEaaLyVqGjZFtFMT2QntByZmIMY3X7uZvxkkld2AN8gd15T3U
ygmJRgGiQwxEVyHClE1lSgHH6sjWpzGsr1e1TY7XLqB3pWHa+MS0cX2ls9N8i01bbmlyopFD
JJPUWqNu9GHHKxPJ1Hi3sdRRmCU2PQddg6UWb/vUga2O0niaYM/OGjXdpiuciHRhNqNKaw5E
vA/UR3WgVPBLasMmi6riVSoOw2RY4xcGIE7siIwbPben7GpboNOvOfNqFmqLedy1UKjjy+v7
HzcxnN0ev94///P25fXh/vmmm2fMPxO2NaXd2bghwfh0LEuZ3lXjy068R6LtavvNNoFDlHGz
KPZp57qWNi0GumlvG+AgVibe3pH07qY5ayk7SnyKfMehaL2kSiTQz15BJGxrfQZSQ7DRtdDy
Nv3/Wa82Br8Kw5SMVtdRx2rpMsh7/P9eL5g4HhP0YKi0GxMoPCazSoqAQoI3L89Pfw0i5D/r
opBT5XfO8sBn+xpUFFZ8c0UFLtkyjx+8s2Q0KxlP5De/vbxyQUdtcFjE3c31jjYXYEPruD04
9LXfBJukCgBrR5ktjKZNFnQlQYefnlA1IU5Ull08x7vq3GijfeHrEw3IC1Ju3G1B0DUuqrBC
BYGvidb51fEtn9YfHmTnBkQE476HW4mrVOBQNafWjdWs4japOofSI2IfZQUP9Ms7nCtHzi7V
/pYdfctx7L+LBkjabda46VgbVTCtpfcZ07mIu4V+eXl6u3nH58x/Pzy9/Lh5fviP8RRwKsu7
fkeYvukaJyzx/ev9jz/QZ5xmcsd9LqPDXvFNW6Sicmd2iQvN43ten866W7C58WVfyHzfAZqo
Tzu+1Qlkfh33ev/94ebXn7/9Bu2dqrdyO2juMsWwY3OJgXasunx3J5LEEo8qqj2caylrHkwU
/uzyomi4MY8MJFV9B5/HGpCX8T7bFrn8SXvX0mkhQKaFgJjWXHIoFTRyvj/22REO5ZS//jFH
SXN2h2Zru6xpsrQX/d0AHcPPF/n+IJcN4z7jlKgVjViAurxgBetyOYqF3l1/wKGW6z/rPg4h
IejrpEjogDrYokXdon6FCYeBZ4LihtaCY51nCtII4AmEr1ip7n5LD2qA6nND30cBVtXZEScE
pVSGXWSno5tbqeCooGdK8lJGJpshLMwVTkT0Kyt+axvEACzLoefBxXujH2js9lJWN5NScCmt
HQRkb5uM0ian3VWindJC+p1vy35/7TzJsgroXN9S7R8isK2Iw+GWtGHcofoec5s253HNjkBH
W95dA+ME5piSWZnB4DlWpXFIbJsqTttDZgh3jw3ALt0NzdXiuSFUMmX6z/S9Z1kz/WnyaYNc
OXlUhfuv//30+Psf7yDU4QQcTLO1HQEwbkiKVsa5qN6OyKhiOVOnpcTw1YzfdqkjP6PMGHch
SdZ3ZqovVDTMGZ/8amuI5ixphphq9qXIUgqc/ONqyOzJnYKiKDBD8sPzDI4OmxfryByFWbGx
FQOXEjMFljryZceqM0b5NdGYqHDUU/U0n3gzpnr+p4p/hhYNi3qFbZsGtkVfDwhFaZJrcqT2
SiG/wXpgjNuxPEPG7w9pKcXyLap9Rc5FTeoaU2ir01EMP4U/ezQpV11XyEhfgzRRxDkZElZK
8Jhyt54yqRa9AA+EPs+SjR/J9LSMs+Me5Cv9k8MlzWqZ1MSXMk9zmQiTipsGVbsd2qfJ6Cfo
Ap0ymBZKzg1aXn+MVSQTy/wKh7tKdjc/Vqoy2FmMuOYXVaxhQzSdyTUAK0l87ZO4SdtfXEek
j05DYKuSvUQgeEYH4S12aX7sbtU6aFaY4pdljI6ClObuimk0i0XIPp/Q1shU1/N1UF+Qc9cV
49kOckj/wbTq5r2CtVcaK0MkjafwK1CmVkfZ8ULNFQE2ukz9AjiMf0agvuWDZ5stJlBjVJTB
YFIvVwLybwKZYIQQrU9mBu6NZSEXztbm+zLussKUzzknGo5DwxJDYkneNCeiUQcUvS3Ex86I
x5ak1Kyj4hUohfZpWxs52KuhCW1z15JC38qDRQdYgLm+RTe8Q4S2X6x5eZ2Go56baHE4UqHY
xo6PYT84omMWKdzZVAwcEUWFFfiS/RJ4In6SouZwQs+sNAxk9MRLebWRxhpyn2Kbjr444Emc
x5/1TBiZTwYy1dZ2HDJq2sAQ4HFfT/aQ7+JEoW+T1JHu/kdmPJoHOrmutAVqIB8MAVYHjg4G
teq4SWM6x00eU7LTsOgn6sA8X+squc20ZqpT1lEJpR/FFtVKGaoYoWtc8Ba2TmQbt0Ud6aq6
glXlzoz0t6dj3jHDJJ0pTnO1HgO5j695nztkjFyFq63TfEekXaK37ZpMH6DkCwaMCDwfdsKE
8pqIzNwIjTedlMoE8OODeSDMjHWqBLQw8CmV1gpf5rdNhVtw1dGSKdvdk0M9pgY/zPlOjKwV
DYa9OmNjZhyD2X2kLsnd/kjHQeYJBS4LpNP2l0PedsSSk9UbZIG0DImkGWxoR3aFBuko4tGM
8WE/WMIng3UU3qvvXh8e3r7ePz3cJPVpUgYZrlxn1sEknfjkX7LcgbXetQWcORpiPiLSxjkN
lJ81qXFK7QSDy7SKTAm35GRjEPbpyueZuWB5sssLU9oZVnUl7Wty1rpWqJtz6NYq19Rlu9eL
hze+2Dinq5o8IsqwmTUYl4aAmAUOzUMeOLY1jC4pi09fvNCzVifCFHTTPIp5VTQBciCzYuTU
oVFlqk7EIoxgHTcgLMAKVOkb8MjDBklvsP7VGRUbeJKzhlkNqy/IF3CeyJojBrWNFxsB2HAk
d7i/FNlZlVNnntssK7cxsTFxGBd9sqIMZUFsd02eHdPiDuSv476HkxR5QToty91tv+2Sczv7
KMFhNByi2UCKvz+9/P749ebH0/07/P7+Ji8NkH517GNm56+Tr/gYsKuMWJOmjQnsqiUwLfGm
HoR+7XwmM7Eu0uUpiSk/LoDE2JpxfmmAJ1LzFjQz4wijnSwQjOZCwZ5MQViK/tTlhXpm5ig7
FuyLE9kQ+6tQFbq6e9tBb0wxS2iltgMvHq0WNmc2ABl/t7FUJ9vjc9X6cFQKcG31FVKUOK8Y
HX6RBcv12RTUcWQYfTosMg2+HfT38GmpFqvWPDw/vN2/ISobyI2pHTzYNWi3AVOxEjV0gbY7
GLNUF4e22okLll4ewFkAYvP6gizVzvQxu3pBmXCbLUtcnBmKUdVZs+BaVuA35cniZw+VWs2T
r6sfY68X1gDG0OX6OCAjjbnODQ7Pe7G3yPHA/JOAgLOSL3KtybRDWpSUvBgVjSwr30ienv7z
+Ixmm9rQU4RL7g8DlxWt01h4cW3FoTmGuyJl7zwdfUtjUDPxFk9tDKfOayzvOGXXFuhJmTtA
ndeuhRbQe4Bd1Omv+NqU1WNQD+uFIeJ1CuND+P5f1Ega/QXF6kuXga9MPsp5TgwudkZGfHvr
Fw+ZE1eZbFdyHdhgg/xAQ/76cv/67e3mP4/vf5gblc4CN7bFgnwKHTvrszNtE/XhTlXXtdGP
uC4fTkGtY/U2TEKLVFQV1OD62joLMCyCsWGiAht/PF5daQY2fkE3iXAf+UQ77+mM3a7exys3
MLmDKwHG68xHoZevMIQSxXT3UhS84st1i5NNuLxcsRug+DTJacQtUnyy3dAcm1hiDI3XljPL
lehxjgQLiGwKL6LoDMOA2HIMUhXrD5eV0jIunrOeyq0H6FICt56nPq8NdF+9Cx/okj9Ske5R
Vbz13Sgg6T6Zb5H4geNSddmmThQ4lBHVxNH1bUJM5TGm9zgNVbh1/ULW/JWhpTw5B9FSHPBN
ANEmSes5hWcoB0C+vTrAOR+tlyHz0DbiEk+4XG/PcT1TWQ0W5iKLQTFWYtEqTDBdr8QwGgB6
QgLo2q5FAx4xvxl9Q9cVfUCt1OTqWKGzfKQbLpCWz4kjo+NvP8gZfDTJkGDUpBPYn4mZnyrB
yEd61oa2S/nPEBgcqrWzNnJtYnog3SH6mtPprt53ZWAReeTHY9U3t65FzcMpnh2sJjqKdvWR
FREFYYjrh7EB8i1imWCIaCIsARvHhLgh0RcjYtoOJrxNl3YVzrYhZggvLQW0ZbSxA4ytSp8p
FJ4hIIjOVCelHUQ2VXqEwmizsiYwLjGwrwLQAwVBKUyNAhi/ci2qOQbA/BXUkRgmI2L8zrct
R9NMmDDnz5W2gRHPp5B+B3Ib2ZTTqQkvYOslJlLTwUoa4XgiUwUUOnx5tOHjHDXfkU5n6Ssu
a0TE4LRGZIkctUQEG0hsq+UOqYMBI5sbhIPo+301cUJ2YOQhcQPEk9bxdt8VvvYczhBUBNG0
JkRkPqhrDCzUfQx/5zvykDVwEO8yDF15jmrb0lECl4qQb9O6xSJPYJnCkgtcnk8twW0Xuw6x
JiDdJ0dg2+V9awhZOPJ0cev4KzIa4wnWecKAdrkj8YSUmYrAgSHoqcogFBpU3SUe0jBQ4ICT
ASkpMn+gpH+riWMXb6Jwo3cBA6hVXvC+uQjSS+zE4NpXcsDODM7VWxXHZ25TkHeFM02utkdM
0a51Y8cJMwrhsq4B8cmGZ25IF4UzFiOdOr0wICKyGwDTyod2AvayoIwsBmNRiWV5yCML6ZhM
YCAXbqTTmyNzxLp0acAYiAUE6ZSIi3Sf6GZGJ8Yt8w9LbJFIj8gDIyCRtT5AMcadtdrkG2tx
qAADJQMxOnElgPSQkIQZnRCrkR6RW8CljdGV5PJjGUis4YpQgLFo/aX+ZQyUxN8FQUBuBMf4
FClBcAkOn5rrCESqDuQEOESLcoBeYus4AAktXt5KihotI6A58bW8oRw4y5zngZE4OzG8uS7j
3YzP1ofSfaL0HRchTG+1AiwD/Lp038T1gUCZWQ1hUIMY2uDI1gBcwThP9ecYIIqfw89+y65n
70AaaLLjvqN0zoCtiQUp7cSTERKZtU75s9ePh69oioxl0Cw8kT/2ukzWdGDUpDlRGjUMqyVH
W4x0Ql1SrT5ZcUtqnSCYHDBQsPpJcsjhFx1AgeFV08Y5fYXN8ZMpoDzCMHriorgzFKluqjS/
ze5arVRMsdWcKQ8XYkgVOmxfHZu8lUwgZmq/oyRZ/DIrWwDllsb4m2KoEkb7AoVWR0G5zRt1
aOwa5ct9UTV5JapdI/Wcn+NCtHxAImTBQjqrbXN7R9uPIXaJi66in5F4PtkF45LRew0r310T
Y5wXQwPlGHNELmbeZWoJP8VbMtoJYt0lPx7io1rVY5vDBKwUepEwzW2FmKUq4VidK7UQRbXP
caItDM19npTQF5Q5HWco0F5PzqyM73ZF3B5kapPx4aUWoszxSrvaUe/5DMdlrVHHUnkqunzs
e4F+7HI1g6pR4oeJsys+djDnYcQJDSYQ+VCXkquzLi7ujqaFqIa1oki0ZXQg9zs6ZJLIMtlM
rXIWZKxEiYPbhMhfFzHqwsMQN60OGC4GzoU4yIVWmYnaAlA3OcgmMg2WRMWyg1M1jRgZz8rc
3F0sCA1GYVOy6rK41EhZ0cKmk2n1NweqY8O0VNaYPUaLj9tcuqqaiMpCKWdUxk33qbpbyK3L
z5WcHaxNbaZO3+4AU1+p4Qk33b5uXZl8yfOy6pQF6JofSyWfL1lTYcHEWo20pUp9uUtR2jGt
fi0sU1XTH05bpT84PTm1XVUOv7T9vaiV24ZR9YSQF5gggYG+ZEFmSpAbUpjnx6TwOKaxfQG2
+vXl/eUreinR34IxxdstreTDQryq6+RU/pUsVDZJjQZPPaSshs/YbHmTVqiZ2u8rkBxoXR41
UTVNNdYzxYtVrg5JjqGDOpBZub8EQQqU4uoKRDWGEbNiyWCQN2KwMWZAU9R5vxUlAf798cgs
XGVy3CSH/hC3/SFJJURhOx6rE4YEO2aXwX56CtgmO3XH7iCiKbPIeNxCqkfnDXlLL9TIt4M8
cjQkabIOlyIjo2zzaGSrOnO8SMCYsHhKukIpk8KV5m28xR67DtrL0mwduqNl/bHPGiToncji
rp9gPT6iRQJsDb84/0uaC0dpfr28vd8ks1uXVBX6Wb8G4dWytO7rrzjIaGoNf4YAXBQ6289L
LcUThDai9+KJpezMYUc5wznbnpZZVH1MFdfMMxHZNkm5VLpsaBHzWLieHNs61CqTwIKhyOzg
OjSs9DVCbuAsfLyDYYTmA8TH1VrZ2iKy7UWOJkJHRptwkQmwvjUEoBxxFlcKHa2Ysxqit8H/
D7oRLg5d7tfhJnm6f3sz7QrMsJg0/EX0kipxVrtyOgkfYav+1w2PyVqBeJzdfHv4gU6IbtBQ
B+N//frz/WZb3OJS1bfpzff7v0ZVv/unt5ebXx9unh8evj18+7+Q7YOU0uHh6QdTLvv+8vpw
8/j828v4JdYr/37/++Pz73SczDJNIiXocl4rtp6cdqYm50zvceVof4kI8AhSQtL+YssQ+kFS
hhR+cDK4TeGwyYSbrSrpsTXsQ4gM+SlkLQw6I/b7ON1nppWVsxjS67ucoualFjG97E70HSYD
2chOScskto1cEq3oSGM7qXnzQQ4s+EKqQ93JxNMT7CFNJftcYQOtHpT0b/ZPP/8fZ0+23Lit
7K/4MechNyYpannIAwRSEmNuJiiZzgvL5VEcVyb2XI+nTvL3Fw2AJJYGpbp1Kmes7ib2pbvR
y1md+jfM5mTGgirjXW4Ey+yCaNWgGAGP1fm+TU4J83ScafIGjxmJ7PkVwHtD/zGC+fyuixpt
uZva0KQIneLCYXHJMGNPX17On78kP56+/sxv1TPf5V/ONx/n//3x+nGWzIskGe1MP8VpcX6D
OJNfHI4GyufsTFZzyZfgpu4jHTrhDhFsSqTr4RCPYe7jtoEYFUXGWAq61h1DRkN5D/A2cz7X
SbANvhlZkvpnHG651dKNVQgjJ8bLc9gfGbMeCcfPTP7R8z0XcD2PoQob+vLRk+TYHp0Dg6Un
lvpOvzzdV63SDxlf4aoDMXAqzzB9XNGlexA+gmoEd40Ro5ogYpDOObRJ1nN+EffHE70ETe5c
zlpB0Be7rN8R1tIDafa+tZQ77AlfWJz5P2XbhvBr0scbVQ+k4cuqse7t1LmbOCvGUukn3u+y
zk56aiw3UOnsHswiH/kHVnL29HcxTp11AHAeHf4N46CzmPUD44ID/yOK9YwBOmZh5BA8yqgB
dz0fYJHXwewVMJ+Sq8lKfh6jC73+89/vr89cIs+f/sWiNIrPD4YivZQJw/uOptnJM0Yg1PUn
Q+BryeFUKSluLGsEihOx3z4OAtnsZo9QW2k5sRCCUTbYEj8RgRQ0xIqbGOtQdoe8CK8CwDNm
Rv/RO1ZCZ5kcnaS3D0uFhHHtxUNNiGAV09iXx4JL3LsdRCUMtQk/f7x++/P8wZs/iXH2yZbX
YEngu9MGmYGzck4Pm95i8BBpwP5IY939DJNIFu1rUXHCGgPQyHc4shJhgwWUlyQEThNTQNOt
nbxNKFZvmbZhuMLigWnTNAboc1ZvhxQpk3Zzdvvol5NkfFNH0tIXLjr35mmyhWAbFctaa2SO
fQr3hQ20graI5dGXtLBBqQtixy1LWxvalEnGbKC9EXb9kdDQHiT55w6X/hQL9e3jDHkN37+f
v0B02j9eX358PKGaIVCh+q5v1elJiSznlDcKDzAtbgP0xVWsCDVgyFmxw9TNYgSOJQUFvjMy
Ixwq9OKGUTZv9Amvnnn94kvGL39XiDJ7gEnTFoWl17WwD+mWEj+HAlpzrA3air886+P19Fjr
XhjiZ9/SukBg1HiZkuCmDVZBgD/ASQow11jitkZayWAagsaqkzQ7OCR1rx31KYQX3OgGUBJ+
SCLGIPOsjWAtLyhYmjHiJUqEdqwtP75xH7X/fjv/TGU2lm9fz/+cP35JztqvG/bf18/nP5GY
yXIQjh1nRyLRizgyAj3/f0q3m0W+fp4/3p4+zzcFCFEI4y6bkdQ9yVtXoeQ2xVOica9x+aln
D1lrPl8XBb5/irRgbUaxlzHQZJvB34T+VsT40YueoL14n0WK0kjECyutcp0LFuhtA5xsCTLC
4YHLWaTcp+NrCqdw2UHx2RBx0yqNlHxhxhviNJQ0WYoFz5LIh9DIbyEbBqF3dK+KCRqvnfI5
r95krK+KMsMe4gWNiJR663wqwNhNPWHtton8dCEC3ISdUz6LaLjwBIKXM1Rt+ULs74+e0Mk6
UUPufS2tKdnEkd0qBbWeWAQKAeV1tFks3CHiYDS4qcLGRrq4ARh33fQ8ZBcYx55EDBMec/Ia
scsQKXQdo1LBgF0v3dkX4xNjTOWIXkZ25x6KdaRbSQqgHUNXfv9QWJAm3R9zEFedpoAbIZqZ
XLa/jeKNvRCdWLoCWtAgWq1t2pLZa4Mzqd3WjAkpNxMly9gTJ1YS5DTeBKhwMG4aM3eBAFdt
iCYmkI1Oy10YbAvqfJaxKNjlUbDx1qcopLGxdXJJ7/Cvr29//RT8R5zqzX4r8LywH29f4EJx
X6Rvfppe6v9jnX1bkLcLd58/Moq+pMvu5R2feecjiPLj+6TN+EAevVsIjhvMMWbEGumcZYmc
RQhuY/eMymqPq6AsbO964MuEnJCTvn3/4LexeVWMc9B+vL68uNeHeo20L7nhkXKII2utOoWt
+G11qHCm0yA8pKRptynBVOEGoR7UHy+K1vjToEFEOOt8ylrM+M+gQw7eATW8RU8vrq/fPkHH
+/3mUw7ltGzL8+cfr8CaKH725icY8c+nD87u2mt2HNmGlCxL9TCnZj8JH3n3+h7QNbFs6TAi
fqzISMS+MsAG1btRxsG0BSxCKedSsi0XmtEhThNC3bchgJq/QI1K6CPs153BUQmko5gx0STv
C2wAZMGggmOU1KlTLATGRU0EZasfy6pmj8xqaLeXKVbMorb5Md1xbgrTasguFDQ2c8Q1rQoS
iXYsKYgynXB2OUdtjzvNcEJ9whtMIUuHGXP7QcBxWU2V5DZZIvqiOqVOIhKFcx4fFJyl+Q4U
nt5uARE/BDyGSFbnhkrJsVMK66khoJfO9XfRQ7JYrNa3jvmLguuNhSBzhNEs81n4tcHyLjJ0
85wQDXpRk0YExubbUI86J34OyF9vLXBTiYmKp+IlQvL68JzGyB7nPFW3+ZKDaORIg3QC44rS
ED7pxOrE0dzt/GdfJ80J1BBZgzG9QJFwQUpRGCXxXh/1WLGnHcT343N1FMJfYGIsurISlHpr
BHywQEHaIvCFEX9dgERoSu38AfP9IUq4CTV7LyHAEx2x2pLaOKJPQnFuEysjqOeP9+/vf3ze
HLgs+/Hz6eblx/n7p2FjN+RBukAqaLvz28BXIWZ64LmwhYjPKB8EWDB8SE9cSjZWi/yO3qUl
tkE4VldxATEoKEk7YoyCIJ3PgU9yc8oY+igERPw/0KBjbhaA3pdwhaF7QqD5LSrC7fcivLWn
DkVVEEk19YA9ZFWbb4HI7FbNVwYtEhMIxll9x9deasJF2/t6n2RNzw78JNMVKcg8Dd/um/TR
eJVRgD7VBQQ+wqkZGVlCvC8XI1oyMOJ8zn5P+7vtr+HtYj1DVpBOp7y1SIuMUXfPKOS20tM3
KKAZ6FkBh+PR7RFjpz4pseD3iiBjxNuAmuaGz54GNv2edAT2JqzhTSXFhFgHmHSo45e+D3Fv
5JGiiFYh5kmnCMCLms9BVnH5DUYDqUWS1DSMlkBxqSxOuIxUUSaeH3yGtZIODrH1SOgt/gI/
ErBgWeDKhonkdj3fbFGK0yoOxRoLxB74coH3ouWyP6a70PDIMhPgBQ6OcfDKU3uISdcDviii
kLh7apfHgXNmQNAy+C8I+zWKy7Km6pHBzIQJaHh7Rx0UXXYQl6NyEEVNl6E7ACS5D8KtAy45
pu1JGMTYDlNYPKK5TuNL7WXRBEvsNpuIcrKtKboH+IYk7rHGoQlBxpvDC2RoOPiIjRhogu8j
7ByM5w8mSATgPQfpVm6Rnro4ub0QRAm4+x4iWvixcOwsJB4ZaTmIqPPLRMSHBy/g/kjAZQrq
qWcLEY+rnq4n7WaNTEspvloaGd2m0hLT9sdAgCXMbFM4jQiA4RR8Ku7Whi5Wwddh7G4SDoyR
NgC4nzsK7+S/Mv+N/6LAlwE2TGIOMUSLrF8ObqojZFNE7313egS0TztoW+rBqkJN9yLWkn3m
8W7C0uiNok/Dix6lBb1BMtqbAzAjPgxAK5z8ABZJF1wwCFyW1mVACc3W1uOzOhCdtrjgPuAF
24c+RQ8U0g1Ieh84nwtly8zH1tOrAPOFXieOTqBI85yUVYc6BEgta3+o2jpHuVRFYEpbVc6P
kK4KVphX/AGS6NBcd1JTEEhvw7lKc00VEJ1bUEvB6Ov781+6JhoytjbnP84f57fn882X8/fX
F9PuIKMeFxSokdVrNOM34E5ppxKHMaqLAlc2wazowBLcXWLqIvDtq9Vy7bkzNKrNYh1jgwSx
nW7X1hE04A7Z0nqXwagYLbCI1QZFbYsxIyqLo4WH6dJp4gBtPUcFNouv4RZ4NBCTyBNrUCPa
FsEajRqi0dCEpqvbJdpKwBkJHHWcSBXd0xrFgvJil6cd8w6gyhVyqQv7tMjKi1TSvunimIVF
zQIvNz8W1mXw7z7FFBFAcF812b3RLQ7MWXAbrgkkTufs5qU6hHp2fmLGgH3oAMvHQazoqiuJ
hxsZSE7UvrzHHVfUoVSfz5ewTVbB2mIWxpnNuimrlzFGRNgH4SpXUSrJ7kjet+i+AjwtQgg1
lpz0VacQ6yi26+PgHnLw+CtUBP2e83KzVHdV6WFrhm5n/HalWAvcLEEOycGT3XjAlwxVMYzY
EKuXeW5tODz5htlChAuPM4hxlvIzbElPkSersU2KB6WxqOINbo5vki095k4W1eVzkFOtNmt6
Cq/pwzIMcSp+QaYtuAt6In63x+2lIjSaa3q3rcCnBbcC6uBZxnPPwmoEhxPc9m1E4yWPaDw0
xog29OrSQ/nt5fz2+iwilmO2U5whTsuMt3t/VLFh0RpssjDGjVZtOs942mSe5WKTrS+TdcGt
Z0GZVGvPA/lA1dKjO5eDgzY2puhiwTygFBXE76OZyYlOMJl3A3TCRb8zwpwBjbBMsJuH86fF
+cvrU3v+Cxqrz7t+v7ShFancRxV4FXMT1XLlCclsUa0uHkpAtcGtVgyqFd/aV1FdUeM6iK5o
/TpYXtEuoIJ7m0/XlcRZsb+euNjt6e4iUzMQF9cXfIJI+tdRr3DjfotqfQ0Vv9DQzTa/orVF
f2VaLL1W4XloRxx1CMChLslOMxQFZzBn0PWBMFSqHPCzXzP4c77+kwgLk1+gIhX8oDMUaXqJ
gtZHCIfgq2jfbbcognR7H9z2N9CLC1QMYmMtXJtwqmAtafj/0yiIxBRdWoXetFLjCeI5JYF7
kw4vl6rAElMhQpGMw2MoryK6XIwGmF42g8X1Cfx4LpBJp90+CuNrSRdX0sXXFxmHy6tJF1f3
KV6EPlKTkDTFUu/VtAIHAn50MylXm8YQCs8x3oSEYCN8ucmSLLyKbBFdIpMqiF12QoVYYBFl
psOKQh4WWzoxkKj9tEO11GNr1k2CDqZAMArB3H2IiJgY0ZFj2WV2GwWQ/8U3ESpNjyQ1uEny
P5eeIgb8GlU2OWQbM8upbAXFTDngW+nyta0L7VKRMHGS7/TTXsADeA/hqNQ0ltUOhBaewKwT
TKtRyzxk6j/2BbC7mD2DTNpzokdPjb8/lvceaePwwOqshEnwsJ/s/cfH89n1NBBmoDIkkgER
vK4x/ayhjrJiSAIsvkEbNugEZkiGzFczFNleOlbM0Tz0pN7OEOzatmhu+QHgJ8m6Gs5zh2AQ
bNVF4drOiot46f2wesjdb5oEGZRpOS8y9xPIzZb1B+b7TK5o57MT5+Ru5/pd1rRYYR2fViFJ
UogB1bZ0hoqwYgMXyEw5ch0l2w5aBHsZt/mlec1WQTDXJMhbOdMlvh+adIZgEAPnlkMpBrTl
647Ulzs1ZrmdI+KnRhR67wqgkIkFc69WQezDmuHiFWnU/GBnMb9dZdAvZ4WYGLAeg+i1BDPD
s0irKu8fquaONJANVS9TJIVu+PAd+Qe3t+t4jT79ZIwfeyA6D7TBMrgV/7MayBmDgYSXtfHw
fSp94UB5LO/K6qHEFKXQEdkHVq9vF1Ztp1UBMr3tQDaRiETudYbzGirNu/eRCeZQcSwFnaVS
bCfosfFTDR4Q2mJmdQo9d9/Uc7sFshp7zyLgCZwVo5r3G/h2e4eBDauEFhcIivaIL+jBab3i
22K+iNZzlKTjNLceJa7sCtgdkDbLvfptscc7TwDhdQQnbNHgRmAj2haoTbzHAULVDYlY9/Xs
ahG5Wmt8oOQgiHzoj5xRbmfPMtZCcALP2qZ8voPZC2XU2F2k4G2pPPtkIPHhRRxccR/z9iwX
lvLTEE8t7md8qSZZvq201xk4E4rD0QH0J+PlAAax4B8iu2V4MTeLqfOIS0CFrEs/ZghnAiK4
epsHvok9ZUKUp1CEGS2M1srknRzU30HOcGEL+msYL7XdM3AsdslTG4TThK/mgb8z6+V3mLJo
5yNY8n+swKSgsvfXKNX+vhrVlDhBVuoqJ80OrnQZ119QoeULv2pSU/C4wsyGJZN0YLUzH+Kx
sWd5VnDud2ZI+jqh1pAAFN5xm8IpVaUTrqnHTZkfvbRI7n31Saaff5+5JYMw1Rds7xsKcXR7
J0IMlN2uYYULO/6sOmn2T1lFmB6nXtIQPeSLBE0OQjLw1vnt/PH6fCOQN/XTy1l4W7lhzYZK
+3rfQrxNu9wJA5kEDL8YlGB0XsGPF/sTcevjbiyXumC2U9nx2M0fY6ASxtoD55f2WuAIyJ2t
PCLMjwriDO+J9NIwbLrj4SSQjUMv0eEYcEhMrsnxyZB7RVXrKz2rAX0qGH41whFqf2uh+lNk
HrkKCF01FW6bWy7kP8x0VZDMDgZsOD9WbgovWjmNeMcRNtwwimLxN+e/3z/P3z7en13Zu0kh
8LT9HD5Be+pzkBiuxlN95JxdU/mPFkZxQaJujlpNHoahv4t6mQDsCsIm9tKpXYSMhRyjb39/
f0GGxzTOEz+FDZ4NKw2TQgkT87gXUbuaGpNjJJnmFjQ00mjMOLEg3TxkwhBNZuR4//H25eH1
46zineqOewPtEORQfsAH5Sf27/fP89831dsN/fP1239uvoNX9B/8YEncV2BQGtRFn/C9nZWu
2+CgZYdM6cgbsnoaIOUJNXJRaPGGQNhRN7BTsR87uGizclchmKlZNjJNZ5CFXuaU2xvpiOyh
NFbydFCFagKzQs7L4u8IGg0rK08OC0VUh+RiQar16OJGWqvzzJtAph7Fja9GPNs1zkxvP96f
vjy//22NhMWiWUktNMuVETUdkrwmEeXDY/Ij8DMhlQUPVOAMN9paGbq3q3/ZfZzP35+f+NV5
//6R3fsmF6TapCb4hXJ/zCgXn8t95gljKj0CeQGodRaUC+r9klW5EbP9Uvukq/j/FJ2v1VJA
o6fQs2+N8RW2IegIOlVIo5GuXvzzj7dqqbm8L/azms2yxgPxIIWL0lMR+/Qmf/08yyZtf7x+
Bb/48eByQ9dkrR6gUfwUHeaAtqnyXC1FVfP1NUhfS+2hGT32FDftvQ/5jUo8gq1gDMpdQ3xP
+EAAAZv6h4bgZ4m6cX0v9RP60goBSsQ+YHAjxUZBDMP9j6evfPPZZ4UlHFWM9b6XBEEBjw4E
AtXj+19erpwD6T2BSyUB2+IKF4HNc49AJLD8dsZjfAksKxL7VjcJHmjJmP84VyJigw4uOoTm
3kUelm1Oe99oTyoa/y0n3eBXBiS+JLRqkSfo4VmUnYBvRr4b3kVFcF/nObU22f0JKrhw5Yzj
L9W46u1SxiA8fDUd69z3ztGBXKu7ykoYa4hhuCtVzkIcCbg4zVCPYI0IHtyZyVjrRayXdhEo
2WZxRU3RQtWkTZVE7Y66jYkGz6sHWJwYri7QosQdDta3wyOmsSAFTXjbn6q8BbUMMuIufTRL
r1NrEr4yh8OYPCUGcNmEUGqDHWayzewAAqrorGxJX7Csd7fKUbwauXyUdJt//fr65r0glRpF
DCM6LAOB51wefL6RSsakO1dx+KNKsIC7aNek94OEoH7e7N854du7fqkqVL+vTkPGw6pMUjij
9fHRyeq0AT0kBG/GmCCdEsaEkZO2VHU0hE9iNaEeNGgzslNqd8JJWAIHijoZRFzdse+GogBY
KA3tVSgI7qlPEnhLdEk1Qrl7PLVBRvTNBoK5zJQyTVSfnoyoPgZ46FxZ6a4eKEld63oek2S8
DZJdph/XLZ3CFaX/fD6/vw2JNhDRUZL3JKH9bwSNgKgodoxsFutbuyIrepICFqQLFvFqZZ71
AyqKYtxKcyJZrZYb3OxQ0dRtGQcxbgSsSOT9z7kwEbPA37OmXW9WEXE6wYo41uN6KvAQTBtD
UM2p0G6OQEOMzwhNg12kRWWmx4RlV+fBKuyL2hO4Uj0eJvwGnCNIPdyVEty4nLPDmbNtG/Q5
l4BanDkCu5a0yPCEZhzpxQkl5N7XK5H6Bxb71uPjAVIbvCaWadtTvAYgyXZ4+dIWvS9TX/3A
exf4kCVkzYUjOE08Y1LnUczvME/RwxtlU1PP0Mg3gF1BQ++0DQ+9aOgreYrpnMFw46cOMMKA
YM7kQoFJ4tDe0rbrOE35rO8O/kNFPcdgPd2iYFOZbcClOG+o9Cc8RE3l8voRf6AGQvkAJgO0
aGAV6CxN0MbKPw1F/fSNQyqqZ3CvjiShTsKG7Gjmlxw8lWh0bmqcOPpdDd/z8/nr+eP97/On
eZMmXR6ttDNMAUwX521BFrqDuPxt01B+3IqobzkONekTEuqXRUIiPV4Gn8Um0T0kJWBjcCgA
Qt1rd13OIGU40aZwgpnt0PIjylZGiTVdyuVZYmUwOmta2uFT0mXMg4PsfgN+7MJdx5IN0oG7
jv52F8ggu9OpQ6MwQm+GgqwWseYyqgBmRwG41NOrc8B6ERuP0Ry0iWPcGkbisCCvRUf5ctDr
7+jSClbA2rt1hMbDAcyWqAgfgwLUXK5yCb89fX1/gUQ6X15fXj+fvkIYRc6tfNrK3GR1uwka
nIHgyHCDWvAkq6W+3uRvfkNwZhViEZE8T4101v9H2ZU0N44j67+i6NNMRHeMSO2HPlAkJLLN
rQhKJfvCUNuqsmLKksOyY17Nr39IgCCxJOiaS7mUmcSaQCa2L5nAauU4BwdkhQNc6XTYXLED
7GTDBu4gk83vwSzynUKwp8qfRpoSLT8M4RUVz0QdgSsYqtsy0GMZRGnuzonke5IWJWHTVU1C
PKiL3FfQk40PC8ezYHkg5cqT+esLd+ulZQivZIf4ADzr5tehP12gsMTAWWpazUkoqis4uJO5
chQJ7+rnnqcP6HIy9bExwaOL1+SuBaA3205lMycaIBDxjs5I3jx4y6WdAH95wtQa/6z05/7K
/CgPdoulA7sJbn06lI172XtYP4QWMm7vgSeu/uhF9gPpcwHG13oHwj9CwPDCUbIqn9Vzb6kP
g27RJFpHm8NCfzGgOWxUs/zwrChXWAiHaINJC4dONFCFu9lCJNrQKPs1IUcp6owNVa264naw
HPSK2x6F46Vn0iizSVoTAzVjyzWrVVr+fjP3xnqO+6SEEGTMduv09sr6QTa6NAVD075qGDZv
18v7iFyeFPcGLHBFaBjopzP2F+0x6OuP87ez5iDFWTj1Z/oZYyclzM7x9fjICgbgHC7j1NsM
Tzd0n38s8ng+vfDwRfR0uWm7OUGdstVCGfdRnTUGeSiQeM/rjMwdb23DkC5d83LwxdQ9uaTJ
6GKsxr+iYTQZN10gY40K4Y8R1eQ8iBkeaGYWCp9UEPacbl2g17SkdroGV6SMCuwflqYhl71j
NjvmF4rmpY0emQiRGGQ2KcTgzrdpt/sVn5/afEdMfhReX16uF0Uxe79VLCoMYFudrS4bZFhp
NH21iBntSic8SXF4yIQ5jEuvi/3Zn8kT1xVoKXPqatHvdFpMw33Wi4Dz2rYXu4btGGLD6SjG
uctPnI3nGIgiY0x0SGBGmU4x3BzGmK18ACRXN+c5dVJphPlyrv9ezY31UFnUjQZ+HdHpVMek
lL4NE8Nd9Lk/QZ92MedjpiMJAmXpY24O80rg/b9toYxcewvAGLPZQgPphVlfVKaHbx7ql06z
nj5eXn62++HaoTR0uNit5kGz8KNnMwEBfQ9xOU+Xx58j+vPy/ny6nf8LEQOiiP6rTFOJfi8u
9/LLecf369u/ovPt/e389weATav6Oign4q4+H2+nP1Imdnoapdfr6+gfLJ9/jr515bgp5VDT
/l+/lN99UkNtWHz/+Xa9PV5fT6zpDFuyzrbeXFvmw+9WTfuNs0NAfbZ+cEy3ysTDXS80mltW
7iZjNSJHSzDzaoe5SAgWz9iWTb2dCPg6S9XsuoqZ9XT88f6szF+S+vY+qkTYoMv5XTezGzKd
qnEcYZd67KmbIi1Fi4+Epqkw1WKIQny8nJ/O7z/tzgkyf6JihEZxrW6YxBGs6Q4awWfFQS1C
vINgYLWyjRHX1Pc987exU1LvVBGaLMSiv58mGMUEYZF1NevVgpew4Q+RPF5Ox9vH2+nlxPyx
D9ZO2kS9zpJWDfGN3ENBl4uxW+AuO8yxiS7J900SZlN/rnajSjVsDuMwPZ1zPdU2MFUGYqVS
ms0jenDRHUrPuKuI4s050HAilMf5+/M7okPRX0wHtI22INodmNLq5i4FRcbMXcrMy1jZdw3K
iK4mavNxykoP3BPQxcR3OJXr2Fs4TmmAhSOpMWvkLbWlNJAm+NKUsSZobCLGmKu7VvB7rmLH
qW4aB2WEl6xKN25LPyjHOj6woLFGGo/x7fvkC52zkRWkjutc0tuhqb8aO3CgdSF/iSk3sDwV
R07d6EwpSm+r15+D0MDzHaAwVVmNXTGhOp+WB+NCt1IqDWc13TOFm6qYsmw2ZROuMb8CZdVT
8iLwJmoPFmXNlFFTjJLVwB8DFVt0JJ6nR3IAyhTfOqT13WSCDgs2WHf7hKqN3ZH0CaEO6WSq
gxByEhp5VLZizbpypgeD5iQH7ArnoXucwFmom/2MMJ1NlH7Y0Zm39JUN8H2Yp2039OslTptg
LzD3JEvnYx0PXdAWWMPt07mne9oPrAtZf3norKfPauIO3/H75fQu9omR+e5uuVKDKvHfM/X3
eLXS9+TaA4ss2OaOlSpjsRkUN6zwGamLjNSkEgcJyvZ5OJn5U6wZ2gmf54kfIcji2CcIUkni
LJwtpxPX6rqVqrKJ5rPodNMQ3QdZEAfsD52ZK295eRBrftExfQDIm+nHZzt8ua190zoIjz/O
F6t7MWczycM0ybum/8w3FcdrTVXUAeAjOqwskrteFRF7HO7G2GduMpbW6I/R7f14eWJrnstJ
35uKq/a9KXZOyAOxVruydh36ydfdWhq40emkf022BmuXFkX5eaoAFIxLta2IN0PrplyYg8yj
kh0v3z9+sP+/Xm9nWEphvc1N57QpC2wZoPRtuKM1vLzhWCYQEk7b/PuVTLUV0+v1nblXZ+Ts
dOars2kEQQT0Hf/ZdKKfr7G1tcuoA49Nxti8XabmwsJRNrTcrNXf1UvVWbnyxviCSf9ErGbf
TjdwMZHZdV2O5+NMeVazzkrtUFf8tn1i6VStg0qDAInSmJkKbMEYlcxtxedcDqKscMqxZiqT
sAQEAPTctEw9dUklfhunpmU60YXobK460OK38RGjTRb2cBVlxXp4NlU1Jy798Vybih/KgPm3
OIKa1UP9EuByvnzXRpJqSTVm29fX/zu/wDINRsfT+SY2pq2el/2X3a1L7jQmmbaa5M6n7uAl
UVDxC/zi+bNsqLXnqyFQSw0mvtpEi8VUvWFFq426CKeHlaYV7PdMM29MXMOrBtdlMkavV+3T
2SQd94uxrnEHm6R9l3e7/gD4OvfZdPdqbVBSmI3TyyvsLeljTp8ExwEzCsSF39OPDadMlh5W
47mHQ14LpmM5VWdsyYMjD3AWDpzIWJ6HnZPWzIDoHjun+BFuS5C26XRHDd3KfnQBAxWSFZkO
iPwKHH5VS3KZl75GCg/87qzdTBZDMDYF4LWVm08q5tG42QOPqoAvYW/cAmIUO/mkXE3QmLHA
bLFCzErHyXqPP5EGbpLhj2EE74AvJlumjytWy3UiVXA+dwSMqKgqXwwpsy53hGTr4N6ZrNyN
pw7UlVYGbhsM8CkdClQHMvyw3iwcf3+UUMeDXP6VuCPgFjjgOxDA49cvo8wF4wIiPNKyfhuC
kw8YZDdw9FeExPwQDuud5ZG3Ig1UE1WiPbY3pgD7lQsnu1D0ODP1l2GZRtZHcLzvLCG81nYz
HWgxgpc5ZtqOawA46eySGFWGA32dxO9gmtWpExI6Xp617LhyAQWBwD4BkOKBigmkMGtVBMEh
H5/Pr0o8QmnZqi96D8L95m0SWoSmzGwa87abvPrTM+kmHICgNYkaeUan91EglR3RZpNgC2t5
QTr1Gy2mJYRoBbSDSnsn8BdHOAoSfM6VSs6mqxC+LB2TfyfH2mtQoHoIPLeU1HOen2MnabqE
XQE0nGd7XQM+1hxdBV/b+NAqX7ykVubSX4QIQLXWpGXAFsuwVodrs2GpoltUXzqIRNa6EVHe
VYibTiDRXsnvS8qsBqPTmriWtxmvnrFbIdume2BU2Yqrvj7CmPyxktV07T05KGtYZOskd5QL
wnVuOa5wGDOP2XEUzFYbeMcFJRyiBonm5lqjUmmGMgjvGuOmfTdwWBFiUDWO0w8TQvcst+ts
i6MoAvCCOnaAhbf8A/XGuAkVAvz5uWPXtpVwu1KtwIAzpUm014kGBJ2heAQbbi8Osbmvsv06
IHLne/iBiWCnAZuVXQOPCwi/ZUAiC+OSWbSgOgw1Kh9aiFIoXIH9zNRkbXc7XBkcSH0YAVHI
dC+QP5Mp8ft/XEDxS+xCOuIVtcykDVFmfiTgc93ftdi3GlHMGRiVRwOwc5Ez3kDdu0lxm+7w
O4NCDt4r4mdnAjBWRuH4LH6GlDNjcehVUuFzxbZDfD+iH3/f+HPH3h8ABK0KrH2sbC0oxCYD
IKtIsHvXgzGkZw4vsYraseZgclZEoI4LXwK6LhQNcb3Yt2GQN3UV5DQk8LJZsVOMKW5VskQs
MoBsKcXWmSv5jVbKFlAJHoY5ysLH2nINIr75tQRaSTl3KAEOxy7TcDInEPSTYBKA9d7ykBIA
l9ccRJogD9ICC/iGfID1cIs4AgXC3/bzLuJBgHiGThkRtAfSQUU6yGFoFlMbrIRyajWyQ8bV
kzn1kfYFqohoGVkNwSGsg9qxzSAlXPVTmsBsJk3XW8TeoqrEq1W9nVt2NDRahAhNAE1Vr13H
C9J9YabNn+nx0DdmHVSFSQ7MaDqVpUUJHGqDFmjwM5HFZyLgIYDzNqQpAFPL7HxeDCuL9KSH
MhS2vtlXB4j0PKjorWjF/HJntgJEcrKY8beo6Y7CWdqg0nO/6hP9EzIDvcdfc7JsxxxQ35oY
Vf6uzhJrfmn5y0P7ubMoQjIsPW/8v4hCpo6yl4eg8Zd5xrw+daGqsbBZGZhDHZtl5eRzAcjU
LQE4vINVZAK7jWMTqOUf6GcpxJHjIawUEMPSEcCL2zfuaMIN7Yi4SxOWYVAOaRFb18SAwZ1F
2Vy70QXcIiRpUbd5mJ3BFyCDrd3CW36Zjr1fEIRx6B7XXMSFmNMLDFhrLgD2ILaq0rFoXtJm
Q7K6aPa/kE4SOlOKKVfj4eLyLN2dJ9tvOZ4fhtWaR2GBFnSKVAFH4htKRTz8IflkyNT26Ail
WXeFBb8OuNOrSZIMfWytyfA5H8aLM7/PrYIuGtLENLoD0pEtjcna/kcfrEAP+6vxLG+33c+I
SohfRCzLLjHLYXrgAo5ySaALq1TylftOO+VRGcjEKwPoDAwvkSG3gYjD1a2pBlJQZSZ62TqW
XZ9+CysOLRWBxw6wAe1NWOFZmw10ei86/Vw0iafjxeBgElvQENw5vnepuFjTHZDFi0AMWE2b
0sdRUEFIYCYMFSLKlt4nU0eQzWfTz6zIXwvfI83X5AGV4Mceodiqcvo9XMg5RmF3LymJa9IB
eA/P98ZmM4ltn/bEaWgy0QWRBu8Ou7gfiu+e6HJmbvoSWWzzYuFi5Am5tnpXvgYoIOOIoWVl
KqYD+wELdmXnI6ByZyC4PL1dz0/KnZM8qopEG5QtqVkneQSg9CYiX/fmTyTV3SgJtKuuEdkD
CSlsvs+Ids7JCXaEdIPPd48T3Gz2EkVY1Lgn0GKQEMD9GkhEbnUQgModyk0KuvITUhAIxV0m
cOfcBRJ+y8Ysh95q8E6XRjoeW29EzbRNAVawXk9EirB65SVGuojPXKw4ZKhhWow4B5pqNyl/
1hHizZPVdrLlJGgtaXHczELke8q6aGviCLZC7ctjV/uINMQYVW6/AIA00XHjhGSFajTfKMj3
lR6qRTxL+Tp6fzs+8gtD3bFdXzpHOA0xxdQxOh6RJPsvHdunG6rZRfazyQmHSmnyIsJaBkSy
gK9jdUgmhRHv1ihdwDSYGdIQVW/OWhOAjtETK0LNta4JVsxsl9ZJmZID30g0L9DawKjZDh5c
bxcrXzvXBfK2dGyZAxNibqG9geXWmR02wEodJjBBwwtAtAMBv9hLMlILA2oAaCo6UrH/5yTU
9pVUOsyUTgXrhHguBWUzHWZ8NdH+WgDGFf5fzwyLHbANaX4xN9Q3w9QrtoyFD2Xt0q5LCrCx
vhBsJoEAPV92QRSpjngfvqRm1pQZ3VqH4S5orf8SK7soM6gAEq8pFBBpjl/GMjDjxFvL84/T
SLgCKuRgGIQxgdhOEUfDoZqO7AO4HVgTNlzgkJeiV07IAcJAbAxwUEFr1hCsjikpdkS5SSCC
A+NrVwsB7RBwGO5NvjLWG5KH1X1pXw/vJfakSmpsQbWheVEnG20rMhIkhyZzHgdIxJILuuSk
sd0VtTb2OYFNhzVfHXMVBewa3LGrGL/94mtQ5azquEXnEvzSHFIowa0romjal01WN3vPJPhG
wcNax9LZ1cWGTpsNesbMmY3e9WDVGof/VbBeSYN7g91iNTw+nwx0cK6bqIK30uKM6nb6eLqO
vjH97tVbadAixEsvYi/ESRpVRHmef0eqXF22GncV+bl6G/qEMgO1Zd261lugI2JNJo/lt8kW
tn1DNq62WoRi+NM3qvTk7ToqU0FCQz5YIJIZybBsmfJB+DZVSvE8Uv2HDGHy52/n23W5nK3+
8H5TPJIUHvVHBMrdTCfYzVFNZKFft9Z5C/wUWxNazrATS0PE12ugcGZOzsLFUV9aGxzPyfGd
tVzOMbNniEwHPv+VRppjIAiGyMpR+NVk7uLMxs5yrRyX43ShKX5/RC/ZAr/tDEIJLUAFG/xl
hpaM53+uKUzG6MKAhkmik2SeHk62eloy8Fd/qgQGaqHyZ3iOc5y8wMkrV/m8zwvouHeuiWDP
C0HgrkiWTaWXidN2Oi0LQlj6BblNDgnztkOMzqzmrioQTlUEdRLkZp05775K0jTBNmykyDYg
KZbhltnOOyzNhBUxyLGHMJ1EvktqR40TrNLMI7xLaKwzdvVGex/BVrshvpBKiubrF9VYaJ6e
gHk5PX68wUuJ6ys8plL8P4iPqmYDv5uKfNnB6znL/krLSSqaMCPCPBUmD1DgKr53BYeTkUxZ
OoTCYbPo7FcTxcxBJBV/7WcWpuHeVRIKJu62k3AHvl4TsaU8v8pSV4nj4reUHWSihjsO9oT9
U0UkZ5UAZzAsyvsmSJmD2sKGdZKGkOYbWClsWBLrwBF/1BaHWYyWgcPvZU4J+Kq02FUOB5PC
q8qQp5cxfYpJWqJ+rQxj1reuCoCT0uzP334cL08AufI7/PN0/c/l95/HlyP7dXx6PV9+vx2/
nViC56ffz5f303fQv9//fv32m1DJu9Pb5fRj9Hx8ezrx5069arYhQF6ubz9H58sZ0BTO/z22
aC/STwq5FwUeKFulwBvTBEKu1cy3VkYYKvVA9KdtnAg32u6YsjkuHSkyrLtkRuhiVhNE84Ib
NKA2XRujd/Wk6IbNRIqkOtAdbSTZ7ibuEJ7MeaFrOBishdzwCN9+vr5fR4/Xt9Po+jZ6Pv14
1SGAhDjzLtF1XssN0q0WRVAj+zadBBFKtEXpXZiUsboPYDDsT5haxCjRFq3U1WlPQwU719kq
uLMkgavwd2VpS9+VpZ0CXJiwRfugnSjd/gDmBFVZdXl408IDKMLDanwmNj4ghxrilJviuvB2
4/nLbJdapcl3KU70kTKW/K87F/4HUaddHTPLhCRoxpMUK82Pv3+cH//49+nn6JEPie9vx9fn
n+rrS6EINLCyimx1I2r8jI7GBc3iMDLFtl07dhXRAPmOZthBqGyUXbUn/mzmrbpDnY/3Z3hl
/Hh8Pz2NyIXXEl5f/+f8/jwKbrfr45mzouP70ap2GGZWfbYILYyZXxH447JI73WUkG6UbxPK
1MLJgPu9dm9S8iXZIy0aB2wu3cs6rjlK2Mv16XSza7C2eyTcrG1ajQ2UcEjPSWgnk1ZfLVqx
WaP6vUbRggX3oL6YkRMFuYf4VUhaQcS80HqHbZXLskKsD9le8fH27GquLLDbK8aIB6xl90JS
vow/3d7tHKpw4iN9AmSkaocDTOHuiq3T4I74WAMLzkD/sSxrbxwlG1vFUVviVO4smiK0GVKm
LGGqy29PDvR9lUUaMpwcC3HgYUR/NsfIMw+xqnEwQUpFMxSxqWXCnuO6sA3m11JkIbyG8+vz
6c3Wp0C/ANZTmxq75Sf5+W6doB9WIbbe7nq8+LpJkJ6TDAu4U2pCkBG2qrSn+DCANZPrI1pj
fQx0/Mm2tBuOKxPS5frE8N3FwQPiR8kpGOtfiG85kCNzEkojjoGpILaC18RurvprgbZ/S+9b
UujM9eUV0BT0VYBso00a1ASpTPqA3V1qmcuprfTpg114RovtOeiBcodCwAywldD1ZZR/vPx9
epMIlFhJg5wmTVhiLmVUrTkq+A7ntNOqpR6cNzjpcRFhsWyGRfwrgaUNgYs25b3FBRexwbx4
ycAd647r9NQ7iUo/60HYbMzsseM3UxRdQHRcknNntlhDfFBUd2ClPGAQoKJNG+xMXSX9OP/9
dmSrsrfrx/v5gljNNFm3Mx1CZ1MWpsaM9amFAiExruVTHDQLIYKzOodwOAXVb7TZ0vIxNzh5
IH+uhkSGslEsKNYephc53DCd6TOTir8iHwb0PssIbCPxPSi4W9kXUWGWu3XaytDd2ilWlxku
c5iNV01IqnaLi7SHrGoxy7uQLuFYcA98SMV5ECuz6RJRkljAPRcKO+A4l6NlsY/VrGmyha2n
koiTWDhRlTtx9vEdoF5+4wuH2+jb9W10O3+/CDSQx+fT47/Pl+/9QBAnUOpOYaUdAdt8+udv
vxlcsbpUGs/63pJouEJOx6t5J0nYf6KgukcK07eDSI4NwPAuTWi36YmfTP5CQ8jc10kOWfMz
342cRlLn/JEmOYQxqIJ8a9yUD/gZOaIS64Q5ZBDdU2kdvpPJzyExrnzFxzy5PITtyYrfIVc1
RhVJSe7gQoCvXZ2oZ4uStUnyiP1TsaZcJ9o1jbCoosRx5bFKMtLku2yNBysV+8dBamdXwoNv
uBuqDE6oPhxUh/9f2ZHtNm4DfyWPLdAuktRNDyAPtETZWusKJVlOXgQ36wbBbrJBbBf7+Z0Z
UhJJjdTty248M+LNuTjkpMUuWK8ozEDJyKNA52GEWp2JAortjvZlwEYHwZ6Z9+qcmYGOxgoj
V/gk1WBUgNUMEtdmgMGVx6eAgZDlMVFAXNWtW8Av195PWOdJhFvcKxgxwMDk8p57qNQhWDCf
CtXArppQFpECZncKy77vHozEX8CdLwNDHxuGgeUu0HagNVV1GFd6wtBXJipL8AyxjiIL89Qa
LKZmUBmpBPdhM4SGcgx/QMkDKkLicCeCDipr16eHBVMyqZ48nK8RlFKGnMAc/e6hdaKV9O92
97uzBA2UwoYnsmobkliw82qwQqVMsQCt1nXK3R4yFHgNadzIZfBxBDNr3ACHHrerB/uhBwux
BMQ1i0ke7Dx2DmLBwo1F4HEf5oSIQoC2IvEidHZCKXGveY2tR2BSXWAtxLWBwObkJTI2mbog
J/8e/MDwqwGQYYKrUiOAe6+qtYdDBAbSo/5r6zO4exAnwlC1VXuzWNrHnIiBsUiEwjzDa6mc
HKo9Ny1lVRfjRvV4MBRVmDfZDEl5nwWEjvrHQv+LynmTpCdBLMxcwbS3bOK8SpZu97I86ygx
5VrhYntUkeeJi1JyRG3EAoMJUseRS42UCuQeoUaKV3j4e3/+csK36k7PT+ev5+PFiz4W2r8f
9heYb+BPywSBUlAJatPlPeyV26ubEQafcIFuYFTS1aXFijt8iR4p+ppn7TbdUBbH7J0S3RTQ
Lo4N/kcSkYCKmuLM/W4PIdp3o/fkHARsALb13dpfyiwAi1txSXXLVaI3tSV9CpiectPmUURn
fw6mVe4c39kqSpIv3V+2qO52JUgKx3xPHjCXp6NnqDu0l7gw3rSIQeBY9cep8xt+RKFVG17Y
UOhnr5TDaoD9dCxtG5ZWJEYHXckKI2fzKBTMqxD4DcXfthm3qQsMc3ccCz2q1nGpbZTU5ZpC
EjwiGvJGJE68RoE3pvlT8nz5Uax47X2kfPvd0LJbXxIpaRk00mL6osyuMNYhD4dw8f4YtrOC
CPr2/vx6+qyfrnw5HJ/GoRnwH/omQDVdJaClJ/3Z4m+TFHd1LKvbRT/1xuQbldBTgOq6zNGE
lUplInVe451sYe+Pe/5y+Pn0/GIsmyORPmr4+7g/kYIKKKj19vpy0W9YjNYoYODw3k7qKM9K
ipCcNIDkIjIkvuSFjzXBArDPCs0OB/6KT1KlcZmKKrCknI+hNrV5ltz7ZYDsCMD6rTP9AbEb
FHzeAmwEsH3dvSIn4W4tcQdud28L+zDDyH/2IpbdgEaKDWWk1XJssDW/dw5oxsgt+fzYrcfw
8Nf56QnDAuLX4+n9jIkqnMjZVODDa2D8sm9VmfY5E9bB9L7Af2c+pPNkoksxin+mHD8qw2ZJ
NP6bVWhNyfiXPoO2axigGGKxzHNO2SeijVNYuOxDMbQD8fby25WNhT8rmFXQgUQFhqPKizVY
GZdjprYsBb7OkMUVijm9fodgL8ROdXkT4KeodcaJmzfsu2bYnQeMdnazp2q4n3bdjsnpy3Xi
rJHRyF2FSeHYeBZdLpJ1wtOrskd1vlkz0rw3AKsDPZF/BJP8XHlc5pnjVxrqaR1bX8NVHopK
eCbEoCwSTbMbt7vhtJPe91CFtX3zS//2MtIZIBXH7SgQWDKYiLkok3rZkXHDTnhyZXvC3Mw/
SLIE2Mu40g7D60maxVKcU13y+l0Jkjo0NDIDs3Qtbc3IG9lt2harLkO5V8+Wv8TmfzgXbm9o
Y1XVglnuBjFTDYwG3knBqKzpxa1ZNHJ0f7Q1nxKlHf/pISiHuFhNf4kJ0ucJtqmvmOoAOI0d
O9tt7Kh2g8V7A7CLgAsP3AosQO+mEJUxz6QjfErI+YYgrB424jSebF/r9yeNBQREF/nXt+NP
F5ig7fympeB6//rkXgUR+GgP8Pucv4/k4PHuUy0Hzq2RpODW1a1lGJV5VKH3EM1aJtOytYwQ
2a7x+QMQDfy+au5AmQCVJMx5/XS+rzrWFxSBT2eU/i6f7kL+GLQ7uNjHjZTmwXftk8aQmUGc
/HB8e37FMBpoxcv5dPh2gD8Op8cPHz78aLmr8eYXFbnC9WPuzFhcT+Vb5v6XBivR6AIyYMcO
nqDI0Eb8G920ldzZR2tmuUBf8DMfPkHeNBoDvDNvCmE7SExNTelcoNFQapi3/xAWymIEQM8o
WN+/+mCKVSoN9sbHal5aKUx8rkn+mCOhE0pNtxhVFKugToQCk0HWXWnXPtMz1DNsUVR5ilpi
ImfJzCzrM2Bj4HJbkMYQdhBekmx9h/UwL4yDdtiPQeSUwHspylDX1Yi4Gl+jG+zB/7Hwuz7o
wQcGFSWan3pj0WE4kYmzR987/UbzBKOJ6wyDM0Coalf1zHhvtMrAeIuQf3zW+uGn/Wl/gYrh
Ix5P2ZdC9ZzFJaOVFwie0wkmHCuE1MH8/PmN1mBa0sFAPcJLvLEb7jzbeL+qQMFIgS7uZXPT
4RpB7TBHl/MElq/QW4qdYRrULWWuHi1RxEwtPosEtE+3AAuHCgQZtL2wub6y8aPlgUB5V86s
Yre/I/31zpiZirQXfr9Ao9Z5VSRa66tk9xYLdw+GchNBI5WnqPR29Dx2pUSx5mnC+0wgu4m6
QZhGtk1crdGR5atLBp3S3XEgwCNHjwTfdaUJQEqy3P1CAvOhLsVaL1R24AobPCuG5R1Fdn/k
Fn3FSO9INxxWsKLQAY2eCX8UCiVlWuDr23zjRuUZgCV9h8siVALPQwU+nzthcNDtGuMEG22t
/fvLzWLCQozxQfOuh3HIq0loGZWY44pdyX7xtoOtOhxPyKRRHwq+/nN43z9ZOb02dWYfV9BP
y+JywO6m1DC5ozFhcbRWjIuh3wSa06FjjVKgfdROJ2sqU57I8sRGtMqmy7NnM5OVfmyDoePv
CpEXo2/YnPG0CXI7rlrbBaDvA9is+MKx55GerVPBZkEXcKWVOgp3m6oYT9Zhhfkc1oDY1TG3
EDxxmsZliS0I86DGAwR+rWvJu4z1aJZzlXbu3X8B6PG1r96JAgA=

--d6Gm4EdcadzBjdND--


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 08:34:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 08:34:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222784.385151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjdd1-0006VX-PG; Sun, 07 Nov 2021 08:34:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222784.385151; Sun, 07 Nov 2021 08:34:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjdd1-0006VQ-MH; Sun, 07 Nov 2021 08:34:15 +0000
Received: by outflank-mailman (input) for mailman id 222784;
 Sun, 07 Nov 2021 08:34:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjdd0-0006VG-Jm; Sun, 07 Nov 2021 08:34:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjdd0-0008H0-Dq; Sun, 07 Nov 2021 08:34:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjdd0-0004eN-1k; Sun, 07 Nov 2021 08:34:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjdd0-00074m-0z; Sun, 07 Nov 2021 08:34:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DJ/nAiAOj/HsHgeUBVeTocEN3pret5m9ddouEN4Nh5g=; b=CqBgNXeB+vPjJnWPzjCg45f78+
	K9N1OL6bIBP+br7WGQ2uEv4poKMAozJ43nBNsP6DWH7UzVTlN4wlrtKI8Wvpkv3kPMvuOfTta3PJa
	7VFSnancRXC8bp9w2M+PDcy9ZFHIXAQ0Rs7BXDU6uZDmZNQzaFa/G1eWSEBm2fFmIQd8=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166072-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166072: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:leak-check/basis(11):fail:heisenbug
    linux-linus:test-amd64-amd64-xl-rtds:guest-start/debian.repeat:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=fe91c4725aeed35023ba4f7a1e1adfebb6878c23
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Nov 2021 08:34:14 +0000

flight 166072 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166072/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-rtds 11 leak-check/basis(11) fail in 166064 pass in 166072
 test-amd64-amd64-xl-rtds     22 guest-start/debian.repeat  fail pass in 166064
 test-armhf-armhf-xl-vhd       8 xen-boot                   fail pass in 166064
 test-armhf-armhf-xl-multivcpu  8 xen-boot                  fail pass in 166064

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-vhd     14 migrate-support-check fail in 166064 never pass
 test-armhf-armhf-xl-vhd 15 saverestore-support-check fail in 166064 never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check fail in 166064 never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check fail in 166064 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                fe91c4725aeed35023ba4f7a1e1adfebb6878c23
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    5 days
Failing since        165992  2021-11-02 05:40:21 Z    5 days    7 attempts
Testing same since   166064  2021-11-05 22:44:04 Z    1 days    2 attempts

------------------------------------------------------------
1770 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 189447 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 09:49:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 09:49:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222794.385165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjenc-0004iq-BL; Sun, 07 Nov 2021 09:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222794.385165; Sun, 07 Nov 2021 09:49:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjenc-0004ij-8L; Sun, 07 Nov 2021 09:49:16 +0000
Received: by outflank-mailman (input) for mailman id 222794;
 Sun, 07 Nov 2021 09:49:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjenb-0004iZ-3c; Sun, 07 Nov 2021 09:49:15 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjena-00011X-TJ; Sun, 07 Nov 2021 09:49:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjena-0008IW-L5; Sun, 07 Nov 2021 09:49:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjena-000590-Ke; Sun, 07 Nov 2021 09:49:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=J90zp8+MkL5vh853B5RmOJAERi8gcq5H6AVyZ6ewWFk=; b=p1JtADeVGQzswB7ykWgpjwtGMa
	a01SzxB4zhrU2WT2QaRX+sj91txjhVLV/WsPh0ZvwDfiAz72uFz/Vz21t1kfr1bjyydQPTpM067C4
	+9B2lYp8+Jb87stawQTUnMsrdYfx2xP2ceGV42GYTEcMBxdv6v3YkgFWvb87aGcE9mCE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166078-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-coverity test] 166078: all pass - PUSHED
X-Osstest-Versions-This:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
X-Osstest-Versions-That:
    xen=9f8434d77859462ad98a51ec49ad8e23769d9b10
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Nov 2021 09:49:14 +0000

flight 166078 xen-unstable-coverity real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166078/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b
baseline version:
 xen                  9f8434d77859462ad98a51ec49ad8e23769d9b10

Last test of basis   166027  2021-11-03 09:19:42 Z    4 days
Testing same since   166078  2021-11-07 09:18:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Dongli Zhang <dongli.zhang@oracle.com>
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Luca Fancellu <luca.fancellu@arm.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Stefano Stabellini <sstabellini@kernel.org>

jobs:
 coverity-amd64                                               pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9f8434d778..9bc9fff04b  9bc9fff04ba077c4a9782f12578362d8947c534b -> coverity-tested/smoke


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 11:29:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 11:29:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222803.385179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjgLh-0005TE-PA; Sun, 07 Nov 2021 11:28:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222803.385179; Sun, 07 Nov 2021 11:28:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjgLh-0005T7-Ls; Sun, 07 Nov 2021 11:28:33 +0000
Received: by outflank-mailman (input) for mailman id 222803;
 Sun, 07 Nov 2021 11:28:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjgLg-0005Sx-Gg; Sun, 07 Nov 2021 11:28:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjgLg-0002kV-7S; Sun, 07 Nov 2021 11:28:32 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjgLf-000746-Su; Sun, 07 Nov 2021 11:28:31 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjgLf-0000k6-SR; Sun, 07 Nov 2021 11:28:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=k9Qd4yJ3RzasIBuoZ2JJuX5i5AMvFucRBTK7oGC2c6Y=; b=TJMC0tEfjfKThziVIxS0WfbogN
	hFOy9BgT0pYCeO7//IUmk7x7xxEgdNeZBUwWxlWzqvuAEWK5hJMFUdRPpAD2Zwyb5Gh2PgEgDZ7RT
	lKn1qBFyIDMnkFypzFhMlOCjeIf5EJb9glaJDNcaZMxeWCvbuHP8LjLu1nHUdvSkjU08=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166073-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166073: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
X-Osstest-Versions-That:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Nov 2021 11:28:31 +0000

flight 166073 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166073/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166069
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166069
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166069
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166069
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166069
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166069
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166069
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166069
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166069
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166069
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166069
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166069
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b
baseline version:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b

Last test of basis   166073  2021-11-07 01:55:30 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Nov 07 14:01:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 14:01:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222812.385193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjijM-0002vq-3X; Sun, 07 Nov 2021 14:01:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222812.385193; Sun, 07 Nov 2021 14:01:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjijM-0002vj-0U; Sun, 07 Nov 2021 14:01:08 +0000
Received: by outflank-mailman (input) for mailman id 222812;
 Sun, 07 Nov 2021 14:01:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjijK-0002vZ-JR; Sun, 07 Nov 2021 14:01:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjijK-0005G4-9F; Sun, 07 Nov 2021 14:01:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjijJ-0003LG-UC; Sun, 07 Nov 2021 14:01:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjijJ-0003CA-Ti; Sun, 07 Nov 2021 14:01:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=h5g/Bf+7oDTdgNghKTPvQxUzaMTDuar7j39E+Y/LCjg=; b=fjFw3Ts0dIWkmo0fShr3X3JDEK
	L+3B93WIFiXgiR35LiMJrq+qDIh265X5xLE7wABZ3wgraIQpdMZOpZQHTBBA7E/M3D7K1sZoDXhDu
	k2xfQtLILwLsOSNbqAkXXrv1wCmTwg6hBsMSxr+fTtxdK7OTnQT9kn3C/ElKEv834050=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166076-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166076: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=3bc6f46d305ed82f7314ffc4c2a66847b831a6bd
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Nov 2021 14:01:05 +0000

flight 166076 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166076/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              3bc6f46d305ed82f7314ffc4c2a66847b831a6bd
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  485 days
Failing since        151818  2020-07-11 04:18:52 Z  484 days  470 attempts
Testing same since   166067  2021-11-06 04:20:10 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 82561 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 16:53:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 16:53:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222827.385207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjlPp-0001ff-JP; Sun, 07 Nov 2021 16:53:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222827.385207; Sun, 07 Nov 2021 16:53:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjlPp-0001fY-GD; Sun, 07 Nov 2021 16:53:09 +0000
Received: by outflank-mailman (input) for mailman id 222827;
 Sun, 07 Nov 2021 16:53:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=peUb=P2=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjlPn-0001fS-Mb
 for xen-devel@lists.xenproject.org; Sun, 07 Nov 2021 16:53:07 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2c1d748b-3feb-11ec-a9d2-d9f7a1cc8784;
 Sun, 07 Nov 2021 17:53:06 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id bi35so30724675lfb.9
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 08:53:03 -0800 (PST)
Received: from [192.168.2.145] (79-139-182-132.dynamic.spd-mgts.ru.
 [79.139.182.132])
 by smtp.googlemail.com with ESMTPSA id c3sm860233lfb.122.2021.11.07.08.53.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Nov 2021 08:53:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c1d748b-3feb-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=FuxjUSeidJvAMVHKU9E/d55P+zyTiwTeSCeqf/uVMDo=;
        b=Lwzfxq5uEYmwUHQaauy1zdfEe4xJydQ9b9Od8uYrwBczi5NJMIekKLJg7wlYTXl+4h
         aBwFrnzPjUuQZKv1Ia+S222jU8dJElyFhzTX7Y6Z3zgW5uo6fxyJ6Ub7QZuJOpIcD/5G
         Z5zvDqw9CupdRxfoeBn7XfS8iSTjIzecdpz5R8YfLYHN44fPq2Sj3DZqQfYaE9SGw4KM
         9QVgWsVoZpReO+np7PVvhGoeoi2Muq2En7xd12JC02FvD5KUvlS8dKa1pfLtqGdyB8C3
         Q31AQZyOLu3Y3rBXma7EsV9dMapOWW+H7dfnyyasqa2gU34jVZGgiKgGYKDrTdyFanCB
         8Grw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=FuxjUSeidJvAMVHKU9E/d55P+zyTiwTeSCeqf/uVMDo=;
        b=SLwDr5wpW2pKQ9kx/lm5riompaXHxmaeA2vLjTopSnpltK4yQCIBdDz+BRIjmrSqsc
         2ziL5T7JFOx4K2iYhkDZC1lm5R/FL2soUYEQadLKqVsZLKMOSoT/mgEVyL7fxFxOksSr
         4DRVKgbZ09sge/Kb7qUBWQnhcvqMFNEBVEnwMoGOqrF9kYCpnJxjacN0hqj+qhEANI7q
         a3iIMa5MzsTrgGNI83SC5ujAzJXJ/DF+R6LJgP6gjISZDNjAnAEo81PO0iOjTe94S2Yx
         DwMJrSGDP6Rxc2m2rCO0fU7YQK9qjTyfkQ+rvGUYEgunaCfITMx1RRDuf0lL1OQVKqOT
         YnTg==
X-Gm-Message-State: AOAM531x42WVD5/GkULjInY5vTQwln3Hctr9eRPPV94QLtvSzt0hNU+7
	GVqNKxEs9VJTlvUCG+AcE3E=
X-Google-Smtp-Source: ABdhPJyYdIEr6ONtuDBexIQwg75AwiW2LoF8DEUBqYkEbum61pW0vPuGJTsEH8z54RKtLjaAI2MWow==
X-Received: by 2002:a05:6512:1082:: with SMTP id j2mr64106958lfg.568.1636303982698;
        Sun, 07 Nov 2021 08:53:02 -0800 (PST)
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
To: =?UTF-8?Q?Jonathan_Neusch=c3=a4fer?= <j.neuschaefer@gmx.net>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Lee Jones <lee.jones@linaro.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Mark Brown <broonie@kernel.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Russell King <linux@armlinux.org.uk>,
 Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 Guo Ren <guoren@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>,
 Greg Ungerer <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
 Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Len Brown <lenb@kernel.org>, Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Linus Walleij <linus.walleij@linaro.org>, Chen-Yu Tsai <wens@csie.org>,
 Tony Lindgren <tony@atomide.com>, Liam Girdwood <lgirdwood@gmail.com>,
 Philipp Zabel <p.zabel@pengutronix.de>, Vladimir Zapolskiy <vz@mleia.com>,
 Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>,
 Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>,
 Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>,
 Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
 linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
 linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
 openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
 linux-pm@vger.kernel.org
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com> <YYbqlmOM95q7Hbjo@latitude>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
Date: Sun, 7 Nov 2021 19:53:00 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YYbqlmOM95q7Hbjo@latitude>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

06.11.2021 23:54, Jonathan Neuschäfer пишет:
> Hi,
> 
> On Thu, Oct 28, 2021 at 12:16:57AM +0300, Dmitry Osipenko wrote:
>> Use devm_register_power_handler() that replaces global pm_power_off
>> variable and allows to register multiple power-off handlers. It also
>> provides restart-handler support, i.e. all in one API.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
> 
> When I boot with (most of) this patchset applied, I get the warning at
> kernel/reboot.c:187:
> 
> 	/*
> 	 * Handler must have unique priority. Otherwise call order is
> 	 * determined by registration order, which is unreliable.
> 	 */
> 	WARN_ON(!atomic_notifier_has_unique_priority(&restart_handler_list, nb));
> 
> As the NTXEC driver doesn't specify a priority, I think this is an issue
> to be fixed elsewhere.
> 
> Other than that, it works and looks good, as far as I can tell.
> 
> 
> For this patch:
> 
> Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
> Tested-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>

Thank you. You have conflicting restart handlers, apparently NTXEC
driver should have higher priority than the watchdog driver. It should
be a common problem for the watchdog drivers, I will lower watchdog's
default priority to fix it.


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 17:08:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 17:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222834.385217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjleZ-0003D5-Rt; Sun, 07 Nov 2021 17:08:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222834.385217; Sun, 07 Nov 2021 17:08:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjleZ-0003Cy-Ou; Sun, 07 Nov 2021 17:08:23 +0000
Received: by outflank-mailman (input) for mailman id 222834;
 Sun, 07 Nov 2021 17:08:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=WXOO=P2=gmail.com=groeck7@srs-se1.protection.inumbo.net>)
 id 1mjleY-0003Cs-BZ
 for xen-devel@lists.xenproject.org; Sun, 07 Nov 2021 17:08:22 +0000
Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com
 [2607:f8b0:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e4b61b3-3fed-11ec-a9d2-d9f7a1cc8784;
 Sun, 07 Nov 2021 18:08:20 +0100 (CET)
Received: by mail-oi1-x22a.google.com with SMTP id u2so23850756oiu.12
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 09:08:20 -0800 (PST)
Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c])
 by smtp.gmail.com with ESMTPSA id
 i18sm3076850oik.6.2021.11.07.09.08.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Nov 2021 09:08:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 4e4b61b3-3fed-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=sender:subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=tdjg7OFm02RxoZkWdNYUJLWTVIAPxTK8o9TtiXrumos=;
        b=TxOMGGlgYCG6dkxhcHrWleMH5bQzzwXZ9FgwNICO938yYvOADrHCJxaIH+GmktBmdj
         VF/g/5abCbj1SCo77l//+Q8ZaEKZ59DzYbLYNazQAh1d/LI9QSnOgttApF1NrD9BSZdp
         gXEIPq4X5WBftSdrWeIB1XoHAUTyRVaiGJM3hjDVKwLTIaIl/5BV9x60u06nn/MoayP2
         XKdxX9rsONJssDlEkPGWyc5+2eLAU/A93X+4aNShdnC/nVsO9kvbYnMJEh3NiFo/gq2s
         n/ryBqjSn/iug4O0nxdm910/aVIInOrXjz5uU8hb+PebuTd+WVfeeVeSdkkUcfpq82Ph
         3xyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:sender:subject:to:cc:references:from:message-id
         :date:user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=tdjg7OFm02RxoZkWdNYUJLWTVIAPxTK8o9TtiXrumos=;
        b=loeUjSdhahkA2Oav57QEVZ2vvARIcce/npACZWEndFPu8nYExAZqFtrGnLkbiazxSy
         Xj2+JY4vqMY3BCl3Wjds0s9GX/mxjfWqaR3RAQFfpDBk8d7N5dYJFKXmqmJEkqqNFmJS
         yFe3BM00q2bnJu4LXn682sfWjEYoX5nVBOrI94bzHp9+RFTaity8nDsCttEHKWIF4egh
         DVOQfy6ic2E835xI/hvhIQplmU5aJ8rNrtNfNKusUCloBobbhQKZWSdb/KUl0HDU+REF
         GAaWTOCGmoHqIePTMX0XgWWOpgLJjcoEpxGfq4p2hDdxJx+gKhsqVUV3NCNt/UAfRAal
         FOeA==
X-Gm-Message-State: AOAM531atwfa3O+oiXyziOuAp+/v7XGNGx8JUA5phDZsAFCZH0nZGHkG
	BFAV1p4VHxMYimXqNN0SSy0=
X-Google-Smtp-Source: ABdhPJwtuSZgtmAkEs0Dks9+MnuUhljSkzaFgRaxP+iMBCUUKLEs54Fh1SgZ30w0yfdl8sLFhcnMyg==
X-Received: by 2002:a05:6808:158a:: with SMTP id t10mr3003509oiw.24.1636304899015;
        Sun, 07 Nov 2021 09:08:19 -0800 (PST)
Sender: Guenter Roeck <groeck7@gmail.com>
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
To: Dmitry Osipenko <digetx@gmail.com>,
 =?UTF-8?Q?Jonathan_Neusch=c3=a4fer?= <j.neuschaefer@gmx.net>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Lee Jones <lee.jones@linaro.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Mark Brown <broonie@kernel.org>,
 Andrew Morton <akpm@linux-foundation.org>,
 Russell King <linux@armlinux.org.uk>,
 Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 Guo Ren <guoren@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>,
 Greg Ungerer <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
 Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Len Brown <lenb@kernel.org>, Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Linus Walleij <linus.walleij@linaro.org>, Chen-Yu Tsai <wens@csie.org>,
 Tony Lindgren <tony@atomide.com>, Liam Girdwood <lgirdwood@gmail.com>,
 Philipp Zabel <p.zabel@pengutronix.de>, Vladimir Zapolskiy <vz@mleia.com>,
 Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>,
 Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>,
 Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>,
 Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
 linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
 linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
 openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
 linux-pm@vger.kernel.org
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com> <YYbqlmOM95q7Hbjo@latitude>
 <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
From: Guenter Roeck <linux@roeck-us.net>
Message-ID: <9a22c22d-94b1-f519-27a2-ae0b8bbf6e99@roeck-us.net>
Date: Sun, 7 Nov 2021 09:08:11 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit

On 11/7/21 8:53 AM, Dmitry Osipenko wrote:
> 06.11.2021 23:54, Jonathan Neuschäfer пишет:
>> Hi,
>>
>> On Thu, Oct 28, 2021 at 12:16:57AM +0300, Dmitry Osipenko wrote:
>>> Use devm_register_power_handler() that replaces global pm_power_off
>>> variable and allows to register multiple power-off handlers. It also
>>> provides restart-handler support, i.e. all in one API.
>>>
>>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>>> ---
>>
>> When I boot with (most of) this patchset applied, I get the warning at
>> kernel/reboot.c:187:
>>
>> 	/*
>> 	 * Handler must have unique priority. Otherwise call order is
>> 	 * determined by registration order, which is unreliable.
>> 	 */
>> 	WARN_ON(!atomic_notifier_has_unique_priority(&restart_handler_list, nb));
>>
>> As the NTXEC driver doesn't specify a priority, I think this is an issue
>> to be fixed elsewhere.
>>
>> Other than that, it works and looks good, as far as I can tell.
>>
>>
>> For this patch:
>>
>> Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
>> Tested-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
> 
> Thank you. You have conflicting restart handlers, apparently NTXEC
> driver should have higher priority than the watchdog driver. It should
> be a common problem for the watchdog drivers, I will lower watchdog's
> default priority to fix it.
> 

The watchdog subsystem already uses "0" as default priority, which was
intended as priority of last resort for restart handlers. I do not see
a reason to change that.

Guenter


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 17:16:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 17:16:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222842.385229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjlmi-0004hC-Si; Sun, 07 Nov 2021 17:16:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222842.385229; Sun, 07 Nov 2021 17:16:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjlmi-0004h5-PC; Sun, 07 Nov 2021 17:16:48 +0000
Received: by outflank-mailman (input) for mailman id 222842;
 Sun, 07 Nov 2021 17:16:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=peUb=P2=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjlmi-0004gz-14
 for xen-devel@lists.xenproject.org; Sun, 07 Nov 2021 17:16:48 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7cbb4fc6-3fee-11ec-a9d2-d9f7a1cc8784;
 Sun, 07 Nov 2021 18:16:47 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id z8so2039274ljz.9
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 09:16:47 -0800 (PST)
Received: from [192.168.2.145] (79-139-182-132.dynamic.spd-mgts.ru.
 [79.139.182.132])
 by smtp.googlemail.com with ESMTPSA id h14sm1531135lfv.83.2021.11.07.09.16.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Nov 2021 09:16:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7cbb4fc6-3fee-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=jV9RGgGqsoNpHnAdElYoxsETzdtFTgnoU+evNHPJvgw=;
        b=XcS1vFi7jvcKKMU+Vh16iv2r+zEgY2qHFwfEvUkTbUqhYfGd/aHwUSSPvlkmYZnUDY
         yKyQ/S1MODqE5UdkEERTRM+mtxI1gBtYC+YHMFR0Q7VUSP941Fv1rRNweTBgkgPsVjOi
         /VhimMLC6erylFfqa93dW9OuY6rPJeGZgNEfAStOSIcxbKlGE8kYSWtur2agIS+KxZBT
         uxw/ElMwoYX/SIJQ69spejui0ImHzrQg/eO3RQFc7ylvx2K4v5e4KD8cBjKF0cCi6jz/
         kU0RJ2R+nsOSEtcz9pzFEbzI1pboWLlqc1bt4/UyILzUL1onLEjZ1y8wuTJEXkf/BE4p
         Mk4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=jV9RGgGqsoNpHnAdElYoxsETzdtFTgnoU+evNHPJvgw=;
        b=gCSwNMBp/aOGAsbw8UAzSb5pDzR9y4KP1C/nS1QVM9cPd09tmu9OqKHcXUYR5lR1Ci
         z/1oZ8+lZYaT7dI4/P2l7rU1ah49IeJ/x2fdiKhf/lkTGE2ADo96ouS0eOjka33EfFgm
         Om0HqVd5TJNz+1FQWkMRbOskPWKpZFFy7x6sImNNCkY8IExFK7eqw3qxTHEjpSphd7N8
         LxZPtgPDz8STIDdkuCkjqNFiDxlqguJnwGVA+WYJsjyuvqw7+J+x/xqM6+DU1gdpMNc+
         8rEudI/8TfJyBJyhkuhFvMj9+KHO/pEivWwRlSxZqd+jY3rkbDOOSItbN1HLqYM3VDKX
         QxOg==
X-Gm-Message-State: AOAM533Vfh/pPvVe+o9Jk5cGELeIgJcSy1rH/ITcCqZosmkS9H5IJiDq
	gcvZQKcDVxm7b84GvUUQm1Q=
X-Google-Smtp-Source: ABdhPJxvgxAU8oisB10upx88enZ2ZbX58EuDflf4IdQYDWaIcA3t9DPLAVkvy85p5EpHAL+e+Eae8Q==
X-Received: by 2002:a2e:92c4:: with SMTP id k4mr61687714ljh.271.1636305406651;
        Sun, 07 Nov 2021 09:16:46 -0800 (PST)
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
To: Guenter Roeck <linux@roeck-us.net>,
 =?UTF-8?Q?Jonathan_Neusch=c3=a4fer?= <j.neuschaefer@gmx.net>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Lee Jones <lee.jones@linaro.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Mark Brown <broonie@kernel.org>,
 Andrew Morton <akpm@linux-foundation.org>,
 Russell King <linux@armlinux.org.uk>,
 Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 Guo Ren <guoren@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>,
 Greg Ungerer <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
 Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Len Brown <lenb@kernel.org>, Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Linus Walleij <linus.walleij@linaro.org>, Chen-Yu Tsai <wens@csie.org>,
 Tony Lindgren <tony@atomide.com>, Liam Girdwood <lgirdwood@gmail.com>,
 Philipp Zabel <p.zabel@pengutronix.de>, Vladimir Zapolskiy <vz@mleia.com>,
 Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>,
 Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>,
 Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>,
 Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
 linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
 linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
 openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
 linux-pm@vger.kernel.org
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com> <YYbqlmOM95q7Hbjo@latitude>
 <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
 <9a22c22d-94b1-f519-27a2-ae0b8bbf6e99@roeck-us.net>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <658cf796-e3b1-f816-1e15-9e9e08b8ade0@gmail.com>
Date: Sun, 7 Nov 2021 20:16:44 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <9a22c22d-94b1-f519-27a2-ae0b8bbf6e99@roeck-us.net>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

07.11.2021 20:08, Guenter Roeck пишет:
> On 11/7/21 8:53 AM, Dmitry Osipenko wrote:
>> 06.11.2021 23:54, Jonathan Neuschäfer пишет:
>>> Hi,
>>>
>>> On Thu, Oct 28, 2021 at 12:16:57AM +0300, Dmitry Osipenko wrote:
>>>> Use devm_register_power_handler() that replaces global pm_power_off
>>>> variable and allows to register multiple power-off handlers. It also
>>>> provides restart-handler support, i.e. all in one API.
>>>>
>>>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>>>> ---
>>>
>>> When I boot with (most of) this patchset applied, I get the warning at
>>> kernel/reboot.c:187:
>>>
>>>     /*
>>>      * Handler must have unique priority. Otherwise call order is
>>>      * determined by registration order, which is unreliable.
>>>      */
>>>     WARN_ON(!atomic_notifier_has_unique_priority(&restart_handler_list,
>>> nb));
>>>
>>> As the NTXEC driver doesn't specify a priority, I think this is an issue
>>> to be fixed elsewhere.
>>>
>>> Other than that, it works and looks good, as far as I can tell.
>>>
>>>
>>> For this patch:
>>>
>>> Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
>>> Tested-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
>>
>> Thank you. You have conflicting restart handlers, apparently NTXEC
>> driver should have higher priority than the watchdog driver. It should
>> be a common problem for the watchdog drivers, I will lower watchdog's
>> default priority to fix it.
>>
> 
> The watchdog subsystem already uses "0" as default priority, which was
> intended as priority of last resort for restart handlers. I do not see
> a reason to change that.

Right, I meant that watchdog drivers which use restart handler set the
level to the default 128 [1]. Although, maybe it's a problem only for
i.MX drivers in practice, I'll take a closer look at the other drivers.

[1]
https://elixir.bootlin.com/linux/latest/source/drivers/watchdog/imx2_wdt.c#L318


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 17:17:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 17:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222846.385239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjlnN-0005Eq-4z; Sun, 07 Nov 2021 17:17:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222846.385239; Sun, 07 Nov 2021 17:17:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjlnN-0005Ej-1z; Sun, 07 Nov 2021 17:17:29 +0000
Received: by outflank-mailman (input) for mailman id 222846;
 Sun, 07 Nov 2021 17:17:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjlnM-0005EV-2E; Sun, 07 Nov 2021 17:17:28 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjlnL-0000VR-RU; Sun, 07 Nov 2021 17:17:27 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjlnL-0007xY-FV; Sun, 07 Nov 2021 17:17:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjlnL-0006XF-Ey; Sun, 07 Nov 2021 17:17:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=cXSpoINdZsvKrwSqj74FKoNcXeCUnyJUiB3ihOKDoxM=; b=eX9k0hrwA0P27oPNbtdV3cPquS
	CnC7yx7S9yNv5LEKWyHX6pY/ykMsWErnV1fDg3MVUGsQIiGTI/e3P1C4h4MLE62++y0YCB6tM6mFn
	IHricZgjSoBHpmvUZOrHnVjGsoUnDRTEaC/cd43xQT8CRdCRIUx6T+hsdW5RwZEdIvjQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166075-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166075: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=63ed851de474b1e2458cb9b4ba6e02a88f72c25c
X-Osstest-Versions-That:
    qemuu=c39deb218178d1fb814dd2138ceff4b541a03d85
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Nov 2021 17:17:27 +0000

flight 166075 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166075/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166065
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166065
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166065
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166065
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166065
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166065
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166065
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166065
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                63ed851de474b1e2458cb9b4ba6e02a88f72c25c
baseline version:
 qemuu                c39deb218178d1fb814dd2138ceff4b541a03d85

Last test of basis   166065  2021-11-05 23:06:59 Z    1 days
Testing same since   166075  2021-11-07 03:41:37 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
  Juan Quintela <quintela@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   c39deb2181..63ed851de4  63ed851de474b1e2458cb9b4ba6e02a88f72c25c -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 17:33:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 17:33:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222857.385254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjm2W-0007aj-GN; Sun, 07 Nov 2021 17:33:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222857.385254; Sun, 07 Nov 2021 17:33:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjm2W-0007ac-DS; Sun, 07 Nov 2021 17:33:08 +0000
Received: by outflank-mailman (input) for mailman id 222857;
 Sun, 07 Nov 2021 17:33:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=WXOO=P2=gmail.com=groeck7@srs-se1.protection.inumbo.net>)
 id 1mjm2V-0007aW-2U
 for xen-devel@lists.xenproject.org; Sun, 07 Nov 2021 17:33:07 +0000
Received: from mail-oi1-x230.google.com (mail-oi1-x230.google.com
 [2607:f8b0:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c32ab10d-3ff0-11ec-9787-a32c541c8605;
 Sun, 07 Nov 2021 18:33:05 +0100 (CET)
Received: by mail-oi1-x230.google.com with SMTP id bk14so1028934oib.7
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 09:33:04 -0800 (PST)
Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c])
 by smtp.gmail.com with ESMTPSA id
 c18sm4840649otr.32.2021.11.07.09.32.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Nov 2021 09:33:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: c32ab10d-3ff0-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=sender:to:cc:references:from:subject:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=tMVMvSELY54S0UdLfdOcY9hXGDCgRpBmnCTKjFa8UlE=;
        b=QIfw+m72ItgaApqkAoLUYKEHkpy+eMpUCLymo2SVE2e06bxlhsvsGBIpx80FAFL6zX
         lQmhx5vWsnqdO5AzfRwzYmC9JyeI+x703tpvfwQKurLg2VtZOzsNtJVqgO0A8u3N2B9I
         BYJElUmFFKGlmNuNH1pVTHbG46IPWj2FGkpJks4IWHqhA3hkwgU7q4GC5oDjmilXskFD
         oTKdooszpWu854bZrRMH7UW0QrvSFFnK9cGOfGPg2b3g5hqd+nvAec6GccpfULS1MyoN
         kwidN5WRwT1FH2PsDPsfoM+Wt2eEwiLbpjLKm84c+sezJpyJvFv7kmoqDjei75CdMOoF
         bVbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:sender:to:cc:references:from:subject:message-id
         :date:user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=tMVMvSELY54S0UdLfdOcY9hXGDCgRpBmnCTKjFa8UlE=;
        b=76p0t7He7dT9JLX3C9xs+YdA9Lo6Z7zmxZ6AR0GhxaT+SuoJXfVtz5a5ZJwRIcxNcC
         LkYsuabNZ3jQd1YchAfdD484MGiomR12l6c9RQ40Uqm4/8/Q2LVE8DnDZFQfiW4DKN4B
         fG/rIUen9XOwyVmF6zDnUzCRUbhCGszI1JwywLeDjZhlAAcaZmdar3xOCvH6jKC2QWsO
         CvUuZU6G60stjg3XRdnE7VIW7gYidMQt4fl9v/4Z5lXCwyNYJ6JQf716LfB1+pjo8Xcg
         a2n2vtPuByS8UPTot8eH4rqbzda08vVCLFBwEtT7XYET4KVY1h7Nmffqvg38l1Xbdq1B
         bk7A==
X-Gm-Message-State: AOAM5310RNJC3o8Dti527E9mmhmifftNs7+HeBxawBC48bYaCm8MVIqv
	FLbBehAoH4aIbY9OHjOTgWI=
X-Google-Smtp-Source: ABdhPJygB0wkAZr+IyDwhIXD/1Ky9Z1d16PhZAI/x4npp+2qcv9Jc+QXaxpUDgRoNUJ2QI01eNmjeA==
X-Received: by 2002:aca:650d:: with SMTP id m13mr16262607oim.42.1636306383620;
        Sun, 07 Nov 2021 09:33:03 -0800 (PST)
Sender: Guenter Roeck <groeck7@gmail.com>
To: Dmitry Osipenko <digetx@gmail.com>,
 =?UTF-8?Q?Jonathan_Neusch=c3=a4fer?= <j.neuschaefer@gmx.net>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Lee Jones <lee.jones@linaro.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Mark Brown <broonie@kernel.org>,
 Andrew Morton <akpm@linux-foundation.org>,
 Russell King <linux@armlinux.org.uk>,
 Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 Guo Ren <guoren@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>,
 Greg Ungerer <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
 Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Len Brown <lenb@kernel.org>, Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Linus Walleij <linus.walleij@linaro.org>, Chen-Yu Tsai <wens@csie.org>,
 Tony Lindgren <tony@atomide.com>, Liam Girdwood <lgirdwood@gmail.com>,
 Philipp Zabel <p.zabel@pengutronix.de>, Vladimir Zapolskiy <vz@mleia.com>,
 Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>,
 Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>,
 Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>,
 Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
 linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
 linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
 openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
 linux-pm@vger.kernel.org
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com> <YYbqlmOM95q7Hbjo@latitude>
 <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
 <9a22c22d-94b1-f519-27a2-ae0b8bbf6e99@roeck-us.net>
 <658cf796-e3b1-f816-1e15-9e9e08b8ade0@gmail.com>
From: Guenter Roeck <linux@roeck-us.net>
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
Message-ID: <5a17fee3-4214-c2b9-abc1-ab9d6071591b@roeck-us.net>
Date: Sun, 7 Nov 2021 09:32:56 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <658cf796-e3b1-f816-1e15-9e9e08b8ade0@gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit

On 11/7/21 9:16 AM, Dmitry Osipenko wrote:
> 07.11.2021 20:08, Guenter Roeck пишет:
>> On 11/7/21 8:53 AM, Dmitry Osipenko wrote:
>>> 06.11.2021 23:54, Jonathan Neuschäfer пишет:
>>>> Hi,
>>>>
>>>> On Thu, Oct 28, 2021 at 12:16:57AM +0300, Dmitry Osipenko wrote:
>>>>> Use devm_register_power_handler() that replaces global pm_power_off
>>>>> variable and allows to register multiple power-off handlers. It also
>>>>> provides restart-handler support, i.e. all in one API.
>>>>>
>>>>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>>>>> ---
>>>>
>>>> When I boot with (most of) this patchset applied, I get the warning at
>>>> kernel/reboot.c:187:
>>>>
>>>>      /*
>>>>       * Handler must have unique priority. Otherwise call order is
>>>>       * determined by registration order, which is unreliable.
>>>>       */
>>>>      WARN_ON(!atomic_notifier_has_unique_priority(&restart_handler_list,
>>>> nb));
>>>>
>>>> As the NTXEC driver doesn't specify a priority, I think this is an issue
>>>> to be fixed elsewhere.
>>>>
>>>> Other than that, it works and looks good, as far as I can tell.
>>>>
>>>>
>>>> For this patch:
>>>>
>>>> Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
>>>> Tested-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
>>>
>>> Thank you. You have conflicting restart handlers, apparently NTXEC
>>> driver should have higher priority than the watchdog driver. It should
>>> be a common problem for the watchdog drivers, I will lower watchdog's
>>> default priority to fix it.
>>>
>>
>> The watchdog subsystem already uses "0" as default priority, which was
>> intended as priority of last resort for restart handlers. I do not see
>> a reason to change that.
> 
> Right, I meant that watchdog drivers which use restart handler set the
> level to the default 128 [1]. Although, maybe it's a problem only for
> i.MX drivers in practice, I'll take a closer look at the other drivers.
> 

They don't have to do that. The default is priority 0. It is the decision
of the driver author to set the watchdog's restart priority. So it is wrong
to claim that this would be "a common problem for the watchdog drivers",
because it isn't. Presumably there was a reason for the driver author
to select the default priority of 128. If there is a platform which has
a better means to restart the system, it should select a priority of
129 or higher instead of affecting _all_ platforms using the imx watchdog
to reset the system.

Sure, you can negotiate that with the driver author, but the default should
really be to change the priority for less affected platforms.

Guenter


From xen-devel-bounces@lists.xenproject.org Sun Nov 07 17:42:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Nov 2021 17:42:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222866.385265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjmBj-0000fZ-Jx; Sun, 07 Nov 2021 17:42:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222866.385265; Sun, 07 Nov 2021 17:42:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjmBj-0000fS-Gm; Sun, 07 Nov 2021 17:42:39 +0000
Received: by outflank-mailman (input) for mailman id 222866;
 Sun, 07 Nov 2021 17:42:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=peUb=P2=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjmBi-0000fM-11
 for xen-devel@lists.xenproject.org; Sun, 07 Nov 2021 17:42:38 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18707458-3ff2-11ec-9787-a32c541c8605;
 Sun, 07 Nov 2021 18:42:36 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id bu18so31110845lfb.0
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 09:42:36 -0800 (PST)
Received: from [192.168.2.145] (79-139-182-132.dynamic.spd-mgts.ru.
 [79.139.182.132])
 by smtp.googlemail.com with ESMTPSA id o1sm1351686ljg.130.2021.11.07.09.42.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Nov 2021 09:42:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18707458-3ff2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=yp6jZ6b/7UxZJRYtTwXk1ZheTwTRVWw2YizZoWEGBFY=;
        b=Kz4LsYWHF1VLAkkHNhWuY0M4e42sK4F6sbepl/m1LlUZc7d3ve0+PCaFGV/EW5J0Qp
         q3gOw3u9HDrcvbcy0ihsCdfp4jZucUbKQSHRkLa1MP7e5ywuxBNTRkBRVQjdXS9WYB4a
         75JZ2tni2XNEB9cE2UtRo1WCAu8alZQtGLiKAGmbi/fYYSN/XzQ2AMB855RVvlrPgYwR
         rhnxfzYw0xMwDEQtzpN4vSGSTSGsur7/4vd8RZnKhOdoVQg9OK2TefhJzCLnTq9oEqOU
         +An3rMVrqt5asX/Z17ZvVIT93/IFfnrUb7jTwuCOBo+NhYvWwEU+N1HBtnKoiVp4DFnC
         c3Yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=yp6jZ6b/7UxZJRYtTwXk1ZheTwTRVWw2YizZoWEGBFY=;
        b=VxS/eESiWVeFK+AYKtCQVY5Fs4Ai+NQYYfl0GFEft+7X5c8zHYkdPTbfA5UtydQ1lA
         aUxB+/oNE+FAfvodhF01bQjLpyEKjGCXbZiBm/R9ralpWAupe+f9nleCm0rF6eW7xaB5
         KIGJFEMR7HGYL4xG43i6gjuQYqfaYTb7wWFcxuk+MWdA7q1U3J+udojkOyplE4tUwCem
         u85VWa6kmdH0rctTlspo++vjWBD+CqVPqpsr5NbXt33cy+K6+DQ2X8Pcu2c2vedTdAtH
         6OJNBheQxO3VzHX3Pyowbkrif6PNtPMN1tYeagz7HHebfDLHf+on9WfTFQlPIv+an7bL
         6lAw==
X-Gm-Message-State: AOAM532kUNrzXvBkAACzgDE6Xsb2be3MKpZ8T4hd1C5Xa1tQ7nY7kTQ6
	yTr4E4cww1vqDgB8RojVvtU=
X-Google-Smtp-Source: ABdhPJxbnSyAP7uVMoABCneWUE/0znULgGMoNtn8dVGgMW1HOHcNNIL0n14F/iW1e4ue0spHO1DEGA==
X-Received: by 2002:ac2:4c55:: with SMTP id o21mr18358331lfk.527.1636306956359;
        Sun, 07 Nov 2021 09:42:36 -0800 (PST)
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
To: Guenter Roeck <linux@roeck-us.net>,
 =?UTF-8?Q?Jonathan_Neusch=c3=a4fer?= <j.neuschaefer@gmx.net>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Lee Jones <lee.jones@linaro.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Mark Brown <broonie@kernel.org>,
 Andrew Morton <akpm@linux-foundation.org>,
 Russell King <linux@armlinux.org.uk>,
 Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 Guo Ren <guoren@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>,
 Greg Ungerer <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
 Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Len Brown <lenb@kernel.org>, Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Linus Walleij <linus.walleij@linaro.org>, Chen-Yu Tsai <wens@csie.org>,
 Tony Lindgren <tony@atomide.com>, Liam Girdwood <lgirdwood@gmail.com>,
 Philipp Zabel <p.zabel@pengutronix.de>, Vladimir Zapolskiy <vz@mleia.com>,
 Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>,
 Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>,
 Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>,
 Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
 linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
 linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
 openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
 linux-pm@vger.kernel.org
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com> <YYbqlmOM95q7Hbjo@latitude>
 <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
 <9a22c22d-94b1-f519-27a2-ae0b8bbf6e99@roeck-us.net>
 <658cf796-e3b1-f816-1e15-9e9e08b8ade0@gmail.com>
 <5a17fee3-4214-c2b9-abc1-ab9d6071591b@roeck-us.net>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <c0b52994-51f5-806b-b07e-3e70d8217ffc@gmail.com>
Date: Sun, 7 Nov 2021 20:42:33 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <5a17fee3-4214-c2b9-abc1-ab9d6071591b@roeck-us.net>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

07.11.2021 20:32, Guenter Roeck пишет:
> On 11/7/21 9:16 AM, Dmitry Osipenko wrote:
>> 07.11.2021 20:08, Guenter Roeck пишет:
>>> On 11/7/21 8:53 AM, Dmitry Osipenko wrote:
>>>> 06.11.2021 23:54, Jonathan Neuschäfer пишет:
>>>>> Hi,
>>>>>
>>>>> On Thu, Oct 28, 2021 at 12:16:57AM +0300, Dmitry Osipenko wrote:
>>>>>> Use devm_register_power_handler() that replaces global pm_power_off
>>>>>> variable and allows to register multiple power-off handlers. It also
>>>>>> provides restart-handler support, i.e. all in one API.
>>>>>>
>>>>>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>>>>>> ---
>>>>>
>>>>> When I boot with (most of) this patchset applied, I get the warning at
>>>>> kernel/reboot.c:187:
>>>>>
>>>>>      /*
>>>>>       * Handler must have unique priority. Otherwise call order is
>>>>>       * determined by registration order, which is unreliable.
>>>>>       */
>>>>>      WARN_ON(!atomic_notifier_has_unique_priority(&restart_handler_list,
>>>>>
>>>>> nb));
>>>>>
>>>>> As the NTXEC driver doesn't specify a priority, I think this is an
>>>>> issue
>>>>> to be fixed elsewhere.
>>>>>
>>>>> Other than that, it works and looks good, as far as I can tell.
>>>>>
>>>>>
>>>>> For this patch:
>>>>>
>>>>> Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
>>>>> Tested-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
>>>>
>>>> Thank you. You have conflicting restart handlers, apparently NTXEC
>>>> driver should have higher priority than the watchdog driver. It should
>>>> be a common problem for the watchdog drivers, I will lower watchdog's
>>>> default priority to fix it.
>>>>
>>>
>>> The watchdog subsystem already uses "0" as default priority, which was
>>> intended as priority of last resort for restart handlers. I do not see
>>> a reason to change that.
>>
>> Right, I meant that watchdog drivers which use restart handler set the
>> level to the default 128 [1]. Although, maybe it's a problem only for
>> i.MX drivers in practice, I'll take a closer look at the other drivers.
>>
> 
> They don't have to do that. The default is priority 0. It is the decision
> of the driver author to set the watchdog's restart priority. So it is wrong
> to claim that this would be "a common problem for the watchdog drivers",
> because it isn't. Presumably there was a reason for the driver author
> to select the default priority of 128. If there is a platform which has
> a better means to restart the system, it should select a priority of
> 129 or higher instead of affecting _all_ platforms using the imx watchdog
> to reset the system.
> 
> Sure, you can negotiate that with the driver author, but the default should
> really be to change the priority for less affected platforms.

Yes, looks like there is no common problem for watchdog drivers.
Initially I was recalling that watchdog core uses 128 by default and
typed the message without verifying it. I see now that it's incorrect,
my bad.

EC drivers tend to use higher priority in general. Jonathan, could you
please confirm that NTXEC driver is a more preferable restart method
than the watchdog?


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222875.385282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspF-0004Qo-Ok; Mon, 08 Nov 2021 00:47:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222875.385282; Mon, 08 Nov 2021 00:47:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspF-0004Ps-J7; Mon, 08 Nov 2021 00:47:53 +0000
Received: by outflank-mailman (input) for mailman id 222875;
 Mon, 08 Nov 2021 00:47:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspE-0004MH-0l
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:47:52 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f26e6ce-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:47:49 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id f3so32388711lfu.12
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:47:49 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.47.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:47:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f26e6ce-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=wTvK5kO0FUcGnxCyVmK+GKrZNfPhZFNt57h0QWat/qo=;
        b=aCN9ngxNlSuTINh4RCPQ4NiaJQfaWgqOf+aRAmJkkpUuhaTskk16d6mLEB53d+EwRg
         2s7t+J4Bd+TYq/EXsMdm4K86cRKj3NZi6nWiQF6aQbgCPpCuvbwpFq4sXJn2XPr4GSG2
         Th3D5kSFp+oiICqSjiRaQ6JEqqHbq6GvlbMsD1k+WxWsk9ox4vhFrqiSSZariEfpk3/K
         NKYoWyNV67g+VntDwz5qg08D9ob5s1g4zeH1HG0CZIBJriUNPt7qdO5WhWhekDmPVGMJ
         IDvotTuyzH4cPVwERohWZwkZ/fa6HSeGhOA4LV/VuKel+YQjioIfxOgQanwFcDxsyY3E
         OrAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=wTvK5kO0FUcGnxCyVmK+GKrZNfPhZFNt57h0QWat/qo=;
        b=1vDDjlxC8yORdn6ug9K9Vxfl+fCQTjrAGX/mk0PyzmEbF4hkryMwbsEPd/Ck1IIzyR
         MduXN2Uz3vxHNKTWdYZKlddPZGKVRM1PmR+Vvay+v4Vt3S23o8/E8u1J6+RgqrSPT5f0
         6c59gB4NXvJY/BfRjAAl7e21ueBFGTpIZ1u+L9MtXJ7/K7eTyc4L7MT2ETqqfQj+efzL
         UH7tg8GWQFw3oCfZ6JAnbMSo2Cu+Nk9MSyuCwFcBTcuoxMS+0YMpDe/QAeDQUUh5FqXr
         yMdL7Hl1jAhXoqHfbZvHpW49J3R3NvXsdcQRTF6QQs96dhj/XOV1IGYzieYmchkQzShH
         5Dmg==
X-Gm-Message-State: AOAM532MCIKBppushZ75X7yUl+ALNoDXl7rUnU0s3dDJZIuz2gd54D21
	mAZSBOcHpbWRULjPbFrOH2Rh3yFHC2k=
X-Google-Smtp-Source: ABdhPJzV8tM9jJ+YM8h9UIDCNNzE6Z7H4gJwzI4RlG1cQ6QRWjIBy7LL+ION1D+Mvhxd950s2BQwnw==
X-Received: by 2002:ac2:424e:: with SMTP id m14mr51529749lfl.176.1636332469060;
        Sun, 07 Nov 2021 16:47:49 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 01/25] notifier: Remove extern annotation from function prototypes
Date: Mon,  8 Nov 2021 03:45:00 +0300
Message-Id: <20211108004524.29465-2-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There is no need to annotate function prototypes with 'extern', it makes
code less readable. Remove unnecessary annotations from <notifier.h>.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/notifier.h | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/include/linux/notifier.h b/include/linux/notifier.h
index 87069b8459af..4b80a815b666 100644
--- a/include/linux/notifier.h
+++ b/include/linux/notifier.h
@@ -90,7 +90,7 @@ struct srcu_notifier_head {
 	} while (0)
 
 /* srcu_notifier_heads must be cleaned up dynamically */
-extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
+void srcu_init_notifier_head(struct srcu_notifier_head *nh);
 #define srcu_cleanup_notifier_head(name)	\
 		cleanup_srcu_struct(&(name)->srcu);
 
@@ -141,36 +141,36 @@ extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
 
 #ifdef __KERNEL__
 
-extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
+int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
 		struct notifier_block *nb);
-extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh,
+int blocking_notifier_chain_register(struct blocking_notifier_head *nh,
 		struct notifier_block *nb);
-extern int raw_notifier_chain_register(struct raw_notifier_head *nh,
+int raw_notifier_chain_register(struct raw_notifier_head *nh,
 		struct notifier_block *nb);
-extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
+int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
 		struct notifier_block *nb);
 
-extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
+int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
 		struct notifier_block *nb);
-extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh,
+int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh,
 		struct notifier_block *nb);
-extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh,
+int raw_notifier_chain_unregister(struct raw_notifier_head *nh,
 		struct notifier_block *nb);
-extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh,
+int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh,
 		struct notifier_block *nb);
 
-extern int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
+int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
 		unsigned long val, void *v);
-extern int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
+int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
 		unsigned long val, void *v);
-extern int raw_notifier_call_chain(struct raw_notifier_head *nh,
+int raw_notifier_call_chain(struct raw_notifier_head *nh,
 		unsigned long val, void *v);
-extern int srcu_notifier_call_chain(struct srcu_notifier_head *nh,
+int srcu_notifier_call_chain(struct srcu_notifier_head *nh,
 		unsigned long val, void *v);
 
-extern int blocking_notifier_call_chain_robust(struct blocking_notifier_head *nh,
+int blocking_notifier_call_chain_robust(struct blocking_notifier_head *nh,
 		unsigned long val_up, unsigned long val_down, void *v);
-extern int raw_notifier_call_chain_robust(struct raw_notifier_head *nh,
+int raw_notifier_call_chain_robust(struct raw_notifier_head *nh,
 		unsigned long val_up, unsigned long val_down, void *v);
 
 #define NOTIFY_DONE		0x0000		/* Don't care */
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222878.385314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspI-0005D0-Sb; Mon, 08 Nov 2021 00:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222878.385314; Mon, 08 Nov 2021 00:47:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspI-0005Bn-LD; Mon, 08 Nov 2021 00:47:56 +0000
Received: by outflank-mailman (input) for mailman id 222878;
 Mon, 08 Nov 2021 00:47:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspH-0004MH-9c
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:47:55 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82577403-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:47:54 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id i63so914282lji.3
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:47:54 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.47.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:47:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82577403-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=TugVlbRXpFiQ9yttEJ2CYhwYKdBA8PSz6pBjqNjtqe8=;
        b=qGyzuk9bzwP/18mgZA5opqkVY0uVUy+tVPfW2WYN1KphXlcW2Q+w2WAU/6WZNf57LM
         qJ4eYesG/AVtiYQbx6XiDRV7T5AuMxyGQ216v1qPIOzs89Hff+bf4lZf1jt+ER21rBOl
         HONymPsCAtxnkmv4pkJQTsQypH0+0XmtAGzllxDhcASTyvxis2fFkz6lytuE8myfCgCw
         m9JFB37KExTbVRxVqh3r/x0jYz92VN4nsKWVD0nWCm1XktHXgkzuksbVdAjBiuLFaKZ/
         AY7V9wqwv7IWe10elmoqy019vMjtrGfbjo+zM6o4NTXkbvdPF08pHM+GsNheZd6RkSJl
         Fhsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=TugVlbRXpFiQ9yttEJ2CYhwYKdBA8PSz6pBjqNjtqe8=;
        b=SGJdwyS8l+2hYawjW3SX4Hj2vYs++xiy08jbvAM4gIe+0pbS620XM1N1YS53JokA3g
         1WC4aL7JVzafK2Wzj+/MydC1OXaCOhGnKr96Q3jghppCUmoXBqoBsKFWx/UmPyRK0A6y
         /ZQvD6dBLhLP4w9+e+0TtPpNDOPNdT3WN7bvOAO1/PzsPx/w0cN5bMZisGkpxqKJ+2FG
         9mOXHkPUvOP+NVAubZwwW4cO/t472UAMB8XaqL+Zy7A4TPAGQcorEHCKYhgFuoTvxCSy
         OplaAzlaTnrzug2AV2SPrd0CcBdVEaMo6QCNANpIqXvhGAlsLrmtNRv+l7XtWVkQTG/n
         4yGw==
X-Gm-Message-State: AOAM531yhtm+rELMmDQc/zNh/KpHGim91mdULAnwVNyUHQwb1T9OkA+7
	h52mbrl5WhH2Ny7VXtgAHIE=
X-Google-Smtp-Source: ABdhPJzFYVx5IFgfdDhOR9e83sgbkaPAeNsCANjmWUXHuabW0BVJv1Mhw8sAAFHy3OCvobmKncQgJA==
X-Received: by 2002:a05:651c:907:: with SMTP id e7mr81850646ljq.300.1636332474410;
        Sun, 07 Nov 2021 16:47:54 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 04/25] reboot: Correct typo in a comment
Date: Mon,  8 Nov 2021 03:45:03 +0300
Message-Id: <20211108004524.29465-5-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Correct s/implemenations/implementations/ in <reboot.h>.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/reboot.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/reboot.h b/include/linux/reboot.h
index af907a3d68d1..7c288013a3ca 100644
--- a/include/linux/reboot.h
+++ b/include/linux/reboot.h
@@ -63,7 +63,7 @@ struct pt_regs;
 extern void machine_crash_shutdown(struct pt_regs *);
 
 /*
- * Architecture independent implemenations of sys_reboot commands.
+ * Architecture independent implementations of sys_reboot commands.
  */
 
 extern void kernel_restart_prepare(char *cmd);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222881.385352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspO-0006Jq-26; Mon, 08 Nov 2021 00:48:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222881.385352; Mon, 08 Nov 2021 00:48:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspN-0006Io-U4; Mon, 08 Nov 2021 00:48:01 +0000
Received: by outflank-mailman (input) for mailman id 222881;
 Mon, 08 Nov 2021 00:48:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspM-0004MH-T9
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:01 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 858f46e7-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:48:00 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id z8so3355987ljz.9
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:00 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.47.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:47:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 858f46e7-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=YMqE3plwxFsGF2jAAFpub/HIgtQoag7R/7s0kLQElmo=;
        b=DefuhZbt4OnMz/wVwAIWNCALoygvvDVImXqcSeaDNkrH+ru6t4LVzbAUndl/LZOpWO
         1Efhuk6PQO29JOeoi5KlQ/yRmgN4iklMKAv4PvStXMmGVw2Jtj5IoPHy5CyJDSdjRs0i
         yriQPAmo7UIy+FrEG+A7H72zXrcEYKOUEa8b1CKRxGAcWxgAYq1CFtAxtuwXyhvjgk4K
         lte1XwrEWK7M1fH+qxpCth02fxZtOwNmkDnMhde9A04zaHhPgtL983fQ89kdDOA/3AEf
         Do/YcemkRghD2n99FcExca9IcSL1gRhAAAZW/waRgmmb7TxCy/6h4hAjOVFtj6bVAaT9
         0COA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=YMqE3plwxFsGF2jAAFpub/HIgtQoag7R/7s0kLQElmo=;
        b=wC83ltO8r2KxRB2lmfNll/b6PT/BXrERjoNhePedFCA6Mq/I7U89apGcPlQ56L+BXH
         0P6DOpGJY26Rw12GWRfhkifjsoKFMoAyaNVv9DDpNvyYx3IUxkS5mIdRLBXP4tLWPcNR
         AjkszoiV4RfL+OCDQyyZ+eeOkDgnsg3LhrvRp/WnDrt1Y45kkEkgdBWaWfByqO4QpIj9
         T9LgyYoxNgMVIT5qFGUQC6GGyKm7YiXUJpLepJBC0nWa/cddrAZArav/DitSKlFFWGKS
         26RRBvDkYwS+nBNtwPJ1b952GBDHr3jSgYVriamF/T9u1kO/M6Nwt/TnAFZsQrqwYgQ3
         ++jQ==
X-Gm-Message-State: AOAM533tGzRWPbFBcSXyMLjH7UwuesW7jhNTMuWuVV5T8uKwB1hs/GxY
	eBQm5cvosBU0CSxS9C/KvAE=
X-Google-Smtp-Source: ABdhPJwrPiyodjCt6O7VMd1jbx6YuCXnOFCKgXtyhOlyn238pF2627CcQET7kkCBFMqgNL1jiu7NKw==
X-Received: by 2002:a05:651c:4d4:: with SMTP id e20mr27622982lji.498.1636332479792;
        Sun, 07 Nov 2021 16:47:59 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 07/25] reboot: Remove extern annotation from function prototypes
Date: Mon,  8 Nov 2021 03:45:06 +0300
Message-Id: <20211108004524.29465-8-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There is no need to annotate function prototypes with 'extern', it makes
code less readable. Remove unnecessary annotations from <reboot.h>.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/reboot.h | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/include/linux/reboot.h b/include/linux/reboot.h
index 7c288013a3ca..b7fa25726323 100644
--- a/include/linux/reboot.h
+++ b/include/linux/reboot.h
@@ -40,36 +40,36 @@ extern int reboot_cpu;
 extern int reboot_force;
 
 
-extern int register_reboot_notifier(struct notifier_block *);
-extern int unregister_reboot_notifier(struct notifier_block *);
+int register_reboot_notifier(struct notifier_block *);
+int unregister_reboot_notifier(struct notifier_block *);
 
-extern int devm_register_reboot_notifier(struct device *, struct notifier_block *);
+int devm_register_reboot_notifier(struct device *, struct notifier_block *);
 
-extern int register_restart_handler(struct notifier_block *);
-extern int unregister_restart_handler(struct notifier_block *);
-extern void do_kernel_restart(char *cmd);
+int register_restart_handler(struct notifier_block *);
+int unregister_restart_handler(struct notifier_block *);
+void do_kernel_restart(char *cmd);
 
 /*
  * Architecture-specific implementations of sys_reboot commands.
  */
 
-extern void migrate_to_reboot_cpu(void);
-extern void machine_restart(char *cmd);
-extern void machine_halt(void);
-extern void machine_power_off(void);
+void migrate_to_reboot_cpu(void);
+void machine_restart(char *cmd);
+void machine_halt(void);
+void machine_power_off(void);
 
-extern void machine_shutdown(void);
+void machine_shutdown(void);
 struct pt_regs;
-extern void machine_crash_shutdown(struct pt_regs *);
+void machine_crash_shutdown(struct pt_regs *);
 
 /*
  * Architecture independent implementations of sys_reboot commands.
  */
 
-extern void kernel_restart_prepare(char *cmd);
-extern void kernel_restart(char *cmd);
-extern void kernel_halt(void);
-extern void kernel_power_off(void);
+void kernel_restart_prepare(char *cmd);
+void kernel_restart(char *cmd);
+void kernel_halt(void);
+void kernel_power_off(void);
 
 extern int C_A_D; /* for sysctl */
 void ctrl_alt_del(void);
@@ -77,15 +77,15 @@ void ctrl_alt_del(void);
 #define POWEROFF_CMD_PATH_LEN	256
 extern char poweroff_cmd[POWEROFF_CMD_PATH_LEN];
 
-extern void orderly_poweroff(bool force);
-extern void orderly_reboot(void);
+void orderly_poweroff(bool force);
+void orderly_reboot(void);
 void hw_protection_shutdown(const char *reason, int ms_until_forced);
 
 /*
  * Emergency restart, callable from an interrupt handler.
  */
 
-extern void emergency_restart(void);
+void emergency_restart(void);
 #include <asm/emergency-restart.h>
 
 #endif /* _LINUX_REBOOT_H */
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222880.385342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspM-00062H-Li; Mon, 08 Nov 2021 00:48:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222880.385342; Mon, 08 Nov 2021 00:48:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspM-000620-GP; Mon, 08 Nov 2021 00:48:00 +0000
Received: by outflank-mailman (input) for mailman id 222880;
 Mon, 08 Nov 2021 00:47:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspK-0004MH-TH
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:47:59 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 847dc7d0-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:47:58 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id i26so26172911ljg.7
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:47:58 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.47.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:47:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 847dc7d0-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=idp+KUM0Lads56hMjVdKoUEucrYOLC8M0llXkHYfiR0=;
        b=MSIokg9fBl5wCKU+YCh/ZsTnRbPxtyYkn0IXkmz1QgysWSCzedTHzXunmbe5h3S6bm
         UnVL+wV6mqmFlzA/9Cm1DjvGCGyG1UlF0UpjGzAyekOseWLiiFHuU/rzzoJCNBaI+Ut+
         tXv3jqiyClz8c/yGI+0sql8rliP5FMVBt2m13PFdeI0ncEKECxTJKTD2uIvZxfhnpZtc
         pTtiL6yFqIiWFaztPJXKxizN2sS1pJLHyx55ZI+6yNFLo/Lx5fkTcHCO0Wef47K1i5ee
         hCd51zpj+5nuMAdYUzdECYDopq77neBqCsiLrTGv9/feFU5+CZJd4t4x88wQvcjrAxlc
         1+wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=idp+KUM0Lads56hMjVdKoUEucrYOLC8M0llXkHYfiR0=;
        b=iVOnovTtf/lAlmregCVYiSL33aPy45i+j/B+ViMmbQKRdVqzIsihs0DQvdmFhvtFF0
         ftvQqGCaClYkTwrlxhHfv9Gqv2uIA69Y/RGRMlZnPMdddJLGJXrUnlOWZM2z+JfDtbMP
         GjCd3SljAWpWuX1eEwBrzh4f8r0ocMIXYnY5WOYsaAcoToEkZz4AC8c+EEpyXmsIEgfJ
         dPARWLbopkrIoyUOgYI3MDf+xAcAyPdRm1sNmieIKd4T7oo6lkDho2OTnK0enA0vJn1T
         dTlLIzOwawrmGw9DVxqGmtFDjoSbeusIFBVggeJnua/80j5/YufVdysXkaNcM2JzYCka
         tP/Q==
X-Gm-Message-State: AOAM531OxRaqc+gqADGTflt3U0C1GVgRmA9NRTzAE/SVOQUuxOb/g4Vr
	jRq/kSPL6npD6AHBC9GGeDs=
X-Google-Smtp-Source: ABdhPJxSy/O3ZKQtb6VfZ0yaPaYZOmyzwu5OdP3V3ve+XGbVnBVt+toWzoBqdj+8FoRHXqlPFKwvJw==
X-Received: by 2002:a2e:b88f:: with SMTP id r15mr57944203ljp.309.1636332477998;
        Sun, 07 Nov 2021 16:47:57 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 06/25] reboot: Warn if unregister_restart_handler() fails
Date: Mon,  8 Nov 2021 03:45:05 +0300
Message-Id: <20211108004524.29465-7-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Emit warning if unregister_restart_handler() fails since it never should
fail. This will ease further API development by catching mistakes early.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 kernel/reboot.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/reboot.c b/kernel/reboot.c
index e6659ae329f1..f0e7b9c13f6b 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -210,7 +210,7 @@ EXPORT_SYMBOL(register_restart_handler);
  */
 int unregister_restart_handler(struct notifier_block *nb)
 {
-	return atomic_notifier_chain_unregister(&restart_handler_list, nb);
+	return WARN_ON(atomic_notifier_chain_unregister(&restart_handler_list, nb));
 }
 EXPORT_SYMBOL(unregister_restart_handler);
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222876.385289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspG-0004bG-8W; Mon, 08 Nov 2021 00:47:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222876.385289; Mon, 08 Nov 2021 00:47:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspG-0004Zf-1n; Mon, 08 Nov 2021 00:47:54 +0000
Received: by outflank-mailman (input) for mailman id 222876;
 Mon, 08 Nov 2021 00:47:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspF-0004MH-0x
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:47:53 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8038b8c2-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:47:51 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id e9so5702819ljl.5
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:47:51 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.47.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:47:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8038b8c2-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=6FNFlMpNjS/DNcuPrR0BFjK6OkkBLQhzqGXiB9qxwwI=;
        b=ap3A83fg5fKkLgYcPLGj4ujgDQbjKUnCHl1tJwJk0YYfyEiGzkqPECTzKOM1YfoD1L
         7Tv1IQL0qy27hRaO+2V8mMNwuPhmt0RnGYTpIVZHvmMlW0N/ak+ket1f1gl2JZ7gk9d3
         fAQNCztH/PN7x2xYeGLPMEE2nD1cIjm0qVz550BDVg6mI6jct3ZSJyVKmro1IFNn1yWr
         IPyHSXGPZHiix8heM9Rffd6oJdFFpg7+1b1krhUZivdkkY35o0on0Qdc3YJ5KDtW0+lB
         QH16yrcERPBYXXBZaoG/Grh/x98enYzxE1lM3ST5QIPReMfvmXUk1iBZ/CuGE0IZaTFO
         vjnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=6FNFlMpNjS/DNcuPrR0BFjK6OkkBLQhzqGXiB9qxwwI=;
        b=ejHSHVrU6P8WgyKTCFo/VRa3FUHkcmjGWfH0uagaRJS//xh0LYB4QvQu9iipbGJzJP
         1CCrAmfpv0U9o6RKn+pLmndtpyvO90TeBMHdFRzBpfcNNM4P5jYgdtxHBEa/DHlRbA6w
         DC7UrP4qEGehdLJinCtSnrTay47tAu/V3A8Z2/rkNPv37UJOw4n+7G/Cuyqj1Tg2rPlu
         OE53XNxLa7oICI09j4yKXNhWQOw0th0P2DDk3TuYRiHM5Si9VSXRiCIUg/WVEjKAtF+f
         UecTbhbIFs1B9Oj/qzg4j7YhZiiLk5rxQEddygxYo1dyweSAUq36t2aXuOqZyRPl+8n5
         aC8Q==
X-Gm-Message-State: AOAM530/S10WRIBiUp9lr6GO1vf3q1qD9rgY0Ab1NIZybl7ozJ0109gP
	zYGfe6svvCPo4d+SMCGNTUo=
X-Google-Smtp-Source: ABdhPJyrOsT2LfeoRDePz9gvXDRZ9T+n52FCNueqjAZN/qgGSzpYZGgdBodfU1+UMWgFhWWsCOX6NQ==
X-Received: by 2002:a2e:8799:: with SMTP id n25mr26944321lji.377.1636332470861;
        Sun, 07 Nov 2021 16:47:50 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 02/25] notifier: Add blocking_notifier_call_chain_is_empty()
Date: Mon,  8 Nov 2021 03:45:01 +0300
Message-Id: <20211108004524.29465-3-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add blocking_notifier_call_chain_is_empty() that returns true if call
chain is empty.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/notifier.h |  2 ++
 kernel/notifier.c        | 14 ++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/include/linux/notifier.h b/include/linux/notifier.h
index 4b80a815b666..924c9d7c8e73 100644
--- a/include/linux/notifier.h
+++ b/include/linux/notifier.h
@@ -173,6 +173,8 @@ int blocking_notifier_call_chain_robust(struct blocking_notifier_head *nh,
 int raw_notifier_call_chain_robust(struct raw_notifier_head *nh,
 		unsigned long val_up, unsigned long val_down, void *v);
 
+bool blocking_notifier_call_chain_is_empty(struct blocking_notifier_head *nh);
+
 #define NOTIFY_DONE		0x0000		/* Don't care */
 #define NOTIFY_OK		0x0001		/* Suits me */
 #define NOTIFY_STOP_MASK	0x8000		/* Don't call further */
diff --git a/kernel/notifier.c b/kernel/notifier.c
index b8251dc0bc0f..b20cb7b9b1f0 100644
--- a/kernel/notifier.c
+++ b/kernel/notifier.c
@@ -322,6 +322,20 @@ int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
 }
 EXPORT_SYMBOL_GPL(blocking_notifier_call_chain);
 
+/**
+ *	blocking_notifier_call_chain_is_empty - Check whether notifier chain is empty
+ *	@nh: Pointer to head of the blocking notifier chain
+ *
+ *	Checks whether notifier chain is empty.
+ *
+ *	Returns true is notifier chain is empty, false otherwise.
+ */
+bool blocking_notifier_call_chain_is_empty(struct blocking_notifier_head *nh)
+{
+	return !rcu_access_pointer(nh->head);
+}
+EXPORT_SYMBOL_GPL(blocking_notifier_call_chain_is_empty);
+
 /*
  *	Raw notifier chain routines.  There is no protection;
  *	the caller must provide it.  Use at your own risk!
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222874.385276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspF-0004NJ-DT; Mon, 08 Nov 2021 00:47:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222874.385276; Mon, 08 Nov 2021 00:47:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspF-0004NB-A0; Mon, 08 Nov 2021 00:47:53 +0000
Received: by outflank-mailman (input) for mailman id 222874;
 Mon, 08 Nov 2021 00:47:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspD-0004MH-AV
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:47:51 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e283a56-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:47:47 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id e9so5702603ljl.5
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:47:47 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.47.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:47:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e283a56-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=+AnGTim9m4rf1XLwn/ELN0sZCzuOcJdLe86U7paP+yQ=;
        b=ni13262nQh3GX0h+BPQyrs85JRUzaWz8PTTW1ehXiMuJGu1Ze+O6oA+cTLQeD5Hu4S
         aIUejstQov0r9q7FmiaLuF+gYTZL3eYolS1kQprSozhbudB00Wpmvyv/Ibx+kYr/f2ol
         fpa+emXtKS+ULegWlJMkpBsUqNU+LUnr8b2Ielf6GYvhamqJqJ4iU+26oqIvJYLhTmiz
         7/d5EU2cOI+EmtDwT6uDZVFvp+RGANCxJ+fUlUfDE+cPDc1mzk9RG3KztMGzfZYfJS0H
         L2NeIRkXoa3/MmqxU00dVJoI3pTMIH9pcEYdrlibnl51ATyPLSbW9nEf5TJH1P9UDiFh
         SjJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=+AnGTim9m4rf1XLwn/ELN0sZCzuOcJdLe86U7paP+yQ=;
        b=API1FJmojQGr1mNcsKEMHzBqDYEwliljwIY4/7vMWyHSYPKcHWg55zh5OrS1RAMeDI
         WQNppj10ALTbdwF8cO9Ckbi3Yx9SITXHl37GDiod43tssGaVax9+1e+wvMv6jwKwRIgu
         KzOlH0jNJ2K/PCMQs6IMnrh9DeNWZjkFx2WmE1Ze8BiTK3rteCoABGNGyJhsURxt4mPw
         OpUZpxge/3BiZacHjsK7rqRVx7gszciJpnfHIEzs6nnZ29k/+dx90Z/xcgVNzbnKclox
         rjqTr+W9SIor1HlYMP28LbV6FIFP6YBVwycz8qQFxo7wm05m4BqUYz5FiijUd0su5sGx
         V04A==
X-Gm-Message-State: AOAM532RAelFBHbPJepxq2W+pXns083s0677n0Sw9Wthpsy+pTn8dfvu
	mJKPgdrnd4OgVB8PAxUPwxE=
X-Google-Smtp-Source: ABdhPJygsbd62AYwVWr/FbjY9E+4XNsUMriRPDZTTc6CoomG/9GH2yuj3/kx3X6KSzqjBHkqxGUtsg==
X-Received: by 2002:a2e:391b:: with SMTP id g27mr79531744lja.126.1636332467262;
        Sun, 07 Nov 2021 16:47:47 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 00/25] Introduce power-off+restart call chain API
Date: Mon,  8 Nov 2021 03:44:59 +0300
Message-Id: <20211108004524.29465-1-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Problem
-------

SoC devices require power-off call chaining functionality from kernel.
We have a widely used restart chaining provided by restart notifier API,
but nothing for power-off.

Solution
--------

Introduce new API that provides both restart and power-off call chains.

Why combine restart with power-off? Because drivers often do both.
More practical to have API that provides both under the same roof.

The new API is designed with simplicity and extensibility in mind.
It's built upon the existing restart and reboot APIs. The simplicity
is in new helper functions that are convenient for drivers. The
extensibility is in the design that doesn't hardcode callback
arguments, making easy to add new parameters and remove old.

This is a third attempt to introduce the new API. First was made by
Guenter Roeck back in 2014, second was made by Thierry Reding in 2017.
In fact the work didn't stop and recently arm_pm_restart() was removed
from v5.14 kernel, which was a part of preparatory work started by
Guenter Roeck. I took into account experience and ideas from the
previous attempts, extended and polished them.

Adoption plan
-------------

This patchset introduces the new API. It also converts multiple drivers
and arch code to the new API to demonstrate how it all looks in practice.

The plan is:

1. Merge new API (patches 1-8). This API will co-exist with the old APIs.

2. Convert arch code to do_kernel_power_off() (patches 9-21).

3. Convert drivers and platform code to the new API.

4. Remove obsolete pm_power_off and pm_power_off_prepare variables.

5. Make restart-notifier API private to kernel/reboot.c once no users left.

It's fully implemented here:

[1] https://github.com/grate-driver/linux/commits/sys-off-handler

For now I'm sending only the first 25 base patches out of ~180. It's
preferable to squash 1-2, partially 3 and 4 points of the plan into a
single patchset to ease and speed up applying of the rest of the patches.
Majority of drivers and platform patches depend on the base, hence they
will come later (and per subsystem), once base will land.

All [1] patches are compile-tested. Tegra and x86 ACPI patches are tested
on hardware. The remaining should be covered by unit tests (unpublished).

Results
-------

1. Devices can be powered off properly.

2. Global variables are removed from drivers.

3. Global pm_power_off and pm_power_off_prepare callback variables are
removed once all users are converted to the new API. The latter callback
is removed by patch #25 of this series.

4. Ambiguous call chain ordering is prohibited. See patch #5 which adds
verification of restart handlers priorities, ensuring that they are unique.

Changelog:

v3: - Renamed power_handler to sys_off_handler as was suggested by
      Rafael Wysocki.

    - Improved doc-comments as was suggested by Rafael Wysocki. Added more
      doc-comments.

    - Implemented full set of 180 patches which convert whole kernel in
      accordance to the plan, see link [1] above. Slightly adjusted API to
      better suit for the remaining converted drivers.

      * Added unregister_sys_off_handler() that is handy for a couple old
        platform drivers.

      * Dropped devm_register_trivial_restart_handler(), 'simple' variant
        is enough to have.

    - Improved "Add atomic/blocking_notifier_has_unique_priority()" patch,
      as was suggested by Andy Shevchenko. Also replaced down_write() with
      down_read() and factored out common notifier_has_unique_priority().

    - Added stop_chain field to struct restart_data and reboot_prep_data
      after discovering couple drivers wanting that feature.

    - Added acks that were given to v2.

v2: - Replaced standalone power-off call chain demo-API with the combined
      power-off+restart API because this is what drivers want. It's a more
      comprehensive solution.

    - Converted multiple drivers and arch code to the new API. Suggested by
      Andy Shevchenko. I skimmed through the rest of drivers, verifying that
      new API suits them. The rest of the drivers will be converted once we
      will settle on the new API, otherwise will be too many patches here.

    - v2 API doesn't expose notifier to users and require handlers to
      have unique priority. Suggested by Guenter Roeck.

    - v2 API has power-off chaining disabled by default and require
      drivers to explicitly opt-in to the chaining. This preserves old
      behaviour for existing drivers once they are converted to the new
      API.

Dmitry Osipenko (25):
  notifier: Remove extern annotation from function prototypes
  notifier: Add blocking_notifier_call_chain_is_empty()
  notifier: Add atomic/blocking_notifier_has_unique_priority()
  reboot: Correct typo in a comment
  reboot: Warn if restart handler has duplicated priority
  reboot: Warn if unregister_restart_handler() fails
  reboot: Remove extern annotation from function prototypes
  kernel: Add combined power-off+restart handler call chain API
  ARM: Use do_kernel_power_off()
  csky: Use do_kernel_power_off()
  riscv: Use do_kernel_power_off()
  arm64: Use do_kernel_power_off()
  parisc: Use do_kernel_power_off()
  xen/x86: Use do_kernel_power_off()
  sh: Use do_kernel_power_off()
  x86: Use do_kernel_power_off()
  ia64: Use do_kernel_power_off()
  mips: Use do_kernel_power_off()
  nds32: Use do_kernel_power_off()
  powerpc: Use do_kernel_power_off()
  m68k: Switch to new sys-off handler API
  memory: emif: Use kernel_can_power_off()
  ACPI: power: Switch to sys-off handler API
  regulator: pfuze100: Use devm_register_sys_off_handler()
  reboot: Remove pm_power_off_prepare()

 arch/arm/kernel/reboot.c               |   4 +-
 arch/arm64/kernel/process.c            |   3 +-
 arch/csky/kernel/power.c               |   6 +-
 arch/ia64/kernel/process.c             |   4 +-
 arch/m68k/emu/natfeat.c                |   3 +-
 arch/m68k/include/asm/machdep.h        |   1 -
 arch/m68k/kernel/process.c             |   5 +-
 arch/m68k/kernel/setup_mm.c            |   1 -
 arch/m68k/kernel/setup_no.c            |   1 -
 arch/m68k/mac/config.c                 |   4 +-
 arch/mips/kernel/reset.c               |   3 +-
 arch/nds32/kernel/process.c            |   3 +-
 arch/parisc/kernel/process.c           |   4 +-
 arch/powerpc/kernel/setup-common.c     |   4 +-
 arch/powerpc/xmon/xmon.c               |   3 +-
 arch/riscv/kernel/reset.c              |  12 +-
 arch/sh/kernel/reboot.c                |   3 +-
 arch/x86/kernel/reboot.c               |   4 +-
 arch/x86/xen/enlighten_pv.c            |   4 +-
 drivers/acpi/sleep.c                   |  25 +-
 drivers/memory/emif.c                  |   2 +-
 drivers/regulator/pfuze100-regulator.c |  38 +-
 include/linux/notifier.h               |  37 +-
 include/linux/pm.h                     |   1 -
 include/linux/reboot.h                 | 305 ++++++++++++--
 kernel/notifier.c                      |  83 ++++
 kernel/power/hibernate.c               |   2 +-
 kernel/reboot.c                        | 556 ++++++++++++++++++++++++-
 28 files changed, 985 insertions(+), 136 deletions(-)

-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222882.385364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspR-0006o6-Gf; Mon, 08 Nov 2021 00:48:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222882.385364; Mon, 08 Nov 2021 00:48:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspR-0006nT-Ah; Mon, 08 Nov 2021 00:48:05 +0000
Received: by outflank-mailman (input) for mailman id 222882;
 Mon, 08 Nov 2021 00:48:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspP-0004R0-ON
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:04 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86c8d4b4-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:02 +0100 (CET)
Received: by mail-lj1-x22c.google.com with SMTP id 1so26205262ljv.2
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:02 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.47.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86c8d4b4-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=Zw8Qr4Ky3h91c+l0KCmRfZD2cAshUutAQVl2ZfHfitQ=;
        b=AlldzELuIjIr49LA1qP6BB9OnNEVvbe7ajUywFeQa3Iceyr6/U/aXs6f6EP1Hk1Ukz
         4PXW2G5HvAClbCoq5q07wLxjxiuhh4jXnXdB/JrwI0vsbTAZkc05S4PJFGuyKGLXnl/i
         y8Isc+pnj+TR6LS6WZRPBkAX3y/4Q01LvMPQK/MbksqHLWW3QD8CG2SjCINHJJxSGVVW
         xwmMLYs92mM9RFvjtM12VIQlZ0L7gtqcj0zTWsZZJhyaHG24CMGA5r38OIjB1IJ0tzNP
         ZSrzzAoe0u+Y69jzMVp/Yxwxvz6ex+lv6DarQNV27HtmENRWq7nt8MNYXQLJmbO9TXhJ
         yEGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=Zw8Qr4Ky3h91c+l0KCmRfZD2cAshUutAQVl2ZfHfitQ=;
        b=ghHtYa8lHJJEYxickZ+4ILZ7iyiANvg0IlZA6q5sthz2ZzMtp87wX/K1h7K//oI2Ow
         aUVP2H9xZWqCiDf3x5fdEHwASvWOBuiCgvJnTNPKwENjVphtFpi6naa8sH3K444RLC/N
         AKWd9jlRXv6hAac+TITKkzzXQPNjeAgZC8yLHqTmqjLJ1c4T7w6DeoqU4OdQCAxSl7q5
         8uCmDqec80zTsJVLjmfgB12oX0r/4PezzkXehG8qrShkRGuePmOCsPQBlBeew+vIj6GO
         H73HAIJsf0EaDMLji17+beXb0xtzoXeBrcKk+KNL9bd4TV31eavai5ibHb1vKKicV0iU
         uzNQ==
X-Gm-Message-State: AOAM532GR0iw2552T1Jif2NvSkWRG7Fkpw2RPJUukscvrr6JRi6811/V
	9CtNAurHoGdkn1ULxeaal9w=
X-Google-Smtp-Source: ABdhPJzUjww2CcPy4cujIskQIeA70dTIiUUVDSHT9xiNkPTvC4fvPlkbxPu1n+LZNcTFjCZbIb8BBg==
X-Received: by 2002:a2e:7e06:: with SMTP id z6mr9805376ljc.413.1636332481632;
        Sun, 07 Nov 2021 16:48:01 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 08/25] kernel: Add combined power-off+restart handler call chain API
Date: Mon,  8 Nov 2021 03:45:07 +0300
Message-Id: <20211108004524.29465-9-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

SoC platforms often have multiple ways of how to perform system's
power-off and restart operations. Meanwhile today's kernel is limited to
a single option. Add combined power-off+restart handler call chain API,
which is inspired by the restart API. The new API provides both power-off
and restart functionality.

The old pm_power_off method will be kept around till all users are
converted to the new API.

Current restart API will be replaced by the new unified API since
new API is its superset. The restart functionality of the sys-off handler
API is built upon the existing restart-notifier APIs.

In order to ease conversion to the new API, convenient helpers are added
for the common use-cases. They will reduce amount of boilerplate code and
remove global variables. These helpers preserve old behaviour for cases
where only one power-off handler is expected, this is what all existing
drivers want, and thus, they could be easily converted to the new API.
Users of the new API should explicitly enable power-off chaining by
setting corresponding flag of the power_handler structure.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/reboot.h   | 265 ++++++++++++++++++-
 kernel/power/hibernate.c |   2 +-
 kernel/reboot.c          | 536 ++++++++++++++++++++++++++++++++++++++-
 3 files changed, 795 insertions(+), 8 deletions(-)

diff --git a/include/linux/reboot.h b/include/linux/reboot.h
index b7fa25726323..261d86ef71df 100644
--- a/include/linux/reboot.h
+++ b/include/linux/reboot.h
@@ -8,10 +8,35 @@
 
 struct device;
 
-#define SYS_DOWN	0x0001	/* Notify of system down */
-#define SYS_RESTART	SYS_DOWN
-#define SYS_HALT	0x0002	/* Notify of system halt */
-#define SYS_POWER_OFF	0x0003	/* Notify of system power off */
+enum reboot_prepare_mode {
+	SYS_DOWN = 1,		/* Notify of system down */
+	SYS_RESTART = SYS_DOWN,
+	SYS_HALT,		/* Notify of system halt */
+	SYS_POWER_OFF,		/* Notify of system power off */
+};
+
+/*
+ * Standard restart priority levels. Intended to be set in the
+ * sys_off_handler.restart_priority field.
+ *
+ * Use `RESTART_PRIO_ABC +- prio` style for additional levels.
+ *
+ * RESTART_PRIO_RESERVED:	Falls back to RESTART_PRIO_DEFAULT.
+ *				Drivers may leave priority initialized
+ *				to zero, to auto-set it to the default level.
+ *
+ * RESTART_PRIO_LOW:		Use this for handler of last resort.
+ *
+ * RESTART_PRIO_DEFAULT:	Use this for default/generic handler.
+ *
+ * RESTART_PRIO_HIGH:		Use this if you have multiple handlers and
+ *				this handler has higher priority than the
+ *				default handler.
+ */
+#define RESTART_PRIO_RESERVED		0
+#define RESTART_PRIO_LOW		8
+#define RESTART_PRIO_DEFAULT		128
+#define RESTART_PRIO_HIGH		192
 
 enum reboot_mode {
 	REBOOT_UNDEFINED = -1,
@@ -49,6 +74,237 @@ int register_restart_handler(struct notifier_block *);
 int unregister_restart_handler(struct notifier_block *);
 void do_kernel_restart(char *cmd);
 
+/*
+ * System power-off and restart API.
+ */
+
+/*
+ * Standard power-off priority levels. Intended to be set in the
+ * sys_off_handler.power_off_priority field.
+ *
+ * Use `POWEROFF_PRIO_ABC +- prio` style for additional levels.
+ *
+ * POWEROFF_PRIO_RESERVED:	Falls back to POWEROFF_PRIO_DEFAULT.
+ *				Drivers may leave priority initialized
+ *				to zero, to auto-set it to the default level.
+ *
+ * POWEROFF_PRIO_PLATFORM:	Intended to be used by platform-level handler.
+ *				Has lowest priority since device drivers are
+ *				expected to take over platform handler which
+ *				doesn't allow further callback chaining.
+ *
+ * POWEROFF_PRIO_DEFAULT:	Use this for default/generic handler.
+ *
+ * POWEROFF_PRIO_FIRMWARE:	Use this if handler uses firmware call.
+ *				Has highest priority since firmware is expected
+ *				to know best how to power-off hardware properly.
+ */
+#define POWEROFF_PRIO_RESERVED		0
+#define POWEROFF_PRIO_PLATFORM		1
+#define POWEROFF_PRIO_DEFAULT		128
+#define POWEROFF_PRIO_HIGH		192
+#define POWEROFF_PRIO_FIRMWARE		224
+
+enum poweroff_mode {
+	POWEROFF_NORMAL = 0,
+	POWEROFF_PREPARE,
+};
+
+/**
+ * struct power_off_data - Power-off callback argument
+ *
+ * @cb_data: Callback data.
+ */
+struct power_off_data {
+	void *cb_data;
+};
+
+/**
+ * struct power_off_prep_data - Power-off preparation callback argument
+ *
+ * @cb_data: Callback data.
+ */
+struct power_off_prep_data {
+	void *cb_data;
+};
+
+/**
+ * struct restart_data - Restart callback argument
+ *
+ * @cb_data: Callback data.
+ * @cmd: Restart command string.
+ * @stop_chain: Further lower priority callbacks won't be executed if set to
+ *		true. Can be changed within callback.
+ * @mode: Reboot mode ID.
+ */
+struct restart_data {
+	void *cb_data;
+	const char *cmd;
+	bool stop_chain;
+	enum reboot_mode mode;
+};
+
+/**
+ * struct reboot_prep_data - Reboot and shutdown preparation callback argument
+ *
+ * @cb_data: Callback data.
+ * @cmd: Restart command string.
+ * @stop_chain: Further lower priority callbacks won't be executed if set to
+ *		true. Can be changed within callback.
+ * @mode: Preparation mode ID.
+ */
+struct reboot_prep_data {
+	void *cb_data;
+	const char *cmd;
+	bool stop_chain;
+	enum reboot_prepare_mode mode;
+};
+
+struct sys_off_handler_private_data {
+	struct notifier_block power_off_nb;
+	struct notifier_block restart_nb;
+	struct notifier_block reboot_nb;
+	void (*platform_power_off_cb)(void);
+	void (*simple_power_off_cb)(void *data);
+	void *simple_power_off_cb_data;
+	bool registered;
+};
+
+/**
+ * struct sys_off_handler - System power-off and restart handler
+ *
+ * @cb_data: Pointer to user's data.
+ *
+ * @power_off_cb: Callback that powers off this machine. Inactive if NULL.
+ *
+ * @power_off_prepare_cb: Power-off preparation callback. All power-off
+ * preparation callbacks are invoked after @reboot_prepare_cb and before
+ * @power_off_cb. Inactive if NULL.
+ *
+ * @power_off_priority: Power-off callback priority, must be unique.
+ * Zero value is reserved and auto-reassigned to POWEROFF_PRIO_DEFAULT.
+ * Inactive if @power_off_cb is NULL.
+ *
+ * @power_off_chaining_allowed: Set to false if callback's execution should
+ * stop when @power_off_cb fails to power off this machine. True if further
+ * lower priority power-off callback should be executed. False is default
+ * value.
+ *
+ * @restart_cb: Callback that reboots this machine. Inactive if NULL.
+ *
+ * @restart_priority: Restart callback priority, must be unique. Zero value
+ * is reserved and auto-reassigned to RESTART_PRIO_DEFAULT. Inactive if
+ * @restart_cb is NULL.
+ *
+ * @restart_chaining_disallowed: Set to true if callback's execution should
+ * stop when @restart_cb fails to restart this machine. False if further
+ * lower priority restart callback should be executed. False is default
+ * value.
+ *
+ * @reboot_prepare_cb: Reboot/shutdown preparation callback. All reboot
+ * preparation callbacks are invoked before @restart_cb or @power_off_cb,
+ * depending on the mode. It's registered with register_reboot_notifier().
+ * The point is to remove boilerplate code from drivers which use this
+ * callback in conjunction with the restart/power-off callbacks.
+ *
+ * @reboot_priority: Reboot/shutdown preparation callback priority, doesn't
+ * need to be unique. Zero is default value. Inactive if @reboot_prepare_cb
+ * is NULL.
+ *
+ * @priv: Internal data. Shouldn't be touched.
+ *
+ * Describes power-off and restart handlers which are invoked by kernel
+ * to power off or restart this machine. Supports prioritized chaining for
+ * both restart and power-off handlers.
+ *
+ * Struct sys_off_handler can be static. Members of this structure must not be
+ * altered while handler is registered.
+ *
+ * Fill the structure members and pass it to @register_sys_off_handler().
+ */
+struct sys_off_handler {
+	void *cb_data;
+
+	void (*power_off_cb)(struct power_off_data *data);
+	void (*power_off_prepare_cb)(struct power_off_prep_data *data);
+	int power_off_priority;
+	bool power_off_chaining_allowed;
+
+	void (*restart_cb)(struct restart_data *data);
+	int restart_priority;
+	bool restart_chaining_disallowed;
+
+	void (*reboot_prepare_cb)(struct reboot_prep_data *data);
+	int reboot_priority;
+
+	const struct sys_off_handler_private_data priv;
+};
+
+int register_sys_off_handler(struct sys_off_handler *handler);
+int unregister_sys_off_handler(struct sys_off_handler *handler);
+
+int devm_register_sys_off_handler(struct device *dev,
+				  struct sys_off_handler *handler);
+
+int devm_register_prioritized_power_off_handler(struct device *dev,
+						int priority,
+						void (*callback)(void *data),
+						void *cb_data);
+
+/**
+ *	devm_register_simple_power_off_handler - Register simple power-off callback
+ *	@dev: Device that registers callback
+ *	@callback: Callback function
+ *	@cb_data: Callback's argument
+ *
+ *	Registers resource-managed power-off callback with default priority.
+ *	It will be invoked as last step of the power-off sequence. Further
+ *	lower priority callbacks won't be executed if this @callback fails.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+static inline int
+devm_register_simple_power_off_handler(struct device *dev,
+				       void (*callback)(void *data),
+				       void *cb_data)
+{
+	return devm_register_prioritized_power_off_handler(dev,
+							   POWEROFF_PRIO_DEFAULT,
+							   callback, cb_data);
+}
+
+int register_platform_power_off(void (*power_off)(void));
+int unregister_platform_power_off(void (*power_off)(void));
+
+int devm_register_prioritized_restart_handler(struct device *dev,
+					      int priority,
+					      void (*callback)(struct restart_data *data),
+					      void *cb_data);
+
+/**
+ *	devm_register_simple_restart_handler - Register simple restart callback
+ *	@dev: Device that registers callback
+ *	@callback: Callback function
+ *	@cb_data: Callback's argument
+ *
+ *	Registers resource-managed restart callback with default priority.
+ *	It will be invoked as a part of the restart sequence. Further
+ *	lower priority callback will be executed if this @callback fails.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+static inline int
+devm_register_simple_restart_handler(struct device *dev,
+				     void (*callback)(struct restart_data *data),
+				     void *cb_data)
+{
+	return devm_register_prioritized_restart_handler(dev,
+							 RESTART_PRIO_DEFAULT,
+							 callback, cb_data);
+}
+
+void do_kernel_power_off(void);
+
 /*
  * Architecture-specific implementations of sys_reboot commands.
  */
@@ -70,6 +326,7 @@ void kernel_restart_prepare(char *cmd);
 void kernel_restart(char *cmd);
 void kernel_halt(void);
 void kernel_power_off(void);
+bool kernel_can_power_off(void);
 
 extern int C_A_D; /* for sysctl */
 void ctrl_alt_del(void);
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index 9ed9b744876c..308bf3c1a9ce 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -666,7 +666,7 @@ static void power_down(void)
 		hibernation_platform_enter();
 		fallthrough;
 	case HIBERNATION_SHUTDOWN:
-		if (pm_power_off)
+		if (kernel_can_power_off())
 			kernel_power_off();
 		break;
 	}
diff --git a/kernel/reboot.c b/kernel/reboot.c
index f0e7b9c13f6b..4884204f9a31 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -294,6 +294,527 @@ void kernel_halt(void)
 }
 EXPORT_SYMBOL_GPL(kernel_halt);
 
+/*
+ *	Notifier list for kernel code which wants to be called
+ *	to power off the system.
+ */
+static BLOCKING_NOTIFIER_HEAD(power_off_handler_list);
+
+static void dummy_pm_power_off(void)
+{
+	/* temporary stub until pm_power_off() is gone, see more below */
+}
+
+static struct notifier_block *pm_power_off_nb;
+
+/**
+ *	register_power_off_handler - Register function to be called to power off
+ *				     the system
+ *	@nb: Info about handler function to be called
+ *	@nb->priority:	Handler priority. Handlers should follow the
+ *			following guidelines for setting priorities.
+ *			0:	Reserved
+ *			1:	Power-off handler of last resort,
+ *				with limited power-off capabilities
+ *			128:	Default power-off handler; use if no other
+ *				power-off handler is expected to be available,
+ *				and/or if power-off functionality is
+ *				sufficient to power-off the entire system
+ *			255:	Highest priority power-off handler, will
+ *				preempt all other power-off handlers
+ *
+ *	Registers a function with code to be called to power off the
+ *	system.
+ *
+ *	Registered functions will be called as last step of the power-off
+ *	sequence.
+ *
+ *	Registered functions are expected to power off the system immediately.
+ *	If more than one function is registered, the power-off handler priority
+ *	selects which function will be called first.
+ *
+ *	Power-off handlers are expected to be registered from non-architecture
+ *	code, typically from drivers. A typical use case would be a system
+ *	where power-off functionality is provided through a PMIC. Multiple
+ *	power-off handlers may exist; for example, one power-off handler might
+ *	turn off the entire system, while another only turns off part of
+ *	system. In such cases, the power-off handler which only disables part
+ *	of the hardware is expected to register with low priority to ensure
+ *	that it only runs if no other means to power off the system is
+ *	available.
+ *
+ *	Currently always returns zero, as blocking_notifier_chain_register()
+ *	always returns zero.
+ */
+static int register_power_off_handler(struct notifier_block *nb)
+{
+	int ret;
+
+	ret = blocking_notifier_chain_register(&power_off_handler_list, nb);
+	if (ret)
+		return ret;
+
+	/*
+	 * Handler must have unique priority. Otherwise call order order is
+	 * determined by registration order, which is unreliable.
+	 */
+	WARN(!blocking_notifier_has_unique_priority(&power_off_handler_list, nb),
+	     "power-off handler must have unique priority\n");
+
+	/*
+	 * Some drivers check whether pm_power_off was already installed.
+	 * Install dummy callback using new API to preserve old behaviour
+	 * for those drivers during period of transition to the new API.
+	 */
+	if (!pm_power_off) {
+		pm_power_off = dummy_pm_power_off;
+		pm_power_off_nb = nb;
+	}
+
+	return 0;
+}
+
+static int unregister_power_off_handler(struct notifier_block *nb)
+{
+	int ret;
+
+	if (nb == pm_power_off_nb) {
+		/*
+		 * Check whether somebody replaced pm_power_off behind
+		 * out back.
+		 */
+		if (!WARN_ON(pm_power_off != dummy_pm_power_off))
+			pm_power_off = NULL;
+
+		pm_power_off_nb = NULL;
+	}
+
+	ret = blocking_notifier_chain_unregister(&power_off_handler_list, nb);
+
+	return WARN_ON(ret);
+}
+
+static void devm_unregister_power_off_handler(void *data)
+{
+	struct notifier_block *nb = data;
+
+	unregister_power_off_handler(nb);
+}
+
+static int devm_register_power_off_handler(struct device *dev,
+					   struct notifier_block *nb)
+{
+	int err;
+
+	err = register_power_off_handler(nb);
+	if (err)
+		return err;
+
+	return devm_add_action_or_reset(dev, devm_unregister_power_off_handler,
+					nb);
+}
+
+static int sys_off_handler_power_off(struct notifier_block *nb,
+				     unsigned long mode, void *unused)
+{
+	struct power_off_prep_data prep_data = {};
+	struct sys_off_handler_private_data *priv;
+	struct power_off_data data = {};
+	struct sys_off_handler *h;
+	int ret = NOTIFY_DONE;
+
+	priv = container_of(nb, struct sys_off_handler_private_data, power_off_nb);
+	h = container_of(priv, struct sys_off_handler, priv);
+	prep_data.cb_data = h->cb_data;
+	data.cb_data = h->cb_data;
+
+	switch (mode) {
+	case POWEROFF_NORMAL:
+		if (h->power_off_cb)
+			h->power_off_cb(&data);
+
+		if (priv->simple_power_off_cb)
+			priv->simple_power_off_cb(priv->simple_power_off_cb_data);
+
+		if (priv->platform_power_off_cb)
+			priv->platform_power_off_cb();
+
+		if (!h->power_off_chaining_allowed)
+			ret = NOTIFY_STOP;
+
+		break;
+
+	case POWEROFF_PREPARE:
+		if (h->power_off_prepare_cb)
+			h->power_off_prepare_cb(&prep_data);
+
+		break;
+
+	default:
+		unreachable();
+	}
+
+	return ret;
+}
+
+static int sys_off_handler_restart(struct notifier_block *nb,
+				   unsigned long mode, void *cmd)
+{
+	struct sys_off_handler_private_data *priv;
+	struct restart_data data = {};
+	struct sys_off_handler *h;
+
+	priv = container_of(nb, struct sys_off_handler_private_data, restart_nb);
+	h = container_of(priv, struct sys_off_handler, priv);
+
+	data.stop_chain = h->restart_chaining_disallowed;
+	data.cb_data = h->cb_data;
+	data.mode = mode;
+	data.cmd = cmd;
+
+	h->restart_cb(&data);
+
+	return data.stop_chain ? NOTIFY_STOP : NOTIFY_DONE;
+}
+
+static int sys_off_handler_reboot(struct notifier_block *nb,
+				  unsigned long mode, void *cmd)
+{
+	struct sys_off_handler_private_data *priv;
+	struct reboot_prep_data data = {};
+	struct sys_off_handler *h;
+
+	priv = container_of(nb, struct sys_off_handler_private_data, reboot_nb);
+	h = container_of(priv, struct sys_off_handler, priv);
+
+	data.cb_data = h->cb_data;
+	data.stop_chain = false;
+	data.mode = mode;
+	data.cmd = cmd;
+
+	h->reboot_prepare_cb(&data);
+
+	return data.stop_chain ? NOTIFY_STOP : NOTIFY_DONE;
+}
+
+static struct sys_off_handler_private_data *
+sys_off_handler_private_data(struct sys_off_handler *handler)
+{
+	return (struct sys_off_handler_private_data *)&handler->priv;
+}
+
+/**
+ *	devm_register_sys_off_handler - Register system power-off/restart handler
+ *	@dev: Device that registers handler
+ *	@handler: System-off handler
+ *
+ *	Registers handler that will be called as last step of the power-off
+ *	and restart sequences.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int register_sys_off_handler(struct sys_off_handler *handler)
+{
+	struct sys_off_handler_private_data *priv;
+	int err, priority;
+
+	priv = sys_off_handler_private_data(handler);
+
+	/* sanity-check whether handler is registered twice */
+	if (WARN_ON(priv->registered))
+		return -EBUSY;
+
+	if (handler->power_off_cb || handler->power_off_prepare_cb) {
+		if (handler->power_off_priority == POWEROFF_PRIO_RESERVED)
+			priority = POWEROFF_PRIO_DEFAULT;
+		else
+			priority = handler->power_off_priority;
+
+		priv->power_off_nb.notifier_call = sys_off_handler_power_off;
+		priv->power_off_nb.priority = priority;
+
+		err = register_power_off_handler(&priv->power_off_nb);
+		if (err)
+			goto reset_sys_off_handler;
+	}
+
+	if (handler->restart_cb) {
+		if (handler->restart_priority == RESTART_PRIO_RESERVED)
+			priority = RESTART_PRIO_DEFAULT;
+		else
+			priority = handler->restart_priority;
+
+		priv->restart_nb.notifier_call = sys_off_handler_restart;
+		priv->restart_nb.priority = priority;
+
+		err = register_restart_handler(&priv->restart_nb);
+		if (err)
+			goto unreg_power_off_handler;
+	}
+
+	if (handler->reboot_prepare_cb) {
+		priv->reboot_nb.notifier_call = sys_off_handler_reboot;
+		priv->reboot_nb.priority = handler->reboot_priority;
+
+		err = register_reboot_notifier(&priv->reboot_nb);
+		if (err)
+			goto unreg_restart_handler;
+	}
+
+	priv->registered = true;
+
+	return 0;
+
+unreg_restart_handler:
+	if (handler->restart_cb)
+		unregister_restart_handler(&priv->restart_nb);
+
+unreg_power_off_handler:
+	if (handler->power_off_cb)
+		unregister_power_off_handler(&priv->power_off_nb);
+
+reset_sys_off_handler:
+	memset(priv, 0, sizeof(*priv));
+
+	return err;
+}
+EXPORT_SYMBOL(register_sys_off_handler);
+
+/**
+ *	unregister_sys_off_handler - Unregister system power-off/restart handler
+ *	@handler: System-off handler
+ *
+ *	Unregisters sys-off handler. Does nothing and returns zero if handler
+ *	is NULL.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int unregister_sys_off_handler(struct sys_off_handler *handler)
+{
+	struct sys_off_handler_private_data *priv;
+	int err = 0;
+
+	if (!handler)
+		return 0;
+
+	priv = sys_off_handler_private_data(handler);
+
+	/* sanity-check whether handler is unregistered twice */
+	if (WARN_ON(!priv->registered))
+		return -EINVAL;
+
+	if (handler->reboot_prepare_cb)
+		err |= unregister_reboot_notifier(&priv->reboot_nb);
+
+	if (handler->restart_cb)
+		err |= unregister_restart_handler(&priv->restart_nb);
+
+	if (handler->power_off_cb)
+		err |= unregister_power_off_handler(&priv->power_off_nb);
+
+	memset(priv, 0, sizeof(*priv));
+
+	return err ? -EINVAL : 0;
+}
+EXPORT_SYMBOL(unregister_sys_off_handler);
+
+static void devm_unregister_sys_off_handler(void *data)
+{
+	struct sys_off_handler *handler = data;
+
+	unregister_sys_off_handler(handler);
+}
+
+/**
+ *	devm_register_sys_off_handler - Register system power-off/restart handler
+ *	@dev: Device that registers handler
+ *	@handler: System-off handler
+ *
+ *	Resource-managed variant of register_sys_off_handler().
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int devm_register_sys_off_handler(struct device *dev,
+				  struct sys_off_handler *handler)
+{
+	int err;
+
+	err = register_sys_off_handler(handler);
+	if (err)
+		return err;
+
+	return devm_add_action_or_reset(dev, devm_unregister_sys_off_handler,
+					handler);
+}
+EXPORT_SYMBOL(devm_register_sys_off_handler);
+
+/**
+ *	devm_register_prioritized_power_off_handler - Register prioritized power-off callback
+ *	@dev: Device that registers callback
+ *	@priority: Callback's priority
+ *	@callback: Callback function
+ *	@cb_data: Callback's argument
+ *
+ *	Registers resource-managed power-off callback with a given priority.
+ *	It will be called as last step of the power-off sequence. Further
+ *	lower priority callbacks won't be executed if this @callback fails.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int devm_register_prioritized_power_off_handler(struct device *dev,
+						int priority,
+						void (*callback)(void *data),
+						void *cb_data)
+{
+	struct sys_off_handler_private_data *priv;
+	struct sys_off_handler *handler;
+
+	handler = devm_kzalloc(dev, sizeof(*handler), GFP_KERNEL);
+	if (!handler)
+		return -ENOMEM;
+
+	priv = sys_off_handler_private_data(handler);
+
+	priv->power_off_nb.notifier_call = sys_off_handler_power_off;
+	priv->power_off_nb.priority = priority;
+	priv->simple_power_off_cb_data = cb_data;
+	priv->simple_power_off_cb = callback;
+
+	return devm_register_power_off_handler(dev, &priv->power_off_nb);
+}
+EXPORT_SYMBOL(devm_register_prioritized_power_off_handler);
+
+/**
+ *	devm_register_prioritized_restart_handler - Register prioritized restart callback
+ *	@dev: Device that registers callback
+ *	@priority: Callback's priority
+ *	@callback: Callback function
+ *	@cb_data: Callback's argument
+ *
+ *	Registers resource-managed restart callback with a given priority.
+ *	It will be called as a part of the restart sequence. Further
+ *	lower priority callback will be executed if this @callback fails.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int devm_register_prioritized_restart_handler(struct device *dev,
+					      int priority,
+					      void (*callback)(struct restart_data *data),
+					      void *cb_data)
+{
+	struct sys_off_handler *handler;
+
+	handler = devm_kzalloc(dev, sizeof(*handler), GFP_KERNEL);
+	if (!handler)
+		return -ENOMEM;
+
+	handler->restart_priority = priority;
+	handler->restart_cb = callback;
+	handler->cb_data = cb_data;
+
+	return devm_register_sys_off_handler(dev, handler);
+}
+EXPORT_SYMBOL(devm_register_prioritized_restart_handler);
+
+static struct sys_off_handler platform_power_off_handler = {
+	.priv = {
+		.power_off_nb = {
+			.notifier_call = sys_off_handler_power_off,
+			.priority = POWEROFF_PRIO_PLATFORM,
+		},
+	},
+};
+
+static DEFINE_SPINLOCK(platform_power_off_lock);
+
+/**
+ *	register_platform_power_off - Register platform-level power-off callback
+ *	@power_off: Power-off callback
+ *
+ *	Registers power-off callback that will be called as last step
+ *	of the power-off sequence. This callback is expected to be invoked
+ *	for the last resort. Further lower priority callbacks won't be
+ *	executed if @power_off fails. Only one platform power-off callback
+ *	is allowed to be registered at a time.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int register_platform_power_off(void (*power_off)(void))
+{
+	struct sys_off_handler_private_data *priv;
+	int err = 0;
+
+	priv = sys_off_handler_private_data(&platform_power_off_handler);
+
+	spin_lock(&platform_power_off_lock);
+	if (priv->platform_power_off_cb)
+		err = -EBUSY;
+	else
+		priv->platform_power_off_cb = power_off;
+	spin_unlock(&platform_power_off_lock);
+
+	if (WARN_ON(err))
+		return err;
+
+	return register_power_off_handler(&priv->power_off_nb);
+}
+EXPORT_SYMBOL_GPL(register_platform_power_off);
+
+/**
+ *	unregister_platform_power_off - Unregister platform-level power-off callback
+ *	@power_off: Power-off callback
+ *
+ *	Unregisters previously registered platform power-off callback.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int unregister_platform_power_off(void (*power_off)(void))
+{
+	struct sys_off_handler_private_data *priv;
+	int ret;
+
+	priv = sys_off_handler_private_data(&platform_power_off_handler);
+
+	if (WARN_ON(priv->platform_power_off_cb != power_off))
+		return -EINVAL;
+
+	ret = unregister_power_off_handler(&priv->power_off_nb);
+	priv->platform_power_off_cb = NULL;
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(unregister_platform_power_off);
+
+/**
+ *	do_kernel_power_off - Execute kernel power-off handler call chain
+ *
+ *	Calls functions registered with register_power_off_handler.
+ *
+ *	Expected to be called as last step of the power-off sequence.
+ *
+ *	Powers off the system immediately if a power-off handler function has
+ *	been registered. Otherwise does nothing.
+ */
+void do_kernel_power_off(void)
+{
+	/* legacy pm_power_off() is unchained and has highest priority */
+	if (pm_power_off && pm_power_off != dummy_pm_power_off)
+		return pm_power_off();
+
+	blocking_notifier_call_chain(&power_off_handler_list, POWEROFF_NORMAL,
+				     NULL);
+}
+
+static void do_kernel_power_off_prepare(void)
+{
+	/* legacy pm_power_off_prepare() is unchained and has highest priority */
+	if (pm_power_off_prepare)
+		return pm_power_off_prepare();
+
+	blocking_notifier_call_chain(&power_off_handler_list, POWEROFF_PREPARE,
+				     NULL);
+}
+
 /**
  *	kernel_power_off - power_off the system
  *
@@ -302,8 +823,7 @@ EXPORT_SYMBOL_GPL(kernel_halt);
 void kernel_power_off(void)
 {
 	kernel_shutdown_prepare(SYSTEM_POWER_OFF);
-	if (pm_power_off_prepare)
-		pm_power_off_prepare();
+	do_kernel_power_off_prepare();
 	migrate_to_reboot_cpu();
 	syscore_shutdown();
 	pr_emerg("Power down\n");
@@ -312,6 +832,16 @@ void kernel_power_off(void)
 }
 EXPORT_SYMBOL_GPL(kernel_power_off);
 
+bool kernel_can_power_off(void)
+{
+	if (!pm_power_off &&
+	    blocking_notifier_call_chain_is_empty(&power_off_handler_list))
+		return false;
+
+	return true;
+}
+EXPORT_SYMBOL_GPL(kernel_can_power_off);
+
 DEFINE_MUTEX(system_transition_mutex);
 
 /*
@@ -353,7 +883,7 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
 	/* Instead of trying to make the power_off code look like
 	 * halt when pm_power_off is not set do it the easy way.
 	 */
-	if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off)
+	if (cmd == LINUX_REBOOT_CMD_POWER_OFF && !kernel_can_power_off())
 		cmd = LINUX_REBOOT_CMD_HALT;
 
 	mutex_lock(&system_transition_mutex);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222879.385330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspK-0005bz-4t; Mon, 08 Nov 2021 00:47:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222879.385330; Mon, 08 Nov 2021 00:47:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspJ-0005bP-UY; Mon, 08 Nov 2021 00:47:57 +0000
Received: by outflank-mailman (input) for mailman id 222879;
 Mon, 08 Nov 2021 00:47:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspJ-0004R0-2p
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:47:57 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 836ce4f1-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:47:56 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id b40so3076245lfv.10
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:47:56 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.47.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:47:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 836ce4f1-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=xS83fHvJX20ICn8zHYRDKvqQ1GY72vd2riIHxwkjweU=;
        b=KpydubZgLJ3vuCT00hrCdbf3OtAnjru1YwdDJxo9+hC27tQN3Q4KiomzYSDJMCZXbA
         EhaYZwalwwy91+aZLY1TS0S40bR84eElruKYesdGlVKFC/aUwPezwIPn/067lWyDW0+Z
         x4XmqT3PESi2/Nn4WIINCY94V/zeTchenrXpu2fqnWvEylnT7LN71F2WHWj7NjlVp0tD
         ugoKO0gc6fQ1WUgdslo/PfvFMxmzh/vxeeDZA6/emihAeEIqzA/7Lk07cW3q8vRXpO5g
         t/bVMWqe23nOV5HEFivxqx8tKkAzcIdw5EiLLiV/QpkyUezErBQd+Ycn225L15v7txub
         fGhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=xS83fHvJX20ICn8zHYRDKvqQ1GY72vd2riIHxwkjweU=;
        b=IbnzZolLb6TyGalImr++BgT4uNUHOaVG1KK/2ebvAWa5con1qocGtOmLx0x1nHThlU
         e+Sm7qwZX/+ZSCaKzM2WtiA/1kTci/Koh6u4e/J+rDfM3h5RlEhDz2QU7wHvxfs5H+L4
         kSQHgVvvyC1G/UIKMCUfeLuF6SCmpJfKOtPORUqmsXFyBTdkU07sY9ugGNvCi89w1uNq
         Wf0VrhmO2vP0BBXga9SMQI0x/ULljno8LWoVDRMT4svvflKZEkhPtKmtvmPBWabZ08in
         eeAXLnhDHqtE4LW+WHb52fFMWBTlKD7FMeCPCB7gbFlBjmFCQNXiuwWJeYQnvHo/90qF
         seKQ==
X-Gm-Message-State: AOAM533hEweRl4jzU6xQBOJGH9hcvpHXAMcwMb7+ph2YlTDx4bii1Tl4
	HiqsHDPgRXmIIOwiV5vgHsg=
X-Google-Smtp-Source: ABdhPJxCboLcXN9lEOmhNp5QiL1yAnh5Fr04KXxv3nzMPaKilPbSu8P/FkJk3gpH04kDYFe9UJDOXg==
X-Received: by 2002:a05:6512:1323:: with SMTP id x35mr74261803lfu.613.1636332476232;
        Sun, 07 Nov 2021 16:47:56 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 05/25] reboot: Warn if restart handler has duplicated priority
Date: Mon,  8 Nov 2021 03:45:04 +0300
Message-Id: <20211108004524.29465-6-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add sanity check which ensures that there are no two restart handlers
registered with the same priority. Normally it's a direct sign of a
problem if two handlers use the same priority.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 kernel/reboot.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/kernel/reboot.c b/kernel/reboot.c
index 6bcc5d6a6572..e6659ae329f1 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -182,7 +182,20 @@ static ATOMIC_NOTIFIER_HEAD(restart_handler_list);
  */
 int register_restart_handler(struct notifier_block *nb)
 {
-	return atomic_notifier_chain_register(&restart_handler_list, nb);
+	int ret;
+
+	ret = atomic_notifier_chain_register(&restart_handler_list, nb);
+	if (ret)
+		return ret;
+
+	/*
+	 * Handler must have unique priority. Otherwise call order is
+	 * determined by registration order, which is unreliable.
+	 */
+	WARN(!atomic_notifier_has_unique_priority(&restart_handler_list, nb),
+	     "restart handler must have unique priority\n");
+
+	return 0;
 }
 EXPORT_SYMBOL(register_restart_handler);
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222877.385309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspI-00059X-GT; Mon, 08 Nov 2021 00:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222877.385309; Mon, 08 Nov 2021 00:47:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspI-00059O-Bo; Mon, 08 Nov 2021 00:47:56 +0000
Received: by outflank-mailman (input) for mailman id 222877;
 Mon, 08 Nov 2021 00:47:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspG-0004R0-Mg
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:47:54 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 814b68df-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:47:53 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id bu18so32608955lfb.0
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:47:52 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.47.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:47:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 814b68df-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=hKe22x9bX8JCg83Zw5KeGH71BwPAfgMBPhF5RAtnzGg=;
        b=YiFp3f8cO0Vr3HYEcxvLKaCWrUmOHjq9yYYfO7Hqun88GeI6p81d1YMIv5GgLPP+/N
         Guy8nu7oxvAy0q0qyx/9QoEA0c9N6JQOaCaMNwxlZE6n+rBzRQ6S6brhC7L4R5ueVD0E
         0lqXczvgEtFMk6LXqffce13U4i49V4j0Kn57zFVgpRaTjAduIVdOq617jQwEaVBHy3Eu
         EQ4A8/OrH6y5w2erSbQwCOheLeexVl/UouL8csnR+WVhns+gkFS6M2gvrwiPdoODOchq
         4d0z7ZZ7OBQsZoGbZI8N0S5/yiMmZKJMmdifL+HN3VdALCAmD2XTwM4PqgkUlLwGX6XG
         rgew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=hKe22x9bX8JCg83Zw5KeGH71BwPAfgMBPhF5RAtnzGg=;
        b=3+2lht8onOef3lmIxo0XstXg064nhkI6NfOHe/xBD8A0KEwEcsiy4GczIjbdLjsrlS
         0pAH2dS8KmTtqy4mYd0bZacajQ1/J0bFbUBDGUBd+n629XsABzxVSWPEyIP+cY8FTOIN
         3XTw1EDWdqzDaGK0+DwXVC5802uGl9szqUViIq46M+7oFp7Ysd6F/K/lTzygEfI+RSmu
         9YP79QXVYVJFjHdKFl4cbNn9ffoxWEqBzsxLEjLBU+DTuQDwPaxWBKgINhkx9vRCFBIN
         bJuIXRyWsW1PatAWvq/Q6RUmzrtwB/9XEtAkBYgXFg319BrjUn6tZxpE9kY8N9mJgbAv
         Z7Sw==
X-Gm-Message-State: AOAM531olDy4VmOwTKBqwlajqJ6kqkog/Ccigu6sxWwutbypYgTQgpSM
	inf8lebxIE+wmVPUsMX3VJI=
X-Google-Smtp-Source: ABdhPJw/Jh+Tn85DS/9xfc19zQpYugwW2GCD3r9uHKbGfYK5lzV64P71fIEm1/wTYHhDjmsq/VCY5Q==
X-Received: by 2002:ac2:4e6b:: with SMTP id y11mr70299237lfs.439.1636332472632;
        Sun, 07 Nov 2021 16:47:52 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 03/25] notifier: Add atomic/blocking_notifier_has_unique_priority()
Date: Mon,  8 Nov 2021 03:45:02 +0300
Message-Id: <20211108004524.29465-4-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add atomic/blocking_notifier_has_unique_priority() helpers which return
true if given handler has unique priority.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/notifier.h |  5 +++
 kernel/notifier.c        | 69 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+)

diff --git a/include/linux/notifier.h b/include/linux/notifier.h
index 924c9d7c8e73..2c4036f225e1 100644
--- a/include/linux/notifier.h
+++ b/include/linux/notifier.h
@@ -175,6 +175,11 @@ int raw_notifier_call_chain_robust(struct raw_notifier_head *nh,
 
 bool blocking_notifier_call_chain_is_empty(struct blocking_notifier_head *nh);
 
+bool atomic_notifier_has_unique_priority(struct atomic_notifier_head *nh,
+		struct notifier_block *nb);
+bool blocking_notifier_has_unique_priority(struct blocking_notifier_head *nh,
+		struct notifier_block *nb);
+
 #define NOTIFY_DONE		0x0000		/* Don't care */
 #define NOTIFY_OK		0x0001		/* Suits me */
 #define NOTIFY_STOP_MASK	0x8000		/* Don't call further */
diff --git a/kernel/notifier.c b/kernel/notifier.c
index b20cb7b9b1f0..7a325b742104 100644
--- a/kernel/notifier.c
+++ b/kernel/notifier.c
@@ -122,6 +122,19 @@ static int notifier_call_chain_robust(struct notifier_block **nl,
 	return ret;
 }
 
+static int notifier_has_unique_priority(struct notifier_block **nl,
+					struct notifier_block *n)
+{
+	while (*nl && (*nl)->priority >= n->priority) {
+		if ((*nl)->priority == n->priority && *nl != n)
+			return false;
+
+		nl = &((*nl)->next);
+	}
+
+	return true;
+}
+
 /*
  *	Atomic notifier chain routines.  Registration and unregistration
  *	use a spinlock, and call_chain is synchronized by RCU (no locks).
@@ -203,6 +216,30 @@ int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
 EXPORT_SYMBOL_GPL(atomic_notifier_call_chain);
 NOKPROBE_SYMBOL(atomic_notifier_call_chain);
 
+/**
+ *	atomic_notifier_has_unique_priority - Checks whether notifier's priority is unique
+ *	@nh: Pointer to head of the atomic notifier chain
+ *	@n: Entry in notifier chain to check
+ *
+ *	Checks whether there is another notifier in the chain with the same priority.
+ *	Must be called in process context.
+ *
+ *	Returns true if priority is unique, false otherwise.
+ */
+bool atomic_notifier_has_unique_priority(struct atomic_notifier_head *nh,
+		struct notifier_block *n)
+{
+	unsigned long flags;
+	bool ret;
+
+	spin_lock_irqsave(&nh->lock, flags);
+	ret = notifier_has_unique_priority(&nh->head, n);
+	spin_unlock_irqrestore(&nh->lock, flags);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(atomic_notifier_has_unique_priority);
+
 /*
  *	Blocking notifier chain routines.  All access to the chain is
  *	synchronized by an rwsem.
@@ -336,6 +373,38 @@ bool blocking_notifier_call_chain_is_empty(struct blocking_notifier_head *nh)
 }
 EXPORT_SYMBOL_GPL(blocking_notifier_call_chain_is_empty);
 
+/**
+ *	blocking_notifier_has_unique_priority - Checks whether notifier's priority is unique
+ *	@nh: Pointer to head of the blocking notifier chain
+ *	@n: Entry in notifier chain to check
+ *
+ *	Checks whether there is another notifier in the chain with the same priority.
+ *	Must be called in process context.
+ *
+ *	Returns true if priority is unique, false otherwise.
+ */
+bool blocking_notifier_has_unique_priority(struct blocking_notifier_head *nh,
+		struct notifier_block *n)
+{
+	bool ret;
+
+	/*
+	 * This code gets used during boot-up, when task switching is
+	 * not yet working and interrupts must remain disabled. At such
+	 * times we must not call down_read().
+	 */
+	if (system_state != SYSTEM_BOOTING)
+		down_read(&nh->rwsem);
+
+	ret = notifier_has_unique_priority(&nh->head, n);
+
+	if (system_state != SYSTEM_BOOTING)
+		up_read(&nh->rwsem);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(blocking_notifier_has_unique_priority);
+
 /*
  *	Raw notifier chain routines.  There is no protection;
  *	the caller must provide it.  Use at your own risk!
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222883.385369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspS-0006ts-Di; Mon, 08 Nov 2021 00:48:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222883.385369; Mon, 08 Nov 2021 00:48:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspS-0006tF-3w; Mon, 08 Nov 2021 00:48:06 +0000
Received: by outflank-mailman (input) for mailman id 222883;
 Mon, 08 Nov 2021 00:48:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspQ-0004R0-Oe
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:04 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87b2cf1f-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:03 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id 1so26205313ljv.2
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:03 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87b2cf1f-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=4G0wXMIRKtQjgiQjhPPTWIJTonbxBMvj833mzQfGVdU=;
        b=pZM4dyJLpZuQQN9MKxqxWh2ay9Jz9HrL1fmeqS9nNncTMinNNbkFifMYemIkP10ewq
         aOcgRrY2mflO6w4CU4DWVtb4NJf8LJ09cb+4I8lu5CAdpcgFHZOWypryMKjG6pxQk30v
         HHxKdMnWsewf0Lr72sA/4D7j/+oVMAz5NIT6Dx+WfODzgJWcHLPwHQK2bS9nspE9HbYj
         KH8pWjHJhFKX5cXseGASxtgst4Xb08IYLLh7demjjXrnAtHZBLUGzPWDO0sopO7ORAdB
         IyKha6Jx2vHEF711na9BlaXxWi+SIASVGoKUbBydRwNdpvlEee/heWG+rY08IofMyDYw
         LNMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=4G0wXMIRKtQjgiQjhPPTWIJTonbxBMvj833mzQfGVdU=;
        b=rUhy25YBhGhDPY7hKEDRg0C7nR4bjq+mIRJoKt1+R74MgMBGT+U5tRMivuGPzIzBve
         zzRWOLvE7aK6oHQJgDsP5QYTd7Cv8qww6Mrvv0cthVum164b+fXQ3/6xBNjM3I9YABm+
         e5B/AApoJMya1Uvtd+iAPL75LBBJtV+/WmhbXcEOi8ApSV/cC1O0YjwBtMatjMzORIzb
         Pcc9FQ+kpWoTdQSDev6J7QBRRxTgTpUMUsovtD9Ym6KZIipIoLqeyy37cJdPyHBVk2fV
         RDIJPmAtk4BJBUvKAhzIS1QvlZhYUGp+YhNG3ISVN8bJKKYKnIrgpi6UDUkY6OG8FBBV
         n7XQ==
X-Gm-Message-State: AOAM530FdKsAgiOAQ51E9SbH14rPIyZDy6JiwME1AhnovDurf3W/cbDY
	rF2PeKtxGSfodmF5qkgY6l0=
X-Google-Smtp-Source: ABdhPJzQFKfMNiNYXj5yRO7/OE5m8N3DghG1lL0tpJVZgkyYCLISgT4TNAK4FZaulcFD/pTPpnDcrA==
X-Received: by 2002:a05:651c:1102:: with SMTP id d2mr11428220ljo.52.1636332483418;
        Sun, 07 Nov 2021 16:48:03 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 09/25] ARM: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:08 +0300
Message-Id: <20211108004524.29465-10-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/arm/kernel/reboot.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c
index 3044fcb8d073..2cb943422554 100644
--- a/arch/arm/kernel/reboot.c
+++ b/arch/arm/kernel/reboot.c
@@ -116,9 +116,7 @@ void machine_power_off(void)
 {
 	local_irq_disable();
 	smp_send_stop();
-
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 }
 
 /*
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222884.385381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspU-0007JB-8V; Mon, 08 Nov 2021 00:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222884.385381; Mon, 08 Nov 2021 00:48:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspT-0007HR-Pa; Mon, 08 Nov 2021 00:48:07 +0000
Received: by outflank-mailman (input) for mailman id 222884;
 Mon, 08 Nov 2021 00:48:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspS-0004MH-4D
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:06 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 88cc7216-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:48:05 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id b40so3076661lfv.10
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:05 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88cc7216-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=WLlXRmIj/zMVA0EiitKjc0V06oQPoMgvuV0WtFcoWEk=;
        b=H+uYC49dEjsHXqh8KjNtZs3ncLNuFdjuFGV7oRJa8IcUbOTh4rgkLFb7DBp88gShw2
         zYvh0zw5iSNGUiU1OYmfWOtmg2IDURIlyZp7DHy5riU2+lvrrppodyc822EM6fljmTUm
         0Krm+uv0X3ApPPhKiqBU3K8dWJVCDNZF+sadpYMeradsXhAynNY6RMShhE3ZI81hAGDL
         W15dDd5J4VvsLTGFr+bOqthsJObLlO7pTEkL8HfwppP5Ae4FzVmtvRUUtrW+yUHR7nyz
         Iw+UPoCdyZnTzm8hJEM+14oo+6u93uh0bdNvsyzcy9lNzz4qw54Q8qB66Iha1CL6iRDZ
         Lx2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=WLlXRmIj/zMVA0EiitKjc0V06oQPoMgvuV0WtFcoWEk=;
        b=vvx3hXIArYsmuCyOdhXaRUNTGVeSEd1j72HnWIaLrNI2eCjkwvt/O+PXMYj894Q+xj
         hqNnW+IO+QUTmVTEgQnQvOVfHk97BNCxqemMvexdAJyeQiTXC7oq3TeWH9f9T5uuLALs
         4dwYnzNmJ7PApPuxjLhJaMPdM3xoOZNBHu2FFh9+xi+EKvIWNpntDtvCeyJu/AlylOEu
         phJGZNIPgqUFHNIxVDk7EOeD+RDOC2DSAZp84ipy6zZQgBHkAQmFzCt0fg2Ssjr9WiIO
         y8P6F6E0g1yFOBGlBjnV2NpD0EFQRpqRjAAMl2BEQt61b/6rEP6mqkvn4JS6hniTsMhP
         6qGw==
X-Gm-Message-State: AOAM5309kPh00x2OSE3dLukPg0smCeAsBW8hH47LHUXRh79lbbUKsmGj
	ahEeAnRSYEn6HBe5+GNEg6o=
X-Google-Smtp-Source: ABdhPJw84ic5t+UCFbDuTh1KSNG4JWw1g+e5zhgjImye0iV+bKnXDlPlOLHIlmqdsqHdzJ3HYwGGrQ==
X-Received: by 2002:a19:c754:: with SMTP id x81mr26382574lff.70.1636332485172;
        Sun, 07 Nov 2021 16:48:05 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 10/25] csky: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:09 +0300
Message-Id: <20211108004524.29465-11-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Guo Ren <guoren@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/csky/kernel/power.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/csky/kernel/power.c b/arch/csky/kernel/power.c
index 923ee4e381b8..86ee202906f8 100644
--- a/arch/csky/kernel/power.c
+++ b/arch/csky/kernel/power.c
@@ -9,16 +9,14 @@ EXPORT_SYMBOL(pm_power_off);
 void machine_power_off(void)
 {
 	local_irq_disable();
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 	asm volatile ("bkpt");
 }
 
 void machine_halt(void)
 {
 	local_irq_disable();
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 	asm volatile ("bkpt");
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222885.385390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspW-0007jr-My; Mon, 08 Nov 2021 00:48:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222885.385390; Mon, 08 Nov 2021 00:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspV-0007fu-R1; Mon, 08 Nov 2021 00:48:09 +0000
Received: by outflank-mailman (input) for mailman id 222885;
 Mon, 08 Nov 2021 00:48:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspT-0004R0-SD
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:07 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89d7243c-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:07 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id s24so26178968lji.12
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:07 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89d7243c-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=hKgqav8a8uS+JOYHQI8KBeK4UU43xCMXoqbNcSGFyUw=;
        b=AwJ4FjhZ4uu7Jeadgfe6E5PAdvbICZi/KQGBT5wtWDtpLQCHSuyQii3g8r6pSQIUa2
         LLP/5Ap/Hl0WEPh7xDoz4PaKuVu8acWl/Lrp3owoIRv8bnEjLc6DrINyfILK4sLPa4FA
         TzZracA1tQgQQmzzAozP9oEbAedvpeZNvOmd4r0/GU+RMsqZ8usg0Z1d6BGb5kC/Q8Oi
         092NDC0niu668uYvxs3HRB8I3gSXOvRJLX3+MnU/iBw4aXQabK5GKn4kFRVxx/BZQrgY
         SPfzDlTHPyUyIQ2h7FurvVltaeMoh7kLT95TlZb5fI4FdYpIu9Nno84DCMbZIPC5f3Sq
         OG2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=hKgqav8a8uS+JOYHQI8KBeK4UU43xCMXoqbNcSGFyUw=;
        b=hIFlexVU9G6KsRjiTZRq3JvYSLc35XeALsWDYw/qUDR7MqL5lD3x/omA/AegRAPpH3
         oPIB6mWOVcKUQSOtv8GqTlmFgL/CsOkZ/bY6vYen0bISNiMa98piDCEmLzOxliWBUciA
         ewhsUqCnPSl+V8wxAjgLbcUne32SF04MRqQGlnOc0I0SONr8Pb3YVxf6/8ki7k1dWz/0
         duoP/Tf+fHqUyrhwsnZQGccULmCbLyMxSAZ7GDX52Cbmp7YcvoMLaTM0tja3XDzAEv93
         owHfhPT68Af54iBWSAGzEHWhuk/uTYn+MMo8o+p2Sm98vJCqKpvM2AK5rP+XXfu7TZ7H
         eYtQ==
X-Gm-Message-State: AOAM531rIScQxO9eiKb5Ft5HvEiyYD856LSRQnG6doZkZe6fipZGBF1w
	fqfNEBqENPmClhux7P0mjfo=
X-Google-Smtp-Source: ABdhPJwsYRcvq5lWlknwDGI1giubbuaVFPAkTxLB10aRQ7aivLUihqphCNvbqZqfSKq7V2Eu9b9sFQ==
X-Received: by 2002:a2e:b88b:: with SMTP id r11mr55138383ljp.474.1636332487004;
        Sun, 07 Nov 2021 16:48:07 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 11/25] riscv: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:10 +0300
Message-Id: <20211108004524.29465-12-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Palmer Dabbelt <palmer@dabbelt.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/riscv/kernel/reset.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/arch/riscv/kernel/reset.c b/arch/riscv/kernel/reset.c
index 9c842c41684a..912288572226 100644
--- a/arch/riscv/kernel/reset.c
+++ b/arch/riscv/kernel/reset.c
@@ -23,16 +23,12 @@ void machine_restart(char *cmd)
 
 void machine_halt(void)
 {
-	if (pm_power_off != NULL)
-		pm_power_off();
-	else
-		default_power_off();
+	do_kernel_power_off();
+	default_power_off();
 }
 
 void machine_power_off(void)
 {
-	if (pm_power_off != NULL)
-		pm_power_off();
-	else
-		default_power_off();
+	do_kernel_power_off();
+	default_power_off();
 }
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222889.385401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspY-0008Gd-HC; Mon, 08 Nov 2021 00:48:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222889.385401; Mon, 08 Nov 2021 00:48:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspX-0008Bv-RL; Mon, 08 Nov 2021 00:48:11 +0000
Received: by outflank-mailman (input) for mailman id 222889;
 Mon, 08 Nov 2021 00:48:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspV-0004R0-Hh
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:09 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8adff6c1-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:09 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id x27so32482170lfu.5
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:08 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8adff6c1-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=NEBfa1fMA+x5w4qEnSCEpCMUhXzxF+K5pq5bQ4oFCgw=;
        b=Ql+iItYP1Svp00bziCX4qxrEeyzbUlmRQXTwLpVTtXcu3VtuEFuJo7lbzaIda8d8rr
         KqXIx3zpbGsyJmWEWh9sBWE/wusBL5Oilk0c/94PseLHfeTAwkrX6NgFmm3suP1WAllB
         c81OLCSyb4JojBTZzPdn3I2GFZi2lwJg2MvAdwlRxVM7bHaRwOe/jqS2nHkHIINEo/Sk
         b8kvsLOEvTf/6gsL7N6XwybvVTxS3xKwLrkTnvUR3ZXvsB2SNyNdQDFppmn3mPs+A1jp
         9PSBBSNxKocuzfgXDYQs2CTV7G3YMr3HbhsA4m9EbrtHqik2plRzUruFqdmlTVzjETH4
         Gz+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=NEBfa1fMA+x5w4qEnSCEpCMUhXzxF+K5pq5bQ4oFCgw=;
        b=cgQITFlehpDeM8FqxMLZVPXbvB0JPKYm9llNDH//jmfvGdHiYOO7yQ+CQrWXf4pg5T
         QN9IVpisZYKKgSXBnKdKGiuyAmyFexPLTr8V+AJrRhHE1qr/tz9oUPiW5YEsUR5fEQve
         4OJ5msaqUTXp94E1QBdWGNoeGOGCqHyq+MXRLDZ3kOBrtxo88JiyIvq1jEYO5MwtTtv7
         3uuGY+47CG76fAm1jI1nkh2oKU3I3nNSapADudbgBEOyNeJXDxVNqwUDAOJkbwj7mIEB
         /cZhdpTDiUAmH6vsOj66YySXVR4uQqxYyBVLJsIQevUYFQZqSt8A/56u6iWCdgS8gSpF
         s7+w==
X-Gm-Message-State: AOAM533bWiHEjH57baUN4fEe4tbI6tqtUT5QPw6AQfouTygXUwJ+5gXF
	beHtchiwBXVF8oYYkNQgnY0=
X-Google-Smtp-Source: ABdhPJxlb1ZL+XWZnAn8zR/SOKzgcJArloMLd6W6MRTYVSPU38I56SwTItR6Q2sFEqOAjGb16DtsTw==
X-Received: by 2002:a19:dc03:: with SMTP id t3mr14409455lfg.552.1636332488742;
        Sun, 07 Nov 2021 16:48:08 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 12/25] arm64: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:11 +0300
Message-Id: <20211108004524.29465-13-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/arm64/kernel/process.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index aacf2f5559a8..f8db031afa7d 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -110,8 +110,7 @@ void machine_power_off(void)
 {
 	local_irq_disable();
 	smp_send_stop();
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 }
 
 /*
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222890.385411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspa-0000Jl-HJ; Mon, 08 Nov 2021 00:48:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222890.385411; Mon, 08 Nov 2021 00:48:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspZ-0000FA-Op; Mon, 08 Nov 2021 00:48:13 +0000
Received: by outflank-mailman (input) for mailman id 222890;
 Mon, 08 Nov 2021 00:48:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspX-0004R0-CH
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:11 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8bf55857-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:10 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id e9so5703750ljl.5
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:10 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bf55857-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=qRRUcggihxuvvuxXR8avhK/eModbACqCMIG7s3bijm0=;
        b=KBhPxSaW9lrnwg/ZeqJS2nu0HdKIoak3A7KEcWoxjZ8ZDLYfXwp1aXhrc8oCufl4X9
         MKLsob6NFLsKmC3aak9WZhqpQvEY4rFz6TP5tCGr2UIze2Tsvqt8QYHF9D+yEMaBHVPm
         WBhljEA9GFAvFym8H3desu0Q0Qf41WaNht0kxdCTsPansaa3e36GY/Lm0YlrziYL6KTb
         2Adk6zJSc93DD9T+BiQ9AEP3Q9XzvbblhJVfx1e1iiRtap7ytYjo7dpjC41oxn8g8q8v
         R3FH/69p8KJwif6y9Y/ENfpHxQH9zh/vXioHmNWUl3BVDks73jxZaW9geoZzhNoBNZfA
         CVxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=qRRUcggihxuvvuxXR8avhK/eModbACqCMIG7s3bijm0=;
        b=XZE5BNZcL44xodxTuUfYyqCfpE0jnJQjahGGjv6CbHIZP4CGRz7hAHc7Ge7gOl4mC1
         SvwRok0RUtTtY8ZNMdJTRLmaPUfqoN4wuXxLwXzn3JjMo3CW8DjANP67EagrUAS2xeXt
         HUMHKu8PSYXL949Wu6HQK5XDxRedHmdAs/WFmBuMRxVWGSMGqf5YGlhKXF1InT1othiE
         NrF6bKyku3CXPog6MZ/XpAqALVQh7UKf1P7trIQClzIYrZAAXCz8OfWKghx4MFz43d/A
         aNBhyApu5RB6DmWD5EnbJekpxbmviZvKW+C4Qqtstw7uhBuLsKulRwD0dPjlvqxtGHdz
         Yh+g==
X-Gm-Message-State: AOAM533fVRPLBHlPzccEgj5HnSLpnlQCrHSMehdKnoec+M+IML6KhIS0
	oO+d+qC3U90Rvdst7JjM/zw=
X-Google-Smtp-Source: ABdhPJyfH7OANNMfjdVl1/BvZl9WPVHDE8Bg86gEBvgA8TNGSwiw/Je54t6L5Ttvpi+gyGASQBIYuw==
X-Received: by 2002:a2e:a54b:: with SMTP id e11mr55909067ljn.157.1636332490552;
        Sun, 07 Nov 2021 16:48:10 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 13/25] parisc: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:12 +0300
Message-Id: <20211108004524.29465-14-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Helge Deller <deller@gmx.de> # parisc
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/parisc/kernel/process.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c
index ea3d83b6fb62..928201b1f58f 100644
--- a/arch/parisc/kernel/process.c
+++ b/arch/parisc/kernel/process.c
@@ -26,6 +26,7 @@
 #include <linux/module.h>
 #include <linux/personality.h>
 #include <linux/ptrace.h>
+#include <linux/reboot.h>
 #include <linux/sched.h>
 #include <linux/sched/debug.h>
 #include <linux/sched/task.h>
@@ -114,8 +115,7 @@ void machine_power_off(void)
 	pdc_chassis_send_status(PDC_CHASSIS_DIRECT_SHUTDOWN);
 
 	/* ipmi_poweroff may have been installed. */
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 		
 	/* It seems we have no way to power the system off via
 	 * software. The user has to press the button himself. */
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:48:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:48:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222891.385421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspd-0000oW-0t; Mon, 08 Nov 2021 00:48:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222891.385421; Mon, 08 Nov 2021 00:48:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjspc-0000kX-5m; Mon, 08 Nov 2021 00:48:16 +0000
Received: by outflank-mailman (input) for mailman id 222891;
 Mon, 08 Nov 2021 00:48:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspZ-0004R0-3i
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:13 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8cfebb3e-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:12 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id p16so32495299lfa.2
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:12 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8cfebb3e-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=cQhCUMmxREqlb3fYFdUNP+80Jr1xwOUlupNd5E99mX4=;
        b=jxcQzJM1jm4ITIQpwF7sIniQUOmyyd20zqOX8gxsMFNa/9hDa05ywN9MS2er+nzvkg
         spQLArMiTvZtxNnWDJ75OE3dgnrkoS9MDkPRHte9gE6FXcTKHPRnED9qO9W3e99UZf7m
         A1KTZoJ6alj41Ktv2I90p7YOSa0dD0Xm01nBcRuWgbG3eKl6et6MW8gX9CSHBNjY/OC3
         kJ7vj4jBq+OBthAumKYplEumuBq+rAmZsUoI/K5B3YmlCl4VwV+iT25QjX+y2TUDFlkH
         MlXfPOA3xn9JRfWs9yq7NjBzJ+4COil84nQep1AFVFsZUKem8I6ABJP1Xx3rMMUJsPbu
         6R/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=cQhCUMmxREqlb3fYFdUNP+80Jr1xwOUlupNd5E99mX4=;
        b=RWNq5fMjx3q/8NSIS7sfSSW0Vc3acfXtgCZ4qQlyowkm2A7JRMsdRdjl2kWpQUWiS2
         EfMnaDGfKw3YKSLqDkfk0rWJv4e/YjsCraVO98TgLdXxIICYysRwYZmYrE/YNFqp1QEO
         tjIu0e3i7n2pOtSWd6qMLQD5NHRFU4TT1qbpynHJag+TEtrtIHnKuOCIJ9KNaZFGPPBK
         lQqCvsgq+zt4oVTP3k1A2kLN+Hk4owLv5IoDsUbvSbb0FlNfVP6oRCMGastzj0GvKuS4
         yRmw3kPNjxOcUFDU1xw05c8DsBh3sDEeID0tUS/EqC/W+KqqKSR2XNxDx5mot8RVElQ4
         okkg==
X-Gm-Message-State: AOAM531lmbmuwLsWdCzHNdqa0l8gyJLUqrFhJASph8RfNpAU/fSMwYK2
	bFBp6ekRHpkmFRyKodxwU7k=
X-Google-Smtp-Source: ABdhPJw/xj7+vjQzmw+08eVs7NGwQQ7VzmtZSs0aqLXqTUoWrFUbxhrr0Z5KltUJyCDy5Y4kRFsHgg==
X-Received: by 2002:ac2:4570:: with SMTP id k16mr62980992lfm.611.1636332492292;
        Sun, 07 Nov 2021 16:48:12 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 14/25] xen/x86: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:13 +0300
Message-Id: <20211108004524.29465-15-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/x86/xen/enlighten_pv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 5004feb16783..527fa545eb1f 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -31,6 +31,7 @@
 #include <linux/gfp.h>
 #include <linux/edd.h>
 #include <linux/objtool.h>
+#include <linux/reboot.h>
 
 #include <xen/xen.h>
 #include <xen/events.h>
@@ -1068,8 +1069,7 @@ static void xen_machine_halt(void)
 
 static void xen_machine_power_off(void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 	xen_reboot(SHUTDOWN_poweroff);
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222937.385440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsys-0005t8-3B; Mon, 08 Nov 2021 00:57:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222937.385440; Mon, 08 Nov 2021 00:57:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsys-0005t1-06; Mon, 08 Nov 2021 00:57:50 +0000
Received: by outflank-mailman (input) for mailman id 222937;
 Mon, 08 Nov 2021 00:57:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspg-0004R0-AV
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:20 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f1f15de-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:16 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id p16so32495450lfa.2
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:16 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f1f15de-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=0HObz0L7jYC33/Dxy7x3kt14KoppaRcQ+sU+HcRStgU=;
        b=ZVNAr1U4ql3QetoKQdPWWOYdxSBB0k5djEWleeY+9VSLcYiHnCSkCkIaOl4kqaHShO
         oab4Tmm3bwD0P0vkAzDwXd33MBPBcdebn4RnRlv1JfpXW5azFQJ8VDNmkiaenWK08EOn
         RwVRxb2a8jq1Me5zajmOOnqUKWN+NVp3gIC4vDQvl7X+QS/9Q/6G8PsCj7pFygNZ42G6
         2+Tzi7ka9eoxAdQUiRD+NnUxxBwExid0v7AfOqmbTtknjCEBmTA6xGh62w38gQj+fJ/p
         jOjBMtv9YA3dt8WYnPd7X0Be6DYsLDDoWJqswRWvH4kz+YPHCvK+UcFcEoVWh55qLPDl
         ATPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=0HObz0L7jYC33/Dxy7x3kt14KoppaRcQ+sU+HcRStgU=;
        b=EgDJHvw0O1POs+QOiWz+LXnnWGrO+xMXjEQZ82z+P3jMrPZpfCSYZZXBNpOkDhmyT4
         uodCw1vz9ZD8VxvqF01qSeho8tj0nCgzorozBBHEldg8+P/9ndDJ5VJ1d54+9oSkdTB+
         OyAx7k7n3GFlbVkNHhApf041vHmFy0SBh6QBzEqI4EZlQ/rJW0DdNbAMyCGH801AN+Jz
         jhjJNYBhc2fjIaAq3NrsMYixJUAeZsttl6h2j6me3VFbY2ufbLGL+3oZAsEHp4hv4m/L
         DGHxWDDw3abIdRPyv4RwMVFM4tOuy/1rvJeymkfuvcKxH1UF+5JrznSdnb8sc+H24g1q
         FxAA==
X-Gm-Message-State: AOAM533oXZnSdg71uJUzMeZnwlBwvWkC6e4NPqe2ZoiVCnD+RknSgNAj
	uwbaV2D0ODD51ozXbsCuy1A=
X-Google-Smtp-Source: ABdhPJxGJgazXdUgtKIBvIIz/6GDfezGKbWWr8YH8P5/vbQu6B1dGA0GfveTE6FMi6W4ZN9EO5qX9g==
X-Received: by 2002:a05:6512:402a:: with SMTP id br42mr25576250lfb.530.1636332495851;
        Sun, 07 Nov 2021 16:48:15 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 16/25] x86: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:15 +0300
Message-Id: <20211108004524.29465-17-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/x86/kernel/reboot.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 0a40df66a40d..cd7d9416d81a 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -747,10 +747,10 @@ static void native_machine_halt(void)
 
 static void native_machine_power_off(void)
 {
-	if (pm_power_off) {
+	if (kernel_can_power_off()) {
 		if (!reboot_force)
 			machine_shutdown();
-		pm_power_off();
+		do_kernel_power_off();
 	}
 	/* A fallback in case there is no PM info available */
 	tboot_shutdown(TB_SHUTDOWN_HALT);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222938.385452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsyv-0006AC-BJ; Mon, 08 Nov 2021 00:57:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222938.385452; Mon, 08 Nov 2021 00:57:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsyv-0006A5-80; Mon, 08 Nov 2021 00:57:53 +0000
Received: by outflank-mailman (input) for mailman id 222938;
 Mon, 08 Nov 2021 00:57:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspr-0004R0-6q
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:31 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97ba32ee-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:30 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id 13so8242294ljj.11
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:30 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97ba32ee-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=rkacp5n+z0D4++qm+Vz/WWDd0s3O3Dw6o+6i9hrIfWs=;
        b=RqR+4fCVEnzIej5WEta4m7eVP9J0cifvkt1Mu0YPaTP2A9CMdL6tu/SjMp4lB0+FJm
         ZQshmgPm64wSSZwKBHmOtA8t/EVqSNmkzF0MqQPAR/mp7ZLpjGx/vSJ1KlsFqNnZ9veH
         Dcm8gmKpUcqPf8R7fL5FlDm6P589xDSkGrLH67wFz4P5/cBO1nSmh1ck88Vc3JUYjWJZ
         ai5x9zvn9mG9RuY2DGypZ1nMlX0U5N+2NIBjhooAS4M0ocg5F25DHZ4qNHyux3JP8ufI
         p4KngmDN11Xh1YN0KCXFJvsyGD+xkZe8nNCdya2HLnrDDghh7kB3TpDSsqXcchV7r1qK
         LCKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=rkacp5n+z0D4++qm+Vz/WWDd0s3O3Dw6o+6i9hrIfWs=;
        b=pJcUDMISRMLETFCKdLuaxgclzb8kp/zegby+AEsMcdvGRRGIiy04a4Gs3qBNhV0Dpg
         Amh83RV5LkpkjraB2JeqpIRq8xS9aX6JIqCpA45XhSd9LoP4AYTXfRTRJtkXxXMsiCem
         QjSa4RR8VxFfV8bBsipVJkLkgL8nwqqx/Z0+xd0yyHLnaW2uwOHe4nlUQ4s+cC28aXmF
         I17TLVc/IfwEsy3IJ3CvWTAUXglmCO2r50dKZq/yuotpglBG3y+UWMgg7Tz1YcmywSCE
         MeuMeO19e1uYCt4fjgW2m5Ytbl0nK3K6soNwok40p8harXH0V2iSVlk8moRN3z5aAzgo
         j8AA==
X-Gm-Message-State: AOAM533UMYAriuwySuazJ2+CnTtqmQMt62t/f0K2RifTwwo+8hKmM/uI
	fM4ul+Ovp9ukloRq2CqgO/8=
X-Google-Smtp-Source: ABdhPJxfKztOfDSBd7HSMtU+Am4Er8ebg/172DyOtTe15mPTYxlsPPldUWp9y70Z3OwiXlFCDFSHow==
X-Received: by 2002:a2e:7616:: with SMTP id r22mr1836123ljc.391.1636332510201;
        Sun, 07 Nov 2021 16:48:30 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 24/25] regulator: pfuze100: Use devm_register_sys_off_handler()
Date: Mon,  8 Nov 2021 03:45:23 +0300
Message-Id: <20211108004524.29465-25-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Use devm_register_sys_off_handler() that replaces global
pm_power_off_prepare variable and allows to register multiple
power-off handlers.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/regulator/pfuze100-regulator.c | 38 ++++++++++----------------
 1 file changed, 14 insertions(+), 24 deletions(-)

diff --git a/drivers/regulator/pfuze100-regulator.c b/drivers/regulator/pfuze100-regulator.c
index d60d7d1b7fa2..2eca8d43a097 100644
--- a/drivers/regulator/pfuze100-regulator.c
+++ b/drivers/regulator/pfuze100-regulator.c
@@ -10,6 +10,7 @@
 #include <linux/of_device.h>
 #include <linux/regulator/of_regulator.h>
 #include <linux/platform_device.h>
+#include <linux/reboot.h>
 #include <linux/regulator/driver.h>
 #include <linux/regulator/machine.h>
 #include <linux/regulator/pfuze100.h>
@@ -76,6 +77,7 @@ struct pfuze_chip {
 	struct pfuze_regulator regulator_descs[PFUZE100_MAX_REGULATOR];
 	struct regulator_dev *regulators[PFUZE100_MAX_REGULATOR];
 	struct pfuze_regulator *pfuze_regulators;
+	struct sys_off_handler sys_off;
 };
 
 static const int pfuze100_swbst[] = {
@@ -569,10 +571,10 @@ static inline struct device_node *match_of_node(int index)
 	return pfuze_matches[index].of_node;
 }
 
-static struct pfuze_chip *syspm_pfuze_chip;
-
-static void pfuze_power_off_prepare(void)
+static void pfuze_power_off_prepare(struct power_off_prep_data *data)
 {
+	struct pfuze_chip *syspm_pfuze_chip = data->cb_data;
+
 	dev_info(syspm_pfuze_chip->dev, "Configure standby mode for power off");
 
 	/* Switch from default mode: APS/APS to APS/Off */
@@ -611,24 +613,23 @@ static void pfuze_power_off_prepare(void)
 
 static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip)
 {
+	int err;
+
 	if (pfuze_chip->chip_id != PFUZE100) {
 		dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare handler for not supported chip\n");
 		return -ENODEV;
 	}
 
-	if (pm_power_off_prepare) {
-		dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already registered.\n");
-		return -EBUSY;
-	}
+	pfuze_chip->sys_off.power_off_prepare_cb = pfuze_power_off_prepare;
+	pfuze_chip->sys_off.cb_data = pfuze_chip;
 
-	if (syspm_pfuze_chip) {
-		dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n");
-		return -EBUSY;
+	err = devm_register_sys_off_handler(pfuze_chip->dev, &pfuze_chip->sys_off);
+	if (err) {
+		dev_err(pfuze_chip->dev,
+			"failed to register sys-off handler: %d\n", err);
+		return err;
 	}
 
-	syspm_pfuze_chip = pfuze_chip;
-	pm_power_off_prepare = pfuze_power_off_prepare;
-
 	return 0;
 }
 
@@ -837,23 +838,12 @@ static int pfuze100_regulator_probe(struct i2c_client *client,
 	return 0;
 }
 
-static int pfuze100_regulator_remove(struct i2c_client *client)
-{
-	if (syspm_pfuze_chip) {
-		syspm_pfuze_chip = NULL;
-		pm_power_off_prepare = NULL;
-	}
-
-	return 0;
-}
-
 static struct i2c_driver pfuze_driver = {
 	.driver = {
 		.name = "pfuze100-regulator",
 		.of_match_table = pfuze_dt_ids,
 	},
 	.probe = pfuze100_regulator_probe,
-	.remove = pfuze100_regulator_remove,
 };
 module_i2c_driver(pfuze_driver);
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222939.385458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsyv-0006Ds-N7; Mon, 08 Nov 2021 00:57:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222939.385458; Mon, 08 Nov 2021 00:57:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsyv-0006CE-Gt; Mon, 08 Nov 2021 00:57:53 +0000
Received: by outflank-mailman (input) for mailman id 222939;
 Mon, 08 Nov 2021 00:57:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspn-0004MH-I2
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:27 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 958df65c-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:48:27 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id z19so9510591lfd.8
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:26 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 958df65c-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=4OWbCpLiTrW70NMTPpPUNVkhVF3RKPzG5GTofMVph+0=;
        b=e0ljdZgUHxZoyrJf4Dt2fwtbFIjxaRgt4CmCodkueXGI72qhDsuRfelUBkYJi1hxMV
         nVcrNSnFNugeEgo9dFzzn9kUZgqKVczGUVkzxEZ0y+F+zPZAPZ7KTWNrymzr+v8zRA6W
         hzyEMZ+lJw61TUCsGRXIL6ISvHg90N5/Swog25tfvvhBcMsUtWu3Fu24ZSfRDv56tPfx
         u7EEOW6fujcPyu5HErvjdfpqNkTiTvdcBDeTA/ZXqCyI7u7V46PBq7FF8CITRhSt1b0b
         knOh10H2RyeFwuduBi3XuFdJ3g4IczEsWRKguhpnQSZq/UwFqnQDt0DwqWwb6ZYN8sH6
         SUng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=4OWbCpLiTrW70NMTPpPUNVkhVF3RKPzG5GTofMVph+0=;
        b=5T6mB0kXiN0Cxg5+VSj0F5PjW+04xbDpc23LnP+CSIbwjAw4NKtyc8tsDvA7EkmhGO
         NKYGhk8bGTVULvSQr1GRdGYMMp+XQ/R5PCuPpyDr/LLyust1k9FJX3+wh3veygtgM5YS
         SAk5AnLTiiX8x26mPnRMBC5tU4AWtvyr7I5z++e7pCHTDHN0HHzX/PCygYWQRQSUFM5t
         qcbV0eXJwCE3+HcJjVQYZrD3k3ZUtvnQ5J73cdmnOw7KggROUyQM5VcwXrrPZd0a4TLQ
         +QmgQMUYyyQaAK/ufBLVbRxLAG7iTgR6WW/spMCnhVDN0ZfEaH6LcdbjlVECAm1Efwe4
         h18Q==
X-Gm-Message-State: AOAM533xMK4hvodzoLqbnKwL17lwJr+xuByzLrsI2LL07YJmmWZTA8FG
	P3D4+VY6+elEFuTCX4W8UdA=
X-Google-Smtp-Source: ABdhPJzScGXAcuT9LP8Wp5Twd6ncUhvGBQU3GEh7kpHpHCWpqfw4o2+7PS5n+hbmeggYCjjEzfj60w==
X-Received: by 2002:a05:6512:3095:: with SMTP id z21mr1126601lfd.423.1636332506643;
        Sun, 07 Nov 2021 16:48:26 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 22/25] memory: emif: Use kernel_can_power_off()
Date: Mon,  8 Nov 2021 03:45:21 +0300
Message-Id: <20211108004524.29465-23-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Replace legacy pm_power_off with kernel_can_power_off() helper that
is aware about chained power-off handlers.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/memory/emif.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c
index 762d0c0f0716..cab10d5274a0 100644
--- a/drivers/memory/emif.c
+++ b/drivers/memory/emif.c
@@ -630,7 +630,7 @@ static irqreturn_t emif_threaded_isr(int irq, void *dev_id)
 		dev_emerg(emif->dev, "SDRAM temperature exceeds operating limit.. Needs shut down!!!\n");
 
 		/* If we have Power OFF ability, use it, else try restarting */
-		if (pm_power_off) {
+		if (kernel_can_power_off()) {
 			kernel_power_off();
 		} else {
 			WARN(1, "FIXME: NO pm_power_off!!! trying restart\n");
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222943.385474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsz0-0006n7-VK; Mon, 08 Nov 2021 00:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222943.385474; Mon, 08 Nov 2021 00:57:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsz0-0006mu-RE; Mon, 08 Nov 2021 00:57:58 +0000
Received: by outflank-mailman (input) for mailman id 222943;
 Mon, 08 Nov 2021 00:57:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjsph-0004R0-As
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:21 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9132de26-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:19 +0100 (CET)
Received: by mail-lj1-x22c.google.com with SMTP id d11so4998594ljg.8
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:19 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9132de26-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=Cc0IUGWHitJ0Cooyguk/vAdy9iAEtCRPuqNtfJHYmrA=;
        b=IzSZ2r99jHnEXOJGmbU0tHUFmE/bhuXI5h+blmEHakGg7rzpiFL+0mOCLjt28XqajZ
         0QhIqwZpxuBAuKtcdn99cngTgGQcwKDfsczTUO7mYBiBbkSJABmgfIe+anJe+S8zTkAo
         +MSGfP9t/6NMZAi/y+PEcZy6dKDaI5eRw8SF2IiidxM3DFV/pghTK0TWXsrC8rAar1Ec
         2oJQaU2TPiJrnwcFVxDME2/aiZTk+celdQeclkyhA6B1KDbPFsfORVhRFDWkqiIGGoGQ
         y74VPF0X/9jdFZHHvYnomCuifzskMFVG48hCZtdZ+dBA6HCo9R7RBcCSlKCE+l0Gg0E2
         Qbpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=Cc0IUGWHitJ0Cooyguk/vAdy9iAEtCRPuqNtfJHYmrA=;
        b=IjCjipZMV9mSHpzRWh0FlHNOqBMSBWPvJ7gOYcxja6J3kzUJFqc75O16F9XiTEZ8K6
         NFQG0ZeFYSJDjVJ2ELxoCPL22TX09X65bDBv5c882rr8jE3lyxDk9IS3VY6qEeYRT9UP
         TXP7QBsZb5adw+/3tyKCBtwlmkpwhVz+0+uhKz20AIi26JbBrCyUSOioase5huvFJbBC
         8OHyKDHbeSqfi1d2Z4QqE9udq9GaTqvdv1I2eD1sOYpoZofRhgRTPobrL6jYhDm/am4u
         TPmsCrA6/voZ4wyKf6Agb++/hLg63UUSPFQTdP4SaEQn2eLXwM9hKXXcqp/mhFw61W7R
         cw3A==
X-Gm-Message-State: AOAM533n8IBbVAdificyQdHut3TlRebunO3P12LXEiRZI3Q51brl+LE5
	v/qOaSG1lvwKeIuFRog2zSI=
X-Google-Smtp-Source: ABdhPJy4RtOehJnpJYrVc1NQyuBuwoIsoJy3foDMnf8FY5V4GrNNRvHzsXmwf+DV8gEqIGOLzN+pyQ==
X-Received: by 2002:a2e:a444:: with SMTP id v4mr75863886ljn.33.1636332499373;
        Sun, 07 Nov 2021 16:48:19 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 18/25] mips: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:17 +0300
Message-Id: <20211108004524.29465-19-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/mips/kernel/reset.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/mips/kernel/reset.c b/arch/mips/kernel/reset.c
index 6288780b779e..e7ce07b3e79b 100644
--- a/arch/mips/kernel/reset.c
+++ b/arch/mips/kernel/reset.c
@@ -114,8 +114,7 @@ void machine_halt(void)
 
 void machine_power_off(void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 
 #ifdef CONFIG_SMP
 	preempt_disable();
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222946.385485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsz6-0007JB-D0; Mon, 08 Nov 2021 00:58:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222946.385485; Mon, 08 Nov 2021 00:58:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjsz6-0007Iz-89; Mon, 08 Nov 2021 00:58:04 +0000
Received: by outflank-mailman (input) for mailman id 222946;
 Mon, 08 Nov 2021 00:58:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspp-0004R0-JV
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:29 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 969a005f-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:28 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id z8so3357782ljz.9
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:28 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 969a005f-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=mfpn4GjmPLTNTnhqDUdqufcuPWBAqiXi1zu9JyEbhbk=;
        b=W+BA6i1yQfPHIvKbww0H/Kx11NRHF71Rxe4SzvnJDlq9uOKEN4w96ovj4OquXqfPQJ
         JCbSMj3tYPJKeCx5ruhMxqh9HJs5RtCzyXJO/lX0VrHMlYovhvUDgzUTuXzAvRaAEx6k
         BQjK3uMGMr9zDhSEkM6cFPwapFEkDP2nhbeboGEs7tpPwcQ0ORLVbdqRCj1JsmfdENWp
         Wouvje//jgWEX2Go+W+RKzH6ZjhuUXnF7t/nwShOxV4e7SlATuz/nLumpcFWdS/dBBBB
         eU28/GWtwfAP3B25fdf33iLfMN4macxZ7oQWLC6+1CIjVCLAfP+kj1aowIKfSp3wSgHJ
         6KxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=mfpn4GjmPLTNTnhqDUdqufcuPWBAqiXi1zu9JyEbhbk=;
        b=jHYHh5xk9O6vcPpHwMTSczdFBLPaSiX7vv969Bahb6I/a3lbG42kqWsbwq46F4slWl
         Qgqc+u4FJkxe2em9vd4N3XGEPYkR18xXyzGroq+9pXgj121tvmHMhbYq6IccHWBpvx1f
         fjiwLFt4X9aH8QCZg3onI9tsVFkX4nD5G0lX5/A1981gR+RR4Hrikvmfv+mhcIjrAfZu
         fx9L6Sl0DDlmB+Ssu6viTHuG7OqzCX8X7UY6Cqd5Au1KyiAzQ017xfEy+E+PJTL2Z/yM
         lsI+H3IlZbwr0meSxgft3mK/3wm5+03LVnBkzidPM7sSzMPDYQjoBSvDyo0lo0pN0fGV
         91Zg==
X-Gm-Message-State: AOAM532ZjCk34LHvN6WEi5L3rJKmZv1fO5lPhkg5NyTIzEM5wK9/ArCB
	qaP7ogyfh57/82P3bE0RhM8=
X-Google-Smtp-Source: ABdhPJxvKGMB3QY7Ut5kEA8s6doinUC1/Ww9qKJdN+MXM8K/PkyljZbitnj0m2icyEnTqlRtLd3GMw==
X-Received: by 2002:a2e:a482:: with SMTP id h2mr8611915lji.87.1636332508421;
        Sun, 07 Nov 2021 16:48:28 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 23/25] ACPI: power: Switch to sys-off handler API
Date: Mon,  8 Nov 2021 03:45:22 +0300
Message-Id: <20211108004524.29465-24-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Switch to sys-off API that replaces legacy pm_power_off callbacks.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/acpi/sleep.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index eaa47753b758..2e613fddd614 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -47,19 +47,11 @@ static void acpi_sleep_tts_switch(u32 acpi_state)
 	}
 }
 
-static int tts_notify_reboot(struct notifier_block *this,
-			unsigned long code, void *x)
+static void tts_reboot_prepare(struct reboot_prep_data *data)
 {
 	acpi_sleep_tts_switch(ACPI_STATE_S5);
-	return NOTIFY_DONE;
 }
 
-static struct notifier_block tts_notifier = {
-	.notifier_call	= tts_notify_reboot,
-	.next		= NULL,
-	.priority	= 0,
-};
-
 static int acpi_sleep_prepare(u32 acpi_state)
 {
 #ifdef CONFIG_ACPI_SLEEP
@@ -1020,7 +1012,7 @@ static void acpi_sleep_hibernate_setup(void)
 static inline void acpi_sleep_hibernate_setup(void) {}
 #endif /* !CONFIG_HIBERNATION */
 
-static void acpi_power_off_prepare(void)
+static void acpi_power_off_prepare(struct power_off_prep_data *data)
 {
 	/* Prepare to power off the system */
 	acpi_sleep_prepare(ACPI_STATE_S5);
@@ -1028,7 +1020,7 @@ static void acpi_power_off_prepare(void)
 	acpi_os_wait_events_complete();
 }
 
-static void acpi_power_off(void)
+static void acpi_power_off(struct power_off_data *data)
 {
 	/* acpi_sleep_prepare(ACPI_STATE_S5) should have already been called */
 	pr_debug("%s called\n", __func__);
@@ -1036,6 +1028,11 @@ static void acpi_power_off(void)
 	acpi_enter_sleep_state(ACPI_STATE_S5);
 }
 
+static struct sys_off_handler acpi_sys_off_handler = {
+	.power_off_priority = POWEROFF_PRIO_FIRMWARE,
+	.reboot_prepare_cb = tts_reboot_prepare,
+};
+
 int __init acpi_sleep_init(void)
 {
 	char supported[ACPI_S_STATE_COUNT * 3 + 1];
@@ -1052,8 +1049,8 @@ int __init acpi_sleep_init(void)
 
 	if (acpi_sleep_state_supported(ACPI_STATE_S5)) {
 		sleep_states[ACPI_STATE_S5] = 1;
-		pm_power_off_prepare = acpi_power_off_prepare;
-		pm_power_off = acpi_power_off;
+		acpi_sys_off_handler.power_off_cb = acpi_power_off;
+		acpi_sys_off_handler.power_off_prepare_cb = acpi_power_off_prepare;
 	} else {
 		acpi_no_s5 = true;
 	}
@@ -1069,6 +1066,6 @@ int __init acpi_sleep_init(void)
 	 * Register the tts_notifier to reboot notifier list so that the _TTS
 	 * object can also be evaluated when the system enters S5.
 	 */
-	register_reboot_notifier(&tts_notifier);
+	register_sys_off_handler(&acpi_sys_off_handler);
 	return 0;
 }
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222959.385495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszJ-0008Oq-Lb; Mon, 08 Nov 2021 00:58:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222959.385495; Mon, 08 Nov 2021 00:58:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszJ-0008Oj-Ic; Mon, 08 Nov 2021 00:58:17 +0000
Received: by outflank-mailman (input) for mailman id 222959;
 Mon, 08 Nov 2021 00:58:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspj-0004MH-RI
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:23 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93581600-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:48:23 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id 207so8000561ljf.10
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:23 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93581600-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=JCVonCJqoXNh2ybv9/bzELaj4OwJ6cxhXavcxt3mhlI=;
        b=Q8JF+9TmNS0WZ8hpVHwd8AXSh3hxGIkdEeKisuuELUInvGpHgj0PJY+V29uhsgKld+
         r8CfBVuSI4NkHcs0hVppWdwlPLHhpSgd0CjmFQBK9FBHGbfgCTXKcCzLnSOfxqWHxWCz
         fvRdaMfb3QcOG6ij+1fi2QVgcV2QIl/Hc+lkF5CoHp4nfB4tVnXup/sHsVTSjmHe/2r2
         cTLlXVYo5nHca5l7xuLJZmINZSy922nAbAPRyVUt7UAX/Pbbpcua7yGGUADPtExoOz9+
         5EibQyeT+l2gIMxAztls7M/jxYtV1YE0NiDvwKKnXwGVcCsb4Ri0ise5izaG+WBMH9Pz
         9TGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=JCVonCJqoXNh2ybv9/bzELaj4OwJ6cxhXavcxt3mhlI=;
        b=IqLXorrS1thKt5j/H+BxbC1O4qOzgFbtCx7HkNCzPoGQtDo5JzvbEcvfsJtFq2vf61
         1HxQUau07DqyBSaOEVavtotBOQhZpLAYUdJ/WOcZy5TUvkAMU0fjdPNw7y9VxvrG28+e
         kIlERl6SYU4FM58IlF41GPWRzmpemdcbrTJyCcgd4Y5E8ycyX30CBy498bYdkzjO+E76
         eZKNfeHkHCTFsZzC1+UBpF+RFT7ZgevWT/0++ggzkkyOBjhg85+h6zuJLZXvUtzTurzi
         UJpEK5Gv2wUFbyGWjHKM7V/fut8HQ/iCF18ohi8tK+gqR4rhaEQ8t48l3BZL0i1f7zUN
         PkVw==
X-Gm-Message-State: AOAM5323gJ7/DhKsOevqU9UkFgW4MlAKyebryybGwsekvlwIVSyJJ8l5
	pXmtATnTlyOlNO1VPoLs9Eo=
X-Google-Smtp-Source: ABdhPJxZSO/cYSCCCdiwyDyaURALsH3U+a81Aljy1ksTTNIiufhrqrRcy3NDHYWNvgn17GQ8voaZpQ==
X-Received: by 2002:a05:651c:1698:: with SMTP id bd24mr7285148ljb.97.1636332502958;
        Sun, 07 Nov 2021 16:48:22 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 20/25] powerpc: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:19 +0300
Message-Id: <20211108004524.29465-21-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/powerpc/kernel/setup-common.c | 4 +---
 arch/powerpc/xmon/xmon.c           | 3 +--
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 4f1322b65760..71c4ccd9bbb1 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -161,9 +161,7 @@ void machine_restart(char *cmd)
 void machine_power_off(void)
 {
 	machine_shutdown();
-	if (pm_power_off)
-		pm_power_off();
-
+	do_kernel_power_off();
 	smp_send_stop();
 	machine_hang();
 }
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 8b28ff9d98d1..8b9c9ff4834b 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -1243,8 +1243,7 @@ static void bootcmds(void)
 	} else if (cmd == 'h') {
 		ppc_md.halt();
 	} else if (cmd == 'p') {
-		if (pm_power_off)
-			pm_power_off();
+		do_kernel_power_off();
 	}
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222960.385500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszK-0008SP-2G; Mon, 08 Nov 2021 00:58:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222960.385500; Mon, 08 Nov 2021 00:58:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszJ-0008RW-SI; Mon, 08 Nov 2021 00:58:17 +0000
Received: by outflank-mailman (input) for mailman id 222960;
 Mon, 08 Nov 2021 00:58:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspm-0004MH-TM
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:27 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 947151fa-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:48:26 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id l22so5664424lfg.7
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:26 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 947151fa-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=guWA5fFZeGPtiBZOYoQcCwu2VFdVsVhLW9/JhrymZ0g=;
        b=huNVHXIGcNiboRU+2HneDlBr7/fF95MK9XlhWzznGv905YJrYCM7/NGsFdwo8k8UFe
         Lj3SyYz3IpnNt7q2Voe6Pu4zz0+FeyfEpSrAq2Vaj8WlmSZmZe5VZDtGhGZu6JEKkCPh
         gMgGfEHeF76DgdR1+EdclAhRRygJJkEC1TGe4eaa/+i2YXeZb8POvtFVgEvnFomKahuR
         1CUdLbfLeP5eRZ2U4i6Tdjox5OAMe0W1GonnC1QI/fQ1yCtNK2FU1q25/RcCCNMYaqXI
         QxhyIU1fG9BSFVOrVIf00oE2Z2Xcts2ZNKWQ3Qu0JtgfWiSVAD4GTBtX/QIgycMZN2W6
         kQwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=guWA5fFZeGPtiBZOYoQcCwu2VFdVsVhLW9/JhrymZ0g=;
        b=c3qW4JCsyi4Yg6iiRBAlZRpqYBvgvUW7i2uCrC+KGGIdLeuORQfuKIyGOeBhQ+1wc0
         zTj/1yXM65hEdNjoZ4DJCB7R50m7NYGBHWI0vymv4i8lSVrZYMk1t4cFFeUQ6KC3yz0w
         R/tIpUptAJGDSXGiVR2ujkGS+jX5ntNwi2J56nK4bGS9CqYY55Vn65arjTMcX2kAV/eN
         R/IwBYOkWAcY0Kw54p7n2zjW828JKV4MasqUicCZkK3Xy4m8S+C0msxxLXZxOmlDwykP
         MtBP0YHieZt4WSxeaOL5B7XUAb0iAvajtsvZxydiWS0MunTow3tzWW9ACPuM5tFWdpw3
         nImA==
X-Gm-Message-State: AOAM532Ux9IX9rjAhMejQIiBanNAjM8NVdL4Jt4V3XJSZH/bNQwekMUT
	pqDQc+7rI67BZBUSr2jcaZA=
X-Google-Smtp-Source: ABdhPJy93dX/dYcotZ6VcquokSWN9nEJE7uBT7JKSQJ2xpdMXwgcia+L2i9GFKzghCdM19cNeKxRFw==
X-Received: by 2002:ac2:5f6d:: with SMTP id c13mr16423138lfc.501.1636332504765;
        Sun, 07 Nov 2021 16:48:24 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 21/25] m68k: Switch to new sys-off handler API
Date: Mon,  8 Nov 2021 03:45:20 +0300
Message-Id: <20211108004524.29465-22-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use
register_power_off_handler() that registers power-off handlers and
do_kernel_power_off() that invokes chained power-off handlers. Legacy
pm_power_off() will be removed once all drivers will be converted to
the new power-off API.

Normally arch code should adopt only the do_kernel_power_off() at first,
but m68k is a special case because it uses pm_power_off() "inside out",
i.e. pm_power_off() invokes machine_power_off() [in fact it does nothing],
while it's machine_power_off() that should invoke the pm_power_off(), and
thus, we can't convert platforms to the new API separately. There are only
two platforms changed here, so it's not a big deal.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/m68k/emu/natfeat.c         | 3 ++-
 arch/m68k/include/asm/machdep.h | 1 -
 arch/m68k/kernel/process.c      | 5 ++---
 arch/m68k/kernel/setup_mm.c     | 1 -
 arch/m68k/kernel/setup_no.c     | 1 -
 arch/m68k/mac/config.c          | 4 +++-
 6 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/arch/m68k/emu/natfeat.c b/arch/m68k/emu/natfeat.c
index 71b78ecee75c..b19dc00026d9 100644
--- a/arch/m68k/emu/natfeat.c
+++ b/arch/m68k/emu/natfeat.c
@@ -15,6 +15,7 @@
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/reboot.h>
 #include <linux/io.h>
 #include <asm/machdep.h>
 #include <asm/natfeat.h>
@@ -90,5 +91,5 @@ void __init nf_init(void)
 	pr_info("NatFeats found (%s, %lu.%lu)\n", buf, version >> 16,
 		version & 0xffff);
 
-	mach_power_off = nf_poweroff;
+	register_platform_power_off(nf_poweroff);
 }
diff --git a/arch/m68k/include/asm/machdep.h b/arch/m68k/include/asm/machdep.h
index 8fd80ef1b77e..8d8c3ee2069f 100644
--- a/arch/m68k/include/asm/machdep.h
+++ b/arch/m68k/include/asm/machdep.h
@@ -24,7 +24,6 @@ extern int (*mach_get_rtc_pll)(struct rtc_pll_info *);
 extern int (*mach_set_rtc_pll)(struct rtc_pll_info *);
 extern void (*mach_reset)( void );
 extern void (*mach_halt)( void );
-extern void (*mach_power_off)( void );
 extern unsigned long (*mach_hd_init) (unsigned long, unsigned long);
 extern void (*mach_hd_setup)(char *, int *);
 extern void (*mach_heartbeat) (int);
diff --git a/arch/m68k/kernel/process.c b/arch/m68k/kernel/process.c
index a6030dbaa089..e160a7c57bd3 100644
--- a/arch/m68k/kernel/process.c
+++ b/arch/m68k/kernel/process.c
@@ -67,12 +67,11 @@ void machine_halt(void)
 
 void machine_power_off(void)
 {
-	if (mach_power_off)
-		mach_power_off();
+	do_kernel_power_off();
 	for (;;);
 }
 
-void (*pm_power_off)(void) = machine_power_off;
+void (*pm_power_off)(void);
 EXPORT_SYMBOL(pm_power_off);
 
 void show_regs(struct pt_regs * regs)
diff --git a/arch/m68k/kernel/setup_mm.c b/arch/m68k/kernel/setup_mm.c
index 4b51bfd38e5f..50f4f120a4ff 100644
--- a/arch/m68k/kernel/setup_mm.c
+++ b/arch/m68k/kernel/setup_mm.c
@@ -98,7 +98,6 @@ EXPORT_SYMBOL(mach_get_rtc_pll);
 EXPORT_SYMBOL(mach_set_rtc_pll);
 void (*mach_reset)( void );
 void (*mach_halt)( void );
-void (*mach_power_off)( void );
 #ifdef CONFIG_HEARTBEAT
 void (*mach_heartbeat) (int);
 EXPORT_SYMBOL(mach_heartbeat);
diff --git a/arch/m68k/kernel/setup_no.c b/arch/m68k/kernel/setup_no.c
index 5e4104f07a44..00bf82258233 100644
--- a/arch/m68k/kernel/setup_no.c
+++ b/arch/m68k/kernel/setup_no.c
@@ -55,7 +55,6 @@ int (*mach_hwclk) (int, struct rtc_time*);
 /* machine dependent reboot functions */
 void (*mach_reset)(void);
 void (*mach_halt)(void);
-void (*mach_power_off)(void);
 
 #ifdef CONFIG_M68000
 #if defined(CONFIG_M68328)
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
index 5d16f9b47aa9..727320dedf08 100644
--- a/arch/m68k/mac/config.c
+++ b/arch/m68k/mac/config.c
@@ -12,6 +12,7 @@
 
 #include <linux/errno.h>
 #include <linux/module.h>
+#include <linux/reboot.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/tty.h>
@@ -139,7 +140,6 @@ void __init config_mac(void)
 	mach_hwclk = mac_hwclk;
 	mach_reset = mac_reset;
 	mach_halt = mac_poweroff;
-	mach_power_off = mac_poweroff;
 #if IS_ENABLED(CONFIG_INPUT_M68K_BEEP)
 	mach_beep = mac_mksound;
 #endif
@@ -159,6 +159,8 @@ void __init config_mac(void)
 
 	if (macintosh_config->ident == MAC_MODEL_IICI)
 		mach_l2_flush = via_l2_flush;
+
+	register_platform_power_off(mac_poweroff);
 }
 
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222968.385518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszP-0000mT-BL; Mon, 08 Nov 2021 00:58:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222968.385518; Mon, 08 Nov 2021 00:58:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszP-0000mG-7r; Mon, 08 Nov 2021 00:58:23 +0000
Received: by outflank-mailman (input) for mailman id 222968;
 Mon, 08 Nov 2021 00:58:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspi-0004MH-1t
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:22 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 92479a52-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:48:21 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id j2so32528022lfg.3
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:21 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92479a52-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=IgdEY3brdUGAcbkVUTuopyRaDKQjmT9IOiG4donLZPs=;
        b=AKIY+4xb1sWzNTKdYR9NcCA9nDsvVUAMrOa/pXIgGailTXdsd+OVCw+Koek3pHfBqJ
         4ZQOd6MwFFWPWC7KG9VEbez4WQtuknCOGX0XGfcVeOd0k/AirXGq3JV8H9M3HoQjnUEB
         5yc9E8fCxUKwoy7fXSoJF3o8asvLPJ3i7Wlt6gJXYUYT1/Br/Yi0vQ22lOcFezSfWmeY
         JsjDkrCbKFHg51L3iwnMUHprusvjyZ3cw3o2/6LWF9aHfeW5pVu6j34yiWWtPm+QVN9o
         jHhRVa5ywZi5XLhvHrQyiH8ZKNBGehC9gt8XwUnxLFvnAY5aOF9BBZ49pR16xMX4NuF1
         Juug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=IgdEY3brdUGAcbkVUTuopyRaDKQjmT9IOiG4donLZPs=;
        b=qtTL5i0ks6lUT/bUg+LAGHKrJ7FYK4bgRrcZH4/2LxpsJNOxbJ6GUWL/xz1AH/5udz
         JMt6hBllByKLGcthHkr6ZOnJDf9N/xUJMfZShz6SmqFH2N3kAhWoDDouYB92n8rLDkgF
         y9a7RwUWw2p8Xdz81Iv6uat4tBmRJlf4wUoKlOWWfbGHlzEw5DuXawFZFDFaPHVe/j8C
         kHK1Cxg2UbFYsG6d0RGnB/0ubsQ+AjPjNbzq0WC232D6QFFZ/r7b0acfB0QWUNPgv+hO
         VMhlvaGd89P8nFx1HIH5fsAhgIzpJgi5QFNByFDJeExOhmSuwlk1l2uMEpq6RbTbnl4S
         j0FA==
X-Gm-Message-State: AOAM531I+/OxkGWs163ec3fEgn/qZoW06dNmK+ug7P5NHuhlAtaldgMw
	18JkcrhrzqygIKL5U2piGDA=
X-Google-Smtp-Source: ABdhPJwfARF3TH9rZWcpaUE1nQXpkqsXRoZVLVjj133yavIVMqkztZQTRFFE6m4kFZqTCd13G82vxQ==
X-Received: by 2002:a05:6512:2351:: with SMTP id p17mr53027954lfu.432.1636332501137;
        Sun, 07 Nov 2021 16:48:21 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 19/25] nds32: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:18 +0300
Message-Id: <20211108004524.29465-20-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/nds32/kernel/process.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/nds32/kernel/process.c b/arch/nds32/kernel/process.c
index 49fab9e39cbf..0936dcd7db1b 100644
--- a/arch/nds32/kernel/process.c
+++ b/arch/nds32/kernel/process.c
@@ -54,8 +54,7 @@ EXPORT_SYMBOL(machine_halt);
 
 void machine_power_off(void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 }
 
 EXPORT_SYMBOL(machine_power_off);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222971.385529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszS-0001CG-TA; Mon, 08 Nov 2021 00:58:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222971.385529; Mon, 08 Nov 2021 00:58:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszS-0001C1-OI; Mon, 08 Nov 2021 00:58:26 +0000
Received: by outflank-mailman (input) for mailman id 222971;
 Mon, 08 Nov 2021 00:58:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspd-0004R0-9z
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:17 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e0e4204-402d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 01:48:14 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id m5so7885831ljp.4
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:14 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e0e4204-402d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=032w538UVpeATjNmIAIpxMVbSRQ+KkFSikcjH52Go7E=;
        b=CYX+rsWLev5P9iFzQc17Hii5aXl3X9I+N37IjUBPzT3fhs7ejibZMyODAFDdV6x7VJ
         5ZP+Hd71CAUWxtxryja3mUN+CaKHMdnjhX8yiRm1zru3VMaw1ejVu9ZClQmsYSpFhK78
         HJ592agYH/bCrPu2rETaR5XM30/EVbl3bPu5RbPwarWfT6a7OXYwpFfNN/bWsoOdhR5z
         4pjgJh0QLIxf0LagwrjW8fFOa+5fTJF5PXw0QY75bgP3vWV2t/oub8mHgmsVpyYpLQcn
         3aMRiOPeqIpjt7G8XmPwPxPRlc0uQlk6m3r7OnawAviMa5pFwVrm3wWEJl29tulXyA+Z
         C10Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=032w538UVpeATjNmIAIpxMVbSRQ+KkFSikcjH52Go7E=;
        b=R0knU0TPcg5kOyhQ6Y73wDC7LJrOWp1uB8NL/7lPYu/DgvqI3juI9h7S9gRkLKAjYo
         O2iCutmgrsnpC32XMG0lrEid9TQG8qynB32HX+FpbgxzswRIUIuhkw635gISAMnt4xVu
         1sw3XbssT8I4Tnqo/TxhtGYLte16FfAQgoJDwfa/eQljf5/LzO3GLFuxNkqP8OWwYMKH
         kvq767wcUuuoDEn1kCc9aTlIuNFDPbGtCsYFjreqXM5yNfN0xge2/rUnQ9Zpz8tIOG5N
         Gat0z5wnLaFepHlk1TvH/T4E/6fMThtToI3l6xnZnWQAsK3c75EowdnaJIMqv/U89sF4
         yZNQ==
X-Gm-Message-State: AOAM532QX6t4NJVVIirhmlRn11bA67GyezImicYMEULQO7nSindA0h8M
	FjF74oOGiaMtcZ5MqbTHBNY=
X-Google-Smtp-Source: ABdhPJw9pdaDkOXr3QmoCQ8lY8yPKwvYp6w85pF5+hYdZ4RiByLUnL5yspSV2AH/ECvDb66W5TciQA==
X-Received: by 2002:a2e:751a:: with SMTP id q26mr21102478ljc.168.1636332494070;
        Sun, 07 Nov 2021 16:48:14 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 15/25] sh: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:14 +0300
Message-Id: <20211108004524.29465-16-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/sh/kernel/reboot.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/sh/kernel/reboot.c b/arch/sh/kernel/reboot.c
index 5c33f036418b..e8eeedc9b182 100644
--- a/arch/sh/kernel/reboot.c
+++ b/arch/sh/kernel/reboot.c
@@ -46,8 +46,7 @@ static void native_machine_shutdown(void)
 
 static void native_machine_power_off(void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 }
 
 static void native_machine_halt(void)
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 00:58:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 00:58:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222994.385540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszl-0002YP-6K; Mon, 08 Nov 2021 00:58:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222994.385540; Mon, 08 Nov 2021 00:58:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjszl-0002YD-2f; Mon, 08 Nov 2021 00:58:45 +0000
Received: by outflank-mailman (input) for mailman id 222994;
 Mon, 08 Nov 2021 00:58:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjspe-0004MH-Gf
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 00:48:18 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 902ea2b5-402d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 01:48:17 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id b40so3077220lfv.10
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 16:48:17 -0800 (PST)
Received: from localhost.localdomain (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.gmail.com with ESMTPSA id p17sm1625266lfu.209.2021.11.07.16.48.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Nov 2021 16:48:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 902ea2b5-402d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=jIixMSKlDuHM/ROsyXYWDI0GhGtBfDPAGuo/NFEP3H8=;
        b=hSCECj6oief95mUKAFt1aYs1z2BhI3PyCJpHbMUlNZ/M49sY1G7gzTeEyttE60gMak
         BF+5uDSKoSn4CaOELlWWJK6Z03Rk6y4HTwrmSVMcH4REAv0cUqJCMn3qEJCUcKMx0Yg2
         hZUAWfnWhmv0u8d55RvvttbeCJzqzTllkqZ8sZrYO0dyywzXm1H9T9B85gH//tK7VGaP
         LSTKHt3pU1K6UjbgljgztfzIXizYQhXuqyNy4a5wOAJ6zgoCDgTzWA5VXtRTbqr75uP5
         JNN1xexiLEoZfDmssN9kF5V9y9vHzkvg7OruyPjb23gGAachOOiZE7sCXiHSj3rLrdzh
         uUnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=jIixMSKlDuHM/ROsyXYWDI0GhGtBfDPAGuo/NFEP3H8=;
        b=5pBAbBaBDu3OcL/PxG0gSgHVEeb+1LWXqKZVergoSqjHqTAfJeacj0n0vW45/OrFYG
         e0FNNXbqk5wZ5kOSzOYzh41z7FXS1mjTWeTIgExm0wwnalkQdLN/Gme2dSF35he3dwfi
         v7SvA9VZNazdBlEo/X1LCkaIOJx8scoE+gXMIlBsaIV3M7LgHhjkVOpuxqG5RcD8Esy5
         0ThmfHI5Y9ONtndiA/Xkh7h20IccgicIc5EkQkINiZm4kcVLvCDoER2GadxAr4gmActE
         KlwFwHhUpiGQNCFqGp7AqxfG8JJeNLWdtVvHrwitX9cpJghsAHdqpSVuu43TqnZYLwQA
         OBaA==
X-Gm-Message-State: AOAM5311B1FZ2UW/rcBIIjXTqfr+zHuqGlaeuHWeyPKIfVDoj0PRj5Ca
	obKgnvjoOepEv6Bv+neTl/Y=
X-Google-Smtp-Source: ABdhPJzYDrvoemDzHy5lRXulk7VBYq7aeBqM7UdlzGSCmj4dbWeKpvaVLmRfE93Wr+MuGPe+b8E4Uw==
X-Received: by 2002:ac2:4e13:: with SMTP id e19mr3337438lfr.561.1636332497640;
        Sun, 07 Nov 2021 16:48:17 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v3 17/25] ia64: Use do_kernel_power_off()
Date: Mon,  8 Nov 2021 03:45:16 +0300
Message-Id: <20211108004524.29465-18-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
References: <20211108004524.29465-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/ia64/kernel/process.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index 834df24a88f1..cee4d7db2143 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -19,6 +19,7 @@
 #include <linux/module.h>
 #include <linux/notifier.h>
 #include <linux/personality.h>
+#include <linux/reboot.h>
 #include <linux/sched.h>
 #include <linux/sched/debug.h>
 #include <linux/sched/hotplug.h>
@@ -599,8 +600,7 @@ machine_halt (void)
 void
 machine_power_off (void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 	machine_halt();
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 01:10:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 01:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223018.385551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjtB6-0007L4-Aq; Mon, 08 Nov 2021 01:10:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223018.385551; Mon, 08 Nov 2021 01:10:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjtB6-0007Kx-7q; Mon, 08 Nov 2021 01:10:28 +0000
Received: by outflank-mailman (input) for mailman id 223018;
 Mon, 08 Nov 2021 01:10:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjtB4-0007Kh-PC; Mon, 08 Nov 2021 01:10:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjtB4-000264-DU; Mon, 08 Nov 2021 01:10:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mjtB4-0001RV-1X; Mon, 08 Nov 2021 01:10:26 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mjtB4-0006Nu-14; Mon, 08 Nov 2021 01:10:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=tXkBRg9ildrlJBGKrx//HfP4v1uWWZrLrhgWYWqPfyw=; b=Qqc/mtSKXBGvNc/xB8rXNP8wcL
	Mkyp8mqEBi+QEUbEzLQPUCd8XvQIQRLCPdOgoLPRRNYO8xK3lrDNAszqn+BlwVeMDnzAbpGT0aSbZ
	321VDw/vLuz/zoZ/lcpAjmSsPk7B3hSHoQaZzniUpCl9cdAodhvpYGix8SDYQcw3cNMQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166077-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166077: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=b5013d084e03e82ceeab4db8ae8ceeaebe76b0eb
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Nov 2021 01:10:26 +0000

flight 166077 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166077/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                b5013d084e03e82ceeab4db8ae8ceeaebe76b0eb
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    6 days
Failing since        165992  2021-11-02 05:40:21 Z    5 days    8 attempts
Testing same since   166077  2021-11-07 08:37:12 Z    0 days    1 attempts

------------------------------------------------------------
1881 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 204751 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 01:14:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 01:14:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223028.385564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjtF4-0007yL-Sn; Mon, 08 Nov 2021 01:14:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223028.385564; Mon, 08 Nov 2021 01:14:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjtF4-0007yE-Pg; Mon, 08 Nov 2021 01:14:34 +0000
Received: by outflank-mailman (input) for mailman id 223028;
 Mon, 08 Nov 2021 01:14:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mjtF4-0007y8-4j
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 01:14:34 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b03dcf9-4031-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 02:14:33 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id l22so5758561lfg.7
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 17:14:32 -0800 (PST)
Received: from [192.168.2.145] (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.googlemail.com with ESMTPSA id b6sm50427ljr.103.2021.11.07.17.14.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Nov 2021 17:14:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b03dcf9-4031-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:from:to:cc:references:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=N1+snwcBj4tP86kuMCj3Y4Q1vBUEL/Sem2JBurze6Ko=;
        b=apuxSRuYyxkG2byFKoxt6B4SK3xt1zayG+GZKAbfvgzKkxFXAeWb1AzxtxUprSjERR
         whaPt6KEn6/vTE9oOPwvBS4c5ID/DXiDnXsanKsV2qmMrBWiYaIO7BigzI+qvvrAxwrZ
         BmkpTmeKr37leQpkRplTucmSrwDlfNefD7m3qL+hvwRStGquM9P0I0wrBTfpw9rn76sI
         lN0LLW+RgmTAyUEm+V4IH6cGKjORdlWIvcP/u6EPAVmjyc5BQEYpbw/tX7i3HHJcJjAB
         7CLlDSjKnU1JYhgjRjgZm0uF5v+cV0cGD400r4GBT6NRs15v93q/OMHQaBAFH5aMWKYN
         dIDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:from:to:cc:references:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=N1+snwcBj4tP86kuMCj3Y4Q1vBUEL/Sem2JBurze6Ko=;
        b=uBXChfmA1scbsZeJVNvh0vOoXNvxKQaW39fkgcJ5j4cRiLM3wjZQ3mYx5HiWbKXC5b
         t16wRlvz6bOZ1ZUCCBWA0AQ484szHd/rLGfWi5pl4OH5o44YF7b3NWKyT2GH+9xIyVXf
         Gf8s8cDbacBTu4UjpfPcqAdM4nmHgFMReVo9Tln6D7Jnt/lYXZamQe8RnL77k7kL57rp
         u/H02cBe2GU8L4Dlg0H2RQXM9tp3OWSVhYjMQnH1Fc2sHentoDsLcNL1qN5pcNbjGzO2
         HVJ5Kntg/ZF742wX9QSHBhz//g2UCH2AaGZKgaMKc2RL5yZZl2WWVw8wP7vAltECuY6g
         7tug==
X-Gm-Message-State: AOAM531YM88tH0JH/POg9KKdF9SXgi8ZuNoe5vPS1zVj/qY8mzLeurMm
	Mnn7zhRl9rq+0e99WnWOJDU=
X-Google-Smtp-Source: ABdhPJwwKCpUyEi2gUYCZoydWPAlQSBS5OGz69Lgly2auw/yDbGC37SlN+Qc84kMLx0VxH8b+KOpeA==
X-Received: by 2002:a05:6512:31d4:: with SMTP id j20mr3632382lfe.395.1636334072590;
        Sun, 07 Nov 2021 17:14:32 -0800 (PST)
Subject: Re: [PATCH v3 00/25] Introduce power-off+restart call chain API
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
 Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer
 <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
 Vincent Chen <deanbo422@gmail.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>,
 Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>, Sebastian Reichel <sre@kernel.org>,
 Linus Walleij <linus.walleij@linaro.org>,
 Philipp Zabel <p.zabel@pengutronix.de>
Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
 linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
References: <20211108004524.29465-1-digetx@gmail.com>
Message-ID: <a4cf1410-564b-ced5-1209-fa55ba672431@gmail.com>
Date: Mon, 8 Nov 2021 04:14:30 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211108004524.29465-1-digetx@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

08.11.2021 03:44, Dmitry Osipenko пишет:
> Problem
> -------
> 
> SoC devices require power-off call chaining functionality from kernel.
> We have a widely used restart chaining provided by restart notifier API,
> but nothing for power-off.
> 
> Solution
> --------
> 
> Introduce new API that provides both restart and power-off call chains.
> 
> Why combine restart with power-off? Because drivers often do both.
> More practical to have API that provides both under the same roof.
> 
> The new API is designed with simplicity and extensibility in mind.
> It's built upon the existing restart and reboot APIs. The simplicity
> is in new helper functions that are convenient for drivers. The
> extensibility is in the design that doesn't hardcode callback
> arguments, making easy to add new parameters and remove old.
> 
> This is a third attempt to introduce the new API. First was made by
> Guenter Roeck back in 2014, second was made by Thierry Reding in 2017.
> In fact the work didn't stop and recently arm_pm_restart() was removed
> from v5.14 kernel, which was a part of preparatory work started by
> Guenter Roeck. I took into account experience and ideas from the
> previous attempts, extended and polished them.
> 
> Adoption plan
> -------------
> 
> This patchset introduces the new API. It also converts multiple drivers
> and arch code to the new API to demonstrate how it all looks in practice.
> 
> The plan is:
> 
> 1. Merge new API (patches 1-8). This API will co-exist with the old APIs.
> 
> 2. Convert arch code to do_kernel_power_off() (patches 9-21).
> 
> 3. Convert drivers and platform code to the new API.
> 
> 4. Remove obsolete pm_power_off and pm_power_off_prepare variables.
> 
> 5. Make restart-notifier API private to kernel/reboot.c once no users left.
> 
> It's fully implemented here:
> 
> [1] https://github.com/grate-driver/linux/commits/sys-off-handler
> 
> For now I'm sending only the first 25 base patches out of ~180. It's
> preferable to squash 1-2, partially 3 and 4 points of the plan into a
> single patchset to ease and speed up applying of the rest of the patches.
> Majority of drivers and platform patches depend on the base, hence they
> will come later (and per subsystem), once base will land.
> 
> All [1] patches are compile-tested. Tegra and x86 ACPI patches are tested
> on hardware. The remaining should be covered by unit tests (unpublished).
> 
> Results
> -------
> 
> 1. Devices can be powered off properly.
> 
> 2. Global variables are removed from drivers.
> 
> 3. Global pm_power_off and pm_power_off_prepare callback variables are
> removed once all users are converted to the new API. The latter callback
> is removed by patch #25 of this series.
> 
> 4. Ambiguous call chain ordering is prohibited. See patch #5 which adds
> verification of restart handlers priorities, ensuring that they are unique.
> 
> Changelog:
> 
> v3: - Renamed power_handler to sys_off_handler as was suggested by
>       Rafael Wysocki.
> 
>     - Improved doc-comments as was suggested by Rafael Wysocki. Added more
>       doc-comments.
> 
>     - Implemented full set of 180 patches which convert whole kernel in
>       accordance to the plan, see link [1] above. Slightly adjusted API to
>       better suit for the remaining converted drivers.
> 
>       * Added unregister_sys_off_handler() that is handy for a couple old
>         platform drivers.
> 
>       * Dropped devm_register_trivial_restart_handler(), 'simple' variant
>         is enough to have.
> 
>     - Improved "Add atomic/blocking_notifier_has_unique_priority()" patch,
>       as was suggested by Andy Shevchenko. Also replaced down_write() with
>       down_read() and factored out common notifier_has_unique_priority().
> 
>     - Added stop_chain field to struct restart_data and reboot_prep_data
>       after discovering couple drivers wanting that feature.
> 
>     - Added acks that were given to v2.
> 
> v2: - Replaced standalone power-off call chain demo-API with the combined
>       power-off+restart API because this is what drivers want. It's a more
>       comprehensive solution.
> 
>     - Converted multiple drivers and arch code to the new API. Suggested by
>       Andy Shevchenko. I skimmed through the rest of drivers, verifying that
>       new API suits them. The rest of the drivers will be converted once we
>       will settle on the new API, otherwise will be too many patches here.
> 
>     - v2 API doesn't expose notifier to users and require handlers to
>       have unique priority. Suggested by Guenter Roeck.
> 
>     - v2 API has power-off chaining disabled by default and require
>       drivers to explicitly opt-in to the chaining. This preserves old
>       behaviour for existing drivers once they are converted to the new
>       API.
> 
> Dmitry Osipenko (25):
>   notifier: Remove extern annotation from function prototypes
>   notifier: Add blocking_notifier_call_chain_is_empty()
>   notifier: Add atomic/blocking_notifier_has_unique_priority()
>   reboot: Correct typo in a comment
>   reboot: Warn if restart handler has duplicated priority
>   reboot: Warn if unregister_restart_handler() fails
>   reboot: Remove extern annotation from function prototypes
>   kernel: Add combined power-off+restart handler call chain API
>   ARM: Use do_kernel_power_off()
>   csky: Use do_kernel_power_off()
>   riscv: Use do_kernel_power_off()
>   arm64: Use do_kernel_power_off()
>   parisc: Use do_kernel_power_off()
>   xen/x86: Use do_kernel_power_off()
>   sh: Use do_kernel_power_off()
>   x86: Use do_kernel_power_off()
>   ia64: Use do_kernel_power_off()
>   mips: Use do_kernel_power_off()
>   nds32: Use do_kernel_power_off()
>   powerpc: Use do_kernel_power_off()
>   m68k: Switch to new sys-off handler API
>   memory: emif: Use kernel_can_power_off()
>   ACPI: power: Switch to sys-off handler API
>   regulator: pfuze100: Use devm_register_sys_off_handler()
>   reboot: Remove pm_power_off_prepare()
> 
>  arch/arm/kernel/reboot.c               |   4 +-
>  arch/arm64/kernel/process.c            |   3 +-
>  arch/csky/kernel/power.c               |   6 +-
>  arch/ia64/kernel/process.c             |   4 +-
>  arch/m68k/emu/natfeat.c                |   3 +-
>  arch/m68k/include/asm/machdep.h        |   1 -
>  arch/m68k/kernel/process.c             |   5 +-
>  arch/m68k/kernel/setup_mm.c            |   1 -
>  arch/m68k/kernel/setup_no.c            |   1 -
>  arch/m68k/mac/config.c                 |   4 +-
>  arch/mips/kernel/reset.c               |   3 +-
>  arch/nds32/kernel/process.c            |   3 +-
>  arch/parisc/kernel/process.c           |   4 +-
>  arch/powerpc/kernel/setup-common.c     |   4 +-
>  arch/powerpc/xmon/xmon.c               |   3 +-
>  arch/riscv/kernel/reset.c              |  12 +-
>  arch/sh/kernel/reboot.c                |   3 +-
>  arch/x86/kernel/reboot.c               |   4 +-
>  arch/x86/xen/enlighten_pv.c            |   4 +-
>  drivers/acpi/sleep.c                   |  25 +-
>  drivers/memory/emif.c                  |   2 +-
>  drivers/regulator/pfuze100-regulator.c |  38 +-
>  include/linux/notifier.h               |  37 +-
>  include/linux/pm.h                     |   1 -
>  include/linux/reboot.h                 | 305 ++++++++++++--
>  kernel/notifier.c                      |  83 ++++
>  kernel/power/hibernate.c               |   2 +-
>  kernel/reboot.c                        | 556 ++++++++++++++++++++++++-
>  28 files changed, 985 insertions(+), 136 deletions(-)
> 

+CC Linus Walleij, Sebastian Reichel and Philipp Zabel; whom I missed to
include by accident.

https://lore.kernel.org/all/20211108004524.29465-1-digetx@gmail.com/T/#t


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 05:19:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 05:19:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.222755.385576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjx3Z-0005yg-1w; Mon, 08 Nov 2021 05:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 222755.385576; Mon, 08 Nov 2021 05:18:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjx3Y-0005yZ-Td; Mon, 08 Nov 2021 05:18:56 +0000
Received: by outflank-mailman (input) for mailman id 222755;
 Sat, 06 Nov 2021 20:55:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mw4S=PZ=gmx.net=j.neuschaefer@srs-se1.protection.inumbo.net>)
 id 1mjSiL-0008J2-Ap
 for xen-devel@lists.xenproject.org; Sat, 06 Nov 2021 20:55:01 +0000
Received: from mout.gmx.net (mout.gmx.net [212.227.17.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cdde146c-3f43-11ec-9787-a32c541c8605;
 Sat, 06 Nov 2021 21:54:59 +0100 (CET)
Received: from longitude ([87.79.195.52]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MOA3F-1n7sEw3p2f-00OWCa; Sat, 06
 Nov 2021 21:54:16 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cdde146c-3f43-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;
	s=badeba3b8450; t=1636232056;
	bh=Mwd00qb2ZiJx72AR8VOZy+k9pKeasCOoFRxt9I1uV2U=;
	h=X-UI-Sender-Class:Date:From:To:Cc:Subject:References:In-Reply-To;
	b=C0sCrT8yqXlZxZN/D8t3r5AoxwhULAsJ8jy0NerNyYtNdbWgnqBYX9Y6CiU9MHxYu
	 zquWuU6nUJY+jyfB4yNiyLcx1VtjpHa5bjIspLTdTbHxN0xolbUGlTJ6HhUeKdKZyT
	 nslIEB0sT9+3bcpa5ZRh7JRv4jOvvxznOxhoRVuE=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Date: Sat, 6 Nov 2021 21:54:06 +0100
From: Jonathan =?utf-8?Q?Neusch=C3=A4fer?= <j.neuschaefer@gmx.net>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Lee Jones <lee.jones@linaro.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Mark Brown <broonie@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Russell King <linux@armlinux.org.uk>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Chen-Yu Tsai <wens@csie.org>,
	Jonathan =?utf-8?Q?Neusch=C3=A4fer?= <j.neuschaefer@gmx.net>,
	Tony Lindgren <tony@atomide.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Vladimir Zapolskiy <vz@mleia.com>,
	Avi Fishman <avifishman70@gmail.com>,
	Tomer Maimon <tmaimon77@gmail.com>,
	Tali Perry <tali.perry1@gmail.com>,
	Patrick Venture <venture@google.com>, Nancy Yuen <yuenn@google.com>,
	Benjamin Fair <benjaminfair@google.com>,
	Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
	openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
Message-ID: <YYbqlmOM95q7Hbjo@latitude>
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="EIEte5+tjVxDHmE6"
Content-Disposition: inline
In-Reply-To: <20211027211715.12671-28-digetx@gmail.com>
X-Provags-ID: V03:K1:SVFlmtuvvynO7MrtDzObaEyN/WaPcv8tOsGAlIRvdbuKBKDAEQ/
 nVePqR5eYOMd9xdpGO5unEqHbls4MbMcwDHHiD/2xW054xRTDPzVuInIGVNwfhVnOpuaRe4
 ac8qzmvsisWAHTSwATyyh2lQM4j3GTT+YgfTlnX+xnTkWWDcDQ1QJM/FLNOUp2gu+vKNebi
 4PIdlh56euOWziRZzNIlQ==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:u5Fne7zv3PE=:dNBEMEjx9T9adiFRODtMYS
 bP1c0hzh59ZKklI1R2cCTJxmTQB45y+QzZX2y0PFbg7yQDeDmSxw52obaEhQa1OdTD86QHXVu
 bbxucMZOIMSbjbLPCif24qpNcHVpf4XClB+BVAEEUwNoQd2u+UA3qLozpzzQZNC8E146erRcl
 EAKHMtg1jl5nUIbs95J8LLOgltdAEihA4JrPrtzt7z304ULnl8JDCKZ1GtxLnSmRKL2GPNjji
 BW4Wh4ednr1BPkh3V5pGtcs7sYJeT+fCg9+1Ao3TSUyI/IMvOamAK8fVGMSOSa8NHso9PeZQG
 p+/g7H+fY7krRTHyMZXbNHeGC6zFFjT+rzUWo+KzQQxtKMn72KqFsaG2rKGpecWbyuM0yrSA3
 xhBNrwHcineUl3uAIRxEl8UFkkXss6eAsh3Q7PLKHNXtaR46/z4OumfDtDC9mwHJVuXp9n3KM
 M7BF+sRUvasT/1Hjw3WGpiUE/z6upYRlSC4e82UllEXyFN6W5gyX4r9kjFZV6JMJQR4UbuEW1
 4g31iHAtTXNZxCvREA7FhQCKM9rtiy8KysUGnceOt3v+aXNzH7SzuQRyJ9+2MgAUQhI7LT2+v
 VClVfxb0rprv/xqBe8DR8WZ7vcK3mCHHlNMCIkYs+6FCITYMw1DHU+CCMKRJej3SCQwR1LGqj
 hUPkhNKbB6PRt/vk+6c77kVWLHqNnHOCN73BdRo6Txp4mZxNOEbbazHi+tZW5jEpWLgiTWfNM
 nvxwa10sJSG8hWu5gGN/aF40RAay1aoGu/k5TA+el84toB3VY6ini0lBJUlrb8M4zbzR9pa9/
 Pm44sh1ruNP7AzMnsBiAzzZX6lqJDAsa+TO5YVhuM9bbKS9hD1KoschPm0B4aJf++t2+ahC/M
 b/QH4Oe5cluIsKILSHGZSoRrX9sqCtW26taTpZQSEsbNePGKbzsw8Oa3lejuRZ+LJbcUK2xLt
 ttQpHqsFbUZlBFAYwpFpRbcNm/+LQLWVCLIU9Rk9O9c0hSOeoGw2PLPC+aL/hsmQVrqlLI/F5
 NAfMG2YBy//Wmh7LL2E3535/ea8r6g8I6Rr7Y4YuBRiuLWpoBhkDI8ZJxuoe0BuQmictlfruZ
 QdH3qyP8a6Ex3I=


--EIEte5+tjVxDHmE6
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi,

On Thu, Oct 28, 2021 at 12:16:57AM +0300, Dmitry Osipenko wrote:
> Use devm_register_power_handler() that replaces global pm_power_off
> variable and allows to register multiple power-off handlers. It also
> provides restart-handler support, i.e. all in one API.
>=20
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---

When I boot with (most of) this patchset applied, I get the warning at
kernel/reboot.c:187:

	/*
	 * Handler must have unique priority. Otherwise call order is
	 * determined by registration order, which is unreliable.
	 */
	WARN_ON(!atomic_notifier_has_unique_priority(&restart_handler_list, nb));

As the NTXEC driver doesn't specify a priority, I think this is an issue
to be fixed elsewhere.

Other than that, it works and looks good, as far as I can tell.


For this patch:

Reviewed-by: Jonathan Neusch=C3=A4fer <j.neuschaefer@gmx.net>
Tested-by: Jonathan Neusch=C3=A4fer <j.neuschaefer@gmx.net>


Best regards,
Jonathan
---

Full Oops log:

[    3.523294] ------------[ cut here ]------------
[    3.528193] WARNING: CPU: 0 PID: 1 at kernel/reboot.c:187 register_resta=
rt_handler+0x4c/0x58
[    3.536975] Modules linked in:
[    3.540312] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.0-00021-gcb24=
c628b307 #622
[    3.548214] Hardware name: Freescale i.MX50 (Device Tree Support)
[    3.554357] [<c0111540>] (unwind_backtrace) from [<c010cdd0>] (show_stac=
k+0x10/0x14)
[    3.562183] [<c010cdd0>] (show_stack) from [<c0bf240c>] (dump_stack_lvl+=
0x58/0x70)
[    3.569824] [<c0bf240c>] (dump_stack_lvl) from [<c0127604>] (__warn+0xd4=
/0x154)
[    3.577191] [<c0127604>] (__warn) from [<c0bec844>] (warn_slowpath_fmt+0=
x74/0xa8)
[    3.584727] [<c0bec844>] (warn_slowpath_fmt) from [<c01593c8>] (register=
_restart_handler+0x4c/0x58)
[    3.593823] [<c01593c8>] (register_restart_handler) from [<c08676c8>] (_=
_watchdog_register_device+0x13c/0x27c)
[    3.603889] [<c08676c8>] (__watchdog_register_device) from [<c0867868>] =
(watchdog_register_device+0x60/0xb4)
[    3.613764] [<c0867868>] (watchdog_register_device) from [<c08678f8>] (d=
evm_watchdog_register_device+0x3c/0x84)
[    3.623898] [<c08678f8>] (devm_watchdog_register_device) from [<c1146454=
>] (imx2_wdt_probe+0x254/0x2ac)
[    3.633346] [<c1146454>] (imx2_wdt_probe) from [<c06feb74>] (platform_pr=
obe+0x58/0xb8)
[    3.641314] [<c06feb74>] (platform_probe) from [<c06fb2f8>] (call_driver=
_probe+0x24/0x108)
[    3.649636] [<c06fb2f8>] (call_driver_probe) from [<c06fbe08>] (really_p=
robe.part.0+0xa8/0x358)
[    3.658384] [<c06fbe08>] (really_probe.part.0) from [<c06fc1c4>] (__driv=
er_probe_device+0x94/0x208)
[    3.667470] [<c06fc1c4>] (__driver_probe_device) from [<c06fc368>] (driv=
er_probe_device+0x30/0xc8)
[    3.676468] [<c06fc368>] (driver_probe_device) from [<c06fcb0c>] (__driv=
er_attach+0xe0/0x1c4)
[    3.685032] [<c06fcb0c>] (__driver_attach) from [<c06f9a20>] (bus_for_ea=
ch_dev+0x74/0xc0)
[    3.693253] [<c06f9a20>] (bus_for_each_dev) from [<c06faeb8>] (bus_add_d=
river+0x100/0x208)
[    3.701563] [<c06faeb8>] (bus_add_driver) from [<c06fd8a0>] (driver_regi=
ster+0x88/0x118)
[    3.709696] [<c06fd8a0>] (driver_register) from [<c06fe920>] (__platform=
_driver_probe+0x44/0xdc)
[    3.718522] [<c06fe920>] (__platform_driver_probe) from [<c01022ac>] (do=
_one_initcall+0x78/0x388)
[    3.727444] [<c01022ac>] (do_one_initcall) from [<c1101708>] (do_initcal=
ls+0xcc/0x110)
[    3.735413] [<c1101708>] (do_initcalls) from [<c110198c>] (kernel_init_f=
reeable+0x1ec/0x250)
[    3.743896] [<c110198c>] (kernel_init_freeable) from [<c0bfe724>] (kerne=
l_init+0x10/0x128)
[    3.752224] [<c0bfe724>] (kernel_init) from [<c010011c>] (ret_from_fork+=
0x14/0x38)
[    3.759844] Exception stack(0xc40adfb0 to 0xc40adff8)
[    3.764933] dfa0:                                     00000000 00000000 =
00000000 00000000
[    3.773143] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 =
00000000 00000000
[    3.781351] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    3.788347] irq event stamp: 143613
[    3.792102] hardirqs last  enabled at (143623): [<c01a3ebc>] __up_consol=
e_sem+0x50/0x60
[    3.800397] hardirqs last disabled at (143632): [<c01a3ea8>] __up_consol=
e_sem+0x3c/0x60
[    3.808491] softirqs last  enabled at (143612): [<c0101518>] __do_softir=
q+0x2f8/0x5b0
[    3.816591] softirqs last disabled at (143603): [<c01307dc>] __irq_exit_=
rcu+0x160/0x1d8
[    3.825014] ---[ end trace 7f6709d2c89774b4 ]---

--EIEte5+tjVxDHmE6
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEvHAHGBBjQPVy+qvDCDBEmo7zX9sFAmGG624ACgkQCDBEmo7z
X9s6ChAAk6BAeo5fWoSSZHjjpn6ATqjK8ym6Qwe2EuauLkxbrtHK3OsbljBzCdtj
p4LUnHOvUjWpnlBRfbbZSXKo5B0LxFtUhe/Cz9IDICft4K2DmOExc+xY9zQNcjMO
rNIxDh4Q8qUdWv4c4B3p812s36yVKoaAGT6XHR9ISWOWmTWq/SNXiFetn9KdMaRs
INw4aNL0grB717V8ucg5RtEOcrLEHRPf6Rv0b6yhfRdBQGx5XCatsdkofBcM9Rlr
ECVr+SDk6hoMvPgqbnK3hh1fU0MGiDoyHN/+PhdW5k71EoqynneLlz1xhU4P1TAQ
4leH70X0lvTJSlpZ+dWkgVGkGzE8LtrjCwhCzZvf+UKqhKf4VWp9LInkiRU2mEaN
ZGeaNLEL/oEE2nHZuWuW8imYr/WoYQKyZX+rG/g+aViMxom4/RC/IF5GFWxInCgi
IBVFSiKxJOwKvKHZrsiJsk+zqcmb1TRObyYd0ecsOPD413IWwnFIl6502QRQolJH
UvdIANNtt2/XORmBBNNGCQtZJ82srfxBpn9jzBtCZu03m4RymWvURbqbIx7mAiz0
6nj5cArubiCB8WOnOcCmsgHzLZDzN2SAy5UFxsELy67LUXWjsGMG++sHbkDuaiji
/h71rvx5wmakG7quyBIQDCUtxgSMJL73yZA4N8UsQABCsmnNXgE=
=jBJI
-----END PGP SIGNATURE-----

--EIEte5+tjVxDHmE6--


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 06:32:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 06:32:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223062.385587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjyCq-00059g-J2; Mon, 08 Nov 2021 06:32:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223062.385587; Mon, 08 Nov 2021 06:32:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjyCq-00059Z-F6; Mon, 08 Nov 2021 06:32:36 +0000
Received: by outflank-mailman (input) for mailman id 223062;
 Mon, 08 Nov 2021 06:32:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6K4m=P3=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mjyCo-00059T-Qe
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 06:32:35 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02on0606.outbound.protection.outlook.com
 [2a01:111:f400:fe06::606])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a54b7f27-405d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 07:32:30 +0100 (CET)
Received: from AS9PR06CA0265.eurprd06.prod.outlook.com (2603:10a6:20b:45f::34)
 by AM9PR08MB5876.eurprd08.prod.outlook.com (2603:10a6:20b:2d5::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Mon, 8 Nov
 2021 06:32:29 +0000
Received: from VE1EUR03FT031.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:45f:cafe::c5) by AS9PR06CA0265.outlook.office365.com
 (2603:10a6:20b:45f::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Mon, 8 Nov 2021 06:32:28 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT031.mail.protection.outlook.com (10.152.18.69) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Mon, 8 Nov 2021 06:32:28 +0000
Received: ("Tessian outbound d49ee2bec50d:v108");
 Mon, 08 Nov 2021 06:32:27 +0000
Received: from 10504046ded9.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 55EA275A-11E7-4DF0-B7A1-964562735880.1; 
 Mon, 08 Nov 2021 06:32:17 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 10504046ded9.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 08 Nov 2021 06:32:17 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com (2603:10a6:10:2e4::7)
 by DU2PR08MB7312.eurprd08.prod.outlook.com (2603:10a6:10:2e7::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.16; Mon, 8 Nov
 2021 06:32:16 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165]) by DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165%3]) with mapi id 15.20.4669.011; Mon, 8 Nov 2021
 06:32:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a54b7f27-405d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+TvlC+Qf5fMHZA2wsrLTQs85mXKNK4nPuyn+1eu5GaE=;
 b=dVmDnNY7/z0EfrakOXCFkFZNYaJnm8j3JvqtKpkCYvxeop63Yzn/jbRePH+moktsLtMAMuliN3LZGr7eXrpW/5F1D+/DzVGsGHqknFU9PekrqVSdTLJRGc+aeFdtivigLOMRN8VIuOVlQ29I33qJuZoCwgGGi948vbB6kiRJ470=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BNKlZYsSJ+TZD2bAWaq/J+anSUcbZcmUcqdarmNeXeQDA51wvkTtublcM60wMRQ6WX3qQEHsKOboKLOzwopsF7WJd4BLPbxXL37qWYxnnl36NG6xHSBvUfvkjaMELafCw3vKveiSz/k6pUkiN9EHyEhv/UsODOwtzuFb5VoKoOYdxY7C4HG2y/GN1DmLBrYaPUjbnKJHkfcnQBoQl5YtIUHbbdU8z9aErEcU6holkmXFl1uBfync2OeQSoQNlW9NtlDx3GSVGG2OyO2cVAMkcFbAAvgqZS6EQHkTlrPG8l5J6Ug8PcfF6vVzya+uaXrW8k9Xa6ndxAJdVxqUOuk2SA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+TvlC+Qf5fMHZA2wsrLTQs85mXKNK4nPuyn+1eu5GaE=;
 b=QI/nPpMrWj9QbWgoidtkJtoHVUPw1tlTRr58jl+eYrIT4vNjrVzwj8fqiKrtOMEoZ23hoyTXTkp2A+FbIuabOgTO88VWpwQZS6pQXicDkL9WMRIgGVCAAglmzUDLGl9xTi26nwjoS2STjj2mWYcvP50zLuQ2SHSyPIiMu8uQPcauf8OLH2r9rbwALt/PEg2ty5AyOW7/ia8imHKi1zuKP3v1Nz7i7BdFHIioSfkssnqIM6cEqJtn+31x8WbBh+2JlYZprjJ7YyObGXXt1LTUM5/BJDiLWLNLs3mYKxklK8OsGZP6qVqI5fkNVCZT5LtRsqiSJnTvzGF3mTRcYO5hMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+TvlC+Qf5fMHZA2wsrLTQs85mXKNK4nPuyn+1eu5GaE=;
 b=dVmDnNY7/z0EfrakOXCFkFZNYaJnm8j3JvqtKpkCYvxeop63Yzn/jbRePH+moktsLtMAMuliN3LZGr7eXrpW/5F1D+/DzVGsGHqknFU9PekrqVSdTLJRGc+aeFdtivigLOMRN8VIuOVlQ29I33qJuZoCwgGGi948vbB6kiRJ470=
From: Penny Zheng <Penny.Zheng@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Wei
 Chen <Wei.Chen@arm.com>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Julien
 Grall <julien@xen.org>
Subject: RE: static-mem preventing dom0 from booting
Thread-Topic: static-mem preventing dom0 from booting
Thread-Index: AQHX0eWC7qpRq+VAt0Cu1/k92WugAqv0ODjwgABBVXCAAJnMgIAAe3eAgAOZYsA=
Date: Mon, 8 Nov 2021 06:32:16 +0000
Message-ID:
 <DU2PR08MB732591B79A7ED13090840C46F7919@DU2PR08MB7325.eurprd08.prod.outlook.com>
References:
 <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop>
 <DU2PR08MB73256624607E7624CAAD38E5F78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
 <DU2PR08MB7325A7A5658B1EB7C6EB4DECF78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
 <alpine.DEB.2.22.394.2111050836580.284830@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2111051554000.284830@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2111051554000.284830@ubuntu-linux-20-04-desktop>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: 07EF7716B777804999C1E46D81FE44C0.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: b4a8e45d-0223-4e2d-097d-08d9a281891d
x-ms-traffictypediagnostic: DU2PR08MB7312:|AM9PR08MB5876:
X-Microsoft-Antispam-PRVS:
	<AM9PR08MB5876A3B437EE4E16CB687B23F7919@AM9PR08MB5876.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:3631;OLM:3631;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 f8x6neSoYj46PSgjrx5ZQPcUpm7M1px8xHzv0g8DmRfRy8aie00Uggvu/SHzRJKz6vp0tPWAIaqZIWRByqIkwj/B+psYDnL702EaFYMSIV31E3PujWA4xeKarO/g3jc6J7FwnfnBuIaD+rBe4grCtNpR9dBV11dB6MV4Tbi47gp3RiEV/g0LWn+uzl58hdgBsktj1GlC8hN7wOplkXnhflHRFMnHk2eunyDE/61J9Oyd8tXUCG7esjkUPpFPb5vXoBP7eQVssJKCyYrS7QWT7f6jaSl14QDfuzTBuGu00XBzZxNVDBfLUdst+bYDYfB9rKhRGjggC4NbJrNhLQwuufmG35n8lAOxmXy/U3Kc/wA7DY4PE2iWsSuoSfZfmQRhSyx4G3rU2erGAZzPHwrS2gb3k4douFtBNDPdUCE0FvEmajW69YJxn7uezRoZbq9x2tHgsTXzRcAtAF8mXffCyMHHALayC156dKybjhf4ZX9c2rOzqrS+YIiSJnGXs9+dwbYYo5Mow41U9Qiu8ln3l4rRmvvhYg7TUm70YoXYbcb594ZCl6dor4B1NPd3WeA0M7g4X0mzpoUPAd4p+FjNZN9DcXprrLsXqrsOMgH0HPKa8M2EAmf00MFUjp4faqMA8gYZbl3K37wTpGyZri4tIOZ0kRhoHcfBFuM+EnP3L2TE9O0L1WLfA9orz+2VDJuLptqvD1LFC3OpjHAgVj4jIQ==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(55016002)(54906003)(66476007)(66556008)(26005)(83380400001)(86362001)(122000001)(64756008)(66446008)(5660300002)(6506007)(53546011)(316002)(9686003)(52536014)(38070700005)(8676002)(8936002)(6916009)(186003)(508600001)(76116006)(33656002)(4326008)(71200400001)(66946007)(2906002)(38100700002)(7696005);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB7312
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT031.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	26286311-1fe4-4ecd-f94b-08d9a2818215
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	6jAP1Q8mW2UzLhOZwRt1VTdrnD3fyd5L6hT6aPRZyJLl2X36nOJ+wOOlGsvYTqhwaM7mg4HAqU/uJIXHyy0eutA0ytVjaqYVpIHLCFqN6ADWzQtCq07SNFEJv+5vmpghUvdLp8aZVs5zxqTAw5ut7nl1N6F4UABUMJrzFIEYQjemq0zgm4wdZEDY9KnXow4KAlCz+T+t1IEkPy3H2qhrGe4u4PzYrKROJFIJCoCqSUBkBY6SlK9647BzXChIpVR1aAO4HXnKOnhEoyduY/JVlN6EhUPpC6225CLTZAEpzjnNx+w6FIDlNiqxNi0CvE5yigTvpkBMqXPD/3KEnolt56VHQE9ELk7bkhO9vbDrx3cewv1yKNsCtqjpMSVlvsODNSCLTKSKKaoLEl6qHQNpW+IfZW9r0ani/+cRPNrSMrX3HjGVcJvBB7/rLoChz/TOFaOcH6kvf4UdgG1snv+SIh8tsyUrNsX46WILCbXt4zZoVITbIiauwRDB2mTgz/Ns3PgMTRfoy+utiHLq3MoAxgze/8TBxDjAE7mDCOh42Mheu7Z9qWTd2c5v1SVvoUhb/q3LLrGAdCFpmj/kAZ8we9MjnITUkl4tqOZzoVU3hMa6bV4aG9kI5SKiwNoyxA3cD+9qEc8O8wUcapEKzHAQWP+mo7KN2k7Txpje3i0q1JQ10UDQwdiG0e40jJNZoftwkpzLJ/t4i3JKYrFWlN4UGg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(83380400001)(26005)(53546011)(336012)(4326008)(81166007)(356005)(36860700001)(82310400003)(186003)(8676002)(7696005)(70586007)(5660300002)(6862004)(54906003)(70206006)(508600001)(9686003)(8936002)(52536014)(316002)(55016002)(2906002)(47076005)(33656002)(6506007)(86362001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 06:32:28.3358
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b4a8e45d-0223-4e2d-097d-08d9a281891d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT031.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB5876

Hi Stefano

> -----Original Message-----
> From: Stefano Stabellini <sstabellini@kernel.org>
> Sent: Saturday, November 6, 2021 7:03 AM
> To: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Penny Zheng <Penny.Zheng@arm.com>; xen-devel@lists.xenproject.org;
> Wei Chen <Wei.Chen@arm.com>; Bertrand Marquis
> <Bertrand.Marquis@arm.com>
> Subject: RE: static-mem preventing dom0 from booting
>=20
> On Fri, 5 Nov 2021, Stefano Stabellini wrote:
> > The scenario is extremely simple; you can see the full device tree
> > configuration in the attachment to my previous email.
> >
> > - dom0
> > - dom0less domU with static-mem
> >
> > That's it! So basically it is just a normal dom0 + dom0less domU
> > configuration, which already works fine, where I added static-mem to
> > the domU and suddenly dom0 (not the domU!) stopped working.
>=20

Got it. Sorry, I missed the scenario you are talking about... I simply thin=
k what dom0less
means that dom0 is absent... ;/
 =20
> I did some more debugging today and I found the problem. The issue is tha=
t
> static-mem regions are added to the list of reserved_mem. However,
> reserved_mem is automatically assigned to Dom0 by default at the bottom o=
f
> xen/arch/arm/domain_build.c:handle_node, see the second call to
> make_memory_node. Really, we shouldn't give to dom0 static-mem ranges
> meant for other domUs. E.g. the following change is sufficient to solve t=
he
> problem:
>=20
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 88a79247cb..dc609c4f0e 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -891,6 +891,9 @@ static int __init make_memory_node(const struct
> domain *d,
>          u64 start =3D mem->bank[i].start;
>          u64 size =3D mem->bank[i].size;
>=20
> +        if ( mem->bank[i].xen_domain )
> +            continue;
> +
>          dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
>                     i, start, start + size);
>=20
> However, maybe a better fix would be to purge reserved_mem of any
> xen_domain items before calling make_memory_node.
>=20
>=20
> I found one additional issue regarding is_domain_direct_mapped which
> doesn't return true for static-mem domains. I think we need to add a
> direct_map bool to arch_domain and set it for both dom0 and static-mem
> dom0less domUs, so that we can change the implementation of
> is_domain_direct_mapped to:
>=20
> #define is_domain_direct_mapped(d) (d->arch.direct_map)

Yeah, I already pushed a patch serie regarding direct-map to community for =
review,=20
and it is also based on your old direct-map serie.=20

Today, I may push direct-map version 3 to community for review~~~ If you're=
 free, plz take a look.

Cheers,
Penny Zheng


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 07:26:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 07:26:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223069.385598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjz2P-0001pJ-L4; Mon, 08 Nov 2021 07:25:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223069.385598; Mon, 08 Nov 2021 07:25:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjz2P-0001pC-Gw; Mon, 08 Nov 2021 07:25:53 +0000
Received: by outflank-mailman (input) for mailman id 223069;
 Mon, 08 Nov 2021 07:25:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mjz2O-0001p6-Ld
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 07:25:52 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 19a52faf-4065-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 08:25:51 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2059.outbound.protection.outlook.com [104.47.0.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-34-AR6760qmMhaiqdpz7HGRuA-2; Mon, 08 Nov 2021 08:25:49 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6863.eurprd04.prod.outlook.com (2603:10a6:803:12f::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Mon, 8 Nov
 2021 07:25:46 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 07:25:46 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR04CA0079.eurprd04.prod.outlook.com (2603:10a6:20b:48b::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Mon, 8 Nov 2021 07:25:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19a52faf-4065-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636356350;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=J6mpVkDjt/XouPaaAa5fkNpl7f5bqFWVabWCbTrqlZE=;
	b=jgxad1SIlzA5rdKwHU0GuyXfwr1LbzbUW+c0vBtSljb0vrdosTfVO1CDBd4HfG9/fs2nN5
	pNEDAMLN2ySxWMU5u/2+um+yj80wL0FhfJKrrSN3f+6J+1KLr77zCVHtMTskLoqrtqeV11
	rG8dXL18SFF/xMCjIPkZDY0KD6ZuRVs=
X-MC-Unique: AR6760qmMhaiqdpz7HGRuA-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fHIvCvWjIjVI0DJ+CpseDN2uZwbaIAEiisqEi8DL5FKR5nz9Fg8JKUF51oQYgZAj9f6UMVuO+lU6JVfrox3U1y9kXzo5CKZlgvbmyx/qtosTu1Tu7z2NVBNG9MoLeKjpUL4kpBMqQYhfUFLgqUIu1v9tHI55a/y6V3tqYaMoSpJTD4IHOYI4UiOQphT4XKJZJAj/xBWewckPxWOlperuXimR+InuB9T6nULhBIpgFTyaD5tq19AqQeoH4HQ7mQuCnt9W9BD4MycaF+4ObGRFa8XWOhTXiPdl0HDcCzybajph7XGcH/7qNNbxLIKrZni55mdUUp6wdPG8jham5TpedQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HEzHDHgvA+riJnyqQwRa7+/5OHq7PCoSB7kENDfplXs=;
 b=A7DKvUnCrpWegTok/uHQhtifOQYd/1er8N6fRRH/GgEGPavsXEkdjSSNbQw31vlSuhU+m/U6kpWs0OjKMnZFB1jupw8oPLvSnfQL0PosjWyvp5WzdSNCMZj1+cdxFc507cSQvkgDwxTqBy3Whr0XOiUKi74/5Yl6GOhTmCLvkua8DJNf7u+T9Wfz+MjAmknadnRK2xgO6hP8vBimZWTa7P7pDUCVmdjB1heASgYvP8Yt3WPqqRMGY3m5IB+M4L9j8C09ppJv5QZfhGau/fjKeGeBa6p9VzCHo6hw70dwcsgCqFYCE7/ItckXUbU1IYqtrIo4HmnZOvn1SIKAvMyN4w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
Date: Mon, 8 Nov 2021 08:25:47 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR04CA0079.eurprd04.prod.outlook.com
 (2603:10a6:20b:48b::23) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: dbae88dc-edfe-4971-7568-08d9a288fb4e
X-MS-TrafficTypeDiagnostic: VI1PR04MB6863:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6863BB494C1983FEC3558243B3919@VI1PR04MB6863.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	190R8IxXC0IlbTmmpsFWNqQlEVTAlOXt+y8PygfPebq1tzF8av7/6uW7WaO8kKu1ePSVsIK2NG0iIhJlFjSrawZl27b8PNIYdVZsG2eSeMfBAOu+1XfuARtmNU2BX8/OYatjtjU/9jKx7khMyU3HUHdvmJWLfbXkQzWgZh/4QywLLcMKINXatCYwntF5S81jCMeS1ViiWMGNn7RATmtBUYf2vg5LxSRn2N0Fog1RDKGW8wInDP1B2VVUv97VDx1Adm1F3igtq1SEjM4qFNGyxm+bHu2XJjG0ZuBtBr20aIxqKN17zQfcQcjvokNmZSEULbAdLfgJ0RRg/dk77k+Dm032f3nD79pCxyUWhy7UA4MZsjfqfgms0774gU5dOvekssqS6oybCWdrHYB40k6o3XKwZ17RF+NoHHT5jNpFxKi5serU2o+D3JFvc24P6UIhXDQhhMqGuZ/i/LQiBcbIWamq/tFWP/mCDJWbEz+9dPv5P6g41MVNyiGAPotHrkN9M54QZ9gC/waZshKZq7CEabdiz03QFblbORohobPGvVbRJZ4KdRW3dL7/BIioFgOI8RGdXmx/OlTUWozSHj7l371przSxLPHl+LW0lh+FtIgRLoiv36PCD8C1geKiQyEUzdJCjqQ8x0xN86FM9RLOMKXZWpP3ub9xca6y3T9RqmUtqKVbKZvYtHx5QtEZQwg87Z9LgG63EQJqtQyYLdoT17jwFzG7Xo6epWXAZru9AjI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(16576012)(83380400001)(86362001)(8936002)(8676002)(2906002)(66476007)(316002)(38100700002)(31686004)(4326008)(31696002)(6486002)(5660300002)(508600001)(956004)(53546011)(6916009)(2616005)(26005)(186003)(66946007)(36756003)(66556008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?tFc5SkEAt9rSwCx4O5Tg1gz3B+QvwEOuBjzPC9cBt6k6kT4TUAHo6gaDIg5Q?=
 =?us-ascii?Q?+OpdiQTovHMI2UZZiZossOcVuxn+sRDdy4j28Cxngh6dAwQnEsWG0p3kCjQz?=
 =?us-ascii?Q?k/RiZzEKM31D9W7WLCxgi+lzO0MWSBlYvWjZYsNKwbULtlRnKJtjGjORlhkS?=
 =?us-ascii?Q?Y2fhl972WibfjUVJ9U7E6qhdYACHPdndrEOGBHcLnaAPMEM4vUWJ5ufDD2wK?=
 =?us-ascii?Q?OgawHsIuu9wIVfM4XP3lx+Ndzuzlfc4pfYJXjxzzccNRmbziNuezuDsUVal/?=
 =?us-ascii?Q?it22VwhaZ81AV5XDKdtrbsFM9H6GT176wuuqxUvtTtmOjNJouACSLPHxieYU?=
 =?us-ascii?Q?jh71WbooZ9uW/nd8hxd7vChW3Hkp87WiLnxFLbbiKAz8ALMaqvzWJs9UrXHf?=
 =?us-ascii?Q?h+EmvFa3sI6b5bYUO/fbu/iSLzr1Jms7N0IMmut50nGqXkmyYZJf8tXbeWpw?=
 =?us-ascii?Q?uptBvrUyIlTSuJv+nZ+kCSTZ/3I0KudmRDfGbSPgUIBrA6Tes7t0QuXCB9Uy?=
 =?us-ascii?Q?/1y7up3ZiB2DEv6kJACuqVTYCy7UIolFOhNdAdEB9a660ld7k1TnLKrnVRk4?=
 =?us-ascii?Q?qGlBgWmm3jq7hUW6mpqmrd6HdmACpCwg3SgzchOxeU0/U0g6gxK03if6ZsuX?=
 =?us-ascii?Q?pgogX0L7MT7hHPjAupX4Fjskevlam0bar073+zlT07Bqf5LCsjkXaqJmOP0H?=
 =?us-ascii?Q?7tnloYdnL7ew7EMyfCV2vEEAxs9z52rjDUnbTmsGZeDXVEO03R4XGuTTDRr3?=
 =?us-ascii?Q?XrvyTuHTGH1iGJi3+GSgXzycKboTTBkfzOa2vLj5BCKvqMtjrOHmS57CQlI7?=
 =?us-ascii?Q?3yXXsVXdIH/AvWrguYqDveQYtvmfrH52hm494IULCtV50c21JUgepxylClzO?=
 =?us-ascii?Q?2SiJZME+oOW52pKP5UxU16SByLWqDt05ABcuON9L5N1az9udU+IDazmBsvbV?=
 =?us-ascii?Q?eWgCi63zHySG0ZAAdgR3tjhZTdcO6a5wsCAdbo/pl2BDYC71HSQXBSOY6z/M?=
 =?us-ascii?Q?F4zwxPk/yRoW4PwYf8Yo99vAt4Xpqy1DJJ/JEWNX6zdw7THJlz90X5YvEO0C?=
 =?us-ascii?Q?5BhoE5kJFZuug1qoIsqOYso+TqPhEtoKqHk8PpTGwLnGcj6t9reqYYh8z1Z4?=
 =?us-ascii?Q?gNwOYLiBu2FozvfKJukkzP2I06DxaHMIaiqLpYglGL5NAGWRR/WZ0YwLYmtX?=
 =?us-ascii?Q?77trbE7JMOyZEMgzL0WVd+lWVTMh8ZbTfQji4xqk34cK0ECMq3dJJaDVBU/8?=
 =?us-ascii?Q?62jOg2NKH9CIdntchDoIvqzKiIopBQt0O4Xv/SyVoYhDxvR1WnCUVemFNnSo?=
 =?us-ascii?Q?pEe9O8wwh3DeLrgFeV0NFwFtKBXyJlmGjILdjUsSpB7ksftWPRgemdr4tNru?=
 =?us-ascii?Q?p0l4Sj+Xb0qX1A/8xvey8c+RZeI8D70U2MhCnKRWdOwTvZp9ZhtBhwl0S55V?=
 =?us-ascii?Q?fKsUgHifabMSOUYmmk/2z0ttJRCH9FlYLqEGi/HglNtdpnWBqFBnOM/+VqB/?=
 =?us-ascii?Q?6o/fiX2oB2UEIB7BC3xQnp1uhodb9tipKI7xENu4Xx0EPTvbb9TdM5rUanfK?=
 =?us-ascii?Q?xjI8X8xKU01dVk+8d7UUArwqvoApuiEQFqOWB/MggTFHzDp2fkOMFwyApzkt?=
 =?us-ascii?Q?THisiNhCbmDHMKRbIFYRoNw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dbae88dc-edfe-4971-7568-08d9a288fb4e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 07:25:46.6540
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NCbKk7+F1UFvcdWzM8W55fEqSNdfQNJ7FasILk6QPAx+RGWAhw6O5qJ/OspfsGm6UfL3NKQtvQ6x3KmTp+AQxw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6863

On 05.11.2021 16:33, Stefano Stabellini wrote:
> On Fri, 5 Nov 2021, Jan Beulich wrote:
>> On 04.11.2021 22:50, Stefano Stabellini wrote:
>>> On Thu, 4 Nov 2021, Luca Fancellu wrote:
>>>>> On 4 Nov 2021, at 21:35, Stefano Stabellini <sstabellini@kernel.org> =
wrote:
>>>>> On Thu, 4 Nov 2021, Luca Fancellu wrote:
>>>>>>> On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.org=
> wrote:
>>>>>>> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node=
(EFI_FILE_HANDLE dir_handle,
>>>>>>> * dom0 and domU guests to be loaded.
>>>>>>> * Returns the number of multiboot modules found or a negative numbe=
r for error.
>>>>>>> */
>>>>>>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>>>>>>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image=
)
>>>>>>> {
>>>>>>>    int chosen, node, addr_len, size_len;
>>>>>>>    unsigned int i =3D 0, modules_found =3D 0;
>>>>>>> +    EFI_FILE_HANDLE dir_handle;
>>>>>>> +    CHAR16 *file_name;
>>>>>>> +
>>>>>>> +    dir_handle =3D get_parent_handle(loaded_image, &file_name);
>>>>>>
>>>>>> We can=E2=80=99t use get_parent_handle here because we will end up w=
ith the same problem,
>>>>>> we would need to use the filesystem if and only if we need to use it=
,=20
>>>>>
>>>>> Understood, but it would work the same way as this version of the pat=
ch:
>>>>> if we end up calling read_file with dir_handle =3D=3D NULL, then read=
_file
>>>>> would do:
>>>>>
>>>>>  blexit(L"Error: No access to the filesystem");
>>>>>
>>>>> If we don't end up calling read_file, then everything works even if
>>>>> dir_handle =3D=3D NULL. Right?
>>>>
>>>> Oh yes sorry my bad Stefano! Having this version of the patch, it will=
 work.
>>>>
>>>> My understanding was instead that the Jan suggestion is to revert the =
place
>>>> of call of get_parent_handle (like in your code diff), but also to rem=
ove the
>>>> changes to get_parent_handle and read_file.
>>>> I guess Jan will specify his preference, but if he meant the last one,=
 then
>>>> the only way I see...
>>>
>>> I think we should keep the changes to get_parent_handle and read_file,
>>> otherwise it will make it awkward, and those changes are good in their
>>> own right anyway.
>>
>> As a maintainer of this code I'm afraid I have to say that I disagree.
>> These changes were actually part of the reason why I went and looked
>> how things could (and imo ought to be) done differently.
>=20
> You know this code and EFI booting better than me -- aren't you
> concerned about Xen calling get_parent_handle / dir_handle->Close so
> many times (by allocate_module_file)?

I'm not overly concerned there; my primary concern is for it to get called
without need in the first place.

> My main concern is performance and resource utilization. With v3 of the
> patch get_parent_handle will get called for every module to be loaded.
> With dom0less, it could easily get called 10 times or more. Taking a
> look at get_parent_handle, the Xen side doesn't seem small and I have
> no idea how the EDK2 side looks. I am just worried that it would
> actually have an impact on boot times (also depending on the bootloader
> implementation).

The biggest part of the function deals with determining the "residual" of
the file name. That part looks to be of no interest at all to
allocate_module_file() (whether that's actually correct I can't tell). I
don't see why this couldn't be made conditional (e.g. by passing in NULL
for "leaf").

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 07:41:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 07:41:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223077.385609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjzHF-0004BY-37; Mon, 08 Nov 2021 07:41:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223077.385609; Mon, 08 Nov 2021 07:41:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjzHE-0004BR-WB; Mon, 08 Nov 2021 07:41:12 +0000
Received: by outflank-mailman (input) for mailman id 223077;
 Mon, 08 Nov 2021 07:41:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mjzHD-0004BL-Jd
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 07:41:11 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38c21a14-4067-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 08:41:02 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2051.outbound.protection.outlook.com [104.47.0.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-11-EufC4LC7Mt-YztdV605APw-1; Mon, 08 Nov 2021 08:41:00 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5165.eurprd04.prod.outlook.com (2603:10a6:803:54::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Mon, 8 Nov
 2021 07:40:58 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 07:40:58 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0251.eurprd06.prod.outlook.com (2603:10a6:20b:45f::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Mon, 8 Nov 2021 07:40:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38c21a14-4067-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636357261;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=W7934aiGa4z4CkDhDcjeqpydDD4Aq11SQqEQMSo+8Ek=;
	b=X+8CQE2aJn0yYLAFksF8aW2C6iAhuLVb5YqtCVYTGkrzaTZCQHsY9iMM6pqotboWQ4A1MS
	oVD2X9piEkts8MF4d9Uri75C2ybIaVyDt1eAoVXdq6T7eBWQxzwB42N5rytMx8ecZHt3TK
	wlSvIiWsztGF381ufOUJZUOZsdSySic=
X-MC-Unique: EufC4LC7Mt-YztdV605APw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Fy6mPaOYlSc3gdF9qKC/QQvV7dKsqOKMLjXEJjPrRLxRUMscIJ3gUOCAV0pBv1tQWejVG+R27Dr72RAztt/YovPrLQQDFLvHElZKRzi5vZ066MJG2BAup7ztbDLtIodmRIRFpYMaHwNtw5NkBccugkI28J4EJgduGi7a4VjySfg1o+5FZvq3mQrVf0MwjYWZ7zPdfywqSJCT3rUVnWLEt8SyC5W9DuiVuKUa9XExzQRd/JZBi5gelImetW5QY+rQDoPOeuTTJH4hC9haxCkHnIIi77yuz4MrcRwXhgMfWZ2KCy3NUEYRIt48Gb65g4XG9lOmD1zTgC9trvDlqcq+Iw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SECgzteS/cSDA5kidSyrcpqCB9IelkZD/cdV4vU94fw=;
 b=TSgK3cfZAJXdYmj+sUoCCP/7LbUYhrIBJJ8Zs4OIGlQjA0b+OaMJAD6/ddjJ5xfF+aKdcyVkEM2/skKsSAJAxDKhbh2G9NJJVfEBjhvNfyKN4sCcRco4uox9k7yxwIPXPh41hYfZjM5pAyRPslMczD/hPtjTDRfX/+P7KITItfOfGOyB7iZQv86WwQklzsQ79ubvNS1VwAfJIaYD9H6bSw7yzE/fBfujK/lAlSTjsZFpLI7p8eBEnv+9GxmXYN3CnR8XyyWaQvn+4pdT4xSPguGy0IBMJxNX6SfLkhDI+rVt01gz2c3g4cnUgkCBHiOTCygGJP9JjfsLy3cAE+NFqw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <af235a71-2916-2498-b19b-4759a9e6fa95@suse.com>
Date: Mon, 8 Nov 2021 08:40:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <royger@FreeBSD.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Ian Jackson <iwj@xenproject.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
 <YYVQAH7OYmFSVOei@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYVQAH7OYmFSVOei@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0251.eurprd06.prod.outlook.com
 (2603:10a6:20b:45f::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8ded0939-44e5-47b5-80c8-08d9a28b1ab4
X-MS-TrafficTypeDiagnostic: VI1PR04MB5165:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5165A86E7F4EF991319211E7B3919@VI1PR04MB5165.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	pMxTlK+oLMWEb4hbNmfNjVuha23N2bTuLJ9mGCmroOdIqZu7Y7d2xbwkONbXERhc49yEQ0vJ5WOB/eBME4qcH3uxoo06AjDkwlQgPF4S7/ecSIU4QD7xdWpVdBXeI2voLxYaEwcUXl+h5xIiy0wExvfV3Hmt8EhGwA7dUUu7IT5TyG6mdGxZ+Pxw+wRuWuHrEn1RabYPJXw34aRCAv/n9i0barLlTmKpzhf219nAJNAn4MYb9fJgumtrR2WpgRlLmw0WnGsnuFlSDECvu8vBMtE8Pk8UaSanAjtI2kwaIFnZ7tYBP0zsKyTzcUUwZISP2T/1SJSJp/sXGcc5Y2ASSfHv932hqR/hB0BH4A+PVXa9YzPX6ucPY952szJCt81pqvcZH+ErAfIa+JbYnxp5NUG+7byL0nfuoAzfV5aXd/Pin/3BMyPia+0K5joYDqyEb892ugRbo31cSDfdVEHy4AyOBgM77FYLdPiorZaiVCKNL5h9PmYvS207AsN9T2FAXrjcAh0SWeDn2U0hDRUraoFy/TKcs/uedkkaqYTn2sMVPiuBgDxcE8V5Naoqzq6Xl+VBpzMvJ+iV2TeIRDOXfLeSTF8gOXK7oc39pTVs/gkyqbORs2fzhwT6VuUDsr1CsW9r8ENHcLxzN7Zlr0kAuvL37vJuQqOakpVSJXQL7H2etBBLdNwe1TKfnDv87Qkwzp0AfEFoAzyToPhgM0qK+xNnqQIqdOO5kwIGqUgn5mkgAZ1+/448x9ZuIWGgWzMk
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(38100700002)(2906002)(26005)(186003)(508600001)(956004)(2616005)(66476007)(66556008)(31696002)(5660300002)(66946007)(6486002)(4326008)(16576012)(31686004)(8676002)(316002)(83380400001)(8936002)(6916009)(36756003)(53546011)(54906003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?+Ergs11HBSP8N5P/6neFdrTG28krArYsIvG5+iGZErHAYA6pgBuCQjIy2Hjy?=
 =?us-ascii?Q?hv8e5NrN1qPh8rs/HPB1DhhikXa1Dkx8sqXK9xPofaJDDuCs3LYyOl8CXkoC?=
 =?us-ascii?Q?Y/mp59hJFRf17aT0f7wim9o59p2aPBvcldhzSIAm1qw/a5nTwuqstPfKs3o3?=
 =?us-ascii?Q?XKIUcHg1GqOsC+IyLidq3BP04vSEs4TXtwfjN/GBE6pQxew9UiF1904CrmtV?=
 =?us-ascii?Q?70yzf6oEae6JblQwIgb8C4/+rn2xLX5p3BZnnsoetGvQje/0PJy6p8o/tArm?=
 =?us-ascii?Q?wofX5O5qE6aHh0tbNoCex5/7qcNMs1Yd7QTuZxDIMf2WBkMRxmj7iY5ZuqYY?=
 =?us-ascii?Q?yRd/iHoBHbmrayZJCbLNCBXXpjjbUJK3A7Y+BAifo2wmihU2LubiXmh/wZpF?=
 =?us-ascii?Q?VmGiItftTEg9nm+KgPA9osnfNiLR5SFztGfpcLyssmsXy5XzjR++E7Kg5BTn?=
 =?us-ascii?Q?iwg8jC0CoUrzxNZBa+Hsd6duKAEVIZWBQsvvry4YkGLAp4AyyNG1PSXYRFxE?=
 =?us-ascii?Q?7Enmm4SPos1eVgIs71BS/UcIh4TO8l3LPzIEc9squeuL9XohrPIo1XD6pY4x?=
 =?us-ascii?Q?mWZ0D4odFkwWEUzC5vRWYwDcDkEuABHbDWslSGgRFoWIoykBc7fTjmWxYCBQ?=
 =?us-ascii?Q?bSyw1k4HWQPp096iB085FlnFXHLQcB2MqYSv/mPBvw/3JRWJLq604zY8DZNf?=
 =?us-ascii?Q?WLwCcFlMcNB0aHlUaS0PyS75kQT34Vq3z8E/JoBa1pLyPkE8e/Xmr+b9Ab5J?=
 =?us-ascii?Q?NIBnD2Hl67WfSsvkMTBKhZxgLRKDT2qYIBf44leIKGE3jt92uw/wHCYUHTLv?=
 =?us-ascii?Q?TJKPnzjgpAckL0ywwf29Oo5QfLjzswsoVgzo2FvQoemLG04IdsDw+daILUE6?=
 =?us-ascii?Q?HZLJ9QWEfjS5stGEJcOm6XoRVvxTT6VWn84D6nFfjYjQ9/cV9HzeFlUihP58?=
 =?us-ascii?Q?ESXxzSmZwcPdtbp8CRxnrcFOwkQDCOrccrZjkQxvaJN6y2rM6ipm1DSBC+EQ?=
 =?us-ascii?Q?c+TdRZaZMigUXcc8XgTEBo+BS4iO/orRbhfwDEF5Nm/JhXCfJ8bgj+jGmvav?=
 =?us-ascii?Q?z12ci2FJ0lIz7l0iEVLrKofPjGLqtYWQa6nHz2++rpRV934FlX+AMz742eVo?=
 =?us-ascii?Q?T46RnB9AW32wHFrGJkXU1Do1FxZgYee8gQEWQNBfDX288Zal9HB76kNovmDs?=
 =?us-ascii?Q?+Z1k7Y1dzPuSyoJ+RdxWIHo/73hc0A9/lBfTx5MmC/OQCwprj1w6arfV7WBp?=
 =?us-ascii?Q?Ldva1T6HGRsrNgK+e0bOzk06XnPXY0gGQDSuZhqrPXgeaMPoNGlayJtLcr6m?=
 =?us-ascii?Q?Yjrt2FIVn+683tM/sOGQaevtlcpr02M0/yiAnKl2WcBhH56AA+d6GTyXV7+6?=
 =?us-ascii?Q?o2/xo/V2j49IWbvHbAy+z7b7fMadJWDunOTOSWfN+TN0geqyXJxasFrKi37W?=
 =?us-ascii?Q?zLxImxN+UjreaNmj95jrkdgi2vM1B3ZQQ0ipKUJKLrKtEWjyMf9BLRJ82Lt/?=
 =?us-ascii?Q?fv/kC9vcpJ1pXM6/B5KiLgb/1XcfQzzGXpjhhdNF9xxcu0ghn6ybEXnLwMHX?=
 =?us-ascii?Q?1QN2I4FqXjiXoX5og3OOkhWL0OMOXhT7leDp5Go7K9CR2HkCxODEAc0K19Fv?=
 =?us-ascii?Q?yz7K7GFPDXwPeOWltpllP8A=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8ded0939-44e5-47b5-80c8-08d9a28b1ab4
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 07:40:58.3106
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gp5gZjX0iX3qYz1I4AA446Zktd25KEqT8UgJtU0logZ+hcS58Hn1nxEVRBJwBNgv3aGz2Hhbhi7O/lEMcsa+hA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5165

On 05.11.2021 16:38, Roger Pau Monn=C3=A9 wrote:
> On Fri, Nov 05, 2021 at 01:32:18PM +0100, Jan Beulich wrote:
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1699,6 +1699,13 @@ void __init noreturn __start_xen(unsigne
>> =20
>>      dmi_scan_machine();
>> =20
>> +    /*
>> +     * IOMMU-related ACPI table parsing has to happen before APIC probi=
ng, for
>> +     * check_x2apic_preenabled() to be able to observe respective findi=
ngs, in
>> +     * particular iommu_intremap having got turned off.
>> +     */
>> +    acpi_iommu_init();
>=20
> If we pull this out I think we should add a check for acpi_disabled
> and if set turn off iommu_intremap and iommu_enable?

Hmm, I should have added a note regarding this. If we want to exactly
retain prior behavior, acpi_ht would also need checking. Yet that has
gone wrong long ago: We parse way too many tables when acpi_disabled
&& acpi_ht, and hence while correct wrt to prior behavior I'd consider
it wrong to (re)add a "!acpi_ht" check.

As a result I'm of the opinion that checking acpi_disabled here also
isn't necessarily appropriate, and instead IOMMU disabling would
better be solely under the control of "iommu=3D".

Additionally iirc Andrew has been suggesting to drop all this "ACPI
disabled / HT-only" machinery (I'm somewhat hesitant with that, but
as a result I'm also not very eager to actually correct to accumulated
bad behavior). The change here simply would be a tiny first step in
that direction.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 07:44:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 07:44:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223084.385620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjzKV-0004nr-IK; Mon, 08 Nov 2021 07:44:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223084.385620; Mon, 08 Nov 2021 07:44:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjzKV-0004ni-FB; Mon, 08 Nov 2021 07:44:35 +0000
Received: by outflank-mailman (input) for mailman id 223084;
 Mon, 08 Nov 2021 07:44:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mjzKT-0004na-E1
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 07:44:33 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5fb0710-4067-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 08:44:32 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2051.outbound.protection.outlook.com [104.47.10.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-1-MtLzVd2GNsuDGjE9w1q8yQ-1;
 Mon, 08 Nov 2021 08:44:30 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3293.eurprd04.prod.outlook.com (2603:10a6:802:11::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Mon, 8 Nov
 2021 07:44:28 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 07:44:28 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0013.eurprd04.prod.outlook.com (2603:10a6:20b:92::26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Mon, 8 Nov 2021 07:44:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5fb0710-4067-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636357472;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OVweTEN7KxIselixCClr2YKYnI99RNoTp3bwVVyJftI=;
	b=YvCmSsU7YqUIVv3nE4vaoDAm7Ku4Bv+ule4Uyjgv72TNp3qsu2fKOnfBftC2ZRO1Be3wKu
	kgVJvBIqCtfQpcQ2CRBLlj/LAtqNor3LexGetOfylu6EVXZDcIiyc12Ij2Ho/D32l7kcH/
	1WsiTi3Q3phtdP94xPtUfuf7GpZjg5A=
X-MC-Unique: MtLzVd2GNsuDGjE9w1q8yQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lh5vP2bjxOIeIfolPjiDVfb2qYrsIP6KBoUxNpxenWjPtOn4dpFgmPtQx9YHmhnEWoSawPiAvgimL8TcztFUClHT3LnIju/sOJC1/XvbdQ+pQ22b6pe3Fa5W791b/+nuGqO6YC2bGMAsNkKYojIh5xUEVQcAdaLrYuI51vo/9Xjjsa4KoO9Y7d3Rm1QGldZYF0dDLWkgJuSOAqbOGlLQSwwZiGGmw2vbBi+APlcE+tkEmFUzJPurBNCarcILmavnZtC83WD91VP1/aK09oSUGDqMFsd6X9hyIElw8LDpunP+f7FUKrXj4BqYVObVFh5QZ/5hkSFXRQRQ3wHBNXWbFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CmjmGHWPIPLIQqbFK1Td037co0FrTMJ0kMBRKyOa4pI=;
 b=E1tWJyeptoCtePH8kcEl+MIsBNTigRVqOt/I/QGmZHjF12y5xjqkrzXuEJJ29RbPEXX/ZQksfE+CHn+2N2Vxz1HU7WE9O2XSx3uBrzkGJA372X/GlIvIjbkUDpdS2hCu/wVnQbO5e8MqJce9tdvuiNfDTcnfqMr1m8NSKg0L8SMDqxHghenE3wK9Tn2jGlwyp2eOGDiYoVofNktbWjaWN4qp1kS39Yvq944rP17nJz/0gsz+L7MyFOrSbhCCi99oh02YX/I8jSRZ9GZpYuNd0QgKL5/Ikqa4IlqAQc3N/T/THAUqPWkUYHqpHjgxevpnUA2dO5sCgomb+Rq9BDns2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <89eda99d-67da-ad97-6040-db79702636bd@suse.com>
Date: Mon, 8 Nov 2021 08:44:29 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <royger@FreeBSD.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
 <YYVQAH7OYmFSVOei@Air-de-Roger>
 <24965.21029.795504.152439@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24965.21029.795504.152439@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR04CA0013.eurprd04.prod.outlook.com
 (2603:10a6:20b:92::26) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 03a5dfee-7bae-4138-3df8-08d9a28b980a
X-MS-TrafficTypeDiagnostic: VI1PR04MB3293:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3293AF90D7CAF20DF2F91201B3919@VI1PR04MB3293.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	yEpJopSMCfh9EvXgwv0S43WVBASpzntb5+JHfdYvq3fTV5GuuTpAnupJWIV618Sjjdg1MNrnTp3SS1sBxX/nXObAN8LR0FinP0w8SR6MQ5kyIqJn/Ylj+XCnKMWLSNrwqmIcHl974/T6V4mwqDtvBrqu476LNx4W7siatoaVc2gdJUBS+CaVYGlG4JyQaeQ2WaSozO3rn3UvV401gmi+iJ7Xz3T0HoEnLNaayd7LsNDbSfHbjkWCqWd708/VIpo336Naa92kc7XQjXsguQmKQBM8Jo+pbBVewbYAYthCBXKUmRLgFFFbKLUweJzw0pXLc21/kRXxtzxpg83MBv1kq7WRx/1USFNTEV7omfpQ+JcKl4QbNrc3bDkCc1JW8i03sLsIRIqAMWOdlIE7oKyiHI7kW70r8433s1YgG+EYvVz55m3wyhg8IhZNFpxviG5uHTAxqXO7UN+M+5gBFjzqfiTKHxLJ7mX3LbPXlkAUB+XlNKWm9TQ9un5wkSy0xRuWX4xkG5nizIM0+xvrKLbj9rwMBOgPIDqHpdRJPaNt4XJKdtdpqixcZ2mjT0cVA7eG4eB3D0OOVXVsjF6v3LpsVJHQcTyw79B/whOJpslP4oqm7sfx2GwINgvLgLTKvkg/rmtX9ToXNqGzAr69gNFhAMUGQa6+hvSpcQGpsfLeKWyibhoVc+JVUewTCd4gD/knTvcOCpH3zv1PkMWNpdUsInaU6GgIEEDYWTsE6SBEREh6p8bkQy+V7ngzakrsi2zt
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(956004)(8676002)(26005)(36756003)(16576012)(508600001)(53546011)(31696002)(4326008)(86362001)(2616005)(316002)(66946007)(66476007)(8936002)(66556008)(5660300002)(31686004)(186003)(38100700002)(6916009)(2906002)(83380400001)(54906003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?BERJe1wUTIM4NHgZ/dbUcAhbNAm5bQut3lcuvdFIxP+5jTMhjAZHF7+fCZ8H?=
 =?us-ascii?Q?/Hwkj6G8RYWzRWthAuj1MSfSh2jWXVQ0TiBIh13xmg1pJZvc+mLzPTeLeMZf?=
 =?us-ascii?Q?xHwGrvSfEj7SQx2oHobjQHV4VVG8KbZIZCEUS3st1lIWeFHeVxwb2zz7FS8T?=
 =?us-ascii?Q?Bjm3bxjib48VZ/wz8d9kcpc6KQrMWRoSeU5Tg7b+Nor/TruU05k/LpkAaytY?=
 =?us-ascii?Q?BvkqBowXcEWT80907Pu6uk3G7xWIQ7uOlAipBo0JFIpn85oGrTQZaVMb6/+A?=
 =?us-ascii?Q?6rqxufq386BhP6LgkfWYSs7Qoxifl9fvfBX7olJtXSjcdn821/bHiDubLQq6?=
 =?us-ascii?Q?XOTi+k8BJoSVMi8npwUIpdtV/CH9n1tQE1VGencCjYnMoKfFAklu8mkXV7R+?=
 =?us-ascii?Q?QNbSzK/FqkQE0EGhXMrP2p6ofJGMXNLyyYITV06iprsYLyKH1o+tweftc96M?=
 =?us-ascii?Q?S3tWBMuteM5CUpq2b2ls5fcModwwnBZXlNtM7v+iFvwQWC2yqgfzmwzZjIKQ?=
 =?us-ascii?Q?Perjlr+YnHNaoa2/AsKnh7oKuKYptDsplODSN823LAHa3+fnEXIGN7RanTD2?=
 =?us-ascii?Q?k9/N2pcyu4wqaiQkmk/wG7DRQCdmDeP5bGSnA6+69+NCz2TWwvFq1RUsqKmd?=
 =?us-ascii?Q?Vvsb98Exzg5u9s6pZ74U9+3q9jhXAr2xa41IgCEr1AuHNXDN+3s4iFRoXWLV?=
 =?us-ascii?Q?s0x6jyz026eItDV7c/5AJ0pyrn9TaB88xafpudpZMH3Np98iMD8br/sji6wA?=
 =?us-ascii?Q?QAx6AF9eGtfHiskF4xLG5JqfUqikaTP3860ghibhp9MBiUr0VEqXUyzLnB0w?=
 =?us-ascii?Q?EYZG00coz2oNkZY81InLvqd12CfhHrsDRrXcKEyxvNQRXEHDPAncDHje2Hfo?=
 =?us-ascii?Q?YFjSpS/g9ZPAkq606PSqSQ2pNiRL5U8K6tCZTcJAKd90gxbeyN7kTriKaK7G?=
 =?us-ascii?Q?Fvcmr4y/Nro6PuJvBIAyBHoEh76TiQZfpYhl/LXJ06HXGbD87pcdL5y09rle?=
 =?us-ascii?Q?//muz1046Zx4nLqTqkSNPDlBR1itzEn1P+K5VLBqJh++jq1+zoPvl94stXsh?=
 =?us-ascii?Q?/W5rx+4q6/y44aHkIfmAspJQjZyw6RGmWh4CwZahASUIpUpJCC3C1AdrD8A5?=
 =?us-ascii?Q?N80D9QOrClJ17JNtiycE2jbETj/TkObTCgIG5pKfCeio+TEzHMdrWGclVpSV?=
 =?us-ascii?Q?88P/Ye33TVMXazg/XGNGEzjUx8/Nw4x5fNFGRGOgHnLbVkZLDyPppNp2goqO?=
 =?us-ascii?Q?sS0+jrkU0tQWwyrkTTtzlgVqmDZ/Qm6aBJrxy+xLQAKdaZx6dumAOJJ9b5/r?=
 =?us-ascii?Q?d5R4oSKnGuNmYLqVr4P+9sfLyx+EtohA1Iqsqq5LqKqDA2LjKDL5x59fnZ6r?=
 =?us-ascii?Q?vaECvLZOyJbI3ky0FBUlbayTJXokontx3YGwGeR2/Iza/R4PYAArhO/gazmf?=
 =?us-ascii?Q?THPGUq3BqWtKuxB/oas3zlEqLqfwQfV1A79SmdQgrFx2rtX/OZpsS4yHozdC?=
 =?us-ascii?Q?bczgxs9ONOZwBPfhW0HFQkG3MWJLH06mDDg5aSUszmHglKoLru+C6Vlc628V?=
 =?us-ascii?Q?m21V4ZZuvXTd9kzpEKURVzS/Lvs2hkBOwQjP3J/qnlRq54Oyxf0Y0vjauQKf?=
 =?us-ascii?Q?xL6bJKlRU1UE4yRZggmqgC0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 03a5dfee-7bae-4138-3df8-08d9a28b980a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 07:44:28.5847
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FLYMQMYbB1CBIMX4eYsQpH6QGy3WETTiO0vzYatSnkEhIO7MW25dkIoVvvoeqdhEFJ+TPNJMoYVhnrv/5AzRcA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3293

On 05.11.2021 16:47, Ian Jackson wrote:
> Roger Pau Monn=C3=A9 writes ("Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer=
 probe until after IOMMU ACPI table parsing"):
>>> 4.16: While investigating the issue addressed by the referenced commit,
>>>       a variant of that problem was identified when firmware pre-enable=
s
>>>       x2APIC mode. Whether that's something sane firmware would do when
>>>       at the same time IOMMU(s) is/are disabled is unclear, so this may
>>>       be a purely academical consideration. Working around the problem
>>>       also ought to be as simple as passing "iommu=3Dno-intremap" on th=
e
>>>       command line. Considering the fragility of the code (as further
>>>       demonstrated by v1 having been completely wrong), it may therefor=
e
>>>       be advisable to defer this change until after branching.
>=20
> Thanks for the frank analysis.
>=20
>> The main issue here would be missing a dependency between
>> acpi_iommu_init and the rest of acpi_boot_init, apart from the
>> existing dependencies between acpi_iommu_init and generic_apic_probe.
>=20
> I have been thinking about this.  I'm still not sure.
>=20
>>>       Nevertheless it will then be a backporting candidate, so
>>>       considering to take it right away can't simply be put off.
>=20
> This part confused me.  Under what circumstances would we backport
> this ?  AIUI it would be backporting a potentially-fragile and
> not-readily-testable bugfix, for a theoretical scenario with a
> straightforward workaround.

Well, I've said "candidate" for this very reason: To me, every bug
fix is a candidate. Whether risks outweigh the potential benefits is
then influencing whether to _actually_ take the change. A reason to
take it despite the available workaround might be that
"straightforward" doesn't also mean "obvious" here. IOW once you
know what to do, doing so is easy. But one first needs to arrive
there.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 07:47:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 07:47:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223091.385630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjzNR-0005RI-1v; Mon, 08 Nov 2021 07:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223091.385630; Mon, 08 Nov 2021 07:47:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mjzNQ-0005RB-V7; Mon, 08 Nov 2021 07:47:36 +0000
Received: by outflank-mailman (input) for mailman id 223091;
 Mon, 08 Nov 2021 07:47:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tVlX=P3=gmail.com=geert.uytterhoeven@srs-se1.protection.inumbo.net>)
 id 1mjzNP-0005R5-LH
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 07:47:35 +0000
Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com
 [209.85.216.54]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2205577b-4068-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 08:47:34 +0100 (CET)
Received: by mail-pj1-f54.google.com with SMTP id
 n36-20020a17090a5aa700b0019fa884ab85so8128350pji.5
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 23:47:34 -0800 (PST)
Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com.
 [209.85.215.172])
 by smtp.gmail.com with ESMTPSA id e14sm5368584pfv.18.2021.11.07.23.47.32
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Nov 2021 23:47:32 -0800 (PST)
Received: by mail-pg1-f172.google.com with SMTP id g28so5782870pgg.3
 for <xen-devel@lists.xenproject.org>; Sun, 07 Nov 2021 23:47:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2205577b-4068-11ec-9787-a32c541c8605
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=niQCVpji9nu8a8Mfie3ofua8MkF1HzpLuS22ys5pvwg=;
        b=0QcHrMMSQJxp831IZSg0XwnJLCIW4yZsqYFIcYJTblNau1cRQ1anGsrxszTYA41DdP
         IJHggbGpsJWQzYCAXBoPMES7hGTN/cncUtgam3OA27p83ngBazrtQGEYPd8O6UDeO3fi
         Ld6+EWW8mQBn0NnoZN5zxu04BlqF1wTW6/EOlBKXJi/qdnU9zKqWwuFTWtjsMth5SiFz
         k3QlPFhO5ffoAL3+2SOGpfcfw2Wtj92z68DnE4+iLYqWsBg6RthYKwImoslmQQrm3QMD
         60775Rs0/1fBVXQ0CF3ykzr50AkeqWJH+iskgzmIIb5aTRiEH1zrxZ1sizkS25Wpp4Dn
         6uug==
X-Gm-Message-State: AOAM530fBxvujElYAdqD49Z2ANd9iNBA26eEJuhhBYZUPq5wh7leFq7L
	bwOnaRuECsvDiYsfslH/RVq5ZcyABO4ZTw==
X-Google-Smtp-Source: ABdhPJwwnw8cYmijPCKsVWR3w8z+YZUgFiQu0Glm7Hx3iYQvNzbkhoPqd9fcDkx54n+OSQNWFg5hXw==
X-Received: by 2002:a17:903:32c5:b0:141:eb39:30b7 with SMTP id i5-20020a17090332c500b00141eb3930b7mr49187230plr.41.1636357652580;
        Sun, 07 Nov 2021 23:47:32 -0800 (PST)
X-Received: by 2002:a05:6102:3a07:: with SMTP id b7mr71214037vsu.35.1636357641114;
 Sun, 07 Nov 2021 23:47:21 -0800 (PST)
MIME-Version: 1.0
References: <20211108004524.29465-1-digetx@gmail.com> <20211108004524.29465-22-digetx@gmail.com>
In-Reply-To: <20211108004524.29465-22-digetx@gmail.com>
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Mon, 8 Nov 2021 08:47:10 +0100
X-Gmail-Original-Message-ID: <CAMuHMdXpW0389_uJR2xg+HCstXanutPxrcRdvgu8kxH1J9T++w@mail.gmail.com>
Message-ID: <CAMuHMdXpW0389_uJR2xg+HCstXanutPxrcRdvgu8kxH1J9T++w@mail.gmail.com>
Subject: Re: [PATCH v3 21/25] m68k: Switch to new sys-off handler API
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>, Jonathan Hunter <jonathanh@nvidia.com>, 
	Russell King <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>, 
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>, Greg Ungerer <gerg@linux-m68k.org>, 
	Joshua Thompson <funaho@jurai.org>, Thomas Bogendoerfer <tsbogend@alpha.franken.de>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, 
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>, Helge Deller <deller@gmx.de>, 
	Michael Ellerman <mpe@ellerman.id.au>, Benjamin Herrenschmidt <benh@kernel.crashing.org>, 
	Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>, 
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, "the arch/x86 maintainers" <x86@kernel.org>, 
	"H. Peter Anvin" <hpa@zytor.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	"Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>, 
	Santosh Shilimkar <ssantosh@kernel.org>, 
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>, Liam Girdwood <lgirdwood@gmail.com>, 
	Mark Brown <broonie@kernel.org>, Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>, 
	Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck <linux@roeck-us.net>, 
	Daniel Lezcano <daniel.lezcano@linaro.org>, 
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Ulf Hansson <ulf.hansson@linaro.org>, 
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, 
	linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org, 
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, 
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, 
	linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org, 
	linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
Content-Type: text/plain; charset="UTF-8"

On Mon, Nov 8, 2021 at 1:48 AM Dmitry Osipenko <digetx@gmail.com> wrote:
> Kernel now supports chained power-off handlers. Use
> register_power_off_handler() that registers power-off handlers and
> do_kernel_power_off() that invokes chained power-off handlers. Legacy
> pm_power_off() will be removed once all drivers will be converted to
> the new power-off API.
>
> Normally arch code should adopt only the do_kernel_power_off() at first,
> but m68k is a special case because it uses pm_power_off() "inside out",
> i.e. pm_power_off() invokes machine_power_off() [in fact it does nothing],
> while it's machine_power_off() that should invoke the pm_power_off(), and
> thus, we can't convert platforms to the new API separately. There are only
> two platforms changed here, so it's not a big deal.
>
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>

Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 08:37:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 08:37:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223103.385642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk09I-0002aQ-Nw; Mon, 08 Nov 2021 08:37:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223103.385642; Mon, 08 Nov 2021 08:37:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk09I-0002aJ-Jv; Mon, 08 Nov 2021 08:37:04 +0000
Received: by outflank-mailman (input) for mailman id 223103;
 Mon, 08 Nov 2021 08:37:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk09I-0002aD-3Q
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 08:37:04 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b956b8d-406f-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 09:37:02 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-11-Z8ygnxu8P4mtLm4x5FRKrA-1; Mon, 08 Nov 2021 09:37:01 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB2959.eurprd04.prod.outlook.com (2603:10a6:802:8::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Mon, 8 Nov
 2021 08:36:58 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 08:36:58 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR07CA0046.eurprd07.prod.outlook.com (2603:10a6:20b:459::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.8 via Frontend
 Transport; Mon, 8 Nov 2021 08:36:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b956b8d-406f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636360622;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=pQH+qnZWHPYSImvJ2NoTXv5Okp1TsKj16J73BtM8niI=;
	b=cXGvHnDqkMbB2Lh4LIFxblLtv8AIrnWAhSLIak04Rq72bUhPqkd45fFLcaL1sZ8Z2n31O7
	WR7PGcfVI1ojIDWOkhVZyibihe/RQaiOBq39wSEspp9gSp3SxMKFc1LgvrgQh1jImJJGpc
	XJki2i4EOUqNAOHXrtmAB0LjqFH+f8g=
X-MC-Unique: Z8ygnxu8P4mtLm4x5FRKrA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ToWgMnaZk+dVKaVgAyQEqsGJhB+K39cXRJb8FPb9AsDuLeJ6zM+rin22UCvCEi2oxKXdmn9EVmE9lJPzrLo+wBWA2MiaCnjXBG33iz5Sjm2kMb/l3OEm4rCSDkqprkAW2O4UC2v6hm/M+V5RSEaSGKgrwvy3HWl5v2AJ9te3HMNLx5aQRPHgzrAzr5DxGq7jhODOfwIthl+BR2Otx8akJziKXyIeo2uqV3vhswOqfIFKyS9fLgGdDuDTBRUP0q+ncf2vYDnWEJAWTlEodSuiBezR9DokguXkWdcYhyJeOdn2QN5WnXYTlUypDIj54KbyDLwbhXWRLCL1Jk6GUv45Sw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=n4Xis5gh//tZd1OL25Ne0yN/fy0rOcDVpGLF3Fzq7A8=;
 b=EYKvuXtwupolFWrqYZNXWDONpnouk9sOFEXZRoa04InQaA0oZl3miiU6D7WUol0CFW7/DGuJJl7co4z7gfMT3qPl0l4BYo7cIf175e1F+MYzatk+SNejgU+kBflq80C5KKD6Ij6ywNjM4+0U/IUvLLL2wzIzE9PzcUJYKlqkh+Kt6hQ1LdmFNhjZIHsEqLQk4TXU3/qZRwYZcAB9z/rvlc1OxCn1J0j3HUGjnOc2PaQvBhGR9HkeFecl9GQ4koA9rh0J9rUgGQwuaGhEayGdn6u6vcg2EY+QJjVh1d2DZTTlgeweWcebBeZd/WjuoZJG4FcjF6wLJiK/VdnOraL6Tw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <17fdb6e6-382e-81b3-2f11-3e520e1c7ef8@suse.com>
Date: Mon, 8 Nov 2021 09:36:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 00/15] xen: drop hypercall function tables
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 xen-devel@lists.xenproject.org
References: <20211101152015.28488-1-jgross@suse.com>
 <ddde3565-de0f-f025-f762-9d3e08a5c2e5@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <ddde3565-de0f-f025-f762-9d3e08a5c2e5@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8PR07CA0046.eurprd07.prod.outlook.com
 (2603:10a6:20b:459::18) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7a50d381-d9e0-4d09-6dfa-08d9a292ed90
X-MS-TrafficTypeDiagnostic: VI1PR04MB2959:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB295919F6BDE4E3CF6776746EB3919@VI1PR04MB2959.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	o7FBcqQ51sV+0gKHNAUurupcsNkHXCfwMiu1lUFz7VmPLrKbybwCTm6WdF/LjR8kaLNCPsL0y7WmGH2oqoknt4ilcT4aE3y/oWAZcAa6uTHx37ggNJo6aQ7KmWWpljtNs7+Ng3kN6qc1wZ0uwc3ZC07osR9M73INtKjEThsRLWJCS2PlTQPVYREZSWd8F+Nx5/3u9rdyNDTvR/28cpVq3qIOKws7FyRinUMgdFtIct8/AyxY0nKAWyjyRG6Z0KVfCVdC+oYv/Ehfwy9ep7/SpSSzxnzp0P5hJHMQ95xm3il4I0wUO+8XAXZ5kZvsFIghTLMrTftd8/rppcfzA1uuN402Qy8jpSUbVg2DVqjLwqgSjZS2hnzCxaHcTxIxg26RmIGU7c4X57sg6pCsPEEUoogCOUz/mhOTZTbSfo/glAlL13esEtVATLf/35OM9bRCcBnKIsvhDVIDaLsRRcEbdnqLOa12O/cjPQFzjFLl3uJ+aj4JChzBf2Bfs+GQLoTQ81mBQxINQpKOETdRpuMRnWuFDYE5DDzlZ6WLbAwLPE4+7lzH1IaaZZhVy1ChAsItfY3x+fiHjZgspPZpAqStld4ReX8uwGQoVpWJnvZuYHXZh18az0dFEs34yZ/VEbmsL5j1x+01RNu2wXkuoZbXafv5ZZJlhq8W0fXVGAmE+7ZI4EM1UinMDvBz+y26JbPfNNHHbhSLqSVESGhF967eyaAf7A4BDt3TkY3FoCxpSqxtVRvcUeZNoA6FVDISM1Zy57iRC7zSzwAVRSaugUGQ2Pwdo3PYNgodhXyCE5FDAjmmexxa8oEHTJBmN97DfJh0qXrvdDxmkoKkrejCkEjtNA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(26005)(53546011)(8936002)(966005)(83380400001)(6486002)(110136005)(31696002)(66946007)(38100700002)(54906003)(16576012)(66556008)(66476007)(316002)(186003)(36756003)(7416002)(8676002)(2906002)(4326008)(5660300002)(508600001)(956004)(6636002)(2616005)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?7sMfZGJEjQQFyDePIXS59wa+vz5NJuWvSudzTV//hH7MJ4Zlr/KsdIK5XT/G?=
 =?us-ascii?Q?uHpUiPWNN5EGpQJLw714DWklSKyGNNcAm2uop7Aqc9Y4TmYh3voBaQt6T6ND?=
 =?us-ascii?Q?mzgqxiAggb36h7l2WHVG6BAC7fZqKfY++f8UEb6J2PtLa4d0FssdiOtWKJG1?=
 =?us-ascii?Q?YpqhWDBbwnw8ItKBO5pC4SxJfljEdO5ZYFQmvogED+QKQVPIyBExz6Ng8uSQ?=
 =?us-ascii?Q?4FJGIyMnNK/yMVorc9qsXet6/gBitqdQvRtbSpfEZqhAxrk7LvTRupGHXQOK?=
 =?us-ascii?Q?6r+9iQcLVHPURtHiGisYwFOKByLHkx5eTbxPd4D2i0uI0EQRMJ/xgW8M0+Mj?=
 =?us-ascii?Q?6DN5axz/zQEwAQCTJXqd3w4rYJBjLd7vrEryruzsOZC9Az3nFEHVXvcrLwZs?=
 =?us-ascii?Q?I0Nl4lPS+XREpHyxwOTgRB0LTEASVf+rwH2vQtZyD4bhiaKm8jvBzPYsfp0p?=
 =?us-ascii?Q?qgddi6cEttHEg16OxXz8ghscmf4b+p4naCdb837rmTlhKKKlvFC34ar64hC2?=
 =?us-ascii?Q?3bEhXjeHr426z7wPXIo7SxNkU7GMuYh5LsIZYjbKAxk1TX8oomrjRonkxzye?=
 =?us-ascii?Q?Ygx08caDr5Mepz0GEpH/SdeVAAk9nfaM0IGZ2/yiI7b/RbTmjoPIIXYfPqnu?=
 =?us-ascii?Q?tlkDx12cc7yLABxZF1fH6kGzf9jwJIotOgn+C+FL9zkm/lGxRIjat0Odh4in?=
 =?us-ascii?Q?6dXPd0U5KQ0rXT4cpqmnA81uA2CvDVAaoduXnWtV5NZZnW4DzbeLvGdMq9p5?=
 =?us-ascii?Q?LUx7KNxeTWNpPkqfVZzRczScLN01/0AybgcMwzkM1542XoDyrnuUyV2Yu9SW?=
 =?us-ascii?Q?rRlHKvhfjLfQAzyx4RJlw/HWSr9tS6Aw9rErZVtth1WWnlkiY24RhDwiUBt1?=
 =?us-ascii?Q?Unf3i716a6jEXJDuYcQO1q//r60wFuA9Hh+DpClCg4ZN9K/rs4G+sWmjzOOu?=
 =?us-ascii?Q?Jp4IpaHB3riD+XdvlnZDxelJzjWmmcDZIw14tiv2dxiqK71kA4QbEonTGZh+?=
 =?us-ascii?Q?NkNvnPNzqSCw0Ilp2LTTrYuFV1WkHR9I9/m6GDH1tUbwJidE5RgRL3tiRcbN?=
 =?us-ascii?Q?tPgtyAQ5ty4lcoexNYlqX883NifjFPWVN4Zy+92lYzOFbfFvJRZSfJnUuKy2?=
 =?us-ascii?Q?vLvsZVFOkIP6nEVV5tJOUa/LApAsqhU989ceQvjnxtJ36CE1TM9/1bJz4+xj?=
 =?us-ascii?Q?zdkS+L7qNHPdCYBgE49qL/LW8Yb98HjgFE+JzFxkoyYgBR0+xM9Aakv+Y70/?=
 =?us-ascii?Q?QcXewgxEdirW85Ti5C49AVLxppthXlWn5x+5yKbr3tP0TqC9sK3i9QvbZwdH?=
 =?us-ascii?Q?Vvxx2LwZhAp0iQnq6x+fyb/s7Rf72m7PBob3SNKeF56QNQlcu1bKbw0Pqy9t?=
 =?us-ascii?Q?AcnOn3yQUzFn8Hov9U8ZoYV302o5ahnIp5TFsl/LcUYVAWViprkCj/+eif9V?=
 =?us-ascii?Q?7Ct22Qgk5xviqKYwMbrw0slt/dnbbWrlnv+YtJz0i6NFVs24zCelrfnLbvpb?=
 =?us-ascii?Q?EaqU3Ucz+E3qxRbVIdfEESAuAAFVOYhAp7cE5LU4lwwUoD6YH1QpZ+Wd3Gee?=
 =?us-ascii?Q?PsMxP5z8A4qSZAkR4FlYXtCedbsVzJMG64Fu2B2XAbE9G3ehdhiQ+Gw8F9Hw?=
 =?us-ascii?Q?F15RyVPdXPxne2PlMlvL1/I=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7a50d381-d9e0-4d09-6dfa-08d9a292ed90
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 08:36:58.5385
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WKa1R8yEtHuQYgFcR0wmLDGaAzQQCCaDgfjyI3f4GNX7Ucu9y6Bk6PSpX7zB45NqHtaIFRvO5sb9XVHiHrJlaw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2959

On 05.11.2021 15:18, Andrew Cooper wrote:
> On 01/11/2021 15:20, Juergen Gross wrote:
>> In order to avoid indirect function calls on the hypercall path as
>> much as possible this series is removing the hypercall function tables
>> and is replacing the hypercall handler calls via the function array
>> by automatically generated call macros.
>>
>> Another by-product of generating the call macros is the automatic
>> generating of the hypercall handler prototypes from the same data base
>> which is used to generate the macros.
>>
>> This has the additional advantage of using type safe calls of the
>> handlers and to ensure related handler (e.g. PV and HVM ones) share
>> the same prototypes.
>>
>> A very brief performance test (parallel build of the Xen hypervisor
>> in a 6 vcpu guest) showed a very slim improvement (less than 1%) of
>> the performance with the patches applied. The test was performed using
>> a PV and a PVH guest.
>>
>> Changes in V2:
>> - new patches 6, 14, 15
>> - patch 7: support hypercall priorities for faster code
>> - comments addressed
>>
>> Juergen Gross (15):
>>   xen: limit number of hypercall parameters to 5
>>   xen: move do_vcpu_op() to arch specific code
>>   xen: harmonize return types of hypercall handlers
>>   xen/x86: modify hvm_memory_op() prototype
>>   xen: don't include asm/hypercall.h from C sources
>>   add .gitignore entries for *.[is] below xen
>>   xen: generate hypercall interface related code
>>   xen: use generated prototypes for hypercall handlers
>>   x86/pv-shim: don't modify hypercall table
>>   xen/x86: don't use hypercall table for calling compat hypercalls
>>   xen/x86: call hypercall handlers via generated macro
>>   xen/arm: call hypercall handlers via generated macro
>>   xen/x86: add hypercall performance counters for hvm, correct pv
>>   xen: drop calls_to_multicall performance counter
>>   tools/xenperf: update hypercall names
>=20
> https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/1752237172
>=20
> Something here causes
>=20
> hypercall.c: In function 'hvm_hypercall':
> hypercall.c:174:23: error: unused variable 'r8' [-Werror=3Dunused-variabl=
e]
> =C2=A0 174 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned lon=
g r8 =3D regs->r8;
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 ^~
> hypercall.c:190:22: error: unused variable 'edi' [-Werror=3Dunused-variab=
le]
> =C2=A0 190 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned int=
 edi =3D regs->edi;
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 ^~~
> cc1: all warnings being treated as errors
>=20
> I suspect it will be "call hypercall handlers via generated macro", but
> I haven't investigated further.

I suspect that's a randconfig build with !HYPFS + !ARGO. The hypfs and
argo hypercalls are the only ones with 5 parameters that HVM wires up.
A similar issue ought to exist in PV hypercall handling though, as the
compat form of update_va_mapping_otherdomain is the only other one
taking 5 arguments.

As to possible solutions - besides maybe adding (void)r8 to the -ENOSYS
path, I was wondering anyway in how far the local variables are still
warranted to retain.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 08:42:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 08:42:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223112.385653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0E0-00044V-D0; Mon, 08 Nov 2021 08:41:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223112.385653; Mon, 08 Nov 2021 08:41:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0E0-00044O-9u; Mon, 08 Nov 2021 08:41:56 +0000
Received: by outflank-mailman (input) for mailman id 223112;
 Mon, 08 Nov 2021 08:41:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk0Dy-00044I-MR
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 08:41:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b895c287-406f-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 09:41:52 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2055.outbound.protection.outlook.com [104.47.14.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-23-THIJfhhnMYepm8h1T_XGsw-1; Mon, 08 Nov 2021 09:41:51 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5328.eurprd04.prod.outlook.com (2603:10a6:803:59::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Mon, 8 Nov
 2021 08:41:50 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 08:41:50 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0602CA0017.eurprd06.prod.outlook.com (2603:10a6:203:a3::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Mon, 8 Nov 2021 08:41:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b895c287-406f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636360912;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=I9LVy9bnVK/GsSqmKAYdrdOdnm2p9mWGOzeWtJ7EUHw=;
	b=Av+BKIRQlkpuKoqtFh6zStun18e3pwxN0sczp06BEUeYENY6hbMWSERsifDHTF4BhWX5L9
	m/agngrv5P+jBpmKlt9GZb5FxswCtjG1w8Gh0jo24mdy2yhwdDjZyIz+JMI3S1Q4O7/hpR
	B6WR26CO4sSgI/sEy4wK8EnuhhAhYYs=
X-MC-Unique: THIJfhhnMYepm8h1T_XGsw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eaB+odhMCHWcSMGxGeaLaMcND1uP0zCO37uNEvz2yKQSCzAftVx8Mj/H5VNGs0lSOIyqdVKCaZfszMB2RZ1xz4vRv2HLz8hv3uFEySjrEClIZ0AYF0u/MT1+MUcTTI/yIiHZj8g3KfiWoyokh8LySWADaBwnY7xwpdirsYo5KTFpAcnMRZ+upJVMfVOojOcJ0/62w9DId2YkAXJNNMgHBY+H4Ne8rVMdHHbj0avUCE9bm6QEEju26ktaKkbb3bZ/CIyO1Fg0zDzfO0wZtELK5h1s4gKcNiJQuX+cAZMqqPMEzwWH3xMDeubEhRIdwQlPnwv2sejOazbVcrIMAquFYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I9LVy9bnVK/GsSqmKAYdrdOdnm2p9mWGOzeWtJ7EUHw=;
 b=dBFnmPZMD51popduryU5IbjUZ0ZjoYb1uVsyOFFMqzktJDOJgst0M+QOuglZO+X9X01zAvw9hAPgznC3FuvqPlt4AOjvkiNyypiTdaPjiEErvJZ/m7rwDu+fQV11S7jCY05M7NalzIuQ80icIo08+OsFXMib0ps/UrN9g2zAvb3xHXo5V9ll46eOCCxyhY1Jv58VTmCgwHdYK1IvugSQ9RKTBcaMPvTGWdpyvmS+jyw6LSGST+7cDkN05WrSPwaWqFJr0O0hSyKfvXKOpOnYStCP3OWwbtPQ/lZ1pXQWEYGYJRCbsHEnKT6vl+0IBMa9e9bALp5Vn7OJuWJlQiweiQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8695a5d1-2699-fb0d-539e-c4d20a507dc2@suse.com>
Date: Mon, 8 Nov 2021 09:41:51 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
Content-Language: en-US
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 "julien@xen.org" <julien@xen.org>, Vikram Garhwal <fnu.vikram@xilinx.com>
References: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com>
 <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com>
 <BCD82839-0BBC-4CD6-956B-E4938D9ACB7D@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <BCD82839-0BBC-4CD6-956B-E4938D9ACB7D@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0602CA0017.eurprd06.prod.outlook.com
 (2603:10a6:203:a3::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5d044aa4-82fe-4457-c5cd-08d9a2939b80
X-MS-TrafficTypeDiagnostic: VI1PR04MB5328:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB532819F16F6C940BEC46DF95B3919@VI1PR04MB5328.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	AaILNHRB99++vzhcMXwAMMMmD9eOjGKveweACj1IVESMjk9BLM6pBw8CUPB2LPx233PGCHhymeUi374RKog8qccMaLYnYf/5Vutor8D1KJJhp0wkgdZj6KbgjfKqlGjSmC1GQCaV8sp3qj+RFy9xoNn0OALpfU6aQY2Gz1ShtZWgX5nyTHsCJid9L18cE15/wwmDFIOzwe+UD3d0qIgGGrlhzucUgWHanYy5EWlXJG0TBmAEaN5LMjksIUj0zCXgtWwSvU33+nhI42aAmD55MSKXmATE8FMYzCvpTEUH/VI0atnr1NolTWawh5SpaKMdC0c6Osy4a8l+rwRZXA7RRRWU/BFbMXpzgcHQKn/S6wx3KfE2EHSK7uRzG4+HrlkTdVgxFnevVrnjGsMLx3oLQBsRhCh6M8+7GwB+kofNlOu8/91oYBSRFp7rU0CmQcBzCdfXNXAIosNdr/9qpumsn4yC5nVJPDAQPNPF+wZbBvYOydJhSnTk/AcCwwCAZ7w3aRcBQX0Qdc5mhhP7HO2LWNXBbKxn/kMhGk+SQ/WuPgGOdjC4EfDl2NxH8j2QqdOuRn9BzQZJFyvSIUNXESSXDY1ch8Om97vc0E9bpTHaC6P+xEHU8zXHGsnMfpsnzZ+69Bw0QppMWAMJh6Lr+8gsCt02RvqTlJ/nE7vM7o62SVDEibf4GqvhoXwNpMYwerSeb/Lfuo3cs+Wbge2TqmBsM/fD17IVmI59GaRuNWFjFLctUXVCTZYHLU3xwKaHDwGw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(508600001)(8676002)(26005)(31686004)(15650500001)(186003)(6916009)(4326008)(86362001)(54906003)(36756003)(53546011)(316002)(16576012)(6486002)(83380400001)(6666004)(31696002)(2616005)(38100700002)(956004)(5660300002)(66556008)(66476007)(2906002)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?d2wxMGxQa1BDdG5vSXkrR1JsaTFyQlA0WCs0QXhlUmpMRkZ4RDdTZk5ibHdv?=
 =?utf-8?B?WUcxT21mT3QvQitZcDJvdytJUTRabGpYZnpTZHNiNVdYaWJCY2RYTW8rejRi?=
 =?utf-8?B?UGFzRXQzZTdYaGFDYXpZdU5IUitQaFhka1pPdEc5Tk5qL3VkVTM5ZEJmeDdw?=
 =?utf-8?B?cVBGbmNuaVQzZ0tKRzVzTGFwbE1xNzVqTGcvUlBwRDhoNnNNTlZBdER1OFE0?=
 =?utf-8?B?MkJTQ29GQ2h6STBJb0ViZWFLc0RMcm4zMjEvanVPQ1JvTDlXdjlDSnZxYXlI?=
 =?utf-8?B?Y01sL2IyM3dwWG5SVzVHQkNtLzR0SkF3WkNwcjg4T0dEZDBsdHgyWWMyanhD?=
 =?utf-8?B?dGI4VjRJYzdaYmp6YVBKWUtQZGZ3bnJzMnhISSsveDFPazk4anRubEtkYWVv?=
 =?utf-8?B?dGdKaUNRS25paWRlTHhGeC9hU2hPT3VMYkJPcTdSMkQwc1V5WCszd1hwM3lo?=
 =?utf-8?B?L3YrZFZ3Y1RnVFFzTDZaczliVWF1Q04wTm9TSmtmd2cwZGJvRVdvNnByblN3?=
 =?utf-8?B?UmNHbDdXekQ0MUtFeFIyTjBuOEpqci9BNDRRM3p3NnhUUkVmV3FhdVdSb2JG?=
 =?utf-8?B?RjVCcG1pMzRuVUNzSWx6dXBES2lIT1Q3TzNWWW9XUXZ1aFlTMUpNc0t6Nkxu?=
 =?utf-8?B?VTd2bktOeGEzbWNETE5GOWRMNGhOUFdzUXIwUDBkekFWd0YzbS95ZnNNaTJu?=
 =?utf-8?B?Lzh5SDFUR3RUZ0dnZHN2TTNZbFl4N2pSZUxNRjREcGh3TXdtZm95VytPdm9N?=
 =?utf-8?B?eWY4SGttOVViam91VlgvS1h5Yjg5eTREQ3doTzl6WHRMdVIweGQ2K0dqWkJ3?=
 =?utf-8?B?eHRjd1FlVWtlMC9BMkVwMmN3MzRNVVprMzExcDF0MmIzeE5RVzZXclJDQk5v?=
 =?utf-8?B?M3JoOGJmamc4UHc4NllRRlRFVFZJeTZ0NXRLeXE4cHhVOWJDZEJyblZyN1k1?=
 =?utf-8?B?aHhGdWVSM0RSWFNKNHkzQUU1OGRKcFJGdjVSNlRHeXpWaXJublZpWHlpY1Vt?=
 =?utf-8?B?ODlRTnBnU3lRVlNDYWZKdEE2K1JSaUVNMzdBemlXSXYwR0hvc1VybkJUVWdE?=
 =?utf-8?B?YkVUdEUvbldwY0s4b3hjRWc5UjU5d2xiSXI3Mm5oRzRVMzVxbUZtbVZCRU1p?=
 =?utf-8?B?OWhQZXdibzRuVFU1VW9tNzdhVmFtMndZd2dLaW1qS1dKYjNWZ0MxdFVwWEZ5?=
 =?utf-8?B?cTRTb3M5ajFIRXpuVHFBOHI2MGtCYk1KbkV4YjFaTlZHY0lTSTZKSEM2Mk02?=
 =?utf-8?B?Q042dkJCMnBVNUF0eC82NEQxZmZrN0JXWmFpSkkrOFBTeDJubzBBOHJtdHlW?=
 =?utf-8?B?WVg3RTJCdUVsZFpnR3JNWnB5enQvcWJGbzk5SEFPZXhEZFprMEozME5ENDIv?=
 =?utf-8?B?eFY4RWFFZ2RWUkszemF0RG4wUDJjN0RmbThYa280VVhSMVhZcmJoU2FDcjVG?=
 =?utf-8?B?SGtVTUlUUUhlZHZZV25FTk1SYXBpVEdXMUt4YjczYVlBY3hKeVBxVEo5VC9j?=
 =?utf-8?B?a1JoeDFiRHlOc3QxS1VTbEpJbVdxa2szL0w2UFhIb2lmN0EwRVRaQ2VjRWFJ?=
 =?utf-8?B?bTVJTlJFMzVLR016dlNReWt3QTJ6YTRDamxHMHBLM0dvSlkwOXdJblMvYmIz?=
 =?utf-8?B?cDMwOHlNeGd0Y2JsYVMwSEZ1dWpyYy9ZMjlZdUJiRm50UWsrems3SkZCbXFa?=
 =?utf-8?B?YUVSdDZ0S2dyemlneXE0ZTcyek5xbzVvNGthT0ZCSE9FeHdndWxUZTkvRjU5?=
 =?utf-8?B?cGxrSFh4c1pBbGM1VG1FYlpIcGFsYTJKamp3U2p2Z0NXRXFxT3NXc2J4Z0xj?=
 =?utf-8?B?VTFWWk5kR0xEdHltR25LWEFhVVp5KzB3T1E0UFJaN1NIZW56eWVoanZjT3pt?=
 =?utf-8?B?d3dlMWdldmRycSt0ZnNmZWlkWWg3VUN1NnJpM1dGREQrQ3dvVHZoNlEwTDlP?=
 =?utf-8?B?WlNHbUIrY2YzSTAwN2QxbkJBelFkbnBCaEFBS256WTh2V0MrbGxmR0FnWjZh?=
 =?utf-8?B?NTZwT3VJTlRTUjF1cE9VT2dJS1ZUTzhwSFdEdWlPdTZSeGlVeWQxcUhNRnZB?=
 =?utf-8?B?bWFZdjhDY0FLN1RuYksxR1YrUkc4Q3JEMk5JTE5JaWdnNEUrNEFDbEJDcEpl?=
 =?utf-8?B?YisrZXZJTnYvRDBLKzRoRGlzTjF4clRiclFDUjQ1RDkvOTNza1FyQ1Q5dlBs?=
 =?utf-8?Q?tOWogDY2twMcq4s9b/gVuJg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5d044aa4-82fe-4457-c5cd-08d9a2939b80
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 08:41:50.3495
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KSnTJBZTUPf58jnc63Dr3yEWbqZ0f2LLNdOkk84UccAz/3HRgSnaZZByRG9+1eAzxqgjAJ0gpRqjP8MXq85wVQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5328

On 05.11.2021 15:43, Bertrand Marquis wrote:
>> On 4 Nov 2021, at 06:19, Vikram Garhwal <fnu.vikram@xilinx.com> wrote:
>>
>> Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
>> This update is done to support device tree overlays.
>>
>> A few minor changes are done to make it compatible with Xen:
>> fdt_overlay.c: overlay_fixup_phandle()
>>    Replace  strtoul() simple_strtoul() as strtoul() is not available in Xen lib
>>    and included lib.h.
>>    Change char *endptr to const char *endptr.
>>
>> libfdt_env.h:
>>    Changed path for config.h and stdbool.h. Remaining Xen changes to
>>    libfdt_env.h carried over from existing libfdt (v1.4.0)
> 
> I can confirm that you updated all sources to version 1.6.1 and the changes
> are actually limited to what you said here.
> 
> But you forgot to update the version.lds file to sync it (which was done on the
> previous update to 1.4.0). Could also update version.lds ?
> 
> I can also confirm this is compiling for arm32, arm64 and x86.

Since you mention it explicitly, I'm curious: x86? Do you have a
custom patch in place to enable device tree (and hence libfdt
building) there?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 08:45:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 08:45:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223120.385664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0Gr-0004hT-Sh; Mon, 08 Nov 2021 08:44:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223120.385664; Mon, 08 Nov 2021 08:44:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0Gr-0004hM-Pd; Mon, 08 Nov 2021 08:44:53 +0000
Received: by outflank-mailman (input) for mailman id 223120;
 Mon, 08 Nov 2021 08:44:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S1W/=P3=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mk0Gq-0004hG-8D
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 08:44:52 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2061a.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 229a0586-4070-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 09:44:50 +0100 (CET)
Received: from DB6PR07CA0203.eurprd07.prod.outlook.com (2603:10a6:6:42::33) by
 DB9PR08MB7220.eurprd08.prod.outlook.com (2603:10a6:10:2bf::20) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11; Mon, 8 Nov 2021 08:44:48 +0000
Received: from DB5EUR03FT062.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:6:42:cafe::60) by DB6PR07CA0203.outlook.office365.com
 (2603:10a6:6:42::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.5 via Frontend
 Transport; Mon, 8 Nov 2021 08:44:48 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT062.mail.protection.outlook.com (10.152.20.197) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Mon, 8 Nov 2021 08:44:48 +0000
Received: ("Tessian outbound 6ebd41198c5d:v108");
 Mon, 08 Nov 2021 08:44:48 +0000
Received: from 077d0a968d3b.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 37BBE0D5-4B8A-409B-BCD2-EF7978E28FA7.1; 
 Mon, 08 Nov 2021 08:44:41 +0000
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 077d0a968d3b.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 08 Nov 2021 08:44:41 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB6712.eurprd08.prod.outlook.com (2603:10a6:20b:393::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Mon, 8 Nov
 2021 08:44:33 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 08:44:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 229a0586-4070-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Cl5otp6POmHQuRhU6Onl26NutVRtqwiPHyJhTKOaHOk=;
 b=2QKidr/8gkzO9PjXsqOI52veuVKc5LDwOsfru9Pn2y621Pp90sOKUtFYZEXGSXga/rKbgkAdeBBBNfFxesJ8VDTRjqbNg+VtzyWxh8ikO3D/gPpLin1oD8yEUDdZBVlhY3STa+KHm4Whh35am1dFUN9rP08ldZTi5v+KFwUM/yQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 3730e121cd75edf4
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MYUhHGfQMnYLg/CmiNo3b4TOvuIlePGBK61ar+Ms0mmOxqj/lQhnmCk5s/utd59RcFITgbG19ytcrlO59/hHgTG8TLb0DNq8BIhu5DEXLJPG4S3WqJJ4D1ym35oWYDiwuVfEqIIvX0ZZofWrjz2xQCoHQBBo17+1f10AhCSu/ORj2pwTudOQ3aWZLyQy4bKdKh5+QICdSjrMvxWduw4gN/ftVPsTxFG8s7UxjmjN++F08aLx4dXcChKXhZzUmVzQjghyM9FkuBj2Qpg+5BdJDcVYiIuZT4xkM2LJrWtpap6972XTfZY2kkBc7J4yFCuEAPKIqbTjBIICgNDk4Dr9TQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Cl5otp6POmHQuRhU6Onl26NutVRtqwiPHyJhTKOaHOk=;
 b=S2xCcSrvH57WelId2LMfMTgx96fa6s0YuCTh7JVWkObddAWWJZKkMb//6q6hIB5OzFATp5xrC1cHkGqPnmhHAE9P2QpW2/2bNTOqoANSnHJ8ULCsaPk9lgZfcqto3dvaA/fZDCgnBr791nnO3bfY+ldW4Tx6XHRm+OaVwj7Qeo3uRHijl03WuGP0/x+iAyp66saDszKyIz+ufwNuDHzF4JT2kMXfBiTa2DWWpWPGRmGASAAJ1A0RujU0xFEFqKy/7RNEAaamMBYGQA5JnUMJ9Mo44Q+JdoMfDXN5kAOZIbVjmwmktGUGxKF8gbNPAVNU7SDALSuEnoBS6WROwyn3fA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Cl5otp6POmHQuRhU6Onl26NutVRtqwiPHyJhTKOaHOk=;
 b=2QKidr/8gkzO9PjXsqOI52veuVKc5LDwOsfru9Pn2y621Pp90sOKUtFYZEXGSXga/rKbgkAdeBBBNfFxesJ8VDTRjqbNg+VtzyWxh8ikO3D/gPpLin1oD8yEUDdZBVlhY3STa+KHm4Whh35am1dFUN9rP08ldZTi5v+KFwUM/yQ=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, "julien@xen.org"
	<julien@xen.org>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: Re: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
Thread-Topic: [XEN][PATCH v2 1/1] Update libfdt to v1.6.1
Thread-Index: AQHX0UQblDQwk25oXUS4+EmFAqHUdKv1BFoAgARSEICAAAC7AA==
Date: Mon, 8 Nov 2021 08:44:33 +0000
Message-ID: <8B35462F-D250-49F8-B0A9-1AE64117ECF6@arm.com>
References: <1636006796-360115-1-git-send-email-fnu.vikram@xilinx.com>
 <1636006796-360115-2-git-send-email-fnu.vikram@xilinx.com>
 <BCD82839-0BBC-4CD6-956B-E4938D9ACB7D@arm.com>
 <8695a5d1-2699-fb0d-539e-c4d20a507dc2@suse.com>
In-Reply-To: <8695a5d1-2699-fb0d-539e-c4d20a507dc2@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 282e762d-36e0-4c6b-7e63-08d9a29405a1
x-ms-traffictypediagnostic: AS8PR08MB6712:|DB9PR08MB7220:
X-Microsoft-Antispam-PRVS:
	<DB9PR08MB7220DF17BCD9AE95FC6E146A9D919@DB9PR08MB7220.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 kls5QqVUydv+kW4Yio+hfDey8G+kUxvoX4N0O/fiuDrzmXxyekJmZvioAk/RvzYY2Wo5Kj7UCG/kT/j+Hev56tCb5W/cvGPS6y6rZT/B+tUls7RDwN/5r90joF9IH/WUS++1rWlyNT0KGWV1NXKMnRKMi849znggqesHjNDkmEFmTLLCdE7ezjJD/zMLH5q/5PyhP+tJBipVe5h3aEq/5yTmOiIfC4xf7WQs2yoPddjMAbOdyKo9AU8vD0M500u7EC/EBa+v/Yli1JrRaN9pDviqgJNzvwrMDw5VOh7r8P618BI3lEu0Su2lLh1gY+XGVBZYXKnsYKyCe60t5ffxOQLBrkbW3B5MtNHvxaTbtddA0ivEkQ/zihKV+jE3g6QWAcspb1qj5t8P/ssUROSNf3Jo/MSRtt77cBRuDDmChcWPnPAu4VoR/dkE7Lx+4vaxMU//YJ+CzMwPtvrxmlg1YcrQSy3VmX1CC9RckJRXjL/nuOdQthtil+H5SNR/IVJ8BCuMkkQtwlXx2jo6f7Qlkk7mGKsrfJMBp9gp9yugyppGV/HBRbOTEG44LWS/cckBLL0J5U2KoVVgWuqVCALqZgh4Nxnvpn/F1H0foJmhCfcAKdG+GQceYsAs2zgLGiDAKN2gzY3vJxYQ3nbIqm2n3fXiSIlfWRuOvEwSiNNlA9aLQkk2CQk2Jc8E6tGJMkSk5psIkHC38RRIGpS0KoSLBghfOc9bckDG7dmnVumZG8AbOP69DJ8Nd17yOvuVokQC
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(54906003)(36756003)(66556008)(66476007)(122000001)(2616005)(66946007)(6486002)(66446008)(33656002)(91956017)(76116006)(2906002)(5660300002)(26005)(64756008)(186003)(15650500001)(508600001)(6916009)(6506007)(53546011)(6512007)(8936002)(38100700002)(316002)(86362001)(8676002)(38070700005)(4326008)(71200400001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <9C8BE30840A425419AE42560B08F72DD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6712
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT062.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	763d4e5b-fc1f-4381-2c3e-08d9a293fcf3
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1S2nA5y3JC0NNnDGIRhFyMyHIgSDSFQfa4YerO+zkclt1OqEJ5d2+aNPtxz9TgE7h1gi1u5+Jp6XrpSKnLBpBr+ZgES6JBYe3zxRlRXNRGxayTKyipEiYV++5klS4FvVj2Na3o603TbqixFfMy0Q8x4IJYB+gLzHGdCe3Ri5DToFNQI0UlcTaNYgrAPSjJOwOWuY9G9tTc5XZ5dGns6t/v0uexy+xUdFTw0t7ZRgbYngXf6D26Ij+O2Sb7YlNbH41uSqGZSeX0znqRHkKszWaGEGzbS4Jkxh69r81jrkKr/jukz3i/o1Lqe57t+JvDIOS9aKhXEpYgLBYGBBmcdE1PImh0l6nc+hfoKajmgLZZc/4X/QutXVHRCFQZJNxN7Klhaiu0r5HW2M+ANEDY3E/T6qMBuAI2eJfTrmnpd8t7q/SSov9NrcpbUkz74TcpEPS+1ggfoBVLQoOhfvVjRZg9V/2mKUeUKEwuG6WoPcbURCvB3iwxvfhwrojPpGVRBEYeahXg2PGP0dblqEtBaEkPq5NubGts5lW09F0yhxzX60DM5wiHx4qEIyNBPVC178FKXncIyYVQSGR/gSmK7FDmozLAtkr1qLgoA6bBW3cQOtTSGk+LgEg1MWMzK0ZBw00BL7A5gaDRAuaoWED860spYB1ut2aNvhKkcSvjZN+2+cZWhGSbhiNSi9rsTuEebZhIL5LNiWntv5cWGu4re/Yw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(2906002)(82310400003)(6512007)(15650500001)(4326008)(186003)(5660300002)(26005)(508600001)(8676002)(336012)(54906003)(81166007)(70206006)(2616005)(6862004)(316002)(356005)(33656002)(6506007)(86362001)(6486002)(70586007)(36756003)(53546011)(36860700001)(107886003)(83380400001)(8936002)(47076005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 08:44:48.2895
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 282e762d-36e0-4c6b-7e63-08d9a29405a1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT062.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7220

Hi Jan,

> On 8 Nov 2021, at 08:41, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 05.11.2021 15:43, Bertrand Marquis wrote:
>>> On 4 Nov 2021, at 06:19, Vikram Garhwal <fnu.vikram@xilinx.com> wrote:
>>>=20
>>> Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/d=
tc.
>>> This update is done to support device tree overlays.
>>>=20
>>> A few minor changes are done to make it compatible with Xen:
>>> fdt_overlay.c: overlay_fixup_phandle()
>>>   Replace  strtoul() simple_strtoul() as strtoul() is not available in =
Xen lib
>>>   and included lib.h.
>>>   Change char *endptr to const char *endptr.
>>>=20
>>> libfdt_env.h:
>>>   Changed path for config.h and stdbool.h. Remaining Xen changes to
>>>   libfdt_env.h carried over from existing libfdt (v1.4.0)
>>=20
>> I can confirm that you updated all sources to version 1.6.1 and the chan=
ges
>> are actually limited to what you said here.
>>=20
>> But you forgot to update the version.lds file to sync it (which was done=
 on the
>> previous update to 1.4.0). Could also update version.lds ?
>>=20
>> I can also confirm this is compiling for arm32, arm64 and x86.
>=20
> Since you mention it explicitly, I'm curious: x86? Do you have a
> custom patch in place to enable device tree (and hence libfdt
> building) there?

No I do not, I should have been more clear in my sentence.

I am testing with the patch that the 3 architecture are compiling with
the default config. So in this case for x86 the modified files have not
been compiled but the patch is not breaking x86 build.

Cheers
Bertrand

>=20
> Jan
>=20



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 08:48:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 08:48:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223126.385675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0KS-0005OF-DL; Mon, 08 Nov 2021 08:48:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223126.385675; Mon, 08 Nov 2021 08:48:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0KS-0005O8-9n; Mon, 08 Nov 2021 08:48:36 +0000
Received: by outflank-mailman (input) for mailman id 223126;
 Mon, 08 Nov 2021 08:48:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk0KQ-0005Ny-FO; Mon, 08 Nov 2021 08:48:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk0KQ-00037R-BJ; Mon, 08 Nov 2021 08:48:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk0KQ-0004hu-0I; Mon, 08 Nov 2021 08:48:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mk0KP-00080N-W4; Mon, 08 Nov 2021 08:48:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2kyqxfP2rSPq/RBjE73FEoqXphPOzt52/qIIcTqQABw=; b=4ukhKSnLnLBJte/4g86JqMEhSt
	y+x+923jg/7Ym7fGcxEhSSbZRrIiXQSAnk4YxiFsX9yoypJcmEmzon13N1Gkg/fnGYCCBYJuyVztY
	jKEtqFPh3OgiVkxLw+tfZonoOuwdNYxlHfB4CQjcurZZKDxqkfj4La/yAF/ydUgs911U=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166081-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166081: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=d79df34bebdd87aa01ccf78f541b4ae4c9f68f74
X-Osstest-Versions-That:
    ovmf=4050c873b51f59cb6fcd7665029f931e727e0e4f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Nov 2021 08:48:33 +0000

flight 166081 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166081/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 d79df34bebdd87aa01ccf78f541b4ae4c9f68f74
baseline version:
 ovmf                 4050c873b51f59cb6fcd7665029f931e727e0e4f

Last test of basis   166063  2021-11-05 20:10:06 Z    2 days
Testing same since   166081  2021-11-08 03:41:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Yuwei Chen <yuwei.chen@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   4050c873b5..d79df34beb  d79df34bebdd87aa01ccf78f541b4ae4c9f68f74 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 09:05:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 09:05:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223136.385689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0aJ-0007hf-TM; Mon, 08 Nov 2021 09:04:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223136.385689; Mon, 08 Nov 2021 09:04:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0aJ-0007hY-QI; Mon, 08 Nov 2021 09:04:59 +0000
Received: by outflank-mailman (input) for mailman id 223136;
 Mon, 08 Nov 2021 09:04:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk0aI-0007hS-Ln
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 09:04:58 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f21857dd-4072-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 10:04:57 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-18-R84h1FKkPVWZNRcslnAkAA-1; Mon, 08 Nov 2021 10:04:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7040.eurprd04.prod.outlook.com (2603:10a6:800:121::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Mon, 8 Nov
 2021 09:04:54 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 09:04:54 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR0301CA0025.eurprd03.prod.outlook.com (2603:10a6:20b:468::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Mon, 8 Nov 2021 09:04:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f21857dd-4072-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636362297;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=l9BR3w1qtteb7SAYw/dVKzJhDj+0XA2h2ePAIPCzzSA=;
	b=gTXeqvk6czONm1lwYXoPV17thmpmg8yw9xEhUIU6f8FAitAYL4QEThv4aAkVow/mYL8fwG
	vbMURQhHXRSp6kr5Z6hJBqmp+QM7jftGpFWyFY9Ee91/D11PWzV25NDx6zWDsNqCXStc9H
	1pgtnE9+uZkAkBluz/aa/ecHWoZ5H/8=
X-MC-Unique: R84h1FKkPVWZNRcslnAkAA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VXLWoUvnut7rigO3IL3zUAWfhGnkef4xCeXq49MXq60JZLLHYTUzSReqg3vZzCRbDZfD77BF9vNtfktAtazOXwHOZOGpRcyZXcljMIotvUI0BOLKViTGDBz3UaCtJt0x5cqUsPjCtT6XHzYZbud19Gfvn0fH786Z5Rle5K0SWxOTDFk9AhTh1D+DOk8arSndykt2k5t5aqbBvy/JTvXUjh2tA7e8fbTi00ocT0ACFJGbzhQqoxgOd4I1h9RDmddFi/qZ+t1MLjEkmvJ6MdmovG7JgZZXpmhc8HPTi5bXQ79743G50l9qDfvftLQPtgTA6VHjq9v2M5JEqm6Nvx5JzA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l9BR3w1qtteb7SAYw/dVKzJhDj+0XA2h2ePAIPCzzSA=;
 b=dlY5swpIIjQmgxs83SEZLDuyDkAXRkSUclM9/8D7Txv+3e8aoKL0vhvpbmxxjRC8f3ReTBWfeM7PhLBBXlrcbh0sgneMhrcMhSP3GEhn0uU1QFLMP2SZoggk6rn4/aF+KfNeS1mW/Qt+W2T9/pmsSud/Jc0IeQGjui2CZnw0DyQcCnrMohACUgNq0lUJVF+ycsLCJW6qjf9PWzngQ8LHUX0xZJrgzdZcKo5/rST1iqjFj6xJdXlRJ/nduOhapm79mqkjdqcIPWg2FR1lc5BnpkBxifhhw43TLBCk56c3E7rwLNb8zGwQjXt6mPvfWIxwuCqbWfu12N9DXBO/Hlqmkw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e2a68ed1-e7b3-0862-65d6-0f0e1ca454c3@suse.com>
Date: Mon, 8 Nov 2021 10:04:55 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 4/5] xen/xsm: Improve fallback handling in xsm_fixup_ops()
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-5-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105135555.24261-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR0301CA0025.eurprd03.prod.outlook.com
 (2603:10a6:20b:468::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 99488d28-3b2c-47ca-fb1e-08d9a296d447
X-MS-TrafficTypeDiagnostic: VI1PR04MB7040:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7040A1B496C0FA5F86D7464DB3919@VI1PR04MB7040.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	+0zzVJgFxtowfa9KOUaVMWA9xvh4SZ+rwRWY4SehmBLf52WjruGSkCcXbwT1dSAwNov3YODlnfozqy9xGEprOYIhYsrBQwr3zioTnRwdXQZpZgWEx29gSLm5DKP3nbRELuC76z5GSx9UI3aGICwKa8Lw5GqinFWCyfxAZKTFfUzNm/dz0A669cJZJ6hp1cmj0d8LqQ9Nlq0PSt4CSX2VzociRNlVy3ThOIIkwcJy5IwWs0wDrDXNKIhzs+kLdSNJKCgreQesefYvI7/FzNgD60NhNaA25dgtZRnluXOsWQQpJQgSnuOMjriVa9ej6axsAQXe1KC8JgHVWpI/2svQrNJkA/tErxKvrcR0mx1rhkgJEI5zt8mF2Wh+7GvkLA+YbU0ZCLTART+dO7NR+Jezb9IqYTGOLNSH73El8b2tgsM53re2Nkxac2wPgtS18Y/2csuQTTb1TH4SMjBqtyDQov8sBE0Sqz0574PopI4bF9znLfBje1hV28tanhU1N0TUJLPiTKlG4C6IhglsErcxDqGvZgu8ycpnT24aOLuAyyzaPmV3D6HktOxBgV13kSSFa6WVvnsFFbx1UkKHMatnfvYH+BoGuTF6iBEyQr9ZbyrrZLvj/VkoGqHu9vxzBkRYj3wOLr+DHi2qkcQA4+tphgc8csEww59on1B9seeTkXUqOMWtW2nKr7N/OImGcJ++78WhWR4ZCg21tB2kXHdusi5RcBHpu2/+jqo7W4eb0QFnh+JQsceFOO13CqIVqI7y
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(2906002)(16576012)(26005)(186003)(6916009)(5660300002)(53546011)(36756003)(4326008)(54906003)(31696002)(83380400001)(66946007)(8936002)(66556008)(86362001)(31686004)(2616005)(8676002)(66476007)(508600001)(956004)(6486002)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b09sUUUxc2poUG51UEdhUHlsRW1QT1A1SWY5S2piOWoranQ3Z3l6VTJoK2FT?=
 =?utf-8?B?MEtBVlRsYytTZWJ1Mjl3dXdWRVEzVTdpQU9tZ1RCeXh6TXhndkNiZ1FJSUZo?=
 =?utf-8?B?bnNIcXdjTTkwQzNubzd5Mmk0UjlSWDh4K2hGT3Q1czJIMVllMFB1TVdlTHZm?=
 =?utf-8?B?cWZmdkFPTTVqYXhYdGpFa1NYUlJ6blE2RUFhQk4zSFdrYStzQTZlOHphL2Vp?=
 =?utf-8?B?V0VueTEvU2xoa20xSjdIcmx6ckcvYU9UUFhtSGZYSXZwRkRKWXkwYUlPVUJJ?=
 =?utf-8?B?M1hBTWJxa2puOFBmOTJIbjVZRUV0akNMc1ZwSVFNdzdjdEhiZERYaXROWnkx?=
 =?utf-8?B?RllGVWZ1MldEU3JBRHA0bFQzbDUxNXI5cGpSSzFKclBmQU10WVhob2QwOHZV?=
 =?utf-8?B?eGhaSHM4djJXb3NoV1Z5OVI5S015UWJGN2dYdTlvZjB5b2RCU2tqSVhrdk5P?=
 =?utf-8?B?M0F0YVlHOUEwd01JbjVoNmIxeHVDd0FSTFVTSk9jWEpYeWdnamJLRHhQV3Nj?=
 =?utf-8?B?RTVoQkRFaVFid3RtN3dZVU9oS2NUMlBHd2lGbG5taE0vR1hVa0dsZmVVQ3RM?=
 =?utf-8?B?aW15UUhNQ1I3OTU5dnNDdGRaRHJWNGE2N0thTHVLRzg3MjF3M1IxaUl6dFVF?=
 =?utf-8?B?bkJoendaRS9rajBsWkZEM0tQaG5uWGRob3lkU1FvaU5wWXpEaHZQMWYrU2xw?=
 =?utf-8?B?QmJJSFZMdXdYQWp0akhxYi9idTh1bGZYWjdCamJ1bnZzQUduM2J1NGpvUWNu?=
 =?utf-8?B?aW1ZWHZxMGpMWTNWdXpMSVloelhxYU9SMlNiREdWazBtSHk0elhKczdHUDFu?=
 =?utf-8?B?c1l2d1pGajNwb1VBZGRoZG5nV2hwcFpPZnJGR05QUyt2ODM0YzM3YXVwZm92?=
 =?utf-8?B?U2EwUmo2NU83SjFQNFdha3FRTnp5WjJQVXBTeW12WUtTVHhZajBMc1diZU1q?=
 =?utf-8?B?cjBVNEhFNHV6cElBWnRVc0hObERHc1dnY2tPYjVnTHB5cVZxRVRqRjhsV0N0?=
 =?utf-8?B?M0J1S2s3d3luUkp2dTR1U3VySy9FSGVJeE1ubVZlZEl0c2E1NmtzVjYrNVJh?=
 =?utf-8?B?QXBMK01KOTVvUU0rcTh4aWVoS0NheHBsb0pnN2lNUmVNenRrblRNdE9XcXNy?=
 =?utf-8?B?Y1BXMnorK1QrS0JJbVhhc0lDRW8xOXBuOTIwSHNKWFIrRFNVTzhIalc5MWZI?=
 =?utf-8?B?U2ZUMWk3eHByRHF4Q015aDBCSi9oMjNjR1NYZGM5OUxKV0hneFkzTlFxNDFu?=
 =?utf-8?B?ejRQL1B1SVJxdlVuUStxWWtyR0dRVGplZVl1bXcwK3FQT2t3V1NWSU1SV0My?=
 =?utf-8?B?MWVjYlp4dGUxYVQ2alFzcFVTRmRIZ0F5eHRkSnpIb2F5cDNSUGQyTmExd2VP?=
 =?utf-8?B?VG5QOW5JY2x3ck9GcUVwWFVkWWVuQzc5cmpJdHM2S2pyVmRqMmw5bGRFWnhY?=
 =?utf-8?B?MUVWaTZBSXdTcGQwcTRmYU5JcWxQbEhOS2g1RFN0bEd4K0FUd2VsVGNHMTlh?=
 =?utf-8?B?Vis5eHBFQjdIcnhKeU9lUmFLSlljcUFFZjdIRHBQNXpsQkJ3YUlZNktyTjBu?=
 =?utf-8?B?bXEvamdWenZ2ZEt5aG1lUGhmVFIrNUZqN2R5THZWMG5MSXRZOTJ1YnhWYlZW?=
 =?utf-8?B?ZnNFY214QWpmZlFrWVE1c1hMa3MrcVUrTGNOa29UcExkdDFGSVJ6QXJNNUJU?=
 =?utf-8?B?UjFZQnR1SkJvRElyWjJidjZlN2VjaUFzYXF5bGpUeHN3TDcwRnJLZSs5aW12?=
 =?utf-8?B?TjJ6TUdlclNGZjE0TVBTS2ZHZXpiZm5uMWtiYUp0RmtZdXA5M2JFcWFVTXB1?=
 =?utf-8?B?YzJueDV0eU1aTDVja2tOck8rUGpXK0Job3JVeGhVQlowWmJhS01OWlUrWnFV?=
 =?utf-8?B?dlJ6NmN4NzlmQ1VQUjVDZVFsTzBFRytvNzNjS2FHYkZwQUtPbnpMMmJ5TGRv?=
 =?utf-8?B?ZUdjUWk3Z0k4a0VJWmdTSTRGNmtIQVZVWmlTZlpDSkVWNWtIY2xXQUZ0dU9j?=
 =?utf-8?B?VU54bFRHY3VKV0lJS25NZGpSMU9NQ0dLSWg4cWVRNWdWSmJwcXpoeWZZZ01K?=
 =?utf-8?B?cTloSFBjckFyTmorbU5QblhMQzJRS3g0NS9Cc2JSWFFJaGlPMU1uU3VDdFZO?=
 =?utf-8?B?SE1aUUJ5akxwYUdxL29mTFZ0N3liUmxSZVRTa1lWTDhqUEZ2VTFueU1ScXlk?=
 =?utf-8?Q?QiefP4pj4TKP5ITLhGz0GmY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 99488d28-3b2c-47ca-fb1e-08d9a296d447
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 09:04:54.2735
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Z528pnWIQITLgEpxvMtsPYxVhcPwwtmX6T1u75R3oBtOImstzT7X2BHFrlheBMdQIxO/lBlL9I/K9VQcUxJ+gQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7040

On 05.11.2021 14:55, Andrew Cooper wrote:
> +void __init xsm_fixup_ops(struct xsm_ops *ops)
> +{
> +    /*
> +     * We make some simplifying assumptions about struct xsm_ops; that it is
> +     * made exclusively of function pointers to non-init text.
> +     *
> +     * This allows us to walk over struct xsm_ops as if it were an array of
> +     * unsigned longs.
> +     */
> +    unsigned long *dst = _p(ops);
> +    unsigned long *src = _p(&dummy_ops);

I'm afraid I consider this an abuse of _p(): It hides casting when
that would better not be hidden (and there's then also a pointless
step through "unsigned long" in the casting). I suppose this is
also why "src" didn't end up "const unsigned long *" - with spelled
out casts the casting away of const might have been more noticable.

> +    for ( ; dst < (unsigned long *)(ops + 1); src++, dst++ )
> +    {
> +        /*
> +         * If you encounter this BUG(), then you've most likely added a new
> +         * XSM hook but failed to provide the default implementation in
> +         * dummy_ops.
> +         *
> +         * If not, then perhaps a function pointer to an init function, or
> +         * something which isn't a function pointer at all.
> +         */
> +        BUG_ON(!is_kernel_text(*src));

Just as a remark, not a request to change anything: A cause of this
triggering may also be is_kernel_text() not covering all text
sections. Some of what recently we've been talking about informally
may lead to new text section variants appearing, and whether those
would sensibly end up inside [_stext,_etext) is uncertain.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 09:11:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 09:11:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223143.385700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0gk-0001CG-M0; Mon, 08 Nov 2021 09:11:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223143.385700; Mon, 08 Nov 2021 09:11:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk0gk-0001C8-FZ; Mon, 08 Nov 2021 09:11:38 +0000
Received: by outflank-mailman (input) for mailman id 223143;
 Mon, 08 Nov 2021 09:11:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk0gj-0001C2-6l
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 09:11:37 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dee72ccf-4073-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 10:11:35 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2169.outbound.protection.outlook.com [104.47.17.169])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-2-tojzbmjRN0erJigf6xuMbw-1; Mon, 08 Nov 2021 10:11:33 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4606.eurprd04.prod.outlook.com (2603:10a6:803:70::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Mon, 8 Nov
 2021 09:11:32 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 09:11:32 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0021.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::34) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.16 via Frontend Transport; Mon, 8 Nov 2021 09:11:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dee72ccf-4073-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636362694;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=6vlWBu/CNNNbW2BL64wmgwjIzji96cUhvGRs/XxUoXA=;
	b=kuUh8PmDuP+wbC4qTUD4SXo0oF2dCpAxSr53LPV0hXOBB5uFicLQnltZmy7M+5KdK0JUSk
	slEe4QnsBuVoMyJM2/IxsANWBG8BxJf5/+TWbuFXVbIcwR273IOfABAmUStupy50cSszRn
	I2zJfmY0aS54sRE5U4loomnjteAOHOY=
X-MC-Unique: tojzbmjRN0erJigf6xuMbw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oghhPHjSMZxwZilkIBSiLKuyZRkORC1lk1KUfFeG5144NzflSWppS4XiotgbGnpHR9AxAzOb8QTCY/JSiViS4pDYoaCa67xSyilErXue9MZ0ztdb0xdGc/9icmPgcKEYZkX7hlHCCG2DqaEMTnC+82yF7G7AARrCFTZjIzE2RVYmOnkeO0wEH2R/64Ve3WGviU2NCmpJUmyjolREONgNGkP59E0vb5VMJERMHt4Cxmiw+yB7LqItogH5rZCgQ2+cica/nc6Lfmlgx3zkYt1xtop5R5pH8c1wvdfOeD0iteR/d74tixqEK9ts23lcnY/KCxLCkD+td/fnLaQYw6p+Cw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6vlWBu/CNNNbW2BL64wmgwjIzji96cUhvGRs/XxUoXA=;
 b=eO/97pxz8Wloi4oebVMW8t/qSSXU5YrVn8ips8D8+0plJIcKhYyvO7Joa77XQmjlERfi16yO8ZLf+Hw8d4Gg43GmPpt/QeM0IEFD74SHTGOOuYc/qS8F9X9b8X+WHRJkH+gEFQqS5r1p9NibkBf3WmrAQAjD8z2z9sl6dlBB8bkWCdhBRprU6DNxtgimpLglFZQ1f6KrTcr1JpX9aDztmbkKOmO4P1jXPaQlxIHmlN8AIiQXHUKgQFZcxOfrPAa+qfGlOsHc0QednOGBrlHeN0qjYCsaRKgx14yMo3cgzFSYjTkMGqEZi03jXEkF0tEZKMebdjFigB98DNI8XpmYDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <41f3c740-dcb3-c58f-a937-8326d59002a5@suse.com>
Date: Mon, 8 Nov 2021 10:11:33 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 2/5] xen/xsm: Complete altcall conversion of xsm interface
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-3-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105135555.24261-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P191CA0021.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:8b::34) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e9e44ea6-f2a7-40f5-fbab-08d9a297c176
X-MS-TrafficTypeDiagnostic: VI1PR04MB4606:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB46063DDF1A16F23D0CBF6A34B3919@VI1PR04MB4606.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	3hdQ6dxCAVFj0abbOFYse+A3BRAfXPoxfJaXYjQKpfSi8JaeagMV/9Z53POtbKtWWeCe09mrwNJHh98YkEyrjc+sXZsucY9MWbSpRzbAcJ7lQg9k/XWzG6iZ+AfntJ3qmujnsKJU4MSS10IzerTO8k//Rlsv7MBK4o9Wxau4uQX0FxRs5W3vXak75lK79fm/3NNqCs1XDsRg1XqiP1BEMHSSVPYz77ma7teRHywZToY0H4S0BLZpeDxLJ0OqxX90Dml9KN/3quoZJBTuvon439CsSZhTYM69FYgYjMSdi9PNtt+rkcb9r4WkbEVs4jpxK07ZhuVzIasj59FpcPVTdVVim0w592aqzJO9ccE8LRoFOI2MDS62mrSIwzogXAtghLYxTNfrJogQtusSzQyosjpg4WQl0wLsQY9yvhuA5c0gcoAskN5lJxk3IZoLkDfdLmajYqTNKE3cUdHm3mFESLaeXSku/xB6IqOX7t8JpRQvNTBUS4qoDfTv0ynRQscQYTsuyGzEWUKJAKF7J18mLs6h4tsbzgbXVvhRozCzK812TebIS3Bwp2cTrmt7Em5wYfz9QReceOJk87rXaskDZUz9XGMzUQJRffbp+SUU2+3+cXwFcNqQ46fJcCgnVFPlODqMsnqLU0UXeVuo9yasOXURgAaiPD3kSeZhkXfpY22oMspxVnJw4U9fIFCT9kgUypSSw0+3TrDshlRGXrYck6HdUPGGJAsMNS7W2Ox69nDLKtc7gjJ/u9qC+CN/ZjWh
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4744005)(8936002)(6486002)(6916009)(8676002)(53546011)(86362001)(186003)(2616005)(66476007)(66556008)(956004)(36756003)(31696002)(16576012)(316002)(31686004)(66946007)(54906003)(508600001)(38100700002)(2906002)(4326008)(26005)(5660300002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dXVBVzczR1paZVhoeXF4SHFreUEydU11WnBuNUZzeEJtSGRlY2dCNExGek1w?=
 =?utf-8?B?OStaQ0Q3cjh5RFF2T2VEUDd0Zk1tUmRsYUdhZkJueU1HL0x6TytxRkhDZ1N5?=
 =?utf-8?B?UG5QNFg2OTJORFpYYlVOVFM1RjJqSjZsL0RpSTB0L2Ird1grMGtOZjJVNWV5?=
 =?utf-8?B?ZUpuNjVpbkszdllrMFBUSFlDZkNUdzlQNzROVUM2SEllWHFQS0JOS1E1N0lD?=
 =?utf-8?B?WmwvZGZEYkx3VDlGdXZueTVnQlpYMnJuVVRGby9FR3N3bEtIMnVPaFhOSzd0?=
 =?utf-8?B?cFFzVDNNZWd1cy9Ua2J6WDVIV3E5aDZzT0JIQWRqQ0pJbUZKL3JQU1huaEI3?=
 =?utf-8?B?NEp3N250OVN3Q09jTyswRk0wbXpubW1LUVZZU2d4ZW5jQmQ3QnJaQTJETDIr?=
 =?utf-8?B?MFdLM2VFdFl6TFJnMmZ0U2xDeDZuR2lVMVkyci85U2dHVjV3VTFremYrQ0lU?=
 =?utf-8?B?SHpzd2ZRQm8zRkxpTXEzYjMrQ091V3huQTlnT1k2SjcrK1Q1NjBidVBBa2JV?=
 =?utf-8?B?VHJkZSt5ODI1dTh2V0hIOWlKSE9BUlV5bm1UZ1RXeDByeXBtdElBb1dpcmRP?=
 =?utf-8?B?QXBQTE1COFRBL3d3NjNkZ3htSHdySUU4bVpDT1d4U1Z5bm1BT3BCWkFXNGwr?=
 =?utf-8?B?UWNsTkZ0OU0xalg0ZUdUY1pnb2hzMWRITFYxRldJUXd5ak1jamhSbThibXFy?=
 =?utf-8?B?eUNPR2EreEU1aFhpV2VKZnF3NVJkN05uSldkYnQxZWR1YWlRdjZpeko0U1R5?=
 =?utf-8?B?a3hrS3dRK2d1cW92ZExnY3haMEtXLzlkRCtuc0dFbW80U2dXcmVJQ3l1Wk95?=
 =?utf-8?B?UHFxV0sxOGRDMnZ3RHE5VUJvU3ZJU2FBblFVbWdhVjJ2VWVQYjAxVnhZcTJE?=
 =?utf-8?B?N2ZSSU1FZXVGQkp5eG5xQkNhd2MrMUl4cUx6aUxWaVM3b1V3aUFra05OWVVX?=
 =?utf-8?B?UFBLVm5NMWFQSmE0bXlLbGdaaDkvZUFzTmtGSzIyeGJLcUg1RTNwQktMRFJi?=
 =?utf-8?B?RWdUQ1RHdU5rb2hMYXZ0cHdEempzZnJCY3JaMzBlUElUdGw5STJVSFlkNUlM?=
 =?utf-8?B?UDRBYUxpV21GeTd1eTNVU3ZpbEYva2NNQ1FpeXI4L0pnYVFpSVBranlzR1NJ?=
 =?utf-8?B?YzlNSCtrSW1rUytqbERGVzlHYzlVV280M3greXV4QnpoMGVBajBqeElMOEdJ?=
 =?utf-8?B?Q2E3ekxWMXFGMHFLTDgyREVZYzlSTk9LaXo4VVozVEdZQitZL254cXlUOE94?=
 =?utf-8?B?Vzk5dG9lSUtRcHdWWFdiUW5sWFczbUNQanFzcUY4TXB6MXFuTmRLODA2OVI2?=
 =?utf-8?B?am51MVZXbFJJSTRtN2w3SmlhNllPTC9DSSt3aWwvZm1aNXY3NlR3cmV5R2kz?=
 =?utf-8?B?ODdvVkxJZVBodU1QQ3lzSElaanRqZjQyRGt4VEhqZnB5MzZVWDVmdGI3TC9R?=
 =?utf-8?B?MHlVL2VlNEVlb0YrSU5kL1lmRnZnZW8xVHB0dU1CYk1zYll4eEtpcng2S3pl?=
 =?utf-8?B?bVVmQkR2UzRZUGxCRUpNbzJqL0krSGNVTGZFUjNuOXhuTzBVTElPamNQcUov?=
 =?utf-8?B?T1NQc0p3cHJQakxsOVpydHRnaHpRZTl5dEh5T3NWWVdVTmczTFl0SlJXTXVm?=
 =?utf-8?B?Z3BvcExzMWJTWjkzcnd3WDhJUUducjZiRjc3Qk0ycmlwRFdCR2grdEtQSzZ2?=
 =?utf-8?B?Yk1IejFxbnRXTVRuME5qazRNcGJwTlE4Sm1naWlqVXlLT2hNLzhnMkR6YlA0?=
 =?utf-8?B?dll0K21YMzJiK1lWYUpqVTdjc0tVcEppSklRMFZTMzJNU2VGeGlkSm9uVlkw?=
 =?utf-8?B?Qmk0QWU0VXpUMDB1cWFERHZaRWVHUCtBLytoSkFXNW1WQ05sQXgwNVhadDBt?=
 =?utf-8?B?UFJPQ0VVYjJWYnVrT2Iyb3UveFphNTZwRTdQVlBDL3E4cnAzQ0xBWUtlc1ov?=
 =?utf-8?B?SHIxZ2M3bVdORGtNenBqOEtZUUpZa2lqeVNwbFZTeUU3ZFhIajZUSWpaeW5a?=
 =?utf-8?B?TXBRajluaktVSTRiWlBsbnVWKzczMzRyMW1YNG9QNkkrbGx3VWg2MFFlaVk0?=
 =?utf-8?B?U0xOaThCdjd3WW0yeHBVZVhTZmdaTmc5NG4rOTJDM3BiR1FucXdEdWZEOVF4?=
 =?utf-8?B?cys0emhJaWhlajdoRFJhczdEVHZhVFdmV3plTldUS2NrSjBCcEdhVGs2dWo3?=
 =?utf-8?Q?cFdkCl3M1rhsuesP7sKzTV8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e9e44ea6-f2a7-40f5-fbab-08d9a297c176
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 09:11:32.0676
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 19Jg9z/+Ah+6qIOCiwShZRj9L5nbh2qa40sB79mXGhLdSY+7leEmHWCms66fHoRhntxSkj3XSH3+2kvb/Cl/AQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4606

On 05.11.2021 14:55, Andrew Cooper wrote:
> With alternative_call() capable of handling compound types, the three
> remaining hooks can be optimised at boot time too.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
> CC: Daniel Smith <dpsmith@apertussolutions.com>
> 
> I'm on the fence as to whether to declare this as fixing "xsm: convert xsm_ops
> hook calls to alternative call"

Forgot to say a word on this: I'd consider Fixes: appropriate, as the
commit's description says nothing about these having been left out,
nor why.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 09:37:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 09:37:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223150.385711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk152-0003cv-NX; Mon, 08 Nov 2021 09:36:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223150.385711; Mon, 08 Nov 2021 09:36:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk152-0003co-IX; Mon, 08 Nov 2021 09:36:44 +0000
Received: by outflank-mailman (input) for mailman id 223150;
 Mon, 08 Nov 2021 09:36:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hOHQ=P3=freebsd.org=royger@srs-se1.protection.inumbo.net>)
 id 1mk152-0003ci-0m
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 09:36:44 +0000
Received: from mx2.freebsd.org (mx2.freebsd.org [96.47.72.81])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60be7cc4-4077-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 10:36:41 +0100 (CET)
Received: from mx1.freebsd.org (mx1.freebsd.org [96.47.72.80])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits)
 client-signature RSA-PSS (4096 bits))
 (Client CN "mx1.freebsd.org", Issuer "R3" (verified OK))
 by mx2.freebsd.org (Postfix) with ESMTPS id 8F3BF9BE06;
 Mon,  8 Nov 2021 09:36:40 +0000 (UTC)
 (envelope-from royger@FreeBSD.org)
Received: from smtp.freebsd.org (smtp.freebsd.org
 [IPv6:2610:1c1:1:606c::24b:4])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
 client-signature RSA-PSS (4096 bits) client-digest SHA256)
 (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4HnmGJ3JJXz3G96;
 Mon,  8 Nov 2021 09:36:40 +0000 (UTC)
 (envelope-from royger@FreeBSD.org)
Received: from localhost (unknown [93.176.190.2])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate) (Authenticated sender: royger)
 by smtp.freebsd.org (Postfix) with ESMTPSA id E94667F72;
 Mon,  8 Nov 2021 09:36:39 +0000 (UTC)
 (envelope-from royger@FreeBSD.org)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60be7cc4-4077-11ec-9787-a32c541c8605
Date: Mon, 8 Nov 2021 10:36:27 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <royger@FreeBSD.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
Message-ID: <YYjvmy3BCnogsaBL@Air-de-Roger>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
 <YYVQAH7OYmFSVOei@Air-de-Roger>
 <af235a71-2916-2498-b19b-4759a9e6fa95@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <af235a71-2916-2498-b19b-4759a9e6fa95@suse.com>

On Mon, Nov 08, 2021 at 08:40:59AM +0100, Jan Beulich wrote:
> On 05.11.2021 16:38, Roger Pau Monné wrote:
> > On Fri, Nov 05, 2021 at 01:32:18PM +0100, Jan Beulich wrote:
> >> --- a/xen/arch/x86/setup.c
> >> +++ b/xen/arch/x86/setup.c
> >> @@ -1699,6 +1699,13 @@ void __init noreturn __start_xen(unsigne
> >>  
> >>      dmi_scan_machine();
> >>  
> >> +    /*
> >> +     * IOMMU-related ACPI table parsing has to happen before APIC probing, for
> >> +     * check_x2apic_preenabled() to be able to observe respective findings, in
> >> +     * particular iommu_intremap having got turned off.
> >> +     */
> >> +    acpi_iommu_init();
> > 
> > If we pull this out I think we should add a check for acpi_disabled
> > and if set turn off iommu_intremap and iommu_enable?
> 
> Hmm, I should have added a note regarding this. If we want to exactly
> retain prior behavior, acpi_ht would also need checking. Yet that has
> gone wrong long ago: We parse way too many tables when acpi_disabled
> && acpi_ht, and hence while correct wrt to prior behavior I'd consider
> it wrong to (re)add a "!acpi_ht" check.
> 
> As a result I'm of the opinion that checking acpi_disabled here also
> isn't necessarily appropriate, and instead IOMMU disabling would
> better be solely under the control of "iommu=".

I haven't looked very deeply, but will the acpi helpers work correctly
in that case? As acpi_boot_table_init will be short-circuited if
 `acpi_disabled && !acpi_ht`.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 09:50:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 09:50:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223158.385721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1IZ-0005vU-Ul; Mon, 08 Nov 2021 09:50:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223158.385721; Mon, 08 Nov 2021 09:50:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1IZ-0005vN-Rr; Mon, 08 Nov 2021 09:50:43 +0000
Received: by outflank-mailman (input) for mailman id 223158;
 Mon, 08 Nov 2021 09:50:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk1IY-0005vH-2t
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 09:50:42 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54f3af73-4079-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 10:50:40 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2108.outbound.protection.outlook.com [104.47.17.108])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-37-yhP0fRWyNpKCal0vphRehQ-1; Mon, 08 Nov 2021 10:50:39 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2607.eurprd04.prod.outlook.com (2603:10a6:800:58::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Mon, 8 Nov
 2021 09:50:37 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 09:50:37 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0090.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::31) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Mon, 8 Nov 2021 09:50:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54f3af73-4079-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636365040;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=0MzTKTzVHggNYauHFQeJYFU1YKUlvsDazmaOPt9t9y4=;
	b=Ml+ynsDFEqrsSIekbgA0WV3K83a9py3iRKGd9EWY8615ec3nvxuluqPo/VrlYB8c6AjXzp
	LFMoVGM6OsdiMh9YqnMKOqa4+Zq0MSWivbaU7O3tH38Eg2S8dWLDV5sO5PzGYwttZ9rAWc
	V4CCXAPXFcQ/dTdlzt/alY1ts5R4Ucg=
X-MC-Unique: yhP0fRWyNpKCal0vphRehQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K379X1AS/DQgqt6TsqBYsnJMyghzkfd/kkG6+L7jaN/Aoy+yz6dURL67IcMe3Y0F7qUJp2zG0RF1wLruJ/ImNN7eLfW2estBTv1NBEg2oobJK7R9ic9gbhxTzY2O+A0sGrtgu+9pkihFn859RCt4u0Kmrwl+nLZ2w1swAxHJPtljdr8t4vVttED58ee6CpzWdx1igtQST83UOMKTNZP6wmm/T2yQCjPZ2FUGbMOIh4c4H4Xe4bBZRmdjRgtRqoAc0yXYG9V+ZJs4cRkRjPjG0VWvoQ3kleGKvhC3MmnUAz1yp8xn/RMbYrgbiMPTBkOm/IpE3G69OXu8sVCe/s5VJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0MzTKTzVHggNYauHFQeJYFU1YKUlvsDazmaOPt9t9y4=;
 b=ACI07218mgzZ5Lo9d+pmyWjAHcKSp4+Or2Sj9yggNen+BHRKDhNYKQ01FAIhwE7bHHppGTpfI4UkHMRLdIKcchn+yoH2jcmx1ZCLYedUQyMvcf3iIJ+gi5WgeoutIDlzonVTLHT+Ywg8qMH/MIFIKogj8os6biLkTFQJ0hZDIaUCDr8oz4hFx53EaDfTKk8hiFsTT3XeVpP6hMyGr6TByVT8zbR+GIb1qRj+DZny5cn9wYjta/1GnzgQyh7T/wDbr6GwNkXGwoN0+LnwxVqctTtErZYbvCnPUnUKVISEsmp2SeK/8NpLGmi5QUFA4NZhViIObqHnl3y0Tu+yhhqoFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e8a9d0bf-c9d7-a1ab-f50d-7ebaffbb3f8a@suse.com>
Date: Mon, 8 Nov 2021 10:50:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 5/5] xen/xsm: Address hypercall ABI problems
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-6-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105135555.24261-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0090.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:8c::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0beed9f3-d5d9-4577-4c74-08d9a29d3770
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2607:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2607789698E8539012682CA5B3919@VI1PR0401MB2607.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	zh65SnV0ap3vOc/y5rT0D3i10UIxFrvov7Xv1Yaa++A3WI/shsNuAWq8jOK1zrzn3ShdwPVI3qCXLUFUM1ogLJpes2UUYpE/MW52/hfIgK1HJtif+E3X6Zxz0Ifo/lYGkCkOnmScQ/w4K2QhF85ZF5JNN4aOIjsS7xMUhGw+1jT+mRzb5ag3StbsX8HukJ+6s9Tn3yj88PNXhGUjw0ruRDyrnK5UqJYPWaSE+50XXmlEVcnZLXZu/jT06b+Z139cp6web4fVpsTTFn9pIs94QGDRwYt/rvWMjDH9CGzWrUsMn7lbioNZSxpaEVAKQ/PeRIW7zFcigdFOFu4Z4bD2in4yOl4JhffqHrostH1FAGHk2U7WJ5RBNyDWOqfEpfTuO8hi403O2wG+4jh0hk3tzRbUTe9h213zYC+h2aEwjw9w87pX3au30kNSQTwbApeRP2GnbgJwuIkiPoEw/8JrvJvARkGgD2R5+sRh9DzzxneOEzozCyxd6QGT7W4tPfT9iaep1FqDI2VmzUfHNvz4FmSTwmZSFBBdBp2nPsmAWkAkiiQOrJDDNZHBr25fBwfmLK8UvUzk9GkUHlXHX9DirhKJYHSRhq/YgDB+fdHx2LpWrKJHdOCEYZJE3WacWfmI61JDitPZJMgcjyhUYLngGs6bVCbwzruHn5A533uCL5PfVf4VOA9kgCSBCZjxIL6BREOYIhTvpW5/FtFjCavhLmrMPiUVqisK5r6r0aRlakNp5Nr/Bhx12PIsmJ9t0sMI
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(8676002)(8936002)(508600001)(2616005)(31696002)(2906002)(6486002)(38100700002)(5660300002)(54906003)(956004)(316002)(16576012)(66556008)(66476007)(66946007)(83380400001)(6916009)(86362001)(53546011)(4326008)(31686004)(26005)(186003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WEhGNDVFdjg3cGpTdUxRdkFSWjBTZU8vVGNnQm1SZFR3cyt2bmNFL3FKd2Fp?=
 =?utf-8?B?S1ljRGg4Q0RHSlQxMi9hZnFOOTJwQTYrSm11dDNoOStkd1lXYXVUOGZvQXBL?=
 =?utf-8?B?QzVyVkxFTnRRblZQeTdVblBxZU9VZ2FVUHZzMnA0ZVZXamIvdHd2NHRMVXZF?=
 =?utf-8?B?YTJ5Q3NZVTFkeG9CYjIrdTc1NUlYNkpsVVRGaVlUK2gyV1k2dGFkbkFFS1Ni?=
 =?utf-8?B?Vm9jRnIrbURKeDR5YW44RXdRRjhzMnljWS9aNTltRHBVYndNbmw2RHplNlFa?=
 =?utf-8?B?K2NxcWJZS2tveVlaRnpqVVVPdi85RUNlMGVoS3NwcjBsOHBCeHduRlJuak83?=
 =?utf-8?B?MlE1RElmOEpPeGFsZzNMMFk5VVRzN1YwMDVOK1VCM1FQdHJtWUJZZFlBZHNz?=
 =?utf-8?B?Z1l5c1VsY1RTdnJObHFnT0tqdVVqcm4xeVFHZHhMaWg1Z3ZITWljYkZocW5I?=
 =?utf-8?B?bzRpd2h6akVmVTVpMDQrNlpxbnJZME1rZ2pIcFE1M0hHbzlFYzJPeGpJUTl1?=
 =?utf-8?B?cnVJNUw5WldmMURrSUhJdENMUFdUcVVoekxndmlGRFpKSzdKRGl3dC9aVmov?=
 =?utf-8?B?L2JGWGpOSGZzQ09TM2dtTkpjRWlPSUtzaDVleXFZblZEREVJM3djN25nQ0NJ?=
 =?utf-8?B?bnEwZ2hJekthTk5wUlh2aVFXL1NmWW9CWEpjaktNL1R0bDBmTXBFR3pTYVFY?=
 =?utf-8?B?V3NDQzNXN2dWdVJZenc2M1ZHL2VJbUd3L1NLbXFjWHJOUmU0RFcvMDdIcnZq?=
 =?utf-8?B?cFYxczdmeW50S0FqMkdtSE9MR1FSdE1Jb05FYzRaakp5Vmw2ZDgyWnVXMTdL?=
 =?utf-8?B?TnpvM3J5VGIyYVF3YVpXSFJIZk9waW82Y2dHSVJ5cGZiU3ppNnZqeDE4Wkor?=
 =?utf-8?B?QjNLRnFMVlI4c0p4SkNtbi8zK1MyMUU5S1ArcWZRNlhvNFFXYkRaMjNSZTJh?=
 =?utf-8?B?SXI4ZHVaMFUxTHp1RHVYRWZJNkQzREdwNjNpdWlMOVlKT3k3QXFXMDBTeW1C?=
 =?utf-8?B?cldVb2lJdjk5dk5WNEJlQlJ0YXB2TXlIOXZQdkFJd2lvcTlMYWhOWlEzelJH?=
 =?utf-8?B?SWZMUkhLVGJhNUlxUVYySjg5WDdjTGxydGwrdm55T2FuWUx6NXpDRUw0Rk1Q?=
 =?utf-8?B?b1IxNFhyaEtBRXNtSHZWTTFrbjhnd2Z4Y2tYMWsrTUxrckVVaWJWVExOY0Zo?=
 =?utf-8?B?T2ZrQzNUYUhKN0JLcTMzWUZBSjhtancrTGlkaVdVbnNOTGU5blZMYWNpdjJk?=
 =?utf-8?B?VVlRZzAvQi9WQkZNdStkYy84cCt0NVJDN0N5TTMxZ3JyZVNzalQ4a3FZNXhn?=
 =?utf-8?B?dFNtNXB6bDV3bGV6bnhqZmMyUGNuZE8vdUM0ZjU5ZUxNSjBTR2FqWEY4bStn?=
 =?utf-8?B?RU52U2N3bThMSEt0bUFPU1F0MWlkSFFLdzRRQlRFTFNVdzViSlczSEJ3dEhq?=
 =?utf-8?B?TFNNdTNkRENXem5VR25JZ0FFTmhNcWtYb2xmVlNWS1VYUTMrUFZPYk1vR2ly?=
 =?utf-8?B?N3RscWlMalQ1UjB3RGdVVEMxSWxGdU5CUnI5eXdxeCszQmJGckNsYTI1cnBE?=
 =?utf-8?B?cjRrVUhPbGdZc1NDeHFIOUNEYjNzdnF4aStLc1JCaDdONVg2RFNKOXlHNEpE?=
 =?utf-8?B?aWdQVkJYa29hTVZVNDVOMjQ4WmF5aGtZWCszcFZQL2RMMWE5Um1sMFhNS1hM?=
 =?utf-8?B?bEE4bkdMRkxlVHRLTm05K3hQZEFIeUR4blNxbnRoOUdjM0RlY3VMTVl1ZE9h?=
 =?utf-8?B?bENmVE82U2VQaTJGVVJRdXFhM2xjMVQ1SnRPMFhURU1vcWoreVhMQllKSWhJ?=
 =?utf-8?B?OVFuVFYvOVVqMERNeVQxdmx2bWpNRG5GRkFlcDdwRzhGVXpWRGZNclEyTHIw?=
 =?utf-8?B?RDh3Nm0zTkZqZlY2b0R6Nm1oa3lEb1E5a2lmczlyTnZGZ0xoTkQ1Ti8vaUU5?=
 =?utf-8?B?cU1OMmd1V2ZMMTB5R0lUTGUxaGVEemZmRnYzcnNaem43L2J3elNDNGJuZEp4?=
 =?utf-8?B?SktXQkhocXdzUnRMRjRYRTBMbWxpR3NtclIzOXJ2NjVzQ3FLbit1d2dXbUs5?=
 =?utf-8?B?aHlGem92NmVIZmxRRkt3T3g1TDVveGhEU1hBemUrRHJGbFg4MTdmMDdRMkZC?=
 =?utf-8?B?LzZnYU80dm55QUFVVnBtQVgvYXZPTFRwMkZJL3NsOGRoVXhEbWxnMlFaZXVY?=
 =?utf-8?Q?Vp9sfOirCzeEkfRMN9r7uPs=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0beed9f3-d5d9-4577-4c74-08d9a29d3770
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 09:50:37.4416
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nh8EA/VAQYGnW19BV4XITUzyWr0EZeo2hiULLiNXEv1lbmQoHRugROCylD9Ha8O652XX5iOWrvNIZFb7vABvaQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2607

On 05.11.2021 14:55, Andrew Cooper wrote:
> Currently, __HYPERVISOR_xsm_op enters xsm_ops.do_{xsm,compat}_op() which means
> that if any other XSM module registers a handler, we'll break the hypercall
> ABI totally by having the behaviour depend on the selected XSM module.
> 
> There are 2 options:
>  1) Rename __HYPERVISOR_xsm_op to __HYPERVISOR_flask_op.  If another XSM
>     module wants hypercalls, they'll have to introduce a new top-level
>     hypercall.
>  2) Make the current flask_op() be common, and require new hypercalls to fit
>     compatibly with xen_flask_op_t.  This can be done fairly easily by
>     subdividing the .cmd space.
> 
> In this patch, we implement option 2.
> 
> Move the stub {do,compat}_xsm_op() implementation into a new xsm_op.c so we
> can more easily do multi-inclusion compat magic.  Also add a new private.h,
> because flask/hook.c's local declaration of {do,compat}_flask_op() wasn't
> remotely safe.
> 
> The top level now dispatches into {do,compat}_flask_op() based on op.cmd, and
> handles the primary copy in/out.

I'm not convinced this is the only reasonable way of implementing 2).
I could also see number space to be separated in different ways, ...

> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
> CC: Daniel Smith <dpsmith@apertussolutions.com>
> 
> Only lightly tested.  Slightly RFC.  There are several things which aren't
> great, but probably want addressing in due course.
> 
>  1) The public headers probably want to lose the flask name (in a compatible
>     way), now that the hypercall is common.  This probably wants to be
>     combined with no longer taking a void handle.

... leaving per-module public headers and perhaps merely adding an
abstracting

struct xen_xsm_op_t {
    uint32_t op;
    ... /* placeholder */
};

or (making explicit one possible variant of number space splitting)

union xen_xsm_op_t {
    uint32_t op;
    struct {
        uint16_t cmd;
        uint16_t mod;
    } u;
    ... /* placeholder */
};

in, say, a new public/xsm.h.

As a result I consider this change either going too far (because of
not knowing future needs) or not far enough (by e.g. leaving
do_xsm_op() to use xen_flask_op_t.

>  2) {do,compat}_xsm_op() are currently identical other than the dispatched-to
>     functions because the size of xsm_flask_op_t is invariant with
>     COMPAT-ness.  We could simplfy things by only having one, and dispatching
>     to {do,compat}_*_op() directly, but I'm not sure whether the complexity is
>     worth it.

Perhaps not, I would say, not the least because (as said above) I
think we shouldn't put in place restrictions which may get in the
way of adding some future module.

Extending struct xen_flask_op to become a generic XSM interface
structure (or even just for Flask's own purposes) also is not as
straightforward as it might seem: There's currently no provision
for sub-structs which would grow the overall size of the structure:
The copy_{to,from}_guest() invocations for existing sub-ops may not
copy more that the present worth of sizeof(struct xen_flask_op).
Yet your implementation of do_xsm_op() moves this deficiency from
Flask to XSM.

>  3) Bloat-o-meter says these changes add 16 extra bytes to dm_op() and I can't
>     figure out what could possibly be causing this.

Without comparing the object files in closer detail it's guesswork,
but might this be register scheduling differences resulting from
the changed sizeof(struct xsm_ops)? I've been observing similar
seemingly unmotivated changes to generated code ...

> --- a/xen/xsm/flask/flask_op.c
> +++ b/xen/xsm/flask/flask_op.c
> @@ -22,6 +22,8 @@
>  #include <objsec.h>
>  #include <conditional.h>
>  
> +#include "../private.h"

Kind of odd: I'd expect a file named such to not get included
across directory levels, unless a single component was split in
such a way (to me Flask and XSM core are separate, yet still
related components).

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 09:54:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 09:54:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223165.385733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1MH-0006ZV-G2; Mon, 08 Nov 2021 09:54:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223165.385733; Mon, 08 Nov 2021 09:54:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1MH-0006ZO-Cm; Mon, 08 Nov 2021 09:54:33 +0000
Received: by outflank-mailman (input) for mailman id 223165;
 Mon, 08 Nov 2021 09:54:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk1MF-0006ZI-Si
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 09:54:31 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de394ae4-4079-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 10:54:30 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2112.outbound.protection.outlook.com [104.47.18.112])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-11-L_DuJy4oO4yFau81UPZHiw-1; Mon, 08 Nov 2021 10:54:29 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3118.eurprd04.prod.outlook.com (2603:10a6:802:a::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Mon, 8 Nov
 2021 09:54:27 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 09:54:27 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR02CA0017.eurprd02.prod.outlook.com (2603:10a6:20b:6e::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Mon, 8 Nov 2021 09:54:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de394ae4-4079-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636365270;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OQsEs9QIqEZ9vZQCo8yWSRcrK9Zq+jN89Lz25C82ctI=;
	b=i9e24Z9yRdp00CRaGMlLQF9f6FKT8zlH6/SU4LuWz4lYON2MpZGO7cefOQ0h+fGz0YeSIN
	hlZmsyuOsK4thP8sV2ne80Hc6oy0jqWceLlJL3QVPTX4KYZhYOrxaSZv4Kwf9NL3EWscEL
	N/Dl87qXl5mlSWjP2B6EzRUAMRAh0c0=
X-MC-Unique: L_DuJy4oO4yFau81UPZHiw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=T/vA1xDm2lYE/M8sGh8KmDV1JmOWHX0NFk87p0tWVQOHAadsNNCAXfxkBBH9rAVNKnuX7dOgzf5ZNkAXFR1pIIg30QZYE1epQkrhn3Zzf9Wp35ZZGvXjB5h9McQYfzuPiObmaeF4bV/0fMaKdGQ71GQWouLfeZDpw5ECMhciDCvq32G3POQXSXjkaz6P1y+Zjwi2LkGjo8koTgk4s/KePddMw30EnuYaZwD9s6NPQuf2ZQDvKaxiAA5sUL2eLUVkR0mHaN8nh8ereSxSQ1Tq+T1cbl+x/daUnXD8JOIsQgWyqWZtSgkJr8A9A423uS4Nzq+qXhEUHGd4mb63gtrnYw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kqwVs/5fGqS3lDILpvrsk+5eS7mZXtzUWMNzPFbpLb4=;
 b=K1eJfeZz1DgjxOzru0LeIGq/lwuACf9qqp2HNuUS05pQas/bauZU95ySLlZ/mDSnk2TrFPG3/QQlFGrhSHNUjqLIl/WuWXjDF5rlw8V3FN/8R76vxxGZ4qAMaBGDjO1dDVeoIdSlwUQwECsQwPOziNcuLSzSz/TrMeXjDw1sEkuM/e1ABgXupbnsLMdPBuBn/FhTwf3zDgmJI9iHXynFk8Gr83kZhmk59F9sNbupS2nNQHsdyCxsi6y0MGahcZzPK2e1iIxZZ5YXVQ6D0EoLoEsVC/AUkr4M4ahvn5XzgHZWGKRgHf0zH885NfUUhqAmcPOpcyWJRgbPCif4YH5Lmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <05d06abc-e52f-4e8a-8999-950712ce5508@suse.com>
Date: Mon, 8 Nov 2021 10:54:28 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <royger@FreeBSD.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Ian Jackson <iwj@xenproject.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
 <YYVQAH7OYmFSVOei@Air-de-Roger>
 <af235a71-2916-2498-b19b-4759a9e6fa95@suse.com>
 <YYjvmy3BCnogsaBL@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYjvmy3BCnogsaBL@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR02CA0017.eurprd02.prod.outlook.com
 (2603:10a6:20b:6e::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 984054d3-4f1b-4269-9583-08d9a29dc080
X-MS-TrafficTypeDiagnostic: VI1PR04MB3118:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB311882A08D253033DE59C780B3919@VI1PR04MB3118.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ve1e4jqMSae5zoHGYnejFSE4QiY4amjamwCCk5ytGxFzmzfRH6jkMPP1NIIJ5IA9JaRIhV5uq9VdB1ExLdlCoPYX4j8DeTPti5bCEuzEk7VXePpcU6MK7SkjxLz70wyiU5Mc8Jer1VpK9kjubiBIX5Jz9nZVeWlfC/SIxk6r1V6CErZbUl5FfZgV4exR6jsLJMbZ1BaHFSZuwCdwpnckletyLQ3sK7jK9CaTU6KKLAzq8L5qmZPbUx3A4yPL4V8wE5HDzWQcJBPOiFy4fjrDe7gOg8Dm7fDK+3mqgQnYHBBTQXZGG1pJx9X7O3VmhijHQBBMvTNA+jko1KoZS9oFScIlBeSqpBeC7Xl8K7Oriw1ci7dopzaVkYINP2u0xDj5WPKu+piLiohpzRmjW7Ep0VcEjjJLSMBcDzr7ht3pDvTwINf9tDnR5DSqzbqi59RHZG4tZtRbu7gGFwiiARnghfqv6JFn9RwB5kyjXrxPTCPX4JVipbkU7Ds11otxFtxoxvNnBNjZwQmRnNiL242RMjvgNferY6p4NCSyeV5y7fW0ygZtCzowVHWxb/B1hUeCk5c6oVRFYqZvYB7Vh+xOufBumw9qmmjqcdPoaK+3gk4UAt9+aR0EjQtB64ywkxyTG7sFVUAhLpHfuDRO8r1+lDLLPWtgSCGt4LLEMvAGVMcCaKyp8427ckendbEzER+RvDyEuq3O/osyQaM4TO0lFOUauJfBry4hKzroKLSPgTZTNLqKCTJDXru85WAgnONQ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(508600001)(38100700002)(8936002)(8676002)(36756003)(956004)(54906003)(16576012)(2906002)(31696002)(316002)(26005)(66946007)(83380400001)(2616005)(86362001)(66476007)(53546011)(5660300002)(66556008)(6916009)(31686004)(6486002)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?zTVTOx1pycEOTmYhha+WTeNSF93brqvggrECP3i2hAM19/eUIJWOk8RdLfxK?=
 =?us-ascii?Q?hgK+J5QurMiCOL4SttYJGYbh63eU8xjWPvPKH1Qr8Aqtxjg3Rs7H/T0zdrnp?=
 =?us-ascii?Q?H0gHxp/t7/BCUO9pjqENdYePIi+yCRzL4yRBnUm77XWDzLvt7+gkyvAcye7E?=
 =?us-ascii?Q?PpREG5IN+OtP5kT63DzM6zeXCafccOQyLa+udp79ovnx2HTNnJh2eCMOE3IS?=
 =?us-ascii?Q?t518KVYmMrvw7rqHVkcLDndv7aWOu/yh8jlzTLIHxLx7txL89A2LpcKD368D?=
 =?us-ascii?Q?FrqjImMK0FBpcel4OyuWHo5ZpX6206h204vxw3DrJ+sWzP7513O3+I71ssyC?=
 =?us-ascii?Q?ePZ+1zYQVtRAH9wyWtU45A5AA7hPzOgh12HlVYK2ctwOpkV8Sy1in3HBCMfV?=
 =?us-ascii?Q?AWESoHQdjSm/cSEh6fZpGY9NVLNmW/KTmu1NUeWXOevmjN9OO7JhkLytK9/d?=
 =?us-ascii?Q?VHgOe+uBV08OMAg0rpwVhWzxKFOKeZ4C0A6su5FKQRFKGHQRWrE3OFP0Cqlj?=
 =?us-ascii?Q?bdlIkJugfAhowG/M2065PKlq+7Yc3OjUuMZttX3PqlEOZ5zxY9iBqrT4qvLg?=
 =?us-ascii?Q?24tHAVoldpZANXD/cLeCBCLnse4mq7YqEj+SNeb3JFX79ajykZ7GiPNCjFqg?=
 =?us-ascii?Q?H9S7RuEuSGJcoTV2dFkGbx+vbfmU4fPb/VzSIY95S7RJ97++oS/DQfWaEMjK?=
 =?us-ascii?Q?HXxORBRo2k7wFJPIP4Qn4EwzuRoLt4fgC+4RKWlPcl17Cx6ZgKlOPfR8ZGTI?=
 =?us-ascii?Q?PYB5RaXFKUpnMIEdvlczg+ftBtnrl0Vb4bdNme78tarjhg7/n2aZz0D0dE3B?=
 =?us-ascii?Q?WWhMaqW89etay5C+iPA6m7+PxrggsKQ/OJFoqdIrDZUiWE5kOuEjG+VioIFp?=
 =?us-ascii?Q?PpCP6LIe726EirOjchWxqjwmN3ZagOSYj7/zFvMlYFujqIvA+vh84WfhrOwQ?=
 =?us-ascii?Q?VX9g1mKdUf6ov2J+MSxoc9DIuQLCJajZOt1fl+WPDhj9SBf9+7KeWOUsQQWy?=
 =?us-ascii?Q?k7dA4oezIZP8bqX7LNcECzaN45TMqS8dD7uTg9KBfr+Fxfu4t+V9pkTBvwgH?=
 =?us-ascii?Q?ViXRGJJHNDnPtVuUiVsauE8ZmiVVIC9VuwRTWp7JWE+xy7vrmv74G9dT78eR?=
 =?us-ascii?Q?gMcStIHKxqRQwpRjowyxuKffuVAlufXfv6P05jpn5bzMGP8i8YbfAif9MgxG?=
 =?us-ascii?Q?SsomXxpxSUIDReSPA4XASjoKVMx0uqz3g5wVL0RtKSopv1dw2CpMT1aONOeB?=
 =?us-ascii?Q?iAIR0Nkn5RYbhHhDY/dqYEHYt2LRmDsWzgnTqgp1M5+y9OUYibYqjSzyCRfd?=
 =?us-ascii?Q?Zc1cxBYxWGX6fyEfbivsmIg0yfDCkLL/nwoYtZInYZr30qoDE0G+QBHTfMtF?=
 =?us-ascii?Q?hcgQaWJDd9CJopywSjwu6oApNyh7My9B8uoGKAbCuctud/QKx4f1Vj1j7T8Y?=
 =?us-ascii?Q?2GFR36ITjtIeH4uVMwKXMpdLAr4Gl0EqANvLMgZk5oaK7MzTafjUz6n9S7Ug?=
 =?us-ascii?Q?fQDix99PtVKK2Kge8hQIZ5rChD9Hm3PzkeHvqn9vDGKtammjY9O07Q801ALT?=
 =?us-ascii?Q?xQyPO8xo3vT3+HnLU7lQNUP0AKQRV5YvHjg1jwS1i5DbF0l8mDiRMBzHF4uM?=
 =?us-ascii?Q?UF0E/AQS2Lj29a+ayB7MOk0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 984054d3-4f1b-4269-9583-08d9a29dc080
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 09:54:27.4552
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ssyWcrqQnqAph3KC2wKbXhrUh07LET3Wxq8HxIWWoXvYFGk+nPoq4jRB0K14lV+FT3d47c1yMUk8IC8IhJpLRA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3118

On 08.11.2021 10:36, Roger Pau Monn=C3=A9 wrote:
> On Mon, Nov 08, 2021 at 08:40:59AM +0100, Jan Beulich wrote:
>> On 05.11.2021 16:38, Roger Pau Monn=C3=A9 wrote:
>>> On Fri, Nov 05, 2021 at 01:32:18PM +0100, Jan Beulich wrote:
>>>> --- a/xen/arch/x86/setup.c
>>>> +++ b/xen/arch/x86/setup.c
>>>> @@ -1699,6 +1699,13 @@ void __init noreturn __start_xen(unsigne
>>>> =20
>>>>      dmi_scan_machine();
>>>> =20
>>>> +    /*
>>>> +     * IOMMU-related ACPI table parsing has to happen before APIC pro=
bing, for
>>>> +     * check_x2apic_preenabled() to be able to observe respective fin=
dings, in
>>>> +     * particular iommu_intremap having got turned off.
>>>> +     */
>>>> +    acpi_iommu_init();
>>>
>>> If we pull this out I think we should add a check for acpi_disabled
>>> and if set turn off iommu_intremap and iommu_enable?
>>
>> Hmm, I should have added a note regarding this. If we want to exactly
>> retain prior behavior, acpi_ht would also need checking. Yet that has
>> gone wrong long ago: We parse way too many tables when acpi_disabled
>> && acpi_ht, and hence while correct wrt to prior behavior I'd consider
>> it wrong to (re)add a "!acpi_ht" check.
>>
>> As a result I'm of the opinion that checking acpi_disabled here also
>> isn't necessarily appropriate, and instead IOMMU disabling would
>> better be solely under the control of "iommu=3D".
>=20
> I haven't looked very deeply, but will the acpi helpers work correctly
> in that case? As acpi_boot_table_init will be short-circuited if
>  `acpi_disabled && !acpi_ht`.

Oh, that's a good point you make.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:12:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:12:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223174.385755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1dp-0000wc-Dy; Mon, 08 Nov 2021 10:12:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223174.385755; Mon, 08 Nov 2021 10:12:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1dp-0000wV-AR; Mon, 08 Nov 2021 10:12:41 +0000
Received: by outflank-mailman (input) for mailman id 223174;
 Mon, 08 Nov 2021 10:12:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk1de-0000ta-EY
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:12:40 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5cc4e9a2-407c-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 11:12:23 +0100 (CET)
Received: from zn.tnic (p200300ec2f33110088892b77bd117736.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:8889:2b77:bd11:7736])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 8A4191EC0503;
 Mon,  8 Nov 2021 11:12:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5cc4e9a2-407c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636366342;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7P+1psRq8/HfQacGi22yCZu748tDOEEg0nO5q6foNi4=;
	b=cIuplv9KGmaQtphcAaDmcAC6xl2w0MeOIR4hIYs0MWfdHX/ARzmJwX7Xt95BiWbeP7Vaow
	/rT1rXqSh9J/jjp/apNMzA/3yRoAtxZawFAJ4KXO2c1kiVMYVwd5D7e8KJhBqrHyMaQLq5
	1uAygH3VwNg7vzyFj/holnwvkHSBmBA=
From: Borislav Petkov <bp@alien8.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: xen-devel@lists.xenproject.org
Subject: [PATCH v0 18/42] drivers/xen: Check notifier registration return value
Date: Mon,  8 Nov 2021 11:11:33 +0100
Message-Id: <20211108101157.15189-19-bp@alien8.de>
X-Mailer: git-send-email 2.29.2
In-Reply-To: <20211108101157.15189-1-bp@alien8.de>
References: <20211108101157.15189-1-bp@alien8.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Borislav Petkov <bp@suse.de>

Avoid homegrown notifier registration checks.

No functional changes.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: xen-devel@lists.xenproject.org
---
 drivers/xen/manage.c              | 3 ++-
 drivers/xen/xenbus/xenbus_probe.c | 8 +++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
index 374d36de7f5a..f3c5cef0995f 100644
--- a/drivers/xen/manage.c
+++ b/drivers/xen/manage.c
@@ -48,7 +48,8 @@ static RAW_NOTIFIER_HEAD(xen_resume_notifier);
 
 void xen_resume_notifier_register(struct notifier_block *nb)
 {
-	raw_notifier_chain_register(&xen_resume_notifier, nb);
+	if (raw_notifier_chain_register(&xen_resume_notifier, nb))
+		pr_warn("Xen resume notifier already registered\n");
 }
 EXPORT_SYMBOL_GPL(xen_resume_notifier_register);
 
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index bd003ca8acbe..4e83ce95acd1 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -731,10 +731,12 @@ int register_xenstore_notifier(struct notifier_block *nb)
 {
 	int ret = 0;
 
-	if (xenstored_ready > 0)
+	if (xenstored_ready > 0) {
 		ret = nb->notifier_call(nb, 0, NULL);
-	else
-		blocking_notifier_chain_register(&xenstore_chain, nb);
+	} else {
+		if (blocking_notifier_chain_register(&xenstore_chain, nb))
+			pr_warn("Xenstore notifier already registered\n");
+	}
 
 	return ret;
 }
-- 
2.29.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:12:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:12:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223173.385744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1dY-0000dX-3C; Mon, 08 Nov 2021 10:12:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223173.385744; Mon, 08 Nov 2021 10:12:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1dY-0000dQ-0G; Mon, 08 Nov 2021 10:12:24 +0000
Received: by outflank-mailman (input) for mailman id 223173;
 Mon, 08 Nov 2021 10:12:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk1dN-0000dK-8d
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:12:23 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 55cb7bd2-407c-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 11:12:10 +0100 (CET)
Received: from zn.tnic (p200300ec2f33110088892b77bd117736.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:8889:2b77:bd11:7736])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id BABC81EC04E0;
 Mon,  8 Nov 2021 11:12:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55cb7bd2-407c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636366329;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=grdSLe+txR+qPcky5ijEGsjPCSkRE9m2uQKOXesimzE=;
	b=OveTWrDzAdrOoSEwa1Av97jBWR5pZb8d7IM/QcE2Bm0tLy+LKZctYgVNu/8HPp+khPKy8S
	fBJxFCpTfhDSa0lqOVDygpDhEY+AGd64/coDHahUOeAP4LgJ5PPdM1pvgt1eBYUTFfAiTM
	J8ofTFwzerbk/CRlwmeCnSLXSqeLzqY=
From: Borislav Petkov <bp@alien8.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: xen-devel@lists.xenproject.org
Subject: [PATCH v0 02/42] xen/x86: Check notifier registration return value
Date: Mon,  8 Nov 2021 11:11:17 +0100
Message-Id: <20211108101157.15189-3-bp@alien8.de>
X-Mailer: git-send-email 2.29.2
In-Reply-To: <20211108101157.15189-1-bp@alien8.de>
References: <20211108101157.15189-1-bp@alien8.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Borislav Petkov <bp@suse.de>

Avoid homegrown notifier registration checks.

No functional changes.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: xen-devel@lists.xenproject.org
---
 arch/x86/xen/enlighten.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 95d970359e17..2264dd6e157f 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -354,7 +354,9 @@ static struct notifier_block xen_panic_block = {
 
 int xen_panic_handler_init(void)
 {
-	atomic_notifier_chain_register(&panic_notifier_list, &xen_panic_block);
+	if (atomic_notifier_chain_register(&panic_notifier_list, &xen_panic_block))
+		pr_warn("Xen panic notifier already registered\n");
+
 	return 0;
 }
 
-- 
2.29.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:12:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:12:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223175.385766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1ds-0001Dh-MD; Mon, 08 Nov 2021 10:12:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223175.385766; Mon, 08 Nov 2021 10:12:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1ds-0001Da-IG; Mon, 08 Nov 2021 10:12:44 +0000
Received: by outflank-mailman (input) for mailman id 223175;
 Mon, 08 Nov 2021 10:12:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk1dr-0000dK-0y
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:12:43 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 68c7ac1a-407c-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 11:12:42 +0100 (CET)
Received: from zn.tnic (p200300ec2f33110088892b77bd117736.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:8889:2b77:bd11:7736])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 97BC51EC0535;
 Mon,  8 Nov 2021 11:12:41 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 68c7ac1a-407c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636366361;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ZSl40zXDlt+0/rSkoDA+/axSBICuEw4xrW9t+JeAzRg=;
	b=O9utTH7kzvF0ogbSAjrVux8Q2NyGvuXt2DXX+lXMfGwQDD5NsnAlA7vS1HO+tdNI+F2ntn
	CZwfQStJuxv3i5Q66Ie7iUHTOBEhoA6pq6felnVAUxHBDq6LlMPMTRyA2hQo7p+FfRiqlX
	omkNlvF2ej63UhZNrO1CmPB0HckLABU=
From: Borislav Petkov <bp@alien8.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Arnd Bergmann <arnd@arndb.de>,
	Ayush Sawal <ayush.sawal@chelsio.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rohit Maheshwari <rohitm@chelsio.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
	alsa-devel@alsa-project.org,
	bcm-kernel-feedback-list@broadcom.com,
	intel-gfx@lists.freedesktop.org,
	intel-gvt-dev@lists.freedesktop.org,
	linux-alpha@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-clk@vger.kernel.org,
	linux-crypto@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-fbdev@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	linux-iio@vger.kernel.org,
	linux-leds@vger.kernel.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-remoteproc@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-sh@vger.kernel.org,
	linux-staging@lists.linux.dev,
	linux-tegra@vger.kernel.org,
	linux-um@lists.infradead.org,
	linux-usb@vger.kernel.org,
	linux-xtensa@linux-xtensa.org,
	netdev@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net,
	rcu@vger.kernel.org,
	sparclinux@vger.kernel.org,
	x86@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v0 42/42] notifier: Return an error when callback is already registered
Date: Mon,  8 Nov 2021 11:11:57 +0100
Message-Id: <20211108101157.15189-43-bp@alien8.de>
X-Mailer: git-send-email 2.29.2
In-Reply-To: <20211108101157.15189-1-bp@alien8.de>
References: <20211108101157.15189-1-bp@alien8.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Borislav Petkov <bp@suse.de>

The notifier registration routine doesn't return a proper error value
when a callback has already been registered, leading people to track
whether that registration has happened at the call site:

  https://lore.kernel.org/amd-gfx/20210512013058.6827-1-mukul.joshi@amd.com/

Which is unnecessary.

Return -EEXIST to signal that case so that callers can act accordingly.
Enforce callers to check the return value, leading to loud screaming
during build:

  arch/x86/kernel/cpu/mce/core.c: In function ‘mce_register_decode_chain’:
  arch/x86/kernel/cpu/mce/core.c:167:2: error: ignoring return value of \
   ‘blocking_notifier_chain_register’, declared with attribute warn_unused_result [-Werror=unused-result]
    blocking_notifier_chain_register(&x86_mce_decoder_chain, nb);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Drop the WARN too, while at it.

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Ayush Sawal <ayush.sawal@chelsio.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Rohit Maheshwari <rohitm@chelsio.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Vinay Kumar Yadav <vinay.yadav@chelsio.com>
Cc: alsa-devel@alsa-project.org
Cc: bcm-kernel-feedback-list@broadcom.com
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-gvt-dev@lists.freedesktop.org
Cc: linux-alpha@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-clk@vger.kernel.org
Cc: linux-crypto@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-hyperv@vger.kernel.org
Cc: linux-iio@vger.kernel.org
Cc: linux-leds@vger.kernel.org
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-remoteproc@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: linux-staging@lists.linux.dev
Cc: linux-tegra@vger.kernel.org
Cc: linux-um@lists.infradead.org
Cc: linux-usb@vger.kernel.org
Cc: linux-xtensa@linux-xtensa.org
Cc: netdev@vger.kernel.org
Cc: openipmi-developer@lists.sourceforge.net
Cc: rcu@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: x86@kernel.org
Cc: xen-devel@lists.xenproject.org
---
 include/linux/notifier.h |  8 ++++----
 kernel/notifier.c        | 36 +++++++++++++++++++-----------------
 2 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/include/linux/notifier.h b/include/linux/notifier.h
index 87069b8459af..45cc5a8d0fd8 100644
--- a/include/linux/notifier.h
+++ b/include/linux/notifier.h
@@ -141,13 +141,13 @@ extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
 
 #ifdef __KERNEL__
 
-extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
+extern int __must_check atomic_notifier_chain_register(struct atomic_notifier_head *nh,
 		struct notifier_block *nb);
-extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh,
+extern int __must_check blocking_notifier_chain_register(struct blocking_notifier_head *nh,
 		struct notifier_block *nb);
-extern int raw_notifier_chain_register(struct raw_notifier_head *nh,
+extern int __must_check raw_notifier_chain_register(struct raw_notifier_head *nh,
 		struct notifier_block *nb);
-extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
+extern int __must_check srcu_notifier_chain_register(struct srcu_notifier_head *nh,
 		struct notifier_block *nb);
 
 extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
diff --git a/kernel/notifier.c b/kernel/notifier.c
index b8251dc0bc0f..451ef3f73ad2 100644
--- a/kernel/notifier.c
+++ b/kernel/notifier.c
@@ -20,13 +20,11 @@ BLOCKING_NOTIFIER_HEAD(reboot_notifier_list);
  */
 
 static int notifier_chain_register(struct notifier_block **nl,
-		struct notifier_block *n)
+				   struct notifier_block *n)
 {
 	while ((*nl) != NULL) {
-		if (unlikely((*nl) == n)) {
-			WARN(1, "double register detected");
-			return 0;
-		}
+		if (unlikely((*nl) == n))
+			return -EEXIST;
 		if (n->priority > (*nl)->priority)
 			break;
 		nl = &((*nl)->next);
@@ -134,10 +132,11 @@ static int notifier_call_chain_robust(struct notifier_block **nl,
  *
  *	Adds a notifier to an atomic notifier chain.
  *
- *	Currently always returns zero.
+ *	Returns 0 on success, %-EEXIST on error.
  */
-int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
-		struct notifier_block *n)
+int __must_check
+atomic_notifier_chain_register(struct atomic_notifier_head *nh,
+			       struct notifier_block *n)
 {
 	unsigned long flags;
 	int ret;
@@ -216,10 +215,11 @@ NOKPROBE_SYMBOL(atomic_notifier_call_chain);
  *	Adds a notifier to a blocking notifier chain.
  *	Must be called in process context.
  *
- *	Currently always returns zero.
+ *	Returns 0 on success, %-EEXIST on error.
  */
-int blocking_notifier_chain_register(struct blocking_notifier_head *nh,
-		struct notifier_block *n)
+int __must_check
+blocking_notifier_chain_register(struct blocking_notifier_head *nh,
+				 struct notifier_block *n)
 {
 	int ret;
 
@@ -335,10 +335,11 @@ EXPORT_SYMBOL_GPL(blocking_notifier_call_chain);
  *	Adds a notifier to a raw notifier chain.
  *	All locking must be provided by the caller.
  *
- *	Currently always returns zero.
+ *	Returns 0 on success, %-EEXIST on error.
  */
-int raw_notifier_chain_register(struct raw_notifier_head *nh,
-		struct notifier_block *n)
+int __must_check
+raw_notifier_chain_register(struct raw_notifier_head *nh,
+			    struct notifier_block *n)
 {
 	return notifier_chain_register(&nh->head, n);
 }
@@ -406,10 +407,11 @@ EXPORT_SYMBOL_GPL(raw_notifier_call_chain);
  *	Adds a notifier to an SRCU notifier chain.
  *	Must be called in process context.
  *
- *	Currently always returns zero.
+ *	Returns 0 on success, %-EEXIST on error.
  */
-int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
-		struct notifier_block *n)
+int __must_check
+srcu_notifier_chain_register(struct srcu_notifier_head *nh,
+			     struct notifier_block *n)
 {
 	int ret;
 
-- 
2.29.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:12:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:12:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223176.385777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1dy-0001XA-W3; Mon, 08 Nov 2021 10:12:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223176.385777; Mon, 08 Nov 2021 10:12:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1dy-0001Wz-SW; Mon, 08 Nov 2021 10:12:50 +0000
Received: by outflank-mailman (input) for mailman id 223176;
 Mon, 08 Nov 2021 10:12:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk1dx-0001W3-Oh; Mon, 08 Nov 2021 10:12:49 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk1dx-0001WK-IJ; Mon, 08 Nov 2021 10:12:49 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk1dx-0008R7-7F; Mon, 08 Nov 2021 10:12:49 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mk1dx-0007an-6k; Mon, 08 Nov 2021 10:12:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hSZL9iY7fMZFU6aCCUSOFXsjs2oC7u/rZCTZ7BbpoFQ=; b=bw+oC8j/H5bilTaf/uH2IxlNzg
	lr/dwM4dSfuxhW5qiGsYElH/wfGB3nx3vElsWZluLV1H0u9GeZa6XF7cUZvpr2J7joPtt2L2bE2zl
	PIK+DkKXVK36bZkNWTc+0+XTvDA5Q2BNcMqoAm/y0MLdcCIXGHL8r7c70aL1oKx3GaRo=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166082-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166082: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=3bc6f46d305ed82f7314ffc4c2a66847b831a6bd
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Nov 2021 10:12:49 +0000

flight 166082 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166082/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              3bc6f46d305ed82f7314ffc4c2a66847b831a6bd
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  486 days
Failing since        151818  2020-07-11 04:18:52 Z  485 days  471 attempts
Testing same since   166067  2021-11-06 04:20:10 Z    2 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 82561 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:19:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:19:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223197.385791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1ka-0003Ey-Sd; Mon, 08 Nov 2021 10:19:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223197.385791; Mon, 08 Nov 2021 10:19:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1ka-0003Er-Or; Mon, 08 Nov 2021 10:19:40 +0000
Received: by outflank-mailman (input) for mailman id 223197;
 Mon, 08 Nov 2021 10:19:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk1kQ-0003ER-2Z
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:19:40 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5b3b6381-407d-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 11:19:28 +0100 (CET)
Received: from zn.tnic (p200300ec2f33110088892b77bd117736.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:8889:2b77:bd11:7736])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 295D81EC04E0;
 Mon,  8 Nov 2021 11:19:28 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b3b6381-407d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636366768;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=CDGB0dpLCqhyN2VLkOyFdq64uDUd6G/RUsDL3dC+Ipo=;
	b=OmXDZQiNXAykW6msgQxQV2D3jyNeh8L8Ur0LKSqcBbS8Z5Dq+lMoh+uc1KE9lZoNFhTNi5
	HSfl5kEDRsOkXKmO9qqEW67WUQUsv5GaQK9Erwx9IjY3o31Y8ehQnIfkizrSs0P3bzV/5j
	Fq9nLmulJEIgHjmCW/c8QaecUsrUi0U=
From: Borislav Petkov <bp@alien8.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Ayush Sawal <ayush.sawal@chelsio.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rohit Maheshwari <rohitm@chelsio.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
	alsa-devel@alsa-project.org,
	bcm-kernel-feedback-list@broadcom.com,
	intel-gfx@lists.freedesktop.org,
	intel-gvt-dev@lists.freedesktop.org,
	linux-alpha@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-clk@vger.kernel.org,
	linux-crypto@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-fbdev@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	linux-iio@vger.kernel.org,
	linux-leds@vger.kernel.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-remoteproc@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-sh@vger.kernel.org,
	linux-staging@lists.linux.dev,
	linux-tegra@vger.kernel.org,
	linux-um@lists.infradead.org,
	linux-usb@vger.kernel.org,
	linux-xtensa@linux-xtensa.org,
	netdev@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net,
	rcu@vger.kernel.org,
	sparclinux@vger.kernel.org,
	x86@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v0 00/42] notifiers: Return an error when callback is already registered
Date: Mon,  8 Nov 2021 11:19:24 +0100
Message-Id: <20211108101924.15759-1-bp@alien8.de>
X-Mailer: git-send-email 2.29.2
In-Reply-To: <20211108101157.15189-1-bp@alien8.de>
References: <20211108101157.15189-1-bp@alien8.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Borislav Petkov <bp@suse.de>

Hi all,

this is a huge patchset for something which is really trivial - it
changes the notifier registration routines to return an error value
if a notifier callback is already present on the respective list of
callbacks. For more details scroll to the last patch.

Everything before it is converting the callers to check the return value
of the registration routines and issue a warning, instead of the WARN()
notifier_chain_register() does now.

Before the last patch has been applied, though, that checking is a
NOP which would make the application of those patches trivial - every
maintainer can pick a patch at her/his discretion - only the last one
enables the build warnings and that one will be queued only after the
preceding patches have all been merged so that there are no build
warnings.

Due to the sheer volume of the patches, I have addressed the respective
patch and the last one, which enables the warning, with addressees for
each maintained area so as not to spam people unnecessarily.

If people prefer I carry some through tip, instead, I'll gladly do so -
your call.

And, if you think the warning messages need to be more precise, feel
free to adjust them before committing.

Thanks!

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Ayush Sawal <ayush.sawal@chelsio.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Rohit Maheshwari <rohitm@chelsio.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Vinay Kumar Yadav <vinay.yadav@chelsio.com> 
Cc: alsa-devel@alsa-project.org
Cc: bcm-kernel-feedback-list@broadcom.com
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-gvt-dev@lists.freedesktop.org
Cc: linux-alpha@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-clk@vger.kernel.org
Cc: linux-crypto@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-hyperv@vger.kernel.org
Cc: linux-iio@vger.kernel.org
Cc: linux-leds@vger.kernel.org
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-remoteproc@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: linux-staging@lists.linux.dev
Cc: linux-tegra@vger.kernel.org
Cc: linux-um@lists.infradead.org
Cc: linux-usb@vger.kernel.org
Cc: linux-xtensa@linux-xtensa.org
Cc: netdev@vger.kernel.org
Cc: openipmi-developer@lists.sourceforge.net
Cc: rcu@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: x86@kernel.org
Cc: xen-devel@lists.xenproject.org

Borislav Petkov (42):
  x86: Check notifier registration return value
  xen/x86: Check notifier registration return value
  impi: Check notifier registration return value
  clk: renesas: Check notifier registration return value
  dca: Check notifier registration return value
  firmware: Check notifier registration return value
  drm/i915: Check notifier registration return value
  Drivers: hv: vmbus: Check notifier registration return value
  iio: proximity: cros_ec: Check notifier registration return value
  leds: trigger: Check notifier registration return value
  misc: Check notifier registration return value
  ethernet: chelsio: Check notifier registration return value
  power: reset: Check notifier registration return value
  remoteproc: Check notifier registration return value
  scsi: target: Check notifier registration return value
  USB: Check notifier registration return value
  drivers: video: Check notifier registration return value
  drivers/xen: Check notifier registration return value
  kernel/hung_task: Check notifier registration return value
  rcu: Check notifier registration return value
  tracing: Check notifier registration return value
  net: fib_notifier: Check notifier registration return value
  ASoC: soc-jack: Check notifier registration return value
  staging: olpc_dcon: Check notifier registration return value
  arch/um: Check notifier registration return value
  alpha: Check notifier registration return value
  bus: brcmstb_gisb: Check notifier registration return value
  soc: bcm: brcmstb: pm: pm-arm: Check notifier registration return
    value
  arm64: Check notifier registration return value
  soc/tegra: Check notifier registration return value
  parisc: Check notifier registration return value
  macintosh/adb: Check notifier registration return value
  mips: Check notifier registration return value
  powerpc: Check notifier registration return value
  sh: Check notifier registration return value
  s390: Check notifier registration return value
  sparc: Check notifier registration return value
  xtensa: Check notifier registration return value
  crypto: ccree - check notifier registration return value
  EDAC/altera: Check notifier registration return value
  power: supply: ab8500: Check notifier registration return value
  notifier: Return an error when callback is already registered

 arch/alpha/kernel/setup.c                     |  5 +--
 arch/arm64/kernel/setup.c                     |  6 ++--
 arch/mips/kernel/relocate.c                   |  6 ++--
 arch/mips/sgi-ip22/ip22-reset.c               |  4 ++-
 arch/mips/sgi-ip32/ip32-reset.c               |  4 ++-
 arch/parisc/kernel/pdc_chassis.c              |  5 +--
 arch/powerpc/kernel/setup-common.c            | 12 ++++---
 arch/s390/kernel/ipl.c                        |  4 ++-
 arch/s390/kvm/kvm-s390.c                      |  7 ++--
 arch/sh/kernel/cpu/sh4a/setup-sh7724.c        | 11 +++---
 arch/sparc/kernel/sstate.c                    |  6 ++--
 arch/um/drivers/mconsole_kern.c               |  6 ++--
 arch/um/kernel/um_arch.c                      |  5 +--
 arch/x86/kernel/cpu/mce/core.c                |  3 +-
 arch/x86/kernel/cpu/mce/dev-mcelog.c          |  3 +-
 arch/x86/kernel/setup.c                       |  7 ++--
 arch/x86/xen/enlighten.c                      |  4 ++-
 arch/xtensa/platforms/iss/setup.c             |  3 +-
 drivers/bus/brcmstb_gisb.c                    |  6 ++--
 drivers/char/ipmi/ipmi_msghandler.c           |  3 +-
 drivers/clk/renesas/clk-div6.c                |  4 ++-
 drivers/clk/renesas/rcar-cpg-lib.c            |  4 ++-
 drivers/crypto/ccree/cc_fips.c                |  4 ++-
 drivers/dca/dca-core.c                        |  3 +-
 drivers/edac/altera_edac.c                    |  6 ++--
 drivers/firmware/arm_scmi/notify.c            |  3 +-
 drivers/firmware/google/gsmi.c                |  6 ++--
 drivers/gpu/drm/i915/gvt/scheduler.c          |  6 ++--
 drivers/hv/vmbus_drv.c                        |  4 +--
 .../iio/proximity/cros_ec_mkbp_proximity.c    |  3 +-
 drivers/leds/trigger/ledtrig-activity.c       |  6 ++--
 drivers/leds/trigger/ledtrig-heartbeat.c      |  6 ++--
 drivers/leds/trigger/ledtrig-panic.c          |  4 +--
 drivers/macintosh/adbhid.c                    |  4 +--
 drivers/misc/ibmasm/heartbeat.c               |  3 +-
 drivers/misc/pvpanic/pvpanic.c                |  3 +-
 .../chelsio/inline_crypto/chtls/chtls_main.c  |  5 ++-
 drivers/parisc/power.c                        |  5 +--
 drivers/power/reset/ltc2952-poweroff.c        |  6 ++--
 drivers/power/supply/ab8500_charger.c         |  8 ++---
 drivers/remoteproc/qcom_common.c              |  3 +-
 drivers/remoteproc/qcom_sysmon.c              |  4 ++-
 drivers/remoteproc/remoteproc_core.c          |  4 ++-
 drivers/s390/char/con3215.c                   |  5 ++-
 drivers/s390/char/con3270.c                   |  5 ++-
 drivers/s390/char/sclp_con.c                  |  4 ++-
 drivers/s390/char/sclp_vt220.c                |  4 ++-
 drivers/s390/char/zcore.c                     |  4 ++-
 drivers/soc/bcm/brcmstb/pm/pm-arm.c           |  5 +--
 drivers/soc/tegra/ari-tegra186.c              |  7 ++--
 drivers/staging/olpc_dcon/olpc_dcon.c         |  4 ++-
 drivers/target/tcm_fc/tfc_conf.c              |  4 ++-
 drivers/usb/core/notify.c                     |  3 +-
 drivers/video/console/dummycon.c              |  3 +-
 drivers/video/fbdev/hyperv_fb.c               |  5 +--
 drivers/xen/manage.c                          |  3 +-
 drivers/xen/xenbus/xenbus_probe.c             |  8 +++--
 include/linux/notifier.h                      |  8 ++---
 kernel/hung_task.c                            |  3 +-
 kernel/notifier.c                             | 36 ++++++++++---------
 kernel/rcu/tree_stall.h                       |  4 ++-
 kernel/trace/trace.c                          |  4 +--
 net/core/fib_notifier.c                       |  4 ++-
 sound/soc/soc-jack.c                          |  3 +-
 64 files changed, 222 insertions(+), 118 deletions(-)

-- 
2.29.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:29:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:29:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223205.385801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1tT-0004jK-Om; Mon, 08 Nov 2021 10:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223205.385801; Mon, 08 Nov 2021 10:28:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1tT-0004jD-Lq; Mon, 08 Nov 2021 10:28:51 +0000
Received: by outflank-mailman (input) for mailman id 223205;
 Mon, 08 Nov 2021 10:28:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B9hq=P3=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1mk1tS-0004iw-Ir
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:28:50 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8817c81-407e-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 11:28:48 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 7500A21B01;
 Mon,  8 Nov 2021 10:28:48 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 1D7FC13B37;
 Mon,  8 Nov 2021 10:28:48 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id Y+crBuD7iGHPHQAAMHmgww
 (envelope-from <tzimmermann@suse.de>); Mon, 08 Nov 2021 10:28:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8817c81-407e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1636367328; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=/iioiyH4Q966bbevxkXK56U3XXUi7baEWWvNDv45N6I=;
	b=y2mnRHjthYiK1CtCkk4q71zzlkNuHVsebrPumY2Fu7DDVSrRnyO5GaTNtLwTi2xWYb/BSb
	Rn69kVxMfbCSXHyInCxS9JxJMQIiUWfoMW5FhckULdu7fjBZqCfQJ/lUzBzsWz9gwqMxp3
	lTFCBh6nknNSMYVqqqvdqFAhESuSw4Q=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1636367328;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=/iioiyH4Q966bbevxkXK56U3XXUi7baEWWvNDv45N6I=;
	b=EwpwY9IHQCBU7TChVkU3KtD5D8ovEskvbAZPMYTuu+tpo3oPg6W7WVj2uxGV29yONBwiA5
	uYgsfCzhBUU0XvBw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: daniel@ffwll.ch,
	airlied@linux.ie,
	maarten.lankhorst@linux.intel.com,
	mripard@kernel.org,
	inki.dae@samsung.com,
	jy0922.shim@samsung.com,
	sw0312.kim@samsung.com,
	kyungmin.park@samsung.com,
	krzysztof.kozlowski@canonical.com,
	oleksandr_andrushchenko@epam.com
Cc: dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [RESEND PATCH 0/3] drm/{exynos,xen}: Implement gem_prime_mmap with drm_gem_prime_mmap()
Date: Mon,  8 Nov 2021 11:28:43 +0100
Message-Id: <20211108102846.309-1-tzimmermann@suse.de>
X-Mailer: git-send-email 2.33.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

(Resending the patchset from [1]. Most drivers have already been updated and
only two drivers are left.)

Replace all remaining implementations of struct drm_driver.gem_prime_mmap
with use drm_gem_prime_mmap(). For each affected driver, put the mmap code
into struct drm_gem_object_funcs.mmap. With the latter change in place,
create struct file_operations via DEFINE_DRM_GEM_FOPS().

As next steps, drivers can be converted to use drm_gem_prime_mmap() and
drm_gem_mmap() (e.g., Tegra). The default mmap code in drm_gem_prime_mmap()
can be pushed into affected drivers or a helper function. The gem_prime_mmap
hook can probably be removed at some point.

[1] https://lore.kernel.org/dri-devel/20210609112012.10019-1-tzimmermann@suse.de/

Thomas Zimmermann (3):
  drm/exynox: Implement mmap as GEM object function
  drm/xen: Implement mmap as GEM object function
  drm: Update documentation and TODO of gem_prime_mmap hook

 Documentation/gpu/todo.rst                |  11 ---
 drivers/gpu/drm/exynos/exynos_drm_drv.c   |  13 +--
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c |  20 +---
 drivers/gpu/drm/exynos/exynos_drm_gem.c   |  43 ++-------
 drivers/gpu/drm/exynos/exynos_drm_gem.h   |   5 -
 drivers/gpu/drm/xen/xen_drm_front.c       |  16 +---
 drivers/gpu/drm/xen/xen_drm_front_gem.c   | 108 +++++++++-------------
 drivers/gpu/drm/xen/xen_drm_front_gem.h   |   7 --
 include/drm/drm_drv.h                     |  11 ++-
 9 files changed, 64 insertions(+), 170 deletions(-)


base-commit: 215295e7b0a3deb2015c6d6b343b319e4f6d9a1d
prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d
prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
--
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:29:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:29:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223208.385826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1tV-00058I-Pz; Mon, 08 Nov 2021 10:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223208.385826; Mon, 08 Nov 2021 10:28:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1tV-00055P-Dn; Mon, 08 Nov 2021 10:28:53 +0000
Received: by outflank-mailman (input) for mailman id 223208;
 Mon, 08 Nov 2021 10:28:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B9hq=P3=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1mk1tT-0004ix-Qo
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:28:51 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a93b30a6-407e-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 11:28:49 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id D586A1FD72;
 Mon,  8 Nov 2021 10:28:48 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7A97213B37;
 Mon,  8 Nov 2021 10:28:48 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id AAviHOD7iGHPHQAAMHmgww
 (envelope-from <tzimmermann@suse.de>); Mon, 08 Nov 2021 10:28:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a93b30a6-407e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1636367328; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=e86M7pe+HXa6lq1rJiYReShYEDfFQwnHYAeibyHmDK4=;
	b=n/2k3aEH2IRfk46CEAwCG5c7HSuuQsTfrTJbSP6DPDhKpPx+NY32BY4U68wUON7o9bUjvt
	NZkAnZZBTzfIcwrS87U6Kw37t9OdSautN1Xi0keNHQzhxwAeXScNIMrUKJ8W5ZzokzMvNt
	2Q5OcOTYcZvMAY2G0euHXFTqXag/ERc=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1636367328;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=e86M7pe+HXa6lq1rJiYReShYEDfFQwnHYAeibyHmDK4=;
	b=ul1XNYfaAlNBWtN19m9OIJ/i1HX5DiIMawpf8txh2KWnKWysWX1vqQqyC3lqppwO73oBUs
	uJezsJFlORi2UIBw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: daniel@ffwll.ch,
	airlied@linux.ie,
	maarten.lankhorst@linux.intel.com,
	mripard@kernel.org,
	inki.dae@samsung.com,
	jy0922.shim@samsung.com,
	sw0312.kim@samsung.com,
	kyungmin.park@samsung.com,
	krzysztof.kozlowski@canonical.com,
	oleksandr_andrushchenko@epam.com
Cc: dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH 1/3] drm/exynox: Implement mmap as GEM object function
Date: Mon,  8 Nov 2021 11:28:44 +0100
Message-Id: <20211108102846.309-2-tzimmermann@suse.de>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108102846.309-1-tzimmermann@suse.de>
References: <20211108102846.309-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Moving the driver-specific mmap code into a GEM object function allows
for using DRM helpers for various mmap callbacks.

The respective exynos functions are being removed. The file_operations
structure exynos_drm_driver_fops is now being created by the helper macro
DEFINE_DRM_GEM_FOPS().

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/gpu/drm/exynos/exynos_drm_drv.c   | 13 ++-----
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 20 ++---------
 drivers/gpu/drm/exynos/exynos_drm_gem.c   | 43 +++++------------------
 drivers/gpu/drm/exynos/exynos_drm_gem.h   |  5 ---
 4 files changed, 13 insertions(+), 68 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index d8f1cf4d6b69..9743b6b17447 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -102,16 +102,7 @@ static const struct drm_ioctl_desc exynos_ioctls[] = {
 			DRM_RENDER_ALLOW),
 };
 
-static const struct file_operations exynos_drm_driver_fops = {
-	.owner		= THIS_MODULE,
-	.open		= drm_open,
-	.mmap		= exynos_drm_gem_mmap,
-	.poll		= drm_poll,
-	.read		= drm_read,
-	.unlocked_ioctl	= drm_ioctl,
-	.compat_ioctl = drm_compat_ioctl,
-	.release	= drm_release,
-};
+DEFINE_DRM_GEM_FOPS(exynos_drm_driver_fops);
 
 static const struct drm_driver exynos_drm_driver = {
 	.driver_features	= DRIVER_MODESET | DRIVER_GEM
@@ -124,7 +115,7 @@ static const struct drm_driver exynos_drm_driver = {
 	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
 	.gem_prime_import	= exynos_drm_gem_prime_import,
 	.gem_prime_import_sg_table	= exynos_drm_gem_prime_import_sg_table,
-	.gem_prime_mmap		= exynos_drm_gem_prime_mmap,
+	.gem_prime_mmap		= drm_gem_prime_mmap,
 	.ioctls			= exynos_ioctls,
 	.num_ioctls		= ARRAY_SIZE(exynos_ioctls),
 	.fops			= &exynos_drm_driver_fops,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index 5147f5929be7..02c97b9ca926 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -15,6 +15,7 @@
 #include <drm/drm_crtc.h>
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_fourcc.h>
+#include <drm/drm_prime.h>
 #include <drm/drm_probe_helper.h>
 #include <drm/exynos_drm.h>
 
@@ -39,25 +40,8 @@ static int exynos_drm_fb_mmap(struct fb_info *info,
 	struct drm_fb_helper *helper = info->par;
 	struct exynos_drm_fbdev *exynos_fbd = to_exynos_fbdev(helper);
 	struct exynos_drm_gem *exynos_gem = exynos_fbd->exynos_gem;
-	unsigned long vm_size;
-	int ret;
-
-	vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
-
-	vm_size = vma->vm_end - vma->vm_start;
-
-	if (vm_size > exynos_gem->size)
-		return -EINVAL;
 
-	ret = dma_mmap_attrs(to_dma_dev(helper->dev), vma, exynos_gem->cookie,
-			     exynos_gem->dma_addr, exynos_gem->size,
-			     exynos_gem->dma_attrs);
-	if (ret < 0) {
-		DRM_DEV_ERROR(to_dma_dev(helper->dev), "failed to mmap.\n");
-		return ret;
-	}
-
-	return 0;
+	return drm_gem_prime_mmap(&exynos_gem->base, vma);
 }
 
 static const struct fb_ops exynos_drm_fb_ops = {
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
index 4396224227d1..c4b63902ee7a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
@@ -17,6 +17,8 @@
 #include "exynos_drm_drv.h"
 #include "exynos_drm_gem.h"
 
+static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
+
 static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool kvmap)
 {
 	struct drm_device *dev = exynos_gem->base.dev;
@@ -135,6 +137,7 @@ static const struct vm_operations_struct exynos_drm_gem_vm_ops = {
 static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = {
 	.free = exynos_drm_gem_free_object,
 	.get_sg_table = exynos_drm_gem_prime_get_sg_table,
+	.mmap = exynos_drm_gem_mmap,
 	.vm_ops = &exynos_drm_gem_vm_ops,
 };
 
@@ -354,12 +357,16 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
 	return 0;
 }
 
-static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj,
-				   struct vm_area_struct *vma)
+static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
 {
 	struct exynos_drm_gem *exynos_gem = to_exynos_gem(obj);
 	int ret;
 
+	if (obj->import_attach)
+		return dma_buf_mmap(obj->dma_buf, vma, 0);
+
+	vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
+
 	DRM_DEV_DEBUG_KMS(to_dma_dev(obj->dev), "flags = 0x%x\n",
 			  exynos_gem->flags);
 
@@ -385,26 +392,6 @@ static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj,
 	return ret;
 }
 
-int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
-{
-	struct drm_gem_object *obj;
-	int ret;
-
-	/* set vm_area_struct. */
-	ret = drm_gem_mmap(filp, vma);
-	if (ret < 0) {
-		DRM_ERROR("failed to mmap.\n");
-		return ret;
-	}
-
-	obj = vma->vm_private_data;
-
-	if (obj->import_attach)
-		return dma_buf_mmap(obj->dma_buf, vma, 0);
-
-	return exynos_drm_gem_mmap_obj(obj, vma);
-}
-
 /* low-level interface prime helpers */
 struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev,
 					    struct dma_buf *dma_buf)
@@ -466,15 +453,3 @@ exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
 	exynos_gem->sgt = sgt;
 	return &exynos_gem->base;
 }
-
-int exynos_drm_gem_prime_mmap(struct drm_gem_object *obj,
-			      struct vm_area_struct *vma)
-{
-	int ret;
-
-	ret = drm_gem_mmap_obj(obj, obj->size, vma);
-	if (ret < 0)
-		return ret;
-
-	return exynos_drm_gem_mmap_obj(obj, vma);
-}
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exynos/exynos_drm_gem.h
index a23272fb96fb..79d7e1a87419 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gem.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h
@@ -96,9 +96,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
 			       struct drm_device *dev,
 			       struct drm_mode_create_dumb *args);
 
-/* set vm_flags and we can change the vm attribute to other one at here. */
-int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma);
-
 /* low-level interface prime helpers */
 struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev,
 					    struct dma_buf *dma_buf);
@@ -107,7 +104,5 @@ struct drm_gem_object *
 exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
 				     struct dma_buf_attachment *attach,
 				     struct sg_table *sgt);
-int exynos_drm_gem_prime_mmap(struct drm_gem_object *obj,
-			      struct vm_area_struct *vma);
 
 #endif
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:29:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:29:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223206.385813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1tV-0004z7-03; Mon, 08 Nov 2021 10:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223206.385813; Mon, 08 Nov 2021 10:28:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1tU-0004z0-T7; Mon, 08 Nov 2021 10:28:52 +0000
Received: by outflank-mailman (input) for mailman id 223206;
 Mon, 08 Nov 2021 10:28:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B9hq=P3=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1mk1tT-0004ix-2r
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:28:51 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a968f7ad-407e-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 11:28:49 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 2BFBE21B02;
 Mon,  8 Nov 2021 10:28:49 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id CF4F113B70;
 Mon,  8 Nov 2021 10:28:48 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id ADOHMeD7iGHPHQAAMHmgww
 (envelope-from <tzimmermann@suse.de>); Mon, 08 Nov 2021 10:28:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a968f7ad-407e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1636367329; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=uqJ3PALj2N8mNSp5HF/ewLhmQXtB1FwQ53fCXX1lFLw=;
	b=rmnSqlyDX8NxHsoJUlQ7OsnPHLSTOBo6y+O4B7PK3khQJFab65TWpO9v36FlFPij0oUQiK
	GA92sF2pvLXkHSUgGjwl3EksMTZHAMSweU0IHGUysHl2AMMOs+ZrOxsXJAM7XR6tnmugNz
	SqMvDY606d5S7B8fG8cwkFH8FkoMbRI=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1636367329;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=uqJ3PALj2N8mNSp5HF/ewLhmQXtB1FwQ53fCXX1lFLw=;
	b=pikWo+BrPYVvgje5Km5ynjXlmML6EPsbnpIYweTsdor4z8xyzL/I1EI7YddJ/rcpJOwsSX
	hwKhYVsIIWVGUNDg==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: daniel@ffwll.ch,
	airlied@linux.ie,
	maarten.lankhorst@linux.intel.com,
	mripard@kernel.org,
	inki.dae@samsung.com,
	jy0922.shim@samsung.com,
	sw0312.kim@samsung.com,
	kyungmin.park@samsung.com,
	krzysztof.kozlowski@canonical.com,
	oleksandr_andrushchenko@epam.com
Cc: dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH 2/3] drm/xen: Implement mmap as GEM object function
Date: Mon,  8 Nov 2021 11:28:45 +0100
Message-Id: <20211108102846.309-3-tzimmermann@suse.de>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108102846.309-1-tzimmermann@suse.de>
References: <20211108102846.309-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Moving the driver-specific mmap code into a GEM object function allows
for using DRM helpers for various mmap callbacks.

The respective xen functions are being removed. The file_operations
structure fops is now being created by the helper macro
DEFINE_DRM_GEM_FOPS().

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/gpu/drm/xen/xen_drm_front.c     |  16 +---
 drivers/gpu/drm/xen/xen_drm_front_gem.c | 108 +++++++++---------------
 drivers/gpu/drm/xen/xen_drm_front_gem.h |   7 --
 3 files changed, 44 insertions(+), 87 deletions(-)

diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
index 9f14d99c763c..434064c820e8 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -469,19 +469,7 @@ static void xen_drm_drv_release(struct drm_device *dev)
 	kfree(drm_info);
 }
 
-static const struct file_operations xen_drm_dev_fops = {
-	.owner          = THIS_MODULE,
-	.open           = drm_open,
-	.release        = drm_release,
-	.unlocked_ioctl = drm_ioctl,
-#ifdef CONFIG_COMPAT
-	.compat_ioctl   = drm_compat_ioctl,
-#endif
-	.poll           = drm_poll,
-	.read           = drm_read,
-	.llseek         = no_llseek,
-	.mmap           = xen_drm_front_gem_mmap,
-};
+DEFINE_DRM_GEM_FOPS(xen_drm_dev_fops);
 
 static const struct drm_driver xen_drm_driver = {
 	.driver_features           = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
@@ -489,7 +477,7 @@ static const struct drm_driver xen_drm_driver = {
 	.prime_handle_to_fd        = drm_gem_prime_handle_to_fd,
 	.prime_fd_to_handle        = drm_gem_prime_fd_to_handle,
 	.gem_prime_import_sg_table = xen_drm_front_gem_import_sg_table,
-	.gem_prime_mmap            = xen_drm_front_gem_prime_mmap,
+	.gem_prime_mmap            = drm_gem_prime_mmap,
 	.dumb_create               = xen_drm_drv_dumb_create,
 	.fops                      = &xen_drm_dev_fops,
 	.name                      = "xendrm-du",
diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.c b/drivers/gpu/drm/xen/xen_drm_front_gem.c
index b293c67230ef..dd358ba2bf8e 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_gem.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_gem.c
@@ -57,6 +57,47 @@ static void gem_free_pages_array(struct xen_gem_object *xen_obj)
 	xen_obj->pages = NULL;
 }
 
+static int xen_drm_front_gem_object_mmap(struct drm_gem_object *gem_obj,
+					 struct vm_area_struct *vma)
+{
+	struct xen_gem_object *xen_obj = to_xen_gem_obj(gem_obj);
+	int ret;
+
+	vma->vm_ops = gem_obj->funcs->vm_ops;
+
+	/*
+	 * Clear the VM_PFNMAP flag that was set by drm_gem_mmap(), and set the
+	 * vm_pgoff (used as a fake buffer offset by DRM) to 0 as we want to map
+	 * the whole buffer.
+	 */
+	vma->vm_flags &= ~VM_PFNMAP;
+	vma->vm_flags |= VM_MIXEDMAP;
+	vma->vm_pgoff = 0;
+
+	/*
+	 * According to Xen on ARM ABI (xen/include/public/arch-arm.h):
+	 * all memory which is shared with other entities in the system
+	 * (including the hypervisor and other guests) must reside in memory
+	 * which is mapped as Normal Inner Write-Back Outer Write-Back
+	 * Inner-Shareable.
+	 */
+	vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
+
+	/*
+	 * vm_operations_struct.fault handler will be called if CPU access
+	 * to VM is here. For GPUs this isn't the case, because CPU  doesn't
+	 * touch the memory. Insert pages now, so both CPU and GPU are happy.
+	 *
+	 * FIXME: as we insert all the pages now then no .fault handler must
+	 * be called, so don't provide one
+	 */
+	ret = vm_map_pages(vma, xen_obj->pages, xen_obj->num_pages);
+	if (ret < 0)
+		DRM_ERROR("Failed to map pages into vma: %d\n", ret);
+
+	return ret;
+}
+
 static const struct vm_operations_struct xen_drm_drv_vm_ops = {
 	.open           = drm_gem_vm_open,
 	.close          = drm_gem_vm_close,
@@ -67,6 +108,7 @@ static const struct drm_gem_object_funcs xen_drm_front_gem_object_funcs = {
 	.get_sg_table = xen_drm_front_gem_get_sg_table,
 	.vmap = xen_drm_front_gem_prime_vmap,
 	.vunmap = xen_drm_front_gem_prime_vunmap,
+	.mmap = xen_drm_front_gem_object_mmap,
 	.vm_ops = &xen_drm_drv_vm_ops,
 };
 
@@ -238,58 +280,6 @@ xen_drm_front_gem_import_sg_table(struct drm_device *dev,
 	return &xen_obj->base;
 }
 
-static int gem_mmap_obj(struct xen_gem_object *xen_obj,
-			struct vm_area_struct *vma)
-{
-	int ret;
-
-	/*
-	 * clear the VM_PFNMAP flag that was set by drm_gem_mmap(), and set the
-	 * vm_pgoff (used as a fake buffer offset by DRM) to 0 as we want to map
-	 * the whole buffer.
-	 */
-	vma->vm_flags &= ~VM_PFNMAP;
-	vma->vm_flags |= VM_MIXEDMAP;
-	vma->vm_pgoff = 0;
-	/*
-	 * According to Xen on ARM ABI (xen/include/public/arch-arm.h):
-	 * all memory which is shared with other entities in the system
-	 * (including the hypervisor and other guests) must reside in memory
-	 * which is mapped as Normal Inner Write-Back Outer Write-Back
-	 * Inner-Shareable.
-	 */
-	vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
-
-	/*
-	 * vm_operations_struct.fault handler will be called if CPU access
-	 * to VM is here. For GPUs this isn't the case, because CPU
-	 * doesn't touch the memory. Insert pages now, so both CPU and GPU are
-	 * happy.
-	 * FIXME: as we insert all the pages now then no .fault handler must
-	 * be called, so don't provide one
-	 */
-	ret = vm_map_pages(vma, xen_obj->pages, xen_obj->num_pages);
-	if (ret < 0)
-		DRM_ERROR("Failed to map pages into vma: %d\n", ret);
-
-	return ret;
-}
-
-int xen_drm_front_gem_mmap(struct file *filp, struct vm_area_struct *vma)
-{
-	struct xen_gem_object *xen_obj;
-	struct drm_gem_object *gem_obj;
-	int ret;
-
-	ret = drm_gem_mmap(filp, vma);
-	if (ret < 0)
-		return ret;
-
-	gem_obj = vma->vm_private_data;
-	xen_obj = to_xen_gem_obj(gem_obj);
-	return gem_mmap_obj(xen_obj, vma);
-}
-
 int xen_drm_front_gem_prime_vmap(struct drm_gem_object *gem_obj, struct dma_buf_map *map)
 {
 	struct xen_gem_object *xen_obj = to_xen_gem_obj(gem_obj);
@@ -313,17 +303,3 @@ void xen_drm_front_gem_prime_vunmap(struct drm_gem_object *gem_obj,
 {
 	vunmap(map->vaddr);
 }
-
-int xen_drm_front_gem_prime_mmap(struct drm_gem_object *gem_obj,
-				 struct vm_area_struct *vma)
-{
-	struct xen_gem_object *xen_obj;
-	int ret;
-
-	ret = drm_gem_mmap_obj(gem_obj, gem_obj->size, vma);
-	if (ret < 0)
-		return ret;
-
-	xen_obj = to_xen_gem_obj(gem_obj);
-	return gem_mmap_obj(xen_obj, vma);
-}
diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.h b/drivers/gpu/drm/xen/xen_drm_front_gem.h
index a4e67d0a149c..eaea470f7001 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_gem.h
+++ b/drivers/gpu/drm/xen/xen_drm_front_gem.h
@@ -15,9 +15,7 @@ struct dma_buf_attachment;
 struct dma_buf_map;
 struct drm_device;
 struct drm_gem_object;
-struct file;
 struct sg_table;
-struct vm_area_struct;
 
 struct drm_gem_object *xen_drm_front_gem_create(struct drm_device *dev,
 						size_t size);
@@ -33,15 +31,10 @@ struct page **xen_drm_front_gem_get_pages(struct drm_gem_object *obj);
 
 void xen_drm_front_gem_free_object_unlocked(struct drm_gem_object *gem_obj);
 
-int xen_drm_front_gem_mmap(struct file *filp, struct vm_area_struct *vma);
-
 int xen_drm_front_gem_prime_vmap(struct drm_gem_object *gem_obj,
 				 struct dma_buf_map *map);
 
 void xen_drm_front_gem_prime_vunmap(struct drm_gem_object *gem_obj,
 				    struct dma_buf_map *map);
 
-int xen_drm_front_gem_prime_mmap(struct drm_gem_object *gem_obj,
-				 struct vm_area_struct *vma);
-
 #endif /* __XEN_DRM_FRONT_GEM_H */
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:29:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:29:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223207.385818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1tV-000523-Ae; Mon, 08 Nov 2021 10:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223207.385818; Mon, 08 Nov 2021 10:28:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk1tV-00050m-4i; Mon, 08 Nov 2021 10:28:53 +0000
Received: by outflank-mailman (input) for mailman id 223207;
 Mon, 08 Nov 2021 10:28:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B9hq=P3=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1mk1tT-0004iw-9r
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:28:51 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a910c954-407e-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 11:28:49 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 8148121B03;
 Mon,  8 Nov 2021 10:28:49 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3135013B37;
 Mon,  8 Nov 2021 10:28:49 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id KL8hC+H7iGHPHQAAMHmgww
 (envelope-from <tzimmermann@suse.de>); Mon, 08 Nov 2021 10:28:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a910c954-407e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1636367329; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eXCwJP3nKtLP6aoK6DhOZgWRdtuHuI7e4M/Huhos4KE=;
	b=17+YmRL40GX5f46x3uqwIwEhhEYqLwSJAYBMccX0iVx2j8L5GiSIgpcec5Ag2hIlhXYAxV
	iNYon9cd8f46/K5r0pTWu7vMwnvIKVmUlbvN1RcEZqrixBLMVt6MV26ArB2KJA6UfOtlIM
	JxezbS5BCS17By4LPhksfiiQme7Z2Bk=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1636367329;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eXCwJP3nKtLP6aoK6DhOZgWRdtuHuI7e4M/Huhos4KE=;
	b=QUsSfucOeEsmG/jVSS9erx6cBxm+p/DRDb+jcqAsfz2DLziF3VFkU9hZfF3nqzIonnH2nu
	MuRcqaEu70FNZTAA==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: daniel@ffwll.ch,
	airlied@linux.ie,
	maarten.lankhorst@linux.intel.com,
	mripard@kernel.org,
	inki.dae@samsung.com,
	jy0922.shim@samsung.com,
	sw0312.kim@samsung.com,
	kyungmin.park@samsung.com,
	krzysztof.kozlowski@canonical.com,
	oleksandr_andrushchenko@epam.com
Cc: dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH 3/3] drm: Update documentation and TODO of gem_prime_mmap hook
Date: Mon,  8 Nov 2021 11:28:46 +0100
Message-Id: <20211108102846.309-4-tzimmermann@suse.de>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211108102846.309-1-tzimmermann@suse.de>
References: <20211108102846.309-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The hook gem_prime_mmap in struct drm_driver is deprecated. Document
the new requirements.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 Documentation/gpu/todo.rst | 11 -----------
 include/drm/drm_drv.h      | 11 +++++++----
 2 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
index 60d1d7ee0719..6593c4c4006e 100644
--- a/Documentation/gpu/todo.rst
+++ b/Documentation/gpu/todo.rst
@@ -268,17 +268,6 @@ Contact: Daniel Vetter
 
 Level: Intermediate
 
-Clean up mmap forwarding
-------------------------
-
-A lot of drivers forward gem mmap calls to dma-buf mmap for imported buffers.
-And also a lot of them forward dma-buf mmap to the gem mmap implementations.
-There's drm_gem_prime_mmap() for this now, but still needs to be rolled out.
-
-Contact: Daniel Vetter
-
-Level: Intermediate
-
 Generic fbdev defio support
 ---------------------------
 
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 0cd95953cdf5..a84eb4028e5b 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -345,11 +345,14 @@ struct drm_driver {
 	 * mmap hook for GEM drivers, used to implement dma-buf mmap in the
 	 * PRIME helpers.
 	 *
-	 * FIXME: There's way too much duplication going on here, and also moved
-	 * to &drm_gem_object_funcs.
+	 * This hook only exists for historical reasons. Drivers must use
+	 * drm_gem_prime_mmap() to implement it.
+	 *
+	 * FIXME: Convert all drivers to implement mmap in struct
+	 * &drm_gem_object_funcs and inline drm_gem_prime_mmap() into
+	 * its callers. This hook should be removed afterwards.
 	 */
-	int (*gem_prime_mmap)(struct drm_gem_object *obj,
-				struct vm_area_struct *vma);
+	int (*gem_prime_mmap)(struct drm_gem_object *obj, struct vm_area_struct *vma);
 
 	/**
 	 * @dumb_create:
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:37:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:37:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223230.385846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk21v-00082V-Mv; Mon, 08 Nov 2021 10:37:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223230.385846; Mon, 08 Nov 2021 10:37:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk21v-00082O-Ib; Mon, 08 Nov 2021 10:37:35 +0000
Received: by outflank-mailman (input) for mailman id 223230;
 Mon, 08 Nov 2021 10:37:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mk21u-00082I-3L
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:37:34 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mk21t-0001xU-LL; Mon, 08 Nov 2021 10:37:33 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.146.147]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mk21t-0004gX-F5; Mon, 08 Nov 2021 10:37:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Nj/lKmQ6q9a3v5gfY230zqeTy8GzXapFZr/UE2kGyAQ=; b=qNF8vS3QREyXif3hfgRbrHW6g5
	j31B8DM1t9DX7L8mbkFVP1uzutN3bL84cweMIa8/kxlnIgNWfwUaMhTX5LtKZI/RSMOANzAPZIcqj
	1IgHq1208PeiHwGrMp7vMq+xKgjluF3bm/JrtaEFFY9euya5UpuJ3//kR+gKxFmyScZQ=;
Message-ID: <caac2d2b-46a7-e12b-7cb0-ac1b7791d8a1@xen.org>
Date: Mon, 8 Nov 2021 10:37:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [XEN][PATCH v3 1/1] Update libfdt to v1.6.1
To: Vikram Garhwal <fnu.vikram@xilinx.com>, xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, bertrand.marquis@arm.com,
 volodymyr_babchuk@epam.com
References: <1636147719-80482-1-git-send-email-fnu.vikram@xilinx.com>
 <1636147719-80482-2-git-send-email-fnu.vikram@xilinx.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <1636147719-80482-2-git-send-email-fnu.vikram@xilinx.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Vikram,

On 05/11/2021 21:28, Vikram Garhwal wrote:
> Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
> This update is done to support device tree overlays.
> 
> A few minor changes are done to make it compatible with Xen:
>      fdt_overlay.c: overlay_fixup_phandle()
> 
>          Replace strtoul() with simple_strtoul() as strtoul() is not available in
>          Xen lib and included lib.h.
> 
>          Change char *endptr to const char *endptr.

I would clarify this is a requirement to use simple_strtoul().

[...]

> diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
> index 035bf75..03380d5 100644
> --- a/xen/include/xen/libfdt/libfdt_env.h
> +++ b/xen/include/xen/libfdt/libfdt_env.h
> @@ -1,22 +1,98 @@
> -#ifndef _LIBFDT_ENV_H
> -#define _LIBFDT_ENV_H
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> +#ifndef LIBFDT_ENV_H
> +#define LIBFDT_ENV_H
> +/*
> + * libfdt - Flat Device Tree manipulation
> + * Copyright (C) 2006 David Gibson, IBM Corporation.
> + * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> + */
>   
> +#include <xen/config.h>

The build system should always include <xen/config.h> automagically. So 
can you clarify why this is necessary?

>   #include <xen/types.h>
>   #include <xen/string.h>
>   #include <asm/byteorder.h>
> +#include <xen/stdbool.h>

We usually order the headers so <xen/...> are first and then <asm/...>. 
They are then ordered alphabetically within themself.

But it is not clear why you are adding <xen/stdbool.h> as AFAICT it is 
already going to be included by existing headers. Did you see an error 
without including it?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 10:47:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 10:47:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223236.385856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2BB-00017K-Jb; Mon, 08 Nov 2021 10:47:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223236.385856; Mon, 08 Nov 2021 10:47:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2BB-00017D-Gh; Mon, 08 Nov 2021 10:47:09 +0000
Received: by outflank-mailman (input) for mailman id 223236;
 Mon, 08 Nov 2021 10:47:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ncso=P3=epam.com=prvs=1946062fbd=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mk2B9-000175-An
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 10:47:07 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 362ce1af-4081-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 11:47:05 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A8AbvrB029590;
 Mon, 8 Nov 2021 10:46:50 GMT
Received: from eur01-he1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2056.outbound.protection.outlook.com [104.47.0.56])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3c6ueysc6t-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 08 Nov 2021 10:46:49 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6243.eurprd03.prod.outlook.com (2603:10a6:20b:144::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Mon, 8 Nov
 2021 10:46:44 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 10:46:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 362ce1af-4081-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ifwJv0gZP8UeVSaNz60Omf/Uoc8R5sCUOCJeediPT5HEiN8CMCaKcJCLz+9yx32COfLGGG+PInRjWDxQkwaDt2AcTmKZPUIs0P03t8/cr/NK8mohVOkmwsI74fMc5MkWo1O2bzpgEcSwAt+8HNHX30PkLfP3bmVFJ+a3gwfAEnuJ2+LaRG0wTNXemZK/p19i146dA6OvjjYnRD6HENdt3k9afDhHGgmOapSunNHHKLNizAju0JXxc4BVmGkewJSnMSSHebDtBQJ2PVo1c3HdOg5VBddhrMMFibqdR1e8QZULZRoiM8nvQK6OCsBACtdh04rCXvwasLQYQhnP9FOeBQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=duvU24mBPi5oM0Mp3QeRYInP1AVZkuwCmqERyCqVj2c=;
 b=O+kFBXVlj4oSOg2MT5H4CY8MlV8HoDWXGllWYiD37Gqe0GuSnYcMyhT263mxb8hJLhKImXtugmeex8r/9pnqF8G3MzjnkQ2Tq/Cfg73DorURJ1S3uEehGyuRNL/lZmbN7RtvdkrG0SgxApXRYsFsX07gWEItyzDTgiSiKpG1LghQ0gAZd4SHS1HmqyJ6YIfyolqOm5f88Mv8DVbbDf9RMEJcqH1rx6hrrdcZf/pMgezf4POfpla93y3/OzngVbtLDCtPpveDIUbJG3hIAGnlVmFB3i4SFKWaEOQjFbdmII5grzfxQQh78zmo+sZFLuGsic73FNaBjb/HrQx/7B1tkQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=duvU24mBPi5oM0Mp3QeRYInP1AVZkuwCmqERyCqVj2c=;
 b=jb/yB4o1Xlg2o63qVJlZHQRJlMZKGEI3Vb02pZBPdXysHhDBZOeMZ4wBg5uvw/lPHHS5JKhPeowAvr4HzW44F0FfgRSj3GLXu99X41EeCYqrr0+losIucaL7nL+zcymW3UreCwRrwyyMJ8VXPaKJ0JGxZs7aSrrgFipShPP7WIbuGugoqdGoTGbipiAYx/X+rC2iR1dJBdzeGpGb8FMB43JLpLK+m3CN8+td5RH73N5hzrLhDXKp3aoNH3BRm+HXtIBKMWx5BRga5OYwoznLRpcO17r3H3p/sEMtv8BRLTyLRq2rfmUedqyEGm++cG1Ak3PxOz45HlCH+Qmp5vpJqQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Thomas Zimmermann <tzimmermann@suse.de>,
        "daniel@ffwll.ch"
	<daniel@ffwll.ch>,
        "airlied@linux.ie" <airlied@linux.ie>,
        "maarten.lankhorst@linux.intel.com" <maarten.lankhorst@linux.intel.com>,
        "mripard@kernel.org" <mripard@kernel.org>,
        "inki.dae@samsung.com"
	<inki.dae@samsung.com>,
        "jy0922.shim@samsung.com" <jy0922.shim@samsung.com>,
        "sw0312.kim@samsung.com" <sw0312.kim@samsung.com>,
        "kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
        "krzysztof.kozlowski@canonical.com" <krzysztof.kozlowski@canonical.com>,
        Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>,
        "linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
        "linux-samsung-soc@vger.kernel.org"
	<linux-samsung-soc@vger.kernel.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/3] drm/xen: Implement mmap as GEM object function
Thread-Topic: [PATCH 2/3] drm/xen: Implement mmap as GEM object function
Thread-Index: AQHX1IttswXaCSEAPU6MVWb85qt05Kv5cr+A
Date: Mon, 8 Nov 2021 10:46:44 +0000
Message-ID: <e727222a-3611-f1c0-a176-2214eb9553be@epam.com>
References: <20211108102846.309-1-tzimmermann@suse.de>
 <20211108102846.309-3-tzimmermann@suse.de>
In-Reply-To: <20211108102846.309-3-tzimmermann@suse.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 00aa2e88-57ba-4621-0080-08d9a2a50e99
x-ms-traffictypediagnostic: AM0PR03MB6243:
x-microsoft-antispam-prvs: 
 <AM0PR03MB6243983FBBA74A56AE7B5B57E7919@AM0PR03MB6243.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:2150;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 TLmV9QvNaky10Q0GoQ6pW001aQ1VOktSj2777ZbXUDXHilhBB/vYzQF8jihuiwyoYCi9LixitDazthEyeXtT/iHHjAO9GppZgPuJgODE6WLgejplDQ6oKQjpc4moVBw1eXcU0YpDN2s1nCAeZX8P5ZsugJVFvliVgaEDGm4fgEjSIzD6NHJGcPY6utWOMXv2Z9bdid+OrSuFCa8/hFqRCBVcaTrK/LcFH2sk+iH1UWYg2ai3/fcypVxB2cmX2noo64ySxerHNNPqs5X3nI2rpyqJTSlgZR1Cuu/tfbYDtBVApUv4R/aFZXIhB3t0MYK2212JDjezT/GwGvnjs/9FoCIhv5eDCxK/qe85KuWarQSa8EuiFbKTyFSPArX60r6sE3dL+paRHc7aTueA+/24++l1UEjposWc+lXguW1kuhevtilV6KYKuupT+DsajzYRAR9fVLApXv8LyUm8PSslzc9pdQdjnKzURlADrm2V9q4xIRf6GAgl78AJA67tze3uMnkXov0lUqUnvnnzgyCOjTGrU0m7/Dr+IkrcEdfDZLWd5aUHyktfaWeWbZMY1zbwWdc7hNj0dYInnY4mXRA4a9uE0X7BhW6tDGlMd0mT7HGOECSgL0g1ovgDKz/fyXtbW8yyUepHomEbaoKyTcgsROlGihIvBfcdNmUQFBe0Lwq4m3zsewJWpF0xOr7rd8e4oYqbJBeMwJTqmH3C72UafrOI6xJnDFs/ytqrc9Fg22equ21hHqL7vaUF01JE8iBA
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66556008)(86362001)(31686004)(64756008)(66446008)(66476007)(54906003)(8676002)(76116006)(122000001)(36756003)(6486002)(186003)(38100700002)(6512007)(316002)(8936002)(31696002)(110136005)(2906002)(66946007)(4326008)(91956017)(508600001)(38070700005)(5660300002)(921005)(2616005)(26005)(71200400001)(53546011)(6506007)(7416002)(83380400001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?dDdRMkZyVGFwWlFUdmEwbjlkUnpxTzBPcnBHMnJEMmdoRFYxSnNnWWE5bGJ3?=
 =?utf-8?B?ekYrcGcrWlpRZEkzSUxvK1FEelhWam1ZTi9yQVFxRzhWUWJIcm9MNnJla0lH?=
 =?utf-8?B?OEVlZklrYmRMcnR4VHVjT2JVcjdBUDZ0S3RGNW0wSDgyY0VnWENTVWgzU0Vs?=
 =?utf-8?B?ejZveFpPWFlteVRUM096dkwrVmcwN1FrY0xIRTh6cDRmUDNDZ1pxNWFhd09E?=
 =?utf-8?B?Q1Jqb0R3YkxTbzhuc0M2OUhqWm1tMmFJQTl5b1hUekI5RHFNR1pCWTFCbnFQ?=
 =?utf-8?B?WGx1SWlnQjBJRzE0akJVVUZ6WXFNTUhmTFpDdHFCQ2UrT1djZmduSFJ2QTBl?=
 =?utf-8?B?Y3V2YTNuN1dHZVN5K0tOQTJqQlFPVmxOaklteC91REdQcit3TzF4WDNqNTls?=
 =?utf-8?B?dFJ2Q0xwLzRrdTcrWitUQWdvQ1NFUWMraHphODhyd3FGRXpXRUQxdzdzWFdT?=
 =?utf-8?B?QUlEMXhTRDRwak1nZFhEclUzYUhTb3BpeEU2Y2p5QVFka3FDMEVDVnUzenht?=
 =?utf-8?B?cGNsZkk5c1JCQ0NnVWN1am9DbGo3YVArM3VFeWwwQ2JMVmZFYlJVdVcwaWpa?=
 =?utf-8?B?TUo4WlJTYzJROFd0Q0hkK0JTNFNSbGc3dmw1anU2czZIOTZQQ2NFZzM1M3ZX?=
 =?utf-8?B?WVMvUTRvWFJHWGdNbGJ6WTFXTjVFa1FiZldZbVFsUzZoSDNURUVta0RhZ2JU?=
 =?utf-8?B?dVFWZFRvWDc5dDkwbTRjQnVOcmhINnpUNmdxTFJzZ0ZVTHE5L0dIdDhBeDBV?=
 =?utf-8?B?TjU3bWdWTlZLTmZ4UzR0eTdmV2FCdVpmbVZyRStPd2JROGZJSXcrbnVrdkFL?=
 =?utf-8?B?N1d5cmxINERPcUFXckY5c09MQllaWkpJR3h4b0c1UlJEbHhxdWovWGY2TGJT?=
 =?utf-8?B?UG1ZSUFzRnpmVEVjSVRHVEVITTZlR1lPOFFpaXVuQUlUeFN5c3hWMzRnQ29D?=
 =?utf-8?B?bENoYnB1UXZUUDh6SFVoUkU4N2x4U3VUSEhNVlNBMzhTZkZ3bXJRWC8vUG5S?=
 =?utf-8?B?eGQ2ZDEwT3RrU1FtYzlkN1d1ejBDblZGdkV3bU4xekZsQndmd0RxZHRxZ0lG?=
 =?utf-8?B?NENlK3QyemxXVjZvNzZxSG4rd25nOTJkY1VNb09sQ1pJOVZRWUpEL0gwQ2lM?=
 =?utf-8?B?cFFEZzdmT0syWTNJNWhUSDZIRndGUTg4cklZbnNKeThHYXp4azllRXlqazRs?=
 =?utf-8?B?dDlWcDBWb3lVd3c5eXphclE1UDlRV3VJV2hHTmlUZ0pqcVJEdjVSaHlDby9M?=
 =?utf-8?B?NHJoK2cwU2p6UFZDejVQU2Y1d25FMjVpZW1KcGZkYldWc21ncFkvaGdnWEJL?=
 =?utf-8?B?aU5sVkprcnh1c2Z5MGx4djZ0TzVjWlNsMjlOSE00RXJ5M1JJSkFhVnNZMGR1?=
 =?utf-8?B?bElBRG1xSCtHMXNSSkMyLzJUbUpmcVpON1ZrUzVTeGJpa2xVdFJxSHVJRDJm?=
 =?utf-8?B?TWw3bUtqUkt6ZlZoZWNTelBWV2pHakNETE04dEtSMGZIQlpFZGZzc0tYallO?=
 =?utf-8?B?bUl2SjU1amF2SllXWFlsb2RlSlZJMVRKUUlUWWowNlZkRlJ2ajFXV1JENHZD?=
 =?utf-8?B?VHNtdnV3Qm56ZFprU09tZTN2ZFlsSWV0VHB0bGk3TjFKVmlQUVh4cHUweGVV?=
 =?utf-8?B?UWlDb0MrTWU5aGhYRnZIaHpMcGR4bE9QS3FGR0g4U2VuTDFvNW5ZaG1BTnor?=
 =?utf-8?B?MWZzMmZqdi9HaXYydy9HUGd4T2hRbzVhTWdnVXV0RDRDaXBNSzFkdHVKcTlm?=
 =?utf-8?B?OFA5ek5VWkY5bUNLdERWSGE1VmM5UUhUNWRPc0V5VVFnMk5ZajV4dktjYzNq?=
 =?utf-8?B?MFVlMWt5R1dVTjN4Y00yZjN4ZmN5TklJUnNnQ2tOVlo3ekRhdlNZUG1mMlhR?=
 =?utf-8?B?d1NQNWQ0M1J1NE1YNWhrQTBCdDN3Y1BWTkhraTFRWWZGTFJCMnM5YmRKT3hW?=
 =?utf-8?B?bDdtdkVIWGc3ZUI2eVlYTGIyZGtCWThIejVlUUsxNzM2VG5CVmNTbFBhUC9Y?=
 =?utf-8?B?ZlNzK0JuRlZycGx3N010SkRoM2pRblhVOW8zVlF5c2xxa3pHa3JqUmMwYXg2?=
 =?utf-8?B?QTFsQ3NYa2xwZTlxNDkwWTV6SzJaMThFK1h5ZU0vVVQwM1JSYVZCVVVxOEMz?=
 =?utf-8?B?eWVQS3pvNk8zSXdUcXljUS9XbkJISnRDcGM2N0xJTEcyVEY0VXVxTFBTZkJE?=
 =?utf-8?B?dzNTWEZhWlloTlpSUHZVUG5tb1g1aEpTVGY4VmRSbjY5dENVeHZkVi9mOFlh?=
 =?utf-8?B?WUtmcU9jOGNIeFUxc0FEbzdtZzZzaTFMdUNHUWJBR042c1FDd2Z2QlVrQjZS?=
 =?utf-8?B?ZXNHbnpkQnFCMDdDQ080VENORktqL3kwaDJNRUtLL0MwT1RrUldJZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A2F585D1F7CCD847BC8F813196C014CD@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 00aa2e88-57ba-4621-0080-08d9a2a50e99
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2021 10:46:44.6334
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Gk/37Euye+CGCbRpkp67ALT/LE2nEpWtZC7fDhtXFFS8QVD50yQh7OanEA0yT8zHv6uBiYqs4UDtEVjmlOwhM0euvGb5uuuMqNO6GApJU1IwXWicQYdGHeaXv2VmAeLw
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6243
X-Proofpoint-ORIG-GUID: Zbgz63AQ7Ng0EhdOFLJl1X0oLsbRyh03
X-Proofpoint-GUID: Zbgz63AQ7Ng0EhdOFLJl1X0oLsbRyh03
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-08_03,2021-11-08_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0
 adultscore=0 priorityscore=1501 mlxlogscore=776 malwarescore=0
 clxscore=1011 spamscore=0 suspectscore=0 mlxscore=0 lowpriorityscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111080068

SGksIFRob21hcyENCg0KT24gMDguMTEuMjEgMTI6MjgsIFRob21hcyBaaW1tZXJtYW5uIHdyb3Rl
Og0KPiBNb3ZpbmcgdGhlIGRyaXZlci1zcGVjaWZpYyBtbWFwIGNvZGUgaW50byBhIEdFTSBvYmpl
Y3QgZnVuY3Rpb24gYWxsb3dzDQo+IGZvciB1c2luZyBEUk0gaGVscGVycyBmb3IgdmFyaW91cyBt
bWFwIGNhbGxiYWNrcy4NCj4NCj4gVGhlIHJlc3BlY3RpdmUgeGVuIGZ1bmN0aW9ucyBhcmUgYmVp
bmcgcmVtb3ZlZC4gVGhlIGZpbGVfb3BlcmF0aW9ucw0KPiBzdHJ1Y3R1cmUgZm9wcyBpcyBub3cg
YmVpbmcgY3JlYXRlZCBieSB0aGUgaGVscGVyIG1hY3JvDQo+IERFRklORV9EUk1fR0VNX0ZPUFMo
KS4NCj4NCj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1
c2UuZGU+DQpSZXZpZXdlZC1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9h
bmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPiAtLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0veGVuL3hl
bl9kcm1fZnJvbnQuYyAgICAgfCAgMTYgKy0tLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVu
X2RybV9mcm9udF9nZW0uYyB8IDEwOCArKysrKysrKystLS0tLS0tLS0tLS0tLS0NCj4gICBkcml2
ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmggfCAgIDcgLS0NCj4gICAzIGZpbGVz
IGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDg3IGRlbGV0aW9ucygtKQ0KPg0KPiBkaWZmIC0t
Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMgYi9kcml2ZXJzL2dwdS9k
cm0veGVuL3hlbl9kcm1fZnJvbnQuYw0KPiBpbmRleCA5ZjE0ZDk5Yzc2M2MuLjQzNDA2NGM4MjBl
OCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMNCj4g
KysrIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMNCj4gQEAgLTQ2OSwxOSAr
NDY5LDcgQEAgc3RhdGljIHZvaWQgeGVuX2RybV9kcnZfcmVsZWFzZShzdHJ1Y3QgZHJtX2Rldmlj
ZSAqZGV2KQ0KPiAgIAlrZnJlZShkcm1faW5mbyk7DQo+ICAgfQ0KPiAgIA0KPiAtc3RhdGljIGNv
bnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgeGVuX2RybV9kZXZfZm9wcyA9IHsNCj4gLQkub3du
ZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwNCj4gLQkub3BlbiAgICAgICAgICAgPSBkcm1fb3Bl
biwNCj4gLQkucmVsZWFzZSAgICAgICAgPSBkcm1fcmVsZWFzZSwNCj4gLQkudW5sb2NrZWRfaW9j
dGwgPSBkcm1faW9jdGwsDQo+IC0jaWZkZWYgQ09ORklHX0NPTVBBVA0KPiAtCS5jb21wYXRfaW9j
dGwgICA9IGRybV9jb21wYXRfaW9jdGwsDQo+IC0jZW5kaWYNCj4gLQkucG9sbCAgICAgICAgICAg
PSBkcm1fcG9sbCwNCj4gLQkucmVhZCAgICAgICAgICAgPSBkcm1fcmVhZCwNCj4gLQkubGxzZWVr
ICAgICAgICAgPSBub19sbHNlZWssDQo+IC0JLm1tYXAgICAgICAgICAgID0geGVuX2RybV9mcm9u
dF9nZW1fbW1hcCwNCj4gLX07DQo+ICtERUZJTkVfRFJNX0dFTV9GT1BTKHhlbl9kcm1fZGV2X2Zv
cHMpOw0KPiAgIA0KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2RyaXZlciB4ZW5fZHJtX2Ry
aXZlciA9IHsNCj4gICAJLmRyaXZlcl9mZWF0dXJlcyAgICAgICAgICAgPSBEUklWRVJfR0VNIHwg
RFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLA0KPiBAQCAtNDg5LDcgKzQ3Nyw3IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2RyaXZlciB4ZW5fZHJtX2RyaXZlciA9IHsNCj4gICAJLnBy
aW1lX2hhbmRsZV90b19mZCAgICAgICAgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwNCj4g
ICAJLnByaW1lX2ZkX3RvX2hhbmRsZSAgICAgICAgPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRs
ZSwNCj4gICAJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgPSB4ZW5fZHJtX2Zyb250X2dlbV9p
bXBvcnRfc2dfdGFibGUsDQo+IC0JLmdlbV9wcmltZV9tbWFwICAgICAgICAgICAgPSB4ZW5fZHJt
X2Zyb250X2dlbV9wcmltZV9tbWFwLA0KPiArCS5nZW1fcHJpbWVfbW1hcCAgICAgICAgICAgID0g
ZHJtX2dlbV9wcmltZV9tbWFwLA0KPiAgIAkuZHVtYl9jcmVhdGUgICAgICAgICAgICAgICA9IHhl
bl9kcm1fZHJ2X2R1bWJfY3JlYXRlLA0KPiAgIAkuZm9wcyAgICAgICAgICAgICAgICAgICAgICA9
ICZ4ZW5fZHJtX2Rldl9mb3BzLA0KPiAgIAkubmFtZSAgICAgICAgICAgICAgICAgICAgICA9ICJ4
ZW5kcm0tZHUiLA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zy
b250X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5jDQo+IGlu
ZGV4IGIyOTNjNjcyMzBlZi4uZGQzNThiYTJiZjhlIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dw
dS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hl
bi94ZW5fZHJtX2Zyb250X2dlbS5jDQo+IEBAIC01Nyw2ICs1Nyw0NyBAQCBzdGF0aWMgdm9pZCBn
ZW1fZnJlZV9wYWdlc19hcnJheShzdHJ1Y3QgeGVuX2dlbV9vYmplY3QgKnhlbl9vYmopDQo+ICAg
CXhlbl9vYmotPnBhZ2VzID0gTlVMTDsNCj4gICB9DQo+ICAgDQo+ICtzdGF0aWMgaW50IHhlbl9k
cm1fZnJvbnRfZ2VtX29iamVjdF9tbWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaiwN
Cj4gKwkJCQkJIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiArew0KPiArCXN0cnVjdCB4
ZW5fZ2VtX29iamVjdCAqeGVuX29iaiA9IHRvX3hlbl9nZW1fb2JqKGdlbV9vYmopOw0KPiArCWlu
dCByZXQ7DQo+ICsNCj4gKwl2bWEtPnZtX29wcyA9IGdlbV9vYmotPmZ1bmNzLT52bV9vcHM7DQo+
ICsNCj4gKwkvKg0KPiArCSAqIENsZWFyIHRoZSBWTV9QRk5NQVAgZmxhZyB0aGF0IHdhcyBzZXQg
YnkgZHJtX2dlbV9tbWFwKCksIGFuZCBzZXQgdGhlDQo+ICsJICogdm1fcGdvZmYgKHVzZWQgYXMg
YSBmYWtlIGJ1ZmZlciBvZmZzZXQgYnkgRFJNKSB0byAwIGFzIHdlIHdhbnQgdG8gbWFwDQo+ICsJ
ICogdGhlIHdob2xlIGJ1ZmZlci4NCj4gKwkgKi8NCj4gKwl2bWEtPnZtX2ZsYWdzICY9IH5WTV9Q
Rk5NQVA7DQo+ICsJdm1hLT52bV9mbGFncyB8PSBWTV9NSVhFRE1BUDsNCj4gKwl2bWEtPnZtX3Bn
b2ZmID0gMDsNCj4gKw0KPiArCS8qDQo+ICsJICogQWNjb3JkaW5nIHRvIFhlbiBvbiBBUk0gQUJJ
ICh4ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaCk6DQo+ICsJICogYWxsIG1lbW9yeSB3aGlj
aCBpcyBzaGFyZWQgd2l0aCBvdGhlciBlbnRpdGllcyBpbiB0aGUgc3lzdGVtDQo+ICsJICogKGlu
Y2x1ZGluZyB0aGUgaHlwZXJ2aXNvciBhbmQgb3RoZXIgZ3Vlc3RzKSBtdXN0IHJlc2lkZSBpbiBt
ZW1vcnkNCj4gKwkgKiB3aGljaCBpcyBtYXBwZWQgYXMgTm9ybWFsIElubmVyIFdyaXRlLUJhY2sg
T3V0ZXIgV3JpdGUtQmFjaw0KPiArCSAqIElubmVyLVNoYXJlYWJsZS4NCj4gKwkgKi8NCj4gKwl2
bWEtPnZtX3BhZ2VfcHJvdCA9IHZtX2dldF9wYWdlX3Byb3Qodm1hLT52bV9mbGFncyk7DQo+ICsN
Cj4gKwkvKg0KPiArCSAqIHZtX29wZXJhdGlvbnNfc3RydWN0LmZhdWx0IGhhbmRsZXIgd2lsbCBi
ZSBjYWxsZWQgaWYgQ1BVIGFjY2Vzcw0KPiArCSAqIHRvIFZNIGlzIGhlcmUuIEZvciBHUFVzIHRo
aXMgaXNuJ3QgdGhlIGNhc2UsIGJlY2F1c2UgQ1BVICBkb2Vzbid0DQo+ICsJICogdG91Y2ggdGhl
IG1lbW9yeS4gSW5zZXJ0IHBhZ2VzIG5vdywgc28gYm90aCBDUFUgYW5kIEdQVSBhcmUgaGFwcHku
DQo+ICsJICoNCj4gKwkgKiBGSVhNRTogYXMgd2UgaW5zZXJ0IGFsbCB0aGUgcGFnZXMgbm93IHRo
ZW4gbm8gLmZhdWx0IGhhbmRsZXIgbXVzdA0KPiArCSAqIGJlIGNhbGxlZCwgc28gZG9uJ3QgcHJv
dmlkZSBvbmUNCj4gKwkgKi8NCj4gKwlyZXQgPSB2bV9tYXBfcGFnZXModm1hLCB4ZW5fb2JqLT5w
YWdlcywgeGVuX29iai0+bnVtX3BhZ2VzKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4gKwkJRFJNX0VS
Uk9SKCJGYWlsZWQgdG8gbWFwIHBhZ2VzIGludG8gdm1hOiAlZFxuIiwgcmV0KTsNCj4gKw0KPiAr
CXJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJh
dGlvbnNfc3RydWN0IHhlbl9kcm1fZHJ2X3ZtX29wcyA9IHsNCj4gICAJLm9wZW4gICAgICAgICAg
ID0gZHJtX2dlbV92bV9vcGVuLA0KPiAgIAkuY2xvc2UgICAgICAgICAgPSBkcm1fZ2VtX3ZtX2Ns
b3NlLA0KPiBAQCAtNjcsNiArMTA4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZ2VtX29i
amVjdF9mdW5jcyB4ZW5fZHJtX2Zyb250X2dlbV9vYmplY3RfZnVuY3MgPSB7DQo+ICAgCS5nZXRf
c2dfdGFibGUgPSB4ZW5fZHJtX2Zyb250X2dlbV9nZXRfc2dfdGFibGUsDQo+ICAgCS52bWFwID0g
eGVuX2RybV9mcm9udF9nZW1fcHJpbWVfdm1hcCwNCj4gICAJLnZ1bm1hcCA9IHhlbl9kcm1fZnJv
bnRfZ2VtX3ByaW1lX3Z1bm1hcCwNCj4gKwkubW1hcCA9IHhlbl9kcm1fZnJvbnRfZ2VtX29iamVj
dF9tbWFwLA0KPiAgIAkudm1fb3BzID0gJnhlbl9kcm1fZHJ2X3ZtX29wcywNCj4gICB9Ow0KPiAg
IA0KPiBAQCAtMjM4LDU4ICsyODAsNiBAQCB4ZW5fZHJtX2Zyb250X2dlbV9pbXBvcnRfc2dfdGFi
bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gICAJcmV0dXJuICZ4ZW5fb2JqLT5iYXNlOw0K
PiAgIH0NCj4gICANCj4gLXN0YXRpYyBpbnQgZ2VtX21tYXBfb2JqKHN0cnVjdCB4ZW5fZ2VtX29i
amVjdCAqeGVuX29iaiwNCj4gLQkJCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiAtew0K
PiAtCWludCByZXQ7DQo+IC0NCj4gLQkvKg0KPiAtCSAqIGNsZWFyIHRoZSBWTV9QRk5NQVAgZmxh
ZyB0aGF0IHdhcyBzZXQgYnkgZHJtX2dlbV9tbWFwKCksIGFuZCBzZXQgdGhlDQo+IC0JICogdm1f
cGdvZmYgKHVzZWQgYXMgYSBmYWtlIGJ1ZmZlciBvZmZzZXQgYnkgRFJNKSB0byAwIGFzIHdlIHdh
bnQgdG8gbWFwDQo+IC0JICogdGhlIHdob2xlIGJ1ZmZlci4NCj4gLQkgKi8NCj4gLQl2bWEtPnZt
X2ZsYWdzICY9IH5WTV9QRk5NQVA7DQo+IC0Jdm1hLT52bV9mbGFncyB8PSBWTV9NSVhFRE1BUDsN
Cj4gLQl2bWEtPnZtX3Bnb2ZmID0gMDsNCj4gLQkvKg0KPiAtCSAqIEFjY29yZGluZyB0byBYZW4g
b24gQVJNIEFCSSAoeGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgpOg0KPiAtCSAqIGFsbCBt
ZW1vcnkgd2hpY2ggaXMgc2hhcmVkIHdpdGggb3RoZXIgZW50aXRpZXMgaW4gdGhlIHN5c3RlbQ0K
PiAtCSAqIChpbmNsdWRpbmcgdGhlIGh5cGVydmlzb3IgYW5kIG90aGVyIGd1ZXN0cykgbXVzdCBy
ZXNpZGUgaW4gbWVtb3J5DQo+IC0JICogd2hpY2ggaXMgbWFwcGVkIGFzIE5vcm1hbCBJbm5lciBX
cml0ZS1CYWNrIE91dGVyIFdyaXRlLUJhY2sNCj4gLQkgKiBJbm5lci1TaGFyZWFibGUuDQo+IC0J
ICovDQo+IC0Jdm1hLT52bV9wYWdlX3Byb3QgPSB2bV9nZXRfcGFnZV9wcm90KHZtYS0+dm1fZmxh
Z3MpOw0KPiAtDQo+IC0JLyoNCj4gLQkgKiB2bV9vcGVyYXRpb25zX3N0cnVjdC5mYXVsdCBoYW5k
bGVyIHdpbGwgYmUgY2FsbGVkIGlmIENQVSBhY2Nlc3MNCj4gLQkgKiB0byBWTSBpcyBoZXJlLiBG
b3IgR1BVcyB0aGlzIGlzbid0IHRoZSBjYXNlLCBiZWNhdXNlIENQVQ0KPiAtCSAqIGRvZXNuJ3Qg
dG91Y2ggdGhlIG1lbW9yeS4gSW5zZXJ0IHBhZ2VzIG5vdywgc28gYm90aCBDUFUgYW5kIEdQVSBh
cmUNCj4gLQkgKiBoYXBweS4NCj4gLQkgKiBGSVhNRTogYXMgd2UgaW5zZXJ0IGFsbCB0aGUgcGFn
ZXMgbm93IHRoZW4gbm8gLmZhdWx0IGhhbmRsZXIgbXVzdA0KPiAtCSAqIGJlIGNhbGxlZCwgc28g
ZG9uJ3QgcHJvdmlkZSBvbmUNCj4gLQkgKi8NCj4gLQlyZXQgPSB2bV9tYXBfcGFnZXModm1hLCB4
ZW5fb2JqLT5wYWdlcywgeGVuX29iai0+bnVtX3BhZ2VzKTsNCj4gLQlpZiAocmV0IDwgMCkNCj4g
LQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gbWFwIHBhZ2VzIGludG8gdm1hOiAlZFxuIiwgcmV0KTsN
Cj4gLQ0KPiAtCXJldHVybiByZXQ7DQo+IC19DQo+IC0NCj4gLWludCB4ZW5fZHJtX2Zyb250X2dl
bV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkNCj4g
LXsNCj4gLQlzdHJ1Y3QgeGVuX2dlbV9vYmplY3QgKnhlbl9vYmo7DQo+IC0Jc3RydWN0IGRybV9n
ZW1fb2JqZWN0ICpnZW1fb2JqOw0KPiAtCWludCByZXQ7DQo+IC0NCj4gLQlyZXQgPSBkcm1fZ2Vt
X21tYXAoZmlscCwgdm1hKTsNCj4gLQlpZiAocmV0IDwgMCkNCj4gLQkJcmV0dXJuIHJldDsNCj4g
LQ0KPiAtCWdlbV9vYmogPSB2bWEtPnZtX3ByaXZhdGVfZGF0YTsNCj4gLQl4ZW5fb2JqID0gdG9f
eGVuX2dlbV9vYmooZ2VtX29iaik7DQo+IC0JcmV0dXJuIGdlbV9tbWFwX29iaih4ZW5fb2JqLCB2
bWEpOw0KPiAtfQ0KPiAtDQo+ICAgaW50IHhlbl9kcm1fZnJvbnRfZ2VtX3ByaW1lX3ZtYXAoc3Ry
dWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqLCBzdHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCkNCj4g
ICB7DQo+ICAgCXN0cnVjdCB4ZW5fZ2VtX29iamVjdCAqeGVuX29iaiA9IHRvX3hlbl9nZW1fb2Jq
KGdlbV9vYmopOw0KPiBAQCAtMzEzLDE3ICszMDMsMyBAQCB2b2lkIHhlbl9kcm1fZnJvbnRfZ2Vt
X3ByaW1lX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmosDQo+ICAgew0KPiAg
IAl2dW5tYXAobWFwLT52YWRkcik7DQo+ICAgfQ0KPiAtDQo+IC1pbnQgeGVuX2RybV9mcm9udF9n
ZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmosDQo+IC0JCQkJIHN0
cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiAtew0KPiAtCXN0cnVjdCB4ZW5fZ2VtX29iamVj
dCAqeGVuX29iajsNCj4gLQlpbnQgcmV0Ow0KPiAtDQo+IC0JcmV0ID0gZHJtX2dlbV9tbWFwX29i
aihnZW1fb2JqLCBnZW1fb2JqLT5zaXplLCB2bWEpOw0KPiAtCWlmIChyZXQgPCAwKQ0KPiAtCQly
ZXR1cm4gcmV0Ow0KPiAtDQo+IC0JeGVuX29iaiA9IHRvX3hlbl9nZW1fb2JqKGdlbV9vYmopOw0K
PiAtCXJldHVybiBnZW1fbW1hcF9vYmooeGVuX29iaiwgdm1hKTsNCj4gLX0NCj4gZGlmZiAtLWdp
dCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaCBiL2RyaXZlcnMvZ3B1
L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaA0KPiBpbmRleCBhNGU2N2QwYTE0OWMuLmVhZWE0
NzBmNzAwMSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250
X2dlbS5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaA0K
PiBAQCAtMTUsOSArMTUsNyBAQCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50Ow0KPiAgIHN0cnVj
dCBkbWFfYnVmX21hcDsNCj4gICBzdHJ1Y3QgZHJtX2RldmljZTsNCj4gICBzdHJ1Y3QgZHJtX2dl
bV9vYmplY3Q7DQo+IC1zdHJ1Y3QgZmlsZTsNCj4gICBzdHJ1Y3Qgc2dfdGFibGU7DQo+IC1zdHJ1
Y3Qgdm1fYXJlYV9zdHJ1Y3Q7DQo+ICAgDQo+ICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICp4ZW5f
ZHJtX2Zyb250X2dlbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gICAJCQkJCQlz
aXplX3Qgc2l6ZSk7DQo+IEBAIC0zMywxNSArMzEsMTAgQEAgc3RydWN0IHBhZ2UgKip4ZW5fZHJt
X2Zyb250X2dlbV9nZXRfcGFnZXMoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOw0KPiAgIA0K
PiAgIHZvaWQgeGVuX2RybV9mcm9udF9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQoc3RydWN0IGRy
bV9nZW1fb2JqZWN0ICpnZW1fb2JqKTsNCj4gICANCj4gLWludCB4ZW5fZHJtX2Zyb250X2dlbV9t
bWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7DQo+IC0N
Cj4gICBpbnQgeGVuX2RybV9mcm9udF9nZW1fcHJpbWVfdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmpl
Y3QgKmdlbV9vYmosDQo+ICAgCQkJCSBzdHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCk7DQo+ICAgDQo+
ICAgdm9pZCB4ZW5fZHJtX2Zyb250X2dlbV9wcmltZV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2Jq
ZWN0ICpnZW1fb2JqLA0KPiAgIAkJCQkgICAgc3RydWN0IGRtYV9idWZfbWFwICptYXApOw0KPiAg
IA0KPiAtaW50IHhlbl9kcm1fZnJvbnRfZ2VtX3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2Jq
ZWN0ICpnZW1fb2JqLA0KPiAtCQkJCSBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7DQo+IC0N
Cj4gICAjZW5kaWYgLyogX19YRU5fRFJNX0ZST05UX0dFTV9IICovDQo=


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:03:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:03:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223244.385867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2QL-0003a7-3T; Mon, 08 Nov 2021 11:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223244.385867; Mon, 08 Nov 2021 11:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2QL-0003a0-0c; Mon, 08 Nov 2021 11:02:49 +0000
Received: by outflank-mailman (input) for mailman id 223244;
 Mon, 08 Nov 2021 11:02:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk2QJ-0003Zq-Jx; Mon, 08 Nov 2021 11:02:47 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk2QJ-0002Ns-2H; Mon, 08 Nov 2021 11:02:47 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk2QI-0001sk-PL; Mon, 08 Nov 2021 11:02:46 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mk2QI-0002j9-Os; Mon, 08 Nov 2021 11:02:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=3gWW1ZvbCJCRNg+H/J1bnUrQzZjiwF8IFnbVIdxTk7E=; b=e5sWxBfh+e63wu9QchpZmlXA7x
	N8wxFuZzi+p/Kj7Pxlv/JJRUy80tUoxWLM9R6N8GINOazcNpm8e7zFQ3XHg/OL124vfuSmSctMEeR
	xx4A605aM0A/aOlLInzb9L8PY5nb4pDTe3VehTbNAuP21KkQzuGH7mztU3p+ODt8D9lY=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166083-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166083: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=b5d4a35d90771ec86ce9cf28727f471ee589fb78
X-Osstest-Versions-That:
    ovmf=d79df34bebdd87aa01ccf78f541b4ae4c9f68f74
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Nov 2021 11:02:46 +0000

flight 166083 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166083/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 b5d4a35d90771ec86ce9cf28727f471ee589fb78
baseline version:
 ovmf                 d79df34bebdd87aa01ccf78f541b4ae4c9f68f74

Last test of basis   166081  2021-11-08 03:41:16 Z    0 days
Testing same since   166083  2021-11-08 09:12:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   d79df34beb..b5d4a35d90  b5d4a35d90771ec86ce9cf28727f471ee589fb78 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:03:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:03:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223246.385882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2QS-0003sT-Cu; Mon, 08 Nov 2021 11:02:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223246.385882; Mon, 08 Nov 2021 11:02:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2QS-0003sG-9C; Mon, 08 Nov 2021 11:02:56 +0000
Received: by outflank-mailman (input) for mailman id 223246;
 Mon, 08 Nov 2021 11:02:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d70C=P3=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mk2QQ-0003rV-Le
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:02:54 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 69ce8fd4-4083-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 12:02:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69ce8fd4-4083-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636369372;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=08IV7wZiVn1+Tq07mi1G3WwhUIIwYfmGOl7SFCKpMn4=;
  b=Yl6Lm1kBXwBOox6/kJH1pw0+mPR2b/XsnUY7EWdTO0xCNTv3SuieTwHe
   ufQd/sZv++D8msChRBlPP6UdQ+l8iDfoMXtTpVyDwmjXFNTAgnkwFl31Q
   HzGmZrNh5L+T6Xh9M7ElnFqQcP8cQL+eFo22orNqr/56MFM6OBORcTLVD
   8=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: /an9u6BEEOUFEdXz/7dxME64kaQkOTfeSQ6JPPXeGASHbJwlzUOs6yTb/wF0VCLYGMIdMooFln
 HT2xDhKTZiZISVCPVa8YhZ27sSRTv8Y0KvMEm7p1R8o6cVIiw60lTTp3oatBfKwZj9F+eEICHO
 zYdggowLN6IJ6mDKDHw38lSNIGx6iZgKLkjWgxC7M9W514IW9e5y5BD5On1k6JfRXM6TLWHKG/
 DI6m9ME8cPFkBVPqOB5FnzniwW7l9ZoWvFVcRnfHDsJtPs6+tUlnSsjqi2Z0wk5Zq/wD0AKCFb
 u2iUoWeCO2nLmv693a0Y0S5h
X-SBRS: 5.1
X-MesageID: 57682510
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:aUqO16wB55s5QVvGVS16t+f8wSrEfRIJ4+MujC+fZmUNrF6WrkVTz
 WMfWWiAPv3bNmr2c9t+OoW2/E5V68TSnNdjQQNvrCAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrZp2tcAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt/twy
 NsVnLGRcDgOOvH0ueBEajpnMT4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYIHgmdq25kWdRrYT
 886WXldPQuQWDpWJngKUKBije7yqVCqJlW0r3rK/PFqsgA/1jdZz7zFINfTPNuQSq19jkue4
 27L4Wn9KhUbL8CEjyqI9Gq2ge3Clj+9X5gdfJW6/PN3hFyYxkQIFQYbE1C8pJGEZlWWAowFb
 RZOo2x38PZ0pBfDosTBswOQi3+EsEY1dvtpLMo+tDmszvPtwDm7GT1RJtJeU+AOuMgzTD0s8
 1aGmdL1GDBi2IGopWKhGqS89m3rZ3VMRYMWTWpdFFZevYG/yG0mpkuXFo4LLUKjsjHi9dgcK
 RiupTN2ubgchNVjO06TrQGe2GLESnQko2cICuTrsoCNs1sRiG2NPdXABb3nARFodtfxc7V5l
 CJY8/VyFchXZX13qASDQf8WAJai7OufPTvXjDZHRsd6qW/0oif/IdAOvFmSwXuF1e5eKFfUj
 LL741sNtPe/wlPzNcebnL5d++x1lPO9RLwJp9jfb8ZUY4gZSeN01HoGWKJk5Ei0yBJEufhmY
 f+zKJ/wZV5HWfUP5GfnHI81jO50rh3SMEuOHPgXOTz8iuHADJNUIJ9YWGazghcRtvrc8VqEr
 4YGXyZIoj0GONDDjuDs2dd7BXgBLGQhBICwrMpSd+WZJRFhFn1nAPjUqY7NsaQ590iMvuuXr
 Hy7RGFCz1/z2S/OJQmQMygxY7LzR5dv63k8OHV0b1qv3nEiZ6ep7bseKMRrLeV2qrQ7wK4mV
 eQBduWBHu9LFmbN9QMCYMSvt4dlbhmq216DZnL3fDglcpd8bAXV4du4LBD3/SwDA3Pv58szq
 rGtzC3BRp8HS1gwBcracqv3nViwoWIciKR5WE6Reotff0Dl8Y5LLS3tj6Bof5FQeEubnjbDj
 lSYGxYVo+XJsrQZytiRiPDWtZqtHst/AlFeQzvR44GpOHSI5WGk24JBDrqFJGiPSGPu9ay+T
 uxJ1PWgYuYflVNHvocgQbZmyaUyu4nmq7NAl1k2GXzKaxKgC696I2nA1s5K7/UfyrhcsAqwe
 0SO5tgFZunZZJK7SAYcdFg/c+CO9fAIgT2Dv/06LXLz6DJz4LfaA15ZOAOBiXAFIbZ4WG//L
 TzNZCLCB9SDtycX
IronPort-HdrOrdr: A9a23:rMiZxKz7zRqbww3KK4oRKrPxtuskLtp133Aq2lEZdPULSKOlfp
 GV8MjziyWYtN9wYhAdcdDpAtjmfZr5z+8O3WB3B8beYOCGghrSEGgG1+XfKlLbak/DH4JmpM
 Jdmu1FeaHN5DtB/LfHCWuDYq8dKbC8mcjC74eurAYccegpUdAZ0+4QMHfkLqQcfnghOXNWLu
 v52iIRzADQBkj/I/7LTEUtbqzmnZnmhZjmaRkJC1oO7xSPtyqh7PrfHwKD1hkTfjtTyfN6mF
 K13zDR1+GGibWW2xXc32jc49B/n8bg8MJKAIiphtIOIjvhpw60bMBKWqGEvhoyvOazgWxa3e
 XkklMFBYBe+nnRdma6rV/E3BTh6i8n7zvYxVqRkRLY0IXEbQN/L/AEqZNScxPf5UZllsp7yr
 h302WQsIcSJQ/cnQzmjuK4Fi1Cpw6Rmz4PgOQTh3tQXc81c7lKt7ES+0tTDdMpAD/60oY6C+
 NjZfusqsq+SWnqLEwxg1MfguBFBh8Ib1K7qwk5y4OoOgFt7TBEJxBy/r1aop8CnKhNPaWsqd
 60dZiAr4s+PPP+W5gNc9vpcfHHeVAlfii8RV56AW6XXJ3vaEi94KIe3t0OlZWXkdozvd0PpK
 g=
X-IronPort-AV: E=Sophos;i="5.87,218,1631592000"; 
   d="scan'208";a="57682510"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cX8U4yfmWKCJ2dHfaTDGF748Ltb0j4bFSEnK5vbb6Lg7yBuNPkTuHFr9h+tFAPfzveR1DuFWf+ZwtAqPkdDTt1v/O82xLPw0UVQjnBMH3MMV7MVVGv0oQ4mElBF6kkcOR0miw94HRmzgYvvSPgBRKdv3ifGXyE0bXeH7bD4sj+mWquM0xropNgQfUU0VNP61kKAq9ZkGwyS8eW+urITbSQdH83RutaBSffUpLMLSIvnPLqWOT4h4gNXduTQpODkUjeYt266vgYiYwoDsMWmctZP874X5CWMqXrYJs/zCkdoeiL44jLxuiVTJSgiPmw30Mf/w1T6xRcQuydd8S/0I2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sX3OeACX5Fqjtedh1NCeUY4fRWwpMBz0D3U4t+oxVvU=;
 b=Q0Fgv/gxOfwKI5I1mfpR5WfHUH/a6Mx1T/crahAiZWrAButHAShg3PgvHteuYcvI4y2oDZD94+w9d04OEwB2xKXj5fflqZEAK6V5/ENOIe8yGjqk+T6R4z92QpNfUU9p9kQyYEaStSMUbr0Hp0pP1caIyXCGRqCm0Pj5dCsUFM+hXr4JDTS8xo23uBkDcV3AbOpaLJIuYkU5t3QmrYNS85S7H+yJU2I7Jpi7tbxjHeHDWT1/K1b20jk4IAPpq4iShQGOjTOFY4zRSl2zt1qPngBVYler6EPPx4ezoDveToqsHKchKYFnz/TCt9BqBshxOF9hK4JzhHxiQZBApnpN1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sX3OeACX5Fqjtedh1NCeUY4fRWwpMBz0D3U4t+oxVvU=;
 b=sgV/1ZWjYKSpUIZFfsz3zU/JDaQx93GvBeuFbsJbLmL9I3Kwwv2dT05nuYwG6z/a2mAidwE4EN67lrugXWU6TjSFv2pVPoZ76tkTB0zbawgJhP8al/N1+Jrq0onicaP9/QqrigzlplylmNJ8utM/m+P77WGL80EiNZjo9OWLVd8=
Date: Mon, 8 Nov 2021 12:02:40 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v2 2/6] x86/APIC: drop clustered_apic_check() hook
Message-ID: <YYkD0J9xSno3aO0i@Air-de-Roger>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <7e2c8dd5-e20d-5678-1fad-1b79fd8e06e4@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7e2c8dd5-e20d-5678-1fad-1b79fd8e06e4@suse.com>
X-ClientProxiedBy: MR2P264CA0086.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::26) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 740504c2-654f-43f5-e35d-08d9a2a74c20
X-MS-TrafficTypeDiagnostic: DM5PR03MB3067:
X-Microsoft-Antispam-PRVS: <DM5PR03MB3067A80528FEE93EF1B0B6518F919@DM5PR03MB3067.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 0oQAkPG44idZ90dHJs/h+pDogVXL+xeRqVpqq4wz9ksq8hRKbZsN8e5ifDe3av7Oj/8JG0CIgDAqJ9VFJDdeCcj4gRKAaL7diHwwXdMEr3H0dplQVWJdW5e/esG7NkpRpZG1YRXKU2iHtVEroAW2ATimjPlR8W4mncgQuoZEpKS+p0X6SNiLlLHgPNBf3L/6jkIkUYKnNzTjLZxMR71XUl/o1dMYEGidZTZVXekvjKOxXM8LyCWJYFZrValkPNhDnnRVST7KVzWsjiHr1oBjbQDVW5ynfKdOXWlle4eB+qwL3V59uOrGjp8V+tFXg7swjDz/ZyrFb4uCCsO7IbOC80xRb4WmvP3FkqoTQwaMVPmQ1w6Dapf4KAhDLa22vS485GSUc9orTETB5vKJhKXjX/BtEmtLy4h4m1Ll200WyLxPlGmGIjh6AQjgIVNFwFcF3AMeMcH8y/mbKx6E/L1Qspmr/BxnhmuRvbH31QVZDF6h0kK1K9TQsrhI62Zh28sCg03tTHtzt1JX61fzD4P8djUBNt5S7xdIpgAB51MjrNzgML8Kd5JMhWuhQSWE6NCk6j52QuT5+j17878/ZEzcPuSS8xxA5JRDWpyhgWw8OSeOy0NKvGG6ESwHI3iORjnn1SUWEycyOSJlmkiBxOELYw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(85182001)(26005)(6666004)(33716001)(86362001)(508600001)(38100700002)(82960400001)(6486002)(5660300002)(186003)(2906002)(9686003)(956004)(4326008)(316002)(8936002)(54906003)(6916009)(6496006)(8676002)(66946007)(66476007)(66556008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OGdGUzAyT210U0NUNEJBOUVIUE1GampjalZxZm5Dc3NjdTE1YkpVMXk4QTh6?=
 =?utf-8?B?bXREVklWRVhwL0ovYmFQYTZnWllseDhTeS9RMXk1cG1GUkVRMk42eFRmb21v?=
 =?utf-8?B?Sk9oNTNtUnNrNzNYNUQxLzV6SzdOZHYrakQvQ1VFN2tnckRVdEVCVktUNUln?=
 =?utf-8?B?YlRnYm53dC9OMWlLc21TbGRlZ3c3a0RyMVBmNUhubWt1NzJ2Um5GSGQyV0NM?=
 =?utf-8?B?aE9Sa1JFRDNqK3BIWUZuKzJCaEFYSm45cldaMTF4NXpESXNPUDZTcCtsOCtH?=
 =?utf-8?B?TFc2MVZwNXJlS2M0dkNRZmZLWkhXeURTRUVxdEdFbjFTOW1TSkwxcVFGVXVy?=
 =?utf-8?B?VlF1MXlUV0RkSUJCM1FGbFc1Z1lQM1dqdG1UN1FBTG9makE4VUtJUkhmVEIx?=
 =?utf-8?B?MzU1R2dvQisvZ1FEcks1aFRvUFA2SHBPUVJHclRJUGxXT1VSWURSMVViK3Ba?=
 =?utf-8?B?QzNINFcrOUxMb01icUZUZ2MwM1RsckxNbzIzdG4xY2s3TmJ0eExIM295TUFp?=
 =?utf-8?B?WHRQbGxNaVNKbUtNMFpYQ3JsbTU5czRRWmFEczBnd0NaVXR6QlpaQWhJOU9D?=
 =?utf-8?B?RkZjbXh2MWFXTklJdUxvc3ljQ1MxbTFjRzRtMDFlZ2oyV0lQZyszcWRQZ1Zj?=
 =?utf-8?B?T1FzZWFRWkpVeDY5QXNNNDhtWEhlYkFFdWJlSS9Kbm11eUxUeHpOR2FqbnVQ?=
 =?utf-8?B?SVljTEVoeDlxOG5iRFpJRW9Nb2VpdmZValZheVM4RGNTL2xnQWdraGI5U2Ra?=
 =?utf-8?B?SDBWSUxxUktYQWFEMkVRZGxQeUUxWVpvcWpsOUFOQWdpdGVXM21PNTZ2aUxh?=
 =?utf-8?B?cDNiUGJhZjRkcG1vRnlYbngya3ZhT3IvczRMUGVRalN6YXlaeGkyU0orNkQx?=
 =?utf-8?B?TjFJMkcyKzl1VGpCejd5dk5lMlFxSDAzSExYUitNVDh3ZXBGbjZSQVJrWkdS?=
 =?utf-8?B?SlFRNU5Gc2NYeStab25BcHFFaTYveldXR0J4aGdCNW9zS3o2ZzlHTFUrbExC?=
 =?utf-8?B?VXB1emV5Z3JqRVNhVXVGZ0kxaTFaTXdydUthSlJiWnRSdjZxNklhQnF0Zjdy?=
 =?utf-8?B?d2RVbHdpYlNKTzAycWpueVhZUDR0OWxJSXNsam1tQVNNMmk0bUJUbTYxV3lw?=
 =?utf-8?B?eHY3byt5WS9YSStrQ2RqWHA3K21lQmtrak1mK053eXFRT3F4b3NCNDJUYk81?=
 =?utf-8?B?VHZGVnFFUEpxQzl2Q3pnaWRyS1ZQMDJlTlU5cTk3NXZBcHlEdlk4UDhia0hH?=
 =?utf-8?B?UitKT2FlSkNTVnJSYkpxVXM2WjNGQXlSRjF3OTZSTzJDY3JOdnY3S21HRVpX?=
 =?utf-8?B?YmFXTERLK1NiVFpMdmNFM0lIV0lDNE5yRFN6eHYzWjRoOVdqRjEyYzZzaXNC?=
 =?utf-8?B?YUxqV2hVYzViSXo2ZmVZMVhza2dXSDJ0S1VsRVc3MDFWTGF1MUJjOWVwQVZj?=
 =?utf-8?B?RGRIQ1VaZjNDUGcwR0R2WDJiN3QwUCt4bUQ0dVdjZ2FwQXVsY0V0OE15VUhC?=
 =?utf-8?B?V2hVcEs1d0dnbmdmMDdxTHpwalBaUFVUWGFJVk1CMTlqbGZFemE0bVBkVjdN?=
 =?utf-8?B?SkZtRVAza294ZVIrRm9CZ2o0RHJvRG1qbjVmWFdscktzdFRLemVuaS82NldH?=
 =?utf-8?B?NFBrV3JyUmtUNW5Rb1hpMXQveG4rNEc1RnE5Q0hNOGNRd1hBN1h5N25HeHF5?=
 =?utf-8?B?bytIa1dKNnhMamRHRmg4Z0ZnelY5WlUyVXVidkE4R20xMXlOYzdPWFRaU0Mz?=
 =?utf-8?B?RXNSR2VmOU1memNOc3ZkSjdQZE55cHRpckdyRURiNmtvOVZ1Qk9LeUJrKzVF?=
 =?utf-8?B?ZUlnRGhJVis1VG1YSjJ4QkQrek15L21JcGI1U01yUUVMbFYzK0w3b2NsZ2dr?=
 =?utf-8?B?c3VFSEhtWUY4TTFCcCt6SEw0bzE4dmhRVGxQZlBKNVMxZDlNVU80TUh4WEpv?=
 =?utf-8?B?Q21pQW5xZUcvZFdRVzlIU0d3cXcvUFEzdEt1V0hZNnBjVStGazl2ZVJ3UDJp?=
 =?utf-8?B?T09TcUxURklJWVd5b2M0a1ZxdzI1M252OEtEODl0M3FkNXlpTFRyQVVza0hS?=
 =?utf-8?B?c0taYUpzeXJwc2Zzd2l6bVB4dmdRUHIxYTlzQ0pSMXAwUXJyUzE1ZkZMT1M0?=
 =?utf-8?B?QllkalFuVml1cVp5MUxXNGhiTkJDQ3NxakRiZzFZc0w0NDRiTkVsMEhDaE1m?=
 =?utf-8?Q?ZsqMFFxb6KINYMJ5cYTEV1Q=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 740504c2-654f-43f5-e35d-08d9a2a74c20
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 11:02:47.2029
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X7R4AaS9xbNYai4SCOzCyC8YdFmDwk5cAwU/UDPX5C5RsqNfWLIXBlNpJjMbGfESFN7heF39BF9/mjweYmT/DQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3067
X-OriginatorOrg: citrix.com

On Fri, Nov 05, 2021 at 01:34:12PM +0100, Jan Beulich wrote:
> The hook functions have been empty forever (x2APIC) or issuing merely a
> printk() for a long time (xAPIC). Since that printk() is (a) generally
> useful (i.e. also in the x2APIC case) and (b) would better only be
> issued once the final APIC driver to use was determined, move (and
> generalize) it into connect_bsp_APIC().
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> v2: New.
> 
> --- a/xen/arch/x86/acpi/boot.c
> +++ b/xen/arch/x86/acpi/boot.c
> @@ -674,9 +674,7 @@ static void __init acpi_process_madt(voi
>  			error = acpi_parse_madt_ioapic_entries();
>  			if (!error) {
>  				acpi_ioapic = true;
> -
>  				smp_found_config = true;
> -				clustered_apic_check();
>  			}
>  		}
>  		if (error == -EINVAL) {
> --- a/xen/arch/x86/apic.c
> +++ b/xen/arch/x86/apic.c
> @@ -243,6 +243,12 @@ void __init connect_bsp_APIC(void)
>          outb(0x70, 0x22);
>          outb(0x01, 0x23);
>      }
> +
> +    printk("Enabling APIC mode:  %s.  Using %d I/O APICs\n",

I don't think it makes sense to prefix APIC with 'x' or 'x2' here, as
we already print the APIC mode elsewhere?

> +           !INT_DEST_MODE ? "Physical"
> +                          : init_apic_ldr == init_apic_ldr_flat ? "Flat"
> +                                                                : "Clustered",
> +           nr_ioapics);
>      enable_apic_mode();

This also seem to be completely unneeded? I guess it would be cleaned
in a further patch.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:11:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:11:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223258.385893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2Y8-0005dn-7q; Mon, 08 Nov 2021 11:10:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223258.385893; Mon, 08 Nov 2021 11:10:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2Y8-0005dg-4t; Mon, 08 Nov 2021 11:10:52 +0000
Received: by outflank-mailman (input) for mailman id 223258;
 Mon, 08 Nov 2021 11:10:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk2Y6-0005dG-5T
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:10:50 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86d64526-4084-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 12:10:48 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2113.outbound.protection.outlook.com [104.47.17.113])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-30-5cFkEhHWOY6H5HSiY8Q6Yw-1; Mon, 08 Nov 2021 12:10:47 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6477.eurprd04.prod.outlook.com (2603:10a6:803:11e::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Mon, 8 Nov
 2021 11:10:44 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 11:10:44 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0502CA0011.eurprd05.prod.outlook.com (2603:10a6:203:91::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Mon, 8 Nov 2021 11:10:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86d64526-4084-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636369848;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jvAGoe391StPaIngK1M3IcM1yPYh80+GCkggRfZspwo=;
	b=BxFjMjf0cVcQETu02dU7RQ9QrOuxFCTh1/bZZBIfd4+D0RIxjzg3mM2ge1bgxAoTx+gE8p
	/xrS5aph0kPo93pCknQqtHkp+xKS6PdQrpmkrPJeFl1TjLJIJ7W+3KepELZJQUrggtfyI9
	c96kPiXvQeUa4obKmnCjEJPAxxtdBCQ=
X-MC-Unique: 5cFkEhHWOY6H5HSiY8Q6Yw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=n74x934Qf9YyCl2P1lfTc7JDpWuPjlbTgyzSE2DX55jwXTMkPwYm8c/5YKJoTzOJ8S1g7ugKAlIeH8LzcICJUiKM1l5ostKHnZ/N40iicTGwlBPhb4QrPRQwGq1T8EOMrWcJnqa0zGx2PaWoNs0uNMLXJwB7txHQyOOUNphPRvDUbvEuwByXsHFE5CdpLAZIeMnerFl5n57L5+aZ03XLP8nTxreaOFu4GylStg7w6BWRXG8F6rzrS6da0ENWkyGXom2V8XewaQ5jhstfDhoZPLSLvLPZVS7TyPyE+hA1Izuog9Se1wOoUuqSkbavc1eabjnjIjDqGu/9l8wg7iLg6w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jvAGoe391StPaIngK1M3IcM1yPYh80+GCkggRfZspwo=;
 b=fyiJEuu6BL+1ZLWXRGXxrXusW+ISOtgficsv2pZ2h+AmsYWqXITHDKQ0nmMf4AAG3A1aGM2MdW/+dfx+Y7dpA7Dxp+PkOVnBfOA70VdiiUB0+QNPCB95RXUms9zSFg+S+koLnxIP6Ygv4ariAEghvP1OfImd0J2FBlD43zXedu8WadT6umdLOMaO9HnCLMqfM/RWCbbKAt+E5FlMBikKPj01ANLupLwQzNyY5m/xgUuNhi7HaR1T6iQPOQmD83Pm3IaIdGiCpQ45kfpWlgW68g1bqXDXDDzNiLCuAm7cJPbcd9CcR2S7CD5lVRc+qzHbxFxi2FwdExfqfA7mwRTOug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <da36ee68-3162-0a32-f033-98af34f9c94e@suse.com>
Date: Mon, 8 Nov 2021 12:10:39 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 11/11] xen/arm: translate virtual PCI bus topology for
 guests
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-12-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-12-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0502CA0011.eurprd05.prod.outlook.com
 (2603:10a6:203:91::21) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b2d9218d-cd03-488d-2932-08d9a2a8684c
X-MS-TrafficTypeDiagnostic: VE1PR04MB6477:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB64774B9BDE0CCB7272E5713DB3919@VE1PR04MB6477.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	RgWkaJdKLczcIQbI64jtqUBgjHjMAzZLFl/aIRTUy8qys0OKa0St5fuyKV71i5XsAq3PmD6MW6c7qyg4VU75CoM2T/KBp1jGqXMfx9nYRiDLXq3bp9itALJ9NCpPLW98+ZjBdCXDZeqjHqP9e4GM5xpxUKezAyDvQdefvdpV7FaU+6ZoMggL9y6WyeS/0T+dQrIDItB19ZsDpXLEd4Kqb6a285L2EK35UDh2K1fqqXdio8szYIhq+pA+k5Zb7Y2ovAXxHmqALD0uh+mMVvOnWdlKf7ZEdoVYjOzl3Ct1mGi8xEYyI1foDid/te2RiOK56bB9Rimm4vONbG/jQ4wlM2Tbe5azOMIvu6cIo0Sr5I0XqWkCiHoAPM1qFRTFEFiZbFPbs25ByVJaB3uXx4ng7m9oiUJ2wvdvpQqn1BiXUJGblMMWCcryNrCqkco9KM6Z+FeODJjKuj+AC4EBe+49TPWy4I4kctF9+ds+swQ/5U0aMqFNKLNpbZCnUtdZ06SvhhvefwYvaQg3kEe3nQDN2E7du/IAUCovBD4uEKqUY7R48NZyyoqI9Mx1TbbTWL/P29dbLALz1Uj9RmTHwiF4/ENnq9CDjAoQ+EILMG8TzrIfEWOju8SAz3gnAmY6kKRU8tx2K0wevOUbHk4BPhSgoK6a2xeLLyZh45Fed9XiME9h1K6WIdK4sx/sab7vmPxWbd/GJa7oWF+CuoJhn5zG8jERaXRBMz2nPuiqefqe8XjSZxXyifvyt1KU7qU1TYQr
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66946007)(66476007)(66556008)(83380400001)(956004)(16576012)(316002)(4326008)(31686004)(186003)(26005)(86362001)(53546011)(6916009)(8936002)(8676002)(36756003)(7416002)(5660300002)(38100700002)(508600001)(2906002)(2616005)(6486002)(31696002)(6666004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MzhMdDc5TlJqOVQ1RGJVL3FvU3Bqb3F0RElyUWtESHpLNjUwZjBNRGtTVlBo?=
 =?utf-8?B?VHlHenR1N3FtOTdIYS9YMFVZMm5Ic0g1T085T2tESXFmZFVCdzdVRC9STkNU?=
 =?utf-8?B?UmdmSk9UbWhFR1B4cCs0bFRDMFF2eFRCUVVXQjAzd0xjU2QvYUlxSXh4aUxS?=
 =?utf-8?B?WmVkRml6MEl0b2RZVXNZNnJSTGo5blVUNnZrcENzYU5vMmdBVk40SmI5bVQv?=
 =?utf-8?B?L0ZXblBCcDIxamwzSkdRLzZocXhHclZ4dTV0UStjRjZ1VitwU0RFZVRzL25l?=
 =?utf-8?B?eWdUSm9EelhiWG1RMUtib0dJbGwxV2tGVnE1ck9lUTAxTXhWREJCZ3FtOXpx?=
 =?utf-8?B?c3lTV3REaENZVlZQbVdyM2wrUkE5SDU0UVFCcFFxeFpzVm9RMXJXZHlnejkz?=
 =?utf-8?B?OHAvRnMzRk9YMnpsV2ZXVmp2VXdSSldoMVJPRXJSM0V4UjViK3BYcHNHY056?=
 =?utf-8?B?QnhDSTNPN2JqOURNNHh0emJ4Z2RXblJXanpCRFdhL2xIbGhqRWZRZDcvU2My?=
 =?utf-8?B?R3pmamZ5Uis1TUpaY3FKaWFYRkJzQWM4M0o2Y2JrTXIzVTNGaUNoVlJNNEdU?=
 =?utf-8?B?Qy9ocUsxLzBFQmZXQ0ZQWTZiOHRkb2ZQaW9hS1IvUjE3Q0FqVG1zR2dQTDQ5?=
 =?utf-8?B?YmFycEd3cEdsajZ5cE9JZ0JYQ2J3Z0s1ejBzZkpsblgvSWR1M0xLTzlIRHpn?=
 =?utf-8?B?QjhEbkVpZkJCRmZOL2RaNHM0V0xJOEsyTDd0TlFteW4xKytnRjZZLzlKd2ha?=
 =?utf-8?B?NUpEK2VBSnpjQnhaWmdibFp3WUtOSVFRUFdJVGpEZ3Z6QjgyMXo5NXJHRGlt?=
 =?utf-8?B?TkVZNS96MkY3eE1tT09WMnJKSGJBZFg3OXA1ZlJHV2U0b1hWTVdXSktkZnRS?=
 =?utf-8?B?SHJ4M0EvaE11MDlpdWdKR1dDT1NtMnJFTm1XZDF0U0hmeGgyZHltU2c0Q25t?=
 =?utf-8?B?dUFGLzV6T3dwUDNCSUdNbmdUSmNyUU85Ykl1UjRzblNCRTIwNC9uUEpEOTJ6?=
 =?utf-8?B?L0NvWmU2MEUrd1ZFdENZNHk2ais1REJMSTVZSW9XcjVPaml6REJ4b2F4Q1M4?=
 =?utf-8?B?dGt6Q1lrTFJZakZVNFRRU0JycHpzSkFlTWRLeUJJNVM3S284NFZRei9ROThO?=
 =?utf-8?B?Yy9ia21DZ3A4WHc0SW1Fd2ZDVFBxV0VVRllhR3VwR3RZY1Z3NURtK0g0NUhI?=
 =?utf-8?B?SUIxVjN1SHpKSjFleHVMMVFJSm94bmJqek9kN3lCd3AwNkRmMUExSXl6RndY?=
 =?utf-8?B?TGxpcklUNVhsRE9CWUlnNFBtMDR3eDN4ZElINlNieWIwbkQrdHhuK013NDND?=
 =?utf-8?B?MmNudlE4eHJOQUFmejBmbTVCcmUydVY0Q0RHRHg2MEJYR3FHWnNmTVNXTHdq?=
 =?utf-8?B?eEc2NldYcVE5VVUrbVJFeWZXMXM3NEFBTnluTFlTdlZMZjZnZ0VGMk9vaHZv?=
 =?utf-8?B?bXdxajhPUEZta0RaVVc3emd5WEtibUpjbWgwRnpCbmpxdFBwMVplSGZEYk9k?=
 =?utf-8?B?SzVKL29NSkxTdWEybkUvT3ovVlR1bVhEcGZYVWt0VkRaV2tWNTBpUHhjd0Jn?=
 =?utf-8?B?Z1ZlRTMzWHlhOVViTDJJdVNUKzlGd0Z6aWtvR1pGVDNCYnpBakdaT1RTdzJz?=
 =?utf-8?B?RUlMaGtzaGtLai85R3VZblovdHc1a2ZOeHFzdzdvY2tFUkI2TXRVTVdCS2VZ?=
 =?utf-8?B?Z2J1c3RpUnd2YlNVSU9vUjlFL3IydHdIVnpjSWwwVlFhcVBOOWkyUDFoaGlR?=
 =?utf-8?B?VVkrWmhGL0krMmxlSEdTSGZtZkFkMDc4OHVBM2p2SkoxQ1VjWkNwNUNGWUM2?=
 =?utf-8?B?U1RncTY3MHozUTBtcUVyMlJjL2Z4NW9nTEFiTmNzWnpBRVpZWnd3Vit0Zlcr?=
 =?utf-8?B?bjVZSStCa2RON00yc2Z6WWRHekRabldYdHV4dml2c2x2MFFCNTNENE5vNWs4?=
 =?utf-8?B?by9NM1RrMjZicFZGcjBoSVlGOHBmbmlqMlVjWHNsbWFJVTRUYVlPeXBRaE4x?=
 =?utf-8?B?OHRUNTJ4MjRzSEx4VEozNG05QVYyQXZoT3BEWnR2NndRckpIcDBKTzYrb2VV?=
 =?utf-8?B?SEJyTDR4dHh2U0NoeWZUbk1oWmRHOXZGTDgxc0lua3o3UlI2OTRMaFNJVVF6?=
 =?utf-8?B?cWI3NEd2emlqUnpHbXVFL1hLc0sxNG13SmNVdnVoTFROaDR1WjNodnpQQ2Ft?=
 =?utf-8?Q?X0OqM/E3f3VmwLh4a4kOb4s=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b2d9218d-cd03-488d-2932-08d9a2a8684c
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 11:10:43.9402
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X3hP04mYLNZetNY2ghTq4vZ9zpZCy6DrQbR7NvY1o/t6lH4pYEsyA6mRKRujgRNvqONaFFNGxqtx+Y8eEAkJzA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6477

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> --- a/xen/arch/arm/vpci.c
> +++ b/xen/arch/arm/vpci.c
> @@ -41,6 +41,15 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
>      /* data is needed to prevent a pointer cast on 32bit */
>      unsigned long data;
>  
> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> +    /*
> +     * For the passed through devices we need to map their virtual SBDF
> +     * to the physical PCI device being passed through.
> +     */
> +    if ( !bridge && !vpci_translate_virtual_device(v->domain, &sbdf) )
> +            return 1;

Nit: Indentation.

> @@ -59,6 +68,15 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
>      struct pci_host_bridge *bridge = p;
>      pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
>  
> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> +    /*
> +     * For the passed through devices we need to map their virtual SBDF
> +     * to the physical PCI device being passed through.
> +     */
> +    if ( !bridge && !vpci_translate_virtual_device(v->domain, &sbdf) )
> +            return 1;

Again.

> @@ -172,10 +175,37 @@ REGISTER_VPCI_INIT(vpci_add_virtual_device, VPCI_PRIORITY_MIDDLE);
>  static void vpci_remove_virtual_device(struct domain *d,
>                                         const struct pci_dev *pdev)
>  {
> +    ASSERT(pcidevs_locked());
> +
>      clear_bit(pdev->vpci->guest_sbdf.dev, &d->vpci_dev_assigned_map);
>      pdev->vpci->guest_sbdf.sbdf = ~0;
>  }
>  
> +/*
> + * Find the physical device which is mapped to the virtual device
> + * and translate virtual SBDF to the physical one.
> + */
> +bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf)

const struct domain *d ?

> +{
> +    const struct pci_dev *pdev;
> +    bool found = false;
> +
> +    pcidevs_lock();
> +    for_each_pdev( d, pdev )
> +    {
> +        if ( pdev->vpci->guest_sbdf.sbdf == sbdf->sbdf )
> +        {
> +            /* Replace virtual SBDF with the physical one. */
> +            *sbdf = pdev->sbdf;
> +            found = true;
> +            break;
> +        }
> +    }
> +    pcidevs_unlock();

I think the description wants to at least mention that in principle
this is too coarse grained a lock, providing justification for why
it is deemed good enough nevertheless. (Personally, as expressed
before, I don't think the lock should be used here, but as long as
Roger agrees with you, you're fine.)

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:14:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:14:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223265.385903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2bS-0006L9-Pj; Mon, 08 Nov 2021 11:14:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223265.385903; Mon, 08 Nov 2021 11:14:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2bS-0006L2-Mt; Mon, 08 Nov 2021 11:14:18 +0000
Received: by outflank-mailman (input) for mailman id 223265;
 Mon, 08 Nov 2021 11:14:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z9tK=P3=kernel.org=arnd@srs-se1.protection.inumbo.net>)
 id 1mk2bS-0006Ks-Am
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:14:18 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 01b855c8-4085-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 12:14:16 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 396CF61359;
 Mon,  8 Nov 2021 11:14:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01b855c8-4085-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636370054;
	bh=v5kymqxyKmvAvPMLG99lLZzehfZMcI+K0hdQmyDJDP0=;
	h=From:To:Cc:Subject:Date:From;
	b=k61D9dl1CO6u+IxOeGYlKSKxTPYQAHbbqLThEby8SfhBMX0ageW4wKX/P496Gv/Jd
	 teRPGeONVdfzR25diD0r0h8E1sSkXICTuaYPb7F+hNm9fByD/+JKZIH1mcUlRaZbRH
	 PH/LNDgD+0JggPn4ItGI5hZC9L5NWDe8q2YtV2HAHE/4pUapd3MY4T+J3kPzgMCl20
	 0TblZ0t5MKBV4T2HP68As1A+1GzJxH5AlcvoTl0HIelh3PkWzWIGi1n5ma61p5mt5Y
	 X4pl1cQne52cLmAd/Ulya4DMIO2GFMvXj1VwjHBG6qLo2pPbciPsui3/SLTs8iQVAc
	 QkvnyI+vmbkNg==
From: Arnd Bergmann <arnd@kernel.org>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oscar Salvador <osalvador@suse.de>,
	Pankaj Gupta <pankaj.gupta@cloud.ionos.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@redhat.com>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] xen/balloon: fix unused-variable warning
Date: Mon,  8 Nov 2021 12:14:02 +0100
Message-Id: <20211108111408.3940366-1-arnd@kernel.org>
X-Mailer: git-send-email 2.29.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Arnd Bergmann <arnd@arndb.de>

In configurations with CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=n
and CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y, gcc warns about an
unused variable:

drivers/xen/balloon.c:83:12: error: 'xen_hotplug_unpopulated' defined but not used [-Werror=unused-variable]

Since this is always zero when CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
is disabled, turn it into a preprocessor constant in that case.

Fixes: 121f2faca2c0 ("xen/balloon: rename alloc/free_xenballooned_pages")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/xen/balloon.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index ad9ba1e97450..ba2ea11e0d3d 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -80,9 +80,8 @@
 static uint __read_mostly balloon_boot_timeout = 180;
 module_param(balloon_boot_timeout, uint, 0444);
 
-static int xen_hotplug_unpopulated;
-
 #ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
+static int xen_hotplug_unpopulated;
 
 static struct ctl_table balloon_table[] = {
 	{
@@ -115,6 +114,8 @@ static struct ctl_table xen_root[] = {
 	{ }
 };
 
+#else
+#define xen_hotplug_unpopulated 0
 #endif
 
 /*
-- 
2.29.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:17:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:17:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223272.385915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2e1-0006y4-7s; Mon, 08 Nov 2021 11:16:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223272.385915; Mon, 08 Nov 2021 11:16:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2e1-0006xx-4B; Mon, 08 Nov 2021 11:16:57 +0000
Received: by outflank-mailman (input) for mailman id 223272;
 Mon, 08 Nov 2021 11:16:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ncso=P3=epam.com=prvs=1946062fbd=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mk2e0-0006xr-E6
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:16:56 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 606a10a3-4085-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 12:16:55 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A8AmcSQ024722;
 Mon, 8 Nov 2021 11:16:52 GMT
Received: from eur03-am5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2052.outbound.protection.outlook.com [104.47.8.52])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c70xe8qus-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 08 Nov 2021 11:16:51 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB2829.eurprd03.prod.outlook.com (2603:10a6:800:da::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.16; Mon, 8 Nov
 2021 11:16:42 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 11:16:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 606a10a3-4085-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EwA2RrLDXgFomg6NlqCo2rBNOdDCSU8C0sQbNDE1usw8OhycJqepy1m+Zp713fHfu2TfKF8+Tjig+WNW4FMmU+h7LWkj3z7scmTbsUyi4O/atntqwltEdMHY0z6SiQX4Mrutcy/nYYt6sDeUnE63EdUZ3M7pORcgLF5puXvXl6ilqhL9OKFsToQR6DaymA7TdOe1TXa2nqdMZ65qPVLvd4OujNAUTs9pkfUHj/penZH1CJft6ls44hxbHcvRE334Wq+DbT19cCiuEHB7M7tasuDGJQfU2lKK6JuVT5baLI0rPqCUgxi0C2WP+Lv9aExHdVXeXBfoHqbswWiVNapdmw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UGHu4N9KIv9DB6ztv5hZ39sRT7mQMRv17GmzdYBMxf0=;
 b=AVbnpvYnLIKOoDPM5htSPA7k7pzfG5cYkB6gojga74zrdW3gEMopdz0/kioPXmx8s5V5PCpXuliuqHSr0VN+MxLtAO5XnBXf7FeoWIQgR8dGXnk0O9BzwHCEGsB+wOHbnHDIZPz+Z9HiieFCoVns2CfefCUC3lTIYtHq/O4NnASjQDoLb6mmFgbj96GXZSHL8oPzO9xMbne1nxppniGle9tAzPNI4v2TowP+wNvbz4opqzAtvaHB4siG73ErDZtKQHMcEEW8hnbKAm7hjRhbuWlmDZQxBCl2VEOJ2vYbcGrgPaskBsJotvC2NIwbYv6kRClyB5xoHCQDlhZA8qo5Jw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UGHu4N9KIv9DB6ztv5hZ39sRT7mQMRv17GmzdYBMxf0=;
 b=PRILOAFDrzoYgFxNE7EH09Bzs6Qe5BOcUPJG6kGK9alZEojT2Tx6J38IgcFJjIiGKXuKcBK0t8z7ZoUVuGFn1+c1Nbk7mvjpWeVelhdN5BM9ySYdWB15GVlG8GCKLcWLMhgLXOmdCLE5LhI7EieuYr05ZfzGu3sjfXydiP0Q2YY0Fu70v8NTLldLtfp8d41rpF11lafoFL28cNyVqIPFbN3J7wJfpH7c8gLl+K7b4wCFQGFdkljr252NnCStEJWqllzSwZg7HkREQur1nZXQ4QftqkRnqb1n4kgxqcGQcVm89T0hMUBOzH8/wbNv1DR7a6ktr+j25srEURlIeoY2Ng==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 11/11] xen/arm: translate virtual PCI bus topology for
 guests
Thread-Topic: [PATCH v4 11/11] xen/arm: translate virtual PCI bus topology for
 guests
Thread-Index: AQHX0hJP4tGfmNyDbEa0m8z5ITSeMav5fmGAgAABr4A=
Date: Mon, 8 Nov 2021 11:16:42 +0000
Message-ID: <c05b3e98-772c-a8c7-d8f8-841289683a02@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-12-andr2000@gmail.com>
 <da36ee68-3162-0a32-f033-98af34f9c94e@suse.com>
In-Reply-To: <da36ee68-3162-0a32-f033-98af34f9c94e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: dab4d283-e1f8-4b5a-a98c-08d9a2a93dfc
x-ms-traffictypediagnostic: VI1PR0302MB2829:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB282967F8E2FC9598EDF71768E7919@VI1PR0302MB2829.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 R8ol2XuYCmI0SkXiaGxGk991tMMSD4X21DlYZZv1FW5b+ZOcSvX4ja/MRaa83Moo1oMsTQRYF8CWUQQ2qD1CYM7fPhuhN+g0zL+6i57GxbfnOIQrFWTt1SV0zFHNcXaaNcm8uX07kNVQnpzuRjQDDdRuZoG5UE8TyOQqr2TDyHyrFvDKxsChiYouTEU3l21zNwUlphGddC5p44SBQRgfCbN8heHIJdasNC6VtkL0zMhEm17Tzt2XqTxCxcLaw4B7KC5WsuoCGr7s5WwptCgT0XFKaPaJalR9m90PTOjI15cXoKYSUpeEplwJp9V9Tqp3AL70Eq4PTkxv14vHP688+v7T3pLBuKvU5qTRNplhTEBKdpSyNOpNK8KSQPq47/+u1IP6g/u0xDFu+enUwEs3RqgSUZFmqpQEeS6XI6wWMQ6SB4WbeUYCSphI1nYbZjSNQMP7XkgR2DaT/kcOJc0RKY6k34+5bDfWlJpA0NkbjQYU0oTmsImdFj5Ab8juIWiUKFKqMg4n5LUlHZuZOcbgbx1OpCCjM4Znd+/EX/karyUW+LSknl2UiWOprrvSSvTNa/vizjtSnM1J4HWSZyNo1YoDmjyJZyzSTBnPeOTYHUZ82gqX8BA9DjuLV67TQmKfpK4tJ5w0qCJV9VgKa45p3Niqm2emIoHrcGtm0ytf0JvMsmqk0QCU3RwPro+VhAdP2o3cwkKLOmwJcbx78hJWATa0gZsh/Ve/yLvnrExrGAW1imTOpGe8JFjTu6RHGwwA
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6512007)(31696002)(316002)(38070700005)(7416002)(2616005)(31686004)(5660300002)(83380400001)(186003)(71200400001)(26005)(2906002)(36756003)(6506007)(53546011)(8676002)(76116006)(6916009)(122000001)(4326008)(8936002)(38100700002)(6486002)(508600001)(66476007)(66556008)(64756008)(66446008)(66946007)(91956017)(86362001)(54906003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?RndyTmhwVm9IdWhoL0tucGNKcEV1SVIyc3hjN3ZvaTNqc1FFRnVJQ1VPak52?=
 =?utf-8?B?MWMyWFVVNGpFdUx6L2ZVRW1DN1RTaUtKeHFwamJuVCtTUXhSMlloTXR2TGVG?=
 =?utf-8?B?R2t5cHRyeS9BZHdlQ1JoeGJaVkgrbTJEY3g2M014ZkdKbHlKbVRtL084WDR1?=
 =?utf-8?B?RmpUbDc2V3huOEdKVHpnNFlneGs4bEhNMUtzYXh0SjdZTlRLT3JtZXVTK0FC?=
 =?utf-8?B?b0dTbWNBRWRVRHpXQ0Nta1l4RFpNT2ErR2dKTTVqaUpsMU5hS1VmNWsrSFdm?=
 =?utf-8?B?VlJxdEtBUVBBeStwelhWSFhuclQzNFNPVmkwNWdDOHZpZEd4RmQydFlmU0R5?=
 =?utf-8?B?RXdJbVRQcmtkK3dZMjRRS3FXWjBPYW40eWdlVmNhaUNjdk9hWkF2RjFWR2ZB?=
 =?utf-8?B?cWNMRllEUlgzQit3VWhWaVVPN2ZDYW9sVEFubWxueFVWNVpRTFRFcXQ5K29M?=
 =?utf-8?B?Vnl0R0FZVDkvYTRLOXUxaFRUSXBTTktraVVnTW9JM0dUZ3BnRHpWUXFQbnh4?=
 =?utf-8?B?QnFZVHp1clR3U1VBTzdGd2M1cVNyd2cxTTFjUXRQUTRlRWt6TlhVT3RId2dU?=
 =?utf-8?B?RThZMEhqVUVIbWIxWkV0WlM5NEwxc202TDdKblhVbWlOVWgraHdYcUs5SnI1?=
 =?utf-8?B?V29jZHpuM0dBeGdJNGs3MFQyQzEyWitNekp3UkRmM21DaXJobDJFRVJlVy85?=
 =?utf-8?B?ZTYxTUNRRGIrNkRVK0duSUd3TEFTQTR2VEprck9vWTNoNjV2NWoyZEhkeXp6?=
 =?utf-8?B?QTcweWczZE9TQm1hVVMycVJYODUwRzdZSGtzcUhaa2Y2Mm9jbytSVVpYY21j?=
 =?utf-8?B?R2RKaExWNC9oUFlqYzBHbmc3dDNVNFhuS1pjUlRWc3E0ZVlMMXpBNVFuRDZI?=
 =?utf-8?B?NklQSnI3V1RrNHptRzk2T0oxSlJ6eloyenA0dEoralFCNVEwQzBsTEpWYnNF?=
 =?utf-8?B?dDRZcjlacFN5TmlOR3FPOFQzSTZ1ZWpyU1h2STM4U0JNcTJ6eGxnQkxNTFVr?=
 =?utf-8?B?dE94d1cxM0daMUdsUFMvdzBsaVJWVHNMdU51N1hIcU9MZzFrUlZTbWcwTkRJ?=
 =?utf-8?B?ZEtKUmFDNXI2anpWYVJJZFVpYUdjbHhVMnNiTk5SbmFZTnREc0xKdEI2ZDk0?=
 =?utf-8?B?VDgxUWxDUWNDVTQ0Tm5WdHQwY3g4M0pCZGZObnQrR3Awd1FJajliK3NJUmxz?=
 =?utf-8?B?ZjFiS2YxNS9pWDJtYzVWalVERkQzUXBMOEZHSEVGRGNXckR6RmZmSENyeVZS?=
 =?utf-8?B?MkswakVab28vRTVxWVVsSHBaZ043blVEY2pTTHlsT1dCb2dtOEdDbFRCT2NV?=
 =?utf-8?B?QWVyc1R0R2QxajVtaTBUQ3dieEQ3MXZUeUNWWWJyd0ROL1NhZ0FFRkVnMUMx?=
 =?utf-8?B?TytJalorMXc3cldjM3l3Z2dGS25VYlNOUURDS0hVN1J5aGdhQmtIaVV3NjN4?=
 =?utf-8?B?ZUV5SGxYcml3TWpZYWZsd1BhVDRNMFJwYTRtOFNab1owbHR5WkU0ck5VZmN2?=
 =?utf-8?B?RzlSS21tYngxS21aY1M2NUQ3K2hIQlJ3eG9ZTk55T3pCMWkxQlIrYW5ickJn?=
 =?utf-8?B?SW1OMXZ0TnhmU0pSZGxKR0VNV2l5Y3ZkaUVvbU04WnZVMWFuZFYrUlFrYWNo?=
 =?utf-8?B?eDFGK2J1RWlUUkdQTkRBSmFza0lWcmF4V2ovckdIRzMwRXM2cUxiR2tPNUZq?=
 =?utf-8?B?cVJGcUxzV0hWV0krT1lFenNuWWd2cUdodWhobktaWEJRWm5uUDMyY2Z0bjZC?=
 =?utf-8?B?SU1SdWVzUmNCZ29VMHlZa1hUWFYwV3FCeVRacEM3emNQSlIyWWN0MkJJZTEx?=
 =?utf-8?B?cFo5Y0lsTGRsc0l5Y3MyV3FkbzFmUWZPMDFnVUFZb2t3Umc5aXJtYXlhcnNI?=
 =?utf-8?B?VFhUMWlQSCtwZS8yTVUvRnVIaE1CWnZzTnE3QnBaeXdXTUtOTDZ3dERNK2h2?=
 =?utf-8?B?bUxNRXpFZWgvaldtVXJWeGx6R0VYK0NLcVowYW4rLzFrdlkrOUgzbFUvTFlF?=
 =?utf-8?B?WFBzOVpxSHZvY2lxZnREazRBWUs5NldFRkFCMWhQaUFnaWM0UWJhTlBObUtJ?=
 =?utf-8?B?Ujd1Q3FNQW9SU0pPUGZqcXZ1dTFFdWVKbmVTVW11bFRDSVRlMENkMldQOTNV?=
 =?utf-8?B?RVIzNW9kZTJ5T1ZhQm5Yb3JRdVJ6MGd4M1Nid2ZacS9aVDIxLzZjWi9sQUIw?=
 =?utf-8?B?c0RuUVZRQlVPRXAyRU9hWDlCMExhdG5CdE9UNDBTQXNGczltN0dWeXBZQnFN?=
 =?utf-8?B?eTBtckw0RXB2MHFJZUcwOW5BQ29XVkVOaHNaTVlqdkc0Rmk1d3FPWS9nT3NT?=
 =?utf-8?B?RENDd0czMXl4Rm9kcUtEYUVId2psZFRSOUd4R1YyenZHVmNqeXFrdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <438BE4B2E5F4824B9676DC16A87EB9C1@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dab4d283-e1f8-4b5a-a98c-08d9a2a93dfc
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2021 11:16:42.0915
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0EmARd/ZYHSD39v2shOf+p05M8VR83flevARFotUz6FSIkp3B3h0+ZEIP9SI9KomKYjMo5Ktl7KKT/KJBa7fgCjkppe0T25VOQjDZRFEYraXqZ5NhHJ3CVHY4dVmZ7Li
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2829
X-Proofpoint-GUID: uoHU8Lan1_xi8Zap5YmkMhclEEfLlVre
X-Proofpoint-ORIG-GUID: uoHU8Lan1_xi8Zap5YmkMhclEEfLlVre
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-08_03,2021-11-08_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015
 priorityscore=1501 mlxscore=0 suspectscore=0 lowpriorityscore=0
 bulkscore=0 adultscore=0 malwarescore=0 impostorscore=0 spamscore=0
 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2110150000 definitions=main-2111080072

DQoNCk9uIDA4LjExLjIxIDEzOjEwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiAtLS0gYS94ZW4vYXJj
aC9hcm0vdnBjaS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdnBjaS5jDQo+PiBAQCAtNDEsNiAr
NDEsMTUgQEAgc3RhdGljIGludCB2cGNpX21taW9fcmVhZChzdHJ1Y3QgdmNwdSAqdiwgbW1pb19p
bmZvX3QgKmluZm8sDQo+PiAgICAgICAvKiBkYXRhIGlzIG5lZWRlZCB0byBwcmV2ZW50IGEgcG9p
bnRlciBjYXN0IG9uIDMyYml0ICovDQo+PiAgICAgICB1bnNpZ25lZCBsb25nIGRhdGE7DQo+PiAg
IA0KPj4gKyNpZmRlZiBDT05GSUdfSEFTX1ZQQ0lfR1VFU1RfU1VQUE9SVA0KPj4gKyAgICAvKg0K
Pj4gKyAgICAgKiBGb3IgdGhlIHBhc3NlZCB0aHJvdWdoIGRldmljZXMgd2UgbmVlZCB0byBtYXAg
dGhlaXIgdmlydHVhbCBTQkRGDQo+PiArICAgICAqIHRvIHRoZSBwaHlzaWNhbCBQQ0kgZGV2aWNl
IGJlaW5nIHBhc3NlZCB0aHJvdWdoLg0KPj4gKyAgICAgKi8NCj4+ICsgICAgaWYgKCAhYnJpZGdl
ICYmICF2cGNpX3RyYW5zbGF0ZV92aXJ0dWFsX2RldmljZSh2LT5kb21haW4sICZzYmRmKSApDQo+
PiArICAgICAgICAgICAgcmV0dXJuIDE7DQo+IE5pdDogSW5kZW50YXRpb24uDQpPdWNoLCBzdXJl
DQo+DQo+PiBAQCAtNTksNiArNjgsMTUgQEAgc3RhdGljIGludCB2cGNpX21taW9fd3JpdGUoc3Ry
dWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLA0KPj4gICAgICAgc3RydWN0IHBjaV9ob3N0
X2JyaWRnZSAqYnJpZGdlID0gcDsNCj4+ICAgICAgIHBjaV9zYmRmX3Qgc2JkZiA9IHZwY2lfc2Jk
Zl9mcm9tX2dwYShicmlkZ2UsIGluZm8tPmdwYSk7DQo+PiAgIA0KPj4gKyNpZmRlZiBDT05GSUdf
SEFTX1ZQQ0lfR1VFU1RfU1VQUE9SVA0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBGb3IgdGhlIHBh
c3NlZCB0aHJvdWdoIGRldmljZXMgd2UgbmVlZCB0byBtYXAgdGhlaXIgdmlydHVhbCBTQkRGDQo+
PiArICAgICAqIHRvIHRoZSBwaHlzaWNhbCBQQ0kgZGV2aWNlIGJlaW5nIHBhc3NlZCB0aHJvdWdo
Lg0KPj4gKyAgICAgKi8NCj4+ICsgICAgaWYgKCAhYnJpZGdlICYmICF2cGNpX3RyYW5zbGF0ZV92
aXJ0dWFsX2RldmljZSh2LT5kb21haW4sICZzYmRmKSApDQo+PiArICAgICAgICAgICAgcmV0dXJu
IDE7DQo+IEFnYWluLg0KV2lsbCBmaXgNCj4NCj4+IEBAIC0xNzIsMTAgKzE3NSwzNyBAQCBSRUdJ
U1RFUl9WUENJX0lOSVQodnBjaV9hZGRfdmlydHVhbF9kZXZpY2UsIFZQQ0lfUFJJT1JJVFlfTUlE
RExFKTsNCj4+ICAgc3RhdGljIHZvaWQgdnBjaV9yZW1vdmVfdmlydHVhbF9kZXZpY2Uoc3RydWN0
IGRvbWFpbiAqZCwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiAgIHsNCj4+ICsgICAgQVNTRVJUKHBjaWRl
dnNfbG9ja2VkKCkpOw0KPj4gKw0KPj4gICAgICAgY2xlYXJfYml0KHBkZXYtPnZwY2ktPmd1ZXN0
X3NiZGYuZGV2LCAmZC0+dnBjaV9kZXZfYXNzaWduZWRfbWFwKTsNCj4+ICAgICAgIHBkZXYtPnZw
Y2ktPmd1ZXN0X3NiZGYuc2JkZiA9IH4wOw0KPj4gICB9DQo+PiAgIA0KPj4gKy8qDQo+PiArICog
RmluZCB0aGUgcGh5c2ljYWwgZGV2aWNlIHdoaWNoIGlzIG1hcHBlZCB0byB0aGUgdmlydHVhbCBk
ZXZpY2UNCj4+ICsgKiBhbmQgdHJhbnNsYXRlIHZpcnR1YWwgU0JERiB0byB0aGUgcGh5c2ljYWwg
b25lLg0KPj4gKyAqLw0KPj4gK2Jvb2wgdnBjaV90cmFuc2xhdGVfdmlydHVhbF9kZXZpY2Uoc3Ry
dWN0IGRvbWFpbiAqZCwgcGNpX3NiZGZfdCAqc2JkZikNCj4gY29uc3Qgc3RydWN0IGRvbWFpbiAq
ZCA/DQpXaWxsIGNoYW5nZQ0KPg0KPj4gK3sNCj4+ICsgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYg
KnBkZXY7DQo+PiArICAgIGJvb2wgZm91bmQgPSBmYWxzZTsNCj4+ICsNCj4+ICsgICAgcGNpZGV2
c19sb2NrKCk7DQo+PiArICAgIGZvcl9lYWNoX3BkZXYoIGQsIHBkZXYgKQ0KPj4gKyAgICB7DQo+
PiArICAgICAgICBpZiAoIHBkZXYtPnZwY2ktPmd1ZXN0X3NiZGYuc2JkZiA9PSBzYmRmLT5zYmRm
ICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICAvKiBSZXBsYWNlIHZpcnR1YWwgU0JE
RiB3aXRoIHRoZSBwaHlzaWNhbCBvbmUuICovDQo+PiArICAgICAgICAgICAgKnNiZGYgPSBwZGV2
LT5zYmRmOw0KPj4gKyAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsNCj4+ICsgICAgICAgICAgICBi
cmVhazsNCj4+ICsgICAgICAgIH0NCj4+ICsgICAgfQ0KPj4gKyAgICBwY2lkZXZzX3VubG9jaygp
Ow0KPiBJIHRoaW5rIHRoZSBkZXNjcmlwdGlvbiB3YW50cyB0byBhdCBsZWFzdCBtZW50aW9uIHRo
YXQgaW4gcHJpbmNpcGxlDQo+IHRoaXMgaXMgdG9vIGNvYXJzZSBncmFpbmVkIGEgbG9jaywgcHJv
dmlkaW5nIGp1c3RpZmljYXRpb24gZm9yIHdoeQ0KPiBpdCBpcyBkZWVtZWQgZ29vZCBlbm91Z2gg
bmV2ZXJ0aGVsZXNzLiAoUGVyc29uYWxseSwgYXMgZXhwcmVzc2VkDQo+IGJlZm9yZSwgSSBkb24n
dCB0aGluayB0aGUgbG9jayBzaG91bGQgYmUgdXNlZCBoZXJlLCBidXQgYXMgbG9uZyBhcw0KPiBS
b2dlciBhZ3JlZXMgd2l0aCB5b3UsIHlvdSdyZSBmaW5lLikNClllcywgbWFrZXMgc2Vuc2UNCj4N
Cj4gSmFuDQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:17:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:17:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223273.385925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2eB-0007IC-Fh; Mon, 08 Nov 2021 11:17:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223273.385925; Mon, 08 Nov 2021 11:17:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2eB-0007I5-Ci; Mon, 08 Nov 2021 11:17:07 +0000
Received: by outflank-mailman (input) for mailman id 223273;
 Mon, 08 Nov 2021 11:17:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk2eA-0006xr-Gy
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:17:06 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67a2c381-4085-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 12:17:05 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2052.outbound.protection.outlook.com [104.47.10.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-3-4SnSEA74OF2Vs3fZi1lktw-1;
 Mon, 08 Nov 2021 12:17:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB7375.eurprd04.prod.outlook.com (2603:10a6:800:1a8::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Mon, 8 Nov
 2021 11:17:03 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 11:17:03 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR07CA0026.eurprd07.prod.outlook.com (2603:10a6:20b:46c::31) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.8 via Frontend
 Transport; Mon, 8 Nov 2021 11:17:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67a2c381-4085-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636370225;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=1WCQWwcfI3UyhnfFMSmaQ0eK8fZzHwoMzPN5Us/jj3E=;
	b=LCk6LDyD8EbYUQ7r4uke1oKpPMP9j7SLTxOeM/v2iZgFQzVSTrXubwcSCt3k3+ebTKoxDE
	0kqWtVNT3EjQxy+Aya/Grh/CporDSJE5ks2oiryyeZ2Vr/uPb9IXzKktFpFZMJhGiSUctG
	uMNqzbIcpKT9JS/OfzGA1+pXfEZFzk0=
X-MC-Unique: 4SnSEA74OF2Vs3fZi1lktw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LYm+ojqrLCvtbp3Q2jOvSxvsuWfoenh0hvSwu1JI/zsiW2ypSvPFoDjZiOo6jUvg3SeVdBluXPGxtJU+1VO1Xdx5pzTDL7nnDwe378foHmTacN6iWkc2pfvUIO+JsTEr0QBqlZ01jfcVNy6aUBLc1Zk3WWGIKxNALcQr2iQePg+gDosGE74Tf+qDAbF2UWKWwDU17fV/+1/GU6hvR4aJ5YPdzRGS17xSv/4AsXymPl1VYVlPkOHIr4ZIgYB5QIQsqlKaNMfCo/2llJ6D9YXJor5fpCUzY97rzzmrJGlp4cVAdLsocycHyQe1kJp1lYJWY6JuQCQFn3INlxss1NmsFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UnTsyXtqBrvvudnTvY4H3coqQxEjti55g3NbLHoyqbE=;
 b=K/49bagCLFSce/MfuLgfAGnrBMEqt20MDvUzTDWlwe2MKPRpc/QIfUZ5xElHGVQ68E/RffDYkYu1q3GiUOuIE0tb0qee9EblsZNLLfhZvtCmdySNBga2ASXnJEGrKGk/tK+CfJ3bB8ynirOrcjugmHLbeN8lQsdGj0Udlg0B/nZqZ0IEMrv8doOoTAr9MsjUD84G3yhJ+IUZBQWbU6pfet25H/3elY5TEJqXOe3L7M3IYHTnBL2JXS+Ew4Cw2NMVTaRu9u1s5jgY6JjI1AHkCvDp8cTVCpLdyZnTdZobNsrScjrcunl0jDk8x81kYHRevXcOdIc4EiyGcovJNtwATg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <911b4e41-3c9e-cdd5-a5ba-2f86324a0727@suse.com>
Date: Mon, 8 Nov 2021 12:17:01 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 2/6] x86/APIC: drop clustered_apic_check() hook
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <7e2c8dd5-e20d-5678-1fad-1b79fd8e06e4@suse.com>
 <YYkD0J9xSno3aO0i@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYkD0J9xSno3aO0i@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR07CA0026.eurprd07.prod.outlook.com
 (2603:10a6:20b:46c::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1e952cb6-1fd5-4704-0edd-08d9a2a94a72
X-MS-TrafficTypeDiagnostic: VE1PR04MB7375:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB7375E1314884E14815415E4AB3919@VE1PR04MB7375.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	uIQekdyAXHF2VnDkksUYunGdiI8f2W8VQQhq0I33CVigxZPDoYjySH7T1jwrvdVzaEv/0vdPyuP4ovSiaHMlEcDOkEmxFRjOJdlX1Q/axsI48mJQKPf/iPRO/RZQmeBWExkE+wKNh1R8AAmWptLPjpBnDv2zXjC6d+TRXVrMYHcGCr0iO+/MdhskIngvZzblxyX/wP0uyqfp3IZH9H0R8n5ujq0tYzWhr/EMzidY274qWqIItIbue3/jyZF2Vo+eg0q0x4nD9keCfJVzhiUlE7PWmqgQVMrK2rv++PDmopm3tRRsvcOoHXmSOwwDvlu/U+OGyev50wYV7wIppQas859rLNyRdQj3HntxTm8/NXVXrzy76HIXJ2UkiHVt8WkxY7QwOhl8H5ihky9VP4KX09EKDDpXKKzglA+NsOQPETXuEfkz/pmrLu1eWe1ar4aBtw5NInW8Lgmb2fulO6HLf0/r70pvND+pdc4PhnWvXID73sIU0YZqcVxNQSXvSgwgcmfvnyZliYFVYzU0Jw8e9nX4aOr1YzyI2fPQKZ0CkEwr3EP42OPt8QD485nfFizru2Yi85WRHdumnreFqZ/GspQyN5YNfd454qMPoIxcB0y/lHK3ONsZOkqHPxOqmcn2of+/zS2kvwYsIii0aebDgIJ5naIJqZhbSuqmH+d3sZ9c1+dTHSltkLVCcLHe2SlEFFgIHI8nx+XY4KLjZqZ5kuEu2fyJRo/iwmGmuea1ePNONDiyGHTqTU0kUspk+1aj
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(6916009)(186003)(26005)(38100700002)(5660300002)(4326008)(53546011)(66556008)(66946007)(36756003)(66476007)(86362001)(508600001)(2616005)(31686004)(8676002)(956004)(54906003)(2906002)(16576012)(31696002)(316002)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?nR12X85KMCX3DiejYpcBagd94MVZp3JtE22sA6sdayRI40fDDQXQxEZq44zK?=
 =?us-ascii?Q?sjdhZAoz5W0ZbXz3DG0e1ktFSWXJ83j1UG3Ph6gvo2kLiV8oBLQHhcbI2nac?=
 =?us-ascii?Q?FniNh15zWAy9Vx/W6zAkjWts9FDzqEO/ZwZvt9go5ZHoHscnaljTfj7bslAz?=
 =?us-ascii?Q?qqFYgOCXfDqhI2VtQVxmnEL+AbLzfqdikVLn1ViHqD47SMLFuTtJFTxQyega?=
 =?us-ascii?Q?dMLy9zK3+bi7YRV7X92clBQTzTFLx8fgssWaYb3+GKIB7v5vYSm1Ov7msjut?=
 =?us-ascii?Q?bpucnt2Sn/T0yDNk4TFwKWqk3BDzAatkZ/4QcqNHAD6thWJjXlmiT41C/jUA?=
 =?us-ascii?Q?JLQ9MMM6LEcn0gtUigJi1Pks74jr7gvKbxI/F3wAQz+KIP61x+z2MNbfIetl?=
 =?us-ascii?Q?6CT8KMTg5O7OC/8sMMP7fBTPSieAKe0k4lVkcckKEFVtH9HUzlBkMXpMomfR?=
 =?us-ascii?Q?qiNevUd6xF+OxbzDJ2v1QeShIUN6jcpXaMSDKKVs6ELp32S1dtYpg2KHdFad?=
 =?us-ascii?Q?TV+DM8GmOfgZFhK5TRFvJvEN8HvDmkqIufMU4Uu+ib+VhoAc7HqSRsEAp1bk?=
 =?us-ascii?Q?GefsLak7SPv62AcifR7H4X+m4P7/kGm3aLdTJgfEV+vr35JMPJTweUvNhemf?=
 =?us-ascii?Q?bkFRWv79D2eeP7OQSa680x28+L8yxNBrYoBznI49IueoUQkaTkVd5dG/OScD?=
 =?us-ascii?Q?gtv+E5YETDrcLZfl98LDMpjZMZwyX/s6OfRD8SkGwAg02OlDXt8olstZL3xz?=
 =?us-ascii?Q?c+/uCKO7RPWoqGfGMq1jyQEuYuXSsWS+GrVQ9PVw3oEdW4bfNH/HZTP5pdZ+?=
 =?us-ascii?Q?E3abTadWvX8uqs/aceTPEMKP9Q5tTJvUwcyxcYfLdCQ67Em9smz4fasVNKVY?=
 =?us-ascii?Q?XDQgUd8N/cyc8RnQoEMrIk1x9LWuB9MEgh3ChWtLV3qnYh0d5O/fK7uU8ez9?=
 =?us-ascii?Q?aHt/jYUSYFjl+6gVaPw/KC80Zx3e7BMRhqcNOT6a58AhJyjoDfyfN3uvl2cS?=
 =?us-ascii?Q?PuDK/GGOi7NcTyvKumaeUagqD16cy5AkjSdW/JijWlPggly8w6iTblICa2j6?=
 =?us-ascii?Q?L3PrS4QrIFmh+6+B6dkXkUYqcANXZn+GzgIMj0u/ZN9E5Wg1LbljDiXtVbVX?=
 =?us-ascii?Q?gi8c9eAUB//1A+AocMavSoIZW9gnRadQFzlc9b1/vLmzmYOiBN37vWIj0svV?=
 =?us-ascii?Q?L6bXZjV34aLNbLcqYByW+SzCCz0Va6B1w+62V/o3wsMBW1LTOSKv05UX+w8f?=
 =?us-ascii?Q?wr0Np4LJJgiWM7/7nkYMjWPB2VEYHWXCCTOpelFaPKRG0SRzqeRe876UV8sE?=
 =?us-ascii?Q?QO7GPIZhWTRqmv/q+BwEDn7PffVGwaBg/o5Ln4oUYUyXQ+EN0SlR4p5mw5jX?=
 =?us-ascii?Q?b4rstBggsYkibNKO3gOJUF1MAwK/mkRCRay9Wo+SQnzA9OKQ20Rs4n3RLQYT?=
 =?us-ascii?Q?HJPDzjvCmovMusmOu0CVvh8Apwu7ZJyAPpe65pqBYs6FoDzS3AdowVhWk2ga?=
 =?us-ascii?Q?CzZyMkAybI+hoA/XAjOa7nqfGjIyWxw+MQbPOvYjROvbpiDMhgQAgkmZ5Rsc?=
 =?us-ascii?Q?I6OM1v4vyaMg7Ys/Nh+AguJK/Lpvfex+ZLM9k5TyFywbhAH5DthfsG/DyA5s?=
 =?us-ascii?Q?AacL0MokO4VhreuXuG1TnQ4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e952cb6-1fd5-4704-0edd-08d9a2a94a72
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 11:17:03.2896
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tbQ/Z5FyZJBDNtum0NKzqpPWPKjSdKZ3O6j/WDzDDdKS8KA4t3pkjmU5LaH7YPO95Cf2s25T7si6zAICoeVTBg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7375

On 08.11.2021 12:02, Roger Pau Monn=C3=A9 wrote:
> On Fri, Nov 05, 2021 at 01:34:12PM +0100, Jan Beulich wrote:
>> The hook functions have been empty forever (x2APIC) or issuing merely a
>> printk() for a long time (xAPIC). Since that printk() is (a) generally
>> useful (i.e. also in the x2APIC case) and (b) would better only be
>> issued once the final APIC driver to use was determined, move (and
>> generalize) it into connect_bsp_APIC().
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Thanks.

>> --- a/xen/arch/x86/apic.c
>> +++ b/xen/arch/x86/apic.c
>> @@ -243,6 +243,12 @@ void __init connect_bsp_APIC(void)
>>          outb(0x70, 0x22);
>>          outb(0x01, 0x23);
>>      }
>> +
>> +    printk("Enabling APIC mode:  %s.  Using %d I/O APICs\n",
>=20
> I don't think it makes sense to prefix APIC with 'x' or 'x2' here, as
> we already print the APIC mode elsewhere?

I was indeed pondering that, and decided that the extra yet redundant
information wouldn't be worth the extra logic here (the more that
there's no good way to optionally print a single character, as sadly
%c does not print nothing when passed '\0', and I find single-char
string literals kind of ugly / wasteful). But I have no strong
opinion here, so if you think it would be better to add the extra
bits, I'll happily do so.

>> +           !INT_DEST_MODE ? "Physical"
>> +                          : init_apic_ldr =3D=3D init_apic_ldr_flat ? "=
Flat"
>> +                                                                : "Clus=
tered",
>> +           nr_ioapics);
>>      enable_apic_mode();
>=20
> This also seem to be completely unneeded? I guess it would be cleaned
> in a further patch.

I have to admit I didn't even check. There's so much more cleanup to
do here ...

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:23:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223287.385937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2kK-0000fU-Br; Mon, 08 Nov 2021 11:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223287.385937; Mon, 08 Nov 2021 11:23:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2kK-0000fN-6z; Mon, 08 Nov 2021 11:23:28 +0000
Received: by outflank-mailman (input) for mailman id 223287;
 Mon, 08 Nov 2021 11:23:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6B1i=P3=gmx.net=j.neuschaefer@srs-se1.protection.inumbo.net>)
 id 1mk2kJ-0000fH-29
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:23:27 +0000
Received: from mout.gmx.net (mout.gmx.net [212.227.17.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4a1992d4-4086-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 12:23:25 +0100 (CET)
Received: from longitude ([5.146.194.160]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MBDj4-1msKD70Bvq-00CkHo; Mon, 08
 Nov 2021 12:22:43 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a1992d4-4086-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;
	s=badeba3b8450; t=1636370563;
	bh=K79wqPStqcTfK5nLIvxLt2yDFN8raIwyDHqiPgY+PHc=;
	h=X-UI-Sender-Class:Date:From:To:Cc:Subject:References:In-Reply-To;
	b=Iil8zKbQDwR3Nlg+ymOUpymQS9X1Mc+jbLXtA+yVF4SDdcwftUD6iVyibZ6wTz7fb
	 Qc0Hcteal9dThlbJ/iNZLRdm5NTkZeKDClDySSPytppBB80v28nV6u18LsDpLiHQir
	 Ny1SVC50YGwrAIYi9pHquhjsrGZ1aixItLj5nI/g=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Date: Mon, 8 Nov 2021 12:22:32 +0100
From: Jonathan =?utf-8?Q?Neusch=C3=A4fer?= <j.neuschaefer@gmx.net>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Guenter Roeck <linux@roeck-us.net>,
	Jonathan =?utf-8?Q?Neusch=C3=A4fer?= <j.neuschaefer@gmx.net>,
	Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Lee Jones <lee.jones@linaro.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Mark Brown <broonie@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Russell King <linux@armlinux.org.uk>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Chen-Yu Tsai <wens@csie.org>, Tony Lindgren <tony@atomide.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Vladimir Zapolskiy <vz@mleia.com>,
	Avi Fishman <avifishman70@gmail.com>,
	Tomer Maimon <tmaimon77@gmail.com>,
	Tali Perry <tali.perry1@gmail.com>,
	Patrick Venture <venture@google.com>, Nancy Yuen <yuenn@google.com>,
	Benjamin Fair <benjaminfair@google.com>,
	Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
	openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
Message-ID: <YYkIeBSCFka9yrqC@latitude>
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com>
 <YYbqlmOM95q7Hbjo@latitude>
 <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
 <9a22c22d-94b1-f519-27a2-ae0b8bbf6e99@roeck-us.net>
 <658cf796-e3b1-f816-1e15-9e9e08b8ade0@gmail.com>
 <5a17fee3-4214-c2b9-abc1-ab9d6071591b@roeck-us.net>
 <c0b52994-51f5-806b-b07e-3e70d8217ffc@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="SrzUzzmYivmDpJiW"
Content-Disposition: inline
In-Reply-To: <c0b52994-51f5-806b-b07e-3e70d8217ffc@gmail.com>
X-Provags-ID: V03:K1:7qbQ+qoRzv7lpS+bZXlBkiHc8d3ndyzVjxZiUEx4fWU8LOwR4tV
 sJ6wX31cULMNt4suZs8Fc9nNWwTvT28rf28Ux8jItr0YArRnxNHgajX8j3pR27WJ8X4+rN1
 P6mwBUOnAtBBxh5xjfJsjiXu6SboLYbT6DrsS8jQkTim87V5oSocZwSYV15yBIZybWDcxi2
 yhhXSfTVo1fjkR9G3NiNg==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:yjkPkKMrbPg=:X1ZiIBM9wmN7jnP9s16Cfb
 sBqYerCPdYu35MyKm/gIqDt8Gw/FOK/47i1VNVZ2GZyzu2N+w6bq5umB4vcv2LdlVvVXasJFU
 hHItgn4p2+gcrIXW8dm47/l7t1HQaw7UgtUqyeXqDu69ghAqCYZXx0eX60EUrsUOpoEgYDyVn
 oP9a1XYVWqB1j9J0R0WURMEfCLIEiPQoq7Rbx4EPDsJbUZtdggotJ5Zu652F4YThXYIsp6IMf
 gllsRU1HwQ6JjxuK8cXPPYaD+LLKehorJRlrq+y8qXUM6ylWXrOoGKNZLGsZkAONax4WYMqIW
 d3FGkGXLV4f+esApgI7PsCMvrwTK22lrWu5ViPmU4x2nHZP+ZTPAZuJtgSimwyu20amazZwYK
 Z4vpwY5CSzJZCDfMI5DZ0Ptk/Ztz1Q6g/A3jF9otZwKjtdDGI+4EVCvameWf3xn488EZ8v6YU
 At13Fas5vppLSoa/xpMWgEaXqdhRWW3BWFKDkwwIzAy8iepAVZKdxWuiNZ5V838e4pssIjwOP
 b9I/WUoeoSIjaVUx2uwI4jdditk+sE4UWUM/0QolX7ispKs/G3XyXxRQRgZ6B7X3V60FM1FjB
 RAlEp0a5931lWVr5xqZfoR1dAUpRgm1O9Vjh40HLSfiunbwWOc0bQ0ONdbOPoSLykjVMQhxlP
 xtpeZidtvOHYL9oWOJQZIFjHLJGmJNbSfzBBXrzNQMUN8I0KHFPgGMy1RqdguPf3PUJKELugu
 Nk3jRxSbdt395Sseo31kU92jjNpYb9PTuVNaM1aWS4Q4yTc9cIXxk1+LRFP9bIgg/V6iwob0M
 2xQWxNH/EiCfUWEHwJvuTGBqhgThj/glAo/CZxZAe/L3n3D6849ukZO9fYf8H8Nk2y5a5UHWh
 pvbdLd9gXcXQ6r/K+x80Dm4oeeZ7NvEbfgA19DwbuESar56ohW+JqsXIhz3AyR62ShQOe3+FE
 5fRkZdNNItdvlDY7CkW9kJ0ItIF7cQw1aNvt9OvV6ho/I2LuKv3w1ibUywvt8uxjpQ795s++f
 LtodIi5u3n67HADZypUokVR2nausSwp0lMroUVKyNyJ3Q2D2RhV5rxgHndlU1/Jjw3Lcz380m
 nnoGWxFp59yGiw=


--SrzUzzmYivmDpJiW
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sun, Nov 07, 2021 at 08:42:33PM +0300, Dmitry Osipenko wrote:
[...]
> EC drivers tend to use higher priority in general. Jonathan, could you
> please confirm that NTXEC driver is a more preferable restart method
> than the watchdog?

Yes. The original firmware uses the NTXEC to restart, and it works well,
so I do think it's preferable.


Best regards,
Jonathan

--SrzUzzmYivmDpJiW
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEvHAHGBBjQPVy+qvDCDBEmo7zX9sFAmGJCE4ACgkQCDBEmo7z
X9vVoBAAyZoJJUbTWWKI6c/HY4wq3sRDukultq5nSNIOH4RAFsTFD2FbiBB7LDaG
v/9oOqoTUDuR3AkaHFnk5+h5gLRqeePoH1KU8fa7bc7NPatTUVt54SqhQSRfUfrF
+0eRt3WHt2lZpZjaY8kj/vz5AkubzCmwVqSKoLUdCW/qi+UphZHp75E2XXypK/o3
dt1dmPA1D0pXB1WdwLSZjtCn5lIOucdssKLl1UyXQzFmuKBPkjOcuuQqwm5Ietoz
T4EEl/js2iIbui0e5ml9611nZoTLhVYMkxRcLi7gRHWTn9NmVzzJdubJH6Ajwp8E
M9TOi2NtYbSk+pGvTwawfKaw+aROUuKqGOGc+9TFeu+V5pCMAIZ1wybNExZph5jp
/o58QQUdszFwjMq7A4zdXSufKug8CpsYILhtcSx57wtGJ/OW7ZDtmX679x4jAvgX
XeMWuW8x08UFauDBHsvw9aIIgKg7ZlJ+bQ5WdgtsiuXrZEEbTNbW1kjbKAvHS9dP
o3MB/Lbi/rN/448ImnHtShmihh7ug6s+oUDbW6wFzCFvcfLbOs/Sfz35f5wNTHQW
ReNPRgH+pTvzZvulDdrSA6GAnH8mfFE7IkC/3BP6BJE28ug1GvJrRtvylwp29ZW/
Qu0z+FCaFjPu5yOr8rspC9YUdGolKnMg1msMwjgbe58vH9+EDDQ=
=fkgc
-----END PGP SIGNATURE-----

--SrzUzzmYivmDpJiW--


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:32:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:32:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223294.385948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2tJ-0002AK-5e; Mon, 08 Nov 2021 11:32:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223294.385948; Mon, 08 Nov 2021 11:32:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2tJ-0002AD-2k; Mon, 08 Nov 2021 11:32:45 +0000
Received: by outflank-mailman (input) for mailman id 223294;
 Mon, 08 Nov 2021 11:32:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B9hq=P3=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1mk2tG-0002A7-O7
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:32:43 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 954fce77-4087-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 12:32:41 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id A1B621FD6E;
 Mon,  8 Nov 2021 11:32:40 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 535D513B4A;
 Mon,  8 Nov 2021 11:32:40 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id OtolE9gKiWFBRAAAMHmgww
 (envelope-from <tzimmermann@suse.de>); Mon, 08 Nov 2021 11:32:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 954fce77-4087-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1636371160; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=EwkDiCE7DB4EbNs+X7Cd3CC6FOJohQ/+bNMydyjxi9I=;
	b=mICdz9/wogYcMlsAzY03J55yRdTiz76IBGAHOO4YkNZAgmngfbJK6dGeXeV2ElIh2XWnAq
	cTw0Aqch3ZcWQBlRPQl82OjDmGFZTWyLXgr16N2oZcC8fZfJHG4PpJXFvW+w6tm+7bhATh
	znlEqbhZalB9DYUgxD7zl1u+mHuP5CI=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1636371160;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=EwkDiCE7DB4EbNs+X7Cd3CC6FOJohQ/+bNMydyjxi9I=;
	b=ftaD+clFHlmzE49X4L0ABG8HIVKE2Wpd+M6av6eoeihvDhxe+5yqVYWMKLB7dVY4R1ke1W
	a+mae/pwzuKHkvDg==
Message-ID: <cd51b87a-5a07-fbf8-0e8e-d30f8a592d98@suse.de>
Date: Mon, 8 Nov 2021 12:32:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH 2/3] drm/xen: Implement mmap as GEM object function
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "daniel@ffwll.ch" <daniel@ffwll.ch>, "airlied@linux.ie" <airlied@linux.ie>,
 "maarten.lankhorst@linux.intel.com" <maarten.lankhorst@linux.intel.com>,
 "mripard@kernel.org" <mripard@kernel.org>,
 "inki.dae@samsung.com" <inki.dae@samsung.com>,
 "jy0922.shim@samsung.com" <jy0922.shim@samsung.com>,
 "sw0312.kim@samsung.com" <sw0312.kim@samsung.com>,
 "kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
 "krzysztof.kozlowski@canonical.com" <krzysztof.kozlowski@canonical.com>
Cc: "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>,
 "linux-arm-kernel@lists.infradead.org"
 <linux-arm-kernel@lists.infradead.org>,
 "linux-samsung-soc@vger.kernel.org" <linux-samsung-soc@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211108102846.309-1-tzimmermann@suse.de>
 <20211108102846.309-3-tzimmermann@suse.de>
 <e727222a-3611-f1c0-a176-2214eb9553be@epam.com>
From: Thomas Zimmermann <tzimmermann@suse.de>
In-Reply-To: <e727222a-3611-f1c0-a176-2214eb9553be@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------0AOeEutgkiNVV1IRkB2IcmOG"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------0AOeEutgkiNVV1IRkB2IcmOG
Content-Type: multipart/mixed; boundary="------------pNvdFciOihALwXILgN9Us0jY";
 protected-headers="v1"
From: Thomas Zimmermann <tzimmermann@suse.de>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "daniel@ffwll.ch" <daniel@ffwll.ch>, "airlied@linux.ie" <airlied@linux.ie>,
 "maarten.lankhorst@linux.intel.com" <maarten.lankhorst@linux.intel.com>,
 "mripard@kernel.org" <mripard@kernel.org>,
 "inki.dae@samsung.com" <inki.dae@samsung.com>,
 "jy0922.shim@samsung.com" <jy0922.shim@samsung.com>,
 "sw0312.kim@samsung.com" <sw0312.kim@samsung.com>,
 "kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
 "krzysztof.kozlowski@canonical.com" <krzysztof.kozlowski@canonical.com>
Cc: "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>,
 "linux-arm-kernel@lists.infradead.org"
 <linux-arm-kernel@lists.infradead.org>,
 "linux-samsung-soc@vger.kernel.org" <linux-samsung-soc@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <cd51b87a-5a07-fbf8-0e8e-d30f8a592d98@suse.de>
Subject: Re: [PATCH 2/3] drm/xen: Implement mmap as GEM object function
References: <20211108102846.309-1-tzimmermann@suse.de>
 <20211108102846.309-3-tzimmermann@suse.de>
 <e727222a-3611-f1c0-a176-2214eb9553be@epam.com>
In-Reply-To: <e727222a-3611-f1c0-a176-2214eb9553be@epam.com>

--------------pNvdFciOihALwXILgN9Us0jY
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

SGkNCg0KQW0gMDguMTEuMjEgdW0gMTE6NDYgc2NocmllYiBPbGVrc2FuZHIgQW5kcnVzaGNo
ZW5rbzoNCj4gSGksIFRob21hcyENCj4gDQo+IE9uIDA4LjExLjIxIDEyOjI4LCBUaG9tYXMg
WmltbWVybWFubiB3cm90ZToNCj4+IE1vdmluZyB0aGUgZHJpdmVyLXNwZWNpZmljIG1tYXAg
Y29kZSBpbnRvIGEgR0VNIG9iamVjdCBmdW5jdGlvbiBhbGxvd3MNCj4+IGZvciB1c2luZyBE
Uk0gaGVscGVycyBmb3IgdmFyaW91cyBtbWFwIGNhbGxiYWNrcy4NCj4+DQo+PiBUaGUgcmVz
cGVjdGl2ZSB4ZW4gZnVuY3Rpb25zIGFyZSBiZWluZyByZW1vdmVkLiBUaGUgZmlsZV9vcGVy
YXRpb25zDQo+PiBzdHJ1Y3R1cmUgZm9wcyBpcyBub3cgYmVpbmcgY3JlYXRlZCBieSB0aGUg
aGVscGVyIG1hY3JvDQo+PiBERUZJTkVfRFJNX0dFTV9GT1BTKCkuDQo+Pg0KPj4gU2lnbmVk
LW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+DQo+IFJl
dmlld2VkLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hj
aGVua29AZXBhbS5jb20+DQoNClRoYXQgd2FzIHF1aWNrISBUaGFua3MgYSBsb3QuDQoNCkJl
c3QgcmVnYXJkcw0KVGhvbWFzDQoNCj4+IC0tLQ0KPj4gICAgZHJpdmVycy9ncHUvZHJtL3hl
bi94ZW5fZHJtX2Zyb250LmMgICAgIHwgIDE2ICstLS0NCj4+ICAgIGRyaXZlcnMvZ3B1L2Ry
bS94ZW4veGVuX2RybV9mcm9udF9nZW0uYyB8IDEwOCArKysrKysrKystLS0tLS0tLS0tLS0t
LS0NCj4+ICAgIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaCB8ICAg
NyAtLQ0KPj4gICAgMyBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCA4NyBkZWxl
dGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5f
ZHJtX2Zyb250LmMgYi9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuYw0KPj4g
aW5kZXggOWYxNGQ5OWM3NjNjLi40MzQwNjRjODIwZTggMTAwNjQ0DQo+PiAtLS0gYS9kcml2
ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUv
ZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMNCj4+IEBAIC00NjksMTkgKzQ2OSw3IEBAIHN0YXRp
YyB2b2lkIHhlbl9kcm1fZHJ2X3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikNCj4+
ICAgIAlrZnJlZShkcm1faW5mbyk7DQo+PiAgICB9DQo+PiAgICANCj4+IC1zdGF0aWMgY29u
c3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB4ZW5fZHJtX2Rldl9mb3BzID0gew0KPj4gLQku
b3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwNCj4+IC0JLm9wZW4gICAgICAgICAgID0g
ZHJtX29wZW4sDQo+PiAtCS5yZWxlYXNlICAgICAgICA9IGRybV9yZWxlYXNlLA0KPj4gLQku
dW5sb2NrZWRfaW9jdGwgPSBkcm1faW9jdGwsDQo+PiAtI2lmZGVmIENPTkZJR19DT01QQVQN
Cj4+IC0JLmNvbXBhdF9pb2N0bCAgID0gZHJtX2NvbXBhdF9pb2N0bCwNCj4+IC0jZW5kaWYN
Cj4+IC0JLnBvbGwgICAgICAgICAgID0gZHJtX3BvbGwsDQo+PiAtCS5yZWFkICAgICAgICAg
ICA9IGRybV9yZWFkLA0KPj4gLQkubGxzZWVrICAgICAgICAgPSBub19sbHNlZWssDQo+PiAt
CS5tbWFwICAgICAgICAgICA9IHhlbl9kcm1fZnJvbnRfZ2VtX21tYXAsDQo+PiAtfTsNCj4+
ICtERUZJTkVfRFJNX0dFTV9GT1BTKHhlbl9kcm1fZGV2X2ZvcHMpOw0KPj4gICAgDQo+PiAg
ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kcml2ZXIgeGVuX2RybV9kcml2ZXIgPSB7DQo+
PiAgICAJLmRyaXZlcl9mZWF0dXJlcyAgICAgICAgICAgPSBEUklWRVJfR0VNIHwgRFJJVkVS
X01PREVTRVQgfCBEUklWRVJfQVRPTUlDLA0KPj4gQEAgLTQ4OSw3ICs0NzcsNyBAQCBzdGF0
aWMgY29uc3Qgc3RydWN0IGRybV9kcml2ZXIgeGVuX2RybV9kcml2ZXIgPSB7DQo+PiAgICAJ
LnByaW1lX2hhbmRsZV90b19mZCAgICAgICAgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19m
ZCwNCj4+ICAgIAkucHJpbWVfZmRfdG9faGFuZGxlICAgICAgICA9IGRybV9nZW1fcHJpbWVf
ZmRfdG9faGFuZGxlLA0KPj4gICAgCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0geGVu
X2RybV9mcm9udF9nZW1faW1wb3J0X3NnX3RhYmxlLA0KPj4gLQkuZ2VtX3ByaW1lX21tYXAg
ICAgICAgICAgICA9IHhlbl9kcm1fZnJvbnRfZ2VtX3ByaW1lX21tYXAsDQo+PiArCS5nZW1f
cHJpbWVfbW1hcCAgICAgICAgICAgID0gZHJtX2dlbV9wcmltZV9tbWFwLA0KPj4gICAgCS5k
dW1iX2NyZWF0ZSAgICAgICAgICAgICAgID0geGVuX2RybV9kcnZfZHVtYl9jcmVhdGUsDQo+
PiAgICAJLmZvcHMgICAgICAgICAgICAgICAgICAgICAgPSAmeGVuX2RybV9kZXZfZm9wcywN
Cj4+ICAgIAkubmFtZSAgICAgICAgICAgICAgICAgICAgICA9ICJ4ZW5kcm0tZHUiLA0KPj4g
ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYyBi
L2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYw0KPj4gaW5kZXggYjI5
M2M2NzIzMGVmLi5kZDM1OGJhMmJmOGUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k
cm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94
ZW4veGVuX2RybV9mcm9udF9nZW0uYw0KPj4gQEAgLTU3LDYgKzU3LDQ3IEBAIHN0YXRpYyB2
b2lkIGdlbV9mcmVlX3BhZ2VzX2FycmF5KHN0cnVjdCB4ZW5fZ2VtX29iamVjdCAqeGVuX29i
aikNCj4+ICAgIAl4ZW5fb2JqLT5wYWdlcyA9IE5VTEw7DQo+PiAgICB9DQo+PiAgICANCj4+
ICtzdGF0aWMgaW50IHhlbl9kcm1fZnJvbnRfZ2VtX29iamVjdF9tbWFwKHN0cnVjdCBkcm1f
Z2VtX29iamVjdCAqZ2VtX29iaiwNCj4+ICsJCQkJCSBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg
KnZtYSkNCj4+ICt7DQo+PiArCXN0cnVjdCB4ZW5fZ2VtX29iamVjdCAqeGVuX29iaiA9IHRv
X3hlbl9nZW1fb2JqKGdlbV9vYmopOw0KPj4gKwlpbnQgcmV0Ow0KPj4gKw0KPj4gKwl2bWEt
PnZtX29wcyA9IGdlbV9vYmotPmZ1bmNzLT52bV9vcHM7DQo+PiArDQo+PiArCS8qDQo+PiAr
CSAqIENsZWFyIHRoZSBWTV9QRk5NQVAgZmxhZyB0aGF0IHdhcyBzZXQgYnkgZHJtX2dlbV9t
bWFwKCksIGFuZCBzZXQgdGhlDQo+PiArCSAqIHZtX3Bnb2ZmICh1c2VkIGFzIGEgZmFrZSBi
dWZmZXIgb2Zmc2V0IGJ5IERSTSkgdG8gMCBhcyB3ZSB3YW50IHRvIG1hcA0KPj4gKwkgKiB0
aGUgd2hvbGUgYnVmZmVyLg0KPj4gKwkgKi8NCj4+ICsJdm1hLT52bV9mbGFncyAmPSB+Vk1f
UEZOTUFQOw0KPj4gKwl2bWEtPnZtX2ZsYWdzIHw9IFZNX01JWEVETUFQOw0KPj4gKwl2bWEt
PnZtX3Bnb2ZmID0gMDsNCj4+ICsNCj4+ICsJLyoNCj4+ICsJICogQWNjb3JkaW5nIHRvIFhl
biBvbiBBUk0gQUJJICh4ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaCk6DQo+PiArCSAq
IGFsbCBtZW1vcnkgd2hpY2ggaXMgc2hhcmVkIHdpdGggb3RoZXIgZW50aXRpZXMgaW4gdGhl
IHN5c3RlbQ0KPj4gKwkgKiAoaW5jbHVkaW5nIHRoZSBoeXBlcnZpc29yIGFuZCBvdGhlciBn
dWVzdHMpIG11c3QgcmVzaWRlIGluIG1lbW9yeQ0KPj4gKwkgKiB3aGljaCBpcyBtYXBwZWQg
YXMgTm9ybWFsIElubmVyIFdyaXRlLUJhY2sgT3V0ZXIgV3JpdGUtQmFjaw0KPj4gKwkgKiBJ
bm5lci1TaGFyZWFibGUuDQo+PiArCSAqLw0KPj4gKwl2bWEtPnZtX3BhZ2VfcHJvdCA9IHZt
X2dldF9wYWdlX3Byb3Qodm1hLT52bV9mbGFncyk7DQo+PiArDQo+PiArCS8qDQo+PiArCSAq
IHZtX29wZXJhdGlvbnNfc3RydWN0LmZhdWx0IGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQgaWYg
Q1BVIGFjY2Vzcw0KPj4gKwkgKiB0byBWTSBpcyBoZXJlLiBGb3IgR1BVcyB0aGlzIGlzbid0
IHRoZSBjYXNlLCBiZWNhdXNlIENQVSAgZG9lc24ndA0KPj4gKwkgKiB0b3VjaCB0aGUgbWVt
b3J5LiBJbnNlcnQgcGFnZXMgbm93LCBzbyBib3RoIENQVSBhbmQgR1BVIGFyZSBoYXBweS4N
Cj4+ICsJICoNCj4+ICsJICogRklYTUU6IGFzIHdlIGluc2VydCBhbGwgdGhlIHBhZ2VzIG5v
dyB0aGVuIG5vIC5mYXVsdCBoYW5kbGVyIG11c3QNCj4+ICsJICogYmUgY2FsbGVkLCBzbyBk
b24ndCBwcm92aWRlIG9uZQ0KPj4gKwkgKi8NCj4+ICsJcmV0ID0gdm1fbWFwX3BhZ2VzKHZt
YSwgeGVuX29iai0+cGFnZXMsIHhlbl9vYmotPm51bV9wYWdlcyk7DQo+PiArCWlmIChyZXQg
PCAwKQ0KPj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gbWFwIHBhZ2VzIGludG8gdm1hOiAl
ZFxuIiwgcmV0KTsNCj4+ICsNCj4+ICsJcmV0dXJuIHJldDsNCj4+ICt9DQo+PiArDQo+PiAg
ICBzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHhlbl9kcm1fZHJ2
X3ZtX29wcyA9IHsNCj4+ICAgIAkub3BlbiAgICAgICAgICAgPSBkcm1fZ2VtX3ZtX29wZW4s
DQo+PiAgICAJLmNsb3NlICAgICAgICAgID0gZHJtX2dlbV92bV9jbG9zZSwNCj4+IEBAIC02
Nyw2ICsxMDgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNz
IHhlbl9kcm1fZnJvbnRfZ2VtX29iamVjdF9mdW5jcyA9IHsNCj4+ICAgIAkuZ2V0X3NnX3Rh
YmxlID0geGVuX2RybV9mcm9udF9nZW1fZ2V0X3NnX3RhYmxlLA0KPj4gICAgCS52bWFwID0g
eGVuX2RybV9mcm9udF9nZW1fcHJpbWVfdm1hcCwNCj4+ICAgIAkudnVubWFwID0geGVuX2Ry
bV9mcm9udF9nZW1fcHJpbWVfdnVubWFwLA0KPj4gKwkubW1hcCA9IHhlbl9kcm1fZnJvbnRf
Z2VtX29iamVjdF9tbWFwLA0KPj4gICAgCS52bV9vcHMgPSAmeGVuX2RybV9kcnZfdm1fb3Bz
LA0KPj4gICAgfTsNCj4+ICAgIA0KPj4gQEAgLTIzOCw1OCArMjgwLDYgQEAgeGVuX2RybV9m
cm9udF9nZW1faW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQo+PiAg
ICAJcmV0dXJuICZ4ZW5fb2JqLT5iYXNlOw0KPj4gICAgfQ0KPj4gICAgDQo+PiAtc3RhdGlj
IGludCBnZW1fbW1hcF9vYmooc3RydWN0IHhlbl9nZW1fb2JqZWN0ICp4ZW5fb2JqLA0KPj4g
LQkJCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPj4gLXsNCj4+IC0JaW50IHJldDsN
Cj4+IC0NCj4+IC0JLyoNCj4+IC0JICogY2xlYXIgdGhlIFZNX1BGTk1BUCBmbGFnIHRoYXQg
d2FzIHNldCBieSBkcm1fZ2VtX21tYXAoKSwgYW5kIHNldCB0aGUNCj4+IC0JICogdm1fcGdv
ZmYgKHVzZWQgYXMgYSBmYWtlIGJ1ZmZlciBvZmZzZXQgYnkgRFJNKSB0byAwIGFzIHdlIHdh
bnQgdG8gbWFwDQo+PiAtCSAqIHRoZSB3aG9sZSBidWZmZXIuDQo+PiAtCSAqLw0KPj4gLQl2
bWEtPnZtX2ZsYWdzICY9IH5WTV9QRk5NQVA7DQo+PiAtCXZtYS0+dm1fZmxhZ3MgfD0gVk1f
TUlYRURNQVA7DQo+PiAtCXZtYS0+dm1fcGdvZmYgPSAwOw0KPj4gLQkvKg0KPj4gLQkgKiBB
Y2NvcmRpbmcgdG8gWGVuIG9uIEFSTSBBQkkgKHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFy
bS5oKToNCj4+IC0JICogYWxsIG1lbW9yeSB3aGljaCBpcyBzaGFyZWQgd2l0aCBvdGhlciBl
bnRpdGllcyBpbiB0aGUgc3lzdGVtDQo+PiAtCSAqIChpbmNsdWRpbmcgdGhlIGh5cGVydmlz
b3IgYW5kIG90aGVyIGd1ZXN0cykgbXVzdCByZXNpZGUgaW4gbWVtb3J5DQo+PiAtCSAqIHdo
aWNoIGlzIG1hcHBlZCBhcyBOb3JtYWwgSW5uZXIgV3JpdGUtQmFjayBPdXRlciBXcml0ZS1C
YWNrDQo+PiAtCSAqIElubmVyLVNoYXJlYWJsZS4NCj4+IC0JICovDQo+PiAtCXZtYS0+dm1f
cGFnZV9wcm90ID0gdm1fZ2V0X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKTsNCj4+IC0NCj4+
IC0JLyoNCj4+IC0JICogdm1fb3BlcmF0aW9uc19zdHJ1Y3QuZmF1bHQgaGFuZGxlciB3aWxs
IGJlIGNhbGxlZCBpZiBDUFUgYWNjZXNzDQo+PiAtCSAqIHRvIFZNIGlzIGhlcmUuIEZvciBH
UFVzIHRoaXMgaXNuJ3QgdGhlIGNhc2UsIGJlY2F1c2UgQ1BVDQo+PiAtCSAqIGRvZXNuJ3Qg
dG91Y2ggdGhlIG1lbW9yeS4gSW5zZXJ0IHBhZ2VzIG5vdywgc28gYm90aCBDUFUgYW5kIEdQ
VSBhcmUNCj4+IC0JICogaGFwcHkuDQo+PiAtCSAqIEZJWE1FOiBhcyB3ZSBpbnNlcnQgYWxs
IHRoZSBwYWdlcyBub3cgdGhlbiBubyAuZmF1bHQgaGFuZGxlciBtdXN0DQo+PiAtCSAqIGJl
IGNhbGxlZCwgc28gZG9uJ3QgcHJvdmlkZSBvbmUNCj4+IC0JICovDQo+PiAtCXJldCA9IHZt
X21hcF9wYWdlcyh2bWEsIHhlbl9vYmotPnBhZ2VzLCB4ZW5fb2JqLT5udW1fcGFnZXMpOw0K
Pj4gLQlpZiAocmV0IDwgMCkNCj4+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIG1hcCBwYWdl
cyBpbnRvIHZtYTogJWRcbiIsIHJldCk7DQo+PiAtDQo+PiAtCXJldHVybiByZXQ7DQo+PiAt
fQ0KPj4gLQ0KPj4gLWludCB4ZW5fZHJtX2Zyb250X2dlbV9tbWFwKHN0cnVjdCBmaWxlICpm
aWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkNCj4+IC17DQo+PiAtCXN0cnVjdCB4
ZW5fZ2VtX29iamVjdCAqeGVuX29iajsNCj4+IC0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpn
ZW1fb2JqOw0KPj4gLQlpbnQgcmV0Ow0KPj4gLQ0KPj4gLQlyZXQgPSBkcm1fZ2VtX21tYXAo
ZmlscCwgdm1hKTsNCj4+IC0JaWYgKHJldCA8IDApDQo+PiAtCQlyZXR1cm4gcmV0Ow0KPj4g
LQ0KPj4gLQlnZW1fb2JqID0gdm1hLT52bV9wcml2YXRlX2RhdGE7DQo+PiAtCXhlbl9vYmog
PSB0b194ZW5fZ2VtX29iaihnZW1fb2JqKTsNCj4+IC0JcmV0dXJuIGdlbV9tbWFwX29iaih4
ZW5fb2JqLCB2bWEpOw0KPj4gLX0NCj4+IC0NCj4+ICAgIGludCB4ZW5fZHJtX2Zyb250X2dl
bV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaiwgc3RydWN0IGRt
YV9idWZfbWFwICptYXApDQo+PiAgICB7DQo+PiAgICAJc3RydWN0IHhlbl9nZW1fb2JqZWN0
ICp4ZW5fb2JqID0gdG9feGVuX2dlbV9vYmooZ2VtX29iaik7DQo+PiBAQCAtMzEzLDE3ICsz
MDMsMyBAQCB2b2lkIHhlbl9kcm1fZnJvbnRfZ2VtX3ByaW1lX3Z1bm1hcChzdHJ1Y3QgZHJt
X2dlbV9vYmplY3QgKmdlbV9vYmosDQo+PiAgICB7DQo+PiAgICAJdnVubWFwKG1hcC0+dmFk
ZHIpOw0KPj4gICAgfQ0KPj4gLQ0KPj4gLWludCB4ZW5fZHJtX2Zyb250X2dlbV9wcmltZV9t
bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaiwNCj4+IC0JCQkJIHN0cnVjdCB2
bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPj4gLXsNCj4+IC0Jc3RydWN0IHhlbl9nZW1fb2JqZWN0
ICp4ZW5fb2JqOw0KPj4gLQlpbnQgcmV0Ow0KPj4gLQ0KPj4gLQlyZXQgPSBkcm1fZ2VtX21t
YXBfb2JqKGdlbV9vYmosIGdlbV9vYmotPnNpemUsIHZtYSk7DQo+PiAtCWlmIChyZXQgPCAw
KQ0KPj4gLQkJcmV0dXJuIHJldDsNCj4+IC0NCj4+IC0JeGVuX29iaiA9IHRvX3hlbl9nZW1f
b2JqKGdlbV9vYmopOw0KPj4gLQlyZXR1cm4gZ2VtX21tYXBfb2JqKHhlbl9vYmosIHZtYSk7
DQo+PiAtfQ0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9m
cm9udF9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaA0K
Pj4gaW5kZXggYTRlNjdkMGExNDljLi5lYWVhNDcwZjcwMDEgMTAwNjQ0DQo+PiAtLS0gYS9k
cml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmgNCj4+ICsrKyBiL2RyaXZl
cnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaA0KPj4gQEAgLTE1LDkgKzE1LDcg
QEAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudDsNCj4+ICAgIHN0cnVjdCBkbWFfYnVmX21h
cDsNCj4+ICAgIHN0cnVjdCBkcm1fZGV2aWNlOw0KPj4gICAgc3RydWN0IGRybV9nZW1fb2Jq
ZWN0Ow0KPj4gLXN0cnVjdCBmaWxlOw0KPj4gICAgc3RydWN0IHNnX3RhYmxlOw0KPj4gLXN0
cnVjdCB2bV9hcmVhX3N0cnVjdDsNCj4+ICAgIA0KPj4gICAgc3RydWN0IGRybV9nZW1fb2Jq
ZWN0ICp4ZW5fZHJtX2Zyb250X2dlbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwN
Cj4+ICAgIAkJCQkJCXNpemVfdCBzaXplKTsNCj4+IEBAIC0zMywxNSArMzEsMTAgQEAgc3Ry
dWN0IHBhZ2UgKip4ZW5fZHJtX2Zyb250X2dlbV9nZXRfcGFnZXMoc3RydWN0IGRybV9nZW1f
b2JqZWN0ICpvYmopOw0KPj4gICAgDQo+PiAgICB2b2lkIHhlbl9kcm1fZnJvbnRfZ2VtX2Zy
ZWVfb2JqZWN0X3VubG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaik7DQo+
PiAgICANCj4+IC1pbnQgeGVuX2RybV9mcm9udF9nZW1fbW1hcChzdHJ1Y3QgZmlsZSAqZmls
cCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOw0KPj4gLQ0KPj4gICAgaW50IHhlbl9k
cm1fZnJvbnRfZ2VtX3ByaW1lX3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2Jq
LA0KPj4gICAgCQkJCSBzdHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCk7DQo+PiAgICANCj4+ICAg
IHZvaWQgeGVuX2RybV9mcm9udF9nZW1fcHJpbWVfdnVubWFwKHN0cnVjdCBkcm1fZ2VtX29i
amVjdCAqZ2VtX29iaiwNCj4+ICAgIAkJCQkgICAgc3RydWN0IGRtYV9idWZfbWFwICptYXAp
Ow0KPj4gICAgDQo+PiAtaW50IHhlbl9kcm1fZnJvbnRfZ2VtX3ByaW1lX21tYXAoc3RydWN0
IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqLA0KPj4gLQkJCQkgc3RydWN0IHZtX2FyZWFfc3Ry
dWN0ICp2bWEpOw0KPj4gLQ0KPj4gICAgI2VuZGlmIC8qIF9fWEVOX0RSTV9GUk9OVF9HRU1f
SCAqLw0KDQotLSANClRob21hcyBaaW1tZXJtYW5uDQpHcmFwaGljcyBEcml2ZXIgRGV2ZWxv
cGVyDQpTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgNCk1heGZlbGRzdHIu
IDUsIDkwNDA5IE7DvHJuYmVyZywgR2VybWFueQ0KKEhSQiAzNjgwOSwgQUcgTsO8cm5iZXJn
KQ0KR2VzY2jDpGZ0c2bDvGhyZXI6IEl2byBUb3Rldg0K

--------------pNvdFciOihALwXILgN9Us0jY--

--------------0AOeEutgkiNVV1IRkB2IcmOG
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmGJCtcFAwAAAAAACgkQlh/E3EQov+BZ
qw/7BLeIuL6WUgp6Qs/ZQ0toVekaxurcrG7woL350aDjl+TZWnjiOoxvo45WNqVmH+rRKWT12nQQ
nYbuHkC96Ptu2T9R2lkn3kO2yagdXQ3fw3M/k2pSOUpQGUk/WPg0bWvD7AJsvYJDggcVNcneDqkG
WXfuz3xRiRfF3oa5m4VWgjsF57WlUhsATSMuXFPp18vPWLZwQOcbvAtmZpAJD4e0I1L9a9csRm/y
xoFslKdJ0oWinWfElQO0VG4hC2ZLW1T5Vh90IP/zd04jFN9uK9nHh8s5MjSOgfRhQjfRAoTKrF1Z
5/W4WJCJyFT6f+BV/Bmz+xrLGvBPXjOvOsk8nppg2VE8IiKm+pbbK1eVuS808upoxP/B4Ght5vzx
EhqZX3/u+H9CowRngtAAR0b839ERt2zsgpcBC/cbSpuMhwJ6jkN7yQM7IoDLcnRPC5mKqWz+HfvS
yea9h3TTdemx2GpfyMoJU44Uu9Jh3tIAslQeSdVJQHiY/64ZxKTlZ1WGkVwncfBMRYeKL3Plmbqk
sSgOqdP3oiZtQYy19t/btCqi3wL8vQoHrz7nWjjXPas8JbTWvIjcP2afA2IIM3ubE1ks7SjY2djw
q/y+Wv+Kh4smykIyYYzLZNiG61SQ77URKTUsXxAc+/rdR0c4lAcQQVNxjU3AkGUMZH5ZjEwjDQcQ
muE=
=hT8R
-----END PGP SIGNATURE-----

--------------0AOeEutgkiNVV1IRkB2IcmOG--


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:36:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:36:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223300.385958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2xC-0002o4-Mu; Mon, 08 Nov 2021 11:36:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223300.385958; Mon, 08 Nov 2021 11:36:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk2xC-0002nx-Jm; Mon, 08 Nov 2021 11:36:46 +0000
Received: by outflank-mailman (input) for mailman id 223300;
 Mon, 08 Nov 2021 11:36:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZOPF=P3=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mk2xB-0002nr-Ky
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:36:45 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 267753bd-4088-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 12:36:44 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id 207so10689731ljf.10
 for <xen-devel@lists.xenproject.org>; Mon, 08 Nov 2021 03:36:44 -0800 (PST)
Received: from [192.168.2.145] (79-139-188-96.dynamic.spd-mgts.ru.
 [79.139.188.96])
 by smtp.googlemail.com with ESMTPSA id q6sm1523591ljh.1.2021.11.08.03.36.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Nov 2021 03:36:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 267753bd-4088-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=X+QlLlo/0/3EVdBxA2kw9RSD+7dI68j0akmWtlfHVoc=;
        b=aZVzW8uInA8LU/x+WSDcs8GL423pa/2TbHlNFMZCd9U6UTTINhRxHwWgMG+VIGRFXX
         YHsHS1Zp8SLg7g0I8x9US08hxM80ZghlJabXZBFwbjt/NZTi8D93A6u3DdWQsriGAEMv
         bFmB7LTf3DQwVbSm6WogHRt9oYdTZJJwV6Cdja/STeDW7/10QbzkyuPD5z+/FAuGPwej
         XDOG6vFO/moWThDJAR559rbcfRfK+AgOLrilun42rQLGkujwn1pckpcm4TgSB3WIb1LP
         WWP0u+S7lmnv27N0vKhUH9Av/RJV5C0NJsxi8Lo9cU/Zh/pB4HH/qd8XqYWZNDXsqTHX
         YlNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=X+QlLlo/0/3EVdBxA2kw9RSD+7dI68j0akmWtlfHVoc=;
        b=kwt9KeE+xt3hNPI1cos2yDScpvm9VJmeUEKTpPwJL+W9N15s8znzpI6YKb9Q3lY4e3
         ec0NGaYBC1ul1RkCkvCFuK6A5APx1CX+UDgLKUFDZKOuBP55obHvAE2dv2uMFUy8LXCJ
         ryrHqu2vjdW4rzSOX8sKL5xEGOSF8QYVza6C5FeLayCwvrBVplyKHHuE0O7/k9F+42D8
         ucd026+0jipaPicUiOE5mf5LWfhgrrML13Qxqrh9mMBM55gF+RgSnb73uL9XEekftboN
         F1tVryUdYwYEo1K/wb0TABhRE/BhXAeMQ05zOD65ewFagrhy5c+VDlSLi6DRI2Xq+pdA
         izAg==
X-Gm-Message-State: AOAM531UXs+biHU1pW3OPAHOiG3XrdfZwYZce3c/v4R7Kq3iZkZKE9/W
	u3ribHmk7JwI/nKXr+j404s=
X-Google-Smtp-Source: ABdhPJzzWZ+q13ptoCU5JHKLBozyl2qyG0di7fj7GC0x6tQVXWEZ5utjk3vHuuOVClKYY3WCOwTKiw==
X-Received: by 2002:a2e:bd88:: with SMTP id o8mr69963654ljq.197.1636371404363;
        Mon, 08 Nov 2021 03:36:44 -0800 (PST)
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
To: =?UTF-8?Q?Jonathan_Neusch=c3=a4fer?= <j.neuschaefer@gmx.net>
Cc: Guenter Roeck <linux@roeck-us.net>,
 Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Lee Jones <lee.jones@linaro.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Mark Brown <broonie@kernel.org>,
 Andrew Morton <akpm@linux-foundation.org>,
 Russell King <linux@armlinux.org.uk>,
 Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 Guo Ren <guoren@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>,
 Greg Ungerer <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
 Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Len Brown <lenb@kernel.org>, Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Linus Walleij <linus.walleij@linaro.org>, Chen-Yu Tsai <wens@csie.org>,
 Tony Lindgren <tony@atomide.com>, Liam Girdwood <lgirdwood@gmail.com>,
 Philipp Zabel <p.zabel@pengutronix.de>, Vladimir Zapolskiy <vz@mleia.com>,
 Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>,
 Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>,
 Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>,
 Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
 linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
 linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
 openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
 linux-pm@vger.kernel.org
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com> <YYbqlmOM95q7Hbjo@latitude>
 <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
 <9a22c22d-94b1-f519-27a2-ae0b8bbf6e99@roeck-us.net>
 <658cf796-e3b1-f816-1e15-9e9e08b8ade0@gmail.com>
 <5a17fee3-4214-c2b9-abc1-ab9d6071591b@roeck-us.net>
 <c0b52994-51f5-806b-b07e-3e70d8217ffc@gmail.com> <YYkIeBSCFka9yrqC@latitude>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <04103df3-1ef4-b560-a5cb-fa51737d28ad@gmail.com>
Date: Mon, 8 Nov 2021 14:36:42 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YYkIeBSCFka9yrqC@latitude>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

08.11.2021 14:22, Jonathan Neuschäfer пишет:
> On Sun, Nov 07, 2021 at 08:42:33PM +0300, Dmitry Osipenko wrote:
> [...]
>> EC drivers tend to use higher priority in general. Jonathan, could you
>> please confirm that NTXEC driver is a more preferable restart method
>> than the watchdog?
> 
> Yes. The original firmware uses the NTXEC to restart, and it works well,
> so I do think it's preferable.

Thank you, then I'll update the NTXEC patch like this:

https://github.com/grate-driver/linux/commit/22da3d91f1734d9a0ed036220ad4ea28465af988



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:41:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:41:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223310.385969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk31T-0004IQ-Bi; Mon, 08 Nov 2021 11:41:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223310.385969; Mon, 08 Nov 2021 11:41:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk31T-0004IJ-8r; Mon, 08 Nov 2021 11:41:11 +0000
Received: by outflank-mailman (input) for mailman id 223310;
 Mon, 08 Nov 2021 11:41:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk31S-0004ID-5S
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:41:10 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0d226bf-4088-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 12:41:03 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2106.outbound.protection.outlook.com [104.47.17.106])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-19-N2Uxjqz9O4G22Et3yls_cg-1; Mon, 08 Nov 2021 12:41:02 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2333.eurprd04.prod.outlook.com (2603:10a6:800:28::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Mon, 8 Nov
 2021 11:41:00 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 11:41:00 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR04CA0026.eurprd04.prod.outlook.com (2603:10a6:206:1::39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Mon, 8 Nov 2021 11:41:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0d226bf-4088-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636371663;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=3Je3ZuwZHXVzWG6CFZQALmUn2ZcQA7SOnGDosdRm7aM=;
	b=arYeOU+pIiUQetWmWU54WIFzmC/WzeEf23dzIJiCJUvLCJEThfHzQxUQoKhDMnCm2O4mSk
	m37v/VsVVi68mNLVzaDaCQ0Nnsdtfq5zzvCgSwd+4aqwyZEf6UWAModhPqCw+YpN78QXNP
	RBX20Epk7gspJXuPVwCZNeDcMQZGoaM=
X-MC-Unique: N2Uxjqz9O4G22Et3yls_cg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=j+dlogZdqE0E9IuhklLBKixSextERHqwAF69C5ypVIe51up8rMf3dFexIJQ61PkdpyoKJO9almCejM8+KNX2Wa9lOPM3LoG/ofgSjoDHDCwhRnL1OOL/AK5Lrwo3TAkT8Zs/ibQ73hYUuNSuvQpB9Gn7FK5RIDVKvts0c9Hn5xA425cdTuT1VTYxtasjv4VucCv44L00WzxXAdJci1ebekPChslaGrq8Y0q+waB35P1vOViCDZBMV9tj3tCVG+GfygplKwQb2cKiXaGdHD3FZi91qDLC4zuyw0A+SEGs0CoiSC/LR4U9NfVwSuMlP3sru9lTKqb0VQkHNqs8jnRs6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3Je3ZuwZHXVzWG6CFZQALmUn2ZcQA7SOnGDosdRm7aM=;
 b=LPsTvARuhT9KJdbdHyonfuuAzmcG1Jr5jmDeRal/XEsu/tSHQBjZid9opm33FMiAJokNpZS2BTYLJmDa3K5zxCZiGZ9pKLsbxbiVSdsq9mRYRUeTF0zT4f9tMBlYDMJ/5+el4tXqDMIbEWkp95elWgLXMVl4GZSeQcAaY02IuoB06BvrYMH5X0Xtht5+XXCQFNVwDiSK+wX3ptmhtq1wKX9UBkinHBlupaEIKc9TLNv+GXwsTKIxi7EBugkqtXRunqX/M32xgK/UmLKWF1adbIVWEP9jUgPnd8ViXFdqLhKCnhgXsJHuQdSUk9mEYrbj1InziS+pIgOpOpH2FwoQMQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0c006378-964b-3e48-4fe0-4df88e3131e5@suse.com>
Date: Mon, 8 Nov 2021 12:40:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2.1 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Ian Jackson <iwj@xenproject.org>, Paul Durrant <paul@xen.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Language: en-US
In-Reply-To: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR04CA0026.eurprd04.prod.outlook.com
 (2603:10a6:206:1::39) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fe329fe9-0a49-4a65-df51-08d9a2aca319
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2333:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2333413D6E9CBF9C6FC4F39CB3919@VI1PR0401MB2333.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	GvRM6oevltFVv6R8GjGH8wjanx4b8sGOmwbZQtWYNLW9w6TCyLmB4xY9c+q2zUONOPyKycaWotwVd7QIaZK0zUJecZKQGCDAYTWMWrUPJt93Ze2OwxNRfW0JID9LhcCOKVMIjIjtkxgLO6AaOiCKypCO5oJRo80IlVh7niDhm1mHV1roxvm1JyHWREataB4gDuFHH3WovwHBLEhWR+YcM9zsR6JxO9ppaxXesRN8tTY0nBrD1vKRURuLVSxQFOwiK5B5YY0I/YAo4uBcNzloMd3eioeIcZndDvypqsflcLkZAK/gvcYel//T5nqGWtApuVz4Ds386d7mcW4NvEnATBPctC3MLlqQKyKeb4dRcfLMBmDK4xoS/d4daxrQx3F56JElfk49QY2kS9a1qzhb4pQuo7S2Ai396jdhS9VxNoNe2GqqIs79xAJFKVmMEAjXNomAazVNwXjedUWOd5mThI3sgBPIY3FtL31MtwK6lmMENaDCM+KeMyHwQia0Qn/nJgRLqqsgrhmclIBIXChiM/MfrANg9u1Z9ovyVEqO5h9iPRu0MrYXr6mFsS8yNeRBx6lS2GmU5oaO2iqbOuARw/AtoRL5R9EwoaaV1gNM1iQC2ij/wsIV4DWRTiykqziIKceZr3/eCqAGetaRBidqFF/SE981gw+DbqWoMrqlu7gGL4epdK5jox1KYTSXcwdRtSZjfDL1K9WNix3XFhskikT43OmZVCqsiry8gjrtvvsGD1sIwH7T929VXblO1xK4
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(26005)(38100700002)(66946007)(186003)(2906002)(31696002)(16576012)(316002)(83380400001)(6486002)(54906003)(4326008)(86362001)(8936002)(6916009)(8676002)(508600001)(31686004)(5660300002)(2616005)(956004)(66556008)(66476007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OC9NWUtSSStIb2kzVHpkd3pWM25nc2R3cytTRktYOEJTMm5DSnFGTWRXZDdM?=
 =?utf-8?B?MXpEbkppTzBERkdZQ3BHNHVXMnhNZHZVcTFyU21XdVMvOGhpY0pCSzFFaXdO?=
 =?utf-8?B?WVlmWFozaUU2cXhGZkFrU0FjbVZ3L3haeXFHZ0hpMGowVlBFRmY5WmNaUXdY?=
 =?utf-8?B?ZDhZT1JGRkJGS0tQNElMZnBvVkhkSEJ0Qmc1bURmQ2k1QnluL2FMTFlSOUxr?=
 =?utf-8?B?NDBUMHR3TVVoSGphSTZHampLVkkwTzcra3NoUVBpTlNFcDJPMUtEOFdXSjFn?=
 =?utf-8?B?aDFwbWtKQzRFK3QzUCtMSHJqVUF6ZEpNSU0zTmR0VStOWWFHTjBZdzhtZlhB?=
 =?utf-8?B?WktRVGJ0SVZaZGM2WTFVWHJia1hhN0JjVlhxYXdaREwzbGtmVG5Fc0RsU2x5?=
 =?utf-8?B?OEZPWFpmTm53TS9abjZTUE5GSHljblppdis0M3R2enYwUVR2OC9EcTVSUTJo?=
 =?utf-8?B?NzMzbHNGd0ZmTE9OM2ZuWldXR1E3MmVIK0ZBVHQ3cHRKaFJ1dUpQLzUvaS9v?=
 =?utf-8?B?UU9jVm9RTXEzUW1JRGxkdEdVdXdFREsreHQ2cXp5Mi9MWmVvbGVYL0lnTDIz?=
 =?utf-8?B?SjJaTHZyMTZ6WVBFeHhzaXZudjBvTldWVTY2aFZYYWpGZnY1bEY5RWg3bnZz?=
 =?utf-8?B?ZUJQN2VVQnlqRUZybUtmUUlyQnIvRDRCZ2FBMGtwMjhyYngvc0V1S3hiTEpx?=
 =?utf-8?B?QXFORHlxTDd2c2RnS3NYNldlUit3YlJQS1FBNk00SGpSWVAzZFNiaDBjbE5X?=
 =?utf-8?B?YzNLNVAxM2hOenVmK1RENGxpSVpEWWdLTFNIOHYzbXRlSzZzbW16dnpHRjF2?=
 =?utf-8?B?eGRrRnR3VlcyWnZHeFI0YU9YOHp1eFdMSTd5dDVlTXZqYXlXcHNpS25BSnM5?=
 =?utf-8?B?UTJQcjRaZ2tBUy9NazdGcFFsS3BlemY2VWZtK0NISFlCcnRlU3BNMlUvanNC?=
 =?utf-8?B?Y3pXajJQWUlvQXlGekNEUWw1OFRkd2UzTGFJeXdQVk5PN2JaaGk5aWsrWVlv?=
 =?utf-8?B?dlVjTW9yeThYR2RMNHRpSWlLMEpQa2FqYU1zampqbHYxOXdCSS9GVUFNQmU0?=
 =?utf-8?B?eFJiWktzZXpoQ0ZBeEVENzFDaXhuZVlQYitWY0tnaHJ4dnJUYjl5YlFzSjda?=
 =?utf-8?B?WUREMDNrUTRtWEYyeTBjaUlPRXIzSzZrUzBQY1NHbjN6VWg1RzcyWndTZjhG?=
 =?utf-8?B?S0RGRWM4SGMxeWtSdTdLN0V0WHdUMDYweWcwbHEyYml1eVpKZzBiN203TWt6?=
 =?utf-8?B?R0RSeUxtWFJVcTIySHlaOUx2dFpPTXZTM0IvdGdSdkppaEU2VU9LWDIyVEY5?=
 =?utf-8?B?WU5DY21JNnA2U2plOWFmdURJN01TckFpUmRFN2kwa0JhcVNjS1d1VXk1ejFL?=
 =?utf-8?B?NVRoQ2RWN3piS1hibXpETDBPM1l4eTk3bDVHZFFJek5BcEpOTVJaK25SaFNH?=
 =?utf-8?B?RGZSWHlUSEhjdkl1bFo2eWNMbWdLbE5tUVNxMG9sclRzRnQxbTYxaWNsUXpY?=
 =?utf-8?B?dkd5WU9aRXhTZFpYOEpBTHZvMFVBVGRTS0xWY2lXdzg0YVdrSlc4em5LTjhn?=
 =?utf-8?B?QVhOTFB6REs4RWRBMm8xdVNMR0paRC9nYTZDYisvL2FnSzRwenNObnZPOE9L?=
 =?utf-8?B?ellxWnRsWUdNbElzSWhuUmVFeTRYZUJkZ0JabDlEcXZBUmhpYTVPM05zMXhC?=
 =?utf-8?B?c2FRTE1nV3J5UGpSaEZnUjVjU29RL0F2RFA0WnRvaUhrQWVKbG53aVJVYnpn?=
 =?utf-8?B?Y29nMmo1eFNlejF1TjRZWE1scjcyZ1hLSDBnWG5DcnRhZ1ovbjE3enhJTFk3?=
 =?utf-8?B?TkNlc2ZRK0hZSkthS0FZeU9rdXlJclh0RS9zaVp4VkhtYTZjOVdSN3lnNkh5?=
 =?utf-8?B?S3ZwaS9KS24vM3kwcE9wcGhacDV1OFU4a3ZrdGh6RTdiWCtnMFBxSlVSdXFJ?=
 =?utf-8?B?WXltVExTemI0U0VYWUdYTmhwTElpREs0KzZOSWJGMEx6a1dYU0FtNEc5ZE93?=
 =?utf-8?B?VkxFK2tTQ1QyQmJKZEZOUEVpRkNkSkpnSzJwd29HSEtOR0Z1SUlGTVRMSW9S?=
 =?utf-8?B?dHgzb1BGVmdSMXFXamZuOHNhbDV6MDA2NkRHcm5SSk1DK1hCK0cvd1pmSEdt?=
 =?utf-8?B?dzRCQjhYSEsveXE4S053dGlJVVIvZXBXUkE5QzQ1bksvSFlWamtIV21waU9l?=
 =?utf-8?Q?6Mnph9oJz94bZxIXYj2cN60=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe329fe9-0a49-4a65-df51-08d9a2aca319
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 11:41:00.4961
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sQyb/6jzK1Eowe1GrrTpQJqTn9juWDwCokWB+/QgiJX2MXNQ1yGCBLhqOLDhxwyZJfnQtYPQqPKi+Sf3/4Ojgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2333

While commit 46c4061cd2bf ("x86/IOMMU: mark IOMMU / intremap not in use
when ACPI tables are missing") deals with apic_x2apic_probe() as called
from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
affected: The call needs to occur after acpi_iommu_init(), such that
iommu_intremap getting disabled there can be properly taken into account
by apic_x2apic_probe().

Note that, for the time being (further cleanup patches following),
reversing the order of the calls to generic_apic_probe() and
acpi_boot_init() is not an option:
- acpi_process_madt() calls clustered_apic_check() and hence relies on
  genapic to have got filled before,
- generic_bigsmp_probe() (called from acpi_process_madt()) needs to
  occur after generic_apic_probe(),
- acpi_parse_madt() (called from acpi_process_madt()) calls
  acpi_madt_oem_check(), which wants to be after generic_apic_probe().

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Based on code inspection only - I have no affected system and hence no
way to actually test the case.
---
v2.1: Respect acpi_disabled in acpi_iommu_init().
v2: Don't move generic_apic_probe() invocation, instead pull out
    acpi_iommu_init() from acpi_boot_init().
---
4.16: While investigating the issue addressed by the referenced commit,
      a variant of that problem was identified when firmware pre-enables
      x2APIC mode. Whether that's something sane firmware would do when
      at the same time IOMMU(s) is/are disabled is unclear, so this may
      be a purely academical consideration. Working around the problem
      also ought to be as simple as passing "iommu=no-intremap" on the
      command line. Considering the fragility of the code (as further
      demonstrated by v1 having been completely wrong), it may therefore
      be advisable to defer this change until after branching.
      Nevertheless it will then be a backporting candidate, so
      considering to take it right away can't simply be put off.

--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -759,8 +759,6 @@ int __init acpi_boot_init(void)
 
 	acpi_mmcfg_init();
 
-	acpi_iommu_init();
-
 	erst_init();
 
 	acpi_hest_init();
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1666,6 +1666,13 @@ void __init noreturn __start_xen(unsigne
 
     dmi_scan_machine();
 
+    /*
+     * IOMMU-related ACPI table parsing has to happen before APIC probing, for
+     * check_x2apic_preenabled() to be able to observe respective findings, in
+     * particular iommu_intremap having got turned off.
+     */
+    acpi_iommu_init();
+
     generic_apic_probe();
 
     mmio_ro_ranges = rangeset_new(NULL, "r/o mmio ranges",
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -44,14 +44,17 @@ bool __read_mostly iommu_intpost;
 
 void __init acpi_iommu_init(void)
 {
-    int ret;
+    int ret = -ENODEV;
 
     if ( !iommu_enable && !iommu_intremap )
         return;
 
-    ret = acpi_dmar_init();
-    if ( ret == -ENODEV )
-        ret = acpi_ivrs_init();
+    if ( !acpi_disabled )
+    {
+        ret = acpi_dmar_init();
+        if ( ret == -ENODEV )
+            ret = acpi_ivrs_init();
+    }
 
     if ( ret )
     {



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 11:55:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 11:55:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223316.385980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk3Eh-0005q3-Fv; Mon, 08 Nov 2021 11:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223316.385980; Mon, 08 Nov 2021 11:54:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk3Eh-0005pw-Cz; Mon, 08 Nov 2021 11:54:51 +0000
Received: by outflank-mailman (input) for mailman id 223316;
 Mon, 08 Nov 2021 11:54:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d70C=P3=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mk3Eg-0005pX-0E
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 11:54:50 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ab04641f-408a-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 12:54:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab04641f-408a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636372488;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=/znmLqQoiQTabby6FUoeYBnRM19Uj0wN5USDwpr6GPk=;
  b=bjv1/oqRwdkrxFRz2K4ombF2B4dwSERbZBiOm1GwYYCuxp/6yNRpXp7l
   ROWBvpH+e+W+VMMRul31r6yYtFBCm/6cIQrjQbA2mma8o6MdPeWJx8mWJ
   COGRPRksFLfhjNBP6AHoDp13AZGvFUmd7nxRWjD9b2arMWlHQC4/l+ug0
   c=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: WFb/6hKgfGKpTOSN7ArkPDRUqdK5Z1o/pR0lgBXnKrDEGhKq1JLaQyCPo2v0j5gS7xcybbtOEU
 GUL9+ME1qUziv2gaFQnctJneUqGQ0ffhfxMBk8ls1bHu8yzJO8jo/Euntvt1Fu66yH6jcMyjtQ
 XBImXGVPnVX5sHeM8x6whedCrIMhvW1ZOXLGNPrSWA7mwcP+RG/2sHy38kpwjJv+QaC9Nnxr2w
 TmoZWoTEsbZRpIM+eVlnKOBpPfP6+Crj9LBlIpL0hnpTKIsUyiaouX7on9dVVRD5VC2+xGH91b
 VVhZnCCtOAej6l9fS9C/6XAN
X-SBRS: 5.1
X-MesageID: 56827957
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:x8KGCq6kjkNXPJCEzyPRWwxRtM3AchMFZxGqfqrLsTDasY5as4F+v
 jAbCGyOPayDNDejet9zbYS29UlS7MPRy9JiSQA9/3hkHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2t4w2LBVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z0
 u9OpMKPGDUTALTjgd46fzd1HiRHMvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALNs7kMZlZonh95TrYEewnUdbIRKCiCdpwgWlg3J8fQKm2i
 8wxeD4/VDXwPSB1Z3hPCY85nMqipH77SmgNwL6SjfVuuDWCpOBr65DsL9j9atGMXd9SnEuTu
 iTB5WuRKgkTKdi32TeDtHW2iYfngifTSI8UUrqi+ZZCglee22gSAx0+TkagrL+yjUvWc8JSL
 QkY9zQjqYA29Ve3VZ/tUhugunmGsxUAHd1KHIUHBBqlk/SOpVzDXy5dE2AHOIdOWNIKqSICz
 GWKjo3WVA5VjqS6UEi62pm5oDaLNn1ARYMdXhMsQQwA6tjlhYg8iBPTU9pueJKIYs3J9SLYm
 G7T8nVn71kHpYtSjvjgowib6965jsGRFlZd2+nBYo6yAuqVjqaBbpfg11XU5O0owG2xHgjY5
 yhsdyRzAYkz4XCxeM6lHb1l8FKBva/t3NjgbblHRchJythV0yT/Fb28GRknTKuTDu4KeCXyf
 GjYsh5L6ZlYMROCNPEsPdnoUp12kfi+SbwJs8w4ifIUM/BMmPKvpnkyNSZ8IUi0yCDAbp3Ty
 b/EKJ3xXB72+IxszSasRvd17FPY7ntW+I8nfriil07P+ePHPBa9EO5ZWHPTPrFRxP7V+239r
 ocAX/ZmPj0CCYUSlAGMqtVNRb3LRFBmba3LRzt/LLfbc1U3RDF4YxITqJt4E7FYc21uvr6g1
 lm2W1NCyUq5gnvCKA6QbWtkZq+pVpF6xU/X9wR3Vbpx83R8M4up8okFcJ47Iesu+OB5lKYmR
 PgZYcSQRP9IT22fqTgaaJD8qq1kdQiq2l3Sb3b0PmBncs4yXRHN9//lYhDrqHsEAB2ouJZsu
 LanzA7aH8YOHlwwEMbMZfuz5FqtpnxByvlqVk7FL4ALKkXh+YRnMQLrifozL51eIBnP3GLCh
 Q2XHQ0Zta/GpIpsqIvFgqWNroGIFepiHxUFQzmHvOjubSSDpzit245NVuqMbAvxbmKs9fXwf
 /hRwtH9LOYDwARAvb1jHus51qk5/dbu+eNXl1w2AHXRYl23Ibp8OX3aj9JXv6hAy7IF6wu7X
 kWDpotTNbmTYZ63FVcQIEwub/iZ1OFSkT7XtKxnLEL/7S5x3byGTUQNYEXc1H0DdON4YNE/3
 OMsmM8K8Aju2BMlP+GPgj1Q62nRfGcLVL8qt81CDYLm4ubxJoquvXAI5vfK3ayy
IronPort-HdrOrdr: A9a23:EJRPSam9YsGPlMjiLePg35LMq2rpDfO2imdD5ihNYBxZY6Wkfp
 +V88jzhCWZtN9OYhwdcLC7WZVpQRvnhPlICK0qTM2ftW7dyRaVxeBZnPDfKljbdREWmdQtt5
 uIH5IObeEYSGIK8foSgzPIYurIouP3iZxA7N22pxwGLXAIGtFdBkVCe36m+yVNNXd77PECZf
 yhD6R81l6dkSN9VLXFOpBJZZmIm/T70LbdJTIWDR8u7weDyRuu9b7BChCdmjMTSSlGz7sO+X
 XM11WR3NTuj9iLjjvnk0PD5ZVfn9XsjvNFGcy3k8AQbhHhkByhaohNU6CL+Bo1vOaswlA3l8
 SkmWZsA+1Dr1fqOk2lqxrk3AftlB4o9n/Z0FedxUDupMToLQhKQvZptMZ8SF/0+kAgtNZz3O
 ZgxGSCradaChvGgWDU+8XIfwsCrDv0nVMS1cooy1BPW4oXb7Fc6aYF+llOLZsGFCXmrKg6De
 hVCt3G7vo+SyLVU5nghBgt/DWQZAVwIv/fKXJy//B9kgIm00yR9nFohPD2xRw7hdYAo5ot3Z
 WzDk0nrsAIciYsV9MOOA42e7rBNoX8e2O+DIusGyWTKEgmAQOEl3el2sR/2AmVEKZ4uKfa3q
 6xFm9liQ==
X-IronPort-AV: E=Sophos;i="5.87,218,1631592000"; 
   d="scan'208";a="56827957"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=glUjEAOe+SEZPYlmjZIke40fIZHeCiku0GuQA8lu27wvI/ll42Kp/chBJINKCBO1Cw9c3rQgKyGP15lrSgE0/dt4RKK2xZOeb24ch8+Nn2e65nQC4l2dFpyqjEjmAArPhXVZhGsIk+Cyyv/4+tApUjfK0xItvRzWS5udU+wNm4x8ROHhUPuW9MFqNDwRBlob9XP+v02i1PEFTiNCDD39ekSYt96RK8gqtIL4Z2OL3pUxPP6x2dUoayKTLiu+fFOn4KNWPI0pgFt2GC3eTQ+r4XlaRUQNkaqHmil6sbCvuGeD91R43JFStPufB+4LxXc/KkugdSMQDEUflHSwHVOu2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gvwTWBO78gYjePkOz6Qet8Iqr9ShlnVZ5B/L6m9IocA=;
 b=nCazKOwCBwkZaZrsCEEIKDG/Ye3mwZTvPeFDBk2p4HYnYau+Qnpp2FPzWyBmGvi7nRHRxmrNomvDKIXC+jzhQrKf0yv5H9YcwfNiq2dFXq1cBC5BtGCoeG4lli9z9bZqK1Qs5hivD0+WBWMoJ2Z0pdnzMjFLZfY995iQHpf6g7/mbNvMXWlKmRXbrtN1hptes5NX9NfT4u0ieVMJAyeHOBQmr93uP5ppBcovll12x3n/OjStNodxcVl7/s6o0GPrfJYCPTaD6T0DefL0Zmi0yqD1Bx2OUthG8K9o/9OEpzpDlFKI/R8umKZ9QXJw5AF8KJYM+Cl/4pMC4uBojdrZ9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gvwTWBO78gYjePkOz6Qet8Iqr9ShlnVZ5B/L6m9IocA=;
 b=OAqvTxKNTAZxZtz4W9j5E9+nY8jEcyA148fLJaVPW+zEdtXQBXBCx84AbQKbDLU3YFul/whbCdW8QmHWxoeUC0Y3BWLL2z/mulbBYD4pR53bh25KEVWzqsSmWxUF5Q2+55RXDz/jqN8VRRFh/nb/scfbVRdG/ghKdvCsi5jcUP8=
Date: Mon, 8 Nov 2021 12:54:36 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v2.1 1/6][4.16?] x86/x2APIC: defer probe until after
 IOMMU ACPI table parsing
Message-ID: <YYkP/CHNz7bK466i@Air-de-Roger>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <0c006378-964b-3e48-4fe0-4df88e3131e5@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0c006378-964b-3e48-4fe0-4df88e3131e5@suse.com>
X-ClientProxiedBy: MR2P264CA0168.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::31) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7e23d4b9-18e3-425e-b04c-08d9a2ae8c8b
X-MS-TrafficTypeDiagnostic: DM5PR03MB2633:
X-Microsoft-Antispam-PRVS: <DM5PR03MB2633D3AE29E2DD85F148E0EB8F919@DM5PR03MB2633.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2150;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: WKqPyxU1sQi1t2wEm20xPnZLW8lJ30PW9VUQybTs9k0QwmZHMeKrKelDvK/8PYFMYQy4yAB5RKNqKZQ7dpGlJYd/xVZeN5bATochKpulYTD4v/ALuXBaeMKlGGERSWZiJhzHtj3s3JOmT7Y4p+DigpsKp+0H0g16pVM7d4X4dsUL2vHrDJiZtuCl7ek+RxY95884JGUbH59VGcLeOGurCA2GmNvYekExf5QB7cO1w/ul9piQBBz294QKSoUkS9JBcotKb4nciR9ZGSqoa1SNO6TA67B9jnNt02c1wMeC5BTuACPEzFn+xs3gfjMrWknu9Ngsp7tbmHzgsuKReeuRXyVC9Wy1KS8ITk8tmsJXkpLMbtPwNzKKkkUDyTmoDL4g+9RLXxE17pkpFSzIns+gf8DCRkjlrs5tSKaduwQX9B8/RtVmFS+f45hvLqQC2vREFlUIUgSnzXxtyAyIBJnrK++3T7Um1ONe8A9J930X5T//mFoaEZj5lHZrxio7SZbndQpNbJOe9PUyWYOHCdtjcgqB0jyAzHXQ9xthriDBdQKwNI4L8emExEZPfBE71i0cnfsSlesQs3I2l30mnCfKv5MJb8YyuBkYI44BBNr2ooxWn1LtVQiGOr/2O3t6Zg2z43weFljqYdVWD6nnnTQdTA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(316002)(54906003)(2906002)(6486002)(8676002)(956004)(26005)(6916009)(66946007)(9686003)(66476007)(5660300002)(186003)(33716001)(38100700002)(8936002)(86362001)(66556008)(82960400001)(4326008)(85182001)(83380400001)(6666004)(508600001)(6496006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VUVXb1NjT1FScUhlRlRSU3JRQS9DaGNVNkh2bUxtalE4WUhTWGVmSkVPVnBw?=
 =?utf-8?B?a2Fnb3hFcVl4SVNjaTN3Zk9xTlZHdHUwZWVTZkZNaVl2VFZlc215eEVOVFRa?=
 =?utf-8?B?ZFNhdXc0K1h4c09MWTdPdFVNbWtjc0cvdHpQMTlVemRVQyt5MWh2WWZ6ZWpj?=
 =?utf-8?B?MmlIcmkyQlBPTGdlMWdpMy9TdjRLb3JTeDVsV3hCajJoRlp1RS9EY2lIVE4z?=
 =?utf-8?B?eXAwMHRUanlvNWNKMVorMG9RTTJCemtYZ1V1Mmp3M1o0MUw0RG1oZklkcW15?=
 =?utf-8?B?S2NQVnZJbG1NRnc1MGlBOVBmQ1V2RTB3djZlUGZpUktqblJJRDgwbnk0RC92?=
 =?utf-8?B?VnVMU2xwZlJWZmd2RnFJNkY0MEcwSXV1eW9rTWFUVS9CZytlM3RxN2k1ZWcw?=
 =?utf-8?B?WCtkQ25aWGd1TlJMVzZ3OEF4dGlEY0pXUkt6R0ZHa3FDL2E5cDJFSGpzK2hS?=
 =?utf-8?B?Z1V3OWlrL0VNaEV3dlZDVWY3VmprTEFERkUzYkRjTFJjNjh4TDBKamlaOHZV?=
 =?utf-8?B?QXBwTm54Q3MwenliR2tpbWdnbW90MlpXdGNuMnpQVmhLSC9MU3pBYXhlMEhk?=
 =?utf-8?B?SkNSWWRuRzM2SzFnUURnbkJBanlad2dQSUw2bW1VdWFsdi9PSk9vL1c1YmhL?=
 =?utf-8?B?WmdqZzRUajF2RURKVldmcWFBSk1ZWGNtOEx1aStBdHVsUjNqM3NRSHloaVNp?=
 =?utf-8?B?VndueDRXM3BoT090cHhhdWxLTDNCdWxHQmhyMDhpU2JST2tNZHpnRkhuN1l3?=
 =?utf-8?B?clVMNWZUcEp4TlRTRlJPcFdZTkludzhzVHV1Mks2aEJWUm1GWk12KzMrSHhm?=
 =?utf-8?B?TnBIZFBZR0Z2S0NPSUxCeEZKV0k2TWtleTZkY2ZxSXIxMGlpbGNGZGdvNjM0?=
 =?utf-8?B?ZFdRV3JlcExsZHFJSmJ2cTVaNThmVHBaUDhOb1NzWUxYL1I5QW1EeVU4UVNu?=
 =?utf-8?B?eDFXQ011dE9FdmRCQTl5a3pEZmkzb2J6QUZpaHFhek1UeTl1OTFYRkpCdXVj?=
 =?utf-8?B?YkdyeWFxS05nYUZ1TTJOOVFPeXhEcHNrTkluU1c1RmlVaGF3YmJ0SzI3ZVA4?=
 =?utf-8?B?MXJQVllXNlZwdFkvYnltSGdvMW5WdFJkdE5FSkgzWXYwcngrV1lKN0xTMSto?=
 =?utf-8?B?eEVvcDFidHdwMnFDR3hMWGtCVGR3cVArTCtJa2hmcDB1dk93WTQxL2diOWhQ?=
 =?utf-8?B?QW5TREgxOUdod0txc1FqUWROVHBvVlR2VVNZMzY0U0JMeC9hU1Z4TU1wK2Qw?=
 =?utf-8?B?bWt2VVBVVndCTkFMUC9vQ24xdDhuS2FrWVVkanQrNk9aY0ppYVMrUm9RVStx?=
 =?utf-8?B?WFJOVm5wNUk3VGdrUkhKVTQrS3BEczMwdnRYTkJpV3ZjbTRtakd3Ti9mb0tF?=
 =?utf-8?B?K0IrQ09NSXVZQTNaQ3VQUmh6MEZBUWtKbDJMeTJtdGdnL3NRaHZDUGVPaW1p?=
 =?utf-8?B?ODliQUNqL2g5ZFgzR2pwYUxkaEZMNnY2VnVBR2hjWnhYOUpaL0pUcjZtN3FC?=
 =?utf-8?B?VVhZTXR4TUI5MW43SHViRzJTb2VESTFFOEpiVHFSbjNxRHBacGdJZi9qZGVM?=
 =?utf-8?B?SEdPc2xSWTVqQmpEZEs1ekxiN25mM0ZQYW5UOHpBTnpZNlZ3c2l4bXFwdENG?=
 =?utf-8?B?NzF4OE1wTzRSVkhiQ0JvODBRQnlDU1RMOUEwdGFMbnFERGRGaUZQSzhpV2NC?=
 =?utf-8?B?TjhEalFTYW9wbFl4cCtCbm1mMzNLU1pFTkN0czBpZHQ0dXNibHVMZWVuZEoy?=
 =?utf-8?B?bU4xTzhUd3k1M080cjBCcGV0RkxuQm5HME8rYVZoaHlOekdXc0l2THMrWnZu?=
 =?utf-8?B?K2tNd2RTMGRybnpQRGw5UlJiQjVBbTZqcUd4RldKTERrUWN5VDVnYjdMaTVh?=
 =?utf-8?B?bW5BYjJaamVaYlgzekxaRm9neFJKMGRKTk00bG5pKzRHYkR5czVoOG5ZSWo4?=
 =?utf-8?B?K3RZNmZmT2ZQTGc4eTNzQmVWSy9UYXhEK29ON2RabU9pK0xxZmFFQXhjWWoz?=
 =?utf-8?B?WWdxUWpQTFZJeVorWWR1eEs2MkcvVkRhTWNNcVUxZklKdHREREh4TXdScHVp?=
 =?utf-8?B?bCt1TkVJczhKdVJLOVh4L2hRa2lzSnhxejhvVFRMRVRoQjZGRjVTUkFmdzZw?=
 =?utf-8?B?QVcyd3JmZ1ZMVUk1bjUzcXE3djhZREdrTlNBRVQ1UEZjQWhqdFNHN1luWGhU?=
 =?utf-8?Q?9lqr12i46zD4+9SlQoYgzcM=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e23d4b9-18e3-425e-b04c-08d9a2ae8c8b
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 11:54:41.7601
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: W97yJajgMel+gVNmlZwX0AlwuGUMPbx70I+J/WgMSxLxDmoefMc9PgzH7YnUKufAKZNjspJM7dBncAaq2s+eZw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2633
X-OriginatorOrg: citrix.com

On Mon, Nov 08, 2021 at 12:40:59PM +0100, Jan Beulich wrote:
> While commit 46c4061cd2bf ("x86/IOMMU: mark IOMMU / intremap not in use
> when ACPI tables are missing") deals with apic_x2apic_probe() as called
> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
> affected: The call needs to occur after acpi_iommu_init(), such that
> iommu_intremap getting disabled there can be properly taken into account
> by apic_x2apic_probe().
> 
> Note that, for the time being (further cleanup patches following),
> reversing the order of the calls to generic_apic_probe() and
> acpi_boot_init() is not an option:
> - acpi_process_madt() calls clustered_apic_check() and hence relies on
>   genapic to have got filled before,
> - generic_bigsmp_probe() (called from acpi_process_madt()) needs to
>   occur after generic_apic_probe(),
> - acpi_parse_madt() (called from acpi_process_madt()) calls
>   acpi_madt_oem_check(), which wants to be after generic_apic_probe().
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 12:46:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 12:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223331.385992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk42L-0002kK-IH; Mon, 08 Nov 2021 12:46:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223331.385992; Mon, 08 Nov 2021 12:46:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk42L-0002kD-Eq; Mon, 08 Nov 2021 12:46:09 +0000
Received: by outflank-mailman (input) for mailman id 223331;
 Mon, 08 Nov 2021 12:46:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk42K-0002k3-3g; Mon, 08 Nov 2021 12:46:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk42J-00047Z-SD; Mon, 08 Nov 2021 12:46:07 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk42J-0004Nv-Hh; Mon, 08 Nov 2021 12:46:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mk42J-0006B6-HB; Mon, 08 Nov 2021 12:46:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=x8qCq+FcKxl0A5k1brA148uPZEOCmk0Ac1/lzW7H+2w=; b=Ll/jrKnyVbxwen+jNjl5V73jci
	S8iKWpjggFrJHj4kQ64lfLE5MifLz1BdnoGt6dyScFtRCGPbbyeAtB3ZWaLCeukZHlehAyMQFW+Ih
	tMpP5gVCKh9w0eDmqDID4N0BC1WNZzYsAUUX4gd96dMx8I4v9z5QbPqE4DA9AjOOEE+E=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166080-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166080: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-arm64-arm64-xl-credit2:xen-boot:fail:heisenbug
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
X-Osstest-Versions-That:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Nov 2021 12:46:07 +0000

flight 166080 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166080/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-xl-credit2   8 xen-boot                   fail pass in 166073

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl-credit2 15 migrate-support-check fail in 166073 never pass
 test-arm64-arm64-xl-credit2 16 saverestore-support-check fail in 166073 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166073
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166073
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166073
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166073
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166073
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166073
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166073
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166073
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166073
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166073
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166073
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166073
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b
baseline version:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b

Last test of basis   166080  2021-11-08 01:52:55 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 13:47:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 13:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223344.386006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk4zN-0000V7-90; Mon, 08 Nov 2021 13:47:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223344.386006; Mon, 08 Nov 2021 13:47:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk4zN-0000V0-5a; Mon, 08 Nov 2021 13:47:09 +0000
Received: by outflank-mailman (input) for mailman id 223344;
 Mon, 08 Nov 2021 13:47:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NS6W=P3=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mk4zL-0000Uu-Nj
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 13:47:07 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c34d37f-409a-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 14:47:06 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 5C1B42191A;
 Mon,  8 Nov 2021 13:47:05 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 1156113BA7;
 Mon,  8 Nov 2021 13:47:05 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id BQW5AlkqiWGVDwAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 08 Nov 2021 13:47:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c34d37f-409a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636379225; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=z3meriKKHOe/NcNbVgdqycptoFmuUzuN3QHOr6U4gSk=;
	b=SEt58bsbfZfHCmi8r5DUpFGpdwBWQX9vKVzS2W1xAVX8FeBC0r5ZkgqO/g6fSUR3R+V9WQ
	1wvn6EWE7Bvs8d9xrg2biajJLX6SWJrvRuZx5djeylJP0gz/RKZlAGU6PAMMdrnZ/ESLbg
	zfR4fVEcbp7zw9q5j+yCmUyRqXMppjw=
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 xen-devel@lists.xenproject.org
References: <20211101152015.28488-1-jgross@suse.com>
 <ddde3565-de0f-f025-f762-9d3e08a5c2e5@citrix.com>
 <17fdb6e6-382e-81b3-2f11-3e520e1c7ef8@suse.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v2 00/15] xen: drop hypercall function tables
Message-ID: <de5cbf31-f36d-d524-a63c-226802aba49a@suse.com>
Date: Mon, 8 Nov 2021 14:47:04 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <17fdb6e6-382e-81b3-2f11-3e520e1c7ef8@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="W2Os093DEcpO8GB26mzfjbBXq8JYQbHrD"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--W2Os093DEcpO8GB26mzfjbBXq8JYQbHrD
Content-Type: multipart/mixed; boundary="SaKJpZHYlYUFBcj19VssUOwm79JFxAG1d";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Ian Jackson <iwj@xenproject.org>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 xen-devel@lists.xenproject.org
Message-ID: <de5cbf31-f36d-d524-a63c-226802aba49a@suse.com>
Subject: Re: [PATCH v2 00/15] xen: drop hypercall function tables
References: <20211101152015.28488-1-jgross@suse.com>
 <ddde3565-de0f-f025-f762-9d3e08a5c2e5@citrix.com>
 <17fdb6e6-382e-81b3-2f11-3e520e1c7ef8@suse.com>
In-Reply-To: <17fdb6e6-382e-81b3-2f11-3e520e1c7ef8@suse.com>

--SaKJpZHYlYUFBcj19VssUOwm79JFxAG1d
Content-Type: multipart/mixed;
 boundary="------------B7AF15ABCAD9DD542748056A"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------B7AF15ABCAD9DD542748056A
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 08.11.21 09:36, Jan Beulich wrote:
> On 05.11.2021 15:18, Andrew Cooper wrote:
>> On 01/11/2021 15:20, Juergen Gross wrote:
>>> In order to avoid indirect function calls on the hypercall path as
>>> much as possible this series is removing the hypercall function table=
s
>>> and is replacing the hypercall handler calls via the function array
>>> by automatically generated call macros.
>>>
>>> Another by-product of generating the call macros is the automatic
>>> generating of the hypercall handler prototypes from the same data bas=
e
>>> which is used to generate the macros.
>>>
>>> This has the additional advantage of using type safe calls of the
>>> handlers and to ensure related handler (e.g. PV and HVM ones) share
>>> the same prototypes.
>>>
>>> A very brief performance test (parallel build of the Xen hypervisor
>>> in a 6 vcpu guest) showed a very slim improvement (less than 1%) of
>>> the performance with the patches applied. The test was performed usin=
g
>>> a PV and a PVH guest.
>>>
>>> Changes in V2:
>>> - new patches 6, 14, 15
>>> - patch 7: support hypercall priorities for faster code
>>> - comments addressed
>>>
>>> Juergen Gross (15):
>>>    xen: limit number of hypercall parameters to 5
>>>    xen: move do_vcpu_op() to arch specific code
>>>    xen: harmonize return types of hypercall handlers
>>>    xen/x86: modify hvm_memory_op() prototype
>>>    xen: don't include asm/hypercall.h from C sources
>>>    add .gitignore entries for *.[is] below xen
>>>    xen: generate hypercall interface related code
>>>    xen: use generated prototypes for hypercall handlers
>>>    x86/pv-shim: don't modify hypercall table
>>>    xen/x86: don't use hypercall table for calling compat hypercalls
>>>    xen/x86: call hypercall handlers via generated macro
>>>    xen/arm: call hypercall handlers via generated macro
>>>    xen/x86: add hypercall performance counters for hvm, correct pv
>>>    xen: drop calls_to_multicall performance counter
>>>    tools/xenperf: update hypercall names
>>
>> https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/1752237172
>>
>> Something here causes
>>
>> hypercall.c: In function 'hvm_hypercall':
>> hypercall.c:174:23: error: unused variable 'r8' [-Werror=3Dunused-vari=
able]
>>  =C2=A0 174 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned=
 long r8 =3D regs->r8;
>>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 ^~
>> hypercall.c:190:22: error: unused variable 'edi' [-Werror=3Dunused-var=
iable]
>>  =C2=A0 190 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned=
 int edi =3D regs->edi;
>>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 ^~~
>> cc1: all warnings being treated as errors
>>
>> I suspect it will be "call hypercall handlers via generated macro", bu=
t
>> I haven't investigated further.
>=20
> I suspect that's a randconfig build with !HYPFS + !ARGO. The hypfs and
> argo hypercalls are the only ones with 5 parameters that HVM wires up.
> A similar issue ought to exist in PV hypercall handling though, as the
> compat form of update_va_mapping_otherdomain is the only other one
> taking 5 arguments.
>=20
> As to possible solutions - besides maybe adding (void)r8 to the -ENOSYS=

> path, I was wondering anyway in how far the local variables are still
> warranted to retain.

I think dropping those local variables is the easiest solution. And I
think this applies to the PV variant, too.


Juergen

--------------B7AF15ABCAD9DD542748056A
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------B7AF15ABCAD9DD542748056A--

--SaKJpZHYlYUFBcj19VssUOwm79JFxAG1d--

--W2Os093DEcpO8GB26mzfjbBXq8JYQbHrD
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGJKlgFAwAAAAAACgkQsN6d1ii/Ey9C
+Af/WvB2aDxCPFCxdo44gwjeukCcb4geA/qRNDmOknuVk+HQox9iIdAgaqW/tYJvD6IgJYYJfma3
mF5flR8aJhTOQi0Lt9g8T6lzzD2Zv4nmWXbL56wKQKIVqrxxqhP3AnMFk4V3REU3z2JHyRMW9ckP
GCe7RjnAtAO+8LPkQ5JNrYM9jsx9DIoU+S9A4ScjZ6dAkbLuIadjKLt5NpZ1PJNkh87+VtyhfXUt
imk61Y33QwrezDMsuz9fOKOd8Y15jhuWvoA8NMCR7alBG2jYmknaCIUWQeQkH5XsY7ITIXBbthRe
SPrZahPsQFAELKkT04ewMn1N4/iB3WJNkOoScwO8gg==
=L1rX
-----END PGP SIGNATURE-----

--W2Os093DEcpO8GB26mzfjbBXq8JYQbHrD--


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:07:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:07:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223353.386016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5Iu-00032P-2U; Mon, 08 Nov 2021 14:07:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223353.386016; Mon, 08 Nov 2021 14:07:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5It-00032I-VX; Mon, 08 Nov 2021 14:07:19 +0000
Received: by outflank-mailman (input) for mailman id 223353;
 Mon, 08 Nov 2021 14:07:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tVlX=P3=gmail.com=geert.uytterhoeven@srs-se1.protection.inumbo.net>)
 id 1mk5Is-00032C-Fv
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:07:18 +0000
Received: from mail-vk1-f171.google.com (mail-vk1-f171.google.com
 [209.85.221.171]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2dde7282-409d-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 15:07:17 +0100 (CET)
Received: by mail-vk1-f171.google.com with SMTP id bc10so8260196vkb.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Nov 2021 06:07:17 -0800 (PST)
Received: from mail-vk1-f175.google.com (mail-vk1-f175.google.com.
 [209.85.221.175])
 by smtp.gmail.com with ESMTPSA id f11sm976215vkk.50.2021.11.08.06.07.14
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Nov 2021 06:07:14 -0800 (PST)
Received: by mail-vk1-f175.google.com with SMTP id t127so8233052vke.13
 for <xen-devel@lists.xenproject.org>; Mon, 08 Nov 2021 06:07:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2dde7282-409d-11ec-a9d2-d9f7a1cc8784
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc:content-transfer-encoding;
        bh=srssYsTsVb5ivMDmTAt6Y7lXgP/lHHGiJX97jzZpFII=;
        b=GzS14cOoSvkQgT+7oyq3SzolYQ93C5ToR72Pk2OlU7XPjSvlP5nYnHbvk/SrHLKZ8O
         TA6f/wsj76sCk1/WrDmV9ZRSs6SqgnNMJgANshHtz1n98qGe2WCtrYOIko3oBNo3Z3bb
         Op9YCyfiAjn7XsLd4dxoJ3nxuMLhIZ7NJ2wNBhECZ7PlBMOLdvYFckYmL9Y/6/ha4oHc
         2HWvXMv1S7Z8o8v57EIVYdK0h5YHbU+FAVPKrgIr8E5otpgB5H1JwAMBYjPcT7VtMH27
         YVg5M8YSIpaSkFaWGIOsLceI0d9sHl4RIZav10Rjq6Pz1VUst4T4OeXD2H/y/Nk12VTb
         Gd5Q==
X-Gm-Message-State: AOAM531v2LOi1Qs8vN/CYXn1PI9DJ+szBGn7d6t6kMh05ibbKiQSLYuy
	BKHoJtdxw3YKZnDfPCfoQ5Ln20lXWv/qolZz
X-Google-Smtp-Source: ABdhPJzOmeNaSuceIBbZaZpv/a1siIsbwJIOdxhcxFSukyfj4Xqae45wnivUf7l21tGcWGdHL9REZQ==
X-Received: by 2002:a05:6122:548:: with SMTP id y8mr13363304vko.24.1636380435863;
        Mon, 08 Nov 2021 06:07:15 -0800 (PST)
X-Received: by 2002:a05:6122:1350:: with SMTP id f16mr21288847vkp.26.1636380434409;
 Mon, 08 Nov 2021 06:07:14 -0800 (PST)
MIME-Version: 1.0
References: <20211108101157.15189-1-bp@alien8.de> <20211108101157.15189-43-bp@alien8.de>
In-Reply-To: <20211108101157.15189-43-bp@alien8.de>
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Mon, 8 Nov 2021 15:07:03 +0100
X-Gmail-Original-Message-ID: <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com>
Message-ID: <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com>
Subject: Re: [PATCH v0 42/42] notifier: Return an error when callback is
 already registered
To: Borislav Petkov <bp@alien8.de>
Cc: LKML <linux-kernel@vger.kernel.org>, Thomas Gleixner <tglx@linutronix.de>, 
	Arnd Bergmann <arnd@arndb.de>, Ayush Sawal <ayush.sawal@chelsio.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Rohit Maheshwari <rohitm@chelsio.com>, 
	Steven Rostedt <rostedt@goodmis.org>, Vinay Kumar Yadav <vinay.yadav@chelsio.com>, 
	ALSA Development Mailing List <alsa-devel@alsa-project.org>, 
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>, 
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>, intel-gvt-dev@lists.freedesktop.org, 
	alpha <linux-alpha@vger.kernel.org>, 
	Linux ARM <linux-arm-kernel@lists.infradead.org>, 
	linux-clk <linux-clk@vger.kernel.org>, 
	Linux Crypto Mailing List <linux-crypto@vger.kernel.org>, linux-edac@vger.kernel.org, 
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>, linux-hyperv@vger.kernel.org, 
	linux-iio@vger.kernel.org, linux-leds <linux-leds@vger.kernel.org>, 
	"open list:BROADCOM NVRAM DRIVER" <linux-mips@vger.kernel.org>, Parisc List <linux-parisc@vger.kernel.org>, 
	Linux PM list <linux-pm@vger.kernel.org>, linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, 
	"open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM" <linux-remoteproc@vger.kernel.org>, 
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>, linux-s390 <linux-s390@vger.kernel.org>, 
	scsi <linux-scsi@vger.kernel.org>, Linux-sh list <linux-sh@vger.kernel.org>, 
	linux-staging@lists.linux.dev, linux-tegra <linux-tegra@vger.kernel.org>, 
	linux-um <linux-um@lists.infradead.org>, USB list <linux-usb@vger.kernel.org>, 
	"open list:TENSILICA XTENSA PORT (xtensa)" <linux-xtensa@linux-xtensa.org>, netdev <netdev@vger.kernel.org>, 
	openipmi-developer@lists.sourceforge.net, rcu@vger.kernel.org, 
	sparclinux <sparclinux@vger.kernel.org>, "the arch/x86 maintainers" <x86@kernel.org>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Borislav,

On Mon, Nov 8, 2021 at 11:13 AM Borislav Petkov <bp@alien8.de> wrote:
> From: Borislav Petkov <bp@suse.de>
>
> The notifier registration routine doesn't return a proper error value
> when a callback has already been registered, leading people to track
> whether that registration has happened at the call site:
>
>   https://lore.kernel.org/amd-gfx/20210512013058.6827-1-mukul.joshi@amd.c=
om/
>
> Which is unnecessary.
>
> Return -EEXIST to signal that case so that callers can act accordingly.
> Enforce callers to check the return value, leading to loud screaming
> during build:
>
>   arch/x86/kernel/cpu/mce/core.c: In function =E2=80=98mce_register_decod=
e_chain=E2=80=99:
>   arch/x86/kernel/cpu/mce/core.c:167:2: error: ignoring return value of \
>    =E2=80=98blocking_notifier_chain_register=E2=80=99, declared with attr=
ibute warn_unused_result [-Werror=3Dunused-result]
>     blocking_notifier_chain_register(&x86_mce_decoder_chain, nb);
>   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Drop the WARN too, while at it.
>
> Suggested-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Borislav Petkov <bp@suse.de>

Thanks for your patch!

> --- a/include/linux/notifier.h
> +++ b/include/linux/notifier.h
> @@ -141,13 +141,13 @@ extern void srcu_init_notifier_head(struct srcu_not=
ifier_head *nh);
>
>  #ifdef __KERNEL__
>
> -extern int atomic_notifier_chain_register(struct atomic_notifier_head *n=
h,
> +extern int __must_check atomic_notifier_chain_register(struct atomic_not=
ifier_head *nh,
>                 struct notifier_block *nb);
> -extern int blocking_notifier_chain_register(struct blocking_notifier_hea=
d *nh,
> +extern int __must_check blocking_notifier_chain_register(struct blocking=
_notifier_head *nh,
>                 struct notifier_block *nb);
> -extern int raw_notifier_chain_register(struct raw_notifier_head *nh,
> +extern int __must_check raw_notifier_chain_register(struct raw_notifier_=
head *nh,
>                 struct notifier_block *nb);
> -extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
> +extern int __must_check srcu_notifier_chain_register(struct srcu_notifie=
r_head *nh,
>                 struct notifier_block *nb);

I think the addition of __must_check is overkill, leading to the
addition of useless error checks and message printing.  Many callers
call this where it cannot fail, and where nothing can be done in the
very unlikely event that the call would ever start to fail.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k=
.org

In personal conversations with technical people, I call myself a hacker. Bu=
t
when I'm talking to journalists I just say "programmer" or something like t=
hat.
                                -- Linus Torvalds


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:17:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:17:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223360.386027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5SW-0004X4-0y; Mon, 08 Nov 2021 14:17:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223360.386027; Mon, 08 Nov 2021 14:17:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5SV-0004Wx-Tz; Mon, 08 Nov 2021 14:17:15 +0000
Received: by outflank-mailman (input) for mailman id 223360;
 Mon, 08 Nov 2021 14:17:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ivRQ=P3=netrider.rowland.org=stern+618c59fc@srs-se1.protection.inumbo.net>)
 id 1mk5SU-0004Wr-7R
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:17:14 +0000
Received: from netrider.rowland.org (netrider.rowland.org [192.131.102.5])
 by se1-gles-flk1.inumbo.com (Halon) with SMTP
 id 8f7348cd-409e-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 15:17:11 +0100 (CET)
Received: (qmail 1667203 invoked by uid 1000); 8 Nov 2021 09:17:03 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f7348cd-409e-11ec-a9d2-d9f7a1cc8784
Date: Mon, 8 Nov 2021 09:17:03 -0500
From: Alan Stern <stern@rowland.harvard.edu>
To: Borislav Petkov <bp@alien8.de>
Cc: LKML <linux-kernel@vger.kernel.org>, Arnd Bergmann <arnd@arndb.de>,
  Ayush Sawal <ayush.sawal@chelsio.com>,
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
  Rohit Maheshwari <rohitm@chelsio.com>, Steven Rostedt <rostedt@goodmis.org>,
  Vinay Kumar Yadav <vinay.yadav@chelsio.com>, alsa-devel@alsa-project.org,
  bcm-kernel-feedback-list@broadcom.com, intel-gfx@lists.freedesktop.org,
  intel-gvt-dev@lists.freedesktop.org, linux-alpha@vger.kernel.org,
  linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
  linux-crypto@vger.kernel.org, linux-edac@vger.kernel.org,
  linux-fbdev@vger.kernel.org, linux-hyperv@vger.kernel.org,
  linux-iio@vger.kernel.org, linux-leds@vger.kernel.org,
  linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
  linux-pm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
  linux-remoteproc@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
  linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
  linux-sh@vger.kernel.org, linux-staging@lists.linux.dev,
  linux-tegra@vger.kernel.org, linux-um@lists.infradead.org,
  linux-usb@vger.kernel.org, linux-xtensa@linux-xtensa.org,
  netdev@vger.kernel.org, openipmi-developer@lists.sourceforge.net,
  rcu@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org,
  xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 00/42] notifiers: Return an error when callback is
 already registered
Message-ID: <20211108141703.GB1666297@rowland.harvard.edu>
References: <20211108101157.15189-1-bp@alien8.de>
 <20211108101924.15759-1-bp@alien8.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211108101924.15759-1-bp@alien8.de>
User-Agent: Mutt/1.10.1 (2018-07-13)

On Mon, Nov 08, 2021 at 11:19:24AM +0100, Borislav Petkov wrote:
> From: Borislav Petkov <bp@suse.de>
> 
> Hi all,
> 
> this is a huge patchset for something which is really trivial - it
> changes the notifier registration routines to return an error value
> if a notifier callback is already present on the respective list of
> callbacks. For more details scroll to the last patch.
> 
> Everything before it is converting the callers to check the return value
> of the registration routines and issue a warning, instead of the WARN()
> notifier_chain_register() does now.

What reason is there for moving the check into the callers?  It seems 
like pointless churn.  Why not add the error return code, change the 
WARN to pr_warn, and leave the callers as they are?  Wouldn't that end 
up having exactly the same effect?

For that matter, what sort of remedial action can a caller take if the 
return code is -EEXIST?  Is there any point in forcing callers to check 
the return code if they can't do anything about it?

> Before the last patch has been applied, though, that checking is a
> NOP which would make the application of those patches trivial - every
> maintainer can pick a patch at her/his discretion - only the last one
> enables the build warnings and that one will be queued only after the
> preceding patches have all been merged so that there are no build
> warnings.

Why should there be _any_ build warnings?  The real problem occurs when 
a notifier callback is added twice, not when a caller fails to check the 
return code.  Double-registration is not the sort of thing that can be 
detected at build time.

Alan Stern

> Due to the sheer volume of the patches, I have addressed the respective
> patch and the last one, which enables the warning, with addressees for
> each maintained area so as not to spam people unnecessarily.
> 
> If people prefer I carry some through tip, instead, I'll gladly do so -
> your call.
> 
> And, if you think the warning messages need to be more precise, feel
> free to adjust them before committing.
> 
> Thanks!


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:21:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:21:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223367.386039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5WM-0005sJ-I3; Mon, 08 Nov 2021 14:21:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223367.386039; Mon, 08 Nov 2021 14:21:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5WM-0005sC-Et; Mon, 08 Nov 2021 14:21:14 +0000
Received: by outflank-mailman (input) for mailman id 223367;
 Mon, 08 Nov 2021 14:21:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk5WL-0005s6-OX
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:21:13 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1ed1cc6f-409f-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 15:21:11 +0100 (CET)
Received: from zn.tnic (p200300ec2f33110093973d8dfcf40fd9.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:9397:3d8d:fcf4:fd9])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id D08561EC04E4;
 Mon,  8 Nov 2021 15:21:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ed1cc6f-409f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636381269;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=oWsCJGhsvF17zUFafKKKz1XGvPrCUoTgLb0x72qzY0w=;
	b=DvalVyPWlBMIVGIell7SDhnTX9Q86iHxoTdmXzPxorrW7sqlHpzQzwtFgZEI1KmHXq30Gs
	yOE/y0FWs3djKZaj7cQDtIyWYYD5AKtdhjFE5l3EWLo8DNcP+YE1HL9C5d3kHwZrzRPHP8
	xiS/nYCk2AFbtbv/wLq5RqiIdGlMN38=
Date: Mon, 8 Nov 2021 15:21:04 +0100
From: Borislav Petkov <bp@alien8.de>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>, Arnd Bergmann <arnd@arndb.de>,
	Ayush Sawal <ayush.sawal@chelsio.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rohit Maheshwari <rohitm@chelsio.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
	ALSA Development Mailing List <alsa-devel@alsa-project.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	intel-gvt-dev@lists.freedesktop.org,
	alpha <linux-alpha@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	Linux Crypto Mailing List <linux-crypto@vger.kernel.org>,
	linux-edac@vger.kernel.org,
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	linux-hyperv@vger.kernel.org, linux-iio@vger.kernel.org,
	linux-leds <linux-leds@vger.kernel.org>,
	"open list:BROADCOM NVRAM DRIVER" <linux-mips@vger.kernel.org>,
	Parisc List <linux-parisc@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	"open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM" <linux-remoteproc@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	linux-s390 <linux-s390@vger.kernel.org>,
	scsi <linux-scsi@vger.kernel.org>,
	Linux-sh list <linux-sh@vger.kernel.org>,
	linux-staging@lists.linux.dev,
	linux-tegra <linux-tegra@vger.kernel.org>,
	linux-um <linux-um@lists.infradead.org>,
	USB list <linux-usb@vger.kernel.org>,
	"open list:TENSILICA XTENSA PORT (xtensa)" <linux-xtensa@linux-xtensa.org>,
	netdev <netdev@vger.kernel.org>,
	openipmi-developer@lists.sourceforge.net, rcu@vger.kernel.org,
	sparclinux <sparclinux@vger.kernel.org>,
	the arch/x86 maintainers <x86@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 42/42] notifier: Return an error when callback is
 already registered
Message-ID: <YYkyUEqcsOwQMb1S@zn.tnic>
References: <20211108101157.15189-1-bp@alien8.de>
 <20211108101157.15189-43-bp@alien8.de>
 <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com>

On Mon, Nov 08, 2021 at 03:07:03PM +0100, Geert Uytterhoeven wrote:
> I think the addition of __must_check is overkill, leading to the
> addition of useless error checks and message printing.

See the WARN in notifier_chain_register() - it will already do "message
printing".

> Many callers call this where it cannot fail, and where nothing can
> be done in the very unlikely event that the call would ever start to
> fail.

This is an attempt to remove this WARN() hack in
notifier_chain_register() and have the function return a proper error
value instead of this "Currently always returns zero." which is bad
design.

Some of the registration functions around the tree check that retval and
some don't. So if "it cannot fail" those registration either should not
return a value or callers should check that return value - what we have
now doesn't make a whole lot of sense.

Oh, and then fixing this should avoid stuff like:

+	if (notifier_registered == false) {
+		mce_register_decode_chain(&amdgpu_bad_page_nb);
+		notifier_registered = true;
+	}

from propagating in the code.

The other idea I have is to add another indirection in
notifier_chain_register() which will check the *proper* return value of
a lower level __notifier_chain_register() and then issue that warning.
That would definitely avoid touch so many call sites.

Bottom line is: what we have now needs cleaning up.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:24:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:24:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223374.386050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5Z3-0006VO-0w; Mon, 08 Nov 2021 14:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223374.386050; Mon, 08 Nov 2021 14:24:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5Z2-0006VH-TE; Mon, 08 Nov 2021 14:24:00 +0000
Received: by outflank-mailman (input) for mailman id 223374;
 Mon, 08 Nov 2021 14:24:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d70C=P3=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mk5Z1-0006V9-UW
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:24:00 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 817b5bb1-409f-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 15:23:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 817b5bb1-409f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636381437;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=Iji4T6z2svb/NdahizqHAMB1kHTMa0IsEBVT063TISI=;
  b=LTZMAI5rcKUmku3uasHO6OgajmkTlu/h7c6mdNX2o4PgNcVHzsQnPl91
   THBf6xHQn8ghl1tuQi9lDMTrmx2XIXqS5zp1OK5nWANTlVyxJh4cTUGCf
   iUxxqcvb034x0+FWwWfJhHicfA8Bs7sgAx03C20kMZXvweF5vaO1C48iC
   c=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: cb61RG6maJ/nlqROdZjWA4RsP8R6krg0e2kQeC5uGmXQ+Gj7QC2kAYxSM96bnicbLOiSsqfYT1
 MAvrMA73WJGJP83SKTWmVErf97l1QGicfdt7s/rvYX+ZuFICK7R+tKlFQn3hOCJI0cp3dVHphR
 KBpoDe4W3YEmSLLdbQQRLoZGdKiOBuf6jjn8Dx4YCjHxGKdj7oGxIKxcVHy7iMQ25kZ5oYwctk
 qYbVosezmcwRDJ+RyyIPSu/zBsypprkojkXHmdCJi1zkw64hzZDuCDccdrV5kP7quMbYfO04SC
 yuEXTGbUy/LEPYqdKpa3Ma1g
X-SBRS: 5.1
X-MesageID: 59258297
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:xiyxHqC7Vb6dGBVW/zDlw5YqxClBgxIJ4kV8jS/XYbTApDoi1GcCz
 DQeXzyDP6yKY2WhLt0kO4219U0DuZ6AnNc2QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540UI7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/kQfWh9R/+
 PR38sK6GB90PYDNkqciTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvSQuI8CjWhYasZmHa78a
 fEYcDtWXDfMfwVFJEwsKck3pbL97pX4W2IB8w/EzUYt2EDLxRF1+KjgNpzSYNPibexPgkudk
 UfX8G34Dw8yOcSWzHyO9XfEruXChz/hUYQeUrix7Od3gUa7z3YWThYRUDOTsfS/z0KzRd9bA
 0gV4TY167g/8lSxSdvwVAH+p2SL1jYGUtpNF6sh6QeCyoLd+QPfDW8BJhZ/b9ghuN4zVCYd/
 FaDlNP0BhRiqLSQD3ma89+8rzm/JCwUJm8qfjIfQE0O5NyLiKY3gxHUR9BvCpmciNHvBCrwy
 DCHqis5r7gLhMtN3KK+lXjFnjatq57hXgMzoALNUQqNyQd0Z5WsYYCy3mTK9vZLLIufTV6ps
 WANno6V6+VmJYqWiCWHTeEJHbeoz/WIKjvRhRhoBZZJyti20yf9J8YKumg4fRo3dJZfEdP0X
 KPNkRlju4dXMkuLV+gpadOpVscHzKKjKsuwA5g4ceFySpR2cQaG+gRnakiRw33hnSAQrE0vB
 XuIWZ3yVChHUMyL2BLzHr5AiuFzmkjS0EuKHcijpylLx4Zyc5J8pV0tFFKVJt4046qfyOk+2
 4YObpDao/mzvQCXX8U2zWLxBQ1SRZTYLcqvwyCySgJkClA3cFzN89eLndscl3VNxsy5bNvg8
 HCnQVN/w1Hin3DBIgjiQik9M+20BM8m8S5rY3BE0bOUN58LO9fH0UviX8FvIelPGBJLlKYco
 wY5lzWoXa0UF2WvF8U1Zpjhto1yHClHdirVVxdJlAMXJsY6LySQo4eMVlK2qEEmU3rm3eNj8
 ubI/l6KHvI+q/FKUZ++hASHlAjq4xDwWYtaAiP1HzWkUB+1qNk1enCh15fa4agkcH3++9dT7
 C7PaT8wrujRuY4ltt7PgKGPtYCyFOViWEFdGgHmAXyebEE2J0Kvnt1NVvimZzfYWD+m8amuf
 7wNnfr9LOcGjBBBtI8lS+Rnyqc35t3Oob5Gz1s7QCWXPgrzUr4wcGOb2cRvt7FWwuMLswWBR
 U/SqMJRPq+EOZ25HQdJdhYldOmKydodhiLWsaYuOEz/6SIupOiHXExeMgOikitYKLcpYoopz
 f144Jwd6hCliwpsOdGD13gG+2OJJ30GcqMmqpBFX9O71lt1kglPOMWOBDX37ZeDb8R3HnMre
 jLE1rDfg7l8x1bZdyZhH3b6wucA148FvwpHzQFeKg3RyMbFnPI+wDZY7S8zElZO1hxC3u9+Z
 jprOklyKfnc9jtknpEeDWWlGgUHDxyF4E3hjVAOkTSBHUWvU2XMKkw7OPqMox9Foz4NIGAD8
 eHK0nvhXBbrYNr1j3k7VkNSovD+ScB8q1/Zk8e9EsXZR5Q3bFIJWEN1ibbkf/c/Pf4MuQ==
IronPort-HdrOrdr: A9a23:ijNOaaxz6hbLXM7p7tTYKrPxyOskLtp133Aq2lEZdPULSKOlfp
 GV8MjziyWYtN9wYhAdcdDpAtjmfZr5z+8O3WBxB8bYYOCCggWVxe5ZnOnfKlHbakjDH6tmpN
 pdmstFeaPN5DpB/L/HCWCDer5Kqrn3k9HYuQ6d9QYUcegDUdAe0+4TMHf8LqQZfngjOXJvf6
 Dsmvav6gDQMkg/X4CePD0oTuLDr9rEmNbPZgMHPQcu7E2rgSmz4LD3PhCE1lNGOgk/jIsKwC
 zgqUjU96+ju/a0xlv10HLS1Y1fnJ/ExsFYDMKBp8AJInHHixquZq5mR7qe1QpF6t2H2RIPqp
 3hsh0gN8N85zf4eXy0mwLk303a3DMn+xbZuCmlqEqmhfa8aCMxCsJHi44cWADe8VAcsNZ117
 8O936FtrJMZCmw0hjV1pztbVVHh0C0qX0tnao4lHpES7YTb7dXsMg24F5VKpEdByj3gbpXX9
 WGNPuspMq+TGnqLEww5gJUsZ6RtzUIb1u7q3E5y42oO2M8pgE986MarPZv6UvouqhND6Ws3N
 60QZiAoos+OvP+XZgNdNvpfvHHeFAlYSi8eV56cm6XXJ3uBRr22uvKCfMOlaaXRKA=
X-IronPort-AV: E=Sophos;i="5.87,218,1631592000"; 
   d="scan'208";a="59258297"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g+zNnVMaN9oWUJCesvCIjxLxI5R/Bl5PVXt/Q6rOgeqvKhznjJfWK8IXuTbkQ+EO7jCmKv//+kz8MPYSaxB6/sq8EpqL/k7uLN+hOvekvil+9kY5iZ1bcXvMWQ/dYz7/vlMba0k66rHMV6N2QjeH5Ch8RzE2ygVNF/rPWX68NYczcvPhDJQ0Kfw2aW7wsDhvERuKZk6q17Mxt0v9BI6J2yBeFS5PcVVuO6QBkg5cS9+y+QfQJYOcRYYFow0PI52F1g5majUPQzmYonvbmlRT1gg0umL0cWxw8qKbbWMc/H/RWPGoJ6v6OJRR3iKTELxy4QYpxPcBm/c9H6lPvTHVJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PSu6tFoMXOq2G4LXBocxdp36pScLVF2ALjbM/o5dKCk=;
 b=GnHSIGuBZmabq9rvib3MjYdX+EYXWrPgWg9Z51EkAIUdE4pu76XgVk/iji8aZtjNK61uHax2pfURbV/iRM3FnmlypeYylsHP2TFB8B6JUUqX4MP1CdcPz9dpWAFliZZ7wfTDapQGWjRbo/1eLAbQmOVhgY3Sp6019Ve4OyrxnZ9CThkT+xelQ0SMkBhq4GTlPex8K9+xFexyerY3nD0sM/4LdUw8h8e6JSR6NA0uj5qGl+BD9FpHb7JXGOYLVqp0mClkfhDZMwUCHZ0ynkEIg16+XXiFfssV28Gl+k7NLhfWugxtih8nPxvAfa+PX8z0vCe4OzKHDdVpG+J+wrX6fA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PSu6tFoMXOq2G4LXBocxdp36pScLVF2ALjbM/o5dKCk=;
 b=DamsLh0KG/EjDP2qBVE8t3Ol+s6imm7VR83pg/Yvggi8u2W1kFU/InnVNgjhGCyJXhUP3/WtNWTp+a5vqriFDx80tePucvpZxS18ULjXHKWm/SiKf0e/G/oRZDURVbwhoRbtmd3fTpJLbaAZfMVtpFXf489b0gHXhnK22rOljns=
Date: Mon, 8 Nov 2021 15:23:48 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Jan Beulich <jbeulich@suse.com>, "julien@xen.org" <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"george.dunlap@citrix.com" <george.dunlap@citrix.com>, "paul@xen.org"
	<paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 11/11] xen/arm: translate virtual PCI bus topology for
 guests
Message-ID: <YYky9JSe9oMh5azh@Air-de-Roger>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-12-andr2000@gmail.com>
 <da36ee68-3162-0a32-f033-98af34f9c94e@suse.com>
 <c05b3e98-772c-a8c7-d8f8-841289683a02@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <c05b3e98-772c-a8c7-d8f8-841289683a02@epam.com>
X-ClientProxiedBy: MR2P264CA0152.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::15) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 84ed1311-4bcc-453c-332b-08d9a2c36401
X-MS-TrafficTypeDiagnostic: DM4PR03MB6096:
X-Microsoft-Antispam-PRVS: <DM4PR03MB609628B516AB048763AB24DF8F919@DM4PR03MB6096.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: V19qGVw9dWPPUZRxPF5AC+Q9kVM+zmh/kLnfqVEEaOAHkp8lgGq8tKPfA5Ry0n+bbKuogGssBbyOKYqu83vIY5tXT7+Vyn7pGXnE+6KJFjWcpGtIxvXcFOTTYgSHv1JTjsn5M1HNxkadmlTinxuMPmUnjJdeHt14B50d8hGlXu4kHQ1HT2kxL+MGhPGtmPaXlrGDRC0pDbkS6YO1P2L2MAK4DDS2HzuMqBoCeosoCIvsry+p1LwH2CVW2jnSBUEXDT6av/1gl6y6An9Z95Ev+MaNPqtwIUC4zvl+ivu5qAugRiEGQL8YSblVyzGp35Cuy/bJ6CPn1ZbKdVV22FaePEF4vbXhfL+bxG392yfwIjS/J9+7IoNE0PUYVK5twgMasskQ2QTr9XDR9GwY8oHTEhsc4FubawH/KAvj39e2WjvYaEUiDYaR7aTG5hfr5Jg9SnFYWR6yoBeCBK6h3o8d0TODsCH/VdJt7QIot6LibhVZwy3k5W+rC8oLT4ctmg4gVZ7SlKdWE+s1abBfmthHIdAHuFeilz1pVGN3U+ZVzakzTTytT1C6m7xIB6SA+JH97fw8ZzwumLbNc58mDiH5wcAzjE5KlCgy3hAbLqUExw/jNC3uTX8kK0l0IZKBhH9tDfd1R96DhQxNTqf52szXiA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(8936002)(26005)(82960400001)(83380400001)(54906003)(6496006)(5660300002)(8676002)(9686003)(6666004)(6916009)(186003)(316002)(86362001)(508600001)(956004)(38100700002)(53546011)(85182001)(4326008)(7416002)(6486002)(33716001)(2906002)(66476007)(66946007)(66556008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cHcxaHBlSDBrbUJVdDl5NE9Sb3l5NUpEUjJMckVvNmxsSVNqVWh6RnI5WXlC?=
 =?utf-8?B?UDVtTnBOOS8zTTBjZ25wOVBoZjhVdGU0RUdlVWViZUxmWDZVL0xRTTk5N3ZQ?=
 =?utf-8?B?bzlGNVljcFpKNXVYcWhIZmVnekhJZnlxNEpJQzVpamhEMFJlZVpNL1BWd3hN?=
 =?utf-8?B?L3IzKzhDOGloeG4zZWtubWVhMUVXRnhoRkhCNGxQbGszWmZ5L2dQNHJVQUxu?=
 =?utf-8?B?SjJ2aTFrck9RellCSnorcFdiL2crVm5kY294aXZtNU5DVjQzSE12WG1aWXpr?=
 =?utf-8?B?MHlSTHo3cGV1cVJVNzRwUzk3Wmxtb0xzQjQ2QVJXL3NkS3QvUFMvNllKTHZy?=
 =?utf-8?B?TzlSMjR6UUhPT2daTHRYeURPNWRLaXFXOEtDckhUVXdZRWhlUURJTktqOXV3?=
 =?utf-8?B?Z0VabFZ5aytpMnNwSThhelk4L3FhcWdpQ3pseVdPWmhsVndCWjhxdEhMNTYw?=
 =?utf-8?B?M1VuSzRPbFdCa2NTemVBeW82VE9qcEYwRUg0REFhNFBSRUtuVWNJQ2pjL0RO?=
 =?utf-8?B?cVRyMUVZSW5FUkd2Z0VsMVJqUWJUTGttS2k5bTBCUFljZG1Kdk9tcGRuam93?=
 =?utf-8?B?VUxIOEh4MTlPWkswZjRYc2F4cDl1WmlKQUx0bnBmMlBPWXB4VVVWc3R2bjFt?=
 =?utf-8?B?ZUw1UmVqTXYyM2o4eVJwbjQ0OVFWdWUxRDNvTDB4N2FPRDdlNDZ1eVhrUHNF?=
 =?utf-8?B?RGo0YVFYRjRDNnNkVWtGMjRQcDNhM2JCM2srSXVkTjI5TjhtS2w5UXZGNDR3?=
 =?utf-8?B?bGhvUWNYbDA4d1hqVWtudGxMNlF6MVE3ZWZXak1nZ0JYRlh1eUh6NFdzcG1L?=
 =?utf-8?B?VjByN1hvb1R0ZngxcFYvdnoyYkpUZk9VcmU2clZmQlFmZkJlY05LdnhlUHY5?=
 =?utf-8?B?dXlkK3FZRk51aHJPZnNQbzFrU09OMjV3Y3JPbFd1dHArK1JQY1YxcEE0VUg2?=
 =?utf-8?B?eTBmQk1PbTF1b29vVTdsWFdYeEVybkE4NkRDWjZKck9Ebm5lYkM3NVQ0NitM?=
 =?utf-8?B?SDlxaUY3VnVCcUxYbE9SbTRUc3Z1SUJUNTVhRTM4b0pIRUg2M1QwaDVBVzQ5?=
 =?utf-8?B?Q1o2YnJWNDZNTVlOblI2MVdhakpJaWRWOUQrK0MrTkkwNlBCZnJEMmtiY2ZH?=
 =?utf-8?B?VkYwK3dHUDFxcVMyd1pGdFhMb3ArOEpWSHg5SzFpS2dvQTFMUTFlL01peWls?=
 =?utf-8?B?RUl3OXZPWlVDVXZ2QnNoMHpaYlRoVnFEMkRmK0JTMGM5citubG1EUFpFbWR5?=
 =?utf-8?B?Lzl3NXVvMkg1QW42YnpZaXoraFJkb0tGakE2bUk5VzJ5aGhFQ0NsOER2SFpu?=
 =?utf-8?B?d3A0SkYrcnowS2VaVzdmYWRKNm5jdGFIRUk2SWw2THdOWjZQUDFmMUJMcW9R?=
 =?utf-8?B?QUp0Tld5Nng2emhvOTN4bkowV1hFQU51Qi92RUpDeks0bGFUY094TU13aFdm?=
 =?utf-8?B?NDhwUjN5cks0STFZZVB0MVBvbDFGOEJtZVNnWFM5bVBHZjcyMGd5NVVRZzhS?=
 =?utf-8?B?alZWWTlndWkyOEdVQW92SDZPa054T2JJcUJkYzluREZSLzZ4dUlvbUxaM2xN?=
 =?utf-8?B?c2toRHlEd0x0UlFPOHd3aDVSSHYvVVJvWVhMQ0dQZjB6ekwvTU9GWXp0Ykxj?=
 =?utf-8?B?c2UvSlZlUDZjREVYbDRscVJ3TWFVNXpUdDc4aEZEa3FSSzhYaCtmd0Y2Tyt2?=
 =?utf-8?B?anBZY2I3cXd4NWdIMEFKMkxHOGFIQUwrOWFINmJkL2UyR2xYZThFZWp5VVZB?=
 =?utf-8?B?Zk15RkRLSDRPT1JwYkR2NUhaa3laQTRnMnk1VXdOaFJSWis5STNxcEZYa3hC?=
 =?utf-8?B?L2oyaysxVmNORkFQcmszbzBnQkh5SVpBR1d0ZGlPZjJWNi9hVm9KREFnY1Jm?=
 =?utf-8?B?REFMMmVpeXFXWHZYeEYvOGtVQUh4MjJEb3Viemp1dTRiNTBoblVJTVREZkxn?=
 =?utf-8?B?TWxDT2hFanRkbXhvOVVpWFhFamxvRGd6MzQveUJXOXY4aTZpOURVQ3hvTk5B?=
 =?utf-8?B?dzFLa0tpMUxSb2NPUHdnaWErRlpweSswMGg4NmN1d1dqdnFtUEhnaTlYYVJT?=
 =?utf-8?B?WG01U3cvTnBWVXdTeWgzcFY5OGh4OXdiN3Y0cnRWbmlSc0NOOTQxVk9BOWVm?=
 =?utf-8?B?QksxZThlN1BXbWY0YmVpQldqYmc2cm5wNy9oNVlBSEVqYyttZytTWlNucVpt?=
 =?utf-8?Q?HnBORrMQjsG1sPUB8D2Iu5g=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 84ed1311-4bcc-453c-332b-08d9a2c36401
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 14:23:53.0973
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BuE2JJZbt0bhnkLZ7HFnVRdBiOtNwbZnva87RmZ9oH5EZGdEMgifExCYiSK7HwI3xaQ0BBP0QBDdXMJksMNH8g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6096
X-OriginatorOrg: citrix.com

On Mon, Nov 08, 2021 at 11:16:42AM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 08.11.21 13:10, Jan Beulich wrote:
> > On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> >> --- a/xen/arch/arm/vpci.c
> >> +++ b/xen/arch/arm/vpci.c
> >> @@ -41,6 +41,15 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
> >>       /* data is needed to prevent a pointer cast on 32bit */
> >>       unsigned long data;
> >>   
> >> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> >> +    /*
> >> +     * For the passed through devices we need to map their virtual SBDF
> >> +     * to the physical PCI device being passed through.
> >> +     */
> >> +    if ( !bridge && !vpci_translate_virtual_device(v->domain, &sbdf) )
> >> +            return 1;
> > Nit: Indentation.
> Ouch, sure
> >
> >> @@ -59,6 +68,15 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
> >>       struct pci_host_bridge *bridge = p;
> >>       pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
> >>   
> >> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> >> +    /*
> >> +     * For the passed through devices we need to map their virtual SBDF
> >> +     * to the physical PCI device being passed through.
> >> +     */
> >> +    if ( !bridge && !vpci_translate_virtual_device(v->domain, &sbdf) )
> >> +            return 1;
> > Again.
> Will fix
> >
> >> @@ -172,10 +175,37 @@ REGISTER_VPCI_INIT(vpci_add_virtual_device, VPCI_PRIORITY_MIDDLE);
> >>   static void vpci_remove_virtual_device(struct domain *d,
> >>                                          const struct pci_dev *pdev)
> >>   {
> >> +    ASSERT(pcidevs_locked());
> >> +
> >>       clear_bit(pdev->vpci->guest_sbdf.dev, &d->vpci_dev_assigned_map);
> >>       pdev->vpci->guest_sbdf.sbdf = ~0;
> >>   }
> >>   
> >> +/*
> >> + * Find the physical device which is mapped to the virtual device
> >> + * and translate virtual SBDF to the physical one.
> >> + */
> >> +bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf)
> > const struct domain *d ?
> Will change
> >
> >> +{
> >> +    const struct pci_dev *pdev;
> >> +    bool found = false;
> >> +
> >> +    pcidevs_lock();
> >> +    for_each_pdev( d, pdev )
> >> +    {
> >> +        if ( pdev->vpci->guest_sbdf.sbdf == sbdf->sbdf )
> >> +        {
> >> +            /* Replace virtual SBDF with the physical one. */
> >> +            *sbdf = pdev->sbdf;
> >> +            found = true;
> >> +            break;
> >> +        }
> >> +    }
> >> +    pcidevs_unlock();
> > I think the description wants to at least mention that in principle
> > this is too coarse grained a lock, providing justification for why
> > it is deemed good enough nevertheless. (Personally, as expressed
> > before, I don't think the lock should be used here, but as long as
> > Roger agrees with you, you're fine.)
> Yes, makes sense

Seeing as we don't take the lock in vpci_{read,write} I'm not sure we
need it here either then.

Since on Arm you will add devices to the guest at runtime (ie: while
there could already be PCI accesses), have you seen issues with not
taking the lock here?

I think the whole pcidevs locking needs to be clarified, as it's
currently a mess. If you want to take it here that's fine, but overall
there are issues in other places that would make removing a device at
runtime not reliable.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:24:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:24:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223378.386061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5Zn-00076p-EI; Mon, 08 Nov 2021 14:24:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223378.386061; Mon, 08 Nov 2021 14:24:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5Zn-00076i-Al; Mon, 08 Nov 2021 14:24:47 +0000
Received: by outflank-mailman (input) for mailman id 223378;
 Mon, 08 Nov 2021 14:24:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk5Zl-00076X-Pe
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:24:45 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c8a9de9-409f-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 15:24:41 +0100 (CET)
Received: from zn.tnic (p200300ec2f33110093973d8dfcf40fd9.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:9397:3d8d:fcf4:fd9])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id D54F61EC04EE;
 Mon,  8 Nov 2021 15:24:40 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c8a9de9-409f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636381481;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=oQBbYlaqexu4t08cRZdDH3XaT2khXLTGUfDdhXY+o6w=;
	b=BzFVBEJotdv+x1wk5r7BVthkB7IfDjFkcs3Qa23VnQgw6n7GoUvAnfTwnsI1XwsFUQ2pfc
	wTEtmUg2zpiIKZgiV8GtlPXLXcMCnwwX7vbzvuM7Jd46qSvtVDp/eqlUHv6UrUSSdUIxSB
	fTiz2Hj9eXxtQyoPpRyOqBuxOD7Awrk=
Date: Mon, 8 Nov 2021 15:24:39 +0100
From: Borislav Petkov <bp@alien8.de>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: LKML <linux-kernel@vger.kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Ayush Sawal <ayush.sawal@chelsio.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rohit Maheshwari <rohitm@chelsio.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
	alsa-devel@alsa-project.org, bcm-kernel-feedback-list@broadcom.com,
	intel-gfx@lists.freedesktop.org,
	intel-gvt-dev@lists.freedesktop.org, linux-alpha@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
	linux-crypto@vger.kernel.org, linux-edac@vger.kernel.org,
	linux-fbdev@vger.kernel.org, linux-hyperv@vger.kernel.org,
	linux-iio@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-pm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-remoteproc@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-staging@lists.linux.dev,
	linux-tegra@vger.kernel.org, linux-um@lists.infradead.org,
	linux-usb@vger.kernel.org, linux-xtensa@linux-xtensa.org,
	netdev@vger.kernel.org, openipmi-developer@lists.sourceforge.net,
	rcu@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 00/42] notifiers: Return an error when callback is
 already registered
Message-ID: <YYkzJ3+faVga2Tl3@zn.tnic>
References: <20211108101157.15189-1-bp@alien8.de>
 <20211108101924.15759-1-bp@alien8.de>
 <20211108141703.GB1666297@rowland.harvard.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20211108141703.GB1666297@rowland.harvard.edu>

On Mon, Nov 08, 2021 at 09:17:03AM -0500, Alan Stern wrote:
> What reason is there for moving the check into the callers?  It seems 
> like pointless churn.  Why not add the error return code, change the 
> WARN to pr_warn, and leave the callers as they are?  Wouldn't that end 
> up having exactly the same effect?
> 
> For that matter, what sort of remedial action can a caller take if the 
> return code is -EEXIST?  Is there any point in forcing callers to check 
> the return code if they can't do anything about it?

See my reply to Geert from just now:

https://lore.kernel.org/r/YYkyUEqcsOwQMb1S@zn.tnic

I guess I can add another indirection to notifier_chain_register() and
avoid touching all the call sites.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:36:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:36:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223389.386071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5kd-0000G7-EN; Mon, 08 Nov 2021 14:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223389.386071; Mon, 08 Nov 2021 14:35:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5kd-0000G0-BS; Mon, 08 Nov 2021 14:35:59 +0000
Received: by outflank-mailman (input) for mailman id 223389;
 Mon, 08 Nov 2021 14:35:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk5kb-0000Fp-Oc
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:35:57 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f1b3b5b-40a1-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 15:35:56 +0100 (CET)
Received: from zn.tnic (p200300ec2f331100b486bab6e60d7aaf.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:b486:bab6:e60d:7aaf])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 1A75E1EC01FC;
 Mon,  8 Nov 2021 15:35:56 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f1b3b5b-40a1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636382156;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=B6oOQ1q4gjLTOu5usgfET43xDRmf4tLazw1TZ6CRXFw=;
	b=Upd25HzfEqhrG5TAXmV4X7VLTXjG+2mbIZvAcNaA5XdFGwWxC22cjGdH367SqKuC2YI35V
	XePkT+plNO8Rcdx9qRLbflORPHDjzc4q/HfinrM2oVoUmKJ3f3FbXqZbeiIVI7zzNRafCc
	NDGlsVX5pxz7i7hCYlNzvvCrAxbHbAs=
Date: Mon, 8 Nov 2021 15:35:50 +0100
From: Borislav Petkov <bp@alien8.de>
To: Alan Stern <stern@rowland.harvard.edu>,
	Geert Uytterhoeven <geert@linux-m68k.org>
Cc: LKML <linux-kernel@vger.kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Ayush Sawal <ayush.sawal@chelsio.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rohit Maheshwari <rohitm@chelsio.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
	alsa-devel@alsa-project.org, bcm-kernel-feedback-list@broadcom.com,
	intel-gfx@lists.freedesktop.org,
	intel-gvt-dev@lists.freedesktop.org, linux-alpha@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
	linux-crypto@vger.kernel.org, linux-edac@vger.kernel.org,
	linux-fbdev@vger.kernel.org, linux-hyperv@vger.kernel.org,
	linux-iio@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-pm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-remoteproc@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-staging@lists.linux.dev,
	linux-tegra@vger.kernel.org, linux-um@lists.infradead.org,
	linux-usb@vger.kernel.org, linux-xtensa@linux-xtensa.org,
	netdev@vger.kernel.org, openipmi-developer@lists.sourceforge.net,
	rcu@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 00/42] notifiers: Return an error when callback is
 already registered
Message-ID: <YYk1xi3eJdMJdjHC@zn.tnic>
References: <20211108101157.15189-1-bp@alien8.de>
 <20211108101924.15759-1-bp@alien8.de>
 <20211108141703.GB1666297@rowland.harvard.edu>
 <YYkzJ3+faVga2Tl3@zn.tnic>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <YYkzJ3+faVga2Tl3@zn.tnic>

On Mon, Nov 08, 2021 at 03:24:39PM +0100, Borislav Petkov wrote:
> I guess I can add another indirection to notifier_chain_register() and
> avoid touching all the call sites.

IOW, something like this below.

This way I won't have to touch all the callsites and the registration
routines would still return a proper value instead of returning 0
unconditionally.

---
diff --git a/kernel/notifier.c b/kernel/notifier.c
index b8251dc0bc0f..04f08b2ef17f 100644
--- a/kernel/notifier.c
+++ b/kernel/notifier.c
@@ -19,14 +19,12 @@ BLOCKING_NOTIFIER_HEAD(reboot_notifier_list);
  *	are layered on top of these, with appropriate locking added.
  */
 
-static int notifier_chain_register(struct notifier_block **nl,
-		struct notifier_block *n)
+static int __notifier_chain_register(struct notifier_block **nl,
+				     struct notifier_block *n)
 {
 	while ((*nl) != NULL) {
-		if (unlikely((*nl) == n)) {
-			WARN(1, "double register detected");
-			return 0;
-		}
+		if (unlikely((*nl) == n))
+			return -EEXIST;
 		if (n->priority > (*nl)->priority)
 			break;
 		nl = &((*nl)->next);
@@ -36,6 +34,18 @@ static int notifier_chain_register(struct notifier_block **nl,
 	return 0;
 }
 
+static int notifier_chain_register(struct notifier_block **nl,
+				   struct notifier_block *n)
+{
+	int ret = __notifier_chain_register(nl, n);
+
+	if (ret == -EEXIST)
+		WARN(1, "double register of notifier callback %ps detected",
+			n->notifier_call);
+
+	return ret;
+}
+
 static int notifier_chain_unregister(struct notifier_block **nl,
 		struct notifier_block *n)
 {


-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:43:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:43:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223395.386084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5rN-0001kp-58; Mon, 08 Nov 2021 14:42:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223395.386084; Mon, 08 Nov 2021 14:42:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5rM-0001ki-Vx; Mon, 08 Nov 2021 14:42:56 +0000
Received: by outflank-mailman (input) for mailman id 223395;
 Mon, 08 Nov 2021 14:42:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NS6W=P3=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mk5rL-0001kc-Th
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:42:55 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2825c06d-40a2-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 15:42:54 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 3A2581FDBB;
 Mon,  8 Nov 2021 14:42:54 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id F163613BA0;
 Mon,  8 Nov 2021 14:42:53 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id dImkOW03iWFwLgAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 08 Nov 2021 14:42:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2825c06d-40a2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636382574; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=PcEmR69RYiKNTQK4p0BOaaLKED4EZ82QxHW1dCHXPTM=;
	b=G2RD/OFygLQ3a0Hkj7DNcRUdZKxdR3fqzBXxO4usiRfQBWhfjPPdBv8vrUPjTYYg1JbfgT
	dxHgIRAX96gFxkXYBac+SuY1AIiV608pV0WFOm0uV/gGidlrQs1eCXFFFmeuMb+FRcYyN8
	Ld1XsMER0agQ8RMn/w6MD1kYZKsstFc=
Subject: Re: [PATCH v2.2 07/15] xen: generate hypercall interface related code
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211103102059.19621-1-jgross@suse.com>
 <613fa1c2-5292-43b8-0261-2b26d7f65cd8@suse.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <d4fd17ef-1f33-8e7e-7aab-dff326062fd9@suse.com>
Date: Mon, 8 Nov 2021 15:42:53 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <613fa1c2-5292-43b8-0261-2b26d7f65cd8@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="vZLzA7Sl0FlaL4i0FMgvRFe3FEB5B3dan"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--vZLzA7Sl0FlaL4i0FMgvRFe3FEB5B3dan
Content-Type: multipart/mixed; boundary="DxzpoZY4dMC4Yf0mASqJnRevYWQw1n0Oy";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
Message-ID: <d4fd17ef-1f33-8e7e-7aab-dff326062fd9@suse.com>
Subject: Re: [PATCH v2.2 07/15] xen: generate hypercall interface related code
References: <20211103102059.19621-1-jgross@suse.com>
 <613fa1c2-5292-43b8-0261-2b26d7f65cd8@suse.com>
In-Reply-To: <613fa1c2-5292-43b8-0261-2b26d7f65cd8@suse.com>

--DxzpoZY4dMC4Yf0mASqJnRevYWQw1n0Oy
Content-Type: multipart/mixed;
 boundary="------------7E0BF4E9D171F6EE4DC427F9"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------7E0BF4E9D171F6EE4DC427F9
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 03.11.21 16:42, Jan Beulich wrote:
> On 03.11.2021 11:20, Juergen Gross wrote:
>> Instead of repeating similar data multiple times use a single source
>> file and a generator script for producing prototypes and call sequence=
s
>> of the hypercalls.
>>
>> As the script already knows the number of parameters used add generati=
ng
>> a macro for populating an array with the number of parameters per
>> hypercall.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>=20
> What's missing here now that you have introduced priorities is how you
> did arrive at the chosen values. That's a pretty important aspect,
> especially if someone would later want to adjust these.

Will include the measured data in next version's commit message.

> Just one further remark from looking at the output of the script (thank=
s
> for making that available):
>=20
>> +# Generate the output
>> +END {
>> +    # Verbatim generated lines
>> +    for (i =3D 1; i <=3D e; i++)
>> +        printf("%s\n", emit[i]);
>> +    printf("\n");
>> +    # Generate prototypes
>> +    for (i =3D 1; i <=3D n; i++) {
>> +        for (p =3D 1; p <=3D n_pre[i]; p++) {
>> +            printf("%s %s_%s(", rettype[pre[i, p]], pre[i, p], fn[i])=
;
>> +            if (n_args[i] =3D=3D 0)
>> +                printf("void");
>> +            else
>> +                for (j =3D 1; j <=3D n_args[i]; j++) {
>> +                    if (j > 1)
>> +                        printf(", ");
>> +                    if (ptr[i, j])
>> +                        printf("XEN_GUEST_HANDLE_PARAM(%s)", typ[i, j=
]);
>> +                    else
>> +                        printf("%s", typ[i, j]);
>> +                    printf(" %s", arg[i, j]);
>> +                }
>> +            printf(");\n");
>> +        }
>> +    }
>> +    # Generate call sequences and args array contents
>> +    for (ca in caller) {
>> +        if (caller[ca] !=3D 1)
>> +            continue;
>> +        need_mask =3D 0;
>> +        for (pl =3D 1; pl <=3D n_prios[ca]; pl++) {
>> +            for (pll =3D pl; pll > 1; pll--) {
>> +                if (prio_list[ca, pl] > p_list[pll - 1])
>> +                    break;
>> +                else
>> +                    p_list[pll] =3D p_list[pll - 1];
>> +            }
>> +            p_list[pll] =3D prio_list[ca, pl];
>> +            # If any prio but the default one has more than 1 entry w=
e need "mask"
>> +            if (p_list[pll] !=3D 100 && prios[ca, p_list[pll]] > 1)
>> +                need_mask =3D 1;
>> +        }
>> +        printf("\n");
>> +        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5=
) \\\n", ca);
>> +        printf("{ \\\n");
>> +        if (need_mask)
>> +            printf("    uint64_t mask =3D 1ULL << num; \\\n");
>> +        printf("    ");
>> +        for (pl =3D 1; pl <=3D n_prios[ca]; pl++) {
>> +            if (prios[ca, p_list[pl]] > 1) {
>> +                if (pl < n_prios[ca]) {
>> +                    printf("if ( likely(mask & (%s)) ) \\\n", prio_ma=
sk[ca, p_list[pl]]);
>> +                    printf("    { \\\n");
>> +                }
>> +                if (prios[ca, p_list[pl]] =3D=3D 2) {
>> +                    fnd =3D 0;
>> +                    for (i =3D 1; i <=3D nc; i++)
>> +                        if (call[i] =3D=3D ca && call_prio[i] =3D=3D =
p_list[pl]) {
>> +                            fnd++;
>> +                            if (fnd =3D=3D 1)
>> +                                printf("        if ( num =3D=3D __HYP=
ERVISOR_%s ) \\\n", fn[call_fn[i]]);
>> +                            else
>> +                                printf("        else \\\n");
>> +                            do_call(call_fn[i], call_p[i]);
>> +                        }
>> +                } else {
>> +                    do_switch(ca, p_list[pl]);
>> +                }
>> +                if (pl < n_prios[ca])
>> +                    printf("    } \\\n");
>> +            } else {
>> +                for (i =3D 1; i <=3D nc; i++)
>> +                    if (call[i] =3D=3D ca && call_prio[i] =3D=3D p_li=
st[pl]) {
>> +                        printf("if ( likely(num =3D=3D __HYPERVISOR_%=
s) ) \\\n", fn[call_fn[i]]);
>> +                        do_call(call_fn[i], call_p[i]);
>> +                    }
>> +            }
>> +            if (pl < n_prios[ca] || prios[ca, p_list[pl]] <=3D 2)
>> +                printf("    else ");
>=20
> I think there's a line continuation escape + newline missing here.

Yes and no.

This can either continue with another "if" clause not wanting a new
line or with a final ending statement (either a "switch" or a
"ret =3D -ENOSYS"), which probably would want the new line. Adding
code for handling both cases is possible, but I'm not sure it is
worth it. In case you are preferring an unconditional new line,
this would be easy to arrange, of course.


Juergen

--------------7E0BF4E9D171F6EE4DC427F9
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------7E0BF4E9D171F6EE4DC427F9--

--DxzpoZY4dMC4Yf0mASqJnRevYWQw1n0Oy--

--vZLzA7Sl0FlaL4i0FMgvRFe3FEB5B3dan
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGJN20FAwAAAAAACgkQsN6d1ii/Ey+M
KwgAlqJ+6/7k1iCmMogFMPYQDlZypYUyzMOcH7PG8EHn/c8u2dqvy3SU+KHzWJZh1n6cTIyzrjBz
7r3uADhwF73lxSjn9JxaKlmOvwPi8kF35RTM1iV1KUldQ7sS0417Jw6UBHbqAa4AlBF6cnb/W6Vj
3XNRwX41TU0WDBhQbCiZ+f+xg8q3uo3zmAR4THOiE8DOvstS7Wjf07ToqxwnJxvmwJPKRGugiiPN
Nf9Rv8q4rEl/SeOuXkGfADPNT5BXuQx48+hxCWu7rdyFvi0lFMYqucyEvYirZpDJ9BDxYvjXD0Xk
8cn+/VPU1K5dD8LWx/ELBlHF4kwO5x+d4t+aV0p2XQ==
=oxDi
-----END PGP SIGNATURE-----

--vZLzA7Sl0FlaL4i0FMgvRFe3FEB5B3dan--


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:46:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:46:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223402.386094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5v4-0002OH-Jp; Mon, 08 Nov 2021 14:46:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223402.386094; Mon, 08 Nov 2021 14:46:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk5v4-0002O9-Gp; Mon, 08 Nov 2021 14:46:46 +0000
Received: by outflank-mailman (input) for mailman id 223402;
 Mon, 08 Nov 2021 14:46:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk5v3-0002O3-On
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:46:45 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk5v3-0006C6-Ni
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:46:45 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk5v3-0003FB-N0
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:46:45 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mk5uy-00015b-CE; Mon, 08 Nov 2021 14:46:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=valNkcBpZZCxToSciyUCrcUArWYfJZR+re/qqKWo2Ek=; b=TeBpHJugL+hS82VvNhTxjnDk+U
	CcLDpk+MEu8F2QAAwJsmOC9TXekn+VaCEBD0VNj07Ah95aDj/PXKuhBURcRGUBTIHW/y9Ypt2o/D8
	UZDNOTQ8mCnqgedStdiiRxwvIkNdkFCVCi+aMx94NgCn23eHouARd1+n/iheNoTbknSM=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24969.14415.979563.323346@mariner.uk.xensource.com>
Date: Mon, 8 Nov 2021 14:46:39 +0000
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>,
    <xen-devel@lists.xenproject.org>,
    "Wei  Liu" <wl@xen.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Julien Grall <julien@xen.org>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Anthony PERARD <anthony.perard@citrix.com>,
    "Juergen Gross" <jgross@suse.com>,
    Christian Lindig <christian.lindig@citrix.com>,
    David Scott <dave@recoil.org>,
    Volodymyr  Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
In-Reply-To: <YYPkx7148Ive/352@Air-de-Roger>
References: <20211104104834.10977-1-roger.pau@citrix.com>
	<24963.52610.316896.770905@mariner.uk.xensource.com>
	<8ae2c1ac-b220-a5ab-920b-244590ae3ef0@suse.com>
	<YYPkx7148Ive/352@Air-de-Roger>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monn writes ("Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
>  Overall I think it's best to
> express supported grant versions independently, and we might wish to
> also allow to select a discrete set of grant versions that a domain
> supports. IMO it might be sensible in the future if a new grant
> version appears (v3), to select to expose grant v1 and v3 only to the
> domain, and avoid v2. This would require some changes here, but we can
> see about those when the time comes.

I'm not sure what layer we're talking about here.  The patch
introduces a max version into the libxl api.  Is there any significant
chance of a v3 (and hence, wanting to change the api) any time soon ?

Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:55:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:55:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223410.386105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk62o-0003vt-Dc; Mon, 08 Nov 2021 14:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223410.386105; Mon, 08 Nov 2021 14:54:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk62o-0003vm-AY; Mon, 08 Nov 2021 14:54:46 +0000
Received: by outflank-mailman (input) for mailman id 223410;
 Mon, 08 Nov 2021 14:54:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk62m-0003vg-NV
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:54:44 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce916643-40a3-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 15:54:43 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2058.outbound.protection.outlook.com [104.47.13.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-7-RHgqNzw7OyW9czlaT0cUeA-1;
 Mon, 08 Nov 2021 15:54:41 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2335.eurprd04.prod.outlook.com (2603:10a6:800:2e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Mon, 8 Nov
 2021 14:54:39 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 14:54:39 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0024.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:2::37) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Mon, 8 Nov 2021 14:54:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce916643-40a3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636383283;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=V+K1CwSI3UjizQZfQfQcMR8jOCQ36LLX1IcuD+WYaFw=;
	b=LKLZJMcowkoSJGj9O65lCuPTMH/F279cJK657lg3qEHnufP78NvimCG92rqOfVIborBsuD
	GmfJMCCpZ7QhgSB/nmusLxJKTlsodHo7Y8MKaMVIH9ogtdOsDD70G4eIkez8EQkvTb71QH
	G4pnvsdNjOWrSu/4G6ERu7ZwCLlQJck=
X-MC-Unique: RHgqNzw7OyW9czlaT0cUeA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=C+a3EZxO3DMiiLtFdInQwnHcLRLkNneFY4CIBiJ4ZGS9KS23AtO1MSY/bpJG5e4ctK5wMIijf1/zfCfbxxWo1s4ezkbOEuh5dcx0UiJpV3MHSWeSkM1gpSgWOeQyz2xEOVGXTbUlel5cb7fBSg8FhhxJ7njz5AonGmoOd3dcln8PekXxwNfxYUILImTHIEpVXQRXCNEXphdUonJ3suNRv1Ace+OzKS8T6t+y5S2c53XTCGxmnbI8P4bXSxjYCjdD4pmXmaLMPWftkYUlhJRfsLC5JELNZJBOyLsliADnLmFKePY/PtbnAayKR4VsDvonqXFmmP4xW+u2hWt8BQ+7tg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V+K1CwSI3UjizQZfQfQcMR8jOCQ36LLX1IcuD+WYaFw=;
 b=JOZtnyN7brCn8ZvXwBdDb2o0cF4RhPN0CrByCE4hqB+H22YMf7Umlfre/cx5yoAcjHmA5L1CVADha/kfN0hKQsA3wQ3JpUNlPnCneVwKSAIQx0MgNBfvM/QHEjRLwRyH/+Ht/6VWBQmBj5PQnUZMHCnHEx/Oy+QIuaYCSw3jmtwlNo16Zc8Vzsn0lfP1lvuXJZj7Q1RgwZfBd23y7XluNVfeGGYvZHg+5EuIt2O/ex9EWbMhkHRavpgy+YI8iXydP5jlaEShiEu3ywaJVi5mr8yCP2MM0OnMuE6EGU2cNwdmFb35Vgi8C1ssbisAEaFZJKIIkIBepB7Haq0yvDU6Hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9945a0d8-d14e-e500-d37e-3397652fae01@suse.com>
Date: Mon, 8 Nov 2021 15:54:36 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2.2 07/15] xen: generate hypercall interface related code
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211103102059.19621-1-jgross@suse.com>
 <613fa1c2-5292-43b8-0261-2b26d7f65cd8@suse.com>
 <d4fd17ef-1f33-8e7e-7aab-dff326062fd9@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <d4fd17ef-1f33-8e7e-7aab-dff326062fd9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR1001CA0024.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:2::37) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 98bd1e19-f59f-437f-ad80-08d9a2c7b02f
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2335:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB23353E9F4054F9AF63C2098CB3919@VI1PR0401MB2335.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2150;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	cmTyDy5+08th/kZU3Z6G4guE9g4pO/drG7gtFga3+wqPlHYp/OTevRYN1zGaPl4CojzLLJdFyb/Vk91ax1eawdHJbqoMsLV47UNEh0K3IUv8g0L4BaA7i/uZQY8yZXEKb05ehVQaFgVLuEvRtmw/BGAQjlr0EJ3WDB8UPOTgiLmOxCfjj83gNFW5lJ764oSqXgBPA7tzPX8/6NP4LyGDqUBY0ysIzBY6s+KD7kq0p3fI+Mpf6f0pEaiVq6jl16flSzmMFQcY95ZzKJfT8QSN6PSsYzkgYI2VeSrFDq/nNA7/SNaiux20PX1k5bjWqXJTR+DdySAlqX/kfXkmFm9TNRuGvLtKc8d9Z/Hu5nmAZ7IUX/d5HmSHXWt9qD4fTCs2PEbSBK7sv188whSfoUfLe2GX8dqtawu8wI7W2CgCZjSEXbnqpWfDPvrfQbKmXq+4r7luH1eCze3jT2ouaoZ3iC9r7PE8aDt2B2IKdbYw9DmzkEbge8RGqVizluvbe+slBP3sUhF0EHU/wmAWa5fGGTfCfapxDyepUwLboO4k8v0JkC08DoJd0HCLNGMoTuE8nhnofFFDtUOZ9vilKTl929uyZfww9T9HloCU8j0ALQT2+tj2oNwW/UmWygeg1yxJSIHY6C6Vl5BuvGWW1bhlsZoBA6sMTsjiWqtc8V4BjpW8ZBLIF6zlGZL6oV48YCs33f6TzyD/Ki5tDEbbrD3h7i1wUh6nrs0vyko1GBFUISY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(6486002)(8936002)(316002)(26005)(5660300002)(2616005)(4326008)(956004)(86362001)(2906002)(36756003)(38100700002)(186003)(16576012)(54906003)(6636002)(37006003)(53546011)(66476007)(66946007)(66556008)(6862004)(508600001)(8676002)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SStxRnc4T2JHY2MxVC9nYndrZ3JHZHFnaEJRdE1zNTlwUlpncm5kRGt4VSt2?=
 =?utf-8?B?REtwcHdiQnhQSHZqeEg2L0VNZ0tzcWg0am9SWmdFZkJZMFJPRFAxSXFJWG56?=
 =?utf-8?B?VHExN2RMNG80blRIU1ZyYTYzZkQwWDlySG84Zm56bGdXZFl2UXQwN3RkSnZr?=
 =?utf-8?B?aThxcnRFNitsRE93S250aW9SK1ZHWXhGclpoTURwVDJNbGN6NHhsNVU3NHFu?=
 =?utf-8?B?dTFENjJwUFpOUTJTUWl1Mk1ORGJMclYvWmdocTFybm9GejZQcmFRRDJkZVp5?=
 =?utf-8?B?bFpCKzVJYnE1SmdMVzdhVEVBclI5RGRGYUZqRUhhN2RZT1dTZGdHd1VSQldz?=
 =?utf-8?B?UXhIV1ZEMHBYSVNxQzY4TEpXV1NsSWZrbjJXR3ZjUVZ6dnllbHFodHZhMXNm?=
 =?utf-8?B?ZW1uMUJSZkpkb2Q1UHZMTGdIY2pNaUNEU3pMK05OM0wxTFdTejd6eTFDWHBo?=
 =?utf-8?B?WU5mNjVpVlRhZm9WWnhmbjhWRHlsYzNBeWU0OVFQSEdOblZBS0VlLzdtMkRx?=
 =?utf-8?B?b3Z5NFpGODlQNnk2N0kwTGRySmNqdDNNZzBDaWtNdHRqbGFXMEdFdzdyc0Ni?=
 =?utf-8?B?OEVXNW1CcHA1NHcrd2JLWEM3TW8vNmNNSFBHS3c1bVJkLzhoNDZ2YjgzTlhY?=
 =?utf-8?B?L3hHQXhSUVdKdXpzK2dRT1AyMjZqTFZubDUvZk9nNGdxTjBrNndnNUpvSUhz?=
 =?utf-8?B?cWFBc2lBMXllN3ZvVUxoYW1sdFhoYURDbTM2Skt0YVpwbSsvbWhJM3kzaTZY?=
 =?utf-8?B?SHZZZG52ZTFqUHNLZzk0Y212SDQ0Zk04NDZOaUdpRENwNHhnTFhkSnFBZDJI?=
 =?utf-8?B?Y0pObkNOZEtmOWtJSmxNU2t6ZzdsUjdFbDl1TFpqSkt3YVhJeXVUU2VVdDQ4?=
 =?utf-8?B?RTkwWGYvanhkKzd6Y0RITHdPYmhVbEp0cFQ5NlBSbE5OcWo4akl4aFNQYlp0?=
 =?utf-8?B?bVNpK2ZrSzIvcXF1WmFhTGhkUTlEOEwxQnlWZzdRVEZ2SlpNdW85eGc2Mm5V?=
 =?utf-8?B?VWtKa2diZyt3M2J6c0g3ZU1wanVJYTBGczg3RjVEeld2eHNEOExWNkphZDBn?=
 =?utf-8?B?TENMY0ZZdTRseUo2V3R2bkpVU0FMbWJKUFBrdTJWcWllS0RmdkFKaVByTmYz?=
 =?utf-8?B?bVZUbHFnMzNYODRUR2hCMUl1S3hEbmszYWhZWElCc3hseERnZW1ja0NlTU1W?=
 =?utf-8?B?Nk1UdW5CaGl1djMyekx6QlQ0R1VyYklxbkZYK3RXd0YvWjdYbzBkbnphZlNW?=
 =?utf-8?B?TWltK2JyM0xweW1qRkdKbGREeGg4M0hFaGtQWEpuWnJueXVWNzZtdHJiQ2dF?=
 =?utf-8?B?YmhTMmdKZmR5bUJvMlQvSnlyUGpvbXlHSXplV0krazBodkJydWFHa1RkVXI1?=
 =?utf-8?B?eXphK3pNamxaZ2llN09YUWx6dWVNSE50VFVKaSt1Sk1idC9xS3E1RkQ1TmtT?=
 =?utf-8?B?YWF0WGk0V2JpdlM0eHpnUnBNUU4xOXd6eS9NQ1ZSbVVSMkVRN0ZWcDJ2emxD?=
 =?utf-8?B?QmIzZG00eUZaN1BjRUE5U1dJWXZMOGk1WkZoSWl0a3VkQU02V0VNK2VrL25P?=
 =?utf-8?B?K2Y1TWhxaGE5Ukpnb0hHWlIyRWtJNlNzSnNiNlBRcldtSGVDamNDWitGT0Yz?=
 =?utf-8?B?R3VEVDZSRHNpalZqZEVvSm8xdzBILy8xYUJyVjdNY2U2WlJoQU1RRGlRVGVK?=
 =?utf-8?B?TXN0azFqU3ZBeHhKcDF0SXVWLzhQNWhkNnloNkhNUDYzWXArV0ZnbFZJWGxG?=
 =?utf-8?B?ZXc5ZEV6NS9wdERGMUV5ZVNZUGlqM3JIdlNyeFVnTWlYNHFnSDg5bzRpTFRo?=
 =?utf-8?B?c2M3R0x4dG9QMmhXckdvZkVaay9SMlJHTFpYdlhoTWhaNFRTaG9sOG4yY0RL?=
 =?utf-8?B?cUlUSnJ2VzVvbXFDNWRoTHVVNm9reEtIYld2T1ZHT3k4MHU5UEd1dkN0dEJo?=
 =?utf-8?B?UUZPMVRYUGhidWovSG5RQ2pnVCs0dDhCak1RT04yNVRBQXNVd1FmMkNBalA1?=
 =?utf-8?B?N0ZLdW5JVWVnRzhldmhPalJUdGdqMGl3ZVJ0UUNpK1FiUExMdnRucmJldlRt?=
 =?utf-8?B?U1kxd283QjBaOThWOTdpUERRRjJvSUN4VG11VVlaMmFlVVJ6TXdGdEFTWHln?=
 =?utf-8?B?dmx6ZTc4dDV3dmRWWUg4Y2R5WlBvbEFqRkw4SUhoZHlPUVVSNlAwSVptYXNq?=
 =?utf-8?Q?L4JmGVonlIhTdKmcSX8ZkLE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 98bd1e19-f59f-437f-ad80-08d9a2c7b02f
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 14:54:38.9211
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L1J2DQtfDGdpRgP4kKCL3FQgmHbj5AP3gViPmNtMzslF9l2bD6jO2c4/HErePGaEaoi43GY9+UsChxFeXuTrPw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2335

On 08.11.2021 15:42, Juergen Gross wrote:
> On 03.11.21 16:42, Jan Beulich wrote:
>> On 03.11.2021 11:20, Juergen Gross wrote:
>>> +# Generate the output
>>> +END {
>>> +    # Verbatim generated lines
>>> +    for (i = 1; i <= e; i++)
>>> +        printf("%s\n", emit[i]);
>>> +    printf("\n");
>>> +    # Generate prototypes
>>> +    for (i = 1; i <= n; i++) {
>>> +        for (p = 1; p <= n_pre[i]; p++) {
>>> +            printf("%s %s_%s(", rettype[pre[i, p]], pre[i, p], fn[i]);
>>> +            if (n_args[i] == 0)
>>> +                printf("void");
>>> +            else
>>> +                for (j = 1; j <= n_args[i]; j++) {
>>> +                    if (j > 1)
>>> +                        printf(", ");
>>> +                    if (ptr[i, j])
>>> +                        printf("XEN_GUEST_HANDLE_PARAM(%s)", typ[i, j]);
>>> +                    else
>>> +                        printf("%s", typ[i, j]);
>>> +                    printf(" %s", arg[i, j]);
>>> +                }
>>> +            printf(");\n");
>>> +        }
>>> +    }
>>> +    # Generate call sequences and args array contents
>>> +    for (ca in caller) {
>>> +        if (caller[ca] != 1)
>>> +            continue;
>>> +        need_mask = 0;
>>> +        for (pl = 1; pl <= n_prios[ca]; pl++) {
>>> +            for (pll = pl; pll > 1; pll--) {
>>> +                if (prio_list[ca, pl] > p_list[pll - 1])
>>> +                    break;
>>> +                else
>>> +                    p_list[pll] = p_list[pll - 1];
>>> +            }
>>> +            p_list[pll] = prio_list[ca, pl];
>>> +            # If any prio but the default one has more than 1 entry we need "mask"
>>> +            if (p_list[pll] != 100 && prios[ca, p_list[pll]] > 1)
>>> +                need_mask = 1;
>>> +        }
>>> +        printf("\n");
>>> +        printf("#define call_handlers_%s(num, ret, a1, a2, a3, a4, a5) \\\n", ca);
>>> +        printf("{ \\\n");
>>> +        if (need_mask)
>>> +            printf("    uint64_t mask = 1ULL << num; \\\n");
>>> +        printf("    ");
>>> +        for (pl = 1; pl <= n_prios[ca]; pl++) {
>>> +            if (prios[ca, p_list[pl]] > 1) {
>>> +                if (pl < n_prios[ca]) {
>>> +                    printf("if ( likely(mask & (%s)) ) \\\n", prio_mask[ca, p_list[pl]]);
>>> +                    printf("    { \\\n");
>>> +                }
>>> +                if (prios[ca, p_list[pl]] == 2) {
>>> +                    fnd = 0;
>>> +                    for (i = 1; i <= nc; i++)
>>> +                        if (call[i] == ca && call_prio[i] == p_list[pl]) {
>>> +                            fnd++;
>>> +                            if (fnd == 1)
>>> +                                printf("        if ( num == __HYPERVISOR_%s ) \\\n", fn[call_fn[i]]);
>>> +                            else
>>> +                                printf("        else \\\n");
>>> +                            do_call(call_fn[i], call_p[i]);
>>> +                        }
>>> +                } else {
>>> +                    do_switch(ca, p_list[pl]);
>>> +                }
>>> +                if (pl < n_prios[ca])
>>> +                    printf("    } \\\n");
>>> +            } else {
>>> +                for (i = 1; i <= nc; i++)
>>> +                    if (call[i] == ca && call_prio[i] == p_list[pl]) {
>>> +                        printf("if ( likely(num == __HYPERVISOR_%s) ) \\\n", fn[call_fn[i]]);
>>> +                        do_call(call_fn[i], call_p[i]);
>>> +                    }
>>> +            }
>>> +            if (pl < n_prios[ca] || prios[ca, p_list[pl]] <= 2)
>>> +                printf("    else ");
>>
>> I think there's a line continuation escape + newline missing here.
> 
> Yes and no.
> 
> This can either continue with another "if" clause not wanting a new
> line or with a final ending statement (either a "switch" or a
> "ret = -ENOSYS"), which probably would want the new line. Adding
> code for handling both cases is possible, but I'm not sure it is
> worth it. In case you are preferring an unconditional new line,
> this would be easy to arrange, of course.

I'm not going to insist; it merely looked odd to me, and I was
thinking that the alternative would overall look less odd.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 14:55:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 14:55:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223412.386116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk637-0004KQ-SB; Mon, 08 Nov 2021 14:55:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223412.386116; Mon, 08 Nov 2021 14:55:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk637-0004KH-OF; Mon, 08 Nov 2021 14:55:05 +0000
Received: by outflank-mailman (input) for mailman id 223412;
 Mon, 08 Nov 2021 14:55:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d70C=P3=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mk636-0003vg-AG
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 14:55:04 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9bb4f14-40a3-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 15:55:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9bb4f14-40a3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636383303;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=utHCTMZrILp3s2D9e7j/UakdgUmNbri4ouoNGVdrwjg=;
  b=Q8PcpdLBiO6bJ9oiSQOTo+x0XMplgK5iah9RI85bl1DS5+NXUYhXxA4f
   Jg4lqCRTMFDDXau4+5N46UEHujHWN0Mw/eY/n4YgDM6VBDLr0gewRoMHF
   m9+CFLz3whdMyvS3RuD/W1xd76mwjfI7k2/qbRBOJGTQEHBhzacy3g71E
   Q=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: +ARwKXGJqmyXxres71OVjUApJ/rfLC/aV2PhTXbZk14qwyV62k3tgERQhxZSD/LnV6f7+Am8Kb
 E7FmeC0CCvlZ/rHBEwMHloeAfU+w4LfEPKgTauBqa1JxRVoIyPeSL10RWUIfcw/8L7Wx0HawW6
 qT63TxqaLjsDoe8vXYSWPYoJILU89k90uQhPPi7F/nIPi2mIirlkoswyXbNnP6+A+FTbFvZuk9
 wde9Qocht5ASlfQfA2HuI9gWo2CzJhb5vdphynrkt17/AaHcaJDmEFh2l6lZeK4jOqZ3bsGkSI
 Skjr+yIR4V+Zi9W8FdyclURQ
X-SBRS: 5.1
X-MesageID: 57702826
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Hh2XXKpfB1Wcn2GlY04SHnXIBYReBmJVYxIvgKrLsJaIsI4StFCzt
 garIBmGPPeNYTSjL9sgaoyy/R8O7MeBx4BhSlFs/Co2FihG8ZuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IDpW1rlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCncGidSwLIZKSpMBeCB1xAXlvOL9f/ZaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFJkYtXx6iynQEN4tQIzZQrWM7thdtNs1rp0RQq6EN
 5BHAdZpRCvuWgdzOVU7NLAZlqCJwV70IiF+g13A8MLb5ECMlVcsgdABKuH9eNOQQt5Otl2Fv
 W+A9GP8ajkBL8CWwzeB9nOqh8fMkDn9VYZUE6e3ntZUh1mUyn0WGQchf1KxqvmkiWazQ9tab
 UcT/0IGoaEs+WSxQ9L6Xhn+p2SL1jYeRt5RHusS+AyLjK3O7G6xBGIJUzpAY9wOr9ItSHoh0
 Vrht9L2BxR/vbuNU3Wf+7yI6zSoNkA9MmsqdSICCwwf7LHLsIw1yx7CUNtnOKq0lcHuXyH9x
 SiQqyozjKlVitQEv5hX5nie3Wjq/MKQCFdouEOHBQpJ8z+Veqb4dbCDy0fks8pkb92dZ0vZr
 X0Wgs23ubVm4Y62qASBR+AEHbeM7vmDMSHBjVMHI6TN5whB6Fb4I9kOvWgWyFNBd59dJGS3O
 BO7VRZ5vccLZBOXgblLj5Vd4ijA5YzpDpzbW//ddbKiibAhJVbcrEmCiaN9tl0BcXTAc4liY
 f93ku72VB727JiLKxLsFo8gPUcDnHxW+I8qbcmTI+6b+bSffmWJbrwOLUGDaOs0hIvd/l6Lq
 I8GbpfWm0sDOAEbXsUw2dRCRW3m0FBhXcymwyCpXrfbSuaZJI3RI6CImu5wE2CUt69Uiv3J7
 hmAtrxwkzLCaYn8AVzSMBhLMeq3Nb4m9C5TFXF8bD6Ahil4Ca7yvfh3SnfCVeR+nACV5aUvF
 KdtlgTpKqkndwkrDBxHNMGs890+JE3DaMDnF3PNXQXTtqVIHmTh0tTlYhHu5G8JCC+2vtE5u
 LquykXQRp9reuioJJ++hCuHwwzjsH4Dtvh1WkeUcNBfdF+1qNphKjDrj+9xKMYJcE2Ryjyf3
 geQIBEZueiS/NNlrIiX3fiJ/9WzDu9zPktGBG2Hv7y4AjbXozi4yohaXefWIT2EDDHo+L+vb
 Pl+xu3nNKFVh05DtodxSu45za8369b1iaVdywBoQCfCY1ixU+syKXiax8hf8KZKw+YB6wexX
 0uO/PhcOKmIZ5y5QAJAelJ9Y73ah/8OmzTU4fAkG2nA5Xd6rOidTEFfHxiQkygBfrF7B5won
 LU6s8kM5g3h1hdzaoSajjpZ/ninJ2AbV/l1rYkTBYLmh1Z5ylxGZpCAWCb67IvWNodJO0guZ
 DSVmLDDl/JXwU+bKyg/En3E3Ox8g5USuU8VkA9edgrRwteV1OUq2BBx8CgsSlUHxxpK5Ot/J
 2x3OhAnPq6J5Tpp2JBOUm3E99ut3/FFFpgdE2c0qVA=
IronPort-HdrOrdr: A9a23:36gQq60GTZRWAigut+ABnQqjBShyeYIsimQD101hICG9Lfb2qy
 n+ppgmPEHP5Qr5OEtApTiBUJPwJk800aQFm7X5Wo3SITUO2VHYV72KiLGN/9SOIVydygcw79
 YET0E6MqyNMbEYt7eK3ODbKadY/DDvysnB7o2/vhQdPT2CKZsQlzuRYjzrbHGeLzM2Y6bReq
 Dsgvau8FGbCAsqh4mAdzM4dtmGg+eOuIPtYBYACRJiwA6SjQmw4Lq/NxSDxB8RXx5G3L9nqA
 H+4kDEz5Tml8v+5g7X1mfV4ZgTsNz9yuFbDMjJrsQOMD3jhiuheYwkcbyfuzIepv2p9T8R4Z
 TxiiZlG/42x2Laf2mzrxeo8w780Aw243un8lOciWuLm72xeBsKT+56wa5JeBrQ7EQt+Ptm1r
 hQ4m6fv51LSTvdgSXU/bHzJlBXv3vxhUBnvf8YjnRZX4dbQqRWt5Yj8ERcF4pFND7m6bogDP
 JlAKjnlbhrmGuhHjPkV1RUsZ6RtixZJGbCfqFCgL3b79FupgE486NCr/Zv2kvp9/oGOu95Dq
 r/Q+NVfYp1P70rhJRGdZA8qPuMex/wqC33QRevyHTcZek60iH22tXKCItc3pDfRHVP9up1pK
 j8
X-IronPort-AV: E=Sophos;i="5.87,218,1631592000"; 
   d="scan'208";a="57702826"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cLq1KAdUKJ7DjmAyRqOTjkPLEIYR2KmQFOyO2I9S25iMTKN7rxTGNG4158oK97UtoNcNT+Mfix8uhusUU0u/qVrOCsXNQamDSL3015CHtn0W4RU7QugNljeP0TMh+poW4P4BUPB4Vh8ZYiQrEkBkRMt12djqr/Y0rQRI4wb2EQMpkeK/1K2Hmpnoy6aPZdFhFxxQgNDWAG/PJRNO9exs3NTX3pXvxS0PCm4X/3K+S/XOYVFqPnu+53DxM8kY8YyD2/nyPJLFv9Gu7YF6Y0X5ykL/0TpfE8j2X6KChK08gUdvSNAqR8YGPtl3yvseQ0anrofRKiWfIe/laD85PhFuHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=G4dXLwhRCQmoR0TaLqZfQ9kL11x5WQRuTpUgjxYI9aA=;
 b=M4w5wETdYYVpWixmERV094cp3/rTIp7XzIDEFE0dwUO8sG4pYFEwcB/2AAhFC3ra3PeX3eXaV7ufnERkIlI9Ra034ClAZvvWn0+hP+nSq4BNtVy9UfMQSJXYvvBJqRs3UuaGdjGmVm9yCQO7WMOA1Ijlk6kbTa1yYUUWQBwl5DzJOia5vncqgnhOiVyQK9FxMTbjh3KyEfRJEtcXfErYLcB7UMw6hPN1F85BzeIXFJ67H5yv/IWY8dWYqS27smKXqlitFwSdtrjRGt9bxTs/iLr6Gq8Oc9vIwp6wU4hh99rBFBhnXEzJ7C1zjfq3LECG63x9CD5o7z1Gk/to8T4syQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=G4dXLwhRCQmoR0TaLqZfQ9kL11x5WQRuTpUgjxYI9aA=;
 b=CsCP7pmvf+ej8BylgrxE2uyLxvhSN9Or9OCghmpp1ihhc0aggY6nmCib2qbH4UqZuGq3cGglZZ8bw6h9Z7tCmB84pKEL3aP2RerNC/Pxmkyt6x0CsNvG6+2BSBjO9Rp3MM0TXtfguJQTwxETKYP8E0F/QZ7MXl1KQxaB2xVOMrc=
Date: Mon, 8 Nov 2021 15:54:52 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ian Jackson <iwj@xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, <xen-devel@lists.xenproject.org>, Wei Liu
	<wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony.perard@citrix.com>, Juergen
 Gross <jgross@suse.com>, Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
Message-ID: <YYk6PLe+Vkfo4xFv@Air-de-Roger>
References: <20211104104834.10977-1-roger.pau@citrix.com>
 <24963.52610.316896.770905@mariner.uk.xensource.com>
 <8ae2c1ac-b220-a5ab-920b-244590ae3ef0@suse.com>
 <YYPkx7148Ive/352@Air-de-Roger>
 <24969.14415.979563.323346@mariner.uk.xensource.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <24969.14415.979563.323346@mariner.uk.xensource.com>
X-ClientProxiedBy: MR2P264CA0021.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::33) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ed999b46-d6aa-4074-9108-08d9a2c7bc03
X-MS-TrafficTypeDiagnostic: DM6PR03MB3913:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3913D227FB4F1008B51F429A8F919@DM6PR03MB3913.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Ok7ieeWvES5qcUUat8H68Y6YIhAqAHdpPHaj485dSaEsnei2y22uAmpasxQYp/7RdIZcdC8ZxFEb8QNexoV4PUw15CYYeib7KHFuOt2uJnyEGbN4o4z79p6k2HSuu5RUwRcIy9zg234hqX2g2mt1kZNCovSVQ0bPsdwzNbCEx8Nnp1XCNbBJiKdppcqe+UG0T5Hw7EBpdXkTRPt0s6vnlI6dNpM8RJ1xholtein8Zu+xLt3JpcQsJB8iDF175oT96VSw2P/GKJj3xaHta2UvYeRfMe0Y1q0GFmrRQFywq6XWU9BvaijfYDf3XUze/AEhGEdnKhWWkgbUIYjlprku3rXv3qjxSjt7qsA9efnYmb+fq+JD4YWzhuTSWl4tg3vImAlYFB1qc03TPvNjg18+meaakXfKOZTQvR25BD3K1AG48y18UxE2KqQEWunSbwJ3Lm9j2zSBSmI2qnJsmSjE+7q0KF6M5HvYiymhyvofQ3Dzg5475mhb722zwgy72CceslXq4jJiYLFvMoSxGETd8gwtvfLlmTLpzCplPbFGb3cJb3yuUfYHMLDQ9idn5MQXEC35FgMfkKpdK922P4K7S/N4nHhsxJrjv2XyVQRM9CdRO49IicdUEfZB+SpGmMeIJDtNlxf151y7SmpLSLNQmV1/g9Wl5RGh/DNh088TcDT5fyytAL6BcEv15bYpHNoBugJqX70Hu9nBc5vyFftmyw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(86362001)(956004)(4326008)(66556008)(2906002)(6666004)(54906003)(9686003)(26005)(186003)(5660300002)(33716001)(6486002)(6496006)(316002)(6916009)(82960400001)(85182001)(8676002)(8936002)(38100700002)(508600001)(66476007)(66946007)(67856001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OVl5YXhvRGVIZGpidklmYzErZ3RVNUxjSlI5OG1jLzdIN2V0bmc5cnZUQXo0?=
 =?utf-8?B?ems1Vzk5MWRxaUhjUDFMN2EyYzl3TGdVWnMvQWUxK3EwVU5vMHpRazU0cmhX?=
 =?utf-8?B?ZWtCVzdCS2tONDA5b0xwYlRnWndQcnFUV0NweVhyVGl3eTF5QkZOd28ybWFC?=
 =?utf-8?B?alBYc2NvVjR1aFFCRTJjTmtFWXd0Q0Q0cFozd0pkaVQ2L04vRURweUg2bG14?=
 =?utf-8?B?TlNhMi9IMUk3MHMvUmNLNGpFZ0o2dmgyOW5XOUs5TVFlKzZac2Nhcm1ldHo5?=
 =?utf-8?B?WWNNaWVEMUZhWm9uSjhzNXdtc3ZpQ1IzNFRxVFlCVEN1K252YVJGWE1wYVM4?=
 =?utf-8?B?NHhMMU9JcUJ4cG9pbEwzUVVNOTVnbzJGR0ZZSys5RW43RkQ3SHNWTVBWNVVO?=
 =?utf-8?B?OGZsMHpwM2pMRWZJRVUyaE8xRWNpTFBJdjEwNkJwLzVXMllJMW1PcGpuN2x4?=
 =?utf-8?B?eU1mLzJHZkhvYW1RMVN5ZE40MGJTSERweG11TFptL01NRG1YOVNNdWY5bXlt?=
 =?utf-8?B?eVF2N1JvTHFXMVVBTkpyMXFaT00zQWhLN0M2WlZXK1AxbFVjc0pnTXMwcFBa?=
 =?utf-8?B?UXkvcVFQLzRMUDA4bXFvN284M2w2S0lzQyt1NVVkK0txYkN3T3FaR052TUxG?=
 =?utf-8?B?SlBQUk9LVUlvcnNWMjRrbG5yaGs3cERjVXBTaWZIeU8wVTMwbUFLSHcvbkp1?=
 =?utf-8?B?ZWl5b1dHMmduWmE0SnczQU5ES1NiUlBUa3l2OHBPd25uL2J6dGN1MGgrUTlJ?=
 =?utf-8?B?Q3kzSmdHWVc4RWpwNVhuZ3liUDNseXVJNmx3NGpWbTEwWXlCZkpPZE1lbHpm?=
 =?utf-8?B?TDRaV0Q2Wm5HK1RPRmZyM1k3U05mUm42ZThDbHJaZy93cDR2VEpPWVFuVklI?=
 =?utf-8?B?TytWeUI1cGlidTJLUExHSFk5VEVOdlM4TVJKYkc4V0w2cjFFcHVwUENEVi8v?=
 =?utf-8?B?VGlOZEcwNWI5Y20yclB6UmFnUE5VdysvYjRsR1duc1Y2Ukdnd0U5VmFOQnlG?=
 =?utf-8?B?YWo2NkhYeWZKS0ZFdFZNb2dES3dEbzIxK0cxTWlld0ZYVVpCWlJTYWpxNDMr?=
 =?utf-8?B?ZmZzQkc4aFlFK1Z5V002NXUyamc3OXFJbHM0bEs5RVpraUFJU3ZxenI2Ny9S?=
 =?utf-8?B?S1d5SkxmVmMwODI0SmlKeEZ6bUdrNTh0UEhlY2V6aGpMK2JaTGxnK0IrZm81?=
 =?utf-8?B?RzNDTmZSTnkxZk1oaXFNYjNMWVhZaHI0ck5RZEFXaWFYak1raWRCQnE4WWJo?=
 =?utf-8?B?OGVyQzA2RlVodWlSWi9wZDZERGkrTkxqTThkaFdDSmdOZDBXWHlXdWZWK3Rv?=
 =?utf-8?B?SXJEZ2ZzYjlzREpPb2ZieCtlSExmeVp4V291SVNMT2RrQjVNbDc0L0lLUmZE?=
 =?utf-8?B?ZmVhQ3cwNWJyU2d2MUpXR01XMjYyT2lsa1pQMktaMGY5VThidGV3c1hCc2Vm?=
 =?utf-8?B?K0dMcGxiampMZFBVR3hxN0FOVHVwbnFvRE9GY2YxUzRXbmIyNlBIeDBoUFdR?=
 =?utf-8?B?Y3I0OEwwL0hYVnBSYnliYmhFdGIvVXJGWjNQQ0FsYnRQRzVOVjNBSEtsZ3hu?=
 =?utf-8?B?V2hrVW1TL0NwbDZGcDVKTDEwL1Q5aXoxQ3JsbDBMdlJBWGg4TlJUb3owK2hP?=
 =?utf-8?B?U1BQL1NUY25aTldxN0c3ZGdWcjhjR01RS3RDbUV0dGRHZ3g0WTJvZWJaemN0?=
 =?utf-8?B?RndFUkdRZ2h4Vk9NRzVpOGJFbGFHaXFBaUZNK0gzSjFkRnZNQTd4MDBCNmda?=
 =?utf-8?B?ZUNHaUZOMlZHcnNBWjNDYUFTM1BsR1VheThHN3pMbTdORzBaZ1NhVDNtbEk5?=
 =?utf-8?B?dlZjOWVyaXdLcXJGOEtjUjRCNkEwNUhtSGhqaGR3Tk45WEJ4bUpSaDg1NkZQ?=
 =?utf-8?B?R3E2cXJtSDZZcEgxQkdJOGZPdHQxSUthaVU1K2xqL1FremZOL2RIck5lSXNB?=
 =?utf-8?B?SjlEV2hjNGVqNHc5L3NuNXZXTTVvT2p1MmRoTEMrd0ozYWlCaUFHM0RiWkll?=
 =?utf-8?B?ZHFiS202dWtqZ2x2WGJjRFFNb1hLNDhHZlhabHVpYk5ZUG1PQ2tVRTY2d2hD?=
 =?utf-8?B?TXkwUW1vZzgrMTN2TEI1ZDhNUTZjU1RETEl6ZG5Ycmk0RWpkY0hNZUIyUUc5?=
 =?utf-8?B?NmVEbUsyQzUzNkNzUzM1ZEd0YnltUVFWOWF1ZC9RQSs2QThNdXRST2o0Z1Yz?=
 =?utf-8?Q?w6q/Oku0Ev1Dxvre5r+2z3U=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: ed999b46-d6aa-4074-9108-08d9a2c7bc03
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 14:54:58.8417
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mFT/qcCqNGj1zHhVGr0X3ZmLWN7fRk2hRH0N+ouUiHmSSWCEiaDNjsmjeDlcyTiKBtrjl7kyqqfnz9U61sfGrQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3913
X-OriginatorOrg: citrix.com

On Mon, Nov 08, 2021 at 02:46:39PM +0000, Ian Jackson wrote:
> Roger Pau Monné writes ("Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
> >  Overall I think it's best to
> > express supported grant versions independently, and we might wish to
> > also allow to select a discrete set of grant versions that a domain
> > supports. IMO it might be sensible in the future if a new grant
> > version appears (v3), to select to expose grant v1 and v3 only to the
> > domain, and avoid v2. This would require some changes here, but we can
> > see about those when the time comes.
> 
> I'm not sure what layer we're talking about here.  The patch
> introduces a max version into the libxl api.  Is there any significant
> chance of a v3 (and hence, wanting to change the api) any time soon ?

I think it's unlikely, as it seems there's a trend to move data
transfer between domains from using shared memory to memory
duplication (ie: Argo).

It's also not clear to me whether anything similar to grants could be
made to work together with hardware memory encrypted VMs.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:01:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223425.386127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk68r-000686-HU; Mon, 08 Nov 2021 15:01:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223425.386127; Mon, 08 Nov 2021 15:01:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk68r-00067z-DP; Mon, 08 Nov 2021 15:01:01 +0000
Received: by outflank-mailman (input) for mailman id 223425;
 Mon, 08 Nov 2021 15:01:01 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk68r-00067t-0m
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:01:01 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk68q-0006SK-Tt
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:01:00 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk68q-0004FD-St
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:01:00 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mk68n-000196-E5; Mon, 08 Nov 2021 15:00:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=IH9cltthFSUTLIRqgS3W0iX6TDvQ6YObmDsKPkc7stw=; b=CUZy6VlLnk34i7s/CxaeAWxp4w
	q2+mw6rIlLDFydui5icbhnIMUwOBMLJedA4X/OvVb0OoHoIl7QV7x29/uXBIcye8moZUATycd33/7
	jf2Aibzx+QDw2RcfApPM8ssC/XRJ0TpQ1IF1HkiJvvt7uLvsPb3X+s8GWGwj4QMUoRVI=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24969.15273.122188.406602@mariner.uk.xensource.com>
Date: Mon, 8 Nov 2021 15:00:57 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    Andrew  Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    Julien Grall <julien@xen.org>,
    Stefano  Stabellini <sstabellini@kernel.org>,
    Anthony PERARD <anthony.perard@citrix.com>,
    Juergen Gross <jgross@suse.com>,
    Christian  Lindig <christian.lindig@citrix.com>,
    David Scott <dave@recoil.org>,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
In-Reply-To: <20211104104834.10977-1-roger.pau@citrix.com>
References: <20211104104834.10977-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
> This needs to be applied on top of Andrew's:
> 
> xen: Report grant table v1/v2 capabilities to the toolstack
> https://lore.kernel.org/xen-devel/20211029173813.23002-1-andrew.cooper3@citrix.com/

OK.  Thanks.  Both patches:

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

I hope this won't turn out to be a mistake...

Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:04:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:04:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223433.386138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6CD-0006me-1M; Mon, 08 Nov 2021 15:04:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223433.386138; Mon, 08 Nov 2021 15:04:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6CC-0006mX-UK; Mon, 08 Nov 2021 15:04:28 +0000
Received: by outflank-mailman (input) for mailman id 223433;
 Mon, 08 Nov 2021 15:04:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk6CB-0006mR-JK
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:04:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk6CB-0006XC-IT
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:04:27 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk6CB-0004UJ-H6
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:04:27 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mk6C8-0001Af-3m; Mon, 08 Nov 2021 15:04:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=kxBQWwT3I6ucVWO3bz1zSWjkcqM7uOedg1/GtFtu9dI=; b=GAFJjc10d9eKGUdann9lYd6Pes
	+jEWMfGqIrQijWwM+3bu3f2BXY6ILXlF4tHLTeWrUBAU3KdCYBKO6bEve+YJMAmCA3Ogli6LPUfhW
	YJuBJlLLc7FY/O4ffFNueS3mm5pzGMJqMcKXJ4SpVC6A1h5rk2MSllUjqjjUCCBRAlWM=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24969.15479.681521.102446@mariner.uk.xensource.com>
Date: Mon, 8 Nov 2021 15:04:23 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    Wei Liu <wl@xen.org>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <royger@FreeBSD.org>
Subject: Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
In-Reply-To: <89eda99d-67da-ad97-6040-db79702636bd@suse.com>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
	<43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
	<YYVQAH7OYmFSVOei@Air-de-Roger>
	<24965.21029.795504.152439@mariner.uk.xensource.com>
	<89eda99d-67da-ad97-6040-db79702636bd@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU ACPI table parsing"):
> On 05.11.2021 16:47, Ian Jackson wrote:
> > This part confused me.  Under what circumstances would we backport
> > this ?  AIUI it would be backporting a potentially-fragile and
> > not-readily-testable bugfix, for a theoretical scenario with a
> > straightforward workaround.
> 
> Well, I've said "candidate" for this very reason: To me, every bug
> fix is a candidate. Whether risks outweigh the potential benefits is
> then influencing whether to _actually_ take the change. A reason to
> take it despite the available workaround might be that
> "straightforward" doesn't also mean "obvious" here. IOW once you
> know what to do, doing so is easy. But one first needs to arrive
> there.

Could we not do a smaller fix that would print something in the boot
output, mabye ?  That would be a lower risk change.

So far, I think the tradeoff here isn't looking very good: a risk of
unclear magnitude for many users, vs a hard crash at boot for a set of
users we believe to be empty.

As ever, feel free to contradict me if I have the wrong end of one of
the many sticks here...

Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:07:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:07:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223439.386148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6FI-0007UX-FW; Mon, 08 Nov 2021 15:07:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223439.386148; Mon, 08 Nov 2021 15:07:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6FI-0007UQ-Cf; Mon, 08 Nov 2021 15:07:40 +0000
Received: by outflank-mailman (input) for mailman id 223439;
 Mon, 08 Nov 2021 15:07:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d70C=P3=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mk6FH-0007UK-Ee
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:07:39 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b08a358-40a5-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 16:07:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b08a358-40a5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636384057;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=Wblfqh3WzBwE8nSffR+fgM4n0bj78+o55Wh3VKFG5SM=;
  b=Talo/XYzH1CA/zmJN2QcDyWIDchdFs41nzJhUtudk9saDPOHdVZbOLgs
   nPOgAW1hy/Dn6qyg2dNOeNC7xwgZT5ZdzIHSCzg8FVpqyQgp4M3mvctJG
   mH4B/Q+FZK/qvMZlRMf6XHOVkxhfZaghQibBxw2NyfqOfJHxkLu4BZA1g
   4=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: bUN0SLjg79ZQjt7T6vN/3+VZ0uDCt6v5h9e2NC1JnDwj926fsOE2CBYS8Cpzub2/oBuMH/z8sh
 OGikmjk7n1/xwwTX9TzPiPxZF+yVYIFP0UWfWFpSF6E961mFCq15aNERBNEasK3Pj4lKAz1ETI
 gU70TsjDLJaj6E4cvgtyxaAECTOGddXz/mlXWJSkzCWuoksQvIoXtklGemqcnW2JxEzlUowuTa
 +fHRhIjj4nKpBDULDEGNIDGJzHhhwH0nqpLoqTEAcOQO8+apcyHeKIiXshTndWLkJW6cVAZqrs
 +4DNqZbJNtJfXc4LzDBKLZfL
X-SBRS: 5.1
X-MesageID: 57340858
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:FwGSgKi5O6+hobfcZw9wau0NX161LRYKZh0ujC45NGQN5FlHY01je
 htvW23VM6vZZmKkKd52b4vk8UNQvJaGnNYwT1M+pHhjECsb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cw0YDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1wrpnzUAUxN5eVlbw5diRzGR0gH+pvreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2ZsSRaaDN
 6L1bxJuMEn/TgZhfW43VrZ5gsb5pkS4VmxX/Qf9Sa0fvDGIkV0ZPKLWGNjaYNuRXu1Og12V4
 GnB+gzRGQoGPdaSzT6E9HOEheLVmy7/HoUIG9WQyPluh1GCw30JPzcfX1C7vPqRh1a3XpRUL
 El80iYns6Ua7kGgSdj5GRqirxasvAMYWtdWO/037keK0KW8yxaUAC0IQyBMbPQitdQqXno62
 1mRhdTrCDdz9rqPRhq196iWhSO/PzAPKm0PbjNCShEKi/HhqowuihPETv54DbW4yNbyHFnY3
 DSivCU4wbIJgqY2O76TpA6dxWj2/96QE1Bztl6/sn+ZAh1RWZWgJJWq8VHhtPsYCKOkZVO94
 lpDsp3LhAwRNq2lmCuISeQLObim4feZLTHR6WJS84kdGyeFoCD6I90JiN1qDAIwa5tfJ2e1C
 KPGkVoJvMc7AZe8UUNgj2td4ewOxLOoK9nqX+u8gjFmMskoL1/vEM2DiCetM4HRfKoEzPlX1
 XSzK5/E4ZMm5UNPlmveegvl+eV3rh3SPEuKLXwB8zyp0KCFeFmeQqofPV2FY4gRtf3f/l6Mq
 o8Da5vUl32ztdEShQGNoOYuwa0idyBnVfgaVeQOLoZv3TaK6El+UqSMkNvNiqRunrhPl/egw
 51OchQw9bYLvlWecV/iQik6MNvHBM8jxVpmbX1EFQv5gBALPNfwhJrzgrNqJNHLAsQ4lqUqJ
 xTEEu3daslypsPvoW1FPMas8Nw7HPlp7CrXVxeYjPEEV8cIbyTC+8P+fxup8y8LDyGtstA5r
 aHm3QTeKafvjSw4ZCoPQP7wnV63o1YHn+d+AxnBLtVJIR2++4l2MS3hyPQwJphUexnEwzKb0
 SeQAAsZ+raR89NkroGRiPDWtZqtHst/AlFeQzvR44GpOHSI5WGk24JBDrqFJGiPSGPu9ay+T
 uxJ1PWgYuYflVNHvtMkQbZmxK4z/fX1oLpewlg2FXnHdQ3zWLhhPmOHzY9EsagUnu1Vvg6/W
 0Su/NhGOOrWZJO5QQBJfAd8N7aNz/AZnDXW/M8ZGkSi6X8l5qeDXGVTIwKI1H5XIoxqPd532
 uwmosMXtVCy00J4LtacgylI3G2QNXhcAb4/v5QXDYK32AomzlZOPc7VBiPsuczdbtxNNg8hI
 yOOhbqEjLNZnxKQf302HHnL/OxcmZVR50wakA5cfwyEyojfm/s6/BxN6jBmHA1awyJO3/93J
 mU2ZVZ+Ir+D/mswicVON4x299qt2PFNFpTN9mY0
IronPort-HdrOrdr: A9a23:3umV4almgOZ1evb+XLmfrV6EifnpDfPKimdD5ihNYBxZY6Wkfp
 +V8sjzhCWatN9OYh0dcLC7WJVpQRvnhPhICK0qTMqftWjdyRGVxeRZjLcKrAeQfhEWmtQtsZ
 uINpIOdOEYbmIK/PoSgjPIa+rIqePvmMvD6Ja8vhUdPT2CKZsQlDuRYjzrbHGeLzM2fKbReq
 Dsgfau8FGbCAsqh4mAdzM4dtmGg+eOuIPtYBYACRJiwA6SjQmw4Lq/NxSDxB8RXx5G3L9nqA
 H+4kDEz5Tml8v+5g7X1mfV4ZgTsNz9yuFbDMjJrsQOMD3jhiuheYwkcbyfuzIepv2p9T8R4Z
 TxiiZlG/42x2Laf2mzrxeo8w780Aw243un8lOciWuLm72xeBsKT+56wa5JeBrQ7EQt+Ptm1r
 hQ4m6fv51LSTvdgSXU/bHzJlBXv3vxhUBnvf8YjnRZX4dbQqRWt5Yj8ERcF4pFND7m6bogDP
 JlAKjnlbhrmGuhHjPkV1RUsZ6RtixZJGbCfqFCgL3b79FupgE486NCr/Zv2kvp9/oGOu95Dq
 r/Q+NVfYp1P70rhJRGdZA8qPuMex/wqC33QRevyHTcZek60iH22tXKCItc3pDfRHVP9up1pK
 j8
X-IronPort-AV: E=Sophos;i="5.87,218,1631592000"; 
   d="scan'208";a="57340858"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jebrtOulpPS1RUBShU+gTj+Ebn6//Hole1+rt2zYWocUEHRO3PBPplU8niFq+5XxH9MJTRa1wt8u4drfbgsDiO+8v1Ciq8DavbWtdg87ARxUFpilsPVnvDQpCA4w5//YQuR3TaRnb7BIgDTim4FDm4AFtOYjR+9iSzhi6Gl4+uyURagufnuHygmQCB2+ZVxKOZhuWh6Z4rF9wGyTz94Wxl1oqqvNC+1bJND+Do1kRTxsurg8QswOgSfkr4mC9DD4GaROXULwBsvYc31AWxh625slW9LBtRjBvlrkbTUnm0l3v3roCBJAMCFsnUi6wa1L+P+OdMvwMSZC9Q/pIl6kUA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4D/21AMvE0BXqsWp6L6XdjqJ1kvAowJZnYHj0oAslqk=;
 b=YAUZF/n7V94CHJgTh2nl2czq0xZAFNvjksvVKID+oL+etRHk9bgyeMZwPK2njM3SpGTX4exLNZMvfClnRQfWZb7JwdOJt2rkcf3VM35jwyPXrCHDTLa8a4Q4TrIRstRUHAx0hDk6OaZKbe5wYrjOW8EC2Xtqo09311BRo13evziWC5apa7Oy0Y3k3A9Nt0g/RlT8rJsz4RlwQypr9+Hz/c2Yhcd79uk0d8VfRConfQQZxTyO0vKZIGuSijx1YkE1A+hM1QVuqklH48jRnEBLPxblK67Fp/z3GWxZFqVQMpwP9xN1/Ojckmn+fkcJV0qjyzi/8XzL3yL6fm543cfs2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4D/21AMvE0BXqsWp6L6XdjqJ1kvAowJZnYHj0oAslqk=;
 b=N4QRiR0FdVavEO1sj8z2BI8nfJolaccqHZH82gg7SZPfzHds450ZW6xREDfgqRtD9v0xm1wsYhs7pvPJmcjEb3wh6FeKFJzhgTaMkYPxQu2ns8bpaSo1ONxExopm2qtZ44Dbe8tsVlIUGhTEHLIPSbPlOU9FnAuBpNa21dImJrQ=
Date: Mon, 8 Nov 2021 16:07:22 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ian Jackson <iwj@xenproject.org>
CC: <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, "Christian
 Lindig" <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
Message-ID: <YYk9KiAC+chGNwaX@Air-de-Roger>
References: <20211104104834.10977-1-roger.pau@citrix.com>
 <24969.15273.122188.406602@mariner.uk.xensource.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <24969.15273.122188.406602@mariner.uk.xensource.com>
X-ClientProxiedBy: MRXP264CA0032.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::20) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: df7e1b7f-ed13-499f-fe49-08d9a2c97ac0
X-MS-TrafficTypeDiagnostic: DM4PR03MB6064:
X-Microsoft-Antispam-PRVS: <DM4PR03MB6064C738A36FD6EF31728AE28F919@DM4PR03MB6064.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 0FoKNbNS3wAZKfbc9Qsy8jnQg/Sw4+nd3lF2q9APK9rh06jcaiQwrqLNtp6oZn+mwKKZfWVYGbl0uGiyOrQalrd5+mT1PZbmRP0te09NRQe0h1TQDwHHeFPiG/yZJmW5x1lgT9x4rsShH6GdYkmbfEbM9ZkrC0DQ2F9wgZbdPH1CPB5ljYAwf1rvKuwKhM4oPdcQQh6UoJfuEci9EZtURZluIyR8UVn0XynS0sC6oUUJQGcQAt8gDzuhlcCptCeLVZstd1g9hKcEBS83jX0bPxaT4dNQxCnnohET2vsWwMLvDV2PNsmdc8FEA6s9rRejuk51/PMFHLi2K8myR4gMuSyPTBlCKYkXzEImc5wU5wadSae4jD0KOV4Q6quWgr7n0G+/NBHddGlrRZs+8yEMRilDnFlpASfTUsHHF5mN+S0z/REOu6NF9aoGZFjlV97Ta3WGqajlyBp/QjzFqA/OfojT+bey9C9qLJHwekCVS+VBCIy9G/VrZadyE+X8YPr/herbP/eE2NxiKxLnVm2vBCh4nGwPWZqroI9RC2DfmeZdZp9PQrCoD5u5arHOwRfvjfiUZfiA64AbmPYt1MzhBsgTuVcxYbj3BXjKNrtpekHb1B5P3ttOq2LN7DP61wj9H26Oxf6muadmormzB553nRA6sVyiGFMWrxEXpuJ/Vc8hcaCR+zIWeko1DMV/8anVcFScyRc7oSYQRJsD/dajDuGvh+x/C8E75JKeF+JUVG/q6ef871ds1Wu+F6CGjCgH1eGMIeTWl8GhDRaZj3ockTCJoD9j0SMJt7lljOcCaio=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(2906002)(8676002)(6916009)(6486002)(33716001)(9686003)(54906003)(85182001)(66556008)(26005)(66476007)(508600001)(316002)(66946007)(4326008)(86362001)(6666004)(5660300002)(8936002)(6496006)(82960400001)(956004)(4744005)(38100700002)(966005)(186003)(67856001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NS9wdHBqejVmeDJScFZXTzM0SzlyRnR2bUgyRyt5cUNQUk5uZWxJZmxnVnda?=
 =?utf-8?B?YVk0YXZVcmlPeG9IZnhoR2Q3WUIvRFpSTlNpbXVRamU1dTNOZUU4ZzdPNUU3?=
 =?utf-8?B?WExGUmt0RmFrNWNzWGs0N21WUE5yRW1IVlRlVGJJWUE3NjZ1QUtLRUQ0bHF4?=
 =?utf-8?B?N25WUEpiMVZaRGVEdC9wMCtYOFl5WWx4V25tQkNxV01rd1JZSkE2OFVodzJj?=
 =?utf-8?B?K0pTVHJES0lrbmpYUnRrdnJFOEJ4dTdnWFdVZlBKdjN0cXJPazJ0a1BlRmNa?=
 =?utf-8?B?MXdKMk0wb2l2Q0w2Q0FkTU80VHBpQTZTblpzVVdpSTVaNTd4Zmp2Qk9EYVUv?=
 =?utf-8?B?NE53UXpodE54V0FwdEhKdnV2akNPMFI3K215cndRTHJKVmdCZ21LbVR5Rkdx?=
 =?utf-8?B?UHdSeld1a1BwZ1o5alZHNXRYRE1rRXM4ZThRZ1JnVEhMN2YvZThWbXFKVncx?=
 =?utf-8?B?YlFZV0k2QjBQT25tZytzUTlNWDg5OEVaOGZnZnBzZ0U1OElBaTdkOUE0Q3JS?=
 =?utf-8?B?d3RYeFJ2bEM5T2hIcVZjOWx6bW4vQ2J2SXk4dWdUT3RjaUNFZEp3akptSmw3?=
 =?utf-8?B?d2srYkM0TDRnK3ZTR2xZaFdxayt5OWkyMGp5U2FjWmU5RGNUMGxYa2R3NjdI?=
 =?utf-8?B?RDRjRFFkdkh6cStUcXRNcDM4dU00enZQNzg2R1lWRjBKMTlLWjBMV0syc1cz?=
 =?utf-8?B?YXBKREtxLzkrL2hvYzFyMXBYWmtVckY0cVBCRmxnQUUwbEtQUlo4NnZBQ2U1?=
 =?utf-8?B?S244VU1iaUNNYXNTcnBxZmNRRDVsUjNOWHg2S05jaGRoSm5STXVlTzU5Ynhu?=
 =?utf-8?B?dG51UDBENURUUndqL0NoZThlZ3hKbGRsOVc0MFlPeXE5UDZLbmkzbk1relpJ?=
 =?utf-8?B?RFFiOEdoK2R1NDlJTSt1bXBuT2RDRGIzbXVEMGNwR1lRa3M2VzltRFlpL3FC?=
 =?utf-8?B?STZSUEphamc4OXVNQXFEU2pXWGdBYTdnNkJGZE4vVVpyR2lJcGNHUlVManhp?=
 =?utf-8?B?Y2EwczZNZEQwTWtBTnozZ0c0NU9OdllncmV4dGhrc0FSZDdZaUNQM2FuS1dU?=
 =?utf-8?B?eTVRMDVST3FOaUovRC9DWURSRjBQQ1Z4VVdsOGNOSUEwZnU2SU1IOFZNWXhS?=
 =?utf-8?B?TnZVSm9LRjB0VEtmVTgyWHpiaHR6NXdtOHo3RklMTUNjZElyaUVWMkJ4YzZh?=
 =?utf-8?B?cmN3SUhidlQxby9hZTIvaFQza0dTbGF1dUNQQ1kwNXRwRk5MZEh6RDhQMWRN?=
 =?utf-8?B?N3J6OEY5ak1yMXdMNG1yQko4cEJCL2h3MTZaSmdBcGU5aktXSlE1NVlzQWFy?=
 =?utf-8?B?ZEE4Z0pFZE9tdy9SLzBncittWEFrclN4YW9HTEZzNjNMR1Z5TDRQTVhUQUZ3?=
 =?utf-8?B?YW5samNmNmxVRGdrZXRzVHNVVFZJYXV6UjM4UVhzZ2hBMWhXUkx1UlBKZWty?=
 =?utf-8?B?ekp5SGpINUVLVFJjcGRwNG9ITFlBeGhEMDJuREVqc1hBcVJQc1loZnJkNWU3?=
 =?utf-8?B?U21ISFBHSnlnZ2hpWGJEU08yQWQzVUYrMFNsZStFZUx2OUF4UHd1NUFLdlRs?=
 =?utf-8?B?VHpxS0NIZ3lpTlRLUnV5UHpZS1JUZ3drbEU1N2NLOFl6VHArR1F6enlZQlV1?=
 =?utf-8?B?c2Y4NjJxK3c5ZU0yTXhQNUdkNVBQNEdFLzhvR2c5dGVvbVA3S1UyVTBkRlVE?=
 =?utf-8?B?MHNqd3NILzNpc0g4WVl2Wi95N1hXNm9uSHR2Z0FKZ3huZGhWMDB0VXlWOWpw?=
 =?utf-8?B?QmpqWjExTVBHdFhWczgvVmpiWUVpUHN3em5OQkNNbmQwV0NaVlRaNzBEOExY?=
 =?utf-8?B?cFZXMXF2VjVyMm9LdHJxWW1oV2ZhTWFGRDF5Q0QwVmRTTVM5Lzlsa3Axa1NM?=
 =?utf-8?B?TmMxR0VBbHBwRWhDUmdYZkUwa2treXJKQjVGeE5RYmczcmxwRGdZYUY2bHpP?=
 =?utf-8?B?V1pvNGN1VnlOR2VPRUhWQ2g3azExemxrNkNITUQrVXFmQjZiclE2UnNrdmpJ?=
 =?utf-8?B?UXVpbjZoQ1ZWSjdTRE8vcnJ1UlBaenBYaldseUFqeldkOFZUOTV3VzVOSHFj?=
 =?utf-8?B?OWpTUW1NdmJoS2pjb1BjQ0pEUGZ1YnRlK0ZIeThBamUwNnI4aHFocGN2eFpQ?=
 =?utf-8?B?Sk5HOHptY2ZUMWJNVktrYWtDb1lpRDE4dDBVMjl4UHVYVWlVVXJUWmxXakhk?=
 =?utf-8?Q?8MeRVgkeaixDpJhAMrylUGs=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: df7e1b7f-ed13-499f-fe49-08d9a2c97ac0
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 15:07:28.2355
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: a02FcLpgq2KrlehZ+1upb0FmR65EakEXvrP58S0wpNxkqlmrxwWjYyA+1YJpLpzw5eZf9mWDo8D4wMI6OIBECQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6064
X-OriginatorOrg: citrix.com

On Mon, Nov 08, 2021 at 03:00:57PM +0000, Ian Jackson wrote:
> Roger Pau Monne writes ("[PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
> > This needs to be applied on top of Andrew's:
> > 
> > xen: Report grant table v1/v2 capabilities to the toolstack
> > https://lore.kernel.org/xen-devel/20211029173813.23002-1-andrew.cooper3@citrix.com/
> 
> OK.  Thanks.  Both patches:
> 
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> 
> I hope this won't turn out to be a mistake...

FWIW, it should be easy to revert those two patches.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:11:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:11:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223446.386160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6J6-0000VQ-38; Mon, 08 Nov 2021 15:11:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223446.386160; Mon, 08 Nov 2021 15:11:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6J6-0000VJ-08; Mon, 08 Nov 2021 15:11:36 +0000
Received: by outflank-mailman (input) for mailman id 223446;
 Mon, 08 Nov 2021 15:11:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BZQ9=P3=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1mk6J3-0000Tg-He
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:11:34 +0000
Received: from desiato.infradead.org (desiato.infradead.org
 [2001:8b0:10b:1:d65d:64ff:fe57:4e05])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 213c3ca2-40a6-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 16:11:30 +0100 (CET)
Received: from j217100.upc-j.chello.nl ([24.132.217.100]
 helo=noisy.programming.kicks-ass.net)
 by desiato.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux))
 id 1mk6Ij-00Eu4k-7h; Mon, 08 Nov 2021 15:11:13 +0000
Received: from hirez.programming.kicks-ass.net
 (hirez.programming.kicks-ass.net [192.168.1.225])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (Client did not present a certificate)
 by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id 023D130030B;
 Mon,  8 Nov 2021 16:11:11 +0100 (CET)
Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000)
 id 83AD3202A012E; Mon,  8 Nov 2021 16:11:11 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 213c3ca2-40a6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=dxaRhZt5F08/udnZL3CT8J1LOmJHz7WyeU2TgGdEl3U=; b=ZYlxcYrANbLZOibAhF/IENDrFq
	8darFlH3eoI0uZ7T38r9vgIUO0SbL9MCfLDTsVuyqXOPH9q+41BxOp9julYgXd4J7qWj52i6Ktcx+
	OkXQDZxItZ+SK5YuUZP0qAbFZTqV8NvdkWNLnbIMXyD6tbMd0BRCmD/czn6j89W5ZYSFy/n9PU3ei
	hw4y7LWmR2hSpxiljrFbFNWYUPfZxoHZNhFRIWrCB3dVplbrDB8RiB3f3aZ3HaWNsMaCdPYbO6G8/
	G5D/XIMtUApg0H5wwY41prTHDbcEKw9vyOQKb117TlL051INr0gnWhlH0QMjDAOQ5M9h7WdBPeOgA
	7AP3rRHQ==;
Date: Mon, 8 Nov 2021 16:11:11 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
	x86@kernel.org, hpa@zytor.com, jgross@suse.com
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
Message-ID: <YYk+D17oIOGKWNtN@hirez.programming.kicks-ass.net>
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>

On Tue, Nov 02, 2021 at 07:36:36PM -0400, Boris Ostrovsky wrote:
> Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
> introduced cpu_l2c_shared_map mask which is expected to be initialized
> by smp_op.smp_prepare_cpus(). That commit only updated
> native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().
> As result Xen PV guests crash in set_cpu_sibling_map().
> 
> While the new mask can be allocated in xen_pv_smp_prepare_cpus() one can
> see that both versions of smp_prepare_cpus ops share a number of common
> operations that can be factored out. So do that instead.
> 
> Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>

Thanks! I'll go stick that somewhere /urgent (I've had another report on
that here:

  https://lkml.kernel.org/r/20211105074139.GE174703@worktop.programming.kicks-ass.net
)

But looking at those functions; there seems to be more spurious
differences. For example, the whole sched_topology thing.

Should we re-architect this whole smp_prepare_cpus() thing instead? Have
a common function and a guest function? HyperV for instance seems to
call native_smp_prepare_cpus() and then does something extra (as does
xen_hvm).


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:11:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:11:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223447.386171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6JE-0000oK-CV; Mon, 08 Nov 2021 15:11:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223447.386171; Mon, 08 Nov 2021 15:11:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6JE-0000oD-87; Mon, 08 Nov 2021 15:11:44 +0000
Received: by outflank-mailman (input) for mailman id 223447;
 Mon, 08 Nov 2021 15:11:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk6JD-0000nq-Qg
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:11:43 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk6JD-0006gT-Pc
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:11:43 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk6JD-000564-Os
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:11:43 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mk6JA-0001E6-7m; Mon, 08 Nov 2021 15:11:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:To:Date:
	Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=VPYDy8yFVDD+iYmPD3vH5SEJudGLcubOYDdAYdGaoio=; b=x+7vLyZP3IPy4p5f3WA2idxU1M
	62RFF5F4WshofJuZBFuEPwAtm8Kylf7g5KP4xdpuoOWDEED6MgW5NRh5Pbdu62Cs9+N2AhW9WczwJ
	GgdTw6VspcQpjqMh3HQTSehXndCPpDbULY4hkcQaEpJhYTUrA+mt0qXPl/0Lr8c1cuq4=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24969.15915.743915.85438@mariner.uk.xensource.com>
Date: Mon, 8 Nov 2021 15:11:39 +0000
To: Roger Pau Monne <roger.pau@citrix.com>,
    <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    Andrew  Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    Julien Grall <julien@xen.org>,
    Stefano  Stabellini <sstabellini@kernel.org>,
    Anthony PERARD <anthony.perard@citrix.com>,
    Juergen Gross <jgross@suse.com>,
    Christian  Lindig <christian.lindig@citrix.com>,
    David Scott <dave@recoil.org>,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain
In-Reply-To: <24963.52367.786659.412345@mariner.uk.xensource.com>
References: <20211104104834.10977-1-roger.pau@citrix.com>
	<24963.52367.786659.412345@mariner.uk.xensource.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

I have collected the acks and pushed these.

While doing so I found this in the thread:

Ian Jackson writes ("Re: [PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
> Roger Pau Monne writes ("[PATCH for-4.16 v6] gnttab: allow setting max version per-domain"):
> > NB: the stubdom max grant version is cloned from the domain one. Not
> > sure whether long term we might want to use different options for the
> > stubdom and the domain. In any case the attack surface will always be
> > max(stubdom, domain), so maybe it's just pointless to allow more fine
> > grained settings.
> 
> ^ I think maybe this should go into a comment or commit message or
> something, not just a tail note ?

Maybe this should go into a code comment ?

Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:14:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:14:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223458.386182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6LH-0001gZ-Or; Mon, 08 Nov 2021 15:13:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223458.386182; Mon, 08 Nov 2021 15:13:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6LH-0001gS-LM; Mon, 08 Nov 2021 15:13:51 +0000
Received: by outflank-mailman (input) for mailman id 223458;
 Mon, 08 Nov 2021 15:13:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NRYu=P3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mk6LG-0001gK-SQ
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:13:50 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79cad9be-40a6-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 16:13:49 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2053.outbound.protection.outlook.com [104.47.13.53]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-29-2gr1LubfMrWYmUuoFjhtbw-1; Mon, 08 Nov 2021 16:13:47 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2335.eurprd04.prod.outlook.com (2603:10a6:800:2e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Mon, 8 Nov
 2021 15:13:45 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 15:13:45 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0036.eurprd06.prod.outlook.com (2603:10a6:203:68::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Mon, 8 Nov 2021 15:13:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79cad9be-40a6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636384429;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=lPCyICozdf2UepPQBEqmMJz8QFZjBQ04YYoBzOsqA5c=;
	b=eI1mf4piAmnouAlQzYZFQJs432OyKOwswd9x8vYJG1U0jz0Q8ZWeHGmhPqsxDg5AzSCi3u
	Y5wJhUduBLRClYfDsIjZt+LWedckc/r6ltlx6Cr3Wop3jcs0eCV6zKr3878lArNyAMJ21/
	gWo65SRPWPv2UzE6vHatNchIZP1SoE4=
X-MC-Unique: 2gr1LubfMrWYmUuoFjhtbw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KpoyInAuDeXfy0qiSBKlsRtfy4iOFW0lxBxlaudOPQ6OPgVjBGvDG2hiIqnOSaNewaMnQLJudJN3lLUibrZgy2QtX3/avQfuFUSynLnykJYMQeotYEgiTzzw6j7Z7WpjuqEXAkJ2iN3F73bkL4iNjRPO8/3lyOF4djNYdsUfZr7xJUySEprqFPsQrEfyZ8lZN4yoZ23MYXwFAYhULqRd9GAx4O5+ErIlOQgZROWotk1nZagPgtJ2Ok/Z7xe48LLKf/ny38O0HP8uP/mWTNayDoB/mBAybOqFDFAmr+woXFlXogorDBFtN1hnUXkxMysJU6T8NRgPkYVM0FVs81BRBg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lPCyICozdf2UepPQBEqmMJz8QFZjBQ04YYoBzOsqA5c=;
 b=S4V8+n64WFWsTydZdKsAU4J6jCJL/iGHJ3/j+Id6inIQ4/eeYalrVXgjLzv+p7YIA1M0TOA5M3ZYgGfZ65P6fwv3EbBRd/elpz8NxQIxdnxKimbC5EbY6DzDarW3Mjr+vEniozCYZi6ZY7DnHRkH8xawPm0k9dVGS/NqJ7EpS4/1FIX6L7SGd2ELm/8FEMnkz81gzgNPWdJ4Xr6vAzZXgF1BJGE53fj/5Ks6yPA2RGg5lVoqqiLAoJZddLzrN0kYPDYEI0I+4ADKTYoYEIoDFMdZFifEaGjOOSF9hxTB+XjrNjVWHvF/aT6TIE0z+QIo37JUxhX/QqgT7+PHrCeLwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <84a5e7c0-40db-0d02-74a9-d1c6a6ee8f3d@suse.com>
Date: Mon, 8 Nov 2021 16:13:43 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <royger@FreeBSD.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
 <YYVQAH7OYmFSVOei@Air-de-Roger>
 <24965.21029.795504.152439@mariner.uk.xensource.com>
 <89eda99d-67da-ad97-6040-db79702636bd@suse.com>
 <24969.15479.681521.102446@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24969.15479.681521.102446@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0601CA0036.eurprd06.prod.outlook.com
 (2603:10a6:203:68::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 18693585-85eb-4d1a-2aa2-08d9a2ca5b7d
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2335:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB23358A777DFE8047C442AABEB3919@VI1PR0401MB2335.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	E+ECSSP1mHNQFwOnTEq8SFz2qx3Jq2Tt7YSXkpACttTVQdGWtypgZA2PVCN8eHdA8jz9WaVSMG2Sgd0sUXqzYorXmvtPvj3PcCj4MEcJxj6xGsEzWjOmtkbsSAl7mojM/ifPvfF/6VW3LgwfVmONh/8gUJAiBjxWilA6f+VizDAuoCG//9wU56T6uKI82rAwwAa1T300Kn06U5zDgKG3i4dSWQpJuMelUU98CwjUATi/K1mqvo6o1USy63zdAA6Nd1JlzRSFi8mLz/2rJjDD+M7CKu2fqDi7E/NPWM/mH1BXy254eT3oY09sbOpzE2dLi8rPOKMCIdAV1nCGJhzH/Ij70p+vl/XdJAcr0gsUqKkB8WMp2pGnxJxYwLfjhwisBowbH8zf0y7r7MvWuhASTiIznTF2zznmcUwkkeSxIvs2uCUgoXXlWp5ztTTLcARo8c5fLvAjKZ6uFhvB892OkDJ7B4ExnkMl/XfEUXecPWb8o9CZmNhMIA1X72BFXjEovEL0/bkvuvVW1oWMHwMEJ+KC55KTiYBIKqQiQi64VdL8a6PBD8nMbnbzjHOwQ5pE7E5tBbMSwa4ZV7YFi4znBlgGz/B1tWOeBHj9SVCZSnpwb9j3It1e0JI249P/JHnuHxYhD8tWCCDjJoFDUQkGJcaKjUD/Cd2TZHyCIt1enWoHXsmS5/nnrkCaHyQX1+DYxgILvR691WBJKNT41xu0VGFo7ziSO5FHhJVgLskSlTuzGrtFQUSvp7+Um7U5JuYa
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(66476007)(53546011)(186003)(16576012)(54906003)(83380400001)(31686004)(508600001)(8676002)(66946007)(66556008)(5660300002)(2616005)(316002)(26005)(6486002)(31696002)(8936002)(36756003)(38100700002)(2906002)(86362001)(4326008)(956004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QkJaTkg4bUdHREdRanVUa2E5S09TQmljTHpMeHVDZVlZdEFhYXBoK1pNekpT?=
 =?utf-8?B?S3gyOE5SeTVtVWtLYSsva2VBNmhjVzIvK1U1WXNzRWhhSmFmeVh1V0NqcnNh?=
 =?utf-8?B?VGUweVV3enFmMDZwVTZEK0ZjWDl0QjNFY3UwenpTM2FXVDdKSnZiZkpySHUw?=
 =?utf-8?B?WDdnYWVoeHJLNlIyUzJqZnY1OVp1UUI2MVRFYlBPd1JCK2hIbEgzR0RPcnR0?=
 =?utf-8?B?dVkzeENRTURqVTljQzVWY2duRytPdmo4NzFtMzhGTWlWQVQyUlhCLzJ3U1pr?=
 =?utf-8?B?QVB5bGd1UmJmR2JqYkNOM25BcUFoZFh6dDVYcFlZWEtzVnQyZVNrRi9qeDVU?=
 =?utf-8?B?MVRKV2IyWmNMRDU2OEpDQ2JGSnZIYlNsMVMxbnkwNUhkV1FRdjZXYWpUbmE2?=
 =?utf-8?B?dWl6ODBBbEszTXBRT3FtaVV5YlFhUlRQYU5iMDFXMEQ5VWVlcVAzalJMR1R1?=
 =?utf-8?B?NlRVYitNWnNFNHpDM3d0djBnd0FDZkFsQzM0MmJJK2IwbXpwbVlOTlBZSTlJ?=
 =?utf-8?B?YlBoUEd1Ri9WQTJXQTRpOTZlNTNycWJsVTFZem9yYkJWVzgyS1NqbGpTcXJJ?=
 =?utf-8?B?Rkk2ZjZPSDAzZUVQVi9PR1NSdmh5bVBDWEx0eDNIcVlsWnNoVFBlOEVVQ0ZY?=
 =?utf-8?B?OHdIMkVMQWlmVlRpQ1o5WTFkL3ZwMGE2NGEyVjA1TzVWVGl0QXNSZHZGSEpG?=
 =?utf-8?B?NndDbjFPTmdHdy9ZMS9DbUVYSFp5Y09JZTRGbEM2Z1pNb2VKK0dNRHNGR2w2?=
 =?utf-8?B?RmNrd09FdGw5Z2lOTCs3RTM5TVBVTVhTUDluaS8xMUpQQTdUY1BrdzhYRjA4?=
 =?utf-8?B?WHp0MUtpakpNUDBRb1Izakk4M0FsaDJmWTJGZEZNam1VejJ1VjdaVEs1WFdD?=
 =?utf-8?B?Zzl3Ty8zdStsKzRzNmRLUHQzRzNIUjJ2UStyZnMyMEZuOHhsM0VPT0dPdmM1?=
 =?utf-8?B?U1JBU0ptZUxvb1JNWTAzUzA1MDhDWnZDa3hSUk5KTXBZcHZFRDU5MDBpYUVt?=
 =?utf-8?B?SXRva1dYdmVYR1JOZHcyVXpVWnRpU0p4Y0FBV2xURnlKYjQ1RUljTW9JSUZt?=
 =?utf-8?B?R2g3SGs2QVl5UFZ6WVRVY3NsVkRYMCtQUjNpbURPWkcweDN1NGMvVWYwVXVR?=
 =?utf-8?B?M0dTc0drMnN1aW96VFlrdUliOWRITWU2L2laaGpWUi8ySVV1dTcza21PdS85?=
 =?utf-8?B?NmlGV3ZoMGY5cXplUFIzZkNNRER0anBwd1JoaGpiM0Nud0ZGK0VQMDNFaXpJ?=
 =?utf-8?B?amNQKzlaZG85dU1PYkFDQlZuMFRUTDY5SDh1cldnS29ZNWxDMFlhcFlycGdw?=
 =?utf-8?B?Nm1rT3lqTjFtQjdlSDFKOVgwM3UrRFVMcmplTkdtVHVOaXkrcFV6bGdYVElB?=
 =?utf-8?B?TkNTcVdMREhzZFpoTzZUbnBhU0tRV3dPMEFDNkFlMkpNNUZ1TGU1N3NaZHZh?=
 =?utf-8?B?dXRQWS9FVzdzSExlUEw3VVFPVUJDcUp5bVF1UTRWNWJJTDJMeUFEbitMVlYy?=
 =?utf-8?B?V3BiY2V0ck5XQ29pK2dWNTNBRDY3SzZPeUNjVCsvVGNMRVF5TG9KRmdpUkxx?=
 =?utf-8?B?REV2K0p0R2ErcGV5M2lOeVVYeFhMWEF1ektqeTZwdjN1TXBqRFltWVZ4bXll?=
 =?utf-8?B?ZTdVTDFQcE1xZWdZWmowMU9ZY3dBeHFBaHZLUENLQ09QbWN0TmFLbEFVN2tP?=
 =?utf-8?B?VmRKb1NFNzhRN2l6KzdXWmZjZWNTZzBMVnFlUEVtZm5nOGh3Y2plbVIxSFRN?=
 =?utf-8?B?Vm9zR1czRmtyTmx3L2xscTMvRjk1RFZvaXJqYVIxcjFWTFFadW1zYUl3R1NF?=
 =?utf-8?B?WFo3eFJROVJMV3E0SkxKNGZOQTFaaEovRzgzNmhLV0xuM1BTY24rZEhndllE?=
 =?utf-8?B?cVpsYlF6cTN5SmRsRDBqbHRTenhiRG02L0RkWVJyaUZHVjB6Yk9pQVRWNmRV?=
 =?utf-8?B?NFJoa0JOSm43TGtvdFdKdDBHQXdPamRrYXduVEhqQkxzSFl5NnU4THEraWdY?=
 =?utf-8?B?NGFHMUtSN1huSkNJYWxtYUxqUEF5VTlBNVVLZWxRWkI3WWxJeGNHZmIzM2dp?=
 =?utf-8?B?Z0JGRXZBeGtPd3d4ZzZXcVJlTHRKMTkvMVZOZDkzZUd2bDBEUzdlU1VyU1pZ?=
 =?utf-8?B?dVFkVG5lRFgzV2tZUHkzNFpLZGF2aDFwamVqQ3FSK3hoUlpId21OdEFGRFI3?=
 =?utf-8?Q?/IOM2zNhLQnp9xqz/uu64Pg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 18693585-85eb-4d1a-2aa2-08d9a2ca5b7d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 15:13:45.2758
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: P6kVvoXtC9ULChTCdd6yCKjhf/3QRjKl9uwWTbNjfzErvsqmd/QPRT9n8MSR+jd5/4/zP3pk2wstq+DXyV29Zg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2335

On 08.11.2021 16:04, Ian Jackson wrote:
> Jan Beulich writes ("Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU ACPI table parsing"):
>> On 05.11.2021 16:47, Ian Jackson wrote:
>>> This part confused me.  Under what circumstances would we backport
>>> this ?  AIUI it would be backporting a potentially-fragile and
>>> not-readily-testable bugfix, for a theoretical scenario with a
>>> straightforward workaround.
>>
>> Well, I've said "candidate" for this very reason: To me, every bug
>> fix is a candidate. Whether risks outweigh the potential benefits is
>> then influencing whether to _actually_ take the change. A reason to
>> take it despite the available workaround might be that
>> "straightforward" doesn't also mean "obvious" here. IOW once you
>> know what to do, doing so is easy. But one first needs to arrive
>> there.
> 
> Could we not do a smaller fix that would print something in the boot
> output, mabye ?  That would be a lower risk change.

Hmm, maybe something could be done, but at the risk of getting the
conditions there wrong (and hence having false positives and/or
false negatives, confusing users at best) and with likely a clumsy
log message ("abc ran before xyz"), suggesting that we actually
know how to do better. IOW - I'd rather not go this route, and it
would feel better to me to simply defer this change to post-4.16
if we deem it too risky to put it in now.

> So far, I think the tradeoff here isn't looking very good: a risk of
> unclear magnitude for many users, vs a hard crash at boot for a set of
> users we believe to be empty.
> 
> As ever, feel free to contradict me if I have the wrong end of one of
> the many sticks here...

I think you've got it quite right. I did put the question mark in the
tag specifically to make clear that while I'd like this to be
considered, I'm myself not convinced the risks outweigh the benefits.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:26:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:26:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223470.386201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6X5-0003Jl-UU; Mon, 08 Nov 2021 15:26:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223470.386201; Mon, 08 Nov 2021 15:26:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6X5-0003Je-RX; Mon, 08 Nov 2021 15:26:03 +0000
Received: by outflank-mailman (input) for mailman id 223470;
 Mon, 08 Nov 2021 15:26:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tVlX=P3=gmail.com=geert.uytterhoeven@srs-se1.protection.inumbo.net>)
 id 1mk6X4-0003JX-Et
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:26:02 +0000
Received: from mail-ua1-f47.google.com (mail-ua1-f47.google.com
 [209.85.222.47]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d8fec45-40a8-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 16:26:01 +0100 (CET)
Received: by mail-ua1-f47.google.com with SMTP id b17so32287436uas.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Nov 2021 07:26:01 -0800 (PST)
Received: from mail-ua1-f46.google.com (mail-ua1-f46.google.com.
 [209.85.222.46])
 by smtp.gmail.com with ESMTPSA id m15sm3319602vsh.31.2021.11.08.07.25.58
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Nov 2021 07:25:58 -0800 (PST)
Received: by mail-ua1-f46.google.com with SMTP id t13so16879267uad.9
 for <xen-devel@lists.xenproject.org>; Mon, 08 Nov 2021 07:25:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d8fec45-40a8-11ec-9787-a32c541c8605
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=x4ykPITI22sSh/L6reU4seHVLFfVjdO/v+W3/SN8DUg=;
        b=Rzx/tIbEQgnzBQwALSIU2kesFkg7kQ+IL5xhCtfASF9BkPdi+pia3+tGC23ZiXXFR7
         KWQbGL3dgrhhppdVJiFj/oyVPeJ/egO0SNLZJbKt40qKHyFwIeN1AmCuqzumD3zZfMiE
         QubbRWP3IhCZxHkRBbmW10QXp42JZiSFd2nVB+QePAQxmQAeB8lQRg3F3zsjyyPRZ/bq
         1nH8xHaQ+8zJQRmvIuEcHX7wRqS+DP9/llocolJvFMzWDoZSWHdZigEkm1WffnonXaNr
         GzBYG8wpHWepqbDcGIuCzBGwk3Lzz+ngPadHHP8PUrq+6be0j3fjnwMGfIvi1qbbBlrw
         6BUg==
X-Gm-Message-State: AOAM532FIywGxJIY6nNH8jxZvY7hCWypoN8lz1GTnzB85F9V2ZzcVITP
	n07J56MemIoKBmb5on+5/cOrD6GzKzyBigIs
X-Google-Smtp-Source: ABdhPJzBfNOhg1XRUgrbXV4zFvq4trx2chAUm3QImI6cQa9l9gT3lcfRU4qaNWdjZy//tNutH44SlA==
X-Received: by 2002:a67:fb05:: with SMTP id d5mr30403767vsr.41.1636385159930;
        Mon, 08 Nov 2021 07:25:59 -0800 (PST)
X-Received: by 2002:a9f:2c98:: with SMTP id w24mr725068uaj.89.1636385158322;
 Mon, 08 Nov 2021 07:25:58 -0800 (PST)
MIME-Version: 1.0
References: <20211108101157.15189-1-bp@alien8.de> <20211108101157.15189-43-bp@alien8.de>
 <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com> <YYkyUEqcsOwQMb1S@zn.tnic>
In-Reply-To: <YYkyUEqcsOwQMb1S@zn.tnic>
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Mon, 8 Nov 2021 16:25:47 +0100
X-Gmail-Original-Message-ID: <CAMuHMdXiBEQyEXJagSfpH44hxVA2t0sDH7B7YubLGHrb2MJLLA@mail.gmail.com>
Message-ID: <CAMuHMdXiBEQyEXJagSfpH44hxVA2t0sDH7B7YubLGHrb2MJLLA@mail.gmail.com>
Subject: Re: [PATCH v0 42/42] notifier: Return an error when callback is
 already registered
To: Borislav Petkov <bp@alien8.de>
Cc: LKML <linux-kernel@vger.kernel.org>, Thomas Gleixner <tglx@linutronix.de>, 
	Arnd Bergmann <arnd@arndb.de>, Ayush Sawal <ayush.sawal@chelsio.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Rohit Maheshwari <rohitm@chelsio.com>, 
	Steven Rostedt <rostedt@goodmis.org>, Vinay Kumar Yadav <vinay.yadav@chelsio.com>, 
	ALSA Development Mailing List <alsa-devel@alsa-project.org>, 
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>, 
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>, intel-gvt-dev@lists.freedesktop.org, 
	alpha <linux-alpha@vger.kernel.org>, 
	Linux ARM <linux-arm-kernel@lists.infradead.org>, 
	linux-clk <linux-clk@vger.kernel.org>, 
	Linux Crypto Mailing List <linux-crypto@vger.kernel.org>, linux-edac@vger.kernel.org, 
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>, linux-hyperv@vger.kernel.org, 
	linux-iio@vger.kernel.org, linux-leds <linux-leds@vger.kernel.org>, 
	"open list:BROADCOM NVRAM DRIVER" <linux-mips@vger.kernel.org>, Parisc List <linux-parisc@vger.kernel.org>, 
	Linux PM list <linux-pm@vger.kernel.org>, linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, 
	"open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM" <linux-remoteproc@vger.kernel.org>, 
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>, linux-s390 <linux-s390@vger.kernel.org>, 
	scsi <linux-scsi@vger.kernel.org>, Linux-sh list <linux-sh@vger.kernel.org>, 
	linux-staging@lists.linux.dev, linux-tegra <linux-tegra@vger.kernel.org>, 
	linux-um <linux-um@lists.infradead.org>, USB list <linux-usb@vger.kernel.org>, 
	"open list:TENSILICA XTENSA PORT (xtensa)" <linux-xtensa@linux-xtensa.org>, netdev <netdev@vger.kernel.org>, 
	openipmi-developer@lists.sourceforge.net, rcu@vger.kernel.org, 
	sparclinux <sparclinux@vger.kernel.org>, "the arch/x86 maintainers" <x86@kernel.org>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

Hi Borislav,

On Mon, Nov 8, 2021 at 3:21 PM Borislav Petkov <bp@alien8.de> wrote:
> On Mon, Nov 08, 2021 at 03:07:03PM +0100, Geert Uytterhoeven wrote:
> > I think the addition of __must_check is overkill, leading to the
> > addition of useless error checks and message printing.
>
> See the WARN in notifier_chain_register() - it will already do "message
> printing".

I mean the addition of useless error checks and message printing _to
the callers_.

> > Many callers call this where it cannot fail, and where nothing can
> > be done in the very unlikely event that the call would ever start to
> > fail.
>
> This is an attempt to remove this WARN() hack in
> notifier_chain_register() and have the function return a proper error
> value instead of this "Currently always returns zero." which is bad
> design.
>
> Some of the registration functions around the tree check that retval and
> some don't. So if "it cannot fail" those registration either should not
> return a value or callers should check that return value - what we have
> now doesn't make a whole lot of sense.

With __must_check callers are required to check, even if they know
it cannot fail.

> Oh, and then fixing this should avoid stuff like:
>
> +       if (notifier_registered == false) {
> +               mce_register_decode_chain(&amdgpu_bad_page_nb);
> +               notifier_registered = true;
> +       }
>
> from propagating in the code.

That's unrelated to the addition of __must_check.

I'm not against returning proper errors codes.  I'm against forcing
callers to check things that cannot fail and to add individual error
printing to each and every caller.

Note that in other areas, we are moving in the other
direction, to a centralized printing of error messages,
cfr. e.g. commit 7723f4c5ecdb8d83 ("driver core: platform: Add an
error message to platform_get_irq*()").

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:28:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223478.386212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6ZV-000416-Bs; Mon, 08 Nov 2021 15:28:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223478.386212; Mon, 08 Nov 2021 15:28:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6ZV-00040z-8s; Mon, 08 Nov 2021 15:28:33 +0000
Received: by outflank-mailman (input) for mailman id 223478;
 Mon, 08 Nov 2021 15:28:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ncso=P3=epam.com=prvs=1946062fbd=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mk6ZT-00040r-ET
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:28:31 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 85df6156-40a8-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 16:28:29 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A8F5sTB017325;
 Mon, 8 Nov 2021 15:28:26 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2176.outbound.protection.outlook.com [104.47.17.176])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c76810413-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 08 Nov 2021 15:28:26 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4883.eurprd03.prod.outlook.com (2603:10a6:208:103::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Mon, 8 Nov
 2021 15:28:21 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 15:28:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 85df6156-40a8-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=U7UEYOJ7rDHTSWoySfv96mbi8LomzXmdnJdU8CnmRXG4XDpuZBG41pJZCBmPHcQCRoS2offEPdbqLd+lIlxYRNMN31WgAhHNvCTe/BrHgTzvGE1WOKq1y2RYoSkj5izqH/UuYiET96wlxKvhRXKTM+w1pD+d+IVmQ/cgcJPi6tI62GiuX9TBscH/58/I1vs/7zB/+44TsXXZd4LjcN7voIGvG00ZiQaTgAD1LrB9oFK1k0JhcJIR9TcLGpCwOjuEy+C6LGLXYuuy/pUfbX8DGdH1aJsgC3rzWNkruleqG8zCytTn8vsmavBkkAfmRUs3haZJ5V5uk4Ap1HAEBQwm4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=k4aawzwFePHD/BNdkoOISqVNM5WWztJ6D0nwTwZHhh8=;
 b=kSshgqsNqBH5Ua8KUkgCXa76n0iVJ62RoLe+v1ASFAoobBqDDSvu43MXGO6VBmIh0OWsdQopfILclM18XAjjr/+SG9uIMNFlO6Maq9ycGUjeutEE6cwI2wgNSh2xZMq28tzdYTZTgGO2BF2yGaC3ihmvuQw9M0LaAxSdg3sQdAHqEgqTpkWA2u1ggwbm4eYMqe3YMe+HYalJURPm2s8j2AAHnkxkn9bwYzYpKeFUJ/7sJxYsvz/P84FvEl9ZhAVFrE1p61N5n/5ZcEtK4YG6ZSpFaqoJLWBcPINwxC5mvZfO8BPfKfJpTmEqDqIdimnjX1cQl09PSU16nYjtXedjUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=k4aawzwFePHD/BNdkoOISqVNM5WWztJ6D0nwTwZHhh8=;
 b=BGq4mZ6+LJ/a72TqTnKb8B3BqtOHi4kn44GOO7GtLA1X9h7Rax6C6nsFPIfXVxEyVMcOlqi/Y4b16EdIU7Wwpk8ZQrAkkmwvwJRNs9mSy0T/c65jBlWRs9pxbNWKn7dTTrXEM1I3wlX1sxZLxr79L/QaVYkUHbT88Xt2TTZZpLamgamUEi6NNqmGHxHaT8bs+ugofg6+Twyhhs/KyiWv/IXf18mBn64DwujTFN84SZR0/M9qYDuhp7vJV3cQfs10V05P2c0mZvYz5kKJA3Ahr3rDVz7uaJ5HuG0UMiAXfaVS0WH5uJm1v6ABL/oivdUzIkuqhph6oqCyHO4w/71amg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 11/11] xen/arm: translate virtual PCI bus topology for
 guests
Thread-Topic: [PATCH v4 11/11] xen/arm: translate virtual PCI bus topology for
 guests
Thread-Index: AQHX0hJP4tGfmNyDbEa0m8z5ITSeMav5fmGAgAABr4CAADRIAIAAEgeA
Date: Mon, 8 Nov 2021 15:28:21 +0000
Message-ID: <4260ad1e-0225-20c0-8208-f8e239f551a0@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-12-andr2000@gmail.com>
 <da36ee68-3162-0a32-f033-98af34f9c94e@suse.com>
 <c05b3e98-772c-a8c7-d8f8-841289683a02@epam.com>
 <YYky9JSe9oMh5azh@Air-de-Roger>
In-Reply-To: <YYky9JSe9oMh5azh@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 76bdeb01-7dc4-426b-47ff-08d9a2cc65e3
x-ms-traffictypediagnostic: AM0PR03MB4883:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB4883AA9757A1A411A9D9649CE7919@AM0PR03MB4883.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 arta/9hsJA0kTnRItDKPMYNtSKPREsd6AFgxyBdVxZuv4trdqi7RCqZ1pm3/x1IAJDm8V93sRDstqsaKy2UvVrugPxEJErNJJAjRjKkIQNKcqIuT2UdV2Df6n6/Elmx5R4RyPbiEb9S0JD7fhfP2zRd5Zw8LOBRgLstzp43KWURzZaL9oQsj7ko73atMF2vFZy/qdaZYpuYYk9V3JRLl3ClEdQS2iHO361e5C5LA4Fm7xBQ/00ILWUJqRZn89o7FT6wic5ddPHym57AluX2rf8ne4atwh/hAaoC6ITYwu9I3QZbnsAgNO+4Q2N/Fj9g7bu4vMLnVJgGw5Xt4VLsMkZ0TVRiKbNcvaM20JDozstfVpcwIrGIKn12qxpnxZXUxbLhrH+O0lVUff9FBcUd4Yedr9N1ARFrVvpHW/wKz4Dni55D0RCAckW2aZKkQnGxRoxB77OC60N919j7Y580E8lRYfZ7xxa0IkmATEc05b7Jy/sumVr8mnz3B81uUU9TjSF35Y45YVpO+hlHQDaUm9fi2SHzuQqJqkJ1pgLMX9skBSma+yBA23KeASgpOPn1iWI1tmvDmM3ytfwAzuE+XjdILxgabmGGlA5jS9AesnHPycWKH6iND8k5HP411Ohjwjy653GyAGlrnWwGK+jMZ7LJNWn6kFnYpnc/6wM4faIFJqSLZJheUGdeNvkGMTS/FXoz5OUcTtgqvKDb8yAsbdSMYlVaT2snwUMEAYXYDmMSmdtiiqPbA4x6vhy/gbicV
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(71200400001)(6486002)(76116006)(91956017)(186003)(2616005)(26005)(107886003)(66946007)(31686004)(38070700005)(8676002)(66556008)(122000001)(64756008)(66476007)(66446008)(36756003)(2906002)(4326008)(316002)(5660300002)(86362001)(8936002)(53546011)(6916009)(6506007)(38100700002)(31696002)(83380400001)(54906003)(6512007)(7416002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?ZmJYK2FoczhYbVBFYUwwRUVLWUdSTTlyYzFwYnFyN3dJWWlsVmJVVFl2WFZK?=
 =?utf-8?B?VVZ5Q0l3R2JQaFlzRDRvYmlYY0Q1MVlpT0RUN0dSbnliRWVZWFBHVldHMlZP?=
 =?utf-8?B?YW9JWTNiSzZtMWtYM3ZVSURiWnNwNSs0RDZIZHI2cGI5WjRkaWlxa20xcjVV?=
 =?utf-8?B?ZktpTDgxam1DUEhTcFp3cHNTTktQbCtmS0VYcUdONG1oSFVzRTBYRzZVcTFE?=
 =?utf-8?B?ZDJuN1crWmVCMjBQcU1JcEdSTGlzYm1xcW9PbG1OSmZOU3BMS0paWVhpaGdl?=
 =?utf-8?B?eUZBd3l4VERqVUlxbUJlU3Nsd2czQ3dLU3A3NkRLUWlKc1ZvY2REbllxRzFV?=
 =?utf-8?B?UnlFKzFNWVlZb0hFOFIvMjdtN0NhV0lWZVFBL0hxWEpTZ2dvSW1ERmpPNG1r?=
 =?utf-8?B?emp1UjJWckpZMzA2aEZoQVVRTzhQMGJnN09tdWhBeUxwVG5zd0hVbitWeDN1?=
 =?utf-8?B?REFTajh0ZGhWelFXZ3l3WEdFNG1oRTVDQk9uMWFDcjl5K04vYlhWOGxLMkFu?=
 =?utf-8?B?dEFGaGVZbjArTlhNVVkxNjRwOVpVOUFyVG5LYzFEY216UDd6c0tpYmtEQ1da?=
 =?utf-8?B?emwvZGI1RnRYRStXMXdvUlRmdFZEUUVUMjdTODhHNG9mdW4xT2pxSVkrWWM0?=
 =?utf-8?B?RCs2aVJ2QTFicGxWbWVCTTU0RGkyRlZJUjFoOWppQTQ0MldVT09iTlFNTkJ5?=
 =?utf-8?B?Mzc4RlBDVmY2bE8yVytBUVFpL2RQSFVnTTFocDFPZENFY0k0TDlvTGE4aVpT?=
 =?utf-8?B?NzBLaE4rNGs3dGdVQUlPRWFpSVRmSHVXYlBkSGI0cWxoaEJnSVM1N1dSckZP?=
 =?utf-8?B?Zi81L1l2akNnLzJsaXlvQkRvOVFwOGdEVmpyOHJMVkpDQi9FVGxoYmFpc1Jj?=
 =?utf-8?B?eEt3SDd6bmFyV2EzYjU2bmRhVCt0NVVuKzRSTU5MOU9BOStDSm0zRGZwM1JN?=
 =?utf-8?B?T0NYb2hRVkRoSXMwNWltT0ZSWW9HSGtQZW9OZVJMM1FxTXpuWHNCKzlZTkZI?=
 =?utf-8?B?QXVyMkRFWXlOeVNyU0pCVStzVzNkUGMrUTNhbDBnVnk0U0RDbkJQMnRlcVdW?=
 =?utf-8?B?VW5YdmtPZklkM2E5MGJpcXZ6dXQ5TWlTNkR4dW10ZWFPSGVNVkVFak9QL3ZB?=
 =?utf-8?B?WUxhV1pqTHJvSzJLd09wblFNNnpvQVNqV0p3YmJYbnh6S0xla1l0amlMUU9o?=
 =?utf-8?B?Vng0bEFBOWRKdEtwLzBxV0ROOFBScTF1ZEJaQ3A4T3VqUmV5elNmUk9GNWFK?=
 =?utf-8?B?K3Y4RGY0Rk1NMTVSV0RpbFFyd29Iek01MUpXSk5VM1d6TzJwaFVaUzdXaHpU?=
 =?utf-8?B?UzBFNTNkdnJIV0t5eXo3eGl5dXpWQmJmcGcrODZPM1F2bWhYNHdOckV0UVJP?=
 =?utf-8?B?YnBIeW9HZHV6RnlsN2JqVlZJSHQ1em1EdThOZ0p3ZWd4b2pLNk9FUm83ZVp3?=
 =?utf-8?B?OXVIaTU4L0JLalh2S2NhOSsvRThNd1o0NkVRV1B4QzkxSTIrY0RZQlhNYXFI?=
 =?utf-8?B?cGpBSDFTZWg3bGZNbElYN2ZYcWxEVk5wRmVSYURhNW9PcWNCNzEzVFk3d0NV?=
 =?utf-8?B?WWZWVGlvQmUwb05JS1AzVUx2TDFwMloxT0MrcFNDb3pRR09SbEV4Z0lJSk11?=
 =?utf-8?B?bE5rWDVJTkxwOG9weUlmdE55TzArWTdvUlNLaFBnalhtMFZkT2J3alVxNkVP?=
 =?utf-8?B?ZjE4UlZJK2JUOGljQ05mc2g2a09CV1g1bXRDQUhnTGIzc3c1R05SRVJiaVJ3?=
 =?utf-8?B?WW9hT3ZPWjAvZGt0K2xqQmFSd0NmWFd0VkI2akJXRThRNk5GaDU2V0dOaUJ6?=
 =?utf-8?B?K2hMSk16OEEyQlg2QXhTT2Y0OG1jVkdRM3dmdU4zZlBmL0p6Q3FtbHJJM3Yy?=
 =?utf-8?B?UG8zMDhhdUVyRVltYWdnWlFSZGVIaFdNd2x6bDJxakJ3Ly90YXBrR0VPU0Y3?=
 =?utf-8?B?bWZDQk55eTM1WFJOQlc0NktqUXZZalg1RndHdm1RVGw5bGI3SjZ0RmY5TTNO?=
 =?utf-8?B?SXRaSlZPUW5senZoRE1GMDVUZEN3TFdlNlltVFQ4anFwYTh2T00vcHFVUDhZ?=
 =?utf-8?B?MGhNUjZ1QTF5UTlUOXpJbm9LRDRuamMyMDBRcUQ0bk9qMFRIREY2bVdiRm5T?=
 =?utf-8?B?TG9RbG83b1o0dVZPUVhGVXArb05jSFVIeTBwb1A3SW15NUxNOHl4dHNhVEI5?=
 =?utf-8?B?NGYyUDdUSHRhb2RZc0IrQ1FiYy9ub2JCTmhkLzFTSkEzVUdodWZwOFBWaU5h?=
 =?utf-8?B?NTQ0cXd5Q09tZDhLYUxGaTZVdmVKOEQ1TnNmOWNsRVlpeDlTZ0d3V0UxK2U1?=
 =?utf-8?B?TGUweWpOQXM1cDBkdTAxSktZV2UyVWZLQWh1YmpITEV0aEdOSHQyQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0B3B19D65CBADA4DBE5DB14944E6D0DD@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 76bdeb01-7dc4-426b-47ff-08d9a2cc65e3
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2021 15:28:21.4644
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 6ueiTofAiQYKQj0QO6dHH/QDLOcwT+XBEkF6cclY2gFWKOQhafPh90A+o2E9yJOt+BcfoXL+ErjozCOaNvQoHj26OTSiIGov3ilLqrnuKUZeVSfVd0CLT0Gl4Ts6SMEH
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4883
X-Proofpoint-GUID: gvtmS-1UkEW25NSQDKRQKxVNIs3d769u
X-Proofpoint-ORIG-GUID: gvtmS-1UkEW25NSQDKRQKxVNIs3d769u
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-08_05,2021-11-08_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0
 lowpriorityscore=0 phishscore=0 adultscore=0 impostorscore=0
 suspectscore=0 bulkscore=0 spamscore=0 priorityscore=1501 clxscore=1015
 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111080095

DQoNCk9uIDA4LjExLjIxIDE2OjIzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBNb24s
IE5vdiAwOCwgMjAyMSBhdCAxMToxNjo0MkFNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+DQo+PiBPbiAwOC4xMS4yMSAxMzoxMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+
Pj4gT24gMDUuMTEuMjAyMSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+
Pj4+IC0tLSBhL3hlbi9hcmNoL2FybS92cGNpLmMNCj4+Pj4gKysrIGIveGVuL2FyY2gvYXJtL3Zw
Y2kuYw0KPj4+PiBAQCAtNDEsNiArNDEsMTUgQEAgc3RhdGljIGludCB2cGNpX21taW9fcmVhZChz
dHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8sDQo+Pj4+ICAgICAgICAvKiBkYXRhIGlz
IG5lZWRlZCB0byBwcmV2ZW50IGEgcG9pbnRlciBjYXN0IG9uIDMyYml0ICovDQo+Pj4+ICAgICAg
ICB1bnNpZ25lZCBsb25nIGRhdGE7DQo+Pj4+ICAgIA0KPj4+PiArI2lmZGVmIENPTkZJR19IQVNf
VlBDSV9HVUVTVF9TVVBQT1JUDQo+Pj4+ICsgICAgLyoNCj4+Pj4gKyAgICAgKiBGb3IgdGhlIHBh
c3NlZCB0aHJvdWdoIGRldmljZXMgd2UgbmVlZCB0byBtYXAgdGhlaXIgdmlydHVhbCBTQkRGDQo+
Pj4+ICsgICAgICogdG8gdGhlIHBoeXNpY2FsIFBDSSBkZXZpY2UgYmVpbmcgcGFzc2VkIHRocm91
Z2guDQo+Pj4+ICsgICAgICovDQo+Pj4+ICsgICAgaWYgKCAhYnJpZGdlICYmICF2cGNpX3RyYW5z
bGF0ZV92aXJ0dWFsX2RldmljZSh2LT5kb21haW4sICZzYmRmKSApDQo+Pj4+ICsgICAgICAgICAg
ICByZXR1cm4gMTsNCj4+PiBOaXQ6IEluZGVudGF0aW9uLg0KPj4gT3VjaCwgc3VyZQ0KPj4+PiBA
QCAtNTksNiArNjgsMTUgQEAgc3RhdGljIGludCB2cGNpX21taW9fd3JpdGUoc3RydWN0IHZjcHUg
KnYsIG1taW9faW5mb190ICppbmZvLA0KPj4+PiAgICAgICAgc3RydWN0IHBjaV9ob3N0X2JyaWRn
ZSAqYnJpZGdlID0gcDsNCj4+Pj4gICAgICAgIHBjaV9zYmRmX3Qgc2JkZiA9IHZwY2lfc2JkZl9m
cm9tX2dwYShicmlkZ2UsIGluZm8tPmdwYSk7DQo+Pj4+ICAgIA0KPj4+PiArI2lmZGVmIENPTkZJ
R19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUDQo+Pj4+ICsgICAgLyoNCj4+Pj4gKyAgICAgKiBGb3Ig
dGhlIHBhc3NlZCB0aHJvdWdoIGRldmljZXMgd2UgbmVlZCB0byBtYXAgdGhlaXIgdmlydHVhbCBT
QkRGDQo+Pj4+ICsgICAgICogdG8gdGhlIHBoeXNpY2FsIFBDSSBkZXZpY2UgYmVpbmcgcGFzc2Vk
IHRocm91Z2guDQo+Pj4+ICsgICAgICovDQo+Pj4+ICsgICAgaWYgKCAhYnJpZGdlICYmICF2cGNp
X3RyYW5zbGF0ZV92aXJ0dWFsX2RldmljZSh2LT5kb21haW4sICZzYmRmKSApDQo+Pj4+ICsgICAg
ICAgICAgICByZXR1cm4gMTsNCj4+PiBBZ2Fpbi4NCj4+IFdpbGwgZml4DQo+Pj4+IEBAIC0xNzIs
MTAgKzE3NSwzNyBAQCBSRUdJU1RFUl9WUENJX0lOSVQodnBjaV9hZGRfdmlydHVhbF9kZXZpY2Us
IFZQQ0lfUFJJT1JJVFlfTUlERExFKTsNCj4+Pj4gICAgc3RhdGljIHZvaWQgdnBjaV9yZW1vdmVf
dmlydHVhbF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwNCj4+Pj4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+Pj4+
ICAgIHsNCj4+Pj4gKyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7DQo+Pj4+ICsNCj4+Pj4g
ICAgICAgIGNsZWFyX2JpdChwZGV2LT52cGNpLT5ndWVzdF9zYmRmLmRldiwgJmQtPnZwY2lfZGV2
X2Fzc2lnbmVkX21hcCk7DQo+Pj4+ICAgICAgICBwZGV2LT52cGNpLT5ndWVzdF9zYmRmLnNiZGYg
PSB+MDsNCj4+Pj4gICAgfQ0KPj4+PiAgICANCj4+Pj4gKy8qDQo+Pj4+ICsgKiBGaW5kIHRoZSBw
aHlzaWNhbCBkZXZpY2Ugd2hpY2ggaXMgbWFwcGVkIHRvIHRoZSB2aXJ0dWFsIGRldmljZQ0KPj4+
PiArICogYW5kIHRyYW5zbGF0ZSB2aXJ0dWFsIFNCREYgdG8gdGhlIHBoeXNpY2FsIG9uZS4NCj4+
Pj4gKyAqLw0KPj4+PiArYm9vbCB2cGNpX3RyYW5zbGF0ZV92aXJ0dWFsX2RldmljZShzdHJ1Y3Qg
ZG9tYWluICpkLCBwY2lfc2JkZl90ICpzYmRmKQ0KPj4+IGNvbnN0IHN0cnVjdCBkb21haW4gKmQg
Pw0KPj4gV2lsbCBjaGFuZ2UNCj4+Pj4gK3sNCj4+Pj4gKyAgICBjb25zdCBzdHJ1Y3QgcGNpX2Rl
diAqcGRldjsNCj4+Pj4gKyAgICBib29sIGZvdW5kID0gZmFsc2U7DQo+Pj4+ICsNCj4+Pj4gKyAg
ICBwY2lkZXZzX2xvY2soKTsNCj4+Pj4gKyAgICBmb3JfZWFjaF9wZGV2KCBkLCBwZGV2ICkNCj4+
Pj4gKyAgICB7DQo+Pj4+ICsgICAgICAgIGlmICggcGRldi0+dnBjaS0+Z3Vlc3Rfc2JkZi5zYmRm
ID09IHNiZGYtPnNiZGYgKQ0KPj4+PiArICAgICAgICB7DQo+Pj4+ICsgICAgICAgICAgICAvKiBS
ZXBsYWNlIHZpcnR1YWwgU0JERiB3aXRoIHRoZSBwaHlzaWNhbCBvbmUuICovDQo+Pj4+ICsgICAg
ICAgICAgICAqc2JkZiA9IHBkZXYtPnNiZGY7DQo+Pj4+ICsgICAgICAgICAgICBmb3VuZCA9IHRy
dWU7DQo+Pj4+ICsgICAgICAgICAgICBicmVhazsNCj4+Pj4gKyAgICAgICAgfQ0KPj4+PiArICAg
IH0NCj4+Pj4gKyAgICBwY2lkZXZzX3VubG9jaygpOw0KPj4+IEkgdGhpbmsgdGhlIGRlc2NyaXB0
aW9uIHdhbnRzIHRvIGF0IGxlYXN0IG1lbnRpb24gdGhhdCBpbiBwcmluY2lwbGUNCj4+PiB0aGlz
IGlzIHRvbyBjb2Fyc2UgZ3JhaW5lZCBhIGxvY2ssIHByb3ZpZGluZyBqdXN0aWZpY2F0aW9uIGZv
ciB3aHkNCj4+PiBpdCBpcyBkZWVtZWQgZ29vZCBlbm91Z2ggbmV2ZXJ0aGVsZXNzLiAoUGVyc29u
YWxseSwgYXMgZXhwcmVzc2VkDQo+Pj4gYmVmb3JlLCBJIGRvbid0IHRoaW5rIHRoZSBsb2NrIHNo
b3VsZCBiZSB1c2VkIGhlcmUsIGJ1dCBhcyBsb25nIGFzDQo+Pj4gUm9nZXIgYWdyZWVzIHdpdGgg
eW91LCB5b3UncmUgZmluZS4pDQo+PiBZZXMsIG1ha2VzIHNlbnNlDQo+IFNlZWluZyBhcyB3ZSBk
b24ndCB0YWtlIHRoZSBsb2NrIGluIHZwY2lfe3JlYWQsd3JpdGV9IEknbSBub3Qgc3VyZSB3ZQ0K
PiBuZWVkIGl0IGhlcmUgZWl0aGVyIHRoZW4uDQpZZXMsIEkgd2FzIG5vdCBmZWVsaW5nIGNvbmZp
ZGVudCB3aGlsZSBhZGRpbmcgbG9ja2luZw0KPiBTaW5jZSBvbiBBcm0geW91IHdpbGwgYWRkIGRl
dmljZXMgdG8gdGhlIGd1ZXN0IGF0IHJ1bnRpbWUgKGllOiB3aGlsZQ0KPiB0aGVyZSBjb3VsZCBh
bHJlYWR5IGJlIFBDSSBhY2Nlc3NlcyksIGhhdmUgeW91IHNlZW4gaXNzdWVzIHdpdGggbm90DQo+
IHRha2luZyB0aGUgbG9jayBoZXJlPw0KTm8sIEkgZGlkbid0LiBOZWl0aGVyIEkgYW0gYXdhcmUg
b2YgQXJtIGhhZCBwcm9ibGVtcw0KQnV0IHRoaXMgY291bGQganVzdCBtZWFuIHRoYXQgd2Ugd2Vy
ZSBsdWNreSBub3QgdG8gc3RlcCBvbiBpdA0KPg0KPiBJIHRoaW5rIHRoZSB3aG9sZSBwY2lkZXZz
IGxvY2tpbmcgbmVlZHMgdG8gYmUgY2xhcmlmaWVkLCBhcyBpdCdzDQo+IGN1cnJlbnRseSBhIG1l
c3MuDQpBZ3JlZQ0KPiAgIElmIHlvdSB3YW50IHRvIHRha2UgaXQgaGVyZSB0aGF0J3MgZmluZSwg
YnV0IG92ZXJhbGwNCj4gdGhlcmUgYXJlIGlzc3VlcyBpbiBvdGhlciBwbGFjZXMgdGhhdCB3b3Vs
ZCBtYWtlIHJlbW92aW5nIGEgZGV2aWNlIGF0DQo+IHJ1bnRpbWUgbm90IHJlbGlhYmxlLg0KU28s
IHdoYXQncyB0aGUgZGVjaXNpb24/IEkgd291bGQgbGVhdmUgdGhlIGxvY2tzIHdoZXJlIEkgcHV0
IHRoZW0sDQpzbyBhdCBsZWFzdCB0aGlzIHBhcnQgd29uJ3QgbmVlZCBmaXhlcy4NCj4NCj4gVGhh
bmtzLCBSb2dlci4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:29:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:29:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223483.386223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6aL-0004dp-Q2; Mon, 08 Nov 2021 15:29:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223483.386223; Mon, 08 Nov 2021 15:29:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk6aL-0004di-My; Mon, 08 Nov 2021 15:29:25 +0000
Received: by outflank-mailman (input) for mailman id 223483;
 Mon, 08 Nov 2021 15:29:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gF4r=P3=ffwll.ch=daniel@srs-se1.protection.inumbo.net>)
 id 1mk6aK-00040r-Rm
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:29:25 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a62c7255-40a8-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 16:29:23 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id s13so27599747wrb.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Nov 2021 07:29:23 -0800 (PST)
Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa])
 by smtp.gmail.com with ESMTPSA id z135sm24083422wmc.45.2021.11.08.07.29.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Nov 2021 07:29:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a62c7255-40a8-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=ffwll.ch; s=google;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:in-reply-to;
        bh=c1Vs+8e8CI/eQJgbpfI/Ztxvzb9lQKxlTgF3ypUWX2Q=;
        b=EvlGKfzWf4YR8a+ai4RU3CDMnu3ajWJwo8Sp6Li16gYPErtkuf7ySvMFaMs3zqU6i/
         ekw32AsoVDd52jHf+vVFPbMOH91z7Cj9FjCy9/QctcBukSoXe60I7bH9hY3/3TUo9+d6
         J0ZpzzHXIqYXbJmYZukljOghYAs4PpBo3VFnU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=c1Vs+8e8CI/eQJgbpfI/Ztxvzb9lQKxlTgF3ypUWX2Q=;
        b=xPQTcRBBIyjOfOzQ0EY4ISKu8NbKiBgfHKa8wLLYi2hCXhzDzLIWbx3rObQAMz3UCP
         Oye/N8vADuu/Q9yVxFXrWd12wBLth1KvUj6ZwF0j6+rXnuFDJqpdgcp39vDIjbedWL8s
         7z4g5xIQUyCBxpRgTGNdLyqGSKbp5BPrZ3EFYVPprExaJKyMTDGSBjGLhCVNsDJfCl1M
         5On96Tf7FRk77/nf5D9GRrg0AqZ4R625zG9W3Hegs2PNvA7tkMIbxQd8qKtTB8Z2Orwp
         /gWV+3eZEn43/8W0IJQOcB29fdXMj0VnDv0cFtZmmpiSE7we/WCqXPRbJHuFmTDO9Sit
         QH8Q==
X-Gm-Message-State: AOAM5332dvnlPm9uDuGJq5bxc1zz19XMcpxK0KoVNuNnZ/pBCaQm0BEM
	9IJUtz7e2VZkaB4DCxa76k48xg==
X-Google-Smtp-Source: ABdhPJwb/aFbIu8dIyZ/rHwVyiCtAdp7dmdzWNFLSsD1GwQ69nph/cPeSUCecltAOeJjHsbs2fHFGQ==
X-Received: by 2002:adf:e6c5:: with SMTP id y5mr664478wrm.79.1636385362480;
        Mon, 08 Nov 2021 07:29:22 -0800 (PST)
Date: Mon, 8 Nov 2021 16:29:20 +0100
From: Daniel Vetter <daniel@ffwll.ch>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: daniel@ffwll.ch, airlied@linux.ie, maarten.lankhorst@linux.intel.com,
	mripard@kernel.org, inki.dae@samsung.com, jy0922.shim@samsung.com,
	sw0312.kim@samsung.com, kyungmin.park@samsung.com,
	krzysztof.kozlowski@canonical.com, oleksandr_andrushchenko@epam.com,
	dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/3] drm/exynox: Implement mmap as GEM object function
Message-ID: <YYlCUOgd1/GBluE7@phenom.ffwll.local>
References: <20211108102846.309-1-tzimmermann@suse.de>
 <20211108102846.309-2-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211108102846.309-2-tzimmermann@suse.de>
X-Operating-System: Linux phenom 5.10.0-8-amd64 

On Mon, Nov 08, 2021 at 11:28:44AM +0100, Thomas Zimmermann wrote:
> Moving the driver-specific mmap code into a GEM object function allows
> for using DRM helpers for various mmap callbacks.
> 
> The respective exynos functions are being removed. The file_operations
> structure exynos_drm_driver_fops is now being created by the helper macro
> DEFINE_DRM_GEM_FOPS().
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>

s/exynox/exynos in the subject.

Patch lgtm, but would still be good if exynos maintainers would
ack/review/test it. But if you don't get anything within 2 weeks here's
my:

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/exynos/exynos_drm_drv.c   | 13 ++-----
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 20 ++---------
>  drivers/gpu/drm/exynos/exynos_drm_gem.c   | 43 +++++------------------
>  drivers/gpu/drm/exynos/exynos_drm_gem.h   |  5 ---
>  4 files changed, 13 insertions(+), 68 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index d8f1cf4d6b69..9743b6b17447 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -102,16 +102,7 @@ static const struct drm_ioctl_desc exynos_ioctls[] = {
>  			DRM_RENDER_ALLOW),
>  };
>  
> -static const struct file_operations exynos_drm_driver_fops = {
> -	.owner		= THIS_MODULE,
> -	.open		= drm_open,
> -	.mmap		= exynos_drm_gem_mmap,
> -	.poll		= drm_poll,
> -	.read		= drm_read,
> -	.unlocked_ioctl	= drm_ioctl,
> -	.compat_ioctl = drm_compat_ioctl,
> -	.release	= drm_release,
> -};
> +DEFINE_DRM_GEM_FOPS(exynos_drm_driver_fops);
>  
>  static const struct drm_driver exynos_drm_driver = {
>  	.driver_features	= DRIVER_MODESET | DRIVER_GEM
> @@ -124,7 +115,7 @@ static const struct drm_driver exynos_drm_driver = {
>  	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
>  	.gem_prime_import	= exynos_drm_gem_prime_import,
>  	.gem_prime_import_sg_table	= exynos_drm_gem_prime_import_sg_table,
> -	.gem_prime_mmap		= exynos_drm_gem_prime_mmap,
> +	.gem_prime_mmap		= drm_gem_prime_mmap,
>  	.ioctls			= exynos_ioctls,
>  	.num_ioctls		= ARRAY_SIZE(exynos_ioctls),
>  	.fops			= &exynos_drm_driver_fops,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
> index 5147f5929be7..02c97b9ca926 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
> @@ -15,6 +15,7 @@
>  #include <drm/drm_crtc.h>
>  #include <drm/drm_fb_helper.h>
>  #include <drm/drm_fourcc.h>
> +#include <drm/drm_prime.h>
>  #include <drm/drm_probe_helper.h>
>  #include <drm/exynos_drm.h>
>  
> @@ -39,25 +40,8 @@ static int exynos_drm_fb_mmap(struct fb_info *info,
>  	struct drm_fb_helper *helper = info->par;
>  	struct exynos_drm_fbdev *exynos_fbd = to_exynos_fbdev(helper);
>  	struct exynos_drm_gem *exynos_gem = exynos_fbd->exynos_gem;
> -	unsigned long vm_size;
> -	int ret;
> -
> -	vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
> -
> -	vm_size = vma->vm_end - vma->vm_start;
> -
> -	if (vm_size > exynos_gem->size)
> -		return -EINVAL;
>  
> -	ret = dma_mmap_attrs(to_dma_dev(helper->dev), vma, exynos_gem->cookie,
> -			     exynos_gem->dma_addr, exynos_gem->size,
> -			     exynos_gem->dma_attrs);
> -	if (ret < 0) {
> -		DRM_DEV_ERROR(to_dma_dev(helper->dev), "failed to mmap.\n");
> -		return ret;
> -	}
> -
> -	return 0;
> +	return drm_gem_prime_mmap(&exynos_gem->base, vma);
>  }
>  
>  static const struct fb_ops exynos_drm_fb_ops = {
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> index 4396224227d1..c4b63902ee7a 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> @@ -17,6 +17,8 @@
>  #include "exynos_drm_drv.h"
>  #include "exynos_drm_gem.h"
>  
> +static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
> +
>  static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool kvmap)
>  {
>  	struct drm_device *dev = exynos_gem->base.dev;
> @@ -135,6 +137,7 @@ static const struct vm_operations_struct exynos_drm_gem_vm_ops = {
>  static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = {
>  	.free = exynos_drm_gem_free_object,
>  	.get_sg_table = exynos_drm_gem_prime_get_sg_table,
> +	.mmap = exynos_drm_gem_mmap,
>  	.vm_ops = &exynos_drm_gem_vm_ops,
>  };
>  
> @@ -354,12 +357,16 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
>  	return 0;
>  }
>  
> -static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj,
> -				   struct vm_area_struct *vma)
> +static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
>  {
>  	struct exynos_drm_gem *exynos_gem = to_exynos_gem(obj);
>  	int ret;
>  
> +	if (obj->import_attach)
> +		return dma_buf_mmap(obj->dma_buf, vma, 0);
> +
> +	vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
> +
>  	DRM_DEV_DEBUG_KMS(to_dma_dev(obj->dev), "flags = 0x%x\n",
>  			  exynos_gem->flags);
>  
> @@ -385,26 +392,6 @@ static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj,
>  	return ret;
>  }
>  
> -int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
> -{
> -	struct drm_gem_object *obj;
> -	int ret;
> -
> -	/* set vm_area_struct. */
> -	ret = drm_gem_mmap(filp, vma);
> -	if (ret < 0) {
> -		DRM_ERROR("failed to mmap.\n");
> -		return ret;
> -	}
> -
> -	obj = vma->vm_private_data;
> -
> -	if (obj->import_attach)
> -		return dma_buf_mmap(obj->dma_buf, vma, 0);
> -
> -	return exynos_drm_gem_mmap_obj(obj, vma);
> -}
> -
>  /* low-level interface prime helpers */
>  struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev,
>  					    struct dma_buf *dma_buf)
> @@ -466,15 +453,3 @@ exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
>  	exynos_gem->sgt = sgt;
>  	return &exynos_gem->base;
>  }
> -
> -int exynos_drm_gem_prime_mmap(struct drm_gem_object *obj,
> -			      struct vm_area_struct *vma)
> -{
> -	int ret;
> -
> -	ret = drm_gem_mmap_obj(obj, obj->size, vma);
> -	if (ret < 0)
> -		return ret;
> -
> -	return exynos_drm_gem_mmap_obj(obj, vma);
> -}
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exynos/exynos_drm_gem.h
> index a23272fb96fb..79d7e1a87419 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.h
> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h
> @@ -96,9 +96,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
>  			       struct drm_device *dev,
>  			       struct drm_mode_create_dumb *args);
>  
> -/* set vm_flags and we can change the vm attribute to other one at here. */
> -int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma);
> -
>  /* low-level interface prime helpers */
>  struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev,
>  					    struct dma_buf *dma_buf);
> @@ -107,7 +104,5 @@ struct drm_gem_object *
>  exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
>  				     struct dma_buf_attachment *attach,
>  				     struct sg_table *sgt);
> -int exynos_drm_gem_prime_mmap(struct drm_gem_object *obj,
> -			      struct vm_area_struct *vma);
>  
>  #endif
> -- 
> 2.33.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 15:59:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 15:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223492.386234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk739-000813-76; Mon, 08 Nov 2021 15:59:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223492.386234; Mon, 08 Nov 2021 15:59:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk739-00080w-3K; Mon, 08 Nov 2021 15:59:11 +0000
Received: by outflank-mailman (input) for mailman id 223492;
 Mon, 08 Nov 2021 15:59:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk738-00080S-71
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 15:59:10 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce9f4b34-40ac-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 16:59:09 +0100 (CET)
Received: from zn.tnic (p200300ec2f331100b486bab6e60d7aaf.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:b486:bab6:e60d:7aaf])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 341131EC04DE;
 Mon,  8 Nov 2021 16:59:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce9f4b34-40ac-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636387148;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=JALJsenIQCt4BletZS/B+Zq0YBxBp6L9Ch45cvOw8XQ=;
	b=LCBDSZEhct23FIVquhfAlhIS3MpLXm84rotG+ppp99dGMPWi9iJHGgKkfiFg0DoLQ+NSWf
	ixY2Bl+WafqAknd6kFkKb4q9SvLPR/pI4iyCTMD6S/zki4CWzqH6/1ZBq8awazUNWt4Xi0
	idSLz3mdlao9wfI9n1SzGKhLH2sR0dI=
Date: Mon, 8 Nov 2021 16:58:57 +0100
From: Borislav Petkov <bp@alien8.de>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>, Arnd Bergmann <arnd@arndb.de>,
	Ayush Sawal <ayush.sawal@chelsio.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rohit Maheshwari <rohitm@chelsio.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
	ALSA Development Mailing List <alsa-devel@alsa-project.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	intel-gvt-dev@lists.freedesktop.org,
	alpha <linux-alpha@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	Linux Crypto Mailing List <linux-crypto@vger.kernel.org>,
	linux-edac@vger.kernel.org,
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	linux-hyperv@vger.kernel.org, linux-iio@vger.kernel.org,
	linux-leds <linux-leds@vger.kernel.org>,
	"open list:BROADCOM NVRAM DRIVER" <linux-mips@vger.kernel.org>,
	Parisc List <linux-parisc@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	"open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM" <linux-remoteproc@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	linux-s390 <linux-s390@vger.kernel.org>,
	scsi <linux-scsi@vger.kernel.org>,
	Linux-sh list <linux-sh@vger.kernel.org>,
	linux-staging@lists.linux.dev,
	linux-tegra <linux-tegra@vger.kernel.org>,
	linux-um <linux-um@lists.infradead.org>,
	USB list <linux-usb@vger.kernel.org>,
	"open list:TENSILICA XTENSA PORT (xtensa)" <linux-xtensa@linux-xtensa.org>,
	netdev <netdev@vger.kernel.org>,
	openipmi-developer@lists.sourceforge.net, rcu@vger.kernel.org,
	sparclinux <sparclinux@vger.kernel.org>,
	the arch/x86 maintainers <x86@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 42/42] notifier: Return an error when callback is
 already registered
Message-ID: <YYlJQYLiIrhjwOmT@zn.tnic>
References: <20211108101157.15189-1-bp@alien8.de>
 <20211108101157.15189-43-bp@alien8.de>
 <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com>
 <YYkyUEqcsOwQMb1S@zn.tnic>
 <CAMuHMdXiBEQyEXJagSfpH44hxVA2t0sDH7B7YubLGHrb2MJLLA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <CAMuHMdXiBEQyEXJagSfpH44hxVA2t0sDH7B7YubLGHrb2MJLLA@mail.gmail.com>

On Mon, Nov 08, 2021 at 04:25:47PM +0100, Geert Uytterhoeven wrote:
> I'm not against returning proper errors codes.  I'm against forcing
> callers to check things that cannot fail and to add individual error
> printing to each and every caller.

If you're against checking things at the callers, then the registration
function should be void. IOW, those APIs are not optimally designed atm.

> Note that in other areas, we are moving in the other direction,
> to a centralized printing of error messages, cfr. e.g. commit
> 7723f4c5ecdb8d83 ("driver core: platform: Add an error message to
> platform_get_irq*()").

Yes, thus my other idea to add a lower level __notifier_chain_register()
to do the checking.

I'll see if I can convert those notifier registration functions to
return void, in the process. But let's see what the others think first.

Thanks for taking the time.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 16:12:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 16:12:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223501.386244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7G4-0002Pf-9J; Mon, 08 Nov 2021 16:12:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223501.386244; Mon, 08 Nov 2021 16:12:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7G4-0002PY-67; Mon, 08 Nov 2021 16:12:32 +0000
Received: by outflank-mailman (input) for mailman id 223501;
 Mon, 08 Nov 2021 16:12:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tVlX=P3=gmail.com=geert.uytterhoeven@srs-se1.protection.inumbo.net>)
 id 1mk7G3-0002PS-9x
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 16:12:31 +0000
Received: from mail-ua1-f50.google.com (mail-ua1-f50.google.com
 [209.85.222.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id abe4b77b-40ae-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 17:12:30 +0100 (CET)
Received: by mail-ua1-f50.google.com with SMTP id q13so32559676uaq.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Nov 2021 08:12:30 -0800 (PST)
Received: from mail-vk1-f181.google.com (mail-vk1-f181.google.com.
 [209.85.221.181])
 by smtp.gmail.com with ESMTPSA id j126sm2496418vsc.17.2021.11.08.08.12.27
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Nov 2021 08:12:27 -0800 (PST)
Received: by mail-vk1-f181.google.com with SMTP id f78so6379000vka.5
 for <xen-devel@lists.xenproject.org>; Mon, 08 Nov 2021 08:12:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abe4b77b-40ae-11ec-a9d2-d9f7a1cc8784
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=hEQQmRj7LTpJogPgt2xRVOX7N+txus6iMmGepIZghfU=;
        b=2VnckiAsO1uFXGD9Dj9uNSq4IgEVrO2agSPymZUuhgt19s1rkmvKNjJI7HffiXt6vV
         hKK2eYLULtWgQSOTmIWMOhQsAPVHeOdO0XYpkTRDYlYMW2glUeYYDBAm2Iaj21VOEPXF
         7EDCSSHZsD2Sf0l7SObWtpPq+7mIoXjsKbskMCIpVt25bHLBwS5g1zIZiPdn0eYoz47n
         ks4lY0eMmkCd3+vsqwQIczfZChbchTYgiSMlDtaAqM6CpDAE14gFw6gAZiAFYELC9z1v
         kfaJKHMI7bzXvJQrWM2XRmAWhzayE3nVr68iWoNiMjA8PzYabZvzraLHEkKjJeKssQL+
         J3kg==
X-Gm-Message-State: AOAM530kFlxdU/rlTS1nf6+WNrrus2fx9WyNPL/kr/oY4opT18CZCwiU
	9va/B+iS4/o2EDZKf3jZfRT/6ia7mnw5cY2N
X-Google-Smtp-Source: ABdhPJwc2ba8eTqzvs6aoNFZVs4yF8uM0d7uC7CRQe40pper06ZJi4ustzn2kVfixLKu6jTcU7igOg==
X-Received: by 2002:a67:d491:: with SMTP id g17mr137662vsj.41.1636387948682;
        Mon, 08 Nov 2021 08:12:28 -0800 (PST)
X-Received: by 2002:a1f:f24f:: with SMTP id q76mr347755vkh.11.1636387947335;
 Mon, 08 Nov 2021 08:12:27 -0800 (PST)
MIME-Version: 1.0
References: <20211108101157.15189-1-bp@alien8.de> <20211108101157.15189-43-bp@alien8.de>
 <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com>
 <YYkyUEqcsOwQMb1S@zn.tnic> <CAMuHMdXiBEQyEXJagSfpH44hxVA2t0sDH7B7YubLGHrb2MJLLA@mail.gmail.com>
 <YYlJQYLiIrhjwOmT@zn.tnic>
In-Reply-To: <YYlJQYLiIrhjwOmT@zn.tnic>
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Mon, 8 Nov 2021 17:12:16 +0100
X-Gmail-Original-Message-ID: <CAMuHMdXHikGrmUzuq0WG5JRHUUE=5zsaVCTF+e4TiHpM5tc5kA@mail.gmail.com>
Message-ID: <CAMuHMdXHikGrmUzuq0WG5JRHUUE=5zsaVCTF+e4TiHpM5tc5kA@mail.gmail.com>
Subject: Re: [PATCH v0 42/42] notifier: Return an error when callback is
 already registered
To: Borislav Petkov <bp@alien8.de>
Cc: LKML <linux-kernel@vger.kernel.org>, Thomas Gleixner <tglx@linutronix.de>, 
	Arnd Bergmann <arnd@arndb.de>, Ayush Sawal <ayush.sawal@chelsio.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Rohit Maheshwari <rohitm@chelsio.com>, 
	Steven Rostedt <rostedt@goodmis.org>, Vinay Kumar Yadav <vinay.yadav@chelsio.com>, 
	ALSA Development Mailing List <alsa-devel@alsa-project.org>, 
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>, 
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>, intel-gvt-dev@lists.freedesktop.org, 
	alpha <linux-alpha@vger.kernel.org>, 
	Linux ARM <linux-arm-kernel@lists.infradead.org>, 
	linux-clk <linux-clk@vger.kernel.org>, 
	Linux Crypto Mailing List <linux-crypto@vger.kernel.org>, linux-edac@vger.kernel.org, 
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>, linux-hyperv@vger.kernel.org, 
	linux-iio@vger.kernel.org, linux-leds <linux-leds@vger.kernel.org>, 
	"open list:BROADCOM NVRAM DRIVER" <linux-mips@vger.kernel.org>, Parisc List <linux-parisc@vger.kernel.org>, 
	Linux PM list <linux-pm@vger.kernel.org>, linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, 
	"open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM" <linux-remoteproc@vger.kernel.org>, 
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>, linux-s390 <linux-s390@vger.kernel.org>, 
	scsi <linux-scsi@vger.kernel.org>, Linux-sh list <linux-sh@vger.kernel.org>, 
	linux-staging@lists.linux.dev, linux-tegra <linux-tegra@vger.kernel.org>, 
	linux-um <linux-um@lists.infradead.org>, USB list <linux-usb@vger.kernel.org>, 
	"open list:TENSILICA XTENSA PORT (xtensa)" <linux-xtensa@linux-xtensa.org>, netdev <netdev@vger.kernel.org>, 
	openipmi-developer@lists.sourceforge.net, rcu@vger.kernel.org, 
	sparclinux <sparclinux@vger.kernel.org>, "the arch/x86 maintainers" <x86@kernel.org>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

Hi Borislav,

On Mon, Nov 8, 2021 at 4:59 PM Borislav Petkov <bp@alien8.de> wrote:
> On Mon, Nov 08, 2021 at 04:25:47PM +0100, Geert Uytterhoeven wrote:
> > I'm not against returning proper errors codes.  I'm against forcing
> > callers to check things that cannot fail and to add individual error
> > printing to each and every caller.
>
> If you're against checking things at the callers, then the registration
> function should be void. IOW, those APIs are not optimally designed atm.

Returning void is the other extreme ;-)

There are 3 levels (ignoring BUG_ON()/panic () inside the callee):
  1. Return void: no one can check success or failure,
  2. Return an error code: up to the caller to decide,
  3. Return a __must_check error code: every caller must check.

I'm in favor of 2, as there are several places where it cannot fail.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 16:22:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 16:22:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223508.386256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7P8-0003v0-5z; Mon, 08 Nov 2021 16:21:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223508.386256; Mon, 08 Nov 2021 16:21:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7P8-0003ut-2P; Mon, 08 Nov 2021 16:21:54 +0000
Received: by outflank-mailman (input) for mailman id 223508;
 Mon, 08 Nov 2021 16:21:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk7P6-0003uX-Uf
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 16:21:52 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fae40eea-40af-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 17:21:51 +0100 (CET)
Received: from zn.tnic (p200300ec2f331100181cb4ce2fe9e1de.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:181c:b4ce:2fe9:e1de])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 071501EC0503;
 Mon,  8 Nov 2021 17:21:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fae40eea-40af-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636388511;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=BmhP/O36y2kgWhY9wVesOsCT3VZHRN0l2HSALpf1H38=;
	b=PwrrR1/9r0PtkEkx8l94Lq5o8cthN3NxILevAwj1LoIRoN/B58W84rM+iyPPtwIBmVMRtG
	8jlUd2DAmGqQe7+sK0xny6az8RzdndQG0jeU2pdwyReIQXuaywQhQg+JKE/uRG6ku5v9jN
	K5y81X7+5Pp2iJVW5AZDozV+KOdqQTY=
Date: Mon, 8 Nov 2021 17:21:45 +0100
From: Borislav Petkov <bp@alien8.de>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>, Arnd Bergmann <arnd@arndb.de>,
	Ayush Sawal <ayush.sawal@chelsio.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rohit Maheshwari <rohitm@chelsio.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
	ALSA Development Mailing List <alsa-devel@alsa-project.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	intel-gvt-dev@lists.freedesktop.org,
	alpha <linux-alpha@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	Linux Crypto Mailing List <linux-crypto@vger.kernel.org>,
	linux-edac@vger.kernel.org,
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	linux-hyperv@vger.kernel.org, linux-iio@vger.kernel.org,
	linux-leds <linux-leds@vger.kernel.org>,
	"open list:BROADCOM NVRAM DRIVER" <linux-mips@vger.kernel.org>,
	Parisc List <linux-parisc@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	"open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM" <linux-remoteproc@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	linux-s390 <linux-s390@vger.kernel.org>,
	scsi <linux-scsi@vger.kernel.org>,
	Linux-sh list <linux-sh@vger.kernel.org>,
	linux-staging@lists.linux.dev,
	linux-tegra <linux-tegra@vger.kernel.org>,
	linux-um <linux-um@lists.infradead.org>,
	USB list <linux-usb@vger.kernel.org>,
	"open list:TENSILICA XTENSA PORT (xtensa)" <linux-xtensa@linux-xtensa.org>,
	netdev <netdev@vger.kernel.org>,
	openipmi-developer@lists.sourceforge.net, rcu@vger.kernel.org,
	sparclinux <sparclinux@vger.kernel.org>,
	the arch/x86 maintainers <x86@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 42/42] notifier: Return an error when callback is
 already registered
Message-ID: <YYlOmd0AeA8DSluD@zn.tnic>
References: <20211108101157.15189-1-bp@alien8.de>
 <20211108101157.15189-43-bp@alien8.de>
 <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com>
 <YYkyUEqcsOwQMb1S@zn.tnic>
 <CAMuHMdXiBEQyEXJagSfpH44hxVA2t0sDH7B7YubLGHrb2MJLLA@mail.gmail.com>
 <YYlJQYLiIrhjwOmT@zn.tnic>
 <CAMuHMdXHikGrmUzuq0WG5JRHUUE=5zsaVCTF+e4TiHpM5tc5kA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <CAMuHMdXHikGrmUzuq0WG5JRHUUE=5zsaVCTF+e4TiHpM5tc5kA@mail.gmail.com>

On Mon, Nov 08, 2021 at 05:12:16PM +0100, Geert Uytterhoeven wrote:
> Returning void is the other extreme ;-)
> 
> There are 3 levels (ignoring BUG_ON()/panic () inside the callee):
>   1. Return void: no one can check success or failure,
>   2. Return an error code: up to the caller to decide,
>   3. Return a __must_check error code: every caller must check.
> 
> I'm in favor of 2, as there are several places where it cannot fail.

Makes sense to me. I'll do that in the next iteration.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 16:23:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 16:23:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223513.386267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7Qa-0004UR-HA; Mon, 08 Nov 2021 16:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223513.386267; Mon, 08 Nov 2021 16:23:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7Qa-0004UK-DO; Mon, 08 Nov 2021 16:23:24 +0000
Received: by outflank-mailman (input) for mailman id 223513;
 Mon, 08 Nov 2021 16:23:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mNkB=P3=goodmis.org=rostedt@kernel.org>)
 id 1mk7QY-0004UC-IX
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 16:23:22 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f01954c-40b0-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 17:23:20 +0100 (CET)
Received: from gandalf.local.home (cpe-66-24-58-225.stny.res.rr.com
 [66.24.58.225])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.kernel.org (Postfix) with ESMTPSA id E868D61284;
 Mon,  8 Nov 2021 16:23:14 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f01954c-40b0-11ec-a9d2-d9f7a1cc8784
Date: Mon, 8 Nov 2021 11:23:13 -0500
From: Steven Rostedt <rostedt@goodmis.org>
To: Borislav Petkov <bp@alien8.de>
Cc: Alan Stern <stern@rowland.harvard.edu>, Geert Uytterhoeven
 <geert@linux-m68k.org>, LKML <linux-kernel@vger.kernel.org>, Arnd Bergmann
 <arnd@arndb.de>, Ayush Sawal <ayush.sawal@chelsio.com>, Greg Kroah-Hartman
 <gregkh@linuxfoundation.org>, Rohit Maheshwari <rohitm@chelsio.com>, Vinay
 Kumar Yadav <vinay.yadav@chelsio.com>, alsa-devel@alsa-project.org,
 bcm-kernel-feedback-list@broadcom.com, intel-gfx@lists.freedesktop.org,
 intel-gvt-dev@lists.freedesktop.org, linux-alpha@vger.kernel.org,
 linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
 linux-crypto@vger.kernel.org, linux-edac@vger.kernel.org,
 linux-fbdev@vger.kernel.org, linux-hyperv@vger.kernel.org,
 linux-iio@vger.kernel.org, linux-leds@vger.kernel.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linux-pm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
 linux-remoteproc@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
 linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
 linux-sh@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-tegra@vger.kernel.org, linux-um@lists.infradead.org,
 linux-usb@vger.kernel.org, linux-xtensa@linux-xtensa.org,
 netdev@vger.kernel.org, openipmi-developer@lists.sourceforge.net,
 rcu@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 00/42] notifiers: Return an error when callback is
 already registered
Message-ID: <20211108112313.73d0727e@gandalf.local.home>
In-Reply-To: <YYk1xi3eJdMJdjHC@zn.tnic>
References: <20211108101157.15189-1-bp@alien8.de>
	<20211108101924.15759-1-bp@alien8.de>
	<20211108141703.GB1666297@rowland.harvard.edu>
	<YYkzJ3+faVga2Tl3@zn.tnic>
	<YYk1xi3eJdMJdjHC@zn.tnic>
X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Mon, 8 Nov 2021 15:35:50 +0100
Borislav Petkov <bp@alien8.de> wrote:

> On Mon, Nov 08, 2021 at 03:24:39PM +0100, Borislav Petkov wrote:
> > I guess I can add another indirection to notifier_chain_register() and
> > avoid touching all the call sites.  
> 
> IOW, something like this below.
> 
> This way I won't have to touch all the callsites and the registration
> routines would still return a proper value instead of returning 0
> unconditionally.

I prefer this method.

Question, how often does this warning trigger? Is it common to see in
development?

-- Steve


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 16:24:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 16:24:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223521.386278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7S2-0005A6-1n; Mon, 08 Nov 2021 16:24:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223521.386278; Mon, 08 Nov 2021 16:24:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7S1-00059v-TE; Mon, 08 Nov 2021 16:24:53 +0000
Received: by outflank-mailman (input) for mailman id 223521;
 Mon, 08 Nov 2021 16:24:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NS6W=P3=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mk7S1-00059S-EW
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 16:24:53 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66a5ccee-40b0-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 17:24:52 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id F26C3218D6;
 Mon,  8 Nov 2021 16:24:51 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id AF2EE13BC0;
 Mon,  8 Nov 2021 16:24:51 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id hlFxKVNPiWFYZgAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 08 Nov 2021 16:24:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66a5ccee-40b0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636388692; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=U0zZLb0HvWCCao8EJ+NqyQpxoV5ZQgJvH2DC+c9bMtc=;
	b=Hgw5zelZjDq3KEJewEqjIBsIxED3LinUp/1sAUEmEnl/90dFCHLb9H7AmBhvKa3tQsiiK5
	PiH17LAUQoP6VhDx1DDdEDMN5uwH8Ci9rFJD74358khYtC5RJ3xK98JKkgtvzamgOOTAFI
	aheOFYAE6jYdqLEiUyxZtm+2K308+8E=
Subject: Re: [PATCH] xen/balloon: fix unused-variable warning
To: Arnd Bergmann <arnd@kernel.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Arnd Bergmann <arnd@arndb.de>, Stefano Stabellini
 <sstabellini@kernel.org>, Oscar Salvador <osalvador@suse.de>,
 Pankaj Gupta <pankaj.gupta@cloud.ionos.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 David Hildenbrand <david@redhat.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20211108111408.3940366-1-arnd@kernel.org>
From: Juergen Gross <jgross@suse.com>
Message-ID: <4d0f02ec-4a36-34f1-3bfd-3f4758c4eea3@suse.com>
Date: Mon, 8 Nov 2021 17:24:51 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211108111408.3940366-1-arnd@kernel.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="SkVOgLpshoD9dlISz1HVW9prGmzrAK94T"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--SkVOgLpshoD9dlISz1HVW9prGmzrAK94T
Content-Type: multipart/mixed; boundary="BAODkXB4N8PiE6nyzjEthqTiehs8bjioQ";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Arnd Bergmann <arnd@kernel.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Arnd Bergmann <arnd@arndb.de>, Stefano Stabellini
 <sstabellini@kernel.org>, Oscar Salvador <osalvador@suse.de>,
 Pankaj Gupta <pankaj.gupta@cloud.ionos.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 David Hildenbrand <david@redhat.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <4d0f02ec-4a36-34f1-3bfd-3f4758c4eea3@suse.com>
Subject: Re: [PATCH] xen/balloon: fix unused-variable warning
References: <20211108111408.3940366-1-arnd@kernel.org>
In-Reply-To: <20211108111408.3940366-1-arnd@kernel.org>

--BAODkXB4N8PiE6nyzjEthqTiehs8bjioQ
Content-Type: multipart/mixed;
 boundary="------------ADE257E85A8FD6F18CF3FC67"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------ADE257E85A8FD6F18CF3FC67
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 08.11.21 12:14, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>=20
> In configurations with CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=3Dn
> and CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=3Dy, gcc warns about an
> unused variable:
>=20
> drivers/xen/balloon.c:83:12: error: 'xen_hotplug_unpopulated' defined b=
ut not used [-Werror=3Dunused-variable]
>=20
> Since this is always zero when CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
> is disabled, turn it into a preprocessor constant in that case.
>=20
> Fixes: 121f2faca2c0 ("xen/balloon: rename alloc/free_xenballooned_pages=
")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen


--------------ADE257E85A8FD6F18CF3FC67
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------ADE257E85A8FD6F18CF3FC67--

--BAODkXB4N8PiE6nyzjEthqTiehs8bjioQ--

--SkVOgLpshoD9dlISz1HVW9prGmzrAK94T
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGJT1MFAwAAAAAACgkQsN6d1ii/Ey+2
SQf/VATQhAPufmxQQXGhnOvti0OPrb2Cca3DVfFUY5yRow3hAD27XrRY3SU7Rvh7mlBM5GUQArDm
xzU4wO4GMdR7ljzRWKGg+5fllW9ZdkNTxFRTAf8cD+DArmhaIoCQ7c7/vrOD9H5q8ojJqjfc+Z2s
UqH0nbZwrbvuSDWKgC15xdT1q7Ip/XAeRVXPwdaRRqZR0HvOjxWvRNaQ7UMZGgDsAt6xIB5XkQ67
+BezorBLASwp+iX/yb48xs595GXqZ/PVKPu/29zCBn+6GM2Qgs0JvwabaovuGUJO/Cot8/bB5y9m
FJrQ2n8yrogHyp+/ZuJagEOH1V+pJccKvcIvsS6gGg==
=JrLZ
-----END PGP SIGNATURE-----

--SkVOgLpshoD9dlISz1HVW9prGmzrAK94T--


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 16:30:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 16:30:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223530.386289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7Wy-0005uk-L1; Mon, 08 Nov 2021 16:30:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223530.386289; Mon, 08 Nov 2021 16:30:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk7Wy-0005ud-GL; Mon, 08 Nov 2021 16:30:00 +0000
Received: by outflank-mailman (input) for mailman id 223530;
 Mon, 08 Nov 2021 16:29:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mk7Wx-0005uX-Hw
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 16:29:59 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1cce1cfc-40b1-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 17:29:58 +0100 (CET)
Received: from zn.tnic (p200300ec2f331100181cb4ce2fe9e1de.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:181c:b4ce:2fe9:e1de])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 652D11EC0512;
 Mon,  8 Nov 2021 17:29:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1cce1cfc-40b1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636388997;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=OSbzA4U/ida8aXvLATS9A1smiSvQH5VirglC+wMEOMM=;
	b=pBzIQNPgz9f6MnJz8NuSpWeZa+X2KJ2EY1gkFfqIgUOOdk5ooj7nS3SZlOvvPfnLO1w7js
	1rE5oU8U3sZ2kD0zZzsPOjz5Rjy821j5ugVLv+TE7mQzDtZGil7p5QTxNJmqJYfQhl3i/U
	43Oeu8iAMBrtl8n9GGHPMyt/ODoo1Kk=
Date: Mon, 8 Nov 2021 17:29:55 +0100
From: Borislav Petkov <bp@alien8.de>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Alan Stern <stern@rowland.harvard.edu>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	LKML <linux-kernel@vger.kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Ayush Sawal <ayush.sawal@chelsio.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rohit Maheshwari <rohitm@chelsio.com>,
	Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
	alsa-devel@alsa-project.org, bcm-kernel-feedback-list@broadcom.com,
	intel-gfx@lists.freedesktop.org,
	intel-gvt-dev@lists.freedesktop.org, linux-alpha@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
	linux-crypto@vger.kernel.org, linux-edac@vger.kernel.org,
	linux-fbdev@vger.kernel.org, linux-hyperv@vger.kernel.org,
	linux-iio@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-pm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-remoteproc@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-staging@lists.linux.dev,
	linux-tegra@vger.kernel.org, linux-um@lists.infradead.org,
	linux-usb@vger.kernel.org, linux-xtensa@linux-xtensa.org,
	netdev@vger.kernel.org, openipmi-developer@lists.sourceforge.net,
	rcu@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 00/42] notifiers: Return an error when callback is
 already registered
Message-ID: <YYlQg+OvUpUL630W@zn.tnic>
References: <20211108101157.15189-1-bp@alien8.de>
 <20211108101924.15759-1-bp@alien8.de>
 <20211108141703.GB1666297@rowland.harvard.edu>
 <YYkzJ3+faVga2Tl3@zn.tnic>
 <YYk1xi3eJdMJdjHC@zn.tnic>
 <20211108112313.73d0727e@gandalf.local.home>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20211108112313.73d0727e@gandalf.local.home>

On Mon, Nov 08, 2021 at 11:23:13AM -0500, Steven Rostedt wrote:
> Question, how often does this warning trigger? Is it common to see in
> development?

Yeah, haven't seen it myself yet.

But we hashed it out over IRC. :-)

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 17:21:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 17:21:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223541.386300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk8KV-0003SE-Dz; Mon, 08 Nov 2021 17:21:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223541.386300; Mon, 08 Nov 2021 17:21:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk8KV-0003S7-Ao; Mon, 08 Nov 2021 17:21:11 +0000
Received: by outflank-mailman (input) for mailman id 223541;
 Mon, 08 Nov 2021 17:21:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dEZx=P3=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mk8KT-0003S1-RJ
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 17:21:10 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f836855-40b8-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 18:21:03 +0100 (CET)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A8HDHAa025293; 
 Mon, 8 Nov 2021 17:20:37 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c6sbk4d6s-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 08 Nov 2021 17:20:36 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A8HAvZD165082;
 Mon, 8 Nov 2021 17:20:35 GMT
Received: from nam11-co1-obe.outbound.protection.outlook.com
 (mail-co1nam11lp2170.outbound.protection.outlook.com [104.47.56.170])
 by userp3020.oracle.com with ESMTP id 3c63frjx0h-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 08 Nov 2021 17:20:35 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB3886.namprd10.prod.outlook.com (2603:10b6:208:1bf::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Mon, 8 Nov
 2021 17:20:32 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4669.016; Mon, 8 Nov 2021
 17:20:32 +0000
Received: from [10.74.106.251] (138.3.200.59) by
 BYAPR02CA0044.namprd02.prod.outlook.com (2603:10b6:a03:54::21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Mon, 8 Nov 2021 17:20:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f836855-40b8-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=aOYwDHeoTwFBbLeM8Hc8dMyT2YDdAGdHFv2ithKVb7M=;
 b=bMBiHX9xYTME79SHJjdO7hqwg2z3r46HnKoByN20+wzi2TNWUjEv0SegafwmRjFpjHou
 OuldKGEMBb/6TSNOiP2p5u5MhtGQP8c2G+FIIaAi4Rb5JrcIr1vxQERloOIHcb03rH5L
 KmLmU/a60A07dHwWjDaYulnE1kbgn/wsbOJyLBGll1cOBFd6DVZ5gXUy6toSbeGyKrmf
 d2geR7LocUnSnhZmolxAhbi8dmC7x0LlDo94Umuazet8EiuZK2wc1d8UZ3X1HO+fz/V4
 X5wZXBWLxgJol0BW9uzTHZZu8npStv73NA5m+LPDi6UkIGXIB9bBeA9LdG7Uk4KuLFju dg== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kR22KvtoGZN6B0Ep/uKoGQrm10S767AkRuaPS5DmjCgxouA6RMI312Lj/xSih0zp0KFuIJRfXV4DVJisCxhPc6TZe++c4SSCeHZG+h1n1IEFzXeG9rgyEdRSrgpWeC+GdAYEBxw90+rWwyh8oGFcwcHyBivQRYvH3sTrRbNHTUOJKNsQChETVe+/xHETr5o0ArCobj3W3GZIhgEuYhofJ009hdVXQeLzv5DGIzCHHiu2Q3H4mluCwua/K1KjlzQkb6DrWi6hslrn7BWyOiD37Uv+Au2KXb4a4RjTdU1Dyt3pVrrHFpGyUU0MiAEq7jLakEHPM3gqIXwGEb6GpTsFAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aOYwDHeoTwFBbLeM8Hc8dMyT2YDdAGdHFv2ithKVb7M=;
 b=GTVSfdaT3ntx8ASjjRvcKk3E0Wn1XfEGq9sVa4gFPfK/6M76SpLt2DcadnS2i0AbZSbm+lC1iRemc3VYreXLDZ8TGPuzdHBKSW2F0QblRUpAEM2nmEaFOuQho8/y73PWYO6rnzljKevutnFBErbLzSqGE9X4bNv1KjMPavbeX8Fxpohf0B3lPn0t/q0ziPAguDmneoqry02K//MdvJ0npYAQ7e5vNqo3vzJaqQxpSw/VDNejk7+rdw3SkyuKSNHHZYRZe/957ouzHv6A7Shj7RWIp+x9iA50Knf/tvZsz2Cxzc+MUu2KbT37yCiwdr3VTcj36yDM9i8WximWz4P2DQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aOYwDHeoTwFBbLeM8Hc8dMyT2YDdAGdHFv2ithKVb7M=;
 b=Utl6xzljmC5NQRhRDjCQCcuh/oHqnPviWZXbQbIT8QgIy6ZqeW9iOM+jiFOIw7SjNLNvCvyW99Dl0d6Fjbpf7kA7Dgm/2OF+rlrgEU+T4ZL9QFGkAH5KZnGqUYv4+ayKE6Cd/Ybt3vav2yhjtPo5awM7o0xejueBykpWUIl79Nw=
Authentication-Results: infradead.org; dkim=none (message not signed)
 header.d=none;infradead.org; dmarc=none action=none header.from=oracle.com;
Message-ID: <48fb48fa-c65d-8e38-dabb-cf9be21365ca@oracle.com>
Date: Mon, 8 Nov 2021 12:20:26 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
Content-Language: en-US
To: Peter Zijlstra <peterz@infradead.org>
Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
        tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
        x86@kernel.org, hpa@zytor.com, jgross@suse.com
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
 <YYk+D17oIOGKWNtN@hirez.programming.kicks-ass.net>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <YYk+D17oIOGKWNtN@hirez.programming.kicks-ass.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BYAPR02CA0044.namprd02.prod.outlook.com
 (2603:10b6:a03:54::21) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1d0e2fb8-4f73-4dbb-0969-08d9a2dc11f1
X-MS-TrafficTypeDiagnostic: MN2PR10MB3886:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB3886DDE8BC819AA269EE728D8A919@MN2PR10MB3886.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4714;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	cqt7TaJQS2fC0CgfcIdyppleV4K28HAspmG8xD7J6np9dFSsW2+IBTXokCofboWf9rEn0glT10J6JwjfSiARDwCbN/WhdRk0Hc4p8vqsxl2yzUtIcXc4QlY9XF5g+H56RlRizh0//WD94gQohCXddJ64KOVZofCD/HtYdtvKq8XHY5OzXkLsopRS1uGBqYQSOxFP5J0ng4s9gRWmjVtkab9uQ/hMbccNDRAzAa11rCkCAyXkAfdsNKQCKBgY0/yNSDTpH5PaKyoEupORqFvQ54gS11rH5qEdohGQ+uH+IJs6GlTZ5yBBEkZJq0ZWZEGHBXwM6X7G95NiHLCpMNuCLWi6aFE/WnlXJBqugN2w455QXTZ4/LCsE4IsugbvUxALvmI9BxTFxUxWeAzSOtQfsGWDSy7AltzSzpew4mXIRaKra9YJh7grX2sJyjOmNxvyWcNP9Cuc2IJyi53kLgLiqtHJFQzBY9PJh56oX3G82q+nGrV5F32uNva0rtLO5702TcRN9kfjJKOW9MdA1IATzqo/efLYx3NBw8beSHaMKHZUPDSeDttMZyHWKcBXWRxfL1uzyhBigk2EXDBN6BAB4lh2G3lozHzIMOYyvnuSOuefTf2UFZehiRkmypyiBrz82RIEdEtTwHA9ObjqX7Y2fpYQm2DxX9+x2Kw45fyvdpAMwWyBYygwU45Dy3vixchVpHmsmv1qUD2QdovD6DBWkT1lnHpk/q8CklRLt+sw698ZOtFhlptSiasWF2b6ADOzyP+7c8puLO22XwxjYJJStrUCAT4jExFyNAdJc9edyfvu5//EB8QC2XEAFcMinTmwtTqtvS9Kg0CEELb1oNMkaA==
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(2906002)(966005)(83380400001)(53546011)(86362001)(508600001)(38100700002)(2616005)(8936002)(6666004)(31696002)(956004)(31686004)(44832011)(26005)(66556008)(36756003)(66476007)(8676002)(6486002)(186003)(4326008)(66946007)(5660300002)(16576012)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?eHFZTjlWeFFXaU5VV2JyQkdRWTRJbExFWTViZ2IvQWhkd2RlNFh1d1NkMGl3?=
 =?utf-8?B?dzR6OExIYXQ5TVRPNUxkdTF1Y3loUGlpVHFBZWdldWZCNklUd3NMZm9UNUJK?=
 =?utf-8?B?emVnTTl4QklUSnliRlk2QzJEdTlIckpnZUZhVGJEeWZQUW03d3dQZDloVnFx?=
 =?utf-8?B?UjRJU2NNditXclkxRWpxSWhqQ3Q2dFM4Tmx6NVhLZU1Mcng3ajZIVjBncmxi?=
 =?utf-8?B?dFQzRndZRjdCdDR2djBxQitYVFZVR0VvazBhKzlESzY1d29kRWpJai9vZnJI?=
 =?utf-8?B?Tk9KYWcxWXR2VUFFRUcrTHJDTkk1RVA4eXVhRGJVeXFSaCtGM09QamJuQ0Y3?=
 =?utf-8?B?cjcvV3MxVmdUWTB2Y3JhOWZSU1FXRitlL29DTzhZVFZPc3ZWalF0OFh4a3U1?=
 =?utf-8?B?YUUzL0tpbHMzOGRjOHNSeDJWZjF6LzQxN2JpSEJPK3BqNmdBTHk0S0NIQW9u?=
 =?utf-8?B?Vm5jbU50ZVRCaGtIZk53TkhmdG53dGQyd0Rqb0RMVnBRYWNaM09ia2xhSHow?=
 =?utf-8?B?OWNuRncrNHhUL0FyY3QrYlpZUmsrRlJqc1VDWHNRZ3prd3V6QkxNTDcwRXhz?=
 =?utf-8?B?cFVJQlEwNWhnWmJsQW83bmdTWUpZWFZOTTR6b1doUUFlNGFpMnZrTWUwZGRC?=
 =?utf-8?B?TkNGcWR4cmZ2d2VObDYxblB2dnhQM0ZTWmlFdmllanVtdk95T2RpdlRVTzlz?=
 =?utf-8?B?RVdvTWZVc05iL1VrN1pOeU4xcW9oUnFKR0pzTUZYcmlwV3k1SDdiLy9KMTZQ?=
 =?utf-8?B?bDdjMEN5S2ZRQ1hPY3dRMHJPSUtGZnBQMTB6dHBoMGV6eGxWRGkrdUtpbmRK?=
 =?utf-8?B?N1lKMTBtVHR6SWFlYXB2SCsvU050Z1FPeTFUZ2JrMXFySDdBSzRELzVnOFpk?=
 =?utf-8?B?MVZObjFOUytWcXp2UWpEdm0wOE93VWlzZGhFcDhkeHdhTmhXYzZ6dzRRVDUx?=
 =?utf-8?B?c05BZ0VNS2wyaSt1YWFyQjJoY1g5eHZqU1FkNUxrYkwrN2dDdVVBR1cvcDFD?=
 =?utf-8?B?bnFCTnFnUndSeDg4SFIyN0R1eEZpbG1ZNytNcTFwT1FsWUhpTUFpMHF1VndE?=
 =?utf-8?B?dTNoNk5rNnVkOEZoYXF3eVlFQ0dBbUg4eFFTSkdCMXVqVWZDUEQ4LzYva2VN?=
 =?utf-8?B?c2YrRUwxUUxTdTZkSVVuTFRFNklORFdyOWI5YjI2R2Y3alVaNS81aEVTbXJ3?=
 =?utf-8?B?K0RJRE52aWdJWENMdGRrMmc4TWgrb0ZvWVZlQjNCeXJrTnJRdnVOdTZ4a3NU?=
 =?utf-8?B?MnNBeHR5OTk4Z1NwS3MzWnN5U2RyQVQvMEYzbDU3T0t4L255aGdEUmR3T29G?=
 =?utf-8?B?NjNLeHQ0VTNIWEJldEdOM3dvRUJsQ1RReVMxS3ZqY2l5MTI2S1E2UXByc3Rw?=
 =?utf-8?B?MUJ4SmJLdkJpUDh4T1VzMGFGQTNEVDQvM245U2JVbFhZSFdlNEhrYWNmdVhO?=
 =?utf-8?B?eVBPMkRmQzhRM1NsMW9heUVRRUxGeGRaVXVYTi85SG04eU9SWDVLbnRSSnY0?=
 =?utf-8?B?V1YvbXkzbVVmMm4rNjZuNW5QRzFONHBHeUxrUlJObm5jNWc4SlNVbE01dkR4?=
 =?utf-8?B?Q0NCZExUMDg0TjVNUzQweEhIRFpud1FyaHZTR1I2NnQ2dXJzUjl1ZUIrZFUz?=
 =?utf-8?B?eklnbkkvbEtkUU1QRUxrbkVEODljRFh1VnZTRlV1bEVvTGtZSzFkRTBpUFRF?=
 =?utf-8?B?Z2FjS0J0aE1SQng5MEZGL2xCMDRraFFqb1YzQ0tQSEJOK3hKTFQwRFcwSE1p?=
 =?utf-8?B?ZFdzMDVHdVprdG1zcHVFd1ozWnc3OFA2enhtVnpvOWlZdG1LdEQ2eE9Pd2Vq?=
 =?utf-8?B?Yk1JaWNHKzFDVUhSNCtTcnQ0VGpTLzlCNDB0YUpPN2dINWx3V1NNNHRwdThp?=
 =?utf-8?B?d1h5c0RGYzVyZTY2c3h4dklteUZDY0gyUTRFRkU5V1Q1UGtCRkRVOXhZbjlD?=
 =?utf-8?B?dERIOUJ5KzFacWtoZkFSUmNQL3FSMFdaRjdqTXlFYTA2UGhtVCtHZHl2b2lu?=
 =?utf-8?B?dlc3VDJESmdUZ2dxd1NtM0JiU2xyNlIvNTdrc3ozUjZmVmZhczZIVkZLRnFV?=
 =?utf-8?B?ckd2UnEzVUo3em5XMXRuRHdMMGtyUEM3L1VPSWZZVzB2b29TT2Yva2hPTjlt?=
 =?utf-8?B?dytwZFRBSk1ERkZKc2xZZDJFTTdOazRjTFNRNkhlNXAybEZEZ3pFM0Jab3pv?=
 =?utf-8?B?Vk1vMFhvN2NXVWVKZ3FzNmlKMkM3YUFTQ2NWK2hMb3h4TmhtWDJqd0pIaFRH?=
 =?utf-8?B?NC8xcExvN0ZMOS9BMlNxQ1BzYUVnPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1d0e2fb8-4f73-4dbb-0969-08d9a2dc11f1
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 17:20:32.8105
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OcdYYg6zioBhcAH7k7cMf7nPCSAStzCLb9q3SPR9NFPsF2d2LnUzXfKgvZaUrKpMSoVA5N4Jg1KOT6KT9xZ2GV/LNsClQxyBEVZBhk03cbI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3886
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10162 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0 mlxscore=0
 bulkscore=0 phishscore=0 suspectscore=0 adultscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111080104
X-Proofpoint-GUID: WwJ6HiBW37uzhIH0qk1HR2IZoU-95bAv
X-Proofpoint-ORIG-GUID: WwJ6HiBW37uzhIH0qk1HR2IZoU-95bAv


On 11/8/21 10:11 AM, Peter Zijlstra wrote:
> On Tue, Nov 02, 2021 at 07:36:36PM -0400, Boris Ostrovsky wrote:
>> Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
>> introduced cpu_l2c_shared_map mask which is expected to be initialized
>> by smp_op.smp_prepare_cpus(). That commit only updated
>> native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().
>> As result Xen PV guests crash in set_cpu_sibling_map().
>>
>> While the new mask can be allocated in xen_pv_smp_prepare_cpus() one can
>> see that both versions of smp_prepare_cpus ops share a number of common
>> operations that can be factored out. So do that instead.
>>
>> Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Thanks! I'll go stick that somewhere /urgent (I've had another report on
> that here:
>
>    https://lkml.kernel.org/r/20211105074139.GE174703@worktop.programming.kicks-ass.net
> )


Thank you. (I don't see this message btw)


>
> But looking at those functions; there seems to be more spurious
> differences. For example, the whole sched_topology thing.


I did look at that and thought this should be benign given that Xen PV is not really topology-aware. I didn't see anything that would be a cause for concern but perhaps you can point me to things I missed.


>
> Should we re-architect this whole smp_prepare_cpus() thing instead? Have
> a common function and a guest function? HyperV for instance seems to
> call native_smp_prepare_cpus() and then does something extra (as does
> xen_hvm).


Something like


void smp_prepare_cpus()

{

     // Code that this patch moved to smp_prepare_cpus_common();


    smp_ops.smp_prepare_cpus();  // Including baremetal

}


?


XenHVM and hyperV will need to call native smp_op too. Not sure this will be prettier than what it is now?



-boris


-boris



From xen-devel-bounces@lists.xenproject.org Mon Nov 08 17:37:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 17:37:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223547.386311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk8Zh-00058J-Pb; Mon, 08 Nov 2021 17:36:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223547.386311; Mon, 08 Nov 2021 17:36:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk8Zh-00058C-Mg; Mon, 08 Nov 2021 17:36:53 +0000
Received: by outflank-mailman (input) for mailman id 223547;
 Mon, 08 Nov 2021 17:36:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk8Zg-00054z-Jw; Mon, 08 Nov 2021 17:36:52 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk8Zg-0001GG-Bd; Mon, 08 Nov 2021 17:36:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mk8Zf-0002zC-Tm; Mon, 08 Nov 2021 17:36:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mk8Zf-0006KG-TC; Mon, 08 Nov 2021 17:36:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Oi58ofN+6Ur5FQuQvMWe7pNGoi6tcIV2KhgGZX5ddVc=; b=4zLn1sIFSef0wzS/IeslBzVto8
	x+QR2ujn9HZSez0P8WXjkH4Wkkal7XlxZseSQumdAw0TJPFBWLhgEAZonAHA+fclFd5n5Upm+p+yW
	MzeV/eXzN0d7DQmgrgvmuFViJJUBSVnGbWAGAsp2s+eJSQYjgD8p1a0LfvGoZbsNXDTk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166079-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166079: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=6b75d88fa81b122cce37ebf17428a849ccd3d0f1
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Nov 2021 17:36:51 +0000

flight 166079 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166079/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                6b75d88fa81b122cce37ebf17428a849ccd3d0f1
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    6 days
Failing since        165992  2021-11-02 05:40:21 Z    6 days    9 attempts
Testing same since   166079  2021-11-08 01:42:24 Z    0 days    1 attempts

------------------------------------------------------------
1883 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 205270 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 18:03:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 18:03:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223558.386324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk8z4-0008W7-4Y; Mon, 08 Nov 2021 18:03:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223558.386324; Mon, 08 Nov 2021 18:03:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk8z4-0008W0-1e; Mon, 08 Nov 2021 18:03:06 +0000
Received: by outflank-mailman (input) for mailman id 223558;
 Mon, 08 Nov 2021 18:03:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk8z2-0008Vl-U3
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 18:03:04 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk8z2-0001mp-TD
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 18:03:04 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mk8z2-0004co-SR
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 18:03:04 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mk8yz-00027Y-HR; Mon, 08 Nov 2021 18:03:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Subject:CC:To:Date:Message-ID:
	Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=ZgoUNxO6SXw+QorgimiABpb/NXnEG9d6Z6dWbsU5fZ8=; b=aYJFU3f2BDQxCAlFDwStsEfdmd
	IKgrXcVMbzCEqiHycZ8Ji9yQ2AIBKbFe0KoO6UoROiqgizsHlE3R7HHuMYuHaUOcTdIPvKfpMpiHG
	rxOi10raFQguBMvvQWQSK/ao00excfd9fHoHbRTLXyfTIJQHOqE5LIAMDHX4ncTFhorE=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24969.26196.495605.132931@mariner.uk.xensource.com>
Date: Mon, 8 Nov 2021 18:03:00 +0000
To: xen-announce@lists.xenproject.org
CC: xen-devel@lists.xenproject.org
Subject: Xen 4.16 RC2

Xen 4.16 RC2 is now available.

It is available from git:
  git clone https://xenbits.xenproject.org/git-http/xen.git -b 4.16.0-rc2

For your convenience a tarball is available:
  https://downloads.xenproject.org/release/xen/4.16.0-rc2/xen-4.16.0-rc2.tar.gz
  https://downloads.xenproject.org/release/xen/4.16.0-rc2/xen-4.16.0-rc2.tar.gz.sig

Please send bug reports and test reports to
xen-devel@lists.xenproject.org.  When sending bug reports, please CC
relevant maintainers and me (iwj@xenproject.org).

Ian.
Xen 4.16 Release Manager


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 18:31:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 18:31:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223595.386350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk9Pl-0004Kd-JM; Mon, 08 Nov 2021 18:30:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223595.386350; Mon, 08 Nov 2021 18:30:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mk9Pl-0004KW-Ez; Mon, 08 Nov 2021 18:30:41 +0000
Received: by outflank-mailman (input) for mailman id 223595;
 Mon, 08 Nov 2021 18:30:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mk9Pk-0004KQ-Bw
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 18:30:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mk9Pj-0002Ce-43; Mon, 08 Nov 2021 18:30:39 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.146.147]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mk9Pi-0006E7-UU; Mon, 08 Nov 2021 18:30:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=2C3BBODaoH4xTM6CDXePzZjWAHtA4h9erVLABm/wjYY=; b=RHRZq1k0wOMV+gYu2eJ/z+whmf
	+6muQqaqdONWLJ+8tLOWFSk0ByjWCmtuV0BvrLIqzVSeBSk0JDVlnwWoXqyoTidGcAj2xHH/RaW2W
	PmDXn/b3eM6XHcfc4mBHA1sx4CwbN/JjbIVd/jJe0TVxNkFTVDOBWkLOffLuYFV7+Y8I=;
Message-ID: <17547d29-8e15-96f6-2418-5f7ca1c3237d@xen.org>
Date: Mon, 8 Nov 2021 18:30:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [RFC 1/1] xen/arm: set iommu property for IOMMU-protected devices
To: Roman Skakun <rm.skakun@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Cc: Roman Skakun <roman_skakun@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrii Anisov <andrii_anisov@epam.com>
References: <cover.1633106362.git.roman_skakun@epam.com>
 <5b101e4e85668bbb18da83044520b0350344f408.1633106362.git.roman_skakun@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <5b101e4e85668bbb18da83044520b0350344f408.1633106362.git.roman_skakun@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Roman,

On 04/10/2021 10:54, Roman Skakun wrote:
> From: Roman Skakun <roman_skakun@epam.com>
> 
> Xen is not exposing any IOMMU properties to Dom0.
> So Dom0 assumes that all it's devices are not protected by IOMMU.
> 
> To make Dom0 aware of IOMMU-protected devices, we need to mark
> them somehow. With this approach Dom0 Linux kernel will be able
> to selectively disable swiotlb-xen fops for them which will remove
> unnecessary buffer bounces.
> 
> This patch adds mechanism to describe IOMMU-protected devices by
> adding `xen,behind-iommu` property to relevant device nodes in
> Dom0 device tree.

A few years ago, I attempted to disable the swiotlb when Xen configured 
the IOMMU for the device (see [1]). Did you have a chance to go through 
the thread? In particular, I think Ian Campbell suggestion about 
creating an IOMMU binding is quite interesting.

Stefano, what do you think?

Cheers,

[1] 
https://patchwork.ozlabs.org/project/devicetree-bindings/patch/1392913301-25524-1-git-send-email-julien.grall@linaro.org/

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 21:00:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 21:00:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223604.386360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkBjv-0001Ny-3e; Mon, 08 Nov 2021 20:59:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223604.386360; Mon, 08 Nov 2021 20:59:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkBjv-0001Nr-0r; Mon, 08 Nov 2021 20:59:39 +0000
Received: by outflank-mailman (input) for mailman id 223604;
 Mon, 08 Nov 2021 20:59:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ivRQ=P3=netrider.rowland.org=stern+618c59fc@srs-se1.protection.inumbo.net>)
 id 1mkBjt-0001Nk-JF
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 20:59:37 +0000
Received: from netrider.rowland.org (netrider.rowland.org [192.131.102.5])
 by se1-gles-flk1.inumbo.com (Halon) with SMTP
 id c4776647-40d6-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 21:59:35 +0100 (CET)
Received: (qmail 1679175 invoked by uid 1000); 8 Nov 2021 15:59:26 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4776647-40d6-11ec-a9d2-d9f7a1cc8784
Date: Mon, 8 Nov 2021 15:59:26 -0500
From: Alan Stern <stern@rowland.harvard.edu>
To: Borislav Petkov <bp@alien8.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
  LKML <linux-kernel@vger.kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
  Arnd Bergmann <arnd@arndb.de>, Ayush Sawal <ayush.sawal@chelsio.com>,
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
  Rohit Maheshwari <rohitm@chelsio.com>, Steven Rostedt <rostedt@goodmis.org>,
  Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
  ALSA Development Mailing List <alsa-devel@alsa-project.org>,
  bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
  Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
  intel-gvt-dev@lists.freedesktop.org, alpha <linux-alpha@vger.kernel.org>,
  Linux ARM <linux-arm-kernel@lists.infradead.org>,
  linux-clk <linux-clk@vger.kernel.org>,
  Linux Crypto Mailing List <linux-crypto@vger.kernel.org>,
  linux-edac@vger.kernel.org,
  Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
  linux-hyperv@vger.kernel.org, linux-iio@vger.kernel.org,
  linux-leds <linux-leds@vger.kernel.org>,
  "open list:BROADCOM NVRAM DRIVER" <linux-mips@vger.kernel.org>,
  Parisc List <linux-parisc@vger.kernel.org>,
  Linux PM list <linux-pm@vger.kernel.org>,
  linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
  "open list:REMOTE PROCESSOR \(REMOTEPROC\) SUBSYSTEM" <linux-remoteproc@vger.kernel.org>,
  Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
  linux-s390 <linux-s390@vger.kernel.org>, scsi <linux-scsi@vger.kernel.org>,
  Linux-sh list <linux-sh@vger.kernel.org>, linux-staging@lists.linux.dev,
  linux-tegra <linux-tegra@vger.kernel.org>,
  linux-um <linux-um@lists.infradead.org>,
  USB list <linux-usb@vger.kernel.org>,
  "open list:TENSILICA XTENSA PORT \(xtensa\)" <linux-xtensa@linux-xtensa.org>,
  netdev <netdev@vger.kernel.org>, openipmi-developer@lists.sourceforge.net,
  rcu@vger.kernel.org, sparclinux <sparclinux@vger.kernel.org>,
  the arch/x86 maintainers <x86@kernel.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 42/42] notifier: Return an error when callback is
 already registered
Message-ID: <20211108205926.GA1678880@rowland.harvard.edu>
References: <20211108101157.15189-1-bp@alien8.de>
 <20211108101157.15189-43-bp@alien8.de>
 <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com>
 <YYkyUEqcsOwQMb1S@zn.tnic>
 <CAMuHMdXiBEQyEXJagSfpH44hxVA2t0sDH7B7YubLGHrb2MJLLA@mail.gmail.com>
 <YYlJQYLiIrhjwOmT@zn.tnic>
 <CAMuHMdXHikGrmUzuq0WG5JRHUUE=5zsaVCTF+e4TiHpM5tc5kA@mail.gmail.com>
 <YYlOmd0AeA8DSluD@zn.tnic>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <YYlOmd0AeA8DSluD@zn.tnic>
User-Agent: Mutt/1.10.1 (2018-07-13)

On Mon, Nov 08, 2021 at 05:21:45PM +0100, Borislav Petkov wrote:
> On Mon, Nov 08, 2021 at 05:12:16PM +0100, Geert Uytterhoeven wrote:
> > Returning void is the other extreme ;-)
> > 
> > There are 3 levels (ignoring BUG_ON()/panic () inside the callee):
> >   1. Return void: no one can check success or failure,
> >   2. Return an error code: up to the caller to decide,
> >   3. Return a __must_check error code: every caller must check.
> > 
> > I'm in favor of 2, as there are several places where it cannot fail.
> 
> Makes sense to me. I'll do that in the next iteration.

Is there really any reason for returning an error code?  For example, is 
it anticipated that at some point in the future these registration calls 
might fail?

Currently, the only reason for failing to register a notifier callback 
is because the callback is already registered.  In a sense this isn't 
even an actual failure -- after the registration returns the callback 
_will_ still be registered.

So if the call can never really fail, why bother with a return code?  
Especially since the caller can't do anything with such a code value.

Given the current state of affairs, I vote in favor of 1 (plus a WARN or 
something similar to generate a stack dump in the callee, since double 
registration really is a bug).

Alan Stern


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 21:08:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 21:08:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223612.386372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkBsC-0002xt-Uf; Mon, 08 Nov 2021 21:08:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223612.386372; Mon, 08 Nov 2021 21:08:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkBsC-0002xm-RT; Mon, 08 Nov 2021 21:08:12 +0000
Received: by outflank-mailman (input) for mailman id 223612;
 Mon, 08 Nov 2021 21:08:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkBsB-0002xc-CR; Mon, 08 Nov 2021 21:08:11 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkBsB-0004qH-4r; Mon, 08 Nov 2021 21:08:11 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkBsA-0006vv-QW; Mon, 08 Nov 2021 21:08:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkBsA-00038F-NG; Mon, 08 Nov 2021 21:08:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QB0KVcjvsswPbP6f3deu8Ok7kcl0NjR+nPGJrrnECR0=; b=6n2khxJr72yClM2H0h7PKSo8k8
	+0ky9/PYEH4ilLiAYjPRHOcXHtri7Uq31BqTXrFT25aEAhIp6yzb4R0hMAAjx4OzPNgw57gOmE2zV
	H5NjhZ8G7wSMs2qPSKn/Q9uvf2gTgEi1OPKOf9jVW63hT8OOzjSQhnBnsPb0V3drIjzA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166085-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166085: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=7379f9e10a3b13ec8bcea756384b2ace8af7064d
X-Osstest-Versions-That:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Nov 2021 21:08:10 +0000

flight 166085 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166085/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  7379f9e10a3b13ec8bcea756384b2ace8af7064d
baseline version:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b

Last test of basis   166055  2021-11-05 16:02:53 Z    3 days
Testing same since   166085  2021-11-08 16:00:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Christian Lindig <christian.lindig@citrix.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9bc9fff04b..7379f9e10a  7379f9e10a3b13ec8bcea756384b2ace8af7064d -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 21:19:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 21:19:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223621.386386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkC2c-0004VF-Va; Mon, 08 Nov 2021 21:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223621.386386; Mon, 08 Nov 2021 21:18:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkC2c-0004V8-SA; Mon, 08 Nov 2021 21:18:58 +0000
Received: by outflank-mailman (input) for mailman id 223621;
 Mon, 08 Nov 2021 21:18:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uasK=P3=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mkC2a-0004Uj-5O
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 21:18:57 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 798e332d-40d9-11ec-a9d2-d9f7a1cc8784;
 Mon, 08 Nov 2021 22:18:53 +0100 (CET)
Received: from zn.tnic (p200300ec2f3311007827e440708b1099.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f33:1100:7827:e440:708b:1099])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id E3BE71EC051F;
 Mon,  8 Nov 2021 22:18:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 798e332d-40d9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1636406333;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=AU7V4fSHGUK4yNvIX3QFWGgL2mpvsQwlJrzk1EYTZE4=;
	b=HI4wHVqdPFUaTmLfTawRP0YuILjCSvy0XvR7UY6GhjpkLZ7Jcpensq3GPz/wKuSVQPh/ah
	JjfisFcmsOLL77YybjTfUcF4SOtfsMptjoCY2iNpL/QAVX8IlmhT4tll2zqUciAF4fFC2q
	GhOxoJIWWV9UKbtfg9ziQ2wDV7UERPU=
Date: Mon, 8 Nov 2021 22:18:47 +0100
From: Borislav Petkov <bp@alien8.de>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>, Arnd Bergmann <arnd@arndb.de>,
	Ayush Sawal <ayush.sawal@chelsio.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rohit Maheshwari <rohitm@chelsio.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
	ALSA Development Mailing List <alsa-devel@alsa-project.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	intel-gvt-dev@lists.freedesktop.org,
	alpha <linux-alpha@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	Linux Crypto Mailing List <linux-crypto@vger.kernel.org>,
	linux-edac@vger.kernel.org,
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	linux-hyperv@vger.kernel.org, linux-iio@vger.kernel.org,
	linux-leds <linux-leds@vger.kernel.org>,
	"open list:BROADCOM NVRAM DRIVER" <linux-mips@vger.kernel.org>,
	Parisc List <linux-parisc@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	"open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM" <linux-remoteproc@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	linux-s390 <linux-s390@vger.kernel.org>,
	scsi <linux-scsi@vger.kernel.org>,
	Linux-sh list <linux-sh@vger.kernel.org>,
	linux-staging@lists.linux.dev,
	linux-tegra <linux-tegra@vger.kernel.org>,
	linux-um <linux-um@lists.infradead.org>,
	USB list <linux-usb@vger.kernel.org>,
	"open list:TENSILICA XTENSA PORT (xtensa)" <linux-xtensa@linux-xtensa.org>,
	netdev <netdev@vger.kernel.org>,
	openipmi-developer@lists.sourceforge.net, rcu@vger.kernel.org,
	sparclinux <sparclinux@vger.kernel.org>,
	the arch/x86 maintainers <x86@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v0 42/42] notifier: Return an error when callback is
 already registered
Message-ID: <YYmUN69Y7z9xITas@zn.tnic>
References: <20211108101157.15189-1-bp@alien8.de>
 <20211108101157.15189-43-bp@alien8.de>
 <CAMuHMdWH+txiSP_d7Jc4f_bU8Lf9iWpT4E3o5o7BJr-YdA6-VA@mail.gmail.com>
 <YYkyUEqcsOwQMb1S@zn.tnic>
 <CAMuHMdXiBEQyEXJagSfpH44hxVA2t0sDH7B7YubLGHrb2MJLLA@mail.gmail.com>
 <YYlJQYLiIrhjwOmT@zn.tnic>
 <CAMuHMdXHikGrmUzuq0WG5JRHUUE=5zsaVCTF+e4TiHpM5tc5kA@mail.gmail.com>
 <YYlOmd0AeA8DSluD@zn.tnic>
 <20211108205926.GA1678880@rowland.harvard.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20211108205926.GA1678880@rowland.harvard.edu>

On Mon, Nov 08, 2021 at 03:59:26PM -0500, Alan Stern wrote:
> Is there really any reason for returning an error code?  For example, is 
> it anticipated that at some point in the future these registration calls 
> might fail?
> 
> Currently, the only reason for failing...

Right, I believe with not making it return void we're leaving the door
open for some, *hypothetical* future return values if we decide we need
to return them too, at some point.

Yes, I can't think of another fact to state besides that the callback
was already registered or return success but who knows what we wanna do
in the future...

And so if we change them all to void now, I think it'll be a lot more
churn to switch back to returning a non-void value and having the
callers who choose to handle that value, do so again.

So, long story short, keeping the retval - albeit not very useful right
now - is probably easier.

I hope I'm making some sense here.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 22:14:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 22:14:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223628.386397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkCtd-00027k-TK; Mon, 08 Nov 2021 22:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223628.386397; Mon, 08 Nov 2021 22:13:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkCtd-00027d-QH; Mon, 08 Nov 2021 22:13:45 +0000
Received: by outflank-mailman (input) for mailman id 223628;
 Mon, 08 Nov 2021 22:13:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkCtb-00027T-QN; Mon, 08 Nov 2021 22:13:43 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkCtb-0005tE-Gq; Mon, 08 Nov 2021 22:13:43 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkCtb-00010Q-2t; Mon, 08 Nov 2021 22:13:43 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkCtb-0004km-2R; Mon, 08 Nov 2021 22:13:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=USpEFI6U9ZCVG7CrpmGtSGEOA4GITwKddUukI6AOAx0=; b=Myq7qngNtvQh2a5pmO6SBPLZ9h
	dCKqaTOjlVL+5Q8BHnB6dMcNb9t1qnqmc3RUNwD7Nofr4zrPD6C3fOfuXq0K7lTh8Vm0OBCR/edPi
	T1UpycU3+DfsoRO5ozH69O02V4aqeZQ0UUK5nHZdaRfWHI7ufgFHSjtCI3j9XdY023lg=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166084-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166084: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=260f9210d2ce892c5e162a45b0e5ec0036bedc79
X-Osstest-Versions-That:
    qemuu=63ed851de474b1e2458cb9b4ba6e02a88f72c25c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Nov 2021 22:13:43 +0000

flight 166084 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166084/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166075
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166075
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166075
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166075
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166075
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166075
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166075
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166075
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                260f9210d2ce892c5e162a45b0e5ec0036bedc79
baseline version:
 qemuu                63ed851de474b1e2458cb9b4ba6e02a88f72c25c

Last test of basis   166075  2021-11-07 03:41:37 Z    1 days
Testing same since   166084  2021-11-08 15:38:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  John Snow <jsnow@redhat.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   63ed851de4..260f9210d2  260f9210d2ce892c5e162a45b0e5ec0036bedc79 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 22:45:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 22:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223638.386411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkDOG-0005f6-GT; Mon, 08 Nov 2021 22:45:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223638.386411; Mon, 08 Nov 2021 22:45:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkDOG-0005ez-BV; Mon, 08 Nov 2021 22:45:24 +0000
Received: by outflank-mailman (input) for mailman id 223638;
 Mon, 08 Nov 2021 22:45:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P1ns=P3=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkDOF-0005et-5d
 for xen-devel@lists.xenproject.org; Mon, 08 Nov 2021 22:45:23 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8cadea44-40e5-11ec-9787-a32c541c8605;
 Mon, 08 Nov 2021 23:45:20 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id A32AF6134F;
 Mon,  8 Nov 2021 22:45:18 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8cadea44-40e5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636411518;
	bh=Sc4Vwh2z9w7lDhAvPas9sVQajxYW+o46Zs2uLyTkWhw=;
	h=Date:From:To:cc:Subject:From;
	b=gBQsoQJ/9soxvB44qvg1zk/JRzgSZ5CuhHsmLBc9NhxGtIt03YdGFkW2LqBrYeZDz
	 GgsrhMAFgaRtx0nSNGJrMY1c9ez2J3/kfS6f+W7HhxY4JQqEVhzmUwWORl+PfyucmU
	 RyshnVcqPxf6bR4luogM9AOQUz7ZfDpPSzSwxh/LEFS4duVMpXNB5maIz8+C02edVy
	 Cwx6snOiNvL6I2HOXW4F2qGrq4SyxCKvjMKy3S30PJM4eKT+yg4BLkYkbHIFW2SL4N
	 S4Jdxy0WA044jgLazf3gZTo0yhaRc/a5bSkQt27YX/3vGe+0NBjEQxULZANYvfdQF+
	 YWowoVz3c1K4w==
Date: Mon, 8 Nov 2021 14:45:07 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: oleksandr_tyshchenko@epam.com
cc: sstabellini@kernel.org, julien@xen.org, iwj@xenproject.org, 
    Bertrand.Marquis@arm.com, xen-devel@lists.xenproject.org
Subject: ASSERT in rangeset_remove_range
Message-ID: <alpine.DEB.2.22.394.2111081430090.3317@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

Hi Oleksandr, Julien,

I discovered a bug caused by the recent changes to introduce extended
regions in make_hypervisor_node (more logs appended):


(XEN) d1 BANK[0] 0x00000040000000-0x0000007e800000 (1000MB)
(XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)
(XEN) DEBUG find_unallocated_memory 994 s=40000000 e=7e7fffff
(XEN) DEBUG find_unallocated_memory 994 s=200000000 e=1ffffffff
(XEN) Assertion 's <= e' failed at rangeset.c:189


When a bank of memory is zero in size, then rangeset_remove_range is
called with end < start, triggering an ASSERT in rangeset_remove_range.

One solution is to avoid creating 0 size banks. The following change
does that:


diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 49b4eb2b13..3efe542d0f 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -459,9 +459,12 @@ static void __init allocate_memory(struct domain *d, struct kernel_info *kinfo)
         goto fail;
 
     bank_size = MIN(GUEST_RAM1_SIZE, kinfo->unassigned_mem);
-    if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
+    if ( bank_size > 0 )
+    {
+        if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
                                bank_size) )
-        goto fail;
+            goto fail;
+    }
 
     if ( kinfo->unassigned_mem )
         goto fail;



We have a couple of other options too:

- remove the ASSERT in rangeset_remove_range
There is an argument that we should simply return error
fromrangeset_remove_range, rather than a full assert.

- add a if (end > start) check before calling rangeset_remove_range
We could check that end > start before calling rangeset_remove_range at
all the call sites in domain_build.c. There are 5 call sites at the
moment.

Any other ideas or suggestions?

Cheers,

Stefano



(XEN) DEBUG find_memory_holes 1126 s=ff990000 e=ff990fff
(XEN) DEBUG find_memory_holes 1126 s=ff990000 e=ff990fff
(XEN) DEBUG find_memory_holes 1126 s=ff990000 e=ff990fff
(XEN) DEBUG find_memory_holes 1126 s=ff990000 e=ff990fff
(XEN) DEBUG find_memory_holes 1126 s=f9010000 e=f901ffff
(XEN) DEBUG find_memory_holes 1126 s=f9020000 e=f903ffff
(XEN) DEBUG find_memory_holes 1126 s=f9040000 e=f905ffff
(XEN) DEBUG find_memory_holes 1126 s=f9060000 e=f907ffff
(XEN) DEBUG find_memory_holes 1126 s=fd800000 e=fd81ffff
(XEN) DEBUG find_memory_holes 1126 s=ff060000 e=ff060fff
(XEN) DEBUG find_memory_holes 1126 s=ff070000 e=ff070fff
(XEN) DEBUG find_memory_holes 1126 s=fd6e0000 e=fd6e8fff
(XEN) DEBUG find_memory_holes 1126 s=fd6e9000 e=fd6edfff
(XEN) DEBUG find_memory_holes 1126 s=fd500000 e=fd500fff
(XEN) DEBUG find_memory_holes 1126 s=fd510000 e=fd510fff
(XEN) DEBUG find_memory_holes 1126 s=fd520000 e=fd520fff
(XEN) DEBUG find_memory_holes 1126 s=fd530000 e=fd530fff
(XEN) DEBUG find_memory_holes 1126 s=fd540000 e=fd540fff
(XEN) DEBUG find_memory_holes 1126 s=fd550000 e=fd550fff
(XEN) DEBUG find_memory_holes 1126 s=fd560000 e=fd560fff
(XEN) DEBUG find_memory_holes 1126 s=fd570000 e=fd570fff
(XEN) DEBUG find_memory_holes 1126 s=fd4b0000 e=fd4bffff
(XEN) DEBUG find_memory_holes 1126 s=ffa80000 e=ffa80fff
(XEN) DEBUG find_memory_holes 1126 s=ffa90000 e=ffa90fff
(XEN) DEBUG find_memory_holes 1126 s=ffaa0000 e=ffaa0fff
(XEN) DEBUG find_memory_holes 1126 s=ffab0000 e=ffab0fff
(XEN) DEBUG find_memory_holes 1126 s=ffac0000 e=ffac0fff
(XEN) DEBUG find_memory_holes 1126 s=ffad0000 e=ffad0fff
(XEN) DEBUG find_memory_holes 1126 s=ffae0000 e=ffae0fff
(XEN) DEBUG find_memory_holes 1126 s=ffaf0000 e=ffaf0fff
(XEN) DEBUG find_memory_holes 1126 s=fd070000 e=fd09ffff
(XEN) DEBUG find_memory_holes 1126 s=ff100000 e=ff100fff
(XEN) DEBUG find_memory_holes 1126 s=ff0b0000 e=ff0b0fff
(XEN) DEBUG find_memory_holes 1126 s=ff0c0000 e=ff0c0fff
(XEN) DEBUG find_memory_holes 1126 s=ff0d0000 e=ff0d0fff
(XEN) DEBUG find_memory_holes 1126 s=ff0e0000 e=ff0e0fff
(XEN) DEBUG find_memory_holes 1126 s=ff0a0000 e=ff0a0fff
(XEN) DEBUG find_memory_holes 1126 s=ff020000 e=ff020fff
(XEN) DEBUG find_memory_holes 1126 s=ff030000 e=ff030fff
(XEN) DEBUG find_memory_holes 1126 s=ff960000 e=ff960fff
(XEN) DEBUG find_memory_holes 1126 s=ffa00000 e=ffa0ffff
(XEN) DEBUG find_memory_holes 1126 s=fd0b0000 e=fd0bffff
(XEN) DEBUG find_memory_holes 1126 s=fd490000 e=fd49ffff
(XEN) DEBUG find_memory_holes 1126 s=ffa10000 e=ffa1ffff
(XEN) DEBUG find_memory_holes 1126 s=fd0e0000 e=fd0e0fff
(XEN) DEBUG find_memory_holes 1126 s=fd480000 e=fd480fff
(XEN) DEBUG find_memory_holes 1126 s=8000000000 e=8000ffffff
(XEN) DEBUG handle_pci_range 1056 s=e0000000 e=efffffff
(XEN) DEBUG handle_pci_range 1056 s=600000000 e=7ffffffff
(XEN) DEBUG find_memory_holes 1126 s=ff0f0000 e=ff0f0fff
(XEN) DEBUG find_memory_holes 1126 s=c0000000 e=c7ffffff
(XEN) DEBUG find_memory_holes 1126 s=ffa60000 e=ffa60fff
(XEN) DEBUG find_memory_holes 1126 s=fd400000 e=fd43ffff
(XEN) DEBUG find_memory_holes 1126 s=fd3d0000 e=fd3d0fff
(XEN) DEBUG find_memory_holes 1126 s=fd0c0000 e=fd0c1fff
(XEN) DEBUG find_memory_holes 1126 s=ff160000 e=ff160fff
(XEN) DEBUG find_memory_holes 1126 s=ff170000 e=ff170fff
(XEN) DEBUG find_memory_holes 1126 s=ff040000 e=ff040fff
(XEN) DEBUG find_memory_holes 1126 s=ff050000 e=ff050fff
(XEN) DEBUG find_memory_holes 1126 s=ff110000 e=ff110fff
(XEN) DEBUG find_memory_holes 1126 s=ff120000 e=ff120fff
(XEN) DEBUG find_memory_holes 1126 s=ff130000 e=ff130fff
(XEN) DEBUG find_memory_holes 1126 s=ff140000 e=ff140fff
(XEN) DEBUG find_memory_holes 1126 s=ff000000 e=ff000fff
(XEN) DEBUG find_memory_holes 1126 s=ff010000 e=ff010fff
(XEN) DEBUG find_memory_holes 1126 s=ff9d0000 e=ff9d0fff
(XEN) DEBUG find_memory_holes 1126 s=fe200000 e=fe23ffff
(XEN) DEBUG find_memory_holes 1126 s=ff9e0000 e=ff9e0fff
(XEN) DEBUG find_memory_holes 1126 s=fe300000 e=fe33ffff
(XEN) DEBUG find_memory_holes 1126 s=fd4d0000 e=fd4d0fff
(XEN) DEBUG find_memory_holes 1126 s=ff150000 e=ff150fff
(XEN) DEBUG find_memory_holes 1126 s=ffa50000 e=ffa50fff
(XEN) DEBUG find_memory_holes 1126 s=ffa50000 e=ffa50fff
(XEN) DEBUG find_memory_holes 1126 s=ffa50000 e=ffa50fff
(XEN) DEBUG find_memory_holes 1126 s=fd4c0000 e=fd4c0fff
(XEN) DEBUG find_memory_holes 1126 s=fd4a0000 e=fd4a0fff
(XEN) DEBUG find_memory_holes 1126 s=fd4aa000 e=fd4aafff
(XEN) DEBUG find_memory_holes 1126 s=fd4ab000 e=fd4abfff
(XEN) DEBUG find_memory_holes 1126 s=fd4ac000 e=fd4acfff
(XEN) DEBUG find_memory_holes 1126 s=0 e=7fefffff
(XEN) DEBUG find_memory_holes 1126 s=800000000 e=87fffffff
(XEN) Extended region 0: 0x80000000->0xc0000000
(XEN) Extended region 1: 0xc8000000->0xe0000000
(XEN) Extended region 2: 0xf0000000->0xf9000000
(XEN) Extended region 3: 0xffc00000->0x600000000
(XEN) Extended region 4: 0x880000000->0x8000000000
(XEN) Extended region 5: 0x8001000000->0x10000000000
(XEN) Loading zImage from 0000000000e00000 to 0000000020000000-0000000021367a00
(XEN) Loading d0 initrd from 0000000002200000 to 0x0000000028200000-0x00000000293f936d
(XEN) Loading d0 DTB to 0x0000000028000000-0x0000000028009604
(XEN) *** LOADING DOMU cpus=1 memory=fa000KB ***
(XEN) Loading d1 kernel from boot module @ 0000000003400000
(XEN) Loading ramdisk from boot module @ 0000000004800000
(XEN) Allocating mappings totalling 1000MB for d1:
(XEN) d1 BANK[0] 0x00000040000000-0x0000007e800000 (1000MB)
(XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)
(XEN) DEBUG find_unallocated_memory 994 s=40000000 e=7e7fffff
(XEN) DEBUG find_unallocated_memory 994 s=200000000 e=1ffffffff
(XEN) Assertion 's <= e' failed at rangeset.c:189
(XEN) ----[ Xen-4.16-rc  arm64  debug=y  Not tainted ]----
(XEN) CPU:    0
(XEN) PC:     0000000000220e6c rangeset_remove_range+0xbc/0x2bc
(XEN) LR:     00000000002cd508
(XEN) SP:     0000000000306f60
(XEN) CPSR:   0000000020000249 MODE:64-bit EL2h (Hypervisor, handler)
(XEN)      X0: 00008000fbf61e70  X1: 0000000200000000  X2: 00000001ffffffff
(XEN)      X3: 0000000000000005  X4: 0000000000000000  X5: 0000000000000028
(XEN)      X6: 0000000000000080  X7: fefefefefefeff09  X8: 7f7f7f7f7f7f7f7f
(XEN)      X9: 717164616f726051 X10: 7f7f7f7f7f7f7f7f X11: 0101010101010101
(XEN)     X12: 0000000000000008 X13: 0000000000000009 X14: 0000000000306cb8
(XEN)     X15: 0000000000000020 X16: 000000000028c5a8 X17: 0000000000000000
(XEN)     X18: 0180000000000000 X19: 00000001ffffffff X20: 0000000000000001
(XEN)     X21: 0000000200000000 X22: 0000000200000000 X23: 0000000000000002
(XEN)     X24: 0000000000000002 X25: 00000000003070e0 X26: 00000000002d9e68
(XEN)     X27: 00000000002d8d18 X28: 00008000fbf40000  FP: 0000000000306f60
(XEN) 
(XEN)   VTCR_EL2: 0000000080023558
(XEN)  VTTBR_EL2: 0000000000000000
(XEN) 
(XEN)  SCTLR_EL2: 0000000030cd183d
(XEN)    HCR_EL2: 0000000000000038
(XEN)  TTBR0_EL2: 0000000004b45000
(XEN) 
(XEN)    ESR_EL2: 00000000f2000001
(XEN)  HPFAR_EL2: 0000000000000000
(XEN)    FAR_EL2: 0000000000000000
(XEN) 
(XEN) Xen stack trace from sp=0000000000306f60:
(XEN)    0000000000307040 00000000002cf2a8 00008000fbf5a000 0000000000000000
(XEN)    00008000fbf40000 00000000003070a8 0000000000307de4 00000000002aa078
(XEN)    0000000880000000 0000000000000002 00000000002e8d08 00000000000fff00
(XEN)    00008000fbf61e70 00008000fbf5a000 00008000fbf61220 0000000000000000
(XEN)    0000000000307040 00000000002cf288 00008000fbf5a000 0000000000000000
(XEN)    00008000fbf40000 00000000003070a8 0000000000307de4 65782c32766e6578
(XEN)    000000000030006e 2d6e65782c6e6578 6e65780036312e34 000000006e65782c
(XEN)    0000000000307d80 00000000002d0440 00008000fbfd95a0 0000000000307dc8
(XEN)    00000000002d99b8 00000000002da338 0000000000307de4 00000000002aa078
(XEN)    000000000000000f 0000000000307110 0000000000000001 00c2010000000002
(XEN)    00000000003070c8 0000000000000000 6d933f29040f0000 0000002200000000
(XEN)    0010000000000000 0020000300000000 0020000000000000 00000000000fa000
(XEN)    0000000000000001 00008000fbf5a000 00008000fbf40000 0000000000000000
(XEN)    0000000000000002 0000000040000000 000000003e800000 0000000000000000
(XEN)    0000000200000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) Xen call trace:
(XEN)    [<0000000000220e6c>] rangeset_remove_range+0xbc/0x2bc (PC)
(XEN)    [<00000000002cd508>] domain_build.c#make_hypervisor_node+0x258/0x7f4 (LR)
(XEN)    [<00000000002cf2a8>] domain_build.c#construct_domU+0x9cc/0xa8c
(XEN)    [<00000000002d0440>] create_domUs+0xe8/0x224
(XEN)    [<00000000002d4988>] start_xen+0xafc/0xbf0
(XEN)    [<00000000002001a0>] arm64/head.o#primary_switched+0xc/0x1c
(XEN) 
(XEN) 
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Assertion 's <= e' failed at rangeset.c:189
(XEN) ****************************************


From xen-devel-bounces@lists.xenproject.org Mon Nov 08 22:52:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Nov 2021 22:52:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223645.386422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkDUi-0007AO-6r; Mon, 08 Nov 2021 22:52:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223645.386422; Mon, 08 Nov 2021 22:52:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkDUi-0007AH-3M; Mon, 08 Nov 2021 22:52:04 +0000
Received: by outflank-mailman (input) for mailman id 223645;
 Mon, 08 Nov 2021 22:52:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkDUg-0007A7-Uh; Mon, 08 Nov 2021 22:52:02 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkDUg-0006Vn-Lp; Mon, 08 Nov 2021 22:52:02 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkDUg-00027W-6W; Mon, 08 Nov 2021 22:52:02 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkDUg-0008M4-5z; Mon, 08 Nov 2021 22:52:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=I8kwN4AArCDiFyjIBPt+7FRbOO6Sd5o2+zJwKKSJQAQ=; b=34Qy5EjoG0zI4NGWzm/vWTLWUR
	aLsn8hU1UlhJXINPOO1O/c8o7MP0RgJe0rCZjrZIeFU6HPysVFzr1WdDIFabyXI7V8FR2ujqDE9NK
	WlpKz0gOGGuEMpl9ZbH9gIFZ9R4BSLPgTQeAA9D/5FQa3C1aiAcFQnRsrMUHI+Bqk9HQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166087-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166087: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=fd42dcb1fc416b85bbbee1d546abfb7ac758b5c1
X-Osstest-Versions-That:
    ovmf=b5d4a35d90771ec86ce9cf28727f471ee589fb78
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Nov 2021 22:52:02 +0000

flight 166087 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166087/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 fd42dcb1fc416b85bbbee1d546abfb7ac758b5c1
baseline version:
 ovmf                 b5d4a35d90771ec86ce9cf28727f471ee589fb78

Last test of basis   166083  2021-11-08 09:12:22 Z    0 days
Testing same since   166087  2021-11-08 18:10:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael D Kinney <michael.d.kinney@intel.com>
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   b5d4a35d90..fd42dcb1fc  fd42dcb1fc416b85bbbee1d546abfb7ac758b5c1 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 00:38:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 00:38:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223653.386436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkF8r-00011u-R5; Tue, 09 Nov 2021 00:37:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223653.386436; Tue, 09 Nov 2021 00:37:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkF8r-00011n-Ng; Tue, 09 Nov 2021 00:37:37 +0000
Received: by outflank-mailman (input) for mailman id 223653;
 Tue, 09 Nov 2021 00:37:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i2Q5=P4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkF8q-00011h-0U
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 00:37:36 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 39335a9f-40f5-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 01:37:32 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 7B3636113A;
 Tue,  9 Nov 2021 00:37:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39335a9f-40f5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636418250;
	bh=tWZ4bsRxKTZAH6oWmZ/3ebLLK8ylId5Rvd8YYcRvROo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kkEA5EOrj0HAQcWOx0+oSC6t8b1QE48vki6R8ljYPfKRpELJtB8rM17HuDa5YgVYT
	 7cBTd4SNKYyBMqQd2Kovu5l6ju5FKe+58DsMiZR4Apye/9M/QrPB4bMQScTk5Y2FLU
	 NAbmMqpGAUCwB4+NtKAzYZN6s+B/4vHsdDVNGkEsqAzX0Ca9gNgZ59VD8WanlfGUDG
	 3ND26dzl2KGemrn5/ZZ38zbZYehsxlivieDP1sy7iwohlIMdm5dBl/sRUaExJ/F6wa
	 QBmUM1i2K1tIzfYq64habQZ/OJayxlZ8f9V2ObesaHpYjrKQzBNenlPBbgDMI83eNf
	 CnK1KxXbPjnNA==
Date: Mon, 8 Nov 2021 16:37:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Penny Zheng <Penny.Zheng@arm.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Wei Chen <Wei.Chen@arm.com>, Bertrand.Marquis@arm.com, 
    Volodymyr_Babchuk@epam.com, iwj@xenproject.org
Subject: Re: static-mem preventing dom0 from booting
In-Reply-To: <7e94c7a2-7b20-2fb7-ee0a-ca24f6044fcc@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111081407290.3317@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2111041829300.284830@ubuntu-linux-20-04-desktop> <DU2PR08MB73256624607E7624CAAD38E5F78E9@DU2PR08MB7325.eurprd08.prod.outlook.com> <DU2PR08MB7325A7A5658B1EB7C6EB4DECF78E9@DU2PR08MB7325.eurprd08.prod.outlook.com>
 <alpine.DEB.2.22.394.2111050836580.284830@ubuntu-linux-20-04-desktop> <alpine.DEB.2.22.394.2111051554000.284830@ubuntu-linux-20-04-desktop> <alpine.DEB.2.22.394.2111051604530.284830@ubuntu-linux-20-04-desktop>
 <7e94c7a2-7b20-2fb7-ee0a-ca24f6044fcc@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 6 Nov 2021, Julien Grall wrote:
> Hi Stefano,
> 
> On 05/11/2021 23:05, Stefano Stabellini wrote:
> > On Fri, 5 Nov 2021, Stefano Stabellini wrote:
> > > On Fri, 5 Nov 2021, Stefano Stabellini wrote:
> > > > The scenario is extremely simple; you can see the full device tree
> > > > configuration in the attachment to my previous email.
> > > > 
> > > > - dom0
> > > > - dom0less domU with static-mem
> > > > 
> > > > That's it! So basically it is just a normal dom0 + dom0less domU
> > > > configuration, which already works fine, where I added static-mem to the
> > > > domU and suddenly dom0 (not the domU!) stopped working.
> > > 
> > > I did some more debugging today and I found the problem. The issue is
> > > that static-mem regions are added to the list of reserved_mem. However,
> > > reserved_mem is automatically assigned to Dom0 by default at the bottom
> > > of xen/arch/arm/domain_build.c:handle_node, see the second call to
> > > make_memory_node. Really, we shouldn't give to dom0 static-mem ranges
> > > meant for other domUs. E.g. the following change is sufficient to solve
> > > the problem:
> > > 
> > > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > > index 88a79247cb..dc609c4f0e 100644
> > > --- a/xen/arch/arm/domain_build.c
> > > +++ b/xen/arch/arm/domain_build.c
> > > @@ -891,6 +891,9 @@ static int __init make_memory_node(const struct domain
> > > *d,
> > >           u64 start = mem->bank[i].start;
> > >           u64 size = mem->bank[i].size;
> > >   +        if ( mem->bank[i].xen_domain )
> > > +            continue;
> > > +
> > >           dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
> > >                      i, start, start + size);
> > >   However, maybe a better fix would be to purge reserved_mem of any
> > > xen_domain items before calling make_memory_node.
> 
> I would rather not modify boot_info.reserved_mem because it may be used
> afterwards. I think your approach is the right one.
> 
> Alternatively, we would rework make_memory_node() to create one node per range
> (rather than a node with multiple ranges). This would move the loop outside of
> make_memory_node(). The advantage is we have more flexibily how on to filter
> ranges (in the future we may need to pass some reserved ranges to a domain).

Thanks for the quick feedback, I'll send a proper patch. I'll follow the
first approach for now.


> > > 
> > > I found one additional issue regarding is_domain_direct_mapped which
> > > doesn't return true for static-mem domains. I think we need to add a
> > > direct_map bool to arch_domain and set it for both dom0 and static-mem
> > > dom0less domUs, so that we can change the implementation of
> > > is_domain_direct_mapped to:
> > > 
> > > #define is_domain_direct_mapped(d) (d->arch.direct_map)
> 
> In Xen 4.16, static-mem domains are not direct mapped (i.e MFN == GFN).
> Instead, the static memory is used to allocate memory for the domain at the
> default regions in the guest memory layout.

I see, I forgot that the memory is not already mapped 1:1. 


> If you want to direct map static-mem domains, then you would have to apply [1]
> from Penny which is still under review.
> 
> Cheers,
> 
> [1] <20211015030945.2082898-1-penny.zheng@arm.com>



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 00:48:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 00:48:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223659.386446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkFJB-0002Yg-Pd; Tue, 09 Nov 2021 00:48:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223659.386446; Tue, 09 Nov 2021 00:48:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkFJB-0002YZ-Me; Tue, 09 Nov 2021 00:48:17 +0000
Received: by outflank-mailman (input) for mailman id 223659;
 Tue, 09 Nov 2021 00:48:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i2Q5=P4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkFJB-0002YT-3x
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 00:48:17 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7cc76d4-40f6-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 01:48:15 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 5A7E761167;
 Tue,  9 Nov 2021 00:48:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7cc76d4-40f6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636418892;
	bh=TrtiRf/jbn1eppoSVzKa2iW99vW6lQ7QCO5L2IMDUHE=;
	h=From:To:Cc:Subject:Date:From;
	b=Q8alWq82akG41dbfi0CUWKW5S8CjKptuR0IVdlWZlCaZZBba2Y16Clsq3vx3CanTx
	 OKvElavpF+tDG6dekANq/Hy8OGb6O/e8MXbdYfrwLfS4UTH/HISl9+R7vi4H6tz0cx
	 DaoHgI6hV89U+EYH+LIQnuFBV1XlvH7J9TuFYNVyKKflKYa17SP8pYhFFaRFFbhRLw
	 FUOp5UuhInjEkzAL86KrPQ9y/AJWfqt5OeWzlhOhl2lsquzs18bYjEdaHDZJzZrK5s
	 UFOXKF2Bb8/0muoCHwqXdjJt941MJzpFNXZdfnFWkzaOug/RArcl6CkqNpyjdvN2Tx
	 ojo+eICCCbQFA==
From: Stefano Stabellini <sstabellini@kernel.org>
To: julien@xen.org
Cc: Penny.Zheng@arm.com,
	Bertrand.Marquis@arm.com,
	Wei.Chen@arm.com,
	sstabellini@kernel.org,
	iwj@xenproject.org,
	Volodymyr_Babchuk@epam.com,
	xen-devel@lists.xenproject.org,
	Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: [PATCH for-4.16] xen/arm: don't assign domU static-mem to dom0 as reserved-memory
Date: Mon,  8 Nov 2021 16:48:08 -0800
Message-Id: <20211109004808.115906-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

DomUs static-mem ranges are added to the reserved_mem array for
accounting, but they shouldn't be assigned to dom0 as the other regular
reserved-memory ranges in device tree.

In make_memory_nodes, fix the error by skipping banks with xen_domain
set to true in the reserved-memory array. Also make sure to use the
first valid (!xen_domain) start address for the memory node name.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---

This patch should be considered for 4.16 as it fixes an incorrect
behavior.

The risk is low for two reasons:
- the change is simple
- make_memory_node is easily tested because it gets called at every
  boot, e.g. gitlab-ci and OSSTest exercise this path

I tested this patch successfully with and without xen,static-mem.

---
 xen/arch/arm/domain_build.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 1fbafeaea8..56d3ff9d08 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -874,11 +874,17 @@ static int __init make_memory_node(const struct domain *d,
     if ( mem->nr_banks == 0 )
         return -ENOENT;
 
+    for ( i = 0; i < mem->nr_banks && mem->bank[i].xen_domain; i++ )
+        ;
+    /* No reserved-memory ranges to expose to Dom0 */
+    if ( i == mem->nr_banks )
+        return 0;
+
     dt_dprintk("Create memory node (reg size %d, nr cells %d)\n",
                reg_size, nr_cells);
 
     /* ePAPR 3.4 */
-    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[0].start);
+    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[i].start);
     res = fdt_begin_node(fdt, buf);
     if ( res )
         return res;
@@ -888,11 +894,14 @@ static int __init make_memory_node(const struct domain *d,
         return res;
 
     cells = &reg[0];
-    for ( i = 0 ; i < mem->nr_banks; i++ )
+    for ( ; i < mem->nr_banks; i++ )
     {
         u64 start = mem->bank[i].start;
         u64 size = mem->bank[i].size;
 
+        if ( mem->bank[i].xen_domain )
+            continue;
+
         dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
                    i, start, start + size);
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 02:12:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 02:12:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223669.386457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkGcK-0005Ra-2X; Tue, 09 Nov 2021 02:12:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223669.386457; Tue, 09 Nov 2021 02:12:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkGcJ-0005RT-VI; Tue, 09 Nov 2021 02:12:07 +0000
Received: by outflank-mailman (input) for mailman id 223669;
 Tue, 09 Nov 2021 02:12:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i2Q5=P4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkGcI-0005RN-7a
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 02:12:06 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 661e3a88-4102-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 03:11:59 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 4005161152;
 Tue,  9 Nov 2021 02:11:49 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 661e3a88-4102-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636423909;
	bh=vAd6l7i5cYc1ffNYOwSpfTYDRHavyWQVcGZ5RFkL77w=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=C1eKalWaCX4fHcanRHJIsjQSuF72y3dokvbtUiulR2xrlw5EutAdLCYGxmH/Ma5iv
	 TXfsAcdQmWVBv13PWidxUwB7A+Hnf1WFmwYkLHxt8oavMRHXHj24RWDdlroFHYPjwj
	 K66omTKlP/YpE43fowZ9w9yCm9AKWF+Q2wFKfF6Pl/3XuslIeh0qI5rSDsM7+FKNQP
	 lwq1d4wXOwA20vEYZYtjbqrYJvMXIY3h24s4kb9DSJrQIH2BWz8UV6AduVo0PoesGq
	 JXUDSlBeJ3oRrT5Jfh8SwcDMVWZnLC0L/q01m/7aKUiqXu/nBJkCgUpym6D0teelN/
	 an+ffpX9RuN7Q==
Date: Mon, 8 Nov 2021 18:11:47 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com, 
    Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
References: <20211104141206.25153-1-luca.fancellu@arm.com> <81685961-501e-7a41-6f6f-bc4491645264@suse.com> <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop> <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop> <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com> <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop> <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop> <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1476451275-1636423908=:3317"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1476451275-1636423908=:3317
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Mon, 8 Nov 2021, Jan Beulich wrote:
> On 05.11.2021 16:33, Stefano Stabellini wrote:
> > On Fri, 5 Nov 2021, Jan Beulich wrote:
> >> On 04.11.2021 22:50, Stefano Stabellini wrote:
> >>> On Thu, 4 Nov 2021, Luca Fancellu wrote:
> >>>>> On 4 Nov 2021, at 21:35, Stefano Stabellini <sstabellini@kernel.org> wrote:
> >>>>> On Thu, 4 Nov 2021, Luca Fancellu wrote:
> >>>>>>> On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.org> wrote:
> >>>>>>> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE dir_handle,
> >>>>>>> * dom0 and domU guests to be loaded.
> >>>>>>> * Returns the number of multiboot modules found or a negative number for error.
> >>>>>>> */
> >>>>>>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
> >>>>>>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
> >>>>>>> {
> >>>>>>>    int chosen, node, addr_len, size_len;
> >>>>>>>    unsigned int i = 0, modules_found = 0;
> >>>>>>> +    EFI_FILE_HANDLE dir_handle;
> >>>>>>> +    CHAR16 *file_name;
> >>>>>>> +
> >>>>>>> +    dir_handle = get_parent_handle(loaded_image, &file_name);
> >>>>>>
> >>>>>> We can’t use get_parent_handle here because we will end up with the same problem,
> >>>>>> we would need to use the filesystem if and only if we need to use it, 
> >>>>>
> >>>>> Understood, but it would work the same way as this version of the patch:
> >>>>> if we end up calling read_file with dir_handle == NULL, then read_file
> >>>>> would do:
> >>>>>
> >>>>>  blexit(L"Error: No access to the filesystem");
> >>>>>
> >>>>> If we don't end up calling read_file, then everything works even if
> >>>>> dir_handle == NULL. Right?
> >>>>
> >>>> Oh yes sorry my bad Stefano! Having this version of the patch, it will work.
> >>>>
> >>>> My understanding was instead that the Jan suggestion is to revert the place
> >>>> of call of get_parent_handle (like in your code diff), but also to remove the
> >>>> changes to get_parent_handle and read_file.
> >>>> I guess Jan will specify his preference, but if he meant the last one, then
> >>>> the only way I see...
> >>>
> >>> I think we should keep the changes to get_parent_handle and read_file,
> >>> otherwise it will make it awkward, and those changes are good in their
> >>> own right anyway.
> >>
> >> As a maintainer of this code I'm afraid I have to say that I disagree.
> >> These changes were actually part of the reason why I went and looked
> >> how things could (and imo ought to be) done differently.
> > 
> > You know this code and EFI booting better than me -- aren't you
> > concerned about Xen calling get_parent_handle / dir_handle->Close so
> > many times (by allocate_module_file)?
> 
> I'm not overly concerned there; my primary concern is for it to get called
> without need in the first place.

Exactly my thinking! Except that now it gets called 10x times with
dom0less boot :-(


> > My main concern is performance and resource utilization. With v3 of the
> > patch get_parent_handle will get called for every module to be loaded.
> > With dom0less, it could easily get called 10 times or more. Taking a
> > look at get_parent_handle, the Xen side doesn't seem small and I have
> > no idea how the EDK2 side looks. I am just worried that it would
> > actually have an impact on boot times (also depending on the bootloader
> > implementation).
> 
> The biggest part of the function deals with determining the "residual" of
> the file name. That part looks to be of no interest at all to
> allocate_module_file() (whether that's actually correct I can't tell). I
> don't see why this couldn't be made conditional (e.g. by passing in NULL
> for "leaf").

I understand the idea of passing NULL instead of "leaf", but I tried
having a look and I can't tell what we would be able to skip in
get_parent_handle.

Should we have a global variable to keep the dir_handle open during
dom0less module loading?
--8323329-1476451275-1636423908=:3317--


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 05:19:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 05:19:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223675.386469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkJXZ-0005kA-W3; Tue, 09 Nov 2021 05:19:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223675.386469; Tue, 09 Nov 2021 05:19:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkJXZ-0005k3-Sm; Tue, 09 Nov 2021 05:19:25 +0000
Received: by outflank-mailman (input) for mailman id 223675;
 Tue, 09 Nov 2021 04:57:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FnEj=P4=samsung.com=inki.dae@srs-se1.protection.inumbo.net>)
 id 1mkJCk-0003i1-HR
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 04:57:55 +0000
Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 949575d7-4119-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 05:57:50 +0100 (CET)
Received: from epcas1p2.samsung.com (unknown [182.195.41.46])
 by mailout4.samsung.com (KnoxPortal) with ESMTP id
 20211109045745epoutp0432d46666e8d0e3e6dd2169c1db6247be~1x_5Bbyhj3080830808epoutp04-
 for <xen-devel@lists.xenproject.org>; Tue,  9 Nov 2021 04:57:45 +0000 (GMT)
Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by
 epcas1p2.samsung.com (KnoxPortal) with ESMTP id
 20211109045745epcas1p241828c9a74fb4b6120bfff7ca0719c92~1x_4el3W60690306903epcas1p2G;
 Tue,  9 Nov 2021 04:57:45 +0000 (GMT)
Received: from epsmges1p1.samsung.com (unknown [182.195.38.235]) by
 epsnrtp3.localdomain (Postfix) with ESMTP id 4HpG1r6GVvz4x9R0; Tue,  9 Nov
 2021 04:57:36 +0000 (GMT)
Received: from epcas1p3.samsung.com ( [182.195.41.47]) by
 epsmges1p1.samsung.com (Symantec Messaging Gateway) with SMTP id
 23.2B.64085.ABFF9816; Tue,  9 Nov 2021 13:57:30 +0900 (KST)
Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by
 epcas1p4.samsung.com (KnoxPortal) with ESMTPA id
 20211109045730epcas1p4a5295673a5aad41d1b0c8b5ea68636dd~1x_rFtcz30646206462epcas1p4R;
 Tue,  9 Nov 2021 04:57:30 +0000 (GMT)
Received: from epsmgms1p2.samsung.com (unknown [182.195.42.42]) by
 epsmtrp1.samsung.com (KnoxPortal) with ESMTP id
 20211109045730epsmtrp1213b89479be836f60004e73dd7eb7b8a~1x_rE1PHb1318413184epsmtrp1u;
 Tue,  9 Nov 2021 04:57:30 +0000 (GMT)
Received: from epsmtip2.samsung.com ( [182.195.34.31]) by
 epsmgms1p2.samsung.com (Symantec Messaging Gateway) with SMTP id
 5C.BF.08738.ABFF9816; Tue,  9 Nov 2021 13:57:30 +0900 (KST)
Received: from [10.113.221.211] (unknown [10.113.221.211]) by
 epsmtip2.samsung.com (KnoxPortal) with ESMTPA id
 20211109045730epsmtip2305d4d7a3be6744286980fba874b0a67~1x_qwWiAs1204612046epsmtip2U;
 Tue,  9 Nov 2021 04:57:30 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 949575d7-4119-11ec-a9d2-d9f7a1cc8784
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20211109045745epoutp0432d46666e8d0e3e6dd2169c1db6247be~1x_5Bbyhj3080830808epoutp04-
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
	s=mail20170921; t=1636433865;
	bh=ANh3cRKm36WmEPwoAPLZp935d6WceP07H6l2ech2/Hc=;
	h=Subject:To:Cc:From:Date:In-Reply-To:References:From;
	b=IecfXSdX64/SEd8VWbb/8WXCnIaYGeI/HbYBp4f6aTXstSu97tSkWZkGBUEMaFgFC
	 yAFxhFtazNBA7PL92QiQyP1TB0LuLosgyMpYC40WsxwraCl6NlPUgM4L+vvmj3MMR9
	 IH6UwhNITaTb2UmLkETWto7Nuw3csdrCLSruWv4E=
X-AuditID: b6c32a35-9adff7000000fa55-c9-6189ffbaeeb6
Subject: Re: [PATCH 1/3] drm/exynox: Implement mmap as GEM object function
To: Thomas Zimmermann <tzimmermann@suse.de>, daniel@ffwll.ch,
	airlied@linux.ie, maarten.lankhorst@linux.intel.com, mripard@kernel.org,
	jy0922.shim@samsung.com, sw0312.kim@samsung.com, kyungmin.park@samsung.com,
	krzysztof.kozlowski@canonical.com, oleksandr_andrushchenko@epam.com
Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, xen-devel@lists.xenproject.org
From: Inki Dae <inki.dae@samsung.com>
Message-ID: <f88911b4-b5a7-abf1-4294-8e593b049448@samsung.com>
Date: Tue, 9 Nov 2021 14:08:25 +0900
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
	Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <20211108102846.309-2-tzimmermann@suse.de>
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA01Tf1AUdRyd7+7eskei2ynyDQru1mwGjB8nHOwhh4yZs2DjgExZOIUbrNzF
	/er2aFSkMIoBFOKEAi9EmI6ow/EEDwTMmmAAGQihYcQcERJqgkQOEG3GceyOxeK/9z7z3vd9
	3/cHgUrGcX9CozdzJj2rpXBvrK07ODz0ytNiNmIhgS4d6kfop20WlB5dnsfpv+6MYHTz3D8I
	/cun97zolqkbIrr6+o8IXb/QitGFxd+KaFfTvHtWMYPTznsWEf3IWYEkrGes+aU4c7uhAzBX
	H9ZhTIu9GGcuP5wUMbX9KczEyT6EuWT7hOl2jWJMmdMOmEsDucxSS2DyurTsODXHZnImKafP
	MGRq9Fkqam9q+mvpiugIeahcScdQUj2r41TU7jeSQ/dotO4ilPQjVpvjHiWzPE+Fx8eZDDlm
	Tqo28GYVxRkztUaFMYxndXyOPitMz5lj5RER2xVu4aFs9VzfNG4cVh4puDaB5IOq8BIgJiAZ
	BSseLIhKgDchIdsBHG2+ighkEcCljkFcIEsAtleWoc8sjXeLV1WdADYNtaySeQAbT9e4VQSx
	kUyCdYvPeeabyBoETtmeAA9ByTIAf+5exjxL4eRWaPluAvdgHzIeOi9WrmCMfBleKRlCPNiX
	fAc+6e8UCZrnYf+Z6RWvmIyB9jnbih4l/eCt6XOIgINgQevXqCcMki4C3u2qRYR974bLpd8A
	AW+Es31OLwH7w5kvCr0EQwGAluoBRCBFAI5PjWGCKhL+1FCBeLqhZDB0dK6enwx2PD4LhOT1
	8P7yKZFHAkkfWFQoESQU7B25uZoL4bDNgguYgc03z6PlQGZd0826po91TR/r/8F1ALODzZyR
	12VxvNwo/+/CMwy6FrDyzkMU7cAy5wrrAggBugAkUGqTz52eIlbik8kePcaZDOmmHC3HdwGF
	+7QtqL9vhsH9UfTmdHmUMiIqentkFC2PllN+PkuBH7ISMos1c9kcZ+RMz3wIIfbPR/K9q05V
	9spEDZN9O4sOSvZc/O1WuE23v/f3A6mJYztiljc4J9+jt73oCC6MZpPGbUpkMQ858bH2cn39
	Z7INSpmGUxCNuQF/Hzx+9M05ac9g/dIP5bHDryRc+FW1GQbMgrRcu/hLv/DW761f7X2rad5x
	Yv+f7xaXtw0ZxCFiWcpZ1+dBSTvyetTKsl1bHah+y8AHfacr+AMXQtGTqfuuM2l5kZr5xNqa
	bVsKz7lUs2kvjUTFByeeCXk7rCrF1XHYrts5wxy69rrsyDrNLvHgH/dL21BD+lhAucM4zDqw
	B8czlIE3jBmvliy84Jsp5eCx2MfnqzlV0O1R8b448pHzffKwmcJ4NSsPQU08+y8YGzrVcAQA
	AA==
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrJIsWRmVeSWpSXmKPExsWy7bCSvO6u/52JBkePKFr0njvJZPF/20Rm
	iytf37NZvLh3kcVi49sfTBZnm96wW2x6fI3VYsb5fUwWCz9uZbFo61zGavFh9Xug2OSXbBZb
	3kxktfi+ZTKTA5/HrIZeNo87S3cyeuz9toDFY9OqTjaP7d8esHrMOxnocb/7OJPH5iX1Hoc/
	XGHx6NuyitFj8+lqj8+b5AJ4orhsUlJzMstSi/TtErgy3h5/wlZwwbKi+cR9pgbG6fpdjJwc
	EgImEssfdTKB2EICOxglvr5V62LkAIpLSGzZygFhCkscPlzcxcgFVPGWUeJ2z0UmkLiwgJfE
	gk/cIHERgTlMEj8nH2ADcZgF+hgl7nQeZoLo2M4osefUFVaQBWwCqhITV9xnA7F5BewktmyY
	AmazCKhI7O46B3aEqECkRNOJrVA1ghInZz5hAbE5BcwlVr1dAhZnFlCX+DPvEjOELS5x68l8
	JghbXqJ562zmCYxCs5C0z0LSMgtJyywkLQsYWVYxSqYWFOem5xYbFhjlpZbrFSfmFpfmpesl
	5+duYgTHrpbWDsY9qz7oHWJk4mA8xCjBwawkwnvvaEeiEG9KYmVValF+fFFpTmrxIUZpDhYl
	cd4LXSfjhQTSE0tSs1NTC1KLYLJMHJxSDUwp0tJ1z7V4blzgKf9+a/ePxxt/1WbeedhyluFC
	WFkJs3v6xpNSL638pzEr/JqTlXpLOYblb+SvA7mztHW/5h0/d3tO7p8OnrtZ6w5Js+ywrpx8
	brtzZVScssWl3Xwi1avfLi9nzLow/93x8w+PxM8S6f1T9drZZKXQBpGrtrHXeH1L/v9ckLGp
	Yb/mpenaMgW1/gXeEpM+vqnZFqI2s6bXKsUr+RRHWpqt3+ypSz7/3Nz+0O/SRIebRo7nT1y/
	nPdY7ZFZNVd39sRF9aJz8+f3TGprW2lZ+Px0tPmpKrMZtjUdSufnCHJW6m6W3mnIqcXod3lV
	5tUZfxzTzP2cnfNtRfRt9mRFF+46XOP7Q1aJpTgj0VCLuag4EQCAp9CVTAMAAA==
X-CMS-MailID: 20211109045730epcas1p4a5295673a5aad41d1b0c8b5ea68636dd
X-Msg-Generator: CA
Content-Type: text/plain; charset="utf-8"
X-Sendblock-Type: SVC_REQ_APPROVE
CMS-TYPE: 101P
DLP-Filter: Pass
X-CFilter-Loop: Reflected
X-CMS-RootMailID: 20211108102856epcas1p3c75e195fee7701b637f1c872ca0c7f93
References: <20211108102846.309-1-tzimmermann@suse.de>
	<CGME20211108102856epcas1p3c75e195fee7701b637f1c872ca0c7f93@epcas1p3.samsung.com>
	<20211108102846.309-2-tzimmermann@suse.de>

Hi,

Really sorry for late. I saw this patch in my mailbox just before. Seems I missed it due to a typo, exynox.
I will review and apply this patch ASAP.

Thanks,
Inki Dae

21. 11. 8. 오후 7:28에 Thomas Zimmermann 이(가) 쓴 글:
> Moving the driver-specific mmap code into a GEM object function allows
> for using DRM helpers for various mmap callbacks.
> 
> The respective exynos functions are being removed. The file_operations
> structure exynos_drm_driver_fops is now being created by the helper macro
> DEFINE_DRM_GEM_FOPS().
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_drv.c   | 13 ++-----
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 20 ++---------
>  drivers/gpu/drm/exynos/exynos_drm_gem.c   | 43 +++++------------------
>  drivers/gpu/drm/exynos/exynos_drm_gem.h   |  5 ---
>  4 files changed, 13 insertions(+), 68 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index d8f1cf4d6b69..9743b6b17447 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -102,16 +102,7 @@ static const struct drm_ioctl_desc exynos_ioctls[] = {
>  			DRM_RENDER_ALLOW),
>  };
>  
> -static const struct file_operations exynos_drm_driver_fops = {
> -	.owner		= THIS_MODULE,
> -	.open		= drm_open,
> -	.mmap		= exynos_drm_gem_mmap,
> -	.poll		= drm_poll,
> -	.read		= drm_read,
> -	.unlocked_ioctl	= drm_ioctl,
> -	.compat_ioctl = drm_compat_ioctl,
> -	.release	= drm_release,
> -};
> +DEFINE_DRM_GEM_FOPS(exynos_drm_driver_fops);
>  
>  static const struct drm_driver exynos_drm_driver = {
>  	.driver_features	= DRIVER_MODESET | DRIVER_GEM
> @@ -124,7 +115,7 @@ static const struct drm_driver exynos_drm_driver = {
>  	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
>  	.gem_prime_import	= exynos_drm_gem_prime_import,
>  	.gem_prime_import_sg_table	= exynos_drm_gem_prime_import_sg_table,
> -	.gem_prime_mmap		= exynos_drm_gem_prime_mmap,
> +	.gem_prime_mmap		= drm_gem_prime_mmap,
>  	.ioctls			= exynos_ioctls,
>  	.num_ioctls		= ARRAY_SIZE(exynos_ioctls),
>  	.fops			= &exynos_drm_driver_fops,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
> index 5147f5929be7..02c97b9ca926 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
> @@ -15,6 +15,7 @@
>  #include <drm/drm_crtc.h>
>  #include <drm/drm_fb_helper.h>
>  #include <drm/drm_fourcc.h>
> +#include <drm/drm_prime.h>
>  #include <drm/drm_probe_helper.h>
>  #include <drm/exynos_drm.h>
>  
> @@ -39,25 +40,8 @@ static int exynos_drm_fb_mmap(struct fb_info *info,
>  	struct drm_fb_helper *helper = info->par;
>  	struct exynos_drm_fbdev *exynos_fbd = to_exynos_fbdev(helper);
>  	struct exynos_drm_gem *exynos_gem = exynos_fbd->exynos_gem;
> -	unsigned long vm_size;
> -	int ret;
> -
> -	vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
> -
> -	vm_size = vma->vm_end - vma->vm_start;
> -
> -	if (vm_size > exynos_gem->size)
> -		return -EINVAL;
>  
> -	ret = dma_mmap_attrs(to_dma_dev(helper->dev), vma, exynos_gem->cookie,
> -			     exynos_gem->dma_addr, exynos_gem->size,
> -			     exynos_gem->dma_attrs);
> -	if (ret < 0) {
> -		DRM_DEV_ERROR(to_dma_dev(helper->dev), "failed to mmap.\n");
> -		return ret;
> -	}
> -
> -	return 0;
> +	return drm_gem_prime_mmap(&exynos_gem->base, vma);
>  }
>  
>  static const struct fb_ops exynos_drm_fb_ops = {
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> index 4396224227d1..c4b63902ee7a 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> @@ -17,6 +17,8 @@
>  #include "exynos_drm_drv.h"
>  #include "exynos_drm_gem.h"
>  
> +static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
> +
>  static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool kvmap)
>  {
>  	struct drm_device *dev = exynos_gem->base.dev;
> @@ -135,6 +137,7 @@ static const struct vm_operations_struct exynos_drm_gem_vm_ops = {
>  static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = {
>  	.free = exynos_drm_gem_free_object,
>  	.get_sg_table = exynos_drm_gem_prime_get_sg_table,
> +	.mmap = exynos_drm_gem_mmap,
>  	.vm_ops = &exynos_drm_gem_vm_ops,
>  };
>  
> @@ -354,12 +357,16 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
>  	return 0;
>  }
>  
> -static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj,
> -				   struct vm_area_struct *vma)
> +static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
>  {
>  	struct exynos_drm_gem *exynos_gem = to_exynos_gem(obj);
>  	int ret;
>  
> +	if (obj->import_attach)
> +		return dma_buf_mmap(obj->dma_buf, vma, 0);
> +
> +	vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
> +
>  	DRM_DEV_DEBUG_KMS(to_dma_dev(obj->dev), "flags = 0x%x\n",
>  			  exynos_gem->flags);
>  
> @@ -385,26 +392,6 @@ static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj,
>  	return ret;
>  }
>  
> -int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
> -{
> -	struct drm_gem_object *obj;
> -	int ret;
> -
> -	/* set vm_area_struct. */
> -	ret = drm_gem_mmap(filp, vma);
> -	if (ret < 0) {
> -		DRM_ERROR("failed to mmap.\n");
> -		return ret;
> -	}
> -
> -	obj = vma->vm_private_data;
> -
> -	if (obj->import_attach)
> -		return dma_buf_mmap(obj->dma_buf, vma, 0);
> -
> -	return exynos_drm_gem_mmap_obj(obj, vma);
> -}
> -
>  /* low-level interface prime helpers */
>  struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev,
>  					    struct dma_buf *dma_buf)
> @@ -466,15 +453,3 @@ exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
>  	exynos_gem->sgt = sgt;
>  	return &exynos_gem->base;
>  }
> -
> -int exynos_drm_gem_prime_mmap(struct drm_gem_object *obj,
> -			      struct vm_area_struct *vma)
> -{
> -	int ret;
> -
> -	ret = drm_gem_mmap_obj(obj, obj->size, vma);
> -	if (ret < 0)
> -		return ret;
> -
> -	return exynos_drm_gem_mmap_obj(obj, vma);
> -}
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exynos/exynos_drm_gem.h
> index a23272fb96fb..79d7e1a87419 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.h
> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h
> @@ -96,9 +96,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
>  			       struct drm_device *dev,
>  			       struct drm_mode_create_dumb *args);
>  
> -/* set vm_flags and we can change the vm attribute to other one at here. */
> -int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma);
> -
>  /* low-level interface prime helpers */
>  struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev,
>  					    struct dma_buf *dma_buf);
> @@ -107,7 +104,5 @@ struct drm_gem_object *
>  exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
>  				     struct dma_buf_attachment *attach,
>  				     struct sg_table *sgt);
> -int exynos_drm_gem_prime_mmap(struct drm_gem_object *obj,
> -			      struct vm_area_struct *vma);
>  
>  #endif
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 06:14:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 06:14:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223681.386480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkKP2-0002yc-4T; Tue, 09 Nov 2021 06:14:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223681.386480; Tue, 09 Nov 2021 06:14:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkKP2-0002yV-1I; Tue, 09 Nov 2021 06:14:40 +0000
Received: by outflank-mailman (input) for mailman id 223681;
 Tue, 09 Nov 2021 06:14:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkKP0-0002yK-7u; Tue, 09 Nov 2021 06:14:38 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkKP0-0008Pk-03; Tue, 09 Nov 2021 06:14:38 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkKOz-0007Qn-LX; Tue, 09 Nov 2021 06:14:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkKOz-0005KJ-Ks; Tue, 09 Nov 2021 06:14:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hlZRwiHFlf6h8DjE1+uZ2ChRI2TdL+uobEGtwhBE8rI=; b=1L4XMgw1ERbjJ8zFiaYmlRdnZ+
	/y7O7dpFX+Rgx4X0N8MU8/mCiV5RdinGj0xhND/6h0t6I3QQWIUw8cM3WxGk4sHwHVzCqfRluqKoC
	MrNuCycT15ZoTYINexyrFJ3WzhU8l5DcbvTPODdNa00WYiqr9CFdN50RuF/NErCCbqFc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166086-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166086: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=6b75d88fa81b122cce37ebf17428a849ccd3d0f1
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 06:14:37 +0000

flight 166086 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166086/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-examine      8 reboot                     fail pass in 166079

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                6b75d88fa81b122cce37ebf17428a849ccd3d0f1
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    7 days
Failing since        165992  2021-11-02 05:40:21 Z    7 days   10 attempts
Testing same since   166079  2021-11-08 01:42:24 Z    1 days    2 attempts

------------------------------------------------------------
1883 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 205270 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 06:20:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 06:20:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223689.386494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkKU1-0003hv-U0; Tue, 09 Nov 2021 06:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223689.386494; Tue, 09 Nov 2021 06:19:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkKU1-0003ho-R7; Tue, 09 Nov 2021 06:19:49 +0000
Received: by outflank-mailman (input) for mailman id 223689;
 Tue, 09 Nov 2021 06:19:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkKU1-0003he-BC; Tue, 09 Nov 2021 06:19:49 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkKU1-0008V2-2F; Tue, 09 Nov 2021 06:19:49 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkKU0-0007eP-OK; Tue, 09 Nov 2021 06:19:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkKU0-0006ze-Np; Tue, 09 Nov 2021 06:19:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=RzEg3SKyt7qQ6djPT1vNiwdgrWa9Gm81Y+BgAlfMaWo=; b=PMQmH+CE3qRDktu4Q1IDW5wGnO
	QBkjOX5d9JAySTW0h6jg4ZogyBCalN3gu4MOIwr7P2X77kxQQIrCfGW6fHqgGsZY0dLK2v0xeemJf
	xHsJfg3fnCMzgGVocPzhSjM6cchmNOH5gT9uGznGZpuxBcfqS/wm1uCDQH0nbFISA81k=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166090-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166090: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=8c1b1fe634a233ad7570f2243027d6be8a7849a1
X-Osstest-Versions-That:
    ovmf=fd42dcb1fc416b85bbbee1d546abfb7ac758b5c1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 06:19:48 +0000

flight 166090 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166090/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 8c1b1fe634a233ad7570f2243027d6be8a7849a1
baseline version:
 ovmf                 fd42dcb1fc416b85bbbee1d546abfb7ac758b5c1

Last test of basis   166087  2021-11-08 18:10:05 Z    0 days
Testing same since   166090  2021-11-09 01:43:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Chris Jones <christopher.jones@arm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   fd42dcb1fc..8c1b1fe634  8c1b1fe634a233ad7570f2243027d6be8a7849a1 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223702.386552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9o-0000ye-AI; Tue, 09 Nov 2021 07:03:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223702.386552; Tue, 09 Nov 2021 07:03:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9n-0000v6-Ss; Tue, 09 Nov 2021 07:02:59 +0000
Received: by outflank-mailman (input) for mailman id 223702;
 Tue, 09 Nov 2021 07:02:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9m-00004s-GX
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:02:58 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20617.outbound.protection.outlook.com
 [2a01:111:f400:7eab::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1057e480-412b-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 08:02:57 +0100 (CET)
Received: from DS7PR03CA0312.namprd03.prod.outlook.com (2603:10b6:8:2b::21) by
 PH0PR02MB8764.namprd02.prod.outlook.com (2603:10b6:510:f1::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11; Tue, 9 Nov 2021 07:02:53 +0000
Received: from DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
 (2603:10b6:8:2b:cafe::6d) by DS7PR03CA0312.outlook.office365.com
 (2603:10b6:8:2b::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 07:02:53 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 DM3NAM02FT010.mail.protection.outlook.com (10.13.5.124) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:02:53 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:50 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:45 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9Z-000Ga6-B8; Mon, 08 Nov 2021 23:02:45 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1057e480-412b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Hvhb/GtflsSdlsrap72a9LIKqeI+HQaPHZQE6u7fqQVPFcbVp/OeswCDREjCpK0j2R03wdszzOHUkEawJKA9vlMH+6/u43YglGd4496Eed4rsElW433R2a4dFK5NuDBRA1IPrp8qOA42meNsWLKJxesG4uHNqu9z0ck6VR9pVQxa11uUmy4Yv9IqNoQiD+bSybBR+Z2nDxfRMW4Ekczf4UCiq8yETBCh9YeL0+S0GOoarNNM6KDbRh7t2LvJ2ygGEl+X20h8dGezN4qFLHyKKhXJxPYcb8Xhx2rme5fBrZb/qNaz8GoXLRvI75b5YdRqZ1OAG/CwEFx6/wukriRVtg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ucS9bxaKbvaVkKdEqBhV0clkSHJP3512JULTceCiTlY=;
 b=WdigXF73JSyVQotKNifoDNsKB742B7i/wntqMxIkl2y8HYxJ5D/1nCpxYTIgfwZH5FibPHdmmaTYhPIEunBUYn4weC17tcsBDT8uPvpmAGPgQz10LjF8hIm8FjYITOPXP3jZHJQoeDRWLSLVmRwPdoPy/g6Xc3G95TIVQXinQg1yR7a4zmcYO0ZA4sNqfflwhQ6CdE88iDHjuYY/3Nr7+NeMUOIgsa79btfzggpApMPoWt7ab/eXFQkFZ1SOUapOYU1e5LNyl/qak7sVDsjtKB9jSq4CGHdggyMT/X+ag/oaB/5s2VBzpKoUCg4japg52CiV+6Dk3OIFKkb/J84OPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ucS9bxaKbvaVkKdEqBhV0clkSHJP3512JULTceCiTlY=;
 b=ffaJvF8Ge7QTHN8Jqk3nWzUTec/X9ybR8TO4BbBMiSNTcCZdPBuIHoBk7v96wt2nQkUX4JfPPCwdjlcV9+1osb99Nk8cUCc5Fs4200EXSNG+gvyCWiB0IHdkPHkqhfB1txPIOI/3KOFyPbNS4NBCmDcCBhtD9+cjEcxzQa9mfYs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN][RFC PATCH v2 01/12] device tree: Remove __init from function type
Date: Mon, 8 Nov 2021 23:02:16 -0800
Message-ID: <1636441347-133850-2-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: dcf0a359-5a55-466c-0314-08d9a34ef323
X-MS-TrafficTypeDiagnostic: PH0PR02MB8764:
X-Microsoft-Antispam-PRVS:
	<PH0PR02MB87645A136E5D82BDDBF5BB57BC929@PH0PR02MB8764.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:478;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hvv82Q3NNI84GInLTU04XdX9QUqq063oCXClE9vDHyA7ZzOjTqr7YSIRInytYWiKAzDaN2WmRgISQih7XNEsVCEzYORNOspQtqLnj9LOnSJcr53/TaMBN+yHX15zOmTQY97Jqe4IlZqhAHdlEI77/gFscQyEO5BN83MPiAjwfksEdWzoIwiubpfQW6eo2Wzf1xJ3mvha3wlvSqYMjQeYqLUyIXjoyT9AFqF8015Z0N2WSRp4+fWMme2wr1nSxY3PTHShukbLgWTMgjdIRtGPfIbfHocf1xTrSAqfsgf2ydRla4rIOIUEzj7EVdmBSWmmtkKIaeq1VGh9ajTciBKZj/rRQ9zdaVvP9ssviwAbeqrosvz/15QR5AWKFYMkCObbgqXQByS/2tU+cu5bq7PwlkZ9TBRNCCZJ0w+rhuL/QUEa7aJy0agnr1DnNmVggSHS14j61O37L9e7jRkHyx628QV7Noza9NOarfBSX3GvWP8KK1LHxJ0eUT/OcvxmrA9kZIv0RzMN4vpK4aE0PL/YRD8J0Os5RL/hj04PfQ+mAXJIzPA8v6cjCsaa47piIxiooyfezaspi/5mJhHpk1kFh3SC95/5Yk94Mfo1vH2pcwIqWgxe1ji/2d63UfwT/H/HPZUDZd84u0Lx4yrhWpE66o8KtGFkTP00Ppnj+USedVeR4USPr9tobi2vsLiiBWsIsR4E7terP5cW7Hf+IAkTHFnpL4W2MYWdw/PcUHoeSQ4=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(356005)(8936002)(186003)(47076005)(508600001)(82310400003)(7696005)(2616005)(30864003)(7636003)(26005)(70586007)(83380400001)(36860700001)(426003)(70206006)(8676002)(54906003)(4326008)(6916009)(2906002)(9786002)(36756003)(36906005)(336012)(316002)(5660300002)(6666004)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:02:53.0401
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dcf0a359-5a55-466c-0314-08d9a34ef323
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR02MB8764

Change function type of following function to access during runtime:
    1. map_irq_to_domain()
    2. handle_device_interrupt()
    3. map_range_to_domain()
    4. unflatten_dt_node()
    5. unflatten_device_tree()

Move map_irq_to_domain(), handle_device_interrupt() and map_range_to_domain() to
device.c.

Move map_range_data declaration to domain_build.h.

These changes are done to support the dynamic programming of a nodes where an
overlay node will be added to fdt and unflattened node will be added to dt_host.
Furthermore, IRQ and mmio mapping will be done for the added node.

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/arch/arm/device.c              | 146 ++++++++++++++++++++++++++++++++++++
 xen/arch/arm/domain_build.c        | 150 -------------------------------------
 xen/common/device_tree.c           |  18 ++---
 xen/include/asm-arm/domain_build.h |  10 +++
 xen/include/xen/device_tree.h      |   5 ++
 5 files changed, 170 insertions(+), 159 deletions(-)

diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
index 70cd6c1..c7cf2b9 100644
--- a/xen/arch/arm/device.c
+++ b/xen/arch/arm/device.c
@@ -21,6 +21,8 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/lib.h>
+#include <xen/iocap.h>
+#include <asm/domain_build.h>
 
 extern const struct device_desc _sdevice[], _edevice[];
 extern const struct acpi_device_desc _asdevice[], _aedevice[];
@@ -84,6 +86,150 @@ enum device_class device_get_class(const struct dt_device_node *dev)
     return DEVICE_UNKNOWN;
 }
 
+int map_irq_to_domain(struct domain *d, unsigned int irq,
+                             bool need_mapping, const char *devname)
+{
+    int res;
+
+    res = irq_permit_access(d, irq);
+    if ( res )
+    {
+        printk(XENLOG_ERR "Unable to permit to dom%u access to IRQ %u\n",
+               d->domain_id, irq);
+        return res;
+    }
+
+    if ( need_mapping )
+    {
+        /*
+         * Checking the return of vgic_reserve_virq is not
+         * necessary. It should not fail except when we try to map
+         * the IRQ twice. This can legitimately happen if the IRQ is shared
+         */
+        vgic_reserve_virq(d, irq);
+
+        res = route_irq_to_guest(d, irq, irq, devname);
+        if ( res < 0 )
+        {
+            printk(XENLOG_ERR "Unable to map IRQ%"PRId32" to dom%d\n",
+                   irq, d->domain_id);
+            return res;
+        }
+    }
+
+    dt_dprintk("  - IRQ: %u\n", irq);
+    return 0;
+}
+
+int map_range_to_domain(const struct dt_device_node *dev,
+                                      u64 addr, u64 len,
+                                      void *data)
+{
+    struct map_range_data *mr_data = data;
+    struct domain *d = mr_data->d;
+    bool need_mapping = !dt_device_for_passthrough(dev);
+    int res;
+
+    /*
+     * reserved-memory regions are RAM carved out for a special purpose.
+     * They are not MMIO and therefore a domain should not be able to
+     * manage them via the IOMEM interface.
+     */
+    if ( strncasecmp(dt_node_full_name(dev), "/reserved-memory/",
+                     strlen("/reserved-memory/")) != 0 )
+    {
+        res = iomem_permit_access(d, paddr_to_pfn(addr),
+                paddr_to_pfn(PAGE_ALIGN(addr + len - 1)));
+        if ( res )
+        {
+            printk(XENLOG_ERR "Unable to permit to dom%d access to"
+                    " 0x%"PRIx64" - 0x%"PRIx64"\n",
+                    d->domain_id,
+                    addr & PAGE_MASK, PAGE_ALIGN(addr + len) - 1);
+            return res;
+        }
+    }
+
+    if ( need_mapping )
+    {
+        res = map_regions_p2mt(d,
+                               gaddr_to_gfn(addr),
+                               PFN_UP(len),
+                               maddr_to_mfn(addr),
+                               mr_data->p2mt);
+
+        if ( res < 0 )
+        {
+            printk(XENLOG_ERR "Unable to map 0x%"PRIx64
+                   " - 0x%"PRIx64" in domain %d\n",
+                   addr & PAGE_MASK, PAGE_ALIGN(addr + len) - 1,
+                   d->domain_id);
+            return res;
+        }
+    }
+
+    dt_dprintk("  - MMIO: %010"PRIx64" - %010"PRIx64" P2MType=%x\n",
+               addr, addr + len, mr_data->p2mt);
+
+    return 0;
+}
+
+/*
+ * handle_device_interrupts retrieves the interrupts configuration from
+ * a device tree node and maps those interrupts to the target domain.
+ *
+ * Returns:
+ *   < 0 error
+ *   0   success
+ */
+int handle_device_interrupts(struct domain *d,
+                                           struct dt_device_node *dev,
+                                           bool need_mapping)
+{
+    unsigned int i, nirq;
+    int res;
+    struct dt_raw_irq rirq;
+
+    nirq = dt_number_of_irq(dev);
+
+    /* Give permission and map IRQs */
+    for ( i = 0; i < nirq; i++ )
+    {
+        res = dt_device_get_raw_irq(dev, i, &rirq);
+        if ( res )
+        {
+            printk(XENLOG_ERR "Unable to retrieve irq %u for %s\n",
+                   i, dt_node_full_name(dev));
+            return res;
+        }
+
+        /*
+         * Don't map IRQ that have no physical meaning
+         * ie: IRQ whose controller is not the GIC
+         */
+        if ( rirq.controller != dt_interrupt_controller )
+        {
+            dt_dprintk("irq %u not connected to primary controller. Connected to %s\n",
+                      i, dt_node_full_name(rirq.controller));
+            continue;
+        }
+
+        res = platform_get_irq(dev, i);
+        if ( res < 0 )
+        {
+            printk(XENLOG_ERR "Unable to get irq %u for %s\n",
+                   i, dt_node_full_name(dev));
+            return res;
+        }
+
+        res = map_irq_to_domain(d, res, need_mapping, dt_node_name(dev));
+        if ( res )
+            return res;
+    }
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 0167731..3e8f6da 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -51,12 +51,6 @@ static int __init parse_dom0_mem(const char *s)
 }
 custom_param("dom0_mem", parse_dom0_mem);
 
-struct map_range_data
-{
-    struct domain *d;
-    p2m_type_t p2mt;
-};
-
 /* Override macros from asm/page.h to make them work with mfn_t */
 #undef virt_to_mfn
 #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
@@ -1624,41 +1618,6 @@ int __init make_chosen_node(const struct kernel_info *kinfo)
     return res;
 }
 
-int __init map_irq_to_domain(struct domain *d, unsigned int irq,
-                             bool need_mapping, const char *devname)
-{
-    int res;
-
-    res = irq_permit_access(d, irq);
-    if ( res )
-    {
-        printk(XENLOG_ERR "Unable to permit to dom%u access to IRQ %u\n",
-               d->domain_id, irq);
-        return res;
-    }
-
-    if ( need_mapping )
-    {
-        /*
-         * Checking the return of vgic_reserve_virq is not
-         * necessary. It should not fail except when we try to map
-         * the IRQ twice. This can legitimately happen if the IRQ is shared
-         */
-        vgic_reserve_virq(d, irq);
-
-        res = route_irq_to_guest(d, irq, irq, devname);
-        if ( res < 0 )
-        {
-            printk(XENLOG_ERR "Unable to map IRQ%"PRId32" to dom%d\n",
-                   irq, d->domain_id);
-            return res;
-        }
-    }
-
-    dt_dprintk("  - IRQ: %u\n", irq);
-    return 0;
-}
-
 static int __init map_dt_irq_to_domain(const struct dt_device_node *dev,
                                        const struct dt_irq *dt_irq,
                                        void *data)
@@ -1690,59 +1649,6 @@ static int __init map_dt_irq_to_domain(const struct dt_device_node *dev,
     return 0;
 }
 
-static int __init map_range_to_domain(const struct dt_device_node *dev,
-                                      u64 addr, u64 len,
-                                      void *data)
-{
-    struct map_range_data *mr_data = data;
-    struct domain *d = mr_data->d;
-    bool need_mapping = !dt_device_for_passthrough(dev);
-    int res;
-
-    /*
-     * reserved-memory regions are RAM carved out for a special purpose.
-     * They are not MMIO and therefore a domain should not be able to
-     * manage them via the IOMEM interface.
-     */
-    if ( strncasecmp(dt_node_full_name(dev), "/reserved-memory/",
-                     strlen("/reserved-memory/")) != 0 )
-    {
-        res = iomem_permit_access(d, paddr_to_pfn(addr),
-                paddr_to_pfn(PAGE_ALIGN(addr + len - 1)));
-        if ( res )
-        {
-            printk(XENLOG_ERR "Unable to permit to dom%d access to"
-                    " 0x%"PRIx64" - 0x%"PRIx64"\n",
-                    d->domain_id,
-                    addr & PAGE_MASK, PAGE_ALIGN(addr + len) - 1);
-            return res;
-        }
-    }
-
-    if ( need_mapping )
-    {
-        res = map_regions_p2mt(d,
-                               gaddr_to_gfn(addr),
-                               PFN_UP(len),
-                               maddr_to_mfn(addr),
-                               mr_data->p2mt);
-
-        if ( res < 0 )
-        {
-            printk(XENLOG_ERR "Unable to map 0x%"PRIx64
-                   " - 0x%"PRIx64" in domain %d\n",
-                   addr & PAGE_MASK, PAGE_ALIGN(addr + len) - 1,
-                   d->domain_id);
-            return res;
-        }
-    }
-
-    dt_dprintk("  - MMIO: %010"PRIx64" - %010"PRIx64" P2MType=%x\n",
-               addr, addr + len, mr_data->p2mt);
-
-    return 0;
-}
-
 /*
  * For a node which describes a discoverable bus (such as a PCI bus)
  * then we may need to perform additional mappings in order to make
@@ -1773,62 +1679,6 @@ static int __init map_device_children(struct domain *d,
 }
 
 /*
- * handle_device_interrupts retrieves the interrupts configuration from
- * a device tree node and maps those interrupts to the target domain.
- *
- * Returns:
- *   < 0 error
- *   0   success
- */
-static int __init handle_device_interrupts(struct domain *d,
-                                           struct dt_device_node *dev,
-                                           bool need_mapping)
-{
-    unsigned int i, nirq;
-    int res;
-    struct dt_raw_irq rirq;
-
-    nirq = dt_number_of_irq(dev);
-
-    /* Give permission and map IRQs */
-    for ( i = 0; i < nirq; i++ )
-    {
-        res = dt_device_get_raw_irq(dev, i, &rirq);
-        if ( res )
-        {
-            printk(XENLOG_ERR "Unable to retrieve irq %u for %s\n",
-                   i, dt_node_full_name(dev));
-            return res;
-        }
-
-        /*
-         * Don't map IRQ that have no physical meaning
-         * ie: IRQ whose controller is not the GIC
-         */
-        if ( rirq.controller != dt_interrupt_controller )
-        {
-            dt_dprintk("irq %u not connected to primary controller. Connected to %s\n",
-                      i, dt_node_full_name(rirq.controller));
-            continue;
-        }
-
-        res = platform_get_irq(dev, i);
-        if ( res < 0 )
-        {
-            printk(XENLOG_ERR "Unable to get irq %u for %s\n",
-                   i, dt_node_full_name(dev));
-            return res;
-        }
-
-        res = map_irq_to_domain(d, res, need_mapping, dt_node_name(dev));
-        if ( res )
-            return res;
-    }
-
-    return 0;
-}
-
-/*
  * For a given device node:
  *  - Give permission to the guest to manage IRQ and MMIO range
  *  - Retrieve the IRQ configuration (i.e edge/level) from device tree
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index 92ce59e..88f3f7e 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -1821,12 +1821,12 @@ int dt_count_phandle_with_args(const struct dt_device_node *np,
  * @allnextpp: pointer to ->allnext from last allocated device_node
  * @fpsize: Size of the node path up at the current depth.
  */
-static unsigned long __init unflatten_dt_node(const void *fdt,
-                                              unsigned long mem,
-                                              unsigned long *p,
-                                              struct dt_device_node *dad,
-                                              struct dt_device_node ***allnextpp,
-                                              unsigned long fpsize)
+static unsigned long unflatten_dt_node(const void *fdt,
+                                unsigned long mem,
+                                unsigned long *p,
+                                struct dt_device_node *dad,
+                                struct dt_device_node ***allnextpp,
+                                unsigned long fpsize)
 {
     struct dt_device_node *np;
     struct dt_property *pp, **prev_pp = NULL;
@@ -2057,7 +2057,7 @@ static unsigned long __init unflatten_dt_node(const void *fdt,
 }
 
 /**
- * __unflatten_device_tree - create tree of device_nodes from flat blob
+ * unflatten_device_tree - create tree of device_nodes from flat blob
  *
  * unflattens a device-tree, creating the
  * tree of struct device_node. It also fills the "name" and "type"
@@ -2066,7 +2066,7 @@ static unsigned long __init unflatten_dt_node(const void *fdt,
  * @fdt: The fdt to expand
  * @mynodes: The device_node tree created by the call
  */
-static void __init __unflatten_device_tree(const void *fdt,
+void unflatten_device_tree(const void *fdt,
                                            struct dt_device_node **mynodes)
 {
     unsigned long start, mem, size;
@@ -2189,7 +2189,7 @@ dt_find_interrupt_controller(const struct dt_device_match *matches)
 
 void __init dt_unflatten_host_device_tree(void)
 {
-    __unflatten_device_tree(device_tree_flattened, &dt_host);
+    unflatten_device_tree(device_tree_flattened, &dt_host);
     dt_alias_scan();
 }
 
diff --git a/xen/include/asm-arm/domain_build.h b/xen/include/asm-arm/domain_build.h
index 34ceddc..17449b1 100644
--- a/xen/include/asm-arm/domain_build.h
+++ b/xen/include/asm-arm/domain_build.h
@@ -4,10 +4,20 @@
 #include <xen/sched.h>
 #include <asm/kernel.h>
 
+struct map_range_data
+{
+    struct domain *d;
+    p2m_type_t p2mt;
+};
+
 int map_irq_to_domain(struct domain *d, unsigned int irq,
                       bool need_mapping, const char *devname);
 int make_chosen_node(const struct kernel_info *kinfo);
 void evtchn_allocate(struct domain *d);
+int handle_device_interrupts(struct domain *d, struct dt_device_node *dev,
+                             bool need_mapping);
+int map_range_to_domain(const struct dt_device_node *dev, u64 addr, u64 len,
+                        void *data);
 
 #ifndef CONFIG_ACPI
 static inline int prepare_acpi(struct domain *d, struct kernel_info *kinfo)
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 573e4a0..9fc63ab 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -177,6 +177,11 @@ int device_tree_for_each_node(const void *fdt, int node,
  */
 void dt_unflatten_host_device_tree(void);
 
+/*
+ * unflatten any device tree.
+ */
+void unflatten_device_tree(const void *fdt, struct dt_device_node **mynodes);
+
 /**
  * IRQ translation callback
  * TODO: For the moment we assume that we only have ONE
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223700.386537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9n-0000k1-9y; Tue, 09 Nov 2021 07:02:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223700.386537; Tue, 09 Nov 2021 07:02:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9n-0000iA-3I; Tue, 09 Nov 2021 07:02:59 +0000
Received: by outflank-mailman (input) for mailman id 223700;
 Tue, 09 Nov 2021 07:02:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9l-00004s-Uf
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:02:58 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam07on20624.outbound.protection.outlook.com
 [2a01:111:f400:7eb2::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10c1cc54-412b-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 08:02:57 +0100 (CET)
Received: from DS7PR03CA0326.namprd03.prod.outlook.com (2603:10b6:8:2b::28) by
 MN2PR02MB6894.namprd02.prod.outlook.com (2603:10b6:208:202::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.13; Tue, 9 Nov 2021 07:02:53 +0000
Received: from DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
 (2603:10b6:8:2b:cafe::d9) by DS7PR03CA0326.outlook.office365.com
 (2603:10b6:8:2b::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 9 Nov 2021 07:02:53 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 DM3NAM02FT010.mail.protection.outlook.com (10.13.5.124) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:02:53 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:51 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:51 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9f-000Ga6-3f; Mon, 08 Nov 2021 23:02:51 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10c1cc54-412b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SjUmxrbS9Z48N1bB0x+nE/xu3+s2n7pbUxPKHP1625KlF327Li7N5Kds3JksfRKXBk8qeTeylI145cGR7pEX2dC5tJ5nxG2c7tLX0lEqdUqSYDayZx13fCvkcXvcNj051POGK9tb+sQ/GvQfD22bg8BR+iJaQzLskktIl36sZkCBHBAAsZAfMCeJJQV5zmvCrHKQtcFIQV/ztfS4qaIq0qaI5bJJ1ro660Q9dRoAIp0GMarpWgWqiLpCEcd0FOymTcSUm3FamYE71zj2LC7TYFW3lu/XzMIKBPS08B0NihvVcj/K/7XR2gbAKZYL0+AcIdUIH2z1qwxoX+3mqbzmFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eVTdL2JkAaFCrQBMdzufBf1qaaoyDchjyzTR3R/6sMQ=;
 b=Rxy5+F86No0TIR1bdFe9VXQW3azprKEbUS7aMS67PSudjCYsFYYIVnl6hkulqwqo6zRJ82UWmzO/InZhoaWzBnS24FcPFf1gJRzfKqeVuZHfxecl/jr1ijyzRyt2sKTGjFfiTChU/AudJXHW93MOMXpTz7sFz8qVeWaQYEH+zGrq2+6YcJIMg9o9AG9ra1vhBzVogGHw/BYx/AHzvcWbEmaSGWSQzdKdme6p2YhEV9A62atOVXd+l9YIbWi8dS1PA8vVf4wPVScJlexsXWnmpNuf4UXDb1J5Jhawg/OStugkO/Fn0xpsNPJt75+dSyXcbRyjN+H8+QyvCCIo7slWnQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eVTdL2JkAaFCrQBMdzufBf1qaaoyDchjyzTR3R/6sMQ=;
 b=ja6xZHGxpWL5BZNipXkWRCQSD0ax2aNePpFfIZG7iuJM+XaiY2DAM0ZhPdl0SQXwmlpsq/w0/u9VlP7z96kxU+IM1VUX4ktk6Ymx9mkRtwg9JIoHhBN43ybYL5FMq4zuB6CL92ESATp2Ems/xaj0w/20e6kov8q9FVL4RnE/6ZQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>, Ian
 Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>
Subject: [XEN][RFC PATCH v2 12/12] tools/xl: Add new xl command overlay
Date: Mon, 8 Nov 2021 23:02:27 -0800
Message-ID: <1636441347-133850-13-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ec176ae9-4f43-44fc-9f81-08d9a34ef37b
X-MS-TrafficTypeDiagnostic: MN2PR02MB6894:
X-Microsoft-Antispam-PRVS:
	<MN2PR02MB6894D7A858BCF15762B16E89BC929@MN2PR02MB6894.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:1850;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	PmBHn+r2mrAQuobPjEC5u+B9C+zkhFQnlM38LS6wn0N3NGQX4a8LyKunx4YQubG0hiuypa+pitqKfNLN7esvj3ZHV+vgVgUgYDhhpjiRQHNd7EwqqYoWDcL7+ut9iqa3b0fdVnQaME5ys5RNd8ieBsaq/lf94C6TB55J2qab63XHH3z4ILhVT6FiLfE49nBOaeSaaDzuVhbvjtLdBaSQI22bokqu35lL16OAN3UfAjZ5G3J0oC6z08MiPdCtbLBNgskaTp+PSpwvANowwWk9uUb8w03QiStvmr58ennoX0sfDDHUeIe8IMMYFrKdRqMRJfmq1esUgoZsLAnOzgs4k5dM3Bwnw8W6qKq4jOpttxTisuuEMD8q2Pr7oRzq7fGmpx3yfUonJZh6NJys/kQ7TMPUtcrJ8OBk7P0QOGpB7Ivvn0s7VAdC+lYnZOpBCkFyC5E5NPrVRMgw7UFuCMRyk+HGQZA63UwRvQ94FwbZeoJov4m7AWzn9kJWOCIwI0Q9JEkAyGM/YHDL5HbJ4OsQDHLuKmyw4jSKQLd3AkO78XxjNBjKRwz/rRRgKl8Qu75bvG0IzydLvzIpJFwRUFEyg7zcR/gLHXS1IAF0278c4hmUatOJAKAsDP2TiXJnbYdTGCRkjLNIAAU1yolpoZGaX/Gz3npws52xZF5d5SjlJr6SEW4CvMhK61DwDJO6mMP1LmQYYQou1Nv0k7ETsM59FCDvtHDctEBW5IV/PYxzApo=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(7696005)(26005)(8936002)(8676002)(6916009)(6666004)(4326008)(186003)(7636003)(9786002)(426003)(2616005)(336012)(47076005)(82310400003)(316002)(70586007)(5660300002)(508600001)(36756003)(36906005)(54906003)(83380400001)(70206006)(36860700001)(356005)(2906002)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:02:53.6438
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ec176ae9-4f43-44fc-9f81-08d9a34ef37b
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR02MB6894

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 tools/xl/xl.h           |  8 ++++++++
 tools/xl/xl_cmdtable.c  |  8 ++++++++
 tools/xl/xl_vmcontrol.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 63 insertions(+)

diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 7e23f30..2ee75a0 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -98,6 +98,11 @@ struct save_file_header {
 
 #define SAVEFILE_BYTEORDER_VALUE ((uint32_t)0x01020304UL)
 
+#if defined (CONFIG_OVERLAY_DTB)
+#define XL_DT_OVERLAY_ADD                   1
+#define XL_DT_OVERLAY_REMOVE                2
+#endif
+
 void save_domain_core_begin(uint32_t domid,
                             int preserve_domid,
                             const char *override_config_file,
@@ -140,6 +145,9 @@ int main_shutdown(int argc, char **argv);
 int main_reboot(int argc, char **argv);
 int main_list(int argc, char **argv);
 int main_vm_list(int argc, char **argv);
+#if defined (CONFIG_OVERLAY_DTB)
+int main_dt_overlay(int argc, char **argv);
+#endif
 int main_create(int argc, char **argv);
 int main_config_update(int argc, char **argv);
 int main_button_press(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 661323d..dd43920 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -20,6 +20,14 @@
 #include "xl.h"
 
 const struct cmd_spec cmd_table[] = {
+#if defined (CONFIG_OVERLAY_DTB)
+    { "overlay",
+      &main_dt_overlay, 1, 1,
+      "Add/Remove a device tree overlay",
+      "add/remove <.dtbo>"
+      "-h print this help\n"
+    },
+#endif
     { "create",
       &main_create, 1, 1,
       "Create a domain from config file <filename>",
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index 435155a..88c8e66 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -1262,6 +1262,53 @@ int main_create(int argc, char **argv)
     return 0;
 }
 
+#if defined (CONFIG_OVERLAY_DTB)
+int main_dt_overlay(int argc, char **argv)
+{
+    const char *overlay_ops = argv[1];
+    const char *overlay_config_file = argv[2];
+    void *overlay_dtb = NULL;
+    int rc;
+    uint8_t op;
+    int overlay_dtb_size = 0;
+
+    if (overlay_ops == NULL) {
+        fprintf(stderr, "No overlay operation mode provided\n");
+        return ERROR_FAIL;
+    }
+
+    if (strcmp(overlay_ops, "add") == 0)
+        op = XL_DT_OVERLAY_ADD;
+    else if (strcmp(overlay_ops, "remove") == 0)
+        op = XL_DT_OVERLAY_REMOVE;
+    else {
+        fprintf(stderr, "Invalid dt overlay operation\n");
+        return ERROR_FAIL;
+    }
+
+    if (overlay_config_file) {
+        rc = libxl_read_file_contents(ctx, overlay_config_file,
+                                      &overlay_dtb, &overlay_dtb_size);
+
+        if (rc) {
+            fprintf(stderr, "failed to read the overlay device tree file %s\n",
+                    overlay_config_file);
+            free(overlay_dtb);
+            return ERROR_FAIL;
+        }
+    } else {
+        fprintf(stderr, "overlay dtbo file not provided\n");
+        return ERROR_FAIL;
+    }
+
+    rc = libxl_dt_overlay(ctx, overlay_dtb, overlay_dtb_size, op);
+    if (rc)
+        fprintf(stderr, "Overlay operation failed\n");
+
+    free(overlay_dtb);
+    return rc;
+}
+#endif
 /*
  * Local variables:
  * mode: C
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223698.386519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9k-0000Lz-DR; Tue, 09 Nov 2021 07:02:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223698.386519; Tue, 09 Nov 2021 07:02:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9k-0000Ls-9J; Tue, 09 Nov 2021 07:02:56 +0000
Received: by outflank-mailman (input) for mailman id 223698;
 Tue, 09 Nov 2021 07:02:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9j-00004s-Da
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:02:55 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20626.outbound.protection.outlook.com
 [2a01:111:f400:7e88::626])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0de8392e-412b-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 08:02:52 +0100 (CET)
Received: from SA0PR11CA0076.namprd11.prod.outlook.com (2603:10b6:806:d2::21)
 by MN2PR02MB6047.namprd02.prod.outlook.com (2603:10b6:208:186::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 07:02:49 +0000
Received: from SN1NAM02FT0016.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:d2:cafe::23) by SA0PR11CA0076.outlook.office365.com
 (2603:10b6:806:d2::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 07:02:49 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0016.mail.protection.outlook.com (10.97.4.82) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:02:48 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:39 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:34 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9O-000Ga6-2A; Mon, 08 Nov 2021 23:02:34 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0de8392e-412b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KhVqvpwO/TiLFWYXby/Qz0B456srIkPhmj8gchV9h40wP8mTR2r/oAUjHpWbHYxCaX3uTLkt/RALzjkuWAW958do/fs1sqHKXuMW8rZa0Z5rXq9Kh0b7TTRXD5FWnXCHaBceu0kgpuAXg4xsjyNQgZdp29dybjAwMo0Y8hJnDapdPttdIMYczOoP3Wf1TaznqqdlOoWbMCZx+7/y3aAqW267n6Pi1QhHTMFVs/YYSBcuMInbPsuMHZKAbQor89sOiapvPJlKte/kmsBFr3y2iziTtKLNwaXAIkynPhb3GQHH7EkxCpm9ijJEqbRI9IvUFBllEAh0DBe2uCqItgO9Zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xtJLc1JfjYiw9k5F0Qw1/n6JDGWssDVQSwbVx+ZYHRQ=;
 b=FyFCiJ3y7pUrU57ErLiESkdzIRspI3DsLHTFamlFTd48Dc+RVYKIj1XJ10hqcZ3dgDmPqsZ6CYKucD0ZjqfiN4bBvJbwg9D3TbSnW4T6ue40L07JgspESBlmU098M+F0qQ336k+5vFonZ6MnkFkTiKCkv/oL+uMFvEUJFeSRX+gQa75C7zgt8O/JsTBTjsBf327DeYKx6OCOBFUPPuQ0ugRB3ED3/DnEvTiSH7zuOvmIt+e4lFCAbM9TqBlrt5gd7UULpv7KdMhpdJyEk0hJPcfliVK6TQ4VQc9FS8vCyYAO2LfGyAs3geaVIQkE4Yu0By0Uzms9mDkoHZ1dyYZkLg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xtJLc1JfjYiw9k5F0Qw1/n6JDGWssDVQSwbVx+ZYHRQ=;
 b=bN9lsulsL8EcxPgPG7pdsiOKpKbYO4aolPH4rkqd5f012ZKAygVRmnnl31UhBJ+MZkx5HIWNR8iOukoKKMfv+hjVGjG+dYe+xQ2nOUtS0nUp8euuhkUGHydoJeYlhUl4DItmqd6S3WhpXGljP/CP33RD+Q94Y5cV2zj+a3aHOk8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Paul Durrant <paul@xen.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Juergen Gross
	<jgross@suse.com>, Anthony PERARD <anthony.perard@citrix.com>
Subject: [XEN][RFC PATCH v2 00/12] dynamic node programming using overlay dtbo
Date: Mon, 8 Nov 2021 23:02:15 -0800
Message-ID: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 28161322-8565-4c2b-751b-08d9a34ef092
X-MS-TrafficTypeDiagnostic: MN2PR02MB6047:
X-Microsoft-Antispam-PRVS:
	<MN2PR02MB60476F13F02226D7AB5C5DB9BC929@MN2PR02MB6047.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	oBzgNB/bxnz0jy7yNnmuOFbcOvVq5dmBdfR1wUdbZhiJM+o9pVWnsW2qwN+XZxLrPqdQZa33VSyxoSGPQVpjn9LQmwyHCZ9ZPjm9CCSiMj1tDW51XVofKCoSqGfbWdP4LHwIRJ0FlwpO4yPYGpfAnINRct2pwOIdPZHiB3A+jPKpm27LsyUFeTgOEJAaUo2u7pC0uZXy1dzZArcimkz+vmRw4Bn7C0/5aNJgByV32cWhEmE9eNxddaJPrVm1u3yW40YWwevHRJ99Va6aKMz7fSOnBHtI2giLQnWERfWB2kgO7OjpTu1d3B9ywkiS7el1b1RTw/tly9OhoNdteCOlXABdq8Dy/HCG7JN4/Mi/awuQR1UGXkqS1in8n/DeT57bC6XRdKDJWP08BoCMRdahtWTXNy+dF4tGurTpKZtFEDdlma6aBdvU+M+paL9b3gfw0k3Ze0KoVarX+fvWd1s45fY8WfNmtJ1UFaKjM0fpFMVDccyUO+Yh0W1nKQzTtkiBMnRC9WjqXb52w15IyWd8MBwzMG9nvHtmH5R98SgG9HcRq/+An+tMVKdQkJrkYNwlgZiZD2kMTu7J5A0stKWciAnOJZ/swKd1O+X9JayeOg1yhlkAmvbWZTHyxnQzb0O3NXlAyCUV23XsZ2T/+PWykAB5PYq7n/xJDke+Bzx9r4f9sWSZX6BcIVqaJgEPloHIGO5N7TE/uepzKJU4NKk6cIbHjfsVTAI5OfKRHMgoIEE=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(9786002)(54906003)(186003)(7636003)(2906002)(82310400003)(8676002)(36756003)(336012)(4326008)(36906005)(6666004)(316002)(70586007)(70206006)(6916009)(8936002)(508600001)(2616005)(26005)(5660300002)(83380400001)(36860700001)(7696005)(7416002)(426003)(47076005)(356005)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:02:48.7702
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 28161322-8565-4c2b-751b-08d9a34ef092
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0016.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR02MB6047

Hi,
This RFC patch series is for introducing dynamic programming i.e. add/remove the
devices during run time. Using "xl overlay" a device can be added/removed with dtbo.

For adding a node using dynamic programming:
    1. flatten device tree overlay node will be added to a fdt
    2. Updated fdt will be unflattened to a new dt_host_new
    3. Extract the newly added node information from dt_host_new
    4. Add the added node under correct parent in original dt_host.
    3. Map interrupt and iomem region as required.

For removing a node:
    1. Find the node with given path.
    2. Check if the node is used by any of dom0 or domus. Removes the node
only when it's not used by any domain.
    3. Removes IRQ permissions and MMIO access.
    5. Find the node in dt_host and delete the device node entry from dt_host.
    6. Free the overlay_tracker entry which means free dt_host_new also(created
in adding node step).

Question: I am not sure how to enable CONFIG_OVERLAY_DTB in tool stack like the
way we do in xen using menuconfig or editing .config file. Would it be possible
for someone in tool stack expertise to guide me?

Reminder: This patch series has dependency on libfdt v1.6.1. A patch for libfdt
upgrade was already sent earlier with below subject:
    [XEN][PATCH v2 0/1] Update libfdt to v1.6.1

Change Log:
 v1 -> v2:
    Add support for multiple node addition/removal using dtbo.
    Replaced fpga-add and fpga-remove with one hypercall overlay_op.
    Moved common domain_build.c function to device.c
    Add OVERLAY_DTB configuration.
    Renamed overlay_get_target() to fdt_overlay_get_target().
    Split remove_device patch into two patches.
    Moved overlay_add/remove code to sysctl and changed it from domctl to sysctl.
    Added all overlay code under CONFIG_OVERLAY_DTB
    Renamed all tool domains fpga function to overlay
    Addressed code issues from v1 review.

Regards,
Vikram

Vikram Garhwal (12):
  device tree: Remove __init from function type
  xen: arm: Add CONFIG_OVERLAY_DTB
  libfdt: Keep fdt functions after init for CONFIG_OVERLAY_DTB.
  libfdt: Add fdt_ prefix to overlay_get_target()
  device tree: Add _dt_find_node_by_path() to find nodes in device tree
  xen/smmu: Add remove_device callback for smmu_iommu ops
  xen/smmu: Add remove_device callback for smmu_iommu ops
  xen/arm: Implement device tree node removal functionalities
  xen/arm: Implement device tree node addition functionalities
  tools/libs/ctrl: Implement new xc interfaces for dt overlay
  tools/libs/light: Implement new libxl functions for device tree
    overlay ops
  tools/xl: Add new xl command overlay

 tools/include/libxl.h                 |   5 +
 tools/include/xenctrl.h               |   5 +
 tools/libs/ctrl/Makefile              |   1 +
 tools/libs/ctrl/xc_overlay.c          |  51 +++
 tools/libs/light/Makefile             |   3 +
 tools/libs/light/libxl_overlay.c      |  65 ++++
 tools/xl/xl.h                         |   8 +
 tools/xl/xl_cmdtable.c                |   8 +
 tools/xl/xl_vmcontrol.c               |  47 +++
 xen/arch/arm/Kconfig                  |   8 +
 xen/arch/arm/device.c                 | 146 +++++++++
 xen/arch/arm/domain_build.c           | 150 ---------
 xen/common/device_tree.c              | 122 +++++++-
 xen/common/libfdt/Makefile            |   3 +
 xen/common/libfdt/fdt_overlay.c       |  12 +-
 xen/common/sysctl.c                   | 571 ++++++++++++++++++++++++++++++++++
 xen/drivers/passthrough/arm/smmu.c    |  54 ++++
 xen/drivers/passthrough/device_tree.c |  30 ++
 xen/include/asm-arm/domain_build.h    |  10 +
 xen/include/public/sysctl.h           |  23 ++
 xen/include/xen/device_tree.h         |  20 ++
 xen/include/xen/iommu.h               |   2 +
 xen/include/xen/libfdt/libfdt.h       |   3 +
 23 files changed, 1180 insertions(+), 167 deletions(-)
 create mode 100644 tools/libs/ctrl/xc_overlay.c
 create mode 100644 tools/libs/light/libxl_overlay.c

-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223697.386508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9j-000052-64; Tue, 09 Nov 2021 07:02:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223697.386508; Tue, 09 Nov 2021 07:02:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9j-00004t-1P; Tue, 09 Nov 2021 07:02:55 +0000
Received: by outflank-mailman (input) for mailman id 223697;
 Tue, 09 Nov 2021 07:02:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9h-0008WR-L0
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:02:53 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20620.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ce2e50c-412b-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 08:02:51 +0100 (CET)
Received: from DS7PR03CA0324.namprd03.prod.outlook.com (2603:10b6:8:2b::24) by
 PH0PR02MB7319.namprd02.prod.outlook.com (2603:10b6:510:1e::14) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.13; Tue, 9 Nov 2021 07:02:48 +0000
Received: from DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
 (2603:10b6:8:2b:cafe::60) by DS7PR03CA0324.outlook.office365.com
 (2603:10b6:8:2b::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Tue, 9 Nov 2021 07:02:48 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 DM3NAM02FT010.mail.protection.outlook.com (10.13.5.124) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:02:47 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:47 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:47 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9b-000Ga6-Ly; Mon, 08 Nov 2021 23:02:47 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ce2e50c-412b-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eAP3qgvzQ3dPMe3SrwEtSEu1Dr3ppafUBsjhSG+PA+Gd5vxY/0c/CRdPMMWVzNnmYuZyL7PzCzf/kbmM+knLC27hRTknAbxg97mhcWbcHK1XH2UwXi3hJanceOOjcwYRerenn/ORieMONQQms2A2EFXU0dt38x/l8W/bEBkX//zltAB/DdjQEre5jLw0omyLyp/4xxXDEojBzaS38wdtgdDPTjcEwZWrFi6hzPSO1oDR9sOWCPeBgAuEwIrR2+/FCTTsb31/mdoQT26YnwQ5Svoc7FCc7yuA1u6r8izLoUJWoj0PC4Kqd9od94EPYlK/T9/mrifj7IMKo5LAdMGH9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kIewzG8LywGWbHesUbd3OwI+EI+4G2+90rM3TjxjMto=;
 b=AC+zclWUX4ssIdyn93a9IQn6m6QDevnHOpDEA9DcDCC5Q1U5zkjQHjomzZ74t019M8o7u3TpPg9dM9jXl+0e7Putf8JHToEi/J6K6ij0hIY9BLLSL/JZ+owJohdsrY63CqvGue4hDPMm9w8GAlvKUkDHRU8EZJsLkt30dSux81pj2r8IV5PNbmHzAs8zeNWU1LAg1gQgmrCuWmF3BlKaWKFVeNcAaOo5qVgklJcYkvF/sZ0FpCOw98+JkazGJyKW8Op2Ux+8AzkigC6NIKChNCjAEU7iBG7sUAUUQWAGioJBG/fZT7PhN7F8oiQNkwaOsmVWt4HhP1pltaSDRYEBXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kIewzG8LywGWbHesUbd3OwI+EI+4G2+90rM3TjxjMto=;
 b=RxwU6jSjsdsz0tComLWtsmkxc7BuI1XJtTd1Bxms/rbKzjwRWdKazW0IilVeMiZj/rCd1wI8WM7iBvO2lO2Cj70EHVrxtJdmJ25lmUJ4/2O8/sBPhwaAF5u8PRtCNkPIk3L/EKh61s34clGjuPlWAxXRrZMb+DOJe1GF1K7v+AQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][RFC PATCH v2 05/12] device tree: Add _dt_find_node_by_path() to find nodes in device tree
Date: Mon, 8 Nov 2021 23:02:20 -0800
Message-ID: <1636441347-133850-6-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 16419d0b-8a6a-4c6d-519f-08d9a34ef01b
X-MS-TrafficTypeDiagnostic: PH0PR02MB7319:
X-Microsoft-Antispam-PRVS:
	<PH0PR02MB73192148A09CB12916062838BC929@PH0PR02MB7319.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CxrKvQBgjaFpqcDX9shXu8wa92CnssaHYwKGafmN6YKDRGt6L4gNl595IsjZJ4BvF8Uw+OY2Y1GCneV2XjdMkuxHfHIzIAvXlG5jxcKgJg0edp8LHMJArYw0NTW1zngjBMV0c2ABNrHxEvA/d99RJ1+vMxU4VqTNbIS3kCU1urUDiNfNqpbHbklGEhAFQgxyaPTN0N+vSFqUuPKAsOUasY9t2dSOjpN64f72Fw3EZ476FzPQycLxO07/hcqXovaZtRK8v2HuT1AaKsS0iYb/vALngN/hLwOptK+Y8y7Q5ptOdnNGlIuZiJXm9DeLjfF00k5psJhgwswRAfIbvhIZS9jnDmJ5ReZ6yPiJ/mevQabMvuAFEHIYI9faQq6fUN2pCnSiHQ4azgar4W2z52H8F/24RQU7p8ccg5qFrf+PRSjfUphq83xGtYZX9Vcdu/gUdotttxVsrYD+tPbZwK6dtVz7FxCTWLzbuZXeeusqAfAQHREehjiBwoSdk0+WizXybFI9duUXrum4zpO24FUMa1Rza+SXopaQEs0nFoDA7uk2r/PtCXsbCE6QWE/VVwnoiNAGiPpCLEA0aQpD6CgvzPRDhIG+aC6yaJn5vsRQmgNTuxCzXrv0y0Dn9ETHiAU4ucJaf4v09AzMK1nIAvw0eY6ScNSciOqhM5tcitd5LdYFZF2oBtkF6U/u7KI/ZrIusFzX01tgkvavrRuPXmu6uYRL/8oODc2FkS0nZITnhadDrrIS8LAc0y7QZy1P8RAf
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(336012)(5660300002)(426003)(36906005)(7636003)(82310400003)(36860700001)(70586007)(2906002)(316002)(4326008)(2616005)(36756003)(107886003)(9786002)(47076005)(356005)(7696005)(83380400001)(54906003)(26005)(6916009)(186003)(8936002)(8676002)(6666004)(70206006)(508600001)(102446001)(37363002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:02:47.9785
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 16419d0b-8a6a-4c6d-519f-08d9a34ef01b
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR02MB7319

Add _dt_find_by_path() to find a matching node with path for a dt_device_node.

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/device_tree.c      | 10 ++++++++--
 xen/include/xen/device_tree.h |  9 +++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index 88f3f7e..26d2e28 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -358,17 +358,23 @@ struct dt_device_node *dt_find_node_by_type(struct dt_device_node *from,
     return np;
 }
 
-struct dt_device_node *dt_find_node_by_path(const char *path)
+struct dt_device_node *_dt_find_node_by_path(struct dt_device_node *dt,
+                                             const char *path)
 {
     struct dt_device_node *np;
 
-    dt_for_each_device_node(dt_host, np)
+    dt_for_each_device_node(dt, np)
         if ( np->full_name && (dt_node_cmp(np->full_name, path) == 0) )
             break;
 
     return np;
 }
 
+struct dt_device_node *dt_find_node_by_path(const char *path)
+{
+    return _dt_find_node_by_path(dt_host, path);
+}
+
 void dt_print_node_names(struct dt_device_node *dt)
 {
     struct dt_device_node *np;
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 9fc63ab..5ba26a0 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -525,6 +525,15 @@ struct dt_device_node *dt_find_node_by_alias(const char *alias);
  */
 struct dt_device_node *dt_find_node_by_path(const char *path);
 
+/**
+ * _dt_find_node_by_path - Find a node matching a full DT path
+ * @dt_node: The device tree to search
+ * @path: The full path to match
+ *
+ * Returns a node pointer.
+ */
+struct dt_device_node *_dt_find_node_by_path(struct dt_device_node *dt,
+                                             const char *path);
 
 /**
  * dt_find_node_by_gpath - Same as dt_find_node_by_path but retrieve the
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223699.386530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9m-0000cv-O7; Tue, 09 Nov 2021 07:02:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223699.386530; Tue, 09 Nov 2021 07:02:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9m-0000ci-Hh; Tue, 09 Nov 2021 07:02:58 +0000
Received: by outflank-mailman (input) for mailman id 223699;
 Tue, 09 Nov 2021 07:02:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9l-0008WR-9g
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:02:57 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060d.outbound.protection.outlook.com
 [2a01:111:f400:7eab::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f77f2f4-412b-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 08:02:55 +0100 (CET)
Received: from DS7PR03CA0311.namprd03.prod.outlook.com (2603:10b6:8:2b::23) by
 CH0PR02MB8010.namprd02.prod.outlook.com (2603:10b6:610:107::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 07:02:52 +0000
Received: from DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
 (2603:10b6:8:2b:cafe::bd) by DS7PR03CA0311.outlook.office365.com
 (2603:10b6:8:2b::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 07:02:52 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 DM3NAM02FT010.mail.protection.outlook.com (10.13.5.124) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:02:52 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:50 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:50 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9e-000Ga6-IY; Mon, 08 Nov 2021 23:02:50 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f77f2f4-412b-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=I/5951yxrc2G9GErmcRSoyIb3W2UIxzv/4klY4KIlIBXWLMh+aMhJ7elFB1m4eeR9ZbwfOiGEh1/hlgD5/m82d57ZP53Ni/JXOUSxEhHf/WKs2zYV4mEeuQTomEIajQd7g/8i79EU8WgjiuS2IDBHH64FqEgj1zNOWJU9GJCRmWfkEUFSikVmeqbzoR7+QfgGMChRQ6O1S5scW4EaxBivwy7n/KDEhaKgXwseVO2qmN365dMYBnMZy6f1JUilQMgDq5SOPqr4glpkuxeUqraMWBnzVih/EFADQgX1Tj1Bpd0u55JN6eeXLEbZu+geicveEGMSRo+8kGa8nUESdN5+g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=f5zhM1yaBAdXw5ec2yVU1t3POrwQaiIRB5jEhPe+n2w=;
 b=NMehr3lFLvJr1Uocc5AeVibjwCOXVpKx2VTFdmjbxy3h1nPpfSnseMuGvVnD4WLs4kYtix7rCGaNV4R5kIsMGon2Vj20ibE7FSdQDRmf4zzk6m7zCLzTvkO6btK7NdxT/lJ6AoQFkwh2Y6etiU/jwjjXpC1mj0xPn3IB4EabCIzEFVO9zQaYTaV9K/7JnpUX10sRwWCtzS/FGKSA23exGcWWRqFAs+1WW5p6ztO5XKN3hrvRQqgs/hcxU9x03SiRoUdvNzbanoJi937ETgIdm+qzSipPP2/8WHfLJky8jC5l37lD1Kg6bkeaxU+YkM1It3acw3LYCwDyU4LmvR+wag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f5zhM1yaBAdXw5ec2yVU1t3POrwQaiIRB5jEhPe+n2w=;
 b=Cyvb4k4giMGG9wy3hW21e5Q7Tl4i70A4dlqGW617FSi7loKSqywcANKrkEj7suYPRvFh0WPHvvMlmVgddKzpup7mD7P67TwqW0g538gcaln7xg0J8TVqaNm2XrPu10jleH565I61p1VpJICSLKKhXLDZzx0MGihkyDlV8ehcdRA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>, Ian
 Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>
Subject: [XEN][RFC PATCH v2 11/12] tools/libs/light: Implement new libxl functions for device tree overlay ops
Date: Mon, 8 Nov 2021 23:02:26 -0800
Message-ID: <1636441347-133850-12-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 64343fd2-fc7a-44ec-a629-08d9a34ef2eb
X-MS-TrafficTypeDiagnostic: CH0PR02MB8010:
X-Microsoft-Antispam-PRVS:
	<CH0PR02MB8010C004428E2BF83FA9E108BC929@CH0PR02MB8010.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	gYfXO1AdMcMIcgMFoXbr0iAxdityKK5JvQJ6xFA9s28qBXZKeIvaDfd3AhkGRa0mo+N0AvYXsYx+Aq4rLU1R9OdRG/lGI/1Btp9NMEJzYxrH9eqR+JT2j1CwksihAhb/I/lE7d27FmA606EbhhdTahWjnSL7mq99wMyRNr3DCCb5VoDwCf9Dm6hdVBf9xb11V0VDWVO0B8CGYyWV6d0pHsuiFCqm8nqG2DEfAE7k+wFAqyvDiJ++5jEAHFYCD51IrUbuGypITLvss265cpUiGIVUJmpZypsFZSoH9Xi4jEgeuoiORWMU+WciLlJ4KKJPjtoj9HUCi6WxDzmnBuNpAlvG1Z5Ay1LWAdTtfkavjgsYfLvgRezzsYLHF2g4YTY7ft9OYJKS4Zve2R5c7JTJ6i0N/CWxP6SHLBViw04tO9hbTIvbJ8mbAAZfMsER5gBI05Zxj38FwOlslRmk1dpQAL8J9EwOSvP7EO9Jh2r60LYI30vB0L+1vcTOEAN+RFJ4qwHmakRzWSl6Y/IIxWQsEsZXOdFd0UsPBAmUmcqudHtDhkassbABiwueKrCK4ACDIKohz7EgNfvvHQ7f1GidDxxKmlG8C1A1KjND4Cpp7T88rT0oSxn3Fle9egsaB+zctPxEubVMPErKnXl1I6kEX5X5qgA4aQuThLnkRn5Wd0bDbpPE85uDtg/pzzSc0Evdu/kPqYSfkyP+yUY+bL3AYWIQFqD8P5bRTJJTlAVbfbqhm+BS5Cv5K18GPKLMrYRi
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(54906003)(7696005)(36860700001)(336012)(8936002)(6916009)(2616005)(426003)(82310400003)(26005)(186003)(508600001)(70586007)(70206006)(47076005)(316002)(8676002)(6666004)(36906005)(7636003)(2906002)(356005)(9786002)(5660300002)(36756003)(4326008)(102446001)(2004002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:02:52.6982
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 64343fd2-fc7a-44ec-a629-08d9a34ef2eb
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR02MB8010

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 tools/include/libxl.h            |  5 ++++
 tools/libs/light/Makefile        |  3 ++
 tools/libs/light/libxl_overlay.c | 65 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 73 insertions(+)
 create mode 100644 tools/libs/light/libxl_overlay.c

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 2e8679d..3dcb3e7 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -2406,6 +2406,11 @@ libxl_device_pci *libxl_device_pci_list(libxl_ctx *ctx, uint32_t domid,
                                         int *num);
 void libxl_device_pci_list_free(libxl_device_pci* list, int num);
 
+#if defined (CONFIG_OVERLAY_DTB)
+int libxl_dt_overlay(libxl_ctx *ctx, void *overlay,
+                     int overlay_size, uint8_t op);
+#endif
+
 /*
  * Turns the current process into a backend device service daemon
  * for a driver domain.
diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
index 194bc5f..0fffa93 100644
--- a/tools/libs/light/Makefile
+++ b/tools/libs/light/Makefile
@@ -117,6 +117,9 @@ SRCS-y += libxl_genid.c
 SRCS-y += _libxl_types.c
 SRCS-y += libxl_flask.c
 SRCS-y += _libxl_types_internal.c
+ifeq ($(CONFIG_OVERLAY_DTB),y)
+SRCS-y += libxl_overlay.o
+endif
 
 ifeq ($(CONFIG_LIBNL),y)
 CFLAGS_LIBXL += $(LIBNL3_CFLAGS)
diff --git a/tools/libs/light/libxl_overlay.c b/tools/libs/light/libxl_overlay.c
new file mode 100644
index 0000000..d965aee
--- /dev/null
+++ b/tools/libs/light/libxl_overlay.c
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2021 Xilinx Inc.
+ * Author Vikram Garhwal <fnu.vikram@xilinx.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; version 2.1 only. with the special
+ * exception on linking described in file LICENSE.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ */
+
+#include "libxl_osdeps.h" /* must come before any other headers */
+#include "libxl_internal.h"
+#include <libfdt.h>
+#include <xenguest.h>
+#include <xenctrl.h>
+
+static int check_overlay_fdt(libxl__gc *gc, void *fdt, size_t size)
+{
+    int r;
+
+    if (fdt_magic(fdt) != FDT_MAGIC) {
+        LOG(ERROR, "Overlay FDT is not a valid Flat Device Tree");
+        return ERROR_FAIL;
+    }
+
+    r = fdt_check_header(fdt);
+    if (r) {
+        LOG(ERROR, "Failed to check the overlay FDT (%d)", r);
+        return ERROR_FAIL;
+    }
+
+    if (fdt_totalsize(fdt) > size) {
+        LOG(ERROR, "Overlay FDT totalsize is too big");
+        return ERROR_FAIL;
+    }
+
+    return 0;
+}
+
+int libxl_dt_overlay(libxl_ctx *ctx, void *overlay_dt, int overlay_dt_size,
+                     uint8_t op)
+{
+    int rc = 0;
+    GC_INIT(ctx);
+
+    if (check_overlay_fdt(gc, overlay_dt, overlay_dt_size)) {
+        LOG(ERROR, "Overlay DTB check failed\n");
+        return ERROR_FAIL;
+    } else
+        LOG(DEBUG, "Overlay DTB check passed\n");
+
+    /* We don't need to do  xc_interface_open here. */
+    rc = xc_dt_overlay(ctx->xch, overlay_dt, overlay_dt_size, op);
+
+    if (rc)
+        LOG(ERROR, "%s: Adding/Removing overlay dtb failed.\n", __func__);
+
+    return rc;
+}
+
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223701.386542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9n-0000pV-Ng; Tue, 09 Nov 2021 07:02:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223701.386542; Tue, 09 Nov 2021 07:02:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9n-0000o8-FD; Tue, 09 Nov 2021 07:02:59 +0000
Received: by outflank-mailman (input) for mailman id 223701;
 Tue, 09 Nov 2021 07:02:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9m-0008WR-9s
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:02:58 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20600.outbound.protection.outlook.com
 [2a01:111:f400:7e88::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 106aea44-412b-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 08:02:55 +0100 (CET)
Received: from DS7PR03CA0322.namprd03.prod.outlook.com (2603:10b6:8:2b::29) by
 CH2PR02MB7096.namprd02.prod.outlook.com (2603:10b6:610:8c::17) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11; Tue, 9 Nov 2021 07:02:52 +0000
Received: from DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
 (2603:10b6:8:2b:cafe::e0) by DS7PR03CA0322.outlook.office365.com
 (2603:10b6:8:2b::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Tue, 9 Nov 2021 07:02:52 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 DM3NAM02FT010.mail.protection.outlook.com (10.13.5.124) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:02:52 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:49 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:49 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9d-000Ga6-Hm; Mon, 08 Nov 2021 23:02:49 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 106aea44-412b-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DQ/HRZVZRKHbJJj6B8yux5m0AaGx7aRxB7EwDCXGMprYHw6gZ8Gto5T1L9oH4hMw1SrihvlmBDCw3Rn6H3txqj+9JSMA+mrCgmgFg6Y44lHfqaVNsTtmAFMRyI5USGAEIeX8aHiaK/Kk/Yf5Sf+FwbZM6HxFz1o+q1rXzWsMHTPDymgORzgWg0pXfriOIbZFeW/K3uraZDYvLXwr32Dge0gjjImb1ycMeMzaxCCsqqKtsLDZtFq7iSoTjFRRwxtlWrxQz/NEK2BE8AXKK94Si3VZH4Myw+yDW7lEMpyOJLtSsLFU50GuzEXJ2IJMdnNEwJZEVFfCjyzKFpzjLt4WJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wyrbSWuVg8mh72pt0EIeRsiFgh0ZFhFqclg9XrgPE/4=;
 b=g7FPXH2jJqWpJ4IuzNVeiwZqrGTUKKhm+6QCsJcMz4CQ9ItAuInxDStA/8jQfNDpfVd6LB7+1/cOQhoK33YlfDCAHwkWZfvL69DgpnKKRufxIgKW5WIhSxeM672Ni+g6yAg2AtQ9XGg+8kYmzcIYknyOuGZMrnagP0QvZvu5iXldPZl7Rj9xw6YT09wAKT84bQ6vnJbb3KreQT/Ou0lhvOKRE7B6k9fFCE2U+h4oQXr5vrLSX9eDFw6gObciJXDDwlgOcI3sOEa7kxN3egXykCfHmpUMP7yr3HRzkllCdkcTmIKgO6SRpFAqGMEeSAMijxVVpMLyPrQpieJItcDIVg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wyrbSWuVg8mh72pt0EIeRsiFgh0ZFhFqclg9XrgPE/4=;
 b=Sk/OyTFjBzZsK/KhA9UqQFg5EB1xkdSXExumgM3a1lNRg+P2hLjEJrS5eNy1bG2wAeuNZuHAwEjL1Fjx2liPuVbgjFrDLwld1JSPN3ElY+IONXlWXX6UnPHXvJSJDIxlh9JY6GygAlxV97w1zcNG+DGYR0W3VQTB+CQvUXNZ7BE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Wei Liu
	<wl@xen.org>
Subject: [XEN][RFC PATCH v2 09/12] xen/arm: Implement device tree node addition functionalities
Date: Mon, 8 Nov 2021 23:02:24 -0800
Message-ID: <1636441347-133850-10-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 53fc7495-d8b0-423b-8eec-08d9a34ef2af
X-MS-TrafficTypeDiagnostic: CH2PR02MB7096:
X-Microsoft-Antispam-PRVS:
	<CH2PR02MB709615A21C78C07DC56BFD24BC929@CH2PR02MB7096.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:287;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	D9sM5O9mquk0D9fEps5z/Mk8ZS3cinM6zl00gYYL53VuyB4YUnD/EUDwHs1mWUpRcRiIo4Rets5kdfrOJ+ZUPQZNbe+PBE/pGSfKd2W8TWM+HzJ/I01VxQeDwBTyhUcm1Wmq59jxpKjQVK1ggY6BWmAA7JpCunFn006fEvIWaM3Hw4s5o5KEV1CN+f1VbbOV58pEtxfWCIENijGUBtNCWT25Oy4P2OZrqlGJqU8s7Sr+ZTHYXGmRHWyburxglH/IBfp0CoFFlfoGbjS0VwE0GgqqzooULEV/UdS4Z2vrW+pj0grSy/FJ7wlkI5MJt0a61VjXYgBxHwsegedVk5tyfDh3J74qz0zTYrWTcxkyf4T9Bx8bk6hysFKl5XwSlAMH4nroEQLiFTNZzuEiWCFkpic8T9sIPAddAShPT6PluUWNZCdJhn3jYD0miA5L6Na5NX2SJYRhdYNvxlYv4o+I4sCRvg6k/HNYxwHubOCeWKF/1FkcjnSBvIQY4xtsiGJnBkUGFxfN0YTMP//jh3uj3Rugadkxy0IvmnQ5AonJJKHCTSf9uhRCcNKLpACLEawBZk25WDg0v/SOuB0HIoDcLw6eR4m75mTI4xb8Ny3r4C1h2lpTKPLpVXAxBmwRcnwpZvUF+BsjM5HTAQ58Z0jDxAddbyc5FmsJkmntQuL8623QZa3X14dGvrHaqiGr/Q0sT+nfPWj93HUVa5Ucv5FJfst2rsPjUN9DwnhEnMBdfvXEPsHhcCnQP+5qFxLmXqLowAMtpYaXvGTqo3MrhUUBOw==
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(7416002)(82310400003)(9786002)(4326008)(36860700001)(186003)(2616005)(356005)(7636003)(2906002)(426003)(336012)(83380400001)(36906005)(316002)(70586007)(70206006)(6916009)(26005)(54906003)(508600001)(8936002)(8676002)(47076005)(6666004)(5660300002)(7696005)(36756003)(102446001)(403724002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:02:52.3044
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 53fc7495-d8b0-423b-8eec-08d9a34ef2af
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT010.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR02MB7096

Update sysctl XEN_SYSCTL_overlay to enable support for dtbo nodes addition using
device tree overlay.

xl overlay add file.dtbo:
    Each time overlay nodes are added using .dtbo, a new fdt(memcpy of
    device_tree_flattened) is created and updated with overlay nodes. This
    updated fdt is further unflattened to a dt_host_new. Next, it checks if any
    of the overlay nodes already exists in the dt_host. If overlay nodes doesn't
    exist then find the overlay nodes in dt_host_new, find the overlay node's
    parent in dt_host and add the nodes as child under their parent in the
    dt_host. The node is attached as the last node under target parent.

    Finally, add IRQs, add device to IOMMUs, set permissions and map MMIO for the
    overlay node.

When a node is added using overlay, a new entry is allocated in the
overlay_track to keep the track of memory allocation due to addition of overlay
node. This is helpful for freeing the memory allocated when a device tree node
is removed.

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/device_tree.c      |  41 +++++++++
 xen/common/sysctl.c           | 199 ++++++++++++++++++++++++++++++++++++++++++
 xen/include/xen/device_tree.h |   2 +
 3 files changed, 242 insertions(+)

diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index 19320e1..5dff64c 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -386,6 +386,47 @@ void dt_print_node_names(struct dt_device_node *dt)
 }
 
 #if defined (CONFIG_OVERLAY_DTB)
+int overlay_add_node(struct dt_device_node *device_node,
+                  const char *parent_node_path)
+{
+    struct dt_device_node *parent_node;
+    struct dt_device_node *np;
+    struct dt_device_node *next_node;
+    struct dt_device_node *new_node;
+
+    parent_node = dt_find_node_by_path(parent_node_path);
+
+    new_node = device_node;
+
+    if ( new_node == NULL )
+        return -EINVAL;
+
+    if ( parent_node == NULL )
+    {
+        dt_dprintk("Node not found. Partial dtb will not be added");
+        return -EINVAL;
+    }
+
+    /*
+     * If node is found. We can attach the device_node as a child of the
+     * parent node. Iterate to the last child node of parent.
+     */
+
+    for ( np = parent_node->child; np->sibling != NULL; np = np->sibling )
+    {
+    }
+
+    next_node = np->allnext;
+    new_node->parent = parent_node;
+    np->sibling = new_node;
+    np->allnext = new_node;
+    /* Now plug next_node at the end of device_node. */
+    new_node->sibling = next_node;
+    new_node->allnext = next_node;
+    np->sibling->sibling = NULL;
+    return 0;
+}
+
 int overlay_remove_node(struct dt_device_node *device_node)
 {
     struct dt_device_node *np;
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index fca47f5..38824b2 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -331,6 +331,205 @@ out:
     spin_unlock(&overlay_lock);
     return rc;
 }
+
+/*
+ * Adds device tree nodes under target node.
+ * We use dt_host_new to unflatten the updated device_tree_flattened. This is
+ * done to avoid the removal of device_tree generation, iomem regions mapping to
+ * hardware domain done by handle_node().
+ */
+static long handle_add_overlay_nodes(void *overlay_fdt,
+                                     uint32_t overlay_fdt_size)
+{
+    int rc = 0;
+    struct dt_device_node *overlay_node;
+    char **node_full_path = NULL;
+    void *fdt = NULL;
+    struct dt_device_node *dt_host_new;
+    struct domain *d = hardware_domain;
+    struct overlay_track *tr = NULL;
+    unsigned int naddr;
+    unsigned int i, j;
+    int num_overlay_nodes;
+    u64 addr, size;
+
+    fdt = xmalloc_bytes(fdt_totalsize(device_tree_flattened));
+    if ( fdt == NULL )
+        return -ENOMEM;
+
+    num_overlay_nodes = overlay_node_count(overlay_fdt);
+    if ( num_overlay_nodes == 0 )
+        return -ENOMEM;
+
+    spin_lock(&overlay_lock);
+
+    memcpy(fdt, device_tree_flattened, fdt_totalsize(device_tree_flattened));
+
+    rc = check_overlay_fdt(overlay_fdt, overlay_fdt_size);
+    if ( rc )
+        goto err;
+
+    /*
+     * overlay_get_node_info is called to get the node information from dtbo.
+     * This is done before fdt_overlay_apply() because the overlay apply will
+     * erase the magic of overlay_fdt.
+     */
+    overlay_get_node_info(overlay_fdt, &node_full_path, num_overlay_nodes);
+
+    rc = fdt_overlay_apply(fdt, overlay_fdt);
+    if ( rc )
+    {
+        printk(XENLOG_ERR "Adding overlay node failed with error %d\n", rc);
+        goto err;
+    }
+
+    for ( j = 0; j < num_overlay_nodes; j++ ) {
+        /* Check if any of the node already exists in dt_host. */
+        overlay_node = dt_find_node_by_path(node_full_path[j]);
+        if ( overlay_node != NULL )
+        {
+            printk(XENLOG_ERR "node %s exists in device tree\n",
+                   node_full_path[j]);
+            rc = -EINVAL;
+            xfree(node_full_path);
+            goto err;
+        }
+    }
+
+    /* Unflatten the fdt into a new dt_host. */
+    unflatten_device_tree(fdt, &dt_host_new);
+
+    for ( j = 0; j < num_overlay_nodes; j++ ) {
+        dt_dprintk("Adding node: %s\n", node_full_path[j]);
+
+        /* Find the newly added node in dt_host_new by it's full path. */
+        overlay_node = _dt_find_node_by_path(dt_host_new, node_full_path[j]);
+        if ( overlay_node == NULL )
+        {
+            dt_dprintk("%s node not found\n", node_full_path[j]);
+            rc = -EFAULT;
+            goto remove_node;
+        }
+
+        /* Add the node to dt_host. */
+        rc = overlay_add_node(overlay_node, overlay_node->parent->full_name);
+        if ( rc )
+        {
+            /* Node not added in dt_host. */
+            goto remove_node;
+        }
+
+        /* Get the node from dt_host and add interrupt and IOMMUs. */
+        overlay_node = dt_find_node_by_path(overlay_node->full_name);
+        if ( overlay_node == NULL )
+        {
+            /* Sanity check. But code will never come here. */
+            printk(XENLOG_ERR "Cannot find %s node under updated dt_host\n",
+                   overlay_node->name);
+            goto remove_node;
+        }
+
+        /* First let's handle the interrupts. */
+        rc = handle_device_interrupts(d, overlay_node, false);
+        if ( rc )
+        {
+            printk(XENLOG_G_ERR "Interrupt failed\n");
+            goto remove_node;
+        }
+
+        /* Add device to IOMMUs */
+        rc = iommu_add_dt_device(overlay_node);
+        if ( rc < 0 )
+        {
+            printk(XENLOG_G_ERR "Failed to add %s to the IOMMU\n",
+                   dt_node_full_name(overlay_node));
+            goto remove_node;
+        }
+
+        /* Set permissions. */
+        naddr = dt_number_of_address(overlay_node);
+
+        dt_dprintk("%s passthrough = %d naddr = %u\n",
+                   dt_node_full_name(overlay_node), false, naddr);
+
+        /* Give permission and map MMIOs */
+        for ( i = 0; i < naddr; i++ )
+        {
+            struct map_range_data mr_data = { .d = d,
+                                              .p2mt = p2m_mmio_direct_c };
+            rc = dt_device_get_address(overlay_node, i, &addr, &size);
+            if ( rc )
+            {
+                printk(XENLOG_ERR "Unable to retrieve address %u for %s\n",
+                       i, dt_node_full_name(overlay_node));
+                goto remove_node;
+            }
+
+            rc = map_range_to_domain(overlay_node, addr, size, &mr_data);
+            if ( rc )
+                goto remove_node;
+        }
+    }
+
+    /* This will happen if everything above goes right. */
+    tr = xzalloc(struct overlay_track);
+    if ( tr == NULL )
+    {
+        rc = -ENOMEM;
+        goto remove_node;
+    }
+
+    tr->dt_host_new = dt_host_new;
+    tr->node_fullname = node_full_path;
+    tr->num_nodes = num_overlay_nodes;
+
+    if ( tr->node_fullname == NULL )
+    {
+        rc = -ENOMEM;
+        goto remove_node;
+    }
+
+    INIT_LIST_HEAD(&tr->entry);
+    list_add_tail(&tr->entry, &overlay_tracker);
+
+err:
+    spin_unlock(&overlay_lock);
+    xfree(fdt);
+    return rc;
+
+/*
+ * Failure case. We need to remove the nodes, free tracker(if tr exists) and
+ * dt_host_new.
+ */
+remove_node:
+    xfree(fdt);
+    rc = check_nodes(node_full_path, j);
+
+    if ( rc ) {
+        spin_unlock(&overlay_lock);
+        return rc;
+    }
+
+    rc = remove_nodes(node_full_path, j);
+
+    if ( rc ) {
+        printk(XENLOG_G_ERR "Removing node failed\n");
+        spin_unlock(&overlay_lock);
+        return rc;
+    }
+
+    spin_unlock(&overlay_lock);
+
+    xfree(dt_host_new);
+
+    if ( tr )
+        xfree(tr);
+
+    if ( node_full_path )
+        xfree(node_full_path);
+
+    return rc;
+}
 #endif
 
 long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index cf29cf5..eafb269 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -554,6 +554,8 @@ int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
 void dt_print_node_names(struct dt_device_node *dt);
 
 #if defined (CONFIG_OVERLAY_DTB)
+int overlay_add_node(struct dt_device_node *device_node,
+                  const char *parent_node_path);
 int overlay_remove_node(struct dt_device_node *device_node);
 #endif
 
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223703.386574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9w-0001zE-Ow; Tue, 09 Nov 2021 07:03:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223703.386574; Tue, 09 Nov 2021 07:03:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9w-0001z4-KB; Tue, 09 Nov 2021 07:03:08 +0000
Received: by outflank-mailman (input) for mailman id 223703;
 Tue, 09 Nov 2021 07:03:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9v-00004s-Og
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:03:07 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam08on2061b.outbound.protection.outlook.com
 [2a01:111:f400:7e8d::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 169d6844-412b-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 08:03:07 +0100 (CET)
Received: from SN7PR04CA0011.namprd04.prod.outlook.com (2603:10b6:806:f2::16)
 by CH0PR02MB8060.namprd02.prod.outlook.com (2603:10b6:610:109::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov
 2021 07:03:04 +0000
Received: from SN1NAM02FT0031.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:f2:cafe::1) by SN7PR04CA0011.outlook.office365.com
 (2603:10b6:806:f2::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 07:03:04 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0031.mail.protection.outlook.com (10.97.4.64) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:03:03 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:46 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:46 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9a-000Ga6-Ni; Mon, 08 Nov 2021 23:02:46 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 169d6844-412b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=POXcJey1kxEMAbWxtS/aapdEdNhPZcyjTr5ykNDvMVSqvRCqf0vZNcb4itgO0NJ0b9ETJRqJxPCruKAFzwQjkYCoNCZxe81+LNOxNrpQ6EsspQ+GAAkJl0Odl9Y+pTdq/szi1fIuzRsEWcjblD4gsvlCsUNmqDA1DzO2yMPrExk0PXWdtdA2s/nsnDzxRCSCTnpfrWMMvzR8N9tTOVV+reGyKBbqMQGV8PyuWFgatyKw2IHmUHgsP71MY+Nwd14AiathVPxvdm5ANYwaTQbtiJ6jSpwxa/MYnCXlFyJbzzn5XgKv9o/LGy79tU/1v56PFfJsqTORxZ6rekC1KTFYPg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WG0xFb3mDkPyPuUeQfLweYulR61V/m6A7KyclRYvaO0=;
 b=GDvwZfrGW0ixdzChhguqMZuzM3qfYbUtQmNKFH3q1g0yMmdiMrMR4Sx240Maap3KnzHlvIkFvgui353A3GzYb8UwDU/+tdG4om9HFROkscopknB9ZEfmBwnfD0OxPv4ZjXI4kDBAjonsHninQSw5JEJpe/QNyFhe4PiXzEO3XLZC/di9n9pRPsfDJTrGwXzxWUYP3tgqDkAUNYfMe/rQGyxYav7cOCMSUyekWg+O2jmE9z2OB5FlWuRNwVTas10DrmWJsgHXbOo8k3XZOHqR+IYKE/dcnS7fQ7iRHgcei6c11Le3/DkLY+SKF91sbWzOnmke+3yfzwKAOvXZbhiQ1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WG0xFb3mDkPyPuUeQfLweYulR61V/m6A7KyclRYvaO0=;
 b=KlJQBWNVUpzjDgZktFjw2cSUCjd7vhx39FY2gm+cW9K+NKY5V29s32Re0YfUjeMkLx8bXGORb4cepWCquIxudmRqhw+POSP4swFbe0UTD/2eZWTkDEgYVe0lTCVIQyblHDPD83C2Ta4eV8fbh9gZhB0Q0wLF9bXmAp/03xY8B50=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][RFC PATCH v2 03/12] libfdt: Keep fdt functions after init for CONFIG_OVERLAY_DTB.
Date: Mon, 8 Nov 2021 23:02:18 -0800
Message-ID: <1636441347-133850-4-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0beb327a-5bda-49d4-d7fd-08d9a34ef968
X-MS-TrafficTypeDiagnostic: CH0PR02MB8060:
X-Microsoft-Antispam-PRVS:
	<CH0PR02MB80600776E043C551CC0ED702BC929@CH0PR02MB8060.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:162;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	9eCpB3MIylPPtaKZHwPYtoz1ceK+JyUzja2YtSrFdkEGXmvb/rmNVgSh4w3XlL1K0bHmMV3OiIxNBPODMmrRnquU/BntXltufsZicRP5nSkwJOhtLPMCxz4VJG75UPa1IJpodxt5vHj6KcHsyaQt7kgrBqFTPyDX8A8JEzs3c2/+Hw0MG1jpwsfoqG9QJ16/M0XZqpNXGrqMDyXd8h7BCGtmcv06YLob4rPHmno2SJf0Us+rMPob2J7go/jfZZXptuD0cW4bjyYwatgBtNyEsWn1doTKB06BN75vPNOhEcJZmqbcQGDXXQxKqInX/9qpUe1EvPgqz2iJn9X77GakZPvZ3bf1CsXmZnBfKJxQdajl0GqQtYFcv5YmVSD6k/Cvu1xz+UzCo8G01JPDGU7o20zopFB3/rFC9Nnu1KYlmWibcYE1ocFZjfKc1BNu3DcSj+uOIF/EtZDDu3BYqvjGKFAzMUavBpGnNf9ZT6nOre4oKe/RfA/flW7XRoBC33Oh3j8KBr7rWEyJBIM2M+Si2MuDR0hgKl499kbujoke+taxakNMwCB+qvKOpelOfeezh5Ou6MwWISVGHFH5+a3Jf1JJgh9UXCAa613KrGDjPZhuKmRtYzclqbu1jZJEvMH2ecHMIp57DgDpoixuFmLDzjiE+bbLjZBfsUjCS6iw/qVx4CAQWSgE8ONW7MFdWQx566AFyqlilzeSQvfIzebfYp5lUu2vrvahvmeXnsF02xE=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(36756003)(508600001)(54906003)(2616005)(4326008)(83380400001)(6666004)(2906002)(7696005)(6916009)(5660300002)(7636003)(107886003)(9786002)(356005)(316002)(36906005)(47076005)(8676002)(336012)(36860700001)(8936002)(426003)(4744005)(70206006)(70586007)(186003)(26005)(82310400003)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:03:03.5960
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0beb327a-5bda-49d4-d7fd-08d9a34ef968
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0031.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR02MB8060

This is done to access fdt library function which are required for adding device
tree overlay nodes for dynamic programming of nodes.

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/libfdt/Makefile | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
index 6bd207c..f838f5f 100644
--- a/xen/common/libfdt/Makefile
+++ b/xen/common/libfdt/Makefile
@@ -1,7 +1,10 @@
 include Makefile.libfdt
 
 SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
+
+ifneq ($(CONFIG_OVERLAY_DTB),y)
 OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
+endif
 
 obj-y += libfdt.o
 nocov-y += libfdt.o
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223704.386584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9y-0002Gs-4z; Tue, 09 Nov 2021 07:03:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223704.386584; Tue, 09 Nov 2021 07:03:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9x-0002G7-W9; Tue, 09 Nov 2021 07:03:09 +0000
Received: by outflank-mailman (input) for mailman id 223704;
 Tue, 09 Nov 2021 07:03:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9w-00004s-P2
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:03:08 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20627.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::627])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 16a729db-412b-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 08:03:07 +0100 (CET)
Received: from SN7PR04CA0151.namprd04.prod.outlook.com (2603:10b6:806:125::6)
 by BYAPR02MB4215.namprd02.prod.outlook.com (2603:10b6:a02:f4::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov
 2021 07:03:04 +0000
Received: from SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:125:cafe::d1) by SN7PR04CA0151.outlook.office365.com
 (2603:10b6:806:125::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 07:03:04 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0011.mail.protection.outlook.com (10.97.5.171) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:03:03 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:47 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:47 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9b-000Ga6-7N; Mon, 08 Nov 2021 23:02:47 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16a729db-412b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NCweG3OeKbLm9pcVQWFFHmJcUZ0nghsurtf4L/I02bztruGwX8hqQ8abDpBXSQF9D7Ajt4mkwg0zQHM34/+ItWl8kdl6KX0K3exeUNk5kO/OCA6OpZkYv83EhgHHihtzEsEVmpjKhXJ0GksU0VMB5+X1TFewWeuAjWjyrAga7qW/ZKFeJHkHAycaHFxPaokqgOaJsrdr/slRF0AOz2f3SAIPP8StiKWU4efaBmSTlAC5/n3dxA35nOGYd2gmuC0pZkWxlaLGj3vJ4VKncsX26soXrjBoyD+QsaCiC+2DKUVslw3i1exLgadMfy6aXuLr5sdbYotW1f5JkHewj9zM2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0Fql05hs8YXgjepE7Xhz/cxP9a1+eoyB0oUmynBhbxw=;
 b=YPBnihvDhnOIbwb5E9kVJtYoe6m0Iw2q8bFCVn1c0fJb+ZB+Zjn1cno9wZPun1CBTPB0IrJ3gSpBlEN0Jtm/LtWS/ADqBQAm+hgZXudFqMZlKBFPcnzZsN45mSCKcxReqkQW/gqfOBPlW4EjyKrQF+f7unjcnnYU3hjnROCFDvFIoRc8tgGkLUzobKsHd1C/7Mcswb2FIoQGfG5Z7BLIXfHKjsGJcEtRKC42nxV1N7YgfTC9dFNm2yazxq08Mf6TOX1ndSl0hEVKeYkLSZKHrGuoQm2hxzlg3ncy+J2f2VPaA3dIoPkZBgEJZOrM4cWHl6OeTshyFhQmF550JzgoMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0Fql05hs8YXgjepE7Xhz/cxP9a1+eoyB0oUmynBhbxw=;
 b=JvjNCc7VuZtbQfnJMoD07KzES5qIdZp8+xqzDsHfRog5t/gsIRQ080FXK2Yz8damjCYWJ/gRngmCWJEo+iMLnJInrZeAQauh8S2osN0yyfRMoI08Q2AxbHrA3l8iNLJgXZt3eZDyXHD9lUYFt0BepBBUWzXq6oYjq0ufZvm7NO0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][RFC PATCH v2 04/12] libfdt: Add fdt_ prefix to overlay_get_target()
Date: Mon, 8 Nov 2021 23:02:19 -0800
Message-ID: <1636441347-133850-5-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4c742b77-b06e-4ddd-5241-08d9a34ef96b
X-MS-TrafficTypeDiagnostic: BYAPR02MB4215:
X-Microsoft-Antispam-PRVS:
	<BYAPR02MB4215995403F3D6F2E3B30383BC929@BYAPR02MB4215.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	HJ6phTSI/Gijv0Ww1XTUIN83/EGjiM0a19/68+rSWLFmWq58diQPM9taCgYW588TY1aKPvBBUyAd105VfF+In8sngwJmBvFR72yIp95FRW9HEdLyKlre35G8W4pxWc7GxbolqC88bmtTqSUJtSgs0HNuKOtxZrlQNiyP6pyRgO8P2iHjo+jMKkqAdoHZc5j3cWVzA/j0c7AmfH7Tfu+/0XJr3b+gib048unvygYR26qSaropagRovYBBno/7J0BqGKvhYFdiQpxAv4eOSK6m98L/DEz1P+gZll/N7llsE+k7JtTvfPGB7eL0pO7ADEzmuSTNExdg9eJMLv8tVvd8kVXt2JOXtXPPhsUbqUDyLCKYNSTLEQv+jTQ9NkkmcGsrOrbWazWzC9TL3H+UI8Kx7aRCjDgl/B0RM8lbaTgFl+pnP+/5jMi4iLfQ5jifEVVHHhkAr35iBU+VMFewAfiQeIF3Pruqd1XKyiS6dM+oJ+IHDyBpJlc1+wdPxAouCYaPEt7oXw5fyYYihUnftPENPpuMKWfJ9K+vmsWcs16CAREaAO1tloB1gPF6Vz02PR61WN9v3ehEtrm5v4eC816lPMTVUwphVEvicVQ74XkAfWb2ddaKAw59HwJkatJGCehTDEEPiBV6iR8TuLaYp94ipr8DyZenRT1IZuyLwT2hRcVIMSAsA/Kbmd5KZJi3p/B8HSHYEOeFYyFye8zwrbngevBz1B2Py3uTHqEVj7Oxl3A=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(7696005)(4326008)(2616005)(186003)(356005)(5660300002)(8936002)(36906005)(508600001)(107886003)(8676002)(82310400003)(47076005)(70206006)(316002)(54906003)(70586007)(426003)(9786002)(6916009)(83380400001)(36756003)(7636003)(336012)(6666004)(36860700001)(26005)(2906002)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:03:03.6132
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c742b77-b06e-4ddd-5241-08d9a34ef96b
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR02MB4215

Add fdt_ prefix to overlay_get_target() and remove static type. This is done to
get the target path for all the overlay nodes. This is useful to find which
nodes are to be added/removed in dt_host.

Also, sending this patch to dtc mailing list to avoid the divergence.

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/libfdt/fdt_overlay.c | 12 ++++++------
 xen/include/xen/libfdt/libfdt.h |  3 +++
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
index 7b95e2b..194f51b 100644
--- a/xen/common/libfdt/fdt_overlay.c
+++ b/xen/common/libfdt/fdt_overlay.c
@@ -42,13 +42,13 @@ static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
 }
 
 /**
- * overlay_get_target - retrieves the offset of a fragment's target
+ * fdt_overlay_get_target - retrieves the offset of a fragment's target
  * @fdt: Base device tree blob
  * @fdto: Device tree overlay blob
  * @fragment: node offset of the fragment in the overlay
  * @pathp: pointer which receives the path of the target (or NULL)
  *
- * overlay_get_target() retrieves the target offset in the base
+ * fdt_overlay_get_target() retrieves the target offset in the base
  * device tree of a fragment, no matter how the actual targeting is
  * done (through a phandle or a path)
  *
@@ -56,7 +56,7 @@ static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
  *      the targeted node offset in the base device tree
  *      Negative error code on error
  */
-static int overlay_get_target(const void *fdt, const void *fdto,
+int fdt_overlay_get_target(const void *fdt, const void *fdto,
 			      int fragment, char const **pathp)
 {
 	uint32_t phandle;
@@ -638,7 +638,7 @@ static int overlay_merge(void *fdt, void *fdto)
 		if (overlay < 0)
 			return overlay;
 
-		target = overlay_get_target(fdt, fdto, fragment, NULL);
+		target = fdt_overlay_get_target(fdt, fdto, fragment, NULL);
 		if (target < 0)
 			return target;
 
@@ -781,7 +781,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
 			return -FDT_ERR_BADOVERLAY;
 
 		/* get the target of the fragment */
-		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+		ret = fdt_overlay_get_target(fdt, fdto, fragment, &target_path);
 		if (ret < 0)
 			return ret;
 		target = ret;
@@ -803,7 +803,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
 
 		if (!target_path) {
 			/* again in case setprop_placeholder changed it */
-			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+			ret = fdt_overlay_get_target(fdt, fdto, fragment, &target_path);
 			if (ret < 0)
 				return ret;
 			target = ret;
diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
index c71689e..1f549d0 100644
--- a/xen/include/xen/libfdt/libfdt.h
+++ b/xen/include/xen/libfdt/libfdt.h
@@ -2115,6 +2115,9 @@ int fdt_overlay_apply(void *fdt, void *fdto);
 
 const char *fdt_strerror(int errval);
 
+int fdt_overlay_get_target(const void *fdt, const void *fdto, int fragment,
+                           char const **pathp);
+
 #ifdef __cplusplus
 }
 #endif
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223705.386595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9z-0002cj-P3; Tue, 09 Nov 2021 07:03:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223705.386595; Tue, 09 Nov 2021 07:03:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkL9z-0002bV-Eq; Tue, 09 Nov 2021 07:03:11 +0000
Received: by outflank-mailman (input) for mailman id 223705;
 Tue, 09 Nov 2021 07:03:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9x-00004s-P0
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:03:09 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062f.outbound.protection.outlook.com
 [2a01:111:f400:7e88::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17876806-412b-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 08:03:07 +0100 (CET)
Received: from SN7PR04CA0165.namprd04.prod.outlook.com (2603:10b6:806:125::20)
 by DM6PR02MB3963.namprd02.prod.outlook.com (2603:10b6:5:95::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 07:03:04 +0000
Received: from SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:125:cafe::98) by SN7PR04CA0165.outlook.office365.com
 (2603:10b6:806:125::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.16 via Frontend
 Transport; Tue, 9 Nov 2021 07:03:04 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0011.mail.protection.outlook.com (10.97.5.171) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:03:04 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:48 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:48 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9c-000Ga6-Kr; Mon, 08 Nov 2021 23:02:48 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17876806-412b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GjDJCREnjc/R3Tgtz+/Ide2ELBuw5EczeKdxmP8JaMqSj60ITmzEV4vZ2ke0ryS9fvMODllPwI+9mjGQtWNNzJM3R8bhUmHGQDJklWUVH7KxPGx2IvDq0S1ToF01lWvNlMkKFShFcGvyVUB/slMovKV0bwTisyBmDv86c6cdJw/hc5AdV2DT4ByLWT689lFzt08LpPUEU8wRDHtMjDtP2epFT3LFIYZyON3Gr+NqEkuUfMxWqKisAUnaWnWTFOCwAOQxgws7a1EcWXhV8Ggd7CE3uyQ5SLNftyJgw8EL+5Ts9Vgw9SN5qHNJs+C1NObzopeQR5b7FElXnTUPBE1mXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3epwOTRbTwCC6qELaH9f3CNhp6wdSrPjn5h5Ob5r4mE=;
 b=bDLg5XDWi4QE7QCucKw8Xjk6ueACZb1/dQW5Zbp6CVfStiX/araOeiznCQNCs4bwLfZkMhCACkU2bH9PQPR7QneYJakvo+yvszNNQidbnDd0u/fDNv1uBZaY1GqK2GgoURL8eC9UZZAFvNDaYtKbxCc7qfdkuvIpbeGqlKxNLRPr7l8V03ELvg9g2iz3krdIpk6OqAvMKKC89gBLV+dPvQehEfGRqtZviL7Pm+6Km5RVEy/1ZhCo8DieECGMlw88sY9KjNLW/KLi0fPQqCAIru8kraehB40W/f93a3IQKoLd88lJx+Jmhnnjrpiec7iUGAjzmruYnf4QM2Q/EOTmKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3epwOTRbTwCC6qELaH9f3CNhp6wdSrPjn5h5Ob5r4mE=;
 b=TxrDKZAIME9NJR0cWlLT4ctjAE74CiYkWv0cLU7PuV8BmqnobU9beEmuEASgIZoUdEpuc/soH4uZVd+76LC38TpmvyLCyezjWwuxqsx1fKr2NOiTgFXr8J6n3gvZLY41KRl3QjwRt6QOoFxVwob+z6cmet46f11Dv36KKin07po=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>, Jan
 Beulich <jbeulich@suse.com>, Paul Durrant <paul@xen.org>
Subject: [XEN][RFC PATCH v2 07/12] xen/smmu: Add remove_device callback for smmu_iommu ops
Date: Mon, 8 Nov 2021 23:02:22 -0800
Message-ID: <1636441347-133850-8-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b09a1caf-13d6-416d-378a-08d9a34ef9fc
X-MS-TrafficTypeDiagnostic: DM6PR02MB3963:
X-Microsoft-Antispam-PRVS:
	<DM6PR02MB3963CB23A3465E4254EB9FC6BC929@DM6PR02MB3963.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	IfA09W3pIEgPQT6Hcxe9ccp+O+2bbYG1KKLGfosynnytPwctXLEZtKRFR4lZM7G+Ug3GZWJlTZt4AYX+pFLDxbyQABhIHriBPR/SF+rGS8xJGZeJ68NtgDETCNZ0EYEhTHmrvf5jXgBvhIdtyatPdGpVroJID1UjqibLRJmQtowkapowhAbKGECukusIIkqvyuwiadJFoxv/wNf4SRq4FQbFVCh9eY8RcgbG8WIC2Jf5AKT+92sB2iNTwxNiC3JWDLJdfsG6WH6XuUEGTT8ynSyLOWTwl4RUbQTqaZJ6YSzsFfPwx9hijT0Ec3u643XkP8bwsIdtBWxSyubTwLBzBiY25BAF5TXcL4jTkBAdKby2f3IgSn8+2ijRi8UEc3NYdiqaY8EuAjpTky/IlAgwtAY/1hLtgHaFH5I9hDe9opCdcqrNKKrO/VpWYB/qkt0W8n9vwm0Gf8W65C5k40nv+O6XB2Qy0D41dY0eym6yeBqQXPlGOWtqdOUq5lXjHXV/x2iwBdsYRt2Eoso6aN67aQCuJU4HSUO+/QAiq3mCflNpj2XHxphxhx246nL/cYbWJU6wJgSGmT7teeq70zdsg45UBxbdL5d5TE7JCTq8RuR6wCrzkrwz9kcAeUVGGbL/jn3FyP43p2srP1mCJQN4y8NWqHNTN1Bi/YvTqX/iqwgIZOCmBIeWLzgUfOSq5P7b0137OKmqJBFcAIwtcR9scdEdiNFyPe/B4bqsuE6c+oc=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(36906005)(7636003)(36860700001)(8936002)(47076005)(54906003)(316002)(82310400003)(2616005)(70586007)(2906002)(426003)(508600001)(70206006)(6916009)(9786002)(36756003)(5660300002)(186003)(7696005)(4326008)(8676002)(26005)(356005)(336012)(6666004)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:03:04.5628
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b09a1caf-13d6-416d-378a-08d9a34ef9fc
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB3963

Add remove_device callback for removing the device entry from smmu-master using
 following steps:
    1. Find if SMMU master exists for the device node.
    2. Remove the SMMU master

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/drivers/passthrough/device_tree.c | 30 ++++++++++++++++++++++++++++++
 xen/include/xen/iommu.h               |  2 ++
 2 files changed, 32 insertions(+)

diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
index 98f2aa0..9d9eed8 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -127,6 +127,36 @@ int iommu_release_dt_devices(struct domain *d)
     return 0;
 }
 
+int iommu_remove_dt_device(struct dt_device_node *np)
+{
+    const struct iommu_ops *ops = iommu_get_ops();
+    struct device *dev = dt_to_dev(np);
+    int rc;
+
+    if ( !ops )
+        return -EOPNOTSUPP;
+
+    if ( iommu_dt_device_is_assigned(np) )
+        return -EPERM;
+
+    /*
+     * The driver which supports generic IOMMU DT bindings must have
+     * these callback implemented.
+     */
+    if ( !ops->remove_device )
+        return -EOPNOTSUPP;
+
+    /*
+     * Remove master device from the IOMMU if latter is present and available.
+     */
+    rc = ops->remove_device(0, dev);
+
+    if ( rc == 0 )
+        iommu_fwspec_free(dev);
+
+    return rc;
+}
+
 int iommu_add_dt_device(struct dt_device_node *np)
 {
     const struct iommu_ops *ops = iommu_get_ops();
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 6b2cdff..c4d5d12 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -215,6 +215,8 @@ int iommu_release_dt_devices(struct domain *d);
  */
 int iommu_add_dt_device(struct dt_device_node *np);
 
+int iommu_remove_dt_device(struct dt_device_node *np);
+
 int iommu_do_dt_domctl(struct xen_domctl *, struct domain *,
                        XEN_GUEST_HANDLE_PARAM(xen_domctl_t));
 
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223706.386601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLA0-0002js-Rq; Tue, 09 Nov 2021 07:03:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223706.386601; Tue, 09 Nov 2021 07:03:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLA0-0002iU-6s; Tue, 09 Nov 2021 07:03:12 +0000
Received: by outflank-mailman (input) for mailman id 223706;
 Tue, 09 Nov 2021 07:03:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkL9y-0008WR-9o
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:03:10 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20622.outbound.protection.outlook.com
 [2a01:111:f400:7e89::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16e6771a-412b-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 08:03:08 +0100 (CET)
Received: from SN7PR04CA0027.namprd04.prod.outlook.com (2603:10b6:806:f2::32)
 by CH0PR02MB8044.namprd02.prod.outlook.com (2603:10b6:610:109::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Tue, 9 Nov
 2021 07:03:04 +0000
Received: from SN1NAM02FT0031.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:f2:cafe::d4) by SN7PR04CA0027.outlook.office365.com
 (2603:10b6:806:f2::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 07:03:04 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0031.mail.protection.outlook.com (10.97.4.64) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:03:04 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:49 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:49 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9d-000Ga6-3A; Mon, 08 Nov 2021 23:02:49 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16e6771a-412b-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NLKTknKUGdV3u1bhtKqciqvKEMP7s69m4HNBPHGQIROUB89SHBEshxFBqTKLTA2HP+nZicVrArr/XSDaRuZCurC5/SDd/W+iTwwala50FPMI9imZ0dnAIweVCoZDeq1emrWYup3BTczFX+oZKVtKKthsx/wzXC+sVojOQOcYMZf+R09spsAfA5bIWn5PwVZZq15Bc8SW3XzRO93Tc6D756oN0qvHzswe/7kAy/MJUPylit2eIBk6ZSaO69TBlSYyz4rexx9y8aAxhHY9zwDA6OTv8IN8HnsiZ+QXQZFxYyECLTC3S/kwjH0EQRkQd3nmTgjcfIRnU5jFeRnuIR4QjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hD5keOeFhUtsoqEKF+D/RnMWmS5ZQuiG1eIV46VPO5I=;
 b=S28iiMACvtbTsTKg84ZaiXVgLuBW0b/jQIoiqt9EASW0pdTKcbhnFnmh43VnJzl2wEZILRVZbtT7OcADKtvFzTg3xlfRQxVSp9/yFTKdAi8P++d1a7f0KSYHpoC3G0413NVy1RsXdpWML37SfyWCk3KKDw0L0toLnzE9io89itJ7eg2OBo4xGBTH3/YBsaTcEOgTq5pNUqekyo8bciwcW+xN4QtZE1ClNVf4JNVPAoncHG/Y0Z4oPVr7aVZKkur1dubR5mC+krEXEcisblhxqzeAy3n84KB/DgFsu1MgHSOM90kP5ZVVYoxQPn9VOOJdyT0T/GAOifyAnWZKaFOfVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hD5keOeFhUtsoqEKF+D/RnMWmS5ZQuiG1eIV46VPO5I=;
 b=rjOr//JTwrR/ccLrVM4ixIUPr5qT0KkkgfLiHCt3pjLi5iTmSrmfHCgapV50I747Z4U9WZsL1453ELki3pBjSiL1Xg92iUylHc6uATkA7O4xwaYPfYv3UivjAG2GTJkET9fG1OmdaNUy6HYUfdgJ+W84EeUe5aVrmfvJWDtF0HY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Wei Liu
	<wl@xen.org>
Subject: [XEN][RFC PATCH v2 08/12] xen/arm: Implement device tree node removal functionalities
Date: Mon, 8 Nov 2021 23:02:23 -0800
Message-ID: <1636441347-133850-9-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fd9ba6e1-7297-4d8f-c5b9-08d9a34ef9fe
X-MS-TrafficTypeDiagnostic: CH0PR02MB8044:
X-Microsoft-Antispam-PRVS:
	<CH0PR02MB80447BFB1BB370B490FDDECFBC929@CH0PR02MB8044.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:298;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	SFYEBkJYZozvnwaXiSQsFzc4T+7fchNCtRzwKidmRDLXLBby8EuklegjHhsj9wNLTzdVqnY7rcoF85whMoUAQST8F9wp89yjBKKaCz46F8Zze3QGROux4XddC3z+NGAfuQJB6bWrGipCrYgGZ4r59CuTI8tnBiKkzK3dwk9GSKglX0wafWwLLVmFirli46/8vK2o8527qslovEoSNkN7qRM7J6hA+5q6NK3lCkBrFY5iizh4PSVHJwlQNxIcXE5+955LSOTVttUBiBBGZUq65VDVMJixnJwMkkNtJn91BR8GKxUvkFYRRq7FshfnlCuJJL2B+9DXYcYTXyGs23Yi3yz11KIGzL8KZ2gF0biPNf6hWQ+EY3qBCFOFuljDLxs1onzlu7B9yEqAo5Ec9YMs8hUVl3qbhjvqSfpcWe5Fij4rI81XZdncgj5t4ggk4QeXgmeWAfwiCwmhSy5E7mRGYfl0T9mWFXQcL3Th+rihpJkPfbkD3lZ1zr6M3MRTJyyOzKfTKgWz2jtXVg+GnYnPXmtj7TxR9XiB2fu2fyeo0LlVSbfIJcGZ0xnFsUm9p3ZM0Jb5F3qSyw1VbJL5q2OiLy1oVR3F3uYGmCRMxizYcql+o2wWEiPuvx25uJmq2Q0yVj2pWviiLh7Stn5fyfoZvQHwp75DgQeLiB1NQXUZfF1TNp9uGV1wuEGzYsDnC4J/kKgQmktRJgU59z12DqWJKk6qOdrsHVQhBCyUbkdiFcoS29QvbX9Prgtb+b9Ls/Tx
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(36906005)(36860700001)(82310400003)(5660300002)(54906003)(356005)(316002)(30864003)(186003)(26005)(8676002)(47076005)(6916009)(83380400001)(70206006)(70586007)(7416002)(7696005)(8936002)(336012)(6666004)(4326008)(2616005)(508600001)(426003)(36756003)(2906002)(7636003)(9786002)(102446001)(403724002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:03:04.5806
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fd9ba6e1-7297-4d8f-c5b9-08d9a34ef9fe
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0031.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR02MB8044

Introduce sysctl XEN_SYSCTL_overlay to remove device-tree nodes added using
device tree overlay.

xl overlay remove file.dtbo:
    Removes all the nodes in a given dtbo.
    First, removes IRQ permissions and MMIO accesses. Next, it finds the nodes
    in dt_host and delete the device node entries from dt_host.

    The nodes get removed only if it is not used by any of dom0 or domus. If
    even one of the node in dtbo is not available for removal i.e. either not
    there in dt_host or currently used by any domain, in that case we don't
    remove any node in the given dtbo.

Also, added overlay_track struct to keep the track of added node through device
tree overlay. overlay_track has dt_host_new which is unflattened form of updated
fdt and name of overlay node. When a node is removed, we also free the memory
used by overlay_track for the particular overlay node.

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/device_tree.c      |  53 ++++++
 xen/common/sysctl.c           | 372 ++++++++++++++++++++++++++++++++++++++++++
 xen/include/public/sysctl.h   |  23 +++
 xen/include/xen/device_tree.h |   4 +
 4 files changed, 452 insertions(+)

diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index 26d2e28..19320e1 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -385,6 +385,59 @@ void dt_print_node_names(struct dt_device_node *dt)
     return;
 }
 
+#if defined (CONFIG_OVERLAY_DTB)
+int overlay_remove_node(struct dt_device_node *device_node)
+{
+    struct dt_device_node *np;
+    struct dt_device_node *parent_node;
+    struct dt_device_node *current_node;
+
+    parent_node = device_node->parent;
+
+    current_node = parent_node;
+
+    if ( parent_node == NULL )
+    {
+        dt_dprintk("%s's parent node not found\n", device_node->name);
+        return -EFAULT;
+    }
+
+    np = parent_node->child;
+
+    if ( np == NULL )
+    {
+        dt_dprintk("parent node %s's not found\n", parent_node->name);
+        return -EFAULT;
+    }
+
+    /* If node to be removed is only child node or first child. */
+    if ( np->name == device_node->name )
+    {
+        current_node->allnext = np->next;
+        return 0;
+    }
+
+    for ( np = parent_node->child; np->sibling != NULL; np = np->sibling )
+    {
+        current_node = np;
+        if ( np->sibling->name == device_node->name )
+        {
+            /* Found the node. Now we remove it. */
+            current_node->allnext = np->allnext->allnext;
+
+            if ( np->sibling->sibling )
+                current_node->sibling = np->sibling->sibling;
+            else
+                current_node->sibling = NULL;
+
+            break;
+        }
+    }
+
+    return 0;
+}
+#endif
+
 int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
                           struct dt_device_node **node)
 {
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index f2dab72..fca47f5 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -28,6 +28,311 @@
 #include <xen/livepatch.h>
 #include <xen/coverage.h>
 
+#if defined (CONFIG_OVERLAY_DTB)
+#include <xen/list.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/xmalloc.h>
+#include <xen/device_tree.h>
+#include <asm/domain_build.h>
+#endif
+
+#if defined (CONFIG_OVERLAY_DTB)
+static LIST_HEAD(overlay_tracker);
+static DEFINE_SPINLOCK(overlay_lock);
+
+/*
+ * overlay_node_track describes information about added nodes through dtbo.
+ * @dt_host_new: Pointer to the updated dt_host_new unflattened 'updated fdt'.
+ * @node_fullname: Store the name of nodes.
+ * @entry: List pointer.
+ */
+struct overlay_track {
+    struct list_head entry;
+    struct dt_device_node *dt_host_new;
+    char **node_fullname;
+    uint8_t num_nodes;
+};
+
+/* Basic sanity check for the dtbo tool stack provided to Xen. */
+static int check_overlay_fdt(void *overlay_fdt, uint32_t overlay_fdt_size)
+{
+    if ( (fdt_totalsize(overlay_fdt) != overlay_fdt_size) ||
+          fdt_check_header(overlay_fdt) )
+    {
+        printk(XENLOG_ERR "The overlay FDT is not a valid Flat Device Tree\n");
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
+static int overlay_node_count(void *fdto)
+{
+    int num_overlay_nodes = 0;
+    int fragment;
+
+    fdt_for_each_subnode(fragment, fdto, 0)
+    {
+
+        int subnode;
+        int overlay;
+
+        overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
+
+        fdt_for_each_subnode(subnode, fdto, overlay)
+        {
+            num_overlay_nodes++;
+        }
+    }
+
+    return num_overlay_nodes;
+}
+
+/*
+ * overlay_get_node_info will get the all node's full name with path. This is
+ * useful when checking node for duplication i.e. dtbo tries to add nodes which
+ * already exists in device tree.
+ */
+static void overlay_get_node_info(void *fdto, char ***node_full_path,
+                                  int num_overlay_nodes)
+{
+    int fragment;
+    int node_num = 0;
+
+    *node_full_path = xmalloc_bytes(num_overlay_nodes * sizeof(char *));
+
+    fdt_for_each_subnode(fragment, fdto, 0)
+    {
+        int target;
+        int overlay;
+        int subnode;
+        const char *target_path;
+
+        target = fdt_overlay_get_target(device_tree_flattened, fdto, fragment,
+                                    &target_path);
+        overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
+
+        fdt_for_each_subnode(subnode, fdto, overlay)
+        {
+            const char *node_name = fdt_get_name(fdto, subnode, NULL);
+            int node_name_len = strlen(node_name);
+            int target_path_len = strlen(target_path);
+            int node_full_name_len = target_path_len + node_name_len + 2;
+
+            (*node_full_path)[node_num] = xmalloc_bytes(node_full_name_len);
+
+            memcpy((*node_full_path)[node_num], target_path, target_path_len);
+
+            (*node_full_path)[node_num][target_path_len] = '/';
+
+            memcpy((*node_full_path)[node_num] + target_path_len + 1, node_name,
+                   node_name_len);
+
+            (*node_full_path)[node_num][node_full_name_len - 1] = '\0';
+
+            node_num++;
+        }
+    }
+}
+
+/*
+ * Checks if all the devices node listed are present in dt_host and used by any
+ * domain.
+ */
+static int check_nodes(char **full_dt_node_path, uint32_t num_nodes)
+{
+    int rc = 0;
+    unsigned int i;
+    struct dt_device_node *overlay_node;
+    uint32_t ret = 0;
+
+    for ( i = 0; i < num_nodes; i++ ) {
+        dt_dprintk("Finding node %s in the dt_host\n", full_dt_node_path[i]);
+
+        overlay_node = dt_find_node_by_path(full_dt_node_path[i]);
+
+        if ( overlay_node == NULL )
+        {
+            rc = -EINVAL;
+
+            printk(XENLOG_G_ERR "Device %s is not present in the tree."
+                   " Removing nodes failed\n", full_dt_node_path[i]);
+            return rc;
+        }
+
+        ret = dt_device_used_by(overlay_node);
+
+        dt_dprintk("Checking if node %s is used by any domain\n",
+                   full_dt_node_path[i]);
+
+        if ( ret != 0 && ret != DOMID_IO )
+        {
+            rc = -EINVAL;
+
+            printk(XENLOG_G_ERR "Device %s as it is being used by domain %d."
+                   " Removing nodes failed\n", full_dt_node_path[i], ret);
+            return rc;
+        }
+    }
+
+    return rc;
+}
+
+/* Remove nodes from dt_host. */
+static int remove_nodes(char **full_dt_node_path, uint32_t num_nodes)
+{
+    struct domain *d = hardware_domain;
+    int rc = 0;
+    struct dt_device_node *overlay_node;
+    unsigned int naddr;
+    unsigned int i, j, nirq;
+    struct dt_raw_irq rirq;
+    u64 addr, size;
+
+    for ( j = 0; j < num_nodes; j++ ) {
+        dt_dprintk("Removing node: %s\n", full_dt_node_path[j]);
+
+        overlay_node = dt_find_node_by_path(full_dt_node_path[j]);
+
+        nirq = dt_number_of_irq(overlay_node);
+
+        /* Remove IRQ permission */
+        for ( i = 0; i < nirq; i++ )
+        {
+            rc = dt_device_get_raw_irq(overlay_node, i, &rirq);
+            if ( rc )
+            {
+                printk(XENLOG_ERR "Unable to retrieve irq %u for %s\n",
+                       i, dt_node_full_name(overlay_node));
+                return rc;
+            }
+
+            rc = platform_get_irq(overlay_node, i);
+            if ( rc < 0 )
+            {
+                printk(XENLOG_ERR "Unable to get irq %u for %s\n",
+                       i, dt_node_full_name(overlay_node));
+                return rc;
+            }
+
+            rc = irq_deny_access(d, rc);
+            if ( rc )
+            {
+                printk(XENLOG_ERR "unable to revoke access for irq %u for %s\n",
+                       i, dt_node_full_name(overlay_node));
+                return rc;
+            }
+        }
+
+        rc = iommu_remove_dt_device(overlay_node);
+        if ( rc != 0 && rc != -ENXIO )
+            return rc;
+
+        naddr = dt_number_of_address(overlay_node);
+
+        /* Remove mmio access. */
+        for ( i = 0; i < naddr; i++ )
+        {
+            rc = dt_device_get_address(overlay_node, i, &addr, &size);
+            if ( rc )
+            {
+                printk(XENLOG_ERR "Unable to retrieve address %u for %s\n",
+                       i, dt_node_full_name(overlay_node));
+                return rc;
+            }
+
+            rc = iomem_deny_access(d, paddr_to_pfn(addr),
+                                   paddr_to_pfn(PAGE_ALIGN(addr + size - 1)));
+            if ( rc )
+            {
+                printk(XENLOG_ERR "Unable to remove dom%d access to"
+                        " 0x%"PRIx64" - 0x%"PRIx64"\n",
+                        d->domain_id,
+                        addr & PAGE_MASK, PAGE_ALIGN(addr + size) - 1);
+                return rc;
+            }
+        }
+
+        rc = overlay_remove_node(overlay_node);
+        if ( rc )
+            return rc;
+    }
+
+    return rc;
+}
+
+/*
+ * First finds the device node to remove. Check if the device is being used by
+ * any dom and finally remove it from dt_host. IOMMU is already being taken care
+ * while destroying the domain.
+ */
+static long handle_remove_overlay_nodes(char **full_dt_node_path,
+                                        uint32_t num_nodes)
+{
+    int rc = 0;
+    struct overlay_track *entry, *temp, *track;
+    bool found_entry = false;
+    unsigned int i;
+
+    spin_lock(&overlay_lock);
+
+    /*
+     * First check if dtbo is correct i.e. it should one of the dtbo which was
+     * used when dynamically adding the node.
+     */
+    list_for_each_entry_safe( entry, temp, &overlay_tracker, entry )
+    {
+        /* Checking the num of nodes first. If not same skip to next entry. */
+        if ( num_nodes == entry->num_nodes )
+        {
+            for( i = 0; i < num_nodes; i++ ) {
+                if( strcmp(full_dt_node_path[i], entry->node_fullname[i]) )
+                {
+                    /* Node name didn't match. Skip to next entry. */
+                    break;
+                }
+            }
+
+            /* Found one tracker with all node name matching. */
+            track = entry;
+            found_entry = true;
+            break;
+        }
+    }
+
+    if ( found_entry == false ) {
+        rc = -EINVAL;
+
+        printk(XENLOG_G_ERR "Cannot find any matching tracker with input dtbo."
+               " Removing nodes is supported for only prior added dtbo. Please"
+               " provide a valid dtbo which was used to add the nodes.\n");
+        goto out;
+
+    }
+
+    rc = check_nodes(full_dt_node_path, num_nodes);
+
+    if ( rc )
+        goto out;
+
+    rc = remove_nodes(full_dt_node_path, num_nodes);
+
+    if ( rc ) {
+        printk(XENLOG_G_ERR "Removing node failed\n");
+        goto out;
+    }
+
+    list_del(&entry->entry);
+    xfree(entry->node_fullname);
+    xfree(entry->dt_host_new);
+    xfree(entry);
+
+out:
+    spin_unlock(&overlay_lock);
+    return rc;
+}
+#endif
+
 long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 {
     long ret = 0;
@@ -476,6 +781,73 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
             copyback = 1;
         break;
 
+#if defined (CONFIG_OVERLAY_DTB)
+    case XEN_SYSCTL_overlay:
+    {
+        void *overlay_fdt;
+        char **node_full_path = NULL;
+        int num_overlay_nodes;
+
+        if ( op->u.overlay_dt.overlay_fdt_size > 0 )
+            overlay_fdt = xmalloc_bytes(op->u.overlay_dt.overlay_fdt_size);
+        else
+        {
+            ret = -EINVAL;
+            break;
+        }
+
+        if ( overlay_fdt == NULL )
+        {
+            ret = -ENOMEM;
+            break;
+        }
+
+        ret = copy_from_guest(overlay_fdt, op->u.overlay_dt.overlay_fdt,
+                             op->u.overlay_dt.overlay_fdt_size);
+        if ( ret )
+        {
+            gprintk(XENLOG_ERR, "copy from guest failed\n");
+            xfree(overlay_fdt);
+
+            ret = -EFAULT;
+            break;
+        }
+
+        if ( op->u.overlay_dt.overlay_op == XEN_SYSCTL_DT_OVERLAY_ADD )
+        {
+            ret = handle_add_overlay_nodes(overlay_fdt,
+                                           op->u.overlay_dt.overlay_fdt_size);
+        } else if ( op->u.overlay_dt.overlay_op ==
+                                        XEN_SYSCTL_DT_OVERLAY_REMOVE )
+        {
+            ret = check_overlay_fdt(overlay_fdt,
+                                    op->u.overlay_dt.overlay_fdt_size);
+            if ( ret )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            num_overlay_nodes = overlay_node_count(overlay_fdt);
+            if ( num_overlay_nodes == 0 )
+            {
+                ret = -ENOMEM;
+                break;
+            }
+
+            overlay_get_node_info(overlay_fdt, &node_full_path,
+                                  num_overlay_nodes);
+
+            ret = handle_remove_overlay_nodes(node_full_path,
+                                              num_overlay_nodes);
+        }
+
+        xfree(node_full_path);
+
+        break;
+    }
+#endif
+
     default:
         ret = arch_do_sysctl(op, u_sysctl);
         copyback = 0;
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 3e53681..6624724 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -1065,6 +1065,25 @@ typedef struct xen_sysctl_cpu_policy xen_sysctl_cpu_policy_t;
 DEFINE_XEN_GUEST_HANDLE(xen_sysctl_cpu_policy_t);
 #endif
 
+#if defined (CONFIG_OVERLAY_DTB)
+#define XEN_SYSCTL_DT_OVERLAY_ADD                   1
+#define XEN_SYSCTL_DT_OVERLAY_REMOVE                2
+
+/*
+ * XEN_SYSCTL_overlay
+ * Performs addition/removal of device tree nodes under parent node using dtbo.
+ * This does in three steps:
+ *  - Adds/Removes the nodes from dt_host.
+ *  - Adds/Removes IRQ permission for the nodes.
+ *  - Adds/Removes MMIO accesses.
+ */
+struct xen_sysctl_overlay_dt {
+    XEN_GUEST_HANDLE_64(void) overlay_fdt;
+    uint32_t overlay_fdt_size;  /* Overlay dtb size. */
+    uint8_t overlay_op; /* Add or remove. */
+};
+#endif
+
 struct xen_sysctl {
     uint32_t cmd;
 #define XEN_SYSCTL_readconsole                    1
@@ -1095,6 +1114,7 @@ struct xen_sysctl {
 #define XEN_SYSCTL_livepatch_op                  27
 /* #define XEN_SYSCTL_set_parameter              28 */
 #define XEN_SYSCTL_get_cpu_policy                29
+#define XEN_SYSCTL_overlay                       30
     uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */
     union {
         struct xen_sysctl_readconsole       readconsole;
@@ -1125,6 +1145,9 @@ struct xen_sysctl {
 #if defined(__i386__) || defined(__x86_64__)
         struct xen_sysctl_cpu_policy        cpu_policy;
 #endif
+#if defined (CONFIG_OVERLAY_DTB)
+        struct xen_sysctl_overlay_dt       overlay_dt;
+#endif
         uint8_t                             pad[128];
     } u;
 };
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 5ba26a0..cf29cf5 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -553,6 +553,10 @@ int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
  */
 void dt_print_node_names(struct dt_device_node *dt);
 
+#if defined (CONFIG_OVERLAY_DTB)
+int overlay_remove_node(struct dt_device_node *device_node);
+#endif
+
 /**
  * dt_get_parent - Get a node's parent if any
  * @node: Node to get parent
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223711.386614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLA3-0003NT-3D; Tue, 09 Nov 2021 07:03:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223711.386614; Tue, 09 Nov 2021 07:03:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLA2-0003Lp-P3; Tue, 09 Nov 2021 07:03:14 +0000
Received: by outflank-mailman (input) for mailman id 223711;
 Tue, 09 Nov 2021 07:03:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkLA0-00004s-PF
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:03:12 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060e.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 190b3351-412b-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 08:03:11 +0100 (CET)
Received: from SN7PR04CA0171.namprd04.prod.outlook.com (2603:10b6:806:125::26)
 by CY4PR0201MB3619.namprd02.prod.outlook.com (2603:10b6:910:8c::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Tue, 9 Nov
 2021 07:03:06 +0000
Received: from SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:125:cafe::6) by SN7PR04CA0171.outlook.office365.com
 (2603:10b6:806:125::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 07:03:05 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0011.mail.protection.outlook.com (10.97.5.171) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:03:05 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:51 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:46 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9a-000Ga6-5E; Mon, 08 Nov 2021 23:02:46 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 190b3351-412b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Uw2mqBsT/podGjo0e4HbCsdiW99Hcw1Rt7XMZeEqG8hiSpWp2PK8IWmbj3DFma3PwGORhy5E4fgRITB/e1XvHwzFH/uzxJd7i0ENemAXq20Oblr7gDYPjLpMW4EN3A1m0W6eKlkrf7a0XN2/pxlxN6gXitXdW2j/l+w1xVAYnCWZ9e6ibM8+xIx7cDJq3uEio8EuMKRWThKWTOG7weO6xWLgzPKlwYkL74hnzLdltRIJ4wlC+Tiuykx62S6qhB5FXP1r5wdo8sT9f+XYAEuJlFP0AQnvhQw57Ib4Oe0nYsj4/+5yiHIM8WTe74HsFES9y8yoIhvp5UeLLEZIkxA0LQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8VaOJ+8GZMWgZHrNqEq58Dkcy6TjJZGMbhhxpS2T/S8=;
 b=S/JTK4k0UjCFIQrN5hMZyZDlKfODoOXA828h/j6lDJhQ9+MIkPb5VXNzECkNRB3apLOohJKO0vGfoSVbRkoXVRd/NVGOowDsw9BoAV1GeaCaVEtqQKVRM7DSmWWEQMDUDo9nPNSvoGuNqcbpi/OquGha/NtTcd7T20uCgBwgPT7FUd65lWsol3rZ2lpw+P8YGEFAvp2T/LccMC03zWE8acI4wgyAD1wJ1Agt79wgLXx/WzIyKgOyLvIwVehXAx7ZtWHoSAt4pfWETXXDymSFlx4OfrxzxWhPVcPhlalSOI0fwx8FMY3XAGgVLDv1Ijfo38/NriSGXDLoWMfb4MUvfg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8VaOJ+8GZMWgZHrNqEq58Dkcy6TjJZGMbhhxpS2T/S8=;
 b=se8QdvxRM1TifQvWktH8CQlke+U+gReTn/oD3IJ3h8sEEv+7TNqMWDXLLUtbQTroSxhMcyp3v+74zs+gs9oVmq9ajpimEr6LSGLE2PNchcMxT86w6ICOBaHfMVcixURIXEBE19YtC9vyAx+KdSNhWO8mnLWtfgHSlzfCJTodyJU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN][RFC PATCH v2 02/12] xen: arm: Add CONFIG_OVERLAY_DTB
Date: Mon, 8 Nov 2021 23:02:17 -0800
Message-ID: <1636441347-133850-3-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d47c434a-1be6-4998-83d0-08d9a34efaae
X-MS-TrafficTypeDiagnostic: CY4PR0201MB3619:
X-Microsoft-Antispam-PRVS:
	<CY4PR0201MB36191C99BB3778A8097F2099BC929@CY4PR0201MB3619.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:419;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	aXnyCKOHAw8E+QF0/lfWdljerbM5thMYCcyCqHzO33D19myJNrXe/Djn+pleYNT9wJ5Qh6OluB96HA8rIeslJMucqRws6koL9t66uE8HQv7ib10v0UEcealb6+jEfg8pxUqWrPZOjjRuVubSuSO2+TSxlWxtebpMB6kY9xw/Kd1akLhbTyqXw3Y1u5weDdyBuduGQE3NUJKk/kj7aB/QrEVB2WgSq9cWgch9YVujn7/agPYmgPObx37oYbX62mO1DYgfsZMd+kCt25567JXJtSQuYue0uARjzVone9qGiAIPx9h0VexyKGdVnJKysWB18NUhvir3Iwa6tte/7AUEahZQ+83IGK1Ke1+nsA2RHobJibgvlo8+C3b7b2oUS8+ShKjCfbZCzjqIaYOgkrB8v9KNggZ7NmUHBJlHsYNPePbBvOY8dTblfDnfj48mLrfmcfzCfdgXLRIOoLMXEXnfSKmgDsgER0GlZhv+23zilFwsikfVCNsu92ddNnavVEVCRto8iY24ZwZJ6o14Cd9bQRj/AVHHCbEsQlabD9Pme19dVFsallXHBo2qwOpknS70s3NtNKmUXvYPx6rzSLDVAJkJWnWx+G7lZMYe25Rs4tGzrWJklwd46n1CEGJY7OeCc9HseWY+NmdFoF/1tAyhC7DQZVE7DCp8UPG/CVdiC9PqhIHmfUyG0GANu2WIM3AYoU9ZBowQT0zia6QCyHJYxdSaViRFtr/+ieiNr04S6x0=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(8676002)(6916009)(186003)(47076005)(26005)(6666004)(356005)(426003)(2906002)(2616005)(70206006)(70586007)(7636003)(336012)(9786002)(4744005)(5660300002)(7696005)(4326008)(8936002)(82310400003)(508600001)(316002)(36860700001)(36906005)(36756003)(54906003)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:03:05.7303
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d47c434a-1be6-4998-83d0-08d9a34efaae
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR0201MB3619

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/arch/arm/Kconfig | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index ecfa682..895f0ee 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -46,6 +46,14 @@ config HAS_ITS
         bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORTED
         depends on GICV3 && !NEW_VGIC
 
+config OVERLAY_DTB
+    depends on MPSOC_PLATFORM
+    bool "Enable DTB overlay"
+    default y
+    ---help---
+
+    Allows dynamic addition/removal of Xen device tree nodes using a dtbo.
+
 config HVM
         def_bool y
 
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223712.386622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLA4-0003YR-AM; Tue, 09 Nov 2021 07:03:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223712.386622; Tue, 09 Nov 2021 07:03:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLA3-0003Ug-He; Tue, 09 Nov 2021 07:03:15 +0000
Received: by outflank-mailman (input) for mailman id 223712;
 Tue, 09 Nov 2021 07:03:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkLA1-0008WR-9S
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:03:13 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20620.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1925f301-412b-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 08:03:10 +0100 (CET)
Received: from SN7PR04CA0015.namprd04.prod.outlook.com (2603:10b6:806:f2::20)
 by DM6PR02MB4745.namprd02.prod.outlook.com (2603:10b6:5:fd::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov
 2021 07:03:05 +0000
Received: from SN1NAM02FT0031.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:f2:cafe::3e) by SN7PR04CA0015.outlook.office365.com
 (2603:10b6:806:f2::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Tue, 9 Nov 2021 07:03:05 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0031.mail.protection.outlook.com (10.97.4.64) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:03:05 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:50 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:50 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9e-000Ga6-0h; Mon, 08 Nov 2021 23:02:50 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1925f301-412b-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VzW/NvmKvxmoNPyLTIGLQP//Vgg0VZ9k9PQx2XDXegxBcyUrSX/ppez/Jzcaxaj/1FGjmz/shZv9o46DNs0r2ppsPyT28M/Ip3AdGU18DHoais+/fS7eq/mQ/Uj7pMal4QbymqKH6fZXuwpYDnMmhqditHGPHDewMv/0OSXD9KX16bWM1TVFvBd7R6Qs1eLPlHF/LwBIbu9Xqw2OYn4y7CKdEQI6V5WCdEGM1hmVzdd/BAVaiWYyN/i5YUwFm3jIL5bXM4mpqxPSVj7/kkZkieLT3ldtFkGX/zVvzpFI0KmX3er6MOz0Q5yDtxEGfJ595luABKQpJyls0VRZxMfSyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ujbtJPA/WbrVfjNedBqDlhpazGXXQ7bSk/0Y/imNNWc=;
 b=dSb3QIHFXr4lVL7bZrkCzIJ8X8vQuKyKwbbNf222PAnK6zAljM4Ypg62axnnYdkxFCtDC6JvpZgNTCzLfpADKHpPgLvAo/510dJ5e9Q6vLV6HBdKkfqhsbLSpPE5od0dFL9Oj3rukP/LtvQVG/ZEgxUYgHp+C2tOW/Crig4FDmH5GKBUgdHg6Q6yog5jv745CPoyy77Y9ySQ0WSHFqDIM3K+NN53WUJMYFxcNetI0VcdWe0hFrAoImnDfHcjl4qRm4T04EiZrXrubBxMSuxN+n2Sr1SoHXjDzp3Wv2JWmKuik9seT9eR47l9teRR1Z0EPH9rp5RCC9Tc9IDRtGz5Jg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ujbtJPA/WbrVfjNedBqDlhpazGXXQ7bSk/0Y/imNNWc=;
 b=EaXIpKaw8LiRQAXNY/d3rksmbHF/nVKJ1/5IJ2keLcDa8934QTeqCUoNaD/5SIMPBSM/7E+3o4zj0A0Njr/RihgEeVyXrt9mfSMjuA4u3V6U7+G5PLoN1jGsCqdE5IWpiAchc60rOA2w1fYrarETHgroTJdkeUI0a6APCrhavqM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>, Ian
 Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Juergen Gross
	<jgross@suse.com>
Subject: [XEN][RFC PATCH v2 10/12] tools/libs/ctrl: Implement new xc interfaces for dt overlay
Date: Mon, 8 Nov 2021 23:02:25 -0800
Message-ID: <1636441347-133850-11-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c29dba09-5c53-4513-132c-08d9a34efa8d
X-MS-TrafficTypeDiagnostic: DM6PR02MB4745:
X-Microsoft-Antispam-PRVS:
	<DM6PR02MB4745944FC2596011667634F4BC929@DM6PR02MB4745.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	pqNyJ9iOnux0HjCv7wMjg0hBvit40EHolFNkI6T037OwjxVYFDy9mVLFEKCYINMph+BFT9zAIrJfWdbpj4ALP1aEKs1yiPA3y8pVsLGDfmXHr1UIKuFa97910Q9fhcAHA5NssSFC6RJd0G2MtloN7kr7gN+X6lKdWRtsQnpHUnR97hY2+b6YdLPM3ZZ1GMaHelxC3HJ607P1Lr/bthrAXP1U1G5rYhBIY0FNVuIYk6Hyv4jFVjAP2VFATipC0b4sGxdtnyT1s9pZEvcTn9R0w5DrT7EcZ79bUorBipr+wQe8ny9qRCDZjdrq+a91fw407prO/qTUaPBNBupQ7KrP3Gsg3aSltC2CFlhyJj8v6z/BtVh4F7cxPMPgq5DmR0SG6t/P0C2g+/PuD6LypGPfCvmvzQfrvUMvCOzB9CXTeKE/sPGj+u4rb2zoer0WFbLOnelnRkl53SamCVEMLHrBGUROQAca99EhuYrgV796FLu8616zBcuGUgnzIPBLmhXGJHkm9CtDN2B6MXYADr923iiCFKwJi5v0YAoCYj62Az1pk7F8izu0YE23XLJWhMm0eqVkPVb/Dk+6IW70eh8JE2XOfeephoJQlkA/CskZvZ/Kh6uHY4l7cmwiGywpCBcaLx0eddVa6EXCGpK2Xsmck5l+UFMe4c1urTEytDJkEvp+qeWcPI/6p/6zymlDQ43bSYYbf1koZOZ6IwaMQ6GLBYM7+5RKtGKtzqkerhkRoB+rVcePOfFpkHoHdxHlRkyoVm74Xa5wt/wT6Gg/wf7EOF/9sx4b+qv4m1FDVFcBP9LLpMQ8JQqcnNqN9NIGoOxmzIcSRPGmdo24+kQ57PAAMg==
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(426003)(2616005)(36906005)(26005)(8676002)(70206006)(186003)(356005)(4326008)(5660300002)(336012)(7696005)(6916009)(6666004)(8936002)(70586007)(82310400003)(36860700001)(9786002)(2906002)(508600001)(54906003)(316002)(36756003)(47076005)(7636003)(102446001)(2004002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:03:05.5102
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c29dba09-5c53-4513-132c-08d9a34efa8d
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0031.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB4745

xc_dt_overlay() sends the device tree binary overlay, size of .dtbo and overlay
operation type i.e. add or remove to xen.

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 tools/include/xenctrl.h      |  5 +++++
 tools/libs/ctrl/Makefile     |  1 +
 tools/libs/ctrl/xc_overlay.c | 51 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 57 insertions(+)
 create mode 100644 tools/libs/ctrl/xc_overlay.c

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 07b96e6..cfd7c5c 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2684,6 +2684,11 @@ int xc_livepatch_replace(xc_interface *xch, char *name, uint32_t timeout, uint32
 int xc_domain_cacheflush(xc_interface *xch, uint32_t domid,
                          xen_pfn_t start_pfn, xen_pfn_t nr_pfns);
 
+#if defined (CONFIG_OVERLAY_DTB)
+int xc_dt_overlay(xc_interface *xch, void *overlay_fdt, int overlay_fdt_size,
+                  uint8_t overlayop);
+#endif
+
 /* Compat shims */
 #include "xenctrl_compat.h"
 
diff --git a/tools/libs/ctrl/Makefile b/tools/libs/ctrl/Makefile
index 519246b..a21a949 100644
--- a/tools/libs/ctrl/Makefile
+++ b/tools/libs/ctrl/Makefile
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
 
 SRCS-y       += xc_altp2m.c
 SRCS-y       += xc_cpupool.c
+SRCS-$(CONFIG_OVERLAY_DTB) += xc_overlay.c
 SRCS-y       += xc_domain.c
 SRCS-y       += xc_evtchn.c
 SRCS-y       += xc_gnttab.c
diff --git a/tools/libs/ctrl/xc_overlay.c b/tools/libs/ctrl/xc_overlay.c
new file mode 100644
index 0000000..77f9edc
--- /dev/null
+++ b/tools/libs/ctrl/xc_overlay.c
@@ -0,0 +1,51 @@
+/*
+ *
+ * Overlay control functions.
+ * Copyright (C) 2021 Xilinx Inc.
+ * Author Vikram Garhwal <fnu.vikram@xilinx.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xc_bitops.h"
+#include "xc_private.h"
+#include <xen/hvm/hvm_op.h>
+#include <libfdt.h>
+
+int xc_dt_overlay(xc_interface *xch, void *overlay_fdt, int overlay_fdt_size,
+                  uint8_t op)
+{
+    int err;
+    DECLARE_SYSCTL;
+
+    DECLARE_HYPERCALL_BOUNCE(overlay_fdt, overlay_fdt_size,
+                        XC_HYPERCALL_BUFFER_BOUNCE_IN);
+
+    if ( (err = xc_hypercall_bounce_pre(xch, overlay_fdt)) )
+        goto err;
+
+    sysctl.cmd = XEN_SYSCTL_overlay;
+    sysctl.u.overlay_dt.overlay_op= op;
+    sysctl.u.overlay_dt.overlay_fdt_size = overlay_fdt_size;
+
+    set_xen_guest_handle(sysctl.u.overlay_dt.overlay_fdt, overlay_fdt);
+
+    if ( (err = do_sysctl(xch, &sysctl)) != 0 )
+        PERROR("%s failed\n", __func__);
+
+err:
+    xc_hypercall_bounce_post(xch, overlay_fdt);
+
+    return err;
+}
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:03:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:03:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223713.386625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLA4-0003gQ-Vl; Tue, 09 Nov 2021 07:03:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223713.386625; Tue, 09 Nov 2021 07:03:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLA4-0003eY-9T; Tue, 09 Nov 2021 07:03:16 +0000
Received: by outflank-mailman (input) for mailman id 223713;
 Tue, 09 Nov 2021 07:03:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkLA1-00004s-PT
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:03:13 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060e.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a3634d2-412b-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 08:03:12 +0100 (CET)
Received: from SN7PR04CA0171.namprd04.prod.outlook.com (2603:10b6:806:125::26)
 by CY4PR0201MB3619.namprd02.prod.outlook.com (2603:10b6:910:8c::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Tue, 9 Nov
 2021 07:03:06 +0000
Received: from SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:125:cafe::b7) by SN7PR04CA0171.outlook.office365.com
 (2603:10b6:806:125::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 07:03:06 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0011.mail.protection.outlook.com (10.97.5.171) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:03:06 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:02:53 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:02:48 -0800
Received: from [172.19.2.115] (port=44056 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkL9c-000Ga6-5x; Mon, 08 Nov 2021 23:02:48 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a3634d2-412b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=H3GKJ4r3y3CWlFyoB/zQMb0f7UQM5KSJLKCARc6DzgoW23d3RZcbavHp4fjoO2VtJ68Dycw8PUF6Vqiwota5tSVqvOMl4jmlmRk+mO3B8DsX6DmEMaU+lqp1vwiu4/Ar+fZLcS8t4EtNYqNEOV1v8952VnLhJSfnb091rb26IzM9snQvVW/bSZsR2EzT++2fxY9ZxI30f9HPA2W2L/+P0yD/XppTEPvqy3hZ4v0FsZG8/6uEZGrJPHJCFcj97MbPGHLQ9XKcJ1kQ6eH7alISNqoNS/3N7C2qVxrPlwtZ6Se/F0lEZklUmiNlZV50SJfoUaiqFCvHiEknYugCpT3Rkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aqdp/GvnsU179UtkDRtrXW3Ma3HQaHxw15Jk4pDNfYo=;
 b=ZD5xW270DnlVUPcovsyyDgb4hl8G4fLv2/wg5w9VwlH5Xe4JifH8z7+8hYWYeA3lFWA/PazEASRVCKmktZ9/6jokjynHgYZEM9dVnJ8GRh8exk6NQ4MFLAeJJntZ0mPgt8A7lb+7cY4aQaJCH570Ne7XxebeRw89nN4s7M/uOuI37R9RAYKfYrC5N1DuQxXXjPIiI6gTZNcMhTC5ot7D28rQH06TIsfG4rgEA9hfppSr4s3l8NpoGiUCO/EJ50S/pNKfXGIkKoOpEMpK/N4qjHhbZmmx1Qqc9DhJ7y9GxLGAHZ7YVy3stUDReq98TrOmAnHx0IkAX/sGreUifl4ACw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aqdp/GvnsU179UtkDRtrXW3Ma3HQaHxw15Jk4pDNfYo=;
 b=XBYUbDxAxubZQ38sWbNo/V4IM2MaLyBbB17nDFhX8vHg/T/GQNkmvHoGg+N4rqmQMzLb8snQ3Z+Vwz2a+Grm6jHWZ52nOOFW7EKR3TrPH35+PdZuvJymmFnbameTHOFBNYzOt1VP5XWfPrbfaArhsohoMnwiCh3EEQENyQFcG2Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN][RFC PATCH v2 06/12] xen/smmu: Add remove_device callback for smmu_iommu ops
Date: Mon, 8 Nov 2021 23:02:21 -0800
Message-ID: <1636441347-133850-7-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7d74691a-c175-4967-4fe6-08d9a34efb27
X-MS-TrafficTypeDiagnostic: CY4PR0201MB3619:
X-Microsoft-Antispam-PRVS:
	<CY4PR0201MB361909393219C8514602972DBC929@CY4PR0201MB3619.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	VEOLW/UI1lpFtm/Lr4yeO2cQz5ryPivi0xHg5pebB55DFvQJs2gUUiXkhQOiDySkl1DDy07hiQJo+KzSgs5rvCyI3oYo2pCqSipboIPQHdiU9D6niTSeLfItzdI753H7F0psW1nJq1JWEsOrwDR1nNSPhf0UQnjjOH6IxsukDNN8rSRZhZ2igJjvdQBi7fUuG9csvt14outrrgGfVIFEIP48epZfpFUMk596R39LcBDUVfn6iS4QCfMQsHlr0Q2yqPgOARpbY3hUBwpSfOwhccybsQBEqL2XyHFyXoW7VRYNoy5+t1uAcI7e2sr735wg7wWA9j5ru32Uy3gIoKyp7DVdHsyhFqLLEVPW8SEkS/M+dEiVinx56JDNC6/EEjq0RTzb7ecSLLTX2vwbkWys7SC5XZIELPy/HLbth0VpPh1kathmHMKXA9xW749SyJwPHB7dhzkf+j1IDvoxzBJJOFL8P67sDnTHRGp5pvRYtKeKgQeEGX9cDCXth8Tcif9xk0Zg5qlU5FUV4SJRztsz/76H6mUJq2ZrGO+MEUzW1Sk9gne1rf4TeX++f2g6my9ejq2iJquhpw3lcMzYaPbOrrE9Z4wFProp/WlCczmtyiu74svUPIYYPNg4cawfESyEIcbjRPehJAqMXueDuuP0KpM45yhM/gAe95Ab5PoNHKocBYu2D+nTlYUBLNSBaxUYBFHa1tITPTd6yt/qeusydTZ1GqZ9fQs1MBUmiwY7FBk=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(8676002)(6916009)(186003)(47076005)(26005)(6666004)(356005)(426003)(2906002)(2616005)(70206006)(70586007)(7636003)(336012)(9786002)(5660300002)(7696005)(4326008)(8936002)(82310400003)(508600001)(316002)(36860700001)(36906005)(36756003)(54906003)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:03:06.5220
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d74691a-c175-4967-4fe6-08d9a34efb27
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0011.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR0201MB3619

Add remove_device callback for removing the device entry from smmu-master using
following steps:
1. Find if SMMU master exists for the device node.
2. Remove the SMMU master

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/drivers/passthrough/arm/smmu.c | 54 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index c9dfc4c..1a32e2c 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -816,6 +816,17 @@ static int insert_smmu_master(struct arm_smmu_device *smmu,
 	return 0;
 }
 
+static int remove_smmu_master(struct arm_smmu_device *smmu,
+			      struct arm_smmu_master *master)
+{
+	if (!(smmu->masters.rb_node))
+		return -ENOENT;
+
+	rb_erase(&master->node, &smmu->masters);
+
+	return 0;
+}
+
 static int arm_smmu_dt_add_device_legacy(struct arm_smmu_device *smmu,
 					 struct device *dev,
 					 struct iommu_fwspec *fwspec)
@@ -853,6 +864,32 @@ static int arm_smmu_dt_add_device_legacy(struct arm_smmu_device *smmu,
 	return insert_smmu_master(smmu, master);
 }
 
+static int arm_smmu_dt_remove_device_legacy(struct arm_smmu_device *smmu,
+					 struct device *dev)
+{
+	struct arm_smmu_master *master;
+	struct device_node *dev_node = dev_get_dev_node(dev);
+	int ret;
+
+	master = find_smmu_master(smmu, dev_node);
+	if (master == NULL) {
+		dev_err(dev,
+			"No registrations found for master device %s\n",
+			dev_node->name);
+		return -EINVAL;
+	}
+
+	ret = remove_smmu_master(smmu, master);
+
+	if (ret)
+		return ret;
+
+    dev_node->is_protected = false;
+
+	kfree(master);
+	return 0;
+}
+
 static int register_smmu_master(struct arm_smmu_device *smmu,
 				struct device *dev,
 				struct of_phandle_args *masterspec)
@@ -876,6 +913,22 @@ static int register_smmu_master(struct arm_smmu_device *smmu,
 					     fwspec);
 }
 
+static int arm_smmu_dt_remove_device_generic(u8 devfn, struct device *dev)
+{
+	struct arm_smmu_device *smmu;
+	struct iommu_fwspec *fwspec;
+
+	fwspec = dev_iommu_fwspec_get(dev);
+	if (fwspec == NULL)
+		return -ENXIO;
+
+	smmu = find_smmu(fwspec->iommu_dev);
+	if (smmu == NULL)
+		return -ENXIO;
+
+	return arm_smmu_dt_remove_device_legacy(smmu, dev);
+}
+
 static int arm_smmu_dt_add_device_generic(u8 devfn, struct device *dev)
 {
 	struct arm_smmu_device *smmu;
@@ -2876,6 +2929,7 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
     .init = arm_smmu_iommu_domain_init,
     .hwdom_init = arm_smmu_iommu_hwdom_init,
     .add_device = arm_smmu_dt_add_device_generic,
+    .remove_device = arm_smmu_dt_remove_device_generic,
     .teardown = arm_smmu_iommu_domain_teardown,
     .iotlb_flush = arm_smmu_iotlb_flush,
     .iotlb_flush_all = arm_smmu_iotlb_flush_all,
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 07:47:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 07:47:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223775.386651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLqa-00036A-QH; Tue, 09 Nov 2021 07:47:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223775.386651; Tue, 09 Nov 2021 07:47:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkLqa-000363-Li; Tue, 09 Nov 2021 07:47:12 +0000
Received: by outflank-mailman (input) for mailman id 223775;
 Tue, 09 Nov 2021 07:47:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkLqY-00035V-Vy
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 07:47:10 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062c.outbound.protection.outlook.com
 [2a01:111:f400:7eae::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d3a28bf-4131-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 08:47:09 +0100 (CET)
Received: from BN6PR19CA0086.namprd19.prod.outlook.com (2603:10b6:404:133::24)
 by CH2PR02MB7096.namprd02.prod.outlook.com (2603:10b6:610:8c::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 07:47:05 +0000
Received: from BN1NAM02FT023.eop-nam02.prod.protection.outlook.com
 (2603:10b6:404:133:cafe::38) by BN6PR19CA0086.outlook.office365.com
 (2603:10b6:404:133::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Tue, 9 Nov 2021 07:47:05 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 BN1NAM02FT023.mail.protection.outlook.com (10.13.2.137) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4669.10 via Frontend Transport; Tue, 9 Nov 2021 07:47:05 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 8 Nov 2021 23:47:04 -0800
Received: from smtp.xilinx.com (172.19.127.96) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 8 Nov 2021 23:47:04 -0800
Received: from [172.19.2.115] (port=44100 helo=xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mkLqS-000AmH-Mf; Mon, 08 Nov 2021 23:47:04 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d3a28bf-4131-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cYc0XXFg4yZApRxNSrV9VzLoP3r6dgj1G351MUwu5Vy0Zx/fykJe4yhazTwU50bm4iw7NhcGkLSks9NQRtdB9owSXaethoN1TIrHdCm8aw0KrnDOX94pak0XXfORTWZfCwsTCbpYYyADy5pIeXvy3IciJ5ZwpHSHR0wvJQTDhOwSTL4HQLKEqH/OfukFCP8yEFDShwRRzh7N1QYOHdxZ2GCxO/b0+KsNWKditHxDaOIIqOVKYP7F/LeQ+qE7vpusqThjN2HQBCFUVgHVxMByCE1365uzooOvXCEJ/POHehfKeFiJ9csod6z54xZc7nmvWEIW6SAdE+FP7N5BjvYlYw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NwIntXkifYQ8RKlL0jbwCGXz4AM+YJ1ZSWK////ySSw=;
 b=jNNFMufyjUD6B8bDkCUnkmHTGuk/sGCFsrFNWlfXZblKb60Si8T+rDd32NLSYyARPIPRqyUT9DlQq7s+rR6Pif4HYJpugrQWHzT2Vxiq8xKCD5Hp5o9AtznlLMmp5H/eC1L37sfHp11AXBdjB+HyymnuuxSPuiSAwStWR3hu6CvHNG3wcYhbYAY05aJ7hEkukOnIlRB3PSdR/rwCpgbVulsMMkTL//9YZD/sTDI5WR5RfHWFBCTUFNlPBAUXcLvbOgfolsuvRkEfJAaZcim1tWOUWiTynE5GP5oAe5s+rssLAPWcwSHL8R1VyYDcu0sskabqm9Cbd0pOQi4D79biXw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=xen.org smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NwIntXkifYQ8RKlL0jbwCGXz4AM+YJ1ZSWK////ySSw=;
 b=XAvuQEDJIAnovthrAL3mvd9EgaEDZvGxoFtKF3LmzTvCqbKhoIsEteIy+qQEtAg3Vly0+VFm1dPyDDtc40de/uNBspU4WUTj7ZjzGz9e5K/a1+u2/6zO8tklkhWtBzxiEqkYH8YNmyOSe/qxtnEM2f0Qazwg40e3WN7RG/F3i3I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; xen.org; dkim=none (message not signed)
 header.d=none;xen.org; dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
Date: Mon, 8 Nov 2021 23:47:04 -0800
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: Julien Grall <julien@xen.org>
CC: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<bertrand.marquis@arm.com>, <volodymyr_babchuk@epam.com>
Subject: Re: [XEN][PATCH v3 1/1] Update libfdt to v1.6.1
Message-ID: <20211109074703.GA159999@xilinx.com>
References: <1636147719-80482-1-git-send-email-fnu.vikram@xilinx.com>
 <1636147719-80482-2-git-send-email-fnu.vikram@xilinx.com>
 <caac2d2b-46a7-e12b-7cb0-ac1b7791d8a1@xen.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <caac2d2b-46a7-e12b-7cb0-ac1b7791d8a1@xen.org>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 11e15e55-4344-466d-04d8-08d9a3551feb
X-MS-TrafficTypeDiagnostic: CH2PR02MB7096:
X-Microsoft-Antispam-PRVS:
	<CH2PR02MB7096AF988618861436DDF863BC929@CH2PR02MB7096.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	S0mVOAws4GoZDbtxI1N1Of8apHyapMuIuAGIAmnHGrq8w5+59aykT6C1Z3Quj+MW6Vn8k+OVGB7A/JR5kOOenAFf6qG7BfUpf14WeWtAuaG91l1Bk3XajYKqyx/oH19kv9dpjb+NnyNikAUHJODltXKPxR2iK3XDbkElNOYAU5tq1sINjxhpXZ3byXfTfWZdStYmYOhEAq3Y/MY9PEOM5tt4vdBtEBOlgagpJ3YWHCHNUfOgzBbO657RgwyVJohdhG540g25RrHQtnTfe05MtspBubryqgSVKRPK6wJl480gDet32c6DN1Cu3A3Of5Tk8IY3AETFxq+IlIHWuuhULJbHnRVBWpkPFemDW++wm+OHKOqNSLFlwKY52aigkSdrwGjX7j/9RIuL3IwUYYKUbaejsYg00VocWoGC9PLlZZLrI5VgqD2eaqPCwSIsffN+vsoGKhSqJNh+zMkBj/uGXRlwEkh6x8kbny8exjUK/TFm7JYqo914d+rxoBtO2iqqgeshInhZUi3RTob7yCfcBhYxkjjIWf2bh3CWgydQpAOa5B1EifCZaBTznyVwoHhVhIfDOQiUtZlTlac0IzuQ8Ah2EMS8FaRl1OXND9JjN0vxWoYntG/43tvq8GtW/uzI7aM2KlONA76EXX3pBJzbC6Q6YNpKwb9PZajhVdw5dVY2QRb79SKISWPZL1OJ2lYGPkPUpsM3Gy/X5KgSNgs/Fs7rVPKrbXhjxUP+Hg2lAj0=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(15650500001)(508600001)(8936002)(8676002)(70586007)(2906002)(6916009)(70206006)(26005)(54906003)(5660300002)(7696005)(36756003)(33656002)(47076005)(1076003)(4326008)(36860700001)(82310400003)(186003)(83380400001)(336012)(316002)(2616005)(36906005)(426003)(356005)(7636003)(53546011)(9786002)(27376004);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 07:47:05.1309
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 11e15e55-4344-466d-04d8-08d9a3551feb
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1NAM02FT023.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR02MB7096

On Mon, Nov 08, 2021 at 10:37:31AM +0000, Julien Grall wrote:
Hi Julien,
> Hi Vikram,
> 
> On 05/11/2021 21:28, Vikram Garhwal wrote:
> >Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
> >This update is done to support device tree overlays.
> >
> >A few minor changes are done to make it compatible with Xen:
> >     fdt_overlay.c: overlay_fixup_phandle()
> >
> >         Replace strtoul() with simple_strtoul() as strtoul() is not available in
> >         Xen lib and included lib.h.
> >
> >         Change char *endptr to const char *endptr.
> 
> I would clarify this is a requirement to use simple_strtoul().
Will add it in next version.
> 
> [...]
> 
> >diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
> >index 035bf75..03380d5 100644
> >--- a/xen/include/xen/libfdt/libfdt_env.h
> >+++ b/xen/include/xen/libfdt/libfdt_env.h
> >@@ -1,22 +1,98 @@
> >-#ifndef _LIBFDT_ENV_H
> >-#define _LIBFDT_ENV_H
> >+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> >+#ifndef LIBFDT_ENV_H
> >+#define LIBFDT_ENV_H
> >+/*
> >+ * libfdt - Flat Device Tree manipulation
> >+ * Copyright (C) 2006 David Gibson, IBM Corporation.
> >+ * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> >+ */
> >+#include <xen/config.h>
> 
> The build system should always include <xen/config.h> automagically. So can
> you clarify why this is necessary?
You are right. This was something got carried over from v1.4. I can build without this.
Will remove it in v4 patch.
> 
> >  #include <xen/types.h>
> >  #include <xen/string.h>
> >  #include <asm/byteorder.h>
> >+#include <xen/stdbool.h>
> 
> We usually order the headers so <xen/...> are first and then <asm/...>. They
> are then ordered alphabetically within themself.
> 
> But it is not clear why you are adding <xen/stdbool.h> as AFAICT it is
> already going to be included by existing headers. Did you see an error
> without including it?
Perhaps my build was messed up then. I tried just now and can build without it.
Will remove this one too in v4.

Thanks for corrections!

Regards,
Vikram
> 
> Cheers,
> 
> -- 
> Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 08:13:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 08:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223787.386661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkMGG-0006nW-5r; Tue, 09 Nov 2021 08:13:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223787.386661; Tue, 09 Nov 2021 08:13:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkMGG-0006nP-2k; Tue, 09 Nov 2021 08:13:44 +0000
Received: by outflank-mailman (input) for mailman id 223787;
 Tue, 09 Nov 2021 08:13:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nz9x=P4=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mkMGE-0006nJ-Pw
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 08:13:43 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f29195ac-4134-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 09:13:40 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 b2-20020a1c8002000000b0032fb900951eso1196519wmd.4
 for <xen-devel@lists.xenproject.org>; Tue, 09 Nov 2021 00:13:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f29195ac-4134-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=jpmXVyrn6nlBR/3K4cvQlgcFaHExfRoZmR8Q1Mbt6sM=;
        b=YW9G8Za3cuQ4NqSv8beNBb3ORx5AGbe36xfOrkEpPX+v+dfL8oWaoCZCzW629B9aMK
         CFB7damptFqLrEUvuNnmZa5yMDfUXUEwIzR4WuN6N+sZEEoT4fC2+wgk/gnyaFeFFcqr
         oe80oiRRvqPt1606UQ6DluZEIRC6W4FtfdKw+d66O/MyjNhEc5tGQZ5rwWKbmoSWyAO5
         JOi9tiNFDSKTEbrDt62z2kcn0ICe/7IR0TjKhPeD6J5DLwXn/YsPhV8RQlaaP+d26WLo
         Kjnq1TTRm+UJyzRQQDRhlyni0Vs3w54VrTN9f7LbdcONHXiYPF8fbKdSeYNlf0+S0kf4
         wvRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=jpmXVyrn6nlBR/3K4cvQlgcFaHExfRoZmR8Q1Mbt6sM=;
        b=IFkibTbUzve41Qp013L57fxM3v0CdHFuj2EOPkoN7PuKGb75OZg8gf6+2HWhtpdD8v
         myUGBGG72bf1HMZvLfMOc2HzDDxDFKP/rnAjn2hFVnBlHVIuWqO74aXZ8ey/j4O3jNqu
         AVfhYOQMlo0/IPcclnVG6NalXBf6POjO+GMPb/bGUwfB9FeB9wy9JzEw38hkfUmM0Hcm
         LBB5dmSh/Onv5L/3n7d3Wz6eJBrYA/ZKwYM8jV0EmxCC28GcVNFHnf+61eLS9G7krr+z
         BzGiWU2IslWTw/27v/4bnG7rNwiyd1jkYS3b6KagkKPdekNvVfOhYAx3JvyXH6Au+ERk
         hE7g==
X-Gm-Message-State: AOAM530ONDYG2lzEWLDckp2r96DBG0M7HjIUckFZcAy+d+6nUWv/nWll
	Snlx9MqMSW2syqrJuWP0NvLkwcsuDUhuI8mhReg=
X-Google-Smtp-Source: ABdhPJzIEuDSaCGSRf8U51gqFPEkw47ZxB2mZYPHTYhSCaZhF5aj0U0tpBUMYlcil+Hi4lAOdRVnfRy9KbUo7hEeNrc=
X-Received: by 2002:a1c:9ad4:: with SMTP id c203mr5074964wme.23.1636445620149;
 Tue, 09 Nov 2021 00:13:40 -0800 (PST)
MIME-Version: 1.0
References: <alpine.DEB.2.22.394.2111081430090.3317@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2111081430090.3317@ubuntu-linux-20-04-desktop>
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
Date: Tue, 9 Nov 2021 10:13:29 +0200
Message-ID: <CAPD2p-no4bkMoc92PmovoienB7NzOLTxU7Y91uPM-z=kd_f2aQ@mail.gmail.com>
Subject: Re: ASSERT in rangeset_remove_range
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Ian Jackson <iwj@xenproject.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, xen-devel <xen-devel@lists.xenproject.org>
Content-Type: multipart/alternative; boundary="000000000000e2219d05d056af71"

--000000000000e2219d05d056af71
Content-Type: text/plain; charset="UTF-8"

On Tue, Nov 9, 2021 at 12:45 AM Stefano Stabellini <sstabellini@kernel.org>
wrote:

> Hi Oleksandr, Julien,
>

Hi Stefano, Julien.

[Sorry for the possible format issues]


>
> I discovered a bug caused by the recent changes to introduce extended
> regions in make_hypervisor_node (more logs appended):
>
>
> (XEN) d1 BANK[0] 0x00000040000000-0x0000007e800000 (1000MB)
> (XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)
> (XEN) DEBUG find_unallocated_memory 994 s=40000000 e=7e7fffff
> (XEN) DEBUG find_unallocated_memory 994 s=200000000 e=1ffffffff
> (XEN) Assertion 's <= e' failed at rangeset.c:189
>
>
> When a bank of memory is zero in size, then rangeset_remove_range is
> called with end < start, triggering an ASSERT in rangeset_remove_range.
>
> One solution is to avoid creating 0 size banks. The following change
> does that:
>
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 49b4eb2b13..3efe542d0f 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -459,9 +459,12 @@ static void __init allocate_memory(struct domain *d,
> struct kernel_info *kinfo)
>          goto fail;
>
>      bank_size = MIN(GUEST_RAM1_SIZE, kinfo->unassigned_mem);
> -    if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
> +    if ( bank_size > 0 )
> +    {
> +        if ( !allocate_bank_memory(d, kinfo,
> gaddr_to_gfn(GUEST_RAM1_BASE),
>                                 bank_size) )
> -        goto fail;
> +            goto fail;
> +    }
>
>      if ( kinfo->unassigned_mem )
>          goto fail;
>
>
>
> We have a couple of other options too:
>
> - remove the ASSERT in rangeset_remove_range
> There is an argument that we should simply return error
> fromrangeset_remove_range, rather than a full assert.
>
> - add a if (end > start) check before calling rangeset_remove_range
> We could check that end > start before calling rangeset_remove_range at
> all the call sites in domain_build.c. There are 5 call sites at the
> moment.
>
> Any other ideas or suggestions?
>


Personally I would avoid creating zero-sized banks (your first solution) as
I don't see any point in taking them into the account and exposing them to
the guest.

What I don't understand is how this assert is triggered by upstream Xen
(how the make_hypervisor_node() gets called for DomU)? Do you have some
changes on top?



>
> Cheers,
>
> Stefano
>
>
>
> (XEN) DEBUG find_memory_holes 1126 s=ff990000 e=ff990fff
> (XEN) DEBUG find_memory_holes 1126 s=ff990000 e=ff990fff
> (XEN) DEBUG find_memory_holes 1126 s=ff990000 e=ff990fff
> (XEN) DEBUG find_memory_holes 1126 s=ff990000 e=ff990fff
> (XEN) DEBUG find_memory_holes 1126 s=f9010000 e=f901ffff
> (XEN) DEBUG find_memory_holes 1126 s=f9020000 e=f903ffff
> (XEN) DEBUG find_memory_holes 1126 s=f9040000 e=f905ffff
> (XEN) DEBUG find_memory_holes 1126 s=f9060000 e=f907ffff
> (XEN) DEBUG find_memory_holes 1126 s=fd800000 e=fd81ffff
> (XEN) DEBUG find_memory_holes 1126 s=ff060000 e=ff060fff
> (XEN) DEBUG find_memory_holes 1126 s=ff070000 e=ff070fff
> (XEN) DEBUG find_memory_holes 1126 s=fd6e0000 e=fd6e8fff
> (XEN) DEBUG find_memory_holes 1126 s=fd6e9000 e=fd6edfff
> (XEN) DEBUG find_memory_holes 1126 s=fd500000 e=fd500fff
> (XEN) DEBUG find_memory_holes 1126 s=fd510000 e=fd510fff
> (XEN) DEBUG find_memory_holes 1126 s=fd520000 e=fd520fff
> (XEN) DEBUG find_memory_holes 1126 s=fd530000 e=fd530fff
> (XEN) DEBUG find_memory_holes 1126 s=fd540000 e=fd540fff
> (XEN) DEBUG find_memory_holes 1126 s=fd550000 e=fd550fff
> (XEN) DEBUG find_memory_holes 1126 s=fd560000 e=fd560fff
> (XEN) DEBUG find_memory_holes 1126 s=fd570000 e=fd570fff
> (XEN) DEBUG find_memory_holes 1126 s=fd4b0000 e=fd4bffff
> (XEN) DEBUG find_memory_holes 1126 s=ffa80000 e=ffa80fff
> (XEN) DEBUG find_memory_holes 1126 s=ffa90000 e=ffa90fff
> (XEN) DEBUG find_memory_holes 1126 s=ffaa0000 e=ffaa0fff
> (XEN) DEBUG find_memory_holes 1126 s=ffab0000 e=ffab0fff
> (XEN) DEBUG find_memory_holes 1126 s=ffac0000 e=ffac0fff
> (XEN) DEBUG find_memory_holes 1126 s=ffad0000 e=ffad0fff
> (XEN) DEBUG find_memory_holes 1126 s=ffae0000 e=ffae0fff
> (XEN) DEBUG find_memory_holes 1126 s=ffaf0000 e=ffaf0fff
> (XEN) DEBUG find_memory_holes 1126 s=fd070000 e=fd09ffff
> (XEN) DEBUG find_memory_holes 1126 s=ff100000 e=ff100fff
> (XEN) DEBUG find_memory_holes 1126 s=ff0b0000 e=ff0b0fff
> (XEN) DEBUG find_memory_holes 1126 s=ff0c0000 e=ff0c0fff
> (XEN) DEBUG find_memory_holes 1126 s=ff0d0000 e=ff0d0fff
> (XEN) DEBUG find_memory_holes 1126 s=ff0e0000 e=ff0e0fff
> (XEN) DEBUG find_memory_holes 1126 s=ff0a0000 e=ff0a0fff
> (XEN) DEBUG find_memory_holes 1126 s=ff020000 e=ff020fff
> (XEN) DEBUG find_memory_holes 1126 s=ff030000 e=ff030fff
> (XEN) DEBUG find_memory_holes 1126 s=ff960000 e=ff960fff
> (XEN) DEBUG find_memory_holes 1126 s=ffa00000 e=ffa0ffff
> (XEN) DEBUG find_memory_holes 1126 s=fd0b0000 e=fd0bffff
> (XEN) DEBUG find_memory_holes 1126 s=fd490000 e=fd49ffff
> (XEN) DEBUG find_memory_holes 1126 s=ffa10000 e=ffa1ffff
> (XEN) DEBUG find_memory_holes 1126 s=fd0e0000 e=fd0e0fff
> (XEN) DEBUG find_memory_holes 1126 s=fd480000 e=fd480fff
> (XEN) DEBUG find_memory_holes 1126 s=8000000000 e=8000ffffff
> (XEN) DEBUG handle_pci_range 1056 s=e0000000 e=efffffff
> (XEN) DEBUG handle_pci_range 1056 s=600000000 e=7ffffffff
> (XEN) DEBUG find_memory_holes 1126 s=ff0f0000 e=ff0f0fff
> (XEN) DEBUG find_memory_holes 1126 s=c0000000 e=c7ffffff
> (XEN) DEBUG find_memory_holes 1126 s=ffa60000 e=ffa60fff
> (XEN) DEBUG find_memory_holes 1126 s=fd400000 e=fd43ffff
> (XEN) DEBUG find_memory_holes 1126 s=fd3d0000 e=fd3d0fff
> (XEN) DEBUG find_memory_holes 1126 s=fd0c0000 e=fd0c1fff
> (XEN) DEBUG find_memory_holes 1126 s=ff160000 e=ff160fff
> (XEN) DEBUG find_memory_holes 1126 s=ff170000 e=ff170fff
> (XEN) DEBUG find_memory_holes 1126 s=ff040000 e=ff040fff
> (XEN) DEBUG find_memory_holes 1126 s=ff050000 e=ff050fff
> (XEN) DEBUG find_memory_holes 1126 s=ff110000 e=ff110fff
> (XEN) DEBUG find_memory_holes 1126 s=ff120000 e=ff120fff
> (XEN) DEBUG find_memory_holes 1126 s=ff130000 e=ff130fff
> (XEN) DEBUG find_memory_holes 1126 s=ff140000 e=ff140fff
> (XEN) DEBUG find_memory_holes 1126 s=ff000000 e=ff000fff
> (XEN) DEBUG find_memory_holes 1126 s=ff010000 e=ff010fff
> (XEN) DEBUG find_memory_holes 1126 s=ff9d0000 e=ff9d0fff
> (XEN) DEBUG find_memory_holes 1126 s=fe200000 e=fe23ffff
> (XEN) DEBUG find_memory_holes 1126 s=ff9e0000 e=ff9e0fff
> (XEN) DEBUG find_memory_holes 1126 s=fe300000 e=fe33ffff
> (XEN) DEBUG find_memory_holes 1126 s=fd4d0000 e=fd4d0fff
> (XEN) DEBUG find_memory_holes 1126 s=ff150000 e=ff150fff
> (XEN) DEBUG find_memory_holes 1126 s=ffa50000 e=ffa50fff
> (XEN) DEBUG find_memory_holes 1126 s=ffa50000 e=ffa50fff
> (XEN) DEBUG find_memory_holes 1126 s=ffa50000 e=ffa50fff
> (XEN) DEBUG find_memory_holes 1126 s=fd4c0000 e=fd4c0fff
> (XEN) DEBUG find_memory_holes 1126 s=fd4a0000 e=fd4a0fff
> (XEN) DEBUG find_memory_holes 1126 s=fd4aa000 e=fd4aafff
> (XEN) DEBUG find_memory_holes 1126 s=fd4ab000 e=fd4abfff
> (XEN) DEBUG find_memory_holes 1126 s=fd4ac000 e=fd4acfff
> (XEN) DEBUG find_memory_holes 1126 s=0 e=7fefffff
> (XEN) DEBUG find_memory_holes 1126 s=800000000 e=87fffffff
> (XEN) Extended region 0: 0x80000000->0xc0000000
> (XEN) Extended region 1: 0xc8000000->0xe0000000
> (XEN) Extended region 2: 0xf0000000->0xf9000000
> (XEN) Extended region 3: 0xffc00000->0x600000000
> (XEN) Extended region 4: 0x880000000->0x8000000000
> (XEN) Extended region 5: 0x8001000000->0x10000000000
> (XEN) Loading zImage from 0000000000e00000 to
> 0000000020000000-0000000021367a00
> (XEN) Loading d0 initrd from 0000000002200000 to
> 0x0000000028200000-0x00000000293f936d
> (XEN) Loading d0 DTB to 0x0000000028000000-0x0000000028009604
> (XEN) *** LOADING DOMU cpus=1 memory=fa000KB ***
> (XEN) Loading d1 kernel from boot module @ 0000000003400000
> (XEN) Loading ramdisk from boot module @ 0000000004800000
> (XEN) Allocating mappings totalling 1000MB for d1:
> (XEN) d1 BANK[0] 0x00000040000000-0x0000007e800000 (1000MB)
> (XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)
> (XEN) DEBUG find_unallocated_memory 994 s=40000000 e=7e7fffff
> (XEN) DEBUG find_unallocated_memory 994 s=200000000 e=1ffffffff
> (XEN) Assertion 's <= e' failed at rangeset.c:189
> (XEN) ----[ Xen-4.16-rc  arm64  debug=y  Not tainted ]----
> (XEN) CPU:    0
> (XEN) PC:     0000000000220e6c rangeset_remove_range+0xbc/0x2bc
> (XEN) LR:     00000000002cd508
> (XEN) SP:     0000000000306f60
> (XEN) CPSR:   0000000020000249 MODE:64-bit EL2h (Hypervisor, handler)
> (XEN)      X0: 00008000fbf61e70  X1: 0000000200000000  X2: 00000001ffffffff
> (XEN)      X3: 0000000000000005  X4: 0000000000000000  X5: 0000000000000028
> (XEN)      X6: 0000000000000080  X7: fefefefefefeff09  X8: 7f7f7f7f7f7f7f7f
> (XEN)      X9: 717164616f726051 X10: 7f7f7f7f7f7f7f7f X11: 0101010101010101
> (XEN)     X12: 0000000000000008 X13: 0000000000000009 X14: 0000000000306cb8
> (XEN)     X15: 0000000000000020 X16: 000000000028c5a8 X17: 0000000000000000
> (XEN)     X18: 0180000000000000 X19: 00000001ffffffff X20: 0000000000000001
> (XEN)     X21: 0000000200000000 X22: 0000000200000000 X23: 0000000000000002
> (XEN)     X24: 0000000000000002 X25: 00000000003070e0 X26: 00000000002d9e68
> (XEN)     X27: 00000000002d8d18 X28: 00008000fbf40000  FP: 0000000000306f60
> (XEN)
> (XEN)   VTCR_EL2: 0000000080023558
> (XEN)  VTTBR_EL2: 0000000000000000
> (XEN)
> (XEN)  SCTLR_EL2: 0000000030cd183d
> (XEN)    HCR_EL2: 0000000000000038
> (XEN)  TTBR0_EL2: 0000000004b45000
> (XEN)
> (XEN)    ESR_EL2: 00000000f2000001
> (XEN)  HPFAR_EL2: 0000000000000000
> (XEN)    FAR_EL2: 0000000000000000
> (XEN)
> (XEN) Xen stack trace from sp=0000000000306f60:
> (XEN)    0000000000307040 00000000002cf2a8 00008000fbf5a000
> 0000000000000000
> (XEN)    00008000fbf40000 00000000003070a8 0000000000307de4
> 00000000002aa078
> (XEN)    0000000880000000 0000000000000002 00000000002e8d08
> 00000000000fff00
> (XEN)    00008000fbf61e70 00008000fbf5a000 00008000fbf61220
> 0000000000000000
> (XEN)    0000000000307040 00000000002cf288 00008000fbf5a000
> 0000000000000000
> (XEN)    00008000fbf40000 00000000003070a8 0000000000307de4
> 65782c32766e6578
> (XEN)    000000000030006e 2d6e65782c6e6578 6e65780036312e34
> 000000006e65782c
> (XEN)    0000000000307d80 00000000002d0440 00008000fbfd95a0
> 0000000000307dc8
> (XEN)    00000000002d99b8 00000000002da338 0000000000307de4
> 00000000002aa078
> (XEN)    000000000000000f 0000000000307110 0000000000000001
> 00c2010000000002
> (XEN)    00000000003070c8 0000000000000000 6d933f29040f0000
> 0000002200000000
> (XEN)    0010000000000000 0020000300000000 0020000000000000
> 00000000000fa000
> (XEN)    0000000000000001 00008000fbf5a000 00008000fbf40000
> 0000000000000000
> (XEN)    0000000000000002 0000000040000000 000000003e800000
> 0000000000000000
> (XEN)    0000000200000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000
> 0000000000000000
> (XEN) Xen call trace:
> (XEN)    [<0000000000220e6c>] rangeset_remove_range+0xbc/0x2bc (PC)
> (XEN)    [<00000000002cd508>]
> domain_build.c#make_hypervisor_node+0x258/0x7f4 (LR)
> (XEN)    [<00000000002cf2a8>] domain_build.c#construct_domU+0x9cc/0xa8c
> (XEN)    [<00000000002d0440>] create_domUs+0xe8/0x224
> (XEN)    [<00000000002d4988>] start_xen+0xafc/0xbf0
> (XEN)    [<00000000002001a0>] arm64/head.o#primary_switched+0xc/0x1c
> (XEN)
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Assertion 's <= e' failed at rangeset.c:189
> (XEN) ****************************************
>
>

-- 
Regards,

Oleksandr Tyshchenko

--000000000000e2219d05d056af71
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Tue, Nov 9, 2021 at 12:45 AM Stefa=
no Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org">sstabellini@ker=
nel.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"=
margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-lef=
t:1ex">Hi Oleksandr, Julien,<br></blockquote><div><br></div><div>Hi Stefano=
, Julien.</div><div><br></div><div>[Sorry for the possible format issues]</=
div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
I discovered a bug caused by the recent changes to introduce extended<br>
regions in make_hypervisor_node (more logs appended):<br>
<br>
<br>
(XEN) d1 BANK[0] 0x00000040000000-0x0000007e800000 (1000MB)<br>
(XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)<br>
(XEN) DEBUG find_unallocated_memory 994 s=3D40000000 e=3D7e7fffff<br>
(XEN) DEBUG find_unallocated_memory 994 s=3D200000000 e=3D1ffffffff<br>
(XEN) Assertion &#39;s &lt;=3D e&#39; failed at rangeset.c:189<br>
<br>
<br>
When a bank of memory is zero in size, then rangeset_remove_range is<br>
called with end &lt; start, triggering an ASSERT in rangeset_remove_range.<=
br>
<br>
One solution is to avoid creating 0 size banks. The following change<br>
does that:<br>
<br>
<br>
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c<br>
index 49b4eb2b13..3efe542d0f 100644<br>
--- a/xen/arch/arm/domain_build.c<br>
+++ b/xen/arch/arm/domain_build.c<br>
@@ -459,9 +459,12 @@ static void __init allocate_memory(struct domain *d, s=
truct kernel_info *kinfo)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto fail;<br>
<br>
=C2=A0 =C2=A0 =C2=A0bank_size =3D MIN(GUEST_RAM1_SIZE, kinfo-&gt;unassigned=
_mem);<br>
-=C2=A0 =C2=A0 if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1=
_BASE),<br>
+=C2=A0 =C2=A0 if ( bank_size &gt; 0 )<br>
+=C2=A0 =C2=A0 {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ( !allocate_bank_memory(d, kinfo, gaddr_to_=
gfn(GUEST_RAM1_BASE),<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bank_size) )<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 goto fail;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 goto fail;<br>
+=C2=A0 =C2=A0 }<br>
<br>
=C2=A0 =C2=A0 =C2=A0if ( kinfo-&gt;unassigned_mem )<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto fail;<br>
<br>
<br>
<br>
We have a couple of other options too:<br>
<br>
- remove the ASSERT in rangeset_remove_range<br>
There is an argument that we should simply return error<br>
fromrangeset_remove_range, rather than a full assert.<br>
<br>
- add a if (end &gt; start) check before calling rangeset_remove_range<br>
We could check that end &gt; start before calling rangeset_remove_range at<=
br>
all the call sites in domain_build.c. There are 5 call sites at the<br>
moment.<br>
<br>
Any other ideas or suggestions?<br></blockquote><div><br></div><div><br></d=
iv><div>Personally I would avoid creating zero-sized banks (your first solu=
tion) as I don&#39;t see any point in taking them into the account and expo=
sing them to the guest.</div><div><br>What I don&#39;t understand is how th=
is assert=C2=A0is triggered by upstream=C2=A0Xen (how the make_hypervisor_n=
ode() gets called for DomU)? Do you have some changes on top?<br></div><div=
><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x">
<br>
Cheers,<br>
<br>
Stefano<br>
<br>
<br>
<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff990000 e=3Dff990fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff990000 e=3Dff990fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff990000 e=3Dff990fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff990000 e=3Dff990fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Df9010000 e=3Df901ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Df9020000 e=3Df903ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Df9040000 e=3Df905ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Df9060000 e=3Df907ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd800000 e=3Dfd81ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff060000 e=3Dff060fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff070000 e=3Dff070fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd6e0000 e=3Dfd6e8fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd6e9000 e=3Dfd6edfff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd500000 e=3Dfd500fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd510000 e=3Dfd510fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd520000 e=3Dfd520fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd530000 e=3Dfd530fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd540000 e=3Dfd540fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd550000 e=3Dfd550fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd560000 e=3Dfd560fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd570000 e=3Dfd570fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd4b0000 e=3Dfd4bffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffa80000 e=3Dffa80fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffa90000 e=3Dffa90fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffaa0000 e=3Dffaa0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffab0000 e=3Dffab0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffac0000 e=3Dffac0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffad0000 e=3Dffad0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffae0000 e=3Dffae0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffaf0000 e=3Dffaf0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd070000 e=3Dfd09ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff100000 e=3Dff100fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff0b0000 e=3Dff0b0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff0c0000 e=3Dff0c0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff0d0000 e=3Dff0d0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff0e0000 e=3Dff0e0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff0a0000 e=3Dff0a0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff020000 e=3Dff020fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff030000 e=3Dff030fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff960000 e=3Dff960fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffa00000 e=3Dffa0ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd0b0000 e=3Dfd0bffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd490000 e=3Dfd49ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffa10000 e=3Dffa1ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd0e0000 e=3Dfd0e0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd480000 e=3Dfd480fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3D8000000000 e=3D8000ffffff<br>
(XEN) DEBUG handle_pci_range 1056 s=3De0000000 e=3Defffffff<br>
(XEN) DEBUG handle_pci_range 1056 s=3D600000000 e=3D7ffffffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff0f0000 e=3Dff0f0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dc0000000 e=3Dc7ffffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffa60000 e=3Dffa60fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd400000 e=3Dfd43ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd3d0000 e=3Dfd3d0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd0c0000 e=3Dfd0c1fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff160000 e=3Dff160fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff170000 e=3Dff170fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff040000 e=3Dff040fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff050000 e=3Dff050fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff110000 e=3Dff110fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff120000 e=3Dff120fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff130000 e=3Dff130fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff140000 e=3Dff140fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff000000 e=3Dff000fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff010000 e=3Dff010fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff9d0000 e=3Dff9d0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfe200000 e=3Dfe23ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff9e0000 e=3Dff9e0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfe300000 e=3Dfe33ffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd4d0000 e=3Dfd4d0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dff150000 e=3Dff150fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffa50000 e=3Dffa50fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffa50000 e=3Dffa50fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dffa50000 e=3Dffa50fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd4c0000 e=3Dfd4c0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd4a0000 e=3Dfd4a0fff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd4aa000 e=3Dfd4aafff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd4ab000 e=3Dfd4abfff<br>
(XEN) DEBUG find_memory_holes 1126 s=3Dfd4ac000 e=3Dfd4acfff<br>
(XEN) DEBUG find_memory_holes 1126 s=3D0 e=3D7fefffff<br>
(XEN) DEBUG find_memory_holes 1126 s=3D800000000 e=3D87fffffff<br>
(XEN) Extended region 0: 0x80000000-&gt;0xc0000000<br>
(XEN) Extended region 1: 0xc8000000-&gt;0xe0000000<br>
(XEN) Extended region 2: 0xf0000000-&gt;0xf9000000<br>
(XEN) Extended region 3: 0xffc00000-&gt;0x600000000<br>
(XEN) Extended region 4: 0x880000000-&gt;0x8000000000<br>
(XEN) Extended region 5: 0x8001000000-&gt;0x10000000000<br>
(XEN) Loading zImage from 0000000000e00000 to 0000000020000000-000000002136=
7a00<br>
(XEN) Loading d0 initrd from 0000000002200000 to 0x0000000028200000-0x00000=
000293f936d<br>
(XEN) Loading d0 DTB to 0x0000000028000000-0x0000000028009604<br>
(XEN) *** LOADING DOMU cpus=3D1 memory=3Dfa000KB ***<br>
(XEN) Loading d1 kernel from boot module @ 0000000003400000<br>
(XEN) Loading ramdisk from boot module @ 0000000004800000<br>
(XEN) Allocating mappings totalling 1000MB for d1:<br>
(XEN) d1 BANK[0] 0x00000040000000-0x0000007e800000 (1000MB)<br>
(XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)<br>
(XEN) DEBUG find_unallocated_memory 994 s=3D40000000 e=3D7e7fffff<br>
(XEN) DEBUG find_unallocated_memory 994 s=3D200000000 e=3D1ffffffff<br>
(XEN) Assertion &#39;s &lt;=3D e&#39; failed at rangeset.c:189<br>
(XEN) ----[ Xen-4.16-rc=C2=A0 arm64=C2=A0 debug=3Dy=C2=A0 Not tainted ]----=
<br>
(XEN) CPU:=C2=A0 =C2=A0 0<br>
(XEN) PC:=C2=A0 =C2=A0 =C2=A00000000000220e6c rangeset_remove_range+0xbc/0x=
2bc<br>
(XEN) LR:=C2=A0 =C2=A0 =C2=A000000000002cd508<br>
(XEN) SP:=C2=A0 =C2=A0 =C2=A00000000000306f60<br>
(XEN) CPSR:=C2=A0 =C2=A00000000020000249 MODE:64-bit EL2h (Hypervisor, hand=
ler)<br>
(XEN)=C2=A0 =C2=A0 =C2=A0 X0: 00008000fbf61e70=C2=A0 X1: 0000000200000000=
=C2=A0 X2: 00000001ffffffff<br>
(XEN)=C2=A0 =C2=A0 =C2=A0 X3: 0000000000000005=C2=A0 X4: 0000000000000000=
=C2=A0 X5: 0000000000000028<br>
(XEN)=C2=A0 =C2=A0 =C2=A0 X6: 0000000000000080=C2=A0 X7: fefefefefefeff09=
=C2=A0 X8: 7f7f7f7f7f7f7f7f<br>
(XEN)=C2=A0 =C2=A0 =C2=A0 X9: 717164616f726051 X10: 7f7f7f7f7f7f7f7f X11: 0=
101010101010101<br>
(XEN)=C2=A0 =C2=A0 =C2=A0X12: 0000000000000008 X13: 0000000000000009 X14: 0=
000000000306cb8<br>
(XEN)=C2=A0 =C2=A0 =C2=A0X15: 0000000000000020 X16: 000000000028c5a8 X17: 0=
000000000000000<br>
(XEN)=C2=A0 =C2=A0 =C2=A0X18: 0180000000000000 X19: 00000001ffffffff X20: 0=
000000000000001<br>
(XEN)=C2=A0 =C2=A0 =C2=A0X21: 0000000200000000 X22: 0000000200000000 X23: 0=
000000000000002<br>
(XEN)=C2=A0 =C2=A0 =C2=A0X24: 0000000000000002 X25: 00000000003070e0 X26: 0=
0000000002d9e68<br>
(XEN)=C2=A0 =C2=A0 =C2=A0X27: 00000000002d8d18 X28: 00008000fbf40000=C2=A0 =
FP: 0000000000306f60<br>
(XEN) <br>
(XEN)=C2=A0 =C2=A0VTCR_EL2: 0000000080023558<br>
(XEN)=C2=A0 VTTBR_EL2: 0000000000000000<br>
(XEN) <br>
(XEN)=C2=A0 SCTLR_EL2: 0000000030cd183d<br>
(XEN)=C2=A0 =C2=A0 HCR_EL2: 0000000000000038<br>
(XEN)=C2=A0 TTBR0_EL2: 0000000004b45000<br>
(XEN) <br>
(XEN)=C2=A0 =C2=A0 ESR_EL2: 00000000f2000001<br>
(XEN)=C2=A0 HPFAR_EL2: 0000000000000000<br>
(XEN)=C2=A0 =C2=A0 FAR_EL2: 0000000000000000<br>
(XEN) <br>
(XEN) Xen stack trace from sp=3D0000000000306f60:<br>
(XEN)=C2=A0 =C2=A0 0000000000307040 00000000002cf2a8 00008000fbf5a000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 00008000fbf40000 00000000003070a8 0000000000307de4 00000=
000002aa078<br>
(XEN)=C2=A0 =C2=A0 0000000880000000 0000000000000002 00000000002e8d08 00000=
000000fff00<br>
(XEN)=C2=A0 =C2=A0 00008000fbf61e70 00008000fbf5a000 00008000fbf61220 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000307040 00000000002cf288 00008000fbf5a000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 00008000fbf40000 00000000003070a8 0000000000307de4 65782=
c32766e6578<br>
(XEN)=C2=A0 =C2=A0 000000000030006e 2d6e65782c6e6578 6e65780036312e34 00000=
0006e65782c<br>
(XEN)=C2=A0 =C2=A0 0000000000307d80 00000000002d0440 00008000fbfd95a0 00000=
00000307dc8<br>
(XEN)=C2=A0 =C2=A0 00000000002d99b8 00000000002da338 0000000000307de4 00000=
000002aa078<br>
(XEN)=C2=A0 =C2=A0 000000000000000f 0000000000307110 0000000000000001 00c20=
10000000002<br>
(XEN)=C2=A0 =C2=A0 00000000003070c8 0000000000000000 6d933f29040f0000 00000=
02200000000<br>
(XEN)=C2=A0 =C2=A0 0010000000000000 0020000300000000 0020000000000000 00000=
000000fa000<br>
(XEN)=C2=A0 =C2=A0 0000000000000001 00008000fbf5a000 00008000fbf40000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000002 0000000040000000 000000003e800000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000200000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN)=C2=A0 =C2=A0 0000000000000000 0000000000000000 0000000000000000 00000=
00000000000<br>
(XEN) Xen call trace:<br>
(XEN)=C2=A0 =C2=A0 [&lt;0000000000220e6c&gt;] rangeset_remove_range+0xbc/0x=
2bc (PC)<br>
(XEN)=C2=A0 =C2=A0 [&lt;00000000002cd508&gt;] domain_build.c#make_hyperviso=
r_node+0x258/0x7f4 (LR)<br>
(XEN)=C2=A0 =C2=A0 [&lt;00000000002cf2a8&gt;] domain_build.c#construct_domU=
+0x9cc/0xa8c<br>
(XEN)=C2=A0 =C2=A0 [&lt;00000000002d0440&gt;] create_domUs+0xe8/0x224<br>
(XEN)=C2=A0 =C2=A0 [&lt;00000000002d4988&gt;] start_xen+0xafc/0xbf0<br>
(XEN)=C2=A0 =C2=A0 [&lt;00000000002001a0&gt;] arm64/head.o#primary_switched=
+0xc/0x1c<br>
(XEN) <br>
(XEN) <br>
(XEN) ****************************************<br>
(XEN) Panic on CPU 0:<br>
(XEN) Assertion &#39;s &lt;=3D e&#39; failed at rangeset.c:189<br>
(XEN) ****************************************<br>
<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
 class=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div=
 dir=3D"ltr"><span style=3D"background-color:rgb(255,255,255)"><font size=
=3D"2"><span style=3D"color:rgb(51,51,51);font-family:Arial,sans-serif">Reg=
ards,</span></font></span></div><div dir=3D"ltr"><br></div><div dir=3D"ltr"=
><div><span style=3D"background-color:rgb(255,255,255)"><font size=3D"2">Ol=
eksandr Tyshchenko</font></span></div></div></div></div></div></div></div><=
/div>

--000000000000e2219d05d056af71--


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 09:05:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 09:05:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223795.386673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkN3V-0003K9-5t; Tue, 09 Nov 2021 09:04:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223795.386673; Tue, 09 Nov 2021 09:04:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkN3V-0003K2-2n; Tue, 09 Nov 2021 09:04:37 +0000
Received: by outflank-mailman (input) for mailman id 223795;
 Tue, 09 Nov 2021 09:04:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkN3U-0003Js-DS; Tue, 09 Nov 2021 09:04:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkN3U-0003Qs-8T; Tue, 09 Nov 2021 09:04:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkN3T-00073r-Se; Tue, 09 Nov 2021 09:04:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkN3T-0000zc-Q6; Tue, 09 Nov 2021 09:04:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NCXnEAWV/VCeCFxyJNmAXgWIPhSTIEnGcIJDcWcZUE8=; b=12iqkRkeY8ZZTJyC56BFG6UfbC
	GJ4JoiQo2oYOxsm2cH2BYslTIEz8YEm5t/VmDOe3TQ52rtTbggn8Te3g7fOdI6D/u+MOw5JBUKaJ3
	WdlMIduoowanIwdw772em09fZS/ll13beCBzzdHqv39KH33u0wVEXGwH4pmI4XZJ6L74=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166088-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166088: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:allowable
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=7379f9e10a3b13ec8bcea756384b2ace8af7064d
X-Osstest-Versions-That:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 09:04:35 +0000

flight 166088 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166088/

Failures :-/ but no regressions.

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10   fail REGR. vs. 166080

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166080
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166080
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166080
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166080
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166080
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166080
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166080
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166080
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166080
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166080
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166080
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166080
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  7379f9e10a3b13ec8bcea756384b2ace8af7064d
baseline version:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b

Last test of basis   166080  2021-11-08 01:52:55 Z    1 days
Testing same since   166088  2021-11-08 21:39:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Christian Lindig <christian.lindig@citrix.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9bc9fff04b..7379f9e10a  7379f9e10a3b13ec8bcea756384b2ace8af7064d -> master


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 09:20:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 09:20:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223805.386694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNIg-0005f2-NZ; Tue, 09 Nov 2021 09:20:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223805.386694; Tue, 09 Nov 2021 09:20:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNIg-0005e8-Kb; Tue, 09 Nov 2021 09:20:18 +0000
Received: by outflank-mailman (input) for mailman id 223805;
 Tue, 09 Nov 2021 09:20:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AWUs=P4=epam.com=prvs=19475aedfb=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mkNIe-0005dv-BC
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 09:20:16 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e6cea56-413e-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 10:20:14 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A993s6D004946;
 Tue, 9 Nov 2021 09:20:11 GMT
Received: from eur02-am5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2055.outbound.protection.outlook.com [104.47.4.55])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3c7p1cg38e-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 09 Nov 2021 09:20:11 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM4PR0302MB2801.eurprd03.prod.outlook.com (2603:10a6:200:99::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov
 2021 09:20:08 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 09:20:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e6cea56-413e-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KeiIDd31q7ActeIQgdnTIcFndmMKCUupY5GNL4B+yM1dMD0x0o9rTPYXvEak/6h1Feo9wWLqEXdbD815OyUW2/3G7se+ZZtyzuBsTYcRbv/Wav3P/CcpTdOJ1bqMM60/0/EFJPrk46egYoSbXbxoKZ+Ly+Gwl0HFtwucSbERKDBu/tbsW52T6OvX3HTGDclMerXAZbyc1do/POZqHf3SGDUCmLa/FKpvSjqUGNQgmVrFSdeI7Wdbs2l0ZHlC9fBnVt9wb6SQe3utpeTvWrQ/WWNQcZJv92sTG1NKggK8qElUs7DPolrjciBaYA9swazFrSLNVwfb8naxzBiPKo+gJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LSaoZOnfQ5M7uQbM3WDYGvwgK1SH1oBRNQXWXT59lKA=;
 b=XHrysb1ogpcgkPpJ347Vw5GANBa/wsCL3UbtupQKTVdz2L1ubwAz2HprhxMPXJOfWVNl1W9YxKOcCAe8DrSiTwneICUd4rQcujZsyNvq0ZftFh/lhr7gbrDZedoLUZniPRt6y6sNVRpa3bTfkaqb4BhYgKj4vxAGb+cmOKT2AabKt6XkLjY09LrzsmK0oHjsbG8Npcd8+t7k2CdZD6ty7NjeC+jIbpydQScp6vYT666VZ57PDPthl8KMYMq0vUsYSWIWeh2AkfjKwOBABIAMKU2LAou/tl6e3/WWlPdFuT1Q5HlSaljvXWfc/8x6A8SRG3O3NvdLByZgoRQXs5Ku/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LSaoZOnfQ5M7uQbM3WDYGvwgK1SH1oBRNQXWXT59lKA=;
 b=L9Zs+6o/5DWvnWWxC2Fk45rRfqTQncOQ3dDjd1dLpPKGokWSml5DkZ0SekXFB4+Z0pphS36OvgA53GoWcRlz+F8ul/cizhgtaYVo+G7wImkhwa6zAoRp5dsyzh+F6sQvbndyW3WJcEAZwvI3jLHfMNdSZPuE1qcgSufweHDLqUmq06fC76PUMIQgLGE1NGmgCj+ZaKsOP/rMha7zPrFYvePX+ppL4rWCWbjGr882/15kn4j6zldTT6u5GA1k3DYfShFM6MXTEbUwuns7MytZTrBBlUl6fKyFVr9uGXnz+Ol1b4qgcwtXnUulFXY6wJ4HzraLX9DdrvcTayR9HE20/A==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Topic: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Index: AQHX0g8SPRoS2Ac9eEeTcWew1GI8x6v68dqA
Date: Tue, 9 Nov 2021 09:20:08 +0000
Message-ID: <6a8febab-1bd7-7896-e1da-b021513293ac@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
In-Reply-To: <20211105063326.939843-4-andr2000@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: bf0f41c9-25c6-4021-a279-08d9a3621fbb
x-ms-traffictypediagnostic: AM4PR0302MB2801:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM4PR0302MB280189754507DC4A701CFF77E7929@AM4PR0302MB2801.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 aReg3K8foG/D9c8yV1gUpbI8p7lbW9OCAXNgfqHEmsA5nL4oSryk08IUZ6ltL3914PCNiWRq0ANvSZpUtZBiM4ZUivrOqHc525YkNM5RNFDCFxzwMZz46RDzstr5RT+OH63y2rxSzfuNRYog8MKhk6Ww4WOg+DO4HuCaiQT0K8QaB3vbUrpMChbHlT3cvbuK4yw44xwcDL+v/RTy/Uwfnq1ywft4Di22il/rmazszTLWqoDYyEMlL9Z8vaNFHzENQRwt/XyDhbscqnhlTNX7tOEob2N26kQO169k+kB6sewUiY9iDMx+ZLo0GRLZvTTGgHyvOIZHAPxc5U06hLoqX7ohjWmw3Cr9nPUaxE1jveilzuyHaABIMDEpoVUSnlSiHgDOO1poHPP9RyVv6EE4GL08qzl9bHTAOMd22qBHrlcJ5eXsebfCT7FG0BVFphIQwcpdeC36gcVeAhnptzMzK4HT5SnBfQg5R0R37wfpEFxkIp5LcCZpEK3QjkBhebZ92nzot39ODoVTqvjOl/WJnXY9EnKZj+pjn9BoaFCDWCQ0BdC2/YaUFDwWhDpMoyVG1VcDO6siwBRHuGgHhe77+5diHZx+21j6Ur8ztmBS6NvxPFjmdOeao91H37gUBxOA9H+6Q13mOHSDDPYAivkxYuEyK958vyaIZImnC+rqVcHtM4d4gP1+vM+dab7tBOK2vCG4ItuIzgi9pJmKv/+u2rGu/XCfrUX0CQ6+WGNtMEDR4f/Bb8LePMt6EEQTuZ9s
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66476007)(86362001)(6486002)(6916009)(66446008)(64756008)(66556008)(508600001)(2616005)(26005)(54906003)(66946007)(91956017)(36756003)(7416002)(5660300002)(76116006)(71200400001)(2906002)(31686004)(38100700002)(107886003)(53546011)(122000001)(4326008)(6506007)(31696002)(8936002)(38070700005)(8676002)(186003)(316002)(6512007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?YkJJb3pvcndDbWl6cDRoUmFxaTI3Qk9QYjh3eS9VRnlkMXVhaDcwMHZmWEpr?=
 =?utf-8?B?YkpMV2kwdEMrR2JIVE1EZ3RxU29LY3B6elJTN0oyUjdLYnlwTFRjTVlTRVV4?=
 =?utf-8?B?Z2s5YVQxUUVGRmE3RnNKdEozOVlzdW9WYWQ5aWlIbTNZSGJUbDdzS1UrSFBH?=
 =?utf-8?B?UGJNUVVSQXZtM05JK1lNZFlueFIvUDJRZi82V1ZQcjJGYmdIcFl1ZDdZVzIx?=
 =?utf-8?B?b1VUZkFLRCs4M21acXdKMXhnMlUxajNucFAyeElySHQ4M212K0pIL3FLVE9o?=
 =?utf-8?B?VlNOT09VWVlRVjZpSEJBaXJ5L2phQTluenI4WXFvOUh2SGFVRFg2eWpWYWQy?=
 =?utf-8?B?aGlFQk1HSEZaVHNxY3MwTkNsenZoZ29tWjZGYytOZ1BSV0tMUGRNQkM2Q3dJ?=
 =?utf-8?B?MGRXV1BaMjZtdU9ROEdGclRzTnFFa2Evd2d4eXowN0NBMGNUNHAvZWhSelI0?=
 =?utf-8?B?NVFmbnYrZ3lYU1ZrbE9Dc2c0ZlpuOU9BanFkUFZiYmxXYVdQRmV6UUJzZnpO?=
 =?utf-8?B?Y1pGLy9EKzdocmtzbnN5Y3R4Tnc4bXpFb0pHR1I2VTduQXVxblRlVHNydnBR?=
 =?utf-8?B?dkFBQVBraHlsTnY4dnNQNTkrWU5KTmNhU3ZVMnFzYXhmaE9TRjM4M2g1ZTQw?=
 =?utf-8?B?L3NpSHcxaVJBMGlkTENLQi9aUHVZYm9XZXRDcWFHalpVQk93R1hJQnJ1aVMz?=
 =?utf-8?B?SUlrS0Qyc3hLekJTOWd2VUlsaWErbHV5MmVJbWUyWXJxOXhiRWRNc0xVSS84?=
 =?utf-8?B?OGxZR1lVK1lsNURsd2djNDJHMlZMTWFDenREcm1SMHhWQUU2SElQS2dOTUVt?=
 =?utf-8?B?T3h4N1o4c3M1aU8vYzZaVUYzZmxMd290K2gvL05RSDdIdzVIc3dvcXk2aGd1?=
 =?utf-8?B?aTJVc3QzUkFibkxLYjhnd2h3VkRzRDR5U2g1TDkvMC9qSEl1TWxiK1U0Skcz?=
 =?utf-8?B?a3N4ajU5MDJYUWN4bUNQWU1zaVdFclRrMk9yRkV4WDNlVjhTUTltVnpGVXdz?=
 =?utf-8?B?MDN3eE5HeEF4V0hwVkFxbTVaVzVNVWNYcTZyRTNjTDlyd0dZdG9mbC92VTJ3?=
 =?utf-8?B?b0hhU0ExN2JmSTkrYmV0aFdYNksraThmcHJXRWJOWERWOXVrdGZrMWlXcUhE?=
 =?utf-8?B?MzUvaGd5K1hmYVY1WHF2cyt4dlRFTmVlM3ZITEpBTWwzRXhZeGx6SG9wS2lQ?=
 =?utf-8?B?Q0h4UTh5ak14Q2pzL2JQWFlGUHJhTU1rRlpZNDQwKzFXWmwzcDV6UE14eUUy?=
 =?utf-8?B?UmpVVUZBcVBheFJteEdOWlJlNVJ0VUVKcTdBcWtZU2gveXlGSlJWY0txSlk3?=
 =?utf-8?B?V3l1UW9nN3NidTFYMUFPUytwUFpoZFFrM2VPRk02UUE2MGlPTmxpWXRMOS9U?=
 =?utf-8?B?UzhVa0hweGNKSHJaUFRXTk4zazRkckNpb0xFV1lqZklldFRSTmxPd2VFWVNF?=
 =?utf-8?B?QjV5ZzlMYk5rNWljQ2dEOVhxMDBZNGVnNDlXU2JiQkM5OXZsVy84NUFNSFVl?=
 =?utf-8?B?SzF0ZFlQdC9OcXJUa3ZhSExac1BscUMvc0E5WmNueGd0VzUxQ1RFRXhVK0tv?=
 =?utf-8?B?YUc0SStURzJFeDNaTEE2MmJWVXZnbmFnVFVyS2NrL29mRlltaXFINE16SFZI?=
 =?utf-8?B?Z2xhTEVWNUMvU1RYaC9SYnM1QjFwYnM0Y1hUUTZIUHZVZXN0SjRhWlRBRzlR?=
 =?utf-8?B?U0NCd0pDL3lWTGFKMWJxYm4wVTl2bzA3Z1lFZGEranllM0VnU2dTdktJU3Yv?=
 =?utf-8?B?V011aDVkWUZXTEx5SFNDUk5MeXRlUytuaVZzVlh6eEtYNzd1OUZETDBMcy9Y?=
 =?utf-8?B?V2RlTEtkT2lvYmdtSXFxaUttSzF2SVNUQ3JXUFpBaTg5cjFNYllQQ2ZqeXhR?=
 =?utf-8?B?djVaRFFwVEJhbWErWHgxOGJlYlRCajVSSDJYV3N6NmhBSjZiYjM4TXZsM0hh?=
 =?utf-8?B?VFBldEdqVGNXZFBTZlN2blFQTXR0ckVQTkM4L3BTaW5uaURDZDhtQjhxK3VU?=
 =?utf-8?B?aTJqbzJQT25WREVoUVJxbW9JcUJCMFZGSDFaWUtZZEd2RWVJOHFacXVJYVd1?=
 =?utf-8?B?TFZ4UXZFcGREL3hYcjVYUEp0N2s0aXNzcGJOMFVsREo2cWlnSm9PMWd4emUv?=
 =?utf-8?B?VXNlZW1ERlQvUlVuNjZCdlpvN1ZwWW9RMFpvUWRFU3IwMzdFdXdMUU1YU29t?=
 =?utf-8?B?WWxzY1pSeWYrUkZMcmhOdnRzTFpUZGZxRjZzTUR0WGgvK2xIdy82RUZmNGFl?=
 =?utf-8?B?UkxER3NIV0NSVyt1VTJMTUJUbDdNUWkwZlh0eE9hMTNvZnRMcTA4bzZmcC9E?=
 =?utf-8?B?K0grWnYwK3FESGpienhQOWlueHEyeFRqRHJQc3NnUnhvUmJUV2FFZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <40B7C8BEBF892F4982DC062960BCBF71@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf0f41c9-25c6-4021-a279-08d9a3621fbb
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2021 09:20:08.2954
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: AJQ2m5MmniQWET/snwxxCwwMuGcnlN4V0m4rK3LnO2bpOiz3AMESJijpgKswJMpLCnUDaMHaIPbrA4q/c3miMCoARImsau67H8uohmK86VPVxyBu+HHgdfbIvZvMGhJC
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0302MB2801
X-Proofpoint-GUID: 4KeKt2At0zEjB270qb1HEpfPB2fkAeT6
X-Proofpoint-ORIG-GUID: 4KeKt2At0zEjB270qb1HEpfPB2fkAeT6
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-09_02,2021-11-08_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=936
 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501
 mlxscore=0 lowpriorityscore=0 adultscore=0 phishscore=0 bulkscore=0
 spamscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111090055

DQoNCk9uIDA1LjExLjIxIDA4OjMzLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4g
RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw
YW0uY29tPg0KPg0KPiBbc25pcF0NCj4gK2ludCBwY2lfaG9zdF9pdGVyYXRlX2JyaWRnZXMoc3Ry
dWN0IGRvbWFpbiAqZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqY2Ip
KHN0cnVjdCBkb21haW4gKmQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2UpKQ0KPiArew0KPiArICAgIHN0cnVj
dCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZTsNCj4gKyAgICBpbnQgZXJyOw0KPiArDQo+ICsgICAg
bGlzdF9mb3JfZWFjaF9lbnRyeSggYnJpZGdlLCAmcGNpX2hvc3RfYnJpZGdlcywgbm9kZSApDQo+
ICsgICAgew0KPiArICAgICAgICBlcnIgPSBjYihkLCBicmlkZ2UpOw0KPiArICAgICAgICBpZiAo
IGVyciApDQo+ICsgICAgICAgICAgICByZXR1cm4gZXJyOw0KPiArICAgIH0NCj4gKyAgICByZXR1
cm4gMDsNCj4gK30NCj4gKw0KPiArdW5zaWduZWQgaW50IHBjaV9ob3N0X2dldF9udW1fYnJpZGdl
cyh2b2lkKQ0KPiArew0KPiArICAgIHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZTsNCj4g
KyAgICB1bnNpZ25lZCBpbnQgY291bnQgPSAwOw0KPiArDQo+ICsgICAgbGlzdF9mb3JfZWFjaF9l
bnRyeSggYnJpZGdlLCAmcGNpX2hvc3RfYnJpZGdlcywgbm9kZSApDQo+ICsgICAgICAgIGNvdW50
Kys7DQo+ICsNCj4gKyAgICByZXR1cm4gY291bnQ7DQo+ICt9DQo+ICsNCj4NClRoaXMgY2FuIGJl
IGV2ZW4gc2ltcGxlciBpZiBwY2lfaG9zdF9pdGVyYXRlX2JyaWRnZXMgcmV0dXJucyB0aGUgY291
bnQ6DQoNCi1pbnQgcGNpX2hvc3RfaXRlcmF0ZV9icmlkZ2VzKHN0cnVjdCBkb21haW4gKmQsDQot
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
aW50ICgqY2IpKHN0cnVjdCBkb21haW4gKmQsDQotwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qg
cGNpX2hvc3RfYnJpZGdlICpicmlkZ2UpKQ0KK2ludCBwY2lfaG9zdF9pdGVyYXRlX2JyaWRnZXNf
YW5kX2NvdW50KHN0cnVjdCBkb21haW4gKmQsDQorwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgKCpj
Yikoc3RydWN0IGRvbWFpbiAqZCwNCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlKSkNCiDCoHsNCiDCoMKgwqDCoCBz
dHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2U7DQotwqDCoMKgIGludCBlcnI7DQorwqDCoMKg
IGludCBlcnIsIGNvdW50ID0gMDsNCg0KIMKgwqDCoMKgIGxpc3RfZm9yX2VhY2hfZW50cnkoIGJy
aWRnZSwgJnBjaV9ob3N0X2JyaWRnZXMsIG5vZGUgKQ0KIMKgwqDCoMKgIHsNCiDCoMKgwqDCoMKg
wqDCoMKgIGVyciA9IGNiKGQsIGJyaWRnZSk7DQogwqDCoMKgwqDCoMKgwqDCoCBpZiAoIGVyciAp
DQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7DQorwqDCoMKgwqDCoMKgwqAg
Y291bnQgKz0gZXJyOw0KIMKgwqDCoMKgIH0NCi3CoMKgwqAgcmV0dXJuIDA7DQotfQ0KDQpUaGVu
IHBjaV9ob3N0X2dldF9udW1fYnJpZGdlcyBnb2VzIGF3YXkgYW5kIHdlIGNhbiBjb3VudA0KZGlm
ZmVyZW50IGVudGl0aWVzIHdpdGggdGhlIHNhbWUgaXRlcmF0b3IgYW5kIGEgc2ltcGxlIGNhbGxi
YWNrLg0KVGhpcyBiZWNvbWVzIHBvc3NpYmxlIGFzIHRoZXJlIGlzIGEgc2luZ2xlIHVzZXIgZm9y
IHBjaV9ob3N0X2l0ZXJhdGVfYnJpZGdlcw0Kbm93IHdoaWNoIHNldHMgdXAgTU1JT3MsIHNvIHRo
ZSBjaGFuZ2UgYWJvdmUgc2VlbXMgdG8gYmUgcmVhc29uYWJsZQ0KSSB3aWxsIGluY2x1ZGUgdGhp
cyBjaGFuZ2UgaW4gdjcNCg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 09:23:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 09:23:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223813.386706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNM1-0006Mh-DO; Tue, 09 Nov 2021 09:23:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223813.386706; Tue, 09 Nov 2021 09:23:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNM1-0006Ma-9F; Tue, 09 Nov 2021 09:23:45 +0000
Received: by outflank-mailman (input) for mailman id 223813;
 Tue, 09 Nov 2021 09:23:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wW2L=P4=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1mkNM0-0006MU-85
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 09:23:44 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2060f.outbound.protection.outlook.com
 [2a01:111:f400:7d00::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bab0659a-413e-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 10:23:42 +0100 (CET)
Received: from DB6PR0501CA0027.eurprd05.prod.outlook.com (2603:10a6:4:67::13)
 by AS4PR08MB7432.eurprd08.prod.outlook.com (2603:10a6:20b:4e4::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 09:23:40 +0000
Received: from DB5EUR03FT053.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:4:67:cafe::e4) by DB6PR0501CA0027.outlook.office365.com
 (2603:10a6:4:67::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 09:23:39 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT053.mail.protection.outlook.com (10.152.21.119) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Tue, 9 Nov 2021 09:23:39 +0000
Received: ("Tessian outbound 2bb1f94ba47e:v108");
 Tue, 09 Nov 2021 09:23:39 +0000
Received: from d9aa2671ea87.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 17DF6259-FEF3-4675-942B-ACC2CDD3213B.1; 
 Tue, 09 Nov 2021 09:23:29 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d9aa2671ea87.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 09 Nov 2021 09:23:29 +0000
Received: from AS8PR08MB6808.eurprd08.prod.outlook.com (2603:10a6:20b:39c::6)
 by AM6PR08MB4724.eurprd08.prod.outlook.com (2603:10a6:20b:cd::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov
 2021 09:23:25 +0000
Received: from AS8PR08MB6808.eurprd08.prod.outlook.com
 ([fe80::3d99:b3e8:1c0:6fcd]) by AS8PR08MB6808.eurprd08.prod.outlook.com
 ([fe80::3d99:b3e8:1c0:6fcd%9]) with mapi id 15.20.4669.010; Tue, 9 Nov 2021
 09:23:23 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO2P265CA0050.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:60::14) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.13 via Frontend Transport; Tue, 9 Nov 2021 09:23:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bab0659a-413e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=G+LiQdzyQQpvVn4ryd7LFItxGV6ZzLB5MwHHA38ze7s=;
 b=z6tbpJw8o7CK/BP2+gP6xk4qchlN+EHnAIOqanAexj79oCVkVtsgNlutH45UvG7rwbOgUN7nvVFY1tGzicfbd6ac/9jgcVkPivrT87/I82MPLFEqxtGDP0VWleeL+vnu09nMZwGaBHNFiaXb+rzuzlNCq4p+8TaKMe0SEVxaDy4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 30f74906000b6162
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YKcVrwKdQF4VrjOrst/EbZmjdyi1bXd1AgD/N8jIJO5AfK+TUgma3gBl6pcW92pqHOo00m/fPlYxyY1Az4PzXi5tycGPQ+ZRgBrcX2CZShuZ957vOByFjWlQcGPCUdWXAler5V8bUvbQ01qOhSG4wCbqIMSaKU/9P/1Q1v2z9YbINHw4urJvXHhA1QgoIPPz+Y6JpRS3UCCtLe/VNvwES7NGEh5pllreXvtqVA0i3kogS4LiCniodG/VAO4xUnEV+nDXjwLhkWWv2wkC1iMPevI2d0vbF7RJAZUmRzvc2qJtxI7A+Q6CXE1ucph1zVK0dntI5LSI8Fg7XhRzwmNMBQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=G+LiQdzyQQpvVn4ryd7LFItxGV6ZzLB5MwHHA38ze7s=;
 b=m4R6A2nIlEEQmuUcSemc09NjlWj3kztxMZx8KyHoHsU/iE9nV/e9Lr7TtgOe8a79PIFA9N3BdhL4hYCCzv8O6w5yiNxQlfVngsxkW4N93Cf0E0tfj54ee+euw4j8uv/qUARfMvQxcWf3Fuk7gFFn8t3UTNoGqRb8XJuI/rUBrykm3p17e50TuoRk8C/whzpGHUkRDzrzqZaV/WINK9EEOvM/UGxjlgP8I7QbtM8qn4L4tIIVC5jZHBhNkphbLu9JNB/YfNZE/+cHgqa1IzakpQ3JaSxXwGr0fKQORBygw9Mx7N0w9ph1iQp7sBdmBHSFQ6ugFIsr6UWM8EXsdHexbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=G+LiQdzyQQpvVn4ryd7LFItxGV6ZzLB5MwHHA38ze7s=;
 b=z6tbpJw8o7CK/BP2+gP6xk4qchlN+EHnAIOqanAexj79oCVkVtsgNlutH45UvG7rwbOgUN7nvVFY1tGzicfbd6ac/9jgcVkPivrT87/I82MPLFEqxtGDP0VWleeL+vnu09nMZwGaBHNFiaXb+rzuzlNCq4p+8TaKMe0SEVxaDy4=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
Date: Tue, 9 Nov 2021 09:23:16 +0000
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <7A756250-0011-480C-B64B-C6FAF5008E12@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
To: Stefano Stabellini <sstabellini@kernel.org>,
 Jan Beulich <jbeulich@suse.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO2P265CA0050.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:60::14) To AS8PR08MB6808.eurprd08.prod.outlook.com
 (2603:10a6:20b:39c::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 91fadf71-9730-41c1-1533-08d9a3629db4
X-MS-TrafficTypeDiagnostic: AM6PR08MB4724:|AS4PR08MB7432:
X-Microsoft-Antispam-PRVS:
	<AS4PR08MB7432F5A0232356CD5B5D10ACE4929@AS4PR08MB7432.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:1247;OLM:1247;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 IHHZ3LFH9BebxjXHgbTiAUOt0pc75CneKo9OZgNrDI2y3LfA+IjMKuahpsl9FzzWbfcixxEzVaDBepYnuo/xF+zrER59HEN2D1u8lQBl4YsvoT/aLh+l42zZSKVBW9roqIqYfblv5SxTnli/yHlcQxZfMD/UbqlMnbVubyZSto3SZisTxaitmrTucdLEIaK49aHg5YltG9PB7Avpx9AcpUeYz2+jBcW3GDI8AY76AgExRr2HlwZk3N0HYAghqF40esuoEJMmV5GjMPf8COsFqji5CrGwumJYreCJbkCVuf+p4seqSrQTWT3zeCTXfmsuENkjNXG6jaiHuc14bJYPys73ngrI2af+O+BHmNKSSKUAr6USvX9Ptwy9eWMymR4W0M3hkQARyXSMnh0N8Gt0+9MRotTYXSoiBTEugTSbaKBuyAGbZlxBRLcq+wmKJ1PaJQ2LyzuFGwO2JeDbPqnBNvwurXrJ8ujEXpSsXyjqhLD3RvVe7U8uLxHKsbhnnT3wv0G6HuCwSZcfpCQNBtZ3DdZr0sWROMjCfPrsImmcv8hnTPvIQNkHx/xaAhU0VX/I2BxOOcuwMW5NBMT06yzoC3TbqbwDOoApjhv7zMOJILpF1UZycgcEagOnDIk6W9uvAwsFSSz0jdkkvwC/e/tNHyl3wftVr3+fvErt/nEmiChgz2AI0GzB6sLqDScXZKB3sPoW1K8FmeNEzzeEmNhqmxljZdePOmysj7ZcvXv4ZeE=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6808.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(4326008)(83380400001)(44832011)(38350700002)(8676002)(66476007)(8936002)(6512007)(30864003)(508600001)(956004)(86362001)(66946007)(6486002)(66556008)(38100700002)(316002)(110136005)(2906002)(6666004)(52116002)(54906003)(33656002)(36756003)(5660300002)(186003)(26005)(6506007)(53546011)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4724
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT053.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5afe9e43-ec56-4106-c242-08d9a36293f4
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	5uG0DyAF2W8tcSPWP6Qp3uHYUCXi8zBqEx5AU7Kjx7Q9Ou45P1KVY2TgdUoLu4R6MwEmEtlG/4knGdJTAiPFHqwg1I7QgeMvua9dT1mKUY1Qf4/UjrQSXdn4F58d0ANgVKT89YChsBN7Qa3hQG7pu09SbhlRUXSAqBgChocFSLq1ury+fh7yhOK9ulpwTZkFqsPVHZi0SxzDLOCVD7Y/bpUxpPsHa0kR0Mc4+epFOhAHW3PdxK8QKfXpb1b0GTLjfMZEUd9mi4MdsrNN1gxzLaknl1UiWkbRnwdxuYhA471GOxycLrz3X/dLvavT4J3rHueQuvD635mygdXx+92nzkLBcwbVLDnA8UdSgmRGEHJZ44/H4d8rxwBoVhuyEWxGQU/SEGGMMMDny8LCb/8ke7xNQ+A27cL9DSndFFrlOkndlP4yLoLxaI3B1lAmihcGlIBWPh+Ufe49oYMt6Y2JUP8LrOHy02rTAMDle8al7jgRi7zv7wql7BAr4CjCO564eQbkGpvjZC/EKP6z5cIMTFebPqHyi/4DgQVurRjKbbXYXb74UMJcwciTdmLJlurul7yx51z5N2jUhGCdmT977CkDvZt3sZrw78i1txNYRe1FGmIyN27w5TZxULtmy596PmxxVVp2tgvI3RrwWh2Uun4lwy0GbnhMjDdJbWy0fAc2MsfDjp2Kv4a5PDAgAIBai5927saSr+e6KsWeEXk6dA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(186003)(336012)(6486002)(70206006)(47076005)(356005)(81166007)(316002)(54906003)(2906002)(26005)(82310400003)(110136005)(4326008)(70586007)(8676002)(956004)(83380400001)(8936002)(36756003)(2616005)(6666004)(53546011)(6506007)(6512007)(44832011)(30864003)(33656002)(36860700001)(5660300002)(86362001)(508600001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 09:23:39.7503
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 91fadf71-9730-41c1-1533-08d9a3629db4
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT053.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7432



> On 9 Nov 2021, at 02:11, Stefano Stabellini <sstabellini@kernel.org> wrot=
e:
>=20
> On Mon, 8 Nov 2021, Jan Beulich wrote:
>> On 05.11.2021 16:33, Stefano Stabellini wrote:
>>> On Fri, 5 Nov 2021, Jan Beulich wrote:
>>>> On 04.11.2021 22:50, Stefano Stabellini wrote:
>>>>> On Thu, 4 Nov 2021, Luca Fancellu wrote:
>>>>>>> On 4 Nov 2021, at 21:35, Stefano Stabellini <sstabellini@kernel.org=
> wrote:
>>>>>>> On Thu, 4 Nov 2021, Luca Fancellu wrote:
>>>>>>>>> On 4 Nov 2021, at 20:56, Stefano Stabellini <sstabellini@kernel.o=
rg> wrote:
>>>>>>>>> @@ -851,10 +853,14 @@ static int __init handle_dom0less_domain_no=
de(EFI_FILE_HANDLE dir_handle,
>>>>>>>>> * dom0 and domU guests to be loaded.
>>>>>>>>> * Returns the number of multiboot modules found or a negative num=
ber for error.
>>>>>>>>> */
>>>>>>>>> -static int __init efi_check_dt_boot(EFI_FILE_HANDLE dir_handle)
>>>>>>>>> +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_ima=
ge)
>>>>>>>>> {
>>>>>>>>>   int chosen, node, addr_len, size_len;
>>>>>>>>>   unsigned int i =3D 0, modules_found =3D 0;
>>>>>>>>> +    EFI_FILE_HANDLE dir_handle;
>>>>>>>>> +    CHAR16 *file_name;
>>>>>>>>> +
>>>>>>>>> +    dir_handle =3D get_parent_handle(loaded_image, &file_name);
>>>>>>>>=20
>>>>>>>> We can=E2=80=99t use get_parent_handle here because we will end up=
 with the same problem,
>>>>>>>> we would need to use the filesystem if and only if we need to use =
it,=20
>>>>>>>=20
>>>>>>> Understood, but it would work the same way as this version of the p=
atch:
>>>>>>> if we end up calling read_file with dir_handle =3D=3D NULL, then re=
ad_file
>>>>>>> would do:
>>>>>>>=20
>>>>>>> blexit(L"Error: No access to the filesystem");
>>>>>>>=20
>>>>>>> If we don't end up calling read_file, then everything works even if
>>>>>>> dir_handle =3D=3D NULL. Right?
>>>>>>=20
>>>>>> Oh yes sorry my bad Stefano! Having this version of the patch, it wi=
ll work.
>>>>>>=20
>>>>>> My understanding was instead that the Jan suggestion is to revert th=
e place
>>>>>> of call of get_parent_handle (like in your code diff), but also to r=
emove the
>>>>>> changes to get_parent_handle and read_file.
>>>>>> I guess Jan will specify his preference, but if he meant the last on=
e, then
>>>>>> the only way I see...
>>>>>=20
>>>>> I think we should keep the changes to get_parent_handle and read_file=
,
>>>>> otherwise it will make it awkward, and those changes are good in thei=
r
>>>>> own right anyway.
>>>>=20
>>>> As a maintainer of this code I'm afraid I have to say that I disagree.
>>>> These changes were actually part of the reason why I went and looked
>>>> how things could (and imo ought to be) done differently.
>>>=20
>>> You know this code and EFI booting better than me -- aren't you
>>> concerned about Xen calling get_parent_handle / dir_handle->Close so
>>> many times (by allocate_module_file)?
>>=20
>> I'm not overly concerned there; my primary concern is for it to get call=
ed
>> without need in the first place.
>=20
> Exactly my thinking! Except that now it gets called 10x times with
> dom0less boot :-(
>=20
>=20
>>> My main concern is performance and resource utilization. With v3 of the
>>> patch get_parent_handle will get called for every module to be loaded.
>>> With dom0less, it could easily get called 10 times or more. Taking a
>>> look at get_parent_handle, the Xen side doesn't seem small and I have
>>> no idea how the EDK2 side looks. I am just worried that it would
>>> actually have an impact on boot times (also depending on the bootloader
>>> implementation).
>>=20
>> The biggest part of the function deals with determining the "residual" o=
f
>> the file name. That part looks to be of no interest at all to
>> allocate_module_file() (whether that's actually correct I can't tell). I
>> don't see why this couldn't be made conditional (e.g. by passing in NULL
>> for "leaf").
>=20
> I understand the idea of passing NULL instead of "leaf", but I tried
> having a look and I can't tell what we would be able to skip in
> get_parent_handle.
>=20

Hi Stefano, Jan,

> Should we have a global variable to keep the dir_handle open during
> dom0less module loading?

I thought about a solution for that, here the changes, please not that I=E2=
=80=99ve just built them, not tested,
Would they be something acceptable to have loaded_image global?

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 458cfbbed4..b4d86e9f7c 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -44,17 +44,17 @@ void __flush_dcache_area(const void *vaddr, unsigned lo=
ng size);
=20
 static int get_module_file_index(const char *name, unsigned int name_len);
 static void PrintMessage(const CHAR16 *s);
-static int allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
+static int allocate_module_file(EFI_FILE_HANDLE *dir_handle,
                                 const char *name,
                                 unsigned int name_len);
-static int handle_module_node(EFI_LOADED_IMAGE *loaded_image,
+static int handle_module_node(EFI_FILE_HANDLE *dir_handle,
                               int module_node_offset,
                               int reg_addr_cells,
                               int reg_size_cells,
                               bool is_domu_module);
-static int handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
+static int handle_dom0less_domain_node(EFI_FILE_HANDLE *dir_handle,
                                        int domain_node);
-static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
+static int efi_check_dt_boot(void);
=20
 #define DEVICE_TREE_GUID \
 {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0x=
e0}}
@@ -647,11 +647,10 @@ static void __init PrintMessage(const CHAR16 *s)
  * This function allocates a binary and keeps track of its name, it return=
s the
  * index of the file in the modules array or a negative number on error.
  */
-static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
+static int __init allocate_module_file(EFI_FILE_HANDLE *dir_handle,
                                        const char *name,
                                        unsigned int name_len)
 {
-    EFI_FILE_HANDLE dir_handle;
     module_name *file_name;
     CHAR16 *fname;
     union string module_name;
@@ -686,12 +685,11 @@ static int __init allocate_module_file(EFI_LOADED_IMA=
GE *loaded_image,
     file_name->name_len =3D name_len;
=20
     /* Get the file system interface. */
-    dir_handle =3D get_parent_handle(loaded_image, &fname);
+    if ( !*dir_handle )
+        *dir_handle =3D get_parent_handle(&fname);
=20
     /* Load the binary in memory */
-    read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
-
-    dir_handle->Close(dir_handle);
+    read_file(*dir_handle, s2w(&module_name), &module_binary, NULL);
=20
     /* Save address and size */
     file_name->addr =3D module_binary.addr;
@@ -711,7 +709,7 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE=
 *loaded_image,
  * for the reg property into the module DT node.
  * Returns 1 if module is multiboot,module, 0 if not, < 0 on error
  */
-static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
+static int __init handle_module_node(EFI_FILE_HANDLE *dir_handle,
                                      int module_node_offset,
                                      int reg_addr_cells,
                                      int reg_size_cells,
@@ -744,7 +742,7 @@ static int __init handle_module_node(EFI_LOADED_IMAGE *=
loaded_image,
     file_idx =3D get_module_file_index(uefi_name_prop, uefi_name_len);
     if ( file_idx < 0 )
     {
-        file_idx =3D allocate_module_file(loaded_image, uefi_name_prop,
+        file_idx =3D allocate_module_file(dir_handle, uefi_name_prop,
                                         uefi_name_len);
         if ( file_idx < 0 )
             return file_idx;
@@ -811,7 +809,7 @@ static int __init handle_module_node(EFI_LOADED_IMAGE *=
loaded_image,
  * in the DT.
  * Returns number of multiboot,module found or negative number on error.
  */
-static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_ima=
ge,
+static int __init handle_dom0less_domain_node(EFI_FILE_HANDLE *dir_handle,
                                               int domain_node)
 {
     int module_node, addr_cells, size_cells, len;
@@ -842,7 +840,7 @@ static int __init handle_dom0less_domain_node(EFI_LOADE=
D_IMAGE *loaded_image,
           module_node > 0;
           module_node =3D fdt_next_subnode(fdt, module_node) )
     {
-        int ret =3D handle_module_node(loaded_image, module_node, addr_cel=
ls,
+        int ret =3D handle_module_node(dir_handle, module_node, addr_cells=
,
                                      size_cells, true);
         if ( ret < 0 )
             return ret;
@@ -858,10 +856,11 @@ static int __init handle_dom0less_domain_node(EFI_LOA=
DED_IMAGE *loaded_image,
  * dom0 and domU guests to be loaded.
  * Returns the number of multiboot modules found or a negative number for =
error.
  */
-static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
+static int __init efi_check_dt_boot(void)
 {
     int chosen, node, addr_len, size_len;
     unsigned int i =3D 0, modules_found =3D 0;
+    EFI_FILE_HANDLE *dir_handle =3D NULL;
=20
     /* Check for the chosen node in the current DTB */
     chosen =3D setup_chosen_node(fdt, &addr_len, &size_len);
@@ -881,13 +880,13 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE =
*loaded_image)
         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
         {
             /* Found a node with compatible xen,domain; handle this node. =
*/
-            ret =3D handle_dom0less_domain_node(loaded_image, node);
+            ret =3D handle_dom0less_domain_node(dir_handle, node);
             if ( ret < 0 )
                 return ERROR_DT_MODULE_DOMU;
         }
         else
         {
-            ret =3D handle_module_node(loaded_image, node, addr_len, size_=
len,
+            ret =3D handle_module_node(dir_handle, node, addr_len, size_le=
n,
                                      false);
             if ( ret < 0 )
                  return ERROR_DT_MODULE_DOM0;
@@ -895,6 +894,9 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *l=
oaded_image)
         modules_found +=3D ret;
     }
=20
+    if ( *dir_handle )
+        (*dir_handle)->Close(*dir_handle);
+
     /* Free boot modules file names if any */
     for ( ; i < modules_idx; i++ )
     {
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 8fd5e2d078..1a91920e8a 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -121,8 +121,7 @@ static char *get_value(const struct file *cfg, const ch=
ar *section,
 static char *split_string(char *s);
 static CHAR16 *s2w(union string *str);
 static char *w2s(const union string *str);
-static EFI_FILE_HANDLE get_parent_handle(EFI_LOADED_IMAGE *loaded_image,
-                                         CHAR16 **leaf);
+static EFI_FILE_HANDLE get_parent_handle(CHAR16 **leaf);
 static bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
                       struct file *file, const char *options);
 static bool read_section(const EFI_LOADED_IMAGE *image, const CHAR16 *name=
,
@@ -145,6 +144,7 @@ static void efi_exit_boot(EFI_HANDLE ImageHandle, EFI_S=
YSTEM_TABLE *SystemTable)
 static const EFI_BOOT_SERVICES *__initdata efi_bs;
 static UINT32 __initdata efi_bs_revision;
 static EFI_HANDLE __initdata efi_ih;
+static EFI_LOADED_IMAGE *__initdata loaded_image;
=20
 static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdOut;
 static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;
@@ -169,7 +169,7 @@ static void __init PrintErr(const CHAR16 *s)
 }
=20
 #ifndef CONFIG_HAS_DEVICE_TREE
-static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
+static int __init efi_check_dt_boot(void)
 {
     return 0;
 }
@@ -441,8 +441,7 @@ static unsigned int __init get_argv(unsigned int argc, =
CHAR16 **argv,
     return argc;
 }
=20
-static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_i=
mage,
-                                                CHAR16 **leaf)
+static EFI_FILE_HANDLE __init get_parent_handle(CHAR16 **leaf)
 {
     static EFI_GUID __initdata fs_protocol =3D SIMPLE_FILE_SYSTEM_PROTOCOL=
;
     static CHAR16 __initdata buffer[512];
@@ -451,6 +450,8 @@ static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOA=
DED_IMAGE *loaded_image,
     CHAR16 *pathend, *ptr;
     EFI_STATUS ret;
=20
+    BUG_ON(!loaded_image);
+
     do {
         EFI_FILE_IO_INTERFACE *fio;
=20
@@ -1134,7 +1135,6 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *S=
ystemTable)
 {
     static EFI_GUID __initdata loaded_image_guid =3D LOADED_IMAGE_PROTOCOL=
;
     static EFI_GUID __initdata shim_lock_guid =3D SHIM_LOCK_PROTOCOL_GUID;
-    EFI_LOADED_IMAGE *loaded_image;
     EFI_STATUS status;
     unsigned int i, argc;
     CHAR16 **argv, *file_name, *cfg_file_name =3D NULL, *options =3D NULL;
@@ -1240,7 +1240,7 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *S=
ystemTable)
         gop =3D efi_get_gop();
=20
         /* Get the file system interface. */
-        dir_handle =3D get_parent_handle(loaded_image, &file_name);
+        dir_handle =3D get_parent_handle(&file_name);
=20
         /* Read and parse the config file. */
         if ( read_section(loaded_image, L"config", &cfg, NULL) )
@@ -1332,8 +1332,7 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *S=
ystemTable)
          */
         if ( argc && !*argv )
         {
-            EFI_FILE_HANDLE handle =3D get_parent_handle(loaded_image,
-                                                       &file_name);
+            EFI_FILE_HANDLE handle =3D get_parent_handle(&file_name);
=20
             handle->Close(handle);
             *argv =3D file_name;
@@ -1371,7 +1370,7 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *S=
ystemTable)
     }
=20
     /* Get the number of boot modules specified on the DT or an error (<0)=
 */
-    dt_modules_found =3D efi_check_dt_boot(loaded_image);
+    dt_modules_found =3D efi_check_dt_boot();
=20
     if ( dt_modules_found < 0 )
         /* efi_check_dt_boot throws some error */


Cheers,
Luca




From xen-devel-bounces@lists.xenproject.org Tue Nov 09 09:24:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 09:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223814.386717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNMJ-0006mm-Lk; Tue, 09 Nov 2021 09:24:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223814.386717; Tue, 09 Nov 2021 09:24:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNMJ-0006mf-Hk; Tue, 09 Nov 2021 09:24:03 +0000
Received: by outflank-mailman (input) for mailman id 223814;
 Tue, 09 Nov 2021 09:24:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FnEj=P4=samsung.com=inki.dae@srs-se1.protection.inumbo.net>)
 id 1mkNMH-0006jX-E2
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 09:24:02 +0000
Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c265c793-413e-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 10:23:58 +0100 (CET)
Received: from epcas1p4.samsung.com (unknown [182.195.41.48])
 by mailout3.samsung.com (KnoxPortal) with ESMTP id
 20211109092353epoutp0359c68f3f0306e2361ee73312b83bc0e6~11nQdrSX_0984909849epoutp03k
 for <xen-devel@lists.xenproject.org>; Tue,  9 Nov 2021 09:23:53 +0000 (GMT)
Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by
 epcas1p1.samsung.com (KnoxPortal) with ESMTP id
 20211109092353epcas1p19ed9d2f87f770292ff82f841458c4bd9~11nPx38ud1097210972epcas1p18;
 Tue,  9 Nov 2021 09:23:53 +0000 (GMT)
Received: from epsmges1p1.samsung.com (unknown [182.195.38.237]) by
 epsnrtp4.localdomain (Postfix) with ESMTP id 4HpMwn2cVPz4x9Pw; Tue,  9 Nov
 2021 09:23:37 +0000 (GMT)
Received: from epcas1p4.samsung.com ( [182.195.41.48]) by
 epsmges1p1.samsung.com (Symantec Messaging Gateway) with SMTP id
 56.7E.64085.91E3A816; Tue,  9 Nov 2021 18:23:37 +0900 (KST)
Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by
 epcas1p3.samsung.com (KnoxPortal) with ESMTPA id
 20211109092336epcas1p3be56f6ff9049a1a6b80a92a47eedddd0~11nAdiFDw0648806488epcas1p3Y;
 Tue,  9 Nov 2021 09:23:36 +0000 (GMT)
Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by
 epsmtrp2.samsung.com (KnoxPortal) with ESMTP id
 20211109092336epsmtrp27ce965acdbbf0384ca0cf1149b0bd07d~11nAcscpF2653426534epsmtrp2G;
 Tue,  9 Nov 2021 09:23:36 +0000 (GMT)
Received: from epsmtip2.samsung.com ( [182.195.34.31]) by
 epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id
 D0.09.29871.81E3A816; Tue,  9 Nov 2021 18:23:36 +0900 (KST)
Received: from [10.113.221.211] (unknown [10.113.221.211]) by
 epsmtip2.samsung.com (KnoxPortal) with ESMTPA id
 20211109092336epsmtip284e72dab5b5eb4adf5781b6d47de46c6~11nAJMu9p2082120821epsmtip2C;
 Tue,  9 Nov 2021 09:23:36 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c265c793-413e-11ec-a9d2-d9f7a1cc8784
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20211109092353epoutp0359c68f3f0306e2361ee73312b83bc0e6~11nQdrSX_0984909849epoutp03k
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
	s=mail20170921; t=1636449833;
	bh=593Amkrgb9Jqhcs++h0w+CuiiQCyeji1tJb9jeqi/SA=;
	h=Subject:To:Cc:From:Date:In-Reply-To:References:From;
	b=el/DAqFro5XNVbc04l4VBczrTikPYchrJFtOK67SxtmHnIEzEuoXNx60cfCFpWDVR
	 W0ktfQXouQW3GmctN1Qqrk2bA2hreCIzxriTOlsqHIFJxcBcKSBAEqbQHcNIxl5nPQ
	 RqhKvx1gX0R1GK+VpsnFn2Uz47/toyUYF6NDT7Rs=
X-AuditID: b6c32a35-9c3ff7000000fa55-13-618a3e19ccb5
Subject: Re: [PATCH 1/3] drm/exynox: Implement mmap as GEM object function
To: Daniel Vetter <daniel@ffwll.ch>, Thomas Zimmermann <tzimmermann@suse.de>
Cc: airlied@linux.ie, maarten.lankhorst@linux.intel.com, mripard@kernel.org,
	jy0922.shim@samsung.com, sw0312.kim@samsung.com, kyungmin.park@samsung.com,
	krzysztof.kozlowski@canonical.com, oleksandr_andrushchenko@epam.com,
	dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, xen-devel@lists.xenproject.org
From: Inki Dae <inki.dae@samsung.com>
Message-ID: <10fcb430-b051-20f0-b0c0-3f54285e01ce@samsung.com>
Date: Tue, 9 Nov 2021 18:34:31 +0900
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
	Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <YYlCUOgd1/GBluE7@phenom.ffwll.local>
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA01Tf0wTZxjOd3c9CqzkKAKfQBAvM6IRaIHWk0mDweFNiWHolriN4AWOH6O0
	9do6NllERQNMGCdGaRVFFCK4RakgyFJZ6BSBMGBhggyBDcwGIiBExsYMa3u68d/zvN/zfO/7
	fD/EqHQY9xNnagwsp2HUJO6G3bFtkoWsVRUxsp9OelLFP3Yg1ModHqX6X87i1B8jfRhV/3wJ
	obqPT7tQlvFHIqq85x5CXXnRiFGnCmtE1NyNWXutbBKnGqZ5EfVnQxkS40Gb84pxerj6LqCt
	i5UYbakrxOmmxTERfanjfXr0q3aEvn3tKG2b68fokoY6QN/uOkIvWAIT3vooa3sGy6SyXBCr
	SdGmZmrSo8k9+5JjkxVKmTxEvo3aSgZpmGw2mtwZnxASl6m2JyGDDjNqo72UwOj1ZJhqO6c1
	GtigDK3eEE2yulS1TqEL1TPZeqMmPVTDGqLkMlm4wi48mJVR0WMFOl6VU/1oGcsDpogi4CqG
	RCRsvVKLFgE3sZRoBrD7epNIIPMAHqvhMYEsAvjUdBZ7Y+nqmgXCghXAyW4LIpBZAH/5a8m+
	mVjsReyGlfPuDsMaIh4W3jzj4tCgxAwC+0dnUMcCTmyA/PVR3IElhAp+0/LQWceIt2HxfL4T
	exMH4KuOFpGg8YQdpgnnFK5EOJwYKHVilPCFQxOXEQGvgycaLzgDQWJaDHsu2hBh7J3wWXcn
	ELAXnGpvcBGwH1yYseKC4QSAfHkXIpACAJ+MD7wOHQFbq8sQRzSU2ARvtoQJ5fXw7nIFEDp7
	wJmXp0UOCSQksOCUVJCQ8EHf4Ou+EPZe43FBQsP755JKwXrzqmjmVXHMq+KY/+9bCbA64MPq
	9NnprF6uk/933SnabAtwPvPNimbAP58LbQOIGLQBKEbJNZKR+wWMVJLKfP4Fy2mTOaOa1bcB
	hf2wedTPO0Vr/ycaQ7I8cpssUhkeEUnJlXLSV7IQeIiREumMgc1iWR3LvfEhYle/PESy3zt4
	R+tYQL5RyiRdCsxLa5V3kqWz8Xt//9jGxVgvf4vwmMi6tjbt+y2DK8bwck/jZJTqYH+c6jdz
	zljVGBecu/set/FrJsqNu3g1cGjhUHPj4Pi0OoJPHAJVIvTWjbSSaVtsCphaXFZke/QVXV3p
	3Xg6cVx5Mo57F1acp4e3JpSYhsKMURX4p483ELndlic+x2PPj0gatnj9fawzIPNVVk/Mhf6W
	3IfBLwa09Ylztg8CPvPpdHf/50H72V3fFX8pPfD4nZ/9m/yL/G+V7bD0ThWe45Yal/Olqvyn
	tT8ovSe0Ce8h3sqIXc/OlByR7k3yzflwT32h9tfDRz9ZZ5LVVJGYPoORb0Y5PfMvGJxAl28E
	AAA=
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrBIsWRmVeSWpSXmKPExsWy7bCSvK6EXVeiwaFeJYvecyeZLP5vm8hs
	ceXrezaLF/cuslhsfPuDyeJs0xt2i02Pr7FazDi/j8li4cetLBZtnctYLT6sfg8Um/ySzWLL
	m4msFt+3TGZy4POY1dDL5nFn6U5Gj73fFrB4bFrVyeax/dsDVo95JwM97ncfZ/LYvKTe4/CH
	KywefVtWMXpsPl3t8XmTXABPFJdNSmpOZllqkb5dAlfG3PN7GQsm2lUsvfabpYFxpnEXIyeH
	hICJxOnT7xm7GLk4hAR2M0qs/97J1sXIAZSQkNiylQPCFJY4fLgYouQto8ThPUuYQOLCAl4S
	Cz5xg4wREfCR6Fw/iR3EZhZ4xySx6ZU0RP19Romd916CJdgEVCUmrrjPBmLzCthJrNl1ghnE
	ZhFQkej91AJmiwpESjSd2ApVIyhxcuYTFhCbU8BI4sn1CSwQC9Ql/sy7xAxhi0vcejKfCcKW
	l2jeOpt5AqPQLCTts5C0zELSMgtJywJGllWMkqkFxbnpucWGBYZ5qeV6xYm5xaV56XrJ+bmb
	GMGRq6W5g3H7qg96hxiZOBgPMUpwMCuJ8N472pEoxJuSWFmVWpQfX1Sak1p8iFGag0VJnPdC
	18l4IYH0xJLU7NTUgtQimCwTB6dUA5PjqpJDj37zfPY82dzoHrgre/mEElvhJY+vVp2cp/Lu
	kOmRjul/f74OKnD/e99ox+nrOtFOjTWzzhgVCM1kmG66XmlHrc06VdvgalvBt94czMyp20vv
	qxxf93KRxgLzqbsU9pplNO2oMBRYr/281Ntsi+Qq980na+tO38zzmS90R3zfgwbuQ+2FiWl6
	4quCXqxxYz29b4vYpJ3CnOn5qZd+y5xtk8lcOP/Hq1dbgqZt2ZVxvX7TXZlFTgUHP6tv/XbG
	QlGqw+DYB+d/Dytv/rjV05/J7Nd3aO/zR7VR31anMDceE364Sr6k4P7NXV/u19skHJF3KJ60
	vJBXS+qCwBNJCdMlJnsmhb+fzCu7c/FsJZbijERDLeai4kQAs2Tm+UsDAAA=
X-CMS-MailID: 20211109092336epcas1p3be56f6ff9049a1a6b80a92a47eedddd0
X-Msg-Generator: CA
Content-Type: text/plain; charset="utf-8"
X-Sendblock-Type: SVC_REQ_APPROVE
CMS-TYPE: 101P
DLP-Filter: Pass
X-CFilter-Loop: Reflected
X-CMS-RootMailID: 20211108152930epcas1p4e61b02b1151ba4779949d81312597a08
References: <20211108102846.309-1-tzimmermann@suse.de>
	<20211108102846.309-2-tzimmermann@suse.de>
	<CGME20211108152930epcas1p4e61b02b1151ba4779949d81312597a08@epcas1p4.samsung.com>
	<YYlCUOgd1/GBluE7@phenom.ffwll.local>

Hi Thomas and Daniel,

21. 11. 9. 오전 12:29에 Daniel Vetter 이(가) 쓴 글:
> On Mon, Nov 08, 2021 at 11:28:44AM +0100, Thomas Zimmermann wrote:
>> Moving the driver-specific mmap code into a GEM object function allows
>> for using DRM helpers for various mmap callbacks.
>>
>> The respective exynos functions are being removed. The file_operations
>> structure exynos_drm_driver_fops is now being created by the helper macro
>> DEFINE_DRM_GEM_FOPS().
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> 
> s/exynox/exynos in the subject.
> 
> Patch lgtm, but would still be good if exynos maintainers would
> ack/review/test it. But if you don't get anything within 2 weeks here's

Sorry for late. Confirmed working well on Odroid board, and had a review. Applied.
https://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git/log/?h=exynos-drm-next

Thanks,
Inki Dae

> my:
> 
> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> 
>> ---
>>  drivers/gpu/drm/exynos/exynos_drm_drv.c   | 13 ++-----
>>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 20 ++---------
>>  drivers/gpu/drm/exynos/exynos_drm_gem.c   | 43 +++++------------------
>>  drivers/gpu/drm/exynos/exynos_drm_gem.h   |  5 ---
>>  4 files changed, 13 insertions(+), 68 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
>> index d8f1cf4d6b69..9743b6b17447 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
>> @@ -102,16 +102,7 @@ static const struct drm_ioctl_desc exynos_ioctls[] = {
>>  			DRM_RENDER_ALLOW),
>>  };
>>  
>> -static const struct file_operations exynos_drm_driver_fops = {
>> -	.owner		= THIS_MODULE,
>> -	.open		= drm_open,
>> -	.mmap		= exynos_drm_gem_mmap,
>> -	.poll		= drm_poll,
>> -	.read		= drm_read,
>> -	.unlocked_ioctl	= drm_ioctl,
>> -	.compat_ioctl = drm_compat_ioctl,
>> -	.release	= drm_release,
>> -};
>> +DEFINE_DRM_GEM_FOPS(exynos_drm_driver_fops);
>>  
>>  static const struct drm_driver exynos_drm_driver = {
>>  	.driver_features	= DRIVER_MODESET | DRIVER_GEM
>> @@ -124,7 +115,7 @@ static const struct drm_driver exynos_drm_driver = {
>>  	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
>>  	.gem_prime_import	= exynos_drm_gem_prime_import,
>>  	.gem_prime_import_sg_table	= exynos_drm_gem_prime_import_sg_table,
>> -	.gem_prime_mmap		= exynos_drm_gem_prime_mmap,
>> +	.gem_prime_mmap		= drm_gem_prime_mmap,
>>  	.ioctls			= exynos_ioctls,
>>  	.num_ioctls		= ARRAY_SIZE(exynos_ioctls),
>>  	.fops			= &exynos_drm_driver_fops,
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
>> index 5147f5929be7..02c97b9ca926 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
>> @@ -15,6 +15,7 @@
>>  #include <drm/drm_crtc.h>
>>  #include <drm/drm_fb_helper.h>
>>  #include <drm/drm_fourcc.h>
>> +#include <drm/drm_prime.h>
>>  #include <drm/drm_probe_helper.h>
>>  #include <drm/exynos_drm.h>
>>  
>> @@ -39,25 +40,8 @@ static int exynos_drm_fb_mmap(struct fb_info *info,
>>  	struct drm_fb_helper *helper = info->par;
>>  	struct exynos_drm_fbdev *exynos_fbd = to_exynos_fbdev(helper);
>>  	struct exynos_drm_gem *exynos_gem = exynos_fbd->exynos_gem;
>> -	unsigned long vm_size;
>> -	int ret;
>> -
>> -	vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
>> -
>> -	vm_size = vma->vm_end - vma->vm_start;
>> -
>> -	if (vm_size > exynos_gem->size)
>> -		return -EINVAL;
>>  
>> -	ret = dma_mmap_attrs(to_dma_dev(helper->dev), vma, exynos_gem->cookie,
>> -			     exynos_gem->dma_addr, exynos_gem->size,
>> -			     exynos_gem->dma_attrs);
>> -	if (ret < 0) {
>> -		DRM_DEV_ERROR(to_dma_dev(helper->dev), "failed to mmap.\n");
>> -		return ret;
>> -	}
>> -
>> -	return 0;
>> +	return drm_gem_prime_mmap(&exynos_gem->base, vma);
>>  }
>>  
>>  static const struct fb_ops exynos_drm_fb_ops = {
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
>> index 4396224227d1..c4b63902ee7a 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
>> @@ -17,6 +17,8 @@
>>  #include "exynos_drm_drv.h"
>>  #include "exynos_drm_gem.h"
>>  
>> +static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
>> +
>>  static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool kvmap)
>>  {
>>  	struct drm_device *dev = exynos_gem->base.dev;
>> @@ -135,6 +137,7 @@ static const struct vm_operations_struct exynos_drm_gem_vm_ops = {
>>  static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = {
>>  	.free = exynos_drm_gem_free_object,
>>  	.get_sg_table = exynos_drm_gem_prime_get_sg_table,
>> +	.mmap = exynos_drm_gem_mmap,
>>  	.vm_ops = &exynos_drm_gem_vm_ops,
>>  };
>>  
>> @@ -354,12 +357,16 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
>>  	return 0;
>>  }
>>  
>> -static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj,
>> -				   struct vm_area_struct *vma)
>> +static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
>>  {
>>  	struct exynos_drm_gem *exynos_gem = to_exynos_gem(obj);
>>  	int ret;
>>  
>> +	if (obj->import_attach)
>> +		return dma_buf_mmap(obj->dma_buf, vma, 0);
>> +
>> +	vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
>> +
>>  	DRM_DEV_DEBUG_KMS(to_dma_dev(obj->dev), "flags = 0x%x\n",
>>  			  exynos_gem->flags);
>>  
>> @@ -385,26 +392,6 @@ static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj,
>>  	return ret;
>>  }
>>  
>> -int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
>> -{
>> -	struct drm_gem_object *obj;
>> -	int ret;
>> -
>> -	/* set vm_area_struct. */
>> -	ret = drm_gem_mmap(filp, vma);
>> -	if (ret < 0) {
>> -		DRM_ERROR("failed to mmap.\n");
>> -		return ret;
>> -	}
>> -
>> -	obj = vma->vm_private_data;
>> -
>> -	if (obj->import_attach)
>> -		return dma_buf_mmap(obj->dma_buf, vma, 0);
>> -
>> -	return exynos_drm_gem_mmap_obj(obj, vma);
>> -}
>> -
>>  /* low-level interface prime helpers */
>>  struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev,
>>  					    struct dma_buf *dma_buf)
>> @@ -466,15 +453,3 @@ exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
>>  	exynos_gem->sgt = sgt;
>>  	return &exynos_gem->base;
>>  }
>> -
>> -int exynos_drm_gem_prime_mmap(struct drm_gem_object *obj,
>> -			      struct vm_area_struct *vma)
>> -{
>> -	int ret;
>> -
>> -	ret = drm_gem_mmap_obj(obj, obj->size, vma);
>> -	if (ret < 0)
>> -		return ret;
>> -
>> -	return exynos_drm_gem_mmap_obj(obj, vma);
>> -}
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exynos/exynos_drm_gem.h
>> index a23272fb96fb..79d7e1a87419 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.h
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h
>> @@ -96,9 +96,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
>>  			       struct drm_device *dev,
>>  			       struct drm_mode_create_dumb *args);
>>  
>> -/* set vm_flags and we can change the vm attribute to other one at here. */
>> -int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma);
>> -
>>  /* low-level interface prime helpers */
>>  struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev,
>>  					    struct dma_buf *dma_buf);
>> @@ -107,7 +104,5 @@ struct drm_gem_object *
>>  exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
>>  				     struct dma_buf_attachment *attach,
>>  				     struct sg_table *sgt);
>> -int exynos_drm_gem_prime_mmap(struct drm_gem_object *obj,
>> -			      struct vm_area_struct *vma);
>>  
>>  #endif
>> -- 
>> 2.33.1
>>
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 09:41:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 09:41:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223825.386727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNdB-0000pV-8v; Tue, 09 Nov 2021 09:41:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223825.386727; Tue, 09 Nov 2021 09:41:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNdB-0000pO-5U; Tue, 09 Nov 2021 09:41:29 +0000
Received: by outflank-mailman (input) for mailman id 223825;
 Tue, 09 Nov 2021 09:41:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mkNd9-0000pI-OX
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 09:41:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkNd7-00041s-3L; Tue, 09 Nov 2021 09:41:25 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=[192.168.22.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkNd6-0002od-TC; Tue, 09 Nov 2021 09:41:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=QdedMTNFdtooBL3zeJOcEfbVB9S/FcsMgj5LfNJ7Qj0=; b=iH5dOH8puUDFAKt7jTa8+P+0Of
	kOeAJqMGYBFzmBUbeGmTauFjX8kYvQLaMG425Gg0doYlShr2Dg5+vLa7Li7LKaqZLEjQT5x6HwOeI
	PqkVpGzzSpNQWwWM3O0ztLIeyvhlmbFbzGurdogu/SIffyaRdIPl2Yg7gz3FRqf/y+tc=;
Message-ID: <9ba4f9ea-d393-bcb6-22ac-0cdb930ad15a@xen.org>
Date: Tue, 9 Nov 2021 09:41:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] xen/arm: don't assign domU static-mem to dom0 as
 reserved-memory
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Penny.Zheng@arm.com, Bertrand.Marquis@arm.com, Wei.Chen@arm.com,
 iwj@xenproject.org, Volodymyr_Babchuk@epam.com,
 xen-devel@lists.xenproject.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>
References: <20211109004808.115906-1-sstabellini@kernel.org>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211109004808.115906-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 09/11/2021 00:48, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> DomUs static-mem ranges are added to the reserved_mem array for
> accounting, but they shouldn't be assigned to dom0 as the other regular
> reserved-memory ranges in device tree.
> 
> In make_memory_nodes, fix the error by skipping banks with xen_domain
> set to true in the reserved-memory array. Also make sure to use the
> first valid (!xen_domain) start address for the memory node name.
> 

This is a bug fix. So please add a Fixes tag. In this case, I think it 
should be:

Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation")

> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> ---
> 
> This patch should be considered for 4.16 as it fixes an incorrect
> behavior.
> 
> The risk is low for two reasons:
> - the change is simple
> - make_memory_node is easily tested because it gets called at every
>    boot, e.g. gitlab-ci and OSSTest exercise this path
> 
> I tested this patch successfully with and without xen,static-mem.
> 
> ---
>   xen/arch/arm/domain_build.c | 13 +++++++++++--
>   1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 1fbafeaea8..56d3ff9d08 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -874,11 +874,17 @@ static int __init make_memory_node(const struct domain *d,
>       if ( mem->nr_banks == 0 )
>           return -ENOENT;
>   
> +    for ( i = 0; i < mem->nr_banks && mem->bank[i].xen_domain; i++ )
> +        ;
> +    /* No reserved-memory ranges to expose to Dom0 */
I find this comment a bit misleading because make_memory_node() will 
also be called to create normal memory region. I would drop 
"reserved-memory" and add a comment on top of the loop explaining what 
the loop does.

> +    if ( i == mem->nr_banks )
> +        return 0;
> +
>       dt_dprintk("Create memory node (reg size %d, nr cells %d)\n",
>                  reg_size, nr_cells);

I think you need to adjust nr_cells otherwise we would write garbagge in 
the DT if we need to exclude some regions.

>   
>       /* ePAPR 3.4 */
> -    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[0].start);
> +    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[i].start);
>       res = fdt_begin_node(fdt, buf);
>       if ( res )
>           return res;
> @@ -888,11 +894,14 @@ static int __init make_memory_node(const struct domain *d,
>           return res;
>   
>       cells = &reg[0];
> -    for ( i = 0 ; i < mem->nr_banks; i++ )
> +    for ( ; i < mem->nr_banks; i++ )
>       {
>           u64 start = mem->bank[i].start;
>           u64 size = mem->bank[i].size;
>   
> +        if ( mem->bank[i].xen_domain )
> +            continue;
> +
>           dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
>                      i, start, start + size);
>   
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 09:44:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 09:44:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223830.386739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNgO-0001Ri-Nb; Tue, 09 Nov 2021 09:44:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223830.386739; Tue, 09 Nov 2021 09:44:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNgO-0001Rb-KT; Tue, 09 Nov 2021 09:44:48 +0000
Received: by outflank-mailman (input) for mailman id 223830;
 Tue, 09 Nov 2021 09:44:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7Sih=P4=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1mkNgN-0001RS-8R
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 09:44:47 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id abea8e7b-4141-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 10:44:45 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 256891FDB7;
 Tue,  9 Nov 2021 09:44:45 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D44D9133D1;
 Tue,  9 Nov 2021 09:44:44 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id iarBMgxDimH+XAAAMHmgww
 (envelope-from <tzimmermann@suse.de>); Tue, 09 Nov 2021 09:44:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abea8e7b-4141-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1636451085; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=QNzvRbJxR15JRDglvCH3sXpReZaqm6Qly3fbmhVsgzM=;
	b=NAbovM6ES0+16uvsoshG2BGc4FqTkZwepR7nCxoqb/SIbtWbasjvW7DBazsx3CCQt1EOXc
	FFT9shrbey0FRHgp+Q4x3XeIk1V9Uq27YtqwlNNwj0Hy1n5GEXJOv1f7K+yCfu88tOUyLm
	HIQPw1K3yQlUSt7y5hpT4g7RuWEkz7s=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1636451085;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=QNzvRbJxR15JRDglvCH3sXpReZaqm6Qly3fbmhVsgzM=;
	b=0DlDyJUa3vTpCahKGMPRilUvuZDiG5ECr/Xo0ZXJhHsTIm+/xiDYTgF7l0jaqCmd2ELJtd
	U8o1i3dRRCy92eBg==
Message-ID: <127971f3-ad26-d40f-4ea2-669c8ae18964@suse.de>
Date: Tue, 9 Nov 2021 10:44:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH 1/3] drm/exynox: Implement mmap as GEM object function
Content-Language: en-US
To: Inki Dae <inki.dae@samsung.com>, Daniel Vetter <daniel@ffwll.ch>
Cc: linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com,
 krzysztof.kozlowski@canonical.com, airlied@linux.ie,
 oleksandr_andrushchenko@epam.com, sw0312.kim@samsung.com,
 kyungmin.park@samsung.com, dri-devel@lists.freedesktop.org,
 xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org
References: <20211108102846.309-1-tzimmermann@suse.de>
 <20211108102846.309-2-tzimmermann@suse.de>
 <CGME20211108152930epcas1p4e61b02b1151ba4779949d81312597a08@epcas1p4.samsung.com>
 <YYlCUOgd1/GBluE7@phenom.ffwll.local>
 <10fcb430-b051-20f0-b0c0-3f54285e01ce@samsung.com>
From: Thomas Zimmermann <tzimmermann@suse.de>
In-Reply-To: <10fcb430-b051-20f0-b0c0-3f54285e01ce@samsung.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------7X4FDPPqD0rrr6V0bREDUp5Q"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------7X4FDPPqD0rrr6V0bREDUp5Q
Content-Type: multipart/mixed; boundary="------------dDNcv4hgldp269ntTlcuR5df";
 protected-headers="v1"
From: Thomas Zimmermann <tzimmermann@suse.de>
To: Inki Dae <inki.dae@samsung.com>, Daniel Vetter <daniel@ffwll.ch>
Cc: linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com,
 krzysztof.kozlowski@canonical.com, airlied@linux.ie,
 oleksandr_andrushchenko@epam.com, sw0312.kim@samsung.com,
 kyungmin.park@samsung.com, dri-devel@lists.freedesktop.org,
 xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org
Message-ID: <127971f3-ad26-d40f-4ea2-669c8ae18964@suse.de>
Subject: Re: [PATCH 1/3] drm/exynox: Implement mmap as GEM object function
References: <20211108102846.309-1-tzimmermann@suse.de>
 <20211108102846.309-2-tzimmermann@suse.de>
 <CGME20211108152930epcas1p4e61b02b1151ba4779949d81312597a08@epcas1p4.samsung.com>
 <YYlCUOgd1/GBluE7@phenom.ffwll.local>
 <10fcb430-b051-20f0-b0c0-3f54285e01ce@samsung.com>
In-Reply-To: <10fcb430-b051-20f0-b0c0-3f54285e01ce@samsung.com>

--------------dDNcv4hgldp269ntTlcuR5df
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

SGkNCg0KQW0gMDkuMTEuMjEgdW0gMTA6MzQgc2NocmllYiBJbmtpIERhZToNCj4gSGkgVGhv
bWFzIGFuZCBEYW5pZWwsDQo+IA0KPiAyMS4gMTEuIDkuIOyYpOyghCAxMjoyOeyXkCBEYW5p
ZWwgVmV0dGVyIOydtCjqsIApIOyTtCDquIA6DQo+PiBPbiBNb24sIE5vdiAwOCwgMjAyMSBh
dCAxMToyODo0NEFNICswMTAwLCBUaG9tYXMgWmltbWVybWFubiB3cm90ZToNCj4+PiBNb3Zp
bmcgdGhlIGRyaXZlci1zcGVjaWZpYyBtbWFwIGNvZGUgaW50byBhIEdFTSBvYmplY3QgZnVu
Y3Rpb24gYWxsb3dzDQo+Pj4gZm9yIHVzaW5nIERSTSBoZWxwZXJzIGZvciB2YXJpb3VzIG1t
YXAgY2FsbGJhY2tzLg0KPj4+DQo+Pj4gVGhlIHJlc3BlY3RpdmUgZXh5bm9zIGZ1bmN0aW9u
cyBhcmUgYmVpbmcgcmVtb3ZlZC4gVGhlIGZpbGVfb3BlcmF0aW9ucw0KPj4+IHN0cnVjdHVy
ZSBleHlub3NfZHJtX2RyaXZlcl9mb3BzIGlzIG5vdyBiZWluZyBjcmVhdGVkIGJ5IHRoZSBo
ZWxwZXIgbWFjcm8NCj4+PiBERUZJTkVfRFJNX0dFTV9GT1BTKCkuDQo+Pj4NCj4+PiBTaWdu
ZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4NCj4+
DQo+PiBzL2V4eW5veC9leHlub3MgaW4gdGhlIHN1YmplY3QuDQo+Pg0KPj4gUGF0Y2ggbGd0
bSwgYnV0IHdvdWxkIHN0aWxsIGJlIGdvb2QgaWYgZXh5bm9zIG1haW50YWluZXJzIHdvdWxk
DQo+PiBhY2svcmV2aWV3L3Rlc3QgaXQuIEJ1dCBpZiB5b3UgZG9uJ3QgZ2V0IGFueXRoaW5n
IHdpdGhpbiAyIHdlZWtzIGhlcmUncw0KPiANCj4gU29ycnkgZm9yIGxhdGUuIENvbmZpcm1l
ZCB3b3JraW5nIHdlbGwgb24gT2Ryb2lkIGJvYXJkLCBhbmQgaGFkIGEgcmV2aWV3LiBBcHBs
aWVkLg0KPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dp
dC9kYWVpbmtpL2RybS1leHlub3MuZ2l0L2xvZy8/aD1leHlub3MtZHJtLW5leHQNCg0KVGhh
bmtzIGEgbG90IQ0KDQpCZXN0IHJlZ2FyZHMNClRob21hcw0KDQo+IA0KPiBUaGFua3MsDQo+
IElua2kgRGFlDQo+IA0KPj4gbXk6DQo+Pg0KPj4gQWNrZWQtYnk6IERhbmllbCBWZXR0ZXIg
PGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+DQo+Pg0KPj4+IC0tLQ0KPj4+ICAgZHJpdmVycy9n
cHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5jICAgfCAxMyArKy0tLS0tDQo+Pj4gICBk
cml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmJkZXYuYyB8IDIwICsrLS0tLS0t
LS0tDQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ2VtLmMgICB8
IDQzICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vZXh5
bm9zL2V4eW5vc19kcm1fZ2VtLmggICB8ICA1IC0tLQ0KPj4+ICAgNCBmaWxlcyBjaGFuZ2Vk
LCAxMyBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYgLS1n
aXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmMgYi9kcml2ZXJz
L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmMNCj4+PiBpbmRleCBkOGYxY2Y0ZDZi
NjkuLjk3NDNiNmIxNzQ0NyAxMDA2NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5
bm9zL2V4eW5vc19kcm1fZHJ2LmMNCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z
L2V4eW5vc19kcm1fZHJ2LmMNCj4+PiBAQCAtMTAyLDE2ICsxMDIsNyBAQCBzdGF0aWMgY29u
c3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGV4eW5vc19pb2N0bHNbXSA9IHsNCj4+PiAgIAkJ
CURSTV9SRU5ERVJfQUxMT1cpLA0KPj4+ICAgfTsNCj4+PiAgIA0KPj4+IC1zdGF0aWMgY29u
c3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBleHlub3NfZHJtX2RyaXZlcl9mb3BzID0gew0K
Pj4+IC0JLm93bmVyCQk9IFRISVNfTU9EVUxFLA0KPj4+IC0JLm9wZW4JCT0gZHJtX29wZW4s
DQo+Pj4gLQkubW1hcAkJPSBleHlub3NfZHJtX2dlbV9tbWFwLA0KPj4+IC0JLnBvbGwJCT0g
ZHJtX3BvbGwsDQo+Pj4gLQkucmVhZAkJPSBkcm1fcmVhZCwNCj4+PiAtCS51bmxvY2tlZF9p
b2N0bAk9IGRybV9pb2N0bCwNCj4+PiAtCS5jb21wYXRfaW9jdGwgPSBkcm1fY29tcGF0X2lv
Y3RsLA0KPj4+IC0JLnJlbGVhc2UJPSBkcm1fcmVsZWFzZSwNCj4+PiAtfTsNCj4+PiArREVG
SU5FX0RSTV9HRU1fRk9QUyhleHlub3NfZHJtX2RyaXZlcl9mb3BzKTsNCj4+PiAgIA0KPj4+
ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZHJpdmVyIGV4eW5vc19kcm1fZHJpdmVyID0g
ew0KPj4+ICAgCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9H
RU0NCj4+PiBAQCAtMTI0LDcgKzExNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Ry
aXZlciBleHlub3NfZHJtX2RyaXZlciA9IHsNCj4+PiAgIAkucHJpbWVfZmRfdG9faGFuZGxl
CT0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsDQo+Pj4gICAJLmdlbV9wcmltZV9pbXBv
cnQJPSBleHlub3NfZHJtX2dlbV9wcmltZV9pbXBvcnQsDQo+Pj4gICAJLmdlbV9wcmltZV9p
bXBvcnRfc2dfdGFibGUJPSBleHlub3NfZHJtX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUs
DQo+Pj4gLQkuZ2VtX3ByaW1lX21tYXAJCT0gZXh5bm9zX2RybV9nZW1fcHJpbWVfbW1hcCwN
Cj4+PiArCS5nZW1fcHJpbWVfbW1hcAkJPSBkcm1fZ2VtX3ByaW1lX21tYXAsDQo+Pj4gICAJ
LmlvY3RscwkJCT0gZXh5bm9zX2lvY3RscywNCj4+PiAgIAkubnVtX2lvY3RscwkJPSBBUlJB
WV9TSVpFKGV4eW5vc19pb2N0bHMpLA0KPj4+ICAgCS5mb3BzCQkJPSAmZXh5bm9zX2RybV9k
cml2ZXJfZm9wcywNCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l
eHlub3NfZHJtX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1f
ZmJkZXYuYw0KPj4+IGluZGV4IDUxNDdmNTkyOWJlNy4uMDJjOTdiOWNhOTI2IDEwMDY0NA0K
Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9mYmRldi5jDQo+
Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZiZGV2LmMNCj4+
PiBAQCAtMTUsNiArMTUsNyBAQA0KPj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPg0K
Pj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+DQo+Pj4gICAjaW5jbHVkZSA8
ZHJtL2RybV9mb3VyY2MuaD4NCj4+PiArI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4NCj4+
PiAgICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPg0KPj4+ICAgI2luY2x1ZGUg
PGRybS9leHlub3NfZHJtLmg+DQo+Pj4gICANCj4+PiBAQCAtMzksMjUgKzQwLDggQEAgc3Rh
dGljIGludCBleHlub3NfZHJtX2ZiX21tYXAoc3RydWN0IGZiX2luZm8gKmluZm8sDQo+Pj4g
ICAJc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciA9IGluZm8tPnBhcjsNCj4+PiAgIAlz
dHJ1Y3QgZXh5bm9zX2RybV9mYmRldiAqZXh5bm9zX2ZiZCA9IHRvX2V4eW5vc19mYmRldiho
ZWxwZXIpOw0KPj4+ICAgCXN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9zX2dlbSA9IGV4
eW5vc19mYmQtPmV4eW5vc19nZW07DQo+Pj4gLQl1bnNpZ25lZCBsb25nIHZtX3NpemU7DQo+
Pj4gLQlpbnQgcmV0Ow0KPj4+IC0NCj4+PiAtCXZtYS0+dm1fZmxhZ3MgfD0gVk1fSU8gfCBW
TV9ET05URVhQQU5EIHwgVk1fRE9OVERVTVA7DQo+Pj4gLQ0KPj4+IC0Jdm1fc2l6ZSA9IHZt
YS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydDsNCj4+PiAtDQo+Pj4gLQlpZiAodm1fc2l6ZSA+
IGV4eW5vc19nZW0tPnNpemUpDQo+Pj4gLQkJcmV0dXJuIC1FSU5WQUw7DQo+Pj4gICANCj4+
PiAtCXJldCA9IGRtYV9tbWFwX2F0dHJzKHRvX2RtYV9kZXYoaGVscGVyLT5kZXYpLCB2bWEs
IGV4eW5vc19nZW0tPmNvb2tpZSwNCj4+PiAtCQkJICAgICBleHlub3NfZ2VtLT5kbWFfYWRk
ciwgZXh5bm9zX2dlbS0+c2l6ZSwNCj4+PiAtCQkJICAgICBleHlub3NfZ2VtLT5kbWFfYXR0
cnMpOw0KPj4+IC0JaWYgKHJldCA8IDApIHsNCj4+PiAtCQlEUk1fREVWX0VSUk9SKHRvX2Rt
YV9kZXYoaGVscGVyLT5kZXYpLCAiZmFpbGVkIHRvIG1tYXAuXG4iKTsNCj4+PiAtCQlyZXR1
cm4gcmV0Ow0KPj4+IC0JfQ0KPj4+IC0NCj4+PiAtCXJldHVybiAwOw0KPj4+ICsJcmV0dXJu
IGRybV9nZW1fcHJpbWVfbW1hcCgmZXh5bm9zX2dlbS0+YmFzZSwgdm1hKTsNCj4+PiAgIH0N
Cj4+PiAgIA0KPj4+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgZXh5bm9zX2RybV9m
Yl9vcHMgPSB7DQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5
bm9zX2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9nZW0u
Yw0KPj4+IGluZGV4IDQzOTYyMjQyMjdkMS4uYzRiNjM5MDJlZTdhIDEwMDY0NA0KPj4+IC0t
LSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9nZW0uYw0KPj4+ICsrKyBi
L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9nZW0uYw0KPj4+IEBAIC0xNyw2
ICsxNyw4IEBADQo+Pj4gICAjaW5jbHVkZSAiZXh5bm9zX2RybV9kcnYuaCINCj4+PiAgICNp
bmNsdWRlICJleHlub3NfZHJtX2dlbS5oIg0KPj4+ICAgDQo+Pj4gK3N0YXRpYyBpbnQgZXh5
bm9zX2RybV9nZW1fbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IHZt
X2FyZWFfc3RydWN0ICp2bWEpOw0KPj4+ICsNCj4+PiAgIHN0YXRpYyBpbnQgZXh5bm9zX2Ry
bV9hbGxvY19idWYoc3RydWN0IGV4eW5vc19kcm1fZ2VtICpleHlub3NfZ2VtLCBib29sIGt2
bWFwKQ0KPj4+ICAgew0KPj4+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBleHlub3Nf
Z2VtLT5iYXNlLmRldjsNCj4+PiBAQCAtMTM1LDYgKzEzNyw3IEBAIHN0YXRpYyBjb25zdCBz
dHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgZXh5bm9zX2RybV9nZW1fdm1fb3BzID0gew0K
Pj4+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZ2VtX29iamVjdF9mdW5jcyBleHlub3Nf
ZHJtX2dlbV9vYmplY3RfZnVuY3MgPSB7DQo+Pj4gICAJLmZyZWUgPSBleHlub3NfZHJtX2dl
bV9mcmVlX29iamVjdCwNCj4+PiAgIAkuZ2V0X3NnX3RhYmxlID0gZXh5bm9zX2RybV9nZW1f
cHJpbWVfZ2V0X3NnX3RhYmxlLA0KPj4+ICsJLm1tYXAgPSBleHlub3NfZHJtX2dlbV9tbWFw
LA0KPj4+ICAgCS52bV9vcHMgPSAmZXh5bm9zX2RybV9nZW1fdm1fb3BzLA0KPj4+ICAgfTsN
Cj4+PiAgIA0KPj4+IEBAIC0zNTQsMTIgKzM1NywxNiBAQCBpbnQgZXh5bm9zX2RybV9nZW1f
ZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsDQo+Pj4gICAJcmV0dXJu
IDA7DQo+Pj4gICB9DQo+Pj4gICANCj4+PiAtc3RhdGljIGludCBleHlub3NfZHJtX2dlbV9t
bWFwX29iaihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwNCj4+PiAtCQkJCSAgIHN0cnVj
dCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPj4+ICtzdGF0aWMgaW50IGV4eW5vc19kcm1fZ2Vt
X21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCB2bV9hcmVhX3N0cnVj
dCAqdm1hKQ0KPj4+ICAgew0KPj4+ICAgCXN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9z
X2dlbSA9IHRvX2V4eW5vc19nZW0ob2JqKTsNCj4+PiAgIAlpbnQgcmV0Ow0KPj4+ICAgDQo+
Pj4gKwlpZiAob2JqLT5pbXBvcnRfYXR0YWNoKQ0KPj4+ICsJCXJldHVybiBkbWFfYnVmX21t
YXAob2JqLT5kbWFfYnVmLCB2bWEsIDApOw0KPj4+ICsNCj4+PiArCXZtYS0+dm1fZmxhZ3Mg
fD0gVk1fSU8gfCBWTV9ET05URVhQQU5EIHwgVk1fRE9OVERVTVA7DQo+Pj4gKw0KPj4+ICAg
CURSTV9ERVZfREVCVUdfS01TKHRvX2RtYV9kZXYob2JqLT5kZXYpLCAiZmxhZ3MgPSAweCV4
XG4iLA0KPj4+ICAgCQkJICBleHlub3NfZ2VtLT5mbGFncyk7DQo+Pj4gICANCj4+PiBAQCAt
Mzg1LDI2ICszOTIsNiBAQCBzdGF0aWMgaW50IGV4eW5vc19kcm1fZ2VtX21tYXBfb2JqKHN0
cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLA0KPj4+ICAgCXJldHVybiByZXQ7DQo+Pj4gICB9
DQo+Pj4gICANCj4+PiAtaW50IGV4eW5vc19kcm1fZ2VtX21tYXAoc3RydWN0IGZpbGUgKmZp
bHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPj4+IC17DQo+Pj4gLQlzdHJ1Y3Qg
ZHJtX2dlbV9vYmplY3QgKm9iajsNCj4+PiAtCWludCByZXQ7DQo+Pj4gLQ0KPj4+IC0JLyog
c2V0IHZtX2FyZWFfc3RydWN0LiAqLw0KPj4+IC0JcmV0ID0gZHJtX2dlbV9tbWFwKGZpbHAs
IHZtYSk7DQo+Pj4gLQlpZiAocmV0IDwgMCkgew0KPj4+IC0JCURSTV9FUlJPUigiZmFpbGVk
IHRvIG1tYXAuXG4iKTsNCj4+PiAtCQlyZXR1cm4gcmV0Ow0KPj4+IC0JfQ0KPj4+IC0NCj4+
PiAtCW9iaiA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOw0KPj4+IC0NCj4+PiAtCWlmIChvYmot
PmltcG9ydF9hdHRhY2gpDQo+Pj4gLQkJcmV0dXJuIGRtYV9idWZfbW1hcChvYmotPmRtYV9i
dWYsIHZtYSwgMCk7DQo+Pj4gLQ0KPj4+IC0JcmV0dXJuIGV4eW5vc19kcm1fZ2VtX21tYXBf
b2JqKG9iaiwgdm1hKTsNCj4+PiAtfQ0KPj4+IC0NCj4+PiAgIC8qIGxvdy1sZXZlbCBpbnRl
cmZhY2UgcHJpbWUgaGVscGVycyAqLw0KPj4+ICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpl
eHlub3NfZHJtX2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4+
PiAgIAkJCQkJICAgIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQ0KPj4+IEBAIC00NjYsMTUg
KzQ1MywzIEBAIGV4eW5vc19kcm1fZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3Qg
ZHJtX2RldmljZSAqZGV2LA0KPj4+ICAgCWV4eW5vc19nZW0tPnNndCA9IHNndDsNCj4+PiAg
IAlyZXR1cm4gJmV4eW5vc19nZW0tPmJhc2U7DQo+Pj4gICB9DQo+Pj4gLQ0KPj4+IC1pbnQg
ZXh5bm9zX2RybV9nZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwN
Cj4+PiAtCQkJICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpDQo+Pj4gLXsNCj4+
PiAtCWludCByZXQ7DQo+Pj4gLQ0KPj4+IC0JcmV0ID0gZHJtX2dlbV9tbWFwX29iaihvYmos
IG9iai0+c2l6ZSwgdm1hKTsNCj4+PiAtCWlmIChyZXQgPCAwKQ0KPj4+IC0JCXJldHVybiBy
ZXQ7DQo+Pj4gLQ0KPj4+IC0JcmV0dXJuIGV4eW5vc19kcm1fZ2VtX21tYXBfb2JqKG9iaiwg
dm1hKTsNCj4+PiAtfQ0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z
L2V4eW5vc19kcm1fZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1f
Z2VtLmgNCj4+PiBpbmRleCBhMjMyNzJmYjk2ZmIuLjc5ZDdlMWE4NzQxOSAxMDA2NDQNCj4+
PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ2VtLmgNCj4+PiAr
KysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ2VtLmgNCj4+PiBAQCAt
OTYsOSArOTYsNiBAQCBpbnQgZXh5bm9zX2RybV9nZW1fZHVtYl9jcmVhdGUoc3RydWN0IGRy
bV9maWxlICpmaWxlX3ByaXYsDQo+Pj4gICAJCQkgICAgICAgc3RydWN0IGRybV9kZXZpY2Ug
KmRldiwNCj4+PiAgIAkJCSAgICAgICBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFy
Z3MpOw0KPj4+ICAgDQo+Pj4gLS8qIHNldCB2bV9mbGFncyBhbmQgd2UgY2FuIGNoYW5nZSB0
aGUgdm0gYXR0cmlidXRlIHRvIG90aGVyIG9uZSBhdCBoZXJlLiAqLw0KPj4+IC1pbnQgZXh5
bm9zX2RybV9nZW1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3Ry
dWN0ICp2bWEpOw0KPj4+IC0NCj4+PiAgIC8qIGxvdy1sZXZlbCBpbnRlcmZhY2UgcHJpbWUg
aGVscGVycyAqLw0KPj4+ICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpleHlub3NfZHJtX2dl
bV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4+PiAgIAkJCQkJICAg
IHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKTsNCj4+PiBAQCAtMTA3LDcgKzEwNCw1IEBAIHN0
cnVjdCBkcm1fZ2VtX29iamVjdCAqDQo+Pj4gICBleHlub3NfZHJtX2dlbV9wcmltZV9pbXBv
cnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4+PiAgIAkJCQkgICAgIHN0
cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwNCj4+PiAgIAkJCQkgICAgIHN0cnVj
dCBzZ190YWJsZSAqc2d0KTsNCj4+PiAtaW50IGV4eW5vc19kcm1fZ2VtX3ByaW1lX21tYXAo
c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosDQo+Pj4gLQkJCSAgICAgIHN0cnVjdCB2bV9h
cmVhX3N0cnVjdCAqdm1hKTsNCj4+PiAgIA0KPj4+ICAgI2VuZGlmDQo+Pj4gLS0gDQo+Pj4g
Mi4zMy4xDQo+Pj4NCj4+DQoNCi0tIA0KVGhvbWFzIFppbW1lcm1hbm4NCkdyYXBoaWNzIERy
aXZlciBEZXZlbG9wZXINClNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSA0K
TWF4ZmVsZHN0ci4gNSwgOTA0MDkgTsO8cm5iZXJnLCBHZXJtYW55DQooSFJCIDM2ODA5LCBB
RyBOw7xybmJlcmcpDQpHZXNjaMOkZnRzZsO8aHJlcjogSXZvIFRvdGV2DQo=

--------------dDNcv4hgldp269ntTlcuR5df--

--------------7X4FDPPqD0rrr6V0bREDUp5Q
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmGKQwwFAwAAAAAACgkQlh/E3EQov+DZ
1g//RV9k/Hqxg2dVXIzHtfKGwZLb4sFbh/3qbJd0ioj5RJgSLlz52loz6HNPhKpbGHsLoHtILwNs
P30yHFeRXmkMsvUlA6AOQPe9N3rwZsUBCqN6f2nkyy7M69vh3teBqX5uVj/rIz59ZzLoR0Z/yIwV
O7sQ5N9qYrHFtHJKYGDYX2mVmoSfeq5M+JiwS/YiTwvg0IvZ1XH46XfX4cAlK24ZtonJdfLaBDbk
MSrv8UJEccBax6cl4LrMwnqVUqbmw3cVKBFPUCOzqpvECWc06n8YmCjN5T2UABFVzSv6AAOE/l25
j2y2U0E6boFD2jcreZg0jwFRDqXpnxOJSN6Is+Ugrk7K0BsNbCcKanUG1IZlLdxr0y9991WZvqD3
Ee4xugz17c4TsV18ux4N2Xjvl4/vUVKjewqGwvxMCCwHNmLSiz4Yr+4u4g8qFwRaE/cXSN3AxV/A
3mMSCRWzzpcqiwJSnFNvdCGwkkfPjFQTFDUMTn6mrFMzyJ+MVUjheOubILAoP22d8c72nY4TI5Fr
dbXi5ueT0l0cyy24mXeRk1ax07PXigWDyTJ4ovqCtDsebdo53tCeJBX6nNPPtfB+l03TNxuLdpvB
b5g9+X4cTxYfoyS/8kKmZUDRuRiIy83sXH5fUyE3oPtz2JWCyjV9obi9C4OoryvNYUVObbNEntLs
wZc=
=Bk4U
-----END PGP SIGNATURE-----

--------------7X4FDPPqD0rrr6V0bREDUp5Q--


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 09:47:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 09:47:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223836.386749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNjB-00026o-6h; Tue, 09 Nov 2021 09:47:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223836.386749; Tue, 09 Nov 2021 09:47:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkNjB-00026h-3g; Tue, 09 Nov 2021 09:47:41 +0000
Received: by outflank-mailman (input) for mailman id 223836;
 Tue, 09 Nov 2021 09:47:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=azzv=P4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mkNj9-00026b-W1
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 09:47:40 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 119e4767-4142-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 10:47:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 119e4767-4142-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636451257;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=okxqYjJoIPhDb7qPYkRrE58KXKpnf3p4OmPG4Q8TWKo=;
  b=J4UXw0r423mor4/D/iAK9LXMHsTmRjzaaq/nW5FUnl/RmDT3f+G05qgs
   NmlZJDyO8+H241oICQPn8j/zHHtYqccmDarg+wdnv/pHH0Kf6RbZ8bId4
   7J5h5aoLsXyy04xGf1lyZG+v49P5pgl7cm9xDv1/zPmbPIVtkthiudFIP
   0=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: t/XEZCLxOoIU/P+8BrG220NJ1VNDdfhJeks9zohWooaxKqH1v93Ay5AazHIveR2Nw53dSW0uQ6
 RNGCehqWNXdAfUabvWVdyvBo8KYCNmRssUMsD4SHQonLFOC5AoM1i5VN6NSoozQuC2BwskyNKK
 x703p8wnRELdyBFjrUi8XQiSyr84H/BFlwcs8TJaiPg09wV9kUexh/hKa3XGCM0HSBhpdw6bC7
 3v0TDrUvXbOiKbc25MvKdxhzkcXmtGiaxHnhCCFcAk90Rz6Hspv0HuV0h60L8kgh+ZP6uQkpcn
 OYFbk0vo9AOkLxb8ETTpF9rw
X-SBRS: 5.1
X-MesageID: 57354191
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Wb0YM6AhfprHHRVW//Dkw5YqxClBgxIJ4kV8jS/XYbTApG920zBWy
 2ZMD27VOKuOYTTzeN5/YYnjpkkGusWAx4UyQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540UM7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/2hK2v4tc7
 c10hKPhEiRxNZbDgOJAXEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvqRuIMBjW5YasZmPdDYW
 s0YYhRVYhH/Z0UIFwwOIsNmg7L97pX4W2IB8w/EzUYt2EDS0w5ZwLXrKMDSeNGBWYNShEnwj
 n3C13T0BFcdLtP34SqI9Degi/HCmQv/WZkOD/uo+/hymlqRy2cPThoMWjOGTeKR0xDkHYgFc
 gpNp3Ro/fNaGFGXosfVDjqHgCWpmwYlauUBSM5i4zqC0qyJ7FPMboQbdQJpZNsjvc4wYDUl0
 F6Vgt/kbQBSXK2ppWG1renN827rUcQBBSpbPHJfE1NZizX2iNhr1kqnczp1LEKiYjQZ8xnUy
 ivCkiUxjq57YSUjh/TipgCvb95BS/H0ou8JCuf/Aj3NAuBRPtfNi2mUBb7zt6sowGGxFAjpg
 ZT8s5LChN3i9LnU/MB3fM0DHauy+9GOOyDGjFhkEvEJrmr2pSXyI9ELu28kfS+F1/ronxezP
 Sc/XisLtfdu0IaCN/crM+pd9exzlcAM6ugJptiLN4ETM/CdhSeM/T10ZF744oweuBNErE3LA
 r/CKZzEJS9DUcxPlWPqL89Age5D7n1vngv7GMGkpylLJJLDPRZ5v59eawDQBg34hYvZyDjoH
 yF3a5HXlk4BCbKmOUE6M+c7dDg3EJTyPrivw+R/fe+fOAt2XmYnDv7a27Q6fIJ52a9Sk4/1E
 ruVACe0EXLz2i/KLxukcHdmZO+9VJpztytjbyctIUypyz4oZoP2tPUTcJ4+fL8G8u1/zKErE
 6lZKpvYWvkfGC7a/zk9bIXmqNAwfhqcmg/TbTGuZyIyfsA8SlWRqMPkZAbm6AIHEjGz6Zklu
 7Sl2w6CGcgDSg1uAdz4cvWqy1/t73ERlPgrBxnDI8VJeVWq+49vcnSjgvgyKsAKCBPC2jrFi
 FrGXUZG/bHA+tZn/sPIiKaIq5aSP9F/RkcKTXPG6buWNDXB+jbxy4F3T+vVLyvWU3n5+fv+a
 LwNne38KvAOgH1Dr5F4T+Rw1as76tbi++1awwBjECmZZlinEOo9cHyP3M0JvaxR3L5J/wCxX
 xvXqNVdPLyIPuLjEUIQe1V5PrjSi6lMl2mA9+kxLWX7+DRzreiOXkhlNhWRjDBQceluO4Q/z
 OZ94MMb5mRTUPbx3gpqWsyMy1mxEw==
IronPort-HdrOrdr: A9a23:NSNnHKuKcHGFEhxVBGNvCmjc7skCv4Aji2hC6mlwRA09TyXGra
 6TdaUguiMc1gx8ZJh5o6H6BEGBKUmskKKdkrNhR4tKPTOW9ldASbsJ0WKM+UyYJ8STzJ8/6U
 4CSdk+NDSTNykDsS+S2mDReLtAoOVvm5rY4ds2uk0dKz2CHJsQiDuRZDzrcHFedU1jP94UBZ
 Cc7s1Iq36LYnIMdPm2AXEDQqzqu8DLvIiOW29EOzcXrC21yR+44r/zFBaVmj0EVSlU/Lsk+W
 /Z1yTk+6SYte2hwBO07R6Q030Woqql9jJwPr3KtiEnEESrtu9uXvU5Z1S2hkFwnAho0idzrD
 CDmWZ6Ay050QKtQoj8m2qQ5+Cn6kdv11bSjWaCh33tuMr4Qy9/JfZgqOtiA0bkwntlhcp71q
 1T2WKfqt5wNjPv2ArAx/WgbWAxqqKTyUBSztL7S0YvDbf2IYUh07A37QdbFowNEzn9751iGO
 5yDNvE7PITal+CaWvF11MfiuCETzAwBR+IX0kPusuHlz5LgXt+00wUrfZv6kvo2ahNA6Ws3d
 60eZiAVYs+O/M+fOZ4HqMMUMG3AmvCTVbFN3+TO03uEOUCN2jWo5D67b0p7KXyEaZ4gKcaid
 DEShdVpGQyc0XhBYmH24BK6AnERCG4US72ws9T6pBlsvmlLYCbfhGrWRQriY+tsv8fCsrUV7
 K6P49XGebqKS/rFZxS1wPzVpFOIT0VUdETuNw8R1WSy/i7Z7HCp6jearLeNbDtGTErVif2BW
 YCRiH6IIFa4kWiShbD8VHscmKofla68YN7EaDc8eRWwoAJOopAuhNQk1ij5s2QbT1EqLE/e0
 FzZLPr+5nL1VVf1g7znhRU09pmfzBoCZnbIgB3TD4xQjTJmOw4yqqikEhprQm6GiM=
X-IronPort-AV: E=Sophos;i="5.87,219,1631592000"; 
   d="scan'208";a="57354191"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=k4ZfVSN+SPpcUklbez+xALbi9kVFR4oyPivKBybOcJs4+PoEOXNzs2Lk0SveZ/aBiinQzm6IB+F8F0/fX1fxM1l+zIN76PqlGS8UBrKIgNikvgEXxHY1zvZqaFhAeNtPqDK/a5pd5bET3EXOM0SeIdLWJD0CMRwmRa2kE+6UlP43AfYdn41NkIovaUD5pDpmF4rIcyQ8YnID1OZ5jgMTsTvb0xL1f2BA61DD0bbIiPaRzf1+noMcCDMWWwpklHxOH82rtXzWiCBPHYDbfMskDkUGtpHK6z0R4K/NevdV1Rnk/m5Lj4cIOySazypf9BNN+P1NYKFrtkVq8Px3rZCRRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3UGp35n62W09+BRbImWVllLPgSe870xztQmojpqzhAM=;
 b=Amz2jfSr/Tsgyraff7RmUWxINGkm6MRk22r1JBuClALmAKmHZiqTj/Bd51UPy/FJx4MEY75IMy5pMpXEjNLajRUCTAIREPwfqjkdvkUVnBJVOCPTBZK8hsJdwOVw4Ibw+YJgdtT3LmeSG++skZoq5efM/+23KamF3g99ESeOSEj0LJ5raEUtybQhWmF+RLZ3Jbhs0Bm2Wiqg2oK51UGyFMY6tEOHXy0+yo8uAs9Ul61EBnzfbEiyTKkyA1UFI+V4fQhaIsvE8Xz1GoTRO/PG7YKgFqtYDD/c+fbMVD39WVdUTmg+ecFAVsH+8R+EudQT76gUDAEa95vlLpg0q4ye9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3UGp35n62W09+BRbImWVllLPgSe870xztQmojpqzhAM=;
 b=X9r/PYuXIG58pc3/DxRTLM1O4lR0jLH8mMH23q3Ui6UX2TVlh5yo0UHDk9iou15nlHl3qdqAIZ0vU44jVg7T935oTIpjhJzm3NZHfRNbiK61kquVjGaS3X5kA21VdB7NGHK2EbdY1ME2CzHlK1pa3iSSpzxoT0A5ok0qDXWr528=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Ian Jackson <iwj@xenproject.org>
Subject: [PATCH for-4.16] tools/configure: make iPXE dependent on QEMU traditional
Date: Tue,  9 Nov 2021 10:47:21 +0100
Message-ID: <20211109094721.53346-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0142.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:30::34) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d0bd175d-5f16-4dbb-a0b3-08d9a365f3c5
X-MS-TrafficTypeDiagnostic: DM6PR03MB3674:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3674E528E4B731D5975549198F929@DM6PR03MB3674.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 6s5QYwsuzZq+IHQZ7eWKxBRwZMRidDRbKNVc4rm6h7HxyRAfhgF8K/+xDGPu8odzChw46EKsN+3/0X5oefI05eBpD1pBnhM+tx+sFu7JEZ6ADJopb2xu+sCU/hwyggPm20KNMYzl+FpKXA1HTzIfU7VQ3ZEyLUzImOk1ttexz87pWexRvmTzuQ9iJMcpuKXlYlzjiCRSUvlCs7HDg+1v7qfnJGXFTsC5+XzVqGjY2ZbyyFcC4Qn/iWgIvEslLcfAy82TTvQjkDBwoXv8EP50W5bcpMKhCbd7UNmRRnFJkb5bnYuUx7PCYFR6rycYWKWuuZFPkkSrZXWi+y+NrC9r9F9iKDO5oO73F3WnbSEQojvFR8XMRPrKq/MSpGsYId0Tqe1XSIEDykLZcH0BvBdqbB7/81vS0qZ9ytL+pnPB3Y3qZWhZAj9574ZnoS5dbEF6ZF6uMVWwde6YorPkiA+x/+DDamvK/actE9T6KPPBN5qa1LEXjxO+2uo9/2ODuhjb7NCJA+qPieYZIMyMp/F9MWsiRkH7gfRzQMp1ZNNcjFulsC2DAlvqWL9uMG03YZTBb9MV4M8CXrzPSLSyAZHxoynYDx+/qV8ucVg6nWfcIPHLxYtFi2bHIhRn06mPqBHcMzJDzaCMh5yrrd+r7YJQhw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66556008)(2616005)(83380400001)(66476007)(36756003)(54906003)(316002)(4326008)(6666004)(508600001)(956004)(6486002)(66946007)(38100700002)(82960400001)(186003)(6496006)(26005)(8676002)(1076003)(2906002)(5660300002)(6916009)(8936002)(86362001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QmpjMExIK1dtZWVad0x0OVlDZHNFOFdvSnJTaElGTlpKODk3RlNUa3NPd1F2?=
 =?utf-8?B?VC9tUlpCQTRZR0dJaGRIYUFLdS96cmtnUXRkM091KzRyS3BOc0VUemd5MFMy?=
 =?utf-8?B?VUMrbEsyaHR4WEx4bWFpWERxNWM5WHA5QTQ0VW9LdE9NWnJWWEhObTQrb1ZL?=
 =?utf-8?B?eGhhRC9qVktVOUd4ZFBQd1hsSWM2NnhtLzZ1K1lUOFJkTDFOWHVvYzA1ZWor?=
 =?utf-8?B?TTU0ZEVZY1R1blQ2cXljNWVJdkpZMTdaVU4xcDM2TWl5OUdPRytWcHlwaXNS?=
 =?utf-8?B?R3pSSjBFTDh1UjdrRUowY3ZhdkdUR3l1ME14NG1ReXpqekpXUXo3YXRLbkUy?=
 =?utf-8?B?SVlHdUdydEZQd0k2QnZ1Ukp6d1Y3b0tCRmlDbmxLbTVLOWJjS21tbzQwTnJp?=
 =?utf-8?B?Q3JBRUhTT1loK2ZEL3NydUxxWHM4alh2VjVGdGFPRk1sQ3FJQnozb3RxWCtK?=
 =?utf-8?B?dTVqNlhsR2E1dUZnVnU0UUFxbW5JS05idjRBeWdsaWtzVjhZa00xbVNKcjQ0?=
 =?utf-8?B?cFZON3kyajA2eDBSYk9YZW9wSUNqRTNkNGxpaUNXWUIvVGdFZzdSNnlKTEdz?=
 =?utf-8?B?YldkUHp5MHpvQ3ZvSUd5aEt2QmNUTnpoWkE5WnZGUzdVSC8zcEhIMXk5RjJp?=
 =?utf-8?B?UzhTSlJkc1NPVEx3UFo0bkg2aHozbDJ1WGM3NjQ4amYyNmVhOXpQakVDZ2Js?=
 =?utf-8?B?TGN1N1RHWnJXZ1hiVEdqa0R2eStib2t1Qk5LZ0ZEbHAzSGVLVXFkTTRUTm9r?=
 =?utf-8?B?UUtkcnFHdXlzUmR5emxrUWJHQ0ZvZHJWb3laOEdreUhObi8xUDhGRm80bDI3?=
 =?utf-8?B?MnF0eVdoc3ZLU0dmT3VncFJ3ZkZ5OGtvS3Byb1dVek9qMC9iZUVsd0ROUXE5?=
 =?utf-8?B?S0MxL1c2U0NRTkpzU0lPdE1qSHYvSHo2UFBZZE51QXJhL1NrdXJnS29jemlK?=
 =?utf-8?B?QnV3dVN3ekJsdTNzdXJCb05ZQ1lqNVVjcHpvOGZoVGhZWTNHQVAyWG9NQ2lE?=
 =?utf-8?B?dnY0dWkvYUNOcmJGY2k4WjdIRm4yc2tYM2dqaTByRGlwZ25ROEx6TEdoeVh1?=
 =?utf-8?B?dzhCU1RVQWxPMVBxbXA2ajlvQ2NEbDQ2Ukp0alRIUSs1TVhWS1JRbzhiUXZN?=
 =?utf-8?B?T3IyUlRDVlN0YmVJOHRzMnBmeTAwbGNrWHp4MzZ0NzhtVlNxTWoxaW1qbG1N?=
 =?utf-8?B?MzAyVHI3eUFYVk80NnRRTHd0N1Y4RGxpQkxUZjhhUDVEK3FFSjAwejRJS3Yv?=
 =?utf-8?B?cjkwYmFnblZCcW1iTFRBZGpkZ0M4WStvL28xSlhxK0RyMDB4dFo0dysycmcz?=
 =?utf-8?B?TGJHNDRydmJhOXFOcm1CdjhYenIxQ1g2NVlMbW5WSXR3VHlsUlFVUS95WDZ6?=
 =?utf-8?B?UE10dnFwVEdsY0NEQ2ZNNzJuMzJYQW80YURWNFM3UzdxVU9XUmFiZkRBd0R6?=
 =?utf-8?B?SWdqQkNIUkE4NnBuTW5jVDdEK2lmbVBnTkZvSGVjajVwYllFTGtWc2dyN3Rn?=
 =?utf-8?B?VzN5bFlyTUpMcWN3RkluSVpCcHhuemRjMVU5ZkFTbUNrUFNpWWkwSTZVU0tB?=
 =?utf-8?B?czFWc2xEazNNV0lnNkFjQytoUmRWUkhHRnRYZGlHa3JrdHB1MXRQeE9EQ3lS?=
 =?utf-8?B?aUJVNlloUUQ4Y3JiYWNEMXNnQWdrSmpuQTJSRkJGY0xEUStxQ1JaajArODVy?=
 =?utf-8?B?WDJsR0tjTmMrV043VUNqY3J5TEVrTWxFL0tOU2QxT1BsYTFNQmFNakVIbVRh?=
 =?utf-8?B?S1hXZUJtNEVJNFdXcnc0S0xpWktnTk1TeS91SzZPWWRSZi9EQlBHUDdnd3FG?=
 =?utf-8?B?RzhUSVdmY2dNMS9lTmhrTkZPVzVsbEVQNWJpSVZiL0tvRjhGM1hBWnRRVXVs?=
 =?utf-8?B?K0hSbmV1Qk8zTXMxSTFKL1EvWUo3TDJkZGVpVG92WFVEenFZNG9yMUFXbEpR?=
 =?utf-8?B?SVRHczgyOHo2ZXBBekZMei9TWEVEdTdFVWJsV3hVOWdKUzM5aG85b1N3MXFU?=
 =?utf-8?B?NWw4NEt3eHUzSjRTZCsvSTdVcTNnSys0UEp3dTl4Qk4zdDUyaFNqRVRML3l4?=
 =?utf-8?B?VWt1d1ZTNVBSZzBzdVljRFNYYXZMSGtaekJJSlphSXBzUDkvU2RVZUs1aVV5?=
 =?utf-8?B?QXZITGhtNmN6TXdvQXYybjJ0bEJ5a2pCTlJMT21JQlI4czhwcUZ1NGV6UkZB?=
 =?utf-8?Q?sTuL1GihpSweVIUwUFzuBeY=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: d0bd175d-5f16-4dbb-a0b3-08d9a365f3c5
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 09:47:32.8645
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yR2CgryM7PWCvaPQvNchtRzkHhlRTPUlIXgxCVdjsfQpg2fWBzKoTVJQa4uUHuBFLeNQQDNjv732HQCX8qjgXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3674
X-OriginatorOrg: citrix.com

iPXE is only used by QEMU traditional, so make it off by default
unless QEMU traditional is enabled.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Fixes: bcf77ce510 ('configure: modify default of building rombios')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

Please run autoconf before commit.

Without this patch FreeBSD build is broken, as iPXE won't build. The
main risk would be getting the configure script runes wrong, but I
think that's fairly easy to check as it will either work on not. It's
a change in the defaults, but it basically restores the behavior
previous to disabling qemu-trad on Linux.
---
 tools/configure.ac | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tools/configure.ac b/tools/configure.ac
index 03eb7cf146..3ac62626a5 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -130,13 +130,13 @@ AC_SUBST(qemu_traditional)
 
 AC_ARG_ENABLE([ipxe],
     AS_HELP_STRING([--enable-ipxe],
-                   [Enable in-tree IPXE, (DEFAULT is on for x86,
-                    otherwise off, see also --with-system-ipxe)]),,[
-    case "$host_cpu" in
-        i[[3456]]86|x86_64)
-           enable_ipxe="yes";;
-        *) enable_ipxe="no";;
-    esac
+                   [Enable in-tree IPXE,
+                    (DEFAULT is off, see also --with-system-ipxe)]),,[
+    AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
+        enable_ipxe="yes"
+    ], [
+        enable_ipxe="no"
+    ])
 ])
 AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
 AC_ARG_WITH([system-ipxe],
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 10:06:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 10:06:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223844.386761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkO0Y-0004U8-Tb; Tue, 09 Nov 2021 10:05:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223844.386761; Tue, 09 Nov 2021 10:05:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkO0Y-0004U1-QO; Tue, 09 Nov 2021 10:05:38 +0000
Received: by outflank-mailman (input) for mailman id 223844;
 Tue, 09 Nov 2021 10:05:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RHuC=P4=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mkO0X-0004Tv-79
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 10:05:37 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2062e.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94b3f1da-4144-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 11:05:35 +0100 (CET)
Received: from DB8PR06CA0030.eurprd06.prod.outlook.com (2603:10a6:10:100::43)
 by HE1PR08MB2907.eurprd08.prod.outlook.com (2603:10a6:7:2d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 10:05:33 +0000
Received: from DB5EUR03FT026.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:100:cafe::5e) by DB8PR06CA0030.outlook.office365.com
 (2603:10a6:10:100::43) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 10:05:33 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT026.mail.protection.outlook.com (10.152.20.159) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Tue, 9 Nov 2021 10:05:32 +0000
Received: ("Tessian outbound 2bb1f94ba47e:v108");
 Tue, 09 Nov 2021 10:05:32 +0000
Received: from e3a949313907.3
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 1328A7BF-1F89-40F0-ACA4-0A204C5C0AFF.1; 
 Tue, 09 Nov 2021 10:05:22 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e3a949313907.3
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 09 Nov 2021 10:05:22 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com (2603:10a6:10:2e4::7)
 by DB9PR08MB7148.eurprd08.prod.outlook.com (2603:10a6:10:2cc::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 10:05:18 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165]) by DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165%3]) with mapi id 15.20.4669.011; Tue, 9 Nov 2021
 10:05:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94b3f1da-4144-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zey6z0NrWG4VbMD6I16Lx9zOkqr1tv+CxPgc0xRsocE=;
 b=bM2mDv6l0IY1fVAyXbE8ReuOyDFyW52xCBhQOul6QLrOePoy7+VLqCV5+4wOgVqiBQHO2l/67QSKMCCANOwr5P9+5t/cLzDuELjAut9kyod3yAhnKYOVOVunrbnnhq8g2lFaYH7LSHnLN1Kn6YOVS9LyyHoG7FJtLxY55SMpxaU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dJYkBjX3o80pYBoq3/IAZ2O3TUTYkEt/qqQzNYCezGEvV3DGPT6jR5YH1LjHFl3cVV/mxfaMIhQpiDZFpOerKJeSNqeddXJr5brrxy0rdgbgItU5FtFbtjp9OFYvgJ89Hlj0wDRKG3lkj4GQC2FsXqNE3uV4XNczD3+S35El8Xuvl8iupw9YCI2NP9BBV4HXqmgkPerql2o9/6eHNVjsQjBc7UBNdoUvIrcP0v5YRUwWqzBhrCq9vrAKVmCSM9vVjPvx03rx90pzamtJDUkmB2CcIQpJHsfzspffL9I2glzB02Mg4icrNcULZO7G+DvLfnTNiRMqk8hEQp44CT0OYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zey6z0NrWG4VbMD6I16Lx9zOkqr1tv+CxPgc0xRsocE=;
 b=SR6VjdC5hGHAMgSBOgYHCDiKfPun0j1E4LhRtJAlOEI8qSUbRxXE7wXURUd0kqBEPSe7slOkDrOmYCjLxYhKi9cb5r8v2EnaynGvbV9W7Yx3E0BeE/+8v53MOko4TzNh0EvMEDZyRnAnLG/OtcICDxy2nz0+pV9dKYG/6UNOJWy+nc2QJIuowaADZba74X/+MzPDkjEx9PkpF9rZrIN+dlJqfsWIzhobMJ2jArlJhl+TS2hikuz/5eOHrYtym8qGaHxEzvCH8SfMywZcl8ZLtcUapHg+qirODk0NhwV8Bp4PhR3WuHarFGa7200rGlXpN+UyN/vm09zwG7FdRUL3JQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zey6z0NrWG4VbMD6I16Lx9zOkqr1tv+CxPgc0xRsocE=;
 b=bM2mDv6l0IY1fVAyXbE8ReuOyDFyW52xCBhQOul6QLrOePoy7+VLqCV5+4wOgVqiBQHO2l/67QSKMCCANOwr5P9+5t/cLzDuELjAut9kyod3yAhnKYOVOVunrbnnhq8g2lFaYH7LSHnLN1Kn6YOVS9LyyHoG7FJtLxY55SMpxaU=
From: Penny Zheng <Penny.Zheng@arm.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>
CC: Wei Chen <Wei.Chen@arm.com>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <Michal.Orzel@arm.com>
Subject: RE: [PATCH v2 1/6] xen: introduce XEN_DOMCTL_CDF_directmap
Thread-Topic: [PATCH v2 1/6] xen: introduce XEN_DOMCTL_CDF_directmap
Thread-Index: AQHXwaKc9sR/Jlon9kSpv6953h7AKKv7Gsiw
Date: Tue, 9 Nov 2021 10:05:18 +0000
Message-ID:
 <DU2PR08MB732524AE5C80DFE2E6368D15F7929@DU2PR08MB7325.eurprd08.prod.outlook.com>
References: <20211015030945.2082898-1-penny.zheng@arm.com>
 <20211015030945.2082898-2-penny.zheng@arm.com>
 <0eba23e2-54f4-0fe4-d811-c2fb8a0602b0@xen.org>
In-Reply-To: <0eba23e2-54f4-0fe4-d811-c2fb8a0602b0@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: F5CD2D256E8D44468DFB4C18FA1A0E8E.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 2d87ba32-72d8-4e5a-0220-08d9a36877a9
x-ms-traffictypediagnostic: DB9PR08MB7148:|HE1PR08MB2907:
X-Microsoft-Antispam-PRVS:
	<HE1PR08MB290739BFE056EBB943903004F7929@HE1PR08MB2907.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 URq4mhKt2PPa9V/MuhaVDsQ4ZIiAIjKSC0TglO44cTjJ5YSfaMo0cmMQ4k/fN+eJHdrnb/tmRGqGs4Z4dw6iUIlHK8jypuJi/mN8hc0CTYbUMBFNPrF+9eRP/z9xyfOTcStCRPhZrYbJyAyC02Q80BMLk9rlUgVPsoORlg+uxAK8X4cdjsCHKIZ2YXzGrVNz0gzVuldZwX/3pJ/relIwI5/RXxzVQWWCIPiQDdgwuaRHTbVPv05/7UGra6ep0SJYBipKC20t8RreGE2WIti6DNy9yypZhQklM/iITML8Uehm/UmjFrOgHrEfG3tAD01r5Q9tlJR4gyenKcimzieBei5KHd9DOth6DSbo71L9pdZIe+FqbmXN8kjOjjZ0OU8/jgyhwxbfigZNC+E1AD8d2LruEAVyFwNnDQejCG9/NVpa4N4wLibjNIHaKPC8jTYCHxI09BHAmfUTYkG0I40guEead6x47dQXw8uFEAFEQfO+cGUljeRaiN+OF33KU5uRdfy1AK83oyd8LyXnwKuMdaNyYsm5jV2D6DorNUev7mONEM+v36c4dr5yWP+abt9rhrGoA9Svbwr0cxw8sjjq473Z4DPm0Yi5DkuLyd2slHtw4EE33IATsCjfGOMBKLBDQb0rvBLdneWlm05yGXScVW7RXysXY8Xi/uBNNZbJov8RLVtpnzHY8xqArzCrY+ndyPQ+b9BpwKy8UahJajEy3A==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(6506007)(186003)(316002)(53546011)(38100700002)(122000001)(9686003)(66446008)(76116006)(33656002)(52536014)(26005)(54906003)(66946007)(64756008)(66556008)(66476007)(110136005)(8676002)(83380400001)(5660300002)(71200400001)(38070700005)(86362001)(508600001)(4326008)(2906002)(7696005)(55016002);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7148
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT026.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	68a4c68c-6d82-411b-8c76-08d9a3686efc
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	I2ebybuSepGSXyD9dAq3zpsdbcFgc3wB/Dj6+QaQsd467rfbAnjWo1UtWP8oDc2V7Oj62xt9qYgP/jL2xddh8H+FlEZAUusVPRX9S15Qo7vYWNpoPoUyZWqmIQFako2F0uks41eTXab2DW3lb5xzrtL68YqSCzlFMBMXljqC4+rdxojG+mVPRkrcp+/qr1YSVC+nMQv2Xt7aUHMpgjS/0f8bGAVQPi1Knu3zTEVGHYrA2KfLSEIU9Hlj2O3gBprtP4s/wZM6TpAs49Ahczz49XJQu7NUOOouYlYFhxtu2RUQ+Sko30naBdVwpwxzwSuQnbDftPQUX9XUpEVD4PekKum2fzsEn4EuxAZDQctDg9LbeESf5pBdz810PZYFGGOi86Hy8iPdP7Najswyp8OtBJHfSbLGHXHrUlnVSI1VLjyyN0aCK2noUd7Nm0A1C+0i5O+N2XAeVhDzu613G83MxrSnqXfrbqAY4tViKjSAXtGVGQw2qKFwABIFw/EpAWRY3NO9oTLbkM8B/Vrtd6CL0Yrs1ISf4aBDRyjK8YQ8rZfmH61LzR8ng/w916kbElUoSsk1sPBTl3gGci8eou3NMxJkacyyod0sRczoLc1m7o+FiOpL3YGimaqC8lgneP8GYvlcsJ6olaSjssSWtkDwa59aokYXZG4a8tbP3A7OJMZqc3IkcXerTWhKHwN+9T5Hk3o4aVzXvkLJHXmssY6qMQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(2906002)(110136005)(70586007)(4326008)(186003)(47076005)(70206006)(54906003)(316002)(26005)(82310400003)(508600001)(5660300002)(81166007)(52536014)(33656002)(36860700001)(86362001)(55016002)(356005)(7696005)(9686003)(336012)(83380400001)(8676002)(6506007)(53546011)(8936002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 10:05:32.9046
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d87ba32-72d8-4e5a-0220-08d9a36877a9
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT026.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB2907

SGkgSnVsaWVuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSnVsaWVu
IEdyYWxsIDxqdWxpZW5AeGVuLm9yZz4NCj4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDE1LCAyMDIx
IDQ6NTcgUE0NCj4gVG86IFBlbm55IFpoZW5nIDxQZW5ueS5aaGVuZ0Bhcm0uY29tPjsgeGVuLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOw0KPiBzc3RhYmVsbGluaUBrZXJuZWwub3JnDQo+IENj
OiBXZWkgQ2hlbiA8V2VpLkNoZW5AYXJtLmNvbT47IEJlcnRyYW5kIE1hcnF1aXMNCj4gPEJlcnRy
YW5kLk1hcnF1aXNAYXJtLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MiAxLzZdIHhlbjog
aW50cm9kdWNlIFhFTl9ET01DVExfQ0RGX2RpcmVjdG1hcA0KPiANCj4gSGkgUGVubnksDQo+IA0K
PiBPbiAxNS8xMC8yMDIxIDA0OjA5LCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPiBkaWZmIC0tZ2l0
IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWls
ZC5jDQo+ID4gaW5kZXggMDE2NzczMWFiMC4uMzdlMmQ2MmQ0NyAxMDA2NDQNCj4gPiAtLS0gYS94
ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4gPiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWlu
X2J1aWxkLmMNCj4gPiBAQCAtMzA2OSw4ICszMDY5LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGNv
bnN0cnVjdF9kb20wKHN0cnVjdCBkb21haW4gKmQpDQo+ID4gICB2b2lkIF9faW5pdCBjcmVhdGVf
ZG9tMCh2b2lkKQ0KPiA+ICAgew0KPiA+ICAgICAgIHN0cnVjdCBkb21haW4gKmRvbTA7DQo+ID4g
KyAgICAvKiBET00wIGhhcyBhbHdheXMgaXRzIG1lbW9yeSBkaXJlY3RseSBtYXBwZWQuICovDQo+
ID4gICAgICAgc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluIGRvbTBfY2ZnID0gew0KPiA+
IC0gICAgICAgIC5mbGFncyA9IFhFTl9ET01DVExfQ0RGX2h2bSB8IFhFTl9ET01DVExfQ0RGX2hh
cCwNCj4gPiArICAgICAgICAuZmxhZ3MgPSBYRU5fRE9NQ1RMX0NERl9odm0gfCBYRU5fRE9NQ1RM
X0NERl9oYXAgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFhFTl9ET01DVExfQ0RGX2RpcmVjdG1h
cCwNCj4gPiAgICAgICAgICAgLm1heF9ldnRjaG5fcG9ydCA9IC0xLA0KPiA+ICAgICAgICAgICAu
bWF4X2dyYW50X2ZyYW1lcyA9IGdudHRhYl9kb20wX2ZyYW1lcygpLA0KPiA+ICAgICAgICAgICAu
bWF4X21hcHRyYWNrX2ZyYW1lcyA9IC0xLA0KPiA+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2Rv
bWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYyBpbmRleA0KPiA+IDhiNTNjNDlkMWUuLjdhNjEz
MWRiNzQgMTAwNjQ0DQo+ID4gLS0tIGEveGVuL2NvbW1vbi9kb21haW4uYw0KPiA+ICsrKyBiL3hl
bi9jb21tb24vZG9tYWluLmMNCj4gPiBAQCAtNDg2LDcgKzQ4Niw4IEBAIHN0YXRpYyBpbnQgc2Fu
aXRpc2VfZG9tYWluX2NvbmZpZyhzdHJ1Y3QNCj4geGVuX2RvbWN0bF9jcmVhdGVkb21haW4gKmNv
bmZpZykNCj4gPiAgICAgICAgICAgIH4oWEVOX0RPTUNUTF9DREZfaHZtIHwgWEVOX0RPTUNUTF9D
REZfaGFwIHwNCj4gPiAgICAgICAgICAgICAgWEVOX0RPTUNUTF9DREZfczNfaW50ZWdyaXR5IHwg
WEVOX0RPTUNUTF9DREZfb29zX29mZiB8DQo+ID4gICAgICAgICAgICAgIFhFTl9ET01DVExfQ0RG
X3hzX2RvbWFpbiB8IFhFTl9ET01DVExfQ0RGX2lvbW11IHwNCj4gPiAtICAgICAgICAgICBYRU5f
RE9NQ1RMX0NERl9uZXN0ZWRfdmlydCB8IFhFTl9ET01DVExfQ0RGX3ZwbXUpICkNCj4gPiArICAg
ICAgICAgICBYRU5fRE9NQ1RMX0NERl9uZXN0ZWRfdmlydCB8IFhFTl9ET01DVExfQ0RGX3ZwbXUg
fA0KPiA+ICsgICAgICAgICAgIFhFTl9ET01DVExfQ0RGX2RpcmVjdG1hcCkgKQ0KPiA+ICAgICAg
IHsNCj4gPiAgICAgICAgICAgZHByaW50ayhYRU5MT0dfSU5GTywgIlVua25vd24gQ0RGIGZsYWdz
ICUjeFxuIiwgY29uZmlnLT5mbGFncyk7DQo+ID4gICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0K
PiA+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oDQo+ID4gYi94ZW4v
aW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oIGluZGV4IDE0ZTU3NTI4OGYuLmZjNDJjNmEzMTAgMTAw
NjQ0DQo+ID4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaA0KPiA+ICsrKyBiL3hl
bi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgNCj4gPiBAQCAtMjksOCArMjksOCBAQCBlbnVtIGRv
bWFpbl90eXBlIHsNCj4gPiAgICNkZWZpbmUgaXNfNjRiaXRfZG9tYWluKGQpICgwKQ0KPiA+ICAg
I2VuZGlmDQo+ID4NCj4gPiAtLyogVGhlIGhhcmR3YXJlIGRvbWFpbiBoYXMgYWx3YXlzIGl0cyBt
ZW1vcnkgZGlyZWN0IG1hcHBlZC4gKi8NCj4gPiAtI2RlZmluZSBpc19kb21haW5fZGlyZWN0X21h
cHBlZChkKSBpc19oYXJkd2FyZV9kb21haW4oZCkNCj4gPiArLyogQ2hlY2sgaWYgZG9tYWluIGlz
IGRpcmVjdC1tYXAgbWVtb3J5IG1hcC4gKi8gI2RlZmluZQ0KPiA+ICtpc19kb21haW5fZGlyZWN0
X21hcHBlZChkKSAoZC0+b3B0aW9ucyAmIFhFTl9ET01DVExfQ0RGX2RpcmVjdG1hcCkNCj4gPg0K
PiA+ICAgc3RydWN0IHZ0aW1lciB7DQo+ID4gICAgICAgc3RydWN0IHZjcHUgKnY7DQo+ID4gZGlm
ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaCBiL3hlbi9pbmNsdWRlL3B1Ymxp
Yy9kb21jdGwuaA0KPiA+IGluZGV4IDIzODM4NGI1YWUuLmI1MDVhMGRiNTEgMTAwNjQ0DQo+ID4g
LS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oDQo+ID4gKysrIGIveGVuL2luY2x1ZGUv
cHVibGljL2RvbWN0bC5oDQo+ID4gQEAgLTcyLDkgKzcyLDExIEBAIHN0cnVjdCB4ZW5fZG9tY3Rs
X2NyZWF0ZWRvbWFpbiB7DQo+ID4gICAjZGVmaW5lIFhFTl9ET01DVExfQ0RGX25lc3RlZF92aXJ0
ICAgICgxVSA8PA0KPiBfWEVOX0RPTUNUTF9DREZfbmVzdGVkX3ZpcnQpDQo+ID4gICAvKiBTaG91
bGQgd2UgZXhwb3NlIHRoZSB2UE1VIHRvIHRoZSBndWVzdD8gKi8NCj4gPiAgICNkZWZpbmUgWEVO
X0RPTUNUTF9DREZfdnBtdSAgICAgICAgICAgKDFVIDw8IDcpDQo+ID4gKy8qIElmIHRoaXMgZG9t
YWluIGhhcyBpdHMgbWVtb3J5IGRpcmVjdGx5IG1hcHBlZD8gKEFSTSBvbmx5KSAqLw0KPiA+ICsj
ZGVmaW5lIFhFTl9ET01DVExfQ0RGX2RpcmVjdG1hcCAgICAgICgxVSA8PCA4KQ0KPiA+DQo+ID4g
ICAvKiBNYXggWEVOX0RPTUNUTF9DREZfKiBjb25zdGFudC4gIFVzZWQgZm9yIEFCSSBjaGVja2lu
Zy4gKi8NCj4gPiAtI2RlZmluZSBYRU5fRE9NQ1RMX0NERl9NQVggWEVOX0RPTUNUTF9DREZfdnBt
dQ0KPiA+ICsjZGVmaW5lIFhFTl9ET01DVExfQ0RGX01BWCBYRU5fRE9NQ1RMX0NERl9kaXJlY3Rt
YXANCj4gDQo+IEluIHRoZSBwcmV2aW91cyB2ZXJzaW9uLCB0aGlzIGZsYWcgd2FzIG9ubHkgc2V0
dGFibGUgZm9yIGRvbWFpbiBjcmVhdGVkIGJ5IFhlbi4NCj4gTm93IHRoaXMgaXMgYWxzbyBzZXR0
YWJsZSBieSB0aGUgdG9vbHN0YWNrLiBJIGRvbid0IHRoaW5rIHRoZSB0b29sc3RhY2sgY2FuDQo+
IHNlbnNpYmx5IHVzZSB0aGlzIGZsYWcgKGF0IGxlYXN0IGluIHRoZSBjdXJyZW50IHN0YXRlKS4N
Cj4gDQo+IFNvIGNhbiB5b3UgZXhwbGFpbiB3aHkgdGhpcyBmbGFnIGlzIGV4cG9zZWQgdG8gdGhl
IHRvb2xzdGFjaz8NCj4gDQoNCmlmIEkgbW92ZWQgWEVOX0RPTUNUTF9DREZfZGlyZWN0bWFwIHRv
IHRoZSBkb21haW4uaCwgYW5kIGxldCBpdCBob2xkIHRoZQ0KYml0IDgsIGluIGNhc2UgbGF0ZXIg
YW5vdGhlciBkZXZlbG9wZXIgd2FudHMgdG8gaW50cm9kdWNlIGEgbmV3IGZsYWcgdG8gYWNjaWRl
bnRseQ0KaG9sZCA4IGJpdCB0b28sIEkgd291bGQgbGlrZSB0byBhZGQgc29tZSBleHBsYW5hdG9y
eSBjb21tZW50cyBoZXJlIGFuZCBtYXliZSByZW5hbWUNCnRoZSBYRU5fRE9NQ1RMX0NERl9kaXJl
Y3RtYXAgdG8gWEVOX0RPTUNUTF9DREZfSW50ZXJuYWxfZGlyZWN0bWFwLCB3ZHl0Pw0KDQo+IENo
ZWVycywNCj4gDQo+IC0tDQoNCkNoZWVycw0KDQpQZW5ueSBaaGVuZw0KPiBKdWxpZW4gR3JhbGwN
Cg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 10:45:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 10:45:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223855.386772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkOdE-0008Ve-SU; Tue, 09 Nov 2021 10:45:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223855.386772; Tue, 09 Nov 2021 10:45:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkOdE-0008VX-P2; Tue, 09 Nov 2021 10:45:36 +0000
Received: by outflank-mailman (input) for mailman id 223855;
 Tue, 09 Nov 2021 10:45:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkOdD-0008VM-7N
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 10:45:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkOdD-0005AB-51
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 10:45:35 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkOdD-0006vp-42
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 10:45:35 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mkOd0-0004tx-MA; Tue, 09 Nov 2021 10:45:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=xa8/qMuNhYINcNiV8+d2rg7CR8LprJ+dEYaZuTjLmNc=; b=zqbdMK97E0Kbl+AqcAZF/Cg08X
	txkyCONuslZRAYQa1YSEdJWLE0qEqaFg9UvIDIQZ9kh+IHTQUuCEqc/9gKYkE8tiNFSZpfPw3Tqlq
	073gKooU1GqUeuNHdTGpQpQMjTO15vDie3gXl/wMB0yNyCeFjBth5cLptP+h26B0p7Lw=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24970.20802.96908.223297@mariner.uk.xensource.com>
Date: Tue, 9 Nov 2021 10:45:22 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: julien@xen.org,
    Penny.Zheng@arm.com,
    Bertrand.Marquis@arm.com,
    Wei.Chen@arm.com,
    iwj@xenproject.org,
    Volodymyr_Babchuk@epam.com,
    xen-devel@lists.xenproject.org,
    Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: Re: [PATCH for-4.16] xen/arm: don't assign domU static-mem to dom0 as reserved-memory
In-Reply-To: <20211109004808.115906-1-sstabellini@kernel.org>
References: <20211109004808.115906-1-sstabellini@kernel.org>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Stefano Stabellini writes ("[PATCH for-4.16] xen/arm: don't assign domU static-mem to dom0 as reserved-memory"):
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> DomUs static-mem ranges are added to the reserved_mem array for
> accounting, but they shouldn't be assigned to dom0 as the other regular
> reserved-memory ranges in device tree.
> 
> In make_memory_nodes, fix the error by skipping banks with xen_domain
> set to true in the reserved-memory array. Also make sure to use the
> first valid (!xen_domain) start address for the memory node name.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 10:53:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 10:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223860.386782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkOkI-0001UX-KS; Tue, 09 Nov 2021 10:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223860.386782; Tue, 09 Nov 2021 10:52:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkOkI-0001UQ-HK; Tue, 09 Nov 2021 10:52:54 +0000
Received: by outflank-mailman (input) for mailman id 223860;
 Tue, 09 Nov 2021 10:52:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkOkG-0001UK-FK
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 10:52:52 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkOkG-0005IP-BO
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 10:52:52 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkOkG-00075y-AV
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 10:52:52 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mkOkC-0004wR-P6; Tue, 09 Nov 2021 10:52:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=IDMTRU2RCDKH3WBmqB8KfTyjLM5pGiiSrgL4BmFurSQ=; b=tGC23z4HYWmQaC78UzwisPIReM
	/zvP6zKRvt+2hl+NpTw5odixwXYoWisUohyxxQyDNhgWzuhH9J3KGrWriRcydM2AWB/M7yNdLHsI1
	qEGaasMcjQR1fHYYzZVTytSggCWqNoE+FHj6esjVtwMzg7AMJ3x5sLazGp+JnQz6sk14=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24970.21248.183587.545654@mariner.uk.xensource.com>
Date: Tue, 9 Nov 2021 10:52:48 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    Andrew  Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH for-4.16] tools/configure: make iPXE dependent on QEMU traditional
In-Reply-To: <20211109094721.53346-1-roger.pau@citrix.com>
References: <20211109094721.53346-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16] tools/configure: make iPXE dependent on QEMU traditional"):
> iPXE is only used by QEMU traditional, so make it off by default
> unless QEMU traditional is enabled.
> 
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Fixes: bcf77ce510 ('configure: modify default of building rombios')
> Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>

This seems to me to be, effectively, a missing hunk from bcf77ce510.
I have stared at it and it looks right to me.  I also looked at some
CI logs.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>
Reviewed-by: Ian Jackson <iwj@xenproject.org>

Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 11:01:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 11:01:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223867.386797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkOsF-0002xx-HD; Tue, 09 Nov 2021 11:01:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223867.386797; Tue, 09 Nov 2021 11:01:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkOsF-0002xq-EF; Tue, 09 Nov 2021 11:01:07 +0000
Received: by outflank-mailman (input) for mailman id 223867;
 Tue, 09 Nov 2021 11:01:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkOsE-0002xk-OQ
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 11:01:06 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 551f6ae6-414c-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 12:01:05 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2176.outbound.protection.outlook.com [104.47.17.176])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-2-1Mlfokk2MxKH7eh3D5ArGw-1; Tue, 09 Nov 2021 12:01:02 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3775.eurprd04.prod.outlook.com (2603:10a6:803:1a::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 11:01:00 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 11:01:00 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9P194CA0008.EURP194.PROD.OUTLOOK.COM (2603:10a6:20b:46d::27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Tue, 9 Nov 2021 11:00:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 551f6ae6-414c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636455664;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zjJuk/KrpS4ruiwa4Pg3T5VONjH3xlHdxkrjsajOmys=;
	b=k40S3IWr1qZDrgz8MKlzBrN7QgFrYKlDsLfj/KdzyhU15QplvP78q9bBIc1JhJihcqbfI6
	C1z8n5Y5C0hj/vngFZl+NK3huaMHVnLVnTNwg2CHy4Fvsicpw5i4Q8CqV5KmeM2RCiwnCC
	z5Zcd6o4eHUh+hPtBMYG5Gy6ZypPYzU=
X-MC-Unique: 1Mlfokk2MxKH7eh3D5ArGw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IfPSHc5TirtQORw4bo9hUpqIjQalBL2UAkCtx38agerV/MMajIYD5ud/0hTUS9GOMq0+1jGEsmUVDg551NAJXtoQA2ta4cTKPcKMfz226E0jrrNdELaf3jPeml31uTv3NAfU/uV1XKsbPfkhAwpfOaD9NTixZiDYroDtVxXeRf1tMIkcjtuhGRUUS3c/C6A8ZKATsx5DwJLlUWCi9z+4HGKSh2a8A9U8+qtRSS/dnSYjjur2hpwCLWTCkgg1AR7lGDi8tre8Qg4SV6f/uEQGrvOVwvLFIgbHAVz714weC+eIg4Vpn4ozzIjKOZzNTpmh1Ht7pehBFJ+/nqoqkG7ZmA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zjJuk/KrpS4ruiwa4Pg3T5VONjH3xlHdxkrjsajOmys=;
 b=G4KqdR6Mu69p7L1kNNKd5Y+ILb06iuQBHwqbYxVO47284VQMhw+B+9w3mYX/UOUSaXkT3eh63ZaVDQbPrt9iBmuuyFdx9lyohqaCUiGBpFHaIzjKtDbEGwB9Mk3bBrb1+tdqdvxQjBE90qkd3F4pqpgghyQgGbXhx2E06b6ClcvYal+XDYadLzSrnyiQDTRE71rh0NBbCtNo8ez5aQJq7Fgtpq6G5sw5Z9DDbzWTBJgip5EpBtwGtyDL+WoA0Ib+JkUhWUaE+ePpIAY5jDOiq1K5vn4LuFaaNpyLG66nJ3A+3R7fJjoR+5sAqjLwyKHHWzctpe+C5hch8ucCFEq9Bw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
Date: Tue, 9 Nov 2021 12:00:58 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9P194CA0008.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:20b:46d::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a7da6c56-bc68-4613-b01f-08d9a3703701
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3775:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3775330C80AAE836D14D3244B3929@VI1PR0402MB3775.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	pRN493NTq8P+UmRUINQtfchCG08L50i3LCYnBOBmweMWKvHpnrYUxMgAvKSdf9+Djf4+wmKHTLtH4RfALAYl0gD5JuJWTi/43UBqJgVNtsaltUgKwawCxLbL1SvcbLRmy+4OQ4UvBPJ9lF3Qoec+p2uStZMvlS1grjQFoVbjFZzUaobyoKpVegmDH3/q0Vv+nx7X2023tmqMQqDkmu9dj5k6NaBUTvDhEqjv3dIi6Oqz08ye1puE1Ng1TffjE0no3dqdzeDvv0imuoxUZzmP9nLSt6sAmVgSaCAc8ptzquURVyftGP6WtAk5oJnguo37ihVhD6vqq5H7slSR7JKSk9XGacw5LIIThgPUxaBQtX5sKqvIWhwXu0xyOcxNX2cw0+gYdG3Fysi5RxJEqXk8hobjrW9+dgpgV+1ulRvd9HNj7jIp8C8jBT+rGXK0/qHPVzVlxZTJbnBGop1uApD1cLyyavJH53FeD4E0LA2bMkFj1M2lR5vhf8x6OVbD1qMMUichAuJjBAi+yMXgqSzyrsYN1PeQrYaZ0buOevS24VbXTVwLyDqLdN1CCa+PMUUuxW7nlFWFLfV0EWBZIrwoECYiBgZQOcBh0mhECiAZSM5wyZdsUCE2BNXAajhoifw+9U+ZiL1YadzP5VLr8hdunrtM8ilhhhMaRm3PFp3jaUMXibDAuKCcVKeK8TJEw3rTPnpKEiPKD/V/tyIqqxU4VHMCrHA9JZ+i39KRIfHN/h0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(5660300002)(2616005)(26005)(186003)(8936002)(956004)(508600001)(83380400001)(53546011)(6486002)(36756003)(8676002)(316002)(38100700002)(66476007)(54906003)(31686004)(86362001)(66556008)(2906002)(6916009)(66946007)(4326008)(16576012)(31696002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?citxTDFVNXhiNk9rRVUxSEErS3pqaEJYQXRjS2ZRTVcrRHVMczlwa3pPTkJC?=
 =?utf-8?B?cnJQd2R5VEhWWUE1U2RZY3cveWFhVXhEdWh1aW5TVDU2NEt6QkNqSE00M3lW?=
 =?utf-8?B?RFl1QlFpekdPZTAxa212bXVHUE1pNEZHWGozNTNXY1c4YjBQS3J2RWt1QS9x?=
 =?utf-8?B?ZUlhU1M2Y1Bzb3F6VFZzWUJjZUdBSHRzQThPdUxxVmtaUG45ZmZjQXZia3ZZ?=
 =?utf-8?B?QncwK3JRcTJDeTVxaEZ6L0RSMGlIL2pkbk5mc1E2UmNEV1dvWENlRjA3dkhj?=
 =?utf-8?B?NUh1WElYKzhJVWpxQVhoYUY0MHdRbFNyTEZBQkIwalV2VTdTWGNZOXN0Zkt6?=
 =?utf-8?B?YUREZ2h3SElrdTFBN3NrUjFiR1dHUCsxR0l4MFVZMjR1NjFzd05kTVp2VlVQ?=
 =?utf-8?B?SVRtSjJyTERFa1VpRk1qaCtlVnVDR0RDOThjUUNpQVo3S3JubFdwQVlYZm1n?=
 =?utf-8?B?cWRST1RQSkVjb1lCUk4vb09qekwreGtCK0UrZm40ai9XN3M3YWNUWGpxdURj?=
 =?utf-8?B?bEhncE5MeXdPakNJZCszc0dXc0prMGgvWEFCVFNGdTRsc2FMT1lhMHdWYzBy?=
 =?utf-8?B?MDNBbEhsQ3JvTTNXTStRWlg2T1lXUU9razRaNEwzNnkyMFRWMitxc0V0cjdP?=
 =?utf-8?B?VVhzdnU5bXJ5S3FXUUkvc1dzM2Vhc2hwa2pSbXdtTU1RcExWb0V4bElNTW5r?=
 =?utf-8?B?a3JjU0RHOGhiOURjdmg3STVuNE5DeGdabmdMOWpEZ1FEVW9TMGpwY0c2U212?=
 =?utf-8?B?bE52RFpDRTRnQWszbk0wbXRKZ1BSOWpQRWkvYTdORVBIMnArMUYvcEpPSVdk?=
 =?utf-8?B?SlpmOGZkSEJqdzk4NTBkOURtZGNVSlNJRnF6OEI2OU5abkk3QUN3Z0UyblZQ?=
 =?utf-8?B?Y2xDUzdMVWF3SG9adkVhY3VrNU9MejRiYjdTOG16dEtHTFRoTXFXb3RIZzVT?=
 =?utf-8?B?eHlRVnppdFMxejBHSm9DeC8zUjlkVndQTHoxSHVUT2hWMy9GalFzdllieCtw?=
 =?utf-8?B?OWovdHMyeW9IeG1lQjFSTzdFb3N4UkhvWGFzUFN2UjlOdjN3UzBSanQrbnph?=
 =?utf-8?B?T2RxajUwMHFwQ1Z6cG5ZV1ppYjd0OHUvU0I2UFNvN1pjL2RaUDhEUVZIalB4?=
 =?utf-8?B?Zlh6TU44QmFrMDZJUGx2MU8yRGpEV0w0d2lHZUlQRjAyWmpYRmhrc3MwY0JC?=
 =?utf-8?B?VmxXWWRGaU9wTVRRMFhPQkYrcG56VzdyRUZjZWFvb3BLQ2d2ck5EMVFLWm5J?=
 =?utf-8?B?ZHgvcTBodUM0SkFHMHhlSlNqcVVibHFFNE9veFJ5cTBQNGpvb1hFcTF3Z2U3?=
 =?utf-8?B?S3hQZGMxM0xyb1hHNzBmcnoyeUh6OE9VRGJEbldjSUd2VEdrRUtOK1BoTzVG?=
 =?utf-8?B?bmhzNFZTOG83KzFGNFdQU2VLa3k5RlFreE81YzdkZnJFeCtwU0doSHNnMkR6?=
 =?utf-8?B?Nm1TSUpwYjBSeDUvcVFwdUw4ZjBPVVJkRmV6NjQwYUxQT0xsWjhEV3VqLzU1?=
 =?utf-8?B?M1REKzdwSUQxcWQxYzdwdWs0YW5Yc0U2dHl0bW0xRFFHVWRiZlBRKzBWaVVu?=
 =?utf-8?B?NFR5QWJSTlcvRjZWejM4Y0pDdWNWWXB1d3pJNFBMemVhc1NLdWtYWVo2akVz?=
 =?utf-8?B?bFFZWlk2RXVoeC9JRmphelZQZ1NveHVpTk8vclVkcHh6L25uenhqQnBTczRC?=
 =?utf-8?B?dm5sNDZNMnRHYndSWGRwai9GRzVLY1l0TXRzcEtoWkttVy9GMy9Hdk9iZmM2?=
 =?utf-8?B?M2xTVjhtaFFvcmVPNzdvVmcwM2dQaXRlTVFCSDYvamNxcXVYSkNvWGFMcWxV?=
 =?utf-8?B?NmFDbDltYzd5TVpVeFhSaUxCTkwrZllxK0hSa29zUmVVNnNwZFJwRVNWOGZi?=
 =?utf-8?B?bEphL2Y2VG5KZVJwVTIvTC9xMlBSRThxYkRRYXJaT3BQcS8zeEVUZjZkSlNF?=
 =?utf-8?B?cW53R25qRlZwc1E4cEFlVnJ4SWg0bFMycHVqbEZCQ2JQWGk3UzYyMkhxbkhU?=
 =?utf-8?B?c1VoenBXek1LYnl0djROZXZ5emxVUlBqOWRlMVd1SUJpT3pvQ2swU293a3I0?=
 =?utf-8?B?WGkxOHhLTHluOHdTQ3BZaE1PMjA5bkNUbU94Z204K09ZSTR2ZzZPV0MvbTBi?=
 =?utf-8?B?YWNWRTFldlk5OUd1VW9RMlovTGxQd2s3ajFrTGovcXBIT2pFdExZSnJNa3F4?=
 =?utf-8?Q?ksEf3F+t3LhryXLFdGJHEps=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a7da6c56-bc68-4613-b01f-08d9a3703701
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 11:01:00.6856
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 41Igf0see/RUo7EfHNZ1v7g0WeInzxF1uzeFjBbuZon5a3J8kKQv8sEUbrwiutPNmu9yVR1RiHSKi53eb0PExg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3775

On 09.11.2021 03:11, Stefano Stabellini wrote:
> On Mon, 8 Nov 2021, Jan Beulich wrote:
>> On 05.11.2021 16:33, Stefano Stabellini wrote:
>>> My main concern is performance and resource utilization. With v3 of the
>>> patch get_parent_handle will get called for every module to be loaded.
>>> With dom0less, it could easily get called 10 times or more. Taking a
>>> look at get_parent_handle, the Xen side doesn't seem small and I have
>>> no idea how the EDK2 side looks. I am just worried that it would
>>> actually have an impact on boot times (also depending on the bootloader
>>> implementation).
>>
>> The biggest part of the function deals with determining the "residual" of
>> the file name. That part looks to be of no interest at all to
>> allocate_module_file() (whether that's actually correct I can't tell). I
>> don't see why this couldn't be made conditional (e.g. by passing in NULL
>> for "leaf").
> 
> I understand the idea of passing NULL instead of "leaf", but I tried
> having a look and I can't tell what we would be able to skip in
> get_parent_handle.

My bad - I did overlook that dir_handle gets updated even past the
initial loop.

> Should we have a global variable to keep the dir_handle open during
> dom0less module loading?

If that's contained within Arm-specific code, I (obviously) don't mind.
Otherwise I remain to be convinced.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 11:02:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 11:02:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223872.386808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkOsv-0003aL-Ud; Tue, 09 Nov 2021 11:01:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223872.386808; Tue, 09 Nov 2021 11:01:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkOsv-0003aE-Rf; Tue, 09 Nov 2021 11:01:49 +0000
Received: by outflank-mailman (input) for mailman id 223872;
 Tue, 09 Nov 2021 11:01:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkOsu-0003QX-Nj
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 11:01:48 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6eff028d-414c-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 12:01:48 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2057.outbound.protection.outlook.com [104.47.14.57]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-2-kRP7kVf3MgamlfQyCI3EQw-1;
 Tue, 09 Nov 2021 12:01:46 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3296.eurprd04.prod.outlook.com (2603:10a6:802:7::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov
 2021 11:01:45 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 11:01:44 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9P194CA0021.EURP194.PROD.OUTLOOK.COM (2603:10a6:20b:46d::11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Tue, 9 Nov 2021 11:01:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6eff028d-414c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636455707;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=WdgfNnb3Smx9LHt5quUVXx0L8zg3aqMX1OXo4zdoNQE=;
	b=eTetHgTEYSmSdexfUnh6gdL6XLIQvH3pgl19/l4dGwzWYgs7zDrETt71Zlw4QaN33VIr+j
	V9SpX9BPUUaZbUFHLhU/VKNXl8V3m/IYnEBhvmu60MWgeJ2RZgYz6j2M2zL8gLsp8fhUoJ
	EyhNz2SGVKEVxMDC8DVglc5kWpt2GQc=
X-MC-Unique: kRP7kVf3MgamlfQyCI3EQw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bqlJBjffgS+N5YowK4KciUrJAx9HGGUxKAldfmg6YEI5D+jg2tpOhpv0QJm/oB+mkGYDwhICSWm4/+3GM78aY2qTHMOajSFpdy7z93piWf0AR/UCzt6tUzTEpvrmrWnISCfrKnVPoYFM8GkO736R7vsdMflfg3LXlaLiYJm8gQ7DQH/YgVQAKeaxDxIV1J50WV23Wk29iM3NRA65ciI4ZDbY6j4435WCXH5d8H8sMppCPskTVgFOIY218eRZgXaH9FdA1a6M7i+FxohYKbiAD8+F9Ajgo5PCSHVhv84MBpIM7vay4AWyoLZNkJ+aYBIceycueCGxujDqUZC+PffEig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1vYSdXkZ2VP3UIMwg6BJAG4QDos4abJLOQAtlXxfX3o=;
 b=Ajc6+yz7Zs5aS4tvXqtlNz9URWQ5H5pkIMyMlfJ3yi1cOSo8pxun+tkXcWshDcgIl6u1OkKMNSjKvXQBmw1um2TDoZU4D0oBbYAiDggzJZ76mEiRoQ1jJBzh6dcQAlHeSNhBiXN1Pdwvhem617sx/kr5nWIioH2HKW742baqldOfwLhaUDguh202+YG6mNNo0J/H8YoJFbOJjYOcnhiHYvNOrphgCCaZbctiuXvOkWwZAFaK0DkwMxt+dJASIds0RdrO3dMNfBt09AmBqauRs8YtqtdYrq8V6KuzxOBrOWRKhd3Qf2VnptatyaqYIj2ms0mBmi8RpmBIAzlcKk/3MA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4cfc6090-92ab-0e29-21df-e8bf7771830b@suse.com>
Date: Tue, 9 Nov 2021 12:01:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Luca Fancellu <luca.fancellu@arm.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <7A756250-0011-480C-B64B-C6FAF5008E12@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <7A756250-0011-480C-B64B-C6FAF5008E12@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9P194CA0021.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:20b:46d::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fc507970-c928-49ac-9024-08d9a370515f
X-MS-TrafficTypeDiagnostic: VI1PR04MB3296:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB32966EE8B309B197EADD365CB3929@VI1PR04MB3296.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	8XLTOnSzs73RhJUX9Q49HM/w4cK5qin0bDkhXnaxm3dz4eauzuGdGmBhTQXBl8Ku4DwBHWUkNePa/TDefmnHgj/o90kHRy0JZBd0ZFDBjXJSUx+eckph2mOvPvwyen2K1sbL6IS3kbFkNvV0jQoedbrkq/Iqvt3Nt5ILEdPcibHj65uATnN6u/MdE5lfkXElAUlc8z8MmR4WJg+CSEbQZGDBY1dwgk1r3ns9KEjV0Gkgh9qbHPZd9G/dCfAX7jLfHDk6deYEru4G0uKQZWGPH5X9t8J59GWtG9PJlTRGNa86BNCfBr/ttxH0dWP3wHiYjKERhvGA9tMnBNo6ZWCNkPTPOVuQejU40ED9DHz2W9L2VMFjW+0pZPDvrn5r3dsXOwINFveqNbpR7nzjGmraRcNtms4fIUu/n+gjAS27OuglzDXVMFDlYuofNgGRI1Rebh5hjM1zOFqzczrlSXn4VrVc3j65MNBathZDO+3ll2wtR1YPW63gBIzfTzxX3KxO6ap8U9/kXSJcIptKA3e2Vls3zXvxmklMgKxgd+1CqSvKx1TJjTzKUXhmY/3oon+k0xsIph4pLArXo0LOEamFwDuzM5RC/vV6/uw8M+VylpZzNPUgspqv70TUvbjfTNf1pnRVHuiX/GRXMSsPV5ueM4o+VMrgVkVtw6yA3eXmqoZZ2e0vh/guv+BAs1kiWB32PmSkJwFBfQEBzcyKvbLIudAE9IRqyGb+jHBs/RDWgO2WbNrYnLh+ULKDPmra71jH
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(66556008)(6916009)(316002)(186003)(6486002)(956004)(4326008)(16576012)(54906003)(31696002)(66946007)(5660300002)(26005)(36756003)(6666004)(8936002)(53546011)(508600001)(38100700002)(66476007)(8676002)(31686004)(2906002)(4744005)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?mVYlQHgIk3Mci43m0qgt+J4VkycW35zX18rVg8CPMaxJVsqicjdk/FGuA8D8?=
 =?us-ascii?Q?E120FElEOypozUYuqC9f2CttWKJBWH1DGuorwsnbCL92gkTUms+yw5HoWJkt?=
 =?us-ascii?Q?TFYVs72WYZGdZtXJxGLSN5EUT5/KMmnZh3Mdc4tRB81xuBf9Z4qjXRYJMXm9?=
 =?us-ascii?Q?0uy/sFrg0tzQZ7LT8ggHeTOpUI60oejSF0nMSWI/q68IIUMQrsr4/c0yFqTp?=
 =?us-ascii?Q?0mzF82mMPV22exoq2LWB3JVefvtQswwmiqsCT1m00uioALXOB1pm1WtkfL8C?=
 =?us-ascii?Q?Y5ZCHKelRYjIcV4XKU8PyOQT5zvlHnS7mhwb+qKSclK99AUZg5bknSUKRCk7?=
 =?us-ascii?Q?fFsuOIpo0cmJYzapALlLxF3qzld2NMaOLsl0B/foXsyVAFeg9aTa+rQo8+98?=
 =?us-ascii?Q?fFSksxmk+ufEW+pGC5bi0NGrUlBAhxH25LnGBa6qumeD7AxrM/2mhgXdPhq7?=
 =?us-ascii?Q?mYcl+31S0pRdZE5T0khNE1tMq2R8JJvz/M7f9t5f4IVw81JXaT47yu9Ti5YI?=
 =?us-ascii?Q?l8eKfsYhOdHBfagGZuwYT2cabYQAc4nvEve6Ml1WMjK6OWiRqaMv676mcEeX?=
 =?us-ascii?Q?24WizcKDdfl+0/b8bJflopSDumZy7nWpetzIk87WwwsxQzlt4NmEy9OILmC9?=
 =?us-ascii?Q?z+yGrYA6VpQxcHfNoslpUp0BHYbWbwT2QRD9fmOcnVyyF0J/Ccpf00xjHcrg?=
 =?us-ascii?Q?GVApK4Ly7eBVZCP0mrf4vwqnxqwFFaoat3UxVvKTUQCtjH+WZQBf3n/H1SM3?=
 =?us-ascii?Q?XEDf38JfbOxar4E5Uy9pvC6EDEvOqds/WuJgUotcaiImrUjcuMAtCe/QbfYZ?=
 =?us-ascii?Q?fXT4Bbv1e79sCnaNeLK/z1wSFZ0rZ1oskp7GfGphewbNQ+7/j8MctOsVjtiX?=
 =?us-ascii?Q?GlwRCG4Q9eD9mOrrrPtESj2pZ8zBaSqcRJSeyjFHYCFpGOsUb4oXyDjNhXuL?=
 =?us-ascii?Q?uDdPyPBCU2lhCv5ihQMyeuaN5umoUrTnpbK0wH7NRiRUHtueEdcHCpJzw74x?=
 =?us-ascii?Q?+0jBE5XSHiTC/Ams/daQ7IE6YTw1/fdjt5M9PXIcTNwoTZqLlone5MEpYOWr?=
 =?us-ascii?Q?JjnhC+p+Y61ORQaB3u3N8Uw8wL9nLcBg8mi88OktSU2Ugl5ShRvqanDp0ixX?=
 =?us-ascii?Q?glor2MQ5s1kgGtyUvlz6m1DOyFu73KjXuA5bI+g/4gxztCuvEWXm43WNC4JZ?=
 =?us-ascii?Q?Q9P5XZgZ1QdJX6FeTexiw5NUK/sJZYPUcY43Bi8KaExroS5rGDv3eVt+ifZv?=
 =?us-ascii?Q?byn5TgLG5oU0kUO/Y5jr583+gv2wDPhoQexI2sVsaf4XqZvfAQj22Cwdbtnp?=
 =?us-ascii?Q?kOKnSKmFaE63/+J4nCebyVvXOywh3GGO+na6NeSuIfMj0/h6gsZdvDaBc1Uf?=
 =?us-ascii?Q?X7VXYyTPxxlFKz9rB1g49DqrYh6v0I0xn+FecZBIRtTfheDW0iiXAauMk/sW?=
 =?us-ascii?Q?YcbcZ4q66zN8c15dW3Czy+qZ3ErJH4OLanEzXJwh2KO8/3ET/nxX+vdOYB97?=
 =?us-ascii?Q?1Q8DtqzafLZ+Zx/BbHj/EoRWvg4GCyowYmFw6FFLp8n1ZaseboqQJPT1xQnr?=
 =?us-ascii?Q?to/4ia8kpuAw6l3enhQVbjBNbcfS3WyT7zXQUY2HbJlEUBN7vYzSbhQTiPcU?=
 =?us-ascii?Q?p0fBT9u48QFQijn1e3aHmVA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc507970-c928-49ac-9024-08d9a370515f
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 11:01:44.8186
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IxZXGvpQzuTxerujJlNs1g4HEgooiV/IMbIUmuBjwgAnOzFQK17NgK+sxAY/j6p/t+p8Eue4fYPsNUFho3QgQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3296

On 09.11.2021 10:23, Luca Fancellu wrote:
>> On 9 Nov 2021, at 02:11, Stefano Stabellini <sstabellini@kernel.org> wro=
te:
>> Should we have a global variable to keep the dir_handle open during
>> dom0less module loading?
>=20
> I thought about a solution for that, here the changes, please not that I=
=E2=80=99ve just built them, not tested,
> Would they be something acceptable to have loaded_image global?

Not without a very good reason, I'm afraid.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 11:10:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 11:10:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223880.386820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkP10-00052X-Qt; Tue, 09 Nov 2021 11:10:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223880.386820; Tue, 09 Nov 2021 11:10:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkP10-00052Q-Mm; Tue, 09 Nov 2021 11:10:10 +0000
Received: by outflank-mailman (input) for mailman id 223880;
 Tue, 09 Nov 2021 11:10:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkP0z-00052K-25
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 11:10:09 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 990e7cc3-414d-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 12:10:08 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-26-wxuAwi2xP0SJguXS2hr3Vw-1; Tue, 09 Nov 2021 12:10:06 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2606.eurprd04.prod.outlook.com (2603:10a6:800:51::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Tue, 9 Nov
 2021 11:10:04 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 11:10:04 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR07CA0052.eurprd07.prod.outlook.com (2603:10a6:20b:459::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.8 via Frontend
 Transport; Tue, 9 Nov 2021 11:10:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 990e7cc3-414d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636456207;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=KivgD9K6Tazs3NnxAybD6AncL3UalGVUoefztQLSq4E=;
	b=CBPqqiYUcOnQgovSCraDNffCkV57yDHE0jGGpj+rfd/GT6dNHstIIhkXWQQcKuvL7FXWin
	EoL37KOQZfqGACJE+3JPWkKEDOutIUlv4HhiPtNk0sk20mX3J1QvFeUX4liJC+OFeX9zI1
	qD3AEAIDcwHlw708bMxwhJJmKvYddtA=
X-MC-Unique: wxuAwi2xP0SJguXS2hr3Vw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fNg6k+gCW0SGWvf0Sm2ul18/5fGAGA8Mj5UqNC47oIu8OmRp1tFJEssmnFGgZ6BVwYGdYUi2X32wnnE20VvpQrS3X2S9+15R1kvBAmWkNN1ajvdjNeB8mXdz/ypAscbONiqdpVjJytk4LTxxDjI3PJVrvs1tdZYe0S7LpEeHJ9YeBcxOhaTh9aWtW3vko6IAMzMkwadt1TLDG0Lv3JlvZPTvC8sWvM1UwqRq3o8vw1qB5WYduGVEObzN1CVy/lwzBxloIJc0TON5YpC3zGdlWjAinviuGL/WZoeDlH+YJWVmFszSvKjcGc9KQiHTCo7flb3PvpyWHcUb6v9m5mYiXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KivgD9K6Tazs3NnxAybD6AncL3UalGVUoefztQLSq4E=;
 b=nI6dCaKBOcd5y4shyXdZw9+Jj4J/X3xt91+owASoYAkiuLfyHv61d9A21UX7+Z8kYA7F36IZxthTXihAiFL43Zct8ThYUYAfBnVXylInMxqQdsdTEqe7MOLPvumGs0u75SgIQMlfKI4rSt00rSOQiDNehsoWXJMF6FeiC8t1Gr3xD2zfdGC0/jEbds+/UYDelQCgPkdY8fjtD9rKg5tdMD3bI5GGgX8IuqFupEzba99pkMWuFz3Z783cslFb6nWVuCM72BVxBS3DmtVAzXQ9PGDYoHaBLwDq3YZSmgF/opt/yLewGtITsScvHPriJCPdBpEK1IQAImqyT0o/EiS40Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8e0c35a3-d199-0dac-ae26-dc237006bb3d@suse.com>
Date: Tue, 9 Nov 2021 12:10:01 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [XEN][RFC PATCH v2 03/12] libfdt: Keep fdt functions after init
 for CONFIG_OVERLAY_DTB.
Content-Language: en-US
To: Vikram Garhwal <fnu.vikram@xilinx.com>
Cc: sstabellini@kernel.org, julien@xen.org, bertrand.marquis@arm.com,
 volodymyr_babchuk@epam.com, xen-devel@lists.xenproject.org
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
 <1636441347-133850-4-git-send-email-fnu.vikram@xilinx.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <1636441347-133850-4-git-send-email-fnu.vikram@xilinx.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR07CA0052.eurprd07.prod.outlook.com
 (2603:10a6:20b:459::13) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0ebf3749-476a-437c-e804-08d9a3717b19
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2606:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB26067FF239AADF469FEA3863B3929@VI1PR0401MB2606.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:298;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	D14agAZJsfbNihqqxt9tG10xI7On+7843oQUnOJxkAniIWDjVvupPs34C3wIvhURAv9NoD60eTkZ5KDn0T/Rcy+LuKPlBopSSyDFmgadhFbRRl2hY/U9gWSAlRlMDBVWcNQRp7qgMZ72ZWY9+ZDkRJO8sIYrNPIRvSlONRXM/wj6VoyqUyYXT5UtbFwUViH0Twjgzpu85z4NwhNE2DnQxa4KXJaoub6B/o3h6wTyBcvgHoogtbFnailPIWZ15DhbPFqkQV+P9BZS/+ojlQI5opavq0LFL3YP2APmcYZLFAnXtPExZBwYqIDfnTlS3/xFOEHbvtvtTkNYVnKt+GfDyIbA2R+ShJX3dYN2oZ6LmrM5peUvBU+zElb0OVb2eeINUS0nnB00zMv7MEQiHRv+/tSHk8sJWe8L80l+lE+BJm7sgaWVFGwePr+veaE4k4bKMLKNNFGyEbb6lZXDCfbu29fqd1L+afXeXunAY3WAarD4kA0llLivE36FGLWC0YBPzY9svbNiz167o4m1KOgPniTdK5yXspeHzMoedrpzfp8iFiBa7h6COt7lcRAp8qqvMGF7X0kfzYeX46HKWMk45dJPZI6itUdwfCC65vSZdQjrQuO9bmrmoOSRoePWw2O4OSii7ZgnDzHqmekGIe3eaVEOVTVtlwhgoa56K/mzt8PzTZabinq+AvZlOpGrUEyin5caFKQFdGtviIGeFqqyPFYM7EybxQOc1aXoLK/gbp6qyP8L2afnelNDyAGAeu3D
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(16576012)(53546011)(2906002)(31696002)(6486002)(66946007)(8936002)(8676002)(83380400001)(4326008)(86362001)(508600001)(38100700002)(31686004)(4744005)(5660300002)(6916009)(26005)(66556008)(66476007)(2616005)(956004)(186003)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VTIxSWdwRDJqVk51eFBjclVSSmFLL2FVbFFQSW5aOEpvR0tlMnZDeWhFL1VZ?=
 =?utf-8?B?bGUxWHJ2S3IvVDI2UHd1V1BHMHM1c1FkUGYzYk5oYnN4TW1ZYmgreEJFWXkx?=
 =?utf-8?B?ck5YQUV4c3F6N2xpSEhnZ01SKzhHVmtYMFJyQlRDcmdJODBad1hHdERlekh2?=
 =?utf-8?B?SWt4a3pOSFM1N2E2S3ZLbGlnNFdUVWJtMDhkRldIczRKUmluUHF5ZlVCbmlY?=
 =?utf-8?B?aUNOZ0xZK2pRRzdnY2d3VnM1M2g0alJydEFTMU1KWUdqRnp5N25qQTdxaVc3?=
 =?utf-8?B?UWdNWm1XdjVYaTBjUHBlZFJ6RUZDRDlKTWJZSloxdVUxd3U5YUVGdWd5dHhX?=
 =?utf-8?B?VDRPME4xWVRhZXN6WFY0TDJVc2FhREZuMDZsMG05S20yNS9SZkZoeFk0VUlD?=
 =?utf-8?B?elVDaTI3RDhFQ09QeVNuVDI1aXFiczV0dHBWd0N6T1o1azVDTFU1WHpRV1Zn?=
 =?utf-8?B?M2NnQVNqeGtob1N2VFNNL0tuR0xpNEZubys0dllwTGZSVHMvaGMyNm94QS9B?=
 =?utf-8?B?eSthVDNsTEhsNDdqWXRvcmZ0WHFMWGo4UlNVSmg1RUpSMTJ0V1YvdEF0THh4?=
 =?utf-8?B?YkRVQWd1SkpoVnlNQlVWNWwxL3pXNytXUkoyN1JReUVHRzNGUlhZRlBHRExH?=
 =?utf-8?B?TGVWMlp1dUpzL0FSZnpFeGlIdVdmRjFuc3p0R3BhYkJHTWNaWDVSNnJERVY4?=
 =?utf-8?B?V3U3UUkxRjZ6NUNONWJVQjkvNUJKNGdEaGVTOHlBZEVEU2tkOHlBaDlKS3Ir?=
 =?utf-8?B?ZXd1VWNmZkQ0dDg0RHcyNGRYZkszV1M3MWw5R0pOQzR0Ti9jZnFOaEJ6UDdV?=
 =?utf-8?B?RVFzSENGMU9KS0dMQmpNYUZoREl4RStHK21US1VObnJXbzdsSEFGenhYYWJN?=
 =?utf-8?B?RFdwOXNWa0ZacmFEV0JmcU5jakZmbnNCd21hTG9BS00xVlJIVm1aM1JidXRu?=
 =?utf-8?B?ZjJodkprWFZ4RHI5UGRHV0s5SWdJY0NXOWIxUXRhVjFaNFcxNkRjNGttSEVK?=
 =?utf-8?B?VE5DMXgxbW9kcWd1MU1iMXZCS2ZpeitWaUUycGIzUUh5RXZndFNkQnpPU0Zx?=
 =?utf-8?B?ZHBzaGJyc1lwVFFRckIyS3lOZDhUemFuRXAyZlVKMFptc0x0NjEzNG5rWVFU?=
 =?utf-8?B?SnNaRjg0OUxZSHJ1SkgwdUZGTStLQi96Uko1YWJrdm44K2tPMjhHaHl6M3Zp?=
 =?utf-8?B?dmRkUm9zazd1TlF4OVFZUzhGdGlhRGtMc0J0V3FrV0pEcmVEMFpNUE0wYjgv?=
 =?utf-8?B?UFlZV3EybVhReVRRbGRhS0ZhTUViTXUvWVpMbStFbCtqUDdnUEJ2emhoSC80?=
 =?utf-8?B?VSsydHpSUllyR3c5dzhOQ2xmWXVYek5yd29IQjlpYlNCKzVoM3hYakVORU45?=
 =?utf-8?B?ZG9zRjZFMkdDQmpXTThiczYrMHlVVmorUU1qNVcvSEk3STZjK3dNd3Z1dmZY?=
 =?utf-8?B?eFNSSWIvOXhzdEZzSFc4clgzWmk4RjFjMlFSUmIzVVlMVGdFYW1jaThQVGdH?=
 =?utf-8?B?VFNwZHB1RFVtVVExdDFUeTZaSndSUE1BM0RrT2ZiaitWNGRhbjk5UDdvN2Nx?=
 =?utf-8?B?RGloQldOMDMxWDJGWmtmVDQ4a0U3MkhIeDhycTlqbWdxandyLzg5NVlZZWpE?=
 =?utf-8?B?SU9xcGQ0U1FBb01BdlE2cGRLRE5HOTNISytPdDVwWGZ6MTgzUTMxb1VJc3o0?=
 =?utf-8?B?VUwyQ3E4RFVER1l0WDkxZXlTcDQ5di84eGdXak1DQi8zZFc3dEwvR3BSVU1F?=
 =?utf-8?B?dXhFS29CdUhVbTdkbjF3cllYUjQxVisyTzRzK2tIVG9MS0I0Q25tM2ZmcHlR?=
 =?utf-8?B?NXFPTnd6NzBFbjRaT0h6YmN3ZXVhZ0ZPd0p5VjM0VE52L2ZkVmxuUFpNWm9u?=
 =?utf-8?B?dHhIWHJCcGN2aGNVWEpucFZvMXFkbHFNRXQwUWk4aWNnTWd1SldZYU1HY1hq?=
 =?utf-8?B?bEpiUXZDV0ZDbnNxVldBYjVnRXNjTnUzc3dURGFIemxraVpONkpCK3VCVTVv?=
 =?utf-8?B?UDJIaW03UUFWUmpNWnhQenh0bTFiRUJxc2IvdkJjSlByTDQ0L2w5RUxDSmZV?=
 =?utf-8?B?bUFqNHYvR3VWTGdwcTZFcG9vVVhmekhBUk51ck9ZVW9GRmxEUXMrclpESURE?=
 =?utf-8?B?MldMSEMwalpIRjl4TXdyUTl2RHFHdVR6cWRxZk5haXJXZHBWMm14KzNvQktq?=
 =?utf-8?Q?fGsJi68IKJHCV9UV2ChdfJs=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ebf3749-476a-437c-e804-08d9a3717b19
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 11:10:04.4531
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3NOoVWFnt77adXvDbj8n8uh2cYqIThyQmXHgymiZmXq8Rpj3grzU4nYEM47SRuHWsPefC/S92hECD+b0XDAgXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2606

On 09.11.2021 08:02, Vikram Garhwal wrote:
> This is done to access fdt library function which are required for adding device
> tree overlay nodes for dynamic programming of nodes.
> 
> Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
> ---
>  xen/common/libfdt/Makefile | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
> index 6bd207c..f838f5f 100644
> --- a/xen/common/libfdt/Makefile
> +++ b/xen/common/libfdt/Makefile
> @@ -1,7 +1,10 @@
>  include Makefile.libfdt
>  
>  SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
> +
> +ifneq ($(CONFIG_OVERLAY_DTB),y)
>  OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
> +endif

I think you'd better suppress the objcopy step altogether in that case.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 11:17:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 11:17:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223886.386831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkP7e-0005jr-Gu; Tue, 09 Nov 2021 11:17:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223886.386831; Tue, 09 Nov 2021 11:17:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkP7e-0005jk-Dk; Tue, 09 Nov 2021 11:17:02 +0000
Received: by outflank-mailman (input) for mailman id 223886;
 Tue, 09 Nov 2021 11:17:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkP7c-0005jY-Jb
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 11:17:00 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e1b4ac7-414e-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 12:16:59 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2054.outbound.protection.outlook.com [104.47.4.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-19-5zD3yDNyNuqaBKjGu2aiIQ-1; Tue, 09 Nov 2021 12:16:57 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4190.eurprd04.prod.outlook.com (2603:10a6:803:4b::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov
 2021 11:16:55 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 11:16:55 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P192CA0095.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:8d::36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.16 via Frontend Transport; Tue, 9 Nov 2021 11:16:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e1b4ac7-414e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636456618;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5Q+8ODTp7u5v/Fccrsb7w//uPVkWKoGAWsfBRDCLCCQ=;
	b=NX/peM2GMCK/taUrgfdC57zdDIb60yKwkpKTrjHDzQ5KZrk7AQ69HYgyKVzilwcgY4N57M
	lZNyTlQz6kGwY5KQslsoEF0qAGNYtKDf/hgReTQglaRYjKssdyeSXPhJW6AZiYxu3DkVBU
	8bhO5IFijAZUkTtyqePQlxC3DbonywM=
X-MC-Unique: 5zD3yDNyNuqaBKjGu2aiIQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Vx05oZLh2du77kwlp+XJs+jPs6PpXtPYB2Y+Kb5ZiIHBthV+uXogz3huoMTbboEx3EuM4tjOyUVWfFwSncOZYKWfbuQq4iF1TirGNwcQCmCuAqx7NB3XGcoqBTr9+yUovP/PtKrxwVlR3tsyTy9bexhC+O1/1BtM94KZc0ynf0y8Ny6ZKsFBq9QJyt6r6nmwT6Iwaoqs+piRQgjcbWZsQ2dBB41vikLVsBqTLDcGORa4RzsrWpZXUPQ7G9uOwFWJO1u4R7xEkMPvIyfcNJbHXm7VsCm+cXxeB56n3/ybowgH9exChuLrWjSlSB6Pb9I/YgrGHAK637jMlCrw1ogSfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5Q+8ODTp7u5v/Fccrsb7w//uPVkWKoGAWsfBRDCLCCQ=;
 b=AXNmbEYU32PHUyk2yf0ud3jC4laFpbbKvaOjWty3ujIRX3sKhKDlGH8SZOOuqEF+ylcUgymIVjfdPLkLnm5+OgC6EJm60y3QJNX28LV/gCyPAJnNlWGz983MN9D2M2z3bxTqPOZ8Ynn66UAGFsCCxk2tNu3cW8xwe9jrVw9ATiQsdy1ZrXZvBkQ38ha0HeYNU7UsTk8LLqUyc4gA6zXMwaEoEU+2TxOQxbCFHhRBxfF8bV8Fe7MnMBEZ4DZH2D1iarmNWW98arT8AqaHzsUHGrF5yTZlaeQgEXYP6byqHr4YAvczgjVvODCdA+rloR4M9Z9aNVIT6iYNlbEIOyOjDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <3df9dab5-4152-77b7-55a1-8bfd4d91f9a5@suse.com>
Date: Tue, 9 Nov 2021 12:16:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [XEN][RFC PATCH v2 08/12] xen/arm: Implement device tree node
 removal functionalities
Content-Language: en-US
To: Vikram Garhwal <fnu.vikram@xilinx.com>
Cc: sstabellini@kernel.org, julien@xen.org, bertrand.marquis@arm.com,
 volodymyr_babchuk@epam.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
 <1636441347-133850-9-git-send-email-fnu.vikram@xilinx.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <1636441347-133850-9-git-send-email-fnu.vikram@xilinx.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P192CA0095.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:209:8d::36) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ff83e031-21a8-484b-5a42-08d9a372704c
X-MS-TrafficTypeDiagnostic: VI1PR04MB4190:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4190AFD534C4853E353F582DB3929@VI1PR04MB4190.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	MIeOX+B1lTabsue4wKItREqqUExgZ1ChSOmjdhkuJ9CdFCByx+Ych+oIuoN5aAppsGnnAafqpPmocKkzmFV9mt/8crndnezdnJKM++OPrJzNjNBj7mpePupkfkaasYqpx4hGl8r5yf06m4HSg6RJ8ZEky/wLKs0jLOB3uam7jiqDScQeQFdFOZN2sk2Uk8XuBM0g40BMTo3FtRbMEWZvS51oT8yzkpjfcK9thtw+Wxv2aFF4UKn17biG74regqiYeIImktFb2exUR2paUYz6xOfHljYtEZOjHscT+UDFWVM0fY48pKVtIq0Iw0OJOpW8ni4FvJRoehZLuXTfcfIA2CUVm1PmgbHOslauqwuR+mzRqkm28Nw/MVjfvtgRJFCaKxnbLR7ZdRAPqyp6Myx2u9INdAYViST7cfN56szCkyeMHEU49h9lPLOVx6JvDP3pz2uXivwcCOlDYR3uxiXAxqeTTX3q7qdgvQBy0xVxn8V5U53I8/9LnH0Bjh5w4YtfaRedGvhIpkfHHdIX7AKtUskLJrKMbzDj8MIHZTnxlVtn91/Zj2TM3AF+8U2M+r8bIJrzZE068DHcbFUhATFbceX9CL54xLanBQ4SevCX3RMa5l5rAaZork56Et6yJQ7yYpoCVDUWLJra9uLrAb+12pAngXfm/wHkNmzWMUzr6iVamPRzqlhGD4fU+QT4wP0K51AsDDEU2CivXVhuBcRMz6zVuThWJ6Y2yh7LtEmh4AqUEoiIKPa9tqw19i4hdxHY
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(66476007)(2906002)(7416002)(31696002)(36756003)(66556008)(86362001)(31686004)(186003)(8676002)(8936002)(38100700002)(5660300002)(54906003)(4326008)(66946007)(26005)(508600001)(2616005)(6486002)(956004)(83380400001)(53546011)(6916009)(16576012)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cFF2Z2FFMk1NdjVWa3ZnNkErU1pXRkFrWDg1VmUzejh5bmpyV0l0MExvTTly?=
 =?utf-8?B?dVl2ODFJV2ZaZm4zUHpabWtjWVQvMWE5V0k5VkFKNXRTS0xBVm1SYlNRanZz?=
 =?utf-8?B?TXVZUkhla3JTNDJYdjFRbjBLbmVaeTd3QTBrQVd5c2Rvbk5QV1NnY1hYVDBF?=
 =?utf-8?B?Mi9KRzhXV3c0c0hrVzNrWnU5eHhwMkFZdklQcUI3d3dGTDJxQjJxbHFTNFV4?=
 =?utf-8?B?MGI4ZU9nNHhiVTRuZkJyUU5LcW90aXArWTVqSFB0aDM4OXZxelBneCs3alRJ?=
 =?utf-8?B?OXc3WHN2UWhFc0NQQjBmK2pYakd3MnU2Z3pCNnJRRGZhV1ZQUGVOeEdkZHBH?=
 =?utf-8?B?SThpWlN4SkNEaFd0dGkxWUxTTnkxNHQ4NnN2L2tIMmh1Q0ZLb05ua0xhVWhK?=
 =?utf-8?B?UVB3R2xySGVLMzhwVFMrc3Fyb3ZORFI0RGdDRktVYTZWekxVdHZ6VmJZbEZK?=
 =?utf-8?B?L3hmRGdNSnJycE5Ha1g5RVRRdFRhUUhUN1JvbWIzMHJjZnY0UGVrNXIvTFow?=
 =?utf-8?B?NVJla0JhRGFFSGl4amZPSytYK3pERmhoRDg5enhPVGtJblRqa3loME1VSUJV?=
 =?utf-8?B?ME42RXZFU2RHVWpjc21BNFM0dnpSeldmbGRRdzRpRk5kdUorVXpEeThmSnhV?=
 =?utf-8?B?dTFmYlA4QU1uQjdKU0NZQ0FXd3pvUnJ2dFRUZmJnN2tDaXdwVGt1d0RIT2Uv?=
 =?utf-8?B?RW1MdFQvdkFXNVhLYmlMOWJPcE5VSzRKZWJPNDgra080aWJ4TU1HNjd6VjNT?=
 =?utf-8?B?dG1TQTV2blZpemVVYWRzWnFjWHJPTnhwcDZBTC9MRnRPanduT2kveVptNEVT?=
 =?utf-8?B?K0ROd29BVXhsS3F5SCtQa2NxMU5iWmg5NFQ2YWw2ZTVPYW9rdjlHVEhrbWtv?=
 =?utf-8?B?cG8rREZEL21MRFFPQncyRlFLeWJoekMva2Z4UElQOGZLNUUybkc4VVpmT2tT?=
 =?utf-8?B?MEdDQi9lODQ5cnU1MlBFWTZ5cklaZTZwRjB2Y0RaRVE2NisrS3Bka1FOS1Zz?=
 =?utf-8?B?SW41ZEVzSVJDWTZ4dHZVN241RFZSbkFhbzlwdWhQb2ErVTh0NmpTeXhlZVc0?=
 =?utf-8?B?VjM1VnRoR0RIdzRaTTJsN3Npd08yVDV2VWhWWkc5OVhuTTNRazVtQTNUZTNr?=
 =?utf-8?B?bnpNTjlGbjJMTXFnV3lvN2w1aTQ3TGl3b25wZkZvYUROK0dIaHI0MitlOFBY?=
 =?utf-8?B?alIwN1hqOURLYzdhaGJsUW5sMVloNy8wV3pjRkV5NXRBbTFSQTg1TUg4Sktj?=
 =?utf-8?B?ZDRzY1JWNGFEZjZaVC9oU2hCYlFxT3dIYmZ1L2wwM1BCSFRCN05aTkwxL2sw?=
 =?utf-8?B?QmJsdVc5TWZyRE9OL1FyRG9QcEtQS1Z6Q1BjUUtWc3dLOGs5c0V5UHdqcUJ4?=
 =?utf-8?B?Y0xtQjh4VENRQ24yTWdpWVEvU2tQZnZadWxVaTQ3ZnpwMmx1aVpTdmoxNDZJ?=
 =?utf-8?B?amdoeExTQ2xZa0Rqc21nc0RNbDZNWmxTSER5bUROMlkrZ0Y5WXNkWmZ1bHZZ?=
 =?utf-8?B?b081TXViWno4akJXQjd0bHFjWUhwejFLZlMxWVd1bnRHcWJnSk9KS0hYclJn?=
 =?utf-8?B?ZWpzVUU0dVZuNWZ5K2VvbzN3cC9ZeU1ZMkVXUGE4T2s3b0ZoL0Q4d1RnenRI?=
 =?utf-8?B?MlVlNjJ5QzJBbnlDZXpGbVFpMzhVdFJUNUtSKzVNbjZ1Q3FlL1ZVRkN2YkZK?=
 =?utf-8?B?QzVmWmFNdWtNT0s2MWtzTjZwNExEOWxjdjhnQzYxaUZ6dW1GSExkajZNSHlJ?=
 =?utf-8?B?TTdzUlFSK3RmOVQyRmFMNU1oVnA4a2VuVktOWFBBSkVacjE0YXJIVlh1WXRM?=
 =?utf-8?B?OXBOdndjc2tHSlNkOTR3YjFFUHBvdHgxUGhoZEtURkpEVFIySUp3ZE5MUmx0?=
 =?utf-8?B?NDM3Mlpoc3lkNE5WVDRVSy9TOWpVREp1Nmp6ZkNJSDgyWkd5RnlFMU1yS3FE?=
 =?utf-8?B?UUpDU0wyeTRvenk4MkozZkV6MWtyNXU4VWh3NjBBUVQxM0lORFNWdnlnNzdF?=
 =?utf-8?B?TWp1WmQ1WDMxZ2NVM2d4ZzR3djZLaUNIMDEwZHN3eTF0LzE4Q1Z6Tk5GV1pG?=
 =?utf-8?B?TDl1KzY0S1ZZeE0xZVZ2Yng5b3ZrZTBCeUVJTW96K1ZWN0dRS1lzRHVOcmo5?=
 =?utf-8?B?d3hYemgzb3F3Zzd5M2pDcnNyalIwb0xrM2JIMmo4VEpBZEhGNThZNWhTNnF4?=
 =?utf-8?Q?ghUkfM8o4U8FPx+cODBgL8A=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ff83e031-21a8-484b-5a42-08d9a372704c
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 11:16:55.6636
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OYInl03ZjM6TrTGvKmu7V877I6w7P7MSTlBtcIeCqGsXMCt77QATdn/yQdFOok8CahM+xqVQOYAv1LmglbFEmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4190

On 09.11.2021 08:02, Vikram Garhwal wrote:
> Introduce sysctl XEN_SYSCTL_overlay to remove device-tree nodes added using
> device tree overlay.

XEN_SYSCTL_overlay is too generic a name imo.

> @@ -476,6 +781,73 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>              copyback = 1;
>          break;
>  
> +#if defined (CONFIG_OVERLAY_DTB)
> +    case XEN_SYSCTL_overlay:
> +    {
> +        void *overlay_fdt;
> +        char **node_full_path = NULL;
> +        int num_overlay_nodes;
> +
> +        if ( op->u.overlay_dt.overlay_fdt_size > 0 )
> +            overlay_fdt = xmalloc_bytes(op->u.overlay_dt.overlay_fdt_size);
> +        else
> +        {
> +            ret = -EINVAL;
> +            break;
> +        }
> +
> +        if ( overlay_fdt == NULL )
> +        {
> +            ret = -ENOMEM;
> +            break;
> +        }
> +
> +        ret = copy_from_guest(overlay_fdt, op->u.overlay_dt.overlay_fdt,
> +                             op->u.overlay_dt.overlay_fdt_size);
> +        if ( ret )
> +        {
> +            gprintk(XENLOG_ERR, "copy from guest failed\n");
> +            xfree(overlay_fdt);
> +
> +            ret = -EFAULT;
> +            break;
> +        }
> +
> +        if ( op->u.overlay_dt.overlay_op == XEN_SYSCTL_DT_OVERLAY_ADD )
> +        {
> +            ret = handle_add_overlay_nodes(overlay_fdt,
> +                                           op->u.overlay_dt.overlay_fdt_size);
> +        } else if ( op->u.overlay_dt.overlay_op ==
> +                                        XEN_SYSCTL_DT_OVERLAY_REMOVE )
> +        {
> +            ret = check_overlay_fdt(overlay_fdt,
> +                                    op->u.overlay_dt.overlay_fdt_size);
> +            if ( ret )
> +            {
> +                ret = -EFAULT;
> +                break;
> +            }
> +
> +            num_overlay_nodes = overlay_node_count(overlay_fdt);
> +            if ( num_overlay_nodes == 0 )
> +            {
> +                ret = -ENOMEM;
> +                break;
> +            }
> +
> +            overlay_get_node_info(overlay_fdt, &node_full_path,
> +                                  num_overlay_nodes);
> +
> +            ret = handle_remove_overlay_nodes(node_full_path,
> +                                              num_overlay_nodes);
> +        }
> +
> +        xfree(node_full_path);
> +
> +        break;
> +    }
> +#endif
> +
>      default:
>          ret = arch_do_sysctl(op, u_sysctl);

Seeing this call is even in (patch) context - would you mind clarifying
why you don't add the new code to arch_do_sysctl() (perhaps by way of
further forwarding to a new dt_sysctl(), which could then live in a DT-
specific source file)?

> --- a/xen/include/public/sysctl.h
> +++ b/xen/include/public/sysctl.h
> @@ -1065,6 +1065,25 @@ typedef struct xen_sysctl_cpu_policy xen_sysctl_cpu_policy_t;
>  DEFINE_XEN_GUEST_HANDLE(xen_sysctl_cpu_policy_t);
>  #endif
>  
> +#if defined (CONFIG_OVERLAY_DTB)
> +#define XEN_SYSCTL_DT_OVERLAY_ADD                   1
> +#define XEN_SYSCTL_DT_OVERLAY_REMOVE                2
> +
> +/*
> + * XEN_SYSCTL_overlay
> + * Performs addition/removal of device tree nodes under parent node using dtbo.
> + * This does in three steps:
> + *  - Adds/Removes the nodes from dt_host.
> + *  - Adds/Removes IRQ permission for the nodes.
> + *  - Adds/Removes MMIO accesses.
> + */
> +struct xen_sysctl_overlay_dt {
> +    XEN_GUEST_HANDLE_64(void) overlay_fdt;
> +    uint32_t overlay_fdt_size;  /* Overlay dtb size. */
> +    uint8_t overlay_op; /* Add or remove. */
> +};

Please make padding explicit and check that it's zero on input (so
it can later be assigned a purpose without needing to bump the
sysctl interface version).

> @@ -1125,6 +1145,9 @@ struct xen_sysctl {
>  #if defined(__i386__) || defined(__x86_64__)
>          struct xen_sysctl_cpu_policy        cpu_policy;
>  #endif
> +#if defined (CONFIG_OVERLAY_DTB)
> +        struct xen_sysctl_overlay_dt       overlay_dt;
> +#endif

No CONFIG_* dependencies in public headers, please.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 11:19:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 11:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223893.386842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkPAG-0006P2-2o; Tue, 09 Nov 2021 11:19:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223893.386842; Tue, 09 Nov 2021 11:19:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkPAF-0006Ov-V3; Tue, 09 Nov 2021 11:19:43 +0000
Received: by outflank-mailman (input) for mailman id 223893;
 Tue, 09 Nov 2021 11:19:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkPAF-0006Op-Cf
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 11:19:43 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef69d75e-414e-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 12:19:42 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2051.outbound.protection.outlook.com [104.47.4.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-31-tH2t5thlNweaIbpa9Nwiig-1; Tue, 09 Nov 2021 12:19:41 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4605.eurprd04.prod.outlook.com (2603:10a6:803:65::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov
 2021 11:19:40 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 11:19:39 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P192CA0089.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:8d::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.16 via Frontend Transport; Tue, 9 Nov 2021 11:19:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef69d75e-414e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636456782;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=cfPhLruYjOCa3U8YgYc0tA4C4vvSxTnDRem1yOKuIjk=;
	b=m+F1A+mvExoI1/oGUNgetBSUclN0zQhj/oycc79mk37TNfFdvSwoi7fbJLPhuMbv/Y3EAc
	AxHzGPK0kl9nm5hxDWV5XTkc1jmohNAbOoJ9YjK0Xg5C8SaFDatKJl5SYncNc/8GkbyDLd
	P5N+Zt7+pw0zaI8zSH7rHnI53UrMuB8=
X-MC-Unique: tH2t5thlNweaIbpa9Nwiig-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jpQCMQRs0q3JeXPtLeYrdNdeC6W0fd9JxrfqUhaMYS5aindeRh47t5ICFspZM57z6t51Za+XGmRWfc/wIhazDG4eHfXt4rRqC4phIDp9RjviJD6kiTEn6azNjOaKPA3u++ZJIP3YVlukULI+svbQP+akIGvY5BrFyhvGdom96asLmocLEdyo9ZPc+cEMBEmDgc6FEjuXdRedfMd0KVNqyhVHd1YuU0iJDYS8NzWByE1fbw5wKwh0X4Kxy89NFfhNR+VFJl0sYFsqRnagXrJChlBwnJQMFQ8zT2VA+9NA46fl/eThql6pvXY/gLfhkJ7Fc3OYXLklOx3L8Nom+DxxsQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cfPhLruYjOCa3U8YgYc0tA4C4vvSxTnDRem1yOKuIjk=;
 b=O23I+Ufus2xAveOr8+hERcwRr4RygIsDMoSxM4+FQGj+Xd6e7a0/Cy8VlXYetp+oS8QvfRsAp5nc672imxkHl2gVdvOa04NibNXlH0Vwfrae+DbszPXmHb/h0NN0dJi46ebJb09nUc9ob7N2JG+q9Ud13Q4Pvg0jTEiqUKtV6wlwM1ugmc8xg13NGGQ4vqO7rZXQkNvTGsid8j+Jvbkz5bxo4XTpAM8qkw5WuWLbjFy09Rkc4dVBALXkVtON2aQzzClUzNRhW5JzVqO0kkAYG3nbvefxOTxqenKCdqpWA3r7tYp/U2gFmCCtQr57or80vXyOYfvuUoaYZ/ibXKZw1g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a984eede-878f-d9b5-da63-990e2e2e57b5@suse.com>
Date: Tue, 9 Nov 2021 12:19:37 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [XEN][RFC PATCH v2 09/12] xen/arm: Implement device tree node
 addition functionalities
Content-Language: en-US
To: Vikram Garhwal <fnu.vikram@xilinx.com>
Cc: sstabellini@kernel.org, julien@xen.org, bertrand.marquis@arm.com,
 volodymyr_babchuk@epam.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
 <1636441347-133850-10-git-send-email-fnu.vikram@xilinx.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <1636441347-133850-10-git-send-email-fnu.vikram@xilinx.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P192CA0089.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:209:8d::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 13623e68-be61-42fc-1627-08d9a372d22a
X-MS-TrafficTypeDiagnostic: VI1PR04MB4605:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4605D0D1F44315990147622EB3929@VI1PR04MB4605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	a1QzYa4hbWdCsTpd911Au5Vh3kjGUTJmyIiAN7NlyQDpgfSyOxvasOAQzXb5F/tV36V76rHTgbQkq6nFlbb782u+/lY/2vz64SNturNmq/9cebDQh8Mh73d2LfDr9KWFnSI2PMkPe5bujW+o0GewCrd9Q2dvLzKfaTCjcW2VCyWDp15eFcSErtdxp+WJtj6TQ8Vg7jZjxEmxbdvxKt0RFsKrdPqmj2u4jeYvoCH/0TBaTmADzkjAA92fenQVAWNQ5AYK8RSULKmuFQ13eFf0m1C3R2eMjMgE+C7k4N9Os145Ho373nRLd3mwVeg5XXOHlP9mt9RxCwasAg3nRG7GvdaN6EsEOFC/ngHRtqYV8mU1FS+s3HMDGRRctV2llz6SDVLvtI9Xa/Fv35DNBVqCKsh92oN9dxOa3lqCanhJ/8PP9kK+pmsAU1QoxcEtgV8UinrbyGF42zCIlwP7uUyD1/1TojgtMG1/X7uGeckuQGXt2RGkI1IITAKhTrNdGgITMLBLE5eSXkVpd0Nlze2/X8OAHYMFMgD5bzWTvMYKtVuq8rpbzfMBQZn52BF8ZyPeAiISN7Vu7X73vvPulJNLEZiRkTTne4c/I+XjRToZ6SW/FwMS8LXz9l1rlcXFSEHKGKtmr7smSuEmCqPO+SnqoBWxkDvEucsSjKlzTBRm/efZgiKCvC1XZnRNr51v8OcFmL4ite0VzGxD+tFFOarQovaVgCQLQASxqu5sMwQAVzkcLuwfU5U9cDCMZDlePs2p
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(6916009)(26005)(4326008)(8936002)(31686004)(186003)(956004)(38100700002)(2616005)(7416002)(86362001)(6486002)(5660300002)(2906002)(66946007)(54906003)(31696002)(316002)(16576012)(508600001)(36756003)(66476007)(4744005)(83380400001)(66556008)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MHFyQUE5QTNtOVI4UVBCb2VZQmxTd280RlpwYmM3d3RGVWdqOEF1NFB5TDRU?=
 =?utf-8?B?YmN3Ui9ESnUvMGY0ODh2UEwxR0pFUFhxUitXUkhHTXUrY25jbkk4OWM3Q01i?=
 =?utf-8?B?ZVdXVVY3dzJ5SVppUkEyYUVKS3Y2bHU4L3IzQ1A4RnlWUmE1ZDVuNUNVUDMr?=
 =?utf-8?B?QXMrSzdRQ1p1YWNmMXg0bEYxeFBuVjZoYnl2QXVzRGt5R1kxOFBkSU5icVdX?=
 =?utf-8?B?UEpkRkYvcE1iZHNYOWFmZkFLckJCWlRieEQ2Tk5XVERXK01RWmtrMmxjckZP?=
 =?utf-8?B?Vlpodm5mb3Y4Q0wwbm5PNGR6enpmbW42Z2JnY0hZdUlkVnhWRUV5ZjF5U0I4?=
 =?utf-8?B?bEpYMEllU2VuMkMyU00vbE1kczFqVmwxMFU5RHA5VmtRRFUweDQyRCtZWFdY?=
 =?utf-8?B?eXJKbGtOeXZzcndMT0d3L0o3cE1DbHpmd2dCaE9zV2VXdUViNnZuSVBCa0hs?=
 =?utf-8?B?blZLUWowTzZudzkvbWVxMWI5MnhCalp6TFVVMm00ckVLWFhuWGptMFBEYnEz?=
 =?utf-8?B?U0t0QUo4VGlycUxRN2ZWR09CN01zUlpVYXd0ZDhMcEZocUVqZUNrVUlBZFJL?=
 =?utf-8?B?NmU0WXlGSjl1UVJvWG14VnNLS29LaVNGRElrRHJocHNOVExJazJRZlJKV3Ja?=
 =?utf-8?B?OU1uOWllZjdVVE5menNYUzhhb2VTTXBFU24ydjViaEZrK2JDYURUbTY5YU5S?=
 =?utf-8?B?bG5iUjQzWnplMGtJNGdYU2FWVjFtVVI5MGRxWkxrd2FPa2Y4L1EvRzlMTFRF?=
 =?utf-8?B?RjlyRGhhWFFMdWhIZDBscGs3c0JZM0UySWpEYkxJWjB6aW15dG54OVhSWEZ3?=
 =?utf-8?B?SzRqdzQ4d1ZId2tFYjZJOXQ4THE2TFpiN3NlblJaNGUxUk9keFVDQ0J3Ni9m?=
 =?utf-8?B?OEZSQTNlV3BoOUIzT1dTaEZMQmtmMTN1b3V6QWZQRzc1Q2ZSMEZhbmUwNU5F?=
 =?utf-8?B?b24vK2dCQjdtMWR5ZCsvTy9rdHhRQ1Z0ZEpsV0dUL29WMzZRUVhIdktpa3VN?=
 =?utf-8?B?Nkl1SW1PUlI1ZEhDRy9jTW9kNTRCLzl0R0VGRzBjclNSSGhHRGZBTzA0R1RN?=
 =?utf-8?B?bEZmTm9tR0dYYlNWZ0hUNmIrQ2lCc0pML0Vhb1liOFBpazJ4MFFoK0tRbFh2?=
 =?utf-8?B?OW1tNTE2Yy9maHF0TlY4Q2dLc1RaZ1FqZFR4b0RmakRXd0cyWnU4MG1HanZO?=
 =?utf-8?B?QmJRamZOaDNraUd4aXlJK2JST0N0a0tJUU5TeUJRZTl1T0RwODdPK3YrRERH?=
 =?utf-8?B?Ukl5Tnl4dk5vWG9MZXFsbnNtYjNWaEQ3bW5IbHEzZXpyZDRvaGtlZDVZeVlV?=
 =?utf-8?B?ZWJ0eExvelE4ZzFzTER2L2ljSlQwb0RnV29zOGRvdmhhN2d5cFpxTnIwNGZJ?=
 =?utf-8?B?RFNNaWhUSVZ4TStUWW5kbHhjUDRGZldtRzIrTXlFcUgvSHZxY3p3dzhhYXNP?=
 =?utf-8?B?cERmckpNelBxcmpiakp3UTQ5QUQydU1EWFUvN2hPQnNMSjEzYW42V2V1MEFh?=
 =?utf-8?B?bWdCYjNOVEYzaDNHTVZIZ0lmWUNSL2dIMEZMNlU5OFYzYjhzK0ZFNEhtdTM3?=
 =?utf-8?B?TStUdm81NXk3UlhkM3hNNWJXdXY3Mk1WcXdxYjFpTm1SSE05QXNodEJ1Sldy?=
 =?utf-8?B?Zi9DZkpENXhESWVta0d0ZDN5ZG5ZVUdwc1p0Y2JubG5UMmhZbC8rQ2k2RlZI?=
 =?utf-8?B?cG1OZ2kza2NlT0tvd3grSC80cnk5bXh1S0ZoNFBvUUNDWEpOdDg1MXU2cGsw?=
 =?utf-8?B?V1NLUmlmWTN0a1JrMWpMUWlJZWd2NmlXcS9ldUJBZklBUlF2NW9RRU04QkJM?=
 =?utf-8?B?STNGaVVSWkZTR0NSUmg3ZG0vbitWR3JyeTBzVUJzdER2UjRIbGlFdnFvc212?=
 =?utf-8?B?MEdXZ0gxNGZSc3A3OHdmcU52N1B3c096TlF2ZFNDd0JEb3hqdTNjbXdhNE4w?=
 =?utf-8?B?VmJlVXFmYkhwTTFta2dDS2ZpQnRmUlV2b0VCVU82U2xZTFpPTUFURXlWemlI?=
 =?utf-8?B?eWtKSmI0czA4eEttWWdYOWE2SzZ0THMveDRlaEJ0WHZvamNrWmw3SzB6Y0px?=
 =?utf-8?B?VHQyekM3eUpQa2xKYUNhQXYyU0NiWXp2RGhzQTIzMFV6SldJTUR6QjRWKzJP?=
 =?utf-8?B?TERpRUNiOWpqVmFuL2Ryb0hybytIb3BUYVV4Tks2bEJ5a2E0RDJGZWhnSmZp?=
 =?utf-8?Q?J97fu8hh2LlUgbaMn4SmhBw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 13623e68-be61-42fc-1627-08d9a372d22a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 11:19:39.8387
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: j/6SLwOQfk06Q2TW+gjD1QlAnRdtaObOkTuoqzCamWL4Dq4lY4Arxs34n7cxMGnJBew8pqX0SXl2yO4VSns3SA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4605

On 09.11.2021 08:02, Vikram Garhwal wrote:
> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -331,6 +331,205 @@ out:
>      spin_unlock(&overlay_lock);
>      return rc;
>  }
> +
> +/*
> + * Adds device tree nodes under target node.
> + * We use dt_host_new to unflatten the updated device_tree_flattened. This is
> + * done to avoid the removal of device_tree generation, iomem regions mapping to
> + * hardware domain done by handle_node().
> + */
> +static long handle_add_overlay_nodes(void *overlay_fdt,
> +                                     uint32_t overlay_fdt_size)

You adding a static function here without any caller got me puzzled.
First I thought you'd be introducing a build failure this was, but
it's really patch 8 which does by introducing a call to this function
without the function actually being there.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 11:24:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 11:24:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223900.386853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkPEP-0007mg-KX; Tue, 09 Nov 2021 11:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223900.386853; Tue, 09 Nov 2021 11:24:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkPEP-0007mZ-Gu; Tue, 09 Nov 2021 11:24:01 +0000
Received: by outflank-mailman (input) for mailman id 223900;
 Tue, 09 Nov 2021 11:24:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkPEO-0007mP-Kq; Tue, 09 Nov 2021 11:24:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkPEO-0005qa-B4; Tue, 09 Nov 2021 11:24:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkPEO-0004Zx-0R; Tue, 09 Nov 2021 11:24:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkPEN-0001aM-WC; Tue, 09 Nov 2021 11:23:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ne1koScZhTMWjQZJk+7k+evnKkJPsmqjOokbFuxvrgc=; b=mxWMhhqELeiJZSpBmZKA4QRz5V
	4ZwRClCuLWTZdD1YLvUQJR7niF/ZrVaVL6OfTcJyFT8tyUZMXTpHaaPdSFRsWqTin9NaVAHCF9X1s
	UE6hoxxY6l0jVnuhURHl2gR7pl4KyyR+g/Q/8Dvnw00bEgglIaZiF+ZC9Nnmox9iZA7k=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166093-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166093: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=d6e6337cd6ee0b7f06578693ea0cef8e428b93f9
X-Osstest-Versions-That:
    ovmf=8c1b1fe634a233ad7570f2243027d6be8a7849a1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 11:23:59 +0000

flight 166093 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166093/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 d6e6337cd6ee0b7f06578693ea0cef8e428b93f9
baseline version:
 ovmf                 8c1b1fe634a233ad7570f2243027d6be8a7849a1

Last test of basis   166090  2021-11-09 01:43:06 Z    0 days
Testing same since   166093  2021-11-09 06:21:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Chris Jones <christopher.jones@arm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   8c1b1fe634..d6e6337cd6  d6e6337cd6ee0b7f06578693ea0cef8e428b93f9 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 11:59:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 11:59:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223908.386867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkPlz-0002YL-7e; Tue, 09 Nov 2021 11:58:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223908.386867; Tue, 09 Nov 2021 11:58:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkPlz-0002YE-4C; Tue, 09 Nov 2021 11:58:43 +0000
Received: by outflank-mailman (input) for mailman id 223908;
 Tue, 09 Nov 2021 11:58:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mkPlx-0002Y8-GL
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 11:58:41 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkPlt-0006Ou-LW; Tue, 09 Nov 2021 11:58:37 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=[192.168.22.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkPlt-0002rt-Ef; Tue, 09 Nov 2021 11:58:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=o/Hf95Q2lES6czjOxaWUltgJELMYguFn8xZaw8jFX2A=; b=b7vHN5SCC3fIkyb9TR2pEF2r4r
	Y+/FOURNyq8UbHJWgMTgjHZBqMxHAaQvLUnx4P4EhZaZyeJZyhPgVjuHMyhhRRwLFbjkaT8TlR/5u
	3neDtkUpCoJD6FQ2gZ91r+SaoJx/RBE84rqOl4OBuzEw2NSBj26gH3eQp0YksueY2umQ=;
Message-ID: <666a0b12-bfda-a6b4-a7e6-d58e0a01d5ff@xen.org>
Date: Tue, 9 Nov 2021 11:58:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: ASSERT in rangeset_remove_range
To: Stefano Stabellini <sstabellini@kernel.org>, oleksandr_tyshchenko@epam.com
Cc: iwj@xenproject.org, Bertrand.Marquis@arm.com,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>
References: <alpine.DEB.2.22.394.2111081430090.3317@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111081430090.3317@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

(+ Jan, Andrew, Wei for the common code)

On 08/11/2021 22:45, Stefano Stabellini wrote:
> Hi Oleksandr, Julien,

Hi,

> I discovered a bug caused by the recent changes to introduce extended
> regions in make_hypervisor_node (more logs appended):
> 
> 
> (XEN) d1 BANK[0] 0x00000040000000-0x0000007e800000 (1000MB)
> (XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)
> (XEN) DEBUG find_unallocated_memory 994 s=40000000 e=7e7fffff
> (XEN) DEBUG find_unallocated_memory 994 s=200000000 e=1ffffffff
> (XEN) Assertion 's <= e' failed at rangeset.c:189
> 
> 
> When a bank of memory is zero in size, then rangeset_remove_range is
> called with end < start, triggering an ASSERT in rangeset_remove_range.
> 
> One solution is to avoid creating 0 size banks. The following change
> does that:
> 
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 49b4eb2b13..3efe542d0f 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -459,9 +459,12 @@ static void __init allocate_memory(struct domain *d, struct kernel_info *kinfo)
>           goto fail;
>   
>       bank_size = MIN(GUEST_RAM1_SIZE, kinfo->unassigned_mem);
> -    if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
> +    if ( bank_size > 0 )
> +    {
> +        if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
>                                  bank_size) )
> -        goto fail;
> +            goto fail;
> +    }

I would move the size check in allocate_bank_memory().

>   
>       if ( kinfo->unassigned_mem )
>           goto fail;
> 
> 
> 
> We have a couple of other options too:
> 
> - remove the ASSERT in rangeset_remove_range
> There is an argument that we should simply return error
> fromrangeset_remove_range, rather than a full assert.

To be honest, this is a developper mistake to call with end < start. If 
we were going to return an error then we would completely hide (even in 
developper) it because we would fallback to not exposing extended regions.

So I am not sure switch from ASSERT() to a plain check is a good idea. 
Jan, Andrew, Wei, what do you think?

That said, this option would not be sufficient to fix your problem as 
extended regions will not work.

> 
> - add a if (end > start) check before calling rangeset_remove_range
> We could check that end > start before calling rangeset_remove_range at
> all the call sites in domain_build.c. There are 5 call sites at the
> moment.

I think we only want to add (end > start) where we expect the region 
size to be 0. AFAICT, the only other potential place where this can 
happens is ``find_memory_holes()`` (I vaguely recall a discussion in the 
past where some of the "reg"  property would have size == 0).

> 
> Any other ideas or suggestions?

My preference goes with your initial sugestion (so long the check is 
moved to allocate_bank_memory()).

[...]

> (XEN) Assertion 's <= e' failed at rangeset.c:189
> (XEN) ----[ Xen-4.16-rc  arm64  debug=y  Not tainted ]----
> (XEN) Xen call trace:
> (XEN)    [<0000000000220e6c>] rangeset_remove_range+0xbc/0x2bc (PC)
> (XEN)    [<00000000002cd508>] domain_build.c#make_hypervisor_node+0x258/0x7f4 (LR)
> (XEN)    [<00000000002cf2a8>] domain_build.c#construct_domU+0x9cc/0xa8c

Vanilla staging doesn't call make_hypervisor_node() from construct_domU. 
So what are you using?

> (XEN)    [<00000000002d0440>] create_domUs+0xe8/0x224
> (XEN)    [<00000000002d4988>] start_xen+0xafc/0xbf0
> (XEN)    [<00000000002001a0>] arm64/head.o#primary_switched+0xc/0x1c
> (XEN)
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Assertion 's <= e' failed at rangeset.c:189
> (XEN) ****************************************
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 13:20:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 13:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223922.386878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkR3D-0002WX-H6; Tue, 09 Nov 2021 13:20:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223922.386878; Tue, 09 Nov 2021 13:20:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkR3D-0002WP-E1; Tue, 09 Nov 2021 13:20:35 +0000
Received: by outflank-mailman (input) for mailman id 223922;
 Tue, 09 Nov 2021 13:20:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkR3B-0002WF-PN; Tue, 09 Nov 2021 13:20:33 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkR3B-0007km-Hj; Tue, 09 Nov 2021 13:20:33 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkR3B-00038e-39; Tue, 09 Nov 2021 13:20:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkR3B-0001BR-2f; Tue, 09 Nov 2021 13:20:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=BBy2UalcIAgit0Bd9n5kvj1eHiri72O7S8uG6i9AkS8=; b=A3FkSDb8Dp3096JL/3dWdezCnY
	ImiPRx0u1UyJh0dKsgGj+gT+DeVkzK00GEyhLpgHHr6SbEgTlRypWyDg6693NE096qFxOCPQ8fqIP
	Tdba+HroR2ILLUx2B0DwMYfssp+NwR80prPIPxCMMsoc8WeGAyW5A20johMLkHw3RdKs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166089-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166089: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-arm64-arm64-libvirt-raw:guest-start/debian.repeat:fail:heisenbug
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:allowable
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=114f3c8cc427333dbae331dfd2ecae64676b087e
X-Osstest-Versions-That:
    qemuu=260f9210d2ce892c5e162a45b0e5ec0036bedc79
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 13:20:33 +0000

flight 166089 qemu-mainline real [real]
flight 166096 qemu-mainline real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166089/
http://logs.test-lab.xenproject.org/osstest/logs/166096/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-libvirt-raw 17 guest-start/debian.repeat fail pass in 166096-retest

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10   fail REGR. vs. 166084

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166084
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166084
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166084
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166084
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166084
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166084
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166084
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166084
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                114f3c8cc427333dbae331dfd2ecae64676b087e
baseline version:
 qemuu                260f9210d2ce892c5e162a45b0e5ec0036bedc79

Last test of basis   166084  2021-11-08 15:38:05 Z    0 days
Testing same since   166089  2021-11-08 22:39:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Laurent Vivier <laurent@vivier.eu>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Thomas Huth <thuth@redhat.com>
  Willian Rampazzo <willianr@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   260f9210d2..114f3c8cc4  114f3c8cc427333dbae331dfd2ecae64676b087e -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 13:30:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 13:30:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223928.386892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkRD3-00041q-GD; Tue, 09 Nov 2021 13:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223928.386892; Tue, 09 Nov 2021 13:30:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkRD3-00041j-DA; Tue, 09 Nov 2021 13:30:45 +0000
Received: by outflank-mailman (input) for mailman id 223928;
 Tue, 09 Nov 2021 13:30:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=20ed=P4=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mkRD2-00041d-OQ
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 13:30:44 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a93e958-4161-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 14:30:42 +0100 (CET)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A9DEUPH017394; 
 Tue, 9 Nov 2021 13:30:34 GMT
Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70])
 by mx0b-00069f02.pphosted.com with ESMTP id 3c6uh4ju20-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 09 Nov 2021 13:30:31 +0000
Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1])
 by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A9DUMZL127807;
 Tue, 9 Nov 2021 13:30:28 GMT
Received: from nam11-co1-obe.outbound.protection.outlook.com
 (mail-co1nam11lp2170.outbound.protection.outlook.com [104.47.56.170])
 by aserp3020.oracle.com with ESMTP id 3c5hh3kjs9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 09 Nov 2021 13:30:28 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BL0PR10MB2883.namprd10.prod.outlook.com (2603:10b6:208:73::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 13:30:26 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::3c49:46aa:83e1:a329%5]) with mapi id 15.20.4690.015; Tue, 9 Nov 2021
 13:30:26 +0000
Received: from [10.74.106.187] (138.3.200.59) by
 SN7PR18CA0012.namprd18.prod.outlook.com (2603:10b6:806:f3::35) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Tue, 9 Nov 2021 13:30:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a93e958-4161-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=RZ0Smk+mke277yOyQqGhvzEK97JkpfXatF9W30pc5FA=;
 b=Uk1IVEoETxGFpSYr4B+WYFqh5msa6KRNnwHgNJVh3Z5OqZv8R52ZMtOfRk0fLhzcqLYY
 tbCudXw5/NfSmMiaGuysqSiZih4GK0H3BiyIse4DDGif0hHMutjoD7hZe89r7zAnvyDA
 vutd1ieyEOFsjKn3L7pmb5CwY0p5rmm51oNKPs6SAkTu5PiKISMr/kGBtUSPFK3gBWWq
 VDQ8cx3VOjcvWe03NDJdW1E7elrNtth7tHVePScTiSyD59S+XnKRl6yZpgFptZ4kUPem
 9cESp7XTrVyimhHU0WFIznchdx2olYFJxpEnKExPftK96ody2BE8dA4RNhRlI9kzHz6J 2Q== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=H+CWx8+fMDmmnE/wl+VmPAxoj5R1p9xTNvS71JoKiubbtb1bQxkIFE7znxDX+vwwIoLR/4hhnBhRRAImZTsmd3U8cfKVVg942NV/TbOqqp+eTUuEXglQII/L/oTf8HoBKOcDgYfNw2+1lHtLXRq66J/By0WF8LXDeLZODb/yKJknyPTHRPlZ5cdrq+SVtvvJyR6HBmoRPo36bGvgItc4ZQAddpDsQepJMMTiI/C5UEUeVMFN4gisQ668TDngvYtcWjZQM0CysrUp70SZvzZUlDe/B70VFMfRAs/qQAjNd/ePvFjVGdKgjFdCxlkObRoLlQxyXxuGxjp/bOSvnZ3D+g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RZ0Smk+mke277yOyQqGhvzEK97JkpfXatF9W30pc5FA=;
 b=C4Nfglvq1QymUfYVIkaVBXaq2l/YnkidbTi6U6dfiDLR1g0WrE8SSaikZu9Hyh0aSvXrW4d4d+N0ucvve5jmT8w4z6DqT0x3jwBOzu4tLGJ00uKbag6J66ktT2V32IrsK5mAk2m5T6FzpkHkBP/1D7wK5EbLwzVaekSZj/m9mWFbMTWAV+SoNpHIKOR4C9+uKgXs46idIj0DKlc6lv4qAmvBSy0NljLikqf/lAxLMZro8nZoskrw6VK4njWW4dbeYO0hwGpUKUCThqzya0XxkZy/uu3gtxtr1MhQ26aMOUzVD8BKCJsTyoXFJrDAu/STGq/WPzp2S9Jl2Fsd5Yxxyw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RZ0Smk+mke277yOyQqGhvzEK97JkpfXatF9W30pc5FA=;
 b=f6RbKL10bfQpyZQ9wtGmstrFdxmfCIzK6ppfubHYNy2sjDpJcuql/ZJ20XRz6Dr2eAu4ZUfHAJZxveN0/1bbYayYYf/8D/vYH9NQYyrZuRZxggL93oPFH2mo+BUEyZyj90iZXxyHGKZgHhHq9R4Z7A+MJd5kpykIrdM3zhTiukU=
Authentication-Results: kernel.org; dkim=none (message not signed)
 header.d=none;kernel.org; dmarc=none action=none header.from=oracle.com;
Message-ID: <961b14d5-db54-43e7-a816-1c12ceede49a@oracle.com>
Date: Tue, 9 Nov 2021 08:30:20 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/balloon: fix unused-variable warning
Content-Language: en-US
To: Arnd Bergmann <arnd@kernel.org>, Juergen Gross <jgross@suse.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
        Stefano Stabellini
 <sstabellini@kernel.org>,
        Oscar Salvador <osalvador@suse.de>,
        Pankaj Gupta <pankaj.gupta@cloud.ionos.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        David Hildenbrand <david@redhat.com>, xen-devel@lists.xenproject.org,
        linux-kernel@vger.kernel.org
References: <20211108111408.3940366-1-arnd@kernel.org>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211108111408.3940366-1-arnd@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SN7PR18CA0012.namprd18.prod.outlook.com
 (2603:10b6:806:f3::35) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 37f4fffe-ca02-4da6-07c6-08d9a38516dc
X-MS-TrafficTypeDiagnostic: BL0PR10MB2883:
X-Microsoft-Antispam-PRVS: 
	<BL0PR10MB2883556020EDE8BFADE544FF8A929@BL0PR10MB2883.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2276;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	D9gTnEA5SR5hGWcxy4vusXC5ZYQlgSCalHynC5FvBKUQJaMHgdAFq67Lfn4jB3KnIcORASoryr/MIhrCNaLSeAZL792nNUfINZbCthzEf1cgaLTsuwj1m+erP3qMdzJnIcOQz9MG5Ai5C9rQm1Rd6Xqsodt1Vlvl1uFhkmQNVL5T98f2JUne4KaYq49U03MCftZi3zx02fOC4xktADofDubt3plRUmled9ThpQblVL83mlOGbW/jLnr6sGvlqLtT4TtbEaWYKIfkMr92J1YhPoswAUhe/A3C2pNr4FCYVCaQyb4VhJuzWxohRefNCyQJqOAVP1edm4+eGCqwXBJeIhcwo11Ngl0tHhP6O0znN7jpliHy2Ozj2W01fe9la6mpiDFhP//8O7Jekw6O02t6xCeRFriZM1Nnywnfot5StJ21qRyPKux5N6+h60kFLDRNFbMZ/CDQ4LX+JVqSYDZM7ouXgV7AMoGQlSNQ3GxhxWs8De0ETveAoM/Xp299zy14EDklQXwDPg8fod//bzwSsJBI1C5DySeUxFLBJcuZlQooYPjl7PITJRJe9E6pXXjLkWUM2I4d+jLqpHYObj0W5eyQvYW0A/yzIxxbNfmE2Kr4NYNFXVD41SdWUrTK0R38YDamxoeyZ9wKm2Iq9c+77td7pQq/SO0LW3mePjiDbYE6uHZkLPu0Mdv67A7Rhb7E/bOLPhnE2b2vB+r9HA07s23DFMcY/6iWRqDdWOhQu3KCY6PPmTPGEIWpXIvXR8GM
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(2616005)(6486002)(7416002)(83380400001)(38100700002)(4326008)(66946007)(31696002)(956004)(66476007)(8936002)(36756003)(66556008)(4744005)(31686004)(316002)(26005)(16576012)(110136005)(5660300002)(54906003)(508600001)(2906002)(53546011)(44832011)(86362001)(8676002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?dTNYK250c0NOU1F3T0FlMlZWRUNnRHdZSDRDZjdHRG5DYUV0bTZDS2JOTUc1?=
 =?utf-8?B?WGFOTFN5VXpLMTZzYklkMnRBdmpSeTdtUVVXakxYbTVwd3pEaUhLY0RMNEtk?=
 =?utf-8?B?MnF6aHlXdFhuTnQ3UzNUTG9Ndmw2RjVYQlVDcWM2cG9TVTBqU0tZZndyN0hE?=
 =?utf-8?B?QUtadDQxM0Y3RTNvMitQbVE4UjQ0eEF3Y3lONG5DUXhwVlJqWGFvVWNlcXBQ?=
 =?utf-8?B?Q1g3dDZ1eXpZWVNqN2hEV2dTQW1INDdNQWppMkFCaFdzUnNaaTlOZHJ0dGIv?=
 =?utf-8?B?T0VsdjRiY3NpMjJRNStJSjB6Q2kwVUovSzh4OXRGZkNuTUF4bkRIbUZnV0ow?=
 =?utf-8?B?dkpVV0VDelU2Z2p2U0p1SXVoUVdqWmpmb0YzQzlVUG5tUUs3WUJ6ekhyUTN6?=
 =?utf-8?B?TEdIUmVhb0EvaU00ZUZWT0tZaHQwb0p1NkhtL2RiM0xHZUtDaG8wcCsyMlZk?=
 =?utf-8?B?bmdLRHZleUQ1VTVsZHpDUXN0MEdQc01BN3RBM2drQiswMjlFYUlHNm5TNUxW?=
 =?utf-8?B?ekJtQmUzdmw1TG1MU1Rnam9pektYbnAvYmZhNFl5YkxOLzVQUGl2VkNJU2xQ?=
 =?utf-8?B?ckZ4WUVLZDgxVjNRTGdEMHRIVUZ0dk5kTW5PSGxZOCttcE1XN1RiSFEyekRh?=
 =?utf-8?B?VWw2L1ArVXpQMlV0czhlRlJTRlhabVc1bFBGQkRBWGtMSVE2Rm5zZWVob1hW?=
 =?utf-8?B?a1BLc2VsNnNFb3k3SjRVZkZpbTR2ZVlvWS9MVUVnM2d3cnpMWW9NWmFqeCtt?=
 =?utf-8?B?YWtuOWhhQWR5Ull5VEVxVjJhMkFSU2hja2JvQnQyaENSVGhYZzF3ZXVqWEtF?=
 =?utf-8?B?d2NyUFppaVFHc0VuM3M4S2FxNmdxUFhBOTdNVm1BRzdHSzlEbFdJY0hFbHp4?=
 =?utf-8?B?SjFMUDhTOHBGc09ZMGFyUUFXd0NQeE93bjBWMFdveTZPSHRkSmRXYlZZVEUv?=
 =?utf-8?B?WWRFZ1ZRTUZQQ0Vqa2F0bk81OGd0em9NTmw5Z0JvM2xiOCszVk9vYlovcG52?=
 =?utf-8?B?VUduTjRtZWhlS0E0emZzL2dsa0sya29PQ002RERwUGJMQ3QyRmpKL2FJNm9a?=
 =?utf-8?B?czR2WWt4VmM5c3lRNnJ6T1lZNzdFRHdnWENRNlR5WnhCc0RWUXcvcHJCalRq?=
 =?utf-8?B?b1lITHJSbVFKWHRONzhFZmZNekNVanZ6QklMSzJEWmkySU41UGEvbVZSeFE2?=
 =?utf-8?B?SWovZUE1c0tSZ05CaVRlaXNZUXFmSCtHaXYzOElWZisrTGFSVm9EcGNsR1Zv?=
 =?utf-8?B?VUt2emQySmlKbDFJV3ZjQTF5YXFaSlRQN1ZIQVF2UzhxYjRTVkpTN095d3NK?=
 =?utf-8?B?TGVxazR0UjRDL3hTWGQveitOU09hUUNYVkN2MENLNGVpL3kyZU9SdVZSQzBC?=
 =?utf-8?B?NjYvdXFMMGFDZjJ4b1IyVEM3aHJQdzlpY0dDcnBOMTcrdlYzWVZRdHFlTjRK?=
 =?utf-8?B?ckJnemN3NlNoK2trUGZnbllvWVhGOC9udmRLOUh5b2pseitqQlRxRVdHSHF0?=
 =?utf-8?B?cHA2QzFLUU40OFphUGJlSXRXT0lxQ05DMGk1N3MxcGhVQWZjOENKVm4rUmcw?=
 =?utf-8?B?clBlUnM3UE1ETmxNTEpZMGpmZmZMNW9NZm5CZEpZN09ZVVRldndKMWNXcTlW?=
 =?utf-8?B?cHNZNnZqSUUrWGIrRUtlUHdmWGVtYitEditWZTNwc3N5aEJhTndUdFF6WW5z?=
 =?utf-8?B?MVNhcmtkQTFmNGI2K29yT2dQcEt2bXFqdUVuYzQvaHM1eTJ0aWhKaFRtQ2Z5?=
 =?utf-8?B?dnpORk5GMG5zejVVT2JyTS8zVUVwT0M3UHJGYnF0Rk5TajYzQWljTmZUWUJ3?=
 =?utf-8?B?R3Z2TnhVUGZ6dWFOeFVrczk3SWRSWEZjN1RrRE9DVExIRzhZcHNNejlkYnRE?=
 =?utf-8?B?UGZ3TkFUZlJWWGNXWllaait0SFZEL2FSRGYyOXh3QjAySU53dTl6cVhQWnFp?=
 =?utf-8?B?eVdnemQwTlkvZUE2RXhDR2NMVWJLK2VBNUx5SFdPcUxXUTNDTTVKRWs5Qmor?=
 =?utf-8?B?MWt6S0FZZ2taVk9TWkN4bU05UHJqWW8zL2dMZE9HTXVFWm5kRE43ekhUa0NX?=
 =?utf-8?B?UjBxamE0MGNWT0xuZmw3TXliZGtOeWpqUkh4NDBxMExIR0pFQTJPVHR5VDFl?=
 =?utf-8?B?K2MyQk5lZFN6SXhURS9VYldpUGRQeXMrK0h4eWFqb3hoRUowN3dXaUxXaTh2?=
 =?utf-8?B?T0pHTmFKY2hkU2FpL2lzRmJyVVlpK082MUpzQjhDbXJFdzk3WWpIU2sxMVlq?=
 =?utf-8?Q?JmNWIVnGftQrM2kuuou8i6CD3LMigmY6iafInf0f9Y=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37f4fffe-ca02-4da6-07c6-08d9a38516dc
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 13:30:26.1253
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ao0/itf9l356jPNjin/Dv68+8qNoF5Ph/Zyz2qXC6huN3Rt+1vdMolUgH0qQycfWqENQjqoMi16zc/jGKk8MYdIlHi/6TNeNu84yckcqqyo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB2883
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10162 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxscore=0
 malwarescore=0 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=999
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111090082
X-Proofpoint-ORIG-GUID: P1BuFuZVR0Qkx9f3gk-jZTQs0qXZSGyx
X-Proofpoint-GUID: P1BuFuZVR0Qkx9f3gk-jZTQs0qXZSGyx


On 11/8/21 6:14 AM, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> In configurations with CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=n
> and CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y, gcc warns about an
> unused variable:
>
> drivers/xen/balloon.c:83:12: error: 'xen_hotplug_unpopulated' defined but not used [-Werror=unused-variable]
>
> Since this is always zero when CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
> is disabled, turn it into a preprocessor constant in that case.
>
> Fixes: 121f2faca2c0 ("xen/balloon: rename alloc/free_xenballooned_pages")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>



Applied to for-linus-5.16b


-boris



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:02:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:02:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223934.386902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkRhk-0007Ki-2D; Tue, 09 Nov 2021 14:02:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223934.386902; Tue, 09 Nov 2021 14:02:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkRhj-0007Kb-VM; Tue, 09 Nov 2021 14:02:27 +0000
Received: by outflank-mailman (input) for mailman id 223934;
 Tue, 09 Nov 2021 14:02:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkRhi-0007KT-SZ
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:02:26 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aac409a2-4165-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 15:02:25 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-39-ebTlZ7TFNseIg6AB3om4MA-1; Tue, 09 Nov 2021 15:02:23 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3293.eurprd04.prod.outlook.com (2603:10a6:802:11::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Tue, 9 Nov
 2021 14:02:21 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 14:02:21 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR05CA0017.eurprd05.prod.outlook.com (2603:10a6:20b:2e::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Tue, 9 Nov 2021 14:02:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aac409a2-4165-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636466545;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yAPD9V9vB+qDkxTtdgPOFyd0MVmFplO5HDEgpCdpTwk=;
	b=QFjKru3zO6tsAp3orYG8NWLmcamDhYfPzOiW9R6lEIOzRWBqteIJcUiBFt6SMIbyQtOvpw
	olXVDi6sF18fLoVLvTbC+M7/SvPDnMyrDRGaFktyY6qkx9kba0D7hNfGlly605Ca9DSrN8
	6yHgf0Z24Z85oGLWIZF0KO8Z5uUOtq4=
X-MC-Unique: ebTlZ7TFNseIg6AB3om4MA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=R2lAYFf2fb0cMmtAl6JaWIBcJul7K982H1R9GAAlaJl660fKYFXuczQIDNbtF5O6Rc8XObDw8Ki838ZD/mk6nPUkRuzrkD70i77BM0qEO5/WoRvwRSC3FDAkmO8euqwUJh1vJdSxzQ6xZAxxay7g1ajTUZ5LtbPHuQcKyPub9GGZXp2N3wjXPWMKJ48Xq4pwKwgeD1o5aRkUgonZnW5P/jOrvEh56x/bcm8/TadytwHeDFFICOGw9A1u1kg23P1wL7TmOg864tCUIx5g49Bk69cbKk/Hd4jRjNCqT/0RMZrw75cMBbLL+ehZCcHoYrIzgZBPIapEjVBjzFvLmkFvGg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yAPD9V9vB+qDkxTtdgPOFyd0MVmFplO5HDEgpCdpTwk=;
 b=mmDMPjlFjhe7pEN3q/2OyDXTIX/LaBjNN81Ml/4j2Fn9E0G9WOuS2SVInNJ2WiA8XiV26vlHyaO5pdL8hqfe1iyPlJD/6SlBpfFaHkAHRG7Yv0NShQPTuUhFy7f8shRe6XePHCnLGTXOqVHMSN/BnFEvbq4pjwNZaxBCrx8gSrEwhWhq23Ts8qnK5Gx8kinZI4f4OBdWOwpBDZJg0VJdqR1P6e4XhUWTKfIkfUOKX0LF2pJJEkH3eBXrx6ptSBUxnFvhckB38mIrkXPe4mIyoMp0CWAgLeEXImTVr02JzM/5254L08M66YIeSdiq2rzIVcOJdciXfPxZfKG2wDyaQg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8a2e1fc5-9422-5a37-8216-6b905f533798@suse.com>
Date: Tue, 9 Nov 2021 15:02:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: ASSERT in rangeset_remove_range
Content-Language: en-US
To: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Cc: iwj@xenproject.org, Bertrand.Marquis@arm.com,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Liu <wl@xen.org>, oleksandr_tyshchenko@epam.com
References: <alpine.DEB.2.22.394.2111081430090.3317@ubuntu-linux-20-04-desktop>
 <666a0b12-bfda-a6b4-a7e6-d58e0a01d5ff@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <666a0b12-bfda-a6b4-a7e6-d58e0a01d5ff@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR05CA0017.eurprd05.prod.outlook.com
 (2603:10a6:20b:2e::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f0fdda87-e956-48d6-3c77-08d9a3898c69
X-MS-TrafficTypeDiagnostic: VI1PR04MB3293:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB32934A6C33555671A7B3C9D4B3929@VI1PR04MB3293.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4941;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	VHs2hr3+RcP991BPzapCm5Xftq0IycSYF9vy2n697yGTn6Qdibf4sKihm7LBJX0l/wJO+IHCuG6E8tpeitnbpoFiloYlOMj48+m4lerGvbv52Ee6IvK3bJviJ4YT7Bsoe1f/f1iLUlxZZpbfIgRCPdZmUCD2mPvvpczusei3jBDV8mbP8J5cbile/WUxykpvy4T15AjpaZjOFeX/a0mOtY6x5u4Fe9mKhuhrpkjeAd/vaYIY9N/spb5m+6xXSmz4nks33Wq5xATPFjqiq7tlJ9yoxzLFQY1MUA/FE4qSyDkcMs/mS+QG1eVbh9wznQZiBm3YvE2yoj/0x7wrHbdCUTCuFsozifnLusNRnZcgMwUi6/FJGF3Lrb2GMxGchN7cDyQWiUj+0MOlMg+lOx4n92nU5FWdWZyF9SWP0a+zJXXW3vbQi+vEuanT/O/AuMC0LrbD0Ia05mga8ElmniR1OVmS1dkyR6eeUjFUs3k414jYO8nwAaZWXLUug0+jxiEYLWEfxdWPkBYUd1kN+hAvAq5XDWysopVSn+PObGaOt5tiwLXjYto7MHzL+f8jfnlcLERJJQR4sGhsLmYKyubPF76/c2Vt4crsgxtxkvQbTa5ZcqfbcLniezFC0m4fjzAsWKmxJyh+z5TokLAKqPCSamPvGW6CQn/+Gy9wrvWyFmox2JbG7uteIIGFM8vzi2nsijSDOILZj9Ddirg1CN3H7FRWy5ENzKoDAwJZGPGQw9NM4aDPeWDn5fE4U6ZoPBmH
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(66556008)(66476007)(2616005)(31686004)(508600001)(38100700002)(26005)(5660300002)(186003)(36756003)(7116003)(2906002)(53546011)(31696002)(110136005)(316002)(54906003)(16576012)(83380400001)(4326008)(86362001)(6486002)(8676002)(8936002)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dk9NT0lzdTZKMlMyeVBKS2hPMng3VzArdFJXTTF1M0ZqZXR5YWRMRDQwVTJ1?=
 =?utf-8?B?QVdvWU1kOU03OFpweUphQmtSeHpjbDRkNnBRNzVnSHRpUmV3RThFY0VkZkVB?=
 =?utf-8?B?dW9mUXM5SWU2b3lPUE0wSm9udjE3QTRWVUlIYzVDNE4xVnU4STlLNWRDd0xH?=
 =?utf-8?B?K0dmVjAzN0JNRy8zVGVMaElFekVpZ3pYbkFZU2sydW1GR2hoclF2WDFIUmhs?=
 =?utf-8?B?SW4rY1BETzUxSmExNkE5NlFHQ0dSSW9ORHEwSmVZaERjWkg3VTIvcUxZaGZ1?=
 =?utf-8?B?M0lORG9nb0RLZDNzVnQxMlJ0WDM5cEYwZFFKVkNrZjFNdVZjbzNNbXowU2NV?=
 =?utf-8?B?MlZwMm1DRDBXYW1LZEUwTnFLOWQvaHZ6QnRYWVZZZll2bnVoZnN0OWE2bXkv?=
 =?utf-8?B?dDlrSGtQZzJWSzRDenkxNzJaRUZ2ZjJNeUord3lDdTZjbnVXOFpLeTFKRjMz?=
 =?utf-8?B?WkppRU1yaDBiblhUeFhYN0c0SWRzbEh1N1poc1kxcU1XWXk5WjlUVVdCVXlW?=
 =?utf-8?B?QjFEVmgvbDVYaDhkb2NVL1NYQ3hES1NITHlDY29DMEhxSjlNVnNxMTNibmo3?=
 =?utf-8?B?OW5mWU82Vm1LM01TbWZESGVDWHFabk1Oekdia24vV2IzdVBWcGQzUFNhN0g0?=
 =?utf-8?B?NW5NSjF5MStHN1dHdHo5dEJKUkFDbUplSjN3a1V1c1hzQ1ZoVlhoYkFSLzlX?=
 =?utf-8?B?SE5mc1RuUU15a3FnV3hZMm5aR3hyZjFKcWM5bC90Si96cXdwMHNQbk45bUF2?=
 =?utf-8?B?Q2FLL0VIdUZtbXFZU1RNKzM0ODQ4Q0NyY3ljbllPRlFGRTREV0pUV1BNMjhm?=
 =?utf-8?B?WVVVZm9nRWlVVWNSMGM5T2svN2M5UlVEbFN1L1ZhZGV0ZzcyNkxiOStENDBy?=
 =?utf-8?B?aGdualRGVStLZzhYVVBjUDBOZ1R2bkcxUEIzSHVab09tQVM5MXE0cm5HckNC?=
 =?utf-8?B?RCsyZTRGNWhYbHdES2lFTGNUT2NOOEF5ZGpSQkd5M2dWUEpYVmhtUEpWUFQw?=
 =?utf-8?B?WjkrWGFTTGlCSUZCNGtta256Q0RLbkhCZENwUGJUQ1lBTXR5V2w4TFFvblRs?=
 =?utf-8?B?TlRDYUlucjgxbENUSCtmSyt4NXpXOGJ0K0txZzFuQTR2cWl1RkVQZnA5ZmZS?=
 =?utf-8?B?bmp6QUJiTGZoeE5pT01XNkxLbHMvY1J4N09Edml1bnMzK1ZSQVA3anUzalJX?=
 =?utf-8?B?eWMvazAyalFZL2xPQnpzNjU5NU9CT2FZUFZIeVZwaG5hZHBkK3N3WGtsdDNo?=
 =?utf-8?B?bXR5U3lXZk9PSE5OTm51WXQ5WWhXNDUwTmRBWVF1MTRqWDNpZm41YkRSSGFT?=
 =?utf-8?B?R1pMVkFaQlRhYVdyMmU5RWQxR3JKQ3JLSDVuc0VMbU1BMk54VFZIMVBKaHdM?=
 =?utf-8?B?cnlSbGxtMDROYnZlSWpQNmdFenVrNlZ2TFFBdm9td3craW02ZG1DQ2VxNDVL?=
 =?utf-8?B?VVllamtyWE4xdjNHemRSMFA0REFIUk42MlBnUDVCQUVNU2hxcmNYUW9iOCt6?=
 =?utf-8?B?UWZPK3AvMzlMTmVxaWdOZmlsd1grL0JLQlYwN250Skk4YnZ4cEV0eUtMUHIx?=
 =?utf-8?B?TlhSY2UxeC8raCtDa09RZXE4MGxuTmlkVFJHc2J1NlhRN1JvOHlDT2Q2UjRI?=
 =?utf-8?B?WUpIOG91eWhaNms1WWJWeXBrdjIyYXIvQkhJa2JnZUZpbzN3RFBNcWk5NTZT?=
 =?utf-8?B?eWpwZHBFV1I2VWlNZUNQeXU5Tjh1MmdJWnZ0MmphSnRzdXFpaCtYZVI0ZjJh?=
 =?utf-8?B?Vk1nRGVWbVp3QnpnK2hXOVJuL0JqakZqZzdPb1pLY2ljZG40OVdlQTZrTnpV?=
 =?utf-8?B?WkFWZEhvcWxWaWlIb0pRY1NETnZyOGZUTGhib1JpMGVKYUtnN2piK3d6VUF5?=
 =?utf-8?B?WXpqZjV2L3RZQmpUY3lubTBvNDBnQjhueVZINkxIRGw3STFBcmdwN3oyT3Ry?=
 =?utf-8?B?cFJiWXBPQVQxbGdjbjFNRWN5K2s1eWw0VWRMbno3LzZOeEFwVU5nQ2lnUFVq?=
 =?utf-8?B?U2Q1ZEphTU16bHRPSkkwL0VoenlDVmxYck1SVFhCNHlEQWJlMVl0cThQYlpZ?=
 =?utf-8?B?eTBoWUZHeFRjK3p1Ni9yOXN0T1AyY0kxWk01TlpIT2U0WitJVUIzaldSNG1S?=
 =?utf-8?B?c1JKM00wVTZWOW50dVJORXdEUlJ3TXJmUGJKd09lT05DR0Fwd1ZnNzVyYnVr?=
 =?utf-8?Q?1eu/oVXGAG//vksPDe604Xo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f0fdda87-e956-48d6-3c77-08d9a3898c69
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 14:02:21.2719
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GCfDkofcnJyc6WFcqj01Zt7FXoHuFTGs4HRjeibJoKRGDMlvij1Ut6CbpwuCFwPRgN1U6TLXVEKOJZGIaVFsRQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3293

On 09.11.2021 12:58, Julien Grall wrote:
> On 08/11/2021 22:45, Stefano Stabellini wrote:
>> I discovered a bug caused by the recent changes to introduce extended
>> regions in make_hypervisor_node (more logs appended):
>>
>>
>> (XEN) d1 BANK[0] 0x00000040000000-0x0000007e800000 (1000MB)
>> (XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)
>> (XEN) DEBUG find_unallocated_memory 994 s=40000000 e=7e7fffff
>> (XEN) DEBUG find_unallocated_memory 994 s=200000000 e=1ffffffff
>> (XEN) Assertion 's <= e' failed at rangeset.c:189
>>
>>
>> When a bank of memory is zero in size, then rangeset_remove_range is
>> called with end < start, triggering an ASSERT in rangeset_remove_range.
>>
>> One solution is to avoid creating 0 size banks. The following change
>> does that:
>>
>>
>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>> index 49b4eb2b13..3efe542d0f 100644
>> --- a/xen/arch/arm/domain_build.c
>> +++ b/xen/arch/arm/domain_build.c
>> @@ -459,9 +459,12 @@ static void __init allocate_memory(struct domain *d, struct kernel_info *kinfo)
>>           goto fail;
>>   
>>       bank_size = MIN(GUEST_RAM1_SIZE, kinfo->unassigned_mem);
>> -    if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
>> +    if ( bank_size > 0 )
>> +    {
>> +        if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
>>                                  bank_size) )
>> -        goto fail;
>> +            goto fail;
>> +    }
> 
> I would move the size check in allocate_bank_memory().
> 
>>   
>>       if ( kinfo->unassigned_mem )
>>           goto fail;
>>
>>
>>
>> We have a couple of other options too:
>>
>> - remove the ASSERT in rangeset_remove_range
>> There is an argument that we should simply return error
>> fromrangeset_remove_range, rather than a full assert.
> 
> To be honest, this is a developper mistake to call with end < start. If 
> we were going to return an error then we would completely hide (even in 
> developper) it because we would fallback to not exposing extended regions.
> 
> So I am not sure switch from ASSERT() to a plain check is a good idea. 
> Jan, Andrew, Wei, what do you think?

There might be reasons to convert, but I don't think the situation here
warrants doing so.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:25:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:25:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223941.386914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkS3o-0001D8-Ub; Tue, 09 Nov 2021 14:25:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223941.386914; Tue, 09 Nov 2021 14:25:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkS3o-0001D1-Rj; Tue, 09 Nov 2021 14:25:16 +0000
Received: by outflank-mailman (input) for mailman id 223941;
 Tue, 09 Nov 2021 14:25:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkS3m-0001Cr-V0; Tue, 09 Nov 2021 14:25:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkS3m-0000SS-Qn; Tue, 09 Nov 2021 14:25:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkS3m-00065X-Ja; Tue, 09 Nov 2021 14:25:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkS3m-00088f-J5; Tue, 09 Nov 2021 14:25:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=pehXtS8YuQlDGKSNe649G/CabetK+rmynjK9weoEox4=; b=2R2o3merZduFSCbkrmDxUUEa/K
	mlZjJwXYeF0H3cXjs1SNhLKUMxUlr82P9AeeRnPGyjTP6eF4OGclAOHV/1+PoxjvWVHX9YlkyQzZV
	TPlhUpRgq7u9LarJFyamhpZ7Ll2ILQB4lR/Vt0f1mD9PALp7jemk7yrIr7GQ9ZdFAQTw=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166095-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166095: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
X-Osstest-Versions-That:
    xen=7379f9e10a3b13ec8bcea756384b2ace8af7064d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 14:25:14 +0000

flight 166095 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166095/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
baseline version:
 xen                  7379f9e10a3b13ec8bcea756384b2ace8af7064d

Last test of basis   166085  2021-11-08 16:00:26 Z    0 days
Testing same since   166095  2021-11-09 11:01:37 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   7379f9e10a..9d9cd0c6f5  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:28:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:28:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223948.386928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkS6p-0001qr-GU; Tue, 09 Nov 2021 14:28:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223948.386928; Tue, 09 Nov 2021 14:28:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkS6p-0001qk-B5; Tue, 09 Nov 2021 14:28:23 +0000
Received: by outflank-mailman (input) for mailman id 223948;
 Tue, 09 Nov 2021 14:28:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uToR=P4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mkS6n-0001qc-Pl
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:28:21 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 497b9c21-4169-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 15:28:20 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id C07831FD58;
 Tue,  9 Nov 2021 14:28:19 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9BA4213A1F;
 Tue,  9 Nov 2021 14:28:19 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id F7KGJIOFimE1dgAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 09 Nov 2021 14:28:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 497b9c21-4169-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636468099; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=29iIuoXhjXzZm+Edp5wA7tp91R6v1sniaJVft+boKZ8=;
	b=tL+XRcJWpxS/DkFYk4/IO4PF+bBYpuR64igPpRSBlQqIGMA3HVSo1EhQEQCljurIrqPmvj
	DBiWB2DI5Xh5Ctdgpi8+x/QNXbSGF3lUxqNQ4hlotpY4njeACTPnnvCrif7KjfMnwH2dvS
	rNSv9R8e7JUCQTqe+jscNp3203pPn6U=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	boris.ostrovsky@oracle.com
Subject: [GIT PULL] xen: branch for v5.16-rc1
Date: Tue,  9 Nov 2021 15:28:19 +0100
Message-Id: <20211109142819.24428-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-5.16b-rc1-tag

xen: branch for v5.16-rc1

It contains the following patches:

- a series for speeding up the boot of Xen PV guests

- some cleanups in Xen related code

- replacement of license texts with the appropriate SPDX headers and
  fixing of wrong SPDX headers in Xen header files

- a small series making paravirtualized interrupt masking much simpler
  and at the same time removing complaints of objtool

- a fix for Xen ballooning hogging workqueues for too long

- enablement of the Xen pciback driver for Arm

- some further small fixes/enhancements


Thanks.

Juergen

 Documentation/admin-guide/kernel-parameters.txt |   7 +
 arch/arm/xen/enlighten.c                        |   1 -
 arch/arm/xen/hypercall.S                        |   1 -
 arch/arm64/xen/hypercall.S                      |   1 -
 arch/x86/include/asm/paravirt_types.h           |   2 +
 arch/x86/include/asm/xen/hypercall.h            | 233 +++++++++++-------------
 arch/x86/include/asm/xen/hypervisor.h           |   4 +
 arch/x86/include/asm/xen/pci.h                  |  19 --
 arch/x86/kernel/paravirt.c                      |  13 +-
 arch/x86/pci/xen.c                              |  76 +-------
 arch/x86/xen/enlighten.c                        | 116 +++---------
 arch/x86/xen/enlighten_hvm.c                    |   6 +-
 arch/x86/xen/enlighten_pv.c                     |  35 +---
 arch/x86/xen/irq.c                              |  62 +------
 arch/x86/xen/mmu_pv.c                           |  52 ++++--
 arch/x86/xen/setup.c                            |  10 +-
 arch/x86/xen/smp.c                              |  28 ---
 arch/x86/xen/smp_pv.c                           |   2 -
 arch/x86/xen/xen-head.S                         |  12 +-
 arch/x86/xen/xen-ops.h                          |   4 +-
 drivers/xen/Kconfig                             |  24 +++
 drivers/xen/Makefile                            |   2 +-
 drivers/xen/balloon.c                           | 113 ++++++++----
 drivers/xen/mem-reservation.c                   |  27 +--
 drivers/xen/pci.c                               |  76 ++++++++
 drivers/xen/pvcalls-back.c                      |   1 -
 drivers/xen/xen-acpi-processor.c                |   6 +-
 drivers/xen/xen-pciback/Makefile                |   7 +
 drivers/xen/xen-pciback/conf_space_capability.c |   2 +-
 drivers/xen/xen-pciback/conf_space_header.c     |   8 +-
 drivers/xen/xen-pciback/pci_stub.c              |   3 +-
 drivers/xen/xen-pciback/pciback.h               |   5 +
 drivers/xen/xen-pciback/xenbus.c                |   8 +-
 include/xen/arm/hypercall.h                     |  15 --
 include/xen/balloon.h                           |   3 -
 include/xen/interface/callback.h                |  19 +-
 include/xen/interface/elfnote.h                 |  19 +-
 include/xen/interface/event_channel.h           |   2 +-
 include/xen/interface/features.h                |   2 +-
 include/xen/interface/grant_table.h             |  19 +-
 include/xen/interface/hvm/dm_op.h               |  19 +-
 include/xen/interface/hvm/hvm_op.h              |  20 +-
 include/xen/interface/hvm/hvm_vcpu.h            |  19 +-
 include/xen/interface/hvm/params.h              |  20 +-
 include/xen/interface/hvm/start_info.h          |  19 +-
 include/xen/interface/io/9pfs.h                 |  19 +-
 include/xen/interface/io/blkif.h                |   2 +-
 include/xen/interface/io/console.h              |   2 +-
 include/xen/interface/io/displif.h              |  19 +-
 include/xen/interface/io/fbif.h                 |  19 +-
 include/xen/interface/io/kbdif.h                |  19 +-
 include/xen/interface/io/netif.h                |  19 +-
 include/xen/interface/io/pciif.h                |  19 +-
 include/xen/interface/io/protocols.h            |   2 +-
 include/xen/interface/io/pvcalls.h              |   2 +
 include/xen/interface/io/ring.h                 |  19 +-
 include/xen/interface/io/sndif.h                |  19 +-
 include/xen/interface/io/vscsiif.h              |  19 +-
 include/xen/interface/io/xenbus.h               |   2 +-
 include/xen/interface/io/xs_wire.h              |   2 +-
 include/xen/interface/memory.h                  |   2 +-
 include/xen/interface/nmi.h                     |   2 +-
 include/xen/interface/physdev.h                 |  20 +-
 include/xen/interface/platform.h                |  19 +-
 include/xen/interface/sched.h                   |  19 +-
 include/xen/interface/vcpu.h                    |  19 +-
 include/xen/interface/version.h                 |   2 +-
 include/xen/interface/xen-mca.h                 |   1 +
 include/xen/interface/xen.h                     |  19 +-
 include/xen/interface/xenpmu.h                  |   2 +-
 include/xen/pci.h                               |  28 +++
 include/xen/xen.h                               |   6 -
 72 files changed, 496 insertions(+), 968 deletions(-)

Arnd Bergmann (1):
      xen/balloon: fix unused-variable warning

Christophe JAILLET (1):
      xen/pvcalls-back: Remove redundant 'flush_workqueue()' calls

Jan Beulich (6):
      xen/x86: streamline set_pte_mfn()
      xen/x86: restore (fix) xen_set_pte_init() behavior
      xen/x86: adjust xen_set_fixmap()
      xen/x86: adjust handling of the L3 user vsyscall special page table
      xen/x86: there's no highmem anymore in PV mode
      xen/x86: restrict PV Dom0 identity mapping

Jiasheng Jiang (1):
      xen: Fix implicit type conversion

Juergen Gross (10):
      xen: fix wrong SPDX headers of Xen related headers
      x86/pvh: add prototype for xen_pvh_init()
      x86/xen: remove xen_have_vcpu_info_placement flag
      x86/xen: switch initial pvops IRQ functions to dummy ones
      x86/xen: remove 32-bit pv leftovers
      xen: allow pv-only hypercalls only with CONFIG_XEN_PV
      xen: remove highmem remnants
      x86/xen: remove 32-bit awareness from startup_xen
      xen/balloon: add late_initcall_sync() for initial ballooning done
      xen/balloon: rename alloc/free_xenballooned_pages

Oleksandr Andrushchenko (1):
      xen-pciback: allow compiling on other archs than x86

Thomas Gleixner (1):
      x86/xen: Remove redundant irq_enter/exit() invocations

YueHaibing (1):
      xen-pciback: Fix return in pm_ctrl_init()


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:32:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:32:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223955.386939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSAS-0003Dt-VF; Tue, 09 Nov 2021 14:32:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223955.386939; Tue, 09 Nov 2021 14:32:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSAS-0003Dm-RB; Tue, 09 Nov 2021 14:32:08 +0000
Received: by outflank-mailman (input) for mailman id 223955;
 Tue, 09 Nov 2021 14:32:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=azzv=P4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mkSAR-0003DQ-Cy
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:32:07 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cead20a5-4169-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 15:32:05 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cead20a5-4169-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636468325;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=3/x9jDsJ9aNuoTpX59EgydBmzEdAnL5c5kP746/OQsg=;
  b=CQhXKRiBrbLEQbIzyeBCpdNxEa1zz+H0rnALC7g2PK8mWlyLLigA29SE
   R0AiT5/tatSiFuI+G3kPbxu1e4mb9GPsF+tx0OVs+IT2MkAV6Z0InQZUu
   riqmsW1AoGnvvBVgOoiY6CkeZlgxTxBApYnSffwzI+VB0SU4LDMF+g8uC
   M=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: JS9+DaHULhsHjXnbk0Y3liHO66afTLAPjsFFALDbRKlWEn3nWyTYyup2exOIkeAfgYJ8q7h63k
 viwTPz2kh4rc5X/vGWh01QK4ZpwZfMgCWZIby5Cc20KkKgwG4f4mdj1suRNTRL+/PbdSLnsZff
 xFyfZhq/wh3weDAMVWLNz1v7KoGyYDy+IfYvEtPbiXaLJZ2sf9moNW1YoBrUKEVT3uH6SL7Jwc
 KSKGd1ZWDENQvvOgVDQAv87OIsZso+ucZ+PEtAwIbsnNlMm7hRM902exAjNSLrVhHC3z/omC4C
 ncc7bSCfi3eDoJSD6wvIv0Up
X-SBRS: 5.1
X-MesageID: 57432443
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:zpJOo69snhBnROitvnyTDrUDwniTJUtcMsCJ2f8bNWPcYEJGY0x3y
 DEcWGvUPKqLYGrzKYx0YIri9kkBvJSHz9NqHQJkryE8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdh09Yy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhg2
 chTvseLETsQZKnPif0ZbAdfAQdhaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguw5K8bmJsUHs2xIxjDFF/c2B5vERs0m4PcFg2tr3JwSRp4yY
 eJDMzVNZUn5SCRVI3kdWahnmea2jVbWJmgwRFW9+vNsvjm7IBZK+LjqNtXEat2DbcxQl1Sfo
 CTN+GGRKg4eHMySz3yC6H3Eru7QnwvrVYQKDrq6+/V2xlqJyQQ7CQYfVFi6p7y1j0+iQcN3O
 kUS9ic+67IvnGSpRNTgWxyzoFafowURHdFXFoUS+AyLj6bZ/QudLmwFVSJaLswrstcsQj4n3
 UPPmMnmbRR0q6GcQ3+Z8raSrBuxNDITIGtEYjULJSMH/t3irYcbnh/JCNF5H8aIYsbdQG+qh
 WrQ9W5n2utV3ZVjO7iHEU7vkiOxuJOSdVYJ31/TXXO86jxnY5yDeNn9gbTE1spoIIGcR1iHm
 XELncmC8ewDZa2weDyxrPYlR+/wuavcWNHIqRs2RsR6qWzxk5K2VdkIuGkWGat/DioTldYFi
 mf3sBgZ2pJcNWDCgURfM9PoUJRCIUQN+L3YuhHogjhmPscZmOyvpngGiausM4bFyhVEfUYXY
 8bzTCpUJSxGYZmLNRLvLwvn7Zclxzol2UTYTo3hwhKs3NK2PSDOF+xUbgrVNb5jtctoRTk5F
 f4FaqNmLD0FAYXDjtT/q9ZPfTjm01BiXfgaVPC7hsbce1E7SQnN+tfawK87epwNokimvrygw
 51JYWcBkACXrSSecW2iMyk/AJuyDccXhS9qZkQEYAf3s0XPlK7ytc/zgbNsJuJ5nAGipNYpJ
 8Q4lzKoXq4SF2+ZomtFNvEQbuVKLXyWuO5HBAL8CBAXdJ98XQ3ZvNjiewrk7i4VCSSr88A5p
 tWdOsnzG8trq91KAJmEZfSx4Um2uHRByut+U1GReotYeVn28ZgsICv016dlL8YJIBTF5z2by
 wfJXktI+biT+9c4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKxQ4Ys4d1H7tx47g54t/j++1Twgh+RS2ZZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQdIdgQ/b+mF2fUFoRXo7Kw4cBfg+St63LubSkEObROCvzNQceluO4Q/z
 OZ/5MNPs16jigAnO8qthzxP8zjeNWQJVqgqu81IAILvjQZ3mFhObYaFV33z6ZCLLd5NLlMrM
 nmfg6+b3+ZQwU/LcnwSE3nR3LUC2cRS6U4SlFJSdU6Untflh+Ms2EwD+Ds6eQ1Z0xFb3r8hI
 WNsLUB0ef2D8joAaBKvhIxw99Wt3CGkx3E=
IronPort-HdrOrdr: A9a23:g/qQ3a/Girp7L8ha2rFuk+E2db1zdoMgy1knxilNoENuHfBwxv
 rDoB1E73LJYVYqOU3Jmbi7Sc29qBTnhORICOgqTMyftWzd1ldAQ7sSi7cKrweQeREWldQtqp
 uIEZIOceEYZGIS5a2RgHjaYqgdKbG8gdyVbIzlvhBQpG9RGsRdB1ATMHfnLqQ6fngPObMJUL
 6nouZXrTupfnoaKuy9G3k+RuDG4/nGjojvbxIqDwMurFDmt0Lj1JfKVzyjmjsOWTJGxrkvtU
 DDjgzC/62m99W20AXV2WP/54lf3PHh1txALsqRjdV9EESmti+YIKBaH5GStjE8p++irH4sjd
 n3uh8le/9+7nvAF1vF1ifF6k3F6nID+nXiwViXjT/IusriXg83DMJHmMZwbgbZw1BIhqAy7I
 t7m0ai87ZHBxLJmyrwo/LSUQtxq0ayqX0+1cYOkn1kV5cEYrM5l/1SwKpsKuZAIMvG0vFmLA
 E3Z/usp8q+MGnqIkwxh1MfjuBFBR8Ib1W7qktrgL3g79EZpgE986Ii/r1uop43zuNJd3B13Z
 W0Dk1WrsA8ciZvV9MEOA4ge7rANoWfe2OEDIqtSW6XZp3vfUi976LK3A==
X-IronPort-AV: E=Sophos;i="5.87,220,1631592000"; 
   d="scan'208";a="57432443"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eFg/H4YTR7UarFJxBylOyT6Z7tdcKLnE8QhP41Vei9IQCHKU2BmfRzT6EC86XgpuDUFidNusGhFcIVzr4NI9JJNG/glBiC1sXh7thZQsTNX2jhjjFTpr2cB66N1B925gMTI+N4Vxa06v4sEk/7PfoojcmKSVVAQQo/Gk8yPcp3Q7pVSWcJUFaVs9a8wXwQZw400+Vf5GUl/mlPca7y/O6AJHq5qEZa0ZvRjCwSUTXbK4s/lMb/KW4THbUm9l/jgOVQr6jsMiIpKXENpEeEesVetyxsJ8VGmMUZDseehssMJcV89y/64ddaxXEziPLr9Sb2D1+wNAwTKMV1NWCKFPuw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jfC9vjk9K/lIHQ9hlUGd7z2iP1+Aa/BXgsV9obQgD7M=;
 b=ZHeD53GonWRHrs2+grgEh5CeDlAf7cz97KQMaYsUhjFS0s9jzVstoWQySVoW1Aaa8GWNvV72WdXyrRRL9mzSWfDT39AkkUog4xmOYJGwv2dNxlMJ9jupmTwAF/hNYpGAGRemyN+tHd9x8t5fgZfC1fnqYGTmAEPpE1lX+caJxHY3SHN0N3arGu6AfD/shlyTl5xHQETQxS86Z+eSHQQz7OuE7YtM0RfRkIPtx2z2HNz8W8CJFmgQ4BjOsR/pmFWfzFvC99voSzWs0r2CzZvxjV4E9wsONYkit662ybV5HOCyzDQDfyjT1Cknn60U1yhlwBpVyw+6kggBRLp7bUCHIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jfC9vjk9K/lIHQ9hlUGd7z2iP1+Aa/BXgsV9obQgD7M=;
 b=PzeCsvgkxIDQ1L97ZHYq3CLW5w/QBaT3oMauL7aRSCDr4sgF9Evq0KQwFzDeV1+HqQu8yuI8W/g0EaxHVRqtTSKxSHYqNhYtBV93w/ZxtbV60gTdiJ9RAqwyepX1R0fBJk1U8stUdg0k5Lg7694N1csPFLmrchsI2JJbQMX1kKQ=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Hongyan Xia
	<hongyxia@amazon.com>, Dmitry Isaikin <isaikin-dmitry@yandex.ru>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH for-4.16] Revert "domctl: improve locking during domain destruction"
Date: Tue,  9 Nov 2021 15:31:28 +0100
Message-ID: <20211109143128.56089-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MRXP264CA0029.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::17) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f4f50f60-6115-4a75-2a4b-08d9a38daa13
X-MS-TrafficTypeDiagnostic: DM5PR03MB3068:
X-Microsoft-Antispam-PRVS: <DM5PR03MB306812CAB684826D05F5BDDC8F929@DM5PR03MB3068.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:773;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: JgONOUGFnyZtj3rW7vAjpBvZCqa2UEy2Yg3OOlprfQydHyGBLPpea4ID//FwavumPvtt1YwOWQlAuq2qLWIqyKDRUqh9+daICLjKkWuJtZ9MNNmPiD1KnAy6kRAO+HfurSA22oPA8mXIbrDN2hFnJTyfuN4YwgjnbIcejC80sRP0jr+pi9jAJFVpFTKrjotXGZqwLPT9XerchFyD8oBVgflrXQZl54d4VlL0Hg3RYez5g/9qevZu4bc0KUKkTLP5kyYbzzOgcilSiCVV4UXY6kouGGLbuHqy3/WKkAPiwVbTR37W/2fc7lsNKvdA2W/+o8opwjqJThNe58t3HsxRbUXwKjaZDm74CAuSADYQUI+8EswRMXwwmkW8JOoFmKGVbxSxy414y2bZhbrisJI42kP288KjfTNBP1TWyQSf4o6ET50w96oOwK/UEkLMuZjO002TIRtplgPqNI+DzKZvYtrAyEbQcVhQdOTvN0behFu8i2pN1GNfSJdmZg0KNJRTRETrImmlxFj+RAmMJtuG55XPjiqRKnGT7PVm2xInIiEJ3pHsGCBxDOPjXMY1NubXMzYnmm8xOvXrfoUKS4IYA9KHjGbXTprD2sr3i1FjPQ2wbg3uOnMFiFZkTaTC1Y7t1Z2xdt7ODcQkoW+JjoN1KF+Y9mhqXE1eJuiYEXX0vmhEb2IJ5aYevhs2071v7oEeNdgFodFEFpiHuUTiVi66Rg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(186003)(36756003)(66946007)(4326008)(82960400001)(26005)(1076003)(8676002)(38100700002)(8936002)(316002)(6496006)(83380400001)(86362001)(6666004)(66556008)(6486002)(66476007)(2906002)(54906003)(5660300002)(6916009)(2616005)(508600001)(956004)(23180200003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cjlNem4xSFNvZGJwdkJUZ0N3L216b05OY25FdVdTdGVUM1lycWwzanpndWtF?=
 =?utf-8?B?N0NFT1hnYWR1bEo3YkRObUVRWlB1aWt6bGlqYk9DczYrbjRKZ3pSNHBsQmt1?=
 =?utf-8?B?UmkwUGFTdURDb0hCTlRvTkErOVJNUXgxWjRSWG01REk1NHdZdmd1MkRkZGxQ?=
 =?utf-8?B?VEJUUTY5bndWV0t4TU9JUThEaWtnSUpFa2tiOUxGZGlJbVVHbm1Wa1gzZDdM?=
 =?utf-8?B?UTJaSURrZU5XSGdDRVlmdTVQRmVhNWtkSVpybTZCbmV3cW9jRVNBbktJcG9Y?=
 =?utf-8?B?N081WlFzMWtQSW5xa3JkTXlpam9SdXJ0WTNaVEM1OFNoNVFNVkViWFViWm5M?=
 =?utf-8?B?MDRaWlRhOFpZRjgvbmYwc2x1MEJEM3BJb2g1bkpEaVRpYzBhVU9RN1RyZmR5?=
 =?utf-8?B?RkdrMW4wUk1GZFd5QWF6TGRPQXQ0NHN5VXlMN3FJMW1QTGVRcWljVTFRTk5E?=
 =?utf-8?B?R0NzY0hHOXFqc0s3Z0hQTHk5NkNjdU5kTVFXdWtLQ3lGa1lLNUJURDY0U2Mz?=
 =?utf-8?B?TWZMRC9SR1VNOEZIS0o2NVp0RWtIdXVybkNmZ2ZweHlaWXR1YTZGRlhBOVpX?=
 =?utf-8?B?N1NXNitDemxrbU5MbUpvZGQyMkZDU0ZaZGNBbjJiWWl3UDJTdDZPZXB3MWFy?=
 =?utf-8?B?VWdUOG1oYWJSanBLc1NFS1E5ejAvQmtTY1dFb21hTWMwaVRSNk95VlVpYlJq?=
 =?utf-8?B?aVVjNXpHVndXK0xkS0dlUHp6QUdNaWhaMFNCcXVXenRiekQ2dGQycGJIR0pK?=
 =?utf-8?B?ZGR6M0RONHZkdS9CU0RpRi9nM3pieWsyTmxuVjhjZUZaVUJCQ1QvSEE0Mm4r?=
 =?utf-8?B?VkllYXZTUC9DbkRaRVU4cFhERTFnNXNSVEIrSzFXZmY3Qm9VeDNQcWl6Titi?=
 =?utf-8?B?Z2JQK1dFdkMzMXc5TjRncE9NME8rSFdCb2xHa2pNUk5MUUpwV2ZML1RnTCsy?=
 =?utf-8?B?YldFU0JCRS9GWE1xZ2h4Q0RWMWpSdlBqdEp1eUhwVDF5UDdVdGFnVVV2OVRU?=
 =?utf-8?B?MHVMMEliTlBhRkVjQ0lSSkZSajlKYXh3ejNoNDVncktyTnd3bjdQTHRUZEkz?=
 =?utf-8?B?MlVCOGh0L0w0QnZES0l6NmFOM0ZZS0VCcGN0ajFUR2ZmemF5MTg0TE51aUZL?=
 =?utf-8?B?OEdVUm95WXFCV2pXOVd1REdLbG1USUoyTHlHU0lEcTdaL0lPb0k3S0FMWUts?=
 =?utf-8?B?d3I1b3lrajRUcEtLSUE5ckVyQXJ5dWwrakYyYTNybE04TmRiZ1VDeVNvcmRI?=
 =?utf-8?B?Y2pFd3dJSVdndy9vZzdFaFN3RER0dkZVelBNZ3J4QWlYQklkdTFCbFc4VGp0?=
 =?utf-8?B?RTdnZDl6Y3lDclB0NUc2aVZhNVBsaFAvemh2THdyemc5K3hicThqVUxYTThq?=
 =?utf-8?B?bFNaOGFhbVVWT1I4Zmd4VDF6SHdvbnJlSThaUjNLSmIvS21CMWdUUllCM21I?=
 =?utf-8?B?dk9veXVBUjRQWG9GU3NSaUE2RVR0VWdOYzJVSS92NnVxVTROcUVPMWN6allL?=
 =?utf-8?B?cmFXMWo5VlV1RFVqS2xiUW1aQjhEYU9UdkUyZGRSV25sbTM5dDVUZnVGOW1G?=
 =?utf-8?B?MXNmcW8vK2cxTTdoYmpKSmFZUUo3RHRZeEdvMTloTmQ3SStFempxSWZsbU9m?=
 =?utf-8?B?ZGlDbWczR3cyK1dXampTdmpLalQyYllVZk5zOVZFdXBuOUhZTi9ybWJUVlpa?=
 =?utf-8?B?RXlUbEZTNjFKZ3p5b3BlRzduYkNwRXZuZ1IydmFJS3U0LzBKMG5UTmZUVHhR?=
 =?utf-8?B?TjhoMTJwaGRvbzVxdlBsc213dlJhRHphZ25nNEJtWDE1aDNhT2ZvR0JkNHhT?=
 =?utf-8?B?OUtabVU4QmUwV1plV0o3Zm1hSEVTQlVYV3R6YmxMZHE5YXlkUHhuUlY3TlJv?=
 =?utf-8?B?VG5GY244QVdhWmY0YnBZb0NYVndLRnJDUWxCYmZXbUlCZ1pXanZsTXdoWVdk?=
 =?utf-8?B?OHdQRVEyaVpsbjdNOWhYdVpKdnBEYTZMZGp4dGFWLzVYdGRCYnFuWWs2OUZE?=
 =?utf-8?B?SXBCL3ZZSXErUndEY3hveEloMTFMcEoxTHFxU2gzTFhiL2dHQ3d1QVd2Mzlx?=
 =?utf-8?B?c1R6UDlROUtGQVJkN0ozZTZKT1RBVlJQMElNMlVaLzZPWGsvYnRpS3BVWEk5?=
 =?utf-8?B?M3B3SUI5NytMQmIwa0p2RUM4ZHU0eTFUdzNmOEJLZ0VZTDd5NUkzT2g1ZmZq?=
 =?utf-8?Q?XyMxKIVUvtOLz3Phv2c4d0c=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: f4f50f60-6115-4a75-2a4b-08d9a38daa13
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 14:31:48.9959
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: q6In1TbE3eIfTHbfi4C101j6X+aydf/FNImd17iuGm/742wRmzQhCqBk8h09RFQ20mWomFu8mTDq5ED0slC2Kw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3068
X-OriginatorOrg: citrix.com

This reverts commit 228ab9992ffb1d8f9d2475f2581e68b2913acb88.

Performance analysis has shown that dropping the domctl lock during
domain destruction greatly increases the contention in the heap_lock,
thus making parallel destruction of domains slower.

The following lockperf data shows the difference between the current
code and the reverted one:

lock:  3342357(2.268295505s), block:  3263853(18.556650797s)
lock:  2788704(0.362311723s), block:   222681( 0.091152276s)

Given the current point in the release, revert the commit and
reinstate holding the domctl lock during domain destruction. Further
work should be done in order to re-add more fine grained locking to
the domain destruction path once a proper solution to avoid the
heap_lock contention is found.

Reported-by: Hongyan Xia <hongyxia@amazon.com>
Reported-by: Dmitry Isaikin <isaikin-dmitry@yandex.ru>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

Since this is a revert and not new code I think the risk is lower.
There's however some risk, as the original commit was from 2017, and
hence the surrounding code has changed a bit. It's also a possibility
that some other parts of the domain destruction code now rely on this
more fine grained locking. Local tests however haven't shown issues.
---
 xen/common/domain.c | 12 ++----------
 xen/common/domctl.c |  5 +----
 2 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 56d47dd664..093bb4403f 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -917,21 +917,13 @@ int domain_kill(struct domain *d)
     if ( d == current->domain )
         return -EINVAL;
 
-    /* Protected by d->domain_lock. */
+    /* Protected by domctl_lock. */
     switch ( d->is_dying )
     {
     case DOMDYING_alive:
-        domain_unlock(d);
         domain_pause(d);
-        domain_lock(d);
-        /*
-         * With the domain lock dropped, d->is_dying may have changed. Call
-         * ourselves recursively if so, which is safe as then we won't come
-         * back here.
-         */
-        if ( d->is_dying != DOMDYING_alive )
-            return domain_kill(d);
         d->is_dying = DOMDYING_dying;
+        spin_barrier(&d->domain_lock);
         argo_destroy(d);
         vnuma_destroy(d->vnuma);
         domain_set_outstanding_pages(d, 0);
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 271862ae58..879a2adcbe 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -497,14 +497,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
         break;
 
     case XEN_DOMCTL_destroydomain:
-        domctl_lock_release();
-        domain_lock(d);
         ret = domain_kill(d);
-        domain_unlock(d);
         if ( ret == -ERESTART )
             ret = hypercall_create_continuation(
                 __HYPERVISOR_domctl, "h", u_domctl);
-        goto domctl_out_unlock_domonly;
+        break;
 
     case XEN_DOMCTL_setnodeaffinity:
     {
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:34:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:34:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223961.386950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSCW-0003sU-Dp; Tue, 09 Nov 2021 14:34:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223961.386950; Tue, 09 Nov 2021 14:34:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSCW-0003sN-Ap; Tue, 09 Nov 2021 14:34:16 +0000
Received: by outflank-mailman (input) for mailman id 223961;
 Tue, 09 Nov 2021 14:34:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j4nh=P4=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mkSCV-0003sH-BC
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:34:15 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b46b8b6-416a-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 15:34:14 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:45654)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mkSCK-000aIK-hd (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 09 Nov 2021 14:34:04 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 3D66E1FCD3;
 Tue,  9 Nov 2021 14:34:04 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b46b8b6-416a-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH for-4.16] Revert "domctl: improve locking during domain
 destruction"
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, Hongyan Xia <hongyxia@amazon.com>,
 Dmitry Isaikin <isaikin-dmitry@yandex.ru>, Ian Jackson <iwj@xenproject.org>
References: <20211109143128.56089-1-roger.pau@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <fc7465a7-6942-12ae-c3c1-0773c36c32f6@srcf.net>
Date: Tue, 9 Nov 2021 14:34:03 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211109143128.56089-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 09/11/2021 14:31, Roger Pau Monne wrote:
> This reverts commit 228ab9992ffb1d8f9d2475f2581e68b2913acb88.
>
> Performance analysis has shown that dropping the domctl lock during
> domain destruction greatly increases the contention in the heap_lock,
> thus making parallel destruction of domains slower.
>
> The following lockperf data shows the difference between the current
> code and the reverted one:
>
> lock:  3342357(2.268295505s), block:  3263853(18.556650797s)
> lock:  2788704(0.362311723s), block:   222681( 0.091152276s)
>
> Given the current point in the release, revert the commit and
> reinstate holding the domctl lock during domain destruction. Further
> work should be done in order to re-add more fine grained locking to
> the domain destruction path once a proper solution to avoid the
> heap_lock contention is found.
>
> Reported-by: Hongyan Xia <hongyxia@amazon.com>
> Reported-by: Dmitry Isaikin <isaikin-dmitry@yandex.ru>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:43:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:43:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223967.386961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSL1-0005Jq-Ax; Tue, 09 Nov 2021 14:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223967.386961; Tue, 09 Nov 2021 14:43:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSL1-0005Jj-6l; Tue, 09 Nov 2021 14:43:03 +0000
Received: by outflank-mailman (input) for mailman id 223967;
 Tue, 09 Nov 2021 14:43:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mkSL0-0005Jd-0N
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:43:02 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkSKz-0000lh-1f; Tue, 09 Nov 2021 14:43:01 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=[192.168.22.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkSKy-0004LH-R6; Tue, 09 Nov 2021 14:43:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=6FZmRv9aAgNBy9HKxGjvY98NJK91UZI6MMdHdzpmLek=; b=nRGSXsPs7NIam2dkhbTgQMMQhJ
	yZzW6Xzzm6B/ycB2xTqlj5LmdHJuqQzHyFJdmNm0oEIkFv1FT6ZZrMqm2KYFYLmKF2K0O3rWN5gGj
	ixgEjTHTCSUpjQEhU+oVXNqQy6N9l27d3gq4E+NLNynP4Ov6UbXXl1hMcOoEmfE7YwU4=;
Message-ID: <a708312d-ab1b-4784-b1fe-01dbb680e7e9@xen.org>
Date: Tue, 9 Nov 2021 14:42:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] Revert "domctl: improve locking during domain
 destruction"
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Hongyan Xia <hongyxia@amazon.com>, Dmitry Isaikin
 <isaikin-dmitry@yandex.ru>, Ian Jackson <iwj@xenproject.org>
References: <20211109143128.56089-1-roger.pau@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211109143128.56089-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Roger,

On 09/11/2021 14:31, Roger Pau Monne wrote:
> This reverts commit 228ab9992ffb1d8f9d2475f2581e68b2913acb88.
> 
> Performance analysis has shown that dropping the domctl lock during
> domain destruction greatly increases the contention in the heap_lock,
> thus making parallel destruction of domains slower.
> 
> The following lockperf data shows the difference between the current
> code and the reverted one:
> 
> lock:  3342357(2.268295505s), block:  3263853(18.556650797s)
> lock:  2788704(0.362311723s), block:   222681( 0.091152276s)

Thanks for the numbers, this is already an improvement from the reverted.

Can you also please provide some details on the setup that was used to 
get the number? (e.g. how many guests, amount of memory...).

For instance, in the case of Amazon our setup was:

On a 144-core server with 4TiB of memory, destroying 32 guests (each
with 4 vcpus and 122GiB memory) simultaneously takes:

before the revert: 29 minutes
after the revert: 6 minutes

> 
> Given the current point in the release, revert the commit and
> reinstate holding the domctl lock during domain destruction. Further
> work should be done in order to re-add more fine grained locking to
> the domain destruction path once a proper solution to avoid the
> heap_lock contention is found.
> 
> Reported-by: Hongyan Xia <hongyxia@amazon.com>
> Reported-by: Dmitry Isaikin <isaikin-dmitry@yandex.ru>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Cc: Ian Jackson <iwj@xenproject.org>
> 
> Since this is a revert and not new code I think the risk is lower.
> There's however some risk, as the original commit was from 2017, and
> hence the surrounding code has changed a bit. It's also a possibility
> that some other parts of the domain destruction code now rely on this
> more fine grained locking. Local tests however haven't shown issues.
> ---
>   xen/common/domain.c | 12 ++----------
>   xen/common/domctl.c |  5 +----
>   2 files changed, 3 insertions(+), 14 deletions(-)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 56d47dd664..093bb4403f 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -917,21 +917,13 @@ int domain_kill(struct domain *d)
>       if ( d == current->domain )
>           return -EINVAL;
>   
> -    /* Protected by d->domain_lock. */
> +    /* Protected by domctl_lock. */
>       switch ( d->is_dying )
>       {
>       case DOMDYING_alive:
> -        domain_unlock(d);
>           domain_pause(d);
> -        domain_lock(d);
> -        /*
> -         * With the domain lock dropped, d->is_dying may have changed. Call
> -         * ourselves recursively if so, which is safe as then we won't come
> -         * back here.
> -         */
> -        if ( d->is_dying != DOMDYING_alive )
> -            return domain_kill(d);
>           d->is_dying = DOMDYING_dying;
> +        spin_barrier(&d->domain_lock);
>           argo_destroy(d);
>           vnuma_destroy(d->vnuma);
>           domain_set_outstanding_pages(d, 0);
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index 271862ae58..879a2adcbe 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -497,14 +497,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>           break;
>   
>       case XEN_DOMCTL_destroydomain:
> -        domctl_lock_release();
> -        domain_lock(d);
>           ret = domain_kill(d);
> -        domain_unlock(d);
>           if ( ret == -ERESTART )
>               ret = hypercall_create_continuation(
>                   __HYPERVISOR_domctl, "h", u_domctl);
> -        goto domctl_out_unlock_domonly;
> +        break;
>   
>       case XEN_DOMCTL_setnodeaffinity:
>       {
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:53:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:53:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223975.386971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSV7-0006m4-9x; Tue, 09 Nov 2021 14:53:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223975.386971; Tue, 09 Nov 2021 14:53:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSV7-0006lx-6o; Tue, 09 Nov 2021 14:53:29 +0000
Received: by outflank-mailman (input) for mailman id 223975;
 Tue, 09 Nov 2021 14:53:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qIDY=P4=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mkSV4-0006lo-Tf
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:53:27 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca5c7402-416c-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 15:53:25 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca5c7402-416c-11ec-a9d2-d9f7a1cc8784
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1636469604;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=ian5WC377Q5J1422EbugqDjUg/d1iF+4GVOSXbtW1CU=;
	b=S0B47+AyYzHjgDycjapB4jUsuSQ0WhoRfZvITzrkGuizXefOT+wd9cAU5qdWN1zEw4ix9Y
	uGXBel0gE53jodICP+wZoO+q+SrYEDvHe4iqrq4hEKOjQiQQBYV5UBVOdtiqTRONe3ejAJ
	k7Xb1R/1HV9KhBC4FiWdcAePziEmuzArHt5YMu6FDN7ablVcDN+0SoK1ludZdX/5r4Y0cK
	1MdSneRQ3oKuWhcM0AibpvQWsCbro+ucTHqMzJ5MavHDBiUMJqbUhIgpPFW56HpxiPl+0/
	4d+lHMPi4uYThCr602JP5QwSONLAT7qvgHxBuNteIbl5AmBnH3WYtcCYe2F4MA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1636469604;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=ian5WC377Q5J1422EbugqDjUg/d1iF+4GVOSXbtW1CU=;
	b=/mEresaFf1XyR7ByvtZXr21ZVKsmrxmOn1cj/DgnGshHlFf5urVL984K7Wz8zoHcUTn3qq
	pdi8sCHw5rUi7pAQ==
To: Josef Johansson <josef@oderland.se>
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org, jgross@suse.com,
 linux-pci@vger.kernel.org, maz@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jandryuk@gmail.com>, David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH v2] PCI/MSI: Move non-mask check back into low level
 accessors
In-Reply-To: <87h7cs6cri.ffs@tglx>
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se> <87k0ho6ctu.ffs@tglx>
 <87h7cs6cri.ffs@tglx>
Date: Tue, 09 Nov 2021 15:53:23 +0100
Message-ID: <87pmr92xek.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Thu, Nov 04 2021 at 00:27, Thomas Gleixner wrote:
>  
> -		if (!entry->msi_attrib.is_virtual) {
> +		if (!entry->msi_attrib.can_mask) {

Groan. I'm a moron. This obviously needs to be

		if (entry->msi_attrib.can_mask) {

>  			addr = pci_msix_desc_addr(entry);
>  			entry->msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
>  		}


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:55:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223980.386983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSXI-0007Mo-NH; Tue, 09 Nov 2021 14:55:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223980.386983; Tue, 09 Nov 2021 14:55:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSXI-0007Mh-K9; Tue, 09 Nov 2021 14:55:44 +0000
Received: by outflank-mailman (input) for mailman id 223980;
 Tue, 09 Nov 2021 14:55:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkSXH-0007Mb-Sh
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:55:43 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c768e4a-416d-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 15:55:42 +0100 (CET)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2055.outbound.protection.outlook.com [104.47.8.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-3-tljIE_roP1CLgFMIOjAI6w-1;
 Tue, 09 Nov 2021 15:55:41 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4384.eurprd04.prod.outlook.com (2603:10a6:803:6f::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov
 2021 14:55:40 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 14:55:40 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0006.eurprd04.prod.outlook.com (2603:10a6:20b:310::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend
 Transport; Tue, 9 Nov 2021 14:55:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c768e4a-416d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636469742;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=3Vp92BcD+baQjzrMH2w9/HfV7X8ManIWvTPqGE9K1aM=;
	b=VBO9vxsqOFw9PMhvI1Th75/4jSeZcrmVe5lmpdSHh+mgjjAFgzSCdHx2ZC0RAJ4fQ7SALC
	izQ0bd1durLKZ/wnIO85FRtInTLRGkgeBJyZ4pf6u0m8ZbSpnabz0hAruLGQ2Apix7lixF
	E8JqUEF9ScnwFwHoa+dDZA2ElvlCZbM=
X-MC-Unique: tljIE_roP1CLgFMIOjAI6w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ICsrGyA7x0mVGSjCo2dcPXAdcrFa/s0CLP79G/+yXwfSkOBjLCk45wLCy0rz+49snihOfYydoESu+jsqr0sjZjjtfwK7nET//Mu1CzBc7nUn+F2YhMnhXcp0T7IPmRTauumpGsOMEa9S/8QQX8cbWPW6ybXZ63KymTaoehxaqoNtae091BcXsz5F3PR96Gaw1W9cKGZLKn0aBC9pfRN/ZQtDR4gvY3LEl9/IPWEIvQJlVOSTbg7AP2AKnDTnpyuPAB0CiYL/WEEHHwhzD1TqwqzD9P6hyAvbonUizrKGpZrAS8eqNAxHPvMDDfAH4W0+0JzsGyEwGEiCXHK3zE6T+g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3Vp92BcD+baQjzrMH2w9/HfV7X8ManIWvTPqGE9K1aM=;
 b=UzlVCnQ5Xeke1ApSMEeAnYZl2a1pXeUQWz/ykxWEFM3GsotXRrO/SJWrdcH7lhiIeHcISZBqgguoCbFgLpLeOXCfA5QpC0kWHD/zNJkbAler0k7r03DcWFgwriCP0HQd8hniwDlAyEGeGd0TWhy+2qf3+JLIdKBTJ76AkY4p5ARjz9ZocqlXYnuQPuajOf0DODhf5x6Hw3rKcq1ntQVYPnydDCOAHaaNQPP6HD9ymBgeNWHFIWEYZH5rhE8YGtrMVkSbRGPjHwb7r6DFHvTFT62W54MEDACR0k+WWU3gdOX7MzLfJB2qmeJvJZX/uJtlBbX3jjCN6h4G3q1Tc0zcEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
Date: Tue, 9 Nov 2021 15:55:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>,
 Ian Jackson <ian.jackson@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/3][4.16?] VT-d: misc (regression) fixes
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0006.eurprd04.prod.outlook.com
 (2603:10a6:20b:310::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9d10931f-6cf8-436b-c5af-08d9a390ff3b
X-MS-TrafficTypeDiagnostic: VI1PR04MB4384:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43846019C7E13967A634A643B3929@VI1PR04MB4384.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6108;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Kh7W3hKh4NlJaFw+2iqc+118MHjVNOFYCzAIbJvm17nz/pqrveDrUg5pDsWD9rncA+8dikHzF/3In7WbJ1aRihJyZS9FEA32SDyrNDCmDUgOVB/SatKegmj4N8i5rNuAoyhyzC1LBT0Y1ZgVOyuyer6I7O7JGQnhKA84P8TusJ0yjz5XCvUekmtifwApvW1MmgbKkxrP7GFPkVFVNyndvxBCoUKppo7JLaMcMIAFwAZt+Ck70bPo1jjGjH8AalZ2/i2180tsYke3dnX8Tgu/IUdpySPqZ00cXgh9SVk4MbGZFOHHcJ/HAMubEM7NtjqNSLNk1A82ov+DUUXgyeZyo/OYX9xQoaNoT2wjcpFvDjq84yNma6LRwLPUJmK138iObsahxvFqTkIcrvV3zLnvhkm9WWEf9kBrZ+RzEBatZhG5ioe61Or3cBbVN7o2tH0p2q+44S9yYq9Avuay78wRlt+f+lCeYaid/xYFpMwhMNGP103pcU2F9FP+em1teNJF8dnjq3ovECx3V2f2f1xhIOAyqTyjLY/WukqCkoVVzKXe8jAedno3hVwrcaQFnvcBbrAgbZ05eDlMgtcg1H6FcckDHugpytn6eWw/lx7NYsBxHUoZUQ6lPAiXpDhiC3bp7/9jmluEf74hudc8YpbU6hn1qWv+F0+BLRxixXRJ+w8ifHc38iO3AfDjLASwbSyZSBgVtTE3ceTWJrIGzBbLN96an84LLIBz3r7D8GR4UKo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(66946007)(66476007)(36756003)(2616005)(2906002)(31696002)(316002)(66556008)(4744005)(956004)(86362001)(38100700002)(4326008)(54906003)(16576012)(26005)(6916009)(508600001)(31686004)(8676002)(8936002)(5660300002)(6486002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YnlqTy9ZYnFPZEdITDZzUGNud1ZpT2ppTklRUU5tZCt2SXZxNWplT0VDVE5G?=
 =?utf-8?B?anpKM0hUcC9ieU02Q2JuNXk5aUw4VXdwb0pXZUhhblc2WmJIRk5pTDd6TWg1?=
 =?utf-8?B?akxQZGsvOUFMamhLTkNTaHVzenA3VjRkY0QySE1PWHkrWEhIOWx0VUtQSExt?=
 =?utf-8?B?b1JJTTY1VTh1cEt3b1k5c0dyejI4VFJSdVRZVmJ3V2RmMXdFWEFSV0xpRDRk?=
 =?utf-8?B?VEkvaDdOS2Ntb1l6L3E5YW1vZ0pUMFVrVUlxNG5LbEhBMUhjUmNQTlp6TW1n?=
 =?utf-8?B?Z0JBOEpaa3NBV3crRGorcW5rTzFWZzZkeW5pZTJ4L0NvNTNvZDdzUW5SMnVN?=
 =?utf-8?B?SVlkTWU5SXVRbGlEa05mZmhWZVc2d0ZYdVhWYWtTMTdkZTl6dWVDVmxHMFVQ?=
 =?utf-8?B?RThqYXpwR2dNOC9WK3ZwYkRqMzJDQUVWRnBxRlRTR3NncFdsVUd6OUptK0hQ?=
 =?utf-8?B?WHFxb3VoSGd1OWt2TGw1VUE0azhlRDl3TW1QOEdMd1ZHWldPdzFtQk9qQXB4?=
 =?utf-8?B?MzRKclVPNCtNNHY4OTBDdnFuV2tRZSs2YnBKMjF1cFJrMGc2YWZZMGNHazJo?=
 =?utf-8?B?S1UwUjl0RjJ5SHE3WFN2YUc2RjRBZiswTENQQkcwdkdJZm5ybVd4QkYxUUdO?=
 =?utf-8?B?TittTXNXUkNNVmM5cHdTVUZXbExLRGxnZ2FTbHlUd0I1UVRxT3lYTU9xM0hN?=
 =?utf-8?B?NW1iMit1dDFJWjkzb1A3WnpUZ2VaSWpFRlR4a00xL2l4V2FWVGlMejlsQXFh?=
 =?utf-8?B?c2RNRkNVZnB4RzcrU1A0WTVvYkhwQ0Fta2RkOWFneWlvOTJuN3VobjBSVTNq?=
 =?utf-8?B?d0djVGVwMk5ueUtXcE5kUW9HQ3BzdEgwc2ZyeDgrcnpqRmRlWXJLK01aa0M2?=
 =?utf-8?B?YU9XOGgrMnYrUVVta1BRTjRIK1QyYUJSRFZyOVRQNm9UUlEvZUtRbXhQdDJY?=
 =?utf-8?B?Ny9hSEd5MlMyWmJkemcxN1BhdWIwK2MwZnZSTEYzZEk0MmNHbi84b1dzMnhC?=
 =?utf-8?B?WUNnUWQ3ZlJqREVmY0p0bjg4aHE1eWtoVFJsS0hLQitYZ1VkcUtBQWk2QjM4?=
 =?utf-8?B?NHJqbnlmSlQ0bktRMVd0cXRQVEpSNXNyRkJjUk1XcmQwYnRIWjdXL1RuSVFx?=
 =?utf-8?B?eG0yNml2K1lEamQwNFdtVjdGYWgxdmo1LzY3Q2pheER0WkU0QlhYMEJieVph?=
 =?utf-8?B?dHVXYWVSd1FYdHBjYnk3VmFwVGdBcStMeUZQS3pLc05hc2JKZUVzbGlkb3B1?=
 =?utf-8?B?RzEvdUFiZTVHbFNyWXlCTlYySFNRUEZGZmdWWkVOSXNIZUdhMVdZd1RlQmtJ?=
 =?utf-8?B?ZE41RWEyMHJFMUdwWHRrZU9lK0VsaXJFWXhKWWl2eHhsZ3dKTDg5MlNhdFJh?=
 =?utf-8?B?SkNzVFBYakVydDVhd2dhU1dVSDlYSzJJeEdQNldKTnhta2tkalNkWk1ZbWtW?=
 =?utf-8?B?T3k0b2s0MzhoMDI1WEZPeFJxWHpYWFdBUUVaUWE2Y2ZqeFF3ZmpNVXpSWHdm?=
 =?utf-8?B?WTMvcytsUVFkY0tQVDVyL3RONEpoWjVCQ2JvVTFaSVdmOGlBM3pNS0tScFVP?=
 =?utf-8?B?RElTcVBiZzVySzFWdHVmV3hRM0pYRzUxRkYva0orcDZUUGdHcGNkOUt6Tjl1?=
 =?utf-8?B?NW1wZHNscHZlTzJPcnFZQTlteVFqbWoxeGVMM0U2OEFoN2pIeFBBb1ZZVThn?=
 =?utf-8?B?aXVaaVhzd2RNUU5nZDJHNE1jYldWTHB0SU9TRXZhVmsyVkJpZmVtZHVXWFND?=
 =?utf-8?B?UkNYSllGYkl3b0RPVGo4MzRtZm9LTTc5am5KSjIxSlpESnhJSzBtZHE0U3VM?=
 =?utf-8?B?Q01SYXFuYjlQV1JmeTZsSGx3bzRMekg5UGZGcHc3UFg5RkRwd1dnYWdteGVw?=
 =?utf-8?B?azZ1bFlVNmU4bkNXM25BWm41QnlmMk1HZmNWKytuN2Z3QlgyTVhYTFkycVRZ?=
 =?utf-8?B?RHlKVCt4cmsyRXgrL1lzbzZ0OWFFZGZmUGg5cWpsbmwrUTVwZmlkRXlGWDlw?=
 =?utf-8?B?aE5DTjEzbW9VVytyY2ZDNVFyYkVDYml4azFZTVRZdEZIWWJ6bWtIa2hEQTYz?=
 =?utf-8?B?WDJFbDFIYU4zcUQ5ZWlXL0xWejFKdnlPc004YTBDWFowK1ZYWWpjUlUyRVFK?=
 =?utf-8?B?YjZsMVpQT092NVV3TnZhK2ZzVGUxUFNSSWJtcWVJR24xeVJDbC82bzR2Wklk?=
 =?utf-8?Q?o6zmyZEDMwIJ55Pr/Zqm9J8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d10931f-6cf8-436b-c5af-08d9a390ff3b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 14:55:40.4080
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: q55ayRWv0n9Z2q7DdUiye6Ng4efAe4tNU6amniPSJUFlHzhv7Mwj9g089EER5d09r+SYuxbc4HbYluwNaftlbw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4384

1: per-domain IOMMU bitmap needs to have dynamic size
2: fix reduced page table levels support when sharing tables
3: don't needlessly engage the untrusted-MSI workaround

As to 4.16 considerations: Only patch 1 addresses a regression
introduced after 4.15, the others are older. Patch 3 additionally
only addresses an inefficiency; the code we have is correct from
a functional pov.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:56:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:56:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223986.386993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSXu-0007uc-0Z; Tue, 09 Nov 2021 14:56:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223986.386993; Tue, 09 Nov 2021 14:56:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSXt-0007uV-Tx; Tue, 09 Nov 2021 14:56:21 +0000
Received: by outflank-mailman (input) for mailman id 223986;
 Tue, 09 Nov 2021 14:56:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=azzv=P4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mkSXs-0007Mb-8p
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:56:20 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3098dc28-416d-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 15:56:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3098dc28-416d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636469778;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=CuloeN+BGc9aIc2GS2Q7YtZowHm/cJyMusVDrYtC7XM=;
  b=KyWHIhqfSkUVV3LmRriSJ+5CDWgIdqpAcv36KsTerFxU4dUJnecce7M0
   zUgs46zzm3izuHJ9a8AGvYsqqxMLbOTTP7EL2cknR+U1/ZFIPzIHXrfJG
   MHIcMypCUvVwZTOpDXPgK42tnLI+KZs1J/xDCUIPCkaU2iD98S4xFns28
   Q=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: wWpyQVk1/zD3UvXHtmKpYZaGOHLilZJdGuFgdySBEaUgYl2D6WnGuKeeT0u1Z9VO5SkZcguRAy
 jgsNRoguXGFUfOHJqGSv+G1GebzmM+EgTK85OEtsh3Ny9vQIePt62BRkZklv16etv405M3s7Mu
 e3ED9qNiPYHmt4A9qmmUJ153b1l1IN6tPTvAOI7iZkRE7ZmYBQ8uPBgLmgW8iYGXYpq9KKAXax
 E7sbkOtkIHO9WSDkYe6YWw2/+LFjNYODe7fNSGdC0x/y79dYWuhlNj55FRgBKFTL8IZzFLudPw
 VOL/6lVOtheDN3R2itouut1M
X-SBRS: 5.1
X-MesageID: 56939809
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:PRPiL6+kHJ2Wlad85Se6DrUDwniTJUtcMsCJ2f8bNWPcYEJGY0x3z
 TYaXjzTb6neNDb9eI0kaI/g8UpVuMSEytFiTAtlrCo8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdh09Yy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhsl
 PRQjru6UD4oO4/BmPYgcgVJEh5haPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguw5K8bmJsUHs2xIxjDFF/c2B5vERs0m4PcFgmZr15AWTJ4yY
 eI7YDtIPSXeOCZlJ0osMoAVxNmKv3XgJmgwRFW9+vNsvjm7IBZK+LjqNtXEat2DbcxQl1Sfo
 CTN+GGRKg4eHMySz3yC6H3Eru7QnwvrVYQKDrq6+/V2xlqJyQQ7CQYfVFi6p7y1j0+iQcN3O
 kUS9ic+67IvnGS7Q9+4UxCmrXqsuh8HR8EWA+A88BuKyKff/0CeHGdsZjxcbN0rsucmSDps0
 UWG9/vyHiBmurCRTXOb95+XoCm0NCxTKnUNDQcGRwYY59jooKkokwnCCN1kFcaIYsbdQG+qh
 WrQ9W5n2utV3ZVjO7iHEU7vnm6Nu6PuRBcM5wD1U2K30yJldY+aeNn9gbTE1spoIIGcR1iHm
 XELncmC8ewDZa2weDyxrPYlR+/wuavcWNHIqRs2RsR6qWzxk5K2VdkIuGkWGat/DioTldYFi
 mf3sBgZ2pJcNWDCgURfM9PoUJRCIUQN+L3YuhHogjhmPscZmOyvpngGiausM4bFyhVEfUYXY
 8bzTCpUJSxGYZmLNRLvLwvn7Zclxzol2UTYTo3hwhKs3NK2PSDOF+xUbgrVNb5jtctoRTk5F
 f4FaqNmLD0FAYXDjtT/q9ZPfTjm01BiXfgaVPC7hsbce1E7SQnN+tfawK87epwNokimvrygw
 51JYWcBkACXrSSecW2iMyk/AJuyDccXhS9qZkQEYAf3s0XPlK7ytc/zgbNsJuJ5nAGipNYpJ
 8Q4lzKoXq4SF2+ZomtFNvEQbuVKLXyWuO5HBAL8CBAXdJ98XQ3ZvNjiewrk7i4VCSSr88A5p
 tWdOsnzGMNrq91KAJmEZfSx4Um2uHRByut+U1GReotYeVn28ZgsICv016dlL8YJIBTF5z2by
 wfJXktI+biT+9c4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKxQ4Ys4d1H7tx47g54t/j++1Twgh+RS2ZZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQdIdgQ/b+mF2fUFoRXo7Kw4cBfg+St63LubSkEObROCvzNQceluO4Q/z
 OZ/5MNPs16jigAnO8qthzxP8zjeNWQJVqgqu81IAILvjQZ3mFhObYaFV33z6ZCLLd5NLlMrM
 nmfg6+b3+ZQwU/LcnwSE3nR3LUC2cRS6U4SlFJSdU6Untflh+Ms2EwD+Ds6eQ1Z0xFb3r8hI
 WNsLUB0ef2D8joAaBKvhIxw99Wt3CGkx3E=
IronPort-HdrOrdr: A9a23:hvJ0mqNm/Fyd+sBcTyX155DYdb4zR+YMi2TDiHofdfUFSKClfp
 6V8cjztSWUtN4QMEtQ/uxoHJPwO080lKQFmrX5WI3NYOCIghrLEGgP1/qG/9SkIVyCygc/79
 YfT0EdMqyIMbESt6+Ti2PZYrVQseVvsprY/ds2p00dMj2CAJsQiTuRZDzrdnGfE2J9dOYE/d
 enl4F6jgvlXU5SQtWwB3EDUeSGj9rXlKj+aRpDIxI88gGBgR6h9ba/SnGjr1ojegIK5Y1n3X
 nOkgT/6Knmm/anyiXE32uWy5hNgtPuxvZKGcTJoMkILTfHjBquee1aKve/lQFwhNvqxEchkd
 HKrRtlF8Nv60nJdmXwmhfp0xmI6kdZ11bSjXujxVfzq83wQzw3T+Bbg5hCTxff4008+Plhza
 NixQuixtRqJCKFuB64y8nDVhlsmEbxi2Eli/Qvg3tWVpZbQKNNrLYY4FheHP47bW3HAbgcYa
 lT5fznlbVrmQvwVQGagoAv+q3hYp0LJGbGfqBY0fbllgS/nxhCvjwlLYIk7zM9HakGOup5Dt
 L/Q9BVfYF1P78rhJ1GdZU8qOuMeyXwqEH3QSqvyWqOLtBzB5uKke+x3IkI
X-IronPort-AV: E=Sophos;i="5.87,220,1631592000"; 
   d="scan'208";a="56939809"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NQq+Biw/vMX1SgW4V3SXEjbSY3KSts+ahBPBbkZLP6gEHIS503nr3766S+QEua545DgvC+3Px7Y254+kfO8AnDJTyDT3brJ/wl4gQgWvjUmugamdwiLhwIrjTv0M5BTOoz1uqPH2m3TrkqktI42uoIA9erDSLBHrVdL2CLYLpWYDquOpkMzOM8KqYx4LET4VNUfcLMhAGXitaTyVwvR9jn/BEZm5PuKeVmW+uI7VSj5RObn0v/2SigeRr9f6feaBfmvG6/JxXRRvXZqjHguI0SeGtd9+njIrCJHPEszmEOabGuSe4sfGpeTQmzc4Lm5Ztq6ZTLN2idjc7gR4dbgmLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ben75gENOsRDhFh1tv9hbc39jcxUKBgNIdQJ2Ajz1hE=;
 b=MH2d5Q136KN+9qbVCePPenypJuwnABW60yzZrGY11dWDXGE0MaJTsZKZcHiFIDy8jC3XGWfEjRjRtjxIYrhiDMUBePzNNAwuW7YxfWv+qWnJK3JwWbWJteN2BR6gCIkLIP3CgaKvkqdFDiUshDUBraFt5N2VSp4ajJr3GsgJWky1wqs44KMlnW67r3f+L21rFI5u5vQcjYqFHEm2PDrZlJqgTsChMcpAvnZEbiZVUqZ92JKxFFe9+eGcdw7yPnoA95y7d0WOVcnmt9jiod5UkzyzRhY4C67yKUOoVLm1pa3FCEunx3JsyAHVpIW89r8SxiEaLCo2NkcdZPconL8rlg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ben75gENOsRDhFh1tv9hbc39jcxUKBgNIdQJ2Ajz1hE=;
 b=LFMGb9A6yrTaMtm4cTAWA61wog3sg55APThYBsHsHZTzNtjCRu+aJT/PdvHSQk0SFB3Umtuy3DFJU9GwnBm67ke/bk8pT75T2a3XoEvX4kmZtTS5vw0EKLAI4EivhZ2GXAncKBo7ZykXmNDOJ23s2Vhsw7mL7F5vt/69iSg5Drc=
Date: Tue, 9 Nov 2021 15:55:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Julien Grall <julien@xen.org>
CC: <xen-devel@lists.xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Jan
 Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei
 Liu <wl@xen.org>, Hongyan Xia <hongyxia@amazon.com>, Dmitry Isaikin
	<isaikin-dmitry@yandex.ru>, Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH for-4.16] Revert "domctl: improve locking during domain
 destruction"
Message-ID: <YYqL9nViQiDw9C30@Air-de-Roger>
References: <20211109143128.56089-1-roger.pau@citrix.com>
 <a708312d-ab1b-4784-b1fe-01dbb680e7e9@xen.org>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <a708312d-ab1b-4784-b1fe-01dbb680e7e9@xen.org>
X-ClientProxiedBy: MR2P264CA0095.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::35) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bbb9a363-397a-49dc-30bf-08d9a39107de
X-MS-TrafficTypeDiagnostic: DM6PR03MB3835:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3835F6E6D7E340DDB593DF098F929@DM6PR03MB3835.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: KE+3m5DYEVabrNhvpsGeSwztCvVXl4Zkl79I9ki00euy/Wjt96Bu5MpV7uZvnvwgQp9dBCrd9rjVVdk79JQXPV/hVbS3c5O0Yh1Uw4nQiPFkNFHoWta+lbUxpR90e22/PxER9Pculi+JJxGNXIbT+J43iPxLCwp9lX/SAVvedN4HQyTw44BCbq5vc1sBFNJ0OEsbx7/QN0164u50fLpGMlula+mgRtI6VCAwo3t4qEc6X5JfmSgHJKOPbki/uTycylwCXEpSwEkRj9SdnQfDUPXL69xfvpMi/rMw+dCx1HLRwhvjjYaGp9Ruq3DK+P2rfpcxhVlPTBOwFR0n0XexsIs96fWoOOQuTtEcTm6wKkFKB+EEOLdUxgg4NSLNT+kJZqIPLrJmGNPdJl1WpbXaj9rUyHou7bqo2zcEZ3OBw4LoVTi+qaioipJ02m0yuMrpCqL/eWuQsaFomSQDOPx6LoTVYV6I66OhGP+BoVIGmkzJN3+2OIzUolJwM2zyUH2El5/TanZp+hmZ0j4h+GlCd4y0cD8doziEUv5QVBuEwRs+86V097ncJLbQQDJoaQApR0I4UMBlmEnAl9bdpL6Sm4tlBJc2QBqb+cArA2oJxT7QjLuIvVm6y7ESWO3eiMYbNAG48tAhCD82b9+V3Mjn4tXPHMYVlBiqSFG5lMfzKqXkNEHbUXjL9ZeWn9sJSl/o6m3gPqnwdJgTeSHJpQvrW/ApVnRcvZoZLJhyM3B28x0=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(2906002)(66476007)(956004)(53546011)(4326008)(66946007)(82960400001)(966005)(508600001)(33716001)(6496006)(6486002)(5660300002)(8676002)(66556008)(26005)(6666004)(83380400001)(6916009)(316002)(186003)(54906003)(86362001)(9686003)(8936002)(38100700002)(85182001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UzUwNUE5UkxJZTNLRTZIWG01OTFhM0xRU3QrWlRXbHBEYUU0aVBJaDROK2Jw?=
 =?utf-8?B?K0tDVDdaWmM4OHRkbDR5UVZPMDVxTkRLT1lFV0lZeU9CeFRWYm90YWZYT1V4?=
 =?utf-8?B?OWlRc1hweXFFV1U2M0VPZ3k3MnpEcGkvYUxNcW02dnkvdGNyTHdjcGtxRDl5?=
 =?utf-8?B?c3graVZMR0h4eGZmY0dNOE8va1oyOVg2dzhYY3pva2NhcGFtSnl4Z0xnejdJ?=
 =?utf-8?B?VTVuOGxxQU8ramdNL2p5YkxzVEplekF2WnNoQ1ZTNFVjTmlRaVQ3cVo3Wmwr?=
 =?utf-8?B?M2hick5zTTNDSk54bmRzZkxrWHp3bmZwOEI1UHNIcGtIZHpqVU9jVXRNVE5p?=
 =?utf-8?B?NElPRmRaTWtzV3dydDF0SlFwajVHMWNRdUdRNyt6emp1UWdaQ0RaWG1jN094?=
 =?utf-8?B?VjBZWnUzcVJMZkFLUCtxOThnalp6RjJqdXVRbVpwUTU2K2Y4bmhobEFhVzRE?=
 =?utf-8?B?ZmVRYkxEU3RFUXJZTitLazNjT200N24yeUo1OHJ6WDRzZm9FN3lickExa1ph?=
 =?utf-8?B?cktBajVWVWdaZ2lWN2VhMGJRMTg0YU1JKzVqWEZlbEh1V2JxeGxKUmQxS2tK?=
 =?utf-8?B?OTlkaVRyNGc2Z1B6eG9GcHg0Vzdqd3dBVFZGaVF3QUNEZSt1L1Y4U1lDck5s?=
 =?utf-8?B?Wkc0dkhzVm5ubHFqWVNDWVlPVlkvRVFZOUxLWnZVbTN0MGdRZWZGd2ZtU1lV?=
 =?utf-8?B?WWZpZFFhMzEwUkFnbWUxRXUxcFJaWHQ0anIwNGc5YzVtdHFMV0lNWW03NDAw?=
 =?utf-8?B?b3VBMjFPbnMvK0lKZ28waEFCOFQxUGlmT0RkL2l6cFZxSEs2V2VURVByN0Fk?=
 =?utf-8?B?bGdxbFFpUm83WVJldXJFNUpyc3pVMFVORlVscFF3RGMvWDhHQlRqdEM3N3VI?=
 =?utf-8?B?bks0NUQzN1BXWkxiNlpqUFBIalplYVFNRVA1WUtMR1VoSVNoTlZBNzg1NFFR?=
 =?utf-8?B?N3BqZ2JxU1Yxc2U5WERsWGZvK0RIdUlEZyt2dGhiWVNlQ1BXWWxjNHF2WWo0?=
 =?utf-8?B?bVJzZ2MzR1dGTUUxd0R1S256cXRsOUNxdzNMazJDWms3SE9qTVg4bUtzem1r?=
 =?utf-8?B?eFhaKzMvNStoWk8ySitvd252aEw3b3I5Rm5CaXFvU0ZnTDhKc0pmWllPTXl0?=
 =?utf-8?B?VmxDUEFoMCs3TkExTHdPa3ZBVUNCV1VHKzZHeVE0ZmRFT2Y5L2hlTmEzbmZN?=
 =?utf-8?B?RU1MOUJnek0wVGF4aUVwTWg5cHVTWUJuckRLcGp0K3RQdzRzZXlvV0pyK1Z4?=
 =?utf-8?B?dm93Nks2K1VkSms4MDlKQ1RxRENVQVZTV2Z1SnJZbmVGSlAzTDlQSmlLNndM?=
 =?utf-8?B?VVlLRW1SWUIveWM3cmxSZzVNenJIZkhwdm56K3RkdVVtWnkwOStXUWR6NUZn?=
 =?utf-8?B?c3h3c3FhaHRrTER6YS8vRjlVTEpnWWdkdkpSRkhUK2hoNEJTWXh1blErcXVX?=
 =?utf-8?B?Mk5zamRWRHlRZXlCRXRWRHRWM1ZIZ051VmhRT0VKYTBTQW1ibitvWk1kZFAx?=
 =?utf-8?B?eUdUb0FLaGppNFhrWXIzdlljOVpsM0xqd2hLTG5TZ0VHVEtBSWZEWnJIV2di?=
 =?utf-8?B?L2pHdFZsaUpFU3k2Y0drdXlxRUw4dFJNYzd4eUJQRnVtNUZmM1UrWlE3RkRO?=
 =?utf-8?B?c21MMGlyZWhuVmRFZHZENzJYdVBUSVp3S2JpTnBOUkhCcGNRNUltU0dJb2Nr?=
 =?utf-8?B?OTlIRENOazQ4TUl4aTVQWUNmVy90L054R1JvU0RxV0RGUDFUdEc2bG81NlZY?=
 =?utf-8?B?N0s0Zi96akVpTlpyd1ptVThrRnpCRm9POXFCMjh2VkpWK051cnRkMWlYNEN5?=
 =?utf-8?B?cXM5V3g1cUVqMWhmL1ZqRHU5cmxyaDU0NGRnbnZMaEh3VERqYjh3UzkvbllG?=
 =?utf-8?B?WSt2c0E1QVRSelpLVnlQdUYzaEFZcE1uM28rNXhRRmx4OUtLdHdzL2FHdGE0?=
 =?utf-8?B?eGF6RmNlTk9hejhhYUhaa1pRV2g5L05sNXFRZUV1WkJzN0RWV0hyVitKMnRj?=
 =?utf-8?B?L1l0c0NPSlN2MUVmRm1jMmtWbkVOYWMySEYzVEZJdTBSTmY1dGJBeURtQ3k2?=
 =?utf-8?B?a1FkWlMyQjJzaEs2SU52S0hIbEdORkdkdVR6S013d3FwTkI1MjF3dENldXg2?=
 =?utf-8?B?K1lzZFRaWVgxemVKZ2tTRkV6WWg2U05lTEwvemV2dWszZzdmbnJqWkh5M2lv?=
 =?utf-8?Q?lHOOpUjaQToBJPfmMNl5yAk=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: bbb9a363-397a-49dc-30bf-08d9a39107de
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 14:55:54.9234
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RImYfZh19ESarjA1XmTmDmZaJC4WHcxhDvFHS1foh+EDcN3cRBOLEPjCu3lE6fPnQQuyDArMb2Tsj6K04W/z7Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3835
X-OriginatorOrg: citrix.com

On Tue, Nov 09, 2021 at 02:42:58PM +0000, Julien Grall wrote:
> Hi Roger,
> 
> On 09/11/2021 14:31, Roger Pau Monne wrote:
> > This reverts commit 228ab9992ffb1d8f9d2475f2581e68b2913acb88.
> > 
> > Performance analysis has shown that dropping the domctl lock during
> > domain destruction greatly increases the contention in the heap_lock,
> > thus making parallel destruction of domains slower.
> > 
> > The following lockperf data shows the difference between the current
> > code and the reverted one:
> > 
> > lock:  3342357(2.268295505s), block:  3263853(18.556650797s)
> > lock:  2788704(0.362311723s), block:   222681( 0.091152276s)
> 
> Thanks for the numbers, this is already an improvement from the reverted.
> 
> Can you also please provide some details on the setup that was used to get
> the number? (e.g. how many guests, amount of memory...).

Those are from Dmitry, and are gathered after destroying 5 guests in
parallel. Given his previous emails he seems to use 2GB HVM guests for
other tests, so I would assume that's the case for the lock profile data
also (albeit it's not said explicitly):

https://lists.xenproject.org/archives/html/xen-devel/2021-09/msg01515.html

I'm not sure it's worth adding this explicitly, as it's not a very
complex test case. Probably any attempts to destroy a minimal amount
of guests in parallel (5?) will already show the lock contention in
the profiling.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:57:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:57:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223993.387005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSYk-0000BK-DZ; Tue, 09 Nov 2021 14:57:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223993.387005; Tue, 09 Nov 2021 14:57:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSYk-0000BD-AA; Tue, 09 Nov 2021 14:57:14 +0000
Received: by outflank-mailman (input) for mailman id 223993;
 Tue, 09 Nov 2021 14:57:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkSYj-0008Pr-78
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:57:13 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51c91e5c-416d-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 15:57:12 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-28-7pXC94hKOiS4kHvZzMrRWA-1; Tue, 09 Nov 2021 15:57:11 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3389.eurprd04.prod.outlook.com (2603:10a6:803:b::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Tue, 9 Nov
 2021 14:57:08 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 14:57:08 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0057.eurprd05.prod.outlook.com (2603:10a6:20b:489::35) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 9 Nov 2021 14:57:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51c91e5c-416d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636469832;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=wMRh1TVmrnjdKeqysw7fuqZzraxYoHb4qRDEO2U2g34=;
	b=G6MUJll1eri+vbCC4CbcmSlfylo6LaG2Mjr0UExurO/7HUuMC0SXKpyxTz5ProhGTR7mfx
	TyqlD7Ugd5rdK2MU68J6Mnf4UJ614F4oJ25AyZCysbGF0NkKAvEngdsF+wMyr6Gn8C9xUa
	GWTj282bUqoZHCW8h+c0lhhD3pXvl60=
X-MC-Unique: 7pXC94hKOiS4kHvZzMrRWA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=F4y2llAGDF+NN/rRbFd+U4CfA2AWmdu3KOxpp3Ai8f3xIVOoO7wO6Sv6F0cLT35uQywPIf5l4erO/KSDCqt6QYmAACxMYFu0Cop1vladohY/dcaHIpYrURfMQY/d0iefiGOwXbF2SBIv8r2ujJ/QRt2tVj/7eqSkQpbyY1D9vf93XKuGnWelWROF9tRj5Mgzo6a5yPN32OWV+RVtkUKs1Qn9CYX+MOyRuKWR3iHRwfNmIWBhku4G4cYS9JUQ0K448ml3GdCx7L17a4IoHRKVfNhpegHL/r34YWU/EkDdGi/OeEScG2kpQQyEZISedpMLlDMEssfJXqDhPps+pgrRkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wMRh1TVmrnjdKeqysw7fuqZzraxYoHb4qRDEO2U2g34=;
 b=RLH5MC/29ts4v1Hx/OmWDpuxpd7KzNLCyVOkTirfjXfdY2z/efqySLuyHP7sMAsH1WNMLgYXX55tSrk9wHQnro7nGjvke/UQb26Z7Q779svAyIZcUu93W5edBcLN4dut+4Npw7jM3bIsimFKPHLOhOgx1hg/yuR8kLery3f72pk2YRrmeEoBFaze/QmU+fISFgWpzwylqWkHYaHNrmHzTXZuaOFkd4aRg1M2L0EX+8mcLkI3ofrWzK2S/PTpFx5n6ZAztJIn526/2glpYhSPy1g/UYTLJ4Q/1KaqXErNlO9N+eXWZNHfurrJGLZjTL/067cAAMgHAOMN1PjYjcmp0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <abb32dba-bf89-5dfc-c781-10744a184c9e@suse.com>
Date: Tue, 9 Nov 2021 15:57:07 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 1/3][4.16?] VT-d: per-domain IOMMU bitmap needs to have
 dynamic size
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>,
 Ian Jackson <ian.jackson@citrix.com>
References: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
In-Reply-To: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR05CA0057.eurprd05.prod.outlook.com
 (2603:10a6:20b:489::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e514dd77-bcb7-4525-da9a-08d9a39133fe
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3389:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3389A7693441BB329AD3F777B3929@VI1PR0402MB3389.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1013;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	j4HN2eXbjss/OUXShVfiJHvOgSlAYpQ1syOw07uV8IyQwoxh7TmCFNSwWVLOsLJ/YTybn8xr2PqqQ2GNFdVz0rgyD+NMgb/QpBkn8D9fYIuD+xKb/3M9ruFcOuV1dr/Oe0cLCvPIvc2Sdk/n+Xde6Og1y1bSFZxP2PJDjMeYgtDDcCy6s01r7GRX8YnaHwDrdNlyRA9ebHd6sVEUwaaVHc/O5P236qGD1+su4k4I5yMu619VyDU6YDjRoQu9T+vF/2BV2GohmPBGbfckE6cdPpa0q9UFyvsKML653eValPlJyW5Rz0xAhfqDfxwZthmI16pl76iGkbUYkmGuRpkAVDd0MlTfeSz5ZZS13jAJhbYuQW6WQhAL2BOAx0MPvvdH108EpNKG7zgnfhqcEt7Ded1T6i1ejtAn4wPHUtGr3UTL7f9juTFHOdoN1RHQBTJy+QW9HTMuAlgJtM0mH638qU+jVBunQfsSaAELgXfoCYpHa7+5eVfESHFy4EYSscOTDh72wlqnlQNdwNBCEwDkBIelIla1gIznQ+f00BPu13Ku8ux8RZiI+8iHAraqGrVQJWaRoc9PDzELJI9M6IK3u3BYReWi3skq1cZDXftlDtelZH+0ufNGhzcM5gO8vsmsthaD9nCZa2hsqWk3Yn/VWkIeAWsO42Vk85eajMGz9HQqp4nb3wlKrct8iaZGfDe5fUMB03LFzryis9gl4U1USYZ3H+4jW/wF0NEACFc3U5Zhyovfii4eGU1PeONOCeOB5w19KX4ydxpq32Hw78Z9cQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(8676002)(8936002)(16576012)(2616005)(83380400001)(6486002)(66476007)(66946007)(66556008)(31686004)(38100700002)(316002)(86362001)(2906002)(54906003)(5660300002)(186003)(6916009)(4326008)(31696002)(36756003)(26005)(956004)(45980500001)(43740500002)(309714004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?enhBaXBHT3ZDeC9laEJ0bXlUZ3U4N2syejMwQzZEWHpldFlSSUF6T2QraWxO?=
 =?utf-8?B?VHp1dDNpQlk2eVVhTkZncUd2VFd3K3FCalo4dFdFTEFGK0xxa1BwcmxPUEIz?=
 =?utf-8?B?WWZpSmxPRDR0NXN0dDRhWmM2NENpWGFrTzcrVlF1bCtSQ2VpSXdwdFMyK3RU?=
 =?utf-8?B?Z2FSaU1BOFd2Rm1sY1g5MENuTFVYVnVKUmp0NTgzTFMzT3hBSTE5SXBDRCtV?=
 =?utf-8?B?dzkxemwvazcyWnhxQWQ3R2FRVVcvV0lXMm1UTjg4RWNBOC9aUWY4ZnlJbGl4?=
 =?utf-8?B?QjFaMmtDbmUwZG9XMGdlQW9GcytIcFJrMEJJUlNaYlNlaFROSkJ5c2MyRkZE?=
 =?utf-8?B?RlZUM0Z3aG0vSWRRZFpMT0JWVlM4VlFHV3l1NDRsSzlnZC9UOGoydE5VNi94?=
 =?utf-8?B?UitmM2V6NDQwYWRiemlMUmcvcEF0Y3ZQVDNPdXF5Y2J1bWVHckowUFk2UHZ3?=
 =?utf-8?B?NXZuVGg5eDBlaFR0WUpIRnNPV1VVemw2YmtKUSs4NVgzT0MwWjhEWmJNT2Qz?=
 =?utf-8?B?dlFqbDUrWktGUWpWSEhnOEJVY0hWelRvNmhPb3EyN3Nndk5GcnhYUER5Yk5p?=
 =?utf-8?B?K3JyeGtZN1NPNThmMWRld0JteHY5NUY1OWtmQ3Jaa20zY21Pb2ZKOGpNRXR4?=
 =?utf-8?B?djN0eDVyNDQ2QkIxdFJ1SnRXckkrMlpaelJ1ODNFTXd5aW43Y0YrS25yUnJm?=
 =?utf-8?B?S041dWRxdVlhUXNyV2d5OWE5L2lTWmlBYkx6emhUbHVmSUtlTmlHUXBUK0h2?=
 =?utf-8?B?dis2cEVtQlR3T0VYamxPS1ExOFdZVjdUYWc4Q0MzclpTeEx5UmRmcmZhRFZX?=
 =?utf-8?B?alg3ci8vUzJPUFJLcUdwc1ZmWFJ2dFkvclNPOUpoTUdiZkRVZUlORlZLdW9Y?=
 =?utf-8?B?a0VXUEFoSVIzTlpSd3RMZ3NBeDZlb2xHby9tNE91TmxFZDJvd1dnRzBqYjdw?=
 =?utf-8?B?bjZzZnN3L2RlQ0RRanljMU0ra0E4ZXdnbU42d0tLR0tLRUVTZnduWWdhcVZC?=
 =?utf-8?B?eG1QTTJiQ2tVQ0prTlRuNWFxeW9CTE8yeVcxUkFRU1IrVU04Nnl3Nyt4dlRa?=
 =?utf-8?B?cCsrNjVDcHc0d1FjdXNuWXFHSGdqUEI4Yk1uRjRBVVhxb01EaWVCWnhDeFdI?=
 =?utf-8?B?S1VvTGVXSWVZZXpZbDl5YmJZVGlzcGx2aWJFa08yMGZvNzgzVEw2UTd6VG90?=
 =?utf-8?B?MW9pUUk0WUVod2p6V09yTzh3M3YvMzljVk5xbTZGOVRuUWV2WlNyMzJaRTJq?=
 =?utf-8?B?bjJoMkY4TzBOb1A0RU03eEo5c1FUbHdHL3piUnphV3lmcHU2R3lvQzFHTWM1?=
 =?utf-8?B?d0RtOWlrOTNLQ3YyVlBTV0MxNXVMMXVxbHU0WUQveFdyUWYxSlBsaFVKeCtF?=
 =?utf-8?B?K2hucGtuMWpDNGhCZG9tc3FOWnUvTmF2dzhWeGtzQTFDazVNdzZhdmsyTStY?=
 =?utf-8?B?d3JIQ2YxdExhMWYzQUs3SXhhYjRWYnFUT254K2NTQk5IWDdwczUwTWFLKzBU?=
 =?utf-8?B?Z1BtMHN6ZnBpbW1STVlwcFQwNnlCRHN6aDNvdzB2VFZ6N3Mxa2pXeFRlQjVr?=
 =?utf-8?B?YlFTWm5tU0pYcDA3OEVKL1EzUHE2VzdLWEhUQkxTWU1UMlF6Wk95SDlDQUVw?=
 =?utf-8?B?RVB1Z0ozcTh1N3FlV0hLbWRTRjg4eHl0d0h0TnlZTmhWZU9EN1l3OTU2MGYy?=
 =?utf-8?B?blNJeW5jSFFONzZCSVRhZlI4YnY0YndjTkJhMG9mM3ArSjUzSk13ZHdUZUhM?=
 =?utf-8?B?R0RqV0pKVldXTDkzTXZ1TTR5WUpyNlRVVTZpanMwdFFEemkwcGhzRzFWN3Vj?=
 =?utf-8?B?QWNNbHpxYVNEbkw2TlBURjRBMGFEaThzRXIyaWNQZExBVlFwZXFPVVlCOFZJ?=
 =?utf-8?B?SmQrWjV2dlR3ekJlNnhKd0ZvejFvL2xidWxvWjlON2FNMzByTnh1c0JtS1hT?=
 =?utf-8?B?bExrNk9NOXl6ZEs1bnNBdUlkQUhyZFp5WTJQTi9TRlNDNW55S3I4K0E5M1JE?=
 =?utf-8?B?amUxdCt0Y0RLOHFEUk94SDREWGt2blRCd0w1RFFyNE55U0F6MnZoU2E3R2ht?=
 =?utf-8?B?WThBbUhmY3pRaWdTU2o3UHNhS0dwbFF6bFp3OS9SMFVrems1MXRJY1hrSWQx?=
 =?utf-8?B?ZGxYUVptV1QvMTNWMTJHQTk1UWxXL1c5amV3aGNtQVZvWTh1MkNkRkJzLzIv?=
 =?utf-8?Q?F878eKmqsZ1G9Ruj8sXpAjc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e514dd77-bcb7-4525-da9a-08d9a39133fe
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 14:57:08.8810
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MY5+fY2Yrmg/qjL979oibLExDFOA15u9LqrJXP7D/mWe4dtXKZA0bs3JRPLOhonHLF44JoFJ7/O6jUBVdVZOhQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3389

With no upper bound (anymore) on the number of IOMMUs, a fixed-size
64-bit map may be insufficient (systems with 40 IOMMUs have already been
observed).

Fixes: 27713fa2aa21 ("VT-d: improve save/restore of registers across S3")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -54,7 +54,7 @@ bool __read_mostly iommu_qinval = true;
 bool __read_mostly iommu_snoop = true;
 #endif
 
-static unsigned int __initdata nr_iommus;
+static unsigned int __read_mostly nr_iommus;
 
 static struct iommu_ops vtd_ops;
 static struct tasklet vtd_fault_tasklet;
@@ -645,7 +645,7 @@ static int __must_check iommu_flush_iotl
 
         iommu = drhd->iommu;
 
-        if ( !test_bit(iommu->index, &hd->arch.vtd.iommu_bitmap) )
+        if ( !test_bit(iommu->index, hd->arch.vtd.iommu_bitmap) )
             continue;
 
         flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
@@ -1308,6 +1308,11 @@ static int intel_iommu_domain_init(struc
 {
     struct domain_iommu *hd = dom_iommu(d);
 
+    hd->arch.vtd.iommu_bitmap = xzalloc_array(unsigned long,
+                                              BITS_TO_LONGS(nr_iommus));
+    if ( !hd->arch.vtd.iommu_bitmap )
+        return -ENOMEM;
+
     hd->arch.vtd.agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
 
     return 0;
@@ -1457,7 +1462,7 @@ int domain_context_mapping_one(
     if ( rc > 0 )
         rc = 0;
 
-    set_bit(iommu->index, &hd->arch.vtd.iommu_bitmap);
+    set_bit(iommu->index, hd->arch.vtd.iommu_bitmap);
 
     unmap_vtd_domain_page(context_entries);
 
@@ -1789,7 +1794,7 @@ static int domain_context_unmap(struct d
 
     if ( !found )
     {
-        clear_bit(iommu->index, &dom_iommu(domain)->arch.vtd.iommu_bitmap);
+        clear_bit(iommu->index, dom_iommu(domain)->arch.vtd.iommu_bitmap);
         cleanup_domid_map(domain, iommu);
     }
 
@@ -1819,6 +1824,8 @@ static void iommu_domain_teardown(struct
 
     for_each_drhd_unit ( drhd )
         cleanup_domid_map(d, drhd->iommu);
+
+    XFREE(hd->arch.vtd.iommu_bitmap);
 }
 
 static int __must_check intel_iommu_map_page(struct domain *d, dfn_t dfn,
--- a/xen/include/asm-x86/iommu.h
+++ b/xen/include/asm-x86/iommu.h
@@ -58,7 +58,7 @@ struct arch_iommu
         struct {
             uint64_t pgd_maddr; /* io page directory machine address */
             unsigned int agaw; /* adjusted guest address width, 0 is level 2 30-bit */
-            uint64_t iommu_bitmap; /* bitmap of iommu(s) that the domain uses */
+            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the domain uses */
         } vtd;
         /* AMD IOMMU */
         struct {



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:57:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:57:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.223997.387016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSZ7-0000ix-Nd; Tue, 09 Nov 2021 14:57:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 223997.387016; Tue, 09 Nov 2021 14:57:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSZ7-0000iq-Ja; Tue, 09 Nov 2021 14:57:37 +0000
Received: by outflank-mailman (input) for mailman id 223997;
 Tue, 09 Nov 2021 14:57:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkSZ5-0008Pr-Ov
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:57:35 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f584dec-416d-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 15:57:35 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2058.outbound.protection.outlook.com [104.47.13.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-12-Eb4ZvnVmOR2JU3hFSdSl2w-1; Tue, 09 Nov 2021 15:57:33 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3389.eurprd04.prod.outlook.com (2603:10a6:803:b::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Tue, 9 Nov
 2021 14:57:32 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 14:57:32 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0035.eurprd05.prod.outlook.com (2603:10a6:20b:489::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend
 Transport; Tue, 9 Nov 2021 14:57:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f584dec-416d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636469854;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=0XXmDRcbmhNSOz+3m8n+EWENufFamtBOLA4E8m778Yc=;
	b=G+Cb5t+/OUsXTut729WkPjpQhFcYEoCj/Aml7V7tSKoa7+PehAg0XqbMhyX+LokyGXjT6d
	hTvfi//NKKHq0Qr7KqYA0H2dhJb1/TTPESBpzFF/sfyGytwcdTXuDpgMCqoBce2sf4esZw
	I0/shVtXk1yHt8jDD1qysxpqZQS88Xs=
X-MC-Unique: Eb4ZvnVmOR2JU3hFSdSl2w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MPcW05CP4itgA8lCOnYATYYmQ2E9r1OfUgBe+QJjv53E2mNxP3tQyHsJqpGPV183zh2GyJJABGDcw/CyrDqpPPZZhc9ThjlqKGE5Zs76JeoIx1WSMNw2Je6B/rwSiaHUKqEeMda0FEZJsGWkXHLD2N6I3FZCuYmzO6JW1P0EqOiMunspll2Jg85Oj3HnuzAc8C9wPUALg/tZM621Ln/QgMYwcAfr/+ORrmK3lUXYvjgkNKnOPGL5NQA1gp+WwZxjzDwD6TYJ9u/E6j1DAzDBm6R282jVDTQAUhf4ig5Htt4QveLJVjTUS9L7QmRZBoTrecZZzOL/sNQGdrQmeeu6JA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0XXmDRcbmhNSOz+3m8n+EWENufFamtBOLA4E8m778Yc=;
 b=W/W8BrsZsaQyCVRRzqgxM97D47wWoOf7liHvAswQ11W4Ttt+ZkUj6yiOApS81VTtdfeLIsz5mcGHn0h6VgeDNda3eDdyzoLHYF+LVi76Yvt0RsBHSg/IlS2r5442Ns4NMoChjv0y9GcWzelZNAxdeIjGITzpxOmiIRQ0YqGfrXoDPoihq07Hzjm9LZNKPZN2Y9GJlj0/ZjcUhXItlmDGV24tibL9Hk8QeyBphnD8I+46aycVpOQzsxbOApNORfSfhV3nVnug4J8lBGLo1HFCSNujgI9OSSIH7IVAWWOa18zsirSBtKfiGvUoywLMXVG7hI7BiWyjYu5ZoprH27L4Bg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <35094014-1578-9db5-4635-c3ed45433a7b@suse.com>
Date: Tue, 9 Nov 2021 15:57:30 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 2/3][4.16?] VT-d: fix reduced page table levels support when
 sharing tables
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>,
 Ian Jackson <ian.jackson@citrix.com>
References: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
In-Reply-To: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR05CA0035.eurprd05.prod.outlook.com
 (2603:10a6:20b:489::17) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3ad76bab-400d-45b4-83bd-08d9a39141ea
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3389:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB33890E8A013702775F539D20B3929@VI1PR0402MB3389.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	xy100UhqOgxPHtdZ5yAB8eDzR1NFKVHa2jksCCrMNtc8W8T/06bAzt7RL4ZczR9MshcxCR9W+nYqlFklSsXxhDLLc3J2JbHsk0OLbkbBCsuGfn0oH5Q9Q/ROozstp7wwU5xTLPXEZ+c8GwQR9KNK/Ohi0f7n7E9ETF6sB89ZNGz0rR5Bbt2/kkykkoky2iNQHms5jEWYtprqIW4ghBZtJGKLE9FCr/BUgPt8iDwpVpBKbfeEfxKxUgMN+I3yF5TJwUdLSXypuyLISOrr0iO8kUAh2T5wCHD/ydUzigXxzZyJBDM8PxiwjNwVf/TKshEkDGzs9reic57Ou2rzz/NYE8oYpM6LBCenmfSfcZ4jvuidHn2/xGkGhH0+Gt/cgzfYLW1MNw3ntVD4XrPDw9gH83lVLXzMO5hAGQ4NDXTCg+kg/C08nUDtA1Kz126cp48JQKe8NzS0tnIQLu8AglPruJng/5Fl/rcIN9P0mQkX4UjNlrTSHoq20Prp7RmMLRpmydpR5ZjbfF9O3Gb5Zm/LilAHMdLT26vKhpG7qKLJtmDppu9T7gxeIfYNVj85inCsbsdyRp+8vB1SRr0paay8K19mRLo7JxkUnYDVNUn1N7EqfdqbDI6NmxlBMNG/7oC6xCCwxtlx4Yd+AX20yU9awHheixq16q+v8JIPvk3RmKPLrplxjaHRsk0jnkKd7zztiQQSejA76OjQ2JIKeWO9tXmbLp5Z5VGQ5SI1AzNivNQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(8676002)(8936002)(16576012)(2616005)(6486002)(66476007)(66946007)(66556008)(31686004)(38100700002)(316002)(86362001)(2906002)(54906003)(5660300002)(186003)(6916009)(4326008)(31696002)(36756003)(26005)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TFM1WmZma1JKWjhxdDJvWGoxanVZd3JxMGlra2IyWWowLzZVZWFjckdOei9B?=
 =?utf-8?B?N0FTQ0NSaUxVdE50MzI2WnJ3Yk51eFBSMmxSUm1EaEV0ZC9qR21HL0FFbnJH?=
 =?utf-8?B?NnNjZXJ6V1VwZTNUNHV4V0JaVTZjSk5XV0p0NlRGSUtqTUNMZ2xwKzlrNmlS?=
 =?utf-8?B?WWpuSmxnRzVsOVUrMGdWNVA2T1Vyd0czdlB3eDl1a1hjSFBuYk1kRndneEJm?=
 =?utf-8?B?U1g4KzFRM2RtWXlyT0kwb0ljK2pNZEJnd3pwVWxzeUlsSzA3SERSM0FoOGor?=
 =?utf-8?B?TTRUOUlRa0dOVmo4SUU5WHFVWWdwbTN2anJNaVo1QlB2R0JTNkZucm9yc3Ji?=
 =?utf-8?B?NUFCV2g3TWxEbm12elpqZllFeVd5Z2RVd0llamY2ZldIU2o2cnA3dVhtZE4r?=
 =?utf-8?B?ZytmN3MzRmFpREpDWW41NTQxenJjRTRGdlpGT2xYcmorL3hvbkM0c0J0ZzFl?=
 =?utf-8?B?QzdYMCsxK2tCVEpnSWRVeTNTRTJ6RVNGSVpuc1JaZlhGdUVtTFYxWUpQTmZ6?=
 =?utf-8?B?VkdxTzdncVhjR3lXWkRiNjRPSmtib1hWdDhmN3dwTzA4bDlWeE1idlZ3Z3Y3?=
 =?utf-8?B?TktPSVBrVk91eUk1RVdJZWw2c3F4eTlGWnlxL0Q0cDBPTi8rZmM4U2xQQWFi?=
 =?utf-8?B?WUM2TDN0cGtsK1pFQUU5dzJGdWtmYkJFTHdEeUpLVkF0T1JncDNRNDF3RWh4?=
 =?utf-8?B?L0VIVlptc3l6Zk5qU2FSSDUyRjJORGhGZVpHeXJQZFF4YStSdWZBdFIxVnZB?=
 =?utf-8?B?NHJwSzFrZW85MitsMmlOMUhyM2NZOG82OThZODNUMy95V2Y3NXZuYWd2MTNZ?=
 =?utf-8?B?SVMvUXhrL3FVNlBhUzhtaGIzNUYvUEQ3cWNtUWhkL1JVeUJaMnFBM3lsMVFM?=
 =?utf-8?B?ZmR2MFBCZWxVMHJPS2k2bU5mVWRXZEtQdFA0eDlMdWJ5c2drVUQzQUlDakpE?=
 =?utf-8?B?R2lUeUNWblprbFd4Q0VBOURlVGVSVzdVN0pkOE4wci9DQVJtTFdpODVSWkw0?=
 =?utf-8?B?WXJZWmVvUENxbVdwUytOQnFzZW1tT2xybFNLYU4vZnNsTXlwUGE2RUw1dVIw?=
 =?utf-8?B?S2ZXMjN5U1grVFNXdHFlSkRaS1dXMEVwcG1EVVViVWF6cjZQVlBGS3VlUmtk?=
 =?utf-8?B?SUN2KzBzdkZxd2tIb2lUQkxLWTM0Q0lCSzZpdHdzNTZ0YVZTVmYxMEhKRG5q?=
 =?utf-8?B?V1A1N0Z2RW9Sd1FvWEllMHM3SU1qNjVRdnJsenROQXhpdlhaOE1haHV6VW5M?=
 =?utf-8?B?YjZIZ09jU1hPMXYvOTJOZmlBdXE2ZXJpcldVUHZ5Ny8vNDN0VkVySFdBTFBV?=
 =?utf-8?B?R3NHQlFkVzk4TWZ3UmYxenB6V2xqeE5RZi9DaTVOb2tmQUdBd21SdTdJdHBz?=
 =?utf-8?B?Q2x4czFYekxycURJYTZMY0xsdm50Wk9EdnVMVEhwb2VjMnlQSzNTbFE5YXY2?=
 =?utf-8?B?VUhIS3lHdWZ3RUU2d3dnZ0Jrb0lrWGFROGtFb0J3TFNteE44QzM5c2doUzNv?=
 =?utf-8?B?ZXY5M0pTbTFJdVc3OGdETXllZWhHU3BINUdFUFFtd0lHaHVKNWtRRDVMYWJ3?=
 =?utf-8?B?bkhlZE9DanMyU2E4UVBMZ2JOK0tRTHhlWXFLTGdELzR2Z1hvNENUdFBGS3Bk?=
 =?utf-8?B?aUNUNzB2M2xPVFJTZXVWS1U4YzIxcFFvVHJXK1pkZ2dsRTlKcy9ybEhuQW8v?=
 =?utf-8?B?VDJJQVpPY0lHM1NyejJUNENSZERTZHFUR3BPZ3ZWTnF0RkFkT1pGcHowbld0?=
 =?utf-8?B?a0Fha2ZqTDdWMHhtZGJsdG1ZSUFjR3NkaDRTNGU0MTdIS3dhYUdYOGlVbGZ4?=
 =?utf-8?B?dHN6MVQ1LzIvY3dnd09MTGdsRXF4WUZpTElIMUppYTNjbVFUNWJibjNIelJB?=
 =?utf-8?B?cTJuRHZ0RytzdDFkbEZ5RHROY1lqTUJ0TnpyMDRWZlg1YWhFZmlKRnorY1l2?=
 =?utf-8?B?OUVWZ3BqSFZVcXc0L2VaVERzMUNlS1hiOXc3Ulo4b0pXc3FqUGhCVEgvU05t?=
 =?utf-8?B?YTFxUnFVSnNJak90ZTdpYXhHSkNjN2NMZXR3YWJWVWYybStQZXB0WHZnZlJ3?=
 =?utf-8?B?dUM0K28vNkJMMXdlVEtaaW42bzNFd2pLTXd2TURKV2V2QVdXV285WFROclU5?=
 =?utf-8?B?TXpLMG4yS2hNWWVhRjFpcnBWemp1dFJVT3RqMFFvT1p3cHBBN2lITjR0elRT?=
 =?utf-8?Q?ytCbpfEfE7xNA+hXB2JtH2M=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ad76bab-400d-45b4-83bd-08d9a39141ea
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 14:57:32.2328
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JjLSOVcUG0Ln13Ie4IL63Ld/D6eWnWw/HNwTJkLE9iYcVcNhcxhMoJfCTcBMttGsVUB04stoQDvXESi+JxEptQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3389

domain_pgd_maddr() contains logic to adjust the root address to be put
in the context entry in case 4-level page tables aren't supported by an
IOMMU. This logic may not be bypassed when sharing page tables.

Fixes: 25ccd093425c ("iommu: remove the share_p2m operation")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -340,19 +340,21 @@ static uint64_t domain_pgd_maddr(struct
     {
         pagetable_t pgt = p2m_get_pagetable(p2m_get_hostp2m(d));
 
-        return pagetable_get_paddr(pgt);
+        pgd_maddr = pagetable_get_paddr(pgt);
     }
-
-    if ( !hd->arch.vtd.pgd_maddr )
+    else
     {
-        /* Ensure we have pagetables allocated down to leaf PTE. */
-        addr_to_dma_page_maddr(d, 0, 1);
-
         if ( !hd->arch.vtd.pgd_maddr )
-            return 0;
-    }
+        {
+            /* Ensure we have pagetables allocated down to leaf PTE. */
+            addr_to_dma_page_maddr(d, 0, 1);
 
-    pgd_maddr = hd->arch.vtd.pgd_maddr;
+            if ( !hd->arch.vtd.pgd_maddr )
+                return 0;
+        }
+
+        pgd_maddr = hd->arch.vtd.pgd_maddr;
+    }
 
     /* Skip top levels of page tables for 2- and 3-level DRHDs. */
     for ( agaw = level_to_agaw(4);



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 14:58:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 14:58:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224004.387027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSZs-0001MU-1Q; Tue, 09 Nov 2021 14:58:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224004.387027; Tue, 09 Nov 2021 14:58:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSZr-0001MN-Tj; Tue, 09 Nov 2021 14:58:23 +0000
Received: by outflank-mailman (input) for mailman id 224004;
 Tue, 09 Nov 2021 14:58:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ImPG=P4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkSZq-0001M1-TJ
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 14:58:22 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b11219e-416d-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 15:58:21 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2055.outbound.protection.outlook.com [104.47.13.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-18-O32xj_7zOlKiRMqLa-UOfw-2; Tue, 09 Nov 2021 15:58:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3389.eurprd04.prod.outlook.com (2603:10a6:803:b::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Tue, 9 Nov
 2021 14:58:19 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 14:58:19 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR04CA0010.eurprd04.prod.outlook.com (2603:10a6:206:1::23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Tue, 9 Nov 2021 14:58:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b11219e-416d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636469901;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=pI2I0oSjXvpskejeIS7I4+Eo2D0UJGIdxq3pdjMmjqA=;
	b=kFKX1lSKZa0uPzwEpWPzUeR/Heqxnfg0J8vPA2aJiWu4om/bia6kw8XCHE85+WClxAoY29
	Qxfj0i5l7MX0age+5uWKXcTPpecne3x+4CNjD8R1CLy2vfl7PS8QVJ+vYOvH4m6hLgbIz8
	3Orc2ixklKX2HqlkKaTLTrrR7qYm0iI=
X-MC-Unique: O32xj_7zOlKiRMqLa-UOfw-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ld9ccBFHjmzCx77rMxovZKtzR2YSMOV4DyDpimUnrTR4eY8M5slkCrM7CmaB0N2InWitY5FtOKgi51FcnnEYsnkzNQRFr273N6Hq2n0XpTJfYu4iVvO5E1wwTEXo6mwXMmJx/ht9Jr4ZMTcZUsF5FL9ryciIqyz/QcE4OxW8kFXrCLOWlfYHrnHKpC9Out09JDwDW6MlVypVBEyGIEfqH1GNIwfd0LjaUoTyTqJei56nxaR2JRjw101GJo8Z/jCrTO/qxusb6AeEQO+oML/R69iCvMffx+AfaUBbP0DXtKC0XHpvTch/NKx7M240hryXd9KUK2cqrGPhXx9xtM603g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pI2I0oSjXvpskejeIS7I4+Eo2D0UJGIdxq3pdjMmjqA=;
 b=TLrn4DBjymBTTld1gTKKWVFLDQR+yuXmyZHToeUEIQBKNWFqFlVvKqyNOy+oMF7xJSiCwnzYV+Fi9nlCj92p73oOUyfnNQvVhNtPikacDRP0Dp8JmXyJ8L/BWjDAEz1M0l/aBA3VYPvlGmY1JJFo3ZiHg5lgQSfuH5X0K8edo/tI0xjAuE2zERiGRxuH1iSwrx5K4TElvRl4rsYnM6w1eM7xUn8r/YHnbVLbmf8PWNysLAXNDpva8cU5BWybg8tg7SRr5IZrptQp0IXS7Bh1DvCZmA7wi8q2XswRgZL9BErjMG/jFeUwsrx6+hoAZqyAGsA8IKOV0nrq7Lw0PhKvHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <466baa9f-38bc-99b8-6403-24e9384820b3@suse.com>
Date: Tue, 9 Nov 2021 15:58:17 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 3/3][4.16?] VT-d: don't needlessly engage the untrusted-MSI
 workaround
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>,
 Ian Jackson <ian.jackson@citrix.com>
References: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
In-Reply-To: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR04CA0010.eurprd04.prod.outlook.com
 (2603:10a6:206:1::23) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 41849fab-2c3e-4f46-a5e5-08d9a3915dc5
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3389:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB33894696BC93112BA31E921AB3929@VI1PR0402MB3389.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4303;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	fNr7BIyjC4Uj5m+wZH2t3uTaAf+fffFqQ2+pbpRAmIkZvXhZgBM2fKedOeK5XvUEd/JYSjDrxwyXSAJAWu4Z78uGQVP7pJqTF41TRFaaGZQP2IlbhfdkgmDbmposWmK+o6oI9COTy3nw7CBWHTuSrZtWoG9210PwoaURPCGtb9EkPgG1PFQ9TbC69YenwF8/G8Yh3rrISEl/mwUmDvG3CKZWnB8MIwjqRyu6yg1kBAnL9hn6rcm7AGE6t8vrU+ShJ7qImCLz4MnqkwJTRVEjGKj08g2tmDfdqUQhbRc/4wpWjbsDWTaR5LdUwXOPvaVHP4jIHn517pj1JfPUAIHTEOe6hxHIxxiPjoda5cT/IPGNBqVxOAxAH7pz0sirt7NV0/OspjSrN7Js+CFMAx1LjNR13Qwixe58676oWjDdTI6FA4Ytydik7PmiYYIwRJYF2tnx6kONGpeeG+VAtKUjpSi8Q0hfw93Fe2/McBaOasYccv8dznR332NoDNeLwKy/soN77UTHDAMPvE26099VBIEYm+VT9NPJnyc/M2ZVW+m9L77raLkg/Fz4JHXoTTviUYK8JOupLGONZ7gZH2j0+uYcyLJc8fEmTamf+nKEh2zEdxJCyAxM/Vz4tZCIKlZrrj5YJFQuTtYBnxBqEKxN7T1C5skS9VLQJosiULZwlQDZ5PdWwC8VzDxEOEW2So4V+0aas4OMXs8AbG+QhDciGKrZaXT9k/LSPSncbea8+XQa3xXz45rSTmunDvu4f9xE
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(8676002)(8936002)(16576012)(2616005)(83380400001)(6486002)(66476007)(66946007)(66556008)(31686004)(38100700002)(316002)(86362001)(2906002)(54906003)(5660300002)(186003)(6916009)(4326008)(31696002)(36756003)(26005)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RFVKV25sTGlraC9rVUlaTkV0UC9yYkdyM1FlWXpaYlNRaHYvTWw0dmlBbnZu?=
 =?utf-8?B?UGM3cGlUeDFjUm0weGJObElnbXBzUWxqNm93a0lUaVUrTERma0pYYzRKM2JU?=
 =?utf-8?B?bTFkblNVVlM5TEZwSldwUDNRZFVHSWM0eHUzZXNxdCtIZy9qQkE4Yk9Fc242?=
 =?utf-8?B?NU84eFU5VE5WcjNucEtOc25YOExWb2MrbmVFWUx4c3JyN1ArYUp5RVJtL3di?=
 =?utf-8?B?dmtpWFRmV1pLdklPVFpFZndMZU4vUkUvZWN3OTUwTDVxZHpRcUJSTWxYTk5P?=
 =?utf-8?B?YkpMS0pZVnpZSjhJL21SeDNXV2NQd0Q2cSszNFB6c0ZyOEpjZHZvZStVRlM0?=
 =?utf-8?B?NVNoaHJyWXhqdFhob3h3ZWFNc2dnaGVLc0ptSHRIMjNPY3dWakdKQUtPNnNE?=
 =?utf-8?B?aTJYS1B0cUcvVXY4bVhBdDJDb3BZc3hRU3hzbG9xY2VSK1FFNTZPVFVZSWpw?=
 =?utf-8?B?S1BYQktCeGJaOWlJaU96YVVLMzdkY1pWb05qNmtyeXRMOXRCVUx2NEw3QXY3?=
 =?utf-8?B?NFVZUitnbERraDRJQ1c4STR2VU14WHQ3SS92bFFnTndEWHAxSnc3Tk1mdEJo?=
 =?utf-8?B?ZmV0K3J5WTNZeFJTQkdLTGZwVUlla1Z3WHVwY05zNS9WOHRpTmtUOTBjcGNk?=
 =?utf-8?B?SC84M0xCTHRTOUVCTU5ocG9xWFIyS2VIbW43WHFwUEduUU9sczdBVmtUWll2?=
 =?utf-8?B?N0JVaFFCYkp3YkRGUFlBOHpuSnpleFN2cTN6UlRKd3JYQ3l6UmxhS05uMFMx?=
 =?utf-8?B?Zmo5T0s5dHpzaUZBNjdBY3pRMm9sNHJwamRiaVkxT3AzSWtRa2Qrc3RCRWRF?=
 =?utf-8?B?LzVxQTlBQlpvNkE5aXBVRzNWbFJjOUJQbU8vcTRJSGMrUThuY3BXbTFWTllD?=
 =?utf-8?B?cVl2c2JkcnAvcy9BWDg2VzhZQW5VNWZVRTdzL0lMemF5WDYwWEVQSEc5TEZW?=
 =?utf-8?B?UUExMmJ0bnJYRi9ZbjhIL1lXNzd2ZG9hSnE0Ri96MDVIN0Z2eWNiWUJ3R3Yv?=
 =?utf-8?B?REd5SnNkSnRxYmpCN0ViRUpjOUVIN2VqV0I1WnpLa0FMUUpDQlNBRjIzVGdr?=
 =?utf-8?B?czc0THE4c2Q0Z2hsN2tHMWRsQ0FCUXNEUHZCQThzcEpFa2NYdDg5Y1dWWXl0?=
 =?utf-8?B?NmpjYzllbFFDWElRazYrWUpjQ1ptUlJaanNoaUdUZXVuWVZNakU3S3pUenFX?=
 =?utf-8?B?TnBoaFVKcUFkWXhmUmU2NnVpQzhwSXdBS2VickFGWTFmS2Jvd2ltM2hHYzZl?=
 =?utf-8?B?N1VKRWZNdnBjTmRzaWNIT1I0UGFrdjgxdUFJMWwrZnlYdDAvc09CRXZFVS9k?=
 =?utf-8?B?ME5hVHVOV2FUY0hTVVY3c2ZkWUFRTUpUNTNFbjVkcndId0MrZ2lPSU44eEN1?=
 =?utf-8?B?U29KZTI3LzlOdThLeDVNYmRuRVZodXRFNWpmckRTaXE4d3k1dG9qV1huYXZr?=
 =?utf-8?B?ZFBFNXR2LzF0bDFUSU93WEtBMVUvYkFYNjZQV00vN0ZReXI3QTJOT094R00x?=
 =?utf-8?B?ZmtRRytLYll5Nk40SUhHZ1M5ZHp4ZTJ2UkE1S3YzS3ZJZGVUZ3FyeEZ4NUR4?=
 =?utf-8?B?alp1OTk4OW9ueG9zYlZBR25SM0ZkN00rb2Yzb3VGaEJHUmhSMlAvM2xuV0kz?=
 =?utf-8?B?eVRTcVhqMjAvcy9wTlptQWI5WUZMSXFOdmRIaWlINjRlclBVTWVsVDJxZGl5?=
 =?utf-8?B?UGx5YytwbSt1VnFsUERuK2I1ZXUyMHQ0N0RQOWNzbmhKN0g3aG41ZXVCa29G?=
 =?utf-8?B?N1Mzb01FV3djaGg4Sy81MGt4a0JYcFVKOW9lZm15aFp6WXEyVEZZSnRLZjhw?=
 =?utf-8?B?YklyalV1Y3lXbU1XRkJ0UE1Uczg0NFVNUFZsUjdJSVBhblJ4N3BvRHNBZFJl?=
 =?utf-8?B?SlFjZVR4ck4rdlVwMGF4YU9VUjdwR3Z6b3QwdW9kcHRCMjVCL3Jla084b0hO?=
 =?utf-8?B?aUYxM2lqTUJXSkxxU2NpWFVjd1JYQWFBalNNbXlhRkR6bGM3cEtpUjJQMjhE?=
 =?utf-8?B?c3BSc1M0Q2tHNGJGTmNQRUlaRzJoZ3R6V3VTTHhqR0dHOTFQK1Uwem9CekhI?=
 =?utf-8?B?bWl2NGN2SjByTmVwSTBPTHZ0Um1jQmJVV01lb0U3RG54M2dQNjNsTUp0cmg5?=
 =?utf-8?B?ZDZpSEZoSkVlNXcvd3JZbWhyN0pFd1dkNnRZOVRBblUvWHVWbTR5M1FubmNr?=
 =?utf-8?Q?AHzR+JaTiwDmu4eclkYiypI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 41849fab-2c3e-4f46-a5e5-08d9a3915dc5
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 14:58:18.9684
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uizStdT/mh3ugemvhO+a1TWJ34x0tm95ZOIVrWW0a0wycBjoGo4HNW0uvoxTAP45P8aNNB8jCTw7AYTZGQRkZw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3389

The quarantine domain doesn't count as a DomU, as it won't itself
trigger any bad behavior. The workaround only needs enabling when an
actual DomU is about to gain control of a device. This then also means
enabling of the workaround can be deferred until immediately ahead of
the call to domain_context_mapping(). While there also stop open-coding
is_hardware_domain().

Fixes: 319f9a0ba94c ("passthrough: quarantine PCI devices")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2404,14 +2404,6 @@ static int reassign_device_ownership(
     int ret;
 
     /*
-     * Devices assigned to untrusted domains (here assumed to be any domU)
-     * can attempt to send arbitrary LAPIC/MSI messages. We are unprotected
-     * by the root complex unless interrupt remapping is enabled.
-     */
-    if ( (target != hardware_domain) && !iommu_intremap )
-        untrusted_msi = true;
-
-    /*
      * If the device belongs to the hardware domain, and it has RMRR, don't
      * remove it from the hardware domain, because BIOS may use RMRR at
      * booting time.
@@ -2455,6 +2447,15 @@ static int reassign_device_ownership(
     if ( !has_arch_pdevs(target) )
         vmx_pi_hooks_assign(target);
 
+    /*
+     * Devices assigned to untrusted domains (here assumed to be any domU)
+     * can attempt to send arbitrary LAPIC/MSI messages. We are unprotected
+     * by the root complex unless interrupt remapping is enabled.
+     */
+    if ( !iommu_intremap && !is_hardware_domain(target) &&
+         !is_system_domain(target) )
+        untrusted_msi = true;
+
     ret = domain_context_mapping(target, devfn, pdev);
     if ( ret )
     {



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 15:05:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 15:05:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224011.387038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSga-0002tl-Tc; Tue, 09 Nov 2021 15:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224011.387038; Tue, 09 Nov 2021 15:05:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSga-0002te-P1; Tue, 09 Nov 2021 15:05:20 +0000
Received: by outflank-mailman (input) for mailman id 224011;
 Tue, 09 Nov 2021 15:05:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkSga-0002tY-5P
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 15:05:20 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkSga-0001Bg-1r
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 15:05:20 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkSga-00065f-0d
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 15:05:20 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mkSgM-0005cW-RG; Tue, 09 Nov 2021 15:05:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=CE+zW9HqdvCpWDPosYfL3NizJGmPzeUaxG/miib8V1A=; b=qAz0EFMlBFA7xfCay388Ev9jqp
	pCgQwh1uwngydMJ/jPyVcmAkM1Mu1WegtxlIHPQio6XMqPdQDqJLXfdUEYU7ADnVJfi5uwwpQfL+g
	nw9+TPjUms+doYCB6Ko6azhPBESU0X6vkpbdQ9Y1OVgaH6eQIKPWpp6ROCVtLM4qLXOo=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24970.36376.658415.956968@mariner.uk.xensource.com>
Date: Tue, 9 Nov 2021 15:04:56 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Jan  Beulich <jbeulich@suse.com>,
    Julien Grall <julien@xen.org>,
    Stefano  Stabellini <sstabellini@kernel.org>,
    Wei Liu <wl@xen.org>,
    Hongyan Xia <hongyxia@amazon.com>,
    Dmitry Isaikin <isaikin-dmitry@yandex.ru>
Subject: Re: [PATCH for-4.16] Revert "domctl: improve locking during domain destruction"
In-Reply-To: <20211109143128.56089-1-roger.pau@citrix.com>
References: <20211109143128.56089-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16] Revert "domctl: improve locking during domain destruction""):
> This reverts commit 228ab9992ffb1d8f9d2475f2581e68b2913acb88.
> 
> Performance analysis has shown that dropping the domctl lock during
> domain destruction greatly increases the contention in the heap_lock,
> thus making parallel destruction of domains slower.
...
> Given the current point in the release, revert the commit and
> reinstate holding the domctl lock during domain destruction. Further
> work should be done in order to re-add more fine grained locking to
> the domain destruction path once a proper solution to avoid the
> heap_lock contention is found.
> ---
...
> Since this is a revert and not new code I think the risk is lower.
> There's however some risk, as the original commit was from 2017, and
> hence the surrounding code has changed a bit. It's also a possibility
> that some other parts of the domain destruction code now rely on this
> more fine grained locking. Local tests however haven't shown issues.

>From a release management point of view I don't regard this as the
kind of "revert" that ought to get any kind of special consideration.
The tree has been like this since 2017 and Xen 4.11 and many changes
have been happened since.

So I am going to treat this as an effectively new change.

AIUI it is a proposal to improve performance, not a bugfix.  Was this
change posted (or, proposed on-list) before the Xen 4.16 Last Posting
Date (24th of September) ?  Even if it was, it would need a freeze
exception.

Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 15:11:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 15:11:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224018.387049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSmK-0004HZ-HG; Tue, 09 Nov 2021 15:11:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224018.387049; Tue, 09 Nov 2021 15:11:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSmK-0004HS-Dg; Tue, 09 Nov 2021 15:11:16 +0000
Received: by outflank-mailman (input) for mailman id 224018;
 Tue, 09 Nov 2021 15:11:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5IxU=P4=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1mkSmI-0004HM-34
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 15:11:15 +0000
Received: from desiato.infradead.org (desiato.infradead.org
 [2001:8b0:10b:1:d65d:64ff:fe57:4e05])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f71be89-416f-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 16:11:01 +0100 (CET)
Received: from j217100.upc-j.chello.nl ([24.132.217.100]
 helo=noisy.programming.kicks-ass.net)
 by desiato.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux))
 id 1mkSlt-00F5Mq-0L; Tue, 09 Nov 2021 15:10:49 +0000
Received: from hirez.programming.kicks-ass.net
 (hirez.programming.kicks-ass.net [192.168.1.225])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (Client did not present a certificate)
 by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id A3DBB3000A3;
 Tue,  9 Nov 2021 16:10:47 +0100 (CET)
Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000)
 id 8DD472082F4A7; Tue,  9 Nov 2021 16:10:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f71be89-416f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:
	Sender:Reply-To:Content-ID:Content-Description;
	bh=jnHKpEZ2Xu28NQThFUXRYmIPCDni5z/NZIr/efA6+nw=; b=p/nmzY50Su/dpNlKwLu21GjINz
	7Vg+NQppmuRQhBfCLX7MkqiOrHHuyo+RMc1PJbA9JJvfcSGA3vYxTXKIUDEpwGFtlLsyW3027B3we
	YKn50VWCZmLj3irnqJHmw4RPtcYtxTnHnp9tLq1H404CJqVSbqTXcB5iETQi66QFPg/djT9RXARfk
	9/vXEzy5SrHO9vkbyBkNxgFOaogxlmIrMA1WswlwkkR0oYZx5iIDF2ZZ4tgBPZtgKJG29aHPe/EPk
	0rUQClGsQlIWXGHirfNM4iCihJQsl1Ro8oRhoHEpJ4ltauQHbQcP2/1FvxZT87FA6d01x1crVW9np
	I2y3BHnw==;
Date: Tue, 9 Nov 2021 16:10:47 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
	x86@kernel.org, hpa@zytor.com, jgross@suse.com
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
Message-ID: <YYqPd1c9HIQH9k/9@hirez.programming.kicks-ass.net>
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
 <YYk+D17oIOGKWNtN@hirez.programming.kicks-ass.net>
 <48fb48fa-c65d-8e38-dabb-cf9be21365ca@oracle.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <48fb48fa-c65d-8e38-dabb-cf9be21365ca@oracle.com>

On Mon, Nov 08, 2021 at 12:20:26PM -0500, Boris Ostrovsky wrote:
> 
> On 11/8/21 10:11 AM, Peter Zijlstra wrote:
> > On Tue, Nov 02, 2021 at 07:36:36PM -0400, Boris Ostrovsky wrote:
> > > Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
> > > introduced cpu_l2c_shared_map mask which is expected to be initialized
> > > by smp_op.smp_prepare_cpus(). That commit only updated
> > > native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().
> > > As result Xen PV guests crash in set_cpu_sibling_map().
> > > 
> > > While the new mask can be allocated in xen_pv_smp_prepare_cpus() one can
> > > see that both versions of smp_prepare_cpus ops share a number of common
> > > operations that can be factored out. So do that instead.
> > > 
> > > Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
> > > Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> > Thanks! I'll go stick that somewhere /urgent (I've had another report on
> > that here:
> > 
> >    https://lkml.kernel.org/r/20211105074139.GE174703@worktop.programming.kicks-ass.net
> > )
> 
> 
> Thank you. (I don't see this message btw)

Urgh, that thread never went to lkml :/

> > But looking at those functions; there seems to be more spurious
> > differences. For example, the whole sched_topology thing.
> 
> 
> I did look at that and thought this should be benign given that Xen PV
> is not really topology-aware. I didn't see anything that would be a
> cause for concern but perhaps you can point me to things I missed.

And me not being Xen aware... What does Xen-PV guests see of the CPUID
topology fields? Does it fully sanitize the CPUID data, or is it a clean
pass-through from whatever CPU the vCPU happens to run on at the time?


> > Should we re-architect this whole smp_prepare_cpus() thing instead? Have
> > a common function and a guest function? HyperV for instance seems to
> > call native_smp_prepare_cpus() and then does something extra (as does
> > xen_hvm).
> 
> 
> Something like
> 
> 
> void smp_prepare_cpus()
> 
> {
> 
>  // Code that this patch moved to smp_prepare_cpus_common();
> 
> 
>  smp_ops.smp_prepare_cpus(); // Including baremetal
> 
> }
> 
> 
> ?
> 
> 
> XenHVM and hyperV will need to call native smp_op too. Not sure this
> will be prettier than what it is now?

Hurmph, yeah. I was thinking it would allow pre and post common code,
but yeah, doesn't seem to make sense for now.


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 15:15:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 15:15:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224025.387059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSqa-0004vV-2f; Tue, 09 Nov 2021 15:15:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224025.387059; Tue, 09 Nov 2021 15:15:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSqZ-0004vO-Vv; Tue, 09 Nov 2021 15:15:39 +0000
Received: by outflank-mailman (input) for mailman id 224025;
 Tue, 09 Nov 2021 15:15:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=azzv=P4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mkSqY-0004vI-2L
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 15:15:38 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3020378-416f-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 16:15:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3020378-416f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636470936;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=Bcjri57atFZBp/+ifGojycw2ZCKYgjK1tc42FKfQLE8=;
  b=J1f2Vx3c8TEjIc1rHQ3o3gTkuxf/O8aWjq8Y/cTOy4U+Oz45jKT1IEtc
   7vyePFyD1wJi46f4T4Y1kWvbfkqpY3mRa77USwYYebbz5cSGtRPkMQNO7
   HLmDl8XQbc+JPzVq03uukarSExbL3mu7la3qZ1GvLZeGUNxAUdmjjvsFy
   8=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: bqyN6sKQRKQGceD3TntbwXkHST77c6mOSIIars39hEnfV29tmPJcr+s1iIPMu++sFz7lsUvEWN
 lAG1FCWXARDujHe5xRb7Co5zO0Q2Bukf4Z/FtR2md9kSZexKga5T4hIddNJ7h9/XsSX0AoPwYR
 /nn3rKdaSc1fvDTQFL9JpLjqiRRhHFkoFK7BMJCk9uoblXf/1HAn9Pcj9p8beFte/Tu8iKHyfZ
 FwpbW5GNvBaGksVAGlaKR5LsU4yF8BnuesRQJBA30ueZYKykHcqI0t3p0IpePEEua2SU1UkwLp
 jIKZqp6t/EdiArtCYnRMcbmW
X-SBRS: 5.1
X-MesageID: 57437871
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Q+KfpKipUv1mN8IX/bhIqOmuX161IxYKZh0ujC45NGQN5FlHY01je
 htvXDvXa/yLMzOkfotxaI6x9kNQuMKExtU2SAtp+HsyQ3wb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cw0IDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /12nsW0FAQgZpfrwtkXbRsJEgtQB7JZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2ZwVQqaBP
 qL1bxJwZx2RWBJBGG4tDagGgOyKtnvSLT5h/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 nnd423zDxUeNdqe4TmI6HShgqnIhyyTcIMJHby79/gvjFiS2nYCIAwfU1e2sb+jlyaWW9VZJ
 F0E+yMGpK075kutCNL6WnWQsHOC+xIRRddUO+k78x2WjLrZ5R6DAWoJRSIHb8Yp3Oc3Wj4Cx
 lKPh8nuBzFkrPuSU3313rWJqTK/PwAFIGlEYjULJSMH6dT+pIA4jjrUU81uVqWyi7XI9SrYm
 m7Q6nJk3vNK0JBNh/7TEU37byyEnbOQSlM2713teTiY5D17NY+PSba39g2OhRpfF7qxQl6Et
 XkCvsGR6uESEJ2A/BCwrPUx8KKBvKjcbmCF6bJ7N9x4rmn2pSb/FWxFyGgmfB8BDyoSRdP+j
 KY/Uyt17YQbAnalZLQfj2mZW5VzlviI+TgIu5npgjtyjnpZKFDvEMJGPxf4M4XRfK4Ey/xX1
 XCzK5fEMJriIf47pAdavs9EuVPR+ggwxHnIWbfwxAm93LyVaRa9EOlebgDfMLFit/3e+W05F
 uqz0ePQln2zt8WkM0HqHXM7dwhWfRDX+7iv86S7idJv0iI5QTp8Wpc9MJsqepB/nrQ9qws71
 irVZ6Os83Km3SevAVzTMhhLMeqzNb4i/SNTFXF9Zj6Ahil8CbtDGY9CLvPbi5F8r7c9pRO1J
 tFYE/i97gNnFm6apm9DNMal9+SPtn2D3GqzAsZsWxBmF7ZITA3V4N70OAzp8SgFFC2sssUi5
 ban02vmrVArHWyO1e7aN6CiyU2fp38YlL4gVkfEOIALKk7t7JJrO2r6ifpue5MALhDKxz270
 QeKAEhH+bmR8tFtqNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVsT69h8Hr9nwLgQ/dzqo7MGnA1oEG+SNwagC696I2nA1s5K7/UfyrhcsAqwe
 0SO5tgFZunZZJK7SAYcfVN3YP6C2PcYnijpwc40eEiqtjVq+LenUFlJO0XegiJqM7YoYpgux
 v0suZBK5lXn2AYqKNuPkgtd63+Ici4bS6wiu5wXXN3rhw4sxg0QaJDQEHarspSGatEKOUg2O
 D6EwqHFgu0ElEbFdnMyE1nL3PZc2stS6EwbkgdaKgTbgMfBi982wAZVoGY+QQlixxla1/5+Z
 zpwPEpvKKTSpzpliaCvhYx3992t0PFBxnHM9g==
IronPort-HdrOrdr: A9a23:6eUtU6HJuK8JhQQlpLqFDJHXdLJyesId70hD6qkvc3Nom52j+/
 xGws536faVslcssHFJo6HmBEClewKnyXcV2/hrAV7GZmfbUQSTXeNfBOfZsljd8mjFh5NgPM
 RbAtZD4b/LfCFHZK/BiWHSebZQo6j3zEnrv5an854Ed3AUV0gK1XYeNu/0KDwTeOEQbqBJaK
 Z0q/A37AaISDAyVICWF3MFV+/Mq5nik4/nWwcPA1oC5BOVhT2lxbbmG1zAty1uHg9n8PMHyy
 zoggb57qKsv7WSzQLd7Xba69BzlMH6wtVOKcSQgow+KynqiCyveIN9Mofy9gwdkaWK0hIHgd
 PMqxAvM4Ba7G7QRHi8pV/X1wzpwF8Vmgnf4G7dpUGmjd3yRTo8BcYEr5leaAHl500pu8w5+L
 5X3kqC3qAnQy/orWDY3ZzlRhtqnk27rT4JiugIlUFSVoMYdft4sZEfxkVIC50NdRiKp7zPKN
 MeTP002cwmMm9zNxvizytSKZ2XLzgO9y69Mwk/Upf/6UkSoJh7p3Fos/D30E1wsK7VcKM0lN
 gsBJ4Y4I2mfvVmHZ6VO91xM/dfKla9CC4kY1jiaWgOKsk8SgfwQtjMkfII2N0=
X-IronPort-AV: E=Sophos;i="5.87,220,1631592000"; 
   d="scan'208";a="57437871"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mHmubYf91dFSILjcgPxXZdJnKEaKkBXDtgnvAGxMolIQ5Jm1X2YJ/AeWorpBZeyVr/W3KaxsIJQEkoMHH17AYM9zUK7DRIySdf8+1UORXdV/xCpmtMbZVSzmwGSr1hIwGLB+17ZEdur8KLPNH1swbkSZeVqGVonaiPOpzdZnxyKTOzYubaFsKddZ5RHbDCpt5AYym9hnYn3x2gdZp+UdAZCstj9aC34C4UMwJVHcLRDNseva4bU9El7xOTfdgjb+wdMppKiqrrpL0pYpl9OMq7GPGnWSWgiv+w0L0cFXtJDwPz6HaEOck234CKq+kI7MLN+uhageWh5Moor7De2k2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R2kMCwwT4JmgyKttHt6v6srMtRRgrhPUgjJRAtqeu9g=;
 b=OHmdLnmFs5L29aNavn0TPpbCOXGVTbFLLuktV6rwvnKWkmF5HQCV/gCUSaIiw3Lhf2atGioGDpJgVv77ojUEPqKV3zLRw3Oy/gnnsps1KcGK7lsea9q8KGJiI/d1RcGV2cT8332hoW0tuptxGa6jx41tNlGl4ieFkWDobLbRi0+EuPXe9GtnmYONWH6XIkJ4MP5w5MVUZS2ozBw/7ToGyPYUfaicY8Kc3O2K7qcy38Pm+S6wGbexiVuEStMQWiCpjaYNY8A7Kif/LAtqhLC/2Wtzcm2qhs9SDYbf9DyNRiTygcBzlu9ZLCZ9889AjDZXaRYRhdqtUenzA4VPBgCVoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R2kMCwwT4JmgyKttHt6v6srMtRRgrhPUgjJRAtqeu9g=;
 b=PNob2Ej5/hYbzCNAsOkUZ+yu1Tlc9D9KrP/rSD2HgNqAL64TB7lkF8BQ+PXM+VYohixxKnvKiyveyXBG0PxjMGGdAr2qQGsWSK6PAoMTyc5GlzoHvkVD7LbxWrmoQEMwhEFEAHYzcvbyQ6Se7CTseIz187dKxcbg38ciS+iXAYc=
Date: Tue, 9 Nov 2021 16:15:24 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ian Jackson <iwj@xenproject.org>
CC: <xen-devel@lists.xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Hongyan Xia
	<hongyxia@amazon.com>, Dmitry Isaikin <isaikin-dmitry@yandex.ru>
Subject: Re: [PATCH for-4.16] Revert "domctl: improve locking during domain
 destruction"
Message-ID: <YYqQjMuARXwG4/yW@Air-de-Roger>
References: <20211109143128.56089-1-roger.pau@citrix.com>
 <24970.36376.658415.956968@mariner.uk.xensource.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <24970.36376.658415.956968@mariner.uk.xensource.com>
X-ClientProxiedBy: MR1P264CA0023.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2f::10) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 09e43d24-872e-4da5-12b7-08d9a393c4f4
X-MS-TrafficTypeDiagnostic: DM6PR03MB4396:
X-Microsoft-Antispam-PRVS: <DM6PR03MB439650A20EFD0E586B72D50A8F929@DM6PR03MB4396.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 0ztvlih6b3ovoDiXwXQC5g9YxR9BUXJ/3UibgV0+kJiv1cISOpym3b+/ZI0FNeP6ZJ2DYjitymbfPYFQLaMXCl1EmO9e/22/oXBPmP4AkLx6M6D4PLgz7DP4+l8xJ4Irgcz0g8K+xi+ZgWG2b+r2kA/AtfcWSoYM7tC33ti+msmq1EjPm6Q2nyfW1mL/boGH9qW/Eyg7Yx15KeCleCds6U78B+UqCVqtTxhjft53RoFPIpPYgkp5S7EZn/FRQ1BnDdD0DCfG5D9J01LBIsAblxvKUZqjwOoBgGxON7OY//udHGky7FLM3LJXLPRsrGaRw4R3X+H1UBdp8Lx61fN21qpo9qWO8C9z4Dz4RpYIkxIOeqCTJQDLq/mH+Ja2IH4ZvufGWxlqZBgzuFJZDbqGac3xhmAwk5V8gSlkbyGFCiVwL0A6diEMKefqst1CUtumfU0lg3If0Zit6gG6y43dW6+L0aUpPnsHcDBadSi0cTUOb0wMU+A8VxEA/5k7OhImeKHoLqkGUtKTtQheqlmMeHKMhJTfr97EEh5VDJREsVKxVmhAc6SJdc7tZMkYa73NU5Lx52fstJB6b5+Eb0I+ZjaMmlYdw6Fj5RZemp3QWPMT/SbPuwE056kiUe8kA00VPtCRMr5xPuVo+GPXXwh5bbUtxRNjBsrj7Yp/K/3/WdzVGEK3KdRZ+EGV203AdL5LyL+Ein57hs6aLT82/MHGofYloI4R+Z5jGBcs3Hax+flkQR21qSToJN/H7fWK5HQAgv0WZNeEGLpekIo//V/+sYX/MoogwSu2fBcNIUsIwRKyW0pWxNt7wtwDDbYb7H49PS166MVWHrya6KTp7QbeeA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(86362001)(85182001)(66556008)(5660300002)(66946007)(8936002)(966005)(8676002)(9686003)(316002)(508600001)(54906003)(83380400001)(82960400001)(38100700002)(2906002)(956004)(186003)(26005)(66476007)(4326008)(6486002)(33716001)(6666004)(6496006)(6916009)(23180200003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UEFpRjY1R1ZLMWJjVzQ4Uk1hQWZwQjRmMnNuUFhkZGMyaWZVZEdSZGZHekJm?=
 =?utf-8?B?cHlHMlFKNlFUcGIwcDh1Q0dFVWRWdkhBSjZDeTRGbXlMdE9VTm9jNk5iWTdq?=
 =?utf-8?B?Ui8yeGpQeElNR1k5RHY2bTlKSkU0OS9Wd29QTUplR0F4eVYzVmY0SkYwQk9F?=
 =?utf-8?B?K1JyZGpmR3p2L2N6M0JxMVNMcldqVlF2cXIrdFBhcFdhZWYvTEtZZXM2NG0y?=
 =?utf-8?B?aFpXYVFzNzExOVRKdEpBbi9qT1FPSWxBellVejNjWHJXb1pFQmwwQkZ5alVp?=
 =?utf-8?B?ZTZMc0lscGE3RlRVY25yNHRRTzl6RFpybkEwRW9GN2ZmRVRudlA4bWNjQVNl?=
 =?utf-8?B?RG9xVXFwNzBMOXMyNkZQeE5FeDFWZGJuYUs0aXBXTTFZd1FNMUVYYWdacDlX?=
 =?utf-8?B?YTk0a0JzZlYyOWNOazZuN1VFVVZlZTlIT1dDblU5VWRCa3BNUE9jdlg0NTh1?=
 =?utf-8?B?WVpJb0VqelQ1eFppUTNOd2dlcFVka3pkdm0vcy9DMHpIK3ZZc00vZUJodlhE?=
 =?utf-8?B?bzFoaXpWd2dKczBXUkpkNE5zenRNblRPQTF4L3lVTTEzZUtQMjAyeXhjQURn?=
 =?utf-8?B?NDl0QTRBQTA5OHFSaVU3am4zbTlXS3VFcFJybWxZUlRiSlpqZXZTYVVYYWhQ?=
 =?utf-8?B?TkRTN3h0ZzF5OTVxNnBsOEhqa3JCU1ZkSUUrMmpkK1c1ZVZJYWplZVQweElw?=
 =?utf-8?B?L0V0M2c0cG15Z1piN3V4T3RvVGZCSFBsTjR3NUdMcDIxeTl5bksrZ3ltZWVi?=
 =?utf-8?B?NEpWRzlUZGQxSXZGNzFEOW5ydGlXaTRodHFBZXFxZ0RhQ2dXNnNrZmZFWnlq?=
 =?utf-8?B?MjFMWmhvOERvVlkvTVNJbnMxays2b1NRYTVKcVoxK0pCZjZOaG0yNkRtS21M?=
 =?utf-8?B?ays4SXE0d3pOQjJxdmNCVFdqRVNqWFdJZnVzRVZVRDlZdzBmN2UvbHlSd253?=
 =?utf-8?B?UlU5eW01QU4vb2swNFp2Z3Z3VkdJL0lrSUlkZHdSSTc0WnNleWJWc0M1dy9z?=
 =?utf-8?B?eXpwRFMzY0lBUFFGcDFjd2E0YzNlSmJiY3B2bVFTcXdwSWIrUXRFYzRzWGl0?=
 =?utf-8?B?MzFNR1I5UWVrVWI4ZW9Yd3ZsRys4dTZtbWYrOENIRmpoM3htN3pkUzVvd2FD?=
 =?utf-8?B?VVRiVVB1QVZEWUV2TmdhTndsQlRtNlFzTVMvem5KN0poR3dnQnFqbStWTDgy?=
 =?utf-8?B?OWE0RE12OHJYcHU4RXpNS3dabGRyU2ZoYTgyYkdEdXd5RkpRSFFaaU1mUlpI?=
 =?utf-8?B?a2hvR3IxRnk3V3pyZE9MeXJFaFVkV29KczJmd2NtRjZwL3RXSkk4NWdGbStW?=
 =?utf-8?B?cWlOeENrVDZ0UlZxRXUrS28xUHk5MkZrWHVRUVFZaXBQaXkrMlJJQ2I3akRS?=
 =?utf-8?B?dXRBbFV2OEplOTZkOTNGTTNpUE5manBib0x5ZCs3b0ZZc25YcndkbGRUR3B6?=
 =?utf-8?B?MWFTNWpBNVJZZkdKcHQzNFJscWZ1OGNqTVJMWFBKcHkvdmVwU2hNVHozS3Fo?=
 =?utf-8?B?cEtKVDNFbEpCMWQ3ZW5QbS9rY2U1andXWDFPNEdLeEFBSVFhZC9oK3YrRTll?=
 =?utf-8?B?SnEzZTFERWZEWUorZ0hub21IdWRTdzJIa0dRSjFmZWVlRklhWTZWNkNSY28x?=
 =?utf-8?B?RnhoWExTSmtnU25jNXJ3ZlhScjFxemFvY2oyYmxJUzRlRlJyZzgvNWhGaXVk?=
 =?utf-8?B?L0EzdVJUdDludEEwR3hqOXN3bklIOHlmTlE2MWwxMXU5Z0RYdzdoeTNoeWJa?=
 =?utf-8?B?YVl5aXFyWm1CTkU4ellvcWdGSVhYU3N6SkVRalJlbXBNdW9TOEwzdGEvMS9S?=
 =?utf-8?B?ei9CUUVIazM1MmdpZ3NTTVRNU2NPMk10bDVNUXdGR1dhTUFIRGI1YUFpL01q?=
 =?utf-8?B?RDVuRUVLZzhJL1VMZ01UaTVDb3RZN3U1RDlyTmpSdWMwelNRL2xjNS9GY0U5?=
 =?utf-8?B?VDVzdXh4RUxlci9UZldZSXBFTW95RmlnazNsOXhMM1A2NEg2eUM3MGlvYklw?=
 =?utf-8?B?MXp6MXQ5QnE1K1pzUkR6dzNiOUJ1djhkRnlxTnlZMVdwSkdvTG1OT3NGTnMw?=
 =?utf-8?B?R2tBdSttblBJVXdHRS94YUdQeDdLa2tSYkV1bndVcmpwcHQ5SGQ3OHFYcm5G?=
 =?utf-8?B?bThWb1hoTGxhVkUrcnhiL1dwS1ZWbE9Tc0Mzb1krK1oyVGwxUWttY0NuRjNI?=
 =?utf-8?Q?gqp1mNzxZCocm6VNMiVfcAw=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 09e43d24-872e-4da5-12b7-08d9a393c4f4
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2021 15:15:31.1427
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BNgMNJ1VAuaTtuz2POU/exBKXXZvrWvz17Jk/14gnlublaSWdg53l9XrJJJ8l2C5bHglZkZFfiiWNcZ49xFfVA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4396
X-OriginatorOrg: citrix.com

On Tue, Nov 09, 2021 at 03:04:56PM +0000, Ian Jackson wrote:
> Roger Pau Monne writes ("[PATCH for-4.16] Revert "domctl: improve locking during domain destruction""):
> > This reverts commit 228ab9992ffb1d8f9d2475f2581e68b2913acb88.
> > 
> > Performance analysis has shown that dropping the domctl lock during
> > domain destruction greatly increases the contention in the heap_lock,
> > thus making parallel destruction of domains slower.
> ...
> > Given the current point in the release, revert the commit and
> > reinstate holding the domctl lock during domain destruction. Further
> > work should be done in order to re-add more fine grained locking to
> > the domain destruction path once a proper solution to avoid the
> > heap_lock contention is found.
> > ---
> ...
> > Since this is a revert and not new code I think the risk is lower.
> > There's however some risk, as the original commit was from 2017, and
> > hence the surrounding code has changed a bit. It's also a possibility
> > that some other parts of the domain destruction code now rely on this
> > more fine grained locking. Local tests however haven't shown issues.
> 
> From a release management point of view I don't regard this as the
> kind of "revert" that ought to get any kind of special consideration.
> The tree has been like this since 2017 and Xen 4.11 and many changes
> have been happened since.
> 
> So I am going to treat this as an effectively new change.
> 
> AIUI it is a proposal to improve performance, not a bugfix.  Was this
> change posted (or, proposed on-list) before the Xen 4.16 Last Posting
> Date (24th of September) ?  Even if it was, it would need a freeze
> exception.

It was posted here:

https://lore.kernel.org/xen-devel/de46590ad566d9be55b26eaca0bc4dc7fbbada59.1585063311.git.hongyxia@amazon.com/

Which was missing a spin_barrier, and in a different form here:

https://lore.kernel.org/xen-devel/2e7044de3cd8a6768a20250e61fe262f3a018724.1631790362.git.isaikin-dmitry@yandex.ru/

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 15:21:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 15:21:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224030.387071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSvq-0006KL-NT; Tue, 09 Nov 2021 15:21:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224030.387071; Tue, 09 Nov 2021 15:21:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkSvq-0006KE-Jj; Tue, 09 Nov 2021 15:21:06 +0000
Received: by outflank-mailman (input) for mailman id 224030;
 Tue, 09 Nov 2021 15:21:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uToR=P4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mkSvo-0006K8-Po
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 15:21:04 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a6e65a46-4170-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 16:21:03 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 13B5B21AFE;
 Tue,  9 Nov 2021 15:21:03 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C6ACD13A5E;
 Tue,  9 Nov 2021 15:21:02 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id uyldLt6RimFCEgAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 09 Nov 2021 15:21:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6e65a46-4170-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1636471263; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=55UhGz8Xj0j4iIaZX9f4aP6c7CvX7PwH8pmV2s8Ghbs=;
	b=KiefXh08T6jTGlJe8bt0mb7jSRgDpNArAzowmPuJidarFpSnQ+QUz306utWr+Q3/xLJQ0G
	8k9BcsfK9q1EHCALVBTX3JBTU6B0+DjnE4SNbQdRkhbi0Eo3w0zcM3GFranzlWYWvWFeEC
	G1RER3NkC6JUvfxygiINWA1wVc7Hh04=
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
To: Peter Zijlstra <peterz@infradead.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
 x86@kernel.org, hpa@zytor.com
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
 <YYk+D17oIOGKWNtN@hirez.programming.kicks-ass.net>
 <48fb48fa-c65d-8e38-dabb-cf9be21365ca@oracle.com>
 <YYqPd1c9HIQH9k/9@hirez.programming.kicks-ass.net>
From: Juergen Gross <jgross@suse.com>
Message-ID: <c8412f70-2968-a581-50ec-afe91e492fb2@suse.com>
Date: Tue, 9 Nov 2021 16:21:02 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <YYqPd1c9HIQH9k/9@hirez.programming.kicks-ass.net>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="xEJShmZjvMUyfJGOcun23tdXfcAqZIez2"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--xEJShmZjvMUyfJGOcun23tdXfcAqZIez2
Content-Type: multipart/mixed; boundary="sA2iziL2ShqpjLP5KpMzUsSWpuovyAuFW";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Peter Zijlstra <peterz@infradead.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
 x86@kernel.org, hpa@zytor.com
Message-ID: <c8412f70-2968-a581-50ec-afe91e492fb2@suse.com>
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
 <YYk+D17oIOGKWNtN@hirez.programming.kicks-ass.net>
 <48fb48fa-c65d-8e38-dabb-cf9be21365ca@oracle.com>
 <YYqPd1c9HIQH9k/9@hirez.programming.kicks-ass.net>
In-Reply-To: <YYqPd1c9HIQH9k/9@hirez.programming.kicks-ass.net>

--sA2iziL2ShqpjLP5KpMzUsSWpuovyAuFW
Content-Type: multipart/mixed;
 boundary="------------ED979D15ED11F536DBB61649"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------ED979D15ED11F536DBB61649
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 09.11.21 16:10, Peter Zijlstra wrote:
> On Mon, Nov 08, 2021 at 12:20:26PM -0500, Boris Ostrovsky wrote:
>>
>> On 11/8/21 10:11 AM, Peter Zijlstra wrote:
>>> On Tue, Nov 02, 2021 at 07:36:36PM -0400, Boris Ostrovsky wrote:
>>>> Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
>>>> introduced cpu_l2c_shared_map mask which is expected to be initializ=
ed
>>>> by smp_op.smp_prepare_cpus(). That commit only updated
>>>> native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().=

>>>> As result Xen PV guests crash in set_cpu_sibling_map().
>>>>
>>>> While the new mask can be allocated in xen_pv_smp_prepare_cpus() one=
 can
>>>> see that both versions of smp_prepare_cpus ops share a number of com=
mon
>>>> operations that can be factored out. So do that instead.
>>>>
>>>> Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
>>>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>>> Thanks! I'll go stick that somewhere /urgent (I've had another report=
 on
>>> that here:
>>>
>>>     https://lkml.kernel.org/r/20211105074139.GE174703@worktop.program=
ming.kicks-ass.net
>>> )
>>
>>
>> Thank you. (I don't see this message btw)
>=20
> Urgh, that thread never went to lkml :/
>=20
>>> But looking at those functions; there seems to be more spurious
>>> differences. For example, the whole sched_topology thing.
>>
>>
>> I did look at that and thought this should be benign given that Xen PV=

>> is not really topology-aware. I didn't see anything that would be a
>> cause for concern but perhaps you can point me to things I missed.
>=20
> And me not being Xen aware... What does Xen-PV guests see of the CPUID
> topology fields? Does it fully sanitize the CPUID data, or is it a clea=
n
> pass-through from whatever CPU the vCPU happens to run on at the time?

The latter. :-(


Juergen

--------------ED979D15ED11F536DBB61649
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------ED979D15ED11F536DBB61649--

--sA2iziL2ShqpjLP5KpMzUsSWpuovyAuFW--

--xEJShmZjvMUyfJGOcun23tdXfcAqZIez2
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGKkd4FAwAAAAAACgkQsN6d1ii/Ey+Y
SAf+JT6M2djUTMOSiAHjZM91FpvKMCnWFrgof57TVfbCyxi7IqVAnSO1bf9e4U9Hpb51thZaQsRZ
vVN1FkJ3tNCFkhtwEfWMSGklt3kx8p/BOMRtcII4U1/tk39HhxJ+ezxyAUkJmGCQwnE5KwYuuYus
XWF26VOIuAJWpR7Nb5BVk9d37nuNPaRa7CMTcEarLsDAhUbEFGGX0sFW6RFMBdioidiDBB0GDWKt
ln1iW9KaXHBX7jbLewbQiSg6kob3IlD0M+YdTfHssEYqC2rALVYIlaxCuspqbdYZw7vi6MkIm7Ws
1qKXHxo+LGpC4wb9m48TCQxM0ikSJNx0Qr3gqALWXg==
=p9H+
-----END PGP SIGNATURE-----

--xEJShmZjvMUyfJGOcun23tdXfcAqZIez2--


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 15:28:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 15:28:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224041.387082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkT30-00075j-LG; Tue, 09 Nov 2021 15:28:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224041.387082; Tue, 09 Nov 2021 15:28:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkT30-00075c-I6; Tue, 09 Nov 2021 15:28:30 +0000
Received: by outflank-mailman (input) for mailman id 224041;
 Tue, 09 Nov 2021 15:28:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mkT2z-00075W-BC
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 15:28:29 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkT2y-0001cR-FS; Tue, 09 Nov 2021 15:28:28 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=[192.168.22.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkT2y-0007XH-9F; Tue, 09 Nov 2021 15:28:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=3bzJbYoNtvxbfeMp6Wh5AaJ2nBv2+5/oBc7+qdWT0oQ=; b=qfY1BIR5GFrr3m7vjP9j/Z0w7G
	Dg5T6mwYqgCJoWzchSMtya/52Tnkx4Q3cW/I4XzEe0SJKSWtEKlepYJuWLdtcHf/NIep50QB4Iq5R
	lSIHYJd1gfhFAjBCEhwMbJPSQkOv63Y/eenKxGtzHxMMTe2/zrnYZywaxGe/q5+PH1K0=;
Message-ID: <0d79cc56-f3e8-bf6a-4ed9-ac2fe64aba43@xen.org>
Date: Tue, 9 Nov 2021 15:28:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] Revert "domctl: improve locking during domain
 destruction"
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Hongyan Xia <hongyxia@amazon.com>, Dmitry Isaikin
 <isaikin-dmitry@yandex.ru>, Ian Jackson <iwj@xenproject.org>
References: <20211109143128.56089-1-roger.pau@citrix.com>
 <a708312d-ab1b-4784-b1fe-01dbb680e7e9@xen.org>
 <YYqL9nViQiDw9C30@Air-de-Roger>
From: Julien Grall <julien@xen.org>
In-Reply-To: <YYqL9nViQiDw9C30@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 09/11/2021 14:55, Roger Pau Monné wrote:
> On Tue, Nov 09, 2021 at 02:42:58PM +0000, Julien Grall wrote:
>> Hi Roger,
>>
>> On 09/11/2021 14:31, Roger Pau Monne wrote:
>>> This reverts commit 228ab9992ffb1d8f9d2475f2581e68b2913acb88.
>>>
>>> Performance analysis has shown that dropping the domctl lock during
>>> domain destruction greatly increases the contention in the heap_lock,
>>> thus making parallel destruction of domains slower.
>>>
>>> The following lockperf data shows the difference between the current
>>> code and the reverted one:
>>>
>>> lock:  3342357(2.268295505s), block:  3263853(18.556650797s)
>>> lock:  2788704(0.362311723s), block:   222681( 0.091152276s)
>>
>> Thanks for the numbers, this is already an improvement from the reverted.
>>
>> Can you also please provide some details on the setup that was used to get
>> the number? (e.g. how many guests, amount of memory...).
> 
> Those are from Dmitry, and are gathered after destroying 5 guests in
> parallel. Given his previous emails he seems to use 2GB HVM guests for
> other tests, so I would assume that's the case for the lock profile data
> also (albeit it's not said explicitly):
> 
> https://lists.xenproject.org/archives/html/xen-devel/2021-09/msg01515.html
> 
> I'm not sure it's worth adding this explicitly, as it's not a very
> complex test case. Probably any attempts to destroy a minimal amount
> of guests in parallel (5?) will already show the lock contention in
> the profiling.

In this case, I am not too concerned about not been able to reproduce 
it. However, I think it is a good practice to always post the setup 
along with the numbers.

This makes easier to understand the context of the patch and avoid 
spending time digging into the archives to find the original report.

Anyway, you already wrote everything above. So this is a matter of 
adding your first paragraph in the commit message + maybe a link to the 
original discussion(s).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 15:28:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 15:28:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224042.387093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkT3L-0007VU-UW; Tue, 09 Nov 2021 15:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224042.387093; Tue, 09 Nov 2021 15:28:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkT3L-0007VN-Qs; Tue, 09 Nov 2021 15:28:51 +0000
Received: by outflank-mailman (input) for mailman id 224042;
 Tue, 09 Nov 2021 15:28:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j4nh=P4=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mkT3K-0007Tm-P4
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 15:28:50 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc602d69-4171-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 16:28:49 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:39002)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mkT33-000x3r-0M (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 09 Nov 2021 15:28:33 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id C53601FBEE;
 Tue,  9 Nov 2021 15:28:32 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc602d69-4171-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
To: Peter Zijlstra <peterz@infradead.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
 x86@kernel.org, hpa@zytor.com, jgross@suse.com
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
 <YYk+D17oIOGKWNtN@hirez.programming.kicks-ass.net>
 <48fb48fa-c65d-8e38-dabb-cf9be21365ca@oracle.com>
 <YYqPd1c9HIQH9k/9@hirez.programming.kicks-ass.net>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
Message-ID: <aef8093d-f7da-c8b4-ebf6-6053b50b77ba@srcf.net>
Date: Tue, 9 Nov 2021 15:28:32 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YYqPd1c9HIQH9k/9@hirez.programming.kicks-ass.net>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB

On 09/11/2021 15:10, Peter Zijlstra wrote:
> On Mon, Nov 08, 2021 at 12:20:26PM -0500, Boris Ostrovsky wrote:
>>> But looking at those functions; there seems to be more spurious
>>> differences. For example, the whole sched_topology thing.
>>
>> I did look at that and thought this should be benign given that Xen PV=

>> is not really topology-aware. I didn't see anything that would be a
>> cause for concern but perhaps you can point me to things I missed.
> And me not being Xen aware... What does Xen-PV guests see of the CPUID
> topology fields? Does it fully sanitize the CPUID data, or is it a clea=
n
> pass-through from whatever CPU the vCPU happens to run on at the time?

That depends on hardware support (CPUID Faulting or not), version of Xen
(anything before Xen 4.7 is totally insane.=C2=A0 Anything more recent is=

only moderately insane), and whether the kernel asks via the enlightened
CPUID path or not.

On hardware lacking CPUID faulting, and for a kernel using
native_cpuid() where it ought to be using the PVOP, it sees the real
hardware value of the CPU it happens to be running on.

~Andrew



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 15:32:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 15:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224051.387103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkT6v-0000cc-E8; Tue, 09 Nov 2021 15:32:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224051.387103; Tue, 09 Nov 2021 15:32:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkT6v-0000cV-BE; Tue, 09 Nov 2021 15:32:33 +0000
Received: by outflank-mailman (input) for mailman id 224051;
 Tue, 09 Nov 2021 15:32:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkT6u-0000cL-5i; Tue, 09 Nov 2021 15:32:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkT6u-0001hh-1c; Tue, 09 Nov 2021 15:32:32 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkT6t-0001gx-Qn; Tue, 09 Nov 2021 15:32:31 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkT6t-0004Ja-Q8; Tue, 09 Nov 2021 15:32:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ZEYplXGs83RREQnse5C0xuSyIhnJoAA9IZfzStu48wY=; b=jxQpuPqQYbqoI/k1gS6G1FgwRs
	r14j5Oa1yBxsSHNmUAy96lYtEM8MJTN+nbH40SD2euS/GnsrrRvYpltq9jwkJqA0C950pzMyp7Sez
	H96AugnS9KvVHN49bvwnJtUcbjjvZo3yYy0PB4n9xCclkOKwE3zkM+DoAp4IErP25THk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166091-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166091: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=f976f904652a2ace161920d5ed44843787d9c3ba
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 15:32:31 +0000

flight 166091 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166091/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              f976f904652a2ace161920d5ed44843787d9c3ba
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  487 days
Failing since        151818  2020-07-11 04:18:52 Z  486 days  472 attempts
Testing same since   166091  2021-11-09 04:18:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 82686 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 16:18:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 16:18:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224061.387117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkTou-0005BC-3O; Tue, 09 Nov 2021 16:18:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224061.387117; Tue, 09 Nov 2021 16:18:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkTou-0005B5-0S; Tue, 09 Nov 2021 16:18:00 +0000
Received: by outflank-mailman (input) for mailman id 224061;
 Tue, 09 Nov 2021 16:17:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iQwn=P4=yandex.ru=isaikin-dmitry@srs-se1.protection.inumbo.net>)
 id 1mkTos-0005Az-Id
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 16:17:58 +0000
Received: from forward501j.mail.yandex.net (forward501j.mail.yandex.net
 [5.45.198.251]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9911df42-4178-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 17:17:56 +0100 (CET)
Received: from sas1-97174d5fd2ec.qloud-c.yandex.net
 (sas1-97174d5fd2ec.qloud-c.yandex.net
 [IPv6:2a02:6b8:c14:5da4:0:640:9717:4d5f])
 by forward501j.mail.yandex.net (Yandex) with ESMTP id B17236234F9;
 Tue,  9 Nov 2021 19:17:54 +0300 (MSK)
Received: from 2a02:6b8:c08:78a8:0:640:8780:f191
 (2a02:6b8:c08:78a8:0:640:8780:f191 [2a02:6b8:c08:78a8:0:640:8780:f191])
 by sas1-97174d5fd2ec.qloud-c.yandex.net (mxback/Yandex) with HTTP id
 qHXg442Da8c1-HrDWb5b7; Tue, 09 Nov 2021 19:17:53 +0300
Received: by sas1-8780f191e495.qloud-c.yandex.net with HTTP;
 Tue, 09 Nov 2021 19:17:53 +0300
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9911df42-4178-11ec-9787-a32c541c8605
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1636474673;
	bh=ix0EkztLDg7YPp+yxzGmV1yg09IwLI+EzQQk+LsGrdg=;
	h=Message-Id:References:Date:Cc:Subject:To:From;
	b=qbuo/rqtugKDN/WL0u4ZqKTg6CCBdIkVzyzbi+1n3/E3tJahkwSDZr3xnEF6gHGV/
	 h/kDLWC4TPzBru5KvX0Kj6jr8px4lCGmfE8AC9Nb/I/G07ChTy61B3uDusvvOk8GkL
	 5lZIlKwtfsad4unSu+VPx1N9ROcLkg60Mo3bmKW0=
Authentication-Results: sas1-97174d5fd2ec.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru
From: Dmitry Isaykin <isaikin-dmitry@yandex.ru>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>
References: <54c1bcb40afa8a6f36ab4bec8c91523a535c911b.1633090722.git.isaikin-dmitry@yandex.ru>
Subject: Re: [PATCH v5] tools/xl: fix autoballoon regex
MIME-Version: 1.0
X-Mailer: Yamail [ http://yandex.ru ] 5.0
Date: Tue, 09 Nov 2021 19:17:53 +0300
Message-Id: <844291636472349@iva2-5f9649d2845f.qloud-c.yandex.net>
Content-Transfer-Encoding: base64
Content-Type: text/html; charset=utf-8

PGRpdj5VcDxiciAvPjxiciAvPjE1OjI0LCAxINC+0LrRgtGP0LHRgNGPIDIwMjEg0LMuLCBEbWl0
cnkgSXNheWtpbiAmbHQ7PGEgaHJlZj0ibWFpbHRvOmlzYWlraW4tZG1pdHJ5QHlhbmRleC5ydSIg
cmVsPSJub29wZW5lciBub3JlZmVycmVyIj5pc2Fpa2luLWRtaXRyeUB5YW5kZXgucnU8L2E+Jmd0
Ozo8YmxvY2txdW90ZT48cD5UaGlzIHJlZ2V4IGlzIHVzZWQgZm9yIGF1dG8tYmFsbG9vbiBtb2Rl
IGRldGVjdGlvbiBiYXNlZCBvbiBYZW4gY29tbWFuZCBsaW5lLjxiciAvPjxiciAvPlRoZSBjYXNl
IG9mIHNwZWNpZnlpbmcgYSBuZWdhdGl2ZSBzaXplIHdhcyBoYW5kbGVkIGluY29ycmVjdGx5Ljxi
ciAvPkZyb20gbWlzYy94ZW4tY29tbWFuZC1saW5lIGRvY3VtZW50YXRpb246PGJyIC8+PGJyIC8+
wqDCoMKgwqBkb20wX21lbSAoeDg2KTxiciAvPsKgwqDCoMKgPSBMaXN0IG9mICggbWluOiZsdDtz
eiZndDsgfCBtYXg6Jmx0O3N6Jmd0OyB8ICZsdDtzeiZndDsgKTxiciAvPjxiciAvPsKgwqDCoMKg
SWYgYSBzaXplIGlzIHBvc2l0aXZlLCBpdCByZXByZXNlbnRzIGFuIGFic29sdXRlIHZhbHVlLjxi
ciAvPsKgwqDCoMKgSWYgYSBzaXplIGlzIG5lZ2F0aXZlLCBpdCBpcyBzdWJ0cmFjdGVkIGZyb20g
dGhlIHRvdGFsIGF2YWlsYWJsZSBtZW1vcnkuPGJyIC8+PGJyIC8+QWxzbyBhZGQgc3VwcG9ydCBm
b3IgW3RUXSBncmFudWxhcml0eSBzdWZmaXguPGJyIC8+QWxzbyBhZGQgc3VwcG9ydCBmb3IgbWVt
b3J5IGZyYWN0aW9ucyAoaS5lLiAnNTAlJyBvciAnMUcrMjUlJykuPGJyIC8+PGJyIC8+U2lnbmVk
LW9mZi1ieTogRG1pdHJ5IElzYXlraW4gJmx0OzxhIGhyZWY9Im1haWx0bzppc2Fpa2luLWRtaXRy
eUB5YW5kZXgucnUiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+aXNhaWtpbi1kbWl0cnlAeWFu
ZGV4LnJ1PC9hPiZndDs8YnIgLz5SZXZpZXdlZC1ieTogQW50aG9ueSBQRVJBUkQgJmx0OzxhIGhy
ZWY9Im1haWx0bzphbnRob255LnBlcmFyZEBjaXRyaXguY29tIiByZWw9Im5vb3BlbmVyIG5vcmVm
ZXJyZXIiPmFudGhvbnkucGVyYXJkQGNpdHJpeC5jb208L2E+Jmd0OzxiciAvPi0tLTxiciAvPkNo
YW5nZXMgaW4gdjU6PGJyIC8+LSBhZGQgQW50aG9ueSdzIHJldmlld2VkLWJ5PGJyIC8+PGJyIC8+
Q2hhbmdlcyBpbiB2NDo8YnIgLz4tIGltcHJvdmUgcmVnZXggYWZ0ZXIgY29kZSByZXZpZXc8YnIg
Lz48YnIgLz5DaGFuZ2VzIGluIHYzOjxiciAvPi0gYWRkIHN1cHBvcnQgZm9yIFt0VF0gZ3JhbnVs
YXJpdHkgc3VmZml4PGJyIC8+LSBhZGQgc3VwcG9ydCBmb3IgbWVtb3J5IGZyYWN0aW9uczxiciAv
PjxiciAvPkNoYW5nZXMgaW4gdjI6PGJyIC8+LSBhZGQgbWlzc2luZyBTaWduZWQtb2ZmLWJ5IHRh
ZzxiciAvPjxiciAvPk5CISBOZXcgYXV0b2JhbGxvbiByZWdleCBwYXR0ZXJuIGlzIGdvb2QgZW5v
dWdoLCBidXQgbm90IGZ1bGx5IGNvcnJlY3QuPGJyIC8+U2VlIHRlc3QgYmVsb3cuPGJyIC8+PGJy
IC8+YGBgPGJyIC8+aW1wb3J0IHB5dGVzdDxiciAvPmltcG9ydCByZTxiciAvPjxiciAvPnNpemVf
cGF0dGVybiA9IHIiLT9bMC05XStbYkJrS21NZ0d0VF0/IjxiciAvPnBhdHRlcm4gPSByIihefCAp
ZG9tMF9tZW09KCh8bWluOnxtYXg6KSh7c2l6ZX18KHtzaXplfVwrKT9bMC05XXs8IS0tIC0tPnsx
LDJ9fSUpLD8pKygkfCApIi5mb3JtYXQoc2l6ZT1zaXplX3BhdHRlcm4pPGJyIC8+PGJyIC8+QHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjbWRsaW5lJywgWzxiciAvPsKgwqDCoMKgJ2RvbTBfbWVt
PTEnLDxiciAvPsKgwqDCoMKgJyBkb20wX21lbT0xJyw8YnIgLz7CoMKgwqDCoCdkb20wX21lbT0x
RycsPGJyIC8+wqDCoMKgwqAnZG9tMF9tZW09MjUlJyw8YnIgLz7CoMKgwqDCoCdkb20wX21lbT0x
ZysyNSUgJyw8YnIgLz7CoMKgwqDCoCcgZG9tMF9tZW09MUcrMTAlLG1heDoxMDBUKzUwJScsPGJy
IC8+wqDCoMKgwqAnZG9tMF9tZW09LTFCJyw8YnIgLz7CoMKgwqDCoCdkb20wX21lbT0tMTAyNDBN
KzUlLG1pbjo1MTJNICcsPGJyIC8+wqDCoMKgwqAnIGRvbTBfbWVtPW1pbjotMjA0OG0sbWF4Oi0y
MDQ4TSAnLDxiciAvPl0pPGJyIC8+ZGVmIHRlc3RfYXV0b2JhbGxvb25fcmVnZXhfbWF0Y2goY21k
bGluZSk6PGJyIC8+wqDCoMKgwqBhc3NlcnQgcmUubWF0Y2gocGF0dGVybiwgY21kbGluZSk8YnIg
Lz48YnIgLz5AcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NtZGxpbmUnLCBbPGJyIC8+wqDCoMKg
wqAnZG9tMF9tZW0gPSAxJyw8YnIgLz7CoMKgwqDCoCdkb20wX21lbT0gJyw8YnIgLz7CoMKgwqDC
oCdkb20wX21lbScsPGJyIC8+wqDCoMKgwqAnRE9NMF9tZW09MTBHJyw8YnIgLz7CoMKgwqDCoCdk
b20wX21lbT0tMTAlJywgIyBkb2VzIG5vdCBwYXNzPGJyIC8+wqDCoMKgwqAnIGRvbTBfbWVtPS0x
MCUrMTBHICcsPGJyIC8+wqDCoMKgwqAnZG9tMF9tZW09MUcsJywgIyBkb2VzIG5vdCBwYXNzPGJy
IC8+wqDCoMKgwqAnZG9tMF9tZW09MUcsbWF4OjI1JSwnLCAjZG9lcyBub3QgcGFzczxiciAvPl0p
PGJyIC8+ZGVmIHRlc3RfYXV0b2JhbGxvb25fcmVnZXhfZG9udF9tYXRjaChjbWRsaW5lKTo8YnIg
Lz7CoMKgwqDCoGFzc2VydCBub3QgcmUubWF0Y2gocGF0dGVybiwgY21kbGluZSk8YnIgLz5gYGA8
YnIgLz4tLS08YnIgLz7CoHRvb2xzL3hsL3hsLmMgfCA4ICsrKysrKystPGJyIC8+wqAxIGZpbGUg
Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pPGJyIC8+PGJyIC8+ZGlmZiAt
LWdpdCBhL3Rvb2xzL3hsL3hsLmMgYi90b29scy94bC94bC5jPGJyIC8+aW5kZXggNDEwN2QxMGZk
NC4uZjQyMmY5ZmVkNSAxMDA2NDQ8YnIgLz4tLS0gYS90b29scy94bC94bC5jPGJyIC8+KysrIGIv
dG9vbHMveGwveGwuYzxiciAvPkBAIC04MCwxNCArODAsMjAgQEAgc3RhdGljIGludCBhdXRvX2F1
dG9iYWxsb29uKHZvaWQpPGJyIC8+wqDCoMKgwqDCoGlmICghaW5mbyk8YnIgLz7CoMKgwqDCoMKg
wqDCoMKgwqByZXR1cm4gMTsgLyogZGVmYXVsdCB0byBvbiAqLzxiciAvPsKgPGJyIC8+KyNkZWZp
bmUgU0laRV9QQVRURVJOICItP1swLTldK1tiQmtLbU1nR3RUXT8iPGJyIC8+KzxiciAvPsKgwqDC
oMKgwqByZXQgPSByZWdjb21wKCZhbXA7cmVnZXgsPGJyIC8+LSAiKF58IClkb20wX21lbT0oKHxt
aW46fG1heDopWzAtOV0rW2JCa0ttTWdHXT8sPykrKCR8ICkiLDxiciAvPisgIihefCApZG9tMF9t
ZW09KCh8bWluOnxtYXg6KSgiIFNJWkVfUEFUVEVSTiAifCgiIFNJWkVfUEFUVEVSTiAiXFwrKT9b
MC05XXsxLDJ9JSksPykrKCR8ICkiLDxiciAvPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgUkVHX05PU1VCIHwgUkVHX0VYVEVOREVEKTs8YnIgLz4rPGJyIC8+KyN1bmRlZiBT
SVpFX1BBVFRFUk48YnIgLz4rPGJyIC8+wqDCoMKgwqDCoGlmIChyZXQpPGJyIC8+wqDCoMKgwqDC
oMKgwqDCoMKgcmV0dXJuIDE7PGJyIC8+wqA8YnIgLz7CoMKgwqDCoMKgcmV0ID0gcmVnZXhlYygm
YW1wO3JlZ2V4LCBpbmZvLSZndDtjb21tYW5kbGluZSwgMCwgTlVMTCwgMCk7PGJyIC8+wqDCoMKg
wqDCoHJlZ2ZyZWUoJmFtcDtyZWdleCk7PGJyIC8+KzxiciAvPsKgwqDCoMKgwqByZXR1cm4gcmV0
ID09IFJFR19OT01BVENIOzxiciAvPsKgfTxiciAvPsKgPC9wPi0tPGJyIC8+Mi4zMy4wPGJyIC8+
wqA8L2Jsb2NrcXVvdGU+PGJyIC8+PGJyIC8+LS08YnIgLz7QntGC0L/RgNCw0LLQu9C10L3QviDQ
uNC3INC80L7QsdC40LvRjNC90L7Qs9C+INC/0YDQuNC70L7QttC10L3QuNGPINCv0L3QtNC10LrR
gS7Qn9C+0YfRgtGLPC9kaXY+


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 16:54:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 16:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224074.387128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkUNm-0000o2-2X; Tue, 09 Nov 2021 16:54:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224074.387128; Tue, 09 Nov 2021 16:54:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkUNl-0000nv-Vu; Tue, 09 Nov 2021 16:54:01 +0000
Received: by outflank-mailman (input) for mailman id 224074;
 Tue, 09 Nov 2021 16:54:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkUNk-0000ni-Hp; Tue, 09 Nov 2021 16:54:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkUNk-0003YU-Bu; Tue, 09 Nov 2021 16:54:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkUNk-0004kz-2l; Tue, 09 Nov 2021 16:54:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkUNk-00031c-2H; Tue, 09 Nov 2021 16:54:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=g4Kr+ATsss26DapBKDcebEOOtXouHqaNoR5g+5MByAA=; b=PLtsBkNQHJfXSCc8d2qFnDYJBp
	qlnUxzMTPa1ktEzrrmtZvJGObHxTBxSO3c+W+ZVviMiCHxgKk6+qI34t7+/4wbDEGXs+OWh+GruAu
	r8LV4DDJROEJEtzJICiVzWgkNZUjA4XpGaXJPylBOi4KT9KtdTldSt1sw0m8K3D/wGqE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166097-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166097: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=c974257821208fc6191779d1ddea918499f165b8
X-Osstest-Versions-That:
    ovmf=d6e6337cd6ee0b7f06578693ea0cef8e428b93f9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 16:54:00 +0000

flight 166097 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166097/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 c974257821208fc6191779d1ddea918499f165b8
baseline version:
 ovmf                 d6e6337cd6ee0b7f06578693ea0cef8e428b93f9

Last test of basis   166093  2021-11-09 06:21:29 Z    0 days
Testing same since   166097  2021-11-09 11:40:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Liming Gao <gaoliming@byosoft.com.cn>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   d6e6337cd6..c974257821  c974257821208fc6191779d1ddea918499f165b8 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 17:47:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 17:47:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224082.387143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkVDe-0005iK-6Z; Tue, 09 Nov 2021 17:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224082.387143; Tue, 09 Nov 2021 17:47:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkVDe-0005iD-34; Tue, 09 Nov 2021 17:47:38 +0000
Received: by outflank-mailman (input) for mailman id 224082;
 Tue, 09 Nov 2021 17:47:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkVDc-0005i3-5Q; Tue, 09 Nov 2021 17:47:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkVDb-0004Tj-Te; Tue, 09 Nov 2021 17:47:35 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkVDb-0006XK-HL; Tue, 09 Nov 2021 17:47:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkVDb-0004Mf-Gn; Tue, 09 Nov 2021 17:47:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dJy/ZHDNmLNZIJXiuaNBSdMZU44G0G66wq0mkFGY7Zg=; b=pB7RLE8lF5kZtkyQGw1DzK/bcW
	tvX8n1OMemoKShxqCHBiiA+wiz3GDKJ083/4xqYcCfu7+wgNQidHKj31qwfxAEuKD3as29lL80Obe
	NHs9kqNF+A3rHzKH7W1O5Kfz31ewPRwIPIKvcEvUuf+wWCq13uyzDtAJ9TWGbatg9SvY=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166094-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166094: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-amd64-amd64-libvirt-vhd:guest-start/debian.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=7379f9e10a3b13ec8bcea756384b2ace8af7064d
X-Osstest-Versions-That:
    xen=7379f9e10a3b13ec8bcea756384b2ace8af7064d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 17:47:35 +0000

flight 166094 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166094/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-rtds 20 guest-localmigrate/x10 fail in 166088 pass in 166094
 test-amd64-amd64-libvirt-vhd 19 guest-start/debian.repeat  fail pass in 166088
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166088

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166088
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166088
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166088
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166088
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166088
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166088
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166088
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166088
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166088
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166088
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166088
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166088
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  7379f9e10a3b13ec8bcea756384b2ace8af7064d
baseline version:
 xen                  7379f9e10a3b13ec8bcea756384b2ace8af7064d

Last test of basis   166094  2021-11-09 09:08:18 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 fail    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 18:35:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 18:35:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224095.387169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkVxC-0002Nk-03; Tue, 09 Nov 2021 18:34:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224095.387169; Tue, 09 Nov 2021 18:34:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkVxB-0002Nd-TK; Tue, 09 Nov 2021 18:34:41 +0000
Received: by outflank-mailman (input) for mailman id 224095;
 Tue, 09 Nov 2021 18:34:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nz9x=P4=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mkVxB-0002NX-9D
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 18:34:41 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2ae7d66-418b-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 19:34:39 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id 1so335957ljv.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Nov 2021 10:34:39 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id i3sm1184844lfu.156.2021.11.09.10.34.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Nov 2021 10:34:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2ae7d66-418b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=wYP3HVRde9HU03o1pyiBUvyAhQ1zAXnZFwQs8FMc5XA=;
        b=d6RdCnuz1sHqg4dhfAoqeam1gDpCZrmMg3MQfrdsTdIV+utHuLtBnDS2lNDGJL4v6e
         vs2VpDeDZ6/1yfiqaNAW0wFv706OPsI7nlGX0PwE+v/rPOo53Kj6miiHufsvbeiCg3dR
         3oelBP7b0XHKz02Vj/A4GjuPWSosC3m2hMn9YHAKp1Cu86vjq1sXdo6LTnNAhJa/kCF0
         ziZVklS57cwny7TDn2xzSkk8JtLFIGbbCUbPjov191oEsUiFB8OBIaXRHwZFJ1thCkS9
         gIvVYVzNeLGlzpMmavg/znkKcuemW1XYvC1PQz8yzuUhFL8yaSmNJVS/tTq7ZtNKWIsg
         7NGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=wYP3HVRde9HU03o1pyiBUvyAhQ1zAXnZFwQs8FMc5XA=;
        b=S167T1D6vArFq9mle5rg3WH3ct6waBQ1LBk78tQwAZRocpSnvJxvO9XdxMsdAI6jrA
         D/NG9fvn2cG25xnNlWmLd85WvcxVH5bncE2CejbSZIxnLKgU7t/wZKYw4A+E9F40b43j
         lNtl3ixPhGXY7Zh/s06vNZ5HovVMEeN0sjLCTZ2JGeIkZTJtlNJ4juGCVsYNWzBbY9zj
         +3Md+5Z6YTQoNCPTwleuq4aQPsx3sxmYedxBfeQA4EIlR1tinNslcB2DPNgVs4Gdw0YS
         JjAONHlipAaeIxWKlQjQvOmndyUSNR3Rl/s27GfQzIHgDZO61et0EX5tSxViuKg4D5i+
         uXPA==
X-Gm-Message-State: AOAM531eHlrMYxxbso26v2XWHSi+m83FHtKRbgrsqP0dN/mERZyqpZJW
	XpXOYT185stQIEFoHUJTaHI=
X-Google-Smtp-Source: ABdhPJzYv7I/BvTSlq5EXRYbHB3jWpC8Gdowimy1snNngGv2wohniKWet4DUB5x3Ut13ijuLiMoWlA==
X-Received: by 2002:a2e:9a09:: with SMTP id o9mr10078085lji.21.1636482879047;
        Tue, 09 Nov 2021 10:34:39 -0800 (PST)
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-4-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
Date: Tue, 9 Nov 2021 20:34:37 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US


On 28.10.21 19:37, Stefano Stabellini wrote:

Hi Stefano

I am sorry for the late response.

> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> The main reason of this change is that unpopulated-alloc
>> code cannot be used in its current form on Arm, but there
>> is a desire to reuse it to avoid wasting real RAM pages
>> for the grant/foreign mappings.
>>
>> The problem is that system "iomem_resource" is used for
>> the address space allocation, but the really unallocated
>> space can't be figured out precisely by the domain on Arm
>> without hypervisor involvement. For example, not all device
>> I/O regions are known by the time domain starts creating
>> grant/foreign mappings. And following the advise from
>> "iomem_resource" we might end up reusing these regions by
>> a mistake. So, the hypervisor which maintains the P2M for
>> the domain is in the best position to provide unused regions
>> of guest physical address space which could be safely used
>> to create grant/foreign mappings.
>>
>> Introduce new helper arch_xen_unpopulated_init() which purpose
>> is to create specific Xen resource based on the memory regions
>> provided by the hypervisor to be used as unused space for Xen
>> scratch pages.
>>
>> If arch doesn't implement arch_xen_unpopulated_init() to
>> initialize Xen resource the default "iomem_resource" will be used.
>> So the behavior on x86 won't be changed.
>>
>> Also fall back to allocate xenballooned pages (steal real RAM
>> pages) if we do not have any suitable resource to work with and
>> as the result we won't be able to provide unpopulated pages.
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>> Changes RFC -> V2:
>>     - new patch, instead of
>>      "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide unallocated space"
>> ---
>>   drivers/xen/unpopulated-alloc.c | 89 +++++++++++++++++++++++++++++++++++++++--
>>   include/xen/xen.h               |  2 +
>>   2 files changed, 88 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c
>> index a03dc5b..1f1d8d8 100644
>> --- a/drivers/xen/unpopulated-alloc.c
>> +++ b/drivers/xen/unpopulated-alloc.c
>> @@ -8,6 +8,7 @@
>>   
>>   #include <asm/page.h>
>>   
>> +#include <xen/balloon.h>
>>   #include <xen/page.h>
>>   #include <xen/xen.h>
>>   
>> @@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_lock);
>>   static struct page *page_list;
>>   static unsigned int list_count;
>>   
>> +static struct resource *target_resource;
>> +static struct resource xen_resource = {
>> +	.name = "Xen unused space",
>> +};
>> +
>> +/*
>> + * If arch is not happy with system "iomem_resource" being used for
>> + * the region allocation it can provide it's own view by initializing
>> + * "xen_resource" with unused regions of guest physical address space
>> + * provided by the hypervisor.
>> + */
>> +int __weak arch_xen_unpopulated_init(struct resource *res)
>> +{
>> +	return -ENOSYS;
>> +}
>> +
>>   static int fill_list(unsigned int nr_pages)
>>   {
>>   	struct dev_pagemap *pgmap;
>> -	struct resource *res;
>> +	struct resource *res, *tmp_res = NULL;
>>   	void *vaddr;
>>   	unsigned int i, alloc_pages = round_up(nr_pages, PAGES_PER_SECTION);
>> -	int ret = -ENOMEM;
>> +	int ret;
>>   
>>   	res = kzalloc(sizeof(*res), GFP_KERNEL);
>>   	if (!res)
>> @@ -30,7 +47,7 @@ static int fill_list(unsigned int nr_pages)
>>   	res->name = "Xen scratch";
>>   	res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
>>   
>> -	ret = allocate_resource(&iomem_resource, res,
>> +	ret = allocate_resource(target_resource, res,
>>   				alloc_pages * PAGE_SIZE, 0, -1,
>>   				PAGES_PER_SECTION * PAGE_SIZE, NULL, NULL);
>>   	if (ret < 0) {
>> @@ -38,6 +55,31 @@ static int fill_list(unsigned int nr_pages)
>>   		goto err_resource;
>>   	}
>>   
>> +	/*
>> +	 * Reserve the region previously allocated from Xen resource to avoid
>> +	 * re-using it by someone else.
>> +	 */
>> +	if (target_resource != &iomem_resource) {
>> +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>> +		if (!res) {
>> +			ret = -ENOMEM;
>> +			goto err_insert;
>> +		}
>> +
>> +		tmp_res->name = res->name;
>> +		tmp_res->start = res->start;
>> +		tmp_res->end = res->end;
>> +		tmp_res->flags = res->flags;
>> +
>> +		ret = insert_resource(&iomem_resource, tmp_res);
>> +		if (ret < 0) {
>> +			pr_err("Cannot insert IOMEM resource [%llx - %llx]\n",
>> +			       tmp_res->start, tmp_res->end);
>> +			kfree(tmp_res);
>> +			goto err_insert;
>> +		}
>> +	}
> I am a bit confused.. why do we need to do this? Who could be
> erroneously re-using the region? Are you saying that the next time
> allocate_resource is called it could find the same region again? It
> doesn't seem possible?


No, as I understand the allocate_resource() being called for the same 
root resource won't provide the same region... We only need to do this 
(insert the region into "iomem_resource") if we allocated it from our 
*internal* "xen_resource", as *global* "iomem_resource" (which is used 
everywhere) is not aware of that region has been already allocated. So 
inserting a region here we reserving it, otherwise it could be reused 
elsewhere.


>
>
>>   	pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
>>   	if (!pgmap) {
>>   		ret = -ENOMEM;
>> @@ -95,12 +137,40 @@ static int fill_list(unsigned int nr_pages)
>>   err_memremap:
>>   	kfree(pgmap);
>>   err_pgmap:
>> +	if (tmp_res) {
>> +		release_resource(tmp_res);
>> +		kfree(tmp_res);
>> +	}
>> +err_insert:
>>   	release_resource(res);
>>   err_resource:
>>   	kfree(res);
>>   	return ret;
>>   }
>>   
>> +static void unpopulated_init(void)
>> +{
>> +	static bool inited = false;
> initialized = false

ok.


>
>
>> +	int ret;
>> +
>> +	if (inited)
>> +		return;
>> +
>> +	/*
>> +	 * Try to initialize Xen resource the first and fall back to default
>> +	 * resource if arch doesn't offer one.
>> +	 */
>> +	ret = arch_xen_unpopulated_init(&xen_resource);
>> +	if (!ret)
>> +		target_resource = &xen_resource;
>> +	else if (ret == -ENOSYS)
>> +		target_resource = &iomem_resource;
>> +	else
>> +		pr_err("Cannot initialize Xen resource\n");
>> +
>> +	inited = true;
>> +}
> Would it make sense to call unpopulated_init from an init function,
> rather than every time xen_alloc_unpopulated_pages is called?

Good point, thank you. Will do. To be honest, I also don't like the 
current approach much.


>
>
>>   /**
>>    * xen_alloc_unpopulated_pages - alloc unpopulated pages
>>    * @nr_pages: Number of pages
>> @@ -112,6 +182,16 @@ int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>>   	unsigned int i;
>>   	int ret = 0;
>>   
>> +	unpopulated_init();
>> +
>> +	/*
>> +	 * Fall back to default behavior if we do not have any suitable resource
>> +	 * to allocate required region from and as the result we won't be able to
>> +	 * construct pages.
>> +	 */
>> +	if (!target_resource)
>> +		return alloc_xenballooned_pages(nr_pages, pages);
> The commit message says that the behavior on x86 doesn't change but this
> seems to be a change that could impact x86?
I don't think, however I didn't tested on x86 and might be wrong, but 
according to the current patch, on x86 the "target_resource" is always 
valid and points to the "iomem_resource" as arch_xen_unpopulated_init() 
is not implemented. So there won't be any fallback to use 
alloc_(free)_xenballooned_pages() here and fill_list() will behave as usual.

You raised a really good question, on Arm we need a fallback to balloon 
out RAM pages again if hypervisor doesn't provide extended regions (we 
run on old version, no unused regions with reasonable size, etc), so I 
decided to put a fallback code here, an indicator of the failure is 
invalid "target_resource". I noticed the patch which is about to be 
upstreamed that removes alloc_(free)xenballooned_pages API [1]. Right 
now I have no idea how/where this fallback could be implemented as this 
is under build option control (CONFIG_XEN_UNPOPULATED_ALLOC). So the API 
with the same name is either used for unpopulated pages (if set) or 
ballooned pages (if not set). I would appreciate suggestions regarding 
that. I am wondering would it be possible and correctly to have both 
mechanisms (unpopulated and ballooned) enabled by default and some init 
code to decide which one to use at runtime or some sort?


>
>>   	mutex_lock(&list_lock);
>>   	if (list_count < nr_pages) {
>>   		ret = fill_list(nr_pages - list_count);
>> @@ -159,6 +239,9 @@ void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>>   {
>>   	unsigned int i;
>>   
>> +	if (!target_resource)
>> +		return free_xenballooned_pages(nr_pages, pages);
>> +
>>   	mutex_lock(&list_lock);
>>   	for (i = 0; i < nr_pages; i++) {
>>   		pages[i]->zone_device_data = page_list;
>> diff --git a/include/xen/xen.h b/include/xen/xen.h
>> index 43efba0..55d2ef8 100644
>> --- a/include/xen/xen.h
>> +++ b/include/xen/xen.h
>> @@ -55,6 +55,8 @@ extern u64 xen_saved_max_mem_size;
>>   #ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>>   int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
>>   void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
>> +struct resource;
> This is to avoid having to #include linux/ioport.h, right? Is it a
> problem or is it just to minimize the headers dependencies?
>
> It looks like adding #include <linux/ioport.h> below #include
> <linux/types.h> in include/xen/xen.h would work too. I am not sure what
> is the best way though, I'll let Juergen comment.
Yes, the initial reason to use forward declaration here was to minimize 
the headers dependencies.
I have rechecked, your suggestion works as well, thank you. So I would 
be OK either way, let's wait for other opinions.


>
>
>> +int arch_xen_unpopulated_init(struct resource *res);
>>   #else
>>   #define xen_alloc_unpopulated_pages alloc_xenballooned_pages
>>   #define xen_free_unpopulated_pages free_xenballooned_pages
>> -- 
>> 2.7.4
>>

[1] https://lore.kernel.org/lkml/20211102092234.17852-1-jgross@suse.com/

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 18:52:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 18:52:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224100.387180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkWDu-0004h2-JZ; Tue, 09 Nov 2021 18:51:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224100.387180; Tue, 09 Nov 2021 18:51:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkWDu-0004gv-Fx; Tue, 09 Nov 2021 18:51:58 +0000
Received: by outflank-mailman (input) for mailman id 224100;
 Tue, 09 Nov 2021 18:51:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nz9x=P4=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mkWDt-0004gp-5k
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 18:51:57 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c89db65-418e-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 19:51:56 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id 13so336682ljj.11
 for <xen-devel@lists.xenproject.org>; Tue, 09 Nov 2021 10:51:56 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id z17sm95703lfd.242.2021.11.09.10.51.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Nov 2021 10:51:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c89db65-418e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=RcJOxCwTS3Za1DIXebYmwbP1nNUgtXkGoDkbHuW872I=;
        b=OhQHI2GVJY5W0lErScK7eneQ/f/+RdYbeY3Y+SmN+kIDHR+iZhBRROw9jYtynPnJo7
         8SFuBzGP99E9sPLKWqLn6qJWx56bOK/QEpAF/odpjjzXVUd2Htv03o03loj7l56f4hSy
         bcUTbJoFVDbWsTyfXC8BCto5EsSTE+q6sQkzqSAZ0d8exYF3hUkXNNXnK3+bpG3XtKeu
         l9tCL6eneF+GW4zaqcRu7E46ZRZ1kmcPyctPf2Czgh1+VCN37RBX4HBNmZ2WijkDDOuF
         bGyYJsxZzDf9MARqdvrhQz32cwngT1jdLf4XzKzzw1BxbIeNg9up8CZbH1ENROB+Poji
         Kn2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=RcJOxCwTS3Za1DIXebYmwbP1nNUgtXkGoDkbHuW872I=;
        b=XWj5I9n78UbOWSKpB3fOSxL97fBdHrqC761Vuy03uRm5fGu0o2qibn3pGBKmJq+8qh
         2byaTKvI2BNwJxusQUcVh8TXa9HMoHSiwtgdfM/L3OL15A/+wHAhp5uR82eqm55TODHa
         2go4V6zSXxMISoSJ4rK1RXnE9p9/G5VMI3A3WUNKJCLEH9zEWsiWCyUJsmrmkZpOclgQ
         0vdtcYLoYRQ0pjTIr84lVtAa/17cJ67qidMtO6hmWMrt+rqkSK9K4DwgWmqdwH/iZKwr
         6Hmkkqmp4GA9Nw5bQJ/GxTYe7/Mf+v9aJ7Uk89xitQKEUyQmLKIplEwVAlwyqw0CxYzd
         nDaA==
X-Gm-Message-State: AOAM530ojIzqeDvmGT+Teh9rfg6e9Bz0qrqDajZ1lZZ0yQ5KdLxQ6HHm
	XdPI6p6AyTr8IS1w0M2r/ns=
X-Google-Smtp-Source: ABdhPJxayf9eKbrNJ/FjI4DOI7nzTR9/ujN9m5MahKE+KF9yMCPcrSW/UchrHS05w8LK2eVXZZ4BwA==
X-Received: by 2002:a2e:bf18:: with SMTP id c24mr10191516ljr.408.1636483915850;
        Tue, 09 Nov 2021 10:51:55 -0800 (PST)
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-4-git-send-email-olekstysh@gmail.com>
 <0b1837f9-57ef-8deb-df78-cb7841d93d68@oracle.com>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <00a9467a-3e48-9c68-1ac2-7ec2c7380d97@gmail.com>
Date: Tue, 9 Nov 2021 20:51:54 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <0b1837f9-57ef-8deb-df78-cb7841d93d68@oracle.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 28.10.21 22:08, Boris Ostrovsky wrote:

Hi Boris

I am sorry for the late response.

>
> On 10/26/21 12:05 PM, Oleksandr Tyshchenko wrote:
>>   +static void unpopulated_init(void)
>> +{
>> +    static bool inited = false;
>> +    int ret;
>> +
>> +    if (inited)
>> +        return;
>> +
>> +    /*
>> +     * Try to initialize Xen resource the first and fall back to 
>> default
>> +     * resource if arch doesn't offer one.
>> +     */
>> +    ret = arch_xen_unpopulated_init(&xen_resource);
>> +    if (!ret)
>> +        target_resource = &xen_resource;
>> +    else if (ret == -ENOSYS)
>> +        target_resource = &iomem_resource;
>> +    else
>> +        pr_err("Cannot initialize Xen resource\n");
>
>
> I'd pass target_resource as a parameter to arch_xen_unpopulated_init() 
> instead. Default routine will assign it iomem_resource and you won't 
> have to deal with -ENOSYS.

That would be much better, thank you. Will do.


>
>
>
> Also, what happens in case of error? Is it fatal? I don't think your 
> changes in fill_list() will work.

The error is fatal as we don't have a suitable resource to allocate a 
region from, and yes, the fill_list() must not be called.


>
>
>
>> +
>> +    inited = true;
>
>
> I agree with Stefano in that it would be better to call this from an 
> init function, and you won't have t worry about multiple calls here.

Yes, that's good point, thank you. Will do.


>
>
>
> -boris

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 21:53:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 21:53:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224106.387190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZ34-0003lu-HR; Tue, 09 Nov 2021 21:52:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224106.387190; Tue, 09 Nov 2021 21:52:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZ34-0003ln-EJ; Tue, 09 Nov 2021 21:52:58 +0000
Received: by outflank-mailman (input) for mailman id 224106;
 Tue, 09 Nov 2021 21:52:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i2Q5=P4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkZ33-0003lh-8J
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 21:52:57 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61da705e-41a7-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 22:52:55 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 0AEA961184;
 Tue,  9 Nov 2021 21:52:48 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61da705e-41a7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636494769;
	bh=4XUko2H5+cFh+91UeQ2RXl+TI0hc4F9tXTbDOewfhzA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=XnuIG8y6vYzYb5K2etoFJkInBKnNejwyst69L0+0KNiYTfIFsrSGooqq3onN172Ma
	 mFSDegNs6IReo6tkmlGZ/7gP0K1gPhpJe4fyFj+uVy1t2WAhVFEHiRqxXH1jCIuOOY
	 hnZ8m4gqAbya8odL8eSv6U51B1o62nBWDO6zVCr98qbZcG9mABbUSpX8kbVV7dZPcz
	 UZS0Cam/etQofqxSHGVbJqWRyh0mWJj6q+0IXaZnWAEri8RrtDB19wWEH4mweiVNyC
	 dtVcmGFHGVtYa3nkbVPBtgqftATYwjsm+9TPBXSk2xyenwy9qlNR4x1r/ZAFV4+bIw
	 i/9MIExup0qkw==
Date: Tue, 9 Nov 2021 13:52:47 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com, 
    Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
References: <20211104141206.25153-1-luca.fancellu@arm.com> <81685961-501e-7a41-6f6f-bc4491645264@suse.com> <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop> <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop> <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com> <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop> <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop> <9bd58aa4-602b-4c64-e759-581513909457@suse.com> <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop> <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 9 Nov 2021, Jan Beulich wrote:
> On 09.11.2021 03:11, Stefano Stabellini wrote:
> > On Mon, 8 Nov 2021, Jan Beulich wrote:
> >> On 05.11.2021 16:33, Stefano Stabellini wrote:
> >>> My main concern is performance and resource utilization. With v3 of the
> >>> patch get_parent_handle will get called for every module to be loaded.
> >>> With dom0less, it could easily get called 10 times or more. Taking a
> >>> look at get_parent_handle, the Xen side doesn't seem small and I have
> >>> no idea how the EDK2 side looks. I am just worried that it would
> >>> actually have an impact on boot times (also depending on the bootloader
> >>> implementation).
> >>
> >> The biggest part of the function deals with determining the "residual" of
> >> the file name. That part looks to be of no interest at all to
> >> allocate_module_file() (whether that's actually correct I can't tell). I
> >> don't see why this couldn't be made conditional (e.g. by passing in NULL
> >> for "leaf").
> > 
> > I understand the idea of passing NULL instead of "leaf", but I tried
> > having a look and I can't tell what we would be able to skip in
> > get_parent_handle.
> 
> My bad - I did overlook that dir_handle gets updated even past the
> initial loop.
> 
> > Should we have a global variable to keep the dir_handle open during
> > dom0less module loading?
> 
> If that's contained within Arm-specific code, I (obviously) don't mind.
> Otherwise I remain to be convinced.

I think we can do something decent entirely within
xen/arch/arm/efi/efi-boot.h.

Luca, see below as reference; it is untested and incomplete but should
explain the idea better than words. With the below, we only open/close
the handle once for the all dom0less modules.


diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 458cfbbed4..b5218d5228 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -24,6 +24,7 @@ static struct file __initdata module_binary;
 static module_name __initdata modules[MAX_UEFI_MODULES];
 static unsigned int __initdata modules_available = MAX_UEFI_MODULES;
 static unsigned int __initdata modules_idx;
+static EFI_FILE_HANDLE __initdata dir_handle;
 
 #define ERROR_BINARY_FILE_NOT_FOUND (-1)
 #define ERROR_ALLOC_MODULE_NO_SPACE (-1)
@@ -651,9 +652,7 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
                                        const char *name,
                                        unsigned int name_len)
 {
-    EFI_FILE_HANDLE dir_handle;
     module_name *file_name;
-    CHAR16 *fname;
     union string module_name;
     int ret;
 
@@ -685,14 +684,9 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
     strlcpy(file_name->name, name, name_len + 1);
     file_name->name_len = name_len;
 
-    /* Get the file system interface. */
-    dir_handle = get_parent_handle(loaded_image, &fname);
-
     /* Load the binary in memory */
     read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
 
-    dir_handle->Close(dir_handle);
-
     /* Save address and size */
     file_name->addr = module_binary.addr;
     file_name->size = module_binary.size;
@@ -862,6 +856,7 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
 {
     int chosen, node, addr_len, size_len;
     unsigned int i = 0, modules_found = 0;
+    CHAR16 *fname;
 
     /* Check for the chosen node in the current DTB */
     chosen = setup_chosen_node(fdt, &addr_len, &size_len);
@@ -871,6 +866,8 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
         return ERROR_DT_CHOSEN_NODE;
     }
 
+    dir_handle = get_parent_handle(loaded_image, &fname);
+
     /* Check for nodes compatible with xen,domain under the chosen node */
     for ( node = fdt_first_subnode(fdt, chosen);
           node > 0;
@@ -902,6 +899,8 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
         efi_bs->FreePool(modules[i].name);
     }
 
+    if ( dir_handle )
+        dir_handle->Close(dir_handle);
     return modules_found;
 }
 


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 22:23:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 22:23:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224113.387202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZWM-0006vt-06; Tue, 09 Nov 2021 22:23:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224113.387202; Tue, 09 Nov 2021 22:23:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZWL-0006vm-Sw; Tue, 09 Nov 2021 22:23:13 +0000
Received: by outflank-mailman (input) for mailman id 224113;
 Tue, 09 Nov 2021 22:23:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i2Q5=P4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkZWK-0006vN-C5
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 22:23:12 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e4cb69c-41ab-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 23:23:10 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 7D97161B04;
 Tue,  9 Nov 2021 22:23:08 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e4cb69c-41ab-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636496588;
	bh=cw01eSYfL8UtZdAVlIiNUiUlynYOBDvoRIDp2QEgHNs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MI07reSprc7T5wviBPSOHHtY/DMnq2YLO9FUxA9XXtUWXxlVqz2ihd5X7jDKFRnPC
	 2a/7+bXXFSMHHncrKdAd+kpVEKKXbDUt18HYN9p/vvaZND4GlR1EEdoOKAM20xPx2z
	 pv++SZ2x7S93PKnhA6pOaim55pe3sF6rbs07siFIoRH2gxHppro8aXIBhZF7j0eNSh
	 fAXUa62lPTwkHbjcHcAKssFERD4M9Ztat/jy+ToFqkMkYq/nZkrnKS/FvEUzHmb/hC
	 07TLs3oHOKTwbH6+v1D+53JpwpOyQT7eO2+6Jv3drD4nzMTZlEIppeaAHs117JtRZH
	 U10yKHg6JMT2g==
Date: Tue, 9 Nov 2021 14:23:07 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, oleksandr_tyshchenko@epam.com, 
    iwj@xenproject.org, Bertrand.Marquis@arm.com, 
    xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>
Subject: Re: ASSERT in rangeset_remove_range
In-Reply-To: <666a0b12-bfda-a6b4-a7e6-d58e0a01d5ff@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111091423020.440530@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2111081430090.3317@ubuntu-linux-20-04-desktop> <666a0b12-bfda-a6b4-a7e6-d58e0a01d5ff@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 9 Nov 2021, Julien Grall wrote:
> (+ Jan, Andrew, Wei for the common code)
> 
> On 08/11/2021 22:45, Stefano Stabellini wrote:
> > Hi Oleksandr, Julien,
> 
> Hi,
> 
> > I discovered a bug caused by the recent changes to introduce extended
> > regions in make_hypervisor_node (more logs appended):
> > 
> > 
> > (XEN) d1 BANK[0] 0x00000040000000-0x0000007e800000 (1000MB)
> > (XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)
> > (XEN) DEBUG find_unallocated_memory 994 s=40000000 e=7e7fffff
> > (XEN) DEBUG find_unallocated_memory 994 s=200000000 e=1ffffffff
> > (XEN) Assertion 's <= e' failed at rangeset.c:189
> > 
> > 
> > When a bank of memory is zero in size, then rangeset_remove_range is
> > called with end < start, triggering an ASSERT in rangeset_remove_range.
> > 
> > One solution is to avoid creating 0 size banks. The following change
> > does that:
> > 
> > 
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 49b4eb2b13..3efe542d0f 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -459,9 +459,12 @@ static void __init allocate_memory(struct domain *d,
> > struct kernel_info *kinfo)
> >           goto fail;
> >         bank_size = MIN(GUEST_RAM1_SIZE, kinfo->unassigned_mem);
> > -    if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
> > +    if ( bank_size > 0 )
> > +    {
> > +        if ( !allocate_bank_memory(d, kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
> >                                  bank_size) )
> > -        goto fail;
> > +            goto fail;
> > +    }
> 
> I would move the size check in allocate_bank_memory().

Sure, I can do that


> >         if ( kinfo->unassigned_mem )
> >           goto fail;
> > 
> > 
> > 
> > We have a couple of other options too:
> > 
> > - remove the ASSERT in rangeset_remove_range
> > There is an argument that we should simply return error
> > fromrangeset_remove_range, rather than a full assert.
> 
> To be honest, this is a developper mistake to call with end < start. If we
> were going to return an error then we would completely hide (even in
> developper) it because we would fallback to not exposing extended regions.
> 
> So I am not sure switch from ASSERT() to a plain check is a good idea. Jan,
> Andrew, Wei, what do you think?
> 
> That said, this option would not be sufficient to fix your problem as extended
> regions will not work.
> 
> > 
> > - add a if (end > start) check before calling rangeset_remove_range
> > We could check that end > start before calling rangeset_remove_range at
> > all the call sites in domain_build.c. There are 5 call sites at the
> > moment.
> 
> I think we only want to add (end > start) where we expect the region size to
> be 0. AFAICT, the only other potential place where this can happens is
> ``find_memory_holes()`` (I vaguely recall a discussion in the past where some
> of the "reg"  property would have size == 0).
> 
> > 
> > Any other ideas or suggestions?
> 
> My preference goes with your initial sugestion (so long the check is moved to
> allocate_bank_memory()).
> 
> [...]
> 
> > (XEN) Assertion 's <= e' failed at rangeset.c:189
> > (XEN) ----[ Xen-4.16-rc  arm64  debug=y  Not tainted ]----
> > (XEN) Xen call trace:
> > (XEN)    [<0000000000220e6c>] rangeset_remove_range+0xbc/0x2bc (PC)
> > (XEN)    [<00000000002cd508>]
> > domain_build.c#make_hypervisor_node+0x258/0x7f4 (LR)
> > (XEN)    [<00000000002cf2a8>] domain_build.c#construct_domU+0x9cc/0xa8c
> 
> Vanilla staging doesn't call make_hypervisor_node() from construct_domU. So
> what are you using?

Well spotted. This is my WIP branch with PV drivers support for Dom0less
guests (soon to be sent to xen-devel). The underlying bug could affect
vanilla Xen too as it only takes a zero-size bank to trigger it, but it
is certainly harder to reproduce because make_hypervisor_node is only
called for Dom0 and allocate_bank_memory (the function that today always
adds a zero size bank) is called for DomUs.


> > (XEN)    [<00000000002d0440>] create_domUs+0xe8/0x224
> > (XEN)    [<00000000002d4988>] start_xen+0xafc/0xbf0
> > (XEN)    [<00000000002001a0>] arm64/head.o#primary_switched+0xc/0x1c
> > (XEN)
> > (XEN)
> > (XEN) ****************************************
> > (XEN) Panic on CPU 0:
> > (XEN) Assertion 's <= e' failed at rangeset.c:189
> > (XEN) ****************************************


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 22:29:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 22:29:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224119.387213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZck-0007ae-Mh; Tue, 09 Nov 2021 22:29:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224119.387213; Tue, 09 Nov 2021 22:29:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZck-0007aX-Jh; Tue, 09 Nov 2021 22:29:50 +0000
Received: by outflank-mailman (input) for mailman id 224119;
 Tue, 09 Nov 2021 22:29:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i2Q5=P4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkZck-0007aR-1N
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 22:29:50 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8c05ef76-41ac-11ec-9787-a32c541c8605;
 Tue, 09 Nov 2021 23:29:49 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 56F8E61350;
 Tue,  9 Nov 2021 22:29:47 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c05ef76-41ac-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636496987;
	bh=jTrFMT32oeuFuyU/oz37Gb9wFdhHqLJJ0eQezkEDzgc=;
	h=From:To:Cc:Subject:Date:From;
	b=NYEMN6dKPwRUFEGRddqhBH0h6q4QzGZ5puL5/TPTYvRQmSPx6JfdhCBgc73hAPA1B
	 2D+De3Aia2rKl5+JzPJoUXr9Puxnz4Iae46wYuYz3wSrxbR/aSwyMFH2U8X5iogI9y
	 SBXKV0iceys8bKkgjM+8zAnOZRLWV0BWMFa9x3dIipWwMmVEKxB5f6uFMw8ufSiVLF
	 mtCJliGOT1+xYxzwbXV3+VxCg8d9IiddmVud9oMzvY3HoxsP9MdzZBhGvoWe+Mcukx
	 /19T4/aLdq4A00339jzeg6PKyWMetiz9HTtOBaIBDfvtOMkIYTdD3Gm8QjKanAr+2N
	 Mz6Mx1oN/CNog==
From: Stefano Stabellini <sstabellini@kernel.org>
To: julien@xen.org
Cc: sstabellini@kernel.org,
	xen-devel@lists.xenproject.org,
	oleksandr_tyshchenko@epam.com,
	iwj@xenproject.org,
	Bertrand.Marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: [PATCH for-4.16] xen/arm: allocate_bank_memory: don't create memory banks of size zero
Date: Tue,  9 Nov 2021 14:29:44 -0800
Message-Id: <20211109222944.531368-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

allocate_bank_memory can be called with a tot_size of zero. In that
case, don't create an empty memory bank, just return immediately without
error. Otherwise a zero-sized memory bank will be added to the domain
device tree.

Fixes: f2931b4233ec "xen/arm: introduce allocate_memory"
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
 xen/arch/arm/domain_build.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 9e92b640cd..578ea80e40 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -395,6 +395,9 @@ static bool __init allocate_bank_memory(struct domain *d,
     struct membank *bank;
     unsigned int max_order = ~0;
 
+    if ( tot_size == 0 )
+        return true;
+
     bank = &kinfo->mem.bank[kinfo->mem.nr_banks];
     bank->start = gfn_to_gaddr(sgfn);
     bank->size = tot_size;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 22:32:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 22:32:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224125.387224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZeo-0000Vi-4B; Tue, 09 Nov 2021 22:31:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224125.387224; Tue, 09 Nov 2021 22:31:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZeo-0000Vb-09; Tue, 09 Nov 2021 22:31:58 +0000
Received: by outflank-mailman (input) for mailman id 224125;
 Tue, 09 Nov 2021 22:31:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mkZen-0000VT-2o
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 22:31:57 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkZek-0000uH-IG; Tue, 09 Nov 2021 22:31:54 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=[192.168.31.175]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkZek-0007aU-87; Tue, 09 Nov 2021 22:31:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=t8PtrqKsEoZS5lA/fuRAN2pFrE2W6/wX4gkUU6pGYNE=; b=UblVjR0O1KvD9w0lm3/uvJhxmc
	L19D5fpcHK4uoz5PdZF/jAFABivpwdT9Cm7X7QVofasEX0yOF34h5r26brKi0oYBqBSgxkIS+y85p
	WB5ii0ynxdU7x8JvU5On73SKBzCCcRrnKJ99MRngWlKBZ7i0psV8w0v6jKxc6nLLdpEE=;
Message-ID: <2a2fc77f-408d-7313-5205-6b42c713838a@xen.org>
Date: Tue, 9 Nov 2021 22:31:51 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
To: Stefano Stabellini <sstabellini@kernel.org>,
 Jan Beulich <jbeulich@suse.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 09/11/2021 21:52, Stefano Stabellini wrote:
> On Tue, 9 Nov 2021, Jan Beulich wrote:
>> On 09.11.2021 03:11, Stefano Stabellini wrote:
>>> On Mon, 8 Nov 2021, Jan Beulich wrote:
>>>> On 05.11.2021 16:33, Stefano Stabellini wrote:
>>>>> My main concern is performance and resource utilization. With v3 of the
>>>>> patch get_parent_handle will get called for every module to be loaded.
>>>>> With dom0less, it could easily get called 10 times or more. Taking a
>>>>> look at get_parent_handle, the Xen side doesn't seem small and I have
>>>>> no idea how the EDK2 side looks. I am just worried that it would
>>>>> actually have an impact on boot times (also depending on the bootloader
>>>>> implementation).
>>>>
>>>> The biggest part of the function deals with determining the "residual" of
>>>> the file name. That part looks to be of no interest at all to
>>>> allocate_module_file() (whether that's actually correct I can't tell). I
>>>> don't see why this couldn't be made conditional (e.g. by passing in NULL
>>>> for "leaf").
>>>
>>> I understand the idea of passing NULL instead of "leaf", but I tried
>>> having a look and I can't tell what we would be able to skip in
>>> get_parent_handle.
>>
>> My bad - I did overlook that dir_handle gets updated even past the
>> initial loop.
>>
>>> Should we have a global variable to keep the dir_handle open during
>>> dom0less module loading?
>>
>> If that's contained within Arm-specific code, I (obviously) don't mind.
>> Otherwise I remain to be convinced.
> 
> I think we can do something decent entirely within
> xen/arch/arm/efi/efi-boot.h.
> 
> Luca, see below as reference; it is untested and incomplete but should
> explain the idea better than words. With the below, we only open/close
> the handle once for the all dom0less modules.

Looking at the diff below, you open/close dir_handle within 
efi_check_dt_boot(). This means that only the functions called within 
the function will effectively used.

At which point, I think this should be an argument of the functions 
rather than a global function. This will drastically reduce any misuse 
of the global variable (which BTW the name seems to clash with some of 
the arguments).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 22:49:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 22:49:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224131.387235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZvu-00021o-Lj; Tue, 09 Nov 2021 22:49:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224131.387235; Tue, 09 Nov 2021 22:49:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkZvu-00021h-Gl; Tue, 09 Nov 2021 22:49:38 +0000
Received: by outflank-mailman (input) for mailman id 224131;
 Tue, 09 Nov 2021 22:49:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mkZvs-00021a-SI
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 22:49:36 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkZvr-0001BV-Gz; Tue, 09 Nov 2021 22:49:35 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=[192.168.31.175]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkZvr-0000Lh-9i; Tue, 09 Nov 2021 22:49:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Du4/KguE4VPJ59pKpLRshGmbfowT/wmlbuJqwGN27PQ=; b=NA3laJt8bhcUz8i+bB4bkjS3Pf
	QmoUE5pnUoDLjEuqU5dhKYGI1BBuaJi+jRE/IhPw9mrJ+0nWwKYVQozkfWM94SsZpZ5h8ndOwlMz8
	hzUK+I+7bQC7ueJ0+ibg9MqxQNv5FRqLrCzF1zcPajwxIQCpFvYuUvie6QZgUtlUKhhs=;
Message-ID: <41fcacd5-bb8d-3a30-44f4-b86c741ad4f4@xen.org>
Date: Tue, 9 Nov 2021 22:49:33 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] xen/arm: allocate_bank_memory: don't create
 memory banks of size zero
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, oleksandr_tyshchenko@epam.com,
 iwj@xenproject.org, Bertrand.Marquis@arm.com, Volodymyr_Babchuk@epam.com,
 Stefano Stabellini <stefano.stabellini@xilinx.com>
References: <20211109222944.531368-1-sstabellini@kernel.org>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211109222944.531368-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 09/11/2021 22:29, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> allocate_bank_memory can be called with a tot_size of zero.

Please add some details how this can be called with tot_size == 0. 
AFAIU, this happens when creating the second bank.

> In that
> case, don't create an empty memory bank, just return immediately without
> error. Otherwise a zero-sized memory bank will be added to the domain
> device tree.

There are actually DTs out with zero-size memory bank (see [1]) and, 
AFAIR, Linux is able to cope with it.

Instead, it looks like the issue is some part of Xen may fall over if 
one of the bank is zero-sized. But from the earlier discussion [2], this 
is just latent. So I think this should be clarified in the commit message.

> 
> Fixes: f2931b4233ec "xen/arm: introduce allocate_memory"
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> ---
>   xen/arch/arm/domain_build.c | 3 +++
>   1 file changed, 3 insertions(+)

Please explain why you would like to include it in 4.16. In particular 
that as I wrote above, Linux is able to cope with zero-size memory bank.

> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 9e92b640cd..578ea80e40 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -395,6 +395,9 @@ static bool __init allocate_bank_memory(struct domain *d,
>       struct membank *bank;
>       unsigned int max_order = ~0;
>   
> +    if ( tot_size == 0 )
> +        return true;

One may argue this is a bug. So I think it would be worth explaining in 
a comment that we can safely ignore empty bank and why.

Cheers,

[1] commit 5a37207df52066efefe419c677b089a654d37afc
Author: Julien Grall <jgrall@amazon.com>
Date:   Fri Sep 18 18:11:16 2020 +0100

     xen/arm: bootfdt: Ignore empty memory bank

     At the moment, Xen will stop processing the Device Tree if a memory
     bank is empty (size == 0).

     Unfortunately, some of the Device Tree (such as on Colibri imx8qxp)
     may contain such a bank. This means Xen will not be able to boot
     properly.

     Relax the check to just ignore the banks. FWIW this also seems to 
be the
     behavior adopted by Linux.

[2] alpine.DEB.2.22.394.2111091423020.440530@ubuntu-linux-20-04-desktop

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 23:16:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 23:16:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224141.387245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkaLr-0005C9-01; Tue, 09 Nov 2021 23:16:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224141.387245; Tue, 09 Nov 2021 23:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkaLq-0005C2-TC; Tue, 09 Nov 2021 23:16:26 +0000
Received: by outflank-mailman (input) for mailman id 224141;
 Tue, 09 Nov 2021 23:16:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j19n=P4=google.com=seanjc@srs-se1.protection.inumbo.net>)
 id 1mkaLp-0005Bw-QE
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 23:16:25 +0000
Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com
 [2607:f8b0:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e1a33f9-41b3-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 00:16:24 +0100 (CET)
Received: by mail-pf1-x430.google.com with SMTP id z6so867207pfe.7
 for <xen-devel@lists.xenproject.org>; Tue, 09 Nov 2021 15:16:24 -0800 (PST)
Received: from google.com (157.214.185.35.bc.googleusercontent.com.
 [35.185.214.157])
 by smtp.gmail.com with ESMTPSA id y9sm3778534pjt.27.2021.11.09.15.16.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Nov 2021 15:16:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e1a33f9-41b3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:in-reply-to;
        bh=3iDOWhiMYVH4J/xrL04EpHxxB+pfcqrny8aFQ+9uha4=;
        b=VzrYqN0K7z0Tuv/HZEo98TZC4k8HLv0Bi89F+eTM7VIgt8Hd0SbLQLu1jfW8/8S8fv
         tzfRT3bkeDhN2PHc31X4H7Y8DtkUZW4N710CDOsPQBTQtnUWIqdFY6F7ije1Cnoj6Q+4
         ppkFKf+QIHaiDGp0vt5e+c8PAWdm9ufyP9kMeDz/DPFOwmptdhrUt8KETig+vfK9Hq/N
         lJFBQKcjKRbfCPyMg8YrBLHsmR9t18pjj8BDwHYytNF7IYDGiDNiRxMB/BsE6ChUEAKz
         f1UvA+hVEnhTbq/8QIGBSxxEpmi70akY31pDC1IU1AtgFWCS0WgRlyVxJZndzjJCKeh8
         qtJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=3iDOWhiMYVH4J/xrL04EpHxxB+pfcqrny8aFQ+9uha4=;
        b=Fsk4kACmJcLxE/dTr0Y1Zb3KBol7jX0jerw0OweFwvbHKkUPzBfBHHSviHMVvTxxb3
         BX9PVkUcPG585I6HWjJgR0ZCV8VpPGijeMAhxwrPnyX82+f4vWNUPg3Ji469tFvSriEa
         5nfs6Qm+Jq2BIDIcLQkVBtO1jqfEpmqX45CdxHWmQpJ6DS0jyClQKKqquS/wpnayLOki
         it8AEjsThGFuSf3PSgJxbAiP92AFOoBpKwk4XlZiTrvgtSsX+w1pq0P5d/doYvvZtiQg
         T6zUt4o5xbNew1hhQnN9yWwftpLnKl8bnruLQdqkvosIhKoNXoLEZHs/DkaQHq3WUrPu
         uJ2g==
X-Gm-Message-State: AOAM531eWylUgUF0voUltpumqVG8W3MENcd1X5mm6jr6riUSH0bI7RuM
	epvdpiXWA3PEoljJq1Zh0FlMIA==
X-Google-Smtp-Source: ABdhPJzkNcQryrFCiNL8a59OsXtVtP1KqfiFu5fhzV9PARw6xea5VYu1cXC91MqNZo8wxwwswlX9UA==
X-Received: by 2002:a63:2c0f:: with SMTP id s15mr9035602pgs.6.1636499782405;
        Tue, 09 Nov 2021 15:16:22 -0800 (PST)
Date: Tue, 9 Nov 2021 23:16:18 +0000
From: Sean Christopherson <seanjc@google.com>
To: Marc Zyngier <maz@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
	Guo Ren <guoren@kernel.org>, Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	James Morse <james.morse@arm.com>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org,
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Artem Kashkanov <artem.kashkanov@intel.com>,
	Like Xu <like.xu.linux@gmail.com>,
	Zhu Lingshan <lingshan.zhu@intel.com>
Subject: Re: [PATCH v3 15/16] KVM: arm64: Drop perf.c and fold its tiny bits
 of code into arm.c / pmu.c
Message-ID: <YYsBQvJPrG5Qrm6J@google.com>
References: <20210922000533.713300-1-seanjc@google.com>
 <20210922000533.713300-16-seanjc@google.com>
 <87tuhnq4it.wl-maz@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <87tuhnq4it.wl-maz@kernel.org>

On Mon, Oct 11, 2021, Marc Zyngier wrote:
> On Wed, 22 Sep 2021 01:05:32 +0100,
> Sean Christopherson <seanjc@google.com> wrote:
> > diff --git a/include/kvm/arm_pmu.h b/include/kvm/arm_pmu.h
> > index 864b9997efb2..42270676498d 100644
> > --- a/include/kvm/arm_pmu.h
> > +++ b/include/kvm/arm_pmu.h
> > @@ -14,6 +14,7 @@
> >  #define ARMV8_PMU_MAX_COUNTER_PAIRS	((ARMV8_PMU_MAX_COUNTERS + 1) >> 1)
> >  
> >  DECLARE_STATIC_KEY_FALSE(kvm_arm_pmu_available);
> > +void kvm_pmu_init(void);
> >  
> >  static __always_inline bool kvm_arm_support_pmu_v3(void)
> >  {
> 
> Note that this patch is now conflicting with e840f42a4992 ("KVM:
> arm64: Fix PMU probe ordering"), which was merged in -rc4. Moving the
> static key definition to arch/arm64/kvm/pmu-emul.c and getting rid of
> kvm_pmu_init() altogether should be enough to resolve it.

Defining kvm_arm_pmu_available in pmu-emul.c doesn't work as-is because pmu-emul.c
depends on CONFIG_HW_PERF_EVENTS=y.  Since pmu-emul.c is the only path that enables
the key, my plan is to add a prep match to bury kvm_arm_pmu_available behind the
existing #ifdef CONFIG_HW_PERF_EVENTS in arm_pmu.h and add a stub
for kvm_arm_support_pmu_v3().  The only ugly part is that the KVM_NVHE_ALIAS() also
gains an #ifdef, but that doesn't seem too bad.


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 23:18:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 23:18:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224147.387256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkaNq-0005p7-CY; Tue, 09 Nov 2021 23:18:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224147.387256; Tue, 09 Nov 2021 23:18:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkaNq-0005p0-9N; Tue, 09 Nov 2021 23:18:30 +0000
Received: by outflank-mailman (input) for mailman id 224147;
 Tue, 09 Nov 2021 23:18:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i2Q5=P4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkaNp-0005ou-GM
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 23:18:29 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5771ed6f-41b3-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 00:18:28 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 9C18561184;
 Tue,  9 Nov 2021 23:18:25 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5771ed6f-41b3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636499906;
	bh=OxUWFDEDkNrUSwgkt3sGH9Y+1YXvIqRgEzBbuJTC630=;
	h=From:To:Cc:Subject:Date:From;
	b=BkdFJsKeRpOIZfAQLgtlIRysg25a87ntJfH7e8sEq1R8MFI2QYdlFtd6U/ZetY7LH
	 SE3M7OcH25KIzC0Jg94GVLLbks9qixJiSoLuS/4AbNHQYACaBGWeCU9dEiaQtJs5J6
	 /xlE894b+CxH6yJn5fowiXDA1yR10od3yG/SRTY4oG4sBta3KWnDaD7JX2OMTzCNhf
	 a1dZdJwrJYh6ma8sGuw+C3YM8J0pNWeT02bVsM5K58Dh4Fw86M60Ts/gRKeYcQ/KcR
	 rTv3FS/ZxvhzStz83vo7RreNijmUMV7KJ1UMMPpJYHhNu0eZXlu6LsfCn90RJri4/d
	 tD3+9PGZbw50w==
From: Stefano Stabellini <sstabellini@kernel.org>
To: julien@xen.org
Cc: sstabellini@kernel.org,
	Penny.Zheng@arm.com,
	Bertrand.Marquis@arm.com,
	Wei.Chen@arm.com,
	iwj@xenproject.org,
	Volodymyr_Babchuk@epam.com,
	xen-devel@lists.xenproject.org,
	Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: [PATCH v2] xen/arm: don't assign domU static-mem to dom0 as reserved-memory
Date: Tue,  9 Nov 2021 15:18:17 -0800
Message-Id: <20211109231817.587168-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

DomUs static-mem ranges are added to the reserved_mem array for
accounting, but they shouldn't be assigned to dom0 as the other regular
reserved-memory ranges in device tree.

In make_memory_nodes, fix the error by skipping banks with xen_domain
set to true in the reserved-memory array. Also make sure to use the
first valid (!xen_domain) start address for the memory node name.

Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation")
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>

---
Changes in v2:
- improve commit message
- improve in-code comment
- update nr_cells appropriately
---
 xen/arch/arm/domain_build.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 9e92b640cd..c81a2bdfef 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -862,21 +862,25 @@ static int __init make_memory_node(const struct domain *d,
 {
     int res, i;
     int reg_size = addrcells + sizecells;
-    int nr_cells = reg_size * mem->nr_banks;
+    int nr_cells = 0;
     /* Placeholder for memory@ + a 64-bit number + \0 */
     char buf[24];
     __be32 reg[NR_MEM_BANKS * 4 /* Worst case addrcells + sizecells */];
     __be32 *cells;
 
-    BUG_ON(nr_cells >= ARRAY_SIZE(reg));
     if ( mem->nr_banks == 0 )
         return -ENOENT;
 
-    dt_dprintk("Create memory node (reg size %d, nr cells %d)\n",
-               reg_size, nr_cells);
+    /* find first memory range not bound to a Xen domain */
+    for ( i = 0; i < mem->nr_banks && mem->bank[i].xen_domain; i++ )
+        ;
+    if ( i == mem->nr_banks )
+        return 0;
+
+    dt_dprintk("Create memory node\n");
 
     /* ePAPR 3.4 */
-    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[0].start);
+    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[i].start);
     res = fdt_begin_node(fdt, buf);
     if ( res )
         return res;
@@ -886,17 +890,24 @@ static int __init make_memory_node(const struct domain *d,
         return res;
 
     cells = &reg[0];
-    for ( i = 0 ; i < mem->nr_banks; i++ )
+    for ( ; i < mem->nr_banks; i++ )
     {
         u64 start = mem->bank[i].start;
         u64 size = mem->bank[i].size;
 
+        if ( mem->bank[i].xen_domain )
+            continue;
+
         dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
                    i, start, start + size);
 
+        nr_cells += reg_size;
         dt_child_set_range(&cells, addrcells, sizecells, start, size);
     }
 
+    dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells);
+    BUG_ON(nr_cells >= ARRAY_SIZE(reg));
+
     res = fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg));
     if ( res )
         return res;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 23:19:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 23:19:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224152.387268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkaOW-0006Me-LQ; Tue, 09 Nov 2021 23:19:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224152.387268; Tue, 09 Nov 2021 23:19:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkaOW-0006MX-IR; Tue, 09 Nov 2021 23:19:12 +0000
Received: by outflank-mailman (input) for mailman id 224152;
 Tue, 09 Nov 2021 23:19:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i2Q5=P4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkaOV-0006LU-1t
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 23:19:11 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70d0f587-41b3-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 00:19:09 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 2B07561184;
 Tue,  9 Nov 2021 23:19:08 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70d0f587-41b3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636499948;
	bh=FFjPKzikGdtAZlqMGgATjqEKTT6MB/ASWMyaUFJxqcY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rWyO2fM6V2O7NBZlotkpDhQq1p3bjUmbJULFekPajRxjf5Z32f4T7bzjYRVERV0K8
	 cefIXsZgmPqQzPHoUB8KaoyOS1rB9MRjrXjMn40wFj4EuYs63a+MQuem3ZripdHChs
	 W4Ni0Iw4fRXqibI7V+MWZ8ULt+wbkdTtFsGczJNW7zoBZ6nTk23tvcbl2ZPucjg2Uw
	 DRC4hr/6V3YOGqmXBpBW4pu0ZyWQRwtU0x/kdzmpaAyEhNtMXgM4PfrQbM5MCRAeMz
	 /ptYH/kVqyy1uDIXOahMAujLs34LiS6ut97KSPK1VjoXAyAeyaJaXCqkg1qwuOUY+7
	 X+XJv2B7ofBRQ==
Date: Tue, 9 Nov 2021 15:19:07 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, Penny.Zheng@arm.com, 
    Bertrand.Marquis@arm.com, Wei.Chen@arm.com, iwj@xenproject.org, 
    Volodymyr_Babchuk@epam.com, xen-devel@lists.xenproject.org, 
    Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: Re: [PATCH for-4.16] xen/arm: don't assign domU static-mem to dom0
 as reserved-memory
In-Reply-To: <9ba4f9ea-d393-bcb6-22ac-0cdb930ad15a@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111091518330.440530@ubuntu-linux-20-04-desktop>
References: <20211109004808.115906-1-sstabellini@kernel.org> <9ba4f9ea-d393-bcb6-22ac-0cdb930ad15a@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 9 Nov 2021, Julien Grall wrote:
> On 09/11/2021 00:48, Stefano Stabellini wrote:
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > 
> > DomUs static-mem ranges are added to the reserved_mem array for
> > accounting, but they shouldn't be assigned to dom0 as the other regular
> > reserved-memory ranges in device tree.
> > 
> > In make_memory_nodes, fix the error by skipping banks with xen_domain
> > set to true in the reserved-memory array. Also make sure to use the
> > first valid (!xen_domain) start address for the memory node name.
> > 
> 
> This is a bug fix. So please add a Fixes tag. In this case, I think it should
> be:
> 
> Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation")

Thanks, will add



> > Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > ---
> > 
> > This patch should be considered for 4.16 as it fixes an incorrect
> > behavior.
> > 
> > The risk is low for two reasons:
> > - the change is simple
> > - make_memory_node is easily tested because it gets called at every
> >    boot, e.g. gitlab-ci and OSSTest exercise this path
> > 
> > I tested this patch successfully with and without xen,static-mem.
> > 
> > ---
> >   xen/arch/arm/domain_build.c | 13 +++++++++++--
> >   1 file changed, 11 insertions(+), 2 deletions(-)
> > 
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 1fbafeaea8..56d3ff9d08 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -874,11 +874,17 @@ static int __init make_memory_node(const struct domain
> > *d,
> >       if ( mem->nr_banks == 0 )
> >           return -ENOENT;
> >   +    for ( i = 0; i < mem->nr_banks && mem->bank[i].xen_domain; i++ )
> > +        ;
> > +    /* No reserved-memory ranges to expose to Dom0 */
> I find this comment a bit misleading because make_memory_node() will also be
> called to create normal memory region. I would drop "reserved-memory" and add
> a comment on top of the loop explaining what the loop does.

Yeah, I agree, I moved it and changed it


> > +    if ( i == mem->nr_banks )
> > +        return 0;
> > +
> >       dt_dprintk("Create memory node (reg size %d, nr cells %d)\n",
> >                  reg_size, nr_cells);
> 
> I think you need to adjust nr_cells otherwise we would write garbagge in the
> DT if we need to exclude some regions.

Good point! Fixed in the next version


> >         /* ePAPR 3.4 */
> > -    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[0].start);
> > +    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[i].start);
> >       res = fdt_begin_node(fdt, buf);
> >       if ( res )
> >           return res;
> > @@ -888,11 +894,14 @@ static int __init make_memory_node(const struct domain
> > *d,
> >           return res;
> >         cells = &reg[0];
> > -    for ( i = 0 ; i < mem->nr_banks; i++ )
> > +    for ( ; i < mem->nr_banks; i++ )
> >       {
> >           u64 start = mem->bank[i].start;
> >           u64 size = mem->bank[i].size;
> >   +        if ( mem->bank[i].xen_domain )
> > +            continue;
> > +
> >           dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
> >                      i, start, start + size);



From xen-devel-bounces@lists.xenproject.org Tue Nov 09 23:46:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 23:46:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224159.387279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkaoq-00017Q-Sb; Tue, 09 Nov 2021 23:46:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224159.387279; Tue, 09 Nov 2021 23:46:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkaoq-00017J-PQ; Tue, 09 Nov 2021 23:46:24 +0000
Received: by outflank-mailman (input) for mailman id 224159;
 Tue, 09 Nov 2021 23:46:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j19n=P4=google.com=seanjc@srs-se1.protection.inumbo.net>)
 id 1mkaop-00017D-2s
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 23:46:23 +0000
Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com
 [2607:f8b0:4864:20::436])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d82c237-41b7-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 00:46:22 +0100 (CET)
Received: by mail-pf1-x436.google.com with SMTP id m14so911649pfc.9
 for <xen-devel@lists.xenproject.org>; Tue, 09 Nov 2021 15:46:21 -0800 (PST)
Received: from google.com (157.214.185.35.bc.googleusercontent.com.
 [35.185.214.157])
 by smtp.gmail.com with ESMTPSA id y130sm14619421pfg.202.2021.11.09.15.46.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Nov 2021 15:46:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d82c237-41b7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:in-reply-to;
        bh=6chuTYfgRvTDMG+7/4r5PAEJkXMffm8xsv4fOhQYrHg=;
        b=padV+5xbNxU2BtdwvYLqgobnJgC7jdztrJVhn7K2+WlRuLp3u+7Em538emsInI8ZW0
         EzZn9v91Us4jfHf9Lmmw5fjJNJZXyPueYr0bLHlmaEwNiw9/mnseW7q3iUQMF0MSrqY7
         fh/rdp+bFUiYM2Q6wMsioJo1q+LB3h94uhn4IoA8l8Oi2FnmukHc/WcnpMyQdwGZgNcX
         quegTOwOZXl16pimaWjp8HrU55UW3cRaxZ+73lXvIy+5zw7YWqG84GnZJq4QA8qj+lfZ
         30vSgeoxKWa3Pm11ldKt4T1NH7NtZdcF3NNQhyDYYMuoCBmAmEhAxO9jY6+vIZP5JAti
         sSrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=6chuTYfgRvTDMG+7/4r5PAEJkXMffm8xsv4fOhQYrHg=;
        b=FSFWG4aZytMLd/nOHXqEP+D0t8CGH/cb1fgahjcrqWTdX5pGLUK/c77NZ9X2xJZRO4
         +gO1lRJiKZSeca2yIMLI4N6LaA/3j44pX2ZZX2I2OLeWsNGgcwoLBHR1wP1IBxZXtHGX
         GrewsfKcvxv46HFMG2UQDqA3QUvgRhpDtLz6KAt9C/7CeLbvQFY09SYAnRwyObHeLUu4
         FgaieI3NXnSSPF8qolpeV9432IFDSVHcKGc2WVrw0z6ESJt1at8jncEEy1g4uID8HFAN
         9WAUUpBWwxZdIC/xoamvKcp8VH2LxJ5SFTWBZcleZwGmVSg8IV9myGk3mOIQCXuo+d19
         k3Ew==
X-Gm-Message-State: AOAM530G0lVATLdtmTBC+X1YIVufpN5EUDVwVZyVfVCZAt8a4OLENflb
	zjc8qB4suERoValSuPYT8AzrGg==
X-Google-Smtp-Source: ABdhPJwm4B0oaMVW7WsgOG0J14c3t+T/mSfRgwMmqW6RiSnYPS/pCOwWjFlWP8+tiDx9Ql84OwTCuA==
X-Received: by 2002:a65:6a47:: with SMTP id o7mr8900284pgu.439.1636501580110;
        Tue, 09 Nov 2021 15:46:20 -0800 (PST)
Date: Tue, 9 Nov 2021 23:46:15 +0000
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
	Marc Zyngier <maz@kernel.org>, Guo Ren <guoren@kernel.org>,
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	James Morse <james.morse@arm.com>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org,
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Artem Kashkanov <artem.kashkanov@intel.com>,
	Like Xu <like.xu.linux@gmail.com>,
	Zhu Lingshan <lingshan.zhu@intel.com>
Subject: Re: [PATCH v3 08/16] perf: Force architectures to opt-in to guest
 callbacks
Message-ID: <YYsIR/yEYm2nAz/p@google.com>
References: <20210922000533.713300-1-seanjc@google.com>
 <20210922000533.713300-9-seanjc@google.com>
 <f2ad98e2-ddfb-c688-65af-7ecbd8bc3b3d@redhat.com>
 <YUtCWOYJwCUYDYtW@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <YUtCWOYJwCUYDYtW@google.com>

On Wed, Sep 22, 2021, Sean Christopherson wrote:
> On Wed, Sep 22, 2021, Paolo Bonzini wrote:
> > On 22/09/21 02:05, Sean Christopherson wrote:
> > > @@ -1273,6 +1274,11 @@ static inline unsigned int perf_guest_handle_intel_pt_intr(void)
> > >   }
> > >   extern void perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
> > >   extern void perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
> > > +#else
> > > +static inline unsigned int perf_guest_state(void)		 { return 0; }
> > > +static inline unsigned long perf_guest_get_ip(void)		 { return 0; }
> > > +static inline unsigned int perf_guest_handle_intel_pt_intr(void) { return 0; }
> > > +#endif /* CONFIG_GUEST_PERF_EVENTS */
> > 
> > Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
> > 
> > Having perf_guest_handle_intel_pt_intr in generic code is a bit off.  Of
> > course it has to be in the struct, but the wrapper might be placed in
> > arch/x86/include/asm/perf_event.h as well (applies to patch 7 as well).
> 
> Yeah, I went with this option purely to keep everything bundled together.  I have
> no strong opinion.

Scratch, that, I do have an opinion.  perf_guest_handle_intel_pt_intr() is in
common code because the callbacks themselves and perf_get_guest_cbs() are defined
in linux/perf_event.h, _after_ asm/perf_event.h is included.

arch/x86/include/asm/perf_event.h is quite bereft of includes, so there's no
obvious landing spot for those two things, and adding a new header seems like
overkill.


From xen-devel-bounces@lists.xenproject.org Tue Nov 09 23:46:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Nov 2021 23:46:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224160.387290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkap8-0001YT-5Q; Tue, 09 Nov 2021 23:46:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224160.387290; Tue, 09 Nov 2021 23:46:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkap8-0001XB-1I; Tue, 09 Nov 2021 23:46:42 +0000
Received: by outflank-mailman (input) for mailman id 224160;
 Tue, 09 Nov 2021 23:46:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkap6-0001VW-KB; Tue, 09 Nov 2021 23:46:40 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkap6-00029u-EZ; Tue, 09 Nov 2021 23:46:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkap6-0007YC-48; Tue, 09 Nov 2021 23:46:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkap6-0002r9-3d; Tue, 09 Nov 2021 23:46:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EctnjJ5LxtG6JYbO6KO9bLIbxeIii3/jxYLa71FTiFs=; b=4G7tIRCKOQuPJMVNlwk/hMkccT
	nO0Dy4nkb+bIMG/oLoVTsrFSqdaZjMcmNg4aaAPtE76F1TscIJudqtG3AgR9CVJT5ipSnVpfSMGX4
	nOTkTbjRMZtECWcw/MLWDS/DDZW8iDW4M17y2/J2046Fj9ps9+vp5rVmCSwergrHx8dI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166092-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166092: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-examine:memdisk-try-append:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=d2f38a3c6507b2520101f9a3807ed98f1bdc545a
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Nov 2021 23:46:40 +0000

flight 166092 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166092/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-examine      4 memdisk-try-append       fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                d2f38a3c6507b2520101f9a3807ed98f1bdc545a
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    8 days
Failing since        165992  2021-11-02 05:40:21 Z    7 days   11 attempts
Testing same since   166092  2021-11-09 06:18:37 Z    0 days    1 attempts

------------------------------------------------------------
1940 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 216531 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 01:52:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 01:52:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224176.387304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkcmL-0007bM-PX; Wed, 10 Nov 2021 01:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224176.387304; Wed, 10 Nov 2021 01:51:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkcmL-0007bD-Jf; Wed, 10 Nov 2021 01:51:57 +0000
Received: by outflank-mailman (input) for mailman id 224176;
 Wed, 10 Nov 2021 01:51:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkcmK-0007b3-94; Wed, 10 Nov 2021 01:51:56 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkcmK-0006M5-3Q; Wed, 10 Nov 2021 01:51:56 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkcmJ-0004TO-ML; Wed, 10 Nov 2021 01:51:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkcmJ-0002es-Lq; Wed, 10 Nov 2021 01:51:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=eSGzLPQ8+cLC1tn283yXx+4aRhg/aETNr9OjPyQTud8=; b=W9e10lv/3/GtcGS1wuCwiXjXA2
	8G8/7Nd3tJ7FnXEwc0D9shIbjDt8H5FVS8wmTUMIcqpkezIXzNgm97ZrVOxc3RkZB1BHJfB4gs3v/
	sQczGBDr7EcfLPhQmWHMaYutXdMI8S6D5uIiUTRRpXVxCu7alflaj3/0zaAvWnPjC78w=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166098-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166098: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=21cc2bda7fda39ba749da607d6db50f55354f1fb
X-Osstest-Versions-That:
    qemuu=114f3c8cc427333dbae331dfd2ecae64676b087e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 01:51:55 +0000

flight 166098 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166098/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166089
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166089
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166089
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166089
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166089
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166089
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166089
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166089
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166089
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                21cc2bda7fda39ba749da607d6db50f55354f1fb
baseline version:
 qemuu                114f3c8cc427333dbae331dfd2ecae64676b087e

Last test of basis   166089  2021-11-08 22:39:13 Z    1 days
Testing same since   166098  2021-11-09 13:23:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  BALATON Zoltan <balaton@eik.bme.hu>
  Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br>
  Bruno Larsen <bruno.larsen@eldorado.org.br>
  Cédric Le Goater <clg@kaod.org>
  David Gibson <david@gibson.dropbear.id.au>
  Fernando Eckhardt Valle (pherde) <phervalle@gmail.com>
  Fernando Eckhardt Valle <fernando.valle@eldorado.org.br>
  Fernando Eckhardt Valle <phervalle@gmail.com>
  Fernando Valle <fernando.valle@eldorado.org.br>
  Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
  Juan Quintela <quintela@redhat.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Lei Rao <lei.rao@intel.com>
  Lucas Mateus Castro (alqotel) <lucas.castro@eldorado.org.br>
  Luis Pires <luis.pires@eldorado.org.br>
  Lukas Straub <lukasstraub2@web.de>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Nicholas Piggin <npiggin@gmail.com>
  Pan Nengyuan <pannengyuan@huawei.com>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Rao, Lei <lei.rao@intel.com>
  Richard Henderson <richard.henderson@linaro.org>
  Thomas Huth <thuth@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   114f3c8cc4..21cc2bda7f  21cc2bda7fda39ba749da607d6db50f55354f1fb -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 05:06:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 05:06:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224089.387318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkfoF-0008J6-0W; Wed, 10 Nov 2021 05:06:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224089.387318; Wed, 10 Nov 2021 05:06:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkfoE-0008Iz-Tn; Wed, 10 Nov 2021 05:06:06 +0000
Received: by outflank-mailman (input) for mailman id 224089;
 Tue, 09 Nov 2021 17:56:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+rF7=P4=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mkVLw-000770-Ty
 for xen-devel@lists.xenproject.org; Tue, 09 Nov 2021 17:56:13 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f400:7e88::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c75f492-4186-11ec-a9d2-d9f7a1cc8784;
 Tue, 09 Nov 2021 18:56:00 +0100 (CET)
Received: from BYAPR02MB4823.namprd02.prod.outlook.com (2603:10b6:a03:4e::18)
 by BYAPR02MB5654.namprd02.prod.outlook.com (2603:10b6:a03:9f::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov
 2021 17:55:54 +0000
Received: from BYAPR02MB4823.namprd02.prod.outlook.com
 ([fe80::bc6c:3e71:c574:8852]) by BYAPR02MB4823.namprd02.prod.outlook.com
 ([fe80::bc6c:3e71:c574:8852%7]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021
 17:55:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c75f492-4186-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OobK2T7Jo+VD5DdsMnIavqLKdaoZFIFkFrF2Uvi4vmsNLAbUvgdWqY8cy53mxZKcUVJuA2XAQHiX3hElpMUwcMQEG9IcbJ+5/RAazifAEuBPZ57KQ0UVWxtASvTWQGovFYdGMCN6lARa2jNoQK0D9A1bXkd3wC8aLmU7aKZJ3ssHtE7KyiKV+rGuT3VNunWXJREcluYVkaZleZfShe5tdxivsZTP59UFMb0Ydc/6HcEDMWe/xrSPLU+d7cVIQ0KawZuErKAvshoT3W+jtumE2una5WDkTH0Ifc55Mt/pa9iwNLwDnyAgAvl1yqoHCjuPYyB+OTncchpdHf0ysW8d3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=u/PV7oXT7nesgfZXjBforPRVFb84xbxPDNzHzQp72ME=;
 b=RSCOA5GKryvUiA/7jesq2c8ox0qAwVnwWuZWka/RfA81roLzuX1Wb2fLnDHiG1eII7lf4g2EE/40NF1EiiOlrPxpQ8ZyYxwGLBpjvlogIwwp2qLcMp8cnJQupKZ5Bj+Ltoq8iZvCdiEeU1aEy9jdQ/idIQwicANw+lhnvYrj+OyvRpY27BBIsqvz/eM6q/NJ6ar1er8GkdOsQKBAv64DXB6/k3MEEduJoHy1CH194NVlI/I0zCZBGRPYLGdOiAW/6kXpwjN+Kud+AKIVVoTshdDkktwjxQjr6yBdqH9V2G1Y5/a/m5tMUuI6jtAaOg4CEDtRBPZh8KQWEmPXh9sbdw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=xilinx.com; dmarc=pass action=none header.from=xilinx.com;
 dkim=pass header.d=xilinx.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u/PV7oXT7nesgfZXjBforPRVFb84xbxPDNzHzQp72ME=;
 b=sVXlKari/ImEUeA+7eoMIL9boKgnUo0mkZkQ4EPiyvd3XDmKtUEyutS8vg34QHrj8YRBTUCx36der0U/ThpCmyJaFQeR0seRzsxhWPMvpma1MhTYHpQ5npUxYooIU6oKySbY7F9agxpL/QQfAmFXh4+hdbowe+RZJD3bmgq57jM=
From: Vikram Garhwal <fnuv@xilinx.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>, "julien@xen.org"
	<julien@xen.org>, "bertrand.marquis@arm.com" <bertrand.marquis@arm.com>,
	"volodymyr_babchuk@epam.com" <volodymyr_babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN][RFC PATCH v2 09/12] xen/arm: Implement device tree node
 addition functionalities
Thread-Topic: [XEN][RFC PATCH v2 09/12] xen/arm: Implement device tree node
 addition functionalities
Thread-Index: AQHX1TfQHzriIwSLBUOZInYGWc/AK6v7DOyAgABtxzg=
Date: Tue, 9 Nov 2021 17:55:53 +0000
Message-ID:
 <BYAPR02MB4823326A067EA3FDAAE32A58BC929@BYAPR02MB4823.namprd02.prod.outlook.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
 <1636441347-133850-10-git-send-email-fnu.vikram@xilinx.com>
 <a984eede-878f-d9b5-da63-990e2e2e57b5@suse.com>
In-Reply-To: <a984eede-878f-d9b5-da63-990e2e2e57b5@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-TNEF-Correlator:
suggested_attachment_session_id: ef0d14d4-0b7e-7a0f-abd1-53d2e8890cef
authentication-results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=xilinx.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d2ed2831-f8ad-4ca5-636a-08d9a3aa2cc7
x-ms-traffictypediagnostic: BYAPR02MB5654:
x-microsoft-antispam-prvs:
 <BYAPR02MB5654C920DE5B4CB7764880D1BC929@BYAPR02MB5654.namprd02.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5516;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 tZZ5X07HCeH3+aiMiqGuWrx6bJ4e8CpFyT8kKnnyPMDW0b0i6C34xe179GqZ5ev1nWJapHFAhXdub87UVMQLXuXskBgceo18WVI72qV+HGxZ6LLT/DfwHoAx4b/q/whlYTR5Efv0ZCVyjIVBdVGvpOMnAE1x84Taxl9y3KGUQmXHEMpr8klbICuWqRq/E+wHpDlYuVz/OMgIo2rrnIZiCvWd9TV9vnDF5+Xk8jArTQvIB0kQq+XcEArqE5fB90Jj4OwRwPv3uI6FjqHZFsBMZO0ioXR/LCnozcnG7Cnu/LOfz1lIFJVVniCLkk02dVgbq71zzcOo0ldevM2J2WjS1KlylJ9YC/abKo7uoWuV0g2NVTRoGbr+dgmfLCtxYZnzAVPYdDXF6B4tqBglDMk1NfLSKkXdlT35NImB8P1mgu6ipnCglMoXm29vJ7aFhnx6K+3dHvkspkTXgfs9N3UNWKs+N0TIQrNaGjR0k/ZsZbqATJ8A1olZjcl1qInWgU0QDzaBB/RglqN3ItFm0NXekUU5neDxA70N4YEmSC4APWAlbVF4XndaJHPz2Ei+JdmRdbhRWSU4ojLzmkaF43qL4KPZsG0HE4+Qtf8Sjx4UXghlgVSMsysoArgyQ8QBDpvnVNHpg95zYXqUGa1sOYMewtfuwh7cuPKmsZRPLgHCx95s/Jr5JY6eXI90NiAaET5tr4pMO6FsAONNz6Jx2vWMCw==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR02MB4823.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(7416002)(54906003)(53546011)(33656002)(6506007)(7696005)(83380400001)(6916009)(8936002)(508600001)(8676002)(2906002)(4326008)(5660300002)(19627405001)(52536014)(71200400001)(9686003)(86362001)(55016002)(66446008)(186003)(38100700002)(122000001)(66946007)(66556008)(66476007)(26005)(64756008)(38070700005)(76116006);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?wSOO28+bpXLyDrZhM0ONMQuSq5LyEjrDcJNYBvaKUOb63tWYsdlgm761hbaZ?=
 =?us-ascii?Q?asBMN2ECOPbXSqqV6mRSjIS1y7NYpEZLT8dHIf8XlfKWzoSSMHj5jqMlDQaw?=
 =?us-ascii?Q?+pJdW0TcI8Pfk8gswigVRlXK7lflQJdkdWpbNts74NDcNGhY5Ve2e0f+OR1m?=
 =?us-ascii?Q?PzOG+W7XU4RK2Tl5kmgR9aJUy2smsIwhH05t8jykWd5f2I23XAA8Edb2TZ/Y?=
 =?us-ascii?Q?qGIEhIA9ojNgR8rZId3N1Uuk5dYta5Vlf6eLFckrbHLF16zHwyVseM3J87Qk?=
 =?us-ascii?Q?GI3m9sIrqnaLNRZAZXWzrw0OlHN5n/VdUniHX392vYZD63a/ziYD78H924Co?=
 =?us-ascii?Q?uvSJ5YewGstzoEPTs3pweSKW68TPzJ6CXsnT15l6gBgbysW2k5wHm6g/BRZr?=
 =?us-ascii?Q?wIPH8i1HdSFFXnUcmNlU0TUpDma94iQuAbsp4D5YnnjfsCNE42h1686t3GIF?=
 =?us-ascii?Q?x7hg0CP+absxVvrpdqOGrqZo7UnglSQd05Q/grtAiWCFvJgXgW62PCo906Dz?=
 =?us-ascii?Q?l1OQ47QpJiiB+sX8BDied6TPkyve/W/IwDlrXPKd/yw61YsN0FGfbR0fs0y6?=
 =?us-ascii?Q?UUS9uKDxffycvbLcBwIV7wEeRYita9VTUu7DqYE55JAqCiWnfIpwKc1KzSii?=
 =?us-ascii?Q?uIcWipfvnoViVIjbjknTqBN9aM3xhVDjufSCbRJl8Wz9gOWOwT1MohUM/LmK?=
 =?us-ascii?Q?ZEL6p05BdTUALQYFz7LnIYnzjgxIKnf1D9eeKzkzyTjO4xgvEw7ACT6Wv7tx?=
 =?us-ascii?Q?MwPAbWmQEJNl5wkSBBo5tBxaDv4pjpxMAN1rbVvzQfnX4ECCSTRPAgY4sWy8?=
 =?us-ascii?Q?C6bdKq+9fXlwVwstMI0kuPUXt23bzDDe1qg58UqFwBwu6nsCPfJib6S/IlHZ?=
 =?us-ascii?Q?filfkuPldMP9x0BCeLygBdxI/UXPJTxotK2usGhH01zDv94iYeOux/dNmRuo?=
 =?us-ascii?Q?EAZGacDJG5k+EQjDYIbyxeQQzRh09wTXoDLZxpoB8VCm1gi+8A5/Fg8/DyZJ?=
 =?us-ascii?Q?RWOj9sDo9THVMLUdVY+D5yuXTCTUjYIqoxVTBEgqzKYYo14CFm+8qV1iNB3x?=
 =?us-ascii?Q?pGO64Y0r6cMPZLpZfePRYseavekmMTXRDBxxUN3aPC2b5abvRfbT1EQiwjDk?=
 =?us-ascii?Q?pSbh+HFa3Ysw7cBBQ3gfpqAwa3UeCPy1zh0aDFr/H6ObHN6TBJubaEluDuS2?=
 =?us-ascii?Q?9QydGPv7rsa2psh/+ACGjvmT+ByIFrRM+v4cgnfqryWoygT5sXlXlDFeMGGn?=
 =?us-ascii?Q?8maeWQHVNLfk0INn/sn3RmfokDV4myo+jzYHwI5Ksf4R4HEHjZUo6IUHihqD?=
 =?us-ascii?Q?3TvwzP56FOXaBIgmxwinaL0/2IQH9rxthLeXSLo4HbaSXnrbdYXnX1R9U6Zy?=
 =?us-ascii?Q?2mD5VgxRSFOks0E3Fyo4lbH3aRYo47DS5ha/9/4YTRnSxaWwL9x1np0u8rEL?=
 =?us-ascii?Q?Sm2criHxBUmMCX9KdbGHIx2wqQna2T+LZ3SUjPkw78SGsppObeEQsDSkvaJb?=
 =?us-ascii?Q?FVTiDA5ODx2KiYDqk3Kg3hFyCfxOpxDafPiGdwFOHoYIaw6/YniEV+EHrQ?=
 =?us-ascii?Q?=3D=3D?=
Content-Type: multipart/alternative;
	boundary="_000_BYAPR02MB4823326A067EA3FDAAE32A58BC929BYAPR02MB4823namp_"
MIME-Version: 1.0
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BYAPR02MB4823.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d2ed2831-f8ad-4ca5-636a-08d9a3aa2cc7
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2021 17:55:53.9019
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: qriyUy9MzVOcXULCnOBIkTbZ/ePVVFQjN23RuQJ5+y8Svq78oAKZCedQM9QOIDC1
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR02MB5654

--_000_BYAPR02MB4823326A067EA3FDAAE32A58BC929BYAPR02MB4823namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Jan,
Thanks for reviewing the patches.
Yeah, I messed it up while breaking the code into multiple patches. For nex=
t v3 patch series, I will move the function call "handle_add_overlay_nodes(=
)"(in patch 8/12) to 9/12 patch.

Thanks,
Vikram
________________________________
From: Jan Beulich <jbeulich@suse.com>
Sent: Tuesday, November 9, 2021 3:19 AM
To: Vikram Garhwal <fnuv@xilinx.com>
Cc: sstabellini@kernel.org <sstabellini@kernel.org>; julien@xen.org <julien=
@xen.org>; bertrand.marquis@arm.com <bertrand.marquis@arm.com>; volodymyr_b=
abchuk@epam.com <volodymyr_babchuk@epam.com>; Andrew Cooper <andrew.cooper3=
@citrix.com>; George Dunlap <george.dunlap@citrix.com>; Ian Jackson <iwj@xe=
nproject.org>; Wei Liu <wl@xen.org>; xen-devel@lists.xenproject.org <xen-de=
vel@lists.xenproject.org>
Subject: Re: [XEN][RFC PATCH v2 09/12] xen/arm: Implement device tree node =
addition functionalities

On 09.11.2021 08:02, Vikram Garhwal wrote:
> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -331,6 +331,205 @@ out:
>      spin_unlock(&overlay_lock);
>      return rc;
>  }
> +
> +/*
> + * Adds device tree nodes under target node.
> + * We use dt_host_new to unflatten the updated device_tree_flattened. Th=
is is
> + * done to avoid the removal of device_tree generation, iomem regions ma=
pping to
> + * hardware domain done by handle_node().
> + */
> +static long handle_add_overlay_nodes(void *overlay_fdt,
> +                                     uint32_t overlay_fdt_size)

You adding a static function here without any caller got me puzzled.
First I thought you'd be introducing a build failure this was, but
it's really patch 8 which does by introducing a call to this function
without the function actually being there.

Jan


--_000_BYAPR02MB4823326A067EA3FDAAE32A58BC929BYAPR02MB4823namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
Hi Jan,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
Thanks for reviewing the patches.</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span style=3D"font-size: 12pt;">Yeah, I messed it up while breaking the co=
de into multiple patches. For next v3 patch series, I will move the functio=
n call &quot;</span><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
&quot;Segoe UI&quot;, &quot;Segoe UI Web (West European)&quot;, &quot;Segoe=
 UI&quot;, -apple-system, BlinkMacSystemFont, Roboto, &quot;Helvetica Neue&=
quot;, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: =
rgb(255, 255, 255); display: inline !important;">handle_add_overlay_nodes()=
&quot;(in
 patch 8/12) to 9/12 patch.</span></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span style=3D"caret-color: rgb(0, 0, 0); font-family: &quot;Segoe UI&quot;=
, &quot;Segoe UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-sy=
stem, BlinkMacSystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; f=
ont-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); =
display: inline !important;"><br>
</span></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span style=3D"caret-color: rgb(0, 0, 0); font-family: &quot;Segoe UI&quot;=
, &quot;Segoe UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-sy=
stem, BlinkMacSystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; f=
ont-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); =
display: inline !important;">Thanks,</span></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span style=3D"caret-color: rgb(0, 0, 0); font-family: &quot;Segoe UI&quot;=
, &quot;Segoe UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-sy=
stem, BlinkMacSystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; f=
ont-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); =
display: inline !important;">Vikram</span></div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Jan Beulich &lt;jbeul=
ich@suse.com&gt;<br>
<b>Sent:</b> Tuesday, November 9, 2021 3:19 AM<br>
<b>To:</b> Vikram Garhwal &lt;fnuv@xilinx.com&gt;<br>
<b>Cc:</b> sstabellini@kernel.org &lt;sstabellini@kernel.org&gt;; julien@xe=
n.org &lt;julien@xen.org&gt;; bertrand.marquis@arm.com &lt;bertrand.marquis=
@arm.com&gt;; volodymyr_babchuk@epam.com &lt;volodymyr_babchuk@epam.com&gt;=
; Andrew Cooper &lt;andrew.cooper3@citrix.com&gt;; George Dunlap
 &lt;george.dunlap@citrix.com&gt;; Ian Jackson &lt;iwj@xenproject.org&gt;; =
Wei Liu &lt;wl@xen.org&gt;; xen-devel@lists.xenproject.org &lt;xen-devel@li=
sts.xenproject.org&gt;<br>
<b>Subject:</b> Re: [XEN][RFC PATCH v2 09/12] xen/arm: Implement device tre=
e node addition functionalities</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">On 09.11.2021 08:02, Vikram Garhwal wrote:<br>
&gt; --- a/xen/common/sysctl.c<br>
&gt; +++ b/xen/common/sysctl.c<br>
&gt; @@ -331,6 +331,205 @@ out:<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spin_unlock(&amp;overlay_lock);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return rc;<br>
&gt;&nbsp; }<br>
&gt; +<br>
&gt; +/*<br>
&gt; + * Adds device tree nodes under target node.<br>
&gt; + * We use dt_host_new to unflatten the updated device_tree_flattened.=
 This is<br>
&gt; + * done to avoid the removal of device_tree generation, iomem regions=
 mapping to<br>
&gt; + * hardware domain done by handle_node().<br>
&gt; + */<br>
&gt; +static long handle_add_overlay_nodes(void *overlay_fdt,<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ui=
nt32_t overlay_fdt_size)<br>
<br>
You adding a static function here without any caller got me puzzled.<br>
First I thought you'd be introducing a build failure this was, but<br>
it's really patch 8 which does by introducing a call to this function<br>
without the function actually being there.<br>
<br>
Jan<br>
<br>
</div>
</span></font></div>
</body>
</html>

--_000_BYAPR02MB4823326A067EA3FDAAE32A58BC929BYAPR02MB4823namp_--


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 06:35:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 06:35:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224190.387328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkhBu-0000Cs-QC; Wed, 10 Nov 2021 06:34:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224190.387328; Wed, 10 Nov 2021 06:34:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkhBu-0000Cl-NG; Wed, 10 Nov 2021 06:34:38 +0000
Received: by outflank-mailman (input) for mailman id 224190;
 Wed, 10 Nov 2021 06:34:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkhBt-0000CY-ST; Wed, 10 Nov 2021 06:34:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkhBt-0003VN-LV; Wed, 10 Nov 2021 06:34:37 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkhBt-0000C7-8j; Wed, 10 Nov 2021 06:34:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkhBt-0004ZM-8F; Wed, 10 Nov 2021 06:34:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=rs21mYwoSY7wow0QaKXs4LqRY+cLtI9iYmig5u6slik=; b=xvThbFDDJA0Hxu4caYX2p0EgbJ
	ahiIbGk5IgeyGrHY1VUKWURjJQ9vO+Kw8UBhkc9LdzCniG6vx0ZGuyYRjYsagaBASMX8OuDSHxhRB
	NpArOqSJqj8n6rP89QDEAmqDUgmO7e+t1kXSrHVYaRVCfRULXEAJ7muI7ZNi1vk48stQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166102-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166102: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=aab6bb3d32e207c89364504e4a195f9f0cf5ce31
X-Osstest-Versions-That:
    ovmf=c974257821208fc6191779d1ddea918499f165b8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 06:34:37 +0000

flight 166102 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166102/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 aab6bb3d32e207c89364504e4a195f9f0cf5ce31
baseline version:
 ovmf                 c974257821208fc6191779d1ddea918499f165b8

Last test of basis   166097  2021-11-09 11:40:05 Z    0 days
Testing same since   166102  2021-11-10 02:40:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Bob Morgan <bobm@nvidia.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   c974257821..aab6bb3d32  aab6bb3d32e207c89364504e4a195f9f0cf5ce31 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 06:46:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 06:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224196.387342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkhNb-0001hH-TT; Wed, 10 Nov 2021 06:46:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224196.387342; Wed, 10 Nov 2021 06:46:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkhNb-0001hA-QY; Wed, 10 Nov 2021 06:46:43 +0000
Received: by outflank-mailman (input) for mailman id 224196;
 Wed, 10 Nov 2021 06:46:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VRVb=P5=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mkhNa-0001h4-3M
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 06:46:42 +0000
Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f33ce242-41f1-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 07:46:38 +0100 (CET)
Received: from fmsmga001.fm.intel.com ([10.253.24.23])
 by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 09 Nov 2021 22:46:36 -0800
Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83])
 by fmsmga001.fm.intel.com with ESMTP; 09 Nov 2021 22:46:36 -0800
Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by
 fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 9 Nov 2021 22:46:35 -0800
Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by
 fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 9 Nov 2021 22:46:35 -0800
Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by
 fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Tue, 9 Nov 2021 22:46:35 -0800
Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.172)
 by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Tue, 9 Nov 2021 22:46:34 -0800
Received: from BN9PR11MB5433.namprd11.prod.outlook.com (2603:10b6:408:11e::13)
 by BN6PR1101MB2082.namprd11.prod.outlook.com (2603:10b6:405:51::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Wed, 10 Nov
 2021 06:46:28 +0000
Received: from BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81]) by BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81%9]) with mapi id 15.20.4669.016; Wed, 10 Nov 2021
 06:46:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f33ce242-41f1-11ec-a9d2-d9f7a1cc8784
X-IronPort-AV: E=McAfee;i="6200,9189,10163"; a="318815746"
X-IronPort-AV: E=Sophos;i="5.87,223,1631602800"; 
   d="scan'208";a="318815746"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,223,1631602800"; 
   d="scan'208";a="642437295"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XgwUDRhiYTcQA0wAaCrcSy7pC570ah2r/xJta1OjxKWP6qZ+ULWwj/z9KVV3CEGTPIN4uz5tjOKt9vVkDulAfNyaRKVpk7JqVaLrK2kGTcZ4RRVoiqSQj8DUxnjm2SlnXWi8xSzzsqNM/I4U2Wmsr54ByQBLllaEPcE9jWjDPkd05lPhNLaosWai0fJxx+I2Bw3guEW1rw7pBzDWYwrtJNXnSKDOI0EMVeHZFwYZPCy9XopArOSA6nqykB/uyKMR+mHkiIGdYJk0h3lL24jbMSZk6+3GVibMJop6SULz8SLlgbgRvAtCX4IdPEgh0rH+pQdPhJYc6AcyY35kJrnUxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fmA0bFxAWcaRXJoHN7VKWmzcN0F2SjkHfp1Ox1jP96o=;
 b=bVEPImzH/fiOwvc/7HBx6lxMK1WDjiQb3weLx8YFWus/ZNf4zJBS+/ESIyB9boS8wQRPe1KnrZ3x+3CR7U8irahH9OJ7NEy9cEb4NjwwRKxjXkI7pM1q4KXHxotHZUolmENBBb/n3Uxjzw6nmmfKXyEOsS4nRqqzUn0dLznmy1+plnJ+k8/+rwk6fXHalUQ36mvX8DkRNQaqKqjiQjoDG34UtoAH2cry1cdmeujmx01frjx30Uv67n4MsIUENTup8Js6zXFhLID/mhtOJx88uqceewNi03IIacSY3ZYzi6LlvMutYvdYg3JeBZrgqKILtphQRWz641iPzqHzULqKGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fmA0bFxAWcaRXJoHN7VKWmzcN0F2SjkHfp1Ox1jP96o=;
 b=e5ic+mcnreIrENCHp1DDAop7QgC7mS+NvA1gAa+Vrf7TrxIcDoCwZdVy6izL01IbqvnsayxCM3rEY9/sXsAgofa/RiT11Ev0fErzHENtJtuPJ6gOYIfItAvz2M5RiJUP61ZgxDrTVDtSt/lJaLkEQz8Lk0+w5yH5P14dqelrsFk=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Paul Durrant <paul@xen.org>, Ian Jackson <ian.jackson@citrix.com>
Subject: RE: [PATCH 0/3][4.16?] VT-d: misc (regression) fixes
Thread-Topic: [PATCH 0/3][4.16?] VT-d: misc (regression) fixes
Thread-Index: AQHX1XnjlVsp5RAVTkSqP738SSJmo6v8UiUg
Date: Wed, 10 Nov 2021 06:46:28 +0000
Message-ID: <BN9PR11MB5433D26CA0996E874B08DDB58C939@BN9PR11MB5433.namprd11.prod.outlook.com>
References: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
In-Reply-To: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 66b13245-c954-43da-4bab-08d9a415d2ae
x-ms-traffictypediagnostic: BN6PR1101MB2082:
x-microsoft-antispam-prvs: <BN6PR1101MB2082CB54C5AED13B5FC961E38C939@BN6PR1101MB2082.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5236;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: DbtD5dkgxPjqkKPQR1Hx94gRL0Gw8IBv1ecVx5KTKM6x29bRwDglK1LVMzZj1Iugc5QsTbWgJI4WWv9h7RiZhf2tdri0vTz+VI+yEzkK4g7LLr7N7uWACJuu2vUdHeXojRGHM2bmS2vo/6mNeKhTpZ+HrZLU5VUVCKawkVhh6aiz2zyAxzFIWk9mINLtRywkzbB+jm6/n1CKavKvHn2lxzJ+ONHYBKTtdzBp9jDFKd3KoQFHGgWq/uusXZCHsHy70aLLbAs5tf1tsjvHDCn4McGQXuxKfV77YqzD1gPASWjvvFVDmh1SBqKtODhUXtls4V7Yp2giX8jhoqjdBU13KoEFCvfj9tjAMPUrDx003q/pQ8sRnXxHOdMu/XywunxyKmi97lymCchrU+ZLJ/+VNuc06zZJY2nNfJqaIxURCj7LY+alYZD8r9WdWe5+Z5amhoHxTkw0mAdpptX7qZEss+kmLAUJV5BWmgGoHMr+DoeFnoSPWByeYadG77D2vTzJDofqn8VJmwfUfOikZAvswuEDB30DcWUxBg4UL4Aw6hb8rH8SyXdQlqYh3kEPdOt+h82MjPdxbDJ5I8jV/rqYy59M59AqM7SQw/j/vQn9NoNoVyEKZFcCJOW4tp83oyvZw9VykRrumlIzpw2+CfQbNRU9+K2ECIm7G/3L1EFKPkc5ovBY578S7HanxswRMN6slbzWZ4oYlXvWKK13cvjhDA==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5433.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(7696005)(55016002)(9686003)(54906003)(66446008)(86362001)(122000001)(186003)(38100700002)(5660300002)(38070700005)(4326008)(8936002)(64756008)(52536014)(26005)(8676002)(66556008)(82960400001)(33656002)(316002)(110136005)(508600001)(66476007)(76116006)(71200400001)(4744005)(2906002)(66946007)(6506007);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NHBJalg3YkkyYmVDNGZpVDF3ZGU0VGRXOEJXUU4yRU9yNnRlLzhrN29vUUdM?=
 =?utf-8?B?REg0a0Fvc1lRRS9QVzNVNjFPUzA0azhUbUNLRWlkVlZ3SkFCaVNIMzhRSU1D?=
 =?utf-8?B?TzI5MDJIeXhVNFRRUDA2MXBtT0FUbmhrYitKVFR4TXlDNjBHQ0xMS3V3MDZr?=
 =?utf-8?B?bTNncVQzR2RUdlRlcVoxZjBQNVNKOFkwM3BKT28vczJPYWplSUs0U1R2NUhV?=
 =?utf-8?B?MVN0SDZtaGQ4OXhIZEcvZmU1RTBxdG1ZclNGbHZNZEkvUno3czdrRldUSXdC?=
 =?utf-8?B?T3JHSWsrWlVIWVAybHRabFFEcDhHYkVlenVlYXo4K3djMXdKZEtybklFSWFK?=
 =?utf-8?B?R1FSemFaNitpc0NycWlsdGwxd055amRwYjNjc1FpNDZCMTVVckU1Tzc4M0Q5?=
 =?utf-8?B?WEVLR2JDYjdFdjA0N2VndEhuekt0bTZQSUFqWHJYUE1idjlZc3haRlB2b3d2?=
 =?utf-8?B?M3N6N0tlOVJqK0Yxa29TSCtvQ2N5UlVuZk9XZytBdnRiN1Vzbk5wOVNhTTNS?=
 =?utf-8?B?eVVzK1hzOE1mcHV4ak9wcDh0V1pvTmViM2dJeFB4dEs3cnhmTW5KckxOQmhE?=
 =?utf-8?B?MlMvamI0Q3lEcDJYQUR4WTJlWDYwVXFkd21Xdk1URjBISkoxSUxTdEptaFl4?=
 =?utf-8?B?UDIxQWhNUFhxRlp4OTJvSDlZLzA1SFVwc1k2cDYxcThhcmYzaVh2d21DVlJj?=
 =?utf-8?B?d0xaSnRKdHc2U3JvVDRLQ2l3V2thcW1JZzJQVUFPZzVmZXNqQ2tHNXQxblRs?=
 =?utf-8?B?bnczS2lxeEFrR3FMZEh0YWtpNmduT3dXcHRGbFBXWnhKUkxrWkk2SHRobHRz?=
 =?utf-8?B?OGoreGhzMjJkeDNvUzVIRXhPbVZJKzNqM2lERHRpTUxzU28wTnkwV25CRkFV?=
 =?utf-8?B?cTBmMUdUR3JpanNXUWhWdThrRHNFOWQ0OGdUaG9aaWdZSDltK1NOUUhoU2xj?=
 =?utf-8?B?VkZYQ0s3ZlRGakViWVZqVGNCTlRnTXVCRUwwVFV5cEE3R09wallGRmlacy81?=
 =?utf-8?B?dnMweitUR2tmWVh3aXNBUm93NXpnVk0xZyswQ1d6bDdkY2RtMWFWdUYxTmoy?=
 =?utf-8?B?UStUNnczcHA5b1N5OVFCQlNIVnZpdmNGUUVwNXNjNFo4SDdURHdxK0xIaWM2?=
 =?utf-8?B?K1pGSUdrUlpRZ3cvUnl1MmtaTlBLTlpQR2l1NG9ra3AyeSs1MzM1Qk5OS3da?=
 =?utf-8?B?cTJqMFg1Y0p1Q0c3MWRJcGlXeXYyaFk5R0U5WmM5Z3R6STNzWktpQ1VJc3lk?=
 =?utf-8?B?WlkyVStsMGs1NXVaYUpwVnhYRk0rZ3VWcTVXUnAwU2hyMk9jQzlnTTdueFEz?=
 =?utf-8?B?SzJaZmc2MkErNFI1b1dlc2RqLzRLRU1BVnlXYy9jazd4SkgxUkNsVFlYRXhH?=
 =?utf-8?B?L2RrVXNva3I3dnpheTBWSGpYT05XSDdTWWpyYjNQMkxtekxTTWhjOGFYNGd0?=
 =?utf-8?B?dlN0RlRXRk5TK21IcmplcndzbHVHdVlYa2FFTm1YK2FCTzI3dHdleEVZQnFJ?=
 =?utf-8?B?VTBXbE9qOW5jWnkzYVRFL2FpRHBQbjhVc2RINTFoNE9zMWpLOFlQVWlOTTY1?=
 =?utf-8?B?cVBybjZCZmxHQURBUGkvTlMyRlZJQU1rWHdqYld3L25Ed3k1U2ZFNFNPcW1k?=
 =?utf-8?B?YllLaDU4K0dQTzFPNDVwUGxDQnVJMXhzMDJoN0ZaMW9NTDAzOVZJZjBLSGhD?=
 =?utf-8?B?SHViNkRMNlFTbFRGVEpOZzlESFFxMW1VMXBSSjZkQ1V0RjNBbGhIV3RucEp1?=
 =?utf-8?B?cDVnSGpDcnNNVzhwelhmTEp5MlJySTBDcElFYytlTjRoQXVmbVJRY2NhYThR?=
 =?utf-8?B?eW9ocC9Kd0RoNzBGYjVyUXExSU91WjJmLzdJNk1YemhQWHFObE9QQ09IckVK?=
 =?utf-8?B?VnAzTWtPelRiRDViYzdJaWNPTGpqN3JkQnNmL1JBc2JnTC9wOUtNQ1o0azJp?=
 =?utf-8?B?ckRiZ005YitoaUFLeWFQd21vMGRwRTNsMlpSQ0JqNEdyb0dyclRlK1IzeGUz?=
 =?utf-8?B?SGQ3UHBQMGZlVTliVm1VSUlMN2hKN3lNQU9ZSXYyTEFwcDFjOExMUVdmTXM1?=
 =?utf-8?B?MUxVRHJVKzBIQzRZRGxONjE1dUQ3cUtxVUcvWFV4S1BEV0tPOHpVLzRNMkNx?=
 =?utf-8?B?bzMvYUdnZWp5bnpMOTVPTHJaUm4xZnlqQUhFL2lNeEYwMVVLMkxwR20wRmlV?=
 =?utf-8?Q?oPeEV3HwCKYqThq0jOEcIHc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5433.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 66b13245-c954-43da-4bab-08d9a415d2ae
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Nov 2021 06:46:28.4148
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: P8u9J8YEvf3r7QS/Y1NZPS7ZbZVSIjRB4txWXBt5/CArNxXlO8E4inkCI9wMy3Q+wv10pf0ovxkL1F8RyTp3SA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1101MB2082
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXks
IE5vdmVtYmVyIDksIDIwMjEgMTA6NTYgUE0NCj4gDQo+IDE6IHBlci1kb21haW4gSU9NTVUgYml0
bWFwIG5lZWRzIHRvIGhhdmUgZHluYW1pYyBzaXplDQo+IDI6IGZpeCByZWR1Y2VkIHBhZ2UgdGFi
bGUgbGV2ZWxzIHN1cHBvcnQgd2hlbiBzaGFyaW5nIHRhYmxlcw0KPiAzOiBkb24ndCBuZWVkbGVz
c2x5IGVuZ2FnZSB0aGUgdW50cnVzdGVkLU1TSSB3b3JrYXJvdW5kDQo+IA0KPiBBcyB0byA0LjE2
IGNvbnNpZGVyYXRpb25zOiBPbmx5IHBhdGNoIDEgYWRkcmVzc2VzIGEgcmVncmVzc2lvbg0KPiBp
bnRyb2R1Y2VkIGFmdGVyIDQuMTUsIHRoZSBvdGhlcnMgYXJlIG9sZGVyLiBQYXRjaCAzIGFkZGl0
aW9uYWxseQ0KPiBvbmx5IGFkZHJlc3NlcyBhbiBpbmVmZmljaWVuY3k7IHRoZSBjb2RlIHdlIGhh
dmUgaXMgY29ycmVjdCBmcm9tDQo+IGEgZnVuY3Rpb25hbCBwb3YuDQo+IA0KDQpBbGwgbG9vayBn
b29kIHRvIG1lOg0KDQoJUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwu
Y29tPg0K


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 06:52:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 06:52:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224201.387354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkhT8-000354-IQ; Wed, 10 Nov 2021 06:52:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224201.387354; Wed, 10 Nov 2021 06:52:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkhT8-00034x-FC; Wed, 10 Nov 2021 06:52:26 +0000
Received: by outflank-mailman (input) for mailman id 224201;
 Wed, 10 Nov 2021 06:52:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkhT6-00034n-EN; Wed, 10 Nov 2021 06:52:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkhT6-0003oS-2t; Wed, 10 Nov 2021 06:52:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkhT5-00013x-EL; Wed, 10 Nov 2021 06:52:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkhT5-0000Uy-Dq; Wed, 10 Nov 2021 06:52:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=mqLjAyO4u7EyYWbsUzkjbf+ITBVg+e9aVOuayncVfmk=; b=rzjeiynOAunT0PIiwvugEurgih
	4EZZDqIYUEDmi769oMbKhf9s1iPu5uEqnGg4DLttHYtFlWzy5kEYWRrhah1RrT5VLnB+wnmmwemEV
	lVXZYVtK2rlyY4CW6tYclPjWqCvEL8iswyKiIA1811brAsjY8TQzo3TLK5/9LPu0zsgc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166099-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166099: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-libvirt-vhd:guest-saverestore:fail:heisenbug
    xen-unstable:test-amd64-amd64-examine:memdisk-try-append:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
X-Osstest-Versions-That:
    xen=7379f9e10a3b13ec8bcea756384b2ace8af7064d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 06:52:23 +0000

flight 166099 xen-unstable real [real]
flight 166104 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166099/
http://logs.test-lab.xenproject.org/osstest/logs/166104/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-libvirt-vhd 16 guest-saverestore   fail pass in 166104-retest
 test-amd64-amd64-examine      4 memdisk-try-append  fail pass in 166104-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166094
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166094
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166094
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166094
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166094
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166094
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166094
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166094
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166094
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166094
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166094
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166094
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
baseline version:
 xen                  7379f9e10a3b13ec8bcea756384b2ace8af7064d

Last test of basis   166094  2021-11-09 09:08:18 Z    0 days
Testing same since   166099  2021-11-09 18:09:24 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 fail    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   7379f9e10a..9d9cd0c6f5  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2 -> master


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 07:41:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 07:41:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224211.387372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkiEA-00083l-L5; Wed, 10 Nov 2021 07:41:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224211.387372; Wed, 10 Nov 2021 07:41:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkiEA-00083e-HV; Wed, 10 Nov 2021 07:41:02 +0000
Received: by outflank-mailman (input) for mailman id 224211;
 Wed, 10 Nov 2021 07:41:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q2fe=P5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mkiE9-00083Y-3k
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 07:41:01 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8bb3e488-41f9-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 08:40:59 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-16-OcmaSEmQNgiYrMYzsXuw7w-1; Wed, 10 Nov 2021 08:40:57 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5904.eurprd04.prod.outlook.com (2603:10a6:803:e6::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Wed, 10 Nov
 2021 07:40:56 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Wed, 10 Nov 2021
 07:40:56 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR0301CA0019.eurprd03.prod.outlook.com (2603:10a6:20b:468::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Wed, 10 Nov 2021 07:40:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bb3e488-41f9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636530058;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2xb6oeZURi1BjOi+lhkPpWY/Axvg0uHMw9sQrKjibRU=;
	b=dQIO/tVQdCiBPRm5z+m2nJv+/ui92kmQnOOPhVnuoJNJJWjY3Tn3T0MPbWVmyUELoUr0qm
	YO5TLlrVhL5vX+ZECW3gpIRpLTPulQiKOLDaltfYSFeJDD9V7/L7uF9/qURIdvLOZpi5Vz
	vh67COjsbekOYDfrHretYbxwYa8vypE=
X-MC-Unique: OcmaSEmQNgiYrMYzsXuw7w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TycyWrBhf7W/rG40YfZCXdYOCbIXjXO1XtRNzmJB8tymFa2vfy2fOG1P/+55s75rmvjJ7HtRLzXo+PSBzacq+kcz4GO2+GZZNpjKajDQoZGeUuSN0rlG8ZEYGdDyaKPHcFNpHUGw+yjd/7QQC3QEX0sUENtsvOcvhnboW/wobghW03qjDfVYRaCx4UxXNxjf5NBobiflztOqfKsvfAGZ4+jWNXRZEdItHx7VAgCt+6KoWlTazuit5J9+fvaH3hQa9ienpoZkpAHjO5pN5OStHoY+nOGq/Ik6Nd83bRP24nFGsj77FNTN7L7EINmmX1xOrkww1pnz3nqhf7d3geJ9fw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2xb6oeZURi1BjOi+lhkPpWY/Axvg0uHMw9sQrKjibRU=;
 b=XTa0Jw9PZYynTVNS+h1EGX6bN1OP9P9/UM78O6PeFt1Vm5jNU7pwtm2yDp20RFJwpv+NqPjShYT6gdspPVrMASHPlS1Wj2DO1tAGlk2OVhjWu2SO+uVrXdf13VgacevTjFB9j3q5Gecmu/zS0hoDATPQelEolgLNYfSfBsZa42daY/PKnuva0OU8jgFXewe+5uiSeb06c3B2HoPqF1PItjIyvuCzs3OAvxhbABlDcIlYnMTRVlqjddhrwb6Wso3uPqeaKLxb278ijz9UzF9UEhY81LUOj9zh7RUygEJDLxOkQDtNwtGHtV/McKWr8RS2mTIGrilvgyHUOTCiPEb5TQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <eb273fb8-fa41-755a-b9c5-b16d3bfbd3b5@suse.com>
Date: Wed, 10 Nov 2021 08:40:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR0301CA0019.eurprd03.prod.outlook.com
 (2603:10a6:20b:468::29) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2c3df1aa-201d-4af5-4f4e-08d9a41d6e48
X-MS-TrafficTypeDiagnostic: VI1PR04MB5904:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB59047BB15963EB041114D26FB3939@VI1PR04MB5904.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qyzwMGoekvvQltStfHjOuXkdksADVSPN/XQNZSxh2MZf0IVFX4sCLLdwXOlFVO+y7k1gw8988Lr8XYdAv2jppg2nMhGUIyLn6RAX4aroD1k80vnQ8AbNKPss26wt2AW5T+BZxUeDXU/Kmn0JhyWcjePQPJkMYvK8sTGDXMImmEh2Z5Gl+BSAyXpuUACldqp1TeF9x53xYZB/79Z5zS9yCtRyrYC74OWXdoHfUcD725CaM5bqctdT4A6sfJ+OEtNS7wlD/VYrQpq9emHo0AbA1QnstVr/ojvHXXrP99K0bQol+/UjoOZoGUG/ygiWFD/KTAKtJsLHmswRZ18bfM5DmjpCfXrxwscoKFemO33LqTjVPA3v1y+Q9Ktph1zorvzZYNTDaZcUdS+V+mTaUrTpYtyygMCU5sv5/igbKzF85of2fcuUH9JacwO+QF1KnVm+WwIFKtJWJeNeXPY+sni0sIU1GDFRAXUM2TCZD/TSpNDUSXmGODYKvA8mAwoIsn5fevWmukjkV21lZOx1dnG3STCykuW4E0ydZDn7jkz9erZGV+W8qTiEOVHziiQ8D3xJzlXoyqpyrInr6AK2CrsxNYF5ODepgdXuuRgnZDifRJV3UDV/Pol5JKpotnleiUwDEs5N/w4Tf353JlmU/zY5soIuT1LvTwYznceooCg+0rcjnozKnGrrl7mRszuUcfHJKADDrlnwj2V0z8SJ6Tj4/LUKKB6NdrWaCRwry4x/HEU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(16576012)(316002)(86362001)(5660300002)(54906003)(38100700002)(31696002)(36756003)(26005)(2906002)(31686004)(6486002)(186003)(8676002)(6666004)(83380400001)(4326008)(66476007)(66556008)(66946007)(53546011)(508600001)(8936002)(956004)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VXg1OHlMaTFFUDRSUmUvV0xuSlNuSERrWDdFSm0zdFRSZVVrdEl4bHJENXBk?=
 =?utf-8?B?c1ZGTHdSM3dUSDNrczdLWDMwRnM1cUtuNzNkVmlPNklZL3JINkNuY0VHeER0?=
 =?utf-8?B?UnZDeE9XTU5SZVR1eUI4dDZoUlVPRm94bnpjcEU0MDFrejlaUWZhQVpCZkVn?=
 =?utf-8?B?VEVYWE5rR25Cc2l5blZvRVA0a05NMXdFWEtSaUFka0pONDFJMUVPWUdGb1BH?=
 =?utf-8?B?S1M4NExSRkhaUi9HNzdXYW9EUUtGT2F5b3FWcEs5Rm1Ea3hDTUhnd1A4Tmtn?=
 =?utf-8?B?eUlqOUFGTm5ETjRsc05ERW5MSEw5TlkxMlRtdmlSaEwvYWZtd1N6YVB2V0NL?=
 =?utf-8?B?SGJDNVhqblI0d3o4SUIrUWxhU3hkY3JYOUlxZGx3cmM5V0k0RnNDcWorKzQ1?=
 =?utf-8?B?ZzF5RnBwUWFVYzVpQ3RSa1FuZ0xNa1BWVVdlWS9xYW1jTEN1NDUxMlMySTNM?=
 =?utf-8?B?aTJKVHNySFE4a0NLSndDQXIveC9IblBnTzBIT2wyd2R4TGVkTms2OURKZ05w?=
 =?utf-8?B?MFpmcExrb3dLYXFtdENpSUpTOS9mU01Gc0t2dnQyK0ZrcWtTZjhVQzI1ZG04?=
 =?utf-8?B?em1LQ0p6cG1TRURQMzdZcWkzVGZDMkN0WG81eXh6UUlJWWZQTUFoNlZlbXd2?=
 =?utf-8?B?V1AvZS9hdENRdDc4R3J5RUZEcGwvcXllZEUxZ2drK0VMVUJYSXFRbjBaTkRj?=
 =?utf-8?B?bjhwelVTSmIvTGtzSkdyU1hYYk00U1lQOGVnNU54SFh0SXphMS84eStVTGVI?=
 =?utf-8?B?UEZRY1RvU3d1anpHWGFVejBsa1YzcDE1eTI4alZUUlRTWmU5SnFPSFZML2RR?=
 =?utf-8?B?QVc5YkhuWUp6dnpQdHQyeGwrdVU2WkFSN1ZJSm5RTjJUaTZVaDU5OGRrM3M5?=
 =?utf-8?B?VFJObEdNWSs5azZ1NkIvdmtkRFFlN2hKakVpY3lXL3h2NVJCZjJ6VTVIdExm?=
 =?utf-8?B?V21YbFk5azllY0hYTUlxY28rWXNBdGcxM2dzb2VZUTZObnM4MXlQUmJxdFlk?=
 =?utf-8?B?L29mV1NnRXFBblp4WjlWV05XTzFxZHEwTlNPRGRNSS9sMWFEa0RTWmUxZzVh?=
 =?utf-8?B?WmJHVHBJak9GR0gwKzNHck5kYzFWWEx4MFV4WVV4bUpiMnJwYis0T3loWkZo?=
 =?utf-8?B?WFlIMUxuR05lODVoN0pualphZEt1NE4venpWMnh0d3hIS3dOUm10cUl3b1Zw?=
 =?utf-8?B?ZDZNRElJa1JTMFcwdG5VUGFqUURkRWdreUE4U2toeWRJRWtXdXZPelZ0T2JJ?=
 =?utf-8?B?anJmNE41K1pCaHJCUUZGUGVQbDdkb2gyY3NBcUg5Vi9OSFl1TWFrWU9xclc2?=
 =?utf-8?B?WENya2xvWDhDQXJ0MG9TczVQZVphcDliVVZHOTIxRDJoN0JLck9RbUJXTnRT?=
 =?utf-8?B?NGx3YUE3NjVJYTJBVTBaOEVENWFxSkRGZXI4RTBBeDhkYmRxTHFSeWNGNWp6?=
 =?utf-8?B?RFdlY0xZRTR1YjYvS2oza1RBNjUzbEhvK3hxTUEwaTVWemg1UWtPOXR5VVRL?=
 =?utf-8?B?OFBFTXMzU1VNUUswbDZKNWlhS3A4VkhJMm5SaGQxelFEWWd1K0ZyS0RFeWJ0?=
 =?utf-8?B?N3lxdGVGOWRZbnBCR1dzY3RpSk1pbUtMOVFpYWZJNlNtbDZ0YmJoYnlUakFx?=
 =?utf-8?B?WFlUalI3RTFRbVJNa1dkMjJhUVVxY09pMm1qTnQ3R3ZlaVlNOXhUNDF3M28w?=
 =?utf-8?B?a0tVMFJTcVUrNWZ2SWlZZkc0WXkzT1JwQmhwQzgwRW1jcEVlWlVFL2dRVzBs?=
 =?utf-8?B?U1FsT3BiSTBUcXcxUTQyUnJZUko0c2t4NWsrcmZTdk5YSXBtTlBuSUtOZGp0?=
 =?utf-8?B?ZzZiT2NwUFloZE8xN04yaFk5RGRMWDdiczArZmxXZFhaYlhNeUVwd1FTRkZ3?=
 =?utf-8?B?WVN0dUJoQVJtSnNIbjBXY1BDdFBQZjlXRWZmdmxXVzRYVmU2cEtCS05rczFr?=
 =?utf-8?B?bmdRRmw2YkkxNXljWnF1MTVrT25UMWp1d3NpNmNxRnI1NFh6aGZ3ZG8xY0RW?=
 =?utf-8?B?cHd0c2pndXhDeXFiSjJkNDI3STA0N1JzYjFRMmkzUHlhdzRwR1I5eHRZZnB1?=
 =?utf-8?B?VnJZVVFBTFkxLzl2L1M0SC83TEw2Y2JzZU1oR1pxRjZoNWc0ZVpTbVhrekJu?=
 =?utf-8?B?elpSMytkVzhrNDFESHVQMks2c0hQVTJHY0tWaHB4RXZOSHU1QVp6alNscEQy?=
 =?utf-8?Q?LmEYEbbsPGNqiIkScO6g1ag=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c3df1aa-201d-4af5-4f4e-08d9a41d6e48
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2021 07:40:56.3064
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8dpH2RoweDdj66WTikkzPYERGVZu4C2gdogvWcuss1J7oP0XoaKLT2S1kP0zaan5de2iLZY8uEbxg414hZw4Tg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5904

On 09.11.2021 22:52, Stefano Stabellini wrote:
> @@ -862,6 +856,7 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>  {
>      int chosen, node, addr_len, size_len;
>      unsigned int i = 0, modules_found = 0;
> +    CHAR16 *fname;
>  
>      /* Check for the chosen node in the current DTB */
>      chosen = setup_chosen_node(fdt, &addr_len, &size_len);
> @@ -871,6 +866,8 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>          return ERROR_DT_CHOSEN_NODE;
>      }
>  
> +    dir_handle = get_parent_handle(loaded_image, &fname);
> +
>      /* Check for nodes compatible with xen,domain under the chosen node */
>      for ( node = fdt_first_subnode(fdt, chosen);
>            node > 0;
> @@ -902,6 +899,8 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>          efi_bs->FreePool(modules[i].name);
>      }
>  
> +    if ( dir_handle )
> +        dir_handle->Close(dir_handle);

Weren't we there before, resulting in the same problem that Luca's
change attempted to fix? get_parent_handle() simply shouldn't be
called unconditionally aiui. I could see closing of the handle to
happen here, but its opening imo should happen the first time
allocate_module_file() is actually reached.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 08:17:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 08:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224221.387383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkimu-0003OF-J1; Wed, 10 Nov 2021 08:16:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224221.387383; Wed, 10 Nov 2021 08:16:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkimu-0003O8-Ea; Wed, 10 Nov 2021 08:16:56 +0000
Received: by outflank-mailman (input) for mailman id 224221;
 Wed, 10 Nov 2021 08:16:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkims-0003Ny-Hh; Wed, 10 Nov 2021 08:16:54 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkims-0005iX-BB; Wed, 10 Nov 2021 08:16:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkims-0004fz-4W; Wed, 10 Nov 2021 08:16:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkims-0005At-3y; Wed, 10 Nov 2021 08:16:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=++0CquqRDAemsBXtHmanXbOqsklAw6ZBWnj7pOeBT94=; b=60YJRjI9QL7uG/R+/kKnsmsYVD
	PG5mHSdj2q1EkAnNHjjOmN7EY8mWL+yVky485y7rmjqkeFLwh+bjpZx2pgdCL4wZcRePbgN1Z2SXn
	8XiK++IWzdzxuZAa3ZFkTdHwTb+TihwTy1VEuZfSDbrrXWFBn4zyo1ZqKmbipdAjU57M=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166105-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166105: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=f826b20811ba6b0a9dbe44ff703b85c2def267df
X-Osstest-Versions-That:
    ovmf=aab6bb3d32e207c89364504e4a195f9f0cf5ce31
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 08:16:54 +0000

flight 166105 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166105/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 f826b20811ba6b0a9dbe44ff703b85c2def267df
baseline version:
 ovmf                 aab6bb3d32e207c89364504e4a195f9f0cf5ce31

Last test of basis   166102  2021-11-10 02:40:25 Z    0 days
Testing same since   166105  2021-11-10 06:42:43 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Chiu <ian.chiu@intel.com>
  Ni, Ray <ray.ni@intel.com>
  Ray Ni <ray.ni@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   aab6bb3d32..f826b20811  f826b20811ba6b0a9dbe44ff703b85c2def267df -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 09:21:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 09:21:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224229.387397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkjn8-0001br-EX; Wed, 10 Nov 2021 09:21:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224229.387397; Wed, 10 Nov 2021 09:21:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkjn8-0001bk-B6; Wed, 10 Nov 2021 09:21:14 +0000
Received: by outflank-mailman (input) for mailman id 224229;
 Wed, 10 Nov 2021 09:21:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PBp+=P5=citrix.com=Jane.Malalane@srs-se1.protection.inumbo.net>)
 id 1mkjn7-0001be-4R
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 09:21:13 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 898eaa30-4207-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 10:21:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 898eaa30-4207-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636536069;
  h=from:to:cc:subject:date:message-id:mime-version;
  bh=B8/23IjAs7tM8yvKwjTqTj7xnzcShUImgDvG/FDUAGE=;
  b=Y6GU2fR7ZSOnznX0Tkg0UbWjoSJzHZX4hFVXYqF6MUgubBGe8tGNTCTE
   FAiCz92BUGkeLsrKg9uXA7eMsze9927xd6sZ3lLSGrrRpwI+Kb4jeyWsR
   yqDe+0wDSjpgbCKTsezWtLEcZdlGYwE9h7CeotS1W5dYJ2dkUThmX/h3x
   0=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Nk5V62544xVTdntOQAd9FxaTRb4MfKO5sISBHuDod2XeGX6FBoGoEQCmxD5+Yk7VYc+kx6LHrq
 ACuSoy5ooNY+MJ4OEySYPkMzcvzClEcFvcbcwMK/xnvEL7D+ffUu8K65VSa3iwpmpqE3qGcpWP
 FFrQuIrOwlRU11ICa5QKHnrKAU7TS2LqBRiyOupcp22vlRB5BtZxruIniLpy4Qy2wqQldWMspR
 K0iAPoCrwxAur5KYihfZ3MqAtvJxJNjEU206aIwkJ3q595a9voP2/TeLuKqXcnNDMVUGJcOJ4o
 jFZLZb4mHDsRGe3O89sFOll+
X-SBRS: 5.1
X-MesageID: 57485307
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Q0/afKu+4jDQ6GFEeDBis1+oyufnVINZMUV32f8akzHdYApBsoF/q
 tZmKTuAPK7ZMzagKd9yPo6y8x8F7Z6Gn4MwHlRtriw9HyoU+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2IDhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplusSRQAAnGpb1usM7QzlSOD5cE4xC9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DHooZtzdFxDXQCf8gTLjIQrnQ5M8e1zA17ixLNauBO
 5pEMmIwBPjGSxxjAw80L5choPbyr3LaVBsD9gORnaVitgA/yyQuieOwYbI5YOeiRNpXtlaVo
 Hrc+Gb0CQ1cM8aQoRKH+H+xgu7EnQvgRZkfUra/85ZCkFCVg2AeFhASfV+6uuWizF6zXcpFL
 E4Z8TZoqrI9nHFHVfGkAUf++iTd+EdBBZwASIXW9T1h1ILbuyeQAWYgdQdjT/o2lMUdWh4E9
 1uGyoaB6SNUjJWZTneU97GxpDy0ODQIIWJqWRLoXTfp8PG4/tht00unosJLVffs04arQW2YL
 yWi9XBm390uYdg3O7JXFLwtqxalvdD3QwE8/W07tUr1v1oiNOZJi2FFgGU3DMqszq7FETFtX
 1BewqByCdzi67nWzERhp81XTNmUCw6tamG0vLKWN8BJG86R03CiZ5tMxzp1OV1kNM0JERewP
 hSN5VMKuMIIYCb7BUOSX25XI59ypUQHPY60Ps04k/IUOsQhHON51Hg2DaJv44wduBd1yvxuU
 XtqWc2tEWwbGcxaIMmeHI8gPUsQ7nlmnwv7HMmjpzz+iOb2TCPFGN8tbQrVBshkvfzsnekg2
 4sGXyd8404EC7OWj+i+2dN7EG3m2lBnX82r8JIOKbbYSuekcUl4Y8LsLXoaU9QNt8xoei3gp
 BlRg2dUlwjyg2PpMwKPZiwxYb/jR88n/3k6ITYtLRCj3H16OdSj66IWdp0We7g79bM8ka4oH
 qddI8jQUO5STjnn+igGacWvpoJVaxn21xmFODCoYWZjcsc4FRDJ4NLtYiDm6DIKUnisrcI7r
 rD5jlHbTJMPSh5MFsHTbP7znVq9sWJEwLB5XlfSI8kVc0LpqdA4Jyv0h/4xAscNNRScmWfKi
 1fIWU8V/LCfrZU0/d/FgbG/g72oS+YuTFBHG2T77KqtMXWI9GSU3oIdAv2DeirQVT2o9fz6N
 /lV1fz1LNYOgE1O79hnC79uwK8zu4nvqrtdwlg2FXnHdQ32WLZpI33A1shTrKxdgLRevFLuC
 E6I/9BbP5SPOd/kTwFNdFZ0MLzb2KFGgCTW4NQ0PF7+tX1+87ewWElPOwWB1X5GJ7xvPYJ5m
 eostab6MeBkZsbG5jpesh1pyg==
IronPort-HdrOrdr: A9a23:v/Q5haslfVVndjVnPNEMfCP87skDYNV00zEX/kB9WHVpmszxra
 6TdZUgpHjJYVkqOE3I9ertBEDiewK5yXcW2/hzAV7KZmCP0wHEEGgL1/qG/9SKIUzDH4Bmup
 uIC5IOauHNMQ==
X-IronPort-AV: E=Sophos;i="5.87,223,1631592000"; 
   d="scan'208";a="57485307"
From: Jane Malalane <jane.malalane@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Jane Malalane <jane.malalane@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	Ian Jackson <iwj@xenproject.org>
Subject: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo status
Date: Wed, 10 Nov 2021 09:19:35 +0000
Message-ID: <20211110091935.16906-1-jane.malalane@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain

Before, user would change turbo status but this had no effect: boolean
was set but policy wasn't reevaluated.  Policy must be reevaluated so
that CPU frequency is chosen according to the turbo status and the
current governor.

Therefore, add __cpufreq_governor() in cpufreq_update_turbo().

Reported-by: <edvin.torok@citrix.com>
Signed-off-by: <jane.malalane@citrix.com>
---
CC: Jan Beulich <jbeulich@suse.com>
CC: Ian Jackson <iwj@xenproject.org>
---

Release rationale:
Not taking this patch means that turbo status is misleading.

Taking this patch is low-risk as it only uses a function that already
exists and is already used for setting the chosen scaling governor.
Essentially, this change is equivalent to running 'xenpm
en/disable-turbo-mode' and, subsequently, running 'xenpm
set-scaling-governor <current governor>'.
---
 xen/drivers/cpufreq/utility.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
index b93895d4dd..5f200ff3ee 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_state)
     {
         ret = cpufreq_driver.update(cpuid, policy);
         if (ret)
+        {
             policy->turbo = curr_state;
+            return ret;
+        }
     }
 
-    return ret;
+    /* Reevaluate current CPU policy. */
+    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);
 }
 
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 09:50:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 09:50:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224234.387408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkkF2-0004br-NE; Wed, 10 Nov 2021 09:50:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224234.387408; Wed, 10 Nov 2021 09:50:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkkF2-0004bk-JY; Wed, 10 Nov 2021 09:50:04 +0000
Received: by outflank-mailman (input) for mailman id 224234;
 Wed, 10 Nov 2021 09:50:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkkF1-0004O7-8U; Wed, 10 Nov 2021 09:50:03 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkkF0-0007GD-VU; Wed, 10 Nov 2021 09:50:02 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkkF0-0000u6-NF; Wed, 10 Nov 2021 09:50:02 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkkF0-00074V-Ml; Wed, 10 Nov 2021 09:50:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=epC5wCRveN4bZy1e5lVffitM/ExU8QU+UEbTJ4AkAkI=; b=V3ENPHxuK+9sm2uS6AtRy9um5+
	W3aXrmrgr011g/kyj2jjbOumiwtUhhDNgD2nkTlAMSD+/tyXZA0q9z/jQerjeTZ0YsfJzvN4vt37N
	hf+dDEMxlPFgAUcAdecUa8QQsOuG8vnXllu5nw7mCcyS7phdYJ2ckT6HbrdZDnzZVXbk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166107-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-coverity test] 166107: all pass - PUSHED
X-Osstest-Versions-This:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
X-Osstest-Versions-That:
    xen=9bc9fff04ba077c4a9782f12578362d8947c534b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 09:50:02 +0000

flight 166107 xen-unstable-coverity real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166107/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
baseline version:
 xen                  9bc9fff04ba077c4a9782f12578362d8947c534b

Last test of basis   166078  2021-11-07 09:18:29 Z    3 days
Testing same since   166107  2021-11-10 09:19:41 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Christian Lindig <christian.lindig@citrix.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 coverity-amd64                                               pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9bc9fff04b..9d9cd0c6f5  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2 -> coverity-tested/smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 10:45:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 10:45:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224242.387421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkl6A-0001Hy-Vp; Wed, 10 Nov 2021 10:44:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224242.387421; Wed, 10 Nov 2021 10:44:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkl6A-0001Hr-Sf; Wed, 10 Nov 2021 10:44:58 +0000
Received: by outflank-mailman (input) for mailman id 224242;
 Wed, 10 Nov 2021 10:44:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MXGz=P5=gmx.net=j.neuschaefer@srs-se1.protection.inumbo.net>)
 id 1mkl69-0001Hl-Pb
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 10:44:57 +0000
Received: from mout.gmx.net (mout.gmx.net [212.227.15.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e0517c8-4213-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 11:44:55 +0100 (CET)
Received: from longitude ([5.146.194.160]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MYeQr-1nEmW91Bsx-00Vcng; Wed, 10
 Nov 2021 11:44:10 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e0517c8-4213-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;
	s=badeba3b8450; t=1636541050;
	bh=h45DiQjGY0Dfm8CE9cn4qF+342ykeQ4Uk5C/gkooaIw=;
	h=X-UI-Sender-Class:Date:From:To:Cc:Subject:References:In-Reply-To;
	b=kmUfRHIzmoViydSucYTxEQG1FNJ8CWRzX0F3WYOX1d2VD3eujCwT6kC0uAXqWmZLt
	 eMJ+M/8iTWkQKI5o+Bspt5/1og5A5qZCqV0IRSD+beJIRF0/33jVnOkUer8fEeU46q
	 NY7uVn1Yx5reMWfFjuhrJ2jc6HS5QmKSQvralaIo=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Date: Wed, 10 Nov 2021 11:43:55 +0100
From: Jonathan =?utf-8?Q?Neusch=C3=A4fer?= <j.neuschaefer@gmx.net>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Jonathan =?utf-8?Q?Neusch=C3=A4fer?= <j.neuschaefer@gmx.net>,
	Guenter Roeck <linux@roeck-us.net>,
	Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Lee Jones <lee.jones@linaro.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Mark Brown <broonie@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Russell King <linux@armlinux.org.uk>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Chen-Yu Tsai <wens@csie.org>, Tony Lindgren <tony@atomide.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Vladimir Zapolskiy <vz@mleia.com>,
	Avi Fishman <avifishman70@gmail.com>,
	Tomer Maimon <tmaimon77@gmail.com>,
	Tali Perry <tali.perry1@gmail.com>,
	Patrick Venture <venture@google.com>, Nancy Yuen <yuenn@google.com>,
	Benjamin Fair <benjaminfair@google.com>,
	Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
	openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
Message-ID: <YYuia9KFdi+ETT+I@latitude>
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com>
 <YYbqlmOM95q7Hbjo@latitude>
 <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
 <9a22c22d-94b1-f519-27a2-ae0b8bbf6e99@roeck-us.net>
 <658cf796-e3b1-f816-1e15-9e9e08b8ade0@gmail.com>
 <5a17fee3-4214-c2b9-abc1-ab9d6071591b@roeck-us.net>
 <c0b52994-51f5-806b-b07e-3e70d8217ffc@gmail.com>
 <YYkIeBSCFka9yrqC@latitude>
 <04103df3-1ef4-b560-a5cb-fa51737d28ad@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="2Vc8voT8F+nWl+5t"
Content-Disposition: inline
In-Reply-To: <04103df3-1ef4-b560-a5cb-fa51737d28ad@gmail.com>
X-Provags-ID: V03:K1:Jd3HsvpIvSkd1z9MZ8A+M8pmRMEjtJGTIH5/rKKzl1zv92guAhj
 9dWDOhUd2UJZ9MerqFJu2sL0Vqy01eD3StlZDn4FJIminWyxKafYCrFSKtByuDa87GeS9OR
 qeoUp0E4UiW3sjAndGidVfCkZjgUQcURUuhYsgKl5H5XKG1g/BTOt0/CSBYYpcJ5Udag/gd
 3wpmaE1MgAr/8Zxl8PaIg==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:9zHz1F4x458=:7Vp+bYm0dzpDVbvG6/Jg2u
 qI4IrtGWKiV/jMQFkG7dyJBbQvpEWwPJ76d/zJSyX1M1lKNm0KMizgdWYVXyIW/XoqBwKPv1D
 53+DzXdLuVgOm0wkoIG2GeQ/nb/c84AhvSEAoevpHCl6VEXR6fOvbN82cXa7985eDdl8UKM+O
 4h3Is/MA4WoDtRBZ1OqiFsYx8FLL1RBd0E7FqR319PSJ/bJwJAdPbaC1JvQk6kHH3/NBFt26i
 Q3DgkmG6muY/n8xv9b9V7t/ZWlppYtelF1o5MvHu2J00j2PbYSZX9eozu/Doat8V94rSWUKYb
 8pSdnLPUWq70O5KtVp9tTAFvyw/H1FShEa0gt9n4kbbOSofwKtWPp3w6ndwZn0vqQiMqSpx5F
 pW+VpkbxvWsOFEWJJsTGH2eqGFH7HNRknQZl+87wW5wtL7KvGgF3QsbsIAWrKtzB9X/8WrLGE
 Q2bThe7j50/eherGVoafg+OX1FpxcH8SkWxWRwHOYPY6MAcfWvoCbb0Lrq1TuMCEIR21SYzz/
 nKcIQ2MIMbO6pJev1gnsMMspAiK9v/yDDf2YfwA5W5cMnog6ZH1EP7GjRP+V1L4WGIVmIYWjZ
 cHGTxKjNY18j227bPzrRrZw1mR3FZxmby4QNq9M2UubsB6oeBGdjh2aJPUPJBCfs/+3a18KA+
 xA6FQOnu4L1XhctfO1s8iX0YD6ideSBMb0KHUFr1N0LQgA0QEITEwNFtzGkPBB/gQ91Mtb/BO
 /mpnNG0EzJaO/w5CiG92jdML3JVtyvpMLyLhPWE0HyQ2mtmYYeRjCDxP5oDHzH4e/JAELuTV1
 U+KgtcC4SdatS1E3xSGfYaEWJnZD3guRw2ZDMVMPz1QzGYvBbk1uTXDDTpqBpiWB9POVDvyMU
 RZN7S/dzQnujlcpYxqJMiIBsYFZJI3saxm1eCZh79EkYKtr+yxECJAHRe1ooDxlvmf+PdmvFz
 teW5eV+FQ6Z8TxYl0+/Pxm1aaTMg360Uf5O3Yxxq+6pW+Cr9pdW+jbwf3FWQ4Opb03KxmWDUJ
 J/4DosOxyxjcCBCxt9avnDv6aic7H0cD/lL1HPIA+I+KJ0H2Wh10gm+vMHpsdMkzEHCpK13Dh
 +VtVl/6MSAYdCs=


--2Vc8voT8F+nWl+5t
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Nov 08, 2021 at 02:36:42PM +0300, Dmitry Osipenko wrote:
> 08.11.2021 14:22, Jonathan Neusch=C3=A4fer =D0=BF=D0=B8=D1=88=D0=B5=D1=82:
> > On Sun, Nov 07, 2021 at 08:42:33PM +0300, Dmitry Osipenko wrote:
> > [...]
> >> EC drivers tend to use higher priority in general. Jonathan, could you
> >> please confirm that NTXEC driver is a more preferable restart method
> >> than the watchdog?
> >=20
> > Yes. The original firmware uses the NTXEC to restart, and it works well,
> > so I do think it's preferable.
>=20
> Thank you, then I'll update the NTXEC patch like this:
>=20
> https://github.com/grate-driver/linux/commit/22da3d91f1734d9a0ed036220ad4=
ea28465af988

I tested again, but sys_off_handler_reboot called a bogus pointer
(probably reboot_prepare_cb). I think it was left uninitialized in
ntxec_probe, which uses devm_kmalloc. I guess we could switch it to
devm_kzalloc:

diff --git a/drivers/mfd/ntxec.c b/drivers/mfd/ntxec.c
index 1f55dfce14308..30364beb4b1d0 100644
--- a/drivers/mfd/ntxec.c
+++ b/drivers/mfd/ntxec.c
@@ -144,7 +144,7 @@ static int ntxec_probe(struct i2c_client *client)
 	const struct mfd_cell *subdevs;
 	size_t n_subdevs;
=20
-	ec =3D devm_kmalloc(&client->dev, sizeof(*ec), GFP_KERNEL);
+	ec =3D devm_kzalloc(&client->dev, sizeof(*ec), GFP_KERNEL);
 	if (!ec)
 		return -ENOMEM;
=20


With that done, it works flawlessly.


Thanks,
Jonathan

--2Vc8voT8F+nWl+5t
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEvHAHGBBjQPVy+qvDCDBEmo7zX9sFAmGLoj4ACgkQCDBEmo7z
X9tbGw/9GW9TBNeJDqVwinH41nEM2TsnygEKpr7D3uPWXiWIIh7wxva0XnLkeDOr
YZUOSFjLglCoW9n8UjIgpmScFQ9OY5em2dY9iSOPk55FYy/kkD1LKXl8Qbto3Xjr
XRwv4EDIxlfO2uvjXgc07E2zGjiZdqaFwcIiMz1l8Rns6jC+AbzO0KFcoffXXKCg
oCDi/e1hnVfze/XGWTTSXbofwfAKHJPVE11uF8lK2Uqv0THOAbvpIQdZiQPaNuVe
bZuJ1p6wMxzjc6HiB8C6aJ0sy5Po98ZKWTAvvqFXBitgvOx0VCgKfJfqS+06qxiA
gYnxdQAIJjcwrBJYfpry4rg9nBYvH7Jao/uKYoXSm73mtXdEqG4oIQIZ0eC7jS/d
dRGjzR5mrhaA3G8mWMssxg6RX1EGpYBimy7XGpgml/bIXrEjGYZi3FaGZSnk9UTd
oAutr3b9I43OZFYo/gRKjQmEl9C1Ru/ZsmKDin75X8hfCzrFOoAUCLQ7X/tbbPoF
As6x8TUBJY8Zd9xBW2i/4sm+ZPAuMG5TMzzpRj/DEs2RN5UouXycBqzTFNleFYYf
LuwPDYZYSqe75uXgu0K0weup8tULnVfBuvOJDR5yMF7tf90iNku7JIcIXjtKglWH
EA0twe/kQWknjeUcmaR65U1v+cf8ekV6V8TVrEKb4cCEYf3HPBw=
=z+7h
-----END PGP SIGNATURE-----

--2Vc8voT8F+nWl+5t--


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 10:47:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 10:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224246.387432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkl84-0001x8-F5; Wed, 10 Nov 2021 10:46:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224246.387432; Wed, 10 Nov 2021 10:46:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkl84-0001x1-C3; Wed, 10 Nov 2021 10:46:56 +0000
Received: by outflank-mailman (input) for mailman id 224246;
 Wed, 10 Nov 2021 10:46:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z30i=P5=ffwll.ch=daniel@srs-se1.protection.inumbo.net>)
 id 1mkl81-0001wv-FL
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 10:46:54 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 836dd9d7-4213-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 11:46:52 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id o8so8794616edc.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 02:46:52 -0800 (PST)
Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa])
 by smtp.gmail.com with ESMTPSA id z10sm14094307edd.12.2021.11.10.02.46.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 10 Nov 2021 02:46:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 836dd9d7-4213-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=ffwll.ch; s=google;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:in-reply-to;
        bh=CJ8BKvr5XUSO/Vo4sS7QvREYUZiUN+4dM8bteUPX/YU=;
        b=a5PDaYRSHhLE0B/0FQ+MlW7rePX4lX8rMFt04k9jy714oeV6rCydngg+4chiEab4BB
         0et1lR5054ugeHjiqzoRhGkDg1UoJWAzmwRFvIlBA+ugUkN39qs5cm5is5LIv5WH2xEf
         oEhqQbxoFXx4fNzwMrzHIsDeA0puwKDSYP3nc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=CJ8BKvr5XUSO/Vo4sS7QvREYUZiUN+4dM8bteUPX/YU=;
        b=L/fC4b2Fccbtzb+yoCurDNoXsrpk+PQO6n+9scgUK6rXehllN1Nee90G0NOKL/K0zk
         g5wdRU9cQfp5/19KKe/GH3FNDiGx4plpCJQMGruB23wrvutnI7tWKAyh1Qy5iNXCnhn4
         ZHBdUS6naSn0oa1vZmp0GrgPPr6fM8zvru0HwYdHhPTlx/Ae0QO1OEHXfubCZCUtWRvr
         dnbtpKscx9m2QJLgaP6aIWZjlW+WgKP3Gz8JNRJzdNvZU2ku6gjM784HosEaJkNjbZM1
         /Z0zBSgVzuWvKgb715FPTcKNwSa+phEdndoVjG98nHMrAU3mBjKjMUDElP5UcfV2P81j
         vd6Q==
X-Gm-Message-State: AOAM532ZJoknFBdjmHgDk9JVJFAGRHMYeeba/sOO0sy9pf8VtA7i2bhB
	+GEX7qQR0eXOYN/DN0b6rRCcHw==
X-Google-Smtp-Source: ABdhPJzex3EJLJxKesbpcXVhuXhXz8mKsgkAvORtmUcskNu2IAPYg8LWXRVSpkQDC+igoNaKseVJbA==
X-Received: by 2002:aa7:d546:: with SMTP id u6mr20545346edr.311.1636541210512;
        Wed, 10 Nov 2021 02:46:50 -0800 (PST)
Date: Wed, 10 Nov 2021 11:46:48 +0100
From: Daniel Vetter <daniel@ffwll.ch>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: daniel@ffwll.ch, airlied@linux.ie, maarten.lankhorst@linux.intel.com,
	mripard@kernel.org, inki.dae@samsung.com, jy0922.shim@samsung.com,
	sw0312.kim@samsung.com, kyungmin.park@samsung.com,
	krzysztof.kozlowski@canonical.com, oleksandr_andrushchenko@epam.com,
	dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/3] drm: Update documentation and TODO of gem_prime_mmap
 hook
Message-ID: <YYujGLFf+spiXMil@phenom.ffwll.local>
References: <20211108102846.309-1-tzimmermann@suse.de>
 <20211108102846.309-4-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211108102846.309-4-tzimmermann@suse.de>
X-Operating-System: Linux phenom 5.10.0-8-amd64 

On Mon, Nov 08, 2021 at 11:28:46AM +0100, Thomas Zimmermann wrote:
> The hook gem_prime_mmap in struct drm_driver is deprecated. Document
> the new requirements.
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  Documentation/gpu/todo.rst | 11 -----------
>  include/drm/drm_drv.h      | 11 +++++++----
>  2 files changed, 7 insertions(+), 15 deletions(-)
> 
> diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
> index 60d1d7ee0719..6593c4c4006e 100644
> --- a/Documentation/gpu/todo.rst
> +++ b/Documentation/gpu/todo.rst
> @@ -268,17 +268,6 @@ Contact: Daniel Vetter
>  
>  Level: Intermediate
>  
> -Clean up mmap forwarding
> -------------------------
> -
> -A lot of drivers forward gem mmap calls to dma-buf mmap for imported buffers.
> -And also a lot of them forward dma-buf mmap to the gem mmap implementations.
> -There's drm_gem_prime_mmap() for this now, but still needs to be rolled out.
> -
> -Contact: Daniel Vetter
> -
> -Level: Intermediate
> -
>  Generic fbdev defio support
>  ---------------------------
>  
> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
> index 0cd95953cdf5..a84eb4028e5b 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -345,11 +345,14 @@ struct drm_driver {
>  	 * mmap hook for GEM drivers, used to implement dma-buf mmap in the
>  	 * PRIME helpers.
>  	 *
> -	 * FIXME: There's way too much duplication going on here, and also moved
> -	 * to &drm_gem_object_funcs.
> +	 * This hook only exists for historical reasons. Drivers must use
> +	 * drm_gem_prime_mmap() to implement it.
> +	 *
> +	 * FIXME: Convert all drivers to implement mmap in struct
> +	 * &drm_gem_object_funcs and inline drm_gem_prime_mmap() into
> +	 * its callers. This hook should be removed afterwards.

I think at least i915 has different semantics between dma-buf mmap and gem
mmap in some cases, so this might be tricky to achieve. But I think
everywhere else this should be solid.
-Daniel

>  	 */
> -	int (*gem_prime_mmap)(struct drm_gem_object *obj,
> -				struct vm_area_struct *vma);
> +	int (*gem_prime_mmap)(struct drm_gem_object *obj, struct vm_area_struct *vma);
>  
>  	/**
>  	 * @dumb_create:
> -- 
> 2.33.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 11:08:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 11:08:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224252.387444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mklSZ-0004J7-8E; Wed, 10 Nov 2021 11:08:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224252.387444; Wed, 10 Nov 2021 11:08:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mklSZ-0004J0-4g; Wed, 10 Nov 2021 11:08:07 +0000
Received: by outflank-mailman (input) for mailman id 224252;
 Wed, 10 Nov 2021 11:08:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LEWT=P5=redhat.com=pbonzini@srs-se1.protection.inumbo.net>)
 id 1mklSX-0004Iu-SE
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 11:08:05 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [216.205.24.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 78b129ce-4216-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 12:08:03 +0100 (CET)
Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com
 [209.85.208.69]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-471-ujHN4zoWOB2b2RFeJpnktw-1; Wed, 10 Nov 2021 06:08:00 -0500
Received: by mail-ed1-f69.google.com with SMTP id
 h13-20020a05640250cd00b003e35ea5357fso2036377edb.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 03:08:00 -0800 (PST)
Received: from ?IPV6:2001:b07:6468:f312:63a7:c72e:ea0e:6045?
 ([2001:b07:6468:f312:63a7:c72e:ea0e:6045])
 by smtp.gmail.com with ESMTPSA id g21sm9257171edb.89.2021.11.10.03.07.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Nov 2021 03:07:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78b129ce-4216-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1636542482;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=48dRn8RRnq7Fx6Bqaf9CAoNN40en8LqbHxW41Xnziw0=;
	b=TDdaeqalYtPwttrx89aQI5kMRsvoMUpYW+6wi2z7ZGcrjd35wNpUCNoqsMoAO/eiAFekO/
	ED7LGzlxH/4hzQax1IILJuXqj/a42Z0NZUOl8G7sgTjb5VG5zsKPI5oqZKkwSsN8YrfIH/
	D/Hfd/P1kD12zZACGQexclInMiTSf3g=
X-MC-Unique: ujHN4zoWOB2b2RFeJpnktw-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=48dRn8RRnq7Fx6Bqaf9CAoNN40en8LqbHxW41Xnziw0=;
        b=MGKjaVQEs6oi2pUbsQqMZj33tFHmCuTRwop1NZZIUcNnTNF9uyDVqoV4vlBvhQop/h
         A9TEWMaYFYls6HohGOoDcmfKHHjO3qvTJ4pFRZwVjrHyQ2Qt/z87KcK2b9T2/JGdNQ1Z
         li04oTV/KKFsohLhdm0PSucfSuKK5IvCeAM1emqTUPGNnZrkSMKGNdXqQJoPCOL+x3Cf
         vF8ffz7mPlMupKvZpw+SkkpoHu1gltTKhlyFj1wF5D+6C0NVRg7bSgLqLAcMIjp2xWt2
         qmqfNQG2UNsp5JKuALug8U5tgpacEv193pBvt3wlmLP97ZhyT1ugK7BABoTBIJn5xybQ
         k+qQ==
X-Gm-Message-State: AOAM533kWEqcksSLiDUNaFHERCN0E6h0aVMxRrgzo0vW4XAYeWr7kx6G
	7vwi1BbFu5RdIRNwmBTO7syS7kOiftcTKZOz3pRcRlLuSoPvkmvBHYdhkqJsGBaguXkjs4BrQsq
	JcigsVUIFmK/AkvPsy/mNVaqsU6k=
X-Received: by 2002:a17:907:86a6:: with SMTP id qa38mr18779905ejc.286.1636542479496;
        Wed, 10 Nov 2021 03:07:59 -0800 (PST)
X-Google-Smtp-Source: ABdhPJxIY9E3GGXDTMKNhG94s7x2qpu4nLPlWqmcyoHulhCMNs+PGo9+5ZlP1mG10EA68G9ox4DyaA==
X-Received: by 2002:a17:907:86a6:: with SMTP id qa38mr18779839ejc.286.1636542479231;
        Wed, 10 Nov 2021 03:07:59 -0800 (PST)
Message-ID: <f86fe9cb-bf4b-1c10-e0da-276fbb3f62ee@redhat.com>
Date: Wed, 10 Nov 2021 12:07:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.0
Subject: Re: [PATCH v3 01/16] perf: Ensure perf_guest_cbs aren't reloaded
 between !NULL check and deref
To: Sean Christopherson <seanjc@google.com>, Like Xu <like.xu.linux@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>, Will Deacon <will@kernel.org>,
 Alexander Shishkin <alexander.shishkin@linux.intel.com>,
 Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
 James Morse <james.morse@arm.com>,
 Alexandru Elisei <alexandru.elisei@arm.com>,
 Suzuki K Poulose <suzuki.poulose@arm.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>,
 Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org,
 linux-kernel@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
 linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org,
 kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
 Artem Kashkanov <artem.kashkanov@intel.com>,
 Zhu Lingshan <lingshan.zhu@intel.com>, Juergen Gross <jgross@suse.com>,
 Ingo Molnar <mingo@redhat.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Palmer Dabbelt <palmer@dabbelt.com>, Vincent Chen <deanbo422@gmail.com>,
 Paul Walmsley <paul.walmsley@sifive.com>, Greentime Hu <green.hu@gmail.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Marc Zyngier <maz@kernel.org>,
 Nick Hu <nickhu@andestech.com>, Guo Ren <guoren@kernel.org>,
 Mark Rutland <mark.rutland@arm.com>,
 Arnaldo Carvalho de Melo <acme@kernel.org>
References: <20210922000533.713300-1-seanjc@google.com>
 <20210922000533.713300-2-seanjc@google.com>
 <77e3a76a-016b-8945-a1d5-aae4075e2147@gmail.com>
 <YYPrst2CUBXLYc9h@google.com>
From: Paolo Bonzini <pbonzini@redhat.com>
In-Reply-To: <YYPrst2CUBXLYc9h@google.com>
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=pbonzini@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/4/21 15:18, Sean Christopherson wrote:
> If I'm interpeting Paolo's suggestion
> correctly, he's pointing out that oustanding stores to the function pointers in
> @cbs need to complete before assigning a non-NULL pointer to perf_guest_cbs,
> otherwise a perf event handler may see a valid pointer with half-baked callbacks.
> 
> I think smp_store_release() with a comment would be appropriate, assuming my
> above interpretation is correct.
> 

Yes, exactly.  It should even be rcu_assign_pointer(), matching the 
synchronize_rcu() in patch 1 (and the change can be done in patch 1, too).

Paolo



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 11:39:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 11:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224257.387455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mklx7-0007R6-Pm; Wed, 10 Nov 2021 11:39:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224257.387455; Wed, 10 Nov 2021 11:39:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mklx7-0007Qz-Md; Wed, 10 Nov 2021 11:39:41 +0000
Received: by outflank-mailman (input) for mailman id 224257;
 Wed, 10 Nov 2021 11:39:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mklx6-0007Qt-9b
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 11:39:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mklx6-0000l9-7C
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 11:39:40 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mklx6-0007xR-6D
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 11:39:40 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mklx0-0000qP-S3; Wed, 10 Nov 2021 11:39:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=U9L4Tuk2AfuTAwXn9gYAPvy06JZZXFjiixBk/ojOYXY=; b=2kJt0yFnJF4uZebHqynGw4s3W3
	27ycnKmwLYC/7FFcLf0zAZWFLzcA/ij19POwMqtEw9Etyih5ZTcal8zmge6daNasq0sJL7LOEpQc0
	6jKRnhVNJpc3dKPApYNBU7z+WYarOvmGgSgrj2Q38G061/SqxZ6u4rqXoUIOPWhBQYI4=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24971.44918.327528.573673@mariner.uk.xensource.com>
Date: Wed, 10 Nov 2021 11:39:34 +0000
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
    xen-devel@lists.xenproject.org,
    oleksandr_tyshchenko@epam.com,
    Bertrand.Marquis@arm.com,
    Volodymyr_Babchuk@epam.com,
    Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: Re: [PATCH for-4.16] xen/arm: allocate_bank_memory: don't create
 memory banks of size zero
In-Reply-To: <41fcacd5-bb8d-3a30-44f4-b86c741ad4f4@xen.org>
References: <20211109222944.531368-1-sstabellini@kernel.org>
	<41fcacd5-bb8d-3a30-44f4-b86c741ad4f4@xen.org>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Julien Grall writes ("Re: [PATCH for-4.16] xen/arm: allocate_bank_memory: don't create memory banks of size zero"):
> Instead, it looks like the issue is some part of Xen may fall over if 
> one of the bank is zero-sized. But from the earlier discussion [2], this 
> is just latent. So I think this should be clarified in the commit message.

Yes, please.

Indeed, this is part of:

> Please explain why you would like to include it in 4.16. In particular 
> that as I wrote above, Linux is able to cope with zero-size memory bank.

How is 4.16 bad without this patch ?  And, what might it break ?

What mistakes could have been made in analysis and preparation ?
(In this case the preparation of the patch seems very simple but the
analysis much less so.)

Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 11:49:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 11:49:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224263.387466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkm61-0000R0-Nb; Wed, 10 Nov 2021 11:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224263.387466; Wed, 10 Nov 2021 11:48:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkm61-0000Qt-Ke; Wed, 10 Nov 2021 11:48:53 +0000
Received: by outflank-mailman (input) for mailman id 224263;
 Wed, 10 Nov 2021 11:48:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkm60-0000Qn-58
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 11:48:52 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkm60-0000ue-3S
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 11:48:52 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mkm60-00008O-2N
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 11:48:52 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mkm5w-0000sw-Fd; Wed, 10 Nov 2021 11:48:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=8R9wvjzn9PtZ9DCKmc8OQAy+iYJllvODel0SLWR5msA=; b=1yR6MA21ItN21Oc9lbBL1adRD/
	RJiCX0xdbUnZwDPIFzCbJ/1u3956waHyIxzn1s0ak02JvAbMPh3tW2YhGyigyMczSFrWoM4FljvQJ
	hDxOdK4ala7sp6/QHQfYYrn+aBSjFQoHW3DLaxMTUdT0ghAWWpEhVXEw6ESLij4yhCg4=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24971.45471.990917.651108@mariner.uk.xensource.com>
Date: Wed, 10 Nov 2021 11:48:47 +0000
To: Jane Malalane <jane.malalane@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
    Jan Beulich <jbeulich@suse.com>,
    Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo status
In-Reply-To: <20211110091935.16906-1-jane.malalane@citrix.com>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jane Malalane writes ("[PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo status"):
> Before, user would change turbo status but this had no effect: boolean
> was set but policy wasn't reevaluated.  Policy must be reevaluated so
> that CPU frequency is chosen according to the turbo status and the
> current governor.
> 
> Therefore, add __cpufreq_governor() in cpufreq_update_turbo().
...
> Not taking this patch means that turbo status is misleading.
> 
> Taking this patch is low-risk as it only uses a function that already
> exists and is already used for setting the chosen scaling governor.
> Essentially, this change is equivalent to running 'xenpm
> en/disable-turbo-mode' and, subsequently, running 'xenpm
> set-scaling-governor <current governor>'.

Thanks.  I am positively inclined.  But I have one query about this
rationale.  Adding a new call to an existing function is OK if calling
__cpufreq_governor is permitted here.  Are there locking or reentrancy
hazards ?  Perhaps these issue have been considered but I would like
to see something explicit about that.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 11:58:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 11:58:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224269.387476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkmEo-0001rP-Gx; Wed, 10 Nov 2021 11:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224269.387476; Wed, 10 Nov 2021 11:57:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkmEo-0001rI-Dn; Wed, 10 Nov 2021 11:57:58 +0000
Received: by outflank-mailman (input) for mailman id 224269;
 Wed, 10 Nov 2021 11:57:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wakI=P5=gmail.com=jiangshanlai@srs-se1.protection.inumbo.net>)
 id 1mkmEm-0001rC-64
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 11:57:56 +0000
Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com
 [2607:f8b0:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6fe9d3dd-421d-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 12:57:55 +0100 (CET)
Received: by mail-pl1-x631.google.com with SMTP id b11so2729495pld.12
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 03:57:54 -0800 (PST)
Received: from localhost ([198.11.178.15])
 by smtp.gmail.com with ESMTPSA id pj12sm5597014pjb.51.2021.11.10.03.57.52
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 10 Nov 2021 03:57:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6fe9d3dd-421d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=7gp55vNbAiMPJFZt1vvuRfVDBF8kbd0dyE3oVrC7LSs=;
        b=ErpuCwTPM/lAhllg01n0htQnpfjyhCsJ4Z/ygE8rrUDFG89OS/Z6ULi/yfQ5l83SYR
         ekv8ETDGrJjZzC7nCGROQepEj6colRUgxdsfFTqNnkgR2ZPDVBxL8xh66fuzKX5cShvN
         ZaHy/eUh/VJNLkeeKO+mQ2K9mzWExjacm4qxtX59L+qgue1LMg1KIK6KA3p/wAFPIAjo
         L+7YzOnJ8Y/+2UXpv9hojsf/YYi7itNaVK39H/vDlTSF+FglB5DD50JUhlAFjr+G/pJE
         oGOvcr+x1h6OkctFppsKXnxnul6dmzYcVWEIg/qoyiUIGtCUtr/UqqcE16vL2uzGDSVW
         19Cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=7gp55vNbAiMPJFZt1vvuRfVDBF8kbd0dyE3oVrC7LSs=;
        b=DIVvzx8kQX0VpA6X+XXOm2cVcr+cHU9RV9130s8phet6T/sppOixQ3z4hJ/sK5AihL
         4ecnWJ01INB9AvlMsXW+DmWdPN7qr4FTyLqMejwiUnyG6kCtCVtPrFA9V9TEOuXgOwoV
         UmeC0meAFKIs5t4OvOdCg90IDXF0RP4yHS5DrXCp98lo6CKoZYgQi4V1+TTkRFR/UEBH
         bCu+IaZxPQAlsCUBe/poCJ3CX5pTltJoBoGX3iJdIOjspMPX6z8jRD+q5/X61VPWxPkH
         eT/v33paxjZAaBLp+Hz56KCrTu/E7qarnoUns1OFZyk1XVkk9zewIPdZgRKM/Wxbd2BM
         rOtA==
X-Gm-Message-State: AOAM533WdgqzLJ8eDD5OwvwymmQkFjqgQ816WcDUFl8bdOZIaF8z+Kpw
	CibA3LcRDKxHvRnMh6k3pe4=
X-Google-Smtp-Source: ABdhPJw4orw2dz/h+6dMeylsEPNNBFO9JalnXgfoeA7xVTZjRqfO80WskbTNDh4CQU7WOIh36roALQ==
X-Received: by 2002:a17:902:d28a:b0:142:61ce:ae4c with SMTP id t10-20020a170902d28a00b0014261ceae4cmr15090581plc.35.1636545473614;
        Wed, 10 Nov 2021 03:57:53 -0800 (PST)
From: Lai Jiangshan <jiangshanlai@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: x86@kernel.org,
	Lai Jiangshan <laijs@linux.alibaba.com>,
	Jan Beulich <jbeulich@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Juergen Gross <jgross@suse.com>,
	Peter Anvin <hpa@zytor.com>,
	xen-devel@lists.xenproject.org,
	Andy Lutomirski <luto@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH V5 04/50] x86/xen: Add xenpv_restore_regs_and_return_to_usermode()
Date: Wed, 10 Nov 2021 19:56:50 +0800
Message-Id: <20211110115736.3776-5-jiangshanlai@gmail.com>
X-Mailer: git-send-email 2.19.1.6.gb485710b
In-Reply-To: <20211110115736.3776-1-jiangshanlai@gmail.com>
References: <20211110115736.3776-1-jiangshanlai@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Lai Jiangshan <laijs@linux.alibaba.com>

While in the native case, PER_CPU_VAR(cpu_tss_rw + TSS_sp0) is the
trampoline stack.  But XEN pv doesn't use trampoline stack, so
PER_CPU_VAR(cpu_tss_rw + TSS_sp0) is also the kernel stack.  Hence source
and destination stacks are identical in that case, which means reusing
swapgs_restore_regs_and_return_to_usermode() in XEN pv would cause %rsp
to move up to the top of the kernel stack and leave the IRET frame below
%rsp, which is dangerous to be corrupted if #NMI / #MC hit as either of
these events occurring in the middle of the stack pushing would clobber
data on the (original) stack.

And, when XEN pv, swapgs_restore_regs_and_return_to_usermode() pushing
the IRET frame on to the original address is useless and error-prone
when there is any future attempt to modify the code.

Fixes: 7f2590a110b8 ("x86/entry/64: Use a per-CPU trampoline stack for IDT entries")
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Juergen Gross <jgross@suse.com>
Cc: Peter Anvin <hpa@zytor.com>
Cc: xen-devel@lists.xenproject.org>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Lai Jiangshan <laijs@linux.alibaba.com>
---
 arch/x86/entry/entry_64.S |  4 ++++
 arch/x86/xen/xen-asm.S    | 20 ++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 6189a0dc83ab..ebcc17e1d7f1 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -574,6 +574,10 @@ SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL)
 	ud2
 1:
 #endif
+#ifdef CONFIG_XEN_PV
+	ALTERNATIVE "", "jmp xenpv_restore_regs_and_return_to_usermode", X86_FEATURE_XENPV
+#endif
+
 	POP_REGS pop_rdi=0
 
 	/*
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
index 220dd9678494..444d824775f6 100644
--- a/arch/x86/xen/xen-asm.S
+++ b/arch/x86/xen/xen-asm.S
@@ -20,6 +20,7 @@
 
 #include <linux/init.h>
 #include <linux/linkage.h>
+#include <../entry/calling.h>
 
 .pushsection .noinstr.text, "ax"
 /*
@@ -192,6 +193,25 @@ SYM_CODE_START(xen_iret)
 	jmp hypercall_iret
 SYM_CODE_END(xen_iret)
 
+/*
+ * XEN pv doesn't use trampoline stack, PER_CPU_VAR(cpu_tss_rw + TSS_sp0) is
+ * also the kernel stack.  Reusing swapgs_restore_regs_and_return_to_usermode()
+ * in XEN pv would cause %rsp to move up to the top of the kernel stack and
+ * leave the IRET frame below %rsp, which is dangerous to be corrupted if #NMI
+ * interrupts. And swapgs_restore_regs_and_return_to_usermode() pushing the IRET
+ * frame at the same address is useless.
+ */
+SYM_CODE_START(xenpv_restore_regs_and_return_to_usermode)
+	UNWIND_HINT_REGS
+	POP_REGS
+
+	/* stackleak_erase() can work safely on the kernel stack. */
+	STACKLEAK_ERASE_NOCLOBBER
+
+	addq	$8, %rsp	/* skip regs->orig_ax */
+	jmp xen_iret
+SYM_CODE_END(xenpv_restore_regs_and_return_to_usermode)
+
 /*
  * Xen handles syscall callbacks much like ordinary exceptions, which
  * means we have:
-- 
2.19.1.6.gb485710b



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 12:40:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 12:40:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224274.387488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkmtA-0005yU-Si; Wed, 10 Nov 2021 12:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224274.387488; Wed, 10 Nov 2021 12:39:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkmtA-0005yN-Ph; Wed, 10 Nov 2021 12:39:40 +0000
Received: by outflank-mailman (input) for mailman id 224274;
 Wed, 10 Nov 2021 12:39:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qBHU=P5=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mkmt9-0005yH-Cv
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 12:39:39 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4291bb7e-4223-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 13:39:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4291bb7e-4223-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636547977;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=v4UGDMgnlnJXudNXKEzt3njJOw9rRi7bfE29/RtOF/g=;
  b=SvRqDagzv52kOdShVLvkHaEDo9IRbpFSME5At0RV7ZoSYO5+gX2sqpfr
   WHstpMIWYwqDbuA/pDpzdHVZmwtoajhxtwafQ9ZG7qzNhkeYa+NgmCvyw
   DZBT+KLuLQ6PiDuukAqQmqnMlF2tecN0Rv1iq+Q6zha5NoUyWExmZLGMW
   c=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: +lJUA+s/PftXbE2U5KIMmpiL9pUpLRBmzbfdrJ4yJbVbCUQ0onr/p1Uwszh05rCviLWgnklCOn
 8HHnTpHuFO9fdLBG86vf4/ve8mI51/d8sI2j85vyaP5o+ffAMtC3TkwViQ3vWJVi36876VYZjS
 BW6wJuyveBUhYc/vBY5EEGEDGJZHGadUQSULJUKJjkgEh7NGJ6nHI9n2nKI2PxgWb11Ixnnwxr
 iKJxMeeWLIrexvDxRKoiBXm6ipXqqEWM8tW1Kn59Wr7ovTR/rVTjF42eZcJlCzbMSU6CoSxTRK
 uwMbF0j5ahRJGICHqokTAf7N
X-SBRS: 5.1
X-MesageID: 57524901
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:W7unvaldln9e5N1znf1A+T7o5gxgIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJOCjiAM//fY2D3e9BwOou2oxgFu8TTnIJhHFc+/yk0QyMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29cw2YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 MV3rreQYl52ApSSsbhFUjwGCHxBMLITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBNPsM44F/Glp0BnSDOo8QICFSKLPjTNd9Gpv25oSTK6HD
 yYfQX1gYxucPDxCAAcsKakZpv713GDTdQQN/Tp5ooJoujOOnWSdyoPFMcXXUsyHQ91PmUSVr
 X6A+H72ajkYPtGCzTuO8lq3m/TC2yj8Xeo6BLC+s/JnnlCX7mgSEwENE0u2p+GjjUyzUM4ZL
 FYbkhfCtoBrqhbtFIOkGUTl/jjU5XbwRua8DcUq0hqm6oGNvDqgWEFYFj9kNsd7i8IpEGlCO
 kCyo/vlAjlmsbuwQH2b96uJoT7aBRX5PVPudgdfE1JbvoCLTJUby0uWE409SPLdYsjdQGmom
 1i3QD4Ca6L/ZCLh/4Gy5hj5jj2lvfAlpSZlt1yMDgpJAu6UDbNJhrBEC3CHsp6sz67DFzFtW
 UTofeDFtIji6rnXxESwrB0lRu3B2hp8GGS0baRTN5cg7S+x3HWoYJpd5jpzTG8wbJ1aJW+yP
 BKI5V4AjHO2AJdMRfQvC25WI557pZUM6Py/DqyEBjawSsEpHON4wM2eTRHJhD28+KTduao+J
 Y2aYa6R4YUyUsxaIM6Nb75Fi9cDn3lmrUuKHMyT50n3gNK2OS/OIZ9YYQTmUwzMxP7dyOkj2
 40EbJXiJtQ2eLCWXxQ7BqZPdw1XdiZiWsitwyGVH8baSjdb9KgaI6a56ZsqepB/nrQTkeHN/
 3qnXVRfxka5jnrCQThmoFg6NNsDhL5z8iA2OzICJ1Gt1yRxaIqj9v5HJZA2YaMm5KpoyvstF
 6sJfMCJA/JuTDXb+mtCMcmh/dI6LBn71xiTOyeFYSQke8IyTQL+5dK5LBDk8zMDD3TruJJm8
 aGgzA7SXbEKWx9mUJTNcPuqwl7o5Sodlet+UlHmON5WfEmwooFmJzao1q08It0WKAWFzTyfj
 l7EDRAdrOjLgok07NiW2vzU89b3S7NzRxMIEXPa4LC6MTjh0lCimYIQAvyVeT39VX/v/Pnwb
 +ti0PyhYuYMm0xHstQgHu8zn74+/dbmu5RT0h9gQCfQd12uB75tfiuG0M1IuvEfz7NVo1LrC
 EeG+90cMrSVIsL1VlUWIVN9POiE0PgVnBjU7Og0fxqmtHMmouLfXBUAJQSIhQxcMKBxYdEsz
 uoWscIL7xCy10gxOdGcgyEIr2mBIxTsiUn8Wk321GMztjcW9w==
IronPort-HdrOrdr: A9a23:5kazTqo3fmDGIKvTD8V75GsaV5vPL9V00zEX/kB9WHVpm5Oj+P
 xGzc526farslsssREb+OxpOMG7MBThHLpOkPMs1NaZLXLbUQ6TQr2KgrGSoQEIdxeOk9K1kJ
 0QDpSWa+eAc2SS7/yKmTVQeuxIqLLskNHK9JbjJjVWPHlXgslbnnhE422gYytLrWd9dP4E/M
 323Ls6m9PsQwVdUu2LQl0+G8TTrdzCk5zrJTYAGh4c8QGLyRel8qTzHRS01goXF2on+8ZuzU
 H11yjCoomzufCyzRHRk0fV8pRtgdPkjv9OHtaFhMQ5IijlziyoeINicbufuy1dmpDk1H8a1P
 335zswNcV67H3cOkmzvBvWwgHllA0j7nfzoGXo90fLkIjcfnYXGsBBjYVWfl/y8Ew7puxx16
 pNwiawq4dXJQmoplWy2/H4EzVR0makq3srluAey1ZFV5EFVbNXpYsDuGtIDZY7Gj7g4oxPKp
 ggMCjl3ocXTbqmVQGbgoE2q+bcHEjbXy32DnTqg/blkgS/xxtCvg4lLM92pAZ2yHtycegB2w
 3+CNUaqFh5dL5jUUtMPpZwfSKJMB2+ffvtChPaHb21LtBOB5ryw6SHlYndotvaP6A18A==
X-IronPort-AV: E=Sophos;i="5.87,223,1631592000"; 
   d="scan'208";a="57524901"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IqroA3bcR9adQx5wV2uoCA3s6/Dc/PT/O/kIJ3RUxd7aT1zqjbtzZiS4ZinirxKfgkRG6+ZpEXS93PuYmxwMdj0yGa4oIpllSzGwDkgsCyrg2yRUgxbioLo9QQvLbcHvTr+D4nXEt0/ArMYkl81UMLuwr5CDVikBUADn3+h8cqGRniDwnQX7Z2LOTvcovUUh8aQ9K0DBqoXeKUacaqmQRxsw7eKqJTHC+FC2PDx8auB0fwQVR+3n7sroCzbhN1gXzvqaHLhlvwf153Nax8gZLO14zNMRWCE5EcOKiBvq1Yf9Jv9o5Jm7q3BcCiVQQYiUItbUiYse3vMes+wPzBJNBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4qpKMFy4TRoXc7OmV+alw9lchQ6vvvfRn9NoZznXQYM=;
 b=HBsPOTLnI/cczcRH/cLuQ8qrSeq96gQ6FwhcdPCAz3VGSbbgoUAnXiCaA/jJNxQpnTW9lXrWZ1+l6qXhP1JA/4NZ8Os4E+Jv+TCnrpmNFVLWMU9PgX7MxlymrbzU+qaGiihHNZhxmK+zweCvlqBukYHykP9AyyOelszfHxi52W3jyjLG/fTOZ6P2byfYIx9qOPPQGaNARAn4r99AiGGlpI+uM2PEc2+KxSOmOMRfwvCgIpYQzYEqEnXCFjPwXkIr8z3FwXDx6+1qkUeQYv0VsIjqyX56IjkjRAhgjaeslrw6oiukDbrPx6puBK1i5j/ffziKkvEY0AlwFtbX6wo3bA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4qpKMFy4TRoXc7OmV+alw9lchQ6vvvfRn9NoZznXQYM=;
 b=bu1HcLgj84tLgHX/4/ewkTYNsa1m8GKaAQ6AoY5YgBgWWWOjn87jEJYHQzoPWG7PHPGyuov6oUecnAszG2gktUKWq1rmafQEEXsxJ52tzm9YPcqf/3QCM3IHL0D/3u+ZtKjj2mCwWCnt79aRdHeSJSn2rWDT3Jo0dXMGhvhM8qg=
Date: Wed, 10 Nov 2021 13:39:21 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jane Malalane <jane.malalane@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<jbeulich@suse.com>, Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Message-ID: <YYu9eYxIYs5gol5q@Air-de-Roger>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20211110091935.16906-1-jane.malalane@citrix.com>
X-ClientProxiedBy: MR2P264CA0001.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::13) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: dc40aca8-dd01-4aff-51e7-08d9a447221d
X-MS-TrafficTypeDiagnostic: DM4PR03MB6192:
X-Microsoft-Antispam-PRVS: <DM4PR03MB6192B7539EEBE3E76E762F868F939@DM4PR03MB6192.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: QWqh65+DdqEq1K1Ie1fq8f5U38a610YcRpv9SN4622o89oeBzoSNg5hBAZIQBYkbTV6p0wEO+nJH8P80CaJtzBywH+CF7vi/bLCtkhRMWb6ghnB+CZEPDSv8FquUcjWMEmJyDoU3T2HufuUEgwxeTw3Gi2t0CCDv2q3HX67ZPHp6Ot18TCqPY8nJggmfvvkI1g7/t4/47Js+NvKdpO1gqoLpFdQrKPd98T4nyofZ6alerwW3dfEhN34vmptTUf3EbObgkFr3fh+i886nJoXWGfx+3dSt53DXdUm6x2Tx6ACPfXDCGwsD2pYEZD/zX5d8vxl+Ki4PiZTERYPNmAkIXIhqh620O0UloByfLzplx0EBNbOAdJFJzHpKSIRN1A9Kq4UPjaeQ4T3nFw33JqwwmB/7kT9kA0+E78Roq0Cz9NeB/PM/dEYrWLDrc+hw7k/HvbLMSGfLsbzv05jM8DtcHDJ7u+L+LhLaj7/auajU2sY170FOKqLp4A+fn0HsfQvEp4Pa+pxA2hkEY3viNrNuNGWE2QMEAf1sV/0aJIeTJg8WENxptT5GHJt+ntrnfIsxSbsrYC1yAlPFgoyfRkoeOJoKDuAEH5QRC8WylUvlGPGT8Qmz03iqIUQJ4+GfoxRnZNXzAzSdpBGg4tssP1EIeQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(66946007)(26005)(38100700002)(316002)(6666004)(33716001)(508600001)(956004)(82960400001)(186003)(86362001)(8676002)(83380400001)(6496006)(6636002)(85182001)(4326008)(9686003)(2906002)(6486002)(5660300002)(8936002)(66556008)(54906003)(66476007)(6862004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SGM1V1h4SzA3Rys1QStoU0thdjBkZTRFdnBva29UdmR6RHJxOURLbFJIRyta?=
 =?utf-8?B?QWJoVW1JMVEwRzVQMWFXN3BjcUxpUlJCVmFWMEVmNFQrbHpkNi9uRUx5ZE5N?=
 =?utf-8?B?LzMxOWsvMlB3bUUyZ3U1MkhzYXlJbVBhNnpsQVJRN2dKSVdmUTZIRm1XT2xD?=
 =?utf-8?B?ei8yZVE3eTE4UkR3em1odXpIUHg0V01vanQraXhzRFNPdERwaHRqQ2pVVXB0?=
 =?utf-8?B?cDhpa0FUK0xMUCtpbDd1TDl4TitnNG5QRHM3aGdGQTIxODFzWm9USmkxTkFj?=
 =?utf-8?B?QmRTT2NTTWNSOGFDdm9LZ0laMStCSHcyM1p5bklzY2FNTUpVZ2lYb2NnSWx0?=
 =?utf-8?B?ZkMwNkhsSy9Xb081SFJuNDBybTNnbTVQeGRjRkloYTBPNlNnS3ZNTGRqamZ1?=
 =?utf-8?B?M0llakJSbjZtVjJSVlR3NVQ1ZGZURTRUOWZHYlpaV3BMZHdaU1VIeGN0ZDVW?=
 =?utf-8?B?aXUwWTZZdFA4NTNzT1NqaFExV1lvQ3lqajUxcnphL0U0VURMQXZMNVYyY29M?=
 =?utf-8?B?ZERucGdWQVMvaTdkaksxWEx5NXExMFdmQUxqWkZNUVBQYTkvWEpObW0xVkVN?=
 =?utf-8?B?YmZLT21ULzZuY0dXdmRnQ1VTVnlGMFdQNG54T0tOUVp4K0hDb21WeFlKSlpX?=
 =?utf-8?B?Vm5CMVlDQWVrcmMrZ2tJeEw3bkZNcmN5cm5OcmxIRVUvanl5Z1hLbmFBQWZQ?=
 =?utf-8?B?eHIvaVBxTGxIanhkT3dpOHdaSUNRY1plaW5oaE1hMjFYNStLSHBHL0JHYnFS?=
 =?utf-8?B?cTBCdS8wSExQVmhHcnNMUmR0VTZNdWppVkUxRlFEU3IxRWdSSW4xTXhZR3Ux?=
 =?utf-8?B?VjN0YjBGaG5sbDVSN3JzS2Q4UmtYRFV2VHJVUUU2R3F2N0QxajZYNEErZExX?=
 =?utf-8?B?OEdUMEEvdCt1MUFBQnBUeXRrSmNnT1BNbGlQWUhkNXl1cEZya244NDRpMTZh?=
 =?utf-8?B?VjVkS2hoekFNb29qMzBUUWZxbTJ1cVBodlk2QXVnaFBZY015OW91ODF5YkRx?=
 =?utf-8?B?bjRGalU3T2RZYkZPRjlvQmxhM0NWRlI0Q3gwMWQxd0l1cWJIdndXbUVxVnI1?=
 =?utf-8?B?a3ZWdVEveURERGlWNXZwNzI4OVJJTlhSM1psUFUzSjl6S2FWUUtLUXJKY1Jw?=
 =?utf-8?B?cXU0VmtXOWJRUFdIWm1vU0VxUU9OcFVSeXFHNFA4R0Eva2Fkay80ODYxeitw?=
 =?utf-8?B?S0RBb1lIcTdkdWRldlVibWRkYXVDT2dSS0d4M3JZeDRkZEhuaFpDVnZpMUhv?=
 =?utf-8?B?dmFwL0RyalhUNTk3ODFyODBkN0RQOGNnYkhTcTYxWHYrRCtpZElPVkdPU0RF?=
 =?utf-8?B?VXNVYm1xZkFTQUhzdXlNMXBYMEZmbnM1dWNOdEVSUGhXaHA0S3NKb0dGUm5j?=
 =?utf-8?B?SVJGTytERU9NbEdNMWduN2VlZ3ozUnhCTDdoam5SSmxNSHVpV3ZtN05vYXB5?=
 =?utf-8?B?WFFvR0ZmanYzSkVmaUJkbTZubC9ZZUZxbklPdml0UjdRNTRGYlZrMUJhT1ZZ?=
 =?utf-8?B?VC8xVklDdm1mclB3RHFuN3ZjRncwL0FGL1dkRjJsbmtMRHNpeHZMd0N0a28w?=
 =?utf-8?B?bkpLVXJXaEpUMUhVWXhESzVFN0Erd0FKQ3MyQWxqaUJleHB6eUJpU3lodHFw?=
 =?utf-8?B?d1BMVENxdEljVzJSN0tmWEttdFRXRysvR2poZWtQczIrOU1sSFFTa2F4UVZG?=
 =?utf-8?B?MnM2TGJYZU1nNzFlUjBPeTdzRFUyV3hRbW42STJrelFVUUYwV0dFMm5PbmJj?=
 =?utf-8?B?TmVmbTBSVVNEUWpUbzBGTGRJd3ZZSTF5OEtZbDJkcnZXNGgyYTdXMDFGOVJ6?=
 =?utf-8?B?SVEvbkJVaDhORVJQMXdtZmltQS8wcHluVkdLcXFVQVdFKytsQnNEakJYbnJi?=
 =?utf-8?B?aElTMjVhL3VUQTM3OEF2WTd2MUxVUE9MOFRTOGlzbVlqdk5PLzcxcGJIb0pD?=
 =?utf-8?B?czVKK1dicHBDR0lMZ1MyakxKL2tPT2FDeC9CL2pBOXl0MksyU0oyUzJvcnla?=
 =?utf-8?B?Wm5vdnh5bGxMWUlwQjl0V3lxdGxqaGRtTEpRa2xPcGdSMmptZ29uVllHM1Vm?=
 =?utf-8?B?cVBXell5Yk1mYUpGY1c4MnVjemtYYmlsSHd5OWhUMUZGNmlDQUl2ODFDNjlU?=
 =?utf-8?B?My9KcVcxcW8xaVRRb2xCbjRVQkU2bVB6L3VwQWp1bllOQ2ttUERwYkZPK3Ax?=
 =?utf-8?Q?40yHfW4FB7CF0P+c2IAvFAs=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: dc40aca8-dd01-4aff-51e7-08d9a447221d
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2021 12:39:27.3806
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Rf0GUjc191fuQPmxhq32AYtOTnVlnOGvvRsozC1TKk5HP4MPfKq1Owu/F22t2E/2IyfboBJZVTDjeiGD+PzBMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6192
X-OriginatorOrg: citrix.com

On Wed, Nov 10, 2021 at 09:19:35AM +0000, Jane Malalane wrote:
> Before, user would change turbo status but this had no effect: boolean
> was set but policy wasn't reevaluated.  Policy must be reevaluated so
> that CPU frequency is chosen according to the turbo status and the
> current governor.
> 
> Therefore, add __cpufreq_governor() in cpufreq_update_turbo().
> 
> Reported-by: <edvin.torok@citrix.com>
> Signed-off-by: <jane.malalane@citrix.com>
> ---
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Ian Jackson <iwj@xenproject.org>
> ---
> 
> Release rationale:
> Not taking this patch means that turbo status is misleading.
> 
> Taking this patch is low-risk as it only uses a function that already
> exists and is already used for setting the chosen scaling governor.
> Essentially, this change is equivalent to running 'xenpm
> en/disable-turbo-mode' and, subsequently, running 'xenpm
> set-scaling-governor <current governor>'.
> ---
>  xen/drivers/cpufreq/utility.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
> index b93895d4dd..5f200ff3ee 100644
> --- a/xen/drivers/cpufreq/utility.c
> +++ b/xen/drivers/cpufreq/utility.c
> @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_state)
>      {
>          ret = cpufreq_driver.update(cpuid, policy);
>          if (ret)
> +        {
>              policy->turbo = curr_state;
> +            return ret;
> +        }
>      }
>  
> -    return ret;
> +    /* Reevaluate current CPU policy. */
> +    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);

Do you need to revert the policy->turbo value to the previous one if
the call to __cpufreq_governor returns an error? (much like it's done
for the .update call above).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 12:56:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 12:56:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224280.387499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkn98-0008CF-7E; Wed, 10 Nov 2021 12:56:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224280.387499; Wed, 10 Nov 2021 12:56:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkn98-0008C8-4I; Wed, 10 Nov 2021 12:56:10 +0000
Received: by outflank-mailman (input) for mailman id 224280;
 Wed, 10 Nov 2021 12:56:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vz66=P5=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1mkn96-0008C2-B4
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 12:56:08 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ef1af74-4225-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 13:56:02 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id B672921921;
 Wed, 10 Nov 2021 12:56:01 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7A2B713C13;
 Wed, 10 Nov 2021 12:56:01 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id W9DjHGHBi2F2DAAAMHmgww
 (envelope-from <tzimmermann@suse.de>); Wed, 10 Nov 2021 12:56:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ef1af74-4225-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1636548961; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=IbcrZNdGCCu9qg2Kk1Wawu7N5Sn+2bqvD1tsM0ThCa8=;
	b=JSS7iyXOYhcE2A+amQG8b/os01cMRf22I3bMpMimqyssfIzQK5gq73EgXyOBEth6APqFZX
	h+6QANyG5Vbpo+20BE+r66JYOsV3+8IVM3uuAWZbuqzvswBA/sABtNIdEMKrfF8KyD4jB8
	E2GX6cX+y423i8iTn5hjvokpJH9iLHE=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1636548961;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=IbcrZNdGCCu9qg2Kk1Wawu7N5Sn+2bqvD1tsM0ThCa8=;
	b=bO+GELzAiQX+Aw4orrOC1ndtvb3iJCup5CUSgEtVCLg32h7dU1Y3X3CfeeD8tdJ9DZPj2U
	AK8OfsFfx+HO2EDw==
Message-ID: <91b6dafa-de34-d972-50bc-b401820b5ccb@suse.de>
Date: Wed, 10 Nov 2021 13:56:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH 3/3] drm: Update documentation and TODO of gem_prime_mmap
 hook
Content-Language: en-US
To: Daniel Vetter <daniel@ffwll.ch>
Cc: linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com,
 krzysztof.kozlowski@canonical.com, airlied@linux.ie, sw0312.kim@samsung.com,
 oleksandr_andrushchenko@epam.com, kyungmin.park@samsung.com,
 dri-devel@lists.freedesktop.org, xen-devel@lists.xenproject.org,
 linux-arm-kernel@lists.infradead.org
References: <20211108102846.309-1-tzimmermann@suse.de>
 <20211108102846.309-4-tzimmermann@suse.de>
 <YYujGLFf+spiXMil@phenom.ffwll.local>
From: Thomas Zimmermann <tzimmermann@suse.de>
In-Reply-To: <YYujGLFf+spiXMil@phenom.ffwll.local>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------1un6YQuZTKE0bDSxqwf0DnRw"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------1un6YQuZTKE0bDSxqwf0DnRw
Content-Type: multipart/mixed; boundary="------------APu0kFdmYGIun6HoTLUqXH0N";
 protected-headers="v1"
From: Thomas Zimmermann <tzimmermann@suse.de>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com,
 krzysztof.kozlowski@canonical.com, airlied@linux.ie, sw0312.kim@samsung.com,
 oleksandr_andrushchenko@epam.com, kyungmin.park@samsung.com,
 dri-devel@lists.freedesktop.org, xen-devel@lists.xenproject.org,
 linux-arm-kernel@lists.infradead.org
Message-ID: <91b6dafa-de34-d972-50bc-b401820b5ccb@suse.de>
Subject: Re: [PATCH 3/3] drm: Update documentation and TODO of gem_prime_mmap
 hook
References: <20211108102846.309-1-tzimmermann@suse.de>
 <20211108102846.309-4-tzimmermann@suse.de>
 <YYujGLFf+spiXMil@phenom.ffwll.local>
In-Reply-To: <YYujGLFf+spiXMil@phenom.ffwll.local>

--------------APu0kFdmYGIun6HoTLUqXH0N
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

SGkNCg0KQW0gMTAuMTEuMjEgdW0gMTE6NDYgc2NocmllYiBEYW5pZWwgVmV0dGVyOg0KPiBP
biBNb24sIE5vdiAwOCwgMjAyMSBhdCAxMToyODo0NkFNICswMTAwLCBUaG9tYXMgWmltbWVy
bWFubiB3cm90ZToNCj4+IFRoZSBob29rIGdlbV9wcmltZV9tbWFwIGluIHN0cnVjdCBkcm1f
ZHJpdmVyIGlzIGRlcHJlY2F0ZWQuIERvY3VtZW50DQo+PiB0aGUgbmV3IHJlcXVpcmVtZW50
cy4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1h
bm5Ac3VzZS5kZT4NCj4gDQo+IFJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu
dmV0dGVyQGZmd2xsLmNoPg0KDQpUaGFua3MgYSBsb3QhDQoNCldpdGggdGhlIHJlbWFpbmlu
ZyBwYXRjaGVzIG1lcmdlZCwgYWxsIGRyaXZlcnMgd2lsbCBpbXBsZW1lbnQgDQpnZW1fcHJp
bWVfbW1hcCB2aWEgZHJtX2dlbV9wcmltZV9tbWFwKCkgYW5kIHVzZSB0aGUgR0VNIG9iamVj
dCdzIG1tYXAgDQpjYWxsYmFjayBmb3Igc3BlY2lmaWMgZGV0YWlscy4NCg0KVGhlIG5leHQg
c3RlcCB3b3VsZCBiZSB0byBtb3ZlIGFsbCBjdXN0b20gaW1wbGVtZW50YXRpb25zIG9mIA0K
ZmlsZV9vcGVyYXRpb25zLm1tYXAgaW50byB0aGUgR0VNIG9iamVjdCdzIG1tYXAgYW5kIGlt
cGxlbWVudCB0aGUgDQpmaWxlX29wZXJhdGlvbnMgY2FsbGJhY2sgd2l0aCBkcm1fbW1hcCgp
Lg0KDQpCZXN0IHJlZ2FyZHMNClRob21hcw0KDQo+IA0KPj4gLS0tDQo+PiAgIERvY3VtZW50
YXRpb24vZ3B1L3RvZG8ucnN0IHwgMTEgLS0tLS0tLS0tLS0NCj4+ICAgaW5jbHVkZS9kcm0v
ZHJtX2Rydi5oICAgICAgfCAxMSArKysrKysrLS0tLQ0KPj4gICAyIGZpbGVzIGNoYW5nZWQs
IDcgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBh
L0RvY3VtZW50YXRpb24vZ3B1L3RvZG8ucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvdG9kby5y
c3QNCj4+IGluZGV4IDYwZDFkN2VlMDcxOS4uNjU5M2M0YzQwMDZlIDEwMDY0NA0KPj4gLS0t
IGEvRG9jdW1lbnRhdGlvbi9ncHUvdG9kby5yc3QNCj4+ICsrKyBiL0RvY3VtZW50YXRpb24v
Z3B1L3RvZG8ucnN0DQo+PiBAQCAtMjY4LDE3ICsyNjgsNiBAQCBDb250YWN0OiBEYW5pZWwg
VmV0dGVyDQo+PiAgIA0KPj4gICBMZXZlbDogSW50ZXJtZWRpYXRlDQo+PiAgIA0KPj4gLUNs
ZWFuIHVwIG1tYXAgZm9yd2FyZGluZw0KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
Pj4gLQ0KPj4gLUEgbG90IG9mIGRyaXZlcnMgZm9yd2FyZCBnZW0gbW1hcCBjYWxscyB0byBk
bWEtYnVmIG1tYXAgZm9yIGltcG9ydGVkIGJ1ZmZlcnMuDQo+PiAtQW5kIGFsc28gYSBsb3Qg
b2YgdGhlbSBmb3J3YXJkIGRtYS1idWYgbW1hcCB0byB0aGUgZ2VtIG1tYXAgaW1wbGVtZW50
YXRpb25zLg0KPj4gLVRoZXJlJ3MgZHJtX2dlbV9wcmltZV9tbWFwKCkgZm9yIHRoaXMgbm93
LCBidXQgc3RpbGwgbmVlZHMgdG8gYmUgcm9sbGVkIG91dC4NCj4+IC0NCj4+IC1Db250YWN0
OiBEYW5pZWwgVmV0dGVyDQo+PiAtDQo+PiAtTGV2ZWw6IEludGVybWVkaWF0ZQ0KPj4gLQ0K
Pj4gICBHZW5lcmljIGZiZGV2IGRlZmlvIHN1cHBvcnQNCj4+ICAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQo+PiAgIA0KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9k
cnYuaCBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaA0KPj4gaW5kZXggMGNkOTU5NTNjZGY1Li5h
ODRlYjQwMjhlNWIgMTAwNjQ0DQo+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZHJ2LmgNCj4+
ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaA0KPj4gQEAgLTM0NSwxMSArMzQ1LDE0IEBA
IHN0cnVjdCBkcm1fZHJpdmVyIHsNCj4+ICAgCSAqIG1tYXAgaG9vayBmb3IgR0VNIGRyaXZl
cnMsIHVzZWQgdG8gaW1wbGVtZW50IGRtYS1idWYgbW1hcCBpbiB0aGUNCj4+ICAgCSAqIFBS
SU1FIGhlbHBlcnMuDQo+PiAgIAkgKg0KPj4gLQkgKiBGSVhNRTogVGhlcmUncyB3YXkgdG9v
IG11Y2ggZHVwbGljYXRpb24gZ29pbmcgb24gaGVyZSwgYW5kIGFsc28gbW92ZWQNCj4+IC0J
ICogdG8gJmRybV9nZW1fb2JqZWN0X2Z1bmNzLg0KPj4gKwkgKiBUaGlzIGhvb2sgb25seSBl
eGlzdHMgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4gRHJpdmVycyBtdXN0IHVzZQ0KPj4gKwkg
KiBkcm1fZ2VtX3ByaW1lX21tYXAoKSB0byBpbXBsZW1lbnQgaXQuDQo+PiArCSAqDQo+PiAr
CSAqIEZJWE1FOiBDb252ZXJ0IGFsbCBkcml2ZXJzIHRvIGltcGxlbWVudCBtbWFwIGluIHN0
cnVjdA0KPj4gKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MgYW5kIGlubGluZSBkcm1fZ2Vt
X3ByaW1lX21tYXAoKSBpbnRvDQo+PiArCSAqIGl0cyBjYWxsZXJzLiBUaGlzIGhvb2sgc2hv
dWxkIGJlIHJlbW92ZWQgYWZ0ZXJ3YXJkcy4NCj4gDQo+IEkgdGhpbmsgYXQgbGVhc3QgaTkx
NSBoYXMgZGlmZmVyZW50IHNlbWFudGljcyBiZXR3ZWVuIGRtYS1idWYgbW1hcCBhbmQgZ2Vt
DQo+IG1tYXAgaW4gc29tZSBjYXNlcywgc28gdGhpcyBtaWdodCBiZSB0cmlja3kgdG8gYWNo
aWV2ZS4gQnV0IEkgdGhpbmsNCj4gZXZlcnl3aGVyZSBlbHNlIHRoaXMgc2hvdWxkIGJlIHNv
bGlkLg0KPiAtRGFuaWVsDQo+IA0KPj4gICAJICovDQo+PiAtCWludCAoKmdlbV9wcmltZV9t
bWFwKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwNCj4+IC0JCQkJc3RydWN0IHZtX2Fy
ZWFfc3RydWN0ICp2bWEpOw0KPj4gKwlpbnQgKCpnZW1fcHJpbWVfbW1hcCkoc3RydWN0IGRy
bV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsNCj4+ICAg
DQo+PiAgIAkvKioNCj4+ICAgCSAqIEBkdW1iX2NyZWF0ZToNCj4+IC0tIA0KPj4gMi4zMy4x
DQo+Pg0KPiANCg0KLS0gDQpUaG9tYXMgWmltbWVybWFubg0KR3JhcGhpY3MgRHJpdmVyIERl
dmVsb3Blcg0KU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIDQpNYXhmZWxk
c3RyLiA1LCA5MDQwOSBOw7xybmJlcmcsIEdlcm1hbnkNCihIUkIgMzY4MDksIEFHIE7DvHJu
YmVyZykNCkdlc2Now6RmdHNmw7xocmVyOiBJdm8gVG90ZXYNCg==

--------------APu0kFdmYGIun6HoTLUqXH0N--

--------------1un6YQuZTKE0bDSxqwf0DnRw
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmGLwWAFAwAAAAAACgkQlh/E3EQov+CA
fBAAnt27HP1sslZ8zQ6FW7dhzL7+pCcCbrAWcp0h9im+1qFVDKWgYUEFnFGBrzAPC5YN+4Uqsvkc
QIgkdKhBqxx35e7fCeQV83msFRb1kL/Y6FmLDbR+0RfqEkWmP3Fo3HIfgf9yL0Mho/lGcN/NF+qp
YYXy9HdAm2wlzP8EEfEQfe2zEpWOCrM2QyJ3qIxMg6Qh/sbXjP3NftH5dZ9hlHF7l5CtzeP0IXhf
EwNzkB2bz4Tl0Vf9QhUHN3+w24jYd/4dEAk45LfTqgEQZHEhd37O4x30VntBGsMTUi+psrvX+1HC
tPraFA0ssZI97FAbU3DWYpf9ggRBD3A9W9drQ4xUbjVBCyBsFYo/1YW+hdJXbuyL1rM/wPXH4MQ8
iAiBd37Cgjrvj1OMeEVXUERO/ve2ILcT4XeiQHJTk8qGchaSAn+M+qIxVn3q+IIsRJRXnfQJap7Z
FGiwdC4g9BWDl8o4yoqDdq39ICvIu/27DEHhmVy3MnwlpEP0chUANtnm4842TazKhnXKHYe//G6/
uojiuyyW4FA5+UVoWz7dLEqsf2PYz2MEGKrNPGrmqOX9XAk0Pm2CjvgqL4qz5J1GCfwGPZbhWZ4E
ZzYoy6JTmq5DUUh7KdOfFXvBTT4YZligymd33irsEnpHUz1ivyK1zCb5T+fl3g3hNaDa2yVGdNoW
LyM=
=nP0D
-----END PGP SIGNATURE-----

--------------1un6YQuZTKE0bDSxqwf0DnRw--


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 13:06:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 13:06:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224286.387510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mknJ2-0001ET-77; Wed, 10 Nov 2021 13:06:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224286.387510; Wed, 10 Nov 2021 13:06:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mknJ2-0001EM-3T; Wed, 10 Nov 2021 13:06:24 +0000
Received: by outflank-mailman (input) for mailman id 224286;
 Wed, 10 Nov 2021 13:06:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t1fV=P5=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1mknIz-0001E0-T5
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 13:06:22 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01on061a.outbound.protection.outlook.com
 [2a01:111:f400:fe1e::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fea3a938-4226-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 14:06:19 +0100 (CET)
Received: from AM6PR08CA0036.eurprd08.prod.outlook.com (2603:10a6:20b:c0::24)
 by PA4PR08MB6126.eurprd08.prod.outlook.com (2603:10a6:102:ea::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Wed, 10 Nov
 2021 13:06:17 +0000
Received: from VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:c0:cafe::fb) by AM6PR08CA0036.outlook.office365.com
 (2603:10a6:20b:c0::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Wed, 10 Nov 2021 13:06:16 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT041.mail.protection.outlook.com (10.152.19.163) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Wed, 10 Nov 2021 13:06:16 +0000
Received: ("Tessian outbound 4ce13939bd4a:v108");
 Wed, 10 Nov 2021 13:06:15 +0000
Received: from 521044f6bb07.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 88E2DD8D-6D6E-4047-B643-43B2222B7260.1; 
 Wed, 10 Nov 2021 13:06:04 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 521044f6bb07.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 10 Nov 2021 13:06:04 +0000
Received: from AS8PR08MB6808.eurprd08.prod.outlook.com (2603:10a6:20b:39c::6)
 by AM6PR08MB5031.eurprd08.prod.outlook.com (2603:10a6:20b:ed::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Wed, 10 Nov
 2021 13:06:02 +0000
Received: from AS8PR08MB6808.eurprd08.prod.outlook.com
 ([fe80::3d99:b3e8:1c0:6fcd]) by AS8PR08MB6808.eurprd08.prod.outlook.com
 ([fe80::3d99:b3e8:1c0:6fcd%9]) with mapi id 15.20.4669.010; Wed, 10 Nov 2021
 13:06:02 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO2P265CA0258.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:8a::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Wed, 10 Nov 2021 13:06:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fea3a938-4226-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cVub0t/zECIKPopKQ01IPXA2uKz1pvwslS3cPqLQxZ4=;
 b=73eFRk4jVFJBcwu+tFgoczHcEgVfXTrL+UE73zSTDBhF6jfXAccdZIotAfRB+g1/OWE47ZjrduZaPa+nz8eC/WSEcV40FnY3llWzE6BVsXPONQNyRr3O2BHg+StIAGgNsXkRDyDOR0g2/Wxr7vYlP+3aPdA8vRkjOsHZFw6+gAc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: dc1ce19b17cf10ab
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VUJW90kRbPLNu4BQIvuFR00aqGuDcs6kukhOKTucQ0f7lwXoupvCkDf5bRNAXaObkwxZLMKdvVj5wRXH6iQ3UU0fWQPVEeV4zQz8D5oLV6RZAZ+px1sOiJW8t1p/hWmNWK5UC+rudkRKm36maEef/5sX/5O8L5J0ZKfPNCiVAvcHSElUHZBPR3IQS8nJH9ol2tYsHO97UMwX/pxBrnfgI0DCJnW1l0WK1LBoh9ZZeWVofG6BhOHkEAG1/urnqVrUNh+ymEVNL8VsRdM16GLmmBTIL4OiSFrfwY0mGz5P7zwX0WdeTf3pYHFrnKIS/97dawUlP8p+dqGcUbeZR+7ayQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cVub0t/zECIKPopKQ01IPXA2uKz1pvwslS3cPqLQxZ4=;
 b=gui9mzLuFwZElOsNPobuRoJsWy3B2vNRxzbGq/jXSJaZ59PmmCAhfd/x2hoBK0yKjkXngHHjARM0yzBie1+FrJLTjN7eRdLesgg+zCUEJLq+d9/YFHUIUXaI2iGYYP5mha8S/wLSoO5Mcf2QpKz5S58MFvVF1mY3UkElUHKvdIXqDguTuTpN0f6J9eKtTNPTLP+9Reh2EtV7Fxif0tW9ihs7AW9qDpYhOzCjcswid9T3v8/1C8odvqqkiBlMFeBCwdAtJyOlKqHOakqHvUmIlB1D61G80/Cw0odpVCPaYQsbEdznG1JR64mAAtYMTjBOuJHMBWuTwrpib1vmsx+JSQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cVub0t/zECIKPopKQ01IPXA2uKz1pvwslS3cPqLQxZ4=;
 b=73eFRk4jVFJBcwu+tFgoczHcEgVfXTrL+UE73zSTDBhF6jfXAccdZIotAfRB+g1/OWE47ZjrduZaPa+nz8eC/WSEcV40FnY3llWzE6BVsXPONQNyRr3O2BHg+StIAGgNsXkRDyDOR0g2/Wxr7vYlP+3aPdA8vRkjOsHZFw6+gAc=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
Date: Wed, 10 Nov 2021 13:05:55 +0000
Cc: Jan Beulich <jbeulich@suse.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
To: Stefano Stabellini <sstabellini@kernel.org>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO2P265CA0258.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:8a::30) To AS8PR08MB6808.eurprd08.prod.outlook.com
 (2603:10a6:20b:39c::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 846dea20-7ab9-487d-d773-08d9a44ae139
X-MS-TrafficTypeDiagnostic: AM6PR08MB5031:|PA4PR08MB6126:
X-Microsoft-Antispam-PRVS:
	<PA4PR08MB6126623B5D0D6EFD25080B28E4939@PA4PR08MB6126.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 Uip0AxUIikfgvZj+x24wiKd5MbrU7PjJZE9gzBAbSBDF2SO2gf1YNtlyzCMlq0WJSw14wwyO7HDEnGya2+HUgFaOpE1y/EOlTmvkhhzr6x2vs1X0LfA5hQiFJ6LdZZWN6GAzGbItN1s80M/oSxwNz2qG4TTmmPoIt5TLf0pRFxVFlRRJnFN0bHe2RnMlxMZzH10rLqNYJePFA9xqHX6b1de5YqnUEXltGv3lXcujJgaEqaO9C/36rVSrHnoStAFHKslfq3hZ/lHRiW31G+U8cvAVewuajKQQmDIgSY2LGdgin20AAFeNmO2po9hZ0+8LXViC/hjs4BLTDWwU4Vm45mDkUAvkt12g1yeVslCMyipiXMbHXpdFZSgdiQUoZ4aYuXRuSC3/dhLFAnjMrZspEHgrkxCbBKascq8jEzaUcS13ggZHNFhnRpkiGimCQ5AVfIL5D/TzknWBLnecqi7xD33o36AePQ8cBMenzEpbFNaHbfzuYhLLxv7up1zMNIdazRtD46DLbSKdgRHg31p0zqTHZiBdIHw1QjUjyjjqTF+yle7SZ0tGHz5Mn2NOYUOy4qNq83L/lPiYNp6s34nTuEUvbk8HRQtId8/x/rCVYnINzCP1TFxAlnXKuRGkOzrFVengydGXpTxHbVL5RLlRVjptu3xDYuuGAf0Z9O3BkV8YkyXCM0hlVdLH8Jp13JBTXO1Tkbl6dsLgPEa9u7tbQI97aTc3z0N1OS/nKdS6r0s=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6808.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(26005)(508600001)(6506007)(38350700002)(66556008)(8936002)(186003)(6486002)(54906003)(2906002)(6916009)(316002)(6666004)(6512007)(4326008)(5660300002)(53546011)(86362001)(956004)(83380400001)(44832011)(2616005)(36756003)(33656002)(52116002)(66946007)(38100700002)(66476007)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB5031
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	55b3e69e-6930-47db-49c0-08d9a44ad8db
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ggQ2aeu1xOLRhsmGDWgrAq1jLBazJ0fKWqiZnGMl0MBlJYgcDCZwwIyQaZ3D6b3ZNvgCrlCbLzZqEVwe5XQtQSUUzbqUnmzY/p4qE4E76meNr/xIbpxxnIFZSggKyasqRVtD+a7NOQyWHp0aspIoMdZbuFxPi5jUPcrdokWBhLqEXlmBjYQfocfKpEZUWQBSpl2YhKSurHZ+35vKUpxR/KoGE20JGuN+ckBx/PTmTbdiQ42HynD/+ZAMSoqfMuuvo4gNIBgYbNN2Zszt8Khzuy5fLHjaFKiwIniy2ddpfHwBaUl2IwVxQvmmVoYL9lCpBD1VG5h19zR+g93c4SV6RUb0zk5PV2biqkyu9GBgyIkSEbXmSpROAay8phOpLNQFlMInnzjs+EuTv/ejB9YiW8pFi1XxSIhEQR91kOEZ7RZYRyNapQdZQChDaeG5ka3Qs64Sq7Nl6pZqFYhnyL0PYM5wCNkuwqsN2BI1DanOL8d9yXEWHnSppFEC3aFZyWSS7+KgrUbjrT44daSkvsSVOXDsPxZMv0eORgC9CVeevcWdbn7dtmJI7dWBziSvbl1DrBHVi9knnx9ykLNMvWGkCiNRyEp1YI/gcRD6BCyVEqzReaLDv/R+l5n/dLTGFMVjQOn9nryddIemqD/qiZhDZBWst0yy5/yP7UxwtoxfjVmt++Mqr8bzqznvz5MzplFM+BB4isr0kfrvWhQxqa3QDQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(8936002)(8676002)(6862004)(508600001)(356005)(26005)(36756003)(6486002)(47076005)(33656002)(5660300002)(6512007)(6666004)(4326008)(70586007)(36860700001)(70206006)(44832011)(186003)(2616005)(956004)(86362001)(336012)(83380400001)(316002)(81166007)(82310400003)(6506007)(53546011)(54906003)(2906002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2021 13:06:16.1385
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 846dea20-7ab9-487d-d773-08d9a44ae139
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6126



> On 9 Nov 2021, at 21:52, Stefano Stabellini <sstabellini@kernel.org> wrot=
e:
>=20
> On Tue, 9 Nov 2021, Jan Beulich wrote:
>> On 09.11.2021 03:11, Stefano Stabellini wrote:
>>> On Mon, 8 Nov 2021, Jan Beulich wrote:
>>>> On 05.11.2021 16:33, Stefano Stabellini wrote:
>>>>> My main concern is performance and resource utilization. With v3 of t=
he
>>>>> patch get_parent_handle will get called for every module to be loaded=
.
>>>>> With dom0less, it could easily get called 10 times or more. Taking a
>>>>> look at get_parent_handle, the Xen side doesn't seem small and I have
>>>>> no idea how the EDK2 side looks. I am just worried that it would
>>>>> actually have an impact on boot times (also depending on the bootload=
er
>>>>> implementation).
>>>>=20
>>>> The biggest part of the function deals with determining the "residual"=
 of
>>>> the file name. That part looks to be of no interest at all to
>>>> allocate_module_file() (whether that's actually correct I can't tell).=
 I
>>>> don't see why this couldn't be made conditional (e.g. by passing in NU=
LL
>>>> for "leaf").
>>>=20
>>> I understand the idea of passing NULL instead of "leaf", but I tried
>>> having a look and I can't tell what we would be able to skip in
>>> get_parent_handle.
>>=20
>> My bad - I did overlook that dir_handle gets updated even past the
>> initial loop.
>>=20
>>> Should we have a global variable to keep the dir_handle open during
>>> dom0less module loading?
>>=20
>> If that's contained within Arm-specific code, I (obviously) don't mind.
>> Otherwise I remain to be convinced.
>=20
> I think we can do something decent entirely within
> xen/arch/arm/efi/efi-boot.h.
>=20
> Luca, see below as reference; it is untested and incomplete but should
> explain the idea better than words. With the below, we only open/close
> the handle once for the all dom0less modules.
>=20
>=20
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index 458cfbbed4..b5218d5228 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -24,6 +24,7 @@ static struct file __initdata module_binary;
> static module_name __initdata modules[MAX_UEFI_MODULES];
> static unsigned int __initdata modules_available =3D MAX_UEFI_MODULES;
> static unsigned int __initdata modules_idx;
> +static EFI_FILE_HANDLE __initdata dir_handle;
>=20
> #define ERROR_BINARY_FILE_NOT_FOUND (-1)
> #define ERROR_ALLOC_MODULE_NO_SPACE (-1)
> @@ -651,9 +652,7 @@ static int __init allocate_module_file(EFI_LOADED_IMA=
GE *loaded_image,
>                                        const char *name,
>                                        unsigned int name_len)
> {
> -    EFI_FILE_HANDLE dir_handle;
>     module_name *file_name;
> -    CHAR16 *fname;
>     union string module_name;
>     int ret;
>=20
> @@ -685,14 +684,9 @@ static int __init allocate_module_file(EFI_LOADED_IM=
AGE *loaded_image,
>     strlcpy(file_name->name, name, name_len + 1);
>     file_name->name_len =3D name_len;
>=20
> -    /* Get the file system interface. */
> -    dir_handle =3D get_parent_handle(loaded_image, &fname);
> -
>     /* Load the binary in memory */
>     read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
>=20
> -    dir_handle->Close(dir_handle);
> -
>     /* Save address and size */
>     file_name->addr =3D module_binary.addr;
>     file_name->size =3D module_binary.size;
> @@ -862,6 +856,7 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE =
*loaded_image)
> {
>     int chosen, node, addr_len, size_len;
>     unsigned int i =3D 0, modules_found =3D 0;
> +    CHAR16 *fname;
>=20
>     /* Check for the chosen node in the current DTB */
>     chosen =3D setup_chosen_node(fdt, &addr_len, &size_len);
> @@ -871,6 +866,8 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE =
*loaded_image)
>         return ERROR_DT_CHOSEN_NODE;
>     }
>=20
> +    dir_handle =3D get_parent_handle(loaded_image, &fname);
> +
>     /* Check for nodes compatible with xen,domain under the chosen node *=
/
>     for ( node =3D fdt_first_subnode(fdt, chosen);
>           node > 0;
> @@ -902,6 +899,8 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE =
*loaded_image)
>         efi_bs->FreePool(modules[i].name);
>     }
>=20
> +    if ( dir_handle )
> +        dir_handle->Close(dir_handle);
>     return modules_found;
> }
>=20

Hi Stefano,

I thought having the EFI_FILE_HANDLE global in efi-boot.h was a =E2=80=9Cno=
 go=E2=80=9D, but if it=E2=80=99s not then instead of
calling get_parent_handle in efi_check_dt_boot (that is the main issue with=
 EDK2+Grub2), we can do
something like this:

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 458cfbbed4..169bbfc215 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -24,6 +24,7 @@ static struct file __initdata module_binary;
 static module_name __initdata modules[MAX_UEFI_MODULES];
 static unsigned int __initdata modules_available =3D MAX_UEFI_MODULES;
 static unsigned int __initdata modules_idx;
+static EFI_FILE_HANDLE __initdata fs_dir_handle;
=20
 #define ERROR_BINARY_FILE_NOT_FOUND (-1)
 #define ERROR_ALLOC_MODULE_NO_SPACE (-1)
@@ -651,7 +652,6 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE=
 *loaded_image,
                                        const char *name,
                                        unsigned int name_len)
 {
-    EFI_FILE_HANDLE dir_handle;
     module_name *file_name;
     CHAR16 *fname;
     union string module_name;
@@ -686,12 +686,11 @@ static int __init allocate_module_file(EFI_LOADED_IMA=
GE *loaded_image,
     file_name->name_len =3D name_len;
=20
     /* Get the file system interface. */
-    dir_handle =3D get_parent_handle(loaded_image, &fname);
+    if ( !fs_dir_handle )
+        fs_dir_handle =3D get_parent_handle(loaded_image, &fname);
=20
     /* Load the binary in memory */
-    read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
-
-    dir_handle->Close(dir_handle);
+    read_file(fs_dir_handle, s2w(&module_name), &module_binary, NULL);
=20
     /* Save address and size */
     file_name->addr =3D module_binary.addr;
@@ -895,6 +894,10 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *=
loaded_image)
         modules_found +=3D ret;
     }
=20
+    /* allocate_module_file could have allocated the handle, if so, close =
it */
+    if ( fs_dir_handle )
+        fs_dir_handle->Close(fs_dir_handle);
+
     /* Free boot modules file names if any */
     for ( ; i < modules_idx; i++ )
     {


I=E2=80=99ve not tested these changes, but I=E2=80=99ve built them for arm/=
x86 and they build.

What everyone think about that?

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 13:31:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 13:31:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224293.387521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mknhA-0004MB-Ch; Wed, 10 Nov 2021 13:31:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224293.387521; Wed, 10 Nov 2021 13:31:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mknhA-0004M4-9f; Wed, 10 Nov 2021 13:31:20 +0000
Received: by outflank-mailman (input) for mailman id 224293;
 Wed, 10 Nov 2021 13:31:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ssld=P5=oderland.se=josef@srs-se1.protection.inumbo.net>)
 id 1mknh9-0004Ly-KP
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 13:31:19 +0000
Received: from office.oderland.com (office.oderland.com [91.201.60.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c528d64-422a-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 14:31:18 +0100 (CET)
Received: from [193.180.18.161] (port=47568 helo=[10.137.0.14])
 by office.oderland.com with esmtpsa (TLS1.2) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2)
 (envelope-from <josef@oderland.se>)
 id 1mknh7-009tmM-Jm; Wed, 10 Nov 2021 14:31:17 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c528d64-422a-11ec-a9d2-d9f7a1cc8784
Message-ID: <b003df90-0c85-a51c-0e8a-600a85912d85@oderland.se>
Date: Wed, 10 Nov 2021 14:31:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101
 Thunderbird/93.0
Subject: Re: [PATCH v2] PCI/MSI: Move non-mask check back into low level
 accessors
Content-Language: en-US
To: Thomas Gleixner <tglx@linutronix.de>
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org, jgross@suse.com,
 linux-pci@vger.kernel.org, maz@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jandryuk@gmail.com>, David Woodhouse <dwmw2@infradead.org>
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se> <87k0ho6ctu.ffs@tglx>
 <87h7cs6cri.ffs@tglx> <87pmr92xek.ffs@tglx>
From: Josef Johansson <josef@oderland.se>
In-Reply-To: <87pmr92xek.ffs@tglx>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - office.oderland.com
X-AntiAbuse: Original Domain - lists.xenproject.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - oderland.se
X-Get-Message-Sender-Via: office.oderland.com: authenticated_id: josjoh@oderland.se
X-Authenticated-Sender: office.oderland.com: josjoh@oderland.se

On 11/9/21 15:53, Thomas Gleixner wrote:
> On Thu, Nov 04 2021 at 00:27, Thomas Gleixner wrote:
>>  
>> -		if (!entry->msi_attrib.is_virtual) {
>> +		if (!entry->msi_attrib.can_mask) {
> Groan. I'm a moron. This obviously needs to be
>
> 		if (entry->msi_attrib.can_mask) {
I will compile and check. Thanks for being thorough.
>>  			addr = pci_msix_desc_addr(entry);
>>  			entry->msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
>>  		}



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 13:36:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 13:36:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224300.387532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mknly-00050a-0w; Wed, 10 Nov 2021 13:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224300.387532; Wed, 10 Nov 2021 13:36:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mknlx-00050T-Ti; Wed, 10 Nov 2021 13:36:17 +0000
Received: by outflank-mailman (input) for mailman id 224300;
 Wed, 10 Nov 2021 13:36:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mknlw-00050M-Dq
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 13:36:16 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mknlt-0002i6-2P; Wed, 10 Nov 2021 13:36:13 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.19.173]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mknls-0007EF-SB; Wed, 10 Nov 2021 13:36:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=2HeERBqFGcE4/ONKmD9LNZi0lWIeIzEOqoGVgt5VdOE=; b=iSm8ZZirp9dxbI15HpnKpsJdlg
	1RyQeeaH/SS/0sbWXeD+m2Ur3CL6r4sCQ3OihnNymkbVBbRsUAKLyso68cvIQnX/FOiCsil1cx7Xi
	r3gHtRfRaLFYddrA0VBsYpOfBH+o40a0x5NGipVSO/EkON721DCAs342HEAbnFOxdhFY=;
Message-ID: <010fa02f-e561-e7a8-9638-5246db9166b4@xen.org>
Date: Wed, 10 Nov 2021 13:36:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
To: Luca Fancellu <luca.fancellu@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
 <3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Luca,

On 10/11/2021 13:05, Luca Fancellu wrote:
> I thought having the EFI_FILE_HANDLE global in efi-boot.h was a “no go”, but if it’s not then instead of
> calling get_parent_handle in efi_check_dt_boot (that is the main issue with EDK2+Grub2), we can do
> something like this:

fs_dir_handle is only used by callees of efi_check_boot_dt_boot(). So 
the global variable is not an option for me because the risk is not 
worth it (it is easy to misuse a global variable).

Instead, I think fs_dir_handle should be an argument of 
allocate_module_file() and propagated up to the first call in 
efi_check_dt_boot().

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 13:38:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 13:38:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224307.387543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mknnp-0005dW-CA; Wed, 10 Nov 2021 13:38:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224307.387543; Wed, 10 Nov 2021 13:38:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mknnp-0005dP-9A; Wed, 10 Nov 2021 13:38:13 +0000
Received: by outflank-mailman (input) for mailman id 224307;
 Wed, 10 Nov 2021 13:38:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZYPh=P5=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mknnn-0005dH-Fd
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 13:38:11 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71febd5c-422b-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 14:38:10 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id z34so6045016lfu.8
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 05:38:10 -0800 (PST)
Received: from [192.168.2.145] (79-139-177-117.dynamic.spd-mgts.ru.
 [79.139.177.117])
 by smtp.googlemail.com with ESMTPSA id z25sm60391lja.99.2021.11.10.05.38.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Nov 2021 05:38:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71febd5c-422b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=WtBceGsuNkvJWXKObFPMz3/faWDyi74JI/F+pRXLbvs=;
        b=lD15/VjqUInHM3dZidzqbDMtU49DALHBS4Ay1C40nUi5lxcF7BMQ5EnHXXzG4e6Wu9
         KEtaN/+P0k1Njtg3ToWP1/KM8wIXtXfb2GMI1jVOw30JDescBKoGZyWGQkHaeFFMF1Cx
         557WfM+CudsCe0rfY4tn9Qu/fZ6FXK7hdk9Wu9dTaZ71QukQt6Mf26SjkHrJIeq+MupJ
         /vckqogxswS5UmhYqlk9vNHYa1S8ChRuc7OrOB+B+82hPJEZwrpCBIceX5S6KM+5NMWF
         FSm1MYMPHMKiWtHmf2u4gxwpqn+oAaxX8rT7fWDE5HDvTnS5+IytbAjE77fEnTdMp1QG
         4sBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=WtBceGsuNkvJWXKObFPMz3/faWDyi74JI/F+pRXLbvs=;
        b=6FGBhCIbg00F3dK8BERAozLAs4EHZb9Vj3oWIIMy+3+g2KPYjxMkKZd3fLQbcJEe/b
         RC3/21fq+7zIKeqxUcIol87Qiel1ZKWcdRoXhs1WvrW8RCUSrVhP+81h2QDhRAAAQwvS
         l+5eyV6LJWqDcHe2nUzKvuhL3lMpeveaUksO2UetKzv8ysMUE2bUASdbSoSr4EA8IPLQ
         vBsZ7LcpmR+oPr8zNKIdqGCpY5KvvS1BMOOSJRyBVMwVpgON94935WvBOEm37oremxxi
         ia3suOuPtAqJJZrJ+sIJk5RUMRtySrmISLumW6X2Q9tbH50goVm1nR1yHEm2IHI4dygZ
         B8Wg==
X-Gm-Message-State: AOAM531f8OLL7FgSuoGbhNqPjFM8zl7GigrG+8ddriSYNaRIxyAIxmax
	Kn32Csid7QmabihUYRXCBfw=
X-Google-Smtp-Source: ABdhPJxBHb2JNLIS70NEJi27Oqj8IHGODoK0u1oyS1uV5awJ6mpkyMTiHwL65DF0nZiuWJMJYZ6aSw==
X-Received: by 2002:a05:6512:c02:: with SMTP id z2mr14599668lfu.445.1636551490068;
        Wed, 10 Nov 2021 05:38:10 -0800 (PST)
Subject: Re: [PATCH v2 27/45] mfd: ntxec: Use devm_register_power_handler()
To: =?UTF-8?Q?Jonathan_Neusch=c3=a4fer?= <j.neuschaefer@gmx.net>
Cc: Guenter Roeck <linux@roeck-us.net>,
 Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Lee Jones <lee.jones@linaro.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Mark Brown <broonie@kernel.org>,
 Andrew Morton <akpm@linux-foundation.org>,
 Russell King <linux@armlinux.org.uk>,
 Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 Guo Ren <guoren@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>,
 Greg Ungerer <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
 Vincent Chen <deanbo422@gmail.com>, Helge Deller <deller@gmx.de>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Len Brown <lenb@kernel.org>, Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Linus Walleij <linus.walleij@linaro.org>, Chen-Yu Tsai <wens@csie.org>,
 Tony Lindgren <tony@atomide.com>, Liam Girdwood <lgirdwood@gmail.com>,
 Philipp Zabel <p.zabel@pengutronix.de>, Vladimir Zapolskiy <vz@mleia.com>,
 Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>,
 Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>,
 Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>,
 Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
 linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
 linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
 openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
 linux-pm@vger.kernel.org
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-28-digetx@gmail.com> <YYbqlmOM95q7Hbjo@latitude>
 <be0c74c6-05a9-cad5-c285-6626d05f8860@gmail.com>
 <9a22c22d-94b1-f519-27a2-ae0b8bbf6e99@roeck-us.net>
 <658cf796-e3b1-f816-1e15-9e9e08b8ade0@gmail.com>
 <5a17fee3-4214-c2b9-abc1-ab9d6071591b@roeck-us.net>
 <c0b52994-51f5-806b-b07e-3e70d8217ffc@gmail.com> <YYkIeBSCFka9yrqC@latitude>
 <04103df3-1ef4-b560-a5cb-fa51737d28ad@gmail.com> <YYuia9KFdi+ETT+I@latitude>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <ceefc854-5d15-b73c-0135-c1cbbbb473b7@gmail.com>
Date: Wed, 10 Nov 2021 16:38:07 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YYuia9KFdi+ETT+I@latitude>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

10.11.2021 13:43, Jonathan Neuschäfer пишет:
> On Mon, Nov 08, 2021 at 02:36:42PM +0300, Dmitry Osipenko wrote:
>> 08.11.2021 14:22, Jonathan Neuschäfer пишет:
>>> On Sun, Nov 07, 2021 at 08:42:33PM +0300, Dmitry Osipenko wrote:
>>> [...]
>>>> EC drivers tend to use higher priority in general. Jonathan, could you
>>>> please confirm that NTXEC driver is a more preferable restart method
>>>> than the watchdog?
>>>
>>> Yes. The original firmware uses the NTXEC to restart, and it works well,
>>> so I do think it's preferable.
>>
>> Thank you, then I'll update the NTXEC patch like this:
>>
>> https://github.com/grate-driver/linux/commit/22da3d91f1734d9a0ed036220ad4ea28465af988
> 
> I tested again, but sys_off_handler_reboot called a bogus pointer
> (probably reboot_prepare_cb). I think it was left uninitialized in
> ntxec_probe, which uses devm_kmalloc. I guess we could switch it to
> devm_kzalloc:
> 
> diff --git a/drivers/mfd/ntxec.c b/drivers/mfd/ntxec.c
> index 1f55dfce14308..30364beb4b1d0 100644
> --- a/drivers/mfd/ntxec.c
> +++ b/drivers/mfd/ntxec.c
> @@ -144,7 +144,7 @@ static int ntxec_probe(struct i2c_client *client)
>  	const struct mfd_cell *subdevs;
>  	size_t n_subdevs;
>  
> -	ec = devm_kmalloc(&client->dev, sizeof(*ec), GFP_KERNEL);
> +	ec = devm_kzalloc(&client->dev, sizeof(*ec), GFP_KERNEL);
>  	if (!ec)
>  		return -ENOMEM;
>  
> 
> 
> With that done, it works flawlessly.

Good catch, thank you! I'll correct this patch and add yours t-b.



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 13:42:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 13:42:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224312.387554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkns6-00070k-Tg; Wed, 10 Nov 2021 13:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224312.387554; Wed, 10 Nov 2021 13:42:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkns6-00070d-Ql; Wed, 10 Nov 2021 13:42:38 +0000
Received: by outflank-mailman (input) for mailman id 224312;
 Wed, 10 Nov 2021 13:42:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mkns5-00070X-20
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 13:42:37 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkns2-0002qp-1j; Wed, 10 Nov 2021 13:42:34 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.19.173]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mkns1-0007c2-RN; Wed, 10 Nov 2021 13:42:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=kqPl5lKEg5qOgDwsA4MzRCfkHeofnwlRtEj4qjoHWWk=; b=DEF5k2LS9M7IneqM7DtbvpY1Iu
	i3m7rmGBUFRwdBAYQXH9yEZgpymBveup5oVT+WEhhFjM4NOeBmEimUh+QJQGFx9Z/3wdErc7EQ4+D
	pOEz0UVzEJw/7XdJGU3RpDqxKFm36FD/ca7Vka+CKBp9lq2qGgkTfId7A1nL/18S2KF8=;
Message-ID: <c303da1f-adf0-398d-4ba8-d0e5410da992@xen.org>
Date: Wed, 10 Nov 2021 13:42:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v2] xen/arm: don't assign domU static-mem to dom0 as
 reserved-memory
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Penny.Zheng@arm.com, Bertrand.Marquis@arm.com, Wei.Chen@arm.com,
 iwj@xenproject.org, Volodymyr_Babchuk@epam.com,
 xen-devel@lists.xenproject.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>
References: <20211109231817.587168-1-sstabellini@kernel.org>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211109231817.587168-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 09/11/2021 23:18, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> DomUs static-mem ranges are added to the reserved_mem array for
> accounting, but they shouldn't be assigned to dom0 as the other regular
> reserved-memory ranges in device tree.
> 
> In make_memory_nodes, fix the error by skipping banks with xen_domain
> set to true in the reserved-memory array. Also make sure to use the
> first valid (!xen_domain) start address for the memory node name.
> 
> Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation")
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> 
> ---
> Changes in v2:
> - improve commit message
> - improve in-code comment
> - update nr_cells appropriately
> ---
>   xen/arch/arm/domain_build.c | 23 +++++++++++++++++------
>   1 file changed, 17 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 9e92b640cd..c81a2bdfef 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -862,21 +862,25 @@ static int __init make_memory_node(const struct domain *d,
>   {
>       int res, i;
>       int reg_size = addrcells + sizecells;
> -    int nr_cells = reg_size * mem->nr_banks;
> +    int nr_cells = 0;
>       /* Placeholder for memory@ + a 64-bit number + \0 */
>       char buf[24];
>       __be32 reg[NR_MEM_BANKS * 4 /* Worst case addrcells + sizecells */];
>       __be32 *cells;
>   
> -    BUG_ON(nr_cells >= ARRAY_SIZE(reg));

The goal of this BUG_ON() was to catch potential overrun of the buffer 
before it is actually used. Now...

>       if ( mem->nr_banks == 0 )
>           return -ENOENT;
>   
> -    dt_dprintk("Create memory node (reg size %d, nr cells %d)\n",
> -               reg_size, nr_cells);
> +    /* find first memory range not bound to a Xen domain */
> +    for ( i = 0; i < mem->nr_banks && mem->bank[i].xen_domain; i++ )
> +        ;
> +    if ( i == mem->nr_banks )
> +        return 0;
> +
> +    dt_dprintk("Create memory node\n");
>   
>       /* ePAPR 3.4 */
> -    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[0].start);
> +    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[i].start);
>       res = fdt_begin_node(fdt, buf);
>       if ( res )
>           return res;
> @@ -886,17 +890,24 @@ static int __init make_memory_node(const struct domain *d,
>           return res;
>   
>       cells = &reg[0];
> -    for ( i = 0 ; i < mem->nr_banks; i++ )
> +    for ( ; i < mem->nr_banks; i++ )
>       {
>           u64 start = mem->bank[i].start;
>           u64 size = mem->bank[i].size;
>   
> +        if ( mem->bank[i].xen_domain )
> +            continue;
> +
>           dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
>                      i, start, start + size);
>   
> +        nr_cells += reg_size;
>           dt_child_set_range(&cells, addrcells, sizecells, start, size);
>       }
>   
> +    dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells);
> +    BUG_ON(nr_cells >= ARRAY_SIZE(reg));

... this is moved after we write to the array. Which means the badness 
already happened and the BUG_ON() becomes pointless.

I would still like to have the BUG_ON() in place. So I would move it in 
the loop just after nr_cells is updated.

> +
>       res = fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg));
>       if ( res )
>           return res;
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 14:03:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 14:03:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224320.387571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkoBu-00013o-O9; Wed, 10 Nov 2021 14:03:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224320.387571; Wed, 10 Nov 2021 14:03:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkoBu-00013h-Kc; Wed, 10 Nov 2021 14:03:06 +0000
Received: by outflank-mailman (input) for mailman id 224320;
 Wed, 10 Nov 2021 14:03:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t1fV=P5=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1mkoBt-00013b-Mj
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 14:03:05 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02on0631.outbound.protection.outlook.com
 [2a01:111:f400:fe06::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eb19ba2c-422e-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 15:03:04 +0100 (CET)
Received: from AS8PR04CA0052.eurprd04.prod.outlook.com (2603:10a6:20b:312::27)
 by AM0PR08MB3636.eurprd08.prod.outlook.com (2603:10a6:208:d4::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Wed, 10 Nov
 2021 14:02:54 +0000
Received: from AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:312:cafe::a5) by AS8PR04CA0052.outlook.office365.com
 (2603:10a6:20b:312::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Wed, 10 Nov 2021 14:02:54 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT032.mail.protection.outlook.com (10.152.16.84) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Wed, 10 Nov 2021 14:02:53 +0000
Received: ("Tessian outbound e7ce0d853b63:v108");
 Wed, 10 Nov 2021 14:02:53 +0000
Received: from 27fe83e85fe1.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 D8A9D01B-61D6-404F-BF51-535CF5058E39.1; 
 Wed, 10 Nov 2021 14:02:41 +0000
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 27fe83e85fe1.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 10 Nov 2021 14:02:41 +0000
Received: from AS8PR08MB6808.eurprd08.prod.outlook.com (2603:10a6:20b:39c::6)
 by AM6PR08MB3383.eurprd08.prod.outlook.com (2603:10a6:20b:50::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Wed, 10 Nov
 2021 14:02:36 +0000
Received: from AS8PR08MB6808.eurprd08.prod.outlook.com
 ([fe80::3d99:b3e8:1c0:6fcd]) by AS8PR08MB6808.eurprd08.prod.outlook.com
 ([fe80::3d99:b3e8:1c0:6fcd%9]) with mapi id 15.20.4669.010; Wed, 10 Nov 2021
 14:02:35 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO2P265CA0197.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9e::17) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Wed, 10 Nov 2021 14:02:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb19ba2c-422e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=toxIxcKXn8WUm0gB/eJFIEBN9ACaVaDEcTMLhUrMhz0=;
 b=R8mSvP9MwnfLy/c4IgCOzK7hz1vqxv1UYZ6egptSlXuE5aSXEpJNomkUafsEWzbyCUYOyUxxSP399xMsmTIO+9vM2baaraZwBs4M9gqKr3Uot6PS/w8KkIixF3y1wEsDNtf5zbAVmoFLL+HBXlPVsvU5yEwnh9+e+1VfW7t0Fn8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: ff4d678ee4689e37
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=J88rDXfg+Ub3LOwgb9DVFr9q2OUwBR+VwXpDcB5e5kAjfhdkivHPZ8WmRb2bAzpwXQ7w4VBFboQBMxn2xCtycKSSa72cC1fWTURtlOqg0Ply0KBNeT/+7zzem53+ocdWMAjVVz2t+N7odUP1Q+qp+y8xg1phMaaZdmITolP8FY5pjnUbtoI9q0ns3KHxGQP06iQ4FTsgzTmHM4XZ6fSK7L7YXF3SZQmubmRNmz8iCO03t+sdtHCmHSIGqxwAjOqCm/gige4KD2orobr/n7pTMDM8nVdJPCbCPALAI38EbbQKJr7EJSjSu4RAvuJAudiNnPZZC4KZmt0vvV+/fNiIWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=toxIxcKXn8WUm0gB/eJFIEBN9ACaVaDEcTMLhUrMhz0=;
 b=aFtEYiEFuWktnKzqi2HVPKiLGcfGih4QEOYkLlBTHq2qb7/PPGkV7rzblh5wyFwZfG6oSTwcq0BUi1CRlhyYbMSbXA7g1yLyGrAUncDidfGnTFZ3REmnagexIn8vKAnPgAzaDLEf22SBuiBpuKSM3qGgBSPXNoNuwWtKHBb4rZH1BvrIDKVG8TnGcsmj9gUuZ0vbgxjEe2n1mPds9xxpqgdBFkr3bl/Ansm87adkUKH6LymkOIaRskT4IVh1JnN73lCrA4pjdL70A/sP2VTv0/kdc93CV8RU0Bt3IgG/ZcO8kSA2QoyXBpydYn1CG2rojmCZ/EfOrovG7zY2UQ6Fpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=toxIxcKXn8WUm0gB/eJFIEBN9ACaVaDEcTMLhUrMhz0=;
 b=R8mSvP9MwnfLy/c4IgCOzK7hz1vqxv1UYZ6egptSlXuE5aSXEpJNomkUafsEWzbyCUYOyUxxSP399xMsmTIO+9vM2baaraZwBs4M9gqKr3Uot6PS/w8KkIixF3y1wEsDNtf5zbAVmoFLL+HBXlPVsvU5yEwnh9+e+1VfW7t0Fn8=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <010fa02f-e561-e7a8-9638-5246db9166b4@xen.org>
Date: Wed, 10 Nov 2021 14:02:28 +0000
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Jan Beulich <jbeulich@suse.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <725F3F68-A1CE-42FB-9C8A-0700CDD02E8E@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
 <3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com>
 <010fa02f-e561-e7a8-9638-5246db9166b4@xen.org>
To: Julien Grall <julien@xen.org>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO2P265CA0197.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:9e::17) To AS8PR08MB6808.eurprd08.prod.outlook.com
 (2603:10a6:20b:39c::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5bb335cd-dde1-4790-e90b-08d9a452ca3c
X-MS-TrafficTypeDiagnostic: AM6PR08MB3383:|AM0PR08MB3636:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB363652C888812A6C472C37A6E4939@AM0PR08MB3636.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 rdApp104AleWDQ3MTtZr/ogSPD88aHIN//39OEzrGNsqUmuNSiCO4HVqs/fqtNPFgGu8+nE4jb+sWI79XzOigg0Epw2yrSPBJobyk8pT/h4rUbWYhWGQRFgt9rNWsRpSK0MjqLIy1tg2ygkHh6A8jqI9z3wma1EbDmy+OtxnmVFkUxqH0XkRZGMKFpSK/5CvWU1jabzC7byK6CgRF4W0N1JILAPr8FLjgthwhWecOQLkQGp6GTz6LE0uLrwcHBirm9QmLZUYIwoqSbIB683ATVRZYuR5SRCAaKoM3gCRmlApbBog9nS7gqoZGhIXr7rGjNo2wxKq+jqtYoFfw9TTlJqaJmpgsgGIcr4VosO1x6nGqHIlFybHxyWvH15xNuATTNZu+TsmL4imW49pMlJrZbPHOn1j3hD24R2oOFPZEO8ttd/B1bW83yEHeLVw6c2sQrZSBk+X27jEbuxaLzJVpuQe9S/1HnrrIO/RhmWKIoQTBcrWE4dInSQbEuMzLYNkCMcbe3K/HZDLAns17oyzyGg9U9F9O7+23zwwqP2NAYZw4v4G9CSxF8bj9RGPgBxRho5HNHey1h28U5yib8WGH9M+4+KfJUhtqw0NFRiXCuOnX9qQd4kAE4lkzJL+rNPcdhyMXKhhAxcV89L6o9w9Dl19ZW7Ff4heuYPPfepATKEyGnMtB44l3+FNcNUIon+mKK2VjWZ9ueO5ACZ9bRHmgBppZxr8b90jH0EaLYXAqbL63zTrcVhwaVEfrVstOC8f
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6808.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(8936002)(36756003)(316002)(2616005)(54906003)(5660300002)(186003)(4326008)(44832011)(26005)(2906002)(66476007)(6916009)(6506007)(956004)(38100700002)(6512007)(8676002)(66556008)(38350700002)(53546011)(508600001)(6666004)(86362001)(33656002)(52116002)(6486002)(66946007)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3383
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	7ab0505e-ab7a-4ad6-017a-08d9a452bf4d
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	90PMOgbgvsq7Ib+ljrAOnoRo6mni3i5G7AWvxgmuHAS444wcWva6rtSIM12nxNrm1RzQZ+prOhJwWeO0ZVqrKQsRztROGPeFh35VazEHAApuirieXt5HpqDSf+KXEpOkcuY31sZT4HMVsqenTYGzW330FCMzPHSta75cMfc7oc79K/Mj5pca2yHkE+OPncubbYNo5hpDD+OTuXbgubzkyzd288ZA1Yd7NNxTDdLn9lhMxaWSMzWFOL7qkjeKGfvWyWOjqSOPM3V94jJ4wRXB+Mxn6vrtJv2uLC/ZnrmcSQMegiEN3DwjACanSyue5oUElFRV1NunlwDqH3PjD4mnHVpALiYCUs1KlyWuGm50HJ9kCySzrzUKpmdimxJVZDrh5bdR9EHr9y6kXdM1iblDSlotGEEBMQH0/6qCRfBDKYuo7sV3xsEy/JRpD/mw1k4M0BscqjYkvSYi/KDmbN/IbIwqynp31CTtojvjxUXLh1JakIpDJfM0NdxafF4cvpNJVsZo+M0DFTfPJDLwRRgr1MXcFH/xJli7PKJF8KsncpO3CGRwQALnH8F7Vdu/eO6eTqHGqt9UY64audp3mrlHqXZWYQ/LtvgqB9BjHc2for386mUem9M6Z2lLYUiCjZeWfl5kv+r0b3100EZA8d6VhDuEi/m3dI6EV+Y8tHQ1T+ZVCyFpIacSSlwVnK5C56aEEHqSNpTgzbbmMZRedxqlkw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(6506007)(316002)(54906003)(356005)(26005)(86362001)(5660300002)(6512007)(33656002)(81166007)(8936002)(186003)(44832011)(70206006)(8676002)(47076005)(6862004)(36860700001)(53546011)(6666004)(82310400003)(6486002)(508600001)(83380400001)(336012)(2906002)(2616005)(956004)(70586007)(4326008)(36756003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2021 14:02:53.6259
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5bb335cd-dde1-4790-e90b-08d9a452ca3c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3636



> On 10 Nov 2021, at 13:36, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Luca,
>=20
> On 10/11/2021 13:05, Luca Fancellu wrote:
>> I thought having the EFI_FILE_HANDLE global in efi-boot.h was a =E2=80=
=9Cno go=E2=80=9D, but if it=E2=80=99s not then instead of
>> calling get_parent_handle in efi_check_dt_boot (that is the main issue w=
ith EDK2+Grub2), we can do
>> something like this:
>=20

Hi Julien,

> fs_dir_handle is only used by callees of efi_check_boot_dt_boot(). So the=
 global variable is not an option for me because the risk is not worth it (=
it is easy to misuse a global variable).
>=20
> Instead, I think fs_dir_handle should be an argument of allocate_module_f=
ile() and propagated up to the first call in efi_check_dt_boot().
>=20

Yes you are right, changing the interface of handle_dom0less_domain_node, h=
andle_module_node, allocate_module_file to host also an argument EFI_FILE_H=
ANDLE *dir_handle
avoids the use of the global, then the handle is requested in allocate_modu=
le_file only once and closed in efi_check_dt_boot only if it=E2=80=99s not =
null.

Cheers,
Luca

> Cheers,
>=20
> --=20
> Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 14:08:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 14:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224326.387581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkoH8-0001mR-G8; Wed, 10 Nov 2021 14:08:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224326.387581; Wed, 10 Nov 2021 14:08:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkoH8-0001mK-D7; Wed, 10 Nov 2021 14:08:30 +0000
Received: by outflank-mailman (input) for mailman id 224326;
 Wed, 10 Nov 2021 14:08:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkoH7-0001mA-Cm; Wed, 10 Nov 2021 14:08:29 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkoH7-0003Nm-5F; Wed, 10 Nov 2021 14:08:29 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkoH6-0004aL-Ti; Wed, 10 Nov 2021 14:08:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkoH6-0001Y8-TC; Wed, 10 Nov 2021 14:08:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qXsN/NLYClkctE2b+ayg070BLqHzV/cg0yOnOm+Y9ds=; b=IoHk0R6scAkGd86IpT6zsZzr8t
	hhd51P19KWPPRD8wG7cugLODxUgLAvP94RgJJ7XrnFnTsmacGbxdxQBtZzjg9My+pUbfI5BTX4qyO
	koD4zjaulUk74HFHhNFHhyLMy/o5loJay5AUb6wJ9Nk8AJBzSPAVIFwdTmZY1It9uiG8=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166103-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166103: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=3f8f52265f79d673e143be0e1dc34d10dec841ee
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 14:08:28 +0000

flight 166103 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166103/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              3f8f52265f79d673e143be0e1dc34d10dec841ee
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  488 days
Failing since        151818  2020-07-11 04:18:52 Z  487 days  473 attempts
Testing same since   166103  2021-11-10 04:20:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 82724 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 15:00:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 15:00:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224333.387596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkp54-0007N1-DO; Wed, 10 Nov 2021 15:00:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224333.387596; Wed, 10 Nov 2021 15:00:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkp54-0007MP-9Z; Wed, 10 Nov 2021 15:00:06 +0000
Received: by outflank-mailman (input) for mailman id 224333;
 Wed, 10 Nov 2021 15:00:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkp53-0007Eg-42; Wed, 10 Nov 2021 15:00:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkp52-0004EC-RH; Wed, 10 Nov 2021 15:00:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkp52-0005uO-IF; Wed, 10 Nov 2021 15:00:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkp52-0006Yy-Hj; Wed, 10 Nov 2021 15:00:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=B62FKnzdDZpX7VFHy48qUh58Gs65f3i9/XW6d9A8OPc=; b=hYQnkWj0kOyeCKUNVa2h6ok5Zj
	rdguA/UAIKd3BlMZlYqHTNiXaSrA5jNirkJ6gExRwceKCvHaStT+U3/UG7I7keNpWuVT9fvuORX6w
	iFNy86Ao+xbA9Ek3QUY0ReN/fOp/cHZ3q3e87srNKpZcdpeqM/e+ZOF8BEmLtzOCTR9E=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166108-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166108: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=8c8867c5da8e059ab98a6108f8182700f298c6f5
X-Osstest-Versions-That:
    ovmf=f826b20811ba6b0a9dbe44ff703b85c2def267df
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 15:00:04 +0000

flight 166108 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166108/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 8c8867c5da8e059ab98a6108f8182700f298c6f5
baseline version:
 ovmf                 f826b20811ba6b0a9dbe44ff703b85c2def267df

Last test of basis   166105  2021-11-10 06:42:43 Z    0 days
Testing same since   166108  2021-11-10 09:41:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Yang Jie <jie.yang@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   f826b20811..8c8867c5da  8c8867c5da8e059ab98a6108f8182700f298c6f5 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 15:06:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 15:06:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224341.387610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkpB5-00082S-5Y; Wed, 10 Nov 2021 15:06:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224341.387610; Wed, 10 Nov 2021 15:06:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkpB5-00082L-1G; Wed, 10 Nov 2021 15:06:19 +0000
Received: by outflank-mailman (input) for mailman id 224341;
 Wed, 10 Nov 2021 15:06:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkpB3-00082B-IJ; Wed, 10 Nov 2021 15:06:17 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkpB3-0004Jz-90; Wed, 10 Nov 2021 15:06:17 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkpB2-000662-W8; Wed, 10 Nov 2021 15:06:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkpB2-0001Bl-Vd; Wed, 10 Nov 2021 15:06:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=j4Vp0vG6wDpz4gdKEebniBKH/xaWorYtEcmtp0yMyGo=; b=x2st5HLT08F3ohRbjbC4Xj9dJj
	HV8RurVXZ1BZM4T1sU+w3/YLCQv4IH4OqrBvf5FtTrCc4LC0jBvXUMcVDgYLrn5HxLw/8t6tA3iV6
	YZ3Auugd1n5/bfZEx6387VmfpxaCpkIEnBpmgKkmb0oGiinmwPE7FycmCb7qtVTx5cC8=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166100-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166100: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-xsm:guest-start:fail:regression
    linux-linus:test-amd64-amd64-pair:guest-start/debian:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=cb690f5238d71f543f4ce874aa59237cf53a877c
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 15:06:16 +0000

flight 166100 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166100/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel 14 guest-start         fail REGR. vs. 165976
 test-amd64-amd64-xl          14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-xsm      14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-pair        25 guest-start/debian       fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                cb690f5238d71f543f4ce874aa59237cf53a877c
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    8 days
Failing since        165992  2021-11-02 05:40:21 Z    8 days   12 attempts
Testing same since   166100  2021-11-10 00:10:50 Z    0 days    1 attempts

------------------------------------------------------------
1975 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        fail    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 222011 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 15:15:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 15:15:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224350.387624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkpJZ-00017M-85; Wed, 10 Nov 2021 15:15:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224350.387624; Wed, 10 Nov 2021 15:15:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkpJZ-00017F-4w; Wed, 10 Nov 2021 15:15:05 +0000
Received: by outflank-mailman (input) for mailman id 224350;
 Wed, 10 Nov 2021 15:15:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkpJX-000175-KZ; Wed, 10 Nov 2021 15:15:03 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkpJX-0004Tf-CK; Wed, 10 Nov 2021 15:15:03 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkpJX-0006HG-0h; Wed, 10 Nov 2021 15:15:03 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkpJX-00010q-0B; Wed, 10 Nov 2021 15:15:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=sQVZ9mt6OSwVk4Q509/x6EXoyYwDCVMKd1TX4iIpJbw=; b=ZmzL2h/W8Ac+wduMw8FSkqxMhY
	jEz9a7MeoWQRt/OGjCX19Hm5Rocm3mfh9+Fu9i4Zk/YtHVBe3mO4E3rSfKmPH+Rp9z2SYBQujOb1l
	x3a27gvgV+wmrwHIxV2/cDwJ+3es16Y+oOlqiqfEUymQmxMEolFW3DS8hRrIGQclqRfI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166101-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166101: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=0a70bcf18caf7a61d480f8448723c15209d128ef
X-Osstest-Versions-That:
    qemuu=21cc2bda7fda39ba749da607d6db50f55354f1fb
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 15:15:03 +0000

flight 166101 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166101/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166098
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166098
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166098
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166098
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166098
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166098
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166098
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166098
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166098
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                0a70bcf18caf7a61d480f8448723c15209d128ef
baseline version:
 qemuu                21cc2bda7fda39ba749da607d6db50f55354f1fb

Last test of basis   166098  2021-11-09 13:23:59 Z    1 days
Testing same since   166101  2021-11-10 01:54:19 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Laurent Vivier <laurent@vivier.eu>
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   21cc2bda7f..0a70bcf18c  0a70bcf18caf7a61d480f8448723c15209d128ef -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 16:05:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 16:05:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224357.387638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkq6I-0006TE-0U; Wed, 10 Nov 2021 16:05:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224357.387638; Wed, 10 Nov 2021 16:05:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkq6H-0006T7-TD; Wed, 10 Nov 2021 16:05:25 +0000
Received: by outflank-mailman (input) for mailman id 224357;
 Wed, 10 Nov 2021 16:05:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ssld=P5=oderland.se=josef@srs-se1.protection.inumbo.net>)
 id 1mkq6G-0006Si-Bb
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 16:05:24 +0000
Received: from office.oderland.com (office.oderland.com [91.201.60.5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 01a08042-4240-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 17:05:23 +0100 (CET)
Received: from [193.180.18.161] (port=49720 helo=[10.137.0.14])
 by office.oderland.com with esmtpsa (TLS1.2) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2)
 (envelope-from <josef@oderland.se>)
 id 1mkq6C-00DWE5-K1; Wed, 10 Nov 2021 17:05:20 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01a08042-4240-11ec-9787-a32c541c8605
Message-ID: <14006026-de76-41d6-f4dc-cdbdd5817dc7@oderland.se>
Date: Wed, 10 Nov 2021 17:05:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101
 Thunderbird/93.0
Subject: Re: [PATCH v2] PCI/MSI: Move non-mask check back into low level
 accessors
Content-Language: en-US
From: Josef Johansson <josef@oderland.se>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org, jgross@suse.com,
 linux-pci@vger.kernel.org, maz@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jandryuk@gmail.com>, David Woodhouse <dwmw2@infradead.org>
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se> <87k0ho6ctu.ffs@tglx>
 <87h7cs6cri.ffs@tglx> <87pmr92xek.ffs@tglx>
 <b003df90-0c85-a51c-0e8a-600a85912d85@oderland.se>
In-Reply-To: <b003df90-0c85-a51c-0e8a-600a85912d85@oderland.se>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - office.oderland.com
X-AntiAbuse: Original Domain - lists.xenproject.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - oderland.se
X-Get-Message-Sender-Via: office.oderland.com: authenticated_id: josjoh@oderland.se
X-Authenticated-Sender: office.oderland.com: josjoh@oderland.se

On 11/10/21 14:31, Josef Johansson wrote:
> On 11/9/21 15:53, Thomas Gleixner wrote:
>> On Thu, Nov 04 2021 at 00:27, Thomas Gleixner wrote:
>>>  
>>> -		if (!entry->msi_attrib.is_virtual) {
>>> +		if (!entry->msi_attrib.can_mask) {
>> Groan. I'm a moron. This obviously needs to be
>>
>> 		if (entry->msi_attrib.can_mask) {
> I will compile and check. Thanks for being thorough.
This worked as well.
>>>  			addr = pci_msix_desc_addr(entry);
>>>  			entry->msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
>>>  		}



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 17:41:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 17:41:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224364.387649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkrb9-00071g-RT; Wed, 10 Nov 2021 17:41:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224364.387649; Wed, 10 Nov 2021 17:41:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkrb9-00071Z-OP; Wed, 10 Nov 2021 17:41:23 +0000
Received: by outflank-mailman (input) for mailman id 224364;
 Wed, 10 Nov 2021 17:41:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qBHU=P5=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mkrb7-00071T-T9
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 17:41:22 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67c7cd99-424d-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 18:41:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67c7cd99-424d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636566078;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=DnG8f7mYXbCibzcKhMAQSNWt6C8qn8tICSvJpP1yxkQ=;
  b=ci3LcADJ28I4J3WKnGWdhnLfArzxbnnT1KMadEg7CMBDnzDhON4b3/cq
   hnYMmHdvXdSqiZe5vrhMepMEYoXwtYUuS5gZiv/ozJxchtZnd7mBlCxah
   0YRocv+C2tae0n0IzCkBY7UTa158OD5AkdUxksJTiKk0NfDXxl4WPs6m7
   I=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: xu2bCze7dVLkf8FWaYcLy63QyWKRNCex1IafC2FyOzBH2KrAmCuxShsH/q1f268YHiGC+GNaUK
 wmpOq4HVj99BYC9g2ehMAaor0cfN+I2BKyaXKX5xqxR2EVvGMI2HwPyJo/FKE1tps2cMheTT3k
 7Dxb8Q4sT303nyE92z4UJIjOyrexgX5cNqD/FRDm0WmkVJfZV5OkWD/Ex7BIonAFdzF3HLW5Kr
 s3YF5r4TZz9Cgnl1v8zylciilgFCpnN1hmyj5enfZQy2QlaPBQGvO/b+f3wFNkb+fehROm3JwP
 m7kSloU0wIbStvJToTN0cXvq
X-SBRS: 5.1
X-MesageID: 57533566
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:GF8FmqtpVhAxuWZo6TnVfsAMx+fnVNNZMUV32f8akzHdYApBsoF/q
 tZmKWCGO/iOajT8cot+PYXj8EoPsZfTxoI3TlRo/C8xEiND+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2IDhWGthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplpZqeUBw7OrT2tMc8ShUHKXwvI4ga9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258TRq2DO
 ZRxhTxHaCX7Ui1RBm8rApMxs+SVq0vSdBp4pwfAzUYwyzeKl1EguFT3C/LXcNGXQcRenm6Du
 3nLuW/+B3kyNcOd4SqI9Gq2ge3Clj+9X5gdfJW6+eRtm0a73XEIBVsdUl7Tiem0jAuyVsxSL
 2QQ+zEytu4i+UqzVN7/Uhak5nmesXY0RN54A+A8rgaXxcLpDx2xXzZeCGQbMZp/6ZFwFWdCO
 kK1c83BFTpBqaaHTWun2pS1tD/tA3VEM0peanpRJeca2OXLrIY2hxPJa99sFq+pk9H4cQ3NL
 yC2QDsW3OtK05NSv0mv1RWe2m/3+MCVJuIgzlyPBjrN0+9vWGKyi2VEA3D/5O0IEouWR0LpU
 JMsy5nHt7Bm4X1geUWwrAQx8FOBu6nt3N702wcH83wdG9KFoCbLkWd4umEWGauRGpxYEQIFm
 WeK0e+r2LddPWGxcYh8aJ+rBsIhwMDITIq+CKyENYYTOcQsJWdrGR2Cg2bLhwgBd2B2wMkC1
 WqzK57wXR7294w+lFJauNvxIZd0n3tjlAs/tLjwzgi90Kr2WZJmYextDbd6VchgtPnsiFyMq
 753bpLWoz0CALyWSnSGquY7cAFVRUXX8Lir8qS7gMbYeVE4cIzgYteMqY4cl3tNw/4Iy7yWp
 y7lASe1CjPX3BX6FOlDUVg6AJvHVpdjt3MreysqOFejwX84ZoizqqwYcvMKkXMPr4SPFNZ4E
 KsIfduuGPNKRmiV8jgRd8Cl/odjaA6qlUSFOC/8OGozeJtpRgro/N74f1SwqHlSX3Tv7cZu8
 ae90g77QIYYQ1gwBsjhd//ynUi6umIQmbwuUhKQcMVTYkjl7KNjNzf10q0sO8gJJBianmma2
 g+aDA02v+7Ip4NpotDFibrd99WiEvdkH1ocFG7etO7kOS7f92ul4IlBTOfXImyNCDKqoP2vP
 LwHwev9PfsLmEdxn7B9S7s7n7gj49bPpqNBylg2Fnv8cFn2WKhrJWOL3JcTu/QVlKNZowa/R
 mmG5sJeZeeSIMrgHVMceFglY+CE2a1GkzXe961ockDz5Ssx97ubS0RCeRKLjXUFfrdyNYokx
 8YnudIXtFPj2kZ7bI7eg3AG7XmII1wBT74j58MTD4LcgwY2zk1PPM7HASjs7ZDTM9hBPyHG+
 NNPaHYuU1iE+nf/Tg==
IronPort-HdrOrdr: A9a23:RfVbq6qfAdrTj2aO9wmAce8aV5oveYIsimQD101hICG9Ffbo8P
 xG/c5rsSMc7Qx7ZJhOo7y90cW7Lk80lqQU3WByB9mftWDd0QPDQb2KhrGC/xTQXwH46+5Bxe
 NBXsFFebjN5IFB/KXHCd+DYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,224,1631592000"; 
   d="scan'208";a="57533566"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jBhZTZsG5Hq7cTDZR0pKwUzH4TkPo07YWVIwLWGVE9FKeuX1u6XI2AfkrSgJUazHY+yJoM4hBK2FZapbHJrc1p6fp8mbjpW0TDTiucDwsJHaFRwmNQgOgDsA5Ol869lEtPrdXUN71f8ng56V8Y+qPNIJkd2eBxU5ykHqnFMra8cIfnN1cPkqVLGFI6VehAbPdoc197+wBVRgV2X9hTgMki7mY44nmjI8ZkXi9W+J50jnf41dBFdbtBjoHiKJ9gTS7aF4ZndMF+m2jXyIwmQfobhbL7HcpSkNkVTvmbNzZGvfOitOdG/QWX0RroPvopuJPgA5FsBcE6b54eS9hg5nRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=z62eFgG7TJsIfQgs8QdvZn2cNIXsrbyzLqH8IDsikzg=;
 b=XvXGQkaajc6Y2ymEDbkKnorEZhPnfJ5GKu+WHMxUYk6gXTMIHpQjiKhLPS66IMWGntwBvqGnJzwmtLDqi4A32Fw2XlNb2YXwAjj2/6sZI014CafTgXCbQ+ITQN6ygyHZZitYjwKkbIKkJ7HjNevYdnEkvGo3NC+INkJIrjsqgTNvoN/TApudXXANggDwv/fSqEtYPCUKkWGpI4qZlnDHv/BWCWXRK60sTEKE+WD2LNTLT1uLVnN0YIrpJjMrHg2XbPZX2XPSpbm5mFpBAN/57fVzHkEKky42C+D5zaR9R+tSAuYZskVmMW2kFfCj8sbLXO6XTl8SEp2nD0NTWISp/w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=z62eFgG7TJsIfQgs8QdvZn2cNIXsrbyzLqH8IDsikzg=;
 b=IpxRDaolYbLgb5NM/Z1MYmqwBu9GiDlowYJYVfHNAhky6nUAmTrZ5L3vE8kUcosinfAhPqDdarUBoKN86jiV93nvyrTXeJusLYNtO4Us8d3ApNlrSNllgmIPviIXHbYwJ/2lQZBWgNkAt+uGGZlX7qsp9ZR6JEfs0tfxnqtrYLw=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Juergen
 Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Ian Jackson <iwj@xenproject.org>
Subject: [PATCH for-4.16] x86/cpuid: prevent shrinking migrated policies max leaves
Date: Wed, 10 Nov 2021 18:40:59 +0100
Message-ID: <20211110174059.64633-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0016.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::28) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e37cc921-a31d-448d-9fbd-08d9a471471a
X-MS-TrafficTypeDiagnostic: DM6PR03MB4972:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4972DB31CA8822858842212D8F939@DM6PR03MB4972.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: fAWhjFhWxNFTljBBI/IRnmcbmYha5tP620ZghPOt/1pTrPDCB9ZnIO6JOU4TLEOlIt0ZKUyVGeDJPdfoh/FE4RokEnRMEN4KuR7dVjM+jDqkwEYpHKjI1qsYIDvLCjc1nxE0SANWhTn3Z0xklGJ4jp9I25ysKhz21wPG2ER+i7vpBj+R2RnUcRlJtCbpYEbxkugfAf6jLc44oQc4scdT1e1RA1eeuUPaYKbAnuPCBxj4Ibxk3nqKTy1m8xqoAen5zu1GgjP4L83pbOufcxjg41YbkFqkdQ4TehRT2a/5VQlDUweDDYenV5e6qgbEHkv+j2ZrLfVyV5usa0dso2zJpPOydzh2+RGsLUy2bmFxVcZ8aJvG0SWi4A80SI191YLY7Fb643uw7eNw2WgveTm90Oy01f0thQtJi+RewokJiwxJvZs9ndiN3y4kZe8LWH/K8fJ2JkYIoL7ibkMyfSzy86h6k1MWYj5FsEZ3OPzG/AxTQ1k3YtbHLuit3pDuCQO4n4ZK0w2uvo0XfJ4OHwRaV+3lzjVWrkqBePkdHuR3+SykE2elW1wR/Vw7eAJzWshe/LVkFOO1KsTpLcpKGuAiYZZNv8YYtpe6GFcbxb9L/FH//z57PrD7HeP7NpvcxLObvWkarIr+1143vNK68pPEZoUjz3SRrwbCSLb/Z6vwT8szBKcoA0YSjxSpXCNQD6RvnV1Qfx6bOScomI5hh67rUg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6666004)(2906002)(83380400001)(38100700002)(82960400001)(316002)(66556008)(66476007)(1076003)(2616005)(956004)(66946007)(5660300002)(86362001)(8676002)(186003)(26005)(6496006)(36756003)(508600001)(6916009)(54906003)(4326008)(6486002)(8936002)(473944003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Sm5kU1l0Z3BLTytCSzdVYnVOWXR0cDB3amtoeXhYMVo3Zk92ZFlIVTN0cThL?=
 =?utf-8?B?ZFdCeWZYUDk5YUE3UGFHQ2N2bFdXMWhUNHFnb2VkWjZ0a3BFaldMODczMU10?=
 =?utf-8?B?WnZPakUxSTVHaXp3cjNPNjd5Wi90MVBuN3o3SWJGSFdYSzE0MlFzSi9oZmNF?=
 =?utf-8?B?Sm45WGNyYnkwS3ZGRDE2UERHS1RGdXNWaGdDVndVUmNBNmE4KzJZSWFzelJZ?=
 =?utf-8?B?a2ZQTGthZ3NsZUE0eDk0VVpQRXN2dXNtM3VTWnZKMDdPb1VNYndHckJDMkw1?=
 =?utf-8?B?QUh4Qmg0MStIdFNHQk9XQUNIMlEyNm5kZGN5N29tRXY4NlFPZXNDVE5jbDZB?=
 =?utf-8?B?MHhjUzMyZUpucmpSa0hXVUEwRHM0S2VLRUZuTG5MaU94S1B2UTNqSUFvcnlx?=
 =?utf-8?B?VUZUV04xUFgyUWFpS1UrbTQveG1WQlNNREhPV2ZNK0lOOUtvWGYyOXBDT2xO?=
 =?utf-8?B?OTdTSlJtVW9DYXFCM0dnTFJCdm9rTjdzb3dyQVdXM0FYNlFoWHhIKzFWTjVC?=
 =?utf-8?B?ZUwrVUgxTHROVmlONUF5eDlBSEh2MTlWRG5lRkNoV2FHemZHU0tKUVlRQ244?=
 =?utf-8?B?UVpFMzc5SDV1Mm9zbkMzOVBFR1Mwd3NMV0dtK2NyeGp1M2RWK2RENGoraDEy?=
 =?utf-8?B?NVoyUVVtUUVOSDhNT294QWFneUhJeUIvdkdJdWVUczQ1b3kxMlJsV2Vxem8x?=
 =?utf-8?B?SWtHQjNJd3p3ZUU3Qjk2TVVUR3AwaWlBRm5SVUlRMzErNk5IMHg2SGltVmow?=
 =?utf-8?B?Ym9mRmpwMkVoc0oxU3o3RzlXaWY4SXFubmp1NnVnZVZXTENNMHZYSmMwUGhr?=
 =?utf-8?B?czBsdTEvdnIvL3doQTRnNWtQWjVQOXVDVEhycmxSbW42NlV0SlZzYXpjdnJm?=
 =?utf-8?B?ak4zc2ZhUklaT3VvT2w2UjlIL08yRHMwZWI3Rk1OdkY3cUNzd3ZNMSs3TVBq?=
 =?utf-8?B?UW1hVTFCbmlzODVqL0JOaVkrRTI5NXhmem9HdWJtanRYeURQbkxsa0dkRWM0?=
 =?utf-8?B?am55SXVudEZrU3FNVTM0RUgxNEdTbVBFZDVVQzJMWEZtanBHOERLOTdlV25E?=
 =?utf-8?B?RVNsbm9BelNnb0htYWthRklRMVNhYWk2dkZaNG1qUkR2K0VIM0hyZVpLVG9o?=
 =?utf-8?B?ZC8xVjg3WHBvZytxVnIzTnRUZllpa0VSNjJJNEJTVnZlT1dHZEFDdCtSQ1J5?=
 =?utf-8?B?MEVuR2U1TjlnL1FJdUpWZVM4VkhSbmk2Skx3dVQ5d0IxTURESWFJMTg0WGVZ?=
 =?utf-8?B?SWRnck4zZStIcWtqcWMrUG5PN0lhazlRanNSRFJhUzlndjEvQ3NHSjV2L3gr?=
 =?utf-8?B?UzV4N3hLcmJwUFhJK05ibEZiUVRQY1BPTW11OEVEQmJnQ01tV3hlMWVmY0pK?=
 =?utf-8?B?Uy9ScmVhYTAxRHRXYWYyczY1T3gwNlRvL3NDZFF5Q21jZkxmQ2FpOEExYjF1?=
 =?utf-8?B?bUIxNTVxWDNNVkFmNXRTck83SlRDOU5ab00rVDg5WGpvektadVcyNThGMTd6?=
 =?utf-8?B?eWkyRCt2YlJaUDZMYnJXK0IxK0w5NTBzRll3dnh2OHJYbjRZUDVXWUsvdkhE?=
 =?utf-8?B?MFhZUWdRWkhvbC9VelRELytHS016OUtvQ2JhdkZEV2NDZzdOTktNWklnTTdI?=
 =?utf-8?B?QkltR3F4SDI3STZ3aVdYd3pueUpXRE1TNXpGakQ0amgvNDB1bE5uOERtemNK?=
 =?utf-8?B?QUVXYU1ZZFhOajV4bTBsZnhVUjArRi8yanFrU0NGK0MzWEZsSXFtaElWeFNC?=
 =?utf-8?B?dmpIMTEzaTJhdVZXeDBaVWJjakxrVVJvNHNUaHBHV2ZCYWZWVzJ2REtVaVVT?=
 =?utf-8?B?QzloUVBXeTF2WE9JeE90NHFkZG9QYklTTG9WM0pJQU85ekhQbHJZWUtmZGRJ?=
 =?utf-8?B?cERjd3FEUnpzUTVBSEdHTFNPdXRPeGE1UmR1RTFBbnBkNkxheGxZOWRVQWk4?=
 =?utf-8?B?QThSR2c2VmExOGIyQ0xFME5jM09UYm81cW4vcXJiNnFMSlVPOGV6MTc3OW5N?=
 =?utf-8?B?OG1Ra1hwazZ3cjRsWE03UHVnWW51WFBKcDBOVFZScDRPMXZqaEVNTXNaOUZm?=
 =?utf-8?B?Y2F6a2k1MjJSeDErZHNjMko5Vk5wKzAvSHU4dTh4d0lNS05mb2NVNjZXMmZ2?=
 =?utf-8?B?OW91NFZQVENVSGk3Qmg4ZmFabmh5aFdiSmVCc1NuUmZ6Qm1xYkVSZEY4VHhL?=
 =?utf-8?Q?1KFiYEuCpvY+lEQ4kQP+gw0=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: e37cc921-a31d-448d-9fbd-08d9a471471a
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2021 17:41:08.2664
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +6WAJmE/dSoBQ51dvgLeyErR/HGP5oJmM858hZGGlWbdosOc6hvB5jRXdFYDlWJQcIh/vIgMOVlW3R2GScl1fw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4972
X-OriginatorOrg: citrix.com

CPUID policies from guest being migrated shouldn't have the maximum
leaves shrink, as that would be a guest visible change. The hypervisor
has no knowledge on whether a guest has been migrated or is build from
scratch, and hence it must not blindly shrink the CPUID policy in
recalculate_cpuid_policy. Remove the
x86_cpuid_policy_shrink_max_leaves call from recalculate_cpuid_policy.
Removing such call could be seen as a partial revert of 540d911c28.

Instead let the toolstack shrink the policies for newly created
guests, while keeping the previous values for guests that are migrated
in. Note that guests migrated in without a CPUID policy won't get any
kind of shrinking applied.

Fixes: 540d911c28 ('x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

This is a regression introduced in this release cycle, so we should
consider whether we want to take this patch. It's mostly moving a
shrink call from the hypervisor into the toolstack and making it more
selective.

Main risks would be this shrinking somehow altering the recalculations
of the CPUID policy done by the hypervisor. Removing the shirk itself
in the hypervisor shouldn't cause issues as that wasn't done before,
and reporting empty max leaf should be fine.
---
 tools/libs/guest/xg_cpuid_x86.c | 7 +++++++
 xen/arch/x86/cpuid.c            | 2 --
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index 198892ebdf..3ffd5f683b 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -638,6 +638,13 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
         }
     }
 
+    /*
+     * Do not try to shrink the policy if restoring, as that could cause
+     * guest visible changes in the maximum leaf fields.
+     */
+    if ( !restore )
+        x86_cpuid_policy_shrink_max_leaves(p);
+
     rc = x86_cpuid_copy_to_buffer(p, leaves, &nr_leaves);
     if ( rc )
     {
diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 2079a30ae4..8ac55f0806 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -719,8 +719,6 @@ void recalculate_cpuid_policy(struct domain *d)
 
     if ( !p->extd.page1gb )
         p->extd.raw[0x19] = EMPTY_LEAF;
-
-    x86_cpuid_policy_shrink_max_leaves(p);
 }
 
 int init_domain_cpuid_policy(struct domain *d)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 18:17:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 18:17:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224371.387660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mks9i-0001wa-Op; Wed, 10 Nov 2021 18:17:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224371.387660; Wed, 10 Nov 2021 18:17:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mks9i-0001wT-La; Wed, 10 Nov 2021 18:17:06 +0000
Received: by outflank-mailman (input) for mailman id 224371;
 Wed, 10 Nov 2021 18:17:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=76Yc=P5=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mks9i-0001wN-09
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 18:17:06 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 677be753-4252-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 19:17:04 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:45970)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mks9e-000OIO-iV (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 10 Nov 2021 18:17:02 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 8B3FE1FB51;
 Wed, 10 Nov 2021 18:17:02 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 677be753-4252-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Ian Jackson <iwj@xenproject.org>
References: <20211110174059.64633-1-roger.pau@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH for-4.16] x86/cpuid: prevent shrinking migrated policies
 max leaves
Message-ID: <519775a1-ba90-c5c5-82c1-abcd8c4ebb01@srcf.net>
Date: Wed, 10 Nov 2021 18:17:01 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211110174059.64633-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB

On 10/11/2021 17:40, Roger Pau Monne wrote:
> diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpui=
d_x86.c
> index 198892ebdf..3ffd5f683b 100644
> --- a/tools/libs/guest/xg_cpuid_x86.c
> +++ b/tools/libs/guest/xg_cpuid_x86.c
> @@ -638,6 +638,13 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint3=
2_t domid, bool restore,
>          }
>      }
> =20
> +    /*
> +     * Do not try to shrink the policy if restoring, as that could cau=
se
> +     * guest visible changes in the maximum leaf fields.
> +     */
> +    if ( !restore )
> +        x86_cpuid_policy_shrink_max_leaves(p);

Nothing in xc_cpuid_apply_policy() changes any of the max leaves, so
this is dead logic.

xc_cpuid_xend_policy() can in principle change max leaves, but that
logic is all horribly broken and I don't recommend touching it.

I'd just drop this hunk entirely, and retain the deletion in the hypervis=
or.

~Andrew



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 18:24:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 18:24:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224377.387670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mksGr-0003Kc-Gc; Wed, 10 Nov 2021 18:24:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224377.387670; Wed, 10 Nov 2021 18:24:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mksGr-0003KV-Dd; Wed, 10 Nov 2021 18:24:29 +0000
Received: by outflank-mailman (input) for mailman id 224377;
 Wed, 10 Nov 2021 18:24:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mksGq-0003KP-8m
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 18:24:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mksGq-0008B2-5G
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 18:24:28 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mksGq-0008Ti-4I
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 18:24:28 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mksGm-0002DL-IA; Wed, 10 Nov 2021 18:24:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=HinUL7XsycS2d2kjqbipDXEETOyw7kln67zJvl/DxDE=; b=Bv8e7A1gxtSEYs71oXY/Lyr64K
	HG/k7MSRfCvkwZcAQqdRVergx3JqK/yQ+xIk2JZXJXLZGfgPIzZ2hq9daOBXVtXFsPw8tkLefE1pr
	+CxYKLa3gTEf4yNWrJ5TF22s/KYjUgDokYQvkvRxHnA60gnGfoGVEadsJIiiIhep6Q98=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24972.3670.562878.659880@mariner.uk.xensource.com>
Date: Wed, 10 Nov 2021 18:24:22 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    Juergen  Gross <jgross@suse.com>,
    Jan Beulich <jbeulich@suse.com>,
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.16] x86/cpuid: prevent shrinking migrated policies max leaves
In-Reply-To: <20211110174059.64633-1-roger.pau@citrix.com>
References: <20211110174059.64633-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16] x86/cpuid: prevent shrinking migrated policies max leaves"):
> CPUID policies from guest being migrated shouldn't have the maximum
> leaves shrink, as that would be a guest visible change. The hypervisor
> has no knowledge on whether a guest has been migrated or is build from
> scratch, and hence it must not blindly shrink the CPUID policy in
> recalculate_cpuid_policy. Remove the
> x86_cpuid_policy_shrink_max_leaves call from recalculate_cpuid_policy.
> Removing such call could be seen as a partial revert of 540d911c28.
...
> This is a regression introduced in this release cycle, so we should
> consider whether we want to take this patch. It's mostly moving a
> shrink call from the hypervisor into the toolstack and making it more
> selective.
> 
> Main risks would be this shrinking somehow altering the recalculations
> of the CPUID policy done by the hypervisor. Removing the shirk itself
> in the hypervisor shouldn't cause issues as that wasn't done before,
> and reporting empty max leaf should be fine.

Thank you.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 20:10:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 20:10:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224428.387681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mktv6-0006Nn-9d; Wed, 10 Nov 2021 20:10:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224428.387681; Wed, 10 Nov 2021 20:10:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mktv6-0006Ng-6h; Wed, 10 Nov 2021 20:10:08 +0000
Received: by outflank-mailman (input) for mailman id 224428;
 Wed, 10 Nov 2021 20:10:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=inKd=P5=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1mktv5-0006JW-0m
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 20:10:07 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2fe04ed1-4262-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 21:10:03 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPS id 6A51D61241;
 Wed, 10 Nov 2021 20:10:01 +0000 (UTC)
Received: from pdx-korg-docbuild-2.ci.codeaurora.org (localhost.localdomain
 [127.0.0.1])
 by pdx-korg-docbuild-2.ci.codeaurora.org (Postfix) with ESMTP id 6299A60A6B;
 Wed, 10 Nov 2021 20:10:01 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2fe04ed1-4262-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636575001;
	bh=FQGe83vCeAnmCLrYhrsTfIZvLN21VUkB405hfWjK6II=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=LRHsLM/jwVxLgxllCmGK/1KyzR7RplZhzmXWJpntfQWZPBQrMol/+hQ4lcdNVvt9m
	 fNO5131US6zpnHaXlAKLZ8L27kXbmaWTsCb7nohEPFqMyibh4LMaDZkGlT8BrvhOr5
	 SMC+ZPfvpT3seDMDDmDV/5a9w6yIA6NiXeYkNPK/cwcE7D2tiuBcb0bFeAs4XBUNjz
	 x/VcCeWZzPZEIsk6W71/vyy2t3RFHibNOh1diMxIQBUx0d+VX63V8aNqrZ8LDL/Z82
	 PWzwfwF6e2s1Q29ves04zQR/0Ba+S4d4K2UHueeXj9WWFMl/k5YEL8Jy0uZw9oLBIq
	 vfqqtbt6keGIA==
Subject: Re: [GIT PULL] xen: branch for v5.16-rc1
From: pr-tracker-bot@kernel.org
In-Reply-To: <20211109142819.24428-1-jgross@suse.com>
References: <20211109142819.24428-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20211109142819.24428-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-5.16b-rc1-tag
X-PR-Tracked-Commit-Id: 501586ea5974a9dafee41f54a66326addb01a5ac
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: bf98ecbbae3edf3bb3ec254c3e318aa3f75fd15e
Message-Id: <163657500139.19350.1542926242630037690.pr-tracker-bot@kernel.org>
Date: Wed, 10 Nov 2021 20:10:01 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com

The pull request you sent on Tue,  9 Nov 2021 15:28:19 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-5.16b-rc1-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/bf98ecbbae3edf3bb3ec254c3e318aa3f75fd15e

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 20:18:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 20:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224435.387692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mku35-000751-2o; Wed, 10 Nov 2021 20:18:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224435.387692; Wed, 10 Nov 2021 20:18:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mku34-00074u-WD; Wed, 10 Nov 2021 20:18:23 +0000
Received: by outflank-mailman (input) for mailman id 224435;
 Wed, 10 Nov 2021 20:18:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=D3iD=P5=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mku33-00074o-CJ
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 20:18:21 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 576b2436-4263-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 21:18:19 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id EE89A61241;
 Wed, 10 Nov 2021 20:18:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 576b2436-4263-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636575497;
	bh=MBBaOMuhiWKOlN/T8teXsUCorR94NRSfWBNfD2zza7I=;
	h=From:To:Cc:Subject:Date:From;
	b=PDjXAHxahBXNYOtfdksMvSx3Q55R3E9nWKwLdouagA/bQKlXPjti/dxOe/RPSf8Lz
	 AZbxiw6Ls4kovBBENdlfox9PvofF129ZE4dNxz1Ukuh1n5rcx91c4y8Y3qEYC1gGEH
	 aNMfluxA0TBCz81mrsxsO4u4TodiWBm/ENAib7CUy/7DOcPbaJp/WK/0JMUF7i5j5e
	 YDrjMbdOePuCDUcLd1GgwyiDIE6jS4V/B12G+5cyFcAlK2cAm//Zqr3LHkLCAHFRxZ
	 OZRk7Hqe1yc5rsDgNbAjLtW2bUKcpxxOU7PawPtGIyixlQmKhS+LLZy6U9NTls8ZhU
	 BXkxCBkA7SSYg==
From: Stefano Stabellini <sstabellini@kernel.org>
To: julien@xen.org
Cc: sstabellini@kernel.org,
	Penny.Zheng@arm.com,
	Bertrand.Marquis@arm.com,
	Wei.Chen@arm.com,
	iwj@xenproject.org,
	Volodymyr_Babchuk@epam.com,
	xen-devel@lists.xenproject.org,
	Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as reserved-memory
Date: Wed, 10 Nov 2021 12:18:12 -0800
Message-Id: <20211110201812.934306-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

DomUs static-mem ranges are added to the reserved_mem array for
accounting, but they shouldn't be assigned to dom0 as the other regular
reserved-memory ranges in device tree.

In make_memory_nodes, fix the error by skipping banks with xen_domain
set to true in the reserved-memory array. Also make sure to use the
first valid (!xen_domain) start address for the memory node name.

Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation")
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
---
Changes in v3:
- move BUG_ON inside the loop

Changes in v2:
- improve commit message
- improve in-code comment
- update nr_cells appropriately
---
 xen/arch/arm/domain_build.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 9e92b640cd..dafbc13962 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -862,21 +862,25 @@ static int __init make_memory_node(const struct domain *d,
 {
     int res, i;
     int reg_size = addrcells + sizecells;
-    int nr_cells = reg_size * mem->nr_banks;
+    int nr_cells = 0;
     /* Placeholder for memory@ + a 64-bit number + \0 */
     char buf[24];
     __be32 reg[NR_MEM_BANKS * 4 /* Worst case addrcells + sizecells */];
     __be32 *cells;
 
-    BUG_ON(nr_cells >= ARRAY_SIZE(reg));
     if ( mem->nr_banks == 0 )
         return -ENOENT;
 
-    dt_dprintk("Create memory node (reg size %d, nr cells %d)\n",
-               reg_size, nr_cells);
+    /* find first memory range not bound to a Xen domain */
+    for ( i = 0; i < mem->nr_banks && mem->bank[i].xen_domain; i++ )
+        ;
+    if ( i == mem->nr_banks )
+        return 0;
+
+    dt_dprintk("Create memory node\n");
 
     /* ePAPR 3.4 */
-    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[0].start);
+    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[i].start);
     res = fdt_begin_node(fdt, buf);
     if ( res )
         return res;
@@ -886,17 +890,24 @@ static int __init make_memory_node(const struct domain *d,
         return res;
 
     cells = &reg[0];
-    for ( i = 0 ; i < mem->nr_banks; i++ )
+    for ( ; i < mem->nr_banks; i++ )
     {
         u64 start = mem->bank[i].start;
         u64 size = mem->bank[i].size;
 
+        if ( mem->bank[i].xen_domain )
+            continue;
+
         dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
                    i, start, start + size);
 
+        nr_cells += reg_size;
+        BUG_ON(nr_cells >= ARRAY_SIZE(reg));
         dt_child_set_range(&cells, addrcells, sizecells, start, size);
     }
 
+    dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells);
+
     res = fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg));
     if ( res )
         return res;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 20:21:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 20:21:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224442.387704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mku6L-0008RS-Jc; Wed, 10 Nov 2021 20:21:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224442.387704; Wed, 10 Nov 2021 20:21:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mku6L-0008RL-GG; Wed, 10 Nov 2021 20:21:45 +0000
Received: by outflank-mailman (input) for mailman id 224442;
 Wed, 10 Nov 2021 20:21:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z8kS=P5=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mku6K-0008RF-JJ
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 20:21:44 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d192859f-4263-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 21:21:43 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id f8so15476527edy.4
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 12:21:42 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id d3sm441711edr.0.2021.11.10.12.21.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Nov 2021 12:21:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d192859f-4263-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=ePDj+E5Fo0UgxeIg0zOPRAn8/70iDOz7sGUrTy/s0/0=;
        b=OR6BJt2P8UEsZR9oLq2OAeuIEcvPeHhej0r7UGYkDaMeGwGn01izRPUCAMss5VBsXw
         yCsVY6MopXZfRQI3ogoDTNL4dpiTAgttcFm4iUWY02qLLY//WynggQZeC7Y95rH88k/g
         cNdLO+djQhV3bn6vXrPMQTQ6bxPPZJ4lE7mOifOpXVXS2Mb5sN4G+5nLf1R5Hv2sD//l
         O6tnp1QzJL5Ik4hKZHClbGgYCoy1s+n1NG4bM0VZk1JAVWaoD2KFzMmqGdzR9r8MnNLF
         /cna1pycJ2qpVRcbdrK1CDsbrtMZJOygv2x+ptGHpzRU1QtAWeH667dwhH2s23eFu+h2
         Garg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=ePDj+E5Fo0UgxeIg0zOPRAn8/70iDOz7sGUrTy/s0/0=;
        b=L7PCkfP2zOMPJinogMOggsyH5zu7qlPxsGAjwYMQX3od+ezfxEdZjo0grDidC8f/7p
         lLIrrqLRQgjBGxFpOSdLgzrVkcoJNHfPGYV/GNdS5FRerTSAkyy5pgHK63SWvD/bsVcP
         0Tem8OZ60OZLaw+GiA5C5D9Acmh0eRXtTvPv1dm4p6Y90sKzYbj+lO70MOPlqpyvV0Zh
         JxTGS7mZ1FPm933oHyI8dVGFNIZPEAcp0al2z86bbwVxUMa/AV+hN9XQwVrGDBSUmuXq
         yNW8amNRzsDkcGiIIh3KrhAftsom+8eeX251W+9IM/5Gom/fUogOTSU6YInjCn8b/Yn7
         JaWw==
X-Gm-Message-State: AOAM532yxK91kDi60yvdZUiZhTz7bw0Bh4xM/vqvTQkH5gK8XuEcrZW1
	HuUrtkErGvwP+j64IfTElxs=
X-Google-Smtp-Source: ABdhPJzaVT7G2RyDKp26etrOSTUOugc4YeFt2NKR0Vt0fjDA2dG7ngZ+iS/VdPUu927jJDx/P8RFGA==
X-Received: by 2002:a17:907:216e:: with SMTP id rl14mr2387234ejb.368.1636575702193;
        Wed, 10 Nov 2021 12:21:42 -0800 (PST)
Subject: Re: [PATCH V2 4/4] arm/xen: Read extended regions from DT and init
 Xen resource
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Russell King <linux@armlinux.org.uk>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-5-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110271803060.20134@sstabellini-ThinkPad-T480s>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <237f832d-5175-5653-18ee-058a7d7fa7a6@gmail.com>
Date: Wed, 10 Nov 2021 22:21:40 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.21.2110271803060.20134@sstabellini-ThinkPad-T480s>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 28.10.21 04:40, Stefano Stabellini wrote:

Hi Stefano

I am sorry for the late response.

> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> This patch implements arch_xen_unpopulated_init() on Arm where
>> the extended regions (if any) are gathered from DT and inserted
>> into passed Xen resource to be used as unused address space
>> for Xen scratch pages by unpopulated-alloc code.
>>
>> The extended region (safe range) is a region of guest physical
>> address space which is unused and could be safely used to create
>> grant/foreign mappings instead of wasting real RAM pages from
>> the domain memory for establishing these mappings.
>>
>> The extended regions are chosen by the hypervisor at the domain
>> creation time and advertised to it via "reg" property under
>> hypervisor node in the guest device-tree. As region 0 is reserved
>> for grant table space (always present), the indexes for extended
>> regions are 1...N.
>>
>> If arch_xen_unpopulated_init() fails for some reason the default
>> behaviour will be restored (allocate xenballooned pages).
>>
>> This patch also removes XEN_UNPOPULATED_ALLOC dependency on x86.
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>> Changes RFC -> V2:
>>     - new patch, instead of
>>      "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide unallocated space"
>> ---
>>   arch/arm/xen/enlighten.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++
>>   drivers/xen/Kconfig      |   2 +-
>>   2 files changed, 113 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
>> index dea46ec..1a1e0d3 100644
>> --- a/arch/arm/xen/enlighten.c
>> +++ b/arch/arm/xen/enlighten.c
>> @@ -62,6 +62,7 @@ static __read_mostly unsigned int xen_events_irq;
>>   static phys_addr_t xen_grant_frames;
>>   
>>   #define GRANT_TABLE_INDEX   0
>> +#define EXT_REGION_INDEX    1
>>   
>>   uint32_t xen_start_flags;
>>   EXPORT_SYMBOL(xen_start_flags);
>> @@ -303,6 +304,117 @@ static void __init xen_acpi_guest_init(void)
>>   #endif
>>   }
>>   
>> +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>> +int arch_xen_unpopulated_init(struct resource *res)
>> +{
>> +	struct device_node *np;
>> +	struct resource *regs, *tmp_res;
>> +	uint64_t min_gpaddr = -1, max_gpaddr = 0;
>> +	unsigned int i, nr_reg = 0;
>> +	struct range mhp_range;
>> +	int rc;
>> +
>> +	if (!xen_domain())
>> +		return -ENODEV;
>> +
>> +	np = of_find_compatible_node(NULL, NULL, "xen,xen");
>> +	if (WARN_ON(!np))
>> +		return -ENODEV;
>> +
>> +	/* Skip region 0 which is reserved for grant table space */
>> +	while (of_get_address(np, nr_reg + EXT_REGION_INDEX, NULL, NULL))
>> +		nr_reg++;
>> +	if (!nr_reg) {
>> +		pr_err("No extended regions are found\n");
>> +		return -EINVAL;
>> +	}
>> +
>> +	regs = kcalloc(nr_reg, sizeof(*regs), GFP_KERNEL);
>> +	if (!regs)
>> +		return -ENOMEM;
>> +
>> +	/*
>> +	 * Create resource from extended regions provided by the hypervisor to be
>> +	 * used as unused address space for Xen scratch pages.
>> +	 */
>> +	for (i = 0; i < nr_reg; i++) {
>> +		rc = of_address_to_resource(np, i + EXT_REGION_INDEX, &regs[i]);
>> +		if (rc)
>> +			goto err;
>> +
>> +		if (max_gpaddr < regs[i].end)
>> +			max_gpaddr = regs[i].end;
>> +		if (min_gpaddr > regs[i].start)
>> +			min_gpaddr = regs[i].start;
>> +	}
>> +
>> +	/* Check whether the resource range is within the hotpluggable range */
>> +	mhp_range = mhp_get_pluggable_range(true);
>> +	if (min_gpaddr < mhp_range.start)
>> +		min_gpaddr = mhp_range.start;
>> +	if (max_gpaddr > mhp_range.end)
>> +		max_gpaddr = mhp_range.end;
>> +
>> +	res->start = min_gpaddr;
>> +	res->end = max_gpaddr;
>> +
>> +	/*
>> +	 * Mark holes between extended regions as unavailable. The rest of that
>> +	 * address space will be available for the allocation.
>> +	 */
>> +	for (i = 1; i < nr_reg; i++) {
>> +		resource_size_t start, end;
>> +
>> +		start = regs[i - 1].end + 1;
>> +		end = regs[i].start - 1;
>> +
>> +		if (start > (end + 1)) {
> Should this be:
>
> if (start >= end)
>
> ?

Yes, we can do this here (since the checks are equivalent) but ...


>
>
>> +			rc = -EINVAL;
>> +			goto err;
>> +		}
>> +
>> +		/* There is no hole between regions */
>> +		if (start == (end + 1))
> Also here, shouldn't it be:
>
> if (start == end)
>
> ?

    ... not here.

As

"(start == (end + 1))" is equal to "(regs[i - 1].end + 1 == regs[i].start)"

but

"(start == end)" is equal to "(regs[i - 1].end + 1 == regs[i].start - 1)"


>
> I think I am missing again something in termination accounting :-)

If I understand correctly, we need to follow "end = start + size - 1" 
rule, so the "end" is the last address inside a range, but not the 
"first" address outside of a range))


>
>
>> +			continue;
>> +
>> +		/* Check whether the hole range is within the resource range */
>> +		if (start < res->start || end > res->end) {
> By definition I don't think this check is necessary as either condition
> is impossible?


This is a good question, let me please explain.
Not all extended regions provided by the hypervisor can be used here. 
This is because the addressable physical memory range for which the 
linear mapping
could be created has limits on Arm, and maximum addressable range 
depends on the VA space size (CONFIG_ARM64_VA_BITS_XXX). So we decided 
to not filter them in hypervisor as this logic could be quite complex as 
different OS may have different requirement, etc. This means that we 
need to make sure that regions are within the hotpluggable range to 
avoid a failure later on when a region is pre-validated by the memory 
hotplug path.

The following code limits the resource range based on that:

+    /* Check whether the resource range is within the hotpluggable range */
+    mhp_range = mhp_get_pluggable_range(true);
+    if (min_gpaddr < mhp_range.start)
+        min_gpaddr = mhp_range.start;
+    if (max_gpaddr > mhp_range.end)
+        max_gpaddr = mhp_range.end;
+
+    res->start = min_gpaddr;
+    res->end = max_gpaddr;

In current loop (when calculating and inserting holes) we also need to 
make sure that resulting hole range is within the resource range (and 
adjust/skip it if not true) as regs[] used for the calculations contains 
raw regions as they described in DT so not updated. Otherwise 
insert_resource() down the function will return an error for the 
conflicting operations. Yes, I could took a different route and update 
regs[] in advance to adjust/skip non-suitable regions in front, but I 
decided to do it on the fly in the loop here, I thought doing it in 
advance would add some overhead/complexity. What do you think?

So I am afraid this check is necessary here.

For example in my environment the extended regions are:

(XEN) Extended region 0: 0->0x8000000
(XEN) Extended region 1: 0xc000000->0x30000000
(XEN) Extended region 2: 0x40000000->0x47e00000
(XEN) Extended region 3: 0xd0000000->0xe6000000
(XEN) Extended region 4: 0xe7800000->0xec000000
(XEN) Extended region 5: 0xf1200000->0xfd000000
(XEN) Extended region 6: 0x100000000->0x500000000
(XEN) Extended region 7: 0x580000000->0x600000000
(XEN) Extended region 8: 0x680000000->0x700000000
(XEN) Extended region 9: 0x780000000->0x10000000000

*With* the check the holes are:

holes [47e00000 - cfffffff]
holes [e6000000 - e77fffff]
holes [ec000000 - f11fffff]
holes [fd000000 - ffffffff]
holes [500000000 - 57fffffff]
holes [600000000 - 67fffffff]
holes [700000000 - 77fffffff]

And they seem to look correct, you can see that two possible holes 
between extended regions 0-1 (8000000-bffffff) and 1-2 
(30000000-3fffffff) were skipped as they entirely located below res->start
which is 0x40000000 in my case (48-bit VA: 0x40000000 - 0x80003fffffff).

*Without* the check these two holes won't be skipped and as the result 
insert_resource() will fail.


**********


I have one idea how we can simplify filter logic, we can drop all checks 
here (including confusing one) in Arm code and update common code a bit:

diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
index 1a1e0d3..ed5b855 100644
--- a/arch/arm/xen/enlighten.c
+++ b/arch/arm/xen/enlighten.c
@@ -311,7 +311,6 @@ int arch_xen_unpopulated_init(struct resource *res)
         struct resource *regs, *tmp_res;
         uint64_t min_gpaddr = -1, max_gpaddr = 0;
         unsigned int i, nr_reg = 0;
-       struct range mhp_range;
         int rc;

         if (!xen_domain())
@@ -349,13 +348,6 @@ int arch_xen_unpopulated_init(struct resource *res)
                         min_gpaddr = regs[i].start;
         }

-       /* Check whether the resource range is within the hotpluggable 
range */
-       mhp_range = mhp_get_pluggable_range(true);
-       if (min_gpaddr < mhp_range.start)
-               min_gpaddr = mhp_range.start;
-       if (max_gpaddr > mhp_range.end)
-               max_gpaddr = mhp_range.end;
-
         res->start = min_gpaddr;
         res->end = max_gpaddr;

@@ -378,17 +370,6 @@ int arch_xen_unpopulated_init(struct resource *res)
                 if (start == (end + 1))
                         continue;

-               /* Check whether the hole range is within the resource 
range */
-               if (start < res->start || end > res->end) {
-                       if (start < res->start)
-                               start = res->start;
-                       if (end > res->end)
-                               end = res->end;
-
-                       if (start >= (end + 1))
-                               continue;
-               }
-
                 tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
                 if (!tmp_res) {
                         rc = -ENOMEM;
diff --git a/drivers/xen/unpopulated-alloc.c 
b/drivers/xen/unpopulated-alloc.c
index 1f1d8d8..a5d3ebb 100644
--- a/drivers/xen/unpopulated-alloc.c
+++ b/drivers/xen/unpopulated-alloc.c
@@ -39,6 +39,7 @@ static int fill_list(unsigned int nr_pages)
         void *vaddr;
         unsigned int i, alloc_pages = round_up(nr_pages, 
PAGES_PER_SECTION);
         int ret;
+       struct range mhp_range;

         res = kzalloc(sizeof(*res), GFP_KERNEL);
         if (!res)
@@ -47,8 +48,10 @@ static int fill_list(unsigned int nr_pages)
         res->name = "Xen scratch";
         res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;

+       mhp_range = mhp_get_pluggable_range(true);
+
         ret = allocate_resource(target_resource, res,
-                               alloc_pages * PAGE_SIZE, 0, -1,
+                               alloc_pages * PAGE_SIZE, 
mhp_range.start, mhp_range.end,
                                 PAGES_PER_SECTION * PAGE_SIZE, NULL, NULL);
         if (ret < 0) {
                 pr_err("Cannot allocate new IOMEM resource\n");
(END)

I believe, this will work on x86 as arch_get_mappable_range() is not 
implemented there,
and the default option contains exactly what being used currently (0, -1).

struct range __weak arch_get_mappable_range(void)
{
     struct range mhp_range = {
         .start = 0UL,
         .end = -1ULL,
     };
     return mhp_range;
}

And this is going to be more generic and clear, what do you think?


>
>> +			if (start < res->start)
>> +				start = res->start;
>> +			if (end > res->end)
>> +				end = res->end;
>> +
>> +			if (start >= (end + 1))
>> +				continue;
>> +		}
>> +
>> +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>> +		if (!tmp_res) {
>> +			rc = -ENOMEM;
>> +			goto err;
>> +		}
>> +
>> +		tmp_res->name = "Unavailable space";
>> +		tmp_res->start = start;
>> +		tmp_res->end = end;
> Do we need to set any flags so that the system can reuse the memory in
> the hole, e.g. IORESOURCE_MEM? Or is it not necessary?


I might be wrong, but I don't think it is necessary. I don't see how the 
system can reuse memory in the holes as
the Xen resource we are constructing here will be exclusively used by 
the unpopulated-alloc code only. I would leave type-less
resource here. Or I missed something?


>
>
>> +		rc = insert_resource(res, tmp_res);
>> +		if (rc) {
>> +			pr_err("Cannot insert resource [%llx - %llx] %d\n",
>> +					tmp_res->start, tmp_res->end, rc);
> Although it is impossible to enable XEN_UNPOPULATED_ALLOC on arm32 due
> to unmet dependencies, I would like to keep the implementation of
> arch_xen_unpopulated_init 32bit clean.
>
> I am getting build errors like (by forcing arch_xen_unpopulated_init to
> compile on arm32):
>
> ./include/linux/kern_levels.h:5:18: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘resource_size_t {aka unsigned int}’ [-Wformat=]

Thank you for pointing this out. I will use %pR specifier here and in 
the common code where I print the same message.


>
>
>> +			kfree(tmp_res);
>> +			goto err;
>> +		}
>> +	}
>> +
>> +err:
>> +	kfree(regs);
>> +
>> +	return rc;
>> +}
>> +#endif
>> +
>>   static void __init xen_dt_guest_init(void)
>>   {
>>   	struct device_node *xen_node;
>> diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
>> index 1b2c3ac..e6031fc 100644
>> --- a/drivers/xen/Kconfig
>> +++ b/drivers/xen/Kconfig
>> @@ -297,7 +297,7 @@ config XEN_FRONT_PGDIR_SHBUF
>>   
>>   config XEN_UNPOPULATED_ALLOC
>>   	bool "Use unpopulated memory ranges for guest mappings"
>> -	depends on X86 && ZONE_DEVICE
>> +	depends on ZONE_DEVICE
>>   	default XEN_BACKEND || XEN_GNTDEV || XEN_DOM0
>>   	help
>>   	  Use unpopulated memory ranges in order to create mappings for guest

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 20:31:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 20:31:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224447.387714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkuFL-0001TZ-Kq; Wed, 10 Nov 2021 20:31:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224447.387714; Wed, 10 Nov 2021 20:31:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkuFL-0001TS-Hw; Wed, 10 Nov 2021 20:31:03 +0000
Received: by outflank-mailman (input) for mailman id 224447;
 Wed, 10 Nov 2021 20:31:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ssld=P5=oderland.se=josef@srs-se1.protection.inumbo.net>)
 id 1mkuFK-0001TM-G7
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 20:31:02 +0000
Received: from office.oderland.com (office.oderland.com [91.201.60.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e63a258-4265-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 21:31:01 +0100 (CET)
Received: from [155.4.220.82] (port=44276 helo=[10.137.0.14])
 by office.oderland.com with esmtpsa (TLS1.2) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2)
 (envelope-from <josef@oderland.se>)
 id 1mkuFI-0024jk-5i; Wed, 10 Nov 2021 21:31:00 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e63a258-4265-11ec-a9d2-d9f7a1cc8784
Message-ID: <19176a3c-e554-0ff4-2e0b-5813d353d15e@oderland.se>
Date: Wed, 10 Nov 2021 21:30:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101
 Thunderbird/93.0
Subject: Re: [PATCH] PCI/MSI: Move non-mask check back into low level
 accessors
Content-Language: en-US
To: Thomas Gleixner <tglx@linutronix.de>
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org, jgross@suse.com,
 linux-pci@vger.kernel.org, maz@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jandryuk@gmail.com>, David Woodhouse <dwmw2@infradead.org>,
 Peter Jones <pjones@redhat.com>, linux-fbdev@vger.kernel.org,
 Peter Zijlstra <peterz@infradead.org>, LKML <linux-kernel@vger.kernel.org>,
 x86@kernel.org
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se> <87ee7w6bxi.ffs@tglx>
From: Josef Johansson <josef@oderland.se>
In-Reply-To: <87ee7w6bxi.ffs@tglx>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - office.oderland.com
X-AntiAbuse: Original Domain - lists.xenproject.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - oderland.se
X-Get-Message-Sender-Via: office.oderland.com: authenticated_id: josjoh@oderland.se
X-Authenticated-Sender: office.oderland.com: josjoh@oderland.se

On 11/4/21 00:45, Thomas Gleixner wrote:
> On Wed, Oct 27 2021 at 17:29, Josef Johansson wrote:
>
> CC+: EFIFB and scheduler folks
>
>> On 10/27/21 14:01, Josef Johansson wrote:
>>
>> printk: Suspending console(s) (use no_console_suspend to debug)
>> [drm] free PSP TMR buffer
>> PM: suspend devices took 0.428 seconds
>> ACPI: EC: interrupt blocked
>> ACPI: PM: Preparing to enter system sleep state S3
>> ACPI: EC: event blocked
>> ACPI: EC: EC stopped
>> ACPI: PM: Saving platform NVS memory
>> Disabling non-boot CPUs ...
>> ------------[ cut here ]------------
>> WARNING: CPU: 1 PID: 0 at arch/x86/mm/tlb.c:522  switch_mm_irqs_off+0x3c5/0x400
> 	if (WARN_ON_ONCE(__read_cr3() != build_cr3(real_prev->pgd, prev_asid))) {
>
>> Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd_timer nf_tables nfnetlink vfat fat intel_rapl_msr think_lmi firmware_attributes_class wmi_bmof intel_rapl_common pcspkr uvcvideo videobuf2_vmalloc videobuf2_memops joydev videobuf2_v4l2 sp5100_tco k10temp videobuf2_common i2c_piix4 iwlwifi videodev mc cfg80211 thinkpad_acpi ipmi_devintf ucsi_acpi platform_profile typec_ucsi ledtrig_audio ipmi_msghandler r8169 rfkill typec snd wmi soundcore video i2c_scmi fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt trusted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul crc32_pclmul crc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ghash_clmulni_intel ttm serio_raw drm_kms_helper cec sdhci_pci cqhci sdhci xhci_pci drm xhci_pci_renesas nvme xhci_hcd ehci_pci mmc_core ehci_hcd nvme_core xen_acpi_processor xen_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
>> CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W        --------- ---  5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
>> Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17/2021
>> RIP: e030:switch_mm_irqs_off+0x3c5/0x400
>> Code: f0 41 80 65 01 fb ba 01 00 00 00 49 8d b5 60 23 00 00 4c 89 ef 49 c7 85 68 23 00 00 60 1d 08 81 e8 a0 f3 08 00 e9 15 fd ff ff <0f> 0b e8 34 fa ff ff e9 ad fc ff ff 0f 0b e9 31 fe ff ff 0f 0b e9
>> RSP: e02b:ffffc900400f3eb0 EFLAGS: 00010006
>> RAX: 00000001336c6000 RBX: ffff888140660000 RCX: 0000000000000040
>> RDX: ffff8881003027c0 RSI: 0000000000000000 RDI: ffff8881b36c6000
>> RBP: ffffffff829d91c0 R08: 0000000000000000 R09: 0000000000000000
>> R10: 0000000000000008 R11: 0000000000000000 R12: ffff888104e88440
>> R13: ffff8881003027c0 R14: 0000000000000000 R15: 0000000000000001
>> FS:  0000000000000000(0000) GS:ffff888140640000(0000) knlGS:0000000000000000
>> CS:  10000e030 DS: 002b ES: 002b CR0: 0000000080050033
>> CR2: 000060b7d78bf198 CR3: 0000000002810000 CR4: 0000000000050660
>> Call Trace:
>>  switch_mm+0x1c/0x30
>>  idle_task_exit+0x55/0x60
>>  play_dead_common+0xa/0x20
>>  xen_pv_play_dead+0xa/0x60
> So this is when bringing the non boot CPUs down and the switch_mm() code
> discovers inconsistency between CR3 and the expected value.
>
> Would probably be interesting to print the actual values, but XEN folks
> might have an idea.
I can install some print-statements showing some more info here.
I guess I will be getting memory addresses, we already know that CR3 is
0000000002810000

If you have any hints on how to do an effective print statement for this
please do say so :)
I'll try though and see what I find out.
>>  do_idle+0xd1/0xe0
>>  cpu_startup_entry+0x19/0x20
>>  asm_cpu_bringup_and_idle+0x5/0x1000
>> ---[ end trace b068d3cd1b7f5f4b ]---
>> smpboot: CPU 1 is now offline
>> smpboot: CPU 2 is now offline
>> smpboot: CPU 3 is now offline
>> smpboot: CPU 4 is now offline
>> smpboot: CPU 5 is now offline
>> smpboot: CPU 6 is now offline
>> smpboot: CPU 7 is now offline
>> ACPI: PM: Low-level resume complete
>> ACPI: EC: EC started
>> ACPI: PM: Restoring platform NVS memory
>> xen_acpi_processor: Uploading Xen processor PM info
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU1
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU3
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU5
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU7
>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU9
>>



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 20:35:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 20:35:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224453.387726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkuJT-00027O-7w; Wed, 10 Nov 2021 20:35:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224453.387726; Wed, 10 Nov 2021 20:35:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkuJT-00027H-3k; Wed, 10 Nov 2021 20:35:19 +0000
Received: by outflank-mailman (input) for mailman id 224453;
 Wed, 10 Nov 2021 20:35:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkuJS-000275-4L; Wed, 10 Nov 2021 20:35:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkuJR-0002R2-Sq; Wed, 10 Nov 2021 20:35:17 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mkuJR-0005Js-JQ; Wed, 10 Nov 2021 20:35:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mkuJR-0004gI-Iw; Wed, 10 Nov 2021 20:35:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=sGwRvzA/ZNiSrCqqcmUt5SUCmTQySkNHoTkcoJlELF4=; b=NfFWLKnywV3vGUqilOnFvAI7v3
	mVTrzGjrZyRwF9/JesS4pdaYBKroeYPdPLfm6tGZPeo+sdsaJ7eQU0Mm02IOi3oj5Ifk+nExl3a6d
	21MknrxUJyIHJOcIimhlb8zHmUKAnXkQE+QkUvMCJIKwEnvPLfjR2lAJcby5yay5UvRg=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166106-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166106: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-libvirt-vhd:guest-saverestore:fail:heisenbug
    xen-unstable:test-amd64-amd64-examine:memdisk-try-append:fail:heisenbug
    xen-unstable:test-arm64-arm64-xl-seattle:xen-boot:fail:heisenbug
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
X-Osstest-Versions-That:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Nov 2021 20:35:17 +0000

flight 166106 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166106/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-libvirt-vhd 16 guest-saverestore fail in 166099 pass in 166106
 test-amd64-amd64-examine    4 memdisk-try-append fail in 166099 pass in 166106
 test-arm64-arm64-xl-seattle   8 xen-boot                   fail pass in 166099

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl-seattle 15 migrate-support-check fail in 166099 never pass
 test-arm64-arm64-xl-seattle 16 saverestore-support-check fail in 166099 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166099
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166099
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166099
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166099
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166099
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166099
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166099
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166099
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166099
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166099
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166099
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166099
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
baseline version:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2

Last test of basis   166106  2021-11-10 06:55:07 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 20:56:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 20:56:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224461.387739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkudW-0004Qd-Tu; Wed, 10 Nov 2021 20:56:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224461.387739; Wed, 10 Nov 2021 20:56:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkudW-0004QW-Qn; Wed, 10 Nov 2021 20:56:02 +0000
Received: by outflank-mailman (input) for mailman id 224461;
 Wed, 10 Nov 2021 20:56:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=D3iD=P5=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkudV-0004QQ-J3
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 20:56:01 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9abed4ea-4268-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 21:55:59 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 7722660F9E;
 Wed, 10 Nov 2021 20:55:57 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9abed4ea-4268-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636577757;
	bh=QG21js8um63uDNzMq78czGQSSHxcpPkPxozWL0pwq90=;
	h=From:To:Cc:Subject:Date:From;
	b=TnHG4meTexFAOJHdh86b/sUsOz2BF863LPizP6RLwgQ4I8EAcLWv9jh02UTQOPvR9
	 eURfL92JfpRp8sjqV9bEMDGrUxlKZSUL7sS9BuCGk0V2OWOeJagBqOh7DpamhjJNiT
	 UGjqoWAnmLGJXh1QeCKS/xYNVxzi1pv4LheNUv56UILFivQPoxMwRPu5+2Z6BGqJrs
	 7NIsOiUJgXZCwv2ZqZv9n57vtoEC67bcF/e0MHTzABEzGzkz5QnNpe9yrCkRpgqIih
	 cLnuSoXUJR3AG9iifwjWGeAXrjSensElStK3O3jjX8lAo+C35kfmhG/eMVZhR/mf3b
	 5G8/RrapmWOMg==
From: Stefano Stabellini <sstabellini@kernel.org>
To: julien@xen.org
Cc: sstabellini@kernel.org,
	xen-devel@lists.xenproject.org,
	oleksandr_tyshchenko@epam.com,
	iwj@xenproject.org,
	Bertrand.Marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: [PATCH v2 for-4.16] xen/arm: allocate_bank_memory: don't create memory banks of size zero
Date: Wed, 10 Nov 2021 12:55:55 -0800
Message-Id: <20211110205555.945026-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

allocate_bank_memory can be called with a tot_size of zero, as an
example see the implementation of allocate_memory which can call
allocate_bank_memory with a tot_size of zero for the second memory bank.

If tot_size == 0, don't create an empty memory bank, just return
immediately without error. Otherwise a zero-size memory bank will be
added to the domain device tree.

Note that Linux is known to be able to cope with zero-size memory banks,
and Xen more recently gained the ability to do so as well (5a37207df520
"xen/arm: bootfdt: Ignore empty memory bank"). However, there might be
other non-Linux OSes that are not able to cope with empty memory banks
as well as Linux (and now Xen). It would be more robust to avoid
zero-size memory banks unless required.

Moreover, the code to find empty address regions in make_hypervisor_node
in Xen is not able to cope with empty memory banks today and would
result in a Xen crash. This is only a latent bug because
make_hypervisor_node is only called for Dom0 at present and
allocate_memory is only called for DomU at the moment. (But if
make_hypervisor_node was to be called for a DomU, then the Xen crash
would become manifest.)

Fixes: f2931b4233ec ("xen/arm: introduce allocate_memory")
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
Changes in v2:
- improve commit message
- add in-code comment

In regards to inclusion in 4.16.

If we don't fix this issue in 4.16, default usage of Xen+Linux won't be
affected.

However:
- Non-Linux OSes that cannot cope with zero-size memory banks could
  error out. I am not aware of any but there are so many out there in
  embedded it is impossible to tell.
- downstream Xen calling make_hypervisor_node for DomUs will crash
- future Xen calling make_hypervisor_node for DomUs will have to make
  sure to fix this anyway

If we commit the patch in 4.16, we fix these issue. This patch is only 2
lines of code and very easy to review. The risk is extremely low.

Difficult to say what mistakes could have been made in analysis and
preparation because it is a trivial if-zero-return patch, which is
likely to fix latent bugs rather than introducing instability.

---
 xen/arch/arm/domain_build.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 9e92b640cd..fe38a7c73c 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -395,6 +395,14 @@ static bool __init allocate_bank_memory(struct domain *d,
     struct membank *bank;
     unsigned int max_order = ~0;
 
+    /*
+     * allocate_bank_memory can be called with a tot_size of zero for
+     * the second memory bank. It is not an error and we can safely
+     * avoid creating a zero-size memory bank.
+     */
+    if ( tot_size == 0 )
+        return true;
+
     bank = &kinfo->mem.bank[kinfo->mem.nr_banks];
     bank->start = gfn_to_gaddr(sgfn);
     bank->size = tot_size;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 21:13:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 21:13:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224469.387751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkutS-0006mK-Ef; Wed, 10 Nov 2021 21:12:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224469.387751; Wed, 10 Nov 2021 21:12:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkutS-0006mD-Am; Wed, 10 Nov 2021 21:12:30 +0000
Received: by outflank-mailman (input) for mailman id 224469;
 Wed, 10 Nov 2021 21:12:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=D3iD=P5=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mkutR-0006lr-Fq
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 21:12:29 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7a5abe0-426a-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 22:12:27 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 87C8B6124C;
 Wed, 10 Nov 2021 21:12:25 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7a5abe0-426a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636578745;
	bh=XwYpF5Z/eS1NQ694M/y+STxz4kT2S2HKw+hfRGltSz8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kJZXFKvkv0gFs8ItrSJsqK2lu7KE35hzyB87B8gHp3XBTnCzUOuNg1dD87kf9VB2B
	 Qj1UMR/oMxFPbdyrpWHNNN5i9+FbCS2+tEWB8SvDS/jsjEFRA9SDpfXMc7mJRw1rhr
	 CFLzPnXGTikqrWKspz8xxDgUXW0aO5SfyEJFzd03KaFgcRT0Zf6fSos+FXD9DhM7ew
	 3wd9jORsB6j6AoWg9ynJoEyTJXmHCFGNEgbKFezXWyfltyII4dzOZdgb3neFpRKxZq
	 qmxeZI8O4Lty6827pzo8nVD5lJw+D+nTbak8yhIYYuWWNuEyaa/GBzeM/d2P7gtVRY
	 X+5ScLw7DARgg==
Date: Wed, 10 Nov 2021 13:12:23 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Roman Skakun <rm.skakun@gmail.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Roman Skakun <roman_skakun@epam.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrii Anisov <andrii_anisov@epam.com>
Subject: Re: [RFC 1/1] xen/arm: set iommu property for IOMMU-protected
 devices
In-Reply-To: <17547d29-8e15-96f6-2418-5f7ca1c3237d@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111101306180.440530@ubuntu-linux-20-04-desktop>
References: <cover.1633106362.git.roman_skakun@epam.com> <5b101e4e85668bbb18da83044520b0350344f408.1633106362.git.roman_skakun@epam.com> <17547d29-8e15-96f6-2418-5f7ca1c3237d@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 8 Nov 2021, Julien Grall wrote:
> Hi Roman,
> 
> On 04/10/2021 10:54, Roman Skakun wrote:
> > From: Roman Skakun <roman_skakun@epam.com>
> > 
> > Xen is not exposing any IOMMU properties to Dom0.
> > So Dom0 assumes that all it's devices are not protected by IOMMU.
> > 
> > To make Dom0 aware of IOMMU-protected devices, we need to mark
> > them somehow. With this approach Dom0 Linux kernel will be able
> > to selectively disable swiotlb-xen fops for them which will remove
> > unnecessary buffer bounces.
> > 
> > This patch adds mechanism to describe IOMMU-protected devices by
> > adding `xen,behind-iommu` property to relevant device nodes in
> > Dom0 device tree.
> 
> A few years ago, I attempted to disable the swiotlb when Xen configured the
> IOMMU for the device (see [1]). Did you have a chance to go through the
> thread? In particular, I think Ian Campbell suggestion about creating an IOMMU
> binding is quite interesting.
> 
> Stefano, what do you think?

Yes I think it is a good idea. In fact, thinking more about it, it is
really the best option. Regardless of the implementation (swiotlb or
whatever) the device tree description is likely to look similar to the
description of an IOMMU because it is the common pattern shared by all
controllers (reset, power, clocks, etc.) so it makes sense to re-use it.

- there is one controller node (the "IOMMU")
- there is one property under each device node that is protected,
  pointing to the controller with a phandle and optional parameters (in
  the case of IOMMUs it is called "iommus")


From xen-devel-bounces@lists.xenproject.org Wed Nov 10 21:14:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 21:14:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224475.387762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkuvm-0007Mh-SI; Wed, 10 Nov 2021 21:14:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224475.387762; Wed, 10 Nov 2021 21:14:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkuvm-0007Ma-Ow; Wed, 10 Nov 2021 21:14:54 +0000
Received: by outflank-mailman (input) for mailman id 224475;
 Wed, 10 Nov 2021 21:14:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z8kS=P5=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mkuvl-0007MS-Ho
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 21:14:53 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ec7d2ed-426b-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 22:14:52 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id r12so15779670edt.6
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 13:14:52 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id jg32sm413052ejc.43.2021.11.10.13.14.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Nov 2021 13:14:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ec7d2ed-426b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=pVqcXx7C0fqhjhlcziBwzk8JZGrQTdhS7OcL/lTo6mA=;
        b=SWEzlZluf+5KmilXdPadvhOvwQbCAxrok4mr4mlbfCYQas/KyVLZowhXIu+yBN0lJ1
         M/4Tj4aqnrOsayf7DmBqOIDtbdz93Flr4DDhS5meCJ4PIveO7+7Oc64CsLQZSKkiHOtb
         teg3lt6OEcooAnZ9gSwPbasUMJPxp3Ja/wYXETXA0Re9DU/9SEZelC5d+DUHHJpnlN+y
         6ChvBCFHEOXs6eUmKgkl4F8WuKotJ78tBADkEAT7N3ISANwsdTieYKaAOGazN4GsOsm8
         HkSYMdLUi8EieoL/ZMYPDOMRWVzKKVxjXUJMe82a5iKfkTUdAdYWx5uyhEEkd/R5YTbX
         MKkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=pVqcXx7C0fqhjhlcziBwzk8JZGrQTdhS7OcL/lTo6mA=;
        b=y+GMK+4ksuauT4NqCvpEHPuUJS4a9dQhfFzxy67G+hMm9mi8iFb4QlsFiZlscoXhcj
         tATCT2/N0ds7aQw63gaVXL9dwK8tXjo/iYjuXZLhbeyf4w+PSdKcRGNnVOrEOtw/+cej
         qh5ytkzKz8csgYB/yDDsN8JnseIWwdeSlo5CGCi2NWauPNwFFL0h3u1Nwo2NkMlD1Dl5
         csx0YrPTbnby6qlJzj+GLfcNaQcsXZMWqQlC6D5VHLn4xwIwQdRWdqQBl3wiBEPWFsBM
         hVf91D7qSbrfMwMLWRVkbPDQYGZqxaYEqFrH9aqV9LmA3PbOn/45WLzPyo3asAoyCtrb
         Lu4Q==
X-Gm-Message-State: AOAM531lpRvr/hOb42bTp0PJe132CnOnxfv5GUa+oDxPA5+i8uZxTQpL
	PCoKicOVKXH6uNVQKtI945g7yP0Mmpc=
X-Google-Smtp-Source: ABdhPJwpMeQbjcWOlvRSjgZ9auGqmQpAkM4yAKQTG/xVkoHyMiaKsi9RFSNajThJKjQbvExi8/H/zA==
X-Received: by 2002:a17:906:140b:: with SMTP id p11mr2724059ejc.116.1636578891982;
        Wed, 10 Nov 2021 13:14:51 -0800 (PST)
Subject: Re: [PATCH v2 for-4.16] xen/arm: allocate_bank_memory: don't create
 memory banks of size zero
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: julien@xen.org, xen-devel@lists.xenproject.org,
 oleksandr_tyshchenko@epam.com, iwj@xenproject.org, Bertrand.Marquis@arm.com,
 Volodymyr_Babchuk@epam.com,
 Stefano Stabellini <stefano.stabellini@xilinx.com>
References: <20211110205555.945026-1-sstabellini@kernel.org>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <6464f476-758a-5d89-20c5-c7335caaa0af@gmail.com>
Date: Wed, 10 Nov 2021 23:14:50 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <20211110205555.945026-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US


On 10.11.21 22:55, Stefano Stabellini wrote:

Hi Stefano

> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>
> allocate_bank_memory can be called with a tot_size of zero, as an
> example see the implementation of allocate_memory which can call
> allocate_bank_memory with a tot_size of zero for the second memory bank.
>
> If tot_size == 0, don't create an empty memory bank, just return
> immediately without error. Otherwise a zero-size memory bank will be
> added to the domain device tree.
>
> Note that Linux is known to be able to cope with zero-size memory banks,
> and Xen more recently gained the ability to do so as well (5a37207df520
> "xen/arm: bootfdt: Ignore empty memory bank"). However, there might be
> other non-Linux OSes that are not able to cope with empty memory banks
> as well as Linux (and now Xen). It would be more robust to avoid
> zero-size memory banks unless required.
>
> Moreover, the code to find empty address regions in make_hypervisor_node
> in Xen is not able to cope with empty memory banks today and would
> result in a Xen crash. This is only a latent bug because
> make_hypervisor_node is only called for Dom0 at present and
> allocate_memory is only called for DomU at the moment. (But if
> make_hypervisor_node was to be called for a DomU, then the Xen crash
> would become manifest.)
>
> Fixes: f2931b4233ec ("xen/arm: introduce allocate_memory")
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> ---
> Changes in v2:
> - improve commit message
> - add in-code comment
>
> In regards to inclusion in 4.16.
>
> If we don't fix this issue in 4.16, default usage of Xen+Linux won't be
> affected.
>
> However:
> - Non-Linux OSes that cannot cope with zero-size memory banks could
>    error out. I am not aware of any but there are so many out there in
>    embedded it is impossible to tell.
> - downstream Xen calling make_hypervisor_node for DomUs will crash
> - future Xen calling make_hypervisor_node for DomUs will have to make
>    sure to fix this anyway
Regarding calling make_hypervisor_node() for DomU. I am wondering 
whether algorithms (unallocated_memory and memory_holes)
to find extended regions called from make_hypervisor_node() are also 
suitable for DomU? Anyway, this is not something which is directly 
related to this patch.


Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>


>
> If we commit the patch in 4.16, we fix these issue. This patch is only 2
> lines of code and very easy to review. The risk is extremely low.
>
> Difficult to say what mistakes could have been made in analysis and
> preparation because it is a trivial if-zero-return patch, which is
> likely to fix latent bugs rather than introducing instability.
>
> ---
>   xen/arch/arm/domain_build.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 9e92b640cd..fe38a7c73c 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -395,6 +395,14 @@ static bool __init allocate_bank_memory(struct domain *d,
>       struct membank *bank;
>       unsigned int max_order = ~0;
>   
> +    /*
> +     * allocate_bank_memory can be called with a tot_size of zero for
> +     * the second memory bank. It is not an error and we can safely
> +     * avoid creating a zero-size memory bank.
> +     */
> +    if ( tot_size == 0 )
> +        return true;
> +
>       bank = &kinfo->mem.bank[kinfo->mem.nr_banks];
>       bank->start = gfn_to_gaddr(sgfn);
>       bank->size = tot_size;

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 21:52:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 21:52:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224482.387772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkvVw-0002tN-Ob; Wed, 10 Nov 2021 21:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224482.387772; Wed, 10 Nov 2021 21:52:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkvVw-0002tG-LW; Wed, 10 Nov 2021 21:52:16 +0000
Received: by outflank-mailman (input) for mailman id 224482;
 Wed, 10 Nov 2021 21:52:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ssld=P5=oderland.se=josef@srs-se1.protection.inumbo.net>)
 id 1mkvVu-0002tA-Q6
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 21:52:14 +0000
Received: from office.oderland.com (office.oderland.com [91.201.60.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 765a3e92-4270-11ec-a9d2-d9f7a1cc8784;
 Wed, 10 Nov 2021 22:52:13 +0100 (CET)
Received: from [155.4.220.82] (port=44962 helo=[10.137.0.14])
 by office.oderland.com with esmtpsa (TLS1.2) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2)
 (envelope-from <josef@oderland.se>)
 id 1mkvVr-003x6N-T7; Wed, 10 Nov 2021 22:52:11 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 765a3e92-4270-11ec-a9d2-d9f7a1cc8784
Message-ID: <6a7edbff-e255-661d-c68f-c07b7519e421@oderland.se>
Date: Wed, 10 Nov 2021 22:52:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101
 Thunderbird/93.0
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
Content-Language: en-US
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Cc: tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
 x86@kernel.org, hpa@zytor.com, jgross@suse.com
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
From: Josef Johansson <josef@oderland.se>
In-Reply-To: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - office.oderland.com
X-AntiAbuse: Original Domain - lists.xenproject.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - oderland.se
X-Get-Message-Sender-Via: office.oderland.com: authenticated_id: josjoh@oderland.se
X-Authenticated-Sender: office.oderland.com: josjoh@oderland.se

On 11/3/21 00:36, Boris Ostrovsky wrote:
> Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
> introduced cpu_l2c_shared_map mask which is expected to be initialized
> by smp_op.smp_prepare_cpus(). That commit only updated
> native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().
> As result Xen PV guests crash in set_cpu_sibling_map().
>
> While the new mask can be allocated in xen_pv_smp_prepare_cpus() one can
> see that both versions of smp_prepare_cpus ops share a number of common
> operations that can be factored out. So do that instead.
>
> Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> ---
>  arch/x86/include/asm/smp.h |  1 +
>  arch/x86/kernel/smpboot.c  | 19 +++++++++++++------
>  arch/x86/xen/smp_pv.c      | 11 ++---------
>  3 files changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
> index 08b0e90623ad..81a0211a372d 100644
> --- a/arch/x86/include/asm/smp.h
> +++ b/arch/x86/include/asm/smp.h
> @@ -126,6 +126,7 @@ static inline void arch_send_call_function_ipi_mask(const struct cpumask *mask)
>  
>  void cpu_disable_common(void);
>  void native_smp_prepare_boot_cpu(void);
> +void smp_prepare_cpus_common(void);
>  void native_smp_prepare_cpus(unsigned int max_cpus);
>  void calculate_max_logical_packages(void);
>  void native_smp_cpus_done(unsigned int max_cpus);
> diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
> index 8241927addff..d7429198c22f 100644
> --- a/arch/x86/kernel/smpboot.c
> +++ b/arch/x86/kernel/smpboot.c
> @@ -1350,12 +1350,7 @@ static void __init smp_get_logical_apicid(void)
>  		cpu0_logical_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR));
>  }
>  
> -/*
> - * Prepare for SMP bootup.
> - * @max_cpus: configured maximum number of CPUs, It is a legacy parameter
> - *            for common interface support.
> - */
> -void __init native_smp_prepare_cpus(unsigned int max_cpus)
> +void __init smp_prepare_cpus_common(void)
>  {
>  	unsigned int i;
Testing out this patch I got a warning that i is unused. Which it is,
since for_each_possible_cpu(i) is removed.
>  
> @@ -1386,6 +1381,18 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
>  	set_sched_topology(x86_topology);
>  
>  	set_cpu_sibling_map(0);
> +}
> +
> +/*
> + * Prepare for SMP bootup.
> + * @max_cpus: configured maximum number of CPUs, It is a legacy parameter
> + *            for common interface support.
> + */
> +void __init native_smp_prepare_cpus(unsigned int max_cpus)
> +{
> +
> +	smp_prepare_cpus_common();
> +
>  	init_freq_invariance(false, false);
>  	smp_sanity_check();
>  
> diff --git a/arch/x86/xen/smp_pv.c b/arch/x86/xen/smp_pv.c
> index 9e55bcbfcd33..69e91d0d3ca4 100644
> --- a/arch/x86/xen/smp_pv.c
> +++ b/arch/x86/xen/smp_pv.c
> @@ -238,16 +238,9 @@ static void __init xen_pv_smp_prepare_cpus(unsigned int max_cpus)
>  	}
>  	xen_init_lock_cpu(0);
>  
> -	smp_store_boot_cpu_info();
> -	cpu_data(0).x86_max_cores = 1;
> +	smp_prepare_cpus_common();
>  
> -	for_each_possible_cpu(i) {
> -		zalloc_cpumask_var(&per_cpu(cpu_sibling_map, i), GFP_KERNEL);
> -		zalloc_cpumask_var(&per_cpu(cpu_core_map, i), GFP_KERNEL);
> -		zalloc_cpumask_var(&per_cpu(cpu_die_map, i), GFP_KERNEL);
> -		zalloc_cpumask_var(&per_cpu(cpu_llc_shared_map, i), GFP_KERNEL);
> -	}
> -	set_cpu_sibling_map(0);
> +	cpu_data(0).x86_max_cores = 1;
>  
>  	speculative_store_bypass_ht_init();
>  



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 22:14:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 22:14:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224488.387784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkvrL-0005Dc-JG; Wed, 10 Nov 2021 22:14:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224488.387784; Wed, 10 Nov 2021 22:14:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkvrL-0005DV-Fk; Wed, 10 Nov 2021 22:14:23 +0000
Received: by outflank-mailman (input) for mailman id 224488;
 Wed, 10 Nov 2021 22:14:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z8kS=P5=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mkvrK-0005DP-UN
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 22:14:23 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8dc7e621-4273-11ec-9787-a32c541c8605;
 Wed, 10 Nov 2021 23:14:21 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id v11so16352745edc.9
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 14:14:21 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id k23sm551375edv.22.2021.11.10.14.14.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Nov 2021 14:14:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8dc7e621-4273-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=UAiXr5A00XmjUQrBx+VVC7ASne0hspgVd9kPtPcpw5Q=;
        b=LjnOArbjpoQ6zS9yaoJ2hdaftwPip6qOBjbbhBws9AxukEdhMmgXaZDvyu/esokvWq
         zSJWS4JS38i2l92pto4dpesoalYPPu4oiUg1kuRK51XDdaP6iN9KMDZNRl1iwq/alvvS
         1PaJzS5uyTiN6KzsfNElg7m2M1uNPX7XFh/VuOUnw8jHAxxezbE2c1VcEqmxt0pERnRX
         ALDmpljTuuFR/0URg0ncgIKthhWe0CnrMtyJdvwpO1lf0pRDWsr3oox88HWkQGSKFPhX
         m9YBxQNcvux3UNBj3QcKJWBJlRXLaCMx4aSHqKJhxx+S+eY46tM6KyYSM7nY1GtKmZU8
         kizQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=UAiXr5A00XmjUQrBx+VVC7ASne0hspgVd9kPtPcpw5Q=;
        b=19X+TXdf2KhiYkMXrX0q0G9ghtR74Mfx9ny/nfMCg4kcUgftOfyc6Qq7S7RJjRWjIr
         DVk1EfJumJlFGx8c2WGrC+hujUSO0yiZ2bgeAwcCmqmA13Sgdzg7fIR8vv8AAIpIZ9aQ
         Qtvh0GHE6Nr657xP83sG+avdb+9g5Ow7w56L2d+8l6NIMRsfyg9vznuXU4z2nBr+71rj
         PfPTP/htwBrg3mujdm+wOtc+uKGYq7Xo0DSzwbzct1zZbuXqqX2RxamwbWvf2NdNHOmv
         RV+O9qTzYRzPK2htLov7Sdwg87FTqg9qITV7E+0I+0bXURdehFc/vWEpLpaLU8gwz4hY
         6Icg==
X-Gm-Message-State: AOAM532+5CnM7Yh2wNW/xpxRi+VPcZKlSVhgX80NiLL6ahCDi2MhmV/m
	GlZI3/f8QOGl2c91L7OINck=
X-Google-Smtp-Source: ABdhPJwOx7mV7m0UnYBvVcEebFM8Iy5CbeArcA13YswBqi3czGpYyjAVSPWgDUVZrOFBSKbLrJqJjg==
X-Received: by 2002:a17:906:58c6:: with SMTP id e6mr3154447ejs.524.1636582460610;
        Wed, 10 Nov 2021 14:14:20 -0800 (PST)
Subject: Re: [PATCH V2 2/4] arm/xen: Switch to use
 gnttab_setup_auto_xlat_frames() for DT
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Russell King <linux@armlinux.org.uk>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-3-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110271754400.20134@sstabellini-ThinkPad-T480s>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <60cc5b07-5935-aa26-8690-353c779bbab5@gmail.com>
Date: Thu, 11 Nov 2021 00:14:19 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.21.2110271754400.20134@sstabellini-ThinkPad-T480s>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US


On 28.10.21 04:28, Stefano Stabellini wrote:

Hi Stefano

I am sorry for the late response.

> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> Read the start address of the grant table space from DT
>> (region 0).
>>
>> This patch mostly restores behaviour before commit 3cf4095d7446
>> ("arm/xen: Use xen_xlate_map_ballooned_pages to setup grant table")
>> but trying not to break the ACPI support added after that commit.
>> So the patch touches DT part only and leaves the ACPI part with
>> xen_xlate_map_ballooned_pages().
>>
>> This is a preparation for using Xen extended region feature
>> where unused regions of guest physical address space (provided
>> by the hypervisor) will be used to create grant/foreign/whatever
>> mappings instead of wasting real RAM pages from the domain memory
>> for establishing these mappings.
>>
>> The immediate benefit of this change:
>> - Avoid superpage shattering in Xen P2M when establishing
>>    stage-2 mapping (GFN <-> MFN) for the grant table space
>> - Avoid wasting real RAM pages (reducing the amount of memory
>>    usuable) for mapping grant table space
>> - The grant table space is always mapped at the exact
>>    same place (region 0 is reserved for the grant table)
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>> Changes RFC -> V2:
>>     - new patch
>> ---
>>   arch/arm/xen/enlighten.c | 32 +++++++++++++++++++++++++-------
>>   1 file changed, 25 insertions(+), 7 deletions(-)
>>
>> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
>> index 7f1c106b..dea46ec 100644
>> --- a/arch/arm/xen/enlighten.c
>> +++ b/arch/arm/xen/enlighten.c
>> @@ -59,6 +59,9 @@ unsigned long xen_released_pages;
>>   struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
>>   
>>   static __read_mostly unsigned int xen_events_irq;
>> +static phys_addr_t xen_grant_frames;
> __read_mostly

ok


>
>
>> +#define GRANT_TABLE_INDEX   0
>>   
>>   uint32_t xen_start_flags;
>>   EXPORT_SYMBOL(xen_start_flags);
>> @@ -303,6 +306,7 @@ static void __init xen_acpi_guest_init(void)
>>   static void __init xen_dt_guest_init(void)
>>   {
>>   	struct device_node *xen_node;
>> +	struct resource res;
>>   
>>   	xen_node = of_find_compatible_node(NULL, NULL, "xen,xen");
>>   	if (!xen_node) {
>> @@ -310,6 +314,12 @@ static void __init xen_dt_guest_init(void)
>>   		return;
>>   	}
>>   
>> +	if (of_address_to_resource(xen_node, GRANT_TABLE_INDEX, &res)) {
>> +		pr_err("Xen grant table region is not found\n");
>> +		return;
>> +	}
>> +	xen_grant_frames = res.start;
>> +
>>   	xen_events_irq = irq_of_parse_and_map(xen_node, 0);
>>   }
>>   
>> @@ -317,16 +327,20 @@ static int __init xen_guest_init(void)
>>   {
>>   	struct xen_add_to_physmap xatp;
>>   	struct shared_info *shared_info_page = NULL;
>> -	int cpu;
>> +	int rc, cpu;
>>   
>>   	if (!xen_domain())
>>   		return 0;
>>   
>>   	if (!acpi_disabled)
>>   		xen_acpi_guest_init();
>> -	else
>> +	else {
>>   		xen_dt_guest_init();
>>   
>> +		if (!xen_grant_frames)
>> +			return -ENODEV;
> maybe we can avoid this, see below
>
>
>> +	}
>> +
>>   	if (!xen_events_irq) {
>>   		pr_err("Xen event channel interrupt not found\n");
>>   		return -ENODEV;
>> @@ -370,12 +384,16 @@ static int __init xen_guest_init(void)
>>   	for_each_possible_cpu(cpu)
>>   		per_cpu(xen_vcpu_id, cpu) = cpu;
>>   
>> -	xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
>> -	if (xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
>> -					  &xen_auto_xlat_grant_frames.vaddr,
>> -					  xen_auto_xlat_grant_frames.count)) {
>> +	if (!acpi_disabled) {
> To make the code more resilient couldn't we do:
>
> if (!acpi_disabled || !xen_grant_frames) {
I think, we can.

On the one hand, indeed the code more resilient and less change.
 From the other hand if grant table region is not found then something 
weird happened as region 0 is always present in reg property if 
hypervisor node is exposed to the guest.
The behavior before commit 3cf4095d7446 ("arm/xen: Use 
xen_xlate_map_ballooned_pages to setup grant table") was exactly the 
same in the context of the failure if region wasn't found.

...

Well, if we want to make code more resilient, I will update. But, looks 
like we also need to switch actions in xen_dt_guest_init() in order to 
process xen_events_irq before xen_grant_frames, otherwise we may return 
after failing with region and end up not initializing xen_events_irq so 
xen_guest_init() will fail earlier than reaches that check.
What do you think?


>
>> +		xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
>> +		rc = xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
>> +										   &xen_auto_xlat_grant_frames.vaddr,
>> +										   xen_auto_xlat_grant_frames.count);
>> +	} else
>> +		rc = gnttab_setup_auto_xlat_frames(xen_grant_frames);
>> +	if (rc) {
>>   		free_percpu(xen_vcpu_info);
>> -		return -ENOMEM;
>> +		return rc;
>>   	}
>>   	gnttab_init();

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Wed Nov 10 23:14:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Nov 2021 23:14:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224493.387795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkwms-0002SA-3d; Wed, 10 Nov 2021 23:13:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224493.387795; Wed, 10 Nov 2021 23:13:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkwmr-0002S3-VU; Wed, 10 Nov 2021 23:13:49 +0000
Received: by outflank-mailman (input) for mailman id 224493;
 Wed, 10 Nov 2021 23:13:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ssld=P5=oderland.se=josef@srs-se1.protection.inumbo.net>)
 id 1mkwmq-0002Rx-Oh
 for xen-devel@lists.xenproject.org; Wed, 10 Nov 2021 23:13:48 +0000
Received: from office.oderland.com (office.oderland.com [91.201.60.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dadfd068-427b-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 00:13:47 +0100 (CET)
Received: from [155.4.220.82] (port=41166 helo=[10.137.0.14])
 by office.oderland.com with esmtpsa (TLS1.2) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2)
 (envelope-from <josef@oderland.se>)
 id 1mkwmn-005xmh-Hr; Thu, 11 Nov 2021 00:13:45 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dadfd068-427b-11ec-a9d2-d9f7a1cc8784
Message-ID: <607f86a1-9295-aa97-1765-43050be29d8b@oderland.se>
Date: Thu, 11 Nov 2021 00:13:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101
 Thunderbird/93.0
Content-Language: en-US
From: Josef Johansson <josef@oderland.se>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org, jgross@suse.com,
 linux-pci@vger.kernel.org, maz@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jandryuk@gmail.com>, David Woodhouse <dwmw2@infradead.org>,
 Peter Jones <pjones@redhat.com>, linux-fbdev@vger.kernel.org,
 Peter Zijlstra <peterz@infradead.org>, LKML <linux-kernel@vger.kernel.org>,
 x86@kernel.org
References: <90277228-cf14-0cfa-c95e-d42e7d533353@oderland.se>
 <20211025012503.33172-1-jandryuk@gmail.com> <87fssmg8k4.ffs@tglx>
 <87cznqg5k8.ffs@tglx> <d1cc20aa-5c5c-6c7b-2e5d-bc31362ad891@oderland.se>
 <89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se>
 <5b3d4653-0cdf-e098-0a4a-3c5c3ae3977b@oderland.se> <87ee7w6bxi.ffs@tglx>
 <19176a3c-e554-0ff4-2e0b-5813d353d15e@oderland.se>
Subject: Re: [PATCH] PCI/MSI: Move non-mask check back into low level
 accessors
In-Reply-To: <19176a3c-e554-0ff4-2e0b-5813d353d15e@oderland.se>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - office.oderland.com
X-AntiAbuse: Original Domain - lists.xenproject.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - oderland.se
X-Get-Message-Sender-Via: office.oderland.com: authenticated_id: josjoh@oderland.se
X-Authenticated-Sender: office.oderland.com: josjoh@oderland.se

On 11/10/21 21:30, Josef Johansson wrote:
> On 11/4/21 00:45, Thomas Gleixner wrote:
>> On Wed, Oct 27 2021 at 17:29, Josef Johansson wrote:
>>
>> CC+: EFIFB and scheduler folks
>>
>>> On 10/27/21 14:01, Josef Johansson wrote:
>>>
>>> printk: Suspending console(s) (use no_console_suspend to debug)
>>> [drm] free PSP TMR buffer
>>> PM: suspend devices took 0.428 seconds
>>> ACPI: EC: interrupt blocked
>>> ACPI: PM: Preparing to enter system sleep state S3
>>> ACPI: EC: event blocked
>>> ACPI: EC: EC stopped
>>> ACPI: PM: Saving platform NVS memory
>>> Disabling non-boot CPUs ...
>>> ------------[ cut here ]------------
>>> WARNING: CPU: 1 PID: 0 at arch/x86/mm/tlb.c:522  switch_mm_irqs_off+0x3c5/0x400
>> 	if (WARN_ON_ONCE(__read_cr3() != build_cr3(real_prev->pgd, prev_asid))) {
>>
>>> Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd_timer nf_tables nfnetlink vfat fat intel_rapl_msr think_lmi firmware_attributes_class wmi_bmof intel_rapl_common pcspkr uvcvideo videobuf2_vmalloc videobuf2_memops joydev videobuf2_v4l2 sp5100_tco k10temp videobuf2_common i2c_piix4 iwlwifi videodev mc cfg80211 thinkpad_acpi ipmi_devintf ucsi_acpi platform_profile typec_ucsi ledtrig_audio ipmi_msghandler r8169 rfkill typec snd wmi soundcore video i2c_scmi fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt trusted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul crc32_pclmul crc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ghash_clmulni_intel ttm serio_raw drm_kms_helper cec sdhci_pci cqhci sdhci xhci_pci drm xhci_pci_renesas nvme xhci_hcd ehci_pci mmc_core ehci_hcd nvme_core xen_acpi_processor xen_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
>>> CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W        --------- ---  5.15.0-0.rc7.0.fc32.qubes.x86_64 #1
>>> Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET65W(1.34 ) 06/17/2021
>>> RIP: e030:switch_mm_irqs_off+0x3c5/0x400
>>> Code: f0 41 80 65 01 fb ba 01 00 00 00 49 8d b5 60 23 00 00 4c 89 ef 49 c7 85 68 23 00 00 60 1d 08 81 e8 a0 f3 08 00 e9 15 fd ff ff <0f> 0b e8 34 fa ff ff e9 ad fc ff ff 0f 0b e9 31 fe ff ff 0f 0b e9
>>> RSP: e02b:ffffc900400f3eb0 EFLAGS: 00010006
>>> RAX: 00000001336c6000 RBX: ffff888140660000 RCX: 0000000000000040
>>> RDX: ffff8881003027c0 RSI: 0000000000000000 RDI: ffff8881b36c6000
>>> RBP: ffffffff829d91c0 R08: 0000000000000000 R09: 0000000000000000
>>> R10: 0000000000000008 R11: 0000000000000000 R12: ffff888104e88440
>>> R13: ffff8881003027c0 R14: 0000000000000000 R15: 0000000000000001
>>> FS:  0000000000000000(0000) GS:ffff888140640000(0000) knlGS:0000000000000000
>>> CS:  10000e030 DS: 002b ES: 002b CR0: 0000000080050033
>>> CR2: 000060b7d78bf198 CR3: 0000000002810000 CR4: 0000000000050660
>>> Call Trace:
>>>  switch_mm+0x1c/0x30
>>>  idle_task_exit+0x55/0x60
>>>  play_dead_common+0xa/0x20
>>>  xen_pv_play_dead+0xa/0x60
>> So this is when bringing the non boot CPUs down and the switch_mm() code
>> discovers inconsistency between CR3 and the expected value.
>>
>> Would probably be interesting to print the actual values, but XEN folks
>> might have an idea.
> I can install some print-statements showing some more info here.
> I guess I will be getting memory addresses, we already know that CR3 is
> 0000000002810000
>
> If you have any hints on how to do an effective print statement for this
> please do say so :)
> I'll try though and see what I find out.

diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
index 59ba2968af1b..511792852e9e 100644
--- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c
@@ -520,6 +520,10 @@ void switch_mm_irqs_off(struct mm_struct *prev, struct mm_struct *next,
 	 */
 #ifdef CONFIG_DEBUG_VM
 	if (WARN_ON_ONCE(__read_cr3() != build_cr3(real_prev->pgd, prev_asid))) {
+		printk("josef-debug: cr3: %lx, build_cr3: %lx, (%px, %x)",
+			__read_cr3(),
+			build_cr3(real_prev->pgd, prev_asid),
+			real_prev->pgd, prev_asid);
 		/*
 		 * If we were to BUG here, we'd be very likely to kill
 		 * the system so hard that we don't see the call trace.

this patch gave me the three values which where already known,
__read_cr3 = CR3 = 0000000002810000
build_cr3 = RAX = 00000001336c6000
real_prev->pgd = RDI = ffff8881b36c6000
prev_asid = RSI = 0

Not sure what conclusions I should draw though.

>>>  do_idle+0xd1/0xe0
>>>  cpu_startup_entry+0x19/0x20
>>>  asm_cpu_bringup_and_idle+0x5/0x1000
>>> ---[ end trace b068d3cd1b7f5f4b ]---
>>> smpboot: CPU 1 is now offline
>>> smpboot: CPU 2 is now offline
>>> smpboot: CPU 3 is now offline
>>> smpboot: CPU 4 is now offline
>>> smpboot: CPU 5 is now offline
>>> smpboot: CPU 6 is now offline
>>> smpboot: CPU 7 is now offline
>>> ACPI: PM: Low-level resume complete
>>> ACPI: EC: EC started
>>> ACPI: PM: Restoring platform NVS memory
>>> xen_acpi_processor: Uploading Xen processor PM info
>>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU1
>>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU3
>>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU5
>>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU7
>>> xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI CPU9
>>>



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 00:40:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 00:40:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224499.387806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mky8H-00027m-27; Thu, 11 Nov 2021 00:40:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224499.387806; Thu, 11 Nov 2021 00:40:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mky8G-00027f-VF; Thu, 11 Nov 2021 00:40:00 +0000
Received: by outflank-mailman (input) for mailman id 224499;
 Thu, 11 Nov 2021 00:40:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4OkG=P6=google.com=seanjc@srs-se1.protection.inumbo.net>)
 id 1mky8G-00027Z-Fe
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 00:40:00 +0000
Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com
 [2607:f8b0:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e55b5cf8-4287-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 01:39:58 +0100 (CET)
Received: by mail-pf1-x431.google.com with SMTP id g19so4095139pfb.8
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 16:39:58 -0800 (PST)
Received: from google.com (157.214.185.35.bc.googleusercontent.com.
 [35.185.214.157])
 by smtp.gmail.com with ESMTPSA id h194sm750078pfe.156.2021.11.10.16.39.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 10 Nov 2021 16:39:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e55b5cf8-4287-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:in-reply-to;
        bh=GCvgNnriUarmCbicpFHHYqZw6hipmqUHqLUNYcuQ5mQ=;
        b=C/MSXc16d+vnyvPXnpHvWobOFVkGiZtvk8Fqn9KlAR5wdGaXHNSYYEqouCychGdG8p
         5qAR+o3QR3qaB0TDQ3yAC+dSCwOdKvfiEZ3Kln4q4atLvJqPKPRHW1o5zq6Ns5xwkOtC
         ik1lkhQwf39tyN70E9VZseTQvLWw0Txmbjd6Pu8ATSLAClCUTw6YIKKav5QdSu46fQ/5
         +e5c/wEbKgc1jOnG5VvHUJ9ey6iGYkWAk7F4ceZqKKEK8rilWv0ZFkZJXl5cjnWfQIx8
         55tsEZ8ESYtzoMLt6c2A3hOaXpTct4C6eIipQoqRcDMTUY4c5FxHvAnMIbgpRMgbfXry
         LjOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=GCvgNnriUarmCbicpFHHYqZw6hipmqUHqLUNYcuQ5mQ=;
        b=zwJSzdO/y62WKWFrAE5KWAn+f8bmshIBQgVL4YNb9Gn/0Uq6eAD/3kaYd1PDmEY8/U
         TfyHdA7afkN3OZGLz3qQfriu1YirSUN7ekzMg2PkzxLozd8AlgJQaOVECzjmHnq16irh
         pLuvSSY0izkNEI0f4eaNEaKNB4yqJaY3H8OepBRMHeQfyodkkkavU409ZuucSP/7rStJ
         JWn75P1xDSMXCpMRUfNJBUZxpZWyNmLu1hLrOWIezB/XK1m+mGL8Q/viSaW7BeT5jhr+
         S29ypkt9q+/p8DrSG4NvVsgYGesC9ZfnOxVlcqIT1mM1OyyShiHFR8SIcg7vIhNyqdX1
         30Rw==
X-Gm-Message-State: AOAM530ERWjmW14XsAlP9YkH2JS4PruUciyhN9LJnHg7Q92LkB4aMqT/
	jvceqWJT3wSGlfQypc0FoKiGdQ==
X-Google-Smtp-Source: ABdhPJyzWkgci9VXixrCRz+lgwFJsP+1qd2jH9xIE5pUKSl6Qej6NdegD7xki773sUR8p4Puao3+lQ==
X-Received: by 2002:a63:6302:: with SMTP id x2mr1983608pgb.5.1636591196936;
        Wed, 10 Nov 2021 16:39:56 -0800 (PST)
Date: Thu, 11 Nov 2021 00:39:52 +0000
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Like Xu <like.xu.linux@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	James Morse <james.morse@arm.com>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org,
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Artem Kashkanov <artem.kashkanov@intel.com>,
	Zhu Lingshan <lingshan.zhu@intel.com>,
	Juergen Gross <jgross@suse.com>, Ingo Molnar <mingo@redhat.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Vincent Chen <deanbo422@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Greentime Hu <green.hu@gmail.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Marc Zyngier <maz@kernel.org>, Nick Hu <nickhu@andestech.com>,
	Guo Ren <guoren@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>
Subject: Re: [PATCH v3 01/16] perf: Ensure perf_guest_cbs aren't reloaded
 between !NULL check and deref
Message-ID: <YYxmWGB6IUwEu4VZ@google.com>
References: <20210922000533.713300-1-seanjc@google.com>
 <20210922000533.713300-2-seanjc@google.com>
 <77e3a76a-016b-8945-a1d5-aae4075e2147@gmail.com>
 <YYPrst2CUBXLYc9h@google.com>
 <f86fe9cb-bf4b-1c10-e0da-276fbb3f62ee@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <f86fe9cb-bf4b-1c10-e0da-276fbb3f62ee@redhat.com>

On Wed, Nov 10, 2021, Paolo Bonzini wrote:
> On 11/4/21 15:18, Sean Christopherson wrote:
> > If I'm interpeting Paolo's suggestion
> > correctly, he's pointing out that oustanding stores to the function pointers in
> > @cbs need to complete before assigning a non-NULL pointer to perf_guest_cbs,
> > otherwise a perf event handler may see a valid pointer with half-baked callbacks.
> > 
> > I think smp_store_release() with a comment would be appropriate, assuming my
> > above interpretation is correct.
> > 
> 
> Yes, exactly.  It should even be rcu_assign_pointer(), matching the
> synchronize_rcu()

And perf_guest_cbs should be tagged __rcu and accessed accordingly.  Which is
effectively what this version (poorly) implemented with a homebrewed mix of
{READ,WRITE}_ONCE, lockdep(), and synchronize_rcu().

> in patch 1 (and the change can be done in patch 1, too).

Ya, the change needs to go into patch 1.


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224508.387834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVE-0004XO-75; Thu, 11 Nov 2021 02:07:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224508.387834; Thu, 11 Nov 2021 02:07:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVE-0004Wq-0w; Thu, 11 Nov 2021 02:07:48 +0000
Received: by outflank-mailman (input) for mailman id 224508;
 Thu, 11 Nov 2021 02:07:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gswl=P6=flex--seanjc.bounces.google.com=38HqMYQYKCSsZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@srs-se1.protection.inumbo.net>)
 id 1mkzVC-0004E5-Nz
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:46 +0000
Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com
 [2607:f8b0:4864:20::449])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28f337b1-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:07:46 +0100 (CET)
Received: by mail-pf1-x449.google.com with SMTP id
 z187-20020a6233c4000000b0047c2090f1abso2998379pfz.23
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28f337b1-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=hK/bb2+8SYaruhoQBxjUMD9dzEtjE9dODoHgmaxXM04=;
        b=ioMgfZT9xO/74nIuEa5s079HZzqYDthukPpMRSdF0C3awDBWthDsWqAFo50b69aUgk
         Nhl7hmTYeB+KSKGuShd9pnZgSHEJ4YdF59a3n2gw+3Am+iHw8BnPD9PQEuIObPEX1zet
         XT5oCTwKFkgZjUeOaAP52YI/QxstVIlhlvJS+3cp25s9mkhbYvGe1eTarbKtvSx415JI
         ECVQms8ylbLIS/A+wF3YHJcodbwqtGvWDNxp9OhyCccF49POD6LZ1YDg80r7wc3jC1/x
         2UeOF3HXehBTuQGieAJ2PQ8fh4iSC2ZmT1gzNp9Gsi+Io2TQjCObkIi6pMuDLYQvs7JU
         qJOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=hK/bb2+8SYaruhoQBxjUMD9dzEtjE9dODoHgmaxXM04=;
        b=Khl5ghCR0GJbaGA/0hkqQO1pk+cOl5Jw/OSWEqCdhi8qn5hPLhMOmKNC246ANZPuiC
         u2LNTNaAur9zvGGwiXLH62y7GMVtC6aHLBZHh80pH4YncQ/hb5/1bJyJaH1IDo1T2cPT
         fpfEuy7HRZ1BCrR11txlB+xDO2+4CzUsxRybOhbFiEeLBmJi/M3jPaJL6mFKXflOAuTt
         3kEnA0GSikln4F17dQqcXL6Hsq/ZHNeJ36MNZYqt8rlSv/dPLHytprhiOGiganvnzEJL
         QqX03HUjx77UV2rSZyOgjmF+xMmD8bAtZAjFQ9LU5+N9/gySF3fiq38SRTK+TnMSMBWt
         f/sQ==
X-Gm-Message-State: AOAM532YJKmfDWNQYvq0wHE7uarP+Pz5UayReiU8Tkv7eIPlN92r12Y+
	RieZIRmDGf05v4mgTRQmHISpYVNyQR4=
X-Google-Smtp-Source: ABdhPJyQu0wj6xnqaOSUJnCa9iYYs/0X0i20LUCAU5FW0hNQJqyaWntSFAsP1Erw+w1uVAuo6SyrzLgxEvw=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a05:6a00:1822:b0:49f:c55b:6235 with SMTP id
 y34-20020a056a00182200b0049fc55b6235mr3668521pfa.66.1636596464117; Wed, 10
 Nov 2021 18:07:44 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:23 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-3-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 02/17] KVM: x86: Register perf callbacks after calling
 vendor's hardware_setup()
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Wait to register perf callbacks until after doing vendor hardaware setup.
VMX's hardware_setup() configures Intel Processor Trace (PT) mode, and a
future fix to register the Intel PT guest interrupt hook if and only if
Intel PT is exposed to the guest will consume the configured PT mode.

Delaying registration to hardware setup is effectively a nop as KVM's perf
hooks all pivot on the per-CPU current_vcpu, which is non-NULL only when
KVM is handling an IRQ/NMI in a VM-Exit path.  I.e. current_vcpu will be
NULL throughout both kvm_arch_init() and kvm_arch_hardware_setup().

Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Artem Kashkanov <artem.kashkanov@intel.com>
Cc: stable@vger.kernel.org
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kvm/x86.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c1c4e2b05a63..021b2c1ac9f0 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8567,8 +8567,6 @@ int kvm_arch_init(void *opaque)
 
 	kvm_timer_init();
 
-	perf_register_guest_info_callbacks(&kvm_guest_cbs);
-
 	if (boot_cpu_has(X86_FEATURE_XSAVE)) {
 		host_xcr0 = xgetbv(XCR_XFEATURE_ENABLED_MASK);
 		supported_xcr0 = host_xcr0 & KVM_SUPPORTED_XCR0;
@@ -8600,7 +8598,6 @@ void kvm_arch_exit(void)
 		clear_hv_tscchange_cb();
 #endif
 	kvm_lapic_exit();
-	perf_unregister_guest_info_callbacks(&kvm_guest_cbs);
 
 	if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
 		cpufreq_unregister_notifier(&kvmclock_cpufreq_notifier_block,
@@ -11149,6 +11146,8 @@ int kvm_arch_hardware_setup(void *opaque)
 	memcpy(&kvm_x86_ops, ops->runtime_ops, sizeof(kvm_x86_ops));
 	kvm_ops_static_call_update();
 
+	perf_register_guest_info_callbacks(&kvm_guest_cbs);
+
 	if (!kvm_cpu_cap_has(X86_FEATURE_XSAVES))
 		supported_xss = 0;
 
@@ -11176,6 +11175,8 @@ int kvm_arch_hardware_setup(void *opaque)
 
 void kvm_arch_hardware_unsetup(void)
 {
+	perf_unregister_guest_info_callbacks(&kvm_guest_cbs);
+
 	static_call(kvm_x86_hardware_unsetup)();
 }
 
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224512.387877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVK-0005md-UZ; Thu, 11 Nov 2021 02:07:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224512.387877; Thu, 11 Nov 2021 02:07:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVK-0005ka-Ox; Thu, 11 Nov 2021 02:07:54 +0000
Received: by outflank-mailman (input) for mailman id 224512;
 Thu, 11 Nov 2021 02:07:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DPdr=P6=flex--seanjc.bounces.google.com=39nqMYQYKCTEfRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@srs-se1.protection.inumbo.net>)
 id 1mkzVJ-0004E5-KJ
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:53 +0000
Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com
 [2607:f8b0:4864:20::449])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2cc2701e-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:07:52 +0100 (CET)
Received: by mail-pf1-x449.google.com with SMTP id
 c140-20020a624e92000000b0044d3de98438so3024268pfb.14
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2cc2701e-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=Apml5USbtNBNJWAvbbh8XFiyHgbDn3HxurxzTvY68aY=;
        b=rhYQ3kFE6KXMC4z2oCjpsBUhZh8QPd91Te2BBg6hppGmpAYWnod92usQwhqE1PHqNy
         Qld6bdflJylY5QfrRw78JqW10v6SrgdHXD0DLzzuo0mZQeGOKNMxrno8yrpJhT+8UcHm
         N53GcQhAbZkRVhoJpL+siLsuUbu94zleiKRSCPgYgDPDUTac0CjxivJw2PnvrQJGDbff
         QshPZ0fKvljsCWjx/ruRlMDS8ggjyVLQATeLToiTGYm4QnLcjqHseFr7Ub6IVui0++IH
         hRdPcpIVxGDM7LuWsGJsT3gyESzsSdVLxJN4KCqTV7xOr0X86Kr7ewQxn+1Z4UbDPFcB
         GnYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=Apml5USbtNBNJWAvbbh8XFiyHgbDn3HxurxzTvY68aY=;
        b=nCwjTrmu4MVMuyEeoJQQO8okVj8DdU01mc3WWJPQL7n+ttj4PQvALPGV75xXSqWlNN
         BJstGARO6IOKg1ddxIsFexntTA9HeWxnyhcEwXgXqWubZE/7nRm3Jng16YtByAalCGLF
         y51bg4ah7KuTxLt6zk0OEz69dAphIhCrwMz6QqgP10jb1c2ySauyouax+g6DcLaEnqmN
         lR/f5OO/IRYlpNL1BPiKyotQ6CnkD3wQr6wlzoVDccFBTS8ZdL5b9WeVgMIsJDJbfg0a
         4LbdxsQEDNtdH6bHARSqU0+cdE98tfiRlKzTvuCkEAfXOW0hPvkXGzRzonQimanJR4VL
         mRzQ==
X-Gm-Message-State: AOAM531q2o9EkCPM0sxJ+nOgaCcxutWXkrmBL1HAAkKayb67Z/9MRDWo
	08YjZC8PE2SWAqEiXmtBQ54w8cI5Jyg=
X-Google-Smtp-Source: ABdhPJxBzNsPLY8AxAvZLIxLbhKZwdFhZqffL4IBnUtCd6ZihI2BNbkC+QMK4Jjyy7JxJSfimd7zSjX02Zg=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:90a:9dca:: with SMTP id
 x10mr22330561pjv.170.1636596470963; Wed, 10 Nov 2021 18:07:50 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:27 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-7-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 06/17] perf/core: Rework guest callbacks to prepare for
 static_call support
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

From: Like Xu <like.xu@linux.intel.com>

To prepare for using static_calls to optimize perf's guest callbacks,
replace ->is_in_guest and ->is_user_mode with a new multiplexed hook
->state, tweak ->handle_intel_pt_intr to play nice with being called when
there is no active guest, and drop "guest" from ->get_guest_ip.

Return '0' from ->state and ->handle_intel_pt_intr to indicate "not in
guest" so that DEFINE_STATIC_CALL_RET0 can be used to define the static
calls, i.e. no callback == !guest.

Suggested-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Originally-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Like Xu <like.xu@linux.intel.com>
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
[sean: extracted from static_call patch, fixed get_ip() bug, wrote changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
 arch/arm64/kernel/perf_callchain.c | 13 +++++-----
 arch/arm64/kvm/perf.c              | 35 +++++++++++---------------
 arch/x86/events/core.c             | 13 +++++-----
 arch/x86/events/intel/core.c       |  5 +---
 arch/x86/include/asm/kvm_host.h    |  2 +-
 arch/x86/kvm/pmu.c                 |  2 +-
 arch/x86/kvm/x86.c                 | 40 ++++++++++++++++--------------
 arch/x86/xen/pmu.c                 | 32 ++++++++++--------------
 include/linux/perf_event.h         | 10 +++++---
 9 files changed, 73 insertions(+), 79 deletions(-)

diff --git a/arch/arm64/kernel/perf_callchain.c b/arch/arm64/kernel/perf_callchain.c
index 86d9f2013172..274dc3e11b6d 100644
--- a/arch/arm64/kernel/perf_callchain.c
+++ b/arch/arm64/kernel/perf_callchain.c
@@ -104,7 +104,7 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 {
 	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->state()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -152,7 +152,7 @@ void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe frame;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->state()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -165,8 +165,8 @@ unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
 	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 
-	if (guest_cbs && guest_cbs->is_in_guest())
-		return guest_cbs->get_guest_ip();
+	if (guest_cbs && guest_cbs->state())
+		return guest_cbs->get_ip();
 
 	return instruction_pointer(regs);
 }
@@ -174,10 +174,11 @@ unsigned long perf_instruction_pointer(struct pt_regs *regs)
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
 	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+	unsigned int guest_state = guest_cbs ? guest_cbs->state() : 0;
 	int misc = 0;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		if (guest_cbs->is_user_mode())
+	if (guest_state) {
+		if (guest_state & PERF_GUEST_USER)
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
diff --git a/arch/arm64/kvm/perf.c b/arch/arm64/kvm/perf.c
index a0d660cf889e..dfa9bce8559e 100644
--- a/arch/arm64/kvm/perf.c
+++ b/arch/arm64/kvm/perf.c
@@ -13,39 +13,34 @@
 
 DEFINE_STATIC_KEY_FALSE(kvm_arm_pmu_available);
 
-static int kvm_is_in_guest(void)
+static unsigned int kvm_guest_state(void)
 {
-        return kvm_get_running_vcpu() != NULL;
-}
+	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
+	unsigned int state;
 
-static int kvm_is_user_mode(void)
-{
-	struct kvm_vcpu *vcpu;
-
-	vcpu = kvm_get_running_vcpu();
+	if (!vcpu)
+		return 0;
 
-	if (vcpu)
-		return !vcpu_mode_priv(vcpu);
+	state = PERF_GUEST_ACTIVE;
+	if (!vcpu_mode_priv(vcpu))
+		state |= PERF_GUEST_USER;
 
-	return 0;
+	return state;
 }
 
 static unsigned long kvm_get_guest_ip(void)
 {
-	struct kvm_vcpu *vcpu;
+	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
 
-	vcpu = kvm_get_running_vcpu();
+	if (WARN_ON_ONCE(!vcpu))
+		return 0;
 
-	if (vcpu)
-		return *vcpu_pc(vcpu);
-
-	return 0;
+	return *vcpu_pc(vcpu);
 }
 
 static struct perf_guest_info_callbacks kvm_guest_cbs = {
-	.is_in_guest	= kvm_is_in_guest,
-	.is_user_mode	= kvm_is_user_mode,
-	.get_guest_ip	= kvm_get_guest_ip,
+	.state		= kvm_guest_state,
+	.get_ip		= kvm_get_guest_ip,
 };
 
 void kvm_perf_init(void)
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 32cec290d3ad..e29312a1003a 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2772,7 +2772,7 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 	struct unwind_state state;
 	unsigned long addr;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->state()) {
 		/* TODO: We don't support guest os callchain now */
 		return;
 	}
@@ -2876,7 +2876,7 @@ perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs
 	struct stack_frame frame;
 	const struct stack_frame __user *fp;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->state()) {
 		/* TODO: We don't support guest os callchain now */
 		return;
 	}
@@ -2955,8 +2955,8 @@ unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
 	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 
-	if (guest_cbs && guest_cbs->is_in_guest())
-		return guest_cbs->get_guest_ip();
+	if (guest_cbs && guest_cbs->state())
+		return guest_cbs->get_ip();
 
 	return regs->ip + code_segment_base(regs);
 }
@@ -2964,10 +2964,11 @@ unsigned long perf_instruction_pointer(struct pt_regs *regs)
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
 	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+	unsigned int guest_state = guest_cbs ? guest_cbs->state() : 0;
 	int misc = 0;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		if (guest_cbs->is_user_mode())
+	if (guest_state) {
+		if (guest_state & PERF_GUEST_USER)
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index cde29bd5bb53..24adbd6282d4 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2906,10 +2906,7 @@ static int handle_pmi_common(struct pt_regs *regs, u64 status)
 		handled++;
 
 		guest_cbs = perf_get_guest_cbs();
-		if (unlikely(guest_cbs && guest_cbs->is_in_guest() &&
-			     guest_cbs->handle_intel_pt_intr))
-			guest_cbs->handle_intel_pt_intr();
-		else
+		if (likely(!guest_cbs || !guest_cbs->handle_intel_pt_intr()))
 			intel_pt_interrupt();
 	}
 
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index bf0a9ce53750..112ffb355552 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1893,7 +1893,7 @@ int kvm_skip_emulated_instruction(struct kvm_vcpu *vcpu);
 int kvm_complete_insn_gp(struct kvm_vcpu *vcpu, int err);
 void __kvm_request_immediate_exit(struct kvm_vcpu *vcpu);
 
-int kvm_is_in_guest(void);
+unsigned int kvm_guest_state(void);
 
 void __user *__x86_set_memory_region(struct kvm *kvm, int id, gpa_t gpa,
 				     u32 size);
diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c
index 0772bad9165c..5b68d4188de0 100644
--- a/arch/x86/kvm/pmu.c
+++ b/arch/x86/kvm/pmu.c
@@ -87,7 +87,7 @@ static void kvm_perf_overflow_intr(struct perf_event *perf_event,
 		 * woken up. So we should wake it, but this is impossible from
 		 * NMI context. Do it from irq work instead.
 		 */
-		if (!kvm_is_in_guest())
+		if (!kvm_guest_state())
 			irq_work_queue(&pmc_to_pmu(pmc)->irq_work);
 		else
 			kvm_make_request(KVM_REQ_PMI, pmc->vcpu);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 021d3f5364b2..ceb09d78277e 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8413,44 +8413,48 @@ static void kvm_timer_init(void)
 DEFINE_PER_CPU(struct kvm_vcpu *, current_vcpu);
 EXPORT_PER_CPU_SYMBOL_GPL(current_vcpu);
 
-int kvm_is_in_guest(void)
+unsigned int kvm_guest_state(void)
 {
-	return __this_cpu_read(current_vcpu) != NULL;
-}
+	struct kvm_vcpu *vcpu = __this_cpu_read(current_vcpu);
+	unsigned int state;
 
-static int kvm_is_user_mode(void)
-{
-	int user_mode = 3;
+	if (!vcpu)
+		return 0;
 
-	if (__this_cpu_read(current_vcpu))
-		user_mode = static_call(kvm_x86_get_cpl)(__this_cpu_read(current_vcpu));
+	state = PERF_GUEST_ACTIVE;
+	if (static_call(kvm_x86_get_cpl)(vcpu))
+		state |= PERF_GUEST_USER;
 
-	return user_mode != 0;
+	return state;
 }
 
-static unsigned long kvm_get_guest_ip(void)
+static unsigned long kvm_guest_get_ip(void)
 {
-	unsigned long ip = 0;
+	struct kvm_vcpu *vcpu = __this_cpu_read(current_vcpu);
 
-	if (__this_cpu_read(current_vcpu))
-		ip = kvm_rip_read(__this_cpu_read(current_vcpu));
+	if (WARN_ON_ONCE(!vcpu))
+		return 0;
 
-	return ip;
+	return kvm_rip_read(vcpu);
 }
 
-static void kvm_handle_intel_pt_intr(void)
+static unsigned int kvm_handle_intel_pt_intr(void)
 {
 	struct kvm_vcpu *vcpu = __this_cpu_read(current_vcpu);
 
+	/* '0' on failure so that the !PT case can use a RET0 static call. */
+	if (!vcpu)
+		return 0;
+
 	kvm_make_request(KVM_REQ_PMI, vcpu);
 	__set_bit(MSR_CORE_PERF_GLOBAL_OVF_CTRL_TRACE_TOPA_PMI_BIT,
 			(unsigned long *)&vcpu->arch.pmu.global_status);
+	return 1;
 }
 
 static struct perf_guest_info_callbacks kvm_guest_cbs = {
-	.is_in_guest		= kvm_is_in_guest,
-	.is_user_mode		= kvm_is_user_mode,
-	.get_guest_ip		= kvm_get_guest_ip,
+	.state			= kvm_guest_state,
+	.get_ip			= kvm_guest_get_ip,
 	.handle_intel_pt_intr	= NULL,
 };
 
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index e13b0b49fcdf..89dd6b1708b0 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -413,34 +413,29 @@ int pmu_apic_update(uint32_t val)
 }
 
 /* perf callbacks */
-static int xen_is_in_guest(void)
+static unsigned int xen_guest_state(void)
 {
 	const struct xen_pmu_data *xenpmu_data = get_xenpmu_data();
+	unsigned int state = 0;
 
 	if (!xenpmu_data) {
 		pr_warn_once("%s: pmudata not initialized\n", __func__);
-		return 0;
+		return state;
 	}
 
 	if (!xen_initial_domain() || (xenpmu_data->domain_id >= DOMID_SELF))
-		return 0;
+		return state;
 
-	return 1;
-}
+	state |= PERF_GUEST_ACTIVE;
 
-static int xen_is_user_mode(void)
-{
-	const struct xen_pmu_data *xenpmu_data = get_xenpmu_data();
-
-	if (!xenpmu_data) {
-		pr_warn_once("%s: pmudata not initialized\n", __func__);
-		return 0;
+	if (xenpmu_data->pmu.pmu_flags & PMU_SAMPLE_PV) {
+		if (xenpmu_data->pmu.pmu_flags & PMU_SAMPLE_USER)
+			state |= PERF_GUEST_USER;
+	} else if (xenpmu_data->pmu.r.regs.cpl & 3) {
+		state |= PERF_GUEST_USER;
 	}
 
-	if (xenpmu_data->pmu.pmu_flags & PMU_SAMPLE_PV)
-		return (xenpmu_data->pmu.pmu_flags & PMU_SAMPLE_USER);
-	else
-		return !!(xenpmu_data->pmu.r.regs.cpl & 3);
+	return state;
 }
 
 static unsigned long xen_get_guest_ip(void)
@@ -456,9 +451,8 @@ static unsigned long xen_get_guest_ip(void)
 }
 
 static struct perf_guest_info_callbacks xen_guest_cbs = {
-	.is_in_guest            = xen_is_in_guest,
-	.is_user_mode           = xen_is_user_mode,
-	.get_guest_ip           = xen_get_guest_ip,
+	.state                  = xen_guest_state,
+	.get_ip			= xen_get_guest_ip,
 };
 
 /* Convert registers from Xen's format to Linux' */
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 98c204488496..5e6b346d62a7 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -26,11 +26,13 @@
 # include <asm/local64.h>
 #endif
 
+#define PERF_GUEST_ACTIVE	0x01
+#define PERF_GUEST_USER	0x02
+
 struct perf_guest_info_callbacks {
-	int				(*is_in_guest)(void);
-	int				(*is_user_mode)(void);
-	unsigned long			(*get_guest_ip)(void);
-	void				(*handle_intel_pt_intr)(void);
+	unsigned int			(*state)(void);
+	unsigned long			(*get_ip)(void);
+	unsigned int			(*handle_intel_pt_intr)(void);
 };
 
 #ifdef CONFIG_HAVE_HW_BREAKPOINT
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224510.387860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVH-0005Jx-TW; Thu, 11 Nov 2021 02:07:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224510.387860; Thu, 11 Nov 2021 02:07:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVH-0005Jn-Ph; Thu, 11 Nov 2021 02:07:51 +0000
Received: by outflank-mailman (input) for mailman id 224510;
 Thu, 11 Nov 2021 02:07:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sAZz=P6=flex--seanjc.bounces.google.com=383qMYQYKCS4cOKXTMQYYQVO.MYWhOX-NOfOVVScdc.hOXZbYTOMd.YbQ@srs-se1.protection.inumbo.net>)
 id 1mkzVG-0004E5-7c
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:50 +0000
Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com
 [2607:f8b0:4864:20::104a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2af735c2-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:07:49 +0100 (CET)
Received: by mail-pj1-x104a.google.com with SMTP id
 mv1-20020a17090b198100b001a67d5901d2so2244636pjb.7
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2af735c2-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=DNEJMiC41kCWSvjrSbsYPKu48koGNg9eaEA4CYVtGPE=;
        b=lN9dbHUXsH8Tc6p9Adl8lbMoeDNB+DpcdkzvJsiYWajukqp7JHaiROFxxVamx2qkkl
         r2SnfIc2sXOJolTNVRq1W01ohN3GMytYHwubZTui3l319V5sxT9ObKn1QBwyTnMb284v
         hLc2jIkhFME9t4iwv/zI0IzUVG6jEPA9tp78Ynhu1atKLThDvreArgfx5GzrViTjp+qa
         VACc6nxvSn3yCwBWbJLu2n5s/3NV9PmGNl71Oc/A7c5r/Y6ERFffeGHkwKy1kNBPgGY0
         nKNghVWkhqHfqG4J+/0YWo0mep8gbqVfHSnugXbPNv9aKnaSvUjvNUfjBzjeClztPVGK
         m0gQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=DNEJMiC41kCWSvjrSbsYPKu48koGNg9eaEA4CYVtGPE=;
        b=MzKfBWB880RKFuqzf6e9OE9LNcxZWYCsxhxyTcNeiGRzWscJXgt3I+m0nmmaavjV+z
         4k/uJxX3fQ/zMTfKKEYhnt5Zwjg5TCK2xfxw4sloF+ydUhznSp3+dRIbeslH2ADq2hAr
         H9CZ4zBJj+yQv0mOX2S9amogSOQWyOD4uIpQGp7Rn8axTaEK50qGqCg1ONm32sMYHQX7
         7zpACW8gAKfBIpbl9h0dhWiN1rioKAyY+5HbUZ6TfOuLRqdmF6ZUuZMnNRtORBiF9ZSh
         AdhGAX4CE+R4YIjfEYWihZrNKV7exyGeb0d2nSG8RFlcvCdVqWldWqy7ARRy8XD7KJnH
         eV6w==
X-Gm-Message-State: AOAM532c4k2Q15QqHRm5gzAhDAcTA5qlzMe4BHQahQGRsB4+6CpswgVC
	ltmPp6tt45Be7BfGt5/IA1JhL8TAcdY=
X-Google-Smtp-Source: ABdhPJxgKacIbm4rwxB8wdBVtIQmh4wzpsqRsvLbS9weat9sq8FRm8JO63zXMo/wxWp2uVYXVNYoVTa8dnQ=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a05:6a00:a8e:b0:480:ab08:1568 with SMTP id
 b14-20020a056a000a8e00b00480ab081568mr3536244pfl.28.1636596467847; Wed, 10
 Nov 2021 18:07:47 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:25 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-5-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 04/17] perf: Stop pretending that perf can handle multiple
 guest callbacks
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Drop the 'int' return value from the perf (un)register callbacks helpers
and stop pretending perf can support multiple callbacks.  The 'int'
returns are not future proofing anything as none of the callers take
action on an error.  It's also not obvious that there will ever be
co-tenant hypervisors, and if there are, that allowing multiple callbacks
to be registered is desirable or even correct.

Opportunistically rename callbacks=>cbs in the affected declarations to
match their definitions.

No functional change intended.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/arm64/include/asm/kvm_host.h |  4 ++--
 arch/arm64/kvm/perf.c             |  8 ++++----
 include/linux/perf_event.h        | 12 ++++++------
 kernel/events/core.c              | 15 ++++-----------
 4 files changed, 16 insertions(+), 23 deletions(-)

diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index 4be8486042a7..5a76d9a76fd9 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -675,8 +675,8 @@ unsigned long kvm_mmio_read_buf(const void *buf, unsigned int len);
 int kvm_handle_mmio_return(struct kvm_vcpu *vcpu);
 int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa);
 
-int kvm_perf_init(void);
-int kvm_perf_teardown(void);
+void kvm_perf_init(void);
+void kvm_perf_teardown(void);
 
 long kvm_hypercall_pv_features(struct kvm_vcpu *vcpu);
 gpa_t kvm_init_stolen_time(struct kvm_vcpu *vcpu);
diff --git a/arch/arm64/kvm/perf.c b/arch/arm64/kvm/perf.c
index c84fe24b2ea1..a0d660cf889e 100644
--- a/arch/arm64/kvm/perf.c
+++ b/arch/arm64/kvm/perf.c
@@ -48,12 +48,12 @@ static struct perf_guest_info_callbacks kvm_guest_cbs = {
 	.get_guest_ip	= kvm_get_guest_ip,
 };
 
-int kvm_perf_init(void)
+void kvm_perf_init(void)
 {
-	return perf_register_guest_info_callbacks(&kvm_guest_cbs);
+	perf_register_guest_info_callbacks(&kvm_guest_cbs);
 }
 
-int kvm_perf_teardown(void)
+void kvm_perf_teardown(void)
 {
-	return perf_unregister_guest_info_callbacks(&kvm_guest_cbs);
+	perf_unregister_guest_info_callbacks(&kvm_guest_cbs);
 }
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 318c489b735b..98c204488496 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1252,8 +1252,8 @@ static inline struct perf_guest_info_callbacks *perf_get_guest_cbs(void)
 	 */
 	return rcu_dereference(perf_guest_cbs);
 }
-extern int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks);
-extern int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks);
+extern void perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
+extern void perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
 
 extern void perf_event_exec(void);
 extern void perf_event_comm(struct task_struct *tsk, bool exec);
@@ -1497,10 +1497,10 @@ perf_sw_event(u32 event_id, u64 nr, struct pt_regs *regs, u64 addr)	{ }
 static inline void
 perf_bp_event(struct perf_event *event, void *data)			{ }
 
-static inline int perf_register_guest_info_callbacks
-(struct perf_guest_info_callbacks *callbacks)				{ return 0; }
-static inline int perf_unregister_guest_info_callbacks
-(struct perf_guest_info_callbacks *callbacks)				{ return 0; }
+static inline void perf_register_guest_info_callbacks
+(struct perf_guest_info_callbacks *cbs)					{ }
+static inline void perf_unregister_guest_info_callbacks
+(struct perf_guest_info_callbacks *cbs)					{ }
 
 static inline void perf_event_mmap(struct vm_area_struct *vma)		{ }
 
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 0cc775f702f8..eb6b9cfd0054 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -6521,31 +6521,24 @@ static void perf_pending_event(struct irq_work *entry)
 		perf_swevent_put_recursion_context(rctx);
 }
 
-/*
- * We assume there is only KVM supporting the callbacks.
- * Later on, we might change it to a list if there is
- * another virtualization implementation supporting the callbacks.
- */
 struct perf_guest_info_callbacks __rcu *perf_guest_cbs;
 
-int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
+void perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
 {
 	if (WARN_ON_ONCE(rcu_access_pointer(perf_guest_cbs)))
-		return -EBUSY;
+		return;
 
 	rcu_assign_pointer(perf_guest_cbs, cbs);
-	return 0;
 }
 EXPORT_SYMBOL_GPL(perf_register_guest_info_callbacks);
 
-int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
+void perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
 {
 	if (WARN_ON_ONCE(rcu_access_pointer(perf_guest_cbs) != cbs))
-		return -EINVAL;
+		return;
 
 	rcu_assign_pointer(perf_guest_cbs, NULL);
 	synchronize_rcu();
-	return 0;
 }
 EXPORT_SYMBOL_GPL(perf_unregister_guest_info_callbacks);
 
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224511.387872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVK-0005eT-8q; Thu, 11 Nov 2021 02:07:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224511.387872; Thu, 11 Nov 2021 02:07:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVK-0005eK-3m; Thu, 11 Nov 2021 02:07:54 +0000
Received: by outflank-mailman (input) for mailman id 224511;
 Thu, 11 Nov 2021 02:07:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Uavo=P6=flex--seanjc.bounces.google.com=39XqMYQYKCTAeQMZVOSaaSXQ.OaYjQZ-PQhQXXUefe.jQZbdaVQOf.adS@srs-se1.protection.inumbo.net>)
 id 1mkzVH-0004E5-Vs
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:52 +0000
Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com
 [2607:f8b0:4864:20::449])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2befaa8c-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:07:51 +0100 (CET)
Received: by mail-pf1-x449.google.com with SMTP id
 f206-20020a6238d7000000b004a02dd7156bso1477823pfa.5
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2befaa8c-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=dLC0B5poOO+R7eT5Fx56raJi/ROiRluHmjcipT2wItQ=;
        b=YHMD2WsKQidAIzuSJiiBSlfjymRv36nd0qZ03j8yEiY4oRhtN7s598ibOHDjNDFfBG
         gaMCMb1VjB7Y3ChhtA9oPhPxnLIDO2R//9KuEmG36CiaT6WINr96n1BabFL1QnjU2FYN
         ++z4hNp0l6fnuDqzB/5sMqfGAmxuq6wXboptTFDekSqkrlW31i8Jf+0C5jcbwBX3Ub88
         ZvwFYhhge9O71yPZzMOHv3W0c1L5v8pTa3NJR9nQxdRYyu65nFbC7GijDAKh5azfBJ51
         1RTxy8bhtGh95FbJyUl4ch/A7xok1Tk37upjkLcM6p4Yyfdqn0MX77vGqy4iD2h4l9eh
         raOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=dLC0B5poOO+R7eT5Fx56raJi/ROiRluHmjcipT2wItQ=;
        b=YNSexOjPIUZ+psQbw4GP7bQNouzHJwKHvpji9aIoVPAP4T4Xv4TdG9ANWbWVlaIyIB
         jGJR8ZhWANnjh1iyr0fSTkEaSf2fEhsFW/hvLI3I/vid/8NvMFU5KWtA1oiHPy/JDRpn
         SM4+hhUfY1Bbq0lVhui4OCFINIkImwTP8OdfTmBkZXPyVoEto6gAyPjouvsrRPcD0SEG
         OdjDf2mhYPzpBQ8yFYUt4zSZLTdbVfE1o5qhJbdOPtefZBjXz0ay2BqIHtH1oM2ery3P
         QSUJHqM4Kjm2YeaxOBq25cOOcMDysj5ANIosWV9wyb/VtBS0kJByrF5K09Y1aurFFaMy
         m7tw==
X-Gm-Message-State: AOAM532KBHM9s+AR60yd7Ud5Tp+FaNuaTQaiP1AAr6PsJdu8wEEG3P1k
	t7ca2WejLzxtzjqrLL0okcG9h0qYgNk=
X-Google-Smtp-Source: ABdhPJxw0N3/TCcb/OUUIkt4Vn9WwGY2gIXd71t0qQj8C97syB4spp+RZ8dPjSj5dZk9Di6OFuHpZpcJbvA=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:90b:17cd:: with SMTP id
 me13mr22886138pjb.79.1636596469450; Wed, 10 Nov 2021 18:07:49 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:26 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-6-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 05/17] perf: Drop dead and useless guest "support" from
 arm, csky, nds32 and riscv
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Drop "support" for guest callbacks from architectures that don't implement
the guest callbacks.  Future patches will convert the callbacks to
static_call; rather than churn a bunch of arch code (that was presumably
copy+pasted from x86), remove it wholesale as it's useless and at best
wasting cycles.

A future patch will also add a Kconfig to force architcture to opt into
the callbacks to make it more difficult for uses "support" to sneak in in
the future.

No functional change intended.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/arm/kernel/perf_callchain.c   | 33 ++++-------------------------
 arch/csky/kernel/perf_callchain.c  | 12 -----------
 arch/nds32/kernel/perf_event_cpu.c | 34 ++++--------------------------
 arch/riscv/kernel/perf_callchain.c | 13 ------------
 4 files changed, 8 insertions(+), 84 deletions(-)

diff --git a/arch/arm/kernel/perf_callchain.c b/arch/arm/kernel/perf_callchain.c
index 1626dfc6f6ce..bc6b246ab55e 100644
--- a/arch/arm/kernel/perf_callchain.c
+++ b/arch/arm/kernel/perf_callchain.c
@@ -62,14 +62,8 @@ user_backtrace(struct frame_tail __user *tail,
 void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct frame_tail __user *tail;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		/* We don't support guest os callchain now */
-		return;
-	}
-
 	perf_callchain_store(entry, regs->ARM_pc);
 
 	if (!current->mm)
@@ -99,44 +93,25 @@ callchain_trace(struct stackframe *fr,
 void
 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe fr;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		/* We don't support guest os callchain now */
-		return;
-	}
-
 	arm_get_current_stackframe(regs, &fr);
 	walk_stackframe(&fr, callchain_trace, entry);
 }
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-
-	if (guest_cbs && guest_cbs->is_in_guest())
-		return guest_cbs->get_guest_ip();
-
 	return instruction_pointer(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		if (guest_cbs->is_user_mode())
-			misc |= PERF_RECORD_MISC_GUEST_USER;
-		else
-			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
-	} else {
-		if (user_mode(regs))
-			misc |= PERF_RECORD_MISC_USER;
-		else
-			misc |= PERF_RECORD_MISC_KERNEL;
-	}
+	if (user_mode(regs))
+		misc |= PERF_RECORD_MISC_USER;
+	else
+		misc |= PERF_RECORD_MISC_KERNEL;
 
 	return misc;
 }
diff --git a/arch/csky/kernel/perf_callchain.c b/arch/csky/kernel/perf_callchain.c
index 35318a635a5f..92057de08f4f 100644
--- a/arch/csky/kernel/perf_callchain.c
+++ b/arch/csky/kernel/perf_callchain.c
@@ -86,13 +86,8 @@ static unsigned long user_backtrace(struct perf_callchain_entry_ctx *entry,
 void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 			 struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	unsigned long fp = 0;
 
-	/* C-SKY does not support virtualization. */
-	if (guest_cbs && guest_cbs->is_in_guest())
-		return;
-
 	fp = regs->regs[4];
 	perf_callchain_store(entry, regs->pc);
 
@@ -111,15 +106,8 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 			   struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe fr;
 
-	/* C-SKY does not support virtualization. */
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		pr_warn("C-SKY does not support perf in guest mode!");
-		return;
-	}
-
 	fr.fp = regs->regs[4];
 	fr.lr = regs->lr;
 	walk_stackframe(&fr, entry);
diff --git a/arch/nds32/kernel/perf_event_cpu.c b/arch/nds32/kernel/perf_event_cpu.c
index f38791960781..a78a879e7ef1 100644
--- a/arch/nds32/kernel/perf_event_cpu.c
+++ b/arch/nds32/kernel/perf_event_cpu.c
@@ -1363,7 +1363,6 @@ void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 		    struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	unsigned long fp = 0;
 	unsigned long gp = 0;
 	unsigned long lp = 0;
@@ -1372,11 +1371,6 @@ perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 
 	leaf_fp = 0;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		/* We don't support guest os callchain now */
-		return;
-	}
-
 	perf_callchain_store(entry, regs->ipc);
 	fp = regs->fp;
 	gp = regs->gp;
@@ -1480,13 +1474,8 @@ void
 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 		      struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe fr;
 
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		/* We don't support guest os callchain now */
-		return;
-	}
 	fr.fp = regs->fp;
 	fr.lp = regs->lp;
 	fr.sp = regs->sp;
@@ -1495,32 +1484,17 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-
-	/* However, NDS32 does not support virtualization */
-	if (guest_cbs && guest_cbs->is_in_guest())
-		return guest_cbs->get_guest_ip();
-
 	return instruction_pointer(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
-	/* However, NDS32 does not support virtualization */
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		if (guest_cbs->is_user_mode())
-			misc |= PERF_RECORD_MISC_GUEST_USER;
-		else
-			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
-	} else {
-		if (user_mode(regs))
-			misc |= PERF_RECORD_MISC_USER;
-		else
-			misc |= PERF_RECORD_MISC_KERNEL;
-	}
+	if (user_mode(regs))
+		misc |= PERF_RECORD_MISC_USER;
+	else
+		misc |= PERF_RECORD_MISC_KERNEL;
 
 	return misc;
 }
diff --git a/arch/riscv/kernel/perf_callchain.c b/arch/riscv/kernel/perf_callchain.c
index 8ecfc4c128bc..1fc075b8f764 100644
--- a/arch/riscv/kernel/perf_callchain.c
+++ b/arch/riscv/kernel/perf_callchain.c
@@ -56,13 +56,8 @@ static unsigned long user_backtrace(struct perf_callchain_entry_ctx *entry,
 void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 			 struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	unsigned long fp = 0;
 
-	/* RISC-V does not support perf in guest mode. */
-	if (guest_cbs && guest_cbs->is_in_guest())
-		return;
-
 	fp = regs->s0;
 	perf_callchain_store(entry, regs->epc);
 
@@ -79,13 +74,5 @@ static bool fill_callchain(void *entry, unsigned long pc)
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 			   struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-
-	/* RISC-V does not support perf in guest mode. */
-	if (guest_cbs && guest_cbs->is_in_guest()) {
-		pr_warn("RISC-V does not support perf in guest mode!");
-		return;
-	}
-
 	walk_stackframe(NULL, regs, fill_callchain, entry);
 }
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224506.387817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVB-0004EJ-KH; Thu, 11 Nov 2021 02:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224506.387817; Thu, 11 Nov 2021 02:07:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVB-0004EB-Em; Thu, 11 Nov 2021 02:07:45 +0000
Received: by outflank-mailman (input) for mailman id 224506;
 Thu, 11 Nov 2021 02:07:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gIpQ=P6=flex--seanjc.bounces.google.com=37XqMYQYKCSgWIERNGKSSKPI.GSQbIR-HIZIPPMWXW.bIRTVSNIGX.SVK@srs-se1.protection.inumbo.net>)
 id 1mkzV9-0004E5-Pt
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:43 +0000
Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com
 [2607:f8b0:4864:20::104a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 26eeccbc-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:07:42 +0100 (CET)
Received: by mail-pj1-x104a.google.com with SMTP id
 r13-20020a17090a1bcd00b001a1b1747cd2so2017385pjr.9
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26eeccbc-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:message-id:mime-version:subject:from:to:cc;
        bh=tUIQRP/L4Fp0gX6OhmNi7HbxcL+5uZ5JBj+c5s8Epc0=;
        b=SHNbfqTm3J0sCYDnSCPJl2DJ6T9yOTXJQHvuHx8d04TG6gGxpzfaf/C1v4gFFxrBPV
         Nqw7AUHS01qZz0UD93QTZiHv9vFDhe2GdeiYEKJ4f9tX2pvUysavfJFD5gQ4gNAG6pKe
         lJuw7Z3tdfLgDKejGON+MO9SGmEzmVIPRzmdTSDCNpCRdZIISx15JlmN7eHU6e0hABbO
         ggSU2q0H1akcoFCvWhLk23HEYoCc8zZRMmEW+nbv3sbHxH0cDekH6WrEbtb1X+tgaA6k
         FbiWW2J5zLyfWA9uMi2CyYilMp6JqRACLddKb1B7Cqi9I+sv88k2AOHAQxuAqltrxkop
         Ei4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:message-id:mime-version:subject
         :from:to:cc;
        bh=tUIQRP/L4Fp0gX6OhmNi7HbxcL+5uZ5JBj+c5s8Epc0=;
        b=LvKBOjA6kzUQnMaG/grkssj/CKLcVPq/rcYVebqEgp6oA7dfMeHQe7cpCJl3B8KQsl
         HUzRC6GR3UVXoIzDtgIp9Le7JixQeXNuIsDnJsrpqhiEjSaysLcBOIl4tDs3x+g+Hr6J
         iL8+z2UYJ49oSg3u731Az1gLpWi4S7x3GSj2hQDTHClcFcTg8ky+6Cc2M1H9Y0bw/Sp+
         z9IiEVWy7q13xvFGI1KbUHIAnQ3Hc0aZdp8BT/qYUwSPfqvmKtte+OJsWB/ER6ODEYf7
         8Rn1bNA/JS4ss5kT/VC2shM2uH4tM9A7Z3B5/06BpYd/cASSDUGfAnOKxIPr9x/laMfo
         ChMA==
X-Gm-Message-State: AOAM532phLcoHoIHo7ffU6yavCnrYvN+g+zaBX0WfuY3lS8sA1B87tif
	iZrAgmQ+6MKD5CzpxD/bcijm4zvC2A0=
X-Google-Smtp-Source: ABdhPJyLbpoo29ePfTjvBFgohxjl3NBLChAqmG4K4wYBtXh/2rWx5xqvq1BN1sRzHdfKDemaaNnkz7tBMNU=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:903:2004:b0:142:6344:2c08 with SMTP id
 s4-20020a170903200400b0014263442c08mr3739627pla.51.1636596461111; Wed, 10 Nov
 2021 18:07:41 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:21 +0000
Message-Id: <20211111020738.2512932-1-seanjc@google.com>
Mime-Version: 1.0
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 00/17] perf: KVM: Fix, optimize, and clean up callbacks
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

This is a combination of ~2 series to fix bugs in the perf+KVM callbacks,
optimize the callbacks by employing static_call, and do a variety of
cleanup in both perf and KVM.

For the non-perf patches, I think everything except patch 13 (Paolo) and
patches 15 and 16 (Marc) has the appropriate acks.

Patch 1 fixes a set of mostly-theoretical bugs by protecting the guest
callbacks pointer with RCU.

Patches 2 and 3 fix an Intel PT handling bug where KVM incorrectly
eats PT interrupts when PT is supposed to be owned entirely by the host.

Patches 4-9 clean up perf's callback infrastructure and switch to
static_call for arm64 and x86 (the only survivors).

Patches 10-17 clean up related KVM code and unify the arm64/x86 callbacks.

Based on Linus' tree, commit cb690f5238d7 ("Merge tag 'for-5.16/drivers...).

v4:
  - Rebase.
  - Collect acks and reviews.
  - Fully protect perf_guest_cbs with RCU. [Paolo].
  - Add patch to hide arm64's kvm_arm_pmu_available behind
    CONFIG_HW_PERF_EVENTS=y.

v3:
  - https://lore.kernel.org/all/20210922000533.713300-1-seanjc@google.com/
  - Add wrappers for guest callbacks to that stubs can be provided when
    GUEST_PERF_EVENTS=n.
  - s/HAVE_GUEST_PERF_EVENTS/GUEST_PERF_EVENTS and select it from KVM
    and XEN_PV instead of from top-level arm64/x86. [Paolo]
  - Drop an unnecessary synchronize_rcu() when registering callbacks. [Peter]
  - Retain a WARN_ON_ONCE() when unregistering callbacks if the caller
    didn't provide the correct pointer. [Peter]
  - Rework the static_call patch to move it all to common perf.
  - Add a patch to drop the (un)register stubs, made possible after
    having KVM+XEN_PV select GUEST_PERF_EVENTS.
  - Split dropping guest callback "support" for arm, csky, etc... to a
    separate patch, to make introducing GUEST_PERF_EVENTS cleaner.
  
v2 (relative to static_call v10):
  - Split the patch into the semantic change (multiplexed ->state) and
    introduction of static_call.
  - Don't use '0' for "not a guest RIP".
  - Handle unregister path.
  - Drop changes for architectures that can be culled entirely.

v2 (relative to v1):
  - https://lkml.kernel.org/r/20210828003558.713983-6-seanjc@google.com
  - Drop per-cpu approach. [Peter]
  - Fix mostly-theoretical reload and use-after-free with READ_ONCE(),
    WRITE_ONCE(), and synchronize_rcu(). [Peter]
  - Avoid new exports like the plague. [Peter]

v1:
  - https://lkml.kernel.org/r/20210827005718.585190-1-seanjc@google.com

v10 static_call:
  - https://lkml.kernel.org/r/20210806133802.3528-2-lingshan.zhu@intel.com

Like Xu (1):
  perf/core: Rework guest callbacks to prepare for static_call support

Sean Christopherson (16):
  perf: Protect perf_guest_cbs with RCU
  KVM: x86: Register perf callbacks after calling vendor's
    hardware_setup()
  KVM: x86: Register Processor Trace interrupt hook iff PT enabled in
    guest
  perf: Stop pretending that perf can handle multiple guest callbacks
  perf: Drop dead and useless guest "support" from arm, csky, nds32 and
    riscv
  perf: Add wrappers for invoking guest callbacks
  perf: Force architectures to opt-in to guest callbacks
  perf/core: Use static_call to optimize perf_guest_info_callbacks
  KVM: x86: Drop current_vcpu for kvm_running_vcpu + kvm_arch_vcpu
    variable
  KVM: x86: More precisely identify NMI from guest when handling PMI
  KVM: Move x86's perf guest info callbacks to generic KVM
  KVM: x86: Move Intel Processor Trace interrupt handler to vmx.c
  KVM: arm64: Convert to the generic perf callbacks
  KVM: arm64: Hide kvm_arm_pmu_available behind CONFIG_HW_PERF_EVENTS=y
  KVM: arm64: Drop perf.c and fold its tiny bits of code into arm.c
  perf: Drop guest callback (un)register stubs

 arch/arm/kernel/perf_callchain.c   | 28 ++------------
 arch/arm64/include/asm/kvm_host.h  | 11 +++++-
 arch/arm64/kernel/image-vars.h     |  2 +
 arch/arm64/kernel/perf_callchain.c | 13 ++++---
 arch/arm64/kvm/Kconfig             |  1 +
 arch/arm64/kvm/Makefile            |  2 +-
 arch/arm64/kvm/arm.c               | 10 ++++-
 arch/arm64/kvm/perf.c              | 59 ------------------------------
 arch/arm64/kvm/pmu-emul.c          |  2 +
 arch/csky/kernel/perf_callchain.c  | 10 -----
 arch/nds32/kernel/perf_event_cpu.c | 29 ++-------------
 arch/riscv/kernel/perf_callchain.c | 10 -----
 arch/x86/events/core.c             | 13 ++++---
 arch/x86/events/intel/core.c       |  5 +--
 arch/x86/include/asm/kvm_host.h    |  7 +++-
 arch/x86/kvm/Kconfig               |  1 +
 arch/x86/kvm/pmu.c                 |  2 +-
 arch/x86/kvm/svm/svm.c             |  2 +-
 arch/x86/kvm/vmx/vmx.c             | 25 ++++++++++++-
 arch/x86/kvm/x86.c                 | 58 +++++------------------------
 arch/x86/kvm/x86.h                 | 17 +++++++--
 arch/x86/xen/Kconfig               |  1 +
 arch/x86/xen/pmu.c                 | 32 +++++++---------
 include/kvm/arm_pmu.h              | 19 ++++++----
 include/linux/kvm_host.h           | 10 +++++
 include/linux/perf_event.h         | 44 ++++++++++++++++------
 init/Kconfig                       |  4 ++
 kernel/events/core.c               | 41 +++++++++++++++------
 virt/kvm/kvm_main.c                | 44 ++++++++++++++++++++++
 29 files changed, 246 insertions(+), 256 deletions(-)
 delete mode 100644 arch/arm64/kvm/perf.c

-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224507.387828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVD-0004U9-S5; Thu, 11 Nov 2021 02:07:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224507.387828; Thu, 11 Nov 2021 02:07:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVD-0004U2-Np; Thu, 11 Nov 2021 02:07:47 +0000
Received: by outflank-mailman (input) for mailman id 224507;
 Thu, 11 Nov 2021 02:07:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S65b=P6=flex--seanjc.bounces.google.com=37nqMYQYKCSkXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@srs-se1.protection.inumbo.net>)
 id 1mkzVB-0004E5-Q1
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:46 +0000
Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com
 [2607:f8b0:4864:20::104a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27e1ce4d-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:07:44 +0100 (CET)
Received: by mail-pj1-x104a.google.com with SMTP id
 r23-20020a17090a941700b001a74be6cf80so2020846pjo.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27e1ce4d-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=5T1z2Mu7vnFwSMOSbPnqX8NRPeh7DQrdZluzdqrT7Zs=;
        b=lyoCJgIt1S/p/901fwcfRmgmKlV6ZsjtesWK8dUQ9kRM3C6cdjhPHglMkEArfCe6U1
         2Vyl2apOHwI37Mm0jf39Ak0GK3G78sbVkPYznPGlJfzBO1rhm/hE7EzuSqJXV9Ceh6wq
         2R4Wg3TVbSP+a+Ou9QWIX40DQDR0XrfNpoGxsV12q/t8vWt2KI5NoSyDIcTzCTa+V4Bh
         PuKamIzfXRU91LywHNPVDLNHh1564cxKA1H9F13d+lKoKStLi37LPElf1OYv24MTVyH+
         /g/4/7ixDVgo+gM+zfzbO9M6tbMoznOwoWxXBHMNqEm6zA7uw6FxQspQBVcyxo7T1zSJ
         3KSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=5T1z2Mu7vnFwSMOSbPnqX8NRPeh7DQrdZluzdqrT7Zs=;
        b=goHiUBTFspYVpi087SawvPz2wmpwheqhSw9+f/DhdpUcTY2NIklaLHoiswLmJ1pfOu
         TNf0W2OZ5esYZKVMGJsX2eN4o8HVWOZX9YB5QcjpFLp59vB7s4oD6KSCVaNQcbx+iO84
         7usslNeLG9bHRQz/MJ69u6rU2zW8ftihEry6LybVOKRybKhn16zBfjRwmZQw6nAZjgeu
         PmLF1hAVIllabEh4qPxqs2UEVEjyPlcNalBXSk5K2kyZNTiWi2uSbXbHTTjsPv+lKGMr
         tF/RiKyeefJkRDo7YAKoVVfewf2Sjtpw5MTIzhfJHvf0EJ8hBITiCEPIzWH7/RzbfZNA
         NFvg==
X-Gm-Message-State: AOAM5320NStFqH6yqTG1I/dGX/Njxz8h/zY2B+cCrMBpLnz9oarCq5go
	TBe/3kaKzsil1ypePwoqqSUIj783hWE=
X-Google-Smtp-Source: ABdhPJz9f7kvuW4QxQAaeTuhySCGQZ4KvwMnMNgBeBvT9omOQBSMjB9UQXQj2bOL1ja1NGf1Gv0BtXfrrRk=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:aa7:818d:0:b0:49f:e7d4:bb55 with SMTP id
 g13-20020aa7818d000000b0049fe7d4bb55mr3669221pfi.60.1636596462683; Wed, 10
 Nov 2021 18:07:42 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:22 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-2-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 01/17] perf: Protect perf_guest_cbs with RCU
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Protect perf_guest_cbs with RCU to fix multiple possible errors.  Luckily,
all paths that read perf_guest_cbs already require RCU protection, e.g. to
protect the callback chains, so only the direct perf_guest_cbs touchpoints
need to be modified.

Bug #1 is a simple lack of WRITE_ONCE/READ_ONCE behavior to ensure
perf_guest_cbs isn't reloaded between a !NULL check and a dereference.
Fixed via the READ_ONCE() in rcu_dereference().

Bug #2 is that on weakly-ordered architectures, updates to the callbacks
themselves are not guaranteed to be visible before the pointer is made
visible to readers.  Fixed by the smp_store_release() in
rcu_assign_pointer() when the new pointer is non-NULL.

Bug #3 is that, because the callbacks are global, it's possible for
readers to run in parallel with an unregisters, and thus a module
implementing the callbacks can be unloaded while readers are in flight,
resulting in a use-after-free.  Fixed by a synchronize_rcu() call when
unregistering callbacks.

Bug #1 escaped notice because it's extremely unlikely a compiler will
reload perf_guest_cbs in this sequence.  perf_guest_cbs does get reloaded
for future derefs, e.g. for ->is_user_mode(), but the ->is_in_guest()
guard all but guarantees the consumer will win the race, e.g. to nullify
perf_guest_cbs, KVM has to completely exit the guest and teardown down
all VMs before KVM start its module unload / unregister sequence.  This
also makes it all but impossible to encounter bug #3.

Bug #2 has not been a problem because all architectures that register
callbacks are strongly ordered and/or have a static set of callbacks.

But with help, unloading kvm_intel can trigger bug #1 e.g. wrapping
perf_guest_cbs with READ_ONCE in perf_misc_flags() while spamming
kvm_intel module load/unload leads to:

  BUG: kernel NULL pointer dereference, address: 0000000000000000
  #PF: supervisor read access in kernel mode
  #PF: error_code(0x0000) - not-present page
  PGD 0 P4D 0
  Oops: 0000 [#1] PREEMPT SMP
  CPU: 6 PID: 1825 Comm: stress Not tainted 5.14.0-rc2+ #459
  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
  RIP: 0010:perf_misc_flags+0x1c/0x70
  Call Trace:
   perf_prepare_sample+0x53/0x6b0
   perf_event_output_forward+0x67/0x160
   __perf_event_overflow+0x52/0xf0
   handle_pmi_common+0x207/0x300
   intel_pmu_handle_irq+0xcf/0x410
   perf_event_nmi_handler+0x28/0x50
   nmi_handle+0xc7/0x260
   default_do_nmi+0x6b/0x170
   exc_nmi+0x103/0x130
   asm_exc_nmi+0x76/0xbf

Fixes: 39447b386c84 ("perf: Enhance perf to allow for guest statistic collection from host")
Cc: stable@vger.kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/arm/kernel/perf_callchain.c   | 17 +++++++++++------
 arch/arm64/kernel/perf_callchain.c | 18 ++++++++++++------
 arch/csky/kernel/perf_callchain.c  |  6 ++++--
 arch/nds32/kernel/perf_event_cpu.c | 17 +++++++++++------
 arch/riscv/kernel/perf_callchain.c |  7 +++++--
 arch/x86/events/core.c             | 17 +++++++++++------
 arch/x86/events/intel/core.c       |  9 ++++++---
 include/linux/perf_event.h         | 13 ++++++++++++-
 kernel/events/core.c               | 13 ++++++++++---
 9 files changed, 82 insertions(+), 35 deletions(-)

diff --git a/arch/arm/kernel/perf_callchain.c b/arch/arm/kernel/perf_callchain.c
index 3b69a76d341e..1626dfc6f6ce 100644
--- a/arch/arm/kernel/perf_callchain.c
+++ b/arch/arm/kernel/perf_callchain.c
@@ -62,9 +62,10 @@ user_backtrace(struct frame_tail __user *tail,
 void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct frame_tail __user *tail;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -98,9 +99,10 @@ callchain_trace(struct stackframe *fr,
 void
 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe fr;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -111,18 +113,21 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
-		return perf_guest_cbs->get_guest_ip();
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	if (guest_cbs && guest_cbs->is_in_guest())
+		return guest_cbs->get_guest_ip();
 
 	return instruction_pointer(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
-		if (perf_guest_cbs->is_user_mode())
+	if (guest_cbs && guest_cbs->is_in_guest()) {
+		if (guest_cbs->is_user_mode())
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
diff --git a/arch/arm64/kernel/perf_callchain.c b/arch/arm64/kernel/perf_callchain.c
index 4a72c2727309..86d9f2013172 100644
--- a/arch/arm64/kernel/perf_callchain.c
+++ b/arch/arm64/kernel/perf_callchain.c
@@ -102,7 +102,9 @@ compat_user_backtrace(struct compat_frame_tail __user *tail,
 void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 			 struct pt_regs *regs)
 {
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -147,9 +149,10 @@ static bool callchain_trace(void *data, unsigned long pc)
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 			   struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe frame;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -160,18 +163,21 @@ void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
-		return perf_guest_cbs->get_guest_ip();
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	if (guest_cbs && guest_cbs->is_in_guest())
+		return guest_cbs->get_guest_ip();
 
 	return instruction_pointer(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
-		if (perf_guest_cbs->is_user_mode())
+	if (guest_cbs && guest_cbs->is_in_guest()) {
+		if (guest_cbs->is_user_mode())
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
diff --git a/arch/csky/kernel/perf_callchain.c b/arch/csky/kernel/perf_callchain.c
index ab55e98ee8f6..35318a635a5f 100644
--- a/arch/csky/kernel/perf_callchain.c
+++ b/arch/csky/kernel/perf_callchain.c
@@ -86,10 +86,11 @@ static unsigned long user_backtrace(struct perf_callchain_entry_ctx *entry,
 void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 			 struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	unsigned long fp = 0;
 
 	/* C-SKY does not support virtualization. */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
+	if (guest_cbs && guest_cbs->is_in_guest())
 		return;
 
 	fp = regs->regs[4];
@@ -110,10 +111,11 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 			   struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe fr;
 
 	/* C-SKY does not support virtualization. */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		pr_warn("C-SKY does not support perf in guest mode!");
 		return;
 	}
diff --git a/arch/nds32/kernel/perf_event_cpu.c b/arch/nds32/kernel/perf_event_cpu.c
index 0ce6f9f307e6..f38791960781 100644
--- a/arch/nds32/kernel/perf_event_cpu.c
+++ b/arch/nds32/kernel/perf_event_cpu.c
@@ -1363,6 +1363,7 @@ void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 		    struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	unsigned long fp = 0;
 	unsigned long gp = 0;
 	unsigned long lp = 0;
@@ -1371,7 +1372,7 @@ perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 
 	leaf_fp = 0;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -1479,9 +1480,10 @@ void
 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 		      struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe fr;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -1493,20 +1495,23 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
 	/* However, NDS32 does not support virtualization */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
-		return perf_guest_cbs->get_guest_ip();
+	if (guest_cbs && guest_cbs->is_in_guest())
+		return guest_cbs->get_guest_ip();
 
 	return instruction_pointer(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
 	/* However, NDS32 does not support virtualization */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
-		if (perf_guest_cbs->is_user_mode())
+	if (guest_cbs && guest_cbs->is_in_guest()) {
+		if (guest_cbs->is_user_mode())
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
diff --git a/arch/riscv/kernel/perf_callchain.c b/arch/riscv/kernel/perf_callchain.c
index 0bb1854dce83..8ecfc4c128bc 100644
--- a/arch/riscv/kernel/perf_callchain.c
+++ b/arch/riscv/kernel/perf_callchain.c
@@ -56,10 +56,11 @@ static unsigned long user_backtrace(struct perf_callchain_entry_ctx *entry,
 void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 			 struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	unsigned long fp = 0;
 
 	/* RISC-V does not support perf in guest mode. */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
+	if (guest_cbs && guest_cbs->is_in_guest())
 		return;
 
 	fp = regs->s0;
@@ -78,8 +79,10 @@ static bool fill_callchain(void *entry, unsigned long pc)
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 			   struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
 	/* RISC-V does not support perf in guest mode. */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		pr_warn("RISC-V does not support perf in guest mode!");
 		return;
 	}
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 38b2c779146f..32cec290d3ad 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2768,10 +2768,11 @@ static bool perf_hw_regs(struct pt_regs *regs)
 void
 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct unwind_state state;
 	unsigned long addr;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* TODO: We don't support guest os callchain now */
 		return;
 	}
@@ -2871,10 +2872,11 @@ perf_callchain_user32(struct pt_regs *regs, struct perf_callchain_entry_ctx *ent
 void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stack_frame frame;
 	const struct stack_frame __user *fp;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* TODO: We don't support guest os callchain now */
 		return;
 	}
@@ -2951,18 +2953,21 @@ static unsigned long code_segment_base(struct pt_regs *regs)
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
-		return perf_guest_cbs->get_guest_ip();
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	if (guest_cbs && guest_cbs->is_in_guest())
+		return guest_cbs->get_guest_ip();
 
 	return regs->ip + code_segment_base(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
-		if (perf_guest_cbs->is_user_mode())
+	if (guest_cbs && guest_cbs->is_in_guest()) {
+		if (guest_cbs->is_user_mode())
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 603964408d2d..cde29bd5bb53 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2837,6 +2837,7 @@ static int handle_pmi_common(struct pt_regs *regs, u64 status)
 {
 	struct perf_sample_data data;
 	struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
+	struct perf_guest_info_callbacks *guest_cbs;
 	int bit;
 	int handled = 0;
 	u64 intel_ctrl = hybrid(cpuc->pmu, intel_ctrl);
@@ -2903,9 +2904,11 @@ static int handle_pmi_common(struct pt_regs *regs, u64 status)
 	 */
 	if (__test_and_clear_bit(GLOBAL_STATUS_TRACE_TOPAPMI_BIT, (unsigned long *)&status)) {
 		handled++;
-		if (unlikely(perf_guest_cbs && perf_guest_cbs->is_in_guest() &&
-			perf_guest_cbs->handle_intel_pt_intr))
-			perf_guest_cbs->handle_intel_pt_intr();
+
+		guest_cbs = perf_get_guest_cbs();
+		if (unlikely(guest_cbs && guest_cbs->is_in_guest() &&
+			     guest_cbs->handle_intel_pt_intr))
+			guest_cbs->handle_intel_pt_intr();
 		else
 			intel_pt_interrupt();
 	}
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 0dcfd265beed..318c489b735b 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1240,7 +1240,18 @@ extern void perf_event_bpf_event(struct bpf_prog *prog,
 				 enum perf_bpf_event_type type,
 				 u16 flags);
 
-extern struct perf_guest_info_callbacks *perf_guest_cbs;
+extern struct perf_guest_info_callbacks __rcu *perf_guest_cbs;
+static inline struct perf_guest_info_callbacks *perf_get_guest_cbs(void)
+{
+	/*
+	 * Callbacks are RCU-protected and must be READ_ONCE to avoid reloading
+	 * the callbacks between a !NULL check and dereferences, to ensure
+	 * pending stores/changes to the callback pointers are visible before a
+	 * non-NULL perf_guest_cbs is visible to readers, and to prevent a
+	 * module from unloading callbacks while readers are active.
+	 */
+	return rcu_dereference(perf_guest_cbs);
+}
 extern int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks);
 extern int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks);
 
diff --git a/kernel/events/core.c b/kernel/events/core.c
index f2253ea729a2..0cc775f702f8 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -6526,18 +6526,25 @@ static void perf_pending_event(struct irq_work *entry)
  * Later on, we might change it to a list if there is
  * another virtualization implementation supporting the callbacks.
  */
-struct perf_guest_info_callbacks *perf_guest_cbs;
+struct perf_guest_info_callbacks __rcu *perf_guest_cbs;
 
 int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
 {
-	perf_guest_cbs = cbs;
+	if (WARN_ON_ONCE(rcu_access_pointer(perf_guest_cbs)))
+		return -EBUSY;
+
+	rcu_assign_pointer(perf_guest_cbs, cbs);
 	return 0;
 }
 EXPORT_SYMBOL_GPL(perf_register_guest_info_callbacks);
 
 int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
 {
-	perf_guest_cbs = NULL;
+	if (WARN_ON_ONCE(rcu_access_pointer(perf_guest_cbs) != cbs))
+		return -EINVAL;
+
+	rcu_assign_pointer(perf_guest_cbs, NULL);
+	synchronize_rcu();
 	return 0;
 }
 EXPORT_SYMBOL_GPL(perf_unregister_guest_info_callbacks);
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224509.387850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVF-00050j-Hv; Thu, 11 Nov 2021 02:07:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224509.387850; Thu, 11 Nov 2021 02:07:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVF-0004zz-EA; Thu, 11 Nov 2021 02:07:49 +0000
Received: by outflank-mailman (input) for mailman id 224509;
 Thu, 11 Nov 2021 02:07:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tfl+=P6=flex--seanjc.bounces.google.com=38nqMYQYKCS0bNJWSLPXXPUN.LXVgNW-MNeNUURbcb.gNWYaXSNLc.XaP@srs-se1.protection.inumbo.net>)
 id 1mkzVE-0004E5-BS
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:48 +0000
Received: from mail-pf1-x44a.google.com (mail-pf1-x44a.google.com
 [2607:f8b0:4864:20::44a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29dda875-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:07:47 +0100 (CET)
Received: by mail-pf1-x44a.google.com with SMTP id
 f206-20020a6238d7000000b004a02dd7156bso1477735pfa.5
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29dda875-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=tzJkfgYHxl8Hqcg8u/5VLHhx3ygcDPf8C0WC2uGyae4=;
        b=sjwIGmNp+e7ADiI1VXuubIUgu7aakWxokn5rB+ZXv/1RKcxJo0o+ayoDqiv1vnmU2t
         y2g+ZGXPL98vD4HTszBT5NRpN6L6QYFfwaOz8SsRcU24JWfcj+LuqRS8WgvoHC3za9ex
         /WUdT0ZunZhSDYaVW9smKXDN8o/rDjmZw2Zm/endCBONkKIwSw23ApNwOZ+5pgK8N8KV
         6QBkHEV8MfWgf59bzLEJ5lyULrdtdjpxQCmIJ8B33Y3VIDQ9nqa1x+eCFwljaNkGWYLU
         jZBt32p8QqA2UeEWF+MxoGjTtfhFzLLo/q8TUyg2rzIUbCtuHlm4371DX81vuqZl9UQ1
         DFoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=tzJkfgYHxl8Hqcg8u/5VLHhx3ygcDPf8C0WC2uGyae4=;
        b=P04Yt9RwrxdOW+WBx5UB3DnX7FvtQpPS8M9L2jBW91y36vLacENPnMK4nbHogYut5A
         GqpZbMdx90/23eq3U1bF6FcVR/zN+i8Viex3kHdrao1txU5CtGFz/cCC9dDFr5HL2vKr
         Qo2eQwH2Ma3eaLwtZ1PmwcHSKeOTdj2ZkfPXfHa4yNda3tBzDWZYhCh+uviOMWjsqLg8
         vzzboA3tKxB9ndFrrRCLaVupOQJSijF7NDyq3q3v+OfTW5zpx6w96vbcNaxSoFeGN7GX
         b46VnzB5lZ66J/V7l+59A7j2xmHUA6nPgYV7l3QL+0DwtJuxsWETtLGiJhLLycCmb+Aq
         spOQ==
X-Gm-Message-State: AOAM5332SBv5pVdved8UBzA8Stam/0wg90YNFn8irL+pDAmDzssSZT8f
	FSCoLfV/Ainz3Ntl5OQED2awva3Xuus=
X-Google-Smtp-Source: ABdhPJyeqxRmsuvvw74Iqn1NTFV8lezNbZne36vOAMPd5Dm0FM3Hs8a4MEZrVV1SljCNALtWfHjY5EGOjlQ=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:902:6acb:b0:142:76c3:d35f with SMTP id
 i11-20020a1709026acb00b0014276c3d35fmr4088456plt.89.1636596466113; Wed, 10
 Nov 2021 18:07:46 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:24 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-4-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 03/17] KVM: x86: Register Processor Trace interrupt hook
 iff PT enabled in guest
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Override the Processor Trace (PT) interrupt handler for guest mode if and
only if PT is configured for host+guest mode, i.e. is being used
independently by both host and guest.  If PT is configured for system
mode, the host fully controls PT and must handle all events.

Fixes: 8479e04e7d6b ("KVM: x86: Inject PMI for KVM guest")
Cc: stable@vger.kernel.org
Cc: Like Xu <like.xu.linux@gmail.com>
Reported-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reported-by: Artem Kashkanov <artem.kashkanov@intel.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_host.h | 1 +
 arch/x86/kvm/vmx/vmx.c          | 1 +
 arch/x86/kvm/x86.c              | 5 ++++-
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 2acf37cc1991..bf0a9ce53750 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1514,6 +1514,7 @@ struct kvm_x86_init_ops {
 	int (*disabled_by_bios)(void);
 	int (*check_processor_compatibility)(void);
 	int (*hardware_setup)(void);
+	bool (*intel_pt_intr_in_guest)(void);
 
 	struct kvm_x86_ops *runtime_ops;
 };
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 76861b66bbcf..0927d07b2efb 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -7918,6 +7918,7 @@ static struct kvm_x86_init_ops vmx_init_ops __initdata = {
 	.disabled_by_bios = vmx_disabled_by_bios,
 	.check_processor_compatibility = vmx_check_processor_compat,
 	.hardware_setup = hardware_setup,
+	.intel_pt_intr_in_guest = vmx_pt_mode_is_host_guest,
 
 	.runtime_ops = &vmx_x86_ops,
 };
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 021b2c1ac9f0..021d3f5364b2 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8451,7 +8451,7 @@ static struct perf_guest_info_callbacks kvm_guest_cbs = {
 	.is_in_guest		= kvm_is_in_guest,
 	.is_user_mode		= kvm_is_user_mode,
 	.get_guest_ip		= kvm_get_guest_ip,
-	.handle_intel_pt_intr	= kvm_handle_intel_pt_intr,
+	.handle_intel_pt_intr	= NULL,
 };
 
 #ifdef CONFIG_X86_64
@@ -11146,6 +11146,8 @@ int kvm_arch_hardware_setup(void *opaque)
 	memcpy(&kvm_x86_ops, ops->runtime_ops, sizeof(kvm_x86_ops));
 	kvm_ops_static_call_update();
 
+	if (ops->intel_pt_intr_in_guest && ops->intel_pt_intr_in_guest())
+		kvm_guest_cbs.handle_intel_pt_intr = kvm_handle_intel_pt_intr;
 	perf_register_guest_info_callbacks(&kvm_guest_cbs);
 
 	if (!kvm_cpu_cap_has(X86_FEATURE_XSAVES))
@@ -11176,6 +11178,7 @@ int kvm_arch_hardware_setup(void *opaque)
 void kvm_arch_hardware_unsetup(void)
 {
 	perf_unregister_guest_info_callbacks(&kvm_guest_cbs);
+	kvm_guest_cbs.handle_intel_pt_intr = NULL;
 
 	static_call(kvm_x86_hardware_unsetup)();
 }
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224513.387894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVP-0006P6-Ak; Thu, 11 Nov 2021 02:07:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224513.387894; Thu, 11 Nov 2021 02:07:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVP-0006Ot-6U; Thu, 11 Nov 2021 02:07:59 +0000
Received: by outflank-mailman (input) for mailman id 224513;
 Thu, 11 Nov 2021 02:07:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gf9R=P6=flex--seanjc.bounces.google.com=3-HqMYQYKCTMhTPcYRVddVaT.RdbmTc-STkTaaXhih.mTcegdYTRi.dgV@srs-se1.protection.inumbo.net>)
 id 1mkzVN-0006EI-Ay
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:57 +0000
Received: from mail-pf1-x44a.google.com (mail-pf1-x44a.google.com
 [2607:f8b0:4864:20::44a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e6bffdd-4294-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 03:07:55 +0100 (CET)
Received: by mail-pf1-x44a.google.com with SMTP id
 m26-20020a62a21a000000b0041361973ba7so3025890pff.15
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e6bffdd-4294-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=cLIsvkhrGBYnUpSNCNJBNYz6Cxw5ol9DR3GtAyee4XM=;
        b=UWY+I67x4udh62C37NhqjaJRirQ82H+O8Bapb8N9xQXR1hTzdZo/K1xEJqAq9rNDj8
         /CEXnNB19mzJdGDaFjKWaLdtvzi33ZGiaWh3BQRjYo8B5CDiTZRBGviZpr9x+UfVIAkb
         sjbJ+B7yuNB9hFQXxpGBYeTQX2mmrHCcHAZg/4OVsnXBQaBdxMTg813r2Ch/7TjbpqY0
         z8EX0rkQUlsj71pyKJ/d7eA5S4lz3YcnQAl7M8ewTb9Ej6PUeF4YEby2nGyPc1sOivTc
         CcHqA8McmQsBqqjCAzz1GDv/VgvIqfIMFjVh/1Y17Uc0kgMdlXYJzuPodkBR/eP+VOOR
         EOoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=cLIsvkhrGBYnUpSNCNJBNYz6Cxw5ol9DR3GtAyee4XM=;
        b=uBD4w/+9P6A2Tjh22SNVlMolFIdjWxqM/UWKHeLJ6PtIUfXLAZ/n1+dKvUzqx3CINf
         grwoF0eZ8rz0AoJLOX7OB/dipiGlqopRLtznoSQVcpUrOmh4Ex2JIvhVfYWiHoLx4JcS
         GBiS/X+gbUG0c1obFKNoj8vICM61f+sv6sl15Yu4C7X1iZ2VT8H/Px+gRuPUpu2zZyeG
         DFQY3JuGltqc1alBgq1iIefDC2QyhJ6gra+JKODhTm8SLf2yWgFUxMplcZIZqkP6PQF8
         BaIaqZol/6ioaHrqMRZKkCvJzKAsRubURRgfiyEq9PnF36L0UBr/rKsyxGlpoR16MLp4
         yiOg==
X-Gm-Message-State: AOAM532NPl9LLUphZLr1ywq0FVvL3z7fnws2QUgwaRjFVDIPTdiU2qGk
	o7f+kVNEEtSPs6WsOLXvLd8j4bDFptk=
X-Google-Smtp-Source: ABdhPJyA+FPl1GrpuJCEY1SbbkGaO/jmn8V2FSIoEOOofvc+yyStyKbXUIFhESdIZSXyIeRcJnfvlG5Y2FI=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:90a:284f:: with SMTP id
 p15mr145050pjf.1.1636596472324; Wed, 10 Nov 2021 18:07:52 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:28 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-8-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 07/17] perf: Add wrappers for invoking guest callbacks
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Add helpers for the guest callbacks to prepare for burying the callbacks
behind a Kconfig (it's a lot easier to provide a few stubs than to #ifdef
piles of code), and also to prepare for converting the callbacks to
static_call().  perf_instruction_pointer() in particular will have subtle
semantics with static_call(), as the "no callbacks" case will return 0 if
the callbacks are unregistered between querying guest state and getting
the IP.  Implement the change now to avoid a functional change when adding
static_call() support, and because the new helper needs to return
_something_ in this case.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/arm64/kernel/perf_callchain.c | 16 +++++-----------
 arch/x86/events/core.c             | 15 +++++----------
 arch/x86/events/intel/core.c       |  5 +----
 include/linux/perf_event.h         | 24 ++++++++++++++++++++++++
 4 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/arch/arm64/kernel/perf_callchain.c b/arch/arm64/kernel/perf_callchain.c
index 274dc3e11b6d..db04a55cee7e 100644
--- a/arch/arm64/kernel/perf_callchain.c
+++ b/arch/arm64/kernel/perf_callchain.c
@@ -102,9 +102,7 @@ compat_user_backtrace(struct compat_frame_tail __user *tail,
 void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 			 struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-
-	if (guest_cbs && guest_cbs->state()) {
+	if (perf_guest_state()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -149,10 +147,9 @@ static bool callchain_trace(void *data, unsigned long pc)
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 			   struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe frame;
 
-	if (guest_cbs && guest_cbs->state()) {
+	if (perf_guest_state()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -163,18 +160,15 @@ void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-
-	if (guest_cbs && guest_cbs->state())
-		return guest_cbs->get_ip();
+	if (perf_guest_state())
+		return perf_guest_get_ip();
 
 	return instruction_pointer(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-	unsigned int guest_state = guest_cbs ? guest_cbs->state() : 0;
+	unsigned int guest_state = perf_guest_state();
 	int misc = 0;
 
 	if (guest_state) {
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index e29312a1003a..620347398027 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2768,11 +2768,10 @@ static bool perf_hw_regs(struct pt_regs *regs)
 void
 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct unwind_state state;
 	unsigned long addr;
 
-	if (guest_cbs && guest_cbs->state()) {
+	if (perf_guest_state()) {
 		/* TODO: We don't support guest os callchain now */
 		return;
 	}
@@ -2872,11 +2871,10 @@ perf_callchain_user32(struct pt_regs *regs, struct perf_callchain_entry_ctx *ent
 void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stack_frame frame;
 	const struct stack_frame __user *fp;
 
-	if (guest_cbs && guest_cbs->state()) {
+	if (perf_guest_state()) {
 		/* TODO: We don't support guest os callchain now */
 		return;
 	}
@@ -2953,18 +2951,15 @@ static unsigned long code_segment_base(struct pt_regs *regs)
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-
-	if (guest_cbs && guest_cbs->state())
-		return guest_cbs->get_ip();
+	if (perf_guest_state())
+		return perf_guest_get_ip();
 
 	return regs->ip + code_segment_base(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-	unsigned int guest_state = guest_cbs ? guest_cbs->state() : 0;
+	unsigned int guest_state = perf_guest_state();
 	int misc = 0;
 
 	if (guest_state) {
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 24adbd6282d4..a5fb247a6a27 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2837,7 +2837,6 @@ static int handle_pmi_common(struct pt_regs *regs, u64 status)
 {
 	struct perf_sample_data data;
 	struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
-	struct perf_guest_info_callbacks *guest_cbs;
 	int bit;
 	int handled = 0;
 	u64 intel_ctrl = hybrid(cpuc->pmu, intel_ctrl);
@@ -2904,9 +2903,7 @@ static int handle_pmi_common(struct pt_regs *regs, u64 status)
 	 */
 	if (__test_and_clear_bit(GLOBAL_STATUS_TRACE_TOPAPMI_BIT, (unsigned long *)&status)) {
 		handled++;
-
-		guest_cbs = perf_get_guest_cbs();
-		if (likely(!guest_cbs || !guest_cbs->handle_intel_pt_intr()))
+		if (!perf_guest_handle_intel_pt_intr())
 			intel_pt_interrupt();
 	}
 
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 5e6b346d62a7..346d5aff5804 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1254,6 +1254,30 @@ static inline struct perf_guest_info_callbacks *perf_get_guest_cbs(void)
 	 */
 	return rcu_dereference(perf_guest_cbs);
 }
+static inline unsigned int perf_guest_state(void)
+{
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	return guest_cbs ? guest_cbs->state() : 0;
+}
+static inline unsigned long perf_guest_get_ip(void)
+{
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	/*
+	 * Arbitrarily return '0' in the unlikely scenario that the callbacks
+	 * are unregistered between checking guest state and getting the IP.
+	 */
+	return guest_cbs ? guest_cbs->get_ip() : 0;
+}
+static inline unsigned int perf_guest_handle_intel_pt_intr(void)
+{
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	if (guest_cbs && guest_cbs->handle_intel_pt_intr)
+		return guest_cbs->handle_intel_pt_intr();
+	return 0;
+}
 extern void perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
 extern void perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
 
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224514.387898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVP-0006TM-Sg; Thu, 11 Nov 2021 02:07:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224514.387898; Thu, 11 Nov 2021 02:07:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVP-0006S7-J3; Thu, 11 Nov 2021 02:07:59 +0000
Received: by outflank-mailman (input) for mailman id 224514;
 Thu, 11 Nov 2021 02:07:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=R23/=P6=flex--seanjc.bounces.google.com=3-nqMYQYKCTUjVReaTXffXcV.TfdoVe-UVmVccZjkj.oVegifaVTk.fiX@srs-se1.protection.inumbo.net>)
 id 1mkzVN-0006EI-Rz
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:57 +0000
Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com
 [2607:f8b0:4864:20::549])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2ec2d255-4294-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 03:07:56 +0100 (CET)
Received: by mail-pg1-x549.google.com with SMTP id
 x14-20020a63cc0e000000b002a5bc462947so2465237pgf.20
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ec2d255-4294-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=Qts44yZaW6qsc605OlT7Zz8eai+zBrqGoLbFoG4wiuw=;
        b=Zfi8DY3ovwoiH8lfWrxLb/W+rRSaGWbn2rFa446dfUQXHgUbfdUKYMOyW1lpuH1MR+
         xW8LXXYpKTlc7ug96G/Ee8ToPnPuFjZ6+ZvcCvMBWtEmqhdQ3/vNbJyBdjGJwYQJnBZp
         eg5ocwliNalXx19wDw7gg6hx7kfIvpSxscV8PzvnOb5EfIXw0M0nS4wd8cy4vSyQ7D8r
         47B+6iKMQq7yLKce9j9o6wFmrE8KChMVlSCYvT0NoUscJKcLP0B0byJ9BhCQP5AmwJDt
         Xn99jo+MhAsbr7g8NKvRMpjQUhyAw5fqNt4uJCKa9oaEyT74/pPuTXuqJFQjVL14748I
         xNkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=Qts44yZaW6qsc605OlT7Zz8eai+zBrqGoLbFoG4wiuw=;
        b=FF5zp1BpTqnwSixfozoUjYMEZ3SSFWDG0ec3VYgARi/PcCh8n0Lxgs88b2nRCB5/JK
         eRh9kOq6CX2/SXMAKFNMBXmczjHKa9Hh9HhCJtHylCNdVI5Zu2xJEMtSjavuBgyoUAVI
         Rwu/rNgS0NyB5shNiP/+AxXXv3Xqug12bd9Zd3o/ZFLCq3CkJx9QoMXM8/QXA74yYJ6K
         4PN+RhuvhLcHchBQJBerh+2dZKkYYDqgOdKTIqyjrJf1artiRj8iPTB+jejgLi3KHkur
         0H/wJC5JaitNr313h4cI2ni/a30n4PbysziB+vxyYvuIx4Evull6YmuEwXwc+1mMqc49
         skqQ==
X-Gm-Message-State: AOAM532yw0H39SYREHTM7qDXCV7N4H5Sq0W1+u6s4x6bXsT+4iD7H1dA
	CmQGw8IZlAbwXVwVyKlbpVj0qgWszfs=
X-Google-Smtp-Source: ABdhPJzzaoFWeNToP2f/V/MLS8kOItNfusQJva0ujL0AlnvrfyJ7uCasThKDANgj3halkP9yaN2IQPCiXvk=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:902:8544:b0:142:66e7:afbb with SMTP id
 d4-20020a170902854400b0014266e7afbbmr3818315plo.62.1636596474245; Wed, 10 Nov
 2021 18:07:54 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:29 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-9-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 08/17] perf: Force architectures to opt-in to guest callbacks
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Introduce GUEST_PERF_EVENTS and require architectures to select it to
allow registering and using guest callbacks in perf.  This will hopefully
make it more difficult for new architectures to add useless "support" for
guest callbacks, e.g. via copy+paste.

Stubbing out the helpers has the happy bonus of avoiding a load of
perf_guest_cbs when GUEST_PERF_EVENTS=n on arm64/x86.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/arm64/kvm/Kconfig     | 1 +
 arch/x86/kvm/Kconfig       | 1 +
 arch/x86/xen/Kconfig       | 1 +
 include/linux/perf_event.h | 6 ++++++
 init/Kconfig               | 4 ++++
 kernel/events/core.c       | 2 ++
 6 files changed, 15 insertions(+)

diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig
index 8ffcbe29395e..e9761d84f982 100644
--- a/arch/arm64/kvm/Kconfig
+++ b/arch/arm64/kvm/Kconfig
@@ -39,6 +39,7 @@ menuconfig KVM
 	select HAVE_KVM_IRQ_BYPASS
 	select HAVE_KVM_VCPU_RUN_PID_CHANGE
 	select SCHED_INFO
+	select GUEST_PERF_EVENTS if PERF_EVENTS
 	help
 	  Support hosting virtualized guest machines.
 
diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig
index 619186138176..47bdbe705a76 100644
--- a/arch/x86/kvm/Kconfig
+++ b/arch/x86/kvm/Kconfig
@@ -36,6 +36,7 @@ config KVM
 	select KVM_MMIO
 	select SCHED_INFO
 	select PERF_EVENTS
+	select GUEST_PERF_EVENTS
 	select HAVE_KVM_MSI
 	select HAVE_KVM_CPU_RELAX_INTERCEPT
 	select HAVE_KVM_NO_POLL
diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index 6bcd3d8ca6ac..85246dd9faa1 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -23,6 +23,7 @@ config XEN_PV
 	select PARAVIRT_XXL
 	select XEN_HAVE_PVMMU
 	select XEN_HAVE_VPMU
+	select GUEST_PERF_EVENTS
 	help
 	  Support running as a Xen PV guest.
 
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 346d5aff5804..ea47ef616ee0 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1242,6 +1242,7 @@ extern void perf_event_bpf_event(struct bpf_prog *prog,
 				 enum perf_bpf_event_type type,
 				 u16 flags);
 
+#ifdef CONFIG_GUEST_PERF_EVENTS
 extern struct perf_guest_info_callbacks __rcu *perf_guest_cbs;
 static inline struct perf_guest_info_callbacks *perf_get_guest_cbs(void)
 {
@@ -1280,6 +1281,11 @@ static inline unsigned int perf_guest_handle_intel_pt_intr(void)
 }
 extern void perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
 extern void perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
+#else
+static inline unsigned int perf_guest_state(void)		 { return 0; }
+static inline unsigned long perf_guest_get_ip(void)		 { return 0; }
+static inline unsigned int perf_guest_handle_intel_pt_intr(void) { return 0; }
+#endif /* CONFIG_GUEST_PERF_EVENTS */
 
 extern void perf_event_exec(void);
 extern void perf_event_comm(struct task_struct *tsk, bool exec);
diff --git a/init/Kconfig b/init/Kconfig
index 21b1f4870c80..6bc5c56d669b 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1799,6 +1799,10 @@ config HAVE_PERF_EVENTS
 	help
 	  See tools/perf/design.txt for details.
 
+config GUEST_PERF_EVENTS
+	bool
+	depends on HAVE_PERF_EVENTS
+
 config PERF_USE_VMALLOC
 	bool
 	help
diff --git a/kernel/events/core.c b/kernel/events/core.c
index eb6b9cfd0054..1c8d341ecc77 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -6521,6 +6521,7 @@ static void perf_pending_event(struct irq_work *entry)
 		perf_swevent_put_recursion_context(rctx);
 }
 
+#ifdef CONFIG_GUEST_PERF_EVENTS
 struct perf_guest_info_callbacks __rcu *perf_guest_cbs;
 
 void perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
@@ -6541,6 +6542,7 @@ void perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
 	synchronize_rcu();
 }
 EXPORT_SYMBOL_GPL(perf_unregister_guest_info_callbacks);
+#endif
 
 static void
 perf_output_sample_regs(struct perf_output_handle *handle,
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224515.387912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVR-0006w9-Mj; Thu, 11 Nov 2021 02:08:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224515.387912; Thu, 11 Nov 2021 02:08:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVR-0006uc-D2; Thu, 11 Nov 2021 02:08:01 +0000
Received: by outflank-mailman (input) for mailman id 224515;
 Thu, 11 Nov 2021 02:07:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4H9A=P6=flex--seanjc.bounces.google.com=3-3qMYQYKCTYkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@srs-se1.protection.inumbo.net>)
 id 1mkzVP-0004E5-Aq
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:07:59 +0000
Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com
 [2607:f8b0:4864:20::549])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f906369-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:07:58 +0100 (CET)
Received: by mail-pg1-x549.google.com with SMTP id
 w5-20020a654105000000b002692534afceso2500457pgp.8
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f906369-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=JkXBJDHAhyFHU3BMn5TxNvn1UhPk279A0oNuAvxWjCs=;
        b=V/Erh1076Wrysqbzd52oPttVcTj86MAahPnKpcTJq7syNcKb6Hfbc1a/qLHtW2aZzM
         ntU7/qAt53ZYhWpyQtDgus9kIEsKyCBHC9Oor9JVcDSlMaafDjmyIjCdZpzvQ66yq2bF
         4Ln7yitJs7J3vTj08rGLJxl/XgscQixibexw/j2isHouYrE3KN5luTSwIyyiHohqB2oM
         DOWc3gmIU3WsnyehgpVge5vIjiQslJURYz13x/vyJ7eIHnvpBJAi8Es5msfqjvngRBal
         GfU5K5lWZJ/c/IOjpQl51jUxu8wnvx5XYX1lWsqsltJUovOqyoHi492zQ3HRq67UjhCi
         YKpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=JkXBJDHAhyFHU3BMn5TxNvn1UhPk279A0oNuAvxWjCs=;
        b=YhyB5MES68FvaIhNxiygoJ8s/Uu7OTLw2or1QaC96D529GbMhZo6FaBxcSaDKtoT22
         NQRaL4AVwMOBS0FwORv/snqO8d/cgZr8wnYf4iHgA0MR/TxZT6n2SVVj45VNzS6sCGD7
         yiwBYKD7batZFY5lK7HxmSJTv70DmUXe96PiFGEiwvh9hRDFQVywxwhuzSYCwlDGKW45
         FthophLjRfjzTTsJtYEQvVY1nAPLIYJANAWx/hORnbh+KDKiuI80JwiHOcNO943HrBb9
         e7Z69CTLXlNUJTvdXjcuEZ2KBauyt8zvAobm0LyVovu6jv6/tXam6YumHAT5G6+zYZOC
         0Fbg==
X-Gm-Message-State: AOAM531//oRoYh82TTF+uMYaA63yXUaPPvPKlwM+nrhjGXarNvaxGfej
	wk8dnqniUwddRT4kQu5M7ZXxylT5lx0=
X-Google-Smtp-Source: ABdhPJzZG6X7/rhXMvPOUNuiqnAPcfgQCLc1mXz6MzBC0EQ6fiOGWNnuouHOzuVVQb9cOW5lIf9DSbIQyKk=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a05:6a00:a8b:b0:44d:ef7c:94b9 with SMTP id
 b11-20020a056a000a8b00b0044def7c94b9mr3606208pfl.36.1636596475642; Wed, 10
 Nov 2021 18:07:55 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:30 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-10-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 09/17] perf/core: Use static_call to optimize perf_guest_info_callbacks
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Use static_call to optimize perf's guest callbacks on arm64 and x86,
which are now the only architectures that define the callbacks.  Use
DEFINE_STATIC_CALL_RET0 as the default/NULL for all guest callbacks, as
the callback semantics are that a return value '0' means "not in guest".

static_call obviously avoids the overhead of CONFIG_RETPOLINE=y, but is
also advantageous versus other solutions, e.g. per-cpu callbacks, in that
a per-cpu memory load is not needed to detect the !guest case.

Based on code from Peter and Like.

Suggested-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Like Xu <like.xu.linux@gmail.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 include/linux/perf_event.h | 34 ++++++++--------------------------
 kernel/events/core.c       | 15 +++++++++++++++
 2 files changed, 23 insertions(+), 26 deletions(-)

diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index ea47ef616ee0..0ac7d867ca0c 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1244,40 +1244,22 @@ extern void perf_event_bpf_event(struct bpf_prog *prog,
 
 #ifdef CONFIG_GUEST_PERF_EVENTS
 extern struct perf_guest_info_callbacks __rcu *perf_guest_cbs;
-static inline struct perf_guest_info_callbacks *perf_get_guest_cbs(void)
-{
-	/*
-	 * Callbacks are RCU-protected and must be READ_ONCE to avoid reloading
-	 * the callbacks between a !NULL check and dereferences, to ensure
-	 * pending stores/changes to the callback pointers are visible before a
-	 * non-NULL perf_guest_cbs is visible to readers, and to prevent a
-	 * module from unloading callbacks while readers are active.
-	 */
-	return rcu_dereference(perf_guest_cbs);
-}
+
+DECLARE_STATIC_CALL(__perf_guest_state, *perf_guest_cbs->state);
+DECLARE_STATIC_CALL(__perf_guest_get_ip, *perf_guest_cbs->get_ip);
+DECLARE_STATIC_CALL(__perf_guest_handle_intel_pt_intr, *perf_guest_cbs->handle_intel_pt_intr);
+
 static inline unsigned int perf_guest_state(void)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-
-	return guest_cbs ? guest_cbs->state() : 0;
+	return static_call(__perf_guest_state)();
 }
 static inline unsigned long perf_guest_get_ip(void)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-
-	/*
-	 * Arbitrarily return '0' in the unlikely scenario that the callbacks
-	 * are unregistered between checking guest state and getting the IP.
-	 */
-	return guest_cbs ? guest_cbs->get_ip() : 0;
+	return static_call(__perf_guest_get_ip)();
 }
 static inline unsigned int perf_guest_handle_intel_pt_intr(void)
 {
-	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
-
-	if (guest_cbs && guest_cbs->handle_intel_pt_intr)
-		return guest_cbs->handle_intel_pt_intr();
-	return 0;
+	return static_call(__perf_guest_handle_intel_pt_intr)();
 }
 extern void perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
 extern void perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs);
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 1c8d341ecc77..b4fd928e4ff8 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -6524,12 +6524,23 @@ static void perf_pending_event(struct irq_work *entry)
 #ifdef CONFIG_GUEST_PERF_EVENTS
 struct perf_guest_info_callbacks __rcu *perf_guest_cbs;
 
+DEFINE_STATIC_CALL_RET0(__perf_guest_state, *perf_guest_cbs->state);
+DEFINE_STATIC_CALL_RET0(__perf_guest_get_ip, *perf_guest_cbs->get_ip);
+DEFINE_STATIC_CALL_RET0(__perf_guest_handle_intel_pt_intr, *perf_guest_cbs->handle_intel_pt_intr);
+
 void perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
 {
 	if (WARN_ON_ONCE(rcu_access_pointer(perf_guest_cbs)))
 		return;
 
 	rcu_assign_pointer(perf_guest_cbs, cbs);
+	static_call_update(__perf_guest_state, cbs->state);
+	static_call_update(__perf_guest_get_ip, cbs->get_ip);
+
+	/* Implementing ->handle_intel_pt_intr is optional. */
+	if (cbs->handle_intel_pt_intr)
+		static_call_update(__perf_guest_handle_intel_pt_intr,
+				   cbs->handle_intel_pt_intr);
 }
 EXPORT_SYMBOL_GPL(perf_register_guest_info_callbacks);
 
@@ -6539,6 +6550,10 @@ void perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
 		return;
 
 	rcu_assign_pointer(perf_guest_cbs, NULL);
+	static_call_update(__perf_guest_state, (void *)&__static_call_return0);
+	static_call_update(__perf_guest_get_ip, (void *)&__static_call_return0);
+	static_call_update(__perf_guest_handle_intel_pt_intr,
+			   (void *)&__static_call_return0);
 	synchronize_rcu();
 }
 EXPORT_SYMBOL_GPL(perf_unregister_guest_info_callbacks);
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224516.387923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVT-0007In-4q; Thu, 11 Nov 2021 02:08:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224516.387923; Thu, 11 Nov 2021 02:08:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVS-0007G6-T0; Thu, 11 Nov 2021 02:08:02 +0000
Received: by outflank-mailman (input) for mailman id 224516;
 Thu, 11 Nov 2021 02:08:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3yPT=P6=flex--seanjc.bounces.google.com=3_XqMYQYKCTgmYUhdWaiiafY.WigrYh-XYpYffcmnm.rYhjlidYWn.ila@srs-se1.protection.inumbo.net>)
 id 1mkzVQ-0004E5-Aw
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:08:00 +0000
Received: from mail-pf1-x44a.google.com (mail-pf1-x44a.google.com
 [2607:f8b0:4864:20::44a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 308acbec-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:07:58 +0100 (CET)
Received: by mail-pf1-x44a.google.com with SMTP id
 134-20020a62198c000000b0047bf0981003so3066226pfz.4
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:07:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 308acbec-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=Lyt/rTDjGnKoutcwJre3yNnjqLDOGX/x3OkYu61FqOk=;
        b=I8XIHSvwNQ1fcpkSdsGc4AiCdO+YuaQlW3RXJZULkdkHSVSpiSB2z5tzowllmJ+Tdh
         VAXBm73ZsKSWwoJMRNxrsMKG+icBCC6PildLyn4ZRrgxZFW7lw+uDQaRe13J0ZYYFICw
         RY/Ms9WJCbbSEl49Bxj866E13R0XzMlHdhSmaskdgLqSdcLwszfqInJfpHSHPuytmZSx
         BsgHHmWeayoYirawUXu3l+QK3yaTIngZgf0YqEx4vJLxeQLzupJ+MgudJMmYzpfRhKvP
         CFiOg76ypH6eMg3NIm3Zg1wASou7RXi8yICFp/t7wWu2cdovARfNECA30eFWZRrYjIAv
         j/Xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=Lyt/rTDjGnKoutcwJre3yNnjqLDOGX/x3OkYu61FqOk=;
        b=HQb55UvUP/QLqohK3ISYQir3lwhvDsx2BGmm/4bt2BWOnMgy15Jom9tM3v8BZgb9oe
         DoBG4XS+XG491z8ewjXcXD806URg66kbzb1xF2cSMdsUk50F6wL3w+qZIIVzopSkAV2/
         4vW8PwzVj2gaZTOv8/GaEWTxiyHKSVZjK8IasucgmAxjdPv4qixHhL74998U8a/aceZP
         8Q0wzG1ReOtpVLyKFQMFlPukAd8G1UjYJV/gvhG5gRTaYhHRoFPNT5cKGv45QAk3Buz2
         CYLS2CHtu1171lVIMr1Fqk6LwKsZXCTM0PctqcYVnDcFaJSsJoo+GolDHs2z3LhHK51P
         YHRw==
X-Gm-Message-State: AOAM5318QkQHbq2T1riXNn1fl7MJHri79WNbGDb9l/pRYyfFUnSwHbP3
	lquR5uhEoXnvLW0tyf93pXPJij1VyFM=
X-Google-Smtp-Source: ABdhPJzwe3ySftIMFIDWAgLK4p70yiGU7wr0OHMFB4yOPKar4RINHPheEDQEOrP3eF5wXmfUmDTfro+u2BU=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a05:6a00:174e:b0:43b:80ba:99c8 with SMTP id
 j14-20020a056a00174e00b0043b80ba99c8mr3561997pfc.51.1636596477237; Wed, 10
 Nov 2021 18:07:57 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:31 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-11-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 10/17] KVM: x86: Drop current_vcpu for kvm_running_vcpu +
 kvm_arch_vcpu variable
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Use the generic kvm_running_vcpu plus a new 'handling_intr_from_guest'
variable in kvm_arch_vcpu instead of the semi-redundant current_vcpu.
kvm_before/after_interrupt() must be called while the vCPU is loaded,
(which protects against preemption), thus kvm_running_vcpu is guaranteed
to be non-NULL when handling_intr_from_guest is non-zero.

Switching to kvm_get_running_vcpu() will allows moving KVM's perf
callbacks to generic code, and the new flag will be used in a future
patch to more precisely identify the "NMI from guest" case.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_host.h |  3 +--
 arch/x86/kvm/pmu.c              |  2 +-
 arch/x86/kvm/x86.c              | 21 ++++++++++++---------
 arch/x86/kvm/x86.h              | 10 ++++++----
 4 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 112ffb355552..812c08e797fe 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -773,6 +773,7 @@ struct kvm_vcpu_arch {
 	unsigned nmi_pending; /* NMI queued after currently running handler */
 	bool nmi_injected;    /* Trying to inject an NMI this entry */
 	bool smi_pending;    /* SMI queued after currently running handler */
+	u8 handling_intr_from_guest;
 
 	struct kvm_mtrr mtrr_state;
 	u64 pat;
@@ -1893,8 +1894,6 @@ int kvm_skip_emulated_instruction(struct kvm_vcpu *vcpu);
 int kvm_complete_insn_gp(struct kvm_vcpu *vcpu, int err);
 void __kvm_request_immediate_exit(struct kvm_vcpu *vcpu);
 
-unsigned int kvm_guest_state(void);
-
 void __user *__x86_set_memory_region(struct kvm *kvm, int id, gpa_t gpa,
 				     u32 size);
 bool kvm_vcpu_is_reset_bsp(struct kvm_vcpu *vcpu);
diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c
index 5b68d4188de0..eef48258e50f 100644
--- a/arch/x86/kvm/pmu.c
+++ b/arch/x86/kvm/pmu.c
@@ -87,7 +87,7 @@ static void kvm_perf_overflow_intr(struct perf_event *perf_event,
 		 * woken up. So we should wake it, but this is impossible from
 		 * NMI context. Do it from irq work instead.
 		 */
-		if (!kvm_guest_state())
+		if (!kvm_handling_nmi_from_guest(pmc->vcpu))
 			irq_work_queue(&pmc_to_pmu(pmc)->irq_work);
 		else
 			kvm_make_request(KVM_REQ_PMI, pmc->vcpu);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ceb09d78277e..c8ef49385c99 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8410,15 +8410,17 @@ static void kvm_timer_init(void)
 			  kvmclock_cpu_online, kvmclock_cpu_down_prep);
 }
 
-DEFINE_PER_CPU(struct kvm_vcpu *, current_vcpu);
-EXPORT_PER_CPU_SYMBOL_GPL(current_vcpu);
+static inline bool kvm_pmi_in_guest(struct kvm_vcpu *vcpu)
+{
+	return vcpu && vcpu->arch.handling_intr_from_guest;
+}
 
-unsigned int kvm_guest_state(void)
+static unsigned int kvm_guest_state(void)
 {
-	struct kvm_vcpu *vcpu = __this_cpu_read(current_vcpu);
+	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
 	unsigned int state;
 
-	if (!vcpu)
+	if (!kvm_pmi_in_guest(vcpu))
 		return 0;
 
 	state = PERF_GUEST_ACTIVE;
@@ -8430,9 +8432,10 @@ unsigned int kvm_guest_state(void)
 
 static unsigned long kvm_guest_get_ip(void)
 {
-	struct kvm_vcpu *vcpu = __this_cpu_read(current_vcpu);
+	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
 
-	if (WARN_ON_ONCE(!vcpu))
+	/* Retrieving the IP must be guarded by a call to kvm_guest_state(). */
+	if (WARN_ON_ONCE(!kvm_pmi_in_guest(vcpu)))
 		return 0;
 
 	return kvm_rip_read(vcpu);
@@ -8440,10 +8443,10 @@ static unsigned long kvm_guest_get_ip(void)
 
 static unsigned int kvm_handle_intel_pt_intr(void)
 {
-	struct kvm_vcpu *vcpu = __this_cpu_read(current_vcpu);
+	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
 
 	/* '0' on failure so that the !PT case can use a RET0 static call. */
-	if (!vcpu)
+	if (!kvm_pmi_in_guest(vcpu))
 		return 0;
 
 	kvm_make_request(KVM_REQ_PMI, vcpu);
diff --git a/arch/x86/kvm/x86.h b/arch/x86/kvm/x86.h
index ea264c4502e4..d070043fd2e8 100644
--- a/arch/x86/kvm/x86.h
+++ b/arch/x86/kvm/x86.h
@@ -385,18 +385,20 @@ static inline bool kvm_cstate_in_guest(struct kvm *kvm)
 	return kvm->arch.cstate_in_guest;
 }
 
-DECLARE_PER_CPU(struct kvm_vcpu *, current_vcpu);
-
 static inline void kvm_before_interrupt(struct kvm_vcpu *vcpu)
 {
-	__this_cpu_write(current_vcpu, vcpu);
+	WRITE_ONCE(vcpu->arch.handling_intr_from_guest, 1);
 }
 
 static inline void kvm_after_interrupt(struct kvm_vcpu *vcpu)
 {
-	__this_cpu_write(current_vcpu, NULL);
+	WRITE_ONCE(vcpu->arch.handling_intr_from_guest, 0);
 }
 
+static inline bool kvm_handling_nmi_from_guest(struct kvm_vcpu *vcpu)
+{
+	return !!vcpu->arch.handling_intr_from_guest;
+}
 
 static inline bool kvm_pat_valid(u64 data)
 {
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224517.387929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVU-0007RY-6u; Thu, 11 Nov 2021 02:08:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224517.387929; Thu, 11 Nov 2021 02:08:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVT-0007PX-JH; Thu, 11 Nov 2021 02:08:03 +0000
Received: by outflank-mailman (input) for mailman id 224517;
 Thu, 11 Nov 2021 02:08:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KjPY=P6=flex--seanjc.bounces.google.com=3_nqMYQYKCTknZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@srs-se1.protection.inumbo.net>)
 id 1mkzVR-0006EI-OZ
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:08:01 +0000
Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com
 [2607:f8b0:4864:20::449])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3195174c-4294-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 03:08:01 +0100 (CET)
Received: by mail-pf1-x449.google.com with SMTP id
 y124-20020a623282000000b0047a09271e49so3018593pfy.16
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:08:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3195174c-4294-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=BFR/1q5iLt3yf5kWLtXoY89YerPRd53Fbf8elisWPU4=;
        b=EyJdNG55YlgiJw0AhwmBWiBKFN2bqclVs6tFme/MMuM8bhcjKJQBF0OcoJBKQN4Yga
         axZl4D8H01llZcE+B1lMipS7te9ff2VOp7tm63SOZ0bYgRPgOvv7dz7am2CWgxpg0t7P
         MNRfZq3ijQaVJG2uCad7xkxWh1HPBFRFulQ+NTiiERVK6s/+qvvEEXRWQscxLcYr8ons
         RAPjBHbZ9nw0KZopTSMI8rlJItEVAXh71vLtMjT3aiL6FIEsbFQlPdO+7CY5ZUb3d8zc
         4THP+pE5BT9GJwVdJXE8nIpJ82zKI4sbu9siyG5CLHKeyWKTSNq0cqo3I766dA0RjB8y
         OjyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=BFR/1q5iLt3yf5kWLtXoY89YerPRd53Fbf8elisWPU4=;
        b=Ui+hDy6+QubLSDufoxtsnIRBxjO+FlrUWpAtYTi4hgYE7QNfT/3Hn1l17I5NwTpIwA
         gVkhK1+c9EPZIaYIukpFoZ4H1o30ZJZoTWN4p4SchM1YrWsqHmxLszvof1m1Jua7fy6s
         /VUBI1iW0zwFe8MG4v7bogG2GLEx/FRxbRWZliNj6Tu1oYaDy9RYmtaYJ1ExRLMGsRdN
         UO93QHUm3aIQykuGsjd86SzL2MTt775zv7wk+CKw9oHQES1o9xeu9nH5cLhEKBY2KryT
         0SFPCgaXxYMRLi5TL4GNoH8/fGDoLvxRntoUQOv+T4K5ppQUlvn7BaF6YMjzune19nM3
         r2Uw==
X-Gm-Message-State: AOAM533bZbFASSpgGzhK0svyDC9ScPiMlHtfzo+eJbSY11RQ5vNs12R7
	+6k/DOkojO183V9KjyOOikuZm49ZsUQ=
X-Google-Smtp-Source: ABdhPJzd8hxvmP15QQtACiUYvwIBDjhv9tE00/OdnnHyX3h6LjesiRmUGTAqyb2RSiJlII09jv6jyEbG1Qo=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:90a:c403:: with SMTP id
 i3mr23027931pjt.203.1636596478856; Wed, 10 Nov 2021 18:07:58 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:32 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-12-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 11/17] KVM: x86: More precisely identify NMI from guest
 when handling PMI
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Differentiate between IRQ and NMI for KVM's PMC overflow callback, which
was originally invoked in response to an NMI that arrived while the guest
was running, but was inadvertantly changed to fire on IRQs as well when
support for perf without PMU/NMI was added to KVM.  In practice, this
should be a nop as the PMC overflow callback shouldn't be reached, but
it's a cheap and easy fix that also better documents the situation.

Note, this also doesn't completely prevent false positives if perf
somehow ends up calling into KVM, e.g. an NMI can arrive in host after
KVM sets its flag.

Fixes: dd60d217062f ("KVM: x86: Fix perf timer mode IP reporting")
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kvm/svm/svm.c |  2 +-
 arch/x86/kvm/vmx/vmx.c |  4 +++-
 arch/x86/kvm/x86.c     |  2 +-
 arch/x86/kvm/x86.h     | 13 ++++++++++---
 4 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index b36ca4e476c2..df6a3e0bdcde 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -3936,7 +3936,7 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu)
 	}
 
 	if (unlikely(svm->vmcb->control.exit_code == SVM_EXIT_NMI))
-		kvm_before_interrupt(vcpu);
+		kvm_before_interrupt(vcpu, KVM_HANDLING_NMI);
 
 	kvm_load_host_xsave_state(vcpu);
 	stgi();
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 0927d07b2efb..36098eb9a7f9 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -6371,7 +6371,9 @@ void vmx_do_interrupt_nmi_irqoff(unsigned long entry);
 static void handle_interrupt_nmi_irqoff(struct kvm_vcpu *vcpu,
 					unsigned long entry)
 {
-	kvm_before_interrupt(vcpu);
+	bool is_nmi = entry == (unsigned long)asm_exc_nmi_noist;
+
+	kvm_before_interrupt(vcpu, is_nmi ? KVM_HANDLING_NMI : KVM_HANDLING_IRQ);
 	vmx_do_interrupt_nmi_irqoff(entry);
 	kvm_after_interrupt(vcpu);
 }
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c8ef49385c99..e9e1a4bb1d00 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -9837,7 +9837,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
 	 * interrupts on processors that implement an interrupt shadow, the
 	 * stat.exits increment will do nicely.
 	 */
-	kvm_before_interrupt(vcpu);
+	kvm_before_interrupt(vcpu, KVM_HANDLING_IRQ);
 	local_irq_enable();
 	++vcpu->stat.exits;
 	local_irq_disable();
diff --git a/arch/x86/kvm/x86.h b/arch/x86/kvm/x86.h
index d070043fd2e8..f8d2c58feadc 100644
--- a/arch/x86/kvm/x86.h
+++ b/arch/x86/kvm/x86.h
@@ -385,9 +385,16 @@ static inline bool kvm_cstate_in_guest(struct kvm *kvm)
 	return kvm->arch.cstate_in_guest;
 }
 
-static inline void kvm_before_interrupt(struct kvm_vcpu *vcpu)
+enum kvm_intr_type {
+	/* Values are arbitrary, but must be non-zero. */
+	KVM_HANDLING_IRQ = 1,
+	KVM_HANDLING_NMI,
+};
+
+static inline void kvm_before_interrupt(struct kvm_vcpu *vcpu,
+					enum kvm_intr_type intr)
 {
-	WRITE_ONCE(vcpu->arch.handling_intr_from_guest, 1);
+	WRITE_ONCE(vcpu->arch.handling_intr_from_guest, (u8)intr);
 }
 
 static inline void kvm_after_interrupt(struct kvm_vcpu *vcpu)
@@ -397,7 +404,7 @@ static inline void kvm_after_interrupt(struct kvm_vcpu *vcpu)
 
 static inline bool kvm_handling_nmi_from_guest(struct kvm_vcpu *vcpu)
 {
-	return !!vcpu->arch.handling_intr_from_guest;
+	return vcpu->arch.handling_intr_from_guest == KVM_HANDLING_NMI;
 }
 
 static inline bool kvm_pat_valid(u64 data)
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224518.387938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVW-0007pJ-6V; Thu, 11 Nov 2021 02:08:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224518.387938; Thu, 11 Nov 2021 02:08:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVV-0007lR-Di; Thu, 11 Nov 2021 02:08:05 +0000
Received: by outflank-mailman (input) for mailman id 224518;
 Thu, 11 Nov 2021 02:08:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7jdj=P6=flex--seanjc.bounces.google.com=3AHuMYQYKCTspbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@srs-se1.protection.inumbo.net>)
 id 1mkzVS-0004E5-Pa
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:08:03 +0000
Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com
 [2607:f8b0:4864:20::104a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3254a87b-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:08:01 +0100 (CET)
Received: by mail-pj1-x104a.google.com with SMTP id
 mv1-20020a17090b198100b001a67d5901d2so2244890pjb.7
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:08:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3254a87b-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=oYnqia9YA7bVBDeaVlw55plLCAqayCSEP3xux84BJdM=;
        b=IsKmUd/J87iw1VFStQflHD/2Sh0pdsf3hhMP98JSsjPzS8VAeZPT9/XiMMgynwDGIx
         GUOuoRcoAF/EWulmlEBFNA4SF48sxIzDCetM5TBZndJ5S/ZOc7jpm4WEvBtYJAeMUGgb
         /3vZ6Hu0BOxKJ2Z38aNlDAoo8VeXhVG2Jgd4ptB9gH/OdtP3qZR4FetIBTjJqtCIbHAK
         Ccr04SlDCfXtcHrWHVFv0GuZuWe/OROBoA5xmyooPgpMMRmAK4w2V4/PpUgItN1qHNnq
         iH6NXnt1NZvq3zk7IWL5Z/M48RyPPrUHQk5LiG0ORjorZ5ZMUuS7o8paCFWSMiCCecp/
         4qyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=oYnqia9YA7bVBDeaVlw55plLCAqayCSEP3xux84BJdM=;
        b=pCAOoZM2TNMKlglcuQAVuxVKoCo7Y16crgjMWPMxq0iJHjIItde/YwGTYagxvgZz09
         VWq5he74YC5jpj6QU715BuU1PO9kr8Jm78fmU0BQEjbaInbt0B4NwNCegUGsnFEHKqmB
         YXbP1IHk2QH1R6vLF/fn7097Q0HAJKsQdNqk+/yt+CJr11hv+PwfprnHX0loI2wJ1uTr
         AsKO+Sd0cO5xcr0MQo6CJJHGZYfoSp3Pm7n8EpePAzydpuihJEhNnBJqdz/fEk9WanWn
         XpvezsBiC2aSOOe7YaaMhEkyh6HqHwwNtg4IUeanoPo/nk9YUO+gMum+cRVAwdfUtNeu
         mYtA==
X-Gm-Message-State: AOAM533UV//mGgcvHoLHnmwni3HAIBcNBFs5rJkZTBTyXGS7mA9siHQH
	1uVAWeyZF2SEuOReIoAPHkLXf1znxt0=
X-Google-Smtp-Source: ABdhPJyq+sLPy+WJsNtaXEKOEBJ7ASAo6Br6LHZ97zNyZrIxCpdFo+uofVdj3X8YU3/GaaJw+V1rFU9AZzw=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:902:654b:b0:13d:c967:9cbd with SMTP id
 d11-20020a170902654b00b0013dc9679cbdmr3761037pln.88.1636596480287; Wed, 10
 Nov 2021 18:08:00 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:33 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-13-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 12/17] KVM: Move x86's perf guest info callbacks to generic KVM
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Move x86's perf guest callbacks into common KVM, as they are semantically
identical to arm64's callbacks (the only other such KVM callbacks).
arm64 will convert to the common versions in a future patch.

Implement the necessary arm64 arch hooks now to avoid having to provide
stubs or a temporary #define (from x86) to avoid arm64 compilation errors
when CONFIG_GUEST_PERF_EVENTS=y.

Acked-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/arm64/include/asm/kvm_host.h | 10 ++++++
 arch/arm64/kvm/arm.c              |  5 +++
 arch/x86/include/asm/kvm_host.h   |  3 ++
 arch/x86/kvm/x86.c                | 53 +++++++------------------------
 include/linux/kvm_host.h          | 10 ++++++
 virt/kvm/kvm_main.c               | 44 +++++++++++++++++++++++++
 6 files changed, 83 insertions(+), 42 deletions(-)

diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index 5a76d9a76fd9..72e2afe6e8e3 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -678,6 +678,16 @@ int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa);
 void kvm_perf_init(void);
 void kvm_perf_teardown(void);
 
+/*
+ * Returns true if a Performance Monitoring Interrupt (PMI), a.k.a. perf event,
+ * arrived in guest context.  For arm64, any event that arrives while a vCPU is
+ * loaded is considered to be "in guest".
+ */
+static inline bool kvm_arch_pmi_in_guest(struct kvm_vcpu *vcpu)
+{
+	return IS_ENABLED(CONFIG_GUEST_PERF_EVENTS) && !!vcpu;
+}
+
 long kvm_hypercall_pv_features(struct kvm_vcpu *vcpu);
 gpa_t kvm_init_stolen_time(struct kvm_vcpu *vcpu);
 void kvm_update_stolen_time(struct kvm_vcpu *vcpu);
diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
index f5490afe1ebf..93c952375f3b 100644
--- a/arch/arm64/kvm/arm.c
+++ b/arch/arm64/kvm/arm.c
@@ -496,6 +496,11 @@ bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu)
 	return vcpu_mode_priv(vcpu);
 }
 
+unsigned long kvm_arch_vcpu_get_ip(struct kvm_vcpu *vcpu)
+{
+	return *vcpu_pc(vcpu);
+}
+
 /* Just ensure a guest exit from a particular CPU */
 static void exit_vm_noop(void *info)
 {
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 812c08e797fe..ec16f645cb8c 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1565,6 +1565,9 @@ static inline int kvm_arch_flush_remote_tlb(struct kvm *kvm)
 		return -ENOTSUPP;
 }
 
+#define kvm_arch_pmi_in_guest(vcpu) \
+	((vcpu) && (vcpu)->arch.handling_intr_from_guest)
+
 int kvm_mmu_module_init(void);
 void kvm_mmu_module_exit(void);
 
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index e9e1a4bb1d00..bafd2e78ad04 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8410,43 +8410,12 @@ static void kvm_timer_init(void)
 			  kvmclock_cpu_online, kvmclock_cpu_down_prep);
 }
 
-static inline bool kvm_pmi_in_guest(struct kvm_vcpu *vcpu)
-{
-	return vcpu && vcpu->arch.handling_intr_from_guest;
-}
-
-static unsigned int kvm_guest_state(void)
-{
-	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
-	unsigned int state;
-
-	if (!kvm_pmi_in_guest(vcpu))
-		return 0;
-
-	state = PERF_GUEST_ACTIVE;
-	if (static_call(kvm_x86_get_cpl)(vcpu))
-		state |= PERF_GUEST_USER;
-
-	return state;
-}
-
-static unsigned long kvm_guest_get_ip(void)
-{
-	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
-
-	/* Retrieving the IP must be guarded by a call to kvm_guest_state(). */
-	if (WARN_ON_ONCE(!kvm_pmi_in_guest(vcpu)))
-		return 0;
-
-	return kvm_rip_read(vcpu);
-}
-
 static unsigned int kvm_handle_intel_pt_intr(void)
 {
 	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
 
 	/* '0' on failure so that the !PT case can use a RET0 static call. */
-	if (!kvm_pmi_in_guest(vcpu))
+	if (!kvm_arch_pmi_in_guest(vcpu))
 		return 0;
 
 	kvm_make_request(KVM_REQ_PMI, vcpu);
@@ -8455,12 +8424,6 @@ static unsigned int kvm_handle_intel_pt_intr(void)
 	return 1;
 }
 
-static struct perf_guest_info_callbacks kvm_guest_cbs = {
-	.state			= kvm_guest_state,
-	.get_ip			= kvm_guest_get_ip,
-	.handle_intel_pt_intr	= NULL,
-};
-
 #ifdef CONFIG_X86_64
 static void pvclock_gtod_update_fn(struct work_struct *work)
 {
@@ -11153,9 +11116,11 @@ int kvm_arch_hardware_setup(void *opaque)
 	memcpy(&kvm_x86_ops, ops->runtime_ops, sizeof(kvm_x86_ops));
 	kvm_ops_static_call_update();
 
+	/* Temporary ugliness. */
 	if (ops->intel_pt_intr_in_guest && ops->intel_pt_intr_in_guest())
-		kvm_guest_cbs.handle_intel_pt_intr = kvm_handle_intel_pt_intr;
-	perf_register_guest_info_callbacks(&kvm_guest_cbs);
+		kvm_register_perf_callbacks(kvm_handle_intel_pt_intr);
+	else
+		kvm_register_perf_callbacks(NULL);
 
 	if (!kvm_cpu_cap_has(X86_FEATURE_XSAVES))
 		supported_xss = 0;
@@ -11184,8 +11149,7 @@ int kvm_arch_hardware_setup(void *opaque)
 
 void kvm_arch_hardware_unsetup(void)
 {
-	perf_unregister_guest_info_callbacks(&kvm_guest_cbs);
-	kvm_guest_cbs.handle_intel_pt_intr = NULL;
+	kvm_unregister_perf_callbacks();
 
 	static_call(kvm_x86_hardware_unsetup)();
 }
@@ -11776,6 +11740,11 @@ bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu)
 	return vcpu->arch.preempted_in_kernel;
 }
 
+unsigned long kvm_arch_vcpu_get_ip(struct kvm_vcpu *vcpu)
+{
+	return kvm_rip_read(vcpu);
+}
+
 int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_exiting_guest_mode(vcpu) == IN_GUEST_MODE;
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 60a35d9fe259..da843044e0c1 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -1162,6 +1162,16 @@ static inline bool kvm_arch_intc_initialized(struct kvm *kvm)
 }
 #endif
 
+#ifdef CONFIG_GUEST_PERF_EVENTS
+unsigned long kvm_arch_vcpu_get_ip(struct kvm_vcpu *vcpu);
+
+void kvm_register_perf_callbacks(unsigned int (*pt_intr_handler)(void));
+void kvm_unregister_perf_callbacks(void);
+#else
+static inline void kvm_register_perf_callbacks(void *ign) {}
+static inline void kvm_unregister_perf_callbacks(void) {}
+#endif /* CONFIG_GUEST_PERF_EVENTS */
+
 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type);
 void kvm_arch_destroy_vm(struct kvm *kvm);
 void kvm_arch_sync_events(struct kvm *kvm);
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 3f6d450355f0..75d32fc031b5 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -5479,6 +5479,50 @@ struct kvm_vcpu * __percpu *kvm_get_running_vcpus(void)
         return &kvm_running_vcpu;
 }
 
+#ifdef CONFIG_GUEST_PERF_EVENTS
+static unsigned int kvm_guest_state(void)
+{
+	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
+	unsigned int state;
+
+	if (!kvm_arch_pmi_in_guest(vcpu))
+		return 0;
+
+	state = PERF_GUEST_ACTIVE;
+	if (!kvm_arch_vcpu_in_kernel(vcpu))
+		state |= PERF_GUEST_USER;
+
+	return state;
+}
+
+static unsigned long kvm_guest_get_ip(void)
+{
+	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
+
+	/* Retrieving the IP must be guarded by a call to kvm_guest_state(). */
+	if (WARN_ON_ONCE(!kvm_arch_pmi_in_guest(vcpu)))
+		return 0;
+
+	return kvm_arch_vcpu_get_ip(vcpu);
+}
+
+static struct perf_guest_info_callbacks kvm_guest_cbs = {
+	.state			= kvm_guest_state,
+	.get_ip			= kvm_guest_get_ip,
+	.handle_intel_pt_intr	= NULL,
+};
+
+void kvm_register_perf_callbacks(unsigned int (*pt_intr_handler)(void))
+{
+	kvm_guest_cbs.handle_intel_pt_intr = pt_intr_handler;
+	perf_register_guest_info_callbacks(&kvm_guest_cbs);
+}
+void kvm_unregister_perf_callbacks(void)
+{
+	perf_unregister_guest_info_callbacks(&kvm_guest_cbs);
+}
+#endif
+
 struct kvm_cpu_compat_check {
 	void *opaque;
 	int *ret;
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:08:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:08:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224522.387959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVZ-0000CN-Gu; Thu, 11 Nov 2021 02:08:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224522.387959; Thu, 11 Nov 2021 02:08:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzVZ-0000BY-3a; Thu, 11 Nov 2021 02:08:09 +0000
Received: by outflank-mailman (input) for mailman id 224522;
 Thu, 11 Nov 2021 02:08:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6nTK=P6=flex--seanjc.bounces.google.com=3A3uMYQYKCT4xjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@srs-se1.protection.inumbo.net>)
 id 1mkzVW-0006EI-5p
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:08:06 +0000
Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com
 [2607:f8b0:4864:20::104a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 346bb3f2-4294-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 03:08:05 +0100 (CET)
Received: by mail-pj1-x104a.google.com with SMTP id
 bf17-20020a17090b0b1100b001a634dbd737so2245278pjb.9
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:08:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 346bb3f2-4294-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=mw+8kRBMaigpdPoQg441qk6T9IEU8krLENLSjCCr4zw=;
        b=SrMofVJY/GjIpbuhbq5Q0NchE90Iee1Zg/DXzrBAL+84O+9mkb6Cvy4kbuTgC9NQoK
         tBqW8VuJ90++OLutVCiS1ya3l32W+JKb2BOUzxT4CfsJTbL/puTXQsav1euvT3+gukG2
         yS7t4ZuH8QzI7fhcSd7lINxxYvVsKg3i3FXbG+Q8gteNmUbpj11OvRbe8kbh++awXIwA
         lQ4l1HocfEVizMh2041kgc72dvgbUqXNAgsThfb0ZWYRAHAJLmF2dzBFcQYmNC3B4SgG
         os87bSDOwQmR/d7G3NMYHAuPjpmsSI+LJUHPF3mp7ZDo3cMuuRvUGMBLZ8TO5A0n/acG
         yo8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=mw+8kRBMaigpdPoQg441qk6T9IEU8krLENLSjCCr4zw=;
        b=aBWSAR1+eMODIW56WUCqc5qFCzMS9Sd0eo56/w05nkK3YMt99Tor5CzTpIrhrvPXt5
         TmW2DoEkM6GuZsl95RltrEQGw7vJShE4HHoXXBjC05wGGRhq6tRYxIvJzIFw8kA3Q9dL
         3tkY9unPYjV3bbmq5YB3xnMtr3ulyRaSGnZYB+MnulAsoMUwbmiQ11xoowGX0FNeddSf
         hOrUXLCDcyVQDn6P1xt85j5C5vbQhSdIULU5fKQwAf3o0xTTMYtyA7y8BOfmWA+YgT+R
         L8E6xzIq2lBtc8or98Pd7yTxkqmwuPMNzvOwEh+gpsJtlsnwBG76M+Z8O+7wuHPsbLM8
         6dEw==
X-Gm-Message-State: AOAM532Zpb84jzarzV7wQjAwjmLj/zbU2VgZIFD3iSl0MV+7ritSmoDJ
	UCVB2yJ1d+jh71P+UBej38/ZYSQk6Og=
X-Google-Smtp-Source: ABdhPJz67wmixiDyySBDTYDOJ0Ka4b7LxO+H1fUSrGnT0BW1K6fuhepd8JhPlaHMI6pEBAJMacMWw56NTRg=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:902:e789:b0:140:801:1262 with SMTP id
 cp9-20020a170902e78900b0014008011262mr4254554plb.42.1636596483663; Wed, 10
 Nov 2021 18:08:03 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:35 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-15-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 14/17] KVM: arm64: Convert to the generic perf callbacks
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Drop arm64's version of the callbacks in favor of the callbacks provided
by generic KVM, which are semantically identical.

Reviewed-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/arm64/kvm/perf.c | 34 ++--------------------------------
 1 file changed, 2 insertions(+), 32 deletions(-)

diff --git a/arch/arm64/kvm/perf.c b/arch/arm64/kvm/perf.c
index dfa9bce8559e..374c496a3f1d 100644
--- a/arch/arm64/kvm/perf.c
+++ b/arch/arm64/kvm/perf.c
@@ -13,42 +13,12 @@
 
 DEFINE_STATIC_KEY_FALSE(kvm_arm_pmu_available);
 
-static unsigned int kvm_guest_state(void)
-{
-	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
-	unsigned int state;
-
-	if (!vcpu)
-		return 0;
-
-	state = PERF_GUEST_ACTIVE;
-	if (!vcpu_mode_priv(vcpu))
-		state |= PERF_GUEST_USER;
-
-	return state;
-}
-
-static unsigned long kvm_get_guest_ip(void)
-{
-	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
-
-	if (WARN_ON_ONCE(!vcpu))
-		return 0;
-
-	return *vcpu_pc(vcpu);
-}
-
-static struct perf_guest_info_callbacks kvm_guest_cbs = {
-	.state		= kvm_guest_state,
-	.get_ip		= kvm_get_guest_ip,
-};
-
 void kvm_perf_init(void)
 {
-	perf_register_guest_info_callbacks(&kvm_guest_cbs);
+	kvm_register_perf_callbacks(NULL);
 }
 
 void kvm_perf_teardown(void)
 {
-	perf_unregister_guest_info_callbacks(&kvm_guest_cbs);
+	kvm_unregister_perf_callbacks();
 }
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:17:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224569.387971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkze8-00059E-EJ; Thu, 11 Nov 2021 02:17:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224569.387971; Thu, 11 Nov 2021 02:17:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkze8-000597-9N; Thu, 11 Nov 2021 02:17:00 +0000
Received: by outflank-mailman (input) for mailman id 224569;
 Thu, 11 Nov 2021 02:16:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rInb=P6=flex--seanjc.bounces.google.com=3CHuMYQYKCUMxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@srs-se1.protection.inumbo.net>)
 id 1mkzVd-0006EI-53
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:08:13 +0000
Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com
 [2607:f8b0:4864:20::549])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37518b66-4294-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 03:08:10 +0100 (CET)
Received: by mail-pg1-x549.google.com with SMTP id
 r7-20020a63ce47000000b002a5cadd2f25so2489888pgi.9
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:08:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37518b66-4294-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=OsKSO91+IQOd1IkS1z06+WXQrIrb9btCelj8IT/rfjk=;
        b=UjO1QsSOEJxaGsYGL3Apu9warF+RLCb7N0O8lrT4uA7hcwAOXn0B9aIpQDfjrTQVV9
         GpUiUx0P3EvrUcerrFYJ43Q90SJS/Gs68/jHuhbKg4LsEjNWoUkdOiAjjqiiHSBSgjMG
         R7y7UnI6YE9rNtmXbNbVt3sbKA6jvhnnGELbGyK4SRL2xwd9sX+q3f8jF57/MEhgUPD+
         t/+a9Sg8Ta3/1ptTGbTPekcMLXxNe7dS033Slo6cfYWGcnVi+krIVbSkYZwCP0WX4pZh
         GTnRwbyA69uU8U608boW9DzCYJ+6PE43F4bM/b41jK5pMY5lvLJwB8NslG8L5Jh5BxcV
         /FSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=OsKSO91+IQOd1IkS1z06+WXQrIrb9btCelj8IT/rfjk=;
        b=jzTJFtad77XKAjspXpiyaHJNm3+SbtZ7TiIal7Imv6zOiPWQ1AFNb/SlHJthDuVhfq
         I0sZYD9rF/W5Rq0CVfge2MmyaU3CgSZyjCpW8o5cS2gov1df/lqdGuXMV/8DxEcW9mPk
         fPCf4n2AE0Y8nyIJYwnsT69zLQtzxPaaoKwUE+hZ0nbNle+VetXT9sfkD7DTv7tK+hNS
         g6nsCMS4+Z5h/J1BpMrs9QH9pjmssEepxThyWxG9bCyUCIQbaIG5lUO4L4ICfP8l6nEU
         1UYVApzpnN2kg8jsTmucLL6Fn78mPOiR+vcNFuhlaGhpVEa+Y/5K0hm2XG0CkE0rbH8Y
         KpIA==
X-Gm-Message-State: AOAM5326EG2r86pxHU+zSR/ZZ1ErknJ/7CY2kNZvWB6tlt1+XPdy5wu4
	i02HpPbdgaou9F7iuOF7gVtkRQeI78k=
X-Google-Smtp-Source: ABdhPJyHlT5oqharcB3QQjRQ4qoO/10ujhci23RJu5uAP9JkYDshL4v2uHHALGrgFqagvzcYI5ZLh/T3x7g=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:90a:1950:: with SMTP id
 16mr4223713pjh.126.1636596488573; Wed, 10 Nov 2021 18:08:08 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:38 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-18-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 17/17] perf: Drop guest callback (un)register stubs
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Drop perf's stubs for (un)registering guest callbacks now that KVM
registration of callbacks is hidden behind GUEST_PERF_EVENTS=y.  The only
other user is x86 XEN_PV, and x86 unconditionally selects PERF_EVENTS.

No functional change intended.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 include/linux/perf_event.h | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 0ac7d867ca0c..7b7525e9155f 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1511,11 +1511,6 @@ perf_sw_event(u32 event_id, u64 nr, struct pt_regs *regs, u64 addr)	{ }
 static inline void
 perf_bp_event(struct perf_event *event, void *data)			{ }
 
-static inline void perf_register_guest_info_callbacks
-(struct perf_guest_info_callbacks *cbs)					{ }
-static inline void perf_unregister_guest_info_callbacks
-(struct perf_guest_info_callbacks *cbs)					{ }
-
 static inline void perf_event_mmap(struct vm_area_struct *vma)		{ }
 
 typedef int (perf_ksymbol_get_name_f)(char *name, int name_len, void *data);
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:17:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:17:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224580.387982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzeI-0005VA-N8; Thu, 11 Nov 2021 02:17:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224580.387982; Thu, 11 Nov 2021 02:17:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzeI-0005V1-IK; Thu, 11 Nov 2021 02:17:10 +0000
Received: by outflank-mailman (input) for mailman id 224580;
 Thu, 11 Nov 2021 02:17:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+3la=P6=flex--seanjc.bounces.google.com=3BnuMYQYKCUEvhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@srs-se1.protection.inumbo.net>)
 id 1mkzVZ-0004E5-62
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:08:09 +0000
Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com
 [2607:f8b0:4864:20::104a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 364f424d-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:08:08 +0100 (CET)
Received: by mail-pj1-x104a.google.com with SMTP id
 b8-20020a17090a10c800b001a61dff6c9dso2018891pje.5
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:08:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 364f424d-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=4wLzPjAo6SC+6dg2XS8LE13lS3wGpQbHkLiaUdVh1zk=;
        b=MuegJeAyDDNZ2tSTgnRGgC7IKnaetIrZypWHgoI7HXfYfypgKJOXeWWLy35dN1C9Kq
         TYdkeXtBhBOimwcZ3top4kHa71CLV6qdvRNUhm81hZ5K3i6YVl/7AXor+8dNYxvAPJer
         ZwGoTfRUt1iBgIiACbYvtCaYyKTtXhPXR+X+RVc6NhZKJJXGXYjtiG/SPUOKx15Mns+w
         h7LMujRE3QFVnTWofLpidFxhxt+qp0BXQN3PgH1ZjZAnDhIuNVlz9u1BvqFo2bLBUTc6
         Fb2NGscm3LpQizlsfcqGjFJsDCfeEgXwB7noSeS86XmgLfWQWeulkCp9qWhLyPOP5PC4
         rOAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=4wLzPjAo6SC+6dg2XS8LE13lS3wGpQbHkLiaUdVh1zk=;
        b=B84REx84f4nc98BxSuRbUSNNQgCJbys0arDci25EGqMvPU8qKnGvpiUpyfGGmTgIm3
         /NPR2BocGotMEU5GIXDQTICDrTmmub8nBwh5jh7vTAAj6Dvh85TCMGZsyo5wWFfESQhq
         zWtTWv3XK+qbMXVOFUbSC15GiV73PjqNoe/LibjkmbXsZAI5yI37rbjxVDn2tgF4+cW7
         eXxdrh1Ecb1STunV6XegPfV1gsuAHpHh6fxpIrbCADHyGuPhJxo9eCFjcj+BAPl66fOU
         85pZKR5MDbgZu3Mj5qFsKKBCCazwKu6JYI6+9U5C2v399dr6K7hNE2xUCs/7lhfJkqAf
         cQ5A==
X-Gm-Message-State: AOAM530cBf+rcuL0oBBQKWtkbEBDKeLl1gWp17dRJDW8AZeTyb+ql+jI
	hbDPqqQg+KU1FHUmRqMqY+wVv6HJwgo=
X-Google-Smtp-Source: ABdhPJzOf3D2n0+h+qFn/cUAHxeQwCrLXPititoZgPJ6cdaqRRoa4xxgHhA3Yjjnbd9PcZR94r6p632KxHo=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a62:16c7:0:b0:49f:a6cc:c77d with SMTP id
 190-20020a6216c7000000b0049fa6ccc77dmr3410123pfw.23.1636596486947; Wed, 10
 Nov 2021 18:08:06 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:37 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-17-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 16/17] KVM: arm64: Drop perf.c and fold its tiny bits of
 code into arm.c
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Call KVM's (un)register perf callbacks helpers directly from arm.c and
delete perf.c

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/arm64/include/asm/kvm_host.h |  3 ---
 arch/arm64/kvm/Makefile           |  2 +-
 arch/arm64/kvm/arm.c              |  5 +++--
 arch/arm64/kvm/perf.c             | 22 ----------------------
 4 files changed, 4 insertions(+), 28 deletions(-)
 delete mode 100644 arch/arm64/kvm/perf.c

diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index 72e2afe6e8e3..824040b174ab 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -675,9 +675,6 @@ unsigned long kvm_mmio_read_buf(const void *buf, unsigned int len);
 int kvm_handle_mmio_return(struct kvm_vcpu *vcpu);
 int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa);
 
-void kvm_perf_init(void);
-void kvm_perf_teardown(void);
-
 /*
  * Returns true if a Performance Monitoring Interrupt (PMI), a.k.a. perf event,
  * arrived in guest context.  For arm64, any event that arrives while a vCPU is
diff --git a/arch/arm64/kvm/Makefile b/arch/arm64/kvm/Makefile
index 989bb5dad2c8..0bcc378b7961 100644
--- a/arch/arm64/kvm/Makefile
+++ b/arch/arm64/kvm/Makefile
@@ -12,7 +12,7 @@ obj-$(CONFIG_KVM) += hyp/
 
 kvm-y := $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o \
 	 $(KVM)/vfio.o $(KVM)/irqchip.o $(KVM)/binary_stats.o \
-	 arm.o mmu.o mmio.o psci.o perf.o hypercalls.o pvtime.o \
+	 arm.o mmu.o mmio.o psci.o hypercalls.o pvtime.o \
 	 inject_fault.o va_layout.o handle_exit.o \
 	 guest.o debug.o reset.o sys_regs.o \
 	 vgic-sys-reg-v3.o fpsimd.o pmu.o \
diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
index 93c952375f3b..8d18a64a72f1 100644
--- a/arch/arm64/kvm/arm.c
+++ b/arch/arm64/kvm/arm.c
@@ -1776,7 +1776,8 @@ static int init_subsystems(void)
 	if (err)
 		goto out;
 
-	kvm_perf_init();
+	kvm_register_perf_callbacks(NULL);
+
 	kvm_sys_reg_table_init();
 
 out:
@@ -2164,7 +2165,7 @@ int kvm_arch_init(void *opaque)
 /* NOP: Compiling as a module not supported */
 void kvm_arch_exit(void)
 {
-	kvm_perf_teardown();
+	kvm_unregister_perf_callbacks();
 }
 
 static int __init early_kvm_mode_cfg(char *arg)
diff --git a/arch/arm64/kvm/perf.c b/arch/arm64/kvm/perf.c
deleted file mode 100644
index 52cfab253c65..000000000000
--- a/arch/arm64/kvm/perf.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Based on the x86 implementation.
- *
- * Copyright (C) 2012 ARM Ltd.
- * Author: Marc Zyngier <marc.zyngier@arm.com>
- */
-
-#include <linux/perf_event.h>
-#include <linux/kvm_host.h>
-
-#include <asm/kvm_emulate.h>
-
-void kvm_perf_init(void)
-{
-	kvm_register_perf_callbacks(NULL);
-}
-
-void kvm_perf_teardown(void)
-{
-	kvm_unregister_perf_callbacks();
-}
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:17:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:17:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224581.387992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzeJ-0005mn-WB; Thu, 11 Nov 2021 02:17:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224581.387992; Thu, 11 Nov 2021 02:17:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzeJ-0005lm-Rp; Thu, 11 Nov 2021 02:17:11 +0000
Received: by outflank-mailman (input) for mailman id 224581;
 Thu, 11 Nov 2021 02:17:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SlTo=P6=flex--seanjc.bounces.google.com=3AXuMYQYKCTwqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@srs-se1.protection.inumbo.net>)
 id 1mkzVU-0004E5-7A
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:08:04 +0000
Received: from mail-pf1-x44a.google.com (mail-pf1-x44a.google.com
 [2607:f8b0:4864:20::44a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 33566626-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:08:03 +0100 (CET)
Received: by mail-pf1-x44a.google.com with SMTP id
 134-20020a62198c000000b0047bf0981003so3066318pfz.4
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:08:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33566626-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=fHeYagzJUlx8WvSWOWzAacKfteJvqH26iwX6/BL5oRM=;
        b=I1iMFlsTKJ7I9ZBlooH8LUuysl6kvigdxx570TJkSRxR5Epl554X0SupugqMgxooRa
         Js7Gd3LnB4f/Od2LdYQfjJvJrd7Jj5SR+bgYd/KsVTHaX78qwBxLzlhPNrgrGQW9HBZM
         Gf+2IkKjJau7mgLZiDcv4KWoS8FOEgdksbSmIKXguTp9uiLzYV0qE4TCK48GTJ0xK34S
         pPAdtQowal2kVffJJ8FkMF2ePQNvYgo/wLvddDptRGq7iTfLonp7DuFAyOF+gUabTETs
         Um+LI0mma5pdcsVh0PUQ0Cq0ms/rh1QbrsfaYQV7RfZ7Xi1vwzyVVaWe1zMfes0/v0pu
         VVEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=fHeYagzJUlx8WvSWOWzAacKfteJvqH26iwX6/BL5oRM=;
        b=f3ocXV1UHZzLR8iVN+85j7az7ZGPOPZWmn7eNoFx/gN3A2O23dtJOyw0BxFJDKM25E
         uCZhHG+S6mgJGoEZG4MGbJfWq7u6zDNjvpCYmbmO/JXN4EdbMARkq5nybO86cnz6puXv
         jPKUdhPhZF+9QJQUBFQR0uqjri6+zNmqBmY49CtjYANG5U/z02X60b3CNFXioD6CKJEv
         58WTybC/ItahFblHZjs7T8xZJ/TSCfKP4I4llILnZM8aheduId9hYYwNSdWMDsvtON6U
         isJOnzCtPYTYOMUHLLRDUeW2PzingFmJsIvFpTqQKko9h+w67+YbPIfm3datBhayqdlU
         uHqw==
X-Gm-Message-State: AOAM531haqjgsV15iBLYZ3S6OAmyNwoz4b8PZg3YusA7IpFfO5GCLzi+
	N3gtWVo3SjZkacqau5z3e9zfnR934MY=
X-Google-Smtp-Source: ABdhPJwlj+RL95wDPLaJIcjI0VzoyEr26DB5cELwjkd8PtU9zdr9HE6g2qmDfqx1IbL5j6HU26ZztAJb2Z8=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:aa7:808e:0:b0:493:f071:274f with SMTP id
 v14-20020aa7808e000000b00493f071274fmr3568138pff.37.1636596481978; Wed, 10
 Nov 2021 18:08:01 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:34 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-14-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 13/17] KVM: x86: Move Intel Processor Trace interrupt
 handler to vmx.c
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Now that all state needed for VMX's PT interrupt handler is exposed to
vmx.c (specifically the currently running vCPU), move the handler into
vmx.c where it belongs.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_host.h |  2 +-
 arch/x86/kvm/vmx/vmx.c          | 22 +++++++++++++++++++++-
 arch/x86/kvm/x86.c              | 20 +-------------------
 3 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index ec16f645cb8c..621bedff0aa5 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1515,7 +1515,7 @@ struct kvm_x86_init_ops {
 	int (*disabled_by_bios)(void);
 	int (*check_processor_compatibility)(void);
 	int (*hardware_setup)(void);
-	bool (*intel_pt_intr_in_guest)(void);
+	unsigned int (*handle_intel_pt_intr)(void);
 
 	struct kvm_x86_ops *runtime_ops;
 };
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 36098eb9a7f9..7cb7f261f7dc 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -7708,6 +7708,20 @@ static struct kvm_x86_ops vmx_x86_ops __initdata = {
 	.vcpu_deliver_sipi_vector = kvm_vcpu_deliver_sipi_vector,
 };
 
+static unsigned int vmx_handle_intel_pt_intr(void)
+{
+	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
+
+	/* '0' on failure so that the !PT case can use a RET0 static call. */
+	if (!kvm_arch_pmi_in_guest(vcpu))
+		return 0;
+
+	kvm_make_request(KVM_REQ_PMI, vcpu);
+	__set_bit(MSR_CORE_PERF_GLOBAL_OVF_CTRL_TRACE_TOPA_PMI_BIT,
+		  (unsigned long *)&vcpu->arch.pmu.global_status);
+	return 1;
+}
+
 static __init void vmx_setup_user_return_msrs(void)
 {
 
@@ -7734,6 +7748,8 @@ static __init void vmx_setup_user_return_msrs(void)
 		kvm_add_user_return_msr(vmx_uret_msrs_list[i]);
 }
 
+static struct kvm_x86_init_ops vmx_init_ops __initdata;
+
 static __init int hardware_setup(void)
 {
 	unsigned long host_bndcfgs;
@@ -7892,6 +7908,10 @@ static __init int hardware_setup(void)
 		return -EINVAL;
 	if (!enable_ept || !cpu_has_vmx_intel_pt())
 		pt_mode = PT_MODE_SYSTEM;
+	if (pt_mode == PT_MODE_HOST_GUEST)
+		vmx_init_ops.handle_intel_pt_intr = vmx_handle_intel_pt_intr;
+	else
+		vmx_init_ops.handle_intel_pt_intr = NULL;
 
 	setup_default_sgx_lepubkeyhash();
 
@@ -7920,7 +7940,7 @@ static struct kvm_x86_init_ops vmx_init_ops __initdata = {
 	.disabled_by_bios = vmx_disabled_by_bios,
 	.check_processor_compatibility = vmx_check_processor_compat,
 	.hardware_setup = hardware_setup,
-	.intel_pt_intr_in_guest = vmx_pt_mode_is_host_guest,
+	.handle_intel_pt_intr = NULL,
 
 	.runtime_ops = &vmx_x86_ops,
 };
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index bafd2e78ad04..a4d25d0587e6 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8410,20 +8410,6 @@ static void kvm_timer_init(void)
 			  kvmclock_cpu_online, kvmclock_cpu_down_prep);
 }
 
-static unsigned int kvm_handle_intel_pt_intr(void)
-{
-	struct kvm_vcpu *vcpu = kvm_get_running_vcpu();
-
-	/* '0' on failure so that the !PT case can use a RET0 static call. */
-	if (!kvm_arch_pmi_in_guest(vcpu))
-		return 0;
-
-	kvm_make_request(KVM_REQ_PMI, vcpu);
-	__set_bit(MSR_CORE_PERF_GLOBAL_OVF_CTRL_TRACE_TOPA_PMI_BIT,
-			(unsigned long *)&vcpu->arch.pmu.global_status);
-	return 1;
-}
-
 #ifdef CONFIG_X86_64
 static void pvclock_gtod_update_fn(struct work_struct *work)
 {
@@ -11116,11 +11102,7 @@ int kvm_arch_hardware_setup(void *opaque)
 	memcpy(&kvm_x86_ops, ops->runtime_ops, sizeof(kvm_x86_ops));
 	kvm_ops_static_call_update();
 
-	/* Temporary ugliness. */
-	if (ops->intel_pt_intr_in_guest && ops->intel_pt_intr_in_guest())
-		kvm_register_perf_callbacks(kvm_handle_intel_pt_intr);
-	else
-		kvm_register_perf_callbacks(NULL);
+	kvm_register_perf_callbacks(ops->handle_intel_pt_intr);
 
 	if (!kvm_cpu_cap_has(X86_FEATURE_XSAVES))
 		supported_xss = 0;
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 02:17:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 02:17:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224586.387999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzeK-0005uS-Ic; Thu, 11 Nov 2021 02:17:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224586.387999; Thu, 11 Nov 2021 02:17:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mkzeK-0005rX-DS; Thu, 11 Nov 2021 02:17:12 +0000
Received: by outflank-mailman (input) for mailman id 224586;
 Thu, 11 Nov 2021 02:17:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WKvj=P6=flex--seanjc.bounces.google.com=3BXuMYQYKCUAugcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@srs-se1.protection.inumbo.net>)
 id 1mkzVY-0004E5-29
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 02:08:08 +0000
Received: from mail-pg1-x54a.google.com (mail-pg1-x54a.google.com
 [2607:f8b0:4864:20::54a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 355f8803-4294-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 03:08:07 +0100 (CET)
Received: by mail-pg1-x54a.google.com with SMTP id
 j18-20020a63fc12000000b002dd2237eb1cso2508252pgi.5
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 18:08:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 355f8803-4294-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20210112;
        h=reply-to:date:in-reply-to:message-id:mime-version:references
         :subject:from:to:cc;
        bh=/YIqAIDcHFuwAQfZoGFGpCQkR+bed1xlNZgqyVQf28E=;
        b=e7isaWxZT/WwPXJW8Qx7YWkAPbx8+WwYXnyULWOmnQdcxssVcaIQUjV7l9ocfrzj/1
         z1dBSLWak0xiQCBEw4pQBZlvDqmdEqTRJUP+Z40PCX/NEachrYFN0ukP1ZGzNNDz6hC8
         ypXPhlkEqsMB53P1s/G0Q8Dg2n01FI0WXWYQbrYIvGu6VNt899fuhgkx/Wx+L0fumdK0
         DgUKSgQ9NGEeMAWRcQat/qxuE6PEmuWNOgqyoFgMMRQ8e+j8axNSLg3wwL/mVfqWCfju
         QtZrvT4+EtSeFefALo6da9zs6M611OWSowxrRuYjpqYPmBtDlX0Y/PjaKJe2gSlYH6Gm
         X8tw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:reply-to:date:in-reply-to:message-id
         :mime-version:references:subject:from:to:cc;
        bh=/YIqAIDcHFuwAQfZoGFGpCQkR+bed1xlNZgqyVQf28E=;
        b=diyZP+EqWc/AHfEph704YUtq3F6Vn9j46zuZFtgStta1/c0gAphCQYp05dsottdD6w
         2++Ppy8ySCXyLPIn5TZj06Xf0s2GJ6PUQwjjWPcDd7iNEtCGxh908eTCij3uzXizTkxV
         RgrMeKyti3f3Js4H1n8MnlgV8nTS5BaZJxILIw8302oQjBs6RVl/xFMlVsCTk1XNYG5v
         CoSnwDd9DRLmOJgXDIdF/K2egw0nepOiUX1fEojaoHQtja1UuOHocJHc2iargouUW3V2
         Qjjqtn8obFxBFCm8bApcXXmGE288uH4LHOuZ5DCUtYh70S8HBXRqNyYkBbAxtRNAtEug
         KHZw==
X-Gm-Message-State: AOAM532h9WzU1qZVvbIZhu4+tNHs9+IfAP0LHDI0ziljPhdpfi108M+z
	IzorTxPCdXI4P6lThsHs3s4a7HVbh/k=
X-Google-Smtp-Source: ABdhPJzNTXRg0manAu6ukUacQ/aIuXahOUAgZ+nsuAEIEEiY7jrc1n1CQ1z/uBehVd+2Ly8STcnpos0K1ss=
X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5])
 (user=seanjc job=sendgmr) by 2002:a17:902:e88a:b0:141:dfde:eed7 with SMTP id
 w10-20020a170902e88a00b00141dfdeeed7mr4246270plg.17.1636596485366; Wed, 10
 Nov 2021 18:08:05 -0800 (PST)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Thu, 11 Nov 2021 02:07:36 +0000
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>
Message-Id: <20211111020738.2512932-16-seanjc@google.com>
Mime-Version: 1.0
References: <20211111020738.2512932-1-seanjc@google.com>
X-Mailer: git-send-email 2.34.0.rc0.344.g81b53c2807-goog
Subject: [PATCH v4 15/17] KVM: arm64: Hide kvm_arm_pmu_available behind CONFIG_HW_PERF_EVENTS=y
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
	Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Guo Ren <guoren@kernel.org>, 
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>, 
	Vincent Chen <deanbo422@gmail.com>, Paul Walmsley <paul.walmsley@sifive.com>, 
	Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
	Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, 
	Namhyung Kim <namhyung@kernel.org>, James Morse <james.morse@arm.com>, 
	Alexandru Elisei <alexandru.elisei@arm.com>, Suzuki K Poulose <suzuki.poulose@arm.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>, 
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, linux-perf-users@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, 
	linux-riscv@lists.infradead.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Artem Kashkanov <artem.kashkanov@intel.com>, 
	Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>, 
	Zhu Lingshan <lingshan.zhu@intel.com>
Content-Type: text/plain; charset="UTF-8"

Move the definition of kvm_arm_pmu_available to pmu-emul.c and, out of
"necessity", hide it behind CONFIG_HW_PERF_EVENTS.  Provide a stub for
the key's wrapper, kvm_arm_support_pmu_v3().  Moving the key's definition
out of perf.c will allow a future commit to delete perf.c entirely.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/arm64/kernel/image-vars.h |  2 ++
 arch/arm64/kvm/perf.c          |  2 --
 arch/arm64/kvm/pmu-emul.c      |  2 ++
 include/kvm/arm_pmu.h          | 19 ++++++++++++-------
 4 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/arch/arm64/kernel/image-vars.h b/arch/arm64/kernel/image-vars.h
index c96a9a0043bf..7eaf1f7c4168 100644
--- a/arch/arm64/kernel/image-vars.h
+++ b/arch/arm64/kernel/image-vars.h
@@ -102,7 +102,9 @@ KVM_NVHE_ALIAS(__stop___kvm_ex_table);
 KVM_NVHE_ALIAS(kvm_arm_hyp_percpu_base);
 
 /* PMU available static key */
+#ifdef CONFIG_HW_PERF_EVENTS
 KVM_NVHE_ALIAS(kvm_arm_pmu_available);
+#endif
 
 /* Position-independent library routines */
 KVM_NVHE_ALIAS_HYP(clear_page, __pi_clear_page);
diff --git a/arch/arm64/kvm/perf.c b/arch/arm64/kvm/perf.c
index 374c496a3f1d..52cfab253c65 100644
--- a/arch/arm64/kvm/perf.c
+++ b/arch/arm64/kvm/perf.c
@@ -11,8 +11,6 @@
 
 #include <asm/kvm_emulate.h>
 
-DEFINE_STATIC_KEY_FALSE(kvm_arm_pmu_available);
-
 void kvm_perf_init(void)
 {
 	kvm_register_perf_callbacks(NULL);
diff --git a/arch/arm64/kvm/pmu-emul.c b/arch/arm64/kvm/pmu-emul.c
index a5e4bbf5e68f..3308ceefa129 100644
--- a/arch/arm64/kvm/pmu-emul.c
+++ b/arch/arm64/kvm/pmu-emul.c
@@ -14,6 +14,8 @@
 #include <kvm/arm_pmu.h>
 #include <kvm/arm_vgic.h>
 
+DEFINE_STATIC_KEY_FALSE(kvm_arm_pmu_available);
+
 static void kvm_pmu_create_perf_event(struct kvm_vcpu *vcpu, u64 select_idx);
 static void kvm_pmu_update_pmc_chained(struct kvm_vcpu *vcpu, u64 select_idx);
 static void kvm_pmu_stop_counter(struct kvm_vcpu *vcpu, struct kvm_pmc *pmc);
diff --git a/include/kvm/arm_pmu.h b/include/kvm/arm_pmu.h
index 90f21898aad8..f9ed4c171d7b 100644
--- a/include/kvm/arm_pmu.h
+++ b/include/kvm/arm_pmu.h
@@ -13,13 +13,6 @@
 #define ARMV8_PMU_CYCLE_IDX		(ARMV8_PMU_MAX_COUNTERS - 1)
 #define ARMV8_PMU_MAX_COUNTER_PAIRS	((ARMV8_PMU_MAX_COUNTERS + 1) >> 1)
 
-DECLARE_STATIC_KEY_FALSE(kvm_arm_pmu_available);
-
-static __always_inline bool kvm_arm_support_pmu_v3(void)
-{
-	return static_branch_likely(&kvm_arm_pmu_available);
-}
-
 #ifdef CONFIG_HW_PERF_EVENTS
 
 struct kvm_pmc {
@@ -36,6 +29,13 @@ struct kvm_pmu {
 	struct irq_work overflow_work;
 };
 
+DECLARE_STATIC_KEY_FALSE(kvm_arm_pmu_available);
+
+static __always_inline bool kvm_arm_support_pmu_v3(void)
+{
+	return static_branch_likely(&kvm_arm_pmu_available);
+}
+
 #define kvm_arm_pmu_irq_initialized(v)	((v)->arch.pmu.irq_num >= VGIC_NR_SGIS)
 u64 kvm_pmu_get_counter_value(struct kvm_vcpu *vcpu, u64 select_idx);
 void kvm_pmu_set_counter_value(struct kvm_vcpu *vcpu, u64 select_idx, u64 val);
@@ -65,6 +65,11 @@ int kvm_arm_pmu_v3_enable(struct kvm_vcpu *vcpu);
 struct kvm_pmu {
 };
 
+static inline bool kvm_arm_support_pmu_v3(void)
+{
+	return false;
+}
+
 #define kvm_arm_pmu_irq_initialized(v)	(false)
 static inline u64 kvm_pmu_get_counter_value(struct kvm_vcpu *vcpu,
 					    u64 select_idx)
-- 
2.34.0.rc0.344.g81b53c2807-goog



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 04:11:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 04:11:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224623.388014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml1Qs-000187-RP; Thu, 11 Nov 2021 04:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224623.388014; Thu, 11 Nov 2021 04:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml1Qs-000180-OD; Thu, 11 Nov 2021 04:11:26 +0000
Received: by outflank-mailman (input) for mailman id 224623;
 Thu, 11 Nov 2021 04:11:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml1Qq-00017q-UV; Thu, 11 Nov 2021 04:11:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml1Qq-0004AS-LO; Thu, 11 Nov 2021 04:11:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml1Qq-0001mF-CF; Thu, 11 Nov 2021 04:11:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ml1Qq-00018G-Bl; Thu, 11 Nov 2021 04:11:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Z7qiGb7486QI6O2EBzDWDSAPXrv09bQwpCj37+F0ZRI=; b=hoG4KzCxhcRVYxl0tk27H5nIR4
	jVgJzHtr3Ys8g6ERRO+gdWFI2xFg5sof7GGFLMPaZn12WipAhIfNVt9xwaPuu/ujEBndI7iiGGRMd
	zVIvDac3r3agix3Yn2dysqDkrXAu3G7f7ZdN8GV9ST4FKjmHKHajSc6zqX6+WnVQFOU0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166110-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166110: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=b30187ef02d786da674cd80079e2fcd6bb8f85e1
X-Osstest-Versions-That:
    qemuu=0a70bcf18caf7a61d480f8448723c15209d128ef
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Nov 2021 04:11:24 +0000

flight 166110 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166110/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166101
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166101
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166101
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166101
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166101
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166101
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166101
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166101
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166101
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                b30187ef02d786da674cd80079e2fcd6bb8f85e1
baseline version:
 qemuu                0a70bcf18caf7a61d480f8448723c15209d128ef

Last test of basis   166101  2021-11-10 01:54:19 Z    1 days
Testing same since   166110  2021-11-10 15:37:55 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Christian Borntraeger <borntraeger@de.ibm.com>
  Markus Armbruster <armbru@redhat.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   0a70bcf18c..b30187ef02  b30187ef02d786da674cd80079e2fcd6bb8f85e1 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 05:22:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 05:22:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224630.388029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml2Wm-00089e-6m; Thu, 11 Nov 2021 05:21:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224630.388029; Thu, 11 Nov 2021 05:21:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml2Wm-00089X-3b; Thu, 11 Nov 2021 05:21:36 +0000
Received: by outflank-mailman (input) for mailman id 224630;
 Thu, 11 Nov 2021 05:21:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml2Wk-00088b-Kk; Thu, 11 Nov 2021 05:21:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml2Wk-0005iT-DF; Thu, 11 Nov 2021 05:21:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml2Wj-0005Lu-RH; Thu, 11 Nov 2021 05:21:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ml2Wj-0000YN-Qm; Thu, 11 Nov 2021 05:21:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EYVa1Q1y0xguZuvEwSCb6TnLFhZddlSxgQOepopTYmo=; b=TaZJGYgrBbBMq1GqCRqCNAukVe
	yHblK0ThrokPIFANuHvX4wzuQ6n7InPNJZIlXR+YmpDc3+/dAxsDR4gRSP6SVPmTbGfLrGEumzquz
	y7HWkWNI8m87vkfIIM9aQQiQtZRsGqfxNCAgAPBh992Lf0auASUzprGg4SrrJ+QHs4zA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166109-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166109: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-xsm:guest-start:fail:regression
    linux-linus:test-amd64-amd64-pair:guest-start/debian:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-coresched-amd64-xl:guest-start:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=cb690f5238d71f543f4ce874aa59237cf53a877c
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Nov 2021 05:21:33 +0000

flight 166109 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166109/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel 14 guest-start         fail REGR. vs. 165976
 test-amd64-amd64-xl          14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-xsm      14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-pair        25 guest-start/debian       fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Tests which are failing intermittently (not blocking):
 test-amd64-coresched-amd64-xl 14 guest-start               fail pass in 166100

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                cb690f5238d71f543f4ce874aa59237cf53a877c
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    9 days
Failing since        165992  2021-11-02 05:40:21 Z    8 days   13 attempts
Testing same since   166100  2021-11-10 00:10:50 Z    1 days    2 attempts

------------------------------------------------------------
1975 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                fail    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        fail    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 222011 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 07:27:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 07:27:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224637.388042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml4UK-0002Nv-BR; Thu, 11 Nov 2021 07:27:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224637.388042; Thu, 11 Nov 2021 07:27:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml4UK-0002No-8W; Thu, 11 Nov 2021 07:27:12 +0000
Received: by outflank-mailman (input) for mailman id 224637;
 Thu, 11 Nov 2021 07:27:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0Pxq=P6=redhat.com=pbonzini@srs-se1.protection.inumbo.net>)
 id 1ml4UJ-0002Ni-BR
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 07:27:11 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c66e7eec-42c0-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 08:27:08 +0100 (CET)
Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com
 [209.85.208.71]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-406-pdruPQAIOjyMHOxUqDgBaw-1; Thu, 11 Nov 2021 02:27:03 -0500
Received: by mail-ed1-f71.google.com with SMTP id
 h13-20020a05640250cd00b003e35ea5357fso4651796edb.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Nov 2021 23:27:03 -0800 (PST)
Received: from ?IPV6:2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e?
 ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e])
 by smtp.gmail.com with ESMTPSA id r22sm821651ejd.109.2021.11.10.23.26.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Nov 2021 23:27:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c66e7eec-42c0-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1636615627;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=kKrJW8F5NToX1nYO957BayIs9Dq3P1qwVdj4d8BfHuc=;
	b=EWjYAjKanzvzVmqNcyTlgfhnNj9Ny1srqJ/+RKNYUK4kTqdcKqBJLp8h25X464wkK81nAr
	NroVfszAJ7fcXtUhc+Qs3Q6AmsmB+cGZVUjfROSozaL9bex4yEyKWtraM6zkYdeQsjUCn2
	ZdLEFTHFGQTg9u8lV76AvN0Cc86MA04=
X-MC-Unique: pdruPQAIOjyMHOxUqDgBaw-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=kKrJW8F5NToX1nYO957BayIs9Dq3P1qwVdj4d8BfHuc=;
        b=cn0YnOtu4pIWnBzvoRazc2IsAtJa0+HE330FlJyFqtUwrqlEI6AtJcOudcAYojryMm
         Egormzuoo2q5w9EBHLGz9wnBeYWKeZaJ/oWULQROi+kUDEM/avrTU5oiitLUY1xbDybt
         QipU4ykeL+gWRduM22ChuaKCm3RrJqMH3pcMy5O8nmLiBmEVWJqwn57Hq73ErVpqK7Fd
         BLGs60IAOSGJcQnTSKaQlFRveN1Ul61at2kA9aARY67cWrZZQyl+pgkmFol+AjAMi4Pi
         pkBomgziU+1VO6JFnUAMTRULDC9LGCAfAEaCr92xoW87iCnV4Lnsb5xaIJzWLZUqRZ8R
         MVrg==
X-Gm-Message-State: AOAM532b6lZonWqiMr0L6xwD6sGanoMLXYE/jvonPIbe+W7uXFZvtQQW
	cDg3TN8hH6q5UsxrQJkVTHqmH9BlK3wf6gvrWMOa1WcgIY+RoVlsfoVAx4PCX60qoTO5Tk407ca
	MedqXautNq6CQ0ZEBAxE/CewdXpk=
X-Received: by 2002:a05:6402:4403:: with SMTP id y3mr7124340eda.163.1636615622059;
        Wed, 10 Nov 2021 23:27:02 -0800 (PST)
X-Google-Smtp-Source: ABdhPJzTpHPtJJgKdf3a1EjIi+ncJMYWN6M7NH5BDLr0bfrPMJpGogO5RDb023uvqL0d//3hxKxDnQ==
X-Received: by 2002:a05:6402:4403:: with SMTP id y3mr7124294eda.163.1636615621811;
        Wed, 10 Nov 2021 23:27:01 -0800 (PST)
Message-ID: <d784dc27-72d0-d64f-e1f4-a2b9a5f86dd4@redhat.com>
Date: Thu, 11 Nov 2021 08:26:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.0
Subject: Re: [PATCH v4 01/17] perf: Protect perf_guest_cbs with RCU
To: Sean Christopherson <seanjc@google.com>,
 Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>,
 Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>,
 Mark Rutland <mark.rutland@arm.com>, Russell King <linux@armlinux.org.uk>,
 Marc Zyngier <maz@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>,
 Guo Ren <guoren@kernel.org>, Nick Hu <nickhu@andestech.com>,
 Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>,
 Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt
 <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>,
 Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
 James Morse <james.morse@arm.com>,
 Alexandru Elisei <alexandru.elisei@arm.com>,
 Suzuki K Poulose <suzuki.poulose@arm.com>, "H. Peter Anvin" <hpa@zytor.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>,
 Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu,
 linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org,
 kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
 Artem Kashkanov <artem.kashkanov@intel.com>,
 Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>,
 Zhu Lingshan <lingshan.zhu@intel.com>
References: <20211111020738.2512932-1-seanjc@google.com>
 <20211111020738.2512932-2-seanjc@google.com>
From: Paolo Bonzini <pbonzini@redhat.com>
In-Reply-To: <20211111020738.2512932-2-seanjc@google.com>
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=pbonzini@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/11/21 03:07, Sean Christopherson wrote:
> Protect perf_guest_cbs with RCU to fix multiple possible errors.  Luckily,
> all paths that read perf_guest_cbs already require RCU protection, e.g. to
> protect the callback chains, so only the direct perf_guest_cbs touchpoints
> need to be modified.
> 
> Bug #1 is a simple lack of WRITE_ONCE/READ_ONCE behavior to ensure
> perf_guest_cbs isn't reloaded between a !NULL check and a dereference.
> Fixed via the READ_ONCE() in rcu_dereference().
> 
> Bug #2 is that on weakly-ordered architectures, updates to the callbacks
> themselves are not guaranteed to be visible before the pointer is made
> visible to readers.  Fixed by the smp_store_release() in
> rcu_assign_pointer() when the new pointer is non-NULL.
> 
> Bug #3 is that, because the callbacks are global, it's possible for
> readers to run in parallel with an unregisters, and thus a module
> implementing the callbacks can be unloaded while readers are in flight,
> resulting in a use-after-free.  Fixed by a synchronize_rcu() call when
> unregistering callbacks.
> 
> Bug #1 escaped notice because it's extremely unlikely a compiler will
> reload perf_guest_cbs in this sequence.  perf_guest_cbs does get reloaded
> for future derefs, e.g. for ->is_user_mode(), but the ->is_in_guest()
> guard all but guarantees the consumer will win the race, e.g. to nullify
> perf_guest_cbs, KVM has to completely exit the guest and teardown down
> all VMs before KVM start its module unload / unregister sequence.  This
> also makes it all but impossible to encounter bug #3.
> 
> Bug #2 has not been a problem because all architectures that register
> callbacks are strongly ordered and/or have a static set of callbacks.
> 
> But with help, unloading kvm_intel can trigger bug #1 e.g. wrapping
> perf_guest_cbs with READ_ONCE in perf_misc_flags() while spamming
> kvm_intel module load/unload leads to:
> 
>    BUG: kernel NULL pointer dereference, address: 0000000000000000
>    #PF: supervisor read access in kernel mode
>    #PF: error_code(0x0000) - not-present page
>    PGD 0 P4D 0
>    Oops: 0000 [#1] PREEMPT SMP
>    CPU: 6 PID: 1825 Comm: stress Not tainted 5.14.0-rc2+ #459
>    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
>    RIP: 0010:perf_misc_flags+0x1c/0x70
>    Call Trace:
>     perf_prepare_sample+0x53/0x6b0
>     perf_event_output_forward+0x67/0x160
>     __perf_event_overflow+0x52/0xf0
>     handle_pmi_common+0x207/0x300
>     intel_pmu_handle_irq+0xcf/0x410
>     perf_event_nmi_handler+0x28/0x50
>     nmi_handle+0xc7/0x260
>     default_do_nmi+0x6b/0x170
>     exc_nmi+0x103/0x130
>     asm_exc_nmi+0x76/0xbf
> 
> Fixes: 39447b386c84 ("perf: Enhance perf to allow for guest statistic collection from host")
> Cc: stable@vger.kernel.org
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>

One nit:

>   EXPORT_SYMBOL_GPL(perf_register_guest_info_callbacks);
>   
>   int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
>   {
> -	perf_guest_cbs = NULL;
> +	if (WARN_ON_ONCE(rcu_access_pointer(perf_guest_cbs) != cbs))
> +		return -EINVAL;
> +
> +	rcu_assign_pointer(perf_guest_cbs, NULL);
> +	synchronize_rcu();
This technically could be RCU_INIT_POINTER but it's not worth a respin.
There are dozens of other occurrences, and if somebody wanted they
could use Coccinelle to fix all of them.

Paolo



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 08:26:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 08:26:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224646.388053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml5Pv-0000QR-2s; Thu, 11 Nov 2021 08:26:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224646.388053; Thu, 11 Nov 2021 08:26:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml5Pu-0000QK-Vz; Thu, 11 Nov 2021 08:26:42 +0000
Received: by outflank-mailman (input) for mailman id 224646;
 Thu, 11 Nov 2021 08:26:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tymM=P6=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1ml5Ps-0000QE-Uy
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 08:26:41 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02on0624.outbound.protection.outlook.com
 [2a01:111:f400:fe07::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1702c306-42c9-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 09:26:38 +0100 (CET)
Received: from AS9PR0301CA0021.eurprd03.prod.outlook.com
 (2603:10a6:20b:468::11) by AS8PR08MB6614.eurprd08.prod.outlook.com
 (2603:10a6:20b:338::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Thu, 11 Nov
 2021 08:26:36 +0000
Received: from VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:468:cafe::7b) by AS9PR0301CA0021.outlook.office365.com
 (2603:10a6:20b:468::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Thu, 11 Nov 2021 08:26:36 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT037.mail.protection.outlook.com (10.152.19.70) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4649.14 via Frontend Transport; Thu, 11 Nov 2021 08:26:36 +0000
Received: ("Tessian outbound 2bb1f94ba47e:v108");
 Thu, 11 Nov 2021 08:26:36 +0000
Received: from 06b6f347fbd9.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 BD40197F-8B96-49DE-8579-EE8FCB1E4650.1; 
 Thu, 11 Nov 2021 08:26:30 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 06b6f347fbd9.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 11 Nov 2021 08:26:30 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com (2603:10a6:10:2e4::7)
 by DU2PR08MB7312.eurprd08.prod.outlook.com (2603:10a6:10:2e7::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Thu, 11 Nov
 2021 08:26:29 +0000
Received: from DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165]) by DU2PR08MB7325.eurprd08.prod.outlook.com
 ([fe80::f4fd:a3a4:6768:1165%3]) with mapi id 15.20.4669.011; Thu, 11 Nov 2021
 08:26:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1702c306-42c9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4wg42JrRQEESIOLWc7L/k/2yYrcDRK/cYBkON798A60=;
 b=iWLHc48KSqep6zijf/jkAaw4YnfGVkjoW9fiPc3R/UeWK5eevXW33oBJK4NFn/jC1MRk7EJZ12xhCwdqnLZ05XzxEp3WZXiT+IedSoCELbIYkyDDXM4w7OLqreohtO4lkKMC3FsZsTR03wUFcdg3fNCqtxFJAEw8tSsrSTADEXk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EY+h1iSSfEvSMMRe2322ze9GyhtHctFLIpEJybP4aSOfNaSk7xbByS9DSD8/sYtPuDTEoiRr/P8rzVCvcNBx7rBqzV3lHoFR30jYpr66b5ZOy/zNXGH2Lg/S8Y2GyL6c+IfvpiF7lM1SbBdCxFivMXg7TSbiiNWLCOaxFYpin+3XocjVAQgmA8jbs8JR0TfkEYgcQi0Apz6jzSA06gnpmuGi9NjCefywj9oFYlExLB2YItaVTYIKC+qd+Arf1eTbUgqujlbrlEzOZQTg2leyGANrmH+PFQhiwqYCT6ep3VeC68NCJ8B8ZGr+awtmrDpMk+z/ywuAAZBG4ypUgBWeWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4wg42JrRQEESIOLWc7L/k/2yYrcDRK/cYBkON798A60=;
 b=D7HuA0iy6jMgQMqPzunbW0JGIPe4K3P6I3RhCIulkoGj+1/oAdAv15FUw6YnlSDdsu/Ye6irlLvXH6aWQ5R4zAhHt7v5ypZrFA5TyWGl4RKMn8TyKwSwgmkkPJEuY77eGxpSNvPFHCsDsByG6pW68vkDe4hE0OcLgUMKHEFSDjrdBJnX/vqKsLAnTdpSyu1Hha23kRZxNiocJ39ornTL0XFRLiMOFjK9dFhZI2+jU/pGwJfaM6iF2ccl1ckA4OTYQVPkz4GUrdxnPblD820pCiY1hIUJ+3CA5a5+QbkAkWnzHgisB43anpk33q0Olgv3gQYoIwDV0xECTBWlZhLPNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4wg42JrRQEESIOLWc7L/k/2yYrcDRK/cYBkON798A60=;
 b=iWLHc48KSqep6zijf/jkAaw4YnfGVkjoW9fiPc3R/UeWK5eevXW33oBJK4NFn/jC1MRk7EJZ12xhCwdqnLZ05XzxEp3WZXiT+IedSoCELbIYkyDDXM4w7OLqreohtO4lkKMC3FsZsTR03wUFcdg3fNCqtxFJAEw8tSsrSTADEXk=
From: Penny Zheng <Penny.Zheng@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>, "julien@xen.org"
	<julien@xen.org>
CC: Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen <Wei.Chen@arm.com>,
	"iwj@xenproject.org" <iwj@xenproject.org>, "Volodymyr_Babchuk@epam.com"
	<Volodymyr_Babchuk@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<stefano.stabellini@xilinx.com>
Subject: RE: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as
 reserved-memory
Thread-Topic: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as
 reserved-memory
Thread-Index: AQHX1nAjHIlrrODS3kOS9MmML45m+av9/FFw
Date: Thu, 11 Nov 2021 08:26:26 +0000
Message-ID:
 <DU2PR08MB7325C9C705C9C3246A4E2C9DF7949@DU2PR08MB7325.eurprd08.prod.outlook.com>
References: <20211110201812.934306-1-sstabellini@kernel.org>
In-Reply-To: <20211110201812.934306-1-sstabellini@kernel.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: F717BE517462AE4FA5C9A3A2F0FFACCF.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 51871084-0460-4686-55c6-08d9a4ecfa20
x-ms-traffictypediagnostic: DU2PR08MB7312:|AS8PR08MB6614:
X-Microsoft-Antispam-PRVS:
	<AS8PR08MB6614A4CDC5D4E59B0F0BF8A3F7949@AS8PR08MB6614.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:404;OLM:404;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 GBER4iP26sAAGYRLHNU0fPflU/wMMTzGAZhFhemN0hP37EwG2gTSWbVm8/EbfNZ7so06R6dGvIcNeR8xVyMGLvTVKoPWopDENFc25JUBcGcYCDEs6TTByVQZ5QSZRXYVSdiBddkavUSPpgiwMqOa50hnWRweZkKFIgg9HGFO6/AiXZK1S4ecDlk03QrXTC80mYOeQQCV+qzdTX7Xt9yg1VGbXqDJjb6M2xnPIDc/YolbuC6Q+wPuMp4A3wTIXpWjE3IhwjfNw7PZuARpD5PBv77Ymx+QzVBObBmTJ3sQUXerThtSHnVAn1e+Boq4RGXomNqOhkhdhEMIkRJu+tDDBiXPqCMhyYr7uXiXhbnYiGJu6chfwusJMlEGjOKGNCb7GemFZ+GTVfP7Ssuchsj47tPMrkwj9oClDwAn19FV4Zc2WVFrui/cwQ4fSw5qjCJ7lIqE2WfxYFW4n4H9WVrdTH2rLWCewT40TklLqkZlqd8HGFyA34Xde4IdFCTwhz4SoU/wniEYlAezSBWDF6dZsSgDTtwx1Rv0gMe83wpni7hgtjYiuPqzIXpQcDMIJux+LV9/WCiWLCrtn9vqA8v89poPRjp5Ewrg+ab60rS0RPVtY1EckJuwUKXoYZ/8+5ZgcQAXhHQ9KH/R3h2lOKYiFNSsggBjP4kAi56tHmdh3COpNUE9ARv52VvnU1GoWqGyOIAnGZqOnSIJzsLrR0jlrQ==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38100700002)(316002)(122000001)(186003)(86362001)(66446008)(66476007)(76116006)(110136005)(53546011)(6506007)(54906003)(66556008)(2906002)(71200400001)(66946007)(64756008)(26005)(55016002)(38070700005)(5660300002)(508600001)(33656002)(83380400001)(8936002)(7696005)(9686003)(8676002)(52536014)(4326008);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB7312
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	034b7208-0882-4cb6-5b08-08d9a4ecf4f3
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	C3m7UIkP43Rp+bV4/T34q++YSRM8WkVJlGpXsZMnx8B0biso4G+nzW6FzgNnIGZhsVm4h8N6JBO43pGpWzsT/+sarrJqfcHRjJI/pdQ4XhueJuAaOVMYn4vfoDQk1tqGpEEWpEHOtb5f7cQMhnVZDQJVzQNh0t9To+fmfEXb4BvRCtGiaWQ57Un3EWCP2Mx+vts35KQauH8Svayb6trT4ehhFmBM5Vb3mXrjhOyfJjKGSrIIhMSUXFFIjZw6s/htwYac1prMHfBp73mE01gUzXO8kNzCchHkluDpI/OVSND0r1v5dgcPdJEfO6b+7deYe23fCPW8QnUrVN5yXxlSFFIXD4XIikOw/+7te5gliLzFYfeEMUkKWlMjEmV/mLeLGAttezF0m7Xm9/EfK9+vRbgyu8KQSwe53GS9jld9Vj2eHVqapQi1UlcosERyJ2Yh8suc8FlhVotWOG9SE4G8rk7wA1ie0+eBDwsELfA9/RG920J9sH8ht6Y6IoxFA45etKb+ydtgL6smZ5OBqNQGPUftc8CK26XoHu8xEAS2rvs3+60g/IQU9ld1/+xyeuc3bSY0/vVE+EzDnQdTutslQcsOx4EDUPlF2bS1cB4+QL2c9sEpVxBucpM2BMqwvd5eO8f6HYexNaLq5G7RalW92ykKhwzWwCnmfEUACozX80jsb1Qpiu1SI9Cmqxy+nj/j1AMFjc7Qc1wv3LZuUeG9yw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(5660300002)(107886003)(86362001)(7696005)(82310400003)(336012)(508600001)(4326008)(54906003)(83380400001)(70586007)(110136005)(356005)(33656002)(316002)(55016002)(81166007)(9686003)(70206006)(53546011)(6506007)(186003)(8936002)(26005)(52536014)(8676002)(47076005)(36860700001)(2906002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 08:26:36.4227
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 51871084-0460-4686-55c6-08d9a4ecfa20
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6614

Hi Stefano

> -----Original Message-----
> From: Stefano Stabellini <sstabellini@kernel.org>
> Sent: Thursday, November 11, 2021 4:18 AM
> To: julien@xen.org
> Cc: sstabellini@kernel.org; Penny Zheng <Penny.Zheng@arm.com>; Bertrand
> Marquis <Bertrand.Marquis@arm.com>; Wei Chen <Wei.Chen@arm.com>;
> iwj@xenproject.org; Volodymyr_Babchuk@epam.com; xen-
> devel@lists.xenproject.org; Stefano Stabellini <stefano.stabellini@xilinx=
.com>
> Subject: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as
> reserved-memory
>=20
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>=20
> DomUs static-mem ranges are added to the reserved_mem array for
> accounting, but they shouldn't be assigned to dom0 as the other regular
> reserved-memory ranges in device tree.
>=20
> In make_memory_nodes, fix the error by skipping banks with xen_domain set
> to true in the reserved-memory array. Also make sure to use the first val=
id
> (!xen_domain) start address for the memory node name.
>=20
> Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation")
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>

Thx again for the fixing up.

Reviewed-by: Penny Zheng <penny.zheng@arm.com>
> ---
> Changes in v3:
> - move BUG_ON inside the loop
>=20
> Changes in v2:
> - improve commit message
> - improve in-code comment
> - update nr_cells appropriately
> ---
>  xen/arch/arm/domain_build.c | 23 +++++++++++++++++------
>  1 file changed, 17 insertions(+), 6 deletions(-)
>=20
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 9e92b640cd..dafbc13962 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -862,21 +862,25 @@ static int __init make_memory_node(const struct
> domain *d,  {
>      int res, i;
>      int reg_size =3D addrcells + sizecells;
> -    int nr_cells =3D reg_size * mem->nr_banks;
> +    int nr_cells =3D 0;
>      /* Placeholder for memory@ + a 64-bit number + \0 */
>      char buf[24];
>      __be32 reg[NR_MEM_BANKS * 4 /* Worst case addrcells + sizecells */];
>      __be32 *cells;
>=20
> -    BUG_ON(nr_cells >=3D ARRAY_SIZE(reg));
>      if ( mem->nr_banks =3D=3D 0 )
>          return -ENOENT;
>=20
> -    dt_dprintk("Create memory node (reg size %d, nr cells %d)\n",
> -               reg_size, nr_cells);
> +    /* find first memory range not bound to a Xen domain */
> +    for ( i =3D 0; i < mem->nr_banks && mem->bank[i].xen_domain; i++ )
> +        ;
> +    if ( i =3D=3D mem->nr_banks )
> +        return 0;
> +
> +    dt_dprintk("Create memory node\n");
>=20
>      /* ePAPR 3.4 */
> -    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[0].start);
> +    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[i].start);
>      res =3D fdt_begin_node(fdt, buf);
>      if ( res )
>          return res;
> @@ -886,17 +890,24 @@ static int __init make_memory_node(const struct
> domain *d,
>          return res;
>=20
>      cells =3D &reg[0];
> -    for ( i =3D 0 ; i < mem->nr_banks; i++ )
> +    for ( ; i < mem->nr_banks; i++ )
>      {
>          u64 start =3D mem->bank[i].start;
>          u64 size =3D mem->bank[i].size;
>=20
> +        if ( mem->bank[i].xen_domain )
> +            continue;
> +
>          dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
>                     i, start, start + size);
>=20
> +        nr_cells +=3D reg_size;
> +        BUG_ON(nr_cells >=3D ARRAY_SIZE(reg));
>          dt_child_set_range(&cells, addrcells, sizecells, start, size);
>      }
>=20
> +    dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells);
> +
>      res =3D fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg));
>      if ( res )
>          return res;
> --
> 2.25.1

--
Cheers,
Penny Zheng




From xen-devel-bounces@lists.xenproject.org Thu Nov 11 09:27:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 09:27:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224653.388065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml6Lv-00069f-Kh; Thu, 11 Nov 2021 09:26:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224653.388065; Thu, 11 Nov 2021 09:26:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml6Lv-00069Y-HA; Thu, 11 Nov 2021 09:26:39 +0000
Received: by outflank-mailman (input) for mailman id 224653;
 Thu, 11 Nov 2021 09:26:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3rQ9=P6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ml6Lu-00069O-UV
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 09:26:39 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77b8f61c-42d1-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 10:26:37 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2059.outbound.protection.outlook.com [104.47.9.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-28-TgmLRbP1NL2y9yd3MFhORw-2; Thu, 11 Nov 2021 10:26:35 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3535.eurprd04.prod.outlook.com (2603:10a6:803:11::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.16; Thu, 11 Nov
 2021 09:26:32 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Thu, 11 Nov 2021
 09:26:31 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P193CA0048.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Thu, 11 Nov 2021 09:26:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77b8f61c-42d1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636622796;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=BlCOUlTbakbaK2RQv7+0DXqzQLLvjdR5sNIPLuL6DLY=;
	b=hBWzgweL7yr+qrUBD86RLta7OEv6J97+oLePioztpwEZV9s7uKVU+IcRH6awDA4yxi4KIC
	OMfB4zS1AEiTPpijHxeHRfoEEBDGUDBQONiOX3y8K+0VZb2ZEhoTo4h4EXly9uHgdGd/PK
	V3RX/cVORlSuWPZf8ZD3UlgsQa8a+Ak=
X-MC-Unique: TgmLRbP1NL2y9yd3MFhORw-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g/UnezSWjpilH57MAcUvzQqpm8EPVI/DMNgOshKEnHKLjauIbNbyh6bzIFmnO/OzMqXVn6EjSHVL02eQCWWwQUTWy9eLoGVZuAySrCOfJ7Pr1KeQAqoPjwTBOiLALMeipQ/uvZXjBMXrwhdTv2PN8XJcKHbtvEklY2hfv8POUjI0BdDLurpbpAxLNXBOjARxqta+l7UhsPuE9TVOy2Z6e36bVXq3l6idfWhizA7xdegHLdmy2wuPpFNrL5ReM7hVT4XAFyKEntH99OBptA/ETRaJ1x45+XUiCtocPtECW0kBTrWh4eyRep8OG9YkWN3LWjEZbk/9lG/PUayTuDTjJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BlCOUlTbakbaK2RQv7+0DXqzQLLvjdR5sNIPLuL6DLY=;
 b=HouJXqUyc23yajTNp5iavLYKtn9M8nZqCIwDE9dDnIdqW71z+a4+qv1GVN3tJlyM2oYv76qJuNBVeO93SXbshn3/7W1mJWbsx6j0DexGISjXXucKpBayUKGK/ghy2STUhHpX/vX9rmWgs1VnKgWW7VJJZN4zF/Aq5O1uPYZ/bqas7FgLL3PY5PmP+tCP/Y7bucnTHn3NlmBUH2Jp/SNbgBa2boZDl31bgQxLUFZmV6Sva3ampqhuxr4khev4bPfIYj+ymNhusoy5ayxTUkOBzuGtsIM7n1600Tl782GIxNtgIJDb0HX25iWVae91aSzt7Ff6HxdLYf3WjR7AVtadNQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9cb7444f-b1ab-524d-f94a-ede990b64f9f@suse.com>
Date: Thu, 11 Nov 2021 10:26:29 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] x86/cpuid: prevent shrinking migrated policies
 max leaves
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>
Cc: Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20211110174059.64633-1-roger.pau@citrix.com>
 <519775a1-ba90-c5c5-82c1-abcd8c4ebb01@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <519775a1-ba90-c5c5-82c1-abcd8c4ebb01@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P193CA0048.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:209:8e::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 436b768a-6f76-47a2-5a8a-08d9a4f558f1
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3535:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB35358DD4D6EC8141CC832861B3949@VI1PR0402MB3535.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	HQf2atvXSBPK6WN73qgmhXugQNxuX2ce9fbvwDHsIPFBIOfJJx/0BdEOfZLGZ8J/mc/pAP3U3RZ/EAYumI66/b/JTxsNl8o7G+RtCH8i+xEdb2Gugu3+mA1PEjq/oHySHbedYetl9dWUWhtUZ2Dt9dAGEse032MgviJLPplGurpftoEpJWqNQ8YeTdaZLa6CXOjLbNoFVmEaZFGHxaIyibnvVPHKhUDdlRDIsqWT3NvuKJYxt9IOQtgW/FWlReuBVclG3pTjON8cY9isQygx95wcRwoA7yMUWRlNPandaOvmDa3qzEo8mssYdIrjPj7OnK8vGeWJdJ3DRIRLNs9pAsNHGfudh9X4PW40fbARPhNXCZJkyrgh0SmIn5WqR4ZB7H9022XA5CM9yHwP+O1uSSsuRC36MROESufdwaEISlIVl9OzfwFWbwCvFT6Wx06ivFtkjRG5+tfq3FN6KlnYf2+ccRP/SKy7iEmVetrIRHOx/CGQBAhYFjZVP/BZUQGXkvpeIFH+eWY0Kd59FTQLkwQg3dtyFBEhfD3FUor+ZrPfweYkmKTxKiIDHGDy6cFp2eIlQ6AmTYL+4dmXecViaoy3bRidzEaZpmoGa1uAysnJuDd5w9m1EnAqBD81mQ6yGnq/UY5FlhYLDpwsKtv48zMv7Dp0CPBtOKZRuMereDsL05ZyLM0uDJe5wpQbNKPAgt3C5M/z3Ja3TaqvbzXQ5rxf+uHKnVKVvW6QHMErhrU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(956004)(5660300002)(54906003)(36756003)(31686004)(83380400001)(186003)(2906002)(26005)(53546011)(38100700002)(6916009)(8936002)(4326008)(6486002)(8676002)(508600001)(66476007)(66556008)(66946007)(86362001)(16576012)(31696002)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cU11Zkx2RUJ2N3B3RHdOSU4yZjVKYStHSXNURTRzUzBHMlhDUHBoQ0Y4TnFD?=
 =?utf-8?B?T3hHNkRZeE84UHMrVGQyaW9KSjIzeFgrL0k2OTlybEJRdVBxTlYyeXk0ajRs?=
 =?utf-8?B?eTRLcWhDYWdDSmFDQVJoWm5iajBNNW5ZcG1GMGZ2NGxzdjF0ZDNEVm9PTTBI?=
 =?utf-8?B?Tk9pWUE2ZVNwZ1lRbllJTHVjeVppUWRQY0lWTkplOE1BQk5lWUdIU3g5VjQ5?=
 =?utf-8?B?R3VlUHZkWEFyREJzV04yV2JlajlvNU9ON01VUkk2THI0a2VWbEFrZWppdzZX?=
 =?utf-8?B?ZHFZR3lRTWhOOWZCNG84TFVjRCt1YlhEV21ITmd5L2NxQllJWlEzVTdmVDhE?=
 =?utf-8?B?MTZINExTa2dFdGJqUmhCc29EYkJQdmxZR0dJR1JiSitDWFlUaFB4eUNTdkk1?=
 =?utf-8?B?b3VwMmQxZ2pNK3hNS0c0Sk5Rd1lMZFVCdUFPSC9sNUR1ZmpmUXkybWxjYXRX?=
 =?utf-8?B?OCs5Wk81bWRjZnlPUHNKZlFnZjNheHhFRklXb2t0V2F1NTJaYm0yTGxjQytJ?=
 =?utf-8?B?cXN5Um9qSmIreFNOQ245WStOWEZtN3BuTU1NNDlDYzBKd3Uxa3A0Z0UrZ25k?=
 =?utf-8?B?K2pjK0JUb2JMQW1peDBrZEtraEtCK0JPamQxd1FSUklmL0FrVkpmMEZHU2dH?=
 =?utf-8?B?dTd0Uy8xcEc5VEdwTllWaTJhOHhNR0kvMUNralEvdHBoY0J4MktPWG1uTTVM?=
 =?utf-8?B?ZUxwWE4zUFpOcEhVdGJ5N0pjQjdqVkhndEZoclNqVU8yVnd0eFN1c1p3WTVZ?=
 =?utf-8?B?ZDRBOTJLQ2lVVXFEUTRTV0IyL2dlemo1OWlsdVFIaGs0U0ErYkk2YWkzNkFX?=
 =?utf-8?B?Sm9oclI2T3pzQTBkMVpQTmcybUdpM0s0Q0F3eWFzYUE5MVBXWEtVS2gyZHh2?=
 =?utf-8?B?L1FtNlgzUzhSWFFNS3cwYTJSOG5jeDF3TWwwYmlqQ01iOUFSNTMzNWI1QW9U?=
 =?utf-8?B?eGpHMVpqVXBqN3pVR3lOcUR6NVlDdW10U2lVZ2lhaERDZXBESmM2d2ZMSEZj?=
 =?utf-8?B?WEVDV201OElqdlhHNWd2SmhqNFJPeS9XTEJRcEI2YVBXWUo5eklDN3RZWlVR?=
 =?utf-8?B?bE04Rm5QVW8wZCt2NWxTRlJacWhiNXpNdUxjYVdJREozT2dlSmNGYXVWb1Mv?=
 =?utf-8?B?UzgzVWlXRlcyWDlUN2htcFpkNzR6em96b1FGMjc5clNVdmF1YXNNNEtkakda?=
 =?utf-8?B?cnV1ZFpHZ29abG1MM1I1Um5DSjVHcXcxMXFJTFEwcHNocFNCL2U2MVVvdXM0?=
 =?utf-8?B?R2RvVEhoaGlBd2NhVHBLaTZQVElHRU5oY3lmUjYrcjY4MTVjRGtZRUQxOGFR?=
 =?utf-8?B?WmlFNDRTMFJwazRHbVpDV2pLMTltc3FDK3M4bVZRVFlCUjBXLzdXam1oWGlh?=
 =?utf-8?B?Z1FaZWRpMTNnV0p1VEExanZHTXlRbXI0QzgycFUrMlR1azdQMFpXbjJCaU0v?=
 =?utf-8?B?NjgzTVdGWGNodWtYekh4dE5wSGh6aWx6WnZOcFN4VmhQMktGM1oyellSbWZR?=
 =?utf-8?B?SkRydWk2UVBQYmhlbTgvRFFWYlFpOEFzNy9mZ2V4MEduMktxVEtRU29xamRU?=
 =?utf-8?B?aVJ3Z0JEZGNGTldpdUsvNzZNZnNHajdqZkw2Qk5lM1JaZkUwSlI2Y0Q3UmM2?=
 =?utf-8?B?NnBLSWV2bEtEenplaXN4Y1V3Yk05Zzc5Uzk0SmYzSnpiY1pqZk9sSGhkbi9E?=
 =?utf-8?B?VExuTThqMUxzQTI4WnlRa0hJdXBzSlhTdlZsaHhTWjZPUHAxU1JPSjFGNU1l?=
 =?utf-8?B?bGVFMGNmeWtteCtycEhRSUthT010dW1HUFJxQWdvdlZUd0Y0dytzZVNxVXRM?=
 =?utf-8?B?SDdNOWtpUXpBU0JjRStyWXlXUHhSZC9nZTc4L0lnMEVDTHVtbFFtYUlGOXdV?=
 =?utf-8?B?SklEN1B4Z0lqSUw1bnIrT2VCWDQwaU1NNTVJV0lTdFFnOWk3TTVIUExqd0Fq?=
 =?utf-8?B?b1RhVGJDYkt5WWRFazhybmZaK0pPOHowckJXWk0zM25zc05ZaDBzZG5tVTZp?=
 =?utf-8?B?alJFWXk3Wno4WFcrM3JYU1B2REZuMzlnY1p1cGN2RVE4RlZkTkw2V3Y1cnhJ?=
 =?utf-8?B?S0tmSEs3b2liK3hBTzFVNFlaYmUySXhiVHlIN2I0T0tONVZKMjgrenMrZDNj?=
 =?utf-8?B?eWJocjJsaCtncnN2dmFkVTlGeWRTbllmMkZxdjM2T01LSHp6bmgrMGtnVnRK?=
 =?utf-8?Q?jUIDFDIZS9SC7hbXGc+b5KE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 436b768a-6f76-47a2-5a8a-08d9a4f558f1
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 09:26:31.7490
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gzh9g85tLyTdPmLz2uVIhrTYHsi0QGEjtgyhIoy37mLwMZ5R33ii63kYOCotb54O9/sOp2n8ykR3aUfH0GRB0w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3535

On 10.11.2021 19:17, Andrew Cooper wrote:
> On 10/11/2021 17:40, Roger Pau Monne wrote:
>> diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
>> index 198892ebdf..3ffd5f683b 100644
>> --- a/tools/libs/guest/xg_cpuid_x86.c
>> +++ b/tools/libs/guest/xg_cpuid_x86.c
>> @@ -638,6 +638,13 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
>>          }
>>      }
>>  
>> +    /*
>> +     * Do not try to shrink the policy if restoring, as that could cause
>> +     * guest visible changes in the maximum leaf fields.
>> +     */
>> +    if ( !restore )
>> +        x86_cpuid_policy_shrink_max_leaves(p);
> 
> Nothing in xc_cpuid_apply_policy() changes any of the max leaves, so
> this is dead logic.

I guess you mean nothing there does anything which would result in
shrinking of the max leaves by calling this function? Yet even if
so, isn't the call here to take care of any earlier changes which
might have resulted in fully blank tail leaves?

Jan

> xc_cpuid_xend_policy() can in principle change max leaves, but that
> logic is all horribly broken and I don't recommend touching it.
> 
> I'd just drop this hunk entirely, and retain the deletion in the hypervisor.
> 
> ~Andrew
> 



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 09:32:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 09:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224660.388075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml6Rf-0007dm-DD; Thu, 11 Nov 2021 09:32:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224660.388075; Thu, 11 Nov 2021 09:32:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml6Rf-0007df-AK; Thu, 11 Nov 2021 09:32:35 +0000
Received: by outflank-mailman (input) for mailman id 224660;
 Thu, 11 Nov 2021 09:32:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3rQ9=P6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ml6Re-0007dZ-H9
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 09:32:34 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c774d9c-42d2-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 10:32:33 +0100 (CET)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2051.outbound.protection.outlook.com [104.47.8.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-40-laZvOOIoNxyU0ojm0cZiTA-1; Thu, 11 Nov 2021 10:32:32 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7151.eurprd04.prod.outlook.com (2603:10a6:800:129::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Thu, 11 Nov
 2021 09:32:30 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Thu, 11 Nov 2021
 09:32:30 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0064.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.18 via Frontend Transport; Thu, 11 Nov 2021 09:32:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c774d9c-42d2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636623153;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=01Z8zGm+qHHa5r+hXBaZDJMeG9QdN55X2uCoJFGD3Pk=;
	b=nCJ4ESWnqdlBL3MfRHrRm15Ia9aFIZXnYf/1Xgyt6m44LV5aMB6z6xwQVBSXPHVQS4qnu6
	5qY+YvtmjkHFDfnddjcNlc+5/OR8RYFS3uGD1CuR2GEJ/bJEkFMJBNfaLuqqJOcxNRKGm6
	6oWVDYfZGpPy7VMfeQmSmlUtYSXKudQ=
X-MC-Unique: laZvOOIoNxyU0ojm0cZiTA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=c8yoIsrVUNwioy4yTWcy29sEiod1BIGEyaVJF8lgJTGofBL5OAihpKoDIAMugW+nlUqb/zNxpMROhNHvGUK+IGbVVq1skCl3tVLqtLU5ProLKxEbU4R1oV7NFyjTurW9lWzpieGQ6RWadbMv/EbKTWs2tJgbCylE9gfjA2Amz1k0gVpDA2o+VWWEewwPiHYQX/JbmPwgIzg2SzTpjS4CB0TSei8Y/6AVeLsfiNpmr3/qpmeNtVO30KItiYkSlKkyzTqv08/2GfK9Cz5cDlP8PK1YAyOxViV8lm6PGdtqxx38LcLgBRNeKdhVCcbYJ1qEs/CnlI8n9/wYGoN2oQ6Qww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=01Z8zGm+qHHa5r+hXBaZDJMeG9QdN55X2uCoJFGD3Pk=;
 b=ktduXr8yWMNN1vgvlZ/oC8GSb8Iztpk0FFodz39oEEwcdZCiE+mNAzmMBWCNr1gww+7W0GEEClnuRRAAQqOguEpcDlprWBomXDDyufB3f6x7J9nCEtEUWKtOXPdUaPz9x2sbGQQNlfSi7je2yRRVu+nPdw7Tk7T95xrKqzGh6wI9yHrJNbZHtHgnOx6+fKRM+MTMzW2RM0s8ZQ9qBjE6IPUXN9jtHil38VQAefD4DT2Mm2kG1AE0KF/PBXLEUX0eguE7PmlbIW762lySiCqgohMafSJddhDR8niBUOeMKf6Jlf278O+DijcXy/ngv8ZLLf9x9f5FxnAXdB8s0qRkgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8e46d003-57c7-f11c-4366-adbe6ab52ffa@suse.com>
Date: Thu, 11 Nov 2021 10:32:27 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 0/3][4.16?] VT-d: misc (regression) fixes
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: Ian Jackson <iwj@xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
In-Reply-To: <d8295304-d81d-1d11-9bc2-d2539bf5a96a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0064.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:87::41) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 78a897d2-af50-4ef2-63b8-08d9a4f62eba
X-MS-TrafficTypeDiagnostic: VI1PR04MB7151:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7151681266205084C4135ADAB3949@VI1PR04MB7151.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	d99cxJd7h54uH/Oda0x0LiD919MwUSBtBViDrqmRaJfF4OIg8ZtEiMT5yAlzvLZ6D/iykYcWQ4Rs7U3pq1Bj5gGqENaH5iMfX81ht4HrtbfVFUA5tmljJSld4c0gEACKS1KIbhrzidC7yDAYvd6ZVVUch3dEI2arULShtFBjoqUw/5m00uxeQKuH1lBqX9cE97xvpEY+qEiAkz1nae/CQqe3r8wfgoNhXZabTM4UQXDBpmhbzIhbHogTk/rj+YNuBehqrGgydk4N/pSJCRIlxio6DEj3XkgCBwd16HLJvvxmzKmd5qjC1rpOM9cpXFbrigCTQHIfd2NrvSEeGDwlo4hPA34/DKkzpnmwUHusPMI/IY2JzztwLv5i05mdDNUPi/mFQPlcKhf3jgubaZiSlQycTlyCuN3lOq+x1dVRkV6bVMUcBWUUqpfbr8r4CJQrTWpI8veiYnK/U2QYkNRFRYMHP5p+jby3rhKZ29kugLs00zGPUkanEEgAjtjmnJVvQ4v7G2T+1qv6urBXUBV0I34/nrB4doCPoaTz9v+P8a0D6ZfIOrUwNmB9nEDcCUgRhP8ocyjMSU4RoMB8r2Rok0N/FSG9vdlDsYVo8Qj3hQ/OVHurvQW4Y7fzObYsfG5XlkVqaeWECofJP+0QduLxN2SGNkvA+hZDZWB6hmkLbpBUhTXQVpZhQYvBbdU8iwvjnPB6svMkvOrpBdiVEOhMOcsclUM4hHNS6w0C4DsGmWscTrSY11AgpIeAEdxYcsD4
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(508600001)(54906003)(26005)(2616005)(8936002)(4744005)(66556008)(66476007)(66946007)(956004)(316002)(53546011)(38100700002)(36756003)(5660300002)(186003)(16576012)(2906002)(31696002)(6486002)(4326008)(31686004)(86362001)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SjF4emhyaFBXd21zREIrYWY2M3FCNTdSZi8yWFcrN3dGb1JWWU5DZDlTM3J4?=
 =?utf-8?B?R2F1aGM1cE1TdGxKTkY5dUJ3TEI2UDVXMzlvaUdvYTJTTUFQb0hReGRlRWlr?=
 =?utf-8?B?a1NPY1N6aFdVT2ttKzJ5MENRUk9VdVgrYjJzNGIzVGhyRGkxdXVaalRVUEo5?=
 =?utf-8?B?RHJWYjVXVlYzdkNxT3ZOKzlPUmNQWGFSOFRrcitrOEZ1QXFpT0FtMjVubTJL?=
 =?utf-8?B?dTlNTXBldEVnNFJmeU5UQzFvM29wcWE5Q1ZDbWlHWEQ5Q3JlNHkwTyttNWlL?=
 =?utf-8?B?bDBXNDRGSnVRWWl2Q2tTK0s2K2IyTFUyTGFnb0FXeitJYVN4VVVGRVNKQ21h?=
 =?utf-8?B?aVQwK01SdEdiZk1BR1lEMkh3aW5jMWdjQ3A0dXFvUXFONzdNR1gvazByZk1G?=
 =?utf-8?B?QmtOYndyNkpNRjduamJDbjVXaWgyVlVabzVNMXhTZ0l4bG10SHRMQTEyZDVH?=
 =?utf-8?B?V3pPamZHZFBnK3cwZHdUOEhmR3NhaDRhUnk4Q0VhSlBQT21zMHU0R2loU3hJ?=
 =?utf-8?B?SFJNZE9aOTRZN3Y3YVlEYUJVTnM3YUxrUGRQUVBmRlAranN1WGEvSmRXR2JX?=
 =?utf-8?B?all1MzIxTVNpN2hLZzczZ2djUVVZMUZMVUZHbjRhaE04WDg0Q0FJTUpiY0l2?=
 =?utf-8?B?U0tlWGMrOVdTdUhBRFlGbGtoOGVBTWNUNDNFN0w2eG5XakRxMnlXelBldC84?=
 =?utf-8?B?OC9RdnlSQk51OEFZQ2RhREdYejd4cHZBNDZaYUpqRVFjUS9iNUJ5RTBQOXVN?=
 =?utf-8?B?clUxWG42WndCNDdVSkVHa0hheFpNa1lka3g0aGdsd21iZFJBMTNidWRiZWsz?=
 =?utf-8?B?NjZKYmxXTmhGU2doekN0QTNzTmhqa1JteG5EejNlVUFuRm1hUzRnbjRBN3FF?=
 =?utf-8?B?eGY0dUphdmlTcmRSWmpDaCswVFRvUGVkTmJwZjNEU1N6blFNK0czSHRHTGth?=
 =?utf-8?B?M3NlK2pxSWFXeTJaRXpCanU0UU9xR3l4UzVzVFBHdzJQSEh5NlNTb20zTk5w?=
 =?utf-8?B?aFlnRGRia0l3azY0NTJYOEFIUXVSY2l2OHlZRngzemFkWW5Yd3pqUFNrSU43?=
 =?utf-8?B?U2xqbDRMUVNneE5RTk1Ebkk0N3VoVjc4Y1h2TmlhL3RzL0pNcFpJaHZrc0d5?=
 =?utf-8?B?ZWQ1QS9WMFYxdU16VjB1TFArV0hSaVlVMmo2WHJ0UGd4TVE3Z0hmSCtLYXlD?=
 =?utf-8?B?ZVVzSE5VZ2xOc3Z5RlBEeTFsblgyOEUvNTk5UHhVbDFiT0R5cEJQUjBLRSti?=
 =?utf-8?B?ajVVNVJyMEw1YzlhYTFLSkhQcUFEcjJCTUhLekVCcGlKUWJzWm1zQWdLL2lm?=
 =?utf-8?B?Rm9WVVY0eEt6OVlFLzZZVEFKM2pZWlR1UnBkOTI5dS9HUjgwTC8rUCtJSFA0?=
 =?utf-8?B?TWpUaTU3bHNHRXBYanU3RkRUeDBpVURzNUxyNWdaL3ZYWGRHNEZUTjlOenJT?=
 =?utf-8?B?S1VPdExvenllU0lzbWZydTdPQmtQYTZtcUVyTGxNMWxZSHFqMStiemE2cXV5?=
 =?utf-8?B?aGY3SjU4WW05YUR5dU9WT3ZpKy9GUjZXZ0JqQ1ppbTUzWXdSUnhiVndBcEZ1?=
 =?utf-8?B?c3E1U1dzakFIbC9qZXhUYUJZaXlxeGY0RVJpSzcydTJRM3hhZHNRclkxbnk0?=
 =?utf-8?B?V21zN0ZuL3BuWnRPYVlpeHQ4bjAwVGQybjErSU8vaWwzQk1rS012K3F4dzZQ?=
 =?utf-8?B?eHhFZ3ZDM24zNFUrZ1FOcktkUmJ5Znp0em9VZnNyUkQyRTlxVDJiVlBvaWUw?=
 =?utf-8?B?WVhoRlpyb1B2dFY2K1huRGxkZzFHZk44WE90SVBFTWhOaVA3NXFGejdpVTVR?=
 =?utf-8?B?RlJIaUk0bHpHeGZKWXRxczJQUlp2NU1RUWw0c2dyLzVROVo5ckhPTEJNVkxS?=
 =?utf-8?B?Uzl6OU5CTnlFckdHaFY0Ly9NRHp2dVdZeEhxdWU2NCtFT0JFejZGSW1sOTJo?=
 =?utf-8?B?N0d4eWlNbHJTdkNPeC9LOTdzQmNxVlM1M3FyNnJZQ2pZS3VET1FpdXFZSmxy?=
 =?utf-8?B?U1F2SU9vVFBGSmpaU1QxT3pLSnI4SnQ5TlBRd1JOcExyYVZ3ZnhqaEdNaWNR?=
 =?utf-8?B?anBGMlBSejZCR2JxQ1A2cFlEZ1lkVExKZVRYS3Y1QTEzbjlyZHdkNUNjWkpM?=
 =?utf-8?B?SzZKaDFMam5aQVJPeG5zRWRoRm5PTHhyWUlQUjdOZXA2a1pFbFVjYUk0aE5S?=
 =?utf-8?Q?XbezAbOEN0EtRVW+PftdPls=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 78a897d2-af50-4ef2-63b8-08d9a4f62eba
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 09:32:30.3722
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uQafuQW+Hf+ysNNjzpxYekjBI3AYtR/HfYKpC7nBQDF43pX1D8u1SnVbHZtoHXEJG3Uv4cVDxcfzA0gY2u2eKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7151

On 09.11.2021 15:55, Jan Beulich wrote:
> 1: per-domain IOMMU bitmap needs to have dynamic size
> 2: fix reduced page table levels support when sharing tables
> 3: don't needlessly engage the untrusted-MSI workaround
> 
> As to 4.16 considerations: Only patch 1 addresses a regression
> introduced after 4.15, the others are older.

To further explain this: Without the earlier change, systems with more
than 32 IOMMUs simply would fail to enable use of the IOMMUs altogether.
Now systems with more than 64 IOMMUs would observe memory corruption
(with unclear knock-on effects). Whether systems with this many IOMMUs
actually exist I can't tell; I know of ones with 40, which isn't all
that far away from 64.

Jan

> Patch 3 additionally
> only addresses an inefficiency; the code we have is correct from
> a functional pov.
> 
> Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 09:39:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 09:39:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224666.388087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml6Xu-0008J7-4I; Thu, 11 Nov 2021 09:39:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224666.388087; Thu, 11 Nov 2021 09:39:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml6Xu-0008J0-0n; Thu, 11 Nov 2021 09:39:02 +0000
Received: by outflank-mailman (input) for mailman id 224666;
 Thu, 11 Nov 2021 09:39:01 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml6Xs-0008Iq-Vh; Thu, 11 Nov 2021 09:39:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml6Xs-00023S-Ms; Thu, 11 Nov 2021 09:39:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml6Xs-0002zc-F8; Thu, 11 Nov 2021 09:39:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ml6Xs-0006ip-Eb; Thu, 11 Nov 2021 09:39:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=u6uddtUHG/6Tyl8jARJsDSp9G0CfjP21rbH2F20A5Z4=; b=DgxFITNpjS3DEI+oZH6JRMMjEN
	jqLAXBgQLxXEkzS3avWZb5Fmpc3lx6B9R38HWtjjp6dFIxymhVRZGtz5l/ick82a9ZSmYuHymWpiR
	oYa5Ue6+9avWuJsYomETJNNKaXgPInpWPLskuhUhkhg4cWbnV7YLxh6lmp/rVELpe4QM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166112-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166112: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=7f90b137bf201bbdc717e91a542781e56cc52204
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Nov 2021 09:39:00 +0000

flight 166112 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166112/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              7f90b137bf201bbdc717e91a542781e56cc52204
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  489 days
Failing since        151818  2020-07-11 04:18:52 Z  488 days  474 attempts
Testing same since   166112  2021-11-11 04:20:07 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 82816 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 10:16:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 10:16:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224674.388101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml77w-0003sB-W7; Thu, 11 Nov 2021 10:16:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224674.388101; Thu, 11 Nov 2021 10:16:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml77w-0003s4-SL; Thu, 11 Nov 2021 10:16:16 +0000
Received: by outflank-mailman (input) for mailman id 224674;
 Thu, 11 Nov 2021 10:16:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cjuL=P6=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1ml77t-0003ry-Oq
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 10:16:14 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 602e6b1e-42d8-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 11:16:07 +0100 (CET)
Received: from j217100.upc-j.chello.nl ([24.132.217.100]
 helo=noisy.programming.kicks-ass.net)
 by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux))
 id 1ml77c-002dpE-5J; Thu, 11 Nov 2021 10:15:56 +0000
Received: from hirez.programming.kicks-ass.net
 (hirez.programming.kicks-ass.net [192.168.1.225])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (Client did not present a certificate)
 by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id 8CB023000D5;
 Thu, 11 Nov 2021 11:15:55 +0100 (CET)
Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000)
 id 68AF32058B524; Thu, 11 Nov 2021 11:15:55 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 602e6b1e-42d8-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=N0BcSPFGzSCyBWMORaYXKwouKanFoncOz/nWIbFY1Bo=; b=gIOpju4qBpgWOkt2GFEPQfE4Pb
	aM85+enzcMzjR/qTkqjzYSDpRv2cnU2w6fMt+Yzu4CcleQ12VQoiG5fUVLtiO4abmlmyNWv0baLXk
	s+dQDjA1YKuqVnCwk2rlWRxGIDU9+E+MqHETXE5sZutXb1j/Wu6EchlyYAMBAANboNa43hr8RqIcK
	ZKcCOWLbk58UawqqeyhLWVmxclkQlVNQ3DBocQCOGFNy/bO0jaFSModKPZD/qhGaqdGjtfXeEy7GK
	U5lKqwUp94qK7ETYScxfCtrqyjhE3khE1j+qhL06N6luqgh7aerh8HbHqdWVIKmOkHFEgsj52wDTA
	KMwFEgTw==;
Date: Thu, 11 Nov 2021 11:15:55 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: Josef Johansson <josef@oderland.se>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
	tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
	x86@kernel.org, hpa@zytor.com, jgross@suse.com
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
Message-ID: <YYztW7bytZdvZFbN@hirez.programming.kicks-ass.net>
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
 <6a7edbff-e255-661d-c68f-c07b7519e421@oderland.se>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <6a7edbff-e255-661d-c68f-c07b7519e421@oderland.se>

On Wed, Nov 10, 2021 at 10:52:09PM +0100, Josef Johansson wrote:
> On 11/3/21 00:36, Boris Ostrovsky wrote:
> > Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
> > introduced cpu_l2c_shared_map mask which is expected to be initialized
> > by smp_op.smp_prepare_cpus(). That commit only updated
> > native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().
> > As result Xen PV guests crash in set_cpu_sibling_map().
> >
> > While the new mask can be allocated in xen_pv_smp_prepare_cpus() one can
> > see that both versions of smp_prepare_cpus ops share a number of common
> > operations that can be factored out. So do that instead.
> >
> > Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
> > Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> > ---
> >  arch/x86/include/asm/smp.h |  1 +
> >  arch/x86/kernel/smpboot.c  | 19 +++++++++++++------
> >  arch/x86/xen/smp_pv.c      | 11 ++---------
> >  3 files changed, 16 insertions(+), 15 deletions(-)
> >
> > diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
> > index 08b0e90623ad..81a0211a372d 100644
> > --- a/arch/x86/include/asm/smp.h
> > +++ b/arch/x86/include/asm/smp.h
> > @@ -126,6 +126,7 @@ static inline void arch_send_call_function_ipi_mask(const struct cpumask *mask)
> >  
> >  void cpu_disable_common(void);
> >  void native_smp_prepare_boot_cpu(void);
> > +void smp_prepare_cpus_common(void);
> >  void native_smp_prepare_cpus(unsigned int max_cpus);
> >  void calculate_max_logical_packages(void);
> >  void native_smp_cpus_done(unsigned int max_cpus);
> > diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
> > index 8241927addff..d7429198c22f 100644
> > --- a/arch/x86/kernel/smpboot.c
> > +++ b/arch/x86/kernel/smpboot.c
> > @@ -1350,12 +1350,7 @@ static void __init smp_get_logical_apicid(void)
> >  		cpu0_logical_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR));
> >  }
> >  
> > -/*
> > - * Prepare for SMP bootup.
> > - * @max_cpus: configured maximum number of CPUs, It is a legacy parameter
> > - *            for common interface support.
> > - */
> > -void __init native_smp_prepare_cpus(unsigned int max_cpus)
> > +void __init smp_prepare_cpus_common(void)
> >  {
> >  	unsigned int i;
> Testing out this patch I got a warning that i is unused. Which it is,
> since for_each_possible_cpu(i) is removed.

Fixed. Can I add your Tested-by ?


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 10:24:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 10:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224681.388112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7FV-0005Mv-LS; Thu, 11 Nov 2021 10:24:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224681.388112; Thu, 11 Nov 2021 10:24:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7FV-0005Mo-IM; Thu, 11 Nov 2021 10:24:05 +0000
Received: by outflank-mailman (input) for mailman id 224681;
 Thu, 11 Nov 2021 10:24:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml7FV-0005Me-2a; Thu, 11 Nov 2021 10:24:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml7FU-0002rr-SQ; Thu, 11 Nov 2021 10:24:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml7FU-0004Os-HG; Thu, 11 Nov 2021 10:24:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ml7FU-0004X6-Gk; Thu, 11 Nov 2021 10:24:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=OIbvHdgEX1S/3kPRzDP22RTrk3npNfXYRJuXCJXnZtM=; b=UiS7VVrbOtnSt2yTL6A+5H+x4U
	IKuDwp1QJ2wDNNrqN2CVywIprEPeSz6Hz7X9fgggyOmuL576LIQD2Z/tDH1Zfjef7zTKmn/eUN2l2
	1E8g9GcaTe3c6np2eTOhrKM9DfDhZt2p41SsrGlsNh2BW0OdZf1GCnKsggUN4AwvboAA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166111-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166111: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-arm64-arm64-xl-seattle:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-examine:memdisk-try-append:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
X-Osstest-Versions-That:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Nov 2021 10:24:04 +0000

flight 166111 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166111/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-xl-seattle   8 xen-boot         fail in 166106 pass in 166111
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat  fail pass in 166106

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-examine      4 memdisk-try-append           fail  like 166099
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166106
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166106
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166106
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166106
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166106
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166106
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166106
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166106
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166106
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166106
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166106
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166106
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
baseline version:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2

Last test of basis   166111  2021-11-11 01:53:55 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 10:49:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 10:49:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224690.388129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7dX-0007oS-Q4; Thu, 11 Nov 2021 10:48:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224690.388129; Thu, 11 Nov 2021 10:48:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7dX-0007oL-Mp; Thu, 11 Nov 2021 10:48:55 +0000
Received: by outflank-mailman (input) for mailman id 224690;
 Thu, 11 Nov 2021 10:48:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cjuL=P6=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1ml7dW-0007oF-Fh
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 10:48:54 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f4be9253-42dc-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 11:48:51 +0100 (CET)
Received: from j217100.upc-j.chello.nl ([24.132.217.100]
 helo=noisy.programming.kicks-ass.net)
 by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux))
 id 1ml7ce-002eyR-My; Thu, 11 Nov 2021 10:48:01 +0000
Received: from hirez.programming.kicks-ass.net
 (hirez.programming.kicks-ass.net [192.168.1.225])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (Client did not present a certificate)
 by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id CB96930001B;
 Thu, 11 Nov 2021 11:47:57 +0100 (CET)
Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000)
 id 950042D1ADCA5; Thu, 11 Nov 2021 11:47:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4be9253-42dc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=Lk4G/R3I07fhmcAqeSUqtCqNDck8UECisYgW0RP2fZk=; b=AET3uxMt3hHFzdG81TShZLlRhA
	lnzx4x2xkBejjcu8i+MuOlBWGAq82yBnQhP9jNhSKqzutZkvoPrE+DaFRBQ2JOb4j5DojW+YmB1TQ
	EZfc3k1Z3m4KXMajFbDtwS9023NbK50LztQbXevsdQvS6AOv4JY3DBFmFrzKqXOH+RV3M0pyTvPbI
	9sn7wEgLyUpWZTEsemou0MiLDGDeur8Ama9taCLIXAaN6Ru7/xY5zsA5qZdI+ad11Hfx7npvyG54r
	SstAvX6uYL3TOGkFqkoXYIn4TKwOJvn7Eki+iTRy2VOK059F6VHaZNIoBBTll1KF9xSh0wvNlGSuH
	NL6Mf2Yg==;
Date: Thu, 11 Nov 2021 11:47:57 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Sean Christopherson <seanjc@google.com>, Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Guo Ren <guoren@kernel.org>, Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	James Morse <james.morse@arm.com>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu,
	linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org,
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
	Artem Kashkanov <artem.kashkanov@intel.com>,
	Like Xu <like.xu.linux@gmail.com>,
	Like Xu <like.xu@linux.intel.com>,
	Zhu Lingshan <lingshan.zhu@intel.com>
Subject: Re: [PATCH v4 01/17] perf: Protect perf_guest_cbs with RCU
Message-ID: <YYz03fcDRV9NZnyA@hirez.programming.kicks-ass.net>
References: <20211111020738.2512932-1-seanjc@google.com>
 <20211111020738.2512932-2-seanjc@google.com>
 <d784dc27-72d0-d64f-e1f4-a2b9a5f86dd4@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <d784dc27-72d0-d64f-e1f4-a2b9a5f86dd4@redhat.com>

On Thu, Nov 11, 2021 at 08:26:58AM +0100, Paolo Bonzini wrote:
> On 11/11/21 03:07, Sean Christopherson wrote:

> >   EXPORT_SYMBOL_GPL(perf_register_guest_info_callbacks);
> >   int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *cbs)
> >   {
> > -	perf_guest_cbs = NULL;
> > +	if (WARN_ON_ONCE(rcu_access_pointer(perf_guest_cbs) != cbs))
> > +		return -EINVAL;
> > +
> > +	rcu_assign_pointer(perf_guest_cbs, NULL);
> > +	synchronize_rcu();
> This technically could be RCU_INIT_POINTER but it's not worth a respin.
> There are dozens of other occurrences, and if somebody wanted they
> could use Coccinelle to fix all of them.

I've been pushing the other way, trying to get rid of RCU_INIT_POINTER()
since rcu_assign_pointer(, NULL) actualy DTRT per __builtin_constant_p()
etc.

There's a very few sites where we use RCU_INIT_POINTER() with a !NULL
argument, and those are 'special'.


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 10:56:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 10:56:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224695.388140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7kK-0000lq-JU; Thu, 11 Nov 2021 10:55:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224695.388140; Thu, 11 Nov 2021 10:55:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7kK-0000lj-Fj; Thu, 11 Nov 2021 10:55:56 +0000
Received: by outflank-mailman (input) for mailman id 224695;
 Thu, 11 Nov 2021 10:55:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1ml7kJ-0000ld-2P
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 10:55:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1ml7kI-0003Rt-Vs
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 10:55:54 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1ml7kI-00072l-Up
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 10:55:54 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1ml7kD-000516-Tx; Thu, 11 Nov 2021 10:55:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=1LPA2ORd2xkFkwn7DDZvn+7hCTiyqtUcTpI6/HQgUL4=; b=LlLHPZoQZwbECiLZn5W7XUF6uy
	ieJIPodcIy/hQr4dnoeBXq255QaS7Zde8rQQ9UfN2LUxsQyclJEtJ/jBWt+ouXIa3SB0/rbbmlcYk
	tJ6uF1fwacK1d2sWIBGjnJ7XHnzbAkGfGi/ZzZcaAGMJ93ZZatqN1yrHXrJBa2f0uGb8=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24972.63157.335230.592275@mariner.uk.xensource.com>
Date: Thu, 11 Nov 2021 10:55:49 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: julien@xen.org,
    xen-devel@lists.xenproject.org,
    oleksandr_tyshchenko@epam.com,
    Bertrand.Marquis@arm.com,
    Volodymyr_Babchuk@epam.com,
    Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: Re: [PATCH v2 for-4.16] xen/arm: allocate_bank_memory: don't create memory banks of size zero
In-Reply-To: <20211110205555.945026-1-sstabellini@kernel.org>
References: <20211110205555.945026-1-sstabellini@kernel.org>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

To the maiontainer who will review this: could you
please consider these comments as part of your review:

Stefano Stabellini writes ("[PATCH v2 for-4.16] xen/arm: allocate_bank_memory: don't create memory banks of size zero"):
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> In regards to inclusion in 4.16.
> 
> If we don't fix this issue in 4.16, default usage of Xen+Linux won't be
> affected.
> 
> However:
> - Non-Linux OSes that cannot cope with zero-size memory banks could
>   error out. I am not aware of any but there are so many out there in
>   embedded it is impossible to tell.
> - downstream Xen calling make_hypervisor_node for DomUs will crash
> - future Xen calling make_hypervisor_node for DomUs will have to make
>   sure to fix this anyway
> 
> If we commit the patch in 4.16, we fix these issue. This patch is only 2
> lines of code and very easy to review. The risk is extremely low.
> 
> Difficult to say what mistakes could have been made in analysis and
> preparation because it is a trivial if-zero-return patch, which is
> likely to fix latent bugs rather than introducing instability.

Then, subject as usual to satisfactory maintainer review,

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 11:00:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 11:00:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224702.388151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7os-0002Ee-AM; Thu, 11 Nov 2021 11:00:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224702.388151; Thu, 11 Nov 2021 11:00:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7os-0002EX-6u; Thu, 11 Nov 2021 11:00:38 +0000
Received: by outflank-mailman (input) for mailman id 224702;
 Thu, 11 Nov 2021 11:00:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3rQ9=P6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ml7oq-0002E6-19
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 11:00:36 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9829b0c9-42de-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 12:00:34 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2105.outbound.protection.outlook.com [104.47.17.105])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-3-U-dGOahpN2aIkQZG0yggWA-1; Thu, 11 Nov 2021 12:00:33 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2446.eurprd04.prod.outlook.com (2603:10a6:800:4e::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Thu, 11 Nov
 2021 11:00:30 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Thu, 11 Nov 2021
 11:00:30 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR0301CA0021.eurprd03.prod.outlook.com (2603:10a6:20b:468::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Thu, 11 Nov 2021 11:00:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9829b0c9-42de-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636628434;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=N+ZSZcs8LMHeEBhVtCrNtbwSi9N0AxYfGpxUMFiZIn8=;
	b=BgkOUNEKH4y6C62pZ7hKlIlblrirBdVtkIrGE2QPzhrnPxckRJYi/rurqoLK13WQpmeDpu
	udWh4EvhAvcnPImeIBEZlpoGO7NnLw79/s8uQNWTnh5yDhJqYo3CfzkP9svL4y2jI5ZHnE
	JSY4pJK+CkpPAWDDb51vBx254mMkxa0=
X-MC-Unique: U-dGOahpN2aIkQZG0yggWA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LomRstbX7Fb4zIJDJXYqs+dZ7rbXklruAUwOuVq2XcRMnjYUcWo9SCpxZCT+NlcxSB/wUasQ8wDRaEjkk8bbwHfa9aEe1M0O3JEHihdVqPUpvMrRDUb96kpZHQozTFyl8LqOLqBA2H6cjH03+KO54xQ9dY8xyEPCUAOLuGU69KY4YVzuu3Z/JRTLUImUhfQ4kqMG3uDBbH4mZmWY+hm0SIEiGaO2v9xOGwHBftaYhhQiLXERDm/OESiqLUDh19CnCnMvySM8ak/YAptz4fMbYa/U9oeT7re5UDG7RWI+zDJ5iJqAXFuEJW/u0N7SO5fgodIHRXZ2cV6qkm3wRBpE8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N+ZSZcs8LMHeEBhVtCrNtbwSi9N0AxYfGpxUMFiZIn8=;
 b=Zdw0UigzjAz8t2xruzNBSqifjxbiqomyq/IYUJaOMBHpMCGXBS1sICuaCCH6IlQsHTfiGdkNCDU3JND4zDugcY3cdh7ZvQwxxN74hP+m3FAqkRhJJFK+URb4AYDG+vxejT4sRK0En4U0rz7Xsyfy+HVSXAKK2f1Rzw8FXBn6UBlaHdJWQvGFhES0uF0HazBw+0Jv8rVtwWVzaaVLvdVfYS9pMSFRo83n0KW2swGGPJJUr17c2abo7RQcMFdobFTfwesZjjYpPCqtzgtHndbAbk8VyFIou+5L6XOCmvzj2If5wjSyOgYXrBIZMBjC3Xp0/7cBAiHdU2cQsNYfd38NSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <be6018d7-da39-6764-ebb3-9edc393526fc@suse.com>
Date: Thu, 11 Nov 2021 12:00:28 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Content-Language: en-US
To: Jane Malalane <jane.malalane@citrix.com>
Cc: Ian Jackson <iwj@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211110091935.16906-1-jane.malalane@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR0301CA0021.eurprd03.prod.outlook.com
 (2603:10a6:20b:468::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e2b2b1e2-7101-4fe0-ec33-08d9a50279b0
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2446:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB24463BA0B5FA5BC69443E91CB3949@VI1PR0401MB2446.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	eHw1gIGIooIzHgUdF6sdO82a4lZ6Q1MvBy25PcAnHNTJqJSPa/GjfTOrzp0Gcom3TjPwX3d8pBe8mJvB+luDLB/nmrrvFPm/BQeMk1zwKhxAPBn1/Pw/WxgSZKo0bbALGQMclzwrVmoSYhGXiQPqaO6SlpVKNL2tPuuKO9mBLV+jCzugshbzE0XZLOT5FPvUSNhdxh9PAgFyG9YNLhBEoh6urINliOKhPmdVyuulujBWZ05WYuD+8y5qqsn33yZ53eLCb8bpwCiWwiOifPSgiFd450BpnjwpEd5lhnQfwsD+DTzm/VpvEnaWMULFLALYgF2lvrm4VlQhddVFb4CsnZt89BDQdXwZdTj36BoQnJT25w65IjskBfn0MJ83Y9iIXgF9vpmhK9slU6za3g8MB0pWLOVBdqMncq89Y3oaQhzog+nG8BvBDkN3vn5oAsgagBdFXXLVK7OrDQy04CYlBWJQXjLLcgLB1QhajfOwot6d+MlgXgoJorzTGdC+8ph9RXOS8qiKzNDhdaivx67eVU8j/ikE7fwLnMxxErfre/fSVkW0YLqUvAlep6vqbUAgUxcXfXZttgTaYYUv+jKs5GY1+E31bOJRn1m4tItUzyWQSERoPu4GQZeE3H2mq/OVG6rwCHme/I6uR0fM1zx2f1OugcpJ76B+A1V5IsOicy87sradEeZZIRnfK0AGQ4pkKJgeevOh6sMDi7NGqDa/NMEjiqPEO5G57nCPLLIyO8g=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(2906002)(4326008)(186003)(38100700002)(8676002)(6486002)(316002)(16576012)(66556008)(53546011)(31686004)(66946007)(26005)(86362001)(8936002)(5660300002)(508600001)(6916009)(66476007)(2616005)(956004)(83380400001)(36756003)(54906003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MjdOUWxYV1hZQzN2UFU4eWtFVVFQM29BV1pzOW5WM0JmLzFEendYTHlCcTdz?=
 =?utf-8?B?a1pwbzkyYXZ5NlN2eGVzNFpveUxIVEVXT2REZmtYVHEyTENjN1FwU3kvblA0?=
 =?utf-8?B?d3dZRHdhREVSQ1QrcU5oa1RhNElYQlcwM3N6eDlxbGd0aUJJRktoaFcvOUR4?=
 =?utf-8?B?ZExMOWFpcFd2cTdkdVBVVkFFb3hVTnowZkxHay95bXZmWHlwWmpjTnRhSEw3?=
 =?utf-8?B?ZVdqd2JseEYrOTdObDRTdldlTDdKa21EdE1JWitsNmw2M3dkY3I2UFh1ZnVN?=
 =?utf-8?B?T1BXRkp0Z2pLY3ZZMlZPS2VETk5lNlU1dElLT25qelVoNHZGbXRxY2tUK3g3?=
 =?utf-8?B?Nlh0cFM4NUtwaG5MZk5URnE0OTdBWjhFUkhud3NNRyt5aEpUNHkvS3ppWGQw?=
 =?utf-8?B?U3ZSY0ZtRVVQNGZOcXROZllRV2JUaEtuRTlQQ25FbVh1Y1lFK216TEhTRG03?=
 =?utf-8?B?b1IrOVJlZ2lOSjN0dEVxRFJUSFZvYjBxUlZpWjRLS0ZOUVNIbWdwOXZSOThj?=
 =?utf-8?B?WlJlTzFobUlTRVAvblpuVUhsYTVGNmVUOWwxUXFmMm5UbTBYUmtHOXpxalVt?=
 =?utf-8?B?Qk9reWF4dGFWWllEVTZJNDdDYTlqUGwxZS9uRHdEQkMxMnRwSVFMcmFNcllB?=
 =?utf-8?B?VHhROHNFMlVvUSs3L0FzeC9LU2tFVFcvYlpKMHhJRVpyWFBxbXVsNDl2RGRU?=
 =?utf-8?B?bDI1QnhyTWdEODhKdXJRTlZvMmpPWlFUbTF2U2hVWlhUS1VKR1AvM3BFTGNk?=
 =?utf-8?B?MW9reG56blk5Q1dRMWVNQi8xWWl4Uy9wT3NYSVhJcm1yNE5ZblVXVUx2T01u?=
 =?utf-8?B?RHBCMVdRemZUeVdxQTdKWVlnT2hzMUdjWVpxWDloamRRV3BwL1pHU1FOUDBT?=
 =?utf-8?B?cVpaZXhpM25pOVpLajlkYUJKK1c1ZW54ZC9qSTMwTUJqUjZlL0p0N2NmdEVW?=
 =?utf-8?B?THo2emRseVBockQ5NmtEOUhYOUNINHY2QVdkM1lnL3hJbEsyRyt1V0U1ZVo0?=
 =?utf-8?B?azVIT1BnS1Z2bnU3b3UvTXkydjRobm1JaU0rdDdlblJuMkVFVUIzYXBRSTN5?=
 =?utf-8?B?T2RPNUZKWmFjejZlWUFGbWh3cDRIZTY3TGx3WWRJR0l2U0NwZVZES1VWYmRm?=
 =?utf-8?B?T1VqQWErVTUzUlNVYkFJRlp3bUNza2tSb2pZZ2ZYL3JhMmVRVENsS04wZEs3?=
 =?utf-8?B?MUxhdXpoREFqeXdYcDVRZFNLV2RqYzUvS1VoQ1l4U3pId1RRSHFHMnFFN1pi?=
 =?utf-8?B?OVRINE9LbEtReEFIaDNyZmRjSElZTjdkQUVYYmM0dEt1RW5MbFdrNzMrbmc5?=
 =?utf-8?B?M1o0OUZNRFdrekxITUc3TTVKN0xFb2s4ZzZLRjl1QzA1blkweG0yM1I2dmt3?=
 =?utf-8?B?czFTZmFUeU54andCaEhSc0dSL3M3RHI1VzJiMldaaEhQL0NEWjRmdW1qcmE0?=
 =?utf-8?B?bVRDZ2NhRlpUSWl3SEc3UVpQeURORkRPd3RjaDZCck9nTGVZMVFEYmhNWUxk?=
 =?utf-8?B?bU1ycVQwdEpSaHBzSHdSTjV0OWNQeGlUTUtzZHpmL0ViWk1HT1hCODdDQWRz?=
 =?utf-8?B?bFpJVC9pbndRdER5QlF1K1FBZHRxL0l1Q3dCM0VtL0RuelRGcUxjTGh1TjQ2?=
 =?utf-8?B?MTdadlIwYVpZN2FwSm4vQVJiQnFuOVB3K3RFY1h4YS9VLzRneUd6WVhMbmpW?=
 =?utf-8?B?dTA5cDgwTFIrMDRyQWw1U1I4QUJZRzZ1WDM1MEtuclVubXJWU3lYK0M4dnJG?=
 =?utf-8?B?S0J3OUxhaTZsVVJobkZJQXliUGxmSzZoeFNTWmZTM1dBenJpa282WUJhYjk4?=
 =?utf-8?B?TDk1OWFhNWx3eEY5S05udjk4ckpJSy9FeUp0aWJjRHlqOWZoYStRTHUwY2pN?=
 =?utf-8?B?TlRPZERLaGJPdTkvKzdJcnNYSFlZdTlMejJNUmZRK2Y5MXlZaWplazQ5dFZ5?=
 =?utf-8?B?SkRyVlcydnB5b2sxSEM5dHFSbnRCZkRXZzFVZkg5MGI2a2h6OWthSXpwRFdX?=
 =?utf-8?B?U0oxUHlESzVQM0pBTFlGSm9hWlJleWNzekRmMTEweVFDTjY1cXByUWR6U29x?=
 =?utf-8?B?TjljSWYvQnhtcDNQQ2VUTnpIT3BaQ3h2ZjZSKzFtU1Npa1lzTUR3SnpBdC94?=
 =?utf-8?B?TVU3NmNXRFlLYU5lSVBKR3BManhJRmdqdjhGUmxiZlpFSll2dERTWXFDaXNY?=
 =?utf-8?Q?kecI2lKWB26+3MShJBEoiSs=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e2b2b1e2-7101-4fe0-ec33-08d9a50279b0
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 11:00:30.5927
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JG07yOFNA/v0OxX9pzKh2Jd0dFfGvru0DToG+dabvztFj07j6xoY7bMzdmjkZP8ansrS/Z2nmQNM2mnPK8VjAQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2446

On 10.11.2021 10:19, Jane Malalane wrote:
> Before, user would change turbo status but this had no effect: boolean
> was set but policy wasn't reevaluated.  Policy must be reevaluated so
> that CPU frequency is chosen according to the turbo status and the
> current governor.

Aiui this only (or at least mainly) affects the ACPI driver. Powernow
updates CPB via its update hook. I think this wants clarifying.

> Therefore, add __cpufreq_governor() in cpufreq_update_turbo().
> 
> Reported-by: <edvin.torok@citrix.com>
> Signed-off-by: <jane.malalane@citrix.com>

Nit: These would look better with real names added. Without I'm not
even sure enclosing the email addresses in angle brackets yields
something that's valid.

> Release rationale:
> Not taking this patch means that turbo status is misleading.
> 
> Taking this patch is low-risk as it only uses a function that already
> exists and is already used for setting the chosen scaling governor.
> Essentially, this change is equivalent to running 'xenpm
> en/disable-turbo-mode' and, subsequently, running 'xenpm
> set-scaling-governor <current governor>'.

Otoh things have been this way virtually forever.

> --- a/xen/drivers/cpufreq/utility.c
> +++ b/xen/drivers/cpufreq/utility.c
> @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_state)
>      {
>          ret = cpufreq_driver.update(cpuid, policy);
>          if (ret)
> +        {
>              policy->turbo = curr_state;
> +            return ret;
> +        }
>      }
>  
> -    return ret;
> +    /* Reevaluate current CPU policy. */
> +    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);

Is this really needed when an .update hook is present? IOW wouldn't
this want to be in an "else" to the preceding if()? Or if not,
would this perhaps be more logically done prior to invoking .update()
(such that the hook would observe the updated policy, in case that's
relevant to what it does)?

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 11:07:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 11:07:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224708.388161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7uo-0002uk-Vy; Thu, 11 Nov 2021 11:06:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224708.388161; Thu, 11 Nov 2021 11:06:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml7uo-0002ud-Sv; Thu, 11 Nov 2021 11:06:46 +0000
Received: by outflank-mailman (input) for mailman id 224708;
 Thu, 11 Nov 2021 11:06:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3rQ9=P6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ml7un-0002uX-OL
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 11:06:45 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74cdc47d-42df-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 12:06:44 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2173.outbound.protection.outlook.com [104.47.17.173])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-34-O2MAfqgYM2CAH6pusFexbw-1; Thu, 11 Nov 2021 12:06:43 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4191.eurprd04.prod.outlook.com (2603:10a6:803:45::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.14; Thu, 11 Nov
 2021 11:06:42 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Thu, 11 Nov 2021
 11:06:42 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0069.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::46) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Thu, 11 Nov 2021 11:06:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74cdc47d-42df-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636628804;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Vg4+imPtdyruaUQzxazzRtq4KhbbGz5grgP2TSvOBDU=;
	b=SzGzPrx/npLML8/NwHcKjoKl2zQXihrQzcRSSk19hY0SrFdvWgVeDuFbKh0VPH06fjTDM9
	uLYiCexpqxAv6w1MzM3hGZyUMWpXHYL7Fhk4KCKwcxg9D23VERjB9OJGyJlQSy5YVtOwgN
	ypx/bfSIB4bnI0TtIEefxwA8SPQp78k=
X-MC-Unique: O2MAfqgYM2CAH6pusFexbw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FKfl8SJVfhNshRskJZvrXwk2Ubpc7Sf9SsnGA/fHNDuYpsqjSoR2eBMYRkitdthiFbr0usgb9uO9Fn52a4HyqqI8AiU2diIkUrd73BCjrVY1oqtQy2pFyjMH4fYamwx/gpIjo/x+txIvAIbsvq9yDGJTYHbLWzXAk2bnvQOJBadff45kRkwR+D7XmDWRw2yWfnFkIeUX9Bkp2oftligvzXpDfHp1wcak42GsEwGUaTEDAHxgLLC34qYRT90sm+MnecTA5y9XJ45Egm65P1LwuiP+XJz6trWI5MnLu+1bje3Fg+C849CCFcjLgeqmvTFBe/HUqrgKRa7z6bs+V/FjEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Lf72snFv18W+agWakeUdA65Tpb3lkqN7PO1TtJF4EYw=;
 b=JOkCwmpvL8nyx/edydr7ilC1JezDoFuCRpPtgdtTy3ZK7jTsHNGDJGEyVxdDpa7K57H2Q8cTdIbAAcA1lynUaPgO7r2dOJXmw3LR8L9tULdn36nMOtwMGWG5hpi8xJH1pIFHIoEx3+hhCRsKrhNpCEi4W5/toRk9LB9XQq5TS5KmX2/WuH8Yli59Iclm2tDx1oicvdaY3kw207LjfHpH4Q0dOTg2p/Ad8qTABMmMq+ML9Zrrht+dTLKpxyWC7UD60nJPXlArCOtxw19ry1tFuYIcat3EeFFKHSxrN6volvXtgeZJxnOpOXKtVTDu6FuE1IIaI7P3e9fi8I96ZtWb/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <2d16eb78-4438-924e-f873-114849dbc8de@suse.com>
Date: Thu, 11 Nov 2021 12:06:40 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>, Jane Malalane <jane.malalane@citrix.com>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
 <YYu9eYxIYs5gol5q@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYu9eYxIYs5gol5q@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P191CA0069.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:7f::46) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1914cbcf-394f-43e7-67c0-08d9a50357ba
X-MS-TrafficTypeDiagnostic: VI1PR04MB4191:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB419193460A3F7BC08B176232B3949@VI1PR04MB4191.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NVbwaH5Ujq2LYepswG/xkrqgZ9vvYuNg+/xCfO3/S2STasuuWOjUenzl9cEuoLVG+NX9KFzeuP6am1orjqBybhS7EXQrQppEX1PRQccIhBzGnfxlI49dn25ltCWDW+cyjWQogoC/upU+RrrpBwpxYxwVBn6QgaW1k3I8sahsGVfKweqa7xmQXOSJXANAwbvr0php+s2MpaceUEPYKcgTICoAgugW7VWVkNSUJe6eNme59XEqYminTPx1mTcJ8i1JBf7TUjFgVB5Mrg80zJASD4m/GESwC0rJy7ESSdDw+XlZbte9PLCa80cdCzjtyrNbtKz5t5Zuipc9xtCpcXL5UDPQR6MdtFjV+4mUB82esqBptawjSwDq4yJvGRx8APzO+meLlR5C7SwxWmG+p0G0jbvVza86Pw5DTCMHfdsoiXpEyi1H5YD8Ufroak7ViFyJ7VcFBZdIgEWdS5WAgsDd1T3qOaN86zkYRzjfG7gNQ0hNWJ6TkSYeGhsOhgzkD7PptAfarBhpI6KrvB9/W0uWDE1Rf+wc4gDDgKvvjDOn1PDur+OeSP2az5wF27+nT+dKt33o8n/5rGZNBmlamNKi4RluSkny/GRMkKZ08bdm1AQi7jVogiGpj0yxo8kgbN10fg7zEdd/3XVxsFggK2nmjlAklXx0hvE2LDVbGu5Baj3xUvNB8gxnWF2wlfpZuRSCiuLR7gUk6Bs8n5ftzr5a7Uyf9Iuw08+cXgw/6nKKuTI9ZRi7XUYdNsELfWicw2F2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(186003)(2906002)(5660300002)(508600001)(8936002)(6486002)(31696002)(8676002)(66946007)(83380400001)(4326008)(86362001)(26005)(38100700002)(53546011)(316002)(16576012)(66556008)(36756003)(54906003)(956004)(6916009)(66476007)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xnfMTtVK3WUZgbay2yDYsLW0/S7p0m1EoKlhEXPzi5UPjUrqdnUbg3gOSWBk?=
 =?us-ascii?Q?Ymqq14i+CQoeg0JVxgYliQXI81f5BSD84/qmno3+ufukJqaEIadCFuK8VYJs?=
 =?us-ascii?Q?x66iVXl/Z0uo/z/YTXb7SFBLM4fr80sZTvybeyIHJSa2BZdaxNsv4rehHrsk?=
 =?us-ascii?Q?6LA+8fkTwvXRMukMwr73h/PpWEdGSJMqZ+Rw4nNDCCaQVMNR9UkF+R5RgFHn?=
 =?us-ascii?Q?/X7RSnR8QjT/kFf2DXnSmtsAsLHHpJcttdJ4VaTqKXgMt1N2+seYSpN+P0KU?=
 =?us-ascii?Q?fv8kFKpYX1e4fj+RKAnaedeb+xnTNuxhb7hb5l8klSh9UfWXWaZB8E8EQ2BD?=
 =?us-ascii?Q?JTichsbA/vjRtzYOTDBPMpGbnN/mWlx0CvfbTycJubjxv51TeLxlBq+5unbB?=
 =?us-ascii?Q?YgsmC2TKEvnunAndQeoWOcCXKyN3hIPeM3fJCQ0Up53rVW5EM0FU0vcYLV8R?=
 =?us-ascii?Q?Hu3VyEoh5Fvk6OeUekuYvQy7bBXoGmky4MoyDk6ncUxXtOz+Vwg0seOS/6eb?=
 =?us-ascii?Q?c23H9thjz1luEpIIgWmT4Bsw1MNeLQrUrtUPU08EIHbXANhNjb+jdah3dCi7?=
 =?us-ascii?Q?lgCeb2DPIBHmBlo6uxy7wuVCP4sQ29RoA4AcndQ79L+8mHZRB7UvLNddx6Re?=
 =?us-ascii?Q?GGe80r6pL3mbsnbLm65UB5INgIPCr/vMguhvjWcPBcvFPo7cMMBOGhzPOwNd?=
 =?us-ascii?Q?wSLn0QuDcYhkzlGULSVv/epPxiLcbI/qTvUrS3shWRQFsm3IRHtYKas2BKWk?=
 =?us-ascii?Q?1l3/u7iHZ1Mc/ESNRbKWnaDblzzwgvBm0JOm6jhWrxZOVVTmKU07uBpj6jgt?=
 =?us-ascii?Q?5jWSVeEyTpaH0v15DjEk7YYmVpR0lEH/Pb8b8uSEBwuiqVxBrmUB5Z4jPHhL?=
 =?us-ascii?Q?C7V5uicku0S+7TUN7fHlQ9hE+2xRcYQvEdSf+CWexIxKtGnV7DBsrr7r87QA?=
 =?us-ascii?Q?iWw2DNh/nZN5Kje+eHjsSvcybUJRhCyXZpGm3Pzb6R4jc8a+YNN7LWqAvt+6?=
 =?us-ascii?Q?j9cR62LJlx06gqWR6lrHnc64gnmxFWWQhe5xmYo9qFZljDbBjj6IKHO3Swxu?=
 =?us-ascii?Q?aKJpa8FMSUWCELt3pmEI+BczbiwZUF3jBX5X0FDuYubdhsYMmQZP5PuWFLK4?=
 =?us-ascii?Q?zpsKU9YDYR0jQtKeuuoL3f9ufnnawPtxpg+mAnf7Xzy1g5KZEnDMsjN5QdSV?=
 =?us-ascii?Q?ie3lt8YQkrTBy01FntWzoGdxY+iwX37CXDdWFlfHZIAckrMOFZqQCS2dmtJK?=
 =?us-ascii?Q?+jUIMLVkZbLiAojVm92wDQeZ3vtxJcJksIaLMk+fG8Aa6oLW5xLbgroC7RDN?=
 =?us-ascii?Q?qv9fbkNaNids+vSHWk3hTdrGO41curLdnkwGJGiOwf5Q1tZ3It7oMJF3ulgG?=
 =?us-ascii?Q?hU5gmEghhp3o2uwx/3XBjfVKZApxasXv1lCASLXNi2KK3IaSubibHp2V25HA?=
 =?us-ascii?Q?LkJFVciWSA8CuvDFErhCj6ZIcw6Ne+qTJ8x/d+QLvhv2aM3Wh2Ak/VeTU7sW?=
 =?us-ascii?Q?Nto/OHMNpDGkl/iBLWOdKgiuPtYkolVS8zSS8FUKzB+QrUsX7OuC6Y27wLDa?=
 =?us-ascii?Q?mwGPihhXVKz0h/bsktZ5PR1/xPRL3lf2mvsfZXd0TSszGIcXu63P7KPi/YCP?=
 =?us-ascii?Q?JO08uZGTq/seHYtMVelOWSU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1914cbcf-394f-43e7-67c0-08d9a50357ba
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 11:06:42.6573
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qGTMlLoiXVKIavJ1WNwGoVCFLBUvyKuwn/BMtkWFWpjOEU4kDqpzS11NBlK/2Qk5T+gmxxqX9ejqVWEMcBVaxQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4191

On 10.11.2021 13:39, Roger Pau Monn=C3=A9 wrote:
> On Wed, Nov 10, 2021 at 09:19:35AM +0000, Jane Malalane wrote:
>> --- a/xen/drivers/cpufreq/utility.c
>> +++ b/xen/drivers/cpufreq/utility.c
>> @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_state)
>>      {
>>          ret =3D cpufreq_driver.update(cpuid, policy);
>>          if (ret)
>> +        {
>>              policy->turbo =3D curr_state;
>> +            return ret;
>> +        }
>>      }
>> =20
>> -    return ret;
>> +    /* Reevaluate current CPU policy. */
>> +    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);
>=20
> Do you need to revert the policy->turbo value to the previous one if
> the call to __cpufreq_governor returns an error? (much like it's done
> for the .update call above).

I guess this can be viewed either way: Keeping the value would allow
a later successful invocation of the .target() hook to observe the
intended value. Obviously then it's questionable whether returning an
error in that case isn't going to be misleading - failure of the
policy update would then rather need to be indicated by some
"deferred" indicator (which we don't have). Taking into account the
behavior prior to this patch I wonder whether it's an option to
simply ignore an error from __cpufreq_governor() here.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 11:14:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 11:14:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224714.388173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml829-0004Jn-Ow; Thu, 11 Nov 2021 11:14:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224714.388173; Thu, 11 Nov 2021 11:14:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml829-0004Jg-M4; Thu, 11 Nov 2021 11:14:21 +0000
Received: by outflank-mailman (input) for mailman id 224714;
 Thu, 11 Nov 2021 11:14:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ml828-0004Ja-JZ
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 11:14:20 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1ml825-0003n7-EM; Thu, 11 Nov 2021 11:14:17 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=[192.168.21.213]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1ml825-0008K4-8A; Thu, 11 Nov 2021 11:14:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=kmQwGRS2hpuVuFoKHzE3UwacVkhBocr4AP3/+yLhSMg=; b=FqIQoIPqs/idYewtcEyoxS/v/X
	6xI1QKk/9UpJFeC1DtLC0Nyod+NP7asnOcomfucVfFcWcCIdmEUOSOOW+CKqb2HXTdYsnoupvEKyf
	eCsUowvBTtPwWPpucsEMj1gzyHKqikvwTp1WCL0sRJGbxw+RtDQ/rv7RUng/JXzEsePc=;
Message-ID: <34d14ad2-3af6-1624-f30d-12f53f8ffdfb@xen.org>
Date: Thu, 11 Nov 2021 11:14:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as
 reserved-memory
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Penny.Zheng@arm.com, Bertrand.Marquis@arm.com, Wei.Chen@arm.com,
 iwj@xenproject.org, Volodymyr_Babchuk@epam.com,
 xen-devel@lists.xenproject.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>
References: <20211110201812.934306-1-sstabellini@kernel.org>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211110201812.934306-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 10/11/2021 20:18, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> DomUs static-mem ranges are added to the reserved_mem array for
> accounting, but they shouldn't be assigned to dom0 as the other regular
> reserved-memory ranges in device tree.
> 
> In make_memory_nodes, fix the error by skipping banks with xen_domain
> set to true in the reserved-memory array. Also make sure to use the
> first valid (!xen_domain) start address for the memory node name.
> 
> Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation")
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

> ---
> Changes in v3:
> - move BUG_ON inside the loop
> 
> Changes in v2:
> - improve commit message
> - improve in-code comment
> - update nr_cells appropriately
> ---
>   xen/arch/arm/domain_build.c | 23 +++++++++++++++++------
>   1 file changed, 17 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 9e92b640cd..dafbc13962 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -862,21 +862,25 @@ static int __init make_memory_node(const struct domain *d,
>   {
>       int res, i;
>       int reg_size = addrcells + sizecells;
> -    int nr_cells = reg_size * mem->nr_banks;
> +    int nr_cells = 0;
>       /* Placeholder for memory@ + a 64-bit number + \0 */
>       char buf[24];
>       __be32 reg[NR_MEM_BANKS * 4 /* Worst case addrcells + sizecells */];
>       __be32 *cells;
>   
> -    BUG_ON(nr_cells >= ARRAY_SIZE(reg));
>       if ( mem->nr_banks == 0 )
>           return -ENOENT;
>   
> -    dt_dprintk("Create memory node (reg size %d, nr cells %d)\n",
> -               reg_size, nr_cells);
> +    /* find first memory range not bound to a Xen domain */
> +    for ( i = 0; i < mem->nr_banks && mem->bank[i].xen_domain; i++ )
> +        ;
> +    if ( i == mem->nr_banks )
> +        return 0;
> +
> +    dt_dprintk("Create memory node\n");
>   
>       /* ePAPR 3.4 */
> -    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[0].start);
> +    snprintf(buf, sizeof(buf), "memory@%"PRIx64, mem->bank[i].start);
>       res = fdt_begin_node(fdt, buf);
>       if ( res )
>           return res;
> @@ -886,17 +890,24 @@ static int __init make_memory_node(const struct domain *d,
>           return res;
>   
>       cells = &reg[0];
> -    for ( i = 0 ; i < mem->nr_banks; i++ )
> +    for ( ; i < mem->nr_banks; i++ )
>       {
>           u64 start = mem->bank[i].start;
>           u64 size = mem->bank[i].size;
>   
> +        if ( mem->bank[i].xen_domain )
> +            continue;
> +
>           dt_dprintk("  Bank %d: %#"PRIx64"->%#"PRIx64"\n",
>                      i, start, start + size);
>   
> +        nr_cells += reg_size;
> +        BUG_ON(nr_cells >= ARRAY_SIZE(reg));
>           dt_child_set_range(&cells, addrcells, sizecells, start, size);
>       }
>   
> +    dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells);
> +
>       res = fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg));
>       if ( res )
>           return res;
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 11:20:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 11:20:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224720.388184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml87i-0005dV-Fa; Thu, 11 Nov 2021 11:20:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224720.388184; Thu, 11 Nov 2021 11:20:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml87i-0005dO-AU; Thu, 11 Nov 2021 11:20:06 +0000
Received: by outflank-mailman (input) for mailman id 224720;
 Thu, 11 Nov 2021 11:20:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cjuL=P6=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1ml87g-0005K6-ED
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 11:20:04 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 500ceebe-42e1-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 12:20:02 +0100 (CET)
Received: from j217100.upc-j.chello.nl ([24.132.217.100]
 helo=noisy.programming.kicks-ass.net)
 by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux))
 id 1ml873-002g98-8m; Thu, 11 Nov 2021 11:19:26 +0000
Received: from hirez.programming.kicks-ass.net
 (hirez.programming.kicks-ass.net [192.168.1.225])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (Client did not present a certificate)
 by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id 627DF3000D5;
 Thu, 11 Nov 2021 12:19:22 +0100 (CET)
Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000)
 id 304F0201EC1CF; Thu, 11 Nov 2021 12:19:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 500ceebe-42e1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=Rwfbmkoas7VebHdsAPeFky9gQjs68+546BvuzLh8KOw=; b=nYW2D8WwDzTJBO/3hqaCnKl+rG
	Juv9WqI4u6yj05w2X63ioSsTn5cEdV6jDA351V4/q9yydOsa7FW1hSEMYTFCpYM+34h+eLD05vIuf
	aJw4KwauVgbsmZhkliH2C6iKJqojPUXuWEPcd38B1dtT88o84f5Sp/oMWfV8h9DaHJOesh+0xGqtP
	n4R4aYuGwPrCobAnDwuTl24Bkv/pjQsvWW5g0gG3sYG1rBE7VdaHTNsjeZ1KJKR5jtxxyS54nzBQU
	j+XeoDvq2JxdCtTPVCSG+YQMQo1n/omY8trwJKb2fdS0v2mWaEEA6whxFBt8nI2ZCCfGYmM487YiO
	s2UIUTPg==;
Date: Thu, 11 Nov 2021 12:19:21 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
	Russell King <linux@armlinux.org.uk>, Marc Zyngier <maz@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Guo Ren <guoren@kernel.org>, Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	James Morse <james.morse@arm.com>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu,
	linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org,
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
	Artem Kashkanov <artem.kashkanov@intel.com>,
	Like Xu <like.xu.linux@gmail.com>,
	Like Xu <like.xu@linux.intel.com>,
	Zhu Lingshan <lingshan.zhu@intel.com>
Subject: Re: [PATCH v4 00/17] perf: KVM: Fix, optimize, and clean up callbacks
Message-ID: <YYz8OTWtkcFUkvbZ@hirez.programming.kicks-ass.net>
References: <20211111020738.2512932-1-seanjc@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211111020738.2512932-1-seanjc@google.com>

On Thu, Nov 11, 2021 at 02:07:21AM +0000, Sean Christopherson wrote:

> Like Xu (1):
>   perf/core: Rework guest callbacks to prepare for static_call support
> 
> Sean Christopherson (16):
>   perf: Protect perf_guest_cbs with RCU
>   KVM: x86: Register perf callbacks after calling vendor's
>     hardware_setup()
>   KVM: x86: Register Processor Trace interrupt hook iff PT enabled in
>     guest
>   perf: Stop pretending that perf can handle multiple guest callbacks
>   perf: Drop dead and useless guest "support" from arm, csky, nds32 and
>     riscv
>   perf: Add wrappers for invoking guest callbacks
>   perf: Force architectures to opt-in to guest callbacks
>   perf/core: Use static_call to optimize perf_guest_info_callbacks
>   KVM: x86: Drop current_vcpu for kvm_running_vcpu + kvm_arch_vcpu
>     variable
>   KVM: x86: More precisely identify NMI from guest when handling PMI
>   KVM: Move x86's perf guest info callbacks to generic KVM
>   KVM: x86: Move Intel Processor Trace interrupt handler to vmx.c
>   KVM: arm64: Convert to the generic perf callbacks
>   KVM: arm64: Hide kvm_arm_pmu_available behind CONFIG_HW_PERF_EVENTS=y
>   KVM: arm64: Drop perf.c and fold its tiny bits of code into arm.c
>   perf: Drop guest callback (un)register stubs

Thanks!, I'll queue them up and push them into tip/perf/core once -rc1
happens.


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 11:43:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 11:43:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224729.388195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml8U8-0008Dh-FL; Thu, 11 Nov 2021 11:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224729.388195; Thu, 11 Nov 2021 11:43:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml8U8-0008Da-CI; Thu, 11 Nov 2021 11:43:16 +0000
Received: by outflank-mailman (input) for mailman id 224729;
 Thu, 11 Nov 2021 11:43:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ml8U7-0008DU-E6
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 11:43:15 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1ml8U6-0004GA-1x; Thu, 11 Nov 2021 11:43:14 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=[192.168.21.213]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1ml8U5-0001aV-SB; Thu, 11 Nov 2021 11:43:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ZuWVDoOdOiJFiaRhufmMNcjGTdGC24An1UDrj3+lMFU=; b=tSj5mKdX2V2nhgaglqSR4GN1F3
	Zt4epjyIMPJcYb0jNnqmKIS+AL8tAJF7E35NCRIqsY9GrN4QWV0YpCsuhlatike5zJjzIhXonhrxt
	hh1NWppA4Ib341T40vaXXpLj9iZRj/W///pG4Y1MprIvGnPDG38/u/clS3Wpl/az9lVI=;
Message-ID: <095e16e5-312d-61e5-e61f-4e026affad8d@xen.org>
Date: Thu, 11 Nov 2021 11:43:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v2 for-4.16] xen/arm: allocate_bank_memory: don't create
 memory banks of size zero
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, oleksandr_tyshchenko@epam.com,
 iwj@xenproject.org, Bertrand.Marquis@arm.com, Volodymyr_Babchuk@epam.com,
 Stefano Stabellini <stefano.stabellini@xilinx.com>
References: <20211110205555.945026-1-sstabellini@kernel.org>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211110205555.945026-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 10/11/2021 20:55, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> allocate_bank_memory can be called with a tot_size of zero, as an
> example see the implementation of allocate_memory which can call
> allocate_bank_memory with a tot_size of zero for the second memory bank.
> 
> If tot_size == 0, don't create an empty memory bank, just return
> immediately without error. Otherwise a zero-size memory bank will be
> added to the domain device tree.
> 
> Note that Linux is known to be able to cope with zero-size memory banks,
> and Xen more recently gained the ability to do so as well (5a37207df520
> "xen/arm: bootfdt: Ignore empty memory bank"). However, there might be
> other non-Linux OSes that are not able to cope with empty memory banks
> as well as Linux (and now Xen). It would be more robust to avoid
> zero-size memory banks unless required.
> 
> Moreover, the code to find empty address regions in make_hypervisor_node
> in Xen is not able to cope with empty memory banks today and would
> result in a Xen crash. This is only a latent bug because
> make_hypervisor_node is only called for Dom0 at present and
> allocate_memory is only called for DomU at the moment. (But if
> make_hypervisor_node was to be called for a DomU, then the Xen crash
> would become manifest.)

As also mentionned by Oleksandr, I don't think make_hypervisor_node() 
could work as-is for DomU because we are not re-using the host memory 
layout (yet). Instead, we would need a logic similar to the one we use 
in libxl.

That said, it makes easier to reason if all the memory banks are non-zero.

> 
> Fixes: f2931b4233ec ("xen/arm: introduce allocate_memory")
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>

> ---
> Changes in v2:
> - improve commit message
> - add in-code comment
> 
> In regards to inclusion in 4.16.
> 
> If we don't fix this issue in 4.16, default usage of Xen+Linux won't be
> affected.
> 
> However:
> - Non-Linux OSes that cannot cope with zero-size memory banks could
>    error out. I am not aware of any but there are so many out there in
>    embedded it is impossible to tell.

I agree this is the main concern. Although, this not a new bug has been 
present for 3 years now.

> - downstream Xen calling make_hypervisor_node for DomUs will crash

For this and ...

> - future Xen calling make_hypervisor_node for DomUs will have to make
>    sure to fix this anyway

... this see above.

> 
> If we commit the patch in 4.16, we fix these issue. This patch is only 2
> lines of code and very easy to review. The risk is extremely low. >
> Difficult to say what mistakes could have been made in analysis and
> preparation because it is a trivial if-zero-return patch, which is
> likely to fix latent bugs rather than introducing instability.
> 
> ---
>   xen/arch/arm/domain_build.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 9e92b640cd..fe38a7c73c 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -395,6 +395,14 @@ static bool __init allocate_bank_memory(struct domain *d,
>       struct membank *bank;
>       unsigned int max_order = ~0;
>   
> +    /*
> +     * allocate_bank_memory can be called with a tot_size of zero for
> +     * the second memory bank. It is not an error and we can safely
> +     * avoid creating a zero-size memory bank.
> +     */
> +    if ( tot_size == 0 )
> +        return true;
> +
>       bank = &kinfo->mem.bank[kinfo->mem.nr_banks];
>       bank->start = gfn_to_gaddr(sgfn);
>       bank->size = tot_size;
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 11:48:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 11:48:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224736.388206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml8Ym-0000Rf-Vo; Thu, 11 Nov 2021 11:48:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224736.388206; Thu, 11 Nov 2021 11:48:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml8Ym-0000RY-S6; Thu, 11 Nov 2021 11:48:04 +0000
Received: by outflank-mailman (input) for mailman id 224736;
 Thu, 11 Nov 2021 11:48:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml8Yl-0000RO-Jk; Thu, 11 Nov 2021 11:48:03 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml8Yl-0004LW-Eq; Thu, 11 Nov 2021 11:48:03 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ml8Yl-0006ep-4G; Thu, 11 Nov 2021 11:48:03 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ml8Yl-0007kP-3l; Thu, 11 Nov 2021 11:48:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=AmlTq2B7zJwRAMVAeK8nsL4m3T2UDQ94gf+sYKulZNA=; b=qsEZ5UEpHz2C8vwsGyd7ZHW4fr
	GJbyhEqg6hnCXHlzvfeT0T2j8sVQIamzQEsGYrWU31Kp71d2qj+/SLnyJvxpu7FSI1vHXus7ux3YE
	iB6Hy7gxdTQEEht6j9MIZ3qSvHOEWpmC39mVkNQtq+nCqR+tfR7L+AilAEUTZLoO9ZFU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166114-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166114: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=22c3b5a865ec800b7eecf43de336ad5e2d917a08
X-Osstest-Versions-That:
    ovmf=8c8867c5da8e059ab98a6108f8182700f298c6f5
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Nov 2021 11:48:03 +0000

flight 166114 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166114/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 22c3b5a865ec800b7eecf43de336ad5e2d917a08
baseline version:
 ovmf                 8c8867c5da8e059ab98a6108f8182700f298c6f5

Last test of basis   166108  2021-11-10 09:41:26 Z    1 days
Testing same since   166114  2021-11-11 08:41:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Chen Lin Z <lin.z.chen@intel.com>
  Chen, Lin Z <lin.z.chen@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   8c8867c5da..22c3b5a865  22c3b5a865ec800b7eecf43de336ad5e2d917a08 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 12:39:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 12:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224745.388220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml9MW-0005M2-Uv; Thu, 11 Nov 2021 12:39:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224745.388220; Thu, 11 Nov 2021 12:39:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ml9MW-0005Lv-R0; Thu, 11 Nov 2021 12:39:28 +0000
Received: by outflank-mailman (input) for mailman id 224745;
 Thu, 11 Nov 2021 12:39:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GNk8=P6=oderland.se=josef@srs-se1.protection.inumbo.net>)
 id 1ml9MV-0005Lp-3R
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 12:39:27 +0000
Received: from office.oderland.com (office.oderland.com [91.201.60.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67882624-42ec-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 13:39:25 +0100 (CET)
Received: from [193.180.18.161] (port=36378 helo=[10.137.0.14])
 by office.oderland.com with esmtpsa (TLS1.2) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2)
 (envelope-from <josef@oderland.se>)
 id 1ml9MS-00754Y-HK; Thu, 11 Nov 2021 13:39:24 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67882624-42ec-11ec-a9d2-d9f7a1cc8784
Message-ID: <132343df-df01-6ab6-bdaf-cd1605028bfc@oderland.se>
Date: Thu, 11 Nov 2021 13:39:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101
 Thunderbird/93.0
Subject: Re: [PATCH] x86/smp: Factor out parts of native_smp_prepare_cpus()
Content-Language: en-US
To: Peter Zijlstra <peterz@infradead.org>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
 x86@kernel.org, hpa@zytor.com, jgross@suse.com
References: <1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com>
 <6a7edbff-e255-661d-c68f-c07b7519e421@oderland.se>
 <YYztW7bytZdvZFbN@hirez.programming.kicks-ass.net>
From: Josef Johansson <josef@oderland.se>
In-Reply-To: <YYztW7bytZdvZFbN@hirez.programming.kicks-ass.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - office.oderland.com
X-AntiAbuse: Original Domain - lists.xenproject.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - oderland.se
X-Get-Message-Sender-Via: office.oderland.com: authenticated_id: josjoh@oderland.se
X-Authenticated-Sender: office.oderland.com: josjoh@oderland.se

On 11/11/21 11:15, Peter Zijlstra wrote:
> On Wed, Nov 10, 2021 at 10:52:09PM +0100, Josef Johansson wrote:
>> On 11/3/21 00:36, Boris Ostrovsky wrote:
>>> Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
>>> introduced cpu_l2c_shared_map mask which is expected to be initialized
>>> by smp_op.smp_prepare_cpus(). That commit only updated
>>> native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().
>>> As result Xen PV guests crash in set_cpu_sibling_map().
>>>
>>> While the new mask can be allocated in xen_pv_smp_prepare_cpus() one can
>>> see that both versions of smp_prepare_cpus ops share a number of common
>>> operations that can be factored out. So do that instead.
>>>
>>> Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
>>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>>> ---
>>>  arch/x86/include/asm/smp.h |  1 +
>>>  arch/x86/kernel/smpboot.c  | 19 +++++++++++++------
>>>  arch/x86/xen/smp_pv.c      | 11 ++---------
>>>  3 files changed, 16 insertions(+), 15 deletions(-)
>>>
>>> diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
>>> index 08b0e90623ad..81a0211a372d 100644
>>> --- a/arch/x86/include/asm/smp.h
>>> +++ b/arch/x86/include/asm/smp.h
>>> @@ -126,6 +126,7 @@ static inline void arch_send_call_function_ipi_mask(const struct cpumask *mask)
>>>  
>>>  void cpu_disable_common(void);
>>>  void native_smp_prepare_boot_cpu(void);
>>> +void smp_prepare_cpus_common(void);
>>>  void native_smp_prepare_cpus(unsigned int max_cpus);
>>>  void calculate_max_logical_packages(void);
>>>  void native_smp_cpus_done(unsigned int max_cpus);
>>> diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
>>> index 8241927addff..d7429198c22f 100644
>>> --- a/arch/x86/kernel/smpboot.c
>>> +++ b/arch/x86/kernel/smpboot.c
>>> @@ -1350,12 +1350,7 @@ static void __init smp_get_logical_apicid(void)
>>>  		cpu0_logical_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR));
>>>  }
>>>  
>>> -/*
>>> - * Prepare for SMP bootup.
>>> - * @max_cpus: configured maximum number of CPUs, It is a legacy parameter
>>> - *            for common interface support.
>>> - */
>>> -void __init native_smp_prepare_cpus(unsigned int max_cpus)
>>> +void __init smp_prepare_cpus_common(void)
>>>  {
>>>  	unsigned int i;
>> Testing out this patch I got a warning that i is unused. Which it is,
>> since for_each_possible_cpu(i) is removed.
> Fixed. Can I add your Tested-by ?
Yes, I tested with tip.

Regards
Josef


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 13:33:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 13:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224752.388236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlACs-0002cx-0q; Thu, 11 Nov 2021 13:33:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224752.388236; Thu, 11 Nov 2021 13:33:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlACr-0002cq-U6; Thu, 11 Nov 2021 13:33:33 +0000
Received: by outflank-mailman (input) for mailman id 224752;
 Thu, 11 Nov 2021 13:33:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlACq-0002ci-TZ
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 13:33:32 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlACq-00064o-Rz
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 13:33:32 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlACq-0000Y5-PQ
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 13:33:32 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mlACf-0005Rm-U2; Thu, 11 Nov 2021 13:33:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=ZiFZYIc+WwNDMosbTX+iW4TIWlEHr6isM2HyV9t6KW8=; b=ZkhYcmuEjQMXJ49flRrEZ15GzC
	jzpmgv40p+W+Geh32MRPCyXMqRvZP6syxgI5worTCSQgsc1CDkyKvcZCyzB8l8K/CI1k/4XkJ3jSl
	WuddxFQxcf6zTlho0HypwvR4QXCHawwGvOMfvplg0f579peE14caicDB0+8ytfW4SC8M=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24973.7073.267980.897378@mariner.uk.xensource.com>
Date: Thu, 11 Nov 2021 13:33:21 +0000
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
    Penny.Zheng@arm.com,
    Bertrand.Marquis@arm.com,
    Wei.Chen@arm.com,
    Volodymyr_Babchuk@epam.com,
    xen-devel@lists.xenproject.org,
    Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: Re: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as
 reserved-memory
In-Reply-To: <34d14ad2-3af6-1624-f30d-12f53f8ffdfb@xen.org>
References: <20211110201812.934306-1-sstabellini@kernel.org>
	<34d14ad2-3af6-1624-f30d-12f53f8ffdfb@xen.org>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Julien Grall writes ("Re: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as reserved-memory"):
> Hi Stefano,
> 
> On 10/11/2021 20:18, Stefano Stabellini wrote:
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > 
> > DomUs static-mem ranges are added to the reserved_mem array for
> > accounting, but they shouldn't be assigned to dom0 as the other regular
> > reserved-memory ranges in device tree.
> > 
> > In make_memory_nodes, fix the error by skipping banks with xen_domain
> > set to true in the reserved-memory array. Also make sure to use the
> > first valid (!xen_domain) start address for the memory node name.
> > 
> > Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation")
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>

FTAOD: I don't see a for-4.16 tag here.  So I think this is targeted
for post-4.16 ?  But I wonder if it ought to be considered.  I don't
understand the impact of the bug that is being fixed here.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 13:42:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 13:42:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224764.388246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlAKy-00049j-Sr; Thu, 11 Nov 2021 13:41:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224764.388246; Thu, 11 Nov 2021 13:41:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlAKy-00049c-Pi; Thu, 11 Nov 2021 13:41:56 +0000
Received: by outflank-mailman (input) for mailman id 224764;
 Thu, 11 Nov 2021 13:41:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mlAKx-00049W-AB
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 13:41:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlAKu-0006EF-JL; Thu, 11 Nov 2021 13:41:52 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=[192.168.21.213]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlAKu-00014p-D0; Thu, 11 Nov 2021 13:41:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=QiK97p+//Hl2Wx4Kr+vsjA4nvHaDHimZkzDXMSEOOKg=; b=Pb/h//JtRAbva/5sqlffX/Uvls
	NjN/wBSNFi7nTSGnv0y5+UnrkFm18TCP29heGFcV8Z4KBg762y0QHLhycjlKHX4P2qa97fUKfCCjq
	nlyxRq0lflzjMpyCPx9cXlc0MGvFnH6yn49vpCq3StJF1E1xecaSmL6Y4NoZzJIycEQc=;
Message-ID: <62d96c46-fa37-438d-1099-34290c52232b@xen.org>
Date: Thu, 11 Nov 2021 13:41:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as
 reserved-memory
To: Ian Jackson <iwj@xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Penny.Zheng@arm.com,
 Bertrand.Marquis@arm.com, Wei.Chen@arm.com, Volodymyr_Babchuk@epam.com,
 xen-devel@lists.xenproject.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>
References: <20211110201812.934306-1-sstabellini@kernel.org>
 <34d14ad2-3af6-1624-f30d-12f53f8ffdfb@xen.org>
 <24973.7073.267980.897378@mariner.uk.xensource.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <24973.7073.267980.897378@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ian,

On 11/11/2021 13:33, Ian Jackson wrote:
> Julien Grall writes ("Re: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as reserved-memory"):
>> Hi Stefano,
>>
>> On 10/11/2021 20:18, Stefano Stabellini wrote:
>>> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>>>
>>> DomUs static-mem ranges are added to the reserved_mem array for
>>> accounting, but they shouldn't be assigned to dom0 as the other regular
>>> reserved-memory ranges in device tree.
>>>
>>> In make_memory_nodes, fix the error by skipping banks with xen_domain
>>> set to true in the reserved-memory array. Also make sure to use the
>>> first valid (!xen_domain) start address for the memory node name.
>>>
>>> Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation")
>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
>>> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
>>
>> Reviewed-by: Julien Grall <jgrall@amazon.com>
> 
> FTAOD: I don't see a for-4.16 tag here.  So I think this is targeted
> for post-4.16 ?  But I wonder if it ought to be considered.  I don't
> understand the impact of the bug that is being fixed here.

The first version of the patch [1] was tagged with for-4.16 and contains 
the rationale.

I was thinking to commit it because it already contains your 
release-acked-by. Can you let me know if it still stands?

Cheers,

[1] 
https://lore.kernel.org/xen-devel/24970.20802.96908.223297@mariner.uk.xensource.com/T/#m058f2d243f6670ef48e77f40c25ac0115f0dae74

> 
> Thanks,
> Ian.
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 14:07:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 14:07:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224771.388258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlAj4-0006c3-TT; Thu, 11 Nov 2021 14:06:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224771.388258; Thu, 11 Nov 2021 14:06:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlAj4-0006bw-Oa; Thu, 11 Nov 2021 14:06:50 +0000
Received: by outflank-mailman (input) for mailman id 224771;
 Thu, 11 Nov 2021 14:06:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xatb=P6=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mlAj3-0006bq-7T
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 14:06:49 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a327a0e-42f8-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 15:06:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a327a0e-42f8-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636639607;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=/tqGKANf6fxMPOumI2viwDFUzTOi9O4h62AY9DigH28=;
  b=NB2r7GYDvK0lae+g0Svfiec88tBX4YIi6zUEcysaW7fLzXflPir58iiJ
   iENzTzXDZMnl6kqFft7JyUimzHRguShzFMfrzhmuzpnyUAeoFwT5JjLK7
   uyppNXqodY6X/MntOOYKHtEsHgj76DWMac1R2PMkUHJD4/YYukSV5uGn2
   4=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: /orqQY6Hj7q/LRy/+8Xx69at+lsgmO5ufC8L1bG5aav1KUlJOfeWc0icvALLzayqQc6jKumx+u
 7Sksc9VgeCyhp5cWF44pBHP7nnmzDHf1NlvtDVqiDeLwrL7mV1mfOpMyPWtCzKgyKIieRl6c3t
 NusuB1xjoyVs1BJI3TOAh5LfTjUMThkvGa9u55rjXddXYfQ1U3Qcgf1pxp8kDovAiyUsulVSbu
 gWN4vrk3EKaXQATcbygVzNgu48pybAVsWeQ0V+BtTXBGmDfNs6xDcw+/6wYwN+rKKA87jSPJ4P
 F8MvRTRxISNDudCbUkwDd2pp
X-SBRS: 5.1
X-MesageID: 57608388
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:frZX9anHYuPA0nKTP87J0rbo5gwVIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJOW2yBaP/bZWT0KthwYYi2oU8F65eDndRgS1Nkri1gQSMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29cx2YHR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 PtGmZPuVlwkB7LzvrkZeQZiTiUmH6ITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBNPsM44F/Glp0BnSDOo8QICFSKLPjTNd9Gpv2JgeRqaOD
 yYfQXlFY1f7b14MAFxUT58zhNvzil7YYyIN/Tp5ooJoujOOnWSdyoPFMtXPfceRbd5IhUver
 WXDl0z4HRMyJNGZ0SCC8H+nmqnIhyyTcJIfEvi0++BnhHWXx3cPE1sGWF2ju/67h0WiHdVFJ
 CQ8+CAjsKwz/0yDVcTmUluzp3vslhcZUIsOO/Yg4w/LzKfIiy6GAkAUQzgHb8Yp3PLaXhRzi
 AXPxYmwQ2Uy7vvFEhpx64t4sxucMgQac3BZaBYbci1Y5/P8mtw31jDAG4ML/LGOsvX5HjT5w
 javpSc4hqkOgcNj65hX7WwrkBr3+MGXE1ddChH/Gzv8s1gnPNLNi5mAsACDtZ59wJClok5tV
 ZTus+yX96gwAJ6Ej0Rhq81dTejyt55p3NAx6GOD/qXNFRzxpBZPnqgKuVmSwXuF1O5dKFcFh
 2eJ6WtsCGd7ZifCUEOOS9vZ5z4W5abhD8/5cfvfc8BDZJN8HCfeonowOBDBgDCwzxdz+U3aB
 Xt9WZ/9ZZr9If43pAdaus9HieN7rszA7T+7qW/HI+SPjuPFOS/9pUYtO1qSdOEphJ5oUy2Om
 +uzw/Cikk0FOMWnO3G/2ddKcTgicChqbbir+pc/XrPSfWJb9JQJVqa5LUUJINc+wcy4V47go
 xmAZ6Ov4Aal2CCcd1zVMisLhXGGdc8XkE/X9BcEZD6A83MifZyu/OEYcZ42dqMg7+tt0bh/S
 PxtRilKKq0QE1wrIhwRMsvwqpJMbhOuiV7cNiapemFnLZVhWxbI6pnveQ62rHsCCS++tM0fp
 by811yEHcpfFlo6VMuGOuiyy16RvGQGnL4gVUX/PdQOKl7n95JnKnKtg6Zvcd0MMxjK2hCTy
 x2SXUUDveDIroJsqIvJiKmIop2HCex7GkYGTWDX4azvbXvR/3a5wJ8GW+GNJGiPWGTx8aSkR
 ONU0/Cjb6FXwAcU69JxSu85w7g/6t3jo65h4j5lRHibPU62Dr5AI2Wd2ZUdvKN62bIE6xC9X
 ViC+4cGNOzRat/lClMYOCEscv+HiaMPgjDX4Pk4fBf66Stw8ObVWEleJUDR2ilULb8zO4I52
 +Yx/sUR7lXn2BYtN9+HiAFS9niNcSNcA/l26MlCDd+5kBcvx3FDfYfYW33/75y4YtlRNlUnf
 22Pj63YirUAnkfPfhLfz5QWMTaxUXjWhC138Q==
IronPort-HdrOrdr: A9a23:WbIRiaEU08bj/JJepLqFDpHXdLJyesId70hD6qkvc3Jom52j+P
 xGws526faVslYssHFJo6HnBEClewKgyXcV2/hqAV7GZmjbUQSTXeRfBOfZslnd8mjFh5JgPM
 RbAtlD4b/LfCBHZK/BiWHSebtQo6jkgdCVbKXlvgxQpGlRGt9dBmxCe3+m+yNNNW577c1TLu
 vi2iMLnUvrRV0nKuCAQlUVVenKoNPG0LrgfB49HhYirC2Dlymh5rLWGwWRmk52aUIC/Z4StU
 z+1yDp7KSqtP+2jjfaym/o9pxT3P/s0MFKCsCggtUcbh/slgGrToJ8XKDqhkF5nMifrHIR1P
 XcqRYpOMp+r1vXY2GOuBPonzLt1T4/gkWSgGOwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze
 Ziw3+Zn4A/N2KAoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vFoLA
 BXNrCe2B9qSyLZU5iA1VMfheBEH05DUStue3Jy+vB8iFNt7TREJ0hx/r1oop5PzuN7d3B+3Z
 W3Dk1frsA4ciYnV9MPOA4/e7rDNoXse2OFDIvAGyWtKEk4U0i936Ifpo9Fot2XRA==
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="57608388"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UzxMaBaksybSSn7Hy86XGWNCpzt8yIheKmLi9pmIZgWDntOUG7Fmq9E2bHMGLfcVybcDkMxVKEGuyKmx6vdZZ0EjIbv1cqbvhkSn3unFBQbMiu8Df4X96jaFSZ3Ucw6vr+N4jmg97J1J6ZyonniiqHS4kJrLsch9kPKZmrVfJI9c80glWu5x9OcgcDBfc8MtBuYptFRaGrhlyPVypXlg69neJFQovPtzVpKQQ/nef8CMf5SXfpHN1kxawmTVgppsgNb+jqP0lYB72gXD7F7Osk4aLx7b0geNsfhuI6XcvWPYr0BjAqYIP0daWANidMe7QqxoyK58Pvtx7nCdYydHew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TaubetROC0v5/Oqbf0fLaoRM/IibhDZnWZFGvrlmQ0E=;
 b=TmgXiF7w8/U1BiR6Uq7xLY1G6ra+VRbznmlHKgTKSaDfNVF2SmCm1MTy7sixQ5rzi5Wt/O/42/GZnYbDTP8k63nMcV8eGT0pka1GicJ/rXNtfLmQdinvHY19siI5KYIRiaHTxGgjsKti5taZVGfNX8XMp2mntvyXCn+UyxNr2c6Jyv6ivllM+lLnM9ho04137LBR1ekZFkVBNsmjugRY24g63ER0P0NagM9UFryZ7gnweVT3oBR+Lb8I/7vCLR5DIqz2IBB7Dizhu6YugRXW4E62+m5/kBED3Tb/YP/cCyqzwYADUfEXWRp3mUIwVPB7oUGwG8H1/KQzxaVOFxnrjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TaubetROC0v5/Oqbf0fLaoRM/IibhDZnWZFGvrlmQ0E=;
 b=sX1yYRXy9QnT2+h+YBChedeh/dE/kSYhAdl8KUF3rYttkqWHWjus74EznntTioDDq76ONDkQnFqguTnXxLQPYEckyAvWhknYUTnxSZI6Wj/k4q9eJoa+riAYUDOUrvwi70SjuVGzADEJM0cUfUAWx9JfXn4cjex7rBzcU15Cesg=
Date: Thu, 11 Nov 2021 15:04:20 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <amc96@srcf.net>, Wei Liu <wl@xen.org>, Juergen Gross
	<jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Ian Jackson
	<iwj@xenproject.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] x86/cpuid: prevent shrinking migrated policies
 max leaves
Message-ID: <YY0i48LlRVizS8LQ@Air-de-Roger>
References: <20211110174059.64633-1-roger.pau@citrix.com>
 <519775a1-ba90-c5c5-82c1-abcd8c4ebb01@srcf.net>
 <9cb7444f-b1ab-524d-f94a-ede990b64f9f@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <9cb7444f-b1ab-524d-f94a-ede990b64f9f@suse.com>
X-ClientProxiedBy: MRXP264CA0044.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::32) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d9bcda8c-5973-4afe-b86a-08d9a51c2bcb
X-MS-TrafficTypeDiagnostic: DM5PR03MB3289:
X-Microsoft-Antispam-PRVS: <DM5PR03MB328959FA0BCBE50FEFB79AA18F949@DM5PR03MB3289.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: fPQn6/tnwLWtO0o4BkHGAsetmxHTd/rEJGA6CUfdLzzaURUx+yb/gSA0xT3XLboUukxP+uH3oujj84WZzVfspzk0ZLmdmHtzZBfsZmxKQoVCcAqoaYyNupaTvW6ouNCYNJsoRDTphkpHCi2MQOcAMjPjZlLiS11QDfZL6BEHiL27Ap+rkidH8mLlO/PehOS1btwjLLACndUcQiMhi7lBlz8lTXau2y7j7JuIORF5Gk2QCmBVvcalNk1JhO5u8oADIKLjzHXnSaKpcbTsgAaTP85MYkNCPP73cG6xNoTsafxQrGIAW+sb9PGLbJr3xna1S5oIV7Ks82xZg8/unWX8phrSKzTtU5t8Y2xAE8w6MjYtbLzUk5851TKd0JYH4QA0F2xUk/2jJfT8p/E7u1fSrQyfFV2+ayr1kT0eQ4DmxNZznfTj+7tK/215g7eVNo+gMKpYYVt2tfr5492BvTP52/XD36v327LlMzx7+56MDprF6lNDV+l4ja0Frw2QyUr9dPXflefPI17BmUhwKw28YY94mbRj6h1NfLuyslNP236MnzHVLE7AF1e/qvCsOzsrBA6G1w/TYSi/yJDjkXi6U6KLnUkIBnqhm2c0pxgOEc3glNkW40Dg32aOteIly+hd6DyYvsx7LtLe50cWrHVPNw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(86362001)(38100700002)(33716001)(4326008)(26005)(8936002)(66946007)(956004)(9686003)(2906002)(82960400001)(54906003)(6916009)(5660300002)(66556008)(6486002)(6666004)(508600001)(8676002)(85182001)(83380400001)(186003)(6496006)(316002)(66476007)(53546011);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QnRFeXdiSGlLTXFIcEhGL0VaR2Z3eDZ3L0huWHVYdnpydVhWa1B4K3dIOTBG?=
 =?utf-8?B?YVBCUkZuTE9pbTd0SGNDRXdIN3VMeVEyOGZtYmFqaW45ZTBJZWJ6MkZOaURT?=
 =?utf-8?B?V2l2WHFxaFMyZitnN3BQV2dHN3crT0M5TWlFNVZhWjJtNjhIVkRpbzFZUnJS?=
 =?utf-8?B?amNIdGlLQWxMQmJ0MkhyUmRxeUM1ek93dWZqMG8rYU1NclFCRm11anM2SFJq?=
 =?utf-8?B?Z21ON2E0NTZQRlBUTW5QWFAvMlJDYkVLbmovWXVhTzBlcnNnMGhDa2lLYkpp?=
 =?utf-8?B?R0hCc2QxL2VucmpWaDJWMW81K3BmeDZOUUY0RGoweVFycWoyMDV6cSs0Tm9S?=
 =?utf-8?B?c2w0WHBGK0U5RG42MTRyUlFVM2FZUThObUx2dW9TNkYzbXNWRHlsTVV2RVZa?=
 =?utf-8?B?VWJ2RzZMQ1ZPYUJkZ1R2UXVtemlXMzgwUzdNVWh5dGJ2QU5NVFZJV2NWK3Rw?=
 =?utf-8?B?UEpkYXFCdGljS21WSXJoUW5wRCsrbFZwcnJnRmQ3NndzMHV5WW8zQTVLOHA4?=
 =?utf-8?B?UVlTcmFqUHMrZitVMHJCNzBUb1RObms2OTU3ci9heVd1TU93ODFUT3FnbkJ5?=
 =?utf-8?B?WE5Pak1DUXRmUnU2OWZGU1pWdjMyWHovSEYwR010NE1XcFZmdnZOSTJzdkds?=
 =?utf-8?B?TGFXTTB5UmJLMmMzWFJ6OE9FbXR6bVNUSjMwSFR0TStZblZtaHpycWI2TUk1?=
 =?utf-8?B?TDh6Ti9NV0QySWp1TE5XVWZoc09tQ1ZwQ0VqaHRBREJGQm9DQnluWjBVbEVD?=
 =?utf-8?B?aUR4V1h0RjBkeFltdC9iRGx3UGhqeWZhZngvL3pEQWFUL1daY2tuV1BsbzJi?=
 =?utf-8?B?dGxKNXRUMnBKQWt2Smd6cnA2M2syUWFtc09rSlhwOGV5ZUxGREZuSHV2QUZX?=
 =?utf-8?B?NGNIdG9xbHo4WGtmQzNYOVpUMmsyaExyZngxYzlWbktreGlKaktYaVVlVXpC?=
 =?utf-8?B?Z0lvODRTOUVkbkMwRG91blZGaUw2OHVUbURZNkxEM1JTR01ZdUd5MFRRY1dO?=
 =?utf-8?B?VVZ6WXBrVmUzek40VFlsV0E2MkxyaEVYMkQwQlNqMG45TlNlQm9oekR3T2pX?=
 =?utf-8?B?c3BBYmtBVE05bXFmZDdjMWJyVTFmY2NxeEVSU0xiYy9KYXBNakdqSWg0ZVVL?=
 =?utf-8?B?dXZRMFRHMUFscFBvZkd5MFluRkJqV3JqQVNRUWFZV0RKZUE5cElwdi96U3RG?=
 =?utf-8?B?d1U1alBjQUc5Ny9JTU5YZjl1ZnA0R2tYcGVhUjNxQkFRK0FLdjlFY2JwUmVz?=
 =?utf-8?B?WTY0QnRLYk5sRk5FejgrVTg3YnBwNDlTdjhrZ1VYZS83K0MrSFY0b0Exazdj?=
 =?utf-8?B?b3UzYVdyc211WTJzNXBUc1YwaHpPLzkrbmR0UnVUOWsrelk4TVJqN214KzMz?=
 =?utf-8?B?NjF2VTdaVW9HcTl1emVLRVJ1T0pRM3I5WThCZnZ0NitlaSsreDM3TmN6Y1ky?=
 =?utf-8?B?VlRMbG5uOXFQNWtUMlp0aXNmbFhzQUFWM1ZMb081QWplTDc3SFQ2OStJQkVx?=
 =?utf-8?B?dWtBc1Z5b1NMbEJvNVZXcnY4cG1wTXJDNmxjNmg4VE10Wk1mYmc1WUcxUFlV?=
 =?utf-8?B?TGZDQWxaUVRYM3RxM0gzS3lIVFpreTNKaExDZ1c1Uk1GMEVGV3JrT0N0OTlY?=
 =?utf-8?B?aTBXbjA3WjZxM1dSNWxtZExOMG9DbEZ4SllaV1lYaWlHK1dINTBNb3R3ZzRh?=
 =?utf-8?B?VVhuUWxxcEl5OEVoTzlZdnlNbE02N0gzQnNrM3Z0ZDZMT29RZ2VnaU40VlZ3?=
 =?utf-8?B?Ky9hbHk3bi9Fb3BVMHRhb0lnVDI3VGdVUEN2QWk3MlJ4Q1ErNzVINUVRZnhS?=
 =?utf-8?B?dHJuaG5aUlJtQVh5ak5KOHRnd1R4QkoxdFYweXRycU84dmxEUmdqbjU3SDBu?=
 =?utf-8?B?S0lMNmpkZmdnR3Z5bUpvTGhUY3pqUzRscTJZbUxha0FPTTdFUGhpMklPSHB5?=
 =?utf-8?B?ZCtodTNQZVZlcmJzVHoyMGtqdkJUSDFGek0xRVFCWkhXdG1aV3BwcVZXTm5K?=
 =?utf-8?B?Q0VHM0pSWjZYNzJTVGVMUWxWTllOOGwzNFZuVEVRYytheUhIRGZvL0NucVJ0?=
 =?utf-8?B?SFhvRUZGRmdRcWhCY2QxWk1SOWUwV1d3WkpOMGg0RW5qNUJLT3NNaFFhOHJC?=
 =?utf-8?B?bXFGWnlOYWxLSmp6UVJzakoxRThUUFVUUjhHdjlFWEwxbEltNVZmOGVkc1VK?=
 =?utf-8?Q?+To9JYY+IXsXgzTV+Jb0r7A=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: d9bcda8c-5973-4afe-b86a-08d9a51c2bcb
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 14:04:26.4065
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kbn0cTCsWBzID+KcqGFwsdmWzRhH2dRLd7OH2zOmBvhs/bP9JlE2B2Zqk7N5SDt3FUQRgi4xpuq1B4KN/NEHrA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3289
X-OriginatorOrg: citrix.com

On Thu, Nov 11, 2021 at 10:26:29AM +0100, Jan Beulich wrote:
> On 10.11.2021 19:17, Andrew Cooper wrote:
> > On 10/11/2021 17:40, Roger Pau Monne wrote:
> >> diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
> >> index 198892ebdf..3ffd5f683b 100644
> >> --- a/tools/libs/guest/xg_cpuid_x86.c
> >> +++ b/tools/libs/guest/xg_cpuid_x86.c
> >> @@ -638,6 +638,13 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
> >>          }
> >>      }
> >>  
> >> +    /*
> >> +     * Do not try to shrink the policy if restoring, as that could cause
> >> +     * guest visible changes in the maximum leaf fields.
> >> +     */
> >> +    if ( !restore )
> >> +        x86_cpuid_policy_shrink_max_leaves(p);
> > 
> > Nothing in xc_cpuid_apply_policy() changes any of the max leaves, so
> > this is dead logic.
> 
> I guess you mean nothing there does anything which would result in
> shrinking of the max leaves by calling this function? Yet even if
> so, isn't the call here to take care of any earlier changes which
> might have resulted in fully blank tail leaves?

AFAICT the featureset (optionally) passed in as a parameter could
result in certain leaves being zeroed and thus allow for the max leaf
to shrink.

So while xc_cpuid_apply_policy doesn't change the max leaves fields,
it can potentially zero certain leaves allowing to shrink the reported
max leaf.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 14:19:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 14:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224777.388268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlAuj-00084P-0y; Thu, 11 Nov 2021 14:18:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224777.388268; Thu, 11 Nov 2021 14:18:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlAui-00084I-UM; Thu, 11 Nov 2021 14:18:52 +0000
Received: by outflank-mailman (input) for mailman id 224777;
 Thu, 11 Nov 2021 14:18:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6S8D=P6=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mlAuh-00084C-8M
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 14:18:51 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48f5b096-42fa-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 15:18:49 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48f5b096-42fa-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636640329;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=AUjZmJxqwdOuAz7EgQE4hMCnziUrwwxqnhE+exWo6KI=;
  b=gURjl6M3djrUqJ7MqcOhnw9oyQgpyp2c8ORz8zwR8A+ZpeKQOTwQgVr7
   1u56qhz3DFlmKZGoqpGB0w++7B/agSzeP65/aPsiMT+j5S0/zBLKSXWiW
   bGphwU49zGDcrpK0HwwCpUu39VtZK4N/28aczAEvwLC5ryL/m8GpvPogt
   k=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: dUv2yyaTVvJGl7F6Wj2WxzdkqoJJRKZtzMAyiN4Y3YvmnEChMmKA+9di5Zj6e8HaEKgEc7Upz5
 tHLz4uSwIy498UepHiSzmWqxzdbsV7lz4B+WZmbhuN/gCodDESP4N/uKvUZIuI0Fqju6ikCtok
 YlUUttXq39RnXlz3S1mQX8k6TkSuU1FwkUiWzTkR1GRFoPSGLj4XlsGcm9g/OpOMZTyDXqSv3a
 Gw2b0EESoL2i1/LfGf+g/seerGzqZ4o424UXteNinsHCigABNeHlFA+nXJCPAYQkWvdiazFoIf
 W2lK8Xsdoc4htusPkMwihyA4
X-SBRS: 5.1
X-MesageID: 57136053
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:5jakeK87mTeh44DGYvSPDrUDZnmTJUtcMsCJ2f8bNWPcYEJGY0x3y
 GFLDG2GOv+JZmGnc98gb46zpE0BupbTyNFhGVdvry08E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdg29Yx6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPgs+
 vMUs7Ducj4YP+7xlcMNbDVJLnBhaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwqKtXrO4UO/Glt1zjDAd4tQIzZQrWM7thdtNs1rp0RRK2AP
 5dCAdZpRDvgZCMQP1MIMs5go9zyrEHjVQBhgU3A8MLb5ECMlVcsgdABKuH9e8OIbdVYmF6Co
 WDL9Hi/BQsVXPSAzRKV/3TqgfXA9Qv6Q4sTF7y+s/JvgUGJ10QCARsaWEv9u+TRol6zXZdTJ
 lIZ/gIqrLMu7wq7Q9/lRRq6rXWY+BkGVLJt//YSsV/XjPCOukDAWzZCHmUphMEaWNEeGA4Mj
 1mlwejQND0sjbCyWU2x54rFsmbnUcQKFlMqaSgBRAoDxtDspoAvkx7CJupe/L6JYs7dQm+pn
 W3TxMQqr/BK1JNQif3nlbzSq2v0/sChc+Ij2unAsotJBCtdbZXtWYGn4EOzAR1ofNfAFQnpU
 JTpdqGjAAEy4XOlyHPlrAYlRujBCxO53Nv02A8H834JrWTFxpJbVdoMiAyS3W8wWir+RRfnY
 VXIpSRa74JJMX2hYMdfOtzqVZl0nPewSIu6CZg4i+aihLAoJWdrGwk0NSatM53FyhBwwcnTx
 7/HGSpTMZrqIfs+l2fnLwvs+bQq2jo/1QvuqWPTlHyaPU6lTCfNE98taQLWBshgtf/siFiFo
 r53aprRoz0CAbKWX8Ui2dNKRbz8BSNgXs6eRg0+XrPrHzeK70l9UaKMmu14JNQ+90mX/8+Rl
 kyAtoZj4AKXrRX6xc+iMBiPsZvjAsRyq2wVJyspMQr60nQve9/3vqwea4E2bf8s8+k6lax4S
 PwMesOhBPVTS2uYp2RBPMel9IEyJg62gQ+uPja+ZGRtdZBXWAGUqMTveRHi9XdSA3Pv59c+u
 bCpyijSXYEHG1Z5FM/TZf/2lwGxsHERlfhcRUzNJtUPKkzg/JIzc376j+MtItFKIhLGn2PI2
 wGTCBYehO/Mv45qr4WZ2fHa99+kSrIsEFBbEm/X6aeNGRPbpmfzk5VdVOuofCzGUD+m8quVe
 ugIner3N+cKnQgWvtMkQapr1683+/Dmu6ReklZ/BHzOYlmmVuFgL32B0ZUdv6FB3OYE6w6/W
 0bJ8dhGI7SZfsjiFQdJdgYia+2C09ASmyXTsqtpcBmruncv8erVS1hWMjmNlDdZfel8P44Sy
 Os8vNIbtl6kgR0wP9fa1i1Z+gxg9JDbv3nLYn3CPLLWtw==
IronPort-HdrOrdr: A9a23:czBLaaC9wCenvsPlHemu55DYdb4zR+YMi2TC1yhKKCC9Vvbo8P
 xG/c5rsSMc5wx8ZJhNo7+90ey7MBXhHP1OkOws1NWZLWrbUQKTRekIh+bfKn/bak/DH4ZmpN
 5dmsNFaOEYY2IVsfrH
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="57136053"
Date: Thu, 11 Nov 2021 14:18:43 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Dmitry Isaykin <isaikin-dmitry@yandex.ru>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Ian
 Jackson" <iwj@xenproject.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v5] tools/xl: fix autoballoon regex
Message-ID: <YY0mQ913ibP6kz7s@perard>
References: <54c1bcb40afa8a6f36ab4bec8c91523a535c911b.1633090722.git.isaikin-dmitry@yandex.ru>
 <844291636472349@iva2-5f9649d2845f.qloud-c.yandex.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <844291636472349@iva2-5f9649d2845f.qloud-c.yandex.net>

On Tue, Nov 09, 2021 at 07:17:53PM +0300, Dmitry Isaykin wrote:
> Up

The patch as been committed ;-)
https://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=2faeb4213d9b412836fe80e5685bfcccc51feb92

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 14:49:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 14:49:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224784.388280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlBNX-0002pQ-5r; Thu, 11 Nov 2021 14:48:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224784.388280; Thu, 11 Nov 2021 14:48:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlBNX-0002pJ-2R; Thu, 11 Nov 2021 14:48:39 +0000
Received: by outflank-mailman (input) for mailman id 224784;
 Thu, 11 Nov 2021 14:48:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlBNV-0002pD-OV
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 14:48:37 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlBNV-0007PQ-Lp
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 14:48:37 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlBNV-0006OS-Kp
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 14:48:37 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mlBNK-0005eu-BZ; Thu, 11 Nov 2021 14:48:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=xLTOOdFjZQoxtmdyMlNnkf4dBX0Cm/aPQPIB7n9MgUo=; b=w+5HVrVRzZ1PSFEzXYo5XrXJFD
	/CP+IvPYgvNqKaSPxgWMXoKRz43+QCn3vNjlVPb7zwAnyAt1uIUQe9C5YdKqfmaVVdaTZUypsRMQr
	Oxe7r1mPf5dlJRIgoLtHs4SNG2gYadu6kDjqlJy1X/QOiycZmTiBUiQbrVKx7sToBnyA=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24973.11574.552396.889715@mariner.uk.xensource.com>
Date: Thu, 11 Nov 2021 14:48:22 +0000
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
    Penny.Zheng@arm.com,
    Bertrand.Marquis@arm.com,
    Wei.Chen@arm.com,
    Volodymyr_Babchuk@epam.com,
    xen-devel@lists.xenproject.org,
    Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: Re: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as
 reserved-memory
In-Reply-To: <62d96c46-fa37-438d-1099-34290c52232b@xen.org>
References: <20211110201812.934306-1-sstabellini@kernel.org>
	<34d14ad2-3af6-1624-f30d-12f53f8ffdfb@xen.org>
	<24973.7073.267980.897378@mariner.uk.xensource.com>
	<62d96c46-fa37-438d-1099-34290c52232b@xen.org>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Julien Grall writes ("Re: [PATCH v3] xen/arm: don't assign domU static-mem to dom0 as reserved-memory"):
> The first version of the patch [1] was tagged with for-4.16 and contains 
> the rationale.
> 
> I was thinking to commit it because it already contains your 
> release-acked-by. Can you let me know if it still stands?

Oh.  Please go ahead.  I'm sorry to be confused; I rely on the
computer as my external storage :-).

Ian.



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 15:10:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 15:10:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224791.388291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlBiG-0005hZ-N2; Thu, 11 Nov 2021 15:10:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224791.388291; Thu, 11 Nov 2021 15:10:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlBiG-0005gw-JO; Thu, 11 Nov 2021 15:10:04 +0000
Received: by outflank-mailman (input) for mailman id 224791;
 Thu, 11 Nov 2021 15:10:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlBiF-0005Q2-1r
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 15:10:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlBiE-0007mh-Ub
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 15:10:02 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlBiE-0007uj-Td
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 15:10:02 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mlBi5-0005jh-3N; Thu, 11 Nov 2021 15:09:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=hQTt4GXoxAlLtpSp85M0pIyfibiaMADI20tA7NgxY2w=; b=Jog3fTvMsnRyfdu5TiDlTC5B04
	nL310++7Ak1IynBCE83WtvcDLCcY2p1YHzdJgrNqk+brPs7RKqUimdRbHQVC5RIvJpviIZAFpJA7r
	/viiI/td7S5V37Br0bz2iFQOQaxL0s2g/6Sv8cbroylQ/FI+zpPg0lDxxYQAAfQIXWug=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24973.12855.507526.611939@mariner.uk.xensource.com>
Date: Thu, 11 Nov 2021 15:09:43 +0000
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
    xen-devel@lists.xenproject.org,
    bertrand.marquis@arm.com,
    Volodymyr_Babchuk@epam.com
Subject: Re: [PATCH v2] MAINTAINERS: add Bertrand to the ARM reviewers
In-Reply-To: <a19a844b-672e-8630-fc60-f41d20760b49@xen.org>
References: <alpine.DEB.2.22.394.2111050843450.284830@ubuntu-linux-20-04-desktop>
	<a19a844b-672e-8630-fc60-f41d20760b49@xen.org>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Julien Grall writes ("Re: [PATCH v2] MAINTAINERS: add Bertrand to the ARM reviewers"):
> (+ Ian)
> 
> On 05/11/2021 15:44, Stefano Stabellini wrote:
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> Acked-by: Julien Grall <jgrall@amazon.com>
> 
> @Ian, do we need a release-acked-by for this?

No, it's fine, but for the record:

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 16:05:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 16:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224805.388306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlCZO-00032d-KF; Thu, 11 Nov 2021 16:04:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224805.388306; Thu, 11 Nov 2021 16:04:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlCZO-00032W-HJ; Thu, 11 Nov 2021 16:04:58 +0000
Received: by outflank-mailman (input) for mailman id 224805;
 Thu, 11 Nov 2021 16:04:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6S8D=P6=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mlCZN-00032Q-2O
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 16:04:57 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b1d94fb-4309-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 17:04:54 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b1d94fb-4309-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636646694;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=Jzt3iLkfGm8Seg3dbo9owiWRM6tdxsiliPIy4rV4sH0=;
  b=fMB93JxKeTHEn8qWJSCUvfOaYzHShwBy7rS2+7JvLzT2WsbMWLWmMFGy
   JXIXHmfWpPNVDqe4OwBgThPNMX74+cNlD3ozeradXPHl01gCk85fKEuNs
   34BoSiYBEUi05aQa2OUAqhdH5iC0qc6lni2LNWav5B+7tL0O/gdMYyIP/
   g=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: JWe+8uhq33k9f5OneyswnZc7zdlRqug28PkSh7VsEP3fTAGnK+D0Gp/CTjnkQEoke2w07mER/n
 kcFzFonGcrbtwb7yR+EUWzL6ZbEOwGF3qCyPKNTj1YNmwC0KK30JJOytLIpa3qd1v3R9u/qP97
 28GqIxYlhdyojcR+kT6OjA5V+deujqkD75+q1yj2cQrWsg7F/A5T+C5MapbegO59CH7J+h1JBS
 O+smYgLuWnfBdKqLZR3Kn8rI5aSQ4ESOumy2qG0yfUlGl45fm4UV3yrBffayWbuHIINWcGbnQV
 RPhsenn+irhfZhbqwtizHw4/
X-SBRS: 5.1
X-MesageID: 59582803
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LiPyXqlsw0QXpN9D3R7/I+Lo5gwRIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIWCmnSMvfYYzfzc4pya9y28UIP6pTWmtZjHgo6qioyEyMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29cx2YHR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 OpNroPhTCMUB73nlrkCbkRASRpaMKITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBMDtIIMYvGAm1TzDBOwqaZvCX7/L9ZlT2zJYasVmQKeDN
 5BJMWEHgBLoWzJjHEYGNp8Ejr2hq3CkWhF0iAqSjP9ii4TU5FMoi+W8WDbPQfSIWMFUk0Cwt
 m/AuWPjDXkyL8eDwDCI9natgO7nni7hXo8WUrqi+ZZCn1m71mEVThoMWjOTo/O0l0q/UNJ3M
 FEP92wlqq1a3E6kVN7mRDWjvWWJ+BUbXrJ4A+A8rQ2A1KfQywKYHXQfCC5MbsQ8s807TiBs0
 UWG9/voGj5HoLCTUWia9LqfsXW1Iyd9EIMZTXZaF01fuYCl+dxtyEKUJjp+LEKrpuL1Ai6hx
 hS3lTgViegMsJMTjZ6f8F+S1lpAuaP1ZgIy4wzWWEes4QV4eJOpauSU1LTL0RpTBN3HFwfc5
 RDoj+DbtblTVs/VyERhVc1UROnxj8tpJgEwlrKG83MJ0z22s0CucolLiN2VDBc4a51UEdMFj
 aK6hO+w2HOxFCf1BUOUS9joYyjP8UQGPY20PhwzRoAeCqWdjCfdoElTibe4hggBanQEn6AlI
 ou8es2xF3scAqkP5GPoHLlAj+50ln1hmjy7qXXHI/KPiOv2iJm9E+dtDbdzRrphsPPsTPv9r
 76zyPdmOz0ACbajM0E7AKYYLEwQLGhTOHwFg5c/SwJ3GSI/QDtJI6aImdsJItU594wIxrag1
 izsASdwlQug7UAr3C3XMxiPnpu0Bs0hxZ/6VARxVWuVN48LPdzysfxBLsRvJtHKNoVLlJZJc
 hXMQO3Yatwnd9gN0251gUDVoNMweRK1qxiJOib5MjEzc4Q5H17C+8P+fxup/y4LV3Llucw7q
 rym9wXaXZtcGFgyUJeIMKqinwGroHwQuONuRE+UcNNdT1rhrdpxICvrg/5pf8xVcUffxiGX3
 hq9CAsDobWfuJc89dTE3PjWr4qgH+ZkMFBdGm3XseS/OSXApzLxyo5cSueYOzvaUTqsqqmlY
 OxUydD6MeEGwwkW49YtTe4zwPtntdX1prJcwgB1J1nxbgymWuF6P32L/chTrakRlLVXjhS7B
 xCU8d5ANLTXZM68SAwNJBAoZ/io3O0PnmWA9uw8JUj36XMl/LeDVkkObRCAhDYEcelwOYIhh
 +wgpNQX+0q0jR9zaoSKiSVd9mKtKH0cUvp46sFGUdGz0gd7mEtfZZH8CzPt5MDdYtpBBUAmP
 zuIifeQnL9b3EfDLyI+GHWlMTCxXnjSVMSmFGM/Gmk=
IronPort-HdrOrdr: A9a23:2c0Ds6uyrE68FYg7yHG5N1rD7skDdNV00zEX/kB9WHVpmszxra
 GTddAgpHjJYVcqKRUdcL+7VJVoLUmyyXcx2/h2AV7AZniChILLFvAA0WKK+VSJcEeSygce79
 YDT0EXMqyIMbEQt6bHCWeDfeod/A==
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="59582803"
Date: Thu, 11 Nov 2021 16:04:47 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Juergen Gross <jgross@suse.com>
CC: <xen-devel@lists.xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: Re: [PATCH v2.2 07/15] xen: generate hypercall interface related code
Message-ID: <YY0/H7pPal9tg1Ct@perard>
References: <20211103102059.19621-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <20211103102059.19621-1-jgross@suse.com>

On Wed, Nov 03, 2021 at 11:20:59AM +0100, Juergen Gross wrote:
> diff --git a/xen/Makefile b/xen/Makefile
> index a3189eb47c..dfdae47e74 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -405,6 +406,7 @@ $(TARGET): delete-unfresh-files
>  	$(MAKE) -f $(BASEDIR)/Rules.mk -C include
>  	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) include
>  	$(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h
> +	$(MAKE) -f $(BASEDIR)/Rules.mk include/xen/hypercall-defs.h
>  	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
>  
>  # drivers/char/console.o contains static banner/compile info. Blow it away.
> @@ -466,6 +468,14 @@ include/asm-$(TARGET_ARCH)/asm-offsets.h: asm-offsets.s
>  	  echo ""; \
>  	  echo "#endif") <$< >$@
>  
> +quiet_cmd_genhyp = GEN     $@
> +define cmd_genhyp
> +    awk -f scripts/gen_hypercall.awk <$< >$@
> +endef
> +
> +include/xen/hypercall-defs.h: include/hypercall-defs.i scripts/gen_hypercall.awk FORCE
> +	$(call if_changed,genhyp)
> +

Is there a reason to generate "hypercall-defs.h" here? Could this be
moved to include/Makefile instead?

Then, when moved to include/Makefile, I think you would need to add both
"xen/hypercall-def.h" and "hypercall-defs.i" to $(targets) to avoid them
been rebuilt needlessly.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 16:45:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 16:45:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224810.388318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlDCG-00070V-K3; Thu, 11 Nov 2021 16:45:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224810.388318; Thu, 11 Nov 2021 16:45:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlDCG-00070O-Gv; Thu, 11 Nov 2021 16:45:08 +0000
Received: by outflank-mailman (input) for mailman id 224810;
 Thu, 11 Nov 2021 16:45:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6S8D=P6=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mlDCF-00070I-EK
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 16:45:07 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b8039661-430e-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 17:45:05 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8039661-430e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636649105;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=9RjWHzq3K0/KZ4YOHK5IGk+YV9zawLMH8YA/IiNUJqY=;
  b=dS+vEK+sgwWQvmkZz7gkGSGf4cNSVzG8IMFn+3vBPMzJkN1pZOa35ZaD
   fHB7Knd0oxNeLeEpAk0ntvGA8daCZcwz/7v+y34sgdkhoy93utmK03zEg
   j9yJnATWo58P2eRTHENqNP+bOAqJW/3fkKvkDeKHezEpx/S50h//vbfiC
   U=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: sCQEec0xHy4wEGKKnrsvku3IIGwYtdV4V9Wh1nGzqrTurXc+HqTbgX+d6B75+1FJD6AhGGedWu
 yCDy1oVk+c8BGY0FTDVwIKXKUbr7J3aXFxY+XOWjLLs0pw7DOGQ4IQic6bJXBpnQ+GsSrY65Nc
 OONgfgG2Key4Z2r8RQfDX3+gS/wGefQwWojHsVhiqYH3EVdwK8CGTVSS1sZjemlj9HGF63ptC+
 2yRa+R5jQFnUPDUYH3VnbV8aIpRG9VlsFhhKYMRlIvZBB2vBVQY8Q+uwvXkyg7DzrkJjLRnyaY
 //VZdrXcv91vnkTKyLL5dcSo
X-SBRS: 5.1
X-MesageID: 57648061
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:5dofPaKNrzJIrCv1FE+Rm5MlxSXFcZb7ZxGr2PjKsXjdYENS1GcHy
 WMZX2uEMv6PZGuked92O4jnoUsCvsKGxoJgGlZlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6wrZg6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Drvcg6
 +t076W+dll1IPzsmsYXfERxRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFlgNgjK8/6epsSoHh6wRnSDOo8QICFSKLPjTNd9Gpv2JweRaiHD
 yYfQRBmUTj7bB1xBnU4AoohtuStr2vaYRQN/Tp5ooJoujOOnWSdyoPFMcXXUsyHQ91PmUSVr
 X6A+H72ajkEM9iYxSuA42ibjObFliPmW6ofDLS9sPVthTW7xGMJDwYNfUCmuvT/gUm7M/pAL
 2QE9yxoqrI9nGShQ8PhRRS+rDiBtwQFRttLO+Qg7UeGza+8yxaUAC0IQyBMbPQitdQqXno62
 1mRhdTrCDdz9rqPRhq1+LGJ6y2zOjIcKEcSZCsFSxtD6N7myKkxkxbOQ9BLAKOzyNrvFlnY2
 CuWpSIzg7ESi88j1Kih+13DxTW2qfD0ohUdv1uNGDj/t0UgOdDjN9fABUXnAehoJre+H3q/h
 SI9lffAsP5fLZOvngPQabBYdF223MqtPDrZiF9pOpAu8TWx5nKuFbxtDCFCyFRBaZhdJ2KwC
 KPHkUYIvcIIYiP2BUNiS9vpU5xC8ET2KTjyuhk4hPJqa4M5SgKI9ToGiaW4jzG0yxhEfU3S1
 P6mnSeQ4ZQyVfsPINmeHb51PVoXKsYWnDK7qXfTlUTP7FZmTCTJIYrpyXPXBgzD0IuKoR/O7
 /FUPNaQxhNUXYXWO3eMr9NNfA9acCdkWvgaTvC7kMbac2KK/0l7W5fsLU4JIdQ5z8y5aM+Ul
 p1CZqOo4AWm3iCWQel7QntidKnuTf5CQYETZkQR0aKT8yF7O+6Htf5HH7NuJOVP3LEznJZcE
 qheE+3dU6snd9gy02lEBXULhNc5L0rDaMPnF3fNXQXTiLY8HVGUoYG9IVO0nMTMZwLu3fYDT
 3Sb/luzafI+q85KV646sdqjkAG8u2YzguV3UxeaK9VfYhy0ooNrNzbwnrk8JMRVcUfPwT6T1
 gC3BxYEpLaS/99poYeR3a3U/Z20F+ZeH1ZBGzWJ57iBKiSHrHGoxpVNUbjUcGmFBn/04qire
 c5c0+r4bK8chF9PvoclS+RrwKsy6sHBvbhfygg4TnzHY07yUuFrI2Wc3NkJvapIn+cLtQyzU
 0OJ299bJbTWZ5+1TA9PfFIoN73R2+sVlz/e6eUODH/7vCInrqCaVUhyPgWXjHAPJrVCL454k
 /wqv9Qb6lLjh0NyYMqGlC1d60+FMmcED/c8rpgfDYLm1lgrx1VFbcCOAyP6+sjSOdBFM01sK
 T6InqvSwb9bwxOaIXY0EHHM28tbhIgP508WnANTeQzRl4qXnOIz0T1Q7S8zH1ZcwRhw2u5uP
 nRmah9uLqKU8jY03MVOUghAwe2a6MF1LqAp92Y0qQ==
IronPort-HdrOrdr: A9a23:nHlxx68g9dSCsS+KYIBuk+DYI+orL9Y04lQ7vn2YSXRuHPBws/
 re+MjztCWE7Qr5N0tMpTntAsW9qDbnhPlICOoqTNWftWvd2FdARbsKheCJ/9SjIVycygc079
 YHT0EUMrzN5DZB4vrH3A==
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="57648061"
Date: Thu, 11 Nov 2021 16:44:59 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Vikram Garhwal <fnu.vikram@xilinx.com>
CC: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>, <bertrand.marquis@arm.com>, <volodymyr_babchuk@epam.com>,
	Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Juergen Gross
	<jgross@suse.com>
Subject: Re: [XEN][RFC PATCH v2 11/12] tools/libs/light: Implement new libxl
 functions for device tree overlay ops
Message-ID: <YY1Ii0gSMmCCaiy2@perard>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
 <1636441347-133850-12-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <1636441347-133850-12-git-send-email-fnu.vikram@xilinx.com>

On Mon, Nov 08, 2021 at 11:02:26PM -0800, Vikram Garhwal wrote:
> Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
> ---
>  tools/include/libxl.h            |  5 ++++
>  tools/libs/light/Makefile        |  3 ++
>  tools/libs/light/libxl_overlay.c | 65 ++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 73 insertions(+)
>  create mode 100644 tools/libs/light/libxl_overlay.c
> 
> diff --git a/tools/include/libxl.h b/tools/include/libxl.h
> index 2e8679d..3dcb3e7 100644
> --- a/tools/include/libxl.h
> +++ b/tools/include/libxl.h
> @@ -2406,6 +2406,11 @@ libxl_device_pci *libxl_device_pci_list(libxl_ctx *ctx, uint32_t domid,
>                                          int *num);
>  void libxl_device_pci_list_free(libxl_device_pci* list, int num);
>  
> +#if defined (CONFIG_OVERLAY_DTB)
> +int libxl_dt_overlay(libxl_ctx *ctx, void *overlay,
> +                     int overlay_size, uint8_t op);
> +#endif
> +

This won't work. "libxl.h" is a public header to be installed, so
CONFIG_OVERLAY_DTB won't mean anything to other application making use
of libxl.

Instead, can you always provide libxl_dt_overlay() but which would
return ENOSYS when libxl is built without CONFIG_OVERLAY_DTB?


>  /*
>   * Turns the current process into a backend device service daemon
>   * for a driver domain.
> diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
> index 194bc5f..0fffa93 100644
> --- a/tools/libs/light/Makefile
> +++ b/tools/libs/light/Makefile
> @@ -117,6 +117,9 @@ SRCS-y += libxl_genid.c
>  SRCS-y += _libxl_types.c
>  SRCS-y += libxl_flask.c
>  SRCS-y += _libxl_types_internal.c
> +ifeq ($(CONFIG_OVERLAY_DTB),y)
> +SRCS-y += libxl_overlay.o

FYI, the "-y" is so that you can do
    SRCS-$(CONFIG_OVERLAY_DTB) += libxl_overlay.o
;-)

> diff --git a/tools/libs/light/libxl_overlay.c b/tools/libs/light/libxl_overlay.c
> new file mode 100644
> index 0000000..d965aee
> --- /dev/null
> +++ b/tools/libs/light/libxl_overlay.c
> @@ -0,0 +1,65 @@
> +/*
> + * Copyright (C) 2021 Xilinx Inc.
> + * Author Vikram Garhwal <fnu.vikram@xilinx.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU Lesser General Public License as published
> + * by the Free Software Foundation; version 2.1 only. with the special
> + * exception on linking described in file LICENSE.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU Lesser General Public License for more details.
> + */
> +
> +#include "libxl_osdeps.h" /* must come before any other headers */
> +#include "libxl_internal.h"
> +#include <libfdt.h>
> +#include <xenguest.h>
> +#include <xenctrl.h>
> +
> +static int check_overlay_fdt(libxl__gc *gc, void *fdt, size_t size)

Does "fdt" can have a better type than a plain pointer?

There is a "size" provided, is it the size of the blob pointed by "fdt"?
If so, can the size been the first thing to be check? Surely there is a
minimum size for *fdt.

> +{
> +    int r;
> +
> +    if (fdt_magic(fdt) != FDT_MAGIC) {
> +        LOG(ERROR, "Overlay FDT is not a valid Flat Device Tree");
> +        return ERROR_FAIL;
> +    }
> +
> +    r = fdt_check_header(fdt);
> +    if (r) {
> +        LOG(ERROR, "Failed to check the overlay FDT (%d)", r);
> +        return ERROR_FAIL;
> +    }
> +
> +    if (fdt_totalsize(fdt) > size) {
> +        LOG(ERROR, "Overlay FDT totalsize is too big");
> +        return ERROR_FAIL;
> +    }
> +
> +    return 0;
> +}
> +
> +int libxl_dt_overlay(libxl_ctx *ctx, void *overlay_dt, int overlay_dt_size,
> +                     uint8_t op)

What is "op"? What the function is supposed to do beside calling libxc?

> +{
> +    int rc = 0;
> +    GC_INIT(ctx);

The function should have "GC_FREE;" before returning.

> +
> +    if (check_overlay_fdt(gc, overlay_dt, overlay_dt_size)) {
> +        LOG(ERROR, "Overlay DTB check failed\n");
> +        return ERROR_FAIL;
> +    } else
> +        LOG(DEBUG, "Overlay DTB check passed\n");

FYI, there is no need for "\n" when using LOG().

> +
> +    /* We don't need to do  xc_interface_open here. */
> +    rc = xc_dt_overlay(ctx->xch, overlay_dt, overlay_dt_size, op);

"rc" is reserved for libxl error code, xc_* return value should be
stored in "r" instead.

> +
> +    if (rc)
> +        LOG(ERROR, "%s: Adding/Removing overlay dtb failed.\n", __func__);
> +
> +    return rc;
> +}
> +

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 16:54:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 16:54:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224817.388329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlDLQ-0008RU-Hk; Thu, 11 Nov 2021 16:54:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224817.388329; Thu, 11 Nov 2021 16:54:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlDLQ-0008RN-Eg; Thu, 11 Nov 2021 16:54:36 +0000
Received: by outflank-mailman (input) for mailman id 224817;
 Thu, 11 Nov 2021 16:54:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6S8D=P6=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mlDLO-0008RH-Ei
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 16:54:34 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 098b19a5-4310-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 17:54:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 098b19a5-4310-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636649672;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=29ZxmUp5vPwRUOe7SNxx0R4TrgGF7SF8VXfP8zsjLOQ=;
  b=f4r+sQLrNQpnbWdaFZcyqfvHbWYflXwgV1lbmiYnkB5D8BsompQ4PEBR
   PTWa4aAMhj9ZTGR+20BbaKlzjydSy3dLcoI/HkVH6YH8Ktc4bZ9oUnPr+
   HHaYTDtTVtH3+jfQMJ8GDLBry6qUr/plvvuV9kQ6B2MEDxb1sZ7RpQodj
   4=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: GHQV3e41xsNjR6AKV56bDqDRByZBtCN2CZVMG3ZNBtL2P5hrVVe0yBte2XfRThidxOtKwDfOsQ
 EngpTwtij+j/ms4IiBq9npmMDmBihWWAJpX1/zvdIUJeCdUd+Jd7xiXGmCTjAar17smv6EwzbT
 Do/soYqVjLtV3ZSToxJrgsv66bZrdRgsYWXkoiiDOZthwa/zjCvWf3NVxRqVVWNAwDq95/ogOC
 qpawllKbGYAJN47P4IO7s13JYDfb5AkTIxsfS44QrO+Lx4TF3xVBNBwdUOobx7YnR2CFIyaRs1
 M5C/aDNa2WulR+2912TxG+p/
X-SBRS: 5.1
X-MesageID: 58011978
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:RT8seqBIkLLhYRVW/2Plw5YqxClBgxIJ4kV8jS/XYbTApD4i1jACn
 GBOCGiOPa7cYzb2Lo1xPYmz/RsDusfUm4U1QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540Es7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/1Wi4ov1S0
 9Jx6LeSbS0gZIncwMQdTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTQ+9whsMlPY/zMZkWoH1IxjDFF/c2B5vERs0m4PcFjG9p35ERTZ4yY
 eIWRBY2PDDiaSRzPwZOB9UTndzvpVzgJmgwRFW9+vNsvjm7IBZK+LnyMvLFd9qSX8JXk02E4
 GXc8AzRHBYeM9COzCufxXiljOTPgCDTVZobEfuz8fsCqF+c3GsIEzUNSEC25/K+jyaWRNZ3O
 0ESvC00osAa/kGxUsP0WRH+pXeepwMdQPJZCeh84waIooLE7gDcCmUaQzppbN09qNRwVTEsz
 kWOnd7iGXpoqrL9YXyb6/GKrDCoMC09PW4GZCkUCwAC5rHLopw3jx/JZsZuFuiylNKdMSrr3
 zmAoSw6hrMSpc0GzaO2+RbAmT3Em3TSZldrvEONBDvjt14nIt7+D2C11bTFxagdHbu0bUKGg
 CUvuey05boqHcmtlDPYFY3hA4qVz/qCNTTdh3tmEJ8g6ymh9hafQGxA3N1tDBw3a5hZIFcFd
 GeW4FoMv8ELYBNGeIcuO9rpY/nG25QMAjgMuhr8StNVKqZ8ewaclM2FTR7Bhju9+KTAfExWB
 Ht6TSpOJSpFYUiE5GDvLwv47VPN7nlvrY80bcqrpylLKZLEOBaopU4taTNilNwR4qKeuxny+
 N1CLcaMwBg3eLSgOXeKr99MfQ1VcidT6XXKRyp/L7/rzu1OQjFJNhMs6el5J9wNc1p9yo8kA
 U1RqmcHkQGi1BUr2C2Ba2x5aaOHYHqMhSlTAMDYBn7xgyJLSd/2tM83LsJrFZF6pL0L5aMlF
 JEtJpTfasmjvxyaolzxm7Gm99c8HPlq7CrTVxeYjM8XI8Q9GleXo4C8JWMCNkAmV0KKiCf3m
 JX4viuzfHbJb18K4B/+ZK39wlWvk2Iane4uDULELsMKIBfn8ZRwKjy3hfgyepleJRLGzzqc9
 gCXHRZH+rWd/95rqIHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtH6tIuE7tiwa8kycHoortWklZtEHnRNgz5AbJ8OHiWm8JIs/QVlLNevAK3X
 GOJ+8VbZurVaJ+0TgZJKVN8POqZ1PwSlj3D1tgPIR33tH1t4b6KcUROJB3Q2iZTG6R4bdE+y
 uA7tc9ItwHm0kg2MsyLhzx//niXKiBSSL0us5wXDdO5igcvzV0eM5XQBjWvvcOKYtRIdEIrP
 iWVlOzJgLEFnhjOdH86FH7s2+tBhMtR5EAWnQFaf1nZyMDYgvIX3QFK9WVlRwtY+RxLzuZvN
 zU5LEZyP6iPo29licUrs7pAwO2d6Ml1InDM9mY=
IronPort-HdrOrdr: A9a23:W1uYs6mK6IUdHuXYCWyKHsaeB17pDfIs3DAbv31ZSRFFG/Fxl6
 iV8sjz8SWE7Ar5OUtQ/OxoV5PsfZqxz/JICMwqTNCftWrdyQmVxeNZjbcKqgeIc0aVygce79
 YCT0EXMqyXMbEQt6fHCWeDfOod/A==
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="58011978"
Date: Thu, 11 Nov 2021 16:54:25 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Vikram Garhwal <fnu.vikram@xilinx.com>
CC: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>, <bertrand.marquis@arm.com>, <volodymyr_babchuk@epam.com>,
	Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Juergen Gross
	<jgross@suse.com>
Subject: Re: [XEN][RFC PATCH v2 10/12] tools/libs/ctrl: Implement new xc
 interfaces for dt overlay
Message-ID: <YY1KwUC7EaJC4vJa@perard>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
 <1636441347-133850-11-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <1636441347-133850-11-git-send-email-fnu.vikram@xilinx.com>

On Mon, Nov 08, 2021 at 11:02:25PM -0800, Vikram Garhwal wrote:
> xc_dt_overlay() sends the device tree binary overlay, size of .dtbo and overlay
> operation type i.e. add or remove to xen.
> 
> Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
> ---
>  tools/include/xenctrl.h      |  5 +++++
>  tools/libs/ctrl/Makefile     |  1 +
>  tools/libs/ctrl/xc_overlay.c | 51 ++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 57 insertions(+)
>  create mode 100644 tools/libs/ctrl/xc_overlay.c
> 
> diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
> index 07b96e6..cfd7c5c 100644
> --- a/tools/include/xenctrl.h
> +++ b/tools/include/xenctrl.h
> @@ -2684,6 +2684,11 @@ int xc_livepatch_replace(xc_interface *xch, char *name, uint32_t timeout, uint32
>  int xc_domain_cacheflush(xc_interface *xch, uint32_t domid,
>                           xen_pfn_t start_pfn, xen_pfn_t nr_pfns);
>  
> +#if defined (CONFIG_OVERLAY_DTB)
> +int xc_dt_overlay(xc_interface *xch, void *overlay_fdt, int overlay_fdt_size,
> +                  uint8_t overlayop);
> +#endif
> +
>  /* Compat shims */
>  #include "xenctrl_compat.h"
>  
> diff --git a/tools/libs/ctrl/Makefile b/tools/libs/ctrl/Makefile
> index 519246b..a21a949 100644
> --- a/tools/libs/ctrl/Makefile
> +++ b/tools/libs/ctrl/Makefile
> @@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
>  
>  SRCS-y       += xc_altp2m.c
>  SRCS-y       += xc_cpupool.c
> +SRCS-$(CONFIG_OVERLAY_DTB) += xc_overlay.c

So, this patch seems to introduce the use of CONFIG_OVERLAY_DTB, is
there a reason why the new functionality can't be always builtin?

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 17:58:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 17:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224830.388351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKw-00061Z-Iy; Thu, 11 Nov 2021 17:58:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224830.388351; Thu, 11 Nov 2021 17:58:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKw-00061S-Fs; Thu, 11 Nov 2021 17:58:10 +0000
Received: by outflank-mailman (input) for mailman id 224830;
 Thu, 11 Nov 2021 17:58:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GOKj=P6=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlEKv-0005kR-6q
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 17:58:09 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ecce4348-4318-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 18:58:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ecce4348-4318-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636653487;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=wZjOooR7h3617EbhfqFJc1ylcvpSG2QwEC0bQQSIklo=;
  b=H184UounUCpDqJbBWjVnZhwg7Cvd38MeHcehF4gQ+47ZLLD6VjGUK3Sj
   D0AHlE3HdzGRMQkPClVTugIMJpx+MEmx6JNC2sezIwwQD0Ylu4WRQLQe4
   gAXAowJg32tscjROYZCPwlm0spjevpmdpl1Qrz/Hrx77E1KNedrF0DL3S
   I=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: DJMeo/F80T5kkf/alFsTsShab5w4ojag5j96fmWJRUuoVF0nOYRG6bTFv4REPTw7nzPOjDXJiG
 yo7lOH9d8DMQKSC1S2swjdAqYyGN+1cquh91CSrXsHqqPeJD/IBAy2VFMxznZXwsKeSfBee/Gx
 97L+CpZS3oPCDaoBiYteVp1W5hJ8/162HQyOW/qWGv9yBicwosirfnX+tyRtUC3z+P/rZFgpFL
 nr+BTBW6OgTjFxpaKndUUAvArOIO3uugmo9D2z/yLV0XRpwpIbKV4QvLqcQmscoExA7kzottqF
 DzZ8F8VwbrxKU67Iyw6JpB5r
X-SBRS: 5.1
X-MesageID: 57653926
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:C4ryNqKjPLpZJsZwFE+RcpIlxSXFcZb7ZxGr2PjKsXjdYENS12MEy
 jcdXz2GPKuCamqhKI92PNvk90wCvZfTnNVnGwBlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6wrZg6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Cz/Iq4
 /pQv6erTAd1b4ucmboUVydHRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpv2J0VTKyAD
 yYfQWs1cxLGXRIfAHIeVLt92/qzj0LvKiIN/Tp5ooJoujOOnWSdyoPFMsfRe9GMbdVYmACfv
 G2u11r+BhYWJdmO0w2v+3inhvLMtS7jUYdUH7q9ntZgjUeP3GUVBFsTXEGivPiiokekXpRUL
 El80jUqhbg/8gqsVNaVdw21pjuIswARX/JUEvYm80edx6zM+QGbC2MYCDlbZ7QOluU7WDgr3
 V+hhM7yCHpkt7j9YWmG6r6eoDe2OC4UBWwPfykJSU0C+daLnW0opkuRFJA5Svfz14CrX2Grq
 9yXkMQgr75Dr5Ug+LixxkvCg279gMjIEAcx2BqCCwpJ8ThFTIKiYoWp733S4vBBMJuVQzG9g
 ZQUpySNxLtQVM/QzURhVM1IRej0vKjdbFUwlHY2R8F5nwlB7UJPamy5DNtWAE5yevgJdjbyC
 KM4kVMAvcQDVJdGgEIeXm5QNyjI5fS/fTgGfqqNBjarXnSXXFbWlM2JTRTAt10BaGB2zckC1
 W6zKK5A90oyB6V91yaRTOwAy7ItzS1W7TqNHs6mkUX4gefBOyH9pVI53L2mN7FRAESs+lW9z
 jqiH5HSl0U3vBPWPkE7DrL/3XhVdCNmVPgaWuRcd/KZIxoOJY3SI6S5/F/VQKQ8x/49vr6Rp
 hmVAxYEoHKi1SyvAVjbMRhLNeKwNauTWFpmZETAy37zgCN9CWtuhY9CH6YKkU4PqLY+kKUqF
 qZdIK1twJ1nE1z6xtjUVrGlxKQKSfhhrVjm0/ONbGdtcph+aRbO/9O4LALj+DNXVni8tNcko
 q3m3QTeGMJRSwNnBcfQSfSu01Lu4iRNxLMsBxPFcotJZUHh0Il2MCit3PU5FN4BdEfYzTyA2
 gfIXRpB/bvRo5U4+cXijLyfq9v7CPN3G0dXRjGJ7bu/OSTA0HCkxItMDLSBcTzHDTum86S+f
 +RFifr7NaRfzlpNtoN9FZdtzL4/uISz9+MLkFw8ESySPVqxC75mLn2X5uV1t/VAlu1DpA+7e
 kOT4d0Ga7+HD9zoTQwKLw0/Y+XdifxNwmvO7e44KVnR7TNs+ObVSl1bOhSBhXAPLLZxN495k
 +4ttNRPtl66gxsudN2HkjpV5yKHKXlZC/crsZQTAYnKjAs3yw4dPcyAW3GuuJzfOc9RNkQKI
 yOPgPuQjrtR8UPObn4vGCWfxuFan5kP5EhHwVJqy45lQTYZaivbBCFszAk=
IronPort-HdrOrdr: A9a23:m1QOnau0xHHIRx4Mt+A+cgtu7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpGbJYVcqKRcdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyJMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="57653926"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH 3/5] xen/sort: Switch to an extern inline implementation
Date: Thu, 11 Nov 2021 17:57:38 +0000
Message-ID: <20211111175740.23480-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211111175740.23480-1-andrew.cooper3@citrix.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

There are exactly 3 callers of sort() in the hypervisor.

Both arm callers pass in NULL for the swap function.  While this might seem
like an attractive option at first, it causes generic_swap() to be used which
forced a byte-wise copy.  Provide real swap functions which the compiler can
optimise sensibly.

Furthermore, use of function pointers in tight loops like that can be very bad
for performance.  Implement sort() as extern inline, so the optimiser can
judge whether to inline things or not.

On x86, the diffstat shows how much of a better job the compiler can do when
it is able to see the cmp/swap implementations.

  $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
  add/remove: 0/5 grow/shrink: 1/1 up/down: 505/-735 (-230)
  Function                                     old     new   delta
  sort_exception_table                          31     536    +505
  u32_swap                                       9       -      -9
  generic_swap                                  34       -     -34
  cmp_ex                                        36       -     -36
  swap_ex                                       41       -     -41
  sort_exception_tables                         90      38     -52
  sort                                         563       -    -563

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/bootfdt.c |  9 +++++-
 xen/arch/arm/io.c      |  9 +++++-
 xen/include/xen/sort.h | 55 +++++++++++++++++++++++++++++++++-
 xen/lib/sort.c         | 80 ++------------------------------------------------
 4 files changed, 72 insertions(+), 81 deletions(-)

diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
index afaa0e249b71..e318ef960386 100644
--- a/xen/arch/arm/bootfdt.c
+++ b/xen/arch/arm/bootfdt.c
@@ -448,6 +448,13 @@ static int __init cmp_memory_node(const void *key, const void *elem)
     return 0;
 }
 
+static void __init swap_memory_node(void *_a, void *_b, size_t size)
+{
+    struct membank *a = _a, *b = _b;
+
+    SWAP(*a, *b);
+}
+
 /**
  * boot_fdt_info - initialize bootinfo from a DTB
  * @fdt: flattened device tree binary
@@ -472,7 +479,7 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
      * the banks sorted in ascending order. So sort them through.
      */
     sort(bootinfo.mem.bank, bootinfo.mem.nr_banks, sizeof(struct membank),
-         cmp_memory_node, NULL);
+         cmp_memory_node, swap_memory_node);
 
     early_print_info();
 
diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
index 729287e37c59..1a066f9ae502 100644
--- a/xen/arch/arm/io.c
+++ b/xen/arch/arm/io.c
@@ -80,6 +80,13 @@ static int cmp_mmio_handler(const void *key, const void *elem)
     return 0;
 }
 
+static void swap_mmio_handler(void *_a, void *_b, size_t size)
+{
+    struct mmio_handler *a = _a, *b = _b;
+
+    SWAP(*a, *b);
+}
+
 static const struct mmio_handler *find_mmio_handler(struct domain *d,
                                                     paddr_t gpa)
 {
@@ -170,7 +177,7 @@ void register_mmio_handler(struct domain *d,
 
     /* Sort mmio handlers in ascending order based on base address */
     sort(vmmio->handlers, vmmio->num_entries, sizeof(struct mmio_handler),
-         cmp_mmio_handler, NULL);
+         cmp_mmio_handler, swap_mmio_handler);
 
     write_unlock(&vmmio->lock);
 }
diff --git a/xen/include/xen/sort.h b/xen/include/xen/sort.h
index a403652948e7..01479ea44606 100644
--- a/xen/include/xen/sort.h
+++ b/xen/include/xen/sort.h
@@ -3,8 +3,61 @@
 
 #include <xen/types.h>
 
+/*
+ * sort - sort an array of elements
+ * @base: pointer to data to sort
+ * @num: number of elements
+ * @size: size of each element
+ * @cmp: pointer to comparison function
+ * @swap: pointer to swap function or NULL
+ *
+ * This function does a heapsort on the given array. You may provide a
+ * swap function optimized to your element type.
+ *
+ * Sorting time is O(n log n) both on average and worst-case. While
+ * qsort is about 20% faster on average, it suffers from exploitable
+ * O(n*n) worst-case behavior and extra memory requirements that make
+ * it less suitable for kernel use.
+ */
+#ifndef SORT_IMPLEMENTATION
+extern gnu_inline
+#endif
 void sort(void *base, size_t num, size_t size,
           int (*cmp)(const void *, const void *),
-          void (*swap)(void *, void *, size_t));
+          void (*swap)(void *, void *, size_t))
+{
+    /* pre-scale counters for performance */
+    size_t i = (num / 2) * size, n = num * size, c, r;
+
+    /* heapify */
+    while ( i > 0 )
+    {
+        for ( r = i -= size; r * 2 + size < n; r = c )
+        {
+            c = r * 2 + size;
+            if ( (c < n - size) && (cmp(base + c, base + c + size) < 0) )
+                c += size;
+            if ( cmp(base + r, base + c) >= 0 )
+                break;
+            swap(base + r, base + c, size);
+        }
+    }
+
+    /* sort */
+    for ( i = n; i > 0; )
+    {
+        i -= size;
+        swap(base, base + i, size);
+        for ( r = 0; r * 2 + size < i; r = c )
+        {
+            c = r * 2 + size;
+            if ( (c < i - size) && (cmp(base + c, base + c + size) < 0) )
+                c += size;
+            if ( cmp(base + r, base + c) >= 0 )
+                break;
+            swap(base + r, base + c, size);
+        }
+    }
+}
 
 #endif /* __XEN_SORT_H__ */
diff --git a/xen/lib/sort.c b/xen/lib/sort.c
index 35ce0d7abdec..b7e78cc0e8d2 100644
--- a/xen/lib/sort.c
+++ b/xen/lib/sort.c
@@ -4,81 +4,5 @@
  * Jan 23 2005  Matt Mackall <mpm@selenic.com>
  */
 
-#include <xen/types.h>
-
-static void u32_swap(void *a, void *b, size_t size)
-{
-    uint32_t t = *(uint32_t *)a;
-
-    *(uint32_t *)a = *(uint32_t *)b;
-    *(uint32_t *)b = t;
-}
-
-static void generic_swap(void *a, void *b, size_t size)
-{
-    char t;
-
-    do {
-        t = *(char *)a;
-        *(char *)a++ = *(char *)b;
-        *(char *)b++ = t;
-    } while ( --size > 0 );
-}
-
-/*
- * sort - sort an array of elements
- * @base: pointer to data to sort
- * @num: number of elements
- * @size: size of each element
- * @cmp: pointer to comparison function
- * @swap: pointer to swap function or NULL
- *
- * This function does a heapsort on the given array. You may provide a
- * swap function optimized to your element type.
- *
- * Sorting time is O(n log n) both on average and worst-case. While
- * qsort is about 20% faster on average, it suffers from exploitable
- * O(n*n) worst-case behavior and extra memory requirements that make
- * it less suitable for kernel use.
- */
-
-void sort(void *base, size_t num, size_t size,
-          int (*cmp)(const void *, const void *),
-          void (*swap)(void *, void *, size_t size))
-{
-    /* pre-scale counters for performance */
-    size_t i = (num / 2) * size, n = num * size, c, r;
-
-    if ( !swap )
-        swap = (size == 4 ? u32_swap : generic_swap);
-
-    /* heapify */
-    while ( i > 0 )
-    {
-        for ( r = i -= size; r * 2 + size < n; r = c )
-        {
-            c = r * 2 + size;
-            if ( (c < n - size) && (cmp(base + c, base + c + size) < 0) )
-                c += size;
-            if ( cmp(base + r, base + c) >= 0 )
-                break;
-            swap(base + r, base + c, size);
-        }
-    }
-
-    /* sort */
-    for ( i = n; i > 0; )
-    {
-        i -= size;
-        swap(base, base + i, size);
-        for ( r = 0; r * 2 + size < i; r = c )
-        {
-            c = r * 2 + size;
-            if ( (c < i - size) && (cmp(base + c, base + c + size) < 0) )
-                c += size;
-            if ( cmp(base + r, base + c) >= 0 )
-                break;
-            swap(base + r, base + c, size);
-        }
-    }
-}
+#define SORT_IMPLEMENTATION
+#include <xen/sort.h>
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 17:58:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 17:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224832.388368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKy-0006MB-DF; Thu, 11 Nov 2021 17:58:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224832.388368; Thu, 11 Nov 2021 17:58:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKy-0006Ld-2b; Thu, 11 Nov 2021 17:58:12 +0000
Received: by outflank-mailman (input) for mailman id 224832;
 Thu, 11 Nov 2021 17:58:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GOKj=P6=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlEKw-0005kR-HK
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 17:58:10 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed5ad4e9-4318-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 18:58:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed5ad4e9-4318-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636653489;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=T/0v3Sf50cFNF0yODlWT/nVv/6FJ5Q1x8/OSVwgO6GU=;
  b=N3o6QLgR2TsS1YQBhgrnhxYf/Ew5hFqDWaK5+crlXtn7fjufJaMehnw/
   rdSVa3sc+NiyP/WsXzdk5NayMm//V8u1qFnfvJYejxZ9RU6WO4e/QzAY6
   5q09X0jcNVHloc7Fw1mHpntY4wdev4vcGTdHpyi+xZbJpQxMrGasbgDzt
   Q=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: ggK1CUUX5UhS1Uoe+hmHccflEXRTp8qP6qoQASuwhQ7Kcag+nXHrVcWvMInyZoRiAXSxQBOyMh
 icY6ZrvnEKPlyCsGQ+A4wgyEPMpDC9rAqmUSgoSTRhhn7XAnv4MJjhib8nO0raHGdWLTHR1FbR
 NvUY5I6eAMidEg0hwr4/U9PRNRjTZHx3SShdjvY39ffKxq9WEkExOY8u9libeskDBs+eukUBvD
 dmsYDXIKUp5Z7VFEomG9MJnE+BhOylAaTtoUVAZ0S1/bi8qaBaA0uyPdRx3Unc64P8h/VFPUnb
 rFRNN9KL1oeVyshHymzU1/th
X-SBRS: 5.1
X-MesageID: 57155539
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:2Zbtlagvs3HzPLDzIC5skhXTX161rRcKZh0ujC45NGQN5FlHY01je
 htvDG2GMq6JN2T2Lt1yPtu0pk5X68fUzNc2GlZoqy02FHsb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cx2IDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1QtL2WWy4WNZHHnf8/CDhcEyteLPRZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNauBP
 pdENGE+BPjGSxJ/CnNJD7Q0pcH233LzKjJgpnOJmKVitgA/yyQuieOwYbI5YOeiWsF9jkue4
 GXc8AzRIDsXKdiewjqt6W+3i6nEmiaTcJIfEvi0++BnhHWXx3cPE1sGWF2ju/67h0WiHdVFJ
 CQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4DuwbzhOk9aHo6AOCJDMlSj5LSM1/q5pjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swpn2AAcmV8HlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybJtaKGC5P
 RCM5mu9AaO/2lPzPMebhKrrW6wXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDlJI5fsLXkJIOSJRoxZybXF+
 G+TQEhdxAatjHHLM1zSOHtidKnuTdB0qndiZX4gOlOh2n4CZ4ez7fhAK8trLOd/rOEzn+RpS
 /QletmbBqgdQDrw5DlAP4L2q5ZvdUr3iFvWbTalejU2Y7VpWxfNpo3/ZgLq+SRXVni3uMIyr
 qeOzATeRZZfFQ1uANyPMKCkzk+rvGhbk+V3BhOaLt5WcUTq0Y5rNy2u0aNnf5BScU3On2LI2
 RyXDBEUofj2j7U0qNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVtH79h8HrJswf5s7tfjveYHnAFtHXGNZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQy2vb4vkCKUnn4DN6oeicWkJIMhjQ0CFQIdOZ6m/+L
 TvNbCLO1zGCtw==
IronPort-HdrOrdr: A9a23:JEO63KotJcgm2uXwdh/HDFIaV5oTeYIsimQD101hICG8cqSj+f
 xG+85rrCMc6QxhPk3I9urhBEDtex/hHNtOkOws1NSZLW7bUQmTXeJfBOLZqlWKcUDDH6xmpM
 NdmsBFeaXN5DNB7PoSjjPWLz9Z+qjkzJyV
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="57155539"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 4/5] xen/wait: Remove indirect jump
Date: Thu, 11 Nov 2021 17:57:39 +0000
Message-ID: <20211111175740.23480-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211111175740.23480-1-andrew.cooper3@citrix.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

There is no need for this to be an indirect jump at all.  Execution always
returns to a specific location, so use a direct jump instead.

Use a named label for the jump.  As both 1 and 2 have disappeared as labels,
rename 3 to skip to better describe its purpose.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/common/wait.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/xen/common/wait.c b/xen/common/wait.c
index 24716e76768b..9276d76464fb 100644
--- a/xen/common/wait.c
+++ b/xen/common/wait.c
@@ -144,18 +144,16 @@ static void __prepare_to_wait(struct waitqueue_vcpu *wqv)
         "push %%r8;  push %%r9;  push %%r10; push %%r11;"
         "push %%r12; push %%r13; push %%r14; push %%r15;"
 
-        "call 1f;"
-        "1: addq $2f-1b,(%%rsp);"
         "sub %%esp,%%ecx;"
         "cmp %3,%%ecx;"
-        "ja 3f;"
+        "ja .L_skip;"
         "mov %%rsp,%%rsi;"
 
         /* check_wakeup_from_wait() longjmp()'s to this point. */
-        "2: rep movsb;"
+        ".L_wq_resume: rep movsb;"
         "mov %%rsp,%%rsi;"
-        "3: pop %%rax;"
 
+        ".L_skip:"
         "pop %%r15; pop %%r14; pop %%r13; pop %%r12;"
         "pop %%r11; pop %%r10; pop %%r9;  pop %%r8;"
         "pop %%rbp; pop %%rdx; pop %%rbx; pop %%rax"
@@ -204,15 +202,14 @@ void check_wakeup_from_wait(void)
     }
 
     /*
-     * Hand-rolled longjmp().  Returns to the pointer on the top of
-     * wqv->stack, and lands on a `rep movs` instruction.  All other GPRs are
-     * restored from the stack, so are available for use here.
+     * Hand-rolled longjmp().  Returns to __prepare_to_wait(), and lands on a
+     * `rep movs` instruction.  All other GPRs are restored from the stack, so
+     * are available for use here.
      */
     asm volatile (
-        "mov %1,%%"__OP"sp; INDIRECT_JMP %[ip]"
+        "mov %1,%%"__OP"sp; jmp .L_wq_resume;"
         : : "S" (wqv->stack), "D" (wqv->esp),
-          "c" ((char *)get_cpu_info() - (char *)wqv->esp),
-          [ip] "r" (*(unsigned long *)wqv->stack)
+          "c" ((char *)get_cpu_info() - (char *)wqv->esp)
         : "memory" );
     unreachable();
 }
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 17:58:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 17:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224829.388339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKr-0005ke-7d; Thu, 11 Nov 2021 17:58:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224829.388339; Thu, 11 Nov 2021 17:58:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKr-0005kX-4e; Thu, 11 Nov 2021 17:58:05 +0000
Received: by outflank-mailman (input) for mailman id 224829;
 Thu, 11 Nov 2021 17:58:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GOKj=P6=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlEKp-0005kR-5A
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 17:58:03 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e83478eb-4318-11ec-9787-a32c541c8605;
 Thu, 11 Nov 2021 18:58:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e83478eb-4318-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636653481;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=CXeFV8Xqmdo3yz2//NOSZu7RJ4WSbd7zRTgIylaOvOw=;
  b=LuMpIMBnDZfdtGN4urH92ShVuE5jKi4uBdIkQPRr/rqxnDT/rTPmNXv+
   grhxNFTU1vjdai248yix1jksNE4xj5VbbBcJwIvPzDYgMRJIYuCSC8GA/
   17JOOcDNqM2HfriTzY7i2AMfWaUq3YQgVBdHTTBk3gglNL/zBzA2Zv+vq
   I=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: codMHIFZaRjxz7BqHayLa6IhmuTXM70vyzcqWvu+3nat2xxYf616NZ2HzcV1RQ/mxvnRjG1euK
 d4opZAV13N9LFdUWQjddNjSBmMCaXCqelaZTdHBMaws62FWMX66lyCpRIrxUjCjbaIyiq8tjlL
 agoUmbu1zMCAkNtjuAnTvSq1GNpKeIKDNswgIopjGfsbEKLGXxvUsWlhJ8vMIUkS0br7NnN/FH
 tmMT+hOqSD+nB/558Yd5WZxNwM7yYMzabhMRg5tIe0tQgm9uKWBS3Qi+BafTAMt1XdZQldgwPZ
 XV5G2EKGHlTJHi7sKIowXa2I
X-SBRS: 5.1
X-MesageID: 57653922
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ot6mJa/UsPR6BQ9CkMnVDrUDVHmTJUtcMsCJ2f8bNWPcYEJGY0x3x
 2tNWT/VOqzbZWTzfN0gYY3noRhSv5TVy4drS1Ro+yw8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdg29Yx6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhfx
 +tQrKG8FD0JHafql/wcYgV0FCRHaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp0RQ6uFN
 pBDAdZpRETtSRB0PQY5Mc4BhM6W3lLdch9ipV3A8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru3U70HxUbP9y30iee/zSngeqntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLpix
 1c8o3R06/JorQryE4e7D0bQTGO4UgA0ddVuDvQH5Fy36onexQmBB1kYYjlEUYlz3CMpfgAC2
 liMltLvIDVgtryJVH6QnoupQSOO1Ts9djFbO3JdJecRy5y6+dxo0EqTJjp2OPft1oWdJN3m/
 9ydQMHSbZ03hNVD6ai09Euvb9mE9smQFV5dCuk6swuYAuJFiGyNO9PABbvzt68owGOlor+p5
 Slsdy+2trBmMH11vHbRKNjh5o2B6fefKyH7ilVyBZQn/DnF0yf9Jt4NvmAhdBo2bZlsldrVj
 Kn74FI5CHh7ZivCUEOKS9jpV5RCIVbISbwJqcw4nvIRO8MsJWdrDQllZFKK3nCFraTfufpXB
 HtvSu71VSxyIf0+lFKeHr5BuZd2lnFW7T6CHvjTkkX4uYdykVbIEN8tKkWVVOkl4cus+UONm
 zqpH5DRkEs3vSyXSnS/zLP/2nhWdyVmXs6v9JQMHgNBSyI/cFwc5zbq6etJU+RYc259zI8kJ
 1mxBR1VzkTRn3rCJVnYY3xvcuq3D51+sWg6LWonOlPxgyovZoOm7aE+cZorfOZ4qLw/nKAsF
 /RVKd+dBvlvSyjc/2hPZ5fKs4E/Jg+gghiDPnT5bWFnLYJgXQHA5vTtYhDrqHsVFiOyuMZn+
 ++g2wrXTIAtXQNnCMqKOvujw0no5SoWmf5oXluOKd5WIR2+/I9vIi33r/k2P8BTdkmTmmrEj
 16bWE5Kq/PMrok59MjyqZqF94r5QfFjGkd6HnXA6erkPyft4Wf+k5RLV/yFfG6BWTqsqrmif
 +hc09r1LOYDwARRq4N5HrtmkfA+6t/oq+MIxwhoBiyWPVGiC7cmKXiax8hf8KZKw+YB6wexX
 0uO/PhcOKmIZ5y5QAJAelJ9Y7TRz+wQlxnT8e8xcRfz6yJA9baaVVlfYkuXgytHIbopaI4oz
 I/NYiLNB9BTXvbyDuu7sw==
IronPort-HdrOrdr: A9a23:YmBkxq9Bxiv3lbj1Ue9uk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re5cjztCWE7gr5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtBD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="57653922"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 5/5] x86/ioapic: Drop function pointers from __ioapic_{read,write}_entry()
Date: Thu, 11 Nov 2021 17:57:40 +0000
Message-ID: <20211111175740.23480-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211111175740.23480-1-andrew.cooper3@citrix.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Function pointers are expensive, and the raw parameter is a constant from all
callers, meaning that it predicts very well with local branch history.

Furthermore, the knock-on effects are quite impressive.

  $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
  add/remove: 0/4 grow/shrink: 3/9 up/down: 459/-823 (-364)
  Function                                     old     new   delta
  __ioapic_write_entry                          73     286    +213
  __ioapic_read_entry                           75     276    +201
  save_IO_APIC_setup                           182     227     +45
  eoi_IO_APIC_irq                              241     229     -12
  disable_IO_APIC                              296     280     -16
  mask_IO_APIC_setup                           272     240     -32
  __io_apic_write                               46       -     -46
  __io_apic_read                                46       -     -46
  io_apic_set_pci_routing                      985     930     -55
  __io_apic_eoi.part                           223     161     -62
  io_apic_write                                 69       -     -69
  io_apic_read                                  69       -     -69
  restore_IO_APIC_setup                        325     253     -72
  ioapic_guest_write                          1413    1333     -80
  clear_IO_APIC_pin                            447     343    -104
  setup_IO_APIC                               5148    4988    -160

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/io_apic.c | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index c3ad9efac88d..1c49a0fe1478 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -235,11 +235,19 @@ union entry_union {
 struct IO_APIC_route_entry __ioapic_read_entry(
     unsigned int apic, unsigned int pin, bool raw)
 {
-    unsigned int (*read)(unsigned int, unsigned int)
-        = raw ? __io_apic_read : io_apic_read;
     union entry_union eu;
-    eu.w1 = (*read)(apic, 0x10 + 2 * pin);
-    eu.w2 = (*read)(apic, 0x11 + 2 * pin);
+
+    if ( raw )
+    {
+        eu.w1 = __io_apic_read(apic, 0x10 + 2 * pin);
+        eu.w2 = __io_apic_read(apic, 0x11 + 2 * pin);
+    }
+    else
+    {
+        eu.w1 = io_apic_read(apic, 0x10 + 2 * pin);
+        eu.w2 = io_apic_read(apic, 0x11 + 2 * pin);
+    }
+
     return eu.entry;
 }
 
@@ -259,12 +267,18 @@ void __ioapic_write_entry(
     unsigned int apic, unsigned int pin, bool raw,
     struct IO_APIC_route_entry e)
 {
-    void (*write)(unsigned int, unsigned int, unsigned int)
-        = raw ? __io_apic_write : io_apic_write;
     union entry_union eu = { .entry = e };
 
-    (*write)(apic, 0x11 + 2*pin, eu.w2);
-    (*write)(apic, 0x10 + 2*pin, eu.w1);
+    if ( raw )
+    {
+        __io_apic_write(apic, 0x11 + 2 * pin, eu.w2);
+        __io_apic_write(apic, 0x10 + 2 * pin, eu.w1);
+    }
+    else
+    {
+        io_apic_write(apic, 0x11 + 2 * pin, eu.w2);
+        io_apic_write(apic, 0x10 + 2 * pin, eu.w1);
+    }
 }
 
 static void ioapic_write_entry(
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 17:58:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 17:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224833.388374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKy-0006SI-NC; Thu, 11 Nov 2021 17:58:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224833.388374; Thu, 11 Nov 2021 17:58:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKy-0006Qp-Fx; Thu, 11 Nov 2021 17:58:12 +0000
Received: by outflank-mailman (input) for mailman id 224833;
 Thu, 11 Nov 2021 17:58:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GOKj=P6=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlEKw-00061G-Ud
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 17:58:11 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec3cd976-4318-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 18:58:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec3cd976-4318-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636653488;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=BOyeLIFh4rsbQLKjP5QzMq6nEVwvgaszHY0AXnaE+IU=;
  b=N2g/3SaZvv5DjmeVy8NxFzkPednHXpIHNlUHSvc3ttFqwcEr9gdI/arj
   cXEWWl0dV+VuY/rJKaxu9mmtvD1pMQnpiZ6Hbm3ETdkjkyavpr0qapvmX
   vg7zvQkw+SsEbPRPW3OI8R2h541bHIpQzrImwcXvG7yAzt3UV/eARkZGv
   0=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: w13Pw8TY4dJoxaddBmkr3J6m6XtotdrUvv/s2bNwiIEv/5ZM6JVmDVeAINbdwtkAn6OysjK3Mi
 4R366D0XszuQjldBMD8IyPgHjcbwd/Lgtr68JkQTOxKSF9BPJnLl9uxgm49YrFeIma9PqIhCys
 cKWJp9gvkgjgaE6mrUQaKpk1BAfmIK85T3Uo3eTSVYfSUEATe5I6Veu7qsagbbcCcg7WvjN7cw
 AVEqucuIrdb+Qz34wqFKP7Vblm+lHCydQUs6ffXj/DueFa62Wb1EkvGZ0rnC/TSiqX6/eVTzhm
 wLZ2Vqg5VRXMg/2n9EUKO8aa
X-SBRS: 5.1
X-MesageID: 57155535
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Q81pzq0ErvkVCPfP4/bD5XB2kn2cJEfYwER7XKvMYLTBsI5bpzIHz
 jYbXT3QO6zfamGhLd12PYu28ksPv5PQnIQxTwBlpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wrdh2+aEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhm/N9+
 epdt6aKSho2MLb8o71eShJbOnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Er8IvNsT0eqgYvWlt12rxBvc6W5HTBa7N4Le02R9t2ZkTQKuFO
 qL1bxJ0UCjZbEFDG247VogOxfikql2ucGBx/Qf9Sa0fvDGIkV0ZPKLWGNjIft2HQ+1Fk0Deo
 XjJl0zHBRUdOM2a2CCy2Humje/Sngv2QIsXUra/85ZCilCJ2nYaDhFQUFKhuOS4kWa3QdcZI
 EsRkgIxqYAi+UrtScPyNzWorXjBshMCVt54F+wh9BrL2qfS+xyeBGUPUnhGctNOnO0cSCEu1
 1SJt8j0HjEpu7qQIVqG7audpz62PSkTLEcBaDUCQA9D5MPsyLzflTqWEIwlSvTsyISoR3egm
 FhmsRTSmZ0XrsI66LW5x2rEni2ivajyF00s7Qb+CzfNAhxCWKapYImh6F7+5PlGLZqEQlTpg
 EXoi/Ry/8hVU8jTyXXlrPElWejwuq3baGG0bUtHRsF5r1yQF2ifkZe8Cd2UDGNgKY46dDDge
 yc/UisBtcYIbBNGgUKaCr9d6vjGL4C8SrwJtdiON7Kih6SdkiferUmCgmbKjwjQfLAEy/1XB
 HtiWZ/E4YwmIapm1iGqYOwWzKUmwCszrUuKG8ulkkr2jurDOyHKIVvgDLdoRrlohE9jiF+Fm
 +uzyuPQk0kPOAEASnW/HXEvwaAiciFgWMGeRz1/fe+fOAt2cFzN+NeKqY7Nj7dNxvwP/s+Rp
 ynVchYBlDLX2C2WQS3XOysLQO6+Av5CQYcTYHVE0aCAgCN4P+5CLc43KvMKQFXQ3LA5kKMvE
 aBaI57o7zYmYm2vxgnxpKLV9ORKHClHTyrXV8Z8SDRgLZNmWSLT/droIlnm+CUUV3Llvsoiu
 bywkAjcRMNbFQhlCc/XbtOpzk+w4idByL4jAROQL4kBYljo/ahrNzf10q09LfYTJEiR3TCdz
 QuXX0sV/LGfv48v/dDVrqmYtIP1QfBmF09XEjCDv7a7PCXX5ES5xopEXLradDzRTjqsqq6je
 f9U37f3N/hexARGtI91ErBKy6Mi5oSw++8Gn1o8RHiSNgalELJtJHWCzPJjjKwVy+8LoxayV
 2KO5sJeZeeDNvT6HQNDPwEidOmCi60Zw2GA8fQvLUzmzyZr577bA15KNhyBhSEBfrt4NIQpn
 bUotMIMslHtjxMrNpCNjzxO9nTKJXsFCv11upYfCY7tqwwq1lAdPsCMVn6ouMmCO4dWL00nA
 j6In66T1b1Ty33Lf2c3CXWQj/FWgo4DuUwSwVIPT7hTdgEpWhPjMMVtzAkK
IronPort-HdrOrdr: A9a23:85efoqpPWoWe3BKEdNhY+XcaV5oneYIsimQD101hICG8cqSj+f
 xG+85rsiMc6QxhPE3I9urhBEDtex/hHP1OkOws1NWZLWrbUQKTRekIh+bfKlXbakvDH4VmtJ
 uIHZIQNDSJNykZsfrH
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="57155535"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH 0/5] xen: various function pointer cleanups
Date: Thu, 11 Nov 2021 17:57:35 +0000
Message-ID: <20211111175740.23480-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Passing CI runs:
  https://cirrus-ci.com/build/6095362789212160
  https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/407123417

Andrew Cooper (5):
  xen/domain: Remove function pointers from domain pause helpers
  xen/domain: Improve pirq handling
  xen/sort: Switch to an extern inline implementation
  xen/wait: Remove indirect jump
  x86/ioapic: Drop function pointers from __ioapic_{read,write}_entry()

 xen/arch/arm/bootfdt.c   |  9 ++++-
 xen/arch/arm/io.c        |  9 ++++-
 xen/arch/x86/io_apic.c   | 30 +++++++++++-----
 xen/common/domain.c      | 93 ++++++++++++++++++++++++++++--------------------
 xen/common/wait.c        | 19 +++++-----
 xen/include/xen/domain.h |  1 -
 xen/include/xen/sched.h  | 15 +++-----
 xen/include/xen/sort.h   | 55 +++++++++++++++++++++++++++-
 xen/lib/sort.c           | 80 ++---------------------------------------
 9 files changed, 162 insertions(+), 149 deletions(-)

-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 17:58:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 17:58:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224831.388361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKx-0006IT-Rg; Thu, 11 Nov 2021 17:58:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224831.388361; Thu, 11 Nov 2021 17:58:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEKx-0006IK-ON; Thu, 11 Nov 2021 17:58:11 +0000
Received: by outflank-mailman (input) for mailman id 224831;
 Thu, 11 Nov 2021 17:58:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GOKj=P6=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlEKw-00061G-5V
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 17:58:10 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec2a8953-4318-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 18:58:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec2a8953-4318-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636653488;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Q5M5rcMoU8akU3ihfSLxmIL46Dy+ECH9/kCBIHplY3E=;
  b=OytE1qHlpiMydDCtFeFan2b8VzRr61p/mBCjNT0biynru1hjh1zvxM9R
   K8XCLa5rugzds5qxpWkje4D40jwUzQENPBaCx7ANYy8p2PE2lZJ0DsA3t
   +UebRuun1rUBRrxR8Ug9bcivW2mfj2r04wZLz6Kt3MzYx254ORxLuP2nd
   c=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: /5QAJWGpTY9N2d1Jfoqx3UvI3Cet8f1whoEibQWWfYDm67MA1UMg64e+4MkGlCqrn6vWd/9pam
 ldTQ20c2VokFHPSaQl3Bmz77sHhsCuT9WeaxDQM3xEjppJ3ypymo5I7SQA6H9oU94SA0p0saDF
 zYoIcU8Fbq0/XLsmzupyIsJLbhQqOkDitY9UOdq5DHRQbmPyB5GJRfOZ5U8EbJktjrDGLNmJ8a
 +7WtKaAvVmIY0bc6H2/tAzQ/niJ+aFsh1hZ6SHf0aw19KE8YFVnXBdgxfZlgACKoyI1NOtg/gi
 SCyrsaeT3AUiP78TGfeJ/gW6
X-SBRS: 5.1
X-MesageID: 59593529
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:RqOhU6ymMp+2Qn49mhB6t+eUwSrEfRIJ4+MujC+fZmUNrF6WrkVVz
 2IaW2HSM/yOamSnfNt1Yduz9EwFv5PXx4NjTgdt+yAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrdg2tcAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt8Iqm
 N5Lk5aRdSYsLpPtoLw9VhB4HQgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY25ETTK2DP
 ZtxhTxHSRDyZRZdMF0tNNEUsuS5r2PgegNHpwfAzUYwyzeKl1EguFT3C/LXZ9iLSMN9jkue4
 GXc8AzRPBYeM9COzCufxViljOTPgCDTVZobEfuz8fsCqFee3HAJARsaE16yu+Cki1WWUshab
 UcT/0IGsqwa5EGtCN7nUHWQsHOC+xIRRddUO+k78x2WjLrZ5R6DAWoJRSIHb8Yp3OcUbzE30
 l6Cn/vyGCdi9raSTBq17ayIpDm/PSwUK24qZiIeSwYBpd75r+kOYgnnF4g5VvTv15usRG+2k
 2viQDUCa6s7n5Vb3KOd93H7oje8mLnxFi4w7yXZdzfwhu9mX7KNa4ut4FndyP9PKoeFU1WM1
 EQ5d9iiAPMmVs/UynHUKAkZNPTwvqvebmWA6bJ6N8B5r2zFxpK1QWxHDNiSzm9NO91MRzLma
 VS7Veh5tM4KZyvCgUOajuuM5yUWIUrISYuNuhP8NIMmjn1NmOmvpXAGiam4hTCFraTUuftjU
 ap3iO71ZZrgNYxpzSCtW8AW2qIxyyY1yAv7HM6gkUn5gOXOOSHKFt/p1WdiiMhgvctoRy2Po
 75i2zaikU0DAIUSnAGLmWLsEbz6BSdiXs2nwyCmXuWCPhBnCAkc5wz5mtscl3het/0NzI/gp
 yjlMmcBkQaXrSCXeG2iNyE4AJuyDMkXkJ7OFXF1Vbpe8yN4OtjHAWZ2X8ZfQITLA8Q/l6MpF
 KdcJJ3bahmNIxyekwkggVDGhNQKXHyWacimZEJJuRAzIMxtQRLn4Njhcle9/SUCFHPv58A/v
 6ehxkXQRp9aH1ZuC8PfafSOyVKtvCdCxLIuDhWQetQDKl/x9IVKKjDqiqNlKc87NhielCCR0
 BybAElEqLCV8ZM16tTAmYuNs5ytT7llBkNfEmSCteS2OCDW83CN24hFVOrULznRWHmtoPepZ
 PlPzuG6O/oCxQ4Yv415Grdt7KQ/+9qw+OMKklU6RC3GNg35BKlhL3+K2dh0mpdMnrIJ6xGrX
 k+v+8VBPenbMs3SD1NMdhEuaf6O1K9Il2CKv+g1Okjz+AR+4KGDDRdJJxCJhSFQcOl1PYciz
 btzscIa8VXi2B8jM9LAhSFI7WWcaHcHVvx/5J0dBYbqjCsty01DPsOAWnOnvsnXZoUeKFQuL
 x+VmLHG1uZVyUf1enYuEWTAgLhGjpMUtREWlFIPKjxlQDYeaiPbCPGJzQkKcw==
IronPort-HdrOrdr: A9a23:UZfBy6tgzqn1yTZt2rYmbeu67skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpGbJYVcqKRcdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyJMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="59593529"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH 2/5] xen/domain: Improve pirq handling
Date: Thu, 11 Nov 2021 17:57:37 +0000
Message-ID: <20211111175740.23480-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211111175740.23480-1-andrew.cooper3@citrix.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

free_pirq_struct() has no external users, so shouldn't be exposed.  Making it
static necessitates moving the function as domain_destroy() uses it.

Rework pirq_get_info() to have easier-to-follow logic.  The one functional
change is to the insertion failure path; we should not be using a full
call_rcu() chain to free an otherwise local structure we failed to insert into
the radix tree to begin with.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/common/domain.c      | 62 ++++++++++++++++++++++++++----------------------
 xen/include/xen/domain.h |  1 -
 2 files changed, 33 insertions(+), 30 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 562872cdf87a..a53dd114d5ba 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -365,6 +365,39 @@ static int __init parse_extra_guest_irqs(const char *s)
 }
 custom_param("extra_guest_irqs", parse_extra_guest_irqs);
 
+static void _free_pirq_struct(struct rcu_head *head)
+{
+    xfree(container_of(head, struct pirq, rcu_head));
+}
+
+static void free_pirq_struct(void *ptr)
+{
+    struct pirq *pirq = ptr;
+
+    call_rcu(&pirq->rcu_head, _free_pirq_struct);
+}
+
+struct pirq *pirq_get_info(struct domain *d, int pirq)
+{
+    struct pirq *info = pirq_info(d, pirq);
+
+    if ( likely(info) )
+        return info;
+
+    info = alloc_pirq_struct(d);
+    if ( unlikely(!info) )
+        return NULL;
+
+    info->pirq = pirq;
+    if ( likely(radix_tree_insert(&d->pirq_tree, pirq, info) == 0) )
+        return info; /* Success. */
+
+    /* Don't use call_rcu() to free a struct we failed to insert. */
+    _free_pirq_struct(&info->rcu_head);
+
+    return NULL;
+}
+
 /*
  * Release resources held by a domain.  There may or may not be live
  * references to the domain, and it may or may not be fully constructed.
@@ -1789,35 +1822,6 @@ long do_vm_assist(unsigned int cmd, unsigned int type)
 }
 #endif
 
-struct pirq *pirq_get_info(struct domain *d, int pirq)
-{
-    struct pirq *info = pirq_info(d, pirq);
-
-    if ( !info && (info = alloc_pirq_struct(d)) != NULL )
-    {
-        info->pirq = pirq;
-        if ( radix_tree_insert(&d->pirq_tree, pirq, info) )
-        {
-            free_pirq_struct(info);
-            info = NULL;
-        }
-    }
-
-    return info;
-}
-
-static void _free_pirq_struct(struct rcu_head *head)
-{
-    xfree(container_of(head, struct pirq, rcu_head));
-}
-
-void free_pirq_struct(void *ptr)
-{
-    struct pirq *pirq = ptr;
-
-    call_rcu(&pirq->rcu_head, _free_pirq_struct);
-}
-
 struct migrate_info {
     long (*func)(void *data);
     void *data;
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 160c8dbdab33..b4d202fda9fd 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -44,7 +44,6 @@ void free_vcpu_struct(struct vcpu *v);
 #ifndef alloc_pirq_struct
 struct pirq *alloc_pirq_struct(struct domain *);
 #endif
-void free_pirq_struct(void *);
 
 /*
  * Initialise/destroy arch-specific details of a VCPU.
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 17:58:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 17:58:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224834.388394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEL0-00073h-CY; Thu, 11 Nov 2021 17:58:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224834.388394; Thu, 11 Nov 2021 17:58:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEL0-00072m-5q; Thu, 11 Nov 2021 17:58:14 +0000
Received: by outflank-mailman (input) for mailman id 224834;
 Thu, 11 Nov 2021 17:58:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GOKj=P6=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlEKx-00061G-Ut
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 17:58:12 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec20702c-4318-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 18:58:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec20702c-4318-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636653488;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=UseM21AlpwIdIYpcz0wWiPK9lJhAurz+UGmlCCgsSLI=;
  b=CiAIqznbOa0vgEDcQkNmkoDvyWKtpt7VCklZbsRTfzpan02CwbqrHgJP
   iQL+1b7hf4wSOh/HV5nqxM+vK3oJmoAeCPUQDzwoMTQfcygTS2/bLkuA1
   TiPS262EuSu0ppAP1dvJHSFGBfkTWAgxpaI1i6+MfXL4g1Saf969KbdOc
   w=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: O5cljdHxD0EbVogHANza/oxZjDbxM4fy7LfQCYIAaijg10mYW5GmwoYevNWdMP4Lb5NlAmTh5v
 +BoL8Vl0CGrmcXuEx2/KbJXMYStmkkklS8FsWP/ytfi04rOl/o1wSpV+Ome5ihoG78RsMTtwsK
 nn8EOceEvF0+v7aS+noc+r/WQkh32KcMqgDMV6oaAPhTiW7KKCqB78kMDfkxMeea9JOMIDInh9
 zSGgczuzv+N1x1MdaAGSEprP6Kq/AEKcnGKBEDvQorhbn7fcqcmI3Yszq/Lb00nON0VfPm9KeW
 N5bkThVJcw8uNxMzNC84hyPT
X-SBRS: 5.1
X-MesageID: 57591434
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:jD3AhaNdOhXLNBfvrR0GkMFynXyQoLVcMsEvi/4bfWQNrUoghTdRx
 mUeWWGOMvuJMGKhfY8lb462oR4PvsWBzNI2HAto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Es6w7dRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozuSpI5Jz
 t5IjsO9FwJ3LpLFsbtDWQYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWht15kSRqq2i
 8wxOB1vTCieekF1HFIyOdEuv/+KoXTwfGgNwL6SjfVuuDWCpOBr65DvLd7Ud9qiVchT2EGCq
 QruwWP9BR0LMc2F/hCM+Hmsm+znkDvyXcQZE7jQ3vRnmkGJz2ofThgfT0KmoOKRg1S7HdlYL
 iQ85S4GvaU0skuxQbHVTxC+5XKJoBMYc95RCPEhrhGAzLLO5ASUDXRCSSROAPQEnsIrQT0h1
 neSgsjkQzdotdW9UmmB/72ZqTezPyk9LmIYYyIACwwf7LHeTJob10yVCIw5Sejs04OzSWqYL
 y22QDYWia4o0/YN3KCAol2Zhmy8mZHgEVA/+VCCNo661T9RaImgbo2uzFHU6/dcMYqUJmW8U
 Gg4d9u2t75XU8zU/MCZaKBURezyua7ZWNHJqQc3R8FJyti7x5K0kWm8ChlaLVwhDMsLcCSBj
 KT76VIIv8870JdHgMZKj2ON5yYCkfeI+TfNDKm8gj9yjn5ZLV7vEMZGPx744owVuBJw+ZzTw
 L/CGSpWMV4UCL580B29TPoH3Lkgy0gWnD2IG82lnkv3jOXBOxZ5rIvp1nPXP4jVC4ve8G3oH
 yt3bZPWm32zrsWiCsUozWLjBQ9TdiVqbXwHg8dWavSCMmJb9JIJUJfsLUcaU9U9xcx9z76Ql
 lnkAxMw4Aev1BXvdFTRAlg+OeyHYHqKhS9iVcDaFQ3zgCZLjEfGxPp3SqbbipF7rrE+lqAtE
 KFeEyhCa9wWIgn6F/0mRcGVhORfmN6D3Gpi5gKpP2oyeYBOXQvM9oO2dwfj7nBWXCG2qdE/s
 /ur0QaCGcgPQAFrDcD3bvOzzgzu4ShBybwqB0aYcMNOfEjM8ZRxL3CjhPEAPMxRew7IwSGX1
 ljKDE5A9/XNuYI87PLAmbuA89WyC+J7E0cDRzvb4L+6ODP05G2mxYMcAu+EcSqEDDH/+bm4Z
 PUTxPb5aaVVkFFPuot6MrBq0aNhuIe/++4EllxpRSyZYU6qB7VsJmi98fNO7qAdlKVEvQaWW
 16U/oUIM7u+J864QkUaIxAob7rf2KhMyCXS9/k8PG7z+DRzoOicSUxXMhSB1H5dIb9yPN93y
 OstopdLuQm2ix5sOdealCFEsW+LKyVYAakgs5gbBq7tixYqlQ4eMcCNVHeu7cHdcchIP2krP
 iSQ1fjLiLlrz0bfd2Y+SCrW1u1HiJVS4B1HwTfu/bhSdgYpUhPv4CBszA==
IronPort-HdrOrdr: A9a23:aaT6HqA0WIiTD+blHemU55DYdb4zR+YMi2TC1yhKJyC9Ffbo7v
 xG/c5rsyMc5wxwZJhNo7y90ey7MBbhHP1OkO4s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpN
 9dmsNFaeEYY2IUsS+D2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,226,1631592000"; 
   d="scan'208";a="57591434"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH 1/5] xen/domain: Remove function pointers from domain pause helpers
Date: Thu, 11 Nov 2021 17:57:36 +0000
Message-ID: <20211111175740.23480-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211111175740.23480-1-andrew.cooper3@citrix.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Retpolines are expensive, and all these do are select between the sync and
nosync helpers.  Pass a boolean instead, and use direct calls everywhere.

Pause/unpause operations on behalf of dom0 are not fastpaths, so avoid
exposing the __domain_pause_by_systemcontroller() internal.

This actually compiles smaller than before:

  $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
  add/remove: 3/1 grow/shrink: 0/5 up/down: 250/-273 (-23)
  Function                                     old     new   delta
  _domain_pause                                  -     115    +115
  domain_pause_by_systemcontroller               -      69     +69
  domain_pause_by_systemcontroller_nosync        -      66     +66
  domain_kill                                  426     398     -28
  domain_resume                                246     214     -32
  domain_pause_except_self                     189     141     -48
  domain_pause                                  59      10     -49
  domain_pause_nosync                           59       7     -52
  __domain_pause_by_systemcontroller            64       -     -64

despite GCC's best efforts.  The new _domain_pause_by_systemcontroller()
really should not be inlined, considering that the difference is only the
setup of the sync boolean to pass to _domain_pause(), and there are plenty of
registers to spare.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/common/domain.c     | 31 ++++++++++++++++++++++---------
 xen/include/xen/sched.h | 15 +++++----------
 2 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 56d47dd66478..562872cdf87a 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1234,15 +1234,18 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
     return 0;
 }
 
-static void do_domain_pause(struct domain *d,
-                            void (*sleep_fn)(struct vcpu *v))
+static void _domain_pause(struct domain *d, bool sync /* or nosync */)
 {
     struct vcpu *v;
 
     atomic_inc(&d->pause_count);
 
-    for_each_vcpu( d, v )
-        sleep_fn(v);
+    if ( sync )
+        for_each_vcpu ( d, v )
+            vcpu_sleep_sync(v);
+    else
+        for_each_vcpu ( d, v )
+            vcpu_sleep_nosync(v);
 
     arch_domain_pause(d);
 }
@@ -1250,12 +1253,12 @@ static void do_domain_pause(struct domain *d,
 void domain_pause(struct domain *d)
 {
     ASSERT(d != current->domain);
-    do_domain_pause(d, vcpu_sleep_sync);
+    _domain_pause(d, true /* sync */);
 }
 
 void domain_pause_nosync(struct domain *d)
 {
-    do_domain_pause(d, vcpu_sleep_nosync);
+    _domain_pause(d, false /* nosync */);
 }
 
 void domain_unpause(struct domain *d)
@@ -1269,8 +1272,8 @@ void domain_unpause(struct domain *d)
             vcpu_wake(v);
 }
 
-int __domain_pause_by_systemcontroller(struct domain *d,
-                                       void (*pause_fn)(struct domain *d))
+static int _domain_pause_by_systemcontroller(
+    struct domain *d, bool sync /* or nosync */)
 {
     int old, new, prev = d->controller_pause_count;
 
@@ -1289,11 +1292,21 @@ int __domain_pause_by_systemcontroller(struct domain *d,
         prev = cmpxchg(&d->controller_pause_count, old, new);
     } while ( prev != old );
 
-    pause_fn(d);
+    _domain_pause(d, sync);
 
     return 0;
 }
 
+int domain_pause_by_systemcontroller(struct domain *d)
+{
+    return _domain_pause_by_systemcontroller(d, true /* sync */);
+}
+
+int domain_pause_by_systemcontroller_nosync(struct domain *d)
+{
+    return _domain_pause_by_systemcontroller(d, false /* nosync */);
+}
+
 int domain_unpause_by_systemcontroller(struct domain *d)
 {
     int old, new, prev = d->controller_pause_count;
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 28146ee404e6..37f78cc4c4c9 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -920,26 +920,21 @@ static inline bool vcpu_cpu_dirty(const struct vcpu *v)
 
 void vcpu_block(void);
 void vcpu_unblock(struct vcpu *v);
+
 void vcpu_pause(struct vcpu *v);
 void vcpu_pause_nosync(struct vcpu *v);
 void vcpu_unpause(struct vcpu *v);
+
 int vcpu_pause_by_systemcontroller(struct vcpu *v);
 int vcpu_unpause_by_systemcontroller(struct vcpu *v);
 
 void domain_pause(struct domain *d);
 void domain_pause_nosync(struct domain *d);
 void domain_unpause(struct domain *d);
+
+int domain_pause_by_systemcontroller(struct domain *d);
+int domain_pause_by_systemcontroller_nosync(struct domain *d);
 int domain_unpause_by_systemcontroller(struct domain *d);
-int __domain_pause_by_systemcontroller(struct domain *d,
-                                       void (*pause_fn)(struct domain *d));
-static inline int domain_pause_by_systemcontroller(struct domain *d)
-{
-    return __domain_pause_by_systemcontroller(d, domain_pause);
-}
-static inline int domain_pause_by_systemcontroller_nosync(struct domain *d)
-{
-    return __domain_pause_by_systemcontroller(d, domain_pause_nosync);
-}
 
 /* domain_pause() but safe against trying to pause current. */
 int __must_check domain_pause_except_self(struct domain *d);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 11 18:16:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 18:16:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224868.388405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEbf-0002jR-SS; Thu, 11 Nov 2021 18:15:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224868.388405; Thu, 11 Nov 2021 18:15:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlEbf-0002jK-PW; Thu, 11 Nov 2021 18:15:27 +0000
Received: by outflank-mailman (input) for mailman id 224868;
 Thu, 11 Nov 2021 18:15:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mlEbf-0002jE-8t
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 18:15:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlEbe-00033x-PC; Thu, 11 Nov 2021 18:15:26 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=[192.168.21.213]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlEbe-0000mj-IA; Thu, 11 Nov 2021 18:15:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=neclcxZecPd1G6I42Q7FcOjCjypvKTmhDd+cD/f3+Kk=; b=6lGAGGkBCUkSHggC11MIKX9w/9
	Zi/Z6R9m5SWfTppCKyd6g+eJVmcvGUOdf8asBwy62bdh2DFv6BVeCUXwczqvSnMsCj+3GlYJRWzFr
	QxKsck8kG8lo54oP+Mvtnz/RmgSVWYpu1cjVoeRvTnb+/Q3GWhQ9/qWFbfcuICMofKVQ=;
Message-ID: <409d2c17-d1e7-40b3-226a-b6ca4c0a15bf@xen.org>
Date: Thu, 11 Nov 2021 18:15:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH 3/5] xen/sort: Switch to an extern inline implementation
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-4-andrew.cooper3@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211111175740.23480-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 11/11/2021 17:57, Andrew Cooper wrote:
> There are exactly 3 callers of sort() in the hypervisor.
> 
> Both arm callers pass in NULL for the swap function.  While this might seem
> like an attractive option at first, it causes generic_swap() to be used which
> forced a byte-wise copy.  Provide real swap functions which the compiler can
> optimise sensibly.

I understand the theory, but none of the two calls are in hot paths or 
deal with large set on Arm. So I am rather hesitant to introduce 
specialised swap in each case as it doesn't seem we will gain much from 
this change.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 18:53:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 18:53:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224886.388434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlFCG-00072M-09; Thu, 11 Nov 2021 18:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224886.388434; Thu, 11 Nov 2021 18:53:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlFCF-00072F-T2; Thu, 11 Nov 2021 18:53:15 +0000
Received: by outflank-mailman (input) for mailman id 224886;
 Thu, 11 Nov 2021 18:53:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlFCE-000725-Pd; Thu, 11 Nov 2021 18:53:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlFCE-0003g6-KC; Thu, 11 Nov 2021 18:53:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlFCE-0004YN-9c; Thu, 11 Nov 2021 18:53:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlFCE-0007Oi-95; Thu, 11 Nov 2021 18:53:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=d+gNJdYrMjZ8F7YWI3boonZ/+Y2YaoIzU3Nn2t0W4DE=; b=OnkEYUBQZoWHp82QlUKltXerAD
	pFDpBZP7hH0JZNGWFNpNQzRzNgxkEXlpidgg1pBx7/MxDC50MDLrQmOu4DdNnA8nyEa+wkTnbdcTZ
	oIKrL3dfGora0LbXGbw57MnnWQlsPwOSllWvIKu2EIfjqm5OUoB79JRe/8TGsVxAWczw=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166113-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166113: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-coresched-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-credit1:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-xsm:guest-start:fail:regression
    linux-linus:test-amd64-amd64-pair:guest-start/debian:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=debe436e77c72fcee804fb867f275e6d31aa999c
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Nov 2021 18:53:14 +0000

flight 166113 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166113/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-coresched-amd64-xl 14 guest-start             fail REGR. vs. 165976
 test-amd64-amd64-dom0pvh-xl-intel 14 guest-start         fail REGR. vs. 165976
 test-amd64-amd64-xl          14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-credit1  14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-xsm      14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-pair        25 guest-start/debian       fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                debe436e77c72fcee804fb867f275e6d31aa999c
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z    9 days
Failing since        165992  2021-11-02 05:40:21 Z    9 days   14 attempts
Testing same since   166113  2021-11-11 05:25:31 Z    0 days    1 attempts

------------------------------------------------------------
2029 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                fail    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  fail    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        fail    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 230066 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 19:46:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 19:46:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224894.388448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlG20-0003Zc-6J; Thu, 11 Nov 2021 19:46:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224894.388448; Thu, 11 Nov 2021 19:46:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlG20-0003ZV-2s; Thu, 11 Nov 2021 19:46:44 +0000
Received: by outflank-mailman (input) for mailman id 224894;
 Thu, 11 Nov 2021 19:46:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zPDt=P6=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mlG1y-0003Z9-OF
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 19:46:42 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20609.outbound.protection.outlook.com
 [2a01:111:f400:fe59::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 15b08191-4328-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 20:46:39 +0100 (CET)
Received: from BN9PR03CA0255.namprd03.prod.outlook.com (2603:10b6:408:ff::20)
 by MWHPR02MB2800.namprd02.prod.outlook.com (2603:10b6:300:108::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.18; Thu, 11 Nov
 2021 19:46:36 +0000
Received: from BN1NAM02FT027.eop-nam02.prod.protection.outlook.com
 (2603:10b6:408:ff:cafe::ce) by BN9PR03CA0255.outlook.office365.com
 (2603:10b6:408:ff::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15 via Frontend
 Transport; Thu, 11 Nov 2021 19:46:36 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 BN1NAM02FT027.mail.protection.outlook.com (10.13.2.141) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Thu, 11 Nov 2021 19:46:36 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Thu, 11 Nov 2021 11:46:36 -0800
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Thu, 11 Nov 2021 11:46:36 -0800
Received: from [172.19.2.115] (port=51582 helo=xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mlG1s-000Ca0-1s; Thu, 11 Nov 2021 11:46:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 15b08191-4328-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=J2bN6kijWWMPZRXWWjT5DPALTF/VHXJKXCSo/UXr5MhkXKSrWioIHhKRC1+OVx4m0/9SbYr9px7vvgPWywtinbacYBlr+jn+C4N8gys0jPT3HEsuESLJP2jTEzUOJMW7AC8Ar7MB4ZIzRZmMJnG/9of6qKCAIoSnGqb5M78N1t7QGlBAdtU9TCJreS1IN/ACwxQcLqmWfAryzveby9NAxSygu5f4CGTTrv5EWCshsmiBTv5l0RqMHqtT1dE/mm7AGnkyielkPjqENtZQw+mHRVMTCorMtnV9tn0ikvW81PxM+8k5aeM04FnjdpuhLR21GYn2qM6ICFzxuDgbvmp7Fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oanxJCqxuD8biqDND0jkyeBJtkq1ZVjdDJ9JTMfrVXE=;
 b=IPQBZYWfs8kDuhXznEiTbq8LVwUAJAp/zHygzR9IKG3XYgHn9aIuRYwpQg9WvrMPoDj1fCKirJYfGL1q4AAqgmyoOmuKhx+22j4HIyN3XRSP3R3i3QpUga1txdwhn9ZaEiaHOvJhHbmgpBnrCSTC9h+ZDupY68Rh40ThzefTIGamg5NUjy7vHU9uhwDmzH/As0PTbCfm6ReFFszSoLVlGjtDanpWWCbfqdyf1At834aPd3XBkBNNlSy1ez20kLNZurNkFlmJOh96hFPDpwXk+E7Xb2ta/h/8M9twrLJEqxHfij7A5T8MxvtHfiDSI4dzb5HHmoWxiOmhWAVtMPnWyw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=citrix.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oanxJCqxuD8biqDND0jkyeBJtkq1ZVjdDJ9JTMfrVXE=;
 b=tYUo3ia0rhzQ7xMp7C0z86zRLCY8E2wVAZJRTomGiLNc7AWPAJZGgaMYntYTLlXa+PfMFqgDX/yz0wJwtF/tyUpfEHMP+0Hron+y6sdic/VYd/IYEQN9gMi9gdx+zH/O7knL8wVcZrfUmV9xmwDzX4eRWRK8KI/aGN++0d5iThU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
Date: Thu, 11 Nov 2021 11:46:36 -0800
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: Anthony PERARD <anthony.perard@citrix.com>
CC: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>, <bertrand.marquis@arm.com>, <volodymyr_babchuk@epam.com>,
	Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Juergen Gross
	<jgross@suse.com>
Subject: Re: [XEN][RFC PATCH v2 10/12] tools/libs/ctrl: Implement new xc
 interfaces for dt overlay
Message-ID: <20211111194634.GA211320@xilinx.com>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
 <1636441347-133850-11-git-send-email-fnu.vikram@xilinx.com>
 <YY1KwUC7EaJC4vJa@perard>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
In-Reply-To: <YY1KwUC7EaJC4vJa@perard>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 95e5f4fb-4b67-4e73-e658-08d9a54bf8ea
X-MS-TrafficTypeDiagnostic: MWHPR02MB2800:
X-Microsoft-Antispam-PRVS:
	<MWHPR02MB28007655CDD02FB9411946CBBC949@MWHPR02MB2800.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	mpSRPYbxq8r+lFczRFc0ju8GHS9dN3UEvIRyDo/UdXhapccdjQlHdzEkTNMU/9MouzoZiwQetQVPExqz0kbtV7SoDevMitCbG5pauTZlEFD9cVXermFrXhznGnPzWS/KpSOUq9TnwRgu/4I3Lk3cQcgR5ib7CANg7c/RY1FlcVC9eTcKAg84a1UVeo3orUctiBsOJpAl5QaXlV3Bx1lF0aq79Y5Pnu1/mWpaoHe1ef6h4ldCIIuwDZVKe4cWN5q1+gQyTtQ27n3q4Tyq6kkPmA2G8vnDVI3v+ZHTUZLf2zf1jVjJOOw5Zcdz9Ss9jKJDcoqn0v76sz5Zg9API4p7fqSIJEIzynBC3XlU9QKS0tgZZm9B5ANft+K2aJICUYxk/xdB+9ej+eGm6byJfla7w3ZyOj1S9J08UGeUX3yBd8qRC3QAETAqG+L+4atjHvhRncozmjw7SMO6e2MdsUgH0XIawAJkX/K67gEUGOGEQmVydtqfhIEbXN6rKb9kfNwj830OTF5aBGkIEQhDN+U2OnJEtT8VK0JjJUkXJSwH1DGRT8GhFqhr+gkaGvoKACBQcY9bQQ1guI7eQjOpVPWG/S9eTb2tKJdH4+wyEcTJyuWK3RI4nv7aAWREcohpeQVHogFxN7wihR16x2f9WNigv3hqz9iO6Y9whZGk10pZH9xGBCXWw8zamx+hamTt41OdHi9OiZYGaCmcE7afHNxU+Ochwib6vxvfibKcQUmrzoE=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(7636003)(7696005)(9786002)(70586007)(2906002)(70206006)(426003)(6916009)(82310400003)(8936002)(26005)(336012)(8676002)(54906003)(36756003)(2616005)(316002)(186003)(47076005)(356005)(36860700001)(4326008)(33656002)(36906005)(508600001)(5660300002)(1076003)(27376004);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 19:46:36.5500
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 95e5f4fb-4b67-4e73-e658-08d9a54bf8ea
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1NAM02FT027.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR02MB2800

On Thu, Nov 11, 2021 at 04:54:25PM +0000, Anthony PERARD wrote:
Hi Anthony,
> On Mon, Nov 08, 2021 at 11:02:25PM -0800, Vikram Garhwal wrote:
> > xc_dt_overlay() sends the device tree binary overlay, size of .dtbo and overlay
> > operation type i.e. add or remove to xen.
> > 
> > Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
> > ---
> >  tools/include/xenctrl.h      |  5 +++++
> >  tools/libs/ctrl/Makefile     |  1 +
> >  tools/libs/ctrl/xc_overlay.c | 51 ++++++++++++++++++++++++++++++++++++++++++++
> >  3 files changed, 57 insertions(+)
> >  create mode 100644 tools/libs/ctrl/xc_overlay.c
> > 
> > diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
> > index 07b96e6..cfd7c5c 100644
> > --- a/tools/include/xenctrl.h
> > +++ b/tools/include/xenctrl.h
> > @@ -2684,6 +2684,11 @@ int xc_livepatch_replace(xc_interface *xch, char *name, uint32_t timeout, uint32
> >  int xc_domain_cacheflush(xc_interface *xch, uint32_t domid,
> >                           xen_pfn_t start_pfn, xen_pfn_t nr_pfns);
> >  
> > +#if defined (CONFIG_OVERLAY_DTB)
> > +int xc_dt_overlay(xc_interface *xch, void *overlay_fdt, int overlay_fdt_size,
> > +                  uint8_t overlayop);
> > +#endif
> > +
> >  /* Compat shims */
> >  #include "xenctrl_compat.h"
> >  
> > diff --git a/tools/libs/ctrl/Makefile b/tools/libs/ctrl/Makefile
> > index 519246b..a21a949 100644
> > --- a/tools/libs/ctrl/Makefile
> > +++ b/tools/libs/ctrl/Makefile
> > @@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
> >  
> >  SRCS-y       += xc_altp2m.c
> >  SRCS-y       += xc_cpupool.c
> > +SRCS-$(CONFIG_OVERLAY_DTB) += xc_overlay.c
> 
> So, this patch seems to introduce the use of CONFIG_OVERLAY_DTB, is
> there a reason why the new functionality can't be always builtin?
> 
Above, if you meant removing "CONFIG_OEVRLAY_DTB" then here is my answer:
This feature is supported by ARM based FPGA devices only so there were a few
comments on v1 series to keep the code inside a config only. Now, for the tool
side also I kept the CONFIG_OVERLAY_DTB to align the xen-tools with Xen.

Although, now i saw your comments on patch 10 regarding  "always provide
libxl_dt_overlay() but which would return ENOSYS when libxl is built without
CONFIG_OVERLAY_DTB". That seems better approach here for all three xen-tool
patches.

Initially, i was not sure what to do here that's why i wrote a question in the
cover letter about this.

Also, do you know how to enable this config via menuconfig when building the Xen
tools? I know how to enable for Xen but not sure about tools.

Thanks for reviewing this.

Regards,
Vikram Garhwal

> Thanks,
> 
> -- 
> Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 21:50:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 21:50:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224900.388459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlHwi-00064s-7m; Thu, 11 Nov 2021 21:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224900.388459; Thu, 11 Nov 2021 21:49:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlHwi-00064l-4l; Thu, 11 Nov 2021 21:49:24 +0000
Received: by outflank-mailman (input) for mailman id 224900;
 Thu, 11 Nov 2021 21:49:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=YMH0=P6=kernel.org=maz@srs-se1.protection.inumbo.net>)
 id 1mlHwg-00064f-Fw
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 21:49:22 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37982c2b-4339-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 22:49:19 +0100 (CET)
Received: from disco-boy.misterjones.org (disco-boy.misterjones.org
 [51.254.78.96])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.kernel.org (Postfix) with ESMTPSA id EE03B61211;
 Thu, 11 Nov 2021 21:49:15 +0000 (UTC)
Received: from sofa.misterjones.org ([185.219.108.64]
 helo=wait-a-minute.misterjones.org)
 by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <maz@kernel.org>)
 id 1mlHwX-004u5l-Kw; Thu, 11 Nov 2021 21:49:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37982c2b-4339-11ec-a9d2-d9f7a1cc8784
Date: Thu, 11 Nov 2021 21:49:12 +0000
Message-ID: <87k0hee52f.wl-maz@kernel.org>
From: Marc Zyngier <maz@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Will Deacon <will@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Guo Ren <guoren@kernel.org>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>,
	Namhyung Kim <namhyung@kernel.org>,
	James Morse <james.morse@arm.com>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>,
	Joerg Roedel <joro@8bytes.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	linux-perf-users@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu,
	linux-csky@vger.kernel.org,
	linux-riscv@lists.infradead.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Artem Kashkanov <artem.kashkanov@intel.com>,
	Like Xu <like.xu.linux@gmail.com>,
	Like Xu <like.xu@linux.intel.com>,
	Zhu Lingshan <lingshan.zhu@intel.com>
Subject: Re: [PATCH v4 15/17] KVM: arm64: Hide kvm_arm_pmu_available behind CONFIG_HW_PERF_EVENTS=y
In-Reply-To: <20211111020738.2512932-16-seanjc@google.com>
References: <20211111020738.2512932-1-seanjc@google.com>
	<20211111020738.2512932-16-seanjc@google.com>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
 FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1
 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
X-SA-Exim-Connect-IP: 185.219.108.64
X-SA-Exim-Rcpt-To: seanjc@google.com, peterz@infradead.org, mingo@redhat.com, acme@kernel.org, will@kernel.org, mark.rutland@arm.com, linux@armlinux.org.uk, catalin.marinas@arm.com, guoren@kernel.org, nickhu@andestech.com, green.hu@gmail.com, deanbo422@gmail.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, pbonzini@redhat.com, boris.ostrovsky@oracle.com, jgross@suse.com, alexander.shishkin@linux.intel.com, jolsa@redhat.com, namhyung@kernel.org, james.morse@arm.com, alexandru.elisei@arm.com, suzuki.poulose@arm.com, hpa@zytor.com, vkuznets@redhat.com, wanpengli@tencent.com, jmattson@google.com, joro@8bytes.org, sstabellini@kernel.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org, artem.k
 ashkanov@intel.com, like.xu.linux@gmail.com, like.xu@linux.intel.com, lingshan.zhu@intel.com
X-SA-Exim-Mail-From: maz@kernel.org
X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false

On Thu, 11 Nov 2021 02:07:36 +0000,
Sean Christopherson <seanjc@google.com> wrote:
> 
> Move the definition of kvm_arm_pmu_available to pmu-emul.c and, out of
> "necessity", hide it behind CONFIG_HW_PERF_EVENTS.  Provide a stub for
> the key's wrapper, kvm_arm_support_pmu_v3().  Moving the key's definition
> out of perf.c will allow a future commit to delete perf.c entirely.
> 
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: Marc Zyngier <maz@kernel.org>

	M.

-- 
Without deviation from the norm, progress is not possible.


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 21:50:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 21:50:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224901.388470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlHx0-0006Rp-GH; Thu, 11 Nov 2021 21:49:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224901.388470; Thu, 11 Nov 2021 21:49:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlHx0-0006Ri-DH; Thu, 11 Nov 2021 21:49:42 +0000
Received: by outflank-mailman (input) for mailman id 224901;
 Thu, 11 Nov 2021 21:49:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=YMH0=P6=kernel.org=maz@srs-se1.protection.inumbo.net>)
 id 1mlHwy-00064f-T7
 for xen-devel@lists.xenproject.org; Thu, 11 Nov 2021 21:49:41 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 44faac37-4339-11ec-a9d2-d9f7a1cc8784;
 Thu, 11 Nov 2021 22:49:40 +0100 (CET)
Received: from disco-boy.misterjones.org (disco-boy.misterjones.org
 [51.254.78.96])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.kernel.org (Postfix) with ESMTPSA id AE6CE6124C;
 Thu, 11 Nov 2021 21:49:38 +0000 (UTC)
Received: from sofa.misterjones.org ([185.219.108.64]
 helo=wait-a-minute.misterjones.org)
 by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <maz@kernel.org>)
 id 1mlHwp-004u6W-9n; Thu, 11 Nov 2021 21:49:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44faac37-4339-11ec-a9d2-d9f7a1cc8784
Date: Thu, 11 Nov 2021 21:49:30 +0000
Message-ID: <87ilwye51x.wl-maz@kernel.org>
From: Marc Zyngier <maz@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Will Deacon <will@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Guo Ren <guoren@kernel.org>,
	Nick Hu <nickhu@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>,
	Namhyung Kim <namhyung@kernel.org>,
	James Morse <james.morse@arm.com>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>,
	Joerg Roedel <joro@8bytes.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	linux-perf-users@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu,
	linux-csky@vger.kernel.org,
	linux-riscv@lists.infradead.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Artem Kashkanov <artem.kashkanov@intel.com>,
	Like Xu <like.xu.linux@gmail.com>,
	Like Xu <like.xu@linux.intel.com>,
	Zhu Lingshan <lingshan.zhu@intel.com>
Subject: Re: [PATCH v4 16/17] KVM: arm64: Drop perf.c and fold its tiny bits of code into arm.c
In-Reply-To: <20211111020738.2512932-17-seanjc@google.com>
References: <20211111020738.2512932-1-seanjc@google.com>
	<20211111020738.2512932-17-seanjc@google.com>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
 FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1
 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
X-SA-Exim-Connect-IP: 185.219.108.64
X-SA-Exim-Rcpt-To: seanjc@google.com, peterz@infradead.org, mingo@redhat.com, acme@kernel.org, will@kernel.org, mark.rutland@arm.com, linux@armlinux.org.uk, catalin.marinas@arm.com, guoren@kernel.org, nickhu@andestech.com, green.hu@gmail.com, deanbo422@gmail.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, pbonzini@redhat.com, boris.ostrovsky@oracle.com, jgross@suse.com, alexander.shishkin@linux.intel.com, jolsa@redhat.com, namhyung@kernel.org, james.morse@arm.com, alexandru.elisei@arm.com, suzuki.poulose@arm.com, hpa@zytor.com, vkuznets@redhat.com, wanpengli@tencent.com, jmattson@google.com, joro@8bytes.org, sstabellini@kernel.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org, artem.k
 ashkanov@intel.com, like.xu.linux@gmail.com, like.xu@linux.intel.com, lingshan.zhu@intel.com
X-SA-Exim-Mail-From: maz@kernel.org
X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false

On Thu, 11 Nov 2021 02:07:37 +0000,
Sean Christopherson <seanjc@google.com> wrote:
> 
> Call KVM's (un)register perf callbacks helpers directly from arm.c and
> delete perf.c
> 
> No functional change intended.
> 
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: Marc Zyngier <maz@kernel.org>

	M.

-- 
Without deviation from the norm, progress is not possible.


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 22:18:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 22:18:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224913.388481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlIOy-0001Ox-Lk; Thu, 11 Nov 2021 22:18:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224913.388481; Thu, 11 Nov 2021 22:18:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlIOy-0001Oq-IQ; Thu, 11 Nov 2021 22:18:36 +0000
Received: by outflank-mailman (input) for mailman id 224913;
 Thu, 11 Nov 2021 22:18:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlIOx-0001Og-Rj; Thu, 11 Nov 2021 22:18:35 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlIOx-0007A9-LA; Thu, 11 Nov 2021 22:18:35 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlIOx-0003Vv-CQ; Thu, 11 Nov 2021 22:18:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlIOx-0001hJ-Bu; Thu, 11 Nov 2021 22:18:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Va9jPnx0VEBDatXhWjo08NWwuiY7WABNCbJbpVGtGu4=; b=GAGXqeOvnXIBMam8KtHFyYKCmq
	yoZZXuidP0FwrLcGs4SKYeh73LoCVireNB43Daa5fx5fIY493IYWhqpxgmxm6p0PLLS8g9yxnlWhm
	taEMNj8fW1ePO7htDfugTk+1G3C+NCqIznxRQUkGSHe9jcqgN3z67xgOXlX5QGXqUzfQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166116-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166116: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e2d0a42381b686451bed3e0e3ab8551f6c2d4090
X-Osstest-Versions-That:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Nov 2021 22:18:35 +0000

flight 166116 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166116/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e2d0a42381b686451bed3e0e3ab8551f6c2d4090
baseline version:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2

Last test of basis   166095  2021-11-09 11:01:37 Z    2 days
Testing same since   166116  2021-11-11 19:01:38 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Bertrand Marquis <bertrand.marquis@arm.com>
  Julien Grall <jgrall@amazon.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stefano Stabellini <stefano.stabellini@xilinx.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9d9cd0c6f5..e2d0a42381  e2d0a42381b686451bed3e0e3ab8551f6c2d4090 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Nov 11 22:43:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Nov 2021 22:43:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224920.388495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlImn-0004TA-M3; Thu, 11 Nov 2021 22:43:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224920.388495; Thu, 11 Nov 2021 22:43:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlImn-0004T3-Iq; Thu, 11 Nov 2021 22:43:13 +0000
Received: by outflank-mailman (input) for mailman id 224920;
 Thu, 11 Nov 2021 22:43:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlIml-0004St-VQ; Thu, 11 Nov 2021 22:43:11 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlIml-0007Yn-Ps; Thu, 11 Nov 2021 22:43:11 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlIml-0004Il-Fw; Thu, 11 Nov 2021 22:43:11 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlIml-0001kh-FS; Thu, 11 Nov 2021 22:43:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=LBNr1fSXze68hvQKTlqOYNpvUgmd8aAojxrikeY/Yvs=; b=nc4qKNg2znlTteHDGPmxrm5Kej
	A4Y/jzVsUMgYM1EVfXr42vBSMM1P6jkTpOWeOWZdikjr9NUHDKV0Ngjc51Q/xiC4xzcoy9MYcCMEs
	N9c7WO10Qtwj2UfmK5Yhzjr4PeQkt1YinEDlU6FP9ajStzaAFEXJiAyyXlhvMktWzZuI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166115-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166115: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=1b9fc6d8ba6667ceb56a3392e84656dcaed0d676
X-Osstest-Versions-That:
    qemuu=b30187ef02d786da674cd80079e2fcd6bb8f85e1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Nov 2021 22:43:11 +0000

flight 166115 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166115/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166110
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166110
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166110
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166110
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166110
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166110
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166110
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166110
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166110
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                1b9fc6d8ba6667ceb56a3392e84656dcaed0d676
baseline version:
 qemuu                b30187ef02d786da674cd80079e2fcd6bb8f85e1

Last test of basis   166110  2021-11-10 15:37:55 Z    1 days
Testing same since   166115  2021-11-11 11:39:20 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Greg Kurz <groug@kaod.org>
  Paolo Bonzini <pbonzini@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Yang Zhong <yang.zhong@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   b30187ef02..1b9fc6d8ba  1b9fc6d8ba6667ceb56a3392e84656dcaed0d676 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 04:28:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 04:28:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224954.388509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlOAb-0003UU-V9; Fri, 12 Nov 2021 04:28:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224954.388509; Fri, 12 Nov 2021 04:28:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlOAb-0003UM-PE; Fri, 12 Nov 2021 04:28:09 +0000
Received: by outflank-mailman (input) for mailman id 224954;
 Fri, 12 Nov 2021 04:28:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=cipi=P7=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1mlOAa-0003UG-Cm
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 04:28:08 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed78dfc1-4370-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 05:28:05 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPS id 1AC4RrFC074434
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Thu, 11 Nov 2021 23:27:58 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.16.1/8.15.2/Submit) id 1AC4RqJK074433;
 Thu, 11 Nov 2021 20:27:52 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed78dfc1-4370-11ec-9787-a32c541c8605
Date: Thu, 11 Nov 2021 20:27:52 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org
Subject: ACPI/UEFI support for Xen/ARM status?
Message-ID: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=3.4.5
X-Spam-Checker-Version: SpamAssassin 3.4.5 (2021-03-20) on mattapan.m5p.com

I've been busy with another part of this project, so I've lost track of
progress on ACPI/UEFI support on ARM.

Last I'd read full support for ACPI/UEFI seemed a ways off.  Using a stub
domain to constrain ACPI table parsing seemed the favored approach.  I
was under the impression that would take some time.

What is the status?  Do the Xen/ARM leads have any guesses for when full
ACPI/UEFI support might reach completion?

I noticed Linux made full ACPI/UEFI support mandatory for ARM64 before
3.19, so Xen's seems far behind the curve here.

While incidents of garbled ACPI tables are notorious, those are notable
due to being rare.  Whereas I've had terrible luck with device-trees.
The instances of any given OS *not* breaking device-trees with even
patch-level changes are rare.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Nov 12 05:54:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 05:54:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224962.388520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlPW7-0003V9-6y; Fri, 12 Nov 2021 05:54:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224962.388520; Fri, 12 Nov 2021 05:54:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlPW7-0003V2-3z; Fri, 12 Nov 2021 05:54:27 +0000
Received: by outflank-mailman (input) for mailman id 224962;
 Fri, 12 Nov 2021 05:54:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iiyt=P7=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1mlPW6-0003Uw-3r
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 05:54:26 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02on060c.outbound.protection.outlook.com
 [2a01:111:f400:fe06::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fcb08997-437c-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 06:54:24 +0100 (CET)
Received: from AS9PR06CA0413.eurprd06.prod.outlook.com (2603:10a6:20b:461::22)
 by DB9PR08MB7068.eurprd08.prod.outlook.com (2603:10a6:10:2c1::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Fri, 12 Nov
 2021 05:54:18 +0000
Received: from VE1EUR03FT045.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:461:cafe::40) by AS9PR06CA0413.outlook.office365.com
 (2603:10a6:20b:461::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Fri, 12 Nov 2021 05:54:18 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT045.mail.protection.outlook.com (10.152.19.51) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Fri, 12 Nov 2021 05:54:17 +0000
Received: ("Tessian outbound 892d2780d3aa:v109");
 Fri, 12 Nov 2021 05:54:17 +0000
Received: from 68cef39a4f45.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 795035A1-48C8-4DFB-BD9D-8FCD1BFEA668.1; 
 Fri, 12 Nov 2021 05:54:10 +0000
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 68cef39a4f45.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 12 Nov 2021 05:54:10 +0000
Received: from AM9PR08MB6242.eurprd08.prod.outlook.com (2603:10a6:20b:283::22)
 by AM9PR08MB6833.eurprd08.prod.outlook.com (2603:10a6:20b:30b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Fri, 12 Nov
 2021 05:54:08 +0000
Received: from AM9PR08MB6242.eurprd08.prod.outlook.com
 ([fe80::2c3d:1cd:1979:b7fc]) by AM9PR08MB6242.eurprd08.prod.outlook.com
 ([fe80::2c3d:1cd:1979:b7fc%8]) with mapi id 15.20.4690.019; Fri, 12 Nov 2021
 05:54:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fcb08997-437c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kwt3iv7lU5jcqxmBYBRCphVelE9PNlVw5gxmBaw++s4=;
 b=gzA5Sd4KhpsD42Wlz4OWU9i9CR7MD5+VB7vCVRXJLnx2ECDabnTA4rT5Aq36dPwQ9sXhnMR0VZOT3ciMPdfEfn1npD4Kik2H+8dYcGhFr2egZirxgp/vVDKawMpFzbNbAilzOMxomov6scNOb7ISKSV0Uc7pI/EhaTv5hZiA9Y0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KufeeXRlimwPPdGySiCrgmZXhanAEINAe4eHmE9ZnuUe7QbGpKNvuf2pg/08J4rpqT6CT0cm2g1/fG2OHU+cDaRu+hwIq9EVNzSryfTjYqBh1sgoI4LgUIOqdhpCuVQ4pyk7aDPDls3R3C6DsC6iE4375fG1CuJMzAob7BghUFyvxDuOh/kZ3QfGAnEfbOcvuXRgVOUzh0XWpGnW/icjzTrn8hOKZRZnQgbs8s79Mds4pgMvaccYvY4tAp7wVo2tmw8CF8n6ayVKQH+KlC8T0YhSwkkiCBRpvkgokC4KI1ho2eLAxf33KCVRWjyH2mzgAXbH1xb3L/06A5vm/LnMqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kwt3iv7lU5jcqxmBYBRCphVelE9PNlVw5gxmBaw++s4=;
 b=fPforthQupCiOu1+Tuca8/btDFniwLqQSmw2CrjRcSByBi76qkCr+sqJTIoyAipzZCe83VZDPR17xuFRkoPkA5bS3dk1SLENqxHCXkwsS0UOb4pw53qKsPI8EYWSWatt77bzytQhhNZAXFJEtwwwXRBfWGceId43BvVt+4BmCz++lp1sezWMNM4u/bxY9fYTBN/voSt7atoFYuBDCLOSBI3Srcr0kOYDzZ+7cs41ay9Gk+dzv0tH3CRM4EPxMZGm58ASW/g8I8aehH3MtPjNLAOKHSEds4PtbUobDkrMtAF00v7NBfqj2zGCWLFitU/AARiQynPGBz1maiyJn0MwbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kwt3iv7lU5jcqxmBYBRCphVelE9PNlVw5gxmBaw++s4=;
 b=gzA5Sd4KhpsD42Wlz4OWU9i9CR7MD5+VB7vCVRXJLnx2ECDabnTA4rT5Aq36dPwQ9sXhnMR0VZOT3ciMPdfEfn1npD4Kik2H+8dYcGhFr2egZirxgp/vVDKawMpFzbNbAilzOMxomov6scNOb7ISKSV0Uc7pI/EhaTv5hZiA9Y0=
From: Henry Wang <Henry.Wang@arm.com>
To: Elliott Mitchell <ehem+xen@m5p.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: ACPI/UEFI support for Xen/ARM status?
Thread-Topic: ACPI/UEFI support for Xen/ARM status?
Thread-Index: AQHX132/o6cMSLF9z0aAvBIRSP4UG6v/Yn3A
Date: Fri, 12 Nov 2021 05:54:08 +0000
Message-ID:
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
In-Reply-To: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: CCB6AF7DF02B324FAFB095D3BA0CF1CB.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 3799174b-f51e-42ff-9a44-08d9a5a0dd49
x-ms-traffictypediagnostic: AM9PR08MB6833:|DB9PR08MB7068:
X-Microsoft-Antispam-PRVS:
	<DB9PR08MB7068C7FFBCA7A2572663565792959@DB9PR08MB7068.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:8273;OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 B4RiS9tg/x2g1EkALpV4U87+KgB7YeqZfvVRq/j2BMKsKChDmeoHstiUBx18Z2bNWZ8et2nMbaWlSVn5pQWQFwZ+FRu4lLqSZod7kp3ebNi5yzJ8oZIkbMCgrtHLteLoWSLdTIL8E0QL2uFQPcWfHdX+tme/YyEYah60ksHHeTV4hAVo6RLwRTASr3nIjCNvv0z/dApONNJCMEQQwda1cqzuH5oDzzVpr7vzebBXOPrgWc0eBSf2HM+PecxBOuoQMSyChYiJXjSwnDjN5zO1b5/2Tm/sOCp2ORgOEbzSHOQd3yJnD6H+8cbqcuTlo5eK+wqBSk4z2/KSG63xK/3XDQJ41YBEw5yTWbweZL7wTZcpRUjoH04a7CSGlr1VNFXlHbZNX9zQDEkerggG47Unz0pwqMNdCcr+9TAjRMmrVfkdFT5NtLuLMNsYgw1sdct3g9u5zhZaZR1HN3ufhXoD4tXx/6ozbDaK/ZgFvhFZZS+6N/2pi8EQ7oaNc8g587XQct+GshjIh9kuRp0pclGGWOthQP9xXT7EfrKoDhUNPhWhQTGMtQ+cTURxaSL5sC1nXZ9HRobGVrb1X1u9IBOBTvzWn+ROIAnfG2LEM2NOdKbvYg5WhwmQv58MvHSZh0H2x6ZbUhx6XFN6esmZjAbE0tw+VsMB0ixjvPwa993qXuwOE53vRkUTs6a30c3DIV4hoT+l227PNpXndTfeplet9g==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR08MB6242.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(38070700005)(110136005)(83380400001)(71200400001)(186003)(122000001)(66946007)(53546011)(8936002)(9686003)(5660300002)(66476007)(7696005)(33656002)(6506007)(55016002)(2906002)(66446008)(86362001)(316002)(66556008)(4326008)(64756008)(26005)(76116006)(8676002)(38100700002)(52536014);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6833
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT045.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	7f7ad802-8dbb-4857-4579-08d9a5a0d7c5
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	tKkhaf8ioKMGxd1y7JcDklBWxIDSm1Yb1f8K2ubKx/FVmg2P27ItMmqZQMva7zJBtuNOjBXLDjRLFJh8rE7Sj9gBCHkrAxeQ6FaytwAcYtuq/Ju256hlZl2qr9hPsYzXBgTEQAvlWnbkF8HzJBfrZbJ2J222aFkORtHqXuolBwWg4u+kSWvzyQWIaMhdYBLpv56b9sXVsQShd8WMjKxpXk2zfd7GAuWVYqA7aprkgCQ0jxj8ipzPbOtG256gAQFb7l8K3G3gT5x6/3074qEdd3lFlmrA5qfA9LhG/PuD/TTdHbt9Y95Nv1uwfK0HRbiioyjjvFQOi1+iW0f4k+5Yue2pCM7ld7Dl2vyO5z4GksYsIo8NU+veCLcRszlLxlnC/jDWGzuHLmVrgurBQ0e/neZX+X0KTIQSNeZkC/79IFfHJMTwdmTyOE7MmQ40AB/ADy6lqF8qm03+BACHQiig1BnJBQoa4jrR8ZqSHwwPW2K//5WNYsBDOpKpdDp+WJGLcBEGcs30tdyXr8whgeuQF/UNo3hAL5njL9nBjh6oTwHRGyhr07iuyHzKEGUaamGHU04DAj+xMl1im15WTjTc9LsxDQoluIePUdGA2aHJGDpMKyxctVzLwGYUcQBQiFSNn1Mzrn7e2HZ58LTSGYsCL4FUdlcdV0BmTZd5pz0QZhBEO8X6II3VsddKnH2dR8v0swQH0qH1g5VBolXoIjbvdA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(52536014)(336012)(5660300002)(186003)(7696005)(55016002)(8676002)(70586007)(6506007)(70206006)(47076005)(82310400003)(8936002)(9686003)(53546011)(81166007)(508600001)(110136005)(83380400001)(4326008)(356005)(2906002)(36860700001)(316002)(86362001)(26005)(33656002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 05:54:17.4446
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3799174b-f51e-42ff-9a44-08d9a5a0dd49
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT045.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7068

Hi Elliott,

> -----Original Message-----
> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
> Elliott Mitchell
> Sent: Friday, November 12, 2021 12:28 PM
> To: Stefano Stabellini <sstabellini@kernel.org>; Julien Grall <julien@xen=
.org>
> Cc: xen-devel@lists.xenproject.org
> Subject: ACPI/UEFI support for Xen/ARM status?
>=20
> I've been busy with another part of this project, so I've lost track of
> progress on ACPI/UEFI support on ARM.
>=20
> Last I'd read full support for ACPI/UEFI seemed a ways off.  Using a stub
> domain to constrain ACPI table parsing seemed the favored approach.  I
> was under the impression that would take some time.
>=20
> What is the status?  Do the Xen/ARM leads have any guesses for when full
> ACPI/UEFI support might reach completion?

I am doing some development based on the Xen UEFI/ACPI on AArch64 using
the Arm FVP_Base platform. Using edk2 and master branch of Xen with
`CONFIG_ACPI=3Dy`, it seems everything can work properly.

Here are some of my logs:
Shell> FS2:EFI\XEN\xen.efi
Xen 4.16-rc (c/s Fri Nov 12 02:34:01 2021 +0000 git:323b47ffd9-dirty) EFI l=
oader
...
(XEN) PFN compression on bits 20...22
(XEN) ACPI: RSDP F5E30018, 0024 (r2 LINARO)
(XEN) ACPI: XSDT F5E3FE98, 005C (r1 LINARO RTSMVEV8        2       1000013)
(XEN) ACPI: FACP F5E3FA98, 0114 (r6 LINARO RTSMVEV8        2 LNRO        2)
(XEN) ACPI: DSDT F5E3ED98, 02AB (r2 LINARO RTSMVEV8        4 INTL 20200925)
(XEN) ACPI: GTDT F5E3FC18, 00E0 (r2 LINARO RTSMVEV8        2 LNRO        2)
(XEN) ACPI: APIC F5E3E998, 02D4 (r4 LINARO RTSMVEV8        2 LNRO        2)
(XEN) ACPI: SPCR F5E3FF98, 0050 (r2 LINARO RTSMVEV8        2 LNRO        2)
(XEN) Domain heap initialised
(XEN) Booting using ACPI
...
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd0f0]
[    0.000000] Linux version 5.14.0-rc1+ (henry@xxxx) (gcc (Ubuntu 9.3.0-17=
ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #19 SMP Wed Oc=
t 13 05:18:13 EDT 2021
[    0.000000] Xen XEN_VERSION.XEN_SUBVERSION support found
[    0.000000] efi: EFI v2.50 by Xen
[    0.000000] efi: ACPI 2.0=3D0xf56f02a0
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000F56F02A0 000024 (v02 LINARO)
[    0.000000] ACPI: XSDT 0x00000000F56F0238 000064 (v01 LINARO RTSMVEV8 00=
000002      01000013)
[    0.000000] ACPI: FACP 0x00000000F56F0000 000114 (v06 LINARO RTSMVEV8 00=
000002 LNRO 00000002)
[    0.000000] ACPI: DSDT 0x00000000F5E3ED98 0002AB (v02 LINARO RTSMVEV8 00=
000004 INTL 20200925)
[    0.000000] ACPI: GTDT 0x00000000F5E3FC18 0000E0 (v02 LINARO RTSMVEV8 00=
000002 LNRO 00000002)
[    0.000000] ACPI: APIC 0x00000000F56F0118 0000F4 (v04 LINARO RTSMVEV8 00=
000002 LNRO 00000002)
[    0.000000] ACPI: SPCR 0x00000000F5E3FF98 000050 (v02 LINARO RTSMVEV8 00=
000002 LNRO 00000002)
[    0.000000] ACPI: SPCR: console: pl011,mmio32,0x1c090000,115200
...

Hopefully this answers your question. :)

>=20
> I noticed Linux made full ACPI/UEFI support mandatory for ARM64 before
> 3.19, so Xen's seems far behind the curve here.
>=20
> While incidents of garbled ACPI tables are notorious, those are notable
> due to being rare.  Whereas I've had terrible luck with device-trees.
> The instances of any given OS *not* breaking device-trees with even
> patch-level changes are rare.
>=20
>=20
> --
> (\___(\___(\______          --=3D> 8-) EHM <=3D--          ______/)___/)_=
__/)
>  \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
>   \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
> 8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0
> 8714\_|_/___/5445
>=20
>=20

Kind regards,

Henry



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 06:31:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 06:31:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224969.388531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlQ5l-0007VN-04; Fri, 12 Nov 2021 06:31:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224969.388531; Fri, 12 Nov 2021 06:31:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlQ5k-0007VG-St; Fri, 12 Nov 2021 06:31:16 +0000
Received: by outflank-mailman (input) for mailman id 224969;
 Fri, 12 Nov 2021 06:31:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlQ5j-0007V6-By; Fri, 12 Nov 2021 06:31:15 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlQ5j-0001Mb-6S; Fri, 12 Nov 2021 06:31:15 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlQ5i-0001NN-U7; Fri, 12 Nov 2021 06:31:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlQ5i-0004LO-Ta; Fri, 12 Nov 2021 06:31:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=P+Wr34Iy4z8Tx/wS4X9A+U/1Sqa9miFy/faiKMAA3nw=; b=yd1ORbx70YPcv7K2XRXPYxMC8o
	9NFzGgKDsJ/dQga/1IlRt6prEYeeulF9is6T+hORola4DlrZ6O92stD1kBgzT8hoVee1Ys8QOieA4
	OkXtiL768+bAw/yeEs3h/EwiXzfd83hbuBiY4xSCgpVgbUFaAw1H/xFL44JjLUqL8Bkc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166117-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166117: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-coresched-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-credit1:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-xsm:guest-start:fail:regression
    linux-linus:test-amd64-amd64-pair:guest-start/debian:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-credit2:guest-start:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-rtds:guest-start/debian.repeat:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=debe436e77c72fcee804fb867f275e6d31aa999c
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Nov 2021 06:31:14 +0000

flight 166117 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166117/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-coresched-amd64-xl 14 guest-start             fail REGR. vs. 165976
 test-amd64-amd64-dom0pvh-xl-intel 14 guest-start         fail REGR. vs. 165976
 test-amd64-amd64-xl          14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-credit1  14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-xsm      14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-pair        25 guest-start/debian       fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-credit2  14 guest-start                fail pass in 166113
 test-amd64-amd64-xl-rtds     22 guest-start/debian.repeat  fail pass in 166113

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                debe436e77c72fcee804fb867f275e6d31aa999c
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   10 days
Failing since        165992  2021-11-02 05:40:21 Z   10 days   15 attempts
Testing same since   166113  2021-11-11 05:25:31 Z    1 days    2 attempts

------------------------------------------------------------
2029 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                fail    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  fail    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  fail    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        fail    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 230066 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 07:25:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 07:25:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224977.388545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlQwB-000471-6f; Fri, 12 Nov 2021 07:25:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224977.388545; Fri, 12 Nov 2021 07:25:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlQwB-00046u-3k; Fri, 12 Nov 2021 07:25:27 +0000
Received: by outflank-mailman (input) for mailman id 224977;
 Fri, 12 Nov 2021 07:25:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlQw9-00046k-5f; Fri, 12 Nov 2021 07:25:25 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlQw9-0002GX-0g; Fri, 12 Nov 2021 07:25:25 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlQw8-00048E-Kz; Fri, 12 Nov 2021 07:25:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlQw8-0008Sa-KU; Fri, 12 Nov 2021 07:25:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EQB7KMhlvfI4ekyTf6T0siAvEUw/Xg7hbh8u/SPf1WU=; b=FX7UJBtiZo3uCF0WFbc/Jv4vvw
	tpp5Qg3ctNtJUSaakKSr87e5LjkyqRKoshvIU/FpJriSslQyeUsAb8hGax7b8Unjh3n8OYioIlm4a
	p/VT5xRBAVXXeH8GztttfKdJ8w+gQvJOnHgnGzvre/ua/Rdm/AbOaDtSj2n6ovr96vBA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166120-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166120: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=a92559671a3bbdbc154429cf66edf4f490bbe218
X-Osstest-Versions-That:
    ovmf=22c3b5a865ec800b7eecf43de336ad5e2d917a08
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Nov 2021 07:25:24 +0000

flight 166120 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166120/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 a92559671a3bbdbc154429cf66edf4f490bbe218
baseline version:
 ovmf                 22c3b5a865ec800b7eecf43de336ad5e2d917a08

Last test of basis   166114  2021-11-11 08:41:16 Z    0 days
Testing same since   166120  2021-11-11 23:10:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Gerd Hoffmann <kraxel@redhat.com>
  Michael D Kinney <michael.d.kinney@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   22c3b5a865..a92559671a  a92559671a3bbdbc154429cf66edf4f490bbe218 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 07:27:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 07:27:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224985.388558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlQyV-0004kF-K0; Fri, 12 Nov 2021 07:27:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224985.388558; Fri, 12 Nov 2021 07:27:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlQyV-0004k8-H4; Fri, 12 Nov 2021 07:27:51 +0000
Received: by outflank-mailman (input) for mailman id 224985;
 Fri, 12 Nov 2021 07:27:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxiu=P7=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mlQyU-0004je-0t
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 07:27:50 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0828dfe8-438a-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 08:27:48 +0100 (CET)
Received: from SN7PR04CA0033.namprd04.prod.outlook.com (2603:10b6:806:120::8)
 by BY5PR02MB6788.namprd02.prod.outlook.com (2603:10b6:a03:202::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Fri, 12 Nov
 2021 07:27:44 +0000
Received: from SN1NAM02FT0039.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:120:cafe::80) by SN7PR04CA0033.outlook.office365.com
 (2603:10b6:806:120::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Fri, 12 Nov 2021 07:27:44 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0039.mail.protection.outlook.com (10.97.5.35) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.15 via Frontend Transport; Fri, 12 Nov 2021 07:27:43 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Thu, 11 Nov 2021 23:27:43 -0800
Received: from smtp.xilinx.com (172.19.127.96) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Thu, 11 Nov 2021 23:27:43 -0800
Received: from [172.19.2.115] (port=54152 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mlQyN-000G6V-LM; Thu, 11 Nov 2021 23:27:43 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0828dfe8-438a-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hZO2T8pYAW0Q56D7VU0ZEgpLKJ81gblO8s6gTHsiO2nDLJUQQSjgnb+dfDSPqM6HxGM7U5UJw5RMvhMjlCc/+acrVLa7/gAkc0ucmlKAx87F3e2SbLbuxzctLAdHJTqT7yxCBEgKkxs5xjw5G2CdlPkxptnyKExzuUochtZKXUdXVNDRydluuS8gAFRKjIqB8FZoPZj8geq/qGxzCguELp1rGD/JyNhtjqSRkgVSd/aJIqPHy77fLRVGKsx1xzlM0D65WOObB949Gk+b04Th1v6JU2FT3/P/SKWIIGqpTtwdjo8ALoeOOZvTzzWhIHnBBSrF/W5db3VrJBTld1TcGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T2oAPRoBpQI9d7tWbw2zBLdpi/WRm+mKy7JeengF3D8=;
 b=hmA3kYgw1cXaf0SN05bg9EY73Ylr6ufCw4Oyf9CgPTjn7gNUpaMJU+bkngpjuWPSlcIjcLbhMZMOLWb2Elew1tEpQF61JHxmtIBa8ztjo670dhdn0/OyrqloiNqOv9aTJlh/0i/STcRy6P1CIOFaUr96R1J8lo510UsB9deBHgwQwqQ51deXZ9gqbV7ii8TdtRPDyJ4siU+jsBL3x/IIRXxjNNniHjc11QWD7SMdkz4NVj/Nj/euB8xnscVflBbmk06U7NmtZHZAPoblU7JDsLQifx/p/NAWAsr/VPLRNgcI0FNR3If/yP3xZm64D3ViGJ9V8UFaOd0sm/VEpwxBNw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=T2oAPRoBpQI9d7tWbw2zBLdpi/WRm+mKy7JeengF3D8=;
 b=aOfW3EGP4bjL5vd4shDfQa+fsAnC+LvcBkYUaHFxoFSZIs+6Ptke+coDGQJCgf+J6WZcODcC9zj+kyJ2zNJY1uTmOXQi/ABfvIiz7P3zRdiFHDlMvdSMYg9HfaYhZ2hSWaXXV7A5oQhwx6/XTmzNtYcWbepnP0jkpofZM/QiH0g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][RFC PATCH v4 0/1] Update libfdt to v1.6.1
Date: Thu, 11 Nov 2021 23:27:19 -0800
Message-ID: <1636702040-116895-1-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 224b89d6-0722-4c1b-a5bb-08d9a5adeb06
X-MS-TrafficTypeDiagnostic: BY5PR02MB6788:
X-Microsoft-Antispam-PRVS:
	<BY5PR02MB678854A86AD931276F4D232BBC959@BY5PR02MB6788.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	YwFhKqWp/GN1+L2K6kRauvT26FE86MsYeeb0kQa75nCKMUK1ZSbKFOak/xdue2xucUlA9SZwxbZQbba61EcUehFgqGLIBOKA8/dTe1+FORBl1Usn0piIO/76brQZBborqio1WdHwcJoPYSkfRQNhQ0A+RqcurHGaZmivJNgECLwNbyerBAQIErqBI4sGG5P88HvQTuNx5yAF02OAOTVadTbB7hSqH1PweERMtAncjE1VJQdpPwEhBvggWN2hAVgLOyEuV9tqSoKpSMk0+JBPWLLw6pxbDwRKVcxCSktp6+fsPIagS5i79p7vvQNH29uCDo5uCstvzgRNVFpHXYcFrhxLjeh+C87iD+sR2pWyuadM+2vdt60qEaYsBXfUn12jMWY8d8rOE06sfHzCE5QUIidDY2IU8Q3wN/Z5znDfFLxmKFb/R17DhsdIRYtP0lwsRnLEtgU0D1+21i6fTPODi93ONSN5b1omIbV3kB3YUO005ZRMnfoR0k6mX1w3iVXW6TfBZ4M4hx8oFNWuF+5At712Dlw9LlQGA5WVpPE5Fu66DtGD0chc8zh9qAp902sDgGd8/MKdINU8U6QSI5lznOIJ1NA15SCBiaftDQ5franyx0S0tIikoeZRnHSDCt5eNKwf+CYRV69mjJu/gC2q4a4k8MyFU3rKN53eLRpJuG1CKEFRwesBBqH6yayz4HjdtmUzmemU1DtCFLQm+h0hDw4MlC9lsfDPDC5IYMhEpbRxzk5O8QAmNVtGDiff4eGzHITZBcxAD2/AA0dw4xcbw29SbVJ4PpVqgz5Ffe6Q1cSFhGFp6xKsxhoqmQ1QzPHT
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(8676002)(6666004)(426003)(2616005)(6916009)(316002)(36860700001)(36756003)(70206006)(70586007)(508600001)(83380400001)(8936002)(82310400003)(7696005)(186003)(5660300002)(2906002)(47076005)(336012)(4326008)(9786002)(36906005)(54906003)(107886003)(15650500001)(7636003)(26005)(356005)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 07:27:43.9842
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 224b89d6-0722-4c1b-a5bb-08d9a5adeb06
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0039.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR02MB6788

This update is done to support device tree overlays functionality. This is taken
from David Gibson's DTC git: github.com/dgibson/dtc.

Change log:
v3 -> v4:
    Remove unnecessary config.h and stdbool.h header includes from libfdt_env.h.

v2 -> v3:
    Include version.lds changes.

v1 -> v2:
    Correct the compilation issue due to incorrect lib.h path.

Regards,
Vikram

Vikram Garhwal (1):
  Update libfdt to v1.6.1

 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 ++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/common/libfdt/version.lds       |  24 +-
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
 xen/include/xen/libfdt/libfdt_env.h |  98 +++-
 16 files changed, 3046 insertions(+), 786 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 07:27:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 07:27:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224986.388570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlQya-00052R-TI; Fri, 12 Nov 2021 07:27:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224986.388570; Fri, 12 Nov 2021 07:27:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlQya-00052B-PO; Fri, 12 Nov 2021 07:27:56 +0000
Received: by outflank-mailman (input) for mailman id 224986;
 Fri, 12 Nov 2021 07:27:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxiu=P7=xilinx.com=fnuv@srs-se1.protection.inumbo.net>)
 id 1mlQyZ-0004jK-Bc
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 07:27:56 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061b.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a66ab34-438a-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 08:27:51 +0100 (CET)
Received: from SN7PR04CA0038.namprd04.prod.outlook.com (2603:10b6:806:120::13)
 by DM8PR02MB8231.namprd02.prod.outlook.com (2603:10b6:8:d::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.16; Fri, 12 Nov 2021 07:27:45 +0000
Received: from SN1NAM02FT0039.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:120:cafe::9) by SN7PR04CA0038.outlook.office365.com
 (2603:10b6:806:120::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25 via Frontend
 Transport; Fri, 12 Nov 2021 07:27:45 +0000
Received: from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0039.mail.protection.outlook.com (10.97.5.35) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.15 via Frontend Transport; Fri, 12 Nov 2021 07:27:45 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Thu, 11 Nov 2021 23:27:44 -0800
Received: from smtp.xilinx.com (172.19.127.96) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Thu, 11 Nov 2021 23:27:44 -0800
Received: from [172.19.2.115] (port=54152 helo=xsjfnuv50.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <fnu.vikram@xilinx.com>)
 id 1mlQyO-000G6V-DV; Thu, 11 Nov 2021 23:27:44 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a66ab34-438a-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mDGhHHFJJoTnxZqRZyHmjym//S8BtukydFg5ZDpn3aL3BFX10Aq4FlvSuxUzkrzp/T5d8/8KDvXdw3kRhf+oOZReeqB4hABaGXK507b+wmCCkrX71B/pnG09yQOiGNp6XEyR3T6YlKD8hS8tlrZl6PqM6BU7x1DXtTi8PT+Jl3Z3l4Oh5vK3LSm1joVZKfkkX/cHq3MRj7puyKUxqth4RBzvgOhDAzxf0CMN8mvA895NWXkvID1d4Xjx1MQF7lFiHinkacqBykDB0gKOYqRVQdoZUxhEju7c4BaaP2hpDLVAVAclrd/Zjw8x+ODeIfMSsG21Fkl5riiAZzHDnvU2jQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dZSOdhdI3B6Sn64RH87gOVB5msjk5pkczIOk3NSOk8c=;
 b=DuUvrhjuHQmHn4ihsBBKxDRtxgzyOpoV2KyKS5cX/mg+QqQxngl0O+70esk7wAx8/uvsugRftyfCjIGSNChGdIsviezg+Z4YqiEUqRbtpQDHXQJC0xDlR2/JOeprHcCR/pt7gxLyLt2tMLeX4tRncOCjsL8tU/XZK4hJciG9oyDkTmxRyfG5v3L3ijJUs5gRJvC2OLCK5moYR6NIAkhX7Q9vDrmVGgniGNTJl5UUq+IZStrIEsCK2lMvrjOxrzMsDMn7v7UCzhaBk/ulTzTbKgze3QCZf94l8xcgTInrguEv5uFBNiWena/PPz6e1xxm27WpD8oJTUdtyDcP/Z3oQQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dZSOdhdI3B6Sn64RH87gOVB5msjk5pkczIOk3NSOk8c=;
 b=Hy2SqWF0bltrrGRPdMFC8k6uanhG8OgxPwB5GAR54YRH/ltu+2nuG81qIEeGfjLRCO2/emZYP2Q1menzUF7/rUz8408LDL2NQJcTYE4OiZvoIa+vU00ClWpvmId64Ax14+OMzNj24uDRC7Rb/ZQZEzwu4YE4ssgE9Pr4s0KneBE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not
 signed) header.d=none;lists.xenproject.org; dmarc=pass action=none
 header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;
From: Vikram Garhwal <fnu.vikram@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<volodymyr_babchuk@epam.com>, Vikram Garhwal <fnu.vikram@xilinx.com>
Subject: [XEN][RFC PATCH v4 1/1] Update libfdt to v1.6.1
Date: Thu, 11 Nov 2021 23:27:20 -0800
Message-ID: <1636702040-116895-2-git-send-email-fnu.vikram@xilinx.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1636702040-116895-1-git-send-email-fnu.vikram@xilinx.com>
References: <1636702040-116895-1-git-send-email-fnu.vikram@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 82be53c6-7603-42fa-7412-08d9a5adebaa
X-MS-TrafficTypeDiagnostic: DM8PR02MB8231:
X-Microsoft-Antispam-PRVS:
	<DM8PR02MB82319750634186417D364990BC959@DM8PR02MB8231.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:2803;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	89IjZWSFzP9V+DKvxnQ4BIU6bwWfTAFPwTsk8EvvVGu7jYnsAU0h29NC5nrcqKYaICmzCzCM0q7V49ohtdNIOdnTOQFmA/7VITxJujUmycwG+TY2IftDa9jL9Yfpn+X+jEyITxJLvFIwvyU0gViAOisNEQbpu3JDPzwnwf5s2vNRDjhK2i/6jWM+lUf12wPNxaylQ/1Z7DW23cP96Pa1QvDmx6dSVTFMzR3YtnoVCpr75jhhK1Fmvy/6u4G4SNbWwMBXoD4DBOydA5gyHphHrwzPyw4nURgYD92yWg+5Fp0HhMbuf6KhktDtOQ2U6EXovLCwoTiyspW4tzpxOLF70jTi+CWhWnR/IurVHd8D89pYqtcaxk127RRE0M4xtG2Qrhes5ckMJgzUoAHaYTUb1Ssmp7C0AIbY6GVHCl3J2cmdWv28k5kuuFxDrjoigyAsQiNaBKrQgngpAkvKDE4NZIGCTvwz0D8EJBAZK+tCJuW9U0VonoF/ZorPUVndZhQraQz51+f0pkXQvfHBZUQ7Z1XlD163XqBW61mU7nqhBcVwJXk5l9vdyd9zSuQJXqswZez65Gr6LicnM5RQAJHl+ebLv9aVEZIpXM6kqyku+HhHRNgJw4NJhdiudslI/vCA2u2T0maPIJFIag+zla/AzuYnAndqiKrK6Kvng8w+VzX+/HbneuuV8/FIuzfP/mSerk/MYmT7WX/+RnIYDZDnZvfwBF5Q99IB/w4NDm4q86+g0LL8c9R+fNx3wJ+LvnmMX2q9Bk1ZzUqeyDsl39NnFltOFi7B5R5N7/og/zd/W7lleNrqA/9H1FN34a1mhqzKbP+Ylnybfodn6xDFUPJOzZaz3fyP2PhTy+uRN9MivwA=
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch01.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(15650500001)(426003)(70586007)(47076005)(8676002)(2616005)(336012)(36756003)(70206006)(186003)(26005)(5660300002)(4326008)(8936002)(2906002)(508600001)(7696005)(7636003)(316002)(82310400003)(9786002)(6916009)(36906005)(107886003)(356005)(54906003)(36860700001)(6666004)(83380400001)(30864003)(102446001)(46800400005)(2004002)(559001)(579004);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 07:27:45.0558
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 82be53c6-7603-42fa-7412-08d9a5adebaa
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0039.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR02MB8231

Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
This update is done to support device tree overlays.

A few minor changes are done to make it compatible with Xen:
    fdt_overlay.c: overlay_fixup_phandle()

        Replace strtoul() with simple_strtoul() as strtoul() is not available in
        Xen lib and included lib.h.

        Change char *endptr to const char *endptr. This change is required for
        using simple_strtoul().

    libfdt_env.h:
        Remaining Xen changes to libfdt_env.h carried over from existing
        libfdt (v1.4.0)

Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
---
 xen/common/libfdt/Makefile.libfdt   |  10 +-
 xen/common/libfdt/fdt.c             | 226 ++++++---
 xen/common/libfdt/fdt_addresses.c   | 101 ++++
 xen/common/libfdt/fdt_check.c       |  93 ++++
 xen/common/libfdt/fdt_empty_tree.c  |  46 +-
 xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
 xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
 xen/common/libfdt/fdt_rw.c          | 249 +++++-----
 xen/common/libfdt/fdt_strerror.c    |  55 +--
 xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
 xen/common/libfdt/fdt_wip.c         |  88 ++--
 xen/common/libfdt/libfdt_internal.h | 223 ++++++---
 xen/common/libfdt/version.lds       |  24 +-
 xen/include/xen/libfdt/fdt.h        |  51 +--
 xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
 xen/include/xen/libfdt/libfdt_env.h |  98 +++-
 16 files changed, 3046 insertions(+), 786 deletions(-)
 create mode 100644 xen/common/libfdt/fdt_addresses.c
 create mode 100644 xen/common/libfdt/fdt_check.c
 create mode 100644 xen/common/libfdt/fdt_overlay.c

diff --git a/xen/common/libfdt/Makefile.libfdt b/xen/common/libfdt/Makefile.libfdt
index 91126c0..b6d8fc0 100644
--- a/xen/common/libfdt/Makefile.libfdt
+++ b/xen/common/libfdt/Makefile.libfdt
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 # Makefile.libfdt
 #
 # This is not a complete Makefile of itself.  Instead, it is designed to
@@ -6,5 +7,12 @@
 LIBFDT_soname = libfdt.$(SHAREDLIB_EXT).1
 LIBFDT_INCLUDES = fdt.h libfdt.h libfdt_env.h
 LIBFDT_VERSION = version.lds
-LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c
+LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c \
+	fdt_addresses.c fdt_overlay.c fdt_check.c
 LIBFDT_OBJS = $(LIBFDT_SRCS:%.c=%.o)
+LIBFDT_LIB = libfdt-$(DTC_VERSION).$(SHAREDLIB_EXT)
+
+libfdt_clean:
+	@$(VECHO) CLEAN "(libfdt)"
+	rm -f $(STD_CLEANFILES:%=$(LIBFDT_dir)/%)
+	rm -f $(LIBFDT_dir)/$(LIBFDT_soname)
diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
index bbc7717..9fe7cf4 100644
--- a/xen/common/libfdt/fdt.c
+++ b/xen/common/libfdt/fdt.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,40 +10,156 @@
 
 #include "libfdt_internal.h"
 
-int fdt_check_header(const void *fdt)
+/*
+ * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
+ * that the given buffer contains what appears to be a flattened
+ * device tree with sane information in its header.
+ */
+int32_t fdt_ro_probe_(const void *fdt)
 {
+	uint32_t totalsize = fdt_totalsize(fdt);
+
+	if (can_assume(VALID_DTB))
+		return totalsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
 	if (fdt_magic(fdt) == FDT_MAGIC) {
 		/* Complete tree */
-		if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
-		if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
-			return -FDT_ERR_BADVERSION;
+		if (!can_assume(LATEST)) {
+			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+			if (fdt_last_comp_version(fdt) >
+					FDT_LAST_SUPPORTED_VERSION)
+				return -FDT_ERR_BADVERSION;
+		}
 	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
 		/* Unfinished sequential-write blob */
-		if (fdt_size_dt_struct(fdt) == 0)
+		if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) == 0)
 			return -FDT_ERR_BADSTATE;
 	} else {
 		return -FDT_ERR_BADMAGIC;
 	}
 
+	if (totalsize < INT32_MAX)
+		return totalsize;
+	else
+		return -FDT_ERR_TRUNCATED;
+}
+
+static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off)
+{
+	return (off >= hdrsize) && (off <= totalsize);
+}
+
+static int check_block_(uint32_t hdrsize, uint32_t totalsize,
+			uint32_t base, uint32_t size)
+{
+	if (!check_off_(hdrsize, totalsize, base))
+		return 0; /* block start out of bounds */
+	if ((base + size) < base)
+		return 0; /* overflow */
+	if (!check_off_(hdrsize, totalsize, base + size))
+		return 0; /* block end out of bounds */
+	return 1;
+}
+
+size_t fdt_header_size_(uint32_t version)
+{
+	if (version <= 1)
+		return FDT_V1_SIZE;
+	else if (version <= 2)
+		return FDT_V2_SIZE;
+	else if (version <= 3)
+		return FDT_V3_SIZE;
+	else if (version <= 16)
+		return FDT_V16_SIZE;
+	else
+		return FDT_V17_SIZE;
+}
+
+size_t fdt_header_size(const void *fdt)
+{
+	return can_assume(LATEST) ? FDT_V17_SIZE :
+		fdt_header_size_(fdt_version(fdt));
+}
+
+int fdt_check_header(const void *fdt)
+{
+	size_t hdrsize;
+
+	/* The device tree must be at an 8-byte aligned address */
+	if ((uintptr_t)fdt & 7)
+		return -FDT_ERR_ALIGNMENT;
+
+	if (fdt_magic(fdt) != FDT_MAGIC)
+		return -FDT_ERR_BADMAGIC;
+	if (!can_assume(LATEST)) {
+		if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
+		    || (fdt_last_comp_version(fdt) >
+			FDT_LAST_SUPPORTED_VERSION))
+			return -FDT_ERR_BADVERSION;
+		if (fdt_version(fdt) < fdt_last_comp_version(fdt))
+			return -FDT_ERR_BADVERSION;
+	}
+	hdrsize = fdt_header_size(fdt);
+	if (!can_assume(VALID_DTB)) {
+
+		if ((fdt_totalsize(fdt) < hdrsize)
+		    || (fdt_totalsize(fdt) > INT_MAX))
+			return -FDT_ERR_TRUNCATED;
+
+		/* Bounds check memrsv block */
+		if (!check_off_(hdrsize, fdt_totalsize(fdt),
+				fdt_off_mem_rsvmap(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
+	if (!can_assume(VALID_DTB)) {
+		/* Bounds check structure block */
+		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
+			if (!check_off_(hdrsize, fdt_totalsize(fdt),
+					fdt_off_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		} else {
+			if (!check_block_(hdrsize, fdt_totalsize(fdt),
+					  fdt_off_dt_struct(fdt),
+					  fdt_size_dt_struct(fdt)))
+				return -FDT_ERR_TRUNCATED;
+		}
+
+		/* Bounds check strings block */
+		if (!check_block_(hdrsize, fdt_totalsize(fdt),
+				  fdt_off_dt_strings(fdt),
+				  fdt_size_dt_strings(fdt)))
+			return -FDT_ERR_TRUNCATED;
+	}
+
 	return 0;
 }
 
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
 {
-	unsigned absoffset = offset + fdt_off_dt_struct(fdt);
+	unsigned int uoffset = offset;
+	unsigned int absoffset = offset + fdt_off_dt_struct(fdt);
 
-	if ((absoffset < offset)
-	    || ((absoffset + len) < absoffset)
-	    || (absoffset + len) > fdt_totalsize(fdt))
+	if (offset < 0)
 		return NULL;
 
-	if (fdt_version(fdt) >= 0x11)
-		if (((offset + len) < offset)
+	if (!can_assume(VALID_INPUT))
+		if ((absoffset < uoffset)
+		    || ((absoffset + len) < absoffset)
+		    || (absoffset + len) > fdt_totalsize(fdt))
+			return NULL;
+
+	if (can_assume(LATEST) || fdt_version(fdt) >= 0x11)
+		if (((uoffset + len) < uoffset)
 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
 			return NULL;
 
-	return _fdt_offset_ptr(fdt, offset);
+	return fdt_offset_ptr_(fdt, offset);
 }
 
 uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
@@ -98,7 +171,7 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 
 	*nextoffset = -FDT_ERR_TRUNCATED;
 	tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
-	if (!tagp)
+	if (!can_assume(VALID_DTB) && !tagp)
 		return FDT_END; /* premature end */
 	tag = fdt32_to_cpu(*tagp);
 	offset += FDT_TAGSIZE;
@@ -110,17 +183,21 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 		do {
 			p = fdt_offset_ptr(fdt, offset++, 1);
 		} while (p && (*p != '\0'));
-		if (!p)
+		if (!can_assume(VALID_DTB) && !p)
 			return FDT_END; /* premature end */
 		break;
 
 	case FDT_PROP:
 		lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp));
-		if (!lenp)
+		if (!can_assume(VALID_DTB) && !lenp)
 			return FDT_END; /* premature end */
 		/* skip-name offset, length and value */
 		offset += sizeof(struct fdt_property) - FDT_TAGSIZE
 			+ fdt32_to_cpu(*lenp);
+		if (!can_assume(LATEST) &&
+		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >= 8 &&
+		    ((offset - fdt32_to_cpu(*lenp)) % 8) != 0)
+			offset += 4;
 		break;
 
 	case FDT_END:
@@ -139,19 +216,25 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
 	return tag;
 }
 
-int _fdt_check_node_offset(const void *fdt, int offset)
+int fdt_check_node_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
 }
 
-int _fdt_check_prop_offset(const void *fdt, int offset)
+int fdt_check_prop_offset_(const void *fdt, int offset)
 {
-	if ((offset < 0) || (offset % FDT_TAGSIZE)
-	    || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP))
+	if (!can_assume(VALID_INPUT)
+	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
+		return -FDT_ERR_BADOFFSET;
+
+	if (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)
 		return -FDT_ERR_BADOFFSET;
 
 	return offset;
@@ -163,7 +246,7 @@ int fdt_next_node(const void *fdt, int offset, int *depth)
 	uint32_t tag;
 
 	if (offset >= 0)
-		if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0)
+		if ((nextoffset = fdt_check_node_offset_(fdt, offset)) < 0)
 			return nextoffset;
 
 	do {
@@ -225,7 +308,7 @@ int fdt_next_subnode(const void *fdt, int offset)
 	return offset;
 }
 
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s)
 {
 	int len = strlen(s) + 1;
 	const char *last = strtab + tabsize - len;
@@ -239,9 +322,12 @@ const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
 
 int fdt_move(const void *fdt, void *buf, int bufsize)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (!can_assume(VALID_INPUT) && bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_totalsize(fdt) > bufsize)
+	if (fdt_totalsize(fdt) > (unsigned int)bufsize)
 		return -FDT_ERR_NOSPACE;
 
 	memmove(buf, fdt, fdt_totalsize(fdt));
diff --git a/xen/common/libfdt/fdt_addresses.c b/xen/common/libfdt/fdt_addresses.c
new file mode 100644
index 0000000..9a82cd0
--- /dev/null
+++ b/xen/common/libfdt/fdt_addresses.c
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
+ * Copyright (C) 2018 embedded brains GmbH
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
+{
+	const fdt32_t *c;
+	uint32_t val;
+	int len;
+
+	c = fdt_getprop(fdt, nodeoffset, name, &len);
+	if (!c)
+		return len;
+
+	if (len != sizeof(*c))
+		return -FDT_ERR_BADNCELLS;
+
+	val = fdt32_to_cpu(*c);
+	if (val > FDT_MAX_NCELLS)
+		return -FDT_ERR_BADNCELLS;
+
+	return (int)val;
+}
+
+int fdt_address_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#address-cells");
+	if (val == 0)
+		return -FDT_ERR_BADNCELLS;
+	if (val == -FDT_ERR_NOTFOUND)
+		return 2;
+	return val;
+}
+
+int fdt_size_cells(const void *fdt, int nodeoffset)
+{
+	int val;
+
+	val = fdt_cells(fdt, nodeoffset, "#size-cells");
+	if (val == -FDT_ERR_NOTFOUND)
+		return 1;
+	return val;
+}
+
+/* This function assumes that [address|size]_cells is 1 or 2 */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size)
+{
+	int addr_cells, size_cells, ret;
+	uint8_t data[sizeof(fdt64_t) * 2], *prop;
+
+	ret = fdt_address_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	addr_cells = ret;
+
+	ret = fdt_size_cells(fdt, parent);
+	if (ret < 0)
+		return ret;
+	size_cells = ret;
+
+	/* check validity of address */
+	prop = data;
+	if (addr_cells == 1) {
+		if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)addr);
+	} else if (addr_cells == 2) {
+		fdt64_st(prop, addr);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	/* check validity of size */
+	prop += addr_cells * sizeof(fdt32_t);
+	if (size_cells == 1) {
+		if (size > UINT32_MAX)
+			return -FDT_ERR_BADVALUE;
+
+		fdt32_st(prop, (uint32_t)size);
+	} else if (size_cells == 2) {
+		fdt64_st(prop, size);
+	} else {
+		return -FDT_ERR_BADNCELLS;
+	}
+
+	return fdt_appendprop(fdt, nodeoffset, name, data,
+			      (addr_cells + size_cells) * sizeof(fdt32_t));
+}
diff --git a/xen/common/libfdt/fdt_check.c b/xen/common/libfdt/fdt_check.c
new file mode 100644
index 0000000..fa410a8
--- /dev/null
+++ b/xen/common/libfdt/fdt_check.c
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+
+#include "libfdt_internal.h"
+
+int fdt_check_full(const void *fdt, size_t bufsize)
+{
+	int err;
+	int num_memrsv;
+	int offset, nextoffset = 0;
+	uint32_t tag;
+	unsigned int depth = 0;
+	const void *prop;
+	const char *propname;
+	bool expect_end = false;
+
+	if (bufsize < FDT_V1_SIZE)
+		return -FDT_ERR_TRUNCATED;
+	if (bufsize < fdt_header_size(fdt))
+		return -FDT_ERR_TRUNCATED;
+	err = fdt_check_header(fdt);
+	if (err != 0)
+		return err;
+	if (bufsize < fdt_totalsize(fdt))
+		return -FDT_ERR_TRUNCATED;
+
+	num_memrsv = fdt_num_mem_rsv(fdt);
+	if (num_memrsv < 0)
+		return num_memrsv;
+
+	while (1) {
+		offset = nextoffset;
+		tag = fdt_next_tag(fdt, offset, &nextoffset);
+
+		if (nextoffset < 0)
+			return nextoffset;
+
+		/* If we see two root nodes, something is wrong */
+		if (expect_end && tag != FDT_END)
+			return -FDT_ERR_BADSTRUCTURE;
+
+		switch (tag) {
+		case FDT_NOP:
+			break;
+
+		case FDT_END:
+			if (depth != 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			return 0;
+
+		case FDT_BEGIN_NODE:
+			depth++;
+			if (depth > INT_MAX)
+				return -FDT_ERR_BADSTRUCTURE;
+
+			/* The root node must have an empty name */
+			if (depth == 1) {
+				const char *name;
+				int len;
+
+				name = fdt_get_name(fdt, offset, &len);
+				if (*name || len)
+					return -FDT_ERR_BADSTRUCTURE;
+			}
+			break;
+
+		case FDT_END_NODE:
+			if (depth == 0)
+				return -FDT_ERR_BADSTRUCTURE;
+			depth--;
+			if (depth == 0)
+				expect_end = true;
+			break;
+
+		case FDT_PROP:
+			prop = fdt_getprop_by_offset(fdt, offset, &propname,
+						     &err);
+			if (!prop)
+				return err;
+			break;
+
+		default:
+			return -FDT_ERR_INTERNAL;
+		}
+	}
+}
diff --git a/xen/common/libfdt/fdt_empty_tree.c b/xen/common/libfdt/fdt_empty_tree.c
index d505611..49d54d4 100644
--- a/xen/common/libfdt/fdt_empty_tree.c
+++ b/xen/common/libfdt/fdt_empty_tree.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2012 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -79,4 +36,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
 
 	return fdt_open_into(buf, buf, bufsize);
 }
-
diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
new file mode 100644
index 0000000..7b95e2b
--- /dev/null
+++ b/xen/common/libfdt/fdt_overlay.c
@@ -0,0 +1,884 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2016 Free Electrons
+ * Copyright (C) 2016 NextThing Co.
+ */
+#include "libfdt_env.h"
+
+#include <fdt.h>
+#include <libfdt.h>
+#include <xen/lib.h>
+
+#include "libfdt_internal.h"
+
+/**
+ * overlay_get_target_phandle - retrieves the target phandle of a fragment
+ * @fdto: pointer to the device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ *
+ * overlay_get_target_phandle() retrieves the target phandle of an
+ * overlay fragment when that fragment uses a phandle (target
+ * property) instead of a path (target-path property).
+ *
+ * returns:
+ *      the phandle pointed by the target property
+ *      0, if the phandle was not found
+ *	-1, if the phandle was malformed
+ */
+static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
+{
+	const fdt32_t *val;
+	int len;
+
+	val = fdt_getprop(fdto, fragment, "target", &len);
+	if (!val)
+		return 0;
+
+	if ((len != sizeof(*val)) || (fdt32_to_cpu(*val) == (uint32_t)-1))
+		return (uint32_t)-1;
+
+	return fdt32_to_cpu(*val);
+}
+
+/**
+ * overlay_get_target - retrieves the offset of a fragment's target
+ * @fdt: Base device tree blob
+ * @fdto: Device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ * @pathp: pointer which receives the path of the target (or NULL)
+ *
+ * overlay_get_target() retrieves the target offset in the base
+ * device tree of a fragment, no matter how the actual targeting is
+ * done (through a phandle or a path)
+ *
+ * returns:
+ *      the targeted node offset in the base device tree
+ *      Negative error code on error
+ */
+static int overlay_get_target(const void *fdt, const void *fdto,
+			      int fragment, char const **pathp)
+{
+	uint32_t phandle;
+	const char *path = NULL;
+	int path_len = 0, ret;
+
+	/* Try first to do a phandle based lookup */
+	phandle = overlay_get_target_phandle(fdto, fragment);
+	if (phandle == (uint32_t)-1)
+		return -FDT_ERR_BADPHANDLE;
+
+	/* no phandle, try path */
+	if (!phandle) {
+		/* And then a path based lookup */
+		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
+		if (path)
+			ret = fdt_path_offset(fdt, path);
+		else
+			ret = path_len;
+	} else
+		ret = fdt_node_offset_by_phandle(fdt, phandle);
+
+	/*
+	* If we haven't found either a target or a
+	* target-path property in a node that contains a
+	* __overlay__ subnode (we wouldn't be called
+	* otherwise), consider it a improperly written
+	* overlay
+	*/
+	if (ret < 0 && path_len == -FDT_ERR_NOTFOUND)
+		ret = -FDT_ERR_BADOVERLAY;
+
+	/* return on error */
+	if (ret < 0)
+		return ret;
+
+	/* return pointer to path (if available) */
+	if (pathp)
+		*pathp = path ? path : NULL;
+
+	return ret;
+}
+
+/**
+ * overlay_phandle_add_offset - Increases a phandle by an offset
+ * @fdt: Base device tree blob
+ * @node: Device tree overlay blob
+ * @name: Name of the property to modify (phandle or linux,phandle)
+ * @delta: offset to apply
+ *
+ * overlay_phandle_add_offset() increments a node phandle by a given
+ * offset.
+ *
+ * returns:
+ *      0 on success.
+ *      Negative error code on error
+ */
+static int overlay_phandle_add_offset(void *fdt, int node,
+				      const char *name, uint32_t delta)
+{
+	const fdt32_t *val;
+	uint32_t adj_val;
+	int len;
+
+	val = fdt_getprop(fdt, node, name, &len);
+	if (!val)
+		return len;
+
+	if (len != sizeof(*val))
+		return -FDT_ERR_BADPHANDLE;
+
+	adj_val = fdt32_to_cpu(*val);
+	if ((adj_val + delta) < adj_val)
+		return -FDT_ERR_NOPHANDLES;
+
+	adj_val += delta;
+	if (adj_val == (uint32_t)-1)
+		return -FDT_ERR_NOPHANDLES;
+
+	return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
+}
+
+/**
+ * overlay_adjust_node_phandles - Offsets the phandles of a node
+ * @fdto: Device tree overlay blob
+ * @node: Offset of the node we want to adjust
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_node_phandles() adds a constant to all the phandles
+ * of a given node. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_node_phandles(void *fdto, int node,
+					uint32_t delta)
+{
+	int child;
+	int ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
+	if (ret && ret != -FDT_ERR_NOTFOUND)
+		return ret;
+
+	fdt_for_each_subnode(child, fdto, node) {
+		ret = overlay_adjust_node_phandles(fdto, child, delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_adjust_local_phandles - Adjust the phandles of a whole overlay
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_adjust_local_phandles() adds a constant to all the
+ * phandles of an overlay. This is mainly use as part of the overlay
+ * application process, when we want to update all the overlay
+ * phandles to not conflict with the overlays of the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
+{
+	/*
+	 * Start adjusting the phandles from the overlay root
+	 */
+	return overlay_adjust_node_phandles(fdto, 0, delta);
+}
+
+/**
+ * overlay_update_local_node_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @tree_node: Node offset of the node to operate on
+ * @fixup_node: Node offset of the matching local fixups node
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_nodes_references() update the phandles
+ * pointing to a node within the device tree overlay by adding a
+ * constant delta.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_node_references(void *fdto,
+						int tree_node,
+						int fixup_node,
+						uint32_t delta)
+{
+	int fixup_prop;
+	int fixup_child;
+	int ret;
+
+	fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
+		const fdt32_t *fixup_val;
+		const char *tree_val;
+		const char *name;
+		int fixup_len;
+		int tree_len;
+		int i;
+
+		fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
+						  &name, &fixup_len);
+		if (!fixup_val)
+			return fixup_len;
+
+		if (fixup_len % sizeof(uint32_t))
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len /= sizeof(uint32_t);
+
+		tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
+		if (!tree_val) {
+			if (tree_len == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_BADOVERLAY;
+
+			return tree_len;
+		}
+
+		for (i = 0; i < fixup_len; i++) {
+			fdt32_t adj_val;
+			uint32_t poffset;
+
+			poffset = fdt32_to_cpu(fixup_val[i]);
+
+			/*
+			 * phandles to fixup can be unaligned.
+			 *
+			 * Use a memcpy for the architectures that do
+			 * not support unaligned accesses.
+			 */
+			memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
+
+			adj_val = cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
+
+			ret = fdt_setprop_inplace_namelen_partial(fdto,
+								  tree_node,
+								  name,
+								  strlen(name),
+								  poffset,
+								  &adj_val,
+								  sizeof(adj_val));
+			if (ret == -FDT_ERR_NOSPACE)
+				return -FDT_ERR_BADOVERLAY;
+
+			if (ret)
+				return ret;
+		}
+	}
+
+	fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
+		const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
+							    NULL);
+		int tree_child;
+
+		tree_child = fdt_subnode_offset(fdto, tree_node,
+						fixup_child_name);
+		if (tree_child == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_BADOVERLAY;
+		if (tree_child < 0)
+			return tree_child;
+
+		ret = overlay_update_local_node_references(fdto,
+							   tree_child,
+							   fixup_child,
+							   delta);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_update_local_references - Adjust the overlay references
+ * @fdto: Device tree overlay blob
+ * @delta: Offset to shift the phandles of
+ *
+ * overlay_update_local_references() update all the phandles pointing
+ * to a node within the device tree overlay by adding a constant
+ * delta to not conflict with the base overlay.
+ *
+ * This is mainly used as part of a device tree application process,
+ * where you want the device tree overlays phandles to not conflict
+ * with the ones from the base device tree before merging them.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_update_local_references(void *fdto, uint32_t delta)
+{
+	int fixups;
+
+	fixups = fdt_path_offset(fdto, "/__local_fixups__");
+	if (fixups < 0) {
+		/* There's no local phandles to adjust, bail out */
+		if (fixups == -FDT_ERR_NOTFOUND)
+			return 0;
+
+		return fixups;
+	}
+
+	/*
+	 * Update our local references from the root of the tree
+	 */
+	return overlay_update_local_node_references(fdto, 0, fixups,
+						    delta);
+}
+
+/**
+ * overlay_fixup_one_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @path: Path to a node holding a phandle in the overlay
+ * @path_len: number of path characters to consider
+ * @name: Name of the property holding the phandle reference in the overlay
+ * @name_len: number of name characters to consider
+ * @poffset: Offset within the overlay property where the phandle is stored
+ * @label: Label of the node referenced by the phandle
+ *
+ * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
+ * a node in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_one_phandle(void *fdt, void *fdto,
+				     int symbols_off,
+				     const char *path, uint32_t path_len,
+				     const char *name, uint32_t name_len,
+				     int poffset, const char *label)
+{
+	const char *symbol_path;
+	uint32_t phandle;
+	fdt32_t phandle_prop;
+	int symbol_off, fixup_off;
+	int prop_len;
+
+	if (symbols_off < 0)
+		return symbols_off;
+
+	symbol_path = fdt_getprop(fdt, symbols_off, label,
+				  &prop_len);
+	if (!symbol_path)
+		return prop_len;
+
+	symbol_off = fdt_path_offset(fdt, symbol_path);
+	if (symbol_off < 0)
+		return symbol_off;
+
+	phandle = fdt_get_phandle(fdt, symbol_off);
+	if (!phandle)
+		return -FDT_ERR_NOTFOUND;
+
+	fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
+	if (fixup_off == -FDT_ERR_NOTFOUND)
+		return -FDT_ERR_BADOVERLAY;
+	if (fixup_off < 0)
+		return fixup_off;
+
+	phandle_prop = cpu_to_fdt32(phandle);
+	return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
+						   name, name_len, poffset,
+						   &phandle_prop,
+						   sizeof(phandle_prop));
+};
+
+/**
+ * overlay_fixup_phandle - Set an overlay phandle to the base one
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ * @symbols_off: Node offset of the symbols node in the base device tree
+ * @property: Property offset in the overlay holding the list of fixups
+ *
+ * overlay_fixup_phandle() resolves all the overlay phandles pointed
+ * to in a __fixups__ property, and updates them to match the phandles
+ * in use in the base device tree.
+ *
+ * This is part of the device tree overlay application process, when
+ * you want all the phandles in the overlay to point to the actual
+ * base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
+				 int property)
+{
+	const char *value;
+	const char *label;
+	int len;
+
+	value = fdt_getprop_by_offset(fdto, property,
+				      &label, &len);
+	if (!value) {
+		if (len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+
+		return len;
+	}
+
+	do {
+		const char *path, *name, *fixup_end;
+		const char *fixup_str = value;
+		uint32_t path_len, name_len;
+		uint32_t fixup_len;
+		char *sep;
+		const char *endptr;
+		int poffset, ret;
+
+		fixup_end = memchr(value, '\0', len);
+		if (!fixup_end)
+			return -FDT_ERR_BADOVERLAY;
+		fixup_len = fixup_end - fixup_str;
+
+		len -= fixup_len + 1;
+		value += fixup_len + 1;
+
+		path = fixup_str;
+		sep = memchr(fixup_str, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		path_len = sep - path;
+		if (path_len == (fixup_len - 1))
+			return -FDT_ERR_BADOVERLAY;
+
+		fixup_len -= path_len + 1;
+		name = sep + 1;
+		sep = memchr(name, ':', fixup_len);
+		if (!sep || *sep != ':')
+			return -FDT_ERR_BADOVERLAY;
+
+		name_len = sep - name;
+		if (!name_len)
+			return -FDT_ERR_BADOVERLAY;
+
+		poffset = simple_strtoul(sep + 1, &endptr, 10);
+		if ((*endptr != '\0') || (endptr <= (sep + 1)))
+			return -FDT_ERR_BADOVERLAY;
+
+		ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
+						path, path_len, name, name_len,
+						poffset, label);
+		if (ret)
+			return ret;
+	} while (len > 0);
+
+	return 0;
+}
+
+/**
+ * overlay_fixup_phandles - Resolve the overlay phandles to the base
+ *                          device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_fixup_phandles() resolves all the overlay phandles pointing
+ * to nodes in the base device tree.
+ *
+ * This is one of the steps of the device tree overlay application
+ * process, when you want all the phandles in the overlay to point to
+ * the actual base dt nodes.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_fixup_phandles(void *fdt, void *fdto)
+{
+	int fixups_off, symbols_off;
+	int property;
+
+	/* We can have overlays without any fixups */
+	fixups_off = fdt_path_offset(fdto, "/__fixups__");
+	if (fixups_off == -FDT_ERR_NOTFOUND)
+		return 0; /* nothing to do */
+	if (fixups_off < 0)
+		return fixups_off;
+
+	/* And base DTs without symbols */
+	symbols_off = fdt_path_offset(fdt, "/__symbols__");
+	if ((symbols_off < 0 && (symbols_off != -FDT_ERR_NOTFOUND)))
+		return symbols_off;
+
+	fdt_for_each_property_offset(property, fdto, fixups_off) {
+		int ret;
+
+		ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_apply_node - Merges a node into the base device tree
+ * @fdt: Base Device Tree blob
+ * @target: Node offset in the base device tree to apply the fragment to
+ * @fdto: Device tree overlay blob
+ * @node: Node offset in the overlay holding the changes to merge
+ *
+ * overlay_apply_node() merges a node into a target base device tree
+ * node pointed.
+ *
+ * This is part of the final step in the device tree overlay
+ * application process, when all the phandles have been adjusted and
+ * resolved and you just have to merge overlay into the base device
+ * tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_apply_node(void *fdt, int target,
+			      void *fdto, int node)
+{
+	int property;
+	int subnode;
+
+	fdt_for_each_property_offset(property, fdto, node) {
+		const char *name;
+		const void *prop;
+		int prop_len;
+		int ret;
+
+		prop = fdt_getprop_by_offset(fdto, property, &name,
+					     &prop_len);
+		if (prop_len == -FDT_ERR_NOTFOUND)
+			return -FDT_ERR_INTERNAL;
+		if (prop_len < 0)
+			return prop_len;
+
+		ret = fdt_setprop(fdt, target, name, prop, prop_len);
+		if (ret)
+			return ret;
+	}
+
+	fdt_for_each_subnode(subnode, fdto, node) {
+		const char *name = fdt_get_name(fdto, subnode, NULL);
+		int nnode;
+		int ret;
+
+		nnode = fdt_add_subnode(fdt, target, name);
+		if (nnode == -FDT_ERR_EXISTS) {
+			nnode = fdt_subnode_offset(fdt, target, name);
+			if (nnode == -FDT_ERR_NOTFOUND)
+				return -FDT_ERR_INTERNAL;
+		}
+
+		if (nnode < 0)
+			return nnode;
+
+		ret = overlay_apply_node(fdt, nnode, fdto, subnode);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * overlay_merge - Merge an overlay into its base device tree
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_merge() merges an overlay into its base device tree.
+ *
+ * This is the next to last step in the device tree overlay application
+ * process, when all the phandles have been adjusted and resolved and
+ * you just have to merge overlay into the base device tree.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_merge(void *fdt, void *fdto)
+{
+	int fragment;
+
+	fdt_for_each_subnode(fragment, fdto, 0) {
+		int overlay;
+		int target;
+		int ret;
+
+		/*
+		 * Each fragments will have an __overlay__ node. If
+		 * they don't, it's not supposed to be merged
+		 */
+		overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (overlay == -FDT_ERR_NOTFOUND)
+			continue;
+
+		if (overlay < 0)
+			return overlay;
+
+		target = overlay_get_target(fdt, fdto, fragment, NULL);
+		if (target < 0)
+			return target;
+
+		ret = overlay_apply_node(fdt, target, fdto, overlay);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+static int get_path_len(const void *fdt, int nodeoffset)
+{
+	int len = 0, namelen;
+	const char *name;
+
+	FDT_RO_PROBE(fdt);
+
+	for (;;) {
+		name = fdt_get_name(fdt, nodeoffset, &namelen);
+		if (!name)
+			return namelen;
+
+		/* root? we're done */
+		if (namelen == 0)
+			break;
+
+		nodeoffset = fdt_parent_offset(fdt, nodeoffset);
+		if (nodeoffset < 0)
+			return nodeoffset;
+		len += namelen + 1;
+	}
+
+	/* in case of root pretend it's "/" */
+	if (len == 0)
+		len++;
+	return len;
+}
+
+/**
+ * overlay_symbol_update - Update the symbols of base tree after a merge
+ * @fdt: Base Device Tree blob
+ * @fdto: Device tree overlay blob
+ *
+ * overlay_symbol_update() updates the symbols of the base tree with the
+ * symbols of the applied overlay
+ *
+ * This is the last step in the device tree overlay application
+ * process, allowing the reference of overlay symbols by subsequent
+ * overlay operations.
+ *
+ * returns:
+ *      0 on success
+ *      Negative error code on failure
+ */
+static int overlay_symbol_update(void *fdt, void *fdto)
+{
+	int root_sym, ov_sym, prop, path_len, fragment, target;
+	int len, frag_name_len, ret, rel_path_len;
+	const char *s, *e;
+	const char *path;
+	const char *name;
+	const char *frag_name;
+	const char *rel_path;
+	const char *target_path;
+	char *buf;
+	void *p;
+
+	ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
+
+	/* if no overlay symbols exist no problem */
+	if (ov_sym < 0)
+		return 0;
+
+	root_sym = fdt_subnode_offset(fdt, 0, "__symbols__");
+
+	/* it no root symbols exist we should create them */
+	if (root_sym == -FDT_ERR_NOTFOUND)
+		root_sym = fdt_add_subnode(fdt, 0, "__symbols__");
+
+	/* any error is fatal now */
+	if (root_sym < 0)
+		return root_sym;
+
+	/* iterate over each overlay symbol */
+	fdt_for_each_property_offset(prop, fdto, ov_sym) {
+		path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
+		if (!path)
+			return path_len;
+
+		/* verify it's a string property (terminated by a single \0) */
+		if (path_len < 1 || memchr(path, '\0', path_len) != &path[path_len - 1])
+			return -FDT_ERR_BADVALUE;
+
+		/* keep end marker to avoid strlen() */
+		e = path + path_len;
+
+		if (*path != '/')
+			return -FDT_ERR_BADVALUE;
+
+		/* get fragment name first */
+		s = strchr(path + 1, '/');
+		if (!s) {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		frag_name = path + 1;
+		frag_name_len = s - path - 1;
+
+		/* verify format; safe since "s" lies in \0 terminated prop */
+		len = sizeof("/__overlay__/") - 1;
+		if ((e - s) > len && (memcmp(s, "/__overlay__/", len) == 0)) {
+			/* /<fragment-name>/__overlay__/<relative-subnode-path> */
+			rel_path = s + len;
+			rel_path_len = e - rel_path - 1;
+		} else if ((e - s) == len
+			   && (memcmp(s, "/__overlay__", len - 1) == 0)) {
+			/* /<fragment-name>/__overlay__ */
+			rel_path = "";
+			rel_path_len = 0;
+		} else {
+			/* Symbol refers to something that won't end
+			 * up in the target tree */
+			continue;
+		}
+
+		/* find the fragment index in which the symbol lies */
+		ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
+					       frag_name_len);
+		/* not found? */
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+		fragment = ret;
+
+		/* an __overlay__ subnode must exist */
+		ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
+		if (ret < 0)
+			return -FDT_ERR_BADOVERLAY;
+
+		/* get the target of the fragment */
+		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+		if (ret < 0)
+			return ret;
+		target = ret;
+
+		/* if we have a target path use */
+		if (!target_path) {
+			ret = get_path_len(fdt, target);
+			if (ret < 0)
+				return ret;
+			len = ret;
+		} else {
+			len = strlen(target_path);
+		}
+
+		ret = fdt_setprop_placeholder(fdt, root_sym, name,
+				len + (len > 1) + rel_path_len + 1, &p);
+		if (ret < 0)
+			return ret;
+
+		if (!target_path) {
+			/* again in case setprop_placeholder changed it */
+			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+			if (ret < 0)
+				return ret;
+			target = ret;
+		}
+
+		buf = p;
+		if (len > 1) { /* target is not root */
+			if (!target_path) {
+				ret = fdt_get_path(fdt, target, buf, len + 1);
+				if (ret < 0)
+					return ret;
+			} else
+				memcpy(buf, target_path, len + 1);
+
+		} else
+			len--;
+
+		buf[len] = '/';
+		memcpy(buf + len + 1, rel_path, rel_path_len);
+		buf[len + 1 + rel_path_len] = '\0';
+	}
+
+	return 0;
+}
+
+int fdt_overlay_apply(void *fdt, void *fdto)
+{
+	uint32_t delta;
+	int ret;
+
+	FDT_RO_PROBE(fdt);
+	FDT_RO_PROBE(fdto);
+
+	ret = fdt_find_max_phandle(fdt, &delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_adjust_local_phandles(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_update_local_references(fdto, delta);
+	if (ret)
+		goto err;
+
+	ret = overlay_fixup_phandles(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_merge(fdt, fdto);
+	if (ret)
+		goto err;
+
+	ret = overlay_symbol_update(fdt, fdto);
+	if (ret)
+		goto err;
+
+	/*
+	 * The overlay has been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	return 0;
+
+err:
+	/*
+	 * The overlay might have been damaged, erase its magic.
+	 */
+	fdt_set_magic(fdto, ~0);
+
+	/*
+	 * The base device tree might have been damaged, erase its
+	 * magic.
+	 */
+	fdt_set_magic(fdt, ~0);
+
+	return ret;
+}
diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
index 36f9b48..17584da 100644
--- a/xen/common/libfdt/fdt_ro.c
+++ b/xen/common/libfdt/fdt_ro.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,12 +10,13 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_nodename_eq(const void *fdt, int offset,
+static int fdt_nodename_eq_(const void *fdt, int offset,
 			    const char *s, int len)
 {
-	const char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);
+	int olen;
+	const char *p = fdt_get_name(fdt, offset, &olen);
 
-	if (! p)
+	if (!p || olen < len)
 		/* short match */
 		return 0;
 
@@ -73,37 +31,174 @@ static int _fdt_nodename_eq(const void *fdt, int offset,
 		return 0;
 }
 
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
+{
+	int32_t totalsize;
+	uint32_t absoffset;
+	size_t len;
+	int err;
+	const char *s, *n;
+
+	if (can_assume(VALID_INPUT)) {
+		s = (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+
+		if (lenp)
+			*lenp = strlen(s);
+		return s;
+	}
+	totalsize = fdt_ro_probe_(fdt);
+	err = totalsize;
+	if (totalsize < 0)
+		goto fail;
+
+	err = -FDT_ERR_BADOFFSET;
+	absoffset = stroffset + fdt_off_dt_strings(fdt);
+	if (absoffset >= (unsigned)totalsize)
+		goto fail;
+	len = totalsize - absoffset;
+
+	if (fdt_magic(fdt) == FDT_MAGIC) {
+		if (stroffset < 0)
+			goto fail;
+		if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
+			if ((unsigned)stroffset >= fdt_size_dt_strings(fdt))
+				goto fail;
+			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
+				len = fdt_size_dt_strings(fdt) - stroffset;
+		}
+	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
+		unsigned int sw_stroffset = -stroffset;
+
+		if ((stroffset >= 0) ||
+		    (sw_stroffset > fdt_size_dt_strings(fdt)))
+			goto fail;
+		if (sw_stroffset < len)
+			len = sw_stroffset;
+	} else {
+		err = -FDT_ERR_INTERNAL;
+		goto fail;
+	}
+
+	s = (const char *)fdt + absoffset;
+	n = memchr(s, '\0', len);
+	if (!n) {
+		/* missing terminating NULL */
+		err = -FDT_ERR_TRUNCATED;
+		goto fail;
+	}
+
+	if (lenp)
+		*lenp = n - s;
+	return s;
+
+fail:
+	if (lenp)
+		*lenp = err;
+	return NULL;
+}
+
 const char *fdt_string(const void *fdt, int stroffset)
 {
-	return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
+	return fdt_get_string(fdt, stroffset, NULL);
 }
 
-static int _fdt_string_eq(const void *fdt, int stroffset,
+static int fdt_string_eq_(const void *fdt, int stroffset,
 			  const char *s, int len)
 {
-	const char *p = fdt_string(fdt, stroffset);
+	int slen;
+	const char *p = fdt_get_string(fdt, stroffset, &slen);
+
+	return p && (slen == len) && (memcmp(p, s, len) == 0);
+}
+
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max = 0;
+	int offset = -1;
+
+	while (true) {
+		uint32_t value;
+
+		offset = fdt_next_node(fdt, offset, NULL);
+		if (offset < 0) {
+			if (offset == -FDT_ERR_NOTFOUND)
+				break;
+
+			return offset;
+		}
+
+		value = fdt_get_phandle(fdt, offset);
+
+		if (value > max)
+			max = value;
+	}
+
+	if (phandle)
+		*phandle = max;
+
+	return 0;
+}
+
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
+{
+	uint32_t max;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &max);
+	if (err < 0)
+		return err;
+
+	if (max == FDT_MAX_PHANDLE)
+		return -FDT_ERR_NOPHANDLES;
+
+	if (phandle)
+		*phandle = max + 1;
+
+	return 0;
+}
 
-	return (strlen(p) == len) && (memcmp(p, s, len) == 0);
+static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int n)
+{
+	unsigned int offset = n * sizeof(struct fdt_reserve_entry);
+	unsigned int absoffset = fdt_off_mem_rsvmap(fdt) + offset;
+
+	if (!can_assume(VALID_INPUT)) {
+		if (absoffset < fdt_off_mem_rsvmap(fdt))
+			return NULL;
+		if (absoffset > fdt_totalsize(fdt) -
+		    sizeof(struct fdt_reserve_entry))
+			return NULL;
+	}
+	return fdt_mem_rsv_(fdt, n);
 }
 
 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size)
 {
-	FDT_CHECK_HEADER(fdt);
-	*address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address);
-	*size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size);
+	const struct fdt_reserve_entry *re;
+
+	FDT_RO_PROBE(fdt);
+	re = fdt_mem_rsv(fdt, n);
+	if (!can_assume(VALID_INPUT) && !re)
+		return -FDT_ERR_BADOFFSET;
+
+	*address = fdt64_ld_(&re->address);
+	*size = fdt64_ld_(&re->size);
 	return 0;
 }
 
 int fdt_num_mem_rsv(const void *fdt)
 {
-	int i = 0;
+	int i;
+	const struct fdt_reserve_entry *re;
 
-	while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0)
-		i++;
-	return i;
+	for (i = 0; (re = fdt_mem_rsv(fdt, i)) != NULL; i++) {
+		if (fdt64_ld_(&re->size) == 0)
+			return i;
+	}
+	return -FDT_ERR_TRUNCATED;
 }
 
-static int _nextprop(const void *fdt, int offset)
+static int nextprop_(const void *fdt, int offset)
 {
 	uint32_t tag;
 	int nextoffset;
@@ -132,13 +227,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int offset,
 {
 	int depth;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	for (depth = 0;
 	     (offset >= 0) && (depth >= 0);
 	     offset = fdt_next_node(fdt, offset, &depth))
 		if ((depth == 1)
-		    && _fdt_nodename_eq(fdt, offset, name, namelen))
+		    && fdt_nodename_eq_(fdt, offset, name, namelen))
 			return offset;
 
 	if (depth < 0)
@@ -152,17 +247,17 @@ int fdt_subnode_offset(const void *fdt, int parentoffset,
 	return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name));
 }
 
-int fdt_path_offset(const void *fdt, const char *path)
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen)
 {
-	const char *end = path + strlen(path);
+	const char *end = path + namelen;
 	const char *p = path;
 	int offset = 0;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* see if we have an alias */
 	if (*path != '/') {
-		const char *q = strchr(path, '/');
+		const char *q = memchr(path, '/', end - p);
 
 		if (!q)
 			q = end;
@@ -175,14 +270,15 @@ int fdt_path_offset(const void *fdt, const char *path)
 		p = q;
 	}
 
-	while (*p) {
+	while (p < end) {
 		const char *q;
 
-		while (*p == '/')
+		while (*p == '/') {
 			p++;
-		if (! *p)
-			return offset;
-		q = strchr(p, '/');
+			if (p == end)
+				return offset;
+		}
+		q = memchr(p, '/', end - p);
 		if (! q)
 			q = end;
 
@@ -196,19 +292,42 @@ int fdt_path_offset(const void *fdt, const char *path)
 	return offset;
 }
 
+int fdt_path_offset(const void *fdt, const char *path)
+{
+	return fdt_path_offset_namelen(fdt, path, strlen(path));
+}
+
 const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
 {
-	const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset);
+	const struct fdt_node_header *nh = fdt_offset_ptr_(fdt, nodeoffset);
+	const char *nameptr;
 	int err;
 
-	if (((err = fdt_check_header(fdt)) != 0)
-	    || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0))
+	if (((err = fdt_ro_probe_(fdt)) < 0)
+	    || ((err = fdt_check_node_offset_(fdt, nodeoffset)) < 0))
+			goto fail;
+
+	nameptr = nh->name;
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		/*
+		 * For old FDT versions, match the naming conventions of V16:
+		 * give only the leaf name (after all /). The actual tree
+		 * contents are loosely checked.
+		 */
+		const char *leaf;
+		leaf = strrchr(nameptr, '/');
+		if (leaf == NULL) {
+			err = -FDT_ERR_BADSTRUCTURE;
 			goto fail;
+		}
+		nameptr = leaf+1;
+	}
 
 	if (len)
-		*len = strlen(nh->name);
+		*len = strlen(nameptr);
 
-	return nh->name;
+	return nameptr;
 
  fail:
 	if (len)
@@ -220,58 +339,81 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset)
 {
 	int offset;
 
-	if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((offset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
 int fdt_next_property_offset(const void *fdt, int offset)
 {
-	if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0)
+	if ((offset = fdt_check_prop_offset_(fdt, offset)) < 0)
 		return offset;
 
-	return _nextprop(fdt, offset);
+	return nextprop_(fdt, offset);
 }
 
-const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
-						      int offset,
-						      int *lenp)
+static const struct fdt_property *fdt_get_property_by_offset_(const void *fdt,
+						              int offset,
+						              int *lenp)
 {
 	int err;
 	const struct fdt_property *prop;
 
-	if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) {
+	if (!can_assume(VALID_INPUT) &&
+	    (err = fdt_check_prop_offset_(fdt, offset)) < 0) {
 		if (lenp)
 			*lenp = err;
 		return NULL;
 	}
 
-	prop = _fdt_offset_ptr(fdt, offset);
+	prop = fdt_offset_ptr_(fdt, offset);
 
 	if (lenp)
-		*lenp = fdt32_to_cpu(prop->len);
+		*lenp = fdt32_ld_(&prop->len);
 
 	return prop;
 }
 
-const struct fdt_property *fdt_get_property_namelen(const void *fdt,
-						    int offset,
-						    const char *name,
-						    int namelen, int *lenp)
+const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
+						      int offset,
+						      int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_by_offset_(fdt, offset, lenp);
+}
+
+static const struct fdt_property *fdt_get_property_namelen_(const void *fdt,
+						            int offset,
+						            const char *name,
+						            int namelen,
+							    int *lenp,
+							    int *poffset)
 {
 	for (offset = fdt_first_property_offset(fdt, offset);
 	     (offset >= 0);
 	     (offset = fdt_next_property_offset(fdt, offset))) {
 		const struct fdt_property *prop;
 
-		if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) {
+		prop = fdt_get_property_by_offset_(fdt, offset, lenp);
+		if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
 			offset = -FDT_ERR_INTERNAL;
 			break;
 		}
-		if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff),
-				   name, namelen))
+		if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
+				   name, namelen)) {
+			if (poffset)
+				*poffset = offset;
 			return prop;
+		}
 	}
 
 	if (lenp)
@@ -279,6 +421,25 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 	return NULL;
 }
 
+
+const struct fdt_property *fdt_get_property_namelen(const void *fdt,
+						    int offset,
+						    const char *name,
+						    int namelen, int *lenp)
+{
+	/* Prior to version 16, properties may need realignment
+	 * and this API does not work. fdt_getprop_*() will, however. */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+		if (lenp)
+			*lenp = -FDT_ERR_BADVERSION;
+		return NULL;
+	}
+
+	return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
+					 NULL);
+}
+
+
 const struct fdt_property *fdt_get_property(const void *fdt,
 					    int nodeoffset,
 					    const char *name, int *lenp)
@@ -290,12 +451,18 @@ const struct fdt_property *fdt_get_property(const void *fdt,
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp)
 {
+	int poffset;
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp);
-	if (! prop)
+	prop = fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp,
+					 &poffset);
+	if (!prop)
 		return NULL;
 
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -304,11 +471,31 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
 {
 	const struct fdt_property *prop;
 
-	prop = fdt_get_property_by_offset(fdt, offset, lenp);
+	prop = fdt_get_property_by_offset_(fdt, offset, lenp);
 	if (!prop)
 		return NULL;
-	if (namep)
-		*namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
+	if (namep) {
+		const char *name;
+		int namelen;
+
+		if (!can_assume(VALID_INPUT)) {
+			name = fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
+					      &namelen);
+			if (!name) {
+				if (lenp)
+					*lenp = namelen;
+				return NULL;
+			}
+			*namep = name;
+		} else {
+			*namep = fdt_string(fdt, fdt32_ld_(&prop->nameoff));
+		}
+	}
+
+	/* Handle realignment */
+	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
+		return prop->data + 4;
 	return prop->data;
 }
 
@@ -332,7 +519,7 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)
 			return 0;
 	}
 
-	return fdt32_to_cpu(*php);
+	return fdt32_ld_(php);
 }
 
 const char *fdt_get_alias_namelen(const void *fdt,
@@ -358,7 +545,7 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen)
 	int offset, depth, namelen;
 	const char *name;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (buflen < 2)
 		return -FDT_ERR_NOSPACE;
@@ -410,7 +597,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 	int offset, depth;
 	int supernodeoffset = -FDT_ERR_INTERNAL;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	if (supernodedepth < 0)
 		return -FDT_ERR_NOTFOUND;
@@ -432,10 +619,12 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
 		}
 	}
 
-	if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
-		return -FDT_ERR_BADOFFSET;
-	else if (offset == -FDT_ERR_BADOFFSET)
-		return -FDT_ERR_BADSTRUCTURE;
+	if (!can_assume(VALID_INPUT)) {
+		if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
+			return -FDT_ERR_BADOFFSET;
+		else if (offset == -FDT_ERR_BADOFFSET)
+			return -FDT_ERR_BADSTRUCTURE;
+	}
 
 	return offset; /* error from fdt_next_node() */
 }
@@ -447,7 +636,8 @@ int fdt_node_depth(const void *fdt, int nodeoffset)
 
 	err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
 	if (err)
-		return (err < 0) ? err : -FDT_ERR_INTERNAL;
+		return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
+			-FDT_ERR_INTERNAL;
 	return nodedepth;
 }
 
@@ -469,7 +659,7 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 	const void *val;
 	int len;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_getprop(), then if that didn't
@@ -492,10 +682,10 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
 {
 	int offset;
 
-	if ((phandle == 0) || (phandle == -1))
+	if ((phandle == 0) || (phandle == ~0U))
 		return -FDT_ERR_BADPHANDLE;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we
 	 * potentially scan each property of a node in
@@ -530,6 +720,106 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
 	return 0;
 }
 
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
+{
+	const char *list, *end;
+	int length, count = 0;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		list += length;
+		count++;
+	}
+
+	return count;
+}
+
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string)
+{
+	int length, len, idx = 0;
+	const char *list, *end;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list)
+		return length;
+
+	len = strlen(string) + 1;
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end)
+			return -FDT_ERR_BADVALUE;
+
+		if (length == len && memcmp(list, string, length) == 0)
+			return idx;
+
+		list += length;
+		idx++;
+	}
+
+	return -FDT_ERR_NOTFOUND;
+}
+
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int idx,
+			       int *lenp)
+{
+	const char *list, *end;
+	int length;
+
+	list = fdt_getprop(fdt, nodeoffset, property, &length);
+	if (!list) {
+		if (lenp)
+			*lenp = length;
+
+		return NULL;
+	}
+
+	end = list + length;
+
+	while (list < end) {
+		length = strnlen(list, end - list) + 1;
+
+		/* Abort if the last string isn't properly NUL-terminated. */
+		if (list + length > end) {
+			if (lenp)
+				*lenp = -FDT_ERR_BADVALUE;
+
+			return NULL;
+		}
+
+		if (idx == 0) {
+			if (lenp)
+				*lenp = length - 1;
+
+			return list;
+		}
+
+		list += length;
+		idx--;
+	}
+
+	if (lenp)
+		*lenp = -FDT_ERR_NOTFOUND;
+
+	return NULL;
+}
+
 int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 			      const char *compatible)
 {
@@ -539,10 +829,8 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
 	prop = fdt_getprop(fdt, nodeoffset, "compatible", &len);
 	if (!prop)
 		return len;
-	if (fdt_stringlist_contains(prop, len, compatible))
-		return 0;
-	else
-		return 1;
+
+	return !fdt_stringlist_contains(prop, len, compatible);
 }
 
 int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
@@ -550,7 +838,7 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
 {
 	int offset, err;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	/* FIXME: The algorithm here is pretty horrible: we scan each
 	 * property of a node in fdt_node_check_compatible(), then if
diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
index 8b8cd25..3621d36 100644
--- a/xen/common/libfdt/fdt_rw.c
+++ b/xen/common/libfdt/fdt_rw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,8 +10,8 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_blocks_misordered(const void *fdt,
-			      int mem_rsv_size, int struct_size)
+static int fdt_blocks_misordered_(const void *fdt,
+				  int mem_rsv_size, int struct_size)
 {
 	return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8))
 		|| (fdt_off_dt_struct(fdt) <
@@ -65,40 +22,44 @@ static int _fdt_blocks_misordered(const void *fdt,
 		    (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
 }
 
-static int _fdt_rw_check_header(void *fdt)
+static int fdt_rw_probe_(void *fdt)
 {
-	FDT_CHECK_HEADER(fdt);
+	if (can_assume(VALID_DTB))
+		return 0;
+	FDT_RO_PROBE(fdt);
 
-	if (fdt_version(fdt) < 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
 		return -FDT_ERR_BADVERSION;
-	if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
+	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
 				   fdt_size_dt_struct(fdt)))
 		return -FDT_ERR_BADLAYOUT;
-	if (fdt_version(fdt) > 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
 		fdt_set_version(fdt, 17);
 
 	return 0;
 }
 
-#define FDT_RW_CHECK_HEADER(fdt) \
+#define FDT_RW_PROBE(fdt) \
 	{ \
-		int err; \
-		if ((err = _fdt_rw_check_header(fdt)) != 0) \
-			return err; \
+		int err_; \
+		if ((err_ = fdt_rw_probe_(fdt)) != 0) \
+			return err_; \
 	}
 
-static inline unsigned int _fdt_data_size(void *fdt)
+static inline unsigned int fdt_data_size_(void *fdt)
 {
 	return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 }
 
-static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
+static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int newlen)
 {
 	char *p = splicepoint;
-	unsigned int dsize = _fdt_data_size(fdt);
+	unsigned int dsize = fdt_data_size_(fdt);
 	size_t soff = p - (char *)fdt;
 
-	if (oldlen < 0 || soff + oldlen < soff || soff + oldlen > dsize)
+	if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
+		return -FDT_ERR_BADOFFSET;
+	if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
 		return -FDT_ERR_BADOFFSET;
 	if (dsize - oldlen + newlen > fdt_totalsize(fdt))
 		return -FDT_ERR_NOSPACE;
@@ -106,12 +67,12 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
 	return 0;
 }
 
-static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
+static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
 			       int oldn, int newn)
 {
 	int delta = (newn - oldn) * sizeof(*p);
 	int err;
-	err = _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
+	err = fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
 	if (err)
 		return err;
 	fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
@@ -119,13 +80,13 @@ static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
 	return 0;
 }
 
-static int _fdt_splice_struct(void *fdt, void *p,
+static int fdt_splice_struct_(void *fdt, void *p,
 			      int oldlen, int newlen)
 {
 	int delta = newlen - oldlen;
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, oldlen, newlen)))
+	if ((err = fdt_splice_(fdt, p, oldlen, newlen)))
 		return err;
 
 	fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
@@ -133,20 +94,37 @@ static int _fdt_splice_struct(void *fdt, void *p,
 	return 0;
 }
 
-static int _fdt_splice_string(void *fdt, int newlen)
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
+	int newlen = strlen(s) + 1;
+
+	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
+}
+
+static int fdt_splice_string_(void *fdt, int newlen)
 {
 	void *p = (char *)fdt
 		+ fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
 	int err;
 
-	if ((err = _fdt_splice(fdt, p, 0, newlen)))
+	if ((err = fdt_splice_(fdt, p, 0, newlen)))
 		return err;
 
 	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+/**
+ * fdt_find_add_string_() - Find or allocate a string
+ *
+ * @fdt: pointer to the device tree to check/adjust
+ * @s: string to find/add
+ * @allocated: Set to 0 if the string was found, 1 if not found and so
+ *	allocated. Ignored if can_assume(NO_ROLLBACK)
+ * @return offset of string in the string table (whether found or added)
+ */
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
 {
 	char *strtab = (char *)fdt + fdt_off_dt_strings(fdt);
 	const char *p;
@@ -154,16 +132,22 @@ static int _fdt_find_add_string(void *fdt, const char *s)
 	int len = strlen(s) + 1;
 	int err;
 
-	p = _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s);
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 0;
+
+	p = fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
 	if (p)
 		/* found it */
 		return (p - strtab);
 
 	new = strtab + fdt_size_dt_strings(fdt);
-	err = _fdt_splice_string(fdt, len);
+	err = fdt_splice_string_(fdt, len);
 	if (err)
 		return err;
 
+	if (!can_assume(NO_ROLLBACK))
+		*allocated = 1;
+
 	memcpy(new, s, len);
 	return (new - strtab);
 }
@@ -173,10 +157,10 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	re = _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt));
-	err = _fdt_splice_mem_rsv(fdt, re, 0, 1);
+	re = fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
+	err = fdt_splice_mem_rsv_(fdt, re, 0, 1);
 	if (err)
 		return err;
 
@@ -187,31 +171,27 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
 
 int fdt_del_mem_rsv(void *fdt, int n)
 {
-	struct fdt_reserve_entry *re = _fdt_mem_rsv_w(fdt, n);
-	int err;
+	struct fdt_reserve_entry *re = fdt_mem_rsv_w_(fdt, n);
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	if (n >= fdt_num_mem_rsv(fdt))
 		return -FDT_ERR_NOTFOUND;
 
-	err = _fdt_splice_mem_rsv(fdt, re, 1, 0);
-	if (err)
-		return err;
-	return 0;
+	return fdt_splice_mem_rsv_(fdt, re, 1, 0);
 }
 
-static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_resize_property_(void *fdt, int nodeoffset, const char *name,
 				int len, struct fdt_property **prop)
 {
 	int oldlen;
 	int err;
 
 	*prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
-	if (! (*prop))
+	if (!*prop)
 		return oldlen;
 
-	if ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
+	if ((err = fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
 				      FDT_TAGALIGN(len))))
 		return err;
 
@@ -219,27 +199,32 @@ static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
 	return 0;
 }
 
-static int _fdt_add_property(void *fdt, int nodeoffset, const char *name,
+static int fdt_add_property_(void *fdt, int nodeoffset, const char *name,
 			     int len, struct fdt_property **prop)
 {
 	int proplen;
 	int nextoffset;
 	int namestroff;
 	int err;
+	int allocated;
 
-	if ((nextoffset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
+	if ((nextoffset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
 		return nextoffset;
 
-	namestroff = _fdt_find_add_string(fdt, name);
+	namestroff = fdt_find_add_string_(fdt, name, &allocated);
 	if (namestroff < 0)
 		return namestroff;
 
-	*prop = _fdt_offset_ptr_w(fdt, nextoffset);
+	*prop = fdt_offset_ptr_w_(fdt, nextoffset);
 	proplen = sizeof(**prop) + FDT_TAGALIGN(len);
 
-	err = _fdt_splice_struct(fdt, *prop, 0, proplen);
-	if (err)
+	err = fdt_splice_struct_(fdt, *prop, 0, proplen);
+	if (err) {
+		/* Delete the string if we failed to add it */
+		if (!can_assume(NO_ROLLBACK) && allocated)
+			fdt_del_last_string_(fdt, name);
 		return err;
+	}
 
 	(*prop)->tag = cpu_to_fdt32(FDT_PROP);
 	(*prop)->nameoff = cpu_to_fdt32(namestroff);
@@ -253,7 +238,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	int oldlen, newlen;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	namep = (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
 	if (!namep)
@@ -261,7 +246,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 
 	newlen = strlen(name);
 
-	err = _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1),
+	err = fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
 				 FDT_TAGALIGN(newlen+1));
 	if (err)
 		return err;
@@ -270,21 +255,36 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
 	return 0;
 }
 
-int fdt_setprop(void *fdt, int nodeoffset, const char *name,
-		const void *val, int len)
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data)
 {
 	struct fdt_property *prop;
 	int err;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	err = _fdt_resize_property(fdt, nodeoffset, name, len, &prop);
+	err = fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
 	if (err == -FDT_ERR_NOTFOUND)
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
+	if (err)
+		return err;
+
+	*prop_data = prop->data;
+	return 0;
+}
+
+int fdt_setprop(void *fdt, int nodeoffset, const char *name,
+		const void *val, int len)
+{
+	void *prop_data;
+	int err;
+
+	err = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data);
 	if (err)
 		return err;
 
-	memcpy(prop->data, val, len);
+	if (len)
+		memcpy(prop_data, val, len);
 	return 0;
 }
 
@@ -294,12 +294,12 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 	struct fdt_property *prop;
 	int err, oldlen, newlen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
 	if (prop) {
 		newlen = len + oldlen;
-		err = _fdt_splice_struct(fdt, prop->data,
+		err = fdt_splice_struct_(fdt, prop->data,
 					 FDT_TAGALIGN(oldlen),
 					 FDT_TAGALIGN(newlen));
 		if (err)
@@ -307,7 +307,7 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
 		prop->len = cpu_to_fdt32(newlen);
 		memcpy(prop->data + oldlen, val, len);
 	} else {
-		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
+		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
 		if (err)
 			return err;
 		memcpy(prop->data, val, len);
@@ -320,14 +320,14 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name)
 	struct fdt_property *prop;
 	int len, proplen;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
 	proplen = sizeof(*prop) + FDT_TAGALIGN(len);
-	return _fdt_splice_struct(fdt, prop, proplen, 0);
+	return fdt_splice_struct_(fdt, prop, proplen, 0);
 }
 
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
@@ -340,7 +340,7 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 	uint32_t tag;
 	fdt32_t *endtag;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	offset = fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
 	if (offset >= 0)
@@ -349,16 +349,19 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 		return offset;
 
 	/* Try to place the new node after the parent's properties */
-	fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
+	tag = fdt_next_tag(fdt, parentoffset, &nextoffset);
+	/* the fdt_subnode_offset_namelen() should ensure this never hits */
+	if (!can_assume(LIBFDT_FLAWLESS) && (tag != FDT_BEGIN_NODE))
+		return -FDT_ERR_INTERNAL;
 	do {
 		offset = nextoffset;
 		tag = fdt_next_tag(fdt, offset, &nextoffset);
 	} while ((tag == FDT_PROP) || (tag == FDT_NOP));
 
-	nh = _fdt_offset_ptr_w(fdt, offset);
+	nh = fdt_offset_ptr_w_(fdt, offset);
 	nodelen = sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
 
-	err = _fdt_splice_struct(fdt, nh, 0, nodelen);
+	err = fdt_splice_struct_(fdt, nh, 0, nodelen);
 	if (err)
 		return err;
 
@@ -380,18 +383,20 @@ int fdt_del_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset),
+	return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
 				  endoffset - nodeoffset, 0);
 }
 
-static void _fdt_packblocks(const char *old, char *new,
-			    int mem_rsv_size, int struct_size)
+static void fdt_packblocks_(const char *old, char *new,
+			    int mem_rsv_size,
+			    int struct_size,
+			    int strings_size)
 {
 	int mem_rsv_off, struct_off, strings_off;
 
@@ -406,8 +411,7 @@ static void _fdt_packblocks(const char *old, char *new,
 	fdt_set_off_dt_struct(new, struct_off);
 	fdt_set_size_dt_struct(new, struct_size);
 
-	memmove(new + strings_off, old + fdt_off_dt_strings(old),
-		fdt_size_dt_strings(old));
+	memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size);
 	fdt_set_off_dt_strings(new, strings_off);
 	fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
 }
@@ -421,22 +425,25 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 	const char *fdtend = fdtstart + fdt_totalsize(fdt);
 	char *tmp;
 
-	FDT_CHECK_HEADER(fdt);
+	FDT_RO_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
 
-	if (fdt_version(fdt) >= 17) {
+	if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
 		struct_size = fdt_size_dt_struct(fdt);
-	} else {
+	} else if (fdt_version(fdt) == 16) {
 		struct_size = 0;
 		while (fdt_next_tag(fdt, struct_size, &struct_size) != FDT_END)
 			;
 		if (struct_size < 0)
 			return struct_size;
+	} else {
+		return -FDT_ERR_BADVERSION;
 	}
 
-	if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) {
+	if (can_assume(LIBFDT_ORDER) ||
+	    !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
 		/* no further work necessary */
 		err = fdt_move(fdt, buf, bufsize);
 		if (err)
@@ -464,7 +471,8 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
 			return -FDT_ERR_NOSPACE;
 	}
 
-	_fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size);
+	fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
+			fdt_size_dt_strings(fdt));
 	memmove(buf, tmp, newsize);
 
 	fdt_set_magic(buf, FDT_MAGIC);
@@ -480,12 +488,13 @@ int fdt_pack(void *fdt)
 {
 	int mem_rsv_size;
 
-	FDT_RW_CHECK_HEADER(fdt);
+	FDT_RW_PROBE(fdt);
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
-	_fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt));
-	fdt_set_totalsize(fdt, _fdt_data_size(fdt));
+	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
+			fdt_size_dt_strings(fdt));
+	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
 
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_strerror.c b/xen/common/libfdt/fdt_strerror.c
index 8d0289c..b435693 100644
--- a/xen/common/libfdt/fdt_strerror.c
+++ b/xen/common/libfdt/fdt_strerror.c
@@ -1,49 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
@@ -67,6 +25,7 @@ static struct fdt_errtabent fdt_errtable[] = {
 
 	FDT_ERRTABENT(FDT_ERR_BADOFFSET),
 	FDT_ERRTABENT(FDT_ERR_BADPATH),
+	FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
 	FDT_ERRTABENT(FDT_ERR_BADSTATE),
 
 	FDT_ERRTABENT(FDT_ERR_TRUNCATED),
@@ -74,8 +33,14 @@ static struct fdt_errtabent fdt_errtable[] = {
 	FDT_ERRTABENT(FDT_ERR_BADVERSION),
 	FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
 	FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
+	FDT_ERRTABENT(FDT_ERR_INTERNAL),
+	FDT_ERRTABENT(FDT_ERR_BADNCELLS),
+	FDT_ERRTABENT(FDT_ERR_BADVALUE),
+	FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
+	FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
+	FDT_ERRTABENT(FDT_ERR_BADFLAGS),
 };
-#define FDT_ERRTABSIZE	(sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
+#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
 
 const char *fdt_strerror(int errval)
 {
@@ -83,7 +48,7 @@ const char *fdt_strerror(int errval)
 		return "<valid offset/length>";
 	else if (errval == 0)
 		return "<no error>";
-	else if (errval > -FDT_ERRTABSIZE) {
+	else if (-errval < FDT_ERRTABSIZE) {
 		const char *s = fdt_errtable[-errval].str;
 
 		if (s)
diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
index c7d93d3..4c569ee 100644
--- a/xen/common/libfdt/fdt_sw.c
+++ b/xen/common/libfdt/fdt_sw.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,25 +10,91 @@
 
 #include "libfdt_internal.h"
 
-static int _fdt_sw_check_header(void *fdt)
+static int fdt_sw_probe_(void *fdt)
+{
+	if (!can_assume(VALID_INPUT)) {
+		if (fdt_magic(fdt) == FDT_MAGIC)
+			return -FDT_ERR_BADSTATE;
+		else if (fdt_magic(fdt) != FDT_SW_MAGIC)
+			return -FDT_ERR_BADMAGIC;
+	}
+
+	return 0;
+}
+
+#define FDT_SW_PROBE(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'memrsv' state:	Initial state after fdt_create()
+ *
+ * Allowed functions:
+ *	fdt_add_reservemap_entry()
+ *	fdt_finish_reservemap()		[moves to 'struct' state]
+ */
+static int fdt_sw_probe_memrsv_(void *fdt)
+{
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) != 0)
+		return -FDT_ERR_BADSTATE;
+	return 0;
+}
+
+#define FDT_SW_PROBE_MEMRSV(fdt) \
+	{ \
+		int err; \
+		if ((err = fdt_sw_probe_memrsv_(fdt)) != 0) \
+			return err; \
+	}
+
+/* 'struct' state:	Enter this state after fdt_finish_reservemap()
+ *
+ * Allowed functions:
+ *	fdt_begin_node()
+ *	fdt_end_node()
+ *	fdt_property*()
+ *	fdt_finish()			[moves to 'complete' state]
+ */
+static int fdt_sw_probe_struct_(void *fdt)
 {
-	if (fdt_magic(fdt) != FDT_SW_MAGIC)
-		return -FDT_ERR_BADMAGIC;
-	/* FIXME: should check more details about the header state */
+	int err = fdt_sw_probe_(fdt);
+	if (err)
+		return err;
+
+	if (!can_assume(VALID_INPUT) &&
+	    fdt_off_dt_strings(fdt) != fdt_totalsize(fdt))
+		return -FDT_ERR_BADSTATE;
 	return 0;
 }
 
-#define FDT_SW_CHECK_HEADER(fdt) \
+#define FDT_SW_PROBE_STRUCT(fdt) \
 	{ \
 		int err; \
-		if ((err = _fdt_sw_check_header(fdt)) != 0) \
+		if ((err = fdt_sw_probe_struct_(fdt)) != 0) \
 			return err; \
 	}
 
-static void *_fdt_grab_space(void *fdt, size_t len)
+static inline uint32_t sw_flags(void *fdt)
 {
-	int offset = fdt_size_dt_struct(fdt);
-	int spaceleft;
+	/* assert: (fdt_magic(fdt) == FDT_SW_MAGIC) */
+	return fdt_last_comp_version(fdt);
+}
+
+/* 'complete' state:	Enter this state after fdt_finish()
+ *
+ * Allowed functions: none
+ */
+
+static void *fdt_grab_space_(void *fdt, size_t len)
+{
+	unsigned int offset = fdt_size_dt_struct(fdt);
+	unsigned int spaceleft;
 
 	spaceleft = fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
 		- fdt_size_dt_strings(fdt);
@@ -80,27 +103,84 @@ static void *_fdt_grab_space(void *fdt, size_t len)
 		return NULL;
 
 	fdt_set_size_dt_struct(fdt, offset + len);
-	return _fdt_offset_ptr_w(fdt, offset);
+	return fdt_offset_ptr_w_(fdt, offset);
 }
 
-int fdt_create(void *buf, int bufsize)
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
 {
+	const int hdrsize = FDT_ALIGN(sizeof(struct fdt_header),
+				      sizeof(struct fdt_reserve_entry));
 	void *fdt = buf;
 
-	if (bufsize < sizeof(struct fdt_header))
+	if (bufsize < hdrsize)
 		return -FDT_ERR_NOSPACE;
 
+	if (flags & ~FDT_CREATE_FLAGS_ALL)
+		return -FDT_ERR_BADFLAGS;
+
 	memset(buf, 0, bufsize);
 
+	/*
+	 * magic and last_comp_version keep intermediate state during the fdt
+	 * creation process, which is replaced with the proper FDT format by
+	 * fdt_finish().
+	 *
+	 * flags should be accessed with sw_flags().
+	 */
 	fdt_set_magic(fdt, FDT_SW_MAGIC);
 	fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
-	fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION);
+	fdt_set_last_comp_version(fdt, flags);
+
 	fdt_set_totalsize(fdt,  bufsize);
 
-	fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header),
-					      sizeof(struct fdt_reserve_entry)));
+	fdt_set_off_mem_rsvmap(fdt, hdrsize);
 	fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
-	fdt_set_off_dt_strings(fdt, bufsize);
+	fdt_set_off_dt_strings(fdt, 0);
+
+	return 0;
+}
+
+int fdt_create(void *buf, int bufsize)
+{
+	return fdt_create_with_flags(buf, bufsize, 0);
+}
+
+int fdt_resize(void *fdt, void *buf, int bufsize)
+{
+	size_t headsize, tailsize;
+	char *oldtail, *newtail;
+
+	FDT_SW_PROBE(fdt);
+
+	if (bufsize < 0)
+		return -FDT_ERR_NOSPACE;
+
+	headsize = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	tailsize = fdt_size_dt_strings(fdt);
+
+	if (!can_assume(VALID_DTB) &&
+	    headsize + tailsize > fdt_totalsize(fdt))
+		return -FDT_ERR_INTERNAL;
+
+	if ((headsize + tailsize) > (unsigned)bufsize)
+		return -FDT_ERR_NOSPACE;
+
+	oldtail = (char *)fdt + fdt_totalsize(fdt) - tailsize;
+	newtail = (char *)buf + bufsize - tailsize;
+
+	/* Two cases to avoid clobbering data if the old and new
+	 * buffers partially overlap */
+	if (buf <= fdt) {
+		memmove(buf, fdt, headsize);
+		memmove(newtail, oldtail, tailsize);
+	} else {
+		memmove(newtail, oldtail, tailsize);
+		memmove(buf, fdt, headsize);
+	}
+
+	fdt_set_totalsize(buf, bufsize);
+	if (fdt_off_dt_strings(buf))
+		fdt_set_off_dt_strings(buf, bufsize);
 
 	return 0;
 }
@@ -110,10 +190,7 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 	struct fdt_reserve_entry *re;
 	int offset;
 
-	FDT_SW_CHECK_HEADER(fdt);
-
-	if (fdt_size_dt_struct(fdt))
-		return -FDT_ERR_BADSTATE;
+	FDT_SW_PROBE_MEMRSV(fdt);
 
 	offset = fdt_off_dt_struct(fdt);
 	if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
@@ -130,17 +207,24 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
 
 int fdt_finish_reservemap(void *fdt)
 {
-	return fdt_add_reservemap_entry(fdt, 0, 0);
+	int err = fdt_add_reservemap_entry(fdt, 0, 0);
+
+	if (err)
+		return err;
+
+	fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
+	return 0;
 }
 
 int fdt_begin_node(void *fdt, const char *name)
 {
 	struct fdt_node_header *nh;
-	int namelen = strlen(name) + 1;
+	int namelen;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nh = _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
+	namelen = strlen(name) + 1;
+	nh = fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
 	if (! nh)
 		return -FDT_ERR_NOSPACE;
 
@@ -153,9 +237,9 @@ int fdt_end_node(void *fdt)
 {
 	fdt32_t *en;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	en = _fdt_grab_space(fdt, FDT_TAGSIZE);
+	en = fdt_grab_space_(fdt, FDT_TAGSIZE);
 	if (! en)
 		return -FDT_ERR_NOSPACE;
 
@@ -163,48 +247,90 @@ int fdt_end_node(void *fdt)
 	return 0;
 }
 
-static int _fdt_find_add_string(void *fdt, const char *s)
+static int fdt_add_string_(void *fdt, const char *s)
 {
 	char *strtab = (char *)fdt + fdt_totalsize(fdt);
-	const char *p;
+	unsigned int strtabsize = fdt_size_dt_strings(fdt);
+	unsigned int len = strlen(s) + 1;
+	unsigned int struct_top, offset;
+
+	offset = strtabsize + len;
+	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
+	if (fdt_totalsize(fdt) - offset < struct_top)
+		return 0; /* no more room :( */
+
+	memcpy(strtab - offset, s, len);
+	fdt_set_size_dt_strings(fdt, strtabsize + len);
+	return -offset;
+}
+
+/* Must only be used to roll back in case of error */
+static void fdt_del_last_string_(void *fdt, const char *s)
+{
 	int strtabsize = fdt_size_dt_strings(fdt);
 	int len = strlen(s) + 1;
-	int struct_top, offset;
 
-	p = _fdt_find_string(strtab - strtabsize, strtabsize, s);
+	fdt_set_size_dt_strings(fdt, strtabsize - len);
+}
+
+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
+{
+	char *strtab = (char *)fdt + fdt_totalsize(fdt);
+	int strtabsize = fdt_size_dt_strings(fdt);
+	const char *p;
+
+	*allocated = 0;
+
+	p = fdt_find_string_(strtab - strtabsize, strtabsize, s);
 	if (p)
 		return p - strtab;
 
-	/* Add it */
-	offset = -strtabsize - len;
-	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
-	if (fdt_totalsize(fdt) + offset < struct_top)
-		return 0; /* no more room :( */
+	*allocated = 1;
 
-	memcpy(strtab + offset, s, len);
-	fdt_set_size_dt_strings(fdt, strtabsize + len);
-	return offset;
+	return fdt_add_string_(fdt, s);
 }
 
-int fdt_property(void *fdt, const char *name, const void *val, int len)
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)
 {
 	struct fdt_property *prop;
 	int nameoff;
+	int allocated;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
-	nameoff = _fdt_find_add_string(fdt, name);
+	/* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
+	if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
+		allocated = 1;
+		nameoff = fdt_add_string_(fdt, name);
+	} else {
+		nameoff = fdt_find_add_string_(fdt, name, &allocated);
+	}
 	if (nameoff == 0)
 		return -FDT_ERR_NOSPACE;
 
-	prop = _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
-	if (! prop)
+	prop = fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
+	if (! prop) {
+		if (allocated)
+			fdt_del_last_string_(fdt, name);
 		return -FDT_ERR_NOSPACE;
+	}
 
 	prop->tag = cpu_to_fdt32(FDT_PROP);
 	prop->nameoff = cpu_to_fdt32(nameoff);
 	prop->len = cpu_to_fdt32(len);
-	memcpy(prop->data, val, len);
+	*valp = prop->data;
+	return 0;
+}
+
+int fdt_property(void *fdt, const char *name, const void *val, int len)
+{
+	void *ptr;
+	int ret;
+
+	ret = fdt_property_placeholder(fdt, name, len, &ptr);
+	if (ret)
+		return ret;
+	memcpy(ptr, val, len);
 	return 0;
 }
 
@@ -216,10 +342,10 @@ int fdt_finish(void *fdt)
 	uint32_t tag;
 	int offset, nextoffset;
 
-	FDT_SW_CHECK_HEADER(fdt);
+	FDT_SW_PROBE_STRUCT(fdt);
 
 	/* Add terminator */
-	end = _fdt_grab_space(fdt, sizeof(*end));
+	end = fdt_grab_space_(fdt, sizeof(*end));
 	if (! end)
 		return -FDT_ERR_NOSPACE;
 	*end = cpu_to_fdt32(FDT_END);
@@ -235,7 +361,7 @@ int fdt_finish(void *fdt)
 	while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {
 		if (tag == FDT_PROP) {
 			struct fdt_property *prop =
-				_fdt_offset_ptr_w(fdt, offset);
+				fdt_offset_ptr_w_(fdt, offset);
 			int nameoff;
 
 			nameoff = fdt32_to_cpu(prop->nameoff);
@@ -249,6 +375,10 @@ int fdt_finish(void *fdt)
 
 	/* Finally, adjust the header */
 	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
+
+	/* And fix up fields that were keeping intermediate state. */
+	fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
 	fdt_set_magic(fdt, FDT_MAGIC);
+
 	return 0;
 }
diff --git a/xen/common/libfdt/fdt_wip.c b/xen/common/libfdt/fdt_wip.c
index 2d1cac0..c2d7566 100644
--- a/xen/common/libfdt/fdt_wip.c
+++ b/xen/common/libfdt/fdt_wip.c
@@ -1,50 +1,7 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "libfdt_env.h"
 
@@ -53,24 +10,45 @@
 
 #include "libfdt_internal.h"
 
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len)
+{
+	void *propval;
+	int proplen;
+
+	propval = fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
+					&proplen);
+	if (!propval)
+		return proplen;
+
+	if ((unsigned)proplen < (len + idx))
+		return -FDT_ERR_NOSPACE;
+
+	memcpy((char *)propval + idx, val, len);
+	return 0;
+}
+
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len)
 {
-	void *propval;
+	const void *propval;
 	int proplen;
 
-	propval = fdt_getprop_w(fdt, nodeoffset, name, &proplen);
-	if (! propval)
+	propval = fdt_getprop(fdt, nodeoffset, name, &proplen);
+	if (!propval)
 		return proplen;
 
 	if (proplen != len)
 		return -FDT_ERR_NOSPACE;
 
-	memcpy(propval, val, len);
-	return 0;
+	return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
+						   strlen(name), 0,
+						   val, len);
 }
 
-static void _fdt_nop_region(void *start, int len)
+static void fdt_nop_region_(void *start, int len)
 {
 	fdt32_t *p;
 
@@ -84,15 +62,15 @@ int fdt_nop_property(void *fdt, int nodeoffset, const char *name)
 	int len;
 
 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-	if (! prop)
+	if (!prop)
 		return len;
 
-	_fdt_nop_region(prop, len + sizeof(*prop));
+	fdt_nop_region_(prop, len + sizeof(*prop));
 
 	return 0;
 }
 
-int _fdt_node_end_offset(void *fdt, int offset)
+int fdt_node_end_offset_(void *fdt, int offset)
 {
 	int depth = 0;
 
@@ -106,11 +84,11 @@ int fdt_nop_node(void *fdt, int nodeoffset)
 {
 	int endoffset;
 
-	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
+	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
 	if (endoffset < 0)
 		return endoffset;
 
-	_fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0),
+	fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
 			endoffset - nodeoffset);
 	return 0;
 }
diff --git a/xen/common/libfdt/libfdt_internal.h b/xen/common/libfdt/libfdt_internal.h
index d50c4e1..16bda19 100644
--- a/xen/common/libfdt/libfdt_internal.h
+++ b/xen/common/libfdt/libfdt_internal.h
@@ -1,81 +1,39 @@
-#ifndef _LIBFDT_INTERNAL_H
-#define _LIBFDT_INTERNAL_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_INTERNAL_H
+#define LIBFDT_INTERNAL_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include <fdt.h>
 
 #define FDT_ALIGN(x, a)		(((x) + (a) - 1) & ~((a) - 1))
 #define FDT_TAGALIGN(x)		(FDT_ALIGN((x), FDT_TAGSIZE))
 
-#define FDT_CHECK_HEADER(fdt) \
-	{ \
-		int err; \
-		if ((err = fdt_check_header(fdt)) != 0) \
-			return err; \
+int32_t fdt_ro_probe_(const void *fdt);
+#define FDT_RO_PROBE(fdt)					\
+	{							\
+		int32_t totalsize_;				\
+		if ((totalsize_ = fdt_ro_probe_(fdt)) < 0)	\
+			return totalsize_;			\
 	}
 
-int _fdt_check_node_offset(const void *fdt, int offset);
-int _fdt_check_prop_offset(const void *fdt, int offset);
-const char *_fdt_find_string(const char *strtab, int tabsize, const char *s);
-int _fdt_node_end_offset(void *fdt, int nodeoffset);
+int fdt_check_node_offset_(const void *fdt, int offset);
+int fdt_check_prop_offset_(const void *fdt, int offset);
+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s);
+int fdt_node_end_offset_(void *fdt, int nodeoffset);
 
-static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
+static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
 {
 	return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
 }
 
-static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
+static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
 {
-	return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
+	return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
 }
 
-static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int n)
+static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *fdt, int n)
 {
 	const struct fdt_reserve_entry *rsv_table =
 		(const struct fdt_reserve_entry *)
@@ -83,11 +41,152 @@ static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int
 
 	return rsv_table + n;
 }
-static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
+static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
+{
+	return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
+}
+
+/*
+ * Internal helpers to access tructural elements of the device tree
+ * blob (rather than for exaple reading integers from within property
+ * values).  We assume that we are either given a naturally aligned
+ * address for the platform or if we are not, we are on a platform
+ * where unaligned memory reads will be handled in a graceful manner.
+ * If not the external helpers fdtXX_ld() from libfdt.h can be used
+ * instead.
+ */
+static inline uint32_t fdt32_ld_(const fdt32_t *p)
 {
-	return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
+	return fdt32_to_cpu(*p);
+}
+
+static inline uint64_t fdt64_ld_(const fdt64_t *p)
+{
+	return fdt64_to_cpu(*p);
 }
 
 #define FDT_SW_MAGIC		(~FDT_MAGIC)
 
-#endif /* _LIBFDT_INTERNAL_H */
+/**********************************************************************/
+/* Checking controls                                                  */
+/**********************************************************************/
+
+#ifndef FDT_ASSUME_MASK
+#define FDT_ASSUME_MASK 0
+#endif
+
+/*
+ * Defines assumptions which can be enabled. Each of these can be enabled
+ * individually. For maximum safety, don't enable any assumptions!
+ *
+ * For minimal code size and no safety, use ASSUME_PERFECT at your own risk.
+ * You should have another method of validating the device tree, such as a
+ * signature or hash check before using libfdt.
+ *
+ * For situations where security is not a concern it may be safe to enable
+ * ASSUME_SANE.
+ */
+enum {
+	/*
+	 * This does essentially no checks. Only the latest device-tree
+	 * version is correctly handled. Inconsistencies or errors in the device
+	 * tree may cause undefined behaviour or crashes. Invalid parameters
+	 * passed to libfdt may do the same.
+	 *
+	 * If an error occurs when modifying the tree it may leave the tree in
+	 * an intermediate (but valid) state. As an example, adding a property
+	 * where there is insufficient space may result in the property name
+	 * being added to the string table even though the property itself is
+	 * not added to the struct section.
+	 *
+	 * Only use this if you have a fully validated device tree with
+	 * the latest supported version and wish to minimise code size.
+	 */
+	ASSUME_PERFECT		= 0xff,
+
+	/*
+	 * This assumes that the device tree is sane. i.e. header metadata
+	 * and basic hierarchy are correct.
+	 *
+	 * With this assumption enabled, normal device trees produced by libfdt
+	 * and the compiler should be handled safely. Malicious device trees and
+	 * complete garbage may cause libfdt to behave badly or crash. Truncated
+	 * device trees (e.g. those only partially loaded) can also cause
+	 * problems.
+	 *
+	 * Note: Only checks that relate exclusively to the device tree itself
+	 * (not the parameters passed to libfdt) are disabled by this
+	 * assumption. This includes checking headers, tags and the like.
+	 */
+	ASSUME_VALID_DTB	= 1 << 0,
+
+	/*
+	 * This builds on ASSUME_VALID_DTB and further assumes that libfdt
+	 * functions are called with valid parameters, i.e. not trigger
+	 * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
+	 * extensive checking of parameters and the device tree, making various
+	 * assumptions about correctness.
+	 *
+	 * It doesn't make sense to enable this assumption unless
+	 * ASSUME_VALID_DTB is also enabled.
+	 */
+	ASSUME_VALID_INPUT	= 1 << 1,
+
+	/*
+	 * This disables checks for device-tree version and removes all code
+	 * which handles older versions.
+	 *
+	 * Only enable this if you know you have a device tree with the latest
+	 * version.
+	 */
+	ASSUME_LATEST		= 1 << 2,
+
+	/*
+	 * This assumes that it is OK for a failed addition to the device tree,
+	 * due to lack of space or some other problem, to skip any rollback
+	 * steps (such as dropping the property name from the string table).
+	 * This is safe to enable in most circumstances, even though it may
+	 * leave the tree in a sub-optimal state.
+	 */
+	ASSUME_NO_ROLLBACK	= 1 << 3,
+
+	/*
+	 * This assumes that the device tree components appear in a 'convenient'
+	 * order, i.e. the memory reservation block first, then the structure
+	 * block and finally the string block.
+	 *
+	 * This order is not specified by the device-tree specification,
+	 * but is expected by libfdt. The device-tree compiler always created
+	 * device trees with this order.
+	 *
+	 * This assumption disables a check in fdt_open_into() and removes the
+	 * ability to fix the problem there. This is safe if you know that the
+	 * device tree is correctly ordered. See fdt_blocks_misordered_().
+	 */
+	ASSUME_LIBFDT_ORDER	= 1 << 4,
+
+	/*
+	 * This assumes that libfdt itself does not have any internal bugs. It
+	 * drops certain checks that should never be needed unless libfdt has an
+	 * undiscovered bug.
+	 *
+	 * This can generally be considered safe to enable.
+	 */
+	ASSUME_LIBFDT_FLAWLESS	= 1 << 5,
+};
+
+/**
+ * can_assume_() - check if a particular assumption is enabled
+ *
+ * @mask: Mask to check (ASSUME_...)
+ * @return true if that assumption is enabled, else false
+ */
+static inline bool can_assume_(int mask)
+{
+	return FDT_ASSUME_MASK & mask;
+}
+
+/** helper macros for checking assumptions */
+#define can_assume(_assume)	can_assume_(ASSUME_ ## _assume)
+
+#endif /* LIBFDT_INTERNAL_H */
diff --git a/xen/common/libfdt/version.lds b/xen/common/libfdt/version.lds
index 80b322b..7ab85f1 100644
--- a/xen/common/libfdt/version.lds
+++ b/xen/common/libfdt/version.lds
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
 LIBFDT_1.2 {
 	global:
 		fdt_next_node;
@@ -8,6 +9,7 @@ LIBFDT_1.2 {
 		fdt_get_mem_rsv;
 		fdt_subnode_offset_namelen;
 		fdt_subnode_offset;
+		fdt_path_offset_namelen;
 		fdt_path_offset;
 		fdt_get_name;
 		fdt_get_property_namelen;
@@ -18,6 +20,7 @@ LIBFDT_1.2 {
 		fdt_get_alias_namelen;
 		fdt_get_alias;
 		fdt_get_path;
+                fdt_header_size;
 		fdt_supernode_atdepth_offset;
 		fdt_node_depth;
 		fdt_parent_offset;
@@ -54,7 +57,26 @@ LIBFDT_1.2 {
 		fdt_get_property_by_offset;
 		fdt_getprop_by_offset;
 		fdt_next_property_offset;
-
+		fdt_first_subnode;
+		fdt_next_subnode;
+		fdt_address_cells;
+		fdt_size_cells;
+		fdt_stringlist_contains;
+		fdt_stringlist_count;
+		fdt_stringlist_search;
+		fdt_stringlist_get;
+		fdt_resize;
+		fdt_overlay_apply;
+		fdt_get_string;
+		fdt_find_max_phandle;
+		fdt_generate_phandle;
+		fdt_check_full;
+		fdt_setprop_placeholder;
+		fdt_property_placeholder;
+		fdt_header_size_;
+		fdt_appendprop_addrrange;
+		fdt_setprop_inplace_namelen_partial;
+		fdt_create_with_flags;
 	local:
 		*;
 };
diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
index f460b0d..f2e6880 100644
--- a/xen/include/xen/libfdt/fdt.h
+++ b/xen/include/xen/libfdt/fdt.h
@@ -1,53 +1,10 @@
-#ifndef _FDT_H
-#define _FDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef FDT_H
+#define FDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #ifndef __ASSEMBLY__
@@ -106,4 +63,4 @@ struct fdt_property {
 #define FDT_V16_SIZE	FDT_V3_SIZE
 #define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(fdt32_t))
 
-#endif /* _FDT_H */
+#endif /* FDT_H */
diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
index 7c75688..c71689e 100644
--- a/xen/include/xen/libfdt/libfdt.h
+++ b/xen/include/xen/libfdt/libfdt.h
@@ -1,65 +1,27 @@
-#ifndef _LIBFDT_H
-#define _LIBFDT_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_H
+#define LIBFDT_H
 /*
  * libfdt - Flat Device Tree manipulation
  * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * libfdt is dual licensed: you can use it either under the terms of
- * the GPL, or the BSD license, at your option.
- *
- *  a) This library is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This library is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public
- *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
- *
- * Alternatively,
- *
- *  b) Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *     1. Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *     2. Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <xen/libfdt/libfdt_env.h>
 #include <xen/libfdt/fdt.h>
 
-#define FDT_FIRST_SUPPORTED_VERSION	0x10
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FDT_FIRST_SUPPORTED_VERSION	0x02
+#define FDT_LAST_COMPATIBLE_VERSION 0x10
 #define FDT_LAST_SUPPORTED_VERSION	0x11
 
 /* Error codes: informative error codes */
 #define FDT_ERR_NOTFOUND	1
 	/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
 #define FDT_ERR_EXISTS		2
-	/* FDT_ERR_EXISTS: Attemped to create a node or property which
+	/* FDT_ERR_EXISTS: Attempted to create a node or property which
 	 * already exists */
 #define FDT_ERR_NOSPACE		3
 	/* FDT_ERR_NOSPACE: Operation needed to expand the device
@@ -77,8 +39,10 @@
 	 * (e.g. missing a leading / for a function which requires an
 	 * absolute path) */
 #define FDT_ERR_BADPHANDLE	6
-	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle
-	 * value.  phandle values of 0 and -1 are not permitted. */
+	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
+	 * This can be caused either by an invalid phandle property
+	 * length, or the phandle value was either 0 or -1, which are
+	 * not permitted. */
 #define FDT_ERR_BADSTATE	7
 	/* FDT_ERR_BADSTATE: Function was passed an incomplete device
 	 * tree created by the sequential-write functions, which is
@@ -86,8 +50,9 @@
 
 /* Error codes: codes for bad device tree blobs */
 #define FDT_ERR_TRUNCATED	8
-	/* FDT_ERR_TRUNCATED: Structure block of the given device tree
-	 * ends without an FDT_END tag. */
+	/* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
+	 * terminated (overflows, goes outside allowed bounds, or
+	 * isn't properly terminated).  */
 #define FDT_ERR_BADMAGIC	9
 	/* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
 	 * device tree at all - it is missing the flattened device
@@ -114,13 +79,46 @@
 	 * Should never be returned, if it is, it indicates a bug in
 	 * libfdt itself. */
 
-#define FDT_ERR_MAX		13
+/* Errors in device tree content */
+#define FDT_ERR_BADNCELLS	14
+	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
+	 * or similar property with a bad format or value */
+
+#define FDT_ERR_BADVALUE	15
+	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
+	 * value. For example: a property expected to contain a string list
+	 * is not NUL-terminated within the length of its value. */
+
+#define FDT_ERR_BADOVERLAY	16
+	/* FDT_ERR_BADOVERLAY: The device tree overlay, while
+	 * correctly structured, cannot be applied due to some
+	 * unexpected or missing value, property or node. */
+
+#define FDT_ERR_NOPHANDLES	17
+	/* FDT_ERR_NOPHANDLES: The device tree doesn't have any
+	 * phandle available anymore without causing an overflow */
+
+#define FDT_ERR_BADFLAGS	18
+	/* FDT_ERR_BADFLAGS: The function was passed a flags field that
+	 * contains invalid flags or an invalid combination of flags. */
+
+#define FDT_ERR_ALIGNMENT	19
+	/* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
+	 * aligned. */
+
+#define FDT_ERR_MAX		19
+
+/* constants */
+#define FDT_MAX_PHANDLE 0xfffffffe
+	/* Valid values for phandles range from 1 to 2^32-2. */
 
 /**********************************************************************/
 /* Low-level functions (you probably don't need these)                */
 /**********************************************************************/
 
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen);
+#endif
 static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 {
 	return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
@@ -128,6 +126,59 @@ static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
 
 uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
 
+/*
+ * External helpers to access words from a device tree blob. They're built
+ * to work even with unaligned pointers on platforms (such as ARMv5) that don't
+ * like unaligned loads and stores.
+ */
+static inline uint32_t fdt32_ld(const fdt32_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint32_t)bp[0] << 24)
+		| ((uint32_t)bp[1] << 16)
+		| ((uint32_t)bp[2] << 8)
+		| bp[3];
+}
+
+static inline void fdt32_st(void *property, uint32_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 24;
+	bp[1] = (value >> 16) & 0xff;
+	bp[2] = (value >> 8) & 0xff;
+	bp[3] = value & 0xff;
+}
+
+static inline uint64_t fdt64_ld(const fdt64_t *p)
+{
+	const uint8_t *bp = (const uint8_t *)p;
+
+	return ((uint64_t)bp[0] << 56)
+		| ((uint64_t)bp[1] << 48)
+		| ((uint64_t)bp[2] << 40)
+		| ((uint64_t)bp[3] << 32)
+		| ((uint64_t)bp[4] << 24)
+		| ((uint64_t)bp[5] << 16)
+		| ((uint64_t)bp[6] << 8)
+		| bp[7];
+}
+
+static inline void fdt64_st(void *property, uint64_t value)
+{
+	uint8_t *bp = (uint8_t *)property;
+
+	bp[0] = value >> 56;
+	bp[1] = (value >> 48) & 0xff;
+	bp[2] = (value >> 40) & 0xff;
+	bp[3] = (value >> 32) & 0xff;
+	bp[4] = (value >> 24) & 0xff;
+	bp[5] = (value >> 16) & 0xff;
+	bp[6] = (value >> 8) & 0xff;
+	bp[7] = value & 0xff;
+}
+
 /**********************************************************************/
 /* Traversal functions                                                */
 /**********************************************************************/
@@ -136,74 +187,118 @@ int fdt_next_node(const void *fdt, int offset, int *depth);
 
 /**
  * fdt_first_subnode() - get offset of first direct subnode
- *
  * @fdt:	FDT blob
  * @offset:	Offset of node to check
- * @return offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
+ *
+ * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
  */
 int fdt_first_subnode(const void *fdt, int offset);
 
 /**
  * fdt_next_subnode() - get offset of next direct subnode
+ * @fdt:	FDT blob
+ * @offset:	Offset of previous subnode
  *
  * After first calling fdt_first_subnode(), call this function repeatedly to
  * get direct subnodes of a parent node.
  *
- * @fdt:	FDT blob
- * @offset:	Offset of previous subnode
- * @return offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
- * subnodes
+ * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
+ *         subnodes
  */
 int fdt_next_subnode(const void *fdt, int offset);
 
+/**
+ * fdt_for_each_subnode - iterate over all subnodes of a parent
+ *
+ * @node:	child node (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @parent:	parent node (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_subnode(node, fdt, parent) {
+ *		Use node
+ *		...
+ *	}
+ *
+ *	if ((node < 0) && (node != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and @node is used as
+ * iterator in the loop. The parent variable be constant or even a
+ * literal.
+ */
+#define fdt_for_each_subnode(node, fdt, parent)		\
+	for (node = fdt_first_subnode(fdt, parent);	\
+	     node >= 0;					\
+	     node = fdt_next_subnode(fdt, node))
+
 /**********************************************************************/
 /* General functions                                                  */
 /**********************************************************************/
-
 #define fdt_get_header(fdt, field) \
-	(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))
-#define fdt_magic(fdt) 			(fdt_get_header(fdt, magic))
+	(fdt32_ld(&((const struct fdt_header *)(fdt))->field))
+#define fdt_magic(fdt)			(fdt_get_header(fdt, magic))
 #define fdt_totalsize(fdt)		(fdt_get_header(fdt, totalsize))
 #define fdt_off_dt_struct(fdt)		(fdt_get_header(fdt, off_dt_struct))
 #define fdt_off_dt_strings(fdt)		(fdt_get_header(fdt, off_dt_strings))
 #define fdt_off_mem_rsvmap(fdt)		(fdt_get_header(fdt, off_mem_rsvmap))
 #define fdt_version(fdt)		(fdt_get_header(fdt, version))
-#define fdt_last_comp_version(fdt) 	(fdt_get_header(fdt, last_comp_version))
-#define fdt_boot_cpuid_phys(fdt) 	(fdt_get_header(fdt, boot_cpuid_phys))
-#define fdt_size_dt_strings(fdt) 	(fdt_get_header(fdt, size_dt_strings))
+#define fdt_last_comp_version(fdt)	(fdt_get_header(fdt, last_comp_version))
+#define fdt_boot_cpuid_phys(fdt)	(fdt_get_header(fdt, boot_cpuid_phys))
+#define fdt_size_dt_strings(fdt)	(fdt_get_header(fdt, size_dt_strings))
 #define fdt_size_dt_struct(fdt)		(fdt_get_header(fdt, size_dt_struct))
 
-#define __fdt_set_hdr(name) \
+#define fdt_set_hdr_(name) \
 	static inline void fdt_set_##name(void *fdt, uint32_t val) \
 	{ \
-		struct fdt_header *fdth = (struct fdt_header*)fdt; \
+		struct fdt_header *fdth = (struct fdt_header *)fdt; \
 		fdth->name = cpu_to_fdt32(val); \
 	}
-__fdt_set_hdr(magic);
-__fdt_set_hdr(totalsize);
-__fdt_set_hdr(off_dt_struct);
-__fdt_set_hdr(off_dt_strings);
-__fdt_set_hdr(off_mem_rsvmap);
-__fdt_set_hdr(version);
-__fdt_set_hdr(last_comp_version);
-__fdt_set_hdr(boot_cpuid_phys);
-__fdt_set_hdr(size_dt_strings);
-__fdt_set_hdr(size_dt_struct);
-#undef __fdt_set_hdr
-
-/**
- * fdt_check_header - sanity check a device tree or possible device tree
+fdt_set_hdr_(magic);
+fdt_set_hdr_(totalsize);
+fdt_set_hdr_(off_dt_struct);
+fdt_set_hdr_(off_dt_strings);
+fdt_set_hdr_(off_mem_rsvmap);
+fdt_set_hdr_(version);
+fdt_set_hdr_(last_comp_version);
+fdt_set_hdr_(boot_cpuid_phys);
+fdt_set_hdr_(size_dt_strings);
+fdt_set_hdr_(size_dt_struct);
+#undef fdt_set_hdr_
+
+/**
+ * fdt_header_size - return the size of the tree's header
+ * @fdt: pointer to a flattened device tree
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size(const void *fdt);
+
+/**
+ * fdt_header_size_ - internal function to get header size from a version number
+ * @version: devicetree version number
+ *
+ * Return: size of DTB header in bytes
+ */
+size_t fdt_header_size_(uint32_t version);
+
+/**
+ * fdt_check_header - sanity check a device tree header
  * @fdt: pointer to data which might be a flattened device tree
  *
  * fdt_check_header() checks that the given buffer contains what
- * appears to be a flattened device tree with sane information in its
- * header.
+ * appears to be a flattened device tree, and that the header contains
+ * valid information (to the extent that can be determined from the
+ * header alone).
  *
  * returns:
  *     0, if the buffer appears to contain a valid device tree
  *     -FDT_ERR_BADMAGIC,
  *     -FDT_ERR_BADVERSION,
- *     -FDT_ERR_BADSTATE, standard meanings, as above
+ *     -FDT_ERR_BADSTATE,
+ *     -FDT_ERR_TRUNCATED, standard meanings, as above
  */
 int fdt_check_header(const void *fdt);
 
@@ -232,6 +327,24 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
 /* Read-only functions                                                */
 /**********************************************************************/
 
+int fdt_check_full(const void *fdt, size_t bufsize);
+
+/**
+ * fdt_get_string - retrieve a string from the strings block of a device tree
+ * @fdt: pointer to the device tree blob
+ * @stroffset: offset of the string within the strings block (native endian)
+ * @lenp: optional pointer to return the string's length
+ *
+ * fdt_get_string() retrieves a pointer to a single string from the
+ * strings block of the device tree blob at fdt, and optionally also
+ * returns the string's length in *lenp.
+ *
+ * returns:
+ *     a pointer to the string, on success
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
+ */
+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
+
 /**
  * fdt_string - retrieve a string from the strings block of a device tree
  * @fdt: pointer to the device tree blob
@@ -242,11 +355,66 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
  *
  * returns:
  *     a pointer to the string, on success
- *     NULL, if stroffset is out of bounds
+ *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
  */
 const char *fdt_string(const void *fdt, int stroffset);
 
 /**
+ * fdt_find_max_phandle - find and return the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the highest phandle value found in the tree
+ *
+ * fdt_find_max_phandle() finds the highest phandle value in the given device
+ * tree. The value returned in @phandle is only valid if the function returns
+ * success.
+ *
+ * returns:
+ *     0 on success or a negative error code on failure
+ */
+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
+
+/**
+ * fdt_get_max_phandle - retrieves the highest phandle in a tree
+ * @fdt: pointer to the device tree blob
+ *
+ * fdt_get_max_phandle retrieves the highest phandle in the given
+ * device tree. This will ignore badly formatted phandles, or phandles
+ * with a value of 0 or -1.
+ *
+ * This function is deprecated in favour of fdt_find_max_phandle().
+ *
+ * returns:
+ *      the highest phandle on success
+ *      0, if no phandle was found in the device tree
+ *      -1, if an error occurred
+ */
+static inline uint32_t fdt_get_max_phandle(const void *fdt)
+{
+	uint32_t phandle;
+	int err;
+
+	err = fdt_find_max_phandle(fdt, &phandle);
+	if (err < 0)
+		return (uint32_t)-1;
+
+	return phandle;
+}
+
+/**
+ * fdt_generate_phandle - return a new, unused phandle for a device tree blob
+ * @fdt: pointer to the device tree blob
+ * @phandle: return location for the new phandle
+ *
+ * Walks the device tree blob and looks for the highest phandle value. On
+ * success, the new, unused phandle value (one higher than the previously
+ * highest phandle value in the device tree blob) will be returned in the
+ * @phandle parameter.
+ *
+ * Return: 0 on success or a negative error-code on failure
+ */
+int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
+
+/**
  * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
  * @fdt: pointer to the device tree blob
  *
@@ -262,9 +430,11 @@ int fdt_num_mem_rsv(const void *fdt);
 /**
  * fdt_get_mem_rsv - retrieve one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: pointers to 64-bit variables
+ * @n: index of reserve map entry
+ * @address: pointer to 64-bit variable to hold the start address
+ * @size: pointer to 64-bit variable to hold the size of the entry
  *
- * On success, *address and *size will contain the address and size of
+ * On success, @address and @size will contain the address and size of
  * the n-th reserve map entry from the device tree blob, in
  * native-endian format.
  *
@@ -287,9 +457,13 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size);
  * namelen characters of name for matching the subnode name.  This is
  * useful for finding subnodes based on a portion of a larger string,
  * such as a full path.
+ *
+ * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 			       const char *name, int namelen);
+#endif
 /**
  * fdt_subnode_offset - find a subnode of a given node
  * @fdt: pointer to the device tree blob
@@ -306,8 +480,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
  * returns:
  *	structure block offset of the requested subnode (>=0), on success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
- *      -FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
+ *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
  *	-FDT_ERR_BADSTRUCTURE,
@@ -316,6 +491,21 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
 
 /**
+ * fdt_path_offset_namelen - find a tree node by its full path
+ * @fdt: pointer to the device tree blob
+ * @path: full path of the node to locate
+ * @namelen: number of characters of path to consider
+ *
+ * Identical to fdt_path_offset(), but only consider the first namelen
+ * characters of path as the path name.
+ *
+ * Return: offset of the node or negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);
+#endif
+
+/**
  * fdt_path_offset - find a tree node by its full path
  * @fdt: pointer to the device tree blob
  * @path: full path of the node to locate
@@ -328,7 +518,8 @@ int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
  * address).
  *
  * returns:
- *	structure block offset of the node with the requested path (>=0), on success
+ *	structure block offset of the node with the requested path (>=0), on
+ *		success
  *	-FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
  *	-FDT_ERR_NOTFOUND, if the requested node does not exist
  *      -FDT_ERR_BADMAGIC,
@@ -352,10 +543,12 @@ int fdt_path_offset(const void *fdt, const char *path);
  *
  * returns:
  *	pointer to the node's name, on success
- *		If lenp is non-NULL, *lenp contains the length of that name (>=0)
+ *		If lenp is non-NULL, *lenp contains the length of that name
+ *			(>=0)
  *	NULL, on error
  *		if lenp is non-NULL *lenp contains an error code (<0):
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE, standard meanings
@@ -404,6 +597,33 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset);
 int fdt_next_property_offset(const void *fdt, int offset);
 
 /**
+ * fdt_for_each_property_offset - iterate over all properties of a node
+ *
+ * @property:	property offset (int, lvalue)
+ * @fdt:	FDT blob (const void *)
+ * @node:	node offset (int)
+ *
+ * This is actually a wrapper around a for loop and would be used like so:
+ *
+ *	fdt_for_each_property_offset(property, fdt, node) {
+ *		Use property
+ *		...
+ *	}
+ *
+ *	if ((property < 0) && (property != -FDT_ERR_NOTFOUND)) {
+ *		Error handling
+ *	}
+ *
+ * Note that this is implemented as a macro and property is used as
+ * iterator in the loop. The node variable can be constant or even a
+ * literal.
+ */
+#define fdt_for_each_property_offset(property, fdt, node)	\
+	for (property = fdt_first_property_offset(fdt, node);	\
+	     property >= 0;					\
+	     property = fdt_next_property_offset(fdt, property))
+
+/**
  * fdt_get_property_by_offset - retrieve the property at a given offset
  * @fdt: pointer to the device tree blob
  * @offset: offset of the property to retrieve
@@ -414,6 +634,9 @@ int fdt_next_property_offset(const void *fdt, int offset);
  * offset.  If lenp is non-NULL, the length of the property value is
  * also returned, in the integer pointed to by lenp.
  *
+ * Note that this code only works on device tree versions >= 16. fdt_getprop()
+ * works on all versions.
+ *
  * returns:
  *	pointer to the structure representing the property
  *		if lenp is non-NULL, *lenp contains the length of the property
@@ -439,13 +662,18 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
  * @namelen: number of characters of name to consider
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
- * Identical to fdt_get_property_namelen(), but only examine the first
- * namelen characters of name for matching the property name.
+ * Identical to fdt_get_property(), but only examine the first namelen
+ * characters of name for matching the property name.
+ *
+ * Return: pointer to the structure representing the property, or NULL
+ *         if not found
  */
+#ifndef SWIG /* Not available in Python */
 const struct fdt_property *fdt_get_property_namelen(const void *fdt,
 						    int nodeoffset,
 						    const char *name,
 						    int namelen, int *lenp);
+#endif
 
 /**
  * fdt_get_property - find a given property in a given node
@@ -467,7 +695,8 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -487,7 +716,7 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
 /**
  * fdt_getprop_by_offset - retrieve the value of a property at a given offset
  * @fdt: pointer to the device tree blob
- * @ffset: offset of the property to read
+ * @offset: offset of the property to read
  * @namep: pointer to a string variable (will be overwritten) or NULL
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
@@ -515,8 +744,10 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
  *		-FDT_ERR_BADSTRUCTURE,
  *		-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* This function is not useful in Python */
 const void *fdt_getprop_by_offset(const void *fdt, int offset,
 				  const char **namep, int *lenp);
+#endif
 
 /**
  * fdt_getprop_namelen - get property value based on substring
@@ -528,9 +759,20 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
  *
  * Identical to fdt_getprop(), but only examine the first namelen
  * characters of name for matching the property name.
+ *
+ * Return: pointer to the property's value or NULL on error
  */
+#ifndef SWIG /* Not available in Python */
 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
 				const char *name, int namelen, int *lenp);
+static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
+					  const char *name, int namelen,
+					  int *lenp)
+{
+	return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
+						      namelen, lenp);
+}
+#endif
 
 /**
  * fdt_getprop - retrieve the value of a given property
@@ -540,10 +782,10 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  * @lenp: pointer to an integer variable (will be overwritten) or NULL
  *
  * fdt_getprop() retrieves a pointer to the value of the property
- * named 'name' of the node at offset nodeoffset (this will be a
+ * named @name of the node at offset @nodeoffset (this will be a
  * pointer to within the device blob itself, not a copy of the value).
- * If lenp is non-NULL, the length of the property value is also
- * returned, in the integer pointed to by lenp.
+ * If @lenp is non-NULL, the length of the property value is also
+ * returned, in the integer pointed to by @lenp.
  *
  * returns:
  *	pointer to the property's value
@@ -552,7 +794,8 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
  *	NULL, on error
  *		if lenp is non-NULL, *lenp contains an error code (<0):
  *		-FDT_ERR_NOTFOUND, node does not have named property
- *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
+ *			tag
  *		-FDT_ERR_BADMAGIC,
  *		-FDT_ERR_BADVERSION,
  *		-FDT_ERR_BADSTATE,
@@ -587,11 +830,16 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset);
  * @name: name of the alias th look up
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_get_alias(), but only examine the first namelen
- * characters of name for matching the alias name.
+ * Identical to fdt_get_alias(), but only examine the first @namelen
+ * characters of @name for matching the alias name.
+ *
+ * Return: a pointer to the expansion of the alias named @name, if it exists,
+ *	   NULL otherwise
  */
+#ifndef SWIG /* Not available in Python */
 const char *fdt_get_alias_namelen(const void *fdt,
 				  const char *name, int namelen);
+#endif
 
 /**
  * fdt_get_alias - retrieve the path referenced by a given alias
@@ -599,7 +847,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
  * @name: name of the alias th look up
  *
  * fdt_get_alias() retrieves the value of a given alias.  That is, the
- * value of the property named 'name' in the node /aliases.
+ * value of the property named @name in the node /aliases.
  *
  * returns:
  *	a pointer to the expansion of the alias named 'name', if it exists
@@ -624,7 +872,7 @@ const char *fdt_get_alias(const void *fdt, const char *name);
  *	0, on success
  *		buf contains the absolute path of the node at
  *		nodeoffset, as a NUL-terminated string.
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1)
  *		characters and will not fit in the given buffer.
  *	-FDT_ERR_BADMAGIC,
@@ -654,11 +902,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen);
  * structure from the start to nodeoffset.
  *
  * returns:
-
  *	structure block offset of the node at node offset's ancestor
  *		of depth supernodedepth (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-*	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeoffset
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
+ *		nodeoffset
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -680,7 +928,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
  *
  * returns:
  *	depth of the node at nodeoffset (>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -703,7 +951,7 @@ int fdt_node_depth(const void *fdt, int nodeoffset);
  * returns:
  *	structure block offset of the parent of the node at nodeoffset
  *		(>=0), on success
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -743,7 +991,7 @@ int fdt_parent_offset(const void *fdt, int nodeoffset);
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -775,14 +1023,13 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
 
 /**
- * fdt_node_check_compatible: check a node's compatible property
+ * fdt_node_check_compatible - check a node's compatible property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of a tree node
  * @compatible: string to match against
  *
- *
  * fdt_node_check_compatible() returns 0 if the given node contains a
- * 'compatible' property with the given string as one of its elements,
+ * @compatible property with the given string as one of its elements,
  * it returns non-zero otherwise, or on error.
  *
  * returns:
@@ -790,7 +1037,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
  *	1, if the node has a 'compatible' property, but it does not list
  *		the given string
  *	-FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
- * 	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -827,7 +1074,7 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
  *		 on success
  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
  *		tree after startoffset
- * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
  *	-FDT_ERR_BADMAGIC,
  *	-FDT_ERR_BADVERSION,
  *	-FDT_ERR_BADSTATE,
@@ -846,15 +1093,160 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
  * one or more strings, each terminated by \0, as is found in a device tree
  * "compatible" property.
  *
- * @return: 1 if the string is found in the list, 0 not found, or invalid list
+ * Return: 1 if the string is found in the list, 0 not found, or invalid list
  */
 int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
 
+/**
+ * fdt_stringlist_count - count the number of strings in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ *
+ * Return:
+ *   the number of strings in the given property
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist
+ */
+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
+
+/**
+ * fdt_stringlist_search - find a string in a string list and return its index
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @string: string to look up in the string list
+ *
+ * Note that it is possible for this function to succeed on property values
+ * that are not NUL-terminated. That's because the function will stop after
+ * finding the first occurrence of @string. This can for example happen with
+ * small-valued cell properties, such as #address-cells, when searching for
+ * the empty string.
+ *
+ * return:
+ *   the index of the string in the list of strings
+ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *   -FDT_ERR_NOTFOUND if the property does not exist or does not contain
+ *                     the given string
+ */
+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+			  const char *string);
+
+/**
+ * fdt_stringlist_get() - obtain the string at a given index in a string list
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of a tree node
+ * @property: name of the property containing the string list
+ * @index: index of the string to return
+ * @lenp: return location for the string length or an error code on failure
+ *
+ * Note that this will successfully extract strings from properties with
+ * non-NUL-terminated values. For example on small-valued cell properties
+ * this function will return the empty string.
+ *
+ * If non-NULL, the length of the string (on success) or a negative error-code
+ * (on failure) will be stored in the integer pointer to by lenp.
+ *
+ * Return:
+ *   A pointer to the string at the given index in the string list or NULL on
+ *   failure. On success the length of the string will be stored in the memory
+ *   location pointed to by the lenp parameter, if non-NULL. On failure one of
+ *   the following negative error codes will be returned in the lenp parameter
+ *   (if non-NULL):
+ *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
+ *     -FDT_ERR_NOTFOUND if the property does not exist
+ */
+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
+			       const char *property, int index,
+			       int *lenp);
+
+/**********************************************************************/
+/* Read-only functions (addressing related)                           */
+/**********************************************************************/
+
+/**
+ * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
+ *
+ * This is the maximum value for #address-cells, #size-cells and
+ * similar properties that will be processed by libfdt.  IEE1275
+ * requires that OF implementations handle values up to 4.
+ * Implementations may support larger values, but in practice higher
+ * values aren't used.
+ */
+#define FDT_MAX_NCELLS		4
+
+/**
+ * fdt_address_cells - retrieve address size for a bus represented in the tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address size for
+ *
+ * When the node has a valid #address-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      2, if the node has no #address-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_address_cells(const void *fdt, int nodeoffset);
+
+/**
+ * fdt_size_cells - retrieve address range size for a bus represented in the
+ *                  tree
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node to find the address range size for
+ *
+ * When the node has a valid #size-cells property, returns its value.
+ *
+ * returns:
+ *	0 <= n < FDT_MAX_NCELLS, on success
+ *      1, if the node has no #size-cells property
+ *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#size-cells property
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_size_cells(const void *fdt, int nodeoffset);
+
+
 /**********************************************************************/
 /* Write-in-place functions                                           */
 /**********************************************************************/
 
 /**
+ * fdt_setprop_inplace_namelen_partial - change a property's value,
+ *                                       but not its size
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @namelen: number of characters of name to consider
+ * @idx: index of the property to change in the array
+ * @val: pointer to data to replace the property value with
+ * @len: length of the property value
+ *
+ * Identical to fdt_setprop_inplace(), but modifies the given property
+ * starting from the given index, and using only the first characters
+ * of the name. It is useful when you want to manipulate only one value of
+ * an array and you have a string that doesn't end with \0.
+ *
+ * Return: 0 on success, negative libfdt error value otherwise
+ */
+#ifndef SWIG /* Not available in Python */
+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
+					const char *name, int namelen,
+					uint32_t idx, const void *val,
+					int len);
+#endif
+
+/**
  * fdt_setprop_inplace - change a property's value, but not its size
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -882,8 +1274,10 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
  *	-FDT_ERR_BADSTRUCTURE,
  *	-FDT_ERR_TRUNCATED, standard meanings
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
 			const void *val, int len);
+#endif
 
 /**
  * fdt_setprop_inplace_u32 - change the value of a 32-bit integer property
@@ -957,8 +1351,13 @@ static inline int fdt_setprop_inplace_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_setprop_inplace_cell - change the value of a single-cell property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node containing the property
+ * @name: name of the property to change the value of
+ * @val: new value of the 32-bit cell
  *
  * This is an alternative name for fdt_setprop_inplace_u32()
+ * Return: 0 on success, negative libfdt error number otherwise.
  */
 static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
 					   const char *name, uint32_t val)
@@ -1020,7 +1419,46 @@ int fdt_nop_node(void *fdt, int nodeoffset);
 /* Sequential write functions                                         */
 /**********************************************************************/
 
+/* fdt_create_with_flags flags */
+#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
+	/* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
+	 * names in the fdt. This can result in faster creation times, but
+	 * a larger fdt. */
+
+#define FDT_CREATE_FLAGS_ALL	(FDT_CREATE_FLAG_NO_NAME_DEDUP)
+
+/**
+ * fdt_create_with_flags - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
+ *
+ * fdt_create_with_flags() begins the process of creating a new fdt with
+ * the sequential write interface.
+ *
+ * fdt creation process must end with fdt_finished() to produce a valid fdt.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ *	-FDT_ERR_BADFLAGS, flags is not valid
+ */
+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
+
+/**
+ * fdt_create - begin creation of a new fdt
+ * @buf: pointer to memory allocated where fdt will be created
+ * @bufsize: size of the memory space at fdt
+ *
+ * fdt_create() is equivalent to fdt_create_with_flags() with flags=0.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
+ */
 int fdt_create(void *buf, int bufsize);
+
+int fdt_resize(void *fdt, void *buf, int bufsize);
 int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
 int fdt_finish_reservemap(void *fdt);
 int fdt_begin_node(void *fdt, const char *name);
@@ -1035,10 +1473,29 @@ static inline int fdt_property_u64(void *fdt, const char *name, uint64_t val)
 	fdt64_t tmp = cpu_to_fdt64(val);
 	return fdt_property(fdt, name, &tmp, sizeof(tmp));
 }
+
+#ifndef SWIG /* Not available in Python */
 static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val)
 {
 	return fdt_property_u32(fdt, name, val);
 }
+#endif
+
+/**
+ * fdt_property_placeholder - add a new property and return a ptr to its value
+ *
+ * @fdt: pointer to the device tree blob
+ * @name: name of property to add
+ * @len: length of property value in bytes
+ * @valp: returns a pointer to where where the value should be placed
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_NOSPACE, standard meanings
+ */
+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp);
+
 #define fdt_property_string(fdt, name, str) \
 	fdt_property(fdt, name, str, strlen(str)+1)
 int fdt_end_node(void *fdt);
@@ -1055,7 +1512,8 @@ int fdt_pack(void *fdt);
 /**
  * fdt_add_mem_rsv - add one memory reserve map entry
  * @fdt: pointer to the device tree blob
- * @address, @size: 64-bit values (native endian)
+ * @address: 64-bit start address of the reserve map entry
+ * @size: 64-bit size of the reserved region
  *
  * Adds a reserve map entry to the given blob reserving a region at
  * address address of length size.
@@ -1158,6 +1616,37 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
 		const void *val, int len);
 
 /**
+ * fdt_setprop_placeholder - allocate space for a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @len: length of the property value
+ * @prop_data: return pointer to property data
+ *
+ * fdt_setprop_placeholer() allocates the named property in the given node.
+ * If the property exists it is resized. In either case a pointer to the
+ * property data is returned.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
+			    int len, void **prop_data);
+
+/**
  * fdt_setprop_u32 - set a property to a 32-bit integer
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to change
@@ -1229,8 +1718,14 @@ static inline int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name,
 
 /**
  * fdt_setprop_cell - set a property to a single cell value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value for the property (native endian)
  *
  * This is an alternative name for fdt_setprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 				   uint32_t val)
@@ -1269,6 +1764,36 @@ static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
 #define fdt_setprop_string(fdt, nodeoffset, name, str) \
 	fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
+
+/**
+ * fdt_setprop_empty - set a property to an empty value
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ *
+ * fdt_setprop_empty() sets the value of the named property in the
+ * given node to an empty (zero length) value, or creates a new empty
+ * property if it does not already exist.
+ *
+ * This function may insert or delete data from the blob, and will
+ * therefore change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain the new property value
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+#define fdt_setprop_empty(fdt, nodeoffset, name) \
+	fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
+
 /**
  * fdt_appendprop - append to or create a property
  * @fdt: pointer to the device tree blob
@@ -1371,8 +1896,14 @@ static inline int fdt_appendprop_u64(void *fdt, int nodeoffset,
 
 /**
  * fdt_appendprop_cell - append a single cell value to a property
+ * @fdt: pointer to the device tree blob
+ * @nodeoffset: offset of the node whose property to change
+ * @name: name of the property to change
+ * @val: 32-bit integer value to append to the property (native endian)
  *
  * This is an alternative name for fdt_appendprop_u32()
+ *
+ * Return: 0 on success, negative libfdt error value otherwise.
  */
 static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 				      const char *name, uint32_t val)
@@ -1411,6 +1942,43 @@ static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
 	fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
 
 /**
+ * fdt_appendprop_addrrange - append a address range property
+ * @fdt: pointer to the device tree blob
+ * @parent: offset of the parent node
+ * @nodeoffset: offset of the node to add a property at
+ * @name: name of property
+ * @addr: start address of a given range
+ * @size: size of a given range
+ *
+ * fdt_appendprop_addrrange() appends an address range value (start
+ * address and size) to the value of the named property in the given
+ * node, or creates a new property with that value if it does not
+ * already exist.
+ * If "name" is not specified, a default "reg" is used.
+ * Cell sizes are determined by parent's #address-cells and #size-cells.
+ *
+ * This function may insert data into the blob, and will therefore
+ * change the offsets of some existing nodes.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
+ *		#address-cells property
+ *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
+ *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
+ *		contain a new property
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
+			     const char *name, uint64_t addr, uint64_t size);
+
+/**
  * fdt_delprop - delete a property
  * @fdt: pointer to the device tree blob
  * @nodeoffset: offset of the node whose property to nop
@@ -1438,16 +2006,21 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name);
  * fdt_add_subnode_namelen - creates a new node based on substring
  * @fdt: pointer to the device tree blob
  * @parentoffset: structure block offset of a node
- * @name: name of the subnode to locate
+ * @name: name of the subnode to create
  * @namelen: number of characters of name to consider
  *
- * Identical to fdt_add_subnode(), but use only the first namelen
- * characters of name as the name of the new node.  This is useful for
+ * Identical to fdt_add_subnode(), but use only the first @namelen
+ * characters of @name as the name of the new node.  This is useful for
  * creating subnodes based on a portion of a larger string, such as a
  * full path.
+ *
+ * Return: structure block offset of the created subnode (>=0),
+ *	   negative libfdt error value otherwise
  */
+#ifndef SWIG /* Not available in Python */
 int fdt_add_subnode_namelen(void *fdt, int parentoffset,
 			    const char *name, int namelen);
+#endif
 
 /**
  * fdt_add_subnode - creates a new node
@@ -1461,11 +2034,13 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
  *
  * This function will insert data into the blob, and will therefore
  * change the offsets of some existing nodes.
-
+ *
  * returns:
- *	structure block offset of the created nodeequested subnode (>=0), on success
+ *	structure block offset of the created nodeequested subnode (>=0), on
+ *		success
  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
- *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
+ *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
+ *		tag
  *	-FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
  *		the given name
  *	-FDT_ERR_NOSPACE, if there is insufficient free space in the
@@ -1503,10 +2078,45 @@ int fdt_add_subnode(void *fdt, int parentoffset, const char *name);
  */
 int fdt_del_node(void *fdt, int nodeoffset);
 
+/**
+ * fdt_overlay_apply - Applies a DT overlay on a base DT
+ * @fdt: pointer to the base device tree blob
+ * @fdto: pointer to the device tree overlay blob
+ *
+ * fdt_overlay_apply() will apply the given device tree overlay on the
+ * given base device tree.
+ *
+ * Expect the base device tree to be modified, even if the function
+ * returns an error.
+ *
+ * returns:
+ *	0, on success
+ *	-FDT_ERR_NOSPACE, there's not enough space in the base device tree
+ *	-FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
+ *		properties in the base DT
+ *	-FDT_ERR_BADPHANDLE,
+ *	-FDT_ERR_BADOVERLAY,
+ *	-FDT_ERR_NOPHANDLES,
+ *	-FDT_ERR_INTERNAL,
+ *	-FDT_ERR_BADLAYOUT,
+ *	-FDT_ERR_BADMAGIC,
+ *	-FDT_ERR_BADOFFSET,
+ *	-FDT_ERR_BADPATH,
+ *	-FDT_ERR_BADVERSION,
+ *	-FDT_ERR_BADSTRUCTURE,
+ *	-FDT_ERR_BADSTATE,
+ *	-FDT_ERR_TRUNCATED, standard meanings
+ */
+int fdt_overlay_apply(void *fdt, void *fdto);
+
 /**********************************************************************/
 /* Debugging / informational functions                                */
 /**********************************************************************/
 
 const char *fdt_strerror(int errval);
 
-#endif /* _LIBFDT_H */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBFDT_H */
diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
index 035bf75..8368787 100644
--- a/xen/include/xen/libfdt/libfdt_env.h
+++ b/xen/include/xen/libfdt/libfdt_env.h
@@ -1,22 +1,96 @@
-#ifndef _LIBFDT_ENV_H
-#define _LIBFDT_ENV_H
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef LIBFDT_ENV_H
+#define LIBFDT_ENV_H
+/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ * Copyright 2012 Kim Phillips, Freescale Semiconductor.
+ */
 
 #include <xen/types.h>
 #include <xen/string.h>
 #include <asm/byteorder.h>
 
-typedef uint16_t fdt16_t;
-typedef uint32_t fdt32_t;
-typedef uint64_t fdt64_t;
+#ifdef __CHECKER__
+#define FDT_FORCE __attribute__((force))
+#define FDT_BITWISE __attribute__((bitwise))
+#else
+#define FDT_FORCE
+#define FDT_BITWISE
+#endif
 
-#define fdt16_to_cpu(x) be16_to_cpu(x)
-#define cpu_to_fdt16(x) cpu_to_be16(x)
-#define fdt32_to_cpu(x) be32_to_cpu(x)
-#define cpu_to_fdt32(x) cpu_to_be32(x)
-#define fdt64_to_cpu(x) be64_to_cpu(x)
-#define cpu_to_fdt64(x) cpu_to_be64(x)
+typedef uint16_t FDT_BITWISE fdt16_t;
+typedef uint32_t FDT_BITWISE fdt32_t;
+typedef uint64_t FDT_BITWISE fdt64_t;
+
+#define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
+#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
+#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | \
+			 (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
+#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | \
+			 (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
+			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
+			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
 
 /* Xen-specific libfdt error code. */
 #define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
 
-#endif /* _LIBFDT_ENV_H */
+static inline uint16_t fdt16_to_cpu(fdt16_t x)
+{
+	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
+}
+static inline fdt16_t cpu_to_fdt16(uint16_t x)
+{
+	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
+}
+
+static inline uint32_t fdt32_to_cpu(fdt32_t x)
+{
+	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
+}
+static inline fdt32_t cpu_to_fdt32(uint32_t x)
+{
+	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
+}
+
+static inline uint64_t fdt64_to_cpu(fdt64_t x)
+{
+	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
+}
+static inline fdt64_t cpu_to_fdt64(uint64_t x)
+{
+	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
+}
+#undef CPU_TO_FDT64
+#undef CPU_TO_FDT32
+#undef CPU_TO_FDT16
+#undef EXTRACT_BYTE
+
+#ifdef __APPLE__
+#include <AvailabilityMacros.h>
+
+/* strnlen() is not available on Mac OS < 10.7 */
+# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < \
+                                         MAC_OS_X_VERSION_10_7)
+
+#define strnlen fdt_strnlen
+
+/*
+ * fdt_strnlen: returns the length of a string or max_count - which ever is
+ * smallest.
+ * Input 1 string: the string whose size is to be determined
+ * Input 2 max_count: the maximum value returned by this function
+ * Output: length of the string or max_count (the smallest of the two)
+ */
+static inline size_t fdt_strnlen(const char *string, size_t max_count)
+{
+    const char *p = memchr(string, 0, max_count);
+    return p ? p - string : max_count;
+}
+
+#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED <
+          MAC_OS_X_VERSION_10_7) */
+
+#endif /* __APPLE__ */
+
+#endif /* LIBFDT_ENV_H */
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 07:56:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 07:56:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.224997.388581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlRPW-0008TU-4u; Fri, 12 Nov 2021 07:55:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 224997.388581; Fri, 12 Nov 2021 07:55:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlRPW-0008TN-1y; Fri, 12 Nov 2021 07:55:46 +0000
Received: by outflank-mailman (input) for mailman id 224997;
 Fri, 12 Nov 2021 07:55:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fM4F=P7=redhat.com=pbonzini@srs-se1.protection.inumbo.net>)
 id 1mlRPU-0008TH-Qt
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 07:55:45 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef0280b5-438d-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 08:55:43 +0100 (CET)
Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com
 [209.85.208.72]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-5-zYEzS5yrN6amKcPDN88mYQ-1; Fri, 12 Nov 2021 02:55:38 -0500
Received: by mail-ed1-f72.google.com with SMTP id
 d11-20020a50cd4b000000b003da63711a8aso7523489edj.20
 for <xen-devel@lists.xenproject.org>; Thu, 11 Nov 2021 23:55:38 -0800 (PST)
Received: from ?IPV6:2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e?
 ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e])
 by smtp.gmail.com with ESMTPSA id n1sm2700678edf.45.2021.11.11.23.55.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Nov 2021 23:55:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef0280b5-438d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1636703741;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=lF7lzRoeZrlEIt3gHEFyVsRoWpbej1ntDFwYNAiQdJI=;
	b=S6A/GlnSpDzjNW679UfW03taT2ANpf1+QVkTv90xFzlXyD9qhmp3Bfq1yt6m12HW5vT5so
	XEJZTEkL889uu4T4jUYgKh/o5vHn1J4MhFfJvlgy3haalKiVWWCD20dn4Azf1myGmzHoAw
	4lshvNz3yoegOCHCCtEsHvsVg+IrS3w=
X-MC-Unique: zYEzS5yrN6amKcPDN88mYQ-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=lF7lzRoeZrlEIt3gHEFyVsRoWpbej1ntDFwYNAiQdJI=;
        b=t82TG7O7Uilx77u1M1Hyz7ICk503ZaQ6x7QtNERqQ/r2XC5gfPUGg/28VEmlOxFsoI
         DxpkZhclLUlkbMpuGGrDnurX22OWJ7KarNeY031+kh5FowZ0dM0NRthPARv2C44imzz+
         LM2ONtlpcEBRhyjFw8IbniuwOj1Ts1EHoxcqKOHLeDD141paPT7kH6UCYe6PVRdLlr+l
         DX7BP/Am7tU5ryBXN3JwMti/wHxw4Q5AkLd+Ml4LwwA+M+hogqcEat0jFh0Xssbq+OHN
         6LWbUD30r3nuhTvTZzZHlq6+AlsW47hpapUl1iMjz7opJ5057zF3m34bmVyil4BPZUGt
         q7dg==
X-Gm-Message-State: AOAM533xkK26d05cM5q0sh+9pgk65o1sdMxgBvaDQbBdRJP/zbCi8jzo
	u6jcWqyLxAN3NVc2YOXhV/vnTgefNZ1uHxcASniPDF86qxekcg802vce1hPe1phX+w4mL+8XZEx
	3TCig2mtlgXlF+xOUSGn8fpqViNI=
X-Received: by 2002:a17:907:6e10:: with SMTP id sd16mr17768007ejc.158.1636703737494;
        Thu, 11 Nov 2021 23:55:37 -0800 (PST)
X-Google-Smtp-Source: ABdhPJzVTSyaI9bwf+cK3HRTYkkEGrfXsl4Cvt+Fkmz/7JDyaorMKEA4Mec75P9Nt6V8a8edl3Ld8g==
X-Received: by 2002:a17:907:6e10:: with SMTP id sd16mr17767982ejc.158.1636703737318;
        Thu, 11 Nov 2021 23:55:37 -0800 (PST)
Message-ID: <016d5b91-6910-2aca-0db1-a65079449454@redhat.com>
Date: Fri, 12 Nov 2021 08:55:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.0
Subject: Re: [PATCH v4 01/17] perf: Protect perf_guest_cbs with RCU
To: Peter Zijlstra <peterz@infradead.org>
Cc: Sean Christopherson <seanjc@google.com>, Ingo Molnar <mingo@redhat.com>,
 Arnaldo Carvalho de Melo <acme@kernel.org>, Will Deacon <will@kernel.org>,
 Mark Rutland <mark.rutland@arm.com>, Russell King <linux@armlinux.org.uk>,
 Marc Zyngier <maz@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>,
 Guo Ren <guoren@kernel.org>, Nick Hu <nickhu@andestech.com>,
 Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>,
 Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt
 <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Thomas Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>,
 Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
 James Morse <james.morse@arm.com>,
 Alexandru Elisei <alexandru.elisei@arm.com>,
 Suzuki K Poulose <suzuki.poulose@arm.com>, "H. Peter Anvin" <hpa@zytor.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>, Wanpeng Li <wanpengli@tencent.com>,
 Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu,
 linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org,
 kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
 Artem Kashkanov <artem.kashkanov@intel.com>,
 Like Xu <like.xu.linux@gmail.com>, Like Xu <like.xu@linux.intel.com>,
 Zhu Lingshan <lingshan.zhu@intel.com>
References: <20211111020738.2512932-1-seanjc@google.com>
 <20211111020738.2512932-2-seanjc@google.com>
 <d784dc27-72d0-d64f-e1f4-a2b9a5f86dd4@redhat.com>
 <YYz03fcDRV9NZnyA@hirez.programming.kicks-ass.net>
From: Paolo Bonzini <pbonzini@redhat.com>
In-Reply-To: <YYz03fcDRV9NZnyA@hirez.programming.kicks-ass.net>
Authentication-Results: relay.mimecast.com;
	auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=pbonzini@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/11/21 11:47, Peter Zijlstra wrote:
>> This technically could be RCU_INIT_POINTER but it's not worth a respin.
>> There are dozens of other occurrences, and if somebody wanted they
>> could use Coccinelle to fix all of them.
> I've been pushing the other way, trying to get rid of RCU_INIT_POINTER()
> since rcu_assign_pointer(, NULL) actualy DTRT per __builtin_constant_p()
> etc.

Oh, that's pretty cool to know, thanks!

Paolo

> There's a very few sites where we use RCU_INIT_POINTER() with a !NULL
> argument, and those are 'special'.
> 



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:37:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:37:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225010.388591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlSzF-0001HA-PE; Fri, 12 Nov 2021 09:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225010.388591; Fri, 12 Nov 2021 09:36:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlSzF-0001H3-MJ; Fri, 12 Nov 2021 09:36:45 +0000
Received: by outflank-mailman (input) for mailman id 225010;
 Fri, 12 Nov 2021 09:36:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mlSzF-0001Gx-05
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:36:45 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlSzE-0004w6-DD; Fri, 12 Nov 2021 09:36:44 +0000
Received: from [54.239.6.189] (helo=[192.168.1.222])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlSzE-0003Lm-6Z; Fri, 12 Nov 2021 09:36:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=TQFaUKswhNJagBIiN1qoja/mkeeJ5OuTAIzdUcMPuY4=; b=cZQ6yHBNYbn7wLW6MvVkqaDF4v
	MJKYHeDRBcuibR9By4/T1wqF2wkRot2koIQ4RlG/eEqDn/TlC8IlZZfV3F7llqoZIleuCkKbKRmDk
	yzzsonZK04W0YP90Y9E/EsbbwtTThtMp+BDJzq3ECT0TUyQ+oVbzMTsB743WpJHMT3M8=;
Message-ID: <dc639bdb-a025-4ddf-f328-8aca91bf9ea9@xen.org>
Date: Fri, 12 Nov 2021 09:36:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211111175740.23480-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

  ~/works/oss/linux/scripts/bloat-o-meter xen-syms-old xen-syms

On 11/11/2021 17:57, Andrew Cooper wrote:
> Retpolines are expensive, and all these do are select between the sync and
> nosync helpers.  Pass a boolean instead, and use direct calls everywhere.

To be honest, I much prefer to read the old code. I am totally not 
against the change but I can see how I would be ready to introduce new 
function pointers use in the future.

So I think we need some guidelines on when to use function pointers in 
Xen. The more...

> 
> Pause/unpause operations on behalf of dom0 are not fastpaths, so avoid
> exposing the __domain_pause_by_systemcontroller() internal.
> 
> This actually compiles smaller than before:

... the code doesn't really compile smaller on Arm:

42sh>  ../scripts/bloat-o-meter xen-syms-old xen-syms

add/remove: 4/2 grow/shrink: 0/6 up/down: 272/-252 (20)
Function                                     old     new   delta
_domain_pause                                  -     136    +136
_domain_pause_by_systemcontroller              -     120    +120
domain_pause_by_systemcontroller_nosync        -       8      +8
domain_pause_by_systemcontroller               -       8      +8
domain_resume                                136     132      -4
domain_pause_nosync                           12       8      -4
domain_pause                                  12       8      -4
domain_pause_except_self                     188     180      -8
do_domctl                                   5480    5472      -8
domain_kill                                  372     356     -16
do_domain_pause                               88       -     -88
__domain_pause_by_systemcontroller           120       -    -120
Total: Before=966919, After=966939, chg +0.00%

> 
>    $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
>    add/remove: 3/1 grow/shrink: 0/5 up/down: 250/-273 (-23)
>    Function                                     old     new   delta
>    _domain_pause                                  -     115    +115
>    domain_pause_by_systemcontroller               -      69     +69
>    domain_pause_by_systemcontroller_nosync        -      66     +66
>    domain_kill                                  426     398     -28
>    domain_resume                                246     214     -32
>    domain_pause_except_self                     189     141     -48
>    domain_pause                                  59      10     -49
>    domain_pause_nosync                           59       7     -52
>    __domain_pause_by_systemcontroller            64       -     -64
> 
> despite GCC's best efforts.  The new _domain_pause_by_systemcontroller()
> really should not be inlined, considering that the difference is only the
> setup of the sync boolean to pass to _domain_pause(), and there are plenty of
> registers to spare.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:40:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225017.388602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlT2J-0001t4-8V; Fri, 12 Nov 2021 09:39:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225017.388602; Fri, 12 Nov 2021 09:39:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlT2J-0001sx-5Y; Fri, 12 Nov 2021 09:39:55 +0000
Received: by outflank-mailman (input) for mailman id 225017;
 Fri, 12 Nov 2021 09:39:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mlT2H-0001sp-SB
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:39:53 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlT2H-0004zL-Az; Fri, 12 Nov 2021 09:39:53 +0000
Received: from [54.239.6.189] (helo=[192.168.1.222])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlT2H-0003Wq-5G; Fri, 12 Nov 2021 09:39:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=scJ9PGRohDCZKYYbRM9vwQqDO5r0BInvIiR2CDcLW50=; b=fRwmIxS0fHZyTbAQz+P+4oDJb7
	vqEZJKi9zcqW87VZLI5dtKFbhEMfFSYG7dg2hsAai7Twt/l3IV1qjMQ1OxT1pyiQkV2IzKJdSPfTm
	kOIRssfrFNZzsTm3RZVwLquStEvC20A50jyVNudP/oF0rVQDvjifclYnTDVXAAHJshzM=;
Message-ID: <b3dd2e88-6b32-f066-1f6e-d638ade23826@xen.org>
Date: Fri, 12 Nov 2021 09:39:51 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH 3/5] xen/sort: Switch to an extern inline implementation
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-4-andrew.cooper3@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211111175740.23480-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 11/11/2021 17:57, Andrew Cooper wrote:
> There are exactly 3 callers of sort() in the hypervisor.
> 
> Both arm callers pass in NULL for the swap function.  While this might seem
> like an attractive option at first, it causes generic_swap() to be used which
> forced a byte-wise copy.  Provide real swap functions which the compiler can
> optimise sensibly.
> 
> Furthermore, use of function pointers in tight loops like that can be very bad
> for performance.  Implement sort() as extern inline, so the optimiser can
> judge whether to inline things or not.
> 
> On x86, the diffstat shows how much of a better job the compiler can do when
> it is able to see the cmp/swap implementations.

For completness, here the Arm bloat-o-meter:

add/remove: 0/5 grow/shrink: 2/0 up/down: 928/-660 (268)
Function                                     old     new   delta
boot_fdt_info                                640    1132    +492
register_mmio_handler                        292     728    +436
u32_swap                                      20       -     -20
generic_swap                                  40       -     -40
cmp_mmio_handler                              44       -     -44
cmp_memory_node                               44       -     -44
sort                                         512       -    -512
Total: Before=966915, After=967183, chg +0.03%

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:47:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:47:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225024.388614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlT97-0003K4-0T; Fri, 12 Nov 2021 09:46:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225024.388614; Fri, 12 Nov 2021 09:46:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlT96-0003Jx-Tn; Fri, 12 Nov 2021 09:46:56 +0000
Received: by outflank-mailman (input) for mailman id 225024;
 Fri, 12 Nov 2021 09:46:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlT95-0003Jr-Ay
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:46:55 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 779a89a0-439d-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 10:46:54 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2050.outbound.protection.outlook.com [104.47.9.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-20-sKdw9WNyNv2SroG1elaQMA-1; Fri, 12 Nov 2021 10:46:52 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3120.eurprd04.prod.outlook.com (2603:10a6:802:e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Fri, 12 Nov
 2021 09:46:50 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 09:46:50 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0213.eurprd06.prod.outlook.com (2603:10a6:20b:45e::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25 via Frontend
 Transport; Fri, 12 Nov 2021 09:46:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 779a89a0-439d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636710413;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=48yH4/SCz7rWlwlLK+WG4TE6XqWSTpORADhxBbOV7aY=;
	b=fkxSIePBM6uuegFLniVkmvrOe/Gm9dok2wNiJJgcNc11InMSOqy06wuI+uaAXIAxY5iWCI
	VOS9+p/E9P3ZnXHaD/q8HC3DCJgQVEOjM/fnvWNnFaksmigmliti31fvPteqCy/2sUIVof
	vxyCQfbegoPt3GQmk60qvy2RAUPokic=
X-MC-Unique: sKdw9WNyNv2SroG1elaQMA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Fmi2Ks0grad4GAqNbIKNcnyqAhf0hPuzz5N2aJ0pMM5xd1LVvhiUyVRdvHBlL8XWoiGheedbVHM+8T1KdNIA+aw9paMHnNXIIfU28m+8KNX+iIt4gmKkpb5FW2dXAHySb9NZsq+W4mrN86rP6tjSEIDnu3wk8mPJ/IC3FF/C4UiTq0JQlN1F14KFZOas5hLaBNcZBU2NWsURq66a1IVMHWFfuy8HIGBeVlJ9ngNAdAb6uemjV2aqosRi+/65VmjvGbNCElBp1J+viuxpmxsiZHKZnLLaS70VaJryJjnwMFYPI5Ti2+o7vl6ENNWccL9Z/kicvJXaAib44dTdm5C5ZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=48yH4/SCz7rWlwlLK+WG4TE6XqWSTpORADhxBbOV7aY=;
 b=JTlpK4ZYjhhe3Pdur1IHebWzyYQdGfrC8fJ5vc/z5/rlI2/CoFdM7Y7LsbWaqBt6iUvufsgs9duErVU9Cv+5QG9UwnUDp/jW2GY6O4e4lhTKF9LpJdofbXKmIo4s3/fksqK9Sglp+EfWyM21KKguDsKAyvq2kEv4GHdhV4IgM/CKLYc+zSOo7qNlX9P1eppU5I3RgAuvXwCfq1WsHcnG/CLW/NcsAFZQJWhOOM2RC5wDxHXfG5UaQ2+t8Wm13lQcjtS26hDfH4AtZm8IrKgRl+EROcePuI73muQ7G2UTZcFERW9STL4wtvgb+CYv/rH4sKYFoznxa9HvX0q/0UZ5ZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
Date: Fri, 12 Nov 2021 10:46:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/6] VT-d: domain ID mapping improvements
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0213.eurprd06.prod.outlook.com
 (2603:10a6:20b:45e::12) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8754ca6b-ee89-44a9-4ae4-08d9a5c159c9
X-MS-TrafficTypeDiagnostic: VI1PR04MB3120:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB312038FDBFC8F55A61867516B3959@VI1PR04MB3120.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4941;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	N7fbkD2OOWkNlIFgwBU+Qf8UeAOazuNL8iDAPa6Bvqwu+EtxQ/+V85Tfw5Z4MpGW3BKNAwCL0Ytz3h74xvbh8YL4Dfxol2BAmVY03h/QqafcJg/rjb2odiRaZaM4xpvRxL+K7jmnkK8RanWCMpYsZr7YABa2a3/f3RtL90nb4K7l/jA9++QNN4A0VwPYYWILEN1/eljKJo8G22Cbg3n9hRPI9WJ/nH85d0hNQbic48QctfN4YSovnzerep5cF4rC+yIsxooCzYHMiTjDcdeFUm4lAEV4bVx4h9jZPHBeXXvYLKT04qazBaQ1CU2AmWuEiBb6oodav4rHOJsCQOkIT3SgHK+bn5nq7rH/uxx+m/epfV7d6xZ0v8dVVWlWdaGD1e5H4gIsZRjQg4sTWEELZAQEnKGNC/C5+La+tkimo6zeVDJdSvwtcgunltT9XkN/G/J0uSApz6Tx3p4ZmnXk8XYkrv+bc7gxhsYWKd1jKXWWth7mrGBh+op/vUgNLdBlkeaMYPmFjrRAM2DYY8oa005ZL9ohN7IefRc2yjIbk7OoH2EKsyCai/TGIASo4fg8Q749aVL2T5JR/DzDlH0KSyAzMA+9HWgOAPRvm3rmaorwMeqgB1m9HctDqeNcjlSnXTNmNL3SKo2qN2XxqCm8DM86lfemfKJE1U/UXPtoNBj5FI99dTbIiUWBArPaLWY9rVJx/p1kAem0w/iUgqCJ9OpY7e8NHikhVK825UnHS9A=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(31696002)(38100700002)(508600001)(186003)(4326008)(8676002)(5660300002)(66556008)(2906002)(16576012)(8936002)(956004)(2616005)(316002)(86362001)(66476007)(36756003)(66946007)(4744005)(6916009)(31686004)(6486002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eXIvYXh3NjArL3RTYzd2VVBZV25pVEFZOXpsVkVNNTJIdzB6NFEwTVN0M1Q2?=
 =?utf-8?B?bC9nV29FVEJadWpBcUhuQmRJS0JtS0VjdGxYZUk4TThRUWEzUW0yUHFmOWlz?=
 =?utf-8?B?NjVMUnVLanhYbWFnVWFLRUIxbzRndHVzRzJtU0lTbndjOVZaT0tEUTd4U0lG?=
 =?utf-8?B?UDBvUERHS3pHRmhnZG91MTZRdnIzWDZkSWhXY1ZVeGVlNDl6WTJCdzlkMlVL?=
 =?utf-8?B?b2l1QkhZWDBuZnRhSmljeVJ3TWdWOHYzUjNaSSs5K1ZtSTQ5d3pyVTlmVmkw?=
 =?utf-8?B?d24rV1FaWHNWa0FzcXNnRnhzc0hvV3NuQVFESGRQUG8yR3NFcjBVVE9CR2c0?=
 =?utf-8?B?NnBuU0VYWWtLQU8zalk1UzN5Z01hYTdWbEZvSUxVWWludVRRZmRremNuWXV5?=
 =?utf-8?B?SzRZNGUxckNxb1Yzdm1pa1lnK3BHOGhBVnZpQ2tLQ0JsN0RKNlNZNGpkR05S?=
 =?utf-8?B?WFh1OUxhM1psWnpGb0J4WHNuNk41bzlCOEZEZkQ3dDVTRWtKcW5CUUttd0VD?=
 =?utf-8?B?ekFUWGdkNHJDRzA0VXp0OEYzK0h3MUpPa1lpbUFycDViOVFNZzNiSDVHWXky?=
 =?utf-8?B?R0c2bHp6Vkd3ZWxaVmFMc3kwTG5LdlY1N21pVTR1MDl5eUtPL3FXZUV6SlFj?=
 =?utf-8?B?Q0xEOXhENnZ3dFFCZVJDc3B6NkFuMzY0UmNGSWdkZk5BR2UwbHRveCt6aFJF?=
 =?utf-8?B?cHJTdzdtbFVldmdKU0sreVFFME1VWHpvSm5vM1ZaOEEvK1NDMHhKYXVPQ2Uz?=
 =?utf-8?B?MGpzRlI0ZjhKaDZDR1gwbEI4NklEeEZieUg4U2JsNkdDcjlnNUlXaG1iSmVT?=
 =?utf-8?B?SVFBTjhLUjBwclk0eFo2U2IzTVJONGg4bm5wS1hiZzU5aURMMkFybVh6RmtD?=
 =?utf-8?B?RGlmUnduZTJ1RlVoRVg5bmw3WGpDOWRjeGpDOEJTaUdyNFFnSU1IaC9CVmNH?=
 =?utf-8?B?OW0zdHFEa0pUN1Q0NjFLbVdmcHkrUEpMZ1NlVTI0NWNtSDRzRmQ4dnZHQXlv?=
 =?utf-8?B?cGNidUQvMXZYOFJGLy9KZTducEZYZFk0TFFPN0RQTFM3MHpZY3Z1Q0VaTEFX?=
 =?utf-8?B?SGppYTBUU203SFpKSVE4NHRYTUJPSmhFOWFrdEo1Z2JDTEJIS05hVFFOZW12?=
 =?utf-8?B?OTRRM2NmQUM3dGpBR3c5Z2Z6U1h3T3c1cVJaU2NBcUsxSmlFRGRmU1M4WkVm?=
 =?utf-8?B?aTRzdGJla0tSVEVVSHNYUkNMQ0tad3A0cTlUa2F3RW4wZExKbnBocWFJVExJ?=
 =?utf-8?B?YUtGMlFmTTU1aDdzY0JzSHo2a1cxdzlKcmxYNGJaU2pCbkFzSFFWN2pzWWxD?=
 =?utf-8?B?QVdZc3d2Sjh3K3lrc3dGY004UExMdysrUXVwUUNJN0FuWjFTQUhSMkN2NkpO?=
 =?utf-8?B?WGpDbXdLM0xzekQwZ2hldzFsTWkxSUIwY0RYK1l0NXo2Q0tkMzdWd09Bb3By?=
 =?utf-8?B?a1hnYVZ4VXVsVTEyUm9sR1pQVWJldVJla0c2VnE4UDZIWU5aeDlnaWh3Rnc5?=
 =?utf-8?B?Q1ROdUdBNEl4Y2gySnpYMDBzUVNBOTBEVGR5cjRETWpXaWJ1S1ExQTZhRFhw?=
 =?utf-8?B?L0hLTzQ2Kzk0VDVPUzlCaGhDWkF3bGZ6ZHJkUjZCNlNsNTdFdFFkaGxFS1JZ?=
 =?utf-8?B?RmdaSEFSdnZzV2FrNE1iMnNaRHR3aVo3N2tSZk1jL0srNk1oK2N5SCtUMEVr?=
 =?utf-8?B?RnNpNlNNeWxHYlI5ejVOb0NXWTMwazRTU3labDNzcmw3cjh0TTVSRFFGTW1o?=
 =?utf-8?B?cENsVGV6aldlZ0tGV09ERVVsUysvQjV4bXlSOXFVQ2xQWTNjUDNiSlJ6bUpw?=
 =?utf-8?B?ekliU1dXdmpZUG5BNUFQQlRrVnhqcWtCVm1OMkVBSEhPMDFlOVdvaVpsUEpL?=
 =?utf-8?B?TFZlb3lRQnB0VC9Ed1Q0d0NOZ0t0NVJnTFZRR2o5TG5HTVV1UFN6TFdQbXp5?=
 =?utf-8?B?V0N6WFJRd3lwRzlCMW1jd2pkZERjUzJmQ3NUTXI4cGpSd3lzL0ZiZFhYaUJH?=
 =?utf-8?B?K0w2RXdDS3NvTDE2ZzR2bTNwRStyYWQzd2w0RmsyRTUyQWpvOGhreDNUc2ZG?=
 =?utf-8?B?aEpIaWZ2TDFsT2JkVTFteVNDNFdsSWd3ME14c0hNL3h4M0ozMHIzRGlock1I?=
 =?utf-8?B?NjdLZFgrNXBkM01FTUFhUWIzWFVTam54SVB5VVBvbXRpTGVBenJ4TmF4dnR0?=
 =?utf-8?Q?Zk67BCvPqxYohMUSoC9TyUQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8754ca6b-ee89-44a9-4ae4-08d9a5c159c9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 09:46:50.4990
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kJyWEXyabamzS/o4U4+GXUiTBUllxcrFwFxWTs/9I0C3A+PCYW51a2cFReYgBangPeW6M7WsYS3tgq/WJcmmMw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3120

Two bug fixes, some cleanup, and a simplification for modern hardware.

1: properly reserve DID 0 for caching mode IOMMUs
2: split domid map cleanup check into a function
3: don't leak domid mapping on error path
4: tidy domid map handling
5: introduce helper to convert DID to domid_t
6: avoid allocating domid_{bit,}map[] when possible

This depends on the previously submitted (and already approved, except
for a possible release ack) "VT-d: per-domain IOMMU bitmap needs to
have dynamic size".

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:48:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:48:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225029.388625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTAF-0003ty-C0; Fri, 12 Nov 2021 09:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225029.388625; Fri, 12 Nov 2021 09:48:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTAF-0003tr-88; Fri, 12 Nov 2021 09:48:07 +0000
Received: by outflank-mailman (input) for mailman id 225029;
 Fri, 12 Nov 2021 09:48:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTAD-0003th-Bx
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:48:05 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a168f475-439d-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 10:48:04 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2053.outbound.protection.outlook.com [104.47.9.53]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-30-N6Jqk2AONpiKWLYIPehZfw-1; Fri, 12 Nov 2021 10:48:03 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2335.eurprd04.prod.outlook.com (2603:10a6:800:2e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Fri, 12 Nov
 2021 09:48:01 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 09:48:01 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P193CA0144.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:85::49) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Fri, 12 Nov 2021 09:48:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a168f475-439d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636710484;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jEAtRMfNFzRIgov+4hJ20x/I/cYX3+PllG2qKjsHlbY=;
	b=XXdDAuM/ZLDjAZ6pOIRdw2qZDTP1C7LkQ5MIwmtkp9RkQ/6iNK7pHSU3fm3txh0At81unb
	0HPsFEz571WmIeyyHwiPjs+/nuQlO0Isbw9nZonS7l3r2iUMmxpYtH7QvSYmGBQNvoxKcG
	B6fHTvBYvKRBq3+ieu59CmXHEbTnErk=
X-MC-Unique: N6Jqk2AONpiKWLYIPehZfw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Ia4AD7tan9M0ibR4i5R/AvAtYphDG74NPVk9FHJc5jJ+NGS0yzMVbXBNBEA0qbbIfwhVH+vdlLeCyGAw/tzvEyQyO+MmUl7kMkUpCHbs9XbxR/IwIiD5ZSGVFHPLxLRr+RcAo99zgJK8uXPT8R2zmNCL652PnBR1VRRKf3E/Bz8g/12aHuZSqeWndVLotf7HyP8afstB9+BovLZ7nllGZpHKEy6hxcT9SBPpLb3vRt90JoDL47CJthu37PRLKwMYZuoUsUff4nhGcg3+foSF79wbafe2WS/j6wkpx0s3PyarY/rktz8njux0hbc8vbGj14p26ofslinGumt/3pZ+9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jEAtRMfNFzRIgov+4hJ20x/I/cYX3+PllG2qKjsHlbY=;
 b=cVQ9nzNWOdB6VJXDlY0Tin/BRBU+zNcLm03Hv0/kXxIerYliPrAchRTawEiBAIA+RKTElrOoSr/6QlVrqPmdRpHAfsu0gmXj/jPw6Hl0GhwZ9nXjnROXLASMh84ICOMMJZRvGDp4dYDIUragnBksqH96EdELIW7VYj7k63pFikPYZRmXxiVf7RQgYQ+VQ8fHENHxpAwq5bIQ/AFixats6eMYbta55ycqtx7xoZqy66kSyAxqnk9N/4bVbq6T3xTQeL2TOUCl67lodHKBYpQYDDO5HfdjldrrxuvCKtXZu945sT11FSSZqrZ4DhIc3SXnULsawiTapVczna1tY0PveQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
Date: Fri, 12 Nov 2021 10:47:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 1/6] VT-d: properly reserve DID 0 for caching mode IOMMUs
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
In-Reply-To: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P193CA0144.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:209:85::49) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d6d930f0-2441-457c-6b0e-08d9a5c183e4
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2335:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB233532B0AFB5E3B86BA70211B3959@VI1PR0401MB2335.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CZsb90AEBbbUKh8IaOvqnFpNkH83kED5XQ/hADwlMJHYyjYK5UT+tmDbM7RpwYBOX9QBFl5ackQvV/GZGs3GKvkRcKzWY3AJG5LbOpU+ibOnbIkJU47CXkOIurGWN8M9qSFRMo+gW83QiNfoWS3unF0f534OimR8IFY4qYhJqnyds/tJVhVuEalnP8BJAnyMjgnsAZ0mHYNNRCD4K1Q6BobZVhnIGLKvCdgGUPezei0Umqn6yjWAYLMdwLmcoEqogxJLKtQS2+Xam4dceh9eEOVpPGgF76XP4QYMuIpvXIwqMHXXWciMbqESzqdCxLiNf4EXTaZOUc2qMciN9zRVsgEFJ9kyF0P/lTny1vmoHo1pdaqccvnEZL+oQ1nC0YYeiD4ivFHlJcScNX31NAm4jSIpCL+imS/lL+hgS0k0/P+SioAHk3snphCzPtiN4uzzbp8102htRNNZQJDxDE2yFvGiNFlx8pZBE4Nzf3hLHQrnQ48sIvr7Yyl/Hdu9RxfwFGW7x896bn/TSygUoZTPxvcdIXBaadIfZWDKLTPUXT0YNcctoLQiM/mMXA+ci/rWd/3DzM62K/7FdIL1orac/eAwYiqlen6LMYdOxGtOrETLitryxbwY8TsESwkVv81L+Qxm0xr9SbrS1umkmNqL6LJVhX26BzcqcjQ4eQKkPCufVWryue7pXa0siP9+qaSZV7keskywUgsbJTnIl1g4lguPCEZB2IyBafaA1eMzZ9c=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(4326008)(16576012)(86362001)(956004)(2616005)(316002)(186003)(26005)(31696002)(38100700002)(66946007)(66556008)(66476007)(5660300002)(8936002)(8676002)(508600001)(6916009)(6486002)(36756003)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V3pUdm5EWkxEdE5meW1ObWowNTdSb3hzZGs2NG9uek90Y1NlOUk4azZMd3lS?=
 =?utf-8?B?cE9yUy9lUG81T09OVmltVUdGdnl2THdqKzZZMDdESWlSOEFTTE9XcitldjN5?=
 =?utf-8?B?UDJBVE9zVG1MRHorcnVNL0pnaVpqRWk5dkRvSTFrTGZHbHVJOE9pZE5XMW1i?=
 =?utf-8?B?cUpmNnB1Y2lMMnZHRzRQMm13WEEzM1UvenlHVDNOMWE0eUFnUWtWbCtSTWNO?=
 =?utf-8?B?NU9RMkhUVW1kMm10WGE3QTRaM044a1NDVkxDOHlxajRJTmo2bW14Y1BJZ28r?=
 =?utf-8?B?L3V2ZUJJdk5Yb1VxSjk0eStYdE5hQWcrb0h0aDQ5bU1TRGNSYVpUU3hONnp0?=
 =?utf-8?B?ZzRWdlJBdlRhY2JrY0xOUkx1bmdxb1NqcllMTGM2WTVjU0F1d1gvNUNJQ1V5?=
 =?utf-8?B?Vlc4NTlLN2lua3BPN25PKzdHS2VvYVJGVEJETW1NeVNLWnNiOHlZNVpnZGU4?=
 =?utf-8?B?dDBiRVZuclViN2hjdWZsdC9OOThRSjRqcXRCQjcrcHY3QnN4WjdsdVMrZzNG?=
 =?utf-8?B?T3NYRDNla1h4R2oycjBoTVpzaUppNVkyajJHOStoNnVnZk1BeEpUUzF0Q0xG?=
 =?utf-8?B?VG1SSVM4OVZXWXJSWmowb3Q4YXV1TloxVXFITHprYmhad1VKRUhoaWZJMTFP?=
 =?utf-8?B?S29lQnhsTVcvVjExb25HaGlUK2FzRlZSclpwL0p2OENncXdoa2FFaU5DbUJn?=
 =?utf-8?B?cUhHU3Y3WHY3S1UybGRoUFltazd3NTFLMVhNNGpiVFU2dmR3bTM3VC9NZ294?=
 =?utf-8?B?L0FiKzR5Zm4rVXJVVmlwVG9Ec1lWb2VHeDBQL0Vhak9ZYWxCaUlja3R2K2Zh?=
 =?utf-8?B?S1NnVDhTRDlJV0xjbTR2eXJqTnVTcmlMM25OTEdWbzl3VzM5N21sbWg0MVpE?=
 =?utf-8?B?WWJTU1BxRXVnaFlWeVhqRnpYL2ZwVWRaTFRzbmhqSlYxQ3Z6Y0dHdjAzaEpX?=
 =?utf-8?B?UE5PeUF2YUQ5TTh3RENyZ05XRVphalByLzJGa0NNNmowQzBnYlE5RDJ2eFdG?=
 =?utf-8?B?bzJqUFk0Mm9ibitGdWl1TFJzQ3RNRVFnbzlCN2ZycnFmM1hKdGdGZmJkV3Fw?=
 =?utf-8?B?NkpwRkw2NUxxSjlKVm0rZUg5dVRQdzRqYjZJVDVwYkh1R3FxYlF0S0Z2azR3?=
 =?utf-8?B?cmhJSFdsOVMxekVRWDh4QVQxRGEzVi9SVGQ2Mk5rc2hpTGtKcWt1MEZ5ZWJr?=
 =?utf-8?B?L2QyL0N1dGV0Tjd6VUZSeTZIUms5eXRLazdBaTdQbUx4VlgwSGtzZUMzM1k5?=
 =?utf-8?B?N1RXQ2R4MkhnaDhWd0NqcDk0TVBSQ0Z1RDRnWSt3TUZvL0txS2EzVStGdm0w?=
 =?utf-8?B?RkIwRVdjWlp1UUJhZStyY3FHbWxicXJ2TmhuZy9CVmR6b0MyTjEwaWVBUkUy?=
 =?utf-8?B?bFh2dU5nbXk1ZUgxRmtsQ1IwYStqYmw2eVRGNVBTUjNHQ3lDbnJwOHlFMTZa?=
 =?utf-8?B?cTdVQjdUQzhKaUJQUDVONU95anZPNHBYMTVGK1RITm1vdVNIbjd2U3NzWmEr?=
 =?utf-8?B?RGhWZmlSVVlHTHBuaTZ0VEx2RzJUM3FJS3BYUnEyQTdXZktvVVBQeWgyOS92?=
 =?utf-8?B?cUVMbkxVRnZ6azRObFNubGxXMlZFbWlIb3hxd0Z1ZjJaYVJ5Vk5iK1J1TFAy?=
 =?utf-8?B?ZThqWFUrTHA4SkEwSkliWitVNUNwdGp1MlFQR0p3MkR2MWRKL25xSElJRXdO?=
 =?utf-8?B?ZzRqaVJ0QXpBenh3N0lOQm9hUjVyZk9PbUkrd05wN1M0NFJLYmtRRkJSS256?=
 =?utf-8?B?UE90WU5iYTA2TEN4UjRad3FMUVpxRXFDd01Xczk1ODZrUEYvRkhuYWpRRFRW?=
 =?utf-8?B?dVYxbTJOK3JsMmgzTHh0aWNpcDFlT0tJbGwxRzQ3NEk0YXcrYzNFcFNIbjRq?=
 =?utf-8?B?cnF1aFZiZnJtMS9OTlZNRjJGMG56dWd3b1VyZnNydW9JdUQ0SHpSSHc5am5I?=
 =?utf-8?B?ak1vNGw0VS9CZ3NPcnJGZDdWOWFFTlhlTDFRZHhvSmw4WDAzZEdvNlZtYWx5?=
 =?utf-8?B?YUUzVWF3RmNOaWdNNWo4dy9wSVcxdG5DN1JIcjRhVk01WE5XcWQ0bFFveklQ?=
 =?utf-8?B?M2s1djZ2bUxsU0c4a1M2ZGtsSFdlZ1ZmMWpHRERTWGRtTlYySjcwZVlpcGU3?=
 =?utf-8?B?Tmg1ZmZpTHN2ZGh4L2xodUNKWjdVVGZ6MEZhWTVHcmFwZFNQNk1RNHBML0Mv?=
 =?utf-8?Q?i3nqfcH3PQ4yrZGxchGq9LI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d6d930f0-2441-457c-6b0e-08d9a5c183e4
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 09:48:01.1221
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Qsju1HUcYOrpY0U0zvZpdd4ozh9Wxi8YgViBgeQ52M5vH5IU54XMCxdY0QnOwW9lM9gvP6QvR/oVLSl1EiEgTQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2335

Merely setting bit 0 in the bitmap is insufficient, as then Dom0 will
still have DID 0 allocated to it, because of the zero-filling of
domid_map[]. Set slot 0 to DOMID_INVALID to keep DID 0 from getting
used.

Fixes: b9c20c78789f ("VT-d: per-iommu domain-id")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1257,16 +1257,19 @@ int __init iommu_alloc(struct acpi_drhd_
     if ( !iommu->domid_bitmap )
         return -ENOMEM;
 
+    iommu->domid_map = xzalloc_array(u16, nr_dom);
+    if ( !iommu->domid_map )
+        return -ENOMEM;
+
     /*
-     * if Caching mode is set, then invalid translations are tagged with
-     * domain id 0, Hence reserve bit 0 for it
+     * If Caching mode is set, then invalid translations are tagged with
+     * domain id 0. Hence reserve bit/slot 0.
      */
     if ( cap_caching_mode(iommu->cap) )
+    {
+        iommu->domid_map[0] = DOMID_INVALID;
         __set_bit(0, iommu->domid_bitmap);
-
-    iommu->domid_map = xzalloc_array(u16, nr_dom);
-    if ( !iommu->domid_map )
-        return -ENOMEM;
+    }
 
     return 0;
 }



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:48:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:48:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225033.388636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTAY-0004Nq-NX; Fri, 12 Nov 2021 09:48:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225033.388636; Fri, 12 Nov 2021 09:48:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTAY-0004Nj-KG; Fri, 12 Nov 2021 09:48:26 +0000
Received: by outflank-mailman (input) for mailman id 225033;
 Fri, 12 Nov 2021 09:48:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTAW-0004Mh-VE
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:48:24 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ad45fad4-439d-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 10:48:24 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2053.outbound.protection.outlook.com [104.47.9.53]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-4-21gbcw4IMbadGv0vIOpLTA-1;
 Fri, 12 Nov 2021 10:48:22 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2335.eurprd04.prod.outlook.com (2603:10a6:800:2e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Fri, 12 Nov
 2021 09:48:22 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 09:48:21 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P193CA0140.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:85::45) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.11 via Frontend Transport; Fri, 12 Nov 2021 09:48:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad45fad4-439d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636710503;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=T5pPKnQj5UnvBzgr+/BnzNrg1H5CCPhXELs+pod4pwM=;
	b=nnc/ZZVHblZUH+5Ak85NSW/KjpPwnAKvpyH9HR+Md3zDi6qA7d3dSBubq2eQ6lSxkCw00C
	KpLmpJe6tuqA0Y1bo//ecx6LXlYj3vkaOuqpcsKbrItis2I+xN+CMaKWkndNYSOkTnHyHB
	HnnY7p7+PJuQRR2QJCApVQUTrqV5haA=
X-MC-Unique: 21gbcw4IMbadGv0vIOpLTA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=H3i5GW2NsHkETFrxaBkPtaKNrEWKlGhAg38I9CiOpd0oJgnM5jW3fe/rLpAKWairhKz05hvF37NkdE3uAYYZg66dlbPO2w6ueWGWCDg21WbUwgvF7rnyS2p/stl7D4xI157tZ5g3EraI3C1nxvCeUUmFmLch0Wmppc1jJzIu8V/BqqrguOiqTt97CK6k+qNR6OGVXspJzo7K/W8kGQIAXtrXTFBS3fPVpsMut7svhbbC3KfFhzrEDm5CQLj0RTKRmiVctBb4FKXcBrx51wKtp9nKTdzudRZlD/Jz080dBs1Nvhz5TTvYzt0ZA4Ct8eygxpmqDm4kUcc0jUJtFQP+Ag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T5pPKnQj5UnvBzgr+/BnzNrg1H5CCPhXELs+pod4pwM=;
 b=geLzZO3elEL9b+3pKvqtTK2qVx2jvrFspBurMVyPK5vlZ4mmG1DyeSmMRtdKQje8FSz4LphE3IYjUKFsrOV5htGAu95RQw1NAWeHVtK4NH7eYiY2wxZ6ZMFM+Br4V3IkOKRhQ7zva4bQ5TqBVw7seIHL7pejS+OG8Rpy6X93xyCKb3JBzdj2FcomMFZTRAjALFDR12uAVy7/kPwh5U7t4WAgf+O3RN1ofP3MfUHWZ+6S01Vecvx+qR4JBOttTVpl7NyNdy2SWLS/ofmeloAfIeFh8rlI8Law3/q5U9IeyWC+J1XNEbTa2jwh/fD+99WordEelyMZzfxoBadBhcASPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <57c32156-369c-a92a-ecc0-fc4b890eb05c@suse.com>
Date: Fri, 12 Nov 2021 10:48:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 2/6] VT-d: split domid map cleanup check into a function
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
In-Reply-To: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P193CA0140.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:209:85::45) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 050e1c80-c7f6-4b28-fa86-08d9a5c19049
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2335:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB233578E2272F89A57DDA44FCB3959@VI1PR0401MB2335.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	xMs5D43AUuEv0aRZ04rlnggXcFl6w96gzoiGF/SPBtgHqE+uqu4mQUM8lfdHfUKIl36pRG2TN6Df2ONGtrD4+3Ay+Em5E8mpJVCwX+WqUsUSQ1ZRLgQWrr6XlSFddWkMyBJKOM2Fmq7phrlBDi+udikS/aLhO5jIZAx/T8IBkVw2V1+C3A2pTGzpZUHXrmD1Jucu2wpRFdP+wjY19+uQrvWKUi35H28wQpe/6sOUfLXhEYacgRcCaPVC0NJKO7n+SffW6g00UL4Js+2HH5zFyHpK9hLwFuzJhIlv3vOmdSF44BEYhdIyuIJdwzvm7T5m237PBpKjSOFyVg+B8d/wXImN494Hj6XC+nkEBZ5IoYC1leTcllDDgRxLO2H3vNFMx2bd/9r/S9bKFvBxJCf0sGXCq0k2CnoZMDXh2D5pj1lPDb2PcokQEGox4TDhaW1rth+WSigk4pySigcprIhHt5zxHlyIn/WF64Prv5Ympg/rSsv8vQoFYsragt1/8yAF6Cx1+FNW1KQURZtMB2ohDr8AQm6VJTarulln4ymkG60cZsnfM03mVE4+ZDIRQrcd0RTX2jIg+Nkxp/aNaIWfo/0vR+GJ9OvKZJiqqL41VPJJv4SBqPj07x6iui5p2FIP0Z0hmSqf3xyZ1CbFkW+0jRZbXnEGABDodpfhjGwm5Md/jvZHPuVwRAf7UCDwAYabT9Nw1V8t4Ls8THPDt7OV1DFkoATSDIvjvaUVTyrdAQg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(4326008)(16576012)(86362001)(956004)(2616005)(316002)(186003)(26005)(31696002)(38100700002)(66946007)(66556008)(66476007)(5660300002)(8936002)(8676002)(508600001)(6916009)(6486002)(36756003)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N04wYXRBQ2VkQnVzNlY5UHZjekh1eWdWM3M4Y1IwVHRsdk1RVTZySU1qQzFn?=
 =?utf-8?B?ZlNEc2tBdFdsMWRrbGJGMlJkL2JJaDJ5bXN5VVMzTGpja3FPZEZOT2JDWU1C?=
 =?utf-8?B?UldPUHlCcWtwNVcrRUVHMVliS3k2aDd2dGcyU2YwUG8ycWJSMWFnVlBySnBr?=
 =?utf-8?B?SFZGZEppb2lSOFcwdTAwUTlUQUo4SDZqN3oxcm1Jekw1bjZHM29OU3NuVlY2?=
 =?utf-8?B?NkE1OHBueGVCOVVJNjdmUElBaDVEVzFvWTBhNExuWXI1TWtPNkNSYnJaRzF4?=
 =?utf-8?B?dkwzdlQ4cTA5Nlg2ditwUXQ4ajNTQ2dtblJEY3IyRFVtaEZsc1hpdHN3MjF1?=
 =?utf-8?B?bjl6eWZpNFk1U0JqNU9ZMWxWbERYQzgrVkNlSXlCZW9FcnBqLy9CTTJUVzBj?=
 =?utf-8?B?R0ZWTHVFazBRR1NEWnh2WTlvM1FxUWlGVTRIeERMVEhyNkEzNEdnZ2N4M3A0?=
 =?utf-8?B?VEV4dVF1eUp2a2VRQTZNR09HSkQ4RTVlTTM4WUV5SVRMUUt2Q0YrR3M0RS94?=
 =?utf-8?B?c05FSHBVUmZLY1FNM1l6MS9rWEZUSHkzanVGVHhDWTdNcDFPbCsvS1JWWkhM?=
 =?utf-8?B?b0VKUVVWZDF3Z0dPczA3ZXBVWFNmaFFHd1A5VndQSUFiU1BZOVFXVXdXcENt?=
 =?utf-8?B?dmFwb0V2VGFyZDIvWnFjRnRyb2JYWjNzQmpYS1BQTlVZRzl5VE5rVE5YdUxy?=
 =?utf-8?B?ME9GTVpWQkRuZHpqUmR5SHBYWG5WRGw2cWJXN3pqbnp4R1hNZ1VmWkJlb1VG?=
 =?utf-8?B?SEZoSzZUWUtWRHlhTU16OVpkNEQ5V3pDd0ZLaEhabGRrZmE3OGFZRTZqcXdp?=
 =?utf-8?B?cUhhdEJJZitUaWxFSWZINUxtRjRkTHdFZFY2QjB5ci9ZOGFpZkljOGF1eUh0?=
 =?utf-8?B?U3ViZG1Rek5EVjBVeFZXWUc4V3JZRmVUN2lMYm9VY2dUbkp1QUFLYmZXOHdW?=
 =?utf-8?B?dmhkdHhQNWphdEx0UitrQ2RySC9pVmVWSldPUzFlUkQrMUFFZ0lNNm4zR0dM?=
 =?utf-8?B?dWt0Z3YxdThUMmJaSUt1YUVzUFhuREJaREtZZzJ1emJVNEtVdEQwMHc0Q1V2?=
 =?utf-8?B?TzFkQlo0QkZmbC8yLzdGVW9kNVdjRUNScXF1OUVSNkh3dXM0QUl6UkFhTzA4?=
 =?utf-8?B?NmFIenFoVzA4d3EzcEdyMzZ2Rmh3K04vYmlSTlIrVzJSU2ZlQWROaGRaeDh2?=
 =?utf-8?B?eGRVMkdxdURrTDR1a0NpTTNOOGhjaG9kV0x5Y1A4cjFxWm1DaXB0TXNjcXJG?=
 =?utf-8?B?ak5JWExpa0lwU3QyZkZjSFZ3MGZkSHI4ZVFDVW52SlRXd3k0cWIxNEJwaTNp?=
 =?utf-8?B?TG9XT0RuQkZHOHM4TjJZZmlaNjBQYTdrNHRNakErb1VGZ3VNT2xlL1F2b0w5?=
 =?utf-8?B?TWN5VXFuSjc3ejNKUlpoQk9MUUtoOWpQbitrSmpOd3cvRlNVVk51b05aK1B4?=
 =?utf-8?B?MllhRUYrT2YrNVlSbkpVQTFSTlUyTFBtMVFyRWtaTHNyWk83NTM3b2pjOHpk?=
 =?utf-8?B?dlNzYmhkdXdpRDdmR1dTTWM5aGVXdnpSNE9uM0ZqM1pOQW84S0VrWW8rY3RU?=
 =?utf-8?B?azE5bDFCUGxxL0txblpzb0Z3Ny9ZUHpxc3RFOXZmOUtLNGMycm9id1hKTERy?=
 =?utf-8?B?RjdnMWJ4MnJwOURPRjdFMTM0WjRscEtFczN3UFhFeTNua0N3anlNWjhjSjZ6?=
 =?utf-8?B?N1ZRa0I1OS9VR0xCNzVlM2RUK3o0SUFKQWpOSURJZENhVEpoR0RjQ0Q2VUt4?=
 =?utf-8?B?ZHF4aVhicTM1OTdGalgzMisxNVQrSGk1emNaenAzV3ByMVVnd3dlbFBZYzNp?=
 =?utf-8?B?L2pFMDZMRzRHUnVNOThGTlJ5TjM5MUZnei84R1VnU01XZnc5NE1lSmtUOHhh?=
 =?utf-8?B?M0loRW1wVVUyc0tzWllHc2hvWUR0M1plZkd1emplN1J0UmJEQXNJR1VBamh5?=
 =?utf-8?B?QWZIc0xyY1FQbmdFMFZWaDlFSXRReUtOb3ZKZ1Q5Zno1K1pIUVUxMFVwY1ZR?=
 =?utf-8?B?WHpTL2picDdCMUhnOFAvbFpPUXhhWkxYS0hjc2xxMW1XcGNhdFpMTXQ4a05m?=
 =?utf-8?B?dmlrakxWTWxkNDdnOWpzaVFSTHNYZWFZOUFBQklTVGRYWmsxQkwrSDd3c1FE?=
 =?utf-8?B?ZjY3RjNreG1GZjl4bFhZeUtFVW9MU29ERjBLbDVoQ0FrbmpwUHYyT1M2c3ZN?=
 =?utf-8?Q?YFAa9b1QdbZacaqedLucjq0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 050e1c80-c7f6-4b28-fa86-08d9a5c19049
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 09:48:21.8863
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: S88J141z0536St9f1ChgWjQUBW2GftoxH80TwBwLVh+BFROxVB6IAJC1QlhwoA1oYj/fgBfbJ82BP5G4vpguKg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2335

This logic will want invoking from elsewhere.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -157,6 +157,51 @@ static void cleanup_domid_map(struct dom
     }
 }
 
+static bool any_pdev_behind_iommu(const struct domain *d,
+                                  const struct pci_dev *exclude,
+                                  const struct vtd_iommu *iommu)
+{
+    const struct pci_dev *pdev;
+
+    for_each_pdev ( d, pdev )
+    {
+        const struct acpi_drhd_unit *drhd;
+
+        if ( pdev == exclude )
+            continue;
+
+        drhd = acpi_find_matched_drhd_unit(pdev);
+        if ( drhd && drhd->iommu == iommu )
+            return true;
+    }
+
+    return false;
+}
+
+/*
+ * If no other devices under the same iommu owned by this domain,
+ * clear iommu in iommu_bitmap and clear domain_id in domid_bitmap.
+ */
+static void check_cleanup_domid_map(struct domain *d,
+                                    const struct pci_dev *exclude,
+                                    struct vtd_iommu *iommu)
+{
+    bool found = any_pdev_behind_iommu(d, exclude, iommu);
+
+    /*
+     * Hidden devices are associated with DomXEN but usable by the hardware
+     * domain. Hence they need considering here as well.
+     */
+    if ( !found && is_hardware_domain(d) )
+        found = any_pdev_behind_iommu(dom_xen, exclude, iommu);
+
+    if ( !found )
+    {
+        clear_bit(iommu->index, dom_iommu(d)->arch.vtd.iommu_bitmap);
+        cleanup_domid_map(d, iommu);
+    }
+}
+
 static void sync_cache(const void *addr, unsigned int size)
 {
     static unsigned long clflush_size = 0;
@@ -1675,27 +1720,6 @@ int domain_context_unmap_one(
     return rc;
 }
 
-static bool any_pdev_behind_iommu(const struct domain *d,
-                                  const struct pci_dev *exclude,
-                                  const struct vtd_iommu *iommu)
-{
-    const struct pci_dev *pdev;
-
-    for_each_pdev ( d, pdev )
-    {
-        const struct acpi_drhd_unit *drhd;
-
-        if ( pdev == exclude )
-            continue;
-
-        drhd = acpi_find_matched_drhd_unit(pdev);
-        if ( drhd && drhd->iommu == iommu )
-            return true;
-    }
-
-    return false;
-}
-
 static int domain_context_unmap(struct domain *domain, u8 devfn,
                                 struct pci_dev *pdev)
 {
@@ -1704,7 +1728,6 @@ static int domain_context_unmap(struct d
     int ret;
     uint16_t seg = pdev->seg;
     uint8_t bus = pdev->bus, tmp_bus, tmp_devfn, secbus;
-    bool found;
 
     switch ( pdev->type )
     {
@@ -1780,28 +1803,10 @@ static int domain_context_unmap(struct d
         return -EINVAL;
     }
 
-    if ( ret || QUARANTINE_SKIP(domain) || pdev->devfn != devfn )
-        return ret;
+    if ( !ret && !QUARANTINE_SKIP(domain) && pdev->devfn == devfn )
+        check_cleanup_domid_map(domain, pdev, iommu);
 
-    /*
-     * If no other devices under the same iommu owned by this domain,
-     * clear iommu in iommu_bitmap and clear domain_id in domid_bitmap.
-     */
-    found = any_pdev_behind_iommu(domain, pdev, iommu);
-    /*
-     * Hidden devices are associated with DomXEN but usable by the hardware
-     * domain. Hence they need considering here as well.
-     */
-    if ( !found && is_hardware_domain(domain) )
-        found = any_pdev_behind_iommu(dom_xen, pdev, iommu);
-
-    if ( !found )
-    {
-        clear_bit(iommu->index, dom_iommu(domain)->arch.vtd.iommu_bitmap);
-        cleanup_domid_map(domain, iommu);
-    }
-
-    return 0;
+    return ret;
 }
 
 static void iommu_clear_root_pgtable(struct domain *d)



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:48:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:48:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225039.388647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTAv-00051e-1W; Fri, 12 Nov 2021 09:48:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225039.388647; Fri, 12 Nov 2021 09:48:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTAu-00051X-U3; Fri, 12 Nov 2021 09:48:48 +0000
Received: by outflank-mailman (input) for mailman id 225039;
 Fri, 12 Nov 2021 09:48:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTAu-0004Mh-6l
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:48:48 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb51e27c-439d-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 10:48:47 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2055.outbound.protection.outlook.com [104.47.9.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-16-dBZ6JrT9NTOwvvUdyK3rtg-1; Fri, 12 Nov 2021 10:48:46 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2335.eurprd04.prod.outlook.com (2603:10a6:800:2e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Fri, 12 Nov
 2021 09:48:45 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 09:48:45 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0042.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Fri, 12 Nov 2021 09:48:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb51e27c-439d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636710527;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7FtwyADRDx+mGc76WSsZhGw7jgd3KL9ZVlpKovmy4Q4=;
	b=Vqs6MSUVe1p1BT44ln/TsWvA+xNe0hDM8MyRJflc99xxzR9zZF5ZwqoJ0wE25ju3m9RBwH
	sl5elpeVhwNVGNQfsZOJzfns9Mecx6GaN2Hbm2xMHlSY7j5Q9dkUE74kyMxZESD/eEpB+D
	ZUlc8npyq10i0/HfHWbFfIvQeZRynrU=
X-MC-Unique: dBZ6JrT9NTOwvvUdyK3rtg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Z4DFr5BKmlXnAyIJG/YHcSUdlcRfbVNwW3lu1qkivLxFuxIUfIJVidYPvVuvIvZzCVxbXgRA6Dp3JosJYunXLsALnJi27hqmhFrndnxTx/32ykoqWOBCKUNCB+GGN/3t5XXepC1/13tDuKv9yHkwKRA7TkfB6gtQb+x7deDcsDwBVNdjW4bzKZW8goHEaN7rYj3u1V0POvWO8cVQcbZuP6eYonI6c8QlOYbPJt2Yj/AdOKI5g5oyWoBA6UWrz3N9E+PlUjH6vXIg9y4mc2cXrHSA471aPVY6AIw6ZPqfBT9Of3Lylb69/NrOkEYFqjsr0Fn2U+MFNnhkzvbBj2A8fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7FtwyADRDx+mGc76WSsZhGw7jgd3KL9ZVlpKovmy4Q4=;
 b=RJozYg7RCivIdFs94DHiSK8ApqSIl2dR28dwAcPtE4CfTN+M8mKCUqYyixjHuWYk4Ki/bKm90vLysJdSYHdQ8kE/mLG8RFeOdhZ63t7kuIjckZq/K0ho8E5uaHVt5jUT+0TVjXrfeUaeTMv4hyi04RP3Ned9wU89leM14cmkIAd3fwc8/sH4qWOjn16fzfJiCgXn8nXa/hEfB0Nwmz1dUg0cOSNx6cU7ERMDqgjytJ1s5JD3wsUVXB0MnTqJmDuV+KsEQykwWiEpHN0stll+jsiNT3S8w30HJbikpDtkCS1T17cVdOOoJE8dpeb3IrvOCjArcSNGL7nX06OUo4I8Pg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d4ca5274-dbbf-4cde-1a4b-0d7fe294c360@suse.com>
Date: Fri, 12 Nov 2021 10:48:43 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 3/6] VT-d: don't leak domid mapping on error path
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
In-Reply-To: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR1001CA0042.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::19) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 08fade5c-8977-4cca-4029-08d9a5c19e2d
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2335:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2335976C51D59ABDF7F6C396B3959@VI1PR0401MB2335.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:639;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ddTZL7lK2pZfRou+xY6cP8jdZdR6zJ2Z0tMoxvccI+38+hvFDfFFXajAXd0sr3wcWe2dv0b9za/hiq7ofBIegU95fZwwoOvFFvaHYoyKAqs9I9ubZOIFFAGwMIXyocyzccvw3N9ue6e07r4DcnukhyDorgWymZqZrdXr+iIAmAPm9FLDpFfULcJmJik+NQ0nmcIX0Npy7Gx4Ak1bjBy7WNSAFe/l7XRiY82osLf7SBB/2NSGWELHpZnJWQa8ljKQWPrUYOWdMVJOECxeZxHFO7vmcldIQJYWhd8H/p5+2bzVNIO6c93JMT14//A6h+4cPkBiCemAA/5MqjlOGZcGVjtIe+p/GS9dWyK+hHiYw+oROO69Cqfi+54Y4dRIYoc6OOD/IsQFLSim1r/tMOM3AGbgfjxldPv/1DJTZ/jq442JJqDvn0zMAL3vtiXow7W8JVGiwyX4NMvI7NFDiM+6aRdkh1c5ujYMsub3nl9snkqqyRQwLNaONnliNql8nCMh6naB7M549CDZrHAvRVo9tamZHkVG4qKzLNCLK7b1ZFW35AgUAegh3opDWssM2ZRNOQgUgUTrTw0JcX0zYWhhnP8IJtDyYQVpU493i/FHJi17SEsoUGOOkG+qVLY3qlsTEa6fus4oJghro9ln97Dhgd8+kDcbVkjt0VAt89Pus9FlB53MAYLT9hHkgiUsRdfaM+7gg2v+pNEhYMQaDE3xGeKzn6iY/5DVswgyH2D4uPk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(4326008)(16576012)(86362001)(956004)(2616005)(316002)(186003)(26005)(31696002)(38100700002)(66946007)(66556008)(66476007)(5660300002)(8936002)(8676002)(508600001)(6916009)(6486002)(36756003)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZVpjYTB5VU9JK3BaSmh4OHkrVlJkUFcrTDBxWmlrTDdJQTEyamZIYVdJRWQ0?=
 =?utf-8?B?UDZJYjROMHg2Zm1ITG5tdHllVTRhM0VicXV1MXZDNm1ZSEwwT1UrMXdaZm9z?=
 =?utf-8?B?ZEJNNUpWODlQWTlsc2JRMVBodTdEcUJBMHRTeDgxVFU2eU8vNHVXR3Vody91?=
 =?utf-8?B?NUxvK2hBa2M5WTMySDYxbzNTQjRXWXNzcDh0RW5WTDBxZXR4dk51YTFQd3pz?=
 =?utf-8?B?U3F1L1hJUzk0TTlBQ1c3bE9pekVUSjFreXRRbUZlTjQrcFNxU2N3bWttSEZo?=
 =?utf-8?B?TkxnOTI2WGpFb2h1ZFZieXdGci9qMngraWVtRlBTV0NnM0lzZ1NabkV1NVRj?=
 =?utf-8?B?RVZnSUVvOWpSWnpuM1owdkpYT29SYUtTNTB1eTB0Y2x3RTFjVDk2VzRnOWoy?=
 =?utf-8?B?TVFQdFVpYXBhVmpwQks2dlhHSkdYbmJJclgxcnNPaGpKV0NLRGxtUkVxMFhi?=
 =?utf-8?B?VUJ2SWRjVkx2MVVQdndIMEhXblVEK3pudlBmWjJTazlWbzk5SWtqWE5MV0FI?=
 =?utf-8?B?Y1llU2tucnVSNXdscGlaN2x2aWgvL0syK1gyWXZNU1NzeEZSMmk3SXJQL1V4?=
 =?utf-8?B?VTV3RmxvbktITk1nYlJtd3VBMVhFUkNGVFFzWGhBQ2s3OEJBV0JKbDNDSCsr?=
 =?utf-8?B?OEVZMHViWkpWWHNtTHZtUUFWbWEzV2pYU0V3L3gxVk00ZVAvSzNwSmlUMElz?=
 =?utf-8?B?NURzakFSSzlzVmFpMS9maC9SVUE0aWM4MkJQeDlxd0FYTjcxYVNGWDExT1hZ?=
 =?utf-8?B?ZmszSEpGR3loeGpSWUhaUGxoeFV0NFlYK1p2ckVycGtDVEcxRmtSRGI2OUgw?=
 =?utf-8?B?QzkraEg3SHo2ZGpPSVhhYWRVSUtjY3IvbEdHR3VzTTRHOWNhZGFTMnFpUGNI?=
 =?utf-8?B?bEpmbnRaOWZhSnRyWnB3TW83Q1FNYWN6d2c0ZmJIY0hESDhDcjNEdkJMV2ZF?=
 =?utf-8?B?NmEzd3AxVE1GTi84bWlYdDVFNk85U1R2MWNqUmZ4Nitxdm9XSXkrWENDcm91?=
 =?utf-8?B?QUFhWnRzRkh0MkhESWEzZHMwVWtRVDU0UGxNSzl1OCtPeXArcFNoUU1RRnZh?=
 =?utf-8?B?dGx6YnVUcHdLMWozZXArV01qNWxhMGJUaTBZRGl4Z000ODFER2E1S0cyeXp5?=
 =?utf-8?B?cFA1NlYwRGdZRDJkbFBkZEVzR0N0bFgvemk4dmltQlNlcFhuWEVnNkF3cGpw?=
 =?utf-8?B?VlFGVmJidjBxRFB5eVY3c3VHTnppRXAzeFdZTnppNTY2S3NiVFV5L0pJcUIv?=
 =?utf-8?B?ak1TUHZhYS9lUGVqMEowVEtFdzBOMkQ2NWgwS2paaUNMemgzbnpjdENuY1hr?=
 =?utf-8?B?VXFPYUQ4dG15ZVIzbWFiZjB2QTcrMTcrYXlBaVprc3hrR0ZYVFVuMFVRM1Ax?=
 =?utf-8?B?RVlrdi9heEhYTE44T1NIZ1l4VnBhNk95SURoako0elhibWFjbWZXRG9yRnpE?=
 =?utf-8?B?WTJ4VGRLSHFVR0h2ekx0RDJocGRqeThlbTVkWk1pd3krN2J6dHpiV3hJdEdq?=
 =?utf-8?B?eS8vRHBMOU1mTWhZamRSYkd5dnczdmttSUJQOE5XSVBqTldNUisxODJ1bEtL?=
 =?utf-8?B?SXpXejIrazlxQTRMTkx5UTlEM0hGSWcrOGEwRVlaMzkrcGZMc2pzdHFaazhI?=
 =?utf-8?B?VnNhMFhJSkN4N0RXQmdVOEFyRXZRc0pKVlI3blBzc0V0QWVNVzFiSzRFd0hN?=
 =?utf-8?B?RFdqUW03TDdyNkJDdmxaVlFGVDJCcUowaFcwU1VBMThvUmZRK0doV2NCcGNM?=
 =?utf-8?B?dmdZMGtVU05ZbHJOQld5LzJwaXNlUVBWM21mQXpzajRFNWs1aXpKR0VUTWxU?=
 =?utf-8?B?SzEvamozRVlGRGtTSHB5ZkszZ2xSdjViaEFaUmcxRXZiS0hDblhHa3plM2w0?=
 =?utf-8?B?aGhlSWM1UWExMXJFQ1M4UGY1MlZFd0ZqTTlleHp5TG42aEFYZ1BXTzRERmFS?=
 =?utf-8?B?OHEzTmV0VUJ2QTB2Y2gwUzdWQ3pGNk44YmR2Yk1nTDdkSXVuclhrTWl0NWRz?=
 =?utf-8?B?aTZ0SVhkamtoVWdPd2wxTWI1a2xCUlVvdnJ2U2hDbUh2Z1RlajUxSkpTcnB4?=
 =?utf-8?B?VTNkOXU2cmxyR2tpaUZGRGhlYUlVOFhqUlBEdTlMelR4b1lUWlpKN1V0cUt1?=
 =?utf-8?B?dFU5MCtSZXROd2NuUWU5bndxakw0bDBMN3p5RldFU2VJNUsydy9MdFcyY0Ji?=
 =?utf-8?Q?vYmrpZRbgHG++CHSBsw2buU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 08fade5c-8977-4cca-4029-08d9a5c19e2d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 09:48:45.1732
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dOymVuW6wZ8cwDZpJSwSYwMbDmLoGpEdGBkkmD+RahwYN0dIo4+VdPwvkINE51AG1eW/LXnMzJFZapw80eP/uQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2335

While domain_context_mapping() invokes domain_context_unmap() in a sub-
case of handling DEV_TYPE_PCI when encountering an error, thus avoiding
a leak, individual calls to domain_context_mapping_one() aren't
similarly covered. Such a leak might persist until domain destruction.
Leverage that these cases can be recognized by pdev being non-NULL.

Fixes: dec403cc668f ("VT-d: fix iommu_domid for PCI/PCIx devices assignment")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The Fixes: tag isn't strictly correct, as error handling had more severe
shortcomings at the time. But I wouldn't want to blame a commit
improving error handling to have introduced the leak.

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1518,7 +1518,12 @@ int domain_context_mapping_one(
         rc = me_wifi_quirk(domain, bus, devfn, MAP_ME_PHANTOM_FUNC);
 
     if ( rc )
-        domain_context_unmap_one(domain, iommu, bus, devfn);
+    {
+        ret = domain_context_unmap_one(domain, iommu, bus, devfn);
+
+        if ( !ret && pdev && pdev->devfn == devfn )
+            check_cleanup_domid_map(domain, pdev, iommu);
+    }
 
     return rc;
 }



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:49:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:49:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225046.388658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTBM-0005eJ-A1; Fri, 12 Nov 2021 09:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225046.388658; Fri, 12 Nov 2021 09:49:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTBM-0005eC-6l; Fri, 12 Nov 2021 09:49:16 +0000
Received: by outflank-mailman (input) for mailman id 225046;
 Fri, 12 Nov 2021 09:49:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTBK-0004Mh-KE
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:49:14 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cada10d3-439d-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 10:49:13 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2058.outbound.protection.outlook.com [104.47.9.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-5-52YRadEmOyCYYlQMIy1OCQ-1;
 Fri, 12 Nov 2021 10:49:12 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2335.eurprd04.prod.outlook.com (2603:10a6:800:2e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Fri, 12 Nov
 2021 09:49:11 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 09:49:11 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0088.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:8f::29) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.18 via Frontend Transport; Fri, 12 Nov 2021 09:49:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cada10d3-439d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636710553;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=AF/Vb7ed9I59/XJgr3zPTQZWriuA9PRohF+C+Aac0+I=;
	b=Lz8C8dwbxYi7F6qMDEHqwOdxUk85xBKRPOk5Cnz/1TyUbjjK+mu+1VJbBTgJ6YO/gEaXah
	GcR6/kPrkznNj0+2mpwk+Eo7mleTfyfN0xYWU2VnYMOXz57OAG/s7gLFKt5t5fmNuai+dr
	SzOVTCG8sTgUrDsQ2nUe+wEJ7+ceBdY=
X-MC-Unique: 52YRadEmOyCYYlQMIy1OCQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YbqFUXWzzSQKzbi5CHiYrcdA244NO+6rN4Zl07uvvl6QYX7UmMXrnwsVI2Vp3C3i7x8AebhGroa4qTddkIw4n2cfASp7p+Z8NoKYnG8tO9d7xIxDSepztaXi9HsylOuVrD10JgiINM7S6F2ct54QhloKD48ETPNYmobVlzArkd+caLe3n5Y6J8iKQmbPzBCrSymBS9leWMiHx5sait1TXJOEf+GSXbsFEx2imU9sE8Gz/WJ8u/NpcyjMG6qCiKpWwPSdb9Ip2fE04lhtE2OTkzUmxVPjiuoptnaEGubEsHRqP0WINih80QhXNnqSnTfpObpNiHLUtm9SY3z1Uk+qfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AF/Vb7ed9I59/XJgr3zPTQZWriuA9PRohF+C+Aac0+I=;
 b=kO/B6FJLzNWETiph8Niu1mlxwwUeAAxDNFgBF37lyZn+AmBqm0CMe0otsWStwSSDUqhnBJUIhs5g5ID7zYTmwzAD94vbeNpAio6QNT582z38r74J5kurwxRpR1sggh7cpbCQS3Jk8HQXFneCUQX92O5he94m+6IIHwu+Uyel15hPmA5NrQdkZtiL54Q1s0LVWrav+OcDT87SUeKqXcbIaRXYjPfMrd+sQNmx51WSGcacRyWWMEL/VATD8k/UN0yhtUtTfddw2hFyFHojGVy5MmoJ+77ELjhcvSPFqPF0mGcOm+NiLfA0AVLANUFxL9Aig7NI0Yx3gHId79JFxhZoNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7a802a25-8d86-d1de-446d-0e2d86b5a54e@suse.com>
Date: Fri, 12 Nov 2021 10:49:09 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 4/6] VT-d: tidy domid map handling
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
In-Reply-To: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P194CA0088.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:8f::29) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9c71ea85-ef23-4d6f-8359-08d9a5c1adf1
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2335:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB233548F64D20C5DC566F3C5CB3959@VI1PR0401MB2335.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:126;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jZ0FEiQg14thbjxTPn3t3J5NroKMzv43dX5soUQ2ctqWOkBylc3V9fGeOkVX2BlnAgxSR9yevyRRmUu19Lm3ThQihWaomqUPhq+m9oO7n6fEISCisZkU+LcB7W/XpY9jllWdx76KhX4qGb9GbnC/XCm3s6Chqza70nscamwh8soI5l4nfFEmg3eLrIyaOBajfVZ7yqXcLfLesHzrmw+NAsXLOFcEisS5S4epYz2qYECZ68ucgFGgblVYiBO9jQaOX1e2aNCcG1gtZ2QiOa2/odd/gFUSPJHnGJ+QmdIBFBwrXMo7FNI1uYjZgJMQYgyE6rjTUzTk36H68LBlFf2/xeA6P85uprd4gFdkB7ipQzu2hjQ5/GIWhCBxofRF4FgX0du5rug7VDBOiseVn1htXu+QbgelhGXMbgRa8jGi5iyWhv7ns1ouLoKrac3lui2mX7OfObn1m1SFREt0sICTbQ2T+pBz9f2qRlsmvMkYnIsQXQ3mkHFZ93mUj90YKQm1RyGI42wb1XC4SeuOV9bpYOAvBMKwoWTA6wUHQgcAWXvszcZkwx/Z8FqPIJ02mNm+FolKCFHH7DmL5iJhqXNJ8wROQdNBpeE/NIzfRp2V/Ie5p76Rh6D9699OwicCG1WQcaC/et0NWgCOI0hEuOcXdrwBuhJKXVGbB1SMhAmwKkuXR5iUSdjvMoRLtj1izLMcInTrB+ybPD7bBe8nPEK0ZDn0MEr4VTI02B/oSK6rzJg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66476007)(38100700002)(66946007)(66556008)(2906002)(8676002)(508600001)(5660300002)(8936002)(6916009)(36756003)(6486002)(83380400001)(16576012)(31686004)(4326008)(186003)(26005)(31696002)(956004)(2616005)(86362001)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MXdTbGhDeDFLcFUrbGxwaGRhZ2R3UXZkZFZOVjZlb29hMmpiWnVGaUhIUHZC?=
 =?utf-8?B?dFRMZkFpUWxpSmZ2VnVNTWdzVCtKZU5maGl0S2l1NzZ1K0NteUdtcVVudFVR?=
 =?utf-8?B?djVRVlY2a2ZmRkdqbWsza1NYWDdsMGNLWE1pRFp2UElHaWRHc2xRdDQ4blR2?=
 =?utf-8?B?RTBYVWdOMXN0bWhSMWZ3aWxLYWZhYkUvZDBPbHRyVDZQd3NFYWt4ZjVkTzFI?=
 =?utf-8?B?UUE3MmhZYVJOMTFHSWQ5RzE4WTdOUm51TGwrWi9UbTNuQm9icHgvMkJOWlc5?=
 =?utf-8?B?Y0dTWVFkenZqOG5YRDFINHBhVDU0VndXYVl0a2F3eUFxTmpFTnlaRDg5Wkdl?=
 =?utf-8?B?aUxEYjR0TnR4Ny8ybUpqcEs0c2FueTU2cVFPbXFSL1BLeHpYNkJUT01yWEYy?=
 =?utf-8?B?SEUyY2hrTTQ5Vy8yUWorRGp5RnJRUFNKemZtTVc5ajRIeWpSdTBrRnJlMitD?=
 =?utf-8?B?cGJFR3JaWW9GU0EvZWsySTI5eFp2UGFWMUk3SjRnTHlzWnllNUE2elQ3WFNG?=
 =?utf-8?B?UHc2MFFITVVPbVN0aGtiZ05rMTJTaDVLNjcxM0VSV3J3UDhEU2hJaUdhdjJr?=
 =?utf-8?B?YlhFaGtTWU9zTkhtRVpnbmw1SlU2RzhOWVVEdzArbEZWZDNkY3E2YUVqVWFk?=
 =?utf-8?B?VmQxQWE3QXE1ZXJ0Uk9oU2N2cHdrbEUybElZZ1FHRDd4MnRpTWZRaHJCOVpz?=
 =?utf-8?B?SHVvR1M0SXdqZGdVMGs3bk1mN2RUUXJDWEo1dHpTcU9TSWVxWXVmenhNb1JJ?=
 =?utf-8?B?UHJJekVob3I2d1pqanJaV0hvZ1NOSEpJaEp5TzRoZExIeWdPOW5NK2NSa1Vw?=
 =?utf-8?B?S01ZbytzOTBJLytoYlRFamd5K0dPRXF5bnh5Tmw3QTdFbWt4bDEyV2d1R0N3?=
 =?utf-8?B?dDFwc2JUMVRyalc2QzJ3OUc1T2I0d2psaEZZbkVJMEdFZGZWQ0c0Ny9SL1hu?=
 =?utf-8?B?SUxiUzFrcytlOWx4WGJFa1NpdUZHZXM1TmpzMkFxQTdxUVVRSTA3N3NSdFlI?=
 =?utf-8?B?UFhHTzB4Q0RrQnNIZUZnK09Yb1FSRVk5d0tvYXJpcFM5WkxvT0VJSGFsN0ZV?=
 =?utf-8?B?cmp0aVlGQkxKSTlWS0s5TDI5TTBLUjJqUGROSUdhNGNHaS9KSGF6bzlIblhm?=
 =?utf-8?B?OERDU0JMbFdubHNUWEh2eGtiWnhadU40UDhEZ3N3eHVNaFI4bVQwK1BjWE1N?=
 =?utf-8?B?NW1CZmxOeFcyZ1g0RzBrcWU3WUg2NWYvTjJKQXJBN0JLNStkbnRORk80K1kw?=
 =?utf-8?B?by80T0xNYlM3UUQ5Q3ZjTG1xZnpWRWh4ZFQwZzNPU2tHZEt2bmF6bWY3Z1FF?=
 =?utf-8?B?UE03M29STVI4aTJhSGxQM2ZTVDJFVk5EbFRsMk9haFpndVcvdkRjWmkyT2dv?=
 =?utf-8?B?QWZQeFYzMjMySTMweE55YktWVStvV3FCR0Q0TVJ6WVV2Q0lYY2VNTnFMQzVY?=
 =?utf-8?B?ZWx4aUJZZ2xSVm5BckJLVXlocEdqMHBpNVBGMHVXbklVOEhEK2s5ZTkvNHpl?=
 =?utf-8?B?SmZDajRvVDhSN3VlQ25tTnYxeTdCdXlhc0JaSHBsRWhycWJ6WGVlcW94NmR0?=
 =?utf-8?B?YWZROEp0TThlRktsYW9keTQrUHQzb3JYSVFNRCtsZW1wY2ZLR2hoa3lJWTJw?=
 =?utf-8?B?ZFFhWm1LOXRXcXltYWZyU1BNSmNMRDFFNXdBVDVVelB0TXliNVFkQTRKRU5K?=
 =?utf-8?B?VE9OWDhSb2RibWtUZjJhYUJtVURGNlhod2laV1RneTQzOU9SUmRzbE9YRFg4?=
 =?utf-8?B?b2lxelJ6d0Y2L3oyUnJQRkE3MUd3SmI4TUp2TWU2NlZTNFVKZlRZUnlCNkQ4?=
 =?utf-8?B?a3JiUWh4Vjh4ZC9Gb3MrWjcwOVFrTWhhd3B1dzJWTTRHQ2psemQxRlBEcWp3?=
 =?utf-8?B?b1Fva0dObG43Nld5TmV3Y0E4aEJKdEpJTDRkQWIreUxGMFRzZTdYUGxZNmJN?=
 =?utf-8?B?K0w2end6dUEzNGptU2xxSmRJbUxpZW51Q1UxelRGc2lHVXpMSmE1Z0RLOGEy?=
 =?utf-8?B?VDNaR0pzeStzT3d5YzVJWmJXQU4rWDYvWXVVOENXajdFV09abW9GMm1yZDFL?=
 =?utf-8?B?WDZnWDdJQ1laR3ZwKzM2Z1owWm5WVnNLRURFNE1vTGFOTEFrcEFvQVpBQ2Nm?=
 =?utf-8?B?SkIwTkI0NzhGeXdhdVhFNjl1M3QvQlAvOVdUd3lTcTNNT05HdHhDZ3VoNFd4?=
 =?utf-8?Q?6n6SKzl4fSz/XVuhTAoz6d0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c71ea85-ef23-4d6f-8359-08d9a5c1adf1
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 09:49:11.6242
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2+yb/xb9i44YKQRgDuliWM1GXxsrK7Reqlnuwui+RyzqZHI8hXQ1xeg8i5SQGABPXO5GbKnfpYGW3AzPnfy25Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2335

- Correct struct field type.
- Use unsigned int when that suffices.
- Eliminate a (badly typed) local variable from
  context_set_domain_id().
- Don't use -EFAULT inappropriately.
- Move set_bit() such that it won't be done redundantly.
- Constification.
- Reduce scope of some variables.
- Coding style.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -62,10 +62,10 @@ static struct tasklet vtd_fault_tasklet;
 static int setup_hwdom_device(u8 devfn, struct pci_dev *);
 static void setup_hwdom_rmrr(struct domain *d);
 
-static int domain_iommu_domid(struct domain *d,
-                              struct vtd_iommu *iommu)
+static int domain_iommu_domid(const struct domain *d,
+                              const struct vtd_iommu *iommu)
 {
-    unsigned long nr_dom, i;
+    unsigned int nr_dom, i;
 
     nr_dom = cap_ndoms(iommu->cap);
     i = find_first_bit(iommu->domid_bitmap, nr_dom);
@@ -74,7 +74,7 @@ static int domain_iommu_domid(struct dom
         if ( iommu->domid_map[i] == d->domain_id )
             return i;
 
-        i = find_next_bit(iommu->domid_bitmap, nr_dom, i+1);
+        i = find_next_bit(iommu->domid_bitmap, nr_dom, i + 1);
     }
 
     if ( !d->is_dying )
@@ -88,61 +88,52 @@ static int domain_iommu_domid(struct dom
 #define DID_FIELD_WIDTH 16
 #define DID_HIGH_OFFSET 8
 static int context_set_domain_id(struct context_entry *context,
-                                 struct domain *d,
+                                 const struct domain *d,
                                  struct vtd_iommu *iommu)
 {
-    unsigned long nr_dom, i;
-    int found = 0;
+    unsigned int nr_dom, i;
 
     ASSERT(spin_is_locked(&iommu->lock));
 
     nr_dom = cap_ndoms(iommu->cap);
     i = find_first_bit(iommu->domid_bitmap, nr_dom);
-    while ( i < nr_dom )
-    {
-        if ( iommu->domid_map[i] == d->domain_id )
-        {
-            found = 1;
-            break;
-        }
-        i = find_next_bit(iommu->domid_bitmap, nr_dom, i+1);
-    }
+    while ( i < nr_dom && iommu->domid_map[i] != d->domain_id )
+        i = find_next_bit(iommu->domid_bitmap, nr_dom, i + 1);
 
-    if ( found == 0 )
+    if ( i >= nr_dom )
     {
         i = find_first_zero_bit(iommu->domid_bitmap, nr_dom);
         if ( i >= nr_dom )
         {
             dprintk(XENLOG_ERR VTDPREFIX, "IOMMU: no free domain ids\n");
-            return -EFAULT;
+            return -EBUSY;
         }
         iommu->domid_map[i] = d->domain_id;
+        set_bit(i, iommu->domid_bitmap);
     }
 
-    set_bit(i, iommu->domid_bitmap);
     context->hi |= (i & ((1 << DID_FIELD_WIDTH) - 1)) << DID_HIGH_OFFSET;
     return 0;
 }
 
-static int context_get_domain_id(struct context_entry *context,
-                                 struct vtd_iommu *iommu)
+static int context_get_domain_id(const struct context_entry *context,
+                                 const struct vtd_iommu *iommu)
 {
-    unsigned long dom_index, nr_dom;
     int domid = -1;
 
-    if (iommu && context)
+    if ( iommu && context )
     {
-        nr_dom = cap_ndoms(iommu->cap);
-
-        dom_index = context_domain_id(*context);
+        unsigned int nr_dom = cap_ndoms(iommu->cap);
+        unsigned int dom_index = context_domain_id(*context);
 
         if ( dom_index < nr_dom && iommu->domid_map )
             domid = iommu->domid_map[dom_index];
         else
             dprintk(XENLOG_DEBUG VTDPREFIX,
-                    "dom_index %lu exceeds nr_dom %lu or iommu has no domid_map\n",
+                    "dom_index %u exceeds nr_dom %u or iommu has no domid_map\n",
                     dom_index, nr_dom);
     }
+
     return domid;
 }
 
@@ -1302,7 +1293,7 @@ int __init iommu_alloc(struct acpi_drhd_
     if ( !iommu->domid_bitmap )
         return -ENOMEM;
 
-    iommu->domid_map = xzalloc_array(u16, nr_dom);
+    iommu->domid_map = xzalloc_array(domid_t, nr_dom);
     if ( !iommu->domid_map )
         return -ENOMEM;
 
@@ -1477,11 +1468,12 @@ int domain_context_mapping_one(
         spin_unlock(&hd->arch.mapping_lock);
     }
 
-    if ( context_set_domain_id(context, domain, iommu) )
+    rc = context_set_domain_id(context, domain, iommu);
+    if ( rc )
     {
         spin_unlock(&iommu->lock);
         unmap_vtd_domain_page(context_entries);
-        return -EFAULT;
+        return rc;
     }
 
     context_set_address_width(*context, level_to_agaw(iommu->nr_pt_levels));
--- a/xen/drivers/passthrough/vtd/iommu.h
+++ b/xen/drivers/passthrough/vtd/iommu.h
@@ -505,7 +505,7 @@ struct vtd_iommu {
 
     struct list_head ats_devices;
     unsigned long *domid_bitmap;  /* domain id bitmap */
-    u16 *domid_map;               /* domain id mapping array */
+    domid_t *domid_map;           /* domain id mapping array */
     uint32_t version;
 };
 



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:49:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:49:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225052.388668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTBi-0006FK-MJ; Fri, 12 Nov 2021 09:49:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225052.388668; Fri, 12 Nov 2021 09:49:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTBi-0006FB-IV; Fri, 12 Nov 2021 09:49:38 +0000
Received: by outflank-mailman (input) for mailman id 225052;
 Fri, 12 Nov 2021 09:49:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTBh-0003th-77
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:49:37 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d856b5b7-439d-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 10:49:36 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2054.outbound.protection.outlook.com [104.47.9.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-26-nEjc3_GAOZWzx6Klm0Z3WA-1; Fri, 12 Nov 2021 10:49:35 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2335.eurprd04.prod.outlook.com (2603:10a6:800:2e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Fri, 12 Nov
 2021 09:49:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 09:49:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P251CA0003.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.19 via Frontend Transport; Fri, 12 Nov 2021 09:49:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d856b5b7-439d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636710576;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=63EDCVBQW7h8osASYLbubyyEjZ4ArJhIRz0iWWv/m8A=;
	b=Y/UiYYR3Qj63H0f1KLc5uat/XiTTMGCLZHIhBBPjaxSVIff2q3hoAvFeQ05O9rcFL+QX+M
	0tYyHsrY5tjr+Nz2hZvn6In1x+ok1L2G2X60yW60aAL4nzZBjcWTeVSwxKOrVdV9OKCfMm
	3bTTfAJ56dnPk6eLYsFOumwsWnPDIQg=
X-MC-Unique: nEjc3_GAOZWzx6Klm0Z3WA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XhI272e70J1zR1W6dcSsk9xtwnUHR46eIKZmEl9pPgGaunXERXbg3mAy8Ik8C2hs3RI8kbgGpy/Acuob8ODTiMoX8jboKF9m+fDG08uddu4c4SkyZzKIH2YDDMPzEtgEV/B4jovw3DJOln3E/J3plxbidN2+EAdW2gIyXl0jYasfFw6DK/abRtiLFqHbYopDg/T/5UxdKT+/5lOGmRyYdE048kCJCobNnou4ZoshvSlYeHDjqqTEKjhx+5d2yvoVXKazceRdT7VZUkx0CXSePwMB5yhkJti81imajZYr9T/CQsLIf92WSNyKgDVyKc95DRFeZvg7O8LZogFtPtF6Ow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=63EDCVBQW7h8osASYLbubyyEjZ4ArJhIRz0iWWv/m8A=;
 b=M5xE8eoZ4bZkpAlBFzCihWveulqOB9OBKWYZxRZJd1xRgUDMXP+WqNAceRf6yNn25eXdoVDQ0huB9aqTyG8wLVOBAjXH/9YvJIs49kZHg+exWuJ++H7z17e2qV/39POnH+ZXJ3tM8fXG2ISKL4ItNPwwAzAMP0k05RxLpRcUo6huD0wkqwhRuupACbHv55K8kyIj3HQnmjwFh3yH1BiRuaki1YXazBJLqGMPuImA93WH27BkjWDhzUtgbfXegNwC4opB8Cx6X64fi1A+4PvCdWLG6Ecm67Y3hiDdOb/55JMg0j51GcZbQ3dWGzjMmMMUlekc7i1ryg9sdkQ4bTdQWQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ff49be66-1d4f-9e1b-95ac-b445eef29d41@suse.com>
Date: Fri, 12 Nov 2021 10:49:31 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 5/6] VT-d: introduce helper to convert DID to domid_t
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
In-Reply-To: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P251CA0003.EURP251.PROD.OUTLOOK.COM
 (2603:10a6:20b:2f2::23) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 71873f67-505c-412f-cf09-08d9a5c1bb7a
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2335:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB233526F865865CC78017F291B3959@VI1PR0401MB2335.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:800;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	FxR3/eh1KRjleE/FV6Azc8ZSFElNjxklhL6nmJWhPD2lZiMFILK7Wn4ks6whkidA46gApNcwviA05/fW2T7mad4w5y3RvTVaYK9IvY1tBukIHraMb60BjEvO/e3KlC0YHZ3PCT49dWbvJIIjf0W0gOvrQloIJL4RR4rDjvMx6R2qVqh9AaW/bMf7PdeX2ZPwT8U6f0SKS4LuGi1U2oD8oPmAz8ECk0cr0WUz8rm+bIPZn2jSqqcZDhemecrWL0noYpMQ0e/6sJwb9640XA3rMA5ShVY05T9bSjVXl/8ve24K+0bVFyGXVaDg2HZLb/meGiwJU324w/vpMfMMt2ux165TKG8esw/goMJOwEDD68bGAyZTygkLy8XFR5/lEp4FF9U3dReTnkDW3Qlt2+3INYJcj6EzqHYQNO/zg+xVong8FM5pDqz0LbB5Xv7oYUe87MWlFjvTcs1O6s5vTxtuIhKmnxJ6zah8gnXlJq2ZsMc4vdu9cM97HBt9+j33lfCTjdsDDvgT0dm9c86o4wT8i64rk3nB0XxycL1jSpibsADqMZt2QyooSIx9QXzs4LnpdVwuKNRs5uHD6iUDW7IO6sE4kVhkxA7GiiLwcqzjozsL7CE58Zo87MEhBmLArxZxfmpOSiaTQyDQQl4bE6xuNsw7BBhlvP/qsWRVQAau/r7AEoGd5E7R7Y/VkdNwrYN8qWsn+t1AIC2rGtPg+hiaCr3TPHRsH0uRkFTqm5y4yqg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66476007)(38100700002)(66946007)(66556008)(2906002)(8676002)(508600001)(5660300002)(8936002)(6916009)(36756003)(6486002)(83380400001)(16576012)(31686004)(4326008)(186003)(26005)(31696002)(956004)(2616005)(86362001)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Wk9PVW5MTC9GN01PZ2dRQTY1c2tjY25YaUZGTXNYV1lhNW5zcjJQTlVkZE9H?=
 =?utf-8?B?dkZLRFRHT0wrT2w1M1ZGd3pEdHdaS3FZMUhhTmlwT1dhbVNOTHNiTFRhZXg2?=
 =?utf-8?B?cUNwTG85cm5TM3hBUHp6NG16Q1lCbndyUk1ZYXhvcytJb096YkhDbjZhcy90?=
 =?utf-8?B?bFI1akVOT1ZrYmF1STdzRkhncTd5cHFWSm16QXgrVlQyVDAzbHYzbW9KdmU5?=
 =?utf-8?B?Y2hoZlBZT0RLckk3bk1NYkxwUkV3ZnNqSVZFa2pkMDhSSE9NUTNUQ1ZjUFM1?=
 =?utf-8?B?K0JXYWhnS2Y0NlBsL3N5NXJzaGIzTW96RXVDRlZ2OHJsU3BLaUVYc2JNS3NC?=
 =?utf-8?B?QUlXKzJLY0dKWVZOU25OTDBXMkJaQ3JUUTFhYXZNY0pUTkxuVXR1QjJDSmkr?=
 =?utf-8?B?UXM1WVFuQ2p6V2cvcC9tMW90Tk5RWXJWSUNkWXFkN3h1Tmx5bS96ZThlTVd2?=
 =?utf-8?B?aHRJK3pvN0F4cWE1S3p0YkgvWkZraU8raThPRDlZZzl3MUxZRkNXeUh5VVpF?=
 =?utf-8?B?RW45OHdZVy9Gc09vZi9YeWRjakxaWCtPdTBjOFRPOWg4akwycXNmYUdMSjRv?=
 =?utf-8?B?azdaQ0FEMjZGbjdwQUU3dGl4YWE0eHBzSEpRKzJ0eFJjdUhlaUdvVC9PZi82?=
 =?utf-8?B?RU1ibXpXdjkrb2xKMVBmdHNFOFBZUTBQK2hWMzYwU1JaaDc2U0lqNmhnZzVD?=
 =?utf-8?B?QTJzSjZJRW5sVHQ3OUlSNVRZdUpReS9rcmdMbWF6UHl3cG1XYlplOExzMHc4?=
 =?utf-8?B?QnU0ZmJBMW9ZdWVqSk9BVEVHWmo0SWpjTFRKS1V4L28wNDRmMHdvSzJFcU14?=
 =?utf-8?B?aXlhV3ZnV3RmeHJQaW9CKzlyREdLdmUzYXNNTzhob0pQUjhjRm4wRVc3WWZS?=
 =?utf-8?B?Q3NJbGpkdzhoU0J1TFFMU0Z5YUM2MnM5elN6WHBHUFRFMjZqZ0tkbVVOMmsy?=
 =?utf-8?B?aTJJWE9KSUZ1T0lPSmlnT3NsRjlZNkY2MUNFUXgydEZtMzlueWUreEFsVzkv?=
 =?utf-8?B?ZTBPRkRJTjNwSEZVUDlkeTlYdDRnNk53NHBab3JyejhyYkdnbXE3aWFiY202?=
 =?utf-8?B?QmlFVnQ2aXFzN014L212c0xsNkRwWEcrS1M3MVJidHgvRTJhRU1BNUppRldN?=
 =?utf-8?B?MngzT3NMTHloQ2dTd0NWbjN6cit4NHE2Y0FBbmFQd0VmWWpKT1QwUUZmUFRF?=
 =?utf-8?B?TTJYdDlLcFk4aG1BaE9lY3ZsRm5IcFBsM3BvSGh6dDdjK2Y2OVZQNjU2NDVr?=
 =?utf-8?B?ckwvVjFMVWNOV2wxcUcwWnY2bmhKckozYUp4Q1Nha0xHT0tZbHpOTmdxcXp4?=
 =?utf-8?B?d0FsQ3ZkeHp2TWlQKys0eHRZOG9ZUlhTd3hGc0NDRVRHeUpmVHQ0bDJvY3B0?=
 =?utf-8?B?Qk9IbGUwaEhvaW9kWnd5R3NTV2pVMGFjV0hEcWcxZjJNSEQ5TkE0YXg3cHZo?=
 =?utf-8?B?RFpCVHRJSVRxU096ZUFmcmpyeHFNUFgrTlFYSzlXSG5vZHU4ZkdqeW9kaDNs?=
 =?utf-8?B?bkg3UTNNVlEyWjhwdytDSXg4VmpzSnBUNk1LYVQwdE9OcXNZZ1JrN3UxdTBT?=
 =?utf-8?B?dlFvM2FpbHdiV2VQUUNBYytISFNlc004eHA2bW5xcjM3alh2c0RmdzJ5YUIr?=
 =?utf-8?B?TEc0OEVHWkpMY012R3BVR3M2dm9qUnZGN21kS2lFY01OZzJpSGg2Y1dIdUdk?=
 =?utf-8?B?OWlMeTcxYU16aHJBWnNlK1FoUmtnQ0FocXJvUytBWnJpamZJdkZDUjg2WFFz?=
 =?utf-8?B?d3N1dmtSN2JFYkMyZERhUUNMYmNIb1gwd3FiTE5Xc2QySEhKMG9DQ25GK1dC?=
 =?utf-8?B?YmRSWWtNZ2h6NjR6ZkNibHpWdmJ6OTNRNjlLcFJoUXdYTFJBMmVIcEVIZ2do?=
 =?utf-8?B?YWdBaVEya3VVT1R5bG9SUDh6ME0wMlVVQTQ5QXlxTzdmUG82Rk1nbHM4WUF2?=
 =?utf-8?B?V244M1VaYlpOd3h6TUFpQkRrbDlRck9EOEJZMEtjTHhSUE02a2Jjd1gwYVVN?=
 =?utf-8?B?WG1OaUUzYkV4VlNubkJiVEJaRkN3SFRwMnlSVEl3S1BVVjA5L1lsNVF3eW5L?=
 =?utf-8?B?VXVUNGV2bVEzWlVQcDUrbi9penJseGpJZXN2ZmlHNW5kYW5yaTJxTmZkSDBC?=
 =?utf-8?B?Rys0RWdmNUJaVGFyYWphVjhtRkp5STR1bTBSSzI2V1pYdURHWWR2andMUjJY?=
 =?utf-8?Q?gjSvK8T8Xi29zT5/D6Bmdd0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 71873f67-505c-412f-cf09-08d9a5c1bb7a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 09:49:34.3454
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bk2QQDZ3q+tgpJQXQaFP3itMuPAhUvnc8aAxFCUnYICA+QxOaimlDAKaxlHLZC3EcTzTOafxZ8VqioE+YPvPjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2335

This is in preparation of adding another "translation" method. Take the
combination of the extra validation both previously open-coded have been
doing: Bounds check and bitmap check. But don't propagate the previous
pointless check of whether ->domid_map[] was actually allocated, as
failure there would lead to overall failure of IOMMU initialization
anyway.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/extern.h
+++ b/xen/drivers/passthrough/vtd/extern.h
@@ -45,6 +45,8 @@ void disable_intremap(struct vtd_iommu *
 int iommu_alloc(struct acpi_drhd_unit *drhd);
 void iommu_free(struct acpi_drhd_unit *drhd);
 
+domid_t did_to_domain_id(const struct vtd_iommu *iommu, unsigned int did);
+
 int iommu_flush_iec_global(struct vtd_iommu *iommu);
 int iommu_flush_iec_index(struct vtd_iommu *iommu, u8 im, u16 iidx);
 void clear_fault_bits(struct vtd_iommu *iommu);
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -123,15 +123,16 @@ static int context_get_domain_id(const s
 
     if ( iommu && context )
     {
-        unsigned int nr_dom = cap_ndoms(iommu->cap);
         unsigned int dom_index = context_domain_id(*context);
 
-        if ( dom_index < nr_dom && iommu->domid_map )
-            domid = iommu->domid_map[dom_index];
-        else
+        domid = did_to_domain_id(iommu, dom_index);
+        if ( domid == DOMID_INVALID )
+        {
             dprintk(XENLOG_DEBUG VTDPREFIX,
-                    "dom_index %u exceeds nr_dom %u or iommu has no domid_map\n",
-                    dom_index, nr_dom);
+                    "no domid for did %u (nr_dom %u)\n",
+                    dom_index, cap_ndoms(iommu->cap));
+            domid = -1;
+        }
     }
 
     return domid;
@@ -193,6 +194,14 @@ static void check_cleanup_domid_map(stru
     }
 }
 
+domid_t did_to_domain_id(const struct vtd_iommu *iommu, unsigned int did)
+{
+    if ( did >= cap_ndoms(iommu->cap) || !test_bit(did, iommu->domid_bitmap) )
+        return DOMID_INVALID;
+
+    return iommu->domid_map[did];
+}
+
 static void sync_cache(const void *addr, unsigned int size)
 {
     static unsigned long clflush_size = 0;
--- a/xen/drivers/passthrough/vtd/qinval.c
+++ b/xen/drivers/passthrough/vtd/qinval.c
@@ -229,10 +229,7 @@ static int __must_check dev_invalidate_s
     rc = queue_invalidate_wait(iommu, 0, 1, 1, 1);
     if ( rc == -ETIMEDOUT )
     {
-        struct domain *d = NULL;
-
-        if ( test_bit(did, iommu->domid_bitmap) )
-            d = rcu_lock_domain_by_id(iommu->domid_map[did]);
+        struct domain *d = rcu_lock_domain_by_id(did_to_domain_id(iommu, did));
 
         /*
          * In case the domain has been freed or the IOMMU domid bitmap is



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:51:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225057.388680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTDZ-0007jk-1A; Fri, 12 Nov 2021 09:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225057.388680; Fri, 12 Nov 2021 09:51:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTDY-0007jd-UG; Fri, 12 Nov 2021 09:51:32 +0000
Received: by outflank-mailman (input) for mailman id 225057;
 Fri, 12 Nov 2021 09:51:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTDX-0007jS-PL
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:51:31 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1ca8dab9-439e-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 10:51:30 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-28-q2NS1ZdPNzSLfWRQmETzTg-1; Fri, 12 Nov 2021 10:51:29 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4942.eurprd04.prod.outlook.com (2603:10a6:803:59::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Fri, 12 Nov
 2021 09:51:28 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 09:51:28 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0043.eurprd06.prod.outlook.com (2603:10a6:203:68::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend
 Transport; Fri, 12 Nov 2021 09:51:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ca8dab9-439e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636710690;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=2m/CJIfKmCp42iGpSLQV6mSLgNROe0X3B1g+LDTuDN4=;
	b=LsPjQo95E6Vdx8AH2M7fSkUoZsdsMUZSAL1cEVjfRKZsv0QSysJ4jl3mDgxfs46XDMkfiP
	NjOpjqrlnm5tgjaddIPorRahxt2gEEy8xJL1wn5G9pLLLzgXLwKMPpVqahWq01E1nC0kQM
	DvcuKVjAxfI6AeMDqTOmodM7FmtHS2M=
X-MC-Unique: q2NS1ZdPNzSLfWRQmETzTg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=H1SNmvVLvsPuESPPC3mfBP3O0yJBRFdV1yA9GuwP14VE5giDW1kwkkcCV0kWqeJW7/XsEq+sKCs3KppPYuzh+1zuA0buAjNW8KH0jP+sCs7/ik+V1RRFg8XOEkfiy0SdNLEBEpcx1yc+j7CK/Oxs36CyrlA+yZtb+V1BOkysHZXxg0c8vnQwUEbQoPSIdupeyIlAcnS11F1UbcnaDSjSo1MRwp1vxNAvy8YQNBv0jmMkySsOkEjXsGqEYMW9XLF7NIG8JksQ37AOTMrFhd3VizELY5qBUHbHthkHUXg+eBd6HY+Wvb6WBNSgDNgGtPa5JWMHustyIizI4Tps808ssw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2m/CJIfKmCp42iGpSLQV6mSLgNROe0X3B1g+LDTuDN4=;
 b=Zh6ANy8esEue9zPNZgUQdB7RL1dzw31u+nEIYKh5TUWmKH24PirUN7jwM8keSrehOSTKpv48C3uMfyT9WpbjyLp7RVAf6dVVMriyXR5pY7lLEsjXpn6iG6Nj8CbU8NBG/QRuuSj0Jf2j9nThxQqtnDPL1KJYiHVwJSJlwSq6YIn3fIcRY7Y9G8CJ4NIq26pqlfuT9qyFobrlNngoYY8GUWygouv4TavLLkA1zErr8O65IvB0CrZpdIuIW3zp/M+HMOJiTgzJzj2MD6FY4uyCTrJTNgHzaASSNsNTYJ9s1y9YCjfDdLQ/udRmmS49xmQtcDQg5b7R3zQfRTDL2C7EIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <30305930-0402-c01a-226f-508597a15a1a@suse.com>
Date: Fri, 12 Nov 2021 10:51:26 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] VT-d: prune super-page related capability macros
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0601CA0043.eurprd06.prod.outlook.com
 (2603:10a6:203:68::29) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 10a05b79-6450-44c9-3d1e-08d9a5c1ffa0
X-MS-TrafficTypeDiagnostic: VI1PR04MB4942:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4942C3D95F612566A9261BB2B3959@VI1PR04MB4942.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	0XoyKSUv19z+nyG6F3V2T/MfV5Q9QLD0hn7bzjQ0F8hahfxewyanhtomMMQFh/ztA/GfDUxj8AB6tt5r5ujhxWv2QyCLntg3MpUIhYcuzD2lRdtlLUYbCPveyVChdENG8/0liX81fjCn6q038G5DNBRre6+BwXCZ3hFcaqQJHWhg+DgfXPRXOHpaWBmk8g47DWSI8spoQPM24em/2EBsKNgT5xxBFj5gGE87X5/D+j7Yl91Lp3kIXIhgpbAZPDP/pYXPGs9S1YSxszzKK4tyjM97bsfGZs9KgUBrwHo/eidjzDPZ60ZQMHTNbeh/pSv1ZW9K2GvUSgCkLWH1jSLMhczLRYl6fqwdJrM7f1KsQmQFVyP/y5exMvRRHnegV6OYqzE4GqYjK4J6k7O3xCXRYxSZdOgkdBMhYT5vLDdYk5JgMDrAPm5n69bd4JA1pbeVlSULSGf0Mk49nvCBuNfZN+AnW00H3NLTNKvGIYCQJ2/Cv9eootZ+y5gO/w9ue//F2lNsmgVLsw5AR1rN7I5FyqFwSLNhBoQJNiEajDHp1y3o+tUkDEHhM+mKQj0iwZWV5DXAcRd1yQkvjTe1ZBMgu4PxTF8RcpH2C+fjLYex8z8dJ1pd9BXodYTH8rbDbrX6OGVebRS9Df5TMZBvwzZNbOY3H/luPkINCfcoLLXOclGEN6iLxGCnyEzhNWWbtKrjdQwJFYQ+Y5b/dT6pSsUgVsvruN3pECR6aJm//Tlk9oA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(186003)(2906002)(5660300002)(6916009)(38100700002)(36756003)(66476007)(66946007)(16576012)(86362001)(31686004)(26005)(4326008)(66556008)(316002)(31696002)(6486002)(8676002)(2616005)(956004)(8936002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OUIydWhieGdzd1gybDhDUUZ3R0NwYjlwbDZXMXNqbnNRZlQwZXlFVEZHVnRr?=
 =?utf-8?B?UVRmZGlxN3ZITWJwM1hEQ1dvc2xtM2QzdEhVR3NLVVZlZFZHQ28xaFZzTXNM?=
 =?utf-8?B?a0RLUFE4RUk2VklUbloyb0VSc08wQzBkK0F6OUdva0Q0anl6OEsrZ1RVL0Jl?=
 =?utf-8?B?eXI0NTlLc3NOQ0VQOFBmWjk1QTJKNko3VEpKa3NKSHpjcnBSaVF6Slo0YVh0?=
 =?utf-8?B?NHc2Y0JNOE9PRFFIR0RWaEdtWTA0anNKVWtLTWowc1hmV3k2UFd4Rk1TdTZV?=
 =?utf-8?B?Z0dkdUZ6VENSVHIxaXhNNGxWVGxuRjdUa05uYnRCejU2YkxsNWNGK3JiZzhr?=
 =?utf-8?B?NFdiK1BUVWxGSjgvdmRyS2pOYkhJVVZ0VUgxLzIvU3M1dXlnejh1clJGVmxD?=
 =?utf-8?B?cWhFR0lSZmlCR1g0RzFPbGhLV3hDRnJMSkgyQzZxOHc4eXBKYnl1VlBsdTBX?=
 =?utf-8?B?K0hoNjFDcmlsdmRHaWwrbVAvbEVrc0tFWk96dE1vSURCSFlNWGE3WHF3d3h3?=
 =?utf-8?B?S3dMQWFkd1RSNmtXRmIyRVpGR1lWaU5OREErN2FFNlFFV0x1ODVRNmpxSmNJ?=
 =?utf-8?B?SUtNMjFjczR0OWpSUUZnWDl2M1M4TWU2UXcrc2dlUGVISzg3VHJlY0pSaXYv?=
 =?utf-8?B?VXBpOElyUTdNbFBXeFY1bUY5blg1SnFZMXMvMiswQk01NkMrdWVlUUhVcTlF?=
 =?utf-8?B?QW1yeTE4ZkRSNklrNjZiU2ZDRDlnZndMZ3V0cVJXNjVkM1JqN0VoTm05aVpJ?=
 =?utf-8?B?R0ZZeHNNTGpOeHE0aXFBYzA0cXZXMVZObU9EVUJOSTAyM0VRRkFkT3R2cHl5?=
 =?utf-8?B?dnFtU1hNdmxMa3dTeEdvc1JSYWVaSGp0UHV0d3loMFBLRksycC9kTUpIUlZ6?=
 =?utf-8?B?SUdweVRnRDJxNVgwV3N3ZVdtVGtxNk1KL3I3K1dhRkx6YkgxK2d2dCtsSjRu?=
 =?utf-8?B?dHBUcmlITnZCdXNtS1k3eU1qaHlIRkZKVVdlZlFNNDhUUUIvL2p6VmRRU003?=
 =?utf-8?B?cUVJZjBzZUlnQVZUS0VpSWhrSExSYVA3aEpKQ0JkZmVReTNXeXhzZXN6UGpK?=
 =?utf-8?B?S01xWm5velU4eTRSMEVxUDdHa2twZlhRZERRV1I5dFNFODRjR3ZlRFB3Tzdo?=
 =?utf-8?B?WVFpUzlTTjI1M0Y5RUpjTVZPMENaQXc4RmZTUElKU0NXNWxjRlhUak9VcDhM?=
 =?utf-8?B?dlowZHJoY1dVQXlwRHlWMUFrY29ONFdOdjRFWnhIUEZycEk4b1FlQnZmK291?=
 =?utf-8?B?VnZuekNuRVpNZDkzd3ZZYWdtbGJ6dU1DbUFFNGJXNVhTQzhTN25DYm5uekJX?=
 =?utf-8?B?UjJ0T3RzTkxxRzJ0ZndTbnJKcUhMUFhsRTFBcXVoRGhMRXBra1I1TER2SGxZ?=
 =?utf-8?B?REVYeVcvVXVSdnd5aUNFUDN2b2pEUHhtM3FiSCtjL2RWYnQ4QnVxc1V1a2FN?=
 =?utf-8?B?a20xYlZuRkFNckhmeDl4b2c3eEZuYXY1alc2bWZNWWIrOUh4cU9YeVdmYms2?=
 =?utf-8?B?RnozbDlWZ2kwcHdwakRXV21TK3dBK2FDb0ZkclpCVnl2UitsUWJRdmsvZXFV?=
 =?utf-8?B?bkM2cCtWeXQvRWkwMVNoYlowZ3VqaFR4TUFWWW5pMUdUU1JwTTYwMXlHNS9I?=
 =?utf-8?B?UDFNR1ZwM0dLcllYL0RPSVg3dnFpR2lnbGJ5cFBETVVSSlBWU3FxS1l1NFBR?=
 =?utf-8?B?SGVmSXdwZTBFMW5VNVhmRUVhZENaZi9QY2xoZjZ6UUVZUkNIZnBjQ0ZyVEwy?=
 =?utf-8?B?Q3AvRFVlT1gyd1p1SXZQTlk0YW9KUGN2OGhidXBIczdyYTRibjEvcDg3K2Za?=
 =?utf-8?B?UFZCSDlaSG1KT3g4MkdhR2VFQ2VnVGc0QzlIRjdocWhJZkY1bG4xWS9xZGpV?=
 =?utf-8?B?M3p2Qm1GSkQwRHh1RUpNQzlSRnpCZ3JDTEpERklFYS9YVXg1dTYyczhSUGhW?=
 =?utf-8?B?cUw5OGt5VVlnWmFEaTZBeFJXNlNLdlF2ZVZTYndmMDIxR3UxaHN0TGVoK2JB?=
 =?utf-8?B?S3JUczN0SnUzUGxpVEpXN1ZyWUJEQXlDM0JWMndrdlQxY0FHcHd2KzdRb3ly?=
 =?utf-8?B?c0tGZkE1bTRJaFEzYWx6VUZXOS92VVp4QVVsbzRwTHJtcitDNGJyQlRQa2pH?=
 =?utf-8?B?b1NRaS9veHBNUXliclpJZWJDVndGbFowYlFKQ1Q1R3duVkdYb1htVVZOVXVk?=
 =?utf-8?Q?EPLQ4Ss3qdRwiJ1YgQVLKsM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10a05b79-6450-44c9-3d1e-08d9a5c1ffa0
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 09:51:28.7267
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VvRmSLY2rhfyM6Ftn3RcgoG32L5IkgG/N3gSD/D0BQp5H3C/AO/FJXM2sEmFFlaGYrs5gSLsSHyFlajE0UFfnQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4942

cap_super_page_val() and cap_super_offset() are unused (apart from the
latter using the former). I don't see how cap_super_offset() can be
useful in its current shape: cap_super_page_val()'s result is not an
lvalue and hence can't have its address taken. Plus a user would have
to check the capability register field is non-zero, for
find_first_bit() (or find_first_set_bit(), if suitably corrected) to be
valid in the first place. Yet as per the spec when the field is non-zero
the low bit would always be set, so the result would be independent of
the actual value the field holds.

Further zap cap_sps_512gb() and cap_sps_1tb(). While earlier versions
of the spec had things spelled out that way, the current version marks
the two bits as reserved. And "48-bit offset to page frame" wasn't in
line with 1Tb pages anyway - clearly 256Tb pages would have been meant
here.

Finally properly parenthesize parameter uses in the remaining two
macros.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/iommu.h
+++ b/xen/drivers/passthrough/vtd/iommu.h
@@ -68,13 +68,8 @@
 #define cap_num_fault_regs(c)  ((((c) >> 40) & 0xff) + 1)
 #define cap_pgsel_inv(c)       (((c) >> 39) & 1)
 
-#define cap_super_page_val(c)  (((c) >> 34) & 0xf)
-#define cap_super_offset(c)    (((find_first_bit(&cap_super_page_val(c), 4)) \
-                                 * OFFSET_STRIDE) + 21)
-#define cap_sps_2mb(c)         ((c >> 34) & 1)
-#define cap_sps_1gb(c)         ((c >> 35) & 1)
-#define cap_sps_512gb(c)       ((c >> 36) & 1)
-#define cap_sps_1tb(c)         ((c >> 37) & 1)
+#define cap_sps_2mb(c)         (((c) >> 34) & 1)
+#define cap_sps_1gb(c)         (((c) >> 35) & 1)
 
 #define cap_fault_reg_offset(c)    ((((c) >> 24) & 0x3ff) * 16)
 



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:51:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:51:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225058.388690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTDc-00082M-8x; Fri, 12 Nov 2021 09:51:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225058.388690; Fri, 12 Nov 2021 09:51:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTDc-00082F-5R; Fri, 12 Nov 2021 09:51:36 +0000
Received: by outflank-mailman (input) for mailman id 225058;
 Fri, 12 Nov 2021 09:51:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlTDa-00080i-Sh; Fri, 12 Nov 2021 09:51:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlTDa-0005Bs-MK; Fri, 12 Nov 2021 09:51:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlTDa-0004Bt-Ce; Fri, 12 Nov 2021 09:51:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlTDa-0000wI-C7; Fri, 12 Nov 2021 09:51:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Pqwi3YRw6LE+b2DoGw6S4QIfeD/FyLlcjqQ0iNoOlM0=; b=PL6/DyQGCStmvdKnYLz4YTfyZ4
	3upfUhtdvD2pTwwx46cvz2Hjqg0Bq2W5oZvmvvErDDCYEtxQmvP5nYMV7+OPExuuaW7Vv3lz7+gQe
	nVBOIT+/MtdtCm8oqy4yQtPffCvBqTiTD01F7TcMygX8Jq1CHrFXRHIUUogS7QNm4Rgg=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166118-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166118: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e2d0a42381b686451bed3e0e3ab8551f6c2d4090
X-Osstest-Versions-That:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Nov 2021 09:51:34 +0000

flight 166118 xen-unstable real [real]
flight 166124 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166118/
http://logs.test-lab.xenproject.org/osstest/logs/166124/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166124-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166111
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166111
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166111
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166111
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166111
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166111
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166111
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166111
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat    fail  like 166111
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166111
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166111
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166111
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166111
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e2d0a42381b686451bed3e0e3ab8551f6c2d4090
baseline version:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2

Last test of basis   166111  2021-11-11 01:53:55 Z    1 days
Testing same since   166118  2021-11-11 22:37:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Bertrand Marquis <bertrand.marquis@arm.com>
  Julien Grall <jgrall@amazon.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stefano Stabellini <stefano.stabellini@xilinx.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9d9cd0c6f5..e2d0a42381  e2d0a42381b686451bed3e0e3ab8551f6c2d4090 -> master


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:57:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:57:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225077.388717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTIm-0000ns-7k; Fri, 12 Nov 2021 09:56:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225077.388717; Fri, 12 Nov 2021 09:56:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTIm-0000nl-4J; Fri, 12 Nov 2021 09:56:56 +0000
Received: by outflank-mailman (input) for mailman id 225077;
 Fri, 12 Nov 2021 09:56:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTCG-0004Mh-Ab
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:50:12 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed4f2b45-439d-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 10:50:11 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2106.outbound.protection.outlook.com [104.47.17.106])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-32-uvrNgwe0Mlq3UgpRVMk_cg-1; Fri, 12 Nov 2021 10:50:10 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4942.eurprd04.prod.outlook.com (2603:10a6:803:59::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Fri, 12 Nov
 2021 09:50:09 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 09:50:09 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0077.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::18) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.25 via Frontend Transport; Fri, 12 Nov 2021 09:50:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed4f2b45-439d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636710611;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Ip3q7fhcctGNdbp3S1fmpbIw8kP09wRnv4EP1tjyo5g=;
	b=YamV6Mk2Vl78F31BgELFSRyD7SwU/Yexup9JP6bkXUYe6j4Jppu5xhRfKCMCCn9mHUfnBC
	h9W5DQOH2frcrsmTo5Hxz2391xllNMEvnbe0Dp1t8B8IP9q2AawzQTeK0VUszyogeV8XWU
	DaODAbr2k5z+1sOsjDLTKMKe5djj5v4=
X-MC-Unique: uvrNgwe0Mlq3UgpRVMk_cg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Fm8GT9JYcB/n4bFPHQVMAybl+Sra6hd5yVCbikMBFhp2LfOFIuEUZPszwBYVBa9QR33GWatrP906E8Nv01BTThRsvLiFKzSbZRufv1VSnH12nxX2kZ04bjUrFbB/+PdKeXL/Dl+MN85kG1ZY0fDyInrBnaEYliE9VsRpX9FX09wEV8FHzLtoEJvm6JneyR3ROb1X6Vg1dhJ+cH2ETctgiLiU7ZsqFyDt7qNOg6dVehv9mlLop+VQg72XySXteSsU2tGp/CEcq9h0vR+6DN2FC/qpsFP+4NgZY1paz69Koc1cvFP6rCx0loG3ERKbsSTgdJ9rdk/vAMNWAlXkHfAKFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ip3q7fhcctGNdbp3S1fmpbIw8kP09wRnv4EP1tjyo5g=;
 b=YDXbze5WHzu1RM1Qlz+bCwk7/+WdOZcLSTrLSLzBjAy/xt2jQ05jXM9/QpDJc0VEcPk1jVIIs9KW42sJgNk1knTor2PaIupxjSuz/eSsNtO6iSeKUn98u/b6PoAmyWU2kGxnvlP7Q7tPkMpEIaqoUcNL/afIIepbpOyYy+ZKl009U3BOnTf4PvFggvol1Bnu+55DlCgTJWYiccrTTkg8AaTDzzo6rN5psjClcCpM4ZVBf1NywpwLziEmdRqaucEB8fy8ZYGOIGbe9ytO590bNZX9FbhNpI4A5B+iMMX2lqhOqjb/9tJRSMf9X3qvoleVoV4TKi9IX7jLowXCqXfLbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <74734976-b5a0-3372-7c7c-9f866945777c@suse.com>
Date: Fri, 12 Nov 2021 10:50:07 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 6/6] VT-d: avoid allocating domid_{bit,}map[] when possible
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
In-Reply-To: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0077.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:86::18) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f5e3a4f8-7cdf-4411-9470-08d9a5c1d033
X-MS-TrafficTypeDiagnostic: VI1PR04MB4942:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4942813DB6C75077A230BDE6B3959@VI1PR04MB4942.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	KGGbkbZan2Hf1cU4xOn6LGtIxYM4TN4Q0ekjPABg8m2lm6hH2xAaUf2IqQbBdgkktu7xVTBLREdIow7tGsHU0okn4TapTTdmL5kcUnhfzFHCtBFNSMnRlX278i0OELPS6sI6/aoQf6EOx5XL/k+ztsuLJCa2tU1702FcWLLngKYeH9fDDvLiAj6JqQjk6fItiFtFszl/U9zn7h4AHnwilAaluCmoqcNa75a8tkHp3k6La51sr0O6Ab22sUhmHGfRusEqgf2+/MpMHB3EwV3YFZljeYaF1s8DlqQHntWBVVIldbkXEKgIR7IMhuSvKQXKu/YpZuhL3xVPW9bZR/W0ZHGor8OD0iFurtsGotZ3lSqaTfPfah9G13WetBJELGyfuP9qU5KTJXB0WkRae1f1EciBRYC5r4W39kd38j+QZ/s/mLL4QxuOebvzC25hP0HmJPswn5ayCqO7KEIFfZV9Kcg2nnYUf5/FJTOsIsLwOjl9R32RqY/cQe6ADYsXhjUzkt18O358T4oTJTZLM3uUaJySq7E4iMphwfHZIa6wUL0J7jIvfu+7vl/thN4AlqnVMKDVe1K7civGNM9g3OAetLEHpNcsZ6J6dPTSWbERqOouU6etZlaNLCJjRp5e3WN/2GG4q9RXcIIGvBoO50elO+gnKlRU8TRNSFhIVLjXkYq98qo9JsHnorludqYURzrZ3I52eu4rLUrc3sA1iQUgE5rtaBVjsHxKuG5paVFMKPc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(186003)(2906002)(5660300002)(6916009)(38100700002)(36756003)(66476007)(66946007)(16576012)(86362001)(31686004)(26005)(4326008)(66556008)(316002)(31696002)(6486002)(8676002)(2616005)(956004)(8936002)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S0xZK1ZUdHRpa0VnQ0Z4RGg3KzYra3QwdXFTOGRYd3dGWmUvUzFZNXJtVHlT?=
 =?utf-8?B?eFNHM1QwT0xEdERkcDZsbWhXWUd1eHFuVERsbThBQnQwT0E0RjgwOFVFU3JE?=
 =?utf-8?B?L1B1bXNraFY4LzlueUl5T2xsL1FjaVVGR2NadEZ3WWlCY2Y4WmhpUEl4SWkz?=
 =?utf-8?B?RmgyY202VVluWUp2azhMSUcwTGVWQ0IwT21kcFo4OUV6Rk5VcG1OOGF1K3dZ?=
 =?utf-8?B?aFBmQzkvUjAvSUhXa3F4aWtkeWFBbi8vWUhCL0MwbDJzSjZ3d1plb3pjT1FK?=
 =?utf-8?B?dFhjUXhZSzhERnlHcmhjbVNmNVdSaDRLOS82anBnRmZqVkdsZ2Z1VzVXOUJE?=
 =?utf-8?B?RUFMNzJoSkZLM09FUlRYY0J0TmhEeGhZb3NGRWJVc3A3MlR1ZnVwTUZpNHdO?=
 =?utf-8?B?cWt5ZXB5MjkrSjhkbGZqVlhkcEY5V0VLcFZnWU9pQ0tIbUhtcjcreXBYWFdP?=
 =?utf-8?B?NlRXSm55cVF1NVZpT3lFR1BXalBBbmk5cjZrTmF6Sllaa21IMWtQMER1Vkdw?=
 =?utf-8?B?dHFCMlIwZWliaGY4bkErS2txR0x1SU91Q010ejFhNDZZUVl2NENMU21LYkhq?=
 =?utf-8?B?RUpYUmtwV1JrckFDbjR2SGI4MzNWQURYaythVitGZjRQTWZTcHpPbWVseFRz?=
 =?utf-8?B?UmE4bENGWnVxUCtYa1Z1TlMxNDlydWJiNnUrR0lGYWE3ZnlXM1h3UWhmam04?=
 =?utf-8?B?ekY3RzZnNWpaRzVwOVRjZzYzTklCdlRaN3RzZFVLM3FNTHRySEJEclNUUm9y?=
 =?utf-8?B?VzErZjN0Z2dLYUdDVldjcnFNSDU4NWt6c2xXTFV5M3Rma2h2aHoxdXNyRlAx?=
 =?utf-8?B?MGRWSElxQWpLemZuTHExSHhwNnlHbys2VTRVVDRWT082OUFVVDZRQzJRWnpy?=
 =?utf-8?B?cVdwZWVCY1d0RmxmMHB0VXkwZHE5QUg1amlEOVh0djQvQ3diL3FRWVoyTFZ0?=
 =?utf-8?B?N2ZyN0VGZUhrNyswNmhnalF5MUVac2t3OUtpUUV0MktDRFNjQjNrNEJ5Qmd5?=
 =?utf-8?B?aHZKeE1Fb3FFSzFUcmFJUTRmVnNQVFJPSjhnQTd1UmplRTRlcHhvd21nVnRN?=
 =?utf-8?B?aE10SnNvdUdhS0R1ZHExSEJxeXNieUo3amFrczE5WkhtY1hzZU0wWGlWNWlL?=
 =?utf-8?B?SnJtMzZ4bUN5U3FrNHVldk13S08xVkdzSXdWbnN6YVA5MGpWbkxZWmlMcEtL?=
 =?utf-8?B?azBRSVFtK3A3dzAweDNoS3QrOUM1aUxtcWNmS3R2SGhmMDNXZk12emFpZWt4?=
 =?utf-8?B?V2pzZWVnYlZqL1N2cWVZSmp4OEc4TGJxT2ZKU09WVmE3RE9CMkcwVmJtbWxB?=
 =?utf-8?B?VG5PRmdnSFdRY2dIOVdHV2ZrSGs3OGhvSUROSFpxUURNWXRmNTJWUnBjS0JD?=
 =?utf-8?B?OWhUZHdqUjZtaXduZUoxTU9iQ0hhRjM0WEJqT1IyM0thWjhvWElvN1N2MW56?=
 =?utf-8?B?RUI2Z0dtY3oxVXM0L2JDKzBLV25aeE4vMHpFMjQ2dkRsUEtvcnRXeDJoS1Jo?=
 =?utf-8?B?UFRldHpBaElFaHRZOE9jeTRiREV0NkUyWXFBY3NQWmtYc08xdE5mU1RvTG5Y?=
 =?utf-8?B?UVVTMEo1eFhvcDlMd3ZNSWNVcVhSZkN2YVRPUWxOcXMyRU9UMlpsKzB0S1Bo?=
 =?utf-8?B?TjFBOFR1NVlVVExjcmFqWXh3TEVkMnh6RHFhYlFiM0RIYzFpYmFoRXVIY2p4?=
 =?utf-8?B?U3lpeW81cm9nWks3M3pjcnd1M0N4ZGhpR1pUbXk4aUF0ZWhoRW9RWnZaaUJi?=
 =?utf-8?B?Q0tkaSszSUplUVQwY3FUeDdvTkcxM0hlZzlpY0Q1U2lxZnN6WlgzbXV6ZDYx?=
 =?utf-8?B?TklmYVhpRmpOaDdKRE9FN1ZCaWRCNmFJRHNKME1LcW9ZbnVsR1BIVUFmcDZI?=
 =?utf-8?B?ZmN2Sndvb3VqV0tML1pHa3pXTzN5WWhidTh6MnlvRDR5MlNVdWFKblFBci8z?=
 =?utf-8?B?QWRkOU1tMTJSNFYwbDlTNFVuNjlMNkptNVNHcDFyYUdLWk1zT2RHcEVCVWo2?=
 =?utf-8?B?TGVRdDNTcmh3RDRpRGtZSDZxS2h6RzB4ZVRLNis1MGsrR1BKcW5wazVhUUhP?=
 =?utf-8?B?SUxQZFF2VnJvSWdZckJ0SG5yNjdyKytNZmgwWkc5R3hUVEFxbFN0ZzY3aHRm?=
 =?utf-8?B?MVBFL1oyT0pBQk5uVENRVVlBbXI4QWFHSzVTOW5pdHNkMUMreWVsc3NIT3lU?=
 =?utf-8?Q?xmWkXcAhh5Mr+MccynxS1bg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f5e3a4f8-7cdf-4411-9470-08d9a5c1d033
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 09:50:09.0937
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7e3dUCmhFDVS2q+W0+eHEvFACdrdV8Kov0p4FMwjvzMsmNU0g9UDH1mseuowsz9b7uI2/FXAcpksbzf/5Vqmvw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4942

When an IOMMU implements the full 16 bits worth of DID in context
entries, there's no point going through a memory base translation table.
For IOMMUs not using Caching Mode we can simply use the domain IDs
verbatim, while for Caching Mode we need to avoid DID 0.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
For the case where the memory tables are needed, xvzalloc_array() would
of course be an option to use here as well, despite this being boot time
allocations. Yet the introduction of xvmalloc() et al continues to be
stuck ...

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -62,11 +62,32 @@ static struct tasklet vtd_fault_tasklet;
 static int setup_hwdom_device(u8 devfn, struct pci_dev *);
 static void setup_hwdom_rmrr(struct domain *d);
 
+static bool domid_mapping(const struct vtd_iommu *iommu)
+{
+    return (const void *)iommu->domid_bitmap != (const void *)iommu->domid_map;
+}
+
+static domid_t convert_domid(const struct vtd_iommu *iommu, domid_t domid)
+{
+    /*
+     * While we need to avoid DID 0 for caching-mode IOMMUs, maintain
+     * the property of the transformation being the same in either
+     * direction. By clipping to 16 bits we ensure that the resulting
+     * DID will fit in the respective context entry field.
+     */
+    BUILD_BUG_ON(sizeof(domid_t) > sizeof(uint16_t));
+
+    return !cap_caching_mode(iommu->cap) ? domid : ~domid;
+}
+
 static int domain_iommu_domid(const struct domain *d,
                               const struct vtd_iommu *iommu)
 {
     unsigned int nr_dom, i;
 
+    if ( !domid_mapping(iommu) )
+        return convert_domid(iommu, d->domain_id);
+
     nr_dom = cap_ndoms(iommu->cap);
     i = find_first_bit(iommu->domid_bitmap, nr_dom);
     while ( i < nr_dom )
@@ -91,26 +112,32 @@ static int context_set_domain_id(struct
                                  const struct domain *d,
                                  struct vtd_iommu *iommu)
 {
-    unsigned int nr_dom, i;
+    unsigned int i;
 
     ASSERT(spin_is_locked(&iommu->lock));
 
-    nr_dom = cap_ndoms(iommu->cap);
-    i = find_first_bit(iommu->domid_bitmap, nr_dom);
-    while ( i < nr_dom && iommu->domid_map[i] != d->domain_id )
-        i = find_next_bit(iommu->domid_bitmap, nr_dom, i + 1);
-
-    if ( i >= nr_dom )
+    if ( domid_mapping(iommu) )
     {
-        i = find_first_zero_bit(iommu->domid_bitmap, nr_dom);
+        unsigned int nr_dom = cap_ndoms(iommu->cap);
+
+        i = find_first_bit(iommu->domid_bitmap, nr_dom);
+        while ( i < nr_dom && iommu->domid_map[i] != d->domain_id )
+            i = find_next_bit(iommu->domid_bitmap, nr_dom, i + 1);
+
         if ( i >= nr_dom )
         {
-            dprintk(XENLOG_ERR VTDPREFIX, "IOMMU: no free domain ids\n");
-            return -EBUSY;
+            i = find_first_zero_bit(iommu->domid_bitmap, nr_dom);
+            if ( i >= nr_dom )
+            {
+                dprintk(XENLOG_ERR VTDPREFIX, "IOMMU: no free domain id\n");
+                return -EBUSY;
+            }
+            iommu->domid_map[i] = d->domain_id;
+            set_bit(i, iommu->domid_bitmap);
         }
-        iommu->domid_map[i] = d->domain_id;
-        set_bit(i, iommu->domid_bitmap);
     }
+    else
+        i = convert_domid(iommu, d->domain_id);
 
     context->hi |= (i & ((1 << DID_FIELD_WIDTH) - 1)) << DID_HIGH_OFFSET;
     return 0;
@@ -140,7 +167,12 @@ static int context_get_domain_id(const s
 
 static void cleanup_domid_map(struct domain *domain, struct vtd_iommu *iommu)
 {
-    int iommu_domid = domain_iommu_domid(domain, iommu);
+    int iommu_domid;
+
+    if ( !domid_mapping(iommu) )
+        return;
+
+    iommu_domid = domain_iommu_domid(domain, iommu);
 
     if ( iommu_domid >= 0 )
     {
@@ -196,7 +228,13 @@ static void check_cleanup_domid_map(stru
 
 domid_t did_to_domain_id(const struct vtd_iommu *iommu, unsigned int did)
 {
-    if ( did >= cap_ndoms(iommu->cap) || !test_bit(did, iommu->domid_bitmap) )
+    if ( did >= min(cap_ndoms(iommu->cap), DOMID_MASK + 1) )
+        return DOMID_INVALID;
+
+    if ( !domid_mapping(iommu) )
+        return convert_domid(iommu, did);
+
+    if ( !test_bit(did, iommu->domid_bitmap) )
         return DOMID_INVALID;
 
     return iommu->domid_map[did];
@@ -1296,24 +1334,32 @@ int __init iommu_alloc(struct acpi_drhd_
     if ( !ecap_coherent(iommu->ecap) )
         vtd_ops.sync_cache = sync_cache;
 
-    /* allocate domain id bitmap */
     nr_dom = cap_ndoms(iommu->cap);
-    iommu->domid_bitmap = xzalloc_array(unsigned long, BITS_TO_LONGS(nr_dom));
-    if ( !iommu->domid_bitmap )
-        return -ENOMEM;
 
-    iommu->domid_map = xzalloc_array(domid_t, nr_dom);
-    if ( !iommu->domid_map )
-        return -ENOMEM;
+    if ( nr_dom <= DOMID_MASK + cap_caching_mode(iommu->cap) )
+    {
+        /* Allocate domain id (bit) maps. */
+        iommu->domid_bitmap = xzalloc_array(unsigned long,
+                                            BITS_TO_LONGS(nr_dom));
+        iommu->domid_map = xzalloc_array(domid_t, nr_dom);
+        if ( !iommu->domid_bitmap || !iommu->domid_map )
+            return -ENOMEM;
 
-    /*
-     * If Caching mode is set, then invalid translations are tagged with
-     * domain id 0. Hence reserve bit/slot 0.
-     */
-    if ( cap_caching_mode(iommu->cap) )
+        /*
+         * If Caching mode is set, then invalid translations are tagged
+         * with domain id 0. Hence reserve bit/slot 0.
+         */
+        if ( cap_caching_mode(iommu->cap) )
+        {
+            iommu->domid_map[0] = DOMID_INVALID;
+            __set_bit(0, iommu->domid_bitmap);
+        }
+    }
+    else
     {
-        iommu->domid_map[0] = DOMID_INVALID;
-        __set_bit(0, iommu->domid_bitmap);
+        /* Don't leave dangling NULL pointers. */
+        iommu->domid_bitmap = ZERO_BLOCK_PTR;
+        iommu->domid_map = ZERO_BLOCK_PTR;
     }
 
     return 0;
--- a/xen/drivers/passthrough/vtd/iommu.h
+++ b/xen/drivers/passthrough/vtd/iommu.h
@@ -87,7 +87,7 @@
 #define cap_plmr(c)        (((c) >> 5) & 1)
 #define cap_rwbf(c)        (((c) >> 4) & 1)
 #define cap_afl(c)        (((c) >> 3) & 1)
-#define cap_ndoms(c)        (1 << (4 + 2 * ((c) & 0x7)))
+#define cap_ndoms(c)        (1U << (4 + 2 * ((c) & 0x7)))
 
 /*
  * Extended Capability Register



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 09:58:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 09:58:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225082.388728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTJm-0001MY-Ir; Fri, 12 Nov 2021 09:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225082.388728; Fri, 12 Nov 2021 09:57:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTJm-0001MR-FK; Fri, 12 Nov 2021 09:57:58 +0000
Received: by outflank-mailman (input) for mailman id 225082;
 Fri, 12 Nov 2021 09:57:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTJk-0001MD-G7
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 09:57:56 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01ce2926-439f-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 10:57:55 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-18-eUqUkz_VOB-yC6oK1Q4G8w-1; Fri, 12 Nov 2021 10:57:54 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB2959.eurprd04.prod.outlook.com (2603:10a6:802:8::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Fri, 12 Nov
 2021 09:57:52 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 09:57:52 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0017.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4669.10 via Frontend Transport; Fri, 12 Nov 2021 09:57:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01ce2926-439f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636711075;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=EF+CkRbYwN02vUrJtpBRDo7aM/U7Qmg73EJhHAHKvU4=;
	b=aOMEmBU0CCVlJGVOxi/fjxVB5cJJU6FOowrFaFmexn6YKfgYA0iN9rhiGZRdNOHfOKNytr
	V4TJUl3+A/jiI4uXL+m4P+m9XgPN7wVCzCw7uVo8otsCoLtXnoIFm1gxhPZuITZ4IgzZbC
	oyyQDm/HfBq+c0wfKQH8YEuVVw1CFcM=
X-MC-Unique: eUqUkz_VOB-yC6oK1Q4G8w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Dwj0f4v6j9uNtBh6ndauxuNqW0AhceN2KyuLgru2SXDCiZIRPS5y6YGPWwQo+mtq14KwbmbGlroVR2RxEaC+5LQOLyupLmQfvlCpDtkfM+oOoAcWk86s7luIS8Vt20j83otqt4CD7IuwGDxj6ADfimMVrQkZzZpm9p6DgUFSwIVDXw84QhnBDko757S1WqiudBBmH12Rgoyn10YyLcRidApLeNOuHgbWt6tOiZjeZWTw+FX9X4XBCYYwNpz/mKokE4QVPLhvNzjRL7kJ8fKEHQYHM+n5PAx2SximvH9oDkcA6XliXTbybOhu/SeCKwI3z0PQ1gZhSYTDMJexOOEgZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EF+CkRbYwN02vUrJtpBRDo7aM/U7Qmg73EJhHAHKvU4=;
 b=TG1Bt6ub0xszHRxtrMgdI88qETdgEKuNWOn7hpLEeTKk0kbLRhisvCbn1w7UdNxCiLeAApNfNcm3rYYrryTs3fPb4kYzaHV4+vTdH3J3trrhneVfDlXgxUhCZv9BY2f5TXJTHmNM53gQw9ImhGf+ZikrYMDhBx/okriYvgjHC1l+/x7hFdfMVZnLITc/avG0Kn64GfgFPIyfgxA49es+jpM2kuKp2WZ5B/uDQ62QRN4Hw30aJvLYSR4i2ooI7lzOuB4Tp67BQ24BM/g3RbOPdrkDlPI3acfViFX+iZ7m/pIyxkLTuQsP7rQfMRRcVlzFIU0FM3KTGTNCLKbmjkyw1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6306ecd3-011b-51ee-65d3-107099b6dfa1@suse.com>
Date: Fri, 12 Nov 2021 10:57:50 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211111175740.23480-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P191CA0017.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:8b::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8e0e530f-1d15-4731-263a-08d9a5c2e465
X-MS-TrafficTypeDiagnostic: VI1PR04MB2959:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB2959439C29B75DBF39E6ACF3B3959@VI1PR04MB2959.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	4sDDHS4SET+dZzawJ2UWx1UXr5nPRH+u8KypJLKr0CEcl1YGyzs2DQFVbjEpXCi5c95b7D+rmIiQb5GOSuNbn4Fnu9n5XdujeuO2VHI7x/uCtzITrr9PoP1oB7XnEW2GhsibO505Yr3wehV/ZVvV+a7X+GjLwcETAGAj/CVdHBhEVZ56wRmI+vl8ddrA6Jub51YPnJjlp1eo3VNgMNCt5aEqTutEYxzOGLs7pZXJ2IKUYxdabc1C1VfgXTk87rJrRywM1JwwFKzaiMf2H+MhTE+D/6TAZUP0GDr0eGlcmjJp5EYPyc7LZzCW8locBScCdrkbd2BuPyNPmbZduoHZs5DF08BkkmrZEAWB6am7r1au2ajtgNQ7ltVxjzlRAGbv6Zr0MJh9o/SUL51oaVPcvBoaRsWy3hfa01b5xPw4/wwzUqvFWXEDvVsd1lETgKZ8+PMjFniI5EVDcnwQVzRdpLOpzLI/MNr+6mp/vD8MYhNQEhFv1PY4GXSOhuFh5mPBcAHFme/Sp5RZtc+Ludsx3IPznwOIThy4dF8ATH7mvZlUjsmR2tYl/vAmNCTQNWo9vSHCq9UjUwIWB4+fGirIFKd+/lJY59hfJW4N1dF3BSTKW/pfVmzGherSlqBSUd53rpeBqIH9mZLcJh4aghYTOp4FpNB22J++EJj4UIaXiSnjPhEHGNCoafq4WnBBB11JeJ8JKk48JuMexOfjQmG5qnvDEufJn0SNaLE54D318/E=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(508600001)(4326008)(6486002)(5660300002)(2906002)(956004)(36756003)(86362001)(186003)(2616005)(66946007)(6916009)(38100700002)(53546011)(31686004)(26005)(16576012)(66556008)(66476007)(31696002)(54906003)(316002)(8936002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TXdmUEVramVRN2pnMnRSQlJ1M3lMY0pVWlZtbElIZmRxaEJaQWtwZThlRGxJ?=
 =?utf-8?B?cDFDUTlnTTJpUG5rbnBEU1ExeWxpMUxXMG81a3RHMGd5M3haSGZkL3ZHYzJU?=
 =?utf-8?B?dTN3OFVjSmJObVlPM3ZUcnFza0VZMGgwSTAvcGl6cjRrSkJKWUhia1M0RXpQ?=
 =?utf-8?B?bjVwRXFCVkx5N2RLSVdZTmpVeG8vYXFVbklkTGM5bW1yaWdGNldqS1ArWDV6?=
 =?utf-8?B?c1FhRjIyVzF4ZEQxd0pjY0dPaVJRcEpKUXFSVVFvQUo1MzdUd2t1Ty83NVd1?=
 =?utf-8?B?di9XS2tlSXA4VmRGbGhWejJNdFlGU2U5ZWcrWGJkY1B2YUx2T2UrUENlVW1Y?=
 =?utf-8?B?WkhlNVJrcytOZ0pRYzZZR3dJayszZ0sxS3Y0cFZ5SDdkeGRZM20vL2I0d1pO?=
 =?utf-8?B?SUhkanF0UXNkNXdKQUNHeW1sSElocytTcnhxZktYOTRzb0RWM0FFQW81MmJj?=
 =?utf-8?B?ZkJCNTd2SzVxUlNiZk1yUEdyZFRia2FPczhnMmlicnJHUDFzU0hLNElSVURZ?=
 =?utf-8?B?NmhEdjdBdk5JQW5PQ3VFd09ib3l1UEFuU0VuU1k1cHgzS3BubHdvdk14ZGJa?=
 =?utf-8?B?Wnkza0cwdzUxTnQxWE9BRDdacnpqcHczaHVoYVg3bXhnYkUrZ3h4SC9nUFVW?=
 =?utf-8?B?WnMrbHVzaW9HOStTdmlwak85Nkx1ZGtiaHpDRmlCdHAvUkNtY0YzalFlVzJn?=
 =?utf-8?B?aFIrWkd2M2hHdlA3Q0FXVGVSdE50aVUwSGthcG5LQUFoSmJiZi8vQ253c0tz?=
 =?utf-8?B?SysxREQ3L2R3L0hieG1MV0FiTWVCU1NGaC94c0lUd0ZsY3N6UzU5NXZ5dXMr?=
 =?utf-8?B?MVB3V05EUVpMVnpBR0dwdk51TXJMVUE3MVFBZFRSWGFLUUFSOXV0YUdUcTlX?=
 =?utf-8?B?RlhNcXhNSXlQekR1TmdpZWowQ0pFaFNmSkdqSWYyd052TjBnQmh2TU43dFlY?=
 =?utf-8?B?T2dlYnNsaU5TalVEa0Zyei9RUS9hRXczZlduUldKRFlkN0g2UFdVNzRtOFEx?=
 =?utf-8?B?Y01NVm9wVktudTRVbGZXZS9ydCtDSWQ1eUd4ZWo2cCtnK2hhcHJwMnJZVmdm?=
 =?utf-8?B?Y0ZlRkEvWUtQRVhnSTVFOXdJYmR1MUsrdXlDeE01akZ1dmtFaGtEU0ZNTjIr?=
 =?utf-8?B?OW9TemZjT25OUnM3NlU3eXhJY1pJVTdlWHE1TnRxeWJtVEFod0tzUnN2ZEJE?=
 =?utf-8?B?VDNQcXBLMFNGWUNhK2RtcmVtQU90cWVTK0NlTmM1YWxoakJOcytLalZqZTJP?=
 =?utf-8?B?NTQ5dWllZHVRVFEyUStHSThZUFI5cVE0WnZQUnVJcDQ5KzFBcjV1VEtoN3V3?=
 =?utf-8?B?VnNBdGZoZTVqYmIzdlV6eVFxR1ExU1ErZU94ZVFkTUk3VDkvNW9qSElTNXRC?=
 =?utf-8?B?K25qN0sxUm1PcmVOTkVMU1hiYmVKK3VRTEJ6Z2lKQUFMZzRRMzd0T2M1Ui8w?=
 =?utf-8?B?NG1QZlFmK0FwbWhGQ0lxOG81WlZLUXVWN1hWa3RWekVUbHBRZjZQcHlTUGZw?=
 =?utf-8?B?eGNjdHpSeHMwTGd0U2tad2pHZjVxbXUwUzdUYU9VZnV3WFVEUFJDVk1QbG03?=
 =?utf-8?B?MkN3Rlp5Sk5vc0kralhjelhqWXFtVjJBQi9TOGhBWDZ6K2k3eEw5d2Z2NDJi?=
 =?utf-8?B?ZW51K0Fjc0gvYmVRUW5BOWNNRWtEcGV5cEtYQWdoV2pmWjZpVVBWWHdPSVo4?=
 =?utf-8?B?SlltYzl2cVJSd2wyZnk0Z0k2ZnVKcERhZFJhM2F6QjhvVGxBWndlZTJjYndt?=
 =?utf-8?B?enB4V1FLai9HUnJUSSthNGgreFVlZzhBanl1L2ZLS2R3eDIrUldyanlnZmJJ?=
 =?utf-8?B?VkJqaEVORnNWYTU0STYvaTRGQ2RFNEVIdzlabGlJYTI0ZkZhWEIzeVk3NDVs?=
 =?utf-8?B?cFFjZkRQOERkbE01M0Q4M21DbHhZRU5SOEJsSGQwdVdtdGFnRTFZS1BtTzRw?=
 =?utf-8?B?bXNEclozdE5KRkxXc1VDRmlMdVR6RzFWK0hxaHBURmlpcE8yOFdGbjgxWFdR?=
 =?utf-8?B?RWlpVXZUUE56eUQ0aG9HTk5XaXNWVTlNVWM1VXUwT0Q1Snc5Y1VIWWg1LzBz?=
 =?utf-8?B?S3kxdzZTYWx2Zzd6NWFQajB3MDh3Z0FOYzJ3MHNEbFh0ZjVpL1JmVld1MTdp?=
 =?utf-8?B?Zm9MdXh5NWszUXJsWHFEZ3krMmF4NkV2TE5xOGJDWXRLc0E3K3EyUUFYbG1U?=
 =?utf-8?Q?3nNKiYvagvkivW+FijF4w5I=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8e0e530f-1d15-4731-263a-08d9a5c2e465
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 09:57:52.4807
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RcFhRQCt9tmaHqd7XdzGBWrsoPtHiAQPb/P5e5EEYr848yDzEFnvvrmvSnBJugWN8hTgn5a/6vobc/QXZZttBg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2959

On 11.11.2021 18:57, Andrew Cooper wrote:
> Retpolines are expensive, and all these do are select between the sync and
> nosync helpers.  Pass a boolean instead, and use direct calls everywhere.
> 
> Pause/unpause operations on behalf of dom0 are not fastpaths, so avoid
> exposing the __domain_pause_by_systemcontroller() internal.
> 
> This actually compiles smaller than before:
> 
>   $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
>   add/remove: 3/1 grow/shrink: 0/5 up/down: 250/-273 (-23)
>   Function                                     old     new   delta
>   _domain_pause                                  -     115    +115
>   domain_pause_by_systemcontroller               -      69     +69
>   domain_pause_by_systemcontroller_nosync        -      66     +66
>   domain_kill                                  426     398     -28
>   domain_resume                                246     214     -32
>   domain_pause_except_self                     189     141     -48
>   domain_pause                                  59      10     -49
>   domain_pause_nosync                           59       7     -52
>   __domain_pause_by_systemcontroller            64       -     -64
> 
> despite GCC's best efforts.  The new _domain_pause_by_systemcontroller()
> really should not be inlined, considering that the difference is only the
> setup of the sync boolean to pass to _domain_pause(), and there are plenty of
> registers to spare.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
albeit without meaning to override Julien's concerns in any way.

Also a question:

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1234,15 +1234,18 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
>      return 0;
>  }
>  
> -static void do_domain_pause(struct domain *d,
> -                            void (*sleep_fn)(struct vcpu *v))
> +static void _domain_pause(struct domain *d, bool sync /* or nosync */)
>  {
>      struct vcpu *v;
>  
>      atomic_inc(&d->pause_count);
>  
> -    for_each_vcpu( d, v )
> -        sleep_fn(v);
> +    if ( sync )
> +        for_each_vcpu ( d, v )
> +            vcpu_sleep_sync(v);
> +    else
> +        for_each_vcpu ( d, v )
> +            vcpu_sleep_nosync(v);

Is this really better (for whichever reason) than 

    for_each_vcpu ( d, v )
    {
        if ( sync )
            vcpu_sleep_sync(v);
        else
            vcpu_sleep_nosync(v);
    }

?

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 10:16:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 10:16:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225091.388739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTbO-0003jl-4K; Fri, 12 Nov 2021 10:16:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225091.388739; Fri, 12 Nov 2021 10:16:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTbO-0003je-02; Fri, 12 Nov 2021 10:16:10 +0000
Received: by outflank-mailman (input) for mailman id 225091;
 Fri, 12 Nov 2021 10:16:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTbM-0003jY-TO
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 10:16:08 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8baf59e8-43a1-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 11:16:05 +0100 (CET)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2050.outbound.protection.outlook.com [104.47.5.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-1-xx2hs-tSOp-mU88Udojgmw-1;
 Fri, 12 Nov 2021 11:16:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4189.eurprd04.prod.outlook.com (2603:10a6:803:3d::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.18; Fri, 12 Nov
 2021 10:16:02 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 10:16:02 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR03CA0006.eurprd03.prod.outlook.com (2603:10a6:20b:130::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Fri, 12 Nov 2021 10:16:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8baf59e8-43a1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636712165;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=g/2sT517IDXOgkMxbG4lLCzdUFRUadWYmLFOEsp8ah4=;
	b=UdRJn1hmyuzniXmbqro8C4JWSrJzNoGyx6aPNi1wIf7YINY658NDR0aDNAVk8ZER/xfThH
	W+GISR/f7Qg25dZB0Dis8btymtYG9E18C+fSTxxLiC4jYBSDsrI+PWX9lUWAkgl7MM116X
	RxOGHvkxfYM7yLL8Xk0F9jA9U9xgD+c=
X-MC-Unique: xx2hs-tSOp-mU88Udojgmw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CMCvD375kURgTqIbYbdLG+lQ9kXD7KvbP87x7s7IOV1mz7WnKm5MRvMl7Vy62gc+A6XQJoPZB9HW//P1bNXwSHAZh7awTuu5ltKoP7C0PQddtMf/VXIbDnxzwF1ocnMREjtNsjmuOrYcPqbUuWXcglaWGQ24tI+esfg3y46WL+69gQ1kTV6Nod4eLpxYnNjxY5F7k3UMeHq4FtJQC44YxZ48u1FE6jdQ8iif4dnJX1rPdL0duUVK2z87KBBh93/UEKQq2V8DtTP8HiT2I43p4fs5wXY7KGzEM0rRGMyWzlFqpLaNmr9uhqXNm6/tKpA7P8JBzmTASB/0rv1GXtDSyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=g/2sT517IDXOgkMxbG4lLCzdUFRUadWYmLFOEsp8ah4=;
 b=dVuTkNZcRFI3HfpbNQh5C291nApIVTutpemEBFngra/0IW3a5puZRkUWFJQmCeNQiCO5l4ZT1r+6j83GelXMldESi3CFIERmfi0daWeE6IfjlVGUPactHWK3cbo1YZ8zgHrVwdxba51/QhqODDk3BIMFABCSFqDz/1UXHjngqBZJSTsQ0U4vq22Xp/Xn8rXCKfXHCLJm3+9tRuAmgBXSVt5fC/Q2PS9R/XbHvyEtXXreGk2wwS2K96mWiopo0wRSTKTxmQulkVJyLwwUALmVoJEJbIMc6VVrnMS2AveQLu+G33Rl+ylHE1ULpfzJPYyUOvJOC6++X7QWOTI+HuDrYw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c8875622-399f-2db0-58c5-691f25e290b3@suse.com>
Date: Fri, 12 Nov 2021 11:16:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 2/5] xen/domain: Improve pirq handling
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-3-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211111175740.23480-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM7PR03CA0006.eurprd03.prod.outlook.com
 (2603:10a6:20b:130::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 73bcdabe-bf43-4dde-b947-08d9a5c56e28
X-MS-TrafficTypeDiagnostic: VI1PR04MB4189:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB418968EAB40B8E6AAB859CADB3959@VI1PR04MB4189.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	N1jd9HGTtTmNSpI221iJR+i77N8ERQh+w9tUgTm3xZoKXZVS77U7XnQTUnRYaM5KKsB/rSeo/GpKppRANalnWzXffFEo2uoouMH0ax0fttCXTkwrJoGEPLeBbfPZ6/fqHU6402Z1lPRRF2R1S97r+Zwp19VQG1NE6kOLW79rJxEStGg4h2n47AjUuQ+EkxuyBkFz+xt+PFgTkt83F+8/+RSYDNgvvzZKwxTL2rodtaD8KBWc/I8WDg02Ox4jPC35znSEwzn+u5VsyF034qv6U71D9wJ7W8dO/SjxtVkM37a9aCdfa2EJk7bjbZ4VYWSMN5fqkjHxl8Ft2IeFd2cXjOz7yHrx7GxQahZZUtfwMxynW5vV4V47uoEQ7JeMPDlRzQEVOWzL9jzVSUb8aq1GLBvEX931ypWxRwbN4JO+pLLS7zJn0ftPZ4rmgBlXQ0aVJ5jSAN8tsyJ0cOjoHkLp1jAYxYwsBsAY7H9Isbusu69uW/8ANc0wSogECh/xXNLjA+TtUJrZ5IZbiDrX/xn/ep5gjxNeKmZtkhrFBFciLuAJI8nl7PRUngy/okAW0HQ+pHUYbqWM+ByohH1K4JY7kq6nAheXQ3auczwdFfoUqnzwtfM2D1jDQldWNtvX3Q1eWLiZzCtvdLwthgedzczKELp6NOSK0Y1yKbgSibppgjfIHlCNpgt4MZuvUmu4Z1jXtke88+nywJMECIfxebtkUgh6Wa/JxUmrZQr9G67BNPQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(508600001)(86362001)(38100700002)(53546011)(6916009)(8676002)(4326008)(54906003)(316002)(31696002)(16576012)(83380400001)(36756003)(26005)(2906002)(5660300002)(66556008)(66946007)(186003)(2616005)(66476007)(31686004)(956004)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SzdOYURUMElSbzFSeFV1Z2hqdVJBOXF1eXJUalMwVTRST0VISFhpMmxrYjgv?=
 =?utf-8?B?bDJYRGNCbExVOTlvbnNJUzhkVkVWUGFHbUk2amxJYmhEYkRkWmt4U1h6dFI0?=
 =?utf-8?B?SGh2V1l0d0RlNGhOcFhaRm56d2VkbWwrcGlKa05hRUg0LzNyMTJoWnYxanBw?=
 =?utf-8?B?S3Njb3hKS2dwT2ljMnFBQnZ2Qm1nTkpjcnZzdWZPN2tac3pvMmJnU3N6SmdG?=
 =?utf-8?B?d05tLzhkampHT1ZrUmJsOEJHcnNFUnlrZVJsOXFuMm9aRzFKd3hGbUUxMlFU?=
 =?utf-8?B?bXZaTlBzMlorTk81djZKanh4N3F5S0pSZzhNWnZpc3dJSVphOGJBMFU0STdn?=
 =?utf-8?B?c1RUZlBoTG9wOWZMQ3FjS2pUVGtlOHRTOFhOU0J3OE91WmFhTlhUWUpRNEVM?=
 =?utf-8?B?SysyN1k1WHZuVUkrSWZCRnZGTkRTUnpIekN2cmFzOGo3Wi8yUmppRGhGTEp2?=
 =?utf-8?B?V2ZldWlXUjlXMzlZbHZZUndpcTI5b0g0WnNibVVEK0s3dmNRNCs1bHcvSnh2?=
 =?utf-8?B?ZXVHM21CRWZlMlNTNFdJdEg2UmpCVVRWZWwvRW8yOExsYVVBb1BYMVZYWjZy?=
 =?utf-8?B?V2pWQnVHTXFHTmFqUWRDdkhNbGFKVEt6cHVxTGwwUENZTFhjdlJxc3V6WjRO?=
 =?utf-8?B?Wkwya0lxdUwva1JBSUFIQW1HL0grVEJRcjdRbkc1YlNOcmE3OEhHMExhMTNS?=
 =?utf-8?B?UVZLWHZCNmRudzhiTU1weS9WTGJKTytCL2JpZlM4QVk4MlpVbWFZWjNZNXBx?=
 =?utf-8?B?U3l1VmNEODdrQzBxTU5pZlpNREEydVRBOFdXMEdWY3dQUTZzMGJtZFBCQ1hC?=
 =?utf-8?B?TXlKNXZYUG1lUWw3OTBJSlcvaDRRR0lsa05lSU1PMTBCNmZ0bG5lVUkxYVhl?=
 =?utf-8?B?TDlqbFdqMnRybE9XM2ZOeGtrSTVYUlFqUmVnRDBHbTBkN0E0NWZSOC9rTVV6?=
 =?utf-8?B?YWo5QmRsaXp6V2FzVUhBTG5RYTNKcFJpUzJpYjNXZW1MQnUwNjBjZXpSeCtQ?=
 =?utf-8?B?Z3hPZThsclRwRkV5bnNEZVlrR2ZBUVpHL3BLQ2UzUUZHcUVXYzI0YkFPKzBC?=
 =?utf-8?B?VGx5ZjlQZ1JGekpYMkJlSUlnV3hhSHRrNm55eTl2Uy9jaG81MWdkTFBObkRq?=
 =?utf-8?B?cjBXemIwVm5pZ2F0QXNLWnBqTHhKSDlockxtYmttRGUvZEJ2djZyYWFhdkF3?=
 =?utf-8?B?enFxMlg2Qzl3OUllNXgweC81UEJ2cUhnTHpOTFpYKytJVEJOb0JvSWM2N3JY?=
 =?utf-8?B?UFVSRHlUSmIvN2JmT3hCV3I4cUZ5eXJTaWIvQmhYcGRETGZueTcvMmZIT0pT?=
 =?utf-8?B?eHphOXcxRmxlMUM1WktFZ0dsbWkvWHMwMjNzci9CcmFqVWFKU3pSMHB4OWw0?=
 =?utf-8?B?VUlvQnA0Y2w5aWtDbW9oK0hhYnNVeVdYZUpKR0VySU1KUTloOEhYblVLUzNV?=
 =?utf-8?B?RHpPbUJLeHVWU1lVWjBURWtZTnlhQ0E1bkpNbWpiTG15NnY5amR1OTlCWm9s?=
 =?utf-8?B?Y0txblQ2MzRlMWlKVDJRcUQ1c3FoSm5YOUJGRzRGek1PdjdKbFNzWWpnU1M2?=
 =?utf-8?B?UUJzWDk5TnE1a0pDSzNWb2Z1RVgwQjRiaUdNNXpYZlZ0SGRyT3FRQjkzcFBh?=
 =?utf-8?B?S0tBKzQ1aERxTisyWUp0c3d3aGE3MlZISmg2YStaTURhbCs3TU5qU2hpMUVV?=
 =?utf-8?B?SjUrd2dZOHFJd0VnRkhhWkd1TnFWRWZSU0ZtMTNpVjJEYUx2RlNSV3g4Sk5w?=
 =?utf-8?B?VWE4T0c4ek9Fbm5lZk1xQlBmd2kzcDB1clAvbGMvS0ZCd3liSkl4ZnBybUx0?=
 =?utf-8?B?OE5taUN4NVkvTG4yMml3VFlNbm9FV3BGSnd4OG9CSzJRaW51VG80T2Q5QWJU?=
 =?utf-8?B?c0M2UkdhY3hhVU9CYWpLdWNaR254Rm9KL3JLM0pqQndadXpRalBsVjFnTHcz?=
 =?utf-8?B?bHgyTUFuaTJOUXJHSHNXbHNQR1JyTElwOTZkaWdMMUxsYWpMWEhZZlM3Z3J3?=
 =?utf-8?B?SGpJU3FPMGxpMXI1TnJFK1lWYTJLWlROSUVYTVJlOVVXOTBlYlgvL0pnaUsw?=
 =?utf-8?B?OXF0YVVsM3JKYkVIL3ZuZ2lYcklqNHVOY3gzcnhVQXVDRVdQbUdhNFJjVGxz?=
 =?utf-8?B?cGlLS25RN0NrVGxOSG9YUTVtQituRjcvNnowVVV4VXNBV3NlbGpMVXNBY3Uy?=
 =?utf-8?Q?5H3tJPLKbAaOHX50d+Q9Isg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 73bcdabe-bf43-4dde-b947-08d9a5c56e28
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 10:16:02.6118
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Sp4EBgg9ILmExYjBYLCYZ6DA3U+5T51+0dtEKZCW1gwmpWYi5ZtcdA1MkyOZnlF6KVgTjVYlXkFhFHIzXKihAA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4189

On 11.11.2021 18:57, Andrew Cooper wrote:
> free_pirq_struct() has no external users, so shouldn't be exposed.

This has been the case from its very introduction. Which iirc was done
that way because its alloc counterpart is non-static. Not an objection,
just an observation.

>  Making it
> static necessitates moving the function as domain_destroy() uses it.
> 
> Rework pirq_get_info() to have easier-to-follow logic.

That's a matter of taste; I for one would prefer the original form with
just a single return statement. I'm (obviously) not going to nack this,
but I'm not sure yet whether I'm willing to (eventually) ack it.

>  The one functional
> change is to the insertion failure path; we should not be using a full
> call_rcu() chain to free an otherwise local structure we failed to insert into
> the radix tree to begin with.

This makes an assumption on the radix tree implementation, in that failure
there may not occur after publication of the pointer. This perhaps is not
a requirement that would easily get violated considering the present code
structure, but I'm still not sure we want to have such hidden dependencies.
At the very least I seem to vaguely recall that at the time of
introduction it wasn't just an oversight to use the RCU approach there as
well.

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -365,6 +365,39 @@ static int __init parse_extra_guest_irqs(const char *s)
>  }
>  custom_param("extra_guest_irqs", parse_extra_guest_irqs);
>  
> +static void _free_pirq_struct(struct rcu_head *head)
> +{
> +    xfree(container_of(head, struct pirq, rcu_head));
> +}
> +
> +static void free_pirq_struct(void *ptr)
> +{
> +    struct pirq *pirq = ptr;
> +
> +    call_rcu(&pirq->rcu_head, _free_pirq_struct);
> +}
> +
> +struct pirq *pirq_get_info(struct domain *d, int pirq)
> +{
> +    struct pirq *info = pirq_info(d, pirq);
> +
> +    if ( likely(info) )
> +        return info;
> +
> +    info = alloc_pirq_struct(d);
> +    if ( unlikely(!info) )
> +        return NULL;

Are the unlikely() here and ...

> +    info->pirq = pirq;
> +    if ( likely(radix_tree_insert(&d->pirq_tree, pirq, info) == 0) )
> +        return info; /* Success. */

... the likely() here really warranted? Iirc you're generally advocating
for avoiding their use unless strongly indicated, and if I'm not mistaken
the compiler's heuristics result in such NULL / 0 checks to get assumed
to be unlikely / likely anyway.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 10:26:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 10:26:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225098.388750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTl0-0005El-6A; Fri, 12 Nov 2021 10:26:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225098.388750; Fri, 12 Nov 2021 10:26:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTl0-0005Ee-2z; Fri, 12 Nov 2021 10:26:06 +0000
Received: by outflank-mailman (input) for mailman id 225098;
 Fri, 12 Nov 2021 10:26:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTkz-0005EY-Ah
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 10:26:05 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id efa02a66-43a2-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 11:26:02 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2052.outbound.protection.outlook.com [104.47.13.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-35-O21z0DkQMkWgcjIBft0cvQ-1; Fri, 12 Nov 2021 11:26:01 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5904.eurprd04.prod.outlook.com (2603:10a6:803:e6::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Fri, 12 Nov
 2021 10:25:55 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 10:25:55 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR0301CA0041.eurprd03.prod.outlook.com (2603:10a6:20b:469::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Fri, 12 Nov 2021 10:25:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: efa02a66-43a2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636712762;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Sx2rnzqFtY76dmq3vc2M8RdO8C0wFtqKgqF6RI6V0ls=;
	b=FyX3ZKVNoZqC0RVANAHMstFpEMoyXO6Trsw3VZAb60das2vA/xJSgEmhluLtGftuzTtnIG
	WNOdOp6opp85zN29No9pLSdtKRX/N0cSjTRWspu4Wfvii7JTpVsJKIk/3h+uuJnsDqmIh5
	OshIyz/sm0NEp+JD3lFW0yt68CXzs/s=
X-MC-Unique: O21z0DkQMkWgcjIBft0cvQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CkyRXUlQWyAsfHqt0BKml46yBRA3dA0MfenISgHsOj0nvnB0EuHR6wGSkX+qZHHKCn3IMpJoPx6fv5z022lkL6rUZoEiS59fIQQT/0E0GMxYPgPWOCYwyRFIBu2FkZFtYANbDrvcgQcHb//eIQxsmdaP3G2ctZmYIoDAVAFVJ8Ka7YzrgxNT8K/ZknwspW2O6TpJQnYwLiGUGDVLJD97B9h5yeqa/NRhQN5eq2z+b3tFL8yjnAwBiMGLN0mXu+q8pD0P63crpubxyLqkTqc7PL5xM3SH0TwADi+0IszWjreVvgnlR2FFF9jov9CNXu2b733aS9+I53T7pwxIZNIMCg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Sx2rnzqFtY76dmq3vc2M8RdO8C0wFtqKgqF6RI6V0ls=;
 b=FP6EzRDKou73+TPuLGM2iCL+wPltieDOGOYt0a+Lu+laV/ekQyUQDh57SluNCaV1Sppwr0LrTiXe/PGSsSZkOATPrwmoX63RwXYhxco/WanC0GFMBGysfxbsSEFnVSq8arcxsx+afwIkMdwuzUJCxSCYKLB6wu1rEQhDxXchZU4+kj8OH1vNZpvRyKZYoecxfBuklv7Th1KZfrb4jZslHPwam/Y6hCrfOcwTNmI+c1JOZadgjf8kSavwC6Ft6SiMhPY+eO8EEPwI/GDPwSViqKXRbSvTqjNMQB6C5pWItG1sYfNhePFVtdAc9nDLCCgBW8ssLuGOb245nKsqOjCbvA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6672a9ef-5e60-d91d-4f11-78f0d7ca8e5c@suse.com>
Date: Fri, 12 Nov 2021 11:25:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 3/5] xen/sort: Switch to an extern inline implementation
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-4-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211111175740.23480-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR0301CA0041.eurprd03.prod.outlook.com
 (2603:10a6:20b:469::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8c400b74-5f5e-49a4-ed00-08d9a5c6cf5d
X-MS-TrafficTypeDiagnostic: VI1PR04MB5904:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5904608FFFC83ED538E7DE28B3959@VI1PR04MB5904.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jbPPwQEhEqVDpyW2Z7leCyE/CmYBZgKDbGJMZIebu6knM17ehwE+h07dRSbCZuApUmJQ3Yd5ldzJIIj9bGkoM8sNj+jCN5/jYqSZ6j7KBCVDAfO19n/eq5lMsy7vRDqGbGBQr5EFoVopPMAJO/LzT85ev5KsDOCW0N9LhQUQFvDFGCCSUHvxICvWdkRNrSUxn80JZ5ZIp1fJy8e0aAEYetxy+mbDg8+pSLUIAmR53ysA/jwQLS8fINHHkx0WKcWrQM1NwV1b9eRn8M1n7RanST8frCpAQvPfH3jnMpS5sSW8cSTFUHPa0ikQL2oBKgh5jLIXhoCsCsOEnTYyelrAQFJBvg/PULmIWU2tYnZIZmSMfGHdlJ0O7RjW+p1NqCZOQEGUHkbxfBooJz2oLV23hbuqiyCKRq7gDKRv5lCjIXktN9akWUAieQgxN2sAoTtXj0Bbw15/EyDH5Rg/+HLJS1ykO3OCERcGjn+w2KblJapY49aww9qF8fYsDGQJQfAOj08zq1MSWiq7sEQMHKB+pEBC8uyNDZgJDZZtUIoJRKbaivFwZINkE63UjUF4Q4RQzOQlj2Ej7Gg1O56aRsyZbMGa+Dy1X+FOgbQOX6sdZeOFh7nYkcvGXczw4lbzqqNs0SYarZ6kXt2ksUNMsQoWpLOgIKFPU6//iELdAx4/b8OtkG0UsKcQopALleJ3F99AS5lzosQIB8Gfch1tc0glGE0VK+7JOvSCH0ctzTHoybazhTO/z01BtCn0qzzfOmqT
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(31686004)(186003)(5660300002)(31696002)(53546011)(2906002)(36756003)(38100700002)(16576012)(54906003)(316002)(6916009)(8936002)(66476007)(8676002)(66556008)(6486002)(66946007)(86362001)(956004)(4326008)(508600001)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NG5kdGxqbGdUalBqQkozeis3dHZiZE0yK2UwTWthd1pSclpiS3VyakdKeXc2?=
 =?utf-8?B?dys4Yjh5djRLY25HQlRqY3FGdlQwaXkwa1R3MmNMaGtQM3JmN3J2V3hZUkND?=
 =?utf-8?B?N0hsZTNOdVBCTTlvZEswTnBrS2dJcTVlTEkwT0RrNDlna1Y2RURmaEQvbTUv?=
 =?utf-8?B?UXJLK01PampsZ1lkaVJqU2xkUm5DSExRSWdTRW5EODBveTJRRlZRZFFpdko1?=
 =?utf-8?B?bEM0ZUpuZFN4QkhSYkpYUGVyd0RhYkk4em9qaTRDRnNERWQ3YUovdFJHWGYr?=
 =?utf-8?B?TjJXV01TZytBTTkzb3dYemhuN1Q2cmtXeUpETXRxN1JaN2JEZjRVTDVqWG9D?=
 =?utf-8?B?d0IrWllRSXJYdVJCelp5ZjFCMHdGMWRKc2tUYTVucW1mMHNoT2pUcS9odkUw?=
 =?utf-8?B?RHNBbkdmRVI2Z3lJWWdqK0dBbmhrRE8rSFBSN3F4TUJqV2d4US9xRkhDODYv?=
 =?utf-8?B?SlZlZE10cEdxQlRLeDdhUkFQMDV6aDV1TWZFZ3psREZmaDVOTXNsbEx1MHJC?=
 =?utf-8?B?ME14Y3lKRy94bmRLeFovZVBiV0JKNTJpYmJLcnU0T1d5Y0I5VWpiY3loT0R3?=
 =?utf-8?B?RTBMZDBWVDJSbTBjeENoci9iRDFzcUFFL2JrVEtjWDBwWWcvZTIyK0NnR1g5?=
 =?utf-8?B?Y3h6OVZFR0RJdHhtYVd5OWpkY1JjcnI5TWtDTEhrZ1dPTkVLSlYxdkxOb1pE?=
 =?utf-8?B?d0thUDBiZkhwOUY4S2ZjNTM3c1VyVS9YRWhicndUZzNYRi9wWEQvUmxiRVZX?=
 =?utf-8?B?STQ3elZvVS9sUzRxQmtyMWYvYk9uVDdnRVA0ODZrYzZIR1JpSmtGY1AwQ1JZ?=
 =?utf-8?B?QUoyMHlySDRtaTJjUU14UThvK2JQRStDaHpXcDV3dklxSWVtVXZDMm1naXo1?=
 =?utf-8?B?WTQwcXVvNFdBRmdLaVEweFhtN2U0bm9ZcWxPQ05wM3JaWkpkQVFxaE16SDdx?=
 =?utf-8?B?eUFSaEJFSVFDRGswOExvR1laLzdyYnRJTVZCQllzOFdRNDIwUG1kYmlCS2oy?=
 =?utf-8?B?S3JiSFJGUTRQR2d2V2xPamgzMjNLYjFBanR2bDNteFcxZU9Ia2JqK3kwSWpa?=
 =?utf-8?B?bjg2NWEwNktySmd5MUtJZytzY0ZmMktuYlliZUJ4WkwxK2JiczJoRVRXb3BO?=
 =?utf-8?B?NjFWeE1ITXB4V1c2M3d2a1lrazF2YnIyZlpXWHAzMHVKcUtiSmMyNm40Vy82?=
 =?utf-8?B?WmJsbTZFbTRXNk5VVmtmQm5XUnJzenZFOXl4cVFONHA0ZkEwdnJkMEwxL2xB?=
 =?utf-8?B?VGNSZWx0NWs4czJWVlJFV2pTbU5IRzE3V1VzakNybENmdHJHeHhkYXUwbzdu?=
 =?utf-8?B?UGVHSUdqN0QyTTIyeno2aUllUHg2aDdhcExzZHlvdEdndVc1aC9xUnU5UENM?=
 =?utf-8?B?cVBnSFZaTDZOVUNBYURwYlVSdHVISlExeW8vdkpqbU00Wm5waGtoY0J6VXYx?=
 =?utf-8?B?am1VcTE4VXR1YktBM3B1UHg3eFdlMFY3NE1nSWpqS1lZTGJZcW9tNGRmZVdy?=
 =?utf-8?B?WVF3QmVYR3dLQVp2K2xNSklWUHd2Sk4wcEUyMlVSbjgzYVZrTHlGcnUwdkdq?=
 =?utf-8?B?YkViVTJZNmgwTVBTL2J3a2gwRDRkOThKRkhZeVc1TmRrY081cmZLNmVqSEI1?=
 =?utf-8?B?Ny9SaC9hRGdjRHFEK2pvbDdmQldFRmo3UVZDVzJ0TG9adnN0bGdGWjdWYjd5?=
 =?utf-8?B?VTJDeUNUcTVWZG5HcTcxSmpYUFpydW9UUUNJY0tmbVVPc1N1SkVSTDdoTzF6?=
 =?utf-8?B?VFB1VktDYnQzMkpwT2QwQWhqcVlnYU1xVWJpWUFZbGk0eUFEc0tGSWVhQ3Ro?=
 =?utf-8?B?SmxMNmsrWnpRZi96U2liNC9ia2NBUExUd1NqU05JbStjZnV3VW5jdFpTa0lj?=
 =?utf-8?B?UlZCb2hGSExWNmRuUStYek5naUVMQlRjNjJPSmIvSWE2YTE5dXJ3TkN5Ymcy?=
 =?utf-8?B?TkdWSjZ1bHhCaUU5RG5qM2l4WmRRcU1kOWlWMHJsNWluYW9ETFB1WE9HcDJa?=
 =?utf-8?B?R29FOW9mcjNSVkk3NFA2V0lHY2xpbjRJaXVtZ3BqTUhkcER3ZmVWd0U0OTk0?=
 =?utf-8?B?L1l6bDdURVFocEdlMFZYSjhQZ2IvbVBsa3JBQ3BpZi9jbnlLM25VaVVXMzIr?=
 =?utf-8?B?TktzS0JJZXhxSGhOUExCWFFCV1MwWVFBUHM2L3pRSkFhMzNLaTFEd1YwSHps?=
 =?utf-8?Q?vJrjkVBU1S06VY1OLWNWO14=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c400b74-5f5e-49a4-ed00-08d9a5c6cf5d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 10:25:55.2131
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2UXgI9rgJ4zACpjuTYXkxDnK3RYN/UeaUIJ8ywzVDtXsFo5sd2+AF7ZqUAtQKwFUK5ipbi7gylhvVHSQLBSXmw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5904

On 11.11.2021 18:57, Andrew Cooper wrote:
> There are exactly 3 callers of sort() in the hypervisor.
> 
> Both arm callers pass in NULL for the swap function.  While this might seem
> like an attractive option at first, it causes generic_swap() to be used which
> forced a byte-wise copy.  Provide real swap functions which the compiler can
> optimise sensibly.
> 
> Furthermore, use of function pointers in tight loops like that can be very bad
> for performance.  Implement sort() as extern inline, so the optimiser can
> judge whether to inline things or not.
> 
> On x86, the diffstat shows how much of a better job the compiler can do when
> it is able to see the cmp/swap implementations.
> 
>   $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
>   add/remove: 0/5 grow/shrink: 1/1 up/down: 505/-735 (-230)
>   Function                                     old     new   delta
>   sort_exception_table                          31     536    +505
>   u32_swap                                       9       -      -9
>   generic_swap                                  34       -     -34
>   cmp_ex                                        36       -     -36
>   swap_ex                                       41       -     -41
>   sort_exception_tables                         90      38     -52
>   sort                                         563       -    -563
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Technically
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Yet again without the intention of overriding Julien's concerns in any
way. To address one of them, how about retaining generic_swap() (as an
inline function), ...

> --- a/xen/include/xen/sort.h
> +++ b/xen/include/xen/sort.h
> @@ -3,8 +3,61 @@
>  
>  #include <xen/types.h>
>  
> +/*
> + * sort - sort an array of elements
> + * @base: pointer to data to sort
> + * @num: number of elements
> + * @size: size of each element
> + * @cmp: pointer to comparison function
> + * @swap: pointer to swap function or NULL
> + *
> + * This function does a heapsort on the given array. You may provide a
> + * swap function optimized to your element type.
> + *
> + * Sorting time is O(n log n) both on average and worst-case. While
> + * qsort is about 20% faster on average, it suffers from exploitable
> + * O(n*n) worst-case behavior and extra memory requirements that make
> + * it less suitable for kernel use.
> + */
> +#ifndef SORT_IMPLEMENTATION
> +extern gnu_inline
> +#endif
>  void sort(void *base, size_t num, size_t size,
>            int (*cmp)(const void *, const void *),
> -          void (*swap)(void *, void *, size_t));
> +          void (*swap)(void *, void *, size_t))
> +{
> +    /* pre-scale counters for performance */
> +    size_t i = (num / 2) * size, n = num * size, c, r;
> +
> +    /* heapify */
> +    while ( i > 0 )
> +    {
> +        for ( r = i -= size; r * 2 + size < n; r = c )
> +        {
> +            c = r * 2 + size;
> +            if ( (c < n - size) && (cmp(base + c, base + c + size) < 0) )
> +                c += size;
> +            if ( cmp(base + r, base + c) >= 0 )
> +                break;
> +            swap(base + r, base + c, size);

... doing

            if ( swap )
                swap(base + r, base + c, size);
            else
                generic_swap(base + r, base + c, size);

here and below. The compiler would then still be able to eliminate the
indirect calls (as well as the added conditional), I think.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 10:31:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 10:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225103.388761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTq1-0006d9-Rv; Fri, 12 Nov 2021 10:31:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225103.388761; Fri, 12 Nov 2021 10:31:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTq1-0006d2-NT; Fri, 12 Nov 2021 10:31:17 +0000
Received: by outflank-mailman (input) for mailman id 225103;
 Fri, 12 Nov 2021 10:31:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlTpz-0006cs-RX; Fri, 12 Nov 2021 10:31:15 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlTpz-0005xI-IZ; Fri, 12 Nov 2021 10:31:15 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlTpz-0005Rn-8x; Fri, 12 Nov 2021 10:31:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlTpz-0007Bt-8S; Fri, 12 Nov 2021 10:31:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=7JcLTbHerWqu0a6RjSSLS0+4GBw2WyzvidnVOhmDjS8=; b=3K+Z1gXAR198Av42fCOHKfbR28
	P/scXGs8bcDnM97FoYYQghvtL2nfp6cCbwI3zFmCSnpvHCpxBP8DqUQIZ19QCXW5HNC7fLs+vtPac
	CFryroJK/cZN7Jk3RPDZ+/vRva7M4dlpex0/sP1P6gIBcl7gqPD8OKKBZjVi3LxxAsTw=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166123-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166123: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=4c495e5e3d387b26e1f22d708ff707eee6898c17
X-Osstest-Versions-That:
    ovmf=a92559671a3bbdbc154429cf66edf4f490bbe218
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Nov 2021 10:31:15 +0000

flight 166123 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166123/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 4c495e5e3d387b26e1f22d708ff707eee6898c17
baseline version:
 ovmf                 a92559671a3bbdbc154429cf66edf4f490bbe218

Last test of basis   166120  2021-11-11 23:10:10 Z    0 days
Testing same since   166123  2021-11-12 07:27:21 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael D Kinney <michael.d.kinney@intel.com>
  Peter Grehan <grehan@freebsd.org>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   a92559671a..4c495e5e3d  4c495e5e3d387b26e1f22d708ff707eee6898c17 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 10:31:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 10:31:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225105.388775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTqG-0006y6-45; Fri, 12 Nov 2021 10:31:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225105.388775; Fri, 12 Nov 2021 10:31:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTqG-0006xz-0u; Fri, 12 Nov 2021 10:31:32 +0000
Received: by outflank-mailman (input) for mailman id 225105;
 Fri, 12 Nov 2021 10:31:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTqD-0006x2-Un
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 10:31:29 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b1eba5cc-43a3-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 11:31:28 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2175.outbound.protection.outlook.com [104.47.17.175])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-10-ZB7Ns1ixN2CPrQBVCjTzrQ-1; Fri, 12 Nov 2021 11:31:27 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3933.eurprd04.prod.outlook.com (2603:10a6:803:24::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Fri, 12 Nov
 2021 10:31:23 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 10:31:23 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR3P281CA0031.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.8 via Frontend Transport; Fri, 12 Nov 2021 10:31:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1eba5cc-43a3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636713088;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=HnuP7QcwIlJAt4A1Wfn2ZyD3e0l7FRzYFgO5D4oczZg=;
	b=lNk/g+NqXIBd7DDVUOxbu28CLQSIima27JvvLekZUu1wKZneSWqiy7mWMYZXaw0JAr8tD5
	+xcmRGu6ooLPoEfiBHUaUougL80HUlx1aJ4R+Cb1/kFK7JqdZo5/nlo24ajFN1AAjYlNiN
	25drOj5qZnJXB2qIeoKe9hkofC7fadc=
X-MC-Unique: ZB7Ns1ixN2CPrQBVCjTzrQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AtWx1GpO6woXWc3EcVcqHyUMXrxRpnzMOTo8VqwR5Wj/982iEmEBH6G5RHdOn1Xk1WscgkNO9sizV7LNB+p6mK8ct+QzGHPrCJHFu1B+KH15q3WcYpTN2e+vz6/T9cLMygXR6sFSKv5COBeIX8vm6I1tXifSmXAyTPT/eFYj0iVe4z/8Oqi22NB53GRpmxSkRcwcA+B+IdwWfnfMMoFK2VchgPOi5WVaiIHVZAqWWSWhnJekf6OoE1fVgITHFeQb1hp9BeFFKun6YgXrP52CDFlP2B+cX3usSGIAGhpWfrR8iNAYF47Ifta09LqMllwdGJ/dxebwN7ca1EyoXyT0FQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HnuP7QcwIlJAt4A1Wfn2ZyD3e0l7FRzYFgO5D4oczZg=;
 b=ArWrr1B/kejWUbWfJomU3xdP9GUSGJVFpkx2l+0iRCEbyz+7CllponfpqoAwx4DNMilW0ywjHETc4NM11DEGBjnNxblS3qUTo94bMp2VWVYjVYX76klsvgBtXB49QEz3p69UNjkiH6wmhCkp4+pW9pjCtAIEcjAgYSHyHK/UJ+vdHtElpUY+xq0n06Cv2ZN8n1hzqOJwD7PHDIK3q80i3STXZrrZdme3AR4N4kA0KKmNeaXJ6cItCV7ahr+Ilxvm7GT5hqYpLqGs0NrWYsNyRr9b0dWasme3Xbz/bCPLMuLIF6LnfF0zEKJmucu6f06PyNQujX31pELEWG0wS4HfHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
Date: Fri, 12 Nov 2021 11:31:21 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH RESEND 0/3][4.16?] VT-d: misc (regression) fixes
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>,
 Ian Jackson <iwj@xenproject.org>
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0031.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:1c::9) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b90bdb3d-8da6-4815-7d86-08d9a5c79318
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3933:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB39334B5412890338A4F6BD36B3959@VI1PR0402MB3933.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	sHr/JA/DSNt6i+AG/J7bX3NNN07cWvrcNbEOilCRSb2TeKQvREceLHnVteFgQHukexzSdVEOXqHsAYa0HFEcJlgJILatPHZJR8h0MjiRJT+o3K4k4zmD5n64B4WXnLPFBrkzkl9X4sI/QPbK82cyuOG2L/TAk19mSiHrO/6L/USjxXzvlw+m1Hhh3iP1yPLQy5jhhDk9EFaIEg1zctuu5IElG7A2gahXdJjsP91h9TJgi8tB3LpJbYTVAGgJDgMW6s1HOAPrg60V26eeAH6aesBmVFYhySBjRPsQAngvv7T/QmtpQk1gR+OirfBeKM227r75iXl97HY5DBRzvbgGGeI+ihBlt0DTp98NlI8XKLUKJyDqhXjEHBVmpimosxeYqLu+h3fX6wRauKyVdto3u/oCNdBEXXRGHgWEUXvL9FC1ET6B62nRW9MMxwhR96zkwehVHJSy6X7fi6H55zpiwtoxQ1QtH5no1Fb+2EGC2fjcKgxRkrlhlyz5lak6kpl2kcOw0GFI4/1bT3FQxYqUWZZWk4rJeLv4ztWNbB/yfDAmZya/t4+rU2MqUta40x3d4vU8vfJezUlO+37/S5sRM3Mxf0jYbM2HsrEObDwu0p5QMqcYxei3oIWlMt9vkUVSRUN2BtOMczDLQ8g6wmPUeo4YiWDFqmeKNR7JQziI55zq13DtAn+iHzPSzFp7L2mRuFVYgmg7XxOyZdFJU6tqY1uNc1b63/BG5rP1hyEQ5sw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(8676002)(186003)(66476007)(26005)(4744005)(6486002)(4326008)(83380400001)(8936002)(508600001)(5660300002)(956004)(2616005)(66556008)(66946007)(2906002)(86362001)(6916009)(16576012)(316002)(31696002)(36756003)(54906003)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aUpqWDluOUQzaStwdVNxTklWNDk2QWVJTFc3VmdEZ1RsdG5iTTNtbzlUNTl5?=
 =?utf-8?B?d3BydTc1K012YWxqUksrdnNubk9mMGZVbUgwQzRuYlJUUUswbloxaHdXZXVO?=
 =?utf-8?B?cVFPbE9RVmszZVR3OXdPaDFwQ3RXQ3RCaTRlVFpzbWhRRFJOWStXdHFpV1lU?=
 =?utf-8?B?UklTTUd3SWxkWS85QnhoMXNyVUdvekl1RndqMVRkTlFjTlFEdFZTOXV4T0Ur?=
 =?utf-8?B?azRsbUozelFSMUMyajRCNHNISXk0RkxrMWhjRUQvZ25HcmEzWVBoNmlSekdU?=
 =?utf-8?B?RHFFQ2VLU2xEdnh5NWJXbUtQeUVsbUlOUVZML2tZMEEyTjE4a0JyMXNjVFFl?=
 =?utf-8?B?OFl4WWp0QktiZVlhV2VqYnhtVEFrWjNOWDRibVBlLy8zNjAyT1I4dmFoaFRh?=
 =?utf-8?B?UE9RUzFrN0M1MWJBQWRqenZDVWFPWU1YNTkrenVIaGF4Y0pwQUJTdGg4ZVly?=
 =?utf-8?B?WTh5YzBmODRYRGVOcGxaL1BlaVkrODJtUE05blFrSm1UK1pwM00vNzVveWRG?=
 =?utf-8?B?NE5vZWNiNkZ1NTRqOFg0Y2Z2OGd3YU1ENkhPUGQ1M0ZiQXplMSs2Y0xIQTVO?=
 =?utf-8?B?dEVwUzY2bm1kU0lLUTcveVFZdlZnRTU3dXM3dTQ3cHljdnRSa1JxazhUdmsx?=
 =?utf-8?B?WWFYa1VlQjg1NzZkcDR5TzlzOWRtQmhicU1QdVdtR29FUW9xYVdpQ3hQa0N2?=
 =?utf-8?B?SC9wL2gwNVVmNjNsOHpZa1ZjSWdQRUd0MHJ2dWxwVUhncVBTL3pXdVQvc2lH?=
 =?utf-8?B?TjFYSkpxTWluTGg4V3d5UzNaVjZjcmR0SFYvTGdRYzZlT0MzQzJ5QWh0T0ha?=
 =?utf-8?B?YTZZZ2F3c3ZMSTRBRE1OdWR0dDQwT1ZpS3psL3JYOFduRUVpdVo3bHczSThZ?=
 =?utf-8?B?eUZ6eXFNczRuaHpXSkNkQ3F3MnNUWkJyY2pXcHRxTDk2ZnBQNDFFT2orMWN2?=
 =?utf-8?B?ZzRUQS9IK2U1MXVPeE50UHJEUmt0WnJLVUgxSHpTa3JOKzNLSTJuMGwrZHYz?=
 =?utf-8?B?dkRkUFU4Y1dXS1FCOFNvSWEzdkpHY0FKWW0yajcwSTNCSVI0MmNGYXV0VFF2?=
 =?utf-8?B?Q2UzWmJ0N2xDUERKZTI1bmZGTnBoR3hpOXIzUUFwYytqZVR3OW0weUJUMUlC?=
 =?utf-8?B?NURXS1RCcXJmekE4c1J1OXo0bVF6VkZhKzd1WkdJYWR1aHJTQm1Pb1gwTEVK?=
 =?utf-8?B?UUZtbnJtVWxVYldidnNIWHhZSUpqSzBwOUdvcXdYQTA1RWRqNTdiVTB5b3Nj?=
 =?utf-8?B?WGdyZ0tXT0x3UXRRNGpXclFBc01rUVVSRzVERkU2NEtsVHQ5U1p2TUcxeU9p?=
 =?utf-8?B?ZnlXM3lqWnoxL29ZaE9NaTJxOG40VXMxUHRobHpmSnBGL2pWbFBwVzZvMHkz?=
 =?utf-8?B?NGpZZjJhU0dVSlg2eGZxYmdUTVI4UE1NRytjb1BjVlBoL1BZVjRSeTRZdU1P?=
 =?utf-8?B?WkUxVzFGcTZRZUQwSDYvQ3dXNXQ5SkorSjVPalRHWUptbERORDRUeVp4eTRQ?=
 =?utf-8?B?ekFROXp4eUoxTy8yNGJVZUxoZXF6cGNXZXR4L3dCdEdTNEVMNmJ1V3liWTZN?=
 =?utf-8?B?aVpJYzZYdlhQNVpTOUpOemdXdk9VVVRkOUsvclJLK21NdVYvWlcyTUFod1Fy?=
 =?utf-8?B?ZW5LdDRsbittUERaUXc4MDZWdkFzNjFUUnhNV1dRQy9ibWRwLzhmbWVoTmxV?=
 =?utf-8?B?OWtNMUFoZy9qVzhneGZzU1FhaEVBZFdjZWVNeGovQ0gyTUcxczQwaUFNdDVI?=
 =?utf-8?B?Z0dCVUxaZXFjZ2g0dnVoOEgyUmRYQzVpQnNROFVZSmQ4Y285WXJveHN2aTBM?=
 =?utf-8?B?b0ljTk5JNWYwclBlYVFNTjA4SzZPeVFxUjNIT3l5SWlTT0xkVVIweXQ5d3Y0?=
 =?utf-8?B?WXZON1M3bm5lWnFEVkMyQmFiU3dxS1E1bTJFREV3M0E4b2NWZDBwWStmQlBV?=
 =?utf-8?B?TlhLQmdCeUxacjREcjlRbmpudkxudEdlVC8raVpCOHpiRzlIUmdyMS9pZFAv?=
 =?utf-8?B?bmYwZXhNNC9jNmFDK004UGg2Q3hMaVdRV1kwVmFmbnU0Q0NpM092cHVUZnFS?=
 =?utf-8?B?VmZjRGJIM3pZQktmN1BSdWs4NHRxVlFSdEx3ZnFlN3AvVGFFNUZRbnN0T1dL?=
 =?utf-8?B?TEJqVU1pR0huREw0QjdhdHgzcForbkhoWjkvN0VtWUw3STFyK1I4NWUxdVpi?=
 =?utf-8?Q?fkdEiNCFqb8cPtBKVe9+C7g=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b90bdb3d-8da6-4815-7d86-08d9a5c79318
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 10:31:23.5935
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qy/vaBfuafvN5CeeS+rZpmxERbVzc9tT30OeIct1wKDJRgxUdd6RcTjTCZBIoiWCD/qlerQxuBe892OOhqfKPQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3933

(re-sending upon Ian's request with his address adjusted, including
Kevin's R-b at this occasion)

1: per-domain IOMMU bitmap needs to have dynamic size
2: fix reduced page table levels support when sharing tables
3: don't needlessly engage the untrusted-MSI workaround

As to 4.16 considerations: Only patch 1 addresses a regression
introduced after 4.15, the others are older. Patch 3 additionally
only addresses an inefficiency; the code we have is correct from
a functional pov.

As to patch 1: Without the earlier change, systems with more than 32
IOMMUs simply would fail to enable use of the IOMMUs altogether. Now
systems with more than 64 IOMMUs would observe memory corruption
(with unclear knock-on effects). Whether systems with this many IOMMUs
actually exist I can't tell; I know of ones with 40, which isn't all
that far away from 64.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 10:32:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 10:32:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225114.388786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTrO-0007ni-Ep; Fri, 12 Nov 2021 10:32:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225114.388786; Fri, 12 Nov 2021 10:32:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTrO-0007nb-BJ; Fri, 12 Nov 2021 10:32:42 +0000
Received: by outflank-mailman (input) for mailman id 225114;
 Fri, 12 Nov 2021 10:32:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTrN-0007nO-Kr
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 10:32:41 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dcbb69e2-43a3-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 11:32:40 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2175.outbound.protection.outlook.com [104.47.17.175])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-39-uwqBQAlXMRyRZCQakoyZYg-1; Fri, 12 Nov 2021 11:32:39 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3933.eurprd04.prod.outlook.com (2603:10a6:803:24::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Fri, 12 Nov
 2021 10:32:38 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 10:32:38 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0102.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Fri, 12 Nov 2021 10:32:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dcbb69e2-43a3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636713160;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=uXPdj6utTVZJv737OWw1P/pyaL30rwsVcA5yvBiI65o=;
	b=L0o6gJPzNyOuigKs0/IIbw9EMC/A4rgheDre1TVWi5FSy9F++rHaeivepPRTJFerXlULhI
	p5snUNAeHpGywSpEmCYYtqM3LIHVo3qMdzxNlNt+wljKLjTm7Wm/VU4sfel82L7rztxWlG
	T/5cv0PMDEKowydH3jStSUea2FTZZo0=
X-MC-Unique: uwqBQAlXMRyRZCQakoyZYg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=loU1Qp6c1twDLTaVW3N9qMWT0zeS9vN25LOllNj2eSicQtMV3/aqFyhz1yshpTsKabDEhjT9K2sUaKsYUxTgaC/zBx5XbieV2z27oNLzddw/0ZC8L6K9103tlMDwr+U1G2ALXVyJY4nttZap7z7y2viUxIQWb3HLA4DivIyk8AWB7X5NBS4GwCCmqA7/RWwdWrugsILrWrtUFkSAq3MEP7xtcmG+pNRsVDNdwMM7wF+zm7coE/LWMYhy1thTvewmnwvlNt9CunnyXYAxGqatq/KvOvW6HLLq9hEuFqKt+Tl7SrBLiF2jHE7EkQjBbK+1MU/XPFpqW6/iwG8AjkzKeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uXPdj6utTVZJv737OWw1P/pyaL30rwsVcA5yvBiI65o=;
 b=ERJSzh9AFGMOtFaw3RUndM90TbWG6fxyN8DmV3NS3iaMUjvYsWUmQy5nBQPGB6CnEVZJI1TmcfQafsMgeyBOO5pblIlq5U4YGNbeSP0Q/32m3fshl7kL9ctubguSSICyd3xrtaXbkU42m3YUzU0DxDuxiGfGb5oAYixq2ZEIFUvWpq44+au9h+XHWuwe18tTmRYuHDsMJHimImM2dAId1exHGE2MZZUhSDraP7TOIv3Lzt4i5byCvYWHQ5p+YqH/5Mqv9CuVczBvjIlM8gIWCB7A6crPX1M7Hjp/er+nKBRio7lo+OcXHWwHLgHPBto0xJ5avlKaoUTDGnwcTpJ4OA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <684f2650-7230-debf-1de6-21745c8efa9b@suse.com>
Date: Fri, 12 Nov 2021 11:32:36 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH RESEND 1/3][4.16] VT-d: per-domain IOMMU bitmap needs to have
 dynamic size
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>,
 Ian Jackson <iwj@xenproject.org>
References: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
In-Reply-To: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0102.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:86::43) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: eea8e971-4d42-4292-9a67-08d9a5c7bfd4
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3933:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB39338B0B8A39F4BF3B29FD20B3959@VI1PR0402MB3933.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1013;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	4OnRFJLDBNaS3rhCGVtTvnThTkNzBwGS/y8xUZ1o25EsfbSoiM/LMcseZ9xMou/3iW8Nt+aTKLMRbmTkBiVZA7HI0bdITsjXEZx3ODjijlU+PBcCJI+xx3LVa9Xy/w4W04A9FxkujxcLwNE6UeNd2rN2K6RwIty44dGEvDaXAK9kHMIvCOlHNokObR5ONfsaYw70e3hksve63HHPCRSwzySTCW0bNML00i2iWEUKi0Ubzw0D9ebliirkIAxlmkk2R6FRmmt94itWcW+eXsaTHvRomhKjp12ahRpX6ZaIGs2GGzbrnqNDRyvEQq9EuT/7DdNz2Iqk7Bt8vS4A1AOyS7hux4DUoSmsgEa+LmgKDhjABqCNbq58hXqNruancG+pBHIaghSQVictE1hFaVbfzpPUlHkm5Vu0Q1nLwdMzBeND951tBu5mbMIitaczExWKcXA0yjRB277ngAJvPs+A0G83hJVk0r8p/vgbYinxudEoGj9kw0ynGNdntNc4Ll94dRDEwAj9h6k09T4NAZjLOSyH0cFO16uHAPaLAzulXuDwIbHZgPqmflvwS5hwHw5G8wJcgn1baHplDkkyZS2N84XfBqOKWj8JI2G56KHbGrNC6Uy6mypOh1p0gtEpmCS7y45lq7jSpdaGIX0FXTMpbhK5p1A9S6kKzhlWkzdf2gjOpxwI+/AuiisKuhQVyK6nCWBUXa0WFswIJQw0zUg9qzCY3QSUPIswDj1aKrzIaKbyynPXKtM7363FPe740o/Ri3aoEzudD099VhyQzQNAlQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(8676002)(186003)(66476007)(26005)(6486002)(4326008)(83380400001)(8936002)(508600001)(5660300002)(956004)(2616005)(66556008)(66946007)(2906002)(86362001)(6916009)(16576012)(316002)(31696002)(36756003)(54906003)(38100700002)(45980500001)(43740500002)(309714004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q1c5N3FqNksxcHZqaXFnQkVVZGZsWkNIR04zUDFRbUVXUlRSQTdjQWxPUEtN?=
 =?utf-8?B?M3VvaGU3Q0pMYWJZZGlSWk1EMHBsUHB1ZFgrS1BGam9uVndLK0g5T0gwQTEr?=
 =?utf-8?B?TFc5TEJoWm16cmVCUWE3cmtjaDQwSjNzdUE3SFJOSXl0STJWYUVRYWgwa1Bt?=
 =?utf-8?B?bUxCbkthZS9LUjlYTmlueU5BTmYrVlFxMzBVSW0wZHVVNThHcUpqbEh5TzYw?=
 =?utf-8?B?VVVORzc5TnJyWlNVNWtuY001NG0yaktzNks3dEU2Uk1ubERtZ05ZYkZIc2ZS?=
 =?utf-8?B?YUJQbUg1b1BHcWhsUE4xOHg4aFl6dVBlSkN0MHZFVUlGRjI0Nk55cTltcjc2?=
 =?utf-8?B?dWtoYnk2ei9VaEx6c0E0UVR2aG91bVJ2WkVWWnUzRHNVMU13NnRodWpIclpk?=
 =?utf-8?B?amljZzVzT3VIbWlOTVFNN3ptU3o3ODR6dFhGcExjMDlWUVAwcUtyMlZYRVJP?=
 =?utf-8?B?d2hobi94ZWRFQTJjZUt5TW9YdHdFWDJyTGtlaitNOUNReFU3a2E0S05GSS9J?=
 =?utf-8?B?WEJkMGtHVXJCUmR3ZjYzZWxQSEVjTG96ZGxOa2FBc1doTkxLUkI0MnpzUlg0?=
 =?utf-8?B?MlY3Z040WndZY3NsaU13Mk1QdzBzbE8rQWxLZXZrcTRSNW1ERFY5Vi9FUHZI?=
 =?utf-8?B?cytwZEJETzJFSnRqalZub1NKaEtPc09QTmM1UnpiUVEreU5ZUHRmWlYzeU44?=
 =?utf-8?B?Q1pQQlQ4c09tUmtOc3IwcVNPbCtXSjdlMktDRHJnWkk5WkR5SzZpM3JmS0lm?=
 =?utf-8?B?VzJDS2F0bTVHb3hDSlRTR2U4eGpyelRTaDUxWEFoVnAxZnV6UDQwVDlZdGZI?=
 =?utf-8?B?Kzd6SnNEeVVzVGEwUHVqZ3RPNkhldm1hWjl3L05hUXhzL3RSZko3Uzh2cDJp?=
 =?utf-8?B?NG90Y01hdVAzZjNHdDJsb0dvc09IcWd4enViUzBrTUxrWjR0RnJpS0tmZnNR?=
 =?utf-8?B?M0JLdG41VEM3TEFHaXo4eW1VUTdFVlljR3ZHdGFIM0xuRW1xS3JaN00vVmdF?=
 =?utf-8?B?R1ZjZ2FudVVhYytIUkVCL25sVmJCREQ2SlROaHp0azlaU0RYSTA0OHp6S2Rk?=
 =?utf-8?B?bmxrQkY2NkJFdlN0SytqTUtJS05ONG9UZnFJeU1LaGxpNTlsVmZMQ1MvaG1G?=
 =?utf-8?B?MGpZZ2xhWVlBWjFkV0crUUJrK0krVjlQTHZOU1QwUCtBMXdibGF5L1J4cWc5?=
 =?utf-8?B?RTJBOS84Zmtqc3Fic29aZ0ZSYmx2aGlQa0ZYd2xrWkNsN0dLcG1OYlNxUzl5?=
 =?utf-8?B?WkZKMk9Pd0EwV0pNNjRwNTZYbGt4RVB0YW5zd2pRRDJMZlJRMnBxaXQ4ZC9X?=
 =?utf-8?B?VldxdDYvNm13R213aWRqczI1UkluSlloTm5GRGRZRzBuT09ZQ2tNRXNwb2VF?=
 =?utf-8?B?ZXBTeW5OdG1iWHIzOVdqeE9kbXNuOW80VG9Zb013UmJweUZHK3hXUFA3aHBM?=
 =?utf-8?B?NXdUcXRxcENndjN0M2k4eGlZWksyaGZUWlF2S20xNzhjc3gxRitjcUJhZ0VW?=
 =?utf-8?B?cUNJZTZEL21QUUJoNVBxd282TzhxQjNXTTFVMS9yRkIzOS9aWHpucXVaMHRR?=
 =?utf-8?B?ZXVHMXNhZzNzTytoUW9lNmNvN3lSL3Q0ODNIeHVuZXh3WXdyRzNVaVYxU09G?=
 =?utf-8?B?bThKeVZNR0ZCVWF4VTh1SFJFbEEwbUhQbnloL1lGay9UcFZQR1hHc005TFI3?=
 =?utf-8?B?dk16c2RIZ0xWcXp3WnMvdk8xK29EeG0zRlRqazNDSURacUZCYkJvd2Q1Q3lM?=
 =?utf-8?B?cFRYMXdoWDFqcEhuQXk1MkNBb2ZRUVBtR3lUV1RBYTNWa1RxNFRtU2I4Sytl?=
 =?utf-8?B?dXNURGtlZm1raTZpOVdTbkpzeUZFNFFaVi9tUWM1Nmtid0loY2xEdnUreGxL?=
 =?utf-8?B?VmVVWEhHRXpIZnIwNFM1RDNheUR2OE4vYmlJMEtIRS84OTZMaHhjbmxhQjUr?=
 =?utf-8?B?eEhCSHdVcTRPb0VsTkNMRlN1eWtTNGRNWmRodTM2dlAxK3ZXZE9XMFhabEJK?=
 =?utf-8?B?M0xXY1JBU0hSbWx5amRYOFhVeHRJT0x6alpJMUlGV3A5bnFqb3lyMi9pYkZL?=
 =?utf-8?B?bXlZRnJDSWpRKzFwMkxJeXVveW1wOVdOSklFQzRMbEUxcHhYQ2xFbm1JWjFF?=
 =?utf-8?B?WnlDZXc4ZVh6QXFVMll6c054dFRNMXY4a3E4RUJUUDVSenNUM2N4aDZTZ1VS?=
 =?utf-8?Q?m5yaNWzmSL7ryJKJHlFy6z8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eea8e971-4d42-4292-9a67-08d9a5c7bfd4
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 10:32:38.6261
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: m1Lpv2poG0wMxRqc3x8lX7JL+4XN/6GVi9tONirQgEwQDNI395ql6lGFilz8WP8wljAdGr/BAdzR77cLCkKmBQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3933

With no upper bound (anymore) on the number of IOMMUs, a fixed-size
64-bit map may be insufficient (systems with 40 IOMMUs have already been
observed).

Fixes: 27713fa2aa21 ("VT-d: improve save/restore of registers across S3")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -54,7 +54,7 @@ bool __read_mostly iommu_qinval = true;
 bool __read_mostly iommu_snoop = true;
 #endif
 
-static unsigned int __initdata nr_iommus;
+static unsigned int __read_mostly nr_iommus;
 
 static struct iommu_ops vtd_ops;
 static struct tasklet vtd_fault_tasklet;
@@ -645,7 +645,7 @@ static int __must_check iommu_flush_iotl
 
         iommu = drhd->iommu;
 
-        if ( !test_bit(iommu->index, &hd->arch.vtd.iommu_bitmap) )
+        if ( !test_bit(iommu->index, hd->arch.vtd.iommu_bitmap) )
             continue;
 
         flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
@@ -1308,6 +1308,11 @@ static int intel_iommu_domain_init(struc
 {
     struct domain_iommu *hd = dom_iommu(d);
 
+    hd->arch.vtd.iommu_bitmap = xzalloc_array(unsigned long,
+                                              BITS_TO_LONGS(nr_iommus));
+    if ( !hd->arch.vtd.iommu_bitmap )
+        return -ENOMEM;
+
     hd->arch.vtd.agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
 
     return 0;
@@ -1457,7 +1462,7 @@ int domain_context_mapping_one(
     if ( rc > 0 )
         rc = 0;
 
-    set_bit(iommu->index, &hd->arch.vtd.iommu_bitmap);
+    set_bit(iommu->index, hd->arch.vtd.iommu_bitmap);
 
     unmap_vtd_domain_page(context_entries);
 
@@ -1789,7 +1794,7 @@ static int domain_context_unmap(struct d
 
     if ( !found )
     {
-        clear_bit(iommu->index, &dom_iommu(domain)->arch.vtd.iommu_bitmap);
+        clear_bit(iommu->index, dom_iommu(domain)->arch.vtd.iommu_bitmap);
         cleanup_domid_map(domain, iommu);
     }
 
@@ -1819,6 +1824,8 @@ static void iommu_domain_teardown(struct
 
     for_each_drhd_unit ( drhd )
         cleanup_domid_map(d, drhd->iommu);
+
+    XFREE(hd->arch.vtd.iommu_bitmap);
 }
 
 static int __must_check intel_iommu_map_page(struct domain *d, dfn_t dfn,
--- a/xen/include/asm-x86/iommu.h
+++ b/xen/include/asm-x86/iommu.h
@@ -58,7 +58,7 @@ struct arch_iommu
         struct {
             uint64_t pgd_maddr; /* io page directory machine address */
             unsigned int agaw; /* adjusted guest address width, 0 is level 2 30-bit */
-            uint64_t iommu_bitmap; /* bitmap of iommu(s) that the domain uses */
+            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the domain uses */
         } vtd;
         /* AMD IOMMU */
         struct {



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 10:33:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 10:33:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225119.388797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTrm-0008OH-SZ; Fri, 12 Nov 2021 10:33:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225119.388797; Fri, 12 Nov 2021 10:33:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTrm-0008NR-PZ; Fri, 12 Nov 2021 10:33:06 +0000
Received: by outflank-mailman (input) for mailman id 225119;
 Fri, 12 Nov 2021 10:33:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTrl-0008JA-RS
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 10:33:05 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb6e7c94-43a3-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 11:33:05 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2176.outbound.protection.outlook.com [104.47.17.176])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-9-GT19KI7dOUSj_AjC5QacYQ-1; Fri, 12 Nov 2021 11:33:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3933.eurprd04.prod.outlook.com (2603:10a6:803:24::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Fri, 12 Nov
 2021 10:33:03 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 10:33:03 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0098.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Fri, 12 Nov 2021 10:33:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb6e7c94-43a3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636713184;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2mVtm/325NPUuJOVXLoRutJprxAS49bRE2xj1DfbF2s=;
	b=G2fz/tcn1KrqfoHmWZGvpZAfWRsll1/frNWORsbhOwhsfxEu7T0LhO+3gkVUrrDyev/BsL
	DlTuWMMoi8Si9t7whhlAkYUMSvdQ0dO/hZRl1c0vLo6rp9Eax8aU6fz2Jfhpe/RclSXjTh
	6AqsVOHDvs5cC4IONm3OwoOyK4aPG2c=
X-MC-Unique: GT19KI7dOUSj_AjC5QacYQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GXI0I8M7ngmll7AS23W4oITOUUaGeJc7u8KuVJ9ku/7VN6+VrL4zKz+FzOf3UCswmZgyHQQhQKSPzW6zFo3ljFeBv9ttI5NLwgyS3FXAiu4ZNaAS45BGH6Md18mtSB9w4nnYay9ZjmMpsjAnUphtgC07u00Y1MABkhKvLdYDjKarhYvBgcu1myLXrYt7gL1N0VsG809OlY5QRUt/X8QmgyNcB5FFZ4ITB2xz5f3IAhj477H1M1KMS/+UGp+uBHqzrjF68S64fmVsGODG2mMYdo+JPjCGLO4asckbUW+hnKA1fKyJoGo+W5udBVcVvwbx6weGaPC4V4UqANXJ+DhCSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2mVtm/325NPUuJOVXLoRutJprxAS49bRE2xj1DfbF2s=;
 b=hMr8PRMmJQsTpVdSRHW3oft5qexEVAMZ0uAceIYhobFKl4HSLiVg76NyksEgQHaLSLQHp+9Mdb8GLuZNfU4Z/ThPh9wardpT9uiyqS0DWyWBQDE2LsrddOa86BRn8qw8W/n/bxlCsjkl6ji0BbI+VFIqkw/YYy6/C/VHRirXdBJrvU/VN8uRS90Urov4mSSxzF9Y6s/Jriys7wzD33uInyn2vR9WWhDn0sg1ua07RQ5KDyOXmll4lfgdccxOi7Ep28ZYMOlCPacJwDojxKDl09zdtXphkYmWNnfWZGSNOqjSOcZIqAL/R2opfniC0ml0o62TpWvzf298Ai3ns5+GoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c180ff67-f109-fbe9-d34a-b28d8f46bfcd@suse.com>
Date: Fri, 12 Nov 2021 11:33:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH RESEND 2/3][4.16?] VT-d: fix reduced page table levels support
 when sharing tables
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>,
 Ian Jackson <iwj@xenproject.org>
References: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
In-Reply-To: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0098.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:86::39) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 519b8e1b-0e5c-42f1-7bf5-08d9a5c7ce78
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3933:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3933ED87E21C9F987CC7A4B9B3959@VI1PR0402MB3933.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/4VlyheJp0LplfW510x3bb7yjOMXtpvhS4J7zmlry8xCOxMaUHq777STM9y7FoEoQIbnClxojN2mg8nJ6f+/MD9eQoWJulkkR+f7RJJsrTVQVIlUJQvH5wEAhij6XguUWjBRFCJzIsT9Ig9B/nu9TSfpzi5kuC9ZldcWbX1oY4xhBw5v+bhZvdt1j3T5noITGSVkfl2Qt1soONd/UAlAmUIJpSRtJFlyC2jCIC8zu4bcIknFEHS47qSeusZCONaXC7X/BXSoM7SPOAlgTn+bWqUsL/chfkFYyWNcSrU2GvvBbS+EfqR7lVN5aQ8N/1MS9J2YyBdZsR9jWxFYJymECiFs5J6CSIee+EOwNpjUVtChBkfww2lK3Cy/GKlP6Ms74lJSHRkWOODCHxEARdkcMNbG+RjoZY2TKpeOxauUMWU/tXSI3osu/kWaV0swRFKqysmBXy6AkHiLElqgjk3IxX6TuICOxbOGFRUZ6/K+Qz/RlaF7eocOUSFJEkd0W0NZV+1wq3EkFV7x3onWedtPfIvngtymUwFi389XdgI0k/lRhKdBMQ3Wni5yh/L1+FMIIzVWfbTQs6CNw4Q9btCbHHLezLo3CuiYrF0Aik+RC0QCqXas8kEzD6X4ysTGBXZx4Dg7uey6gLKnckS65KyUJeZnMTgHaJNqN8rBMCbKVIRRjCz0XWd+eJT/WIkS0ttHTIMpmYNvCroKih+rCn4d5XaT/UtXS8keXEair3er7/M=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(8676002)(186003)(66476007)(26005)(6486002)(4326008)(8936002)(508600001)(5660300002)(956004)(2616005)(66556008)(66946007)(2906002)(86362001)(6916009)(16576012)(316002)(31696002)(36756003)(54906003)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cit0Q1dSWDFYQmJEL1JGa3VRcGMxclVtZG8vZXBGV0RDU0kvSjdOZG15WEI2?=
 =?utf-8?B?MUhmc2xrcFdiNU5nc2dubWxqNFp2NWozeXJhZGVuZSt0clZZdGZsV3crb2li?=
 =?utf-8?B?emdRRldQemw2dDI0VFR1dDVEZHNUd2p2UHY5enpjQlNsQ0M0T0tlRTVHN1hD?=
 =?utf-8?B?T2REaFM4ZzB4cjlLRDBKWGNyajY1LzJzS01xWStodC9mNk5kZjdlRFUvMUZG?=
 =?utf-8?B?OVRyaCtITDhZdkJHUk9Ua1dXNFNWQ1FoWERiY0xGZElTQlI5NnFMT3ZoSXJS?=
 =?utf-8?B?OFBXNVdoQ3Q0MzNPNWxhOThTUUhjUVVMZzRDVzMwMkplNHB3VG9ZTGdSdk9y?=
 =?utf-8?B?dVh6Mk1JdnBPbzdJMmtqRElaRXF5ekVHOU9vV29VTTAxOFUraXZ3L1Q0bmlG?=
 =?utf-8?B?Y0FTejFYaVd3NXFHSlNhMFp0dWs3clU4MEhzWGRGdHQxcEZBTmQxZzVGVXgr?=
 =?utf-8?B?ZHVnR0svQjl3bG9jMU9aNGtLREFYUTZSRjFvNlNTc0syNjdic3NpOERrcHl2?=
 =?utf-8?B?L2ZtV0Fhb044QU1iaWJ6VWZiT2puODZ0RzVuZGxhZ2IvRU1CdGo3ZGppci9r?=
 =?utf-8?B?NE5ZZjhlWWMxMDFIOEVqWW82VGVFTTUwNVF6NTdXZ2Vlc1F2S2ljVnRCYjlB?=
 =?utf-8?B?R1ExNXBoVmlSTmphTnM2M1N3WEs4S0RtZDd0VkdaUXhZNU1XSWlvd3piN29Q?=
 =?utf-8?B?alVYRm9DaVAyNHd4S3YyaERFZ1QyN3BhcTVVR2RUbVpOdTVINDZxVTE4eTk3?=
 =?utf-8?B?YjlQUVlpSXkzVmxDdkVTajk5S20weWRqRTBrdWJwT3JBT0tDVk43czN0R1ZZ?=
 =?utf-8?B?ZnRPQUNyY0R3dnpFZURZT0Evem1OZmtvTWtEcjBwUHFUWTdGSmFxNDQyb3hI?=
 =?utf-8?B?d1ZWejlUbkhUZldlajVUcldsMFZWUE5ESDFWbUNrT1g5eFBlZUNva2VhdjUw?=
 =?utf-8?B?ZnIyOHFLdFhJZlV3L3FxSmIzYjBtNnlmaXRWa1grd3I4VUZBME5yN1dmK0hp?=
 =?utf-8?B?S3I3a3FZeERHWXMzVjIvOWRmdjRzeDh5WGIxLzYycGVFWmJjODEzS29LREFU?=
 =?utf-8?B?ZGNlanRpcHdMdjVVckxFZlRtZmxERzhYeElOQkFUV3FHcE5JYTV5SEVJSlFV?=
 =?utf-8?B?dytETEJhR2JNZWFoYWlib0p3Ri9wU2ROcUx2U2hWWWNxZG9yT1VKVGhjb1ND?=
 =?utf-8?B?VElwQXhLbk4xMUhFcWh3VzJwU0FUaHZ1SERRZTBKZU8raDhBQ0s1MkF5N3gw?=
 =?utf-8?B?Q1RwQzlDeis5QjBSUm1QTHBaTVh0bG4yNkNTMTE5VzhESU9BUnQ2alRQRlNs?=
 =?utf-8?B?SXRUK3B4Wml0RFJwWFlSYzFwMmVvY01CMVk4cEliMXhnN2xmdkxobVpHa1Zt?=
 =?utf-8?B?VjFKeGdySlpxWDFtMGhWWXFMMExhNm9MNXhzWXp2ajc4a1VpenZyeE5uTmkr?=
 =?utf-8?B?Qktaa0FDb0l2NUlDS05iRFQzblRUd1czYUo2Zk5EblR3ZjNRU1lyc0pGK0gr?=
 =?utf-8?B?anJrN1Zab2ZycS9JTXR6Slg2R0tvYk5XazQ3Q3Bwa0plaFFGZkcyQnV2cUkx?=
 =?utf-8?B?V2V3NGlGdDd3RDkrTk5HSkVjelBqVEthSXNEQ24za2xoSW84alVvN2Ixc2FJ?=
 =?utf-8?B?dGliQ05QL2wzQXBXS1JZbWlVNEtVUW9waVZaMXpnMXZKV3R1eTdTbXBCblVx?=
 =?utf-8?B?ck0vTEdrTGFneFd0bEZCalRZNVh0Mjh2TGY3Q3NickgyM1dYL2wxM3B2NDlF?=
 =?utf-8?B?eXFhY01rSU5mbDFzeVF5Tmk4VHNIRlJRNlIyQktaem4zcnVqTzVmMDBTNUxv?=
 =?utf-8?B?NkNvS1RlZFdTNmlnSXV1ZkNhLzB4b0YyMUJJcTJQRXNhVG9HZ0JMN2ZlTElk?=
 =?utf-8?B?VGt6MGh5V3haQlFtRzJudEVZL1pOTWc4NXBMZXg3REpxUnJDU0JCMW4xcE1C?=
 =?utf-8?B?dk9JU3FyVUdSQUkzRnFhelNDUVN1WmlHZmJHTGRLT1VHeHoyQ2laeDBNS0hR?=
 =?utf-8?B?S2Z4Uk40MW5iTHFxZ3lzcDNBbU1QQk1jaDBNZ2tRcVpVYmNRdGY0RE1oMGpK?=
 =?utf-8?B?SGdYQmdLOHZqek9nR003WFpINnlnMHBFVEgvUTMzb2pFMVR1bDBTeUY3MjZL?=
 =?utf-8?B?Qjk1SThRWFpVb01MWlQxUk54ZTlpblkxRWlrOWhxajZVWG5Za0dwbC9TeHMz?=
 =?utf-8?Q?wecSBUn+OmwW2XxcFXJyzlg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 519b8e1b-0e5c-42f1-7bf5-08d9a5c7ce78
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 10:33:03.1972
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: z0dXzZO3bDMqbsBI5qSfj54623YBmOzvA3t4U30eK/rYmVwUcUr6I2e0zhA/25yDfdb9RXRthmXREQc5e0Jk2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3933

domain_pgd_maddr() contains logic to adjust the root address to be put
in the context entry in case 4-level page tables aren't supported by an
IOMMU. This logic may not be bypassed when sharing page tables.

Fixes: 25ccd093425c ("iommu: remove the share_p2m operation")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -340,19 +340,21 @@ static uint64_t domain_pgd_maddr(struct
     {
         pagetable_t pgt = p2m_get_pagetable(p2m_get_hostp2m(d));
 
-        return pagetable_get_paddr(pgt);
+        pgd_maddr = pagetable_get_paddr(pgt);
     }
-
-    if ( !hd->arch.vtd.pgd_maddr )
+    else
     {
-        /* Ensure we have pagetables allocated down to leaf PTE. */
-        addr_to_dma_page_maddr(d, 0, 1);
-
         if ( !hd->arch.vtd.pgd_maddr )
-            return 0;
-    }
+        {
+            /* Ensure we have pagetables allocated down to leaf PTE. */
+            addr_to_dma_page_maddr(d, 0, 1);
 
-    pgd_maddr = hd->arch.vtd.pgd_maddr;
+            if ( !hd->arch.vtd.pgd_maddr )
+                return 0;
+        }
+
+        pgd_maddr = hd->arch.vtd.pgd_maddr;
+    }
 
     /* Skip top levels of page tables for 2- and 3-level DRHDs. */
     for ( agaw = level_to_agaw(4);



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 10:33:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 10:33:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225126.388808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTsL-0000aG-5b; Fri, 12 Nov 2021 10:33:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225126.388808; Fri, 12 Nov 2021 10:33:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTsL-0000a9-2M; Fri, 12 Nov 2021 10:33:41 +0000
Received: by outflank-mailman (input) for mailman id 225126;
 Fri, 12 Nov 2021 10:33:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTsJ-0008JA-Hm
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 10:33:39 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff80c83e-43a3-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 11:33:38 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2106.outbound.protection.outlook.com [104.47.17.106])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-8-bGtHyApfNnCUAUPxQcNC3w-1; Fri, 12 Nov 2021 11:33:37 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7040.eurprd04.prod.outlook.com (2603:10a6:800:121::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Fri, 12 Nov
 2021 10:33:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 10:33:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0053.eurprd04.prod.outlook.com (2603:10a6:20b:312::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Fri, 12 Nov 2021 10:33:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff80c83e-43a3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636713218;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=119T01OvQDSJZiVFnQp9OnVNrOzjtoeevn1TMHaqy9Y=;
	b=eOk4AzELouEem5LATIxWOz5mbYuymMpH6vS8hwWTSYBd61zUH+9ej6yZhCHX3CiNeQwcPt
	HYA46ZWdmJxD0bpd1kQjcSI6cdB64mPD0VVrAoDsc6ThETbWaJILrfSxaj8xdzdUP/Nd5W
	mQFTo7WH7il60cAhLWUZkgarLxb7fy8=
X-MC-Unique: bGtHyApfNnCUAUPxQcNC3w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Ly3uqgL6f7AnYvGAH15dThTyrQYDEDkXBDla1UaFKVOfflL3bwxYS+TB5POiBI3a5iTac9NX/ZYKSQG2KIjLESYZ92/BwD5+zPfEtq6/1h/o5hrF8AM5uh5bncWsoEeHwPVJeo6OsxoUYD0T91zLGrxsWB+89Q4yP7jNrs2hpSYsalX5iTvpApjOEdHq9EYLNUeG7BsC9IUwEfk0ZnQq7jWL+5zlG7bnn/APQv1JEP8azP4wKXng8xuZmmuVjDYDTMGMfVncNXrzqRPFJlqzvDS+LG5LJCj1CAaphIl0kC7k23RbUV+uJqCgvJk1dIJnW5V1xHd5PGrHqRmYLMC+KQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=119T01OvQDSJZiVFnQp9OnVNrOzjtoeevn1TMHaqy9Y=;
 b=IoyvklUvwEy992ZW+C7heIWUZS2+r1rVdgWPHBuVOrNfopThmpHKt10m8e4z1wAV7cDkjsee2xyihqb+DzEh/aSFpKg8zwsdggqN/fwaz+IuzfrJIshTaiOpH/BUSRB/f0ZkFRUe3OuexqP05bGVo4fky+zuw/YHxWDUj9oRHHHxS4AtRvHd84pLg0jzlk0LXGsqpp6rDvIg+CAK98jFm7vCYBWONBMznDet4hcQwZdXIt8ukOGXT8sstwG1ZXJo6Ip8bTheIGMMM/J/LlhHkINdHmp5WOyhLFRFbX7TI7gwjdnrvIE5WcXoEGgFLf6V8fYO5JEIdvLuXHrtTr9Wew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0ca809cb-1768-639c-3f58-c5e2c343b1e8@suse.com>
Date: Fri, 12 Nov 2021 11:33:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH RESEND 3/3][4.16?] VT-d: don't needlessly engage the
 untrusted-MSI workaround
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>,
 Ian Jackson <iwj@xenproject.org>
References: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
In-Reply-To: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0053.eurprd04.prod.outlook.com
 (2603:10a6:20b:312::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d50a6da9-2423-4f78-037e-08d9a5c7e201
X-MS-TrafficTypeDiagnostic: VI1PR04MB7040:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB704079AB7EE0F8F8BBFA61A8B3959@VI1PR04MB7040.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4303;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	bviTnOqdo1JJcgaTGzR2N1aK9CglvjQzvBuhWste4cmLtBlyQOpLbx3L76siChQBnm0ySS9+YA9OJ1MZZAbV94xc75VCZeSBD00UxAmuq6xhnRXk6GJ6e00pXJWhPoZ9a7puu9Us0lEIehcrtSuMpre6DIecAiEPOfsZtXXTXhgWgckXF/8DQ4+WPjLWkct8n8DuabOBnSbH57hPwRWr3KRVcVVPO07sa7ySSck5n3FiILVieyGUmmM/lrY3j0PKfJ5+b1FalQCuNwRpcuan7LukjBdBKnJxPS9QwjFVHQHU/IBA7F/6kOxahcdt2sMO/r9YxW2SO8SQZE86mSspSllysOOOTapMADZ9leH//VTVlKp8zBohPF3ndoehBSlpWkVPFunq/kf5UKrWdPmTuyhldOP/4NL/ktbPsA1HtOL27iLRU3p2Q8n1KPShAl/1LSOmXdM/hoQD3V61rdui4ok0djXAZ6P4LWyY2NYCV1AeszzNltBG2446W4fpkAKkzdk2BUsE3xBoGhrw4aGdIq26fqcEXZwh4Q65z3wwGVOSXUW/Ihv4/e+Iw/hCzQ2iIfvzzL+AzEWsW2SagdoN0MZJY/hYrtRrct7oxKuUrI3EcjX07xfKyU41bFElS6z2nno+NbRENbYhZUAZYH893uu+xrntxKiOEkdzmqrg8CPb2b0O7cR32715aeTcjjck8sIyOKsXjEKl42eGs5r3QGkQTya8p1vJsL1b6FKfFsY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(186003)(2616005)(26005)(508600001)(38100700002)(36756003)(66476007)(66946007)(6486002)(8936002)(86362001)(4326008)(2906002)(66556008)(6916009)(83380400001)(316002)(5660300002)(54906003)(16576012)(8676002)(31696002)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eHZVLzJjN3BWWHJDdjhFbDlsUkJXRHNDWlNoYTg0dzd4WU85bGpGdEVvb053?=
 =?utf-8?B?RWxtVFk3L3A5NGdPRGs3N1RFQWFoTmNhK3pwRGkyY1VqMHhLbVhGcG90UFJF?=
 =?utf-8?B?Skx6UHNsb0FHeXVvSUJLMVhtNEJwTXNVUE54SmVPOXY4ays0eUQ3eWtVZ2ty?=
 =?utf-8?B?SE5DL2V3ck4vWFNNbnNDYWVRc2RLTEIrL3Jjakt2VzRQbDhxZG05NW1YdG1v?=
 =?utf-8?B?WVlKb1grUmxyNk02RXlrQWd4akZjNVB3QkoyOTJuS0ZlZ1JIcDdCdkpSR3p0?=
 =?utf-8?B?WXRqUVV2bUNpYTlQRURxUkJUeVBzRE45Vlp4TC9NTVM0ZURQT1huYUdrb1Y5?=
 =?utf-8?B?R0Z0UkRvdEZpOGlsV1l6TTZkSFg1RFBrNWdlTUs3aitYQ091S3RkOE1PV1ky?=
 =?utf-8?B?WHBGYzd2cURoZjBPdm51d0FWMmxGVHREeEVkUUdFOHVqVzZnc3daNkNjTm1X?=
 =?utf-8?B?alJFNEFZQ28vNUpzNDRyVFh0WnR2M2NOQ2ZzWkVJU0FPblVwYmtVUzFBTU82?=
 =?utf-8?B?REVycGFyeUZGbURIM0paVS8rK0s5UHdqMllja3VIbVhwYzVXMFZXTktZeXhE?=
 =?utf-8?B?TGhBdnJ0WkdBc2Y2SGJvUEdBS1FkRzl6UUR4emJHaGdQbUFVNzlzTVZoV0Fj?=
 =?utf-8?B?NUh1ZWdjbHdzaDNmMXdvc3FybCt4TjcwYVdMa3h6TWprdmM0azQyQWV1aVRw?=
 =?utf-8?B?MXZ4dkFjdlJORyt4bkY4TGtKa2QxL3dRZjhBdUJLa2piVTFuWWpZeWFnbCs2?=
 =?utf-8?B?eUxzcGE0SjdKb1llNTN0RlZ2OGVvMUlFRzU1WGRRY2I2ZTBtRHV0OWxUSGpF?=
 =?utf-8?B?WDhBd1p0V2ZVdEdEa1o2elpFUkVpMEJ0OXBvM2lmdlFhbjJXU1N0akFndW5Z?=
 =?utf-8?B?dEJNYStzQk5Dc0RXL1JRaEhwSFdyamhYd1lCcVJwKzNPbTh5K2hnSXA4WTJH?=
 =?utf-8?B?ajRLN0s4RTZub0llVFFHdWZaZGZXdzVzQzYrRnRLK0lUTUV1aEJqblhjRTdG?=
 =?utf-8?B?RU0ybVdOOHNJd1hSS0ZHSHlTSGk2OStDZFg5c3N1QXkrV1ozOUlkVEVxZS83?=
 =?utf-8?B?aDhURFpiRTd6R0EzeTRKb0s1MUFVUmlvQmh2MUM0UFR4ejlQWitIQVdieVBD?=
 =?utf-8?B?LzljcmtuN2NSZk1ZcVB6RVZ2VkJwL25wZ1pCYlp2NTQxM0lUZitra215MU8y?=
 =?utf-8?B?NkFFMUQ2RWh6d3UvdHpjVjd0TzhBYjV1NFE3MDFidnlDQUt3aWtMZ0V1dHJw?=
 =?utf-8?B?bVNVTU5GalZjSlNqMUx0cldMWXRtMnI4K1k0ajhMZVgxUGppaUZxenNUdDJj?=
 =?utf-8?B?ZXltRmFGSldpM0k1ZzIvdHErclFaRDRsR0VKZkVRTkNMNHR3emw4NEE2S2lB?=
 =?utf-8?B?a1ZOTG5XWDZoc1BjdUVTa3RoeTNZM3I5M1hQVGVGZ0d2d3B2NnVjTmxORmNG?=
 =?utf-8?B?dmU1S3RZMXJTTlQzMTB1UXpwTEVaMHN5MDR5c2dvOEFoYUR1RG01enJSR0Ix?=
 =?utf-8?B?ZVJ1L2hDaWkyd2tSYTdIaTNuYnNhcHVMRmIxUDFRQjhyM3V3RGdQNDBQQjFy?=
 =?utf-8?B?YXBHaytmYnVWZFBndUFCQzIxTlRuSFFSVXRGdHl4cWVqRXlIb1NCVWpBSDR2?=
 =?utf-8?B?SG13QVJQVzk3YzBuUFZxUUN2bnlnTllRRGxnNEphODRrVkg3YUtPQW1lc242?=
 =?utf-8?B?NkdHYk5jbjMrMUVoTE5QNStyclk2SDhXUU5yRWtoWlRtc3NEaVRKWEhSWXNt?=
 =?utf-8?B?cjQ0TkJJUGtMZWhTUldYTDlLZkRwZ08wZjhvWllDTUk3a3dsWmszM1pnM2xQ?=
 =?utf-8?B?S1g3MmZubStvQXA3cmVDOHFRaVZEY2V3V3dlSlJBTm9RcXVGbDZRRUh6bVlK?=
 =?utf-8?B?cFM0NlpZK2lITDVOV2E3c3VIaVVDV2c2RitOZitzTytjdUpTQlZUZ1NydXI4?=
 =?utf-8?B?SW9RblB2eDBnT3U0ZGNxVDZlZnhDeUk2cDZubFFrMUI3c3ZORDlSR0xBUkwx?=
 =?utf-8?B?VlF2TXl6aWNoMW5od0xqOWVlWVN5MHRPeU5xaGw3N1FjWFd2VS9QU0dFYWdH?=
 =?utf-8?B?K0svRFN0SzVXd054R0FTMDBkb012MFBhZlo4SkNXdG1IZEw3ZU54NngzeTFR?=
 =?utf-8?B?WCtOaWFCajNyeld1YURrWVJnN0p0WmJxUUZLSDZoT1U1Rjd1V1krZWRVeFNj?=
 =?utf-8?Q?9mwhdWtAYbM4gQeAfxXNlE4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d50a6da9-2423-4f78-037e-08d9a5c7e201
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 10:33:35.9407
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: evCFJ3aiugjiXJCOHxEkG/AovUHD+laq15dXzKi+Zv6fwHNKWbB/YgU/0Q33cCFPty+8laLMNzRfRdvcZa0sVA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7040

The quarantine domain doesn't count as a DomU, as it won't itself
trigger any bad behavior. The workaround only needs enabling when an
actual DomU is about to gain control of a device. This then also means
enabling of the workaround can be deferred until immediately ahead of
the call to domain_context_mapping(). While there also stop open-coding
is_hardware_domain().

Fixes: 319f9a0ba94c ("passthrough: quarantine PCI devices")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2404,14 +2404,6 @@ static int reassign_device_ownership(
     int ret;
 
     /*
-     * Devices assigned to untrusted domains (here assumed to be any domU)
-     * can attempt to send arbitrary LAPIC/MSI messages. We are unprotected
-     * by the root complex unless interrupt remapping is enabled.
-     */
-    if ( (target != hardware_domain) && !iommu_intremap )
-        untrusted_msi = true;
-
-    /*
      * If the device belongs to the hardware domain, and it has RMRR, don't
      * remove it from the hardware domain, because BIOS may use RMRR at
      * booting time.
@@ -2455,6 +2447,15 @@ static int reassign_device_ownership(
     if ( !has_arch_pdevs(target) )
         vmx_pi_hooks_assign(target);
 
+    /*
+     * Devices assigned to untrusted domains (here assumed to be any domU)
+     * can attempt to send arbitrary LAPIC/MSI messages. We are unprotected
+     * by the root complex unless interrupt remapping is enabled.
+     */
+    if ( !iommu_intremap && !is_hardware_domain(target) &&
+         !is_system_domain(target) )
+        untrusted_msi = true;
+
     ret = domain_context_mapping(target, devfn, pdev);
     if ( ret )
     {



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 10:35:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 10:35:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225134.388818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTuI-0001Gs-Hv; Fri, 12 Nov 2021 10:35:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225134.388818; Fri, 12 Nov 2021 10:35:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlTuI-0001Gl-Ez; Fri, 12 Nov 2021 10:35:42 +0000
Received: by outflank-mailman (input) for mailman id 225134;
 Fri, 12 Nov 2021 10:35:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlTuH-0001Gf-5S
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 10:35:41 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47b97679-43a4-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 11:35:40 +0100 (CET)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2051.outbound.protection.outlook.com [104.47.5.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-7-9Z2bPb42MLK0ePcbrXD0fg-1;
 Fri, 12 Nov 2021 11:35:38 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7040.eurprd04.prod.outlook.com (2603:10a6:800:121::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Fri, 12 Nov
 2021 10:35:37 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 10:35:37 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0383.eurprd06.prod.outlook.com (2603:10a6:20b:460::30) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend
 Transport; Fri, 12 Nov 2021 10:35:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47b97679-43a4-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636713339;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=XG3qY1iaoPl8VMHGNUgx/ML8ri1nTSSSlBsBMk+pyr0=;
	b=WCCYaoHyswdWM26g0hwHt73ZvUvidcJiOfmmjLhg2tdy5cHiMk32JvqrdyD+zqqelyMpFC
	98TNAEvli23aVKPiPHF6wQY6CBnbuYDSguW+6tWKMDv7A+fHOjIKmKPiOAwmwoTqYXwe7V
	CBQv2ctuKqigHYn5g06eIY2Bob7eg1M=
X-MC-Unique: 9Z2bPb42MLK0ePcbrXD0fg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MA9TqMN0soGT7hxPOgssPi0u9NNIR5aAFSSND8axZjGteBTINp2/Dm9qiAUWfpFpZgFGmnp9jTHPVgmAXNvmXMMG9wnzZvn7zXM63j+ZjaMjUl3uaNGIZxBaE2iFkhsoRffplKX0DoGQXSe1gfoDewNBJN7/EUYPlMuHzYqQ4HT4DiEkvG0BAC56NC6ppGZvSEk5P/9GPEmMB3XhqK+r7ZxDdJcpbtHumypQDgJed3DQ4bsWHqoBEQXB+82FbtMRWB/dgzd7Ci/tRUsBIO2ILnRegBuJezLx2pumOCtlMAQhHNUFQZu8dQv5/cB4uONb8tkegQdDspTZ0XX3LQukUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XG3qY1iaoPl8VMHGNUgx/ML8ri1nTSSSlBsBMk+pyr0=;
 b=Tm45uUiUUWFTi9ArowLmBSbNeJ2I9/qhLMJ1on03V6SwtDelYAjjQu/mMyIEZamfEqHym2KKY3ri7wStPNxIdddyN9Y3HGnO02LlBj68tgyLfwo8FMXsPfRwSB/JdTYIv8BZW+8izkVB3f1BHxZ01e9/z0KgnTytR+mbs7sn1P2y/cGm0EBVFJwoOR54osRT+SDnFVLnufHWB6NQ/TN+fzOyW5EIGMzKCU6LoZAtcjZMwT0K5xV4uDhoL6g1e8/L2gUNAwgXV6W+FfNr3It/++SGfat8jUMxRhbxKdMQOo8f4UHMSF7fEj30PeqxlFenPs4NFZieW0CqEg946tKXZw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ff41dec2-80a7-f1b1-8913-ee23e88174bb@suse.com>
Date: Fri, 12 Nov 2021 11:35:35 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 4/5] xen/wait: Remove indirect jump
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-5-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211111175740.23480-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0383.eurprd06.prod.outlook.com
 (2603:10a6:20b:460::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9d57f1f4-8b77-4199-eee1-08d9a5c82a77
X-MS-TrafficTypeDiagnostic: VI1PR04MB7040:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB704055993E3C05826AEBC67CB3959@VI1PR04MB7040.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	TBhx3X8NBdbhR5yUEjh+5uUZ3SQ50cfufrqIbD+okS4MmnOLiPNsLuX16zvCyO79m6zq3YEjXvAgyX/TSYvmUlBQNYtiiBXI+y12enn8sVZpIN6oxbhCKa2I9mESIK96A2YQN0a7zzA51k8tzUC5MYlSgB0jqfOAGEllukIE27JTdsYxJ2LNsDteVOurLFdBxS6F2F6KNbfnRbBB4PYuSE4sp+mtDKh3wOP8YcV70YwCU3ZMUBBnJ0TQgXUwQVB0BS2+wPggPOTFz6g3ivHUfvDvrtdYc6P+kfLXV+9TzjtiQbB0Za2eAOmVMWl+XU6Eq/wIRcRs8JN10p8ACAF9JFpJEii+zk+PGpY9uFoN1nprF9fo7JIZfkuEFk5BWKFTQvbr8c8MjILAFWF/Hkk/FVgYWrs8Lx6sYDeh9UKdA7wikfHkOTS6InWO2pUjNz2juoRTs2b+40I5ZYzxLc349f8JVGkxwciovD9nwQk4Amn1aC+RelfZ8mrWIeYJf7TFKZVeA/K7oiZPA+qy7SpbSz4emBp7eQgKnSMJ1wg45YVlV39jPRSF6E6Smjwm130slBkkp1cGaxB4s5ms3CWFJG5cJVIGvQXZhDRRS/ulmbTg5ocBvlYZb5ZFer30oc1Qb+HnixVkepH+2owu9wO4HmKbZjuLTXZ1uhrwRdEssLcRy7oDtD7uQyfNTOXyQRP93DQ6g2H7pxDlJWJ64bg8MFUGw97MaKgjDZ14Yfs18Mc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(186003)(2616005)(26005)(508600001)(38100700002)(36756003)(66476007)(66946007)(6486002)(4744005)(8936002)(86362001)(4326008)(2906002)(66556008)(6916009)(53546011)(316002)(5660300002)(54906003)(16576012)(8676002)(31696002)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QnNhczNwNlNUMEhhZ1hGaU9vZ2tMQVZrVWtoWkpsZWdwQ2JieURsTUJXTXRK?=
 =?utf-8?B?SzJpT0xsZDhBYVkyZEhlb3piWG8wYmhaUS85bm0yNVllTGJ6dE9DbjNWV3R5?=
 =?utf-8?B?cW9HSk41ZjZ2VXRvT0Eza0F5VE9TR1ZSbGFPT2p4WE5wVkVvMWxyd3pOcnQ5?=
 =?utf-8?B?VUlLMmxXTFB4UDg1cHM5cm1WV3FZWURXQWlIUmRjSGZ0TlY2eVFibGtNaklB?=
 =?utf-8?B?Q3doNzFCKzYvUFB0QVRoby9iSnc1Yk1lUW4yRG5nSlE0YTZ0bXBTVHJsNWdG?=
 =?utf-8?B?QXFQdERBSFludHRqQ3d4TXg1TENyMjBnd1RlMWlJQ2hPaGlKb3p5TC9ob0Jv?=
 =?utf-8?B?M2M2UWNacXhzQkVQZTN1QnpxMWZkSFRzQ2F1UTlvSmdEVHhZWTNDcXdraVBq?=
 =?utf-8?B?QWVjTE1ZNGFpSlhPb0Y3VXZqTWl1MkRNZ2I5UXp5V25TTnNBUGhzSkV0UGQ5?=
 =?utf-8?B?cWYrTjl1ZEd1d2t1VXIvT2ZZRlJId2EvWndXN3Z2dE5YNU1mUTdpQVZ3YXdy?=
 =?utf-8?B?bXBqWXhFYzRkU0ZsZ2F5UkxRa0QyYUsyazVKcDRiQ0Z2SzNudmErdFkyd0tP?=
 =?utf-8?B?MU0zWk9VanNkRzlNSEJBZlVSVUdnbUdjaFFPVXUwV1VucDgvekZzTWgxd2Zy?=
 =?utf-8?B?bS9HcGNONS9CQjlNZDhNM2k2RkFmRWd1U2l1ZDVPZ2FDSnNtV0ZmcTZRVWQ5?=
 =?utf-8?B?OU9NZmd1STdIdExnUElka3JwWmdwVDBRRm5JTXdLMzZsK0Vrc2kvVGNYUzVW?=
 =?utf-8?B?WWJXY3pSZGlhbkFpN3BqaHpmZkM3N25lNEhmbGlsQldCZm0rTGYxNWN1SEVj?=
 =?utf-8?B?cDNsNE1nSEwrd3NrQWdDdVdGaThjSHMxVGs3MWg1a0Z4VStybVpBQ3JSRnBz?=
 =?utf-8?B?ZVVNcE84ODRjUnc5QlR2SElzWHJubDZQOGFWWGxzYlcyVTcrQkFUZ2ZObkJJ?=
 =?utf-8?B?bVdwNUNaVjZhQkdxdWU1Sy96NnI4WFNhTVVONXVkNTArY05KMjhVQTdsLzAr?=
 =?utf-8?B?STFGaldqSFZhNkFhbXNJYWhhZjRuMVZLNnB3SzlFQkt5dXZZZit6VTZlTDJv?=
 =?utf-8?B?eFFZUVpueGxBTkhKNHFjdmQ2Tk42L09VVGpaWFQrdXlHcmN2ZUYwak9mb284?=
 =?utf-8?B?SFBhVFpiWGlVZGVDbHZVQ0Q2V1pqbGlyUDRsdENsVEhUNldaU3hqenVISkZn?=
 =?utf-8?B?bE02UGVRVWw0L0xHU0pMeWxNejUwSXZMT0xTWGdjZERXZDNVZVhVT1A3bmRx?=
 =?utf-8?B?TkRiUXB6NnhkcmlQRHp0UTF5NzA0VFY3RGFWWTBmZURzbWk1VTdHVjBIMHFG?=
 =?utf-8?B?M29uNjB6a1FYMnVLUTV3d2lkNklYdERYWkFiSm9iaW41LzAvSUswbjZDaW0w?=
 =?utf-8?B?NGRXWFdmcEg1ZFdkZHN5VUg4TWVWRW5acTRuVUcyNTE0ZUpidDFGWEZUS08v?=
 =?utf-8?B?blZ0SVlQS25ETk14R3pGckZPTVVrUUM3OVhvaU1RL2I1ZDkxK05xRUZOL2Ev?=
 =?utf-8?B?dFdkeUc3OHFMM2oxWkxwbmdhUWtMWUk3eWxhR3ZtRXA0ZVpMTjBlZmlCOVhu?=
 =?utf-8?B?a1pxRnh3SGpVdVE2b1lBK25xbnkzMHBwU0IvNlBLV2cxRWpnckNNb1NpeVA3?=
 =?utf-8?B?V0JDdmtsZFYreU0vMTQxUCs4c3ZNN09ZdEJxdmwzTkJDS2Z1K05wUUdTZWRo?=
 =?utf-8?B?WHQ4dkkxczZ3TEhRVDIwZnBVS0JvMzRORWZqUUxUYTRheWR4bHYyNVVKL2Zv?=
 =?utf-8?B?K0djUDhlRHlob09xalJXTHBORHJzekhKbVc4aTRpY0MwQ2NDSE40Vzlsc0h2?=
 =?utf-8?B?dmF3Ymk1RWhqcVlvN3MwT1BMbE5kdXRjMWFzMnl2RVhSS2VmU0o5YW5EYThX?=
 =?utf-8?B?aW00eFBCK0pvYVNtTFNaWjRKak00dEJ5RCtIdlRqTGU0MzBwR1l6czQzZSt5?=
 =?utf-8?B?MTYwdTJyZnpNQXpBMWVCeFlPODBJNnZydlpPMkt4T1JNUldZdFNrN01uRmJP?=
 =?utf-8?B?MDNmUHdhL0h2NE1DSHpRYk9SSjZCc0MzTGVwYm8xRlVoVE5HOStYejNFdFZR?=
 =?utf-8?B?ajZJVTk5ZVlsdGZOZFprSzR4ZDN5WkEwdHpXTHl2ckdqK3M2TmpXcjhMbVdK?=
 =?utf-8?B?ekJYV215Zm9sN2d4ZlJTVVVBL2duK2V5VmVNL2xCdU00TU12ZFE1aEdLam5S?=
 =?utf-8?Q?4m+2xp1Z4RE2C5eSjgOa8/A=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d57f1f4-8b77-4199-eee1-08d9a5c82a77
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 10:35:37.5760
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: k8ixqONDHS1WQ0JOYzkYE2/M1nGH8L7TGR2bW1WOjHQxwGPxPWDet8nh+MtJXgfZfALYisNlZ5ehDs7judCK0A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7040

On 11.11.2021 18:57, Andrew Cooper wrote:
> There is no need for this to be an indirect jump at all.  Execution always
> returns to a specific location, so use a direct jump instead.
> 
> Use a named label for the jump.  As both 1 and 2 have disappeared as labels,
> rename 3 to skip to better describe its purpose.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 10:44:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 10:44:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225142.388830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlU2L-0002lZ-Jy; Fri, 12 Nov 2021 10:44:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225142.388830; Fri, 12 Nov 2021 10:44:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlU2L-0002lS-FE; Fri, 12 Nov 2021 10:44:01 +0000
Received: by outflank-mailman (input) for mailman id 225142;
 Fri, 12 Nov 2021 10:44:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlU2K-0002lM-45
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 10:44:00 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70dddf0f-43a5-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 11:43:58 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-34-jXw2aC3FNa2lqRsdmafHcA-1; Fri, 12 Nov 2021 11:43:57 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6480.eurprd04.prod.outlook.com (2603:10a6:803:11d::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Fri, 12 Nov
 2021 10:43:55 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 10:43:55 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR0P281CA0089.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1e::11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.5 via Frontend Transport; Fri, 12 Nov 2021 10:43:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70dddf0f-43a5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636713838;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=HthP/7rVFzNQgj/LdVk2wKfFGuSHorRH6kGJH7gWhQ8=;
	b=ku6SeKZ9FGcipsseqdK/LrQXpjaFiDxw3GZhy82sYcEEsSfB6mQDwEoRBKufkG4wzs57St
	EkZm3dB4GqT8HuFzlOafCQ34VRhdBJsjYDMYFCmGTG8/7lXGaEX+iBKL0SwQ9ny4poazl/
	nSoQAIBdypZZTr0oeqTA/QZ0hJ/7WjQ=
X-MC-Unique: jXw2aC3FNa2lqRsdmafHcA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AkNc1DsB3tOLKRF3gxpUrIsNorWn/+Ov//H7YLQiq9eSn355AeUoHQHjK23cZJJ2l9CM/KFQARHJcbFLplhxxN1UHZ+dV4MoEZ4i1OY0b/cnz49jYaEmNNBL+ToESQbusBfWUibYrKCDleB7D5l0xEPYehT+caD4nJ29oNMHK0fEVGPKCPpuw784az/mUyEn+KzlSd9C4K1H0GO6tV/K19s5I1r6eqPrKl0cYR64kgGx3yMhgq8GqTI94tSPKSplGLHBvVKoD7PsdscyZlk5w8TYjshM58Gc18fXor1HRWcBLwIc9c/H1YyZ07Mksc3QpyeNE2UCDhR2h3A/o6DoCQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HthP/7rVFzNQgj/LdVk2wKfFGuSHorRH6kGJH7gWhQ8=;
 b=O7uVy8744j3axVkO1RN4QdpJWEJg5MjQzIhggQ0OaiWahon2HkYBLpX6atU7w7gIDKp5cj6TH29YzjUFgww/xC2/2aG523fzDipf7ZTk4XGXHgqccnXHNSp7bLTWS277YiwEk2tomtFPeGWxDjFBb5tKAJY7y24jl9Flw1fLUFjIbAgNxFgw33BfQktyMP2oxbxiNavCykArarHAM9LBa+0yo/98QbUISie1EiK4CaWaZ0BHgEeEJ2hUgUSpoKxXn4dWODgVnGzZF6F1s93jVZqgDApQRRk4LUoX3vyzvh/NFHf9zyEnjP5oDn0G2AcvzEJRJiSGXEGfJ99pYC48qg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e220b6f2-3cb9-e7b0-6b74-4b266e4e7fb6@suse.com>
Date: Fri, 12 Nov 2021 11:43:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 5/5] x86/ioapic: Drop function pointers from
 __ioapic_{read,write}_entry()
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-6-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211111175740.23480-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0089.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:1e::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 54d4a043-592f-4ff2-423e-08d9a5c95356
X-MS-TrafficTypeDiagnostic: VE1PR04MB6480:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6480004E8DCCEDCDD5C9CDD8B3959@VE1PR04MB6480.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	2K2klcbSefCoTsc5qRKcCZCywj6hTletrwwQyWRMqMijimO3EBod6IDMpRUUYdxshBVofiLinAcw3A5LI45CiC6/sUH81oBJKz02u8uJAm4YZBcXueZWp4CTv37PCpDj41UQNBi3GXjh9Pq6xmrE2gjvyAoO11PRogo3TBFLiAPqSr0fADiZQhl1GsuhKdPciMAYH2AGy02uBrO0oPOcUzqei0zFckyWPMD7a5inyCzKsK4Pjp9F4bpH5/fylW3tHqQwenFVTnZH6HZCp3Y+b+4F3+NfV/qa0wwFtsjE/cl67dv+nT81ZJy7roc0ymb4RmYE6k8rtXszEc0p2WHtQJUUCh+fLZjxXhhP8SDLKrnIVGM1u2YtdckPU8RJ017opNVwSPicYI6le/SNP9r1ysUwrLA3Qh+0Hx0Lvml4ZvtuO468HXfdh3flINlduD3Pp1XrNog3JbwlTMCMFyypAmOUijbOe2FTqP3ndABjgoa6Orxh+hxHx5LVJeMqdTV0JHESR78V3aLpkPzhd11lIfaZcUvd/GP/Wx94nQ0nqUSRbbGglb4IKG0r9ZCY0PBjVc77ZQeMqTeDftew3SStJ1TGJM7TSTTVhuUeZEKl5r2JH487F0qe3W54YR+pikvXMrFkMaIhll560H/pVE2FMMDR2urjKtF8ez87OaCcVhF/+fEMcH1dJmK0EA5guu6elCMmu/S3CyhOxma1DoQJWkh8pPAngZvRYTjuN1Wo3ls=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(31686004)(31696002)(66946007)(53546011)(36756003)(66556008)(186003)(66476007)(316002)(508600001)(16576012)(8676002)(4744005)(26005)(6916009)(2906002)(956004)(5660300002)(38100700002)(86362001)(6486002)(2616005)(4326008)(8936002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RHZIZFg5czBYOTMyQW5VNHFLZXVRTDB1VW96K3JVNkJUODVCOTZGSTdkc09H?=
 =?utf-8?B?eHNsRlEvN0hSK1FmNFd1R0hWMlpMSEkyRU5GQk4rMHo3aFBJcDZzK294dU5J?=
 =?utf-8?B?Z2tsUWs0cURLUk5PZkFoK1UxUjlVOGxVVldYc0E2OGlTYW9GM1NJMmVyWVBn?=
 =?utf-8?B?WFVLRkp2bWk1ZnMzMHdHY0pHVVJIUXNQWDV4MVNiSXZpMlR5NjU5ZEFQSkR4?=
 =?utf-8?B?RjNLNkJucit4b0Y0aWxRZFBsNkVZQVhkeXhPZ2QwZFRpLzBkbHhsVjUyam1v?=
 =?utf-8?B?VHF4VmpHZVpUODFVVDRyZUpraVRXcXd4N2NGbmk0YzdJMTdKTjV6OW8vMm5N?=
 =?utf-8?B?T0duT0FNVXQ3NzZ4YjZrNzVkdk14cHVWTzJFREVTajQ0MW4zYi95S3VJOU5q?=
 =?utf-8?B?RTQ5VzlDSmx5SG9CMXNaeHZldVJVcXBvbnh5Y1pIVmgvakF4YXJDMVZPb0Fy?=
 =?utf-8?B?WHI4TXVMZVFaRXI1TjZTc2Uvdnc5VGlDRVRhaDFHaXlnUkVVaWNGRHFnT09S?=
 =?utf-8?B?bDVsSnFKNUFvRGJyaEFaYjBDeXBKWmZWbUpQNTdBUHNEQjRmZXlvSkM5OG9o?=
 =?utf-8?B?ZGRoSEtPNEEydXFaZDNJUjdHMzFDRzRNaEF1dUFtK2VyT0xwajdwd3I3Z3RX?=
 =?utf-8?B?aThaUGtjbWxuTzBLYWg3d0pGcjBwSnAvL2tNMFhoeUx1QVA4K2syQ2xrVUs0?=
 =?utf-8?B?NklwNHVUcFFXak50YUdGWmY2MkZpelMwL2N6bDZqRHhjNnlpN0gwRTJ3OHhq?=
 =?utf-8?B?QXBpZHc1ZW4zemhSYU12WU91VllYRnNrL3Y0REoyQ2RhQU14Nyt5VWVROTFw?=
 =?utf-8?B?VFh3TWs3VVUwOFhMMFYyUUZ3aFVISTVxckxYSU5MNUVxTDYvek5HWTN4VFhQ?=
 =?utf-8?B?YlcreHBVSExSYytEeElOOGVFU3U1OW5ITjdFYXdyZTdtNEtCOVhWcFdxTU93?=
 =?utf-8?B?K1hVTDJTR1lLcmVKTFFXaGwydEEwS3VCVllPR2JYQmt0N2pIRmNPV1Q3R3NS?=
 =?utf-8?B?aEV5c0Rrc1hBSE9mV0RiTDdUTDlPeUVSdndTeVFselJqWXZPOXlQYmhER1Nq?=
 =?utf-8?B?b2JoYUt6ZXhSREZoVVVmck1ublM2MXdJMnJTN3hpeUk0TjRTdGU5UGdWNDY2?=
 =?utf-8?B?NkxrVmFqVGNzTW5qK0JIQWxYTmlBUDd2YUJKZkhKbFVkbTNBRWE1bUNPeGxr?=
 =?utf-8?B?ZXJGcVpNeUxROFBzQkRTQVI3Y05jK2pZUWN6UXBVaTJFbGlWc2ZFUkl6eWtQ?=
 =?utf-8?B?NXFFVC9oaHkrcng4d09NdkxLaEFaazlKRlo5K1lpWXNhZlEzcjFkTi8yaFZq?=
 =?utf-8?B?cmFLRUJHNHZQSkVBbUdkVFRaSW1GcjJ6RXU4R2haSWZnTzU1dWNLUHM5OEFm?=
 =?utf-8?B?bzFIOUsySXZLdjZ5UHFVTmhHeEZjOXBXMDB1dlRSOXZuMHU0TUtqMXl1d0xN?=
 =?utf-8?B?eG5yWEpIQlRWRXhGVkh4V0ZmWUtydlQvZmErVVhxUmZyOXJDOGtBb0VDd0tn?=
 =?utf-8?B?YTQxb3B4SWl6T0UyMmJHVW5TdlNOVnNXQmdZcndRWExpYTFmQ1crYlp1Y3VR?=
 =?utf-8?B?NStDSFVIblFNRDNaZml2VGZKWmdIZlE5d1UvdUZNQms2dkpPQVhRK0xlRGtx?=
 =?utf-8?B?NFBCZWJ1YTJXZlZUMXY0RFJvblMya1ZxR2JyanBHVUQvNFBUNmFrNFRsdkhP?=
 =?utf-8?B?cmRzelFoOE1LcE1tKzZ3OXBXY1hjSGxuaUZGTEczSm1UUExYT0lLMHFlN3h2?=
 =?utf-8?B?YmNlby96YXNaVlduZHFvRkJHYmdGUEhVQ1h2eWZTY1ZGN25nVklDWXYyRGhh?=
 =?utf-8?B?UGtNcE9yTW5ESVpEeC9kZThFcGZabnphOWtKSmFGd2RQbDZQb0xXNGg2U3lp?=
 =?utf-8?B?N3RFbG13YTVYQkMySHZvaXlCNnJ6bjFNRXZaejNaZXNudjhtTVZKVUt4QVFo?=
 =?utf-8?B?UTZuRC9MdDd1OFozb0Z2aFUvbWhPeXlaRFEycjNURW1FdllzancwRk5wK1RG?=
 =?utf-8?B?Qk83bzhoMk5tWCtwMm5GY3Zidnk5c0tnemJlSElnZFAvV3JxVEhiYkJKNWY0?=
 =?utf-8?B?ZDBKeXRXMlBZenVIQ2tHaG9uYU9sWk9tVXJRalJWbGlIWG5zZ3J2QkhmSjVN?=
 =?utf-8?B?M1VEN0ZKZjZCSDFwL2NUdlR2WTR4YVRmQmVKeEprajUrR1A2SVFzQXNZQmQ5?=
 =?utf-8?Q?nitLFzrKtcIqsoy9R4OFiTU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 54d4a043-592f-4ff2-423e-08d9a5c95356
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 10:43:55.6266
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4jv7gDgDHbKamR30cMe1ChwyugyFXBTVvDTdG8kKIS+pvpDkwGbRqisAGvqGC9NG7NRWKbzomAbOY/RNikv1Yg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6480

On 11.11.2021 18:57, Andrew Cooper wrote:
> Function pointers are expensive, and the raw parameter is a constant from all
> callers, meaning that it predicts very well with local branch history.

The code change is fine, but I'm having trouble with "all" here: Both
functions aren't even static, so while callers in io_apic.c may
benefit (perhaps with the exception of ioapic_{read,write}_entry(),
depending on whether the compiler views inlining them as warranted),
I'm in no way convinced this extends to the callers in VT-d code.

Further ISTR clang being quite a bit less aggressive about inlining,
so the effects might not be quite as good there even for the call
sites in io_apic.c.

Can you clarify this for me please?

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 11:24:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 11:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225153.388841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlUfF-0006mL-Ky; Fri, 12 Nov 2021 11:24:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225153.388841; Fri, 12 Nov 2021 11:24:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlUfF-0006mE-HS; Fri, 12 Nov 2021 11:24:13 +0000
Received: by outflank-mailman (input) for mailman id 225153;
 Fri, 12 Nov 2021 11:24:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qdsq=P7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mlUfD-0006m8-Pj
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 11:24:12 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ceb95cd-43ab-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 12:24:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ceb95cd-43ab-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636716250;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=Vcl89wRbh/zYNOE8yCgf6W7KaYUj0TQbn560PdhObcM=;
  b=G3AEHWHaHWAeR4rPRIcwS3Nogv6q5vZiHeVY//DRI6QBiGIOOqfI7w5L
   MeV50MuqYcF5Ycv6PQbmjWTSmuWwW16N5Z1rLNKDedSAoMYvTaSW9uIZv
   oNtONb1jneGPXpC/J+gqbqAuTtImhaAqWJE/2NEmn5NDE2ILvlWZfFE0A
   E=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: JEgU0JgjJvFTs9LSpB1tEv4OB/BNw6h9HxMDYbn4z++tRxpMUzj2H/65efqQtnE0ct0lYRPyGB
 qEGCKceu5fLSVnF6dypYZSYRdpUDi5X5VFvY38Zl67B0RiezH7gLUYRmNN2ipY0m9uSy4Iayrg
 7zFHt5ksozOPXtjAxAUpMhbdJ2svCkAfLP6Hvo3aLXrMejWqQ0sgs1Iw53yQBRjjcB3MQ+x4qI
 uiYY0ZJbc0OKZBtwQoPGhMD6jT1U/f2+mMUb3BXUhPsZhl6QLf3aPRHBASzqKP/8OvH8iV9DxP
 rq+c4bgu77KOlfrzw9h82MI2
X-SBRS: 5.1
X-MesageID: 57700918
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ZKO1q6CoXYBEVBVW/8jkw5YqxClBgxIJ4kV8jS/XYbTApDom0GYGz
 DRNW2mPb/iMZTT3fIxwPI2+oUtVu5+AzoMxQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540Eg7wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/oAWktusy4
 fR2s4WAaAEtPerLu7VEekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvqVvYcJhWdYasZmRun1Z
 PYaUThWagnLehxBYGtUGZlhg7L97pX4W2IB8w/EzUYt2EDQwRJw1v7xMdPTUt2MWchR2E2fo
 wru72n/Rx0XKtGb4T6E6W63wP/CmzvhX4AfH6H+8eRl6HWRzGEODBwdVXOgvOK0zEW5Xrpix
 1c8o3R06/JorQryE4e7D0bQTGO4UgA0cOp9OtZ5wSC2zLPkwgCdBS8DbW8YQYlz3CMpfgAC2
 liMltLvIDVgtryJVH6QnoupQSOO1Ts9djFbO3JdJecRy5y6+dxo0EqTJjp2OPft1oWdJN3m/
 9ydQMHSbZ03hNVD6ai09Euvb9mE9smQFV5dCuk6swuYAuJFiGyNO9PABbvzt68owGOlor+p5
 iVsdy+2trBmMH11vHbRKNjh5Znwjxp/DBXSgER0A74q/Cm39niocOh4uW8lehk0bJxfIm60O
 ic/XD+9ArcJYRNGioctM+qM5zkCl/C8RbwJqNiIBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WiOHSKqtBKcghRRZX5bLivw/Fqmie4ClMOMEkqCuPLwKNnfIpgnq9PkfzP8
 G37UUhdoGcTT1WeQelTQnw8Or7pQ7hlqnc3YX4lMVqygiBxaoez9qYPMZAweOB/puBkyPd1S
 dgDetmBXasTGmiWpWxFYMmvtpFmeTSqmRmKY3ivbg8gcsMyXAfO4NLlIFfirXFcEiqtuMIii
 LS8zQeHE4EbTgFvAZ+OOvKixl+8p1YHn+d2UxeaK9VfYhy0ooNrNzbwnrk8JMRVcUfPwT6T1
 gC3BxYEpLaS/99poYeR3a3d9tWnCepzGEZeDlL317fuOHmI5HenzK9BTP2MIWLXWlTr9fjwf
 u5S1fz9bqEKxQ4Yr4pmHr935qsi/N+z9aRCxwFpEXiXPVSmDrRsfiuP0cVV7/Afw7ZYvU29W
 16V+8kcMrKMYZu3HFkULQsjT+KCyfBLxWWCsaVreB33tH1t4b6KcUROJB3d2iVSIYx8PJ4h3
 ep86tUd7Bayi0ZyP9uL5syOG79g8pDUv30bi6wn
IronPort-HdrOrdr: A9a23:qcAp0KD4u0yONp3lHeg3sceALOsnbusQ8zAXPh9KJiC9I/b1qy
 nxppkmPH/P6Qr4WBkb6Le90Y27MAnhHP9OkPIs1NKZMjUO11HYTr2KgbGSpgEIXheOi9K1tp
 0QDZSWaueAdGSS5PySiGLTc6dCsai6GeKT9J/jJh9WPH5XgspbnmFE42igYylLrF4sP+tEKH
 PQ3LsMm9LmEk5nG/iTNz0gZazuttfLnJXpbVovAAMm0hCHiXeN5KThGxaV8x8CW3cXqI1SvV
 Ttokjc3OGOovu7whjT2yv66IlXosLozp9mCNaXgsYYBz3wgkKDZZhnWZeFoDcpydvfpWoCoZ
 3pmVMNLs5z43TeciWcpgbs4RDp1HIU53rr2Taj8DLeiP28YAh/J9tKhIpffBecwVEnpstA3K
 VC2H/cn4ZLDDvb9R6NpuTgZlVPrA6ZsHAimekcgzh0So0FcoJcqoQZ4Qd8DIoAJiTn84oqed
 MeQv003MwmMm9yUkqp/FWGmLeXLzEO91a9Mwc/U/WuonhrdCsT9Tpd+CQd9k1wgq7VBaM0oN
 gsCZ4Y542mePVmGp6VNN1xMfdfNVa9My4kEFjiaWgPR5t3cE4klfbMkcEIDaeRCdo18Kc=
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="57700918"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=d1G4HfgRGhwmdKKqfKsSchiNxqr0XBVgzie7psKilbc9pfB8y3mxDiQVJFnadm0OXdP9aHS/Gdqv+eeDpSTI3E6kuK1SDe91L2jRBU5FlxInCtW6Uf4shDxPR9OWsIR1zP4BzFYdqIqQiizK0T9sThnOz1g3GbZjLxtuksb6BVsWN5/1NxAtA0KV5jm6HMcBD1PmSrSQpWVFX8jP5N53VL7Y8MLFhUnk1GHZl2mCxrCkdeu0Y73sezTcwLTua/fhwxD9x0k60MsBkR8zP0Vqvm90G31q5+btN1aQOLusnnvurNyCzLbct3k3dmewiCQTtdrYmLLp/DfutxbzKpHyUA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Vcl89wRbh/zYNOE8yCgf6W7KaYUj0TQbn560PdhObcM=;
 b=A2UyyWOwm4sqKRLJIEsoXs7ltkbryiQ8y+4npH3fG6gjUZ9ES2mi4TJMs4NqCcnq3BNlIfq90UyExizsIddzAg1MSUjho1bs2UZRvThR7Mbpj8J4KYBfoY5Afm3wPN65H3X02WWS25yzC1YKNK4t/MCVRGg81XsMVCfKl+dlelL/r7JKmI5ALcXViY786jeiUlYJfFFyI1U6cTRPC6SjASNi/Y+3+UPZGwf+nIiJH3t7HE5aFg8QvQPdUuvBz5uDQiH9RkiLGEc5jK2qZQRaF58YHTaNksnOVpbgJpHMJmmr1gJ5gCTm4Y3wjiTTSr3g5NdWzBNahb0qFr/U83G75g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vcl89wRbh/zYNOE8yCgf6W7KaYUj0TQbn560PdhObcM=;
 b=Al3ZJkHzVTSvQSWoLFwbP1HEDhOAdnJm4vm749qna8Kf/uPt+Y2nkT5qMIXT/eIZ0Mkgqqcg/vAXN8hEwMsX7I85bW9hWyZByBrUbIJz/3vcbPbiEy1cUlw2SjXfP2Sfb0Lirf6y0yPiRpLkH1dss4NHh/Dvn7O54yFyjlUdbFk=
Date: Fri, 12 Nov 2021 12:23:58 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Kevin
 Tian <kevin.tian@intel.com>
Subject: Re: [PATCH 1/6] VT-d: properly reserve DID 0 for caching mode IOMMUs
Message-ID: <YY5OztQdQMXJSG+u@Air-de-Roger>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
X-ClientProxiedBy: MR2P264CA0021.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::33) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9bb585b4-7d8d-4470-93fc-08d9a5ceee8c
X-MS-TrafficTypeDiagnostic: DM6PR03MB4602:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB460218C7C052E1EB958FF9C78F959@DM6PR03MB4602.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: MzARkGrH2jNjdDhrlMTGzQus/kUaWl+rFhQXeHZad8ab0gIA2+K3xQOq5F9Ex5tzOnMDsZ529w2los4qKQBbSn6XSnzQViOTTZHJyPuHio7oZ7jb5CNZpI8e3du1sA9sI6XKCxmPs+t6F2py7K3csxi2iiwwGbjQuUqrMvb+uTxLnzIOgDimTx9VK3ZkLPeD2cOVK5WiqrFOFb1JhVz/pOaDY1mSAxDGoXckIbyxBxfMIxSG/FpLVO63+1h4BTXEywbUHSdL3aSru1WybribzbPA4tl3/KmA16oR0mP1/aIfCTWEUaHcCjAvjD7kyMk5z++WchO+cuT96eiIjcd0uNUXd5lq2eHxYzGDRMWyJC34tbXqGK//tF6eYiFCBqk/+E/+Fv3Gz+AiVY2zQZ8jC5xys6Gdp4cw4HJtejCUpBsnXGUOVWUaxC8dMNHqYUWGR9kLWB6ohz35fRCT9HfT5tuZLDM9puQ5jnLoxlZC55AtiGElFAVJF6IKXsk/WNPKQGTVjaTwaBlyki4vwcnSd/3pgy1yCoRZcTSINP61rClhgY+ZdM5Fzgezr9dFqW/vo4fJpEfQ/6dn7dEC/FXTkUIehTNYh2U5xaq/RRZl79K1z02YjaxyjouloDC7SEa0qoJqrh2J9xQkRTxBdA0/Aln8LZ1qmN7FGEeMDSN0GWkhAdA30y3y+YLGGfy8ZQ5W0quI/EbxX2iwig75ZIVLmQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(66476007)(82960400001)(38100700002)(4326008)(6666004)(2906002)(6486002)(4744005)(54906003)(33716001)(8936002)(508600001)(956004)(8676002)(66946007)(66556008)(6496006)(86362001)(6916009)(316002)(9686003)(5660300002)(85182001)(186003)(26005)(67856001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Tmx6SFhNVldHbUdxQ3NlM25ONG1aWnc5RXdjcS9VOExENzFESTRSbzZBS2pv?=
 =?utf-8?B?c3gwdys3bFhTK1NOQU5keG9GWXV3WUdjdE5XOThVYURINVl6dVVlVldwTXRZ?=
 =?utf-8?B?WmkyQlllK0JmSGs0cDV0Y1dNRzkwUVp4NzZ6dmFxcjUyMVNrZDAvMkpMWXAz?=
 =?utf-8?B?TGpWQmtPSzErTDY5QUdDaUZyUnVVcENyVFpQQ2QxOXZMMVVZMDl2RjA4N3Fo?=
 =?utf-8?B?YnpnRGdTcEhqY3IxSXYwS1pZb2xWT1V6dmhNRUFCdHpRdFE2Mzd0Z3ZiNm8x?=
 =?utf-8?B?emNMdVl3TkFQVWhKK2lsTkpuR2RPTUhsVlpEdEtrVUNMWWw4ZFVjb3ptRWNB?=
 =?utf-8?B?aGV5eFk1ZC9QcjBYejZmdldqaUI2cnIzSjBvYmJ3NWpwT0s3L1ZTUkIxcSs3?=
 =?utf-8?B?NHVGSkpWVUpwUFlGd29FcUVkV0tTWVpJTW8xSUtIQWNXTkg2bUlTZGRQUWdD?=
 =?utf-8?B?V3VOSVRCOEoyTmlJRmFBYmliaEcyTDJxaHhlZXJScVNDL3ZYMTdDMHduRC9F?=
 =?utf-8?B?M2RhQUh5Nlc2RGZKUmJUS2xiT3N5R3lUenNaTVV1c0JVU0pyTmFiUGUreHQw?=
 =?utf-8?B?azBtOEx1Y3ROWVNGdVQwcUQ0eUloR0JGZXNGcjExYTYyWTlLTlY1QmFnYjRx?=
 =?utf-8?B?eWdOOUNSdzBuNWZzRmMvNzhBMVFjRllRWjFsdlZqWGREQURLM2t3Vk5xUXBa?=
 =?utf-8?B?N1c0VEQ4SGNvVGd2R2tUYUd0VG5mMmVUQUh3RTZkeGMzOWhqcmFkaEZjR2RM?=
 =?utf-8?B?YlBXNHZiWlBiTXE3Z0FiUjl1eVg0UU9lcEtoa1E2cmo5YjMyaExEdUdQdTJz?=
 =?utf-8?B?QThySkg1WUtSMkxYSFd6NDJmZjRUVHo5VzBTR0kvWW45d090eGh5UHphbWdQ?=
 =?utf-8?B?L3RPU0NSV0V6MktJQ1Q3UmQxZlQrbFpBQ1hSeUtiRHNmZDJDcy9jdldFQksr?=
 =?utf-8?B?eVRIVjI3c3kzNnlUSktLdVp0Z2dzNS96S0ZzT1JaRzkySnE1SDZpeVdpWEpx?=
 =?utf-8?B?QkQycGQ2aE1tR2VPL3JRRGo1N2Y2WmZlMVI0cnh4cXI3QWlwTWNRUjZSUzZG?=
 =?utf-8?B?UmpqNlZOcjhyekR0NUNnR0RMODIrb2pTQi9lYTU2bGhsRjZuU2VYZGppajhn?=
 =?utf-8?B?eHVUNUtCM1FFK2dyVzdLaWtpWXhETGhuM3RiT0pVYVQ2QXBZcHROeS8xaklQ?=
 =?utf-8?B?VHpwbkMyWkw1VmdrNi9PTUJFUjZqaDFBY1NVcmhqMVU1L0psNXNmREdteWpV?=
 =?utf-8?B?VUxVamZUeklYdGtIWnQ1LzBpU0txek41THpvdmlYdmhzazR0NU5oME9xdGZj?=
 =?utf-8?B?czE1T1lJS0xEdnNlOVp2L2I3U3orUERab3ZWQUo3VWZDdmd2RkhFcXhPOXRu?=
 =?utf-8?B?L1hmTFhwd0tCaXlXeC83SStkUjluRVlNeXRlcVVsMkVLak1sNS8zTXlibzBs?=
 =?utf-8?B?OE9MUUNYRS9aMWRxUFpZNTkwSGlrR2xVTGt5YnhEdUtIV1BtVnpmZGlhSUtv?=
 =?utf-8?B?Ui9zc0M2bEpmMUNVMWdHbndlcDlzRDJ5U0h5a2lONTdhSEE3L2FHV2FLa3g0?=
 =?utf-8?B?Uzh0elFNZjFhcDdhT1A4VEV6azM3SGtKaFlXajRXMmphYkx3cXk1MXdUcXdu?=
 =?utf-8?B?TlE5cXI4RjVWVzBmUUlHbFlZaVVtK01JZzVvSzg4MURIT3dhQ3lnSklXTTZM?=
 =?utf-8?B?QkNFQ2thZW15NFVYTUNZN1hLRHhjTFdKK3N5eEpTNi9VQkVXdytscitESlIv?=
 =?utf-8?B?UGZKc3NmZWRjQzNTNmRVcHdyNVRzWHVGOTdXUmJxUHltQVVwWUZOUUNrb2U2?=
 =?utf-8?B?N2JBSmd4YWNwOU9sRFZERENHemhrWWkzRWJ4eXNJODFXb1ZPN2UvUldsRHo1?=
 =?utf-8?B?VVpXODdsbDNNV280djh3RnpybkE1SFIyTUpWOUY2RHltenNiWDJrelY3eDVy?=
 =?utf-8?B?VkdQVkVJRDdxbmJNRFpidERtd2dNWVFWVFlpMWNaRjZxNE5nOFAwTmlmS00r?=
 =?utf-8?B?Qm1MV1FWbXRlRXRmSTY1SDZrdDVIbHRUZEh1Q2ZMZzM1RTBkVFNSdzZadThC?=
 =?utf-8?B?ZS9TN1U5eUJ3NE43WTB0NTBJdjhVdGJBUE5laldVek03MDl2V0dYWFJoTzh1?=
 =?utf-8?B?QlZlM1lyRVVTelV0UjNSd2JhWng1MmZXcEltamhYc0JpWCtkUXlUUEJBYUxT?=
 =?utf-8?Q?N0BBKCL6SIlFOYe4nLTolg8=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 9bb585b4-7d8d-4470-93fc-08d9a5ceee8c
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 11:24:03.4657
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: geRDcMt0hgmt861FbziJKbcp8eq4B0HzlwKE3x83wrDOAu/jjqbXs43iVTudjq8AhW4Jh/1lRKjYHfsUQKVb9Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4602
X-OriginatorOrg: citrix.com

On Fri, Nov 12, 2021 at 10:47:59AM +0100, Jan Beulich wrote:
> Merely setting bit 0 in the bitmap is insufficient, as then Dom0 will
> still have DID 0 allocated to it, because of the zero-filling of
> domid_map[]. Set slot 0 to DOMID_INVALID to keep DID 0 from getting
> used.

Shouldn't the whole domid_map be initialized to DOMID_INVALID to
prevent dom0 matching against any unused slot?

Similarly cleanup_domid_map should set the slot to DOMID_INVALID.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 11:31:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 11:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225160.388851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlUmQ-0008C3-FZ; Fri, 12 Nov 2021 11:31:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225160.388851; Fri, 12 Nov 2021 11:31:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlUmQ-0008Bw-CV; Fri, 12 Nov 2021 11:31:38 +0000
Received: by outflank-mailman (input) for mailman id 225160;
 Fri, 12 Nov 2021 11:31:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UwsT=P7=citrix.com=Jane.Malalane@srs-se1.protection.inumbo.net>)
 id 1mlUmO-0008Bm-BY
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 11:31:36 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 168ddd2f-43ac-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 12:31:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 168ddd2f-43ac-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636716695;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:mime-version;
  bh=EoBVp6sZXnmTwvng/WSjHakALTfE+R/qtmLzrdVJxDw=;
  b=XP2lXV5hWf+Yca0Y4D9hcLpDGjZ97BHENOm/5Yg107mxq2tbo9Iqz9Md
   xHcQnEmnoMPeemUKGLdYFDbH0w03RCBfQ+agBWfUd0RYu39gtolvv7I3i
   UX7yL0/JJybXiEZrDnbfdIw/YbmS/5hUBtF7y57ahySLGY241mUI1amyX
   A=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: b9tCzjmmMWqSwFA+QMXoT0GkF6RB77TcEvnRKlE7HgeC0CMEkrTOaDyDy+i4roruHEZYqy0M+M
 XmmE4j4kzYGO7qjih7Ee7VFzgHs1y4/Zytdbh1OAfcis/VH4w1NbYsg24lFQDwTdicLGAho9sO
 ZZ6kHyAFZsakAOj58CWRN1cyREpTl/xONCSB4fIxVv+9QBs9knswa1BefKeV4H0F7IK0hA0wH9
 yUYDDRq9KbX7apqFeAFcvaER6RB+ZGhDYD+2CWYxPccT41WJZiMO8RbAAiqHdq7wxXnPtZzEhn
 7/9Bu+fiI7Ubhu2S5HU39GSP
X-SBRS: 5.1
X-MesageID: 59642327
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:YrfOsq4VlHH3wPOfxXAIdwxRtNvAchMFZxGqfqrLsTDasY5as4F+v
 mYYWDqCOKyLYWf2LYolYI/i9EIEvcfQmNQ2QQo9pC02Hi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg29Qw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z+
 s126baTeT4VfayTmM4mDh1DDxEjFPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALDsDtMcU6s3VpyTjfAN4tQIzZQrWM7thdtNs1rp0fQ6qEP
 JBGAdZpRBPfcjkMNnkaM8MjpOCKr3r2UD1ciXvA8MLb5ECMlVcsgdABKuH9eNaHWMFUlUawv
 X/d8iLyBRRyHMySz3+J/2yhgsfLnDjnQ8QCGbug7PlojVaPgGsJB3U+VES5iem0jFakXNBSI
 FBS/TAhxZXe72TyEIO7BUfh5ifZ4FhMALK8DtHW9im/0pGIySWpP1RHT2FBQud7sNQqdWEDg
 wrhc8zSORRjt7icSHS4/7iSrC+vNSV9EVLudRPoXiNevYC9/dhbYgbnC486TfXr1oGd9STYm
 mjS9EADa6MvYdnnPklR1XTOmHqSq5fAVWbZDS2HDzv+vmuViGNIDrFECGQ3D94cc+51rXHb5
 RDofvRyCshUUPlhcwTXEI0w8EmBvartDdElqQcH82Md3zqs4WW/Wotb/StzIkxkWu5dJ2S3P
 hKN41gKtcIJVJdPUUORS9jsYyjN5fKwfekJq9iONoYeCnSPXFPvEN5Sib64gDm2zRlEfVAXM
 paHa8e8ZUv2+ow8pAdas9w1iOdxrghnnDu7bcmik3yPjOrPDFbIGOxtGAbfMYgEAFas/Vy9H
 yB3bJDRlX2ykYTWP0HqzGLkBQxQcCVgW8mp85c/myzqClMOJVzNwsT5mNsJU4dkg75UhqHP+
 HS8UVVf013xmTvMLgDiV5ypQOmHsU9XoS1pMCoyE0yv3nR/M4+j4L1GL8k8fKU99fwlxvlxF
 qFXd8KFC/VJazLG5zVCMsWt8N08LEym1VCUIi6oQDkjZJo8FQbHzcDpI1n0/y4UAyvp6cZn+
 ++81hnWSIYoThh5CJqEc+qmyl685CBPmO97U0bSDMNUfUHgrNpjJyDr16dlKMAQMxTTgDCd0
 l/OUxsfoODMpa4z8cXI2v/Y/9v4TbMmExMDTWfB7LuwOS3LxUaZwNdNALSSYDTQdGLo46H+N
 +9b+O7xba8cl1FQvosiT7sylfAi58HirqNxxxh/GCmZdEyiD75tLyXU3cRLsaERlLZVtRHvB
 xCK89hef76IJNnkABgaIw98NraP0vQdmz/z6/UpIRqluH8rreTfCUgCbQORjCF9LaduNNJ3y
 Ogsj8ca9gijh0d4Kd2BlC1VqzyBI3Fov3/LbX3G7FsHUjYW92w=
IronPort-HdrOrdr: A9a23:8q/iY6rnN7yAykDCmsRUWQUaV5ubL9V00zEX/kB9WHVpm5Oj+P
 xGzc526farslsssSkb6K290KnpewK4yXcH2/hsAV7CZnirhILMFu9fBOTZskTd8kHFh41gPO
 JbAtJD4b7LfBdHZKTBkXGF+r8bqbHtmsHJuQ6d9QYXcegDUdA40+4TMHf+LqQCfnghOXNPLu
 v62iMonUvDRV0nKuCAQlUVVenKoNPG0Lj8ZwQdOhIh4A6SyRu19b/TCXGjr1kjegIK5Y1n3X
 nOkgT/6Knmmeq80AXg22ja6IkTsMf9y+FEGNeHhqEuW3TRY0eTFcRcso+5zXIISdKUmRMXeR
 730lMd1vFImjDsl6eO0FzQMkfboXATAjTZuCClaDPY0LLErXQBepJ8bMtiA2rkwltls9dm3K
 1R2WWF85JREBPbhSz4o8PFThdwiyOP0DEfeMMo/jViuLElGfdsRE0kjTZoOYZFGDi/5JEsEe
 FoAs2Z7PFKcUmCZ3ScumV02tSjUnk6Ax/DGyE5y4Go+ikTmGo8w1oTxcQZkHtF/JUhS4Nc7+
 CBNqhzjrlBQsIfcKo4DuYcRsm8DHDLXHv3QSivCEWiELtCN2PGqpbx7rlw7Oa2eIYQxJ93g5
 jFWEMwjx9FR6svM7z44HRmyGG/fIyNZ0WY9igF3ekIhlTVfsuYDRG+
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208,217";a="59642327"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EVMYKT16ALS+DyjSOW9FwD43JPvb2ri9zwRfaVn4p7LBJBqyVQNoYqka12wsr72CMVNrPIZozQbeN8LgGO58biOufqJuldupemPWUNGq09Oz7KI74tyDUg5jVX9UGWL0shR+pZwYAZgL5EhqaFh3B82N1QwphylrxCG3RxjJmnrl4i5dDXpcBWg/SoC0Hiqrsmmk/I//j6EH7/szMxuZgp9Y/AuB6C9lLjLJVkwLj8ZFJdcrPIIQ408D+ll2ZJ2ZB6qRUht0Zc1A5NSvMOo3hvoA8mXPRfpnF8akksP8Oyief/aNQviBKbdlRbzpE6UdAAXgtzLj4mIq3wyyvcTG8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EoBVp6sZXnmTwvng/WSjHakALTfE+R/qtmLzrdVJxDw=;
 b=Ht2J2T2nHjzS4f0KpT4TcM7wm3plu9XNCAvt9woVDfytRRZNg4qHzy9Ph2EL4RALYKkdG5EK+NDBi2upgKn9l7ThvfZ+ASuIkfo5v1TnKyCQWYNahIXk6ghvvKuOARjIPWIDqwqQ0o+kq09av2ue8pVAYT4RoKOS9zwozBLTHVBhIf4X8iXn36u91fvUFVwflRQaA0DDOpsRnV9soM/OBbC/XxeOKU8PX8Lj4DoIDbsMKvHiBh+e+ALdPn6gP/4y0HXZIcS2+S3TGmGjFg3GEe2ltw1nmGj241GDurOs7uHTc8HO3YQDdi93yPTwsKIQ4Lbx0IjRQGLqa2nBR4iDMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EoBVp6sZXnmTwvng/WSjHakALTfE+R/qtmLzrdVJxDw=;
 b=kmpS2GC7IhT7V4wG3ZTr9G2+6FtHmW50UH/s1pVtaVuN2pvWod9BU+Eb15MMFx/QTmW0O/Me2e2bxZs6afh0azN72Mvr0JZtVS4ThHnsUOpVgGbfc4WpZtgplUm4gbxaIqicZvHHbGqtDQTN+MyJI0XlOwNm8Im3OGOc6aRoIEA=
From: Jane Malalane <Jane.Malalane@citrix.com>
To: Ian Jackson <iwj@xenproject.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<jbeulich@suse.com>
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Thread-Topic: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Thread-Index: AQHX1hROHogEO/4RQ0eCoyAnBihvQKv8pa6AgAMfxoA=
Date: Fri, 12 Nov 2021 11:31:30 +0000
Message-ID: <c9f80b8d-f411-dd15-fad3-f0a3a740f276@citrix.com>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
 <24971.45471.990917.651108@mariner.uk.xensource.com>
In-Reply-To: <24971.45471.990917.651108@mariner.uk.xensource.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3e62e401-2b3f-41b5-d3c4-08d9a5cff938
x-ms-traffictypediagnostic: SJ0PR03MB5662:
x-microsoft-antispam-prvs: <SJ0PR03MB5662AAFC731BBC7FB9D9908F81959@SJ0PR03MB5662.namprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: WYqkbu5A6Xelp5YpGmvbuJbSxkuBnHU2C+cdVOida4Ku/laSLR6i8RSmH5nXtGaZGYeEsTw5K1TLulxEA2YmykG5QtwXGGRjLVOpBOHkGUj+otPDJ+9GWnRKKUUstVGjwTK4DAWNDb5eerxpwnVQcOBIFZMDWiyYYC2PwIyj1t460kIVpEf8Ahqnihcog6CsBpm1YK9SC3Zb2UpgXkHaSPX8nm4QnXKOokiNk8PFNGvYYm8BHd/I3c3rQYp9Ab2hNvlUeaB0s+xbOPkKQng9Aa8Nj28kbLGPqU80ojwoJlGgeWlrfTAb5ADR5Nn3sPsa9oOC4g2tV3YDTZTqIC26XpYLQsYxd5tm+JygUnCGFmTIYYxJTMONxvEVhA5coGx2OAWZiFw4HTQy9K4L1ezCBaEG34J3v9sxKLGv5H5j/e8C/5vUVk8otBs8oTrJ9Pn4LCjaXGEdGhxO+EAkgFp8PIlEJCia4aJ/p5k2lI6RFuUr4rkxr9i1vW5Vagf2cO8+ezHVBJXeBU7xK/gA8GuAp6KwyITz2Uo4XHe63+cd3zJZR+wnQvJ+kTtmQS9fkiOmFBqwV8IbDJ3RlFJLejKdWNtk0w/dEehEKqzllSAj32y+4P7ZLsGhXGUwzoxo7vxljIsP60RARsy2E/n0J2/hixp5S7YaYsP+BaUaWF7Lg6D3Ce1Wz+ujTGzO5Fkk7IaBq52H7viRYHa9qcOaJ6rh6zLed8kI8d0XQ5tW0HLap8o=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB6325.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(122000001)(76116006)(6512007)(91956017)(66476007)(26005)(36756003)(66556008)(8676002)(66946007)(66446008)(6486002)(53546011)(55236004)(64756008)(31696002)(508600001)(38100700002)(8936002)(5660300002)(6506007)(186003)(38070700005)(6916009)(4326008)(31686004)(2906002)(82960400001)(316002)(71200400001)(2616005)(86362001)(54906003)(83380400001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WkpaNk5TM0srNTFrcGg1bE5jTm5rTHhtYkwrVnpwWnJaR2QrNW8wekoyaXBv?=
 =?utf-8?B?RFl6bEhmTWxGOEtLNEVyMUdlT1ZMUWJQT1BGSktvNGwrU0NsUHNhUWEvSzZy?=
 =?utf-8?B?Q1JMKzJKQlRXSmVtcnJ2RWJTTGxXd0FUN3hnREw5aDdiUU8rdGpWa1JhY0l1?=
 =?utf-8?B?MVZqWXE3OEhVZmVVREJMTGV3RVhzY2YvdDQ0WFpZbkpqYlprckRwTjdTMXRn?=
 =?utf-8?B?NzF1UVJFNUNrTDJLMnBEc1d1SzRxNEhEaDFzRWU0K3FQemltdFFtcEhiSHVY?=
 =?utf-8?B?UGY3ZlVoWlVRMEtUQVE3SGlaOXhkWmRYTlRKNW0xUWV5bmtqR3EvMWhMTWVx?=
 =?utf-8?B?YlJtOTVZRkVUNjlsYitCNXRzem4zVTlZOHNMSFd0a3dJdHQ5RjZpNW5RZ3VK?=
 =?utf-8?B?cWFYWDdJS2RpUXN4dXNTekxQTlkwWUJKYUhTYWsxME92ZGJyL2NBWEsrbGFa?=
 =?utf-8?B?dVVrMHBCU016ZVFuZTFyRWg1WktoOUFmK3hYQzBzTVBpbk5vclp2UXFpSURN?=
 =?utf-8?B?dmJycVdVT3R6WXU0aXlnSENNSU0yQVdvcHZ4WDFYU3J0eVQzWk42MUg4VTUw?=
 =?utf-8?B?b2IrWEtZeE9RWDF6elBFMmRnUWlQNnhOeXRzeWpZdFd4ZGlYcEw5dzBEeFY1?=
 =?utf-8?B?ZFNGOWgvRlZSbU5yUkxqWkg2bjdKUm5FbENURUh3cVY2THloaXZHamRKYU5j?=
 =?utf-8?B?U1Q5VkcxNlZ0STJZdjI1NysyU0ovZG9kbklrM2NnRlVEVFM4UG4wOGMwVjNy?=
 =?utf-8?B?THdkdTNJNnlrTlRCT0toR3ZZaXU2TmpEUEJFYVhidy8rbHRvLzlSM3pLQWls?=
 =?utf-8?B?R0FMM1JRQVJCcncxeXNyYTQ4bHB4SCtWSzBwS1l5ZXgxZUI4ZXcvODE1MFFF?=
 =?utf-8?B?RVZSTDNCdUMrL250WmRBeTZ3UXhZK3FaSU90L0NYUGdDM1RQMlliczJVY3Rt?=
 =?utf-8?B?YmdYdkNLMS9VUmlaSmNVVjlMNnlXYXNSMHkzczZxWnZySWF1MlhOdit0L2d6?=
 =?utf-8?B?NWdFSVpkWmEwaXh0Q2NxRW5XOEhzOC9ZTTdnNk5yN0QxVGNLTndobktBS1lQ?=
 =?utf-8?B?SlVoQncwL1lrOENYT1U2ZjJVdE9GNW9jVWNjU2c1bjZlR0tCRGtFd0t5a2M0?=
 =?utf-8?B?SnVTUUx4aGpEM1hhTUdqQ3J0QjZDVEZrYTIraXd5eGJrWi90UWtwNWdReXVu?=
 =?utf-8?B?Q0Q2czlpUGdIb3dORDJ3TWV2OWkyWkhIZWRiS1hOc0lyWmRodTA0aEgyelFv?=
 =?utf-8?B?Qm9Ody9Pam9ndHJDSUtSN2tNZVBTVmlDWGx3N3BTdXZXRG45bVRTK0o2Wmh5?=
 =?utf-8?B?dU9uaDcwaWdFeU1FU2xTVVRMOWxtamUxdlNXTTlKd0dhREp5NXIvM3VMWWV2?=
 =?utf-8?B?QnltRlJFaFV6dVMyeldNQlh3WjlTZE1PSVdEZkJNZ1JOQjBIL3ZXS3V2OGFF?=
 =?utf-8?B?VnlTQW1zRVNxZXE4QkJuT0JyV1l3dVluMGpEN1FoYUNjMUJlV1Rvd1BvdExt?=
 =?utf-8?B?eXMrZS8zb2x1TkZsT2NXRU84QmJEWUQzNjRTcmNKRWRTak83MmZZNzdvVFZs?=
 =?utf-8?B?ZDU0dzgzQ0FLaTl5ckJpL2xiUEM5VUZncHYySitCeWNDRlFFNmQ2bHJhK1dm?=
 =?utf-8?B?bXFWVmtCZmdCOTg0TUJxL0YxbVc4eFdOSm45QWpmcE9samdJSkw4N3IwQjF3?=
 =?utf-8?B?V0Rud3dPVGx6WjJhMmsrQVRXN3hXQlZ2c1JkQWVkSC9tSm1Ua2ZaWHZkaWZt?=
 =?utf-8?B?d0hrYjFnTVJNbXBwaW5VeEpQSi9BVk85QVdzbHR2MDZ2eFB0Ulp6dzZBays2?=
 =?utf-8?B?NkMyUUszdzVzaEtZU3NpSFBuNHArc2dsaWQzSmF0d0NYYXp4YkNyOVFEclRS?=
 =?utf-8?B?THEyWU0rNkdVOXRORWZ0Q1Q1bDkxUEp1a2o4V0xhUnlNN25UMTVPLy91TnFL?=
 =?utf-8?B?ZXREY3QxNFA3NUU3QTZaVktvc20xSmtyS0ZhTGhoOWN6TzNwVXpmNDB3cDdR?=
 =?utf-8?B?UzNUNGhCT2VjbmlNZXByVHk3TUhRMFJ2ZnVtd05VNmhYY3lKSE1lelZMbGFm?=
 =?utf-8?B?QzNMTDNIbkt0cnpkaWMySC81ZGVtNDZaOW5MVmp3WGMzRG94QUo1a3lMSTgw?=
 =?utf-8?B?L2lDVG43VmlOa010L25OcjhaWFE5OCtjcW1uYzhiV3A5OUtVdzBtT0toZzMx?=
 =?utf-8?B?VUVQRTdpNE1HMTZITVVQaUU3b2NlWitqUmhtOVJMbjU1VG1ibDZ3M1BVenlj?=
 =?utf-8?Q?fnPnfqzsixoEutmsv7wEBKbqZd7k8jmBaEHTfXaeRg=3D?=
Content-Type: multipart/alternative;
	boundary="_000_c9f80b8df411dd15fad3f0a3a740f276citrixcom_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB6325.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e62e401-2b3f-41b5-d3c4-08d9a5cff938
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2021 11:31:30.7112
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: T1Y+eoK/0cn/DwzRaEMeiLFxENkcpHRkeWPNH7FQr15yVjiVQNBbQI2ID6lzLEAcv18LEWd1SkTR/vRs7S+JMVj07yCN0ROcJPrIztvujEc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5662
X-OriginatorOrg: citrix.com

--_000_c9f80b8df411dd15fad3f0a3a740f276citrixcom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQpPbiAxMC8xMS8yMDIxIDExOjQ4LCBJYW4gSmFja3NvbiB3cm90ZToNCg0KW0NBVVRJT04gLSBF
WFRFUk5BTCBFTUFJTF0gRE8gTk9UIHJlcGx5LCBjbGljayBsaW5rcywgb3Igb3BlbiBhdHRhY2ht
ZW50cyB1bmxlc3MgeW91IGhhdmUgdmVyaWZpZWQgdGhlIHNlbmRlciBhbmQga25vdyB0aGUgY29u
dGVudCBpcyBzYWZlLg0KDQpKYW5lIE1hbGFsYW5lIHdyaXRlcyAoIltQQVRDSF0geGVuL2NwdWZy
ZXE6IFJlc2V0IHBvbGljeSBhZnRlciBlbmFibGluZy9kaXNhYmxpbmcgdHVyYm8gc3RhdHVzIik6
DQoNCg0KQmVmb3JlLCB1c2VyIHdvdWxkIGNoYW5nZSB0dXJibyBzdGF0dXMgYnV0IHRoaXMgaGFk
IG5vIGVmZmVjdDogYm9vbGVhbg0Kd2FzIHNldCBidXQgcG9saWN5IHdhc24ndCByZWV2YWx1YXRl
ZC4gIFBvbGljeSBtdXN0IGJlIHJlZXZhbHVhdGVkIHNvDQp0aGF0IENQVSBmcmVxdWVuY3kgaXMg
Y2hvc2VuIGFjY29yZGluZyB0byB0aGUgdHVyYm8gc3RhdHVzIGFuZCB0aGUNCmN1cnJlbnQgZ292
ZXJub3IuDQoNClRoZXJlZm9yZSwgYWRkIF9fY3B1ZnJlcV9nb3Zlcm5vcigpIGluIGNwdWZyZXFf
dXBkYXRlX3R1cmJvKCkuDQoNCg0KLi4uDQoNCg0KTm90IHRha2luZyB0aGlzIHBhdGNoIG1lYW5z
IHRoYXQgdHVyYm8gc3RhdHVzIGlzIG1pc2xlYWRpbmcuDQoNClRha2luZyB0aGlzIHBhdGNoIGlz
IGxvdy1yaXNrIGFzIGl0IG9ubHkgdXNlcyBhIGZ1bmN0aW9uIHRoYXQgYWxyZWFkeQ0KZXhpc3Rz
IGFuZCBpcyBhbHJlYWR5IHVzZWQgZm9yIHNldHRpbmcgdGhlIGNob3NlbiBzY2FsaW5nIGdvdmVy
bm9yLg0KRXNzZW50aWFsbHksIHRoaXMgY2hhbmdlIGlzIGVxdWl2YWxlbnQgdG8gcnVubmluZyAn
eGVucG0NCmVuL2Rpc2FibGUtdHVyYm8tbW9kZScgYW5kLCBzdWJzZXF1ZW50bHksIHJ1bm5pbmcg
J3hlbnBtDQpzZXQtc2NhbGluZy1nb3Zlcm5vciA8Y3VycmVudCBnb3Zlcm5vcj4nLg0KDQoNCg0K
VGhhbmtzLiAgSSBhbSBwb3NpdGl2ZWx5IGluY2xpbmVkLiAgQnV0IEkgaGF2ZSBvbmUgcXVlcnkg
YWJvdXQgdGhpcw0KcmF0aW9uYWxlLiAgQWRkaW5nIGEgbmV3IGNhbGwgdG8gYW4gZXhpc3Rpbmcg
ZnVuY3Rpb24gaXMgT0sgaWYgY2FsbGluZw0KX19jcHVmcmVxX2dvdmVybm9yIGlzIHBlcm1pdHRl
ZCBoZXJlLiAgQXJlIHRoZXJlIGxvY2tpbmcgb3IgcmVlbnRyYW5jeQ0KaGF6YXJkcyA/ICBQZXJo
YXBzIHRoZXNlIGlzc3VlIGhhdmUgYmVlbiBjb25zaWRlcmVkIGJ1dCBJIHdvdWxkIGxpa2UNCnRv
IHNlZSBzb21ldGhpbmcgZXhwbGljaXQgYWJvdXQgdGhhdC4NCg0KVGhhbmtzLA0KDQoNCkhpIElh
biwNCg0KDQpJIHRoaW5rIHRoYXQncyBub3QgYSBjb25jZXJuIGhlcmUgYmVjYXVzZSB0aGUgb25s
eSBvdGhlcg0KY2FsbGVycyBvZiBfX2NwdWZyZXFfZ292ZXJub3IgYXJlIF9fY3B1ZnJlcV9zZXRf
cG9saWN5KCksIHdoaWNoIGlzIHVuZGVyIHRoZQ0Kc2FtZSBzeXNjdGxfbG9jaywgYW5kIGNwdWZy
ZXFfZGVsX2NwdSwgd2hpY2ggc2hvdWxkbid0IGJlIGFuIGlzc3VlIGJlY2F1c2Ugbm8NCmZ1cnRo
ZXIgYWN0aW9uIGNhbiBiZSBwZXJmb3JtZWQgYWdhaW5zdCB0aGUgY3B1IHdoZW4gdGhhdCBmdW5j
dGlvbiBpcyBjYWxsZWQuDQoNCg0KSSB3aWxsIGhhdmUgdG8gc3VibWl0IGEgdjIgb2YgdGhpcyBw
YXRjaCwgc28gSSBjYW4gYWRkDQp0aGVzZSBjb25zaWRlcmF0aW9ucyB0byB0aGUgcmVsZWFzZSBy
YXRpb25hbGUgc2VjdGlvbj8NCg0KDQoNClRoYW5rcywNCg0KSmFuZS4NCg0KDQo=

--_000_c9f80b8df411dd15fad3f0a3a740f276citrixcom_
Content-Type: text/html; charset="utf-8"
Content-ID: <58B9918AE855C741A3E270EB8E409721@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5Pg0KPHA+PGJyPg0KPC9w
Pg0KPGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5PbiAxMC8xMS8yMDIxIDExOjQ4LCBJYW4g
SmFja3NvbiB3cm90ZTo8YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNpdGU9
Im1pZDoyNDk3MS40NTQ3MS45OTA5MTcuNjUxMTA4QG1hcmluZXIudWsueGVuc291cmNlLmNvbSI+
DQo8cHJlIGNsYXNzPSJtb3otcXVvdGUtcHJlIiB3cmFwPSIiPltDQVVUSU9OIC0gRVhURVJOQUwg
RU1BSUxdIERPIE5PVCByZXBseSwgY2xpY2sgbGlua3MsIG9yIG9wZW4gYXR0YWNobWVudHMgdW5s
ZXNzIHlvdSBoYXZlIHZlcmlmaWVkIHRoZSBzZW5kZXIgYW5kIGtub3cgdGhlIGNvbnRlbnQgaXMg
c2FmZS4NCg0KSmFuZSBNYWxhbGFuZSB3cml0ZXMgKCZxdW90O1tQQVRDSF0geGVuL2NwdWZyZXE6
IFJlc2V0IHBvbGljeSBhZnRlciBlbmFibGluZy9kaXNhYmxpbmcgdHVyYm8gc3RhdHVzJnF1b3Q7
KToNCjwvcHJlPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+DQo8cHJlIGNsYXNzPSJtb3otcXVv
dGUtcHJlIiB3cmFwPSIiPkJlZm9yZSwgdXNlciB3b3VsZCBjaGFuZ2UgdHVyYm8gc3RhdHVzIGJ1
dCB0aGlzIGhhZCBubyBlZmZlY3Q6IGJvb2xlYW4NCndhcyBzZXQgYnV0IHBvbGljeSB3YXNuJ3Qg
cmVldmFsdWF0ZWQuICBQb2xpY3kgbXVzdCBiZSByZWV2YWx1YXRlZCBzbw0KdGhhdCBDUFUgZnJl
cXVlbmN5IGlzIGNob3NlbiBhY2NvcmRpbmcgdG8gdGhlIHR1cmJvIHN0YXR1cyBhbmQgdGhlDQpj
dXJyZW50IGdvdmVybm9yLg0KDQpUaGVyZWZvcmUsIGFkZCBfX2NwdWZyZXFfZ292ZXJub3IoKSBp
biBjcHVmcmVxX3VwZGF0ZV90dXJibygpLg0KPC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJlIGNs
YXNzPSJtb3otcXVvdGUtcHJlIiB3cmFwPSIiPi4uLg0KPC9wcmU+DQo8YmxvY2txdW90ZSB0eXBl
PSJjaXRlIj4NCjxwcmUgY2xhc3M9Im1vei1xdW90ZS1wcmUiIHdyYXA9IiI+Tm90IHRha2luZyB0
aGlzIHBhdGNoIG1lYW5zIHRoYXQgdHVyYm8gc3RhdHVzIGlzIG1pc2xlYWRpbmcuDQoNClRha2lu
ZyB0aGlzIHBhdGNoIGlzIGxvdy1yaXNrIGFzIGl0IG9ubHkgdXNlcyBhIGZ1bmN0aW9uIHRoYXQg
YWxyZWFkeQ0KZXhpc3RzIGFuZCBpcyBhbHJlYWR5IHVzZWQgZm9yIHNldHRpbmcgdGhlIGNob3Nl
biBzY2FsaW5nIGdvdmVybm9yLg0KRXNzZW50aWFsbHksIHRoaXMgY2hhbmdlIGlzIGVxdWl2YWxl
bnQgdG8gcnVubmluZyAneGVucG0NCmVuL2Rpc2FibGUtdHVyYm8tbW9kZScgYW5kLCBzdWJzZXF1
ZW50bHksIHJ1bm5pbmcgJ3hlbnBtDQpzZXQtc2NhbGluZy1nb3Zlcm5vciAmbHQ7Y3VycmVudCBn
b3Zlcm5vciZndDsnLg0KPC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJlIGNsYXNzPSJtb3otcXVv
dGUtcHJlIiB3cmFwPSIiPg0KVGhhbmtzLiAgSSBhbSBwb3NpdGl2ZWx5IGluY2xpbmVkLiAgQnV0
IEkgaGF2ZSBvbmUgcXVlcnkgYWJvdXQgdGhpcw0KcmF0aW9uYWxlLiAgQWRkaW5nIGEgbmV3IGNh
bGwgdG8gYW4gZXhpc3RpbmcgZnVuY3Rpb24gaXMgT0sgaWYgY2FsbGluZw0KX19jcHVmcmVxX2dv
dmVybm9yIGlzIHBlcm1pdHRlZCBoZXJlLiAgQXJlIHRoZXJlIGxvY2tpbmcgb3IgcmVlbnRyYW5j
eQ0KaGF6YXJkcyA/ICBQZXJoYXBzIHRoZXNlIGlzc3VlIGhhdmUgYmVlbiBjb25zaWRlcmVkIGJ1
dCBJIHdvdWxkIGxpa2UNCnRvIHNlZSBzb21ldGhpbmcgZXhwbGljaXQgYWJvdXQgdGhhdC4NCg0K
VGhhbmtzLA0KPC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJlPkhpIElhbiwNCjwvcHJlPg0KPHBy
ZT5JIHRoaW5rIHRoYXQncyBub3QgYSBjb25jZXJuIGhlcmUgYmVjYXVzZSB0aGUgb25seSBvdGhl
cg0KY2FsbGVycyBvZiBfX2NwdWZyZXFfZ292ZXJub3IgYXJlIF9fY3B1ZnJlcV9zZXRfcG9saWN5
KCksIHdoaWNoIGlzIHVuZGVyIHRoZQ0Kc2FtZSBzeXNjdGxfbG9jaywgYW5kIGNwdWZyZXFfZGVs
X2NwdSwgd2hpY2ggc2hvdWxkbid0IGJlIGFuIGlzc3VlIGJlY2F1c2Ugbm8NCmZ1cnRoZXIgYWN0
aW9uIGNhbiBiZSBwZXJmb3JtZWQgYWdhaW5zdCB0aGUgY3B1IHdoZW4gdGhhdCBmdW5jdGlvbiBp
cyBjYWxsZWQuDQo8L3ByZT4NCjxwcmU+SSB3aWxsIGhhdmUgdG8gc3VibWl0IGEgdjIgb2YgdGhp
cyBwYXRjaCwgc28gSSBjYW4gYWRkDQp0aGVzZSBjb25zaWRlcmF0aW9ucyB0byB0aGUgcmVsZWFz
ZSByYXRpb25hbGUgc2VjdGlvbj8NCjxmb250IGZhY2U9Im1vbm9zcGFjZSI+DQo8L2ZvbnQ+PC9w
cmU+DQo8cHJlIGNsYXNzPSJtb3otcXVvdGUtcHJlIiB3cmFwPSIiPjxwcmU+VGhhbmtzLDwvcHJl
PjxwcmU+SmFuZS4NCg0KPC9wcmU+PC9wcmU+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjaXRl
PSJtaWQ6MjQ5NzEuNDU0NzEuOTkwOTE3LjY1MTEwOEBtYXJpbmVyLnVrLnhlbnNvdXJjZS5jb20i
Pg0KPC9ibG9ja3F1b3RlPg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_c9f80b8df411dd15fad3f0a3a740f276citrixcom_--


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 11:42:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 11:42:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225168.388863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlUwp-0001Gj-K9; Fri, 12 Nov 2021 11:42:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225168.388863; Fri, 12 Nov 2021 11:42:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlUwp-0001Gc-Gw; Fri, 12 Nov 2021 11:42:23 +0000
Received: by outflank-mailman (input) for mailman id 225168;
 Fri, 12 Nov 2021 11:42:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlUwo-0001GS-6A; Fri, 12 Nov 2021 11:42:22 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlUwn-0007AE-RZ; Fri, 12 Nov 2021 11:42:21 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlUwn-0007eS-KY; Fri, 12 Nov 2021 11:42:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlUwd-0000fx-Lq; Fri, 12 Nov 2021 11:42:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=j1AXNIn1xoHLIznYJ+AK/U3cQLByXR+OIBtIjAmcrY8=; b=pszLqKoYhyjYEgV9Xckyn2YymP
	MkGTGiZwoA4WGxwGJkyIvnu1eBaWWgxh+6YswWxML1ODYJFV22yEX7HyLXwQtaXo37JpCyzzHpClj
	vkkMH8mRCXQXaQdjk/O3JsFdaZCmpOok5yt7z1orr3te3UMnN+qI8xvS96IxHZ5+j53M=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166119-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166119: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=70f872ca916ac4552fa71d82b8d006b3e679089e
X-Osstest-Versions-That:
    qemuu=1b9fc6d8ba6667ceb56a3392e84656dcaed0d676
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Nov 2021 11:42:11 +0000

flight 166119 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166119/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166115
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166115
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166115
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166115
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166115
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166115
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166115
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166115
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166115
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                70f872ca916ac4552fa71d82b8d006b3e679089e
baseline version:
 qemuu                1b9fc6d8ba6667ceb56a3392e84656dcaed0d676

Last test of basis   166115  2021-11-11 11:39:20 Z    0 days
Testing same since   166119  2021-11-11 23:09:18 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  David Hildenbrand <david@redhat.com>
  Miroslav Rezanina <mrezanin@redhat.com>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   1b9fc6d8ba..70f872ca91  70f872ca916ac4552fa71d82b8d006b3e679089e -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 12:02:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 12:02:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225179.388877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVGF-0003kD-Hu; Fri, 12 Nov 2021 12:02:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225179.388877; Fri, 12 Nov 2021 12:02:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVGF-0003k6-Dy; Fri, 12 Nov 2021 12:02:27 +0000
Received: by outflank-mailman (input) for mailman id 225179;
 Fri, 12 Nov 2021 12:02:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qdsq=P7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mlVGE-0003jy-AU
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:02:26 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 64aa63d2-43b0-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 13:02:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64aa63d2-43b0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636718544;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=gGKPDVNER29O7ogyDVkwEV5SwSuOORYhfCWBLcfG/hs=;
  b=D3gT7lCAaPaGT7/qTB9YAH/JZFTOdsXCnImnGMeSH8PwpqVXLs0r+leh
   Ys9/MOVV9ZUeNyKMHNn5uSL/+a6e6ckJVTTVC6cma/j7fXqwbuARU8wRm
   LBgf/SdMhlMRq3cv92kDagtjZaLcrZJkPCy3TTTAF4CVPw8h3lRqlytb2
   s=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 15pCmuRw3yTb/LEeHbSMoRmWD48YpUkGsXNjxdvrErbDMVhDF1Be6beeT9Wvw3FvQOXxdWwV2R
 e5DK5ijm0RZCLfjKvugvK93IhhbyVVaXfSzNlCuSJfuAb14Mp/FNAirOfNCdR1LV6cM/UG9mD5
 k368/L0B4uWOs4/38kkOwzQW9ln1fSUsqm951EAPpnu+SdWKC7gR7qKiZx6u76MnFfo5EW48v/
 xetQXUBFrJleWKX8I30DRWFN2Hp1r0o8dn6z1MgQmv5u+G2XsTYkkYKK4TKbWdwJh/tFWntRSm
 5Smdk0RBA3SbZRBS+fctjeNd
X-SBRS: 5.1
X-MesageID: 57639326
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:95+jXKidfEFgyO04YuJgYG7BX161IBYKZh0ujC45NGQN5FlHY01je
 htvCz/Qa/mOYGKgedl1PY6x8kwHscKGx4VqSVRlqys0Hn8b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cx24Dja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1E64aCF0QsPZSSnd85XAdCMRpkF7BvreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2Z4VTK2EO
 aL1bxJXUB2bW0NwMGsJDY05xNu3uiK8SzxX/Qf9Sa0fvDGIkV0ZPKLWGNrSfNObVcRctk+dr
 3DB+SLyBRRyHMOb4SqI9DSrnOCntSLkWqoCGbug7PlojVaPgGsJB3U+VECyoPq4jAuyXtNDM
 V086yMooaUisla2JvH/VRClpH+PvjYHRsFdVeY97Wml2qfSpgqUGGUAZjpAc8A98t87QyQw0
 V2ElM+vAiZg2JWOUm6U/LqQqTK0OAAWIHUEaCtCShEKi/HhvYUygxTnXttlVqmvgbXI9SrYm
 m7Q6nJk3vNK0JBNh/7TEU37byyEr8bTfFB24wbuAGeeygxnfqyefaa1wA2OhRpfF7qxQl6Et
 XkCvsGR6uESEJ2A/BCwrPUx8KKBvKjcbmCF6bJ7N9x4rmn2pSb/FWxFyGgmfB8BDyoSRdP+j
 KY/Uyt17YQbAnalZLQfj2mZW5VzlviI+TgIu5npgjtyjnpZKFDvEMJGPxf4M4XRfK4Ey/xX1
 XCzK5bEMJriIf47pAdavs9EuVPR+ggwxHnIWbfwxAm93LyVaRa9EOlebgXTMLpit/LZ+m05F
 uqz0ePQln2zt8WkMkHqHXM7dwhWfRDX+7iqwyCoSgJzClU/QzxwYxMg6bggZ5Zkj8xoehTgp
 RmAtrtj4AOn3xXvcFzSAlg6Me+Hdcsv/BoTYH13VX71iidLXGpaxPpGH3fBVeJ8r7ILID8dZ
 6RtRvhs9dwTEGmaoGpEMsGmxGGgHTzy7T+z0+OeSGFXV7ZrRhDT+8+ieQ3q9SIUCTGwu9d4q
 Lqlvj43i7JaL+i7JMqJOv+p0X2run0RxLB7U0fSe4EBc0Tw6ol6bSf2i6Zvcc0LLBzCwBqc1
 hqXXkhE9bWc/ddt/Ymbn72AoqeoD/B6QhhQEV7E4OvkLiLd5Gein9NNCb7aYTDHWWro06y+f
 uEJnerkOfgKkQ8S4YpxGrpm14wk4N7rq+MIxwhoBiyTPV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNIfVgrdOWO0/0QiwL+1/VtLRWo/jJz8ZqGTV5WY0uGhhtCIeYnK4gi2
 +og5pIbslTtlhowP9+apSlI7GDQfGcYWqAqu5xGUo/mjg0nlgNLbZDGU3Kk5ZiOb5NHM1UwI
 y/Sj63H3uwOyk3Hens1NH7MwesC2she5EEUlAcPdwaTh97Ipv4rxxkAoz04QzNcwghDz+8ua
 HNgMFd4JPnW8jpl7CSZs7tAx+2V6MWlx3HM
IronPort-HdrOrdr: A9a23:ObIo3K47vJQ99Qi2ogPXwSaBI+orL9Y04lQ7vn2ZFiY7TiXIra
 yTdaoguCMc6AxxZJkh8erwXJVoJkmsj6KdgLNhRotKOTOJhILGFvAF0WKP+UyDJ8SczJ8j6U
 4DSdkGNDSYNzET5qybkWrIberIqOP3jJxA7t2uqEuFIzsaDp2JuGxCe3um+wBNNUF7LKt8MK
 DZyttMpjKmd3hSRsOnBkMdV+yGg9HQjprpbTMPGhZisWC1/HmVwY+/NyLd8gYVUjtJz7tn2W
 /Zkzbh7qHml/2g0BfT20La8pwTstr8zdloAtCKl6EuW37RozftQL4kd6yJvTgzru3qwFE2kO
 PUqxNlBMh342O5RBDDnTLdny3blBo+4X7rzlGVxVH5p9bieT48A81dwapEbxrw8SMbzZ5B+Z
 MO+1jcm4tcDBvGkii4zcPPTQtWmk29pmdnufIPjkZYTZAVZNZq3MAiFXtuYdY99R/BmcAa+L
 EENrCe2B8WSyLWU5nhhBgg/DT2NU5DXCtvQSA5y7ioOnZt7TVEJnAjtbwid0E7hecAoql/lp
 X525tT5cJzp7ctHNpA7cc6ML2K4z/2MFvx2Fz7GyWUKEhAAQOIl6LK
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="57639326"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bJiRpu+IreDMspkctEqN/xR+0YPAF3/5RsDYCWks4MecYxBSUjX5SrsX2TxPSGzI28lxUtbKC+v9z6tukIIevaJ6qkMvg//cFXThQKOtcR+r8nAHwr3xb6RTGfWZ+rC7ZDcYA5iY65byWjZOG+PB+xVJtyJAT2cifOQ+8Vaq8AOXKJeBu02WzxTiZvMCoC06JSrZuyhj6esdkORB69AraOduSkrSwNYx35I4OHTXn1O2T47UgZJOZrxRBPYTVe15pcXplb7TerYmwfOS7HGTH0/JJf3PbSYYiSgva/lc7xIRDpEmG/8gXwltjnbItM5z1lTxDtSfKwYtyE1Q7uffVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oI55mziFV77AvyXM/+iSUJfX9eHHaHI3HXl/AbYC8sM=;
 b=naKV40/XtpI5jukS521jn/gNlo9yP3ZQ2mAaE4mnRYD9bMAOnImYU5mx5FSOwSeXuzaz9tiIidufGm4TaJ0b3X3DahSmGM6GTu9nYJEVkXxVgwt9FtheOCRdiRwj5ysHV8GldCyXeo+Ii1znAwJMM/8R2MoK8/mhhNAVaydROcyi3hVjatc11njZ28fmRs+ohCvnr298HMyAszAIz2UljwQu7fnzJ0Wi3B7TrkwYnoQRGFyY1TCwloHsLQIxG/zmYD4QCeaUjDtypwRcgDR0sOuBZuGQ+0N2SWvAfPr5zwmO+ij6qg2eByMPOWYQS1E6zTZgwNcmmhBvv6/+yEAAJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oI55mziFV77AvyXM/+iSUJfX9eHHaHI3HXl/AbYC8sM=;
 b=ld40VON+SnDO6QIWGaYOzXpT61ryZZ9wwC94JWv2qdIDYR3B4qPDWjLHdykUW4bMqzpg04EGf8bvSfkjCIU4UM3VYFV/XlluTITOPcop/AmzFT5bipi0DXtgEnWTHMvr+f6FBbrt1JerxTCqphUf1167363+AofbAnerZt9dp7s=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Hongyan Xia
	<hongyxia@amazon.com>, Dmitry Isaikin <isaikin-dmitry@yandex.ru>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH for-4.16 v2] Revert "domctl: improve locking during domain destruction"
Date: Fri, 12 Nov 2021 13:02:08 +0100
Message-ID: <20211112120208.74387-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0188.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501::27)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f2ebf86b-501c-4f86-ab62-08d9a5d44446
X-MS-TrafficTypeDiagnostic: DM6PR03MB3579:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3579EFA560789021CB6109938F959@DM6PR03MB3579.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:773;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: ONP9Hc4/g783GlrXxwYNSkPh5f4y62shIr0wWKFHc++WQoE8DFI6gqPOdYJ4XBFSoFX/i/dtjnPcJWBjrXKMuJ1ARSZJeHvHlMa2QyaLKSjwIlUgSSrhTmxU4PEpdg8k8aMFaqOUahgvotBy/SybnRrok/+ZyllLnogfoMpOsSbG4NTT4VqNdlH0jf8hHXAV3PjGVFPPwmCLssLxoHcKiH5q859nRk5znf2GsBzKo6wcmpNOE5bKg/lYnjaEkqEFjrhRNgMdsR8vvvmc8L+AJk88D2+7Eu7U58CyL1eUJ/42G5Np/xIKHoc3tEfEPFx7JXczXWuY+XmkqxNURBCk7MvmrPl2bmYEkufqPhswtU1hJ7n39GqOAeu/dQXhBJ9LHx4VKdnCw83ka9z5/7FXyR4kjrecoyHrEaqIOXbabZRbxLVfTUCK9C4k6AJo3+mS8KwJoLR8/CDNnRKP50yTpCzAHhn4IQuAq8DIWAZc6eVFUoyskWjOZnC0HXXGvywU5MKdNm0cHJ8+2VgKTufjvPs3HD+1v1uXLuyMhZkzleNgU/SuxqFmU1tEuWihStqMuq3IoGwTpslmz6Zzt6Evx+a5d3J17y3RWraQ7qrBn5mgJ3VYfzM3FfSMVe1+vmoGNO2Jo9W+LinNrk9zsA1YIxB2oVFWUrfsfG+oQ0QaOSd+FSf50t3qUWJbXGcWzi6g+b+PgzKY3tfdLcL8enHf0S7x0/UtDHt2nrHYlI0cvRvEBARgQJjqZwkuP1TDzs6ckvAXP/US9JBDw0YlYd5siTcWORtHfLCbBlQV/mOHCxc=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(316002)(508600001)(2906002)(1076003)(966005)(6666004)(6916009)(4326008)(8936002)(5660300002)(8676002)(38100700002)(82960400001)(86362001)(6496006)(54906003)(66476007)(66946007)(36756003)(186003)(956004)(83380400001)(66556008)(2616005)(6486002)(26005)(23180200003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RUNSQzNjcUR0ZUVrN282SXA2SHljY09WOWx5TjlScnFZU1dLdkJZZnlIRWVU?=
 =?utf-8?B?TUQzR2tJVGxBY29yOEtQM05GMEIzU0pVSFEyb3p5QXo3UXQ5bTZSVm9kVkdw?=
 =?utf-8?B?cHh0eS9KaXpyNC81dEJwZU9DY3pVdHF1c0FlMit5Zm01UTJCY3JzOFIyU0Q4?=
 =?utf-8?B?S2ZQVEcraXpxSmtjMHBKUndiOWNxOW8ybXF4VU1IdXZsaTNIa3krSHc4bGxD?=
 =?utf-8?B?YkJSTDczYS9SNEx3MnJMVTlxYmpiR2NYQlk1aU51MWxUaHlSUUdONmtIem5R?=
 =?utf-8?B?VTFhT2JKbXBCYWd3SWRsTTlxUHBRNFVNZlZaM3Z1TkwrcjlrSjRVOXFzKys0?=
 =?utf-8?B?RXM3NmFMUXBha3R5bVp2MlUvaC9ScHkxNXdkYkFaanhZRldXc0J6dmxuLzYw?=
 =?utf-8?B?OWJXbUtxc0V3emFhQ2w2dGZ6RjljZGg1QStuWkFaSFh0UXVOOUN4L3JIUTBs?=
 =?utf-8?B?Rzlxd2hLV01VNGVSK3h6QVROL2cxQ0x0WVFPM2JXekd0bnplZE9US2RZdGQz?=
 =?utf-8?B?d1o2TWFjZ1ptVXFFdEhtN0M2bFlVRng5dU9hZkxDNE04d0M5aDJHek1sMUdC?=
 =?utf-8?B?NGNNMTN5VDJPTEd6K3RTK3R6VmxHeTA0TWhnZlVJU1Q3c20yM1VZQ2pFdWxF?=
 =?utf-8?B?cmF5RGxjTVVQekJ3T0svNzV4ZU5oMjdiYTB3V2dDOVdoNFBDMGliM2Nwektn?=
 =?utf-8?B?cjcyVk5LWFp1L0Z2Y0lXMHhsak10d05XdVNHcXhFUUZJZXpUWFhlNVNoNCsx?=
 =?utf-8?B?eE9vSzdWQlhiaDBNeHhvdEZ3Z1hNRW1hWFlSaGxVU2h4c2M0MkluMUdiUWF5?=
 =?utf-8?B?NDVreW9BRUcxcGhmN21oMG9HZ1lZcFJRTXdDR3JjTW1lYzg0ak4yUHVRanJH?=
 =?utf-8?B?QnVsUGhmNlp0QXJOL2Z3NUZjY2Q1dFJsZEZKRXpJZ0I0bkVOS3R1TVdWSndB?=
 =?utf-8?B?R3JFbkxsWVhvTmJ3Q0hUSThRUTg5Y1hpeUtFY0FkalM4SnJSd2w1RjdnNkw3?=
 =?utf-8?B?Q08wdkk3NHZ5RTJDRkpWRkd1MmlCRWRKd3NYMHU3ZlpCY0Ztam5mQjdOeGJJ?=
 =?utf-8?B?WmQxb2o4R0FMbjQ4TnEzOWZZVmJtZm1DcUVTcGRIK3VVbkVUdk9hUzFxNXZN?=
 =?utf-8?B?bE1FQStQenk3MzlibjVscmw3TnA2cVRqR1k5RHpXMXNvTHJpODZLYWMrTjAw?=
 =?utf-8?B?UEZWbjQzQmh1SG9XMWdleHJPT0EzZzF5ZFI3SDBweHZZeFdzQUJwZjk4U01w?=
 =?utf-8?B?cU1PdjJPNEprWkEybkx1UkFUVjBGK28zMXovcHJHM3ArV1lvVzltSmtXeFJS?=
 =?utf-8?B?ZzZzUGpTdER3M3JoR0RDTjdvSG5FNGRKVHlNZUF0cTloU0hVSmV0TTVQaDd2?=
 =?utf-8?B?RXZkZ21QMk9ZSStOTkpodUx4VVZtZWFCdTVSSmtVZDRtcWJnOVVmQVBLdUhr?=
 =?utf-8?B?VnNSckpNR3c5amZGTldRN2dVK2pUM29KejZzZURGS0FMbWFzNFJ6T1cyNno2?=
 =?utf-8?B?eHk0RitTSVpic2dTa3VGUTRCYjZwZUYxVkNQN2ljdjlXM051NE9MTkt6YUhh?=
 =?utf-8?B?RFljN0N6eEc0dXBEL2xkdDlpaHlFQVl6N1A5NkhMS2hrVGhPRm1aY01HQW5h?=
 =?utf-8?B?blJUbjYwd29paWlOS0kzRmV2Z0lvdjEyWTdGcStWZVRGV3ZGRGxvbFpaV3pv?=
 =?utf-8?B?USszdmljU1pMM2Rmc3dJaDNJdlp0U254WnRCeGZpbjVpTkEzdTVVWGxOaitD?=
 =?utf-8?B?UUV6TmVpQWdadU5JMzZUNkZJTnhDbGtQendLUXZtd013WW5hOGs3VDU0UjFK?=
 =?utf-8?B?VFpsSk9XOHNZVEFnbXRHTklTQ2hZSXpnWWlpTENkUm9uOGhBcmtoMldJRXFu?=
 =?utf-8?B?Tml0Y2tCSjVRZGx1QW51dEFlaUNSbmFMdFlPSlhJQ1ZoTnpqK29kcWpRbFRE?=
 =?utf-8?B?d0Qra3NBREovY0ZzMCt0eEN6aVVSTTJmNzRabEZNNnF2U1F3RGNBVnNtR1pq?=
 =?utf-8?B?RHFjWWFYWVNyMDlZNGs0bW1uNWNLMitKL2R0eU45RUJvZURKanVBSllYQjI5?=
 =?utf-8?B?aXRnSS9yOXRqajhWc3R0Tk1ucWhNZnpaaEcxdllndzBScDBodGE4Wk9wT1Nn?=
 =?utf-8?B?Z2FrU095Z3c0SVhRNThIcC9XQ0tDNG9MRS90TnhWVFF3US8wZlh0eEtwcGJp?=
 =?utf-8?Q?aHV8xJ2aSkm9BKP6jEpJ3Xw=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: f2ebf86b-501c-4f86-ab62-08d9a5d44446
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 12:02:14.7733
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MaVSzgKNpkHVinkW4xTv/LaqsC/GvXrpRFn5+3IctLUtCwszSZdw1/MKNEa32WH4Plx8Dq0Rd25osebNGEiLUA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3579
X-OriginatorOrg: citrix.com

This reverts commit 228ab9992ffb1d8f9d2475f2581e68b2913acb88.

Performance analysis has shown that dropping the domctl lock during
domain destruction greatly increases the contention in the heap_lock,
thus making parallel destruction of domains slower.

The following lockperf data shows the difference between the current
code and the reverted one:

lock:  3342357(2.268295505s), block:  3263853(18.556650797s)
lock:  2788704(0.362311723s), block:   222681( 0.091152276s)

Those figures are from Dmitry Isaikin, and are gathered after
destroying 5 2GB HVM guests in parallel:

https://lists.xenproject.org/archives/html/xen-devel/2021-09/msg01515.html

Given the current point in the release, revert the commit and
reinstate holding the domctl lock during domain destruction. Further
work should be done in order to re-add more fine grained locking to
the domain destruction path once a proper solution to avoid the
heap_lock contention is found.

Reported-by: Hongyan Xia <hongyxia@amazon.com>
Reported-by: Dmitry Isaikin <isaikin-dmitry@yandex.ru>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

Since this is a revert and not new code I think the risk is lower.
There's however some risk, as the original commit was from 2017, and
hence the surrounding code has changed a bit. It's also a possibility
that some other parts of the domain destruction code now rely on this
more fine grained locking. Local tests however haven't shown issues.
---
Changes since v1:
 - Expand commit message.
---
 xen/common/domain.c | 12 ++----------
 xen/common/domctl.c |  5 +----
 2 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 56d47dd664..093bb4403f 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -917,21 +917,13 @@ int domain_kill(struct domain *d)
     if ( d == current->domain )
         return -EINVAL;
 
-    /* Protected by d->domain_lock. */
+    /* Protected by domctl_lock. */
     switch ( d->is_dying )
     {
     case DOMDYING_alive:
-        domain_unlock(d);
         domain_pause(d);
-        domain_lock(d);
-        /*
-         * With the domain lock dropped, d->is_dying may have changed. Call
-         * ourselves recursively if so, which is safe as then we won't come
-         * back here.
-         */
-        if ( d->is_dying != DOMDYING_alive )
-            return domain_kill(d);
         d->is_dying = DOMDYING_dying;
+        spin_barrier(&d->domain_lock);
         argo_destroy(d);
         vnuma_destroy(d->vnuma);
         domain_set_outstanding_pages(d, 0);
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 271862ae58..879a2adcbe 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -497,14 +497,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
         break;
 
     case XEN_DOMCTL_destroydomain:
-        domctl_lock_release();
-        domain_lock(d);
         ret = domain_kill(d);
-        domain_unlock(d);
         if ( ret == -ERESTART )
             ret = hypercall_create_continuation(
                 __HYPERVISOR_domctl, "h", u_domctl);
-        goto domctl_out_unlock_domonly;
+        break;
 
     case XEN_DOMCTL_setnodeaffinity:
     {
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 12:07:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 12:07:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225187.388888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVLI-0004Ol-4z; Fri, 12 Nov 2021 12:07:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225187.388888; Fri, 12 Nov 2021 12:07:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVLI-0004Oe-1x; Fri, 12 Nov 2021 12:07:40 +0000
Received: by outflank-mailman (input) for mailman id 225187;
 Fri, 12 Nov 2021 12:07:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlVLG-0004OY-GI
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:07:38 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20242f86-43b1-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 13:07:37 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2055.outbound.protection.outlook.com [104.47.14.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-16-xUAiIvqiMLmp02gbZipLsQ-1; Fri, 12 Nov 2021 13:07:36 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5470.eurprd04.prod.outlook.com (2603:10a6:803:d6::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Fri, 12 Nov
 2021 12:07:35 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 12:07:35 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0053.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.16 via Frontend Transport; Fri, 12 Nov 2021 12:07:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20242f86-43b1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636718856;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=NrgMWxmHbg2r5iYGgbBuNgdU1Cg2JT2699IMoQ+Sqvo=;
	b=IVEtxb4YSG3k3z+MBhEgLz8kB7n3/eBzQO61wx9Dplcj2uJ7G1FF6a4Zpy2p8LDr7LJzRE
	dJXddtWwC37dDE96EdU2cTSWPX2pNaZnXFfwzYdTK03kz64G++cdiv9AK/yxr8EdUcSREO
	U5b+HHsTjts9fBBDqoOEviHaeTPiTH4=
X-MC-Unique: xUAiIvqiMLmp02gbZipLsQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DeJKP9gdqUYbmMCxSLSPJxec1XQRz3AxiM3r9eG8Zx8YFuselYKoqZ6aqwGfwOiUGVXH9CJ3lbWByfYUZvgkvZMjkL1lkoe+3IW2jv7KLukVZCehLXgO4LmV1wo1VBt6YJRjd1xIEyvkGDGsDw3PDu+eZQGm3DO4GXs9/BZLz9g6MDVrDUF92ZHMjlditJa0S4intzUnLo+XJk8XVuYKAuqK4GBPIX96Mkkyk3eRK8mLOJXeRKn37OcoFCAAJE67tNL0kVQT1FOLKoPub/j8sfPQFgOa9M7pSA/TDsc7QEcYdgZGh90mYzVDvgvCaIqmUuXOwcNckn8Q4x3+RjrRIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fhETlBSLyVyFNaIXyy2Nb08GiUL5eHqgjOwrWDhmVxw=;
 b=BVtdhX7bIcwvtR2Cl4Ua1VbFdBCcr11VbG60t6sY4cp73cFh7jzEN14vVZcke6DreWmDf3y6ZFoULIVuDkD+8DPKgzXx1G62ZUppJs77HCU8GRPvxfuiU+exkyYfl8+dwd1ZuL5xgQWt+4aHMJWuE5Lb1iPecpIHPp0KOYnJJJdjp/jC8s5AmOkZth3pvPz+rTHrF14WtHA1SgKV79g7KF15UfIrIrrU2O51LtS4WMFqmyQxBiMiCmJqahiLZ8IlSavlJPNNMJ+Cj75svFTKuOJniONkOPtvSVd8DTXoEFi55+iq7kziH+aVC2oqleybZrSm22dUkv0fF1Z4IHn+xA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6c142f50-84f2-b499-d486-61690cdc2629@suse.com>
Date: Fri, 12 Nov 2021 13:07:33 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 1/6] VT-d: properly reserve DID 0 for caching mode IOMMUs
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Kevin Tian <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
 <YY5OztQdQMXJSG+u@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YY5OztQdQMXJSG+u@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P195CA0053.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:87::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e6904d44-bbce-4273-8ff7-08d9a5d50326
X-MS-TrafficTypeDiagnostic: VI1PR04MB5470:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5470B62A09BF83271C59D1A3B3959@VI1PR04MB5470.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NGG2ncc/gKE/MPDfnSxHWe4JMbhjS/rtYTbqcabGhubs2yub2qyu3h6xdEhHS02fQ1TxtWX1Br3DkvSJ+6s+7INulT2QgcvNMaK3M4eRWva0MrQtCebMNqqyA1jazNSo0C3jgHmRgCBsA7TFtnLTIOiJGtteVVqc/iB2P15AOOIi14VTPj//vYt6JZY1B/3inCHXhX/1eHrQHLCMl9a52REfL5c0pH9OubvQ1mh6U8it7I4WDuKUw3S8jiJxq3ni02V8rhCM+YajIphV+iIKhJKLv44VqTEMP4HH1MdcHNS1XjGKpHKzdaUIsd2i++7ximYmpX0QBDuAoz9WBRMzHQ3WPrRNHDLRAlprnywXobIAx2l18WTtL04kDpwGvhuVuJ3001Cs8iVYmom6bd0vjuszBS0XULVFqyDXBh7diMHooHweTcu4ysVIYftYzGQMnuV7jgS9ifPSarIXXpBHNPwyR4PMFNTXSbm5j3HzWyYPekrwsEfGEQRReX5Wx8xx2xtf/stWx7HmRUBFZ9skTDFQNRtyj91hW7ulUHvFr1KQe331phmv58+0d1Vs1cZfauxKBFir8a7c0v8Rvd1SOMg1yM2gJ6Jv1+6LdBuJp6gyPk5OMUB5tUPQ+Y3/JujlFtls6rKwKlRznxtWQgLutmIbLTG9fGRevI6Lt4MlJAHbs9m99Kh7VgqcbpM1neY+A8qMZPtIRtibqDAJMtq04w/ki6vJcRb7YpX0Va5F5K8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(8936002)(956004)(31696002)(6916009)(86362001)(508600001)(2616005)(36756003)(66556008)(66476007)(66946007)(6486002)(31686004)(54906003)(316002)(26005)(186003)(4744005)(38100700002)(5660300002)(4326008)(53546011)(2906002)(16576012)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?7EdKYHxYcNXFHUDPSQuwnyFHTzMpXbK52fucAhxWh0I8k4KcAjgn7loNrEvz?=
 =?us-ascii?Q?ZMIEHPqFQJrB4/1HjAy1E2TGBS88msc6ZU4GzIZShFUWIpxYsjPahlm4lkbT?=
 =?us-ascii?Q?mpqAQIC5sIKlIBseDUx7Lvo+zGnghcYfq+vn2IPA76CRxj0WsOhdNAPSWp3r?=
 =?us-ascii?Q?HnewgmCXZpj4QXh75F+rTJ7WEnYnUgIY2A69wZEvrA508+YooUZI3GpRyg/e?=
 =?us-ascii?Q?Y9hWWpoFCf7Xvt2x0G3QebM9UkUBZ83qOv9HHYw9WbDcBCiTVmIxRyoNxoPT?=
 =?us-ascii?Q?POkwUg7Mt0nyrJhAz/HgiGk/0PZ2YacNnwcjJFm2sqTysassxJfsmLBtwsv3?=
 =?us-ascii?Q?IcWITSVcjHe9nGqXTjApdCu8cTJ+WrXt25X+V9rYpoLhCQpp8j8glErtKsEu?=
 =?us-ascii?Q?V1eiExxl+7liiJU8VOiZ5xFYpqSQzQ7J0xUqIG/0Jf/EyRMbeisE8wobDRvg?=
 =?us-ascii?Q?wc3PEdgWSzLw8rBGHmJvcKfREdTO+nuZ8EaDUQs53iFcep4rn8fxXkuFUPgd?=
 =?us-ascii?Q?Ggtibrj2qXBdZYV6C2QOfIS8C/tuP07tDBvCaQSCvHzEpJqzXGaFoGL5qQ4K?=
 =?us-ascii?Q?ftj63XRiIRAr3D9k9mIJS3N4e5ka1DCfGwSsx0cnygZc0mUBUu6GV6+mz7+2?=
 =?us-ascii?Q?DcbHJyuWMtfKeqfkRaQPzyYGVbhROsB7xeqb9hgckkx2ELz+wgPLDVeghYyL?=
 =?us-ascii?Q?yeZMMXWJcEjr6wsk88cpXeDmVCt/Mc6i2P9lA5o3uxb+7uUd7y9Y5D7saIlL?=
 =?us-ascii?Q?99kt1CoDmpwxaLJztSptLcmKxqkpi+97lXJ9IvQNg56ZMvH3ozgu+kEjToO+?=
 =?us-ascii?Q?friTlWtvMtKeER8BToT6EMdbBjqmLv0I4lxFSiHxCYom99ngbitLs77OH2r7?=
 =?us-ascii?Q?UuBtPWcfIPKIXtliK8h/k9613j3HGYBd+xi+D74W4dZl0aoS6MBHXnOzLYVt?=
 =?us-ascii?Q?hUzssZAY9WBoQdUSDqGn+f4k3Y0lPyYIOpoNCVecooonnuzHECtJyiEmTDW3?=
 =?us-ascii?Q?QfPPUm1u9KGyGwGsUx5O/RI9qpxBXHCsvki9x/0Owtel38noiruQx2cNhsy8?=
 =?us-ascii?Q?PpgvC/pL9lYz13HYlIoTRtii2rmP0VOsAWDgNREuJe1pYH23bjoYPX5lQbSi?=
 =?us-ascii?Q?Y0mfILBLhjub4HZbh5jP6inJgaRO9h7G2SXdFZcymW/4F88wj2aCPMbk5h0S?=
 =?us-ascii?Q?aSVSd57Hu94qcpc82Pykt56y8xEffwdbYzr48cPPyZ5fKjELdhzl6fQPyNjm?=
 =?us-ascii?Q?/nElz3iRicklZOLCJZIrP2H+O+f3gUmZjpkfaTHZrLq+irdlrtl4CJqiBuks?=
 =?us-ascii?Q?gg80PJadun3bDBB9snXLfKZ9PS15ORLqiTeJL0S5mOW3lOFzL6+D5lSyfXbM?=
 =?us-ascii?Q?KeRrXKvW6iRmnJuObfN3SMkyfhyL/pf8wTBDRh1KQVFDqHUU6JChP3FiWv8n?=
 =?us-ascii?Q?r8gK5HOa8coEm+9phvjFuA9KALN1KByMi6gAdqHuPITtzomuwbuK6gcUD8VV?=
 =?us-ascii?Q?GnbnbX8XAtOKc8v2Xqmyhlu80YqCVJZedJdYVqKCWJtsqPQUfOgsGSQL7VTc?=
 =?us-ascii?Q?krGmJ5ekw1IjqOvbLelBLqFMCrNMuJ9VVTgcVeKEw5498Q2nS1YjGQRZCjQH?=
 =?us-ascii?Q?vyGg2vwAOVQvXktAjAyhpv0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e6904d44-bbce-4273-8ff7-08d9a5d50326
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 12:07:35.1450
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qNAHic2MCKMUB8Ctd3iruobJUEqD3FIcmKwaHMJgEyLwrFql+f+3XoCN+/M1BzBo54sOIIlVnSsCtMWm/cMDoQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5470

On 12.11.2021 12:23, Roger Pau Monn=C3=A9 wrote:
> On Fri, Nov 12, 2021 at 10:47:59AM +0100, Jan Beulich wrote:
>> Merely setting bit 0 in the bitmap is insufficient, as then Dom0 will
>> still have DID 0 allocated to it, because of the zero-filling of
>> domid_map[]. Set slot 0 to DOMID_INVALID to keep DID 0 from getting
>> used.
>=20
> Shouldn't the whole domid_map be initialized to DOMID_INVALID to
> prevent dom0 matching against any unused slot?
>=20
> Similarly cleanup_domid_map should set the slot to DOMID_INVALID.

I don't think so, that's the purpose of setting the bit in domid_bitmap.
The problem really was only with setting a bit in that bitmap without
invalidating the corresponding slot.

This said, I can still see value in doing as you suggest, but as a
separate change with a different justification. In fact domid_bitmap is
kind of redundant now anyway; aiui it was the thing that existed first.
Then domid_map[] was simply added, rather than fully replacing the
original bitmap.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 12:19:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 12:19:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225194.388899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVWU-0005qO-6e; Fri, 12 Nov 2021 12:19:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225194.388899; Fri, 12 Nov 2021 12:19:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVWU-0005qG-3O; Fri, 12 Nov 2021 12:19:14 +0000
Received: by outflank-mailman (input) for mailman id 225194;
 Fri, 12 Nov 2021 12:19:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qdsq=P7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mlVWT-0005qA-7B
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:19:13 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bcc91b78-43b2-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 13:19:10 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bcc91b78-43b2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636719550;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=PAbjMjMW4IHkin9JCSoKGyU+8pzQT2EpzzVqJ1o5kAA=;
  b=AdPNIfxqIrkcKH5FK3VXJkBvrvh+1Yqoonu/LQUcocHU98vypN9Sjb5f
   W58ge9fUy/M5pf72WYFPU0Hvu9LMxzx965+wcuX9rn+InrVnMOqV7ikCd
   GvlH/n6syPzPOn+S9cxa/3DXzA3t1RHE8jvV9mGR+glAXaZiJoYFW2hap
   k=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 8/2oTWwFotOhAaEPX64ICf/VTYpVqPDuwK5Lwq7kpSlDjIPBs0whs0tSSJT3O8+VVx2UjUAmFb
 Cx8I1eqjKceDX7WZ5dqY85q+If/0hy5NAMtHZLxXN1xz2VkASOYKIcDCFk/+OqFb9cSUokjArH
 +zbmGSDudzyZ4PJYQNU4JjmBc8K09/CMtLRb9I4qt6q4KVDXoy5wi1qvbC1v+/yAAT8t/8LhAw
 yDsV8JUoJQuVA/mUid5xxuNwHEax51Htr9jWnyTf7FAphTEcVk1BU+RQdnNsekYEAULzdz97c8
 KBgbSUhf07CpW2ySmLsUhYKs
X-SBRS: 5.1
X-MesageID: 57640259
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:FEyCHKPpiM2YIurvrR1EkMFynXyQoLVcMsEvi/4bfWQNrUoi1mcEz
 2RJXz+GOauDYGb3ctxxOYq18hwDsZOBn4NnQQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Es5w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoxqGvfth2
 IRQjsPuFwcbFIaLwOAnbiANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/iVu4MAhmph7ixINdP6Y
 fcrczBsV0nnbhlTKE8IFJMBguj90xETdBUH8QnI9MLb+VP7zwFv0b6rLNvcfPSLQ9lYmgCTo
 Weu13T0BFQWOcKSzRKB82mwnanfkCXjQoUQGbaksPlwjzW7xGYeFRkXXluTuuSihwi1XNc3F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc/VfMcYq+FCQ8fWKvQarLENDFjp7VeVz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVnl
 CJZ8yR5xLpeZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxk3b5heImS4P
 RW7VeZtCHl7ZibCgUhfOdLZNijX5fK4SYSNug78MrKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI/cEkJAP7N27IxPYtjmqVejODT+
 X+hHERfzTLCabfvc21ms1hvN+HiW4hRt3U+MXB+NFqkwSF7M42u8L0eZ908erx+rL5vyvt9T
 v8kfcScA6sQFmSbqmpFNZSt/pZ/cBmLhB6VO3b3ajYIYJM9FRfC/cXpf1Wz+XBWXDa3r8Y3v
 5apyhjfHcgYXw1nAcuPMKCvwlq9sGIzguV3W0eUcNBfdF+1qNphKjDrj+9xKMYJcE2Ryjyf3
 geQIBEZueiS/NNlrIiX3fiJ9t77HfF/E0xWG3jgwYy3bSSKrHC+xYJgUfqTeWyPXm3D56j/N
 /5eyOvxMaNbkQ8S4ZZ8Cbti0Yk3+8Dr++1B1g1hEXjGMwarB7dnLiXU1MVDrPQQlLpQuA/wU
 UOT4NhKf76OPZq9QlIWIQMkaMWF1O0VxWaOvahkfh2i6X8l5qeDXGVTIwKI2X5UI7ZCOY84x
 fss5ZwN4Aulhxt2atuLg0i4LYhXwqDsh0n/iqwnPQ==
IronPort-HdrOrdr: A9a23:HvUYEqFWSDg0SiZmpLqFe5HXdLJyesId70hD6qkvc3Jom52j+P
 xGws526faVslYssHFJo6HnBEClewKgyXcT2/hsAV7CZnidhILMFuBfBOTZsljd8kHFh4pgPO
 JbAtdD4b7LfChHZKTBkXGF+r8bqbHtms3Y5pa9vgRQpENRGtpdBm9Ce3em+yZNNXB77PQCZf
 2hDp0tnUvfRZ1bVLX2OpFDNNKz0OHjpdbDW1orFhQn4A6BgXeB76P7KQGR2lM7XylUybkv3G
 DZm0ihj5/T/c2T+1v57Sv+/p5WkNzuxp9qA9GNsNEcLnHJhhyzbIpsdrWetHQeof2p6nwtjN
 7Qyi1QcPhb2jf0RCWYsBHt0w7v3HIH7GLj80aRhT/ZrcnwVFsBeoF8rLMcViGcx1srvdl63q
 4O9XmerYBrARTJmzm4z8TUVjlx/3DE4kYKoKo2tThyQIEeYLheocg050VOCqoNGyr89cQODP
 RuNsfB//xbGGnqL0wxhlMfheBEY05DWitvGiM5y4uoOnlt7TFEJnIjtY4idixqzuN6d3FGj9
 60epiA2os+F/P+VpgNcdvpd/HHQ1AlcSi8Ql56Hm6XYJ3vG0i94aIfs49Fqd1DRvQzve0Pcd
 L6IQtliVI=
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="57640259"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cCCIgJh03ZBX/KjUUSNOvlzLHsf+2Oy1IntFiDWLHmp5o9pelxH2xTUr7vmDeIoYJkHsJYbcv+7L+d36zH/SFbOriUvMV+kDyJKoS6ie7G3ZEgdOtTbw6dtmxUiAmya3Djczfd+1skvuVNwvG4R6nqchsh5d/11HNilJxEj3U+QQDKANjGzSnJ/TRScdLmHNzCkBjySAeSsOycsi43S4+JgNEOivsIqstmSqguD/UzDvDhrLNH4ueqGJ+mAc8mlrCqeO458pNBaapkL35MfAuhLrAwoCho8cNVCwqoqjf9f6AZQGRwJniBdRB1HhzdsdEEPNN+zQ5Jx6R66Nb+fESA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EIutV54LE+Q+hlUsEj+2spGVpbShPkoGYHy5HFs0mDg=;
 b=DLCQ9Yy0vcPEI66qPu1dZrUZcJ7QT9314L6PJzh3R7Sb6No8tLupnIZqlxlYBpI6CBogXwx1KOsIPsGPidMJcdiRJd5d5TXXJtMDshjUaJvck3ROLFI9Fj0XYAuY2gMDNx44JyUqmn/tJc+esUIxcU8++hmNlbOn/uRxSWnNFe6b19frYjKb3uJ2MTSjFKvkNV+3qy3I0AY1zA6rKSuUux2/3WsIa/6ig8tHWpZhs80ytdD4CWiPYBK5hwh9EYePzpndPMeuNJi8x9gqvqb4jr3dnE0kBuYpZGF6qzUeIG8O/jyD4YUyKH96Qi+7phGjp4nxpiFqf5TD5zPBMpGCWg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EIutV54LE+Q+hlUsEj+2spGVpbShPkoGYHy5HFs0mDg=;
 b=qwrqjly8LcS/Dmye8dPsjM+gx00ujODZngMkHeiCczSmd7lqNEXGbxCDomEqd4UVsCZby9lI+gZX9zabfu51zmkkZQlEAdDiq8Ffgrq1gRfGgGeLKAJgL3oEsD0LTKpuIIGvOkclJbmyYPN1fj32HloG3SvL7cnepiQu5GGEitg=
Date: Fri, 12 Nov 2021 13:19:00 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Kevin
 Tian" <kevin.tian@intel.com>
Subject: Re: [PATCH 1/6] VT-d: properly reserve DID 0 for caching mode IOMMUs
Message-ID: <YY5btAKqy85VDDT+@Air-de-Roger>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
 <YY5OztQdQMXJSG+u@Air-de-Roger>
 <6c142f50-84f2-b499-d486-61690cdc2629@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6c142f50-84f2-b499-d486-61690cdc2629@suse.com>
X-ClientProxiedBy: MR2P264CA0144.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:30::36) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c4d104c1-3fe7-4969-fc2e-08d9a5d69df9
X-MS-TrafficTypeDiagnostic: DM6PR03MB3580:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB3580354BDBE482FEB12313698F959@DM6PR03MB3580.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Vj1QdyFPt9XxPRmTnpN0w1do/oGLGLumAKIbOykT6yAgr/1P5dPzQqbcSyP81l96I2uYhulc6MyZtnnu3dHiYGntbzpFxfh/id4L7wrwC+9KQsjQouw7YP5/kcnZpcylC+BUSt+K6+YBzx7PjoOV04JW/wTkmfzc12Nz6IYW5+dZVvcoKel1nETf5E9nYBJg44j6OwTPc7aL2vS4ToyacRx1PK0Hn/fxuzpBHzsTtaA6En2t9AnCQI2fV27n28mQcN1TatY+6yEUwGLeqxZt8NxFr4Br5gBcWv2g2y4iPGQsxDR8LvsVqNWMAZ8+DFT1Z2rzASFo1VSvtjNUI+74fEv5MGHwrRt90P35+bxeZ7Til9Hbg7CXZNlVXFalLc+Y++z6E2QSX9BY4fpxFWu9y0H+ujpRBX4N2jj+mvhDh7FmIA/bR5eEJ4rD8fOxVb15fPCkaX8Pw0WC+6FHQ/+Ac8/w2y5VQ25IvekD2UDWtCeORWkX2YnsFhTiEBDP+TyGCVG1sI6zME1mZdThaAgCf0nwnnZSZhUyWZYALxkuC2A4TLtyfS739RsewxT6uWcr41M9Af+VtmPf9nSqFwYnjm12CyJOzYIofiMmSIvF2vZzbNLqxBbc9fPn6PBBaqRlLaNV449u/zMmE4DtOoJ+iQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(86362001)(9686003)(8936002)(2906002)(38100700002)(66946007)(6916009)(6496006)(6486002)(316002)(54906003)(53546011)(82960400001)(85182001)(26005)(956004)(186003)(4326008)(5660300002)(66556008)(33716001)(66476007)(8676002)(508600001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TnN3STdpdno2aW9UdFVld0JieERXNnZNMkJHYUFnWnVFcWRQTEkvZ3pWelJm?=
 =?utf-8?B?U2tIbGd6ZHVKQmR4cVpPcC9YK1YrNkY5MkNHSnZaaHVpcURFK0Fsd2ZnY0Ir?=
 =?utf-8?B?dnUrVVRUVE5KUFFtL1RTb0Z6c3RoZHo1OFYyRUxWNG9Hb2RTaHBSUy81ZG1n?=
 =?utf-8?B?KzBXd2VxZURjSllna01QQkhxUW80TnNZRFdoUk9tNzlPT052bmtRQnpWTUxw?=
 =?utf-8?B?WlJ4LzRRd1hvejB1V21ZT20wdCtheW9KcytNckg2bm1rOXl1ajBNakhpRVFI?=
 =?utf-8?B?djl5L1FDYWNDb0Z5RkRQS28yYjhCaFFHcXNPTGNtdzg5TXRWL0VHSHU1RHhr?=
 =?utf-8?B?Qm1OSzVObGJqbEVIZTR6ekdDd0lxR0VDWmJlMVdnL0s0VVd1VENQazF1SHd4?=
 =?utf-8?B?NThhMEEwdDE4TUF6TGZJVHgwblpzR0VETjdkYk0zOUFCckY3cmQ0Mnk5YUtO?=
 =?utf-8?B?RHRKbzNIL1d4ZTB2NjZJdk5tQWhRK3orZ1Vpdm1vYkZPZ2ZKNGdGNVNNdDA1?=
 =?utf-8?B?R3VqTi9oYlZsOERKNnRyTFdvNFNQY293RXExdlplWUVlRE4xdXpPTjg5S0hO?=
 =?utf-8?B?d2I5MGUwaFZvSG9SV3YybDZlSzF3a3dMbHNnSWtnMUNFbkl3TkRrZkVtMEtK?=
 =?utf-8?B?eVFpN3hDZXRmT1gvaWZ4d0Ewc0FpNVB0SzkzNWVSVzBaNjBtY3l0TmhwVmhT?=
 =?utf-8?B?VTRzZUdXbU1xWXVObHNaQjhDRkNUd1JSV282dStGVkxEdzNOU2NwaXpQNlN3?=
 =?utf-8?B?cnlBZ05uTlplNDJ4WGh3WG5FV01VWjlURURmMmViUGsxV0JjTkNhN1lOUzlD?=
 =?utf-8?B?R3lyMVBqSWxpMTJxNzJlNVc0OUJrUXBBOU95WTRyQjBFM0RiS3p4YkpRbnl1?=
 =?utf-8?B?WFRjODBBQ1pqV0M0c2JjZmpJUnpFY0gvVXVXRXVsSFFHUzloWmZrME9kNHcz?=
 =?utf-8?B?U0ZiMm9maXNoNzBQTS8zM1hJNjZKQXdBM2kzSFFSUXpVaHRGdTZBS1E4RGZ0?=
 =?utf-8?B?bGtqdCtsak9EM1BVRWpHL2IwNlB1R2s4aG1yOXZiaTI5M3JzVEdhalFBaHVl?=
 =?utf-8?B?cVA5OElyK0JaeUdmdzdXSzd1TXZuOTRJQTNmNkQ0d1VZek5Hc0NxMEk0akNV?=
 =?utf-8?B?elNoa0VIVTlKNzF3dWltcTVRRkRSRno3R1BLME55cHBNOXovTG5WV3hZSVJL?=
 =?utf-8?B?cnJqYURnNU1yOXo4em9aNS9FUGV3NzFjZ2VnOURlMkhDU1RpdnlWV3pjYnhE?=
 =?utf-8?B?NStyeGdMREdEeEdkVXpHcC9FU2VnRDI0NTB4RHIwOUhVYS85NkU2MmNKWmFm?=
 =?utf-8?B?LzlxQTBZbURjK0RSL1hsdDFrakQ5TnF6TUlUYk9CSjFRN3p2SXRMSnkwOTht?=
 =?utf-8?B?bkp5WUJkUkQxUlNSaVNvWGd6bEs5TWFWSkd6U0lsZVg4NXpGdUt3b01nQ0cw?=
 =?utf-8?B?bjhkckIrWER0NGIrSStxWlhoVFVaaHVNdzFmZEhKQ1IrMU9qMWV2M295VXVG?=
 =?utf-8?B?WkxnME0rRTlLa1RWMVZyS1RqR3lRNG5Nd29hRVBEQkRFSm1YS2l0VlRENC9v?=
 =?utf-8?B?NFd5TFBJTmVjbXJHUXVRbE9wMGJtL0I5U2NxdWFzbmJUZzZtSjRBRFRYUGY3?=
 =?utf-8?B?M3dhcGVWTHl2RDdjOHBkQ3hKTEZYS2RBUzJCRktwUmxVa2JaMWlTOGwxZThq?=
 =?utf-8?B?M3h1MFptQlE5cVQ0SlBhTzFwNVYwKzBocUtnUDRiSlJVa1YvRjMzSmVTR0FF?=
 =?utf-8?B?OGZpU3AxS2NLVkoveUVMbUw5aGFucVVjSUo2UW5YY3RzdkJJaHhKTU9wVkNJ?=
 =?utf-8?B?d2MzU1g2NDNZcnlIZXRQSXZvVmtISkpKVFIwNEpmL1hrRnZZWUs2NkdTY0pD?=
 =?utf-8?B?TzRYdldHcTZNNmFzeGVkYk9XZFBVNnB5NWxMamJJV3hMYzV4M0RlU3hoL3JN?=
 =?utf-8?B?VjFaZ3JmWklXTmNjMXg5Wnowdm15WnZSSTF2MFdkSHVlWjlJZ21qbHN6Vllv?=
 =?utf-8?B?SVUvamR6L01LQ21pVUFjb3I4eUtnSGtGNGpuUzNsUmdMWjEzc3FsaG9xOUFl?=
 =?utf-8?B?UE9nUmZKSnNlckU2NmdKS2VoYWtGMlE5Y2ZUYWg0QTdSM1VmekhwOXZkUE9F?=
 =?utf-8?B?MnkzR2N2UlVBejJ5SS9mcHVoK1kvcGNkbXdtNlY1eEtuZk1na1VQbFloN0pr?=
 =?utf-8?Q?IEuNcc60yZ2y8QcQVl1tCls=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: c4d104c1-3fe7-4969-fc2e-08d9a5d69df9
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 12:19:04.2362
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8XAbwChC8jYoVZIyZKMwOhOlKgksm1RekdSR4MFpeAc0/YZnyCxZoeNjTTStq+P7enFe048VkDq8QGVYYErl+w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3580
X-OriginatorOrg: citrix.com

On Fri, Nov 12, 2021 at 01:07:33PM +0100, Jan Beulich wrote:
> On 12.11.2021 12:23, Roger Pau Monné wrote:
> > On Fri, Nov 12, 2021 at 10:47:59AM +0100, Jan Beulich wrote:
> >> Merely setting bit 0 in the bitmap is insufficient, as then Dom0 will
> >> still have DID 0 allocated to it, because of the zero-filling of
> >> domid_map[]. Set slot 0 to DOMID_INVALID to keep DID 0 from getting
> >> used.
> > 
> > Shouldn't the whole domid_map be initialized to DOMID_INVALID to
> > prevent dom0 matching against any unused slot?
> > 
> > Similarly cleanup_domid_map should set the slot to DOMID_INVALID.
> 
> I don't think so, that's the purpose of setting the bit in domid_bitmap.
> The problem really was only with setting a bit in that bitmap without
> invalidating the corresponding slot.
> 
> This said, I can still see value in doing as you suggest, but as a
> separate change with a different justification. In fact domid_bitmap is
> kind of redundant now anyway; aiui it was the thing that existed first.
> Then domid_map[] was simply added, rather than fully replacing the
> original bitmap.

I guess using domid_bitmap to find a free slot is faster than scanning
the array of iommu IDs to domids. Not sure how performance critical
that search is, so maybe it's fine to just drop domid_bitmap and rely
exclusively on the array.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 12:22:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 12:22:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225201.388909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVZC-0007GB-Nh; Fri, 12 Nov 2021 12:22:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225201.388909; Fri, 12 Nov 2021 12:22:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVZC-0007G4-Kd; Fri, 12 Nov 2021 12:22:02 +0000
Received: by outflank-mailman (input) for mailman id 225201;
 Fri, 12 Nov 2021 12:22:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qdsq=P7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mlVZB-0007Ft-MZ
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:22:01 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 21f02df5-43b3-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 13:22:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 21f02df5-43b3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636719720;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=NMX9ADwXpUyxQR85mVx32Z+QsmBIWysDL87Js0s5hac=;
  b=VYZ8gBn6B2JuxdCCHlWKtlC1+KQeXQEasVTdcE65FxtWxgFY17sYlIRT
   EApIj7EQCnVZF57nfLj05PQTwtFUz/kKPBSh94O/LTs49Frjy3JH0cFZk
   2J0LhfeNdiUZPifqd7I/00oACzM/e0L7l6e8rFFy72syyaO6c5ONQQz7H
   k=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: Hwb+7pQZdG0mneseAEz5/lZEdeVNPXk64T+CHI/aymSWsLk/MNnEAJvHARBoorOtfh7MPVmDkW
 KiBXvz7CsGvCo06S+8P9oovo9Egq1oOYjPKeIYI491K5CCIqf98b+AipVz1AzlabZ/Wo/Q6Sbg
 ImL5R0IzmY5XHcOVIfW+pZuq/9FSBTk4or6IuE/Jr/1FKoiz16BvnUS/cvX8pbJ51OFkpu8Ay7
 zOhGowaieyQz7KAijfolw2llrqogXEbYnA+mgblUezeNfmcsGgzQ/8zGEmvOPTcX7Fl5McDwnz
 zRZnbdAPLdTeHLB7wu4H9n15
X-SBRS: 5.1
X-MesageID: 57703828
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Ne91LK20RHwGSVKyufbD5TJ2kn2cJEfYwER7XKvMYLTBsI5bpzAPy
 mIYCzjVOKmIZGrzcttzYdvlpxgP7ZPQmtNqHAJtpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wrRh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhxN8t6
 dpD7ceJEx4xAaPdgftFej9KOnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1EnMMsIdOtJIoCknph0SvYHbAtRpWrr6DiuIAHhGxg3JAm8fD2I
 PEWczkxNhH8MgxNA1gTV4sdk9r4mSyqG9FfgA3M/vdmi4TJ9yRy3absNpzJe9WMbcRTgkuc4
 GnB+gzREhwccdCS1zeB2natnfPU2zP2XpoIE7+1/eIsh0ecrkQRAhALUVqwodGil1WzHdlYL
 iQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4SOJmyQ6DkvHtuR+BOWYVVyEZQfo0nZpjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swZX2AAcmV8HlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybJhZJ2WyO
 x6O42u9AaO/2lPwMMebhKrrW6wXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDhJI9fawK87epwjmKJQl+zS+
 Wq6VFMew1367UAr4y3QApy6QL+wD5t5s1whOikgYQSh13Q5ON7956YDbZonO7Ig8bU7n/JzS
 vAEfeSGA+hOFWubq2hMM8GlodwwbgmviCKPIzGhPGo1cal/SlGb4dTjZAbuqnUDV3Llqcskr
 rS8/QrHWp5fFR96BcPbZav3nVO8tHQQgsxoWE7MLoUBcUng6tEyeSfwkuU2M4cHLhCanmmW0
 AOfABE5o+jRotBqrImV1P7c94rwSrlwBEtXGWXf/I2aDyiC8zrx25JEXcaJYSvZCDH+9pK9a
 LgH1Pr7KvAGwgpH6tIuD7ZxwKsizNLzvLsGnB98FXDGYln3WLNtJn6KgZtGuqFXn+ILvAK3X
 gSE+8VAOKXPM8TgSQZDKA0gZ+WF9PcVhjiNsqhlfBSkvHd6rOidTEFfHxiQkygMfrJ6PbQsz
 folpMNLuRe0jQAnM4regy1Zn4hWwqfsj0nzWkkmPbLW
IronPort-HdrOrdr: A9a23:5G3pNanItbhmgdB4kBqzQNYGGJrpDfIo3DAbv31ZSRFFG/Fw8P
 re+8jztCWE7Ar5PUtKpTnuAsW9qB/nmqKdgrNwAV7BZmfbUQKTRekJgLcKqAeAJwTOssJbyK
 d8Y+xfJbTLfD1HZB/BkWqF+gAbsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="57703828"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZlROlBee66SdV/wKd3WChOLTbuMpAEbo4XZuCN4vgJucMGol2lNIBF8xx+5OJs7i839E4dXkLuX/XWdU7CTXeet46JUc8PrrfXfvNvEcvGoiUBfIE1GTv+/YS3gIKgWO9YW8vGZTwFUQ5s3+DSXWauGwLAJsXabJmTv3U1FAxzFyciVqNjuHQTv+rYnlNCa3PCAMyHmMhROs1fUTrAFSuhvT/KC233muodkkhl16z3pAsBdZNZMLVoAgUglrAvXKvxcNGtyLtsE1KGG0g76qtMRCVKT2T/wIRL16nSYaUdzbyxioT0H7aPZy59MB0/JwpV7HcEP02ZDfqRqqH5nYaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IS4sg0gmDHSoJ4tw0HkZV/dGqolTXb5jbg7x8hK0RcU=;
 b=lOFXelEgS/BOr3jQ7hDHM9t6Qx5XB3NB1h32oZJehTk2elUgsm/GnbuV/FTk0vfiRLXsHJyy/Y96b/hgwR18wtMuE1BeQKcvX1ojCQVCVySZdXT5yNyJgswhPsr6n8se42/vwRdt/qFDPwPIwRcpdknOrqhwVqcedYcTW1ruhPsfmzWB5tNyn562vEzBP3Y+tniNE3KknFny3EU01mR7oIQpzRJ05P3Z53KaS3ghqlSFxYgjh2kJBUl6jDK7WhWfxkzxG4D35ogWrqTsKl1ExmI48Zg6UwwFX8LLVs7Ezr3gGi/74yTRhofrygJZwuNQnh7Q7rdNxV4GQqRXPhCGTA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IS4sg0gmDHSoJ4tw0HkZV/dGqolTXb5jbg7x8hK0RcU=;
 b=qfCb+VMgrKkHNSCxTwmqLSaeSWxga9a4YkYDazAa7TMKrOUaP+iQUfXcprd1qg+rg5ef1mZE/YpElL/cSFvgoFwLodENhe+h3UJIZtlUTaIuapVGBny/g5uqub0x6qbJBbUQAxEojCrwdBUZAOS5iJ/H6zmNd01jtzXw0JcreCA=
Date: Fri, 12 Nov 2021 13:21:52 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Kevin
 Tian <kevin.tian@intel.com>
Subject: Re: [PATCH 1/6] VT-d: properly reserve DID 0 for caching mode IOMMUs
Message-ID: <YY5cYFhnALBNDIg7@Air-de-Roger>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
X-ClientProxiedBy: PAZP264CA0077.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:1fa::15) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: dc2b18b7-2ca1-4fc9-3ccf-08d9a5d7048a
X-MS-TrafficTypeDiagnostic: DM6PR03MB4476:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB4476CABCBA5801901EBE7C488F959@DM6PR03MB4476.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4714;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: qmsrEMYVAS0i9sfLmVoUXv+SO0B3n/so/FLI3b1uZeqBEfKqSYGYglG9kau3OAuS4u4y0C+yYNxTfbbjD+HEsElQtqIwvEfGymz67eK9p4rA9TUrAb7+yNoQ6gYizNHkULi3uxg57HFNphYWMW27uaRWg8pa96lJqhtFR36MmyY2Y53HgQk8lMSVXiCeGgIofy8XXVaC0wnoSMTw6+ObUm7sKrS3e/IXhVnCtfUxaSCK2Var0MzcTn4/uxzlCSiG1XumdKChrQ0tlXES3cUUJkXmaleya75cJt5enbwWOH1dAm70MsB4d+zfGOJh9+DWb+/Z2Sn8Gs99hmKXCDPfQ7kYSr/IrCCbfxmsbHt94YBRycXHPnEi3R7hessjhgJO7lRSTFekBnC/RAC4aB+Uj6lX0lAb9XTqb9Q3kmmwdIfXPnPYz0cps8haebBMZYCySGThzGmehfVmSBftr3/UEj5uQ3e/y6Wn8HyDRa+ukkxsZjSsWd/UiwVKxKLyd7PrWTSnpoeJDNfEhHul6dNCW0LW5ukfPdHh2t+5FoPycmI2mz3IR+CNAlxeFY5XvANRRVYQnBasm+Kszv5nf/WA+5rHtfAsUoJ4AM9WKtqfBQUUUXzwIx4LQdEpIByv1KTV1RHsFr+89XkFsYoU3mtOgw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(9686003)(26005)(82960400001)(956004)(6666004)(8936002)(33716001)(6496006)(508600001)(6486002)(5660300002)(38100700002)(8676002)(316002)(66946007)(66556008)(66476007)(6916009)(86362001)(4326008)(4744005)(186003)(85182001)(54906003)(2906002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y0tVY2szSUVpMWwzMjlqM1htcHVNVGhrd2lxWUcwT0R1b1lnc1BZbG5RSHdG?=
 =?utf-8?B?cTVGRGp2blRtY1A2YXRjcFpraDN1L2VHL2R6Vy9xdlNrdHhZT2dkQnNmSjVn?=
 =?utf-8?B?dnVCVUNNVUhLYk9HQnEySEVMQkdjRlNDeCtEWHcyaU43S3VyZzloNkdTemlK?=
 =?utf-8?B?OStjSTU0anZISHFPcVozVkp1elgyNUFhVWdLcUNndE5yMDhCZTdYbVp6UHNQ?=
 =?utf-8?B?YU01YTdHdm8zLzB3RE5OK1BRTE9MK3R4em03QkZMTnJPN0dlYzBkOXF4ZG53?=
 =?utf-8?B?YTRIeVJwWmpKUVZUcUFFTVUxQXFQZk9ZMHpudXlrTFM5Sy9kUXNrK3VGaGZ5?=
 =?utf-8?B?SWxoS1RlT2NPZDM2ZmMwKy81SDRRUkdtMVg3a2FYZ245TXpxMU9PNWpFSUQ1?=
 =?utf-8?B?dDJiUVZTYmt6NVpKR2tLWHpUYXlVTWlUOUpzVjVPbjhqY2FORSsydjQybzZP?=
 =?utf-8?B?cUlwckNrbFA3R2lScUhmYk1VZWdJeDJnTE1GRHc1M0E5WTdRQk9hT3NTY3Vl?=
 =?utf-8?B?Mjk3TWJzdlhacGorOGVvaXlqZ1VmTWpKRkpEd3B3aVpGOXNtWHhrL1RFZ2dE?=
 =?utf-8?B?eUlCeHdTVGtXQ0s3OHcwMVNXTFBybVlZUU9EVXRGbUFQYnVFRUx4M20yMEdL?=
 =?utf-8?B?a1NBOUNrdGg5blB6SU1KWWZQV0VQWVlnVTRsaXRtTGtJWDBmRG9iZGxEVlYr?=
 =?utf-8?B?VnB6NWRjb2FGeWN5d1NuNm8zaEpmbWNyUnB1SStvQlB1VVBvZUVZK2dhVW90?=
 =?utf-8?B?d2dSS0tWTzJWZno4U3lTbVpOTlpFSUVvTkxyZ0JXL2FkTHZGcHFCS1RReVRs?=
 =?utf-8?B?RHVUVGZOTXQ1a3ZhM0QvVEovUWlVUE9VY0UxUTFEckl4TGVCOEErcDdwMHpL?=
 =?utf-8?B?cGYreVgyODlWQnk0eVp5ZE1kRHNXWkQ2eXJvVTVCNHBTb2xVTGU2bkwrZ3Na?=
 =?utf-8?B?czFYT1JDTGdDUWNsWmRUVk84T1FWVDBsUzdaWXRJTTdtVmljTlBlNklrSnky?=
 =?utf-8?B?WTNPa1lPUThqai9mOSswMWl2MjQ1bEZMNDU3QVV0NWhaQjQxREJoRWRZcDZI?=
 =?utf-8?B?Qk5lQU42cTlMUWxXWmxhZ3dFOGpId1E2S2U5dndnZHdPaWxVR2tTRmYzWGd2?=
 =?utf-8?B?Ykx4dTJzL3QySlNFZDViRmRudWFNMmVHcy9vMlRjNDhMK0RGUXlVSVJna05Z?=
 =?utf-8?B?OTRMSlBqTm8weHpuenhBMnVSMURtUFlRNTdyVysvQytMSys5WXVVWUZhNThz?=
 =?utf-8?B?cnowdDlkQjNiRHlKRDduMXVUTTZyZ1UxOVhmcE9pWkhSVjlMK2V0NjM0R3BO?=
 =?utf-8?B?T0E3ZVBhQldVWFhsak5pd1lpejB0ZFU1WmVDSEhrbEhkM2J2Mjc2R0tNQmw1?=
 =?utf-8?B?QXJpQnlJNkNYSi8zSUJoeVhXaEhkb2hTU0VNV3AyVU5Dd29FSFJZUWFoTVY0?=
 =?utf-8?B?QndobHZVK1JmSUMrMmd1OWxGeUR0YWt2TW9zOEFMT0VSNlJBNnJLTjJ1aU4y?=
 =?utf-8?B?OVZJVmVTbWp5UU9NclhHV0JZYm90MllGMXllTDVEK2FxaEd0dit1WmF1SCtG?=
 =?utf-8?B?M3R1amcyV0ZwTXBLUXBXS2RuYmRxcHlldzRyU3NVM1dnTzZONlJhWWFJNnJz?=
 =?utf-8?B?MDhPcTBOVGY4dGFqYk9KejMrOUgwWFkwT1JLREpZVGVkS0U4WTRqZXhENDlX?=
 =?utf-8?B?STc0WFJXUlFDQ2g4K0xUQitQeGQ0Q3g4Tzg2NENZb2N3ZWszMmFLUWo5VGo1?=
 =?utf-8?B?enZTLy95ZlQ5K3JOWTMzZHc2UUdvMnBQQmVsdXV4dU1PTW9kalhReDJ1T1Az?=
 =?utf-8?B?NTFjSzdPTm9wT000VzlmTkpRVkl0RVVCL2RnN3pQMmlCQlVzbGV5SWd0dU1q?=
 =?utf-8?B?bWJ2TDJTSkowT1pwYjJpTXlDNUlVYmtuNUhBUWxKMlNYNzRzNitJck9ETDA0?=
 =?utf-8?B?RkJKTjI3NzZUUUpjTTNRcTBZcmNWei9NRFFvSFdDTktZU3A1cnVVSktVYjNR?=
 =?utf-8?B?R1l1VlVGUHBtQitzRjZkSmRaQzhpU0orem1peGZVejBDQ1JZbVpQaTVQQXBG?=
 =?utf-8?B?RVo4bGlLcFZBVUEyTjJZbjVIWnJEdi96bFF1QTZscDQvNXBBSm45U3NpdkZ0?=
 =?utf-8?B?OW4vOC93UU5iZWw3VElYUWY4M0N0Q09ETjlId0tLSEtQbkpFazk2M1lwYmxz?=
 =?utf-8?Q?WCMPO9XqycxG+emZebYMPys=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: dc2b18b7-2ca1-4fc9-3ccf-08d9a5d7048a
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 12:21:56.3162
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FHBHGTQS9e3OqlVgUmS2Dtnw7S3hRWeM3sGNZHTRYcTkZfRMQ8jeoT3uFbgaBEcDDKD0inZORD6cVabwHx1Qww==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4476
X-OriginatorOrg: citrix.com

On Fri, Nov 12, 2021 at 10:47:59AM +0100, Jan Beulich wrote:
> Merely setting bit 0 in the bitmap is insufficient, as then Dom0 will
> still have DID 0 allocated to it, because of the zero-filling of
> domid_map[]. Set slot 0 to DOMID_INVALID to keep DID 0 from getting
> used.
> 
> Fixes: b9c20c78789f ("VT-d: per-iommu domain-id")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 12:32:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 12:32:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225207.388921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVil-0000GA-NF; Fri, 12 Nov 2021 12:31:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225207.388921; Fri, 12 Nov 2021 12:31:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVil-0000G3-JF; Fri, 12 Nov 2021 12:31:55 +0000
Received: by outflank-mailman (input) for mailman id 225207;
 Fri, 12 Nov 2021 12:31:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qdsq=P7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mlVij-0000FZ-T1
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:31:54 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81feb1b8-43b4-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 13:31:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81feb1b8-43b4-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636720311;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=dCZfEqbc2YHyF9wj+IELmqkQ2d+cUtIizCWpTcT0JMk=;
  b=VIb5HZw5m1H8GSUD4Y3C56sr2S8zR9ElxFkoKmw5AwPwBSMZ5pxdaX+h
   FczxAnW/Zc1FE6PAeyLR+DFohEC7yG30gYPDDUmiK5ozdzph0A8/ThKyc
   rmLT+2MUCz3sOlAnSm0057mbtMb1CIxTc7DDRW2qzGGfcQLZBicQLanha
   0=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 4Aypb1YW5flZtVGod7rwUzWJdFGtnIGIkQ+ij/ALkaVq0Jf+CUVkglpFTOmAYAuQAN0q9tENne
 8q6CSCOkU9Q8TwJizF3hJb4d6Va2AAMJqCZBUltq68qRamCxys1Okr8yendw/NXsx9VCzb9JUI
 GgHbHOlEBAFGyjvd34oPksTU2+LHL+eM19I+0t1uPH+eOXh8VGdbEghb+7TwYjQaTbGhCH+bNJ
 MRKFGARFhY7YFbCkNsYYzO4sibuNktzHUUh/uRKr2xyPswTo/5YjdLy/12oSB+nt44Hk7A1Ab+
 12EyeAqHO4l7r4ZbG88vqDcW
X-SBRS: 5.1
X-MesageID: 57704368
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ZjCb263Ak1VLF8Txh/bD5TJ2kn2cJEfYwER7XKvMYLTBsI5bpzRWy
 2oWWG/XOvyPazT8eIpyO4iy8xkD75XVz9VrTFFrpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wrRh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhoctM8
 vJRk8WKQzwiE7OXpMVCUAMDDHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1EnMMsIdOtJIoCknph0SvYHbAtRpWrr6DiuIAHhGtr2JAm8fD2W
 +whax1TTCn5ZkNKAgkdUNEHveyRvyyqG9FfgA3M/vdmi4TJ9yRy3absNpzJe9WMbcRTgkuc4
 GnB+gzREhwccdCS1zeB2natnfPU2zP2XpoIE7+1/eIsh0ecrkQRAhALUVqwodGil1WzHdlYL
 iQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4LfYH0iaR7PPu6T2SK3Zfch8ea8Z9q5pjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swZX2AAcmV8HlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybJhZJ2WyO
 x6O42u9AaO/2lPwMMebhKrrW6wXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDhJI9fawK87epwjmKJQl+zS+
 Wq6VFMew1367UAr4y3TApy6QL+wD5t5s1whOikgYQSh13Q5ON7956YDbZonO7Ig8bU7n/JzS
 vAEfeSGA+hOFWubq2hMM8GlodwwbgmviCKPIzGhPGo1cal/SlGb4dTjZAbuqnUDV3Llqcskr
 rS8/QrHWp5fFR96BcPbZav3nVO8tHQQgsxoWE7MLoUBcUng6tEyeSfwkuU2M4cHLhCanmmW0
 AOfABE5o+jRotBqrImV1P7c94rwSrlwBEtXGWXf/I2aDyiC8zrx25JEXcaJYSvZCDH+9pK9a
 LgH1Pr7KvAGwgpH6tIuD7ZxwKsizNLzvLsGnB98FXDGYln3WLNtJn6KgZtGuqFXn+ILvAK3X
 gSE+8VAOKXPM8TgSQZDKA0gZ+WF9PcVhjiNsqhlfBSkvHd6rOidTEFfHxiQkygMfrJ6PbQsz
 folpMNLuRe0jQAnM4regy1Zn4hWwqfsj0nzWkkmPbLW
IronPort-HdrOrdr: A9a23:qg0Pl64YaJvxe1dngAPXwVuBI+orL9Y04lQ7vn2ZFiY6TiXIra
 +TdaoguSMc6AxwZJkh8erwXpVoZUmsiKKdhrNhQYtKPTOWwldASbsC0WKM+UyEJ8STzJ846U
 4kSdkANDSSNykLsS+Z2njBLz9I+rDum8rE9ISurQYfcegpUdAa0+4QMHfrLqQcfng+OXNWLu
 v62iIRzADQB0j/I/7LSkXsGIP41qr2vaOjRSRDKw8s6QGIgz/twLnmEyKA1hNbdz9U278t/U
 XMjgS8v8yYwr+G4y6Z81WWw4VdmdPnxNcGLMuQivINIjGprgqzfoxuV5CLoThwiuCy71QBls
 XKvn4bTotOwkKUWlvwjQrm2gHm3jprw3j+yWWAiX+mmsD9TCJSMbsLuatpNj/ir2YwttB116
 xGm0iDsYBMMB/GlCPho/DVShBDjCOP0DkfuN9Wq0YafZoVabdXo4Ba1lhSCo08ECXz751iOP
 VyDfvb+O1dfTqhHjDkV1FUsZmRt0kIb1O7qhBogL3T79EWpgE586Ig/r1cop9an6hNDaWt5I
 z/Q+xVff91P5YrhJlGdZI8qP2MeyXwqCL3QRCvyGvcZdU60lL22tTKCeYOlayXkKJh9upFpH
 2GaiIBiVIP
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="57704368"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g0bxrlm/LXTiaO2tkOVaqb4GQJ2V51zruUZ6Nzx3J9Um3/+XjHbVDtMGQR25cCBhjI7GJr2ETNwfFZTPsl1XOWCN9eQuAxCuuiaPrv4mmyKzOT+tqVb0PIIuLS8V/u5TXzd14gI78XpXVkP+qte81j9YnRbltnezyOQLA4SbP00Gtl1EnJb/ZgbMTDC/tvKItA18NLWLcncreveAM3eedkt1jS4Xu/RKYcyolrFcfokTZziutViTXd0SG3G0bZ9uMw9ik5i9b8s43LpmxEWBHqr6Os/vzDPqGMWcR9ErnI4VLxNdcaV1BOYFKRwrnf+4V1Fpt+cEvlPQXYtWosibPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lLFsgkR3hTbEhCgYT+0xS4sheliiYxEVcrQz+SXUYTM=;
 b=Iui4nh2ybQ9r8b31LaGqENr5trhrtpQUSXJxr1KmnKS41/pBKrkDxByZLOo4ufa/IWcn5xvcOMEddL1BCw+MvNoQY/lb+yhMOg8qbO+prGLTvuDczBiYN7+ABGn9DjsiypLXyw4l6oraIU69tZlhfCx9u0ttE6tWUuSEBDO9BpWRLPIhORBYPrm8CRskMAQAbIbvJFQ6V1wixxXV3tvmKiBDM2uDU+JJsFc7Gtp0xHPM5Pr+3emTAtxqYaaGDX9kpgqzy+3etBLEbafvdJpoPp4/ZgL8kbvFpwWwTxJcm6wr6xdvDVC6rIkdCQYax13hyUL1RBwASf+s1VliPg+Cig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lLFsgkR3hTbEhCgYT+0xS4sheliiYxEVcrQz+SXUYTM=;
 b=kEVwzJznpLfpfT4MCg98+AJlsocF+HvS4kXDgVuG6Iqd4phlyW9cmaQoTbtYNGT2k1WStC5/cFCbG/1uwRXIrZZXtiat/wx8SFWMtWCxbwv9+2S+xntOrSGt4JBHxcD1aeCqfn1Yta13/nDDlTtzyFY4t7uLs5THwhLCDtPjbzw=
Date: Fri, 12 Nov 2021 13:31:37 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Kevin
 Tian" <kevin.tian@intel.com>
Subject: Re: [PATCH 2/6] VT-d: split domid map cleanup check into a function
Message-ID: <YY5eqQykvDD8CVmT@Air-de-Roger>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <57c32156-369c-a92a-ecc0-fc4b890eb05c@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <57c32156-369c-a92a-ecc0-fc4b890eb05c@suse.com>
X-ClientProxiedBy: MR1P264CA0046.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::28) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c6c85e4e-66c2-4664-70bc-08d9a5d862ce
X-MS-TrafficTypeDiagnostic: DM5PR03MB3147:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM5PR03MB31477740F12F416313B8FA3D8F959@DM5PR03MB3147.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:425;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 83f2V3TGlUOXCwZ3GK7Inx4IZq3A7tN6H3SFvE6GHbKBDP245fw2OBBeIVXpa6yAYs0qjMlkm+HvxJN+p67uWqd3PI5gjeRlpv/KcelgjiuT24l8eTIfK9MAUBv1ukgGAnMMAwU5Zff5vOcEN1jg9o50Jn4rO1KWrATTS7Oo8V4IzZkYaBeE9UePD8HcsFGFb2bH6waDmrltU0Z7bwsJkTZ8GrkHi9TQBXMWY2SwA540JeMmo22NZTUFHAJrQRiiQWU5D79cJu78n6cKdctmQicytFwej8StQLlZYSmKzNfrki8P/5QQNFmIK4MgonfwCPMFRxIVmaRWrtbKYG/DEG20Pr94X1fonOqErzLNsuxZeCG626tX7+sDoiezA2dQ5hr79tsvFxeljNKa6XI2MIyvDFOcNRonQPsnuEUM73uKpI+iV5VOIe0oL3TGbaUIMaDp5nAqZ7hOZgDX4wqKQQlOd+NcKHcw7kz1sKGaXEIo4nw+bUcSRuYtJg9EkRf1qNr9hbzW7IL3VXMk+8fXRI+DaGUaASPRLEU4iqAnWGbeUQougkY4QSZC8+CFWu+R3P7TFtOAR2IToznKgKS+lQTEmUY9KFJjyT7g1Giw12jo16CMVqPw0MrRQ5b/SSGgjK6ruLthvElxW7ldBu8b3A==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(508600001)(2906002)(85182001)(5660300002)(33716001)(316002)(9686003)(6916009)(8936002)(8676002)(38100700002)(66946007)(558084003)(956004)(54906003)(6486002)(66556008)(66476007)(186003)(26005)(6496006)(82960400001)(86362001)(4326008)(6666004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Nyt4eTM4VERiWTd1QWpEMTZwTlhKZFA5ZXNLVTdKWmN3a2t4RzVlRkdpYW9V?=
 =?utf-8?B?MWFJSzV1bzlJRkg3V0Rqd2s0NkN6aFJVNUk5d0d6VDNHRUNGNFREYTJuMVpN?=
 =?utf-8?B?MlZLYi8xeDhyS0ltM3RZY2hyYmsvMDVxN0wyMWxJOEhZZ3daQ1orRlNremtm?=
 =?utf-8?B?QXphUSs3T1dpQytxTzVoWXFFSExORnhpNFVKcTN1V2xkamI4YjRNTGVHK3J0?=
 =?utf-8?B?aUNIWndtVTN3MitUbWpKZ2syVzZOc0FDMVpYNTVOWnZhUm1kSGdRSTlRNXdo?=
 =?utf-8?B?ZDI0eng5NXgrTitjQkhCdW96WnRmaVJHY1ArRkM1TkRqUmN0elNtNEQxSEpU?=
 =?utf-8?B?WHBwY1llRDl4ZnlYYTVZNGo1dVlDT3NrZm5yM3AxWTVnTHdmdU5MT3BUYVF0?=
 =?utf-8?B?clVLekVBWVZlbThGZ1JUVjNZT1IwNVVNKzhvTGVuRTRQMkY4UnBqd2F4ay9D?=
 =?utf-8?B?Q2NEemp0b2VUTFZ0QWFCRGl4endRMSsyYWg2Q05JWUJrS3dERzhMcnVJWjZo?=
 =?utf-8?B?c1ZoVVI0eTdrRXdua1paZDJtNUREUkdCVXhRbHFPS1RSckZ5MjRrQzkySmI1?=
 =?utf-8?B?alo1ajJHZTQxU25Ja0NWSnpWUGYvWHhoTW8vUEdUK3VlQTBUMDhSd2I1eTZo?=
 =?utf-8?B?LzYxYjVNenhrSm9WVUVnM1FEUGJZR2Y0VmUzbDM5T3poVk5pZXZjd3J5M01X?=
 =?utf-8?B?ZVE0Rm9MbUxlWkNZRTNZNkVuRHdZZjM5RSs4T3Z3RU1kNVJEZmlvcXNhUWpZ?=
 =?utf-8?B?N0tzYWpBTHA2YzRZcGZrcEZCbTVsUG9Ma2tLY01hQTFrd2lkM3pKTWZtSFBY?=
 =?utf-8?B?aERPSzJHTzNocW1BejFIYjdOSUg0ajFXN3pmWTZKVC9DL2dhcnNhQ05UVkY5?=
 =?utf-8?B?S1FRaUtrOHFqYjRxdDFKanl3V3I5Y3VkTzBxV0pqM0Zac0dzbVFDRFlSNi9q?=
 =?utf-8?B?ZHFoZ1M4TkRNYnl4M3BUQVB4Q2MxYjFlYkFTcVNWWWI4Sk5GSVJqNkxxK1Vt?=
 =?utf-8?B?QzUra1prZTBDeDlrYUZMdmZ3dGVleXd5cFlQVkZyemk0TUhiV2tJWjd4OElr?=
 =?utf-8?B?YzgyWXdJZFJPbU53RzRud0g4S3puMElhRWQ0ajNFM1FHQzQvY2VhNXEwWENp?=
 =?utf-8?B?RjBLWjNkM1JoR29hL0ZISVB1T05ZYThpYlkzcEhRYkNILzdWV2M2Mi9JeU1s?=
 =?utf-8?B?OHhDdTFPWjY2YlZ4ZXF3djdyQk5tLzZFT08zUnhmQmNHa0N0MXdzUXZGQ1Vp?=
 =?utf-8?B?aDVMbVhrV0pEVUNramdDYTRLSU5OaWJUampNT0dRNkZGNCtqNHdvUG83T2dX?=
 =?utf-8?B?SnpaTzR1Q2d2RVhhSzNOTFNSTDgzdDdoTlRGL3hOTG9qMHZ4MS9SR1Nrc3hS?=
 =?utf-8?B?VG50TU1udjNUTnIxRWptM1B5ZFkvakxGUmJhcHdrR1JrMEZrTFFwUDVHSGRz?=
 =?utf-8?B?Mk95Q3ZYRVliZC8rZ2NNbmszVmllekJBOUtMMEJFTjhDR1REMm9WQXAxak1w?=
 =?utf-8?B?aHl6MkM3dlZnc0NKdWxqaXhheWFraWFJRGhnVm8vNzhCUVNCdVE5K1F0UWZB?=
 =?utf-8?B?Z3VGWTN2M2RlMkpYeVdRRHFuNEZlZEZRNkh0NzFxVm05WlovZTZnNE55MXJq?=
 =?utf-8?B?ZjNYKzRlWEZ0Z0hjUTZWditpYS90OGhRcWxsY1hheEV6MzZsMHIrTXZzQUZV?=
 =?utf-8?B?YmxaaVBwNDh6bXRoZTBYK3JZWm1ES0o2MXJBYU16VjZEbTgzSlpsN0JsOU1N?=
 =?utf-8?B?azJXZExqMWZGeTd0eFNaMVM1bWh4U2Uxb05sNDJBQ1c4MmFVcFlPT1g2Vm9i?=
 =?utf-8?B?K3FFMFpoK0hLSDE2bEcySFR0bXQ2WUpRNDRsbFlSWTkwR2p1NU1GMkV5TEtr?=
 =?utf-8?B?SDVKQldWem1xY2JORGRRaUYyeTVWa1RTSDhRRmU2MkpITkluYWJJdVJVK0tL?=
 =?utf-8?B?OHhqNEJlWE96ZFFpcWVWRi80ZVh4RWZmUTdWUjViSVhONG5STEpjaGl6anV2?=
 =?utf-8?B?QTRvRGJRNnhzT2J6RFpUeEl3aEtMUERZVWZPN1BKUXRxSVdBS3NJUi9yOXBY?=
 =?utf-8?B?RHJMVlRPV0ROMjR2Ukt0a0JtV2YrWjlteS9VZFVqZDEyVEVldVF3RU5OSDh6?=
 =?utf-8?B?WXExU3l4SkowamtESWFEdzQxTklhS0ZHOU53TG1hOHdXK2REdm1wd2RoT0ph?=
 =?utf-8?Q?VN5y1mINDGX2zeOYHycV4do=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: c6c85e4e-66c2-4664-70bc-08d9a5d862ce
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 12:31:43.9637
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xfEuB26RvpPkWBCLvGHdKuIfsD1IKLmeM0661c3HDeVCGirjvIAbkvNc3CCdxzF7AFbPAz5flKU8kBVP5b8UUQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3147
X-OriginatorOrg: citrix.com

On Fri, Nov 12, 2021 at 10:48:19AM +0100, Jan Beulich wrote:
> This logic will want invoking from elsewhere.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Might be worth to explicitly note this is a non functional change.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 12:44:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 12:44:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225216.388932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVuF-0001i6-O6; Fri, 12 Nov 2021 12:43:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225216.388932; Fri, 12 Nov 2021 12:43:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlVuF-0001hz-LD; Fri, 12 Nov 2021 12:43:47 +0000
Received: by outflank-mailman (input) for mailman id 225216;
 Fri, 12 Nov 2021 12:43:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlVuE-0001ht-ID
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:43:46 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlVuE-0008Me-FS
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:43:46 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlVuE-0007sa-EM
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:43:46 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mlVuA-0000xF-Mb; Fri, 12 Nov 2021 12:43:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=AEp/Q0dSRck3VrluOqyBxSTAdMtsAQ8MvAxwFc5VuSE=; b=IAzTlslII95jwmbi7t8v+xdCWq
	7kdZ9YCONbDTQQ3xcMuwLA78pxXrbXL42sEMCspjOfhOie5/S78J9V+9VC7QjLR5m4aYq1TMXqHcq
	Dkk45aBzqA0uTT0IaSg59QW9c8+x7X8GJnzRrardu80TgTL4OBno7wVFlPRxNAO4xVCk=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24974.24958.17968.347517@mariner.uk.xensource.com>
Date: Fri, 12 Nov 2021 12:43:42 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Kevin Tian <kevin.tian@intel.com>,
    Paul Durrant <paul@xen.org>
Subject: Re: [PATCH RESEND 1/3][4.16] VT-d: per-domain IOMMU bitmap needs to have
 dynamic size
In-Reply-To: <684f2650-7230-debf-1de6-21745c8efa9b@suse.com>
References: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
	<684f2650-7230-debf-1de6-21745c8efa9b@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("[PATCH RESEND 1/3][4.16] VT-d: per-domain IOMMU bitmap needs to have dynamic size"):
> With no upper bound (anymore) on the number of IOMMUs, a fixed-size
> 64-bit map may be insufficient (systems with 40 IOMMUs have already been
> observed).
> 
> Fixes: 27713fa2aa21 ("VT-d: improve save/restore of registers across S3")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Kevin Tian <kevin.tian@intel.com>

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

provided it can be committed today.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 12:50:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 12:50:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225223.388943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlW10-00036b-Fq; Fri, 12 Nov 2021 12:50:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225223.388943; Fri, 12 Nov 2021 12:50:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlW10-00036U-CQ; Fri, 12 Nov 2021 12:50:46 +0000
Received: by outflank-mailman (input) for mailman id 225223;
 Fri, 12 Nov 2021 12:50:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlW0y-00036O-D7
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:50:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlW0y-0008TW-Bb
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:50:44 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mlW0y-0008IN-Aj
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:50:44 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mlW0u-0000yk-OV; Fri, 12 Nov 2021 12:50:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=DYtDG1yVCW9tiow4RKPDcUbIEt4U4yOf/ArPomqQ5KY=; b=kxLkcYtfZQ++0NITdNiwrK20yp
	oXmoy5ghPD7XHKTA1OH3p6oN7wCISgSUUUXP41VvhogShtenSpK9z2wQ6YFechaGtyKbBdxPbr7fY
	lXWtluBfWyt7QX+GU1Eoz5ALoAso0JABXHq2HQpshYS/LOmIGhCtbN+8y8sZyGRTmeSs=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24974.25376.234860.64997@mariner.uk.xensource.com>
Date: Fri, 12 Nov 2021 12:50:40 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Kevin Tian <kevin.tian@intel.com>,
    Paul Durrant <paul@xen.org>
Subject: Re: [PATCH RESEND 0/3][4.16?] VT-d: misc (regression) fixes [and 2 more messages]
In-Reply-To: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>,
	<c180ff67-f109-fbe9-d34a-b28d8f46bfcd@suse.com>,
	<0ca809cb-1768-639c-3f58-c5e2c343b1e8@suse.com>
References: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
	<0ca809cb-1768-639c-3f58-c5e2c343b1e8@suse.com>
	<c180ff67-f109-fbe9-d34a-b28d8f46bfcd@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("[PATCH RESEND 0/3][4.16?] VT-d: misc (regression) fixes"):
> (re-sending upon Ian's request with his address adjusted, including
> Kevin's R-b at this occasion)
> 
> 1: per-domain IOMMU bitmap needs to have dynamic size
...
> As to patch 1: Without the earlier change, systems with more than 32
> IOMMUs simply would fail to enable use of the IOMMUs altogether. Now
> systems with more than 64 IOMMUs would observe memory corruption
> (with unclear knock-on effects). Whether systems with this many IOMMUs
> actually exist I can't tell; I know of ones with 40, which isn't all
> that far away from 64.

Right.  I have given my R-A provided we can commit it today.

Obviously potentail corruption, even on machines we don't know exist,
is an RC bug.  But if this patch can't go in very soon (or turns out
to be troublesome) I think we could downgrade this bug from
by detecting systems with many IOMMUs and refusing to boot ?
That's not great but if we don't know of actual affected systems, it
might be better than risking introducing bugs for everyone else.

> 2: fix reduced page table levels support when sharing tables
> 3: don't needlessly engage the untrusted-MSI workaround
> 
> As to 4.16 considerations: Only patch 1 addresses a regression
> introduced after 4.15, the others are older. Patch 3 additionally
> only addresses an inefficiency; the code we have is correct from
> a functional pov.

I don't understand the impact of patch 2 at all.

I doubt an inefficiency would warrant a release ack at this stage,
unless the benefit of the patch is very substantial.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 12:54:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 12:54:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225229.388953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlW4q-0003p5-3M; Fri, 12 Nov 2021 12:54:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225229.388953; Fri, 12 Nov 2021 12:54:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlW4q-0003oy-0I; Fri, 12 Nov 2021 12:54:44 +0000
Received: by outflank-mailman (input) for mailman id 225229;
 Fri, 12 Nov 2021 12:54:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=an8x=P7=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mlW4p-0003os-CJ
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:54:43 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b3339f4f-43b7-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 13:54:41 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:46364)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mlW4m-000b8y-h3 (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 12 Nov 2021 12:54:40 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id EE2831FBF1;
 Fri, 12 Nov 2021 12:54:39 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3339f4f-43b7-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH for-4.16] x86/cpuid: prevent shrinking migrated policies
 max leaves
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <20211110174059.64633-1-roger.pau@citrix.com>
 <519775a1-ba90-c5c5-82c1-abcd8c4ebb01@srcf.net>
 <9cb7444f-b1ab-524d-f94a-ede990b64f9f@suse.com>
 <YY0i48LlRVizS8LQ@Air-de-Roger>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <60b7fd51-e3eb-b05a-a25d-cbd7b2ae8f96@srcf.net>
Date: Fri, 12 Nov 2021 12:54:39 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YY0i48LlRVizS8LQ@Air-de-Roger>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 11/11/2021 14:04, Roger Pau Monné wrote:
> On Thu, Nov 11, 2021 at 10:26:29AM +0100, Jan Beulich wrote:
>> On 10.11.2021 19:17, Andrew Cooper wrote:
>>> On 10/11/2021 17:40, Roger Pau Monne wrote:
>>>> diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
>>>> index 198892ebdf..3ffd5f683b 100644
>>>> --- a/tools/libs/guest/xg_cpuid_x86.c
>>>> +++ b/tools/libs/guest/xg_cpuid_x86.c
>>>> @@ -638,6 +638,13 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
>>>>          }
>>>>      }
>>>>  
>>>> +    /*
>>>> +     * Do not try to shrink the policy if restoring, as that could cause
>>>> +     * guest visible changes in the maximum leaf fields.
>>>> +     */
>>>> +    if ( !restore )
>>>> +        x86_cpuid_policy_shrink_max_leaves(p);
>>> Nothing in xc_cpuid_apply_policy() changes any of the max leaves, so
>>> this is dead logic.
>> I guess you mean nothing there does anything which would result in
>> shrinking of the max leaves by calling this function? Yet even if
>> so, isn't the call here to take care of any earlier changes which
>> might have resulted in fully blank tail leaves?
> AFAICT the featureset (optionally) passed in as a parameter could
> result in certain leaves being zeroed and thus allow for the max leaf
> to shrink.
>
> So while xc_cpuid_apply_policy doesn't change the max leaves fields,
> it can potentially zero certain leaves allowing to shrink the reported
> max leaf.

Hmm true, although I don't anticipate this having an effect in practice.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 12:59:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 12:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225234.388965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlW9K-0004TQ-Md; Fri, 12 Nov 2021 12:59:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225234.388965; Fri, 12 Nov 2021 12:59:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlW9K-0004TJ-Iv; Fri, 12 Nov 2021 12:59:22 +0000
Received: by outflank-mailman (input) for mailman id 225234;
 Fri, 12 Nov 2021 12:59:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlW9J-0004TD-Gq
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 12:59:21 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59e8ebc6-43b8-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 13:59:20 +0100 (CET)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2053.outbound.protection.outlook.com [104.47.8.53]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-4-WhwtxWS4OsmnFm7TMywzyg-1;
 Fri, 12 Nov 2021 13:59:19 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5903.eurprd04.prod.outlook.com (2603:10a6:803:e0::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Fri, 12 Nov
 2021 12:59:17 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 12:59:17 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0021.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::34) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Fri, 12 Nov 2021 12:59:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59e8ebc6-43b8-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636721960;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=rTpQ8uBBM4wVG066hSj/citS4kN7RORlHQ0hRfXiZCo=;
	b=KEYfw23dyEiczMO5xCBu1C30LEKPZEL42v7MMu1hcPZg3RelFW+kbKrQj3CFFHY7VVX7mV
	uhnvfbbclfYhhP+ybYU2kWi/kYqDNbmq4VKGJAKAswylZxcAeE+Uxn11mAoexzU2vIzmgK
	BzCvTz8MYlpu2306AX2mGNWJkkv7mOA=
X-MC-Unique: WhwtxWS4OsmnFm7TMywzyg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OUlco766soOgiRe+Brj/q7O8qWPf52fQqSWs9fxIQBqUMKWJ/MXepov7Vs+7wDNTHeNHo+bi3bSlMK4CfwpSS2og2V7FAUbgNodTgDU18tyTQtZPYs87JRiVcmMNAzv3fZEi54lVhpxzCEwQNNpKNcCQq1175ytx/DJZtSDqM5lQS4/fths3VKl5rL/VayDTWAKlaXmQWt+1XEHcGdvR8KzdWxdETjR7AxabXrkKG8/6nuvhATxhpxQpLgX3CzD0wBSaCeIY5Gq6ghYq3WmUa+yNNECurbZoen0GfLQWh6mTFPbjNUNYnuSduqyb7X8Ga4yEiwc+zifdiKrbPG4/Zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rTpQ8uBBM4wVG066hSj/citS4kN7RORlHQ0hRfXiZCo=;
 b=EeJ9v9qBl2DlLbn27llROPTd/yvJx2CmEHD46mzTl1d+93B7aTGck4N5ZPWLYP8vXTD0yJKwlkU9Hg4f8bQYVgO6M81iLkuxSs5pVZ9Iw8Y3cZogf5AWV9JpBB+wuzXlSwWBKFJ486bYLqon7n+l6IQ6wXx67OOHqgE024iV18CGi6dvaVX5P22gIJ+SveAs1l4tpMYl1gMGweYAPY99BdYP1mSWi4erlyEWKlV31WtUOfj4UyqqN+bA5qD8tZAgQgPuwb1lkfOTAB2fgZgjjZaTQZ/Is+r3sQ26nI79MEMYtFxJiRSCh4O0GCiOHO2spbeZ9+ZgMaUPzNR4K9M/Vg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f8a68b6c-ed08-7ff3-1cde-7f3f192d6fc7@suse.com>
Date: Fri, 12 Nov 2021 13:59:15 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH RESEND 1/3][4.16] VT-d: per-domain IOMMU bitmap needs to
 have dynamic size
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>
References: <c809727f-f21a-d6f2-1fb7-4c3dfc150747@suse.com>
 <684f2650-7230-debf-1de6-21745c8efa9b@suse.com>
 <24974.24958.17968.347517@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24974.24958.17968.347517@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0021.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:81::34) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f816fbb4-4038-484a-a563-08d9a5dc3c64
X-MS-TrafficTypeDiagnostic: VI1PR04MB5903:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5903CF576D1DBE64AFBDB7BFB3959@VI1PR04MB5903.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	BqHzXCGAjphvmXV0YrPx/Pu9fILsc3DzSAeUC6EgbpctV2MPk9xRP1/lKrIp7Pa3ctp9Egl4pHoRrK84argpG+wXeOKQ6ml5q2s34c+DuHeUKLuGp6G8IVbX1dD1UR+q2o46KBGAZQXCelBo8hePF8La6q2YP1pn5LcBiEic78sjs3T8vW88muwzCGpVWOIAUdLmQd+0e51kBJnLy6DcajFUXmkzWE6bHxo5l9694NagKzz4BgrB7Ox7nYIkLQq4JX3x87PV7O5fpyoY7lzs+x9pWLh5O4vKQRxwjj4Sxj2AdMl8E9uKuRnYm8hod7OFtxetlw7F6wH3IMkA+3shaFAcqyLlhH3QkvT0O3KMEQVogL51JPxqdZJtEYrNM7eXjZikdWQ65d0Da4Q5XFJe0tdlx44vAVdM/cyNVCp3PGeThWhXpKE4356H2i2PMcf261z8oSO2K2lLzNHr2+3fvmOw+wu0KIf3xQNPoSQJ9iiP5a2Akgyxq7TPibi8SJbRawgtyE1XJBzkoXNIIS1bk9eZ5VeDxPhFNosrVa+Tinn08sHVajNtZRJ1hyf5KVqyzbMrufV7wzPxPkeX79qqZBYd0E9vMNSvuGMNTdw+ttkmDKXfobYVhB3zpzJyk33jxowKBodi4W57HL/eVfEWbGLztiiTdEEh8QWx1FbAlEGAiBBlV1dj7VQNUWKvOkse6WLEqyf5FycpW1WmkeN2SuhsfO7ZM2aKzbLugdadZijf8Ka8Z95pUnIbzSQ7jin9
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(6486002)(31696002)(66476007)(8936002)(38100700002)(36756003)(4326008)(53546011)(54906003)(2906002)(66946007)(2616005)(956004)(8676002)(6916009)(83380400001)(16576012)(186003)(5660300002)(316002)(26005)(4744005)(86362001)(66556008)(508600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WlJDbDhXbUlVQTVRdStiME1EdC96dTJBYVRtWDcrcUF6MUc3TStNNlV3NXMy?=
 =?utf-8?B?ZzhhdVd4U3NNTUZ3clRpS1BYS0prL2dHSnE2ckthUWxjR1ZKYlV2U2NHbGJp?=
 =?utf-8?B?UlJ0SzFmRDQ0YmJlaC9ZbG5EYzdSNE5MQ2UwN2FHTlpIanZPUkl2Wnh2U1Ez?=
 =?utf-8?B?Uld2ZkR2UzNXSmZIeEtxdTNnTUxSSmFibDczUHF1ejN0eWVJRkZYNy84Wmxl?=
 =?utf-8?B?Y2pOZlY1eGJHOGJEaGRUd1BWd1ByeldTNDFHYWZucFMvZGc4LzhyMXgyVXpW?=
 =?utf-8?B?QS9ONjVqTkVLVmI3U0xvbGN6czFtMVpNZW5QbnpwRGxqRlcvSUxsMEN5YUxK?=
 =?utf-8?B?Z0FlYk40QUp5UUJJWjR4NmRCQmZQcmlmU3N4RWtEZUJpUUlOa1JMREhFS281?=
 =?utf-8?B?aWZKdTRpMHdvZ2JSRGRseWlWRlBhMWw2cUZCYytiVlExd3h1cURlTUU5Wkdk?=
 =?utf-8?B?aGpva2QrS01vSXc4aHY5QkYrQlZseWJiU2o4b1RSUTlZOXdVTEZGRHhqNGFX?=
 =?utf-8?B?YXdvb2xlNU9ZZnI5aU9Uc0hnRWZ0MnErSVd4c2d1bGVsTGFQUGpOUkxhTklu?=
 =?utf-8?B?Z1Flb081akhGdDJSaDRZNHh0R2JXSmRsRmJ1R2V1UEMyNlZ3K0MyQnZFNjlt?=
 =?utf-8?B?bWdtMnY0Y3FHRWJPSitPamw5MjVycnI5VE1PbU51YmF5VUxsNGVLK3B6d09E?=
 =?utf-8?B?ckRQUkdPWUFHS2dvbndmNVpGRGxwUWI0eTBrdk1SRzlXdEloaFp5SDV3dnFJ?=
 =?utf-8?B?K3NSZTZEV3R6QXk1QThaVlNpb3g5Ui9BMmN4SWpvdGxiOXlhVW1aSjREME8w?=
 =?utf-8?B?SktScjIrelJvakVTOGJGN2FSbEh1QW5Ja2VEc3pNODZjZ1FEVzh1am9PL2R3?=
 =?utf-8?B?ZWZoblIvOUhjZ0tkc29pT1luZUM4aGJIaTFzTnRuUXZNU0RnZi82SmEwSGxt?=
 =?utf-8?B?a1I3WUs0THJCV1ZsRkd6TnBMN0ErdlVHZ0Nxd1lzK05hSUo3U0NqZWIzR2xV?=
 =?utf-8?B?V1ozZ0FzUHZYaFJTenljaGlZVE9KaGlQSGlrZmFramJpQlBNN2RWaTJMVm5p?=
 =?utf-8?B?aFpMQ0xrMktHd0RONFI4Y21xSTREZU9DYjhVZEJkbVhiK203SDVwaGFDRGVy?=
 =?utf-8?B?QmRzd3psVHptZDN2RWxwZ2NNUUFzMmJ0ejl5NDlUK3dia2tpWkJqekR4NWJ2?=
 =?utf-8?B?WWoxVTllUk9taGZkNVJyUEIweVNWMGljaFV1ZTVIbTNmUEVmd296S1FNcHJh?=
 =?utf-8?B?b0tCemJuaDIvSGNicWYwM1BIbkszajFZZjlxSDJBNWJ0SHVLK1JobThNbjVT?=
 =?utf-8?B?djNCbWxDVlg1a1dBb2toeGxPWmZGaU5hQmVWMnNvSUZUVzBMK01Id29FaWdm?=
 =?utf-8?B?RVBodGFYTDAwNVE3bk9xa3pab21OQTlwOGRFK09PN01Cb2dlM2NEK2xDejd6?=
 =?utf-8?B?ek5rdjJBbXRWRGtkdVRuM3FiMGpLVVFNTXZXNnc0TnRZcmEwWDBTemtlaGxT?=
 =?utf-8?B?QVZYSVdwcjNOM0g0RElJSjJqYXg0OUpxK1dHN2EyeGpuNCt1RGhSemhjV1Iz?=
 =?utf-8?B?UFN4U0dlMGIxeTNTd2FDOVhPYngrTDcvVHhJWXo0aWFaajlSeFhYaGpCWjhZ?=
 =?utf-8?B?RVB3Zks1dmhhL2F0NTE3VmVYdHgzNFpsTmlHU1lWY0x3UFo3WWlSb3QxR0s3?=
 =?utf-8?B?dmt3UzRNVFhVRkdwYWdic0NQZ2JtMkQ1YmNSSWpiUzJHS2NHSnQ2RUVReWsx?=
 =?utf-8?B?d1FnZ0pRUm5MbThjVDdCcitwUU1MWnZWcjgwZjdVb3lab3J1VlBOSGNKSXJl?=
 =?utf-8?B?eVM5dzR5RzR4RmluWWFZUUZ5MXlvUFNCNHJlS2srTCtEdThINmg0Nzl6MEFv?=
 =?utf-8?B?OXRndjhWeU9MT3paSWJkYVNTREVGYm1kV1VPUDJJRSthTVVhTi9SMVNTWlhy?=
 =?utf-8?B?RGRoNVZYbjBqVzZHRHIwUWI1MnZCNXlrR2hoL3NFZ1RpcEZDVDFDY1pnRXMz?=
 =?utf-8?B?a0hleU95QitLNVJnVENFYm9zUmxMQU9XaTA0akxKVXhZVHhjOG5lbXhZSWFT?=
 =?utf-8?B?b1RVamEzSGJTRnFVTXE0a21zZDQyL09CenFxakxCNlduQWQrOTVNMEo2UWZF?=
 =?utf-8?B?Y0VkemxhMC9lajhtR0xQSkx3dkdNeFJ2ZzFtK0FzeFFJdVZXSkRHZnJta21h?=
 =?utf-8?Q?f2sRiriPEj1lfjKwkI8I6Fo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f816fbb4-4038-484a-a563-08d9a5dc3c64
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 12:59:17.5372
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jiMkGlzRw8c3XgS9y1BlNs/U4nrpXJIt+ozgkU1n078aWHuZY2iqIRvsRid+GKJv5xmn5iUDdTTrFxd+XKeAoA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5903

On 12.11.2021 13:43, Ian Jackson wrote:
> Jan Beulich writes ("[PATCH RESEND 1/3][4.16] VT-d: per-domain IOMMU bitmap needs to have dynamic size"):
>> With no upper bound (anymore) on the number of IOMMUs, a fixed-size
>> 64-bit map may be insufficient (systems with 40 IOMMUs have already been
>> observed).
>>
>> Fixes: 27713fa2aa21 ("VT-d: improve save/restore of registers across S3")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> Reviewed-by: Kevin Tian <kevin.tian@intel.com>
> 
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> 
> provided it can be committed today.

Committed. I'm not aware of anything else I would have needed to wait for.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 13:42:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 13:42:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225245.388979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlWp2-0000qv-0T; Fri, 12 Nov 2021 13:42:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225245.388979; Fri, 12 Nov 2021 13:42:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlWp1-0000qo-Tk; Fri, 12 Nov 2021 13:42:27 +0000
Received: by outflank-mailman (input) for mailman id 225245;
 Fri, 12 Nov 2021 13:42:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qdsq=P7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mlWp0-0000qg-DT
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 13:42:26 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c92f7d0-43be-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 14:42:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c92f7d0-43be-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636724543;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=eZKhjLwJkuh0qvDZ4NicqjzuNzNEktNy1WoaRJC4Bvw=;
  b=U3NePRBOFte5bwmuVwbXXPTbfZAsqmSBjAGy2y0eDOXS3bzcsFNXMeMX
   uLBOi356QzWXv3otb8sNECOihfW6Xjsd9eFOhkTpiVsrECUgNLMSB5Hm+
   HCnfT2oHOcXGIpMDjMNMtFCYeHae5dCbtyW6fNGS1MAKWtDUahKYxd1oD
   w=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: Vgv/JxTyg6ABL1VNe0/1+zxqrCWK1vbDo/8lVPVpZTJZN2apbLMByXP79Frzf0T3+mU6ZST5x6
 jO0XtQQnLmMkFUGndGOtLbg+pHCrTiwgsMMCcuJHW+A1RZlJiEV4wQ5I5OqNSzHcU09L6JOexp
 hX7mStJ68QmAWKmcc9b9X4vhwj0+ok2Wd5Dhj9iUMenEA7W3q6WK0UfoINl/eysCmY+ZLtUrCf
 O6fHKzGeliNSynKvis9jSGNJexkAlngdb11igFQQZBik3lyYOGNad1d7G6NXZttKd+naLYWi5H
 9lgZi13hN+ozEVcg2McluQC3
X-SBRS: 5.1
X-MesageID: 57683304
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:poE3A6venrwFZP8Mg11fR0UXaufnVLZZMUV32f8akzHdYApBsoF/q
 tZmKTuFOazYMWX3c4pxPIyy/UIPvp/TyN5nSVRurC8wES4S+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2ILhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npltbu9ST8zOoT1hsMGUkh1LCU5MadD5+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258QTa2FP
 5ZxhTxHSzbiRDYVC30rFa1hze6rpmfDQj5WpwfAzUYwyzeKl1EguFT3C/LWd8KLQ4NJn0+ej
 mPA42n9RBodMbS32TeDt36hmOLLtSf6Q54JUq218OZwh1+ezXBVDwcZPXO5q/Skjk+1W/pEN
 lcZvCEpqMAPGFeDF4enGUfi+Tjd40BaC4E4//AGBB+lyo3Z4z6DAkE9UBlaaY0Li8txSTYvy
 Qrc9z/2PgBHvLqQQHOb076bqzKuJCQYRVM/iT84oRgtuIe6/txq5v7bZpM6SfPu0IWpcd3l6
 2nS9HBWulkFsSIcO0xXF3jjiinkmJXGRxVdCu7/DjP8tVMRiGJIiuWVBbnnARRocNnxorqp5
 iFsdy2iAAYmV8zleMulGrVlIV1Rz6zZWAAweHY2d3Xbyxyj+mS4Yadb6yxkKUFiP64sIGGyP
 hGO51kKv84OZhNGiJObharrVqzGKoC6RbzYug38NIISMvCdiifblM2RWaJg9z+0yxV9+U3OE
 ZyabdytHR4n5VdPl1KLqxMm+eZznEgWnDqLLbiilkjP+efONRa9FOZeWHPTP79R0U9xiFiMm
 zqpH5DRkEs3vSyXSnS/zLP/2nhWdyVmXs6v9JQMHgNBSyI/cFwc5zbq6epJU6RunrhPl/eO+
 Xe4W0RCz0H4i2GBIgKPAk2Popu2Av6TdFo3Yn4hO0iGwX8mbdr95asTbcJvL7Im6PZi3bh/S
 PxcI5eMBfFGSzLm/TUBbMai8Nw+JUrz3Q/ebTC4ZDUffoJ7Q1Cb8NHTYQaypjIFCTC6tJVir
 uT4hB/bW5cKWy9rEN3SNKC011q0sHVEwLByUkLEL8N9YkLp9IQ2eSX9guVue5MHKAnZxyvc3
 AGTWE9Kqe7Iqo4z0d/ImaHb8Nv5T7ogRhJXRjCJ46y3OC/W+nuY7bVBCOvYLyrAUG7U+bm5Y
 bkHxf/LL/Bazk1BtJBxEug3wPtmtcfvvbJT0i9tAG7PMwawErplL3SLgZtPu6lKyuMLsAe6Q
 BvSqNxTOLHPM8L5Cl8BYgEia73bh/0TnzDT69UzIVn7u3ArrObWDx0KMknekjFZIZt0LJghk
 LUot8Mh4gCijgYnb4SdhSdO+mXQdnENXs3LbH3B7FMHXubz9mx/XA==
IronPort-HdrOrdr: A9a23:4RGFca60ERKCI8O+mgPXwVOBI+orL9Y04lQ7vn2ZFiY7TiXIra
 yTdaoguCMc6AxxZJkh8erwX5VoZUmsj6KdgLNhRotKOTOJhILGFvAB0WKP+UyEJ8S6zJ8h6U
 4CSdkBNDSTNykCsS+S2mDReLxBsbr3gZxAx92ut0uFJTsaFJ2IhD0JbDpzfHcGIDWvUvECZe
 ahD4d81nCdkTN9VLXPOlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJr3CQKR0BsyWy5Ghe5Kyx
 mIryXJooGY992rwB7V0GHeq7xQhdva09NGQOiBkNIcJDnAghuhIK5hR7qBljYop/zH0idmrP
 D85zMbe+hj4XLYeW+45TPrxgnbyT4rr0TvzFeJ6EGT6PDRdXYfMY5slIhZehzW5w4Lp9dnyp
 9G2Gqfqt5+EQ7AtD6V3amIazha0m6P5VYym+8aiHJSFaEEbqVKkIAZ9ERJVL8dASPB7pw9Gu
 UGNrCT2B9vSyLYU5nlhBgs/DT1NU5DWytuA3Jy9fB96gIm3EyQlCAjtYgidnRpzuNKd3AL3Z
 WCDk1SrsA8ciYhV9MLOA4we7rGNoXze2O/DIuzGyWuKEhVAQOHl3bIiI9FkN1CPqZ4iqcPpA
 ==
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="57683304"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FSJWYYhUQ0NhL7G/wSB7P+HawXZaajUoZuzKrb4BtG8HWXi3prxmhkFCAy1kWZlJGJG1v2IwLJkyz3GwvrEn8PNJM1i8EVnG9JAOBprq3U1icX3dcd4Fok+SRF9u1nDwOXXh7MIaFF6DQVRC696HY7QhsFhNu0W2Agjca1ivKe9vvuraTmQgNlr6wx8egYMaWOPL24JGz7BMoWOgvqrsEWgSj4HgPb6TcjZjtAgMEIaiim4EKC9tM0A/6bq2CFLZAv1xQZH+8OY2RFkfMtZtZlQULzpyi3PHnJPK52wJD+Clhzw5rsI4ebIg6RjkVR+FvjmettU+/SIIuBnnP1uMaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eZKhjLwJkuh0qvDZ4NicqjzuNzNEktNy1WoaRJC4Bvw=;
 b=jnfl5lJJQDFC910TI3PJrxhhN5hxJAZu+zRyNdkCpYK4+iVeozV4vJxJqi++vSdax37JgXFzkhhVWO0vRaJHpY2VNWdxedomOpNjhHEdh6oCTjoasWPvnBHkCFqXUwDmJXgOosb38LSX+kLK7W2fXBOIra5sUN+lJQEovzYWmAY0wC5nUdG/+LzLRxcAy8xTmNa/sbn6kxXwDPgi88qGyhtv9Q1kEkiP0TSV2qjwAqFlpt+GftQuPKyqqCX9E4WRBvf2lE/0jczhS+v1gKFywymxnBpWoZeDJ8roZzVL00B1Z8dv/xu+EhXj24UNIVwoZOC+m2IiV/iw1AOhjcTulg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eZKhjLwJkuh0qvDZ4NicqjzuNzNEktNy1WoaRJC4Bvw=;
 b=AIV5pLGVb0/D/fao5e96oekBONC+jESFHBl6Ph83zhNizqFAB4M8exzAlF1vvKZH9hDfUDAQapeT4/2vuHDV9PqObdtDHCenmrGcgb7blT9fOnX0YamOC6/ubQRT03Q0SvEBqd7SvDHILEJlOpTGf8w133rW/qE0hurXh9wJ+sM=
Date: Fri, 12 Nov 2021 14:42:09 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Kevin
 Tian <kevin.tian@intel.com>
Subject: Re: [PATCH 3/6] VT-d: don't leak domid mapping on error path
Message-ID: <YY5vMYpmqVJhqyL1@Air-de-Roger>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <d4ca5274-dbbf-4cde-1a4b-0d7fe294c360@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <d4ca5274-dbbf-4cde-1a4b-0d7fe294c360@suse.com>
X-ClientProxiedBy: MR2P264CA0134.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:30::26) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1f5b9680-3858-48d3-ea2b-08d9a5e23cf6
X-MS-TrafficTypeDiagnostic: DM5PR03MB2843:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM5PR03MB2843243EF0520884224BE91A8F959@DM5PR03MB2843.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: U8j9zcnzvWIjx/39lv9IhsiAwSiPUHLZGh9ZE8n+G2/Z9fTeYesh6XKThXzuci8HmicnP4dX8GPXkPN7Iz0xcb4CSr9HfeSYt7+gwPOolDSvSSCgmqUZDRyZlonuH5GS0oCirZ7ucms3k6XGUnPTQULhQ56lbXwC/wcbfXSmLtc2+vbFOljbcYQqwR+ywvDXwC0V6Dm+zVc2x/J2tnToVGX7sroK90VXBbGASy9bs24vab/cQhP/SgAvvgUpT3ouZHyNMhhtEOg8YyIJlTb3xn6NQuh5/5fc67rdG+iExn4xG9KQOvOgvSIeajP7p+JMz7fAL70QlT/WMpBGemrDAcarmrhN4eh22ybx+uIVeq2ld5sseHkHr46BrDpv1xRb0wjrexqNK26A/bfGnacrlfv2HdCt1VZd/y5IFsEi3xPXGd13dgeg8AvaTMT/cFwAS4DYzoeZrQLkRKtqNaxC6tDI1HO5/8FbjTKbL15Izrarl0+4nPt+Zz5lC4BSUlq47WNBY2HSQSWxl4fP1C3moQzVCoi9dmg31pQa01sNaCZeRLxmiKgM6tAz65foQyfq6WGn37H8uUSq7iDLj5HEsFOx+UPGN2b5xCarYRlzQfz7ClBQAQd8ecvlzRHNkdcBb5NHTPdcASySk43kTozBUA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(956004)(6916009)(83380400001)(26005)(9686003)(66946007)(4326008)(186003)(8676002)(82960400001)(4744005)(6666004)(5660300002)(86362001)(38100700002)(6496006)(66556008)(54906003)(66476007)(508600001)(6486002)(8936002)(85182001)(2906002)(316002)(33716001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K1RDU0Q5WjFwUHRKM0tjdUt0UmM0VWxBbldveUdvc2Y0K2JrdXNkcWhrb0dG?=
 =?utf-8?B?MnZhT01JQXd1aURjbHAyeDdQQXQyTGdFUUdEUTVYNlZUdUJwOGVTbGpmSWhI?=
 =?utf-8?B?ODh4ZFJLM0w2ZDBnWTBJOW1yTzlJa3ExZDN2L3hJNWNERHBnUTVDemQzTXJK?=
 =?utf-8?B?ZjBIV2hVQmRPcWl3a1F0V3pMZWpnSmdCdVlzVk83SEZzbkRXMEdiWGRtTVNY?=
 =?utf-8?B?SUErSzdneVpIQkJzWWpKRThzRThEdHdDSzc4V3A3MXZoMEwyVHBOUGJSNkt1?=
 =?utf-8?B?aDRZcDMwSXNabGRHaXEweGkyeTVENFVaVXcrVUg5K1BXYlYzVStIWkhYZmkv?=
 =?utf-8?B?aXd2UHBScUN1WmZqNkQ5RWYzeERNeE5ldmsvdFFIbk5HRzdxSEVxWEhNUWlu?=
 =?utf-8?B?eHRQNlJ6dFNFQlZmMjhFd3JYTGlpYmw1aVp0emRRcU1FK3g1RGlZejBsUzJS?=
 =?utf-8?B?YkpTN0R6UmtySFI2WEIycFhSWWtCQUVsYkNMYnU5cC8yWGpUL2g1NmRiM1Zh?=
 =?utf-8?B?OGxXK0pMZFF2NURvaWtnYmZIbndnSFM4d29FSHJjbjY5TjJYRmJHa3V3SzZ0?=
 =?utf-8?B?eTRYaDJ1blBGZWNlclpSMTdLTXdXYit4VGhyaHlxd3dhZmhlcnc4UHdmZWZt?=
 =?utf-8?B?dXRzR2NCUTg4M2FRaFlGODRwaVAvVy93WFpOSGFCR2EycEV6TUJ0OStKejFO?=
 =?utf-8?B?eW9HUWRGWmM5SEFzMG5MZ1UrNmRsTmJ3cStMSTl3NlRwWkF2cVhFMDkrcjdW?=
 =?utf-8?B?dFlaZlN1QzVwK1J2bUovMzlnUmVGZ0VIQ1B2YiszSmR0dkU5UEx5WXpEb0Nu?=
 =?utf-8?B?Zy9aSUtTSngxMUJ3NEhpNUxXMHVHRjZDYXJLaDFDZVJCajYyeE1rOUNNMTQr?=
 =?utf-8?B?S1IxbWFMZ1hzVjRRbjhMeEFQMzB2dVJpcVZiS2Nqek5KVnhNZjFVTmpNL1Vw?=
 =?utf-8?B?NHZER0N6OVNlYXNtdmRxbFA0LzJkTDZLZnBRSExRTXBPZnM4VHM1TmFSMkhM?=
 =?utf-8?B?c3ZmWlFrMWpKMXp0UFNEUDhqNjdnbTRIRlRIUWtNaDZ4ektCK1JMbUNKbzFT?=
 =?utf-8?B?QVZ6RmVYTEZsQUNoV3U0WlcxcE81R3RyaWg0Rm5jR2pjMU9CeXhRNkNwQThC?=
 =?utf-8?B?dkozWkZkaXdBMGdtS1VrUE1pQTZaMG9aZ0hjWnJqaU1OMHRkdHJYWjFWTEx5?=
 =?utf-8?B?ZXg2MWhqL0JPUUk2Vjd5Y3VmRlhDT3Vydk9keHI5ZGlYR0FEOUZabWZoYmJj?=
 =?utf-8?B?Vk56MFFDQkZKN0wzaUppclFidXhDdStuTFJiZTUrb3RkMkZJT0JuSmNiWVN0?=
 =?utf-8?B?Z3YrZzVMNDlXdzRVY1hLVWJ1ZHJLd2syaTc0U21UdW9uWjVKU2ZpOGNrMjRh?=
 =?utf-8?B?Ly9oV0xTMW0zYW0rU1FtekpaRUdORVNSOXM0WHdieitNclA5eWRBNm04bDJW?=
 =?utf-8?B?MVJhejdIdjRlSTFnSkgvYm9Qem1Jay9aQVRzdlhiQ2ZHdW9NeCtlc0VCeUd0?=
 =?utf-8?B?ZEtSdE1YMHl3cGN0b0ZUMGVLdlhpRVdwb3Fzejh0MEdEaSttMElKbncwbTBl?=
 =?utf-8?B?cTRQWFBWaThCMjVQRk8wRU1VdTJkcjlwbGhQeWJRbWhPL1J0OUp4QjZOTHNH?=
 =?utf-8?B?VTVoSi80U1k5NWdLWldjVE5ZTWFzQlRrcFN3MytDT0lBNHRndlB4TG9zNmZj?=
 =?utf-8?B?U3VFNXFFdDFWRlB2eWNJVUJVYWxiWjJmVGo0bUcvKzVnaWdqV1BWMkViMmh6?=
 =?utf-8?B?UDBhek9iZHhSa1ErM1J6cGU1Wnd6RmMyZzY3TUx4Y2JKUllhTWRTQU9IdTFt?=
 =?utf-8?B?MEJicWNhdERqMWgxM1hrTE9TREtKc0htSkN4ZEFqeU8vSzlrZm9hYTdVZ0RU?=
 =?utf-8?B?UFQ3dS9rUXVxZVRjVjRnbUJFRXdLVzNVL2dPU3BCS0c0cy8zSnZCS25EY091?=
 =?utf-8?B?aUlLZlE3QmRRc3VJNWVSOXhyWWx5bjdGYVYxSUNMamZYa3NCWGloR1JGWmx6?=
 =?utf-8?B?amZwTUhUQ0tTdS9qeTMyS09TVlNJL045VkhpT0wvZ2VZNFppQlhlNHZkVDJQ?=
 =?utf-8?B?NVU0N1FWTHI3aGZuMlVtbGo0SlpMSnl4N3lqYXhZb0F0UHJpYStYdGNUTHJI?=
 =?utf-8?B?OWdpUnRzUElObUZiOFp6SEFQMG1aSEMrL0RZK1U5UVBVY3FyQm0xN1RxeDJs?=
 =?utf-8?Q?bG0O8+fwb6XsumMArfxNAAE=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f5b9680-3858-48d3-ea2b-08d9a5e23cf6
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 13:42:15.4319
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: C289cJg4dKx5c/OjEkTW4IWaq8fVC1CP10EuJ7YNUCKduyNbkZZ8FxMQtb1gGY7bd309D2/UZN2kJvozUHuwfw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2843
X-OriginatorOrg: citrix.com

On Fri, Nov 12, 2021 at 10:48:43AM +0100, Jan Beulich wrote:
> While domain_context_mapping() invokes domain_context_unmap() in a sub-
> case of handling DEV_TYPE_PCI when encountering an error, thus avoiding
> a leak, individual calls to domain_context_mapping_one() aren't
> similarly covered. Such a leak might persist until domain destruction.
> Leverage that these cases can be recognized by pdev being non-NULL.

Would it help to place the domid cleanup in domain_context_unmap_one,
as that would then cover calls from domain_context_unmap and the
failure path in domain_context_mapping_one.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 13:45:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 13:45:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225251.388991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlWrr-0001Ru-Em; Fri, 12 Nov 2021 13:45:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225251.388991; Fri, 12 Nov 2021 13:45:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlWrr-0001Rn-Bn; Fri, 12 Nov 2021 13:45:23 +0000
Received: by outflank-mailman (input) for mailman id 225251;
 Fri, 12 Nov 2021 13:45:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gYwu=P7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mlWrq-0001Rh-6j
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 13:45:22 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c735f557-43be-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 14:45:20 +0100 (CET)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2054.outbound.protection.outlook.com [104.47.8.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-32-vVoBgrpZOL-YSq4YWNkVcQ-1; Fri, 12 Nov 2021 14:45:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2446.eurprd04.prod.outlook.com (2603:10a6:800:4e::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Fri, 12 Nov
 2021 13:45:16 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4669.016; Fri, 12 Nov 2021
 13:45:16 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P192CA0068.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:82::45) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Fri, 12 Nov 2021 13:45:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c735f557-43be-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636724720;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=pTyQnl79lD825VjN87OQgo3mnN2RVybPwFky3bWs98k=;
	b=lMsi7NYG+wCI4pHtXr3HVrAQE71yEpDiHLw99kvjBrkQYpNUTiWs6sq4hpb+CtOye/BVGC
	5J3ZEhAUNEBkUVfPlwsVGsTbAMDgKlHnvj61wqwCDPtNL7MgpGxfEDepYqcw/zeGRXXx2O
	eFNcRMd5IZVNem558zeDsnnj9Prcv90=
X-MC-Unique: vVoBgrpZOL-YSq4YWNkVcQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YfXSxgn1QX67I1lKtzgFl4+/b2yvDu/Id7BGrs9VzUJvb16BRXm2PrlU4WmrtytIiDbfkSKW/ZDWKl05Lk/pa7srAeswoiSO9f8OdJIWuf3amB0PP3dZ2T4K8RTMM01gMCcA3F8TlyNT8kvOIH2R+Tg+XU0FJOvnsPMW3bu80QqWk203r9ysWB8kQMHvlUPsh/rv745yXM+YihcKfP59MvJao94l/HRPhOI403wKx4wxZtNk0PjTvTvz14Obp/H+BsLNMh99CqAGmvRCNFuxPGPi5ty/ZLB2MUjFPNmQuIRUzZdV9RKb5QpNPg7Af76r/QTQvJQg+mombfC4R9kYtg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ATCPuTxKIiHV0KnzFB9N83LvujMW/X0Oiqf3zEn/IZI=;
 b=juaxStk0gaR2YaZgv8AgZB0tNvfJGu6luWBuJgLLxw/kKDnEQupyHJMHHsAJ8nEGWZsuO7eJc78P62mI/I4jfXwxY0jB9MrWNNjdO5pgAHSMbvgO5320Zbj5TH84RXj9xWooImqWH8lVwtOqqPLX5vBCwjWtWDUB4AOQu59Pl2y/sZJ3MZDi76cpg4sesckZg2Sfku6NekxBeilQWK90XEA18MNHGiZ9/RQjaIXUVZQr/g0fSFvW6TDvD2SmgF942zEi0Hr1sxozE/UJE29sTtrGS3c4TuOU+KVSjEweeS1kQpYAbDFEs5qk7UX19NI179jzlc6HpP157lkgk3dpPg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b640505d-96cd-3306-ae16-eceb9e528995@suse.com>
Date: Fri, 12 Nov 2021 14:45:14 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 3/6] VT-d: don't leak domid mapping on error path
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Kevin Tian <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <d4ca5274-dbbf-4cde-1a4b-0d7fe294c360@suse.com>
 <YY5vMYpmqVJhqyL1@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YY5vMYpmqVJhqyL1@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P192CA0068.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:209:82::45) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 254faedd-b8a5-483d-bcc5-08d9a5e2a8cf
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2446:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB24464278510013C783793CDFB3959@VI1PR0401MB2446.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	QRiSbxyG0nVM6vA7rbTjV/uInCIt8J7Yv/AcYUd4p/Q/ozlabOvYQGbFl+VB9mi5NgFFQdEjBLkFAosMLOlm3A3V9jwuQb2M90E2vS5Co+K/lW5+MBGaEv7KLEn6SHKha3C5stJcdPcrHoIQMDliDCZaFzrb19jMrzlxuY2ly/vu3X+W4NNCBVJbeRgxLg1IrlKGamehrWlOj2O0U/VXD03lXfmPmtZwAHSxDMUd5HW4zRyjdqXe9qiKzfksrZy8eXl4xtQSRA9CChNUU/VVlV4HVNqUVhJYB6U2lwOMvCdKkba6z+czXdS7daB8ssy+TOo4YTnWeBRcpiGEdyf2fX3sbeuSKCQaovn4B9orwBrl3xCXCABsaCTguTmT+fkmPxkge+SFwqQdeMJTkXG2TxI5Tes0X2UsCXac+HmRQ6UDJ+ZASDXRc4yKufPaLnP1TYNgtpzd7TCm/0qeNDLaWZD+TJ8CfIlTDxMCR99vz8Y5NJZ6spEMcIky7aUIwpjwiZ+jO5dgKKAe7fPImEshZZhGAmyTfmXCmro8U+Ay8ZrR68acyMTQkcHViggVmUvJXyufolQDq3I32NyU+CUC3x4DbPb66Ukp21NjPAf0DJlrbl3p67FnbzP3TITlfQ9xgatB0OLVYrLg0bfKO9tAdTpNZhGbRTypZa5iMT77O9EVGunZatz2CcK/jU3+Gnz9h6FoXXH77e6IcM6yV9Yo8BAscFnAeRc7dy3tvw1rLfezSuHfvVQ81CPoZnFP1sN+
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(5660300002)(508600001)(8936002)(66946007)(31686004)(16576012)(38100700002)(83380400001)(36756003)(54906003)(66476007)(4744005)(6916009)(956004)(2616005)(66556008)(186003)(26005)(53546011)(4326008)(31696002)(2906002)(6486002)(8676002)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?q1FgD3Rl6O3ZRe8SCjnRJRlrQRr43Be9krnPw+piyZJpqvFh7bkn86FP6mp0?=
 =?us-ascii?Q?bwPVfDnSPeFz41gCOxN9Y0vgxcHtgcHpSOwVVy0iyfeShWnutRaPgQ54kcpw?=
 =?us-ascii?Q?oTxZbeTgVqolbkQuuUnZqpBWKq2bT9hnuh+rEGz9gNv2fjcsFgfASlXu9yqJ?=
 =?us-ascii?Q?L7lusdQZ1N693r37Sp8SeMO8YmUnYS+8dlgNC1eVpRpWDrCQrDCXWQC9eP/y?=
 =?us-ascii?Q?agdNScum0GyHXjNw8eS72pAFSeW25aY+5jozQV36atfyQky4Aa3X4e6Ma2Op?=
 =?us-ascii?Q?fyU79xMAcYWiHpwCK3kc7CTENkKfu4SauDDdsGYR43vfSMCxSLdhLANAQR2m?=
 =?us-ascii?Q?9fo9N4MtyKBioGMqvPY1zip7L/jp5eKLOE/RvMv6t7+HKVch+qIvjZ6NZDD3?=
 =?us-ascii?Q?spN+sChzCMKy2vrMFXmwqQeoM6AIBkUsBTHKyq6/UC33xvLtu4LLEB756T4u?=
 =?us-ascii?Q?d9ZUMK6L4Vr0DF5itrNwcTpp9Rk+xSJbqC5/VwOymIHAbt93ow8aF5jIkiaE?=
 =?us-ascii?Q?xlDhvrw0lP3wHnZ25zAXQWsK5N2QyaacUPBj3N1hfsO9/uiDN09meGJUAAZg?=
 =?us-ascii?Q?e+bzm6AjuUe19rWMwGRYZq9AidDj3cX9hjjr3v0ZZI0LehDf3IfAS9mw2ktS?=
 =?us-ascii?Q?hqx3BiHzqeVF73FLXLA+Iw6JXLm/NjtCm41bl0AeaWbgPi3ZzqwnHSHgAiyK?=
 =?us-ascii?Q?CBOUgDEixMIBYXOUjdYweXbDgRcPMrqCdmAbSaFXOTOBppAWc6HuLMMq3vaX?=
 =?us-ascii?Q?hQIwUsUPSAHOl6qMLfCIIph4bKLgfJJQ4cESyaenyLieuPOICxBL5KrcjWBv?=
 =?us-ascii?Q?8TUPn5vLK5mstJsna2zFQKK7qYg3VE/xfnOnYVaMjXevZIAX+CdFOaW5rnJH?=
 =?us-ascii?Q?00NVP+eGpRckFCcSSudj6dOsMTdsjpyvvdZV5Fz120qeQx1V8ZcolyJNNqDO?=
 =?us-ascii?Q?MqdI/4cZ20n+wdkN7UVjuyBSINfS2jljcH6HyoyzI6BFxc0dTkpdaI3geV9J?=
 =?us-ascii?Q?v/miFV5lWtK0g47Vq0VbHRZeBGbwRnDw8x+DIgfUXl1+8m5hKplcPXRY3ihv?=
 =?us-ascii?Q?P1EgSlj4D7EWQMM9JZtnc7BUiY5oRVb3g5K+4FQo6kzw8VREHCdbO/VzaXLl?=
 =?us-ascii?Q?94eLjzPQsMYaHzjQz//EChyf3JmUZI6r/fM7eOhTt9/Y2Ied+zsAcTAV1Tz5?=
 =?us-ascii?Q?k67k/tmb9tWMbxVo6fWIlsqjkT/VeOgqEPEZPtgJ4I5u3KQrWVmKR7XtVD4W?=
 =?us-ascii?Q?qKbjxUIlmKPd6JKSSN4y+/Jh+J/0VxrO4/JFp9Um4dOUyRxJd1lIWlGuA8Tw?=
 =?us-ascii?Q?tNe+Kwh9We1LO9e6V5BIFvbuxOldiRfTgSsTP4JNxc+P1HNdDsgIl0s2i00U?=
 =?us-ascii?Q?Wgo3FZBrNvMiIYebU3jveTYtprcFY9xP0BZQr5vCQ7NY+nxy1qu71AcHDTrn?=
 =?us-ascii?Q?PY59vjoSLyB03v6mVqMPmsGKanugiKEsen+iE6/6NHXiFrKkKSXuQvQ9/zvT?=
 =?us-ascii?Q?I+T+kORTXRriZ7vWF9qtj8hrgOIzgd/ti9QoWf4oc14+4HTznbd8GkRdI3Bd?=
 =?us-ascii?Q?CQHnenbm5qm5zW76Q5PKtX2i+id4jJBAngzhMJ8/PoJ3esn636Sm2Ipr/EUO?=
 =?us-ascii?Q?1+LYS/cj5B7OHN7Qs1EB4XM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 254faedd-b8a5-483d-bcc5-08d9a5e2a8cf
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 13:45:16.4123
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6Tqhnl2jl/OFi4sgmmA9gZrVeZHLbNOol4+YP43Sj4f8j010GgvghcnhUCPjOKUdbJPmu8In0jSKKdJCe6rMSA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2446

On 12.11.2021 14:42, Roger Pau Monn=C3=A9 wrote:
> On Fri, Nov 12, 2021 at 10:48:43AM +0100, Jan Beulich wrote:
>> While domain_context_mapping() invokes domain_context_unmap() in a sub-
>> case of handling DEV_TYPE_PCI when encountering an error, thus avoiding
>> a leak, individual calls to domain_context_mapping_one() aren't
>> similarly covered. Such a leak might persist until domain destruction.
>> Leverage that these cases can be recognized by pdev being non-NULL.
>=20
> Would it help to place the domid cleanup in domain_context_unmap_one,
> as that would then cover calls from domain_context_unmap and the
> failure path in domain_context_mapping_one.

I don't think that would work (without further convolution), because of
the up to 3 successive calls in DEV_TYPE_PCI handling. Cleanup may happen
only on the first map's error path or after the last unmap.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 14:17:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 14:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225262.389006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlXMT-0004vc-4c; Fri, 12 Nov 2021 14:17:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225262.389006; Fri, 12 Nov 2021 14:17:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlXMT-0004vU-0y; Fri, 12 Nov 2021 14:17:01 +0000
Received: by outflank-mailman (input) for mailman id 225262;
 Fri, 12 Nov 2021 14:16:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=26E1=P7=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlXMR-0004vL-QF
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 14:16:59 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 306e35e8-43c3-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 15:16:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 306e35e8-43c3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636726617;
  h=to:cc:references:from:subject:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=9rx/3rYsSDkhCDq7zdNyYN1I39vtXo0M7nvNwOYZwkI=;
  b=bv9Gg+iRwQimHTBzS4VMbLXdw1WPCmjmy2qdYddbcDn0bzAQHwmLdJ1u
   DzXeDFNH2neRBkIpZY6rFzUGyB8YIp2D5SDWbZ14PIuqBNp+jqrAAbD3A
   Y/jXmaksAXPaPooeBaj7dv5DQsRGtErUQrjJ35sHkM98NYHjGbLI16Jda
   c=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: s1fUiSJ/3V/uFtpwoATM8bO8STehSK+IgAeqSGnLmj2/eWteB5XeP6MZLUhHRg44/kEc6wspMQ
 WT3cwCRcOachcCTMhoK4H8DVxkH/a6jan3jBnt6bk6cgiKpEw8p2aPfyPIKxmjwAr92EH/GvRa
 49AE90L+G6Y38Br6Ceh4s2dA/FGKXwx3PL0j1fkTE3ouWNhFy4bdN25zFY6sbP+kFGPxIWT26N
 dZVyvvdUvDsYzEgOKsZaA1Nod9LWs+c16d2ZIGzAejoZ2PKyhELIxsN8UAyBmYFGv7n0mHkDD1
 blP6gsqNeJaXPlEL/CMUxR5E
X-SBRS: 5.1
X-MesageID: 58076684
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:DQfnn6l5TWqfya9JvrRwgfXo5gx3IURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJMDW+FOaqPYzSgKYwjPonj8ExTvp7cyNZmSgJvrC4yRCMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29cy2YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 P9nlb29FF8qAqrnvrwUCCFmFCp+OJQTrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQKaGO
 JRHOWYHgBLoTwRCMUpPULMCotz5vVj9NBxAmFu7nP9ii4TU5FMoi+W8WDbPQfSLWsd9jkuev
 njB/WnyHlcdLtP34TiP/2+oh+TPtTjmQ49UH7q9ntZ6jVvWymENBRk+UVqgveL/mkO4Q8hYK
 UEf5mwpt6da3FOvZsnwWVu/unHsg/IHc4MOSatgsljLk/eKpVbCboQZctJfQPYMlO47GGQp6
 liiuYvgXgRRt7aVTEvIo994sgiOESQSKGYDYwoNQg0E/8TvrekPs/7fcjpwOPXr14OoQFkc1
 xjP9XFj3OtL0abnwo3ipQif6w9AsKQlWeLcCu//emu+pj10a4e+D2BDwQiKtK0QRGp1o7Tog
 ZTlpyR8xLxRZX1uvHbUKAnoIF1Pz6zYWNE7qQQ/d6TNDxz3pxaekXl4uVmS3ntBPMceYiPOa
 0TOow5X75I7FCL0NvEpPtzrUJ97kPKI+THZuhb8NIcmjn9ZLl/vwc2TTRTIgzCFfLYEzcnTx
 qt3ge7zVC1HWMyLPRK9RvsH0K9D+8zN7Ti7eHwP9Dz+ieD2TCfMEd8taQLSBshkvPLsiFiEq
 L53aprVoyizpcWjO0E7B6ZIdgtURZX6bLirw/FqmhmrflA7RTp/UqCJmtvMueVNxsxoqwsBx
 VnkMmdww1vjn3zXbwKMb3FocrT0Wphj63k8OEQR0ZyAghDPuK6js/UScYUZZ74i+LAxxPJ4V
 aBdKc6BHu5OWnLM/DFENcvxq4lrdRKKgwOSPnX6PGhjLsA4HwGZqMX5egbP9TUVCnblv8UJv
 LD9hBjQRoAORlo+AZ+OOu6v1V64oVMUhPl2AxnTOtBWdUi1qNpqJiX9g+UZOcYJLRmflDKW2
 xzPWUUTpPXXop9z+97M3PjWo4CsGup4P0xbA2iEsurmaXiEpjKumNYSXvyJcDbRUHLP1J+jP
 egFnevhNPAnnUpRt9YuGbhc0q9jtcDkoKVXz1o4ESyTPUirEL5pPlKPwdJL6v9W3rZctAa7B
 hCP991dNenbMc/pCgdMdg8sb+DF3vAIgDjCq/8yJRyitiNw+bOGV2RUPgWN13MBfOckbtt9z
 LdzotMS5iy+lgEuY4SPgS1j/miRKmANDvc8vZYADY630gcmxzmuu3AH5vMaNH1XV+hxDw==
IronPort-HdrOrdr: A9a23:9YQ1I6AHwvrt3CnlHeg8sceALOsnbusQ8zAXPh9KJiC9I/b1qy
 nxppkmPH/P6Qr4WBkb6LW90dq7MAzhHPlOkPUs1NaZLXTbUQ6TQr2KgrGSuwEIdxeOkdK1kJ
 0QCZSWa+eAfWSS7/yKmTVQeuxIqLLskNHK9JTjJjVWPGVXgslbnnZE422gYytLrWd9dPgE/d
 anl7F6T23KQwVoUi33PAhJY8Hz4/nw0L72ax8PABAqrCGIkDOT8bb/VzyVxA0XXT9jyaortT
 GtqX232oyT99WAjjPM3W7a6Jpb3PPn19t4HcSJzuwYMC/lhAqEbJloH5eCoDc2iuey70tCqq
 iBnz4Qe+BIr1/BdGC8phXgnyHmzTYV8nfnjWSVhHPyyPaJDA4SOo5kv8Z0YxHZ400vsJVXy6
 RQxV+UsJJREFfpgDn9z8KgbWArqmOE5V4Z1cIDhX1WVoUTLJVLq5YEwU9TGJAcWArn9YEcFv
 V0Bs203ocWTbqjVQGagoBT+q3oYpxqdS32BnTq+/blnQS+pUoJjHfxn6ck7zA9HJFUcegM2w
 2LCNUvqFh0dL5iUUtKPpZ2fSKGMB2+ffvyChPnHb3GLtBNB5ufke+83F0KjNvaD6DgiqFCwa
 j8bA==
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="58076684"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Ri/XkDXfmlHa2w+Pjo/pXWrU9cabnZddaub1wVRsrgik5mlh5dlsMZFExupSThCDo0/R4f9Pt+kY4P+MR8rZ1KWVaru13MHf25A6E7WOGA/zBFh57Mqs4HWf+/R4f3X2JXFTkkf9kPXoCwwINQp8LEe9bf+Sec1WUseCNFM939uKY0804xeK0mHZMVYujnHOTNiIF2BXRosVLLmBwPbuTW3TqaFtm6vhnWpnjJS8CMW3T9pfrlnAstHtc7CRoIEMeuC0Zr8Mqj+cHEovtPc2Yp5WNSJQQo/vXUE2NaILdhx5LLbTJKxHxeMpTuV5hXcLL2Nm0Yd1LICD8aKNc0sK+A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=H5VbkS6BKgoeA4buEgq5xrLtgBXr2FVDsIdr+N0fBqM=;
 b=lIS8WPH8ilMJoUNWCV+mWxZLAk9jMEV/V9jP6dM3TWJMdmb41ey2gcOCU4t3Dr5Q64+6mujqZOEmNjK5e0hu4MlB45z0HmK6dpKDINbGLhtqbRHnNWlR74LjpCpLesrNTRxNHvgGb85LAvFr2NegTELyWB8bNlxXsFuBvcoci7KhaC2OIUp9/RchS911XiWl1FabvLPom9IwUPfCLl+j4uT0AnMd15wmowMS1pp7WnkDvxqXQ53W+QVJ137HGEGAYNZFvo7T4Lmhm+PTz1W89ueB6BT6Kp2o/qt6GN85bS+4nX+sP/TmqG+ucdXwTStm/7joS8i+k6bOTu25DnCk6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H5VbkS6BKgoeA4buEgq5xrLtgBXr2FVDsIdr+N0fBqM=;
 b=p1fsQ/E76CGX82qsNeTcbJfRsAu9A3Eo1l7cE9ATQXPTd8RH0lZssJ1BKqT0bC99tIIJmw2JiaV6Rg5OwCL2HY3n/MHMj7cO0J4AlYgTfF2F2m6ThsJktau9++mpS2Wo4lI1STyVQ0+bq8qGRnRNFL+5K/RI79B1J9nUZ5NzzeQ=
To: Jan Beulich <jbeulich@suse.com>, Jane Malalane <jane.malalane@citrix.com>
CC: Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Xen-devel
	<xen-devel@lists.xenproject.org>
References: <20211018100848.10612-1-jane.malalane@citrix.com>
 <11747958-dc2c-270f-6f96-4d9f53ea724e@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] tests/resource: Extend to check that the grant frames are
 mapped correctly
Message-ID: <b1377bd5-fbc4-0c19-8abc-e63ef126504c@citrix.com>
Date: Fri, 12 Nov 2021 14:16:42 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
In-Reply-To: <11747958-dc2c-270f-6f96-4d9f53ea724e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LO2P265CA0313.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a4::13) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 49e47a26-fa25-4cb7-0ddc-08d9a5e710f9
X-MS-TrafficTypeDiagnostic: BYAPR03MB4487:
X-Microsoft-Antispam-PRVS: <BYAPR03MB4487B401AF4031CAFB14C29FBA959@BYAPR03MB4487.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:33;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: S2ZPbt5jYvlcrVPB5k9wKeiGXTHujgUBtP87YVBG879E0F1H5Ur6Vz6S5prRSCUObCwyZ9983UrAAzHfV1zyhXKQxh7QeEhfrB1NZBgomO0dl0Zwdxk2fbhzk9CBCkJ3ultlW91y3xZdMhlY6uoArEfK0YQaVubqCxA+pzUfVEyf8vptamRXuFEH7Mgfu+33qwBzKr4oPdsWNAL9aJJdZXwXALJZJbVUXZZtxpz8c6yjbA6BeZwhcZ38G34MCsjD4r5py4I0aA+P+miGSs4c34bVJO9ZU7h8qy7iu//og60PThhwnlJ0lbYtPKmBA9VAZIzikkXDR8ZXCSFer7qM2uLRbkBP8xn5VOvJtWopSji5nXNLzctJ5UIzDANb806SlCOlRiPdNirmMOkYDK/xxXmQyLqZkfBBAtY3fsIi5v43yHk1P7Vt02xZroFl7rzIJ+QVD/J03b7x7HQ73AFvwVcdi3ghi/TEx8fB2OAclnYAgIROxb+FbceYEaxQaui09j4I7NwUlmotg4woa66s0ULKXWLKobrY5A9HbeTNwGVAPcIzzylC0tMNJYnHGPOrMJ+rF371rbqR2kQPhDEDJtS1ADvuU4cK4GbBc2ICDWhf96mL3EOwSQXWDJnXPCga5//Ng4yx/upEoZOttl0BCAAaBl/CDQ7eAJVIpw+vqRMXft2fh6UO+E4rFaC0ljaDT5ks1IrCNF4girUxn8S555e8T/hHzr8uc5d1MLIBVek=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6666004)(186003)(8676002)(83380400001)(66476007)(4326008)(26005)(6486002)(82960400001)(31686004)(8936002)(508600001)(5660300002)(2616005)(956004)(66556008)(53546011)(66946007)(86362001)(110136005)(16576012)(316002)(6636002)(31696002)(36756003)(54906003)(2906002)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TSs5ZWpqWm9oaTRWRTNvS0p6OUVmMEJ0T2NCZ3IwaHZUSFNtZUl6ZndlYkFF?=
 =?utf-8?B?RHFuRlpIYTNKQ1Zwbzc2eWVzSVRldmVJQ0tmNWxhWE5MekNMdDhFNVdLRlJW?=
 =?utf-8?B?bDhLdEUrdXdXcVBVSnBMUVlUZkt6bzd6OWVndk9OSC8zdDlHVkJzLzZVQmJ1?=
 =?utf-8?B?ak50UDhLNFVmMFhjc040dnZjaE1BV0VSbTNhVVR3SG9oWEdSMytQYU80T1lV?=
 =?utf-8?B?UlBhUW1jb2lJTUF2ZkViNDZPVHBvV0l3U0dxSUpOWTFBS1FJWlZBWW9VRVdB?=
 =?utf-8?B?M2xtbitFOTYrM2d5aU1JWVdQcUtjL28wUUlkZTQ2OWJUOGlxOEd0elg4NjlO?=
 =?utf-8?B?NVcvRnhSTmNIbjhsT2tNSDNncWljZUJJbE1tRERzVzdyNWJhMVBackJnVXFt?=
 =?utf-8?B?cFhzZklCQVZFZlNEc3loNHRtYkFSc2N6ZnpKN29aN1c3Y0tmWGtVWDIrc3U4?=
 =?utf-8?B?YVoxcWRSRFhqZFd3WEZRSVhWU3c1Vk1oL2txK01SdGVHYnM3V216WWtheTlq?=
 =?utf-8?B?eUFnVk91ajZJVVFsV1l1UU9aQkw2dzZzd3JmdGphdUg2Y3hHcTMxaysybmxl?=
 =?utf-8?B?djRDZnRSVjVxaWtrSmQrWXYyREFKQ21haDhEdWJMWkdjTXpOd0xkTUNqcFps?=
 =?utf-8?B?NUljY3NQemQ2QkJac1NHblZIaDNPYmNPTEtRWFMrK2F5dE5lakRpZVV2MTJY?=
 =?utf-8?B?S3hqT21lNURuNjg5Z1ZRZDY4Y2dCMVpRSEZiVG1GYk5BbTFJZHN1NGdGWVVW?=
 =?utf-8?B?SmlWSFVtWEhDU1VoTTFqT1I1RUc3U3JINkhwWWxMU0ZremxnWHhzTGxTL1k2?=
 =?utf-8?B?amUwd2hadjJTNTJBTlYrL0gvU2w0SXlVdTY5akhWQ2xQMkQzZFVvOCs5bDhV?=
 =?utf-8?B?L3FkSmFsVjd6REw4djdZVGw0cjhqYzA5MVdDUStKUDc3d1JtUkNTNzdKTHlE?=
 =?utf-8?B?V3RKWjlFQ0VxdjJYdlh6QUZzdjFFQXEvam8zeWpqZTR3c3dNN1Z0Tm5XMGhF?=
 =?utf-8?B?eFhCN3pPWU8vd2NUUUdFcnJ2ZjhzNGtRbnYxNC9wKy90Sys0SzVQdFQxYk56?=
 =?utf-8?B?T2dNS1dlSHBzZlNPN1g2R0E3RDREY2gzeUdnM28wZjA4d0VaNXBCc2t6eUgr?=
 =?utf-8?B?MVQyenZDMVAvbnFkOU4wZGVXeFluUkVNNng2SVpsQzdRQU95UDdnSmJnNkxO?=
 =?utf-8?B?WjJiWlBiK3JIbHF2UGlwcThWVnprS2g0d1NaWnc2elVTdEZaSUZoNXVpQjN5?=
 =?utf-8?B?cUwxYW92QTE3OWQ0T3ZibFdkR3MxRnpsaXhYdVloOTVxdm92ajJkUHhYZUlu?=
 =?utf-8?B?dGI0M0dYQTdZSGxIdGxBM1NaQ1NJQjBFRlBZK1p2cnFkNDRLRysydVBQQTIy?=
 =?utf-8?B?VlhqSHF1QUNYOXgySU5SaWNhNk1DL2RXaFJRY1QwTTJUYlBaSUg4MkFuRVI4?=
 =?utf-8?B?Z3NJRUxSNzdGOXJzQS9SMkYyTlV6a0VmY1BzZWdTZTUrRVVlY2ZaUC94V0xa?=
 =?utf-8?B?YlkyVVlHR3N0TkpYVjNwWkF4blpURk9DZFhvd0ZyTmxjRURVVEVQQUhSNXZu?=
 =?utf-8?B?OFIrZ3c0VVJLcFhNaVk2ZFhQNHdnUGV5M0xKcElaR1pmZUFtY0IxeTJjQnpI?=
 =?utf-8?B?WFFqN3kwMDlwTitIWUl0aGZNcUpWaFo0Q25EdXBrc05SSjZrVVJPaDdGRlZQ?=
 =?utf-8?B?YkFtcW13UHowK3hiNTlzV0d6K0hmeUNkZVVhNWVEckN3b0lsdUdpMkxvMTZu?=
 =?utf-8?B?UzY0dnBxdG8xQlR5U2hDWkpxVFhJby91bmM3VVg4VDYvam1oYjY5QmE0RitM?=
 =?utf-8?B?Q2VrT1VhTmhWSDFnS2pKZk9VMTBjR2lMa2M5Q0VrTWcwSlh2NXl0eVpzQkNE?=
 =?utf-8?B?allramhlemFxckFZK282ZHJTUklMWERUd21TcFlRK2hOQk9jZGNJOVFiWWxU?=
 =?utf-8?B?TE9zbnZObkRNYVRERmNzTnBjeEdCaEhwbmtEeHVrdXFTSnlSMFVCRnlMeE5N?=
 =?utf-8?B?dy9DTzVNYzk5d0FrNTEwZjh1RDc2Z3RGM1A2azNEMGJkUGhYYjlMYko2aElI?=
 =?utf-8?B?emxQRCttNSt6US9oL1UzV3hIYVgzT21iR3I1bXRVbktZYTJWdTQxQUhFbjJO?=
 =?utf-8?B?K28zSFNlQWtXUFdPRXpqOHdGeGU4djlCRFRQWk1JSmR3ZWw1b01VcnlXRWlC?=
 =?utf-8?B?SHR5SWpHRFFxZHdNWk9SQ1ppL2dsS3VDZEZDa2UxbVlRRmMwU3VHOWlmSER2?=
 =?utf-8?B?V3JZdUpVOFVpaGJJdms0WFRGY0tnPT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 49e47a26-fa25-4cb7-0ddc-08d9a5e710f9
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 14:16:49.2320
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5NiE1JMGDNk+1/DP6EILi0rNiI9cCFF//jOUWtBrjv4ge1MIxM1kfCda0w7dn0PsifY14tYbtvb3NIKXyyZ4lEvBhCehZrONL+oPTzr5izM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB4487
X-OriginatorOrg: citrix.com

On 18/10/2021 12:01, Jan Beulich wrote:
> On 18.10.2021 12:08, Jane Malalane wrote:
>
>>      /*
>>       * Failure here with E2BIG indicates Xen is missing the bugfix to m=
ap
>>       * resources larger than 32 frames.
>>       */
>>      if ( !res )
>> -        return fail("    Fail: Map %d - %s\n", errno, strerror(errno));
>> +        return fail("    Fail: Map grant table %d - %s\n", errno, strer=
ror(errno));
>> =20
>> +    /* Put each gref at a unique offset in its frame. */
>> +    for ( unsigned int i =3D 0; i < nr_frames; i++ )
>> +    {
>> +        unsigned int gref =3D i * (XC_PAGE_SIZE / sizeof(*gnttab)) + i;
>> +
>> +        refs[i] =3D gref;
>> +        domids[i] =3D domid;
>> +
>> +        gnttab[gref].domid =3D 0;
>> +        gnttab[gref].frame =3D gfn;
>> +        gnttab[gref].flags =3D GTF_permit_access;
>> +    }
> To make obvious that you're done with gnttab[], perhaps better unmap it
> here rather than at the bottom?

This is just test code.=C2=A0 We could unmap it earlier, but that makes it
irritating if you ever need to insert printk()'s.

>> @@ -123,8 +162,25 @@ static void test_domain_configurations(void)
>> =20
>>          printf("  Created d%u\n", domid);
>> =20
>> -        test_gnttab(domid, t->create.max_grant_frames);
>> +        rc =3D xc_domain_setmaxmem(xch, domid, -1);
> That's an unbelievably large upper bound that you set. Since you
> populate ...
>
>> +        if ( rc )
>> +        {
>> +            fail("  Failed to set max memory for domain: %d - %s\n",
>> +                 errno, strerror(errno));
>> +            goto test_done;
>> +        }
>> +
>> +        rc =3D xc_domain_populate_physmap_exact(xch, domid, ARRAY_SIZE(=
ram), 0, 0, ram);
> ... only a single page, can't you get away with a much smaller value?

Yes, but again, this is test code.

Furthermore, there are other plans for further testing which would mean
1 wouldn't be appropriate here.=C2=A0 All we want is "don't choke on limits
while we're performing testing".

~Andrew



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 14:21:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 14:21:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225268.389017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlXR6-0006Qw-N4; Fri, 12 Nov 2021 14:21:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225268.389017; Fri, 12 Nov 2021 14:21:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlXR6-0006Qp-K2; Fri, 12 Nov 2021 14:21:48 +0000
Received: by outflank-mailman (input) for mailman id 225268;
 Fri, 12 Nov 2021 14:21:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wASN=P7=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mlXR4-0006Qe-Rb
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 14:21:46 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc5d900e-43c3-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 15:21:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc5d900e-43c3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636726905;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=PJgvDmnU0Gw2TCe3FV2QRTHKwc1zmFb1icOaRHm2mVk=;
  b=Cyb0MZLzRBkrf85Vdjk6FpzrBoe09Vaj7YQaxly8bPtM4I7ySwxuxkxP
   YrVKWCEI2wdy0kZFu9CqvQ5a7Wtr56rjZOn1GgMo9oyt3BtiG/Vqn+aSo
   E+mHEUWY6Az4NpdFC+5XTWmmTia3MMjdZn1frelCK/Pfxrwthenf3I4jD
   s=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: k1iMMWY6VSdUrONqWuWD2Do0ah8bvWhE9hIlXrXIho2iyPZD9qVbF9w/sqFOaOwGX2fWScZ/nX
 iwhs5QmhZcVAvTxTZiboo+5X8tIdCvGPj0ywp8BsnABWwHw7mukcb+1LWtO3YNYhzz/nBnFglv
 fjL5b7jWMuEsw+6lbcs7lO6MJK+eEc/Q7tYCdjMGEEljW+dTJhGpHlNupCqp6UHHyFgXx3moc+
 LOzy7wDFNn5erJKTEZK+iovyPYbym3jqsZKYpIiZ/V86dwa6tOW8EakhlsR/4Z4wEugBB15hTs
 WSVWyDOeRp1thnc9Lhj8KHfE
X-SBRS: 5.1
X-MesageID: 59654895
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:A9lFXKIR4yB1fnUqFE+Rm5MlxSXFcZb7ZxGr2PjKsXjdYENSgWMAy
 jAYXGuPbvyNNmWhLth3Ptm3pE9QuMPdyNI2GgVlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6wbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Csel2y
 dYS6aaNChwwZpDmwtgYWEBhRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFlgNgjK8/6epsSoHh6wRnSDOo8QICFSKLPjTNd9Gph2J0STaeDD
 yYfQR4/NBHvQy9pAUkaL7QBs6CUmGf5LRQN/Tp5ooJoujOOnWSdyoPFMcXXUsyHQ91PmUSVr
 X6A+H72ajkEM9iYxSuA42ibjObFliPmW6ofDLS9sPVthTW7xGMJDwYNfUCmuvT/gUm7M/pAL
 2QE9yxoqrI9nGShQ8PhRRS+rDiBtwQFRttLO+Qg7UeGza+8yxaUAC0IQyBMbPQitdQqXno62
 1mRhdTrCDdz9rqPRhq1+LGJ6y2zOjIcKEcSZCsFSxtD6N7myKkxkxbOQ9BLAKOzyNrvFlnY2
 CuWpSIzg7ESi88j1Kih+13DxTW2qfD0ohUdv1uNGDj/t0UgOdDjN9fABUXnAehoJ6igSViC4
 yQ+pouF9bgzJ8uxkSfUebBYdF223MqtPDrZiF9pOpAu8TWx5nKuFbxtDCFCyFRBaZhdJ2KwC
 KPHkUYIvcIIYiP2BUNiS9vpU5xC8ET2KTjyuhk4hPJqa4M5SgKI9ToGiaW4jzG0yxhEfU3S1
 P6mnSeQ4ZQyVfsPINmeHb51PVoXKsYWnz67qXfTlUTP7FZmTCTJIYrpyXPXBgzD0IuKoR/O7
 /FUPNaQxhNUXYXWO3eMr9BOcwpRdilmX/gaTvC7kMbZf2KK/0l7W5fsLU4JIdQ5z8y5aM+Ul
 p1CZqOo4AWm3iCWQel7QntidKnuTf5CQYETZkQR0aKT8yF7O+6Htf5HH7NuJOVP3LEznJZcE
 qheE+3dU6snd9gy02lEBXULhNc5L0rDaMPnF3fNXQXTiLY8HVGUoYG9IVO0nMTMZwLu3fYDT
 3Sb/luzafI+q85KV646sdqjkAG8u2YzguV3UxeaK9VfYhy0ooNrNzbwnrk8JMRVcUfPwT6T1
 gC3BxYEpLaS/99poYeR3a3U/Z20F+ZeH1ZBGzWJ57iBKiSHrHGoxpVNUbjUcGmFBn/04qire
 c5c0+r4bK8chF9PvoclS+RrwKsy6sHBvbhfygg4TnzHY07yUuFrI2Wc3NkJvapIn+cLtQyzU
 0OJ299bJbTWZ5+1TA9PfFIoN73R2+sVlz/e6eUODH/7vCInrqCaVUhyPgWXjHAPJrVCL454k
 /wqv9Qb6lLjh0NyYMqGlC1d60+FMmcED/c8rpgfDYLm1lgrx1VFbcCOAyP6+sjSOdBFM01sK
 T6InqvSwb9bwxOaIXY0EHHM28tbhIgP508WnANTeQzRl4qXnOIz0T1Q7S8zH1ZcwRhw2u5uP
 nRmah9uLqKU8jY03MVOUghAwe2a6MF1LqAp92Y0qQ==
IronPort-HdrOrdr: A9a23:EhJepawnrcinrgLJfM7JKrPwLL1zdoMgy1knxilNoRw8SKKlfu
 SV7ZAmPH7P+VMssR4b9OxoVJPtfZqYz+8T3WBzB8bBYOCFgguVxehZhOOIqQEIWReOldK1vZ
 0QFZSWY+eQMbEVt6nH3DU=
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="59654895"
Date: Fri, 12 Nov 2021 14:21:39 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Vikram Garhwal <fnu.vikram@xilinx.com>
CC: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>, <bertrand.marquis@arm.com>, <volodymyr_babchuk@epam.com>,
	Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Juergen Gross
	<jgross@suse.com>
Subject: Re: [XEN][RFC PATCH v2 10/12] tools/libs/ctrl: Implement new xc
 interfaces for dt overlay
Message-ID: <YY54czzrdy23TKZY@perard>
References: <1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com>
 <1636441347-133850-11-git-send-email-fnu.vikram@xilinx.com>
 <YY1KwUC7EaJC4vJa@perard>
 <20211111194634.GA211320@xilinx.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <20211111194634.GA211320@xilinx.com>

On Thu, Nov 11, 2021 at 11:46:36AM -0800, Vikram Garhwal wrote:
> On Thu, Nov 11, 2021 at 04:54:25PM +0000, Anthony PERARD wrote:
> Hi Anthony,
> > On Mon, Nov 08, 2021 at 11:02:25PM -0800, Vikram Garhwal wrote:
> > > +SRCS-$(CONFIG_OVERLAY_DTB) += xc_overlay.c
> > 
> > So, this patch seems to introduce the use of CONFIG_OVERLAY_DTB, is
> > there a reason why the new functionality can't be always builtin?
> > 
> Above, if you meant removing "CONFIG_OEVRLAY_DTB" then here is my answer:
> This feature is supported by ARM based FPGA devices only so there were a few
> comments on v1 series to keep the code inside a config only. Now, for the tool
> side also I kept the CONFIG_OVERLAY_DTB to align the xen-tools with Xen.
> 
> Although, now i saw your comments on patch 10 regarding  "always provide
> libxl_dt_overlay() but which would return ENOSYS when libxl is built without
> CONFIG_OVERLAY_DTB". That seems better approach here for all three xen-tool
> patches.
> 
> Initially, i was not sure what to do here that's why i wrote a question in the
> cover letter about this.
> 
> Also, do you know how to enable this config via menuconfig when building the Xen
> tools? I know how to enable for Xen but not sure about tools.

It isn't possible to use the configuration of the hypervisor to build
the tool. We use autoconf (configure.ac, ...) to configure the tools but
I don't think in this case that having CONFIG_OVERLAY_DTB for the tools
is the right thing to do. In the tools, we don't really have a way to
select functionalities available in the different libraries, or it is
mostly based on the architecture or operating system or available
system libraries.

Contrary to the hypervisor side, the added code in the libraries is
mostly glue which calls the hypervisor, so their isn't really a need to
avoid building it. If the functionality isn't available in the
hypervisor, it should return an error and the library can deal with that
error.

You might want to limit the build to Arm, but I don't know if that
"overlay dtb" thing is really Arm specific (even though device trees are
mostly use on Arm I guess).

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 14:36:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 14:36:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225275.389028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlXec-0007zh-Tm; Fri, 12 Nov 2021 14:35:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225275.389028; Fri, 12 Nov 2021 14:35:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlXec-0007za-Ql; Fri, 12 Nov 2021 14:35:46 +0000
Received: by outflank-mailman (input) for mailman id 225275;
 Fri, 12 Nov 2021 14:35:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qdsq=P7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mlXeb-0007zU-Lh
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 14:35:45 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d026e2db-43c5-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 15:35:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d026e2db-43c5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636727744;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=Ds2f7A33RJrf0LSr0rxdduWGhzUPoxnYPDT7GBBoJ7Y=;
  b=APGJJ8GZxWCVhRtMvZ82ChZUfZljqBV+s5EsdG22eBuF0jfQzBXsUH1S
   ShF4V95y/ZiLEeDQEsQA8omoxLxO4OLi161WrE4hrV74098Ny+Rjv8dkg
   +ORc/aI7vQFL3jL+wbgaN0EJNf1F15JNeCxxX8AjQhKa8YN/2dyFQ8McJ
   E=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: LL4Xjlm3zi9E2zPopdqTFN2d1IW82PinG/Vr+Z60pysarJb3QtBKJYRjzyqZwRAa+DWdrcA8wR
 qqoMsHT+6AP/+03w1nD73QtMW5lbrCHAwE8I1nGe4VXebjp+5R2BBeZnqQuuEqNFB3nssVoW2G
 djF8+CsCIJ8KrTQ16hXQ4QJqrk1ObeDHsz5DIucs5KIYGPERtg8bctPj79nFaMdjePCBOgRCsv
 lqYs4c1cHLAX0PCjlvL5NUpi2pN9UnLPIENfvs9EMESKO96eECC8cMhSN6a7o0gw/9+r89siqM
 WX4Mx47mvF9T4RmyXZv5TGTa
X-SBRS: 5.1
X-MesageID: 57714557
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:dVfNHaubGhzg3K1mf6s2g0o/aufnVLdZMUV32f8akzHdYApBsoF/q
 tZmKWCOOKuIYGPwKYp0Poq0/R4D6MLWm4diSwFl+ChkRXtE+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2ILhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npl5aG2EDgIOP32uP0zdAt3Hn55ZIwa0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258RRKqDO
 pVxhTxHXBH+akxrIFMuWK0anMWsuHTfX2FlkQfAzUYwyzeKl1EguFT3C/LWd8KLQ4NJn0+ej
 mPA42n9RBodMbS32TeDt36hmOLLtSf6Q54JUq218OZwh1+ezXBVDwcZPXO5q/Skjk+1W/pEN
 lcZvCEpqMAPGFeDF4enGUfi+Tjd40BaC4E4//AGBB+lmpfSujm4ADg+bidvT84JuZAxHB12/
 wrc9z/2PgBHvLqQQHOb076bqzKuJCQYRVM/iT84oRgtuIe6/txq5v7bZpM6SfPu0IWpcd3l6
 2nS9HBWulkFsSIcO0xXF3jjiinkmJXGRxVdCu7/DjP8tVMRiGJIiuWVBbnnARRocNnxorqp5
 iFsdy2iAAYmV8zleMulGrVlIV1Rz6zZWAAweHY2d3Xbyxyj+mS4Yadb6yxkKUFiP64sIGGyP
 hGO51kKv84OZhNGiJObharrVqzGKoC6RbzYug38NIISMvCdiifblM2RWaJg9z+0yxV9+U3OE
 ZyabdytHR4n5VdPl1KLqxMm+eZznEgWnDqLLbiilkjP+efONRa9FOZeWHPTP79R0U9xiFiMm
 zqpH5DRkEs3vSyXSnS/zLP/2nhWdyVmXs6v9JQMHgNBSyI/cFwc5zbq6epJU6RunrhPl/eO+
 Xe4W0RCz0H4i2GBIgKPAk2Popu2NXqmhX5kbyEqI3iy3H0vPdSm4KsFLsNldrg77u1zi/VzS
 qBdKcmHB/1OTBXB+igcMsah/NAzKkzziFLcJTehbRg+Y4VkG17D9Oj7c1a97yIJFCe265cz+
 uXyygPBTJMfbA1+F8KKOum3xla8sCFFyuJ/VkfFOPdJf0Do/NQ4IiD9lKZvccoNNQ/C1n2R0
 APPWUUUouzEookU9tjVhP/b89f1QrUmRkcDRjvV97e7MyXe71GP+44YXbbaZy3ZWUP15L6mO
 bdfwcbjPaBVh11NqYd9TepmlPps+9v1qrZG5Q14B3GXPU+zA7ZtL3Taj8lCsqpBmu1QtQesA
 x/d/9BbPfOCOd//EU5XLw0gN7zR2fYRkzjUzPI0PESlu3MnoOvZCR1fb0uWlShQDLppK4d0k
 +4utfkf5xG7lhd3YM2NiTpZ9jjUI3ENO0n9Wkr23GM/ZtIX92x/
IronPort-HdrOrdr: A9a23:demt/q6o6wTgXr4H+APXwVmBI+orL9Y04lQ7vn2ZFiY7TiXIra
 yTdaoguCMc6AxxZJkh8erwX5VoZUmsj6KdhrNhQItKPTOWw1dASbsN0WKM+UyDJ8STzJ856U
 4kSdkDNDSSNykKsS+Z2njALz9I+rDum8rJ9ISuv0uFDzsaE52Ihz0JdDpzeXcGIjWua6BJcK
 Z1saF81kWdkDksH4mG7j5vZZm2m/T70LbdJTIWDR8u7weDyRuu9b7BChCdmjMTSSlGz7sO+X
 XM11WR3NTtj9iLjjvnk0PD5ZVfn9XsjvNFGcy3k8AQbhHhkByhaohNU6CL+Bo1vOaswlA3l8
 SkmWZtA+1Dr1fqOk2lqxrk3AftlB4o9n/Z0FedxUDupMToLQhKQ/ZptMZ8SF/0+kAgtNZz3O
 ZgxGSCradaChvGgWDU+8XIfwsCrDv1nVMS1cooy1BPW4oXb7Fc6aYF+llOLZsGFCXmrKg6De
 hVCt3G7vo+SyLaU5nghBgs/DWQZAV3Iv/fKXJy/vB9kgIm0kyR9nFoh/D2xRw7hdUAo5ot3Z
 WMDk0nrsAJciYsV9MOOA42e7rANoX8e2O+DIusGyWTKEgmAQOHl3el2sR+2AmVEKZ4u6fa3q
 6xCW9liQ==
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="57714557"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=els3Vky/lXho2/I5HHdAh+PlkGkAqe8v6Sr7uxrMPlnpnmRCZhNzXGs7UlfaJZ1bkLbqcA2xeA6itNqg+WGGLRAf9ScygJm/n19TDW7iqhMGalCDvuc7p0HXQ4DDJFCAHd1PXOddoq4qm0FiCKLtWYsL1wQFQJ2BuoGVZAG93uXJ+JVwk+iKzt2UdNe0FqqDbRGt4NI6Mh2Xn9IqOqHmgYhXUVo74nwDP/ma6wgja27i7ekjCqwgsEJ/8ySVNRBge6X/CNMF7aWePywry9fH3SOD9b4FSUErW0QiGCJd+xFWsMVaDP9E4DK9NyOC46XarlPb2yj6PzkJUg111fRcKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=b0bzl3Qa7MhO23SqKi3jN9f4lzmHAWw3lTDuxg0RuoE=;
 b=QTvKJWajtYoQk52WEnYyk0ujf281uJh06pwJiKhC7Y4ab6hYs6/RC7UXBDahbJkhau+owCP3GWgd3NQL1TnduwYcAE1Yj1uHCNuTnyrgJCPbQsxERc4srPDgZpQUldnqZDOhIuatncWStlB8eqQfzkcpM9y+OBx+NveSIMBk/YTibQ4LPyHI3hgNXDl2k1j6P5P5EnjHVg6Vd6F8I1qD0LOvlkzrVrdBXGvguORL1qTAJadZ/owbn4a29yAkpUoCFnSFRt8TonQNRAr1UeOT4AOwcCGGKEFowwuoLx/Et9ZeKpw4YjUHzSECJ66jPFf3melJ4ywpUk3MjMDHK/UFxg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=b0bzl3Qa7MhO23SqKi3jN9f4lzmHAWw3lTDuxg0RuoE=;
 b=be414Z2t796IJpvuz4b68ksqfqzBxn+/Hh9XoUvXFc89MlnMkVJYjoKF8QeBsSwoSP65mwee5AczZxr2i1YTQmV0basnfNZK11OP/uBIyEFnPrQBsPiCu7JZQUiPHK2/KM3Mfkdjh/q6LTz8lRO3FT3tFl9TJfR0T7CNXlUwuAg=
Date: Fri, 12 Nov 2021 15:35:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Kevin
 Tian <kevin.tian@intel.com>
Subject: Re: [PATCH 3/6] VT-d: don't leak domid mapping on error path
Message-ID: <YY57tg+oX/fN7FB3@Air-de-Roger>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <d4ca5274-dbbf-4cde-1a4b-0d7fe294c360@suse.com>
 <YY5vMYpmqVJhqyL1@Air-de-Roger>
 <b640505d-96cd-3306-ae16-eceb9e528995@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b640505d-96cd-3306-ae16-eceb9e528995@suse.com>
X-ClientProxiedBy: PR3P195CA0003.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:102:b6::8) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a9971efd-5aa2-4435-2cda-08d9a5e9b294
X-MS-TrafficTypeDiagnostic: DM4PR03MB5967:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM4PR03MB596771C66FE6DE43D5A44D9D8F959@DM4PR03MB5967.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: izyhifJTI5NyMMPXgLJ7zi/28Qwo7Lc1glXW5lGA4Zir2pjmuJNiwUzZ7mRapS+NPzqPgOn7uWHLPtCv5ZMFGSCn1h/UxC+4QIV94W0wN2OD56cIjdTLLWRF//Umn8cKxfHiIAI90gBRHT/AylZa9ZJ5MVoGGdPAKoJaHDSn+qE2Kz6sHc+MVWW6cpRSyz85Aqt4ghnxAM2cEA4MVYu7nB1a2JwPTGN+GOXWON7/QtnKnjRS81VuLuegi5VKaQaxTFchWg5mvowXSB5g17CisJx6vWypaqVJ+3V2KlbI813ccmTnQgojHOBOnOA+6tOcAPWZUmDYO9w4BAL2fIRuzUjyVuq4SdNCE7i53Fp4JQ95970VIlTqu0VZo3vArWmzKWpBStAPocVaPeZQDiw09LtnUznXuoVoNkC/IIsPIZL3z/W6GCdsAnfbWLDJOUbZLvkIY4ftpSo+9fVgT7TraOSAPlvxX4GZOhvZVx2gc7Ap5Fibck9/lRDzbuG0XmmFlBE0ShMtKrWoCW62I9pbwpBx5FCkc5r3pXI8ZbvUTB/QIU11puI1ch3L75vhubfNIXSdikNVL76AotKusmYUawYcZ2s0M+ndmACsMrSpbtKda1A6W1FW9JiHzuasMxJOQQi7Ef73S4rz81rEivWyeg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(66476007)(66556008)(8936002)(83380400001)(186003)(9686003)(6496006)(26005)(86362001)(316002)(5660300002)(508600001)(54906003)(66946007)(33716001)(82960400001)(38100700002)(85182001)(53546011)(8676002)(4326008)(6916009)(956004)(6486002)(6666004)(2906002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WGNTZGM5T1dwTFREZG16aENXcklxSDV4OU9NWGh3ZlhZZWw4RG9OVG50N1Qv?=
 =?utf-8?B?bk5rOXV0d1RiZU91eE9xVUFTaVQ4QXR1bk9WNFdheXFUWitCUEduY09PN0Na?=
 =?utf-8?B?QWVOMjAvdGNnSER0eHZGeFlCZEFGNzJTNU5MMCtybS9Ia1QxcEdYTUJLR3Ba?=
 =?utf-8?B?YnoyZG14UVZ0dG4xUU5WMDk4dHRMZlhFVkd6dHZXU3pEUnNiTjY1aDRjMWN0?=
 =?utf-8?B?dWpnaVFhYm5FOU4rTlZ6djBjYkthQkJhTjRQTk1pSHF5cS9EdHR1TllGMHRQ?=
 =?utf-8?B?a2txRU1TVjhwVzBlenRPR1FjVFdPcVZweWFkc3RUaGNuRnc4czFIU2Vzdkpp?=
 =?utf-8?B?QXl2bXVrUWNYKzFCODRjVUNadVV4aUpEaG1qVnZVMjI3bVBaUlNGM3A4UkQx?=
 =?utf-8?B?bFdKanBKR29lc0pLUjBmZkRaWmhHRnVHd1orWnB5RlJnaWtWMFFNcmdLb1RC?=
 =?utf-8?B?bTBLMktNNkZVZGdjYkVjWWh5M1QrSHFDYmJvY2NyOVBweFhyME9SVjdlQXA1?=
 =?utf-8?B?Y0VIeGFaUUJpRnBua1l0UU8zL3J0V3J4NzBTa0liM3NGRWQvV0hmdTVQUld2?=
 =?utf-8?B?SFZuV25ZM2F6VElwMlg2YWNYTXlLMUM1enlPdWpIdUFaWFF6dkU5QzJ2TVV5?=
 =?utf-8?B?L2tweEx6LzFRSTd6RnNzYWsrdkcrVlk5VzloQUM0MlkzejVtRHhoY0VuMGhx?=
 =?utf-8?B?VnNaTGhPNWM5bjdtZEtzZ0xWdlhKK2VhUm1iSVhMa0tSV2g0UGFuNGFuSXdC?=
 =?utf-8?B?L0ZRK0NOSkthc01rSk9wa3lTdzFnOVY4MEZYK2lWYU8rWHdrMlM0MUxjMWV5?=
 =?utf-8?B?cUVNQXFGZmFIWGVDVUNxb1Y4TFhNeStPVWsrU2VPR2NKc2RVK2FINE5HVVI0?=
 =?utf-8?B?cTJvUG9OY0UxVEplZU5JODlxSEZJT2xDWDYyWUZyRFN5OW9VSEViZTFic0c1?=
 =?utf-8?B?NUNLY0tkSlVNeEJEWFRjbWlyWUJkUjVUNU1ySExIOGVkNmx6NWY2Qk1raEpO?=
 =?utf-8?B?UnNXdlVuTVVFdUMvdnNObXEzYkdhbEg3VlY5VEVHRklrUXBMVmlaZ2dmMFNo?=
 =?utf-8?B?dXBPZ05HeWxHWlNvUTNYS3ZQYkJ2VmREYnB0emR6T3JqakJCSW5qWVpRMWFS?=
 =?utf-8?B?YW0xVjlhOVJWSmRxQWYvWUNFUk9VOVlrd0hyQURXSlpBYVNUaUVXZm9ZOVJE?=
 =?utf-8?B?Z0k0M2pQYWNTV2lBUTZnc0Y4K1pVTUlqMXYycTNZMDlnTzJmaFU3U3VCREhX?=
 =?utf-8?B?bGJhdktsaVdMNzRCdlNRZVhNVWZyTmZoN3UyWUxRUkd6M1ZtV0JjU1l6dXdq?=
 =?utf-8?B?K3hSanZvN0szWi8yZ1hEUTl5UUNZdExTWkRTUWJZa0EvM29pNG5hSGd6QWxj?=
 =?utf-8?B?QUIrRzBibnFmb0VEV2VHekVyeklrdVhLREdieFNRTzQxaEQyZFFzcDVlUUIx?=
 =?utf-8?B?cktjZXNxMmZJZ2tuaXlCRjM3Q1Z1U2RHZFE1eWhsMmh4ckI1MDZkcmlEanY4?=
 =?utf-8?B?K0VMWGZWZXBmQ0loLzRkS1ZMNmNZcEFlZlJIRkcyZjRVT01WQlNzckxtQW1p?=
 =?utf-8?B?aS93YVZJQnhVZTNyTWJvVWFjNUlUODQxckt3Z281RTdlVEJmbkE3T0RxRW12?=
 =?utf-8?B?emxZMDJ5ZUZyQ0pKbmlxMnpKZ2dkY1hTR243R09NQ2szY0MxQnFoRE9vd3cr?=
 =?utf-8?B?ejlvZzhacnA5RmVEeFpGTTJKL21HNnJJWGozTEd3NytOTjQ2ZklGbGU3NThx?=
 =?utf-8?B?blZyVWRVOHRuQlF2bUV0SmdFbUxiMWJUZFFCNnpWZ0tzQTExTUwwWEU2Wmg0?=
 =?utf-8?B?UzF3eEtTREZOcW5MamRrVk9pejVENEEvanNSZnZscTNQQkh4TFZBNnBKSkJw?=
 =?utf-8?B?NURhd0s1SUJCU3oybmt0d0ZFSjJlcFdMUVZlbjVGTDJKMlBYeiszTzI4Nkdj?=
 =?utf-8?B?aEMrcCtpT2Q1YWZCUTZFWE15eWlXTk5pSXZ2bGJGQmpiYlFmQTU3ZmZKNGR4?=
 =?utf-8?B?eE1EZUxmTERXTXJyanZrRG1sL3g1NFFKbXZyYXVWczllMXY4MjRUSnFCRWwy?=
 =?utf-8?B?ajhsU3dVRFg5SnVlL1kwT2k5d2lEY3pIWno0dmdzVmRIRXdiajNQL0dXVWNz?=
 =?utf-8?B?L0NhcWZ6R2pZUXlvbldGdEU3UkV3QjFDN1JIMU5uKzZhY3VGclpqby9Wc084?=
 =?utf-8?Q?QMysmtUacCVn1iV7OXnZ0a4=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: a9971efd-5aa2-4435-2cda-08d9a5e9b294
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 14:35:39.3396
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GEsIgETA94folTDb1nrprob4WFzw8YYQLKRYRMpdp+TjvPAKep0dsuKEbbEeFkwAfgcsCX2Eq+b7wDzrDv7hUA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB5967
X-OriginatorOrg: citrix.com

On Fri, Nov 12, 2021 at 02:45:14PM +0100, Jan Beulich wrote:
> On 12.11.2021 14:42, Roger Pau Monné wrote:
> > On Fri, Nov 12, 2021 at 10:48:43AM +0100, Jan Beulich wrote:
> >> While domain_context_mapping() invokes domain_context_unmap() in a sub-
> >> case of handling DEV_TYPE_PCI when encountering an error, thus avoiding
> >> a leak, individual calls to domain_context_mapping_one() aren't
> >> similarly covered. Such a leak might persist until domain destruction.
> >> Leverage that these cases can be recognized by pdev being non-NULL.
> > 
> > Would it help to place the domid cleanup in domain_context_unmap_one,
> > as that would then cover calls from domain_context_unmap and the
> > failure path in domain_context_mapping_one.
> 
> I don't think that would work (without further convolution), because of
> the up to 3 successive calls in DEV_TYPE_PCI handling. Cleanup may happen
> only on the first map's error path or after the last unmap.

Hm, I see. And AFAICT that's because some devices that get assigned to
a guest iommu context are not actually assigned to the guest (ie:
pdev->domain doesn't get set, neither the device is added to the
per-domain list), which makes them invisible to
any_pdev_behind_iommu.

I dislike that the domid is added in domain_context_mapping_one, while
the cleanup is not done in domain_context_unmap_one, and that some
devices context could be using the domain id without being assigned to
the domain.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 14:49:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 14:49:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225282.389038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlXrc-000179-6Z; Fri, 12 Nov 2021 14:49:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225282.389038; Fri, 12 Nov 2021 14:49:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlXrc-000172-3Y; Fri, 12 Nov 2021 14:49:12 +0000
Received: by outflank-mailman (input) for mailman id 225282;
 Fri, 12 Nov 2021 14:49:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UwsT=P7=citrix.com=Jane.Malalane@srs-se1.protection.inumbo.net>)
 id 1mlXra-00016v-KZ
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 14:49:10 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af1007a7-43c7-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 15:49:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af1007a7-43c7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636728548;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=VhZDuLVZjU9aDCkZMQRVgwJGPF9zi+h/hgwLm11lo6c=;
  b=EihusLzUIhgjK9rEEz4ZE+yUJu4+uG6lvwjzOPdeNbMw+xet3L7vOyJg
   2/Fy88cBhLyVk/SJlDTVbbYD2J0UMnDAq2N1AdH0CuwTAro+bGzGjEUHh
   bHOyPHPyU5Lu/pqLCG755BmI7j2b94TCyxojIxqBx/s8O/KfGbtQJUH4A
   Q=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: YbnqWo8DVksOAowrftBEVOEPjEaGRjteYHDblWbf/VblW43xEU4JnisTeHUnnxvyYU1kV2Etmv
 xAKkP98yiDzCwzmGrygSZxcJ6/PHFe+jUki1gB17vHhcnbqHr3VNHutox1VPh8KicE3ABBFKlO
 7jifavn3QtZxhLuRM5j/QWJxHtEiIDnVED3bBPjfWc4/hM+oZarHSfJpAaZyWSnGBtcYc6a0l9
 SvDGFNhCKNYNcEn/t6WeG/02ekAD0pVPNMO1hIxjfaiXl3FulsgR3TrR9e1f49bTDP6YF27vES
 zrUSlh7IHXOFplG1LZeQ4Bo+
X-SBRS: 5.1
X-MesageID: 57217265
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:yL+J96oIwuR3af+RDnEr31Og60teBmLVYhIvgKrLsJaIsI4StFCzt
 garIBmFPauJZzCnLYp0YYiz9xsBsJeGy942SAFqqCg3RHhG8ZuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IHjW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnZOBRFg4MrySo+c2SBYFKCYjbKBKpKCSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKEWvHwm6DjdBPIvR53rSKTW/95Imjw3g6iiGN6DO
 JBANmAxMXwsZTVVEH1KGMswudunn33ZagV5kQ+c+qcetj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKhAFNvSPxDyd6HWui+TT2yThV+o6BLC+s/JnnlCX7mgSEwENE0u2p+GjjUyzUM4ZL
 FYbkhfCtoBrqhbtFIOkGUTl/jjU5XbwRua8DcU12QzS26bFvT2aLXMLEwVGNY0ruJMpEGlCO
 kCyo/vlAjlmsbuwQH2b96uJoT7aBRX5PVPudgdfE1JbvoCLTJUby0uWE409SPLdYsjdQGmom
 1i3QD4Ca6L/ZCLh/4Gy5hj5jj2lvfAlpSZlt1yMDgpJAu6UDbNJhrBEC3CHsp6sz67DFzFtW
 UTofeDEsYji6rnXxESwrB0lRu3B2hp8GGS0baRTN5cg7S+x3HWoYJpd5jpzTG8wbJ1aJ2K3O
 hSI6F4LjHO2AJdMRfUqC25WI556pZUM6Py/DqyEBjawSsQZmPC7ENFGOhfLgjGFfLkEmqAjI
 5aLGftA/l5BYZmLOAGeHr9HuZdyn3hW7TqKGfjTkkT2uZLDNSX9YepUbzOzghURsfrsTPP9q
 I0EaaNnCnx3DYXDX8Ug2dJJcA1RcyFkXcueRg4+XrfrHzeK0VoJU5f5qY7NsaQ/90iMvuuXr
 Hy7RGFCz1/z2S/OJQmQMygxY7LzR5dv63k8OHV0b1qv3nEiZ6ep7bseKMRrLeV2qrQ7wK4mV
 eQBduWBHu9LFmbN9QMCYMSvt4dlbhmq216DZnL3fDglcpd8bAXV4du4LBD3/SwDA3Pv58szq
 rGtzC3BRp8HS1gwBcracqv3nViwoWIciKR5WE6Reotff0Dl8Y5LLS3tj6Bof5FQeEubnjbDj
 lSYGxYVo+XJsrQZytiRiPDWtZqtHst/AlFeQzvR44GpOHSI5WGk24JBDrqFJGiPSGPu9ay+T
 uxJ1PWgYuYflVNHvocgQbZmyaUyu4nmq7NAl1k2GXzKaxKgC696I2nA1s5K7/UfyrhcsAqwe
 0SO5tgFZunZZJK7SAYcdFg/c+CO9fAIgT2Dv/06LXLz6DJz4LfaA15ZOAOBiXAFIbZ4WG//L
 TzNZCLCB9SDtycX
IronPort-HdrOrdr: A9a23:2Lky9q7VQNuY/DZyMAPXwMbXdLJyesId70hD6qhwISY1TiX+rb
 HJoB17726StN9/YgBCpTntAsa9qBDnhPpICOsqTNWftWDd0QPCRuwP0WKL+UyYJ8SUzI5gPM
 lbHZSWcOeAaGRHsQ==
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="57217265"
From: Jane Malalane <jane.malalane@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Jane Malalane <jane.malalane@citrix.com>, Ian Jackson
	<iwj@xenproject.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH for-4.16 v2] tests/resource: Extend to check that the grant frames are mapped correctly
Date: Fri, 12 Nov 2021 14:48:21 +0000
Message-ID: <20211112144821.987-1-jane.malalane@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Previously, we checked that we could map 40 pages with nothing
complaining. Now we're adding extra logic to check that those 40
frames are "correct".

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jane Malalane <jane.malalane@citrix.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
---
CC: Ian Jackson <iwj@xenproject.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

v2:
 * Cast the gnttab pointer to the correct type (void **)
 * Fixed comment style
---
 tools/tests/resource/Makefile        |  2 +
 tools/tests/resource/test-resource.c | 82 +++++++++++++++++++++++++++++++++---
 2 files changed, 78 insertions(+), 6 deletions(-)

diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
index 1c3aee4ff7..b3cd70c06d 100644
--- a/tools/tests/resource/Makefile
+++ b/tools/tests/resource/Makefile
@@ -31,10 +31,12 @@ CFLAGS += -Werror
 CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
 CFLAGS += $(CFLAGS_libxenforeginmemory)
+CFLAGS += $(CFLAGS_libxengnttab)
 CFLAGS += $(APPEND_CFLAGS)
 
 LDFLAGS += $(LDLIBS_libxenctrl)
 LDFLAGS += $(LDLIBS_libxenforeignmemory)
+LDFLAGS += $(LDLIBS_libxengnttab)
 LDFLAGS += $(APPEND_LDFLAGS)
 
 %.o: Makefile
diff --git a/tools/tests/resource/test-resource.c b/tools/tests/resource/test-resource.c
index 1caaa60e62..286d338c1f 100644
--- a/tools/tests/resource/test-resource.c
+++ b/tools/tests/resource/test-resource.c
@@ -6,6 +6,7 @@
 
 #include <xenctrl.h>
 #include <xenforeignmemory.h>
+#include <xengnttab.h>
 #include <xen-tools/libs.h>
 
 static unsigned int nr_failures;
@@ -17,13 +18,16 @@ static unsigned int nr_failures;
 
 static xc_interface *xch;
 static xenforeignmemory_handle *fh;
+static xengnttab_handle *gh;
 
-static void test_gnttab(uint32_t domid, unsigned int nr_frames)
+static void test_gnttab(uint32_t domid, unsigned int nr_frames, unsigned long gfn)
 {
     xenforeignmemory_resource_handle *res;
-    void *addr = NULL;
+    grant_entry_v1_t *gnttab;
     size_t size;
     int rc;
+    uint32_t refs[nr_frames], domids[nr_frames];
+    void *grants;
 
     printf("  Test grant table\n");
 
@@ -51,18 +55,53 @@ static void test_gnttab(uint32_t domid, unsigned int nr_frames)
     res = xenforeignmemory_map_resource(
         fh, domid, XENMEM_resource_grant_table,
         XENMEM_resource_grant_table_id_shared, 0, size >> XC_PAGE_SHIFT,
-        &addr, PROT_READ | PROT_WRITE, 0);
+        (void **)&gnttab, PROT_READ | PROT_WRITE, 0);
 
     /*
      * Failure here with E2BIG indicates Xen is missing the bugfix to map
      * resources larger than 32 frames.
      */
     if ( !res )
-        return fail("    Fail: Map %d - %s\n", errno, strerror(errno));
+        return fail("    Fail: Map grant table %d - %s\n", errno, strerror(errno));
 
+    /* Put each gref at a unique offset in its frame. */
+    for ( unsigned int i = 0; i < nr_frames; i++ )
+    {
+        unsigned int gref = i * (XC_PAGE_SIZE / sizeof(*gnttab)) + i;
+
+        refs[i] = gref;
+        domids[i] = domid;
+
+        gnttab[gref].domid = 0;
+        gnttab[gref].frame = gfn;
+        gnttab[gref].flags = GTF_permit_access;
+    }
+
+    /* Map grants. */
+    grants = xengnttab_map_grant_refs(gh, nr_frames, domids, refs, PROT_READ | PROT_WRITE);
+
+    /*
+     * Failure here indicates either that the frames were not mapped
+     * in the correct order or xenforeignmemory_map_resource() didn't
+     * give us the frames we asked for to begin with.
+     */
+    if ( grants == NULL )
+    {
+        fail("    Fail: Map grants %d - %s\n", errno, strerror(errno));
+        goto out;
+    }
+
+    /* Unmap grants. */
+    rc = xengnttab_unmap(gh, grants, nr_frames);
+
+    if ( rc )
+        fail("    Fail: Unmap grants %d - %s\n", errno, strerror(errno));
+
+    /* Unmap grant table. */
+ out:
     rc = xenforeignmemory_unmap_resource(fh, res);
     if ( rc )
-        return fail("    Fail: Unmap %d - %s\n", errno, strerror(errno));
+        return fail("    Fail: Unmap grant table %d - %s\n", errno, strerror(errno));
 }
 
 static void test_domain_configurations(void)
@@ -107,6 +146,7 @@ static void test_domain_configurations(void)
         struct test *t = &tests[i];
         uint32_t domid = 0;
         int rc;
+        xen_pfn_t ram[1] = { 0 };
 
         printf("Test %s\n", t->name);
 
@@ -123,8 +163,25 @@ static void test_domain_configurations(void)
 
         printf("  Created d%u\n", domid);
 
-        test_gnttab(domid, t->create.max_grant_frames);
+        rc = xc_domain_setmaxmem(xch, domid, -1);
+        if ( rc )
+        {
+            fail("  Failed to set max memory for domain: %d - %s\n",
+                 errno, strerror(errno));
+            goto test_done;
+        }
+
+        rc = xc_domain_populate_physmap_exact(xch, domid, ARRAY_SIZE(ram), 0, 0, ram);
+        if ( rc )
+        {
+            fail("  Failed to populate physmap domain: %d - %s\n",
+                 errno, strerror(errno));
+            goto test_done;
+        }
+
+        test_gnttab(domid, t->create.max_grant_frames, ram[0]);
 
+    test_done:
         rc = xc_domain_destroy(xch, domid);
         if ( rc )
             fail("  Failed to destroy domain: %d - %s\n",
@@ -138,13 +195,26 @@ int main(int argc, char **argv)
 
     xch = xc_interface_open(NULL, NULL, 0);
     fh = xenforeignmemory_open(NULL, 0);
+    gh = xengnttab_open(NULL, 0);
 
     if ( !xch )
         err(1, "xc_interface_open");
     if ( !fh )
         err(1, "xenforeignmemory_open");
+    if ( !gh )
+        err(1, "xengnttab_open");
 
     test_domain_configurations();
 
     return !!nr_failures;
 }
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 15:05:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 15:05:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225288.389050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlY7D-0003NZ-Kz; Fri, 12 Nov 2021 15:05:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225288.389050; Fri, 12 Nov 2021 15:05:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlY7D-0003NS-Ht; Fri, 12 Nov 2021 15:05:19 +0000
Received: by outflank-mailman (input) for mailman id 225288;
 Fri, 12 Nov 2021 15:05:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlY7B-0003NG-Ss; Fri, 12 Nov 2021 15:05:17 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlY7B-0002Qj-KP; Fri, 12 Nov 2021 15:05:17 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlY7B-0000SA-DF; Fri, 12 Nov 2021 15:05:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlY7B-0005TI-Cg; Fri, 12 Nov 2021 15:05:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=1oAfRePKrsNJAxlBI5OQA2d7vQnja5oGpHsVYQ8mwEY=; b=X5btywkjat3JGNDDZn060qkwNS
	GafIV31/4ODe4dicvwvb1wYxdv0aDjsh7WzL0kxu2GBjO8pE9wPkJbcPU/0qq5r3IoQlUY6/tliKC
	gzADUMnu7SZyf6BA/RXTzu0J79+uvLoEqjc+08eZ23CqnjItZUK6E7fn06u16LWqO0is=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166126-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166126: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=466ebdd2e0919c1538d03cd59833704bd5e1c028
X-Osstest-Versions-That:
    ovmf=4c495e5e3d387b26e1f22d708ff707eee6898c17
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Nov 2021 15:05:17 +0000

flight 166126 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166126/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 466ebdd2e0919c1538d03cd59833704bd5e1c028
baseline version:
 ovmf                 4c495e5e3d387b26e1f22d708ff707eee6898c17

Last test of basis   166123  2021-11-12 07:27:21 Z    0 days
Testing same since   166126  2021-11-12 10:43:21 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dandan Bi <dandan.bi@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   4c495e5e3d..466ebdd2e0  466ebdd2e0919c1538d03cd59833704bd5e1c028 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 15:17:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 15:17:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225295.389064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlYIQ-0004rg-Og; Fri, 12 Nov 2021 15:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225295.389064; Fri, 12 Nov 2021 15:16:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlYIQ-0004rZ-Kb; Fri, 12 Nov 2021 15:16:54 +0000
Received: by outflank-mailman (input) for mailman id 225295;
 Fri, 12 Nov 2021 15:16:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qdsq=P7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mlYIO-0004rL-Ov
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 15:16:53 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ed71183-43cb-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 16:16:50 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ed71183-43cb-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636730211;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=K+rcA92mPxmJaCyFWf1uSmkFkrYiXYUcVAUPumbLfX0=;
  b=HMv+n7rLocZbp2zydsHlF3RkNQWnYJgA5vSDsr4LwDLtk3nwa9wJY3JG
   /0LVAQlsd0sCsrDXVxtBqbVMpRgi9J4XIkqnhEenfVBL6ZedU48uDimX2
   uMMXWFPQ5QuLZ84aYO8lomhZ6knQeJ9VIivIjOA9DK468EHTgcUDbnCVi
   w=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: Bn7dxd84E29Wb2QmdYIiBsDI3KnGvRF2jjOU7ynaP158AR1dvURDy/NvSmkIew78YdVZmMlrNL
 dAETN95uus/MHvNy1YeEPHx91gildvqB3QMg5ZVFbpqjxxDImkR+3CQeOrZM6r4IzgiIwq4Y6W
 qt9CNb5WuwFjA9Y0+qMgQ+hsvAnjRFUN2Zh/qExYqXnr+PqCmNuPGxeG/+Swh0osHOHENWPwuH
 D1r0I29aIAQLWVcTiScE1WVmZLiFGC3iDAx6n4oVzyuEmGEKQKSltRNxidmsMhtmNE/qSkoUOq
 0rJ7P0GoiCYw/iAswHVctfpE
X-SBRS: 5.1
X-MesageID: 57221454
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ZqR8RaIZqbyw8NYuFE+RD5IlxSXFcZb7ZxGr2PjKsXjdYENS1GcGn
 WofWTuEb/jZYWanLt4nbo3i9hgEv8Tdy4diTAJlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6wbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2jxPBV8
 /JHvKePCgIPFYvjndYgVwhhRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsF2gcsuNo/zNZ43sXB81zDJS/0hRPgvRo2XuoUChWtt2qiiG97Be
 JdFR2I/NSjlRCxuMFdNE49kkd+B0yyXnzpw9wvO+PtfD3Lo5BN1+KjgNpzSYNPibcRKnG6Iq
 2Te5WP7DxoGctuFxlKt4n+qw+PCgy7/cIYTD6GjsO5nhkWJwW4eAwFQUkG0ycRVkWbnBYgZc
 RZNvHNz8+5iryRHU+URQTWS+16ghTkWUuFvUOgcwyeiz5jp5xegUz1soiF6VPQqs8o/RDoP3
 1CPns/0CTEHjIB5WU5x5Z/P82rsZHF9wXsqIHZdEFBbu4WLTJQb10qXFr5e/LiJYsoZ8N0a6
 xSDt2AAiroalqbnPI3rrAmc01pASnUkJzPZBzk7vEr5sWuVh6b/PuREDGQ3C94ace51qXHb7
 BA5dzC2trxmMH10vHXlrB8xNL+o/e2ZFzbXnERiGZIsnxz0pSX9I90OumoldRozWirhRdMPS
 BWO0e+2zMUDVEZGkIctO97hYyjU5fSI+SvZugD8MYMVP8kZmP6v9yByf0+At10BY2B3+ZzTz
 ayzKJ72ZV5DUPwP5GPvG481jO96rghjlDi7bc2qkHyaPU+2OSf9pUEtawDVMIjULcqs/W3oz
 jqoH5fQlkgEDrShOnK/HEx6BQliEEXXzKve8qR/XuWCPhBnCCcmDfrQyqkmYItrg+JekeKgw
 513chYwJIPXiSKVJAOURGpkbb+zD59zoWhiZX4nPEqy2mhlaoGqtf9Ne5wydLgh1epi0f8rE
 KVVJ5TeWqxCGmbd5jAQTZjht4g+Jh6lsh2DYni+az8lcp8+GwGQoo34fhHi/TUlBzassZdsu
 KWp0w7WGMJRRwlrAMvMRuioyle94SoUlO5oBhOaKdhPYkT8toNtLnWp3PMwJsgNLzTFxyebi
 FnKUUtJ+7GVrtZsotfThK2Co4O4KMdEHxJXTzvB8LK7FSjG5W7/k4VOZ/mFIGLGX2Tu9aT8O
 egMl6PgMOcKlUphupZnF+o51ro34tbiquMIzglgG3mXPV2nBqk5fyuD1MhL8KZM2qVYqU29X
 UfWootWPrCAOcXEFl8NJVV6MrTfhK9MwjSCv+4oJEja5TNs+OvVWEpfCBCAlShBIeYnK4gi2
 +og5JYb5gHXZsDG6TpaYvS4L1ixE0E=
IronPort-HdrOrdr: A9a23:L6VLu6DFuUlzVT/lHegwsceALOsnbusQ8zAXPh9KJyC9I/b2qy
 nxppgmPH/P6Ar4WBkb6La90Y27MA7hHPlOkPUs1NaZLXPbUQ6TTb2KgrGSpgEIdxeOktK1kJ
 0QDJSWa+eAfWSS7/yKmDVQeuxIqLLsndHK9IWuvEuFDzsaEJ2Ihz0JezpzeXcGPTWua6BJc6
 Z1saF81kSdkDksH4mGL0hAe9KGi8zAlZrgbxJDLxk76DOWhTftzLLhCRCX0joXTjsKmN4ZgC
 f4uj28wp/mn+Cwyxfa2WOWx5NKmOH5wt8GIMCXkMAaJhjllw7tToV8XL+puiwzvYiUmRoXue
 iJhy1lE9V46nvXcG3wiRzx2zP42DJr0HPmwU/wuwqqneXJABYBT+ZRj4NQdRXUr2A6ustn7a
 5N12WF87JKEBLphk3Glpj1fiAvsnDxjWspkOYVgXAae5AZcqVtoYsW+14QOIscHRj99JssHI
 BVfYDhDc5tABGnhk3izyxSKITGZAV2Iv7GeDlNhiWt6UkUoJgjpHFog/D2nR87hdsAotd/lq
 L5259T5cRzp/ktHNRA7dc6MLmK41P2MGbx2UKpUB/a/fI8SjjwQ6Ce2sRD2AjtQu1Q8KcP
X-IronPort-AV: E=Sophos;i="5.87,229,1631592000"; 
   d="scan'208";a="57221454"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=no+K2o0xl9KTy7FGeJ6yd5P/mdD8GrIWfxkAytrQzHtM5bR6jnjjFoo4eBpsMgdIpS31QlH7MOA3Mnla7fWhpQqM1x2lbb90S8csNFgAiGfUv7dVGHG6uXLqqpmsKzZHM2y2Qqixq6L9fYPs67g/9ZoCFz2GXhvgMt41jZF27oaAmx+6ddi0q9tkb42nJL85LMSfjLw4daIAFDZg4LBWWOkowfMKcQE97AdfTH/GsmttLsJSW0DzusgY6bboJHxajIE5kVyvjYaoW45oV85gnWmrC6/72BPbcgSyy+dMYsDF49VodEYueYzYwl1cBRy0IjM3yu5wvnLuNdoD2UVIng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=01TsVJttcEE28fZMFYHSqXA/Q7x5Gh7HZbQvT6tp0EE=;
 b=miELO1fy66rF1RIjaG61Fxvk9AqgNElq6/QG/f9J/1QlqfMGp5cyZGIB1OCwrbF++hTTGpeyt4usTxH7gz+Hqm3Y3SsqNj34ZqbHBkchyn+G1LvYvLxaYfQ4VFVguAMlnpbTXdsQ15NinbR7aX2FjmooFmc4SsJCqSJWmpUGGzjJMg8ggdluUjzndu2R4LhqECRz9CvvEhpvj91O9zfaYm0Jnyb0Ao0pjCVRF1org2wfFrbpYJv3dkmI58S5ZkyIj/2nHBft9ha9MkKRd9e64IQtaGEoL5qCFzfnYUPQYJxWmRgZwMhMu1B9wjkb53gnr6vmu4gPCDW20drcHvJ7Pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=01TsVJttcEE28fZMFYHSqXA/Q7x5Gh7HZbQvT6tp0EE=;
 b=cMyt1+vNLa7jsw9UqITFsa9eTHRj3zt6J9uNMaXBB878+776vjIhCZ/kZt9hefN/CsIosJfcgrkoN45qIIZ4J0iUPnIKqRylgapHH1c3TSMy5jKFG49WKNgNyyf2D6jzAlAuVvQddj0+UlOlFRPCFLw5lr/i/REZ5RvUynnNyyo=
Date: Fri, 12 Nov 2021 16:16:37 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jane Malalane <jane.malalane@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Ian Jackson
	<iwj@xenproject.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH for-4.16 v2] tests/resource: Extend to check that the
 grant frames are mapped correctly
Message-ID: <YY6FVaA63qwrnj0Y@Air-de-Roger>
References: <20211112144821.987-1-jane.malalane@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211112144821.987-1-jane.malalane@citrix.com>
X-ClientProxiedBy: MR2P264CA0180.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501::19)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 26da6eae-8239-436d-ee50-08d9a5ef6f11
X-MS-TrafficTypeDiagnostic: DM5PR03MB2844:
X-Microsoft-Antispam-PRVS: <DM5PR03MB2844373B96B57ADBFF5B2BF18F959@DM5PR03MB2844.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: JEO1Uool/X24L1RyiRfrBZgYkxWNMbQmn7MWXf+XSbK/AOOcD708gPBqXG6TaDtwfV3ZCJRi1Pb26QLfFLJ35GSDByBReKOvzYHyXVuYlHOrl8mwh0+TuekLMC5MGtEMM2oikBcElQZ9BGSIiCKyAGN+9TBK3X9wPl2r+8UtwGolnX2BKaBURXVlghkTql8sFjFCN9wml1RUYit4KxgBHlzkvUAUSJ1B5XbKp536SRZEGZuGYhQqEa+OSpXMxEBksBM2sH+8VRrVHd/nVgvrn14/4IyHvcMSpXc1IaFKui9Azl/wup0Y5qP3tJTXotWJM2AaHKjTMrKhLXXXbhQguU1C9Xwbx7QcxGXOCTokAK9Z3YyVdQUMdbn2NdK8BK0TDJ8oRd0hFbnT1KLsrHujqcxHYUYqyIeg76Da8ESdciXv7m+IXvBcvkyGHcU1BxWS2tByrSWL/lSbaTQChrWJ0tACEGwK67RLcMWjeBOBHD1TRqPjwgf8pa14xjRiFnoYBdTQ/KGM4EodVzd6FvQ2iW0cD1dFH6Gy3K3BUbSCSTnaN5P8rBOKU6v/KZfctgpia9LMuGs7LZIKVljVzTsPA6f2QZkKWC80cX1YYKXra+04lZ7+CK9Iik0zQtU/UaKQDucvb5wQOOeSCfkSUULtnA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(66476007)(2906002)(5660300002)(26005)(4326008)(508600001)(85182001)(6636002)(33716001)(186003)(6666004)(54906003)(66946007)(6486002)(66556008)(316002)(956004)(83380400001)(6496006)(8936002)(9686003)(8676002)(38100700002)(82960400001)(6862004)(86362001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TVcrcVVNcmlwRjFSYTh5R3NmMUVUOUhHaUhvejEwRFNlNHRES2t2QUVJa0VN?=
 =?utf-8?B?bWhGL2w0ek1jdnE1YlR0QTBsR3BiYXh5Qm1LVkk0NERLY1plSXVBTzdqcDhi?=
 =?utf-8?B?czlTTjV2OWZhNXl5V0EvQUZ4TXgrcjE2NDRXaCsrek0vS3NwM3crQSt5RnRh?=
 =?utf-8?B?U3AycUE1OGd2dzlOY09QMWVjbk1pemg2R0RCR1c2aGJVK2ZVOXh5cHB5WUlm?=
 =?utf-8?B?TXFCQlVEYURJSUpvRS9TRXVKVHhab3VLd0prQ2hTWmJ1QXBLYjRhWTUwbk8v?=
 =?utf-8?B?YS9VYXArN2REWSszMmlIcklNTnM5dE40b3hkbVFRZFg1NzUvTWRnUDVIOWpG?=
 =?utf-8?B?aWlwZU5PbGF0SEgvWktEWkIxUzhBNkpRTFg3SUh1eDE2bmlDejdXcER2WDF2?=
 =?utf-8?B?a3h2L3pxOWxPWEhCaHBMN3dsMWI1T2tBN1RFZ0VCYlVUUnN2L0RxOXR0bEwy?=
 =?utf-8?B?RHNFZHJvNVNLQS9vTUNWT2hidzhGTTFDdmliV1pOOG1QajRVVExoRkpVaFl4?=
 =?utf-8?B?K0IwYTVHaFF5Z242QmlZdHRKdG9yTGlMamNtR1VTdTM0dkRtRlc2QmtYdjMv?=
 =?utf-8?B?NGt1T2gyOEJHWWc5a0YzMitmZ2dGVVR0OWFyV2dob0lZaklRa0E1ZEovN1c3?=
 =?utf-8?B?TXZiZU1oSFJYUWZIUUpic0FDSDNjS3lRRTI1bVoxU1pxVytPZkZuTnA3Q1dn?=
 =?utf-8?B?NVVLK1lvWDJsU3dNc2g4UzRxNGM4SjVjdDkzVEIra0s0USsweGNwUkxORHIw?=
 =?utf-8?B?cEJpL0pLNERDRmZtYkR6SXkxRlZyamo5ZVE5NGZ4SzlPSHBUeTFsL2o3L0x5?=
 =?utf-8?B?cEIxb21kbnlkdkhJZldXZEp4ZUN6TEZNcDZQK1VYMTkxcDRGVGJtSks3SUE4?=
 =?utf-8?B?R0MyTVJtYzUvcWVrSkM3Sm1ONFFGaFhkbWs0bzdZUTRGa3Y3cWlqZUYzVGww?=
 =?utf-8?B?bUpuY0tsem5GcWVBNWM0eE1yVDFkY1hlcnVZb0tPYVRHcjcwMDhPclA1N2ht?=
 =?utf-8?B?WVgzbzZJQkZpUUM4WFFuQ1dmbWdzZk9CWWxTd29xZG5uSEVDaWpvNnpQY3hP?=
 =?utf-8?B?WG5TZ3BJZnpyRlFDdGNtaHZ4UGdwS25zZU03Qm1abkY5d1dCN1FmcWF0MTdt?=
 =?utf-8?B?dmF0ZU54NjR6Ui9XalR0NlZMbTZqTDlYUkRQV1k0NnhIbWc5VlBmdnRuQ29U?=
 =?utf-8?B?U0JxS1pvRnUxTjllYXZTSFkwS3pWOUgzSjhYbmplaEkyT0cxWVp1d3pUaFQy?=
 =?utf-8?B?MHJCSytydDNrQmF2YW9FYWMyYXhuZjh5b1lVTkM1TW9LOWp6S3E1djBDTkMx?=
 =?utf-8?B?NjFIa0l5RGJmODJOQ083MmJZMEtIZ3VqMHFkbmRaSzJzY3lZaGtCT2YxT21t?=
 =?utf-8?B?YnRMZkMyNEtCUzBHcnpqOW9rbG90THZkbDAzQ2ZGM3BLNVNsSjhEQ1plM0hI?=
 =?utf-8?B?WVdnZGs2MFlrQTBVYzFSZEhHY1piL0QzQUx5dTQrWUlqVmR3eFVmbTREMUUy?=
 =?utf-8?B?aEk1VGhkVG13RW1wNVN5ODdmRlZUVEYyRTRJdXdmZHBZVEUxR3hyOFdrRzU2?=
 =?utf-8?B?WERzOHBoZkpQc01BUWJzRW1OUWFqaXhKQ0N4NDMwMUpGdC9RUUdBTUdpYjRQ?=
 =?utf-8?B?eGVDYVE0K3Y5RE9oMWRUUU1sSkk3OXNYOVdLQlBxNzhPNTJVd2YyaEdsSUVk?=
 =?utf-8?B?bkxzdXZJNVlzTE92UVk4cnRHYzA4YVBMOVB0VjI0ZENKeFZ6V2h3WTVSQU1J?=
 =?utf-8?B?NXlDUXdEdjNBRGxjL0xRUytDQ3dQenU2S2FNeWhnV0wvZXB6N05Ed1ltQTBF?=
 =?utf-8?B?dlZNYWttUVZ6cXZuclZXOEc3cnZFVnNjcWdjN0Z4OEthMkRLWUlmQVBoYXRX?=
 =?utf-8?B?aDF0dHVneWc1RHZ5Zk4vcDdicFpoRHNvS1JiclFsSm10dDdZT2drTDNDK3Zs?=
 =?utf-8?B?S2c1SHc2UGhyaTVRWjFLUVdnRm5xZWc3QmZXZTh0VEhDUXlWdjZhNis1R3BL?=
 =?utf-8?B?c0VJWXNxVCtNNFNsbjgrVEphREpvWHVybUg5d1BHRTNWVUUvREpNM0RWK0JF?=
 =?utf-8?B?NjYzSE9lU1E4M3hKSDNGS3lnR2lnZGJNWHp0YUpvR3Rrakk5OWkxYkhSOEd4?=
 =?utf-8?B?OXpvVVR6RFZ6ck00MnJXU1R4UWV5dXJDUkh3R3VLbm1UZVVPWktJTThDNzl5?=
 =?utf-8?Q?W9UuB8wJ7ZjoQUd299viskk=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 26da6eae-8239-436d-ee50-08d9a5ef6f11
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 15:16:42.9834
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +qEjU355pgKlqQzFnv0NsCwLeVxFPIFUtotWJ5tydAsu6YNkjP1RiwAR3UwJXJCFYEcFyF74xKpObC2awQqq0g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2844
X-OriginatorOrg: citrix.com

On Fri, Nov 12, 2021 at 02:48:21PM +0000, Jane Malalane wrote:
> Previously, we checked that we could map 40 pages with nothing
> complaining. Now we're adding extra logic to check that those 40
> frames are "correct".
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jane Malalane <jane.malalane@citrix.com>
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>

LGTM:

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

There are a couple of lines that exceed the 80 column limit that we
have for other pieces of code, not sure if there's some kind of
exception for tests. If so it might be easy to either resend or fix at
commit.

> ---
> CC: Ian Jackson <iwj@xenproject.org>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
> 
> v2:
>  * Cast the gnttab pointer to the correct type (void **)
>  * Fixed comment style
> ---
>  tools/tests/resource/Makefile        |  2 +
>  tools/tests/resource/test-resource.c | 82 +++++++++++++++++++++++++++++++++---
>  2 files changed, 78 insertions(+), 6 deletions(-)
> 
> diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
> index 1c3aee4ff7..b3cd70c06d 100644
> --- a/tools/tests/resource/Makefile
> +++ b/tools/tests/resource/Makefile
> @@ -31,10 +31,12 @@ CFLAGS += -Werror
>  CFLAGS += $(CFLAGS_xeninclude)
>  CFLAGS += $(CFLAGS_libxenctrl)
>  CFLAGS += $(CFLAGS_libxenforeginmemory)
> +CFLAGS += $(CFLAGS_libxengnttab)
>  CFLAGS += $(APPEND_CFLAGS)
>  
>  LDFLAGS += $(LDLIBS_libxenctrl)
>  LDFLAGS += $(LDLIBS_libxenforeignmemory)
> +LDFLAGS += $(LDLIBS_libxengnttab)
>  LDFLAGS += $(APPEND_LDFLAGS)
>  
>  %.o: Makefile
> diff --git a/tools/tests/resource/test-resource.c b/tools/tests/resource/test-resource.c
> index 1caaa60e62..286d338c1f 100644
> --- a/tools/tests/resource/test-resource.c
> +++ b/tools/tests/resource/test-resource.c
> @@ -6,6 +6,7 @@
>  
>  #include <xenctrl.h>
>  #include <xenforeignmemory.h>
> +#include <xengnttab.h>
>  #include <xen-tools/libs.h>
>  
>  static unsigned int nr_failures;
> @@ -17,13 +18,16 @@ static unsigned int nr_failures;
>  
>  static xc_interface *xch;
>  static xenforeignmemory_handle *fh;
> +static xengnttab_handle *gh;
>  
> -static void test_gnttab(uint32_t domid, unsigned int nr_frames)
> +static void test_gnttab(uint32_t domid, unsigned int nr_frames, unsigned long gfn)

Nit: i think this line exceeds the 80 column limit.

>  {
>      xenforeignmemory_resource_handle *res;
> -    void *addr = NULL;
> +    grant_entry_v1_t *gnttab;
>      size_t size;
>      int rc;
> +    uint32_t refs[nr_frames], domids[nr_frames];
> +    void *grants;
>  
>      printf("  Test grant table\n");
>  
> @@ -51,18 +55,53 @@ static void test_gnttab(uint32_t domid, unsigned int nr_frames)
>      res = xenforeignmemory_map_resource(
>          fh, domid, XENMEM_resource_grant_table,
>          XENMEM_resource_grant_table_id_shared, 0, size >> XC_PAGE_SHIFT,
> -        &addr, PROT_READ | PROT_WRITE, 0);
> +        (void **)&gnttab, PROT_READ | PROT_WRITE, 0);
>  
>      /*
>       * Failure here with E2BIG indicates Xen is missing the bugfix to map
>       * resources larger than 32 frames.
>       */
>      if ( !res )
> -        return fail("    Fail: Map %d - %s\n", errno, strerror(errno));
> +        return fail("    Fail: Map grant table %d - %s\n", errno, strerror(errno));

Likewise.

>  
> +    /* Put each gref at a unique offset in its frame. */
> +    for ( unsigned int i = 0; i < nr_frames; i++ )
> +    {
> +        unsigned int gref = i * (XC_PAGE_SIZE / sizeof(*gnttab)) + i;
> +
> +        refs[i] = gref;
> +        domids[i] = domid;
> +
> +        gnttab[gref].domid = 0;
> +        gnttab[gref].frame = gfn;
> +        gnttab[gref].flags = GTF_permit_access;
> +    }
> +
> +    /* Map grants. */
> +    grants = xengnttab_map_grant_refs(gh, nr_frames, domids, refs, PROT_READ | PROT_WRITE);

Here.

> +
> +    /*
> +     * Failure here indicates either that the frames were not mapped
> +     * in the correct order or xenforeignmemory_map_resource() didn't
> +     * give us the frames we asked for to begin with.
> +     */
> +    if ( grants == NULL )
> +    {
> +        fail("    Fail: Map grants %d - %s\n", errno, strerror(errno));
> +        goto out;
> +    }
> +
> +    /* Unmap grants. */
> +    rc = xengnttab_unmap(gh, grants, nr_frames);
> +
> +    if ( rc )
> +        fail("    Fail: Unmap grants %d - %s\n", errno, strerror(errno));
> +
> +    /* Unmap grant table. */
> + out:
>      rc = xenforeignmemory_unmap_resource(fh, res);
>      if ( rc )
> -        return fail("    Fail: Unmap %d - %s\n", errno, strerror(errno));
> +        return fail("    Fail: Unmap grant table %d - %s\n", errno, strerror(errno));

Here.

>  }
>  
>  static void test_domain_configurations(void)
> @@ -107,6 +146,7 @@ static void test_domain_configurations(void)
>          struct test *t = &tests[i];
>          uint32_t domid = 0;
>          int rc;
> +        xen_pfn_t ram[1] = { 0 };
>  
>          printf("Test %s\n", t->name);
>  
> @@ -123,8 +163,25 @@ static void test_domain_configurations(void)
>  
>          printf("  Created d%u\n", domid);
>  
> -        test_gnttab(domid, t->create.max_grant_frames);
> +        rc = xc_domain_setmaxmem(xch, domid, -1);
> +        if ( rc )
> +        {
> +            fail("  Failed to set max memory for domain: %d - %s\n",
> +                 errno, strerror(errno));
> +            goto test_done;
> +        }
> +
> +        rc = xc_domain_populate_physmap_exact(xch, domid, ARRAY_SIZE(ram), 0, 0, ram);

And here also.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 15:19:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 15:19:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225302.389075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlYKt-0005Wl-B0; Fri, 12 Nov 2021 15:19:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225302.389075; Fri, 12 Nov 2021 15:19:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlYKt-0005We-63; Fri, 12 Nov 2021 15:19:27 +0000
Received: by outflank-mailman (input) for mailman id 225302;
 Fri, 12 Nov 2021 15:19:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=an8x=P7=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mlYKs-0005WY-Nw
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 15:19:26 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb526a71-43cb-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 16:19:25 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:35956)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mlYKq-000thp-oC (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 12 Nov 2021 15:19:24 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 4A6701FC53;
 Fri, 12 Nov 2021 15:19:24 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb526a71-43cb-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH for-4.16 v2] tests/resource: Extend to check that the
 grant frames are mapped correctly
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Jane Malalane <jane.malalane@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>
References: <20211112144821.987-1-jane.malalane@citrix.com>
 <YY6FVaA63qwrnj0Y@Air-de-Roger>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <b8555052-23de-130e-8df8-be6217839f2e@srcf.net>
Date: Fri, 12 Nov 2021 15:19:23 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YY6FVaA63qwrnj0Y@Air-de-Roger>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 12/11/2021 15:16, Roger Pau Monné wrote:
> On Fri, Nov 12, 2021 at 02:48:21PM +0000, Jane Malalane wrote:
>> Previously, we checked that we could map 40 pages with nothing
>> complaining. Now we're adding extra logic to check that those 40
>> frames are "correct".
>>
>> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Jane Malalane <jane.malalane@citrix.com>
>> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> LGTM:
>
> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
>
> There are a couple of lines that exceed the 80 column limit that we
> have for other pieces of code, not sure if there's some kind of
> exception for tests. If so it might be easy to either resend or fix at
> commit.

I'll fix on commit.  Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 15:45:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 15:45:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225309.389086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlYjX-00009Z-74; Fri, 12 Nov 2021 15:44:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225309.389086; Fri, 12 Nov 2021 15:44:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlYjX-00009S-47; Fri, 12 Nov 2021 15:44:55 +0000
Received: by outflank-mailman (input) for mailman id 225309;
 Fri, 12 Nov 2021 15:44:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=cipi=P7=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1mlYjV-00009M-Vc
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 15:44:53 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78f9036d-43cf-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 16:44:51 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPS id 1ACFibYu081994
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 12 Nov 2021 10:44:43 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.16.1/8.15.2/Submit) id 1ACFiaVw081993;
 Fri, 12 Nov 2021 07:44:36 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78f9036d-43cf-11ec-a9d2-d9f7a1cc8784
Date: Fri, 12 Nov 2021 07:44:36 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Henry Wang <Henry.Wang@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Message-ID: <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
X-Spam-Status: No, score=0.0 required=10.0 tests=none autolearn=unavailable
	autolearn_force=no version=3.4.5
X-Spam-Checker-Version: SpamAssassin 3.4.5 (2021-03-20) on mattapan.m5p.com

On Fri, Nov 12, 2021 at 05:54:08AM +0000, Henry Wang wrote:
> 
> > -----Original Message-----
> > From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
> > Elliott Mitchell
> > 
> > I've been busy with another part of this project, so I've lost track of
> > progress on ACPI/UEFI support on ARM.
> > 
> > Last I'd read full support for ACPI/UEFI seemed a ways off.  Using a stub
> > domain to constrain ACPI table parsing seemed the favored approach.  I
> > was under the impression that would take some time.
> > 
> > What is the status?  Do the Xen/ARM leads have any guesses for when full
> > ACPI/UEFI support might reach completion?
> 
> I am doing some development based on the Xen UEFI/ACPI on AArch64 using
> the Arm FVP_Base platform. Using edk2 and master branch of Xen with
> `CONFIG_ACPI=y`, it seems everything can work properly.
> 
> Here are some of my logs:
> Shell> FS2:EFI\XEN\xen.efi
> Xen 4.16-rc (c/s Fri Nov 12 02:34:01 2021 +0000 git:323b47ffd9-dirty) EFI loader
> ...
> (XEN) PFN compression on bits 20...22
> (XEN) ACPI: RSDP F5E30018, 0024 (r2 LINARO)
> (XEN) ACPI: XSDT F5E3FE98, 005C (r1 LINARO RTSMVEV8        2       1000013)
> (XEN) ACPI: FACP F5E3FA98, 0114 (r6 LINARO RTSMVEV8        2 LNRO        2)
> (XEN) ACPI: DSDT F5E3ED98, 02AB (r2 LINARO RTSMVEV8        4 INTL 20200925)
> (XEN) ACPI: GTDT F5E3FC18, 00E0 (r2 LINARO RTSMVEV8        2 LNRO        2)
> (XEN) ACPI: APIC F5E3E998, 02D4 (r4 LINARO RTSMVEV8        2 LNRO        2)
> (XEN) ACPI: SPCR F5E3FF98, 0050 (r2 LINARO RTSMVEV8        2 LNRO        2)
> (XEN) Domain heap initialised

> ...
> [    0.000000] ACPI: SPCR 0x00000000F5E3FF98 000050 (v02 LINARO RTSMVEV8 00000002 LNRO 00000002)
> [    0.000000] ACPI: SPCR: console: pl011,mmio32,0x1c090000,115200
> ...
> 
> Hopefully this answers your question. :)

Thanks for the attempt at answering, but the SPCR entry tells me there is
a substantial portion of ACPI/UEFI functionality you're not testing.  I'm
specifically looking for framebuffer console support and SPCR says you're
using serial console.  While serial console is appropriate for true
servers, for some use cases it is inadequate.

Julien Grall and Stefano Stabellini had been proposing doing ACPI table
parsing in a stub domain, but I'm unaware of the status.  Not finding
much suggests it hasn't gone very far yet.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Nov 12 15:49:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 15:49:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225316.389097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlYo5-0000p1-Pg; Fri, 12 Nov 2021 15:49:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225316.389097; Fri, 12 Nov 2021 15:49:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlYo5-0000ou-Mi; Fri, 12 Nov 2021 15:49:37 +0000
Received: by outflank-mailman (input) for mailman id 225316;
 Fri, 12 Nov 2021 15:49:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlYo4-0000ok-Qs; Fri, 12 Nov 2021 15:49:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlYo4-0003B6-KZ; Fri, 12 Nov 2021 15:49:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlYo4-0002Wy-9E; Fri, 12 Nov 2021 15:49:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlYo4-0004jF-8i; Fri, 12 Nov 2021 15:49:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=SZJ37CthUybOF8tgBBVUjYcV5aETKinfrW9gFFSRlWo=; b=rvTBg/2TEK7G2eAttE8PVVQBKw
	RUmmHLkrsxPtc1M1dUlRShKZgny3ttNCxz6I6UB3NwfVO32RWdrylxywKBY5RxppVYjs4S5/4vfQ4
	3edMhpPen6k+PMiv4mxs9lP9SgdI44xguQssYv/elbzKCrTnG5NhvbY/BwlSzY/APTW0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166121-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166121: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=7e6295cc7db2b11b28af7f4ef644f2dd30ea6840
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Nov 2021 15:49:36 +0000

flight 166121 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166121/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              7e6295cc7db2b11b28af7f4ef644f2dd30ea6840
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  490 days
Failing since        151818  2020-07-11 04:18:52 Z  489 days  475 attempts
Testing same since   166121  2021-11-12 04:20:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 82996 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 16:02:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 16:02:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225324.389110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlZ0l-0003aa-Ve; Fri, 12 Nov 2021 16:02:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225324.389110; Fri, 12 Nov 2021 16:02:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlZ0l-0003aT-ST; Fri, 12 Nov 2021 16:02:43 +0000
Received: by outflank-mailman (input) for mailman id 225324;
 Fri, 12 Nov 2021 16:02:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mlZ0k-0003aN-FH
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 16:02:42 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlZ0g-0003wD-T7; Fri, 12 Nov 2021 16:02:38 +0000
Received: from [54.239.6.189] (helo=[192.168.1.222])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlZ0g-0005II-Ly; Fri, 12 Nov 2021 16:02:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=/7c6gj+f1F5eDScWFpVe8bzGIAxNKvsdNPWd/Jtx8XE=; b=LKNSJ9O0AQWbY35Ax2jc+ylY7K
	HrMF5MiAEdFeBgdMXhJkjVfiSrqMHs1RseZ72mZo3uQV+vHXdw/yhito8kwhX44P3T5mspV5jG0F2
	wkGeVxLGyRtTgmgQIgSJyk0He63In4OV1oUrrTQqLFUE/GXBP42trf6w9d1YI/aw1bKk=;
Message-ID: <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
Date: Fri, 12 Nov 2021 16:02:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: ACPI/UEFI support for Xen/ARM status?
To: Elliott Mitchell <ehem+xen@m5p.com>, Henry Wang <Henry.Wang@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Elliott,

On 12/11/2021 15:44, Elliott Mitchell wrote:
> On Fri, Nov 12, 2021 at 05:54:08AM +0000, Henry Wang wrote:
>>
>>> -----Original Message-----
>>> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
>>> Elliott Mitchell
>>>
>>> I've been busy with another part of this project, so I've lost track of
>>> progress on ACPI/UEFI support on ARM.
>>>
>>> Last I'd read full support for ACPI/UEFI seemed a ways off.  Using a stub
>>> domain to constrain ACPI table parsing seemed the favored approach.  I
>>> was under the impression that would take some time.
>>>
>>> What is the status?  Do the Xen/ARM leads have any guesses for when full
>>> ACPI/UEFI support might reach completion?
>>
>> I am doing some development based on the Xen UEFI/ACPI on AArch64 using
>> the Arm FVP_Base platform. Using edk2 and master branch of Xen with
>> `CONFIG_ACPI=y`, it seems everything can work properly.
>>
>> Here are some of my logs:
>> Shell> FS2:EFI\XEN\xen.efi
>> Xen 4.16-rc (c/s Fri Nov 12 02:34:01 2021 +0000 git:323b47ffd9-dirty) EFI loader
>> ...
>> (XEN) PFN compression on bits 20...22
>> (XEN) ACPI: RSDP F5E30018, 0024 (r2 LINARO)
>> (XEN) ACPI: XSDT F5E3FE98, 005C (r1 LINARO RTSMVEV8        2       1000013)
>> (XEN) ACPI: FACP F5E3FA98, 0114 (r6 LINARO RTSMVEV8        2 LNRO        2)
>> (XEN) ACPI: DSDT F5E3ED98, 02AB (r2 LINARO RTSMVEV8        4 INTL 20200925)
>> (XEN) ACPI: GTDT F5E3FC18, 00E0 (r2 LINARO RTSMVEV8        2 LNRO        2)
>> (XEN) ACPI: APIC F5E3E998, 02D4 (r4 LINARO RTSMVEV8        2 LNRO        2)
>> (XEN) ACPI: SPCR F5E3FF98, 0050 (r2 LINARO RTSMVEV8        2 LNRO        2)
>> (XEN) Domain heap initialised
> 
>> ...
>> [    0.000000] ACPI: SPCR 0x00000000F5E3FF98 000050 (v02 LINARO RTSMVEV8 00000002 LNRO 00000002)
>> [    0.000000] ACPI: SPCR: console: pl011,mmio32,0x1c090000,115200
>> ...
>>
>> Hopefully this answers your question. :)
> 
> Thanks for the attempt at answering, but the SPCR entry tells me there is
> a substantial portion of ACPI/UEFI functionality you're not testing.  I'm
> specifically looking for framebuffer console support and SPCR says you're
> using serial console.  While serial console is appropriate for true
> servers, for some use cases it is inadequate.

We don't have any support for framebuffer in Xen on Arm (even for 
Device-Tree). I would be happy to consider any patches if you are plan 
to post some.

> 
> Julien Grall and Stefano Stabellini had been proposing doing ACPI table
> parsing in a stub domain, but I'm unaware of the status.  Not finding
> much suggests it hasn't gone very far yet.

This was a very early proposal in case we needed to parse the DSDT in 
Xen. This hasn't been needed so far, hence why this is not implemented 
and no-one worked on it.

I am not very familiar how the framebuffer is detected in ACPI. Can you 
provide more details on what exactly you want to parse?

Alternatively, UEFI is meant to provide an API to access the 
framebuffer. Would that be suitable for you?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 16:41:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 16:41:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225333.389121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlZbi-0007ZP-21; Fri, 12 Nov 2021 16:40:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225333.389121; Fri, 12 Nov 2021 16:40:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlZbh-0007ZI-Uq; Fri, 12 Nov 2021 16:40:53 +0000
Received: by outflank-mailman (input) for mailman id 225333;
 Fri, 12 Nov 2021 16:40:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlZbh-0007Z8-9r; Fri, 12 Nov 2021 16:40:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlZbg-0004Wi-T1; Fri, 12 Nov 2021 16:40:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlZbg-0005M1-JX; Fri, 12 Nov 2021 16:40:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlZbg-0007nz-Iz; Fri, 12 Nov 2021 16:40:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+7FkQduWbXjlVGm5+58b5QDBFoduYYjIBxRxVctaQmw=; b=Egoy59HGak+fcrRiJoCj5PMO8Z
	r7JOC5Ny/+C8P/jY2bax7hOBsOTEzSZjscYCTH7YWAStL0OcQvJmF3jsz0tRKXkBfv7o3+I6Tdq1v
	5/oDxaVJkD6/zwVP4hlTKzhSlyZv8mIKBuBbtoOtIIoEwCFgA8bKqYOg5Y3sRpoIM/dU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166127-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166127: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c06e3d81031424a8a0f725198c16ad81007be89c
X-Osstest-Versions-That:
    xen=e2d0a42381b686451bed3e0e3ab8551f6c2d4090
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Nov 2021 16:40:52 +0000

flight 166127 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166127/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c06e3d81031424a8a0f725198c16ad81007be89c
baseline version:
 xen                  e2d0a42381b686451bed3e0e3ab8551f6c2d4090

Last test of basis   166116  2021-11-11 19:01:38 Z    0 days
Testing same since   166127  2021-11-12 13:01:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   e2d0a42381..c06e3d8103  c06e3d81031424a8a0f725198c16ad81007be89c -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 16:52:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 16:52:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225340.389135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlZmq-0000cW-4H; Fri, 12 Nov 2021 16:52:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225340.389135; Fri, 12 Nov 2021 16:52:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlZmq-0000cP-1N; Fri, 12 Nov 2021 16:52:24 +0000
Received: by outflank-mailman (input) for mailman id 225340;
 Fri, 12 Nov 2021 16:52:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=cipi=P7=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1mlZmp-0000cJ-7M
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 16:52:23 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4fc73c2-43d8-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 17:52:21 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPS id 1ACGq2fY082934
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 12 Nov 2021 11:52:08 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.16.1/8.15.2/Submit) id 1ACGq29O082932;
 Fri, 12 Nov 2021 08:52:02 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4fc73c2-43d8-11ec-9787-a32c541c8605
Date: Fri, 12 Nov 2021 08:52:02 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Julien Grall <julien@xen.org>
Cc: Henry Wang <Henry.Wang@arm.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Message-ID: <YY6bsu8/y/LeMfg3@mattapan.m5p.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
X-Spam-Status: No, score=0.0 required=10.0 tests=none autolearn=unavailable
	autolearn_force=no version=3.4.5
X-Spam-Checker-Version: SpamAssassin 3.4.5 (2021-03-20) on mattapan.m5p.com

On Fri, Nov 12, 2021 at 04:02:36PM +0000, Julien Grall wrote:
> Hi Elliott,
> 
> On 12/11/2021 15:44, Elliott Mitchell wrote:
> > On Fri, Nov 12, 2021 at 05:54:08AM +0000, Henry Wang wrote:
> >>
> >>> -----Original Message-----
> >>> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
> >>> Elliott Mitchell
> >>>
> >>> I've been busy with another part of this project, so I've lost track of
> >>> progress on ACPI/UEFI support on ARM.
> >>>
> >>> Last I'd read full support for ACPI/UEFI seemed a ways off.  Using a stub
> >>> domain to constrain ACPI table parsing seemed the favored approach.  I
> >>> was under the impression that would take some time.
> >>>
> >>> What is the status?  Do the Xen/ARM leads have any guesses for when full
> >>> ACPI/UEFI support might reach completion?
> >>
> >> I am doing some development based on the Xen UEFI/ACPI on AArch64 using
> >> the Arm FVP_Base platform. Using edk2 and master branch of Xen with
> >> `CONFIG_ACPI=y`, it seems everything can work properly.
> >>
> >> Here are some of my logs:
> >> Shell> FS2:EFI\XEN\xen.efi
> >> Xen 4.16-rc (c/s Fri Nov 12 02:34:01 2021 +0000 git:323b47ffd9-dirty) EFI loader
> >> ...
> >> (XEN) PFN compression on bits 20...22
> >> (XEN) ACPI: RSDP F5E30018, 0024 (r2 LINARO)
> >> (XEN) ACPI: XSDT F5E3FE98, 005C (r1 LINARO RTSMVEV8        2       1000013)
> >> (XEN) ACPI: FACP F5E3FA98, 0114 (r6 LINARO RTSMVEV8        2 LNRO        2)
> >> (XEN) ACPI: DSDT F5E3ED98, 02AB (r2 LINARO RTSMVEV8        4 INTL 20200925)
> >> (XEN) ACPI: GTDT F5E3FC18, 00E0 (r2 LINARO RTSMVEV8        2 LNRO        2)
> >> (XEN) ACPI: APIC F5E3E998, 02D4 (r4 LINARO RTSMVEV8        2 LNRO        2)
> >> (XEN) ACPI: SPCR F5E3FF98, 0050 (r2 LINARO RTSMVEV8        2 LNRO        2)
> >> (XEN) Domain heap initialised
> > 
> >> ...
> >> [    0.000000] ACPI: SPCR 0x00000000F5E3FF98 000050 (v02 LINARO RTSMVEV8 00000002 LNRO 00000002)
> >> [    0.000000] ACPI: SPCR: console: pl011,mmio32,0x1c090000,115200
> >> ...
> >>
> >> Hopefully this answers your question. :)
> > 
> > Thanks for the attempt at answering, but the SPCR entry tells me there is
> > a substantial portion of ACPI/UEFI functionality you're not testing.  I'm
> > specifically looking for framebuffer console support and SPCR says you're
> > using serial console.  While serial console is appropriate for true
> > servers, for some use cases it is inadequate.
> 
> We don't have any support for framebuffer in Xen on Arm (even for 
> Device-Tree). I would be happy to consider any patches if you are plan 
> to post some.

Xen on ARM doesn't need a framebuffer itself, but it can be valuable to
have Domain 0 able to access a framebuffer.


> > Julien Grall and Stefano Stabellini had been proposing doing ACPI table
> > parsing in a stub domain, but I'm unaware of the status.  Not finding
> > much suggests it hasn't gone very far yet.
> 
> This was a very early proposal in case we needed to parse the DSDT in 
> Xen. This hasn't been needed so far, hence why this is not implemented 
> and no-one worked on it.
> 
> I am not very familiar how the framebuffer is detected in ACPI. Can you 
> provide more details on what exactly you want to parse?
> 
> Alternatively, UEFI is meant to provide an API to access the 
> framebuffer. Would that be suitable for you?

Last time I tried booting on UEFI, Domain 0 (Linux) was unable to access
the framebuffer on this device.  Whereas the same kernel directly on top
of UEFI/ACPI was fully able to access the framebuffer (and graphics
chip).

I had been left with the impression the DSDT parsing was going to be
needed for Domain 0 to access the framebuffer.  This was found
unnecessary for framebuffer access for Domain 0?

(Raspberry PI 4B with the Tianocore/EDK2 image)


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Nov 12 17:38:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 17:38:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225346.389147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlaV7-0004gq-KD; Fri, 12 Nov 2021 17:38:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225346.389147; Fri, 12 Nov 2021 17:38:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlaV7-0004gj-Gs; Fri, 12 Nov 2021 17:38:09 +0000
Received: by outflank-mailman (input) for mailman id 225346;
 Fri, 12 Nov 2021 17:38:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mlaV6-0004gd-2H
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 17:38:08 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlaV2-0005TV-Q3; Fri, 12 Nov 2021 17:38:04 +0000
Received: from [54.239.6.189] (helo=[192.168.1.222])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mlaV2-0007WQ-JF; Fri, 12 Nov 2021 17:38:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=DeNGyg0Nd3326ufTPogerBg2QfPAcqwUde50DqaRdxI=; b=ZX2yK8EVNwf+IJ5IEbLtrQXfmh
	AIFP0cNfXIvR8ocndPUudYFZKAypyJOpMzKlvRBpl3iNha7uZQmR+Hi2WvvQD0t7+EY3oDwF4stwo
	aTZnlqfb9wVvY5EtQSED6Pab9HnlG9L3ydRpClKrWm+0EEFv/bPuP6NNhQPkyIFsYTmI=;
Message-ID: <40474f12-e269-f251-99b1-cb5b0a317bb2@xen.org>
Date: Fri, 12 Nov 2021 17:38:02 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: ACPI/UEFI support for Xen/ARM status?
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Henry Wang <Henry.Wang@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <YY6bsu8/y/LeMfg3@mattapan.m5p.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <YY6bsu8/y/LeMfg3@mattapan.m5p.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/11/2021 16:52, Elliott Mitchell wrote:
> On Fri, Nov 12, 2021 at 04:02:36PM +0000, Julien Grall wrote:
>> Hi Elliott,
>>
>> On 12/11/2021 15:44, Elliott Mitchell wrote:
>>> On Fri, Nov 12, 2021 at 05:54:08AM +0000, Henry Wang wrote:
>>>>
>>>>> -----Original Message-----
>>>>> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
>>>>> Elliott Mitchell
>>>>>
>>>>> I've been busy with another part of this project, so I've lost track of
>>>>> progress on ACPI/UEFI support on ARM.
>>>>>
>>>>> Last I'd read full support for ACPI/UEFI seemed a ways off.  Using a stub
>>>>> domain to constrain ACPI table parsing seemed the favored approach.  I
>>>>> was under the impression that would take some time.
>>>>>
>>>>> What is the status?  Do the Xen/ARM leads have any guesses for when full
>>>>> ACPI/UEFI support might reach completion?
>>>>
>>>> I am doing some development based on the Xen UEFI/ACPI on AArch64 using
>>>> the Arm FVP_Base platform. Using edk2 and master branch of Xen with
>>>> `CONFIG_ACPI=y`, it seems everything can work properly.
>>>>
>>>> Here are some of my logs:
>>>> Shell> FS2:EFI\XEN\xen.efi
>>>> Xen 4.16-rc (c/s Fri Nov 12 02:34:01 2021 +0000 git:323b47ffd9-dirty) EFI loader
>>>> ...
>>>> (XEN) PFN compression on bits 20...22
>>>> (XEN) ACPI: RSDP F5E30018, 0024 (r2 LINARO)
>>>> (XEN) ACPI: XSDT F5E3FE98, 005C (r1 LINARO RTSMVEV8        2       1000013)
>>>> (XEN) ACPI: FACP F5E3FA98, 0114 (r6 LINARO RTSMVEV8        2 LNRO        2)
>>>> (XEN) ACPI: DSDT F5E3ED98, 02AB (r2 LINARO RTSMVEV8        4 INTL 20200925)
>>>> (XEN) ACPI: GTDT F5E3FC18, 00E0 (r2 LINARO RTSMVEV8        2 LNRO        2)
>>>> (XEN) ACPI: APIC F5E3E998, 02D4 (r4 LINARO RTSMVEV8        2 LNRO        2)
>>>> (XEN) ACPI: SPCR F5E3FF98, 0050 (r2 LINARO RTSMVEV8        2 LNRO        2)
>>>> (XEN) Domain heap initialised
>>>
>>>> ...
>>>> [    0.000000] ACPI: SPCR 0x00000000F5E3FF98 000050 (v02 LINARO RTSMVEV8 00000002 LNRO 00000002)
>>>> [    0.000000] ACPI: SPCR: console: pl011,mmio32,0x1c090000,115200
>>>> ...
>>>>
>>>> Hopefully this answers your question. :)
>>>
>>> Thanks for the attempt at answering, but the SPCR entry tells me there is
>>> a substantial portion of ACPI/UEFI functionality you're not testing.  I'm
>>> specifically looking for framebuffer console support and SPCR says you're
>>> using serial console.  While serial console is appropriate for true
>>> servers, for some use cases it is inadequate.
>>
>> We don't have any support for framebuffer in Xen on Arm (even for
>> Device-Tree). I would be happy to consider any patches if you are plan
>> to post some.
> 
> Xen on ARM doesn't need a framebuffer itself, but it can be valuable to
> have Domain 0 able to access a framebuffer.

Right, that's a completely different story (see below).

> 
> 
>>> Julien Grall and Stefano Stabellini had been proposing doing ACPI table
>>> parsing in a stub domain, but I'm unaware of the status.  Not finding
>>> much suggests it hasn't gone very far yet.
>>
>> This was a very early proposal in case we needed to parse the DSDT in
>> Xen. This hasn't been needed so far, hence why this is not implemented
>> and no-one worked on it.
>>
>> I am not very familiar how the framebuffer is detected in ACPI. Can you
>> provide more details on what exactly you want to parse?
>>
>> Alternatively, UEFI is meant to provide an API to access the
>> framebuffer. Would that be suitable for you?
> 
> Last time I tried booting on UEFI, Domain 0 (Linux) was unable to access
> the framebuffer on this device.  Whereas the same kernel directly on top
> of UEFI/ACPI was fully able to access the framebuffer (and graphics
> chip).

Do you have any log or pointer to any previous discussion about the issue?

> 
> I had been left with the impression the DSDT parsing was going to be
> needed for Domain 0 to access the framebuffer.  This was found
> unnecessary for framebuffer access for Domain 0?

I thought you were asking for using framebuffer in Xen. There is no need 
for Xen to parse the DSDT if the framebuffer is solely used by Dom0.

Your problem with the framebuffer is likely not related to the DSDT. But 
I can't really provide a lot of input until I see the logs.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 17:51:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 17:51:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225352.389158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlaiG-0006t5-Ra; Fri, 12 Nov 2021 17:51:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225352.389158; Fri, 12 Nov 2021 17:51:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlaiG-0006sy-NR; Fri, 12 Nov 2021 17:51:44 +0000
Received: by outflank-mailman (input) for mailman id 225352;
 Fri, 12 Nov 2021 17:51:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3plF=P7=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1mlaiD-0006ss-Dv
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 17:51:42 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on0627.outbound.protection.outlook.com
 [2a01:111:f400:fe0d::627])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2dc69423-43e1-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 18:51:36 +0100 (CET)
Received: from AS8PR04CA0058.eurprd04.prod.outlook.com (2603:10a6:20b:312::33)
 by AM4PR08MB2660.eurprd08.prod.outlook.com (2603:10a6:205:c::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19; Fri, 12 Nov
 2021 17:51:30 +0000
Received: from AM5EUR03FT040.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:312:cafe::df) by AS8PR04CA0058.outlook.office365.com
 (2603:10a6:20b:312::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Fri, 12 Nov 2021 17:51:30 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT040.mail.protection.outlook.com (10.152.17.148) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Fri, 12 Nov 2021 17:51:29 +0000
Received: ("Tessian outbound 1cfce3f02e53:v109");
 Fri, 12 Nov 2021 17:51:28 +0000
Received: from 16a71c4ff866.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 A174EBDA-DC4A-4EB5-8507-33633591A3AA.1; 
 Fri, 12 Nov 2021 17:51:19 +0000
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 16a71c4ff866.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 12 Nov 2021 17:51:19 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PAXPR08MB6590.eurprd08.prod.outlook.com (2603:10a6:102:152::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 12 Nov
 2021 17:51:14 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::1d24:822b:651c:5eeb]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::1d24:822b:651c:5eeb%6]) with mapi id 15.20.4690.015; Fri, 12 Nov 2021
 17:51:14 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO4P123CA0454.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.17 via Frontend Transport; Fri, 12 Nov 2021 17:51:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2dc69423-43e1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8jOjMC6ZslfKHGlqvMs6HENstgBtVjPr1SSip5CPSTc=;
 b=qZM0giWm98s18LctN5sg92a5+ym8mW42yEEW7loURAYk03A9ysbX0QjfB3cHQkAO0fA11rSb8wyMYOfFRbhQulWIAExwu4cAj/zPxkwTAkOl22pSIZxx8hfAQmoWCW4y03ZcRpzhlYiIFWpreoyMPWqEzicDWg0h+GjfcUEK+mM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 471cede8e4c52d88
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=F7daOQBo6YpZygifPmDmXN1eNP0pP7BMuHTYqK152zzteB8NnDXG0S9z6NbOGiFsZQLrxCpFzgCxZhnIs55lrF/oGHpnt7pf60xfDzgKcEaTbl00vGsziP3ygzxfdFQ4mC7Xj4K3nFlSaEWmbmoK1lU+CULS+rR3Rbs4hRY3bGvONydmBskgGsEEDpYOjyXKkOp4G/9seh9MaDhJ+JO/KDElLoLXQHMS1Hakoggz2O8uEdITwvOzLbWgt4jw2sxs1vHJVRT/Nm/8kmO/BN0tE+p+sRa2OSrq22KUd/XjEuIwIq4BfN1tDKY+HlShE72GpFGUw0J0jPjysgGQrsODcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8jOjMC6ZslfKHGlqvMs6HENstgBtVjPr1SSip5CPSTc=;
 b=F29MF0RwqdUTN5z1HE06/iCrMcTzTRiDSZE04UhO9fjyoilQhj1cV4i1EVBvQwVC4aufWiSgGtzOLRVCFh01DxssGXra0KwUhI3da1kY35siuvaZ6jJMUgiiLdzbmv9lyPURxX+Iu/7GakjIOGYFZAwhilV1jMn6YWEjQr8TRE7aS9Wtm2BucpSuUQnYiHc8IRO52pKsy54zigkJZAkFqxGPDhV5ds1aHN6hmoGVKusM611bs587sVeM8cpsSDh19GrG1fW3FwlMeAM2COZhWXLIZKSuDkz2Eh3/rOhw+d60C+NVfFvigY5lBc6QKrxK0OTdTLBoqjko3tuDI1ZcAg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8jOjMC6ZslfKHGlqvMs6HENstgBtVjPr1SSip5CPSTc=;
 b=qZM0giWm98s18LctN5sg92a5+ym8mW42yEEW7loURAYk03A9ysbX0QjfB3cHQkAO0fA11rSb8wyMYOfFRbhQulWIAExwu4cAj/zPxkwTAkOl22pSIZxx8hfAQmoWCW4y03ZcRpzhlYiIFWpreoyMPWqEzicDWg0h+GjfcUEK+mM=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [XEN][RFC PATCH v4 1/1] Update libfdt to v1.6.1
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <1636702040-116895-2-git-send-email-fnu.vikram@xilinx.com>
Date: Fri, 12 Nov 2021 17:51:12 +0000
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>,
 bertrand.marquis@arm.com,
 volodymyr_babchuk@epam.com
Content-Transfer-Encoding: quoted-printable
Message-Id: <AE30D3B0-0863-465C-AFBC-8DEB28919A8A@arm.com>
References: <1636702040-116895-1-git-send-email-fnu.vikram@xilinx.com>
 <1636702040-116895-2-git-send-email-fnu.vikram@xilinx.com>
To: Vikram Garhwal <fnu.vikram@xilinx.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO4P123CA0454.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1aa::9) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b28ad4d0-e4d6-4285-4f35-08d9a6050e27
X-MS-TrafficTypeDiagnostic: PAXPR08MB6590:|AM4PR08MB2660:
X-Microsoft-Antispam-PRVS:
	<AM4PR08MB2660D4279EFE6A9FDB1DE72AE4959@AM4PR08MB2660.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:2803;OLM:2803;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 qC6w3v6Mkb8Urhlvz5P5FYcuCPEm03sg5fFLRGkowq78eVp5MsT+DuynbFdQHgYUs8UbJt0rb3fafK65gLGjwhBunIKD8wXHAoxY2OM8/EBr4ixxHdvYsF7cjtmHznd/5/4lGgyekvCwpGk/p1zzg/7LNj8F85sD/FXmBEmecJXeCT/xRasqP86/iyjo8qqrNY7H6kCmzvu0ZoKPNtuPZcaQi9kW6c8YkJXXmHUt8ru6UvgtwgyivFnYW3W6np1TUp0HBsLl/Qrz/LOM6Sy2hiuchpHPbhSaCNTUYokSxbpc4BLD8Y/e15ZBcfuyfLf2nOt/18znryF+Hr3j+5uQbWKGPEjxVudLBLSXj9Yufx/18D1YitvfH3rrt8OwPf9z7ahscdim7Vbd2/Op+Wl7fO30o76BPnXmR9XWZ9hcAoNFOvEl/CZSDUX9RAqin2NnXT3DAHDrWjJSy0fB0ai9atqkvkdolm2CRa8pHod8Qe3070xh22jv3jMEoYBh5oqoG6mxbWLkyApsBlWFSdRP7EJodR033IhZthNl9iLjbaOq9FA3YnImNCi58/6uguBhEfiTJO6BicJD21234ONg9uReIGL391RJa4gVl85g88A6XbL4lGyv6UWL0UgC81ZpCJc+gRTqsTyKaEZ1S4RWXsdXUcx4/I6k+F6I46YiuDIzjyMqtSHzWDPQCHFR8k0xQfrhv1xIadpL+6FXsgQ2t5r3/pDgKY36k1rWjy1NmQtFTXTW62ySMwXeVruZdgAgJG8GiKWZ+lNcNtkav7mUoXYjSloK2zP2msZpZ14HO79s8lzFZEQ44v1CrAgV1BLHWyB5OK/ThGQ5G9dmJGG6PymzPtG3I/FAAI/Ex046N2+MTejqIgZjxLeHoTWQrhnT
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(186003)(52116002)(508600001)(2906002)(36756003)(15650500001)(53546011)(86362001)(5660300002)(38100700002)(83380400001)(6506007)(38350700002)(6512007)(30864003)(54906003)(956004)(33656002)(2616005)(26005)(6486002)(66476007)(4326008)(66946007)(6916009)(66556008)(8936002)(316002)(44832011)(46800400005)(2004002)(45980500001)(579004)(559001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6590
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT040.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0808b447-c98f-4d4e-bd3d-08d9a6050520
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	5U2PBu1w6SsUPT7pL2b8tbgndSwcorhIkaku/HfZG0eUGK+Fowod8Ch3e1fzYg2pzH+2fIpm7FOv/3VggLILipUCqJ0sD3ZqpYH9sfI9CrCBM2okdgKmlG4PFnoySM6bWEA4y/WL7OgdETyafshS2xxDP5lPiiYS/0Izalp/DTDg79rI+AYgNNhnlgMYUZQVzj2K5Za3zirvCOdb863wn86x/zlNj9a4SGAOmKVjYQCD8UKwSvrBvdKYh+n3/DgcElcisjxGZWrvmmvZ46McvKHrLK8kG0iFkBk9ug8gkux0KWt/vDjRoF8Nf1fLR+xXUBCtonkCoH92786AMrfwkx/mAt9E5e0UArueBZz2k3evjrodY+25Pwil8FYRIy6qvuG7wV34UBQSmrFRM9LVbhTe3wXxa5v9BQywM8hfMZHDl16Dq1VFn2qsoThAj6PdPEZxAvG2k5eQf2vZ/Goum37Xh2yEvTId4TWZH6GqOqHtFiReBhrY/hEzDpkcXn1dOCelRpBWAalhpLRtBvc7jdQVX476fu5cERs0zQZ9S81mDI9HE9/nOmNzKMNi3Erz7x5vwOw8lsxXT5JVSC4aAzfp1Z/yEcNkuxBDXGAqDvxxEu5coUtjA5IWspB4jSD8uWZoyVCZtYTfFNCFLLV/UwoSlD5c5n7ACdALUiN7z3reOm6caRLknApqRWe4hwZDnIy1otOS3lUp13eguqPc9aAtsDTORwgSmGpQLeypq1LrM3bYa8LUYiH4wvWI9Ank4FgQlm8Ok0azJ5rYXGEh92FNSwV4X5ivP8jkVEKdokxPNQbzbCkz7+EQZOFNAEuvQmqy8AYRu/a7/l8R4IA/lA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(356005)(107886003)(83380400001)(6506007)(53546011)(186003)(8936002)(26005)(6512007)(6486002)(86362001)(2906002)(956004)(6862004)(70206006)(316002)(70586007)(81166007)(2616005)(4326008)(33656002)(5660300002)(44832011)(508600001)(8676002)(30864003)(36860700001)(15650500001)(47076005)(82310400003)(36756003)(336012)(54906003)(46800400005)(2004002)(559001)(579004);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2021 17:51:29.1300
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b28ad4d0-e4d6-4285-4f35-08d9a6050e27
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT040.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2660



> On 12 Nov 2021, at 07:27, Vikram Garhwal <fnu.vikram@xilinx.com> wrote:
>=20
> Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc=
.
> This update is done to support device tree overlays.
>=20
> A few minor changes are done to make it compatible with Xen:
>    fdt_overlay.c: overlay_fixup_phandle()
>=20
>        Replace strtoul() with simple_strtoul() as strtoul() is not availa=
ble in
>        Xen lib and included lib.h.
>=20
>        Change char *endptr to const char *endptr. This change is required=
 for
>        using simple_strtoul().
>=20
>    libfdt_env.h:
>        Remaining Xen changes to libfdt_env.h carried over from existing
>        libfdt (v1.4.0)

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

I=E2=80=99ve also tested it on FVP and on a Juno board, starting few guests=
 and it worked.

Tested-by: Luca Fancellu <luca.fancellu@arm.com>

>=20
> Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
> ---
> xen/common/libfdt/Makefile.libfdt   |  10 +-
> xen/common/libfdt/fdt.c             | 226 ++++++---
> xen/common/libfdt/fdt_addresses.c   | 101 ++++
> xen/common/libfdt/fdt_check.c       |  93 ++++
> xen/common/libfdt/fdt_empty_tree.c  |  46 +-
> xen/common/libfdt/fdt_overlay.c     | 884 +++++++++++++++++++++++++++++++=
+++++
> xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
> xen/common/libfdt/fdt_rw.c          | 249 +++++-----
> xen/common/libfdt/fdt_strerror.c    |  55 +--
> xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
> xen/common/libfdt/fdt_wip.c         |  88 ++--
> xen/common/libfdt/libfdt_internal.h | 223 ++++++---
> xen/common/libfdt/version.lds       |  24 +-
> xen/include/xen/libfdt/fdt.h        |  51 +--
> xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++--=
---
> xen/include/xen/libfdt/libfdt_env.h |  98 +++-
> 16 files changed, 3046 insertions(+), 786 deletions(-)
> create mode 100644 xen/common/libfdt/fdt_addresses.c
> create mode 100644 xen/common/libfdt/fdt_check.c
> create mode 100644 xen/common/libfdt/fdt_overlay.c
>=20
> diff --git a/xen/common/libfdt/Makefile.libfdt b/xen/common/libfdt/Makefi=
le.libfdt
> index 91126c0..b6d8fc0 100644
> --- a/xen/common/libfdt/Makefile.libfdt
> +++ b/xen/common/libfdt/Makefile.libfdt
> @@ -1,3 +1,4 @@
> +# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> # Makefile.libfdt
> #
> # This is not a complete Makefile of itself.  Instead, it is designed to
> @@ -6,5 +7,12 @@
> LIBFDT_soname =3D libfdt.$(SHAREDLIB_EXT).1
> LIBFDT_INCLUDES =3D fdt.h libfdt.h libfdt_env.h
> LIBFDT_VERSION =3D version.lds
> -LIBFDT_SRCS =3D fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.=
c fdt_empty_tree.c
> +LIBFDT_SRCS =3D fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.=
c fdt_empty_tree.c \
> +	fdt_addresses.c fdt_overlay.c fdt_check.c
> LIBFDT_OBJS =3D $(LIBFDT_SRCS:%.c=3D%.o)
> +LIBFDT_LIB =3D libfdt-$(DTC_VERSION).$(SHAREDLIB_EXT)
> +
> +libfdt_clean:
> +	@$(VECHO) CLEAN "(libfdt)"
> +	rm -f $(STD_CLEANFILES:%=3D$(LIBFDT_dir)/%)
> +	rm -f $(LIBFDT_dir)/$(LIBFDT_soname)
> diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
> index bbc7717..9fe7cf4 100644
> --- a/xen/common/libfdt/fdt.c
> +++ b/xen/common/libfdt/fdt.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,40 +10,156 @@
>=20
> #include "libfdt_internal.h"
>=20
> -int fdt_check_header(const void *fdt)
> +/*
> + * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
> + * that the given buffer contains what appears to be a flattened
> + * device tree with sane information in its header.
> + */
> +int32_t fdt_ro_probe_(const void *fdt)
> {
> +	uint32_t totalsize =3D fdt_totalsize(fdt);
> +
> +	if (can_assume(VALID_DTB))
> +		return totalsize;
> +
> +	/* The device tree must be at an 8-byte aligned address */
> +	if ((uintptr_t)fdt & 7)
> +		return -FDT_ERR_ALIGNMENT;
> +
> 	if (fdt_magic(fdt) =3D=3D FDT_MAGIC) {
> 		/* Complete tree */
> -		if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> -			return -FDT_ERR_BADVERSION;
> -		if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
> -			return -FDT_ERR_BADVERSION;
> +		if (!can_assume(LATEST)) {
> +			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> +				return -FDT_ERR_BADVERSION;
> +			if (fdt_last_comp_version(fdt) >
> +					FDT_LAST_SUPPORTED_VERSION)
> +				return -FDT_ERR_BADVERSION;
> +		}
> 	} else if (fdt_magic(fdt) =3D=3D FDT_SW_MAGIC) {
> 		/* Unfinished sequential-write blob */
> -		if (fdt_size_dt_struct(fdt) =3D=3D 0)
> +		if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) =3D=3D 0)
> 			return -FDT_ERR_BADSTATE;
> 	} else {
> 		return -FDT_ERR_BADMAGIC;
> 	}
>=20
> +	if (totalsize < INT32_MAX)
> +		return totalsize;
> +	else
> +		return -FDT_ERR_TRUNCATED;
> +}
> +
> +static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off=
)
> +{
> +	return (off >=3D hdrsize) && (off <=3D totalsize);
> +}
> +
> +static int check_block_(uint32_t hdrsize, uint32_t totalsize,
> +			uint32_t base, uint32_t size)
> +{
> +	if (!check_off_(hdrsize, totalsize, base))
> +		return 0; /* block start out of bounds */
> +	if ((base + size) < base)
> +		return 0; /* overflow */
> +	if (!check_off_(hdrsize, totalsize, base + size))
> +		return 0; /* block end out of bounds */
> +	return 1;
> +}
> +
> +size_t fdt_header_size_(uint32_t version)
> +{
> +	if (version <=3D 1)
> +		return FDT_V1_SIZE;
> +	else if (version <=3D 2)
> +		return FDT_V2_SIZE;
> +	else if (version <=3D 3)
> +		return FDT_V3_SIZE;
> +	else if (version <=3D 16)
> +		return FDT_V16_SIZE;
> +	else
> +		return FDT_V17_SIZE;
> +}
> +
> +size_t fdt_header_size(const void *fdt)
> +{
> +	return can_assume(LATEST) ? FDT_V17_SIZE :
> +		fdt_header_size_(fdt_version(fdt));
> +}
> +
> +int fdt_check_header(const void *fdt)
> +{
> +	size_t hdrsize;
> +
> +	/* The device tree must be at an 8-byte aligned address */
> +	if ((uintptr_t)fdt & 7)
> +		return -FDT_ERR_ALIGNMENT;
> +
> +	if (fdt_magic(fdt) !=3D FDT_MAGIC)
> +		return -FDT_ERR_BADMAGIC;
> +	if (!can_assume(LATEST)) {
> +		if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> +		    || (fdt_last_comp_version(fdt) >
> +			FDT_LAST_SUPPORTED_VERSION))
> +			return -FDT_ERR_BADVERSION;
> +		if (fdt_version(fdt) < fdt_last_comp_version(fdt))
> +			return -FDT_ERR_BADVERSION;
> +	}
> +	hdrsize =3D fdt_header_size(fdt);
> +	if (!can_assume(VALID_DTB)) {
> +
> +		if ((fdt_totalsize(fdt) < hdrsize)
> +		    || (fdt_totalsize(fdt) > INT_MAX))
> +			return -FDT_ERR_TRUNCATED;
> +
> +		/* Bounds check memrsv block */
> +		if (!check_off_(hdrsize, fdt_totalsize(fdt),
> +				fdt_off_mem_rsvmap(fdt)))
> +			return -FDT_ERR_TRUNCATED;
> +	}
> +
> +	if (!can_assume(VALID_DTB)) {
> +		/* Bounds check structure block */
> +		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
> +			if (!check_off_(hdrsize, fdt_totalsize(fdt),
> +					fdt_off_dt_struct(fdt)))
> +				return -FDT_ERR_TRUNCATED;
> +		} else {
> +			if (!check_block_(hdrsize, fdt_totalsize(fdt),
> +					  fdt_off_dt_struct(fdt),
> +					  fdt_size_dt_struct(fdt)))
> +				return -FDT_ERR_TRUNCATED;
> +		}
> +
> +		/* Bounds check strings block */
> +		if (!check_block_(hdrsize, fdt_totalsize(fdt),
> +				  fdt_off_dt_strings(fdt),
> +				  fdt_size_dt_strings(fdt)))
> +			return -FDT_ERR_TRUNCATED;
> +	}
> +
> 	return 0;
> }
>=20
> const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
> {
> -	unsigned absoffset =3D offset + fdt_off_dt_struct(fdt);
> +	unsigned int uoffset =3D offset;
> +	unsigned int absoffset =3D offset + fdt_off_dt_struct(fdt);
>=20
> -	if ((absoffset < offset)
> -	    || ((absoffset + len) < absoffset)
> -	    || (absoffset + len) > fdt_totalsize(fdt))
> +	if (offset < 0)
> 		return NULL;
>=20
> -	if (fdt_version(fdt) >=3D 0x11)
> -		if (((offset + len) < offset)
> +	if (!can_assume(VALID_INPUT))
> +		if ((absoffset < uoffset)
> +		    || ((absoffset + len) < absoffset)
> +		    || (absoffset + len) > fdt_totalsize(fdt))
> +			return NULL;
> +
> +	if (can_assume(LATEST) || fdt_version(fdt) >=3D 0x11)
> +		if (((uoffset + len) < uoffset)
> 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
> 			return NULL;
>=20
> -	return _fdt_offset_ptr(fdt, offset);
> +	return fdt_offset_ptr_(fdt, offset);
> }
>=20
> uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> @@ -98,7 +171,7 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset=
, int *nextoffset)
>=20
> 	*nextoffset =3D -FDT_ERR_TRUNCATED;
> 	tagp =3D fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
> -	if (!tagp)
> +	if (!can_assume(VALID_DTB) && !tagp)
> 		return FDT_END; /* premature end */
> 	tag =3D fdt32_to_cpu(*tagp);
> 	offset +=3D FDT_TAGSIZE;
> @@ -110,17 +183,21 @@ uint32_t fdt_next_tag(const void *fdt, int startoff=
set, int *nextoffset)
> 		do {
> 			p =3D fdt_offset_ptr(fdt, offset++, 1);
> 		} while (p && (*p !=3D '\0'));
> -		if (!p)
> +		if (!can_assume(VALID_DTB) && !p)
> 			return FDT_END; /* premature end */
> 		break;
>=20
> 	case FDT_PROP:
> 		lenp =3D fdt_offset_ptr(fdt, offset, sizeof(*lenp));
> -		if (!lenp)
> +		if (!can_assume(VALID_DTB) && !lenp)
> 			return FDT_END; /* premature end */
> 		/* skip-name offset, length and value */
> 		offset +=3D sizeof(struct fdt_property) - FDT_TAGSIZE
> 			+ fdt32_to_cpu(*lenp);
> +		if (!can_assume(LATEST) &&
> +		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >=3D 8 &&
> +		    ((offset - fdt32_to_cpu(*lenp)) % 8) !=3D 0)
> +			offset +=3D 4;
> 		break;
>=20
> 	case FDT_END:
> @@ -139,19 +216,25 @@ uint32_t fdt_next_tag(const void *fdt, int startoff=
set, int *nextoffset)
> 	return tag;
> }
>=20
> -int _fdt_check_node_offset(const void *fdt, int offset)
> +int fdt_check_node_offset_(const void *fdt, int offset)
> {
> -	if ((offset < 0) || (offset % FDT_TAGSIZE)
> -	    || (fdt_next_tag(fdt, offset, &offset) !=3D FDT_BEGIN_NODE))
> +	if (!can_assume(VALID_INPUT)
> +	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
> +		return -FDT_ERR_BADOFFSET;
> +
> +	if (fdt_next_tag(fdt, offset, &offset) !=3D FDT_BEGIN_NODE)
> 		return -FDT_ERR_BADOFFSET;
>=20
> 	return offset;
> }
>=20
> -int _fdt_check_prop_offset(const void *fdt, int offset)
> +int fdt_check_prop_offset_(const void *fdt, int offset)
> {
> -	if ((offset < 0) || (offset % FDT_TAGSIZE)
> -	    || (fdt_next_tag(fdt, offset, &offset) !=3D FDT_PROP))
> +	if (!can_assume(VALID_INPUT)
> +	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
> +		return -FDT_ERR_BADOFFSET;
> +
> +	if (fdt_next_tag(fdt, offset, &offset) !=3D FDT_PROP)
> 		return -FDT_ERR_BADOFFSET;
>=20
> 	return offset;
> @@ -163,7 +246,7 @@ int fdt_next_node(const void *fdt, int offset, int *d=
epth)
> 	uint32_t tag;
>=20
> 	if (offset >=3D 0)
> -		if ((nextoffset =3D _fdt_check_node_offset(fdt, offset)) < 0)
> +		if ((nextoffset =3D fdt_check_node_offset_(fdt, offset)) < 0)
> 			return nextoffset;
>=20
> 	do {
> @@ -225,7 +308,7 @@ int fdt_next_subnode(const void *fdt, int offset)
> 	return offset;
> }
>=20
> -const char *_fdt_find_string(const char *strtab, int tabsize, const char=
 *s)
> +const char *fdt_find_string_(const char *strtab, int tabsize, const char=
 *s)
> {
> 	int len =3D strlen(s) + 1;
> 	const char *last =3D strtab + tabsize - len;
> @@ -239,9 +322,12 @@ const char *_fdt_find_string(const char *strtab, int=
 tabsize, const char *s)
>=20
> int fdt_move(const void *fdt, void *buf, int bufsize)
> {
> -	FDT_CHECK_HEADER(fdt);
> +	if (!can_assume(VALID_INPUT) && bufsize < 0)
> +		return -FDT_ERR_NOSPACE;
> +
> +	FDT_RO_PROBE(fdt);
>=20
> -	if (fdt_totalsize(fdt) > bufsize)
> +	if (fdt_totalsize(fdt) > (unsigned int)bufsize)
> 		return -FDT_ERR_NOSPACE;
>=20
> 	memmove(buf, fdt, fdt_totalsize(fdt));
> diff --git a/xen/common/libfdt/fdt_addresses.c b/xen/common/libfdt/fdt_ad=
dresses.c
> new file mode 100644
> index 0000000..9a82cd0
> --- /dev/null
> +++ b/xen/common/libfdt/fdt_addresses.c
> @@ -0,0 +1,101 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> +/*
> + * libfdt - Flat Device Tree manipulation
> + * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
> + * Copyright (C) 2018 embedded brains GmbH
> + */
> +#include "libfdt_env.h"
> +
> +#include <fdt.h>
> +#include <libfdt.h>
> +
> +#include "libfdt_internal.h"
> +
> +static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
> +{
> +	const fdt32_t *c;
> +	uint32_t val;
> +	int len;
> +
> +	c =3D fdt_getprop(fdt, nodeoffset, name, &len);
> +	if (!c)
> +		return len;
> +
> +	if (len !=3D sizeof(*c))
> +		return -FDT_ERR_BADNCELLS;
> +
> +	val =3D fdt32_to_cpu(*c);
> +	if (val > FDT_MAX_NCELLS)
> +		return -FDT_ERR_BADNCELLS;
> +
> +	return (int)val;
> +}
> +
> +int fdt_address_cells(const void *fdt, int nodeoffset)
> +{
> +	int val;
> +
> +	val =3D fdt_cells(fdt, nodeoffset, "#address-cells");
> +	if (val =3D=3D 0)
> +		return -FDT_ERR_BADNCELLS;
> +	if (val =3D=3D -FDT_ERR_NOTFOUND)
> +		return 2;
> +	return val;
> +}
> +
> +int fdt_size_cells(const void *fdt, int nodeoffset)
> +{
> +	int val;
> +
> +	val =3D fdt_cells(fdt, nodeoffset, "#size-cells");
> +	if (val =3D=3D -FDT_ERR_NOTFOUND)
> +		return 1;
> +	return val;
> +}
> +
> +/* This function assumes that [address|size]_cells is 1 or 2 */
> +int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
> +			     const char *name, uint64_t addr, uint64_t size)
> +{
> +	int addr_cells, size_cells, ret;
> +	uint8_t data[sizeof(fdt64_t) * 2], *prop;
> +
> +	ret =3D fdt_address_cells(fdt, parent);
> +	if (ret < 0)
> +		return ret;
> +	addr_cells =3D ret;
> +
> +	ret =3D fdt_size_cells(fdt, parent);
> +	if (ret < 0)
> +		return ret;
> +	size_cells =3D ret;
> +
> +	/* check validity of address */
> +	prop =3D data;
> +	if (addr_cells =3D=3D 1) {
> +		if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
> +			return -FDT_ERR_BADVALUE;
> +
> +		fdt32_st(prop, (uint32_t)addr);
> +	} else if (addr_cells =3D=3D 2) {
> +		fdt64_st(prop, addr);
> +	} else {
> +		return -FDT_ERR_BADNCELLS;
> +	}
> +
> +	/* check validity of size */
> +	prop +=3D addr_cells * sizeof(fdt32_t);
> +	if (size_cells =3D=3D 1) {
> +		if (size > UINT32_MAX)
> +			return -FDT_ERR_BADVALUE;
> +
> +		fdt32_st(prop, (uint32_t)size);
> +	} else if (size_cells =3D=3D 2) {
> +		fdt64_st(prop, size);
> +	} else {
> +		return -FDT_ERR_BADNCELLS;
> +	}
> +
> +	return fdt_appendprop(fdt, nodeoffset, name, data,
> +			      (addr_cells + size_cells) * sizeof(fdt32_t));
> +}
> diff --git a/xen/common/libfdt/fdt_check.c b/xen/common/libfdt/fdt_check.=
c
> new file mode 100644
> index 0000000..fa410a8
> --- /dev/null
> +++ b/xen/common/libfdt/fdt_check.c
> @@ -0,0 +1,93 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> +/*
> + * libfdt - Flat Device Tree manipulation
> + * Copyright (C) 2006 David Gibson, IBM Corporation.
> + */
> +#include "libfdt_env.h"
> +
> +#include <fdt.h>
> +#include <libfdt.h>
> +
> +#include "libfdt_internal.h"
> +
> +int fdt_check_full(const void *fdt, size_t bufsize)
> +{
> +	int err;
> +	int num_memrsv;
> +	int offset, nextoffset =3D 0;
> +	uint32_t tag;
> +	unsigned int depth =3D 0;
> +	const void *prop;
> +	const char *propname;
> +	bool expect_end =3D false;
> +
> +	if (bufsize < FDT_V1_SIZE)
> +		return -FDT_ERR_TRUNCATED;
> +	if (bufsize < fdt_header_size(fdt))
> +		return -FDT_ERR_TRUNCATED;
> +	err =3D fdt_check_header(fdt);
> +	if (err !=3D 0)
> +		return err;
> +	if (bufsize < fdt_totalsize(fdt))
> +		return -FDT_ERR_TRUNCATED;
> +
> +	num_memrsv =3D fdt_num_mem_rsv(fdt);
> +	if (num_memrsv < 0)
> +		return num_memrsv;
> +
> +	while (1) {
> +		offset =3D nextoffset;
> +		tag =3D fdt_next_tag(fdt, offset, &nextoffset);
> +
> +		if (nextoffset < 0)
> +			return nextoffset;
> +
> +		/* If we see two root nodes, something is wrong */
> +		if (expect_end && tag !=3D FDT_END)
> +			return -FDT_ERR_BADSTRUCTURE;
> +
> +		switch (tag) {
> +		case FDT_NOP:
> +			break;
> +
> +		case FDT_END:
> +			if (depth !=3D 0)
> +				return -FDT_ERR_BADSTRUCTURE;
> +			return 0;
> +
> +		case FDT_BEGIN_NODE:
> +			depth++;
> +			if (depth > INT_MAX)
> +				return -FDT_ERR_BADSTRUCTURE;
> +
> +			/* The root node must have an empty name */
> +			if (depth =3D=3D 1) {
> +				const char *name;
> +				int len;
> +
> +				name =3D fdt_get_name(fdt, offset, &len);
> +				if (*name || len)
> +					return -FDT_ERR_BADSTRUCTURE;
> +			}
> +			break;
> +
> +		case FDT_END_NODE:
> +			if (depth =3D=3D 0)
> +				return -FDT_ERR_BADSTRUCTURE;
> +			depth--;
> +			if (depth =3D=3D 0)
> +				expect_end =3D true;
> +			break;
> +
> +		case FDT_PROP:
> +			prop =3D fdt_getprop_by_offset(fdt, offset, &propname,
> +						     &err);
> +			if (!prop)
> +				return err;
> +			break;
> +
> +		default:
> +			return -FDT_ERR_INTERNAL;
> +		}
> +	}
> +}
> diff --git a/xen/common/libfdt/fdt_empty_tree.c b/xen/common/libfdt/fdt_e=
mpty_tree.c
> index d505611..49d54d4 100644
> --- a/xen/common/libfdt/fdt_empty_tree.c
> +++ b/xen/common/libfdt/fdt_empty_tree.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2012 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -79,4 +36,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
>=20
> 	return fdt_open_into(buf, buf, bufsize);
> }
> -
> diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_over=
lay.c
> new file mode 100644
> index 0000000..7b95e2b
> --- /dev/null
> +++ b/xen/common/libfdt/fdt_overlay.c
> @@ -0,0 +1,884 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> +/*
> + * libfdt - Flat Device Tree manipulation
> + * Copyright (C) 2016 Free Electrons
> + * Copyright (C) 2016 NextThing Co.
> + */
> +#include "libfdt_env.h"
> +
> +#include <fdt.h>
> +#include <libfdt.h>
> +#include <xen/lib.h>
> +
> +#include "libfdt_internal.h"
> +
> +/**
> + * overlay_get_target_phandle - retrieves the target phandle of a fragme=
nt
> + * @fdto: pointer to the device tree overlay blob
> + * @fragment: node offset of the fragment in the overlay
> + *
> + * overlay_get_target_phandle() retrieves the target phandle of an
> + * overlay fragment when that fragment uses a phandle (target
> + * property) instead of a path (target-path property).
> + *
> + * returns:
> + *      the phandle pointed by the target property
> + *      0, if the phandle was not found
> + *	-1, if the phandle was malformed
> + */
> +static uint32_t overlay_get_target_phandle(const void *fdto, int fragmen=
t)
> +{
> +	const fdt32_t *val;
> +	int len;
> +
> +	val =3D fdt_getprop(fdto, fragment, "target", &len);
> +	if (!val)
> +		return 0;
> +
> +	if ((len !=3D sizeof(*val)) || (fdt32_to_cpu(*val) =3D=3D (uint32_t)-1)=
)
> +		return (uint32_t)-1;
> +
> +	return fdt32_to_cpu(*val);
> +}
> +
> +/**
> + * overlay_get_target - retrieves the offset of a fragment's target
> + * @fdt: Base device tree blob
> + * @fdto: Device tree overlay blob
> + * @fragment: node offset of the fragment in the overlay
> + * @pathp: pointer which receives the path of the target (or NULL)
> + *
> + * overlay_get_target() retrieves the target offset in the base
> + * device tree of a fragment, no matter how the actual targeting is
> + * done (through a phandle or a path)
> + *
> + * returns:
> + *      the targeted node offset in the base device tree
> + *      Negative error code on error
> + */
> +static int overlay_get_target(const void *fdt, const void *fdto,
> +			      int fragment, char const **pathp)
> +{
> +	uint32_t phandle;
> +	const char *path =3D NULL;
> +	int path_len =3D 0, ret;
> +
> +	/* Try first to do a phandle based lookup */
> +	phandle =3D overlay_get_target_phandle(fdto, fragment);
> +	if (phandle =3D=3D (uint32_t)-1)
> +		return -FDT_ERR_BADPHANDLE;
> +
> +	/* no phandle, try path */
> +	if (!phandle) {
> +		/* And then a path based lookup */
> +		path =3D fdt_getprop(fdto, fragment, "target-path", &path_len);
> +		if (path)
> +			ret =3D fdt_path_offset(fdt, path);
> +		else
> +			ret =3D path_len;
> +	} else
> +		ret =3D fdt_node_offset_by_phandle(fdt, phandle);
> +
> +	/*
> +	* If we haven't found either a target or a
> +	* target-path property in a node that contains a
> +	* __overlay__ subnode (we wouldn't be called
> +	* otherwise), consider it a improperly written
> +	* overlay
> +	*/
> +	if (ret < 0 && path_len =3D=3D -FDT_ERR_NOTFOUND)
> +		ret =3D -FDT_ERR_BADOVERLAY;
> +
> +	/* return on error */
> +	if (ret < 0)
> +		return ret;
> +
> +	/* return pointer to path (if available) */
> +	if (pathp)
> +		*pathp =3D path ? path : NULL;
> +
> +	return ret;
> +}
> +
> +/**
> + * overlay_phandle_add_offset - Increases a phandle by an offset
> + * @fdt: Base device tree blob
> + * @node: Device tree overlay blob
> + * @name: Name of the property to modify (phandle or linux,phandle)
> + * @delta: offset to apply
> + *
> + * overlay_phandle_add_offset() increments a node phandle by a given
> + * offset.
> + *
> + * returns:
> + *      0 on success.
> + *      Negative error code on error
> + */
> +static int overlay_phandle_add_offset(void *fdt, int node,
> +				      const char *name, uint32_t delta)
> +{
> +	const fdt32_t *val;
> +	uint32_t adj_val;
> +	int len;
> +
> +	val =3D fdt_getprop(fdt, node, name, &len);
> +	if (!val)
> +		return len;
> +
> +	if (len !=3D sizeof(*val))
> +		return -FDT_ERR_BADPHANDLE;
> +
> +	adj_val =3D fdt32_to_cpu(*val);
> +	if ((adj_val + delta) < adj_val)
> +		return -FDT_ERR_NOPHANDLES;
> +
> +	adj_val +=3D delta;
> +	if (adj_val =3D=3D (uint32_t)-1)
> +		return -FDT_ERR_NOPHANDLES;
> +
> +	return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
> +}
> +
> +/**
> + * overlay_adjust_node_phandles - Offsets the phandles of a node
> + * @fdto: Device tree overlay blob
> + * @node: Offset of the node we want to adjust
> + * @delta: Offset to shift the phandles of
> + *
> + * overlay_adjust_node_phandles() adds a constant to all the phandles
> + * of a given node. This is mainly use as part of the overlay
> + * application process, when we want to update all the overlay
> + * phandles to not conflict with the overlays of the base device tree.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_adjust_node_phandles(void *fdto, int node,
> +					uint32_t delta)
> +{
> +	int child;
> +	int ret;
> +
> +	ret =3D overlay_phandle_add_offset(fdto, node, "phandle", delta);
> +	if (ret && ret !=3D -FDT_ERR_NOTFOUND)
> +		return ret;
> +
> +	ret =3D overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
> +	if (ret && ret !=3D -FDT_ERR_NOTFOUND)
> +		return ret;
> +
> +	fdt_for_each_subnode(child, fdto, node) {
> +		ret =3D overlay_adjust_node_phandles(fdto, child, delta);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_adjust_local_phandles - Adjust the phandles of a whole overla=
y
> + * @fdto: Device tree overlay blob
> + * @delta: Offset to shift the phandles of
> + *
> + * overlay_adjust_local_phandles() adds a constant to all the
> + * phandles of an overlay. This is mainly use as part of the overlay
> + * application process, when we want to update all the overlay
> + * phandles to not conflict with the overlays of the base device tree.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
> +{
> +	/*
> +	 * Start adjusting the phandles from the overlay root
> +	 */
> +	return overlay_adjust_node_phandles(fdto, 0, delta);
> +}
> +
> +/**
> + * overlay_update_local_node_references - Adjust the overlay references
> + * @fdto: Device tree overlay blob
> + * @tree_node: Node offset of the node to operate on
> + * @fixup_node: Node offset of the matching local fixups node
> + * @delta: Offset to shift the phandles of
> + *
> + * overlay_update_local_nodes_references() update the phandles
> + * pointing to a node within the device tree overlay by adding a
> + * constant delta.
> + *
> + * This is mainly used as part of a device tree application process,
> + * where you want the device tree overlays phandles to not conflict
> + * with the ones from the base device tree before merging them.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_update_local_node_references(void *fdto,
> +						int tree_node,
> +						int fixup_node,
> +						uint32_t delta)
> +{
> +	int fixup_prop;
> +	int fixup_child;
> +	int ret;
> +
> +	fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
> +		const fdt32_t *fixup_val;
> +		const char *tree_val;
> +		const char *name;
> +		int fixup_len;
> +		int tree_len;
> +		int i;
> +
> +		fixup_val =3D fdt_getprop_by_offset(fdto, fixup_prop,
> +						  &name, &fixup_len);
> +		if (!fixup_val)
> +			return fixup_len;
> +
> +		if (fixup_len % sizeof(uint32_t))
> +			return -FDT_ERR_BADOVERLAY;
> +		fixup_len /=3D sizeof(uint32_t);
> +
> +		tree_val =3D fdt_getprop(fdto, tree_node, name, &tree_len);
> +		if (!tree_val) {
> +			if (tree_len =3D=3D -FDT_ERR_NOTFOUND)
> +				return -FDT_ERR_BADOVERLAY;
> +
> +			return tree_len;
> +		}
> +
> +		for (i =3D 0; i < fixup_len; i++) {
> +			fdt32_t adj_val;
> +			uint32_t poffset;
> +
> +			poffset =3D fdt32_to_cpu(fixup_val[i]);
> +
> +			/*
> +			 * phandles to fixup can be unaligned.
> +			 *
> +			 * Use a memcpy for the architectures that do
> +			 * not support unaligned accesses.
> +			 */
> +			memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
> +
> +			adj_val =3D cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
> +
> +			ret =3D fdt_setprop_inplace_namelen_partial(fdto,
> +								  tree_node,
> +								  name,
> +								  strlen(name),
> +								  poffset,
> +								  &adj_val,
> +								  sizeof(adj_val));
> +			if (ret =3D=3D -FDT_ERR_NOSPACE)
> +				return -FDT_ERR_BADOVERLAY;
> +
> +			if (ret)
> +				return ret;
> +		}
> +	}
> +
> +	fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
> +		const char *fixup_child_name =3D fdt_get_name(fdto, fixup_child,
> +							    NULL);
> +		int tree_child;
> +
> +		tree_child =3D fdt_subnode_offset(fdto, tree_node,
> +						fixup_child_name);
> +		if (tree_child =3D=3D -FDT_ERR_NOTFOUND)
> +			return -FDT_ERR_BADOVERLAY;
> +		if (tree_child < 0)
> +			return tree_child;
> +
> +		ret =3D overlay_update_local_node_references(fdto,
> +							   tree_child,
> +							   fixup_child,
> +							   delta);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_update_local_references - Adjust the overlay references
> + * @fdto: Device tree overlay blob
> + * @delta: Offset to shift the phandles of
> + *
> + * overlay_update_local_references() update all the phandles pointing
> + * to a node within the device tree overlay by adding a constant
> + * delta to not conflict with the base overlay.
> + *
> + * This is mainly used as part of a device tree application process,
> + * where you want the device tree overlays phandles to not conflict
> + * with the ones from the base device tree before merging them.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_update_local_references(void *fdto, uint32_t delta)
> +{
> +	int fixups;
> +
> +	fixups =3D fdt_path_offset(fdto, "/__local_fixups__");
> +	if (fixups < 0) {
> +		/* There's no local phandles to adjust, bail out */
> +		if (fixups =3D=3D -FDT_ERR_NOTFOUND)
> +			return 0;
> +
> +		return fixups;
> +	}
> +
> +	/*
> +	 * Update our local references from the root of the tree
> +	 */
> +	return overlay_update_local_node_references(fdto, 0, fixups,
> +						    delta);
> +}
> +
> +/**
> + * overlay_fixup_one_phandle - Set an overlay phandle to the base one
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + * @symbols_off: Node offset of the symbols node in the base device tree
> + * @path: Path to a node holding a phandle in the overlay
> + * @path_len: number of path characters to consider
> + * @name: Name of the property holding the phandle reference in the over=
lay
> + * @name_len: number of name characters to consider
> + * @poffset: Offset within the overlay property where the phandle is sto=
red
> + * @label: Label of the node referenced by the phandle
> + *
> + * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
> + * a node in the base device tree.
> + *
> + * This is part of the device tree overlay application process, when
> + * you want all the phandles in the overlay to point to the actual
> + * base dt nodes.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_fixup_one_phandle(void *fdt, void *fdto,
> +				     int symbols_off,
> +				     const char *path, uint32_t path_len,
> +				     const char *name, uint32_t name_len,
> +				     int poffset, const char *label)
> +{
> +	const char *symbol_path;
> +	uint32_t phandle;
> +	fdt32_t phandle_prop;
> +	int symbol_off, fixup_off;
> +	int prop_len;
> +
> +	if (symbols_off < 0)
> +		return symbols_off;
> +
> +	symbol_path =3D fdt_getprop(fdt, symbols_off, label,
> +				  &prop_len);
> +	if (!symbol_path)
> +		return prop_len;
> +
> +	symbol_off =3D fdt_path_offset(fdt, symbol_path);
> +	if (symbol_off < 0)
> +		return symbol_off;
> +
> +	phandle =3D fdt_get_phandle(fdt, symbol_off);
> +	if (!phandle)
> +		return -FDT_ERR_NOTFOUND;
> +
> +	fixup_off =3D fdt_path_offset_namelen(fdto, path, path_len);
> +	if (fixup_off =3D=3D -FDT_ERR_NOTFOUND)
> +		return -FDT_ERR_BADOVERLAY;
> +	if (fixup_off < 0)
> +		return fixup_off;
> +
> +	phandle_prop =3D cpu_to_fdt32(phandle);
> +	return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
> +						   name, name_len, poffset,
> +						   &phandle_prop,
> +						   sizeof(phandle_prop));
> +};
> +
> +/**
> + * overlay_fixup_phandle - Set an overlay phandle to the base one
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + * @symbols_off: Node offset of the symbols node in the base device tree
> + * @property: Property offset in the overlay holding the list of fixups
> + *
> + * overlay_fixup_phandle() resolves all the overlay phandles pointed
> + * to in a __fixups__ property, and updates them to match the phandles
> + * in use in the base device tree.
> + *
> + * This is part of the device tree overlay application process, when
> + * you want all the phandles in the overlay to point to the actual
> + * base dt nodes.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
> +				 int property)
> +{
> +	const char *value;
> +	const char *label;
> +	int len;
> +
> +	value =3D fdt_getprop_by_offset(fdto, property,
> +				      &label, &len);
> +	if (!value) {
> +		if (len =3D=3D -FDT_ERR_NOTFOUND)
> +			return -FDT_ERR_INTERNAL;
> +
> +		return len;
> +	}
> +
> +	do {
> +		const char *path, *name, *fixup_end;
> +		const char *fixup_str =3D value;
> +		uint32_t path_len, name_len;
> +		uint32_t fixup_len;
> +		char *sep;
> +		const char *endptr;
> +		int poffset, ret;
> +
> +		fixup_end =3D memchr(value, '\0', len);
> +		if (!fixup_end)
> +			return -FDT_ERR_BADOVERLAY;
> +		fixup_len =3D fixup_end - fixup_str;
> +
> +		len -=3D fixup_len + 1;
> +		value +=3D fixup_len + 1;
> +
> +		path =3D fixup_str;
> +		sep =3D memchr(fixup_str, ':', fixup_len);
> +		if (!sep || *sep !=3D ':')
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		path_len =3D sep - path;
> +		if (path_len =3D=3D (fixup_len - 1))
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		fixup_len -=3D path_len + 1;
> +		name =3D sep + 1;
> +		sep =3D memchr(name, ':', fixup_len);
> +		if (!sep || *sep !=3D ':')
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		name_len =3D sep - name;
> +		if (!name_len)
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		poffset =3D simple_strtoul(sep + 1, &endptr, 10);
> +		if ((*endptr !=3D '\0') || (endptr <=3D (sep + 1)))
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		ret =3D overlay_fixup_one_phandle(fdt, fdto, symbols_off,
> +						path, path_len, name, name_len,
> +						poffset, label);
> +		if (ret)
> +			return ret;
> +	} while (len > 0);
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_fixup_phandles - Resolve the overlay phandles to the base
> + *                          device tree
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + *
> + * overlay_fixup_phandles() resolves all the overlay phandles pointing
> + * to nodes in the base device tree.
> + *
> + * This is one of the steps of the device tree overlay application
> + * process, when you want all the phandles in the overlay to point to
> + * the actual base dt nodes.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_fixup_phandles(void *fdt, void *fdto)
> +{
> +	int fixups_off, symbols_off;
> +	int property;
> +
> +	/* We can have overlays without any fixups */
> +	fixups_off =3D fdt_path_offset(fdto, "/__fixups__");
> +	if (fixups_off =3D=3D -FDT_ERR_NOTFOUND)
> +		return 0; /* nothing to do */
> +	if (fixups_off < 0)
> +		return fixups_off;
> +
> +	/* And base DTs without symbols */
> +	symbols_off =3D fdt_path_offset(fdt, "/__symbols__");
> +	if ((symbols_off < 0 && (symbols_off !=3D -FDT_ERR_NOTFOUND)))
> +		return symbols_off;
> +
> +	fdt_for_each_property_offset(property, fdto, fixups_off) {
> +		int ret;
> +
> +		ret =3D overlay_fixup_phandle(fdt, fdto, symbols_off, property);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_apply_node - Merges a node into the base device tree
> + * @fdt: Base Device Tree blob
> + * @target: Node offset in the base device tree to apply the fragment to
> + * @fdto: Device tree overlay blob
> + * @node: Node offset in the overlay holding the changes to merge
> + *
> + * overlay_apply_node() merges a node into a target base device tree
> + * node pointed.
> + *
> + * This is part of the final step in the device tree overlay
> + * application process, when all the phandles have been adjusted and
> + * resolved and you just have to merge overlay into the base device
> + * tree.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_apply_node(void *fdt, int target,
> +			      void *fdto, int node)
> +{
> +	int property;
> +	int subnode;
> +
> +	fdt_for_each_property_offset(property, fdto, node) {
> +		const char *name;
> +		const void *prop;
> +		int prop_len;
> +		int ret;
> +
> +		prop =3D fdt_getprop_by_offset(fdto, property, &name,
> +					     &prop_len);
> +		if (prop_len =3D=3D -FDT_ERR_NOTFOUND)
> +			return -FDT_ERR_INTERNAL;
> +		if (prop_len < 0)
> +			return prop_len;
> +
> +		ret =3D fdt_setprop(fdt, target, name, prop, prop_len);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	fdt_for_each_subnode(subnode, fdto, node) {
> +		const char *name =3D fdt_get_name(fdto, subnode, NULL);
> +		int nnode;
> +		int ret;
> +
> +		nnode =3D fdt_add_subnode(fdt, target, name);
> +		if (nnode =3D=3D -FDT_ERR_EXISTS) {
> +			nnode =3D fdt_subnode_offset(fdt, target, name);
> +			if (nnode =3D=3D -FDT_ERR_NOTFOUND)
> +				return -FDT_ERR_INTERNAL;
> +		}
> +
> +		if (nnode < 0)
> +			return nnode;
> +
> +		ret =3D overlay_apply_node(fdt, nnode, fdto, subnode);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * overlay_merge - Merge an overlay into its base device tree
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + *
> + * overlay_merge() merges an overlay into its base device tree.
> + *
> + * This is the next to last step in the device tree overlay application
> + * process, when all the phandles have been adjusted and resolved and
> + * you just have to merge overlay into the base device tree.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_merge(void *fdt, void *fdto)
> +{
> +	int fragment;
> +
> +	fdt_for_each_subnode(fragment, fdto, 0) {
> +		int overlay;
> +		int target;
> +		int ret;
> +
> +		/*
> +		 * Each fragments will have an __overlay__ node. If
> +		 * they don't, it's not supposed to be merged
> +		 */
> +		overlay =3D fdt_subnode_offset(fdto, fragment, "__overlay__");
> +		if (overlay =3D=3D -FDT_ERR_NOTFOUND)
> +			continue;
> +
> +		if (overlay < 0)
> +			return overlay;
> +
> +		target =3D overlay_get_target(fdt, fdto, fragment, NULL);
> +		if (target < 0)
> +			return target;
> +
> +		ret =3D overlay_apply_node(fdt, target, fdto, overlay);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +static int get_path_len(const void *fdt, int nodeoffset)
> +{
> +	int len =3D 0, namelen;
> +	const char *name;
> +
> +	FDT_RO_PROBE(fdt);
> +
> +	for (;;) {
> +		name =3D fdt_get_name(fdt, nodeoffset, &namelen);
> +		if (!name)
> +			return namelen;
> +
> +		/* root? we're done */
> +		if (namelen =3D=3D 0)
> +			break;
> +
> +		nodeoffset =3D fdt_parent_offset(fdt, nodeoffset);
> +		if (nodeoffset < 0)
> +			return nodeoffset;
> +		len +=3D namelen + 1;
> +	}
> +
> +	/* in case of root pretend it's "/" */
> +	if (len =3D=3D 0)
> +		len++;
> +	return len;
> +}
> +
> +/**
> + * overlay_symbol_update - Update the symbols of base tree after a merge
> + * @fdt: Base Device Tree blob
> + * @fdto: Device tree overlay blob
> + *
> + * overlay_symbol_update() updates the symbols of the base tree with the
> + * symbols of the applied overlay
> + *
> + * This is the last step in the device tree overlay application
> + * process, allowing the reference of overlay symbols by subsequent
> + * overlay operations.
> + *
> + * returns:
> + *      0 on success
> + *      Negative error code on failure
> + */
> +static int overlay_symbol_update(void *fdt, void *fdto)
> +{
> +	int root_sym, ov_sym, prop, path_len, fragment, target;
> +	int len, frag_name_len, ret, rel_path_len;
> +	const char *s, *e;
> +	const char *path;
> +	const char *name;
> +	const char *frag_name;
> +	const char *rel_path;
> +	const char *target_path;
> +	char *buf;
> +	void *p;
> +
> +	ov_sym =3D fdt_subnode_offset(fdto, 0, "__symbols__");
> +
> +	/* if no overlay symbols exist no problem */
> +	if (ov_sym < 0)
> +		return 0;
> +
> +	root_sym =3D fdt_subnode_offset(fdt, 0, "__symbols__");
> +
> +	/* it no root symbols exist we should create them */
> +	if (root_sym =3D=3D -FDT_ERR_NOTFOUND)
> +		root_sym =3D fdt_add_subnode(fdt, 0, "__symbols__");
> +
> +	/* any error is fatal now */
> +	if (root_sym < 0)
> +		return root_sym;
> +
> +	/* iterate over each overlay symbol */
> +	fdt_for_each_property_offset(prop, fdto, ov_sym) {
> +		path =3D fdt_getprop_by_offset(fdto, prop, &name, &path_len);
> +		if (!path)
> +			return path_len;
> +
> +		/* verify it's a string property (terminated by a single \0) */
> +		if (path_len < 1 || memchr(path, '\0', path_len) !=3D &path[path_len -=
 1])
> +			return -FDT_ERR_BADVALUE;
> +
> +		/* keep end marker to avoid strlen() */
> +		e =3D path + path_len;
> +
> +		if (*path !=3D '/')
> +			return -FDT_ERR_BADVALUE;
> +
> +		/* get fragment name first */
> +		s =3D strchr(path + 1, '/');
> +		if (!s) {
> +			/* Symbol refers to something that won't end
> +			 * up in the target tree */
> +			continue;
> +		}
> +
> +		frag_name =3D path + 1;
> +		frag_name_len =3D s - path - 1;
> +
> +		/* verify format; safe since "s" lies in \0 terminated prop */
> +		len =3D sizeof("/__overlay__/") - 1;
> +		if ((e - s) > len && (memcmp(s, "/__overlay__/", len) =3D=3D 0)) {
> +			/* /<fragment-name>/__overlay__/<relative-subnode-path> */
> +			rel_path =3D s + len;
> +			rel_path_len =3D e - rel_path - 1;
> +		} else if ((e - s) =3D=3D len
> +			   && (memcmp(s, "/__overlay__", len - 1) =3D=3D 0)) {
> +			/* /<fragment-name>/__overlay__ */
> +			rel_path =3D "";
> +			rel_path_len =3D 0;
> +		} else {
> +			/* Symbol refers to something that won't end
> +			 * up in the target tree */
> +			continue;
> +		}
> +
> +		/* find the fragment index in which the symbol lies */
> +		ret =3D fdt_subnode_offset_namelen(fdto, 0, frag_name,
> +					       frag_name_len);
> +		/* not found? */
> +		if (ret < 0)
> +			return -FDT_ERR_BADOVERLAY;
> +		fragment =3D ret;
> +
> +		/* an __overlay__ subnode must exist */
> +		ret =3D fdt_subnode_offset(fdto, fragment, "__overlay__");
> +		if (ret < 0)
> +			return -FDT_ERR_BADOVERLAY;
> +
> +		/* get the target of the fragment */
> +		ret =3D overlay_get_target(fdt, fdto, fragment, &target_path);
> +		if (ret < 0)
> +			return ret;
> +		target =3D ret;
> +
> +		/* if we have a target path use */
> +		if (!target_path) {
> +			ret =3D get_path_len(fdt, target);
> +			if (ret < 0)
> +				return ret;
> +			len =3D ret;
> +		} else {
> +			len =3D strlen(target_path);
> +		}
> +
> +		ret =3D fdt_setprop_placeholder(fdt, root_sym, name,
> +				len + (len > 1) + rel_path_len + 1, &p);
> +		if (ret < 0)
> +			return ret;
> +
> +		if (!target_path) {
> +			/* again in case setprop_placeholder changed it */
> +			ret =3D overlay_get_target(fdt, fdto, fragment, &target_path);
> +			if (ret < 0)
> +				return ret;
> +			target =3D ret;
> +		}
> +
> +		buf =3D p;
> +		if (len > 1) { /* target is not root */
> +			if (!target_path) {
> +				ret =3D fdt_get_path(fdt, target, buf, len + 1);
> +				if (ret < 0)
> +					return ret;
> +			} else
> +				memcpy(buf, target_path, len + 1);
> +
> +		} else
> +			len--;
> +
> +		buf[len] =3D '/';
> +		memcpy(buf + len + 1, rel_path, rel_path_len);
> +		buf[len + 1 + rel_path_len] =3D '\0';
> +	}
> +
> +	return 0;
> +}
> +
> +int fdt_overlay_apply(void *fdt, void *fdto)
> +{
> +	uint32_t delta;
> +	int ret;
> +
> +	FDT_RO_PROBE(fdt);
> +	FDT_RO_PROBE(fdto);
> +
> +	ret =3D fdt_find_max_phandle(fdt, &delta);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_adjust_local_phandles(fdto, delta);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_update_local_references(fdto, delta);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_fixup_phandles(fdt, fdto);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_merge(fdt, fdto);
> +	if (ret)
> +		goto err;
> +
> +	ret =3D overlay_symbol_update(fdt, fdto);
> +	if (ret)
> +		goto err;
> +
> +	/*
> +	 * The overlay has been damaged, erase its magic.
> +	 */
> +	fdt_set_magic(fdto, ~0);
> +
> +	return 0;
> +
> +err:
> +	/*
> +	 * The overlay might have been damaged, erase its magic.
> +	 */
> +	fdt_set_magic(fdto, ~0);
> +
> +	/*
> +	 * The base device tree might have been damaged, erase its
> +	 * magic.
> +	 */
> +	fdt_set_magic(fdt, ~0);
> +
> +	return ret;
> +}
> diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
> index 36f9b48..17584da 100644
> --- a/xen/common/libfdt/fdt_ro.c
> +++ b/xen/common/libfdt/fdt_ro.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,12 +10,13 @@
>=20
> #include "libfdt_internal.h"
>=20
> -static int _fdt_nodename_eq(const void *fdt, int offset,
> +static int fdt_nodename_eq_(const void *fdt, int offset,
> 			    const char *s, int len)
> {
> -	const char *p =3D fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);
> +	int olen;
> +	const char *p =3D fdt_get_name(fdt, offset, &olen);
>=20
> -	if (! p)
> +	if (!p || olen < len)
> 		/* short match */
> 		return 0;
>=20
> @@ -73,37 +31,174 @@ static int _fdt_nodename_eq(const void *fdt, int off=
set,
> 		return 0;
> }
>=20
> +const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
> +{
> +	int32_t totalsize;
> +	uint32_t absoffset;
> +	size_t len;
> +	int err;
> +	const char *s, *n;
> +
> +	if (can_assume(VALID_INPUT)) {
> +		s =3D (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
> +
> +		if (lenp)
> +			*lenp =3D strlen(s);
> +		return s;
> +	}
> +	totalsize =3D fdt_ro_probe_(fdt);
> +	err =3D totalsize;
> +	if (totalsize < 0)
> +		goto fail;
> +
> +	err =3D -FDT_ERR_BADOFFSET;
> +	absoffset =3D stroffset + fdt_off_dt_strings(fdt);
> +	if (absoffset >=3D (unsigned)totalsize)
> +		goto fail;
> +	len =3D totalsize - absoffset;
> +
> +	if (fdt_magic(fdt) =3D=3D FDT_MAGIC) {
> +		if (stroffset < 0)
> +			goto fail;
> +		if (can_assume(LATEST) || fdt_version(fdt) >=3D 17) {
> +			if ((unsigned)stroffset >=3D fdt_size_dt_strings(fdt))
> +				goto fail;
> +			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
> +				len =3D fdt_size_dt_strings(fdt) - stroffset;
> +		}
> +	} else if (fdt_magic(fdt) =3D=3D FDT_SW_MAGIC) {
> +		unsigned int sw_stroffset =3D -stroffset;
> +
> +		if ((stroffset >=3D 0) ||
> +		    (sw_stroffset > fdt_size_dt_strings(fdt)))
> +			goto fail;
> +		if (sw_stroffset < len)
> +			len =3D sw_stroffset;
> +	} else {
> +		err =3D -FDT_ERR_INTERNAL;
> +		goto fail;
> +	}
> +
> +	s =3D (const char *)fdt + absoffset;
> +	n =3D memchr(s, '\0', len);
> +	if (!n) {
> +		/* missing terminating NULL */
> +		err =3D -FDT_ERR_TRUNCATED;
> +		goto fail;
> +	}
> +
> +	if (lenp)
> +		*lenp =3D n - s;
> +	return s;
> +
> +fail:
> +	if (lenp)
> +		*lenp =3D err;
> +	return NULL;
> +}
> +
> const char *fdt_string(const void *fdt, int stroffset)
> {
> -	return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
> +	return fdt_get_string(fdt, stroffset, NULL);
> }
>=20
> -static int _fdt_string_eq(const void *fdt, int stroffset,
> +static int fdt_string_eq_(const void *fdt, int stroffset,
> 			  const char *s, int len)
> {
> -	const char *p =3D fdt_string(fdt, stroffset);
> +	int slen;
> +	const char *p =3D fdt_get_string(fdt, stroffset, &slen);
> +
> +	return p && (slen =3D=3D len) && (memcmp(p, s, len) =3D=3D 0);
> +}
> +
> +int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
> +{
> +	uint32_t max =3D 0;
> +	int offset =3D -1;
> +
> +	while (true) {
> +		uint32_t value;
> +
> +		offset =3D fdt_next_node(fdt, offset, NULL);
> +		if (offset < 0) {
> +			if (offset =3D=3D -FDT_ERR_NOTFOUND)
> +				break;
> +
> +			return offset;
> +		}
> +
> +		value =3D fdt_get_phandle(fdt, offset);
> +
> +		if (value > max)
> +			max =3D value;
> +	}
> +
> +	if (phandle)
> +		*phandle =3D max;
> +
> +	return 0;
> +}
> +
> +int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
> +{
> +	uint32_t max;
> +	int err;
> +
> +	err =3D fdt_find_max_phandle(fdt, &max);
> +	if (err < 0)
> +		return err;
> +
> +	if (max =3D=3D FDT_MAX_PHANDLE)
> +		return -FDT_ERR_NOPHANDLES;
> +
> +	if (phandle)
> +		*phandle =3D max + 1;
> +
> +	return 0;
> +}
>=20
> -	return (strlen(p) =3D=3D len) && (memcmp(p, s, len) =3D=3D 0);
> +static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int =
n)
> +{
> +	unsigned int offset =3D n * sizeof(struct fdt_reserve_entry);
> +	unsigned int absoffset =3D fdt_off_mem_rsvmap(fdt) + offset;
> +
> +	if (!can_assume(VALID_INPUT)) {
> +		if (absoffset < fdt_off_mem_rsvmap(fdt))
> +			return NULL;
> +		if (absoffset > fdt_totalsize(fdt) -
> +		    sizeof(struct fdt_reserve_entry))
> +			return NULL;
> +	}
> +	return fdt_mem_rsv_(fdt, n);
> }
>=20
> int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *=
size)
> {
> -	FDT_CHECK_HEADER(fdt);
> -	*address =3D fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address);
> -	*size =3D fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size);
> +	const struct fdt_reserve_entry *re;
> +
> +	FDT_RO_PROBE(fdt);
> +	re =3D fdt_mem_rsv(fdt, n);
> +	if (!can_assume(VALID_INPUT) && !re)
> +		return -FDT_ERR_BADOFFSET;
> +
> +	*address =3D fdt64_ld_(&re->address);
> +	*size =3D fdt64_ld_(&re->size);
> 	return 0;
> }
>=20
> int fdt_num_mem_rsv(const void *fdt)
> {
> -	int i =3D 0;
> +	int i;
> +	const struct fdt_reserve_entry *re;
>=20
> -	while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) !=3D 0)
> -		i++;
> -	return i;
> +	for (i =3D 0; (re =3D fdt_mem_rsv(fdt, i)) !=3D NULL; i++) {
> +		if (fdt64_ld_(&re->size) =3D=3D 0)
> +			return i;
> +	}
> +	return -FDT_ERR_TRUNCATED;
> }
>=20
> -static int _nextprop(const void *fdt, int offset)
> +static int nextprop_(const void *fdt, int offset)
> {
> 	uint32_t tag;
> 	int nextoffset;
> @@ -132,13 +227,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int=
 offset,
> {
> 	int depth;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	for (depth =3D 0;
> 	     (offset >=3D 0) && (depth >=3D 0);
> 	     offset =3D fdt_next_node(fdt, offset, &depth))
> 		if ((depth =3D=3D 1)
> -		    && _fdt_nodename_eq(fdt, offset, name, namelen))
> +		    && fdt_nodename_eq_(fdt, offset, name, namelen))
> 			return offset;
>=20
> 	if (depth < 0)
> @@ -152,17 +247,17 @@ int fdt_subnode_offset(const void *fdt, int parento=
ffset,
> 	return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name))=
;
> }
>=20
> -int fdt_path_offset(const void *fdt, const char *path)
> +int fdt_path_offset_namelen(const void *fdt, const char *path, int namel=
en)
> {
> -	const char *end =3D path + strlen(path);
> +	const char *end =3D path + namelen;
> 	const char *p =3D path;
> 	int offset =3D 0;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	/* see if we have an alias */
> 	if (*path !=3D '/') {
> -		const char *q =3D strchr(path, '/');
> +		const char *q =3D memchr(path, '/', end - p);
>=20
> 		if (!q)
> 			q =3D end;
> @@ -175,14 +270,15 @@ int fdt_path_offset(const void *fdt, const char *pa=
th)
> 		p =3D q;
> 	}
>=20
> -	while (*p) {
> +	while (p < end) {
> 		const char *q;
>=20
> -		while (*p =3D=3D '/')
> +		while (*p =3D=3D '/') {
> 			p++;
> -		if (! *p)
> -			return offset;
> -		q =3D strchr(p, '/');
> +			if (p =3D=3D end)
> +				return offset;
> +		}
> +		q =3D memchr(p, '/', end - p);
> 		if (! q)
> 			q =3D end;
>=20
> @@ -196,19 +292,42 @@ int fdt_path_offset(const void *fdt, const char *pa=
th)
> 	return offset;
> }
>=20
> +int fdt_path_offset(const void *fdt, const char *path)
> +{
> +	return fdt_path_offset_namelen(fdt, path, strlen(path));
> +}
> +
> const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
> {
> -	const struct fdt_node_header *nh =3D _fdt_offset_ptr(fdt, nodeoffset);
> +	const struct fdt_node_header *nh =3D fdt_offset_ptr_(fdt, nodeoffset);
> +	const char *nameptr;
> 	int err;
>=20
> -	if (((err =3D fdt_check_header(fdt)) !=3D 0)
> -	    || ((err =3D _fdt_check_node_offset(fdt, nodeoffset)) < 0))
> +	if (((err =3D fdt_ro_probe_(fdt)) < 0)
> +	    || ((err =3D fdt_check_node_offset_(fdt, nodeoffset)) < 0))
> +			goto fail;
> +
> +	nameptr =3D nh->name;
> +
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> +		/*
> +		 * For old FDT versions, match the naming conventions of V16:
> +		 * give only the leaf name (after all /). The actual tree
> +		 * contents are loosely checked.
> +		 */
> +		const char *leaf;
> +		leaf =3D strrchr(nameptr, '/');
> +		if (leaf =3D=3D NULL) {
> +			err =3D -FDT_ERR_BADSTRUCTURE;
> 			goto fail;
> +		}
> +		nameptr =3D leaf+1;
> +	}
>=20
> 	if (len)
> -		*len =3D strlen(nh->name);
> +		*len =3D strlen(nameptr);
>=20
> -	return nh->name;
> +	return nameptr;
>=20
>  fail:
> 	if (len)
> @@ -220,58 +339,81 @@ int fdt_first_property_offset(const void *fdt, int =
nodeoffset)
> {
> 	int offset;
>=20
> -	if ((offset =3D _fdt_check_node_offset(fdt, nodeoffset)) < 0)
> +	if ((offset =3D fdt_check_node_offset_(fdt, nodeoffset)) < 0)
> 		return offset;
>=20
> -	return _nextprop(fdt, offset);
> +	return nextprop_(fdt, offset);
> }
>=20
> int fdt_next_property_offset(const void *fdt, int offset)
> {
> -	if ((offset =3D _fdt_check_prop_offset(fdt, offset)) < 0)
> +	if ((offset =3D fdt_check_prop_offset_(fdt, offset)) < 0)
> 		return offset;
>=20
> -	return _nextprop(fdt, offset);
> +	return nextprop_(fdt, offset);
> }
>=20
> -const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> -						      int offset,
> -						      int *lenp)
> +static const struct fdt_property *fdt_get_property_by_offset_(const void=
 *fdt,
> +						              int offset,
> +						              int *lenp)
> {
> 	int err;
> 	const struct fdt_property *prop;
>=20
> -	if ((err =3D _fdt_check_prop_offset(fdt, offset)) < 0) {
> +	if (!can_assume(VALID_INPUT) &&
> +	    (err =3D fdt_check_prop_offset_(fdt, offset)) < 0) {
> 		if (lenp)
> 			*lenp =3D err;
> 		return NULL;
> 	}
>=20
> -	prop =3D _fdt_offset_ptr(fdt, offset);
> +	prop =3D fdt_offset_ptr_(fdt, offset);
>=20
> 	if (lenp)
> -		*lenp =3D fdt32_to_cpu(prop->len);
> +		*lenp =3D fdt32_ld_(&prop->len);
>=20
> 	return prop;
> }
>=20
> -const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> -						    int offset,
> -						    const char *name,
> -						    int namelen, int *lenp)
> +const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> +						      int offset,
> +						      int *lenp)
> +{
> +	/* Prior to version 16, properties may need realignment
> +	 * and this API does not work. fdt_getprop_*() will, however. */
> +
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> +		if (lenp)
> +			*lenp =3D -FDT_ERR_BADVERSION;
> +		return NULL;
> +	}
> +
> +	return fdt_get_property_by_offset_(fdt, offset, lenp);
> +}
> +
> +static const struct fdt_property *fdt_get_property_namelen_(const void *=
fdt,
> +						            int offset,
> +						            const char *name,
> +						            int namelen,
> +							    int *lenp,
> +							    int *poffset)
> {
> 	for (offset =3D fdt_first_property_offset(fdt, offset);
> 	     (offset >=3D 0);
> 	     (offset =3D fdt_next_property_offset(fdt, offset))) {
> 		const struct fdt_property *prop;
>=20
> -		if (!(prop =3D fdt_get_property_by_offset(fdt, offset, lenp))) {
> +		prop =3D fdt_get_property_by_offset_(fdt, offset, lenp);
> +		if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
> 			offset =3D -FDT_ERR_INTERNAL;
> 			break;
> 		}
> -		if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff),
> -				   name, namelen))
> +		if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
> +				   name, namelen)) {
> +			if (poffset)
> +				*poffset =3D offset;
> 			return prop;
> +		}
> 	}
>=20
> 	if (lenp)
> @@ -279,6 +421,25 @@ const struct fdt_property *fdt_get_property_namelen(=
const void *fdt,
> 	return NULL;
> }
>=20
> +
> +const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> +						    int offset,
> +						    const char *name,
> +						    int namelen, int *lenp)
> +{
> +	/* Prior to version 16, properties may need realignment
> +	 * and this API does not work. fdt_getprop_*() will, however. */
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> +		if (lenp)
> +			*lenp =3D -FDT_ERR_BADVERSION;
> +		return NULL;
> +	}
> +
> +	return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
> +					 NULL);
> +}
> +
> +
> const struct fdt_property *fdt_get_property(const void *fdt,
> 					    int nodeoffset,
> 					    const char *name, int *lenp)
> @@ -290,12 +451,18 @@ const struct fdt_property *fdt_get_property(const v=
oid *fdt,
> const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> 				const char *name, int namelen, int *lenp)
> {
> +	int poffset;
> 	const struct fdt_property *prop;
>=20
> -	prop =3D fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp)=
;
> -	if (! prop)
> +	prop =3D fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp=
,
> +					 &poffset);
> +	if (!prop)
> 		return NULL;
>=20
> +	/* Handle realignment */
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
> +	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >=3D 8)
> +		return prop->data + 4;
> 	return prop->data;
> }
>=20
> @@ -304,11 +471,31 @@ const void *fdt_getprop_by_offset(const void *fdt, =
int offset,
> {
> 	const struct fdt_property *prop;
>=20
> -	prop =3D fdt_get_property_by_offset(fdt, offset, lenp);
> +	prop =3D fdt_get_property_by_offset_(fdt, offset, lenp);
> 	if (!prop)
> 		return NULL;
> -	if (namep)
> -		*namep =3D fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
> +	if (namep) {
> +		const char *name;
> +		int namelen;
> +
> +		if (!can_assume(VALID_INPUT)) {
> +			name =3D fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
> +					      &namelen);
> +			if (!name) {
> +				if (lenp)
> +					*lenp =3D namelen;
> +				return NULL;
> +			}
> +			*namep =3D name;
> +		} else {
> +			*namep =3D fdt_string(fdt, fdt32_ld_(&prop->nameoff));
> +		}
> +	}
> +
> +	/* Handle realignment */
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
> +	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >=3D 8)
> +		return prop->data + 4;
> 	return prop->data;
> }
>=20
> @@ -332,7 +519,7 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoff=
set)
> 			return 0;
> 	}
>=20
> -	return fdt32_to_cpu(*php);
> +	return fdt32_ld_(php);
> }
>=20
> const char *fdt_get_alias_namelen(const void *fdt,
> @@ -358,7 +545,7 @@ int fdt_get_path(const void *fdt, int nodeoffset, cha=
r *buf, int buflen)
> 	int offset, depth, namelen;
> 	const char *name;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	if (buflen < 2)
> 		return -FDT_ERR_NOSPACE;
> @@ -410,7 +597,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int=
 nodeoffset,
> 	int offset, depth;
> 	int supernodeoffset =3D -FDT_ERR_INTERNAL;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	if (supernodedepth < 0)
> 		return -FDT_ERR_NOTFOUND;
> @@ -432,10 +619,12 @@ int fdt_supernode_atdepth_offset(const void *fdt, i=
nt nodeoffset,
> 		}
> 	}
>=20
> -	if ((offset =3D=3D -FDT_ERR_NOTFOUND) || (offset >=3D 0))
> -		return -FDT_ERR_BADOFFSET;
> -	else if (offset =3D=3D -FDT_ERR_BADOFFSET)
> -		return -FDT_ERR_BADSTRUCTURE;
> +	if (!can_assume(VALID_INPUT)) {
> +		if ((offset =3D=3D -FDT_ERR_NOTFOUND) || (offset >=3D 0))
> +			return -FDT_ERR_BADOFFSET;
> +		else if (offset =3D=3D -FDT_ERR_BADOFFSET)
> +			return -FDT_ERR_BADSTRUCTURE;
> +	}
>=20
> 	return offset; /* error from fdt_next_node() */
> }
> @@ -447,7 +636,8 @@ int fdt_node_depth(const void *fdt, int nodeoffset)
>=20
> 	err =3D fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
> 	if (err)
> -		return (err < 0) ? err : -FDT_ERR_INTERNAL;
> +		return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
> +			-FDT_ERR_INTERNAL;
> 	return nodedepth;
> }
>=20
> @@ -469,7 +659,7 @@ int fdt_node_offset_by_prop_value(const void *fdt, in=
t startoffset,
> 	const void *val;
> 	int len;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	/* FIXME: The algorithm here is pretty horrible: we scan each
> 	 * property of a node in fdt_getprop(), then if that didn't
> @@ -492,10 +682,10 @@ int fdt_node_offset_by_phandle(const void *fdt, uin=
t32_t phandle)
> {
> 	int offset;
>=20
> -	if ((phandle =3D=3D 0) || (phandle =3D=3D -1))
> +	if ((phandle =3D=3D 0) || (phandle =3D=3D ~0U))
> 		return -FDT_ERR_BADPHANDLE;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	/* FIXME: The algorithm here is pretty horrible: we
> 	 * potentially scan each property of a node in
> @@ -530,6 +720,106 @@ int fdt_stringlist_contains(const char *strlist, in=
t listlen, const char *str)
> 	return 0;
> }
>=20
> +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *pr=
operty)
> +{
> +	const char *list, *end;
> +	int length, count =3D 0;
> +
> +	list =3D fdt_getprop(fdt, nodeoffset, property, &length);
> +	if (!list)
> +		return length;
> +
> +	end =3D list + length;
> +
> +	while (list < end) {
> +		length =3D strnlen(list, end - list) + 1;
> +
> +		/* Abort if the last string isn't properly NUL-terminated. */
> +		if (list + length > end)
> +			return -FDT_ERR_BADVALUE;
> +
> +		list +=3D length;
> +		count++;
> +	}
> +
> +	return count;
> +}
> +
> +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *p=
roperty,
> +			  const char *string)
> +{
> +	int length, len, idx =3D 0;
> +	const char *list, *end;
> +
> +	list =3D fdt_getprop(fdt, nodeoffset, property, &length);
> +	if (!list)
> +		return length;
> +
> +	len =3D strlen(string) + 1;
> +	end =3D list + length;
> +
> +	while (list < end) {
> +		length =3D strnlen(list, end - list) + 1;
> +
> +		/* Abort if the last string isn't properly NUL-terminated. */
> +		if (list + length > end)
> +			return -FDT_ERR_BADVALUE;
> +
> +		if (length =3D=3D len && memcmp(list, string, length) =3D=3D 0)
> +			return idx;
> +
> +		list +=3D length;
> +		idx++;
> +	}
> +
> +	return -FDT_ERR_NOTFOUND;
> +}
> +
> +const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
> +			       const char *property, int idx,
> +			       int *lenp)
> +{
> +	const char *list, *end;
> +	int length;
> +
> +	list =3D fdt_getprop(fdt, nodeoffset, property, &length);
> +	if (!list) {
> +		if (lenp)
> +			*lenp =3D length;
> +
> +		return NULL;
> +	}
> +
> +	end =3D list + length;
> +
> +	while (list < end) {
> +		length =3D strnlen(list, end - list) + 1;
> +
> +		/* Abort if the last string isn't properly NUL-terminated. */
> +		if (list + length > end) {
> +			if (lenp)
> +				*lenp =3D -FDT_ERR_BADVALUE;
> +
> +			return NULL;
> +		}
> +
> +		if (idx =3D=3D 0) {
> +			if (lenp)
> +				*lenp =3D length - 1;
> +
> +			return list;
> +		}
> +
> +		list +=3D length;
> +		idx--;
> +	}
> +
> +	if (lenp)
> +		*lenp =3D -FDT_ERR_NOTFOUND;
> +
> +	return NULL;
> +}
> +
> int fdt_node_check_compatible(const void *fdt, int nodeoffset,
> 			      const char *compatible)
> {
> @@ -539,10 +829,8 @@ int fdt_node_check_compatible(const void *fdt, int n=
odeoffset,
> 	prop =3D fdt_getprop(fdt, nodeoffset, "compatible", &len);
> 	if (!prop)
> 		return len;
> -	if (fdt_stringlist_contains(prop, len, compatible))
> -		return 0;
> -	else
> -		return 1;
> +
> +	return !fdt_stringlist_contains(prop, len, compatible);
> }
>=20
> int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
> @@ -550,7 +838,7 @@ int fdt_node_offset_by_compatible(const void *fdt, in=
t startoffset,
> {
> 	int offset, err;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	/* FIXME: The algorithm here is pretty horrible: we scan each
> 	 * property of a node in fdt_node_check_compatible(), then if
> diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
> index 8b8cd25..3621d36 100644
> --- a/xen/common/libfdt/fdt_rw.c
> +++ b/xen/common/libfdt/fdt_rw.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,8 +10,8 @@
>=20
> #include "libfdt_internal.h"
>=20
> -static int _fdt_blocks_misordered(const void *fdt,
> -			      int mem_rsv_size, int struct_size)
> +static int fdt_blocks_misordered_(const void *fdt,
> +				  int mem_rsv_size, int struct_size)
> {
> 	return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8=
))
> 		|| (fdt_off_dt_struct(fdt) <
> @@ -65,40 +22,44 @@ static int _fdt_blocks_misordered(const void *fdt,
> 		    (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
> }
>=20
> -static int _fdt_rw_check_header(void *fdt)
> +static int fdt_rw_probe_(void *fdt)
> {
> -	FDT_CHECK_HEADER(fdt);
> +	if (can_assume(VALID_DTB))
> +		return 0;
> +	FDT_RO_PROBE(fdt);
>=20
> -	if (fdt_version(fdt) < 17)
> +	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
> 		return -FDT_ERR_BADVERSION;
> -	if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
> +	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
> 				   fdt_size_dt_struct(fdt)))
> 		return -FDT_ERR_BADLAYOUT;
> -	if (fdt_version(fdt) > 17)
> +	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
> 		fdt_set_version(fdt, 17);
>=20
> 	return 0;
> }
>=20
> -#define FDT_RW_CHECK_HEADER(fdt) \
> +#define FDT_RW_PROBE(fdt) \
> 	{ \
> -		int err; \
> -		if ((err =3D _fdt_rw_check_header(fdt)) !=3D 0) \
> -			return err; \
> +		int err_; \
> +		if ((err_ =3D fdt_rw_probe_(fdt)) !=3D 0) \
> +			return err_; \
> 	}
>=20
> -static inline unsigned int _fdt_data_size(void *fdt)
> +static inline unsigned int fdt_data_size_(void *fdt)
> {
> 	return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
> }
>=20
> -static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int new=
len)
> +static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int new=
len)
> {
> 	char *p =3D splicepoint;
> -	unsigned int dsize =3D _fdt_data_size(fdt);
> +	unsigned int dsize =3D fdt_data_size_(fdt);
> 	size_t soff =3D p - (char *)fdt;
>=20
> -	if (oldlen < 0 || soff + oldlen < soff || soff + oldlen > dsize)
> +	if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
> +		return -FDT_ERR_BADOFFSET;
> +	if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
> 		return -FDT_ERR_BADOFFSET;
> 	if (dsize - oldlen + newlen > fdt_totalsize(fdt))
> 		return -FDT_ERR_NOSPACE;
> @@ -106,12 +67,12 @@ static int _fdt_splice(void *fdt, void *splicepoint,=
 int oldlen, int newlen)
> 	return 0;
> }
>=20
> -static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
> +static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
> 			       int oldn, int newn)
> {
> 	int delta =3D (newn - oldn) * sizeof(*p);
> 	int err;
> -	err =3D _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
> +	err =3D fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
> 	if (err)
> 		return err;
> 	fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
> @@ -119,13 +80,13 @@ static int _fdt_splice_mem_rsv(void *fdt, struct fdt=
_reserve_entry *p,
> 	return 0;
> }
>=20
> -static int _fdt_splice_struct(void *fdt, void *p,
> +static int fdt_splice_struct_(void *fdt, void *p,
> 			      int oldlen, int newlen)
> {
> 	int delta =3D newlen - oldlen;
> 	int err;
>=20
> -	if ((err =3D _fdt_splice(fdt, p, oldlen, newlen)))
> +	if ((err =3D fdt_splice_(fdt, p, oldlen, newlen)))
> 		return err;
>=20
> 	fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
> @@ -133,20 +94,37 @@ static int _fdt_splice_struct(void *fdt, void *p,
> 	return 0;
> }
>=20
> -static int _fdt_splice_string(void *fdt, int newlen)
> +/* Must only be used to roll back in case of error */
> +static void fdt_del_last_string_(void *fdt, const char *s)
> +{
> +	int newlen =3D strlen(s) + 1;
> +
> +	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
> +}
> +
> +static int fdt_splice_string_(void *fdt, int newlen)
> {
> 	void *p =3D (char *)fdt
> 		+ fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
> 	int err;
>=20
> -	if ((err =3D _fdt_splice(fdt, p, 0, newlen)))
> +	if ((err =3D fdt_splice_(fdt, p, 0, newlen)))
> 		return err;
>=20
> 	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
> 	return 0;
> }
>=20
> -static int _fdt_find_add_string(void *fdt, const char *s)
> +/**
> + * fdt_find_add_string_() - Find or allocate a string
> + *
> + * @fdt: pointer to the device tree to check/adjust
> + * @s: string to find/add
> + * @allocated: Set to 0 if the string was found, 1 if not found and so
> + *	allocated. Ignored if can_assume(NO_ROLLBACK)
> + * @return offset of string in the string table (whether found or added)
> + */
> +static int fdt_find_add_string_(void *fdt, const char *s, int *allocated=
)
> {
> 	char *strtab =3D (char *)fdt + fdt_off_dt_strings(fdt);
> 	const char *p;
> @@ -154,16 +132,22 @@ static int _fdt_find_add_string(void *fdt, const ch=
ar *s)
> 	int len =3D strlen(s) + 1;
> 	int err;
>=20
> -	p =3D _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s);
> +	if (!can_assume(NO_ROLLBACK))
> +		*allocated =3D 0;
> +
> +	p =3D fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
> 	if (p)
> 		/* found it */
> 		return (p - strtab);
>=20
> 	new =3D strtab + fdt_size_dt_strings(fdt);
> -	err =3D _fdt_splice_string(fdt, len);
> +	err =3D fdt_splice_string_(fdt, len);
> 	if (err)
> 		return err;
>=20
> +	if (!can_assume(NO_ROLLBACK))
> +		*allocated =3D 1;
> +
> 	memcpy(new, s, len);
> 	return (new - strtab);
> }
> @@ -173,10 +157,10 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, ui=
nt64_t size)
> 	struct fdt_reserve_entry *re;
> 	int err;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> -	re =3D _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt));
> -	err =3D _fdt_splice_mem_rsv(fdt, re, 0, 1);
> +	re =3D fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
> +	err =3D fdt_splice_mem_rsv_(fdt, re, 0, 1);
> 	if (err)
> 		return err;
>=20
> @@ -187,31 +171,27 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, ui=
nt64_t size)
>=20
> int fdt_del_mem_rsv(void *fdt, int n)
> {
> -	struct fdt_reserve_entry *re =3D _fdt_mem_rsv_w(fdt, n);
> -	int err;
> +	struct fdt_reserve_entry *re =3D fdt_mem_rsv_w_(fdt, n);
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	if (n >=3D fdt_num_mem_rsv(fdt))
> 		return -FDT_ERR_NOTFOUND;
>=20
> -	err =3D _fdt_splice_mem_rsv(fdt, re, 1, 0);
> -	if (err)
> -		return err;
> -	return 0;
> +	return fdt_splice_mem_rsv_(fdt, re, 1, 0);
> }
>=20
> -static int _fdt_resize_property(void *fdt, int nodeoffset, const char *n=
ame,
> +static int fdt_resize_property_(void *fdt, int nodeoffset, const char *n=
ame,
> 				int len, struct fdt_property **prop)
> {
> 	int oldlen;
> 	int err;
>=20
> 	*prop =3D fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
> -	if (! (*prop))
> +	if (!*prop)
> 		return oldlen;
>=20
> -	if ((err =3D _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen=
),
> +	if ((err =3D fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen=
),
> 				      FDT_TAGALIGN(len))))
> 		return err;
>=20
> @@ -219,27 +199,32 @@ static int _fdt_resize_property(void *fdt, int node=
offset, const char *name,
> 	return 0;
> }
>=20
> -static int _fdt_add_property(void *fdt, int nodeoffset, const char *name=
,
> +static int fdt_add_property_(void *fdt, int nodeoffset, const char *name=
,
> 			     int len, struct fdt_property **prop)
> {
> 	int proplen;
> 	int nextoffset;
> 	int namestroff;
> 	int err;
> +	int allocated;
>=20
> -	if ((nextoffset =3D _fdt_check_node_offset(fdt, nodeoffset)) < 0)
> +	if ((nextoffset =3D fdt_check_node_offset_(fdt, nodeoffset)) < 0)
> 		return nextoffset;
>=20
> -	namestroff =3D _fdt_find_add_string(fdt, name);
> +	namestroff =3D fdt_find_add_string_(fdt, name, &allocated);
> 	if (namestroff < 0)
> 		return namestroff;
>=20
> -	*prop =3D _fdt_offset_ptr_w(fdt, nextoffset);
> +	*prop =3D fdt_offset_ptr_w_(fdt, nextoffset);
> 	proplen =3D sizeof(**prop) + FDT_TAGALIGN(len);
>=20
> -	err =3D _fdt_splice_struct(fdt, *prop, 0, proplen);
> -	if (err)
> +	err =3D fdt_splice_struct_(fdt, *prop, 0, proplen);
> +	if (err) {
> +		/* Delete the string if we failed to add it */
> +		if (!can_assume(NO_ROLLBACK) && allocated)
> +			fdt_del_last_string_(fdt, name);
> 		return err;
> +	}
>=20
> 	(*prop)->tag =3D cpu_to_fdt32(FDT_PROP);
> 	(*prop)->nameoff =3D cpu_to_fdt32(namestroff);
> @@ -253,7 +238,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const cha=
r *name)
> 	int oldlen, newlen;
> 	int err;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	namep =3D (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
> 	if (!namep)
> @@ -261,7 +246,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const cha=
r *name)
>=20
> 	newlen =3D strlen(name);
>=20
> -	err =3D _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1),
> +	err =3D fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
> 				 FDT_TAGALIGN(newlen+1));
> 	if (err)
> 		return err;
> @@ -270,21 +255,36 @@ int fdt_set_name(void *fdt, int nodeoffset, const c=
har *name)
> 	return 0;
> }
>=20
> -int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> -		const void *val, int len)
> +int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
> +			    int len, void **prop_data)
> {
> 	struct fdt_property *prop;
> 	int err;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> -	err =3D _fdt_resize_property(fdt, nodeoffset, name, len, &prop);
> +	err =3D fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
> 	if (err =3D=3D -FDT_ERR_NOTFOUND)
> -		err =3D _fdt_add_property(fdt, nodeoffset, name, len, &prop);
> +		err =3D fdt_add_property_(fdt, nodeoffset, name, len, &prop);
> +	if (err)
> +		return err;
> +
> +	*prop_data =3D prop->data;
> +	return 0;
> +}
> +
> +int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> +		const void *val, int len)
> +{
> +	void *prop_data;
> +	int err;
> +
> +	err =3D fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data)=
;
> 	if (err)
> 		return err;
>=20
> -	memcpy(prop->data, val, len);
> +	if (len)
> +		memcpy(prop_data, val, len);
> 	return 0;
> }
>=20
> @@ -294,12 +294,12 @@ int fdt_appendprop(void *fdt, int nodeoffset, const=
 char *name,
> 	struct fdt_property *prop;
> 	int err, oldlen, newlen;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	prop =3D fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
> 	if (prop) {
> 		newlen =3D len + oldlen;
> -		err =3D _fdt_splice_struct(fdt, prop->data,
> +		err =3D fdt_splice_struct_(fdt, prop->data,
> 					 FDT_TAGALIGN(oldlen),
> 					 FDT_TAGALIGN(newlen));
> 		if (err)
> @@ -307,7 +307,7 @@ int fdt_appendprop(void *fdt, int nodeoffset, const c=
har *name,
> 		prop->len =3D cpu_to_fdt32(newlen);
> 		memcpy(prop->data + oldlen, val, len);
> 	} else {
> -		err =3D _fdt_add_property(fdt, nodeoffset, name, len, &prop);
> +		err =3D fdt_add_property_(fdt, nodeoffset, name, len, &prop);
> 		if (err)
> 			return err;
> 		memcpy(prop->data, val, len);
> @@ -320,14 +320,14 @@ int fdt_delprop(void *fdt, int nodeoffset, const ch=
ar *name)
> 	struct fdt_property *prop;
> 	int len, proplen;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	prop =3D fdt_get_property_w(fdt, nodeoffset, name, &len);
> -	if (! prop)
> +	if (!prop)
> 		return len;
>=20
> 	proplen =3D sizeof(*prop) + FDT_TAGALIGN(len);
> -	return _fdt_splice_struct(fdt, prop, proplen, 0);
> +	return fdt_splice_struct_(fdt, prop, proplen, 0);
> }
>=20
> int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> @@ -340,7 +340,7 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffs=
et,
> 	uint32_t tag;
> 	fdt32_t *endtag;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	offset =3D fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
> 	if (offset >=3D 0)
> @@ -349,16 +349,19 @@ int fdt_add_subnode_namelen(void *fdt, int parentof=
fset,
> 		return offset;
>=20
> 	/* Try to place the new node after the parent's properties */
> -	fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
> +	tag =3D fdt_next_tag(fdt, parentoffset, &nextoffset);
> +	/* the fdt_subnode_offset_namelen() should ensure this never hits */
> +	if (!can_assume(LIBFDT_FLAWLESS) && (tag !=3D FDT_BEGIN_NODE))
> +		return -FDT_ERR_INTERNAL;
> 	do {
> 		offset =3D nextoffset;
> 		tag =3D fdt_next_tag(fdt, offset, &nextoffset);
> 	} while ((tag =3D=3D FDT_PROP) || (tag =3D=3D FDT_NOP));
>=20
> -	nh =3D _fdt_offset_ptr_w(fdt, offset);
> +	nh =3D fdt_offset_ptr_w_(fdt, offset);
> 	nodelen =3D sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
>=20
> -	err =3D _fdt_splice_struct(fdt, nh, 0, nodelen);
> +	err =3D fdt_splice_struct_(fdt, nh, 0, nodelen);
> 	if (err)
> 		return err;
>=20
> @@ -380,18 +383,20 @@ int fdt_del_node(void *fdt, int nodeoffset)
> {
> 	int endoffset;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> -	endoffset =3D _fdt_node_end_offset(fdt, nodeoffset);
> +	endoffset =3D fdt_node_end_offset_(fdt, nodeoffset);
> 	if (endoffset < 0)
> 		return endoffset;
>=20
> -	return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset),
> +	return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
> 				  endoffset - nodeoffset, 0);
> }
>=20
> -static void _fdt_packblocks(const char *old, char *new,
> -			    int mem_rsv_size, int struct_size)
> +static void fdt_packblocks_(const char *old, char *new,
> +			    int mem_rsv_size,
> +			    int struct_size,
> +			    int strings_size)
> {
> 	int mem_rsv_off, struct_off, strings_off;
>=20
> @@ -406,8 +411,7 @@ static void _fdt_packblocks(const char *old, char *ne=
w,
> 	fdt_set_off_dt_struct(new, struct_off);
> 	fdt_set_size_dt_struct(new, struct_size);
>=20
> -	memmove(new + strings_off, old + fdt_off_dt_strings(old),
> -		fdt_size_dt_strings(old));
> +	memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size)=
;
> 	fdt_set_off_dt_strings(new, strings_off);
> 	fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
> }
> @@ -421,22 +425,25 @@ int fdt_open_into(const void *fdt, void *buf, int b=
ufsize)
> 	const char *fdtend =3D fdtstart + fdt_totalsize(fdt);
> 	char *tmp;
>=20
> -	FDT_CHECK_HEADER(fdt);
> +	FDT_RO_PROBE(fdt);
>=20
> 	mem_rsv_size =3D (fdt_num_mem_rsv(fdt)+1)
> 		* sizeof(struct fdt_reserve_entry);
>=20
> -	if (fdt_version(fdt) >=3D 17) {
> +	if (can_assume(LATEST) || fdt_version(fdt) >=3D 17) {
> 		struct_size =3D fdt_size_dt_struct(fdt);
> -	} else {
> +	} else if (fdt_version(fdt) =3D=3D 16) {
> 		struct_size =3D 0;
> 		while (fdt_next_tag(fdt, struct_size, &struct_size) !=3D FDT_END)
> 			;
> 		if (struct_size < 0)
> 			return struct_size;
> +	} else {
> +		return -FDT_ERR_BADVERSION;
> 	}
>=20
> -	if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) {
> +	if (can_assume(LIBFDT_ORDER) ||
> +	    !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
> 		/* no further work necessary */
> 		err =3D fdt_move(fdt, buf, bufsize);
> 		if (err)
> @@ -464,7 +471,8 @@ int fdt_open_into(const void *fdt, void *buf, int buf=
size)
> 			return -FDT_ERR_NOSPACE;
> 	}
>=20
> -	_fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size);
> +	fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
> +			fdt_size_dt_strings(fdt));
> 	memmove(buf, tmp, newsize);
>=20
> 	fdt_set_magic(buf, FDT_MAGIC);
> @@ -480,12 +488,13 @@ int fdt_pack(void *fdt)
> {
> 	int mem_rsv_size;
>=20
> -	FDT_RW_CHECK_HEADER(fdt);
> +	FDT_RW_PROBE(fdt);
>=20
> 	mem_rsv_size =3D (fdt_num_mem_rsv(fdt)+1)
> 		* sizeof(struct fdt_reserve_entry);
> -	_fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt));
> -	fdt_set_totalsize(fdt, _fdt_data_size(fdt));
> +	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
> +			fdt_size_dt_strings(fdt));
> +	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
>=20
> 	return 0;
> }
> diff --git a/xen/common/libfdt/fdt_strerror.c b/xen/common/libfdt/fdt_str=
error.c
> index 8d0289c..b435693 100644
> --- a/xen/common/libfdt/fdt_strerror.c
> +++ b/xen/common/libfdt/fdt_strerror.c
> @@ -1,49 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
>  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
> @@ -67,6 +25,7 @@ static struct fdt_errtabent fdt_errtable[] =3D {
>=20
> 	FDT_ERRTABENT(FDT_ERR_BADOFFSET),
> 	FDT_ERRTABENT(FDT_ERR_BADPATH),
> +	FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
> 	FDT_ERRTABENT(FDT_ERR_BADSTATE),
>=20
> 	FDT_ERRTABENT(FDT_ERR_TRUNCATED),
> @@ -74,8 +33,14 @@ static struct fdt_errtabent fdt_errtable[] =3D {
> 	FDT_ERRTABENT(FDT_ERR_BADVERSION),
> 	FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
> 	FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
> +	FDT_ERRTABENT(FDT_ERR_INTERNAL),
> +	FDT_ERRTABENT(FDT_ERR_BADNCELLS),
> +	FDT_ERRTABENT(FDT_ERR_BADVALUE),
> +	FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
> +	FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
> +	FDT_ERRTABENT(FDT_ERR_BADFLAGS),
> };
> -#define FDT_ERRTABSIZE	(sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
> +#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable=
[0])))
>=20
> const char *fdt_strerror(int errval)
> {
> @@ -83,7 +48,7 @@ const char *fdt_strerror(int errval)
> 		return "<valid offset/length>";
> 	else if (errval =3D=3D 0)
> 		return "<no error>";
> -	else if (errval > -FDT_ERRTABSIZE) {
> +	else if (-errval < FDT_ERRTABSIZE) {
> 		const char *s =3D fdt_errtable[-errval].str;
>=20
> 		if (s)
> diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
> index c7d93d3..4c569ee 100644
> --- a/xen/common/libfdt/fdt_sw.c
> +++ b/xen/common/libfdt/fdt_sw.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,25 +10,91 @@
>=20
> #include "libfdt_internal.h"
>=20
> -static int _fdt_sw_check_header(void *fdt)
> +static int fdt_sw_probe_(void *fdt)
> +{
> +	if (!can_assume(VALID_INPUT)) {
> +		if (fdt_magic(fdt) =3D=3D FDT_MAGIC)
> +			return -FDT_ERR_BADSTATE;
> +		else if (fdt_magic(fdt) !=3D FDT_SW_MAGIC)
> +			return -FDT_ERR_BADMAGIC;
> +	}
> +
> +	return 0;
> +}
> +
> +#define FDT_SW_PROBE(fdt) \
> +	{ \
> +		int err; \
> +		if ((err =3D fdt_sw_probe_(fdt)) !=3D 0) \
> +			return err; \
> +	}
> +
> +/* 'memrsv' state:	Initial state after fdt_create()
> + *
> + * Allowed functions:
> + *	fdt_add_reservemap_entry()
> + *	fdt_finish_reservemap()		[moves to 'struct' state]
> + */
> +static int fdt_sw_probe_memrsv_(void *fdt)
> +{
> +	int err =3D fdt_sw_probe_(fdt);
> +	if (err)
> +		return err;
> +
> +	if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) !=3D 0)
> +		return -FDT_ERR_BADSTATE;
> +	return 0;
> +}
> +
> +#define FDT_SW_PROBE_MEMRSV(fdt) \
> +	{ \
> +		int err; \
> +		if ((err =3D fdt_sw_probe_memrsv_(fdt)) !=3D 0) \
> +			return err; \
> +	}
> +
> +/* 'struct' state:	Enter this state after fdt_finish_reservemap()
> + *
> + * Allowed functions:
> + *	fdt_begin_node()
> + *	fdt_end_node()
> + *	fdt_property*()
> + *	fdt_finish()			[moves to 'complete' state]
> + */
> +static int fdt_sw_probe_struct_(void *fdt)
> {
> -	if (fdt_magic(fdt) !=3D FDT_SW_MAGIC)
> -		return -FDT_ERR_BADMAGIC;
> -	/* FIXME: should check more details about the header state */
> +	int err =3D fdt_sw_probe_(fdt);
> +	if (err)
> +		return err;
> +
> +	if (!can_assume(VALID_INPUT) &&
> +	    fdt_off_dt_strings(fdt) !=3D fdt_totalsize(fdt))
> +		return -FDT_ERR_BADSTATE;
> 	return 0;
> }
>=20
> -#define FDT_SW_CHECK_HEADER(fdt) \
> +#define FDT_SW_PROBE_STRUCT(fdt) \
> 	{ \
> 		int err; \
> -		if ((err =3D _fdt_sw_check_header(fdt)) !=3D 0) \
> +		if ((err =3D fdt_sw_probe_struct_(fdt)) !=3D 0) \
> 			return err; \
> 	}
>=20
> -static void *_fdt_grab_space(void *fdt, size_t len)
> +static inline uint32_t sw_flags(void *fdt)
> {
> -	int offset =3D fdt_size_dt_struct(fdt);
> -	int spaceleft;
> +	/* assert: (fdt_magic(fdt) =3D=3D FDT_SW_MAGIC) */
> +	return fdt_last_comp_version(fdt);
> +}
> +
> +/* 'complete' state:	Enter this state after fdt_finish()
> + *
> + * Allowed functions: none
> + */
> +
> +static void *fdt_grab_space_(void *fdt, size_t len)
> +{
> +	unsigned int offset =3D fdt_size_dt_struct(fdt);
> +	unsigned int spaceleft;
>=20
> 	spaceleft =3D fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
> 		- fdt_size_dt_strings(fdt);
> @@ -80,27 +103,84 @@ static void *_fdt_grab_space(void *fdt, size_t len)
> 		return NULL;
>=20
> 	fdt_set_size_dt_struct(fdt, offset + len);
> -	return _fdt_offset_ptr_w(fdt, offset);
> +	return fdt_offset_ptr_w_(fdt, offset);
> }
>=20
> -int fdt_create(void *buf, int bufsize)
> +int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
> {
> +	const int hdrsize =3D FDT_ALIGN(sizeof(struct fdt_header),
> +				      sizeof(struct fdt_reserve_entry));
> 	void *fdt =3D buf;
>=20
> -	if (bufsize < sizeof(struct fdt_header))
> +	if (bufsize < hdrsize)
> 		return -FDT_ERR_NOSPACE;
>=20
> +	if (flags & ~FDT_CREATE_FLAGS_ALL)
> +		return -FDT_ERR_BADFLAGS;
> +
> 	memset(buf, 0, bufsize);
>=20
> +	/*
> +	 * magic and last_comp_version keep intermediate state during the fdt
> +	 * creation process, which is replaced with the proper FDT format by
> +	 * fdt_finish().
> +	 *
> +	 * flags should be accessed with sw_flags().
> +	 */
> 	fdt_set_magic(fdt, FDT_SW_MAGIC);
> 	fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
> -	fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION);
> +	fdt_set_last_comp_version(fdt, flags);
> +
> 	fdt_set_totalsize(fdt,  bufsize);
>=20
> -	fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header),
> -					      sizeof(struct fdt_reserve_entry)));
> +	fdt_set_off_mem_rsvmap(fdt, hdrsize);
> 	fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
> -	fdt_set_off_dt_strings(fdt, bufsize);
> +	fdt_set_off_dt_strings(fdt, 0);
> +
> +	return 0;
> +}
> +
> +int fdt_create(void *buf, int bufsize)
> +{
> +	return fdt_create_with_flags(buf, bufsize, 0);
> +}
> +
> +int fdt_resize(void *fdt, void *buf, int bufsize)
> +{
> +	size_t headsize, tailsize;
> +	char *oldtail, *newtail;
> +
> +	FDT_SW_PROBE(fdt);
> +
> +	if (bufsize < 0)
> +		return -FDT_ERR_NOSPACE;
> +
> +	headsize =3D fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> +	tailsize =3D fdt_size_dt_strings(fdt);
> +
> +	if (!can_assume(VALID_DTB) &&
> +	    headsize + tailsize > fdt_totalsize(fdt))
> +		return -FDT_ERR_INTERNAL;
> +
> +	if ((headsize + tailsize) > (unsigned)bufsize)
> +		return -FDT_ERR_NOSPACE;
> +
> +	oldtail =3D (char *)fdt + fdt_totalsize(fdt) - tailsize;
> +	newtail =3D (char *)buf + bufsize - tailsize;
> +
> +	/* Two cases to avoid clobbering data if the old and new
> +	 * buffers partially overlap */
> +	if (buf <=3D fdt) {
> +		memmove(buf, fdt, headsize);
> +		memmove(newtail, oldtail, tailsize);
> +	} else {
> +		memmove(newtail, oldtail, tailsize);
> +		memmove(buf, fdt, headsize);
> +	}
> +
> +	fdt_set_totalsize(buf, bufsize);
> +	if (fdt_off_dt_strings(buf))
> +		fdt_set_off_dt_strings(buf, bufsize);
>=20
> 	return 0;
> }
> @@ -110,10 +190,7 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t add=
r, uint64_t size)
> 	struct fdt_reserve_entry *re;
> 	int offset;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> -
> -	if (fdt_size_dt_struct(fdt))
> -		return -FDT_ERR_BADSTATE;
> +	FDT_SW_PROBE_MEMRSV(fdt);
>=20
> 	offset =3D fdt_off_dt_struct(fdt);
> 	if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
> @@ -130,17 +207,24 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t ad=
dr, uint64_t size)
>=20
> int fdt_finish_reservemap(void *fdt)
> {
> -	return fdt_add_reservemap_entry(fdt, 0, 0);
> +	int err =3D fdt_add_reservemap_entry(fdt, 0, 0);
> +
> +	if (err)
> +		return err;
> +
> +	fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
> +	return 0;
> }
>=20
> int fdt_begin_node(void *fdt, const char *name)
> {
> 	struct fdt_node_header *nh;
> -	int namelen =3D strlen(name) + 1;
> +	int namelen;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> +	FDT_SW_PROBE_STRUCT(fdt);
>=20
> -	nh =3D _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
> +	namelen =3D strlen(name) + 1;
> +	nh =3D fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
> 	if (! nh)
> 		return -FDT_ERR_NOSPACE;
>=20
> @@ -153,9 +237,9 @@ int fdt_end_node(void *fdt)
> {
> 	fdt32_t *en;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> +	FDT_SW_PROBE_STRUCT(fdt);
>=20
> -	en =3D _fdt_grab_space(fdt, FDT_TAGSIZE);
> +	en =3D fdt_grab_space_(fdt, FDT_TAGSIZE);
> 	if (! en)
> 		return -FDT_ERR_NOSPACE;
>=20
> @@ -163,48 +247,90 @@ int fdt_end_node(void *fdt)
> 	return 0;
> }
>=20
> -static int _fdt_find_add_string(void *fdt, const char *s)
> +static int fdt_add_string_(void *fdt, const char *s)
> {
> 	char *strtab =3D (char *)fdt + fdt_totalsize(fdt);
> -	const char *p;
> +	unsigned int strtabsize =3D fdt_size_dt_strings(fdt);
> +	unsigned int len =3D strlen(s) + 1;
> +	unsigned int struct_top, offset;
> +
> +	offset =3D strtabsize + len;
> +	struct_top =3D fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> +	if (fdt_totalsize(fdt) - offset < struct_top)
> +		return 0; /* no more room :( */
> +
> +	memcpy(strtab - offset, s, len);
> +	fdt_set_size_dt_strings(fdt, strtabsize + len);
> +	return -offset;
> +}
> +
> +/* Must only be used to roll back in case of error */
> +static void fdt_del_last_string_(void *fdt, const char *s)
> +{
> 	int strtabsize =3D fdt_size_dt_strings(fdt);
> 	int len =3D strlen(s) + 1;
> -	int struct_top, offset;
>=20
> -	p =3D _fdt_find_string(strtab - strtabsize, strtabsize, s);
> +	fdt_set_size_dt_strings(fdt, strtabsize - len);
> +}
> +
> +static int fdt_find_add_string_(void *fdt, const char *s, int *allocated=
)
> +{
> +	char *strtab =3D (char *)fdt + fdt_totalsize(fdt);
> +	int strtabsize =3D fdt_size_dt_strings(fdt);
> +	const char *p;
> +
> +	*allocated =3D 0;
> +
> +	p =3D fdt_find_string_(strtab - strtabsize, strtabsize, s);
> 	if (p)
> 		return p - strtab;
>=20
> -	/* Add it */
> -	offset =3D -strtabsize - len;
> -	struct_top =3D fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> -	if (fdt_totalsize(fdt) + offset < struct_top)
> -		return 0; /* no more room :( */
> +	*allocated =3D 1;
>=20
> -	memcpy(strtab + offset, s, len);
> -	fdt_set_size_dt_strings(fdt, strtabsize + len);
> -	return offset;
> +	return fdt_add_string_(fdt, s);
> }
>=20
> -int fdt_property(void *fdt, const char *name, const void *val, int len)
> +int fdt_property_placeholder(void *fdt, const char *name, int len, void =
**valp)
> {
> 	struct fdt_property *prop;
> 	int nameoff;
> +	int allocated;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> +	FDT_SW_PROBE_STRUCT(fdt);
>=20
> -	nameoff =3D _fdt_find_add_string(fdt, name);
> +	/* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
> +	if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
> +		allocated =3D 1;
> +		nameoff =3D fdt_add_string_(fdt, name);
> +	} else {
> +		nameoff =3D fdt_find_add_string_(fdt, name, &allocated);
> +	}
> 	if (nameoff =3D=3D 0)
> 		return -FDT_ERR_NOSPACE;
>=20
> -	prop =3D _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
> -	if (! prop)
> +	prop =3D fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
> +	if (! prop) {
> +		if (allocated)
> +			fdt_del_last_string_(fdt, name);
> 		return -FDT_ERR_NOSPACE;
> +	}
>=20
> 	prop->tag =3D cpu_to_fdt32(FDT_PROP);
> 	prop->nameoff =3D cpu_to_fdt32(nameoff);
> 	prop->len =3D cpu_to_fdt32(len);
> -	memcpy(prop->data, val, len);
> +	*valp =3D prop->data;
> +	return 0;
> +}
> +
> +int fdt_property(void *fdt, const char *name, const void *val, int len)
> +{
> +	void *ptr;
> +	int ret;
> +
> +	ret =3D fdt_property_placeholder(fdt, name, len, &ptr);
> +	if (ret)
> +		return ret;
> +	memcpy(ptr, val, len);
> 	return 0;
> }
>=20
> @@ -216,10 +342,10 @@ int fdt_finish(void *fdt)
> 	uint32_t tag;
> 	int offset, nextoffset;
>=20
> -	FDT_SW_CHECK_HEADER(fdt);
> +	FDT_SW_PROBE_STRUCT(fdt);
>=20
> 	/* Add terminator */
> -	end =3D _fdt_grab_space(fdt, sizeof(*end));
> +	end =3D fdt_grab_space_(fdt, sizeof(*end));
> 	if (! end)
> 		return -FDT_ERR_NOSPACE;
> 	*end =3D cpu_to_fdt32(FDT_END);
> @@ -235,7 +361,7 @@ int fdt_finish(void *fdt)
> 	while ((tag =3D fdt_next_tag(fdt, offset, &nextoffset)) !=3D FDT_END) {
> 		if (tag =3D=3D FDT_PROP) {
> 			struct fdt_property *prop =3D
> -				_fdt_offset_ptr_w(fdt, offset);
> +				fdt_offset_ptr_w_(fdt, offset);
> 			int nameoff;
>=20
> 			nameoff =3D fdt32_to_cpu(prop->nameoff);
> @@ -249,6 +375,10 @@ int fdt_finish(void *fdt)
>=20
> 	/* Finally, adjust the header */
> 	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
> +
> +	/* And fix up fields that were keeping intermediate state. */
> +	fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
> 	fdt_set_magic(fdt, FDT_MAGIC);
> +
> 	return 0;
> }
> diff --git a/xen/common/libfdt/fdt_wip.c b/xen/common/libfdt/fdt_wip.c
> index 2d1cac0..c2d7566 100644
> --- a/xen/common/libfdt/fdt_wip.c
> +++ b/xen/common/libfdt/fdt_wip.c
> @@ -1,50 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include "libfdt_env.h"
>=20
> @@ -53,24 +10,45 @@
>=20
> #include "libfdt_internal.h"
>=20
> +int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
> +					const char *name, int namelen,
> +					uint32_t idx, const void *val,
> +					int len)
> +{
> +	void *propval;
> +	int proplen;
> +
> +	propval =3D fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
> +					&proplen);
> +	if (!propval)
> +		return proplen;
> +
> +	if ((unsigned)proplen < (len + idx))
> +		return -FDT_ERR_NOSPACE;
> +
> +	memcpy((char *)propval + idx, val, len);
> +	return 0;
> +}
> +
> int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
> 			const void *val, int len)
> {
> -	void *propval;
> +	const void *propval;
> 	int proplen;
>=20
> -	propval =3D fdt_getprop_w(fdt, nodeoffset, name, &proplen);
> -	if (! propval)
> +	propval =3D fdt_getprop(fdt, nodeoffset, name, &proplen);
> +	if (!propval)
> 		return proplen;
>=20
> 	if (proplen !=3D len)
> 		return -FDT_ERR_NOSPACE;
>=20
> -	memcpy(propval, val, len);
> -	return 0;
> +	return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
> +						   strlen(name), 0,
> +						   val, len);
> }
>=20
> -static void _fdt_nop_region(void *start, int len)
> +static void fdt_nop_region_(void *start, int len)
> {
> 	fdt32_t *p;
>=20
> @@ -84,15 +62,15 @@ int fdt_nop_property(void *fdt, int nodeoffset, const=
 char *name)
> 	int len;
>=20
> 	prop =3D fdt_get_property_w(fdt, nodeoffset, name, &len);
> -	if (! prop)
> +	if (!prop)
> 		return len;
>=20
> -	_fdt_nop_region(prop, len + sizeof(*prop));
> +	fdt_nop_region_(prop, len + sizeof(*prop));
>=20
> 	return 0;
> }
>=20
> -int _fdt_node_end_offset(void *fdt, int offset)
> +int fdt_node_end_offset_(void *fdt, int offset)
> {
> 	int depth =3D 0;
>=20
> @@ -106,11 +84,11 @@ int fdt_nop_node(void *fdt, int nodeoffset)
> {
> 	int endoffset;
>=20
> -	endoffset =3D _fdt_node_end_offset(fdt, nodeoffset);
> +	endoffset =3D fdt_node_end_offset_(fdt, nodeoffset);
> 	if (endoffset < 0)
> 		return endoffset;
>=20
> -	_fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0),
> +	fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
> 			endoffset - nodeoffset);
> 	return 0;
> }
> diff --git a/xen/common/libfdt/libfdt_internal.h b/xen/common/libfdt/libf=
dt_internal.h
> index d50c4e1..16bda19 100644
> --- a/xen/common/libfdt/libfdt_internal.h
> +++ b/xen/common/libfdt/libfdt_internal.h
> @@ -1,81 +1,39 @@
> -#ifndef _LIBFDT_INTERNAL_H
> -#define _LIBFDT_INTERNAL_H
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> +#ifndef LIBFDT_INTERNAL_H
> +#define LIBFDT_INTERNAL_H
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
> #include <fdt.h>
>=20
> #define FDT_ALIGN(x, a)		(((x) + (a) - 1) & ~((a) - 1))
> #define FDT_TAGALIGN(x)		(FDT_ALIGN((x), FDT_TAGSIZE))
>=20
> -#define FDT_CHECK_HEADER(fdt) \
> -	{ \
> -		int err; \
> -		if ((err =3D fdt_check_header(fdt)) !=3D 0) \
> -			return err; \
> +int32_t fdt_ro_probe_(const void *fdt);
> +#define FDT_RO_PROBE(fdt)					\
> +	{							\
> +		int32_t totalsize_;				\
> +		if ((totalsize_ =3D fdt_ro_probe_(fdt)) < 0)	\
> +			return totalsize_;			\
> 	}
>=20
> -int _fdt_check_node_offset(const void *fdt, int offset);
> -int _fdt_check_prop_offset(const void *fdt, int offset);
> -const char *_fdt_find_string(const char *strtab, int tabsize, const char=
 *s);
> -int _fdt_node_end_offset(void *fdt, int nodeoffset);
> +int fdt_check_node_offset_(const void *fdt, int offset);
> +int fdt_check_prop_offset_(const void *fdt, int offset);
> +const char *fdt_find_string_(const char *strtab, int tabsize, const char=
 *s);
> +int fdt_node_end_offset_(void *fdt, int nodeoffset);
>=20
> -static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
> +static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
> {
> 	return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
> }
>=20
> -static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
> +static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
> {
> -	return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
> +	return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
> }
>=20
> -static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *f=
dt, int n)
> +static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *f=
dt, int n)
> {
> 	const struct fdt_reserve_entry *rsv_table =3D
> 		(const struct fdt_reserve_entry *)
> @@ -83,11 +41,152 @@ static inline const struct fdt_reserve_entry *_fdt_m=
em_rsv(const void *fdt, int
>=20
> 	return rsv_table + n;
> }
> -static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
> +static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
> +{
> +	return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
> +}
> +
> +/*
> + * Internal helpers to access tructural elements of the device tree
> + * blob (rather than for exaple reading integers from within property
> + * values).  We assume that we are either given a naturally aligned
> + * address for the platform or if we are not, we are on a platform
> + * where unaligned memory reads will be handled in a graceful manner.
> + * If not the external helpers fdtXX_ld() from libfdt.h can be used
> + * instead.
> + */
> +static inline uint32_t fdt32_ld_(const fdt32_t *p)
> {
> -	return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
> +	return fdt32_to_cpu(*p);
> +}
> +
> +static inline uint64_t fdt64_ld_(const fdt64_t *p)
> +{
> +	return fdt64_to_cpu(*p);
> }
>=20
> #define FDT_SW_MAGIC		(~FDT_MAGIC)
>=20
> -#endif /* _LIBFDT_INTERNAL_H */
> +/**********************************************************************/
> +/* Checking controls                                                  */
> +/**********************************************************************/
> +
> +#ifndef FDT_ASSUME_MASK
> +#define FDT_ASSUME_MASK 0
> +#endif
> +
> +/*
> + * Defines assumptions which can be enabled. Each of these can be enable=
d
> + * individually. For maximum safety, don't enable any assumptions!
> + *
> + * For minimal code size and no safety, use ASSUME_PERFECT at your own r=
isk.
> + * You should have another method of validating the device tree, such as=
 a
> + * signature or hash check before using libfdt.
> + *
> + * For situations where security is not a concern it may be safe to enab=
le
> + * ASSUME_SANE.
> + */
> +enum {
> +	/*
> +	 * This does essentially no checks. Only the latest device-tree
> +	 * version is correctly handled. Inconsistencies or errors in the devic=
e
> +	 * tree may cause undefined behaviour or crashes. Invalid parameters
> +	 * passed to libfdt may do the same.
> +	 *
> +	 * If an error occurs when modifying the tree it may leave the tree in
> +	 * an intermediate (but valid) state. As an example, adding a property
> +	 * where there is insufficient space may result in the property name
> +	 * being added to the string table even though the property itself is
> +	 * not added to the struct section.
> +	 *
> +	 * Only use this if you have a fully validated device tree with
> +	 * the latest supported version and wish to minimise code size.
> +	 */
> +	ASSUME_PERFECT		=3D 0xff,
> +
> +	/*
> +	 * This assumes that the device tree is sane. i.e. header metadata
> +	 * and basic hierarchy are correct.
> +	 *
> +	 * With this assumption enabled, normal device trees produced by libfdt
> +	 * and the compiler should be handled safely. Malicious device trees an=
d
> +	 * complete garbage may cause libfdt to behave badly or crash. Truncate=
d
> +	 * device trees (e.g. those only partially loaded) can also cause
> +	 * problems.
> +	 *
> +	 * Note: Only checks that relate exclusively to the device tree itself
> +	 * (not the parameters passed to libfdt) are disabled by this
> +	 * assumption. This includes checking headers, tags and the like.
> +	 */
> +	ASSUME_VALID_DTB	=3D 1 << 0,
> +
> +	/*
> +	 * This builds on ASSUME_VALID_DTB and further assumes that libfdt
> +	 * functions are called with valid parameters, i.e. not trigger
> +	 * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
> +	 * extensive checking of parameters and the device tree, making various
> +	 * assumptions about correctness.
> +	 *
> +	 * It doesn't make sense to enable this assumption unless
> +	 * ASSUME_VALID_DTB is also enabled.
> +	 */
> +	ASSUME_VALID_INPUT	=3D 1 << 1,
> +
> +	/*
> +	 * This disables checks for device-tree version and removes all code
> +	 * which handles older versions.
> +	 *
> +	 * Only enable this if you know you have a device tree with the latest
> +	 * version.
> +	 */
> +	ASSUME_LATEST		=3D 1 << 2,
> +
> +	/*
> +	 * This assumes that it is OK for a failed addition to the device tree,
> +	 * due to lack of space or some other problem, to skip any rollback
> +	 * steps (such as dropping the property name from the string table).
> +	 * This is safe to enable in most circumstances, even though it may
> +	 * leave the tree in a sub-optimal state.
> +	 */
> +	ASSUME_NO_ROLLBACK	=3D 1 << 3,
> +
> +	/*
> +	 * This assumes that the device tree components appear in a 'convenient=
'
> +	 * order, i.e. the memory reservation block first, then the structure
> +	 * block and finally the string block.
> +	 *
> +	 * This order is not specified by the device-tree specification,
> +	 * but is expected by libfdt. The device-tree compiler always created
> +	 * device trees with this order.
> +	 *
> +	 * This assumption disables a check in fdt_open_into() and removes the
> +	 * ability to fix the problem there. This is safe if you know that the
> +	 * device tree is correctly ordered. See fdt_blocks_misordered_().
> +	 */
> +	ASSUME_LIBFDT_ORDER	=3D 1 << 4,
> +
> +	/*
> +	 * This assumes that libfdt itself does not have any internal bugs. It
> +	 * drops certain checks that should never be needed unless libfdt has a=
n
> +	 * undiscovered bug.
> +	 *
> +	 * This can generally be considered safe to enable.
> +	 */
> +	ASSUME_LIBFDT_FLAWLESS	=3D 1 << 5,
> +};
> +
> +/**
> + * can_assume_() - check if a particular assumption is enabled
> + *
> + * @mask: Mask to check (ASSUME_...)
> + * @return true if that assumption is enabled, else false
> + */
> +static inline bool can_assume_(int mask)
> +{
> +	return FDT_ASSUME_MASK & mask;
> +}
> +
> +/** helper macros for checking assumptions */
> +#define can_assume(_assume)	can_assume_(ASSUME_ ## _assume)
> +
> +#endif /* LIBFDT_INTERNAL_H */
> diff --git a/xen/common/libfdt/version.lds b/xen/common/libfdt/version.ld=
s
> index 80b322b..7ab85f1 100644
> --- a/xen/common/libfdt/version.lds
> +++ b/xen/common/libfdt/version.lds
> @@ -1,3 +1,4 @@
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> LIBFDT_1.2 {
> 	global:
> 		fdt_next_node;
> @@ -8,6 +9,7 @@ LIBFDT_1.2 {
> 		fdt_get_mem_rsv;
> 		fdt_subnode_offset_namelen;
> 		fdt_subnode_offset;
> +		fdt_path_offset_namelen;
> 		fdt_path_offset;
> 		fdt_get_name;
> 		fdt_get_property_namelen;
> @@ -18,6 +20,7 @@ LIBFDT_1.2 {
> 		fdt_get_alias_namelen;
> 		fdt_get_alias;
> 		fdt_get_path;
> +                fdt_header_size;
> 		fdt_supernode_atdepth_offset;
> 		fdt_node_depth;
> 		fdt_parent_offset;
> @@ -54,7 +57,26 @@ LIBFDT_1.2 {
> 		fdt_get_property_by_offset;
> 		fdt_getprop_by_offset;
> 		fdt_next_property_offset;
> -
> +		fdt_first_subnode;
> +		fdt_next_subnode;
> +		fdt_address_cells;
> +		fdt_size_cells;
> +		fdt_stringlist_contains;
> +		fdt_stringlist_count;
> +		fdt_stringlist_search;
> +		fdt_stringlist_get;
> +		fdt_resize;
> +		fdt_overlay_apply;
> +		fdt_get_string;
> +		fdt_find_max_phandle;
> +		fdt_generate_phandle;
> +		fdt_check_full;
> +		fdt_setprop_placeholder;
> +		fdt_property_placeholder;
> +		fdt_header_size_;
> +		fdt_appendprop_addrrange;
> +		fdt_setprop_inplace_namelen_partial;
> +		fdt_create_with_flags;
> 	local:
> 		*;
> };
> diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
> index f460b0d..f2e6880 100644
> --- a/xen/include/xen/libfdt/fdt.h
> +++ b/xen/include/xen/libfdt/fdt.h
> @@ -1,53 +1,10 @@
> -#ifndef _FDT_H
> -#define _FDT_H
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> +#ifndef FDT_H
> +#define FDT_H
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
>  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
>=20
> #ifndef __ASSEMBLY__
> @@ -106,4 +63,4 @@ struct fdt_property {
> #define FDT_V16_SIZE	FDT_V3_SIZE
> #define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(fdt32_t))
>=20
> -#endif /* _FDT_H */
> +#endif /* FDT_H */
> diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/lib=
fdt.h
> index 7c75688..c71689e 100644
> --- a/xen/include/xen/libfdt/libfdt.h
> +++ b/xen/include/xen/libfdt/libfdt.h
> @@ -1,65 +1,27 @@
> -#ifndef _LIBFDT_H
> -#define _LIBFDT_H
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> +#ifndef LIBFDT_H
> +#define LIBFDT_H
> /*
>  * libfdt - Flat Device Tree manipulation
>  * Copyright (C) 2006 David Gibson, IBM Corporation.
> - *
> - * libfdt is dual licensed: you can use it either under the terms of
> - * the GPL, or the BSD license, at your option.
> - *
> - *  a) This library is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of th=
e
> - *     License, or (at your option) any later version.
> - *
> - *     This library is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - *     You should have received a copy of the GNU General Public
> - *     License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> - *
> - * Alternatively,
> - *
> - *  b) Redistribution and use in source and binary forms, with or
> - *     without modification, are permitted provided that the following
> - *     conditions are met:
> - *
> - *     1. Redistributions of source code must retain the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer.
> - *     2. Redistributions in binary form must reproduce the above
> - *        copyright notice, this list of conditions and the following
> - *        disclaimer in the documentation and/or other materials
> - *        provided with the distribution.
> - *
> - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
>=20
> #include <xen/libfdt/libfdt_env.h>
> #include <xen/libfdt/fdt.h>
>=20
> -#define FDT_FIRST_SUPPORTED_VERSION	0x10
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +#define FDT_FIRST_SUPPORTED_VERSION	0x02
> +#define FDT_LAST_COMPATIBLE_VERSION 0x10
> #define FDT_LAST_SUPPORTED_VERSION	0x11
>=20
> /* Error codes: informative error codes */
> #define FDT_ERR_NOTFOUND	1
> 	/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
> #define FDT_ERR_EXISTS		2
> -	/* FDT_ERR_EXISTS: Attemped to create a node or property which
> +	/* FDT_ERR_EXISTS: Attempted to create a node or property which
> 	 * already exists */
> #define FDT_ERR_NOSPACE		3
> 	/* FDT_ERR_NOSPACE: Operation needed to expand the device
> @@ -77,8 +39,10 @@
> 	 * (e.g. missing a leading / for a function which requires an
> 	 * absolute path) */
> #define FDT_ERR_BADPHANDLE	6
> -	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle
> -	 * value.  phandle values of 0 and -1 are not permitted. */
> +	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
> +	 * This can be caused either by an invalid phandle property
> +	 * length, or the phandle value was either 0 or -1, which are
> +	 * not permitted. */
> #define FDT_ERR_BADSTATE	7
> 	/* FDT_ERR_BADSTATE: Function was passed an incomplete device
> 	 * tree created by the sequential-write functions, which is
> @@ -86,8 +50,9 @@
>=20
> /* Error codes: codes for bad device tree blobs */
> #define FDT_ERR_TRUNCATED	8
> -	/* FDT_ERR_TRUNCATED: Structure block of the given device tree
> -	 * ends without an FDT_END tag. */
> +	/* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
> +	 * terminated (overflows, goes outside allowed bounds, or
> +	 * isn't properly terminated).  */
> #define FDT_ERR_BADMAGIC	9
> 	/* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
> 	 * device tree at all - it is missing the flattened device
> @@ -114,13 +79,46 @@
> 	 * Should never be returned, if it is, it indicates a bug in
> 	 * libfdt itself. */
>=20
> -#define FDT_ERR_MAX		13
> +/* Errors in device tree content */
> +#define FDT_ERR_BADNCELLS	14
> +	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
> +	 * or similar property with a bad format or value */
> +
> +#define FDT_ERR_BADVALUE	15
> +	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
> +	 * value. For example: a property expected to contain a string list
> +	 * is not NUL-terminated within the length of its value. */
> +
> +#define FDT_ERR_BADOVERLAY	16
> +	/* FDT_ERR_BADOVERLAY: The device tree overlay, while
> +	 * correctly structured, cannot be applied due to some
> +	 * unexpected or missing value, property or node. */
> +
> +#define FDT_ERR_NOPHANDLES	17
> +	/* FDT_ERR_NOPHANDLES: The device tree doesn't have any
> +	 * phandle available anymore without causing an overflow */
> +
> +#define FDT_ERR_BADFLAGS	18
> +	/* FDT_ERR_BADFLAGS: The function was passed a flags field that
> +	 * contains invalid flags or an invalid combination of flags. */
> +
> +#define FDT_ERR_ALIGNMENT	19
> +	/* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
> +	 * aligned. */
> +
> +#define FDT_ERR_MAX		19
> +
> +/* constants */
> +#define FDT_MAX_PHANDLE 0xfffffffe
> +	/* Valid values for phandles range from 1 to 2^32-2. */
>=20
> /**********************************************************************/
> /* Low-level functions (you probably don't need these)                */
> /**********************************************************************/
>=20
> +#ifndef SWIG /* This function is not useful in Python */
> const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int chec=
klen);
> +#endif
> static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
> {
> 	return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
> @@ -128,6 +126,59 @@ static inline void *fdt_offset_ptr_w(void *fdt, int =
offset, int checklen)
>=20
> uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
>=20
> +/*
> + * External helpers to access words from a device tree blob. They're bui=
lt
> + * to work even with unaligned pointers on platforms (such as ARMv5) tha=
t don't
> + * like unaligned loads and stores.
> + */
> +static inline uint32_t fdt32_ld(const fdt32_t *p)
> +{
> +	const uint8_t *bp =3D (const uint8_t *)p;
> +
> +	return ((uint32_t)bp[0] << 24)
> +		| ((uint32_t)bp[1] << 16)
> +		| ((uint32_t)bp[2] << 8)
> +		| bp[3];
> +}
> +
> +static inline void fdt32_st(void *property, uint32_t value)
> +{
> +	uint8_t *bp =3D (uint8_t *)property;
> +
> +	bp[0] =3D value >> 24;
> +	bp[1] =3D (value >> 16) & 0xff;
> +	bp[2] =3D (value >> 8) & 0xff;
> +	bp[3] =3D value & 0xff;
> +}
> +
> +static inline uint64_t fdt64_ld(const fdt64_t *p)
> +{
> +	const uint8_t *bp =3D (const uint8_t *)p;
> +
> +	return ((uint64_t)bp[0] << 56)
> +		| ((uint64_t)bp[1] << 48)
> +		| ((uint64_t)bp[2] << 40)
> +		| ((uint64_t)bp[3] << 32)
> +		| ((uint64_t)bp[4] << 24)
> +		| ((uint64_t)bp[5] << 16)
> +		| ((uint64_t)bp[6] << 8)
> +		| bp[7];
> +}
> +
> +static inline void fdt64_st(void *property, uint64_t value)
> +{
> +	uint8_t *bp =3D (uint8_t *)property;
> +
> +	bp[0] =3D value >> 56;
> +	bp[1] =3D (value >> 48) & 0xff;
> +	bp[2] =3D (value >> 40) & 0xff;
> +	bp[3] =3D (value >> 32) & 0xff;
> +	bp[4] =3D (value >> 24) & 0xff;
> +	bp[5] =3D (value >> 16) & 0xff;
> +	bp[6] =3D (value >> 8) & 0xff;
> +	bp[7] =3D value & 0xff;
> +}
> +
> /**********************************************************************/
> /* Traversal functions                                                */
> /**********************************************************************/
> @@ -136,74 +187,118 @@ int fdt_next_node(const void *fdt, int offset, int=
 *depth);
>=20
> /**
>  * fdt_first_subnode() - get offset of first direct subnode
> - *
>  * @fdt:	FDT blob
>  * @offset:	Offset of node to check
> - * @return offset of first subnode, or -FDT_ERR_NOTFOUND if there is non=
e
> + *
> + * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is non=
e
>  */
> int fdt_first_subnode(const void *fdt, int offset);
>=20
> /**
>  * fdt_next_subnode() - get offset of next direct subnode
> + * @fdt:	FDT blob
> + * @offset:	Offset of previous subnode
>  *
>  * After first calling fdt_first_subnode(), call this function repeatedly=
 to
>  * get direct subnodes of a parent node.
>  *
> - * @fdt:	FDT blob
> - * @offset:	Offset of previous subnode
> - * @return offset of next subnode, or -FDT_ERR_NOTFOUND if there are no =
more
> - * subnodes
> + * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no =
more
> + *         subnodes
>  */
> int fdt_next_subnode(const void *fdt, int offset);
>=20
> +/**
> + * fdt_for_each_subnode - iterate over all subnodes of a parent
> + *
> + * @node:	child node (int, lvalue)
> + * @fdt:	FDT blob (const void *)
> + * @parent:	parent node (int)
> + *
> + * This is actually a wrapper around a for loop and would be used like s=
o:
> + *
> + *	fdt_for_each_subnode(node, fdt, parent) {
> + *		Use node
> + *		...
> + *	}
> + *
> + *	if ((node < 0) && (node !=3D -FDT_ERR_NOTFOUND)) {
> + *		Error handling
> + *	}
> + *
> + * Note that this is implemented as a macro and @node is used as
> + * iterator in the loop. The parent variable be constant or even a
> + * literal.
> + */
> +#define fdt_for_each_subnode(node, fdt, parent)		\
> +	for (node =3D fdt_first_subnode(fdt, parent);	\
> +	     node >=3D 0;					\
> +	     node =3D fdt_next_subnode(fdt, node))
> +
> /**********************************************************************/
> /* General functions                                                  */
> /**********************************************************************/
> -
> #define fdt_get_header(fdt, field) \
> -	(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))
> -#define fdt_magic(fdt) 			(fdt_get_header(fdt, magic))
> +	(fdt32_ld(&((const struct fdt_header *)(fdt))->field))
> +#define fdt_magic(fdt)			(fdt_get_header(fdt, magic))
> #define fdt_totalsize(fdt)		(fdt_get_header(fdt, totalsize))
> #define fdt_off_dt_struct(fdt)		(fdt_get_header(fdt, off_dt_struct))
> #define fdt_off_dt_strings(fdt)		(fdt_get_header(fdt, off_dt_strings))
> #define fdt_off_mem_rsvmap(fdt)		(fdt_get_header(fdt, off_mem_rsvmap))
> #define fdt_version(fdt)		(fdt_get_header(fdt, version))
> -#define fdt_last_comp_version(fdt) 	(fdt_get_header(fdt, last_comp_versi=
on))
> -#define fdt_boot_cpuid_phys(fdt) 	(fdt_get_header(fdt, boot_cpuid_phys))
> -#define fdt_size_dt_strings(fdt) 	(fdt_get_header(fdt, size_dt_strings))
> +#define fdt_last_comp_version(fdt)	(fdt_get_header(fdt, last_comp_versio=
n))
> +#define fdt_boot_cpuid_phys(fdt)	(fdt_get_header(fdt, boot_cpuid_phys))
> +#define fdt_size_dt_strings(fdt)	(fdt_get_header(fdt, size_dt_strings))
> #define fdt_size_dt_struct(fdt)		(fdt_get_header(fdt, size_dt_struct))
>=20
> -#define __fdt_set_hdr(name) \
> +#define fdt_set_hdr_(name) \
> 	static inline void fdt_set_##name(void *fdt, uint32_t val) \
> 	{ \
> -		struct fdt_header *fdth =3D (struct fdt_header*)fdt; \
> +		struct fdt_header *fdth =3D (struct fdt_header *)fdt; \
> 		fdth->name =3D cpu_to_fdt32(val); \
> 	}
> -__fdt_set_hdr(magic);
> -__fdt_set_hdr(totalsize);
> -__fdt_set_hdr(off_dt_struct);
> -__fdt_set_hdr(off_dt_strings);
> -__fdt_set_hdr(off_mem_rsvmap);
> -__fdt_set_hdr(version);
> -__fdt_set_hdr(last_comp_version);
> -__fdt_set_hdr(boot_cpuid_phys);
> -__fdt_set_hdr(size_dt_strings);
> -__fdt_set_hdr(size_dt_struct);
> -#undef __fdt_set_hdr
> -
> -/**
> - * fdt_check_header - sanity check a device tree or possible device tree
> +fdt_set_hdr_(magic);
> +fdt_set_hdr_(totalsize);
> +fdt_set_hdr_(off_dt_struct);
> +fdt_set_hdr_(off_dt_strings);
> +fdt_set_hdr_(off_mem_rsvmap);
> +fdt_set_hdr_(version);
> +fdt_set_hdr_(last_comp_version);
> +fdt_set_hdr_(boot_cpuid_phys);
> +fdt_set_hdr_(size_dt_strings);
> +fdt_set_hdr_(size_dt_struct);
> +#undef fdt_set_hdr_
> +
> +/**
> + * fdt_header_size - return the size of the tree's header
> + * @fdt: pointer to a flattened device tree
> + *
> + * Return: size of DTB header in bytes
> + */
> +size_t fdt_header_size(const void *fdt);
> +
> +/**
> + * fdt_header_size_ - internal function to get header size from a versio=
n number
> + * @version: devicetree version number
> + *
> + * Return: size of DTB header in bytes
> + */
> +size_t fdt_header_size_(uint32_t version);
> +
> +/**
> + * fdt_check_header - sanity check a device tree header
>  * @fdt: pointer to data which might be a flattened device tree
>  *
>  * fdt_check_header() checks that the given buffer contains what
> - * appears to be a flattened device tree with sane information in its
> - * header.
> + * appears to be a flattened device tree, and that the header contains
> + * valid information (to the extent that can be determined from the
> + * header alone).
>  *
>  * returns:
>  *     0, if the buffer appears to contain a valid device tree
>  *     -FDT_ERR_BADMAGIC,
>  *     -FDT_ERR_BADVERSION,
> - *     -FDT_ERR_BADSTATE, standard meanings, as above
> + *     -FDT_ERR_BADSTATE,
> + *     -FDT_ERR_TRUNCATED, standard meanings, as above
>  */
> int fdt_check_header(const void *fdt);
>=20
> @@ -232,6 +327,24 @@ int fdt_move(const void *fdt, void *buf, int bufsize=
);
> /* Read-only functions                                                */
> /**********************************************************************/
>=20
> +int fdt_check_full(const void *fdt, size_t bufsize);
> +
> +/**
> + * fdt_get_string - retrieve a string from the strings block of a device=
 tree
> + * @fdt: pointer to the device tree blob
> + * @stroffset: offset of the string within the strings block (native end=
ian)
> + * @lenp: optional pointer to return the string's length
> + *
> + * fdt_get_string() retrieves a pointer to a single string from the
> + * strings block of the device tree blob at fdt, and optionally also
> + * returns the string's length in *lenp.
> + *
> + * returns:
> + *     a pointer to the string, on success
> + *     NULL, if stroffset is out of bounds, or doesn't point to a valid =
string
> + */
> +const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
> +
> /**
>  * fdt_string - retrieve a string from the strings block of a device tree
>  * @fdt: pointer to the device tree blob
> @@ -242,11 +355,66 @@ int fdt_move(const void *fdt, void *buf, int bufsiz=
e);
>  *
>  * returns:
>  *     a pointer to the string, on success
> - *     NULL, if stroffset is out of bounds
> + *     NULL, if stroffset is out of bounds, or doesn't point to a valid =
string
>  */
> const char *fdt_string(const void *fdt, int stroffset);
>=20
> /**
> + * fdt_find_max_phandle - find and return the highest phandle in a tree
> + * @fdt: pointer to the device tree blob
> + * @phandle: return location for the highest phandle value found in the =
tree
> + *
> + * fdt_find_max_phandle() finds the highest phandle value in the given d=
evice
> + * tree. The value returned in @phandle is only valid if the function re=
turns
> + * success.
> + *
> + * returns:
> + *     0 on success or a negative error code on failure
> + */
> +int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
> +
> +/**
> + * fdt_get_max_phandle - retrieves the highest phandle in a tree
> + * @fdt: pointer to the device tree blob
> + *
> + * fdt_get_max_phandle retrieves the highest phandle in the given
> + * device tree. This will ignore badly formatted phandles, or phandles
> + * with a value of 0 or -1.
> + *
> + * This function is deprecated in favour of fdt_find_max_phandle().
> + *
> + * returns:
> + *      the highest phandle on success
> + *      0, if no phandle was found in the device tree
> + *      -1, if an error occurred
> + */
> +static inline uint32_t fdt_get_max_phandle(const void *fdt)
> +{
> +	uint32_t phandle;
> +	int err;
> +
> +	err =3D fdt_find_max_phandle(fdt, &phandle);
> +	if (err < 0)
> +		return (uint32_t)-1;
> +
> +	return phandle;
> +}
> +
> +/**
> + * fdt_generate_phandle - return a new, unused phandle for a device tree=
 blob
> + * @fdt: pointer to the device tree blob
> + * @phandle: return location for the new phandle
> + *
> + * Walks the device tree blob and looks for the highest phandle value. O=
n
> + * success, the new, unused phandle value (one higher than the previousl=
y
> + * highest phandle value in the device tree blob) will be returned in th=
e
> + * @phandle parameter.
> + *
> + * Return: 0 on success or a negative error-code on failure
> + */
> +int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
> +
> +/**
>  * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
>  * @fdt: pointer to the device tree blob
>  *
> @@ -262,9 +430,11 @@ int fdt_num_mem_rsv(const void *fdt);
> /**
>  * fdt_get_mem_rsv - retrieve one memory reserve map entry
>  * @fdt: pointer to the device tree blob
> - * @address, @size: pointers to 64-bit variables
> + * @n: index of reserve map entry
> + * @address: pointer to 64-bit variable to hold the start address
> + * @size: pointer to 64-bit variable to hold the size of the entry
>  *
> - * On success, *address and *size will contain the address and size of
> + * On success, @address and @size will contain the address and size of
>  * the n-th reserve map entry from the device tree blob, in
>  * native-endian format.
>  *
> @@ -287,9 +457,13 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t=
 *address, uint64_t *size);
>  * namelen characters of name for matching the subnode name.  This is
>  * useful for finding subnodes based on a portion of a larger string,
>  * such as a full path.
> + *
> + * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
>  */
> +#ifndef SWIG /* Not available in Python */
> int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
> 			       const char *name, int namelen);
> +#endif
> /**
>  * fdt_subnode_offset - find a subnode of a given node
>  * @fdt: pointer to the device tree blob
> @@ -306,8 +480,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int p=
arentoffset,
>  * returns:
>  *	structure block offset of the requested subnode (>=3D0), on success
>  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
> - *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NOD=
E tag
> - *      -FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NOD=
E
> + *		tag
> + *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
>  *	-FDT_ERR_BADSTRUCTURE,
> @@ -316,6 +491,21 @@ int fdt_subnode_offset_namelen(const void *fdt, int =
parentoffset,
> int fdt_subnode_offset(const void *fdt, int parentoffset, const char *nam=
e);
>=20
> /**
> + * fdt_path_offset_namelen - find a tree node by its full path
> + * @fdt: pointer to the device tree blob
> + * @path: full path of the node to locate
> + * @namelen: number of characters of path to consider
> + *
> + * Identical to fdt_path_offset(), but only consider the first namelen
> + * characters of path as the path name.
> + *
> + * Return: offset of the node or negative libfdt error value otherwise
> + */
> +#ifndef SWIG /* Not available in Python */
> +int fdt_path_offset_namelen(const void *fdt, const char *path, int namel=
en);
> +#endif
> +
> +/**
>  * fdt_path_offset - find a tree node by its full path
>  * @fdt: pointer to the device tree blob
>  * @path: full path of the node to locate
> @@ -328,7 +518,8 @@ int fdt_subnode_offset(const void *fdt, int parentoff=
set, const char *name);
>  * address).
>  *
>  * returns:
> - *	structure block offset of the node with the requested path (>=3D0), o=
n success
> + *	structure block offset of the node with the requested path (>=3D0), o=
n
> + *		success
>  *	-FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
>  *	-FDT_ERR_NOTFOUND, if the requested node does not exist
>  *      -FDT_ERR_BADMAGIC,
> @@ -352,10 +543,12 @@ int fdt_path_offset(const void *fdt, const char *pa=
th);
>  *
>  * returns:
>  *	pointer to the node's name, on success
> - *		If lenp is non-NULL, *lenp contains the length of that name (>=3D0)
> + *		If lenp is non-NULL, *lenp contains the length of that name
> + *			(>=3D0)
>  *	NULL, on error
>  *		if lenp is non-NULL *lenp contains an error code (<0):
> - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> + *			tag
>  *		-FDT_ERR_BADMAGIC,
>  *		-FDT_ERR_BADVERSION,
>  *		-FDT_ERR_BADSTATE, standard meanings
> @@ -404,6 +597,33 @@ int fdt_first_property_offset(const void *fdt, int n=
odeoffset);
> int fdt_next_property_offset(const void *fdt, int offset);
>=20
> /**
> + * fdt_for_each_property_offset - iterate over all properties of a node
> + *
> + * @property:	property offset (int, lvalue)
> + * @fdt:	FDT blob (const void *)
> + * @node:	node offset (int)
> + *
> + * This is actually a wrapper around a for loop and would be used like s=
o:
> + *
> + *	fdt_for_each_property_offset(property, fdt, node) {
> + *		Use property
> + *		...
> + *	}
> + *
> + *	if ((property < 0) && (property !=3D -FDT_ERR_NOTFOUND)) {
> + *		Error handling
> + *	}
> + *
> + * Note that this is implemented as a macro and property is used as
> + * iterator in the loop. The node variable can be constant or even a
> + * literal.
> + */
> +#define fdt_for_each_property_offset(property, fdt, node)	\
> +	for (property =3D fdt_first_property_offset(fdt, node);	\
> +	     property >=3D 0;					\
> +	     property =3D fdt_next_property_offset(fdt, property))
> +
> +/**
>  * fdt_get_property_by_offset - retrieve the property at a given offset
>  * @fdt: pointer to the device tree blob
>  * @offset: offset of the property to retrieve
> @@ -414,6 +634,9 @@ int fdt_next_property_offset(const void *fdt, int off=
set);
>  * offset.  If lenp is non-NULL, the length of the property value is
>  * also returned, in the integer pointed to by lenp.
>  *
> + * Note that this code only works on device tree versions >=3D 16. fdt_g=
etprop()
> + * works on all versions.
> + *
>  * returns:
>  *	pointer to the structure representing the property
>  *		if lenp is non-NULL, *lenp contains the length of the property
> @@ -439,13 +662,18 @@ const struct fdt_property *fdt_get_property_by_offs=
et(const void *fdt,
>  * @namelen: number of characters of name to consider
>  * @lenp: pointer to an integer variable (will be overwritten) or NULL
>  *
> - * Identical to fdt_get_property_namelen(), but only examine the first
> - * namelen characters of name for matching the property name.
> + * Identical to fdt_get_property(), but only examine the first namelen
> + * characters of name for matching the property name.
> + *
> + * Return: pointer to the structure representing the property, or NULL
> + *         if not found
>  */
> +#ifndef SWIG /* Not available in Python */
> const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> 						    int nodeoffset,
> 						    const char *name,
> 						    int namelen, int *lenp);
> +#endif
>=20
> /**
>  * fdt_get_property - find a given property in a given node
> @@ -467,7 +695,8 @@ const struct fdt_property *fdt_get_property_namelen(c=
onst void *fdt,
>  *	NULL, on error
>  *		if lenp is non-NULL, *lenp contains an error code (<0):
>  *		-FDT_ERR_NOTFOUND, node does not have named property
> - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> + *			tag
>  *		-FDT_ERR_BADMAGIC,
>  *		-FDT_ERR_BADVERSION,
>  *		-FDT_ERR_BADSTATE,
> @@ -487,7 +716,7 @@ static inline struct fdt_property *fdt_get_property_w=
(void *fdt, int nodeoffset,
> /**
>  * fdt_getprop_by_offset - retrieve the value of a property at a given of=
fset
>  * @fdt: pointer to the device tree blob
> - * @ffset: offset of the property to read
> + * @offset: offset of the property to read
>  * @namep: pointer to a string variable (will be overwritten) or NULL
>  * @lenp: pointer to an integer variable (will be overwritten) or NULL
>  *
> @@ -515,8 +744,10 @@ static inline struct fdt_property *fdt_get_property_=
w(void *fdt, int nodeoffset,
>  *		-FDT_ERR_BADSTRUCTURE,
>  *		-FDT_ERR_TRUNCATED, standard meanings
>  */
> +#ifndef SWIG /* This function is not useful in Python */
> const void *fdt_getprop_by_offset(const void *fdt, int offset,
> 				  const char **namep, int *lenp);
> +#endif
>=20
> /**
>  * fdt_getprop_namelen - get property value based on substring
> @@ -528,9 +759,20 @@ const void *fdt_getprop_by_offset(const void *fdt, i=
nt offset,
>  *
>  * Identical to fdt_getprop(), but only examine the first namelen
>  * characters of name for matching the property name.
> + *
> + * Return: pointer to the property's value or NULL on error
>  */
> +#ifndef SWIG /* Not available in Python */
> const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> 				const char *name, int namelen, int *lenp);
> +static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
> +					  const char *name, int namelen,
> +					  int *lenp)
> +{
> +	return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
> +						      namelen, lenp);
> +}
> +#endif
>=20
> /**
>  * fdt_getprop - retrieve the value of a given property
> @@ -540,10 +782,10 @@ const void *fdt_getprop_namelen(const void *fdt, in=
t nodeoffset,
>  * @lenp: pointer to an integer variable (will be overwritten) or NULL
>  *
>  * fdt_getprop() retrieves a pointer to the value of the property
> - * named 'name' of the node at offset nodeoffset (this will be a
> + * named @name of the node at offset @nodeoffset (this will be a
>  * pointer to within the device blob itself, not a copy of the value).
> - * If lenp is non-NULL, the length of the property value is also
> - * returned, in the integer pointed to by lenp.
> + * If @lenp is non-NULL, the length of the property value is also
> + * returned, in the integer pointed to by @lenp.
>  *
>  * returns:
>  *	pointer to the property's value
> @@ -552,7 +794,8 @@ const void *fdt_getprop_namelen(const void *fdt, int =
nodeoffset,
>  *	NULL, on error
>  *		if lenp is non-NULL, *lenp contains an error code (<0):
>  *		-FDT_ERR_NOTFOUND, node does not have named property
> - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> + *			tag
>  *		-FDT_ERR_BADMAGIC,
>  *		-FDT_ERR_BADVERSION,
>  *		-FDT_ERR_BADSTATE,
> @@ -587,11 +830,16 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeo=
ffset);
>  * @name: name of the alias th look up
>  * @namelen: number of characters of name to consider
>  *
> - * Identical to fdt_get_alias(), but only examine the first namelen
> - * characters of name for matching the alias name.
> + * Identical to fdt_get_alias(), but only examine the first @namelen
> + * characters of @name for matching the alias name.
> + *
> + * Return: a pointer to the expansion of the alias named @name, if it ex=
ists,
> + *	   NULL otherwise
>  */
> +#ifndef SWIG /* Not available in Python */
> const char *fdt_get_alias_namelen(const void *fdt,
> 				  const char *name, int namelen);
> +#endif
>=20
> /**
>  * fdt_get_alias - retrieve the path referenced by a given alias
> @@ -599,7 +847,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
>  * @name: name of the alias th look up
>  *
>  * fdt_get_alias() retrieves the value of a given alias.  That is, the
> - * value of the property named 'name' in the node /aliases.
> + * value of the property named @name in the node /aliases.
>  *
>  * returns:
>  *	a pointer to the expansion of the alias named 'name', if it exists
> @@ -624,7 +872,7 @@ const char *fdt_get_alias(const void *fdt, const char=
 *name);
>  *	0, on success
>  *		buf contains the absolute path of the node at
>  *		nodeoffset, as a NUL-terminated string.
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1=
)
>  *		characters and will not fit in the given buffer.
>  *	-FDT_ERR_BADMAGIC,
> @@ -654,11 +902,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, c=
har *buf, int buflen);
>  * structure from the start to nodeoffset.
>  *
>  * returns:
> -
>  *	structure block offset of the node at node offset's ancestor
>  *		of depth supernodedepth (>=3D0), on success
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> -*	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeof=
fset
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
> + *		nodeoffset
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -680,7 +928,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int=
 nodeoffset,
>  *
>  * returns:
>  *	depth of the node at nodeoffset (>=3D0), on success
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -703,7 +951,7 @@ int fdt_node_depth(const void *fdt, int nodeoffset);
>  * returns:
>  *	structure block offset of the parent of the node at nodeoffset
>  *		(>=3D0), on success
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -743,7 +991,7 @@ int fdt_parent_offset(const void *fdt, int nodeoffset=
);
>  *		 on success
>  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
>  *		tree after startoffset
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -775,14 +1023,13 @@ int fdt_node_offset_by_prop_value(const void *fdt,=
 int startoffset,
> int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
>=20
> /**
> - * fdt_node_check_compatible: check a node's compatible property
> + * fdt_node_check_compatible - check a node's compatible property
>  * @fdt: pointer to the device tree blob
>  * @nodeoffset: offset of a tree node
>  * @compatible: string to match against
>  *
> - *
>  * fdt_node_check_compatible() returns 0 if the given node contains a
> - * 'compatible' property with the given string as one of its elements,
> + * @compatible property with the given string as one of its elements,
>  * it returns non-zero otherwise, or on error.
>  *
>  * returns:
> @@ -790,7 +1037,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint=
32_t phandle);
>  *	1, if the node has a 'compatible' property, but it does not list
>  *		the given string
>  *	-FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
> - * 	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -827,7 +1074,7 @@ int fdt_node_check_compatible(const void *fdt, int n=
odeoffset,
>  *		 on success
>  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
>  *		tree after startoffset
> - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
>  *	-FDT_ERR_BADMAGIC,
>  *	-FDT_ERR_BADVERSION,
>  *	-FDT_ERR_BADSTATE,
> @@ -846,15 +1093,160 @@ int fdt_node_offset_by_compatible(const void *fdt=
, int startoffset,
>  * one or more strings, each terminated by \0, as is found in a device tr=
ee
>  * "compatible" property.
>  *
> - * @return: 1 if the string is found in the list, 0 not found, or invali=
d list
> + * Return: 1 if the string is found in the list, 0 not found, or invalid=
 list
>  */
> int fdt_stringlist_contains(const char *strlist, int listlen, const char =
*str);
>=20
> +/**
> + * fdt_stringlist_count - count the number of strings in a string list
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of a tree node
> + * @property: name of the property containing the string list
> + *
> + * Return:
> + *   the number of strings in the given property
> + *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> + *   -FDT_ERR_NOTFOUND if the property does not exist
> + */
> +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *pr=
operty);
> +
> +/**
> + * fdt_stringlist_search - find a string in a string list and return its=
 index
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of a tree node
> + * @property: name of the property containing the string list
> + * @string: string to look up in the string list
> + *
> + * Note that it is possible for this function to succeed on property val=
ues
> + * that are not NUL-terminated. That's because the function will stop af=
ter
> + * finding the first occurrence of @string. This can for example happen =
with
> + * small-valued cell properties, such as #address-cells, when searching =
for
> + * the empty string.
> + *
> + * return:
> + *   the index of the string in the list of strings
> + *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> + *   -FDT_ERR_NOTFOUND if the property does not exist or does not contai=
n
> + *                     the given string
> + */
> +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *p=
roperty,
> +			  const char *string);
> +
> +/**
> + * fdt_stringlist_get() - obtain the string at a given index in a string=
 list
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of a tree node
> + * @property: name of the property containing the string list
> + * @index: index of the string to return
> + * @lenp: return location for the string length or an error code on fail=
ure
> + *
> + * Note that this will successfully extract strings from properties with
> + * non-NUL-terminated values. For example on small-valued cell propertie=
s
> + * this function will return the empty string.
> + *
> + * If non-NULL, the length of the string (on success) or a negative erro=
r-code
> + * (on failure) will be stored in the integer pointer to by lenp.
> + *
> + * Return:
> + *   A pointer to the string at the given index in the string list or NU=
LL on
> + *   failure. On success the length of the string will be stored in the =
memory
> + *   location pointed to by the lenp parameter, if non-NULL. On failure =
one of
> + *   the following negative error codes will be returned in the lenp par=
ameter
> + *   (if non-NULL):
> + *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> + *     -FDT_ERR_NOTFOUND if the property does not exist
> + */
> +const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
> +			       const char *property, int index,
> +			       int *lenp);
> +
> +/**********************************************************************/
> +/* Read-only functions (addressing related)                           */
> +/**********************************************************************/
> +
> +/**
> + * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
> + *
> + * This is the maximum value for #address-cells, #size-cells and
> + * similar properties that will be processed by libfdt.  IEE1275
> + * requires that OF implementations handle values up to 4.
> + * Implementations may support larger values, but in practice higher
> + * values aren't used.
> + */
> +#define FDT_MAX_NCELLS		4
> +
> +/**
> + * fdt_address_cells - retrieve address size for a bus represented in th=
e tree
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node to find the address size for
> + *
> + * When the node has a valid #address-cells property, returns its value.
> + *
> + * returns:
> + *	0 <=3D n < FDT_MAX_NCELLS, on success
> + *      2, if the node has no #address-cells property
> + *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> + *		#address-cells property
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_address_cells(const void *fdt, int nodeoffset);
> +
> +/**
> + * fdt_size_cells - retrieve address range size for a bus represented in=
 the
> + *                  tree
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node to find the address range size for
> + *
> + * When the node has a valid #size-cells property, returns its value.
> + *
> + * returns:
> + *	0 <=3D n < FDT_MAX_NCELLS, on success
> + *      1, if the node has no #size-cells property
> + *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> + *		#size-cells property
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_size_cells(const void *fdt, int nodeoffset);
> +
> +
> /**********************************************************************/
> /* Write-in-place functions                                           */
> /**********************************************************************/
>=20
> /**
> + * fdt_setprop_inplace_namelen_partial - change a property's value,
> + *                                       but not its size
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + * @namelen: number of characters of name to consider
> + * @idx: index of the property to change in the array
> + * @val: pointer to data to replace the property value with
> + * @len: length of the property value
> + *
> + * Identical to fdt_setprop_inplace(), but modifies the given property
> + * starting from the given index, and using only the first characters
> + * of the name. It is useful when you want to manipulate only one value =
of
> + * an array and you have a string that doesn't end with \0.
> + *
> + * Return: 0 on success, negative libfdt error value otherwise
> + */
> +#ifndef SWIG /* Not available in Python */
> +int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
> +					const char *name, int namelen,
> +					uint32_t idx, const void *val,
> +					int len);
> +#endif
> +
> +/**
>  * fdt_setprop_inplace - change a property's value, but not its size
>  * @fdt: pointer to the device tree blob
>  * @nodeoffset: offset of the node whose property to change
> @@ -882,8 +1274,10 @@ int fdt_stringlist_contains(const char *strlist, in=
t listlen, const char *str);
>  *	-FDT_ERR_BADSTRUCTURE,
>  *	-FDT_ERR_TRUNCATED, standard meanings
>  */
> +#ifndef SWIG /* Not available in Python */
> int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
> 			const void *val, int len);
> +#endif
>=20
> /**
>  * fdt_setprop_inplace_u32 - change the value of a 32-bit integer propert=
y
> @@ -957,8 +1351,13 @@ static inline int fdt_setprop_inplace_u64(void *fdt=
, int nodeoffset,
>=20
> /**
>  * fdt_setprop_inplace_cell - change the value of a single-cell property
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node containing the property
> + * @name: name of the property to change the value of
> + * @val: new value of the 32-bit cell
>  *
>  * This is an alternative name for fdt_setprop_inplace_u32()
> + * Return: 0 on success, negative libfdt error number otherwise.
>  */
> static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
> 					   const char *name, uint32_t val)
> @@ -1020,7 +1419,46 @@ int fdt_nop_node(void *fdt, int nodeoffset);
> /* Sequential write functions                                         */
> /**********************************************************************/
>=20
> +/* fdt_create_with_flags flags */
> +#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
> +	/* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
> +	 * names in the fdt. This can result in faster creation times, but
> +	 * a larger fdt. */
> +
> +#define FDT_CREATE_FLAGS_ALL	(FDT_CREATE_FLAG_NO_NAME_DEDUP)
> +
> +/**
> + * fdt_create_with_flags - begin creation of a new fdt
> + * @buf: pointer to memory allocated where fdt will be created
> + * @bufsize: size of the memory space at fdt
> + * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
> + *
> + * fdt_create_with_flags() begins the process of creating a new fdt with
> + * the sequential write interface.
> + *
> + * fdt creation process must end with fdt_finished() to produce a valid =
fdt.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
> + *	-FDT_ERR_BADFLAGS, flags is not valid
> + */
> +int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
> +
> +/**
> + * fdt_create - begin creation of a new fdt
> + * @buf: pointer to memory allocated where fdt will be created
> + * @bufsize: size of the memory space at fdt
> + *
> + * fdt_create() is equivalent to fdt_create_with_flags() with flags=3D0.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
> + */
> int fdt_create(void *buf, int bufsize);
> +
> +int fdt_resize(void *fdt, void *buf, int bufsize);
> int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
> int fdt_finish_reservemap(void *fdt);
> int fdt_begin_node(void *fdt, const char *name);
> @@ -1035,10 +1473,29 @@ static inline int fdt_property_u64(void *fdt, con=
st char *name, uint64_t val)
> 	fdt64_t tmp =3D cpu_to_fdt64(val);
> 	return fdt_property(fdt, name, &tmp, sizeof(tmp));
> }
> +
> +#ifndef SWIG /* Not available in Python */
> static inline int fdt_property_cell(void *fdt, const char *name, uint32_t=
 val)
> {
> 	return fdt_property_u32(fdt, name, val);
> }
> +#endif
> +
> +/**
> + * fdt_property_placeholder - add a new property and return a ptr to its=
 value
> + *
> + * @fdt: pointer to the device tree blob
> + * @name: name of property to add
> + * @len: length of property value in bytes
> + * @valp: returns a pointer to where where the value should be placed
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_NOSPACE, standard meanings
> + */
> +int fdt_property_placeholder(void *fdt, const char *name, int len, void =
**valp);
> +
> #define fdt_property_string(fdt, name, str) \
> 	fdt_property(fdt, name, str, strlen(str)+1)
> int fdt_end_node(void *fdt);
> @@ -1055,7 +1512,8 @@ int fdt_pack(void *fdt);
> /**
>  * fdt_add_mem_rsv - add one memory reserve map entry
>  * @fdt: pointer to the device tree blob
> - * @address, @size: 64-bit values (native endian)
> + * @address: 64-bit start address of the reserve map entry
> + * @size: 64-bit size of the reserved region
>  *
>  * Adds a reserve map entry to the given blob reserving a region at
>  * address address of length size.
> @@ -1158,6 +1616,37 @@ int fdt_setprop(void *fdt, int nodeoffset, const c=
har *name,
> 		const void *val, int len);
>=20
> /**
> + * fdt_setprop_placeholder - allocate space for a property
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + * @len: length of the property value
> + * @prop_data: return pointer to property data
> + *
> + * fdt_setprop_placeholer() allocates the named property in the given no=
de.
> + * If the property exists it is resized. In either case a pointer to the
> + * property data is returned.
> + *
> + * This function may insert or delete data from the blob, and will
> + * therefore change the offsets of some existing nodes.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> + *		contain the new property value
> + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
> +			    int len, void **prop_data);
> +
> +/**
>  * fdt_setprop_u32 - set a property to a 32-bit integer
>  * @fdt: pointer to the device tree blob
>  * @nodeoffset: offset of the node whose property to change
> @@ -1229,8 +1718,14 @@ static inline int fdt_setprop_u64(void *fdt, int n=
odeoffset, const char *name,
>=20
> /**
>  * fdt_setprop_cell - set a property to a single cell value
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + * @val: 32-bit integer value for the property (native endian)
>  *
>  * This is an alternative name for fdt_setprop_u32()
> + *
> + * Return: 0 on success, negative libfdt error value otherwise.
>  */
> static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char =
*name,
> 				   uint32_t val)
> @@ -1269,6 +1764,36 @@ static inline int fdt_setprop_cell(void *fdt, int =
nodeoffset, const char *name,
> #define fdt_setprop_string(fdt, nodeoffset, name, str) \
> 	fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
>=20
> +
> +/**
> + * fdt_setprop_empty - set a property to an empty value
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + *
> + * fdt_setprop_empty() sets the value of the named property in the
> + * given node to an empty (zero length) value, or creates a new empty
> + * property if it does not already exist.
> + *
> + * This function may insert or delete data from the blob, and will
> + * therefore change the offsets of some existing nodes.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> + *		contain the new property value
> + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +#define fdt_setprop_empty(fdt, nodeoffset, name) \
> +	fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
> +
> /**
>  * fdt_appendprop - append to or create a property
>  * @fdt: pointer to the device tree blob
> @@ -1371,8 +1896,14 @@ static inline int fdt_appendprop_u64(void *fdt, in=
t nodeoffset,
>=20
> /**
>  * fdt_appendprop_cell - append a single cell value to a property
> + * @fdt: pointer to the device tree blob
> + * @nodeoffset: offset of the node whose property to change
> + * @name: name of the property to change
> + * @val: 32-bit integer value to append to the property (native endian)
>  *
>  * This is an alternative name for fdt_appendprop_u32()
> + *
> + * Return: 0 on success, negative libfdt error value otherwise.
>  */
> static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
> 				      const char *name, uint32_t val)
> @@ -1411,6 +1942,43 @@ static inline int fdt_appendprop_cell(void *fdt, i=
nt nodeoffset,
> 	fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
>=20
> /**
> + * fdt_appendprop_addrrange - append a address range property
> + * @fdt: pointer to the device tree blob
> + * @parent: offset of the parent node
> + * @nodeoffset: offset of the node to add a property at
> + * @name: name of property
> + * @addr: start address of a given range
> + * @size: size of a given range
> + *
> + * fdt_appendprop_addrrange() appends an address range value (start
> + * address and size) to the value of the named property in the given
> + * node, or creates a new property with that value if it does not
> + * already exist.
> + * If "name" is not specified, a default "reg" is used.
> + * Cell sizes are determined by parent's #address-cells and #size-cells.
> + *
> + * This function may insert data into the blob, and will therefore
> + * change the offsets of some existing nodes.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> + *		#address-cells property
> + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
> + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> + *		contain a new property
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
> +			     const char *name, uint64_t addr, uint64_t size);
> +
> +/**
>  * fdt_delprop - delete a property
>  * @fdt: pointer to the device tree blob
>  * @nodeoffset: offset of the node whose property to nop
> @@ -1438,16 +2006,21 @@ int fdt_delprop(void *fdt, int nodeoffset, const =
char *name);
>  * fdt_add_subnode_namelen - creates a new node based on substring
>  * @fdt: pointer to the device tree blob
>  * @parentoffset: structure block offset of a node
> - * @name: name of the subnode to locate
> + * @name: name of the subnode to create
>  * @namelen: number of characters of name to consider
>  *
> - * Identical to fdt_add_subnode(), but use only the first namelen
> - * characters of name as the name of the new node.  This is useful for
> + * Identical to fdt_add_subnode(), but use only the first @namelen
> + * characters of @name as the name of the new node.  This is useful for
>  * creating subnodes based on a portion of a larger string, such as a
>  * full path.
> + *
> + * Return: structure block offset of the created subnode (>=3D0),
> + *	   negative libfdt error value otherwise
>  */
> +#ifndef SWIG /* Not available in Python */
> int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> 			    const char *name, int namelen);
> +#endif
>=20
> /**
>  * fdt_add_subnode - creates a new node
> @@ -1461,11 +2034,13 @@ int fdt_add_subnode_namelen(void *fdt, int parent=
offset,
>  *
>  * This function will insert data into the blob, and will therefore
>  * change the offsets of some existing nodes.
> -
> + *
>  * returns:
> - *	structure block offset of the created nodeequested subnode (>=3D0), o=
n success
> + *	structure block offset of the created nodeequested subnode (>=3D0), o=
n
> + *		success
>  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
> - *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NOD=
E tag
> + *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NOD=
E
> + *		tag
>  *	-FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
>  *		the given name
>  *	-FDT_ERR_NOSPACE, if there is insufficient free space in the
> @@ -1503,10 +2078,45 @@ int fdt_add_subnode(void *fdt, int parentoffset, =
const char *name);
>  */
> int fdt_del_node(void *fdt, int nodeoffset);
>=20
> +/**
> + * fdt_overlay_apply - Applies a DT overlay on a base DT
> + * @fdt: pointer to the base device tree blob
> + * @fdto: pointer to the device tree overlay blob
> + *
> + * fdt_overlay_apply() will apply the given device tree overlay on the
> + * given base device tree.
> + *
> + * Expect the base device tree to be modified, even if the function
> + * returns an error.
> + *
> + * returns:
> + *	0, on success
> + *	-FDT_ERR_NOSPACE, there's not enough space in the base device tree
> + *	-FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
> + *		properties in the base DT
> + *	-FDT_ERR_BADPHANDLE,
> + *	-FDT_ERR_BADOVERLAY,
> + *	-FDT_ERR_NOPHANDLES,
> + *	-FDT_ERR_INTERNAL,
> + *	-FDT_ERR_BADLAYOUT,
> + *	-FDT_ERR_BADMAGIC,
> + *	-FDT_ERR_BADOFFSET,
> + *	-FDT_ERR_BADPATH,
> + *	-FDT_ERR_BADVERSION,
> + *	-FDT_ERR_BADSTRUCTURE,
> + *	-FDT_ERR_BADSTATE,
> + *	-FDT_ERR_TRUNCATED, standard meanings
> + */
> +int fdt_overlay_apply(void *fdt, void *fdto);
> +
> /**********************************************************************/
> /* Debugging / informational functions                                */
> /**********************************************************************/
>=20
> const char *fdt_strerror(int errval);
>=20
> -#endif /* _LIBFDT_H */
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* LIBFDT_H */
> diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt=
/libfdt_env.h
> index 035bf75..8368787 100644
> --- a/xen/include/xen/libfdt/libfdt_env.h
> +++ b/xen/include/xen/libfdt/libfdt_env.h
> @@ -1,22 +1,96 @@
> -#ifndef _LIBFDT_ENV_H
> -#define _LIBFDT_ENV_H
> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> +#ifndef LIBFDT_ENV_H
> +#define LIBFDT_ENV_H
> +/*
> + * libfdt - Flat Device Tree manipulation
> + * Copyright (C) 2006 David Gibson, IBM Corporation.
> + * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> + */
>=20
> #include <xen/types.h>
> #include <xen/string.h>
> #include <asm/byteorder.h>
>=20
> -typedef uint16_t fdt16_t;
> -typedef uint32_t fdt32_t;
> -typedef uint64_t fdt64_t;
> +#ifdef __CHECKER__
> +#define FDT_FORCE __attribute__((force))
> +#define FDT_BITWISE __attribute__((bitwise))
> +#else
> +#define FDT_FORCE
> +#define FDT_BITWISE
> +#endif
>=20
> -#define fdt16_to_cpu(x) be16_to_cpu(x)
> -#define cpu_to_fdt16(x) cpu_to_be16(x)
> -#define fdt32_to_cpu(x) be32_to_cpu(x)
> -#define cpu_to_fdt32(x) cpu_to_be32(x)
> -#define fdt64_to_cpu(x) be64_to_cpu(x)
> -#define cpu_to_fdt64(x) cpu_to_be64(x)
> +typedef uint16_t FDT_BITWISE fdt16_t;
> +typedef uint32_t FDT_BITWISE fdt32_t;
> +typedef uint64_t FDT_BITWISE fdt64_t;
> +
> +#define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
> +#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
> +#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1=
) << 16) | \
> +			 (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
> +#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1=
) << 48) | \
> +			 (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
> +			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
> +			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
>=20
> /* Xen-specific libfdt error code. */
> #define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
>=20
> -#endif /* _LIBFDT_ENV_H */
> +static inline uint16_t fdt16_to_cpu(fdt16_t x)
> +{
> +	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
> +}
> +static inline fdt16_t cpu_to_fdt16(uint16_t x)
> +{
> +	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
> +}
> +
> +static inline uint32_t fdt32_to_cpu(fdt32_t x)
> +{
> +	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
> +}
> +static inline fdt32_t cpu_to_fdt32(uint32_t x)
> +{
> +	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
> +}
> +
> +static inline uint64_t fdt64_to_cpu(fdt64_t x)
> +{
> +	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
> +}
> +static inline fdt64_t cpu_to_fdt64(uint64_t x)
> +{
> +	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
> +}
> +#undef CPU_TO_FDT64
> +#undef CPU_TO_FDT32
> +#undef CPU_TO_FDT16
> +#undef EXTRACT_BYTE
> +
> +#ifdef __APPLE__
> +#include <AvailabilityMacros.h>
> +
> +/* strnlen() is not available on Mac OS < 10.7 */
> +# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < =
\
> +                                         MAC_OS_X_VERSION_10_7)
> +
> +#define strnlen fdt_strnlen
> +
> +/*
> + * fdt_strnlen: returns the length of a string or max_count - which ever=
 is
> + * smallest.
> + * Input 1 string: the string whose size is to be determined
> + * Input 2 max_count: the maximum value returned by this function
> + * Output: length of the string or max_count (the smallest of the two)
> + */
> +static inline size_t fdt_strnlen(const char *string, size_t max_count)
> +{
> +    const char *p =3D memchr(string, 0, max_count);
> +    return p ? p - string : max_count;
> +}
> +
> +#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOW=
ED <
> +          MAC_OS_X_VERSION_10_7) */
> +
> +#endif /* __APPLE__ */
> +
> +#endif /* LIBFDT_ENV_H */
> --=20
> 2.7.4
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 18:28:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 18:28:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225360.389173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbI3-0001qH-5K; Fri, 12 Nov 2021 18:28:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225360.389173; Fri, 12 Nov 2021 18:28:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbI3-0001ol-1I; Fri, 12 Nov 2021 18:28:43 +0000
Received: by outflank-mailman (input) for mailman id 225360;
 Fri, 12 Nov 2021 18:28:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=26E1=P7=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlbI2-0001mj-1B
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 18:28:42 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59da1cbc-43e6-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 19:28:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59da1cbc-43e6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636741719;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=gE6ojH/9khVrVKykrTMSiRo+XcJAwIMNkluytopjuas=;
  b=W5ZgdwGwRyoc6NgkwCy3jIVb5WTb0OXBQ8owlYygafHOrr3cAAVFfxVQ
   mOwR1IdDgwDM+b4eDsWUCQiPX8iN3uPn3AAYAiS7bwmllmB1djrj9UFp/
   4Tr1/GQzQ4ExPIHz871e7XcyRntO0kE8F4PhgpZFBIbzbRnBcwLD7RFN0
   E=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: kWZSW1am1N+hPGsg89ZLrOJu+LkvFAXAI3SXbkDSCvPk9cw8UaXBiYne4tDn0OgiAMlfOIT1/r
 B6pw46GM5Yhlq94NQZi6VD6kIUAIV/106tULner0OisnMa1mghpInWqb5EbuZ4kDXaJgO8JISl
 A9afvxwBt6OhI4MBmFtmcZEktFxJ4q66NHrMCJlTJU9rnmhh5DnlieWlmB/E8cGc46QGgMvbVo
 N2M4n7JSdYYk5uKKkn26zy8Iv/mH07rIhgD/buwE5FLButQFDcTDn2cXP28s38JhPXx6I4OCiF
 UTUYTzxsBFVrcvG1/SiXfMCf
X-SBRS: 5.1
X-MesageID: 57713708
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:AeXwVamO/hUKfHP6FsAYC4Ho5gxMIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIaWWzSOP3bNzOje98lYYq39k9V78WAyodkTAU6rXsxHyMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29cy2YPR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 IhCtJXvRQUvAqvjqugZazkCSANuFKITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQKmBP
 pFGMWoHgBLoOyFRJwdOVLsHrr2kon/jUTxJ736WjP9ii4TU5FMoi+W8WDbPQfSVQe1Fk0Deo
 XjJl0zbKBwHMN2UyRKe72mhwOTImEvTSI8UUbG16PNuqFmS3XAITg0bU0Ohpvu0gVL4XMhQQ
 3H44QJ38/J0rhbyCICgAVvo+xZooyLwRfINHOwztw2PzJbSzDSVAlAkFGVjePUp4ZpeqSMR6
 neFmNbgBDpKubKTSG6A+rr8kQ5eKRT5PkdZO3ZaEFJtD83L5dhq00mRFooL/Lud14WtQVnNL
 ya2QD/Sbln5peoCzO2F8F/OmFpATbCZH1dutm07so9Ihz6VhbJJhaT0tjA3Dt4ade51q2VtW
 lBexqByC8hUXfmweNSlGrllIV1Qz6/t3MfgqVBuBYI90D+m5mSue4tdiBknehw3bJtaI2SyM
 RKJ0e+02HO1FCH3BUOQS9jhY/nGMIC6TYi1PhwqRoYmjmdNmP+vo3g1OB/4M5HFm0kwi6AvU
 ap3gu73ZUv2/Z9PlWLsL89EiOdD7nlnmQv7GMCqpzz6gOH2TCPEFt843K6mM7lRAFWs+16Or
 b6y9qKiln1ibQEJSnWNrNNIcwlVdSNT6FKfg5U/S9Nv6zFOQAkJY8I9C5t7E2C8t6gKxOrO4
 F+nXUpUlAj2iXHdcF3YYXF/crL/G514qCtjbyArOF+p3VklYJqus/hDJ8dmI+F/+bwx1+NwQ
 tkEZ96EXqZFRAPY9mlPdpL6toFjKkim3FrcIyq/bTEjVJd8XAiVqMT8dw7i+XBWXCq6vMczu
 ZO60QbfTcZRTghuFp+OOvmu00mwrT4Wn+crBxnEJdxaeUPN9ol2KnOu0q9rcp9UcRian2mUz
 QebBxsctNLhmY5t/Ymbn72AoqeoD/B6QhhQEV7E4OvkLiLd5Gein9NNCb7aYTDHWWro06y+f
 uEJnerkOfgKkVsW4YpxF7FnkfA369f1/uIIyw1lGDPAbkixC6MmKX6DhJEduqpIz75fmA23R
 kPQpYUKZeTXYJvoQAwLOQ4oTuWfzvVFyDDd4MM8LFj++CIqrqGMVl9fPkXUhSFQRFev3FjJH
 Qv1VBYq1jGC
IronPort-HdrOrdr: A9a23:b3nVZKrwLRE5ByXIOsqSEPMaV5oTeYIsimQD101hICG8cqSj+f
 xG+85rrCMc6QxhPk3I9urhBEDtex/hHNtOkOws1NSZLW7bUQmTXeJfBOLZqlWKcUDDH6xmpM
 NdmsBFeaXN5DNB7PoSjjPWLz9Z+qjkzJyV
X-IronPort-AV: E=Sophos;i="5.87,230,1631592000"; 
   d="scan'208";a="57713708"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 2/3] x86/cpufreq: Rework APERF/MPERF handling
Date: Fri, 12 Nov 2021 18:28:17 +0000
Message-ID: <20211112182818.30223-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211112182818.30223-1-andrew.cooper3@citrix.com>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Currently, each feature_detect() (called on CPU add) hook for both cpufreq
drivers duplicates cpu_has_aperfmperf in a per-cpu datastructure, and edits
cpufreq_driver.getavg to point at get_measured_perf().

As all parts of this are vendor-neutral, drop the function pointer and
duplicated boolean, and call get_measured_perf() directly.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

Slightly RFC.  This does introduce an arch-specific call into a nominally
arch-neutral driver, but struct cpufreq_policy already had x86-specifics in it
so this is apparently ok.

A (less desirable) alternative would be to keep the function pointer, and
patch it in the BSP path, not every AP based on BSP data.

Either way, with patching moved out of feature_detect(), the main
cpufreq_driver object can become __ro_after_init (in principle), and all calls
optimised with alternative_call().
---
 xen/arch/x86/acpi/cpufreq/cpufreq.c  | 8 +-------
 xen/arch/x86/acpi/cpufreq/powernow.c | 6 ------
 xen/drivers/cpufreq/utility.c        | 9 +++------
 xen/include/acpi/cpufreq/cpufreq.h   | 2 --
 4 files changed, 4 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 2251c87f9e42..f26cd6649e7a 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -275,7 +275,7 @@ unsigned int get_measured_perf(unsigned int cpu, unsigned int flag)
         return 0;
 
     policy = per_cpu(cpufreq_cpu_policy, cpu);
-    if (!policy || !policy->aperf_mperf)
+    if ( !policy || !cpu_has_aperfmperf )
         return 0;
 
     switch (flag)
@@ -345,12 +345,6 @@ static void feature_detect(void *info)
     struct cpufreq_policy *policy = info;
     unsigned int eax;
 
-    if ( cpu_has_aperfmperf )
-    {
-        policy->aperf_mperf = 1;
-        cpufreq_driver.getavg = get_measured_perf;
-    }
-
     eax = cpuid_eax(6);
     if (eax & 0x2) {
         policy->turbo = CPUFREQ_TURBO_ENABLED;
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index 80095dfd14b4..82d7827e17c1 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -205,12 +205,6 @@ static void feature_detect(void *info)
     struct cpufreq_policy *policy = info;
     unsigned int edx;
 
-    if ( cpu_has_aperfmperf )
-    {
-        policy->aperf_mperf = 1;
-        cpufreq_driver.getavg = get_measured_perf;
-    }
-
     edx = cpuid_edx(CPUID_FREQ_VOLT_CAPABILITIES);
     if ((edx & CPB_CAPABLE) == CPB_CAPABLE) {
         policy->turbo = CPUFREQ_TURBO_ENABLED;
diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
index b93895d4dddc..9eb7ecedcd29 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -381,12 +381,9 @@ int cpufreq_driver_getavg(unsigned int cpu, unsigned int flag)
     if (!cpu_online(cpu) || !(policy = per_cpu(cpufreq_cpu_policy, cpu)))
         return 0;
 
-    if (cpufreq_driver.getavg)
-    {
-        freq_avg = cpufreq_driver.getavg(cpu, flag);
-        if (freq_avg > 0)
-            return freq_avg;
-    }
+    freq_avg = get_measured_perf(cpu, flag);
+    if ( freq_avg > 0 )
+        return freq_avg;
 
     return policy->cur;
 }
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index e88b20bfed4f..4958d3f7d315 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -72,7 +72,6 @@ struct cpufreq_policy {
     s8                  turbo;  /* tristate flag: 0 for unsupported
                                  * -1 for disable, 1 for enabled
                                  * See CPUFREQ_TURBO_* below for defines */
-    bool_t              aperf_mperf; /* CPU has APERF/MPERF MSRs */
 };
 DECLARE_PER_CPU(struct cpufreq_policy *, cpufreq_cpu_policy);
 
@@ -162,7 +161,6 @@ struct cpufreq_driver {
                      unsigned int target_freq,
                      unsigned int relation);
     unsigned int    (*get)(unsigned int cpu);
-    unsigned int    (*getavg)(unsigned int cpu, unsigned int flag);
     int    (*exit)(struct cpufreq_policy *policy);
 };
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 18:28:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 18:28:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225361.389190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbIA-0002Lm-Co; Fri, 12 Nov 2021 18:28:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225361.389190; Fri, 12 Nov 2021 18:28:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbIA-0002Ld-9Q; Fri, 12 Nov 2021 18:28:50 +0000
Received: by outflank-mailman (input) for mailman id 225361;
 Fri, 12 Nov 2021 18:28:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=26E1=P7=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlbI8-0002K6-B3
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 18:28:48 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5dfb2ef3-43e6-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 19:28:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5dfb2ef3-43e6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636741726;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=9zYw7rReyP9RjuQKDHghwB2zvT5nmEDHc950x0Abeno=;
  b=SGWf9ro6jZ9VlWvlS3JLgEE5tHZHURGmAjzmw4ZUaEq5L4RtbaWSHDVM
   mAc8qaVIHbRsVEfsJEHaJLegwNWXaH4+o26nuwmwKkfIbKtyhHWZAiFXr
   TvCHgjyjSFM4nR/g91dSwIl6HYcxQv8XVXjBDWzlc7eltqooGWkpYXjbe
   4=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: u1mAY5fZdXb3fUOUpuMbktyJnmCdX9+lbiZD9OVvfA1OohrZXeBqesjjIxCm+V+XrErh4nHYKE
 ljiGTTLwVlAAzcsQNGPaor0xmzeJjF5Du+ASsK150Ty7Vffg40mea3iTb29nBvnUmKLZOh12Fu
 uBuPqztuBWiEbpFN+VqCMHeoxQKq/aLZ2vpXVWJNCXV1T896woce4UckJs8iJUVKFrf4d6GrMN
 mylGLwYkP+Iie1pPUFK0TMAMyutWvFC7M0oYwcbc0iD/KjNOuyBkZ0oqKvhiGaGN08cgmsmC2o
 TB3zH33q6KfF8SD3cVIaPjfl
X-SBRS: 5.1
X-MesageID: 57675762
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:vQbUVaKGfZad9mPGFE+RBZIlxSXFcZb7ZxGr2PjKsXjdYENShWEBn
 GRLXDqDMq6JZWH9c9B1bd7ioB9U75fdnNYyHgBlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6wbZi6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Hh5dqx
 Y1MvKCgFzoqI6mcufYXXQBxRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpv2J8TQqiED
 yYfQWRkaUjmYU1qAAcOD6wfheiEm1KicDIN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wh
 EjL4mD4CREyL8GExHyO9XfErv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaDt8l3c
 hJOvHB09O5rqRLtHoKVswCETGCssAZbQNcIEuQG+F+wybfQsyeLDGYdZ2sUADA5j/MeSTsv3
 16PutrmAz1zrbGYIU6gGqeoQSCaYnZMczJbDcMQZU5cuoS4/tlv5v7aZo87SPbdszHjJd3nL
 9lmRgAajq5bs8ME3r7TEbvv02P1/cihouLYC2zqsoOZAuFRONHNi2+AswGzARN8wGCxFATpU
 J8swZj20Qz2JcvR/BFhutklErCz/OqiOzbBm1NpFJRJ323zoCD9IN4Ku2oveR0B3iM4ldnBO
 hK7VeR5vs87AZdXRfUvP9LZ5zoCkcAM6ugJptiLN4ETM/CdhSeM/T10ZF744oweuBNErE3LA
 r/CKZzEJS9DUcxPlWPqL89Age5D7n1vngv7GMGkpylLJJLDPRa9U6keClKSY4gRteXcyOkj2
 40EbJXiJtQ2eLCWXxQ7BqZPdw1XdiZiWsitwyGVH8baSjdb9KgaI6e56dscl0ZNxsy5T8/Eo
 SOwXFF20l36iSGVIAmGcCk7OrjuQYx+vTQwOil1ZQSk3H0qYICO6qYDdsRoIel7pbI7lfMkH
 eMYf8igA+hUTmiV8ToqcpSg/pdpcw6mhFzSMnP9MiQ/ZZNpWyfA5sTgIln07CALAyfu7Zk+r
 rSs2xn1W50GQwg+Xs/aZOj2lwG6vGQHmfI0VEzNe4EBdELp+YlsCirwkv5ofJ1cdUSdnmOXj
 l/EDw0ZqO/Bp54O3OPI3a3U/Z20F+ZeH1ZBGzWJ57iBKiSHrHGoxpVNUbjUcGmFBn/04qire
 c5c0+r4bK8chF9PvodxT+RrwKY564e9rrNW1F05TnDCblDtAbJ8OHiWm8JIs/QVlLNevAK3X
 GOJ+8VbZurVaJ+0TgZJKVp3dPmH2NEVhiLWvKY8L0jN7SNq+KaKDBdJNB6WhS0BdLZ4PevJG
 wv6VBL6P+BnticXDw==
IronPort-HdrOrdr: A9a23:Fn1e1qwRBV20zpwuhJl6KrPwKL1zdoMgy1knxilNoHtuA6ulfq
 GV7ZAmPHrP4wr5N0tNpTntAsa9qBDnlaKdg7N+AV7KZmCP0gaVxepZjLfK8nnNHDD/6/4Y9Y
 oISdkaNDQoNykYsS8t2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,230,1631592000"; 
   d="scan'208";a="57675762"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 0/3] x86/cpufreq: Various bits of cleanup
Date: Fri, 12 Nov 2021 18:28:15 +0000
Message-ID: <20211112182818.30223-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Varios bits of cleanup uncovered while looking in to the Intel Turbo issues.

Andrew Cooper (3):
  x86/cpufreq: Clean up powernow registration
  x86/cpufreq: Rework APERF/MPERF handling
  x86/cpufreq: Drop opencoded CPUID handling from powernow

 tools/misc/xen-cpuid.c                      |  3 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c         | 28 +++++++-------
 xen/arch/x86/acpi/cpufreq/powernow.c        | 58 +++++------------------------
 xen/drivers/cpufreq/utility.c               |  9 ++---
 xen/include/acpi/cpufreq/cpufreq.h          |  2 -
 xen/include/asm-x86/cpufeature.h            |  1 +
 xen/include/public/arch-x86/cpufeatureset.h |  2 +
 7 files changed, 31 insertions(+), 72 deletions(-)

-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 18:28:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 18:28:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225359.389169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbI2-0001n1-Sb; Fri, 12 Nov 2021 18:28:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225359.389169; Fri, 12 Nov 2021 18:28:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbI2-0001mu-PS; Fri, 12 Nov 2021 18:28:42 +0000
Received: by outflank-mailman (input) for mailman id 225359;
 Fri, 12 Nov 2021 18:28:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=26E1=P7=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlbI1-0001mj-9I
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 18:28:41 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a013735-43e6-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 19:28:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a013735-43e6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636741719;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=bGdAXjFWHFJW93FqAFwh110hexLa/qf+khlOa4jllWM=;
  b=VTOkft7mVBAQP3coZ4JuhlSqJzladCivlieJ9n1wVrfNPQo/McBsDHSw
   /OOY8JTVcYC5FWfHyDi9fyq/DbHnCHKjr99e/D4043mOrI7VCr4ZEpGNm
   CukLLi2UXls7+WU0lrPFieqbP+mYCJH22A1x5fUW2ytyBTyZivYGxGr1Q
   g=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: toTxyN/112DyqEDfWVehQ8zWjIV7Umo92ynfVz/OLMyJApcxvAY83rOpkltNsUy61k3vNINDLl
 taKt56BqTjEmkfKLpzoSDl6jJQPRqySw2jGIr5mcv6hWbFyhNzFTcyCQMApZS+0/okUuTxnq8g
 UHv26VH0P1CCvBbHlpM8tWVDDy2nzNHh8lgXzkpOcTrqnGQxT7bKt+ooFcAqlBCA9313oc20hr
 Zd9c//mZ9vBO2Eg5hUEZfy5Hra/DGIB/2cQT86ZDRMOR7oFloaXdS335nkZBxQjPxUJU9IPgWJ
 VUUIjqDbxvvrQDNaC9Z0wm+k
X-SBRS: 5.1
X-MesageID: 57240371
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:KLgj/qLGBs77+0HYFE+RHJIlxSXFcZb7ZxGr2PjKsXjdYENS1zVWn
 TcWC2qOafvYZDSmL9F1YNvk9khUupHXzoJjGlBlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6wbZi6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2vlIFg7
 sUSjKWLZixwIajRuv5eFDRHRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpv3JwWRqmHD
 yYfQT1CbjrJOx1iAFQ4JLQakMP2t3ujUjIN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wh
 EjL4mD4CREyL8GExHyO9XfErv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaDt8l3c
 hJOvHB09O5rqRLtHoKVswCETGCsmBVNSvxATNQD0y6mk7XR/iSDRS8pUWsUADA5j/MeSTsv3
 16PutrmAz1zrbGYIU6gGqeoQSCaYnZMczJbDcMQZU5cuoS4/tlv5v7aZo87SPbdszHjJd3nL
 9lmRgAajq5bs8ME3r7TEbvv02P1/cihouLYC2zqsoOZAuFRONHNi2+AswGzARN8wGCxFATpU
 J8swZj20Qz2JcvR/BFhuc1UdF1T296LMSfHnXlkFIQ7+jKm9haLJN4Lvm8jeh0yaZdZI1cFh
 XM/XysLufe/21PwPcdKj3+ZUZx2ncAM6/y5PhwrUja+SscoL1LWlM2fTUWRw3rsgCARfVIXY
 v+mnTKXJS9CU8xPlWPuL89EiOND7n1ulAv7GMGgpzz6gOX2WZJgYepcWLd4Rrtit/3sTcS82
 4s3CvZmPD0DCrCjOXeOrtZIRb3IRFBiba3LRwVsXrbrCmJb9KsJUZc9GJstJN5ombp7jODN8
 i3vU0NU0gOn13bGNR+LejZob7a2BcRzqncyPCoNO1e02id8PdbzvflHL5ZnL6M68OFDzOJvS
 6VXccu3HfkSGC/M/C4QbMehodU6Jgirnw+HIwGsfCM7I8x7XwXM99K9Jlnv+SACAzCZr8w7p
 7H8hArXTYBaH1ZpDdrMaeLpxFS05CBPlOV3VkrOA99SZESzr9Q6d32v1qc6epheJw/Cyz2W0
 xetLS0Z/eSd8ZUo9NTphLyfq9v7GeVJAUcHTXLQ6qy7NHeG8zP7k5NASuuBYRvUSHjwpPe5f
 exQwvzxbK8HkVJNv9YuGrpn1/tjtd7mprscxQV4BnTbKV+sD+o4cHWB2MBOsIxLx6NY5lTqC
 h7epIECNOXbIt7hHX4QOBEhP7aK2vwjkzXP6eg4fRfh7yht8bvbCUhfMnFgUsCGwGeZ5G/9/
 dochQ==
IronPort-HdrOrdr: A9a23:Mpn87qqcSOCV30egA0FC53waV5oleYIsimQD101hICG9E/b1qy
 nKpp8mPHDP5wr5NEtPpTnjAsm9qALnlKKdiLN5Vd3OYOCMghrKEGgN1/qG/xTQXwH46+5Bxe
 NBXsFFebnN5IFB/KTH3DU=
X-IronPort-AV: E=Sophos;i="5.87,230,1631592000"; 
   d="scan'208";a="57240371"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 3/3] x86/cpufreq: Drop opencoded CPUID handling from powernow
Date: Fri, 12 Nov 2021 18:28:18 +0000
Message-ID: <20211112182818.30223-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211112182818.30223-1-andrew.cooper3@citrix.com>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Xen already collects CPUID.0x80000007.edx by default, meaning that we can
refer to per-cpu data directly.  This also avoids the need IPI the onlining
CPU to identify whether Core Performance Boost is available.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

I don't think the printk() is very helpful.  I could be talked into retaining
it as a prink_once(), but (irrespective of cpufreq_verbose), it doesn't want
repeating on each CPU because it will either be all or none of them.
---
 tools/misc/xen-cpuid.c                      |  3 ++-
 xen/arch/x86/acpi/cpufreq/powernow.c        | 26 ++++----------------------
 xen/include/asm-x86/cpufeature.h            |  1 +
 xen/include/public/arch-x86/cpufeatureset.h |  2 ++
 4 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/tools/misc/xen-cpuid.c b/tools/misc/xen-cpuid.c
index 37989e4a12f0..9b59fec26371 100644
--- a/tools/misc/xen-cpuid.c
+++ b/tools/misc/xen-cpuid.c
@@ -139,7 +139,8 @@ static const char *const str_7c0[32] =
 
 static const char *const str_e7d[32] =
 {
-    [ 8] = "itsc",
+    /* 6 */                    [ 7] = "hw-pstate",
+    [ 8] = "itsc",             [ 9] = "cpb",
     [10] = "efro",
 };
 
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index 82d7827e17c1..c39af2e23d1a 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -32,9 +32,6 @@
 #include <acpi/acpi.h>
 #include <acpi/cpufreq/cpufreq.h>
 
-#define CPUID_FREQ_VOLT_CAPABILITIES    0x80000007
-#define CPB_CAPABLE             0x00000200
-#define USE_HW_PSTATE           0x00000080
 #define HW_PSTATE_MASK          0x00000007
 #define HW_PSTATE_VALID_MASK    0x80000000
 #define HW_PSTATE_MAX_MASK      0x000000f0
@@ -200,21 +197,6 @@ static int powernow_cpufreq_verify(struct cpufreq_policy *policy)
     return cpufreq_frequency_table_verify(policy, data->freq_table);
 }
 
-static void feature_detect(void *info)
-{
-    struct cpufreq_policy *policy = info;
-    unsigned int edx;
-
-    edx = cpuid_edx(CPUID_FREQ_VOLT_CAPABILITIES);
-    if ((edx & CPB_CAPABLE) == CPB_CAPABLE) {
-        policy->turbo = CPUFREQ_TURBO_ENABLED;
-        if (cpufreq_verbose)
-            printk(XENLOG_INFO
-                   "CPU%u: Core Boost/Turbo detected and enabled\n",
-                   smp_processor_id());
-    }
-}
-
 static int powernow_cpufreq_cpu_init(struct cpufreq_policy *policy)
 {
     unsigned int i;
@@ -300,9 +282,9 @@ static int powernow_cpufreq_cpu_init(struct cpufreq_policy *policy)
     if (result)
         goto err_freqfree;
 
-    if (c->cpuid_level >= 6)
-        on_selected_cpus(cpumask_of(cpu), feature_detect, policy, 1);
-      
+    if ( cpu_has(c, X86_FEATURE_CPB) )
+        policy->turbo = CPUFREQ_TURBO_ENABLED;
+
     /*
      * the first call to ->target() should result in us actually
      * writing something to the appropriate registers.
@@ -348,7 +330,7 @@ unsigned int __init powernow_register_driver(void)
     if ( !(boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
         return -ENODEV;
 
-    if ( !(cpuid_edx(CPUID_FREQ_VOLT_CAPABILITIES) & USE_HW_PSTATE) )
+    if ( !cpu_has_hw_pstate )
         return -ENODEV;
 
     return cpufreq_register_driver(&powernow_cpufreq_driver);
diff --git a/xen/include/asm-x86/cpufeature.h b/xen/include/asm-x86/cpufeature.h
index ba0fe7c0aa5f..4754940e23f3 100644
--- a/xen/include/asm-x86/cpufeature.h
+++ b/xen/include/asm-x86/cpufeature.h
@@ -122,6 +122,7 @@
 #define cpu_has_enqcmd          boot_cpu_has(X86_FEATURE_ENQCMD)
 
 /* CPUID level 0x80000007.edx */
+#define cpu_has_hw_pstate       boot_cpu_has(X86_FEATURE_HW_PSTATE)
 #define cpu_has_itsc            boot_cpu_has(X86_FEATURE_ITSC)
 
 /* CPUID level 0x80000008.ebx */
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index f11d5439aef7..d6260c801ab5 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -247,7 +247,9 @@ XEN_CPUFEATURE(MOVDIR64B,     6*32+28) /*a  MOVDIR64B instruction */
 XEN_CPUFEATURE(ENQCMD,        6*32+29) /*   ENQCMD{,S} instructions */
 
 /* AMD-defined CPU features, CPUID level 0x80000007.edx, word 7 */
+XEN_CPUFEATURE(HW_PSTATE,     7*32+ 7) /*   Hardware Pstates */
 XEN_CPUFEATURE(ITSC,          7*32+ 8) /*a  Invariant TSC */
+XEN_CPUFEATURE(CPB,           7*32+ 9) /*   Core Performance Boost (Turbo) */
 XEN_CPUFEATURE(EFRO,          7*32+10) /*   APERF/MPERF Read Only interface */
 
 /* AMD-defined CPU features, CPUID level 0x80000008.ebx, word 8 */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 18:28:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 18:28:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225362.389196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbIA-0002P0-Ob; Fri, 12 Nov 2021 18:28:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225362.389196; Fri, 12 Nov 2021 18:28:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbIA-0002O7-Ib; Fri, 12 Nov 2021 18:28:50 +0000
Received: by outflank-mailman (input) for mailman id 225362;
 Fri, 12 Nov 2021 18:28:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=26E1=P7=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mlbI9-0002K6-3I
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 18:28:49 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 603c9a9d-43e6-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 19:28:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 603c9a9d-43e6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636741727;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=qqGtKAeoak+cgA0fRmStxT61JZlUT9e0puGVkA6QZ4U=;
  b=ecTt7rj+wMgWBEU3G3qpg6Z0X+OBcUmVuFgs8lu7AaM5DnSuyMrPCHnQ
   1OBwTnE6dCeLDE8GHuDiuc5A+0y2CywWXJZETOb98R69yLotCoK3JDE7P
   pNBH9GZfjPu6Id1hWstounjYlPA99R0hEm/3eNOtP0+2XAuM/DLP/Soiv
   I=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 12CCx29YdYoJosQSJTbnetCptu4M9o/xT+iuxYv/J5JN5t5a1ELeyRaeOsyd+o1GZCFh6Ox1Wx
 /NP1Co3mpgHp5QlCAHyHMGfHkm5+qW586MkTI4bHNH7/zhLW/7acKLZfz6kgTuxqf5qDy+wMr6
 AWvkpP3eia0BEUaY7+9A1Sr2oxDCx279ElVY+nCSVPNevTNGji4FsYU97niLoK9pg+O/Rl5G2I
 k/4Pp/9tJIjx0ZKO2BW9dNW9q/JwIDS2KspSzBRB8vhTtWPKJeJw3WLps0BBYQvSHuxTxPMPLO
 lM56iMK74xnq58Nf6ijlu7tC
X-SBRS: 5.1
X-MesageID: 57675763
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LXSahqBK2tAldxVW/+Tkw5YqxClBgxIJ4kV8jS/XYbTApD9x0jVTy
 jcXDT2Hb/mCYmr0KNFwbdu1pxgPsMLdy4VgQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540Eg7wIbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/rWmppM8r5
 vh3pIWcRAgVY5X2lNsjTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFg2lv258QRp4yY
 eJITAtiSwqHUyRFO1w5UrAvuemwt33wJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tmSyq
 3/C/m/5KgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRt6Klc4sBc
 QpOoHNo9PVsshzwJjXgY/GmiFjYniUDAfR9KfwjxAyC9vfs2QqmOHdRG1atd+canMMxQDUr0
 HqAkNXoGSFjvdWpdJ6NyluHhWjsYHZIdAfucQdBFFJYuIe7/OnfmzqWFo47eJNZmOEZDt0ZL
 9qiiCElz4segscQv0lQ1QCW2mn8znQlo+Nc2+k2Yo5Hxl8mDGJGT9bxgbQ+0RqmBNzEJrVml
 CJU8/VyFMhUUfmweNWlGY3h5o2B6fefKyH7ilVyBZQn/DnF0yf9Jt4OvW8kfxw4b5xsldrVj
 Kn74145CHh7ZivCUEOKS9jpV5RCIVbISbwJqcw4nvIRO8MsJWdrDQllZFKK3nCFraTfufpXB
 HtvSu71VSxyIf0+lFKeHr5BuZd2lnFW7T6CHvjTkkX4uYdykVbIEN/pxnPVNbtnhE5FyS2Im
 +ti2zyil08CDbagO3aPqub+7zkidBAGOHw/kOQPHsbrH+asMDhJ5yb5zexzdop7sb5Sk+uUr
 HixVlUBkAj0hGHdKBXMYXdmMeu9UZF6pHM9HCotIVf3hCRzPdfxtP8SJ8ktYL0q1O1/1vooH
 fMLTNqNX6ZUQTPd9jVDMZSk9N5+dA6mjB6lNja+ZGRtZIZpQgHEo4e2fgbm+CQUIDCwsM8y/
 ++p2g/BGMJRTAV+FsfGLvmoygrp73QanetzWWrOI8VSJxqwoNQ7dXSpg6Zucc8WKBjFyj+L7
 CqsAE8V9bvXvos40NjVnqTY/Y2nJPRzQxhBFG7B4LfoaSSDpji/wZVNWfqjdCzGUD+m472rY
 OhYwq2uMPADm1oW4YNwH6wykPA77trr4bRb0h5lDDPAaFHyUuFsJXyP3M9usKxRx+AG5VvqC
 xzXotQKa6+UPM7FEUIKIFt3Z+uO4vgYhz3O4KlnO079/iJ2oOKKXEg608NgU8CBwG+Z6L8Y/
 No=
IronPort-HdrOrdr: A9a23:/qqZyqzvzPuzev7RKcbRKrPwKL1zdoMgy1knxilNoHtuA6ulfq
 GV7ZAmPHrP4wr5N0tNpTntAsa9qBDnlaKdg7N+AV7KZmCP0gaVxepZjLfK8nnNHDD/6/4Y9Y
 oISdkaNDQoNykYsS8t2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,230,1631592000"; 
   d="scan'208";a="57675763"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 1/3] x86/cpufreq: Clean up powernow registration
Date: Fri, 12 Nov 2021 18:28:16 +0000
Message-ID: <20211112182818.30223-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211112182818.30223-1-andrew.cooper3@citrix.com>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

powernow_register_driver() is currently written with a K&R type definition;
I'm surprised that compilers don't object to a mismatch with its declaration,
which is written in an ANSI-C compatible way.

Furthermore, its sole caller is cpufreq_driver_init() which is a pre-smp
initcall.  There are no other online CPUs, and even if there were, checking
the BSP's CPUID data $N times is pointless.  Simplify registration to only
look at the BSP.

While at it, drop obviously unused includes.  Also rewrite the expression in
cpufreq_driver_init() for clarity.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/acpi/cpufreq/cpufreq.c  | 20 +++++++++++++-------
 xen/arch/x86/acpi/cpufreq/powernow.c | 28 ++++++----------------------
 2 files changed, 19 insertions(+), 29 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index f1f3c6923fb3..2251c87f9e42 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -640,13 +640,19 @@ static int __init cpufreq_driver_init(void)
 {
     int ret = 0;
 
-    if ((cpufreq_controller == FREQCTL_xen) &&
-        (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL))
-        ret = cpufreq_register_driver(&acpi_cpufreq_driver);
-    else if ((cpufreq_controller == FREQCTL_xen) &&
-        (boot_cpu_data.x86_vendor &
-         (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
-        ret = powernow_register_driver();
+    if ( cpufreq_controller == FREQCTL_xen )
+    {
+        switch ( boot_cpu_data.x86_vendor )
+        {
+        case X86_VENDOR_INTEL:
+            ret = cpufreq_register_driver(&acpi_cpufreq_driver);
+            break;
+
+        case X86_VENDOR_AMD | X86_VENDOR_HYGON:
+            ret = powernow_register_driver();
+            break;
+        }
+    }
 
     return ret;
 }
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index f620bebc7e91..80095dfd14b4 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -24,13 +24,9 @@
 #include <xen/types.h>
 #include <xen/errno.h>
 #include <xen/init.h>
-#include <xen/delay.h>
 #include <xen/cpumask.h>
-#include <xen/timer.h>
 #include <xen/xmalloc.h>
-#include <asm/bug.h>
 #include <asm/msr.h>
-#include <asm/io.h>
 #include <asm/processor.h>
 #include <asm/cpufeature.h>
 #include <acpi/acpi.h>
@@ -353,25 +349,13 @@ static const struct cpufreq_driver __initconstrel powernow_cpufreq_driver = {
     .update = powernow_cpufreq_update
 };
 
-unsigned int __init powernow_register_driver()
+unsigned int __init powernow_register_driver(void)
 {
-    unsigned int i, ret = 0;
+    if ( !(boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+        return -ENODEV;
 
-    for_each_online_cpu(i) {
-        struct cpuinfo_x86 *c = &cpu_data[i];
-        if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
-            ret = -ENODEV;
-        else
-        {
-            u32 eax, ebx, ecx, edx;
-            cpuid(CPUID_FREQ_VOLT_CAPABILITIES, &eax, &ebx, &ecx, &edx);
-            if ((edx & USE_HW_PSTATE) != USE_HW_PSTATE)
-                ret = -ENODEV;
-        }
-        if (ret)
-            return ret;
-    }
+    if ( !(cpuid_edx(CPUID_FREQ_VOLT_CAPABILITIES) & USE_HW_PSTATE) )
+        return -ENODEV;
 
-    ret = cpufreq_register_driver(&powernow_cpufreq_driver);
-    return ret;
+    return cpufreq_register_driver(&powernow_cpufreq_driver);
 }
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 18:51:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 18:51:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225386.389213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbe1-0006eo-O4; Fri, 12 Nov 2021 18:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225386.389213; Fri, 12 Nov 2021 18:51:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbe1-0006eh-L9; Fri, 12 Nov 2021 18:51:25 +0000
Received: by outflank-mailman (input) for mailman id 225386;
 Fri, 12 Nov 2021 18:51:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=an8x=P7=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mlbe0-0006eb-8L
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 18:51:24 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86969b7c-43e9-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 19:51:22 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:58800)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mlbdw-000Gju-75 (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 12 Nov 2021 18:51:20 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id E1A071FBF1;
 Fri, 12 Nov 2021 18:51:19 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86969b7c-43e9-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
To: Jane Malalane <jane.malalane@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Ian Jackson <iwj@xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Message-ID: <d1978235-f025-19ac-707c-c2e411a5a005@srcf.net>
Date: Fri, 12 Nov 2021 18:51:19 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211110091935.16906-1-jane.malalane@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB

On 10/11/2021 09:19, Jane Malalane wrote:
> Before, user would change turbo status but this had no effect: boolean
> was set but policy wasn't reevaluated.  Policy must be reevaluated so
> that CPU frequency is chosen according to the turbo status and the
> current governor.
>
> Therefore, add __cpufreq_governor() in cpufreq_update_turbo().
>
> Reported-by: <edvin.torok@citrix.com>
> Signed-off-by: <jane.malalane@citrix.com>
> ---
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Ian Jackson <iwj@xenproject.org>
> ---
>
> Release rationale:
> Not taking this patch means that turbo status is misleading.
>
> Taking this patch is low-risk as it only uses a function that already
> exists and is already used for setting the chosen scaling governor.
> Essentially, this change is equivalent to running 'xenpm
> en/disable-turbo-mode' and, subsequently, running 'xenpm
> set-scaling-governor <current governor>'.
> ---
>  xen/drivers/cpufreq/utility.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utilit=
y.c
> index b93895d4dd..5f200ff3ee 100644
> --- a/xen/drivers/cpufreq/utility.c
> +++ b/xen/drivers/cpufreq/utility.c
> @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_state=
)
>      {
>          ret =3D cpufreq_driver.update(cpuid, policy);
>          if (ret)
> +        {
>              policy->turbo =3D curr_state;
> +            return ret;
> +        }
>      }
> =20
> -    return ret;
> +    /* Reevaluate current CPU policy. */
> +    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);
>  }

So, having looked through the manual, what the cpufreq_driver does for
turbo on Intel is bogus according to the SDM.

There is a non-architectrual dance with IA32_MISC_ENABLE bit 38 (per
package) for firmware to configure turbo, but it manifests as another
dynamic CPUID bit (which I think we handle correctly).=C2=A0 It has the s=
ame
semantics as XD_DISABLE and CPUID_LIMIT so we might want to consider
adding it to the set of bits we clear during boot.

However, the correct way to turn off turbo is to set
IA32_PERF_CTL.TURBO_DISENGAGE bit, which is per logical processor.=C2=A0 =
As
such, it *should* behave far more like the AMD CPB path.

Therefore, I propose that the update hook gets renamed to update_turbo()
to more clearly state it's purpose, and that we use the TURBO_DISENGAGE
bit as documented.

If we're going this route, I'd also like to make this hook consistent
with others, where we IPI directly, rather than having an intermediate
function pointer just to send an IPI.

~Andrew



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 19:04:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 19:04:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225393.389223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbqb-0008AC-Te; Fri, 12 Nov 2021 19:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225393.389223; Fri, 12 Nov 2021 19:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlbqb-0008A5-Qk; Fri, 12 Nov 2021 19:04:25 +0000
Received: by outflank-mailman (input) for mailman id 225393;
 Fri, 12 Nov 2021 19:04:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QmTF=P7=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1mlbqZ-00089z-9o
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 19:04:24 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 55af7862-43eb-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 20:04:20 +0100 (CET)
Received: from j217100.upc-j.chello.nl ([24.132.217.100]
 helo=worktop.programming.kicks-ass.net)
 by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux))
 id 1mlbqG-003lfG-2J; Fri, 12 Nov 2021 19:04:04 +0000
Received: by worktop.programming.kicks-ass.net (Postfix, from userid 1000)
 id CFA2C986981; Fri, 12 Nov 2021 20:04:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55af7862-43eb-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=sw9KzIf5vZUC10cdm21n9r6yeef7LSOGNJpq3h8tSms=; b=rLTlqUUlAiGbtl1O5iekR2GnJA
	sfAPhF9YEzCExNPlrXlMw8BrqfMh0Li2vHFgh5xp8GKOGscpg4J5eZ3cO9ezn38W+WFh8PNJ0Hxb+
	HUDq44vdhRD8qRY+b92H6sHJfm2K7+iub9UyXyrh4bSEb3S3Ixh6+Dgj6+tmq6IsKbJsVOEVclwdu
	YbDFoLHDBtzI9w3nxz8D2ACQxruoKSlXrPgf1NFcEZEMi/R0BxdBmk8Wzp/QXrGSPRkSWBvLe28+U
	BnrYs6BcByw78i/zr4kEEp4oVkMqv1+cQLkpqy6oC/72jrLO9ta+XPxsehu95/49P+CC3lrNTU663
	O3TXwQBw==;
Date: Fri, 12 Nov 2021 20:04:03 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Daniel Vetter <daniel.vetter@ffwll.ch>
Subject: Re: [PATCH 0/2] Nuke PAGE_KERNEL_IO
Message-ID: <20211112190403.GK174703@worktop.programming.kicks-ass.net>
References: <20211021181511.1533377-1-lucas.demarchi@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211021181511.1533377-1-lucas.demarchi@intel.com>

On Thu, Oct 21, 2021 at 11:15:09AM -0700, Lucas De Marchi wrote:
> Last user of PAGE_KERNEL_IO is the i915 driver. While removing it from
> there as we seek to bring the driver to other architectures, Daniel
> suggested that we could finish the cleanup and remove it altogether,
> through the tip tree. So here I'm sending both commits needed for that.
> 
> Lucas De Marchi (2):
>   drm/i915/gem: stop using PAGE_KERNEL_IO
>   x86/mm: nuke PAGE_KERNEL_IO
> 
>  arch/x86/include/asm/fixmap.h             | 2 +-
>  arch/x86/include/asm/pgtable_types.h      | 7 -------
>  arch/x86/mm/ioremap.c                     | 2 +-
>  arch/x86/xen/setup.c                      | 2 +-
>  drivers/gpu/drm/i915/gem/i915_gem_pages.c | 4 ++--
>  include/asm-generic/fixmap.h              | 2 +-
>  6 files changed, 6 insertions(+), 13 deletions(-)

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 19:51:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 19:51:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225400.389236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlcZw-0004VA-HR; Fri, 12 Nov 2021 19:51:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225400.389236; Fri, 12 Nov 2021 19:51:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlcZw-0004V3-Bn; Fri, 12 Nov 2021 19:51:16 +0000
Received: by outflank-mailman (input) for mailman id 225400;
 Fri, 12 Nov 2021 19:51:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wpNo=P7=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1mlcZu-0004Ux-O4
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 19:51:14 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3939d4f-43f1-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 20:51:13 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id br15so21196468lfb.9
 for <xen-devel@lists.xenproject.org>; Fri, 12 Nov 2021 11:51:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3939d4f-43f1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=D6mGGLpO7GesAhAkwpLpKBeUsqk33gSphpK4BPNXZyQ=;
        b=ADmczJ9K21rvQLMjBo8BhhX84Ej/GFBGd768CLxEoQtVBIwYgO4Jp5WujfDB8+9KP+
         dE2aLG9w45l9UdvQjyW4pvGsI/RWEjYLS9l7bysLRqtb2NH5aJBe2PoAIzuDN8uy4JT4
         PLb7uNKS9fDP6+PYAGXjnoV4tbZXMBwRz6a3FE++fHe3kd39R8Lr7pXbwl+yUBHw9MMp
         3P3wOZR9c8hWhSxtfUf3dPq3wLRr64Yx2qjwZFHAUgB5EeX3A5nIGInUBpLqN4x2Mrsg
         T7WojABze1gsN6ADf7hhlL+I//bTTFEEkyuYiOn23X52wkGs43klm3HPIdBnKEgMkZT+
         Nk7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=D6mGGLpO7GesAhAkwpLpKBeUsqk33gSphpK4BPNXZyQ=;
        b=VO3yBPyas25I28sdXDqbf5p9k8YiD+A4wjOOS3p2R7G8SvW/+PhB2oXtuhbrmnBbIv
         Mh8qCtKT6oo8MHvNmjOw/JF+yrRbKUZSVeNNhWdSHnd8VI6QYkIdQsUeqQeD6H5mWEvX
         KRdP56aIgQZrmgIL6ujD94/qGHz1fX+J7JdyDKNtpRft6zpTFPpLvaImcwnXoyGfK7Pv
         Ul3aL+Plpz/+sOIShcn7keTE2WyUv+zlQGOmc0K10vfZKKAwmr+0mI5XG2oWD7iS7Rc9
         opk7qKRfS3lvvuHq4JfKLl8o9bTuu3dKDEBAXVZIw9iNjK6lx/GQnUrV0Ngvh0jn4jYf
         af9A==
X-Gm-Message-State: AOAM531klFT+e7A8YnNTCuZQ3rQ7waFLfBmS9umGM6OnVbxVwj+HgGbf
	YSbv+lkp7olJc4HHPkIj9jo7UIxBr/FBjYbieQs=
X-Google-Smtp-Source: ABdhPJzC9l3V8bQWfmPEh0b+mNNPbqBz9XRzvDE122pd69GtStIBzbr4TkcSy/9LReRGJY1dK5mfE75LFjIg1xYyl0o=
X-Received: by 2002:a05:6512:b21:: with SMTP id w33mr16207968lfu.447.1636746672195;
 Fri, 12 Nov 2021 11:51:12 -0800 (PST)
MIME-Version: 1.0
References: <20211110091935.16906-1-jane.malalane@citrix.com> <d1978235-f025-19ac-707c-c2e411a5a005@srcf.net>
In-Reply-To: <d1978235-f025-19ac-707c-c2e411a5a005@srcf.net>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Fri, 12 Nov 2021 14:51:00 -0500
Message-ID: <CAKf6xptiUjSaAxSrfN_=HFfX0PuTYVrojdsUyHfX8e6X0cGYJQ@mail.gmail.com>
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo status
To: Andrew Cooper <amc96@srcf.net>
Cc: Jane Malalane <jane.malalane@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>, 
	Jan Beulich <jbeulich@suse.com>, Ian Jackson <iwj@xenproject.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"

On Fri, Nov 12, 2021 at 1:51 PM Andrew Cooper <amc96@srcf.net> wrote:
>
> On 10/11/2021 09:19, Jane Malalane wrote:
> > Before, user would change turbo status but this had no effect: boolean
> > was set but policy wasn't reevaluated.  Policy must be reevaluated so
> > that CPU frequency is chosen according to the turbo status and the
> > current governor.
> >
> > Therefore, add __cpufreq_governor() in cpufreq_update_turbo().
> >
> > Reported-by: <edvin.torok@citrix.com>
> > Signed-off-by: <jane.malalane@citrix.com>
> > ---
> > CC: Jan Beulich <jbeulich@suse.com>
> > CC: Ian Jackson <iwj@xenproject.org>
> > ---
> >
> > Release rationale:
> > Not taking this patch means that turbo status is misleading.
> >
> > Taking this patch is low-risk as it only uses a function that already
> > exists and is already used for setting the chosen scaling governor.
> > Essentially, this change is equivalent to running 'xenpm
> > en/disable-turbo-mode' and, subsequently, running 'xenpm
> > set-scaling-governor <current governor>'.
> > ---
> >  xen/drivers/cpufreq/utility.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
> > index b93895d4dd..5f200ff3ee 100644
> > --- a/xen/drivers/cpufreq/utility.c
> > +++ b/xen/drivers/cpufreq/utility.c
> > @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_state)
> >      {
> >          ret = cpufreq_driver.update(cpuid, policy);
> >          if (ret)
> > +        {
> >              policy->turbo = curr_state;
> > +            return ret;
> > +        }
> >      }
> >
> > -    return ret;
> > +    /* Reevaluate current CPU policy. */
> > +    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);
> >  }
>
> So, having looked through the manual, what the cpufreq_driver does for
> turbo on Intel is bogus according to the SDM.
>
> There is a non-architectrual dance with IA32_MISC_ENABLE bit 38 (per
> package) for firmware to configure turbo, but it manifests as another
> dynamic CPUID bit (which I think we handle correctly).  It has the same
> semantics as XD_DISABLE and CPUID_LIMIT so we might want to consider
> adding it to the set of bits we clear during boot.
>
> However, the correct way to turn off turbo is to set
> IA32_PERF_CTL.TURBO_DISENGAGE bit, which is per logical processor.  As
> such, it *should* behave far more like the AMD CPB path.

I wrote this in my HWP work (which I need to get back to...):
+/*
+ * The SDM reads like turbo should be disabled with MSR_IA32_PERF_CTL and
+ * PERF_CTL_TURBO_DISENGAGE, but that does not seem to actually work, at least
+ * with my HWP testing.  MSR_IA32_MISC_ENABLE and MISC_ENABLE_TURBO_DISENGAGE
+ * is what Linux uses and seems to work.
+ */

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 20:10:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 20:10:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225406.389246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlcsL-0006qU-0T; Fri, 12 Nov 2021 20:10:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225406.389246; Fri, 12 Nov 2021 20:10:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlcsK-0006qN-TY; Fri, 12 Nov 2021 20:10:16 +0000
Received: by outflank-mailman (input) for mailman id 225406;
 Fri, 12 Nov 2021 20:10:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JcwL=P7=intel.com=lucas.demarchi@srs-se1.protection.inumbo.net>)
 id 1mlcsJ-0006qH-SL
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 20:10:15 +0000
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 88b62cd9-43f4-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 21:10:10 +0100 (CET)
Received: from orsmga008.jf.intel.com ([10.7.209.65])
 by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 12 Nov 2021 12:09:59 -0800
Received: from rjlank1-mobl1.amr.corp.intel.com (HELO ldmartin-desk2)
 ([10.209.91.76])
 by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 12 Nov 2021 12:09:58 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88b62cd9-43f4-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10166"; a="230662175"
X-IronPort-AV: E=Sophos;i="5.87,230,1631602800"; 
   d="scan'208";a="230662175"
X-IronPort-AV: E=Sophos;i="5.87,230,1631602800"; 
   d="scan'208";a="505018696"
Date: Fri, 12 Nov 2021 12:09:57 -0800
From: Lucas De Marchi <lucas.demarchi@intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Daniel Vetter <daniel.vetter@ffwll.ch>
Subject: Re: [PATCH 0/2] Nuke PAGE_KERNEL_IO
Message-ID: <20211112200957.qem4dyjnzjhls4v3@ldmartin-desk2>
X-Patchwork-Hint: comment
References: <20211021181511.1533377-1-lucas.demarchi@intel.com>
 <20211112190403.GK174703@worktop.programming.kicks-ass.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Disposition: inline
In-Reply-To: <20211112190403.GK174703@worktop.programming.kicks-ass.net>

On Fri, Nov 12, 2021 at 08:04:03PM +0100, Peter Zijlstra wrote:
>On Thu, Oct 21, 2021 at 11:15:09AM -0700, Lucas De Marchi wrote:
>> Last user of PAGE_KERNEL_IO is the i915 driver. While removing it from
>> there as we seek to bring the driver to other architectures, Daniel
>> suggested that we could finish the cleanup and remove it altogether,
>> through the tip tree. So here I'm sending both commits needed for that.
>>
>> Lucas De Marchi (2):
>>   drm/i915/gem: stop using PAGE_KERNEL_IO
>>   x86/mm: nuke PAGE_KERNEL_IO
>>
>>  arch/x86/include/asm/fixmap.h             | 2 +-
>>  arch/x86/include/asm/pgtable_types.h      | 7 -------
>>  arch/x86/mm/ioremap.c                     | 2 +-
>>  arch/x86/xen/setup.c                      | 2 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_pages.c | 4 ++--
>>  include/asm-generic/fixmap.h              | 2 +-
>>  6 files changed, 6 insertions(+), 13 deletions(-)
>
>Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>

thanks, Peter.

The intention was to merge this through the tip tree. Although now I'm
not sure. Options:

	1) take the first patch through the drm-intel tree and apply the
	   second patch later
	2) take everything through the drm tree
	3) take everything through the tip tree

What's your preference here?

Lucas De Marchi


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 20:18:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 20:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225413.389257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mld08-0007Xk-RB; Fri, 12 Nov 2021 20:18:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225413.389257; Fri, 12 Nov 2021 20:18:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mld08-0007Xd-NY; Fri, 12 Nov 2021 20:18:20 +0000
Received: by outflank-mailman (input) for mailman id 225413;
 Fri, 12 Nov 2021 20:18:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mld07-0007XT-AO; Fri, 12 Nov 2021 20:18:19 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mld07-0008Hr-1E; Fri, 12 Nov 2021 20:18:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mld06-0001JL-R2; Fri, 12 Nov 2021 20:18:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mld06-00017e-QZ; Fri, 12 Nov 2021 20:18:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Q0/hr7YxCX5ZsjorY6Hk5fG/HXcvf/QZr5XydJOeu0M=; b=ZJU5axpKSUjfaSqiTsdUXVup6Y
	M1lnYZKssLHBVUgnhXwiHo+klogjTeLnE7lFW8yZchRftTNO7mZnXSV+Ty6yGRnvJcu/SCM3SF/dn
	1mxOkT0kVhX9n1Jyc6+9PYVkJNdCrLCGKG4WI03S0mi+6tv7bzdHgjM7ttDsByXvVr80=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166131-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166131: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=81da2b544cbb003a5447c9b14d275746ad22ab37
X-Osstest-Versions-That:
    xen=c06e3d81031424a8a0f725198c16ad81007be89c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Nov 2021 20:18:18 +0000

flight 166131 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166131/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  81da2b544cbb003a5447c9b14d275746ad22ab37
baseline version:
 xen                  c06e3d81031424a8a0f725198c16ad81007be89c

Last test of basis   166127  2021-11-12 13:01:45 Z    0 days
Testing same since   166131  2021-11-12 17:02:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c06e3d8103..81da2b544c  81da2b544cbb003a5447c9b14d275746ad22ab37 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 20:18:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 20:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225415.389270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mld0H-0007r5-4Z; Fri, 12 Nov 2021 20:18:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225415.389270; Fri, 12 Nov 2021 20:18:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mld0H-0007qt-15; Fri, 12 Nov 2021 20:18:29 +0000
Received: by outflank-mailman (input) for mailman id 225415;
 Fri, 12 Nov 2021 20:18:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eaaX=P7=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1mld0G-0007qO-5S
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 20:18:28 +0000
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b016ea3e-43f5-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 21:18:26 +0100 (CET)
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 12 Nov 2021 12:18:23 -0800
Received: from cheemeig-mobl1.gar.corp.intel.com (HELO [10.212.248.140])
 ([10.212.248.140])
 by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 12 Nov 2021 12:18:22 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b016ea3e-43f5-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10166"; a="220410317"
X-IronPort-AV: E=Sophos;i="5.87,230,1631602800"; 
   d="scan'208";a="220410317"
X-IronPort-AV: E=Sophos;i="5.87,230,1631602800"; 
   d="scan'208";a="590678546"
Subject: Re: [PATCH 0/2] Nuke PAGE_KERNEL_IO
To: Lucas De Marchi <lucas.demarchi@intel.com>,
 Peter Zijlstra <peterz@infradead.org>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
 x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, linux-kernel@vger.kernel.org,
 linux-arch@vger.kernel.org, xen-devel@lists.xenproject.org,
 Daniel Vetter <daniel.vetter@ffwll.ch>
References: <20211021181511.1533377-1-lucas.demarchi@intel.com>
 <20211112190403.GK174703@worktop.programming.kicks-ass.net>
 <20211112200957.qem4dyjnzjhls4v3@ldmartin-desk2>
From: Dave Hansen <dave.hansen@intel.com>
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzShEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gPGRhdmVAc3I3MS5uZXQ+wsF7BBMBAgAlAhsDBgsJCAcDAgYVCAIJ
 CgsEFgIDAQIeAQIXgAUCTo3k0QIZAQAKCRBoNZUwcMmSsMO2D/421Xg8pimb9mPzM5N7khT0
 2MCnaGssU1T59YPE25kYdx2HntwdO0JA27Wn9xx5zYijOe6B21ufrvsyv42auCO85+oFJWfE
 K2R/IpLle09GDx5tcEmMAHX6KSxpHmGuJmUPibHVbfep2aCh9lKaDqQR07gXXWK5/yU1Dx0r
 VVFRaHTasp9fZ9AmY4K9/BSA3VkQ8v3OrxNty3OdsrmTTzO91YszpdbjjEFZK53zXy6tUD2d
 e1i0kBBS6NLAAsqEtneplz88T/v7MpLmpY30N9gQU3QyRC50jJ7LU9RazMjUQY1WohVsR56d
 ORqFxS8ChhyJs7BI34vQusYHDTp6PnZHUppb9WIzjeWlC7Jc8lSBDlEWodmqQQgp5+6AfhTD
 kDv1a+W5+ncq+Uo63WHRiCPuyt4di4/0zo28RVcjtzlGBZtmz2EIC3vUfmoZbO/Gn6EKbYAn
 rzz3iU/JWV8DwQ+sZSGu0HmvYMt6t5SmqWQo/hyHtA7uF5Wxtu1lCgolSQw4t49ZuOyOnQi5
 f8R3nE7lpVCSF1TT+h8kMvFPv3VG7KunyjHr3sEptYxQs4VRxqeirSuyBv1TyxT+LdTm6j4a
 mulOWf+YtFRAgIYyyN5YOepDEBv4LUM8Tz98lZiNMlFyRMNrsLV6Pv6SxhrMxbT6TNVS5D+6
 UorTLotDZKp5+M7BTQRUY85qARAAsgMW71BIXRgxjYNCYQ3Xs8k3TfAvQRbHccky50h99TUY
 sqdULbsb3KhmY29raw1bgmyM0a4DGS1YKN7qazCDsdQlxIJp9t2YYdBKXVRzPCCsfWe1dK/q
 66UVhRPP8EGZ4CmFYuPTxqGY+dGRInxCeap/xzbKdvmPm01Iw3YFjAE4PQ4hTMr/H76KoDbD
 cq62U50oKC83ca/PRRh2QqEqACvIH4BR7jueAZSPEDnzwxvVgzyeuhwqHY05QRK/wsKuhq7s
 UuYtmN92Fasbxbw2tbVLZfoidklikvZAmotg0dwcFTjSRGEg0Gr3p/xBzJWNavFZZ95Rj7Et
 db0lCt0HDSY5q4GMR+SrFbH+jzUY/ZqfGdZCBqo0cdPPp58krVgtIGR+ja2Mkva6ah94/oQN
 lnCOw3udS+Eb/aRcM6detZr7XOngvxsWolBrhwTQFT9D2NH6ryAuvKd6yyAFt3/e7r+HHtkU
 kOy27D7IpjngqP+b4EumELI/NxPgIqT69PQmo9IZaI/oRaKorYnDaZrMXViqDrFdD37XELwQ
 gmLoSm2VfbOYY7fap/AhPOgOYOSqg3/Nxcapv71yoBzRRxOc4FxmZ65mn+q3rEM27yRztBW9
 AnCKIc66T2i92HqXCw6AgoBJRjBkI3QnEkPgohQkZdAb8o9WGVKpfmZKbYBo4pEAEQEAAcLB
 XwQYAQIACQUCVGPOagIbDAAKCRBoNZUwcMmSsJeCEACCh7P/aaOLKWQxcnw47p4phIVR6pVL
 e4IEdR7Jf7ZL00s3vKSNT+nRqdl1ugJx9Ymsp8kXKMk9GSfmZpuMQB9c6io1qZc6nW/3TtvK
 pNGz7KPPtaDzvKA4S5tfrWPnDr7n15AU5vsIZvgMjU42gkbemkjJwP0B1RkifIK60yQqAAlT
 YZ14P0dIPdIPIlfEPiAWcg5BtLQU4Wg3cNQdpWrCJ1E3m/RIlXy/2Y3YOVVohfSy+4kvvYU3
 lXUdPb04UPw4VWwjcVZPg7cgR7Izion61bGHqVqURgSALt2yvHl7cr68NYoFkzbNsGsye9ft
 M9ozM23JSgMkRylPSXTeh5JIK9pz2+etco3AfLCKtaRVysjvpysukmWMTrx8QnI5Nn5MOlJj
 1Ov4/50JY9pXzgIDVSrgy6LYSMc4vKZ3QfCY7ipLRORyalFDF3j5AGCMRENJjHPD6O7bl3Xo
 4DzMID+8eucbXxKiNEbs21IqBZbbKdY1GkcEGTE7AnkA3Y6YB7I/j9mQ3hCgm5muJuhM/2Fr
 OPsw5tV/LmQ5GXH0JQ/TZXWygyRFyyI2FqNTx4WHqUn3yFj8rwTAU1tluRUYyeLy0ayUlKBH
 ybj0N71vWO936MqP6haFERzuPAIpxj2ezwu0xb1GjTk4ynna6h5GjnKgdfOWoRtoWndMZxbA
 z5cecg==
Message-ID: <5ad5de1d-1cd3-b1cd-2880-c8df78e4db58@intel.com>
Date: Fri, 12 Nov 2021 12:18:18 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <20211112200957.qem4dyjnzjhls4v3@ldmartin-desk2>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

On 11/12/21 12:09 PM, Lucas De Marchi wrote:
> The intention was to merge this through the tip tree. Although now I'm
> not sure. Options:
> 
>     1) take the first patch through the drm-intel tree and apply the
>        second patch later
>     2) take everything through the drm tree
>     3) take everything through the tip tree
> 
> What's your preference here?

It's fine with me to take it through tip unless that causes a problem
for anyone.  I was planning on doing queuing it after -rc1.


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 21:05:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 21:05:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225429.389286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mldj9-0004c7-Ot; Fri, 12 Nov 2021 21:04:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225429.389286; Fri, 12 Nov 2021 21:04:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mldj9-0004c0-Lq; Fri, 12 Nov 2021 21:04:51 +0000
Received: by outflank-mailman (input) for mailman id 225429;
 Fri, 12 Nov 2021 21:04:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=x1Nn=P7=kernel.org=luto@srs-se1.protection.inumbo.net>)
 id 1mldj8-0004bu-3V
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 21:04:50 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b3f7bc8-43fc-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 22:04:49 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id E791961073;
 Fri, 12 Nov 2021 21:04:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b3f7bc8-43fc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636751087;
	bh=2qqkfvtrJGfj9ZmJlWd38i/WX7gF70C3dBf8RQ5wumo=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=nWKXnUDGWsUMLljZWwy6cLNXVB7K6pvM4TVC63shKrCJ5ntl7jiI7TyjgjN/DaUgG
	 1tszX3FTcILOCU+Nzwm1U1DTeeCfmc/WUEkmjj0f2OPtZuWxsclChON1UpBvydc0VV
	 4NhNTvosABJqwc7rr070zxyPklpS/MA+wM61TaEwbyFSLKlpKflfSgfjzebN7VrtDp
	 Olj/uhTTwVazAwg4w2O8yXqbf3mnsbcd++WIU1H6g9zf7z2EhgQoVCfrBTIgSNHU4X
	 Tzyg3w+4BNBZsfP4xd3pLcCvxFOtB5vPBNK2VyW4vLOnAv9iFTU+8bLAw0Zw0cp0A5
	 kWvXSr6aG3QmA==
Message-ID: <d7c27a98-a2da-17c8-22c3-e13fadbb9a8c@kernel.org>
Date: Fri, 12 Nov 2021 13:04:46 -0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.0
Subject: Re: [PATCH 0/2] Nuke PAGE_KERNEL_IO
Content-Language: en-US
To: Lucas De Marchi <lucas.demarchi@intel.com>,
 intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
 x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 Peter Zijlstra <peterz@infradead.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, linux-kernel@vger.kernel.org,
 linux-arch@vger.kernel.org, xen-devel@lists.xenproject.org,
 Daniel Vetter <daniel.vetter@ffwll.ch>
References: <20211021181511.1533377-1-lucas.demarchi@intel.com>
From: Andy Lutomirski <luto@kernel.org>
In-Reply-To: <20211021181511.1533377-1-lucas.demarchi@intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 10/21/21 11:15, Lucas De Marchi wrote:
> Last user of PAGE_KERNEL_IO is the i915 driver. While removing it from
> there as we seek to bring the driver to other architectures, Daniel
> suggested that we could finish the cleanup and remove it altogether,
> through the tip tree. So here I'm sending both commits needed for that.
> 
> Lucas De Marchi (2):
>    drm/i915/gem: stop using PAGE_KERNEL_IO
>    x86/mm: nuke PAGE_KERNEL_IO
> 
>   arch/x86/include/asm/fixmap.h             | 2 +-
>   arch/x86/include/asm/pgtable_types.h      | 7 -------
>   arch/x86/mm/ioremap.c                     | 2 +-
>   arch/x86/xen/setup.c                      | 2 +-
>   drivers/gpu/drm/i915/gem/i915_gem_pages.c | 4 ++--
>   include/asm-generic/fixmap.h              | 2 +-
>   6 files changed, 6 insertions(+), 13 deletions(-)
> 

Acked-by: Andy Lutomirski <luto@kernel.org>


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 21:15:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 21:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225435.389296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mldtG-00063N-Oe; Fri, 12 Nov 2021 21:15:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225435.389296; Fri, 12 Nov 2021 21:15:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mldtG-00063G-Lc; Fri, 12 Nov 2021 21:15:18 +0000
Received: by outflank-mailman (input) for mailman id 225435;
 Fri, 12 Nov 2021 21:15:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=cipi=P7=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1mldtG-000638-6M
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 21:15:18 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1587b65-43fd-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 22:15:16 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPS id 1ACLF1bt086405
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 12 Nov 2021 16:15:07 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.16.1/8.15.2/Submit) id 1ACLF0jZ086404;
 Fri, 12 Nov 2021 13:15:00 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1587b65-43fd-11ec-9787-a32c541c8605
Date: Fri, 12 Nov 2021 13:15:00 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Julien Grall <julien@xen.org>
Cc: Henry Wang <Henry.Wang@arm.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Message-ID: <YY7ZVPQSTapB7Jnj@mattapan.m5p.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <YY6bsu8/y/LeMfg3@mattapan.m5p.com>
 <40474f12-e269-f251-99b1-cb5b0a317bb2@xen.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <40474f12-e269-f251-99b1-cb5b0a317bb2@xen.org>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=3.4.5
X-Spam-Checker-Version: SpamAssassin 3.4.5 (2021-03-20) on mattapan.m5p.com

On Fri, Nov 12, 2021 at 05:38:02PM +0000, Julien Grall wrote:
> 
> On 12/11/2021 16:52, Elliott Mitchell wrote:
> > On Fri, Nov 12, 2021 at 04:02:36PM +0000, Julien Grall wrote:
> >>
> >> On 12/11/2021 15:44, Elliott Mitchell wrote:

> >>> Julien Grall and Stefano Stabellini had been proposing doing ACPI table
> >>> parsing in a stub domain, but I'm unaware of the status.  Not finding
> >>> much suggests it hasn't gone very far yet.
> >>
> >> This was a very early proposal in case we needed to parse the DSDT in
> >> Xen. This hasn't been needed so far, hence why this is not implemented
> >> and no-one worked on it.
> >>
> >> I am not very familiar how the framebuffer is detected in ACPI. Can you
> >> provide more details on what exactly you want to parse?
> >>
> >> Alternatively, UEFI is meant to provide an API to access the
> >> framebuffer. Would that be suitable for you?
> > 
> > Last time I tried booting on UEFI, Domain 0 (Linux) was unable to access
> > the framebuffer on this device.  Whereas the same kernel directly on top
> > of UEFI/ACPI was fully able to access the framebuffer (and graphics
> > chip).
> 
> Do you have any log or pointer to any previous discussion about the issue?

https://lists.xenproject.org/archives/html/xen-devel/2020-10/
https://lists.xenproject.org/archives/html/xen-devel/2020-11/

My thread was "Xen on RP4", pretty sure there have been others.  I see
several approaches suggested, but none overtly agreed on.  Seems like the
end sort of amounts to "We really should have ACPI/UEFI support", but no
specific plans.


> > I had been left with the impression the DSDT parsing was going to be
> > needed for Domain 0 to access the framebuffer.  This was found
> > unnecessary for framebuffer access for Domain 0?
> 
> I thought you were asking for using framebuffer in Xen. There is no need 
> for Xen to parse the DSDT if the framebuffer is solely used by Dom0.
> 
> Your problem with the framebuffer is likely not related to the DSDT. But 
> I can't really provide a lot of input until I see the logs.

https://lists.xenproject.org/archives/html/xen-devel/2020-10/msg01841.html

That is more or less a statement of handling of DSDT is the Right(tm)
solution for Domain 0 to have framebuffer on such a platform.  Though
there are plenty of short-term hacks for the issue.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Nov 12 21:47:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 21:47:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225441.389307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mleOD-0000qQ-AK; Fri, 12 Nov 2021 21:47:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225441.389307; Fri, 12 Nov 2021 21:47:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mleOD-0000qJ-7N; Fri, 12 Nov 2021 21:47:17 +0000
Received: by outflank-mailman (input) for mailman id 225441;
 Fri, 12 Nov 2021 21:47:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3kqX=P7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mleOC-0000qD-Be
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 21:47:16 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18c98a3c-4402-11ec-9787-a32c541c8605;
 Fri, 12 Nov 2021 22:47:15 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 1C1EC60EFD;
 Fri, 12 Nov 2021 21:47:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18c98a3c-4402-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636753633;
	bh=f0st7MUDC/rGEPGAzPZrpsNr1ug4HHv2pbX+/641YvE=;
	h=From:To:Cc:Subject:Date:From;
	b=Z+RkjC+OWbEEAvRu5fd8dDZnWrQyUO0OTfr2nbtJCOpy+rlFxhfO5IwA0hUi4vbwb
	 G+c3QwUx5ZtClmzJSd+U25P1HGv9fwChWyY/2ggywgYKD8NvqfdGD3RAQdR+jlWh8B
	 ez+ntl459C52GTIchiJUN9lNQ71UX4mcpiq4lrzDIdF6iKfjC+KYq+cYa34LiGHF9+
	 VrotP+SK7TmgFNfJg36H3/6uSi8WDu6YX0kGPQPMseTzd9mZ5Ha1hA8HHIXeec+hct
	 PFMnk4bfVR8Uv+twH5nGQDfqOEUJkjxazWLlDxTTyNuKMQpLCKUOWy+CxEeNv2x7nP
	 SAswvbUHwFH1w==
From: Stefano Stabellini <sstabellini@kernel.org>
To: jgross@suse.com
Cc: boris.ostrovsky@oracle.com,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	sstabellini@kernel.org,
	Stefano Stabellini <stefano.stabellini@xilinx.com>,
	Stable@vger.kernel.org
Subject: [PATCH] xen: don't continue xenstore initialization in case of errors
Date: Fri, 12 Nov 2021 13:47:09 -0800
Message-Id: <20211112214709.1763928-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

In case of errors in xenbus_init (e.g. missing xen_store_gfn parameter),
we goto out_error but we forget to reset xen_store_domain_type to
XS_UNKNOWN. As a consequence xenbus_probe_initcall and other initcalls
will still try to initialize xenstore resulting into a crash at boot.

[    2.479830] Call trace:
[    2.482314]  xb_init_comms+0x18/0x150
[    2.486354]  xs_init+0x34/0x138
[    2.489786]  xenbus_probe+0x4c/0x70
[    2.498432]  xenbus_probe_initcall+0x2c/0x7c
[    2.503944]  do_one_initcall+0x54/0x1b8
[    2.507358]  kernel_init_freeable+0x1ac/0x210
[    2.511617]  kernel_init+0x28/0x130
[    2.516112]  ret_from_fork+0x10/0x20

Cc: <Stable@vger.kernel.org>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
 drivers/xen/xenbus/xenbus_probe.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index bd003ca8acbe..34abf2b5967b 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -983,8 +983,10 @@ static int __init xenbus_init(void)
 	 */
 	proc_create_mount_point("xen");
 #endif
+	return err;
 
 out_error:
+	xen_store_domain_type = XS_UNKNOWN;
 	return err;
 }
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 12 22:01:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 22:01:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225446.389319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlebq-00033T-JN; Fri, 12 Nov 2021 22:01:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225446.389319; Fri, 12 Nov 2021 22:01:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlebq-00033M-Fi; Fri, 12 Nov 2021 22:01:22 +0000
Received: by outflank-mailman (input) for mailman id 225446;
 Fri, 12 Nov 2021 22:01:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3kqX=P7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mlebo-00033G-FG
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 22:01:20 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0d87bf6e-4404-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 23:01:16 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id B6CCF61051;
 Fri, 12 Nov 2021 22:01:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d87bf6e-4404-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1636754473;
	bh=l8nNqxCbJqt33tMYOfG/OIXD67WW9QCi1PIeLYHoOpE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=GRxqZEnKF5HdTFvUzRQxfFTsamVGC44PpKgAh73C/dHNyv95436kAr+upFQJCto7q
	 vGCuVtITaX/9zTFDy7+CJ3beQcEyoWFPYsaB7P1xyQLwrfmUNtTxWME9NIDsRhQ1+2
	 r20XEjsOerHHARbeeQISflVdklkCil563AytDSDEp0Y2Ue1xqQE0nBugNHIYAM2J4W
	 nrsSHpU0VrQR+g/sJ/LR6h0pOEWPUqdlWUjHI9JYm1w+WHPRaEmz+jhYs72EFpJunm
	 Fj5P36BHzQrqoSVWEb8AjFaQxpkeAzazKQLaP8gInEYWRpGDh1dpG6DGPT6Ql9eHWU
	 CkcQE0z19Zi0g==
Date: Fri, 12 Nov 2021 14:01:11 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <luca.fancellu@arm.com>
cc: Vikram Garhwal <fnu.vikram@xilinx.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    bertrand.marquis@arm.com, volodymyr_babchuk@epam.com
Subject: Re: [XEN][RFC PATCH v4 1/1] Update libfdt to v1.6.1
In-Reply-To: <AE30D3B0-0863-465C-AFBC-8DEB28919A8A@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111121400280.1412361@ubuntu-linux-20-04-desktop>
References: <1636702040-116895-1-git-send-email-fnu.vikram@xilinx.com> <1636702040-116895-2-git-send-email-fnu.vikram@xilinx.com> <AE30D3B0-0863-465C-AFBC-8DEB28919A8A@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1731392370-1636754472=:1412361"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1731392370-1636754472=:1412361
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 12 Nov 2021, Luca Fancellu wrote:
> > On 12 Nov 2021, at 07:27, Vikram Garhwal <fnu.vikram@xilinx.com> wrote:
> > 
> > Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
> > This update is done to support device tree overlays.
> > 
> > A few minor changes are done to make it compatible with Xen:
> >    fdt_overlay.c: overlay_fixup_phandle()
> > 
> >        Replace strtoul() with simple_strtoul() as strtoul() is not available in
> >        Xen lib and included lib.h.
> > 
> >        Change char *endptr to const char *endptr. This change is required for
> >        using simple_strtoul().
> > 
> >    libfdt_env.h:
> >        Remaining Xen changes to libfdt_env.h carried over from existing
> >        libfdt (v1.4.0)
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> 
> I’ve also tested it on FVP and on a Juno board, starting few guests and it worked.
> 
> Tested-by: Luca Fancellu <luca.fancellu@arm.com>

Thanks Luca! The patch also passes the gitlab-ci tests and looks OK to
me. I'll let Julien ack it as he was the one with a couple of comments
before.


> > 
> > Signed-off-by: Vikram Garhwal <fnu.vikram@xilinx.com>
> > ---
> > xen/common/libfdt/Makefile.libfdt   |  10 +-
> > xen/common/libfdt/fdt.c             | 226 ++++++---
> > xen/common/libfdt/fdt_addresses.c   | 101 ++++
> > xen/common/libfdt/fdt_check.c       |  93 ++++
> > xen/common/libfdt/fdt_empty_tree.c  |  46 +-
> > xen/common/libfdt/fdt_overlay.c     | 884 ++++++++++++++++++++++++++++++++++++
> > xen/common/libfdt/fdt_ro.c          | 514 ++++++++++++++++-----
> > xen/common/libfdt/fdt_rw.c          | 249 +++++-----
> > xen/common/libfdt/fdt_strerror.c    |  55 +--
> > xen/common/libfdt/fdt_sw.c          | 312 +++++++++----
> > xen/common/libfdt/fdt_wip.c         |  88 ++--
> > xen/common/libfdt/libfdt_internal.h | 223 ++++++---
> > xen/common/libfdt/version.lds       |  24 +-
> > xen/include/xen/libfdt/fdt.h        |  51 +--
> > xen/include/xen/libfdt/libfdt.h     | 858 +++++++++++++++++++++++++++++-----
> > xen/include/xen/libfdt/libfdt_env.h |  98 +++-
> > 16 files changed, 3046 insertions(+), 786 deletions(-)
> > create mode 100644 xen/common/libfdt/fdt_addresses.c
> > create mode 100644 xen/common/libfdt/fdt_check.c
> > create mode 100644 xen/common/libfdt/fdt_overlay.c
> > 
> > diff --git a/xen/common/libfdt/Makefile.libfdt b/xen/common/libfdt/Makefile.libfdt
> > index 91126c0..b6d8fc0 100644
> > --- a/xen/common/libfdt/Makefile.libfdt
> > +++ b/xen/common/libfdt/Makefile.libfdt
> > @@ -1,3 +1,4 @@
> > +# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > # Makefile.libfdt
> > #
> > # This is not a complete Makefile of itself.  Instead, it is designed to
> > @@ -6,5 +7,12 @@
> > LIBFDT_soname = libfdt.$(SHAREDLIB_EXT).1
> > LIBFDT_INCLUDES = fdt.h libfdt.h libfdt_env.h
> > LIBFDT_VERSION = version.lds
> > -LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c
> > +LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c \
> > +	fdt_addresses.c fdt_overlay.c fdt_check.c
> > LIBFDT_OBJS = $(LIBFDT_SRCS:%.c=%.o)
> > +LIBFDT_LIB = libfdt-$(DTC_VERSION).$(SHAREDLIB_EXT)
> > +
> > +libfdt_clean:
> > +	@$(VECHO) CLEAN "(libfdt)"
> > +	rm -f $(STD_CLEANFILES:%=$(LIBFDT_dir)/%)
> > +	rm -f $(LIBFDT_dir)/$(LIBFDT_soname)
> > diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
> > index bbc7717..9fe7cf4 100644
> > --- a/xen/common/libfdt/fdt.c
> > +++ b/xen/common/libfdt/fdt.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,40 +10,156 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > -int fdt_check_header(const void *fdt)
> > +/*
> > + * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
> > + * that the given buffer contains what appears to be a flattened
> > + * device tree with sane information in its header.
> > + */
> > +int32_t fdt_ro_probe_(const void *fdt)
> > {
> > +	uint32_t totalsize = fdt_totalsize(fdt);
> > +
> > +	if (can_assume(VALID_DTB))
> > +		return totalsize;
> > +
> > +	/* The device tree must be at an 8-byte aligned address */
> > +	if ((uintptr_t)fdt & 7)
> > +		return -FDT_ERR_ALIGNMENT;
> > +
> > 	if (fdt_magic(fdt) == FDT_MAGIC) {
> > 		/* Complete tree */
> > -		if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> > -			return -FDT_ERR_BADVERSION;
> > -		if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
> > -			return -FDT_ERR_BADVERSION;
> > +		if (!can_assume(LATEST)) {
> > +			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> > +				return -FDT_ERR_BADVERSION;
> > +			if (fdt_last_comp_version(fdt) >
> > +					FDT_LAST_SUPPORTED_VERSION)
> > +				return -FDT_ERR_BADVERSION;
> > +		}
> > 	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
> > 		/* Unfinished sequential-write blob */
> > -		if (fdt_size_dt_struct(fdt) == 0)
> > +		if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) == 0)
> > 			return -FDT_ERR_BADSTATE;
> > 	} else {
> > 		return -FDT_ERR_BADMAGIC;
> > 	}
> > 
> > +	if (totalsize < INT32_MAX)
> > +		return totalsize;
> > +	else
> > +		return -FDT_ERR_TRUNCATED;
> > +}
> > +
> > +static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off)
> > +{
> > +	return (off >= hdrsize) && (off <= totalsize);
> > +}
> > +
> > +static int check_block_(uint32_t hdrsize, uint32_t totalsize,
> > +			uint32_t base, uint32_t size)
> > +{
> > +	if (!check_off_(hdrsize, totalsize, base))
> > +		return 0; /* block start out of bounds */
> > +	if ((base + size) < base)
> > +		return 0; /* overflow */
> > +	if (!check_off_(hdrsize, totalsize, base + size))
> > +		return 0; /* block end out of bounds */
> > +	return 1;
> > +}
> > +
> > +size_t fdt_header_size_(uint32_t version)
> > +{
> > +	if (version <= 1)
> > +		return FDT_V1_SIZE;
> > +	else if (version <= 2)
> > +		return FDT_V2_SIZE;
> > +	else if (version <= 3)
> > +		return FDT_V3_SIZE;
> > +	else if (version <= 16)
> > +		return FDT_V16_SIZE;
> > +	else
> > +		return FDT_V17_SIZE;
> > +}
> > +
> > +size_t fdt_header_size(const void *fdt)
> > +{
> > +	return can_assume(LATEST) ? FDT_V17_SIZE :
> > +		fdt_header_size_(fdt_version(fdt));
> > +}
> > +
> > +int fdt_check_header(const void *fdt)
> > +{
> > +	size_t hdrsize;
> > +
> > +	/* The device tree must be at an 8-byte aligned address */
> > +	if ((uintptr_t)fdt & 7)
> > +		return -FDT_ERR_ALIGNMENT;
> > +
> > +	if (fdt_magic(fdt) != FDT_MAGIC)
> > +		return -FDT_ERR_BADMAGIC;
> > +	if (!can_assume(LATEST)) {
> > +		if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
> > +		    || (fdt_last_comp_version(fdt) >
> > +			FDT_LAST_SUPPORTED_VERSION))
> > +			return -FDT_ERR_BADVERSION;
> > +		if (fdt_version(fdt) < fdt_last_comp_version(fdt))
> > +			return -FDT_ERR_BADVERSION;
> > +	}
> > +	hdrsize = fdt_header_size(fdt);
> > +	if (!can_assume(VALID_DTB)) {
> > +
> > +		if ((fdt_totalsize(fdt) < hdrsize)
> > +		    || (fdt_totalsize(fdt) > INT_MAX))
> > +			return -FDT_ERR_TRUNCATED;
> > +
> > +		/* Bounds check memrsv block */
> > +		if (!check_off_(hdrsize, fdt_totalsize(fdt),
> > +				fdt_off_mem_rsvmap(fdt)))
> > +			return -FDT_ERR_TRUNCATED;
> > +	}
> > +
> > +	if (!can_assume(VALID_DTB)) {
> > +		/* Bounds check structure block */
> > +		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
> > +			if (!check_off_(hdrsize, fdt_totalsize(fdt),
> > +					fdt_off_dt_struct(fdt)))
> > +				return -FDT_ERR_TRUNCATED;
> > +		} else {
> > +			if (!check_block_(hdrsize, fdt_totalsize(fdt),
> > +					  fdt_off_dt_struct(fdt),
> > +					  fdt_size_dt_struct(fdt)))
> > +				return -FDT_ERR_TRUNCATED;
> > +		}
> > +
> > +		/* Bounds check strings block */
> > +		if (!check_block_(hdrsize, fdt_totalsize(fdt),
> > +				  fdt_off_dt_strings(fdt),
> > +				  fdt_size_dt_strings(fdt)))
> > +			return -FDT_ERR_TRUNCATED;
> > +	}
> > +
> > 	return 0;
> > }
> > 
> > const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
> > {
> > -	unsigned absoffset = offset + fdt_off_dt_struct(fdt);
> > +	unsigned int uoffset = offset;
> > +	unsigned int absoffset = offset + fdt_off_dt_struct(fdt);
> > 
> > -	if ((absoffset < offset)
> > -	    || ((absoffset + len) < absoffset)
> > -	    || (absoffset + len) > fdt_totalsize(fdt))
> > +	if (offset < 0)
> > 		return NULL;
> > 
> > -	if (fdt_version(fdt) >= 0x11)
> > -		if (((offset + len) < offset)
> > +	if (!can_assume(VALID_INPUT))
> > +		if ((absoffset < uoffset)
> > +		    || ((absoffset + len) < absoffset)
> > +		    || (absoffset + len) > fdt_totalsize(fdt))
> > +			return NULL;
> > +
> > +	if (can_assume(LATEST) || fdt_version(fdt) >= 0x11)
> > +		if (((uoffset + len) < uoffset)
> > 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
> > 			return NULL;
> > 
> > -	return _fdt_offset_ptr(fdt, offset);
> > +	return fdt_offset_ptr_(fdt, offset);
> > }
> > 
> > uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> > @@ -98,7 +171,7 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> > 
> > 	*nextoffset = -FDT_ERR_TRUNCATED;
> > 	tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
> > -	if (!tagp)
> > +	if (!can_assume(VALID_DTB) && !tagp)
> > 		return FDT_END; /* premature end */
> > 	tag = fdt32_to_cpu(*tagp);
> > 	offset += FDT_TAGSIZE;
> > @@ -110,17 +183,21 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> > 		do {
> > 			p = fdt_offset_ptr(fdt, offset++, 1);
> > 		} while (p && (*p != '\0'));
> > -		if (!p)
> > +		if (!can_assume(VALID_DTB) && !p)
> > 			return FDT_END; /* premature end */
> > 		break;
> > 
> > 	case FDT_PROP:
> > 		lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp));
> > -		if (!lenp)
> > +		if (!can_assume(VALID_DTB) && !lenp)
> > 			return FDT_END; /* premature end */
> > 		/* skip-name offset, length and value */
> > 		offset += sizeof(struct fdt_property) - FDT_TAGSIZE
> > 			+ fdt32_to_cpu(*lenp);
> > +		if (!can_assume(LATEST) &&
> > +		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >= 8 &&
> > +		    ((offset - fdt32_to_cpu(*lenp)) % 8) != 0)
> > +			offset += 4;
> > 		break;
> > 
> > 	case FDT_END:
> > @@ -139,19 +216,25 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
> > 	return tag;
> > }
> > 
> > -int _fdt_check_node_offset(const void *fdt, int offset)
> > +int fdt_check_node_offset_(const void *fdt, int offset)
> > {
> > -	if ((offset < 0) || (offset % FDT_TAGSIZE)
> > -	    || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE))
> > +	if (!can_assume(VALID_INPUT)
> > +	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
> > +		return -FDT_ERR_BADOFFSET;
> > +
> > +	if (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)
> > 		return -FDT_ERR_BADOFFSET;
> > 
> > 	return offset;
> > }
> > 
> > -int _fdt_check_prop_offset(const void *fdt, int offset)
> > +int fdt_check_prop_offset_(const void *fdt, int offset)
> > {
> > -	if ((offset < 0) || (offset % FDT_TAGSIZE)
> > -	    || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP))
> > +	if (!can_assume(VALID_INPUT)
> > +	    && ((offset < 0) || (offset % FDT_TAGSIZE)))
> > +		return -FDT_ERR_BADOFFSET;
> > +
> > +	if (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)
> > 		return -FDT_ERR_BADOFFSET;
> > 
> > 	return offset;
> > @@ -163,7 +246,7 @@ int fdt_next_node(const void *fdt, int offset, int *depth)
> > 	uint32_t tag;
> > 
> > 	if (offset >= 0)
> > -		if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0)
> > +		if ((nextoffset = fdt_check_node_offset_(fdt, offset)) < 0)
> > 			return nextoffset;
> > 
> > 	do {
> > @@ -225,7 +308,7 @@ int fdt_next_subnode(const void *fdt, int offset)
> > 	return offset;
> > }
> > 
> > -const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
> > +const char *fdt_find_string_(const char *strtab, int tabsize, const char *s)
> > {
> > 	int len = strlen(s) + 1;
> > 	const char *last = strtab + tabsize - len;
> > @@ -239,9 +322,12 @@ const char *_fdt_find_string(const char *strtab, int tabsize, const char *s)
> > 
> > int fdt_move(const void *fdt, void *buf, int bufsize)
> > {
> > -	FDT_CHECK_HEADER(fdt);
> > +	if (!can_assume(VALID_INPUT) && bufsize < 0)
> > +		return -FDT_ERR_NOSPACE;
> > +
> > +	FDT_RO_PROBE(fdt);
> > 
> > -	if (fdt_totalsize(fdt) > bufsize)
> > +	if (fdt_totalsize(fdt) > (unsigned int)bufsize)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > 	memmove(buf, fdt, fdt_totalsize(fdt));
> > diff --git a/xen/common/libfdt/fdt_addresses.c b/xen/common/libfdt/fdt_addresses.c
> > new file mode 100644
> > index 0000000..9a82cd0
> > --- /dev/null
> > +++ b/xen/common/libfdt/fdt_addresses.c
> > @@ -0,0 +1,101 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > +/*
> > + * libfdt - Flat Device Tree manipulation
> > + * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
> > + * Copyright (C) 2018 embedded brains GmbH
> > + */
> > +#include "libfdt_env.h"
> > +
> > +#include <fdt.h>
> > +#include <libfdt.h>
> > +
> > +#include "libfdt_internal.h"
> > +
> > +static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
> > +{
> > +	const fdt32_t *c;
> > +	uint32_t val;
> > +	int len;
> > +
> > +	c = fdt_getprop(fdt, nodeoffset, name, &len);
> > +	if (!c)
> > +		return len;
> > +
> > +	if (len != sizeof(*c))
> > +		return -FDT_ERR_BADNCELLS;
> > +
> > +	val = fdt32_to_cpu(*c);
> > +	if (val > FDT_MAX_NCELLS)
> > +		return -FDT_ERR_BADNCELLS;
> > +
> > +	return (int)val;
> > +}
> > +
> > +int fdt_address_cells(const void *fdt, int nodeoffset)
> > +{
> > +	int val;
> > +
> > +	val = fdt_cells(fdt, nodeoffset, "#address-cells");
> > +	if (val == 0)
> > +		return -FDT_ERR_BADNCELLS;
> > +	if (val == -FDT_ERR_NOTFOUND)
> > +		return 2;
> > +	return val;
> > +}
> > +
> > +int fdt_size_cells(const void *fdt, int nodeoffset)
> > +{
> > +	int val;
> > +
> > +	val = fdt_cells(fdt, nodeoffset, "#size-cells");
> > +	if (val == -FDT_ERR_NOTFOUND)
> > +		return 1;
> > +	return val;
> > +}
> > +
> > +/* This function assumes that [address|size]_cells is 1 or 2 */
> > +int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
> > +			     const char *name, uint64_t addr, uint64_t size)
> > +{
> > +	int addr_cells, size_cells, ret;
> > +	uint8_t data[sizeof(fdt64_t) * 2], *prop;
> > +
> > +	ret = fdt_address_cells(fdt, parent);
> > +	if (ret < 0)
> > +		return ret;
> > +	addr_cells = ret;
> > +
> > +	ret = fdt_size_cells(fdt, parent);
> > +	if (ret < 0)
> > +		return ret;
> > +	size_cells = ret;
> > +
> > +	/* check validity of address */
> > +	prop = data;
> > +	if (addr_cells == 1) {
> > +		if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		fdt32_st(prop, (uint32_t)addr);
> > +	} else if (addr_cells == 2) {
> > +		fdt64_st(prop, addr);
> > +	} else {
> > +		return -FDT_ERR_BADNCELLS;
> > +	}
> > +
> > +	/* check validity of size */
> > +	prop += addr_cells * sizeof(fdt32_t);
> > +	if (size_cells == 1) {
> > +		if (size > UINT32_MAX)
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		fdt32_st(prop, (uint32_t)size);
> > +	} else if (size_cells == 2) {
> > +		fdt64_st(prop, size);
> > +	} else {
> > +		return -FDT_ERR_BADNCELLS;
> > +	}
> > +
> > +	return fdt_appendprop(fdt, nodeoffset, name, data,
> > +			      (addr_cells + size_cells) * sizeof(fdt32_t));
> > +}
> > diff --git a/xen/common/libfdt/fdt_check.c b/xen/common/libfdt/fdt_check.c
> > new file mode 100644
> > index 0000000..fa410a8
> > --- /dev/null
> > +++ b/xen/common/libfdt/fdt_check.c
> > @@ -0,0 +1,93 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > +/*
> > + * libfdt - Flat Device Tree manipulation
> > + * Copyright (C) 2006 David Gibson, IBM Corporation.
> > + */
> > +#include "libfdt_env.h"
> > +
> > +#include <fdt.h>
> > +#include <libfdt.h>
> > +
> > +#include "libfdt_internal.h"
> > +
> > +int fdt_check_full(const void *fdt, size_t bufsize)
> > +{
> > +	int err;
> > +	int num_memrsv;
> > +	int offset, nextoffset = 0;
> > +	uint32_t tag;
> > +	unsigned int depth = 0;
> > +	const void *prop;
> > +	const char *propname;
> > +	bool expect_end = false;
> > +
> > +	if (bufsize < FDT_V1_SIZE)
> > +		return -FDT_ERR_TRUNCATED;
> > +	if (bufsize < fdt_header_size(fdt))
> > +		return -FDT_ERR_TRUNCATED;
> > +	err = fdt_check_header(fdt);
> > +	if (err != 0)
> > +		return err;
> > +	if (bufsize < fdt_totalsize(fdt))
> > +		return -FDT_ERR_TRUNCATED;
> > +
> > +	num_memrsv = fdt_num_mem_rsv(fdt);
> > +	if (num_memrsv < 0)
> > +		return num_memrsv;
> > +
> > +	while (1) {
> > +		offset = nextoffset;
> > +		tag = fdt_next_tag(fdt, offset, &nextoffset);
> > +
> > +		if (nextoffset < 0)
> > +			return nextoffset;
> > +
> > +		/* If we see two root nodes, something is wrong */
> > +		if (expect_end && tag != FDT_END)
> > +			return -FDT_ERR_BADSTRUCTURE;
> > +
> > +		switch (tag) {
> > +		case FDT_NOP:
> > +			break;
> > +
> > +		case FDT_END:
> > +			if (depth != 0)
> > +				return -FDT_ERR_BADSTRUCTURE;
> > +			return 0;
> > +
> > +		case FDT_BEGIN_NODE:
> > +			depth++;
> > +			if (depth > INT_MAX)
> > +				return -FDT_ERR_BADSTRUCTURE;
> > +
> > +			/* The root node must have an empty name */
> > +			if (depth == 1) {
> > +				const char *name;
> > +				int len;
> > +
> > +				name = fdt_get_name(fdt, offset, &len);
> > +				if (*name || len)
> > +					return -FDT_ERR_BADSTRUCTURE;
> > +			}
> > +			break;
> > +
> > +		case FDT_END_NODE:
> > +			if (depth == 0)
> > +				return -FDT_ERR_BADSTRUCTURE;
> > +			depth--;
> > +			if (depth == 0)
> > +				expect_end = true;
> > +			break;
> > +
> > +		case FDT_PROP:
> > +			prop = fdt_getprop_by_offset(fdt, offset, &propname,
> > +						     &err);
> > +			if (!prop)
> > +				return err;
> > +			break;
> > +
> > +		default:
> > +			return -FDT_ERR_INTERNAL;
> > +		}
> > +	}
> > +}
> > diff --git a/xen/common/libfdt/fdt_empty_tree.c b/xen/common/libfdt/fdt_empty_tree.c
> > index d505611..49d54d4 100644
> > --- a/xen/common/libfdt/fdt_empty_tree.c
> > +++ b/xen/common/libfdt/fdt_empty_tree.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2012 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -79,4 +36,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
> > 
> > 	return fdt_open_into(buf, buf, bufsize);
> > }
> > -
> > diff --git a/xen/common/libfdt/fdt_overlay.c b/xen/common/libfdt/fdt_overlay.c
> > new file mode 100644
> > index 0000000..7b95e2b
> > --- /dev/null
> > +++ b/xen/common/libfdt/fdt_overlay.c
> > @@ -0,0 +1,884 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > +/*
> > + * libfdt - Flat Device Tree manipulation
> > + * Copyright (C) 2016 Free Electrons
> > + * Copyright (C) 2016 NextThing Co.
> > + */
> > +#include "libfdt_env.h"
> > +
> > +#include <fdt.h>
> > +#include <libfdt.h>
> > +#include <xen/lib.h>
> > +
> > +#include "libfdt_internal.h"
> > +
> > +/**
> > + * overlay_get_target_phandle - retrieves the target phandle of a fragment
> > + * @fdto: pointer to the device tree overlay blob
> > + * @fragment: node offset of the fragment in the overlay
> > + *
> > + * overlay_get_target_phandle() retrieves the target phandle of an
> > + * overlay fragment when that fragment uses a phandle (target
> > + * property) instead of a path (target-path property).
> > + *
> > + * returns:
> > + *      the phandle pointed by the target property
> > + *      0, if the phandle was not found
> > + *	-1, if the phandle was malformed
> > + */
> > +static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
> > +{
> > +	const fdt32_t *val;
> > +	int len;
> > +
> > +	val = fdt_getprop(fdto, fragment, "target", &len);
> > +	if (!val)
> > +		return 0;
> > +
> > +	if ((len != sizeof(*val)) || (fdt32_to_cpu(*val) == (uint32_t)-1))
> > +		return (uint32_t)-1;
> > +
> > +	return fdt32_to_cpu(*val);
> > +}
> > +
> > +/**
> > + * overlay_get_target - retrieves the offset of a fragment's target
> > + * @fdt: Base device tree blob
> > + * @fdto: Device tree overlay blob
> > + * @fragment: node offset of the fragment in the overlay
> > + * @pathp: pointer which receives the path of the target (or NULL)
> > + *
> > + * overlay_get_target() retrieves the target offset in the base
> > + * device tree of a fragment, no matter how the actual targeting is
> > + * done (through a phandle or a path)
> > + *
> > + * returns:
> > + *      the targeted node offset in the base device tree
> > + *      Negative error code on error
> > + */
> > +static int overlay_get_target(const void *fdt, const void *fdto,
> > +			      int fragment, char const **pathp)
> > +{
> > +	uint32_t phandle;
> > +	const char *path = NULL;
> > +	int path_len = 0, ret;
> > +
> > +	/* Try first to do a phandle based lookup */
> > +	phandle = overlay_get_target_phandle(fdto, fragment);
> > +	if (phandle == (uint32_t)-1)
> > +		return -FDT_ERR_BADPHANDLE;
> > +
> > +	/* no phandle, try path */
> > +	if (!phandle) {
> > +		/* And then a path based lookup */
> > +		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
> > +		if (path)
> > +			ret = fdt_path_offset(fdt, path);
> > +		else
> > +			ret = path_len;
> > +	} else
> > +		ret = fdt_node_offset_by_phandle(fdt, phandle);
> > +
> > +	/*
> > +	* If we haven't found either a target or a
> > +	* target-path property in a node that contains a
> > +	* __overlay__ subnode (we wouldn't be called
> > +	* otherwise), consider it a improperly written
> > +	* overlay
> > +	*/
> > +	if (ret < 0 && path_len == -FDT_ERR_NOTFOUND)
> > +		ret = -FDT_ERR_BADOVERLAY;
> > +
> > +	/* return on error */
> > +	if (ret < 0)
> > +		return ret;
> > +
> > +	/* return pointer to path (if available) */
> > +	if (pathp)
> > +		*pathp = path ? path : NULL;
> > +
> > +	return ret;
> > +}
> > +
> > +/**
> > + * overlay_phandle_add_offset - Increases a phandle by an offset
> > + * @fdt: Base device tree blob
> > + * @node: Device tree overlay blob
> > + * @name: Name of the property to modify (phandle or linux,phandle)
> > + * @delta: offset to apply
> > + *
> > + * overlay_phandle_add_offset() increments a node phandle by a given
> > + * offset.
> > + *
> > + * returns:
> > + *      0 on success.
> > + *      Negative error code on error
> > + */
> > +static int overlay_phandle_add_offset(void *fdt, int node,
> > +				      const char *name, uint32_t delta)
> > +{
> > +	const fdt32_t *val;
> > +	uint32_t adj_val;
> > +	int len;
> > +
> > +	val = fdt_getprop(fdt, node, name, &len);
> > +	if (!val)
> > +		return len;
> > +
> > +	if (len != sizeof(*val))
> > +		return -FDT_ERR_BADPHANDLE;
> > +
> > +	adj_val = fdt32_to_cpu(*val);
> > +	if ((adj_val + delta) < adj_val)
> > +		return -FDT_ERR_NOPHANDLES;
> > +
> > +	adj_val += delta;
> > +	if (adj_val == (uint32_t)-1)
> > +		return -FDT_ERR_NOPHANDLES;
> > +
> > +	return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
> > +}
> > +
> > +/**
> > + * overlay_adjust_node_phandles - Offsets the phandles of a node
> > + * @fdto: Device tree overlay blob
> > + * @node: Offset of the node we want to adjust
> > + * @delta: Offset to shift the phandles of
> > + *
> > + * overlay_adjust_node_phandles() adds a constant to all the phandles
> > + * of a given node. This is mainly use as part of the overlay
> > + * application process, when we want to update all the overlay
> > + * phandles to not conflict with the overlays of the base device tree.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_adjust_node_phandles(void *fdto, int node,
> > +					uint32_t delta)
> > +{
> > +	int child;
> > +	int ret;
> > +
> > +	ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
> > +	if (ret && ret != -FDT_ERR_NOTFOUND)
> > +		return ret;
> > +
> > +	ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
> > +	if (ret && ret != -FDT_ERR_NOTFOUND)
> > +		return ret;
> > +
> > +	fdt_for_each_subnode(child, fdto, node) {
> > +		ret = overlay_adjust_node_phandles(fdto, child, delta);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_adjust_local_phandles - Adjust the phandles of a whole overlay
> > + * @fdto: Device tree overlay blob
> > + * @delta: Offset to shift the phandles of
> > + *
> > + * overlay_adjust_local_phandles() adds a constant to all the
> > + * phandles of an overlay. This is mainly use as part of the overlay
> > + * application process, when we want to update all the overlay
> > + * phandles to not conflict with the overlays of the base device tree.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
> > +{
> > +	/*
> > +	 * Start adjusting the phandles from the overlay root
> > +	 */
> > +	return overlay_adjust_node_phandles(fdto, 0, delta);
> > +}
> > +
> > +/**
> > + * overlay_update_local_node_references - Adjust the overlay references
> > + * @fdto: Device tree overlay blob
> > + * @tree_node: Node offset of the node to operate on
> > + * @fixup_node: Node offset of the matching local fixups node
> > + * @delta: Offset to shift the phandles of
> > + *
> > + * overlay_update_local_nodes_references() update the phandles
> > + * pointing to a node within the device tree overlay by adding a
> > + * constant delta.
> > + *
> > + * This is mainly used as part of a device tree application process,
> > + * where you want the device tree overlays phandles to not conflict
> > + * with the ones from the base device tree before merging them.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_update_local_node_references(void *fdto,
> > +						int tree_node,
> > +						int fixup_node,
> > +						uint32_t delta)
> > +{
> > +	int fixup_prop;
> > +	int fixup_child;
> > +	int ret;
> > +
> > +	fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
> > +		const fdt32_t *fixup_val;
> > +		const char *tree_val;
> > +		const char *name;
> > +		int fixup_len;
> > +		int tree_len;
> > +		int i;
> > +
> > +		fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
> > +						  &name, &fixup_len);
> > +		if (!fixup_val)
> > +			return fixup_len;
> > +
> > +		if (fixup_len % sizeof(uint32_t))
> > +			return -FDT_ERR_BADOVERLAY;
> > +		fixup_len /= sizeof(uint32_t);
> > +
> > +		tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
> > +		if (!tree_val) {
> > +			if (tree_len == -FDT_ERR_NOTFOUND)
> > +				return -FDT_ERR_BADOVERLAY;
> > +
> > +			return tree_len;
> > +		}
> > +
> > +		for (i = 0; i < fixup_len; i++) {
> > +			fdt32_t adj_val;
> > +			uint32_t poffset;
> > +
> > +			poffset = fdt32_to_cpu(fixup_val[i]);
> > +
> > +			/*
> > +			 * phandles to fixup can be unaligned.
> > +			 *
> > +			 * Use a memcpy for the architectures that do
> > +			 * not support unaligned accesses.
> > +			 */
> > +			memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
> > +
> > +			adj_val = cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
> > +
> > +			ret = fdt_setprop_inplace_namelen_partial(fdto,
> > +								  tree_node,
> > +								  name,
> > +								  strlen(name),
> > +								  poffset,
> > +								  &adj_val,
> > +								  sizeof(adj_val));
> > +			if (ret == -FDT_ERR_NOSPACE)
> > +				return -FDT_ERR_BADOVERLAY;
> > +
> > +			if (ret)
> > +				return ret;
> > +		}
> > +	}
> > +
> > +	fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
> > +		const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
> > +							    NULL);
> > +		int tree_child;
> > +
> > +		tree_child = fdt_subnode_offset(fdto, tree_node,
> > +						fixup_child_name);
> > +		if (tree_child == -FDT_ERR_NOTFOUND)
> > +			return -FDT_ERR_BADOVERLAY;
> > +		if (tree_child < 0)
> > +			return tree_child;
> > +
> > +		ret = overlay_update_local_node_references(fdto,
> > +							   tree_child,
> > +							   fixup_child,
> > +							   delta);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_update_local_references - Adjust the overlay references
> > + * @fdto: Device tree overlay blob
> > + * @delta: Offset to shift the phandles of
> > + *
> > + * overlay_update_local_references() update all the phandles pointing
> > + * to a node within the device tree overlay by adding a constant
> > + * delta to not conflict with the base overlay.
> > + *
> > + * This is mainly used as part of a device tree application process,
> > + * where you want the device tree overlays phandles to not conflict
> > + * with the ones from the base device tree before merging them.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_update_local_references(void *fdto, uint32_t delta)
> > +{
> > +	int fixups;
> > +
> > +	fixups = fdt_path_offset(fdto, "/__local_fixups__");
> > +	if (fixups < 0) {
> > +		/* There's no local phandles to adjust, bail out */
> > +		if (fixups == -FDT_ERR_NOTFOUND)
> > +			return 0;
> > +
> > +		return fixups;
> > +	}
> > +
> > +	/*
> > +	 * Update our local references from the root of the tree
> > +	 */
> > +	return overlay_update_local_node_references(fdto, 0, fixups,
> > +						    delta);
> > +}
> > +
> > +/**
> > + * overlay_fixup_one_phandle - Set an overlay phandle to the base one
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + * @symbols_off: Node offset of the symbols node in the base device tree
> > + * @path: Path to a node holding a phandle in the overlay
> > + * @path_len: number of path characters to consider
> > + * @name: Name of the property holding the phandle reference in the overlay
> > + * @name_len: number of name characters to consider
> > + * @poffset: Offset within the overlay property where the phandle is stored
> > + * @label: Label of the node referenced by the phandle
> > + *
> > + * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
> > + * a node in the base device tree.
> > + *
> > + * This is part of the device tree overlay application process, when
> > + * you want all the phandles in the overlay to point to the actual
> > + * base dt nodes.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_fixup_one_phandle(void *fdt, void *fdto,
> > +				     int symbols_off,
> > +				     const char *path, uint32_t path_len,
> > +				     const char *name, uint32_t name_len,
> > +				     int poffset, const char *label)
> > +{
> > +	const char *symbol_path;
> > +	uint32_t phandle;
> > +	fdt32_t phandle_prop;
> > +	int symbol_off, fixup_off;
> > +	int prop_len;
> > +
> > +	if (symbols_off < 0)
> > +		return symbols_off;
> > +
> > +	symbol_path = fdt_getprop(fdt, symbols_off, label,
> > +				  &prop_len);
> > +	if (!symbol_path)
> > +		return prop_len;
> > +
> > +	symbol_off = fdt_path_offset(fdt, symbol_path);
> > +	if (symbol_off < 0)
> > +		return symbol_off;
> > +
> > +	phandle = fdt_get_phandle(fdt, symbol_off);
> > +	if (!phandle)
> > +		return -FDT_ERR_NOTFOUND;
> > +
> > +	fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
> > +	if (fixup_off == -FDT_ERR_NOTFOUND)
> > +		return -FDT_ERR_BADOVERLAY;
> > +	if (fixup_off < 0)
> > +		return fixup_off;
> > +
> > +	phandle_prop = cpu_to_fdt32(phandle);
> > +	return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
> > +						   name, name_len, poffset,
> > +						   &phandle_prop,
> > +						   sizeof(phandle_prop));
> > +};
> > +
> > +/**
> > + * overlay_fixup_phandle - Set an overlay phandle to the base one
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + * @symbols_off: Node offset of the symbols node in the base device tree
> > + * @property: Property offset in the overlay holding the list of fixups
> > + *
> > + * overlay_fixup_phandle() resolves all the overlay phandles pointed
> > + * to in a __fixups__ property, and updates them to match the phandles
> > + * in use in the base device tree.
> > + *
> > + * This is part of the device tree overlay application process, when
> > + * you want all the phandles in the overlay to point to the actual
> > + * base dt nodes.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
> > +				 int property)
> > +{
> > +	const char *value;
> > +	const char *label;
> > +	int len;
> > +
> > +	value = fdt_getprop_by_offset(fdto, property,
> > +				      &label, &len);
> > +	if (!value) {
> > +		if (len == -FDT_ERR_NOTFOUND)
> > +			return -FDT_ERR_INTERNAL;
> > +
> > +		return len;
> > +	}
> > +
> > +	do {
> > +		const char *path, *name, *fixup_end;
> > +		const char *fixup_str = value;
> > +		uint32_t path_len, name_len;
> > +		uint32_t fixup_len;
> > +		char *sep;
> > +		const char *endptr;
> > +		int poffset, ret;
> > +
> > +		fixup_end = memchr(value, '\0', len);
> > +		if (!fixup_end)
> > +			return -FDT_ERR_BADOVERLAY;
> > +		fixup_len = fixup_end - fixup_str;
> > +
> > +		len -= fixup_len + 1;
> > +		value += fixup_len + 1;
> > +
> > +		path = fixup_str;
> > +		sep = memchr(fixup_str, ':', fixup_len);
> > +		if (!sep || *sep != ':')
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		path_len = sep - path;
> > +		if (path_len == (fixup_len - 1))
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		fixup_len -= path_len + 1;
> > +		name = sep + 1;
> > +		sep = memchr(name, ':', fixup_len);
> > +		if (!sep || *sep != ':')
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		name_len = sep - name;
> > +		if (!name_len)
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		poffset = simple_strtoul(sep + 1, &endptr, 10);
> > +		if ((*endptr != '\0') || (endptr <= (sep + 1)))
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
> > +						path, path_len, name, name_len,
> > +						poffset, label);
> > +		if (ret)
> > +			return ret;
> > +	} while (len > 0);
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_fixup_phandles - Resolve the overlay phandles to the base
> > + *                          device tree
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + *
> > + * overlay_fixup_phandles() resolves all the overlay phandles pointing
> > + * to nodes in the base device tree.
> > + *
> > + * This is one of the steps of the device tree overlay application
> > + * process, when you want all the phandles in the overlay to point to
> > + * the actual base dt nodes.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_fixup_phandles(void *fdt, void *fdto)
> > +{
> > +	int fixups_off, symbols_off;
> > +	int property;
> > +
> > +	/* We can have overlays without any fixups */
> > +	fixups_off = fdt_path_offset(fdto, "/__fixups__");
> > +	if (fixups_off == -FDT_ERR_NOTFOUND)
> > +		return 0; /* nothing to do */
> > +	if (fixups_off < 0)
> > +		return fixups_off;
> > +
> > +	/* And base DTs without symbols */
> > +	symbols_off = fdt_path_offset(fdt, "/__symbols__");
> > +	if ((symbols_off < 0 && (symbols_off != -FDT_ERR_NOTFOUND)))
> > +		return symbols_off;
> > +
> > +	fdt_for_each_property_offset(property, fdto, fixups_off) {
> > +		int ret;
> > +
> > +		ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_apply_node - Merges a node into the base device tree
> > + * @fdt: Base Device Tree blob
> > + * @target: Node offset in the base device tree to apply the fragment to
> > + * @fdto: Device tree overlay blob
> > + * @node: Node offset in the overlay holding the changes to merge
> > + *
> > + * overlay_apply_node() merges a node into a target base device tree
> > + * node pointed.
> > + *
> > + * This is part of the final step in the device tree overlay
> > + * application process, when all the phandles have been adjusted and
> > + * resolved and you just have to merge overlay into the base device
> > + * tree.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_apply_node(void *fdt, int target,
> > +			      void *fdto, int node)
> > +{
> > +	int property;
> > +	int subnode;
> > +
> > +	fdt_for_each_property_offset(property, fdto, node) {
> > +		const char *name;
> > +		const void *prop;
> > +		int prop_len;
> > +		int ret;
> > +
> > +		prop = fdt_getprop_by_offset(fdto, property, &name,
> > +					     &prop_len);
> > +		if (prop_len == -FDT_ERR_NOTFOUND)
> > +			return -FDT_ERR_INTERNAL;
> > +		if (prop_len < 0)
> > +			return prop_len;
> > +
> > +		ret = fdt_setprop(fdt, target, name, prop, prop_len);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	fdt_for_each_subnode(subnode, fdto, node) {
> > +		const char *name = fdt_get_name(fdto, subnode, NULL);
> > +		int nnode;
> > +		int ret;
> > +
> > +		nnode = fdt_add_subnode(fdt, target, name);
> > +		if (nnode == -FDT_ERR_EXISTS) {
> > +			nnode = fdt_subnode_offset(fdt, target, name);
> > +			if (nnode == -FDT_ERR_NOTFOUND)
> > +				return -FDT_ERR_INTERNAL;
> > +		}
> > +
> > +		if (nnode < 0)
> > +			return nnode;
> > +
> > +		ret = overlay_apply_node(fdt, nnode, fdto, subnode);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +/**
> > + * overlay_merge - Merge an overlay into its base device tree
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + *
> > + * overlay_merge() merges an overlay into its base device tree.
> > + *
> > + * This is the next to last step in the device tree overlay application
> > + * process, when all the phandles have been adjusted and resolved and
> > + * you just have to merge overlay into the base device tree.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_merge(void *fdt, void *fdto)
> > +{
> > +	int fragment;
> > +
> > +	fdt_for_each_subnode(fragment, fdto, 0) {
> > +		int overlay;
> > +		int target;
> > +		int ret;
> > +
> > +		/*
> > +		 * Each fragments will have an __overlay__ node. If
> > +		 * they don't, it's not supposed to be merged
> > +		 */
> > +		overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
> > +		if (overlay == -FDT_ERR_NOTFOUND)
> > +			continue;
> > +
> > +		if (overlay < 0)
> > +			return overlay;
> > +
> > +		target = overlay_get_target(fdt, fdto, fragment, NULL);
> > +		if (target < 0)
> > +			return target;
> > +
> > +		ret = overlay_apply_node(fdt, target, fdto, overlay);
> > +		if (ret)
> > +			return ret;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +static int get_path_len(const void *fdt, int nodeoffset)
> > +{
> > +	int len = 0, namelen;
> > +	const char *name;
> > +
> > +	FDT_RO_PROBE(fdt);
> > +
> > +	for (;;) {
> > +		name = fdt_get_name(fdt, nodeoffset, &namelen);
> > +		if (!name)
> > +			return namelen;
> > +
> > +		/* root? we're done */
> > +		if (namelen == 0)
> > +			break;
> > +
> > +		nodeoffset = fdt_parent_offset(fdt, nodeoffset);
> > +		if (nodeoffset < 0)
> > +			return nodeoffset;
> > +		len += namelen + 1;
> > +	}
> > +
> > +	/* in case of root pretend it's "/" */
> > +	if (len == 0)
> > +		len++;
> > +	return len;
> > +}
> > +
> > +/**
> > + * overlay_symbol_update - Update the symbols of base tree after a merge
> > + * @fdt: Base Device Tree blob
> > + * @fdto: Device tree overlay blob
> > + *
> > + * overlay_symbol_update() updates the symbols of the base tree with the
> > + * symbols of the applied overlay
> > + *
> > + * This is the last step in the device tree overlay application
> > + * process, allowing the reference of overlay symbols by subsequent
> > + * overlay operations.
> > + *
> > + * returns:
> > + *      0 on success
> > + *      Negative error code on failure
> > + */
> > +static int overlay_symbol_update(void *fdt, void *fdto)
> > +{
> > +	int root_sym, ov_sym, prop, path_len, fragment, target;
> > +	int len, frag_name_len, ret, rel_path_len;
> > +	const char *s, *e;
> > +	const char *path;
> > +	const char *name;
> > +	const char *frag_name;
> > +	const char *rel_path;
> > +	const char *target_path;
> > +	char *buf;
> > +	void *p;
> > +
> > +	ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
> > +
> > +	/* if no overlay symbols exist no problem */
> > +	if (ov_sym < 0)
> > +		return 0;
> > +
> > +	root_sym = fdt_subnode_offset(fdt, 0, "__symbols__");
> > +
> > +	/* it no root symbols exist we should create them */
> > +	if (root_sym == -FDT_ERR_NOTFOUND)
> > +		root_sym = fdt_add_subnode(fdt, 0, "__symbols__");
> > +
> > +	/* any error is fatal now */
> > +	if (root_sym < 0)
> > +		return root_sym;
> > +
> > +	/* iterate over each overlay symbol */
> > +	fdt_for_each_property_offset(prop, fdto, ov_sym) {
> > +		path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
> > +		if (!path)
> > +			return path_len;
> > +
> > +		/* verify it's a string property (terminated by a single \0) */
> > +		if (path_len < 1 || memchr(path, '\0', path_len) != &path[path_len - 1])
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		/* keep end marker to avoid strlen() */
> > +		e = path + path_len;
> > +
> > +		if (*path != '/')
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		/* get fragment name first */
> > +		s = strchr(path + 1, '/');
> > +		if (!s) {
> > +			/* Symbol refers to something that won't end
> > +			 * up in the target tree */
> > +			continue;
> > +		}
> > +
> > +		frag_name = path + 1;
> > +		frag_name_len = s - path - 1;
> > +
> > +		/* verify format; safe since "s" lies in \0 terminated prop */
> > +		len = sizeof("/__overlay__/") - 1;
> > +		if ((e - s) > len && (memcmp(s, "/__overlay__/", len) == 0)) {
> > +			/* /<fragment-name>/__overlay__/<relative-subnode-path> */
> > +			rel_path = s + len;
> > +			rel_path_len = e - rel_path - 1;
> > +		} else if ((e - s) == len
> > +			   && (memcmp(s, "/__overlay__", len - 1) == 0)) {
> > +			/* /<fragment-name>/__overlay__ */
> > +			rel_path = "";
> > +			rel_path_len = 0;
> > +		} else {
> > +			/* Symbol refers to something that won't end
> > +			 * up in the target tree */
> > +			continue;
> > +		}
> > +
> > +		/* find the fragment index in which the symbol lies */
> > +		ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
> > +					       frag_name_len);
> > +		/* not found? */
> > +		if (ret < 0)
> > +			return -FDT_ERR_BADOVERLAY;
> > +		fragment = ret;
> > +
> > +		/* an __overlay__ subnode must exist */
> > +		ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
> > +		if (ret < 0)
> > +			return -FDT_ERR_BADOVERLAY;
> > +
> > +		/* get the target of the fragment */
> > +		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
> > +		if (ret < 0)
> > +			return ret;
> > +		target = ret;
> > +
> > +		/* if we have a target path use */
> > +		if (!target_path) {
> > +			ret = get_path_len(fdt, target);
> > +			if (ret < 0)
> > +				return ret;
> > +			len = ret;
> > +		} else {
> > +			len = strlen(target_path);
> > +		}
> > +
> > +		ret = fdt_setprop_placeholder(fdt, root_sym, name,
> > +				len + (len > 1) + rel_path_len + 1, &p);
> > +		if (ret < 0)
> > +			return ret;
> > +
> > +		if (!target_path) {
> > +			/* again in case setprop_placeholder changed it */
> > +			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
> > +			if (ret < 0)
> > +				return ret;
> > +			target = ret;
> > +		}
> > +
> > +		buf = p;
> > +		if (len > 1) { /* target is not root */
> > +			if (!target_path) {
> > +				ret = fdt_get_path(fdt, target, buf, len + 1);
> > +				if (ret < 0)
> > +					return ret;
> > +			} else
> > +				memcpy(buf, target_path, len + 1);
> > +
> > +		} else
> > +			len--;
> > +
> > +		buf[len] = '/';
> > +		memcpy(buf + len + 1, rel_path, rel_path_len);
> > +		buf[len + 1 + rel_path_len] = '\0';
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +int fdt_overlay_apply(void *fdt, void *fdto)
> > +{
> > +	uint32_t delta;
> > +	int ret;
> > +
> > +	FDT_RO_PROBE(fdt);
> > +	FDT_RO_PROBE(fdto);
> > +
> > +	ret = fdt_find_max_phandle(fdt, &delta);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_adjust_local_phandles(fdto, delta);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_update_local_references(fdto, delta);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_fixup_phandles(fdt, fdto);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_merge(fdt, fdto);
> > +	if (ret)
> > +		goto err;
> > +
> > +	ret = overlay_symbol_update(fdt, fdto);
> > +	if (ret)
> > +		goto err;
> > +
> > +	/*
> > +	 * The overlay has been damaged, erase its magic.
> > +	 */
> > +	fdt_set_magic(fdto, ~0);
> > +
> > +	return 0;
> > +
> > +err:
> > +	/*
> > +	 * The overlay might have been damaged, erase its magic.
> > +	 */
> > +	fdt_set_magic(fdto, ~0);
> > +
> > +	/*
> > +	 * The base device tree might have been damaged, erase its
> > +	 * magic.
> > +	 */
> > +	fdt_set_magic(fdt, ~0);
> > +
> > +	return ret;
> > +}
> > diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
> > index 36f9b48..17584da 100644
> > --- a/xen/common/libfdt/fdt_ro.c
> > +++ b/xen/common/libfdt/fdt_ro.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,12 +10,13 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > -static int _fdt_nodename_eq(const void *fdt, int offset,
> > +static int fdt_nodename_eq_(const void *fdt, int offset,
> > 			    const char *s, int len)
> > {
> > -	const char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);
> > +	int olen;
> > +	const char *p = fdt_get_name(fdt, offset, &olen);
> > 
> > -	if (! p)
> > +	if (!p || olen < len)
> > 		/* short match */
> > 		return 0;
> > 
> > @@ -73,37 +31,174 @@ static int _fdt_nodename_eq(const void *fdt, int offset,
> > 		return 0;
> > }
> > 
> > +const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
> > +{
> > +	int32_t totalsize;
> > +	uint32_t absoffset;
> > +	size_t len;
> > +	int err;
> > +	const char *s, *n;
> > +
> > +	if (can_assume(VALID_INPUT)) {
> > +		s = (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
> > +
> > +		if (lenp)
> > +			*lenp = strlen(s);
> > +		return s;
> > +	}
> > +	totalsize = fdt_ro_probe_(fdt);
> > +	err = totalsize;
> > +	if (totalsize < 0)
> > +		goto fail;
> > +
> > +	err = -FDT_ERR_BADOFFSET;
> > +	absoffset = stroffset + fdt_off_dt_strings(fdt);
> > +	if (absoffset >= (unsigned)totalsize)
> > +		goto fail;
> > +	len = totalsize - absoffset;
> > +
> > +	if (fdt_magic(fdt) == FDT_MAGIC) {
> > +		if (stroffset < 0)
> > +			goto fail;
> > +		if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
> > +			if ((unsigned)stroffset >= fdt_size_dt_strings(fdt))
> > +				goto fail;
> > +			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
> > +				len = fdt_size_dt_strings(fdt) - stroffset;
> > +		}
> > +	} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
> > +		unsigned int sw_stroffset = -stroffset;
> > +
> > +		if ((stroffset >= 0) ||
> > +		    (sw_stroffset > fdt_size_dt_strings(fdt)))
> > +			goto fail;
> > +		if (sw_stroffset < len)
> > +			len = sw_stroffset;
> > +	} else {
> > +		err = -FDT_ERR_INTERNAL;
> > +		goto fail;
> > +	}
> > +
> > +	s = (const char *)fdt + absoffset;
> > +	n = memchr(s, '\0', len);
> > +	if (!n) {
> > +		/* missing terminating NULL */
> > +		err = -FDT_ERR_TRUNCATED;
> > +		goto fail;
> > +	}
> > +
> > +	if (lenp)
> > +		*lenp = n - s;
> > +	return s;
> > +
> > +fail:
> > +	if (lenp)
> > +		*lenp = err;
> > +	return NULL;
> > +}
> > +
> > const char *fdt_string(const void *fdt, int stroffset)
> > {
> > -	return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
> > +	return fdt_get_string(fdt, stroffset, NULL);
> > }
> > 
> > -static int _fdt_string_eq(const void *fdt, int stroffset,
> > +static int fdt_string_eq_(const void *fdt, int stroffset,
> > 			  const char *s, int len)
> > {
> > -	const char *p = fdt_string(fdt, stroffset);
> > +	int slen;
> > +	const char *p = fdt_get_string(fdt, stroffset, &slen);
> > +
> > +	return p && (slen == len) && (memcmp(p, s, len) == 0);
> > +}
> > +
> > +int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
> > +{
> > +	uint32_t max = 0;
> > +	int offset = -1;
> > +
> > +	while (true) {
> > +		uint32_t value;
> > +
> > +		offset = fdt_next_node(fdt, offset, NULL);
> > +		if (offset < 0) {
> > +			if (offset == -FDT_ERR_NOTFOUND)
> > +				break;
> > +
> > +			return offset;
> > +		}
> > +
> > +		value = fdt_get_phandle(fdt, offset);
> > +
> > +		if (value > max)
> > +			max = value;
> > +	}
> > +
> > +	if (phandle)
> > +		*phandle = max;
> > +
> > +	return 0;
> > +}
> > +
> > +int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
> > +{
> > +	uint32_t max;
> > +	int err;
> > +
> > +	err = fdt_find_max_phandle(fdt, &max);
> > +	if (err < 0)
> > +		return err;
> > +
> > +	if (max == FDT_MAX_PHANDLE)
> > +		return -FDT_ERR_NOPHANDLES;
> > +
> > +	if (phandle)
> > +		*phandle = max + 1;
> > +
> > +	return 0;
> > +}
> > 
> > -	return (strlen(p) == len) && (memcmp(p, s, len) == 0);
> > +static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int n)
> > +{
> > +	unsigned int offset = n * sizeof(struct fdt_reserve_entry);
> > +	unsigned int absoffset = fdt_off_mem_rsvmap(fdt) + offset;
> > +
> > +	if (!can_assume(VALID_INPUT)) {
> > +		if (absoffset < fdt_off_mem_rsvmap(fdt))
> > +			return NULL;
> > +		if (absoffset > fdt_totalsize(fdt) -
> > +		    sizeof(struct fdt_reserve_entry))
> > +			return NULL;
> > +	}
> > +	return fdt_mem_rsv_(fdt, n);
> > }
> > 
> > int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size)
> > {
> > -	FDT_CHECK_HEADER(fdt);
> > -	*address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address);
> > -	*size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size);
> > +	const struct fdt_reserve_entry *re;
> > +
> > +	FDT_RO_PROBE(fdt);
> > +	re = fdt_mem_rsv(fdt, n);
> > +	if (!can_assume(VALID_INPUT) && !re)
> > +		return -FDT_ERR_BADOFFSET;
> > +
> > +	*address = fdt64_ld_(&re->address);
> > +	*size = fdt64_ld_(&re->size);
> > 	return 0;
> > }
> > 
> > int fdt_num_mem_rsv(const void *fdt)
> > {
> > -	int i = 0;
> > +	int i;
> > +	const struct fdt_reserve_entry *re;
> > 
> > -	while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0)
> > -		i++;
> > -	return i;
> > +	for (i = 0; (re = fdt_mem_rsv(fdt, i)) != NULL; i++) {
> > +		if (fdt64_ld_(&re->size) == 0)
> > +			return i;
> > +	}
> > +	return -FDT_ERR_TRUNCATED;
> > }
> > 
> > -static int _nextprop(const void *fdt, int offset)
> > +static int nextprop_(const void *fdt, int offset)
> > {
> > 	uint32_t tag;
> > 	int nextoffset;
> > @@ -132,13 +227,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int offset,
> > {
> > 	int depth;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	for (depth = 0;
> > 	     (offset >= 0) && (depth >= 0);
> > 	     offset = fdt_next_node(fdt, offset, &depth))
> > 		if ((depth == 1)
> > -		    && _fdt_nodename_eq(fdt, offset, name, namelen))
> > +		    && fdt_nodename_eq_(fdt, offset, name, namelen))
> > 			return offset;
> > 
> > 	if (depth < 0)
> > @@ -152,17 +247,17 @@ int fdt_subnode_offset(const void *fdt, int parentoffset,
> > 	return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name));
> > }
> > 
> > -int fdt_path_offset(const void *fdt, const char *path)
> > +int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen)
> > {
> > -	const char *end = path + strlen(path);
> > +	const char *end = path + namelen;
> > 	const char *p = path;
> > 	int offset = 0;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	/* see if we have an alias */
> > 	if (*path != '/') {
> > -		const char *q = strchr(path, '/');
> > +		const char *q = memchr(path, '/', end - p);
> > 
> > 		if (!q)
> > 			q = end;
> > @@ -175,14 +270,15 @@ int fdt_path_offset(const void *fdt, const char *path)
> > 		p = q;
> > 	}
> > 
> > -	while (*p) {
> > +	while (p < end) {
> > 		const char *q;
> > 
> > -		while (*p == '/')
> > +		while (*p == '/') {
> > 			p++;
> > -		if (! *p)
> > -			return offset;
> > -		q = strchr(p, '/');
> > +			if (p == end)
> > +				return offset;
> > +		}
> > +		q = memchr(p, '/', end - p);
> > 		if (! q)
> > 			q = end;
> > 
> > @@ -196,19 +292,42 @@ int fdt_path_offset(const void *fdt, const char *path)
> > 	return offset;
> > }
> > 
> > +int fdt_path_offset(const void *fdt, const char *path)
> > +{
> > +	return fdt_path_offset_namelen(fdt, path, strlen(path));
> > +}
> > +
> > const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
> > {
> > -	const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset);
> > +	const struct fdt_node_header *nh = fdt_offset_ptr_(fdt, nodeoffset);
> > +	const char *nameptr;
> > 	int err;
> > 
> > -	if (((err = fdt_check_header(fdt)) != 0)
> > -	    || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0))
> > +	if (((err = fdt_ro_probe_(fdt)) < 0)
> > +	    || ((err = fdt_check_node_offset_(fdt, nodeoffset)) < 0))
> > +			goto fail;
> > +
> > +	nameptr = nh->name;
> > +
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> > +		/*
> > +		 * For old FDT versions, match the naming conventions of V16:
> > +		 * give only the leaf name (after all /). The actual tree
> > +		 * contents are loosely checked.
> > +		 */
> > +		const char *leaf;
> > +		leaf = strrchr(nameptr, '/');
> > +		if (leaf == NULL) {
> > +			err = -FDT_ERR_BADSTRUCTURE;
> > 			goto fail;
> > +		}
> > +		nameptr = leaf+1;
> > +	}
> > 
> > 	if (len)
> > -		*len = strlen(nh->name);
> > +		*len = strlen(nameptr);
> > 
> > -	return nh->name;
> > +	return nameptr;
> > 
> >  fail:
> > 	if (len)
> > @@ -220,58 +339,81 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset)
> > {
> > 	int offset;
> > 
> > -	if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
> > +	if ((offset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
> > 		return offset;
> > 
> > -	return _nextprop(fdt, offset);
> > +	return nextprop_(fdt, offset);
> > }
> > 
> > int fdt_next_property_offset(const void *fdt, int offset)
> > {
> > -	if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0)
> > +	if ((offset = fdt_check_prop_offset_(fdt, offset)) < 0)
> > 		return offset;
> > 
> > -	return _nextprop(fdt, offset);
> > +	return nextprop_(fdt, offset);
> > }
> > 
> > -const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> > -						      int offset,
> > -						      int *lenp)
> > +static const struct fdt_property *fdt_get_property_by_offset_(const void *fdt,
> > +						              int offset,
> > +						              int *lenp)
> > {
> > 	int err;
> > 	const struct fdt_property *prop;
> > 
> > -	if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) {
> > +	if (!can_assume(VALID_INPUT) &&
> > +	    (err = fdt_check_prop_offset_(fdt, offset)) < 0) {
> > 		if (lenp)
> > 			*lenp = err;
> > 		return NULL;
> > 	}
> > 
> > -	prop = _fdt_offset_ptr(fdt, offset);
> > +	prop = fdt_offset_ptr_(fdt, offset);
> > 
> > 	if (lenp)
> > -		*lenp = fdt32_to_cpu(prop->len);
> > +		*lenp = fdt32_ld_(&prop->len);
> > 
> > 	return prop;
> > }
> > 
> > -const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> > -						    int offset,
> > -						    const char *name,
> > -						    int namelen, int *lenp)
> > +const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> > +						      int offset,
> > +						      int *lenp)
> > +{
> > +	/* Prior to version 16, properties may need realignment
> > +	 * and this API does not work. fdt_getprop_*() will, however. */
> > +
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> > +		if (lenp)
> > +			*lenp = -FDT_ERR_BADVERSION;
> > +		return NULL;
> > +	}
> > +
> > +	return fdt_get_property_by_offset_(fdt, offset, lenp);
> > +}
> > +
> > +static const struct fdt_property *fdt_get_property_namelen_(const void *fdt,
> > +						            int offset,
> > +						            const char *name,
> > +						            int namelen,
> > +							    int *lenp,
> > +							    int *poffset)
> > {
> > 	for (offset = fdt_first_property_offset(fdt, offset);
> > 	     (offset >= 0);
> > 	     (offset = fdt_next_property_offset(fdt, offset))) {
> > 		const struct fdt_property *prop;
> > 
> > -		if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) {
> > +		prop = fdt_get_property_by_offset_(fdt, offset, lenp);
> > +		if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
> > 			offset = -FDT_ERR_INTERNAL;
> > 			break;
> > 		}
> > -		if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff),
> > -				   name, namelen))
> > +		if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
> > +				   name, namelen)) {
> > +			if (poffset)
> > +				*poffset = offset;
> > 			return prop;
> > +		}
> > 	}
> > 
> > 	if (lenp)
> > @@ -279,6 +421,25 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> > 	return NULL;
> > }
> > 
> > +
> > +const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> > +						    int offset,
> > +						    const char *name,
> > +						    int namelen, int *lenp)
> > +{
> > +	/* Prior to version 16, properties may need realignment
> > +	 * and this API does not work. fdt_getprop_*() will, however. */
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
> > +		if (lenp)
> > +			*lenp = -FDT_ERR_BADVERSION;
> > +		return NULL;
> > +	}
> > +
> > +	return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
> > +					 NULL);
> > +}
> > +
> > +
> > const struct fdt_property *fdt_get_property(const void *fdt,
> > 					    int nodeoffset,
> > 					    const char *name, int *lenp)
> > @@ -290,12 +451,18 @@ const struct fdt_property *fdt_get_property(const void *fdt,
> > const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> > 				const char *name, int namelen, int *lenp)
> > {
> > +	int poffset;
> > 	const struct fdt_property *prop;
> > 
> > -	prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp);
> > -	if (! prop)
> > +	prop = fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp,
> > +					 &poffset);
> > +	if (!prop)
> > 		return NULL;
> > 
> > +	/* Handle realignment */
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
> > +	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
> > +		return prop->data + 4;
> > 	return prop->data;
> > }
> > 
> > @@ -304,11 +471,31 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
> > {
> > 	const struct fdt_property *prop;
> > 
> > -	prop = fdt_get_property_by_offset(fdt, offset, lenp);
> > +	prop = fdt_get_property_by_offset_(fdt, offset, lenp);
> > 	if (!prop)
> > 		return NULL;
> > -	if (namep)
> > -		*namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
> > +	if (namep) {
> > +		const char *name;
> > +		int namelen;
> > +
> > +		if (!can_assume(VALID_INPUT)) {
> > +			name = fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
> > +					      &namelen);
> > +			if (!name) {
> > +				if (lenp)
> > +					*lenp = namelen;
> > +				return NULL;
> > +			}
> > +			*namep = name;
> > +		} else {
> > +			*namep = fdt_string(fdt, fdt32_ld_(&prop->nameoff));
> > +		}
> > +	}
> > +
> > +	/* Handle realignment */
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
> > +	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
> > +		return prop->data + 4;
> > 	return prop->data;
> > }
> > 
> > @@ -332,7 +519,7 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)
> > 			return 0;
> > 	}
> > 
> > -	return fdt32_to_cpu(*php);
> > +	return fdt32_ld_(php);
> > }
> > 
> > const char *fdt_get_alias_namelen(const void *fdt,
> > @@ -358,7 +545,7 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen)
> > 	int offset, depth, namelen;
> > 	const char *name;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	if (buflen < 2)
> > 		return -FDT_ERR_NOSPACE;
> > @@ -410,7 +597,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
> > 	int offset, depth;
> > 	int supernodeoffset = -FDT_ERR_INTERNAL;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	if (supernodedepth < 0)
> > 		return -FDT_ERR_NOTFOUND;
> > @@ -432,10 +619,12 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
> > 		}
> > 	}
> > 
> > -	if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
> > -		return -FDT_ERR_BADOFFSET;
> > -	else if (offset == -FDT_ERR_BADOFFSET)
> > -		return -FDT_ERR_BADSTRUCTURE;
> > +	if (!can_assume(VALID_INPUT)) {
> > +		if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
> > +			return -FDT_ERR_BADOFFSET;
> > +		else if (offset == -FDT_ERR_BADOFFSET)
> > +			return -FDT_ERR_BADSTRUCTURE;
> > +	}
> > 
> > 	return offset; /* error from fdt_next_node() */
> > }
> > @@ -447,7 +636,8 @@ int fdt_node_depth(const void *fdt, int nodeoffset)
> > 
> > 	err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
> > 	if (err)
> > -		return (err < 0) ? err : -FDT_ERR_INTERNAL;
> > +		return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
> > +			-FDT_ERR_INTERNAL;
> > 	return nodedepth;
> > }
> > 
> > @@ -469,7 +659,7 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
> > 	const void *val;
> > 	int len;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	/* FIXME: The algorithm here is pretty horrible: we scan each
> > 	 * property of a node in fdt_getprop(), then if that didn't
> > @@ -492,10 +682,10 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
> > {
> > 	int offset;
> > 
> > -	if ((phandle == 0) || (phandle == -1))
> > +	if ((phandle == 0) || (phandle == ~0U))
> > 		return -FDT_ERR_BADPHANDLE;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	/* FIXME: The algorithm here is pretty horrible: we
> > 	 * potentially scan each property of a node in
> > @@ -530,6 +720,106 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
> > 	return 0;
> > }
> > 
> > +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
> > +{
> > +	const char *list, *end;
> > +	int length, count = 0;
> > +
> > +	list = fdt_getprop(fdt, nodeoffset, property, &length);
> > +	if (!list)
> > +		return length;
> > +
> > +	end = list + length;
> > +
> > +	while (list < end) {
> > +		length = strnlen(list, end - list) + 1;
> > +
> > +		/* Abort if the last string isn't properly NUL-terminated. */
> > +		if (list + length > end)
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		list += length;
> > +		count++;
> > +	}
> > +
> > +	return count;
> > +}
> > +
> > +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
> > +			  const char *string)
> > +{
> > +	int length, len, idx = 0;
> > +	const char *list, *end;
> > +
> > +	list = fdt_getprop(fdt, nodeoffset, property, &length);
> > +	if (!list)
> > +		return length;
> > +
> > +	len = strlen(string) + 1;
> > +	end = list + length;
> > +
> > +	while (list < end) {
> > +		length = strnlen(list, end - list) + 1;
> > +
> > +		/* Abort if the last string isn't properly NUL-terminated. */
> > +		if (list + length > end)
> > +			return -FDT_ERR_BADVALUE;
> > +
> > +		if (length == len && memcmp(list, string, length) == 0)
> > +			return idx;
> > +
> > +		list += length;
> > +		idx++;
> > +	}
> > +
> > +	return -FDT_ERR_NOTFOUND;
> > +}
> > +
> > +const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
> > +			       const char *property, int idx,
> > +			       int *lenp)
> > +{
> > +	const char *list, *end;
> > +	int length;
> > +
> > +	list = fdt_getprop(fdt, nodeoffset, property, &length);
> > +	if (!list) {
> > +		if (lenp)
> > +			*lenp = length;
> > +
> > +		return NULL;
> > +	}
> > +
> > +	end = list + length;
> > +
> > +	while (list < end) {
> > +		length = strnlen(list, end - list) + 1;
> > +
> > +		/* Abort if the last string isn't properly NUL-terminated. */
> > +		if (list + length > end) {
> > +			if (lenp)
> > +				*lenp = -FDT_ERR_BADVALUE;
> > +
> > +			return NULL;
> > +		}
> > +
> > +		if (idx == 0) {
> > +			if (lenp)
> > +				*lenp = length - 1;
> > +
> > +			return list;
> > +		}
> > +
> > +		list += length;
> > +		idx--;
> > +	}
> > +
> > +	if (lenp)
> > +		*lenp = -FDT_ERR_NOTFOUND;
> > +
> > +	return NULL;
> > +}
> > +
> > int fdt_node_check_compatible(const void *fdt, int nodeoffset,
> > 			      const char *compatible)
> > {
> > @@ -539,10 +829,8 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
> > 	prop = fdt_getprop(fdt, nodeoffset, "compatible", &len);
> > 	if (!prop)
> > 		return len;
> > -	if (fdt_stringlist_contains(prop, len, compatible))
> > -		return 0;
> > -	else
> > -		return 1;
> > +
> > +	return !fdt_stringlist_contains(prop, len, compatible);
> > }
> > 
> > int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
> > @@ -550,7 +838,7 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
> > {
> > 	int offset, err;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	/* FIXME: The algorithm here is pretty horrible: we scan each
> > 	 * property of a node in fdt_node_check_compatible(), then if
> > diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
> > index 8b8cd25..3621d36 100644
> > --- a/xen/common/libfdt/fdt_rw.c
> > +++ b/xen/common/libfdt/fdt_rw.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,8 +10,8 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > -static int _fdt_blocks_misordered(const void *fdt,
> > -			      int mem_rsv_size, int struct_size)
> > +static int fdt_blocks_misordered_(const void *fdt,
> > +				  int mem_rsv_size, int struct_size)
> > {
> > 	return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8))
> > 		|| (fdt_off_dt_struct(fdt) <
> > @@ -65,40 +22,44 @@ static int _fdt_blocks_misordered(const void *fdt,
> > 		    (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
> > }
> > 
> > -static int _fdt_rw_check_header(void *fdt)
> > +static int fdt_rw_probe_(void *fdt)
> > {
> > -	FDT_CHECK_HEADER(fdt);
> > +	if (can_assume(VALID_DTB))
> > +		return 0;
> > +	FDT_RO_PROBE(fdt);
> > 
> > -	if (fdt_version(fdt) < 17)
> > +	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
> > 		return -FDT_ERR_BADVERSION;
> > -	if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
> > +	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
> > 				   fdt_size_dt_struct(fdt)))
> > 		return -FDT_ERR_BADLAYOUT;
> > -	if (fdt_version(fdt) > 17)
> > +	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
> > 		fdt_set_version(fdt, 17);
> > 
> > 	return 0;
> > }
> > 
> > -#define FDT_RW_CHECK_HEADER(fdt) \
> > +#define FDT_RW_PROBE(fdt) \
> > 	{ \
> > -		int err; \
> > -		if ((err = _fdt_rw_check_header(fdt)) != 0) \
> > -			return err; \
> > +		int err_; \
> > +		if ((err_ = fdt_rw_probe_(fdt)) != 0) \
> > +			return err_; \
> > 	}
> > 
> > -static inline unsigned int _fdt_data_size(void *fdt)
> > +static inline unsigned int fdt_data_size_(void *fdt)
> > {
> > 	return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
> > }
> > 
> > -static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
> > +static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int newlen)
> > {
> > 	char *p = splicepoint;
> > -	unsigned int dsize = _fdt_data_size(fdt);
> > +	unsigned int dsize = fdt_data_size_(fdt);
> > 	size_t soff = p - (char *)fdt;
> > 
> > -	if (oldlen < 0 || soff + oldlen < soff || soff + oldlen > dsize)
> > +	if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
> > +		return -FDT_ERR_BADOFFSET;
> > +	if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
> > 		return -FDT_ERR_BADOFFSET;
> > 	if (dsize - oldlen + newlen > fdt_totalsize(fdt))
> > 		return -FDT_ERR_NOSPACE;
> > @@ -106,12 +67,12 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen)
> > 	return 0;
> > }
> > 
> > -static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
> > +static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
> > 			       int oldn, int newn)
> > {
> > 	int delta = (newn - oldn) * sizeof(*p);
> > 	int err;
> > -	err = _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
> > +	err = fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
> > 	if (err)
> > 		return err;
> > 	fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
> > @@ -119,13 +80,13 @@ static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p,
> > 	return 0;
> > }
> > 
> > -static int _fdt_splice_struct(void *fdt, void *p,
> > +static int fdt_splice_struct_(void *fdt, void *p,
> > 			      int oldlen, int newlen)
> > {
> > 	int delta = newlen - oldlen;
> > 	int err;
> > 
> > -	if ((err = _fdt_splice(fdt, p, oldlen, newlen)))
> > +	if ((err = fdt_splice_(fdt, p, oldlen, newlen)))
> > 		return err;
> > 
> > 	fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
> > @@ -133,20 +94,37 @@ static int _fdt_splice_struct(void *fdt, void *p,
> > 	return 0;
> > }
> > 
> > -static int _fdt_splice_string(void *fdt, int newlen)
> > +/* Must only be used to roll back in case of error */
> > +static void fdt_del_last_string_(void *fdt, const char *s)
> > +{
> > +	int newlen = strlen(s) + 1;
> > +
> > +	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
> > +}
> > +
> > +static int fdt_splice_string_(void *fdt, int newlen)
> > {
> > 	void *p = (char *)fdt
> > 		+ fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
> > 	int err;
> > 
> > -	if ((err = _fdt_splice(fdt, p, 0, newlen)))
> > +	if ((err = fdt_splice_(fdt, p, 0, newlen)))
> > 		return err;
> > 
> > 	fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
> > 	return 0;
> > }
> > 
> > -static int _fdt_find_add_string(void *fdt, const char *s)
> > +/**
> > + * fdt_find_add_string_() - Find or allocate a string
> > + *
> > + * @fdt: pointer to the device tree to check/adjust
> > + * @s: string to find/add
> > + * @allocated: Set to 0 if the string was found, 1 if not found and so
> > + *	allocated. Ignored if can_assume(NO_ROLLBACK)
> > + * @return offset of string in the string table (whether found or added)
> > + */
> > +static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
> > {
> > 	char *strtab = (char *)fdt + fdt_off_dt_strings(fdt);
> > 	const char *p;
> > @@ -154,16 +132,22 @@ static int _fdt_find_add_string(void *fdt, const char *s)
> > 	int len = strlen(s) + 1;
> > 	int err;
> > 
> > -	p = _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s);
> > +	if (!can_assume(NO_ROLLBACK))
> > +		*allocated = 0;
> > +
> > +	p = fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
> > 	if (p)
> > 		/* found it */
> > 		return (p - strtab);
> > 
> > 	new = strtab + fdt_size_dt_strings(fdt);
> > -	err = _fdt_splice_string(fdt, len);
> > +	err = fdt_splice_string_(fdt, len);
> > 	if (err)
> > 		return err;
> > 
> > +	if (!can_assume(NO_ROLLBACK))
> > +		*allocated = 1;
> > +
> > 	memcpy(new, s, len);
> > 	return (new - strtab);
> > }
> > @@ -173,10 +157,10 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
> > 	struct fdt_reserve_entry *re;
> > 	int err;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > -	re = _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt));
> > -	err = _fdt_splice_mem_rsv(fdt, re, 0, 1);
> > +	re = fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
> > +	err = fdt_splice_mem_rsv_(fdt, re, 0, 1);
> > 	if (err)
> > 		return err;
> > 
> > @@ -187,31 +171,27 @@ int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
> > 
> > int fdt_del_mem_rsv(void *fdt, int n)
> > {
> > -	struct fdt_reserve_entry *re = _fdt_mem_rsv_w(fdt, n);
> > -	int err;
> > +	struct fdt_reserve_entry *re = fdt_mem_rsv_w_(fdt, n);
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	if (n >= fdt_num_mem_rsv(fdt))
> > 		return -FDT_ERR_NOTFOUND;
> > 
> > -	err = _fdt_splice_mem_rsv(fdt, re, 1, 0);
> > -	if (err)
> > -		return err;
> > -	return 0;
> > +	return fdt_splice_mem_rsv_(fdt, re, 1, 0);
> > }
> > 
> > -static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
> > +static int fdt_resize_property_(void *fdt, int nodeoffset, const char *name,
> > 				int len, struct fdt_property **prop)
> > {
> > 	int oldlen;
> > 	int err;
> > 
> > 	*prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
> > -	if (! (*prop))
> > +	if (!*prop)
> > 		return oldlen;
> > 
> > -	if ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
> > +	if ((err = fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
> > 				      FDT_TAGALIGN(len))))
> > 		return err;
> > 
> > @@ -219,27 +199,32 @@ static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,
> > 	return 0;
> > }
> > 
> > -static int _fdt_add_property(void *fdt, int nodeoffset, const char *name,
> > +static int fdt_add_property_(void *fdt, int nodeoffset, const char *name,
> > 			     int len, struct fdt_property **prop)
> > {
> > 	int proplen;
> > 	int nextoffset;
> > 	int namestroff;
> > 	int err;
> > +	int allocated;
> > 
> > -	if ((nextoffset = _fdt_check_node_offset(fdt, nodeoffset)) < 0)
> > +	if ((nextoffset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
> > 		return nextoffset;
> > 
> > -	namestroff = _fdt_find_add_string(fdt, name);
> > +	namestroff = fdt_find_add_string_(fdt, name, &allocated);
> > 	if (namestroff < 0)
> > 		return namestroff;
> > 
> > -	*prop = _fdt_offset_ptr_w(fdt, nextoffset);
> > +	*prop = fdt_offset_ptr_w_(fdt, nextoffset);
> > 	proplen = sizeof(**prop) + FDT_TAGALIGN(len);
> > 
> > -	err = _fdt_splice_struct(fdt, *prop, 0, proplen);
> > -	if (err)
> > +	err = fdt_splice_struct_(fdt, *prop, 0, proplen);
> > +	if (err) {
> > +		/* Delete the string if we failed to add it */
> > +		if (!can_assume(NO_ROLLBACK) && allocated)
> > +			fdt_del_last_string_(fdt, name);
> > 		return err;
> > +	}
> > 
> > 	(*prop)->tag = cpu_to_fdt32(FDT_PROP);
> > 	(*prop)->nameoff = cpu_to_fdt32(namestroff);
> > @@ -253,7 +238,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
> > 	int oldlen, newlen;
> > 	int err;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	namep = (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
> > 	if (!namep)
> > @@ -261,7 +246,7 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
> > 
> > 	newlen = strlen(name);
> > 
> > -	err = _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1),
> > +	err = fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
> > 				 FDT_TAGALIGN(newlen+1));
> > 	if (err)
> > 		return err;
> > @@ -270,21 +255,36 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)
> > 	return 0;
> > }
> > 
> > -int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> > -		const void *val, int len)
> > +int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
> > +			    int len, void **prop_data)
> > {
> > 	struct fdt_property *prop;
> > 	int err;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > -	err = _fdt_resize_property(fdt, nodeoffset, name, len, &prop);
> > +	err = fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
> > 	if (err == -FDT_ERR_NOTFOUND)
> > -		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
> > +		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
> > +	if (err)
> > +		return err;
> > +
> > +	*prop_data = prop->data;
> > +	return 0;
> > +}
> > +
> > +int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> > +		const void *val, int len)
> > +{
> > +	void *prop_data;
> > +	int err;
> > +
> > +	err = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data);
> > 	if (err)
> > 		return err;
> > 
> > -	memcpy(prop->data, val, len);
> > +	if (len)
> > +		memcpy(prop_data, val, len);
> > 	return 0;
> > }
> > 
> > @@ -294,12 +294,12 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
> > 	struct fdt_property *prop;
> > 	int err, oldlen, newlen;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
> > 	if (prop) {
> > 		newlen = len + oldlen;
> > -		err = _fdt_splice_struct(fdt, prop->data,
> > +		err = fdt_splice_struct_(fdt, prop->data,
> > 					 FDT_TAGALIGN(oldlen),
> > 					 FDT_TAGALIGN(newlen));
> > 		if (err)
> > @@ -307,7 +307,7 @@ int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
> > 		prop->len = cpu_to_fdt32(newlen);
> > 		memcpy(prop->data + oldlen, val, len);
> > 	} else {
> > -		err = _fdt_add_property(fdt, nodeoffset, name, len, &prop);
> > +		err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
> > 		if (err)
> > 			return err;
> > 		memcpy(prop->data, val, len);
> > @@ -320,14 +320,14 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name)
> > 	struct fdt_property *prop;
> > 	int len, proplen;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
> > -	if (! prop)
> > +	if (!prop)
> > 		return len;
> > 
> > 	proplen = sizeof(*prop) + FDT_TAGALIGN(len);
> > -	return _fdt_splice_struct(fdt, prop, proplen, 0);
> > +	return fdt_splice_struct_(fdt, prop, proplen, 0);
> > }
> > 
> > int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> > @@ -340,7 +340,7 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> > 	uint32_t tag;
> > 	fdt32_t *endtag;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	offset = fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
> > 	if (offset >= 0)
> > @@ -349,16 +349,19 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> > 		return offset;
> > 
> > 	/* Try to place the new node after the parent's properties */
> > -	fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
> > +	tag = fdt_next_tag(fdt, parentoffset, &nextoffset);
> > +	/* the fdt_subnode_offset_namelen() should ensure this never hits */
> > +	if (!can_assume(LIBFDT_FLAWLESS) && (tag != FDT_BEGIN_NODE))
> > +		return -FDT_ERR_INTERNAL;
> > 	do {
> > 		offset = nextoffset;
> > 		tag = fdt_next_tag(fdt, offset, &nextoffset);
> > 	} while ((tag == FDT_PROP) || (tag == FDT_NOP));
> > 
> > -	nh = _fdt_offset_ptr_w(fdt, offset);
> > +	nh = fdt_offset_ptr_w_(fdt, offset);
> > 	nodelen = sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
> > 
> > -	err = _fdt_splice_struct(fdt, nh, 0, nodelen);
> > +	err = fdt_splice_struct_(fdt, nh, 0, nodelen);
> > 	if (err)
> > 		return err;
> > 
> > @@ -380,18 +383,20 @@ int fdt_del_node(void *fdt, int nodeoffset)
> > {
> > 	int endoffset;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > -	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
> > +	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
> > 	if (endoffset < 0)
> > 		return endoffset;
> > 
> > -	return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset),
> > +	return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
> > 				  endoffset - nodeoffset, 0);
> > }
> > 
> > -static void _fdt_packblocks(const char *old, char *new,
> > -			    int mem_rsv_size, int struct_size)
> > +static void fdt_packblocks_(const char *old, char *new,
> > +			    int mem_rsv_size,
> > +			    int struct_size,
> > +			    int strings_size)
> > {
> > 	int mem_rsv_off, struct_off, strings_off;
> > 
> > @@ -406,8 +411,7 @@ static void _fdt_packblocks(const char *old, char *new,
> > 	fdt_set_off_dt_struct(new, struct_off);
> > 	fdt_set_size_dt_struct(new, struct_size);
> > 
> > -	memmove(new + strings_off, old + fdt_off_dt_strings(old),
> > -		fdt_size_dt_strings(old));
> > +	memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size);
> > 	fdt_set_off_dt_strings(new, strings_off);
> > 	fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
> > }
> > @@ -421,22 +425,25 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
> > 	const char *fdtend = fdtstart + fdt_totalsize(fdt);
> > 	char *tmp;
> > 
> > -	FDT_CHECK_HEADER(fdt);
> > +	FDT_RO_PROBE(fdt);
> > 
> > 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
> > 		* sizeof(struct fdt_reserve_entry);
> > 
> > -	if (fdt_version(fdt) >= 17) {
> > +	if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
> > 		struct_size = fdt_size_dt_struct(fdt);
> > -	} else {
> > +	} else if (fdt_version(fdt) == 16) {
> > 		struct_size = 0;
> > 		while (fdt_next_tag(fdt, struct_size, &struct_size) != FDT_END)
> > 			;
> > 		if (struct_size < 0)
> > 			return struct_size;
> > +	} else {
> > +		return -FDT_ERR_BADVERSION;
> > 	}
> > 
> > -	if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) {
> > +	if (can_assume(LIBFDT_ORDER) ||
> > +	    !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
> > 		/* no further work necessary */
> > 		err = fdt_move(fdt, buf, bufsize);
> > 		if (err)
> > @@ -464,7 +471,8 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
> > 			return -FDT_ERR_NOSPACE;
> > 	}
> > 
> > -	_fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size);
> > +	fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
> > +			fdt_size_dt_strings(fdt));
> > 	memmove(buf, tmp, newsize);
> > 
> > 	fdt_set_magic(buf, FDT_MAGIC);
> > @@ -480,12 +488,13 @@ int fdt_pack(void *fdt)
> > {
> > 	int mem_rsv_size;
> > 
> > -	FDT_RW_CHECK_HEADER(fdt);
> > +	FDT_RW_PROBE(fdt);
> > 
> > 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
> > 		* sizeof(struct fdt_reserve_entry);
> > -	_fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt));
> > -	fdt_set_totalsize(fdt, _fdt_data_size(fdt));
> > +	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
> > +			fdt_size_dt_strings(fdt));
> > +	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
> > 
> > 	return 0;
> > }
> > diff --git a/xen/common/libfdt/fdt_strerror.c b/xen/common/libfdt/fdt_strerror.c
> > index 8d0289c..b435693 100644
> > --- a/xen/common/libfdt/fdt_strerror.c
> > +++ b/xen/common/libfdt/fdt_strerror.c
> > @@ -1,49 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> >  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > @@ -67,6 +25,7 @@ static struct fdt_errtabent fdt_errtable[] = {
> > 
> > 	FDT_ERRTABENT(FDT_ERR_BADOFFSET),
> > 	FDT_ERRTABENT(FDT_ERR_BADPATH),
> > +	FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
> > 	FDT_ERRTABENT(FDT_ERR_BADSTATE),
> > 
> > 	FDT_ERRTABENT(FDT_ERR_TRUNCATED),
> > @@ -74,8 +33,14 @@ static struct fdt_errtabent fdt_errtable[] = {
> > 	FDT_ERRTABENT(FDT_ERR_BADVERSION),
> > 	FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
> > 	FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
> > +	FDT_ERRTABENT(FDT_ERR_INTERNAL),
> > +	FDT_ERRTABENT(FDT_ERR_BADNCELLS),
> > +	FDT_ERRTABENT(FDT_ERR_BADVALUE),
> > +	FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
> > +	FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
> > +	FDT_ERRTABENT(FDT_ERR_BADFLAGS),
> > };
> > -#define FDT_ERRTABSIZE	(sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
> > +#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
> > 
> > const char *fdt_strerror(int errval)
> > {
> > @@ -83,7 +48,7 @@ const char *fdt_strerror(int errval)
> > 		return "<valid offset/length>";
> > 	else if (errval == 0)
> > 		return "<no error>";
> > -	else if (errval > -FDT_ERRTABSIZE) {
> > +	else if (-errval < FDT_ERRTABSIZE) {
> > 		const char *s = fdt_errtable[-errval].str;
> > 
> > 		if (s)
> > diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
> > index c7d93d3..4c569ee 100644
> > --- a/xen/common/libfdt/fdt_sw.c
> > +++ b/xen/common/libfdt/fdt_sw.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,25 +10,91 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > -static int _fdt_sw_check_header(void *fdt)
> > +static int fdt_sw_probe_(void *fdt)
> > +{
> > +	if (!can_assume(VALID_INPUT)) {
> > +		if (fdt_magic(fdt) == FDT_MAGIC)
> > +			return -FDT_ERR_BADSTATE;
> > +		else if (fdt_magic(fdt) != FDT_SW_MAGIC)
> > +			return -FDT_ERR_BADMAGIC;
> > +	}
> > +
> > +	return 0;
> > +}
> > +
> > +#define FDT_SW_PROBE(fdt) \
> > +	{ \
> > +		int err; \
> > +		if ((err = fdt_sw_probe_(fdt)) != 0) \
> > +			return err; \
> > +	}
> > +
> > +/* 'memrsv' state:	Initial state after fdt_create()
> > + *
> > + * Allowed functions:
> > + *	fdt_add_reservemap_entry()
> > + *	fdt_finish_reservemap()		[moves to 'struct' state]
> > + */
> > +static int fdt_sw_probe_memrsv_(void *fdt)
> > +{
> > +	int err = fdt_sw_probe_(fdt);
> > +	if (err)
> > +		return err;
> > +
> > +	if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) != 0)
> > +		return -FDT_ERR_BADSTATE;
> > +	return 0;
> > +}
> > +
> > +#define FDT_SW_PROBE_MEMRSV(fdt) \
> > +	{ \
> > +		int err; \
> > +		if ((err = fdt_sw_probe_memrsv_(fdt)) != 0) \
> > +			return err; \
> > +	}
> > +
> > +/* 'struct' state:	Enter this state after fdt_finish_reservemap()
> > + *
> > + * Allowed functions:
> > + *	fdt_begin_node()
> > + *	fdt_end_node()
> > + *	fdt_property*()
> > + *	fdt_finish()			[moves to 'complete' state]
> > + */
> > +static int fdt_sw_probe_struct_(void *fdt)
> > {
> > -	if (fdt_magic(fdt) != FDT_SW_MAGIC)
> > -		return -FDT_ERR_BADMAGIC;
> > -	/* FIXME: should check more details about the header state */
> > +	int err = fdt_sw_probe_(fdt);
> > +	if (err)
> > +		return err;
> > +
> > +	if (!can_assume(VALID_INPUT) &&
> > +	    fdt_off_dt_strings(fdt) != fdt_totalsize(fdt))
> > +		return -FDT_ERR_BADSTATE;
> > 	return 0;
> > }
> > 
> > -#define FDT_SW_CHECK_HEADER(fdt) \
> > +#define FDT_SW_PROBE_STRUCT(fdt) \
> > 	{ \
> > 		int err; \
> > -		if ((err = _fdt_sw_check_header(fdt)) != 0) \
> > +		if ((err = fdt_sw_probe_struct_(fdt)) != 0) \
> > 			return err; \
> > 	}
> > 
> > -static void *_fdt_grab_space(void *fdt, size_t len)
> > +static inline uint32_t sw_flags(void *fdt)
> > {
> > -	int offset = fdt_size_dt_struct(fdt);
> > -	int spaceleft;
> > +	/* assert: (fdt_magic(fdt) == FDT_SW_MAGIC) */
> > +	return fdt_last_comp_version(fdt);
> > +}
> > +
> > +/* 'complete' state:	Enter this state after fdt_finish()
> > + *
> > + * Allowed functions: none
> > + */
> > +
> > +static void *fdt_grab_space_(void *fdt, size_t len)
> > +{
> > +	unsigned int offset = fdt_size_dt_struct(fdt);
> > +	unsigned int spaceleft;
> > 
> > 	spaceleft = fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
> > 		- fdt_size_dt_strings(fdt);
> > @@ -80,27 +103,84 @@ static void *_fdt_grab_space(void *fdt, size_t len)
> > 		return NULL;
> > 
> > 	fdt_set_size_dt_struct(fdt, offset + len);
> > -	return _fdt_offset_ptr_w(fdt, offset);
> > +	return fdt_offset_ptr_w_(fdt, offset);
> > }
> > 
> > -int fdt_create(void *buf, int bufsize)
> > +int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
> > {
> > +	const int hdrsize = FDT_ALIGN(sizeof(struct fdt_header),
> > +				      sizeof(struct fdt_reserve_entry));
> > 	void *fdt = buf;
> > 
> > -	if (bufsize < sizeof(struct fdt_header))
> > +	if (bufsize < hdrsize)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > +	if (flags & ~FDT_CREATE_FLAGS_ALL)
> > +		return -FDT_ERR_BADFLAGS;
> > +
> > 	memset(buf, 0, bufsize);
> > 
> > +	/*
> > +	 * magic and last_comp_version keep intermediate state during the fdt
> > +	 * creation process, which is replaced with the proper FDT format by
> > +	 * fdt_finish().
> > +	 *
> > +	 * flags should be accessed with sw_flags().
> > +	 */
> > 	fdt_set_magic(fdt, FDT_SW_MAGIC);
> > 	fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
> > -	fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION);
> > +	fdt_set_last_comp_version(fdt, flags);
> > +
> > 	fdt_set_totalsize(fdt,  bufsize);
> > 
> > -	fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header),
> > -					      sizeof(struct fdt_reserve_entry)));
> > +	fdt_set_off_mem_rsvmap(fdt, hdrsize);
> > 	fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
> > -	fdt_set_off_dt_strings(fdt, bufsize);
> > +	fdt_set_off_dt_strings(fdt, 0);
> > +
> > +	return 0;
> > +}
> > +
> > +int fdt_create(void *buf, int bufsize)
> > +{
> > +	return fdt_create_with_flags(buf, bufsize, 0);
> > +}
> > +
> > +int fdt_resize(void *fdt, void *buf, int bufsize)
> > +{
> > +	size_t headsize, tailsize;
> > +	char *oldtail, *newtail;
> > +
> > +	FDT_SW_PROBE(fdt);
> > +
> > +	if (bufsize < 0)
> > +		return -FDT_ERR_NOSPACE;
> > +
> > +	headsize = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> > +	tailsize = fdt_size_dt_strings(fdt);
> > +
> > +	if (!can_assume(VALID_DTB) &&
> > +	    headsize + tailsize > fdt_totalsize(fdt))
> > +		return -FDT_ERR_INTERNAL;
> > +
> > +	if ((headsize + tailsize) > (unsigned)bufsize)
> > +		return -FDT_ERR_NOSPACE;
> > +
> > +	oldtail = (char *)fdt + fdt_totalsize(fdt) - tailsize;
> > +	newtail = (char *)buf + bufsize - tailsize;
> > +
> > +	/* Two cases to avoid clobbering data if the old and new
> > +	 * buffers partially overlap */
> > +	if (buf <= fdt) {
> > +		memmove(buf, fdt, headsize);
> > +		memmove(newtail, oldtail, tailsize);
> > +	} else {
> > +		memmove(newtail, oldtail, tailsize);
> > +		memmove(buf, fdt, headsize);
> > +	}
> > +
> > +	fdt_set_totalsize(buf, bufsize);
> > +	if (fdt_off_dt_strings(buf))
> > +		fdt_set_off_dt_strings(buf, bufsize);
> > 
> > 	return 0;
> > }
> > @@ -110,10 +190,7 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
> > 	struct fdt_reserve_entry *re;
> > 	int offset;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > -
> > -	if (fdt_size_dt_struct(fdt))
> > -		return -FDT_ERR_BADSTATE;
> > +	FDT_SW_PROBE_MEMRSV(fdt);
> > 
> > 	offset = fdt_off_dt_struct(fdt);
> > 	if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
> > @@ -130,17 +207,24 @@ int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
> > 
> > int fdt_finish_reservemap(void *fdt)
> > {
> > -	return fdt_add_reservemap_entry(fdt, 0, 0);
> > +	int err = fdt_add_reservemap_entry(fdt, 0, 0);
> > +
> > +	if (err)
> > +		return err;
> > +
> > +	fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
> > +	return 0;
> > }
> > 
> > int fdt_begin_node(void *fdt, const char *name)
> > {
> > 	struct fdt_node_header *nh;
> > -	int namelen = strlen(name) + 1;
> > +	int namelen;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > +	FDT_SW_PROBE_STRUCT(fdt);
> > 
> > -	nh = _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
> > +	namelen = strlen(name) + 1;
> > +	nh = fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
> > 	if (! nh)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > @@ -153,9 +237,9 @@ int fdt_end_node(void *fdt)
> > {
> > 	fdt32_t *en;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > +	FDT_SW_PROBE_STRUCT(fdt);
> > 
> > -	en = _fdt_grab_space(fdt, FDT_TAGSIZE);
> > +	en = fdt_grab_space_(fdt, FDT_TAGSIZE);
> > 	if (! en)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > @@ -163,48 +247,90 @@ int fdt_end_node(void *fdt)
> > 	return 0;
> > }
> > 
> > -static int _fdt_find_add_string(void *fdt, const char *s)
> > +static int fdt_add_string_(void *fdt, const char *s)
> > {
> > 	char *strtab = (char *)fdt + fdt_totalsize(fdt);
> > -	const char *p;
> > +	unsigned int strtabsize = fdt_size_dt_strings(fdt);
> > +	unsigned int len = strlen(s) + 1;
> > +	unsigned int struct_top, offset;
> > +
> > +	offset = strtabsize + len;
> > +	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> > +	if (fdt_totalsize(fdt) - offset < struct_top)
> > +		return 0; /* no more room :( */
> > +
> > +	memcpy(strtab - offset, s, len);
> > +	fdt_set_size_dt_strings(fdt, strtabsize + len);
> > +	return -offset;
> > +}
> > +
> > +/* Must only be used to roll back in case of error */
> > +static void fdt_del_last_string_(void *fdt, const char *s)
> > +{
> > 	int strtabsize = fdt_size_dt_strings(fdt);
> > 	int len = strlen(s) + 1;
> > -	int struct_top, offset;
> > 
> > -	p = _fdt_find_string(strtab - strtabsize, strtabsize, s);
> > +	fdt_set_size_dt_strings(fdt, strtabsize - len);
> > +}
> > +
> > +static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
> > +{
> > +	char *strtab = (char *)fdt + fdt_totalsize(fdt);
> > +	int strtabsize = fdt_size_dt_strings(fdt);
> > +	const char *p;
> > +
> > +	*allocated = 0;
> > +
> > +	p = fdt_find_string_(strtab - strtabsize, strtabsize, s);
> > 	if (p)
> > 		return p - strtab;
> > 
> > -	/* Add it */
> > -	offset = -strtabsize - len;
> > -	struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
> > -	if (fdt_totalsize(fdt) + offset < struct_top)
> > -		return 0; /* no more room :( */
> > +	*allocated = 1;
> > 
> > -	memcpy(strtab + offset, s, len);
> > -	fdt_set_size_dt_strings(fdt, strtabsize + len);
> > -	return offset;
> > +	return fdt_add_string_(fdt, s);
> > }
> > 
> > -int fdt_property(void *fdt, const char *name, const void *val, int len)
> > +int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)
> > {
> > 	struct fdt_property *prop;
> > 	int nameoff;
> > +	int allocated;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > +	FDT_SW_PROBE_STRUCT(fdt);
> > 
> > -	nameoff = _fdt_find_add_string(fdt, name);
> > +	/* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
> > +	if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
> > +		allocated = 1;
> > +		nameoff = fdt_add_string_(fdt, name);
> > +	} else {
> > +		nameoff = fdt_find_add_string_(fdt, name, &allocated);
> > +	}
> > 	if (nameoff == 0)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > -	prop = _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
> > -	if (! prop)
> > +	prop = fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
> > +	if (! prop) {
> > +		if (allocated)
> > +			fdt_del_last_string_(fdt, name);
> > 		return -FDT_ERR_NOSPACE;
> > +	}
> > 
> > 	prop->tag = cpu_to_fdt32(FDT_PROP);
> > 	prop->nameoff = cpu_to_fdt32(nameoff);
> > 	prop->len = cpu_to_fdt32(len);
> > -	memcpy(prop->data, val, len);
> > +	*valp = prop->data;
> > +	return 0;
> > +}
> > +
> > +int fdt_property(void *fdt, const char *name, const void *val, int len)
> > +{
> > +	void *ptr;
> > +	int ret;
> > +
> > +	ret = fdt_property_placeholder(fdt, name, len, &ptr);
> > +	if (ret)
> > +		return ret;
> > +	memcpy(ptr, val, len);
> > 	return 0;
> > }
> > 
> > @@ -216,10 +342,10 @@ int fdt_finish(void *fdt)
> > 	uint32_t tag;
> > 	int offset, nextoffset;
> > 
> > -	FDT_SW_CHECK_HEADER(fdt);
> > +	FDT_SW_PROBE_STRUCT(fdt);
> > 
> > 	/* Add terminator */
> > -	end = _fdt_grab_space(fdt, sizeof(*end));
> > +	end = fdt_grab_space_(fdt, sizeof(*end));
> > 	if (! end)
> > 		return -FDT_ERR_NOSPACE;
> > 	*end = cpu_to_fdt32(FDT_END);
> > @@ -235,7 +361,7 @@ int fdt_finish(void *fdt)
> > 	while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {
> > 		if (tag == FDT_PROP) {
> > 			struct fdt_property *prop =
> > -				_fdt_offset_ptr_w(fdt, offset);
> > +				fdt_offset_ptr_w_(fdt, offset);
> > 			int nameoff;
> > 
> > 			nameoff = fdt32_to_cpu(prop->nameoff);
> > @@ -249,6 +375,10 @@ int fdt_finish(void *fdt)
> > 
> > 	/* Finally, adjust the header */
> > 	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
> > +
> > +	/* And fix up fields that were keeping intermediate state. */
> > +	fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
> > 	fdt_set_magic(fdt, FDT_MAGIC);
> > +
> > 	return 0;
> > }
> > diff --git a/xen/common/libfdt/fdt_wip.c b/xen/common/libfdt/fdt_wip.c
> > index 2d1cac0..c2d7566 100644
> > --- a/xen/common/libfdt/fdt_wip.c
> > +++ b/xen/common/libfdt/fdt_wip.c
> > @@ -1,50 +1,7 @@
> > +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include "libfdt_env.h"
> > 
> > @@ -53,24 +10,45 @@
> > 
> > #include "libfdt_internal.h"
> > 
> > +int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
> > +					const char *name, int namelen,
> > +					uint32_t idx, const void *val,
> > +					int len)
> > +{
> > +	void *propval;
> > +	int proplen;
> > +
> > +	propval = fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
> > +					&proplen);
> > +	if (!propval)
> > +		return proplen;
> > +
> > +	if ((unsigned)proplen < (len + idx))
> > +		return -FDT_ERR_NOSPACE;
> > +
> > +	memcpy((char *)propval + idx, val, len);
> > +	return 0;
> > +}
> > +
> > int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
> > 			const void *val, int len)
> > {
> > -	void *propval;
> > +	const void *propval;
> > 	int proplen;
> > 
> > -	propval = fdt_getprop_w(fdt, nodeoffset, name, &proplen);
> > -	if (! propval)
> > +	propval = fdt_getprop(fdt, nodeoffset, name, &proplen);
> > +	if (!propval)
> > 		return proplen;
> > 
> > 	if (proplen != len)
> > 		return -FDT_ERR_NOSPACE;
> > 
> > -	memcpy(propval, val, len);
> > -	return 0;
> > +	return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
> > +						   strlen(name), 0,
> > +						   val, len);
> > }
> > 
> > -static void _fdt_nop_region(void *start, int len)
> > +static void fdt_nop_region_(void *start, int len)
> > {
> > 	fdt32_t *p;
> > 
> > @@ -84,15 +62,15 @@ int fdt_nop_property(void *fdt, int nodeoffset, const char *name)
> > 	int len;
> > 
> > 	prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
> > -	if (! prop)
> > +	if (!prop)
> > 		return len;
> > 
> > -	_fdt_nop_region(prop, len + sizeof(*prop));
> > +	fdt_nop_region_(prop, len + sizeof(*prop));
> > 
> > 	return 0;
> > }
> > 
> > -int _fdt_node_end_offset(void *fdt, int offset)
> > +int fdt_node_end_offset_(void *fdt, int offset)
> > {
> > 	int depth = 0;
> > 
> > @@ -106,11 +84,11 @@ int fdt_nop_node(void *fdt, int nodeoffset)
> > {
> > 	int endoffset;
> > 
> > -	endoffset = _fdt_node_end_offset(fdt, nodeoffset);
> > +	endoffset = fdt_node_end_offset_(fdt, nodeoffset);
> > 	if (endoffset < 0)
> > 		return endoffset;
> > 
> > -	_fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0),
> > +	fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
> > 			endoffset - nodeoffset);
> > 	return 0;
> > }
> > diff --git a/xen/common/libfdt/libfdt_internal.h b/xen/common/libfdt/libfdt_internal.h
> > index d50c4e1..16bda19 100644
> > --- a/xen/common/libfdt/libfdt_internal.h
> > +++ b/xen/common/libfdt/libfdt_internal.h
> > @@ -1,81 +1,39 @@
> > -#ifndef _LIBFDT_INTERNAL_H
> > -#define _LIBFDT_INTERNAL_H
> > +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> > +#ifndef LIBFDT_INTERNAL_H
> > +#define LIBFDT_INTERNAL_H
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > #include <fdt.h>
> > 
> > #define FDT_ALIGN(x, a)		(((x) + (a) - 1) & ~((a) - 1))
> > #define FDT_TAGALIGN(x)		(FDT_ALIGN((x), FDT_TAGSIZE))
> > 
> > -#define FDT_CHECK_HEADER(fdt) \
> > -	{ \
> > -		int err; \
> > -		if ((err = fdt_check_header(fdt)) != 0) \
> > -			return err; \
> > +int32_t fdt_ro_probe_(const void *fdt);
> > +#define FDT_RO_PROBE(fdt)					\
> > +	{							\
> > +		int32_t totalsize_;				\
> > +		if ((totalsize_ = fdt_ro_probe_(fdt)) < 0)	\
> > +			return totalsize_;			\
> > 	}
> > 
> > -int _fdt_check_node_offset(const void *fdt, int offset);
> > -int _fdt_check_prop_offset(const void *fdt, int offset);
> > -const char *_fdt_find_string(const char *strtab, int tabsize, const char *s);
> > -int _fdt_node_end_offset(void *fdt, int nodeoffset);
> > +int fdt_check_node_offset_(const void *fdt, int offset);
> > +int fdt_check_prop_offset_(const void *fdt, int offset);
> > +const char *fdt_find_string_(const char *strtab, int tabsize, const char *s);
> > +int fdt_node_end_offset_(void *fdt, int nodeoffset);
> > 
> > -static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
> > +static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
> > {
> > 	return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
> > }
> > 
> > -static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
> > +static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
> > {
> > -	return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
> > +	return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
> > }
> > 
> > -static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int n)
> > +static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *fdt, int n)
> > {
> > 	const struct fdt_reserve_entry *rsv_table =
> > 		(const struct fdt_reserve_entry *)
> > @@ -83,11 +41,152 @@ static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int
> > 
> > 	return rsv_table + n;
> > }
> > -static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
> > +static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
> > +{
> > +	return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
> > +}
> > +
> > +/*
> > + * Internal helpers to access tructural elements of the device tree
> > + * blob (rather than for exaple reading integers from within property
> > + * values).  We assume that we are either given a naturally aligned
> > + * address for the platform or if we are not, we are on a platform
> > + * where unaligned memory reads will be handled in a graceful manner.
> > + * If not the external helpers fdtXX_ld() from libfdt.h can be used
> > + * instead.
> > + */
> > +static inline uint32_t fdt32_ld_(const fdt32_t *p)
> > {
> > -	return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
> > +	return fdt32_to_cpu(*p);
> > +}
> > +
> > +static inline uint64_t fdt64_ld_(const fdt64_t *p)
> > +{
> > +	return fdt64_to_cpu(*p);
> > }
> > 
> > #define FDT_SW_MAGIC		(~FDT_MAGIC)
> > 
> > -#endif /* _LIBFDT_INTERNAL_H */
> > +/**********************************************************************/
> > +/* Checking controls                                                  */
> > +/**********************************************************************/
> > +
> > +#ifndef FDT_ASSUME_MASK
> > +#define FDT_ASSUME_MASK 0
> > +#endif
> > +
> > +/*
> > + * Defines assumptions which can be enabled. Each of these can be enabled
> > + * individually. For maximum safety, don't enable any assumptions!
> > + *
> > + * For minimal code size and no safety, use ASSUME_PERFECT at your own risk.
> > + * You should have another method of validating the device tree, such as a
> > + * signature or hash check before using libfdt.
> > + *
> > + * For situations where security is not a concern it may be safe to enable
> > + * ASSUME_SANE.
> > + */
> > +enum {
> > +	/*
> > +	 * This does essentially no checks. Only the latest device-tree
> > +	 * version is correctly handled. Inconsistencies or errors in the device
> > +	 * tree may cause undefined behaviour or crashes. Invalid parameters
> > +	 * passed to libfdt may do the same.
> > +	 *
> > +	 * If an error occurs when modifying the tree it may leave the tree in
> > +	 * an intermediate (but valid) state. As an example, adding a property
> > +	 * where there is insufficient space may result in the property name
> > +	 * being added to the string table even though the property itself is
> > +	 * not added to the struct section.
> > +	 *
> > +	 * Only use this if you have a fully validated device tree with
> > +	 * the latest supported version and wish to minimise code size.
> > +	 */
> > +	ASSUME_PERFECT		= 0xff,
> > +
> > +	/*
> > +	 * This assumes that the device tree is sane. i.e. header metadata
> > +	 * and basic hierarchy are correct.
> > +	 *
> > +	 * With this assumption enabled, normal device trees produced by libfdt
> > +	 * and the compiler should be handled safely. Malicious device trees and
> > +	 * complete garbage may cause libfdt to behave badly or crash. Truncated
> > +	 * device trees (e.g. those only partially loaded) can also cause
> > +	 * problems.
> > +	 *
> > +	 * Note: Only checks that relate exclusively to the device tree itself
> > +	 * (not the parameters passed to libfdt) are disabled by this
> > +	 * assumption. This includes checking headers, tags and the like.
> > +	 */
> > +	ASSUME_VALID_DTB	= 1 << 0,
> > +
> > +	/*
> > +	 * This builds on ASSUME_VALID_DTB and further assumes that libfdt
> > +	 * functions are called with valid parameters, i.e. not trigger
> > +	 * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
> > +	 * extensive checking of parameters and the device tree, making various
> > +	 * assumptions about correctness.
> > +	 *
> > +	 * It doesn't make sense to enable this assumption unless
> > +	 * ASSUME_VALID_DTB is also enabled.
> > +	 */
> > +	ASSUME_VALID_INPUT	= 1 << 1,
> > +
> > +	/*
> > +	 * This disables checks for device-tree version and removes all code
> > +	 * which handles older versions.
> > +	 *
> > +	 * Only enable this if you know you have a device tree with the latest
> > +	 * version.
> > +	 */
> > +	ASSUME_LATEST		= 1 << 2,
> > +
> > +	/*
> > +	 * This assumes that it is OK for a failed addition to the device tree,
> > +	 * due to lack of space or some other problem, to skip any rollback
> > +	 * steps (such as dropping the property name from the string table).
> > +	 * This is safe to enable in most circumstances, even though it may
> > +	 * leave the tree in a sub-optimal state.
> > +	 */
> > +	ASSUME_NO_ROLLBACK	= 1 << 3,
> > +
> > +	/*
> > +	 * This assumes that the device tree components appear in a 'convenient'
> > +	 * order, i.e. the memory reservation block first, then the structure
> > +	 * block and finally the string block.
> > +	 *
> > +	 * This order is not specified by the device-tree specification,
> > +	 * but is expected by libfdt. The device-tree compiler always created
> > +	 * device trees with this order.
> > +	 *
> > +	 * This assumption disables a check in fdt_open_into() and removes the
> > +	 * ability to fix the problem there. This is safe if you know that the
> > +	 * device tree is correctly ordered. See fdt_blocks_misordered_().
> > +	 */
> > +	ASSUME_LIBFDT_ORDER	= 1 << 4,
> > +
> > +	/*
> > +	 * This assumes that libfdt itself does not have any internal bugs. It
> > +	 * drops certain checks that should never be needed unless libfdt has an
> > +	 * undiscovered bug.
> > +	 *
> > +	 * This can generally be considered safe to enable.
> > +	 */
> > +	ASSUME_LIBFDT_FLAWLESS	= 1 << 5,
> > +};
> > +
> > +/**
> > + * can_assume_() - check if a particular assumption is enabled
> > + *
> > + * @mask: Mask to check (ASSUME_...)
> > + * @return true if that assumption is enabled, else false
> > + */
> > +static inline bool can_assume_(int mask)
> > +{
> > +	return FDT_ASSUME_MASK & mask;
> > +}
> > +
> > +/** helper macros for checking assumptions */
> > +#define can_assume(_assume)	can_assume_(ASSUME_ ## _assume)
> > +
> > +#endif /* LIBFDT_INTERNAL_H */
> > diff --git a/xen/common/libfdt/version.lds b/xen/common/libfdt/version.lds
> > index 80b322b..7ab85f1 100644
> > --- a/xen/common/libfdt/version.lds
> > +++ b/xen/common/libfdt/version.lds
> > @@ -1,3 +1,4 @@
> > +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> > LIBFDT_1.2 {
> > 	global:
> > 		fdt_next_node;
> > @@ -8,6 +9,7 @@ LIBFDT_1.2 {
> > 		fdt_get_mem_rsv;
> > 		fdt_subnode_offset_namelen;
> > 		fdt_subnode_offset;
> > +		fdt_path_offset_namelen;
> > 		fdt_path_offset;
> > 		fdt_get_name;
> > 		fdt_get_property_namelen;
> > @@ -18,6 +20,7 @@ LIBFDT_1.2 {
> > 		fdt_get_alias_namelen;
> > 		fdt_get_alias;
> > 		fdt_get_path;
> > +                fdt_header_size;
> > 		fdt_supernode_atdepth_offset;
> > 		fdt_node_depth;
> > 		fdt_parent_offset;
> > @@ -54,7 +57,26 @@ LIBFDT_1.2 {
> > 		fdt_get_property_by_offset;
> > 		fdt_getprop_by_offset;
> > 		fdt_next_property_offset;
> > -
> > +		fdt_first_subnode;
> > +		fdt_next_subnode;
> > +		fdt_address_cells;
> > +		fdt_size_cells;
> > +		fdt_stringlist_contains;
> > +		fdt_stringlist_count;
> > +		fdt_stringlist_search;
> > +		fdt_stringlist_get;
> > +		fdt_resize;
> > +		fdt_overlay_apply;
> > +		fdt_get_string;
> > +		fdt_find_max_phandle;
> > +		fdt_generate_phandle;
> > +		fdt_check_full;
> > +		fdt_setprop_placeholder;
> > +		fdt_property_placeholder;
> > +		fdt_header_size_;
> > +		fdt_appendprop_addrrange;
> > +		fdt_setprop_inplace_namelen_partial;
> > +		fdt_create_with_flags;
> > 	local:
> > 		*;
> > };
> > diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
> > index f460b0d..f2e6880 100644
> > --- a/xen/include/xen/libfdt/fdt.h
> > +++ b/xen/include/xen/libfdt/fdt.h
> > @@ -1,53 +1,10 @@
> > -#ifndef _FDT_H
> > -#define _FDT_H
> > +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> > +#ifndef FDT_H
> > +#define FDT_H
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> >  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > 
> > #ifndef __ASSEMBLY__
> > @@ -106,4 +63,4 @@ struct fdt_property {
> > #define FDT_V16_SIZE	FDT_V3_SIZE
> > #define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(fdt32_t))
> > 
> > -#endif /* _FDT_H */
> > +#endif /* FDT_H */
> > diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
> > index 7c75688..c71689e 100644
> > --- a/xen/include/xen/libfdt/libfdt.h
> > +++ b/xen/include/xen/libfdt/libfdt.h
> > @@ -1,65 +1,27 @@
> > -#ifndef _LIBFDT_H
> > -#define _LIBFDT_H
> > +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> > +#ifndef LIBFDT_H
> > +#define LIBFDT_H
> > /*
> >  * libfdt - Flat Device Tree manipulation
> >  * Copyright (C) 2006 David Gibson, IBM Corporation.
> > - *
> > - * libfdt is dual licensed: you can use it either under the terms of
> > - * the GPL, or the BSD license, at your option.
> > - *
> > - *  a) This library is free software; you can redistribute it and/or
> > - *     modify it under the terms of the GNU General Public License as
> > - *     published by the Free Software Foundation; either version 2 of the
> > - *     License, or (at your option) any later version.
> > - *
> > - *     This library is distributed in the hope that it will be useful,
> > - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > - *     GNU General Public License for more details.
> > - *
> > - *     You should have received a copy of the GNU General Public
> > - *     License along with this library; If not, see <http://www.gnu.org/licenses/>.
> > - *
> > - * Alternatively,
> > - *
> > - *  b) Redistribution and use in source and binary forms, with or
> > - *     without modification, are permitted provided that the following
> > - *     conditions are met:
> > - *
> > - *     1. Redistributions of source code must retain the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer.
> > - *     2. Redistributions in binary form must reproduce the above
> > - *        copyright notice, this list of conditions and the following
> > - *        disclaimer in the documentation and/or other materials
> > - *        provided with the distribution.
> > - *
> > - *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > - *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
> > - *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > - *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > - *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > - *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > - *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > - *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > - *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> > - *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > - *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > - *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
> > - *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> >  */
> > 
> > #include <xen/libfdt/libfdt_env.h>
> > #include <xen/libfdt/fdt.h>
> > 
> > -#define FDT_FIRST_SUPPORTED_VERSION	0x10
> > +#ifdef __cplusplus
> > +extern "C" {
> > +#endif
> > +
> > +#define FDT_FIRST_SUPPORTED_VERSION	0x02
> > +#define FDT_LAST_COMPATIBLE_VERSION 0x10
> > #define FDT_LAST_SUPPORTED_VERSION	0x11
> > 
> > /* Error codes: informative error codes */
> > #define FDT_ERR_NOTFOUND	1
> > 	/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
> > #define FDT_ERR_EXISTS		2
> > -	/* FDT_ERR_EXISTS: Attemped to create a node or property which
> > +	/* FDT_ERR_EXISTS: Attempted to create a node or property which
> > 	 * already exists */
> > #define FDT_ERR_NOSPACE		3
> > 	/* FDT_ERR_NOSPACE: Operation needed to expand the device
> > @@ -77,8 +39,10 @@
> > 	 * (e.g. missing a leading / for a function which requires an
> > 	 * absolute path) */
> > #define FDT_ERR_BADPHANDLE	6
> > -	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle
> > -	 * value.  phandle values of 0 and -1 are not permitted. */
> > +	/* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
> > +	 * This can be caused either by an invalid phandle property
> > +	 * length, or the phandle value was either 0 or -1, which are
> > +	 * not permitted. */
> > #define FDT_ERR_BADSTATE	7
> > 	/* FDT_ERR_BADSTATE: Function was passed an incomplete device
> > 	 * tree created by the sequential-write functions, which is
> > @@ -86,8 +50,9 @@
> > 
> > /* Error codes: codes for bad device tree blobs */
> > #define FDT_ERR_TRUNCATED	8
> > -	/* FDT_ERR_TRUNCATED: Structure block of the given device tree
> > -	 * ends without an FDT_END tag. */
> > +	/* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
> > +	 * terminated (overflows, goes outside allowed bounds, or
> > +	 * isn't properly terminated).  */
> > #define FDT_ERR_BADMAGIC	9
> > 	/* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
> > 	 * device tree at all - it is missing the flattened device
> > @@ -114,13 +79,46 @@
> > 	 * Should never be returned, if it is, it indicates a bug in
> > 	 * libfdt itself. */
> > 
> > -#define FDT_ERR_MAX		13
> > +/* Errors in device tree content */
> > +#define FDT_ERR_BADNCELLS	14
> > +	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
> > +	 * or similar property with a bad format or value */
> > +
> > +#define FDT_ERR_BADVALUE	15
> > +	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
> > +	 * value. For example: a property expected to contain a string list
> > +	 * is not NUL-terminated within the length of its value. */
> > +
> > +#define FDT_ERR_BADOVERLAY	16
> > +	/* FDT_ERR_BADOVERLAY: The device tree overlay, while
> > +	 * correctly structured, cannot be applied due to some
> > +	 * unexpected or missing value, property or node. */
> > +
> > +#define FDT_ERR_NOPHANDLES	17
> > +	/* FDT_ERR_NOPHANDLES: The device tree doesn't have any
> > +	 * phandle available anymore without causing an overflow */
> > +
> > +#define FDT_ERR_BADFLAGS	18
> > +	/* FDT_ERR_BADFLAGS: The function was passed a flags field that
> > +	 * contains invalid flags or an invalid combination of flags. */
> > +
> > +#define FDT_ERR_ALIGNMENT	19
> > +	/* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
> > +	 * aligned. */
> > +
> > +#define FDT_ERR_MAX		19
> > +
> > +/* constants */
> > +#define FDT_MAX_PHANDLE 0xfffffffe
> > +	/* Valid values for phandles range from 1 to 2^32-2. */
> > 
> > /**********************************************************************/
> > /* Low-level functions (you probably don't need these)                */
> > /**********************************************************************/
> > 
> > +#ifndef SWIG /* This function is not useful in Python */
> > const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen);
> > +#endif
> > static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
> > {
> > 	return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
> > @@ -128,6 +126,59 @@ static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
> > 
> > uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
> > 
> > +/*
> > + * External helpers to access words from a device tree blob. They're built
> > + * to work even with unaligned pointers on platforms (such as ARMv5) that don't
> > + * like unaligned loads and stores.
> > + */
> > +static inline uint32_t fdt32_ld(const fdt32_t *p)
> > +{
> > +	const uint8_t *bp = (const uint8_t *)p;
> > +
> > +	return ((uint32_t)bp[0] << 24)
> > +		| ((uint32_t)bp[1] << 16)
> > +		| ((uint32_t)bp[2] << 8)
> > +		| bp[3];
> > +}
> > +
> > +static inline void fdt32_st(void *property, uint32_t value)
> > +{
> > +	uint8_t *bp = (uint8_t *)property;
> > +
> > +	bp[0] = value >> 24;
> > +	bp[1] = (value >> 16) & 0xff;
> > +	bp[2] = (value >> 8) & 0xff;
> > +	bp[3] = value & 0xff;
> > +}
> > +
> > +static inline uint64_t fdt64_ld(const fdt64_t *p)
> > +{
> > +	const uint8_t *bp = (const uint8_t *)p;
> > +
> > +	return ((uint64_t)bp[0] << 56)
> > +		| ((uint64_t)bp[1] << 48)
> > +		| ((uint64_t)bp[2] << 40)
> > +		| ((uint64_t)bp[3] << 32)
> > +		| ((uint64_t)bp[4] << 24)
> > +		| ((uint64_t)bp[5] << 16)
> > +		| ((uint64_t)bp[6] << 8)
> > +		| bp[7];
> > +}
> > +
> > +static inline void fdt64_st(void *property, uint64_t value)
> > +{
> > +	uint8_t *bp = (uint8_t *)property;
> > +
> > +	bp[0] = value >> 56;
> > +	bp[1] = (value >> 48) & 0xff;
> > +	bp[2] = (value >> 40) & 0xff;
> > +	bp[3] = (value >> 32) & 0xff;
> > +	bp[4] = (value >> 24) & 0xff;
> > +	bp[5] = (value >> 16) & 0xff;
> > +	bp[6] = (value >> 8) & 0xff;
> > +	bp[7] = value & 0xff;
> > +}
> > +
> > /**********************************************************************/
> > /* Traversal functions                                                */
> > /**********************************************************************/
> > @@ -136,74 +187,118 @@ int fdt_next_node(const void *fdt, int offset, int *depth);
> > 
> > /**
> >  * fdt_first_subnode() - get offset of first direct subnode
> > - *
> >  * @fdt:	FDT blob
> >  * @offset:	Offset of node to check
> > - * @return offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
> > + *
> > + * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
> >  */
> > int fdt_first_subnode(const void *fdt, int offset);
> > 
> > /**
> >  * fdt_next_subnode() - get offset of next direct subnode
> > + * @fdt:	FDT blob
> > + * @offset:	Offset of previous subnode
> >  *
> >  * After first calling fdt_first_subnode(), call this function repeatedly to
> >  * get direct subnodes of a parent node.
> >  *
> > - * @fdt:	FDT blob
> > - * @offset:	Offset of previous subnode
> > - * @return offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
> > - * subnodes
> > + * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
> > + *         subnodes
> >  */
> > int fdt_next_subnode(const void *fdt, int offset);
> > 
> > +/**
> > + * fdt_for_each_subnode - iterate over all subnodes of a parent
> > + *
> > + * @node:	child node (int, lvalue)
> > + * @fdt:	FDT blob (const void *)
> > + * @parent:	parent node (int)
> > + *
> > + * This is actually a wrapper around a for loop and would be used like so:
> > + *
> > + *	fdt_for_each_subnode(node, fdt, parent) {
> > + *		Use node
> > + *		...
> > + *	}
> > + *
> > + *	if ((node < 0) && (node != -FDT_ERR_NOTFOUND)) {
> > + *		Error handling
> > + *	}
> > + *
> > + * Note that this is implemented as a macro and @node is used as
> > + * iterator in the loop. The parent variable be constant or even a
> > + * literal.
> > + */
> > +#define fdt_for_each_subnode(node, fdt, parent)		\
> > +	for (node = fdt_first_subnode(fdt, parent);	\
> > +	     node >= 0;					\
> > +	     node = fdt_next_subnode(fdt, node))
> > +
> > /**********************************************************************/
> > /* General functions                                                  */
> > /**********************************************************************/
> > -
> > #define fdt_get_header(fdt, field) \
> > -	(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))
> > -#define fdt_magic(fdt) 			(fdt_get_header(fdt, magic))
> > +	(fdt32_ld(&((const struct fdt_header *)(fdt))->field))
> > +#define fdt_magic(fdt)			(fdt_get_header(fdt, magic))
> > #define fdt_totalsize(fdt)		(fdt_get_header(fdt, totalsize))
> > #define fdt_off_dt_struct(fdt)		(fdt_get_header(fdt, off_dt_struct))
> > #define fdt_off_dt_strings(fdt)		(fdt_get_header(fdt, off_dt_strings))
> > #define fdt_off_mem_rsvmap(fdt)		(fdt_get_header(fdt, off_mem_rsvmap))
> > #define fdt_version(fdt)		(fdt_get_header(fdt, version))
> > -#define fdt_last_comp_version(fdt) 	(fdt_get_header(fdt, last_comp_version))
> > -#define fdt_boot_cpuid_phys(fdt) 	(fdt_get_header(fdt, boot_cpuid_phys))
> > -#define fdt_size_dt_strings(fdt) 	(fdt_get_header(fdt, size_dt_strings))
> > +#define fdt_last_comp_version(fdt)	(fdt_get_header(fdt, last_comp_version))
> > +#define fdt_boot_cpuid_phys(fdt)	(fdt_get_header(fdt, boot_cpuid_phys))
> > +#define fdt_size_dt_strings(fdt)	(fdt_get_header(fdt, size_dt_strings))
> > #define fdt_size_dt_struct(fdt)		(fdt_get_header(fdt, size_dt_struct))
> > 
> > -#define __fdt_set_hdr(name) \
> > +#define fdt_set_hdr_(name) \
> > 	static inline void fdt_set_##name(void *fdt, uint32_t val) \
> > 	{ \
> > -		struct fdt_header *fdth = (struct fdt_header*)fdt; \
> > +		struct fdt_header *fdth = (struct fdt_header *)fdt; \
> > 		fdth->name = cpu_to_fdt32(val); \
> > 	}
> > -__fdt_set_hdr(magic);
> > -__fdt_set_hdr(totalsize);
> > -__fdt_set_hdr(off_dt_struct);
> > -__fdt_set_hdr(off_dt_strings);
> > -__fdt_set_hdr(off_mem_rsvmap);
> > -__fdt_set_hdr(version);
> > -__fdt_set_hdr(last_comp_version);
> > -__fdt_set_hdr(boot_cpuid_phys);
> > -__fdt_set_hdr(size_dt_strings);
> > -__fdt_set_hdr(size_dt_struct);
> > -#undef __fdt_set_hdr
> > -
> > -/**
> > - * fdt_check_header - sanity check a device tree or possible device tree
> > +fdt_set_hdr_(magic);
> > +fdt_set_hdr_(totalsize);
> > +fdt_set_hdr_(off_dt_struct);
> > +fdt_set_hdr_(off_dt_strings);
> > +fdt_set_hdr_(off_mem_rsvmap);
> > +fdt_set_hdr_(version);
> > +fdt_set_hdr_(last_comp_version);
> > +fdt_set_hdr_(boot_cpuid_phys);
> > +fdt_set_hdr_(size_dt_strings);
> > +fdt_set_hdr_(size_dt_struct);
> > +#undef fdt_set_hdr_
> > +
> > +/**
> > + * fdt_header_size - return the size of the tree's header
> > + * @fdt: pointer to a flattened device tree
> > + *
> > + * Return: size of DTB header in bytes
> > + */
> > +size_t fdt_header_size(const void *fdt);
> > +
> > +/**
> > + * fdt_header_size_ - internal function to get header size from a version number
> > + * @version: devicetree version number
> > + *
> > + * Return: size of DTB header in bytes
> > + */
> > +size_t fdt_header_size_(uint32_t version);
> > +
> > +/**
> > + * fdt_check_header - sanity check a device tree header
> >  * @fdt: pointer to data which might be a flattened device tree
> >  *
> >  * fdt_check_header() checks that the given buffer contains what
> > - * appears to be a flattened device tree with sane information in its
> > - * header.
> > + * appears to be a flattened device tree, and that the header contains
> > + * valid information (to the extent that can be determined from the
> > + * header alone).
> >  *
> >  * returns:
> >  *     0, if the buffer appears to contain a valid device tree
> >  *     -FDT_ERR_BADMAGIC,
> >  *     -FDT_ERR_BADVERSION,
> > - *     -FDT_ERR_BADSTATE, standard meanings, as above
> > + *     -FDT_ERR_BADSTATE,
> > + *     -FDT_ERR_TRUNCATED, standard meanings, as above
> >  */
> > int fdt_check_header(const void *fdt);
> > 
> > @@ -232,6 +327,24 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
> > /* Read-only functions                                                */
> > /**********************************************************************/
> > 
> > +int fdt_check_full(const void *fdt, size_t bufsize);
> > +
> > +/**
> > + * fdt_get_string - retrieve a string from the strings block of a device tree
> > + * @fdt: pointer to the device tree blob
> > + * @stroffset: offset of the string within the strings block (native endian)
> > + * @lenp: optional pointer to return the string's length
> > + *
> > + * fdt_get_string() retrieves a pointer to a single string from the
> > + * strings block of the device tree blob at fdt, and optionally also
> > + * returns the string's length in *lenp.
> > + *
> > + * returns:
> > + *     a pointer to the string, on success
> > + *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
> > + */
> > +const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
> > +
> > /**
> >  * fdt_string - retrieve a string from the strings block of a device tree
> >  * @fdt: pointer to the device tree blob
> > @@ -242,11 +355,66 @@ int fdt_move(const void *fdt, void *buf, int bufsize);
> >  *
> >  * returns:
> >  *     a pointer to the string, on success
> > - *     NULL, if stroffset is out of bounds
> > + *     NULL, if stroffset is out of bounds, or doesn't point to a valid string
> >  */
> > const char *fdt_string(const void *fdt, int stroffset);
> > 
> > /**
> > + * fdt_find_max_phandle - find and return the highest phandle in a tree
> > + * @fdt: pointer to the device tree blob
> > + * @phandle: return location for the highest phandle value found in the tree
> > + *
> > + * fdt_find_max_phandle() finds the highest phandle value in the given device
> > + * tree. The value returned in @phandle is only valid if the function returns
> > + * success.
> > + *
> > + * returns:
> > + *     0 on success or a negative error code on failure
> > + */
> > +int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
> > +
> > +/**
> > + * fdt_get_max_phandle - retrieves the highest phandle in a tree
> > + * @fdt: pointer to the device tree blob
> > + *
> > + * fdt_get_max_phandle retrieves the highest phandle in the given
> > + * device tree. This will ignore badly formatted phandles, or phandles
> > + * with a value of 0 or -1.
> > + *
> > + * This function is deprecated in favour of fdt_find_max_phandle().
> > + *
> > + * returns:
> > + *      the highest phandle on success
> > + *      0, if no phandle was found in the device tree
> > + *      -1, if an error occurred
> > + */
> > +static inline uint32_t fdt_get_max_phandle(const void *fdt)
> > +{
> > +	uint32_t phandle;
> > +	int err;
> > +
> > +	err = fdt_find_max_phandle(fdt, &phandle);
> > +	if (err < 0)
> > +		return (uint32_t)-1;
> > +
> > +	return phandle;
> > +}
> > +
> > +/**
> > + * fdt_generate_phandle - return a new, unused phandle for a device tree blob
> > + * @fdt: pointer to the device tree blob
> > + * @phandle: return location for the new phandle
> > + *
> > + * Walks the device tree blob and looks for the highest phandle value. On
> > + * success, the new, unused phandle value (one higher than the previously
> > + * highest phandle value in the device tree blob) will be returned in the
> > + * @phandle parameter.
> > + *
> > + * Return: 0 on success or a negative error-code on failure
> > + */
> > +int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
> > +
> > +/**
> >  * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
> >  * @fdt: pointer to the device tree blob
> >  *
> > @@ -262,9 +430,11 @@ int fdt_num_mem_rsv(const void *fdt);
> > /**
> >  * fdt_get_mem_rsv - retrieve one memory reserve map entry
> >  * @fdt: pointer to the device tree blob
> > - * @address, @size: pointers to 64-bit variables
> > + * @n: index of reserve map entry
> > + * @address: pointer to 64-bit variable to hold the start address
> > + * @size: pointer to 64-bit variable to hold the size of the entry
> >  *
> > - * On success, *address and *size will contain the address and size of
> > + * On success, @address and @size will contain the address and size of
> >  * the n-th reserve map entry from the device tree blob, in
> >  * native-endian format.
> >  *
> > @@ -287,9 +457,13 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size);
> >  * namelen characters of name for matching the subnode name.  This is
> >  * useful for finding subnodes based on a portion of a larger string,
> >  * such as a full path.
> > + *
> > + * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
> > 			       const char *name, int namelen);
> > +#endif
> > /**
> >  * fdt_subnode_offset - find a subnode of a given node
> >  * @fdt: pointer to the device tree blob
> > @@ -306,8 +480,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
> >  * returns:
> >  *	structure block offset of the requested subnode (>=0), on success
> >  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
> > - *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
> > - *      -FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
> > + *		tag
> > + *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> >  *	-FDT_ERR_BADSTRUCTURE,
> > @@ -316,6 +491,21 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
> > int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
> > 
> > /**
> > + * fdt_path_offset_namelen - find a tree node by its full path
> > + * @fdt: pointer to the device tree blob
> > + * @path: full path of the node to locate
> > + * @namelen: number of characters of path to consider
> > + *
> > + * Identical to fdt_path_offset(), but only consider the first namelen
> > + * characters of path as the path name.
> > + *
> > + * Return: offset of the node or negative libfdt error value otherwise
> > + */
> > +#ifndef SWIG /* Not available in Python */
> > +int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);
> > +#endif
> > +
> > +/**
> >  * fdt_path_offset - find a tree node by its full path
> >  * @fdt: pointer to the device tree blob
> >  * @path: full path of the node to locate
> > @@ -328,7 +518,8 @@ int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
> >  * address).
> >  *
> >  * returns:
> > - *	structure block offset of the node with the requested path (>=0), on success
> > + *	structure block offset of the node with the requested path (>=0), on
> > + *		success
> >  *	-FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
> >  *	-FDT_ERR_NOTFOUND, if the requested node does not exist
> >  *      -FDT_ERR_BADMAGIC,
> > @@ -352,10 +543,12 @@ int fdt_path_offset(const void *fdt, const char *path);
> >  *
> >  * returns:
> >  *	pointer to the node's name, on success
> > - *		If lenp is non-NULL, *lenp contains the length of that name (>=0)
> > + *		If lenp is non-NULL, *lenp contains the length of that name
> > + *			(>=0)
> >  *	NULL, on error
> >  *		if lenp is non-NULL *lenp contains an error code (<0):
> > - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> > + *			tag
> >  *		-FDT_ERR_BADMAGIC,
> >  *		-FDT_ERR_BADVERSION,
> >  *		-FDT_ERR_BADSTATE, standard meanings
> > @@ -404,6 +597,33 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset);
> > int fdt_next_property_offset(const void *fdt, int offset);
> > 
> > /**
> > + * fdt_for_each_property_offset - iterate over all properties of a node
> > + *
> > + * @property:	property offset (int, lvalue)
> > + * @fdt:	FDT blob (const void *)
> > + * @node:	node offset (int)
> > + *
> > + * This is actually a wrapper around a for loop and would be used like so:
> > + *
> > + *	fdt_for_each_property_offset(property, fdt, node) {
> > + *		Use property
> > + *		...
> > + *	}
> > + *
> > + *	if ((property < 0) && (property != -FDT_ERR_NOTFOUND)) {
> > + *		Error handling
> > + *	}
> > + *
> > + * Note that this is implemented as a macro and property is used as
> > + * iterator in the loop. The node variable can be constant or even a
> > + * literal.
> > + */
> > +#define fdt_for_each_property_offset(property, fdt, node)	\
> > +	for (property = fdt_first_property_offset(fdt, node);	\
> > +	     property >= 0;					\
> > +	     property = fdt_next_property_offset(fdt, property))
> > +
> > +/**
> >  * fdt_get_property_by_offset - retrieve the property at a given offset
> >  * @fdt: pointer to the device tree blob
> >  * @offset: offset of the property to retrieve
> > @@ -414,6 +634,9 @@ int fdt_next_property_offset(const void *fdt, int offset);
> >  * offset.  If lenp is non-NULL, the length of the property value is
> >  * also returned, in the integer pointed to by lenp.
> >  *
> > + * Note that this code only works on device tree versions >= 16. fdt_getprop()
> > + * works on all versions.
> > + *
> >  * returns:
> >  *	pointer to the structure representing the property
> >  *		if lenp is non-NULL, *lenp contains the length of the property
> > @@ -439,13 +662,18 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
> >  * @namelen: number of characters of name to consider
> >  * @lenp: pointer to an integer variable (will be overwritten) or NULL
> >  *
> > - * Identical to fdt_get_property_namelen(), but only examine the first
> > - * namelen characters of name for matching the property name.
> > + * Identical to fdt_get_property(), but only examine the first namelen
> > + * characters of name for matching the property name.
> > + *
> > + * Return: pointer to the structure representing the property, or NULL
> > + *         if not found
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> > 						    int nodeoffset,
> > 						    const char *name,
> > 						    int namelen, int *lenp);
> > +#endif
> > 
> > /**
> >  * fdt_get_property - find a given property in a given node
> > @@ -467,7 +695,8 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
> >  *	NULL, on error
> >  *		if lenp is non-NULL, *lenp contains an error code (<0):
> >  *		-FDT_ERR_NOTFOUND, node does not have named property
> > - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> > + *			tag
> >  *		-FDT_ERR_BADMAGIC,
> >  *		-FDT_ERR_BADVERSION,
> >  *		-FDT_ERR_BADSTATE,
> > @@ -487,7 +716,7 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
> > /**
> >  * fdt_getprop_by_offset - retrieve the value of a property at a given offset
> >  * @fdt: pointer to the device tree blob
> > - * @ffset: offset of the property to read
> > + * @offset: offset of the property to read
> >  * @namep: pointer to a string variable (will be overwritten) or NULL
> >  * @lenp: pointer to an integer variable (will be overwritten) or NULL
> >  *
> > @@ -515,8 +744,10 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
> >  *		-FDT_ERR_BADSTRUCTURE,
> >  *		-FDT_ERR_TRUNCATED, standard meanings
> >  */
> > +#ifndef SWIG /* This function is not useful in Python */
> > const void *fdt_getprop_by_offset(const void *fdt, int offset,
> > 				  const char **namep, int *lenp);
> > +#endif
> > 
> > /**
> >  * fdt_getprop_namelen - get property value based on substring
> > @@ -528,9 +759,20 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,
> >  *
> >  * Identical to fdt_getprop(), but only examine the first namelen
> >  * characters of name for matching the property name.
> > + *
> > + * Return: pointer to the property's value or NULL on error
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> > 				const char *name, int namelen, int *lenp);
> > +static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
> > +					  const char *name, int namelen,
> > +					  int *lenp)
> > +{
> > +	return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
> > +						      namelen, lenp);
> > +}
> > +#endif
> > 
> > /**
> >  * fdt_getprop - retrieve the value of a given property
> > @@ -540,10 +782,10 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> >  * @lenp: pointer to an integer variable (will be overwritten) or NULL
> >  *
> >  * fdt_getprop() retrieves a pointer to the value of the property
> > - * named 'name' of the node at offset nodeoffset (this will be a
> > + * named @name of the node at offset @nodeoffset (this will be a
> >  * pointer to within the device blob itself, not a copy of the value).
> > - * If lenp is non-NULL, the length of the property value is also
> > - * returned, in the integer pointed to by lenp.
> > + * If @lenp is non-NULL, the length of the property value is also
> > + * returned, in the integer pointed to by @lenp.
> >  *
> >  * returns:
> >  *	pointer to the property's value
> > @@ -552,7 +794,8 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
> >  *	NULL, on error
> >  *		if lenp is non-NULL, *lenp contains an error code (<0):
> >  *		-FDT_ERR_NOTFOUND, node does not have named property
> > - *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *		-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
> > + *			tag
> >  *		-FDT_ERR_BADMAGIC,
> >  *		-FDT_ERR_BADVERSION,
> >  *		-FDT_ERR_BADSTATE,
> > @@ -587,11 +830,16 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset);
> >  * @name: name of the alias th look up
> >  * @namelen: number of characters of name to consider
> >  *
> > - * Identical to fdt_get_alias(), but only examine the first namelen
> > - * characters of name for matching the alias name.
> > + * Identical to fdt_get_alias(), but only examine the first @namelen
> > + * characters of @name for matching the alias name.
> > + *
> > + * Return: a pointer to the expansion of the alias named @name, if it exists,
> > + *	   NULL otherwise
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > const char *fdt_get_alias_namelen(const void *fdt,
> > 				  const char *name, int namelen);
> > +#endif
> > 
> > /**
> >  * fdt_get_alias - retrieve the path referenced by a given alias
> > @@ -599,7 +847,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
> >  * @name: name of the alias th look up
> >  *
> >  * fdt_get_alias() retrieves the value of a given alias.  That is, the
> > - * value of the property named 'name' in the node /aliases.
> > + * value of the property named @name in the node /aliases.
> >  *
> >  * returns:
> >  *	a pointer to the expansion of the alias named 'name', if it exists
> > @@ -624,7 +872,7 @@ const char *fdt_get_alias(const void *fdt, const char *name);
> >  *	0, on success
> >  *		buf contains the absolute path of the node at
> >  *		nodeoffset, as a NUL-terminated string.
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1)
> >  *		characters and will not fit in the given buffer.
> >  *	-FDT_ERR_BADMAGIC,
> > @@ -654,11 +902,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen);
> >  * structure from the start to nodeoffset.
> >  *
> >  * returns:
> > -
> >  *	structure block offset of the node at node offset's ancestor
> >  *		of depth supernodedepth (>=0), on success
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > -*	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeoffset
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
> > + *		nodeoffset
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -680,7 +928,7 @@ int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
> >  *
> >  * returns:
> >  *	depth of the node at nodeoffset (>=0), on success
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -703,7 +951,7 @@ int fdt_node_depth(const void *fdt, int nodeoffset);
> >  * returns:
> >  *	structure block offset of the parent of the node at nodeoffset
> >  *		(>=0), on success
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -743,7 +991,7 @@ int fdt_parent_offset(const void *fdt, int nodeoffset);
> >  *		 on success
> >  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
> >  *		tree after startoffset
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -775,14 +1023,13 @@ int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
> > int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
> > 
> > /**
> > - * fdt_node_check_compatible: check a node's compatible property
> > + * fdt_node_check_compatible - check a node's compatible property
> >  * @fdt: pointer to the device tree blob
> >  * @nodeoffset: offset of a tree node
> >  * @compatible: string to match against
> >  *
> > - *
> >  * fdt_node_check_compatible() returns 0 if the given node contains a
> > - * 'compatible' property with the given string as one of its elements,
> > + * @compatible property with the given string as one of its elements,
> >  * it returns non-zero otherwise, or on error.
> >  *
> >  * returns:
> > @@ -790,7 +1037,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
> >  *	1, if the node has a 'compatible' property, but it does not list
> >  *		the given string
> >  *	-FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
> > - * 	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -827,7 +1074,7 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
> >  *		 on success
> >  *	-FDT_ERR_NOTFOUND, no node matching the criterion exists in the
> >  *		tree after startoffset
> > - * 	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
> >  *	-FDT_ERR_BADMAGIC,
> >  *	-FDT_ERR_BADVERSION,
> >  *	-FDT_ERR_BADSTATE,
> > @@ -846,15 +1093,160 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
> >  * one or more strings, each terminated by \0, as is found in a device tree
> >  * "compatible" property.
> >  *
> > - * @return: 1 if the string is found in the list, 0 not found, or invalid list
> > + * Return: 1 if the string is found in the list, 0 not found, or invalid list
> >  */
> > int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
> > 
> > +/**
> > + * fdt_stringlist_count - count the number of strings in a string list
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of a tree node
> > + * @property: name of the property containing the string list
> > + *
> > + * Return:
> > + *   the number of strings in the given property
> > + *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> > + *   -FDT_ERR_NOTFOUND if the property does not exist
> > + */
> > +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
> > +
> > +/**
> > + * fdt_stringlist_search - find a string in a string list and return its index
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of a tree node
> > + * @property: name of the property containing the string list
> > + * @string: string to look up in the string list
> > + *
> > + * Note that it is possible for this function to succeed on property values
> > + * that are not NUL-terminated. That's because the function will stop after
> > + * finding the first occurrence of @string. This can for example happen with
> > + * small-valued cell properties, such as #address-cells, when searching for
> > + * the empty string.
> > + *
> > + * return:
> > + *   the index of the string in the list of strings
> > + *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> > + *   -FDT_ERR_NOTFOUND if the property does not exist or does not contain
> > + *                     the given string
> > + */
> > +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
> > +			  const char *string);
> > +
> > +/**
> > + * fdt_stringlist_get() - obtain the string at a given index in a string list
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of a tree node
> > + * @property: name of the property containing the string list
> > + * @index: index of the string to return
> > + * @lenp: return location for the string length or an error code on failure
> > + *
> > + * Note that this will successfully extract strings from properties with
> > + * non-NUL-terminated values. For example on small-valued cell properties
> > + * this function will return the empty string.
> > + *
> > + * If non-NULL, the length of the string (on success) or a negative error-code
> > + * (on failure) will be stored in the integer pointer to by lenp.
> > + *
> > + * Return:
> > + *   A pointer to the string at the given index in the string list or NULL on
> > + *   failure. On success the length of the string will be stored in the memory
> > + *   location pointed to by the lenp parameter, if non-NULL. On failure one of
> > + *   the following negative error codes will be returned in the lenp parameter
> > + *   (if non-NULL):
> > + *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
> > + *     -FDT_ERR_NOTFOUND if the property does not exist
> > + */
> > +const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
> > +			       const char *property, int index,
> > +			       int *lenp);
> > +
> > +/**********************************************************************/
> > +/* Read-only functions (addressing related)                           */
> > +/**********************************************************************/
> > +
> > +/**
> > + * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
> > + *
> > + * This is the maximum value for #address-cells, #size-cells and
> > + * similar properties that will be processed by libfdt.  IEE1275
> > + * requires that OF implementations handle values up to 4.
> > + * Implementations may support larger values, but in practice higher
> > + * values aren't used.
> > + */
> > +#define FDT_MAX_NCELLS		4
> > +
> > +/**
> > + * fdt_address_cells - retrieve address size for a bus represented in the tree
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node to find the address size for
> > + *
> > + * When the node has a valid #address-cells property, returns its value.
> > + *
> > + * returns:
> > + *	0 <= n < FDT_MAX_NCELLS, on success
> > + *      2, if the node has no #address-cells property
> > + *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> > + *		#address-cells property
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_address_cells(const void *fdt, int nodeoffset);
> > +
> > +/**
> > + * fdt_size_cells - retrieve address range size for a bus represented in the
> > + *                  tree
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node to find the address range size for
> > + *
> > + * When the node has a valid #size-cells property, returns its value.
> > + *
> > + * returns:
> > + *	0 <= n < FDT_MAX_NCELLS, on success
> > + *      1, if the node has no #size-cells property
> > + *      -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> > + *		#size-cells property
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_size_cells(const void *fdt, int nodeoffset);
> > +
> > +
> > /**********************************************************************/
> > /* Write-in-place functions                                           */
> > /**********************************************************************/
> > 
> > /**
> > + * fdt_setprop_inplace_namelen_partial - change a property's value,
> > + *                                       but not its size
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + * @namelen: number of characters of name to consider
> > + * @idx: index of the property to change in the array
> > + * @val: pointer to data to replace the property value with
> > + * @len: length of the property value
> > + *
> > + * Identical to fdt_setprop_inplace(), but modifies the given property
> > + * starting from the given index, and using only the first characters
> > + * of the name. It is useful when you want to manipulate only one value of
> > + * an array and you have a string that doesn't end with \0.
> > + *
> > + * Return: 0 on success, negative libfdt error value otherwise
> > + */
> > +#ifndef SWIG /* Not available in Python */
> > +int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
> > +					const char *name, int namelen,
> > +					uint32_t idx, const void *val,
> > +					int len);
> > +#endif
> > +
> > +/**
> >  * fdt_setprop_inplace - change a property's value, but not its size
> >  * @fdt: pointer to the device tree blob
> >  * @nodeoffset: offset of the node whose property to change
> > @@ -882,8 +1274,10 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
> >  *	-FDT_ERR_BADSTRUCTURE,
> >  *	-FDT_ERR_TRUNCATED, standard meanings
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
> > 			const void *val, int len);
> > +#endif
> > 
> > /**
> >  * fdt_setprop_inplace_u32 - change the value of a 32-bit integer property
> > @@ -957,8 +1351,13 @@ static inline int fdt_setprop_inplace_u64(void *fdt, int nodeoffset,
> > 
> > /**
> >  * fdt_setprop_inplace_cell - change the value of a single-cell property
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node containing the property
> > + * @name: name of the property to change the value of
> > + * @val: new value of the 32-bit cell
> >  *
> >  * This is an alternative name for fdt_setprop_inplace_u32()
> > + * Return: 0 on success, negative libfdt error number otherwise.
> >  */
> > static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
> > 					   const char *name, uint32_t val)
> > @@ -1020,7 +1419,46 @@ int fdt_nop_node(void *fdt, int nodeoffset);
> > /* Sequential write functions                                         */
> > /**********************************************************************/
> > 
> > +/* fdt_create_with_flags flags */
> > +#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
> > +	/* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
> > +	 * names in the fdt. This can result in faster creation times, but
> > +	 * a larger fdt. */
> > +
> > +#define FDT_CREATE_FLAGS_ALL	(FDT_CREATE_FLAG_NO_NAME_DEDUP)
> > +
> > +/**
> > + * fdt_create_with_flags - begin creation of a new fdt
> > + * @buf: pointer to memory allocated where fdt will be created
> > + * @bufsize: size of the memory space at fdt
> > + * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
> > + *
> > + * fdt_create_with_flags() begins the process of creating a new fdt with
> > + * the sequential write interface.
> > + *
> > + * fdt creation process must end with fdt_finished() to produce a valid fdt.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
> > + *	-FDT_ERR_BADFLAGS, flags is not valid
> > + */
> > +int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
> > +
> > +/**
> > + * fdt_create - begin creation of a new fdt
> > + * @buf: pointer to memory allocated where fdt will be created
> > + * @bufsize: size of the memory space at fdt
> > + *
> > + * fdt_create() is equivalent to fdt_create_with_flags() with flags=0.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
> > + */
> > int fdt_create(void *buf, int bufsize);
> > +
> > +int fdt_resize(void *fdt, void *buf, int bufsize);
> > int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
> > int fdt_finish_reservemap(void *fdt);
> > int fdt_begin_node(void *fdt, const char *name);
> > @@ -1035,10 +1473,29 @@ static inline int fdt_property_u64(void *fdt, const char *name, uint64_t val)
> > 	fdt64_t tmp = cpu_to_fdt64(val);
> > 	return fdt_property(fdt, name, &tmp, sizeof(tmp));
> > }
> > +
> > +#ifndef SWIG /* Not available in Python */
> > static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val)
> > {
> > 	return fdt_property_u32(fdt, name, val);
> > }
> > +#endif
> > +
> > +/**
> > + * fdt_property_placeholder - add a new property and return a ptr to its value
> > + *
> > + * @fdt: pointer to the device tree blob
> > + * @name: name of property to add
> > + * @len: length of property value in bytes
> > + * @valp: returns a pointer to where where the value should be placed
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_NOSPACE, standard meanings
> > + */
> > +int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp);
> > +
> > #define fdt_property_string(fdt, name, str) \
> > 	fdt_property(fdt, name, str, strlen(str)+1)
> > int fdt_end_node(void *fdt);
> > @@ -1055,7 +1512,8 @@ int fdt_pack(void *fdt);
> > /**
> >  * fdt_add_mem_rsv - add one memory reserve map entry
> >  * @fdt: pointer to the device tree blob
> > - * @address, @size: 64-bit values (native endian)
> > + * @address: 64-bit start address of the reserve map entry
> > + * @size: 64-bit size of the reserved region
> >  *
> >  * Adds a reserve map entry to the given blob reserving a region at
> >  * address address of length size.
> > @@ -1158,6 +1616,37 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
> > 		const void *val, int len);
> > 
> > /**
> > + * fdt_setprop_placeholder - allocate space for a property
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + * @len: length of the property value
> > + * @prop_data: return pointer to property data
> > + *
> > + * fdt_setprop_placeholer() allocates the named property in the given node.
> > + * If the property exists it is resized. In either case a pointer to the
> > + * property data is returned.
> > + *
> > + * This function may insert or delete data from the blob, and will
> > + * therefore change the offsets of some existing nodes.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> > + *		contain the new property value
> > + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
> > +			    int len, void **prop_data);
> > +
> > +/**
> >  * fdt_setprop_u32 - set a property to a 32-bit integer
> >  * @fdt: pointer to the device tree blob
> >  * @nodeoffset: offset of the node whose property to change
> > @@ -1229,8 +1718,14 @@ static inline int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name,
> > 
> > /**
> >  * fdt_setprop_cell - set a property to a single cell value
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + * @val: 32-bit integer value for the property (native endian)
> >  *
> >  * This is an alternative name for fdt_setprop_u32()
> > + *
> > + * Return: 0 on success, negative libfdt error value otherwise.
> >  */
> > static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
> > 				   uint32_t val)
> > @@ -1269,6 +1764,36 @@ static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
> > #define fdt_setprop_string(fdt, nodeoffset, name, str) \
> > 	fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
> > 
> > +
> > +/**
> > + * fdt_setprop_empty - set a property to an empty value
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + *
> > + * fdt_setprop_empty() sets the value of the named property in the
> > + * given node to an empty (zero length) value, or creates a new empty
> > + * property if it does not already exist.
> > + *
> > + * This function may insert or delete data from the blob, and will
> > + * therefore change the offsets of some existing nodes.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> > + *		contain the new property value
> > + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +#define fdt_setprop_empty(fdt, nodeoffset, name) \
> > +	fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
> > +
> > /**
> >  * fdt_appendprop - append to or create a property
> >  * @fdt: pointer to the device tree blob
> > @@ -1371,8 +1896,14 @@ static inline int fdt_appendprop_u64(void *fdt, int nodeoffset,
> > 
> > /**
> >  * fdt_appendprop_cell - append a single cell value to a property
> > + * @fdt: pointer to the device tree blob
> > + * @nodeoffset: offset of the node whose property to change
> > + * @name: name of the property to change
> > + * @val: 32-bit integer value to append to the property (native endian)
> >  *
> >  * This is an alternative name for fdt_appendprop_u32()
> > + *
> > + * Return: 0 on success, negative libfdt error value otherwise.
> >  */
> > static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
> > 				      const char *name, uint32_t val)
> > @@ -1411,6 +1942,43 @@ static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
> > 	fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
> > 
> > /**
> > + * fdt_appendprop_addrrange - append a address range property
> > + * @fdt: pointer to the device tree blob
> > + * @parent: offset of the parent node
> > + * @nodeoffset: offset of the node to add a property at
> > + * @name: name of property
> > + * @addr: start address of a given range
> > + * @size: size of a given range
> > + *
> > + * fdt_appendprop_addrrange() appends an address range value (start
> > + * address and size) to the value of the named property in the given
> > + * node, or creates a new property with that value if it does not
> > + * already exist.
> > + * If "name" is not specified, a default "reg" is used.
> > + * Cell sizes are determined by parent's #address-cells and #size-cells.
> > + *
> > + * This function may insert data into the blob, and will therefore
> > + * change the offsets of some existing nodes.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
> > + *		#address-cells property
> > + *	-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
> > + *	-FDT_ERR_NOSPACE, there is insufficient free space in the blob to
> > + *		contain a new property
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
> > +			     const char *name, uint64_t addr, uint64_t size);
> > +
> > +/**
> >  * fdt_delprop - delete a property
> >  * @fdt: pointer to the device tree blob
> >  * @nodeoffset: offset of the node whose property to nop
> > @@ -1438,16 +2006,21 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name);
> >  * fdt_add_subnode_namelen - creates a new node based on substring
> >  * @fdt: pointer to the device tree blob
> >  * @parentoffset: structure block offset of a node
> > - * @name: name of the subnode to locate
> > + * @name: name of the subnode to create
> >  * @namelen: number of characters of name to consider
> >  *
> > - * Identical to fdt_add_subnode(), but use only the first namelen
> > - * characters of name as the name of the new node.  This is useful for
> > + * Identical to fdt_add_subnode(), but use only the first @namelen
> > + * characters of @name as the name of the new node.  This is useful for
> >  * creating subnodes based on a portion of a larger string, such as a
> >  * full path.
> > + *
> > + * Return: structure block offset of the created subnode (>=0),
> > + *	   negative libfdt error value otherwise
> >  */
> > +#ifndef SWIG /* Not available in Python */
> > int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> > 			    const char *name, int namelen);
> > +#endif
> > 
> > /**
> >  * fdt_add_subnode - creates a new node
> > @@ -1461,11 +2034,13 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
> >  *
> >  * This function will insert data into the blob, and will therefore
> >  * change the offsets of some existing nodes.
> > -
> > + *
> >  * returns:
> > - *	structure block offset of the created nodeequested subnode (>=0), on success
> > + *	structure block offset of the created nodeequested subnode (>=0), on
> > + *		success
> >  *	-FDT_ERR_NOTFOUND, if the requested subnode does not exist
> > - *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag
> > + *	-FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
> > + *		tag
> >  *	-FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
> >  *		the given name
> >  *	-FDT_ERR_NOSPACE, if there is insufficient free space in the
> > @@ -1503,10 +2078,45 @@ int fdt_add_subnode(void *fdt, int parentoffset, const char *name);
> >  */
> > int fdt_del_node(void *fdt, int nodeoffset);
> > 
> > +/**
> > + * fdt_overlay_apply - Applies a DT overlay on a base DT
> > + * @fdt: pointer to the base device tree blob
> > + * @fdto: pointer to the device tree overlay blob
> > + *
> > + * fdt_overlay_apply() will apply the given device tree overlay on the
> > + * given base device tree.
> > + *
> > + * Expect the base device tree to be modified, even if the function
> > + * returns an error.
> > + *
> > + * returns:
> > + *	0, on success
> > + *	-FDT_ERR_NOSPACE, there's not enough space in the base device tree
> > + *	-FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
> > + *		properties in the base DT
> > + *	-FDT_ERR_BADPHANDLE,
> > + *	-FDT_ERR_BADOVERLAY,
> > + *	-FDT_ERR_NOPHANDLES,
> > + *	-FDT_ERR_INTERNAL,
> > + *	-FDT_ERR_BADLAYOUT,
> > + *	-FDT_ERR_BADMAGIC,
> > + *	-FDT_ERR_BADOFFSET,
> > + *	-FDT_ERR_BADPATH,
> > + *	-FDT_ERR_BADVERSION,
> > + *	-FDT_ERR_BADSTRUCTURE,
> > + *	-FDT_ERR_BADSTATE,
> > + *	-FDT_ERR_TRUNCATED, standard meanings
> > + */
> > +int fdt_overlay_apply(void *fdt, void *fdto);
> > +
> > /**********************************************************************/
> > /* Debugging / informational functions                                */
> > /**********************************************************************/
> > 
> > const char *fdt_strerror(int errval);
> > 
> > -#endif /* _LIBFDT_H */
> > +#ifdef __cplusplus
> > +}
> > +#endif
> > +
> > +#endif /* LIBFDT_H */
> > diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
> > index 035bf75..8368787 100644
> > --- a/xen/include/xen/libfdt/libfdt_env.h
> > +++ b/xen/include/xen/libfdt/libfdt_env.h
> > @@ -1,22 +1,96 @@
> > -#ifndef _LIBFDT_ENV_H
> > -#define _LIBFDT_ENV_H
> > +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
> > +#ifndef LIBFDT_ENV_H
> > +#define LIBFDT_ENV_H
> > +/*
> > + * libfdt - Flat Device Tree manipulation
> > + * Copyright (C) 2006 David Gibson, IBM Corporation.
> > + * Copyright 2012 Kim Phillips, Freescale Semiconductor.
> > + */
> > 
> > #include <xen/types.h>
> > #include <xen/string.h>
> > #include <asm/byteorder.h>
> > 
> > -typedef uint16_t fdt16_t;
> > -typedef uint32_t fdt32_t;
> > -typedef uint64_t fdt64_t;
> > +#ifdef __CHECKER__
> > +#define FDT_FORCE __attribute__((force))
> > +#define FDT_BITWISE __attribute__((bitwise))
> > +#else
> > +#define FDT_FORCE
> > +#define FDT_BITWISE
> > +#endif
> > 
> > -#define fdt16_to_cpu(x) be16_to_cpu(x)
> > -#define cpu_to_fdt16(x) cpu_to_be16(x)
> > -#define fdt32_to_cpu(x) be32_to_cpu(x)
> > -#define cpu_to_fdt32(x) cpu_to_be32(x)
> > -#define fdt64_to_cpu(x) be64_to_cpu(x)
> > -#define cpu_to_fdt64(x) cpu_to_be64(x)
> > +typedef uint16_t FDT_BITWISE fdt16_t;
> > +typedef uint32_t FDT_BITWISE fdt32_t;
> > +typedef uint64_t FDT_BITWISE fdt64_t;
> > +
> > +#define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
> > +#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
> > +#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | \
> > +			 (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
> > +#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | \
> > +			 (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
> > +			 (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
> > +			 (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
> > 
> > /* Xen-specific libfdt error code. */
> > #define FDT_ERR_XEN(err) (FDT_ERR_MAX + (err))
> > 
> > -#endif /* _LIBFDT_ENV_H */
> > +static inline uint16_t fdt16_to_cpu(fdt16_t x)
> > +{
> > +	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
> > +}
> > +static inline fdt16_t cpu_to_fdt16(uint16_t x)
> > +{
> > +	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
> > +}
> > +
> > +static inline uint32_t fdt32_to_cpu(fdt32_t x)
> > +{
> > +	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
> > +}
> > +static inline fdt32_t cpu_to_fdt32(uint32_t x)
> > +{
> > +	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
> > +}
> > +
> > +static inline uint64_t fdt64_to_cpu(fdt64_t x)
> > +{
> > +	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
> > +}
> > +static inline fdt64_t cpu_to_fdt64(uint64_t x)
> > +{
> > +	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
> > +}
> > +#undef CPU_TO_FDT64
> > +#undef CPU_TO_FDT32
> > +#undef CPU_TO_FDT16
> > +#undef EXTRACT_BYTE
> > +
> > +#ifdef __APPLE__
> > +#include <AvailabilityMacros.h>
> > +
> > +/* strnlen() is not available on Mac OS < 10.7 */
> > +# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < \
> > +                                         MAC_OS_X_VERSION_10_7)
> > +
> > +#define strnlen fdt_strnlen
> > +
> > +/*
> > + * fdt_strnlen: returns the length of a string or max_count - which ever is
> > + * smallest.
> > + * Input 1 string: the string whose size is to be determined
> > + * Input 2 max_count: the maximum value returned by this function
> > + * Output: length of the string or max_count (the smallest of the two)
> > + */
> > +static inline size_t fdt_strnlen(const char *string, size_t max_count)
> > +{
> > +    const char *p = memchr(string, 0, max_count);
> > +    return p ? p - string : max_count;
> > +}
> > +
> > +#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED <
> > +          MAC_OS_X_VERSION_10_7) */
> > +
> > +#endif /* __APPLE__ */
> > +
> > +#endif /* LIBFDT_ENV_H */
> > -- 
> > 2.7.4
> > 
> > 
> 
--8323329-1731392370-1636754472=:1412361--


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 22:09:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 22:09:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225451.389329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlejL-0003p6-K3; Fri, 12 Nov 2021 22:09:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225451.389329; Fri, 12 Nov 2021 22:09:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlejL-0003oz-Ge; Fri, 12 Nov 2021 22:09:07 +0000
Received: by outflank-mailman (input) for mailman id 225451;
 Fri, 12 Nov 2021 22:09:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0ivG=P7=gmail.com=julien.grall.oss@srs-se1.protection.inumbo.net>)
 id 1mlejK-0003ot-7Q
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 22:09:06 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26604f33-4405-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 23:09:05 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id w1so43355247edd.10
 for <xen-devel@lists.xenproject.org>; Fri, 12 Nov 2021 14:09:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26604f33-4405-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=1aAdVhZrGx1VVUufcWK3aM+UtMcm+wfTpnCMR8hcQWQ=;
        b=nJFmxWxrqF1f0y6ZTbeKJvsMocxcFyomRpg/mgP6npv/wFZoBAEs2/MAae3+nGXIu8
         8rII15kxHD4LEgWOOlr1dZ0Mjw6SovR8A/8oPS+Uqmc7y13z7WfWxL+Zb45wrJIXj0w4
         UW4Q5COVW5ncWLmqqU9Pqf+P+WwSEshuOOkRxYiS7gTyNaonT02M3HthXeTbbMoURo37
         Q7jfYQJfhUQUVfJH7zZJztLKnb7LDrMcLXCdCep5dp88WXWkJ3DMD1u1VfCpMk/WglQK
         uMcbq2nk0j6VlrQOayj0pX4EWekEVWGpOP64Xa+K1mTt/YziVMZbJayOIjskjz9PiK/c
         0BFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=1aAdVhZrGx1VVUufcWK3aM+UtMcm+wfTpnCMR8hcQWQ=;
        b=ZMupko9wUTTkCGIaa1zQV9lFzwuR2CL6x4uePUvV7H8UI6LEfPcrk4RHeSN5wFU5E8
         jAFZvocoFM8TbOYLqPEsN8wxUr93LqR2Ioip8Bpce0c1pKCv9JBgm8YuzH4qMN8aFJUx
         rXW+J+4J0juxCss04qTKiaa0mVEkJ7XeNKwjwSUY75q8fpbaSADWABwVZePYoF8FNbXH
         2naqMSXZkEI3El1b5bWcnfHGPXiLORMNOd5FjRLTKSxhPeNRs73rjQb/+LTSpqH2T0My
         2uSRXSabNtXRIf5BMYIFNsDYXwgPBzpHX/wwetUcpM0bIO6nselcGOHrwgTk7cSl4avk
         WwTg==
X-Gm-Message-State: AOAM5303g2c1GrTsDIORM/pzU0/bZR8fjDIrAhKoZBkGndyOv38ODnxF
	9Ah7B1se4Bfihl438pIjxXZUn4Y72muBFOd6yQA=
X-Google-Smtp-Source: ABdhPJy0ttAzYMDIXn5ilP1autdaLpFhJWMhbTs9u/Lulhpnbcb7osIm6YQcBYrhvqRz8dXFTkY/Aq7AvwsQrA3L3CQ=
X-Received: by 2002:a17:906:a041:: with SMTP id bg1mr23461099ejb.470.1636754944892;
 Fri, 12 Nov 2021 14:09:04 -0800 (PST)
MIME-Version: 1.0
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com> <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com> <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <YY6bsu8/y/LeMfg3@mattapan.m5p.com> <40474f12-e269-f251-99b1-cb5b0a317bb2@xen.org>
 <YY7ZVPQSTapB7Jnj@mattapan.m5p.com>
In-Reply-To: <YY7ZVPQSTapB7Jnj@mattapan.m5p.com>
From: Julien Grall <julien.grall.oss@gmail.com>
Date: Fri, 12 Nov 2021 22:08:54 +0000
Message-ID: <CAJ=z9a0EooNfXyrNB82_4yT9qnz5fxEJtVN6oUbVyCzjU4hEKA@mail.gmail.com>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Henry Wang <Henry.Wang@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"

Hi Elliott,

On Fri, 12 Nov 2021 at 21:15, Elliott Mitchell <ehem+xen@m5p.com> wrote:
> > > I had been left with the impression the DSDT parsing was going to be
> > > needed for Domain 0 to access the framebuffer.  This was found
> > > unnecessary for framebuffer access for Domain 0?
> >
> > I thought you were asking for using framebuffer in Xen. There is no need
> > for Xen to parse the DSDT if the framebuffer is solely used by Dom0.
> >
> > Your problem with the framebuffer is likely not related to the DSDT. But
> > I can't really provide a lot of input until I see the logs.
>
> https://lists.xenproject.org/archives/html/xen-devel/2020-10/msg01841.html
>
> That is more or less a statement of handling of DSDT is the Right(tm)
> solution for Domain 0 to have framebuffer on such a platform.

Reading through the thread, I agree this is the correct theoretical thing to do.
However, as already pointed out back then, the effort seems quite big for the
benefit of a single board (AFAIK none of the other SoC we support
requires this).

My preference is to introduce a per-platform quirk (I believe Stefano was happy
with this). The advantage is we could get ACPI support for your board hopefully
merged quicker.

I would be happy to review any patches you send.

Cheers,


From xen-devel-bounces@lists.xenproject.org Fri Nov 12 22:33:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 22:33:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225457.389341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlf6H-0006ry-HT; Fri, 12 Nov 2021 22:32:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225457.389341; Fri, 12 Nov 2021 22:32:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlf6H-0006rr-Dx; Fri, 12 Nov 2021 22:32:49 +0000
Received: by outflank-mailman (input) for mailman id 225457;
 Fri, 12 Nov 2021 22:32:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=cipi=P7=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1mlf6G-0006rl-5Z
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 22:32:48 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74649e8b-4408-11ec-a9d2-d9f7a1cc8784;
 Fri, 12 Nov 2021 23:32:45 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPS id 1ACMWTkQ087468
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 12 Nov 2021 17:32:35 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.16.1/8.15.2/Submit) id 1ACMWSRw087466;
 Fri, 12 Nov 2021 14:32:28 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74649e8b-4408-11ec-a9d2-d9f7a1cc8784
Date: Fri, 12 Nov 2021 14:32:28 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Julien Grall <julien.grall.oss@gmail.com>
Cc: Henry Wang <Henry.Wang@arm.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Message-ID: <YY7rfIWPC1PwidMA@mattapan.m5p.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <YY6bsu8/y/LeMfg3@mattapan.m5p.com>
 <40474f12-e269-f251-99b1-cb5b0a317bb2@xen.org>
 <YY7ZVPQSTapB7Jnj@mattapan.m5p.com>
 <CAJ=z9a0EooNfXyrNB82_4yT9qnz5fxEJtVN6oUbVyCzjU4hEKA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAJ=z9a0EooNfXyrNB82_4yT9qnz5fxEJtVN6oUbVyCzjU4hEKA@mail.gmail.com>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=3.4.5
X-Spam-Checker-Version: SpamAssassin 3.4.5 (2021-03-20) on mattapan.m5p.com

On Fri, Nov 12, 2021 at 10:08:54PM +0000, Julien Grall wrote:
> 
> On Fri, 12 Nov 2021 at 21:15, Elliott Mitchell <ehem+xen@m5p.com> wrote:
> > > > I had been left with the impression the DSDT parsing was going to be
> > > > needed for Domain 0 to access the framebuffer.  This was found
> > > > unnecessary for framebuffer access for Domain 0?
> > >
> > > I thought you were asking for using framebuffer in Xen. There is no need
> > > for Xen to parse the DSDT if the framebuffer is solely used by Dom0.
> > >
> > > Your problem with the framebuffer is likely not related to the DSDT. But
> > > I can't really provide a lot of input until I see the logs.
> >
> > https://lists.xenproject.org/archives/html/xen-devel/2020-10/msg01841.html
> >
> > That is more or less a statement of handling of DSDT is the Right(tm)
> > solution for Domain 0 to have framebuffer on such a platform.
> 
> Reading through the thread, I agree this is the correct theoretical thing to do.
> However, as already pointed out back then, the effort seems quite big for the
> benefit of a single board (AFAIK none of the other SoC we support
> requires this).

Crucial word I would add to the end of the parenthsized sentence; "yet".
Seems entirely plausible other boards could end up needing this for one
reason or another.  Alternatively this could remove the need for many
platform-specific hacks or could simplify support for many boards all at
once.


> My preference is to introduce a per-platform quirk (I believe Stefano was happy
> with this). The advantage is we could get ACPI support for your board hopefully
> merged quicker.

This could be workable as a temporary workaround.  Longer term I suspect
it might well be rather better to *fully* tackle the issue *now*.
Otherwise this seems likely to turn into a database of board-specific
hacks for hundreds or thousands of devices.

I had left the discussion alone towards the end since I was unsure of
what exactly to target (or look at) for this goal.  I was also thinking
long-term planning pretty well required full support, the question was
merely "When?"


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Nov 12 23:01:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Nov 2021 23:01:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225463.389352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlfXf-0001bW-Pm; Fri, 12 Nov 2021 23:01:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225463.389352; Fri, 12 Nov 2021 23:01:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlfXf-0001bP-Ml; Fri, 12 Nov 2021 23:01:07 +0000
Received: by outflank-mailman (input) for mailman id 225463;
 Fri, 12 Nov 2021 23:01:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0ivG=P7=gmail.com=julien.grall.oss@srs-se1.protection.inumbo.net>)
 id 1mlfXe-0001bJ-EK
 for xen-devel@lists.xenproject.org; Fri, 12 Nov 2021 23:01:06 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a1acf52-440c-11ec-9787-a32c541c8605;
 Sat, 13 Nov 2021 00:01:05 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id b15so43372169edd.7
 for <xen-devel@lists.xenproject.org>; Fri, 12 Nov 2021 15:01:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a1acf52-440c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=dBD81CkCABtFHIXR8TFFqpzzA3qNyZrY+swv30yU3/A=;
        b=gH/t681u2jkD1W07+EWdEI3pd1w77oGBlTFbergz6VtHCHVn/U6QC0eNLB5bDuTkX+
         VS/l/WPtP+SAhIDcxg/eC4xVy2Sh2Si0WRNT3mU3WPyaxHwZ4tn0tIAtMjYMYw/XvwWC
         z7l5qtUJ/h0ktQlN+Y627qn4hcjNjCBQFRHBkwxTVE69PbqnTT5ctwMYDV2eCbmPOAp/
         fgCYsSwvUc0I76ZGD4+B2f7VaOZLNewxURwbSBN44ToqQXbwYoBwsys+23p3iLv2tTBE
         s9E3dWuk4M0nLEg2Ok4vpitGWfcj6SQd30MTRu2B0arzx1jND7b68784BP0WVj0mKtpr
         FqSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=dBD81CkCABtFHIXR8TFFqpzzA3qNyZrY+swv30yU3/A=;
        b=Mh+oZnL5CJfJGtcln5O3hqU/b5As9W4KY/N2cvAdoJa2w/9lQFLdpc59qa6/bNBdZf
         NXuaO/EB2lfB9pMfUyupIGP1WT+6Iveyo1PQIwuInmFFoeewa6ClE6c/tizFqayb1lbk
         VCbEhtGj9I8QSA4uGXlH2unVilsXqt3S3hOQTnozolhajwqu2KIPcrk9IjgfHULxK8GR
         fyHyOJj8DNqnEXH05tMv8pmBmX5hnc7ZWPC6AtDnYGxj1d9K5GqYIckqKPUt/ONoaRRx
         KN552IloWPcEnSgfAaLoWSq9akvpUtFpDFxxcavFQSzx5niYf6GoK/lanI5uaVwF2/ua
         apRA==
X-Gm-Message-State: AOAM530M0i/gJV4vjqnugSCI1gy2bPQWU9j/qveQoy7h/ffWnjIaQ9VT
	n3bSsa/KJB1IgwKENcAm2fBQv0yZ+oSouZKfvKk=
X-Google-Smtp-Source: ABdhPJxUg+XPzyV10elbnSQMt1UIewfGtYLsIklyltl5opiUbEZ56Jzkrw3KhAzbiIsM6945A0sXNZ9aIbhi3/DCnpY=
X-Received: by 2002:a05:6402:3508:: with SMTP id b8mr26200289edd.347.1636758064939;
 Fri, 12 Nov 2021 15:01:04 -0800 (PST)
MIME-Version: 1.0
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com> <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com> <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <YY6bsu8/y/LeMfg3@mattapan.m5p.com> <40474f12-e269-f251-99b1-cb5b0a317bb2@xen.org>
 <YY7ZVPQSTapB7Jnj@mattapan.m5p.com> <CAJ=z9a0EooNfXyrNB82_4yT9qnz5fxEJtVN6oUbVyCzjU4hEKA@mail.gmail.com>
 <YY7rfIWPC1PwidMA@mattapan.m5p.com>
In-Reply-To: <YY7rfIWPC1PwidMA@mattapan.m5p.com>
From: Julien Grall <julien.grall.oss@gmail.com>
Date: Fri, 12 Nov 2021 23:00:54 +0000
Message-ID: <CAJ=z9a1=V+MKD0a9aTCBvy-1nxKj4TC7ZOg82oBYn1vmfsu23g@mail.gmail.com>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Henry Wang <Henry.Wang@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"

On Fri, 12 Nov 2021 at 22:32, Elliott Mitchell <ehem+xen@m5p.com> wrote:
> > My preference is to introduce a per-platform quirk (I believe Stefano was happy
> > with this). The advantage is we could get ACPI support for your board hopefully
> > merged quicker.
>
> This could be workable as a temporary workaround.  Longer term I suspect
> it might well be rather better to *fully* tackle the issue *now*.
> Otherwise this seems likely to turn into a database of board-specific
> hacks for hundreds or thousands of devices.

As usual, you have to find a balance between cost vs benefits.

If you look at the Device-Tree side, we don' t have many platforms
requiring quirks.
In particular, the DMA is so far strictly limited to a single platform (RPI).
So I would be surprised if we suddenly require tons of quirks when using
ACPI.

Therefore I am unconvinced that such a big effort is necessary. That being said,
if you have plenty of time to invest to implement a DSDT parser in a
stub domain,
then I would be happy to review the patches.

Cheers,


From xen-devel-bounces@lists.xenproject.org Sat Nov 13 00:08:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 00:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225470.389363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlgak-0007xj-20; Sat, 13 Nov 2021 00:08:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225470.389363; Sat, 13 Nov 2021 00:08:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlgaj-0007xc-Um; Sat, 13 Nov 2021 00:08:21 +0000
Received: by outflank-mailman (input) for mailman id 225470;
 Sat, 13 Nov 2021 00:08:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlgai-0007xS-KW; Sat, 13 Nov 2021 00:08:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlgai-0004El-DP; Sat, 13 Nov 2021 00:08:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlgai-0003X2-6L; Sat, 13 Nov 2021 00:08:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlgai-0000PY-5s; Sat, 13 Nov 2021 00:08:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QAtrhMvSIZaF+BBx7RUaBW1fH4hovwKR2auFFgbmbjo=; b=I1QvzVZV03Xc46Q/9JNrX+aOL9
	my00+aA3mUfKO5DbBq6nKrcMaHswlqdG9OwNSs0ZSM7lTctD53kokD/dmmyLaE2KyRUwQQLMvFRvM
	Xcmx1oBM/uNpDqPOgHzDWmIiOEIdaDT3VJ4drxJecjV7yZrJennN2bDC4UmZ/zCoMVTw=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166130-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166130: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=455b0347a7c55d3842e87b20259659a22f7e62a5
X-Osstest-Versions-That:
    ovmf=466ebdd2e0919c1538d03cd59833704bd5e1c028
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 00:08:20 +0000

flight 166130 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166130/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 455b0347a7c55d3842e87b20259659a22f7e62a5
baseline version:
 ovmf                 466ebdd2e0919c1538d03cd59833704bd5e1c028

Last test of basis   166126  2021-11-12 10:43:21 Z    0 days
Testing same since   166130  2021-11-12 15:12:41 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Sheng Wei <w.sheng@intel.com>
  Sheng, W <w.sheng@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   466ebdd2e0..455b0347a7  455b0347a7c55d3842e87b20259659a22f7e62a5 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Nov 13 01:04:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 01:04:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225481.389377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlhSP-0007A0-H6; Sat, 13 Nov 2021 01:03:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225481.389377; Sat, 13 Nov 2021 01:03:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlhSP-00079t-CU; Sat, 13 Nov 2021 01:03:49 +0000
Received: by outflank-mailman (input) for mailman id 225481;
 Sat, 13 Nov 2021 01:03:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=22NN=QA=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1mlhSO-00079n-8r
 for xen-devel@lists.xenproject.org; Sat, 13 Nov 2021 01:03:48 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8cdc306f-441d-11ec-9787-a32c541c8605;
 Sat, 13 Nov 2021 02:03:46 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPS id 1AD13Uar089364
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 12 Nov 2021 20:03:35 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.16.1/8.15.2/Submit) id 1AD13Sl4089363;
 Fri, 12 Nov 2021 17:03:28 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8cdc306f-441d-11ec-9787-a32c541c8605
Date: Fri, 12 Nov 2021 17:03:28 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Julien Grall <julien.grall.oss@gmail.com>
Cc: Henry Wang <Henry.Wang@arm.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Message-ID: <YY8O4GOfYg4Bz2CW@mattapan.m5p.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <YY6bsu8/y/LeMfg3@mattapan.m5p.com>
 <40474f12-e269-f251-99b1-cb5b0a317bb2@xen.org>
 <YY7ZVPQSTapB7Jnj@mattapan.m5p.com>
 <CAJ=z9a0EooNfXyrNB82_4yT9qnz5fxEJtVN6oUbVyCzjU4hEKA@mail.gmail.com>
 <YY7rfIWPC1PwidMA@mattapan.m5p.com>
 <CAJ=z9a1=V+MKD0a9aTCBvy-1nxKj4TC7ZOg82oBYn1vmfsu23g@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAJ=z9a1=V+MKD0a9aTCBvy-1nxKj4TC7ZOg82oBYn1vmfsu23g@mail.gmail.com>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=3.4.5
X-Spam-Checker-Version: SpamAssassin 3.4.5 (2021-03-20) on mattapan.m5p.com

On Fri, Nov 12, 2021 at 11:00:54PM +0000, Julien Grall wrote:
> On Fri, 12 Nov 2021 at 22:32, Elliott Mitchell <ehem+xen@m5p.com> wrote:
> > > My preference is to introduce a per-platform quirk (I believe Stefano was happy
> > > with this). The advantage is we could get ACPI support for your board hopefully
> > > merged quicker.
> >
> > This could be workable as a temporary workaround.  Longer term I suspect
> > it might well be rather better to *fully* tackle the issue *now*.
> > Otherwise this seems likely to turn into a database of board-specific
> > hacks for hundreds or thousands of devices.
> 
> As usual, you have to find a balance between cost vs benefits.
> 
> If you look at the Device-Tree side, we don' t have many platforms
> requiring quirks.
> In particular, the DMA is so far strictly limited to a single platform (RPI).
> So I would be surprised if we suddenly require tons of quirks when using
> ACPI.

Presently the DMA quirk would be the only consumer, but there will likely
be other consumers later.  Might there be few device-tree quirks due to a
short list of platforms?  Might full ACPI support vastly increase
Xen/ARM's target audience?  (partially ACPI so complex to support so many
varied devices)

I do concede a device-quirk is reasonable for the short-term.  Presently
I don't know where to look for better matching targets, so I'm trapped in
a cave with no light.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Sat Nov 13 01:34:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 01:34:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225486.389388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlhvQ-0001q6-TX; Sat, 13 Nov 2021 01:33:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225486.389388; Sat, 13 Nov 2021 01:33:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlhvQ-0001pz-Q2; Sat, 13 Nov 2021 01:33:48 +0000
Received: by outflank-mailman (input) for mailman id 225486;
 Sat, 13 Nov 2021 01:33:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlhvP-0001pp-Gy; Sat, 13 Nov 2021 01:33:47 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlhvP-0007Ab-Bv; Sat, 13 Nov 2021 01:33:47 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlhvP-0005gd-2I; Sat, 13 Nov 2021 01:33:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlhvP-0004sr-1p; Sat, 13 Nov 2021 01:33:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=PdPmF0X8Wkomh6S6hE6yY3OxB3jukHXbi7MUd04jO6A=; b=S+njO7mRctmeZlIU0/yBnb+QC4
	zIORyTAap5lNZQxjRmoRAX1ABPx+Q53jSC6mIyp6/w9cxyE7uBvyXWghEUT5lbQdGGG69xSyegqBw
	jp/pkwUk6BkfKvL9+NGva+PqRA4hp8hqzmex4A/YqTzIM58kuu8atsTILwZbHHKVgKa0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166132-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166132: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
X-Osstest-Versions-That:
    xen=81da2b544cbb003a5447c9b14d275746ad22ab37
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 01:33:47 +0000

flight 166132 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166132/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6
baseline version:
 xen                  81da2b544cbb003a5447c9b14d275746ad22ab37

Last test of basis   166131  2021-11-12 17:02:51 Z    0 days
Testing same since   166132  2021-11-12 21:02:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jane Malalane <jane.malalane@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   81da2b544c..c7a7f14b92  c7a7f14b92991e7d79735bff95f04676b9af34c6 -> smoke


From xen-devel-bounces@lists.xenproject.org Sat Nov 13 01:49:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 01:49:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225492.389403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mliAp-0003LD-D5; Sat, 13 Nov 2021 01:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225492.389403; Sat, 13 Nov 2021 01:49:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mliAp-0003L5-6P; Sat, 13 Nov 2021 01:49:43 +0000
Received: by outflank-mailman (input) for mailman id 225492;
 Sat, 13 Nov 2021 01:49:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mliAo-0003Kv-0Z; Sat, 13 Nov 2021 01:49:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mliAn-0007Q0-NF; Sat, 13 Nov 2021 01:49:41 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mliAn-00067Q-EZ; Sat, 13 Nov 2021 01:49:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mliAn-0007Vm-Dy; Sat, 13 Nov 2021 01:49:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dCQINsiIBBJy+j6zcmztunaYkeJeoRzdgjOha4tI4sQ=; b=jyCNh1E86cMdACnBWGhGfOKa5x
	O7Gmqkw1kMCjU1knXAnV7Tj+6F9dJ9GTeYf2tL+cycn+TRmnrVA1kHUj0ePCIA5eOTKyqehX43lMm
	R7OAtBqDqitZFzGNTvVcreYK8TnNMLvXy9QsxhTyxY0kJ6vtCt9FTdwk0pYLW9rEnuZE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166133-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166133: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=e1e7306b54147e65cb7347b060e94f336d4a82d2
X-Osstest-Versions-That:
    ovmf=455b0347a7c55d3842e87b20259659a22f7e62a5
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 01:49:41 +0000

flight 166133 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166133/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 e1e7306b54147e65cb7347b060e94f336d4a82d2
baseline version:
 ovmf                 455b0347a7c55d3842e87b20259659a22f7e62a5

Last test of basis   166130  2021-11-12 15:12:41 Z    0 days
Testing same since   166133  2021-11-13 00:11:20 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael D Kinney <michael.d.kinney@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   455b0347a7..e1e7306b54  e1e7306b54147e65cb7347b060e94f336d4a82d2 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Nov 13 02:58:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 02:58:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225499.389416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mljFP-0001pj-Ge; Sat, 13 Nov 2021 02:58:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225499.389416; Sat, 13 Nov 2021 02:58:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mljFP-0001pc-DT; Sat, 13 Nov 2021 02:58:31 +0000
Received: by outflank-mailman (input) for mailman id 225499;
 Sat, 13 Nov 2021 02:58:30 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mljFO-0001pS-Ea; Sat, 13 Nov 2021 02:58:30 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mljFO-0000X6-8p; Sat, 13 Nov 2021 02:58:30 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mljFN-0007mJ-UW; Sat, 13 Nov 2021 02:58:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mljFN-0002nv-U2; Sat, 13 Nov 2021 02:58:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=YvpJXnhwQbYCCvVSFjxGq8DQc579s5sbfIMxxnV/QXU=; b=WDSIL6b2HmnfrW2WS/g3pkeTXO
	YJ7lWmHlfTvgKxR8JWqeYv/bCUz4kWMXuAwlPvBvY+efvja/wRp2+IVPuXBysY59wfal/N0pz94pH
	FUhfuOntay6jLOIcquWJH9CDoBkpMYUJUs6C1gEUW95CBvXdX92voPHvpKJon3J0GvnU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166122-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166122: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-coresched-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-pvshim:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-credit1:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-shadow:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-xsm:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-multivcpu:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-pvhv2-intel:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-credit2:guest-start:fail:regression
    linux-linus:test-amd64-amd64-pair:guest-start/debian:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5833291ab6de9c3e2374336b51c814e515e8f3a5
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 02:58:29 +0000

flight 166122 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166122/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-coresched-amd64-xl 14 guest-start             fail REGR. vs. 165976
 test-amd64-amd64-dom0pvh-xl-intel 14 guest-start         fail REGR. vs. 165976
 test-amd64-amd64-xl-pvshim   14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl          14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-credit1  14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-shadow   14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-xsm      14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-multivcpu 14 guest-start             fail REGR. vs. 165976
 test-amd64-amd64-xl-pvhv2-intel 14 guest-start           fail REGR. vs. 165976
 test-amd64-amd64-xl-credit2  14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-pair        25 guest-start/debian       fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                5833291ab6de9c3e2374336b51c814e515e8f3a5
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   11 days
Failing since        165992  2021-11-02 05:40:21 Z   10 days   16 attempts
Testing same since   166122  2021-11-12 06:35:32 Z    0 days    1 attempts

------------------------------------------------------------
2056 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                fail    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  fail    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  fail    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              fail    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                fail    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        fail    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   fail    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   fail    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 234777 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Nov 13 04:06:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 04:06:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225505.389430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlkIr-0008PU-Hq; Sat, 13 Nov 2021 04:06:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225505.389430; Sat, 13 Nov 2021 04:06:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlkIr-0008PN-EX; Sat, 13 Nov 2021 04:06:09 +0000
Received: by outflank-mailman (input) for mailman id 225505;
 Sat, 13 Nov 2021 04:06:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlkIq-0008PD-Av; Sat, 13 Nov 2021 04:06:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlkIq-0001gv-3Z; Sat, 13 Nov 2021 04:06:08 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlkIp-00011b-RG; Sat, 13 Nov 2021 04:06:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlkIp-0007TH-Qn; Sat, 13 Nov 2021 04:06:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=1xygKvSUcYSzQgkciNIzgPTg/MEzjBi+ZzsNKD3QHxc=; b=jJlNVbXGFgucy9knlOqdFd4boR
	SVWMSnel6CmFLhaqimVFRUCcWiOcpTuQ5xtazrhS0MI0zfFXAYgYwZdNi8LRoVUiWlpwW5un4z8el
	8+iGruQkjJp5yj1Wp5Rwiu+prPUXNo837gxeXWVSswrWbOScjUqqMO7UhuWfm43pk0LY=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166125-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166125: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:build-i386-xsm:xen-build:fail:regression
    xen-unstable:build-i386-prev:xen-build:fail:regression
    xen-unstable:test-amd64-i386-xl-qemut-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-i386-migrupgrade:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e2d0a42381b686451bed3e0e3ab8551f6c2d4090
X-Osstest-Versions-That:
    xen=e2d0a42381b686451bed3e0e3ab8551f6c2d4090
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 04:06:07 +0000

flight 166125 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166125/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-xsm                6 xen-build                fail REGR. vs. 166118
 build-i386-prev               6 xen-build                fail REGR. vs. 166118

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-migrupgrade   1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166118
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166118
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166118
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166118
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166118
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166118
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166118
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166118
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166118
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166118
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166118
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166118
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e2d0a42381b686451bed3e0e3ab8551f6c2d4090
baseline version:
 xen                  e2d0a42381b686451bed3e0e3ab8551f6c2d4090

Last test of basis   166125  2021-11-12 09:54:48 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               fail    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         blocked 
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sat Nov 13 07:14:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 07:14:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225514.389450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlnEi-0000VF-KP; Sat, 13 Nov 2021 07:14:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225514.389450; Sat, 13 Nov 2021 07:14:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlnEi-0000V8-Fe; Sat, 13 Nov 2021 07:14:04 +0000
Received: by outflank-mailman (input) for mailman id 225514;
 Sat, 13 Nov 2021 07:14:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlnEh-0000Uy-3n; Sat, 13 Nov 2021 07:14:03 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlnEg-0005As-Tx; Sat, 13 Nov 2021 07:14:02 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlnEg-0002KU-K8; Sat, 13 Nov 2021 07:14:02 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlnEg-0007ob-Jc; Sat, 13 Nov 2021 07:14:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Ag6LqXkF5TZ419DACfFQxgiTFUxm6mO55sonvbUI1/g=; b=RyBGB1YA78t2Gp7G3fsCQ4b7OH
	3MTTBpsDgtcee8qG2suS8UFpkxYkoqVfvkz3hK143A+220IPFenAjQzxlEvTIgpYS4BQY2hV0NQu8
	3m3pOqt7GFSyTyg0algQ2y3JkRe4P1LSxosmRfgSppIX7j51UJbSiwkDvJnlBPWS6UiY=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166128-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166128: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-arm64-arm64-xl-vhd:guest-start:fail:heisenbug
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=42f6c9179be4401974dd3a75ee72defd16b5092d
X-Osstest-Versions-That:
    qemuu=70f872ca916ac4552fa71d82b8d006b3e679089e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 07:14:02 +0000

flight 166128 qemu-mainline real [real]
flight 166139 qemu-mainline real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166128/
http://logs.test-lab.xenproject.org/osstest/logs/166139/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-xl-vhd      13 guest-start         fail pass in 166139-retest

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl-vhd     14 migrate-support-check fail in 166139 never pass
 test-arm64-arm64-xl-vhd 15 saverestore-support-check fail in 166139 never pass
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166119
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166119
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166119
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166119
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166119
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166119
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166119
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166119
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166119
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                42f6c9179be4401974dd3a75ee72defd16b5092d
baseline version:
 qemuu                70f872ca916ac4552fa71d82b8d006b3e679089e

Last test of basis   166119  2021-11-11 23:09:18 Z    1 days
Testing same since   166128  2021-11-12 14:07:54 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Cédric Le Goater <clg@kaod.org>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Matheus Ferst <matheus.ferst@eldorado.org.br>
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      fail    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   70f872ca91..42f6c9179b  42f6c9179be4401974dd3a75ee72defd16b5092d -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Sat Nov 13 08:37:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 08:37:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225524.389464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mloXC-0008SA-3g; Sat, 13 Nov 2021 08:37:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225524.389464; Sat, 13 Nov 2021 08:37:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mloXB-0008S3-Vt; Sat, 13 Nov 2021 08:37:13 +0000
Received: by outflank-mailman (input) for mailman id 225524;
 Sat, 13 Nov 2021 08:37:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mloXB-0008Rt-2x; Sat, 13 Nov 2021 08:37:13 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mloXA-00070w-PX; Sat, 13 Nov 2021 08:37:12 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mloXA-0006kN-Cd; Sat, 13 Nov 2021 08:37:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mloXA-00011p-C3; Sat, 13 Nov 2021 08:37:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=gEqbseAMC0k01+rmhnoj4atGNK5ymT2/paEvuQp4nmc=; b=r01YOAqCTkd3P29+co5J1/2uHI
	FgCL/y9K/llcSCH77QEAniI6lD1gW9vcDfnlPUzRfepOa/PK4xr1Rp9iuB1uCm3X5v0n/kuwvM+9i
	DgsQ0bBa6eCV4duX1i1maMRl6fhqSskMpoV/WjxSexazWJPOxqjIUwsrxMRaMvInIXt0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166129-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-5.4 test] 166129: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-5.4:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5915b0ea674673d13d2755f7e7f843fe286d85ec
X-Osstest-Versions-That:
    linux=c65356f0f7268b1260dd64415c2145e73640872e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 08:37:12 +0000

flight 166129 linux-5.4 real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166129/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166070
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166070
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166070
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166070
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166070
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166070
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166070
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166070
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166070
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166070
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166070
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166070
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                5915b0ea674673d13d2755f7e7f843fe286d85ec
baseline version:
 linux                c65356f0f7268b1260dd64415c2145e73640872e

Last test of basis   166070  2021-11-06 13:12:59 Z    6 days
Testing same since   166129  2021-11-12 14:12:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alan Stern <stern@rowland.harvard.edu>
  Christian Brauner <christian.brauner@ubuntu.com>
  Florian Fainelli <f.fainelli@gmail.com>
  Geert Uytterhoeven <geert@linux-m68k.org>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guenter Roeck <linux@roeck-us.net>
  Gustavo A. R. Silva <gustavoars@kernel.org>
  James Buren <braewoods+lkml@braewoods.net>
  Jan Kara <jack@suse.cz>
  Johan Hovold <johan@kernel.org>
  Juergen Gross <jgross@suse.com>
  Kalle Valo <kvalo@codeaurora.org>
  Larry Finger <Larry.Finger@lwfinger.net>
  Li Yang <leoyang.li@nxp.com>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Neal Liu <neal_liu@aspeedtech.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Petr Mladek <pmladek@suse.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
  Tao Ren <rentao.bupt@gmail.com>
  Todd Kjos <tkjos@google.com>
  Viraj Shah <viraj.shah@linutronix.de>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   c65356f0f726..5915b0ea6746  5915b0ea674673d13d2755f7e7f843fe286d85ec -> tested/linux-5.4


From xen-devel-bounces@lists.xenproject.org Sat Nov 13 12:10:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 12:10:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225531.389478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlrrF-0002VX-KG; Sat, 13 Nov 2021 12:10:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225531.389478; Sat, 13 Nov 2021 12:10:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlrrF-0002VQ-Go; Sat, 13 Nov 2021 12:10:09 +0000
Received: by outflank-mailman (input) for mailman id 225531;
 Sat, 13 Nov 2021 08:48:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WVXp=QA=weissschuh.net=linux@srs-se1.protection.inumbo.net>)
 id 1mlohp-0001X8-UF
 for xen-devel@lists.xenproject.org; Sat, 13 Nov 2021 08:48:14 +0000
Received: from todd.t-8ch.de (todd.t-8ch.de [2a01:4f8:c010:41de::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c8120ba-445e-11ec-a9d2-d9f7a1cc8784;
 Sat, 13 Nov 2021 09:48:11 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c8120ba-445e-11ec-a9d2-d9f7a1cc8784
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net;
	s=mail; t=1636792709;
	bh=oUFtQ64Cm+17GAUy1q4rYvKGNoMzMADVbvq6kqHCI3I=;
	h=From:To:Cc:Subject:Date:From;
	b=IVv6RVqZLUq1cdNfpOznglmn97XUhItFa/Mu1oo42XBzbALjHyi23d89q10snve0g
	 WeAxMLbAclVWrMHA072X4griCtu+sxUFoiIkJRLbzGjy+/w4sNtIim4XqbM8ldDr1u
	 pKdM0DyNsfxEbsoNzkKC6r9Poz3/JIk70OCmv7Qo=
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>,
	linux-kernel@vger.kernel.org
Subject: [PATCH] xen/privcmd: make option visible in Kconfig
Date: Sat, 13 Nov 2021 09:38:21 +0100
Message-Id: <20211113083821.71060-1-linux@weissschuh.net>
X-Mailer: git-send-email 2.33.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This configuration option provides a misc device as an API to userspace.
Make this API usable without having to select the module as a transitive
dependency.

This also fixes an issue where localyesconfig would select
CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
building as module.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

---

Note: If CONFIG_XEN_PRIVCMD really is only meant to be selected by
XENFS, then the issue can be fixed by removing its "default m"
definition.
---
 drivers/xen/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index a1b11c62da9e..c14d8631b8f6 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -259,7 +259,7 @@ config XEN_SCSI_BACKEND
 	  if guests need generic access to SCSI devices.
 
 config XEN_PRIVCMD
-	tristate
+	tristate "Xen privileged domain-0 commands"
 	depends on XEN
 	default m
 

base-commit: 66f4beaa6c1d28161f534471484b2daa2de1dce0
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Sat Nov 13 14:09:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 14:09:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225537.389488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mltiW-0004CB-5j; Sat, 13 Nov 2021 14:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225537.389488; Sat, 13 Nov 2021 14:09:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mltiW-0004C4-2m; Sat, 13 Nov 2021 14:09:16 +0000
Received: by outflank-mailman (input) for mailman id 225537;
 Sat, 13 Nov 2021 14:09:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mltiU-0004Bu-Pe; Sat, 13 Nov 2021 14:09:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mltiU-00042P-Iy; Sat, 13 Nov 2021 14:09:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mltiU-0001My-95; Sat, 13 Nov 2021 14:09:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mltiU-0003qm-8Y; Sat, 13 Nov 2021 14:09:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=BvDa7I/AKK0g9JX9CP+TeT9hhPo+GKLB1k7VpJkRZSw=; b=VgQH9aoa9AbaTSyt9eJ7iq+O/s
	ZmFFjekbsLuiQtCFogxh7QxE7HPWufCK/MWG1tNgu1RZq6ZEuTQvRiEQtKqS1SrHK7egYQOMRUAw6
	3P5CVd52jAEzsTvYWm9Gt4xxxyqIzSE/mYlXsw0pdmG9P5CQhe0CVmI24oBBFWO0iKJI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166137-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166137: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=df194c5c0879c2a933d6a3320268539184898830
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 14:09:14 +0000

flight 166137 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166137/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              df194c5c0879c2a933d6a3320268539184898830
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  491 days
Failing since        151818  2020-07-11 04:18:52 Z  490 days  476 attempts
Testing same since   166137  2021-11-13 04:18:56 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 83222 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Nov 13 18:30:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 18:30:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225543.389502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlxmQ-00029W-Mq; Sat, 13 Nov 2021 18:29:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225543.389502; Sat, 13 Nov 2021 18:29:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mlxmQ-00029P-Js; Sat, 13 Nov 2021 18:29:34 +0000
Received: by outflank-mailman (input) for mailman id 225543;
 Sat, 13 Nov 2021 18:29:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlxmO-00029F-W1; Sat, 13 Nov 2021 18:29:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlxmO-0000NN-Jn; Sat, 13 Nov 2021 18:29:32 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mlxmO-0007TW-7T; Sat, 13 Nov 2021 18:29:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mlxmO-0008S1-71; Sat, 13 Nov 2021 18:29:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=CGXdUKHlOLhUFjBHpPYkvWr2cf/6S1M+5YSNznTP6XU=; b=R6gAPuE9tXNZSSA/EeqXV4zyBm
	oAfg3tAbcqnnnkQhac9y3/r9r0sib48xb6sN5fYHm6em9Tc64t5H3DPfwMpgLeznjoc7gaCmC/2xY
	dqN2BC8cfzFYEm6uifMugTNgglMWh86EX0v1OXRIOC81Iap8xSK3ifzwKuJLX8HeSAC8=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166135-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166135: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
X-Osstest-Versions-That:
    xen=e2d0a42381b686451bed3e0e3ab8551f6c2d4090
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 18:29:32 +0000

flight 166135 xen-unstable real [real]
flight 166140 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166135/
http://logs.test-lab.xenproject.org/osstest/logs/166140/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166140-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166125
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166125
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166125
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166125
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166125
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166125
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166125
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166125
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166125
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166125
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166125
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166125
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6
baseline version:
 xen                  e2d0a42381b686451bed3e0e3ab8551f6c2d4090

Last test of basis   166125  2021-11-12 09:54:48 Z    1 days
Testing same since   166135  2021-11-13 04:10:38 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Jane Malalane <jane.malalane@citrix.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   e2d0a42381..c7a7f14b92  c7a7f14b92991e7d79735bff95f04676b9af34c6 -> master


From xen-devel-bounces@lists.xenproject.org Sat Nov 13 21:37:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Nov 2021 21:37:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225552.389528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mm0i6-0002Cf-Qm; Sat, 13 Nov 2021 21:37:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225552.389528; Sat, 13 Nov 2021 21:37:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mm0i6-0002CY-Ns; Sat, 13 Nov 2021 21:37:18 +0000
Received: by outflank-mailman (input) for mailman id 225552;
 Sat, 13 Nov 2021 21:37:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mm0i4-0002CO-UK; Sat, 13 Nov 2021 21:37:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mm0i4-0003bO-NP; Sat, 13 Nov 2021 21:37:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mm0i4-000390-Eh; Sat, 13 Nov 2021 21:37:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mm0i4-0004YD-ED; Sat, 13 Nov 2021 21:37:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=LANNIKCv1FOKNEjmHWf8rs/emgjR5MpW+qOq0zs+4Ak=; b=XQu92cIejstimZm6VTFReyzh9H
	VLFkuhGFwfSh0BEkoFs0Lpz0ahwzyexQVi8KKtEVM3MlFkYv4A29Q1Ne2u9I4TfDQUqJ2NXT0FLA8
	WCzlthjHtHbBuT2h6ltW7dCGH/uzMvQ3T/wlFMGxpXKENdCLi7v7WBXdRI9eCCiN2YP8=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166134-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166134: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-coresched-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-pvshim:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-credit1:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-shadow:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-xsm:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-multivcpu:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-pvhv2-intel:guest-start:fail:regression
    linux-linus:test-amd64-amd64-xl-credit2:guest-start:fail:regression
    linux-linus:test-amd64-amd64-pair:guest-start/debian:fail:regression
    linux-linus:test-amd64-amd64-examine:memdisk-try-append:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=66f4beaa6c1d28161f534471484b2daa2de1dce0
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Nov 2021 21:37:16 +0000

flight 166134 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166134/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-coresched-amd64-xl 14 guest-start             fail REGR. vs. 165976
 test-amd64-amd64-dom0pvh-xl-intel 14 guest-start         fail REGR. vs. 165976
 test-amd64-amd64-xl-pvshim   14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl          14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-credit1  14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-shadow   14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-xsm      14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-xl-multivcpu 14 guest-start             fail REGR. vs. 165976
 test-amd64-amd64-xl-pvhv2-intel 14 guest-start           fail REGR. vs. 165976
 test-amd64-amd64-xl-credit2  14 guest-start              fail REGR. vs. 165976
 test-amd64-amd64-pair        25 guest-start/debian       fail REGR. vs. 165976
 test-amd64-amd64-examine      4 memdisk-try-append       fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                66f4beaa6c1d28161f534471484b2daa2de1dce0
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   11 days
Failing since        165992  2021-11-02 05:40:21 Z   11 days   17 attempts
Testing same since   166134  2021-11-13 03:01:28 Z    0 days    1 attempts

------------------------------------------------------------
2100 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                fail    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  fail    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  fail    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              fail    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                fail    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        fail    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   fail    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   fail    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 241551 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Nov 14 08:36:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Nov 2021 08:36:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225562.389543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmAzL-0004Fg-9n; Sun, 14 Nov 2021 08:35:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225562.389543; Sun, 14 Nov 2021 08:35:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmAzL-0004FZ-5T; Sun, 14 Nov 2021 08:35:47 +0000
Received: by outflank-mailman (input) for mailman id 225562;
 Sun, 14 Nov 2021 08:35:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmAzK-0004FP-CY; Sun, 14 Nov 2021 08:35:46 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmAzJ-0000xf-OF; Sun, 14 Nov 2021 08:35:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmAzJ-0004oh-DU; Sun, 14 Nov 2021 08:35:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmAzJ-0001fz-Cz; Sun, 14 Nov 2021 08:35:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=aovveNiHgOX2792lGCoHnTP44nL+pukT86vBTlyW+QE=; b=L+BFkW3RPlPyWI/OCiZWead/on
	4xjfR5Akl86OmIaDoB1AeQT3Mi9OXkBmVZsqEvWy5qdq0amq/lPjEjZh4dnh5c+JgaXuI0GZvMu+F
	LVzU57ZYw8lBAYl7pe3yzP0eJW0+Vhl7/UQXVNNEM3XW8dB7VA59VPk51RJekPBn6JMI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166141-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166141: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-freebsd11-amd64:guest-start.2:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:allowable
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=ccfff0a2bd2a30de130b5623d242ddecd0272bc2
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 14 Nov 2021 08:35:45 +0000

flight 166141 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166141/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-amd64-amd64-freebsd11-amd64 22 guest-start.2        fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10   fail REGR. vs. 165976
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                ccfff0a2bd2a30de130b5623d242ddecd0272bc2
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   12 days
Failing since        165992  2021-11-02 05:40:21 Z   12 days   18 attempts
Testing same since   166141  2021-11-13 21:40:46 Z    0 days    1 attempts

------------------------------------------------------------
2140 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             fail    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 246404 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Nov 14 09:56:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Nov 2021 09:56:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225570.389557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmCEn-0003Hw-Uh; Sun, 14 Nov 2021 09:55:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225570.389557; Sun, 14 Nov 2021 09:55:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmCEn-0003Hp-QS; Sun, 14 Nov 2021 09:55:49 +0000
Received: by outflank-mailman (input) for mailman id 225570;
 Sun, 14 Nov 2021 09:55:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmCEm-0003Hf-DN; Sun, 14 Nov 2021 09:55:48 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmCEm-0002Fb-A1; Sun, 14 Nov 2021 09:55:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmCEm-0007aO-1X; Sun, 14 Nov 2021 09:55:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmCEm-00061H-11; Sun, 14 Nov 2021 09:55:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=iL4N/LQDC3G4t6bEM8ldslQ7aiuXgzcb8vAUtpmc3ZU=; b=Y6zue37Po2pZXz75D3up2ySF0b
	AeWUUI0cfIVzun0l8fTlKxcBs5ED1qyQToreu2PAYJtV/bmqhhSHqkex+sQ6yZ6JD//14v2Z8FFI6
	+MwlRPut0IeJNHYHwMMh7jvLqtgMAuVYaAFs/5CXISj3QRZC7HpgCesDhdk63h6cF5ME=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166145-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-coverity test] 166145: all pass - PUSHED
X-Osstest-Versions-This:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
X-Osstest-Versions-That:
    xen=9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 14 Nov 2021 09:55:48 +0000

flight 166145 xen-unstable-coverity real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166145/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6
baseline version:
 xen                  9d9cd0c6f5b16652f61e7f21233ec8dfd6cf7df2

Last test of basis   166107  2021-11-10 09:19:41 Z    4 days
Testing same since   166145  2021-11-14 09:18:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Bertrand Marquis <bertrand.marquis@arm.com>
  Jan Beulich <jbeulich@suse.com>
  Jane Malalane <jane.malalane@citrix.com>
  Julien Grall <jgrall@amazon.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stefano Stabellini <stefano.stabellini@xilinx.com>

jobs:
 coverity-amd64                                               pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9d9cd0c6f5..c7a7f14b92  c7a7f14b92991e7d79735bff95f04676b9af34c6 -> coverity-tested/smoke


From xen-devel-bounces@lists.xenproject.org Sun Nov 14 10:14:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Nov 2021 10:14:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225576.389570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmCWj-0005f3-Ig; Sun, 14 Nov 2021 10:14:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225576.389570; Sun, 14 Nov 2021 10:14:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmCWj-0005ew-Fc; Sun, 14 Nov 2021 10:14:21 +0000
Received: by outflank-mailman (input) for mailman id 225576;
 Sun, 14 Nov 2021 10:14:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmCWi-0005em-AH; Sun, 14 Nov 2021 10:14:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmCWi-0002dx-5c; Sun, 14 Nov 2021 10:14:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmCWi-000080-0B; Sun, 14 Nov 2021 10:14:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmCWh-0004ZP-Vt; Sun, 14 Nov 2021 10:14:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=a1kFp8CgOvMJ8WmewQ+aWk/suRHaRihvbiKupTfJXzY=; b=62ypDLKt4yVvRksBN2Fw5iW43e
	7iHGbYRnRSx36Dkoc7SMzLfN/znEum71Lv890d4xK04raF7SgulodA8pzg+jtcp4muiakRQ+zgRNh
	UdcF4+BgTUgfCn6AFPSKRB+lUXOjfGwZDTP8vgBZPeWIRKm9GF268MGWi1k6gQASaUSE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166143-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166143: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=df194c5c0879c2a933d6a3320268539184898830
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 14 Nov 2021 10:14:19 +0000

flight 166143 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166143/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              df194c5c0879c2a933d6a3320268539184898830
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  492 days
Failing since        151818  2020-07-11 04:18:52 Z  491 days  477 attempts
Testing same since   166137  2021-11-13 04:18:56 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 83222 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Nov 14 11:16:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Nov 2021 11:16:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225583.389585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmDUK-00030W-9u; Sun, 14 Nov 2021 11:15:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225583.389585; Sun, 14 Nov 2021 11:15:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmDUK-00030P-6q; Sun, 14 Nov 2021 11:15:56 +0000
Received: by outflank-mailman (input) for mailman id 225583;
 Sun, 14 Nov 2021 11:15:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmDUJ-00030F-BR; Sun, 14 Nov 2021 11:15:55 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmDUJ-0003e0-2B; Sun, 14 Nov 2021 11:15:55 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmDUI-0003dx-Qu; Sun, 14 Nov 2021 11:15:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmDUI-0001kb-QR; Sun, 14 Nov 2021 11:15:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=pzdHPeGh1XqAMETYnpBQMmK2ArfCbijvZuWjs70PP9U=; b=fx6y1TNB2zX8R0C4WpeFwgBraE
	6uw4YSFskXt86INnS+w1jex+0lsvmEWEbgv2McxK3Eqj+dNSdstxtubDHVfTmFA9LoXIRV6GMg0X+
	0RV7unZ77xeSIvjIJAvfR2bNSFmZ1c/N/n8NDGovQtHaabRfizl6P+bW9eRJu0A9qcXs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166142-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166142: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:guest-start/debianhvm.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
X-Osstest-Versions-That:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 14 Nov 2021 11:15:54 +0000

flight 166142 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166142/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail in 166135 pass in 166142
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 18 guest-start/debianhvm.repeat fail pass in 166135

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166135
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166135
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166135
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166135
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166135
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166135
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166135
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166135
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166135
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166135
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166135
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166135
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6
baseline version:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6

Last test of basis   166142  2021-11-14 01:52:47 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            fail    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Nov 14 19:28:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Nov 2021 19:28:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225591.389599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmLAv-0003fX-Pg; Sun, 14 Nov 2021 19:28:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225591.389599; Sun, 14 Nov 2021 19:28:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmLAv-0003fQ-MY; Sun, 14 Nov 2021 19:28:25 +0000
Received: by outflank-mailman (input) for mailman id 225591;
 Sun, 14 Nov 2021 19:28:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmLAu-0003fG-Ok; Sun, 14 Nov 2021 19:28:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmLAu-0003he-IV; Sun, 14 Nov 2021 19:28:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmLAu-0006Pt-6A; Sun, 14 Nov 2021 19:28:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmLAu-0002ff-5d; Sun, 14 Nov 2021 19:28:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DopspbpTHWxd7+KDDn5Ks3+TBymZ3XPXdOIhzaylohg=; b=sS+wythoi7QsJvTc9GqrKezsZi
	TGmUU3kItCMJqbFVS0SvG5zrpmXfwLcDkkzdUd1i4nHvDZ9J+NQkqghyiOkUjdqcTpNds1Y63qQQh
	pTP+P25eVmJJfpKHxmQPve7e8/a9Vv7u/qJa4oY6ruKVJCkdJucUbWoSQrNkIZwUfV9Y=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166144-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166144: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:allowable
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c8c109546a19613d323a319d0c921cb1f317e629
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 14 Nov 2021 19:28:24 +0000

flight 166144 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166144/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10   fail REGR. vs. 165976
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                c8c109546a19613d323a319d0c921cb1f317e629
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   12 days
Failing since        165992  2021-11-02 05:40:21 Z   12 days   19 attempts
Testing same since   166144  2021-11-14 08:39:33 Z    0 days    1 attempts

------------------------------------------------------------
2143 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 246826 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 05:00:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 05:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225622.389631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmU6W-0008LL-B6; Mon, 15 Nov 2021 05:00:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225622.389631; Mon, 15 Nov 2021 05:00:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmU6W-0008LE-7H; Mon, 15 Nov 2021 05:00:28 +0000
Received: by outflank-mailman (input) for mailman id 225622;
 Mon, 15 Nov 2021 05:00:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rbjM=QC=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mmU6U-0008L8-Ez
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 05:00:26 +0000
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef7b9989-45d0-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 06:00:23 +0100 (CET)
Received: from fmsmga008.fm.intel.com ([10.253.24.58])
 by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 14 Nov 2021 21:00:20 -0800
Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14])
 by fmsmga008.fm.intel.com with ESMTP; 14 Nov 2021 21:00:20 -0800
Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by
 ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:00:19 -0800
Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by
 ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:00:19 -0800
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Sun, 14 Nov 2021 21:00:19 -0800
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.170)
 by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Sun, 14 Nov 2021 21:00:19 -0800
Received: from BN9PR11MB5433.namprd11.prod.outlook.com (2603:10b6:408:11e::13)
 by BN7PR11MB2563.namprd11.prod.outlook.com (2603:10b6:406:b0::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 05:00:15 +0000
Received: from BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81]) by BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81%9]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 05:00:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef7b9989-45d0-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="220588529"
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="220588529"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="547874803"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FDUbhyfOeyhImvGWuN3lQeDgNwAIbrRBNR0tMdJlxtLnZcRVvs2bukXQK6udZChWxsb6S/EczjGFm5j5wJVpBj2R22LuHywR7ckCZli//kiTeA6SmvpdAB0zTQI6fF3+cygxcB0gnSaGvpSYJ7CAolyHXOQwGGzsJuPx8f1gHncBZzWi2Z0HGYTEvQDfZ4KmowdSMrylV3B0QGy/RJAqwYEtcvgPNOO5Z6gT7rjwOHZKWJMlGJjz1j4Vm8CEPqFGfVmBGfM3nOukWAqNO9QRz33vL+XmcRKrED1E7TQIyt/0AEhNw/zKxfHaAbyG3vmTJnlR6ygZfaVUzTu21RaGAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nLl+NxyQpvuV+cVlUlzsT8lUoFCJeUl9WH/lRAGCTuY=;
 b=M0H4IzP7TKSvP36VE4Uvc5gFc3jnLCLDgoU9lUalfSnviqRM5n+RwAf5XDldyMW5PBXo7UPxxEFlkymNm3m94Hhg5wUR0CHozHr7DCJSrFEdUH99LkGAeLwmVkRRmQ0U/mr0rhmSe2nuI4IRUw5LT54yGfxtvcdQ+ku0mQi1zlPpOSMcOLIAkXt356cD6oKKUMI4jZ0owotv4EeklguZS1WwcyWTyLbM9q5PQwSUORGqIZWoJDT2IDpLLcoN5LVtR/lHApsU0bCVYLHw6QmCorGRhjkbkEdVMH3jYxSEgwcuRCb+NwZwqam1UjD7MNi3rSD9TUW52BwyJhz+HKS2NQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nLl+NxyQpvuV+cVlUlzsT8lUoFCJeUl9WH/lRAGCTuY=;
 b=qot6jWqjAuF1+zkcblzVUxC8Fk6ZyDcJDurrm291iSb82muvwY6ZT1Nhu4qqk+8LvSC6a3DZfFAsRr4tHjTOnfvkrrrLJ9xgTXZtwZhtY8qL+sjV8mknqofxWmQ//0WxnyzfQ07qWaUTu9Bm2hLW7JoiX0iMcgcCqCbCTLrLAjU=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH] VT-d: prune super-page related capability macros
Thread-Topic: [PATCH] VT-d: prune super-page related capability macros
Thread-Index: AQHX16rhBc/SqHgVkkqU69tKyIu0P6wEC+9Q
Date: Mon, 15 Nov 2021 05:00:15 +0000
Message-ID: <BN9PR11MB54333BF66C56160EE2C499DA8C989@BN9PR11MB5433.namprd11.prod.outlook.com>
References: <30305930-0402-c01a-226f-508597a15a1a@suse.com>
In-Reply-To: <30305930-0402-c01a-226f-508597a15a1a@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 8733159d-8b51-4094-cb67-08d9a7f4cff4
x-ms-traffictypediagnostic: BN7PR11MB2563:
x-microsoft-antispam-prvs: <BN7PR11MB256337423D310A137FF9848A8C989@BN7PR11MB2563.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: C2VP7ZZQtpZV2Mus5+Fx+pZlckMZnZ5oGBZmGuhad59BeSWCStkJDpaI46ekeIvmrwV+PbRwJr2MQsFlWELscCZTZvti9PkgfzCB1u9RVP0YsYnbfqrAhSWfS48NaS0RCJMiYLFAT+YcbwP/4DakZsBMxe0sksWKgHaHO5b0XsA+WNYF2eyxOR+m6BMgil6PMKqz7ISBz8z1+uy1io5agzD37s/rrJMBywIwjYY4V1IWCkFoLX84YxlojIYYjTbwm1NRQFq0Fx8hM4ugdPFnhFLWnSjj5+ugbeK7I6gOlh4CmKGbkfz5sdOUG/rFjO9SJTwPaFTWOtOOLnegbuTSAv3Cz1dBOnYpsYg55b1s4uP7d7yPIB8i1DcNw7pOtZC9P3BBxVPuxNAapXJTdt5nekPJVPEtb80ePAA7c9Lcnf9JQDWj8Zv7N0H0BKfkVLF5LLyziU4MVAMbzywM6+Oe15GQ6NIOmzpiv1WBZ4LX+UXId94GQcYT3lfYlMa+nRfQIAgP5LOALFxwPj8IfnUWT8ywKI1Gb3qHpAjmakAt5KHjFb/+lxigjbQZwh+W9QERSP5RmdDRfOR6uL0MJYipf4uQM4rIvIte91f9dhneNJg1lVe2ukSB2MuzfJzrS3Vql9YLLvz3T9Y0aMHrW+awtukF3gc3YwkYxB+dOv8bo9Vl0VhsUc52XzUQAj+dOYdDFM4s8mt8sfofdnDWgr6gEQ==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5433.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38070700005)(5660300002)(66946007)(66476007)(186003)(2906002)(508600001)(8676002)(26005)(55016002)(52536014)(86362001)(110136005)(316002)(76116006)(66556008)(9686003)(122000001)(8936002)(71200400001)(6506007)(33656002)(64756008)(66446008)(82960400001)(7696005)(38100700002);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Z2ZLelV4NXRFSnBJRFI5ZVNkN0s5SVM4blNLbE9BdW03dE1ybytoemYyZWJq?=
 =?utf-8?B?eUlrOWltb3ZzVHI0Q1E2SDFvZnQrNEtEYWlRbi9MOHVSUkJqbENtcm5YZmU1?=
 =?utf-8?B?a0hSWTJTcXB6SVVXdlB4dlJaRXpPaUR5T1FydkJsM2lrNDlmMFZaYWxUaHpv?=
 =?utf-8?B?dWY0cnJiODZxZ0FhV2JGSFMxVHRlREZkY01WRUYrYmtzSnE2aXBxbGNhaHVG?=
 =?utf-8?B?aVl3UUJ1QkE2cFFwTGVZWGlSSWNKTDBVTnFib2hZbWxaMzVMUkY4Zk50dXU2?=
 =?utf-8?B?QzlFMEIwaWovNW1OQk9OODB3NUE0MmRPRDRwdXJoekg1bW1jNnU2WDBkc3NP?=
 =?utf-8?B?OXZjLzhqUlM4SjM4VVlkZUZnTWxnaDRobVFnRHpXVVUxelJaTk1TS3didGtB?=
 =?utf-8?B?WTdYRUxFSzNodk9VeDJpc20xbHdYakQ1VnlHdzNxTm9xYUNRQk9McmN5c3lC?=
 =?utf-8?B?YmM4MFNFdlBielFpUnVpdnZTK1NLaG4rUkhCRUwyNUx0Wjhtd0F6a0dNdUYy?=
 =?utf-8?B?UEVHZzg3MVlwWjF2eCt2YWR5cmF1S3NrUHFBd0o5T1AwWlkzZWNYdjZEdUoz?=
 =?utf-8?B?UEtNM0xXMHNTN1p4YzRvZnJFVnJPdW8zRWluQXYxTnIyaXpLaGpIdC9OdXZV?=
 =?utf-8?B?Yll0cWhLcjJRbDI4ejVLL0l0UUw0cTA0R00xOXViUFVUUko4Q0w3L0x6VVFq?=
 =?utf-8?B?TzFZT1A1Mk1qZ1JYY3lFYkNRWVZVN0lMbzRWRjFBbytoQlVWTWVVZE16MGky?=
 =?utf-8?B?bjhQSmZ3S0R1b0lRa25STUNheEc5Yy9Vbm9KVCtuTjNGRVlubEpoTSs1QVlm?=
 =?utf-8?B?MDZ2eEtWTFRFR29HZUgxcWdvVlordllzVjRXai9kdTh2UDhBNnlvakpmTll5?=
 =?utf-8?B?MTViU01KY0Q1KzRxV240MEQ3UzhaS2xIODBNZHNQUnBoL3JBVkpFZTM5ZjUy?=
 =?utf-8?B?T1FvdmM3UkErVGpSUXRiSVhFdVRocFBWQXhyK0lsWnNDeEJTSExYRVF2Y2dh?=
 =?utf-8?B?bDVIOW9EUkU5UWVWM3U4WFpPY3YxM0Nhc0xJSVc1d1hqZ0RZZ0xpL2FsemQz?=
 =?utf-8?B?aEJJektCSkhDWk5PWVBJZVJzOUkvUmdaZzg5N1hMME1zNmpSdDFyODdPYjMz?=
 =?utf-8?B?TXFhNUx3a0NjVDdVYmlIRHFrQnZxSnZRSGVuMDArWmRZVmlPOGhTczFacFMr?=
 =?utf-8?B?R0JIMGhyb05FVXFUTUlQekxMc0kzQkcwaHppeTFhR0NxTnpTelJSODUwR29p?=
 =?utf-8?B?S3J6UkNYK05OV29GOWlEMXBuMjdBU0U2V1RBemN0Y01HSVNpM2czOGczS3FL?=
 =?utf-8?B?K0Rpb1cveEx4WXB4dHhuNHFRaG5lL1pkYmlaN1JYUnljN1J3SE9pTFlTdmx6?=
 =?utf-8?B?WmMxV0tTcjJybzBvZzBqWENkNDBnL0NGWWtkS0xMR0hpSjlKTHVvNWxQYTJW?=
 =?utf-8?B?ME5pemZQMFhxT1I2MXBVSFVISm1FaUNKQ1Zrb2h6R3FGdy9RditsUCtlYkxo?=
 =?utf-8?B?WDQ0dVUzRnp4QTB2SXIreldPdUtMd09wS1hSZ0R2Tko3QlA4T2ZJcFNIaFhX?=
 =?utf-8?B?R2g5QjZzbDgyU0w0Y2VEOVB4OHYySnJiaFoxL2N0TFFGZmROZEhGV05Ga3Fw?=
 =?utf-8?B?c0U5Z2g1YXRWR1VENzdic2l6TG1zZ0VXVnZ2d1BMUW5HUy9nSlBVbzNSVnFs?=
 =?utf-8?B?SmRwTDFrSGtxMHVYdVgrcWpESDV6dlNHV0Z1K29TTjBaTXZCUUVRejFkSjd4?=
 =?utf-8?B?WEFGb2FRT3FsM3lpaURnMDVWSC9neDYvQ1ZFbWRCVnNram1nM29DQ1dmQk92?=
 =?utf-8?B?aXlwQ29tNTJKSFRsd0RzMEJ1NDR5dTBGSE9sYm9ZYUdWclVabHo2OWo0ZjV5?=
 =?utf-8?B?dE96SEFZVFIrWkwyOGwyK0grM0Z5ZTlVWHd5LzJBVFVrYWl3aGlYMlBrUFJD?=
 =?utf-8?B?eVpNWEc0UUJUVnNEUHlBaGczcnpwSHpqWmtJWVNjaXhGbEZZaFZwemRXa0FY?=
 =?utf-8?B?WkN4aExjK1dDUE5VREFnSmRXL3ZPSG1Ga01PQS9Hb0NqMnJveDZpTkNHTFk5?=
 =?utf-8?B?MjFnRmo5dW1vU0J1ZFkzSXViQ2ViQWk2dndHZFFIWnVybTREUzFYK25IU3lS?=
 =?utf-8?B?c3FKTEUxRVJ1QXcvT29ENEpKdmVuM2NXdnRsR1ZuTFo3UGpsNVkxTG1PcXh6?=
 =?utf-8?Q?RjVjQzrYahaWguDVUJ/lTO4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5433.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8733159d-8b51-4094-cb67-08d9a7f4cff4
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 05:00:15.1445
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ZVGUZLjZaLjHq7EARGlGXxnLIUToEdEMUTiAA23H+4XnprVZblaVJqFYn8SkhNl3Dx9PjGEwlzb9gWLc3Agcvw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2563
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwg
Tm92ZW1iZXIgMTIsIDIwMjEgNTo1MSBQTQ0KPiANCj4gY2FwX3N1cGVyX3BhZ2VfdmFsKCkgYW5k
IGNhcF9zdXBlcl9vZmZzZXQoKSBhcmUgdW51c2VkIChhcGFydCBmcm9tIHRoZQ0KPiBsYXR0ZXIg
dXNpbmcgdGhlIGZvcm1lcikuIEkgZG9uJ3Qgc2VlIGhvdyBjYXBfc3VwZXJfb2Zmc2V0KCkgY2Fu
IGJlDQo+IHVzZWZ1bCBpbiBpdHMgY3VycmVudCBzaGFwZTogY2FwX3N1cGVyX3BhZ2VfdmFsKCkn
cyByZXN1bHQgaXMgbm90IGFuDQo+IGx2YWx1ZSBhbmQgaGVuY2UgY2FuJ3QgaGF2ZSBpdHMgYWRk
cmVzcyB0YWtlbi4gUGx1cyBhIHVzZXIgd291bGQgaGF2ZQ0KPiB0byBjaGVjayB0aGUgY2FwYWJp
bGl0eSByZWdpc3RlciBmaWVsZCBpcyBub24temVybywgZm9yDQo+IGZpbmRfZmlyc3RfYml0KCkg
KG9yIGZpbmRfZmlyc3Rfc2V0X2JpdCgpLCBpZiBzdWl0YWJseSBjb3JyZWN0ZWQpIHRvIGJlDQo+
IHZhbGlkIGluIHRoZSBmaXJzdCBwbGFjZS4gWWV0IGFzIHBlciB0aGUgc3BlYyB3aGVuIHRoZSBm
aWVsZCBpcyBub24temVybw0KPiB0aGUgbG93IGJpdCB3b3VsZCBhbHdheXMgYmUgc2V0LCBzbyB0
aGUgcmVzdWx0IHdvdWxkIGJlIGluZGVwZW5kZW50IG9mDQo+IHRoZSBhY3R1YWwgdmFsdWUgdGhl
IGZpZWxkIGhvbGRzLg0KPiANCj4gRnVydGhlciB6YXAgY2FwX3Nwc181MTJnYigpIGFuZCBjYXBf
c3BzXzF0YigpLiBXaGlsZSBlYXJsaWVyIHZlcnNpb25zDQo+IG9mIHRoZSBzcGVjIGhhZCB0aGlu
Z3Mgc3BlbGxlZCBvdXQgdGhhdCB3YXksIHRoZSBjdXJyZW50IHZlcnNpb24gbWFya3MNCj4gdGhl
IHR3byBiaXRzIGFzIHJlc2VydmVkLiBBbmQgIjQ4LWJpdCBvZmZzZXQgdG8gcGFnZSBmcmFtZSIg
d2Fzbid0IGluDQo+IGxpbmUgd2l0aCAxVGIgcGFnZXMgYW55d2F5IC0gY2xlYXJseSAyNTZUYiBw
YWdlcyB3b3VsZCBoYXZlIGJlZW4gbWVhbnQNCj4gaGVyZS4NCj4gDQo+IEZpbmFsbHkgcHJvcGVy
bHkgcGFyZW50aGVzaXplIHBhcmFtZXRlciB1c2VzIGluIHRoZSByZW1haW5pbmcgdHdvDQo+IG1h
Y3Jvcy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv
bT4NCg0KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPg0KDQo+
IA0KPiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaA0KPiArKysgYi94
ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaA0KPiBAQCAtNjgsMTMgKzY4LDggQEAN
Cj4gICNkZWZpbmUgY2FwX251bV9mYXVsdF9yZWdzKGMpICAoKCgoYykgPj4gNDApICYgMHhmZikg
KyAxKQ0KPiAgI2RlZmluZSBjYXBfcGdzZWxfaW52KGMpICAgICAgICgoKGMpID4+IDM5KSAmIDEp
DQo+IA0KPiAtI2RlZmluZSBjYXBfc3VwZXJfcGFnZV92YWwoYykgICgoKGMpID4+IDM0KSAmIDB4
ZikNCj4gLSNkZWZpbmUgY2FwX3N1cGVyX29mZnNldChjKSAgICAoKChmaW5kX2ZpcnN0X2JpdCgm
Y2FwX3N1cGVyX3BhZ2VfdmFsKGMpLCA0KSkgXA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKiBPRkZTRVRfU1RSSURFKSArIDIxKQ0KPiAtI2RlZmluZSBjYXBfc3BzXzJtYihj
KSAgICAgICAgICgoYyA+PiAzNCkgJiAxKQ0KPiAtI2RlZmluZSBjYXBfc3BzXzFnYihjKSAgICAg
ICAgICgoYyA+PiAzNSkgJiAxKQ0KPiAtI2RlZmluZSBjYXBfc3BzXzUxMmdiKGMpICAgICAgICgo
YyA+PiAzNikgJiAxKQ0KPiAtI2RlZmluZSBjYXBfc3BzXzF0YihjKSAgICAgICAgICgoYyA+PiAz
NykgJiAxKQ0KPiArI2RlZmluZSBjYXBfc3BzXzJtYihjKSAgICAgICAgICgoKGMpID4+IDM0KSAm
IDEpDQo+ICsjZGVmaW5lIGNhcF9zcHNfMWdiKGMpICAgICAgICAgKCgoYykgPj4gMzUpICYgMSkN
Cj4gDQo+ICAjZGVmaW5lIGNhcF9mYXVsdF9yZWdfb2Zmc2V0KGMpICAgICgoKChjKSA+PiAyNCkg
JiAweDNmZikgKiAxNikNCj4gDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 05:06:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 05:06:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225619.389641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUC0-0000ZJ-VN; Mon, 15 Nov 2021 05:06:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225619.389641; Mon, 15 Nov 2021 05:06:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUC0-0000ZC-SW; Mon, 15 Nov 2021 05:06:08 +0000
Received: by outflank-mailman (input) for mailman id 225619;
 Mon, 15 Nov 2021 03:45:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qAW2=QC=vivo.com=bernard@srs-se1.protection.inumbo.net>)
 id 1mmSw0-00012n-5B
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 03:45:32 +0000
Received: from APC01-HK2-obe.outbound.protection.outlook.com
 (mail-hk2apc01on0707.outbound.protection.outlook.com
 [2a01:111:f400:febc::707])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 76f58ad4-45c6-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 04:45:26 +0100 (CET)
Received: from PSAPR06MB4021.apcprd06.prod.outlook.com (2603:1096:301:37::11)
 by PSAPR06MB4311.apcprd06.prod.outlook.com (2603:1096:301:81::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.22; Mon, 15 Nov
 2021 03:45:22 +0000
Received: from PSAPR06MB4021.apcprd06.prod.outlook.com
 ([fe80::395a:f2d7:d67f:b385]) by PSAPR06MB4021.apcprd06.prod.outlook.com
 ([fe80::395a:f2d7:d67f:b385%5]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 03:45:22 +0000
Received: from ubuntu.localdomain (203.90.234.87) by
 HK2PR0302CA0001.apcprd03.prod.outlook.com (2603:1096:202::11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.16 via Frontend Transport; Mon, 15 Nov 2021 03:45:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76f58ad4-45c6-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XejEjo4G7taYJLpI7VmIl0L5yIZefLFD7yMP6k3O34FINIt6gZbmy6jBhsKqG4RoZXXaN0BIfBYqio2dnr+LysCeeFa7JJyAUe9nft8Pn3ukcfxLGtYMPV1cTGo/itcEUJ0SQydC9FXkV/FFWApTdyqSIjFmkGw4l7D2H70eJhSLqhGSoWxV1FlKV/2bFPGbX0gFui02jN7xcy/SvvI8KAKc4Hrgh5tQ1fs8GEe+O1n9+gC3C3fAeAXpFv1a+hmBnBmtIVQOck4mHxzmd3++boTie7FWsZFL00wkJ0Ud+vnCQ+04hbvxo/aStjkwZYnm9yiRNHf5wRJqgvNUv4TxTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=H6tXfdxfySNkxFS2uSS5Bbm+E7RmyTX8PsfIxYZSWwk=;
 b=U4JHpSrajWxe0NXbKbcz2e0lIRF6VakWUc4GoudrLjePCC3f29CIXq9ZSLz+snssZp7gJyO+406blDOdNp+Wjbo7kdCsaGcXHHSd0WrcnbSNBs2wSW13jqPE8xzLsqdvTsbKBNC4iW8EPVZgUTdQZ+WBSt0v/xJAq4QtYU7J8aDo5OJmVo1HPIcxQLdThNIw+lXAexOwAS0gi3MTWcCImnd06ZHPezj33tIGLIyzmylYfg69xoHA1uM+tj8ta8tzXff5rY0/I38UCzGaasOWyV///rTWLC5uCRlwf13hff/qm7IJ4zVzWFqCCHc1wa1/36+8LQiUH2uMtk20qWSy4w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com;
 dkim=pass header.d=vivo.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo0.onmicrosoft.com;
 s=selector2-vivo0-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H6tXfdxfySNkxFS2uSS5Bbm+E7RmyTX8PsfIxYZSWwk=;
 b=XvLr3dlsUAjU8Kx4vMSZHL7adO+Ce/k0h8HPU5g9T2FGs1x3Bxm/zFN+KjyNwZxahOyAh1N3k+xDfC/k8U4RYv6MZVtlC4Ugo8E8NbO5bVphD8Dm+PWD5CjkWRd1r7pC8s9ajqL4PYFTPInjNidFifNXbZJX/jvb940RbulmlQs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=vivo.com;
From: Bernard Zhao <bernard@vivo.com>
To: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	David Airlie <airlied@linux.ie>,
	Daniel Vetter <daniel@ffwll.ch>,
	dri-devel@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: Bernard Zhao <bernard@vivo.com>
Subject: [PATCH] drm/xen: fix potential memleak in error branch
Date: Sun, 14 Nov 2021 19:45:03 -0800
Message-Id: <20211115034504.4993-1-bernard@vivo.com>
X-Mailer: git-send-email 2.33.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: HK2PR0302CA0001.apcprd03.prod.outlook.com
 (2603:1096:202::11) To PSAPR06MB4021.apcprd06.prod.outlook.com
 (2603:1096:301:37::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 22c8cce4-7549-44ce-6396-08d9a7ea59d4
X-MS-TrafficTypeDiagnostic: PSAPR06MB4311:
X-Microsoft-Antispam-PRVS:
	<PSAPR06MB43115980B7005847F18B682CDF989@PSAPR06MB4311.apcprd06.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:525;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Hf00m0xBSHTiEOwFwIhHEVeJZGrC54oXIB9H+HeyaiaIuIRuxYcDRWg11S6c3i+OtlPpfr3SVsoiVVpikdIGdmYpLT4IvdhEOP9arRAt2FFx1s0yJK/7J1Wr7qfk6VWTMhKBtulcUHM4p3jX8GeV9VagRQlptpLTvsnWsQvi15jSxX6l+vnQCYE1/yTGaqlnduhy0eOhKQ+qnLRArALAAH8Cr2fcxob1kQMyvdll80xqlSXcib4+2kxws3WJyXyRUrmHABhNSB6qa2QAO3kObpL29cYGki1d6NJNGBUSAtf8co0hHY3H1WYTUWGGHFOPciilBHDdGkAjQ7FYI/EGlOJsJ7P020KSFiedXfqYXU8aBz3NzSKxTBxUf03LYiaszXHILAfAoqEfFfH4cnc6DjTJrkCTnnLXKbYHSQBDAydLUQjQUAamNS+wcVArGGny/6/SrEpzhoiwMEdDJ4IGwely/C6lihNMvm7DG7Pl3m5PK0WhWhCUD45JZX3C634Kag0s3d4/eCGT/2+BQbsE7ovcw0x7mAbpp/Jy81vUfek+Q2J+gfRF88pyV7O26qBZXISQl/G1mpX3meAkbNtcQYy0HbXyJ6rPK2Z5XSeV4EIZ5nqYd9oieA1U/HfepkvArQhwqhMqtnubnTmkpGw9MApLYkvZg5nZDnjRebTh+eG/3tWPoT/srDGvny1rqGdBu1i0Df5tdRRnutZxwqlJ/g==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PSAPR06MB4021.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(186003)(38100700002)(110136005)(66946007)(6486002)(1076003)(38350700002)(66476007)(66556008)(4326008)(8676002)(107886003)(6506007)(5660300002)(6512007)(6666004)(83380400001)(316002)(2616005)(26005)(8936002)(52116002)(86362001)(956004)(2906002)(36756003)(508600001);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Y+4XRGWKmtBYwDtpF/WrRip0oJbSVlKLtIFmpQoY8mXkAtq1DuheOo5ifgFg?=
 =?us-ascii?Q?60uO6fPDzyqXN3lsavI9hmgJPLBSzNzutRVsxzV1FqRrgoM764DLcYvEqF2Q?=
 =?us-ascii?Q?j41N63oUl69Ju1LIvMF8PUCDOThUCFvgl4rBpskVMjGwyJBneTnoKrrm1svT?=
 =?us-ascii?Q?09enKCp+JXN/A8ohiW3Vd4qaB4G6kEdvfhJXOcsP+U0qkhFtBfr4RyFn2Ixk?=
 =?us-ascii?Q?/xf0CSpUNPZeUizgPgs2qk9MskUtQwL+/khiuZqn55hH/w8nVfkOezPo7O8a?=
 =?us-ascii?Q?vHqBcibqfSfp28oPebVsPqHKLbJsAwTPiXHAap0vyrrOy4h5Z9EjSeOKjzgx?=
 =?us-ascii?Q?ddZFnX5wpKNf49cbdZ4kopjEivZUW3SNu2KIQXpFYuXZ81lBipmaAEdLrWdg?=
 =?us-ascii?Q?j3iBFOt743nMMxbKTme6XykIWC9UVEwykHKJX0/z6jNXSA1GIJF7H9/ild6s?=
 =?us-ascii?Q?uU8tE1dpkRcU+WU3ZNPyesT/mUMkR9/428L8r5XGu40g/juOxN9hLyydf9YO?=
 =?us-ascii?Q?4KbGXOFA6QlL2Y0+gB8VEUydxlcgISKsW6JzwbmW0kk0XNBH+ASElLtUcllP?=
 =?us-ascii?Q?yFKC30Y5dp9duWS6V209fjYhYKZ0VM/J/zcC03dpL2enj8HkkAwPzFDISlrp?=
 =?us-ascii?Q?9i7R3cfhBZpwxTUrbONFwhOjQ6VIGKhSvGATK6LhBaJ3OThvqKfq//5x3VRj?=
 =?us-ascii?Q?WimCbUyB+pi2oNvpssiKgYhEnucxPhSQGnnvatwY/NeBGTb/ingmKJcI2Hql?=
 =?us-ascii?Q?YZq6/bzTlYxLnnV3Caj4LCsxkhEgiHZppFXeOVq0DUSxSIk7GZ5zyF5g/Qlm?=
 =?us-ascii?Q?U5JMorPIMXqrllnLNNuFaixoXAl8HHVPRP6vvzJ7SZLsDKrcrfmM4JMws8gz?=
 =?us-ascii?Q?3f79Ssn/9AqjjIyCh7qTT5+o1YwcM4ldtS20z108ZJmgGhko3NXWa55DPhaz?=
 =?us-ascii?Q?G/vcYlpRgVNSWExZDXPwo9iJLGNPMTmomhx6v8bp02vM/7waQYQ9tBX5+gf6?=
 =?us-ascii?Q?tVDwbIoMWSKLZQB2O2BJFSKxW6lt035Em+pVYAyWHBgHl62Bpj9OzSLXSre+?=
 =?us-ascii?Q?FNPmVD9nj7XoIqTtWzj9A5ceDITGALZMh2IL11vVOYwU3VVDNc0sy6FR+HQe?=
 =?us-ascii?Q?mgyHJdoV+nW4PA5Xj9pFvu5oQJYHyjEZgKs2F7q7dmqGxYbti4ylej2TRNeJ?=
 =?us-ascii?Q?AVQ81NJJPxAHTTO5t8H197xFah1EZ+35pPPbJGw9byQHGcHZBfmpHj+wbKbs?=
 =?us-ascii?Q?Zz2p+zcxck+CR1iNAPZzUtSmgWLGe10m9F1CEG32jndNehm6SP68CyESzvxU?=
 =?us-ascii?Q?o430PC1wyNz7eJCEQSonbqZNPr6iNz4FDBF62tBASVeKEYyXWo5yXOQnBk0l?=
 =?us-ascii?Q?WlhXRTA8Wv228FfE1AExd2V+CjuBwl0jAXaEj/uSLJ4AXlOylDDpYsjE6c5I?=
 =?us-ascii?Q?xe1d6hn6ovyA/eMKgKmX/EPLa0YQ3+v2JGBeOA6o269BUXCx2Dbs3CDPm9RL?=
 =?us-ascii?Q?VjWQk7HpsqOiSIMTqs+ciu1DJNDlKG3sC1+v6szc8NsPZJbK5OAEl2+dP6Up?=
 =?us-ascii?Q?eCdCH0YWaDWriKgbJr4MTijibfOANgP39MecdOWLzLDAL2zcBdME8o5mcVUd?=
 =?us-ascii?Q?yQbbk6CKUf5xC6NaAdkD1is=3D?=
X-OriginatorOrg: vivo.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 22c8cce4-7549-44ce-6396-08d9a7ea59d4
X-MS-Exchange-CrossTenant-AuthSource: PSAPR06MB4021.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 03:45:22.2575
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: C2Z64cDvLYrQC05OYDq4Lxvf27U3rbLOC0x1EDJaFp6GTKAPV7VXyndtPlTbuDcGweskFoT0liqYjCAUEFRP+Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PSAPR06MB4311

In function xen_drm_front_gem_import_sg_table, if in error branch,
there maybe potential memleak if not call gem_free_pages_array.

Signed-off-by: Bernard Zhao <bernard@vivo.com>
---
 drivers/gpu/drm/xen/xen_drm_front_gem.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.c b/drivers/gpu/drm/xen/xen_drm_front_gem.c
index b293c67230ef..732c3eec0666 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_gem.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_gem.c
@@ -222,15 +222,19 @@ xen_drm_front_gem_import_sg_table(struct drm_device *dev,
 
 	ret = drm_prime_sg_to_page_array(sgt, xen_obj->pages,
 					 xen_obj->num_pages);
-	if (ret < 0)
+	if (ret < 0) {
+		gem_free_pages_array(xen_obj);
 		return ERR_PTR(ret);
+	}
 
 	ret = xen_drm_front_dbuf_create(drm_info->front_info,
 					xen_drm_front_dbuf_to_cookie(&xen_obj->base),
 					0, 0, 0, size, sgt->sgl->offset,
 					xen_obj->pages);
-	if (ret < 0)
+	if (ret < 0) {
+		gem_free_pages_array(xen_obj);
 		return ERR_PTR(ret);
+	}
 
 	DRM_DEBUG("Imported buffer of size %zu with nents %u\n",
 		  size, sgt->orig_nents);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 05:13:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 05:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225631.389653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUJM-00023O-RW; Mon, 15 Nov 2021 05:13:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225631.389653; Mon, 15 Nov 2021 05:13:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUJM-00023H-OI; Mon, 15 Nov 2021 05:13:44 +0000
Received: by outflank-mailman (input) for mailman id 225631;
 Mon, 15 Nov 2021 05:13:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rbjM=QC=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mmUJL-00023B-90
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 05:13:43 +0000
Received: from mga06.intel.com (mga06.intel.com [134.134.136.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca47cce8-45d2-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 06:13:40 +0100 (CET)
Received: from orsmga001.jf.intel.com ([10.7.209.18])
 by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 14 Nov 2021 21:13:37 -0800
Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19])
 by orsmga001.jf.intel.com with ESMTP; 14 Nov 2021 21:13:37 -0800
Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by
 ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:13:37 -0800
Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by
 ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:13:36 -0800
Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by
 orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Sun, 14 Nov 2021 21:13:36 -0800
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.48) by
 edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Sun, 14 Nov 2021 21:13:35 -0800
Received: from BN9PR11MB5433.namprd11.prod.outlook.com (2603:10b6:408:11e::13)
 by BN7PR11MB2691.namprd11.prod.outlook.com (2603:10b6:406:b3::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 05:13:34 +0000
Received: from BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81]) by BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81%9]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 05:13:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca47cce8-45d2-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="294200252"
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="294200252"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="535380614"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RiP1p6IBJX/aP+cTN/KkEzGfymNSXLb5ZE3X/t/in3+rAexyqj9TECLMkRkoH8Ecpv5fp1DDJsbvJ/nopCJ94QihXmKmfL97pHWbRLocqZ+dHcTBqrI0312F0sfmNiJQ9BJxP8AKeC+adPrCH3qXIKAhVGfCuZrmHUwmPG6bqv3/ecO7TbVyGr5VQa5voVSBK9azrvdVmeVDhnFwQVqNaQFlU8MWRCLAQnaaPCiq41IYvf7ep6vh6Iv0Tk6BpDghlkjciyfSYWL8KZtY/VwYmMRcvvkBgjTqcpykAHGWmEr2CSmPhDX7Y7OvTSCYdbgE8xxv88hRc9QeC3Dbs0m18A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2IlupBnn5xbXSaGAV5CSvSuE8JlVgR3wVykdA/YCIKA=;
 b=QWiYSGFPjGoO/19KYuBpMk/yGRTmmLHImPOF9PMEni7H7znAmCTcnmZR7pqOct6Dyoqjp7mirDpDkHEWGy817yPAcrtCPwtFEX76t0JMB2u2ELveDV9WgSAfmJn1O+gHZEAXgDDbp3b5jB3tngTZFB7NzK2ValSTw0iVAXdgT/PN4rFtGD1mQ8VG3fqOKVacKyMOHz6bLW3GhR/aDbSB1dpl8lVSfxVbVt4QFu6RlwfW86YfNZdKhl8o49zQxNRV7bYCGUQqzLwAs+n2wgy8uRn9TNUixZd36hpGcrX9gUiGZvRFJlS72NAhfcYMn+pFwUhf2GJwHDuKIQrG1MScvQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2IlupBnn5xbXSaGAV5CSvSuE8JlVgR3wVykdA/YCIKA=;
 b=dTw6h5k3TD/8RjpaOnYIgx6btTWwxAcOGj2WnFKQhd5YY63CYjtEnuUZjXC63Ns3RpHTQQfW4IFjB3vNkI6bxGlR82aRSKYxdVUUnshN7ZN4kvTLEG7losvYyjsZf4JkrLEy03UdCNNwiIp9nBCePYeqUxdIQTADRJxMiRlnkN8=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Jan Beulich
	<jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 1/6] VT-d: properly reserve DID 0 for caching mode IOMMUs
Thread-Topic: [PATCH 1/6] VT-d: properly reserve DID 0 for caching mode IOMMUs
Thread-Index: AQHX16ptxP2kemn3HkOptj6NHfmn+qv/wDwAgAAMLoCAAAMzAIAEP/6g
Date: Mon, 15 Nov 2021 05:13:34 +0000
Message-ID: <BN9PR11MB5433DB7D9C5DB1B5A8993A418C989@BN9PR11MB5433.namprd11.prod.outlook.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
 <YY5OztQdQMXJSG+u@Air-de-Roger>
 <6c142f50-84f2-b499-d486-61690cdc2629@suse.com>
 <YY5btAKqy85VDDT+@Air-de-Roger>
In-Reply-To: <YY5btAKqy85VDDT+@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 07fae5ac-8d9a-4041-06b6-08d9a7f6ac78
x-ms-traffictypediagnostic: BN7PR11MB2691:
x-microsoft-antispam-prvs: <BN7PR11MB269156F7991F6DE513A170AB8C989@BN7PR11MB2691.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 3btACxdXDuSnzukbXMsBEaD6xZmnolrp0yN8NHGksFcP1updfvDYzdXGDR+e38+Z4IvyGA3/gZ8PUByA542Evoye4HOy24AW4G2Uc/slg9FLRQWqprcxgheNRP5xfFfoMtiRftipWv36hv7YdGgfRcHOiLbqCfZ9vMGA6VvKFK5CxMtGBf692ZbBywjszthSjgv2kC0ERaefahLHI3FHtO2pb1sRW5AodPvjKe+S83lXfAEFkCkRj841nd8bFjDpHKkhs0Ppevqk+AlWbs8bGDw0oLiT/3E6LB/8Q9yNYlPofag/Vk0doXmj3LHrogpx75RACsB3OfNucOGHbK9ISkf1qBRS9XfL5tYeeWawb+ufFT7x9HpZmviqGzS+nLbFxT+PW4vsnbXAOxpxw24AtmWBnS0DUPP7LTsgA/SVRIKlmTsWyf8ClxbvogSwrkCwsIDbqNi+vkxH3+tJVu6DHGKjqty9JxK7RkA4f9hepK+IWJwnH7A3MlsCqZ4Iwgh5dS5/nIz8h2F0nC1C/F2HCxF7+TKCwYuNhyJbyh8vE8ox4ujRoXdS/h/q5qw73F4a7wYHlq04WaDyj6bPFGW3+RXlmUWWx0wEj637djQ+0QLlMm/ezolUPnYrn1333yNTgwnizjQVytLPLSsPl+osGOemhftPRRnhxRY/xv4bjivIYBHZuvYnyDGwGRnOkbWL2wiRbj/ZlH0aGmSUEUyK5g==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5433.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(8676002)(66946007)(9686003)(66446008)(8936002)(52536014)(71200400001)(82960400001)(2906002)(55016002)(66556008)(76116006)(66476007)(5660300002)(64756008)(38100700002)(122000001)(186003)(26005)(33656002)(86362001)(38070700005)(4326008)(7696005)(110136005)(316002)(6506007)(53546011);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UXZFT1gvYU92cUZvOElzL0JrZCtsT0RjSlp3eHpudm9pK0JaQjBmMXFXczRh?=
 =?utf-8?B?cGM0SEMrOVlEU1huTjUvaHpLTU1TV0o1VDZuZCtJV0drVmNwUUllcVJPdUlh?=
 =?utf-8?B?bnV2eklYZ21HOE9UTWxrUlBPZkZlbVA0UGRuMFBKM3RVakh1SnJxc0Z1aEYz?=
 =?utf-8?B?a1RtMEgwMnFRQVBJQWhsbDVsKzFWemkyRGU3eG1Rci94eHltZlU1V3dhNVZ1?=
 =?utf-8?B?QS9yN3FyZnIrMlJocFF5Y1gwR2pIa25FRXBpQnVDQ0lsWFp5bDMyV2dZd2JG?=
 =?utf-8?B?aVRaODd2V3pqSmFwVjVoTEp4aXVGeE1CL0lHWk5xbEpFTWpCa2JqdmJwM2tT?=
 =?utf-8?B?Y3BqV2E0eW9pMmV0bzlkQW54R0FVb2hGbW11YmIrMXJBNGRRLzAxYUNFSFZq?=
 =?utf-8?B?aEkyV0dXSTNnTEZHNkwvWVRuT2ttOUhkR1hjWHU4Ykl6dnM0djdONmNLTlI1?=
 =?utf-8?B?cEd5ZkhLN2wwK21Rb0xmeWhSTGVIdy9xY1c3NWNtVGU4VFpxalNVcUk4UEdN?=
 =?utf-8?B?MTdrempISmNkZUFkeXRHbkhQMEpYMHRobzBqT0JITGVicTBsK1UzbHZjbVUr?=
 =?utf-8?B?TFFWOTFOcDUxQy9jV1pFZnhXMDZScjdFUHRsTWFjdkoxdElYWVJaTnBwQnVi?=
 =?utf-8?B?ejczSVJBdnA1WjZLb3NDb2EwTVVQWDY2Y3kwZThPbmE1REdzOTVKSzJMNG0v?=
 =?utf-8?B?cEJ2TVJlcTE2VGl2eURSaFBOM2N4amZneGhMVzFTdGs5eFpyaFVDZmJmYXY3?=
 =?utf-8?B?STdVRU5FSkhQdzl4N3J4d250ajVHN3hMUkNqZVh6c1B5eFpad3kzL1M1Yi9y?=
 =?utf-8?B?MkdiSFVjWGVHTlVUanM1TGh5Q0VYTnE3QnZYRUJEMmRMbjh4UTJyWk9jUWcx?=
 =?utf-8?B?RTNDaWRxTzlWRGs3VmZ5elV0WGpkMHZON0NpYlNac0pNTm9yN21IeDBia1U0?=
 =?utf-8?B?UGFqWTN3WnloRys2K3Q5d3RwNjQyaXp3YUdRUnZmVWxoWnpOd2NSQTNpSnBB?=
 =?utf-8?B?aVFjWElkSDNUWEZmYnArV0t3U3orbWdSOHBuV3BiUGptVGZ2OUhIMzhJUTZV?=
 =?utf-8?B?Umt4V0FFcFl6OU1udjM4dFk3ZkZvSDBPV2xScklsNDc0NWRHK04vczY0MnJl?=
 =?utf-8?B?YlU5aE80bE1ibitNMkcvSUNPNGVPV2xNUWJFQTlINXlCcFFaYTUxeThDYjhS?=
 =?utf-8?B?Z2FVVUtmSFh6NnZ1ZWVEN2k2cE9jdHBXNFRUL3hPSGlqS3F3Q3A5STRDUEdW?=
 =?utf-8?B?MHJPbko4UzFmMVNGSVVnOFIxdGpWOEZwRURxbm9oa1ZkM0RjNUxEV0NBUitM?=
 =?utf-8?B?aFFlSE5iaDhwSzBCN1Y0N3F4Y09vYjA0SlNac1gvOWI2dTVjb3VtbkRpRm43?=
 =?utf-8?B?VGNZdzRhS1M0VEVJVkZrQllhYWhHUml2ZnoyN0FpbGpxOEJvWlpDRTlXQXcr?=
 =?utf-8?B?RjdQdW84Tmp4YVR0R081UzZTSCt3RVdORzRYT0pNNTgxakplT2xMNXY5aG85?=
 =?utf-8?B?dnJDeUF0TVdrWXhJQW9zUXpGVzlhT3lwblFKS3l3QytvV1BNNDlJYld2anJ6?=
 =?utf-8?B?elN4TmREKzg5R2h6UVJNT2phUlAvL0g3V1l5ODdVaVpqUW41YzNubENTNjVm?=
 =?utf-8?B?WUNJQTRXZk1LZHNFb09NL2ZNWlN3dDFGRCticDhQZldyei9UQjVKNHZxYi9U?=
 =?utf-8?B?VS9zU3VWa2lSZFZSQy82UEZFZGxYVG0yNWUyQWRhRGlqd1BvY2ZuUGdUb3dR?=
 =?utf-8?B?OThXQStKb1hqZnZENTlxQjcxMDdNR0RPWHpyMUZWRm9YQVRHcWZUNDRra0g5?=
 =?utf-8?B?NGtFSmQvZzVuQldLY2trb3JSNVo4MXBjWXNVSlMybDB2emFMRDVJdy9RRlhI?=
 =?utf-8?B?TGo5RkZHdTRLQjVIajdkY2hyNFV4cDZzdjNFR0E5dGZtZTVOZWZLWlZmbWpr?=
 =?utf-8?B?SzlqaDV3MnNYUzdUakovbmgrRlNVTk11UFozbjJhNzhObDFzZ1RPOGhBdS9V?=
 =?utf-8?B?TmxyU2tyZytZMytlOUhVakp4ZHBSRjNmYkRJbDdzODB1dm5nSjhTWlo3TzUz?=
 =?utf-8?B?RVdScXNPOFBteEsvWTVhcm10OVRvelhGT2VKR0hTeVdublZmZHJPN1NCMHNV?=
 =?utf-8?B?aDRkT25sTUJJZnJ0UE5SS3BNbGxHQ1NobGhQdklpbk1zMG12YTFPWTlVTHpZ?=
 =?utf-8?Q?Gt50ievHTv72SKnS9ibYU0M=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5433.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 07fae5ac-8d9a-4041-06b6-08d9a7f6ac78
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 05:13:34.6508
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: vs/MtYBQOhIGznfjB5l8KxhAk3uwPvlVYQwdJIlvgOEqQ0EnWlTdCeKBRk+I+6Tf6nVNc0wZl/kKFEQIkMdn2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2691
X-OriginatorOrg: intel.com

PiBGcm9tOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4gU2VudDog
RnJpZGF5LCBOb3ZlbWJlciAxMiwgMjAyMSA4OjE5IFBNDQo+IA0KPiBPbiBGcmksIE5vdiAxMiwg
MjAyMSBhdCAwMTowNzozM1BNICswMTAwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gPiBPbiAxMi4x
MS4yMDIxIDEyOjIzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiA+ID4gT24gRnJpLCBOb3Yg
MTIsIDIwMjEgYXQgMTA6NDc6NTlBTSArMDEwMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+ID4gPj4g
TWVyZWx5IHNldHRpbmcgYml0IDAgaW4gdGhlIGJpdG1hcCBpcyBpbnN1ZmZpY2llbnQsIGFzIHRo
ZW4gRG9tMCB3aWxsDQo+ID4gPj4gc3RpbGwgaGF2ZSBESUQgMCBhbGxvY2F0ZWQgdG8gaXQsIGJl
Y2F1c2Ugb2YgdGhlIHplcm8tZmlsbGluZyBvZg0KPiA+ID4+IGRvbWlkX21hcFtdLiBTZXQgc2xv
dCAwIHRvIERPTUlEX0lOVkFMSUQgdG8ga2VlcCBESUQgMCBmcm9tIGdldHRpbmcNCj4gPiA+PiB1
c2VkLg0KPiA+ID4NCj4gPiA+IFNob3VsZG4ndCB0aGUgd2hvbGUgZG9taWRfbWFwIGJlIGluaXRp
YWxpemVkIHRvIERPTUlEX0lOVkFMSUQgdG8NCj4gPiA+IHByZXZlbnQgZG9tMCBtYXRjaGluZyBh
Z2FpbnN0IGFueSB1bnVzZWQgc2xvdD8NCj4gPiA+DQo+ID4gPiBTaW1pbGFybHkgY2xlYW51cF9k
b21pZF9tYXAgc2hvdWxkIHNldCB0aGUgc2xvdCB0byBET01JRF9JTlZBTElELg0KPiA+DQo+ID4g
SSBkb24ndCB0aGluayBzbywgdGhhdCdzIHRoZSBwdXJwb3NlIG9mIHNldHRpbmcgdGhlIGJpdCBp
biBkb21pZF9iaXRtYXAuDQo+ID4gVGhlIHByb2JsZW0gcmVhbGx5IHdhcyBvbmx5IHdpdGggc2V0
dGluZyBhIGJpdCBpbiB0aGF0IGJpdG1hcCB3aXRob3V0DQo+ID4gaW52YWxpZGF0aW5nIHRoZSBj
b3JyZXNwb25kaW5nIHNsb3QuDQo+ID4NCj4gPiBUaGlzIHNhaWQsIEkgY2FuIHN0aWxsIHNlZSB2
YWx1ZSBpbiBkb2luZyBhcyB5b3Ugc3VnZ2VzdCwgYnV0IGFzIGENCj4gPiBzZXBhcmF0ZSBjaGFu
Z2Ugd2l0aCBhIGRpZmZlcmVudCBqdXN0aWZpY2F0aW9uLiBJbiBmYWN0IGRvbWlkX2JpdG1hcCBp
cw0KPiA+IGtpbmQgb2YgcmVkdW5kYW50IG5vdyBhbnl3YXk7IGFpdWkgaXQgd2FzIHRoZSB0aGlu
ZyB0aGF0IGV4aXN0ZWQgZmlyc3QuDQo+ID4gVGhlbiBkb21pZF9tYXBbXSB3YXMgc2ltcGx5IGFk
ZGVkLCByYXRoZXIgdGhhbiBmdWxseSByZXBsYWNpbmcgdGhlDQo+ID4gb3JpZ2luYWwgYml0bWFw
Lg0KPiANCj4gSSBndWVzcyB1c2luZyBkb21pZF9iaXRtYXAgdG8gZmluZCBhIGZyZWUgc2xvdCBp
cyBmYXN0ZXIgdGhhbiBzY2FubmluZw0KPiB0aGUgYXJyYXkgb2YgaW9tbXUgSURzIHRvIGRvbWlk
cy4gTm90IHN1cmUgaG93IHBlcmZvcm1hbmNlIGNyaXRpY2FsDQo+IHRoYXQgc2VhcmNoIGlzLCBz
byBtYXliZSBpdCdzIGZpbmUgdG8ganVzdCBkcm9wIGRvbWlkX2JpdG1hcCBhbmQgcmVseQ0KPiBl
eGNsdXNpdmVseSBvbiB0aGUgYXJyYXkuDQo+IA0KDQpJJ20gZmluZSB0byBkcm9wIGRvbWlkX2Jp
dG1hcC4gSSBkb24ndCB0aGluayBkb21haW4gY3JlYXRpb24NCmlzIGluIGhvdCBwYXRoLi4uDQo=


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 05:14:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 05:14:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225633.389664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUJg-0002Ug-4K; Mon, 15 Nov 2021 05:14:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225633.389664; Mon, 15 Nov 2021 05:14:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUJg-0002UZ-0e; Mon, 15 Nov 2021 05:14:04 +0000
Received: by outflank-mailman (input) for mailman id 225633;
 Mon, 15 Nov 2021 05:14:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rbjM=QC=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mmUJf-0002Sp-0O
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 05:14:03 +0000
Received: from mga09.intel.com (mga09.intel.com [134.134.136.24])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d5bae11d-45d2-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 06:14:00 +0100 (CET)
Received: from orsmga007.jf.intel.com ([10.7.209.58])
 by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 14 Nov 2021 21:13:56 -0800
Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15])
 by orsmga007.jf.intel.com with ESMTP; 14 Nov 2021 21:13:56 -0800
Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by
 ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:13:56 -0800
Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by
 ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:13:56 -0800
Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by
 orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Sun, 14 Nov 2021 21:13:56 -0800
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.40) by
 edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Sun, 14 Nov 2021 21:13:55 -0800
Received: from BN9PR11MB5433.namprd11.prod.outlook.com (2603:10b6:408:11e::13)
 by BN7PR11MB2691.namprd11.prod.outlook.com (2603:10b6:406:b3::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 05:13:55 +0000
Received: from BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81]) by BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81%9]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 05:13:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5bae11d-45d2-11ec-a9d2-d9f7a1cc8784
X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="233218800"
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="233218800"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="493864352"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O36v7nDqOIFVgztKjZYKRMIvr2cW20kh4X1V9XexGFVz539C+i7lf7lOR55h2lkwzp+vip2209E7EV6lrOVFZ4qGE/UIeZFziXi7mwo6z5+mCvsgM3NRzyy0g43enwQ/wz9gMLHGQrl7cmAiAGBvgUEXXQxt9o/hevpMvvx4/AXtfQOEYSlaoU4L0IXfvVVWiwKcQVdrUcfddQvxRVPd1x5mv1GMAUgqmHngDl9HB4qi8xgpdKRrCCVBW5mcd6w04Pgry027P/4PQf+oa6CcLuBp6DJS0PZWF/J4RksAKIKOhiulsa7HVCTygzMUsoeowGyH6plChY55THsvTlT2jg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7OvxWANLY4ZhdFsKuZCudz0CT8lIX9H8Zg1dwgSlKdQ=;
 b=gpc6yi2y8rFodNqDLGoHq292sU2D+cQLCng3MMo9NbKbFk05b43KO9OUv3J9aRriQtwwdvMS+vPIUuKVN0w18Lbgbg+6F5sVdqwjj1gHZvM1FlilHDapdJSxl7JFq0I/KFlqB3mV2A5/AdsbD8Zeiz47+B7nooHOSKB72p7A6GvXALDZM0od6Yhe5axubC3rH/SI1Ri545H22iPD7issW+g5U9zfn0EZe6UH2bkw3E5Nz7mXnTWpAl4taeB2a0p1iDLdG31BpUBIyV1jXAJCATP2X/m9dFZJn0NwXgEAXhFYr/GnlF0djt4D3FEXGYqz0ntU9DTc0yCYRx1l05iYVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7OvxWANLY4ZhdFsKuZCudz0CT8lIX9H8Zg1dwgSlKdQ=;
 b=jcQztA+7gSc9wKxKKiEweMJkdqDprM1f+4CASdYaFb3jEW9WOwj/ALZlnUm/mvl14GjNyCCtvtXRCYVMX4nKsheZnCkw/AdpXn4wdZhIuXwNnK1zykuunZy02dGteIDTTHC+vmSeIuAEruqP6/sWUH9+XeDGA/xChJ48lRipSuI=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 1/6] VT-d: properly reserve DID 0 for caching mode IOMMUs
Thread-Topic: [PATCH 1/6] VT-d: properly reserve DID 0 for caching mode IOMMUs
Thread-Index: AQHX16ptxP2kemn3HkOptj6NHfmn+qwED8FA
Date: Mon, 15 Nov 2021 05:13:54 +0000
Message-ID: <BN9PR11MB5433B6BF87871527DE20B3448C989@BN9PR11MB5433.namprd11.prod.outlook.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
In-Reply-To: <242bb589-92a8-6def-9dbc-651cda71188e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 63b73c85-e5dc-4baf-d743-08d9a7f6b88f
x-ms-traffictypediagnostic: BN7PR11MB2691:
x-microsoft-antispam-prvs: <BN7PR11MB2691172FA18A43604D6E0A128C989@BN7PR11MB2691.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6430;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: blZZkllCPhNjIMwh0f7DgJqXB9NYhrk4f+3uOMdGfLsBPKfYJlW84y38FhmhVvzXHTR3jWCjpOMUO1JaVOPP53IWfBW6TLk3S0dw0hagqi2u2/oVbtW37GcKwU4OhPSGgDzc7t/Y9ZBJ1KSxEeH8V9iPZjbOXabjTicArLmYJF6hXtzOcaAaZKBwv1inEp64VR8mckKAgDKTYxt96SYGqVQ6q/w5YNobNEGbY++hs3O4siMrU1gMaB8eSqvn50/dy3MjUmwCr12RCn2vU1uIyb+Jm4zu/lxG3zVf2LeFbKSAElQOYdiPnmeWXAgdum7EwN4WcbgHUBW4xDJmnd5ELxvwSO5RnouLBbklrw1YOIkDEaxp8wYVMDyat6I885SdzVxdPzOoOsG6OOSXt9urGAbeDZnbsNlj5cKA/iInmIezMn76nIebXzYhluE2/gfEZZJJDGOHYei2bzqVsXnLHMlsRmYmnY6W//bgWvCqrZk+RYNcEBGvL+QR5W2+rmQPoU/rqWNbwwtDia0agClQncChKy7Rcs4VchKE1xI+LqqZv0Jev10rPvzze8Y1HMWNsKNM+cOXP4j0s/XUYU6vC0pH3BsU3Q+5WWHEbHV8J7cKsIcJfkOU6kDMKeJujsVLWeSSAqRv7QZLHUZ6057AeYJ+8kwdcogTSfFc0rdRjmnpyXlO4S0ygMVyjvnNH5Wi9N+UiuwqAuW6UP6W8HIMbA==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5433.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(8676002)(66946007)(9686003)(66446008)(8936002)(52536014)(71200400001)(82960400001)(2906002)(55016002)(66556008)(76116006)(66476007)(5660300002)(64756008)(38100700002)(122000001)(186003)(26005)(33656002)(86362001)(38070700005)(7696005)(110136005)(316002)(6506007);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NGVkRHpXclpIb1FJTTFwaVVqT2NEOFJpNGF4WE5HWmVkM1VpL2dBdU9LWWNs?=
 =?utf-8?B?dURQQW4wMHdCdXVPWlBTOVFRTlNDT1BFeHptUGZhM0Q2bDlNRTJKeXJ5K3FP?=
 =?utf-8?B?RHZlMDg3R1lDZ0NiRFEyVk9BRGh5L1RTS0swQmtMWTJ0NEphYUtVRHQ0b3E5?=
 =?utf-8?B?cnJESzdJa1N2L2drdy9PaXh1ZElFZHd5K012aGNTSGRmMzNYNjluUHViQmlF?=
 =?utf-8?B?OUo0elVHUUNkRWVvRTJ4UkRIakljVnRyZ2xrcDUrV3J4UmtheFcvZEs0MWYw?=
 =?utf-8?B?U2FjamRZdXRBWVRFTkZtamYzQm1YaXU5OHJKWDRab2NQTDJIazNpTHNCS2tk?=
 =?utf-8?B?WFdNVXVqVlV3Y0tRR0VRVGYzY1pSWFdNeTEyeitQSXF3SjFFUlVRUUQyaWxF?=
 =?utf-8?B?ZzRBS01WbGg4QThCdTk2MmpDc2g4UldFeTgxbEJzRzhSMHVOcXpYMmgxeGJ4?=
 =?utf-8?B?MldFb2I3ajJDWjVaSTVlS3V5ck9oYys3Q2VRZVdpWWkzYjF0QzNSbys5R2hK?=
 =?utf-8?B?ak9mNFFnTUdKcjVMaWhYRjRjSVptaFExeWZ5TzZUQ0JWbDZXeGl2aWhieVJj?=
 =?utf-8?B?RHBtazdrL09mcDJOZ012Uk5rd3ZWRTZ0UzFBOXpMRTVUS1l5cVFDRk95YWNr?=
 =?utf-8?B?cjd1WUtQYTNjL1BUdlJ1ZWxRT3BqZFNKWGdNb29ZY3p3ZXZIQUp2ZU41NSsv?=
 =?utf-8?B?c0RFS2JyQlVNM0lPT3k2QnUvMDFYbUVRTjZiTUNuc0FiTlJ0Zk5taktNWktR?=
 =?utf-8?B?aFVFejlGVEI3ayswdVVnbks0MEswQStjSmF5bGF0bWhYczFVZXV2amRHcmNw?=
 =?utf-8?B?SlFNbFhBNXg3MjlnQ3FOdVd6QXJHWW5oZ0dxTGxSSXdoc29mdmlvZmRsNnZp?=
 =?utf-8?B?bmQwSzdxMXlDMk9hTy9UWFpDVG83MVU5d0lHWURGVFlLazd4cE9Vc2VacHFQ?=
 =?utf-8?B?NzVxc1JCNE56MjhBRVlTRWFBK3d3Z0J0ZkNEdGpmNE1zTklHdVJrMlNkY2Vs?=
 =?utf-8?B?Z256dlo0QXhna1Aya0pJb1hISForRzloZUF1ZFNHNE00MUp3OWN6aVNyYjdp?=
 =?utf-8?B?STRMSkhFRDl1ZEd6enVESUxMWExQOWNvOTdIOUpuaG1tTGhQZU5UcGpxajRE?=
 =?utf-8?B?b3dLaWNQcm1zZUpWL2ZibVh4cXM0eUUwaEE5dGFFSDdlbDNUN0RDUVVQSVZh?=
 =?utf-8?B?cEVWYnVnc25rNk9GMGloLzk0QnVFSnRub1FETDNoMmNZZDJ1MXByRVViTVpJ?=
 =?utf-8?B?cUpVSjZ1YXo5Wjl3djlJcTBXOTA3ZmIzdFlDMGMyckVPUjRsZjV4WW5yTmtr?=
 =?utf-8?B?RFpIV3NFMmg3VkVGdUlUV1FIQXhqUGZhMTlFYXpETVVBcDY0L2tlYUJWNGky?=
 =?utf-8?B?WDhJUXpKZ0RBYTV0R3gydWFkMEdxaVFrUzZ5ZEh1VHowTjdnOUJ6dGltZmFM?=
 =?utf-8?B?eXl4WW5pMktLKy94MmlzbVlaSGxLVTNzQ3psL1dqbGZWMEt6TnBMV2NjS0k3?=
 =?utf-8?B?VFdhVXVjay9SVHdicktFMFNQUUEzc2N4dmRzM2tJRE1adnkyM3h1MlZnYW14?=
 =?utf-8?B?RU5oQk5uaEdEZ1RoVU5lV3U5TWxFc3NOdVBCc1ZqSTZDd3BWL2dsYjA5RFBE?=
 =?utf-8?B?RDBENUx0WUNSUk9IZlg3THNUOHFxaWdmQmpEN3lacm9BbGVSMitmVVVwZmU5?=
 =?utf-8?B?cWZzdzhJZ1p5bnNmbnZvcTNjYk01WHVQa1VtVERWMG93YlVCUGRFNm92Z3pE?=
 =?utf-8?B?N2RYT3llYVFNN2tJRnpjT0JiVFFqUSt2Z3h4VkdpakFLNjZmaXlDb0VySWtC?=
 =?utf-8?B?Mm5QSDZmNHRDU1NOQkQxU3pBTlVEbjFlUjZDcExwUDZmRkM5dzJ2WERkQkxt?=
 =?utf-8?B?UU41cjBCVS8xc0lTM1AxT3I4SmNyVWVVNmJiNzBzenNUL2lYZmQzWTRUOXZz?=
 =?utf-8?B?dGVtVDg4cFZiclloeFZjUURnUTB5cnhYZCtMdGJvUFlvSGZPMnJhcm1ydmVB?=
 =?utf-8?B?elphMVpQdkZyZlRwUnFyODRGWEZ0MEdlOU03azM4ZGoxeEZHOXUvRjVDMnZt?=
 =?utf-8?B?TVg5RThDL3VJc294YWZZTGRyT0Z1M3Z1OUd6TmNLZFM3emtlaFNPNndEK0F4?=
 =?utf-8?B?clN0bVByemlPcFhSRjk1blpibnV6bjZGY2ZRQjlMakdlUUI1KzBJQmpNQjJV?=
 =?utf-8?Q?j+VqbW2ti5bxIWZXty8SMiU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5433.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 63b73c85-e5dc-4baf-d743-08d9a7f6b88f
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 05:13:54.8768
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 62omyqiFgFddR5LYo5gk9zi5wLUUkUWp3o878MciD+VhcxwUw39GGhTYYaQvEB+pIE233JNRt0rIHaj6R/394A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2691
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwg
Tm92ZW1iZXIgMTIsIDIwMjEgNTo0OCBQTQ0KPiANCj4gTWVyZWx5IHNldHRpbmcgYml0IDAgaW4g
dGhlIGJpdG1hcCBpcyBpbnN1ZmZpY2llbnQsIGFzIHRoZW4gRG9tMCB3aWxsDQo+IHN0aWxsIGhh
dmUgRElEIDAgYWxsb2NhdGVkIHRvIGl0LCBiZWNhdXNlIG9mIHRoZSB6ZXJvLWZpbGxpbmcgb2YN
Cj4gZG9taWRfbWFwW10uIFNldCBzbG90IDAgdG8gRE9NSURfSU5WQUxJRCB0byBrZWVwIERJRCAw
IGZyb20gZ2V0dGluZw0KPiB1c2VkLg0KPiANCj4gRml4ZXM6IGI5YzIwYzc4Nzg5ZiAoIlZULWQ6
IHBlci1pb21tdSBkb21haW4taWQiKQ0KPiBTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl
dWxpY2hAc3VzZS5jb20+DQoNClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGlu
dGVsLmNvbT4NCg0KPiANCj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11
LmMNCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMNCj4gQEAgLTEy
NTcsMTYgKzEyNTcsMTkgQEAgaW50IF9faW5pdCBpb21tdV9hbGxvYyhzdHJ1Y3QgYWNwaV9kcmhk
Xw0KPiAgICAgIGlmICggIWlvbW11LT5kb21pZF9iaXRtYXAgKQ0KPiAgICAgICAgICByZXR1cm4g
LUVOT01FTTsNCj4gDQo+ICsgICAgaW9tbXUtPmRvbWlkX21hcCA9IHh6YWxsb2NfYXJyYXkodTE2
LCBucl9kb20pOw0KPiArICAgIGlmICggIWlvbW11LT5kb21pZF9tYXAgKQ0KPiArICAgICAgICBy
ZXR1cm4gLUVOT01FTTsNCj4gKw0KPiAgICAgIC8qDQo+IC0gICAgICogaWYgQ2FjaGluZyBtb2Rl
IGlzIHNldCwgdGhlbiBpbnZhbGlkIHRyYW5zbGF0aW9ucyBhcmUgdGFnZ2VkIHdpdGgNCj4gLSAg
ICAgKiBkb21haW4gaWQgMCwgSGVuY2UgcmVzZXJ2ZSBiaXQgMCBmb3IgaXQNCj4gKyAgICAgKiBJ
ZiBDYWNoaW5nIG1vZGUgaXMgc2V0LCB0aGVuIGludmFsaWQgdHJhbnNsYXRpb25zIGFyZSB0YWdn
ZWQgd2l0aA0KPiArICAgICAqIGRvbWFpbiBpZCAwLiBIZW5jZSByZXNlcnZlIGJpdC9zbG90IDAu
DQo+ICAgICAgICovDQo+ICAgICAgaWYgKCBjYXBfY2FjaGluZ19tb2RlKGlvbW11LT5jYXApICkN
Cj4gKyAgICB7DQo+ICsgICAgICAgIGlvbW11LT5kb21pZF9tYXBbMF0gPSBET01JRF9JTlZBTElE
Ow0KPiAgICAgICAgICBfX3NldF9iaXQoMCwgaW9tbXUtPmRvbWlkX2JpdG1hcCk7DQo+IC0NCj4g
LSAgICBpb21tdS0+ZG9taWRfbWFwID0geHphbGxvY19hcnJheSh1MTYsIG5yX2RvbSk7DQo+IC0g
ICAgaWYgKCAhaW9tbXUtPmRvbWlkX21hcCApDQo+IC0gICAgICAgIHJldHVybiAtRU5PTUVNOw0K
PiArICAgIH0NCj4gDQo+ICAgICAgcmV0dXJuIDA7DQo+ICB9DQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 05:16:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 05:16:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225640.389674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUM5-0003EP-HU; Mon, 15 Nov 2021 05:16:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225640.389674; Mon, 15 Nov 2021 05:16:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUM5-0003EI-EN; Mon, 15 Nov 2021 05:16:33 +0000
Received: by outflank-mailman (input) for mailman id 225640;
 Mon, 15 Nov 2021 05:16:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rbjM=QC=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mmUM4-0003EA-2B
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 05:16:32 +0000
Received: from mga18.intel.com (mga18.intel.com [134.134.136.126])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2fdd5181-45d3-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 06:16:30 +0100 (CET)
Received: from fmsmga005.fm.intel.com ([10.253.24.32])
 by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 14 Nov 2021 21:16:28 -0800
Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17])
 by fmsmga005.fm.intel.com with ESMTP; 14 Nov 2021 21:16:27 -0800
Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by
 ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:16:27 -0800
Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by
 ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:16:26 -0800
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Sun, 14 Nov 2021 21:16:26 -0800
Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.173)
 by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Sun, 14 Nov 2021 21:16:26 -0800
Received: from BN9PR11MB5433.namprd11.prod.outlook.com (2603:10b6:408:11e::13)
 by BN0PR11MB5759.namprd11.prod.outlook.com (2603:10b6:408:168::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.16; Mon, 15 Nov
 2021 05:16:25 +0000
Received: from BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81]) by BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81%9]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 05:16:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2fdd5181-45d3-11ec-a9d2-d9f7a1cc8784
X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="220268198"
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="220268198"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="734836624"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Hh7uO3Y0yVtlzhIZ91/Rz21Iv2MDUR6CcUpYbAY9vQk9vD2C0i/1f9HxJm7p8eeSvCoRSNGF4az8OJ0FuVfzvzaHmgk4fQiqqLQVOhGe37oS5ECocAHcOeqyBaUIXSI5t/94MA/s2jNCyk/rMGWRrB7ZeeHDsvdrg8n29xPm07g0sUzdSr0+k2cNLpmSSH9b6rgAUy0aSqciVhffwUbDSwrC8R4y9JgI0DREsTcvZwyOo/xgfmsMMlyfLCAyrjlG72R5NJKNaTYaJPjiBPXMjqXdeLwyoN+9tC4fbncCVfnqrF4jnXTTdWLk1UGZpy+injEqEDcsQZ6zHa/Z4v8M1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=euvWnA5gNksxlJu0iR5E1/h5o+xmrjl96QdNtbzx46Y=;
 b=E3AV/2c4EVHbnU9vAypH+p5G6QqjWIbUqaQzYcmHGAoDhkNN8HE7AM29N3wHKU992FHA22xWdf4hHdEZ4FpwUlpj5YetvV/KLncGHPTDZEwx+6htE2UudQMe5LFcZB/Mi55bpd379yBDzyffWNK/4Hh9OYpkB8lT7liXfKUCy9JeR+qZp96K8qgwPS4ohEGg0JOK7xO5DRuNTJ1DTMu1vcaa710fhE+W76Mui0c6FmQz37c/DnE5FOiK6ydqnScOYz4qkVbzYyZAuch71b7Aqb1gKsWD8QotpyyG0rzoB3PJ6l1RB1sMhQeCFUgupT85z8RaNWyKuFeQ9VUgPuOX5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=euvWnA5gNksxlJu0iR5E1/h5o+xmrjl96QdNtbzx46Y=;
 b=RAOBc3pfzhkcIvZL9Pp2RZwOl/Krmq/th5TZfcSVx3Qa7cNr7AMo4za/fpC/TldtoT+k7kA+KIuVKRZfyO5hfMFmvRoCzThgUImT5nqyZlq6YOwMXVnsTsVHQJebKnlauomaRkMteWM23femEB92p5ayribGCfDnb3QjUQfYIUs=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 2/6] VT-d: split domid map cleanup check into a function
Thread-Topic: [PATCH 2/6] VT-d: split domid map cleanup check into a function
Thread-Index: AQHX16p16FVi6A9hH0KPevO89n4c9qwEEHWA
Date: Mon, 15 Nov 2021 05:16:25 +0000
Message-ID: <BN9PR11MB5433ECC3C1DA8902488BA6C28C989@BN9PR11MB5433.namprd11.prod.outlook.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <57c32156-369c-a92a-ecc0-fc4b890eb05c@suse.com>
In-Reply-To: <57c32156-369c-a92a-ecc0-fc4b890eb05c@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: suse.com; dkim=none (message not signed)
 header.d=none;suse.com; dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: bab5d81f-ffc2-4b23-8128-08d9a7f71232
x-ms-traffictypediagnostic: BN0PR11MB5759:
x-microsoft-antispam-prvs: <BN0PR11MB57592E3ED5CF608B38FE45AF8C989@BN0PR11MB5759.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7219;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: hsqmtvitLr26fJGHMSmCnpps0jEU8ExbUvPPvvICMgVVZiRaXf9dpNFtbfjDasp3oGKiVxlrTLzoPmFjBke/QqfZ22SetT7Nv9qSBSMNEJcJ7iBGreMZVNqeJ5Lvkl/QDLznI7YWKM1XO2yjqH1gC8Mdo2iR0Dx1S2wpMUUpWUp+vmpdtgpEG/JMDXMWtxWVsg/3toe2SEoweFG3GA9R7Rwu/Sp+BWY2bIyjQzTanS7OwwXaxSzv62HeLOHXgtFX5m8phCxm+dKsCxjKumk6Aw1M+5Irt4ovAVujcJwuXajJ63KkCUMwS6pajcju3HXV5bXLj3Gg0LW2Rz02H2fj/TlhafkYQSFzZufIR8lKLocG3vTyR0COoR2USZS3A0VoumUeUtBS7APWWSMfH2pk48hfIBHfP46rT97TKmo4CdVe+NjMQidjbBU8qW9/ZGCDxABMiV1TmqNWy3Ddi0wL5oumJDec3vcwUckjWFlvYCvKc7Mf/qy+rE1QlunCDChBNpVRZWF4m650x1PeJO8z+0BukxG+dUGkrwZd26bahYM8vHCmS9W89ys6iM9LR64KTTcH6dJd6PQErMgCeuitr39Q291zDemgjM+BIM4LWBfHwTue+bJpcQw/NVKU7DKqqTtiozsSufOJmNveeunchMPAvkop+3kOwt9lfvhsUATliUejYMu5ggsZf/N82dxWIyx3QgPVD6rVj+MnOUdc5Q==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5433.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(38100700002)(76116006)(8936002)(66946007)(316002)(66446008)(64756008)(66556008)(66476007)(82960400001)(6506007)(110136005)(2906002)(7696005)(5660300002)(508600001)(33656002)(122000001)(52536014)(71200400001)(26005)(9686003)(8676002)(38070700005)(55016002)(86362001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YVNuSS83UThYa09idm5NUlRxWXFYdU9ERVRTSmtKUE1CNCswOSs5a3dsWTFH?=
 =?utf-8?B?eTNiQlpTbUFFVVM0V0VQRmtpSVA1S0NONU8yckFHT1NKeEJ6SEtLZXh6RTJW?=
 =?utf-8?B?dU1COHN2R3h2VEFHQU44RUMrSzY4U3J3YXpjd09QMS9IeWdtanBRckxJRVBS?=
 =?utf-8?B?RDRkaFhHN1dsWU81cllOY3hyV01zT3JldnFVZCtuTTNYc2dKYjgxM3RiTmhT?=
 =?utf-8?B?Z2tNZVpZOWhMYk1vSGlyK3lMSWtmdnlTazZHckY3bFNYUExtVUZNWDZsMGFC?=
 =?utf-8?B?bHZ3ZTFGakx0dmVWYTIvZENLeDV5UVUwY241MHN1Z3YwcFpzdVY0S1V6Z0tj?=
 =?utf-8?B?TXd4RDlNN25OZGtrNkZ2dXdYMVRMNlA1WUIrL2ZFY25IVGthYVBZT1pObUhE?=
 =?utf-8?B?WDBsd05sY0E4OWtUMUhSdzd0dVBIMjQ5eE9MVEVyb0ZUNGhiTW5CWEVCK0E0?=
 =?utf-8?B?dmJJZWlpSS8zdEs0VzFQcHBXY1gxSC9BeElrQ25MS2p6Y2dLRTRDeFlKemlW?=
 =?utf-8?B?Q0Y4cW8zM1JOZE53dDYyL3NkUWxWU3p4ZVd4Q3dHT2NYamJtMGEydVc4RXpO?=
 =?utf-8?B?bllHK1BHRStXUnhVQVdSeWdjbEJjTHJzR21rd0JyaFJNeDVBdmtWV3VCWGN1?=
 =?utf-8?B?STdZa3ZWeGxhV2kxQ1gxVjNwVmhiWkVBV0kzQUJ0aDdqeFdYcGdRcXA0SWtp?=
 =?utf-8?B?OGowMjJiYWZlRVFKWVhLNkRyK3BheTF5aktYZXo3M1FVRzFoS2ZpMkYxY0x4?=
 =?utf-8?B?Y1BIZ0UxQUZpNmorQzF6NlFhaG9pMmVLdlRQRlhDSDhRd1dWUnE3dE9Sd3F3?=
 =?utf-8?B?c3NUOVhHSWs5cXhWbVBwc2ZocXVoTjhIbkgxVk1xQnR4K0R2NU9VSDBpdkxE?=
 =?utf-8?B?dlNJZnFEbXNNSUs4VVlBMDBJcis4K1AvdVpDZ2NseTR3T0NUY202c1NBMll0?=
 =?utf-8?B?L3oxVk4zU2ZYL0RBcFdaOE5xTE9GWWQzamhHVzFCTnpsNmRidU9KUmRvb1dS?=
 =?utf-8?B?SUJMTDgvU1dSZDc1TC9ZRm9MZmFKNVRzU1d6cEl4Uk1rajdaZlNiTUk0dGor?=
 =?utf-8?B?VUdvaHRCSzJ4ekdGV0Q5RTVhT2luMzZ5dGtyVFBWTEJHTUNEMUdzb0ZWN0xr?=
 =?utf-8?B?dFpTamREVm1xZ3NqSkpjcit6cGJ6TU5nQ2tRRHpsNm9RMDVFMUtxOHJFaUtw?=
 =?utf-8?B?TExNZ2IvMTIyanJ4WGVrK0JLOTJNNDV5TWl0eS90WjBLeUZBYU5CelFGVm1W?=
 =?utf-8?B?NW9SeXNBaDdHMVA3SWJRdnJVUExyL3VwUjVwTGJvSUUwU1h3R3ZTSXJrRHoy?=
 =?utf-8?B?ckx0TGtGRXIwRTJpUGVZVDZDd0gvcGJzeEsxUzlSVGxBLzByaENNckJpd0l6?=
 =?utf-8?B?SElzWmVHWDExYjhwVmdwdmh5eGNlRnk3QlBsQlV5d2VBd1hZckU3eXVUVW11?=
 =?utf-8?B?YTM1WUN5dUZYSDU3Rnk3YVN5K1JxL2NnSmk3QkxMNmZHQWJwZGp6SGUwdEty?=
 =?utf-8?B?WTAwUS9kRFBhRDlWUmIxYjZpTUVzdnZQRkNrYjB0SHdFMXhSb1ExZkRzUnRC?=
 =?utf-8?B?TjR6RnhIWUUyUnA0aDVGQ3U1RTEvMjExOTk5a3djTFFDbmt2Vm1VdVkxd3JO?=
 =?utf-8?B?WmZOWmlNdjZkVUNjTytSMXQzbjUyR09kV1FkaWNuZGk3L2FwNFFwWjhMd1h6?=
 =?utf-8?B?MVh6SnNwRVJwODJXdHRIWnN5Szgyd0NKNHk3ajR5eHozbUtGeEhBN0tQVHFI?=
 =?utf-8?B?dnB4d2QyMEhzdUp1TVdlWFlRQ25XZ1ZiSGo3aG8ralZqVWZORlh4bVZjUi83?=
 =?utf-8?B?MlVUbkwzNDlLNzNDNHY0WjNMdklxS2VwN2xFL0ZmTXh5Wmt6R1hZVGxSbUh6?=
 =?utf-8?B?WFk5Y1ZVbHR5SkM0S0gzT1ZkeTdPcW9uWUF0TUF4SUppeHAwRVlocTdER0ds?=
 =?utf-8?B?b1VaNEhDM0p0a3dFYVNxaTBLN05tYmtNcGdKeVZsL1pxK2xodXlRbDlsUnkx?=
 =?utf-8?B?d1IxYnN1RkpJMFdKY09HbzZYc0kyR2NtNWJYU2RwUUFNNXpyWXlra1plaUFY?=
 =?utf-8?B?MU9zMkFkbVdpcGxFRnAxLzYrQ3pyVTU1RUJOZGxjaWk3V0dTZ2I1dTVDUHJp?=
 =?utf-8?B?c1VQTlhseWNQbkJoeUQrSHdXMllmU0ZIc0ZaN2dOWnRhdDJtdWNCVWc0dUEw?=
 =?utf-8?Q?Wg8jukmD5RnSxa5hK+bJGpU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5433.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bab5d81f-ffc2-4b23-8128-08d9a7f71232
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 05:16:25.3308
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: VN8Faq36s24Yk2ZCpPLm42SqKBXpgogrz5uIl/vk4krZLatG+TTlJjGzJ710XJEbYWSVP0juYPLzzshdsTVSTQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR11MB5759
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwg
Tm92ZW1iZXIgMTIsIDIwMjEgNTo0OCBQTQ0KPiANCj4gVGhpcyBsb2dpYyB3aWxsIHdhbnQgaW52
b2tpbmcgZnJvbSBlbHNld2hlcmUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8
amJldWxpY2hAc3VzZS5jb20+DQoNClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFu
QGludGVsLmNvbT4NCg0KPiANCj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv
bW11LmMNCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMNCj4gQEAg
LTE1Nyw2ICsxNTcsNTEgQEAgc3RhdGljIHZvaWQgY2xlYW51cF9kb21pZF9tYXAoc3RydWN0IGRv
bQ0KPiAgICAgIH0NCj4gIH0NCj4gDQo+ICtzdGF0aWMgYm9vbCBhbnlfcGRldl9iZWhpbmRfaW9t
bXUoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZXhjbHVkZSwNCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkNCj4gK3sN
Cj4gKyAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldjsNCj4gKw0KPiArICAgIGZvcl9lYWNo
X3BkZXYgKCBkLCBwZGV2ICkNCj4gKyAgICB7DQo+ICsgICAgICAgIGNvbnN0IHN0cnVjdCBhY3Bp
X2RyaGRfdW5pdCAqZHJoZDsNCj4gKw0KPiArICAgICAgICBpZiAoIHBkZXYgPT0gZXhjbHVkZSAp
DQo+ICsgICAgICAgICAgICBjb250aW51ZTsNCj4gKw0KPiArICAgICAgICBkcmhkID0gYWNwaV9m
aW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYpOw0KPiArICAgICAgICBpZiAoIGRyaGQgJiYgZHJo
ZC0+aW9tbXUgPT0gaW9tbXUgKQ0KPiArICAgICAgICAgICAgcmV0dXJuIHRydWU7DQo+ICsgICAg
fQ0KPiArDQo+ICsgICAgcmV0dXJuIGZhbHNlOw0KPiArfQ0KPiArDQo+ICsvKg0KPiArICogSWYg
bm8gb3RoZXIgZGV2aWNlcyB1bmRlciB0aGUgc2FtZSBpb21tdSBvd25lZCBieSB0aGlzIGRvbWFp
biwNCj4gKyAqIGNsZWFyIGlvbW11IGluIGlvbW11X2JpdG1hcCBhbmQgY2xlYXIgZG9tYWluX2lk
IGluIGRvbWlkX2JpdG1hcC4NCj4gKyAqLw0KPiArc3RhdGljIHZvaWQgY2hlY2tfY2xlYW51cF9k
b21pZF9tYXAoc3RydWN0IGRvbWFpbiAqZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpleGNsdWRlLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUpDQo+ICt7DQo+
ICsgICAgYm9vbCBmb3VuZCA9IGFueV9wZGV2X2JlaGluZF9pb21tdShkLCBleGNsdWRlLCBpb21t
dSk7DQo+ICsNCj4gKyAgICAvKg0KPiArICAgICAqIEhpZGRlbiBkZXZpY2VzIGFyZSBhc3NvY2lh
dGVkIHdpdGggRG9tWEVOIGJ1dCB1c2FibGUgYnkgdGhlDQo+IGhhcmR3YXJlDQo+ICsgICAgICog
ZG9tYWluLiBIZW5jZSB0aGV5IG5lZWQgY29uc2lkZXJpbmcgaGVyZSBhcyB3ZWxsLg0KPiArICAg
ICAqLw0KPiArICAgIGlmICggIWZvdW5kICYmIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApDQo+ICsg
ICAgICAgIGZvdW5kID0gYW55X3BkZXZfYmVoaW5kX2lvbW11KGRvbV94ZW4sIGV4Y2x1ZGUsIGlv
bW11KTsNCj4gKw0KPiArICAgIGlmICggIWZvdW5kICkNCj4gKyAgICB7DQo+ICsgICAgICAgIGNs
ZWFyX2JpdChpb21tdS0+aW5kZXgsIGRvbV9pb21tdShkKS0+YXJjaC52dGQuaW9tbXVfYml0bWFw
KTsNCj4gKyAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZCwgaW9tbXUpOw0KPiArICAgIH0NCj4g
K30NCj4gKw0KPiAgc3RhdGljIHZvaWQgc3luY19jYWNoZShjb25zdCB2b2lkICphZGRyLCB1bnNp
Z25lZCBpbnQgc2l6ZSkNCj4gIHsNCj4gICAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGZsdXNo
X3NpemUgPSAwOw0KPiBAQCAtMTY3NSwyNyArMTcyMCw2IEBAIGludCBkb21haW5fY29udGV4dF91
bm1hcF9vbmUoDQo+ICAgICAgcmV0dXJuIHJjOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBib29sIGFu
eV9wZGV2X2JlaGluZF9pb21tdShjb25zdCBzdHJ1Y3QgZG9tYWluICpkLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpleGNsdWRlLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2dGRfaW9t
bXUgKmlvbW11KQ0KPiAtew0KPiAtICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2Ow0KPiAt
DQo+IC0gICAgZm9yX2VhY2hfcGRldiAoIGQsIHBkZXYgKQ0KPiAtICAgIHsNCj4gLSAgICAgICAg
Y29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOw0KPiAtDQo+IC0gICAgICAgIGlmICgg
cGRldiA9PSBleGNsdWRlICkNCj4gLSAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAtDQo+IC0gICAg
ICAgIGRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7DQo+IC0gICAgICAg
IGlmICggZHJoZCAmJiBkcmhkLT5pb21tdSA9PSBpb21tdSApDQo+IC0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICByZXR1cm4gZmFsc2U7DQo+IC19DQo+IC0N
Cj4gIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGRvbWFpbiAqZG9tYWlu
LCB1OCBkZXZmbiwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBj
aV9kZXYgKnBkZXYpDQo+ICB7DQo+IEBAIC0xNzA0LDcgKzE3MjgsNiBAQCBzdGF0aWMgaW50IGRv
bWFpbl9jb250ZXh0X3VubWFwKHN0cnVjdCBkDQo+ICAgICAgaW50IHJldDsNCj4gICAgICB1aW50
MTZfdCBzZWcgPSBwZGV2LT5zZWc7DQo+ICAgICAgdWludDhfdCBidXMgPSBwZGV2LT5idXMsIHRt
cF9idXMsIHRtcF9kZXZmbiwgc2VjYnVzOw0KPiAtICAgIGJvb2wgZm91bmQ7DQo+IA0KPiAgICAg
IHN3aXRjaCAoIHBkZXYtPnR5cGUgKQ0KPiAgICAgIHsNCj4gQEAgLTE3ODAsMjggKzE4MDMsMTAg
QEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZA0KPiAgICAgICAgICBy
ZXR1cm4gLUVJTlZBTDsNCj4gICAgICB9DQo+IA0KPiAtICAgIGlmICggcmV0IHx8IFFVQVJBTlRJ
TkVfU0tJUChkb21haW4pIHx8IHBkZXYtPmRldmZuICE9IGRldmZuICkNCj4gLSAgICAgICAgcmV0
dXJuIHJldDsNCj4gKyAgICBpZiAoICFyZXQgJiYgIVFVQVJBTlRJTkVfU0tJUChkb21haW4pICYm
IHBkZXYtPmRldmZuID09IGRldmZuICkNCj4gKyAgICAgICAgY2hlY2tfY2xlYW51cF9kb21pZF9t
YXAoZG9tYWluLCBwZGV2LCBpb21tdSk7DQo+IA0KPiAtICAgIC8qDQo+IC0gICAgICogSWYgbm8g
b3RoZXIgZGV2aWNlcyB1bmRlciB0aGUgc2FtZSBpb21tdSBvd25lZCBieSB0aGlzIGRvbWFpbiwN
Cj4gLSAgICAgKiBjbGVhciBpb21tdSBpbiBpb21tdV9iaXRtYXAgYW5kIGNsZWFyIGRvbWFpbl9p
ZCBpbiBkb21pZF9iaXRtYXAuDQo+IC0gICAgICovDQo+IC0gICAgZm91bmQgPSBhbnlfcGRldl9i
ZWhpbmRfaW9tbXUoZG9tYWluLCBwZGV2LCBpb21tdSk7DQo+IC0gICAgLyoNCj4gLSAgICAgKiBI
aWRkZW4gZGV2aWNlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIERvbVhFTiBidXQgdXNhYmxlIGJ5IHRo
ZQ0KPiBoYXJkd2FyZQ0KPiAtICAgICAqIGRvbWFpbi4gSGVuY2UgdGhleSBuZWVkIGNvbnNpZGVy
aW5nIGhlcmUgYXMgd2VsbC4NCj4gLSAgICAgKi8NCj4gLSAgICBpZiAoICFmb3VuZCAmJiBpc19o
YXJkd2FyZV9kb21haW4oZG9tYWluKSApDQo+IC0gICAgICAgIGZvdW5kID0gYW55X3BkZXZfYmVo
aW5kX2lvbW11KGRvbV94ZW4sIHBkZXYsIGlvbW11KTsNCj4gLQ0KPiAtICAgIGlmICggIWZvdW5k
ICkNCj4gLSAgICB7DQo+IC0gICAgICAgIGNsZWFyX2JpdChpb21tdS0+aW5kZXgsIGRvbV9pb21t
dShkb21haW4pLQ0KPiA+YXJjaC52dGQuaW9tbXVfYml0bWFwKTsNCj4gLSAgICAgICAgY2xlYW51
cF9kb21pZF9tYXAoZG9tYWluLCBpb21tdSk7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgcmV0dXJu
IDA7DQo+ICsgICAgcmV0dXJuIHJldDsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgdm9pZCBpb21tdV9j
bGVhcl9yb290X3BndGFibGUoc3RydWN0IGRvbWFpbiAqZCkNCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 05:21:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 05:21:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225647.389686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUQv-0004hD-91; Mon, 15 Nov 2021 05:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225647.389686; Mon, 15 Nov 2021 05:21:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUQv-0004h6-64; Mon, 15 Nov 2021 05:21:33 +0000
Received: by outflank-mailman (input) for mailman id 225647;
 Mon, 15 Nov 2021 05:21:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rbjM=QC=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mmUQu-0004h0-Kp
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 05:21:32 +0000
Received: from mga07.intel.com (mga07.intel.com [134.134.136.100])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e30a3cd1-45d3-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 06:21:31 +0100 (CET)
Received: from fmsmga005.fm.intel.com ([10.253.24.32])
 by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 14 Nov 2021 21:21:28 -0800
Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19])
 by fmsmga005.fm.intel.com with ESMTP; 14 Nov 2021 21:21:28 -0800
Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by
 ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:21:27 -0800
Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by
 ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:21:27 -0800
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Sun, 14 Nov 2021 21:21:27 -0800
Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.43) by
 edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Sun, 14 Nov 2021 21:21:27 -0800
Received: from BN9PR11MB5433.namprd11.prod.outlook.com (2603:10b6:408:11e::13)
 by BN6PR11MB1265.namprd11.prod.outlook.com (2603:10b6:404:48::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Mon, 15 Nov
 2021 05:21:25 +0000
Received: from BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81]) by BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81%9]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 05:21:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e30a3cd1-45d3-11ec-a9d2-d9f7a1cc8784
X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="296810091"
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="296810091"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="734837294"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=np85Ryb9crwgF6SJH5I8xMBVJO6dECZ1K2WKJN5Yv2pn4aFxDKTdPA9ISuaZ/d01jzQfMruX5/4iG/9C8uBG1m15tqtBjHOeFRfER7s6BgK9dVyQGMJpa+sQXHqn37kD6hy+wO1et93mXP/2IQdQZA8sR4rdIL5Q1LLFSpR/1iO9RMVBSP3BPtX0gatp9N5Z8+JwAzRVZ7M8ivwWi2GzGRqIPC5XuP2Qr6fdFw/mi40a0IYySHoUcwl4g+DUwgpqjzwDmpuL+s3ES1m0AoaL4IHWX01w50Pk+BzO+ZEtKaImvqasHVkluAGhNR1CV6sw6R52ti8j1Zqv3qlsmsSGUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FgcTmuzke/9024I1ZH8oHXqHgnuL2fsWV6++ybbcNOk=;
 b=DkQj4YDZK5B0oVsemPvipxF8xTd9eDeijR88atorcYUiPmquiTYcB7hmFOj5WpvOVN+OcR0EbVp52FqFutryVnDTUdEgACIWmmA8eTqme+tJS/Mf+idW6npaVV8Xl4zfWVsR9I94EMAWMpJhmhkErmD/LTAiNLTED4hbU4x8YnEPr15IaBykGHxgusVZFIqtCilXvBnBqE+WZ6CcDFuSR4Hq/tYOS+rvUBEBHVzaMv9qNJNnSdg+m9XofCGW6Yc7DuaC4GxwTz3x96mJYEOaM6CcP4kPwCXjHFTr7O7kJCkpodSv2985zpsMOrtXDF4MrwBePFcLC6A9BGUngaj2hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FgcTmuzke/9024I1ZH8oHXqHgnuL2fsWV6++ybbcNOk=;
 b=rJkOAoAbhVx6Fln80+LfXtAi04adodOyuIEdOO9nDHcgP7QEXTsWzxFC/JdGpsYEgqmSAHimCJmZzxiACuv3MHFZ0NlZaXVVMc+5JfUH0VPYPL7etFNcyQN3m7A3FQKNMbjAgy7+9AdcsJlPCm8M3usYdbwdiUnHDmjuc1r9eA8=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 3/6] VT-d: don't leak domid mapping on error path
Thread-Topic: [PATCH 3/6] VT-d: don't leak domid mapping on error path
Thread-Index: AQHX16qEmEl05LhWzEygD9JPD9Hti6wEEdqw
Date: Mon, 15 Nov 2021 05:21:25 +0000
Message-ID: <BN9PR11MB543399A190B26BB465290BF78C989@BN9PR11MB5433.namprd11.prod.outlook.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <d4ca5274-dbbf-4cde-1a4b-0d7fe294c360@suse.com>
In-Reply-To: <d4ca5274-dbbf-4cde-1a4b-0d7fe294c360@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 0e60a81b-1bb3-4527-97aa-08d9a7f7c557
x-ms-traffictypediagnostic: BN6PR11MB1265:
x-microsoft-antispam-prvs: <BN6PR11MB126572FB4660A7E7ADA1A1EE8C989@BN6PR11MB1265.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:639;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: N0bhLysss2BzK1+fRnTIeLcStm0J+RDsN5pyEH9FSpWs5qj9B73cd3CfTA8QGpXY16q1cd/ewn34auUwcHGnbBAAwDKZHQxHpP8ddewGi/L8sKkX/lRNqkSntg+fFaU1tuCfGwU/7QdS8rhPTjhGIpNxmYSH77nQhYU+YTLw40IcNllsqcQqgn10gNVrvirUHklrM0N4bijnSLLNd1vb93AOCAxy3wPhrz9pdhrjkztuHia378uFWJvWmo8eioyCToo8QqltGiibra/OL+/SDNVha2brBNgyUu664XAxEpzqDU29z4MRpofZAfanNTi49iNQZ+HdL3Gtf42mVFU648AktAE9UrWcrqTQCFKPxVtPbncbJdbGoXhVy/dPuZruTqamOJgjVUEzNRLdr0QPhc4S/38ajnfuCB9ufOAKvniqsFfT08uWcDuxznRy32doEAQgps1ZvA9fo2YR7oumtYIaKyi9X86i1CjygkIhXjPTGJF0gq09VadYvlIz3IRsns117oFJOQr3Ym6GtVdrPetGcvyjMPZl/5UzMsznJcB+IZZ0bSEKVlPisTTeUHdRxXLp+Y1AmugJKxqAlmwybZvD+LIWQkpHtWn6LhxMPexkVkQrAOB7d+eJ1f/lumQXvJbIfC09h0hJk+EPzoSjIgvi/n850zlsimgWto0GhVh5/OnuGxmdu/TwUPApPmJxpR/+z4PaN92L/rxdYAXiyw==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5433.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(66556008)(33656002)(2906002)(66946007)(76116006)(8936002)(122000001)(110136005)(186003)(6506007)(38070700005)(66476007)(66446008)(64756008)(26005)(316002)(71200400001)(82960400001)(9686003)(8676002)(86362001)(52536014)(7696005)(38100700002)(5660300002)(55016002);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Q3dSdHF4anVUalJiNWtFK2VGT0JBMFMyMWV1LzFvdGcyV2xaR1BoQzlhWlZF?=
 =?utf-8?B?ZnFEbWwydnR2RlVBN0JyOUkvTlVDL1FpTkpsRHRvTzNnS21YUVptSHFKMiti?=
 =?utf-8?B?M0V1YjRnWkNaSFRiUEwzWHpCYlI5MXU0UTlHVlNwdm5zZTd0NjVqNndEYkNJ?=
 =?utf-8?B?NFZxZ2lUeWNZZjYxaXJERDUvVFhNczBPb1l2cFVYL3pzTEEremJUUXI3N1dC?=
 =?utf-8?B?ZFUvTzZKamZ0MWh2QmNDWFBteVVHWDZYM1drY200MVF4MzBwdWs1YitiQitX?=
 =?utf-8?B?MWdGUUNOR1JWeTdWbWhWU1NNQ3kyMFozNG02cmZyMW5zOXRRYXlPTmJJbmpP?=
 =?utf-8?B?dUthdnNlZ0VZalNvTGxVanhzeTJMU2toWEs0QlVXMElSL1g2bTFjVlo2Qytz?=
 =?utf-8?B?d21HRE4wMTh0Vm9CYjZ5YkczMXdEUVRWeFBtRDA1aVk0SjlnNGxMOU9UdCtv?=
 =?utf-8?B?UnBKZ0l2WTFXQnUwV2JaMHAzK1JtZGp2VXZCYnhpdS9TaDAvb1oxWFMyS3FC?=
 =?utf-8?B?UlR3ckhQTk9aL29SRTVUWVZQOUZTVm9YNDI3cUpVaGp3cVJXQWJBa1V1aUhL?=
 =?utf-8?B?N1hRa1pPM3dlYmhoSTNNVmpkVXhOZjc3dUxEZWgzYXNsYXN2aURMQkJIT21W?=
 =?utf-8?B?ak43N1QvNHhZbVJnT0gxWnpWWEpORVNCRVZSMlExRXRHMUgyMnJxMFlsZEJH?=
 =?utf-8?B?Zmw4eCtLdGgwaVBubGxJRlZWcVQxSVJneXBZSlBHU0ZHQUxNN3pvSmpWbnFB?=
 =?utf-8?B?WjdaQlgzamFlRjZJWFVCRElYRnF2K29WSW1WdGZPKzV2SUp4UUppTmRLSzd4?=
 =?utf-8?B?d2ZIVjdYZGZ6SDZaTU14ZnREdnltcUFPc2p6YUtjNWd5d0xMQUlVaDBGMjg5?=
 =?utf-8?B?T0NUZHVGSDRsNHBqNE4ya0FKQzJ2Qmp3aEJlQi85aTgwdWVqUW1HZU4xeGpZ?=
 =?utf-8?B?cGFMT2lxc29TTml3bUVYbnpFaFVYdUE0WWV5QVBuYm05S2lCUmpIUEF3QnBj?=
 =?utf-8?B?cloweXFwNXZVNUFoV0x6cS90S2tVenZ0eStGUDBzZ0Rac2xrRSsxNDJtT0hI?=
 =?utf-8?B?bUxTNmNUUk5qaEc5UWhUcWMvbkkzaVA5MldNVFo0U1RGc1ZKR0RWZ3dEbVF6?=
 =?utf-8?B?WjdpOGhwY2NOUlBvNUtqUDVXTCs3M0tiZVprQlgyT09VYVUrTDIwK281QUxD?=
 =?utf-8?B?bjlyT09RZzVqUlRUdEZNQzVraHZSWnVOWFRuc1BBWEloUHh3cERwckNiNldR?=
 =?utf-8?B?UzVJQ0NmdlRjbDcwQ3V3NDRnQzhxQVJCcVU0VWhWSkVWV3NSdmVTRFRWUk5n?=
 =?utf-8?B?ZVNINUFkK2JNdzFLWmpBMHJqaG14MFJGdGdNdDdBQnZIV1g1Y2t1bFpjVlQz?=
 =?utf-8?B?NzdpOVE3eDZHNjVFbFg2Q3NEVHNlMXJSNkIrazZpMnJYNW5mTWkrVGlKRmZC?=
 =?utf-8?B?a2ZsYjErSkNHdHVPekhGbTZET0R2NDJlNU5XYXF4b2RvaW5hZmljeC91Qncr?=
 =?utf-8?B?bFBoMC9JQ2JKRG9rV1RQdUxIeGw5WFhHZ0hmUVp6RWx4eUE0QldzZThPMzM1?=
 =?utf-8?B?RTBVd0toYUdHaXZ5MHJOU3FwZFZydmd2QW9iK3JVUks5NFAvYU1rdDdQaksy?=
 =?utf-8?B?UnJuTDRaaGpqMG9JSVM4TXhPbUkyT1FON2JqUFdVdHBUZWpUMnBGN2xSWFBO?=
 =?utf-8?B?L3A4MW8wdml5QmFLblg2S0dzcEJiZzhXRjIzaTVFNUlRRitPVTVveTFIcmxO?=
 =?utf-8?B?WDU5R3hQcHFhUW9pbjNDa3FWemZpUjRXeWpITnh4UFU2MWhpNVFrT0hiR1FI?=
 =?utf-8?B?T01FbEtwZ1pyeW5td3BIaXlUemgrODY1ci8ydWZuNDExSnZkMUNxYVBMN1l2?=
 =?utf-8?B?ZUtRQXBtMnl4SG9aQU9FTzNrbjBPbXg1dTJtOWZEcm1pUCtJcTJxV2RsbDB3?=
 =?utf-8?B?WnFkYTJHVVhxb09GNFFIY1FWUzFFbXVtRDZVczdhQjcxaEkwVVB1MGZ6N2xq?=
 =?utf-8?B?TnZrZDY2Mm8xbEZTaThrQmhreGRKYnVzSWp4dTVJbFRlV21CWjRxRGxDVmxw?=
 =?utf-8?B?Smw3ZTdZankzM1hDZHNndzk4NHk3MkpZRjJWZmRBSWZnZnFzYkRPTUovWG5H?=
 =?utf-8?B?T3I5QURKemd4cUF1VVlRWUpQM0hJRTM4VHpLejBKZnVUekpTKzJYQmFFcjRp?=
 =?utf-8?Q?4CEyNabmssy9Wb5EoiSQaLQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5433.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e60a81b-1bb3-4527-97aa-08d9a7f7c557
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 05:21:25.8063
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 76yFM5z/XNMjxgkeV+HWpT/+JCdCTzAF9w0FjpNwtNPd9OwG/swJvW/P01CQqEiET/s+vytOfo/+yc7N+IbIQQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1265
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwg
Tm92ZW1iZXIgMTIsIDIwMjEgNTo0OSBQTQ0KPiANCj4gV2hpbGUgZG9tYWluX2NvbnRleHRfbWFw
cGluZygpIGludm9rZXMgZG9tYWluX2NvbnRleHRfdW5tYXAoKSBpbiBhDQo+IHN1Yi0NCj4gY2Fz
ZSBvZiBoYW5kbGluZyBERVZfVFlQRV9QQ0kgd2hlbiBlbmNvdW50ZXJpbmcgYW4gZXJyb3IsIHRo
dXMgYXZvaWRpbmcNCj4gYSBsZWFrLCBpbmRpdmlkdWFsIGNhbGxzIHRvIGRvbWFpbl9jb250ZXh0
X21hcHBpbmdfb25lKCkgYXJlbid0DQo+IHNpbWlsYXJseSBjb3ZlcmVkLiBTdWNoIGEgbGVhayBt
aWdodCBwZXJzaXN0IHVudGlsIGRvbWFpbiBkZXN0cnVjdGlvbi4NCj4gTGV2ZXJhZ2UgdGhhdCB0
aGVzZSBjYXNlcyBjYW4gYmUgcmVjb2duaXplZCBieSBwZGV2IGJlaW5nIG5vbi1OVUxMLg0KPiAN
Cj4gRml4ZXM6IGRlYzQwM2NjNjY4ZiAoIlZULWQ6IGZpeCBpb21tdV9kb21pZCBmb3IgUENJL1BD
SXggZGV2aWNlcw0KPiBhc3NpZ25tZW50IikNCj4gU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg
PGpiZXVsaWNoQHN1c2UuY29tPg0KDQpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlh
bkBpbnRlbC5jb20+DQoNCj4gLS0tDQo+IFRoZSBGaXhlczogdGFnIGlzbid0IHN0cmljdGx5IGNv
cnJlY3QsIGFzIGVycm9yIGhhbmRsaW5nIGhhZCBtb3JlIHNldmVyZQ0KPiBzaG9ydGNvbWluZ3Mg
YXQgdGhlIHRpbWUuIEJ1dCBJIHdvdWxkbid0IHdhbnQgdG8gYmxhbWUgYSBjb21taXQNCj4gaW1w
cm92aW5nIGVycm9yIGhhbmRsaW5nIHRvIGhhdmUgaW50cm9kdWNlZCB0aGUgbGVhay4NCj4gDQo+
IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jDQo+ICsrKyBiL3hlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jDQo+IEBAIC0xNTE4LDcgKzE1MTgsMTIgQEAg
aW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKA0KPiAgICAgICAgICByYyA9IG1lX3dpZmlf
cXVpcmsoZG9tYWluLCBidXMsIGRldmZuLCBNQVBfTUVfUEhBTlRPTV9GVU5DKTsNCj4gDQo+ICAg
ICAgaWYgKCByYyApDQo+IC0gICAgICAgIGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4s
IGlvbW11LCBidXMsIGRldmZuKTsNCj4gKyAgICB7DQo+ICsgICAgICAgIHJldCA9IGRvbWFpbl9j
b250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMsIGRldmZuKTsNCj4gKw0KPiArICAg
ICAgICBpZiAoICFyZXQgJiYgcGRldiAmJiBwZGV2LT5kZXZmbiA9PSBkZXZmbiApDQo+ICsgICAg
ICAgICAgICBjaGVja19jbGVhbnVwX2RvbWlkX21hcChkb21haW4sIHBkZXYsIGlvbW11KTsNCj4g
KyAgICB9DQo+IA0KPiAgICAgIHJldHVybiByYzsNCj4gIH0NCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 05:51:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 05:51:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225651.389697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUtx-0007qX-M6; Mon, 15 Nov 2021 05:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225651.389697; Mon, 15 Nov 2021 05:51:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUtx-0007qQ-I5; Mon, 15 Nov 2021 05:51:33 +0000
Received: by outflank-mailman (input) for mailman id 225651;
 Mon, 15 Nov 2021 05:51:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rbjM=QC=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mmUtw-0007qK-0r
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 05:51:32 +0000
Received: from mga18.intel.com (mga18.intel.com [134.134.136.126])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1193721c-45d8-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 06:51:28 +0100 (CET)
Received: from orsmga003.jf.intel.com ([10.7.209.27])
 by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 14 Nov 2021 21:51:24 -0800
Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86])
 by orsmga003.jf.intel.com with ESMTP; 14 Nov 2021 21:51:16 -0800
Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by
 fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:51:14 -0800
Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by
 fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:51:14 -0800
Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by
 fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Sun, 14 Nov 2021 21:51:14 -0800
Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170)
 by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Sun, 14 Nov 2021 21:51:14 -0800
Received: from BN9PR11MB5433.namprd11.prod.outlook.com (2603:10b6:408:11e::13)
 by BN6PR11MB4145.namprd11.prod.outlook.com (2603:10b6:405:7b::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Mon, 15 Nov
 2021 05:51:12 +0000
Received: from BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81]) by BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81%9]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 05:51:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1193721c-45d8-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="220271420"
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="220271420"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="453716062"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ADJMyQ4NRUpHKVwcIvQTmmdFFnNxtcwtq0LhBRKcoJN29AxrKUmiL6B3X9+yrXYye5VH20dWZvqDrBMhK8QCiLHR5A6LQNvfG76IP5IMnw1v2jB8QnVd27tsVnJqzXTHhoTQDkT0jZ5clR5EoGHzK4/FodVl+X3ktMfb+VW8Ym1BHbYEonQKhsn1lXgq9nl8BpcfZ8ChJTmSllvmSRsGw7A1qdCY0dmjMFLlc0L2/+yr3Qq1X6Iok3HW79hp1vpKtUwyzZzR0U4XdFG5UGQ/rDg3U/R/GOiU0xLbUBdqOLQqd9SsNMVoIz91l7EfmCpXqln9BFnIJTC/dhOdAhUauw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RhIxBiYeDO8NqqFPqT47MOHEGkeEkcGoHosdRwk1VDQ=;
 b=OIvFfbBEaFa1NKpYgPsCD9NtZObAeTzQsvuiXYbjdH3b0OCyHRUaWXPru6JK12YDuo+5B5yhFw1TdtqrFhiLA7IwgY/TrvGaudsyvsqjhjVNpWNpzrOkjnHx4j8a7dvvmVHTDfdY2hgd5TAxBT7GSICM9K7FzHEyAqe+mi/r7w841iFUdwnWhU63nbaXD0XzhnqsOgk3OzfVuzfbUrrFo5/Jx82LUcCagsFWchwOW93wMk4Ybe9FV7nsPsOXdyQntLzUnURt2clWZtNdkn1xR7RgLRTLILFetg4XQiCaxeTFObXTS1Rp2szxbCCqIaeml0n3An8R8e/kgf26F8MNCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RhIxBiYeDO8NqqFPqT47MOHEGkeEkcGoHosdRwk1VDQ=;
 b=CAtwiJpkRzWdtYWel8VpI5q1FQgm1dyam/DnQE6AD78rvxjw1FWd4WoA7dm33MiMXzht5HkTfWBlkFNvgs0nzc7bMsaZTircIYmN1TLgP0+fUZbssmK3qWccFVIr6iR8V0EcWak77F/ew/RAL/bvh8N/QmXxB0KJsfhacne+IA8=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 4/6] VT-d: tidy domid map handling
Thread-Topic: [PATCH 4/6] VT-d: tidy domid map handling
Thread-Index: AQHX16qTgTKvSTsW3Uqd1am9I012FqwEGi+Q
Date: Mon, 15 Nov 2021 05:51:12 +0000
Message-ID: <BN9PR11MB5433E4185FF209460F28E65B8C989@BN9PR11MB5433.namprd11.prod.outlook.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <7a802a25-8d86-d1de-446d-0e2d86b5a54e@suse.com>
In-Reply-To: <7a802a25-8d86-d1de-446d-0e2d86b5a54e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f8c573c3-515e-4a3a-716a-08d9a7fbee79
x-ms-traffictypediagnostic: BN6PR11MB4145:
x-microsoft-antispam-prvs: <BN6PR11MB4145AC1DA6046847208F3F918C989@BN6PR11MB4145.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:126;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: in8/EZU7ayHw5vW5zWr6bMBorcol2DOsLD78xLpS4eZ6I6GgTsWeReaDaLBlOM7nVZiKQSnT17ZTDM7IjFhUcra4IN661dNU+sRxH6xcgn0WX7ODSw+lVbosg669P66dnYpb+6JyJdzUkBzkqiVXfTdS9K88qMOeBCQjBJYPqExbMeGQkz/stGvEz1UTivT/7ajlZoPJJO2EoCOJErtURB8n8iJso4JsMq8Le4A8zg0Zhy7DGW/n2OpOeAWgUxgo4mlKsfYqMNo/hbOG0BDK+mAfQiGexauI54q8EpmaE1HScxHG9rzo17tz7hEaMuTC6IJGoYWjGKm2MgZroDaMOMWzNC95PpdKeG8q/GhJSo+2dQKfpBC07Y9kyFZQEhjftpe27xY+Ft95iH3jmibn/vak7yizhRSB8nz/oe+bDByQO2IbO4NZJBOlnCuXjLWTroRpF7tTmN2yTc0zi8XUe34tr1NzHwFfbxrwn7zfSNYayqaH4SpnfcDS3lR4e05JWH+aLL5cQiTsk+Nc0W1tGoRx9FRzx+cojO36WUlqrCQS8reOJugL9aBVGIBoguWRssL6uHKlehSkQTo0h0MNtVvzrESmGBdwGr1uQdpFZJrHjz2W1exKCmR4rHl2i2ieBFU0b6sGV4L6yo4EpMZJwknQjiSdGu14/YxyTt202AkzbhBCx8xkdjijkI+Xeu3umvuwzv7oxzGWyOeyhQF0sg==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5433.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66556008)(66476007)(64756008)(66446008)(26005)(7696005)(52536014)(8676002)(8936002)(9686003)(508600001)(316002)(2906002)(5660300002)(71200400001)(76116006)(186003)(66946007)(38070700005)(86362001)(83380400001)(82960400001)(6506007)(55016002)(110136005)(38100700002)(33656002)(122000001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZFFTWVVUNGVvcnZ0ekpGQnMrZURyNFYrbnpIcEJyNW5TWXpuZGZKaithYXV4?=
 =?utf-8?B?SFNqam0wTERBazdTRmpsYVdjcUZlK096SlR2VStYbWM5cTFIMWJyQnFyVnpr?=
 =?utf-8?B?cWdtMHAxRzlYbjVBN1ZYOVBKMy9QQldtblRDU0paZzJqWlJlOE4wYm1sYmVj?=
 =?utf-8?B?dFVpRlVHd2VDM1gyam85ZG9BempvbTZPREpSMThWTkFPRTNUWjd0NnZIcFV0?=
 =?utf-8?B?UERTeHpMVW8rSXBrM3ptcDRoZjY2Zy9MZi9TZ2RoQytyVWF1N29BQkVEemtm?=
 =?utf-8?B?VHRzQUNVaXBkUjVjQ1FmQjJ0U0JOWGk3TGVQV2dkTEtXSDdCaUljdlBGQ1dq?=
 =?utf-8?B?QmVtT210TXg3K0dhNjhRUXltdWx4WmtoYWtYWHVMaXpxOHpFbHpLTmhUZVFZ?=
 =?utf-8?B?d2Jzc0RkRVUrTFNuNWQyczM1YS9pM08yTWZiUDBSdUdneDIzWnh2SWZJZzcy?=
 =?utf-8?B?Zk55UmNOU2JpaUxYNGFSVVlDRkcwN0pRN29Ddmh0dksvQkJSRDc3VHdaTEdR?=
 =?utf-8?B?cWlrcFRoemNwMmh4THdsSTZPalN6TlRVcTg3Rkg5R0QrSU14RWpkY3JvaGlj?=
 =?utf-8?B?d25WT1NnbXdKTE1TenBYN1ZOY0R6bWxlU0JPR1c4YnE5Q0xuMHBmVHRyNmhP?=
 =?utf-8?B?QU1ISmwwUFc3WlJyN2JibEtOaEJka2J5ZDh1OGlSQVhRdUFGSy9UdHNSU2NE?=
 =?utf-8?B?MXpqeDVuQVM0dDJLRDdGUVhMdGkwVTVsTm5uZERlck9pRlExL1QvYkhIQ1A3?=
 =?utf-8?B?c1Fya0VwOHVXYWt1cDdBOVEwdEFlK2tVcDdSejBtUUo2d1VYVldXZUtHZGJ3?=
 =?utf-8?B?VVZ0dUY4cnE1UVFlQXVibmhzZ1JRRURQMGtNcFhrOUxMcEM3TEhRbTFvVm53?=
 =?utf-8?B?VDRNNndwQXh4dExGTllTN2hPM211cHdGU0xDdkdpTXpSR0lDSFJncEZzbklP?=
 =?utf-8?B?OUJMVkRmYzd1Sk1tdlNPcDBqKzVjUVorUENWblIrc0JwV25HNXVZZFh5YlZW?=
 =?utf-8?B?QVhqRHAwYXY3VW4xcXJXSjR4OHMxYllUSTFScUZ3eDdsbWQraUhsZEZFblFQ?=
 =?utf-8?B?SHBQTWRXNk14eXNFUXhNRjM2eFozZmVWMDluODRLQ1V2emFLc0hnQmpOUUsw?=
 =?utf-8?B?aEFNMUlMbm9DTkJyMFRHNzVwSkluY3plZTlXaHJ5VXQyUXlhWW1EYmQrWjZJ?=
 =?utf-8?B?WFc0ckUweU13aVMwNTR0Vk1QTUdLVVVZUi85ZVBDUk9uRTMwZlZsZ1p0dFg1?=
 =?utf-8?B?SjVCdlJzQ1JLd1VBL2hXcE1wYkhHQWRKZm9EYSs5LzRCekxQdnYreEZwMFg2?=
 =?utf-8?B?bjVDYWVBRVR1OEZLVys3a1NtaVo5bEtyNFpsakg5bGZ0M2lVWnVXZlRWNyt6?=
 =?utf-8?B?Ym5HNldnOWgwRXB6SGFiQWpGdFUyVzRPL21sMFRuMjlkeklyUVluNTF3aitS?=
 =?utf-8?B?QmZKVkpXSEtTRm1iY1E3UG1HZW1paGt2dnFKUTdnUXljdzNuNGxuWVBUYUNH?=
 =?utf-8?B?cFpLMlBtdjdJZzlUVXRIZHU3L3pCc2NDTzMzdWJ2NWNWUHduSFo1V3ZnRk1C?=
 =?utf-8?B?d1Z0c3A5MWRIKzhVL3hobnVSb1hjWDUwdEZhOXFvVndnSDRlbXY0endRbzlj?=
 =?utf-8?B?QWZXNk02aDlUSEo5eGNWWjYxbGJjVUozb3hXbG9hZlluUmI3cHNtMUFTUk1k?=
 =?utf-8?B?U3M0R1dqbTcrTnZGREU3dnNEWXA0eXUvNFpmZG5QMFpLWWp6T2g0d0tMVjlU?=
 =?utf-8?B?c1hLMTBEU295R3ExaW5zTUVqWW1ZRHpmeUR5b2JnQ2NBUmJ6T1U1cVYrb3p4?=
 =?utf-8?B?Q3FuZU5RNndWSURhVWFiN21BVXZZcWMycGhOWXpwQ3FFcGFQZFgwd0Y4T3NX?=
 =?utf-8?B?TUFlT0plMko3NVg2S3JjT2JFampnWUlJTzJ2cEN0b1BIZEt6MXkrdjlSWGQ2?=
 =?utf-8?B?YzhLVDBEQm96MFJlWEora2RyM2FFZVoxNVZSNUJWN2h2Znp0OVJDditHcENv?=
 =?utf-8?B?NUV2N2EwSk9mQXJsWk9RQmtIQUtVV0JXK1RzcThveHFjcURMOVEwMnhEeGxk?=
 =?utf-8?B?ZlBXaGtqeGJhNHRzc281VHRqZVRQUThKaVorVHhKaVZjbWt5dlEvV3NwOVFi?=
 =?utf-8?B?cHFrQkVocENYUHcvdUNmYVJtZ0FxTHNSb3NQdFQ3R2QzbExXOE9XZlJzM0E1?=
 =?utf-8?Q?G7VaQ5p2I63x3Qhoxsv7wQg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5433.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f8c573c3-515e-4a3a-716a-08d9a7fbee79
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 05:51:12.7937
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: dSJgMiTNmYha9zBzTt3HxzJZSKw8VGcb2wq66hzNuD5t/akhmfAtxkO3wt/P8MCRW1GHo3LOEjnAZBDX0JQ4YQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB4145
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwg
Tm92ZW1iZXIgMTIsIDIwMjEgNTo0OSBQTQ0KPiANCj4gLSBDb3JyZWN0IHN0cnVjdCBmaWVsZCB0
eXBlLg0KPiAtIFVzZSB1bnNpZ25lZCBpbnQgd2hlbiB0aGF0IHN1ZmZpY2VzLg0KPiAtIEVsaW1p
bmF0ZSBhIChiYWRseSB0eXBlZCkgbG9jYWwgdmFyaWFibGUgZnJvbQ0KPiAgIGNvbnRleHRfc2V0
X2RvbWFpbl9pZCgpLg0KPiAtIERvbid0IHVzZSAtRUZBVUxUIGluYXBwcm9wcmlhdGVseS4NCj4g
LSBNb3ZlIHNldF9iaXQoKSBzdWNoIHRoYXQgaXQgd29uJ3QgYmUgZG9uZSByZWR1bmRhbnRseS4N
Cj4gLSBDb25zdGlmaWNhdGlvbi4NCj4gLSBSZWR1Y2Ugc2NvcGUgb2Ygc29tZSB2YXJpYWJsZXMu
DQo+IC0gQ29kaW5nIHN0eWxlLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPg0KDQpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBp
bnRlbC5jb20+DQoNCj4gDQo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21t
dS5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jDQo+IEBAIC02
MiwxMCArNjIsMTAgQEAgc3RhdGljIHN0cnVjdCB0YXNrbGV0IHZ0ZF9mYXVsdF90YXNrbGV0Ow0K
PiAgc3RhdGljIGludCBzZXR1cF9od2RvbV9kZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2
ICopOw0KPiAgc3RhdGljIHZvaWQgc2V0dXBfaHdkb21fcm1ycihzdHJ1Y3QgZG9tYWluICpkKTsN
Cj4gDQo+IC1zdGF0aWMgaW50IGRvbWFpbl9pb21tdV9kb21pZChzdHJ1Y3QgZG9tYWluICpkLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUp
DQo+ICtzdGF0aWMgaW50IGRvbWFpbl9pb21tdV9kb21pZChjb25zdCBzdHJ1Y3QgZG9tYWluICpk
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZ0ZF9pb21t
dSAqaW9tbXUpDQo+ICB7DQo+IC0gICAgdW5zaWduZWQgbG9uZyBucl9kb20sIGk7DQo+ICsgICAg
dW5zaWduZWQgaW50IG5yX2RvbSwgaTsNCj4gDQo+ICAgICAgbnJfZG9tID0gY2FwX25kb21zKGlv
bW11LT5jYXApOw0KPiAgICAgIGkgPSBmaW5kX2ZpcnN0X2JpdChpb21tdS0+ZG9taWRfYml0bWFw
LCBucl9kb20pOw0KPiBAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9pb21tdV9k
b21pZChzdHJ1Y3QgZG9tDQo+ICAgICAgICAgIGlmICggaW9tbXUtPmRvbWlkX21hcFtpXSA9PSBk
LT5kb21haW5faWQgKQ0KPiAgICAgICAgICAgICAgcmV0dXJuIGk7DQo+IA0KPiAtICAgICAgICBp
ID0gZmluZF9uZXh0X2JpdChpb21tdS0+ZG9taWRfYml0bWFwLCBucl9kb20sIGkrMSk7DQo+ICsg
ICAgICAgIGkgPSBmaW5kX25leHRfYml0KGlvbW11LT5kb21pZF9iaXRtYXAsIG5yX2RvbSwgaSAr
IDEpOw0KPiAgICAgIH0NCj4gDQo+ICAgICAgaWYgKCAhZC0+aXNfZHlpbmcgKQ0KPiBAQCAtODgs
NjEgKzg4LDUyIEBAIHN0YXRpYyBpbnQgZG9tYWluX2lvbW11X2RvbWlkKHN0cnVjdCBkb20NCj4g
ICNkZWZpbmUgRElEX0ZJRUxEX1dJRFRIIDE2DQo+ICAjZGVmaW5lIERJRF9ISUdIX09GRlNFVCA4
DQo+ICBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2RvbWFpbl9pZChzdHJ1Y3QgY29udGV4dF9lbnRy
eSAqY29udGV4dCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBk
b21haW4gKmQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1
Y3QgZG9tYWluICpkLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0
IHZ0ZF9pb21tdSAqaW9tbXUpDQo+ICB7DQo+IC0gICAgdW5zaWduZWQgbG9uZyBucl9kb20sIGk7
DQo+IC0gICAgaW50IGZvdW5kID0gMDsNCj4gKyAgICB1bnNpZ25lZCBpbnQgbnJfZG9tLCBpOw0K
PiANCj4gICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmlvbW11LT5sb2NrKSk7DQo+IA0KPiAg
ICAgIG5yX2RvbSA9IGNhcF9uZG9tcyhpb21tdS0+Y2FwKTsNCj4gICAgICBpID0gZmluZF9maXJz
dF9iaXQoaW9tbXUtPmRvbWlkX2JpdG1hcCwgbnJfZG9tKTsNCj4gLSAgICB3aGlsZSAoIGkgPCBu
cl9kb20gKQ0KPiAtICAgIHsNCj4gLSAgICAgICAgaWYgKCBpb21tdS0+ZG9taWRfbWFwW2ldID09
IGQtPmRvbWFpbl9pZCApDQo+IC0gICAgICAgIHsNCj4gLSAgICAgICAgICAgIGZvdW5kID0gMTsN
Cj4gLSAgICAgICAgICAgIGJyZWFrOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGkgPSBmaW5k
X25leHRfYml0KGlvbW11LT5kb21pZF9iaXRtYXAsIG5yX2RvbSwgaSsxKTsNCj4gLSAgICB9DQo+
ICsgICAgd2hpbGUgKCBpIDwgbnJfZG9tICYmIGlvbW11LT5kb21pZF9tYXBbaV0gIT0gZC0+ZG9t
YWluX2lkICkNCj4gKyAgICAgICAgaSA9IGZpbmRfbmV4dF9iaXQoaW9tbXUtPmRvbWlkX2JpdG1h
cCwgbnJfZG9tLCBpICsgMSk7DQo+IA0KPiAtICAgIGlmICggZm91bmQgPT0gMCApDQo+ICsgICAg
aWYgKCBpID49IG5yX2RvbSApDQo+ICAgICAgew0KPiAgICAgICAgICBpID0gZmluZF9maXJzdF96
ZXJvX2JpdChpb21tdS0+ZG9taWRfYml0bWFwLCBucl9kb20pOw0KPiAgICAgICAgICBpZiAoIGkg
Pj0gbnJfZG9tICkNCj4gICAgICAgICAgew0KPiAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0df
RVJSIFZURFBSRUZJWCwgIklPTU1VOiBubyBmcmVlIGRvbWFpbiBpZHNcbiIpOw0KPiAtICAgICAg
ICAgICAgcmV0dXJuIC1FRkFVTFQ7DQo+ICsgICAgICAgICAgICByZXR1cm4gLUVCVVNZOw0KPiAg
ICAgICAgICB9DQo+ICAgICAgICAgIGlvbW11LT5kb21pZF9tYXBbaV0gPSBkLT5kb21haW5faWQ7
DQo+ICsgICAgICAgIHNldF9iaXQoaSwgaW9tbXUtPmRvbWlkX2JpdG1hcCk7DQo+ICAgICAgfQ0K
PiANCj4gLSAgICBzZXRfYml0KGksIGlvbW11LT5kb21pZF9iaXRtYXApOw0KPiAgICAgIGNvbnRl
eHQtPmhpIHw9IChpICYgKCgxIDw8IERJRF9GSUVMRF9XSURUSCkgLSAxKSkgPDwgRElEX0hJR0hf
T0ZGU0VUOw0KPiAgICAgIHJldHVybiAwOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBpbnQgY29udGV4
dF9nZXRfZG9tYWluX2lkKHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LA0KPiAtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUpDQo+ICtz
dGF0aWMgaW50IGNvbnRleHRfZ2V0X2RvbWFpbl9pZChjb25zdCBzdHJ1Y3QgY29udGV4dF9lbnRy
eSAqY29udGV4dCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
cnVjdCB2dGRfaW9tbXUgKmlvbW11KQ0KPiAgew0KPiAtICAgIHVuc2lnbmVkIGxvbmcgZG9tX2lu
ZGV4LCBucl9kb207DQo+ICAgICAgaW50IGRvbWlkID0gLTE7DQo+IA0KPiAtICAgIGlmIChpb21t
dSAmJiBjb250ZXh0KQ0KPiArICAgIGlmICggaW9tbXUgJiYgY29udGV4dCApDQo+ICAgICAgew0K
PiAtICAgICAgICBucl9kb20gPSBjYXBfbmRvbXMoaW9tbXUtPmNhcCk7DQo+IC0NCj4gLSAgICAg
ICAgZG9tX2luZGV4ID0gY29udGV4dF9kb21haW5faWQoKmNvbnRleHQpOw0KPiArICAgICAgICB1
bnNpZ25lZCBpbnQgbnJfZG9tID0gY2FwX25kb21zKGlvbW11LT5jYXApOw0KPiArICAgICAgICB1
bnNpZ25lZCBpbnQgZG9tX2luZGV4ID0gY29udGV4dF9kb21haW5faWQoKmNvbnRleHQpOw0KPiAN
Cj4gICAgICAgICAgaWYgKCBkb21faW5kZXggPCBucl9kb20gJiYgaW9tbXUtPmRvbWlkX21hcCAp
DQo+ICAgICAgICAgICAgICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbZG9tX2luZGV4XTsNCj4g
ICAgICAgICAgZWxzZQ0KPiAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcgVlREUFJF
RklYLA0KPiAtICAgICAgICAgICAgICAgICAgICAiZG9tX2luZGV4ICVsdSBleGNlZWRzIG5yX2Rv
bSAlbHUgb3IgaW9tbXUgaGFzIG5vDQo+IGRvbWlkX21hcFxuIiwNCj4gKyAgICAgICAgICAgICAg
ICAgICAgImRvbV9pbmRleCAldSBleGNlZWRzIG5yX2RvbSAldSBvciBpb21tdSBoYXMgbm8NCj4g
ZG9taWRfbWFwXG4iLA0KPiAgICAgICAgICAgICAgICAgICAgICBkb21faW5kZXgsIG5yX2RvbSk7
DQo+ICAgICAgfQ0KPiArDQo+ICAgICAgcmV0dXJuIGRvbWlkOw0KPiAgfQ0KPiANCj4gQEAgLTEz
MDIsNyArMTI5Myw3IEBAIGludCBfX2luaXQgaW9tbXVfYWxsb2Moc3RydWN0IGFjcGlfZHJoZF8N
Cj4gICAgICBpZiAoICFpb21tdS0+ZG9taWRfYml0bWFwICkNCj4gICAgICAgICAgcmV0dXJuIC1F
Tk9NRU07DQo+IA0KPiAtICAgIGlvbW11LT5kb21pZF9tYXAgPSB4emFsbG9jX2FycmF5KHUxNiwg
bnJfZG9tKTsNCj4gKyAgICBpb21tdS0+ZG9taWRfbWFwID0geHphbGxvY19hcnJheShkb21pZF90
LCBucl9kb20pOw0KPiAgICAgIGlmICggIWlvbW11LT5kb21pZF9tYXAgKQ0KPiAgICAgICAgICBy
ZXR1cm4gLUVOT01FTTsNCj4gDQo+IEBAIC0xNDc3LDExICsxNDY4LDEyIEBAIGludCBkb21haW5f
Y29udGV4dF9tYXBwaW5nX29uZSgNCj4gICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1h
cHBpbmdfbG9jayk7DQo+ICAgICAgfQ0KPiANCj4gLSAgICBpZiAoIGNvbnRleHRfc2V0X2RvbWFp
bl9pZChjb250ZXh0LCBkb21haW4sIGlvbW11KSApDQo+ICsgICAgcmMgPSBjb250ZXh0X3NldF9k
b21haW5faWQoY29udGV4dCwgZG9tYWluLCBpb21tdSk7DQo+ICsgICAgaWYgKCByYyApDQo+ICAg
ICAgew0KPiAgICAgICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOw0KPiAgICAgICAgICB1
bm1hcF92dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVzKTsNCj4gLSAgICAgICAgcmV0dXJu
IC1FRkFVTFQ7DQo+ICsgICAgICAgIHJldHVybiByYzsNCj4gICAgICB9DQo+IA0KPiAgICAgIGNv
bnRleHRfc2V0X2FkZHJlc3Nfd2lkdGgoKmNvbnRleHQsIGxldmVsX3RvX2FnYXcoaW9tbXUtDQo+
ID5ucl9wdF9sZXZlbHMpKTsNCj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv
bW11LmgNCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgNCj4gQEAg
LTUwNSw3ICs1MDUsNyBAQCBzdHJ1Y3QgdnRkX2lvbW11IHsNCj4gDQo+ICAgICAgc3RydWN0IGxp
c3RfaGVhZCBhdHNfZGV2aWNlczsNCj4gICAgICB1bnNpZ25lZCBsb25nICpkb21pZF9iaXRtYXA7
ICAvKiBkb21haW4gaWQgYml0bWFwICovDQo+IC0gICAgdTE2ICpkb21pZF9tYXA7ICAgICAgICAg
ICAgICAgLyogZG9tYWluIGlkIG1hcHBpbmcgYXJyYXkgKi8NCj4gKyAgICBkb21pZF90ICpkb21p
ZF9tYXA7ICAgICAgICAgICAvKiBkb21haW4gaWQgbWFwcGluZyBhcnJheSAqLw0KPiAgICAgIHVp
bnQzMl90IHZlcnNpb247DQo+ICB9Ow0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 05:54:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 05:54:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225658.389708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUwc-00005Y-6a; Mon, 15 Nov 2021 05:54:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225658.389708; Mon, 15 Nov 2021 05:54:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmUwc-00005R-3P; Mon, 15 Nov 2021 05:54:18 +0000
Received: by outflank-mailman (input) for mailman id 225658;
 Mon, 15 Nov 2021 05:54:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rbjM=QC=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mmUwa-00005H-Fi
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 05:54:16 +0000
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74f5176e-45d8-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 06:54:13 +0100 (CET)
Received: from orsmga007.jf.intel.com ([10.7.209.58])
 by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 14 Nov 2021 21:54:11 -0800
Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81])
 by orsmga007.jf.intel.com with ESMTP; 14 Nov 2021 21:54:11 -0800
Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by
 fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 21:54:10 -0800
Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by
 fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Sun, 14 Nov 2021 21:54:10 -0800
Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169)
 by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Sun, 14 Nov 2021 21:54:10 -0800
Received: from BN9PR11MB5433.namprd11.prod.outlook.com (2603:10b6:408:11e::13)
 by BN8PR11MB3698.namprd11.prod.outlook.com (2603:10b6:408:8a::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Mon, 15 Nov
 2021 05:54:07 +0000
Received: from BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81]) by BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81%9]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 05:54:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74f5176e-45d8-11ec-a9d2-d9f7a1cc8784
X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="257118998"
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="257118998"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="493874120"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GScx8rPdToPM605djY6x+lOgP7z52LMOpxHbtlN2Y8P5liUGAfzRDJaYC0047EsX9c9jbwrFCiKlU7uYnwFFeXXh5dU+R6IcFR/OdCSCgS/r2X1P7r4rgsaydERSMMV4iB1WFaOxRuEGmQCEONk0C0ScGVEk81Mdj7x8L+MvDxkGFucnYlL5xJGoZ9A04yuP5+lRPFU4sPMLF3Sbj8q0S3YuPdvPrfk1EPDoNs5XYSwXM49BoaEtRsL4MeVTvPvmKGXVBw0qig7DVECpO8Ji8IzWlLejqickwcfx62Qk13ZBAZthgJbe9puG3RJQp/nGw/i9ZWOYiulY3WOwcoZdCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VVpavmkP0FeBQX2wQMFqmNj+Snyy+1Vblo4nB/C8pcU=;
 b=Cqifue8T0LdscETR5TZU+9VpolRHg3fmqxVUmP6I3KzBoB4aIxJczPzoHfvzbdsk/XHJs9Jp2iVcZkq/iwcXjJw0bQHh/K4hUioH5ROEfeb5+pN11aHeWBB3AoVmyUD8kyqPJNK1ZIk8n4br5hoZ/LPGI01bDoIe8CXzUicWKn6elln8TyngQ0R40NzSWSlM4kfhndA4WeO4k9FlAp6fkspSlAz0/a1sHVIHoIItQUXLuoJbT7L3RY0HMnlipJPaE+mwvMZROB8hh31UT2hIXT7lrAjZkOb6JPIAt1/vxqByehFRPFQGl16jDWklc9GYGEcAJqDptEOBOXZUXnggKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VVpavmkP0FeBQX2wQMFqmNj+Snyy+1Vblo4nB/C8pcU=;
 b=xJQw5rpedY7z9vbTYvN1ms9kYzqKBoFVmQGNFngExSIkvJ2Pjm9PQlnGt6lPsa43waR+ytuualmxQf4rL7eTYpbf7An8cq8E6xMazEgBnY/VDkiNMjGwLh5zc0K68EOzQH/RVdmyHp0UzLjS3Fou3oWNq09J9Y8nftLegB3Z9po=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 5/6] VT-d: introduce helper to convert DID to domid_t
Thread-Topic: [PATCH 5/6] VT-d: introduce helper to convert DID to domid_t
Thread-Index: AQHX16qieR9jhpz27Ey6PyooEs35QawEGvOw
Date: Mon, 15 Nov 2021 05:54:07 +0000
Message-ID: <BN9PR11MB54338FBBA9F897FCFCBC6F7B8C989@BN9PR11MB5433.namprd11.prod.outlook.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <ff49be66-1d4f-9e1b-95ac-b445eef29d41@suse.com>
In-Reply-To: <ff49be66-1d4f-9e1b-95ac-b445eef29d41@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 4da4b653-0403-49dd-6e15-08d9a7fc565e
x-ms-traffictypediagnostic: BN8PR11MB3698:
x-microsoft-antispam-prvs: <BN8PR11MB36988D6CC0DFD59CFC7238EA8C989@BN8PR11MB3698.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:800;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: esZMr71ePBEbVL/Vdu93OGINgXlT6yK8a+u3e9IhvvwYbkjbVb2FsSHjBpg7QVskOm31B76K091+2DWqmXFt/fP2/CXL7kNaXFu1ftDvsbCKc7JlH4lddGWYz/TFcrIDCI1juwhng1wIqGTOw0iwlhQQ8Vu07KLo3Pl7AxUzgy0f8i5fwTSqjGipXo3pHnkKkiZPdXiXVo/0qsRnrWxbbU1kreBYom296Ubv9d3Gzm5VAqYrBYdXaE2n+a+UW4T/Wnlpfnn99gq9Q6973lW84V3J7r+o2pG2S8VI+mGXzuozHdtvcnng9MybEHS54uyp0d8ruJyk1KUlueFX3UGy9zQD+670aVHCXJEc1Yj4oyWPqcczkHedfRUPzU/xi5+CiIx/J6KtnFtwfzbl09JBKzfjhmctNswr0GIq+l6cF8x9C1xnMs6MzbVzq45naqL3MgA8wLmLoK5NyzPbzuMFQU6SaonOwkr7ynWwJKXtpjfiYWeAtk/OJxr503w7aMoXh07ltGUqcm/VhsurHUniz705P+h2kWMj8qM7tqCwEa69DYqavf6D6q6n+qgGzUoVwu8GYo6BRhyGtzrCO1glqQB0vZh5ecdOn5i50yRslQlZyBILYvyokpRAKAebyOulQvHhYkYaWEY6ZP+KMFQCMGNDop4dKaqLT/eJUOZjqjCDYAJ+eqYVwAMpHvXHC6izOVZXpRjOScqH4Xli4MRndQ==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5433.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(82960400001)(316002)(26005)(9686003)(5660300002)(86362001)(2906002)(7696005)(38070700005)(8936002)(122000001)(8676002)(76116006)(66476007)(66446008)(186003)(66556008)(64756008)(110136005)(33656002)(508600001)(66946007)(6506007)(83380400001)(52536014)(55016002)(71200400001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TFhlalc2Qk52ajNlVDB2Q1BQSEJXaUtyNFBYTGpzOTFuTU1NSzlwMHh3SVNh?=
 =?utf-8?B?Nm1oOFFwUTdwbXNMdUZYbzRkQ1VUZGxFMmlVRDJNZjcrN2hOM0tjeEJSRFlh?=
 =?utf-8?B?ZndFYVlnVlZZTDJhSmEvbFFtS3lTaURaL3pVYmNOUjJlYTdxczJGUUJNeS9W?=
 =?utf-8?B?SmRFbmFMMWV5b01iOFk3M2IwVGFTUG56TVJaQ2FnUGpLQ3pZcGtIdFpPSHUy?=
 =?utf-8?B?b2ljVEZqS0kwaDh1UnlQZThGQ1ZPYVF4RFZLRU1VdHhyWVpjNzJjZ05zeWtO?=
 =?utf-8?B?QjR1TThTSXpYYlBPNC9iUmR3VDdqR0FweElLbjVrRzZpRGtUK09mZUJtV201?=
 =?utf-8?B?UjBZbENzS3FkQUQ1R3pWSy82MTM1TnU0Rlg3WlQzQTZXVG5CL3JyVWNSQTBJ?=
 =?utf-8?B?RmRtNCtHUHlYalc5YWlQNGxiMmxHZm9tNHg5VHlmZkRvR3JTZFB0MFRIMVNj?=
 =?utf-8?B?aGp4a251TzduZVpURms5c2FHdGlQUHpDY1dIdEcrR3ZuMkVvMzBrU1FERitW?=
 =?utf-8?B?Ty9RVEJrcDhod2F4Z1g1Q1VOYmFvVlViSzlmWGt5MG1KYTQ5eGtTdkc1bEF4?=
 =?utf-8?B?b0Z2d01Va0hydUhzenNXVjNsSlV5T0FhN056VEdHQWhnbUF6UkZiODN2UWFZ?=
 =?utf-8?B?TW1qa0NuWGtPa1NubVB3azc3MjBDR3VxKzJhVkp4aVdlWmtyRFljTVhjYjd2?=
 =?utf-8?B?QTN5cVVsY0YrT0hJS2JQZWNsbHEza25EMGIwWVJWa1BxT0JnYXZFZ2dDdHRB?=
 =?utf-8?B?b1pUNFl4RkZZblU5dFZtOUNlbHpYaFMxRkNPUmQ5NXF1YTAxd3QxUGU2cGpX?=
 =?utf-8?B?MHVZWFNIMWhmTU1aQ1F4YWhQSFpnamZPbjhXWS9iYmx3aVluTWYyS3lXVVAv?=
 =?utf-8?B?SEZoY2w2dW8zcTRRblRZUjBqUDFvcEROdit0M0U2K3BYaENNYzRhRUNmZE1u?=
 =?utf-8?B?OXFQL0R2NzNQSHpXM0VXMDVqWkhlWFk3NVh5SlZWQlJXamlkNXV4WjRqKzBO?=
 =?utf-8?B?MHNGQjlMbzliZFkzRFl2Mk15QWRnZEhOMmYrUTFoOFFtSmZ3d2ViRTNhcDkx?=
 =?utf-8?B?eVVyd3VXNVZ1TldwdjdrUmN1a1MrUlBESlltVjJFeXpTSldDQytCbjh0TURO?=
 =?utf-8?B?N2VrOEZSL3I1YWpyVUt6M05XbW9DL0c4MjYzdlhOOFBiMzFidllyRmJIU0ZS?=
 =?utf-8?B?NTNNZmpGQnN6TFVLdXdIeXZLRkFvSEdVQjdGWS8yQzhMQWcydkoya1ZJdzVj?=
 =?utf-8?B?RVNZVmRyZjhtMnhnUGdjQVcyMzRrVk9FV2dNRVlPNFMxbjhHR1JkNlBaY3NM?=
 =?utf-8?B?Q3lmMFRjbHV6MFg3OHU5dmdUSTVHWE1BV0xLYmdVT0ZmbGN6c1BNZUpJOWZh?=
 =?utf-8?B?OGl1WVUwTHdUKzg0d09Ga2JJcWNJcCtuY1NwWU5DYlRMckRobi92RVl3T2cr?=
 =?utf-8?B?U2tkSlFBK05sVGN3R3g0dTFUWW56dzl3eWNtS3AyRnI5blpJelJlZjNuRXVE?=
 =?utf-8?B?Vis0QkNIUFRBUFo2azY1azJoTW44bkdtdkV3cDhiOFJSV21pU2t5ZHZqUEUz?=
 =?utf-8?B?RlM1My9XRDNTS2Z3dWlWVW0yalBDUVl2M1dPUEVyZ0FKYU53VDAzdDh1by82?=
 =?utf-8?B?VmZWejNRYUQ0N1h2VG5tazJ2ZVRrZ2M3WjE3dEIvQVVISW4zMXczZzBOc0VZ?=
 =?utf-8?B?d2IrY3JHazE4OS9IcytWeW9USklvUmc5a3YxVXIxMXA5eStkdFdLNy9YOVlJ?=
 =?utf-8?B?Q3BxVUZETmhwRHBIdFhGc0RLbkVYQWs3VVFsZ1N3ZVVsb3phcVQ3UG80dWFz?=
 =?utf-8?B?QXpyUTRJMTNaODhrU2xLQUNNRytNZ1J2eGtMMlkrWTFRZGFjVDNHd1hnckVP?=
 =?utf-8?B?WDR2QkIzVmhQVWVES3paWEtYZmdzdHM5WTMyNExzS0U4RjEwdk1pTkFLcEty?=
 =?utf-8?B?bFVxRnZpQWgrQy93emFEM2dGT1JYRk1MWEdZQkpNSmZaejVNd1E3Q3Uvb04z?=
 =?utf-8?B?RVN3S1hvNm1kQVd4WW1ubmt3MGZzMWhFWlVWTjd2K3VIMHlDUDE0azFGYURL?=
 =?utf-8?B?b3ROZUVTczlXaS8wNnp2NDM5VU1OSjVLeHh6RU8yVW9ia1hMdC9haGt6MVc1?=
 =?utf-8?B?SVhvenV4TFl3Q3FGZUFESzY2NVNZSFd6bHgrbGdhakZpN1g5K0l0RDV4b2h2?=
 =?utf-8?Q?tfbIUVqwHWkycGv9uUScMC8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5433.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4da4b653-0403-49dd-6e15-08d9a7fc565e
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 05:54:07.1127
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 64c2kEVfkZWGmK4H21G5K/lUPXVmCC2G5d6BFpkEnhs4H1uic/bsHZzM846fsaD92YPryT5psEyNlhaiBYPQDg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR11MB3698
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwg
Tm92ZW1iZXIgMTIsIDIwMjEgNTo1MCBQTQ0KPiANCj4gVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBv
ZiBhZGRpbmcgYW5vdGhlciAidHJhbnNsYXRpb24iIG1ldGhvZC4gVGFrZSB0aGUNCj4gY29tYmlu
YXRpb24gb2YgdGhlIGV4dHJhIHZhbGlkYXRpb24gYm90aCBwcmV2aW91c2x5IG9wZW4tY29kZWQg
aGF2ZSBiZWVuDQo+IGRvaW5nOiBCb3VuZHMgY2hlY2sgYW5kIGJpdG1hcCBjaGVjay4gQnV0IGRv
bid0IHByb3BhZ2F0ZSB0aGUgcHJldmlvdXMNCj4gcG9pbnRsZXNzIGNoZWNrIG9mIHdoZXRoZXIg
LT5kb21pZF9tYXBbXSB3YXMgYWN0dWFsbHkgYWxsb2NhdGVkLCBhcw0KPiBmYWlsdXJlIHRoZXJl
IHdvdWxkIGxlYWQgdG8gb3ZlcmFsbCBmYWlsdXJlIG9mIElPTU1VIGluaXRpYWxpemF0aW9uDQo+
IGFueXdheS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4NCg0KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPg0K
DQo+IA0KPiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmgNCj4gKysr
IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oDQo+IEBAIC00NSw2ICs0NSw4
IEBAIHZvaWQgZGlzYWJsZV9pbnRyZW1hcChzdHJ1Y3QgdnRkX2lvbW11ICoNCj4gIGludCBpb21t
dV9hbGxvYyhzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQpOw0KPiAgdm9pZCBpb21tdV9mcmVl
KHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZCk7DQo+IA0KPiArZG9taWRfdCBkaWRfdG9fZG9t
YWluX2lkKGNvbnN0IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LCB1bnNpZ25lZCBpbnQNCj4gZGlk
KTsNCj4gKw0KPiAgaW50IGlvbW11X2ZsdXNoX2llY19nbG9iYWwoc3RydWN0IHZ0ZF9pb21tdSAq
aW9tbXUpOw0KPiAgaW50IGlvbW11X2ZsdXNoX2llY19pbmRleChzdHJ1Y3QgdnRkX2lvbW11ICpp
b21tdSwgdTggaW0sIHUxNiBpaWR4KTsNCj4gIHZvaWQgY2xlYXJfZmF1bHRfYml0cyhzdHJ1Y3Qg
dnRkX2lvbW11ICppb21tdSk7DQo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p
b21tdS5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jDQo+IEBA
IC0xMjMsMTUgKzEyMywxNiBAQCBzdGF0aWMgaW50IGNvbnRleHRfZ2V0X2RvbWFpbl9pZChjb25z
dCBzDQo+IA0KPiAgICAgIGlmICggaW9tbXUgJiYgY29udGV4dCApDQo+ICAgICAgew0KPiAtICAg
ICAgICB1bnNpZ25lZCBpbnQgbnJfZG9tID0gY2FwX25kb21zKGlvbW11LT5jYXApOw0KPiAgICAg
ICAgICB1bnNpZ25lZCBpbnQgZG9tX2luZGV4ID0gY29udGV4dF9kb21haW5faWQoKmNvbnRleHQp
Ow0KPiANCj4gLSAgICAgICAgaWYgKCBkb21faW5kZXggPCBucl9kb20gJiYgaW9tbXUtPmRvbWlk
X21hcCApDQo+IC0gICAgICAgICAgICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbZG9tX2luZGV4
XTsNCj4gLSAgICAgICAgZWxzZQ0KPiArICAgICAgICBkb21pZCA9IGRpZF90b19kb21haW5faWQo
aW9tbXUsIGRvbV9pbmRleCk7DQo+ICsgICAgICAgIGlmICggZG9taWQgPT0gRE9NSURfSU5WQUxJ
RCApDQo+ICsgICAgICAgIHsNCj4gICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHIFZU
RFBSRUZJWCwNCj4gLSAgICAgICAgICAgICAgICAgICAgImRvbV9pbmRleCAldSBleGNlZWRzIG5y
X2RvbSAldSBvciBpb21tdSBoYXMgbm8NCj4gZG9taWRfbWFwXG4iLA0KPiAtICAgICAgICAgICAg
ICAgICAgICBkb21faW5kZXgsIG5yX2RvbSk7DQo+ICsgICAgICAgICAgICAgICAgICAgICJubyBk
b21pZCBmb3IgZGlkICV1IChucl9kb20gJXUpXG4iLA0KPiArICAgICAgICAgICAgICAgICAgICBk
b21faW5kZXgsIGNhcF9uZG9tcyhpb21tdS0+Y2FwKSk7DQo+ICsgICAgICAgICAgICBkb21pZCA9
IC0xOw0KPiArICAgICAgICB9DQo+ICAgICAgfQ0KPiANCj4gICAgICByZXR1cm4gZG9taWQ7DQo+
IEBAIC0xOTMsNiArMTk0LDE0IEBAIHN0YXRpYyB2b2lkIGNoZWNrX2NsZWFudXBfZG9taWRfbWFw
KHN0cnUNCj4gICAgICB9DQo+ICB9DQo+IA0KPiArZG9taWRfdCBkaWRfdG9fZG9tYWluX2lkKGNv
bnN0IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LCB1bnNpZ25lZCBpbnQNCj4gZGlkKQ0KPiArew0K
PiArICAgIGlmICggZGlkID49IGNhcF9uZG9tcyhpb21tdS0+Y2FwKSB8fCAhdGVzdF9iaXQoZGlk
LCBpb21tdS0NCj4gPmRvbWlkX2JpdG1hcCkgKQ0KPiArICAgICAgICByZXR1cm4gRE9NSURfSU5W
QUxJRDsNCj4gKw0KPiArICAgIHJldHVybiBpb21tdS0+ZG9taWRfbWFwW2RpZF07DQo+ICt9DQo+
ICsNCj4gIHN0YXRpYyB2b2lkIHN5bmNfY2FjaGUoY29uc3Qgdm9pZCAqYWRkciwgdW5zaWduZWQg
aW50IHNpemUpDQo+ICB7DQo+ICAgICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xmbHVzaF9zaXpl
ID0gMDsNCj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jDQo+ICsr
KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYw0KPiBAQCAtMjI5LDEwICsy
MjksNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBkZXZfaW52YWxpZGF0ZV9zDQo+ICAgICAg
cmMgPSBxdWV1ZV9pbnZhbGlkYXRlX3dhaXQoaW9tbXUsIDAsIDEsIDEsIDEpOw0KPiAgICAgIGlm
ICggcmMgPT0gLUVUSU1FRE9VVCApDQo+ICAgICAgew0KPiAtICAgICAgICBzdHJ1Y3QgZG9tYWlu
ICpkID0gTlVMTDsNCj4gLQ0KPiAtICAgICAgICBpZiAoIHRlc3RfYml0KGRpZCwgaW9tbXUtPmRv
bWlkX2JpdG1hcCkgKQ0KPiAtICAgICAgICAgICAgZCA9IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChp
b21tdS0+ZG9taWRfbWFwW2RpZF0pOw0KPiArICAgICAgICBzdHJ1Y3QgZG9tYWluICpkID0gcmN1
X2xvY2tfZG9tYWluX2J5X2lkKGRpZF90b19kb21haW5faWQoaW9tbXUsDQo+IGRpZCkpOw0KPiAN
Cj4gICAgICAgICAgLyoNCj4gICAgICAgICAgICogSW4gY2FzZSB0aGUgZG9tYWluIGhhcyBiZWVu
IGZyZWVkIG9yIHRoZSBJT01NVSBkb21pZCBiaXRtYXAgaXMNCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 06:18:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 06:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225663.389719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmVJi-0002Zs-50; Mon, 15 Nov 2021 06:18:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225663.389719; Mon, 15 Nov 2021 06:18:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmVJi-0002Zl-1Q; Mon, 15 Nov 2021 06:18:10 +0000
Received: by outflank-mailman (input) for mailman id 225663;
 Mon, 15 Nov 2021 06:18:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rbjM=QC=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mmVJf-0002Zf-RY
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 06:18:07 +0000
Received: from mga06.intel.com (mga06.intel.com [134.134.136.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c9a7bea9-45db-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 07:18:04 +0100 (CET)
Received: from orsmga008.jf.intel.com ([10.7.209.65])
 by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 14 Nov 2021 22:18:02 -0800
Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15])
 by orsmga008.jf.intel.com with ESMTP; 14 Nov 2021 22:18:02 -0800
Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by
 ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 22:18:02 -0800
Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by
 ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Sun, 14 Nov 2021 22:18:02 -0800
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Sun, 14 Nov 2021 22:18:02 -0800
Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169)
 by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Sun, 14 Nov 2021 22:18:01 -0800
Received: from BN9PR11MB5433.namprd11.prod.outlook.com (2603:10b6:408:11e::13)
 by BN8PR11MB3842.namprd11.prod.outlook.com (2603:10b6:408:82::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 06:18:00 +0000
Received: from BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81]) by BN9PR11MB5433.namprd11.prod.outlook.com
 ([fe80::ecad:62e1:bab9:ac81%9]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 06:18:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c9a7bea9-45db-11ec-a9d2-d9f7a1cc8784
X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="294206443"
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="294206443"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; 
   d="scan'208";a="505784370"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VJkFpouZiJlUNJI7krCoGfYqFJj1SMMuD/k1Qzm7SVCd/efysMehMFjlDfMKdFnmCdV6ITweWys5JdXR5JR/MCexfpY+FIRW/Hozd+839aldaXrPcZnTE/n2VPLxgyo3rNsMmd8xu8bwaD5pmlvza++GSp6H/GHH+Tgv+sYn/Q4FeHLOhmgpLV4I+R5QV68FAz69U8XcnmZYD8DtRu51Q5GV9i5HKPCVPNBqR/beTMDA5MlOVYo4DuREFMg5pJNlw0ps1VDd5++eA6hJ7AoqMaFwaA9vSkDeSdQWEN2VetcJ6uZkVFUQD76I/Q5JSbwPi1fgl7eQs7YnfioTgEKxSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0vJYdC9UmRXVosbZeop0uhLXUgUNFr4BZOaFjHp9LKI=;
 b=NzFfxX1X742z7crdvpwWUyK6awMmKcX8FfE7xJGQxGsSNN6r86toCPFN6sRFRT7oE2aVvAa3z9x02IT1g7HJoQNGlhPjiggFG+LmQEviH+w9f2iVteA+SJFO4sKDZvSISpGomopMy5/GAw0q7uCubAVD+TUpcI1XBiM6SE+YV7YhrW4duUnREvHNo6wjbek/tua9Fe3aFOBptPp9x92ZIfhNT21gwS8K09ozfwLbJXvsMuZzRfUoQNuUjYIMI/YGvxc9QIJm0gY8GfhlDWLBisjNtuuiItLUExuIUu5x1CY5dItfsq0bSakAq5VwyXKYg37oCpuiKh7AMpXvNrkd7g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0vJYdC9UmRXVosbZeop0uhLXUgUNFr4BZOaFjHp9LKI=;
 b=bzey2boJvsPocbWY5ztPqxiXLLaB66TRmWaKQoT3IYF8Hr4NLisginybzOWoiJt5wfGnrmf2Z1jAIV5fIsOJ83DS3jjp6VYQBlDmHMe0oG9jgXQ5xGQqEpJVCmkD8F+Auuv1gbiQrzEKsPFny/xI7SVmBxZZdVm+k5Elq3PgjCU=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 6/6] VT-d: avoid allocating domid_{bit,}map[] when
 possible
Thread-Topic: [PATCH 6/6] VT-d: avoid allocating domid_{bit,}map[] when
 possible
Thread-Index: AQHX16q9WmxQsBgQrkWPsFUCOcTQhKwEGx2A
Date: Mon, 15 Nov 2021 06:18:00 +0000
Message-ID: <BN9PR11MB5433479ED71950BF52AFB8AD8C989@BN9PR11MB5433.namprd11.prod.outlook.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <74734976-b5a0-3372-7c7c-9f866945777c@suse.com>
In-Reply-To: <74734976-b5a0-3372-7c7c-9f866945777c@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 27630fe5-98cd-4ad9-a472-08d9a7ffacb0
x-ms-traffictypediagnostic: BN8PR11MB3842:
x-microsoft-antispam-prvs: <BN8PR11MB3842D444E5C966ECACEF84DD8C989@BN8PR11MB3842.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: hrITrmQ0w3WmOAkPncNBOvyCSZNxfACLqPzCWqtXHphH2VmPs8T2eCRa4+1l/LyggTEDzA1lxmGbmAAdVKKoq3Hirhh8bdl53Ux1Inl2p0YRexlVzD0OXDJ6Ik1aNAcDsebUkVoc1C7oscuTgyHFeXI7rsk0Y6iJI7N7zXSLGZftbJm9Nj54kZmUJYPIqKlIgswyEltscazp8QiUUmV/Gwig9ZcYq5esQS7KlofMGMdm9O8Xc/hdBurRMmRz3X/fKAI+ZuWDetxPgRHP222s7XWkOpcM3B+fHsKAdKyCLBSAT3weUs+CyEHi4CgcAtoXqD9aXfqE9G858wAVzhIGISlodtHF+0vF+Cm/ymZEyWebIZHcumpYdaoLnvVCWmsnP7wzBxDXKd/VE0oC9wUDNs1fB3rFxGm4VFGWtfAw8h3An86ognpOHhzaD5W6s/7YZvdXMFOUcvWzJvAeJHKN+DoDgZq7yF1Cj4DcNxYXaM8KJ4Zq6osDKEw7PG9woWHt1GW0jZe0+BAUgJ5icH9jn7fke5sHHIkOYoYCl3cDRhbzDPRaWbJnGonryVC+iS+V5x5fW3PHdTQO2yJaf6iqgSVL6iommIhouT/dMs70sN3KKROd3I3VcWnwrtc1cYzB7CQxOLKKALI+BLc0C5XSAoqzI0+QRJFZHFtOwissB8xNx4/REPh1VM4wqPZrPJoyBxEeubfmdSCAe1kbmnM1Qw==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5433.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(76116006)(64756008)(66446008)(7696005)(55016002)(66476007)(38100700002)(122000001)(71200400001)(110136005)(316002)(508600001)(6506007)(9686003)(5660300002)(33656002)(2906002)(66946007)(86362001)(52536014)(66556008)(38070700005)(8676002)(186003)(82960400001)(26005);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NS8yZStGakZTclBPemhWWVZFdFNtRkVqdmc1RDBKNEdmcXcxQlNIaytBNEpS?=
 =?utf-8?B?bGpiK2lHaGU2U3BJUXBhR1BDeHFkZWhHQTZ2SUdkYzREaG1qakhaRVF4ZzUr?=
 =?utf-8?B?dk1nSitZN2x1MGVsejZ2Vmc2RkduQ3JhbzVKMXN1WHprVm5HcG03QU1qKzJs?=
 =?utf-8?B?VTVKeWw4ZVFtNmNzclZCbWxuRUtVZFBHcURuUENZVGoxelBKZ1prZ0cvYWha?=
 =?utf-8?B?WTR0YWw0dW9TcnA3WkdpcjlNWXZ1RDFWd1pRb1IvZnZOQ2R0ZmVNdFAwaUxZ?=
 =?utf-8?B?R2FhS2lRYmVIOTdGSmdLOUgyaVNVSmdKL0Y5bDZzVUduL0dkYnc1TFJmWjV1?=
 =?utf-8?B?ektOZlhDZGw4SkJkNVdPNDJlY1ZqSDdERzYrN1VuYjk3c21JVTI3b2psM0Q3?=
 =?utf-8?B?Q1hPM2lZLytWNlNsbUQ4TjV4RmpoZzRHNDYvVk1CSDZnQ2tLYitLZHlpdTY3?=
 =?utf-8?B?U1ZPV3hkQkRhWlhOR3puMHBmMUQ0dlJsZE5rSzdiVVY4Y2lsdXlrNzkxUndC?=
 =?utf-8?B?bVlUVWplNFdaU1RuWGR6N2FmNU1NdmtUYithNURtaWNQWmFyODJLT3lkUnN2?=
 =?utf-8?B?bDM3QkNsMlo4ckk5TTdJNTZBWVpzYzVyR0kvcXJoZStRMHlSWlZkK2tnUFlr?=
 =?utf-8?B?ekhJcXhrMGxKQnBuNkZOWHd1cVY2SXpnRDRGb3RJZlU4ZldyWkVZUUpnMWVm?=
 =?utf-8?B?OTAzT1ZwZXd5S1dkc2cxWklrT09FbHBSdnRFZ0tPWXJTYTZMMkRZQVRkZUVh?=
 =?utf-8?B?QTZmbC9zK1p0OFBMWEF4TGZ4RVFGTGd1S1V5UVFrZ2dCREQrOFlJTGxCdUlj?=
 =?utf-8?B?d2h4VUloVVQvcEtLZi9jSjVwa3B1VitYRThMWkxxQXZqRDNiQ1FXQXJDdjFx?=
 =?utf-8?B?UzlqVTVxbFRVY0tSYTBCcStGbk92MFVieEJua2kzWnJUVDNOVlZqazdZOWFD?=
 =?utf-8?B?ZENDMWxBdzRJaThkbUZNaDMwd2hrNmlLMUk2Mm5jTjZ4QnBmRW1iTGoxZXJK?=
 =?utf-8?B?VitzYTN1VlhyRktaaXQrVEM3UUlEVmVKbTErSkRqenZ4TkhoQ3hkNnRCbXlz?=
 =?utf-8?B?ZjFISU5JKzVyeWlpdlJjMXZFWko3bUw5SkI2NlNmUmQ2c21GUWw3V2dPWisr?=
 =?utf-8?B?dlJNTmRpWTc1emhzY2ZJbmI1dlEyTllKdG9iOWkwWXZVVHVWOGwzbVkvSE03?=
 =?utf-8?B?Y0hzVmh6MWdYMmdWZkRnSjJwNUVNNzF3NEZLSFJMU0t6RkRIZjMwcHQxSTVr?=
 =?utf-8?B?akl5UVN2ZkdxcXpYUkJhVVcrdktRUGpVNDFBSU9iWHl1eXBsby9HTy9rcnRi?=
 =?utf-8?B?U2F5TUYwbERkZ2MxNk5XTUJFdGhlelAydkZLRjhXd1ExMHIreEpVaUdBcGFt?=
 =?utf-8?B?Vkk4L3JIWDRtOTFKZkZtNlprR21tR3JHZFVMcDM5R1pyamRTMzJYQmplSm04?=
 =?utf-8?B?MDA1SmlsaDRSelExdWU3SmJONTZFREd4UGMxYVBoUEo4ZVdYdENrNGdvRjBv?=
 =?utf-8?B?cGFGUFpTZmg0Q2NUWUtXRWhHeG02a1l5Nms1U1hxbEZBVFZhWk1yQ1Z0K3lM?=
 =?utf-8?B?d0Ywcm9LeXlYM0lCelJCaWVURXpVUTJEOGltYUhUeWdxOXAvei96YjFEL2J6?=
 =?utf-8?B?N0l3eHVNZDFZdEFuRzRSL1VsVnZhamZiUk1KSXh2dFVlS3dzZ3I4VXpjdk5R?=
 =?utf-8?B?dEZsUWFIQi80MFJLZGlQeXlPV29DaG1EajdUNms2MXZRUkNMcURXbE1qWDRZ?=
 =?utf-8?B?N1dkMmg4SjVsYitBNnkrSkVkNHNQdC81WGJIaUJnQ1JXTUFpN2VpcXBkWTVD?=
 =?utf-8?B?T3lZaldSWFRqL29pam11ViszTEpOZWJpbHBFZTRjdm9lbVo3bnZqWmU4WEts?=
 =?utf-8?B?cS90ellWYlBXWmFGVUFyT1V3YlNVbUIzMjBHTlN2N2JsTkQ0OFJTd1B4emps?=
 =?utf-8?B?NUxkdjhtTURnUGxYK2F4NTJISU9CbkRlalkvYVVRVEFpQVhlZTJHVENGaVZN?=
 =?utf-8?B?R2lJeTBrTGllL0VrV3U3Yk5nclU0dVJGcXl6Yi9aSE5ZT3FxdmJ0dnQ3c2Er?=
 =?utf-8?B?WmZ4eU1JbE42TzFnd1BKYjZvaE9VWFVsNlV2RnVnekJ2TGdEOG5SVjU0UklZ?=
 =?utf-8?B?SjkvNzViT3BQOGcxTmgyM0d4emdXY3g3dnRtb3FZUFJVWWRXQlpzRERyNHYz?=
 =?utf-8?Q?OAjWUagVX8cPH6l1/bxNAoE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5433.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 27630fe5-98cd-4ad9-a472-08d9a7ffacb0
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 06:18:00.4227
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: CT/zTPUSjL7OzE3sy3qvB5hUvvkxdjufmV3uWBYhIEX3JcqNjVp5ZNWvDuw1mNnLT79fgbyReeB1KmSWRth84g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR11MB3842
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwg
Tm92ZW1iZXIgMTIsIDIwMjEgNTo1MCBQTQ0KPiANCj4gV2hlbiBhbiBJT01NVSBpbXBsZW1lbnRz
IHRoZSBmdWxsIDE2IGJpdHMgd29ydGggb2YgRElEIGluIGNvbnRleHQNCj4gZW50cmllcywgdGhl
cmUncyBubyBwb2ludCBnb2luZyB0aHJvdWdoIGEgbWVtb3J5IGJhc2UgdHJhbnNsYXRpb24gdGFi
bGUuDQo+IEZvciBJT01NVXMgbm90IHVzaW5nIENhY2hpbmcgTW9kZSB3ZSBjYW4gc2ltcGx5IHVz
ZSB0aGUgZG9tYWluIElEcw0KPiB2ZXJiYXRpbSwgd2hpbGUgZm9yIENhY2hpbmcgTW9kZSB3ZSBu
ZWVkIHRvIGF2b2lkIERJRCAwLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPg0KPiAtLS0NCj4gRm9yIHRoZSBjYXNlIHdoZXJlIHRoZSBtZW1vcnkg
dGFibGVzIGFyZSBuZWVkZWQsIHh2emFsbG9jX2FycmF5KCkgd291bGQNCj4gb2YgY291cnNlIGJl
IGFuIG9wdGlvbiB0byB1c2UgaGVyZSBhcyB3ZWxsLCBkZXNwaXRlIHRoaXMgYmVpbmcgYm9vdCB0
aW1lDQo+IGFsbG9jYXRpb25zLiBZZXQgdGhlIGludHJvZHVjdGlvbiBvZiB4dm1hbGxvYygpIGV0
IGFsIGNvbnRpbnVlcyB0byBiZQ0KPiBzdHVjayAuLi4NCj4gDQo+IC0tLSBhL3hlbi9kcml2ZXJz
L3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo
L3Z0ZC9pb21tdS5jDQo+IEBAIC02MiwxMSArNjIsMzIgQEAgc3RhdGljIHN0cnVjdCB0YXNrbGV0
IHZ0ZF9mYXVsdF90YXNrbGV0Ow0KPiAgc3RhdGljIGludCBzZXR1cF9od2RvbV9kZXZpY2UodTgg
ZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICopOw0KPiAgc3RhdGljIHZvaWQgc2V0dXBfaHdkb21fcm1y
cihzdHJ1Y3QgZG9tYWluICpkKTsNCj4gDQo+ICtzdGF0aWMgYm9vbCBkb21pZF9tYXBwaW5nKGNv
bnN0IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQ0KPiArew0KPiArICAgIHJldHVybiAoY29uc3Qg
dm9pZCAqKWlvbW11LT5kb21pZF9iaXRtYXAgIT0gKGNvbnN0IHZvaWQgKilpb21tdS0NCj4gPmRv
bWlkX21hcDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGRvbWlkX3QgY29udmVydF9kb21pZChjb25z
dCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSwgZG9taWRfdA0KPiBkb21pZCkNCj4gK3sNCj4gKyAg
ICAvKg0KPiArICAgICAqIFdoaWxlIHdlIG5lZWQgdG8gYXZvaWQgRElEIDAgZm9yIGNhY2hpbmct
bW9kZSBJT01NVXMsIG1haW50YWluDQo+ICsgICAgICogdGhlIHByb3BlcnR5IG9mIHRoZSB0cmFu
c2Zvcm1hdGlvbiBiZWluZyB0aGUgc2FtZSBpbiBlaXRoZXINCj4gKyAgICAgKiBkaXJlY3Rpb24u
IEJ5IGNsaXBwaW5nIHRvIDE2IGJpdHMgd2UgZW5zdXJlIHRoYXQgdGhlIHJlc3VsdGluZw0KPiAr
ICAgICAqIERJRCB3aWxsIGZpdCBpbiB0aGUgcmVzcGVjdGl2ZSBjb250ZXh0IGVudHJ5IGZpZWxk
Lg0KPiArICAgICAqLw0KPiArICAgIEJVSUxEX0JVR19PTihzaXplb2YoZG9taWRfdCkgPiBzaXpl
b2YodWludDE2X3QpKTsNCj4gKw0KPiArICAgIHJldHVybiAhY2FwX2NhY2hpbmdfbW9kZShpb21t
dS0+Y2FwKSA/IGRvbWlkIDogfmRvbWlkOw0KDQpJZiBET01JRF9NQVNLIGdyb3dzIHRvIDB4RkZG
RiAodGhvdWdoIHVubGlrZWx5KSwgdGhlbiBpdCB0cmFuc2xhdGVzIA0KdG8gJzAnIHdoZW4gY2Fj
aGluZyBtb2RlIGlzIHRydWUuIFdlIG5lZWQgZXh0ZW5kIEJVSUxEX0JVR19PTigpIHRvIA0KY2hl
Y2sgRE9NSURfTUFTSyBpbiB0aGlzIGNhc2UsIHNpbmNlIGNhY2hpbmcgbW9kZSBpbXBsaWVzDQp0
b3RhbF9zaXplIG1pbnVzIG9uZSBmb3IgYXZhaWxhYmxlIGRvbWFpbiBJRHMgDQoNClRoYW5rcw0K
S2V2aW4NCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 06:43:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 06:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225668.389730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmVhi-0005ei-1W; Mon, 15 Nov 2021 06:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225668.389730; Mon, 15 Nov 2021 06:42:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmVhh-0005eb-Uo; Mon, 15 Nov 2021 06:42:57 +0000
Received: by outflank-mailman (input) for mailman id 225668;
 Mon, 15 Nov 2021 06:42:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmVhh-0005eR-8q; Mon, 15 Nov 2021 06:42:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmVhh-0001Yq-0x; Mon, 15 Nov 2021 06:42:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmVhg-0005sm-O3; Mon, 15 Nov 2021 06:42:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmVhg-0003YJ-NZ; Mon, 15 Nov 2021 06:42:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=1+G36pK9BuB8OHinT4JanWTbL+iGJZWyB4Z8aPD2Bmg=; b=uOWv7R40IEmeEWrV4nJ2/nuIrr
	TGjJypbWWEvBEUDKzrkAqO6UmXybggT43wszg+1WxQHuGMQ2afBrjmg3Q2bwSEQYlXxSGS6tgOH4Q
	/MR1TWqNC69orKspFPvsD/Rqhy0AQZCs9lOgzkQrl1OdjM1kG8fL8PGdY9yEOQk/AhnA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166146-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166146: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:allowable
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=622c72b651c85cb55bae147debc1a2fae0189b53
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Nov 2021 06:42:56 +0000

flight 166146 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166146/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10   fail REGR. vs. 165976
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                622c72b651c85cb55bae147debc1a2fae0189b53
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   13 days
Failing since        165992  2021-11-02 05:40:21 Z   13 days   20 attempts
Testing same since   166146  2021-11-14 19:41:40 Z    0 days    1 attempts

------------------------------------------------------------
2154 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 249748 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 08:15:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 08:15:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225679.389744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmX8W-00069B-8I; Mon, 15 Nov 2021 08:14:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225679.389744; Mon, 15 Nov 2021 08:14:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmX8W-000694-4p; Mon, 15 Nov 2021 08:14:44 +0000
Received: by outflank-mailman (input) for mailman id 225679;
 Mon, 15 Nov 2021 08:14:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmX8U-00068u-FS; Mon, 15 Nov 2021 08:14:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmX8U-0003Zf-8D; Mon, 15 Nov 2021 08:14:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmX8U-0003EJ-0R; Mon, 15 Nov 2021 08:14:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmX8T-0007sC-WD; Mon, 15 Nov 2021 08:14:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2HlCJ6YoCD6iCEvzmrMIGSmLP6WA6e+d6ZKahlu8aJw=; b=DVRMBWjw1YyLxai5d1qsh7XszB
	jM3zsnUe+9muYsGdag7rQymDPt2Naw9LsD7VNUc4mUzI3TAIFKfPKnz1Cc1iILzIFJFZeQlOyw9hs
	hpwsEBdUNSQlVvAjMkPn2XwU9YKHOBJ+Z+iLiYeVr0O9Z0r3ZM6gVG+IdTzhzUXU6Jjs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166148-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166148: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=df194c5c0879c2a933d6a3320268539184898830
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Nov 2021 08:14:41 +0000

flight 166148 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166148/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              df194c5c0879c2a933d6a3320268539184898830
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  493 days
Failing since        151818  2020-07-11 04:18:52 Z  492 days  478 attempts
Testing same since   166137  2021-11-13 04:18:56 Z    2 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 83222 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 09:25:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 09:25:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225686.389761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYER-0004IS-HY; Mon, 15 Nov 2021 09:24:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225686.389761; Mon, 15 Nov 2021 09:24:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYER-0004IL-Dq; Mon, 15 Nov 2021 09:24:55 +0000
Received: by outflank-mailman (input) for mailman id 225686;
 Mon, 15 Nov 2021 09:24:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmYEP-0004IB-KB; Mon, 15 Nov 2021 09:24:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmYEP-0004iD-BN; Mon, 15 Nov 2021 09:24:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmYEO-00070Z-W5; Mon, 15 Nov 2021 09:24:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmYEO-0004Kt-VZ; Mon, 15 Nov 2021 09:24:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QzcQqgHxK0/Dbo+zemQCSQiZOKm+Q33fSYbmOS1iHwA=; b=KGfTyG/AyCT1G6m2eSAyOkubRA
	1Eo+c6RpKfCj5ZzMAofmr9rQ1XxQ02lIcuynQ6KAbP7fYLMS0lIUBZFitwxsNzqHrlGwCZ0SU8Or0
	o1asGSMbOlWGzz5YJPecRWssvow8Zvs+KiYwiGaaeD3QPvmggH0QliufzFRXz37t2G0s=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166147-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166147: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
X-Osstest-Versions-That:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Nov 2021 09:24:52 +0000

flight 166147 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166147/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166142
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166142
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166142
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166142
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166142
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166142
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166142
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166142
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166142
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166142
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166142
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166142
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6
baseline version:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6

Last test of basis   166147  2021-11-15 01:52:47 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 09:27:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 09:27:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225693.389775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYGs-0004zG-3a; Mon, 15 Nov 2021 09:27:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225693.389775; Mon, 15 Nov 2021 09:27:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYGs-0004z9-0V; Mon, 15 Nov 2021 09:27:26 +0000
Received: by outflank-mailman (input) for mailman id 225693;
 Mon, 15 Nov 2021 09:27:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmYGq-0004z1-Dd
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 09:27:24 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3bf1b98c-45f6-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 10:27:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3bf1b98c-45f6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636968442;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=d/TVxLxm2SvccpoosbeFIkT6kMsCGZZI+xX1tZZ5GqE=;
  b=W0amNG0Gd9nTNeRxZHW6iZITW1LeZVeZmbD7TUkUdM0+HPShckstYSvY
   RexGlLpF2GKr88j7oLaUH8luMjWK2hO/N1SX9B4NEyK+a2HOsrzMDaHvS
   tflyVmJ3G6o0KsfF69aUbAwh1UfJVnDg0ylHGzaH5rN+KEyE0oUmZO/Ap
   Q=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: NpEGXB/rX/yWRBv+l7j7N/OgQ0xQ1hB1IDvuYTnPzvDfJsSVXwaaqkKwkDgEXEHSYgRWtCsUqb
 UZi0p2P0wxZ7e/pDhTo9B4tKDf4jqIg0UkHVvXBhcTA+uSQEiiyCOZa881kIdBNtIl3h4uoPhQ
 8O0FoiXuOYZqERepbu1fkSjx/NPKftwvBgOTKyWOYvxjPiQBdWLrkOZPlEMHfpFiv6f2KFCzto
 3jnBUWPbp+vnN2DkLgCiYuDgpajBu/bC9ybY+jQhFcbNv7kLDlefgKAJK6E1uG+0Q/wtSTxyxm
 LHvfLlGgLtQj9roPw3IGHung
X-SBRS: 5.1
X-MesageID: 57774110
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:PcDk76CfGy4tpRVW//jkw5YqxClBgxIJ4kV8jS/XYbTApG8hhGMAm
 jBKCGiPOK2MYzehe48lb4XioxwGsZSBn4JmQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540E87wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/zGyousJv2
 eh2sd+xWzUFDq/jyPUtTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvqVuoMBhW9YasZmAKqPP
 OQBWyJWazuaTAZiHg8oEak1pbL97pX4W2IB8w/EzUYt2EDMyCRh3b6rN8DaEvSob8hImkeTp
 krd4n/0RBodMbS32TeDt36hmOLLtSf6Q54JUq218OZwh1+ezXBVDwcZPWZXutHg1BT4AYgGb
 RVJpGx+9sDe6XBHUPG6BjydsmCVgyUYGNtCIcEK6i7d25rLtlPx6nc/chZNb9kvtckTTDMs1
 0OUk96BOQGDoIF5WlrGqO7K8Gra1Tw9aDZbOHRaFVdtD8zL+dlr1nryosBf/LlZZzEfMRX52
 Hi0oSc3nN3/ZuZbhvzgrTgrb99Bz6UlrzLZBC2KBgpJDSsjPeZJgrBEDnCBsp59wH6xFAXpg
 ZT9s5H2ABoyJZ+MjjeRZ+4GAauk4f2IWBWF3wUxTsB9qWnxpSL/FWy13N2YDB0zWirjUWW2C
 HI/RCsLvMMDVJdURfIfj32N5zQCkvG7SIWNugH8ZdtSeJlhHDJrDwk1DXN8K1vFyRB2+YlmY
 M/zWZ/1UR4yVPQ2pBLrFrx1+eJ6mUgDKZb7GMmTI+KPiuHFOhZ4iN4tbTOzUwzOxP/e/ViOr
 Y8Ab5DiJtc2eLSWXxQ7OLU7dDgiBXM6GYr3u4pQcOuCKRBhA2YvF7naxrZJRmCvt/09ej7g8
 i7vV0lG5kD4gHGbewyGZmo6MOHkXIplrGJ9NispZA76138maIepzaEea5poIuV3qL09laZ5H
 6sfZsGNIvVTUTCbqT4TWobw8d55fxOxiAPQYyf8OGojf4RtThDi88P/ele97zEHCye67JNso
 7Cp2g7Bb4AEQgBuUJTfZP61lgvjtnkBguNiGUDPJ4ALKknr9YFrLQ33j+M2fJ5QeUmSmGPC2
 l/PUxkCpOTLr4sky/XzhPiJ/9WzDu9zPktGBG2Hv7y4AjbXozi4yohaXefWIT2EDDHo+L+vb
 Pl+xu3nNKFVh05DtodxHuo5za864Nez9bZWwh49QSfOZlWvTLhhPmOHzY9EsagUnu1Vvg6/W
 0Su/NhGOOrWZJO5QQBJfAd1PP6e0fw0myXJ6aVnKUr30yZ74b6bXBgAJBKLkiFccON4PY5NL
 T3NYyLKB9hTUiYXD+s=
IronPort-HdrOrdr: A9a23:ITlECa3oI1OZp6lJLn+NPAqjBShyeYIsimQD101hICG9Lfb2qy
 n+ppgmPEHP5Qr5OEtApTiBUJPwJk800aQFm7X5Wo3SITUO2VHYV72KiLGN/9SOIVydygcw79
 YET0E6MqyNMbEYt7eK3ODbKadY/DDvysnB7o2/vhQdPT2CKZsQlzuRYjzrbHGeLzM2Y6bReq
 Dsgvau8FGbCAsqh4mAdzM4dtmGg+eOuIPtYBYACRJiwA6SjQmw4Lq/NxSDxB8RXx5G3L9nqA
 H+4kDEz5Tml8v+5g7X1mfV4ZgTsNz9yuFbDMjJrsQOMD3jhiuheYwkcbyfuzIepv2p9T8R4Z
 TxiiZlG/42x2Laf2mzrxeo8w780Aw243un8lOciWuLm72xeBsKT+56wa5JeBrQ7EQt+Ptm1r
 hQ4m6fv51LSTvdgSXU/bHzJlBXv3vxhUBnvf8YjnRZX4dbQqRWt5Yj8ERcF4pFND7m6bogDP
 JlAKjnlbhrmGuhHjPkV1RUsZ6RtixZJGbCfqFCgL3b79FupgE486NCr/Zv2kvp9/oGOu95Dq
 r/Q+NVfYp1P70rhJRGdZA8qPuMex/wqC33QRevyHTcZek60iH22tXKCItc3pDfRHVP9up1pK
 j8
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="57774110"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HZ4SmuAddvNms+TYQJu5zZUPcmAGhHv8f6zFEHOKbY7i9bBc97AtHbghQM15WlLocX/dGZjSZN6zrhxs5EviTbsbLBtW814OiBDlOqFjYVq677Ch3LPJ+TDWXhS+xh3twCsccJ4NqBH3Hy+4zy+RnvhC/EL+4uWftF4b1H4HkP6g86729NVuZfeO6Ae8tosA9IVE2YHX2ODNvmvpf0PDxdoJ8qPs6sIZ8XV4CZ6h7oKYKBx49xzB3Koe26y05sXL1hMTRYOGYzwvbYg/Adjr2RovHn6qUGLI6fQdfDpOOwJg8k+FH35qrXMsVK/0VObUwXGItIZFbR44dHyE1V/76A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pmS1lMnLnUdt7WXPvc818TlVi0YYLZq2TWXqSjbGlSk=;
 b=cVSV0D/ENIo3QAPQ+P9Zoz1PzuUHlwagTPkEkRM5OBs2JgAzPDao4S1B4vl4y1pNMBH7G/B64kIzrmUnTlyxNJaCkhvC3CCvY0mzpaA31QKcyIscu5Ww29aUK2kaHqpoah5dMbJo0tI7FtP9jHOWOqDJDdCLsEVebp61WSxuF/dMvIsIxSPxYdHEBlh2VhKR0juSJXHcu2G1y8nzvi2hYyWG/cI+sA+BTXwd31P5w6QHwkLyw6LmYAP0tMTREdW4v292YqOawKxIn++Q+RL3R3YJC42awZgyBHWpsu+nKULw8Vvpq7kC+XYCOInXefwfOF0AeqcSVpsucTRHX8gabw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pmS1lMnLnUdt7WXPvc818TlVi0YYLZq2TWXqSjbGlSk=;
 b=a21U0ZnH0KbSP4Y0QwfjSvkaOTuSB3UhEEIwQuiQVaXc98eWdGibN/Dfw+TlChMV9kYKI/FjmYDXRW0LdXO+3UYs/lj0gYIteU5zG8iqdq5JIZEqUYC50lzC1SmncQg4DkldmT/ZqLiHK6YWxEUKPbWT+O5xyzP1Uuw4IgA0/As=
Date: Mon, 15 Nov 2021 10:27:11 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<JBeulich@suse.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH 1/3] x86/cpufreq: Clean up powernow registration
Message-ID: <YZIn78EzYjI7YXC4@Air-de-Roger>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
 <20211112182818.30223-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211112182818.30223-2-andrew.cooper3@citrix.com>
X-ClientProxiedBy: MR2P264CA0039.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500::27)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1125ec18-e58a-4a19-1e8e-08d9a81a1d89
X-MS-TrafficTypeDiagnostic: DM5PR03MB2778:
X-Microsoft-Antispam-PRVS: <DM5PR03MB27789CF4D85DF3A23A30AD6D8F989@DM5PR03MB2778.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: gZtiZtD5VIaBdq4q+8q39vomXORRrAV3j9uzpQK0HC4hIdv0bAGSNfueSMHkegSuPfdaHyAl+meJ9BJPHvh4VV5vWfCk9Pb0Br+/UPkz5BlgB3SSp/pckLyaAyzWZUYy8Gt3tNqm7K8z/49JvMreN7KJW9TALeg97muga3wXCeqri6xAa5w/FhpeKvIrRMzlThuj8CUgGfLlOCGUejuA2JtA7VtBYn0sbzrC105Tvi/NjUj0TqfpiR6+J7WevMfjMubtN+mk35G6iBk6BVlm4Y69R5LqfZBnPXoQgy0Qt5KGP/khz9Ezh/+7YZBWFZgd12WB5/rNd7v32CBS9Oog1VTa23P80YH3AghUhSmHJKnlQ8lfpSzYKtFGBGRctekay23XxlSfpBWHAExlA4lX3f5ACut5m8LbggsyubTXRqnbDCxa3FE4QL31CGx09cSV2qyIC/Vn4q9MMof5PErQa/eXs3tbDKUy9isVGA38Xelgi20Qs0RgXmBH8gaZ8vTLn+YDzwtMIX1ZKNyfaG9rT5Oc65puf9c/g9SdqYi1eJ2LI3+gxmeLHFOsO9rpGsKeH6zOnWv6Rk6XggyxkOoGAiEE2Wp/c7ENiE+R95NEkdC9UnDdCApmxl6Tz2+cyxT1JkzpfiLVUOGnTrgsggp+Ew==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(508600001)(316002)(6486002)(956004)(54906003)(86362001)(2906002)(66556008)(4326008)(6496006)(5660300002)(6636002)(6862004)(83380400001)(66476007)(26005)(9686003)(82960400001)(66946007)(8676002)(6666004)(85182001)(33716001)(8936002)(38100700002)(186003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZXdISEdwTkZ3eDRRMGtLTFJuSTFmY0pZQ05kWXpzRVBJblZWejk0elZqQ0Yx?=
 =?utf-8?B?OGtpQmRxSmgvQWZXTy94UE9HTFU5SFFFdVIvVEc2cHRvRUxaTXozeTlaYW5P?=
 =?utf-8?B?M3FjVjR1eXBNcEJOV2pDNmhMcUIvNWZQQWFHc3pYZjZDaVRnVnNCcHlaY05x?=
 =?utf-8?B?aE5XYWF1WS9KWFNuUzR5QnZ4Sys4Zk1xQ0c4eEFyMFpqSEVCelc5S2Y0cGRC?=
 =?utf-8?B?VGtJRnRoN3ZDeUU0NjNYOFQxQVM3aENCUk5OV3V3Zi93TC9LZ29HdzdhMGVO?=
 =?utf-8?B?UitROXl2Qkw1VVFkTFEveWFTYk1tYWgza05mQkNUT3FrOGUwbzdBVFhNK3hV?=
 =?utf-8?B?ZSs3Qk9vRjhXYkFLNCtvWEZaQ1BzSGU3eENidFRkN05jL2hsZlJvUG1qWjR4?=
 =?utf-8?B?Q2RoZjduaTBhdUdzbW9kbmNDUm8vVGRVMUV2WjM1dDlnSVVYMVhKdXJPcDBY?=
 =?utf-8?B?Qm9Id3U4MEhwVUR6R3Y1S2YwN1p2V20xUlFWbnNjbXJoTkU0YnVRY2U5d0Y1?=
 =?utf-8?B?ZFlydDBRd3BxMysrRHVzSDVBTS9Pb2VNdWZPUWVNSTcxSEtuSWE5bkV0YlZL?=
 =?utf-8?B?Y0xmMmlkRUI2NjFkNjlvbXNOWHBZaFNuQUpQcFVhWnlCakNLRzRLWDhpeWho?=
 =?utf-8?B?R2lueFl5RDdEa1hRT1lXcEVTNTNIKzVIOXp6SzE1a1E5aWRuYzdrbnlMZ0dL?=
 =?utf-8?B?TG8yZWRwd1EzYlRHWHJsLy80WFAwSGo5dFlPRnJ6c2pKeXRSQUNIV1U1Unlz?=
 =?utf-8?B?THFYdk15NHBGdXJRSUREb3I2a0RTZnlQd3NXZ1VTSE9vK01zenRHOWxOR01B?=
 =?utf-8?B?YnkyOTB1V0pCamRLR3l4ejBNQlllUC9PL3ZJWDdrRzVER0hoSDhlVGtGV3M4?=
 =?utf-8?B?dkNSWVZFVTZ5OFhmRDlVUmI2bnZnRGs5ZWdWYkVoMWdNc04yTkZqOVpMVUpS?=
 =?utf-8?B?aTdnNTNFSG1qWW1FampOaTNVWE05cjRlZ3dGU1F6Y0Q4Rm92MFBQcTlyZDAw?=
 =?utf-8?B?b3BCRnlUUWc1YkRuMXNzWG92VWF1cm0wcHk0S0hWN2xiTWFrbWxaYktPNm5l?=
 =?utf-8?B?S0QwNWtWT3N0dndwc1J6c2VwQzFxVVVTZ0xycEdweWhrekJCWE1qRDNzMEZu?=
 =?utf-8?B?WlprWWs5YW5uV2hsWXBzYTJsOU55bThISjliQVpFZEJ1WFE4K1VOUGFPV3dm?=
 =?utf-8?B?cldvS2pENnJUZy9mL2lPL3BTMnVwYVB2TUQ5ekxWaTc1bzFFY0ZsYVVNT2cr?=
 =?utf-8?B?WTMxaXRRTE9xc084RGpYaHdkSFhwU1JUOTF1ZTRWY00vZXBCUTVFSkF4aEZk?=
 =?utf-8?B?WmRwV29mcjV0ZCtadEtRQnpkTlhtcTdEM3FnejJFcnVQZzAyUXJCOEpIcmxY?=
 =?utf-8?B?aEIwbUhSZ01tN3BmMkp1S0E5dGxUTlJOaE9yVndOWWMrUTRab0grb1B3eU1x?=
 =?utf-8?B?TTlXTXc3V3VPZFN5NDBGWGJSSytyM1dvaElsSEV6VzVKZG4zT2d0RUdzYXBF?=
 =?utf-8?B?Y3pTUkVHdGRaVlRJYnRzMGxRWmNBSWcxa3dTTU9QZHgwUzMrRlE2VnF5Yy8r?=
 =?utf-8?B?TlliN0U5MHVhNXcyRnpBSkQrUE9UY0dZZXYvTzN3RzB6TEVWRWxlazdIMmVn?=
 =?utf-8?B?RjdTVXVybVhkT2xVK1daRHhLU3U5UG0weElBUEhJcTdHMmRJUVdYU2NaczZz?=
 =?utf-8?B?WitLZi9MT3FaUlg0dWUxeDN1eDB5bFBTbW8wWWRLRmdxM3BxMVBNWlM0UUg5?=
 =?utf-8?B?ckhuMDZhUGYrbzc5ZVlYUW4vQXFYaEp2eUgwT1d4a1k4V3VwdlVkL2gweFAw?=
 =?utf-8?B?VXhpTmhVdFV5c21nY2RoRGFqQmtuM3VpSjduUGV0QWVMOFdMQzFZYnR6Y3ZD?=
 =?utf-8?B?cC9EajZkbm0vR096QnBxWnAvdXJiS0Y2RWkzYmlJVC9kSHEyRFJrU3NQSlY5?=
 =?utf-8?B?RllJdGkxNStmemxUT20wWG9ZUm9CNFdlb203UEtuWTAvaGdiZGlvV0UrNkxp?=
 =?utf-8?B?QTNFQ1RnS0JreDFEQUlJM29ZNXNPOXUrU1RYcHl5Y3pZNEJtTGY4Vm5mUzl6?=
 =?utf-8?B?Qm44NlJPeGoxSFprb0tVLys1K05penlwUjk0bGFERGU4YnArU2NndmNxNk5X?=
 =?utf-8?B?WjZlY0kwMmpKSzI0WkMyZHowaVhFcDZ6QjVWNGtpRHlkZStaOGRYUUVPM2Fj?=
 =?utf-8?Q?1hI7caHIkGrpWbRd13djTSE=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 1125ec18-e58a-4a19-1e8e-08d9a81a1d89
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 09:27:16.9161
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KzwvsdOW+lCL1LV6IGo7a03+IXdp/vAfXlE3qr5E3p3zzNHevJQDMnphOMe+XvUba6B/rVXDjfxOdItm0mNtuQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2778
X-OriginatorOrg: citrix.com

On Fri, Nov 12, 2021 at 06:28:16PM +0000, Andrew Cooper wrote:
> powernow_register_driver() is currently written with a K&R type definition;
> I'm surprised that compilers don't object to a mismatch with its declaration,
> which is written in an ANSI-C compatible way.
> 
> Furthermore, its sole caller is cpufreq_driver_init() which is a pre-smp
> initcall.  There are no other online CPUs, and even if there were, checking
> the BSP's CPUID data $N times is pointless.  Simplify registration to only
> look at the BSP.

I guess an extra safety would be to add some check for the cpuid bit
in the AP boot path if the cpufreq driver is enabled.

> 
> While at it, drop obviously unused includes.  Also rewrite the expression in
> cpufreq_driver_init() for clarity.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
> ---
>  xen/arch/x86/acpi/cpufreq/cpufreq.c  | 20 +++++++++++++-------
>  xen/arch/x86/acpi/cpufreq/powernow.c | 28 ++++++----------------------
>  2 files changed, 19 insertions(+), 29 deletions(-)
> 
> diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
> index f1f3c6923fb3..2251c87f9e42 100644
> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
> @@ -640,13 +640,19 @@ static int __init cpufreq_driver_init(void)
>  {
>      int ret = 0;
>  
> -    if ((cpufreq_controller == FREQCTL_xen) &&
> -        (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL))
> -        ret = cpufreq_register_driver(&acpi_cpufreq_driver);
> -    else if ((cpufreq_controller == FREQCTL_xen) &&
> -        (boot_cpu_data.x86_vendor &
> -         (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
> -        ret = powernow_register_driver();
> +    if ( cpufreq_controller == FREQCTL_xen )
> +    {
> +        switch ( boot_cpu_data.x86_vendor )
> +        {
> +        case X86_VENDOR_INTEL:
> +            ret = cpufreq_register_driver(&acpi_cpufreq_driver);
> +            break;
> +
> +        case X86_VENDOR_AMD | X86_VENDOR_HYGON:

This should be two separate case statements.

With this fixed:

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

One rant below about getting rid of powernow_register_driver.

> +            ret = powernow_register_driver();
> +            break;
> +        }
> +    }
>  
>      return ret;
>  }
> diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
> index f620bebc7e91..80095dfd14b4 100644
> --- a/xen/arch/x86/acpi/cpufreq/powernow.c
> +++ b/xen/arch/x86/acpi/cpufreq/powernow.c
> @@ -24,13 +24,9 @@
>  #include <xen/types.h>
>  #include <xen/errno.h>
>  #include <xen/init.h>
> -#include <xen/delay.h>
>  #include <xen/cpumask.h>
> -#include <xen/timer.h>
>  #include <xen/xmalloc.h>
> -#include <asm/bug.h>
>  #include <asm/msr.h>
> -#include <asm/io.h>
>  #include <asm/processor.h>
>  #include <asm/cpufeature.h>
>  #include <acpi/acpi.h>
> @@ -353,25 +349,13 @@ static const struct cpufreq_driver __initconstrel powernow_cpufreq_driver = {
>      .update = powernow_cpufreq_update
>  };
>  
> -unsigned int __init powernow_register_driver()
> +unsigned int __init powernow_register_driver(void)
>  {
> -    unsigned int i, ret = 0;
> +    if ( !(boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
> +        return -ENODEV;
>  
> -    for_each_online_cpu(i) {
> -        struct cpuinfo_x86 *c = &cpu_data[i];
> -        if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
> -            ret = -ENODEV;
> -        else
> -        {
> -            u32 eax, ebx, ecx, edx;
> -            cpuid(CPUID_FREQ_VOLT_CAPABILITIES, &eax, &ebx, &ecx, &edx);
> -            if ((edx & USE_HW_PSTATE) != USE_HW_PSTATE)
> -                ret = -ENODEV;
> -        }
> -        if (ret)
> -            return ret;
> -    }
> +    if ( !(cpuid_edx(CPUID_FREQ_VOLT_CAPABILITIES) & USE_HW_PSTATE) )
> +        return -ENODEV;

I wonder if we could move this check into cpufreq_driver_init and get
rid of powernow_register_driver.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 09:32:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 09:32:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225698.389786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYLV-0006N3-IJ; Mon, 15 Nov 2021 09:32:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225698.389786; Mon, 15 Nov 2021 09:32:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYLV-0006Mw-Ea; Mon, 15 Nov 2021 09:32:13 +0000
Received: by outflank-mailman (input) for mailman id 225698;
 Mon, 15 Nov 2021 09:32:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmYLT-0006Mq-S3
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 09:32:11 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e86bedc1-45f6-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 10:32:10 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2113.outbound.protection.outlook.com [104.47.17.113])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-40-nIJuQeKmN8ClCi9y3mP1wQ-1; Mon, 15 Nov 2021 10:32:09 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB6417.eurprd04.prod.outlook.com (2603:10a6:208:174::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 09:32:07 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 09:32:07 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR04CA0068.eurprd04.prod.outlook.com (2603:10a6:20b:48b::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Mon, 15 Nov 2021 09:32:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e86bedc1-45f6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636968730;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Qb5tMLNBw7yJc+UeDXNAH+2+uB8J/VPthYz38XTBLo8=;
	b=TJPVs72U5Aw+YOooJkAu8fSpRrjGsXMpyHSV/jXZShsktqDynxRetkMhquGqlYzRjY+jvU
	mxv4ZXYBWw5Te38wHBKGBMu+JhMGFu8A3W9TsG6vetrinVJH/PbTGSwBZQYNW1k3ZAMW+6
	UIpHNu9p3h6IymogGvc588lIHhCnpZg=
X-MC-Unique: nIJuQeKmN8ClCi9y3mP1wQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IQjEbW0lf4onZ93YvC/8TgxoHOpV9yFUrQ2BqgXP9uKX3RnHhURE6JRfqmKyDWSwXpx6ZhXJL0S4SIM8yg48Upm52w/toPvyJlDMrl2IPxtGvGsCIcWdrVQe2ww9vEzxL61aXkNi8n7TgEl6A6TBjZLI38Kvd9sseF2TmSV/JNShz44bHsvTj9s3nPLnpcoR6otEbvmwujbhAPg4N6h8a4EkEtqOzhssEkrfdc4FiC/QAJdnzANH/to+xKRb8N8GDU0JzMNr0MnIlnVZENWNWLnSP8yngmuQRy03esg8yWIZbYPJHzl7aqkjDG8Fem7oeMSSXQ7NDDiaIQ2C8EiDlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Job7ieNgwvUwTm0m7c1aETh397WehAUR0ctQs735lJ4=;
 b=l+vRE+FWlU5JYSaFpFlkJQuk939sVG+jAsDqKwgmfXvvn+YZ+OgE9l7pUMug4fTxB5A5DZ4oLdaevtAqUn5SiPnV5tbx67X7o1XECsR5AsFnIdCKv9/u2e6MJvRM/Y/piucZ1I1K+VAdSAJ9ehurn0n1S+gdQp8bzIjnj9PM2iPRuINTu/x8hiNGMWvdoiNrv0inxJWLWQoFG/QSxlkTKvUFl71Wx8rCA9mvh7exn7r9HrAWmgQQ58RQRhmNyuFPp6vv3LLEB6/xRENShRPg+YPvi1q+VwZ9wu9xRElXVgW/PEbcc44lUIcs/2M3zziTyBZ171ep9E9Y55ja89g5Lg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6d34fe38-6fed-5665-18dc-8e0999b5af2c@suse.com>
Date: Mon, 15 Nov 2021 10:32:08 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 3/6] VT-d: don't leak domid mapping on error path
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Kevin Tian <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <d4ca5274-dbbf-4cde-1a4b-0d7fe294c360@suse.com>
 <YY5vMYpmqVJhqyL1@Air-de-Roger>
 <b640505d-96cd-3306-ae16-eceb9e528995@suse.com>
 <YY57tg+oX/fN7FB3@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YY57tg+oX/fN7FB3@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR04CA0068.eurprd04.prod.outlook.com
 (2603:10a6:20b:48b::10) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4bb4fd6a-a842-49e0-b620-08d9a81acabf
X-MS-TrafficTypeDiagnostic: AM0PR04MB6417:
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB6417CF4BE0ACA3107DC807DCB3989@AM0PR04MB6417.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	XfS+o6spGLDdwwZ0DfKvmRVaY7TXoZ9I0/Z7Al8XlLCDDE8qT7lFGr5ReGoYiLP7irhr5IgbK3Moy5lWQCs47eo0r0kejWCmvA7drJMPum+Q1GWSjFMK0R7qJfdYNqLfm/k6EKhvgovDYD6N6HDdF7vYiaRhrf+D75UGbrpTuErGoKeSVo0BlM0dILXZl3xSFDL+Y2ZpMHE8qLb9FqgGNeH0918aqD8k/pflc5YEW7ycjlSO/IexTMIijdGACBlseMrny9e1c6Mpz6fqeHVqX8hsVVYFFXjtlINuxMFjo5J1rl9jjD8PYQ5ksiWd3a3oGgPiFqvsiP2rxQ4D9YeLp/d9SoepB9n38TacGcJR3xYdj/06kqMhm5oBMYpI9MZDCC9Y2qKT2ZVI8XiB+YOSbEd7o3hVt7fBkOoNM89UgZeFDm6d6l6V/YBQ6qp9liMShfYGYLnCHaSMwS6eNxpYFushTPKMHlE2GH9N5Rstg6tBD0RHowDvz9RJ65KwK9yYST9+P6h2LJV4AFXS+rhDhP3AlwV8rik3VX/96/D1tlcLRsmwVLvKK70DS588siaTFb7tsTd48XBHV7DvFb2JCunZ+ByQgux2HGuP/6k1jgYHJ1Ya0eAFC+l+P2pyqrI3nlRq4OF8o/gV1jLqsxNCBjEYu5hOw9pD3zbK9EzLt2DXNCY51I8Du2zCTbUQTYUXKGX5FU+IfsKGMQOmqnWM3BNMeljGusYIcLSMRYZpjUylkkkSr6zgqCpFm3SGoGRo
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66946007)(66476007)(31686004)(6486002)(8936002)(956004)(31696002)(4326008)(66556008)(2906002)(6916009)(26005)(53546011)(186003)(2616005)(38100700002)(8676002)(86362001)(508600001)(83380400001)(36756003)(5660300002)(16576012)(54906003)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?S70d5cJMWmRuly364Fr9drNWVlDiPGO5NwhV0Msz4EYQkqDsxOX6u+VGuU3p?=
 =?us-ascii?Q?9z8ljeSx8tXMBbEmkIDdw549IHVRI2LOnuz+2LstgAnsJ8n+peJzRTRtfUKx?=
 =?us-ascii?Q?QMRsol8u96nCVzcvgu0gpsVkuTRgOVlNOMXrhLAJ0wT/kredLa0XNOU2Lpdm?=
 =?us-ascii?Q?uey+oSIffSLmpBSs1B4B4sSxCcYqmdyP4lwOsoaSbcUy2MXHveCHAorMd/OO?=
 =?us-ascii?Q?gyTLopMAJTJK+wbOpj0B9P3Cn+src8RrY8mXMfxBtJu8leTmTtpM3/uQ+cwV?=
 =?us-ascii?Q?DxMa6boJO0x3gXV+aZXe9LrLVFZhfc/VdYczLKDd93DGLGXVXBbnUsDurraz?=
 =?us-ascii?Q?69uXaqEABfK/zmc0swg/Aen0cI5gUOYSJ0JARQPOIEMwrbTmdU0SIu9Uh6c2?=
 =?us-ascii?Q?NHXGO1890ci/OMIaqwK8RsoCPshby4j7/rpg+fScCIEqAtk6ad6XV7lezVkc?=
 =?us-ascii?Q?LEsjkTJebUh3RMBhI7WbfLe9jy+yvCQy276PQddHldeZFBU9qNsQT3eUwxgv?=
 =?us-ascii?Q?hGk6AFuoHi30hm9mF3sM2Q6EcO57vHRyPaL+ix1NsqUfRNcw9MxTiMoOowjD?=
 =?us-ascii?Q?Ajx3llv73o9ykuYuKyj/SNYJGuOfYp4cK2gfM+XH/cCsduP4n9sauVY6sk3A?=
 =?us-ascii?Q?ESS1evsWEe0EqihTmdXqAKPgqPFqJ0zTTmdOne3a5rRU5i4NNXOslhUl/7mM?=
 =?us-ascii?Q?wgIKOBEUeSUCjd5X2SAcg8OTBhwWGDRrRX9X/+F/e3kxJ++/lSd5Z5ogIRCq?=
 =?us-ascii?Q?ABEhM+R+4ytIcsFDtbTgrjr38xFeXgG1y6FHZTrqoDn///onzokEkkRnjX+7?=
 =?us-ascii?Q?dPAJeMqq5l1RDmIducQBfI73DiiYP5YcXoqvSlCFNttFy2lzw5wHp47KMFRM?=
 =?us-ascii?Q?ZMNP2vYiAOTp8ZiCR0BZuuzy+8RYhp39paKZzL7xGtra5aaCphuE2hXzVgV1?=
 =?us-ascii?Q?cbi/EXRK3K+Lyogc6lE0ffy5WJRUB3u2nhTCODJ6BspI/JS4KOpv500OOxWu?=
 =?us-ascii?Q?kB0qxxzZvABcgZl5MIrirsIgydGMvXqm6Xr52uG3zADZ2DvQmna/iap+GyvH?=
 =?us-ascii?Q?w7F1SAQg6fn0eeOjJJIwSxjGn098XntB8tJ09gzIfnCcfxwDZUI5g3FNCAbK?=
 =?us-ascii?Q?spGxckQPpC24O64/ZFdt2fR/hfAy7Csz/r9QRov3AfVlH8LJN+opk0xnY8pX?=
 =?us-ascii?Q?i3MKSUkGQEusLg4hdSJUVKHxkKt00vFwZSpCM9BB56Hs9sNN2rLKwjntyjyw?=
 =?us-ascii?Q?ikZWiR2y7YNO/OWgyyt1EYHwAgpDume+Ebe2kzfxRUi+pdekknkw2/B25Fj/?=
 =?us-ascii?Q?vxG0bTwAaczESb7W2FvjKqOxxNHXLcl9QUGykbUQDYCDrn5E7MjAJwHxtjCZ?=
 =?us-ascii?Q?Iruq6vVtTpNz7yczHp8wn6o7TQBtaq4KvTm0kIZN4+e2JE6LORMomEmvfdUj?=
 =?us-ascii?Q?EKGalgtrjFV/QckHngP4ZXJUik1DSIITWdsDKedUWkb1SFjvw32E3ZaUWYHD?=
 =?us-ascii?Q?SIfCWuteAW77pDrZ5386sUI0MRLpwp3YxkQ2fPXte30+jBuE6P5BV0nhPI/e?=
 =?us-ascii?Q?/AFJ5XbToMVQYob9m1DAmUpU1tGWVlcgPQrAnuxGVr2Lz8CDCPcu6n78bG3c?=
 =?us-ascii?Q?A/qENyrfz4/G7d7G4L+Qdn8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4bb4fd6a-a842-49e0-b620-08d9a81acabf
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 09:32:07.4733
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: x8Jn+RonzERnUOp4v2hCQOS8MtEceFFOT1eIJiyPYOioQoXfKTM9Kjr8Mlpgf5z66i7DITb/AQQ1f+xU6Qi9aQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6417

On 12.11.2021 15:35, Roger Pau Monn=C3=A9 wrote:
> On Fri, Nov 12, 2021 at 02:45:14PM +0100, Jan Beulich wrote:
>> On 12.11.2021 14:42, Roger Pau Monn=C3=A9 wrote:
>>> On Fri, Nov 12, 2021 at 10:48:43AM +0100, Jan Beulich wrote:
>>>> While domain_context_mapping() invokes domain_context_unmap() in a sub=
-
>>>> case of handling DEV_TYPE_PCI when encountering an error, thus avoidin=
g
>>>> a leak, individual calls to domain_context_mapping_one() aren't
>>>> similarly covered. Such a leak might persist until domain destruction.
>>>> Leverage that these cases can be recognized by pdev being non-NULL.
>>>
>>> Would it help to place the domid cleanup in domain_context_unmap_one,
>>> as that would then cover calls from domain_context_unmap and the
>>> failure path in domain_context_mapping_one.
>>
>> I don't think that would work (without further convolution), because of
>> the up to 3 successive calls in DEV_TYPE_PCI handling. Cleanup may happe=
n
>> only on the first map's error path or after the last unmap.
>=20
> Hm, I see. And AFAICT that's because some devices that get assigned to
> a guest iommu context are not actually assigned to the guest (ie:
> pdev->domain doesn't get set, neither the device is added to the
> per-domain list), which makes them invisible to
> any_pdev_behind_iommu.
>=20
> I dislike that the domid is added in domain_context_mapping_one, while
> the cleanup is not done in domain_context_unmap_one, and that some
> devices context could be using the domain id without being assigned to
> the domain.

This all isn't really pretty, is it? As Andrew has been saying (I think
more than once), ideally we'd rewrite IOMMU code from scratch. But I
don't see anyone having enough spare time to actually do so ...

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 09:37:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 09:37:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225710.389801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYQS-00076E-7W; Mon, 15 Nov 2021 09:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225710.389801; Mon, 15 Nov 2021 09:37:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYQS-000767-4J; Mon, 15 Nov 2021 09:37:20 +0000
Received: by outflank-mailman (input) for mailman id 225710;
 Mon, 15 Nov 2021 09:37:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmYQQ-000761-BR
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 09:37:18 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f2ecdaa-45f7-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 10:37:17 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2111.outbound.protection.outlook.com [104.47.17.111])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-12-UYai_V_XNfGRScNycBGm6g-1; Mon, 15 Nov 2021 10:37:16 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB5905.eurprd04.prod.outlook.com (2603:10a6:208:125::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Mon, 15 Nov
 2021 09:37:14 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 09:37:14 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0402CA0005.eurprd04.prod.outlook.com (2603:10a6:203:90::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Mon, 15 Nov 2021 09:37:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f2ecdaa-45f7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636969037;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=+0z9v3e7uvsSfPOf18zuGbOzN4Eybg9gba8lpFe8lVo=;
	b=HWCgJJuwQIcA1Go0WYfkWSmoh141soV5OLBy1MHPKHuWOayB5s0qaAX9jcQYnl9sMt3vzZ
	7LY1UvYDVDpU7dfSq3+o77G/v/GvPGPHnqvw8bLKWB+Cg/JsF/UsfsP36bY9OLInoJEb7y
	kCBvN3Z1JfoFRbDfmSC+Eb4H+dMuh64=
X-MC-Unique: UYai_V_XNfGRScNycBGm6g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jW7WMezZMuaW5M6epJtP4A3hOSPZnFejc4W/yjUf8qQshYnwMevdRlrLnm6zYXiKK5YVj+iHdYpKgUhfClK8TMMJayFl94RX/u/gIdMxUjbm47Td5KX0ps5TNVB6zKilFV1Mx9eVwA+G4GBjxDOWxh+DpkpplPeYwQFVI2r386D24GoAQweiAYMbGF7paJK+2eOQEkdb3Q6S4164xirBhpjtGyxIdXYuLOTCI9EeIGWDZ4RX3/zw2DlPI09wiEBG6cmkWQGiztYXav1D1+/w4ShEl680djynt6YvmF/hO7aeUOqVYUekGEWk4J1SK5zV4MibieyznRoMBZr+D7idtA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+0z9v3e7uvsSfPOf18zuGbOzN4Eybg9gba8lpFe8lVo=;
 b=NxGFyTFvdDssAqZVOsV1U6vYLHx++w9bGt8YE7jywMcgxi4OO3zGDvIB2Q4p9ebUvtsPMES7Z64YIyiAaVFLuJ5vLXHU70FvCEWYRFVgBfZIGX21mE3tXmEe21ehSVABk4MUIT77H7n1EMvO472lvYOumhyRxtXB8gnQD8M574fTR6XV0+7/1c0odzsCimWK4YNhMkPNfCaJ+cGeMTubmAdrpQAjm5HS0xwPziCKAzxQ7c8wfADc7xktMxluymgyEGXzqH7LW1cOWhOO1NlgbKs/wQAHvk0+Bo6vivlu62y/8/2V/q1Jh+c7HH05d7yaSQIqx4poC3lSPAS1RKokCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <81bafc7c-673e-377c-3417-49f83ad0b284@suse.com>
Date: Mon, 15 Nov 2021 10:37:13 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 6/6] VT-d: avoid allocating domid_{bit,}map[] when
 possible
Content-Language: en-US
To: "Tian, Kevin" <kevin.tian@intel.com>
References: <a97adc3d-2808-1c87-8fd6-d6b24b83bd2b@suse.com>
 <74734976-b5a0-3372-7c7c-9f866945777c@suse.com>
 <BN9PR11MB5433479ED71950BF52AFB8AD8C989@BN9PR11MB5433.namprd11.prod.outlook.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <BN9PR11MB5433479ED71950BF52AFB8AD8C989@BN9PR11MB5433.namprd11.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0402CA0005.eurprd04.prod.outlook.com
 (2603:10a6:203:90::15) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9d4ba56c-ebb7-4721-d563-08d9a81b81d6
X-MS-TrafficTypeDiagnostic: AM0PR04MB5905:
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB5905BC64DF87D26E42E10808B3989@AM0PR04MB5905.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	5X96VijLLmyWkixMkT7bMz+r94iOQoxkeIWinZ7tL78KqFRfvnLDwofpVuMDlqF0RRKe1A3wRua9mCvQiACGIJly7JYNFeudoxjbWyLXilPpyd3Ol3ZwYaSdifsc3F9E7ERuAPAk8XrLpqQgMBTk4tEX0EdIhMe9iDjHVfMReDmBNl8bD0qbKwriRz82jwYpqLDhfuUIFTQwffTTf5KgKMy3s01ezwkJf/RFPxFFP8Rnq6Syq6ll3n9fGe40PsOW6WSGKqmJqrhTJEMK5GeRz9WZCnbXUrQYjlgNrPDrpyzIF49YVt5EmMZiYS80tUp2aAEY8YxZj4fIEUp0TlupTLqo8WtOHgYNGD9gvlul9RX/cuEeqzB8CPMEp4425OQ6hRGPk7z+2ThyGyoDspB6xvknJU91eHKmQz1np7x6Qq4eli6YL1maxTob8mbzXriTReu4UoYq0ww4Doxy6Ab9HG+gsco2g+dLjxnWC4UEy7czSBTQkN1fYXzLzQ+TLvkVUo9vNGdb9MW60JuEoPivIg1+E2pMg+hD4UvUn+0s7puIJ1A9EZ0H5CIYXprYhIPbdw3BTbCOCCnOwfC7SsbdGjw9p1aUAYL6fkFBP/4Jj2PHvIpuHbr77osVj/qyduZE+Nbwo1W1mStdsl2YpkLr5zKKdV/m1s/VOR4wogiztuje8V+P3UMMnb5WZXobTO2F4GOAXzDLlcCxOYbJuEJJKqgyF5dyTdjrSlV14PQLdS3B3fTVl9TDQuvELu+yR5uI
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(6916009)(8676002)(5660300002)(16576012)(86362001)(2906002)(316002)(53546011)(508600001)(6486002)(66556008)(66476007)(66946007)(186003)(26005)(36756003)(31686004)(8936002)(31696002)(956004)(2616005)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VFV0eitDUDI5TkRmVGpDZE5PdWEvbFVzcFBBWFQrMTFoMlF3OG5YaUVMRmo1?=
 =?utf-8?B?MTJvNlQ1MTdQY2lzMFRXY3BnY0wxMUwvUkxwSVQ0RURvZUk2b1p4R0JsRVpF?=
 =?utf-8?B?QytkMUZaTFp5Z0VFNy9kaGJXS1dKNVBnMnd3NXpla2VHdG13SkZKL25GRHpJ?=
 =?utf-8?B?Z0hsY0gyTU5pakIyTXc3RkVyV3RTai9aZDNpZ3NNdFp6SFlFWXVEalkrWFph?=
 =?utf-8?B?VXYwREJFWTAvOUpPK0pYY2RwNkYxWHZJTjF4OUdNbWZzYmxZR1o3bGRQRW9O?=
 =?utf-8?B?TXhpMndhS0NUUjFnRE1xN2tLQ0pUWmRFd3NJTC8xMGMwWW5uWDk4Q3UzYjI1?=
 =?utf-8?B?Q1RBY2d0UWtDbkNkM1VhWEhRbXMrZFNYS1l6SFYvZXhEOXczOHM0MnZJU3kr?=
 =?utf-8?B?a2V4WW0ycitaaSs3TnVXNkd3OTUvdU0yTzlEb2ZjVnFzMFlPNSt0YnZkV0to?=
 =?utf-8?B?TVhkL1Uybm1TdzVabXYreVJlOUhSc0h5RGVJV0N1RTBCeFFSTHZEaW1KSHlX?=
 =?utf-8?B?RHlDS1BIN0JiZ0ZSVCtiaGtjVUExbkJvb0t6eVFNcm1GMGFpNkFBZTJtNXNB?=
 =?utf-8?B?bzVuSGRpOUg4Rk1hZk5ncHlNblRaaUIwMDkyQzd5TGZVQW9ydFU0UXE0OHpB?=
 =?utf-8?B?QjBLekVnZmREM3IxcG1jWFI0SmgrNTlETVNBWEozWUZIbkFCMlpXVjlYRzdR?=
 =?utf-8?B?OWMxNlBDK0sveGhPUjZUU2pFb0NqeTVHSG5ENDZGaVQrd2FzdXEvZE9UQWFw?=
 =?utf-8?B?dER5a0FpaW5iZ1BsSmNvdDllMFZkQisyUUdXNEhBa1J5dms3TXM0d3R1amM4?=
 =?utf-8?B?VkxINE4zTXM5ZWZrWDExT1BySWF4TVBjVUx2c3pwNjY3YXNVUXVoU0l2aFFL?=
 =?utf-8?B?d0MrOTRtU29qVyt2VENGTHVsU3oxb3F2UXZhS1d6eEwrMDU5ZlFWbGlEVkVY?=
 =?utf-8?B?U0gwNmgyUlF2SVkrSGVjQzk5c3NyTlNnSXhpREkwU0VBZm1VTGF4bVRnNUh1?=
 =?utf-8?B?QjNuNzJGaFdtUjJkWEI0TFZpa2xNbGYvQmlLM05MSGRxNHRXRmVVcURQMzdE?=
 =?utf-8?B?OHYwY2VXQWcwYUxPbjQzS0Q3RXRad2p1ZXFjdU1XYzhiTGl4cS9FNlRnZnZv?=
 =?utf-8?B?M2pUT1hNY1dDcjh6Q1hJRTFRU2gySnVucjdWd3hhd0N6a1pyTkR2UHlMTzNu?=
 =?utf-8?B?L0hxdjhmTnZqbHArbUU5WjJkMGhtZGtVN3ArMHNXTXVPbmRZc0F2RlNtaVUx?=
 =?utf-8?B?b00rOU5xNm5DRExtek5YY0tpNVBNdzJBZzh0ZFBjWVBHZlc4dlArRks4M3Jw?=
 =?utf-8?B?eEVqc1orM0k5R3JnR25PUllrRjM4UU55Y3pvVE05YkdHRWJGU3M5V21WK1dk?=
 =?utf-8?B?VUZER0pZMFpqRFdsbmxDZkgzcG1Hall0VmJIYUE3Q1U5M0tRTnlLYkRlU1No?=
 =?utf-8?B?b0RFK1c5bGtYL2dVSTFLK3V1TzFCOFVnN0h4ck5aeXA5L08zeDRjbThFUEtI?=
 =?utf-8?B?RCtNczJ2QWlEelc0WUlna3p1N1dlb1RzdlVGRjkzOXlNdDlMRU5vWHl3emZH?=
 =?utf-8?B?emp4S014amNjRHgyTzZHOVFDQ2ZiYzdFV1BmREhWalRGdGI3VnZHWjhvNmE2?=
 =?utf-8?B?dEpNdE5SSmlGMUZ3c29MOGhNa0c5dWc4cml4SmhQYXhQa29uWHJyRkZ5TnFu?=
 =?utf-8?B?d0dWZllCeHdWRWdoSXFCVGV3WTQ0OWg2WFlMNjVaRkh6cFUraHNycUw2UFRa?=
 =?utf-8?B?eUsxZXVzeGNuRWt0Zjk1c084U3JMZWR6TGpINjNlTTZLa2xEaU5FU3JGUmdF?=
 =?utf-8?B?cjhFZmY3Q2w4RFVMVFdVMy9TZU1ScExIeDhFMlBIL0Jma2drU3lPNlVHeTla?=
 =?utf-8?B?U2RaNDZXNWljUE5RcXNGMEFQcmJxUFppd3grcHdSZGppZ2greFByUWlNcHRi?=
 =?utf-8?B?RGp2NlJWRmpZSnMrNXVaZUdXUnJBQXRadnpLK1ZHNE1HZTNDYnZQbm92eUN4?=
 =?utf-8?B?ODVLazFmUU43YzFOV2EyZHpiNXpVWTkwdUpXQWNmRTQ4cDMxMDFsZndXUUdQ?=
 =?utf-8?B?Vmh0blZLM0RjVXVYYXVOU2xFbURJWUNZaW9CRzYyN3hxbVI3NVJ2ZS91QldM?=
 =?utf-8?B?ZUZ2dkpyQkF5cnFSNkRlcHp0WmZoOGtSWE1uUGNMOXp4Zm5ENVZOMXhSdVFD?=
 =?utf-8?Q?szcGGYDp2XHeJxhMsWeBZUw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d4ba56c-ebb7-4721-d563-08d9a81b81d6
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 09:37:14.6408
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Tp47wacJuFYCfT5+CWNLtP685BJCpE8IKpX4bDM2qFqlgAjpZX3la4/hjA5jxv/SVtfDMAzxEfOhd03A4OXHiw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5905

On 15.11.2021 07:18, Tian, Kevin wrote:
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Friday, November 12, 2021 5:50 PM
>>
>> When an IOMMU implements the full 16 bits worth of DID in context
>> entries, there's no point going through a memory base translation table.
>> For IOMMUs not using Caching Mode we can simply use the domain IDs
>> verbatim, while for Caching Mode we need to avoid DID 0.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> For the case where the memory tables are needed, xvzalloc_array() would
>> of course be an option to use here as well, despite this being boot time
>> allocations. Yet the introduction of xvmalloc() et al continues to be
>> stuck ...
>>
>> --- a/xen/drivers/passthrough/vtd/iommu.c
>> +++ b/xen/drivers/passthrough/vtd/iommu.c
>> @@ -62,11 +62,32 @@ static struct tasklet vtd_fault_tasklet;
>>  static int setup_hwdom_device(u8 devfn, struct pci_dev *);
>>  static void setup_hwdom_rmrr(struct domain *d);
>>
>> +static bool domid_mapping(const struct vtd_iommu *iommu)
>> +{
>> +    return (const void *)iommu->domid_bitmap != (const void *)iommu-
>>> domid_map;
>> +}
>> +
>> +static domid_t convert_domid(const struct vtd_iommu *iommu, domid_t
>> domid)
>> +{
>> +    /*
>> +     * While we need to avoid DID 0 for caching-mode IOMMUs, maintain
>> +     * the property of the transformation being the same in either
>> +     * direction. By clipping to 16 bits we ensure that the resulting
>> +     * DID will fit in the respective context entry field.
>> +     */
>> +    BUILD_BUG_ON(sizeof(domid_t) > sizeof(uint16_t));
>> +
>> +    return !cap_caching_mode(iommu->cap) ? domid : ~domid;
> 
> If DOMID_MASK grows to 0xFFFF (though unlikely),

I did consider this too unlikely to warrant taking care of. Now that
you ask for it anyway, ...

> then it translates 
> to '0' when caching mode is true. We need extend BUILD_BUG_ON() to 
> check DOMID_MASK in this case, since caching mode implies
> total_size minus one for available domain IDs 

... I guess I'd rather replace the BUILD_BUG_ON() than extend it or
add a 2nd one.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 09:55:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 09:55:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225716.389812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYhk-0000ye-Qo; Mon, 15 Nov 2021 09:55:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225716.389812; Mon, 15 Nov 2021 09:55:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYhk-0000yX-Lz; Mon, 15 Nov 2021 09:55:12 +0000
Received: by outflank-mailman (input) for mailman id 225716;
 Mon, 15 Nov 2021 09:55:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmYhj-0000yR-E2
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 09:55:11 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1e813690-45fa-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 10:55:10 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2057.outbound.protection.outlook.com [104.47.9.57]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-26-_GO-9aQRM2SyhL9kntd2pw-1; Mon, 15 Nov 2021 10:55:08 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB4244.eurprd04.prod.outlook.com (2603:10a6:208:5d::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Mon, 15 Nov
 2021 09:55:07 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 09:55:07 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0330.eurprd06.prod.outlook.com (2603:10a6:20b:45b::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.26 via Frontend Transport; Mon, 15 Nov 2021 09:55:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e813690-45fa-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636970109;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=xrLdRTjZHUzRTgOrhvxX4txdtoE8zxn/hwkst9Wzoc8=;
	b=ZY+KHsjD594DpN2Rkd/aG25jo//WwBbCzF7UOlELLXjO+qiUMFRq0AVuPoS9FdGe693scp
	JDwrr54bGoplRITHbkvfksvF9M7iq43NkE0gAYPxzbjeCaOLyoqW/0GVZRzawOHH5hz1/+
	2VuxyGHQN2vXOJMhci1TFZJ3vcJ6voc=
X-MC-Unique: _GO-9aQRM2SyhL9kntd2pw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AYXS5tG8cVUlWW/oleGmnGYsLyZg3gvvKpr3fyHicuUj0gJ8V3vxakegtrJIl3cREUM4Z4ABRoNoBgXlfb0MoQIPnGRp2YTyN0o7TX4bFS2GZ2/XkkT73X7KfB/gIKlisPhv3fcTGMIhHjf7EQYPb7yR3hqi+LQscrRKHkgzON/5orWS9F4V2iCzCPjeMltfxpc3BmQNgmcGjjBnO7PDYjl43dePSSNArxHHyAcWPQhdTESmoRoGRzPxRR1mQ/yJdjs9W/VYSqrmzVZI3/TRkCUgeh6oQOb5ym+8zsFO3Q2K81CC2nrgrvq1xosQR4bx7BCYjdzuZ+bC8MpvmBNhEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xrLdRTjZHUzRTgOrhvxX4txdtoE8zxn/hwkst9Wzoc8=;
 b=XaoMbnqhh6TcaX7et6iq917rCFAUEmm8HcWADRZEhvyWH/ngSzvqFXRSZsNSjQmxYduyVuIQBPWOzmGI59kBzkPr5KqM3b13lgIRUtX8vp2KDcxW9GRHeR+VSPIWdEH+a5ZFoCaymfrJuB0S25juGLMuqvbe95LL/hqa7oG34l4pfhS8VtMNKNHQhD61giqc1BQmgSMxR5qoOx1BZbb6R13ZGsON6HQ1Z20fa41taMXNqrJ7XdU/Q8ytjzLTNExn4oFnYrU3/bkYfd+FLCaoSu1oeifli3zrErH43NLaSikdk0Ghf8R1nj8a5mbTO4A9T8MN6J3gYc7iYZYVMCxinw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8e6e23c7-4416-405f-8bd1-bc5b23ea587e@suse.com>
Date: Mon, 15 Nov 2021 10:55:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] public/gnttab: relax v2 recommendation
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, Luca Fancellu <luca.fancellu@arm.com>
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0330.eurprd06.prod.outlook.com
 (2603:10a6:20b:45b::9) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9e506618-6b84-4414-3613-08d9a81e00f5
X-MS-TrafficTypeDiagnostic: AM0PR04MB4244:
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB4244FA7D92E4B2DA4036C88AB3989@AM0PR04MB4244.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	+QORIrDfWCpp4rohaP+ker4a/gpY8SR60oIM2MZJNeBZ0C+q+M1RS0iGCEeV3NViGmgMLvvwr4Kc8CaG4NkUGreY3+keiPIvvEwUeYc1CM8tA5C/hJUiJbo7WPIkh31Mz2DJPTTTemq1hiYtyW1Vrh+mxxz8JO0ukCL/kmE6ptg2Vv7cP3GTBs6KOGgKLXRLHkKi/mPRR98RV5A0SkZdyXgdIxgg1H+v51HmbewFa+iG1pKrCZVo9rniAavmzeS8npWq8OoeEjKOjST1lkzmJIJve7A4OTCI9l0wY/x/aGappnrdHzQjhP9Kqy3ZWIAsI5uYLYMBXBV7zu6jHVnAa0V2s2CiYra96Bo9fqmXLFJS8k16ptl/Nu++Ga1hVevCLTEFkSJKdNTgyq9mZLElEGvyhAz5n9k3Yt4aSP2iDMq6dsPO99UAsNCoDLl7zhxwvQ/cIIObrHxwVEiCtMHEoQP1eDRFYckXpXkGWkW8oTHp8bwMiHQCjOZ01BeV4ZHmt2L5E6p07deZx2phI0eYeadHFWIW8aSJt48Iub3P2XYszUz0/PBtJ6vuR8hkrXfwC3PlGnaqV87PzAitQbUPYcgA86BaUJ20/Owpv2Ka+lHC8qoqExlZ3pZTRiitriNDqZ4XmN3FzhQ41+W94TapmULkYGLXhs5eQdTJqz3l1xBEbhLPj7KFm0pwLn3zIwWQidrEyb8xnZC2RHndcQrb2ti5ZjHKRdC+B9jYGnMxDuk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(2616005)(6486002)(86362001)(31686004)(5660300002)(2906002)(66946007)(186003)(54906003)(31696002)(508600001)(83380400001)(66556008)(66476007)(4744005)(16576012)(6916009)(26005)(8936002)(316002)(8676002)(36756003)(38100700002)(4326008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RlcvVFJtNlBZdUhvQVk4V1FPRHZFVzA0R1dHQzFoTHJMSC9iUzZ1dnMvYkE4?=
 =?utf-8?B?bXMzRXYrZjNINzBCcUc5dEdvRUJtcTZIN0ovN1RINTYyUmxOVkJhVitZUXln?=
 =?utf-8?B?eHpSbVkwamVrRHc0OXZKeEptZWR5NzJHNjE5MFFsbGFsUEpwY09zbTg5UUdp?=
 =?utf-8?B?d1E1U2VwSmduMzdnNFkvcmJoRzk3ZXlQYUVyNVplYS85SmQrclVMbkt4cGxm?=
 =?utf-8?B?NDQ0eTUvYnBVNmdNMXFMNnVZQldHditJSnc2NnlXeFFINFUwQ2JwZWN6TGxL?=
 =?utf-8?B?TDR6b0p6RzlqOWZud3loUmZsS2dvSHVRb3htSEpaSlZzSFF3bG8vaEdiM2R4?=
 =?utf-8?B?ZVhjR3VnbHBibTdwT0xjdlBMYVltYzQ1YXNzTU1ibDhYb1JTRFc1ek0yMkxC?=
 =?utf-8?B?dWVpcXZ6TXkrbW5uNlorSHdvNC9GdzRHK2lyRkluSGtzQVBkcEM4NXBOUi9T?=
 =?utf-8?B?Z1hVMHlTK0prMzExdFpEV1Y2Y0lod2MrZWZhMktDUHdFbm41dmVrR3UwbEJs?=
 =?utf-8?B?WU5JeEZYSittM1BRSmpuM1RTRllpcDgxQStVRjByNXZ4NTdJeDIxRFFzeUNU?=
 =?utf-8?B?QjI0TGNMWHRYSnExWHdZQWpvSVJ0ckp2eGhJU1dtV0hPQit6b1dDME5sb2V6?=
 =?utf-8?B?bGFmYVNyV29VcHFQNWpQRmtRVTI1eFRyb2NQREtBc0RhOHUwWGsvRjZaLzlv?=
 =?utf-8?B?MC8vbS9wYTQzSkdiTkNrRUJzWnZjaWJxY3V4ajhWZmZFa2JvRXVTMi9jTXNZ?=
 =?utf-8?B?Yk8xQTg1cVJSNEExR3RSNjFRdnQ4OC9nUzh4UUV2ZVdUUXNjTHZBV3REek9R?=
 =?utf-8?B?VHJ3L1VwbVVJd1JjSjJ3YU85VCtDVjl2bGxZODhGQ1VCcHF5a3ljTE0xcGdG?=
 =?utf-8?B?ODRIUW0vR1NTeURBTGdtaTY0ZjdvaXFMeXFUYW1ndTBnSmVIOG1ONUdMY0Zx?=
 =?utf-8?B?WWxXTEh6MEVSSER2MHFDdUtlL0tYQlh5Q3B3WXdxaWJDZlNEL25GeGlYK0FI?=
 =?utf-8?B?WEtONUdqaXFPRnZyQmVRNVFENDBHcm96WkVMU0wwQkpmUTVDRzFsKzZJR0xF?=
 =?utf-8?B?RmY3Q2NKUysrT2YxMitkQWxZc2t2SG9mTUpsQ2ZaZ1k0U0tscXp5Q29IbW8y?=
 =?utf-8?B?YWNFRDVhYmplUC8yVjFEdHQ2cDJBZFFNa2U0RlNaSlgrSzJKbE1Ja1pNUktH?=
 =?utf-8?B?djd3ajN5cmlHQ3BVZ0RvSlNQeit4ZzlVR2RsRnR1RzJIR202MElRaXFYS1JF?=
 =?utf-8?B?Y2srbUFhOVZ4WjVUcWxtYkk5Q09VVkRsKzRCQVNzcTh4bmxVZXNFa0h6cXQ3?=
 =?utf-8?B?RkphNVIySkpzYi9CNFovTXN6Rm1vby8yYVlvYnFiU1paaEF1SE9DQ3g4TXcz?=
 =?utf-8?B?NVRuRXhTTDhtRUdtaytMZjBQbFV1WXZjZWlDUlpzdFZMeVNJbllyNHNhUk1Q?=
 =?utf-8?B?RDNzaU03MTlUb1FZVk03cnRDY1NHYkFKNDV3WittRHRrUEEzWVQ4WklOaHFN?=
 =?utf-8?B?VGZHaTArTm5RVDFzTmJWd1laMXo0VGNLak92Q051MHQxZ2JaUmloam84cjV5?=
 =?utf-8?B?aGtURU5mcTBxM2tRaHFJekZSeXVFSVN2LzZKa0I4N2NEanlNaTd2NTZZT0hx?=
 =?utf-8?B?ZnJUYUF2VXZlT3hvTUF4dXdtcm9SdGU0V21hcWhjbENTaXF6U09LdG1ZdHRP?=
 =?utf-8?B?UkNxa3dyMm02em9MZlc0K2RRMWxPZXNTdW93QVpBSkpzM3JFbW1sWGJ4bnc4?=
 =?utf-8?B?SjlWclNQaHkwbis4VEM0a2NZUythMTR5QjBjaEc5MzlvRGJqQ1QyanVPMlpj?=
 =?utf-8?B?UG9rNTRFc3YvTDZjem91ZzI2eEtjRGtzOE5JdGhTY1hnVVQ3cXVOUEVlOFhl?=
 =?utf-8?B?M2lMK28xY2MvSi9sTWxJN3RMTllpb2o4WGxFVlRQNGVGcDdhV1hKQVc3NmN4?=
 =?utf-8?B?TklJR0tWd1NsUnFCYUJiNklCVzlYWXFwbXY1Y0VGcWxQNXdsUytrdUdDZUhT?=
 =?utf-8?B?WUR1dFJ2L1FoWk9DQ3lYRm8yMXZtV3VQaGE0blk2UVgydVdKWGFNOTJmczFw?=
 =?utf-8?B?N00ySGozVGh0QXBUbU5rR2tJb2RzMFVLYXorVnd4UWdIYzJWdXR3RkJCNDFv?=
 =?utf-8?B?dkQrTEdnR2tTY21mbEp4empIakM5dnloNHRJc2VMSkI4NkJTRGszZlpudTJM?=
 =?utf-8?Q?YIgTSP0XnlOzmc94kuYiNGw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e506618-6b84-4414-3613-08d9a81e00f5
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 09:55:06.8920
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XbzvXeVKgOuxHECyvbi+5M6lzQrVKtdzvQVyj9L8BiFu2cwpTywMCQo7T0oVQxhyfsUzQR0XqjDLcQE0vtqOjQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4244

With there being a way to disable v2 support, telling new guests to use
v2 exclusively is not a good suggestion.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
v2: s/be able to fall back/default/.

--- a/xen/include/public/grant_table.h
+++ b/xen/include/public/grant_table.h
@@ -121,8 +121,9 @@ typedef uint32_t grant_ref_t;
  */
 
 /*
- * Version 1 of the grant table entry structure is maintained purely
- * for backwards compatibility.  New guests should use version 2.
+ * Version 1 of the grant table entry structure is maintained largely for
+ * backwards compatibility.  New guests are recommended to support using
+ * version 2 to overcome version 1 limitations, but to default to version 1.
  */
 #if __XEN_INTERFACE_VERSION__ < 0x0003020a
 #define grant_entry_v1 grant_entry



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 09:57:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 09:57:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225721.389823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYkI-0001bc-72; Mon, 15 Nov 2021 09:57:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225721.389823; Mon, 15 Nov 2021 09:57:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYkI-0001bV-3v; Mon, 15 Nov 2021 09:57:50 +0000
Received: by outflank-mailman (input) for mailman id 225721;
 Mon, 15 Nov 2021 09:57:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmYkH-0001bP-ND
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 09:57:49 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d0ff8aa-45fa-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 10:57:48 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-7-Bfv0olvgNXGiyTwqrfW7TQ-1; Mon, 15 Nov 2021 10:57:47 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB6337.eurprd04.prod.outlook.com (2603:10a6:208:170::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 09:57:46 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 09:57:46 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0015.eurprd04.prod.outlook.com (2603:10a6:20b:92::28) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.25 via Frontend Transport; Mon, 15 Nov 2021 09:57:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d0ff8aa-45fa-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636970268;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=bdR5JVDXfYFw1Jkxd4yujs7nOjGCUFmjmKVbMM5vNn0=;
	b=JPdtGngqWjC1lBkWbB6f2/v0DfcZFllocXp/rmAexgBTvmfgllbokCFzJpLz9GopZb80bG
	mgZDRCRR6tT09Vp3lRoq3yp6lryPJhVdd17zIPpI783cSTFmXMVwzGHA5QcxRBjD/QGxh1
	tb5yx3ZESUV86mPphd70VJsdkDgjsQw=
X-MC-Unique: Bfv0olvgNXGiyTwqrfW7TQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PSb/PdbVmMq4uTH8scl9ip9S2q1kl9QTj4NcU1z7Udu2dhqdldmu0YPTDaoPKXS8Hrf1lTcqnBu7FoDq5q98ObQdYW44X65kJKA/4qThWvXnkOk7QNtw0k//N+oMVV1pnH/CZJ9I8/TqVfGRCVfi2XjBE+uYYPHiDAZvxdgVZCYlrYibE3CTug39vM7lX74NipqNU6SwAGdXWJYQovO0MVc/BEG23WAhDQibGUyovn3cfEcJbp4Lso2xjE17HVVTfAvJ67VW43kdkj0cz0+PuYgdMhwQfgx/5RtaC8rr9Z60SSuLYTct4i9EnWE3fI4HGfyJE+VIgOmPIrn/kUKZtQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bdR5JVDXfYFw1Jkxd4yujs7nOjGCUFmjmKVbMM5vNn0=;
 b=NbUFlbpDnUsAfHspD61O6zp3pQpMifFnDGLJxz+yWKMsjZKV8UQdYEy+RnaZPxlKCP9ZVfbQ0iSHMy0Xu6a24sndvAhFfu2/k2fJa1nuNl7fCLouu6NQT+UcYHzp/uP/BkBYruL5jd/I28ZEaqLLioLbhYXu8bn3tVMG1G1WE53GlCsdxY0NbZzwLCojmemplMJicxHUlkEFZyLF6DP33eNUy5sy+UAQBDbVb6yIIFI0DaRJTUu6/aXZS9/3OBY73INKUyh/s+zR2ksY9jmwUpfp+67zOnhodw8wdGQoSqfVXSvXpLuPQwN+x+mkZd3TxXIP0YO2XB2tMqw48MC0xA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <25bad8ca-d5ad-5100-9a00-9e7add0f6113@suse.com>
Date: Mon, 15 Nov 2021 10:57:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [4.16?] Re: [PATCH v2] public/gnttab: relax v2 recommendation
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: Ian Jackson <iwj@xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Luca Fancellu <luca.fancellu@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <8e6e23c7-4416-405f-8bd1-bc5b23ea587e@suse.com>
In-Reply-To: <8e6e23c7-4416-405f-8bd1-bc5b23ea587e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR04CA0015.eurprd04.prod.outlook.com
 (2603:10a6:20b:92::28) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0d18681d-742f-4632-22bd-08d9a81e600a
X-MS-TrafficTypeDiagnostic: AM0PR04MB6337:
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB633775AEC5A6C0D9AFFDC1B7B3989@AM0PR04MB6337.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Vysnq8lMw5tLPzsWHlvSq2U45ygBgnls4dJZgS3WnsnfukiBuLdQ+I6DYwqkGC4IAEHCPSOs/2fUT78cD4ONFBoFlq346q1wzip1UvjWsbFd5ITn1aJpq/01b5LVbBnV11gQh0PEInJzALydngmrLwI6hnmeMhuRefzvaeO8Fo2ER6QE7z9P6ouMQka1p+JwcWSfCPHDtN9fHkyL7H3A5ZSK3k4AVVcaTgreiW41371egYs6DLOKRfnivCKUGRxQD2AAGrIr5Fz6oAvl7D7A1sfqwvv0juKH4o6q9Awfx1MvBX/W8vkyFC+491IX282NWRFRv73LxcNp58S4BCCjdGC7rnBZ0d530zrVihPfhaeftx3JYLzDXtdDb7PW8xOsSIGjn8qYA5IR/JmA64qDdaP/NCYCIxCpbJ4coaTYr5xLK3pyUQvTYU0Hc7SCW5vox+0J6ZQkI039ZUG0xFSsq6BWd8ebakaASkG+DKZY1479feBXWlOuC5HF9QFv/relVx1UJ7jgpzQIK2tMn7oXkQvR6nz0P/Ejv2zr3wc92cOGeAd5mvcqgJmvP9JoWUKFIHPpkASATg/qF1Cn4IcAl5NuBNwvW7Xjsz67sV36chtHtcoRKbEy49IxhS4kcBuEYZnEV04KWDmV6nvq3Rr+7Uby+uE9HOGKPp4yBSbOezIkPsXswhVPSpqXWohcx/1Ayox97StcCAAMOjueL8B4357kltp2A4vu+5k7b1R/Zd+r0U02Jyg7gsDHtUKhtQb8
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(956004)(5660300002)(2906002)(6486002)(31686004)(2616005)(26005)(186003)(36756003)(83380400001)(8676002)(4326008)(16576012)(38100700002)(54906003)(316002)(6916009)(86362001)(8936002)(66476007)(66946007)(66556008)(31696002)(508600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N1hvU2kxd3JTQVdEb0JucXRVVnBibStXWGF2WmVBUWxRWmNGVEFrcUpRSjZw?=
 =?utf-8?B?QjYwakZRcW1YWWR0bFNmM25SODRPMGl6NnFpYUdSMGVLbmhxRjI2cWVvTDUz?=
 =?utf-8?B?bzhONUFtVTRWS0lrUnpyMXMvN1pDU1JoYnV1Z2Qzd0lrSjlHOVY2L1lIQXVt?=
 =?utf-8?B?REVZcnV1WHEyaER0bDFRWVdpMUxKR0VybTdsZHQ1TjA4UmV4QXplZVpXYy9o?=
 =?utf-8?B?K2hRVGpoWnFkbHNqcmc5ZWlzajlBYTNLb3EraEx6MWFQODhKSVJsVXB6enBI?=
 =?utf-8?B?YjdMR0ZkWXBYaStiU2VDTnJvMDM5UGwrZFNMNGFOUVF2VXJyR0VVcGVCN2N6?=
 =?utf-8?B?Q1J5ejdleVdqN0FlYXFQcTBSWHlzelBhc1o2MXdNdkNIYWRJUVZ4TXNacXlO?=
 =?utf-8?B?aEllUTM3aXA0cDBVS1hCaHlSUzBaREpVSkkrcmxtOU1DaWFnb2lFUXF1eVBu?=
 =?utf-8?B?bStxUytRd3lXQ2dRT2pjR3lwOHUzVFdhUmgyT3A1MWViWmlIbVpldDhReXcv?=
 =?utf-8?B?blZLUmEvVUlJWWowbld6MlF3Q2hDS28yVEdoZkJlM0xIb1lnZnRlckZBdGhJ?=
 =?utf-8?B?NkEyQ3NxdXRDUHhmRHp5STRrc2dpWDNOZXU5c3B5RCsvWGlka0Q2OFFzU1dQ?=
 =?utf-8?B?WmdGbVoxWWZxeXdxbjNNVHRTcUtSMjBvYS9pR09ieEI5RmU4N0ZxSU9mcCtv?=
 =?utf-8?B?RncyLzk2d1Q2anpDc3Z0MUY5UFl1aFhkdlE1NTlOQnBlNlBTWEtaVFlndUF4?=
 =?utf-8?B?M08rOTdHdnN4d2lnRXlEWVY1UHZCeWtpeVc3cXljbjduOGU0UDQzNFpxbEFG?=
 =?utf-8?B?U0NUVHB6eU9OclIrWVdrNHFHZ25FdjlEZmxraWZPQVJISFZLamVFYWM1S2Yw?=
 =?utf-8?B?TjJlWXYzMWN2YUdqWVJZbzJNV3VjMVphSEl1a1hjNzVjSWJLay96YjVvekZs?=
 =?utf-8?B?akMyazY1Y0lpVVorNzEvMzFxQWdEVzQ0NFpGOVBRbGZ0THVoem5MWE9mQ0tB?=
 =?utf-8?B?TWgraXZiNHJLd1ZwUkZoazBUUU8xRDhTMTJXRHozcUhTSzNDZUlHdEZRMlV4?=
 =?utf-8?B?a1pmQkFVVTQ0R1ZvbG9NQXdtMnVnWGhvc3l2UDZNUHNUY0NGS3grOGJkV3lT?=
 =?utf-8?B?bFB2WVd6Q1BZVmR4SUU0SjlCVTg1WkRrNzFJMVZxQ2diU3dGTThxTmlWTFVt?=
 =?utf-8?B?WlpFM2VtWmVZWmUvZmZZU1o2UUhXdUwvRnUvclNoZEUrUTlPNzNLMXo1VW8x?=
 =?utf-8?B?NXdZTXR6eTRlSFlqclNKOFo0ajgzdGZROXZJbFFiNnF3alIrb2sxZDJ6YXZY?=
 =?utf-8?B?bU5UaXVwcnFRZUJURm9sTXhlb3VONXlkTVBEN0ZCcjBSdkRqajNrbDdRQzdr?=
 =?utf-8?B?V1BPZmI3MGdmbzNEd3d0NGtlSHowRXZaemdXeXJscFhldVRTM3BQcVJoSFZP?=
 =?utf-8?B?RWtDYk1XanJiNTV4Y3pzcGVpM1JOU01RN2NWMGdEVlFHK0g0dEJydnRPQ1Zj?=
 =?utf-8?B?bjNiRkhTS2xGN1BaU0ZrcFFPRlRhU1A5MmhUZ0NRb1lXN3FNZUV2M1EvUWg1?=
 =?utf-8?B?akZPaDdyYUZqYXoyMUt5MFFrWjdWaVlsL01LcThRSE9PbmRCa0JHeUYyZzNp?=
 =?utf-8?B?YVo0SWN6TFE1andTTUhIeTVFemFLNjlnS2liTitrVjZwdFhJNGgzVkpwOWVr?=
 =?utf-8?B?WEY2dXJKRjFXYnJiME9uRE5TbE9HZU9RUy9oellaaC9SQ2xMcEFXeXcwMk1X?=
 =?utf-8?B?aENzRnYydlhRRWJvYXBxYzhjU1gxejYrWVZxT1c5b0NYSU00QWtIcUdrTXZH?=
 =?utf-8?B?S0MxNC8xRHcwN1VIMTFXSG82eHZQKzVlazJLTXBzV0tiNUJadGl5dzA5dzBV?=
 =?utf-8?B?YmdyZ2U4bHJOblRneHhZQkYvYzZ1aUxoU2F3M3FBMk5lSUMyNytZVzU4R01r?=
 =?utf-8?B?SlFHT3F1Y3VYM0grc1VieWFqYmVyUW1zVkVCWWFxb3lDTjV0OWp2MTc0NDhX?=
 =?utf-8?B?alpHZkkzc0x6cWpWampRT0VwVmNVdXJFRVdvZ1hUV3BaNEZMMHRPQlQ3eGVR?=
 =?utf-8?B?RU1JSTNObWtVM0hDaTdzOHlFT3NNMERZT2V3OHR6MW1zQVZoOWF0MEk1RXBa?=
 =?utf-8?B?aU9nSEgrVTZrYXFDSjdZaDBYUG90UzMrWll6dUpLamlqV3oxVS80M3ZMT1VC?=
 =?utf-8?Q?nWJxhio7h/2JFloaM6rC1Eg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d18681d-742f-4632-22bd-08d9a81e600a
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 09:57:46.4177
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ivob72cuGYUtXg8L/avBbkezJ9GfHxia0/IYCq7EHsDMp7n6Xb3TD8DOKkLAW0BHdXOL8HOJE9WHdKAybWk5NQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6337

On 15.11.2021 10:55, Jan Beulich wrote:
> With there being a way to disable v2 support, telling new guests to use
> v2 exclusively is not a good suggestion.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v2: s/be able to fall back/default/.
> 
> --- a/xen/include/public/grant_table.h
> +++ b/xen/include/public/grant_table.h
> @@ -121,8 +121,9 @@ typedef uint32_t grant_ref_t;
>   */
>  
>  /*
> - * Version 1 of the grant table entry structure is maintained purely
> - * for backwards compatibility.  New guests should use version 2.
> + * Version 1 of the grant table entry structure is maintained largely for
> + * backwards compatibility.  New guests are recommended to support using
> + * version 2 to overcome version 1 limitations, but to default to version 1.
>   */
>  #if __XEN_INTERFACE_VERSION__ < 0x0003020a
>  #define grant_entry_v1 grant_entry

This being a comment only change (and hence close to zero risk) I wonder
whether this wouldn't still be appropriate for 4.16. I'm sorry for not
having remembered earlier to submit v2 of this.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:02:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:02:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225725.389834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYoq-00034g-Rx; Mon, 15 Nov 2021 10:02:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225725.389834; Mon, 15 Nov 2021 10:02:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYoq-00034Z-O8; Mon, 15 Nov 2021 10:02:32 +0000
Received: by outflank-mailman (input) for mailman id 225725;
 Mon, 15 Nov 2021 10:02:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmYop-00034T-7X
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:02:31 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24fc5128-45fb-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 11:02:30 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2170.outbound.protection.outlook.com [104.47.17.170])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-12-EDXyA7S4MLSO9QWr-Qlw8g-2; Mon, 15 Nov 2021 11:02:28 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM9PR04MB8145.eurprd04.prod.outlook.com (2603:10a6:20b:3e1::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Mon, 15 Nov
 2021 10:02:26 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 10:02:26 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0602CA0012.eurprd06.prod.outlook.com (2603:10a6:203:a3::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25 via Frontend
 Transport; Mon, 15 Nov 2021 10:02:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24fc5128-45fb-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636970550;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=HGcxa83tT4mumahfVhectZc6dBEwl/miGykJ1YKa5a0=;
	b=XTRCaJzqyN9ZgJ7td2l5qn5Ck7IxFIntmyVd/VUfkjkRSLNDJWFawbu7ob2mvtfaFr+YOz
	1INLP0nfhK0j3vGBUweuFXB0DByVCoo8zWBtdIpM5Mjq6JZIAx5+RQGGr5UPgqxqBOR/B0
	Mti6xUthy7Q5pXPx1OSz3txUGvWT1to=
X-MC-Unique: EDXyA7S4MLSO9QWr-Qlw8g-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Oi0FHzNNSBC657F5/ykBCE4Nw4w1Yt6twI4NyNPEGi2Hv250NKvnunMtAPEYvRmqvp1w9LKMcu6Job+gqA0YAOqT8O5uTRxORQxmhi55lB0V19iaIlUmMrtrgh9XI7B0sIhCWVac+qDgh/DhZbB2kciaUbTvBSZRqzyUd9n3WB0jBNtRgcLkGMNZAOv0M6vgmxGLsgtHe4ShkitwXW3nk1RH/+GOjS8EAIr7pTRjr+O4a86//EGeepMRxm7mBd7/kquKBL+jxg7moWWeBLlKmaCPPywDN8xYsIQoRhlN8Kqv+qVhA04SEgOmaLkL0FlAA9YrOA5dZ/Lg4tQ+JUoZAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F6ySVC0z7Wa6lKLSA8VQI7xR/nUyhDCUalGc5dvJlXE=;
 b=dAerKosClWFQg7EguG7rrP69Un3hL0iequyWpZacD82Aq+i0UPFGliWL2MaoTH7LRtOP+1W7Zt91shs4ERr3UABjDOF3CcffF5VWk7vnMz1zlZi3m07roP41JY9Df+1XKvGYG8YuCKaWETSNEM+KIMa7+tboGB2/O73qUnmM+BCY9+dFG2QZzfChoy7nTSo1aerBXNmIE5zaLynuqfXVbTevFtuIwLY7+PslRneo5sAWYcoxb9rz1ux9yUXHVcYE6nH7zHi20wCvWDaHtV3UqshgPowZSvan060FUGeua4xzWJ12QI4BbnKz4RLrSKz8lPe6wvTdeD5TSks47n/uIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <889cfabe-6262-d105-c806-105ee9377fef@suse.com>
Date: Mon, 15 Nov 2021 11:02:26 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/privcmd: make option visible in Kconfig
Content-Language: en-US
To: =?UTF-8?Q?Thomas_Wei=c3=9fschuh?= <linux@weissschuh.net>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
CC: linux-kernel@vger.kernel.org
References: <20211113083821.71060-1-linux@weissschuh.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211113083821.71060-1-linux@weissschuh.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0602CA0012.eurprd06.prod.outlook.com
 (2603:10a6:203:a3::22) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9987c9ab-134a-47d7-d885-08d9a81f06ac
X-MS-TrafficTypeDiagnostic: AM9PR04MB8145:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<AM9PR04MB8145A5390B09FE4CF9FBEA3AB3989@AM9PR04MB8145.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	dVQcwTVJICXid5txS34/pPiaQGmoDaCaystaQ8oFO1cA6winpEqLpImU+H6qPdgg9IQVKjoTckiZPJT6N8evT/7qN8d8yRqhyAsY866ZlW/niHJqfg91FysyroM4ietJJMaQ8tij3c5+6VLHE7a4HcYln/FaldghtLpBkKaFpsNTBqMbNDbqDsnMZJT8DnWW3gvTYBwqLj6UbT4PJM1WF3rFZ/Jo70wn2EZbWjXE7Ukk+yY3DtYIVTRoRsKDK1C6479WA00L4rF2+fjVlnk8blAXCWdS1DxKy/zOs6OvZwPcRn26ceuJMvpjvOBWd/qHx3BrLLIe0mN/5UpyJ3tAU9E3oc043Esl1/kn4ZiZGqBnekuIgGperFf+SqGrec/8oeHpSPdchu8UanKf8fd05b0mMT3ofHkda64+FmNaEIDge/YOhHI7iM2WTYadKqn3eiswCbKgH9eXLwYeOL4wH/uxQgmAlElB2jGyyZ9obP+tS00xcf9oYfY0tWn4KaYrKBR3JLCkOri19L0QzfF4/Y/qu96ahijM1e+798EOybbRoLRztjsNa/PUshETKQ73PJGSDRRcaAKGplVXv6I/nWMOg8b84+zFB4RJmcJ+ygMePY/tNVKK6nHkEaDUy5MpGoOI39Sl4Eb3oYkXWRsPP8QO+OggpU3/ejaBukQSe93PLhsiphLCITgQ71vSaqV8P3A3G8PQ7lLpxUK11cgrRn1OD/F64vkxowBlMV2Wo5/VjKy817iDdSJk/F4Xj1eH
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(110136005)(38100700002)(8676002)(956004)(2616005)(16576012)(36756003)(26005)(8936002)(66556008)(316002)(186003)(31686004)(66476007)(53546011)(66946007)(5660300002)(2906002)(508600001)(4326008)(83380400001)(66574015)(86362001)(6486002)(31696002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?1Ooi29bZiNy7F1YUMPxhDxz4pBi/AmjfcrNqofY/Cjt5lTFiDu7C2dyzHo4n?=
 =?us-ascii?Q?gvhzn2tILWwbt93Vx7YNpEItpGfBul+NAs1TSuNYzsuNi63ZLV3Juz+VVEQr?=
 =?us-ascii?Q?8/QuBqLIGoQhNMFiwNlSeOAKwPYY4Ug+jMFKp+4o1sHH0nAZKBQLAgoNSC6+?=
 =?us-ascii?Q?8DGXVjK/hF3p9BTdBsuqxKWwX4cLtUM3crkGJnHJpTmO+K5yhnZ+4kb6k1yT?=
 =?us-ascii?Q?Q4VIsN9FLdGQRCYLX2Zh8CfA9NXqm15FyObjq6/QVsJ/9+z5GD313+1K4+5M?=
 =?us-ascii?Q?lEtF0WGrHJQ38OToD39AVZOF489zlyZLycyTDPiys0sPvtz3driWdKGLGbq9?=
 =?us-ascii?Q?qMIHziqdUeTSs6ER7KTqdefi97G5HZxs7m2BiCcN8axb02Zxx10Gh931pw72?=
 =?us-ascii?Q?dwNol1t6AJeS4Q5sFcVz6uHCAt67mZT6E8UT7lIK7sw6jayVcSp8nn+WyWeI?=
 =?us-ascii?Q?AM/zJgBrObkchSdOITv30O235NecPCUkG802fQ1fe0RpiN3FhWzRjb0Hk2lm?=
 =?us-ascii?Q?TZ1klp9lZgr7wLrFxwgFM2ICPshzqK78YyA7jftwAXzhg3Vf+tZBdlthEF0M?=
 =?us-ascii?Q?fBT+JKVmX/jHapbhENC0SYHAEQCAOQ0xqxfTFtJweRlyoFF8diFLs2Lc5cWw?=
 =?us-ascii?Q?LpAI/TZvYDyvXCe4+5LBngitK1bHtU0zAcsgh/XP7PFmY5N/0AidcnRJpfJg?=
 =?us-ascii?Q?QyWoaMONv52eCUJimuCD/gZYhs0YlCeziNcDhogMP6gTbGyjhG3cKqwmIaSq?=
 =?us-ascii?Q?tJs/zubRl/fga63HiSaijV+fB+6FMdbi/7IlmPueQg5KjZR3KTxkE6sL8RKE?=
 =?us-ascii?Q?pGIqvbrxWwqR4Jb5a8bHTTC4AZ86PMC1DQbI0ihG/NtNJOD1oaGTr46c0hUx?=
 =?us-ascii?Q?bG/pE+zu2j+CmOGPQl3Z76mVVyqboHVe2PPZ8v3lw0jjj53NlhSIBh4o1kaq?=
 =?us-ascii?Q?5Vsy9a0bTVR1zZ0G/MtodPSt0+MdPpGIb2jrMkBRD+S8BkZWeGC3MtpOurhj?=
 =?us-ascii?Q?/uSvRPXpfxODTzSxIMlNPycDHqboB7UzNLjqgRRij4Vis6ZLOsNdTDaQ1K18?=
 =?us-ascii?Q?FccCVMK9tpJOrrsnCCNPlajUU6iJiCqXtxbL+LeH0T264pNgGahsc+dD2clL?=
 =?us-ascii?Q?aJBOJLdqYEjzucVHJ6jnc1GgonItokOQm7GH139gAPK1qn0ld7++wopxI+Rg?=
 =?us-ascii?Q?vqaPC8FioelpzzCc5lusNu/BsDDWUDma4tsLHmQMnMsrn2zji/ytTBR2BHmM?=
 =?us-ascii?Q?WUUV5Y/EzyZAE6/eiyTLDaOcPQJIedQLhQSP1gKUSvVX9fa1l3HqDyiuaTLW?=
 =?us-ascii?Q?O1WB+RPsd9y565j5/DfRADlvqQeZ3krFWNwx0gufSUbV+hfnQmeA12bi0j6Q?=
 =?us-ascii?Q?EGtG/V3eEEo1pwKcwz1aq2t40GKr47+/lkYa3+ykuFyu6+3bns5VgEUAeHjY?=
 =?us-ascii?Q?oUyuN28spNwH+kZn9GYTHkVaDkTK8lEb2C5vU3i9ilZqGqZmIjSKUTBf4zKq?=
 =?us-ascii?Q?zXumFP9zC3f8juCHnUcL77zgqpgRmWgYx95+/uTgjegmoJO5fv5NcvYMqf2t?=
 =?us-ascii?Q?tWTBF/j0E10luLspcH8fQ8a81L8Lu1eXtwiy3g1bfgoYxNELFtoCaSjgdxzF?=
 =?us-ascii?Q?WUGcKSttBZhzEfPvDyR5h8E=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9987c9ab-134a-47d7-d885-08d9a81f06ac
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:02:26.6145
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: t04rNK6WTvWAj77xgaE022y8m5TuqbDGU9PHs5hKtWppwZHPD8kM4fbboZcsncXzo9a9NSk3B8LlZv+kUgUYZQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8145

On 13.11.2021 09:38, Thomas Wei=C3=9Fschuh wrote:
> This configuration option provides a misc device as an API to userspace.
> Make this API usable without having to select the module as a transitive
> dependency.
>=20
> This also fixes an issue where localyesconfig would select
> CONFIG_XEN_PRIVCMD=3Dm because it was not visible and defaulted to
> building as module.
>=20
> Signed-off-by: Thomas Wei=C3=9Fschuh <linux@weissschuh.net>
>=20
> ---
>=20
> Note: If CONFIG_XEN_PRIVCMD really is only meant to be selected by
> XENFS, then the issue can be fixed by removing its "default m"
> definition.
> ---
>  drivers/xen/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>=20
> diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
> index a1b11c62da9e..c14d8631b8f6 100644
> --- a/drivers/xen/Kconfig
> +++ b/drivers/xen/Kconfig
> @@ -259,7 +259,7 @@ config XEN_SCSI_BACKEND
>  	  if guests need generic access to SCSI devices.
> =20
>  config XEN_PRIVCMD
> -	tristate
> +	tristate "Xen privileged domain-0 commands"
>  	depends on XEN
>  	default m

While I agree with adding a prompt here, I'm not sure why you've added
"domain-0" to its wording. Aiui this interface is equally available in
DomU-s, just that they would be able to only (successfully) use a more
restricted set of hypercalls. Otherwise the XEN dependency would need
to be changed to XEN_DOM0 at the same time as adding a prompt, or the
prompt's visibility be restricted to XEN_DOM0.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:06:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:06:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225729.389845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYsq-0003m3-He; Mon, 15 Nov 2021 10:06:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225729.389845; Mon, 15 Nov 2021 10:06:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYsq-0003lw-DU; Mon, 15 Nov 2021 10:06:40 +0000
Received: by outflank-mailman (input) for mailman id 225729;
 Mon, 15 Nov 2021 10:06:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z40d=QC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mmYso-0003lm-DW
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:06:38 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20623.outbound.protection.outlook.com
 [2a01:111:f400:7d00::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7cc03ef-45fb-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 11:06:36 +0100 (CET)
Received: from AM6PR04CA0027.eurprd04.prod.outlook.com (2603:10a6:20b:92::40)
 by PA4PR08MB6045.eurprd08.prod.outlook.com (2603:10a6:102:ef::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19; Mon, 15 Nov
 2021 10:06:33 +0000
Received: from AM5EUR03FT028.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:92:cafe::3c) by AM6PR04CA0027.outlook.office365.com
 (2603:10a6:20b:92::40) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Mon, 15 Nov 2021 10:06:33 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT028.mail.protection.outlook.com (10.152.16.118) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Mon, 15 Nov 2021 10:06:33 +0000
Received: ("Tessian outbound 892d2780d3aa:v109");
 Mon, 15 Nov 2021 10:06:33 +0000
Received: from 041f24789442.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 DE625DB4-E362-45C7-875C-F59A4932E5E0.1; 
 Mon, 15 Nov 2021 10:06:21 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 041f24789442.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 15 Nov 2021 10:06:21 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB6120.eurprd08.prod.outlook.com (2603:10a6:20b:299::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.22; Mon, 15 Nov
 2021 10:06:20 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 10:06:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7cc03ef-45fb-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IFw2j1tjf25NBA1dYggn3WSIt5R0FrngJH9QcQcSJho=;
 b=Vn4+lZVtUhDfRrkb//UUrVH4h9a7TY16LKw7ZWeSjmnlyVZqKJyVX7UnH1Rh3nqUwqyL5v2ECLQ3UAtq2i39HjkaQyXi/ZAm+kxQ8piSj01ey9JEAyc8T9XyrRavD0N0s5TqnN6OgG/TFo+xLxR8vFhbGynTY5FipgHWF9ZTbQA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 436493fee11f8302
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hrkq12iBx/RKwpHwd3IJlG86tGiigHb2mVQoCyc5Jc05ntMnj/cXvz5qGiZgsfCnLUDcmwbedBFwAmPS1EpvXIik5zpfuXshU/KcWPt5+qv68gWLqhkDK+UbL32INnAZc/ODK3nA8x2w06rB8Mh1Vo8Vu4b5SVpRNki31EB3Ftopn6Y9jCBP28GV6kliGI5Nz5orR9r8ldLNj8XSGBslf993P9H61y0CSifT6iIqmTNrOxYdCZPyxfwD5DsH/ebafjpwlcDYE7pXM7R2Zbtk9G5GKm1i1Wb1fJYDrW5g0J0Wl/0/p8ifLzDF+Qu0zHgdlaqAob5BgIhEewlnViaFug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IFw2j1tjf25NBA1dYggn3WSIt5R0FrngJH9QcQcSJho=;
 b=YFJoej2vH4gZTXk3EpRYEDugmcUysoNUowAHyo9wE7GokT36tQgWM3LKr8Vf1BxLPDgMgEbThxYcSkBdnNIB7wo5O7Ae87ZZ4ynjUa3ytEWlxFkBgqwPxrMP9qj061SrG1EKOpShus60h7UBGmPnxJI14M7lydjLgUbf3ls8iDwI+4906936qggtvgnkOCW/1IEEbCwgAoM3joPr+GYnws/GxY0Rvm3fx7g2Mmvxux4NSIJqO0xZhceediBsHcApbFNuoTeq2Eowzj3vJAealCwyGi6pd2e2KbaRWTxPlvri1VcxzMaEGkibPZUkd363WSplz93aaxohgBMDw+NXGw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IFw2j1tjf25NBA1dYggn3WSIt5R0FrngJH9QcQcSJho=;
 b=Vn4+lZVtUhDfRrkb//UUrVH4h9a7TY16LKw7ZWeSjmnlyVZqKJyVX7UnH1Rh3nqUwqyL5v2ECLQ3UAtq2i39HjkaQyXi/ZAm+kxQ8piSj01ey9JEAyc8T9XyrRavD0N0s5TqnN6OgG/TFo+xLxR8vFhbGynTY5FipgHWF9ZTbQA=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Elliott Mitchell <ehem+xen@m5p.com>
CC: Julien Grall <julien.grall.oss@gmail.com>, Henry Wang
	<Henry.Wang@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Thread-Topic: ACPI/UEFI support for Xen/ARM status?
Thread-Index:
 AQHX133CsQ6+s6pLvkyQczdSyBF05qv/ZG4AgACk+gCAAAUHAIAADdAAgAAM2gCAADyfAIAADw8AgAAGlgCAAAfxAIAAIj8AgAO8VYA=
Date: Mon, 15 Nov 2021 10:06:20 +0000
Message-ID: <E6611A60-F092-4D47-8756-7A6A33840B5F@arm.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <YY6bsu8/y/LeMfg3@mattapan.m5p.com>
 <40474f12-e269-f251-99b1-cb5b0a317bb2@xen.org>
 <YY7ZVPQSTapB7Jnj@mattapan.m5p.com>
 <CAJ=z9a0EooNfXyrNB82_4yT9qnz5fxEJtVN6oUbVyCzjU4hEKA@mail.gmail.com>
 <YY7rfIWPC1PwidMA@mattapan.m5p.com>
 <CAJ=z9a1=V+MKD0a9aTCBvy-1nxKj4TC7ZOg82oBYn1vmfsu23g@mail.gmail.com>
 <YY8O4GOfYg4Bz2CW@mattapan.m5p.com>
In-Reply-To: <YY8O4GOfYg4Bz2CW@mattapan.m5p.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 681e4a6a-8009-46aa-9f85-08d9a81f9a3b
x-ms-traffictypediagnostic: AS8PR08MB6120:|PA4PR08MB6045:
X-Microsoft-Antispam-PRVS:
	<PA4PR08MB60459FF1051D56BD2F92BEDA9D989@PA4PR08MB6045.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 alBWehHlaHSSFuOFHcyf3TBfpaK81On4nToP98P9uNND5lrztLo6HzzCkLIv9CaeBEM5Xuyn2Q/aruVlqMeYYylK/rRq8R7lev+w0yJvV9CNTvuGYzSVJ9jvYO4K+BBoXPwBh3UV8+bOGDZe9poxAkBdg16oB1gUKj4jahxsSjU8H2CRucFLJpFUX5ei+xpKUG22rF7Cq4sTVaSY3xeymW/Yr+G9xG8RzJP/Dbebki4aZL5ALxdaTsamZdLWqxJFDwUK+/kJUZ0OXdNy6pwN9lzd7GxdEn8b7cN0FoApA0NM70nNfNVyXoOVpEr1lWhZib3EfPRK9K68BsIcFF/Tdvf1W6h6Ebt7LN7Tjm4jAMqJgiecw0PXSPuzK8iU2nkyXWORp+YF7MKY7RzrSsw1JPgmxgtlxetC1RiQEFRYkIXwutEagRkreoEYPYfZaU3jZ3rBoNuDspiN3YUG+Wf5VKLYdli/dSfGN8m5/PqOrY32+dVav2vbhbxg7Rhw5ncdsiZrOd6Ux5yuGYedr2fAx2xF6pT6UM0wYhrK/2Qxk1e6kt6AnOrXvttNgAr5cvxW7ES1lTA7iABizWopyNEsmsv/SCse7/Hzemnz2vYcBXrakiblyF+2MI8TmSVb2MMPrazh6AZBR+T7SPTKSRMESpnGIzec1MKs/c9DWlOoDJURQ5afZxAnobSYb20FD75MFueS2EqpbmpK+jxRfkaZoaD79dN4tcSS7p5JPvVv5NFUqvDh5n8TOggiXSdMmquG
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(33656002)(76116006)(86362001)(91956017)(2616005)(83380400001)(2906002)(6512007)(66946007)(6486002)(54906003)(8676002)(5660300002)(8936002)(66476007)(508600001)(36756003)(316002)(71200400001)(4326008)(6506007)(53546011)(66556008)(64756008)(66446008)(122000001)(26005)(38100700002)(38070700005)(186003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <F57EA136CF978D459F33591909510D79@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6120
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT028.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	99567cef-4533-4db1-c0e4-08d9a81f9286
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	8BiW/q88n2d++jqIVRC+vYRMbVbt1vqjZKFwiGBIHQuCsZYGwR/7BMpueIF109bOdhJmRm8c30+MNrcKpMQS0t5TWc4j5AtZi/ZoJiXuTATtyF8btbKKyvaiyNSDEIjYyzk7y/osXTxKCEfGylHHE2ef8lLflOetJamJrfokhekwnHI0fWlKJl+VgvIcrj3oxi/2k6lnAj88cVbP8DJ11In3XKkHUDjYd54N077Ux6HhyBCm9AkCEQytVyLf5yws8o5Y3Bx6BZogTwYPLLsYIxC+4r8v37GnF/NFN03MstxIwxO+84YHY6E07szJVaq7IppNaRpKXzzzkOqyP3aHl2FQM/CW6fdpAle8oGoKRSkCf4/Ffw2grkG40LAeAcVaa4H7k4+KBRlKnJPlF/GmOoZbtJSevOxWwUGsdgjHvxzd3ucvjJrBB/S4LBbcbUJPKnnXvr5QY6IIExCydvwbyiAv4iPyfsG4C6wmSQzWnned0k38retnRHDhweXD361BQCKugGRiz1ou4tN3TfVg2kjAn1hofQeWS8196ah9Tny7DvDmHdHIhS4I2SO+lmQl3SF1lhgI0SrhKq9bY1Dmba79yGO6xp0Njgtdqyqz14Um0mG2LY2crDUtxtwVWUgoIGuqWoatM1Nm86SnkRo0Ai3y4q0Mg6Vkgne0tRs7zdLzN5yLQBIOFjzX0d3l6sqt+73F7EUHKqZnTxiiOSOkSw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(47076005)(36860700001)(53546011)(54906003)(8936002)(82310400003)(5660300002)(26005)(6506007)(186003)(8676002)(36756003)(6862004)(4326008)(6486002)(70586007)(2616005)(70206006)(2906002)(33656002)(81166007)(336012)(316002)(86362001)(356005)(6512007)(83380400001)(508600001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:06:33.4087
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 681e4a6a-8009-46aa-9f85-08d9a81f9a3b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT028.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6045

SGkgRWxsaW90dCwNCg0KPiBPbiAxMyBOb3YgMjAyMSwgYXQgMDE6MDMsIEVsbGlvdHQgTWl0Y2hl
bGwgPGVoZW0reGVuQG01cC5jb20+IHdyb3RlOg0KPiANCj4gT24gRnJpLCBOb3YgMTIsIDIwMjEg
YXQgMTE6MDA6NTRQTSArMDAwMCwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4gT24gRnJpLCAxMiBO
b3YgMjAyMSBhdCAyMjozMiwgRWxsaW90dCBNaXRjaGVsbCA8ZWhlbSt4ZW5AbTVwLmNvbT4gd3Jv
dGU6DQo+Pj4+IE15IHByZWZlcmVuY2UgaXMgdG8gaW50cm9kdWNlIGEgcGVyLXBsYXRmb3JtIHF1
aXJrIChJIGJlbGlldmUgU3RlZmFubyB3YXMgaGFwcHkNCj4+Pj4gd2l0aCB0aGlzKS4gVGhlIGFk
dmFudGFnZSBpcyB3ZSBjb3VsZCBnZXQgQUNQSSBzdXBwb3J0IGZvciB5b3VyIGJvYXJkIGhvcGVm
dWxseQ0KPj4+PiBtZXJnZWQgcXVpY2tlci4NCj4+PiANCj4+PiBUaGlzIGNvdWxkIGJlIHdvcmth
YmxlIGFzIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQuICBMb25nZXIgdGVybSBJIHN1c3BlY3QNCj4+
PiBpdCBtaWdodCB3ZWxsIGJlIHJhdGhlciBiZXR0ZXIgdG8gKmZ1bGx5KiB0YWNrbGUgdGhlIGlz
c3VlICpub3cqLg0KPj4+IE90aGVyd2lzZSB0aGlzIHNlZW1zIGxpa2VseSB0byB0dXJuIGludG8g
YSBkYXRhYmFzZSBvZiBib2FyZC1zcGVjaWZpYw0KPj4+IGhhY2tzIGZvciBodW5kcmVkcyBvciB0
aG91c2FuZHMgb2YgZGV2aWNlcy4NCj4+IA0KPj4gQXMgdXN1YWwsIHlvdSBoYXZlIHRvIGZpbmQg
YSBiYWxhbmNlIGJldHdlZW4gY29zdCB2cyBiZW5lZml0cy4NCj4+IA0KPj4gSWYgeW91IGxvb2sg
YXQgdGhlIERldmljZS1UcmVlIHNpZGUsIHdlIGRvbicgdCBoYXZlIG1hbnkgcGxhdGZvcm1zDQo+
PiByZXF1aXJpbmcgcXVpcmtzLg0KPj4gSW4gcGFydGljdWxhciwgdGhlIERNQSBpcyBzbyBmYXIg
c3RyaWN0bHkgbGltaXRlZCB0byBhIHNpbmdsZSBwbGF0Zm9ybSAoUlBJKS4NCj4+IFNvIEkgd291
bGQgYmUgc3VycHJpc2VkIGlmIHdlIHN1ZGRlbmx5IHJlcXVpcmUgdG9ucyBvZiBxdWlya3Mgd2hl
biB1c2luZw0KPj4gQUNQSS4NCj4gDQo+IFByZXNlbnRseSB0aGUgRE1BIHF1aXJrIHdvdWxkIGJl
IHRoZSBvbmx5IGNvbnN1bWVyLCBidXQgdGhlcmUgd2lsbCBsaWtlbHkNCj4gYmUgb3RoZXIgY29u
c3VtZXJzIGxhdGVyLiAgTWlnaHQgdGhlcmUgYmUgZmV3IGRldmljZS10cmVlIHF1aXJrcyBkdWUg
dG8gYQ0KPiBzaG9ydCBsaXN0IG9mIHBsYXRmb3Jtcz8gIE1pZ2h0IGZ1bGwgQUNQSSBzdXBwb3J0
IHZhc3RseSBpbmNyZWFzZQ0KPiBYZW4vQVJNJ3MgdGFyZ2V0IGF1ZGllbmNlPyAgKHBhcnRpYWxs
eSBBQ1BJIHNvIGNvbXBsZXggdG8gc3VwcG9ydCBzbyBtYW55DQo+IHZhcmllZCBkZXZpY2VzKQ0K
DQpXZSBoYXZlIGJlZW4gbG9va2luZyBhdCB0aGUgcG9zc2liaWxpdHkgdG8gaGF2ZSBBQ1BJIHN1
cHBvcnQgaW4gWGVuLg0KVGhlIG1haW4gcHJvYmxlbSB3aXRoIHRoYXQgaXMgdGhlIGNvc3QgaW4g
bGluZXMgb2YgY29kZSBpbiBYZW4gd2hpY2ggd291bGQgYmUgaGlnaA0KYW5kIGFzIGEgY29uc2Vx
dWVuY2UgdGhlIG1haW50ZW5hbmNlIGNvc3Qgd291bGQgYmUgaGlnaC4NClNvIGlmIGFueXRoaW5n
IGlzIGRvbmUgaXQgbXVzdCBzdGF5IHByb3Blcmx5IGxpbWl0ZWQgdXNpbmcgaWZkZWZzIHRvIG1h
a2Ugc3VyZSBwZW9wbGUNCm5lZWRpbmcgYSDigJxzbWFsbOKAnSB4ZW4gY2FuIHN0aWxsIGhhdmUg
b25lLg0KDQpOb3cgSSBhbSBvbiB0aGUgc2FtZSBzaWRlIGFzIEp1bGllbiwgSSB3b3VsZCBiZSB2
ZXJ5IGhhcHB5IHRvIGhlbHAgcmV2aWV3aW5nIGlmIHlvdQ0KZGVjaWRlIHRvIGRvIHRoZSB3b3Jr
IDotKQ0KDQo+IA0KPiBJIGRvIGNvbmNlZGUgYSBkZXZpY2UtcXVpcmsgaXMgcmVhc29uYWJsZSBm
b3IgdGhlIHNob3J0LXRlcm0uICBQcmVzZW50bHkNCj4gSSBkb24ndCBrbm93IHdoZXJlIHRvIGxv
b2sgZm9yIGJldHRlciBtYXRjaGluZyB0YXJnZXRzLCBzbyBJJ20gdHJhcHBlZCBpbg0KPiBhIGNh
dmUgd2l0aCBubyBsaWdodC4NCg0KV2hhdCBpcyB5b3VyIG5lZWQgZXhhY3RseSA/IEEgdGFyZ2V0
IHdpdGggZnJhbWUgYnVmZmVyIHN1cHBvcnQgPw0KDQpSZWdhcmRzDQpCZXJ0cmFuZA0KDQo+IA0K
PiANCj4gLS0gDQo+IChcX19fKFxfX18oXF9fX19fXyAgICAgICAgICAtLT0+IDgtKSBFSE0gPD0t
LSAgICAgICAgICBfX19fX18vKV9fXy8pX19fLykNCj4gXEJTICggICAgfCAgICAgICAgIGVoZW0r
c2lnbXNnQG01cC5jb20gIFBHUCA4NzE0NTQ0NSAgICAgICAgIHwgICAgKSAgIC8NCj4gIFxfQ1Nc
ICAgfCAgX19fX18gIC1PICNpbmNsdWRlIDxzdGRkaXNjbGFpbWVyLmg+IE8tICAgX19fX18gIHwg
ICAvICBfLw0KPiA4QTE5XF9fX1xffF8vNThEMiA3RTNEIERERjQgN0JBNiA8LVBHUC0+IDQxRDEg
QjM3NSAzN0QwIDg3MTRcX3xfL19fXy81NDQ1DQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:08:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:08:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225734.389856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYuY-0004Mi-S6; Mon, 15 Nov 2021 10:08:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225734.389856; Mon, 15 Nov 2021 10:08:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYuY-0004Mb-P1; Mon, 15 Nov 2021 10:08:26 +0000
Received: by outflank-mailman (input) for mailman id 225734;
 Mon, 15 Nov 2021 10:08:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmYuX-0004ME-7q
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:08:25 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f820dc6e-45fb-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 11:08:24 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2058.outbound.protection.outlook.com [104.47.14.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-9-lotXKW-6Nhes8r2ODRippA-1;
 Mon, 15 Nov 2021 11:08:23 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB4145.eurprd04.prod.outlook.com (2603:10a6:208:57::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.22; Mon, 15 Nov
 2021 10:08:22 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 10:08:22 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0070.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::47) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.26 via Frontend Transport; Mon, 15 Nov 2021 10:08:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f820dc6e-45fb-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636970904;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=b5jtFWyJbg3cqw/Q+xikBVTcUFSXwfvaXTrrJN9N3TM=;
	b=PmKZnBXMAlesj/6RBzgxZDme4adwTo+c3Lzr8jl5Np09m3cYMV8Wm9hMQUKkP2YUERm6kU
	glz1IDOrX2cyKgWuDFbQ+oFPot0YMhJ5qBRYwAZ9szeYNMd0NZKBO5M5jgylWwe0ISZPO5
	WWv7uYL9WDyGY3BMcsqD+Z2SXZEYq30=
X-MC-Unique: lotXKW-6Nhes8r2ODRippA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=S90I3Nh5Ftz5MFKTgiDKR/nkG3VaHNlE8j+4HMyuyqcvQAVdpsBhIuySjuPPykei9LKNoO2Cq6h7d926v38R/ir+QhZbqzKIoLVpcLQT77s2S7I/4wIqyRDM0Vu/LjCqLiQMsMVWX5FZyGwI2PVrI/GFeZau4VGuO9sYiON/LTjGBGbOjdGDeCW9y/3+9g2CEYRguLVBk863XcPZpxqPldEx2nFTIMgz4tP698L3XsTKynyUx20b+YR5AXWV/P6ljTcGCHssSYMyc/qxqFXlukApyKD9pma7W8SbBA/zplIKHL2O4LW7iMqwYzfyQ6E6O0kpPhVqGCBH2iteemvXvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=b5jtFWyJbg3cqw/Q+xikBVTcUFSXwfvaXTrrJN9N3TM=;
 b=Fcy+4RBBoUJeo5SWP8SFLOgy6fUWQ1WNQxtnWf0gd0DpAliFgPeqfYh+vSf8F/l/cN1LhVXJjdiDHwxtyKCI9O18eMjFEZ8ALQb7WyzdTC6xo76ClMKtYMwP+wS5I+Yei5DWkbXDkH376ZK8cXAEaObIn90V1d3wDBNL2aRHSV2R8U1PmbwPx2Yf2egboTyqVgPy0GlF7Xoy/jgQnrYvWDPRA2btLfNj+lLBtqH195TfHfm5WSRkMNW7zOms94fw1hfvBEPHYygJ4N3yhE1DTi8N5BZbNwiw79eJ7korz5FJZWrb0osuU0LkuxlXhyq9USfZ5fCaLSlzVvPGbgLNsQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6be8285f-6cbe-c115-a826-585664c91022@suse.com>
Date: Mon, 15 Nov 2021 11:08:22 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen: don't continue xenstore initialization in case of
 errors
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, Stable@vger.kernel.org,
 jgross@suse.com
References: <20211112214709.1763928-1-sstabellini@kernel.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211112214709.1763928-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P194CA0070.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:84::47) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a5d1593c-539b-418f-915f-08d9a81fdae0
X-MS-TrafficTypeDiagnostic: AM0PR04MB4145:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB41453259DAE97BE7F0AEF70AB3989@AM0PR04MB4145.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2657;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	VVnIVMHLYyHCtUxEA1IPOJkRjEdSEVro3GZvQRmRGesawH/Rlm69atrObnp4pddAK8y+nkKp3+uWR6oZbFOLMReQgB/oRluebr+U6Q/aBfT6WHh8V2LFypKr/pKUPAMgnH8YINF77K0YFkb/9iMV0qqIkpqtCsIJSNhZRv66ATj3vP8KMjqAqrK86Y++FdGoNAu7edrYkawmp8qFQ2IriTWHPI6B6K5QdCc5QQ2TEDNNXNTUdmJk1Xfi2PJ1D98GKMksb0ap7dIb/4DD3qHjw92HKY/JeVnIZnhh0XK62YwCE3H061160/xZxD5Ut0qmXh1+fvT/rewyXFunY6OqZdWSqz9gWseSg9PDUnDLv4fzZBzOHvccean063i7enqW9JqOnL5L5CGPp4tes9A6soPvo4Yyk7/LqgGM4AS2garUSCBi7Pru3qXuorX2OgtIOGbUbuXZB/2Z5OepHAHIH3JcuS/3cYnGJKwC4mi+0rQi3inU/g+qlptC6YwBQJM1Ka0S6QK3A44ZK3m4DHEjFd2CAR5/MH5r0ZRfGOk9Q7v2WFAeh0RirheAL0yihrmmtW2A7lPDfjHkraqRvfG0w0M1FGuk9ZKHqtUdt7lwzTiVHER9QjNkGGcgIBMcTTPyEuipS22hNyh+Y8DhmY9Ny7RR9pWJG4Rxa1axsuNvn4EIQkXNhslgoCgdDhrNaxdILNRRqF9eV/cTrJ0HkTS7u5luisrFk29/xRTvkK3Z0VY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(16576012)(107886003)(53546011)(66946007)(5660300002)(86362001)(8936002)(66476007)(66556008)(31686004)(508600001)(8676002)(6486002)(38100700002)(956004)(2616005)(4744005)(186003)(36756003)(26005)(31696002)(2906002)(4326008)(6916009)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R3VDeDNEYVpkbGhJRUZnMzVja1Z0em9JKzBNbFV3d0NnZVN0aklJUElvS2li?=
 =?utf-8?B?b3BaZWFETWk3U0NWcHViV3QzSXVDWDVNZ0FCVzNzdzNuNll0QUtDQS9jSUw5?=
 =?utf-8?B?WGloQXFieWdEaG9uU3NRajJXbFV2UnBTaFBvZDlNV2JLc1VxUTJ6ZzhDdkRv?=
 =?utf-8?B?WlZsUHpZelBsT3J3Z0FkaGZheC9kSHNySGpIN2F6ZythS20xWWZxa1F2V0hR?=
 =?utf-8?B?Ulc0eVg3UERTV1ZjWHVlbnpMa3dqYnFDeXJjY1FPcXhSME1zbHZxbmVOdTNw?=
 =?utf-8?B?YStSbW53NGt4bUl2c2UyU3VUZjNBaWljRE5JQkFocHFVcGl6QVoyUFVqSlRx?=
 =?utf-8?B?bG1JN0hsWEF2SnVNaG5DbzdsYWlDZ280WC9hdDBOUEZ1Sk8vU0Y5bEhucTRG?=
 =?utf-8?B?RUF2dG4zM0tjWUFsbTFIcmt5TENOOFBHdWtORndLYnM0V0F5dW5ZSkVPR015?=
 =?utf-8?B?ZWlhbU5yMC9IeDVxQ2FDWXVwOU51d3l1Vmk5S1N0Zm41cDRDcTd4cHZEMzZ0?=
 =?utf-8?B?bmpjRnZmU2Y2NzZsdzdxa0R6SEc1SFhlMFdlcWR5SXpwUmdsWHdBbDFxRThl?=
 =?utf-8?B?R3R6NDVuNzlsSktsa2JyU21pM3p6ZE1SUjZ4SUxoc1NSOHpza3RUcXNTREFL?=
 =?utf-8?B?Q1BtZnZWRVBvL3E5MjNqa2FCWnN6bzZJcWZ3S21YdTRQVm1HcENubXB4WEU3?=
 =?utf-8?B?WlhOVmxLakFZUmE5UmlVVHprcGNoUi9UUndiekdQR2tyOUl1OFRSM1ZXSVdV?=
 =?utf-8?B?ZE1rVVczSTViTGJ3Z3dRRCt3MnMrU3pydkZtTm1QQitjbDVzM2pzd2pnVjY4?=
 =?utf-8?B?SDUraExRaUVWcTV5M0g2NmhTUUxWMVcvdFVLbDV3T3VNcm9nM1hMTzkvWkRZ?=
 =?utf-8?B?RDNyWjNsNG5EeDhGd1VVNlA5aEQzYXkwL0RLdFMrZmczMTgxTUIwSkVnbUtD?=
 =?utf-8?B?ZGdiU3p2WXFvRTZGNUh4NEhzNzBKRDYzRFJ1VldkdmYwbC8xV3UrdkJ2WHha?=
 =?utf-8?B?U2dJYWRVbEI0Yk9pUU8ybzh3WExhdkprZVBWbTlqbE54UHVja010dkkveUJP?=
 =?utf-8?B?L0ltMnhwY0ZHNERLYnFtSjJSc2FJUEhwSW9QOFhWSnArZUhoOStaV204Nys4?=
 =?utf-8?B?Q2NNdElPaGRuWnNheWtySFZLQlFnckNBTFhldHQ5V2hxNU1nZnNwR0Q0UGFB?=
 =?utf-8?B?RHJZZm9PTS9XWGNsNWhCRGlaTGpEN1BFMlVlUEVVOXFud0FWdTE2TlJ3TGtS?=
 =?utf-8?B?Mm1SK3BYcFNEdVRndFczamNOM0RJdGdOOTRoM3IzU00wZWh4Ti9Ndm05b0lH?=
 =?utf-8?B?R2tZTkNEVi83TUU5Q1NDMDIyWHJYRTg1UE1ZdUtUVFFFOUhXSFg3Y0lHL3JD?=
 =?utf-8?B?Ti9Zek1CeEVjZGRTQTlzTVQyeWdhV3M4QlVuVjV1Ni91UmhPdHpBUmM2bTBW?=
 =?utf-8?B?N0VqRHRoZHV4M25mWmpFTFZDM3M1anNaYUsrMFlLbG9zMEdjSXZLOTk4R1dj?=
 =?utf-8?B?M2N4YmdnM1JMdW83aVZYd1JGdlRPS05JWk55L2F6T3JsVDRiajlKMUI1Vnhp?=
 =?utf-8?B?KzdZREZoMlZXU2hLQlozdXdRVGx2amh3S0hrUGd3MFAzRnF4WTZUUWlLZFlN?=
 =?utf-8?B?V3dBekF0WlBDaHBFbXk2NnQ0dVV5QmJyZWp3SEhOOUJkUVhhU3R1OG12dzRN?=
 =?utf-8?B?aXEzZjFyaVJTTnNqdzl3QnE5RlUwZUorOE40cnpvdFBKZ3lvbjdsVUFUSXFD?=
 =?utf-8?B?UlVYa3FIVFJDTFVyTktzVUdMUzg3ZkkwWHFVZVNKbGNOL0xLbGZvSDlsSW5w?=
 =?utf-8?B?WHZPRzBHV0M4VEFWV1FITTVNR0Q2SHJSV09wbXFmZ2h1MVRrVXNBQ1B0Wnl5?=
 =?utf-8?B?dFBDSmRvRnNqUHcvc2Z1b0RQeVhVR044TEU2TExwVlk1a0pLSjlHMWxTZllq?=
 =?utf-8?B?ZGlVa2ZKNnh3RHh6M0JtajRLalkrUHlVOVdSMnA3OG9OWWcwd2dwT2RIZTNB?=
 =?utf-8?B?RGtVdWVRcy8xU1NvY1ZJVXdwUlc0UTJ2MUxRbGZFbStUTElHN1dVZERNeVov?=
 =?utf-8?B?NWZiS1VEOEE2Qlg0RmlUNFY3alNlRnZUVTIwdSsvQlIwU1QvM1JQaXBOT3lv?=
 =?utf-8?B?UXR5bGt3RGZFNktpakNzK2tzZVE2ekFLWkdnTE1oWVBxMmZxMHk5VHBpWU5n?=
 =?utf-8?Q?f+rwsoCmNoDxyJk0f/p1x/g=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a5d1593c-539b-418f-915f-08d9a81fdae0
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:08:22.0607
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9yV5vA0DTj27W3huiJYd7topd851w+8vJMRHY6t4cusjuhtKFdM25sXzvk1LXMeIFLmKZp1xxUUeEDWCbZe2ug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4145

On 12.11.2021 22:47, Stefano Stabellini wrote:
> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -983,8 +983,10 @@ static int __init xenbus_init(void)
>  	 */
>  	proc_create_mount_point("xen");
>  #endif
> +	return err;

Personally I think such cases would better be "return 0". With
that done here, err's initializer could (imo should) then also
be dropped.

Jan

>  out_error:
> +	xen_store_domain_type = XS_UNKNOWN;
>  	return err;
>  }
>  
> 



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:13:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:13:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225737.389866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYzF-0005kl-EW; Mon, 15 Nov 2021 10:13:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225737.389866; Mon, 15 Nov 2021 10:13:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYzF-0005ke-BU; Mon, 15 Nov 2021 10:13:17 +0000
Received: by outflank-mailman (input) for mailman id 225737;
 Mon, 15 Nov 2021 10:13:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z40d=QC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mmYzE-0005kY-Ss
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:13:17 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20609.outbound.protection.outlook.com
 [2a01:111:f400:7d00::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a553c971-45fc-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 11:13:15 +0100 (CET)
Received: from AS9PR04CA0061.eurprd04.prod.outlook.com (2603:10a6:20b:48b::15)
 by AM9PR08MB7291.eurprd08.prod.outlook.com (2603:10a6:20b:436::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Mon, 15 Nov
 2021 10:13:13 +0000
Received: from VE1EUR03FT049.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:48b:cafe::e7) by AS9PR04CA0061.outlook.office365.com
 (2603:10a6:20b:48b::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend
 Transport; Mon, 15 Nov 2021 10:13:13 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT049.mail.protection.outlook.com (10.152.19.216) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Mon, 15 Nov 2021 10:13:13 +0000
Received: ("Tessian outbound 1cfce3f02e53:v109");
 Mon, 15 Nov 2021 10:13:13 +0000
Received: from 9fb19854e47f.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 498E6AE5-1271-4407-A6E3-BB865EF2CC92.1; 
 Mon, 15 Nov 2021 10:13:05 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9fb19854e47f.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 15 Nov 2021 10:13:05 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB3271.eurprd08.prod.outlook.com (2603:10a6:209:47::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Mon, 15 Nov
 2021 10:13:03 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 10:13:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a553c971-45fc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=spZAT6W81ggCozky8fV7Gcx4QMlj1IcrJoENlS0LI0c=;
 b=3W8pserLABaaAQhoqgtH5Xb1XqZvmqF4Hdyn4+wM/WAi8WLolgCUysQEOi45c4lWmTCtN8JNyvVOx5JJnAf1iGd0T8cW8cWSXyOlPJ+0Hy+tKaQeMIHB2pXzw+CiZoGAPpYQdV+1coqHhTo49Ay8Zl54bIbBf26hVpGbSXTfkCQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 725e6220502bda9e
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XdVkENrjBPiuxAqactBv5ZDXZ3oxHisJkAHFOr4BNCohnS+P+gQcrK5rJlvVyaI63Rd1Q4QmaKBQCl7KQGly0/BEiOolSipSR+n/8ujNO5RWVhyDeq5RAuMVGq4MS7zj9qKiIKzuvGX0+c7BLjY3AGnOawF9eQMv8M0zYMPf5KQFKR6Pu2p+BCAYPMkDmHbbhchQEuP/CXAth49TpLA2Z0nTx3k/HgegpprZ3awPAWV05o+gIdsON7VP9LBRVOep0rjoUSxdQiejqbyhayqH8GAGfwqa96TOIzUvgNwLlYGZxNugwoqi+Shk3giODgwwc8xYywBtxMhhSj3QH9UdIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=spZAT6W81ggCozky8fV7Gcx4QMlj1IcrJoENlS0LI0c=;
 b=dcEQ/AxTy4hFdodiysv+lhsadhHj/8rXqy2WwhUJ0a8z9r6Ma6twNLByAfoRTFm9/VcJIN0eN7hCScGupEG39eGUyd/f/Vd6oOOPpwJ8nZsG4t9nIFtDUsYugHM2y1OwRqPwLOrvWLKD6DW1kg5U6lVicjknkNidVMSPidkxLvfpuvVapFuew17sC158DYxCALcXTYgteDJZeBfK0CjCEw2N9Dkvin7x9R9/9NY2C4VFEVE0YFJfQeTqLu3f0QCClnsGRb7N9gECfvb9l+cOQs4QYVJ/f8p/FZ4SIop44nKlE7GTUn2lTe8hojljL4XwD8RdPoS6buu0UMqJeD5bBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=spZAT6W81ggCozky8fV7Gcx4QMlj1IcrJoENlS0LI0c=;
 b=3W8pserLABaaAQhoqgtH5Xb1XqZvmqF4Hdyn4+wM/WAi8WLolgCUysQEOi45c4lWmTCtN8JNyvVOx5JJnAf1iGd0T8cW8cWSXyOlPJ+0Hy+tKaQeMIHB2pXzw+CiZoGAPpYQdV+1coqHhTo49Ay8Zl54bIbBf26hVpGbSXTfkCQ=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<JBeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Thread-Topic: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Thread-Index: AQHX1yW51DCh4Kb6WkC+olJaqOqcEawEZHMA
Date: Mon, 15 Nov 2021 10:13:03 +0000
Message-ID: <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
In-Reply-To: <20211111175740.23480-2-andrew.cooper3@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 9e3ae1a8-5e72-4d14-4809-08d9a82088bf
x-ms-traffictypediagnostic: AM6PR08MB3271:|AM9PR08MB7291:
X-Microsoft-Antispam-PRVS:
	<AM9PR08MB729126E678157E18CB5CB4969D989@AM9PR08MB7291.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:6108;OLM:6108;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 luYqxnDanqLolx0RglfN1q2zV/yW4JbYpOrlZzBmf6Y6WZOWn6ZMZrvr8OmYp2MsACJvKRvuQUhnv4bhbBMxZu6TDKAr/YDWWW/aUp38ExC5OES0wqmfcXBP2BkAGavgLWP/xSqdvopSIo2nI8UBIJgE16tWllRsz3yNC4B5G6RJY7+XvCY9WxWTP/PIYh+QY2s+fvrxzJ+Tl+rFsTMmL13AqtEY4kdwFFJzI/+SuvcpPjbu+lky0VxC6FUU+GonjoXd41oX1w3U8dIkL09VVqqGL/Dy4n91LAkVEYMejurzPVdz+cTwv3SSkCux5qJlESRZQTJazWwPTNEYkLyN1Vu4l6huqESx9TFDd8IYMHK6CUitYybvMm7fp3bYOYw8mVF9kb3IcnWJIvjHLtRzgSctQ8KkROD5+q3a/patDarlaXaIPwb03FuJn36Yza0wMPErlHk8lb2TptO/WrGNoPG8vCDpsKX5f8VcJo6rQ8gFOheBS+56gqXTKK2VqXzpNjTjQ7+SVNl1eNyd8crrN8W1T7VwyIgfPejoaa6YU3XwcAecTrzjm/FYqteSoBaafwmbPt2P1QSIgHuTjQ/k7Vvzls6alX517DVcGSKI87k7FKVwkhVFc6ifmDzx/U1hoJBbV55GWrI+EsRGqq6NuAO8JooKGwbQW+WCQ8kfrm1Kf2Vfg67TgLHPi3Hbxy8lEayDbnM1TKC1N4V3YlCeoiN028KXldd3h36rzPfVL/DBTc6+9GfhG+1D6eFHyhRp
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(316002)(91956017)(71200400001)(66476007)(53546011)(6486002)(4326008)(33656002)(2906002)(76116006)(54906003)(186003)(66446008)(64756008)(26005)(66556008)(6512007)(508600001)(66946007)(38070700005)(8936002)(86362001)(5660300002)(36756003)(2616005)(83380400001)(38100700002)(122000001)(6506007)(6916009)(8676002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <83A2EC20EF4D31459DAFF025C5D24AB8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3271
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT049.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3e85cf94-a4cd-46ec-01b1-08d9a82082d3
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	R/xr9mUkhB9BFJsToWbN+XhzLIQhptlwvMElwyZIuASDBTbKzl6TcohSGd3lt6j+5gmwuz++pUOO2j/PG4jkX+Vs6BSs5Wfh03T4opkh3rYgbgJnWM17F6xlhPLj4Z4QsPnhgt9KOSPiRMUqsCQBbZA1F2aI17jUvzn/VahuC9bnLud1Zd0cWvIypLKG30JCUJR6CtKAJQzk4KrRfIVstXAnt/Ji8bMnG194gAI34DhD/IX8eRUM0zT2LPxMT/PX0wjxQm/5fOs6lH0+zAqW9SjWEh/BV2lza775VUexAf6p0uF3/gZybQJfA7t896jSHQ1ip2/d2hhZ3PbF5eiL6Hux06/0zHlN9V6J+wqMh1QaSQq1WTO/lXCaDdsqhmqIV5CzqX6ytkNkeOhKso4fZ19bUAtk5LcyamhECf7LEe8p3TT5K53lggsINtDI1ZaZ5YFMxQ2E+8n8Tb3w8k4pkdMjSqOqqO+2y/EqOv94V/0qGGkXtHKNn6bbsFUArcU5Jg6Px7s0sKKGSNPoVfFt8Kpkhs3nh+oRbb7b4R2tUy+1CPFwUy+QN++N6XTg+QCdr4hDfuljexL8FjVG6DCRDThu8ZFSqtRIzYYf/5AJQ36ATwqOdqT8I1BldazsVUXQCBADO6qa4UZu2IormfmnUp9zCrDYD02AlBxrJMRYMorBg62gX+6YO4AdXbq/B0OflwZqV7LfMtCSnAAuWfgKXw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(26005)(86362001)(82310400003)(4326008)(33656002)(53546011)(316002)(6506007)(54906003)(70206006)(5660300002)(8676002)(6486002)(70586007)(8936002)(508600001)(2906002)(186003)(6512007)(47076005)(2616005)(107886003)(81166007)(36860700001)(356005)(6862004)(36756003)(83380400001)(336012);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:13:13.4823
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e3ae1a8-5e72-4d14-4809-08d9a82088bf
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT049.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB7291

SGkgQW5kcmV3LA0KDQo+IE9uIDExIE5vdiAyMDIxLCBhdCAxNzo1NywgQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4gd3JvdGU6DQo+IA0KPiBSZXRwb2xpbmVzIGFyZSBl
eHBlbnNpdmUsIGFuZCBhbGwgdGhlc2UgZG8gYXJlIHNlbGVjdCBiZXR3ZWVuIHRoZSBzeW5jIGFu
ZA0KPiBub3N5bmMgaGVscGVycy4gIFBhc3MgYSBib29sZWFuIGluc3RlYWQsIGFuZCB1c2UgZGly
ZWN0IGNhbGxzIGV2ZXJ5d2hlcmUuDQo+IA0KPiBQYXVzZS91bnBhdXNlIG9wZXJhdGlvbnMgb24g
YmVoYWxmIG9mIGRvbTAgYXJlIG5vdCBmYXN0cGF0aHMsIHNvIGF2b2lkDQo+IGV4cG9zaW5nIHRo
ZSBfX2RvbWFpbl9wYXVzZV9ieV9zeXN0ZW1jb250cm9sbGVyKCkgaW50ZXJuYWwuDQo+IA0KPiBU
aGlzIGFjdHVhbGx5IGNvbXBpbGVzIHNtYWxsZXIgdGhhbiBiZWZvcmU6DQo+IA0KPiAgJCAuLi9z
Y3JpcHRzL2Jsb2F0LW8tbWV0ZXIgeGVuLXN5bXMtYmVmb3JlIHhlbi1zeW1zLWFmdGVyDQo+ICBh
ZGQvcmVtb3ZlOiAzLzEgZ3Jvdy9zaHJpbms6IDAvNSB1cC9kb3duOiAyNTAvLTI3MyAoLTIzKQ0K
PiAgRnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkICAgICBu
ZXcgICBkZWx0YQ0KPiAgX2RvbWFpbl9wYXVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAtICAgICAxMTUgICAgKzExNQ0KPiAgZG9tYWluX3BhdXNlX2J5X3N5c3RlbWNvbnRyb2xs
ZXIgICAgICAgICAgICAgICAtICAgICAgNjkgICAgICs2OQ0KPiAgZG9tYWluX3BhdXNlX2J5X3N5
c3RlbWNvbnRyb2xsZXJfbm9zeW5jICAgICAgICAtICAgICAgNjYgICAgICs2Ng0KPiAgZG9tYWlu
X2tpbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDI2ICAgICAzOTggICAgIC0y
OA0KPiAgZG9tYWluX3Jlc3VtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQ2ICAg
ICAyMTQgICAgIC0zMg0KPiAgZG9tYWluX3BhdXNlX2V4Y2VwdF9zZWxmICAgICAgICAgICAgICAg
ICAgICAgMTg5ICAgICAxNDEgICAgIC00OA0KPiAgZG9tYWluX3BhdXNlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDU5ICAgICAgMTAgICAgIC00OQ0KPiAgZG9tYWluX3BhdXNlX25v
c3luYyAgICAgICAgICAgICAgICAgICAgICAgICAgIDU5ICAgICAgIDcgICAgIC01Mg0KPiAgX19k
b21haW5fcGF1c2VfYnlfc3lzdGVtY29udHJvbGxlciAgICAgICAgICAgIDY0ICAgICAgIC0gICAg
IC02NA0KPiANCj4gZGVzcGl0ZSBHQ0MncyBiZXN0IGVmZm9ydHMuICBUaGUgbmV3IF9kb21haW5f
cGF1c2VfYnlfc3lzdGVtY29udHJvbGxlcigpDQo+IHJlYWxseSBzaG91bGQgbm90IGJlIGlubGlu
ZWQsIGNvbnNpZGVyaW5nIHRoYXQgdGhlIGRpZmZlcmVuY2UgaXMgb25seSB0aGUNCj4gc2V0dXAg
b2YgdGhlIHN5bmMgYm9vbGVhbiB0byBwYXNzIHRvIF9kb21haW5fcGF1c2UoKSwgYW5kIHRoZXJl
IGFyZSBwbGVudHkgb2YNCj4gcmVnaXN0ZXJzIHRvIHNwYXJlLg0KDQpUbyBhZGQgYW4gYXJndW1l
bnQgdG8gdGhlIGRpc2N1c3Npb24gSSB3b3VsZCBzYXkgdGhhdCBwcmV2ZW50aW5nIHRvIHVzZSBm
dW5jdGlvbg0KcG9pbnRlcnMgaXMgc29tZXRoaW5nIHRoYXQgaXMgZ29vZCBmb3IgRnVTYSBzbyBJ
IGFtIGluIGZhdm91ciBoZXJlLg0KDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVy
IDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0KPiAtLS0NCj4gQ0M6IEphbiBCZXVsaWNoIDxK
QmV1bGljaEBzdXNlLmNvbT4NCj4gQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRy
aXguY29tPg0KPiBDQzogV2VpIExpdSA8d2xAeGVuLm9yZz4NCj4gQ0M6IFN0ZWZhbm8gU3RhYmVs
bGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4NCj4gQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVu
QHhlbi5vcmc+DQo+IENDOiBWb2xvZHlteXIgQmFiY2h1ayA8Vm9sb2R5bXlyX0JhYmNodWtAZXBh
bS5jb20+DQo+IENDOiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+
DQo+IC0tLQ0KPiB4ZW4vY29tbW9uL2RvbWFpbi5jICAgICB8IDMxICsrKysrKysrKysrKysrKysr
KysrKystLS0tLS0tLS0NCj4geGVuL2luY2x1ZGUveGVuL3NjaGVkLmggfCAxNSArKysrKy0tLS0t
LS0tLS0NCj4gMiBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMo
LSkNCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9k
b21haW4uYw0KPiBpbmRleCA1NmQ0N2RkNjY0NzguLjU2Mjg3MmNkZjg3YSAxMDA2NDQNCj4gLS0t
IGEveGVuL2NvbW1vbi9kb21haW4uYw0KPiArKysgYi94ZW4vY29tbW9uL2RvbWFpbi5jDQo+IEBA
IC0xMjM0LDE1ICsxMjM0LDE4IEBAIGludCB2Y3B1X3VucGF1c2VfYnlfc3lzdGVtY29udHJvbGxl
cihzdHJ1Y3QgdmNwdSAqdikNCj4gICAgIHJldHVybiAwOw0KPiB9DQo+IA0KPiAtc3RhdGljIHZv
aWQgZG9fZG9tYWluX3BhdXNlKHN0cnVjdCBkb21haW4gKmQsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdm9pZCAoKnNsZWVwX2ZuKShzdHJ1Y3QgdmNwdSAqdikpDQo+ICtzdGF0aWMg
dm9pZCBfZG9tYWluX3BhdXNlKHN0cnVjdCBkb21haW4gKmQsIGJvb2wgc3luYyAvKiBvciBub3N5
bmMgKi8pDQoNCkhlcmUgeW91IHVzZSBjb21tZW50cyBpbnNpZGUgdGhlIGZ1bmN0aW9uIGRlZmlu
aXRpb24uDQpJIHRoaW5rIHRoaXMgaXMgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGF2b2lkZWQg
YW5kIGluIHRoaXMgc3BlY2lmaWMgY2FzZSBhDQpib29sZWFuIHN5bmMgaXMgY2xlYXIgZW5vdWdo
IG5vdCB0byBuZWVkIHRvIGV4cGxhaW4gdGhhdCBmYWxzZSBpcyBub3NpbmcuDQoNCj4gew0KPiAg
ICAgc3RydWN0IHZjcHUgKnY7DQo+IA0KPiAgICAgYXRvbWljX2luYygmZC0+cGF1c2VfY291bnQp
Ow0KPiANCj4gLSAgICBmb3JfZWFjaF92Y3B1KCBkLCB2ICkNCj4gLSAgICAgICAgc2xlZXBfZm4o
dik7DQo+ICsgICAgaWYgKCBzeW5jICkNCj4gKyAgICAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYg
KQ0KPiArICAgICAgICAgICAgdmNwdV9zbGVlcF9zeW5jKHYpOw0KPiArICAgIGVsc2UNCj4gKyAg
ICAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQ0KPiArICAgICAgICAgICAgdmNwdV9zbGVlcF9u
b3N5bmModik7DQo+IA0KPiAgICAgYXJjaF9kb21haW5fcGF1c2UoZCk7DQo+IH0NCj4gQEAgLTEy
NTAsMTIgKzEyNTMsMTIgQEAgc3RhdGljIHZvaWQgZG9fZG9tYWluX3BhdXNlKHN0cnVjdCBkb21h
aW4gKmQsDQo+IHZvaWQgZG9tYWluX3BhdXNlKHN0cnVjdCBkb21haW4gKmQpDQo+IHsNCj4gICAg
IEFTU0VSVChkICE9IGN1cnJlbnQtPmRvbWFpbik7DQo+IC0gICAgZG9fZG9tYWluX3BhdXNlKGQs
IHZjcHVfc2xlZXBfc3luYyk7DQo+ICsgICAgX2RvbWFpbl9wYXVzZShkLCB0cnVlIC8qIHN5bmMg
Ki8pOw0KU2FtZSBoZXJlLg0KDQo+IH0NCj4gDQo+IHZvaWQgZG9tYWluX3BhdXNlX25vc3luYyhz
dHJ1Y3QgZG9tYWluICpkKQ0KPiB7DQo+IC0gICAgZG9fZG9tYWluX3BhdXNlKGQsIHZjcHVfc2xl
ZXBfbm9zeW5jKTsNCj4gKyAgICBfZG9tYWluX3BhdXNlKGQsIGZhbHNlIC8qIG5vc3luYyAqLyk7
DQpTYW1lIGhlcmUuDQoNCj4gfQ0KPiANCj4gdm9pZCBkb21haW5fdW5wYXVzZShzdHJ1Y3QgZG9t
YWluICpkKQ0KPiBAQCAtMTI2OSw4ICsxMjcyLDggQEAgdm9pZCBkb21haW5fdW5wYXVzZShzdHJ1
Y3QgZG9tYWluICpkKQ0KPiAgICAgICAgICAgICB2Y3B1X3dha2Uodik7DQo+IH0NCj4gDQo+IC1p
bnQgX19kb21haW5fcGF1c2VfYnlfc3lzdGVtY29udHJvbGxlcihzdHJ1Y3QgZG9tYWluICpkLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKnBhdXNlX2Zu
KShzdHJ1Y3QgZG9tYWluICpkKSkNCj4gK3N0YXRpYyBpbnQgX2RvbWFpbl9wYXVzZV9ieV9zeXN0
ZW1jb250cm9sbGVyKA0KPiArICAgIHN0cnVjdCBkb21haW4gKmQsIGJvb2wgc3luYyAvKiBvciBu
b3N5bmMgKi8pDQpTYW1lIGhlcmUuDQoNCj4gew0KPiAgICAgaW50IG9sZCwgbmV3LCBwcmV2ID0g
ZC0+Y29udHJvbGxlcl9wYXVzZV9jb3VudDsNCj4gDQo+IEBAIC0xMjg5LDExICsxMjkyLDIxIEBA
IGludCBfX2RvbWFpbl9wYXVzZV9ieV9zeXN0ZW1jb250cm9sbGVyKHN0cnVjdCBkb21haW4gKmQs
DQo+ICAgICAgICAgcHJldiA9IGNtcHhjaGcoJmQtPmNvbnRyb2xsZXJfcGF1c2VfY291bnQsIG9s
ZCwgbmV3KTsNCj4gICAgIH0gd2hpbGUgKCBwcmV2ICE9IG9sZCApOw0KPiANCj4gLSAgICBwYXVz
ZV9mbihkKTsNCj4gKyAgICBfZG9tYWluX3BhdXNlKGQsIHN5bmMpOw0KPiANCj4gICAgIHJldHVy
biAwOw0KPiB9DQo+IA0KPiAraW50IGRvbWFpbl9wYXVzZV9ieV9zeXN0ZW1jb250cm9sbGVyKHN0
cnVjdCBkb21haW4gKmQpDQo+ICt7DQo+ICsgICAgcmV0dXJuIF9kb21haW5fcGF1c2VfYnlfc3lz
dGVtY29udHJvbGxlcihkLCB0cnVlIC8qIHN5bmMgKi8pOw0KU2FtZSBoZXJlLg0KDQo+ICt9DQo+
ICsNCj4gK2ludCBkb21haW5fcGF1c2VfYnlfc3lzdGVtY29udHJvbGxlcl9ub3N5bmMoc3RydWN0
IGRvbWFpbiAqZCkNCj4gK3sNCj4gKyAgICByZXR1cm4gX2RvbWFpbl9wYXVzZV9ieV9zeXN0ZW1j
b250cm9sbGVyKGQsIGZhbHNlIC8qIG5vc3luYyAqLyk7DQpTYW1lIGhlcmUuDQoNCkNoZWVycw0K
QmVydHJhbmQNCg0KPiArfQ0KPiArDQo+IGludCBkb21haW5fdW5wYXVzZV9ieV9zeXN0ZW1jb250
cm9sbGVyKHN0cnVjdCBkb21haW4gKmQpDQo+IHsNCj4gICAgIGludCBvbGQsIG5ldywgcHJldiA9
IGQtPmNvbnRyb2xsZXJfcGF1c2VfY291bnQ7DQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94
ZW4vc2NoZWQuaCBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oDQo+IGluZGV4IDI4MTQ2ZWU0MDRl
Ni4uMzdmNzhjYzRjNGM5IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaA0K
PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaA0KPiBAQCAtOTIwLDI2ICs5MjAsMjEgQEAg
c3RhdGljIGlubGluZSBib29sIHZjcHVfY3B1X2RpcnR5KGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQ0K
PiANCj4gdm9pZCB2Y3B1X2Jsb2NrKHZvaWQpOw0KPiB2b2lkIHZjcHVfdW5ibG9jayhzdHJ1Y3Qg
dmNwdSAqdik7DQo+ICsNCj4gdm9pZCB2Y3B1X3BhdXNlKHN0cnVjdCB2Y3B1ICp2KTsNCj4gdm9p
ZCB2Y3B1X3BhdXNlX25vc3luYyhzdHJ1Y3QgdmNwdSAqdik7DQo+IHZvaWQgdmNwdV91bnBhdXNl
KHN0cnVjdCB2Y3B1ICp2KTsNCj4gKw0KPiBpbnQgdmNwdV9wYXVzZV9ieV9zeXN0ZW1jb250cm9s
bGVyKHN0cnVjdCB2Y3B1ICp2KTsNCj4gaW50IHZjcHVfdW5wYXVzZV9ieV9zeXN0ZW1jb250cm9s
bGVyKHN0cnVjdCB2Y3B1ICp2KTsNCj4gDQo+IHZvaWQgZG9tYWluX3BhdXNlKHN0cnVjdCBkb21h
aW4gKmQpOw0KPiB2b2lkIGRvbWFpbl9wYXVzZV9ub3N5bmMoc3RydWN0IGRvbWFpbiAqZCk7DQo+
IHZvaWQgZG9tYWluX3VucGF1c2Uoc3RydWN0IGRvbWFpbiAqZCk7DQo+ICsNCj4gK2ludCBkb21h
aW5fcGF1c2VfYnlfc3lzdGVtY29udHJvbGxlcihzdHJ1Y3QgZG9tYWluICpkKTsNCj4gK2ludCBk
b21haW5fcGF1c2VfYnlfc3lzdGVtY29udHJvbGxlcl9ub3N5bmMoc3RydWN0IGRvbWFpbiAqZCk7
DQo+IGludCBkb21haW5fdW5wYXVzZV9ieV9zeXN0ZW1jb250cm9sbGVyKHN0cnVjdCBkb21haW4g
KmQpOw0KPiAtaW50IF9fZG9tYWluX3BhdXNlX2J5X3N5c3RlbWNvbnRyb2xsZXIoc3RydWN0IGRv
bWFpbiAqZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQg
KCpwYXVzZV9mbikoc3RydWN0IGRvbWFpbiAqZCkpOw0KPiAtc3RhdGljIGlubGluZSBpbnQgZG9t
YWluX3BhdXNlX2J5X3N5c3RlbWNvbnRyb2xsZXIoc3RydWN0IGRvbWFpbiAqZCkNCj4gLXsNCj4g
LSAgICByZXR1cm4gX19kb21haW5fcGF1c2VfYnlfc3lzdGVtY29udHJvbGxlcihkLCBkb21haW5f
cGF1c2UpOw0KPiAtfQ0KPiAtc3RhdGljIGlubGluZSBpbnQgZG9tYWluX3BhdXNlX2J5X3N5c3Rl
bWNvbnRyb2xsZXJfbm9zeW5jKHN0cnVjdCBkb21haW4gKmQpDQo+IC17DQo+IC0gICAgcmV0dXJu
IF9fZG9tYWluX3BhdXNlX2J5X3N5c3RlbWNvbnRyb2xsZXIoZCwgZG9tYWluX3BhdXNlX25vc3lu
Yyk7DQo+IC19DQo+IA0KPiAvKiBkb21haW5fcGF1c2UoKSBidXQgc2FmZSBhZ2FpbnN0IHRyeWlu
ZyB0byBwYXVzZSBjdXJyZW50LiAqLw0KPiBpbnQgX19tdXN0X2NoZWNrIGRvbWFpbl9wYXVzZV9l
eGNlcHRfc2VsZihzdHJ1Y3QgZG9tYWluICpkKTsNCj4gLS0gDQo+IDIuMTEuMA0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:13:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225739.389878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYzl-0006LP-Sa; Mon, 15 Nov 2021 10:13:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225739.389878; Mon, 15 Nov 2021 10:13:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmYzl-0006LI-PY; Mon, 15 Nov 2021 10:13:49 +0000
Received: by outflank-mailman (input) for mailman id 225739;
 Mon, 15 Nov 2021 10:13:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmYzk-0005kY-6v
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:13:48 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b845e480-45fc-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 11:13:47 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2059.outbound.protection.outlook.com [104.47.2.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-18-JQjTFDyCO4C9GEKKus6LqQ-1; Mon, 15 Nov 2021 11:13:45 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM8PR04MB7732.eurprd04.prod.outlook.com (2603:10a6:20b:237::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 10:13:44 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 10:13:44 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR0502CA0037.eurprd05.prod.outlook.com (2603:10a6:20b:56::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Mon, 15 Nov 2021 10:13:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b845e480-45fc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636971226;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=wTJz5F1ShH4PkzlJhZclzsOhEIfGlYRmaiELeWfwqno=;
	b=GLgN0FOi0v7LC4Yaxfx1mWyNkjBsCbNZoF+5nfGKDJ+r4bUvHH3/2WTUcre2oCKD82BKa7
	lBHgKnTbqs10uu4EiNY+YiK1A6xQIDRznA285i6ofJinkZgqDaM/Mh+mnffGeO3FAtL0wn
	oNeGRqQJPJNqVsK7/wYeAFnaqeWBAog=
X-MC-Unique: JQjTFDyCO4C9GEKKus6LqQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nFdG8dgxOccNrdpyA7EUYeNs1HbpWK9bUFWEqw/iGCMdIZlyVSHe+20wfqi1JZpaVbTThEjwUTykIbXC8tTRCoTNnZH26cVqOCMd0d/FUfdh5DsVe2dG6BOk9oq44aL3pZoaB25rbuUcQtp+3KTtn0GMMClWFyoczWWXiO3xslkV1fjugz17oywvrISnLWurbKqdd1HUMtu/uqIntLp1S/f+fyAtNQ8rMgUWebgIlDWis0uIeJ/KMW4+962fnEGkSWhh+Eo4ozUkJyZv+icrFqDtO8Z0rrKKf4jtBwWPsQKT/Uao2jBrYpFDmMsMD8ilEBc+99pznp9Ms8qruFY6oQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wTJz5F1ShH4PkzlJhZclzsOhEIfGlYRmaiELeWfwqno=;
 b=NsB8xDLRa4qVsriP4w4dGOlftRrKAa2p/bMZSd2AmOSFTbS5X/Cqxt7eKlhOheBXbXFwau1EJ+MSdQNz2y/SBN135AWgLJSSin/dr3mCjCRxqn3lW27mwK6XfijadNlYrh0qXxgdiXJnVj+zmX07hH6bGqxKzZhcRBtM6aithGgtd0mJwIRiMhmWoZLRcsSpwdi0BbnJSqCpMqk1HnP8EsZRYCP+erbl93MeWc0Ny5FJqVqkEx6XNF+9YgesjmotOO/oV5n1527EsmgBiMW3CFG7bB0yMgFnB/F6VCgoW4tBIzVXQVC4t61ETa594uJSIcQFKGAjk1CtOsjISnE+tg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <64e9208d-ecda-2e62-e10f-81750c0279fb@suse.com>
Date: Mon, 15 Nov 2021 11:13:44 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Content-Language: en-US
To: Julien Grall <julien@xen.org>, Elliott Mitchell <ehem+xen@m5p.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Henry Wang <Henry.Wang@arm.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR0502CA0037.eurprd05.prod.outlook.com
 (2603:10a6:20b:56::14) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 35fd17f1-10a0-4326-ec7a-08d9a8209adb
X-MS-TrafficTypeDiagnostic: AM8PR04MB7732:
X-Microsoft-Antispam-PRVS:
	<AM8PR04MB7732151AAC6892AAE7E0A7DCB3989@AM8PR04MB7732.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	8wZ9yJyeqGKDI6+PHLtpzVUzXaHZWGw++qrEnTvWKfLan1Rm/35ansowuivB7EWAomTXq7cIzF6LCB9NRFMxUQrydKkpb27Cmmu1F1ceuyfRBYPkK17HLcBJnzAcRBuuychT/fd0a4DQ++UIc/ZEBlShUpn3c8C6pzmrkP7wzijF7T6ff9xe+X6gCRsxZVUbemRtLDaeS27kk7uTSbUOQjM44CMDlHqLWAihZcLPsDxvjVT8/KAMlvVc0doOQDoxdfMk5Ogugiq5qz0QrDSwguOLipDQvKf/BswgTdkdzilIWiL0SfFfmx4Ox/D0JhI1r4vBCcH/ZhG8cXWRjpyH+hHwnSIrBhMUWYWT7YTz/pAsFihX/7QXAgfiCR3LYL2TW0bpJb7D3PjWE0oFs+4tdJO8reBjIyC7+mm3SAnfmgHGu59Ja45GfcnLycWZ9NzxWfbiHRjiE/yEYcuPvEzNZXlDKhduOqDuGex53ozc5D9VvIztNmEZOBKYl4I1Q/FZBdR3j2fApQufK9NDJ1OuxZw3io9MiPgcEcdeGOTHb5lbGzpllnco5AiIrKGiDfiPplxnbm7ODby8Qcof0tQaZgzpw7LfoQl+mhkfn2eJJ+SZkwM6NK8sQUIAdbox5A9TRAFgqY1W5RbMueCaUsmRucW9jEQGihsfHeBG84dR6eo765eFKvEmSSrSyLIrUPIJ0dPwE3batHDdvkyJ9/NTJtKUwVfcreKCit76W+ZXSTa/i4OBQLo3HHhDzFFh1gxF
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(31696002)(4326008)(956004)(508600001)(66556008)(16576012)(316002)(66476007)(110136005)(54906003)(83380400001)(86362001)(66946007)(2616005)(2906002)(6486002)(5660300002)(31686004)(36756003)(26005)(8936002)(186003)(8676002)(53546011)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b1ZjZG5IbG9sMmFLblgrbDEzc0IwR2hCaGF6S0t0Z2gvdkFlbGFiQXVPaXpt?=
 =?utf-8?B?QjZlR2ppUmhKNjVXRzFLVjk3TlJBL2RVV3RxVnpJaVk5WUVvQ2JtaVg4WTBW?=
 =?utf-8?B?RUxFRUFZd3l6YlVuV2xQMVdvaFBqeWlDZU1KbkVrdmVwTnc1eTV1NDZINHU3?=
 =?utf-8?B?cno5UkJ2NzRqdFJ5MGdmYS9oTmtQdGN2cTRjWDE1OUViSkFkUjQ1QUl6VDgw?=
 =?utf-8?B?Z2NJRGYyYm8wbEdEOWVKbzhxa2FSNkxDM2hBc3FOU2VWM3BQUXBybUYzNWl4?=
 =?utf-8?B?MzRPOUxQa1h6SWt2dG9mM09XSndCcHVDeEUzTzFvNXNUNWRHUDJOck03b202?=
 =?utf-8?B?MEd3VW4vUDRocDdBbWw1dVFwbEdpeWluVW5GOXdWTGZNdjJVU2c4WGRHV245?=
 =?utf-8?B?Ky9RaVVxL2tFcTA2cERLZTNHV2R5Nmp3bTZjaEJ1bUluZGVOY3hScG9lSkxJ?=
 =?utf-8?B?SGNEK2lBdTQ2T0Q1WVRXQnhWYUc0SlBkZ2xXVU1VdVdFbEJRRTAyNlJ0WkQ5?=
 =?utf-8?B?Ti9nZjc3dDZqWmxRd1BnWDRuMjdMbVIxS00wemp4OHFjeHFFY1ozeEdOL0E1?=
 =?utf-8?B?eWVyT1FjakdkVzBhZTVOaWMwbEkxKzRST1QxWFluQVlOdnJuUk9taVVONUN5?=
 =?utf-8?B?NWxwRFVUSFc0ZTdZSDU2UXkxektNcWZqUEgzdlZkd2tJUkkwcnFmdEIzVVJX?=
 =?utf-8?B?c212clU5RFJOZGtlc1BUbjM3aXR0NnB0b252TzVxNms2OS9LQ3UyVWsrTUto?=
 =?utf-8?B?MFFCdDJWZUVabEVIc1pISHlCWmxFQzZGRUNic3hBT2NLdDZjK3BncEhqRFRl?=
 =?utf-8?B?T094OFFCSXdzWERPUHgyOTN4elRoT0N3TW5oV25qRTdTZEZBTzV5UzJhTlJT?=
 =?utf-8?B?b2FLdVpyc2IrRkYveGZ0Y3JEdUJxVzNZcE5sSVI3ZzRMNVZQUzhYWGxiYkNP?=
 =?utf-8?B?SjRDdURuNGgxajlveUdiQmFaV21CV0FHTG44VzFITjczWEtTVVB5TE1KbEp5?=
 =?utf-8?B?N0tPL1hyKzdnZWQ4NW0vc0M5ZUQrbXlkS1FDbTM5MEZOWHJ5NGJPRjBpNDZM?=
 =?utf-8?B?Q1RzU1VDRVpKR1kza2l6WHdIeUhYd3dsRStaMUw3TmVVdjdVeTl6UytyMGdp?=
 =?utf-8?B?S0c1MUdJOC9QaTQ2a3JyWE9VMUxScVQ3dFVPUE85MWNjbWgzT1A0WHJIWmlo?=
 =?utf-8?B?U0p2ZzRwcUJDRE1lUHlxcGxNblhka09Ea2NOVzNuYXVZWXRtMGptUUE4N2JL?=
 =?utf-8?B?R1V3Qm16bTZ5cHVtWVZVVlhTZVFubFFVaEZCanhVc3BMME1SK1IxcnkyMHI3?=
 =?utf-8?B?VGlBa1dtOXlvUEtMOC9ZZFRLWjNkZlR4MkUzeU5UZSttZTB3NS9OSE9QMXpn?=
 =?utf-8?B?ZEtlTndvcE1xQ0pvSFFHZG9BQVdkZ09NSGhadkdSNnFQNXB0clJNUXl5aGU3?=
 =?utf-8?B?VHNpOXQweGNPQlFGbXJ1azdKR08ybitBMnpQMWk1Um5KZ2lqdEdSTXlha0dm?=
 =?utf-8?B?R2NlQVpqMEJtUTNtNEV1aXJ4S081akNVY243UDNycjdTZWNMVEJJYUszOThL?=
 =?utf-8?B?ekVjT2tKckVKUE1oWE9MR0Roa2ZwQ3pwemdvUzBMU2NuVWRTZzRwWDV0ZGI4?=
 =?utf-8?B?c2xnTWxUUk1Ib0xQWUJCNStoRFQ0a0FnRlhIMEVIaEQzU2dlNzUrdUFsRURE?=
 =?utf-8?B?Q0ZHNmx6Ui9PY3hFaEs0d1d0SlR4U090MjMyTFVkM2Yzc1FRVDlPanBJeHB6?=
 =?utf-8?B?YnN0NCs0VTAwdklRSEkvNFdDU3liTzNxejFRbmVhc1czNjFEZURFdkNLd1E2?=
 =?utf-8?B?M3h5eldBNjBUcDdSRU9KcWJmZHNjQTFueURRTU5uY3NoZGE3dk9uSUpwM29q?=
 =?utf-8?B?RmgrR0RSUktrS0FmYnFoN1VhYkdtTVFaTlJXMlBtYnVFUUNXdHFxOTdSbzJV?=
 =?utf-8?B?MVhUYlBrL1IyQ241VklGL0dBOXl6bkdBditMaUtLc3ZLOHUzMDhuV29wbVN3?=
 =?utf-8?B?MjJUK2pKSFVqT0NwTWVzMHlRcE9PV2JJU3JSNGpYV0hPMFo5TTdKK0RYMjhr?=
 =?utf-8?B?K2NPQ2M5cCtwRkFCVnJkYmZ4WmxLMDFUampYeVEzUXlsZTJZMUxpbUIrbyt6?=
 =?utf-8?B?VENjZ3UvUXJDaExxMGtLWkNpdHFoVk1QMEs5WWM1VnJXeHByQm00Zlkxbm5V?=
 =?utf-8?Q?h1Qemwm234VxqQbls5nos0I=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 35fd17f1-10a0-4326-ec7a-08d9a8209adb
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:13:44.1209
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8GNqyxRdyDeH5P5ppOB/sJNeBjBnaXS4eyesEY7Y447XCYvLt+BWQa/KjBvtFfuAus9FC74kNEK/lLN6deOXOg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7732

On 12.11.2021 17:02, Julien Grall wrote:
> Hi Elliott,
> 
> On 12/11/2021 15:44, Elliott Mitchell wrote:
>> On Fri, Nov 12, 2021 at 05:54:08AM +0000, Henry Wang wrote:
>>>
>>>> -----Original Message-----
>>>> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
>>>> Elliott Mitchell
>>>>
>>>> I've been busy with another part of this project, so I've lost track of
>>>> progress on ACPI/UEFI support on ARM.
>>>>
>>>> Last I'd read full support for ACPI/UEFI seemed a ways off.  Using a stub
>>>> domain to constrain ACPI table parsing seemed the favored approach.  I
>>>> was under the impression that would take some time.
>>>>
>>>> What is the status?  Do the Xen/ARM leads have any guesses for when full
>>>> ACPI/UEFI support might reach completion?
>>>
>>> I am doing some development based on the Xen UEFI/ACPI on AArch64 using
>>> the Arm FVP_Base platform. Using edk2 and master branch of Xen with
>>> `CONFIG_ACPI=y`, it seems everything can work properly.
>>>
>>> Here are some of my logs:
>>> Shell> FS2:EFI\XEN\xen.efi
>>> Xen 4.16-rc (c/s Fri Nov 12 02:34:01 2021 +0000 git:323b47ffd9-dirty) EFI loader
>>> ...
>>> (XEN) PFN compression on bits 20...22
>>> (XEN) ACPI: RSDP F5E30018, 0024 (r2 LINARO)
>>> (XEN) ACPI: XSDT F5E3FE98, 005C (r1 LINARO RTSMVEV8        2       1000013)
>>> (XEN) ACPI: FACP F5E3FA98, 0114 (r6 LINARO RTSMVEV8        2 LNRO        2)
>>> (XEN) ACPI: DSDT F5E3ED98, 02AB (r2 LINARO RTSMVEV8        4 INTL 20200925)
>>> (XEN) ACPI: GTDT F5E3FC18, 00E0 (r2 LINARO RTSMVEV8        2 LNRO        2)
>>> (XEN) ACPI: APIC F5E3E998, 02D4 (r4 LINARO RTSMVEV8        2 LNRO        2)
>>> (XEN) ACPI: SPCR F5E3FF98, 0050 (r2 LINARO RTSMVEV8        2 LNRO        2)
>>> (XEN) Domain heap initialised
>>
>>> ...
>>> [    0.000000] ACPI: SPCR 0x00000000F5E3FF98 000050 (v02 LINARO RTSMVEV8 00000002 LNRO 00000002)
>>> [    0.000000] ACPI: SPCR: console: pl011,mmio32,0x1c090000,115200
>>> ...
>>>
>>> Hopefully this answers your question. :)
>>
>> Thanks for the attempt at answering, but the SPCR entry tells me there is
>> a substantial portion of ACPI/UEFI functionality you're not testing.  I'm
>> specifically looking for framebuffer console support and SPCR says you're
>> using serial console.  While serial console is appropriate for true
>> servers, for some use cases it is inadequate.
> 
> We don't have any support for framebuffer in Xen on Arm (even for 
> Device-Tree). I would be happy to consider any patches if you are plan 
> to post some.
> 
>>
>> Julien Grall and Stefano Stabellini had been proposing doing ACPI table
>> parsing in a stub domain, but I'm unaware of the status.  Not finding
>> much suggests it hasn't gone very far yet.
> 
> This was a very early proposal in case we needed to parse the DSDT in 
> Xen. This hasn't been needed so far, hence why this is not implemented 
> and no-one worked on it.
> 
> I am not very familiar how the framebuffer is detected in ACPI. Can you 
> provide more details on what exactly you want to parse?

I don't think there's any ACPI support involved there. Instead UEFI data
needs propagating to Dom0, as that can't access EFI boot services itself.
At least this is all that's needed on the x86 side (and all the needed
code is there, just presumably not [fully] wired up on Arm).

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:20:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:20:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225744.389889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZ6K-0007mv-L3; Mon, 15 Nov 2021 10:20:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225744.389889; Mon, 15 Nov 2021 10:20:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZ6K-0007mo-H3; Mon, 15 Nov 2021 10:20:36 +0000
Received: by outflank-mailman (input) for mailman id 225744;
 Mon, 15 Nov 2021 10:20:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmZ6J-0007md-8m
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:20:35 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aaedd2cc-45fd-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 11:20:34 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2050.outbound.protection.outlook.com [104.47.6.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-17-djC64rE_OgOkuNTR8WjqRw-1; Mon, 15 Nov 2021 11:20:32 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM8PR04MB7988.eurprd04.prod.outlook.com (2603:10a6:20b:24e::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19; Mon, 15 Nov
 2021 10:20:31 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 10:20:31 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0062.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::39) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Mon, 15 Nov 2021 10:20:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aaedd2cc-45fd-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636971633;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ycgNOxVJRYLj0YEZjL+D8k3uwU/iSODKZskAKvuAumU=;
	b=Pkew552aph48f9nuvKHOYrxMiA42REcykg4GUC3jfXfJ/ST5SaBzfCrvFXzTbn1ozXgg82
	z2/SWDTl1YSeH2IXiXlVACzq4GuK2a25yiCH7qHhGRkaaiUmFS5eHG+yWgAeKZ5qUAFRM1
	2axL7+z0fxGPHoSpfXMMR/mKm8vuHR8=
X-MC-Unique: djC64rE_OgOkuNTR8WjqRw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mFk7A3z6hUpmrP224iwlLwOsPoWx2of9j2D+rujHWZqvic8w5hbl7hR7UnVCcb64lXDESVs3PT+o18UyVRgYsJPSipOsucGIRGr7ph3tjirmJ1HO/+Ge3bVFCr9BXQoLfb1BXV+GlY8wz1+QT9qKZMoaCaNPY6vkBw/SyOwWSKUe0HIUiDKlgg3dHEsYVAL7x3PgrFdWTs0WECFrXG+wdsgHkUmmwL+e4FDrlu2cJ9EtlRR0I26CbzNlDSNmZk8mM1/pb+tVQdJL5bgh1DoXdzce8vcFoNfQ5qeBtSmOBnI8wCEkQEJroeYdjKobRm3QhiQDCRWUY43TqhO+WrQtMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ycgNOxVJRYLj0YEZjL+D8k3uwU/iSODKZskAKvuAumU=;
 b=addhgLTQC7ZWLsU3JyWFGjKyWjlI2+BNWOrlgUMx/rmnl50zenW2W83iOEaCmUI2rA5XJr13m0sQce/v8JFINYfDXeIviYkbhwdJUVW7xv+f8gnG9CZsC6y7mNRu4+u9S59oBJtn9ZICZ5uMqPEawQQyv+rSZbwPkRKAH2i/cq2IsJtQ0VBlIb4aZJb49cB/eOG95BD5rJd+BVst7DI/j19e7TEErO2gHYYXUysaXKrytk6LnIzCK13XG/MI39cqJ4hqrBupN5DguKkWoBDOUmNiKOagcVbOWhMw8fvM+EHSXMYxXeWwGfvQyOLAuyaP5joTpivS0hIgGJ9nVYuN1w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a1b2aa1b-7d8a-4ab6-cde5-25581ee9841c@suse.com>
Date: Mon, 15 Nov 2021 11:20:31 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Content-Language: en-US
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR1001CA0062.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::39) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4d0d91d7-d8e2-4c20-05e9-08d9a8218d77
X-MS-TrafficTypeDiagnostic: AM8PR04MB7988:
X-Microsoft-Antispam-PRVS:
	<AM8PR04MB798846270BE656F8AFC03ACEB3989@AM8PR04MB7988.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	fZXxadpiEmvgHWwEnZe0rAa+KXl7GEojEwObfpBPpF7frE3fGTQl3XbOlfhetgNyPUwDY1uHT/8LhgVFPR1zq4jJFs5tB8e2OkdyMD+SUquD62+ikK2DgCFNG0xPtQvuYhfFcUSwh21z6P9Yr4NNBsXP7842In26o4r/uCcO8DRoya9jO9uv+yYR0zRQIW4ug+2AexXyiHo5WO5uNI7vEP8Qvdw7YK+gPf8wcp7Pjk0EvjKA1DcR2AK+dlP6L5JseDEIPJLz5/pTems7j7m3qnligtrOb+WwPMW6nJwwxAPLe4Rtxqk5sq7MBtT8VgPbzrRNiilJVAfDDceCjatIFHXCqR0Z7V9W+hka+skyGAk/bjLy23jIph+nyDWmlo89eUR95Wra7LNqvaqCdjUBpGrLVRULEbbNrUHLfugzKfJB2q/w51nI3EjgCWaqf/LByD9xT7kKY5C027YE/JzrURN+BCLnEau7LIKk5RrN2cvXOqnFtonUmp8VtHnP1of5hNL/JQOwmE2FX0SxjX8FAK0/jAWczB8I+C6KCVerY4djHXOH7YCG7xkZ9NfRWCma8Ucr2T2SYxkKqrtNFXOgKrKC2Jq53vcVsRKRWMutUcxdvtNXAM+HfstIb2Q82oEUH50fK6w0gzxToPHYlhoPgckMw3sQbgjFysGDwD90kgL78iUHJanpENJ0V10+y/kReGAYEWWgJA+5VSK1nr4MRxteJdzT4HzAWSiP/CCHXEXGNoCDybjwsgjhgNsUGp3Z
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(4326008)(53546011)(66556008)(36756003)(38100700002)(8676002)(2906002)(66476007)(956004)(316002)(54906003)(66946007)(2616005)(31696002)(16576012)(86362001)(6916009)(31686004)(5660300002)(186003)(26005)(6486002)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q1VUc3hRWGMvYmlINmtjMno0MUt3TXYxMDhXV2dEZExSSHFuQ1dyb3pTTi9s?=
 =?utf-8?B?TjMvcDhoQXdhRTQzWG00L3RNQm1Da3ZHRzlFMnhTV0w4elFqU0tsQUJOSmkw?=
 =?utf-8?B?aGJ1amR4TkdObDBGKzVRTzRaZWdHd2w2cUxUbXdBMDJnY3dacXpFU29tSlo1?=
 =?utf-8?B?Uktycy81UElsbDhJc1NYNHRLSERLYlFLMk51a2xFUGhBM3NKUzIyYmNHaG9S?=
 =?utf-8?B?UWJlV3VyTjdmRjd5aW5QUExTNklCQXlQZEJQdld2VjJDMnJseVFMeXF0ZExX?=
 =?utf-8?B?OHBLZ2hnRHJ2NDA5Snhxd2lZZFNGdW1sWXFWSWJFeWw4VlZueFZlQmJqV2tj?=
 =?utf-8?B?ZG9RUTlCRzBhYXlvTVBIamRZK1k1UUF1Wm5mNHVEcFcyMk51TldHNWlHdlZ4?=
 =?utf-8?B?Q0tnaHQ3LzFUYVdscm1xZHduWEZJaDJDVEJhS3ZtdUV3WjZZRmJTMFRkZGVv?=
 =?utf-8?B?dWlvc2NEemt2cFBMS21qNzNDeEhUV1dSSExtdXU2Qks3Mm9TVkpPMkppVnd0?=
 =?utf-8?B?SVBRdEpYcTFvSmJGRnFvU2hlL2JkU2xvN3ArbmtmbE1CeURaYWZBSGI4L3Zy?=
 =?utf-8?B?ZlJuVDJnUEtUK1NyWWwyM2VwNVJlL0NPMkFHTDlwSXZvemNiUmdYK0FRMWRv?=
 =?utf-8?B?NGlxZXFBK1lXTVM4MVZBN0NsSlg4dXgrOTd1VG1FQ01hMFI0cDA0c0tNUHVF?=
 =?utf-8?B?SHVabmZjTWxZMUdKWVdvMU9EM29QNDRqZ20xQjlSMWZ4RFFKWkpQWUhpdW1r?=
 =?utf-8?B?MlVFTjV3dTBDU3o2SXdyZGlXYi95ekFLZnFnc1Z5bU5QUWNObzNYemxtNkpy?=
 =?utf-8?B?R1pHL1RoWXhyWTlxcUdvTWZRMlZHOWhyREFINlI3dkl4MytOdkJRRldXL2FX?=
 =?utf-8?B?RVdrd0lNM0ROejV1Y09GUit0aXdKVVFjQTdORjB6Zy8zdTlPSWFUS2ZVenBY?=
 =?utf-8?B?WlpwdUMrNWc0Vys3bVREWkZlMmE2Qml5OEx0ajlTTzBKb2hYcEpHMVA1b1I2?=
 =?utf-8?B?MXNiTGtYSE1YTnYvbnRqLzVYbktGNGFmTXEvNkRPNEQ4cmNhRzkyTWk0d3Ez?=
 =?utf-8?B?VGx1OEtCNTZFL294bzdNaTJ4Rm1XUFZjMGQwbno5blJXL09rU3VwNmVjdE93?=
 =?utf-8?B?YlBMcnRVQzdscDVEYk5xSzN4M0EvRFFtYjh4R2ZlY1FaRHZUMmY4dXh4Wkd5?=
 =?utf-8?B?c0kzWjFaMGp0b2dZdnJ5NVFneFdQazMwdWlGQ09ESHRHYzhKSTlMaEdINnUy?=
 =?utf-8?B?US85YURCNlNIS1ZjUm42WlVsdm45d2lyYytPNjVaRTZiWnBMbDd5QlFRQjZZ?=
 =?utf-8?B?ZENGNy9LOGJneDZBeVNWL0MwWE1MSE94OHVNTTl3MWlQSyswdHVGYTQwZ2Vn?=
 =?utf-8?B?SldlejFSdFJSajR3OWc2S0huMlpHQ2N2akt1TjZLeHR1RnozYnk4UU1uNEtF?=
 =?utf-8?B?VWp2TFlWZ2NTckVSdncvWUdUc0tORUVSeGQzalJBWVJ6amxHVW1UZk9sM1Ri?=
 =?utf-8?B?RDlIb1JPdlNJalcybDlNZkhPM2dKS0xYMHVaUXFvYTZRSlFuRDNCS3NlQzIw?=
 =?utf-8?B?ZklyanFRbDBOK0Nad1RINWhtMkJQODRaY0c2SzJxN3pYc0pFRjVIT3g1c3gw?=
 =?utf-8?B?dEpKN3JBUlFGckIyODJ4eE1vTlVrVFJIam80TERnNnRkYnJ0OEsrSnBtWWhP?=
 =?utf-8?B?TUpaWEhQSWRtT1VkUHBYUkRDcDdXMkhJaG9ZeHNtSFo4a2VKR2pFQ0sveTJK?=
 =?utf-8?B?NDZZbVE1MU5UOFNuS3ZKcE01ejErT3FzcFpaQ3R3N1JBN2dLRVpMeC9jWjJF?=
 =?utf-8?B?OGNabHVFWG5hOEpyUHFZVkxjaVp0aFJGMjJIMmk1RWJ3dlF3TWo5d1hxUnhG?=
 =?utf-8?B?R0d0QUVidGhsVGJtdnh0VU1vcE93TmZna0xmQUhJS0ZPWjFPaDU1QkgxN2Iz?=
 =?utf-8?B?bjNaelJEYjJmcE4wV1ZJaDN3dTJkRkF2bi9HK1lDZFN2QVFEMjVxbkYyTm5T?=
 =?utf-8?B?d2xyUTA0aFBNRG02ZTIzMGw0dWVRUnVobmFZeDNZdzhxZVFQUWxlVmY0OTJX?=
 =?utf-8?B?a2QwOFlPclJIRCsrWThXNCsySW1mR0FWcUJxRlFYTkJQbWUvdWRYUmovMENj?=
 =?utf-8?B?OEw0bi9pbi9mSkhpTjZXaFlyVnFzYWdaRi9iczh6bFNObHo4QXRvSWcxL3Zh?=
 =?utf-8?Q?3H52/uJpdSAWUUjiFU5tfM4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d0d91d7-d8e2-4c20-05e9-08d9a8218d77
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:20:31.1640
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: b6dyBJV0USnmRdznk/ydusGkGCJ/OIHMNUDBaReX1gh6HWxhDQihPKHl+GSaj0L9Nb2nlknL/4eoAL7Acpa47Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7988

On 15.11.2021 11:13, Bertrand Marquis wrote:
>> On 11 Nov 2021, at 17:57, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -1234,15 +1234,18 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
>>     return 0;
>> }
>>
>> -static void do_domain_pause(struct domain *d,
>> -                            void (*sleep_fn)(struct vcpu *v))
>> +static void _domain_pause(struct domain *d, bool sync /* or nosync */)
> 
> Here you use comments inside the function definition.
> I think this is something that should be avoided and in this specific case a
> boolean sync is clear enough not to need to explain that false is nosing.

While I agree the comment here isn't overly useful, I think ...

>> @@ -1250,12 +1253,12 @@ static void do_domain_pause(struct domain *d,
>> void domain_pause(struct domain *d)
>> {
>>     ASSERT(d != current->domain);
>> -    do_domain_pause(d, vcpu_sleep_sync);
>> +    _domain_pause(d, true /* sync */);
> Same here.

... comments like this one are pretty useful to disambiguate the plain
"true" or "false" (without the reader needing to go look at the function
declaration or definition).

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:24:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:24:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225749.389900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZ9n-0008QQ-3r; Mon, 15 Nov 2021 10:24:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225749.389900; Mon, 15 Nov 2021 10:24:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZ9n-0008QJ-0X; Mon, 15 Nov 2021 10:24:11 +0000
Received: by outflank-mailman (input) for mailman id 225749;
 Mon, 15 Nov 2021 10:24:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z40d=QC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mmZ9l-0008QD-9R
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:24:09 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20607.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a7b89ae-45fe-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 11:24:08 +0100 (CET)
Received: from AM7PR04CA0019.eurprd04.prod.outlook.com (2603:10a6:20b:110::29)
 by DB8PR08MB4956.eurprd08.prod.outlook.com (2603:10a6:10:e0::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 10:24:06 +0000
Received: from AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:110:cafe::15) by AM7PR04CA0019.outlook.office365.com
 (2603:10a6:20b:110::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend
 Transport; Mon, 15 Nov 2021 10:24:05 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT022.mail.protection.outlook.com (10.152.16.79) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Mon, 15 Nov 2021 10:24:05 +0000
Received: ("Tessian outbound 9292a5a778a6:v109");
 Mon, 15 Nov 2021 10:24:04 +0000
Received: from b4dc7ab40c1a.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E7A10F89-4733-44C0-A580-798BE74C17EC.1; 
 Mon, 15 Nov 2021 10:23:48 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b4dc7ab40c1a.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 15 Nov 2021 10:23:48 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM7PR08MB5462.eurprd08.prod.outlook.com (2603:10a6:20b:10b::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.22; Mon, 15 Nov
 2021 10:23:47 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 10:23:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a7b89ae-45fe-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wg7zFFlTSh9cfxBzNVu6uYIAkzK7iko8jMNfsXGwjj0=;
 b=7I3pASq54eQGcfvCDta28f/FuxaC+DmTCpiNHTlmSd9LVeQK5ZH8pJWwzVaqodj6reIOJlq2wJExPJicUT23vLIQt19GI84aiNdlXs4IX7xiaquU2FsiWdJ4JSukJpr5eiOfcJ7ckkTkYyObs43hW+LYsFHc/tW9TWIa8FLeb28=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: e88b308cbaa272de
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=C46zhMWIPPlafbzkNmlgaS8PjAe1I6mP5YrtKlnh6/TUQqr1zcsG2kSzoRThhzNS7/YFa/FPnE+BBL8hDDZd63mIkpv/uOtn0YpGoDb+Vm2D6OmXVE2pb5ZGOL8vrCR6IzLfcXSK2zu68GfbOk8X86W3qsN2Y7WZWbeCMuxgBsOAz1bTSrsxmWtDNSdgDNSIjVvV6Z5yfeCj1GxOCPQlcAvxirC0zW5hCUYfIwyoC02xtESL9rA9u5/4RE1M6hqd/PRy/kwBTZ4HXd+j+TTGwloZPRYJZjr2MJwrXg7hjkSLxOemH6NdUJsgaZIsz604cr19ivTr+VTJjfUSJoOa4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wg7zFFlTSh9cfxBzNVu6uYIAkzK7iko8jMNfsXGwjj0=;
 b=AGyceUFtqTtDWysZqIHWtP2t9S3uopJYPAyN1CC2HODmJOGg5z/UgYFdj72jSSUbzmB0ZQ6bM1zyiOIKHzQTMvrRZPi3WBtn3EUDbnKSot+F1fwldzvK1t3OrGHoSFiR3GySqjXCUmrPP6t+UNF2e6GEId1Ep1AHeIyGZOCgzcLWUu3Wig7JrQUkFHD/NN6SC6KRn0KTlAgHZx5Rd0mz4Z3q3MzrTCJ++4BqtoOTMoESMTqyKzvYdOhm00Zkuv0HEd66o0Hr9TYDr7EeSgtj0lkyJjhmbFEZn2qAsH2k6vN8A5NpnUfTQVlhKoHIrZmlGHdoPmtHiTms1FfgUItEZg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wg7zFFlTSh9cfxBzNVu6uYIAkzK7iko8jMNfsXGwjj0=;
 b=7I3pASq54eQGcfvCDta28f/FuxaC+DmTCpiNHTlmSd9LVeQK5ZH8pJWwzVaqodj6reIOJlq2wJExPJicUT23vLIQt19GI84aiNdlXs4IX7xiaquU2FsiWdJ4JSukJpr5eiOfcJ7ckkTkYyObs43hW+LYsFHc/tW9TWIa8FLeb28=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Thread-Topic: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Thread-Index: AQHX1yW51DCh4Kb6WkC+olJaqOqcEawEZHMAgAACF4CAAADoAA==
Date: Mon, 15 Nov 2021 10:23:47 +0000
Message-ID: <C3FB48C2-F619-48A2-9268-F0938405133C@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com>
 <a1b2aa1b-7d8a-4ab6-cde5-25581ee9841c@suse.com>
In-Reply-To: <a1b2aa1b-7d8a-4ab6-cde5-25581ee9841c@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: e1247a15-83ff-4bac-1979-08d9a8220d27
x-ms-traffictypediagnostic: AM7PR08MB5462:|DB8PR08MB4956:
X-Microsoft-Antispam-PRVS:
	<DB8PR08MB4956B9F874DDD74A75BA0D7C9D989@DB8PR08MB4956.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:8273;OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 xjYHN7xA9LTUn5Bsr0upnIwI9PrwM5dTiHkKlYHie610y7JjQoHp+6g6szHhHQyTEqIuQkYWcmkpf2PRUDLgtdea4C9zUOau56iCpFRi+mX5M/eTmdsmamPf7LJEWcOsw9u5MioP3m7J1voyXW10og2x+7I54xoVLYNeTdMCrwn3dxuBxkcsWOhn3tg2Iy4eqzhfGNLd5Y2v1+hC5Tq4kHNnRciz97fTgbKqdReZjdxM2JsCE6QgiszODC1xVCeKwoGAJNornAD23MAOEeqUYIVq0xF/3PvzUhpqSTsND3kg5wdOh/ac7vAh/QaWI8QFQ/v48tEqe6wHkQNOavpxUOAE8ovV/Hl3Z/arXfHdYvrT/b5qLYrY+CCQOVojdwP+LUP9iYdyhw0Q2iQbcG844Rroj4INCL0pIhRyneA7BM+GkUk45N+88lViaS0MGjnUQqh2xhAguiyjTdBg/yG6qJxv5xcHSthsPU0GOYqhasuF/y5Uwr3J4+DOZwRy9BPIEUPze7O1GcyZCkjAJoMgzMrJFPGMaMJtABL+ddrV2ak8BgGpP0B6TtrM8oYktJaKLhnXLcr8vdt4DujuYqQcd+jT6Eb+Yy2y4mcAA1Vw8sQ9aN5XRVCzZmZ/25L30m6Az95VogSOgrQaaaxuM7tFHf92s035F+Yyv2RULA5dOC2dfowsc1JwBoMtGcM32vkyl7yLHDqciic+IghfPpzM2UrsNI1iqc/2UX271pCh6slTGCmJg28n2CU0OF7npvTB
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6506007)(6486002)(53546011)(2906002)(5660300002)(86362001)(54906003)(508600001)(38070700005)(33656002)(26005)(2616005)(36756003)(186003)(6512007)(71200400001)(38100700002)(122000001)(76116006)(91956017)(66476007)(8936002)(6916009)(66946007)(66446008)(64756008)(66556008)(8676002)(4326008)(316002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <FB132AA242A844489907BE13C13D13EB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5462
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b47ab43a-08b7-4463-ed4e-08d9a8220277
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	o6JFawRgqU28jiKcCFgI7eu8Hka9aAsKd7DDnvF94pyI5GIZhZXxaBcqY6JMIZEzoJETUTzvN6+fiEKi4EHlIRAUVXWjT30oxckBJBy5NB/ZDhPNbYOR2Q715/LyMcs2DZWzTmQmVQ+hKmrXMOMaOxsKjADHtJXfo7cpY/sfDez01MuDOWj7hkpteIJfBGYYvA2y4xwnfQB/jf/uhiE9bKJf2OibLjjyS/As19c/VK6SUNoGrtIGvHkoERqE2B3kpO1yR3cmXhg/0W9+zAE7SC6WSDlBO4ZqutQ1JEhz3Pogi2kvDvLXgNDM+CMAvZjT1nz/neJJbC0iYP1aaceaf8/FaYQlHcDOafCN2x/wGJn0iVZKyGY5FHWDOUMLdfmDOnmA1V9k60aV2HACB4Z9Kqb6N2qGScBZVtRSTUaTsg3GlPYDoj5AC3OSYYJHaT8G6iWJ6uhONalGEWL3jWZERl9O/JKU/rXB2aapFLZH7RJTIII/9dlGfhBuYfy28/SDtXC9PT+YYA/5WGT/39ksEauvDWqoOykCo9NOI9omAp2e3+8i5Ws2qM+Cm05csHbNGcxfGrOj2fBYI/f084aTID054RPiXlcJk89HVBqE4VxaZKLac9HuBCFggDPfJYcuSoKZhBqcI+JIRxQKYpWvmREtXCStEfgxEzCmsoV3WwpzAw+IlysGKQy/igx/x/S0ty8Uyt2FDrbMwxWxe2XXxg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(6486002)(356005)(2616005)(6862004)(8676002)(107886003)(336012)(8936002)(186003)(81166007)(26005)(47076005)(508600001)(53546011)(86362001)(316002)(6512007)(36860700001)(6506007)(2906002)(82310400003)(70586007)(33656002)(70206006)(5660300002)(36756003)(54906003)(4326008);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:24:05.2126
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e1247a15-83ff-4bac-1979-08d9a8220d27
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB4956

Hi Jan,

> On 15 Nov 2021, at 10:20, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 15.11.2021 11:13, Bertrand Marquis wrote:
>>> On 11 Nov 2021, at 17:57, Andrew Cooper <andrew.cooper3@citrix.com> wro=
te:
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -1234,15 +1234,18 @@ int vcpu_unpause_by_systemcontroller(struct vcp=
u *v)
>>>    return 0;
>>> }
>>>=20
>>> -static void do_domain_pause(struct domain *d,
>>> -                            void (*sleep_fn)(struct vcpu *v))
>>> +static void _domain_pause(struct domain *d, bool sync /* or nosync */)
>>=20
>> Here you use comments inside the function definition.
>> I think this is something that should be avoided and in this specific ca=
se a
>> boolean sync is clear enough not to need to explain that false is nosing=
.
>=20
> While I agree the comment here isn't overly useful, I think ...
>=20
>>> @@ -1250,12 +1253,12 @@ static void do_domain_pause(struct domain *d,
>>> void domain_pause(struct domain *d)
>>> {
>>>    ASSERT(d !=3D current->domain);
>>> -    do_domain_pause(d, vcpu_sleep_sync);
>>> +    _domain_pause(d, true /* sync */);
>> Same here.
>=20
> ... comments like this one are pretty useful to disambiguate the plain
> "true" or "false" (without the reader needing to go look at the function
> declaration or definition).

I agree with that but the comment here is useful, it could be added before
the call instead of inside it.

Bertrand

>=20
> Jan
>=20



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:25:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:25:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225756.389911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZB6-0000dg-HE; Mon, 15 Nov 2021 10:25:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225756.389911; Mon, 15 Nov 2021 10:25:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZB6-0000dZ-EJ; Mon, 15 Nov 2021 10:25:32 +0000
Received: by outflank-mailman (input) for mailman id 225756;
 Mon, 15 Nov 2021 10:25:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BzfO=QC=weissschuh.net=linux@srs-se1.protection.inumbo.net>)
 id 1mmZB4-0000dT-SO
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:25:31 +0000
Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5aaddbbb-45fe-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 11:25:29 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5aaddbbb-45fe-11ec-9787-a32c541c8605
Date: Mon, 15 Nov 2021 11:25:24 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net;
	s=mail; t=1636971925;
	bh=0/bxF+0Ja80KzNIjVBJ20sa/tzr9xnaAs4Q/VbC/BZk=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=UN0gAAvgaQI1b1wSSFpd3xfR2Q8k8FZCdgDo1sUOprnBgHcFDizn1lOs+dsviAqA6
	 i74Z81po7P2w3MltQ9lJYqsazIw7CdcBsmS7BWicf5jvABgylnvaQYKs05q+czWtdT
	 tJCcX/CFYbJPseikFZ57Nlzl1pmHrp7lVPNhrNdE=
From: Thomas =?utf-8?Q?Wei=C3=9Fschuh?= <linux@weissschuh.net>
To: Jan Beulich <jbeulich@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] xen/privcmd: make option visible in Kconfig
Message-ID: <28809eae-ea8f-4f6b-b41a-a0895aec6e8c@t-8ch.de>
References: <20211113083821.71060-1-linux@weissschuh.net>
 <889cfabe-6262-d105-c806-105ee9377fef@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <889cfabe-6262-d105-c806-105ee9377fef@suse.com>
Jabber-ID: thomas@t-8ch.de
X-Accept: text/plain, text/html;q=0.2, text/*;q=0.1
X-Accept-Language: en-us, en;q=0.8, de-de;q=0.7, de;q=0.6

On 2021-11-15 11:02+0100, Jan Beulich wrote:
> On 13.11.2021 09:38, Thomas Weißschuh wrote:
> > This configuration option provides a misc device as an API to userspace.
> > Make this API usable without having to select the module as a transitive
> > dependency.
> > 
> > This also fixes an issue where localyesconfig would select
> > CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
> > building as module.
> > 
> > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> > 
> > ---
> > 
> > Note: If CONFIG_XEN_PRIVCMD really is only meant to be selected by
> > XENFS, then the issue can be fixed by removing its "default m"
> > definition.
> > ---
> >  drivers/xen/Kconfig | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
> > index a1b11c62da9e..c14d8631b8f6 100644
> > --- a/drivers/xen/Kconfig
> > +++ b/drivers/xen/Kconfig
> > @@ -259,7 +259,7 @@ config XEN_SCSI_BACKEND
> >  	  if guests need generic access to SCSI devices.
> >  
> >  config XEN_PRIVCMD
> > -	tristate
> > +	tristate "Xen privileged domain-0 commands"
> >  	depends on XEN
> >  	default m
> 
> While I agree with adding a prompt here, I'm not sure why you've added
> "domain-0" to its wording. Aiui this interface is equally available in
> DomU-s, just that they would be able to only (successfully) use a more
> restricted set of hypercalls. Otherwise the XEN dependency would need
> to be changed to XEN_DOM0 at the same time as adding a prompt, or the
> prompt's visibility be restricted to XEN_DOM0.

I got it from comment at the top of privcmd.c.

To be honest I have no knowledge about Xen and only submitted this patch to get
rid of the spurious module in my localyesconfig.

I can try to find a better wording and submit a v2 but would also be happy if
somebody more knowledgeable about this module wrote a patch, which would
probably be easiest for everybody.

Thanks,
Thomas


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:51:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:51:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225761.389922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZaH-0003lU-J4; Mon, 15 Nov 2021 10:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225761.389922; Mon, 15 Nov 2021 10:51:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZaH-0003lN-Fo; Mon, 15 Nov 2021 10:51:33 +0000
Received: by outflank-mailman (input) for mailman id 225761;
 Mon, 15 Nov 2021 10:51:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmZaG-0003lH-6C
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:51:32 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc2138e3-4601-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 11:51:30 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc2138e3-4601-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636973489;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=xmicS4j3PpGxmK07M11vvvVk1yBjTw9RtlFkieq7KMU=;
  b=Iw9KrRhknjYt/LXITGrnyAZmODCqeW3dE7DopNO+sJ+T6l+IZSttnH+i
   bXR7LlamDMKR50L5lDcpFE6ZmkQwvhIuzH0qcPOlR+Zm8mvuT5j+WPDWH
   WpFDcOezsHMyORFMW66Cy+C/2WztuEBzkgYVPiO0YBRGmt2bhK+RhowKV
   Q=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: JP+8AjZp3S+9GG2aNol4ZXYJxjzJtflFSsYmyU37w+hVMi/j6rB8MFLNQdBSLVD19sJdD+7yyT
 +qlidCq7TQZJpsN3fUIquPpvnxDjMltt0NluFY8pQetwQWKk5kzaguwKeA1gMagPb5yhuGp3CY
 ohcgi3NhC1yDhGzE5+LAjcXRn056B/qFsOCFEaAihcCUQmMc+0uuG5W6Fb04rtrSIkCSd99Zu3
 5DaF+Az0cfXHqT4zRsyEjx0+Q+ap3Qj7HKHIwWwhibonfPtetPGLhSykh2OG9ZrXYw6lBW1NH8
 KmH7gnCL/sqzbQw7jDHwzjn3
X-SBRS: 5.1
X-MesageID: 57343094
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:TK1sSanmRb6O8LeG3IfTf6fo5gxRIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIXXz+OPa7ca2v9Lopwad/k9k8E6sfWydUwT1Bk+y82ECMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29c12YHR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 PhnkqyOVgsQBYH3iv0aciRRCyBnIaITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBNPsM44F/Glp0BnSDOo8QICFSKLPjTNd9Gpv3ZwVRaeCD
 yYfQTRDUhvZeBxSA3USUpslusqsikb5IhQN/Tp5ooJoujOOnWSdyoPFMcXXUsyHQ91PmUSVr
 X6A+H72ajkFMPSPxDzD9Wij7sffkCW+VI8MGbmQ8v9xnEbV1mEVEAcRV1awvb++kEHWZj5EA
 xVKoGx09/F0rRH1CImmN/GlnJKaljM2fOpuDOED0y222LPTwjuQHmkdUjEUPbTKq/QKbTAt0
 1aImfbgCjpurKCZRBqhy1uEkd+hEXNLdDFfPEfoWSNAuoC++99r0nojW/46SPbt5uAZDw0c1
 NxjQMIWo7wIxfAG2Kyglbwsq2L9/8OZJuLZC+i+Y45E0u+bTNP9D2BLwQKChRqlEGp+ZgPe1
 EXoY+DEsIgz4WilzURhutklErCz/OqiOzbBm1NpFJRJ323zoCDyJNwOvW0geBsB3iM4ldnBO
 hW7VeR5vsA7AZdXRfUvP9LZ5zoCkMAM6ugJptiLN4ETM/CdhSeM/T10ZF744oweuBNErE3LA
 r/CKZzEJS9DUcxPlWPqL89Age5D7n1vngv7GMGkpylLJJLDPRZ5v59eawDQBg34hYvZyDjoH
 yF3a5HXlk4BCbKmOUE6M+c7dDg3EJTyPrivw+R/fe+fOAt2XmYnDv7a27Q6fIJ52a9Sk4/1E
 ruVBCe0EXLz2i/KLxukcHdmZO+9VJpztytjbyctIUypyz4oZoP2tPUTcJ4+fL8G8u1/zKErE
 6lZKpvYWvkfGC7a/zk9bIXmqNAwfhqcmg/TbTGuZyIyfsA8SlWRqMPkZAbm6AIHEjGz6Zklu
 7Sl2w6CGcgDSg1uAdz4cvWqy1/t73ERlPgrBxnDI8VJeVWq+49vcnSjgvgyKsAKCBPC2jrFi
 FrGXUZG/bHA+tZn/sPIiKaIq5aSP9F/RkcKTXPG6buWNDXB+jbxy4F3T+vVLyvWU3n5+fv+a
 LwNne38KvAOgH1Dr5F4T+Rw1as76tbi++1awwBjECmZZlinEOo9cHyP3M0JvaxR3L5J/wCxX
 xvXqNVdPLyIPuLjEUIQe1V5PrjSi6lMl2mA9+kxLWX7+DRzreiOXkhlNhWRjDBQceluO4Q/z
 OZ94MMb5mRTUPbx3gpqWsyMy1mxEw==
IronPort-HdrOrdr: A9a23:bHBlZKruesxB2i/nJ6m85RoaV5vFL9V00zEX/kB9WHVpm5Oj+P
 xGzc526farslsssREb+OxpOMG7MBfhHPlOkPMs1NaZLXLbUQ6TQr2KgrGSpQEIdxeOlNK1tp
 0QDJSWaueAdGSS5PySiGLTc6dCsae6GciT9JvjJhxWPGZXgs9bnmJE4lHxKDwKeOAKP+twKL
 Osou584xawc3Ueacq2QlEDQuj4vtXO0LbrewQPCRIL4BSHyWrA0s+xLzGomjMlFx9fy7Yr9m
 bI1yT/+6WYqvm+jjvRzXXa4Zh6kMbojvFDGMuPoM4ILSiEsHfiWK1RH5m5+BwlquCm71gn1P
 HKvhcbJsx2r0jce2mkyCGdrDXI4XIL0TvP2FWYiXzsrYjSXzQhEfdMgopfb1/w91cglMsU6t
 MF40up875sST/QliX04NbFEztwkFCvnHYkmekPy1RCTIolbqNLp4B3xjIYLH45JlO61GkbKp
 gvMCmFj8wmMm9yLkqp81WH+ebcEEjaRXy9Mwo/Us/86UkjoJk29Tpc+CUlpAZxyHsKcegw2w
 31CNUYqFhwdL5kUUsEPpZ4fSKWMB26ffueChPaHbzYfJt3SU4l7aSHpIkI2A==
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="57343094"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kNIAHaz8mp9EHb7SjFmYSXurUgoliRHUBoq68F7RS/rnwJlBFUyl98brS45ellB+Xu9Yc4zDkX/x+8wTO5WkRLPTGpoX3/ZiPRWQBBUcHF8YhmDhZipCoj/rgjAt3AhTZ/kivxHkINaCpC9K4UrsUSb9vnQBnW+qP42NA7FOTA5pFjHGqhiKvTj5fo2qWd9lbRQqj3bM7r1MVDTceq+EvBp1YxSJ2DEOWyw/FUwY2uzEQ8esRD+yABnmoKVX+6+5jKHo8Y80tWB3C/RhjeF6EsmaMgIznL1DKuXLf7ntCHunuHvgJyF4RiUbblK7d2t7EPmlYHz8pYF2+To+qqc2Zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DcvpshRC/FuPBzT0ZYy1uTBjK0MC9lE+kjC+8FRS8tQ=;
 b=nELmKuP/jXziq9cgXj6vgN15rGT1olwCTbqod6uJEl6jtPkAHlJh7ikqsrNLXNt6xQQ/9kqhO+OM1E/gMSh6gJO2NCtT7/otrdwoAogVSYpVCn3dqOWtydIsfJcbwdIiSxlY2MJV4Zv4dkewcRWo4f0Lr3h9mUk+QiZBnDYnod9cI2hgfLkh4ek+02KD0tkfMiwAZxY32NpBfNmS7JC/v90Iorn/+WYjESq1P0lRn/yf3F4IS691wwiqVfEvAR1NXbLy6s5y7TOfjsuMiuFr8lEip04286mCiDS6uT4SJeRzzWtlTZmz6yz18jei4LgAPS9yg7MtbeaW2RSaMq/QPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DcvpshRC/FuPBzT0ZYy1uTBjK0MC9lE+kjC+8FRS8tQ=;
 b=O0olABJKefhhg14mTRfmjt1q7/RQD9ZsN6LU0tbWHooRs6EblcxWJBhGcK5VOoEJZfk8LFFBmQ8ecbcx/aUS0FMGFEWhnJTxp4nHCmoI82aruJNcSGrB7HMkZUE3Enj1ZRjicbGwjfkd3SzP5WRsX7aSi60VnLermNPWlYtyVPE=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Ian Jackson <iwj@xenproject.org>
Subject: [PATCH for-4.16] tests/resource: set grant version for created domains
Date: Mon, 15 Nov 2021 11:51:06 +0100
Message-ID: <20211115105106.928-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0039.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::31) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 16d95b34-fb6e-4e99-b098-08d9a825d890
X-MS-TrafficTypeDiagnostic: DM6PR03MB5066:
X-Microsoft-Antispam-PRVS: <DM6PR03MB5066CB5C58959AFFD641C90A8F989@DM6PR03MB5066.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2276;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: W7JyS4inTzXDXA+ocyu3nSFUwRigFyvDMNxBHc4J4DAwfR0c9UXZMvRHTIXPxhkNJCi0gyGPSQsmhzucelW1/YLpHsTEFKD6M0cx0gHzgeII8VMDFf5VIZrzTIz2wlYYt7cvxnY49oexQ/ctX2S6BlqfzAL4VTQdRxUx2tIQZk3tk6sipQPY4B7YsJtbC5NNRQ73nO782+rBMhLWiGmN+V1HTfrmzBIyWJTCd/pqwt/WE5Vfm8uPMDjqMPuYytXisJedjCzGpUGyjXpl5Yr+xSc+TEludV/AxyidpRxjTp6EmO3bHpDw0wnPYPMe/kPwceboPbG2UxALMMWz4GrO4+SJMhwL8kKbWzQ0+1KEnId1fnOhHgu3yN+nIwz1RE0OLNgRVYtbKWb+odPn7+nrpV7Ufmcy48rZNLkwjR80vCPTN9dLGTsqhEeQU97mQwO4SRVI5Ura6/m689KilRTovo11lIvOsjpORPr9O6ONWdBHrIjTEGuXSAh4HEujM9ZWL0ZU7PXvVyPmn3ENgUvRmB5KFpIYoIS/hihNpJ6MKbatXvzqw21KCBLvS3EMYPdLEXUglKvbxXcKauu42/dD+vmzG+KY+BmIHQmzwanxpZwozRJyFoyCqo9/5Zefn2E0VJAL57VAEVdZTROIqCjPQQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(54906003)(6916009)(316002)(82960400001)(4326008)(6496006)(508600001)(6486002)(8676002)(8936002)(2906002)(26005)(186003)(2616005)(36756003)(86362001)(5660300002)(66476007)(66556008)(66946007)(1076003)(38100700002)(956004)(6666004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TmM5MFFwRythcEdadzhOdk01R0FPMzZmSm5lNFJkYU9SWjZsRUhUZkZsNTZt?=
 =?utf-8?B?OEszcVFKU3FNaEdERkhVc2d1NmNGUHNJektVV3hySXRVSnB2aE50bW1WMUxM?=
 =?utf-8?B?WG1tQ0VNZUw2MnNWWHVNVTgzWEpnK3lqYjVCbzNIeHlkWnNwbCs5MmN6cXBV?=
 =?utf-8?B?cGFDZmJPN3ZreWg0WGNhL3lISE0waWxlSHFoZ2NNVjhpNkx3NFQxdUFWWkVO?=
 =?utf-8?B?UE1xaWcwWFVlZTNvYTBuUkVNRUNkT1dsLzhBN2M0Ly9kRXMwTThnL01pODJJ?=
 =?utf-8?B?bVY3TU9pVUgvZGRCYXNWZVhuems4akhVNUlscDJlRHM4bm8yWXBvRjBzMkkz?=
 =?utf-8?B?azF2a0djR3NEVm9McVhyaWZGWXNvVTFOcVg4MlZyRlFTcEdCR0JyK3BBZTdW?=
 =?utf-8?B?Y1EvMHlONlZPamk4UFpuNUxMY25yMGxQZllsK0ttUHowOU5LaFBuUzBzRlQ1?=
 =?utf-8?B?YjQ2UFk3ZXErUW1iRjJ0aWlPWWYyZVB5ZWluTTJLS2F4Y1RodFZiUVU4bnpY?=
 =?utf-8?B?TDg0TXMwbEdDc2tmcUJOdTBxWFg1bDkvMEpudEZkQXhoQzZCcFdTMWN6bHFW?=
 =?utf-8?B?VG1rbmVjUTZSYzNuSGoxRDcxOVMvQzJlQmI5Yy9BMFhlclZreXZpZVkxZjlD?=
 =?utf-8?B?SHJQam9XaTBVUkJ2QXNweGVodkh1Y2Z4eEl2Z3BBcFRGQkxhQUlPemJuUVNS?=
 =?utf-8?B?YTVsTVI4TmtiVUNheS9WUG8wY0J0TVNhSjVBaGJFMXQycjdPZTBTRHRPd3VK?=
 =?utf-8?B?ZXBUSTdjUVNkQlVBUlhTYXpNY1RrVkJnK0d2YmI3ejZvNGZEVi9SNHAzVVhp?=
 =?utf-8?B?SnFzTVJYMURrWisyTGxSKzlnL2EzNzZHbm10WmVydTVwODNnVnBZZDUyL3RZ?=
 =?utf-8?B?c1g4aU1FOFVZRkR6OG1sMHhvSDBnbmFkSDJ3TmRrWDdnZG94bzZLa2dtaXBG?=
 =?utf-8?B?Tm5pdW9mUUpNS0lQNFY4blhnRjh2K3lVZ1ArVno3YmNnL0RFdXhCL2hEVTlO?=
 =?utf-8?B?TUJXaVpXYlVRbFpTSkZFeUVLa2JLb3JNdkMzMlJXeGR3Y1E4OEpBR0loVUpk?=
 =?utf-8?B?Uy9PY3dHUnJpdGE3UnVxN1JuUUg0WWNLdXhabU96Q01KSk5HL3EzaXNkc05U?=
 =?utf-8?B?aXNxSkxqQnZZQlpsYTNVSG96RSs2V2FnQy96WHc4TVRDZ3dKSktRVTd2UHFo?=
 =?utf-8?B?WmFITkxxTXBiY2U0LzNta29wdWJTUzFWbGx2dVFSRmswYnZPejh6RGZHUWlY?=
 =?utf-8?B?S2IvZ3FpamwxUXhVa2E5LzRONTRXSUNZb2RBK2p3RXZrNkdmTW1Ga1FtTFdG?=
 =?utf-8?B?c2NORURQdUlRN2E0V1dXM2o0Y3hNMTliaWlVLzFPVm5neXVpNmVWS3ZxY1N6?=
 =?utf-8?B?UWFITTN5T2JzSUpRL3VkVG1sRmZCNHhWQ1lSaStiL01ZNy9lY1hrR3Z6RXRV?=
 =?utf-8?B?SnJVQVRQNUJQa0w1dS9jMW1PdGpkeTJYYWVDdk5sUmJBUWpkRUd4Qmw2TkhE?=
 =?utf-8?B?c1RlWkdueGk1ejAwcWJzRkhYOGNKc2xlTUFSVWE4YktqTk1WbDd0TWg0dGJk?=
 =?utf-8?B?N09sTVFyQW9LRDdIRis1MnNyejRnU1FWZmpYS1VvL0ZuZEh4ZGYvMGZWbDVI?=
 =?utf-8?B?WnBNeTZmejJVeFlDT0J4dGg3V2h4VEtxNHRvdFFwTmJnWDFpOEVVN3N6M3hD?=
 =?utf-8?B?cSthM3BmSU9iRHZvZTZiS3NYQ1RtTXZzelhPZDRMMUVLZDZUNTBEWGJWTXdj?=
 =?utf-8?B?SG9pYngweEZvWlJqMWFxTGMzSDg2bUZrTzZ3bjJhc3pzSDBLY0ZmZHhzbUNs?=
 =?utf-8?B?YlRreVFEWUQvYTZtYUZwb1J4NEtNblhrMXpiSlpXZEhZbG1Bckp6YWJFS1dC?=
 =?utf-8?B?WTMxZWVzWkFGZUh1MTdiQWptOHdVcnBEMnhQZit0SGZHNlU2SjM2Mk5VWlJs?=
 =?utf-8?B?OUpIbzJ5MFk4czZtakpnQURpb1RkcUtpTCtIQnljVUpmWkYwaUIzVWxjbjhm?=
 =?utf-8?B?clNYSHdRdCtobzNibWZqRjZiQW1qbExGTStqWVVWRDU5TnpQdE5PbmtDSUNU?=
 =?utf-8?B?WitRZDFPakVQNUFtVG14emNLOHJEVXpWRjNYUVZDSjcyVGhLSHNGbDV3dGkv?=
 =?utf-8?B?TS9sRTBiZUFsRlZseWZjTDZDempPWnNORU5OSGF3UE12dlUvVW0veW94aWZk?=
 =?utf-8?Q?iHCYpN0tLymlv+DSfC9S2U4=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 16d95b34-fb6e-4e99-b098-08d9a825d890
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:51:15.2493
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: E7wd4LCoHQ49W5CqTKS07xkNFAwLEEUhWTaUSUxH59WnTeq1/pDkPimWElYlFcdogzWRksC1q/b/JOWukqFRfw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5066
X-OriginatorOrg: citrix.com

Set the grant table version for the created domains to use version 1,
as that's the used by the test cases. Without setting the grant
version the domains for the tests cannot be created.

Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

This patch only modifies a test, so it should be safe to commit as
it's not going to cause any changes to the hypervisor or the tools.
Worse that could happen is it makes the test even more broken, but
it's already unusable.
---
 tools/tests/resource/test-resource.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/tests/resource/test-resource.c b/tools/tests/resource/test-resource.c
index 988f96f7c1..658dd52aed 100644
--- a/tools/tests/resource/test-resource.c
+++ b/tools/tests/resource/test-resource.c
@@ -120,6 +120,7 @@ static void test_domain_configurations(void)
             .create = {
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
+                .grant_opts = 1,
             },
         },
         {
@@ -128,6 +129,7 @@ static void test_domain_configurations(void)
                 .flags = XEN_DOMCTL_CDF_hvm,
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
+                .grant_opts = 1,
                 .arch = {
                     .emulation_flags = XEN_X86_EMU_LAPIC,
                 },
@@ -140,6 +142,7 @@ static void test_domain_configurations(void)
                 .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
+                .grant_opts = 1,
             },
         },
 #endif
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:53:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:53:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225766.389932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZbz-0004Ms-Uf; Mon, 15 Nov 2021 10:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225766.389932; Mon, 15 Nov 2021 10:53:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZbz-0004Ml-Rl; Mon, 15 Nov 2021 10:53:19 +0000
Received: by outflank-mailman (input) for mailman id 225766;
 Mon, 15 Nov 2021 10:53:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmZby-0004Mf-DB
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:53:18 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d06ba39-4602-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 11:53:17 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2050.outbound.protection.outlook.com [104.47.9.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-25-_9_A8vXJMqCmJK7Fo9hcyA-1; Mon, 15 Nov 2021 11:53:15 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB4786.eurprd04.prod.outlook.com (2603:10a6:208:cf::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 10:53:14 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 10:53:14 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0020.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:2::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Mon, 15 Nov 2021 10:53:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d06ba39-4602-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636973596;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=/KN3ePiI6GeBSPSeb4ccUFJfuyCM39O48V6bX/yQW54=;
	b=U7VBkYcKUIocvTprLlBcbQLgSYiaLIeQuzCMqteZUEb5o/PWLm0Z3q20S3BClij8G72TV6
	5iUQvTGqlM7m9/K5o8Ytl5ZtHpJFgH0VCS4QcrgOLJ4z3e2vm4meUOXnnL2lbAlBQ1jldU
	kgglkBdZh6GGT8PK/fMeSmz60mhqJbg=
X-MC-Unique: _9_A8vXJMqCmJK7Fo9hcyA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LE3aiNOwTHUWzj0TuEK1f/Vnb0T0Yscf4qZJ6ddTMlxf9uOxmepUbwShTBKDDgtD3TW+bQrPKwVdBPdW0oBakzrkmMYV3B6dxW6+G2XIKt+4wI+ijfb11YS+f32DpiYw0z0+EETUJAUpe26VdzpB7ivplqHFxGvVoyVYY66MFfvAxHlaCNQZcc4SUc3C6WmyWiVsMa2jr1a0kLvZPfnqHaRb6bJObUc1un3J+PH3P17aT4wl0cMU9KpyIW/3Pi9RTtZstQateSwd8V9BZ/0lXtlYduFGzx5MamcEsaDFxjxKxUzdhh2mZJOVbMZOWY9xd3ZfP4UOgdQ2KklN06Q/Dw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Or9Kc/1vUCv4uv3k2mgwU5nIxwzq7s3zvgLXuADxHs4=;
 b=BZvosckEyZuibg+RLrtNInE2ca67zTmKtesNXuOYHSZuj/GliajT7BpeloIS9G7bRWy0w5sb6qhr27h+hv5EwMIotSdTtljJ9V/aMkZ3LQCf9B1BXoz/yI+QGbjopfHP4oo0KpNFQE5/VN/we0weC1iGj78i19BxmADwRXH6UBOl0TwX/ama/XdkYDDkpU84gqYOC1luxV1Jkg+yffUM6r+tmz8ephPO3F/Mu3S9/H+JRC2jaWXNbDzTw8BB0IbyT0x02h/WDZT9D22ddV2byegQuska0vRmtc3WmQDU7SsyAZDfaqnTUvwmcKO4htnO+yQw+cHT2ExBz0vebRxm2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <008467ea-75af-acb5-62af-bd1db03ccc68@suse.com>
Date: Mon, 15 Nov 2021 11:53:14 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>
CC: Ian Jackson <iwj@xenproject.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>,
 Jane Malalane <jane.malalane@citrix.com>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
 <d1978235-f025-19ac-707c-c2e411a5a005@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <d1978235-f025-19ac-707c-c2e411a5a005@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR1001CA0020.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:2::33) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c1dd4db4-6ee1-4130-0bc5-08d9a8261f54
X-MS-TrafficTypeDiagnostic: AM0PR04MB4786:
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB4786A964F8B2230F1FE2F0EFB3989@AM0PR04MB4786.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	pV2sfXyWlHTmATCo1Ad/04KL/7i1vebvXOgxP356Rp0rp5flBkx75k2gHzU/rrNCaUulkO7BSUt3Xcvjv/MjvWJO7EdcxR+s3pt6zVyoTKMi6fuEEyRuQxVUk0mi8TCuRYQXFzrhT+LlLpMgDDLB9sMqsEWvaEld3iUsD8J1ibXiCZABnEXHLOT/GpRZ4M4L1KEgU5GaqCNnEQjIQynBRUxdzUvM7cVLxrlQ/cxojITjlC4eyX4h6qn4iUTH9BKdcVGdyF92JRwVZ5BM4D7YufYz8rW6vOOBieEUL9sR28xEL6OMusFiUXRZS9RP9dO1KwsdAwrh0lYgiEKzyzcaxCskbCbuC7kF4rCh5LIMRrjuVoKk10aLpjqmmbz4FHqmMBaArGgBToq84TfC0xIN/15qJG45F+Y4CtI7vBm/WHCMAQdCgsLE+/NArNUvLdoNrOarA2aKJ0bBZ1gCboVLJLTQxHIgKsK52gMGudiv9943wBm8wvhuEH2gd7I1k6Vr0YEDHfGOI2Xpn+uDSFFpBWV/eK5DDReVbNRNnBFOAJRfXJPy6J81Env+ZodTxoZB0qUb8qtsf8zs53+0PYA6+D/GHts3xraKQVSdk2jL+UtYXoqkavP6WGlsK1S23h5uJQoKmOfZnIxQnk15iNRpus2FeyOKnuEdYumxJa2Yt6D/y9aFL28wi5bgDbAJEFHZtTidRvjzYuh+z+lA4usWtoQEOWelm3fcTrM4W80mF30=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(8936002)(6916009)(53546011)(6486002)(4326008)(38100700002)(16576012)(316002)(508600001)(66946007)(86362001)(66556008)(5660300002)(2906002)(66476007)(31686004)(31696002)(956004)(36756003)(2616005)(186003)(26005)(8676002)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?pm7nyeN9PCf1hfCLdC3bdf2YbppW8YEfp6yy0D2J89HYS+tVZIWpfQCtXHQ/?=
 =?us-ascii?Q?hAkvEZ6amgeoimomZIiBNgmUnDhI3cSHVsqGttVB7IP9rMMZVcMl1ZeGRQW7?=
 =?us-ascii?Q?c0wKtzqiMbtbIvZmLO9chvE+lYPhO5CZI47UmEOw9f6GJ4A3VBUBI1zS+Ngt?=
 =?us-ascii?Q?4V9FEZHUpfljj0k2cvtxW9oudulMy5yyDz1nK0A4pCHhmHBhRoZ+lQKma0I6?=
 =?us-ascii?Q?kUBcC4guGQMM1pQdO5+JUGcDgLFTqx8VnICpDKgVzXxzCSED1JMyaIpQoU6Q?=
 =?us-ascii?Q?q0wWBUbXqz59yBWBaggUTHwlm4IH+8gmKsszY2MbUgGr3GCxT7pCCP1JTuUG?=
 =?us-ascii?Q?IUqhz5wLJZUfWKDY3w1jg2YHv22YhNr28kM3kjIlcWgklEzm/Ze9Ik/plUMO?=
 =?us-ascii?Q?O7GAb6o+L/F+rHYkz0UHj44ieN9z4qDeyiKSnqz4gOFltkf8tCD5Jixgq46M?=
 =?us-ascii?Q?I+r8Vwl5JqZNQ205bYUKocRZKI3KzljFkcIX2A7GPmAVQEy5T06T7REdg1Tg?=
 =?us-ascii?Q?rCG6MWDmUg702Wmt70ZXYr6VaC+YAxGlnbf7lewHhLNU8uO91sBiIFa9U/XL?=
 =?us-ascii?Q?y0wbEHQ79+680Zqipd287FIM+pTxyQBVphsu05i6wc6lRd2BeQ+tmC1pzYXn?=
 =?us-ascii?Q?J5eo8aTzMfA5v596uPwC54uHQe9HYg5PqHXecpIKAc+zd+hB6oX18xODwMab?=
 =?us-ascii?Q?E97GcorLCziNp0cJskp05HYsVxlgtBjMSB6OwiHZkaPkhlq8wYOeDgWxiGJb?=
 =?us-ascii?Q?2oCLqlK55r61tyKAIVk4I6RBR2tWf5889HqKi2IlidAtgY3Sfi59/R0tNea5?=
 =?us-ascii?Q?d/9YgKZOF9CjS1+CiDaueoP0MtQUq372Pj3I6/CGx0laGY2Z+Pz3MLDsg1Vc?=
 =?us-ascii?Q?+gdrxX67a7PGzBSFW8Vcw9nYI3by1FnQ9BzVDfVieTfVbkTKWu4Ob3vlavN8?=
 =?us-ascii?Q?tMbH+I5whc+Y1lD3Zr49i0VDlKWx/SIBFJ/fT6qBSBdFSZpBmpgZVNhIxE5r?=
 =?us-ascii?Q?dgGiAHbznxaxSY2qakQH8G2Yi6L9zuBbC8Xzv0fyeEhJDHygup1oKH8ql1i1?=
 =?us-ascii?Q?eORRdwxU7+v/EdLkdHFc0kXMx5XLQpv2i8KeEOaN8RFPdWIHWG4fJ1wwidFo?=
 =?us-ascii?Q?mBka2AwdFVRArAa1PaYFvn+fkfeQDJ3tlXZYt5l6yAtddpM2UPHsH9C/T1CZ?=
 =?us-ascii?Q?gsUouShYWlYp9yCnVMXWOaNc32vb0uTTRjL2fsBWX6As8QaG2U3EnIpzLWte?=
 =?us-ascii?Q?R/0d9PfIyPFpcERO6WlQ+LIdTIaN7Ff2OTMgOmuiknLF8T+JDtIkyi+O+amU?=
 =?us-ascii?Q?2Y40tKgBH1cp86x642izsbg2jhZCHXdjxZW8h4dc7pxfQxuUTRT8vm1XNMU3?=
 =?us-ascii?Q?bn6nLLOOuwyqvDsKGtjw8YXNN3CvdJo2RTPKvGL6/X0Yb6nsQ0S90g/aMJjH?=
 =?us-ascii?Q?ADciMMVXcwb2i3qITVbplzqToQ1c/0NWizWt0MlLiWLgIJJ3cMOk9uY/Y+Xp?=
 =?us-ascii?Q?2mWj6TvtuvJJfI/2FzTEwE4RCS76+FXuSQ1XqiuNGlJdG/fvA//KdUQdbZf0?=
 =?us-ascii?Q?UsZUXqjSszPNB1eGTyB6m+MuFu6KXA4MZGExHkDtRw9ryBZUd3dEMJnYWygJ?=
 =?us-ascii?Q?himzlc3igNBBxQS88X9PbSU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c1dd4db4-6ee1-4130-0bc5-08d9a8261f54
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:53:13.8880
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wH0n4eu7UZvkZ8Vrfuo2EFQ22pyzXOlxp3G5AvTdAIivXRq8dJMPSLl7JjmXPUyL1R3/RvJEZ7T2sXUhUSELdQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4786

On 12.11.2021 19:51, Andrew Cooper wrote:
> On 10/11/2021 09:19, Jane Malalane wrote:
>> Before, user would change turbo status but this had no effect: boolean
>> was set but policy wasn't reevaluated.  Policy must be reevaluated so
>> that CPU frequency is chosen according to the turbo status and the
>> current governor.
>>
>> Therefore, add __cpufreq_governor() in cpufreq_update_turbo().
>>
>> Reported-by: <edvin.torok@citrix.com>
>> Signed-off-by: <jane.malalane@citrix.com>
>> ---
>> CC: Jan Beulich <jbeulich@suse.com>
>> CC: Ian Jackson <iwj@xenproject.org>
>> ---
>>
>> Release rationale:
>> Not taking this patch means that turbo status is misleading.
>>
>> Taking this patch is low-risk as it only uses a function that already
>> exists and is already used for setting the chosen scaling governor.
>> Essentially, this change is equivalent to running 'xenpm
>> en/disable-turbo-mode' and, subsequently, running 'xenpm
>> set-scaling-governor <current governor>'.
>> ---
>>  xen/drivers/cpufreq/utility.c | 6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility=
.c
>> index b93895d4dd..5f200ff3ee 100644
>> --- a/xen/drivers/cpufreq/utility.c
>> +++ b/xen/drivers/cpufreq/utility.c
>> @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_state)
>>      {
>>          ret =3D cpufreq_driver.update(cpuid, policy);
>>          if (ret)
>> +        {
>>              policy->turbo =3D curr_state;
>> +            return ret;
>> +        }
>>      }
>> =20
>> -    return ret;
>> +    /* Reevaluate current CPU policy. */
>> +    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);
>>  }
>=20
> So, having looked through the manual, what the cpufreq_driver does for
> turbo on Intel is bogus according to the SDM.
>=20
> There is a non-architectrual dance with IA32_MISC_ENABLE bit 38 (per
> package) for firmware to configure turbo, but it manifests as another
> dynamic CPUID bit (which I think we handle correctly).=C2=A0 It has the s=
ame
> semantics as XD_DISABLE and CPUID_LIMIT so we might want to consider
> adding it to the set of bits we clear during boot.

This is quite confusing in the docs - at least one of the tables calls
the bit "IDA Disable", while other entries at least also refer to the
effect of disabling IDA. I'm afraid I have trouble connecting turbo
mode and IDA disabling, unless both are two different names of the
same thing. Maybe they really are, except that SDM vol 2 uses yet
another slightly different term for CPUID[6].EAX[1]: "Intel Turbo Boost
Technology".

> However, the correct way to turn off turbo is to set
> IA32_PERF_CTL.TURBO_DISENGAGE bit, which is per logical processor.=C2=A0 =
As
> such, it *should* behave far more like the AMD CPB path.

I'm afraid public documentation has no mention of a bit of this name.
Considering the above I wonder whether you mean "IDA engage" (bit 32),
albeit this doesn't seem very likely when you're taking about a
"disengage" bit. If it is, we'd still need to cope with it being
unavailable: While as per the doc it exists from Merom onwards, i.e.
just far enough back for all 64-bit capable processors to be covered,
at least there it is attributed "Mobile only".

Jan

> Therefore, I propose that the update hook gets renamed to update_turbo()
> to more clearly state it's purpose, and that we use the TURBO_DISENGAGE
> bit as documented.
>=20
> If we're going this route, I'd also like to make this hook consistent
> with others, where we IPI directly, rather than having an intermediate
> function pointer just to send an IPI.
>=20
> ~Andrew
>=20



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 10:55:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 10:55:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225771.389944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZeK-00053c-Fg; Mon, 15 Nov 2021 10:55:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225771.389944; Mon, 15 Nov 2021 10:55:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZeK-00053V-Cf; Mon, 15 Nov 2021 10:55:44 +0000
Received: by outflank-mailman (input) for mailman id 225771;
 Mon, 15 Nov 2021 10:55:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmZeI-00053N-TB
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 10:55:42 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9352de88-4602-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 11:55:41 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2057.outbound.protection.outlook.com [104.47.14.57]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-29-oS_LLfIbOUGHzucypXAGEg-2; Mon, 15 Nov 2021 11:55:40 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB6163.eurprd04.prod.outlook.com (2603:10a6:208:13f::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 10:55:39 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 10:55:39 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0215.eurprd06.prod.outlook.com (2603:10a6:20b:45e::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Mon, 15 Nov 2021 10:55:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9352de88-4602-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636973741;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=wgJdF0YUrX9dl8I6Mk8SvQd/Fvmv82xtDqUaM7mpsGM=;
	b=KTGigzLGJGat+g65KBEubvzrV9WvnDpPy/sAXVFygFk2l1gfbPGMDq0RHK9RFDLWqe7AX5
	gbGArKih/YbL0uQvQElT309LaEJ3LNMgX1DH+X+Sap5DsTp4rorEi22G6OT6rjyoWRjr6L
	bv/UmrmGBeSKehZtu8jcP8w92Bedfjs=
X-MC-Unique: oS_LLfIbOUGHzucypXAGEg-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iRqseEckfZKTaQTpB6dJ+3e6OQ7BdGcQVtfAjmzQTBObCInJhF8dktPnYq4T8l7WczCcr1NvxWaovDlug4O+bbBph0irNsEwfd9bGruv0iWqyYf+Z290SxHFCm1KFoKlkVpLNuIF8JmvFtt8Jrldtf9/ZxB0jtoR8hRQlrdBnMjuDP5u+GHVki+CLxFLcAefLxuIbTA8TRGqVWMtdCVO1NeiOODoj8Bcje0vn4gG/EFG1Lawmo3Icj2GZbzQwAqWBehX0qIyX2PgEBMAkw4aiLWdpJgRIYIhh8Ns2gzNwUS3Okw2/o7v0fRhT50l/0Nou8tMEZ3t0pHKUDjNXD2RDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wgJdF0YUrX9dl8I6Mk8SvQd/Fvmv82xtDqUaM7mpsGM=;
 b=Tpm+aPFAV4jXmGnXeVOUGvKpM9hBU49xVAzLAdNkkvqbEfj5B0s3UAeT8c0Vu32uzoBdPviSjYr7pDP1vnYxpsPHenVrV+rjNIjO9iGpjE9Vev58z7Bvv9Gbh9OpRZznIKivUhipC/2Z0rIHmx1tqMOxvYf6PQdM3U2sz3TgzvyhbhsMg5PFLr7I+kVn4pOtnsnpERlvkNRQjO7s+NFX3ZBKicX8ojaL8xX0TRfM50axTXIMl6FAJbwGIIWnMK2h27DaDdhWNC8Jy7NPSquTg3Aliw5gQJh7CAFji2oWwz3qluzOsE9ZIn0o0LVlxyDZUtQ4EwVq8AFA1nH/BVR8IQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fc9fd8d6-7461-367c-01c6-f4c852e13f54@suse.com>
Date: Mon, 15 Nov 2021 11:55:39 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Content-Language: en-US
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com>
 <a1b2aa1b-7d8a-4ab6-cde5-25581ee9841c@suse.com>
 <C3FB48C2-F619-48A2-9268-F0938405133C@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <C3FB48C2-F619-48A2-9268-F0938405133C@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0215.eurprd06.prod.outlook.com
 (2603:10a6:20b:45e::22) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0c04fe92-f543-4f0a-3eef-08d9a82675d0
X-MS-TrafficTypeDiagnostic: AM0PR04MB6163:
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB6163E0248947BDF263B7A414B3989@AM0PR04MB6163.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	DerazcNo4Cxu+ZFTXjWx3qsEgASG/UOxifzFP3YdQVWYKMLSmlmrnM2XvM4lARTzFLVFKFoKmBfA4vdlkGRVqFCNMS6xj9mRLSuMIFAwe8bAbyX2HC1rAjKLBVkDvqFNUnUZtzHLVoGOKpgnODtLW4I1nhZESS1vLCEAHRPmxRrOxENIERpuzoMjt13vratpNuY7KBTOwV/CoVEXRhzNvhXKWx9Gg7u71j84t5RrXC4fuRJD9lmN4UyoLE1xQlhVu1npDEi/L+eJn7Zk6d9v/IjONKx5o9EzrxrsODxGpQ3Gjjxmzn08ufcwPzkp/mXuOXKEkJ5+LWkIsqMlVaJzXpOCRnKJ/fd/feswzIEI2vJW8gZIq2Bl9M6I6x46spMSz9RKaARemnwRAGoFUEOknB0tA1e2dn0IgRFcBf8clooR0Fd23gJtDXSkXx0EjSbpTfSar7WDvRhklMXV14GpjCcVsdQJdw9eSkyhE6bzt4pXPtCEBaUZCQNlIViRpOyQs3GgELtPkPrh0GtD2furxra+HgHhgV7mYdPrj1G2wPginvf+gNagMFWCpeU1DZcwLHfM2EIAXwkIOLp6ZyDKWCuqbW9CpbiwTHoDfjzcXLVPaFMHQoVbHJQnv5qQDoUL9g/6jtiJnlaTeuhM6GLdWFB9cpjAieBZsUZcaiLZ3TDX4znikzmVCFRYLLUzDRMHUtrLaAJW6+nuFbOQGAsm9I4rrFwTyaMAfWsPvFybGOawMUSAQl2n4ibVbXaxBEkG
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66476007)(66946007)(31686004)(6486002)(956004)(8936002)(31696002)(4326008)(66556008)(2906002)(6916009)(26005)(53546011)(2616005)(38100700002)(86362001)(508600001)(8676002)(186003)(36756003)(5660300002)(54906003)(16576012)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RUQzSmxyV1hYSSt0bDZQbEptTjRpSmhsZDRsNEVwcGpYRTZCWkJib0VtZ2dO?=
 =?utf-8?B?QnpIZldSM3RFeGZjeTQ1NHNJbjh2eXVyaVd2OHVEQnU1VmVrNHZpSm1ETS9U?=
 =?utf-8?B?NnI0Wit1aTBtTnFWdmhMUjMveUxjVGhHY1VJMWJqT0VoSnFMKzZ5ZFZWS2JW?=
 =?utf-8?B?WVJQN1BnU1lGeE96Y09aY0swUkZmM0RYVDZiVVQ1aDdaZ3RJVU1yWWRwZW9N?=
 =?utf-8?B?MHFHK0FERUVWbzFyeEFvSmJxWExPbXBxUk43TEdLSGxRdDRlTVlNRENBUFor?=
 =?utf-8?B?TW55aHgxbWFQaFQySVJMVHd3USt1WmdhRFJSYTVoQ1dUQ0N2WS9lV0ZxQnhW?=
 =?utf-8?B?ZytNZ2IySUI5MFN2Z0VHM1Ird0I4UFUrYnVyWEpsNXVVTWZnQmVSd1B2TGFz?=
 =?utf-8?B?VzhxU21qYUR0bEJuWWRFSzh2UUQ4ZmRMQ09wOExBTHpYREdPN0xodDVYTy9Y?=
 =?utf-8?B?ODhVOE5YT0tzdWNQa09qaG9wcnkySVBraUYrbFJSZjFGUStpci9GM3VvRDV6?=
 =?utf-8?B?aVFINEtQSnZ4UDdObk94SEEzeSt1YUJCYzBxczJnUEFVL0U1L2d3WXpaSjlp?=
 =?utf-8?B?UG5KWFl0Yi9VVWZKdVdpTHZya0M4Rk10ZmdNOENXeWowcFh3bVl0M0VjR0o3?=
 =?utf-8?B?Y0pOY1NNS2tzanZlcFc4Vk5iRVQ2WmdWaHNBOXBrOVc5dmdkTTNka0RPRTFz?=
 =?utf-8?B?UEdtODJ3NlZFRU5hWVR1S3hwY2YwYmpYTnkxZVFFd1lQM3VEbjJ6dzRLSVAz?=
 =?utf-8?B?SVErWFZKVzJhZ3pUcWNBK0ZZOEs3cXNybzFKLzNETlV0aTlpbzlIQnpES1ZV?=
 =?utf-8?B?Yjg5aGJ2S3Nsdm94MUwvcmQzVngrcUt1ZWN6Z3RodWMwbFpqWDhicGFWaWQ3?=
 =?utf-8?B?Y1JIWjlwRDRzcVQrck1wNFZYRkJnRGZvdTR0QXJEaXlPTWoxUUVJOFI4elVi?=
 =?utf-8?B?YjFqWmlwQ3g0eHZxSlZMQ0JrYWN1UE1FZ2ZVeFhDdXhldkNndkVFcDU5cVMx?=
 =?utf-8?B?UUJQTWc0NmQ4K1g0NytHRSt1ckVJRWI5T0RmdVcwTm1UL2FxU2UrS2tQcU5y?=
 =?utf-8?B?bWVRWDg2YS9kNm9lSk04NWpBMFRhR0RJZmlabmhpSm9vWmZVWGJCOUdlV3Ro?=
 =?utf-8?B?c0ZFTjJ0d0Z6WDdYR2c0QzA2bnd2ckZoa3QyUWpGN2hjQk9UZVpOOXg4NC8v?=
 =?utf-8?B?RFkrdUU2dlRIZnJHa2FmRStRdlY1cCtCRmd3RldKamNNWXU5ZzMvelhRVFcv?=
 =?utf-8?B?NkQvb28zQ0hiUGVEd25PQUFmZVJlRWo0Yms2RFVIZzhPTkZ5VFdKeXJiQm9z?=
 =?utf-8?B?NTVkU1F6aXJtTXVLaXVsSGdZNmJLd1JHZ2pYQXUvZmNtTTR1TjgrM3d6c29T?=
 =?utf-8?B?YUhtczRacytCWDluRmF3eFZwWCtvbmJ6OGZmcnYwTTNHR0RnUVZJRjdOV0w2?=
 =?utf-8?B?dnU3bmNhSnovM2dMa3JVa0pRRnF5YjQzSkN2RFRscDNzaHVMQklzdis0VTkr?=
 =?utf-8?B?d2Zlam5tNlpVMER5L0VZTTFuZ0xsUUVab1NrdUJhUGJqbzV1THRuOVZhOU54?=
 =?utf-8?B?NjBBOXY3aUhQeDNFSE1tZ0lMWDJ1RElkSEtDV0tKMUtOV1VmSGFNR29OV0Nk?=
 =?utf-8?B?M1dJN0V4N1AxZnljd3h6M25OSFdvT3V4TjU2KzhvLzhPUVhPTWN1SVcrb1I4?=
 =?utf-8?B?WlhjbVFCajBZZnVENWtIbnUrTCsrOTRMeWFMb2xmOXRnY1JGMkJER1lvSzJy?=
 =?utf-8?B?c2lpZVFEYWtNRlB0REMzbTRZYzRtb2YzWldSeEJaeXNRb05CZUdzRXNnY0dZ?=
 =?utf-8?B?L1I1ZXplQ2QvSDNYRmNxazR5OE42R2tlK2ZkUG5Jc1J6U0w0RGJ2UGo3RHRY?=
 =?utf-8?B?RDZPSDU5SHRPL1laRCthS1dia0cvejBjNXpDaUY2TXl5ZlVOQjBPYVJxdElo?=
 =?utf-8?B?ZkdLUnRGYkpsOHNLTHBidTdNSXhzRHZuelN5SmEwNEJUMkZraW92S2RKRXdn?=
 =?utf-8?B?dEh5dHIwYjdzeVJrZk5GL2x6SXhzSVErdEp2VVg5dTk2R25jcis3Y3ZaRjZG?=
 =?utf-8?B?eXB1aG5KRHdSZG9JaFlRblJHSFI0YVpTK011emVScUQ5TkRPNFZ4bUk4a1V1?=
 =?utf-8?B?QWFTVE14ZDV5SENac3dRR0pOdEFNRktraDFSTU9nWFRoNzFuUEU2YzRwb25o?=
 =?utf-8?Q?9ee4+R9b8y1LlB8frOru420=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c04fe92-f543-4f0a-3eef-08d9a82675d0
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:55:38.9730
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9P63PDq6LjelQNYP0kBK7+KhonFZD4XFHbh4xiqIVGRrqzuyg70DF42LyoS34YdmYaENqQcuBuQKfmqIr+lF5g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6163

On 15.11.2021 11:23, Bertrand Marquis wrote:
> Hi Jan,
> 
>> On 15 Nov 2021, at 10:20, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 15.11.2021 11:13, Bertrand Marquis wrote:
>>>> On 11 Nov 2021, at 17:57, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>>> --- a/xen/common/domain.c
>>>> +++ b/xen/common/domain.c
>>>> @@ -1234,15 +1234,18 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
>>>>    return 0;
>>>> }
>>>>
>>>> -static void do_domain_pause(struct domain *d,
>>>> -                            void (*sleep_fn)(struct vcpu *v))
>>>> +static void _domain_pause(struct domain *d, bool sync /* or nosync */)
>>>
>>> Here you use comments inside the function definition.
>>> I think this is something that should be avoided and in this specific case a
>>> boolean sync is clear enough not to need to explain that false is nosing.
>>
>> While I agree the comment here isn't overly useful, I think ...
>>
>>>> @@ -1250,12 +1253,12 @@ static void do_domain_pause(struct domain *d,
>>>> void domain_pause(struct domain *d)
>>>> {
>>>>    ASSERT(d != current->domain);
>>>> -    do_domain_pause(d, vcpu_sleep_sync);
>>>> +    _domain_pause(d, true /* sync */);
>>> Same here.
>>
>> ... comments like this one are pretty useful to disambiguate the plain
>> "true" or "false" (without the reader needing to go look at the function
>> declaration or definition).
> 
> I agree with that but the comment here is useful, it could be added before
> the call instead of inside it.

Except the form Andrew has used is the one we've been using elsewhere
for some time.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:03:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:03:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225777.389955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZlM-0006Vu-8i; Mon, 15 Nov 2021 11:03:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225777.389955; Mon, 15 Nov 2021 11:03:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZlM-0006Vn-5W; Mon, 15 Nov 2021 11:03:00 +0000
Received: by outflank-mailman (input) for mailman id 225777;
 Mon, 15 Nov 2021 11:02:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmZlL-0006Vh-AD
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:02:59 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9771e6e4-4603-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 12:02:58 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-2-5rGWA8UHOvuFKF-xzzE9TA-1;
 Mon, 15 Nov 2021 12:02:57 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB5586.eurprd04.prod.outlook.com (2603:10a6:208:130::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 11:02:55 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 11:02:53 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P250CA0015.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:330::20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Mon, 15 Nov 2021 11:02:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9771e6e4-4603-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636974178;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=T8ya6VCSxe4zqaCa/M4sqxusON15MQIBf9pbVe0Nfp4=;
	b=GMTCm5W8CFFB07ZOn1iJVcTvrtj5joo1AWuFsD4NNfCniirpFzzz4uUXQM58JMEXH1swoz
	dGAtJhzjBdeoFEfu59st2WJ31a/tCfDykmknr1F+cTC7RsoxIv5ENAxD3HqQ6GQ2So0mfG
	khhL+UvbpujIXf/mchfrKlkAzoY/3No=
X-MC-Unique: 5rGWA8UHOvuFKF-xzzE9TA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gTUo6dhY4OuCUFqD6rFBNV/txjklfz9c9XDoTk0rcDTJXl8uxu/nJh00l3Peme+29xpM1RpCwSBW8V2A0mvqVbZXTioGriWrmTkNJl//71SvvsgcYYjM8nN/mxweUS3jETsKVn9V7Wu6YzLNiU8z71vD1tZUFGCWNbgksmvh6yw26pdq4UaTr7CwaNHPqZnOZ8j1necEuT0t+mLWdB4hJzfDFZLNjIt5V8MhNc1h5aXJq3d8ZHhvMwcBUlCAzXQ1ysg5cUyXbuoKDMqsHmQpxUTfSsnZRlr9e90k9ci3a+t/Utwm5hf+nqOWKWJe37G5lOdgwx/tJP9oKLoyXP/AMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V7b762wK0IwJcNCb/AgiZcIEIF2l1RXPGW9Slak8UWM=;
 b=BDF7FPBOXIDppgguDG8EtsLTzeB7YTSApQZK5p9rnN8l0r7sKxrD+0Pv6L6JqxkaEFWlg0yil2wqhO9FydfsDVn/cyt/NubYIViZLlSUK1wGX4VS/xbarNFppM5YrrRhymopqQcS4tZezG1yDi8rkK0bSPLe/CL7iWmToMKC8Dl7qn5NAJs9OU+yqycARzk1c2jdkTWX46O7CF7CSoRflRpu9FFtIVhrhXVePXwvMmHQpjHfIxVqPLrs2kcoXwWnA8PrPXb38qdr6E45krebA1hvhCbWbQ3+cq4LYUMaDzd0UF0XrlMiZlpIG2MGJB6+YgqEpojLm66LBqE4QxX3BA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ec9b71ee-c687-3556-a999-941886610329@suse.com>
Date: Mon, 15 Nov 2021 12:02:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] tests/resource: set grant version for created
 domains
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211115105106.928-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211115105106.928-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8P250CA0015.EURP250.PROD.OUTLOOK.COM
 (2603:10a6:20b:330::20) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7998d71c-7a29-4ff4-0b06-08d9a82778d6
X-MS-TrafficTypeDiagnostic: AM0PR04MB5586:
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB5586F95DBFB1C1A5CFF52D09B3989@AM0PR04MB5586.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	PTYLg0vbkE2uoDhnRcjcygSSxwdd8cRSPm+fVX/r4HP9qKGAjBto5MabHBWlc0oXZOB4+grPwA52T162SB/8t6v0MbZtC1JswvtvlZkNcR2cGx3+g4ZEvgD7QswGBLla00RH4g+yz1yMYva1fOgvCFglc+gq7GHfOaY4G0Qej/C2YTtTX8We+tLUvxa/Kr7X8rsD5F+irjiW4nDwwYo15DSAnX5LplOijP4CHTg/JimxIFKKSRK98gv/IguJAAtqbM8X16TCI6+A6Y7+Syl4m0Ap83srklXSyKQ2mvBR18xiWii8GYMd8Wf3M2PfOgU6J/MKIvhORe+johuPjSE5xiUVhWxcSHGpEtd9jumAoDgi2GDea3z1ahzdwgGlg8iVaM4LuXCRxQQk5kYDViXf/x5w7WUHo8yJ/JAu4pePHDI9lOJdlRtZ6pBLa6/aV1DwRVNTFcBmFaUVpzd+xZQzEZUh+qHHYdPJEx9m67IO+84rQBVqXxeiw/XRjxUa6/qs5fn87iHcx+UsW1qOS8TeVjBlgeVwwZsEXojO9HwFIoNpZqJQ8HEwZEPAzzdXfnPVHmhi2I6v8OghNrYm9E71MgkYbc6WJPzFo0EfO44Ndagzu8VsUm7Dtozjn/OsDZoCoXKPq4+79vWhSoEiFyCTUgiHD4SJkGDKHyFJ2fcwdICjoBerQCSayUgW2c7LqVwDOePozzloxsUAVNRd9BDEN3S++TtDrOe9Qn3n2of7bS7BYSfWuZ8OhD0elHbi3oQd
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(31686004)(66946007)(6916009)(316002)(38100700002)(16576012)(66476007)(26005)(66556008)(54906003)(5660300002)(508600001)(8676002)(4326008)(8936002)(6486002)(36756003)(31696002)(86362001)(2616005)(956004)(53546011)(2906002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?BMVznHD39PXgX8LsvSvdjue/rvKXTzkX1VOAx2kaaKx7ByktAGxJSUy+bh4K?=
 =?us-ascii?Q?nrtygzozoV5MJ/42vMTLP8IiIBTfXPVylm/d1amGRqANeuh8h70Kg98gRliU?=
 =?us-ascii?Q?yyWeXQRl2oouyFYTqo/qUiQskqGIb8yFR5LM9ArZKjOhwiQyNbqLE98kzit7?=
 =?us-ascii?Q?nByt4LYhKsuuY5k0QRvFO8xSY5KRMyVTB6FO5JfuBy8QIs9+1xxjFqmgrDwb?=
 =?us-ascii?Q?c7rJE8iCSVfQNwocPEOs6lVzc3IfB7uSlIGdMdu4MGXB9cSANzFIBw7o+DD0?=
 =?us-ascii?Q?AJs0dAeI0v+Jo1yfdKWqCjy4N6Oy5fKfUKCJJ/l6BCYq9KVjVMKZr6gussUF?=
 =?us-ascii?Q?UMH58sJuL8jSnsAUK4EYq0X6916NqxuIU+/IACSp3rxTRe/gOhCuCrBxyP4k?=
 =?us-ascii?Q?4U/BBQlYyR9+U+Ir/5ge6V9rQez4yhv4AqAhcosE6fooDgAzZ9C6R4G5aqnM?=
 =?us-ascii?Q?wGXm9DInYfv13A2RJM4Co1JktVaBLVoR4wy57HGPhPZa+eocTHlextXu/Y0F?=
 =?us-ascii?Q?zf1//iS1xqEgZTU/IvkJPct5/C3RWLqNnMi6Gzc3fXlrbOinWxDpVgyGT6Qf?=
 =?us-ascii?Q?TJewURCols8+tdPI42kpNGa67lgTlud6KFLbszWwwqTpimDya22eqL+opzKN?=
 =?us-ascii?Q?h2O29HI4xY+5v48jUGB40TWxT7wBvLXV9WpaGYHsbl7vTDiHZuuahm1pNc8J?=
 =?us-ascii?Q?ubXOywenn71dWGQhwDh+4K9eILz2zLe1UvqlXIa/WTAMSGfIYVFNTq5EmzrS?=
 =?us-ascii?Q?AU9tGP5Jc0GeYc1KgDL275sN5eGBH3Op/8hnaJZmi2Un0I5dVTh2ysS8Lpjm?=
 =?us-ascii?Q?cH/u5I0uSATJ3buTySix8q9g9jX1q7b4p+qnzAgVfa2ar+JTnvOCFm4hR8VO?=
 =?us-ascii?Q?qBUO3271fRw30PVmGnBYi8DOvqy7xKcvcFDWW13DsgdVN3z0QV4rdL4nJIfE?=
 =?us-ascii?Q?EVfv02i2R/JZFto5eRsJZxP/LNqo2r+LEqfi+b5UZDpDU1Qw5FmwTGTTQauq?=
 =?us-ascii?Q?OFrygboaxEAV+gqEC/KcOwR1gp7Iek7EXDArUhIW+xvE0+fcMHT4z5O8BaMz?=
 =?us-ascii?Q?X1zC23zVhR0thRjPArHlOyry/7UR37lodC+L7mi3ZhSl6RCRbaU6EveGPwmb?=
 =?us-ascii?Q?E9cRhLIvu57tDHatozF4lH60dU9gdc69AzYD8RdH0fsHfld1GrHi1hj1ytHi?=
 =?us-ascii?Q?RU28I7wQccCvBQOs91LtY9KUakHJ8LiB8O7tCbf/nk9OcvtJzGL2ymP+kBgM?=
 =?us-ascii?Q?m6Ktda63lUJaxzCZTeaCXXsp7CQLAx/6qKJQtk0DuGRa0PrPKuzpE3S9oFcJ?=
 =?us-ascii?Q?srCZK7t3jmSz5stnH/T01jfdBRWE0AmWNDMHX1YOyfGGrFl9/k9E4bDHfy1F?=
 =?us-ascii?Q?yRP6MmmJJaogvAEfa8Nn/zLr4rMukDdfRiqNS5pD0jsYSFKcl/+mPA8e/hJs?=
 =?us-ascii?Q?mXwXVVGxO7MLix4Mph2C50fFxcRLYCuy9fHM3Eyz+HL1rSvUdfxYJJdXB2+z?=
 =?us-ascii?Q?TRABs8L7q7xBT0etTuzI+9PeVmeZV0Uj7hlqfSACFwlVF6Xln6TUNTjgDC7g?=
 =?us-ascii?Q?Es0W3Past7fiMrGIB3xUTCCU5B9q10qIve1dLM9H51uJ1NxGYj35+yQ883gk?=
 =?us-ascii?Q?A9w51mbSCcCkEIzaN6PxuHg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7998d71c-7a29-4ff4-0b06-08d9a82778d6
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 11:02:53.5249
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CnQkgA4bAXEQA68jAHsxT6CVODnvzE/VBg0wl0YmZ7IsDktQxf/D6SC1Jn/HuqKq84n+Lm63/etcC75x50JRZQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5586

On 15.11.2021 11:51, Roger Pau Monne wrote:
> Set the grant table version for the created domains to use version 1,
> as that's the used by the test cases. Without setting the grant
> version the domains for the tests cannot be created.
>=20
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Technically
Reviewed-by: Jan Beulich <jbeulich@suse.com>

However, two remarks:

> --- a/tools/tests/resource/test-resource.c
> +++ b/tools/tests/resource/test-resource.c
> @@ -120,6 +120,7 @@ static void test_domain_configurations(void)
>              .create =3D {
>                  .max_vcpus =3D 2,
>                  .max_grant_frames =3D 40,
> +                .grant_opts =3D 1,
>              },
>          },
>          {
> @@ -128,6 +129,7 @@ static void test_domain_configurations(void)
>                  .flags =3D XEN_DOMCTL_CDF_hvm,
>                  .max_vcpus =3D 2,
>                  .max_grant_frames =3D 40,
> +                .grant_opts =3D 1,
>                  .arch =3D {
>                      .emulation_flags =3D XEN_X86_EMU_LAPIC,
>                  },
> @@ -140,6 +142,7 @@ static void test_domain_configurations(void)
>                  .flags =3D XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
>                  .max_vcpus =3D 2,
>                  .max_grant_frames =3D 40,
> +                .grant_opts =3D 1,
>              },
>          },
>  #endif

The literal 1-s here are really odd to read already now. It would get
worse if some flags were specified later on and then used here, ending
in e.g.

                .grant_opts =3D XEN_DOMCTL_CDG_feature | 1,

Imo there really ought to be a wrapper macro, such that use sites
will at the same time have documented what this 1 is about:

                .grant_opts =3D XEN_DOMCTL_CDG_version(1),

And then I guess tools/tests/tsx/test-tsx.c needs similar adjustment.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:09:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:09:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225781.389965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZrH-0007BD-Uk; Mon, 15 Nov 2021 11:09:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225781.389965; Mon, 15 Nov 2021 11:09:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZrH-0007B6-Rf; Mon, 15 Nov 2021 11:09:07 +0000
Received: by outflank-mailman (input) for mailman id 225781;
 Mon, 15 Nov 2021 11:09:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmZrG-0007B0-An
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:09:06 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70a7e57e-4604-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 12:09:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70a7e57e-4604-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636974544;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=7cXRG14q19Rc7ooQI3Q56KJ9oCFwKr1mB1zA3w9yWRo=;
  b=PQN+OQXNoTSsRFMmcronU3m/YvE0nXZOqx5gQvZQNkUECdX2evY5RIAE
   lNR3biqVWqSk4cY7U2rTa6mXbp5op9D1xMfaZr/Nmkp5CFD/2YolSxwcS
   IqfE8BkazO3YbE/QFkiiD2IE4TiI+rAFgHV+msznTYYhv3JJOVq11YlUv
   o=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: cBT8DAxivfhmmi5jKKgucijtF8ojzt2gE0IslLMNPgJTnG2eQ3Lqm2Ak4cT7pVtkLkWTt6BJO3
 YW7ZxxgbR8/1fCzCdEKVneKSu4mO2wdlMFEMVEhBGDfrL4jqs6PBRCbXBjH7pwHAcNm8imug1x
 4Y6NqoBiwdSOV0Xy98NvMmQ66Z9zdMeEK9OiLOHH6HbjgbgYPm60LmdjcgHHv2amDoi1vbZiNs
 eTZLRWIGXJL3mEcK/6hIGL1yMKJLWD9NBDYAfg/gHoJeMQ63MTlzvB7dOcWnT0KlNVpHO46rko
 N5J67aA0cxqOirxFM92CsMax
X-SBRS: 5.1
X-MesageID: 57820189
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:WdTxR6Dl8z7qMhVW//nkw5YqxClBgxIJ4kV8jS/XYbTApDx3hjVVn
 DcWUWjQMvjfZGGmKNFwYYu3oEMFsZ7Vm9JlQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540E87wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/hTaIhd0u1
 PF3r7e7eB4TE6jVlfkxakwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvqav4cBjGZYasZmHe7yb
 YknQjxVSB3OPwBXN08XCLl9k7L97pX4W2IB8w/EzUYt2EDS0w5ZwLXrKMDSeNGBWYNShEnwj
 n3C13T0BFcdLtP34SqI9Degi/HCmQv/WZkOD/uo+/hymlqRy2cPThoMWjOGTeKR0xDkHYgFc
 gpNp3Ro/fNaGFGXosfVUR65unPbojomQfFbIvQAxQSUx7f42lPMboQbdQJpZNsjvc4wYDUl0
 F6Vgt/kbQBSXK2ppWG1renN827rUcQBBSpbPHJfE1NZizX2iNhr1kqnczp1LEKiYjQZ8xnUy
 ivCkiUxjq57YSUjh/TipgCvb95BS/H0ou8JCuf/AzrNAuBRPtfNi2mUBb/zt6koEWphZgPd1
 EXoYuDHhAz0MbmDlTaWXMIGF6yz6vCOPVX02AA0Qch4q2rwpyD/Iei8BQ2Swm8zaK7onhezP
 yfuVf55vscPbBNGk4cqC25ONyja5fe5Tom0PhwlRtFPfoJwZGe6ENJGPiatM5TWuBF0y8kXY
 M7DGe71VCpyIfk3nVKeGrZGuZd2l39W+I8mbc2ip/hR+eHFPyD9pHZsGAbmU93VG4vY+liIq
 IgGaJPRo/idOcWnChTqHUcoBQliBVAwBIzsqtwRceiGIwF8H3omBeOXyrQkE7GJVYwM/gsR1
 n3iCEJe1nTlgnjLdVeDZnx5Meu9Vpdjt3MreycrOA/wiXQkZI+u6oYZdoc2IuZ7pLAyk6YsQ
 qlXYdiED9ROVi/Dp2YXY67iodEwbx+snw+PYXaoOWBtY556SgXV0db4ZQ+zpjIWBy+6uJJm8
 b2t3w/WW7QZQAFmAJqEYf6j1Qrp73MchPhzTw3DJdwKIBfg941jKirQiP4rIp5TdUWfl2XCj
 wvPWEUWv+jApYMx4eLlv6Hcotf7CfZ6E2pbA3LfseS8Ox7F8zfx2oRHSuuJI2zQDTum5KW4a
 OxJ5PjgK/lbzk1Suo9xHrs3n6Iz49zj++1Twgh+RSiZal2qDvVrI2Wc3NkJvapIn+cLtQyzU
 0OJ299bJbTWZ5+1TA9PfFIoPraZyPUZujjO9vBkckz16Rh+8KeDTUgPbQKHjzZQLectPY4oq
 Qv7VBX6N+BrZsIWD+u7
IronPort-HdrOrdr: A9a23:++MFlauIuKVNGww2YsypGOB77skDStV00zEX/kB9WHVpm62j5r
 iTdZsgpHzJYVoqKRMdcLO7SdC9qBHnhPlICOAqVN/INmSL1wXITL2Ki7GSpgEIcBeOkNK1u5
 0QF5SX1LXLfCdHZL3BkXKF+hIbsaP3jdHV9Jnj80s=
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="57820189"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jhwosIMXB5rip8a+EwL1SAWQWlNMmNHZvTM7ynDvVDsG8vIG2728vO7htIXbVQPISrWeNKAHJ0NvVKmKMcCxRyumoML1B0eCblyhFbFxhBPfhpMpkVn/kgu/paNYHj/EFqe5es4uPSNoPIJMz81b3LuPheV+ZYbQKKIj9q0IMBJ0ti8/1eop1vfpQLT0S1+ac79fYZ69SFXH5CwgcfhhM+wu03sz2nK50Q/TmKHb6wF1yzP7gpGNcN2c3lE30RmNUgkFC28tD7L0LtWmWiZ4AhqhKA+CYxZALS6vJ4cKCn9A8PHBiT1NytNbulLWSfomm5jJFRRpar6BCZoJ6We43w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dQGcGIWw8+ykgU2xoO+AYLGk6aYorzQ1pON8+RmWEuE=;
 b=UA+VIvOyZdxXIbUQ5CSOT8ntHmUKjx2RGtAQuNN8ODoqI1xAqEsExtAxmKIe68IrQbyxSSGn2yFmjbaaZgNE1PjNX1SxF4gbhokDodA9i48YC6kf8vHrdHs/13DfgXa6UqCV46IZdlyI0M1f+Q6qBxwXJJI0KilyO+jnkvmtZhDaAiGrXt7UgdHJslod2/AUm+vAP/F3gbeTgisTIG+6oddjHu89GrS6DKQGTfLmO4Zb0iAxcJl0eUluRJVL2GR/AIogUjeTetXGGx8DPGwRiYVSvIWShm+CiD3bPj8LYP42BXArLjfRShLHf8wbbzAeTXQ09FHMYzyP20s+7opBIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dQGcGIWw8+ykgU2xoO+AYLGk6aYorzQ1pON8+RmWEuE=;
 b=nDxvXe3ViPT6lSj2a8b3p0o6a2ERteZcxlfy28FnyHpobgZf3yvGBTQDORTW7pI3RVYGsu8/I2WhuEvtyl+Zx23NdroMdKNEV9C3g3zMOxeQB1Y7xmB//iUjjlqh2RNnAnprXEx01nwlKm/jYKeFHrQkg7lKnCkGfuRYZZcSMII=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH for-4.16] freebsd/privcmd: fix MMAP_RESOURCE ioctl definition
Date: Mon, 15 Nov 2021 12:08:51 +0100
Message-ID: <20211115110851.1462-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0086.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::26) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5c524cd3-36bc-42c5-847a-08d9a8285145
X-MS-TrafficTypeDiagnostic: DM6PR03MB4220:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4220EF31249EB677ACB2B0AA8F989@DM6PR03MB4220.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: R3e2+d/yMat/eHggg5T2Sl3TBYrG5nv8fPfgYEkkp1Ul1pgwaey0m+zoM6CHcd7y0FrYJOmB3Eq35RslJwbpx8+SWIZY7fFkv0yi088na6Y3lw2tocpGKsoe5gBfm9jJAJEUCc08pRPW5Wgn5mcdbg48/FpTbeq/U+a4z0h7PbkrpxadNyTxEaUvKSW8729BUu/+t8mUFODVHICxBmzLPfbRlQOnuC8F22CKq8m5RsqL6YDtO1eGzpLjtteXxFzTSpWghbHyyuB+Nc8d9b+ebh6zwQUu8+YrHHNJSfiuIFE/5QsW1Ovm4UetK/NZCdtaJYoAioRDu9kDu1W8/Q4q8eb4DXMKXelr7A3PYa0c6v25E/UnKqCXXDTV+b5+kubmvGG9QVZKmFeCtdHsJUu7HuNSA/tmlOIiNqM5NwvVGzxrqhBnR+Nmf4A7rE87VWamMntdmcfAsbOM+vYBpLbnWqXYyfcblAMHHC5zBHM378pyOHlypqcRWxxwrYx3qmGb+FotqWcmjgBkhdIYNpRzgBFlWcHmkyicv6Ygp2lbvlT9BRV1oeP3ALEdeehhidspwL43eVJoCgfDMr2z2VjyAoaWJ/SCpOADxFAEmcaJpQJaTka8rG07IeLm8gUgRaGsPMBIJt4Alb0ZHvzRFo+7xw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(36756003)(1076003)(6486002)(2616005)(508600001)(66556008)(956004)(66946007)(66476007)(82960400001)(54906003)(2906002)(316002)(5660300002)(6666004)(38100700002)(6496006)(6916009)(83380400001)(186003)(86362001)(4326008)(8676002)(8936002)(26005);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZldjOWtTeGhBR3JXbW80S0F1cC9kMXFjSEFrVDV5WFFmRWdRVm50Yjk3RkVW?=
 =?utf-8?B?QWxkaUZlS3BlQkJUNEgvQkxxaFZHRlN1VVlHK2diSlUrMVMxMFlZejh3d1pk?=
 =?utf-8?B?Tlk1Uk41dHQ1V1JKQ3QrRHU3ZElVK0g4bUFJbXZCZmtRRGFGKzJWWWxSb1Y5?=
 =?utf-8?B?aVFPZEdjUDlYS3hrc0hldHZvaVFMRzNtS0U2TDJtREkzbWdsREg4emk0Q1ov?=
 =?utf-8?B?TzNaOFB3czZSZGNxbVMxUTRvMkFzOW1BNG43TlNGKzlmY3hmWkczNUdhS2Rm?=
 =?utf-8?B?WlV6M0pjLzN2N1l3M2R4bkNIZENZc1BwZTVNakUyYmR0ak8vSXhiMDM5VGpI?=
 =?utf-8?B?bTFhN1ZRRmt5cjhpSytSRktvRlBwRU11cXN6UlRobWYzSHJYdHVCcWtoS2dv?=
 =?utf-8?B?KzIzM1lPOFhxV3N3eEt1SHJWSTM4Y3hlSEdSam9Fc2xTOXF2ZEFjSVl2ZFdB?=
 =?utf-8?B?ejhFVXhzNFcvblJtamU3OVBEaEdsQmQ4T1dOWFVCeU5LT3A0cjRuazduWTFm?=
 =?utf-8?B?T25sMVkyZ2twbFJ5ZEl2NVlDelFiYlhScnAweVFBTm44TDZYOE13a1VyMzdU?=
 =?utf-8?B?VTFlV0FxMGk0UVpzNGlxd1d4RllQS2V1RHZIT0E4YmZPaHlhTUVtbmJrVFoy?=
 =?utf-8?B?Nkp2OVVFZXJwM3pFcVQ4Nk1SY1pRSzNvQy93K2dJM3loTHRIblpQUVlVb1l6?=
 =?utf-8?B?cXVvWW5YdEp0alRVbTdlaEV3U0xGd0VsT0k5ZXRxWnJUS29kM1RIK0xFL01Q?=
 =?utf-8?B?dFcyMDhkQXJnMStiMXRxZVJ6TjVFdVFoM0tEVTV2YXhjU0Jzc2RtZ3pYTE1t?=
 =?utf-8?B?RDB2YlZZYXdZcEJxTDRQQitNN1pGemROSEc5ZW9EdlFBUjR5dEF0ZTgrMWkw?=
 =?utf-8?B?dmVUMTRkZnRjSzBOQm1OR0NYMXM3aXVyWHA3T29KbDFMOENJSERRZ2M0Uk9w?=
 =?utf-8?B?RlU4VWlHRUhEQks5R0FNYzk0MDR3NWhJU1RrSlI4bHdzaGx1WmQ1Q0o2akg1?=
 =?utf-8?B?b3Fmc2FZbkRBZVJqeHhjcTlpYVRSR2w3S1RTWmNSWitybDVwM2YyNVVwV2xX?=
 =?utf-8?B?UEl0amJOTVkvc1FjNXBOSEd3d1hCM2l6UUdKclViUmt3dUU5VTUyMFJKTHg5?=
 =?utf-8?B?bDBPOEpNSkFzdWo2dEVDTjVhcGU0bW1pU21aSmlrVEdQbit6ZWM2TllhZmVz?=
 =?utf-8?B?ZTN6MEU5TFdxVkpSK2UxVGMyekdtSUtUV0lmTnYrTDRpZDBDdHFWTGpEUWl4?=
 =?utf-8?B?WE5Ld0lxWDJEN1JnQ1p1VkhOYmhGR1lLSFEyWU5Ec0wxSDRpNWhWQUc4OWxK?=
 =?utf-8?B?cVgzcjNWa3RXRk1BZVdWdW95ZS8vV3Vna0pvZUN1SDNLRnpVblh6SW5BdXNG?=
 =?utf-8?B?b1I0SVFQbmRxSEVES1pTT3A3MFpBRDJPdXpJbnBlenVKd2hZK3NvZjB5WGpB?=
 =?utf-8?B?c2xxa3JBMkorRkpER2dGaXZxVnpESmxJc3Q2ZUc0b2J4OFRKa2xxWWM0OHB5?=
 =?utf-8?B?dFlRdWU4YitnK0FsYjNnZVNUVktIOVg3T3RhY2tNcXYwK2VBemNpeWdWYXpo?=
 =?utf-8?B?aDAwdi9WcmxXVWlpc0ZjUGdUdzkzZE9NOUxMK3BWK0c1RGYxTUxFUXdyN1d3?=
 =?utf-8?B?VHZwRmZPTmtBUjRaV3p1c0kyQk9Rdys5YzNSWnhsTnpNUzRPWmVSQ2tNNjk1?=
 =?utf-8?B?YlBxdzk4eEM3VmxPQy9ZQUVrdEJUdXhNOUxVdDZYZnp5b3FGc1J0K1N2TkxI?=
 =?utf-8?B?SG41N0FKY1dQRnZHeGM2d3NLWloyWUVqamJYU2p3ME5mMGgvNFNrM0ZqZkVN?=
 =?utf-8?B?NWt3bVNXbG8yTGNRQjk1SnBsSzFQQUhySDNXZ0RLbmNqZ0xXWHJCamxxNnFE?=
 =?utf-8?B?SEJCY2JpZHNTNkhqN3ZoTHFKSXR0dGZtRUpXVGt2b2hPNU1aQzdtRUpIN2VD?=
 =?utf-8?B?UFFESEZVQTZTOTdGbTdycWNIM0g1bnJtb1BlcXdUbDR1RkIrOUVQM3VFVlFD?=
 =?utf-8?B?WS8vdVZCMngyc2hSRUUyRk04dXNtdkJFaENPeHVJL2MrT2dCUXRKZXdlNmlN?=
 =?utf-8?B?L3hndTZTd1dPN1prSDZ2UW1wT2dZOVMwUzZINUxsM1JreG8za2pmamVwTytr?=
 =?utf-8?B?RTJSMkZDZkk0Y013Snp1amZpSmpNNTB6TEU1Y2I1WUcwMTV3OUpMWWdvcnAx?=
 =?utf-8?Q?HhEPBzf4IHBdLDklii2e774=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c524cd3-36bc-42c5-847a-08d9a8285145
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 11:08:56.7305
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: B7iMYAkUBK+yrC8g628rT+wpuQHvzq/5RmKHxgZDQALqn9QuQJVIG4Ctyd2zcFR4y2eRjUdqOXenvdUaJPaJVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4220
X-OriginatorOrg: citrix.com

Current ioctl definition was wrong in both FreeBSD and Xen sources, as
the MMAP_RESOURCE ioctl needs to copy back the size of the resource
when passed a zero address and size. FreeBSD encodes in the definition
of the ioctl number whether parameters should be copied in (W) and/or
copied out (R). The current definition for MMAP_RESOURCE is lacking
the copy out part (R), and thus the call to query the size of a
resource would always return 0.

This change will break the current ioctl interface, the tools can
however fall back to using the foreign memory interface in order to
map resources from guests.

This was a shortcoming from when the hypercall and ioctl gained the
ability to query the size of the resources, as originally the
MMAP_RESOURCE ioctl didn't need to copy out any data.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

The change only affects FreeBSD, and it's only a change in a
definition of an ioctl, so it's unlikely to break existing code logic.
Without this change Xen tools won't be able to use the MMAP_RESOURCE
ioctl.
---
 tools/include/xen-sys/FreeBSD/privcmd.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/include/xen-sys/FreeBSD/privcmd.h b/tools/include/xen-sys/FreeBSD/privcmd.h
index 649ad443c7..70cee3db68 100644
--- a/tools/include/xen-sys/FreeBSD/privcmd.h
+++ b/tools/include/xen-sys/FreeBSD/privcmd.h
@@ -84,7 +84,7 @@ typedef struct ioctl_privcmd_dmop privcmd_dm_op_t;
 #define IOCTL_PRIVCMD_MMAPBATCH					\
 	_IOWR('E', 1, struct ioctl_privcmd_mmapbatch)
 #define IOCTL_PRIVCMD_MMAP_RESOURCE				\
-	_IOW('E', 2, struct ioctl_privcmd_mmapresource)
+	_IOWR('E', 2, struct ioctl_privcmd_mmapresource)
 #define IOCTL_PRIVCMD_DM_OP					\
 	_IOW('E', 3, struct ioctl_privcmd_dmop)
 #define IOCTL_PRIVCMD_RESTRICT					\
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:09:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:09:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225783.389977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZrt-0007kb-Cd; Mon, 15 Nov 2021 11:09:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225783.389977; Mon, 15 Nov 2021 11:09:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZrt-0007kU-81; Mon, 15 Nov 2021 11:09:45 +0000
Received: by outflank-mailman (input) for mailman id 225783;
 Mon, 15 Nov 2021 11:09:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmZrr-0007kH-Tx
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:09:43 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 888c07b2-4604-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 12:09:42 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2051.outbound.protection.outlook.com [104.47.0.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-30-mLMSaB_cMuWqfpybvLuvNA-1; Mon, 15 Nov 2021 12:09:41 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB5681.eurprd04.prod.outlook.com (2603:10a6:208:12a::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 11:09:39 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 11:09:39 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P250CA0012.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:330::17) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.19 via Frontend Transport; Mon, 15 Nov 2021 11:09:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 888c07b2-4604-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636974582;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=wfbTQv0gqNT/v5N3lT2GnmE7JAfLJRKwKoX9nwTgZWc=;
	b=L/8xNSOE3QOBmCPTISNy35TwcB9MyPZ72Qr2G89ctu+wrx/w+ybI2F+Cf+A2q2bU2Xokz0
	C8rCPvdmHhhdCOg3ZmETIvlWVBCq2lRDvKtPIo+ZLI34m2KIoxDZ7aCwd6So3OqSPTk73x
	/IA77ujrvP8/3Lot9nEIhQZukvbVpCI=
X-MC-Unique: mLMSaB_cMuWqfpybvLuvNA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WDFtYDcdFSc/GIJMc027e1y5HcxWGJxuWRS/DHsTCvJfpJvnppCKwJyRGP/EbNFrLW+UhqtVxGsDTa54kOyDYaL8YI91In3+72E+mlJbAdpcwH5jbkIcMWqeoDtRORJW3cElHRdlpssW6HAfL4sVpVPu6Kb5pp8Ltk9FVeg0Vflwe3MLDQRiboO3IVLj8LqvhTEeEWar7aKcqRfwiu23YgQZ7vsuD4I3Tz5xw4UnCTbYGCUZHBIYafxRZdR8Y/lG6FatggaawEt04Ej1MDOE/Q/zbMLsN0KJ+h1CJeLJrBrBFbgtnoA5BoiDVt+1teuZA2CEpE/wZq65wW2gYn+k8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=slXQGne7JzTLYeGyeOVrdpH74tMCYFzDO9T3Gocbj10=;
 b=Rv+xzWurZUPOXpnl4ugzrIvj+FC6BbLZP2Pcs2AZ8Y2V/7crGrE5bZH+OwCR2IAUT4jG+e0248EEzOzpLSn+egKuOt56M/0gOQrPJXn1xn6ukaBWiYFiQpHHs0DaztgeIZ7guEc+DJRnCZ2VpVWEVzip0FIZMJ3HX6FHy5lNgqwX32QDlMj93KvP9jo/FvT5WHXHVK6drq3/k1nE2ZspkB/tJgvrxPp+iJDj0LMz17pDxT+LqOYfx7924wLQBN7wd/MzXOdEJTpui/jLxZw/yYYzw+IahZSEqCZO3Aik9jj3iZthE6SazpP5+meNM/zU7ajEVGVVDv+iguK8JlfMsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a220c6f7-3290-42ad-fcf4-69cfad7b8ece@suse.com>
Date: Mon, 15 Nov 2021 12:09:39 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 1/3] x86/cpufreq: Clean up powernow registration
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
 <20211112182818.30223-2-andrew.cooper3@citrix.com>
 <YZIn78EzYjI7YXC4@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZIn78EzYjI7YXC4@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8P250CA0012.EURP250.PROD.OUTLOOK.COM
 (2603:10a6:20b:330::17) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ad7192c4-e562-4d2f-f1cd-08d9a8286ab8
X-MS-TrafficTypeDiagnostic: AM0PR04MB5681:
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB56810952E6458B3A0E2C5CB6B3989@AM0PR04MB5681.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	PUxPsi7UlC41gBHEV8RGqP6b39gBmxXWDXzcUhj/xXIZmTqgcjlAxOE4R6Z4Fqd5FCDPGIpY8ClxQ4EZs2kSMTcLMStIuEGekpY26ZP2MF3Mvw74ARAxs3BZHYeU4dlY2bOzZvt0/XoZgXaUxbXIdptMKjKF2lHAVHQ+9+iIoWIZeMHKRMzCB2cRNOb3OaMvohmHCtORHdgwYMvb4f+6+y53ReoYOyfV1CK5Rkme0lWAxs6oPaprCqW22atX2JqMxuhDBy/GYvBYG9tzphLMBakiMEPUFJtq5vuBC2WmVDoIGqYavu3DwoHpVHIkuKX7rNQXVJ2HcOVml8yiWtuaSjq8cIFqKKhJvN7QF23/DgDz2+hebUZmzSb6jJcscO6UinkP2eLstuqugkgpbKWahljp+Uwkf+GKmmwXQsl2YZHAzDkRHiOmmqWilF4BXhicVyx/T4QoSHkiYvpvCbKL8H+tjTUZCuexHJK+hJhtVQGcKjIE9Akp1adGxqLImKfPjefjcj3SbNWCwom+WH3JSkj+CsI2779IP8vmdlm0nAhISDhPbAFqWpq5BYP+KMMhdQT3imcoqk0s4HVMhImV8FjgQB4Y8n8haBy3fFZpBF7avVjr6Tip5ghzVeNW3cfYSiyyuRdL6nnqZSAE3mBFXfvLX90mBS1+0yhlaQtbmFbUQzQEl9Y6u08NJ6icossVBgMq5RUxxuMA7tHxsqWt52ZXfQEfmdlTKBQ7isHBDbQnWpzbZqXreBEze+OSzEAT
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(31696002)(54906003)(5660300002)(6916009)(8676002)(186003)(956004)(31686004)(83380400001)(6486002)(8936002)(36756003)(16576012)(508600001)(316002)(53546011)(4326008)(86362001)(66556008)(66476007)(38100700002)(66946007)(2616005)(26005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?U47XVHiwOp5kynM7UFub/9A9VnkH0xY/YHpZSxZO1FYP552uDUlbtLupGi7i?=
 =?us-ascii?Q?FD1Oy8t8KiEMitNGfOVFCgvAiVAz70NSJQBTCZau4+K8tyLAuRf8QjjuWqDk?=
 =?us-ascii?Q?GHnOWjN4lesMx+xJR+l70E8iV4RPdO2y6/UXnWyMer/I/mBTe7QL0uWi4pmy?=
 =?us-ascii?Q?XPx8WsyFqAmgVz7uLCOmrk/5UkQjKTMP32dxGHIEUgS+xq5wSUqSdcu9rGIS?=
 =?us-ascii?Q?w9hRcgioD9wVDkQlhW/MGoIMbZY4Ik1O9/3zsKJUlgWCR3xvatq6Y36cHWGe?=
 =?us-ascii?Q?OfkEvv4DOhqqlGh7m06oZCWefZgjlFLOOkDi4q67/DsI1KR/ZpJ0D7qRFiBr?=
 =?us-ascii?Q?F2JvXcEfcw1icDvKMwY3axU8lEIGuQ6UeMDvJBmdOMOqL0EmOCFEA0lajRD6?=
 =?us-ascii?Q?peoYZhKeepeN+6zd2mxqzp8DdRlx8ihHn3oR1t4qYA8KX+iD5hxezRQ5n8aE?=
 =?us-ascii?Q?7gwyFY2GcE5tPWPg6PCB2JzEiHmSjDnpXBhU0rlmVzC0SDre/9Y/rwqRDJnT?=
 =?us-ascii?Q?/rSa4ktIiqVdR8IZlDToFXQyU+kF+M2bnuItYN+l3drB2XOrjDC19+4rbA4J?=
 =?us-ascii?Q?vGX3GOMrk/H/HII0+CRVrndOMCx53vzizqIMwC6xci/owoEXHxVUeZ09Jq2k?=
 =?us-ascii?Q?nSsBsnF7ek6aKNbSnkxY4XXevYoeLPhkiFhJkKfigzKCeEbtMnsl9FlfqT9f?=
 =?us-ascii?Q?FwGBCw1VgGM95mDl+dWGYOZVP+Y5mI9ooLMz5Vd1u/L7bBoj2Uf0maSGAH1/?=
 =?us-ascii?Q?FW2YReeZErkVj8ruxnjTsyuXmXN/aI35EH15ankBeDQN/+68vAvA1SUPS6ev?=
 =?us-ascii?Q?IS4n6DVKkIFVBOOnwPz2DtLLDqibH0uUGQjZkxj4t9cHZZ0TBKZmTj8NUZPj?=
 =?us-ascii?Q?lKxlESKtHpZ+QjSyIqawW3bpn0DyB0iWjf7xppUtP6QQva5NotlK7K7rUyOE?=
 =?us-ascii?Q?4+VCkft7tLvMAQ35PMK51R2neGqxOMiELVvf6MVC8i8GslyTjEEyNdjzK7x3?=
 =?us-ascii?Q?AwYeXfEo+MHGl9w8wutjS2fi1F/WjotA9ByuuE9Y5KWOMDStYuqxN/7MXHuz?=
 =?us-ascii?Q?9WAtVYBTPtwFZaUmYNXT6iBJdTh97Z6p/tt0ZFK7GMpY18Lbzz7Oe79mlD3M?=
 =?us-ascii?Q?p58Su1ZXV0T0Ju27/wENIN5MwR/6bmxwOURYfZvn7mW/SEyKFGZwgPvbWR/l?=
 =?us-ascii?Q?hRqhk6JOyAc1FOUhgqMpovWu3Cgs2JIpqFpc4cefbtcy3zBCJc0Knn+as67r?=
 =?us-ascii?Q?2fUu0hJbqhHuS85KUsSldc06g/E/yO/lw4ERR7qsVaUsLABQgtppHovrbsNJ?=
 =?us-ascii?Q?vb1KHKr4jb8AVqTu5eB65XJzjldSpv6IQeDgqrcistKaFJE+b5SCPrSXI2Lo?=
 =?us-ascii?Q?NjkjXXIWk/vxr88mASjWxFy0EW9xXGLwYCgfYuwPjBSlUzIKI6QBePnt4hZD?=
 =?us-ascii?Q?yhUOaghQ6sOxcvbh7TBa6k5+sIZdtGYBISGnjYSfDBq3T4aBINPqJL2vsmHv?=
 =?us-ascii?Q?4k9xm/AhKU9CznnIfxi0t5B3vTUhpgIfOWcMV03fco6j+Xebh5upr9O/6R5/?=
 =?us-ascii?Q?7nrmGVzFGLJARLJshduEbt8i2WOoXCB43Rylq5OPr277T3xsNUsVlkaBpipI?=
 =?us-ascii?Q?/n4iV/SHV1j1Tjkxz6B/jGE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ad7192c4-e562-4d2f-f1cd-08d9a8286ab8
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 11:09:39.3858
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zrO5M2tlBAe+jmGBxDkuN7g46kZnyhpcd9zm6vQBmXQZa0xz5isx9zy+gYk+54C6Z+snPVSAI2lCQ4LdAwsRmQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5681

On 15.11.2021 10:27, Roger Pau Monn=C3=A9 wrote:
> On Fri, Nov 12, 2021 at 06:28:16PM +0000, Andrew Cooper wrote:
>> @@ -353,25 +349,13 @@ static const struct cpufreq_driver __initconstrel =
powernow_cpufreq_driver =3D {
>>      .update =3D powernow_cpufreq_update
>>  };
>> =20
>> -unsigned int __init powernow_register_driver()
>> +unsigned int __init powernow_register_driver(void)
>>  {
>> -    unsigned int i, ret =3D 0;
>> +    if ( !(boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGO=
N)) )
>> +        return -ENODEV;
>> =20
>> -    for_each_online_cpu(i) {
>> -        struct cpuinfo_x86 *c =3D &cpu_data[i];
>> -        if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
>> -            ret =3D -ENODEV;
>> -        else
>> -        {
>> -            u32 eax, ebx, ecx, edx;
>> -            cpuid(CPUID_FREQ_VOLT_CAPABILITIES, &eax, &ebx, &ecx, &edx)=
;
>> -            if ((edx & USE_HW_PSTATE) !=3D USE_HW_PSTATE)
>> -                ret =3D -ENODEV;
>> -        }
>> -        if (ret)
>> -            return ret;
>> -    }
>> +    if ( !(cpuid_edx(CPUID_FREQ_VOLT_CAPABILITIES) & USE_HW_PSTATE) )
>> +        return -ENODEV;
>=20
> I wonder if we could move this check into cpufreq_driver_init and get
> rid of powernow_register_driver.

That's a vendor specific leaf, so I'd prefer to keep checking it in
vendor-specific code. Dropping the vendor check from here would seem
reasonable, considering it's already done in the caller.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:17:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:17:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225788.389987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZzM-0000pe-4M; Mon, 15 Nov 2021 11:17:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225788.389987; Mon, 15 Nov 2021 11:17:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmZzM-0000pX-1G; Mon, 15 Nov 2021 11:17:28 +0000
Received: by outflank-mailman (input) for mailman id 225788;
 Mon, 15 Nov 2021 11:17:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmZzK-0000pP-N6
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:17:26 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c805e68-4605-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 12:17:25 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2056.outbound.protection.outlook.com [104.47.14.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-38-0YXHJMKXM4C7K-FAksd0uw-1; Mon, 15 Nov 2021 12:17:24 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM9PR04MB7699.eurprd04.prod.outlook.com (2603:10a6:20b:284::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Mon, 15 Nov
 2021 11:17:23 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 11:17:23 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0056.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Mon, 15 Nov 2021 11:17:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c805e68-4605-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636975045;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ZJW83aJbUaqBjmdn56EQqm/Dr1O1eulsphlMqmmf6dc=;
	b=LoHGyxyHF45PSsVAyUSKORpBDFUy7CarWLP5EtXBLccjP/d2/ijuo7h3prFEWqXombp/i2
	2ICvRa6l/YWQ0KEEGZUbxEfuTz8kveRz4mfWrUQs/flJpBr0h3pI5dDcIKSTQXr0rWO46+
	jzXweAFJSdY2pptLsEt6Mna0eq2KZ+M=
X-MC-Unique: 0YXHJMKXM4C7K-FAksd0uw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PLHsaQskDkxjIcjP/uisBHTccgICPav05vU/aLLqBmANHDwRJT2CkvrHPl/lU/mHqXzS14yRWEiUpObfC53QMWlVd7mMwP2Hm4bOIGWq0cJoqV2EM19MWjcCCOnorw0Pt5GJpYrFqYBQ0qi4TIC4b70SmvCqh6mlFpwTicSYORStvTAfH+O2pGd8ojSMaWMn4XgP3pzgEfhvjqpJhDZCewGPjzQ3xEjT9gp3/mkl8gYB8w0mMztXq96YAPW/9MZbCFbFljPjcyo0XG5e6JbiPS+nr+6N4cw9bXG5SnawNnnwnc6cwhAZyg3l5/P4ZFoi5an71NVrRFrp93LwnDrO1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZJW83aJbUaqBjmdn56EQqm/Dr1O1eulsphlMqmmf6dc=;
 b=i0j4bvUnXXAWF50ZxhpNmZVp1xx2VSKpZTz2rhGL6Y0cVCIAPfi6bEMpP+akZeZF0wl/jFy83ccVzNL5aleMOFYXQQ7I8c1rkdn3N/HPeZnc7YMcCjTgaWAxqr+xWNgVx0hRFf/zfgobPYRNNsjIu0um0i0yWk5mDvC9PJ0gc8iU9Re88dML9S2J6HECIoJ4/JreKTQAdO1uheNwYiVpRD/517zWKTWo0baL55ITcGIxoOjmn/UEbeBsc8k6J+EP2ypkVGhasz1whCENAuVIxRvdslo6P9K3MLbC2yp/8c4vkR7boEJdVkeor/JOiks5HqNg7s9KRAKLTDHu2cywcw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b0bdf368-36ad-a282-b22a-19702de75672@suse.com>
Date: Mon, 15 Nov 2021 12:17:23 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 1/3] x86/cpufreq: Clean up powernow registration
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
 <20211112182818.30223-2-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211112182818.30223-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR1001CA0056.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::33) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b7fb1eb0-2c60-42af-e14d-08d9a8297f46
X-MS-TrafficTypeDiagnostic: AM9PR04MB7699:
X-Microsoft-Antispam-PRVS:
	<AM9PR04MB7699D50961F0147411BFA3C9B3989@AM9PR04MB7699.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	kfE+cWJwfoUO4s4xv+uqz3ZkCCn74hfl4g+v2VwHt8vXbxETULjZOaS5vNpUs6leUVoBW/WDxMi2tSf0n736qsZoYp6X23rFs1cMc62eL81oRDDmqokoKZrWfyMvu597W2wbZSLeM4oXkxlhAoL4uadh/eHZtkH3ktU9mQF3DV+dcjktrrGNnQSFLUdcA/nFaI9xbmYXpyhQ6Izu+PmaxLu0Kh9lECQiKRJ3REKd/VMLNlXdVAWBn1IRcHUkqSBQoRgXViLt57ISVs2drAhPrzdguEC54tjrc/I8/0DXxn6AymKfk1xXZKJrT/syJMpFrfju4mVDp51hJfaBccRoox8jZxZy5j4/qUVgk5mUvE0apS/b+ukrpONbH2e+gta793914tOcabgw7HNI8ytOx5TS0HZMosvQ36S1a9g/N3a+EPPypuLBmRWev04hTCrlmp/kUwzi8bm6OvmsQIxtSonPwUWTEaGyXv42jnZeYGbCn4Njy3R00rKDXY/WSWnAtKJseL169dm0lX92+daNYzCtaZvoHhn6QFHxVZBQBk4wGzcfWcWL1o1SJ13QKXO08uYuuUgr6UTQLgpGzvx+1saZchoPN1o/sMi4gD/0+6BAdDQ1yFYUKb4iUmGtqEss6J/HB1v+E1nQzJ8Z5LVH1YaOsBQHrLmmgq6QYXLhZvJM7qlNUSOxIUGTg8dpQ/SW9rOK0Mqwh4lmPYU11DCAJkdrrbkyyijZHKD3I2jNI3nVRKkdlaCUwAqefl9yVuyW
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(86362001)(54906003)(16576012)(2906002)(316002)(4326008)(66946007)(5660300002)(83380400001)(66556008)(66476007)(508600001)(53546011)(6916009)(6486002)(36756003)(38100700002)(2616005)(956004)(31696002)(186003)(8676002)(8936002)(26005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S0FMa0tWUGkxQ3gxWXQ2aHhMZU1lWkt3NmtUajQyekpoTnMxRE5kVnRUbW9m?=
 =?utf-8?B?K296a20wSkFMWnJ1L21WS0QyY0c5NnBKNXhrYjRTRTdnblI5a2NiTnVTaHEr?=
 =?utf-8?B?RDQrWWpsbGNmUHl1Qm8zUzlheXc5SHdkUE9NbXN0MnJza3lrS2lrN3p4aVhr?=
 =?utf-8?B?RmYvUkRnRm5HYU1QS0ZrN21SVm9LYVVSU09HYnVhSVZuNEVQU1hOWkZtUEdJ?=
 =?utf-8?B?N1Y2NFNIUlpTRlhXQ3pNcGMrbkFBK3E1TnRnMU0zR2g1NkxVc2FmYUlkTExX?=
 =?utf-8?B?Sk9oazU3U1dicFJ5SytIUFdpRm5SYWg0Z2pIQjdlRi9xL1YwdFcybzM1Skh3?=
 =?utf-8?B?SmJQcEoyNTJxY2M3K0NQaVRYSkl6dDRON3dELzBiRHhJWDdHcXZJVld6bnBO?=
 =?utf-8?B?cGdhQ0VXNnBicXlRdm1ybE4rTTZSTGNsODFaRWJjV1dvQzloV3p2MVp6dnRB?=
 =?utf-8?B?Wm52bVFVa29WalBNZUZjUi9QcFpmeFJ0aVRpTGNxWkJXYzZKYVhCVm9vUkVE?=
 =?utf-8?B?akZrbDFwWUFnRUh6OEpZb0hmK0JHQXZMbVFEZ3dqdHZMME9SYVpmMDUyWFp2?=
 =?utf-8?B?aEYrUG01cDlXL1BUZmlVaVF1N3VVNXRjMXhDVUF1OUt6S1U0TmJtTXpuZ2tm?=
 =?utf-8?B?R2JQb1NZZHNrUjIzR3JKeHlvYTRIUVFRaXprZHh3MGg0SGNUMituL2dXaFRO?=
 =?utf-8?B?Z0kzSWhEeWZabnBiRjA1QnNwb1FGVTVWN2haYmc5elZmTXpwMk1tNzJ3WHdD?=
 =?utf-8?B?Sy92YUV0MzArbzY1dHBOaWhCeWtpWjlrQ2ZVQkQ3dTNlMjh0dzJDUks0eWUw?=
 =?utf-8?B?dFFhQTRBRVpFazBKaDdVWHpjNEJmVmRNazlzTWl3SkhzbnBwdmFXUlJjMlgy?=
 =?utf-8?B?cHVoS1VvNytNS3R6Snc4RnVFejlpRzRGeGFrM0dqNGFlMHY3Q3JlTFkzYWMy?=
 =?utf-8?B?QzBqcjJNVE95Q3ZEZGV1RnNSN2FNUkFJRExLY3A5QmplOUNMYXd2VmpQZDVD?=
 =?utf-8?B?M1M0elRYNnhYOEZWL2lXbHF0Sm0xRHgwTVZ0UVJzVFlLNE14NXJ5ZjBQUkd1?=
 =?utf-8?B?dVdCT3hvS1BsQ3lqYWluYWsvL0tFUEl5ZXVPTGpnVW5YL3Q0Z2twdHZYUkx4?=
 =?utf-8?B?S2pIVG80aFdPWi9zNjNDcjFkendQdi92UldIU2ZPUDdmVkJpemJ6QUlKYXQ1?=
 =?utf-8?B?U0VGK0lqT044NmFBSmNheFNtNk5zWGN5TXJlQXpjYTBneVhNQldwcEtSM0h3?=
 =?utf-8?B?Y3o0S0piOWxIM3E1dUpTRmlUbnZBNVZvdHVUYWZUcnFHeEIxVlBLcXRBeWNT?=
 =?utf-8?B?Qkx0cUJxV2NzelJOdHJ4Z09TQ3djTUJ1ekZnSCsxVDBWNDJIUHdJYzgwRWd2?=
 =?utf-8?B?TXVqSkpxYVlpZitEZGxvNjUrWjNGMVNsdWl2SkpxTXVEcytGTGVJRjZJT3N4?=
 =?utf-8?B?RzBYV0wvMnl3cWZZR1c5S1BiWnlJajZnTHpwOUc3a1BBL1A3aWlTK0wwbUFk?=
 =?utf-8?B?ZFc0S203R0NoVEd2eWZPejhxWEdnUVE3S2ZiQU5MSzR0Z0ZpU2VvaFRvV043?=
 =?utf-8?B?VEJaMng5ZG02c0lMWHp1M24zNGFuMTZBMFlJQUxGNUtwK3VnZFB5cXBpK0RI?=
 =?utf-8?B?Q3BoaG9DYzY4QXZIc1ZBMFZrWmtmS3FSOTFyRUFQYWdNenZ2bGcwaVJOcVNx?=
 =?utf-8?B?cjRDM24wUjgyc29JUFVkc1VuTkpMRjMxNFBabnVYcjRQaEVaUGcrU3pZWlg5?=
 =?utf-8?B?b1JHNHlOOGZ3VVgxQ1BzZjAxNStnenZmY1kvc0hGU0xMWHo0cFFXeWhqa1Y1?=
 =?utf-8?B?MW1xZ1JzamNjRmpKajFMVnJGKzR4dzdrUlE4VnEzUU0rZjJlNEVray9TNzQw?=
 =?utf-8?B?NmlzaTJCeEZVd2VFOHdRQi93bjhyUzQzNDNHRm05WGQ3SVVpSEZrSzBKRlFr?=
 =?utf-8?B?enRIcGxKbmJXck9mZTRjdWpDd3lkY3dtaFhuN0tMYld5MmUrRXlwNTVlT2JW?=
 =?utf-8?B?bFFxWWZManozN01ydWV1ZWtYRUVCb1VBR0pwNkljbXZVN2lTaVVEUVVzdjNI?=
 =?utf-8?B?a2N5L2x0TFBDQU5ZWGlWNFArZFRqK01iUDJRN3BjMFZhQWgvNE1BVGM5ekVK?=
 =?utf-8?B?T05WdnN4ejFFMHR4cEk2OTMwaUZYRnFxUS95OGJGNTJEMzMxUm54K3phYkRJ?=
 =?utf-8?Q?95JgVXNHR7dg9++izYWffUY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b7fb1eb0-2c60-42af-e14d-08d9a8297f46
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 11:17:23.3022
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cK7F1h/N9Se02zFV3RvRO2kG7rkR7LlUEqtQSn4OSUg1ufCyfkIeFuHkpKRC0Mk5k+y7rumlv2EWIGvVH2OJrg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7699

On 12.11.2021 19:28, Andrew Cooper wrote:
> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
> @@ -640,13 +640,19 @@ static int __init cpufreq_driver_init(void)
>  {
>      int ret = 0;
>  
> -    if ((cpufreq_controller == FREQCTL_xen) &&
> -        (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL))
> -        ret = cpufreq_register_driver(&acpi_cpufreq_driver);
> -    else if ((cpufreq_controller == FREQCTL_xen) &&
> -        (boot_cpu_data.x86_vendor &
> -         (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
> -        ret = powernow_register_driver();
> +    if ( cpufreq_controller == FREQCTL_xen )
> +    {
> +        switch ( boot_cpu_data.x86_vendor )
> +        {
> +        case X86_VENDOR_INTEL:
> +            ret = cpufreq_register_driver(&acpi_cpufreq_driver);
> +            break;

I've been wondering why we continue to tie this to Intel. I don't
think there's much Intel specific in the ACPI driver, so I wonder
whether this shouldn't use "default:" instead. But I can agree
that's likely better to be done in a separate change.

> @@ -353,25 +349,13 @@ static const struct cpufreq_driver __initconstrel powernow_cpufreq_driver = {
>      .update = powernow_cpufreq_update
>  };
>  
> -unsigned int __init powernow_register_driver()
> +unsigned int __init powernow_register_driver(void)
>  {
> -    unsigned int i, ret = 0;
> +    if ( !(boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
> +        return -ENODEV;

Ideally with this dropped (and of course with the issue pointed
out by Roger taken care of)

Acked-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:22:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:22:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225793.389999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma4J-0002Cz-N6; Mon, 15 Nov 2021 11:22:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225793.389999; Mon, 15 Nov 2021 11:22:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma4J-0002Cs-K2; Mon, 15 Nov 2021 11:22:35 +0000
Received: by outflank-mailman (input) for mailman id 225793;
 Mon, 15 Nov 2021 11:22:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mma4I-0002Cm-3H
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:22:34 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52c6bd57-4606-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 12:22:32 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52c6bd57-4606-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636975352;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=KS9hmYH1T2dvudw0ssDUxtNE4eDjPzOfElhyxry02Yo=;
  b=MYD9HZ1LRirQiXk/UVTJ/SMIW+xyD5m2RazP00gXznoKdH5PlAv+LOXN
   xWM0I3ZBOPlYe23WM9hUvFGbajIGBuxyZanwDBUOE28bpJ1EBqVZD4HJR
   UgWbv0TbW7WT2zKmvThtqMl4WAh7CC8BrMBzthY9dG5lhuxnw90fy0BNP
   A=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: l3Ke40FS7P+ZzbJm66sDlvXhSxvgZxw6VT0CNqzrwwkLWYANsK6tPyYrN0vj88Atusza7i0WzK
 FLVVGaFJgWFwwBc7V2Q7pS/iLCi23NAv5LUZm/q9E+EnmDBuhlk/19K4aIUygnZI/raboeR+l/
 KcNJtREvOX2r2EbwblVX0qm7ulhRj9ZdBoYDEvGzB/ZxSuU/n7iBkRl2ce2u8MWDZKH+oM+hc9
 Vakika193RvK/baSgKLjnKO2aAeNIaBlFLliPpP9lH8juckxZDyl3Of3WkijF6Ax2mmDXJQwkC
 817kor3XtocfSHzLaWzSi7KD
X-SBRS: 5.1
X-MesageID: 57345095
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:L0ZhsaIiz1BBTbeNFE+RPJIlxSXFcZb7ZxGr2PjKsXjdYENSgWBTz
 TYbUGrTOfaKMWSjeosiPY6+8BtQusTQzd82GQBlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6xrZg6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Mv9Yr5
 +x0vKevaisoM/L8iNsNDkNHRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsF2gcsuNo/zNZ43sXB81zDJS/0hRPgvRo2XuoQEgW9h26iiG97zJ
 MUcRD5idi6abkZyJXdPCMIEh8SB0yyXnzpw9wvO+PtfD3Lo5A1u0pD9PdzNYNuISM5J2EGCq
 Qru72n/Rx0XKtGb4T6E6W63wP/CmzvhX4AfH6H+8eRl6HWRzGEODBwdVXOgvOK0zEW5Xrp3N
 Eg86ico668o+ySWosLVBkPi5iTe51hFBoQWQ7ZSBByxJrT85iafXEc9dzd6d/8KtcJpdSwVx
 gLTgIa8bdBwi4G9RXWY/7aSiDq9PykJMGMPDRM5oRs5D8rL+99q0E+WJjp3OOvs14CuR2msq
 9yfhHFm3+17sCId60msEbkraRqIr4OBcAM67x6/somNvlIgP97Ni2BFBDHmARd8wGSxEwHpU
 JsswZH2AAUy4XalznPlfQn1NOv1j8tpyRWF6bKVI7Ev9i6251modp1K7Td1KS9Ba5hfJ26wP
 BGO5V0NuPe/2UdGi4ctOepd7OxwksDd+SnNDKiIPrKinLAsHON4wM2eTRHJhD28+KTduao+J
 Y2aYa6R4YUyUsxaIM6Nb75Fi9cDn3lmrUuKHMyT50n3gNK2OS/OIZ9YYQTmUwzMxP7dyOkj2
 40EbJXiJtQ2eLCWXxQ7BqZPdw1XdiZiWsitwyGVH8baSjdb9KgaI6a56ZsqepB/nrQTkeHN/
 3qnXVRfxka5jnrCQThmoFg6AF82dZog/389IwI2OlOkhyoqbYq1tf9NfJorZ7g3sudkyKcsH
 fUCfsyBBNVJSyjGpGtBPcWs8tQ6eUT5nx+KMgqkfCM7I8xqSTvW94K2ZQDo7iQPUHa67JNsv
 7262wrHapMfXAA+Xt3OYfeiwgrp73gQke5/RWXSJdxXdBm++YRmMXWp3PQ2P9sNOVPIwT7Dj
 1SaBhIRpO/spY4p8YaW2fDY/tnxS+YnRxhUBWjW67qyJBL2xGv7zN8SSvuMcBDcSHjwpPeoa
 9JKwqyuK/YAhltL7dZxSu450aIk6tLzjLZG1QA4Tm7TZlGmB748cHmL2c5D6v9EyrND4FbkX
 0uO/p9ROKmTOdOjG1kUfVJ3YuOG3PASuz/T8fVqfxmquH4ppOKKARdIIh2BqC1BN78kYooqz
 NAotNMS9wHi2AEhNcyLj3wM+mmBRpDav37Lan3O7FfXtzcW
IronPort-HdrOrdr: A9a23:pURTgK6icTg+WxdWgAPXwVSBI+orL9Y04lQ7vn2ZFiY6TiXIra
 +TdaoguSMc6AxwZJkh8erwXpVoZUmsiKKdhrNhQYtKPTOWwldASbsC0WKM+UyEJ8STzJ846U
 4kSdkANDSSNykLsS+Z2njBLz9I+rDum8rE9ISurQYfcegpUdAa0+4QMHfrLqQcfng+OXNWLu
 v62iIRzADQB0j/I/7LS0UtbqzmnZnmhZjmaRkJC1oO7xSPtyqh7PrfHwKD1hkTfjtTyfN6mF
 K13DDR1+GGibWW2xXc32jc49B/n8bg8MJKAIiphtIOIjvhpw60bMBKWqGEvhoyvOazgWxa3O
 XkklMFBYBe+nnRdma6rV/E3BTh6i8n7zvYxVqRkRLY0ITEbQN/L/AEqZNScxPf5UZllsp7yr
 h302WQsIcSJQ/cnQzmjuK4Fy1Cpw6Rmz4PgOQTh3tQXc81c7lKt7ES+0tTDdMpAD/60oY6C+
 NjZfuspcq+SWnqLUwxg1MfheBFBh8Ib1O7qwk5y4KoOgFt7TNEJxBy/r1Zop8CnKhNAqWsqd
 60dJiAr4s+O/P+W5gNctvpcfHHeFAlfii8RF56AW6XX53vaEi94aIe3t0OlZaXkdozvcIPpK
 g=
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="57345095"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AR4tqLBOcGYng8Tbfu6lFCu8bpy2L/LJYaVDakJgyYhCcWHyX1KWNd7S9SxkqC0o5NrDrLW9E2B/lQ7NXnujggpvGPn7cbqMxeMQSUgiIUs0rtRZzJD628bSB0ImVVZQTaGOyfUK94N/ZJ57kw8GAOAfo/J2aLhaehMQUMA8kgZHMEJmukFGoG7mFtUQpqy5tiWarhWGfARl/6FzgCDF5hePlo7rPQNYmwx+U4c6vw8nJPb8nxXhwT0Dk4fQ+476arPhxIkPyilGSgHg3ybFo5Cw+WZ30vH6NleADyMvT1pxUAfNSPK1u+LIh/xXh1xXNBsB0qmu8+3QslOs+19cPw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=y8sT/hqH5uQ2QMY2HQrVvWLFYRwoakZIqEMNsZAAOWs=;
 b=hNmqoa4gmXDY4a9OroSxCiHdBBhzQCgx7oQfAvNIqT6Ck8zEfMhClFlPqG9WSggfykXehlJIKu35BdvBGrb6au6eXLpuxdNkGKLqYSdKad/21y5jqWsSXn9Urdu8oj1fPiKaLVDmjBhiINgIoLD41O3dKBrRo10oCtYfssH4kvjPJ1JXx6to+WWTuG8vCTeYenRxkCGgjfFIbKQu2yR6nvxJdidVqnMFl7o8484bxbopWtTGsbgdrZELiDQiGd/r68MFSqQw/vbaF3EUS7Cm8FIpzR68m28ngLP0A9r6Pp3Ud7ULIPZrfJUmyJALsAan3z2TVYAP5FdjOOI3eJZt5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=y8sT/hqH5uQ2QMY2HQrVvWLFYRwoakZIqEMNsZAAOWs=;
 b=UWj7eAi+WJSO50OXVqOJdZIFNfTEWebVisT9GdJfA++QPJBSfBrkQnual59Bm/lLnXRNbM05E7QdcX5WEl5d9NiF8ddlo+J+JHtjx5TWTclLiW67AACmjopYhAi8N2y3Pk7OvYJQEM3CRX63G0pi6yh6lWxRM1f4ceox2/Cpk70=
Date: Mon, 15 Nov 2021 12:22:23 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] tests/resource: set grant version for created
 domains
Message-ID: <YZJC706fOJQPxvG2@Air-de-Roger>
References: <20211115105106.928-1-roger.pau@citrix.com>
 <ec9b71ee-c687-3556-a999-941886610329@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ec9b71ee-c687-3556-a999-941886610329@suse.com>
X-ClientProxiedBy: MR1P264CA0075.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::17) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fadd5bcc-7bcc-4d5a-731b-08d9a82a3481
X-MS-TrafficTypeDiagnostic: DM6PR03MB4298:
X-Microsoft-Antispam-PRVS: <DM6PR03MB429833C2368751E925E000C08F989@DM6PR03MB4298.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Ol5RzA+6fwZ7DBwtvEAXXjKN8TFyVL5ds5jxVls38ImJb2mhDyr6MlTWqxZg0MfzXD+GuLXfJR8bpD2GMBXtRnkJUzn1Sm34fbyS4THnCg4nptPn6DS0nRQ8Vgf/LHmuYKoq4U8+xaWzXFIZQl3D8NA97C8SgTOcQO5vJ6hLNE3T4VImrRuqTed7trFSvrlEekBFxG5/+Jv08gFIIOb7EeQ7tDk80Mg0rC9Zn/s0NO/FZ+1fqdOqGYtygRrr1vzCAi+FHbPBlVEoQfT4LpJRevew/1ueeLDZODyXUXIU74FhuP6CRUqznH5HJmHyFEfBrziLbwtcNlV0hCVmlh197SaGO/aJftJjg6Vo4kRIm2rCsmOllDgCbGeIBP90L/Hq8v6JYEbc8SQSWiJOLRI2XuWGjOZ8UY+q6z9wM2b4fRRm7t3mzm1tC7GJaPd8Ye7/cjQsqM/cxxRuXI4NEusFtssLe/jo0pOMoXrOkXd75orbfHIA81pjQxMeeik9kkyEMTL4RU6SNbpn++sOfi4r8az0009cY8aAGmctXIu/TPbPyLzXDRrs0kjbsVOqgqg2CjbHuPLv5psSxbUQC0RCnaGxmBcJJ36epFxyHVrCVWgHkY6inRCxQoDjzOu4OUIVgIjY3GjhhqwnRhNiUzj81Q==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(38100700002)(66476007)(66556008)(956004)(6496006)(66946007)(6486002)(54906003)(4326008)(26005)(82960400001)(186003)(86362001)(33716001)(508600001)(6666004)(53546011)(8676002)(85182001)(2906002)(6916009)(9686003)(316002)(5660300002)(8936002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eFZ2QzhhV2dtanBySzNJWG1vYk5wOGhlL2w2ODh6V2Q5YXNjK0tTTTdQM3JD?=
 =?utf-8?B?ZldZMHpBOEZCOUdRc1JQZWhkbGpBbFYxc3o5K1hMc0ROeFhKZHBXbWR1UENC?=
 =?utf-8?B?Z1Z3ZnIrRk92ajJwQ3hMRmliNk5vTitwcXMwOXRENWE0dHpQVHZIVmpscVlT?=
 =?utf-8?B?bzJkTGQ3ZW5NYjhwb1hrdzhLWlhjVkdOWWkwS09NRTRwRE9lbENEai9nSVhT?=
 =?utf-8?B?SSthL094ODBoSlJJOHRYWFplcWJUbzJDMGdsZEFQeExGRnNOZlQxRWUwTnVq?=
 =?utf-8?B?YURJT3ZzQllNMzFNR1l3TzFBVWppcGEvcG52TWZpQ2NJVzJwaXRoQnRlN1o2?=
 =?utf-8?B?TUpDcnVjeStwemtVOXR1VXJCQ0l1cXJXNmFzcG5mNU9JbHhLSTdGU0FmT3dq?=
 =?utf-8?B?azQ0eXE5WmYvbE5KSjg3dHlWd29VRC9wa1JLWHNLdm8zbmhQVjdLdUk4MUlw?=
 =?utf-8?B?ZGVPNHF0VFBSdUQzbTBYL1F2ZVYvUDQ0b25MNTJIakdBMmp6RzR3dVVUcGdu?=
 =?utf-8?B?WTVzdzMzcFhOY3RqYVpQdkNINE8rSXd6MWRMS1AwYUdiNStaK25Vekt3dE5N?=
 =?utf-8?B?bWdYeHRrSnRpYWpwOTk5N200aUZRMzhkL0FsdHJWMzVpbFFHS0JnN09kWkxj?=
 =?utf-8?B?ckFDa2hGUjRONWViSG1uYmk2UEhxQi9PendOWEo5LytuTTR3UEhqOVQwS0hu?=
 =?utf-8?B?UXNIRTRoT0NaVnhqVmlkWWx4NkhyQlpxbTYwaHdLeDJ4MGxxQkROanNKK2ox?=
 =?utf-8?B?UkpNVUtHQ1hCWE92QTRnRWVpYU5LbDR5QUhmYmNhZEFqZ0ZkVXpDMGcyMkov?=
 =?utf-8?B?U25LeWx5Mno4SVdYbDdwUnRYUHpZUUpJZGZpMitIQzdvajV3cE1nd05vUmRT?=
 =?utf-8?B?QnE0N0w5Umk3dVgxeWM4VDRTeEswN0Zadm9GQytyQ2U2TFdUQjZ6dnNRb0lY?=
 =?utf-8?B?M1EzdVlITGpmZ2pXWmtSVGsxa3JKa0ZaT254TEdpZkNmUmxzYmVzYnVmVkZk?=
 =?utf-8?B?c0dLdEZLTHFFU0pnY3Z6ZmlFb1EzalB1TW9Ob3RhdjJ4c1JFSlJBRUFXeU5s?=
 =?utf-8?B?MElHdldhL1Z2VjhYeExyZFdNOVB1akcxeTM3NE8ydkFSaG1ZbGRHUHVoVU0r?=
 =?utf-8?B?cHN2SGlsMTRna2RVazVqRURYWVk2aTFHcWkrVUZQQ01vZk54TTZRVmtkV0dL?=
 =?utf-8?B?cjFVNjJPQ1VteDJ1NnBDMkFCZENxK2l3WmluNmVQbnUxZks3RDc5TWZtQ0NM?=
 =?utf-8?B?OERvMEpYOUxGdkpVZUc1U3ExazluanVsMi92azExRjMrVnBmcDVWNTV3SklX?=
 =?utf-8?B?dXprOWVlL0dhQzdoLzVoOTEvRlB5V1gvcUhEL3p1aGN6VFhRQWFJNndqb01t?=
 =?utf-8?B?V3o0ODVmQlVIdHBXR2dIK1NiTkxSN2I1YzZNQ0U1NjVMd2RJS2JQL2orMGtj?=
 =?utf-8?B?VExWZzREbFpGYlgwdzRIUFdXRkg0ZzRPNDczdTREelBlRnpvVjFyaFJWNHJJ?=
 =?utf-8?B?eWpOWVlMbHlieFFpSTB6a3pHeEtoZmVwL2xBVnFlV0UvM0xnUFVFWnBCV2Rx?=
 =?utf-8?B?UHUwdEhSZ05tUjJBN2RrNkcrdmNKRi9iVzUydWgvakFSdzdCdUxKR0NsUmhB?=
 =?utf-8?B?djNLZGlMM3RkaURHRFI3bnlNU2cySXc3aEJMdXAvQmowS3k5RVE3d0x2U3BK?=
 =?utf-8?B?WW5tZ2JlUzB0Y3RPWTR3eXBFWnB0Ui9lNVEzcFNVMXNqczgyWGhCeUpKMlY5?=
 =?utf-8?B?M05LUFZIbGwyaFR0TTB6OU96NGlDY2I5MnA4dHU3NFRQdFZnU2NVVisxOWpI?=
 =?utf-8?B?RnBxeTJ6NjRwMGFoV21nWHZRUzFXQmw0NmdnY1hWRzczVHRMNVdBdmRHSlph?=
 =?utf-8?B?Zm0wNW1wcE1jSFhzaUpreGwzN3dtM1pkNGZsS0FOaFdKYkp3UnE5eFhmRmpT?=
 =?utf-8?B?Yjl2eExvdXFCVWhQaGhGY0RBMUdZMy9FMUJRZDViOG82MDhtSkVGZ1NEV0hq?=
 =?utf-8?B?NFVvZ3E0dzBqaUFQOUo5di9ic0lja2pDVU5IUmZVRFRYTnFYNjJ6VG5qd3Ry?=
 =?utf-8?B?SVFtdk1wUGN6R2h6cGZQcmptVmJMVG10bWNxWW1PQWY5Qm9xSGhEQTlTSnlR?=
 =?utf-8?B?NVhOSllZYWFQVkpmQk1RZXJQR0xZLzBDc0RhdWpvR1FGVFVVVnVYdXA4em9p?=
 =?utf-8?Q?WIfttOQB3jkuvGB8YcNKQuk=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: fadd5bcc-7bcc-4d5a-731b-08d9a82a3481
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 11:22:27.7396
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GSCqMMMr7jtpT0eW/ZhbH26e0RTk3diydehYS9Pjb+RDfsNq6R5xuRaE2Sg5hBXpPAVnXgTEtGkzu/Ztf2s2Xg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4298
X-OriginatorOrg: citrix.com

On Mon, Nov 15, 2021 at 12:02:53PM +0100, Jan Beulich wrote:
> On 15.11.2021 11:51, Roger Pau Monne wrote:
> > Set the grant table version for the created domains to use version 1,
> > as that's the used by the test cases. Without setting the grant
> > version the domains for the tests cannot be created.
> > 
> > Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Technically
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> However, two remarks:
> 
> > --- a/tools/tests/resource/test-resource.c
> > +++ b/tools/tests/resource/test-resource.c
> > @@ -120,6 +120,7 @@ static void test_domain_configurations(void)
> >              .create = {
> >                  .max_vcpus = 2,
> >                  .max_grant_frames = 40,
> > +                .grant_opts = 1,
> >              },
> >          },
> >          {
> > @@ -128,6 +129,7 @@ static void test_domain_configurations(void)
> >                  .flags = XEN_DOMCTL_CDF_hvm,
> >                  .max_vcpus = 2,
> >                  .max_grant_frames = 40,
> > +                .grant_opts = 1,
> >                  .arch = {
> >                      .emulation_flags = XEN_X86_EMU_LAPIC,
> >                  },
> > @@ -140,6 +142,7 @@ static void test_domain_configurations(void)
> >                  .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
> >                  .max_vcpus = 2,
> >                  .max_grant_frames = 40,
> > +                .grant_opts = 1,
> >              },
> >          },
> >  #endif
> 
> The literal 1-s here are really odd to read already now. It would get
> worse if some flags were specified later on and then used here, ending
> in e.g.
> 
>                 .grant_opts = XEN_DOMCTL_CDG_feature | 1,
> 
> Imo there really ought to be a wrapper macro, such that use sites
> will at the same time have documented what this 1 is about:
> 
>                 .grant_opts = XEN_DOMCTL_CDG_version(1),

OK. I better add one now before we start gaining more of those.

> 
> And then I guess tools/tests/tsx/test-tsx.c needs similar adjustment.

Yes, and the python bindings will also need an adjustment.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:23:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225797.390010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma4q-0002op-3r; Mon, 15 Nov 2021 11:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225797.390010; Mon, 15 Nov 2021 11:23:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma4q-0002oi-0O; Mon, 15 Nov 2021 11:23:08 +0000
Received: by outflank-mailman (input) for mailman id 225797;
 Mon, 15 Nov 2021 11:23:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mma4o-0002bn-Vm
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:23:07 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 67567d2c-4606-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 12:23:06 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2057.outbound.protection.outlook.com [104.47.9.57]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-29-V_aq52ORNyqg8Blj0HLlZw-1; Mon, 15 Nov 2021 12:23:04 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM8PR04MB7346.eurprd04.prod.outlook.com (2603:10a6:20b:1d9::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 11:23:03 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 11:23:03 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR08CA0014.eurprd08.prod.outlook.com (2603:10a6:20b:b2::26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.16 via Frontend Transport; Mon, 15 Nov 2021 11:23:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67567d2c-4606-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636975385;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=edC8ui9lrYWEPY2rw2pxACeawrElBXnf0gaGc8QcZ3A=;
	b=Vu/DjtaimwceZ/A7vuRn5RLWxHcqSkgDE41MCZDPQJBCveQPs7MOuKeJncLuIijlD2SCct
	RUmBnw5yzobhDiwk9cGm5aVnK8hjVMXakYkh2GV/LtcpiXxok305fLnOZqtq8WZrXpra3i
	TCfpMkPoCNEhuUummFm6/56/LqiSwKs=
X-MC-Unique: V_aq52ORNyqg8Blj0HLlZw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DcnxFBMEj1iAESsw7IwqgUeVqiSmh8APDvAuvCQsConYNE07Qu/kWp2Uy/Jw7PQeAb39SZbxB/3mvPtRZCPTyjTKFV7Np2mf2mrS9NdF2aC3f/lAqvMJeob3nCxUWO96hdkKGXKuIlJ+WanAkQlLzlGIeLm4E6Hdem8SfW9NlST6q7MrpqxcMIE+B/LoYL7xyQ0oGnsmiqZ7tgdpaoBr0UiQXKckL3BdIQWfbc7RYys9GiiEGH2EJqGqT0qYQU6VGdLMLK2h9ovny36Z3ZdC7jrF9l6Py3Ztzm31C7EWbOOB+WliaD1gQpJP4gxiG9/ANb8ZEgxH1rP5dcgj4HvjcA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Kk2fNYQ9zKHxy3KExTDoF9x8vrUJlbt+lcTc1fthxKo=;
 b=cGcpCkbGl/c+m9uHy7S3BS7bfK3ArZnUWqhAzdILd2KfKYAGFk97KOMBiVn1E7J5xLlTVPVQgBPlEucv0iIKFFjD7PR2rNduA3OBITK2y/7HmLbKduBgOxP62sCmLH4heyuILuUzrhkI+q1KxGafQODsucBKaO5XwfupQzw6KhAtrtBOMjIY6+eTQ53bKiGd4N1v3MmUxdrZ9EpMWrJDCHPjX3sMqf/c97TdiF9ZlhqvpE6I21iQsRZYNtgtkpPWE22pluCUEbPmV6J1pkmwd/f3lehtNXTVwAsXtAvT42kznK1s53gNZG27JVLbk/Mhj1yxYrmZyicA2ypzhJ9u2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <acf6989e-ad10-be32-1429-b643552675cc@suse.com>
Date: Mon, 15 Nov 2021 12:23:03 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 2/3] x86/cpufreq: Rework APERF/MPERF handling
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
 <20211112182818.30223-3-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211112182818.30223-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR08CA0014.eurprd08.prod.outlook.com
 (2603:10a6:20b:b2::26) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0040b2f9-7af6-4cc8-bcf8-08d9a82a49ec
X-MS-TrafficTypeDiagnostic: AM8PR04MB7346:
X-Microsoft-Antispam-PRVS:
	<AM8PR04MB73468A7F67844C8E2C94AD6FB3989@AM8PR04MB7346.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	wA1hDXMFJAdHMN8SPHAGPXC3v8q8+OAETaoM2tdo6QxVrCQKArLi9243VCeYwScDtjZo3Ri3KXPxvziJO9Hta2MBioYiI6K+RijIJuEC1vCuoAZwYB2gk1YEk2c3201KugmoVx77Nv5r8hfrPg3BDcbZNkH9gnc55BzNuUeSpsrNSsHbP1bxFeKFLSHkXi+Otk7VlVvsHwKtNN2T9XPdnL42PpP4TMOjl1ux1j6e5pV5t0cY++NVN37vkWsUQ+e/XYyqsmYIHNfJs2b68Y1YrslR5qwEYSpter6sc+zMREDxCzvL0GUQg1HRXAEPYz9Lq98IvlMjGorvIYyEnCxZcINEYB8IjzfHXrhYZgy+rS8rnbM7VxfJ11tYO/22NMyGN1Og81W5jeFUAKmQccHTYFuWB8sLjY+wI2gQT2V/U+VSk/Hk6GDQ+XDH3SpJJ/4kqZJP/4KInSuoVISpgTYv3o0tZNDrImCZIk2XRCuqqadxMuAamlsvOz7GFKAbL5pkYUiXHUMUX0QrxWTyIwx2e1mI4Nj6SuLalzQvpko8U1sEKfNR97LEbqhoYLGrpCtXD15jlmdvR5yasnSQJ4v0P+K9Y6/Q4gHAaf5eLjbcvpDoBrj+zi5nb364WwZAw+4tLHJ70jyAFZ4p8fgiKerI5zgiiIcWDIZq/iXVK0BjPcQ+IGX7qIu7fGNAdT76y0Hp2V+UZxtAdrSpJB0DKuejNV+5wuNVQYLg1OrIJqi5D05Nr8uj6caTbL1nWh9wuXvK
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(508600001)(83380400001)(4326008)(8936002)(38100700002)(8676002)(86362001)(2616005)(956004)(6486002)(5660300002)(53546011)(26005)(186003)(2906002)(31686004)(4744005)(66556008)(54906003)(16576012)(316002)(66476007)(36756003)(6916009)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?FLGRsGgeqkmVZlru1bgM6W8jwkn/DDN5y5SO9X7Zl3fmnBTNUK5ecW+3s+YZ?=
 =?us-ascii?Q?xqmN6ZI8QkMakSU6kmsfGsznbVYHxDmtSsnQgdm6b8DLAsz43+mEakVPfiRW?=
 =?us-ascii?Q?JnvGf4ijmrHwKbX6RQWynxK1xypdqraiSxHyzDOBZnRZ5zWznsf2suefVW1u?=
 =?us-ascii?Q?gOJD3pPYb+B5bh/tB6nmy03c91X6d+ISKahfJFk+qaa61Ov2JgP5zR3F5uQJ?=
 =?us-ascii?Q?nUITcHHerjlXja77SU1n9ZdJ1OHvzM5fEG70ECNm1Z4VqhRWqGoG8MylVQ79?=
 =?us-ascii?Q?ItBgTXdDMJ3idcA4EO1f8EBGVSGYfYFeFtniZeCKDZ40etU9SzsA/1H6rZlG?=
 =?us-ascii?Q?itOmX4ByYLZ+jS5xsFtNcls9Ni8rfneuqq+NnQTlcBMrym6HBuvwR+Jg17mQ?=
 =?us-ascii?Q?fKaL6zoUrxQWVDJRYd3OZWseFX/7sdQJ11saJ6pXWSXHU+PEAuIJbREIagDM?=
 =?us-ascii?Q?NxgV6eACr9a36Qr7YmdAXKXyHTbu++Yno/sEn/3XCvj0b6PWGx0ntceD+/tx?=
 =?us-ascii?Q?m89kfI1A+kCXMRaeAn7aK7o5aDOWUZ+BTuQwO1zJVRqwBkHNzOExJAeIf7bE?=
 =?us-ascii?Q?fNBYOG3MD6CGZAyj7MvdBz9qsH+b6+yv8rd546J/rU2+aIdF0RKKiNc7vlmk?=
 =?us-ascii?Q?E5MudettXv5T+m3T48DTgAZfGEKrXaB92PbUyNh04Zm4TOcJMpnnRv9u5tMv?=
 =?us-ascii?Q?MQbUPzAb24A0gysUQZ2zM6VgkFdeqH44kb4QYUv0SnzyZXMmcANU+4cv2Ta4?=
 =?us-ascii?Q?3W+7Lw9FwMlAE3TdGStBXXcGyf8gGXqzBZ7OH3LyfLR1qcT1M6VZzm3AFadk?=
 =?us-ascii?Q?dZgv5efJ6RrN6xYNUdp8CKTgYAJPv+2sXhl8q8nnTlt2BhqnSDUHGRehPph7?=
 =?us-ascii?Q?Dpd9lxWJQBqPic4TF/aO38iid1SpBktvTzTRIFfxIKQ/Rserov2GOluBElD2?=
 =?us-ascii?Q?0seTKaYdw92SpsTltMxcO//EmJP+sx3aJ4DY8YWOxGTqNX63mpxayDvlG1Db?=
 =?us-ascii?Q?PnlPtx9MisxzuKfjjwvmaeV0Qpmn5aIoP8Dgc/Zy8NH0yy8wzTVnod2Iwv6W?=
 =?us-ascii?Q?C9yiBw8/lp8fbQ+/r2zryDppbpJr8sDAMb2nDZR05knpo/9Is9dsPR9ZgoZE?=
 =?us-ascii?Q?Wl7yRJLpAmK4u5vTElTRYWM9n5MedZc9PzZsul/8KukGnw954+cCW6MfmgKD?=
 =?us-ascii?Q?YjRyZSS2CQIeWVTxk7LS7T0kB+a9jjV2SIrZvEHi/fxyeyY/Kual8mO9giK4?=
 =?us-ascii?Q?oWvEuSzuP8pUFUZE2Vc3WeY/xjnVpnNeIsIuyDl6GhTQsql07njt/XhXYOU6?=
 =?us-ascii?Q?ciwP94kt3+BYuViA1BFpbN3dbBUH10HCdFXkJeuRrNeVzKBjBz9KLoW38whs?=
 =?us-ascii?Q?oKwSmXDjKBfrUPWoJBi34xZcXLnJFg9pi/kJfEwmBpm3AE38LWQb1oON8T/f?=
 =?us-ascii?Q?UAS31SbeO3dmbwYTUPB+xCMQ9cIFT7D2VNo6dO8BkF/1OlpW51czuaKQ3iQN?=
 =?us-ascii?Q?4yXiOIS1rCkz1PbthtV6yQ0GRennDWvPoKwRX3SXNfjK2JMg++69spBrwlPu?=
 =?us-ascii?Q?xjsbP1Z8KbT/6t+pN3oD4wFC5XAt4Dq4Bs0F/KtcL6LifwIm7oMJbhXlYGP5?=
 =?us-ascii?Q?nXoiRIHA1hw+ZxP/iAHfns4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0040b2f9-7af6-4cc8-bcf8-08d9a82a49ec
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 11:23:03.2949
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KQsGoQ7iLZ+F/b+SoXLtNhNVAV5KLYm49eO5SI1oj5f7EbbPmj9uLVRx082CPYSEKAzSpJ4heUpmaaxcZrZ2Dg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7346

On 12.11.2021 19:28, Andrew Cooper wrote:
> Currently, each feature_detect() (called on CPU add) hook for both cpufre=
q
> drivers duplicates cpu_has_aperfmperf in a per-cpu datastructure, and edi=
ts
> cpufreq_driver.getavg to point at get_measured_perf().
>=20
> As all parts of this are vendor-neutral, drop the function pointer and
> duplicated boolean, and call get_measured_perf() directly.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
>=20
> Slightly RFC.  This does introduce an arch-specific call into a nominally
> arch-neutral driver, but struct cpufreq_policy already had x86-specifics =
in it
> so this is apparently ok.

That's fine for the time being; disentangling for another arch to use the
driver would be quite a bit of work anyway.

Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:23:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:23:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225801.390020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma5I-0003NU-D4; Mon, 15 Nov 2021 11:23:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225801.390020; Mon, 15 Nov 2021 11:23:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma5I-0003NN-9y; Mon, 15 Nov 2021 11:23:36 +0000
Received: by outflank-mailman (input) for mailman id 225801;
 Mon, 15 Nov 2021 11:23:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z40d=QC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mma5G-0002bn-N0
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:23:35 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on061f.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77386de3-4606-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 12:23:33 +0100 (CET)
Received: from AS9PR04CA0072.eurprd04.prod.outlook.com (2603:10a6:20b:48b::7)
 by AM0PR08MB3122.eurprd08.prod.outlook.com (2603:10a6:208:5d::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 11:23:29 +0000
Received: from VE1EUR03FT048.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:48b:cafe::e4) by AS9PR04CA0072.outlook.office365.com
 (2603:10a6:20b:48b::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25 via Frontend
 Transport; Mon, 15 Nov 2021 11:23:29 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT048.mail.protection.outlook.com (10.152.19.8) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Mon, 15 Nov 2021 11:23:29 +0000
Received: ("Tessian outbound 8133f76bddb7:v109");
 Mon, 15 Nov 2021 11:23:28 +0000
Received: from c56afb978220.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F0376888-B4E7-4B99-B411-B297BCB545BF.1; 
 Mon, 15 Nov 2021 11:23:22 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c56afb978220.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 15 Nov 2021 11:23:22 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB7025.eurprd08.prod.outlook.com (2603:10a6:20b:34c::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 11:23:20 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 11:23:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77386de3-4606-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8pjqkM2wbhg4fHFcCEukz2roOzAeRzKdg5zK+OlglCo=;
 b=T04WCAhW+GDwYdtOSc1QZmPh0dYQWDpr9aUSAcTfdXTmZvph4ZblsF9XUEt+HqwGHlYQClliMTKQXPTpjh1Q1okod1qnZ5c3xX/4tePATh3GEPhmXWyPDyFLF18WzE3rkpOp5nD8qsbHXPqN6z4Fa3WNcXvu47BTSn5/BHAZddU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 8508c93ce2f4238c
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SnNFN9z66nqMhAtMSCLe8upPqNeyvDdh4GAccc4iOgDGjjdsfHvW1oINRWGpt/9JvtzlQ50XS2ZuVqrCtx/XEdhvljWsiAC5mkl8twTy1qyX11AQWY4xiPN4QG2CJREDz+YMz6Y2dFwRiCinMA91xG+uJXAVCE7A9EIdo5/pnLS0O7iE/FNTjfs9AO+pfsA/CMSS5oI5FtMB26OOVb5ZGwyzqEPDr9V+xqbKxr/2yQpukjOuXAaEq4KjqyAu85KHr7nblAGrUphA+OaWifzHf+CtnM10iBAOMtBD6+I9yrUJaC+oTwTdWWrKSVSnCq1dEKC+2FBSP71xXVMBKDX9Hg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8pjqkM2wbhg4fHFcCEukz2roOzAeRzKdg5zK+OlglCo=;
 b=bsaS/kcIocoxvoDkIIhGQyI3d8sZxYec4+wy0eW4KGqyIyCNW756wK8AgftVF6b4HOVP0ZV4NKs5BsAFHp0ryS4b5UsSEaFEFGV9b03gjiBZgbG98bhHTTEr0fB+tWID2o23Ybe1SVpP6U9+5GIEURK/LQREJbuKfj9XYpzEl4Rb/0ijNAqa3cSiN71Dj8r8fq/XR5LDVl084F2z6Dbu6Pzjdtu0Z5CH9HQ1hh3lIpxbJnVBDhlRXB7lPeEubGP97QHDLsG1fFLdIDdiO459OZJeMz9qbTkxSDz/IqvRFp7+alhbZ8azZTRM2NQf0ZxBcyOIYAMqYaZGnu0C1HRccQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8pjqkM2wbhg4fHFcCEukz2roOzAeRzKdg5zK+OlglCo=;
 b=T04WCAhW+GDwYdtOSc1QZmPh0dYQWDpr9aUSAcTfdXTmZvph4ZblsF9XUEt+HqwGHlYQClliMTKQXPTpjh1Q1okod1qnZ5c3xX/4tePATh3GEPhmXWyPDyFLF18WzE3rkpOp5nD8qsbHXPqN6z4Fa3WNcXvu47BTSn5/BHAZddU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Thread-Topic: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Thread-Index: AQHX1yW51DCh4Kb6WkC+olJaqOqcEawEZHMAgAACF4CAAADoAIAACOmAgAAHu4A=
Date: Mon, 15 Nov 2021 11:23:20 +0000
Message-ID: <02EF96BF-D2A6-4415-A6E9-B9511C18C895@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com>
 <a1b2aa1b-7d8a-4ab6-cde5-25581ee9841c@suse.com>
 <C3FB48C2-F619-48A2-9268-F0938405133C@arm.com>
 <fc9fd8d6-7461-367c-01c6-f4c852e13f54@suse.com>
In-Reply-To: <fc9fd8d6-7461-367c-01c6-f4c852e13f54@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 25e9139e-863c-4afa-9f4c-08d9a82a5990
x-ms-traffictypediagnostic: AS8PR08MB7025:|AM0PR08MB3122:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB31229106FD467F6722AA9DFB9D989@AM0PR08MB3122.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 c26017PxujNTuqpz/zxj8CJDbd06hauquHHJv7l1UEtmpg3OXdNx+1kETO/9ntZD2ZaMif7oPujzx4WJPAimHKHeudNZavy0x70b/Vb8WBmTheKGvoOC+Nn8WqqAVtz2008DTEJm8bTEp1tqoIXySUtyoTp/D2HTC+tSEUFaq+qIUkVY00ha4bFk0wfA5kgPtAuhGXaAYEkfAGR6Q/jNacu9Z/x/Iso0Vj+LaYYxQDidZFeUSNlLhY8ls6OY2afmC2P2q3kf0smeCWDQTv2L5KzdXEx1cELsQ99DHoqSdlDUpA1quzhqoBiaNkNt/BoWvhH7ZhazyV90POOXeSkfc2+D7CPoksIMncntSgwgE+rOdgg4RUkZQsO4gm+jVlFaM4SMKqmcaIVUG4tByoeMUpdJsj77i1eWT+MdGznGhhloBYsBQHSNt43b2OFhWfYupBk3TWBcmQkgK5bJjafSfMHXHZuCS+l9iYxM/ZnArk36z8YJ2iWgB5tSJ3Jz7JrHq7HZ+j2W1EhJ0T9BxbKIrFCqVt7s7g+c6t87Q/Q47KyaKLA4youL+AfUs37y+xftEa6bcoppwLG987NEKTHOR6jwWvC7vP5JH8mA54Igsy1HRrORZWjLhhLSVnevjzOVN/YjUKgZ+huRr0VdkM9orYQvgTzcLrJz7cTBEzxBAMAo368eFfut3eBIRX3AYdRh3X5PdIzTfzYrxk+DqWnEIuiL6+ORgnRtPcNMukYx+EnhWrymtJDs30e76t7J4phL
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2906002)(5660300002)(26005)(71200400001)(38070700005)(4326008)(54906003)(508600001)(316002)(33656002)(6506007)(8936002)(91956017)(2616005)(8676002)(6486002)(53546011)(86362001)(6512007)(38100700002)(76116006)(66446008)(36756003)(66556008)(122000001)(66476007)(64756008)(186003)(6916009)(66946007)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <7876EEDA6EC95342BDB6BD9DF10487B2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7025
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT048.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3571cca4-3eb3-4a3e-f3bb-08d9a82a5450
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	r4WzjYT6OjwNC2IkqdTy75iv4CluL8IyRB/shmkdcnblAAZQ5pGlBW/Hgfdf4ahNME4qzd3zsOGIfl1wBu9nLOsUT8jBxRlAOKR3EptD2xKeb2pFLX2u71o0RBijcL/1nx6LcJvoJlh0KpVK3nTSU3c9vmLGRCyNSljImRzlNT2P2QLllSsjKi3NK6BKZTq5HIkpUQ/F+KWuwXpAwybv851VeQbXEKQXB6D1AZHX4OBUzyN/8id40luhqU+a7GN26nFnU6ERSNEWSCoG3MwhHRbPCItURM+MqG7IFiA6moieH21Ss88egTN5FY67TQbDv4wQ8SmEklQkictWXDQp6Xc1ApqaVc4rXcj1iFUuEeAPhFPUzli8c2zB2sXAXOCoXj1e1d9xfUrwOggbwqXa++weKVtqzVAIqO1L4z9gOlEWLy648rXEZU1UKGgF+VXL+huDO4KUKuM1OU4i1VzAoax77Dg48ngOF36AMJT0ftKnekAzf+axRnP9WNPkRHnBreoqm/y689dBjg2RYCNuihUHYORpt2ztKPhNNKxnfcK5M4CUi/jDiSWNINinF7XBnjKmGIjxE5vqYWX5JDuz0jp4WNb0u05ZN4h7E38kor7QsMRMn8I/QOlCupOVJ/zOUf/bxI/okXqFyLgS0Pw2LYdwbL+TNve29W5cT/cMNQvboVVr67vjUdJhhCRlfiSFDYI4IuQnPzwR0wFRmJw01w==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(82310400003)(2906002)(6862004)(5660300002)(47076005)(70206006)(86362001)(70586007)(316002)(107886003)(508600001)(36756003)(33656002)(6506007)(8676002)(336012)(8936002)(53546011)(36860700001)(2616005)(26005)(4326008)(186003)(6486002)(6512007)(356005)(54906003)(81166007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 11:23:29.3309
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 25e9139e-863c-4afa-9f4c-08d9a82a5990
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT048.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3122

SGkgSmFuLA0KDQo+IE9uIDE1IE5vdiAyMDIxLCBhdCAxMDo1NSwgSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPiB3cm90ZToNCj4gDQo+IE9uIDE1LjExLjIwMjEgMTE6MjMsIEJlcnRyYW5k
IE1hcnF1aXMgd3JvdGU6DQo+PiBIaSBKYW4sDQo+PiANCj4+PiBPbiAxNSBOb3YgMjAyMSwgYXQg
MTA6MjAsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4g
T24gMTUuMTEuMjAyMSAxMToxMywgQmVydHJhbmQgTWFycXVpcyB3cm90ZToNCj4+Pj4+IE9uIDEx
IE5vdiAyMDIxLCBhdCAxNzo1NywgQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4
LmNvbT4gd3JvdGU6DQo+Pj4+PiAtLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jDQo+Pj4+PiArKysg
Yi94ZW4vY29tbW9uL2RvbWFpbi5jDQo+Pj4+PiBAQCAtMTIzNCwxNSArMTIzNCwxOCBAQCBpbnQg
dmNwdV91bnBhdXNlX2J5X3N5c3RlbWNvbnRyb2xsZXIoc3RydWN0IHZjcHUgKnYpDQo+Pj4+PiAg
IHJldHVybiAwOw0KPj4+Pj4gfQ0KPj4+Pj4gDQo+Pj4+PiAtc3RhdGljIHZvaWQgZG9fZG9tYWlu
X3BhdXNlKHN0cnVjdCBkb21haW4gKmQsDQo+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQgKCpzbGVlcF9mbikoc3RydWN0IHZjcHUgKnYpKQ0KPj4+Pj4gK3N0YXRpYyB2b2lk
IF9kb21haW5fcGF1c2Uoc3RydWN0IGRvbWFpbiAqZCwgYm9vbCBzeW5jIC8qIG9yIG5vc3luYyAq
LykNCj4+Pj4gDQo+Pj4+IEhlcmUgeW91IHVzZSBjb21tZW50cyBpbnNpZGUgdGhlIGZ1bmN0aW9u
IGRlZmluaXRpb24uDQo+Pj4+IEkgdGhpbmsgdGhpcyBpcyBzb21ldGhpbmcgdGhhdCBzaG91bGQg
YmUgYXZvaWRlZCBhbmQgaW4gdGhpcyBzcGVjaWZpYyBjYXNlIGENCj4+Pj4gYm9vbGVhbiBzeW5j
IGlzIGNsZWFyIGVub3VnaCBub3QgdG8gbmVlZCB0byBleHBsYWluIHRoYXQgZmFsc2UgaXMgbm9z
aW5nLg0KPj4+IA0KPj4+IFdoaWxlIEkgYWdyZWUgdGhlIGNvbW1lbnQgaGVyZSBpc24ndCBvdmVy
bHkgdXNlZnVsLCBJIHRoaW5rIC4uLg0KPj4+IA0KPj4+Pj4gQEAgLTEyNTAsMTIgKzEyNTMsMTIg
QEAgc3RhdGljIHZvaWQgZG9fZG9tYWluX3BhdXNlKHN0cnVjdCBkb21haW4gKmQsDQo+Pj4+PiB2
b2lkIGRvbWFpbl9wYXVzZShzdHJ1Y3QgZG9tYWluICpkKQ0KPj4+Pj4gew0KPj4+Pj4gICBBU1NF
UlQoZCAhPSBjdXJyZW50LT5kb21haW4pOw0KPj4+Pj4gLSAgICBkb19kb21haW5fcGF1c2UoZCwg
dmNwdV9zbGVlcF9zeW5jKTsNCj4+Pj4+ICsgICAgX2RvbWFpbl9wYXVzZShkLCB0cnVlIC8qIHN5
bmMgKi8pOw0KPj4+PiBTYW1lIGhlcmUuDQo+Pj4gDQo+Pj4gLi4uIGNvbW1lbnRzIGxpa2UgdGhp
cyBvbmUgYXJlIHByZXR0eSB1c2VmdWwgdG8gZGlzYW1iaWd1YXRlIHRoZSBwbGFpbg0KPj4+ICJ0
cnVlIiBvciAiZmFsc2UiICh3aXRob3V0IHRoZSByZWFkZXIgbmVlZGluZyB0byBnbyBsb29rIGF0
IHRoZSBmdW5jdGlvbg0KPj4+IGRlY2xhcmF0aW9uIG9yIGRlZmluaXRpb24pLg0KPj4gDQo+PiBJ
IGFncmVlIHdpdGggdGhhdCBidXQgdGhlIGNvbW1lbnQgaGVyZSBpcyB1c2VmdWwsIGl0IGNvdWxk
IGJlIGFkZGVkIGJlZm9yZQ0KPj4gdGhlIGNhbGwgaW5zdGVhZCBvZiBpbnNpZGUgaXQuDQo+IA0K
PiBFeGNlcHQgdGhlIGZvcm0gQW5kcmV3IGhhcyB1c2VkIGlzIHRoZSBvbmUgd2UndmUgYmVlbiB1
c2luZyBlbHNld2hlcmUNCj4gZm9yIHNvbWUgdGltZS4NCg0KSSBrbm93IEkgZm91bmQgc29tZSBv
dGhlciBleGFtcGxlcyBhbmQgdGhhdCB3aHkgSSBzYXkg4oCcc2hvdWxk4oCdIGFuZCBub3QgbXVz
dC4NCklmIG90aGVyIGNvbnNpZGVyIHRoYXQgdGhpcyBpcyB0aGUgcmlnaHQgd2F5IHRvIGdvIGFu
ZCBzaG91bGQgbm90IGJlIGNoYW5nZWQgdGhpcw0KaXMgb2sgd2l0aCBtZSBidXQgSSB3YW50ZWQg
dG8gbWFrZSB0aGUgY29tbWVudCBhcyB0aGlzIGNvdWxkIGVhc2UgdGhlIHdvcmsNCndpdGggRnVT
YSBhbmQgTWlzcmEgY29tcGxpYW5jZSBpbiB0aGUgZnV0dXJlLg0KDQpCZXJ0cmFuZA0KDQo+IA0K
PiBKYW4NCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:26:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:26:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225808.390031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma7T-00044E-Rw; Mon, 15 Nov 2021 11:25:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225808.390031; Mon, 15 Nov 2021 11:25:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma7T-000447-Of; Mon, 15 Nov 2021 11:25:51 +0000
Received: by outflank-mailman (input) for mailman id 225808;
 Mon, 15 Nov 2021 11:25:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mma7S-00043I-1P
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:25:50 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8580f72-4606-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 12:25:48 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-9-HfDRYwI0Oy6nrM-osmqzbQ-1; Mon, 15 Nov 2021 12:25:47 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR0402MB3778.eurprd04.prod.outlook.com (2603:10a6:208:6::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Mon, 15 Nov
 2021 11:25:46 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 11:25:46 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0381.eurprd06.prod.outlook.com (2603:10a6:20b:460::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Mon, 15 Nov 2021 11:25:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8580f72-4606-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636975548;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=dMSHcTmdyydXQzc4HgJXMRC0gZq1M9PvFW4wdowtUgA=;
	b=Dq1P7H9NB9h2xbrvd3eK4hXVNiPSe9T6p8rNQJGyuoP6xK0SvVvBVtB5kn9ZiFLMw4Kme8
	Zx1f/rh8f8gMUJDH72rVRDVP0uqGaxT+A0VniL4wjCLVHeE/8ESQMjyeSgdWLquWqMlQX/
	/nt/5RWZG7gYnNUHFpWXeWPwwBbxJCA=
X-MC-Unique: HfDRYwI0Oy6nrM-osmqzbQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=l5JzeGmI2n0Wz1+c/qo59bpcPqHhwD0WLxdtcEdxd3QqW1uA0PH6yFykS+CmRmfmA+YVKQWbbOUXvmK6ra93qAjUjfeCxXW04HxvecyDsblikXnmVkPS6PxYrDm9aBGobsJHT9HDT5zEq1IgwgcYBGc4hAUBtKE3cFzZM/f14daocuQ+LmS4WdlioyVF5erWRJzr7v/3AUVkMjLIXzCv3S4I9vK2m9SCVIKERr0WOpmJrMetDmJnOLvgbiH2NOYIAmPvtwFMEds7ZJkaH6s7gaHOugPylh3n5Rp2nQcmbl73ueAlDWfsLQQhUf1opbPgJCwJvmhIyLVqqQXq4TyRMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dMSHcTmdyydXQzc4HgJXMRC0gZq1M9PvFW4wdowtUgA=;
 b=gR4pc1aWjFWTdS+cg00+h1rhD7KBwDkvb6AgPue3a5Ai62gLCDs0Q/RPP2Dvy8YzJhx3TrVCkOZC4qy3Zd84IL4U1C2I1TiBwUUdmrKJQGk+sWH+rsR6RbNDtATeeZVHP3hnDzH2MN/WwJ0uXZ2LXjXyNb0YEF4fCFuOf4PK3XTobJRcoHb452ogdi2HjCEsDKnQt0glkbAJYcwVsLUJEAwk//Co8ovaZQyABONx7Nc3q3cwoOp7chASZpctM3lBkxzs/wafJ+VUGQhdJ+UHudh9S5x0fMMk+Ib3YB9oIt7rFClNzQkaK0GbztMTjbQzxull48b5FJNoUwTqLZ3cOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <796b2d7d-6d68-c969-8c64-1838aa425282@suse.com>
Date: Mon, 15 Nov 2021 12:25:47 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 3/3] x86/cpufreq: Drop opencoded CPUID handling from
 powernow
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
 <20211112182818.30223-4-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211112182818.30223-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0381.eurprd06.prod.outlook.com
 (2603:10a6:20b:460::28) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c4648cc6-33a0-4670-8c38-08d9a82aab40
X-MS-TrafficTypeDiagnostic: AM0PR0402MB3778:
X-Microsoft-Antispam-PRVS:
	<AM0PR0402MB3778A6A56529D0DB921DCAFBB3989@AM0PR0402MB3778.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2449;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JrIjtPkQY5LE+REK7x7mVgD1nnqiQTWgKb2e8bvhTU9eT5oJAqx6nEsbkP+m2lWTMKHMGRjBytl+Hk1ZAyb1bxyRWBnJ1ZKmz7TCt0Jf+n0QtMs/ny0L1X8NqCxH+TmA5YhX3/YoUQGznsALFgLObgUEAtq5bfvWYlIosX4ZKB98IHoi4rQsWZJLiTaLzgGCf5s1DavHNuuOPoUyTC6x7UrWIsHy/4iilj1014Q42RT4qEn1sbC9jzg/gQMcX4SaHkBhWuXvlEFHnEH0ER073cV2owz31RKiuvzTsS5vaaiSje0hs5JRhTgSJ9JaCq21sYVmKLcLzgDAQUoc6om9kv7UUfODS5ya9mDhpJCwCFUSg8wM1loc1GIPiAFYEMVGSAfi7xlPD1UlMyqIqhnjB/WsBmabYjbls0cLg1ID1YTkAdxUmFwjn92+O1aMxhgCVGP8jJ6ObdoEHUPswyOsQL84f844Es0JX2iWOxiErr7T5+IV7CBC8IdAyJXohg+4Sg/bFfMlJ03SZ63QJEXC8suOSIul4sTxtPwqSCI/IkFXSAGMaXmBBAWd1r3paCwhUvIMWuOaAwFZTOP5+6HAIrcRv3oEwWd+G+cg9r4KsDX/XXFS9NTYfiefRWGK9UdnoR7POjsasqYyzO9kPPsJYyIM/k33QhSrS6MjYqOGhp+5tEGlT9FYwCgn2lQbxTTt2tVIm1wAnZPbyBBxNX3LIU2mG3+07EZVDskHvWnwZdyHYEGtT/lb05SU6wa35ZIZ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(6486002)(31696002)(38100700002)(8936002)(6916009)(4326008)(4744005)(36756003)(66556008)(26005)(2906002)(66476007)(5660300002)(8676002)(316002)(86362001)(54906003)(956004)(186003)(16576012)(66946007)(508600001)(2616005)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Wm9iQVFsak1sRXpkajJERlB4WUJSZ3lGdmZjT0Y1MDB0YXkxVTNxTEdjaUFX?=
 =?utf-8?B?MHNUU3FLbGIwZHIyVjNIVGcvK1J0ZDA3QWdnWnZEcFJZSnU5S25MVnVYRito?=
 =?utf-8?B?WHAyNmJhOFVTbkEya09OZWdkcmxib3BUdjJTRDZiUllESXNlSTJUQ0wvS0o3?=
 =?utf-8?B?V2UvNHBtRHJvVzMxRHFDYUI0K1Z0SlRDOXZqc0tyL0t4eHBHNTNERnJNUTZi?=
 =?utf-8?B?aks3eHFJc0RXcGM2UEhodVo3d3pvT2ZoN2o3em5kbkJYMUsrR2R4REFGV015?=
 =?utf-8?B?V3EwZGN4cGNseWgxdjlldHplMFk5cUc3MitmbjZ5UFYxNDRtcHdpY2pPRlBu?=
 =?utf-8?B?SzliTjVtUXJDaXpGWXowTG5KL1dNUVZLZ00zd0d1NjlxZ2FRVXI3ek9vR0xQ?=
 =?utf-8?B?Y3BtMGpDQktHNFo3bmowd2FVajNVcnVDTHMyM0FiODBURFo2MTRkNjQzTlBL?=
 =?utf-8?B?K0tXM2xycVFET0FtZVY1a1lkS3d4NS9CTXdvbU1rVUxjVjk4MVVTMGEwV2tL?=
 =?utf-8?B?dGErZHlySTZma2hkWjBIWnlEd2ExNG55NC9GdE1MSkVQRVNhdjk0bnpSMDZa?=
 =?utf-8?B?NTdOS0E5ZzVkV2NSOEI1V0JEZ1l5SnNMTFd3b0liSC9LSmhTblR2bHlyOXNz?=
 =?utf-8?B?cnFBZzR2VDNodFZraXNmVmxaaGZ4WVdFQmpvczdrcXpnMDlDZW1oSUZtejVQ?=
 =?utf-8?B?TWFJM0FYQWprS3ppbzRvK3pPaDgwcmFGQXhPVkR3WHozWkZxWllZVFBWcmRw?=
 =?utf-8?B?aStkNms2SC90TkJ2eldhRWlVNDJhZzlSdldTYW11UFZ2anRtYVNoZzBFZ3dB?=
 =?utf-8?B?WTlxNHlURWp4Ym5MeGs5YjVzK0pWSFpTSjFVdWFBcTJvTy9pRlRVOWtyM05H?=
 =?utf-8?B?RVpBeW1NSUk2VmxsTXFIaVNtdzJwaVQvUkgzaU1SNHRPRDh4M0ZNT0poTFVq?=
 =?utf-8?B?RGpjZ0VnOEpvVnZIaTJxYVgrOWJDTDEyMkZTMW5kY3l3SjhkMkhiTEJHb2I1?=
 =?utf-8?B?L2FiZXZQTUxIY1pMdDFwNnNzZ3luNVlQeU5pQk8ySTV1N1M1VUY1ZEJpaVFK?=
 =?utf-8?B?VXUrZHhLR21kbERrRk80alpTNUxDR21ZUi93R1ZZbnlOMCt6V0lIZUp3RXpr?=
 =?utf-8?B?clB0dzRsU2NEYzY5bkl4WEdJZGxxdEdTRFlPTkxWZmxUNHZIQ3ZhRHNHa0RP?=
 =?utf-8?B?MTlPNGxkaHhKaGUrMno4S2pXa2FEdU9Sa3Y5UndDaWFacjJrdlFGRXQ0a29L?=
 =?utf-8?B?aTgrY0ZsQmczSFRYOUJVQUthUkpDWllxbjNQL0pCcmFyNE5JWVBvQ0JkNjFL?=
 =?utf-8?B?UlNnRzdvL2lxNGNDK05MbHlTRnMzeGtua2JCQWh2bTRVeUZpMVVObEFZb0Nv?=
 =?utf-8?B?cURvTHBhSDRoR1RMS0MrT213SFVQbEVBRFRIcGJiQndKRHYrTHFxWHE4UGRQ?=
 =?utf-8?B?UW05T0V3Qk1lTkdHMGxQUmVwTlVheHJSdEpRdGlRQjlma04zckpSR1FEQW05?=
 =?utf-8?B?MVlYL2s1MG8xV1FjL25NeUdmb3huZjFaSHlIcnloK2llcU4wOUpPcDRyVUhD?=
 =?utf-8?B?MlhuQlpHS0dKV2pyMHBjWHJIZjI0NnYyMkFNRTAzRTVWcWZCMjVpTm9wTzJ3?=
 =?utf-8?B?RDBJMUx0RDhVSzA1bXY3TFJQNWZtR0UvUzJyNFYvVkxtTjBkeGI4Nm9ZUW1E?=
 =?utf-8?B?djZVMjFtcExyR3ZrYW5oUGYrb1pXNmdmZVNSamNZdVc3UEJneHNyZ0QxcFFC?=
 =?utf-8?B?M2kzQ1hWQTFvWGQwUy9KT3Z5eXhITDB3T09sVVg2MVh5R2d0aExwT2hlOWxz?=
 =?utf-8?B?aTA2d3V6UU9GeDhYa1c0T2dYbVNFaWpvZmNtT3JoNC9kYXAwZnpBTGk1TEJj?=
 =?utf-8?B?QTlUOTA5R043YjhvY3hKckdsaHgzOG9xSnV6ZU9WYVBpeXpjUjk2aDVZQXh6?=
 =?utf-8?B?SDB0ZGxpdGxPa2E5bFlaeVZRdHl4U0ZBbm9ZVlFPSFB0cVJUdVFVMDFYalNx?=
 =?utf-8?B?bld4TURkMW9Ya25zMnAyaDE5TGVPeU1XelRBRFNtNWU5Y2hDNUFtRWdTNmVx?=
 =?utf-8?B?LytsNDhVdnpjRkdlN1Q2UGcxQ0pxOThyckJxTVI3NEw4YTBqR2dMZHRzNnBj?=
 =?utf-8?B?Q0NjQjdwZG03QWdxWHY4NzMrd3Q3ZlRFOHhEOVRDOGRqQVN1eFVLK0MvSFdW?=
 =?utf-8?Q?AE0dixJ5W+tH0zaOUEDLLTA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c4648cc6-33a0-4670-8c38-08d9a82aab40
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 11:25:46.5972
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GxaNfKBi4b0mQhiq2TkwElgOtMRPKqNPR8FQf9vIj5JPVBuAfjUUYWDJvQOb5twnT86C3hzWtChBefn/jDkbNg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3778

On 12.11.2021 19:28, Andrew Cooper wrote:
> Xen already collects CPUID.0x80000007.edx by default, meaning that we can
> refer to per-cpu data directly.  This also avoids the need IPI the onlining
> CPU to identify whether Core Performance Boost is available.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:26:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:26:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225812.390042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma8D-0004fv-8X; Mon, 15 Nov 2021 11:26:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225812.390042; Mon, 15 Nov 2021 11:26:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mma8D-0004fo-5H; Mon, 15 Nov 2021 11:26:37 +0000
Received: by outflank-mailman (input) for mailman id 225812;
 Mon, 15 Nov 2021 11:26:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mma8C-00043I-9K
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:26:36 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e37f7629-4606-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 12:26:35 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:46826)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mma8A-000HpV-g1 (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 11:26:34 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 74FDE1FDB0;
 Mon, 15 Nov 2021 11:26:33 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e37f7629-4606-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH 3/3] x86/cpufreq: Drop opencoded CPUID handling from
 powernow
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
 <20211112182818.30223-4-andrew.cooper3@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <a9480750-6aee-4bb1-5ddf-edf308e7e387@srcf.net>
Date: Mon, 15 Nov 2021 11:26:32 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211112182818.30223-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 12/11/2021 18:28, Andrew Cooper wrote:
> Xen already collects CPUID.0x80000007.edx by default, meaning that we can
> refer to per-cpu data directly.  This also avoids the need IPI the onlining
> CPU to identify whether Core Performance Boost is available.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
>
> I don't think the printk() is very helpful.  I could be talked into retaining
> it as a prink_once(), but (irrespective of cpufreq_verbose), it doesn't want
> repeating on each CPU because it will either be all or none of them.

I should note that the printk() is also false.  Nothing AFAICT
synchronises the software turbo setting with hardware, until the next
time set-turbo is called.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 11:51:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 11:51:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225818.390054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmaWT-0007s1-AT; Mon, 15 Nov 2021 11:51:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225818.390054; Mon, 15 Nov 2021 11:51:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmaWT-0007ru-7A; Mon, 15 Nov 2021 11:51:41 +0000
Received: by outflank-mailman (input) for mailman id 225818;
 Mon, 15 Nov 2021 11:51:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mmaWR-0007ro-US
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 11:51:39 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmaWQ-0007Ke-Jc; Mon, 15 Nov 2021 11:51:38 +0000
Received: from [54.239.6.189] (helo=[192.168.10.237])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmaWQ-000402-Cu; Mon, 15 Nov 2021 11:51:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=bvagXgt+RcGzZyRBj7VP/vg1oI4kRlKGBqlStlYqtf4=; b=K6R1ZuCaWczmfF3Klt8C1zErJF
	Zi202Wc4CdblOuk/GfEXaZ0r1/O+JOlaEr5twpBPhMOL/eUK2i7UilZdrqNjpmcPHK1r8OmCE6TT6
	3nFrzfkqWspMwXRC8vBOAYTUknKOhJgWoa3srctG/iao+onSjxZS3yyDszeNKsOH42i8=;
Message-ID: <9bd26ab8-cfa6-264a-ee19-0dc3bc2c3e80@xen.org>
Date: Mon, 15 Nov 2021 11:51:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 v2] Revert "domctl: improve locking during domain
 destruction"
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Hongyan Xia <hongyxia@amazon.com>, Dmitry Isaikin
 <isaikin-dmitry@yandex.ru>, Ian Jackson <iwj@xenproject.org>
References: <20211112120208.74387-1-roger.pau@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211112120208.74387-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Roger,

On 12/11/2021 12:02, Roger Pau Monne wrote:
> This reverts commit 228ab9992ffb1d8f9d2475f2581e68b2913acb88.
> 
> Performance analysis has shown that dropping the domctl lock during
> domain destruction greatly increases the contention in the heap_lock,
> thus making parallel destruction of domains slower.
> 
> The following lockperf data shows the difference between the current
> code and the reverted one:
> 
> lock:  3342357(2.268295505s), block:  3263853(18.556650797s)
> lock:  2788704(0.362311723s), block:   222681( 0.091152276s)
> 
> Those figures are from Dmitry Isaikin, and are gathered after
> destroying 5 2GB HVM guests in parallel:
> 
> https://lists.xenproject.org/archives/html/xen-devel/2021-09/msg01515.html
> 
> Given the current point in the release, revert the commit and
> reinstate holding the domctl lock during domain destruction. Further
> work should be done in order to re-add more fine grained locking to
> the domain destruction path once a proper solution to avoid the
> heap_lock contention is found.
> 
> Reported-by: Hongyan Xia <hongyxia@amazon.com>
> Reported-by: Dmitry Isaikin <isaikin-dmitry@yandex.ru>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:03:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:03:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225833.390065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmahu-0001Ar-Md; Mon, 15 Nov 2021 12:03:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225833.390065; Mon, 15 Nov 2021 12:03:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmahu-0001Ak-JO; Mon, 15 Nov 2021 12:03:30 +0000
Received: by outflank-mailman (input) for mailman id 225833;
 Mon, 15 Nov 2021 12:03:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmaht-0001Ae-8G
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:03:29 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a41c909-460c-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 13:03:27 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:40174)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmahq-000hGf-2v (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 12:03:26 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 820381FC18;
 Mon, 15 Nov 2021 12:03:26 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a41c909-460c-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH for-4.16] freebsd/privcmd: fix MMAP_RESOURCE ioctl
 definition
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>
References: <20211115110851.1462-1-roger.pau@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <11c7c89d-ba8f-e1da-e2af-4ba186f92fbe@srcf.net>
Date: Mon, 15 Nov 2021 12:03:26 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211115110851.1462-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 15/11/2021 11:08, Roger Pau Monne wrote:
> Current ioctl definition was wrong in both FreeBSD and Xen sources, as
> the MMAP_RESOURCE ioctl needs to copy back the size of the resource
> when passed a zero address and size. FreeBSD encodes in the definition
> of the ioctl number whether parameters should be copied in (W) and/or
> copied out (R). The current definition for MMAP_RESOURCE is lacking
> the copy out part (R), and thus the call to query the size of a
> resource would always return 0.
>
> This change will break the current ioctl interface, the tools can
> however fall back to using the foreign memory interface in order to
> map resources from guests.
>
> This was a shortcoming from when the hypercall and ioctl gained the
> ability to query the size of the resources, as originally the
> MMAP_RESOURCE ioctl didn't need to copy out any data.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Cc: Ian Jackson <iwj@xenproject.org>
>
> The change only affects FreeBSD, and it's only a change in a
> definition of an ioctl, so it's unlikely to break existing code logic.
> Without this change Xen tools won't be able to use the MMAP_RESOURCE
> ioctl.

I guess you found this while trying to fix test-resource, in which case
a further argument for the change is "the unit tests now pass on FreeBSD" ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:06:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:06:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225839.390076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmakw-0001oJ-4Z; Mon, 15 Nov 2021 12:06:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225839.390076; Mon, 15 Nov 2021 12:06:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmakw-0001oC-1O; Mon, 15 Nov 2021 12:06:38 +0000
Received: by outflank-mailman (input) for mailman id 225839;
 Mon, 15 Nov 2021 12:06:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmaku-0001o6-Q5
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:06:36 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7abf3a8c-460c-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 13:06:35 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2107.outbound.protection.outlook.com [104.47.17.107])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-24-K-_QRKJ9O6SRmk2iidOosg-1; Mon, 15 Nov 2021 13:06:34 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR04MB6337.eurprd04.prod.outlook.com (2603:10a6:208:170::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 12:06:33 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 12:06:33 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0301CA0010.eurprd03.prod.outlook.com (2603:10a6:206:14::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Mon, 15 Nov 2021 12:06:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7abf3a8c-460c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636977995;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=1uQ8GfFVLSGQhxCiZChiDwZTXuz7fOZcKR+98o9ZG90=;
	b=PABfffCw28wAtxEL+RxhcRSHHNCDlxc5l2ZE4aFmChLjm9a1kL08QglIy1PD0rc0uUHXtA
	JgFMhDUeMIYgDqDmmKcGa5jqaUUfe9g87SlrNsB3Fm62Hhph3+1ibmczcQr3RnYBhATDPh
	xp32+/MPr6AZhfYAp9CP5kWSbNggOiw=
X-MC-Unique: K-_QRKJ9O6SRmk2iidOosg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BbwODlRmvmnNS9onEFgNgdwdikvibEnLtSVrvmE5bJ8hDXIM8U0hgw+NqEj/gVKQfCAUc7OJKoqsEhFCI7/7j2BGuMhYjKgYqZOQlN/zEogtpFukyaU/xgfgmA9Glv4jdVFNZb5X0FTbKOuLSxLxJrUZsR0yfioWRJQfHyOuARR7Seo09I0T+L/x/NcRoHxOdDSNcJM71GtqZosbsCuVZEaj/InH/Gg8fAINRJv9UiL/XqrX78DGgEZYJwoHbz1tWTGKGovEhnZBKqx3hFHqqcjKnoTcn1wS3eekeV57XAhnOVp+dt7wqj8gXbZWtqGwk936ZqVg8rFXQryae+jdMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=d+GTYTFUICm269A3Q4jbFl1JERSp+SKx9aeCBMsHZpQ=;
 b=cc60UVuIgpJXAaZaxbuArijrOXXwlaUvQckOcNA6OitRccF3+M+je6/Xm6DrI9iVU92s/FLeeRPndcYJWgit9jwPsfufjReA2+ZzDHR3SowUHYQ2Pxf80Pk8sgsYNgzTu0p2+1tZn1f/wWPYr9g8unyJHDpIi7hSYlLH5GTu0Yctt90HGG89x3ObeVCpUYMZx4O9KdLwJ0PfP8Ceow+kDUPqCbkdwr18yq/AHGOO8sGJml6QAHrE0l0ZVg1Xvsp+mSTUBaacaYH3bC+1X8TFPEvAN3jbLwcytktApKZa8nk7WVbx6ZmjnZQw9NFCLUoBTk7b7LcN9fmE3czzsMXEiQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0f6405eb-94ee-8907-e86f-0f045e48e8c9@suse.com>
Date: Mon, 15 Nov 2021 13:06:31 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2.1 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Ian Jackson <iwj@xenproject.org>, Paul Durrant <paul@xen.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <0c006378-964b-3e48-4fe0-4df88e3131e5@suse.com>
 <YYkP/CHNz7bK466i@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YYkP/CHNz7bK466i@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0301CA0010.eurprd03.prod.outlook.com
 (2603:10a6:206:14::23) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c58e4286-4938-4c11-7b26-08d9a8305d6d
X-MS-TrafficTypeDiagnostic: AM0PR04MB6337:
X-Microsoft-Antispam-PRVS:
	<AM0PR04MB6337027C6CF89689B9103B85B3989@AM0PR04MB6337.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3826;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hIpgIg1NxWM5Kjn0sOudcVrBH5PrV0vK/+eShOcnmk3E3/oe17sdoQUt5cb0b/I3/CTfhkFoKFNpf4MNj02HZ5N5fMn0ieQjVe8DQH0bG49gbJ0+7DhY7Bg0VhYTwtZbocm+dfvYBIVeokov9oCvACjM3V5R8Tye11ai2ewe1pakdOdmespQfx3EV8DW4fWA6IQ3c+d2b6X0rA96NnLUM2b0U9Oq5YQr48yD7sQ+1sbSL/ROutY4YlvZ2LaiGmasWYBDs+RNoJ4aM07a+pzJpPQc7usE7LoixUPncpfHh6n56x0jE1BIY9FIapaG0PdTta4Sm2jpZMO3A1QKIRmqqJzqmgpIROviWnMdYatilRdbphdA3v2ku0Zbws+aqosRJCwHyYG+HiYRXDYOU/6ueGXhRcXQWxmZUpaqKbj1Z8RC7zOa6NjKVWeOUOivcxwdnru4Fe1NuwhWV71sUmpc7OEWuDq6vCz/1RT/JUSOE+4P/b+Aua6e9C6qPVXNR/yJd/SDhGpfYsCo8pNJu3LSPtJT+kdLSSbR86w0bk4ZL5sgyQFcAhf54fSptx0nJQaL2qolxi2DPNRSx6flS9l8FQ5JLzUKFxqLgCL36iJP7O6Ll3/eaV+ew83BQXNn//P57tDSn1PFTNJ1TUJLrKVw2QN29QVrqyxGqGslYHAtiEKmZRCBS82Lumv7hAO6fcbcubskopwI1/PQnaOU3BwpH+TiYhEUL2ocHLci3m3yUI0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(16576012)(54906003)(316002)(38100700002)(4326008)(186003)(36756003)(83380400001)(26005)(8676002)(31696002)(508600001)(86362001)(8936002)(66476007)(66946007)(6916009)(66556008)(5660300002)(53546011)(956004)(31686004)(2616005)(2906002)(6486002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?TG5TJSt09FvinZugWBIgoT+ioCLtXqPFYzbzM232cayzqX8JwoE49NYzO/N8?=
 =?us-ascii?Q?VMx1gCQbAQ0zWuoMAUUarJv+QoV8rQKipwtdHFTQrEhrERWv5XFsyiBkumxz?=
 =?us-ascii?Q?jeClGwlNTrIbGWypjVab2lfs2iMp3r2lkzWg3LU1S0RTi1lI+PSUVmI0XxZ3?=
 =?us-ascii?Q?qOFmSfAVQzd4EjF0oJ/jtPzWaEh/VhTvQmb+XtqJwCmbjTPI9lTa1cA09qw9?=
 =?us-ascii?Q?oBVQhy7eOPMqqSzeQ9EC0Ga8s8+wz3CzYPaRV3clyAtEjb6TbaiA3visOZ6h?=
 =?us-ascii?Q?5tyBu/PY01YeGErLFIVrD55HqhOEHsr3+T0NcMVfAmJ8C2ZfNKVDCdE1uSGx?=
 =?us-ascii?Q?7FNWrPMbrtNQgLjLe6W5h4E16P3tAPNexXTvt0tSdmNNx+mrBgxwexAGJFiu?=
 =?us-ascii?Q?mIyV/8DC8643EeYbdkb9DMdurijAwRa2dOUQMOJ9Fncl106dR75lLkuRxogc?=
 =?us-ascii?Q?weFbtkUCLo9LRJN6Ea66PDgJwXXFq3BUCliLhSmtb6GiiMBmbe0OK1hk2XSR?=
 =?us-ascii?Q?rwIeLJEq2iTQnzsBDljhBVa75ZSHecaqnjCFDrRF1FEHe0+O4bbO+6VpM1Si?=
 =?us-ascii?Q?vwGhXYe1Ea0VnxPLFs3XbbK8apGNWc3WZINUW1q1dB0gNNuYbBi0CTVb3YxR?=
 =?us-ascii?Q?gKseLRP9JYoRQVYzdZ5C/SA2TNi8j7268pDvr+PUMQqiosb+iuVtIEMg5UUt?=
 =?us-ascii?Q?m+ucVg51bOmQvs+xpvH7ZWh0U2ixBBp0y4qiF9Q6Tbu7jBqDgnC5AUhZyi60?=
 =?us-ascii?Q?RerAPvqP+Rhnnr1nEOhEcEN45yniPUBHBuohxbAthf3oIelv6OzV2Aim7/8f?=
 =?us-ascii?Q?KSV+p8C/72lKPrrLCQatypvy52h4UTg+VgdNW57mAlo7x1jIQxAqUBEHAGGu?=
 =?us-ascii?Q?9PkX0wqjxKd6Nfi13Sdtd+NVDdvr4D+9DUhp2NPL4tjAXdi1esgI5nQW2Cq/?=
 =?us-ascii?Q?kqTwsP+6Ek4/WmWkYb3VpOMNjNT4kIhLnMjNy0Wh2A1zxTaxWHsBENnfRPxl?=
 =?us-ascii?Q?0aQj8S9sEDnDEu5uKfiJuq9Bc9+pP7p5PXCR02ZI6Dmntv0ihL6kFHOKBqGs?=
 =?us-ascii?Q?U27CtNiPX88nTtRZFaQPmCnxr/m83AyMpPzH8S/prwxI6B04Q+S6eVWG962w?=
 =?us-ascii?Q?AwnvpNCT0FLMyNYreaD6O2yzqT8et3Ty1WEv56AzhuMHy4FocTIpgRA77Rif?=
 =?us-ascii?Q?K5+K45Bq5Q2LTZHQ91acY7kJJmH8W+rz6xqocUdicY/txA9fcmY2VbqI8NNQ?=
 =?us-ascii?Q?dTG77lAFCsONkdms9fgrtf1exXhJdgQgV4Cgx/399PnMTlf8rgajCDwVssF4?=
 =?us-ascii?Q?br9xDDj15PcN8rxrzPzJmJttzSs9FiA6ZmlRTHEqsDTNwXOKFPwGVn5vaylc?=
 =?us-ascii?Q?vB9/L+xKZwWl9wOiGsrguq2viDym1XDnf0Gds1wPAHduOEujjGmk7ttYoyqf?=
 =?us-ascii?Q?6qF88COZ+RNiDRumk8lRQic+zRjqnMOmoJoIs0R+yYiy0IB60yuYYc0PxL/B?=
 =?us-ascii?Q?xnE8JA135wRRT6MQta1jn/0HiuWSA1S3nolfVcvBw6GUtbLMUov5GegbWoRW?=
 =?us-ascii?Q?4rPa+jP3kZvddDxu19ikBG7NkpWDz8S5YNqaVwavPpkjkY2zPTOGViMir3xv?=
 =?us-ascii?Q?QaCVWK0cJJF/ZyC1rPz4RD8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c58e4286-4938-4c11-7b26-08d9a8305d6d
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:06:33.0457
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ANVeniVhlVJvQTUprTUViA8sTd5a2fjaUuOngLnTN/QKg6u3qlxmS46lSOo00jA/QPBVY89c0MitsLLJo6gM4A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6337

On 08.11.2021 12:54, Roger Pau Monn=C3=A9 wrote:
> On Mon, Nov 08, 2021 at 12:40:59PM +0100, Jan Beulich wrote:
>> While commit 46c4061cd2bf ("x86/IOMMU: mark IOMMU / intremap not in use
>> when ACPI tables are missing") deals with apic_x2apic_probe() as called
>> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
>> affected: The call needs to occur after acpi_iommu_init(), such that
>> iommu_intremap getting disabled there can be properly taken into account
>> by apic_x2apic_probe().
>>
>> Note that, for the time being (further cleanup patches following),
>> reversing the order of the calls to generic_apic_probe() and
>> acpi_boot_init() is not an option:
>> - acpi_process_madt() calls clustered_apic_check() and hence relies on
>>   genapic to have got filled before,
>> - generic_bigsmp_probe() (called from acpi_process_madt()) needs to
>>   occur after generic_apic_probe(),
>> - acpi_parse_madt() (called from acpi_process_madt()) calls
>>   acpi_madt_oem_check(), which wants to be after generic_apic_probe().
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Thanks, but testing again revealed a problem, this time on AMD. The
dependencies are yet more complicated, so it'll need to be a mix of
v1 and v2: acpi_iommu_init() needs to be split out, but
generic_apic_probe() also needs to move. That's because
_pci_hide_device() relies on dom_xen to have got set up before.
Expect v2.2 after I have actually tested the outlined change.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:18:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:18:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225843.390087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmavz-0003Jx-4v; Mon, 15 Nov 2021 12:18:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225843.390087; Mon, 15 Nov 2021 12:18:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmavz-0003Jq-20; Mon, 15 Nov 2021 12:18:03 +0000
Received: by outflank-mailman (input) for mailman id 225843;
 Mon, 15 Nov 2021 12:18:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmavx-0003Jk-Tj
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:18:02 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 11f65a7a-460e-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 13:18:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11f65a7a-460e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636978680;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=QAyGt7wDCGpdGbIR+FRX4EFwC38bD/6P9PpvtFil/Gs=;
  b=Q/3zcwYEFXXUcdAaLxWz3+fqxbg9402P//D6xazVQt7Q8jgDVz6hKmad
   Q/anwThYDsrfpvg9CarvvGsWA4bVbckfGbs0L/dlCmCMAzB9BcsKBZzR6
   lbKfn9jBIdOHNUHgzZOKYuX8LAaIO+BZLdUrVMNVzQlSax46xXSQrQeMr
   E=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: bj4Dtt4vARMSyR2RUMjEi52VP79hHR0Iddzi05zA+Pd5fs6Dmu36Kwqye0EkiHfZVrYhth/Hur
 HMha2thgr7Xjbc/KJ44Fl777WDIAc2VKCK0g5FP2TlByAhVALKP3b9VcJY9728chW0S4wD3fyU
 WqwAr0Z9ehr9pZSk1+WuaE8pUxyFgECdSdiG6LVlb+Av8X5/HesgnI1I2g2LK0NEfS1nqadgNs
 oCvKfrDHsAAeUe1f/3QARIa3dlsa7c5hCHm1m9yJnpN+7MfkK7s+myFbrnPzBgq6OxTCkAdISA
 KNAWpAFxnmBBDsVpXHEhpukh
X-SBRS: 5.1
X-MesageID: 57350294
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:qAhJZqgoSpUuURjiNc6MdYv4X161bBYKZh0ujC45NGQN5FlHY01je
 htvCmiAPKqDM2P1Ltp+Oo+39RxSvJPXy9MxSAFoqSExFCkb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cx3IDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /10sMCyeVh0YZGQgdYHeB9JNQN4ELJvreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2ZsTRayPO
 6L1bxJWUU3rSSZMMWslI7kHsNfx2HqkdgNx/Qf9Sa0fvDGIkV0ZPKLWGNbcZNGiX8hemUec4
 GXc8AzRAB4AM8eE4SGY6X/qjejK9QvFX4YVGKy95+RdqlSZzWwOCzUbTVK+5/K+jyaWXttFL
 kUO9ykGrK4s9VeqRN3wQx25pnGfuhcWHdFXFoUS4gyX1rDd5QrfA2EeVyNAc/QvrspwTjsvv
 neShM/gDzFrtLyTSFqe+62SoDf0PjIaRUcDei0sXQYD+8Pkoow4klTIVNkLOL64iJj5FC/9x
 xiOrTMinPMDgMgTzaK58FvbxTW2qfDhUQod9gjRGGW/4WtRZpOhZoGuwUjW67BHNonxZluLs
 WUAmsOexPsTFpzLnyuIKNjhB5nwuazDameFxwcyQd9xrFxB5kJPY6hp5W18FBg0bfpYYA3zS
 0nCnyFXyYB6aS7CgbBMX6q9DMEjzK7FHNvjV+zJYtcmXqWdZDNr7wk1OxfOgjmFfFwE1PhmZ
 MzFKZrE4WMyUPw/lFKLq/EhPajHL8zU7UfaXtjFwhuuytJyj1bFGO5eYDNigg3UhZ5oQTk5E
 f4Cb6NmKD0FCYUShxU7FqZJcjg3wYATX8yeliCuXrfrzvBaMG8gEeTN5rgqZpZoma9Y/s+Ro
 CrjCxYElgej2yGbQelvVpyFQOm1NXqYhShkVRHAwH7ygyRzCWpRxPp3m2QLkUkPq7U4kK8co
 wgtcMScGPVfIgkrCBxGBaQRWLdKLUzx7SrXZnLNSGFmI/ZIGlyYkve5L1CH3HRfUUKKWT4W/
 uTIOvXzGsFYGWyPza/+NZqS8r9GlSRHxb8pARKXeoI7lYeF2NECFhEdR8QfeqkkAR7C2iGbx
 0CRBxIZrvPKuIg77J/CgqXskmtjO7IW8pNyEzaJ4LCoGzPd+2b/k4ZMXPzRJWLWVX/u+bXkb
 uJQlqmuPPoClVdMkox9D7c0kv5uu4qx/+dXnlZ+AXHGT1W3Ebc8cHOI6tZC6/9WzbhDtAroB
 k/WootGOa+EMd/OGUIKIFZ3dfyK0PwZw2GA7fk8LEjgyjVw+b6LDRdbMxWW0XQPJ7ppKoI1h
 +wmvZdOuQC4jxMrNPeAjzxVqDvQfiBRDf1/u8hDUoHxiwctxlVTWrDmC3f7sMOVdtFBEkg2O
 TvI1qDMsKtRmxjZeH0pGHmTgecE3cYSuApHxUMpLkiSnoaXnec+2RBc/GhlTglRyRkbget/N
 nIyah9wLKSKuTxpmNJCTyanHAQYXE+V/Un4yl0okmzFThb3CjyRfTNlYevdrloE9298fyRA+
 ODKwWnoZj/mYcXt03ZgQkVisfHiEYR8+wCqdBpLxChZ803WuQbYv5I=
IronPort-HdrOrdr: A9a23:fdNMn6r+Mt5unyd1mWouf1EaV5vLL9V00zEX/kB9WHVpm5Oj+f
 xGzc516farslossREb+expOMG7MBThHPlOkPQs1NaZLXPbUQ6TTb2KgrGSugEIdxeOk9K1tp
 0QDZSWaueAdWSS5PySiGLTfqdCsbv3gZxA7d2usEuFJjsaDZ2IgT0JbjpyRSZNNXV77NcCZd
 Ghz/sCgwDlVWUcb8y9CHVAd+/fp+fTnJajRRIdHRYo5CSHkDvtsdfBYlWl9yZbdwkK7aYp8G
 DDnQC8zqK/s8ujwhuZ82PI9ZxZlPbo19MGLs2Rjco+LCnql2+TFc5ccozHmApwjPCk6V4snt
 WJixA8P/5r43eURW2xqQuF4XiX7B8er1vZjXOIi3rqpsL0ABggDdBauI5fehzFr2I9odBVys
 twriyknqsSKSmFsDX25tDOWR0vvFGzu2AenekaiGEaeZcCaYVWsZcU8CpuYdg99RrBmcAa+d
 RVfYLhDK48SyLZU5mZhBgi/DWUZAVzIv/cKXJy//B80FBt7QdEJgUjtYgid0w7heEAoq9/lp
 D525RT5cFzp/AtHNBA7Z86MLCK40z2MFvx2TGpUBza/J9uAQO5l3ew2sRz2N2X
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="57350294"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KqeyszSBetHRlfpw/JlJSEXtqB6i+IN8okAvlKH/Rjo+R8Xd0EThxttpu8fdssikPqY7o9nsC7DebWPzirlzv+UtP5oD36QewYF6CTKzof4PWE4kSQP9dzUoCSxoMPPSBJryc5gGN07OzMg8P6yUNReDaV36qF/cbyDcNXgBU9JISbVNXA4m16tJakdD/o2DKDMVXut/ytSxZqBjbAHcw/DAqPLYp/bqtfM1pYpv2EUcmVoLQIHdc/PQNU36KGC6G1oWRUDHgyubVzoZLsynBiGUrT1zsaAAu8H3wu0MhPdLlYRVsW+PnMEL/R0W7Waab/IZ1BaMbTfpezMPsnTAeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IQ3JKKqgvuA4rEwQ7MWjKnFIVtfXsE4emtenJXviCQI=;
 b=PcumH9oofSX8pyTKATphj6fVHMJ7xYNqOVZCFhqr6aKr+N3mvb13Haqxlc9m4Imue5dfSzVQmM7l43yH+pKUN+X2E/XLsYIIveH1sM/LKUVYT0zGzWaH3AsGW9Gf1p148oZr1NaZhpyCDhj5A+PDP5o+HOZEzYvb1nAQikB8t72qV3exI12Ko+Zv9MRYaDyJwKhKm2l72353jiSdynyHYcBO/8ngK5Ke1wm+l/ZNVrSHBmoLL8iswSpEyeYpAy6E+J//aqc48b/B8nohQs85+xtAZ0x0yMszS6qs4nknS1c5QWNygQ4bHXhsjXb6VeUxchkfXv+CO6FcaSmC395/vg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IQ3JKKqgvuA4rEwQ7MWjKnFIVtfXsE4emtenJXviCQI=;
 b=wsnNbplvxZosElLSjDvvMhBdfLAiz1qRL/1eimthVhcWji/LVWxFcuCF+QtW9AWZraJA756YlCOfVebTvFhiHaCbQC4ZpQjKNYLbSlY70Eq2UI3Cy3jVCeS4DA55Xzntl8Aw1mYxDuooWDcHGO3rjkiFfPsyEnr+zOpqiRD3N90=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>, "George
 Dunlap" <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Anthony PERARD" <anthony.perard@citrix.com>, Juergen Gross
	<jgross@suse.com>, Christian Lindig <christian.lindig@citrix.com>, David
 Scott <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>
Subject: [PATCH for-4.16 0/4] gnttab: fallout/improvements from max version
Date: Mon, 15 Nov 2021 13:17:37 +0100
Message-ID: <20211115121741.3719-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0150.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::13) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ac5ba0ec-23c0-4daa-109f-08d9a831f37c
X-MS-TrafficTypeDiagnostic: DM6PR03MB3483:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3483B35D45340D99EC9AE7758F989@DM6PR03MB3483.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: IDlOGgo1uaOqAeCvlMFXF8Vyc+ltEHW2HWya45tILX3Z4iwZRu3Kect5tNS3pTTi0zTS6/Bk5gaeD8bTj32s1BooUMDzDkqnky50jur7vatEU5viULt/wPgOvEFN/+znRwTla73AR1IZf9EEJKpZsI95SwFCyrfVVy4wZF/C/p3EuLhPf1003mmcDwMXXvggjG7WCmhjMGVfJ97O7X34tdYGgLONlARYU/Z6Rwz86EgY6R//XiRkWbUA59M4oQERZesEzylX/LPC4vEYY7HnQupA+nlAxOPSfaGyYX98oEJq9Mn3qx4q+rk0+YGM3LFuAp0/LGnHJEfE13ybHLr/5nm1mDQVZx+dbzLvv+N08hd5wwFlWZ6gS6Us8vLA99TlQ+2I6jtWAPXvuH3fVdwOBQlD+M8XPM3X8JI6+pT5C/YVXRqISTm8J/UEf6ZPG39jqqzoUwECVHp70zy57fBBi44zMY34vE/9w4deOqYvAof9G9dbSGC+kC5U8PCDtzCRIJ4IdX+2Bv7enEE/dkSzSGqDkgURf0PRp1ig+EenJh8WjbIT6AHqzGGadMVoTRCOHBcFe68hAyjS/vzS9r9AzZfOinwqq1XmzpZZABhBJCrrqHtTcuLqndG+DIsMQ9o2jQDeM6C1Lwc9GJVBuTqyeA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(26005)(7416002)(82960400001)(86362001)(38100700002)(66946007)(66556008)(66476007)(186003)(2906002)(508600001)(5660300002)(6666004)(4326008)(6486002)(8936002)(36756003)(83380400001)(2616005)(956004)(54906003)(6916009)(6496006)(1076003)(316002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YnFENGlkWE9JQzc2N25DUjJsQUFhTXFRakJUL1cxdDEweFZiQXlYb29vdkhw?=
 =?utf-8?B?SFN4bEVTV0lnQThKb01OTWVDS1R1OWdQbGtWbE9SV25pamdtaS81UE5iMUl6?=
 =?utf-8?B?VUsybDdiNkQweVJlcEhSdUpZVytvN0wxWWgrb3FVVElBTTVkbjhMb2hwbyt2?=
 =?utf-8?B?MWVPTjhYeDlHQ2hvM3luMVBiR0RiOHVYemgxMUtSZms5Wld1THV4NnphS0hs?=
 =?utf-8?B?Sit1YlRYamhxS1ExUFVpdXNKZk9aR1R1NHIzeVFnYUJ5cmxtWng2eVRJZHh1?=
 =?utf-8?B?Nko1cmFSU1QvRDV2eCtOelBaeVNudUdXdE4yNVhaODhKV21hakEwVmZ1NFVZ?=
 =?utf-8?B?Zk05dGNycVJZWWpQWVdIbkFscUpGMkpOV2tMNEZaRVhGNU15dm1OS0pONWt2?=
 =?utf-8?B?T3Fxa1k3dTVuUU5kc2FiT0IzcFJKOE4xRnZEdDFYeUNSdGMwMldqOGl4aU4r?=
 =?utf-8?B?ZEJtT25mNCtEcHVjREM4dWFLVHRDbzFGaEduNld0QlFWeGsyNEUyb0FPUE5x?=
 =?utf-8?B?T05WSDJ2NjFpOERtWUhuZGNjRE4xMk5iSkgzMVJPWHNSQW5GeGFyd0ZqYlFz?=
 =?utf-8?B?OC9Lci83SytySnRpaHp3bnQ1TEN2cXVkeTJTcklaWHJEbUI3eUxwTkU0T3d4?=
 =?utf-8?B?Z3IxWXE1UXM5a05XeGw3OGR2MWxvczcvN0p0OU53dzl2d0RwclNNRitGUzlN?=
 =?utf-8?B?cTJ2djJJLzJvN0hiZDZxU0VxN3JJT2V5Lzc0N0tRL0h6dURHSEVER1NmcnZT?=
 =?utf-8?B?cTBaNWpwN0xKSy94WHFsYm1ORkEvaHN5N0RKZlduelU4ZHpvbmlDZXVKb0xp?=
 =?utf-8?B?T0xkS3dITnRHMmtEdU9MRnNKK1BZbDhWam9oWEMzUUc1OFZhVldrL2VIeHQy?=
 =?utf-8?B?ak1rOGFzL3dnc3RCZzJVcDd1ajRCclA4UXlCN2F0K1VqTlJuVEt5L21rY0Jn?=
 =?utf-8?B?c0ViR05WU0Fua3o5Y0llamVBVmVVUk1CVXBzdjJsSlQ4c1BwTjArV2h2U0lJ?=
 =?utf-8?B?M0JXb0s0cUd6cmhBN3p4WkFES0RSMmlvMFRkbzUzaUdtTVdYQ3lCK21zTDdl?=
 =?utf-8?B?Qm1Ld2FNUjVxQ3lSaFQzOVl0cWtEM2szNjYzdWkvMjlwd2o0L0hyQUhucVlx?=
 =?utf-8?B?M3RkQmRBQlY4QitTWmtvaURxZkZDTmlFMTZmMUJTb3NaNytHSHFoNkUxYTBr?=
 =?utf-8?B?RENXR0dvNlJaSUdPcGNoS3hsV28wbHAxNjJmMmVuRFNCQ2RaenVocEdFWUNT?=
 =?utf-8?B?TTVmVEVQQnQ5ckRUM2hOQzk4K0xUcEZBNndlSkpsRENQejNIZ0xxZFlkQmpT?=
 =?utf-8?B?MjVUUXVsUmVUUXN2RkhYQWlXZUR1YTkxRGdWblRVdGFkNDRWejFYakIxSTlH?=
 =?utf-8?B?UWlHME1OWldxMU1ZS29ncTdWakw4M1JKS2x6OGQzR05HbytoZHBKaFRibDdX?=
 =?utf-8?B?ZXZoTWdYOGx1ZzI2eFEvUzFMU2pDRFNqUlBveXpGR0IvajZlTXZmdFlpRzdy?=
 =?utf-8?B?NnRlaEh0bFpjQms1ZTY1aWQ4aHliY3cyaHNneWpCS2lWUEpwdmdCRkcwdmRQ?=
 =?utf-8?B?QUV2dGt4ZWRzcU1MRnhuWUVqeldTVFVBR0liTXdKVDhnMC9rNmpuVTFRUVo1?=
 =?utf-8?B?NXNVMmlyMkVzSnN0dWxDSWVubmRQZ1dUUnZYMjlQbTlmYndncVlra0xodzEw?=
 =?utf-8?B?dkJaQWFIWHQ4VS9sWmc3M21sL3lNTnJYRGVmSFRvbmtSZWRleXBlektDNWtF?=
 =?utf-8?B?Tk9IVkVDQ0VjNDlsakRuTlk0TnEyemsvVXVnY2x5eEhGRVp5eUdEMEVMQVZ1?=
 =?utf-8?B?cCsreVhPdUdRT3NaaGF4NFFYUjd6d1pITDkwM3ozWlNFMDNIUkorbVBQN3lM?=
 =?utf-8?B?NVpiY2IzUHlkR3RQbHMyY1ZuZC9VRXo3K3h0OFk0TjdkVDM1d00yQmJIS2VB?=
 =?utf-8?B?MmFrcnQ4UDJ0djJmT0NFUWFGV1dxVWRIakgwVDloRUNBa24zZ2RGMjlNNWR0?=
 =?utf-8?B?Y1ZieC93TnB6T0xsRUU1dzBhMUlVaDlXZXQyZlpyQ0pUWkwrWEVjenNUVy80?=
 =?utf-8?B?RkIvZnRIQjZjL0hVK1NVWndQb0tXTlltS0JCcjA2NmRhSWJ1K3RQVUVNckFB?=
 =?utf-8?B?b2dZSkluVVhmcUsxdHFGbXhaSHNOdGl2aTI1VnZmMkNGSG41aHNoKzMrWUNT?=
 =?utf-8?Q?HRKRJepCuDDbh6vHPAjp3Aw=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: ac5ba0ec-23c0-4daa-109f-08d9a831f37c
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:17:54.3395
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1rdSur5iKQFlARGtuv6rtdZymRNLtdVftr2+Ka7ruKZA6FIB0KuQLKmUiKfJWorRADF7ciU7jNDhe2ezRN/e9A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3483
X-OriginatorOrg: citrix.com

Hello,

The first patch introduces some syntactic sugar for setting the max
grant version on the domctl, while the later 3 patches fix missing
occurrences of xen_domctl_createdomain that didn't set the max grant
version. It's likely patches 2 and 3 could be squashed.

All should be considered for the release, or else we need to revert the
grant table version per domain change.

Thanks, Roger.

Roger Pau Monne (4):
  domctl: introduce a macro to set the grant table max version
  tests/resource: set grant version for created domains
  test/tsx: set grant version for created domains
  tools/python: fix python libxc bindings to pass a max grant version

 tools/helpers/init-xenstore-domain.c |  2 +-
 tools/libs/light/libxl_create.c      |  2 +-
 tools/ocaml/libs/xc/xenctrl_stubs.c  |  3 ++-
 tools/python/xen/lowlevel/xc/xc.c    | 10 ++++++----
 tools/tests/resource/test-resource.c |  3 +++
 tools/tests/tsx/test-tsx.c           |  4 ++++
 xen/arch/arm/domain_build.c          |  4 ++--
 xen/arch/x86/setup.c                 |  2 +-
 xen/include/public/domctl.h          |  1 +
 9 files changed, 21 insertions(+), 10 deletions(-)

-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:18:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:18:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225844.390097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmaw2-0003aA-Cu; Mon, 15 Nov 2021 12:18:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225844.390097; Mon, 15 Nov 2021 12:18:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmaw2-0003a3-9y; Mon, 15 Nov 2021 12:18:06 +0000
Received: by outflank-mailman (input) for mailman id 225844;
 Mon, 15 Nov 2021 12:18:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmaw0-0003Jk-IK
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:18:04 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13e2f775-460e-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 13:18:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13e2f775-460e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636978683;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=lZSLzPotCUBY3Vnx1J2++/vMQm77kTSn9w3qEXwV5wk=;
  b=EpPyw74oI+mgP4/cp6T/hxTcjYsOf8RiRWGzLljhsdLomUfXxroZRUAQ
   uebozGweDlbEWU1UDx1IJOw3493H6T0j0EgUBBmi5F9MJy2H+WPGJk3SC
   qXQhfXEb2tudVmYJgyKgsGNuCVuAAVtvAnybxryx4S2VngjE8uweOP6iq
   M=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: QbXkihC61si4/Kl5s8QhtcoAC/pxRcPd1rJw9iSPPsZRPZbTLT6bWE5nz6eKRw3JHmvoT19DFI
 NGQnERbxtW3tPWYN0OZkvrF8w06qBLPneh9s5oHOlL/FUEbvM7ztkiqMDuQuiHdsdz+12MegUM
 RydlWB6p5qnaArWyKYTiEDN5whSGu1HfszUXboRRAl6fQIGs0g5o97e8BfRhrjgtwpG5BA5KIR
 9bJJCd0M9SAbaQ8H05x5jQ/TPL7HgtcLOVf1wh+JJ3cjk6EvKmTy0nv4ljV+oOOHTUNONVS8eb
 43loXXxWunzWjLt8fJcd6lJ/
X-SBRS: 5.1
X-MesageID: 58216521
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ZbBERKpQ/h6qxQmEEAbHcwiE5OFeBmJ1YxIvgKrLsJaIsI4StFCzt
 garIBnXMqqJYzD1ed1+aYS28UwPuZ7UyYdhHQU/+3s2HyJD8JuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IHkW1rlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnZOiEFszJPbFoekMSwhpDS1AZf0f5JaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFJkYtXx6iynQEN4tQIzZQrWM7thdtNs1rp0eR6+AO
 pBAAdZpRBXgey13HggIM4IdsbqSrXnjKDBZq03A8MLb5ECMlVcsgdABKuH9dtWUSO1Pk02fp
 2aA+H72ajkYO8aY0iGt6W+3i6nEmiaTcLwVELq05/t7mmq5z2YYCAAVfVajqPz/gUm7M/peN
 E486icotbI19kGgUp/6RRLQiHSJpAIGUtxcVegz8hiQy7H86hycQGMDS1Zpd9gOpMIwAzsw2
 Tehj97vQDBirrCRYXac7auP6yO/PzAPKm0PbjNCShEKi/HhqowuihPETv54DbW4yNbyHFnY2
 CuWpSIzg7ESi88j1Kih+13DxTW2qfDhTBMx5wjRdnKo6EV+foHNWmCzwQGFt7Aadt/fFwTf+
 ihf8ySD0AwQJZ6fzXCXWr4EJby4/+e0LjHi2Q42A7B0olxB5EWfVYxX5Th/ImJgPcAFZSLlb
 SfvhO9B2HNAFCD0NPEqOupdH+xvlPG9Toq9Cpg4e/IXOsApHDJr6h2CcqJ5M4rFtEE32Z8yN
 p6AGSpHJSZLUP83pNZaqgp07FPK+szc7T6LLXwY507+uVZ7WJJyYe1aWGZilshjsMu5TPz9q
 r6zzfeixRRFS/HZaSLK64MVJl1iBSFlXs6n8pAJK7LdflYO9IQd5xn5m+lJl2tNxfs9qws11
 ivlBh8wJKTX2BUr1jlmmlg8MeiyDP6TXFowPDA2PEbA5pTQSd3H0UvrTLNuJeNP3LU6lZZcF
 qBZE+3dUqUnYmmWoFw1MMiixLGOgTz23GpiyQL+O2NhF3OhLiSUkuLZkvzHqHNTU3Hp7JRm+
 NVNFGrzGPI+euirN+6PANqHxFKtp3kN3uV0WkrDON5If0vwtoNtLkTMYjUfeKng8D3PmWmX0
 Ri4GxAdqbWfqoM56oCR16uFs52oA611GU8DRzvX6rO/NC/7+Gu/wNAfDLbULG6FDG6kqr+/Y
 eh1zu3nNKFVllh9rIchQa1gyrgz5oWzquYCnBhkBnjCc3+iFqhkfiudxcBKu6AUnu1ZtAK6V
 1ih4N5fPbnVasrpHERIfFgub/iZ1OFSkT7XtKxnLEL/7S5x3byGTUQNYEXc1H0DdON4adp3z
 /0gtcga7x2EpiAratvW3DpJ82msL2AbV/l1vJ8tH4K22BEgzUtPYMKAB3auso2PcdhFLmIjP
 iSQ2PjZn71Zy0fPLygzGHzK0bYPjJgCokkXnloLJlDPkdvZnP4nmhZW9G1vHAhSyxxG1cN1O
 3RqaBIpdfnfoW8wiZgRRX2oFiFAGAadqx74xFY+nWHES1WlCz7WJ2onNOfRpE0U/gqwpNSAE
 G10HIo9bQvXQQ==
IronPort-HdrOrdr: A9a23:myNMnarls/ItToLAXxr9/5saV5u3L9V00zEX/kB9WHVpm5Oj+f
 xGzc516farslossREb+expOMG7MBThHPlOkPYs1NaZLXXbUQ6TTb2KgrGSugEIdxeOk9K1kJ
 0QCZSWa+eAfWSS7/yKmDVQeuxIqLLsndHK9IWuvEuFDzsaFp2Ihz0JezpzeXcGIjWua6BJcK
 Z1saF81kSdkDksH4mGL0hAe9KGi8zAlZrgbxJDLxk76DOWhTftzLLhCRCX0joXTjsKmN4ZgC
 f4uj28wp/mn+Cwyxfa2WOWx5NKmOH5wt8GIMCXkMAaJhjllw7tToV8XL+puiwzvYiUmRoXue
 iJhy1lE9V46nvXcG3wiRzx2zP42DJr0HPmwU/wuwqqneXJABYBT+ZRj4NQdRXUr2A6ustn7a
 5N12WF87JKEBLphk3Glpj1fiAvsnDxjWspkOYVgXAae5AZcqVtoYsW+14QOIscHRj99JssHI
 BVfYDhDc5tABGnhk3izyxSKITGZAV2Iv7GeDlNhiWt6UkUoJgjpHFog/D2nR87hdsAotd/lq
 L5259T5cRzp/ktHNRA7dc6MLmK41P2MGbx2RqpUC/a/YE8SjnwQs3Mkf8IDN/DQu1+8HJ1ou
 WZbG9l
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="58216521"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cuFMl7v1hjy4JgWw4X7OP7QEmNw7+FmBeKSOvBWMBsg9H3dh9cMYpxqcht6al44q8bUU2KSsZXImGJOPimlDEGNwvY8fO8is23ROQmiBvD4q0ldSBcS0CTZ1onCod7/v/Z9XaoHA5FJ2IHh0giFTLXYBupmgxw4oqYSCux7qZpLbdXr76LtjS+4V0LBLDs8O4K9ztyYjgjp26zWKWc+/+/bi1kF9dVLcJNhNWit9Yo1JkABMgSXBrww70mPsCEFb8/5vGIZuG3KJ9Eq2zhVmnqVSMbin7lDnMt10kSvdZDXSVTiMXHf1xgCBer16RzjVrhGDGcoAJFk/1LxOXswcWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J7YKl3TZjUGOEVn92cpS9NgBaIkzP5wzuawrDSqqVDk=;
 b=C4f+1dBGO/n3j7UyhTt9Sze3sccsoJYBM+4ySPhdsmwsT17dirdghXEiwFLLdQ7h6jVYAOhFO+nC+oxIICls1PcXeM/iJIOnoKv+LR1updWTK8Jgn4EGvGPPMpsuEviW/2kqFDy+dC/rjxx4BxS2qEO2w/Svr0g6evwhKJb8u8QEL7kJ2MzZSeDYuyhf22XP/d5OWPLVggFhnE19Ap2A27r7aUEgpD4p/Gm7PoluIX/VnbEwb5MtLQh8O+7Zb9ae71Cjl0gOZw/6FGuoKOZ6UPYGzH8eltL6NHaduhyXxUv6m3+WKWW72SCIRhi62kV99YD/JbgUIcWwRMOLH5qNuA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=J7YKl3TZjUGOEVn92cpS9NgBaIkzP5wzuawrDSqqVDk=;
 b=s4J61Fofp+3IqnhZd7PX+psT8bBH5L0z6PUH+2kZTpmFC8bkEDa/1MpebyIyhHN+NrfgGhep5zJc10QQzo+AZLbP6t0DJ3WUfufX2nRPyS02mgjHnFZb4fDglS1RlWPvG3PspoyeVvtm8S97rfkk9U9Q3S2hLaLWAEphG8yxu68=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, Anthony
 PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
	"Christian Lindig" <christian.lindig@citrix.com>, David Scott
	<dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Ian Jackson <iwj@xenproject.org>
Subject: [PATCH for-4.16 1/4] domctl: introduce a macro to set the grant table max version
Date: Mon, 15 Nov 2021 13:17:38 +0100
Message-ID: <20211115121741.3719-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211115121741.3719-1-roger.pau@citrix.com>
References: <20211115121741.3719-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0088.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::28) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b17be015-9b22-4988-3b92-08d9a831f5d3
X-MS-TrafficTypeDiagnostic: DM6PR03MB3483:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3483979105CFBED3C0F365498F989@DM6PR03MB3483.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: itAV2DJOM4rTlXTNQrKItAfNUmQmWIq+tUIPsO4A3vOJbERCKxnaj0s49xbdOq2JXg8x9nWE1PVQSrCmwB7VlNg2eneBadqwmtu5h5lUNbgHyTCFFTTeHEDBJNMgNWSa+9AFO598S5q4RLs+9C6HP9jhyHEmPdh5hk2T8VmZusLbX/IPzQBS9XShH3U30Vc4m04Q60souH9JzXgpHtPnadwzOwJDdskzUzq+/BY/VeZTfK8nnyscGqio9/SKOhLz97GVkAidtqXlw91kSG8cgCvTByA+QxFiGKALZKwUfX5k5n9xXQCe/b9zDDBHKn3kv9LJGXnhA8HioKSKBb/4rHWKRF/ZIVkBG2Fs4y5EOjcaJVvx7/v5X8P0FjuAe6mlmOJ/NxjrKwj7vCYtNT7i/vrEROD2iq2lPGCGo5wJVTuVEzrb+Fd8KtVqVU7mgztqBHI2JvAjitGveHoum1mCPRzJ08fYMAv5r8e2UzXAcLj3qWpc9uJbN9VJMnMDcbvSf9X8G67p+fiLfkDYDQQrguhkGkYDucLYdiP0XPYLtzujBusnfnDtotYLpWvvSmTuZVKbqcYoEAPi+RSCtirJcCGngDPvExjhM2MquOGUQ73EZ0CAiAfwaj4U6lBWgxz2jYM2vgnWdKjl0HF3KHINPg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(26005)(7416002)(82960400001)(86362001)(38100700002)(66946007)(66556008)(66476007)(186003)(2906002)(508600001)(5660300002)(6666004)(4326008)(6486002)(8936002)(36756003)(83380400001)(2616005)(956004)(54906003)(6916009)(6496006)(1076003)(316002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?S3NSV3ZJZWhoMTBIZXFYeCtMUWVOMEVaUXo1Mk9xTXorMXR1VGhTNmNiQXhu?=
 =?utf-8?B?Q1lDVThFbFU0bWNPVEFaaTZncGdzMjNDNlA0WFkwSTVQZVdCKzRkY05OaTZT?=
 =?utf-8?B?OXErWUl0UFZyemwzT2JRUGRKZ0VPUmhpQzFlQTJNUm81UFF6eXVIUFZ3aG5u?=
 =?utf-8?B?dXU1cmFoWUNRQXBubmlhMERDV0VISUVtOTNkT1oxSTVQdS82M2ZZb2ZrMHB3?=
 =?utf-8?B?R1R4Q1c2YkoyZVh0cHZvczFUc2pVd0RIK1E1dXQ5RWh1a2xSZ1lPUnYwbVRr?=
 =?utf-8?B?TVd5TE40SlN0M3lzckljZGxHbzhuTHQ3V1V6ZkxDL2IyWVlWT0xESFlYZ2dS?=
 =?utf-8?B?SUZOcDExR3RuU01hMzlONUJ4c05pMFJkOXI4WWFQUTRSSGJuM0VwRkZFaGgz?=
 =?utf-8?B?VmhqcHFjMDJxRkp6cUR3dlNldmRDUlVsbWZYYkdEenNNOFRZUTdXbVlBOWNZ?=
 =?utf-8?B?ZWp2VEF0QVdyT2JZY1l2cHNjZlF0cUptUnRQTVBmbXRVNDB1UEtDSGJXRXkr?=
 =?utf-8?B?S25wMTlHRGxsWWtCd25ZSUIvcU5pU3EyVVVDd293aG5EdTgvd0g3S1Jway9t?=
 =?utf-8?B?bzQ3a0tSSTRpUS8rTkdwaDhKOXo1b2kyMWFRQlpFZ0oxOHM2VE5RUVRrWHN1?=
 =?utf-8?B?SHk2dmFIOHgxTnRyTEE1TmZDVE1HYVBtSnlmS3lKTnk5TGtFTEFZUHBuanNR?=
 =?utf-8?B?V01ja0RoVDRTMzRGbUkydk8yY3VTNDFrRlRUZExSMWVCU3phdFBqTEg3N2pC?=
 =?utf-8?B?RFFkY2JLbU5Qbi81L0YxRFdCc2hnNmg1ZHJxM3RPUmRsRlowa1JkbGZEVHhw?=
 =?utf-8?B?cUFLdUdtSG8xdkQ3YjRuSzdLQXZ2Q2YvZE1QSktOV2oremxFTENCZkRkTnRF?=
 =?utf-8?B?L2R6UU9QOVJIRm5CN0NlODJ2Ui9PZzMyUElqUlBxS2Q1bGxpUjA2d2wyQlVL?=
 =?utf-8?B?Q25xUnduRVhHaG9ZUmpoeVJvcm5TOGZESUdqNEhPZVdWc1lCSXFpYWh5T2hL?=
 =?utf-8?B?U2t1amgxTFo5VW82RHpyUWdLRnkwZWJoeGQzUVdTWC9RUlpybVhxcXBNaGJH?=
 =?utf-8?B?UDBZaXZLd09jQktrQS8veWxEQXdHWlcrazRGVUI1KzV3Vkh2ODJETjEycjQ4?=
 =?utf-8?B?K1RBaHBrSDMvQmc5SHZnNEVXbjEydmRNNGkwcVdhd2E5RWRyRmJSRWswdjE4?=
 =?utf-8?B?N1ByNkl1U2JZZjZpQVovenpyTnZKUmNGYkpjMTBvNWNGSXJmU1QxSC9vV2Rn?=
 =?utf-8?B?d2tHV0lnTDVoQVZCUkNHUFN2alZsd2k2eDF3U29vOUdad0grMEd5ekE0cEQ0?=
 =?utf-8?B?UVdXN1g0dTJKZkJsNTBldm0rTXIwWDFRTTdyMWF0ZlRESlg1UG1XZnc0aTVJ?=
 =?utf-8?B?eU8vUWtGVXNzRytxemU3bFpRNjE1cHkvd1kyendER1l5ZlloNy9PK3k2YzE2?=
 =?utf-8?B?SS9ia3RIaFM5c0lGTVhDVWZkMmFZaVBHTGIzV0dOZGpnUlVGVjRzK2tMR0ZQ?=
 =?utf-8?B?MnlKQmJKSWg0S2pzWk92Q3VZaCtTUU8reGpvMDVTNStHNExhbzl4SmhvMG5X?=
 =?utf-8?B?UE5wSVQwcEZWR0JYNC9vZjEvbU5mTXBCc0hwRnVTY1JXdUhLZGV1SEFkUWw0?=
 =?utf-8?B?U3JUZWR1eGdkNlZXWGVMbEFzWWJWbDZxOEdXTkRmZzZsZGNub3VKRlpOVWw3?=
 =?utf-8?B?dzhuNGJ6RGlXNiswYU03S05rUDVrTTNjWWVlOTFEQms5TW5reElqQ0xkbGZ3?=
 =?utf-8?B?dTFNaldqdnNKdXpjNU9wOVhwd1owNXA4UTZnOC84VmkvMUR4M21xejNZZ2tZ?=
 =?utf-8?B?QmZ5b0djcmdhVnRQWVZDYy9LVytiM3hSTEp1c0tHQ2ExclNvZ0NFQk1yQ2RY?=
 =?utf-8?B?Y2tvY1JCYWJWWmNnN0JYdUdQY1MxdEpDZTd3S0QvajBEd0tGQlBzcUk0Sy9E?=
 =?utf-8?B?eEJTalNydk96bHFJTGVwVWdvNnJLck54UjdEbTAzMWptOVFwbTNFaGM2SnhJ?=
 =?utf-8?B?T0d3WGhxNU81eEVaL082dFMwQnNOVGpvcS81MmJsWjJJQ3RqNmxSb0V4S0Rn?=
 =?utf-8?B?WlVnMTZwczd2UW1rSWJDS3RGVWJSVDF0RHQ3Ui9sQjZJVlZPUVlJSGd2SEFx?=
 =?utf-8?B?MUVPNzcxdkJJSVN6UXJqNGxQQnJYWVhMUXZCclRCajYxTW1mWW5GNmtINElL?=
 =?utf-8?Q?bBdEDhXVQVk/z+pYDWAr5Nc=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: b17be015-9b22-4988-3b92-08d9a831f5d3
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:17:58.1647
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YWMTkHdRfZ88vKGwLKnGksur7d+fJmpRffMh5kzkxPR/UuB3/1iCgTI2VJvi91mNntyBOS4zSCVcTjgmnszUmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3483
X-OriginatorOrg: citrix.com

Such macro just clamps the passed version to fit in the designated
bits of the domctl field. The main purpose is to make it clearer in
the code when max grant version is being set in the grant_opts field.

Existing users that where setting the version in the grant_opts field
are switched to use the macro.

No functional change intended.

Requested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

Given it's a non functional change (or at least that's the intention)
it shouldn't have any impact on the release, it's just syntactic
sugar.
---
 tools/helpers/init-xenstore-domain.c | 2 +-
 tools/libs/light/libxl_create.c      | 2 +-
 tools/ocaml/libs/xc/xenctrl_stubs.c  | 3 ++-
 xen/arch/arm/domain_build.c          | 4 ++--
 xen/arch/x86/setup.c                 | 2 +-
 xen/include/public/domctl.h          | 1 +
 6 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/tools/helpers/init-xenstore-domain.c b/tools/helpers/init-xenstore-domain.c
index 60469161bd..b205a79ee6 100644
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -89,7 +89,7 @@ static int build(xc_interface *xch)
          */
         .max_grant_frames = 4,
         .max_maptrack_frames = 128,
-        .grant_opts = 1,
+        .grant_opts = XEN_DOMCTL_GRANT_version(1),
     };
 
     xs_fd = open("/dev/xen/xenbus_backend", O_RDWR);
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index b6855c7b46..dcd09d32ba 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -629,7 +629,7 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
             .max_evtchn_port = b_info->event_channels,
             .max_grant_frames = b_info->max_grant_frames,
             .max_maptrack_frames = b_info->max_maptrack_frames,
-            .grant_opts = b_info->max_grant_version,
+            .grant_opts = XEN_DOMCTL_GRANT_version(b_info->max_grant_version),
             .vmtrace_size = ROUNDUP(b_info->vmtrace_buf_kb << 10, XC_PAGE_SHIFT),
         };
 
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index eca0b8b334..5b4fe72c8d 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -199,7 +199,8 @@ CAMLprim value stub_xc_domain_create(value xch, value wanted_domid, value config
 		.max_evtchn_port = Int_val(VAL_MAX_EVTCHN_PORT),
 		.max_grant_frames = Int_val(VAL_MAX_GRANT_FRAMES),
 		.max_maptrack_frames = Int_val(VAL_MAX_MAPTRACK_FRAMES),
-		.grant_opts = Int_val(VAL_MAX_GRANT_VERSION),
+		.grant_opts =
+		    XEN_DOMCTL_GRANT_version(Int_val(VAL_MAX_GRANT_VERSION)),
 	};
 
 	domain_handle_of_uuid_string(cfg.handle, String_val(VAL_HANDLE));
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 19487c79da..d02bacbcd1 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2986,7 +2986,7 @@ void __init create_domUs(void)
             .max_evtchn_port = -1,
             .max_grant_frames = -1,
             .max_maptrack_frames = -1,
-            .grant_opts = opt_gnttab_max_version,
+            .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
         };
 
         if ( !dt_device_is_compatible(node, "xen,domain") )
@@ -3094,7 +3094,7 @@ void __init create_dom0(void)
         .max_evtchn_port = -1,
         .max_grant_frames = gnttab_dom0_frames(),
         .max_maptrack_frames = -1,
-        .grant_opts = opt_gnttab_max_version,
+        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
     };
 
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index ec6e686fac..da47cdea14 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -755,7 +755,7 @@ static struct domain *__init create_dom0(const module_t *image,
         .max_evtchn_port = -1,
         .max_grant_frames = -1,
         .max_maptrack_frames = -1,
-        .grant_opts = opt_gnttab_max_version,
+        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
         .max_vcpus = dom0_max_vcpus(),
         .arch = {
             .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 1c21d4dc75..b85e6170b0 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -99,6 +99,7 @@ struct xen_domctl_createdomain {
 
 /* Grant version, use low 4 bits. */
 #define XEN_DOMCTL_GRANT_version_mask    0xf
+#define XEN_DOMCTL_GRANT_version(v)      ((v) & XEN_DOMCTL_GRANT_version_mask)
 
     uint32_t grant_opts;
 
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:18:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:18:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225845.390109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmaw7-0003uu-Pn; Mon, 15 Nov 2021 12:18:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225845.390109; Mon, 15 Nov 2021 12:18:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmaw7-0003un-Li; Mon, 15 Nov 2021 12:18:11 +0000
Received: by outflank-mailman (input) for mailman id 225845;
 Mon, 15 Nov 2021 12:18:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmaw5-0003Jk-Uj
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:18:10 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 171fc9a9-460e-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 13:18:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 171fc9a9-460e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636978688;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=7z1JPGMnhV7uL/wfP7hPi57McTJLA6tOf59rupDkB/c=;
  b=hP0PkOGJYkr026csnR/SyfG5h2Rn04bVWlZ+IXLHzNTZx5prAcPwWves
   i5hUD1tkLQx02B59EBS9TbwEk8XGvHV+yasGm33mbAjdRwo0ZtEwJrKql
   YDwCs9lN0jFXYtNXlc6ccRNwBVAbzd+ZeX72cUyfk7uQMimE8iuHoQ6IW
   U=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: lnaTf9JugqIw30lczTknGZlpRRvsV2eiy0fgwzRCPqzA0CnwRKGiEurgF0BQS5N52jP+qmitVw
 NMRB0Pw7ZwH8mWSE18cFCy659WmWXiZ9qCgwqqr1wL8ABX4eEO3Bhq0KWRJgA3QxO/Kh4pPANv
 LLWO+U2FzPoClk4AExa0um748k+EcQlsJUPrJz366NW7IRU2VWM/xC/yCXzBnTOdtud7OO7Leo
 XhS5fpoNcZOSpVYtTpAMUUFAvXHPK8btqSgz+Yu+Do6qh17WTV8httuNfDNLJfGXx3e1MMBTte
 //3PC2HEiS0TBoqHvyAMG0BG
X-SBRS: 5.1
X-MesageID: 57350302
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:hKOc2qhSR3x1A41sf4f2cO68X161sBcKZh0ujC45NGQN5FlHY01je
 htvXj2EbPuKZmqne9tyaoq+9B4BuceHx9BlHFBrqSo9EXgb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cx3IDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /0W7KCPRxoSMJfhhcYTSERePyEvZ7NJreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2ZsTRa2GP
 aL1bxJoVh/+bBhvKGsxUrtjjsXvn1vvLSZX/Qf9Sa0fvDGIkV0ZPKLWGNvKePSaSMNNhEGaq
 2nauWPjDXkyK9i32TeDtHW2iYfnjS79HY4fCrC83vprm0GIgHweDgUMUlm2quX/jVSxM++zM
 GRNpHBo9/JrshX2EJ+tBHVUvUJooDZHAuZvHfAB5jug14ja+FufKmhVFCBOPYlOWNANeRQm0
 VqAntXMDDNpsaGIRX/1yop4vQ9eKgBOczZcOHZsoR8tpoC6/dpt1k6nosNLSfbt1rXI9SfML
 ydmRcTUr5EaloY12qqy5jgraBr898GSHmbZCug6N19JDz+Vhqb4P+RECnCBtJ6sybp1qXHb4
 xA5dzC2trxmMH10vHXlrB8xNL+o/e2ZFzbXnERiGZIsnxz0pSX9LNkMvmwiehs1WirhRdMPS
 BWJ0e+2zMUMVEZGkIctO97hYyjU5fWI+SvZugD8MYMVP8kZmP6v9yByf0+At10BY2B3+ZzTz
 ayzKJ72ZV5DUPwP5GPvG481jO96rghjlDi7bc2qkHyaPU+2OSf9pUEtawDVMIjULcqs/W3oz
 jqoH5fQlkgEDrShOnK/HEx6BQliEEXXzKve8qR/XuWCPhBnCCcmDfrQyqkmYItrg+JekeKgw
 513chYwJIPXiSKVJAOURGpkbb+zD59zoWhiZX4nPEqy2mhlaoGqtf9Ne5wydLgh1epi0f8rE
 KVVJ5TeWqxCGmbd5jAQTZjht4g+Jh6lsh2DYni+az8lcp8+GwGQoo34fhHi/TUlBzassZdsu
 KWp0w7WGMJRRwlrAMvMRuioyle94SoUlO5oBhOaKdhPYkT8toNtLnWp3PMwJsgNLzTFxyebi
 FnKUUtJ+7GVrtZsotfThK2Co4O4KMdEHxJXTzvB8LK7FSjG5W7/k4VOZ/mFIGLGX2Tu9aT8O
 egMl6PgMOcKlUphupZnF+o51ro34tbiquMIzglgG3mXPV2nBqk5fyuD1MhL8KZM2qVYqU29X
 UfWootWPrCAOcXEFl8NJVV6MrTfhK9MwjSCv+4oJEja5TNs+OvVWEpfCBCAlShBIeYnK4gi2
 +og5JYb5gHXZsDG6TpaYvS4L1ixE0E=
IronPort-HdrOrdr: A9a23:Kcu0IaBtzYjWTLblHegwsceALOsnbusQ8zAXPh9KJyC9I/b2qy
 nxppgmPH/P6Ar4WBkb6Le90c67MAzhHP9OkPUs1NKZPTUO11HYVb2KgbGSpgEIXheOjNK1tp
 0QA5SWaueAdWSS5PySiGLTfqdCsbv3g5xAx92uskuFJTsaGp2IhD0JbDpzfHcGIDWvUvECZe
 ShD4d81nedUEVSSv7+KmgOXuDFqdGOvJX6YSQeDxpizAWVlzun5JPzDhDdh34lInxy6IZn1V
 KAvx3y562lvf3+4hjA11XL55ATvNf60NNMCOGFl8BQADTxjQSDYphnRtS5zXwIidDqzGxvvM
 jHoh8mMcg2w3TNflutqR+o4AXk2CZG0Q6r9XaoxV/Y5eDpTjMzDMRMwahDdAHC1kYmtNZglI
 pWwmOwrfNsfFP9tRW4w+KNewBhl0Kyr3Znu/UUlWZjXYwXb6IUhZAD/XlSDIwLEEvBmcEa+d
 FVfYPhDcttABanhyizhBgq/DXsZAV8Iv6+eDlAhiTPuAIm20yQzCMjtYUidzk7hdQAoqJ/lp
 H525JT5cdzp/8tHNBA7dg6ML+K4xT2MGnx2UKpUB/a/fI8SjjwQ6Ce2sRD2AjtQu1Q8KcP
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="57350302"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aJuJ5J4fhHH4+E4AWC7V5AxtZYI29OU+RSIxexoCe23jgkkSyjSpUVqTMTRpPDYofc3BqcPRxzYBNcsSk36zp2olUv+N/dgz8MO6lJ+holOpmKGDXfUW66bYZUWzXNGe6EUrZb85ErbEGS/bbvGRBTsCEgni6+3eofalX0uZ/Mz9YTfI5pyKljvwfDku8lqFVixnUbuiCswYwNxSA3GUfhQmLTbYMJwI1X1PhCtWMXPcbezb2fKzofxLBpjgmFFYKeN+UG/2DXk/P5INHv6qMHjtDfwROPB+5vi4DCgIWwcjIvkrRdVwhVF1xl+01mZhrXZ14PhRLgxpFcPqsKq3ZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KP1YxRQhjMVUUIJX9G+se3cuqgQsalV6OrLji5NGW1k=;
 b=QKdiaMnmGG5WaK6iuYw92jaWXiUObsdeEiTd0dGuXZPR9OJyomCouUCYxuI6/inWJz60CkOAca4cYwzY7gHEgFJ+6nsNmZkRh08AlFiVbgA3RbqbJ3QUhI3Z80YCLTZooTgAiAFcOs4C9NGTh34oNw2sSJYPr75nWYveRuV+GCr4qR3Hv+SNOId+JFopT/SROj4tFodjIDE01M5oVF//4ZlCl7CMk/QjFcq/wkc49WuybYcO9sOuXerScbEVZCr1FAIH54qrhahgHY3VwO1ooUk/nWqJ6hKpZpompTAIg89t0YZO0zlnAbX9Kf4XFbEZgKis+Z00pkoaPO4QITFIUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KP1YxRQhjMVUUIJX9G+se3cuqgQsalV6OrLji5NGW1k=;
 b=kDcPFirW/l2SRhdf2ye/a5SeoQfCzu8PWaK7PwHzYM3LqcVtItMxjTEWxqnqW46sQ+PdNz3bRaIRObCsq8DrFDEzZjKGGdQEFmVdmXTmWC5ZXK155DJU6/FOeWHGlVxLhnLjk8pr0dcSFgEcp+V4QbxGDbhLV2reqiOYXXhoZCM=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Ian Jackson <iwj@xenproject.org>
Subject: [PATCH for-4.16 2/4] tests/resource: set grant version for created domains
Date: Mon, 15 Nov 2021 13:17:39 +0100
Message-ID: <20211115121741.3719-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211115121741.3719-1-roger.pau@citrix.com>
References: <20211115121741.3719-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0002.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::14) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 52a5223f-4daa-4e0b-fc3a-08d9a831f93d
X-MS-TrafficTypeDiagnostic: DM6PR03MB3483:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3483C01A0AFE9924C83C6B638F989@DM6PR03MB3483.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2276;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: NOGYlcLjwM/9jnKheMxueMjE+KS4+6aiXhmAtVsc8+TCj9M2N71GGLq6eOSTDykH7hQhJZeAVgQopF1f9qfL7nKkWVl3yqB0H20tJYu9PLbjf2ekPtkl2lcI84T+j/doP93G6Gi/pkoDx2kXaQ97rh05F3ox1CNcrs4DkbI6OIaTzSOzONMZCWTWChCf+7iSr8e8LVqgxwpvg29+cXJzJZFCLKjp3B29xPLKXoKjKIIML2eK+AEZVrv6q/VjD42+VI7WR+QhB6jDaSoB38wl+PxkOAIcQi7ZcPoiTP69ndKYvaFf6nKO1axyrvv+2YAnaD2YWV7cnjuBEUANV65vdGUpUeo+/u2s7wFrecDS6cB5TdLXXw2/AeEy/dK+9YGr+7BKJWZKK6waoXCDzvgvF8PJgB0tMSOEBYz9hwylQwMGEkuNn2KS1vVLvQrm7y0e8Kwuru8GO/2S+GlS/lQZpMAIYb26+zIcurIAyemIq6CUyguwvSf2N4iLcizvF7HIlggJJbGULCjzU1OC4qRF/R8UgOBRI2b71NQIEVo2r+jWW8iq9IlURiybZwud96+xcVQBq9xLNQj55uU/3VcyUy7l5elbqH0ScCFU0XGPLLVyaUTCsiVZtnW2qvxtavOt02vts6qdq5JZGhpwUXswZw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(26005)(82960400001)(86362001)(38100700002)(66946007)(66556008)(66476007)(186003)(2906002)(508600001)(5660300002)(6666004)(4326008)(6486002)(8936002)(36756003)(2616005)(956004)(54906003)(6916009)(6496006)(1076003)(316002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eXhCU0tDT2lPYVArZG9BNzVVZzhScXVpSWtyekVYQzEvUWJYMENiWkxuYktI?=
 =?utf-8?B?ZDBGMUlkc3ZzRGp6SVpsZVIzWFI4cy90WEQ3RlM4VWxZR3UrOXZXUnVvUFUr?=
 =?utf-8?B?a2hRRFpESmpDRStvTzFxNHY4ZXp4QktYWG1jQllCeU5ITTZCWlV2SU9CNVh4?=
 =?utf-8?B?SnA5ZWxiM1JwYVNlU3lSaEhmSGRPdWFsUFRKQ3hFbVdraG5RUDdhSW55cCtO?=
 =?utf-8?B?MVF4L3plZmg4bVI0VnFNTml0aG9RTFlvdC9zWGMrOGVGVVJNTnMwOXdjT1Nh?=
 =?utf-8?B?b0pQbHBRT1V6LzM1emRrR3RIcXk0UDRDQk5mVjJ6TGNqVTh5Y0o1QzVFdUVE?=
 =?utf-8?B?WUVSVUFrOTE4UGJFMnNGdVlQaW5ibDFoVmxQN1dFTFR1YktOUXJtcU5xeTI0?=
 =?utf-8?B?WnU4Kzd5TUJrUUF4REFBNnVyZUVONFpmWUxqUHMvU3J1ZzZXaUZHMGUzczdO?=
 =?utf-8?B?TnlMR2RTbXowYTRqM3NpcGFhYWZLcnVSaWpNQW05UjY1K21oQ0tDU3pqT0Vi?=
 =?utf-8?B?cHRsc0toc08rcUNwRW5QVlp6Q2p2dVUvT3dZMjl0TFhIQXVURkhEWHdmd1p6?=
 =?utf-8?B?Z1NwUkFuSWd0UHhhL0NSbTZSZEh2S1cxRXVrZlhCdS9qMnY0WHZ0VjNKUWt5?=
 =?utf-8?B?Q3VEbFpsYVhrTnMyZUVLVndUVm15Zjg3OUJONGdtZXhpSEUxTlR3Q3h5MUpD?=
 =?utf-8?B?aEpDYTRqaVpHZVBobDd4UTBDMnAxV0xJaDFCT0ptZ3JOZWNyY1hncDhIR0Y2?=
 =?utf-8?B?K2JERjRjMm53ZHNncWFrZTVyanovSTluWUFvaW5xUk1MdHRkTUNiaVk2ZkNX?=
 =?utf-8?B?NSs3d25Bd1M0a00zVU54K0VVRXhyNURHN0xBQzk3WTVrR3I2Mlg0d0VxMDBp?=
 =?utf-8?B?K1VhTHkvZDZaV2hjTk1kUHdXTSs5dnVaTERDa1VwQmRBTkQ4clJtdEt0N1ZB?=
 =?utf-8?B?NHROa0NrSG5lbTN6d3N5cnFjbHlhcGdZTm1GRThTd2lJZ0NSd2xLZUh0S3lQ?=
 =?utf-8?B?eHlhSjFBUnpGSkVwRUJWRjBFWUQrekxqTFhZcFlvN2RwVnZ5bDB6djMzbGZl?=
 =?utf-8?B?MWhXeXk1WlF1VUZGcDU5NHdoUCtmUTdSSGYvTXE2RlVLWHNRSUhVbjFhQ3p6?=
 =?utf-8?B?dW1ZVUk0aXFUM0wrV0lYL2hHOFVkTkNkTmQvVTJEN21SNVE2NDhJcWpJcGxm?=
 =?utf-8?B?aFJvYjBqdGZyU2lod2xBKzRDSWI2WWcwZVZpODgxUFZEVjU4ZUtTTERNSjk0?=
 =?utf-8?B?UzFmZ280dmI3TklkeHRNeFVqTEU2TElSVlEwOGZIcnBkSVoxR3lyWlltRERU?=
 =?utf-8?B?akwzWEpEckF4cnMxc3V1RkVzZGU5SlcwbHh0ck1HVnBLYmZtZWdSYzE1RU5i?=
 =?utf-8?B?UUhFREZKMXo4OVdyZnhvbnhPb290WnZ1Z1EwL2ozbTlBOFp1YklxemJ4dUNT?=
 =?utf-8?B?NXVOd0VZSzZDbXNWcjkycEg1dGcxVFlZZkxRVUhhcjV6MzBvVjZxL1hLeTdU?=
 =?utf-8?B?WXRsUCtXQVloTUxVeU1zb2lMdFBwQ2crZzJKenVCei8yWXNsY25EdE1kemI2?=
 =?utf-8?B?eUdLaFpRSEFpRUhhOEgwc2EzdXFoYW1hNjUyTTZSNDB4dm9IRm1Za1VRbjY1?=
 =?utf-8?B?TFFkY2pTbFUwa2JHYlRQb1NsTWk4YTVZbCtRR2V3RUVnS1krWWs3bFNVc1Qw?=
 =?utf-8?B?UzZ0NXZlc2VraDdWcWM5SVBDakN5SmJwd0ZJZ1NKWEJjekRjQ1VQOUxSNDdZ?=
 =?utf-8?B?Y3ozN3J0NHNWT05XV0JmdnhwRVFudTFJZnJjOXNLSEJtMUVXMGEyRjU0akRs?=
 =?utf-8?B?QjMxT1ZGY1pOcDJ4QlR3TWgzTlV0SENpS2lsUG5oM2pFL2RpcWpqSVIyWjE3?=
 =?utf-8?B?N0dyT1owYzBQajJENFo3N2xYdWhqc3ZCTS8wbW02czBoRmo4T2lqaUFHRXJN?=
 =?utf-8?B?aXMza0o5ZDRZMm52R3BJcTBIWWNUdWU4Mmw0OGxLQXorNFlkQTRJdzNnZHN1?=
 =?utf-8?B?Vnd1c0NtNTVBclhENnkyQkMrNm5Vd2VJMkxQcEtnUm1LYmtuWUZ3dE43QlZH?=
 =?utf-8?B?RjVwbndxNDJ0L0xnWFV5NEEvVHQwU2UxOWYyWTFENHNZZEFmSHppZzRMelQ5?=
 =?utf-8?B?RGE3K0ZrcVVpNXU3Q21Pc0lqWFBrQys0RUdqSUloQ0R5ZnNDRjU4STQ3VnNu?=
 =?utf-8?Q?9hSdct9z9zBzQRy5O6mzDvU=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 52a5223f-4daa-4e0b-fc3a-08d9a831f93d
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:18:03.9801
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xtLP3Gucs9LgQlvZlDi8RRir9EoxSy/eXD3c8BODwHzHGALoPjG8Eb8YAQL4pcQ42Tj1mVaAWA8cSmljbJ5zCw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3483
X-OriginatorOrg: citrix.com

Set the grant table version for the created domains to use version 1,
as that's the used by the test cases. Without setting the grant
version the domains for the tests cannot be created.

Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

This patch only modifies a test, so it should be safe to commit as
it's not going to cause any changes to the hypervisor or the tools.
Worse that could happen is it makes the test even more broken, but
it's already unusable.
---
 tools/tests/resource/test-resource.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/tests/resource/test-resource.c b/tools/tests/resource/test-resource.c
index 988f96f7c1..0557f8a1b5 100644
--- a/tools/tests/resource/test-resource.c
+++ b/tools/tests/resource/test-resource.c
@@ -120,6 +120,7 @@ static void test_domain_configurations(void)
             .create = {
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
+                .grant_opts = XEN_DOMCTL_GRANT_version(1),
             },
         },
         {
@@ -128,6 +129,7 @@ static void test_domain_configurations(void)
                 .flags = XEN_DOMCTL_CDF_hvm,
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
+                .grant_opts = XEN_DOMCTL_GRANT_version(1),
                 .arch = {
                     .emulation_flags = XEN_X86_EMU_LAPIC,
                 },
@@ -140,6 +142,7 @@ static void test_domain_configurations(void)
                 .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
+                .grant_opts = XEN_DOMCTL_GRANT_version(1),
             },
         },
 #endif
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:18:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:18:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225846.390120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmawC-0004H7-2N; Mon, 15 Nov 2021 12:18:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225846.390120; Mon, 15 Nov 2021 12:18:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmawB-0004Gr-VT; Mon, 15 Nov 2021 12:18:15 +0000
Received: by outflank-mailman (input) for mailman id 225846;
 Mon, 15 Nov 2021 12:18:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmawB-0003Jk-EC
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:18:15 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a7846fe-460e-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 13:18:14 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a7846fe-460e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636978694;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=suHg7mkFa4hyoE+Z6M7v1KbxlgOFi+JsFBNf9hv3fM0=;
  b=MXus21wVJh+Bvb+c5gTl2VPiCMDoXGnnJXF0gmk16CDzFXaYPN1+ZHcc
   IEOHFqn5Q6FWwdmoxKei9DY3p3yrO0FNYNiHM5TSAvRwC0eMtArIYrpE4
   CwNapZ7pj5cfIReujQhDQIZ6a3BH/ldHfc2Z4wIgrXTt3Zp4QKOW5DqVS
   s=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: c/+/w4s3FQ/ny9hkrHVRZgrKu/ox0s28fF5IYRR/QZIomRFo9WstfT/JB0bMpt+dJ9DFwwPCvr
 KXoA+nfGY/VIb2f98IjQEwYmu48kI11E6t3hqW9ik7Ls9qoMQ9VZe5n5t5m177rwN8ZHbZlLOm
 zba59gMAMSFS6hUnPXYlg8VpZJZbDU2fI5E37ktamQCGeO2GhpNUIRaNWHd3B7E301EUwO3r0s
 e0iqoZ5EPvkEU3m6Dl4KyJMGr4N1u9oRldcdCLE4vJsNYszZ1CfNMcdyxBMOdM+1557N8h9qlY
 hAtRSpYc3hz40d2/AhAx/xY+
X-SBRS: 5.1
X-MesageID: 58216534
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:gGDzOaIvCHr1pU1XFE+RPJIlxSXFcZb7ZxGr2PjKsXjdYENSgzMFy
 zMXC2DVPfiLa2H2c4p1YIu0oU1UvZHTn9U3SlNlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6xrZg6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2VpuF77
 txRi6DqClYRJI7UvM8yShNHRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsF2gcsuNo/zNZ43sXB81zDJS/0hRPgvRo2XtYUBgmpr2qiiG97OW
 uAZeBNCYS2HfjNxC3U9LqwgxN+R0yyXnzpw9wvO+PtfD3Lo5A573aXpMdHVUseXXsgTlUGdz
 krH4GbREhwcLMaYyzeO7jSrnOCntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLp3N
 Eg86ico668o+ySWosLVBkPi5iTe51hFBoQWQ7ZSBByxJrT8/z+oDE4NUgB9Mp93jNUVXRgB+
 UaDgIa8bdBwi4G9RXWY/7aSiDq9PykJMGMPDRM5oRs5D8rL+99q0E+WJjp3OOvs14CuR2msq
 9yfhHFm3+17sCId60msEbkraRqIr4OBcAM67x6/somNvlIgP97Ni2BFBDHmARd8wGSxEwHpU
 JsswZH2AAUy4XalznPlfQn1NOv1j8tpyRWF6bKVI7Ev9i6251modp1K7Td1KS9Ba5hfJ26wP
 BGO5V0NuPe/2UdGi4ctOepd7OxwksDd+SnNDKiIPrKinLAsHON4wM2eTRHJhD28+KTduao+J
 Y2aYa6R4YUyUsxaIM6Nb75Fi9cDn3lmrUuKHMyT50n3gNK2OS/OIZ9YYQTmUwzMxP7dyOkj2
 40EbJXiJtQ2eLCWXxQ7BqZPdw1XdiZiWsitwyGVH8baSjdb9KgaI6a56ZsqepB/nrQTkeHN/
 3qnXVRfxka5jnrCQThmoFg6AF82dZog/389IwI2OlOkhyoqbYq1tf9NfJorZ7g3sudkyKcsH
 fUCfsyBBNVJSyjGpGtBPcWs8tQ6eUT5nx+KMgqkfCM7I8xqSTvW94K2ZQDo7iQPUHa67JNsv
 7262wrHapMfXAA+Xt3OYfeiwgrp73gQke5/RWXSJdxXdBm++YRmMXWp3PQ2P9sNOVPIwT7Dj
 1SaBhIRpO/spY4p8YaW2fDY/tnxS+YnRxhUBWjW67qyJBL2xGv7zN8SSvuMcBDcSHjwpPeoa
 9JKwqyuK/YAhltL7dZxSu450aIk6tLzjLZG1QA4Tm7TZlGmB748cHmL2c5D6v9EyrND4FbkX
 0uO/p9ROKmTOdOjG1kUfVJ3YuOG3PASuz/T8fVqfxmquH4ppOKKARdIIh2BqC1BN78kYooqz
 NAotNMS9wHi2AEhNcyLj3wM+mmBRpDav37Lan3O7FfXtzcW
IronPort-HdrOrdr: A9a23:AOKkt6in/e7ydl4GNsco6CuCf3BQX0Z13DAbv31ZSRFFG/FwyP
 rBoB1L73DJYWgqNE3I+erhBEGBKUmskqKdhrNhQotKPTOWxFdASbsC0WKM+UyYJ8STzJ856U
 4kSdkFNDSSNykLsS+Z2njBLz9I+rDum8rE9ISurQYfcegpUdAc0+4QMHfrLqQcfnghOXNWLu
 v52iIRzADQB0j/I/7LS0UtbqzmnZnmhZjmaRkJC1oO7xSPtyqh7PrfHwKD1hkTfjtTyfN6mF
 K13DDR1+GGibWW2xXc32jc49B/n8bg8MJKAIiphtIOIjvhpw60bMBKWqGEvhoyvOazgWxa3O
 XkklMFBYBe+nnRdma6rV/E3BTh6i8n7zvYxVqRkRLY0ITEbQN/L/AEqZNScxPf5UZllsp7yr
 h302WQsIcSJQ/cnQzmjuK4Fy1Cpw6Rmz4PgOQTh3tQXc81c7lKt7ES+0tTDdMpAD/60oY6C+
 NjZfuspcq+SWnqLUwxg1MfheBFBh8Ib1O7qwk5y4KoOgFt7TNEJxBy/r1Zop8CnKhNAqWsqd
 60dJiAr4s+O/P+W5gNctvpcfHHeFAlfii8RF56WW6Xb53vG0i94KIfs49Frt1DRvQzvewPcd
 L6IQpliVI=
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="58216534"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RYxhnhFDWA12yggWS5zoqqnmkFH/XJOgQCOPZHZVDTv3wcDvZNYVHnsVgY+HH31BwQI+oBCWZoO76U3WS1b8dmN7eYhB9NscGY/qlXQgT6pZYnuWnZB9nLJ8bZp4gDJY0uIikX1n34RHqP4GFUORDf1zr7yKrwQSrUrCSZ7lSoKCr2gA+zwfZIXlHU7jA7R407rvdWWbKtuHEVgZ43S+1xTcpcfvM1m8bcIZ9kyFeWQfHlQS9uG/0qyNGDKaJoUQ0JXI2Rqib3abt4fuDq08QAMxqkawGEZPPKT1NpPdkthQ2oJF9gDHb1vFhwJDAdxnEiVbtvHBVnPR0/mU0SWXTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NO9jNqMFfmWpzrIg87oupc00Q1GXXnQECMilJBuxT6A=;
 b=AFNSAdCpcjellDRpeg2ZAyQw0kWvkLzBc+IWvj5siLGK/TIaSeD6tQyWGXs6+smfEM9k5xYOtprt1jNVfdfWeRJsQzLcaXoA8/ieFPQyzJFR6OuxjwUA3VWKKTh1u/OoDVSgQkqG0PRCNh8Cr1cK4o28hnevth8vGoNfuc6yZ8XwjrzXekwc1pj8guDLGHRRRE6idEuvhOARzPMM8XE6nS/M0BzOd6rkYI6aYHAnqollKm6E7NW+/VY4kihWSMTneM/GPL2vDHyxt1V4mFM+DWYlQ46T3eYA6jnP67+QL9DdSDdit4SMGOnPLXW2Nd8Epg1GuKqnUYxBkAu8Hn4dtA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NO9jNqMFfmWpzrIg87oupc00Q1GXXnQECMilJBuxT6A=;
 b=XvpuHybPfQON09wZRrdDFdWUwGKdrTX4f/CsOfX1RetSIKQjVA1TLWhufN355bRDS2No8WW90z18x/bZ7Hc483kzi/WQ/yvweU2ga57pImzjOGxITXaKx4ifLzPkK/UCBQorNcJSQdTIbIuRueyHRhl2WMRIBvFUlm6a+ANstyg=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Ian
 Jackson <iwj@xenproject.org>
Subject: [PATCH for-4.16 3/4] test/tsx: set grant version for created domains
Date: Mon, 15 Nov 2021 13:17:40 +0100
Message-ID: <20211115121741.3719-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211115121741.3719-1-roger.pau@citrix.com>
References: <20211115121741.3719-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0050.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:31::14) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5fdbdca4-a3a9-4701-6ae1-08d9a831fc8b
X-MS-TrafficTypeDiagnostic: DM6PR03MB3483:
X-Microsoft-Antispam-PRVS: <DM6PR03MB34831A80A6AB80C25D96A9338F989@DM6PR03MB3483.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3044;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: p5VknUob/mcNfYGcC5Qf0FiZwbIKQMYHRVJnDurm8vqovHPVy7B2AHJ8B7sDeZqDu7s36KF/n2xvT+lgjYbXNMc/DOkB/DmK9F4LXJ92BXSzHfNLWEzEzfvCavYmHM795iSHcGvGs1qbI/Q/RV3i/xybvC8L2U/1IYiCxQl2iMbdTF3cEaF90KCD7SxkmUNNKKo64ntuvcAuKlhMaTB3JqAFYJnfJaxFFoPnlZ62hijlY/GbCgh3jPNXk7pAG9KZ8itxy9c0Tfd2ONCw+3qFjQ4pE819IDs9KsYi6eQXzmwUylh+nyw92HHbMp/Sbaghhf8ZhE5PhgaVnBX/EG+0aXf9H9+C+ZzEHnWFSGToTGsObkf6qUkgxMYgeUyAZZ5mHtIDUiramVRrK2gmmEipRxarOC/9GzWC2U8cqwptWF5W89b7VvCo861wLXGkKvxCyjkzwp+gPU128vdUXKzRsCECmHnew4z9AVWdR645gw7oJFQvkiDMp/UKe7UDprG8wRRXi03EZ9Y1ywtla/3SML/VjAgbT7wAwT3xBGzEdt1oQqHE4Z7AZC/W3i/bLkUrRFvZ2mGupDqYF1gKlTXXUsk8KR3VeBiCNwODWe/pFXWUZYOiSL53EOyL+jrzS2ojBXlYhzmoOVMlhqzqqXOIOw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(26005)(82960400001)(86362001)(38100700002)(66946007)(66556008)(66476007)(186003)(2906002)(508600001)(5660300002)(6666004)(4326008)(6486002)(8936002)(36756003)(2616005)(956004)(54906003)(6916009)(6496006)(1076003)(316002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RGdLYWU1UkdseHhkWnFUMHVTMUxzK2U1SGtXZlBmZm1WK0piQUhYb2JBTzVY?=
 =?utf-8?B?SE80UHFKc2k5bzFKOUNLZEVodGhQZThqSWpCZG9DNE11aEIxek95dVBlMFE5?=
 =?utf-8?B?b3FMQWRsMFgxREdPd1VBZkdlMGhLTEdKUFdBZFlPajI0L0tJSmpUcnNoRW9s?=
 =?utf-8?B?d1dlNU1GcSttTGNuMjgwYTBJcTNSdnZ3WDRRRzc0emE4eHRCNXVSczlOaDdj?=
 =?utf-8?B?cTJydiszcHJKOThQZTJhVUtYUldWcEtYTFNWbnY4QVhZY3M0UU0rY016RG1j?=
 =?utf-8?B?SHRCMURVQTVBRTNneUI1SkE3WmVQZ0xTN3JlODJVVFpSR1NYWmExdFJoMVA4?=
 =?utf-8?B?OFNFQWNGaGpiMkpkbFJ5dDhKZStGVE5TN3NtZVk3ZjJlRjI1aEVScjdRUE1O?=
 =?utf-8?B?V0swRi9sdFhSL0d2TDcxakNkalA0WDJ0R1pYQ2cxdWVPaFJUWXM5UFB5eXo5?=
 =?utf-8?B?ckZJeTZrZmNrenBXeWlOMjlMaU9aTkRMaWoxNjFSalYzOGVpVUt6a01sN0d5?=
 =?utf-8?B?ZVZoazFtbENldlJmQjRWUlU4VlUzY0Uwb25mY1NqRW9MSUFJNlBFWU41bjdJ?=
 =?utf-8?B?ZDFLd1hOSFkwMTA0WGRiM1JaQjE5Z09FQWFxdWZiaTIzZk1lR20vc1lhNjNa?=
 =?utf-8?B?OWlwSzVkQjNGeXRsMEdXSWRJbm9EZFJGa29yUHJDOVp4VUFyMm5HL1RrMFdB?=
 =?utf-8?B?QUF5d3VRNkUvRExnMG9sQkdGOUdEL2gvc0I2RkFjdmIrK1crcEsxQzc5QUpt?=
 =?utf-8?B?ZENydmsrWVRHVWEyaTQ3Z3ErU2Zya2l3QmpSSmZsaEVBNnhURVRlZW9ySXBO?=
 =?utf-8?B?MGtrQThENDBGaGwzcytCTWlUMDA1VlFJOVBQUlJyOUpxVnNJMWIyZ1c4S2or?=
 =?utf-8?B?b2NMT2JCUmtuT0huTDRCakl2V1dvU3c5RUwvek91citwWU5CUVltOFhKZTJp?=
 =?utf-8?B?N1BSUHkrQ1RVWWY5RWdjRXM2eHhpYXBiajVONnc3a0tjT1NuQjg4dzJ6dmNs?=
 =?utf-8?B?djc2YjJQTDJWU2N6clZQNTUrckhwbWFxY2Q1c2tZTlUvTWduazdvOFRCT2E0?=
 =?utf-8?B?SEJWc1RiYVZzWkFvM0Z2TzVpa1NYZnUxTEJUcjRXWXR2OTd6aVZoUVBKTit1?=
 =?utf-8?B?RTE0d2hpYXZrbXl1YmUvOUdRdjh5cnBNb010eE5DVG5JdUl5bVk4NmM2QnVC?=
 =?utf-8?B?VmRkc1ZpRFpUZmd3RWNHREVsaXJpd0xtS2FmQ2l2T0llbktVUWlxaXJwZWVV?=
 =?utf-8?B?SURuNmllZFROZ29PaXF0N3gwbytNbkREQ3VPcXI2VzN6ejFrSE82MzFsOVR0?=
 =?utf-8?B?a292Mm13K1lBcWtLdTNDTWhqdzYwUWhNd0M4TGZsVWJySEc3eElMY1o4Yyti?=
 =?utf-8?B?SElMQ09CNkE2ZTRrRzUvSDIvd2hRQnowWXJ5SFR4REdickJldTJrMWYxUEFj?=
 =?utf-8?B?WHpnTFFzMEYwNTNGRjNNZTZTa2czS25QWjBvMTNFMTdCcjgzc1JtdmNRc2do?=
 =?utf-8?B?ODh6allYSVJudFdtR2RXWWw3dWtIc1lJbzhDYXNSOGloc0F5VWJKRXFNQnY1?=
 =?utf-8?B?WnpISmg2NHJGSVI0S3Z6cW1TQlpOTzgxWGNkUlAvclBpYVNOakRKTXFXWTJ5?=
 =?utf-8?B?MVNzaTRCMm9qQlAyeVJ6MHJZK0xkbitia1BCK1VKVHE2KzJXd3o2MVM1MUhz?=
 =?utf-8?B?MkZtcXBRRzYyU0RPUWhRVTZkRVhrYkphbUtNNUhEQmo3Vk8vekZYcW16d25l?=
 =?utf-8?B?VERPU3luZFdVQ3VVZU5kb0xIR1dHcXJkWWxCdEUxRTZQOWxlUnVFcUtxWVM5?=
 =?utf-8?B?dFZNMS90d0JWUXBteTJEajJpenFwMjFKb1dUYWdXT0tqeW1oem5NRXVDemlU?=
 =?utf-8?B?aHp4YUx2WWd3WHJvVzBaUEpNKzdycDVJR2txMDNQMXd0NFNqMUcxTGFPZTdu?=
 =?utf-8?B?TWNQd1VOY1ZPN2VTeXZia24rNVpaa2N0R2JTV0tzNUw1a29lZVV3b25EYVQv?=
 =?utf-8?B?RmZxL2QvdUE5MmtSbHFoQ1dvMnBzanpEb2txR05vUWNBcGFHbG13WHQ1QkZz?=
 =?utf-8?B?Y1pNS1puZmF5U3VxcDB2YW45VEczTjRsOVlERWI3QjFGdWlpSzNVekZZVjR0?=
 =?utf-8?B?VlpZd0tRNXV4cnBaaEYvWjBSaW50ZXp3bVREOFBqMzVEL2lMUUFESzR1d2Rz?=
 =?utf-8?Q?ugSaVfZko/5Ru0EShMtQguI=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 5fdbdca4-a3a9-4701-6ae1-08d9a831fc8b
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:18:09.5376
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZWMTA3idPS51wOyaHBcqC2Y1HlD44nO2xEQ1Hsnhjg8Fp/0O7Lj5RSAHdfWb+cbvI+zaawNCgHdWpdVcRxjMng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3483
X-OriginatorOrg: citrix.com

Set the grant table version for the created domains to use version 1,
as such tests domains don't require the usage of the grant table at
all. A TODO note is added to switch those dummy domains to not have a
grant table at all when possible. Without setting the grant version
the domains for the tests cannot be created.

Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

This patch only modifies a test, so it should be safe to commit as
it's not going to cause any changes to the hypervisor or the tools.
Worse that could happen is it makes the test even more broken, but
it's already unusable.
---
 tools/tests/tsx/test-tsx.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tools/tests/tsx/test-tsx.c b/tools/tests/tsx/test-tsx.c
index fab99c135e..f1dcff4c30 100644
--- a/tools/tests/tsx/test-tsx.c
+++ b/tools/tests/tsx/test-tsx.c
@@ -444,6 +444,8 @@ static void test_guests(void)
         struct xen_domctl_createdomain c = {
             .max_vcpus = 1,
             .max_grant_frames = 1,
+            /* TODO: switch to 0 once support for no grant table is added. */
+            .grant_opts = XEN_DOMCTL_GRANT_version(1),
         };
 
         printf("Testing PV guest\n");
@@ -456,6 +458,8 @@ static void test_guests(void)
             .flags = XEN_DOMCTL_CDF_hvm,
             .max_vcpus = 1,
             .max_grant_frames = 1,
+            /* TODO: switch to 0 once support for no grant table is added. */
+            .grant_opts = XEN_DOMCTL_GRANT_version(1),
             .arch = {
                 .emulation_flags = XEN_X86_EMU_LAPIC,
             },
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:18:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:18:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225856.390131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmawg-0005Vr-DG; Mon, 15 Nov 2021 12:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225856.390131; Mon, 15 Nov 2021 12:18:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmawg-0005Vk-AC; Mon, 15 Nov 2021 12:18:46 +0000
Received: by outflank-mailman (input) for mailman id 225856;
 Mon, 15 Nov 2021 12:18:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmawe-00053F-U7
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:18:45 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b75dc76-460e-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 13:18:43 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b75dc76-460e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636978723;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=6UWIkEpB/eZGmwzOcsWWGdRLAqnZMQ/AfOheDTgEEyw=;
  b=Rv9TByu7s6/U50x5sjRMWKYS9dwEqITuB5nPWWthq1gA+HIaqq4jahqL
   lYWVY4+Ra08ZbyCr3MvBH7IenuN0pNuWfdbHbQiXEwZKUk8nRrYzMhhUV
   sZ5p7DwlM/K1sD0akl789lm7uVV26wZAchnTJJY6E7/VrQfbk5q/Rmlsh
   w=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: gY2jcILEfhyJ4L3xtYtkSc35EKoevNExjHqFOcl+VpFVroiFKNEPnGjs+bm/4nBQWsUasURAF3
 9iF8fv6bz5oFFQ0LKh4/7kxEAKK8fgWDohisrUReZ5N0vZJFe5+F8dq+vxou0ufWEnOg5ZpVDO
 vxX3iRrUT3+c23pXWRHMfEF/6V9HKnpHutRbxcmkh1A3efLb7iL9madGNzY6ZfbVfoY2JlOvyU
 xQt0HsPTL3PWNMbAUT5Dh7VW26oW6S1q0spuLdFoNg7yI07YXDuBinELc887uL3tdOQ/t+0tCT
 yF/6HyETXTah1PObPqyYfl7g
X-SBRS: 5.1
X-MesageID: 57851616
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:tgNOpKuZeeX9+qEc/sWr5+FcZ+fnVKVZMUV32f8akzHdYApBsoF/q
 tZmKWGBOveJYTPyKItyaYm/80pV6pLUx9NgQQNq/H1mQnwR+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2IXhWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplhKyrFSoELPPwqOUTDBR2IS9BGZN89+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258eQK+AP
 pRxhTxHak/bcjBWYBQtAZsvo8GOul7HTwUApwfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krH4GbREhwcLMaYyzeO7jSrnOCntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLp3L
 kUO/yM0oKsa9Uq1T8L8VRm1vH6FuBEHX9NaVeY97WmwJrH8uljDQDJeF3gYNYJg5JReqSEWO
 kGhruPyWRFCouOpeXOTqbq6nz2NHRYvIjpXDcMbdjct797mqYA1qxvASNd/DaK45uHI9SHML
 yOi93Zn2ehK5SIf/+DipA2c3WrwznTcZldtvl2/Y46z0u9uiGdJjaSM4EOT0/tPJZ3xorKp7
 CldwJj2AAzj4PiweM2xrAclQenBCxWtamS0bbtT834JrWvFxpJbVdoMiAyS3W8wWir+RRfnY
 VXIpSRa74JJMX2hYMdfOtzqVZVzkfa9SYq5Cpg4i+aihLArLmdrGwk0OiatM53FyhBwwcnTx
 7/GGSpTMZrqIfs+l2fnLwvs+bQq2jo/1QvuqWPTlHyaPU6lTCfNE98taQLWBshgtf/siFiFo
 r53aprRoz0CAbKWX8Ui2dNKRbz8BSNgXs6eRg0+XrPrHzeK70l9UaKMmu14JNQ+90mX/8+Rl
 kyAtoZj4AOXrVXMKBmQa2Alb7XqXJ1lqmk8MzBqNlGts0XPq67whEvGX5doL7Qh6sJ5yvt4E
 6sMd8maW6wdQTXb4TUNK5L6qdU6JhisgAuPOQujYSQ+IME8F1CYpIe8c1u97jQKAwq2qdA6/
 ++q2DTETMdRXA9lFsvXNq6ilgvjoXgHletudELUOd0PKl70+Y1nJnWp3P86Ks0BMzvZwT6e2
 1rECBsUv7CV8YQ07MPIleaPqILwS7lyGU9THm/667eqNHaFojr/kNEYCOvRJGLTTmL5/qmmd
 N559fCkPa1VhktOvqp9D61vkfA06ezwquII1Q9jBnjKMQimU+syPnmc0MBTnaRR3bsF6xCuU
 0eC99QGa7WEPMTpTAwYKAY/N7nR0PgVnn/Z7OgvIVW87yhypeLVXUJXNhiKqSpcMLoqb991n
 bZ/4JYbu16llx4nEtealSQFpW2DI0sJX7gjqpxHUpTgjRAmyw0abJHRYsMsDEpjtzmY3pEWH
 wKp
IronPort-HdrOrdr: A9a23:RNkvxqx0PjTjlNYcC59EKrPxsOskLtp133Aq2lEZdPULSKKlfp
 GV88jziyWZtN9wYhEdcdDpAtjmfZq6z+8L3WBxB8bfYOCCggqVxe5ZnPLfKlHbakjDH6tmpN
 1dmstFea3N5DpB/L7HCWCDer5KqrT3k9HL9JTjJjVWPHxXgslbnnZE422gYytLrWd9dP4E/M
 323Ls4m9PsQwVbUu2LQl0+G8TTrdzCk5zrJTYAGh4c8QGLyRel8qTzHRS01goXF2on+8ZszU
 H11yjCoomzufCyzRHRk0fV8pRtgdPkjv9OHtaFhMQ5IijlziyoeINicbufuy1dmpDi1H8a1P
 335zswNcV67H3cOkmzvBvWwgHllA0j7nfzoGXoyUfLkIjcfnYXGsBBjYVWfl/y8Ew7puxx16
 pNwiawq4dXJQmoplW82/H4EzVR0makq3srluAey1ZFV5EFVbNXpYsDuGtIDZY7Gj7g4oxPKp
 guMCjl3ocVTbqmVQGdgoE2q+bcGkjbXy32DHTqg/blkAS/xxtCvgwlLM92pAZIyHtycegD2w
 3+CNUcqFh5dL5hUUtMPpZyfSKJMB24ffu1ChPoHb3GLtBNB5ufke+83F0KjNvaD6DgiqFCwa
 j8bA==
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="57851616"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oNr14cNc7l8q/41wtRBEodLxq7lKcztucCRNXtBT9IZus0ivuS7RPnd4tY2Y9Y3qOfMdVnpT4Qng3w12R0NkB8Yz7elMCXaQds3gsIZ+nAOlemyMyUh6F89W2dGpfMsg/V8GXAPSQBgMBkAfXkR1uhq15LuLzFYl7Yt8hczSPWEjv/dh4A8ccqSLq0S3qS+gWLhBojSBtRHmrtJBIEhU5JmaPEJU0RKc6U1zdh0h9WOh8yTPzl8y4gPGGZ316UgoJKcZft4pRRwDyl0M+pe56PrlI2SR8nfGu5LJguZrfXlpea/avpRZ97nkcMTdm6m8UNcWTBPCcCr/wyBo1ZDhsQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=30IYql6s76qwSQS6YX21BegD/gb/wXVIVUlLhStCcWE=;
 b=Ek220kWO8lJN2txWil+hFVkVBVL2tNdDQXYZmoWVNBiKah3FlONOLB3CLBAvJZIJACHWdNKyhRnIXDa6XXhKf8BjTY2Hqa6wcuqWdnxrkmx8n22YY7yJH5yLELbs0THZyqne2JgjKmZNRzZwZMflENNUMqtchS/7bo1/aACO/cw/Ua0wLrcyC0YEl69X57UG3d5sI8t3lP8opxq0bTiB+RGrXUbUZCq9fL3qrVgPkoQXfoRP/xuvezFhJLzOTJ8k9g17haqQwt6GdWHFT6/OBx0lTV44ENPGnPNFXk6vKOURSzWLEJTJKGwEjUOV971tcJLBja5yUGAxouxRdRLIJw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=30IYql6s76qwSQS6YX21BegD/gb/wXVIVUlLhStCcWE=;
 b=m+ClrxgvehUUM2/v6zjiY3TBq/yVUr2iWmgSo68hJ8HBwowL7pYZpVZgnpm93Lwu42iwmrQvQ8FV59mCoM6Ty6QX95z/8Ndhi8TKnZMPXaCsogpucC07pXkIyM0h4GPIVlc7JVRIMP1a58CDpPw7h7+lq/MoVNKey+2eQvKyKHE=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH for-4.16 4/4] tools/python: fix python libxc bindings to pass a max grant version
Date: Mon, 15 Nov 2021 13:17:41 +0100
Message-ID: <20211115121741.3719-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211115121741.3719-1-roger.pau@citrix.com>
References: <20211115121741.3719-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0143.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::22) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: cffef526-c72e-462e-3648-08d9a831ffb6
X-MS-TrafficTypeDiagnostic: DM6PR03MB3483:
X-Microsoft-Antispam-PRVS: <DM6PR03MB348313562F8260A47A70910D8F989@DM6PR03MB3483.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: qLwJgveKsCFShvNZ+qwVmOmLTiRcNDkkPTFGTd1oaSgDI/7hAO4UsMBv2bNVBwKlXIehCBhVvS6HAee/hKuG1BRfHPv4HD94zVFADHa8SjDB9hq3HJ84mFGZj42NBUWtVocajaSAKtqr0IrYwXGDm0VEZSu/KbAB7/cQKleDdQqJJcDyA8x3qF9Cw5x4pAYmfQuiHPpH6xP9lP2PrdxpbyFVso5/Y4Hk4ZJb+ANbjlv9fl1R8MabyScKU+yRrzE1qjfayaZGk+1Q2B+v/PajKU5aeUMG30QZfrHdX0UBTfBz1g4/qW+WdSCeX+xAEmZtqEOoQaa21DpN4wbtN7fpZxHftzxI78IC3qyUPW/nqaBd/nxOHb+VN7OAkFN4kGpbJS7fAZWrHZpv7emDuA2quh0kyA5vYuAUhlh0OuCFEOiGSUT+OCehT0BKsmI6PDCF6VNHtsdSvz5ksk23Vja6WrQEZlb7SZbADAawux9ZlfrC990AcBdmMa4cq1lQIUaczA3FIIAXXtW9TA5CjlaOrn+pqAjRGfuNtL1a8QrDqDpeB5WXvIIGrHou2QWHIZMJ9PbudBSgzk6UyOJt1cczrRe3vLxshaD0ZQGxdE5ix5iZb9yBtswzeGHsZ9f82KB2t6HF8023QzVynt7ugPpHaA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(26005)(82960400001)(86362001)(38100700002)(66946007)(66556008)(66476007)(186003)(2906002)(508600001)(5660300002)(6666004)(4326008)(6486002)(8936002)(36756003)(83380400001)(2616005)(956004)(54906003)(6916009)(6496006)(1076003)(316002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SXB3VXVHT1VWdVU3SlZpV0JDN1Nwa1JJSnVXeXN6Vm5WZ1lkRmhGQ3dYWk1I?=
 =?utf-8?B?MERzakRBL1Q1YXRSbGFSdHIraWxBYWU2NWVmY2lQV1B2NmRNcHdOL2JHS0Ny?=
 =?utf-8?B?VkliMzZ1RkhKU09sT3RYbXZtbDJRSkhNbVZqY3VTUWFaWGs0Qkt0S0VPK1du?=
 =?utf-8?B?NmtBcGVSV0hTWmlJTlNIRysvVG5jeHZFbWRtQ0RuZFRMSmdiM1JPSEx4YVF0?=
 =?utf-8?B?YlovMk8vbXpGSGRScEY4cEJxcFgrS25jd0N3dURyZWcxc0JRNHdDenY1d0M2?=
 =?utf-8?B?d1doVzdISm1KQkpRTmxlL2tzLzBmdnZtMUh1c1ZqbWRlWjVQempWTEl6SjFJ?=
 =?utf-8?B?K05wMnNzdENBRjJnS0FPdU9pVlMycFlhYWp0Z1g2eUZRNXlUcWpGVjJ5NEtl?=
 =?utf-8?B?STAwY2tLbFB0b1c5V1JmNlhLRmdwbVYrZG03d1Z5UGp1Nm5ZeUs5bDN2eHFv?=
 =?utf-8?B?NnAzc3NsUTZxYURjenpMUTl0Qzk1MUsrZFBCOGhoMjh1Ulo2R1gvUE96dnlH?=
 =?utf-8?B?TlBOK0tJWTdqUWVsRS9OUkd2NDRUNGY0eWNnWmhtRkpmckJ0OEV2d1VkZW9O?=
 =?utf-8?B?dVM1dFRuekI3VDE1a0J0b0NZbWczT1R1TTdZK2tuWXhGR1BWRGcyRDk2YnBj?=
 =?utf-8?B?RXlEOEdMZG40cEpwVDhObzh4d1dzNmdyOEk5cTcrWmwrNTZIWkcySmYwZkla?=
 =?utf-8?B?Q3NuZG5IMWU3KyswY0ZpeUlORFhEb0RjcjdwS25QZUtTOVM5R1VGVVJuMDNT?=
 =?utf-8?B?U1U1R2taM1VlUE91a3FNUGg2bHluaXdaUElkOUlkcnVpS0t2VWVzSkFURUtT?=
 =?utf-8?B?ZGkzaDVtekozQUJrc3lXRnB2TERpblo0Wm1jVElzSG9OK0Iwb0ZBK3R5dmlu?=
 =?utf-8?B?MmJwZTY4L0llQlY3TjB0TEhVYzJJRkd6VlhqOWd0bGZ6aE5HTlRJUTlNeDgx?=
 =?utf-8?B?SnAwOTR4OVdUSDRobnN3M0xSc0xkTFhkZU5HdHdpUHJMMjNoV1VIMFg5Zys2?=
 =?utf-8?B?SktNSXRxSE8xZGtkR0dNMDhtZUNvMDBQL0ZqRTEyMHNYV1NyWjFpWFVLMi9a?=
 =?utf-8?B?MXQ2cEpadmc1QjNDWHBpd2tvWkRpcVNydmFCRGZFNE04bWFaK2hKejFCUTho?=
 =?utf-8?B?bWxrVTFCRnVoMnNhTGpUM2dLejZlNnllU2N0YWFTRWpPMUhrUHFwUVZleGtu?=
 =?utf-8?B?U2Y1bVZmQ09SZjZUNmZPY3dzYXBBZzhsallndFZaMVBYOS9yNXpXekttbWpF?=
 =?utf-8?B?NDMvbFFhbUx5Vm91VjAzREJDTE5ZaUlkN2pDbFY2M1FDV2ovQ1hySEdjeEIz?=
 =?utf-8?B?ckNhLzhsaUJERXAxSnNHbmdNbFpjT1h6WHpKVHJnM0l2TUJGaUNKd1A0YlZk?=
 =?utf-8?B?SFZqVUgrQ0hRaERCZHRSbHlueERFWitNMGZBVGlnS2FaYWpOSkl3TzBmQjBw?=
 =?utf-8?B?NTU4cW5VVTFycFAxMlIvT3hEQ2tpL1hyb1lxSnpFV3NvN2FrSEVISkZFWWdi?=
 =?utf-8?B?UytaK3MvWkNRQmNRUkxIVFZ3VzByNmFCUElYWk9wOWhCNlIwTG9YL3JXcjMw?=
 =?utf-8?B?Z3h2Y3VtOG5tTzFUR3Q0c284WmhSRUp6S1hUY1RFOUR4NUM4UUI1L3B4RGQx?=
 =?utf-8?B?bDhoRWtFUzg0NTF1aXJEY0hyTktmdGd4dGVqTjI2QUJFWFhMMlBDNnFySGQw?=
 =?utf-8?B?K3RXQmQ1UmhCTUxqZFJGMDNuUEdmamQ1S3AwaFoxV3JSbUpGTDBXUkhuL3NX?=
 =?utf-8?B?ejI0YlBNaUtORFc0dThwR1g0eE5iZWZ1NVJaMkNWUFRqS1JoWUJidU1nbGJE?=
 =?utf-8?B?aWRTc1VPV1pqazF1WUU0bFJEQjhkR1dBMGhpaVAwUjUxSTU5MnlyYTQyY3dZ?=
 =?utf-8?B?RUh2SS85RkI4ZmF1TzVKOW8xb1BxamJTUitmZmI4YTBob3lXTElDT2hBNXAw?=
 =?utf-8?B?OHJJTHpHamNXY0x3KzN0RG5paGpCVk5vSktvYktJeGVKbkRTZWxkajdBaVFX?=
 =?utf-8?B?TWVtRnBwcGl2QXdETmtQTUxiVUM4cFpVcWNsb0hlT0VxNTFwUDBrcnNmN0cv?=
 =?utf-8?B?RTdXS0VEV3JnVi9HaWxhQy9FTThzd1FTRm5tK0dUUE5STGYrdFJlOC9sWDNT?=
 =?utf-8?B?SFdSVkFaSkhLMjh0eW1aR2hEemdtTGg4b3N2aDJiZCtKS3Fad09hTDZKU2pt?=
 =?utf-8?Q?KxxHaclpx12DR76/OSNqseo=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: cffef526-c72e-462e-3648-08d9a831ffb6
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:18:14.8403
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zH5YOAWrqjyo3YUUYUXlM0eEGu5YQaDxVZoyIkAgMrXReWDbaz3p2s37SnqxHC9OwCI20Bl4EYJyEq+Q+fdNjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3483
X-OriginatorOrg: citrix.com

Such max version should be provided by the caller, otherwise the
bindings will default to specifying a max version of 2, which is
inline with the current defaults in the hypervisor.

Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

Without this fix the python bindings won't be usable, as they will
attempt to pass a max version of 0 which will be refused by the
hypervisor. The main risk would be breaking the bindings, but given
the current state it's unlikely to result in a worse outcome.
---
 tools/python/xen/lowlevel/xc/xc.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index 6293d205a3..fd00861032 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -116,7 +116,7 @@ static PyObject *pyxc_domain_create(XcObject *self,
                                     PyObject *args,
                                     PyObject *kwds)
 {
-    uint32_t dom = 0, target = 0;
+    uint32_t dom = 0, target = 0, max_grant_version = 2;
     int      ret;
     size_t   i;
     PyObject *pyhandle = NULL;
@@ -132,12 +132,13 @@ static PyObject *pyxc_domain_create(XcObject *self,
     };
 
     static char *kwd_list[] = { "domid", "ssidref", "handle", "flags",
-                                "target", "max_vcpus", NULL };
+                                "target", "max_vcpus", "max_grant_version",
+                                NULL };
 
-    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "|iiOiii", kwd_list,
+    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "|iiOiiii", kwd_list,
                                       &dom, &config.ssidref, &pyhandle,
                                       &config.flags, &target,
-                                      &config.max_vcpus) )
+                                      &config.max_vcpus, &max_grant_version) )
         return NULL;
     if ( pyhandle != NULL )
     {
@@ -162,6 +163,7 @@ static PyObject *pyxc_domain_create(XcObject *self,
 #else
 #error Architecture not supported
 #endif
+    config.grant_opts = XEN_DOMCTL_GRANT_version(max_grant_version);
 
     if ( (ret = xc_domain_create(self->xc_handle, &dom, &config)) < 0 )
         return pyxc_error_to_exception(self->xc_handle);
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:19:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:19:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225864.390142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmaxT-0006Gx-RJ; Mon, 15 Nov 2021 12:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225864.390142; Mon, 15 Nov 2021 12:19:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmaxT-0006Go-O0; Mon, 15 Nov 2021 12:19:35 +0000
Received: by outflank-mailman (input) for mailman id 225864;
 Mon, 15 Nov 2021 12:19:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmaxS-000601-Ng
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:19:34 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 498f690c-460e-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 13:19:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 498f690c-460e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636978773;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=ZvO7oA7ZOOZL3R5aozMovAwaf4e8yyts1RHkl8Rh9hg=;
  b=LvlMyaSLZuYP1SMxNYkJFwoVvCuZfjCQbk3dDk/abfpwUacWrm1A3b72
   WlGvDi5bv96f664GiS3kl2ZwvhjrmAaVAoxLdxVYhqgrkyEy0hVcg6Bnf
   AMFzdEK1kqUU5yLVpiJ4rFoS2Wh2o2r9dNnPVyhj+xeUlOaefHq4u/Cgt
   g=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 0dfLA/60FVHG9SzUddVxl07jbRv5KLnc60dT14w/7jeXRWIakiBLoU4jkQEgTjSTIZkT+hI3op
 91QRHbD3btw8L6l66qqdV2h7TXtrmqpk3UmSv0nAgGpgjm1WCvFWDj/Wmz18rFG9CgN/eLTQN0
 2EzZtI/vxPeAW0HPMnxaWmZ2DqbXkPblrqUWWWBO8zz0sahKwF5Pq0LoCoPhGhid9I75Pd6iw8
 UcmBSGTqzd9em8qClFQljQc1wlQoY7nRC5lYqc6vy79xygKKzbHgth4CwOpev376keBk3N48as
 epezYvsXTjYmqUwJEN03CF2V
X-SBRS: 5.1
X-MesageID: 57826396
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:wg6za6i+HxKHARbQteCI0Z/oX161gBcKZh0ujC45NGQN5FlHY01je
 htvDDiCOarbNmShL99wOoTioR9U68eGx4JnSwVvqC40Ensb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cx3IDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1RjL2pFAYYZJHNs+o4fgZ+IxhHBqlZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t2ZAUQ62PO
 aL1bxJPYgTlZiwRKmsWM70svN2wryClTmBX/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 mPZ/UzpDxcCLtudxDGZtHW2iYfnlCbwCdw6D6ez+LhsjUH77nweDlgaWEW2pdG9i1WiQJRPJ
 koM4C0soKMuskuxQbHAswaQ+SDe+ERGApwJTrN8uFrlJrfoDxixGlElV2NAWYYateQ4YBE18
 G+wpujtGmk62FGKck61+rCRpDK0HCEaK24eeCMJJTc4D8nfTJIb1UyWEIs6eEKhppisQGyrn
 WjWxMQrr+xL1ZZj6kmtwbzQb9tATLDtRxV92AjYV3nNAuhRNN/8PNzABbQ2AJ99wGelorup4
 SBsdyu2trlm4XSxeMulGrplIV1Rz6zZWAAweHY2d3Xbyxyj+mS4Yadb6yxkKUFiP64sIGGyP
 h6K5V0MuMEPYBNGiJObharrUazGKoC6SrzYug38NIISMvCdiifalM2RWaJg9z+0yxV9+U3OE
 ZyabdytHR4n5VdPl1KLqxMm+eZznEgWnDqLLbiilkjP+efONRa9FOZeWHPTP79R0U9xiFiMm
 zqpH5DRkEs3vSyXSnS/zLP/2nhWdyVmXs6v9JQMHgNBSyI/cFwc5zbq6epJU6RunrhPl/eO+
 Xe4W0RCz0H4i2GBIgKPAk2Popu0NXqmhX5kbyEqI3iy3H0vPdSm4KsFLsNldrg77u1zi/VzS
 qBdKcmHB/1OTBXB+igcMsah/NAzKkzziFLcJTehbRg+Y4VkG17D9Oj7c1a97yIJFCe265cz+
 uXyygPBTJMfbA1+F8KKOum3xla8sCFFyuJ/VkfFOPdJf0Do/NQ4IiD9lKZvccoNNQ/C1n2R0
 APPWUUUouzEookU9tjVhP/b89f1QrUmRkcDRjvV97e7MyXe71GP+44YXbbaZy3ZWUP15L6mO
 bdfwcbjPaBVh11NqYd9TepmlPps+9v1qrZG5Q14B3GXPU+zA7ZtL3Taj8lCsqpBmu1QtQesA
 x/d/9BbPfOCOd//EU5XLw0gN7zR2fYRkzjUzPI0PESlu3MnoOvZCR1fb0uWlShQDLppK4d0k
 +4utfkf5xG7lhd3YM2NiTpZ9jjUI3ENO0n9Wkr23GM/ZtIX92x/
IronPort-HdrOrdr: A9a23:axQ1Ga0R44Njn/gTvxQa2wqjBShyeYIsimQD101hICG9Lfb2qy
 n+ppgmPEHP5Qr5OEtApTiBUJPwJk800aQFm7X5Wo3SITUO2VHYV72KiLGN/9SOIVydygcw79
 YET0E6MqyNMbEYt7eK3ODbKadY/DDvysnB7o2/vhQdPT2CKZsQlzuRYjzrbHGeLzM2Y6bReq
 Dsgvau8FGbCAsqh4mAdzM4dtmGg+eOuIPtYBYACRJiwA6SjQmw4Lq/NxSDxB8RXx5G3L9nqA
 H+4kDEz5Tml8v+5g7X1mfV4ZgTsNz9yuFbDMjJrsQOMD3jhiuheYwkcbyfuzIepv2p9T8R4Z
 TxiiZlG/42x2Laf2mzrxeo8w780Aw243un8lOciWuLm72xeBsKT+56wa5JeBrQ7EQt+Ptm1r
 hQ4m6fv51LSTvdgSXU/bHzJlBXv3vxhUBnvf8YjnRZX4dbQqRWt5Yj8ERcF4pFND7m6bogDP
 JlAKjnlbhrmGuhHjPkV1RUsZ6RtixZJGbCfqFCgL3b79FupgE486NCr/Zv2kvp9/oGOu95Dq
 r/Q+NVfYp1P70rhJRGdZA8qPuMex/wqC33QRevyHTcZek60iH22tXKCItc3pDfRHVP9up1pK
 j8
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="57826396"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cPNmf7uuGRKKzHBWkamG9ag7TfUOPPCi/rV3e4BYNgioscp47IjVx80dBBXQzhY68Jk6+nqB5bDICarAv1bNQQ/MttRKHKVBoU7TVg/iVZadTwt0kTCEgnueEPBzNmJcKvk3f9S5mKaAaYipNkKjgznTvqjgcyaLpFoONnnEqnIu+rZK+j6s+XLf3Wa5G+FdgjvWUvPcIA2uC9rmfPlXzVI9umZxWH792BuNQZ+l0GDOz0cq5ReQUMTvBsZ+488VYpPqohqEsx7clwMpl3Lo91N0DDa/W4wLclYDTM2xVmMfosDjfssNE7ul/nniWklFo5lHqVhUqSFB89i2VoqERQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=14q7p6bGsb3dXiIewrDUNNR1JTQgTg0gyntwWqB1erI=;
 b=gVFhyZZmuMw2RbSP8IpyDd8xG0PhALSFdGqVzpNqYmcUiVzJ3wZJa8k8xsQNM09O99Hyp7bqgSGJF85a0FVhLn9eX+K9hgrIdwsZLS2fETsUK/1qXZ5L1oRrq+MphabG7XcpvD51CDZiksR6suZb+yll3ta2/dWC7Nz0Zyg1XvZSbu1JA8/+Kk+TUK7tYbs/6b4E1yRS8qFNtvb2/TCNjLpaXmvlPmGpJkDf8OuJFXRNQDKy0zkEjjzz684p5bMqm/QF3mhPTd7JrBOkXpsyEXQQ7kRGavs/LIDx0/L3ulCcEo3HENxlY1VQPgfH2AhxsG0eE0dSSlyZzXM5ZH4edg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=14q7p6bGsb3dXiIewrDUNNR1JTQgTg0gyntwWqB1erI=;
 b=UoV+IaZSOeQuqeh5c71xGdj2zOwvO4Dkp9JKdg18CJ41ATk3bYjyor+uWFIID6cpxzp8+iiQLtB+XpcKUA2c7zhko/vlccDCbh6JUWlCh7sXfYKnRZh3gDrO6kniQWBIWiftBZxaPQNhbcfcCK1OYQv8XMRVg9hbam4ELlye5vQ=
Date: Mon, 15 Nov 2021 13:19:23 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <amc96@srcf.net>
CC: <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>
Subject: Re: [PATCH for-4.16] freebsd/privcmd: fix MMAP_RESOURCE ioctl
 definition
Message-ID: <YZJQS5bG+/7M0fEh@Air-de-Roger>
References: <20211115110851.1462-1-roger.pau@citrix.com>
 <11c7c89d-ba8f-e1da-e2af-4ba186f92fbe@srcf.net>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <11c7c89d-ba8f-e1da-e2af-4ba186f92fbe@srcf.net>
X-ClientProxiedBy: MR1P264CA0090.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::14) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7a78180a-950a-4346-ccba-08d9a8322b93
X-MS-TrafficTypeDiagnostic: DM6PR03MB4601:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4601EFE1252C2738869A0B468F989@DM6PR03MB4601.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: b5J23zHx+Tzmx2AiEp7COYCIJYkZQ0zC9JbB9DU3Jmk0aip87lRhqzuyWno6WlDe6UiiSNUmnnjjFZqQvBRTCysYErsn+tFbcNH90Oktq7MOZ16Mg26FyhicSA9xFSD+JPY65rZdyFI6CbYzwEbQ7b73Rf/ABgPZZckjvkVWfbUa+9EZU8NJzxqD37S7dS5hu85Vx9POPTnCF8Nk9ccAxNVEQMW8zxkQlE7vaJ5PddZmhJQDd/x7QIWduRk0p1kjmmbv0kQbS5dEc2QAzstnfBE2Fs4ru5h8hYzwM9hjOncHqIB+ctnMToGo8DnV7UsKQY6F+2mkxYZeYNNXMaEu8aEHy4nEdLcG6jTKNk5u1tARNIREJ/2j9JOecucxIyoPUFad+jnhTfUJ4s0qMevoTATHI61okUjnkY2lqKAdJEGYD92zsVq83lm6rztpeuAL4LUiAjPB5DtquvZqB0xaEr4jwLvk2ni7zp+7y1PhNz/fxmKk67PE1wLhkkyX8JEkxz7MC2a306pCaZQKx91RgdVRRuP/KOvhFAXgnB2Ku1fwD83N6Zms5f1bxKcU5uSFSlJGEqRvuaE8u8GFeBFOPi4KHOV+gRzzSIcYrBn80+NA5mtzMVYmd2Fa38kBHOLEhPvDYRVynEG2EnddIFl+Ug==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(66946007)(316002)(86362001)(956004)(83380400001)(54906003)(66476007)(6666004)(9686003)(26005)(186003)(6486002)(8936002)(5660300002)(6916009)(66556008)(4326008)(53546011)(6496006)(508600001)(85182001)(33716001)(38100700002)(82960400001)(2906002)(8676002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UVcxTDlneGVqMUFuU0p1TjFzNkFyYjBYMG8rRnp3VXpHa0lENWp2VHVSbXhk?=
 =?utf-8?B?ZG82ZElvdXFRVEdPSWpuR2huTXZvT092aFRSVU5MSkR2QjFMcEEvVEZxL0Zv?=
 =?utf-8?B?V1VUWmpZQmY4Q1VjRFJ4bk9CaHR1bm5oeU9TWHU4RHVuaGNLVUFBMFpHYTR6?=
 =?utf-8?B?L2xpb1JjWUxrUG9oMkRxNkRnM0dXTFFyK1ZCRDlVMC90NDJTQ2ZRY1JqUzRz?=
 =?utf-8?B?bEpHOWRYRWwvaU5pVDkvOWEwSWZSUTZpUDlmMnN2ZDhSbGdCN0ppbHhNeUNB?=
 =?utf-8?B?c0dqQWRsVjhrSGd0d25na213cUErQm1wY2FmcHA3Q3ExR3h2cDZrbzZvUjNs?=
 =?utf-8?B?cTd4NUZHRHFCdUM3MkJ2OHJkN3hkeDhrOEdlbmJ3L2pCZnlxQ0VzRStFK0lP?=
 =?utf-8?B?RFI2STFrVVhsV1lzdzY3TGZNRVdCei9vM2xtTkNvU3puRFB0eEUrQ0pwNith?=
 =?utf-8?B?ajRSVnZLYzZ3aDQzaW1YOXFmWTB3WlBHQXV3WWpqMHAzWkNRYjYwVkhwK1lG?=
 =?utf-8?B?eXh5SUZpSjZGa1pON3U0OTFySjZVSU9uYi9sN0lJT2dJd052UzBJcFl2bmxT?=
 =?utf-8?B?bHdVbk9zUFZpV3R2ZXVIdEJMdVoydXlEUDlXZkZUR3V4Y3lISGlxMHNlZTZn?=
 =?utf-8?B?aVVHcUhyZTBxaXQxSHNnbXMxU2k1TlVrV1NKanBGTCtscjA4MExoQlZKVGor?=
 =?utf-8?B?YnVmckt2VHR0OExVWnVyQmNzbWZYOTBTL1o3bHYwaTNuU3RqTEZCOFd0M1VB?=
 =?utf-8?B?cnY4c2NSdS9rejdxM2x3MGxROHVQM09LeEJYVnBPaTE1NlBhRG5zSTI5Ymg5?=
 =?utf-8?B?MzFiZTdCM1h5SmNBUHdqbTBJdEhtUEZVWmdaditmbVZRNUJJcVB5NURrOTQ5?=
 =?utf-8?B?UU1LeWI3V2JDYkFsVUxPZHA2U0FCUW9adkhHVm9JZit0YTl0akp5QTFiMXVr?=
 =?utf-8?B?ZmJkdWFwQXZjLzN2TWJwdE9VL0V0di9hbXJXUU9yUEJydkxYMTFMMkZaOUlZ?=
 =?utf-8?B?Zk04UlphS3FjeFIySFlnQkdjaWN4MXF6SWM5d0lDM2c4UCtQc0dJaGhOZTF0?=
 =?utf-8?B?V29uK01SUk9XTUkvUEYreWZJdENET3ZFQm9wZnRrWFE4RUplVGYzTmwzMGdZ?=
 =?utf-8?B?b0ZaVy85bXJpM0JVVE41N05SeHFGdnBWSkZxTWV6YVFCYlJSL2o2T1FNSWow?=
 =?utf-8?B?UGRweWN4cVRnamhEYk04ZjQxK1pnM3NxR3NTanFaTVhDWkwzY2owWHYwQWRk?=
 =?utf-8?B?YjMwNFM4WXlXRzhLZjBlRVFGanoyWWs0eDZvWFVyVGlPVXVkM2hxN2swcjhW?=
 =?utf-8?B?NXJaYkFwc1lteDlScFphKzRLdE9sSit4Z2V1Z2JVZmR6clk1NkhRNFh3VEhn?=
 =?utf-8?B?QWJwNGtrbytiQXNoSWtKcWo0eFNoa1pOd0ZFaXczNytDUFpYUStZUnh1NlMr?=
 =?utf-8?B?T0VNWVA2L2hFbHZBVndiU3VWbDN2WnN6UGd4S1NoTG1MSWdjNUV5R3E5ZG4r?=
 =?utf-8?B?ZmkvNFp0SWlCUXpxeXNhd1QzL3lhQVhKUFc4L1NRdnF4YTd3WDBvRmNkVDd5?=
 =?utf-8?B?czBkT21PR0dmY25YdXVZNktwUXlZdERRVllXUkJWRXRJRHlHaFFLV2VRekg3?=
 =?utf-8?B?L1NUZW0wQjhnNk0zeVZDUkZMY05zRFN2d3FPdFdOdHdEdUdiTDV5OGlDQXpK?=
 =?utf-8?B?cDByV2RmU2c3WHBUSzQrL29ZRjMyaFdaa2dXZVVQZEtQRHloNHZMc3JRaWhp?=
 =?utf-8?B?Wi9hOUtyMk1rNFkrbERlOGxMYUhVVHpCbXlJdERiVzBIbkhEc3I4dE5aSFAw?=
 =?utf-8?B?empJcnBCOGJ4M1dGemtOS09ycWx1SEsyRG1BVWIrU1FQSDZvYlNRQ3BrcEhl?=
 =?utf-8?B?azlkQXNkekN4K1ZyWllmWVBZcllYUVN2NUtzRk1DNTI4VHVtalJGOE4yMk5D?=
 =?utf-8?B?K2ZTZ3BYSFpYTWR1cWoyT21uQkRJcVZmMnBCNVYzdVlrWS9BbmRDdkdKQTdK?=
 =?utf-8?B?aVNvb09KeU9hVHVzNnpucDE4K1pJelVpUllWN1JxNVBzaVRkNGxNTzN0amVM?=
 =?utf-8?B?NXBNdUdvYnVrWU03dVRWSXpHSlVHeHdkT2Nhemc2TGhhR3VEcUx0NnFuUURt?=
 =?utf-8?B?Umx3bnloQXNmbjQ5SWtrVWVlTXZnb3VLVkJXb3NOZXpvd0N5dWROam5uNG1i?=
 =?utf-8?Q?1jpnA3WAhUPBjI0tbGB2Gbg=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 7a78180a-950a-4346-ccba-08d9a8322b93
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:19:28.4475
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: I5Z73OYajGvFABiHeC/U8+a762brwt/72vqAlFsJWsaNU/ZSom4D42m/Q3etvCzLEkkf/HARJCNPAo7RPrzKOg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4601
X-OriginatorOrg: citrix.com

On Mon, Nov 15, 2021 at 12:03:26PM +0000, Andrew Cooper wrote:
> On 15/11/2021 11:08, Roger Pau Monne wrote:
> > Current ioctl definition was wrong in both FreeBSD and Xen sources, as
> > the MMAP_RESOURCE ioctl needs to copy back the size of the resource
> > when passed a zero address and size. FreeBSD encodes in the definition
> > of the ioctl number whether parameters should be copied in (W) and/or
> > copied out (R). The current definition for MMAP_RESOURCE is lacking
> > the copy out part (R), and thus the call to query the size of a
> > resource would always return 0.
> >
> > This change will break the current ioctl interface, the tools can
> > however fall back to using the foreign memory interface in order to
> > map resources from guests.
> >
> > This was a shortcoming from when the hypercall and ioctl gained the
> > ability to query the size of the resources, as originally the
> > MMAP_RESOURCE ioctl didn't need to copy out any data.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > Cc: Ian Jackson <iwj@xenproject.org>
> >
> > The change only affects FreeBSD, and it's only a change in a
> > definition of an ioctl, so it's unlikely to break existing code logic.
> > Without this change Xen tools won't be able to use the MMAP_RESOURCE
> > ioctl.
> 
> I guess you found this while trying to fix test-resource, in which case
> a further argument for the change is "the unit tests now pass on FreeBSD" ?

Indeed. It seems like this is the only instance of a resource size
query that we have implemented so far.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:20:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:20:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225868.390153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmayT-0007f7-5U; Mon, 15 Nov 2021 12:20:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225868.390153; Mon, 15 Nov 2021 12:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmayT-0007f0-20; Mon, 15 Nov 2021 12:20:37 +0000
Received: by outflank-mailman (input) for mailman id 225868;
 Mon, 15 Nov 2021 12:20:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmayR-0007ec-7S
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:20:35 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e41d566-460e-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 13:20:33 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2055.outbound.protection.outlook.com [104.47.4.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-5-0BGazeH_N_W54xiyjIwpZg-1;
 Mon, 15 Nov 2021 13:20:32 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM4PR0401MB2369.eurprd04.prod.outlook.com (2603:10a6:200:53::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19; Mon, 15 Nov
 2021 12:20:31 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 12:20:31 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR04CA0063.eurprd04.prod.outlook.com (2603:10a6:20b:48b::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.19 via Frontend Transport; Mon, 15 Nov 2021 12:20:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e41d566-460e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636978833;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=AOphCFdwbiDctiYtbm9KifiQWowoqmrLNt+MIbV//yo=;
	b=TgDCufOAjGsn8JPxFFqzXNYXVh2N0Jb4Q2KXgI5eoxEuAecbApb8IQk831N32ysLaeh+go
	2wBTqVO25PoJqsrwu987x+8RGGy9qPGQnRjJkhD3qD2RbMuaisxMNkgji4JFpQ0z2xWNlq
	xrlK7VTuKR5q26u1SmKTGpysERyNMag=
X-MC-Unique: 0BGazeH_N_W54xiyjIwpZg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g9dVGjTSMs1560LEzq0KZ3OepiQKKpqf1W0QR9sXJkQdHX+pCNFGHVKEqd6gNtqceD34EbEn3oBIfWphwVoQBnHZW4nB7h132TJaVnbj6NEaUisbH1darm4l2gtrqHsyXbAVkjX4D+yGnA2mwfPIAxIAuN9TtNiJKR7bsCMXiS2KkzfhMf+auKUxXW1xg87AzG2Vp68LtB+tZY53cZOvLRHI7/ZUg1geHtVQQ9jFh8ofgK44hR+HqrTZYKgUgAXfZhcpk3F/4J9ejWwNS8We7e3tbIx4ZthPn7uM+0meeQ3LB+qlC08Rb/41FGdESpRQyI1IDFNj2m969TYdPOoX2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fG9TaRj9u8VyrJyGdGSOl9z6ugFcZQP82E5gOGlRfR8=;
 b=Lhk1UsUl2bRoBdAM3yvkzK9jiVxQaiRheo7kIKAuXVgDRo6xqB4nrNEnolv9nFIHX5Z2rELn+ouOG3pDC4D42OEMvt10IN+q2Bnyz+FvJFw744vuY1WyUUvn/zCrGeMyqPT0i8br2Y7JuJeCmgtreH74roFwpK8v3i/3RkzGFs3OhEtNwaVEPDQYZwT2+SHmCn+lJqD0kjhi2SQ6MVJT9a4NIqWaY/eUIjcZVNAHZPj2tXL60FNx9AvRrRcH7/XjYPzxjwmPP5CAGIhtNjKT03CJ0FToC26UGxt5T68fBdCuXPQQAkd7xfCSGFrn2WCe8cNSV39tQyF7e7eZ97COAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <752a4740-6151-f364-7e05-ea533f0c8b4f@suse.com>
Date: Mon, 15 Nov 2021 13:20:29 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 1/4] domctl: introduce a macro to set the grant
 table max version
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Ian Jackson
 <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-2-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211115121741.3719-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR04CA0063.eurprd04.prod.outlook.com
 (2603:10a6:20b:48b::9) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7d90c141-45ea-401a-6d0a-08d9a8325157
X-MS-TrafficTypeDiagnostic: AM4PR0401MB2369:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<AM4PR0401MB236922D8D7337B1C1B7D319AB3989@AM4PR0401MB2369.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1UmiIsH9XSqG1dkwFdvhlPP+xxS69VHExNMU1YFd8WJkMK0KwRF7wJum949sf60HPuKcX75aqkxenPnQJpkFt8RhKtxVcG0j5Snc8kUTe8fDg/L4wsGSnwIomj6z1OCMWY1AIFahgfUf3lkEtkjiOUECra7f4iyWO8A31H2hWmKfDH3q1UMWi4CGojzFiX3Jf//BfE7vgpf5m0GKo7oAElLTypXZBl9UX13yKOgQlreNS+7nbB3W/6qlwLEGBgHDQhI4CeBXNU2TV2KQLwmkdfb6WmFaiHoBnlpAPY75W4PkWsveW+x6pqrEAVRAXch3BBWGzmDUt3k0Z/11CnHDdEBrupDY9DtOdIE6iLBeCErKiR4iQuBOmmxrjUty79mT96I5gPRXWklwfUOSk2YjCk5Uhvafmf3Sa+0AZ1YNX/pE00CvuRfC+JAis5URmicYZAhowzfdAwYmAZyvweVWHYGXRWVBMD1HvRv5CBZ/tznSRcQGYdQUv3kKyp1lwzzvacJQnAjmcOEpm0FocAlkta6kSjgMP9LxT7lB6iscA1vk9ThnlrnIaC5kv0SK2d4ShrZDz820W5+orvw0XdRAmxvsQlLRgMWhprrXo9fy2FC0WDWg53md10jMpJn00ZyGF4b6S79vpTreYpL8iPgimLGln6F1CJXNB1NXUSoHdN/5XkM+o5d3XRWCoeZo1T9vO8vDFASOSnPoKQSRYV/4ZzeISHEFdU43Wj+erpUPXBM53X5cTJ/wod1vJO6A0Hrz
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(66946007)(86362001)(956004)(83380400001)(16576012)(31696002)(2616005)(66476007)(316002)(26005)(186003)(8936002)(6486002)(7416002)(31686004)(5660300002)(6916009)(66556008)(36756003)(4326008)(53546011)(38100700002)(4744005)(508600001)(2906002)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?p2SVtcBkXzNRzfDFTZQ4ioyyaORAB8iHjlSnKHjqJN2d2gS5mY0vnYobhWp4?=
 =?us-ascii?Q?y/+J2Xwzn+jrS2scek3odvcy2hPQkiD6W/GUmWosoRC67tMoYxeGJ9/aBNOy?=
 =?us-ascii?Q?7NQqCPHD1llGVBp9HG4J3QZhFbg0zqKkBlu+ElsW2DZkvUGJJhQhlURsEGMf?=
 =?us-ascii?Q?znDedX22OOzqrV3hpleulGjytE+vI/sgQU71Nxz1j8CtsnU4mgC1vA3JTu8T?=
 =?us-ascii?Q?io0iBIwjkp1UI7JsB/RBCUBzsnBI8C1/5GbhDlR1XET4GNY43PDJgWjfYUow?=
 =?us-ascii?Q?Ch8R/O+y5Y4iP3SEWVtgyuB7dKsuG4Zec+WHA2Fb7FCekTJ2HoVrIPENa0gw?=
 =?us-ascii?Q?+trG6SPmesmGCnnLKGvH5o+qbjQZT1MzBoxgOZh1d53P6dOIHvA2f5DTVT87?=
 =?us-ascii?Q?6aHvHmwIs8IgVxZTf8bjCMvd+GuPZKAP4VQCgkqLiOGCZFS5ePvHNJmI5W4H?=
 =?us-ascii?Q?Mgs+E8iv5LCXQsoxvkzb73nhimeut++kMOeab6LyWlmnirFL6rZewCNuMpCe?=
 =?us-ascii?Q?7PEk7rDXPaNvpBongFIthH02IPxWmq3XuLD7HM+VnFnWisvx7wc4nfm746Qu?=
 =?us-ascii?Q?LP/lZDZoK6HGUOba09RD0MYm1jYHqdWAg1XNhsZSFAVhR9OFRVhmjSr3zuuM?=
 =?us-ascii?Q?FoZ5Cmn4wWWpMxhgS9FusByh3/4+Y1HbdfX+G+VFAWi/+oaOiFRyoitBq1ev?=
 =?us-ascii?Q?PORqMx03DvCvW8YpYEaRJSVzt590RPOeP67ULTajGpeeRp8iBXQZfmtIQGOn?=
 =?us-ascii?Q?OljCvtSmqa/eX29VOQFl3iYethNc3YYY3DS5dMHPEr7pUpPAhjOLSQ75/2v9?=
 =?us-ascii?Q?LDL8Fjvlyy+tN5xLayys0u6KBgixiv7MVWti0fzw3NbpFYSq4FFbHAAcISgF?=
 =?us-ascii?Q?TqROMlYgiiZg+pSmwY+m8FC29jkn8SUoZQ56Gq68UOK9dQrh56QV3fTT3mSa?=
 =?us-ascii?Q?/dQmCbRSu19wji+/bsC+6ripjPONYLOlzNSzVxSF8jEunxnXJ5KaM8/W0Wmz?=
 =?us-ascii?Q?n+4acotnsKyvy5aagtSgA2FO/ll+s5MSPB2/GzU53epMkmtjGx30vORi+TmE?=
 =?us-ascii?Q?noltACbgkuTuOT3bA2Wh6sa4woP2FZUkvKbocGTO/pqx/M0OdunI/9OsZHYV?=
 =?us-ascii?Q?9rhNSqKgwT/GbGKeoUQgLXSundqMVu7mXP+VOAEztVhk35j78Glp1YkdFxTr?=
 =?us-ascii?Q?pMF/6eFlUerBC1oHJHXlzFEQB3+xUNRLElVc3NAF3NkU5uZNzjFubfQ3YH45?=
 =?us-ascii?Q?+AzA5lzxMcC+WeOxErCJknWJxoszrwVju0ht4qhHGRTnD3DFABN3t/o/jTiy?=
 =?us-ascii?Q?chrHU/w2n41Uuauwcb3aSFIZJ/cT3v0G9p8iCZpo9p3A2/g1phEPfL23myjp?=
 =?us-ascii?Q?nNKzywDzP1ld7CTcXiwbGk7yNEAKfJ8n5OFTWoE/wKP+U9fb3t+xS4rEIlux?=
 =?us-ascii?Q?iIafhOwa9HvNi4l+cs89WTHiSH0GMGVcmom/SYqZ0kLN/2keHXGUV9pBDVCj?=
 =?us-ascii?Q?9pqr2VX3A/DBjhlOZ48VtGHJ7ptlrEc7A5DqG9edSvKyYmgM7nznVr/wp6Ba?=
 =?us-ascii?Q?VTyibpKAhQ9vEqgxK1YYgiVmByMu9STsvVe2+kMuKSKYg9HxYsFI44ZOWed4?=
 =?us-ascii?Q?uhL9PljU4IWQ8Uzx3zwvK78=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d90c141-45ea-401a-6d0a-08d9a8325157
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:20:31.7150
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: T+W5sHndbrXRJLK/d1PSNPzBq/6iKWR3eG9EbWmpSWdmc/bKArFO3/EUtvuUIysZM7iU7YMu2eh0VERvMjVDCA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2369

On 15.11.2021 13:17, Roger Pau Monne wrote:
> Such macro just clamps the passed version to fit in the designated
> bits of the domctl field. The main purpose is to make it clearer in
> the code when max grant version is being set in the grant_opts field.
>=20
> Existing users that where setting the version in the grant_opts field
> are switched to use the macro.
>=20
> No functional change intended.
>=20
> Requested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:21:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:21:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225872.390164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmazL-0008GW-F9; Mon, 15 Nov 2021 12:21:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225872.390164; Mon, 15 Nov 2021 12:21:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmazL-0008GP-Bs; Mon, 15 Nov 2021 12:21:31 +0000
Received: by outflank-mailman (input) for mailman id 225872;
 Mon, 15 Nov 2021 12:21:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmazK-00087p-9D
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:21:30 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f968181-460e-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 13:21:29 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2057.outbound.protection.outlook.com [104.47.4.57]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-14-kVGN6orHP36SY6NkSVmKbQ-1; Mon, 15 Nov 2021 13:21:28 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM4PR0401MB2369.eurprd04.prod.outlook.com (2603:10a6:200:53::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19; Mon, 15 Nov
 2021 12:21:27 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 12:21:27 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR04CA0075.eurprd04.prod.outlook.com (2603:10a6:20b:48b::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Mon, 15 Nov 2021 12:21:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f968181-460e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636978889;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=M4zMd4CCzz/c4u/RExdROU+OIh/jY1Mw5SUIQH0nMKI=;
	b=efY4zA+YcIEAW3z8sxuWM9LHYkl5zmZFx47We3fXjs35VD98yWCwp3F7IQWIXur1s5+c4d
	fT9WFM60LITr5+PZBWUdHlGjHb4cL+W3Y+ahC6vTsGaBJT9/fwACoSdRcQYRG7ae+HAwDg
	GQd1cJ6aICVRRxB1tdki8URfqwo56Zk=
X-MC-Unique: kVGN6orHP36SY6NkSVmKbQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VrIqfMqyoaUEFXyGrD+SxRBLVnWEPmePLsndz9zXZKJfRyTQRzaxCfREeZPcdQeuzELaR3K1p51Z7LRX1xfXcKh+N5sHAc6Cxul3Q35a/EU5xMEhn7XwgcaChsqVX1rwuRDW799KJpeX232FyjrPf2sb7ZVyzDFRrV7EiUiWU312OUZHw3Jxnls0XLq+a1Dw2NdEq0w6xqf/xyf7JozdMjaBi4Jf55vlp6C65V61/d2B4QAra/KXADzQhqj7Kjw9XN10alBTgNqdNbxk0AOZOzPhjRt3Q2OKp/lEs5Ml9Ax53+2EgZvpOTMhtlh3KJGxfsgdE/3Xl1ny49bJ7WX7tg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zbUnondGCrQdZ8lyXLh39tdxTfLNU+0exl2H3Cl0qqc=;
 b=Ho+Ipjka+xU/W7gmX1IGA1zMIyT3J0O5Ni7aJgxM31nKj9EHz4u6Q1tplQ/WCJXz8OrzF0P4ktTI2RddVU4MEDHlGfslaTOtuwSw8gBsblVofesSorrYhAx7lOXKVttcQF1tz4u7BREUUoygQMqWblqezLrx5v+ZVWA/U24g3/EbHAY/lMbxawFssmPy15AmPapMG6uEB2pbBPNoAtB/wngbr7/TQH5aiPht/R82qqOqYuy6cZQbyg3fkYkZM/nLy/DTFX71tkWrySEPcISuk2lCEtKN8PPoBECxMG8GO2ELR3UfRCsohlhhB3vV6IRskNdrGpOrGgA7WJstNuXZaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <da097321-028f-0558-83e8-c5abd08a5504@suse.com>
Date: Mon, 15 Nov 2021 13:21:26 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 2/4] tests/resource: set grant version for
 created domains
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-3-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211115121741.3719-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR04CA0075.eurprd04.prod.outlook.com
 (2603:10a6:20b:48b::24) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4a6c39cf-819a-4c46-dc57-08d9a832727e
X-MS-TrafficTypeDiagnostic: AM4PR0401MB2369:
X-Microsoft-Antispam-PRVS:
	<AM4PR0401MB2369D2D63EBAC982D3E3109CB3989@AM4PR0401MB2369.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	rJpZs/DTG/GPFm3J7tWrbFeqDQ6QGGTgjI4CwR+0t9CNOubD01MlgVuWwvtdKI0BFlOhqlH8wzwf4HnQ8onJ4BuVE3tzVkZ3nJlnNVR3Z5pFtc79qT9REbulCvBgENggL4CHnJcBls33RIgOdrE5B6gty2m91yFhIa2N4CohjFl1MPVKbFgsMraK3ON73Eu6dZ/MFS9Vc7KL5f2xi2ttWC7swG9wZfb1lrujs/wuIO6ut5ABJhplKXWZoiaP5p1a/2C6qJL0YW2ckwSdeGTNzEF3Y6kZ03o2e2+V/gPIhU+dW7auvHpz0N1FeH1h2KDWkqmCqWsZyHrbQrWLMplaVMrwQgjnnVDK6h0+7fzkGm3mUeSVrByDaGIXCxFZ/LQEh9s9HWxqYu5oRiqnp1ypm5pJ7v/i3SYeXetdBNHu6ZpVpq17a9ToeiH86ie9CqmV+aIl9zgmeCfIHNvS8UtGW+NZHs2apDtNs1KIIdJy98Qvs3mBOPsmNV5dZXtH/UdbQHPYjlqdmS9YOqIDgdNwSoIW5/KTjOWQRnSax7QMurwhpjA+H8kRnhjWVGPv150mUKU28Hu4UZqioLxAX8fgRw8Sjo3vJobTITin2JGM6LG2SPo3AyM6zhbsTHC2O1IvUh1Y2jiMYcnlrKO6eEd93xFAQ1blXT6dQlT2TEZmXft6bFUY981uXViuy8iBmL9MUWphKHgJcDOI7KEJDmeeJvu/J/ekQ6AK2OPaMGm9ESobdROvmDDPJu4NCm0RnXpz
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(66946007)(86362001)(956004)(16576012)(31696002)(2616005)(66476007)(316002)(26005)(186003)(8936002)(6486002)(31686004)(5660300002)(6916009)(66556008)(36756003)(4326008)(53546011)(38100700002)(4744005)(508600001)(2906002)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?VIyY/rOU2AS7/dzwISGgw9fYED/6k8xL5CFW2bdZZYKSLnMXPgJl5mZ6s57u?=
 =?us-ascii?Q?pA496on4vbLjjrB9dd+mfP9LsZkAKL0CWmX9bI1wjIzY9ee7UgsoUazYUK0j?=
 =?us-ascii?Q?wxti2TCBkx8wp9V4RWMqRh0ZbSkp8C1WtoTHnmDRwpz9f31EIcn5f+vXVHWg?=
 =?us-ascii?Q?E8Z/zfA26nnkHond9w+P9NMGFLQFKpi1O9CRA2GIChw05Nt8gQ3g9Fsm4rlH?=
 =?us-ascii?Q?X/DgEE1iQ9qq1wlZn5X48/poaINKEJB0Zhs4xdVD1c07pesz4nnJG0RWy/Xw?=
 =?us-ascii?Q?/A8bWb+USKozRC6Aeb9b/akDFnxoJgL/mIBtOLDfeENnsKfAWB+CT+KRkQEp?=
 =?us-ascii?Q?gm8AGjixGbyWKObuAcFPMiChRMcwMHFV8WshRxuKDb4ttvdCHuCCHgetRZj/?=
 =?us-ascii?Q?OMnUBXJCJTpU3atF8jgarfS4lP8eJ0wnwb3JfQ+0d6m4wZtLV8VGKVJxYP3Y?=
 =?us-ascii?Q?blasKP+snUC+GiBXu0yJPFwel+hjLM6nWUpdOR1OKBT6R3b72BiAeLItdabH?=
 =?us-ascii?Q?I3y+39BmeeLgg5qfEucQdlqno/CgIoupnAGan1pTrepZvOZYG+zhmSFGQDpj?=
 =?us-ascii?Q?RWd/atQbwWUZklkIZPjgash/L0rnbdkBpxY6MuOZEchGWOmBw3nYr49AsKhF?=
 =?us-ascii?Q?QANQ5eyK6zfrZj+gCDNcQHCnIMpeQ1IjYZniy2xB4Ka5bbV+kFm5Gvuql1QN?=
 =?us-ascii?Q?KCZ+e4s/7arFoFAB/r+a2VsXaaTDu6ljBUm1uRXCvAxGLHMB+7Hy+Fo1L+q6?=
 =?us-ascii?Q?0rWAH1YfFSJt5frY+d//2Wu9AqlvoTOg6JZy+YYDgnK/HjfUF/PrFNXkTHdM?=
 =?us-ascii?Q?sAvygA4mwQQN3tBcZ0LokfDmdKGxLt/GRMLtF1ZVoHJdG5iiyo61EE2o2gwz?=
 =?us-ascii?Q?2IjULKiMu3tycClyKQSZa8afJmDNpUUhSyNminigCnpuK3aeVGkp6PawCH4v?=
 =?us-ascii?Q?iuXGN7vkNi7GKrQVCRUGlcsIFmyoVdg1PFgcPmwWQFjd3sF5vL0yU9t4/L9H?=
 =?us-ascii?Q?2l3bJw/8FvCUH5TxdYFEfstCNblm0e62vgXrhrhu8QW5QVlzZzxO65RFSOSG?=
 =?us-ascii?Q?QYrailRjwVRLboDJbomdUjPnEIcTf2PX0PbtZDoH3WKuEdIhP/Y2N9GL1nHe?=
 =?us-ascii?Q?UFJZPdsb+5Q6G5/fP4o1WDg/xIDd1uxUR1UX4nFSbA/vngzCassc/KnM2XoK?=
 =?us-ascii?Q?ltiIIsWAKdW0zWEMdYek1W3Q7rGd4bgkHg725v8RnWydX1MJSPhwSahNz+g9?=
 =?us-ascii?Q?f+U+X66nTyD+1j3ABB74hQj2kOdXUOGbHbnnArWz05Uk+84WUQKlK0Y0UQgD?=
 =?us-ascii?Q?iCDw41/swMOvshOjaAoNNG/Psa5UEhsW2/8wsoLwL4oC7Clz7TG++HVhdm90?=
 =?us-ascii?Q?h3e2tCzvbvkE4/NSgug3VBKGThfr3Xs42Zk2GFuwoGTZL77/h8sym1hvOGve?=
 =?us-ascii?Q?g47hORjD7BWVYVx/wPOOx5EtUO6JMbJeZwnplksApjjGc6+3E9/Z3S0Uwh6V?=
 =?us-ascii?Q?SziRHThk6qlGY9HcW/OiX03z5l5uUfbDRY7ThyYJj9Xgl9t93xDBwf+lAUw1?=
 =?us-ascii?Q?8f0eppsVWXChCwJn06pGExotyuVmJyqK2udxBz67bjARpribsRgf8mnlsH38?=
 =?us-ascii?Q?ICBwjgpmbAUfXDDbuumtxL0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4a6c39cf-819a-4c46-dc57-08d9a832727e
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:21:27.3632
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: poZ+14VUNhqhmcNT9/R6BgtA2GXPCx2iihhSJhUbYNuLZExWmL4SUCdYxB5J7s+ynVTeutM8bDT36ILITpBNqQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2369

On 15.11.2021 13:17, Roger Pau Monne wrote:
> Set the grant table version for the created domains to use version 1,
> as that's the used by the test cases. Without setting the grant
> version the domains for the tests cannot be created.
>=20
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:22:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:22:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225876.390175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmazn-0000QP-TC; Mon, 15 Nov 2021 12:21:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225876.390175; Mon, 15 Nov 2021 12:21:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmazn-0000QI-Ok; Mon, 15 Nov 2021 12:21:59 +0000
Received: by outflank-mailman (input) for mailman id 225876;
 Mon, 15 Nov 2021 12:21:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmazm-00087p-78
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:21:58 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a03bb729-460e-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 13:21:57 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-6-mvcKrpd1MpWEBcQNmzrDCQ-1; Mon, 15 Nov 2021 13:21:56 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM4PR0401MB2369.eurprd04.prod.outlook.com (2603:10a6:200:53::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19; Mon, 15 Nov
 2021 12:21:55 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 12:21:55 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR05CA0020.eurprd05.prod.outlook.com (2603:10a6:20b:311::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Mon, 15 Nov 2021 12:21:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a03bb729-460e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636978917;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jlV/dch0PV1U1JmSwGOFez6YVimpcgHdahUu6kUHod4=;
	b=nP+DCpg7ODYZ+GAT4FveFQDYUFVqf2DJ5T2bhNrQ5qLpm66tBzrIGGcZeGZ/T6/dLVtUFO
	z3HPRb9VgN2IO4jTHxHsr4biMNElgM3DYQzkNU5j2XLtCecZo5uSIf4/fPmM3saBeTH/RE
	2XGCPrsA6wtOqyF+BaoLBG+RfoA+9bY=
X-MC-Unique: mvcKrpd1MpWEBcQNmzrDCQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=c8npMUUkPnyBg9yXL7nlSY+fYn9XabJJ2r6k9/+CutA1LGNdx+MmIqhtJCDoiCBc1FjJZc4PyP/iW1SeufH2LleAKFPPygUXBC/z86OGcagtLYuvtgeCn0d0sGpX2VREiT3OXBhFh/MnhHEaAFUce8K+CTg+5Xk/bVvXUaui9hY04zQe27j3iKda9k5+VYh3XdQdUa3Cz85UdqPKEf6Y/zjzxqOmS13iySgLTODuZTX/c47kDpQ6zYeUK3gu2zkG7c73MgclJhUBqt1nnlMF1jRzbuJWaEoD1kvheWuviDTJttNgapR2zOKCdQa3yiRo8m+cD4W+43M5rQOWu8MNow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=o0ds/jHOmhhAX/8VReP1wD1CO+MOJ6ym+WNZDbKLFWE=;
 b=mpoXB2FF75KhJ+9vtKmq0fZDseqGFAK0asK+TQcVK95UhHKn5DbyLAKjsli8R7i1NRGrbPyNTfX+vTztXjXdj/k2yTVNG6IwjyzfLzTBGXSF/mL82+rzdVfFm0BYUm9BXpS4IhUWpL96ZHowlAY1AEbrq/C8E72z2DugU7BOYxGyPEZwxzLnEoefU/Wt7gxHQUgwwkM9/xFXyFTU27p+aYBn2MOsPYELd9QJQpPvRNIvPAzZaBh/MF5NSmKZL8/KA2Z0Upabkx8nTAyNEzpwop4te77HsqLxvBHqnHVFC3srgRZAeelwvEjUk/Cug8G2McHDSCFbd8iJRUBSvUsoVg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ef51a5a6-52db-e2a3-a1c3-5026f6315d38@suse.com>
Date: Mon, 15 Nov 2021 13:21:54 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 3/4] test/tsx: set grant version for created
 domains
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-4-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211115121741.3719-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8PR05CA0020.eurprd05.prod.outlook.com
 (2603:10a6:20b:311::25) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 59538098-aae8-418b-1098-08d9a832834d
X-MS-TrafficTypeDiagnostic: AM4PR0401MB2369:
X-Microsoft-Antispam-PRVS:
	<AM4PR0401MB23698682D4A6743880D72D51B3989@AM4PR0401MB2369.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	e1bz+3lRjQGPkRRoH0VUU9G8C2NeeMoZUcWJ/xm+Vl9moNrCWagZvL7Xih9I0zx5peDn7hBiEaYfV7hrqz0OUI1/ccLaXUX6rurp+6P+Y/l/76CdJi4UyxsAnvLJdR23B+d9b5MB80BpxQ9SEEp0d6Rr/a+Tgd0W5oAhCESdFx/t/ww/XR7w07zTdPEr48HYZab/vhlQv6coXI1cUPIh1gkBK5prJvJpFfjO2klTzq2oEih69KgC7OB6SrHbqCuosN/QPpPib4hI5k/WGjIqDe5q3c2pecnTkOeC58jzjU1wfls8PhXaSDZeOUhgSF2xyrXcLU03d+DO8cCbE6orpaD6/q0GJH6gbt3uExSIyAEgBUtNCck/jXdzbRj2Pr2P3Lix+4iItzWaCChqpqpfmMHX4L82sbqn+ESlMPstuRziY5rnEgzXK/9k/eHJXywY04nDLEuZ5JKsuAO5N10UYkD4Ex5qFivmrpORk2XT4VRjIP7vUEzgO1vDlyr7BQtA6znIk8ZhdmL3oNhUbuNphPYsvH6rL5kqbJfU8OV9X4jftGWlgiVqhjkO9+xkfk9xYjt7nJy3vdF1CIUvGSRNf6vq4IJMHUFdr6YMS2FbV+XimZImsaMV1v5bDI5TklVRmDzwixrCVmSExaFrJkXwM6bzCW8zVCE08JToCsp2dsfzX68aMiceMsTQxYgPr58TDj9OhtbO1j/xb1ez8UsSQGeIJo39/Dh97KrGf0uslj5LPkgqo7LC626Atgn86VLR
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(66946007)(86362001)(956004)(16576012)(31696002)(2616005)(66476007)(316002)(26005)(186003)(8936002)(6486002)(31686004)(5660300002)(6916009)(66556008)(36756003)(4326008)(53546011)(38100700002)(4744005)(508600001)(2906002)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?tFcVye3eEmsO5+KaMfSw8mTqSKle0yUPadSHgzG/tC3/9YlFf35Q/ZkyclLV?=
 =?us-ascii?Q?DfQ/+2n9g2jf9ze7uFUy55OBhu+F0kVeQWPJrU+jiNlF7pXiljvdpQGY5skg?=
 =?us-ascii?Q?F9qTxe8o2ejZa6TJI/DpVk3WCezWtJqgKhPEMzRTcUHJHNQk3TheBkFdL3J4?=
 =?us-ascii?Q?AStnKuf8bcz6ocsoIYuOGtSRS/BnLpL/gNEW+q5Rk1V9jM/pA/SJHEqVjZss?=
 =?us-ascii?Q?YhimuKZYWQaLOYJKp0laJrlR7BmsXxwQOjVThk/xWROJxcJzrOgpa3Jkaa0y?=
 =?us-ascii?Q?Nz89bnMpHJILnGGrVr8dJGiBgvf3+UwgeOCRkP7h/njvZDGea2Qvd9LT4yXr?=
 =?us-ascii?Q?weFl9QheNiLmRDWOeOkwR3HyI1562SxmtqCmXZEwCeeJRcRqbv+5fxgQKsDF?=
 =?us-ascii?Q?6T99XB2eTRYZ+IstpOq3XlKuHi19ba013qRvAIUBLpB5CS2ahXa3FP/b55c4?=
 =?us-ascii?Q?8bL7veNBMAZClXTXfsg/V9vLs37X2vW+FdvptHxwXpQXKBaS7NYOBaYqSbg4?=
 =?us-ascii?Q?vJraNlFUbKXKmX/LblzG65jdk0NnFHG+aHtDPQmrl8HV8NvyspJZFYAm2PZ/?=
 =?us-ascii?Q?QHO8QqwFdlDxIp17CDesIuYGoOYhuJ1kex/HlG+PaWg1NnxZnlaHp+b8zXm4?=
 =?us-ascii?Q?d6VGpZ+4rYYkAp6pVXi3/NzR8Eklw7FOkXPMQ3c6Ip2C9dzRF5SDck8VNI7c?=
 =?us-ascii?Q?Ln/gu9H/lfVwtfQeoQdT8DU+6wE8WRPD2g8bBBCYpgqRP1opyJ3YeuAHW1V7?=
 =?us-ascii?Q?T+rUrcD2YGqR5U8Rnsxo2LzYOe9KLL0oN/rVddNZfym3ceEhkwHH2dFyNdcR?=
 =?us-ascii?Q?W1yvxwG9lKFRN2GqPb2OdOIccbLuVd4KkeW5GcAMNpZX9TLJxzNnFtFVXICw?=
 =?us-ascii?Q?dRBkV42WU/QJ3OlWjecb3i2D0nC7FqePCaX5+oOGwkQC+U8pJzDxh0U4FT0A?=
 =?us-ascii?Q?s8hvWZU9z0w6y4wV0Y0/jZfYCiyLM7/BoF8kVfthoXSm4ymF6pDlmuy3wPzx?=
 =?us-ascii?Q?A4jxsHYqli3+GPafNDwdVl9VEQZNlRQ4xU6mVDyjkmzYVjiItl3KspiJiOi3?=
 =?us-ascii?Q?2dLr/QSnuWWji6kAsQh32KMa5aT8cLaGbTbpw7oygPkSOpC4YLWx+Qvkk881?=
 =?us-ascii?Q?ZpUSkzB0rgCZxjHpmNKOQ6j2VYv30cw6V+FBRr9ptjF6veGCwGwc81KsiUfx?=
 =?us-ascii?Q?/eVxGKKWBkcsjZhIJEC3tleH/IqgP9ESjn3qDBJGtqfQPQhAcPQfavovK9BS?=
 =?us-ascii?Q?t0GKhG1LLbHNtja+7bHwO3Y1XibjI/ndgx9YiZEk02P9retKBWVwFll3qrx1?=
 =?us-ascii?Q?a9m/Ts2QBbFyZ8ghl0uLQ4o27kdujrMN6kScPiTO3jvl8vNyULCpOGKww4eu?=
 =?us-ascii?Q?MkvGsOxsh5ZHLTtDHEmuV9RgieYAkH3Siv5ys261OVt1AX7bzZDkbmGenC64?=
 =?us-ascii?Q?AYjuufvW7wAW6qhTiL0CTnogB3Y5ic4HicGeB/fDEYRoEVb5+4ByqzHKM2Lv?=
 =?us-ascii?Q?1Wy3JUsNR1muJZ4AhdUD1n/QJ+02qvsKDWzyn7HqMsBFh36PV6UlWAXKCH9c?=
 =?us-ascii?Q?rVk9GOwfxh3A6GC8UR50Aj62TVFU7Dj8VFpwAJUmkWnu5E+w7hLVWb7Xt7Lk?=
 =?us-ascii?Q?nX3gXPgQ4hoWd2jaUNhMKns=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 59538098-aae8-418b-1098-08d9a832834d
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 12:21:55.5222
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Y/XSwbBhdvdMnq0AR35J/xmpIl9m9+gy0nQg+s5zK3SePhoAk2zlFxC6xHrtrjHDCB9FZrxB3JoxZQP54npIjw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2369

On 15.11.2021 13:17, Roger Pau Monne wrote:
> Set the grant table version for the created domains to use version 1,
> as such tests domains don't require the usage of the grant table at
> all. A TODO note is added to switch those dummy domains to not have a
> grant table at all when possible. Without setting the grant version
> the domains for the tests cannot be created.
>=20
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:25:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:25:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225881.390185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmb3V-0001Bf-Ce; Mon, 15 Nov 2021 12:25:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225881.390185; Mon, 15 Nov 2021 12:25:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmb3V-0001BY-9m; Mon, 15 Nov 2021 12:25:49 +0000
Received: by outflank-mailman (input) for mailman id 225881;
 Mon, 15 Nov 2021 12:25:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmb3U-0001BS-8C
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:25:48 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 28706ddf-460f-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 13:25:47 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:59200)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmb3R-000Zyl-8a (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 12:25:45 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 5AFDF1FDB0;
 Mon, 15 Nov 2021 12:25:45 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28706ddf-460f-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH for-4.16] freebsd/privcmd: fix MMAP_RESOURCE ioctl
 definition
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Ian Jackson <iwj@xenproject.org>
References: <20211115110851.1462-1-roger.pau@citrix.com>
 <11c7c89d-ba8f-e1da-e2af-4ba186f92fbe@srcf.net>
 <YZJQS5bG+/7M0fEh@Air-de-Roger>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <cc65f5b4-6bf4-5580-8f4e-42c16d69179f@srcf.net>
Date: Mon, 15 Nov 2021 12:25:45 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YZJQS5bG+/7M0fEh@Air-de-Roger>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 15/11/2021 12:19, Roger Pau Monné wrote:
> On Mon, Nov 15, 2021 at 12:03:26PM +0000, Andrew Cooper wrote:
>> On 15/11/2021 11:08, Roger Pau Monne wrote:
>>> Current ioctl definition was wrong in both FreeBSD and Xen sources, as
>>> the MMAP_RESOURCE ioctl needs to copy back the size of the resource
>>> when passed a zero address and size. FreeBSD encodes in the definition
>>> of the ioctl number whether parameters should be copied in (W) and/or
>>> copied out (R). The current definition for MMAP_RESOURCE is lacking
>>> the copy out part (R), and thus the call to query the size of a
>>> resource would always return 0.
>>>
>>> This change will break the current ioctl interface, the tools can
>>> however fall back to using the foreign memory interface in order to
>>> map resources from guests.
>>>
>>> This was a shortcoming from when the hypercall and ioctl gained the
>>> ability to query the size of the resources, as originally the
>>> MMAP_RESOURCE ioctl didn't need to copy out any data.
>>>
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>> ---
>>> Cc: Ian Jackson <iwj@xenproject.org>
>>>
>>> The change only affects FreeBSD, and it's only a change in a
>>> definition of an ioctl, so it's unlikely to break existing code logic.
>>> Without this change Xen tools won't be able to use the MMAP_RESOURCE
>>> ioctl.
>> I guess you found this while trying to fix test-resource, in which case
>> a further argument for the change is "the unit tests now pass on FreeBSD" ?
> Indeed. It seems like this is the only instance of a resource size
> query that we have implemented so far.

Well - it's used on the domain create path ever since being introduced
to avoid the "shoot a hole in a superpage in order to map the grant
table" problem, but it does have a fallback which is probably why it
went unnoticed.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:27:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:27:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225886.390196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmb4c-0001nt-OC; Mon, 15 Nov 2021 12:26:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225886.390196; Mon, 15 Nov 2021 12:26:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmb4c-0001nm-L8; Mon, 15 Nov 2021 12:26:58 +0000
Received: by outflank-mailman (input) for mailman id 225886;
 Mon, 15 Nov 2021 12:26:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmb4b-0001mq-G1
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:26:57 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 522a1456-460f-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 13:26:56 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:46854)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmb4T-000IKi-id (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 12:26:49 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 0364F1FDB0;
 Mon, 15 Nov 2021 12:26:48 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 522a1456-460f-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH for-4.16 1/4] domctl: introduce a macro to set the grant
 table max version
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Ian Jackson <iwj@xenproject.org>
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-2-roger.pau@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <407bf249-c3f7-f75c-1ac2-4b40d8de9424@srcf.net>
Date: Mon, 15 Nov 2021 12:26:48 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211115121741.3719-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 15/11/2021 12:17, Roger Pau Monne wrote:
> Such macro just clamps the passed version to fit in the designated
> bits of the domctl field. The main purpose is to make it clearer in
> the code when max grant version is being set in the grant_opts field.
>
> Existing users that where setting the version in the grant_opts field
> are switched to use the macro.
>
> No functional change intended.
>
> Requested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:27:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225894.390208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmb5I-0002Mu-3C; Mon, 15 Nov 2021 12:27:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225894.390208; Mon, 15 Nov 2021 12:27:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmb5H-0002Mn-Vf; Mon, 15 Nov 2021 12:27:39 +0000
Received: by outflank-mailman (input) for mailman id 225894;
 Mon, 15 Nov 2021 12:27:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmb5G-0002Md-R6
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:27:38 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a39a0a2-460f-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 13:27:37 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:59204)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmb5E-000bvw-6x (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 12:27:36 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id D5D571FDB0;
 Mon, 15 Nov 2021 12:27:35 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a39a0a2-460f-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH for-4.16 2/4] tests/resource: set grant version for
 created domains
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Ian Jackson <iwj@xenproject.org>
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-3-roger.pau@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <048e39cf-f322-e578-a1a9-65c71065d6a5@srcf.net>
Date: Mon, 15 Nov 2021 12:27:35 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211115121741.3719-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 15/11/2021 12:17, Roger Pau Monne wrote:
> Set the grant table version for the created domains to use version 1,
> as that's the used by the test cases. Without setting the grant
> version the domains for the tests cannot be created.
>
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:44:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:44:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225898.390219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmbKk-0004hJ-Co; Mon, 15 Nov 2021 12:43:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225898.390219; Mon, 15 Nov 2021 12:43:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmbKk-0004hC-9e; Mon, 15 Nov 2021 12:43:38 +0000
Received: by outflank-mailman (input) for mailman id 225898;
 Mon, 15 Nov 2021 12:43:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmbKj-0004h6-54
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:43:37 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a64e05ec-4611-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 13:43:36 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:59206)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmbKh-000qDw-8t (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 12:43:35 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 2A2B91FC18;
 Mon, 15 Nov 2021 12:43:35 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a64e05ec-4611-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Ian Jackson <iwj@xenproject.org>
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-4-roger.pau@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH for-4.16 3/4] test/tsx: set grant version for created
 domains
Message-ID: <f544fcaf-be7b-6c2c-7e9f-7847477739a9@srcf.net>
Date: Mon, 15 Nov 2021 12:43:34 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211115121741.3719-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB

On 15/11/2021 12:17, Roger Pau Monne wrote:
> Set the grant table version for the created domains to use version 1,
> as such tests domains don't require the usage of the grant table at
> all. A TODO note is added to switch those dummy domains to not have a
> grant table at all when possible. Without setting the grant version
> the domains for the tests cannot be created.
>
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
> Cc: Ian Jackson <iwj@xenproject.org>
>
> This patch only modifies a test, so it should be safe to commit as
> it's not going to cause any changes to the hypervisor or the tools.
> Worse that could happen is it makes the test even more broken, but
> it's already unusable.

What do you mean unusable?=C2=A0 Other than this, the test works.

> ---
>  tools/tests/tsx/test-tsx.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/tools/tests/tsx/test-tsx.c b/tools/tests/tsx/test-tsx.c
> index fab99c135e..f1dcff4c30 100644
> --- a/tools/tests/tsx/test-tsx.c
> +++ b/tools/tests/tsx/test-tsx.c
> @@ -444,6 +444,8 @@ static void test_guests(void)
>          struct xen_domctl_createdomain c =3D {
>              .max_vcpus =3D 1,
>              .max_grant_frames =3D 1,
> +            /* TODO: switch to 0 once support for no grant table is ad=
ded. */

I'd avoid these TODOs.=C2=A0 It's test code, so really doesn't matter too=
 much.

However, there is a further task for this test to actually boot enough
of a guest to dump CPUID as visible inside the guest, and cross-check
with the toolstack's view of the data.

How exactly to get that data out of the VM is an open question, but it
might involve xenconsoled.

~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 12:44:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 12:44:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225902.390230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmbLb-0005Ei-Nk; Mon, 15 Nov 2021 12:44:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225902.390230; Mon, 15 Nov 2021 12:44:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmbLb-0005Eb-Jz; Mon, 15 Nov 2021 12:44:31 +0000
Received: by outflank-mailman (input) for mailman id 225902;
 Mon, 15 Nov 2021 12:44:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmbLZ-0005DJ-U6
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 12:44:29 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6023022-4611-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 13:44:29 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:46860)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmbLW-000a3w-gr (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 12:44:26 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 04A0E1FC18;
 Mon, 15 Nov 2021 12:44:25 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6023022-4611-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH for-4.16 4/4] tools/python: fix python libxc bindings to
 pass a max grant version
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Wei Liu <wl@xen.org>,
 Ian Jackson <iwj@xenproject.org>
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-5-roger.pau@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <a673781a-a819-78e9-9ac5-d54345555d95@srcf.net>
Date: Mon, 15 Nov 2021 12:44:25 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <20211115121741.3719-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 15/11/2021 12:17, Roger Pau Monne wrote:
> Such max version should be provided by the caller, otherwise the
> bindings will default to specifying a max version of 2, which is
> inline with the current defaults in the hypervisor.
>
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 13:24:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 13:24:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225912.390241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmbxX-0000zC-KQ; Mon, 15 Nov 2021 13:23:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225912.390241; Mon, 15 Nov 2021 13:23:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmbxX-0000z5-HH; Mon, 15 Nov 2021 13:23:43 +0000
Received: by outflank-mailman (input) for mailman id 225912;
 Mon, 15 Nov 2021 13:23:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z40d=QC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mmbxV-0000yj-Q5
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 13:23:42 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20621.outbound.protection.outlook.com
 [2a01:111:f400:7d00::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3df339a0-4617-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 14:23:39 +0100 (CET)
Received: from AM6PR08CA0014.eurprd08.prod.outlook.com (2603:10a6:20b:b2::26)
 by VI1PR08MB4446.eurprd08.prod.outlook.com (2603:10a6:803:fa::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Mon, 15 Nov
 2021 13:23:34 +0000
Received: from AM5EUR03FT047.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:b2:cafe::cf) by AM6PR08CA0014.outlook.office365.com
 (2603:10a6:20b:b2::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend
 Transport; Mon, 15 Nov 2021 13:23:34 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT047.mail.protection.outlook.com (10.152.16.197) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Mon, 15 Nov 2021 13:23:34 +0000
Received: ("Tessian outbound de6049708a0a:v110");
 Mon, 15 Nov 2021 13:23:34 +0000
Received: from e6e10de3a365.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 AD29F369-6E0C-40B2-B3C7-808CEA599E2B.1; 
 Mon, 15 Nov 2021 13:23:28 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e6e10de3a365.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 15 Nov 2021 13:23:28 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB6072.eurprd08.prod.outlook.com (2603:10a6:20b:296::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 13:23:24 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 13:23:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3df339a0-4617-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rtTxbtnCB2KB/902wzp+iv0ZDTex8678qXIJkh4APrw=;
 b=Hp4w7KZQ7QyQrdFjJgCoIeZg4Y7Vc/GJH/9EPMDBbwqhMAn2JlV+b/zo+UvfWzrxVL2M4TjRfxWPPqxI8fCNkEUCz8lvaET6kwIAN+3eYYFJdN7oTJ7jvRUWH4ZoM41AJR71MeGAoLlsxtdWS6ZaWwrqSS7VmQyZzFqoc2CFci8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 61ffe66cb9152273
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fbQkG965492pcFqUvt1aTc9v5hI2D60PfDRuozTYl7BfcqUU1g3pNrIgub02yyhfXguSlcZnBIJPMX6MjuCGuJ7kl0sj8VY2tkupYRHhaGSn/HFO1YZfviqpkdkdny3lVLyeGZB5izqAH3lFptWzerrPONixgauwpIeEE9Q6b0IClkPdzIZcJb9vZSXcd45nO8hnDGos48e508OHoG159awlZ6J8lx4AvXlCoOyAud1NhWFhW9GUCOZfpI/RyiJj7dwWyRwWgG0RytTjRAw/orUji4PTDAYYTn1eLVzgw5sBgvPBhNc0MCQ1Etd9IHn80gP6jyaSb7muom9e+avdgA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rtTxbtnCB2KB/902wzp+iv0ZDTex8678qXIJkh4APrw=;
 b=Hyu9Pu0IwbdfcYM08ozGlY6YeNpopESh5SREzm70YoEps/Yoys+NUJPz5I3rWe8+fXa1we6/AfkjaO+YttFhZHRdLGPRP8XkgCXqKthL5BbO0d2CCOQoQyKTFfC5NP6jsmaWAF/W7y3BRhkJdPI3xh2jGuHxJdtsQSv1eE0vqDTMMyDjpT4DEj1/60aIhPa1qinPCqiSzcRcVJ1HVQooizizper1Q14gLY5pWM9tug/B6SPmdrj0oBHBTwOlaxerTp9RDLYhF1hR4rfusQdQX4KZtnKqiXy0DrOmLHPzWSjoqT0IWYzqoNHALS8BMYO+g6w8sCq2y/ftO1QhF6f5Tw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rtTxbtnCB2KB/902wzp+iv0ZDTex8678qXIJkh4APrw=;
 b=Hp4w7KZQ7QyQrdFjJgCoIeZg4Y7Vc/GJH/9EPMDBbwqhMAn2JlV+b/zo+UvfWzrxVL2M4TjRfxWPPqxI8fCNkEUCz8lvaET6kwIAN+3eYYFJdN7oTJ7jvRUWH4ZoM41AJR71MeGAoLlsxtdWS6ZaWwrqSS7VmQyZzFqoc2CFci8=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Roger Pau Monne <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Christian
 Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Ian Jackson
	<iwj@xenproject.org>
Subject: Re: [PATCH for-4.16 1/4] domctl: introduce a macro to set the grant
 table max version
Thread-Topic: [PATCH for-4.16 1/4] domctl: introduce a macro to set the grant
 table max version
Thread-Index: AQHX2hrekOwfuxb0lUKAubErloiStawEk7kA
Date: Mon, 15 Nov 2021 13:23:24 +0000
Message-ID: <592D3B64-E0FC-44BC-8438-7034DACA88BD@arm.com>
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-2-roger.pau@citrix.com>
In-Reply-To: <20211115121741.3719-2-roger.pau@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: f47a1984-d4d1-45f4-0dd1-08d9a83b202d
x-ms-traffictypediagnostic: AS8PR08MB6072:|VI1PR08MB4446:
X-Microsoft-Antispam-PRVS:
	<VI1PR08MB44466C0C4509AB64F24054379D989@VI1PR08MB4446.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 c9yaM0OPIjBqHBF/klGSumxoqkAclzkXngad2IaTxdRvaqHacKC/EOYHfNR2lU+E9GXCjpYfKa3HJadUJvoHY4PQ9/Hq2utmWoNkVXFaVQTf6uy5OGU0l99LwD8sM4SJbK12esbZAuFpnvRk59XZtSHBiki3VByX2rte4WCs6n6KhjpE+EAUP7EVyTcf1gXbjs1aSJ9wHGVDabi92hNI19joswSPViRHhpSleeIXEQsfXNcnppOn4n13c1RARAy+jjQitQ2S+rqepluGTEK6COiwHoCOzuTKzw5Pu81XuCHylk6tj1XwBpT3AxIoOzkrV/OIfqxBWRsTy4c5HJdwcuPt0iLljWQjkiyU7cc+kW/WQyNLgw6lkaXefjGrqvanWl+SLyBt11KTTuoH6s1KGwUD9zQH2g3SWdngv4TC5TRPm5nvtqmgHLAi/po49TfnhlwLBloUfvY5Aekz4w7BN0o2spMZqj2bNliwwygCSG/oAx3F79e9ByUIHAXxyIPOxreOG8CJRzki/4VYGjCRgmBleOnJIQiwCgErnAfvkT0FB2FYUfH5DLXMRx6tBc6ccXcyj+Wz8nSZi6CFQiRUQCyg97JWGJcfdODrf7C/UpBmdY61grkH7sedtn02EmKfykuzL77nssEQVG/O5M5Wi22sDwrdtuCz+OKiulmdHitLV4MQgXr45n2UrC7C8xGsebxjiKw6m+UlWglG4uF4Rvy7Vr0VYgCSKj9VODRBCRK9snMIppEQt6kMCmSSVqBP
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6512007)(91956017)(54906003)(71200400001)(8936002)(64756008)(66446008)(76116006)(86362001)(66946007)(2616005)(316002)(66556008)(66476007)(6916009)(6506007)(53546011)(5660300002)(4326008)(2906002)(7416002)(8676002)(38070700005)(36756003)(83380400001)(186003)(38100700002)(508600001)(122000001)(6486002)(26005)(33656002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <3C3532723E9FC147A4F0E77DD4DE19B9@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6072
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT047.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	dadc2083-6134-4897-6e42-08d9a83b1a46
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	gwMBp1MNNb3+9COv1yNlfvJeSJ+TZAtejdq/mSbpZ9DrGbryoF1rG/nNbrzDW+UBebrdQf5SCq9FxqXv20Zm7jdlX6iTh9LagNF2Kt6uJ0gjPoDgBTqBR1CAPs9JsxMGdsvisk8L6xAZxpCgVDBFayyMRXj7n6KRckz5H2KzMH58DNpI8bhxLV9pZ5Y0oa7XPv3ZLJaE37MFtGc0sE2wMUru37f5G4f3nnzuITJ1Uq7AOcot7+qdcYfh/nsh8Ps3teYaWBI8Auyyrnd/nLzJ6ozQYq0gJckyypfvcIBAc+J5WKwvg1sRAB27zzPSgvZiM8QkM2eWL+ToZRGxriaY87z/M7AaRQbcVhi4jgi32suLF+Nz66twBAMIPsFQJ60m/uCxbnriPk5BF0V32aObbSGtzK+BVnvsv0g7rM/rwHk0ihdmO/5XkA4ttQr5qRSegHb4Hp2VHhPSQ15ji0pT/E+F25i/FhppWnC4jM9gyz2hSkCMLgOsC8EeA+9nT4NXyvewetiKWOa5No08Z8d+Nrxg/Zac9XaucIQa51901IV5sJ/gVXnpmX5Q4+zciRtf7gMncsus3cjWhcDF1ltXOGmJiQzqDk8JdxfRsQVFTQbG2JMq1YyIbmP6ZVdsOX9192b0Pt11FwDvJUQ0ZFTH9nuUY3GI7GF6xkHc/QPHU7dtKE6r3PhrPW6CEuQNuwb2JyuRvxOF2CoZNaDWmZ4ZgA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(36860700001)(81166007)(6506007)(53546011)(2616005)(336012)(6512007)(83380400001)(5660300002)(8676002)(356005)(86362001)(6486002)(36756003)(47076005)(8936002)(33656002)(82310400003)(508600001)(70586007)(70206006)(2906002)(54906003)(6862004)(26005)(316002)(4326008)(186003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 13:23:34.4906
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f47a1984-d4d1-45f4-0dd1-08d9a83b202d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT047.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4446

SGkgUm9nZXIsDQoNCj4gT24gMTUgTm92IDIwMjEsIGF0IDEyOjE3LCBSb2dlciBQYXUgTW9ubmUg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IFN1Y2ggbWFjcm8ganVzdCBjbGFt
cHMgdGhlIHBhc3NlZCB2ZXJzaW9uIHRvIGZpdCBpbiB0aGUgZGVzaWduYXRlZA0KPiBiaXRzIG9m
IHRoZSBkb21jdGwgZmllbGQuIFRoZSBtYWluIHB1cnBvc2UgaXMgdG8gbWFrZSBpdCBjbGVhcmVy
IGluDQo+IHRoZSBjb2RlIHdoZW4gbWF4IGdyYW50IHZlcnNpb24gaXMgYmVpbmcgc2V0IGluIHRo
ZSBncmFudF9vcHRzIGZpZWxkLg0KPiANCj4gRXhpc3RpbmcgdXNlcnMgdGhhdCB3aGVyZSBzZXR0
aW5nIHRoZSB2ZXJzaW9uIGluIHRoZSBncmFudF9vcHRzIGZpZWxkDQo+IGFyZSBzd2l0Y2hlZCB0
byB1c2UgdGhlIG1hY3JvLg0KPiANCj4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuDQo+
IA0KPiBSZXF1ZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gU2ln
bmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQoNClJl
dmlld2VkLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQoN
CkNoZWVycw0KQmVydHJhbmQNCg0KPiAtLS0NCj4gQ2M6IElhbiBKYWNrc29uIDxpd2pAeGVucHJv
amVjdC5vcmc+DQo+IA0KPiBHaXZlbiBpdCdzIGEgbm9uIGZ1bmN0aW9uYWwgY2hhbmdlIChvciBh
dCBsZWFzdCB0aGF0J3MgdGhlIGludGVudGlvbikNCj4gaXQgc2hvdWxkbid0IGhhdmUgYW55IGlt
cGFjdCBvbiB0aGUgcmVsZWFzZSwgaXQncyBqdXN0IHN5bnRhY3RpYw0KPiBzdWdhci4NCj4gLS0t
DQo+IHRvb2xzL2hlbHBlcnMvaW5pdC14ZW5zdG9yZS1kb21haW4uYyB8IDIgKy0NCj4gdG9vbHMv
bGlicy9saWdodC9saWJ4bF9jcmVhdGUuYyAgICAgIHwgMiArLQ0KPiB0b29scy9vY2FtbC9saWJz
L3hjL3hlbmN0cmxfc3R1YnMuYyAgfCAzICsrLQ0KPiB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxk
LmMgICAgICAgICAgfCA0ICsrLS0NCj4geGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAgICAg
ICAgIHwgMiArLQ0KPiB4ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggICAgICAgICAgfCAxICsN
Cj4gNiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQo+IA0K
PiBkaWZmIC0tZ2l0IGEvdG9vbHMvaGVscGVycy9pbml0LXhlbnN0b3JlLWRvbWFpbi5jIGIvdG9v
bHMvaGVscGVycy9pbml0LXhlbnN0b3JlLWRvbWFpbi5jDQo+IGluZGV4IDYwNDY5MTYxYmQuLmIy
MDVhNzllZTYgMTAwNjQ0DQo+IC0tLSBhL3Rvb2xzL2hlbHBlcnMvaW5pdC14ZW5zdG9yZS1kb21h
aW4uYw0KPiArKysgYi90b29scy9oZWxwZXJzL2luaXQteGVuc3RvcmUtZG9tYWluLmMNCj4gQEAg
LTg5LDcgKzg5LDcgQEAgc3RhdGljIGludCBidWlsZCh4Y19pbnRlcmZhY2UgKnhjaCkNCj4gICAg
ICAgICAgKi8NCj4gICAgICAgICAubWF4X2dyYW50X2ZyYW1lcyA9IDQsDQo+ICAgICAgICAgLm1h
eF9tYXB0cmFja19mcmFtZXMgPSAxMjgsDQo+IC0gICAgICAgIC5ncmFudF9vcHRzID0gMSwNCj4g
KyAgICAgICAgLmdyYW50X29wdHMgPSBYRU5fRE9NQ1RMX0dSQU5UX3ZlcnNpb24oMSksDQo+ICAg
ICB9Ow0KPiANCj4gICAgIHhzX2ZkID0gb3BlbigiL2Rldi94ZW4veGVuYnVzX2JhY2tlbmQiLCBP
X1JEV1IpOw0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcmVhdGUuYyBi
L3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfY3JlYXRlLmMNCj4gaW5kZXggYjY4NTVjN2I0Ni4uZGNk
MDlkMzJiYSAxMDA2NDQNCj4gLS0tIGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcmVhdGUuYw0K
PiArKysgYi90b29scy9saWJzL2xpZ2h0L2xpYnhsX2NyZWF0ZS5jDQo+IEBAIC02MjksNyArNjI5
LDcgQEAgaW50IGxpYnhsX19kb21haW5fbWFrZShsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kb21haW5f
Y29uZmlnICpkX2NvbmZpZywNCj4gICAgICAgICAgICAgLm1heF9ldnRjaG5fcG9ydCA9IGJfaW5m
by0+ZXZlbnRfY2hhbm5lbHMsDQo+ICAgICAgICAgICAgIC5tYXhfZ3JhbnRfZnJhbWVzID0gYl9p
bmZvLT5tYXhfZ3JhbnRfZnJhbWVzLA0KPiAgICAgICAgICAgICAubWF4X21hcHRyYWNrX2ZyYW1l
cyA9IGJfaW5mby0+bWF4X21hcHRyYWNrX2ZyYW1lcywNCj4gLSAgICAgICAgICAgIC5ncmFudF9v
cHRzID0gYl9pbmZvLT5tYXhfZ3JhbnRfdmVyc2lvbiwNCj4gKyAgICAgICAgICAgIC5ncmFudF9v
cHRzID0gWEVOX0RPTUNUTF9HUkFOVF92ZXJzaW9uKGJfaW5mby0+bWF4X2dyYW50X3ZlcnNpb24p
LA0KPiAgICAgICAgICAgICAudm10cmFjZV9zaXplID0gUk9VTkRVUChiX2luZm8tPnZtdHJhY2Vf
YnVmX2tiIDw8IDEwLCBYQ19QQUdFX1NISUZUKSwNCj4gICAgICAgICB9Ow0KPiANCj4gZGlmZiAt
LWdpdCBhL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jIGIvdG9vbHMvb2NhbWwv
bGlicy94Yy94ZW5jdHJsX3N0dWJzLmMNCj4gaW5kZXggZWNhMGI4YjMzNC4uNWI0ZmU3MmM4ZCAx
MDA2NDQNCj4gLS0tIGEvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMNCj4gKysr
IGIvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMNCj4gQEAgLTE5OSw3ICsxOTks
OCBAQCBDQU1McHJpbSB2YWx1ZSBzdHViX3hjX2RvbWFpbl9jcmVhdGUodmFsdWUgeGNoLCB2YWx1
ZSB3YW50ZWRfZG9taWQsIHZhbHVlIGNvbmZpZw0KPiAJCS5tYXhfZXZ0Y2huX3BvcnQgPSBJbnRf
dmFsKFZBTF9NQVhfRVZUQ0hOX1BPUlQpLA0KPiAJCS5tYXhfZ3JhbnRfZnJhbWVzID0gSW50X3Zh
bChWQUxfTUFYX0dSQU5UX0ZSQU1FUyksDQo+IAkJLm1heF9tYXB0cmFja19mcmFtZXMgPSBJbnRf
dmFsKFZBTF9NQVhfTUFQVFJBQ0tfRlJBTUVTKSwNCj4gLQkJLmdyYW50X29wdHMgPSBJbnRfdmFs
KFZBTF9NQVhfR1JBTlRfVkVSU0lPTiksDQo+ICsJCS5ncmFudF9vcHRzID0NCj4gKwkJICAgIFhF
Tl9ET01DVExfR1JBTlRfdmVyc2lvbihJbnRfdmFsKFZBTF9NQVhfR1JBTlRfVkVSU0lPTikpLA0K
PiAJfTsNCj4gDQo+IAlkb21haW5faGFuZGxlX29mX3V1aWRfc3RyaW5nKGNmZy5oYW5kbGUsIFN0
cmluZ192YWwoVkFMX0hBTkRMRSkpOw0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFp
bl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+IGluZGV4IDE5NDg3Yzc5
ZGEuLmQwMmJhY2JjZDEgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQu
Yw0KPiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4gQEAgLTI5ODYsNyArMjk4
Niw3IEBAIHZvaWQgX19pbml0IGNyZWF0ZV9kb21Vcyh2b2lkKQ0KPiAgICAgICAgICAgICAubWF4
X2V2dGNobl9wb3J0ID0gLTEsDQo+ICAgICAgICAgICAgIC5tYXhfZ3JhbnRfZnJhbWVzID0gLTEs
DQo+ICAgICAgICAgICAgIC5tYXhfbWFwdHJhY2tfZnJhbWVzID0gLTEsDQo+IC0gICAgICAgICAg
ICAuZ3JhbnRfb3B0cyA9IG9wdF9nbnR0YWJfbWF4X3ZlcnNpb24sDQo+ICsgICAgICAgICAgICAu
Z3JhbnRfb3B0cyA9IFhFTl9ET01DVExfR1JBTlRfdmVyc2lvbihvcHRfZ250dGFiX21heF92ZXJz
aW9uKSwNCj4gICAgICAgICB9Ow0KPiANCj4gICAgICAgICBpZiAoICFkdF9kZXZpY2VfaXNfY29t
cGF0aWJsZShub2RlLCAieGVuLGRvbWFpbiIpICkNCj4gQEAgLTMwOTQsNyArMzA5NCw3IEBAIHZv
aWQgX19pbml0IGNyZWF0ZV9kb20wKHZvaWQpDQo+ICAgICAgICAgLm1heF9ldnRjaG5fcG9ydCA9
IC0xLA0KPiAgICAgICAgIC5tYXhfZ3JhbnRfZnJhbWVzID0gZ250dGFiX2RvbTBfZnJhbWVzKCks
DQo+ICAgICAgICAgLm1heF9tYXB0cmFja19mcmFtZXMgPSAtMSwNCj4gLSAgICAgICAgLmdyYW50
X29wdHMgPSBvcHRfZ250dGFiX21heF92ZXJzaW9uLA0KPiArICAgICAgICAuZ3JhbnRfb3B0cyA9
IFhFTl9ET01DVExfR1JBTlRfdmVyc2lvbihvcHRfZ250dGFiX21heF92ZXJzaW9uKSwNCj4gICAg
IH07DQo+IA0KPiAgICAgLyogVGhlIHZHSUMgZm9yIERPTTAgaXMgZXhhY3RseSBlbXVsYXRpbmcg
dGhlIGhhcmR3YXJlIEdJQyAqLw0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMg
Yi94ZW4vYXJjaC94ODYvc2V0dXAuYw0KPiBpbmRleCBlYzZlNjg2ZmFjLi5kYTQ3Y2RlYTE0IDEw
MDY0NA0KPiAtLS0gYS94ZW4vYXJjaC94ODYvc2V0dXAuYw0KPiArKysgYi94ZW4vYXJjaC94ODYv
c2V0dXAuYw0KPiBAQCAtNzU1LDcgKzc1NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZG9tYWluICpfX2lu
aXQgY3JlYXRlX2RvbTAoY29uc3QgbW9kdWxlX3QgKmltYWdlLA0KPiAgICAgICAgIC5tYXhfZXZ0
Y2huX3BvcnQgPSAtMSwNCj4gICAgICAgICAubWF4X2dyYW50X2ZyYW1lcyA9IC0xLA0KPiAgICAg
ICAgIC5tYXhfbWFwdHJhY2tfZnJhbWVzID0gLTEsDQo+IC0gICAgICAgIC5ncmFudF9vcHRzID0g
b3B0X2dudHRhYl9tYXhfdmVyc2lvbiwNCj4gKyAgICAgICAgLmdyYW50X29wdHMgPSBYRU5fRE9N
Q1RMX0dSQU5UX3ZlcnNpb24ob3B0X2dudHRhYl9tYXhfdmVyc2lvbiksDQo+ICAgICAgICAgLm1h
eF92Y3B1cyA9IGRvbTBfbWF4X3ZjcHVzKCksDQo+ICAgICAgICAgLmFyY2ggPSB7DQo+ICAgICAg
ICAgICAgIC5taXNjX2ZsYWdzID0gb3B0X2RvbTBfbXNyX3JlbGF4ZWQgPyBYRU5fWDg2X01TUl9S
RUxBWEVEIDogMCwNCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaCBi
L3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaA0KPiBpbmRleCAxYzIxZDRkYzc1Li5iODVlNjE3
MGIwIDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgNCj4gKysrIGIv
eGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oDQo+IEBAIC05OSw2ICs5OSw3IEBAIHN0cnVjdCB4
ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbiB7DQo+IA0KPiAvKiBHcmFudCB2ZXJzaW9uLCB1c2UgbG93
IDQgYml0cy4gKi8NCj4gI2RlZmluZSBYRU5fRE9NQ1RMX0dSQU5UX3ZlcnNpb25fbWFzayAgICAw
eGYNCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9HUkFOVF92ZXJzaW9uKHYpICAgICAgKCh2KSAmIFhF
Tl9ET01DVExfR1JBTlRfdmVyc2lvbl9tYXNrKQ0KPiANCj4gICAgIHVpbnQzMl90IGdyYW50X29w
dHM7DQo+IA0KPiAtLSANCj4gMi4zMy4wDQo+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 13:58:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 13:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225921.390252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcV5-0004NB-IG; Mon, 15 Nov 2021 13:58:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225921.390252; Mon, 15 Nov 2021 13:58:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcV5-0004N4-F1; Mon, 15 Nov 2021 13:58:23 +0000
Received: by outflank-mailman (input) for mailman id 225921;
 Mon, 15 Nov 2021 13:58:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmcV3-0004My-RJ
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 13:58:22 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1515885c-461c-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 14:58:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1515885c-461c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636984699;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=AC0sON0AOiAPojPkmmZiSRc4Jpoj5wXX/hcXeIxkupI=;
  b=aTPBhhKgb+tIXcGIbRo3boyQ7mE6SEByWf72Y4VOfvyeD2FXZXEuDCpe
   Zc8vHbreLMqfPOttgep9ZOUMRR3vNdW75NLZCpEDta/aT1duRKj2wTMsS
   Bd33mvAUN5Yo2k6XMOOVX1ouvestJ2cK95Qm3PdAtC+C6MgFnC3niO2Ce
   Q=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 2QG8TDT8wOLF3x3PvpV9RCSmJ3RFOeIJuTrv3rl5JeA8Dikh+a10pMwJ3zyLYM0AbmrMF/5eAw
 wZadIOvXvkyTg2BXymxRnNWBtwZVTaaYfWx3W9RQiF0NOV82GUHlyZRYFjKoxwItUP6j6su7Bw
 YwZhxXvA4KRMeQJzCaBRhWPB4IfF4JuRG4q7DBEUheAhZF+UjkubS9JcoN1+kWb9gF6BGKOZvW
 sDmyoz1pZT5S229wcZ0ShjQHTmViwdYhZYihWJDkOFqAHdRHh6Bh0oxqlcqT+tmdwIevWJD7Tl
 PL6BT+hshmyZiySV8M/p5Wva
X-SBRS: 5.1
X-MesageID: 59804567
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:k7as46P8bGfmrGTvrR1YkMFynXyQoLVcMsEvi/4bfWQNrUoh1mBTy
 jcYWGjQbv2Da2P1fdokPo6y9kwCsZ7dmIA3HQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Es+w7dRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozTZuola9
 thqiZKXbRZuBrSTics2SxYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/ibtYcEgWlv7ixINe/5P
 NILRAF1UCvJZwQTYU4JWL4Ql+j90xETdBUH8QnI9MLb+VP7zgZ8zbzsO9r9YcGRSINemUPwj
 mPZ/UzpDxcCLtudxDGZtHW2iYfngifTSI8UUrqi+ZZCiViYlzI7EwcdWx29rOXRol6zXZdTJ
 lIZ/gIqrLMu7wq7Q9/lRRq6rXWY+BkGVLJt//YSsV/XjPCOukDAWzZCHmUphMEaWNEeRGwPj
 3S3kvTVCxtLofqtUC2M2ZyMombnUcQKFlMqaSgBRAoDxtDspoAvkx7CJupe/L6JYs7dQm+pn
 W3TxMQqr/BK1JNQif3nlbzSq2v0/sChc+Ij2unAsotJBCtdbZXtWYGn4EOzAR1ofNfAFQnpU
 JTpdqGjAAEy4XOlyXTlrAYlRujBCxO53Nr02wEHInXZ327xk0NPhKgJiN2EGG9nM9wfZRjia
 1LJtAVa6fd7ZSXxM/4uP9zsV5p2kcAM8OgJsNiONLKihbArK2e6ENxGPxbMjwgBbmBx+U3AB
 XtrWZn1VitLYUiW5DG3W/0cwdcWKtMWngvuqWTA503/i9K2PSfNIZ9caQfmRr1pvcus/VSOm
 /4CZpTi9vmqeLCnCsUh2dVIdg5iwLlSLc2elvG7gcbfeFc7Qz94VKeKqV7jEqQ895loei7z1
 ijVcmdTyUblhG2BLgOPa3t5b6joU4o5pnU+VRHA937zs5T6SYrwvqoZabUterwrqL5qwfJuF
 qFXcMScGPVfDD/A/m1FP5X6qYVjcjWthB6PYHX5MGRuIcY4Slyb4MLgcyvu6DIKUni9u/whr
 uDyzQjcW5cCGVhvVZ6EdPK1wlqtlnEBg+YuDVDQK9xedRy0oohnIiD8lNEtJMQIJUmRzzeWz
 V/OUxwZufPMs8k+99yQ3fKIqIKgEu1fGEtGHjaEsebqZHeCpmf6mN1OSueFezzZRVjYwqT6a
 LUH1ez4Pd0GgE1O79h2HYF0wP9s/NDovbJbkFhpRS2Zc1SxB7p8CXCaxs0T5LZVz7pUtAbqC
 EKC/t5WZeeANM//SQNDIQMkaqKI1O0OmymU5vMweR2o6Chy9buBcENTIxjT13ANcOoraNsok
 bU7pcobyw2jkR57YN+Jgxdd+3mIMnFdAb4ssYsXAdOzhwcmor2YjUcw1sMiDEmzVuhx
IronPort-HdrOrdr: A9a23:bfaPoqAgZ0QQPlzlHeg2sceALOsnbusQ8zAXPh9KJiC9I/b1qy
 nxppkmPH/P6Qr4WBkb6Le90Y27MAnhHPlOkPQs1NaZLXLbUQ6TQr2KgrGSoQEIdxeOk9K1kJ
 0QD5SWa+eAfGSS7/yKmTVQeuxIqLLskNHK9JfjJjVWPHlXgslbnnlE422gYytLrWd9dP4E/M
 323Ls5m9PsQwVcUu2LQl0+G8TTrdzCk5zrJTYAGh4c8QGLyRel8qTzHRS01goXF2on+8ZvzU
 H11yjCoomzufCyzRHRk0fV8pRtgdPkjv9OHtaFhMQ5IijlziyoeINicbufuy1dmpDj1H8a1P
 335zswNcV67H3cOkmzvBvWwgHllA0j7nfzoGXoyEfLkIjcfnYXGsBBjYVWfl/y8Ew7puxx16
 pNwiawq4dXJQmoplW92/H4EzVR0makq3srluAey1ZFV5EFVbNXpYsDuGtIDZY7Gj7g4oxPKp
 ghMCjl3ocUTbqmVQGagoE2q+bcG0jbXy32DXTqg/blkwS/xxtCvg8lLM92pAZ3yHtycegC2w
 3+CNUbqFh5dL5gUUtMPpZzfSKJMB25ffvtChPbHb21LtBNB5ryw6SHlIndotvaPqA18A==
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="59804567"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QFoBxz/YKo9qhw2HsBqmcS16qC9yMERLzS30/rsZDmeO9YrhLHIxtK3wgoIU5r9MsdpOLwC3mN0z29t8jnrHKOSyUdeqKuT0wRUCrYvl+HSDiu/rxeyLajKEMl+qXyusPfLDrgy26v0MXycZPU+t9/l18BmKZr/zfkrsvG7EzrXpFBhpH1geQXA0brvpJaacUnkK8DQAj/j16lipfbct9sfNMvEwAXmtYrMYiZxvdEWosLNT5neIkTZvSimD641oFN8PYHTcV97UY0PS4CfOCzS6QRnzLSmEtUoFZO8TLJn3Dps9iyipqc3GIqVMwE32deOZZwirx66VXThMHHSNBQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AFF8eXhEoTtHR3SbCoQV+0+LmyNuIRcz3YGjPPssfrc=;
 b=aXq0WNdhbXcczE6hAusA5I+oMzM4CZgcS+cNWVHUbEKVZpvlosjv1xSrDYaybFt3QG8Tfr+zAub4PlH7J4FVikXQ2lQfUiiGwMMVoIaOofWEZRTynjYfNt58Q77lZfoEDvOQTxfYdcwRqP5S4Cqn+pK64l6JQQlsaji5RqBTf6It3q+OBiBmCt9aJZe1rZrmwg6HCigb+l53YZW9wYNVaiLJTCOIi3XFnt4ZEDIMwL7i+AwWP5DXRGs1g1wdRAIw1m6CO+P3Dmivit6Q36EQdyxqItF5uakniJjQ+Ylx25hQcxe846bbyAWu7TDCWAnldTLAzoe/2vDQxW+cqGgCHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AFF8eXhEoTtHR3SbCoQV+0+LmyNuIRcz3YGjPPssfrc=;
 b=KAvWKERnlBbj0BpqP8wdMIho7dQ1hpKLEyDazKGvwriHhWkf6IBiHxtGCJl97zOlSfgSxgP2cmaLDtGaS5V/OycDkqrHL7rVNJa6jifRFyi9raMdoxJ5+0mlZC0YrfkKrChqmSkgWAYQSIHKSjcPw526tNXXFtxaybEYtdrdcZQ=
Date: Mon, 15 Nov 2021 14:58:02 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <amc96@srcf.net>
CC: <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Ian Jackson
	<iwj@xenproject.org>
Subject: Re: [PATCH for-4.16 3/4] test/tsx: set grant version for created
 domains
Message-ID: <YZJnagbiihYH99DA@Air-de-Roger>
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-4-roger.pau@citrix.com>
 <f544fcaf-be7b-6c2c-7e9f-7847477739a9@srcf.net>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f544fcaf-be7b-6c2c-7e9f-7847477739a9@srcf.net>
X-ClientProxiedBy: MRXP264CA0043.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::31) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8924e2bf-0a00-4568-23f1-08d9a83ff409
X-MS-TrafficTypeDiagnostic: DM6PR03MB4971:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4971818389DFF25E69ECE56D8F989@DM6PR03MB4971.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: mA3ZuBoH0VAcL9nlULIVWLNM+BWGvCSiJbrVyFzOj9j6vsi/Gi+5FzQog+ZM0hUQohClq1PA97YT4Hdz3y4iVzvyBlyLGKEzg3yGE6FN91vx+6YEjkCJp+4frbpAirQhqiTiWVbq9jkFCsm33NWItUWtXv9TbOhfcUlqB5chtk79h/KJjkMJ76TzQ2zRb+LKjk5Qcz+wN125MiLvGpeMpcykev6A+LWQFn/wI1CpFxKsoFNMSyN4FUBpRgTOFUB6fMSsPEhOq16sXqjOmwekM+dOmvNuEwr/KSqMzPW8NDqqjJZPao4qK1CitdcKi39KTjy6SQksOY4/BX2lsuozvROFtmK3ei9Z9uERCQ4Q+9BydeA987kgH2t/+/Pps59o1NzZl0eoQdehRaH2KvFt5qATcXgWIbtjDhhSw7ZOejWN8IytSgDAaXyvIyTy5Wt8K4BqOi4vdr8ASX5azks5uKm/MMlBEPDlBZCJiLMFKvxAFHEne2vfOvEjqqo6sRhO7cZVYzNKHcJIWhazwbWmNp9stRbg4f+VCXfGjRczRnQkcD7D/RpaX91UKZ4DbnwYhbeCRFk/6E0YEwz5p139q9rn0aCWZmKT7ozCdjCJXoIzWjrywmZbG4Uato6nyvDwUeDJLoAkFW3YSp/O6HE2Pg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(8676002)(4326008)(6666004)(82960400001)(8936002)(85182001)(316002)(6486002)(33716001)(26005)(5660300002)(2906002)(9686003)(66556008)(66476007)(66946007)(6916009)(6496006)(508600001)(54906003)(38100700002)(86362001)(956004)(53546011)(186003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T0c1R0Z3Wm9YK2xidmgrK0VqYUVTYmI0MittZ1k2ZjVjOTIrZ3pjejdPT3ds?=
 =?utf-8?B?VE55WWJNN2ZaVWRzTGRhckZzNTJqSUtTdXNNNmRzL3RrbEs5T04rQ0pkRmds?=
 =?utf-8?B?RFE3enNsZytDNU9hU1F3YS80Z28yamxoeFpUVnBiUlJBQTdROUZtdGZtOVNN?=
 =?utf-8?B?d0xPNTZlUU9sZVZsNHIwK09RM2FKdjdENFNZaW44SW90R08xTVVDRWlla1Zo?=
 =?utf-8?B?RDhqNm9jTktyMFFVWGkweHV3WWhYMDBkRW9keVhlZHJwR2NPQ3lNT28zZ3NI?=
 =?utf-8?B?NnNaRVRlMnF5ZDlLazBXQyttL3g0a1BlK2VUZUZ1QjYzdXFZU0ZFMzlmVEZZ?=
 =?utf-8?B?NERva1gzQlpnakVQUXVCc0Z6UjREd3NYTDRnek42UFhJeXlpaU1mSndNMXN5?=
 =?utf-8?B?VzQzWEF6cmNra1NwK1NRcFp3NEdnWStCTXBKd0xyUEc5U1NFUVVveEwyL3NQ?=
 =?utf-8?B?dUQ5N2RESmlQQlJFemJZc2R4c3RXckIxZDZiODFGSng2dUZ4c0ZKdVJjNWN0?=
 =?utf-8?B?ZVA3YWo3RVFFOTBxSk1WRjVmdklBdXNYQnVmMHhDMnNhbTZ2N3RMeG1ucnVo?=
 =?utf-8?B?MWk3czBVb0Y0Vk13N0RZVHBPdDMzbURGaWZJa2VWZVRJVkx1Sm04TThJejNz?=
 =?utf-8?B?VXBJc25yVXlYc2JxT0JITFJ1aHpYWUZGZUY5OGI3RUNZR3NkcitwdTIwMEFm?=
 =?utf-8?B?VEUvVVpham5zWUM5Q1hpbUwzVGJySmZZOHlSNGNFTVp1bmVueHBRMytvb3Ux?=
 =?utf-8?B?MXJsak1IRVFOY1F4RWJubDdDQmxVOGhac0dpYitNTGxwWFpvR0dHQTBOUkVQ?=
 =?utf-8?B?ek9pNmlOTHRyUXhKTUk4UzNBNXM4QUJqZ2hyN0ZwWCt3VFBzUWRoLzdrNk5K?=
 =?utf-8?B?RWFSNGJSc2hEY2FoMEhnVUFKMm95dmZxSUMrbVR4dE9oM1pJU21NUVZjNzd0?=
 =?utf-8?B?eFlNOUI5Ty8xSjNrbExzRG04QUkwcnNVdDU2Slp3eHUxenNuSWdtSk42VXFS?=
 =?utf-8?B?QXVrVWhmVDBBSHduWmU0bWVYU2NDcXM3c0ZLeXRIczFmb0hrSm83eU1Pd1hL?=
 =?utf-8?B?YjF1azVES2Z6aGxGajYweTg3bDNmQVRwcUlDQTVNQys2QWJGbWdTeEtKVFJk?=
 =?utf-8?B?T0tuM0tGcCtOekFjYWdaQ1ZidzhhMkJOVlh0K0UwV0E5Zk5GYzg1cDZHeVNC?=
 =?utf-8?B?M2lvT0pGaXp2Zi94YjRuWkRyUEM2cTVjOTVoMmpzNVV3NW5CL1p3MkZwZVFO?=
 =?utf-8?B?TXVOeFFGcFdoU1QwZlRSNzdLLzV5MWN1cW1IZ2diaHJzUG1CVnArNm5yMGZ5?=
 =?utf-8?B?MlZtc3FOS3FpRjJjOFpudXRuek1UZWpMYnNRMUI1M1drRTNXeHo4S2wwekhx?=
 =?utf-8?B?R0dIdzJpZC9EY0gzeWlYZFJRWEJhTmhlejRrUVA0MzhZWDlleFpyKzJSQ2xV?=
 =?utf-8?B?MDRyaHJ6ZDAvQUtKa3lDRXlxaE12ZzFpd0Zwbk40S3lUN2Z0VU1xMUppUkU4?=
 =?utf-8?B?aFlHSnRINkx0MklLazk2eDVMcy8waEZKd1gwYUVHb2t2Mk94YUxUR2x4ZzBB?=
 =?utf-8?B?QnVxNXpIMkVTZjg1cVk5Wm9mTkZDR0RMbEN0YTlEQjN0TEc5dEJibzFkR05S?=
 =?utf-8?B?KzM3VitJcVBuVWVFZnFiYkxjMjhaOGpUMlZUV3dHd2w4UTlEemc3dnhaMmZq?=
 =?utf-8?B?cjdTRHNZR1pRZStZZGxNUmxDVmJNVjlhaTVPZzBMeGdDTTA5L3ZadVJ3QjJa?=
 =?utf-8?B?UWVsb0pRamNOVEJDTVkwbHZCTUdZK1VYR0lzam9wV1JIVTkwdENMeVdreUQ5?=
 =?utf-8?B?VElRaytNZ2kvc1MyVTdlVGtFWHVPanVSMDd6alpPWWhabjJ0aktEWk1zYm5U?=
 =?utf-8?B?SFlFR0xOWFhmcFJYY05nSFRxSVRkTnd6aERWM2xiOWJPWkNGaEtCaDdJdVVY?=
 =?utf-8?B?elJsSDFuQWhBODR5a0V5T0VlTkJNTUVjZFdpZ2Q0Tk84WTdlekdOVmFBNVF4?=
 =?utf-8?B?T01meThjTldJQmdQcGl4dzVGbEMxVHhyRkZDcG5tVk03Q1NGSjhEc3FIdWNX?=
 =?utf-8?B?cFJ5U0JGTlB5Nk8yOSs3RExyalA0QS92NzlMcFhiR2dwTjNUY2pkR09oa3dH?=
 =?utf-8?B?WEh2bDQrakZYQnZZWVVJUDdYRXBEdFZkYW02R056SXRLbTVoWnBvQ0pCOFd3?=
 =?utf-8?Q?kaCrf2FBeXqmWUzLFbX/vUM=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 8924e2bf-0a00-4568-23f1-08d9a83ff409
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 13:58:08.2611
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: W5fGG1XtTKbhOriUmCwZk4toDz+JJOwfNO56eg50F3zKNzWoYMC9F8q3QFO0vJiGpECKl+x78+L+QrhhTHPmlw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4971
X-OriginatorOrg: citrix.com

On Mon, Nov 15, 2021 at 12:43:34PM +0000, Andrew Cooper wrote:
> On 15/11/2021 12:17, Roger Pau Monne wrote:
> > Set the grant table version for the created domains to use version 1,
> > as such tests domains don't require the usage of the grant table at
> > all. A TODO note is added to switch those dummy domains to not have a
> > grant table at all when possible. Without setting the grant version
> > the domains for the tests cannot be created.
> >
> > Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Reported-by: Jan Beulich <jbeulich@suse.com>
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > Cc: Ian Jackson <iwj@xenproject.org>
> >
> > This patch only modifies a test, so it should be safe to commit as
> > it's not going to cause any changes to the hypervisor or the tools.
> > Worse that could happen is it makes the test even more broken, but
> > it's already unusable.
> 
> What do you mean unusable?  Other than this, the test works.

I mean, it's unusable because I broke it with the gnttab change, and
that's it's current status unless this patch is applied.

> > ---
> >  tools/tests/tsx/test-tsx.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/tools/tests/tsx/test-tsx.c b/tools/tests/tsx/test-tsx.c
> > index fab99c135e..f1dcff4c30 100644
> > --- a/tools/tests/tsx/test-tsx.c
> > +++ b/tools/tests/tsx/test-tsx.c
> > @@ -444,6 +444,8 @@ static void test_guests(void)
> >          struct xen_domctl_createdomain c = {
> >              .max_vcpus = 1,
> >              .max_grant_frames = 1,
> > +            /* TODO: switch to 0 once support for no grant table is added. */
> 
> I'd avoid these TODOs.  It's test code, so really doesn't matter too much.

I'm fine with this, when looking at the test code I didn't see any
reason why gnttab was needed, so I thought it would be a fine use-case
for opting out to grant table. As you say it's a test case, so it
doesn't matter much.

Do you want me to repost with the comments removed?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 13:58:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 13:58:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225923.390262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcVX-0004ni-R5; Mon, 15 Nov 2021 13:58:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225923.390262; Mon, 15 Nov 2021 13:58:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcVX-0004nb-O9; Mon, 15 Nov 2021 13:58:51 +0000
Received: by outflank-mailman (input) for mailman id 225923;
 Mon, 15 Nov 2021 13:58:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mmcVW-0004nH-Mx
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 13:58:50 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmcVU-00014K-S4; Mon, 15 Nov 2021 13:58:48 +0000
Received: from [54.239.6.189] (helo=[192.168.10.237])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmcVU-0003q2-Kt; Mon, 15 Nov 2021 13:58:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=5jqfuqFnrb6yksJvZDUB1kYLYdF3gqOd7ePf+phWYnw=; b=1+O0u+xEo+XKPy5kpXoI0BoqDl
	XD1de/p4gimcq2/w7Z2xrqP0V5jP6qBHMPHMhuEXKg2Bpw2x9StQ6pxJ/kZo4tdYcPOlv4lTis1ty
	Q3BGdGmW/DUtyREN+AycxaYT91mFjB3u9hJEgBghMnaX3KK3qaepwT/O8L2/Xc5Enoho=;
Message-ID: <7a8b5bd1-6b34-eb32-72e4-f55cee5905ed@xen.org>
Date: Mon, 15 Nov 2021 13:58:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 1/4] domctl: introduce a macro to set the grant
 table max version
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Ian Jackson <iwj@xenproject.org>
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-2-roger.pau@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211115121741.3719-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Roger,

On 15/11/2021 12:17, Roger Pau Monne wrote:
> Such macro just clamps the passed version to fit in the designated
> bits of the domctl field. The main purpose is to make it clearer in
> the code when max grant version is being set in the grant_opts field.
> 
> Existing users that where setting the version in the grant_opts field
> are switched to use the macro.
> 
> No functional change intended.
> 
> Requested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 14:02:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 14:02:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225931.390274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcYS-0006Ob-BG; Mon, 15 Nov 2021 14:01:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225931.390274; Mon, 15 Nov 2021 14:01:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcYS-0006OU-7M; Mon, 15 Nov 2021 14:01:52 +0000
Received: by outflank-mailman (input) for mailman id 225931;
 Mon, 15 Nov 2021 14:01:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmcYQ-0006OE-FA
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 14:01:50 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9314dd70-461c-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 15:01:48 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:40228)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmcYO-000gWt-0O (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 14:01:48 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 729FF1FC18;
 Mon, 15 Nov 2021 14:01:47 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9314dd70-461c-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH for-4.16 3/4] test/tsx: set grant version for created
 domains
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Ian Jackson <iwj@xenproject.org>
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-4-roger.pau@citrix.com>
 <f544fcaf-be7b-6c2c-7e9f-7847477739a9@srcf.net>
 <YZJnagbiihYH99DA@Air-de-Roger>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <b6033d80-c362-4a6d-e6c8-b2d425fda759@srcf.net>
Date: Mon, 15 Nov 2021 14:01:47 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YZJnagbiihYH99DA@Air-de-Roger>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 15/11/2021 13:58, Roger Pau Monné wrote:
> On Mon, Nov 15, 2021 at 12:43:34PM +0000, Andrew Cooper wrote:
>> On 15/11/2021 12:17, Roger Pau Monne wrote:
>>> Set the grant table version for the created domains to use version 1,
>>> as such tests domains don't require the usage of the grant table at
>>> all. A TODO note is added to switch those dummy domains to not have a
>>> grant table at all when possible. Without setting the grant version
>>> the domains for the tests cannot be created.
>>>
>>> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
>>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Reported-by: Jan Beulich <jbeulich@suse.com>
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>> ---
>>> Cc: Ian Jackson <iwj@xenproject.org>
>>>
>>> This patch only modifies a test, so it should be safe to commit as
>>> it's not going to cause any changes to the hypervisor or the tools.
>>> Worse that could happen is it makes the test even more broken, but
>>> it's already unusable.
>> What do you mean unusable?  Other than this, the test works.
> I mean, it's unusable because I broke it with the gnttab change, and
> that's it's current status unless this patch is applied.
>
>>> ---
>>>  tools/tests/tsx/test-tsx.c | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/tools/tests/tsx/test-tsx.c b/tools/tests/tsx/test-tsx.c
>>> index fab99c135e..f1dcff4c30 100644
>>> --- a/tools/tests/tsx/test-tsx.c
>>> +++ b/tools/tests/tsx/test-tsx.c
>>> @@ -444,6 +444,8 @@ static void test_guests(void)
>>>          struct xen_domctl_createdomain c = {
>>>              .max_vcpus = 1,
>>>              .max_grant_frames = 1,
>>> +            /* TODO: switch to 0 once support for no grant table is added. */
>> I'd avoid these TODOs.  It's test code, so really doesn't matter too much.
> I'm fine with this, when looking at the test code I didn't see any
> reason why gnttab was needed, so I thought it would be a fine use-case
> for opting out to grant table. As you say it's a test case, so it
> doesn't matter much.
>
> Do you want me to repost with the comments removed?

I'm happy to fix on commit, if nothing else needs reposting.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 14:03:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 14:03:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225934.390285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcZq-0006xy-MO; Mon, 15 Nov 2021 14:03:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225934.390285; Mon, 15 Nov 2021 14:03:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcZq-0006xr-Is; Mon, 15 Nov 2021 14:03:18 +0000
Received: by outflank-mailman (input) for mailman id 225934;
 Mon, 15 Nov 2021 14:03:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmcZq-0006xj-1y
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 14:03:18 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7dbd417-461c-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 15:03:17 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:36458)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmcZo-000JDW-oS (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 14:03:16 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 480DB1FC18;
 Mon, 15 Nov 2021 14:03:16 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7dbd417-461c-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>, Wei Liu <wl@xen.org>
References: <20211112182818.30223-1-andrew.cooper3@citrix.com>
 <20211112182818.30223-2-andrew.cooper3@citrix.com>
 <YZIn78EzYjI7YXC4@Air-de-Roger>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 1/3] x86/cpufreq: Clean up powernow registration
Message-ID: <97ced890-2475-14d1-0ff0-d2eafcc021a7@srcf.net>
Date: Mon, 15 Nov 2021 14:03:16 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YZIn78EzYjI7YXC4@Air-de-Roger>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB

On 15/11/2021 09:27, Roger Pau Monn=C3=A9 wrote:
> On Fri, Nov 12, 2021 at 06:28:16PM +0000, Andrew Cooper wrote:
>> powernow_register_driver() is currently written with a K&R type defini=
tion;
>> I'm surprised that compilers don't object to a mismatch with its decla=
ration,
>> which is written in an ANSI-C compatible way.
>>
>> Furthermore, its sole caller is cpufreq_driver_init() which is a pre-s=
mp
>> initcall.  There are no other online CPUs, and even if there were, che=
cking
>> the BSP's CPUID data $N times is pointless.  Simplify registration to =
only
>> look at the BSP.
> I guess an extra safety would be to add some check for the cpuid bit
> in the AP boot path if the cpufreq driver is enabled.

We already have a number of cases where we expect the system to be
reasonably homogeneous, microcode most notably.

Given that we don't currently check this, I don't think it is worth
changing things.
>> While at it, drop obviously unused includes.  Also rewrite the express=
ion in
>> cpufreq_driver_init() for clarity.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>> CC: Wei Liu <wl@xen.org>
>> ---
>>  xen/arch/x86/acpi/cpufreq/cpufreq.c  | 20 +++++++++++++-------
>>  xen/arch/x86/acpi/cpufreq/powernow.c | 28 ++++++---------------------=
-
>>  2 files changed, 19 insertions(+), 29 deletions(-)
>>
>> diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/c=
pufreq/cpufreq.c
>> index f1f3c6923fb3..2251c87f9e42 100644
>> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
>> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
>> @@ -640,13 +640,19 @@ static int __init cpufreq_driver_init(void)
>>  {
>>      int ret =3D 0;
>> =20
>> -    if ((cpufreq_controller =3D=3D FREQCTL_xen) &&
>> -        (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL))
>> -        ret =3D cpufreq_register_driver(&acpi_cpufreq_driver);
>> -    else if ((cpufreq_controller =3D=3D FREQCTL_xen) &&
>> -        (boot_cpu_data.x86_vendor &
>> -         (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
>> -        ret =3D powernow_register_driver();
>> +    if ( cpufreq_controller =3D=3D FREQCTL_xen )
>> +    {
>> +        switch ( boot_cpu_data.x86_vendor )
>> +        {
>> +        case X86_VENDOR_INTEL:
>> +            ret =3D cpufreq_register_driver(&acpi_cpufreq_driver);
>> +            break;
>> +
>> +        case X86_VENDOR_AMD | X86_VENDOR_HYGON:
> This should be two separate case statements.
>
> With this fixed:
>
> Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Thanks.=C2=A0 I'd actually already found and fixed that bug - clearly I s=
ent
out an old version of the patch.

~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 14:05:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 14:05:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225938.390295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcbT-0007Zx-1s; Mon, 15 Nov 2021 14:04:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225938.390295; Mon, 15 Nov 2021 14:04:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmcbS-0007Zq-V6; Mon, 15 Nov 2021 14:04:58 +0000
Received: by outflank-mailman (input) for mailman id 225938;
 Mon, 15 Nov 2021 14:04:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5EvZ=QC=epam.com=prvs=1953637b04=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmcbR-0007Zg-L8
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 14:04:57 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 01c1d9cb-461d-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 15:04:55 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AFDhmGn017233;
 Mon, 15 Nov 2021 14:04:49 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2057.outbound.protection.outlook.com [104.47.13.57])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cbrpj83w5-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 15 Nov 2021 14:04:49 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3376.eurprd03.prod.outlook.com (2603:10a6:803:1d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Mon, 15 Nov
 2021 14:04:44 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 14:04:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01c1d9cb-461d-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UvdlkRrvbuGwe5qU0dU0G3oZ0mpTJdur+WZl6RgcDGlBPZGDdFIi6G8NKtDvSi29z2eXVt/WcuPSbuvLE53Zwy3KvjFjkFqXtkhdjeMiWzFaVC0HHkEQAZKjPZoTAi2lmdO3rKLflhY3JDeLhm38CPxkR/0pmmW6dx1IBluVDGpS3RrvrWxSGjno4h44Ch9rjIbGXqdRes2WXq7B6qoGuOzmuUNDgpI1chQ2qANrnM8H8oBhxDg53PXbZAvuxPzvqPMP5RgP1JaJqj7Qv6Jv0tLb7w65cd1/bQgoIOStDOEM6vBk8VF8DotMjXeomPh5J7vnui68XffKFiJDOKEgBg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YdvDzg0gK7ltXilC9ZV43mCJsJxkkgJAV7gwTIy6P5I=;
 b=jJbO1bTVcD4ZO67UPj5z9pcFhpo0SJm3mT7KQZ6vbmsJeY2QOBn/KxSE63C9Nn1MMy6orZFzmpbdWrVKRM619eDSIpviWhu1UUTQhbGDEg/3aik2zmVIa4WWec56nrkrzwzFowbRlSykGCpS5WOxnnQfLsKrbASKePtwe5QGdmvbSbgN8yrLSP8pt8cwWzPPt/dPviX/ah+GfuRVMaB5iJahcRo6NsJk3ohXIDwbLFm/QMlGg71rllrTjYWOfRvT4pN9mf9a0AAx43IkW5pC4Jntb4CMFB9ktxmIo2/vS7jIu1mBHBzrdyuDrXbp9LpQXyjMgvDE//FbfNPc+ajmEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YdvDzg0gK7ltXilC9ZV43mCJsJxkkgJAV7gwTIy6P5I=;
 b=ST6LHcOA6J+vsn31D5g27/ME+PIpk3f5qB1qSV9NgTyuy/vkik/O4NRwcrRydn13JnxaSD/f7WWaaedXgvXQk/vxdFvZEhXkWs+5EvV9gdpGpt/ye6KgQjJoYoF6y5Nfo16UhNgiBj//Vcg03rWbVROZqFrEcRI/nXCSlpIR1TPXTFGX8ResPTjzCe06EexJd6vd7e3QsoATLEuPtPTzrApn07IPeDZ0epGn1pdfCcBglYBZ0PoeKk+2fHRer9GCXqzka56AyrONmY+MxvBGo/rwSPq3YuV5rrhygOY23vpGaAwMLYUMHzLcOdeTnBCr18rS7ecJMmn3fdqTcs+UUg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Bernard Zhao <bernard@vivo.com>, David Airlie <airlied@linux.ie>,
        Daniel
 Vetter <daniel@ffwll.ch>,
        "dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] drm/xen: fix potential memleak in error branch
Thread-Topic: [PATCH] drm/xen: fix potential memleak in error branch
Thread-Index: AQHX2dM/C7peAofhs0mLDS2TsBGiLKwEn9OA
Date: Mon, 15 Nov 2021 14:04:44 +0000
Message-ID: <ea5cd96c-304b-c623-924d-cf8443455216@epam.com>
References: <20211115034504.4993-1-bernard@vivo.com>
In-Reply-To: <20211115034504.4993-1-bernard@vivo.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: bfbc2cf7-0852-4745-d5b0-08d9a840e076
x-ms-traffictypediagnostic: VI1PR0302MB3376:
x-microsoft-antispam-prvs: 
 <VI1PR0302MB3376F2E1B2D446827AF3F0B6E7989@VI1PR0302MB3376.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6430;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 TDZoGIa6X86gZLV1gN/v44d/5S9iHhpzOK8f/Fvc7X39L7Qs+wQ8h/HD3EQEW0fSMC/yQFlZiRjaD+dOdHHBSQaNaPFd47oRQJ7EM+94ftmeZaD4MV6935ArzVrdbMzPWpgJdl5sTpfisYouk2ba9oK673mcvl8ph6+AAJjwHk5TTvYJAKjY1Gg8yuRGnxV6BXHMviSLUQHA4k66U+yLkU7/ZHo2z+KmQj9KcX8ubQ6Veqr2KYggGEr9TRAAP5+Qlt8kLOgs1B18K20dlb1SgBhZ4eYFLA6ER5O+Dcv/hMgcYH0UJiMvficjGfpUm6byVGnw4gZVMbCb6l+z3gg1qy96A+wfqmiBPbRG9mqKRTunWWSA7Yb7k6wgguI1NqYp8/oCZnPDps6903tFLDBiOxvYoXZjT4blmEFBwSXoVUQorEiu5bReVYPV00O5hjuBixOrxmPjgrDHo8MRzvn4kYCH9YCx7Mw2vbf2oN7LbpI8zFFl5HRze6he1OVueZFX3aNNzJ42cFnvg+WHtXDLCYc6WrFcIwsFbbukj5s30qrQCQmmfMGLrFggnEHX0Mi3YPqMp23H+eNn2npFGHGPacnMowIiv9UOFpehxojsG2Pi9bzi2T4INw5cRxjOxEyOFAZOVViIaj1nYD4fQYwBPQOGsVM2Tl5XmmHeB0Wgr61KZnoweDCSIq1uJQrC1dvLrXEgrbvdJSVL1Num4kab5pKLSzgKrmo6NfMQgl8wzKqTdey9FFOX/03Tpfx7cxlZ
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(8676002)(122000001)(86362001)(5660300002)(66556008)(38100700002)(66446008)(64756008)(76116006)(91956017)(66476007)(66946007)(186003)(38070700005)(31696002)(6512007)(2906002)(31686004)(508600001)(53546011)(6506007)(6486002)(8936002)(36756003)(83380400001)(2616005)(316002)(110136005)(71200400001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?UHNSZU5VSEVZY0JzS2VTQmRuWWJ5WnVzSjk1OE0xQjBZS0dxTnhEWHV3QlRG?=
 =?utf-8?B?N1BFZWdhTEFUU3piSjdqMWdIZTV3YW1OdXFNSkJPTTdkdnVCa0pMY0pCMXJ5?=
 =?utf-8?B?WXlaa2xzdCtNMTZiVjB4d2RaM0dhejA4cGtLd0VlVG5aMnYrQVZZamxSQ2Fs?=
 =?utf-8?B?Um9ORllFUzc5QlVYUFV3K292cE52ZXByMG9DREpTNjZNd2NESXBMbmNMOHJs?=
 =?utf-8?B?bGlJc2JtZjFmREJheFRacHBaVWMwZEJsL1dSbDEwRThOY251NGxrZXdwZjRp?=
 =?utf-8?B?OXFKQlZUMXYvQjNMSkJqdWp1V2pJMXQ0ZEZjRThFTXMyaWhvQVpXZ2grUlVu?=
 =?utf-8?B?dHg3bjZQSWxCSVhJQ2lQc3ZMOS9mRnNtR0JzcXQyRHNXaEQ4dWEyYStQMVk0?=
 =?utf-8?B?ZTBqOTc2aVhzc3JlWDJ2UlVvSFJjbFBnZ1c0c2MraXRaLy8wVzBITlppY3Q1?=
 =?utf-8?B?TWtUM2I5Rm1hRDBTYklweDAwcjBXblZoKzVWQkF0NERuTjhKQnpCQ0F6VE1p?=
 =?utf-8?B?UlREd3JXVktHOE5ickZKR0RuYjBERVV2eUNBcXZyMHIxL0JwSm0xdWlmSUJQ?=
 =?utf-8?B?RlZkWXNlbjYzdUw2SVRUcnZ4Zk1BNVNFQTUyaHY5SUpSNDlpR2Jpc3UrY3cx?=
 =?utf-8?B?MWNGcGhiRkZRa00rK2FWNjhwdnNkeFZqK3J2eEdJRXV6WDFnbGl6TG04aWhy?=
 =?utf-8?B?aTg5dmNwZ3FnR3lTdHdyODJSRDJIb3F6YjlnN2ZvSGk3YkpjaldwMnhtbktP?=
 =?utf-8?B?VGNRZWdsaklGZG9uZExzcFFUd0ZtS3dqclJHUlRld1VibEp4OS9NaFdiaUdH?=
 =?utf-8?B?bndvZldHS1lKUitEMTNuWTYrMDdvOTROZ0lVeElvSDAwSStXSldVK0VHVkRj?=
 =?utf-8?B?NDBTSEFldzdWT2RCM0pzd3NFT3duNTRwa0xEZ0NyV2kzSW9TcnVMV0k1a25k?=
 =?utf-8?B?bDV5c09FeVZwNWx1Z1JKQ0FJUGNjSmZ3M1J2VVFiQVRMUXdzVFc0QnNmbldN?=
 =?utf-8?B?dkw4Tm1vTnBSTjJiVGpvbFNyaitYK2FTbEFoSDJjc0RTL3JiVFpkQnVkM093?=
 =?utf-8?B?YmFBM0hXc3BIdHpKVjNMMVl4SG5sUmhxUXpRYzZYcFcyd3VMNDEvemtPb0tR?=
 =?utf-8?B?UVVtQkpvK203OUk2UHlkalZaMW9CcVFKT0ZRREg2ZnZhRFI4K1JHOFA4T3gr?=
 =?utf-8?B?dlRtWTJiR0tmZlE1T01McmtSTmRMK3NEY1Y5cXVMMENGbXVTa1c2UnBrUEJk?=
 =?utf-8?B?eUExSytqNzh6aXhOaWZQeFVITGxlSktvalY1eE9DZjJ2Zjd0cVpxWkxhTFRR?=
 =?utf-8?B?bkFVREtlL3JyekFCY2laRUoyUi9VQUw1UVdwZWMwazJaNVp6UlJMV2E1S1Nx?=
 =?utf-8?B?eHlmcFBhcGNTYzQxeWJPNkRQZjBIUkZDeTdTN3Y5aDdTMzU4Vjk2a1NYT3B3?=
 =?utf-8?B?S1BHSk9ya1pHVFcyamFYbmtmVkxUdG1CSmxDZzdwYWpkTWo5Um1ZWitvM2FV?=
 =?utf-8?B?VCt6N3UrWWEweEVENjNKSDBIZjQ5cmg1U0RZWXZkckFRbDZmUm9hTDgxZFoy?=
 =?utf-8?B?K0oxcUw0T2VDRy9Kc0tCNU1zRXFLWlE0ZnVKSk5TcG12ZW5NNGdNdVExUTZu?=
 =?utf-8?B?Tm9ZYTNEWFpJcCtPNTgvdHhFSHR0My8zWklxbjVoanoyNTVFdXdKRnZCcFVG?=
 =?utf-8?B?Zm1WdFJ2UmY4dFhIZHMrVGFLSEdiZ3hEZHpGQWlWRGQ1djVKZHlzWjl3ZVNH?=
 =?utf-8?B?NEZnc1M2YzZDeS84OUpMeGRmZ0E4RkJpN1lPMjhVUFF3MDFwQ0xxV2N2SXZz?=
 =?utf-8?B?cXVQMGRZSEJZb1U4Z0lrVkt1a1dGVlY0RC9jbUQ4a3Y0SnJwdkVscXZISnVU?=
 =?utf-8?B?ZWR3aFIyWGl0M0hvVEJFOWpjL295UlppT2dqZTY0YmN3akE0VitJbm9aeHNj?=
 =?utf-8?B?VzJud0t0VjRzK1JYaVphdDhvaTJEVFZQZlVybFVHaVJxYm42SXBMdWFnaXZk?=
 =?utf-8?B?Z3R3aTZGVWQ3NGlpZjNtKzlNZERrUDVrKzdraHJMREx3ZVMydzFWMEZ1R29m?=
 =?utf-8?B?UElWZ3RvRE9tVGdkSEQ4NTFnLzNITFhTOXpQMjN2eVVuRlh4Z21QTFZuNVZD?=
 =?utf-8?B?Ny9XWFo3dkJwQlZ1Wm9wQUQ1QXJCUzUxY0FOMzByZGxCZERTcGJKb2kxekR5?=
 =?utf-8?B?YWxGdDJsWkVHcnlQeVVTUjV3WE5La3JhWXR4S3YwTUVVQXZXendsSWJydnJF?=
 =?utf-8?B?Tjc5T09nbnl2cncybGZGbEtKOSs0YXdNYTdlQ1ZSS3djZ2xqelRGN0lBditC?=
 =?utf-8?B?REg1QVgzQUFxcmZRTFA4UWFWS2psMnZsREZGWStrajNnYnRqcXdCUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BE2404875A343F4AA74F8EB8F7B45349@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bfbc2cf7-0852-4745-d5b0-08d9a840e076
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 14:04:44.5320
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 2oORsUDdmffVqZT00DTwgLdpKeXy0Ft5FOPG3EkmL7tZ+q10xCsyfRBI/oQ16B1ZD2GDHxrjA/CDosEcCiCTfRwUEa9Tjg+HF17UMXmos/ywCMDjlGySo0h0Na4Gzfqn
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3376
X-Proofpoint-ORIG-GUID: ATgmAinecZTS0cwAs60zwV-HfSzFi8Pc
X-Proofpoint-GUID: ATgmAinecZTS0cwAs60zwV-HfSzFi8Pc
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-15_10,2021-11-15_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0
 priorityscore=1501 lowpriorityscore=0 mlxscore=0 phishscore=0 adultscore=0
 suspectscore=0 malwarescore=0 spamscore=0 impostorscore=0 clxscore=1011
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111150076

SGksIEJlcm5hcmQhDQoNCk9uIDE1LjExLjIxIDA1OjQ1LCBCZXJuYXJkIFpoYW8gd3JvdGU6DQo+
IEluIGZ1bmN0aW9uIHhlbl9kcm1fZnJvbnRfZ2VtX2ltcG9ydF9zZ190YWJsZSwgaWYgaW4gZXJy
b3IgYnJhbmNoLA0KPiB0aGVyZSBtYXliZSBwb3RlbnRpYWwgbWVtbGVhayBpZiBub3QgY2FsbCBn
ZW1fZnJlZV9wYWdlc19hcnJheS4NCj4NCj4gU2lnbmVkLW9mZi1ieTogQmVybmFyZCBaaGFvIDxi
ZXJuYXJkQHZpdm8uY29tPg0KPiAtLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1f
ZnJvbnRfZ2VtLmMgfCA4ICsrKysrKy0tDQo+ICAgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9u
cygrKSwgMiBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94
ZW4veGVuX2RybV9mcm9udF9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9u
dF9nZW0uYw0KPiBpbmRleCBiMjkzYzY3MjMwZWYuLjczMmMzZWVjMDY2NiAxMDA2NDQNCj4gLS0t
IGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5jDQo+ICsrKyBiL2RyaXZl
cnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYw0KPiBAQCAtMjIyLDE1ICsyMjIsMTkg
QEAgeGVuX2RybV9mcm9udF9nZW1faW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpk
ZXYsDQo+ICAgDQo+ICAgCXJldCA9IGRybV9wcmltZV9zZ190b19wYWdlX2FycmF5KHNndCwgeGVu
X29iai0+cGFnZXMsDQo+ICAgCQkJCQkgeGVuX29iai0+bnVtX3BhZ2VzKTsNCj4gLQlpZiAocmV0
IDwgMCkNCj4gKwlpZiAocmV0IDwgMCkgew0KPiArCQlnZW1fZnJlZV9wYWdlc19hcnJheSh4ZW5f
b2JqKTsNCj4gICAJCXJldHVybiBFUlJfUFRSKHJldCk7DQo+ICsJfQ0KVGhpcyB3aWxsIGJlIGRl
bGV0ZWQgb24gdGhlIGZhaWwgcGF0aCBvZiB0aGUgaW1wb3J0IGJ5IHJlbW92aW5nIHRoZSBHRU0N
Cm9iamVjdCwgc28geGVuX2RybV9mcm9udF9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgd2lsbCB0
YWtlIGNhcmUgb2YgdGhpcw0KPiAgIA0KPiAgIAlyZXQgPSB4ZW5fZHJtX2Zyb250X2RidWZfY3Jl
YXRlKGRybV9pbmZvLT5mcm9udF9pbmZvLA0KPiAgIAkJCQkJeGVuX2RybV9mcm9udF9kYnVmX3Rv
X2Nvb2tpZSgmeGVuX29iai0+YmFzZSksDQo+ICAgCQkJCQkwLCAwLCAwLCBzaXplLCBzZ3QtPnNn
bC0+b2Zmc2V0LA0KPiAgIAkJCQkJeGVuX29iai0+cGFnZXMpOw0KPiAtCWlmIChyZXQgPCAwKQ0K
PiArCWlmIChyZXQgPCAwKSB7DQo+ICsJCWdlbV9mcmVlX3BhZ2VzX2FycmF5KHhlbl9vYmopOw0K
PiAgIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsNCj4gKwl9DQo+ICAgDQo+ICAgCURSTV9ERUJVRygi
SW1wb3J0ZWQgYnVmZmVyIG9mIHNpemUgJXp1IHdpdGggbmVudHMgJXVcbiIsDQo+ICAgCQkgIHNp
emUsIHNndC0+b3JpZ19uZW50cyk7DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 14:11:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 14:11:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225944.390306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmchf-0000eB-T7; Mon, 15 Nov 2021 14:11:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225944.390306; Mon, 15 Nov 2021 14:11:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmchf-0000e4-Pt; Mon, 15 Nov 2021 14:11:23 +0000
Received: by outflank-mailman (input) for mailman id 225944;
 Mon, 15 Nov 2021 14:11:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mmche-0000dy-9j
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 14:11:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmchc-0001O1-1V; Mon, 15 Nov 2021 14:11:20 +0000
Received: from [54.239.6.189] (helo=[192.168.10.237])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmchb-0004pw-R2; Mon, 15 Nov 2021 14:11:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=9Za1DzF3PkhnitzHrI17zIhpxZnD83lWppINSNqqwTo=; b=c9c7dbIlLWiLInmjnmiwQYXvMU
	0FfjeZMYd1F5aHGGxbmUKOweHtDWjAGgDS5CogWuHkQsgpzmxFG3UO8xSpGHkoifb33XtsnUcO1jb
	vdTfOVO1mGkPvi3Z0n70qjvG00x77rpuTh2ZZxXdrNY+65Lh2M4Izr6VCp8EfoF9/tRg=;
Message-ID: <06f83d83-382e-7ae7-551e-3f05a1cc3293@xen.org>
Date: Mon, 15 Nov 2021 14:11:17 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com>
 <a1b2aa1b-7d8a-4ab6-cde5-25581ee9841c@suse.com>
 <C3FB48C2-F619-48A2-9268-F0938405133C@arm.com>
 <fc9fd8d6-7461-367c-01c6-f4c852e13f54@suse.com>
 <02EF96BF-D2A6-4415-A6E9-B9511C18C895@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <02EF96BF-D2A6-4415-A6E9-B9511C18C895@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Bertrand,

On 15/11/2021 11:23, Bertrand Marquis wrote:
>> On 15 Nov 2021, at 10:55, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 15.11.2021 11:23, Bertrand Marquis wrote:
>>> Hi Jan,
>>>
>>>> On 15 Nov 2021, at 10:20, Jan Beulich <jbeulich@suse.com> wrote:
>>>>
>>>> On 15.11.2021 11:13, Bertrand Marquis wrote:
>>>>>> On 11 Nov 2021, at 17:57, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>>>>> --- a/xen/common/domain.c
>>>>>> +++ b/xen/common/domain.c
>>>>>> @@ -1234,15 +1234,18 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
>>>>>>    return 0;
>>>>>> }
>>>>>>
>>>>>> -static void do_domain_pause(struct domain *d,
>>>>>> -                            void (*sleep_fn)(struct vcpu *v))
>>>>>> +static void _domain_pause(struct domain *d, bool sync /* or nosync */)
>>>>>
>>>>> Here you use comments inside the function definition.
>>>>> I think this is something that should be avoided and in this specific case a
>>>>> boolean sync is clear enough not to need to explain that false is nosing.
>>>>
>>>> While I agree the comment here isn't overly useful, I think ...
>>>>
>>>>>> @@ -1250,12 +1253,12 @@ static void do_domain_pause(struct domain *d,
>>>>>> void domain_pause(struct domain *d)
>>>>>> {
>>>>>>    ASSERT(d != current->domain);
>>>>>> -    do_domain_pause(d, vcpu_sleep_sync);
>>>>>> +    _domain_pause(d, true /* sync */);
>>>>> Same here.
>>>>
>>>> ... comments like this one are pretty useful to disambiguate the plain
>>>> "true" or "false" (without the reader needing to go look at the function
>>>> declaration or definition).
>>>
>>> I agree with that but the comment here is useful, it could be added before
>>> the call instead of inside it.
>>
>> Except the form Andrew has used is the one we've been using elsewhere
>> for some time.
> 
> I know I found some other examples and that why I say “should” and not must.
> If other consider that this is the right way to go and should not be changed this
> is ok with me

Adding the comment after the parameter is a lot easier to read.

What is Misra/FuSA trying to solve by preventing to comment just after 
the parameters?

> but I wanted to make the comment as this could ease the work
> with FuSa and Misra compliance in the future.

This will need to be part of a larger discussion on how the community 
want to integrate FuSa/Misra rules. I do expect a few of the rules may 
be quite controversial to adopt (like the one above) and therefore we 
would need to discuss the pros/cons of them.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 14:32:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 14:32:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225953.390318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmd1O-00032u-IR; Mon, 15 Nov 2021 14:31:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225953.390318; Mon, 15 Nov 2021 14:31:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmd1O-00032n-FM; Mon, 15 Nov 2021 14:31:46 +0000
Received: by outflank-mailman (input) for mailman id 225953;
 Mon, 15 Nov 2021 14:31:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmd1M-00032h-Pr
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 14:31:44 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0f5e891-4620-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 15:31:43 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2058.outbound.protection.outlook.com [104.47.12.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-36-JceHiDKyMuWuQXLK2WTLPg-1; Mon, 15 Nov 2021 15:31:42 +0100
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com (2603:10a6:208:125::12)
 by AM0PR0402MB3459.eurprd04.prod.outlook.com (2603:10a6:208:1b::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Mon, 15 Nov
 2021 14:31:40 +0000
Received: from AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670]) by AM0PR04MB5587.eurprd04.prod.outlook.com
 ([fe80::387b:e76e:f981:f670%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 14:31:40 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR04CA0023.eurprd04.prod.outlook.com (2603:10a6:206:1::36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.25 via Frontend Transport; Mon, 15 Nov 2021 14:31:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0f5e891-4620-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636986703;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ine1KUir3OUHo3fP4t5NdeCpmkGsNbT1SwSgaiuSkCs=;
	b=XMaEw9ZLcIZQDo5peNKoJ5LqYI7UoWLrszmtZ5VjiX06UhC5lgC5LIDDdH3Wr05ORvsstZ
	GMV1VIrBkoHxks5a3999kxhhJOm6LGpgFhfiz9bzbJWo3HQWngKXAGRxQBM9nJqjJwVEgJ
	p6SLiKnfvg35ckG/8V/oeOATM56nl4k=
X-MC-Unique: JceHiDKyMuWuQXLK2WTLPg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=c7wZhrRiijNmykD2AXZ5XqH2dnBnYlvA0pASTzun795SRMSsHNOp4Jws0/yWQyzkE2hc4aQc90NzzogECEbtKf7900scBfeSMAJDLrNdVPdnCLTE2wLQGe+ldTJ5vwe+B9RgXxOs9t9xzhIM3JOIisMtEj8AVrw7vXWilX575F7LTC3TVJlawabZ5Tee9S4QMqFlUtwcSX9MGe9esQdMVBwPRzmaNAS1Xkts+/YsCzSZmqh/S0aF2SE3X2od4D6SLdnZXFVi81uf9PRCe3MwXVFgLax7h/jyj5Kv5o4h5UIsG96DEJi1HWyJYICLmwiptp5MXWMcpWg+zMkdDQNmbA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ine1KUir3OUHo3fP4t5NdeCpmkGsNbT1SwSgaiuSkCs=;
 b=JUR8bAfp1Cd3l2Rwy9hdciSW43OOMJYI17DUJExywDF5/Sg+ImCIC87fZVfjL0BDdZqaUa+ld/OIluScXYWNslLjjZY3+orNfzZjc/cpR2T6mjg4edBWje5s/vrk0AGhE3imz1ZMN0rOvLq5uRXe46aKMkrSAE9jbw+mE8g2s6F2HjyCmmU4atgzHfqTuEIRLo44oA4K9Yebi1wrPHzGgxRgOuWjXzME0yINfXNMoLQSGtX9rGWz8sZRUUx11Lrvbsy1nkjGt+vM7KkD319FTSIA4Ijdh5EH+K9Sv0iWCs9zuhIrxuKGrHhcwokcziZu1BcVM8tVZyEzR0/Esv83Mg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b752a000-f69c-ad21-d059-90e12fc83553@suse.com>
Date: Mon, 15 Nov 2021 15:31:39 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2.2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Ian Jackson <iwj@xenproject.org>, Paul Durrant <paul@xen.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Language: en-US
In-Reply-To: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR04CA0023.eurprd04.prod.outlook.com
 (2603:10a6:206:1::36) To AM0PR04MB5587.eurprd04.prod.outlook.com
 (2603:10a6:208:125::12)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 796fc401-d501-4c51-c4b6-08d9a844a389
X-MS-TrafficTypeDiagnostic: AM0PR0402MB3459:
X-Microsoft-Antispam-PRVS:
	<AM0PR0402MB345956A698F40B654B518653B3989@AM0PR0402MB3459.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/bBt/QujRj8aBpquLU6I6D2MAUaO5Rmmkl7hMBlAXYp3RQfwxxHLIcZmMHOAEO1wy7PSVI1cGDpR9O4e7rpPMVO/LgmexE2cb9rBAdjG2d+C7XJyjHTq9BfJcnYT89MqH/6pM1vti26g6KL8/X+RRUsnIo5zfMQYiSADPPhF9JVTyBzNWxO2v4kMjeqmovYOoigRopH54RlkxjlEN0hZoSkytMdRKuyFIhgoQ8YXFXzdyXGK3hrFFE3uj8tRm0Fnkp6wHoB1tGSLWs9TfIb0tCqOkQ6t5ivhRuW4bKsgwI/mWOgA5aBqb/l7byBVc3rbUU3v7h++WbyOrmRaEqooUjheKhvOptV9WpQUFKPkOvR3Q3OOu3n+dBQ3HXIhmGEUdxjfu3DWJdXD721X+J9G7L3Cu2ynoBCmeIc8mWfq7VEa8mZmukbnuB0Ucb3Hu976oydSS1fk06ZKLbTLOoDzYsjim1Ta8lqeG9zY64b0V4S5bk1vv49HQkK1sQBXbL41i5OmWY45Znbh3eEoYUKlvcojV6xQfMXMjMLghTqEIE+BWSbEYvi19zKtjgiN9KOVOvG42eh+mdAMTzn/6qI2pDFPMYi/bg6bWDxGIya6orzSB4rWylQvKKGGo4H+1PEQ5acAKaubgnSoFCLH3LvHMNao/CJAeEaEHbIvVucwMhBWG7LM54hj9EM58YrlWtip5UdB8NZewExxTpdvzJ1ory5zY6l5Tflz1wnN/QNFuko=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5587.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(5660300002)(16576012)(38100700002)(31696002)(6486002)(186003)(508600001)(83380400001)(66946007)(66476007)(26005)(8936002)(86362001)(4326008)(31686004)(8676002)(2616005)(956004)(66556008)(36756003)(6916009)(316002)(54906003)(2906002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S2tJK3ZPWGVaNlNkZjY4cDhVS0d3dU1PdndHZzRBQnM0a1JrcnN6VlpELzB3?=
 =?utf-8?B?S2cvSmhTN2xYZ2pyUEtSbGFyZDZLRDNvTUltU0hhVGV5WTdTS3YvM2pvRGFv?=
 =?utf-8?B?WWN0WTJ0c1MzR3pTMVViOC9FcjdFL0F3em9qMFFKUDE3SWRQeDltNXhuK0NL?=
 =?utf-8?B?UTJHSUVTREtXNkNSSWlBakRwc1pYYTFqcFJwU3JCMkR4UGE4cjFXVE9qQ0Uy?=
 =?utf-8?B?cDYvYWdEZTFFUm9FZFFpVjJjS0FaWGxZc0U4clhpc0xwdEtWbmM5aHduc1J0?=
 =?utf-8?B?c0N1dWZ3TWF4eTBxeUhwWXp4YlhYM080RHpma0dPZ2NuVmZyYjhNREtDc3c2?=
 =?utf-8?B?aHZTM2FXUjBMUXVUMzMvc2k0ZU5tQ3A0ZVRPMzVtU29BY1J4RmpLQ3lWa3FO?=
 =?utf-8?B?VGdwNUw3YTNMVnFrb3RPTXNsbjVvUmxaM0dReFArbDNUcnpyUGxEUitMU29r?=
 =?utf-8?B?b3lDeURmY3ZTeVl4OGlMdkMzaDd4OWp5Z0dTQVlGa1kvUG4vME1XZHZFV2Vp?=
 =?utf-8?B?aEVnZnlOUnRTNGpRUHZmSkszdXhkbXRZK3ZLYnBUU0NHWVhvWEVSVkdjMTRO?=
 =?utf-8?B?QVN0RnFrNEJWWjJyK2IrMzlBNDMwZXgzK1krU1hNZmRqMlB5YlpzQ2tNNE4z?=
 =?utf-8?B?MVRSRnNuR3kyaHdqNEVTY0UvbGtvcFI2VDFBNlBMTTB0bGR2elNISmtQRTQw?=
 =?utf-8?B?dEQ3eExXRUVhUUFLU0RVUHBZWHo1K1hheXVSWm1LeUp6YUluYjJ0TEplNzVH?=
 =?utf-8?B?T1hoT0dMQVV3YTM3U1grRlJheDJweUROT05zeU5URUJEbThubERhQUNob29l?=
 =?utf-8?B?Z1Nrd2lZZS9QN1FsZjkwRkc4VCtUUzdGMDlEa0tVRE9VL21TNFZ2RmdYZ3B5?=
 =?utf-8?B?Mk1Wb2ZQcG1EWGNlZEl0TjR1cVgyeHo4STc1R292K05odHQwUG15SDV6Zzh2?=
 =?utf-8?B?OWEvTDF3UlpKZEJha08rdTB4a1lodHBoOHJFRzBCdjVxTUY2VEJ5d1MrQnJB?=
 =?utf-8?B?enRMNlFRMi9oRHdTbThCYklMckQ1UkgwKzVCVDNyUDNKRUJqR25oaGFTUm8v?=
 =?utf-8?B?bzliTHRBWVZZQk9nL2tHb2ZhTW5DUWs5NmRKbDBES01GdVFlQUN5Wm0xMjBl?=
 =?utf-8?B?ZlVGV2E1bUVEbVA0d3FDQUkyamphaUhwdlpoL3ZTL05haUtTMXlYaSt5WmNN?=
 =?utf-8?B?ZEU5Q2oremc1NWdtR0s0SkJLTHo1SGMvQkIwM296WmRVcUJhMWI5TnowTTdj?=
 =?utf-8?B?VENTZlFWaVV6TDlqU09zS0lEMzUzNzd4QUxkNEFoem95UFhlVUJnc1ROblBp?=
 =?utf-8?B?d2kydklERjNGNjNTZmExMmRtSUFGb3g5MDRwMGdsODZUV3ZqSGk1dVdDQ2lG?=
 =?utf-8?B?RGd2ekI1Ui9wcUtzc3gzWXhJS3pKNTRrTW9SdmRBUDN0d0t5UTJ1WUk4UWpp?=
 =?utf-8?B?dlhGTERYZ0FGMXpsTmVheGpicGQrZUg5Q0dGeDZsK1NLZzVHNzY4M0lvdXNB?=
 =?utf-8?B?VWtuTmxMV3MzT244U1FiTCtZSStLZGd0L2dTRFR0bDNNSzhqTEEyQ3F2Z0FZ?=
 =?utf-8?B?U01CVzRhSGNOVzVkRVRYd3BQQlNQa3J0UnZFeDJsLzZOUndsZFMzdUlsQk53?=
 =?utf-8?B?RWxiUkpRNXc3enROZEtPaDhPejF0Z3N0UUNTSjhpNW9sREpyQ1FjWTd3cFRR?=
 =?utf-8?B?SlRCY1JaalhHMmUwV0FZRE9IemFGMEQyUkYxbHFub09xanFieEMydkZna29z?=
 =?utf-8?B?YnBSR1RvKzhjL2d6K1FMNm9MTEJkb2VkZzdVV0ozVm1MODZPekY0Tm5Tb1lN?=
 =?utf-8?B?Q3JMc0t5MTVPVVZRVVdFenVoMWh3N1I4QS9YL1VsSVhHaWg3Yi8xMEFOTGdC?=
 =?utf-8?B?aTcrMVRLSUtQV3pPVzRsR3JWcURFVXVHVGNvY3R3WkRlYitUWHpZdTZ5OEhD?=
 =?utf-8?B?QTFVekJ1cWpzZmV2S1lDcmFYQUtkWVU5OSthSXF2NTRNU3Zlc2hhNVlsemkx?=
 =?utf-8?B?L2czcHU1VEhSL1B4bE1wNThma25pb21nNkhNNExBYkNpMVJlYlNGUlJpTnIy?=
 =?utf-8?B?WFlIeVB0Rm9mZW1PUXZrS2dTSUpPa3FRclBMYWFMWDNFa0JkZWdVSWZzWGcv?=
 =?utf-8?B?c1BuYnJvOHJxRjFrWGxnU1ZLeUU0NndSZ200QTdjQUVvNDVIUEpBVEpzV2V1?=
 =?utf-8?Q?xZh/nWWn7Y7GrrPCyyaM2XM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 796fc401-d501-4c51-c4b6-08d9a844a389
X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5587.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 14:31:40.5712
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JwSqGXOoUpldQ39zGHoamlbJJjYpK9m3WAArZZWzEXWvigKuPkRQw6ZFXGsG7pssN/n6FpgqSG4U1jgiwP4WZQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3459

While commit 46c4061cd2bf ("x86/IOMMU: mark IOMMU / intremap not in use
when ACPI tables are missing") deals with apic_x2apic_probe() as called
from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
affected: The call needs to occur after acpi_iommu_init(), such that
iommu_intremap getting disabled there can be properly taken into account
by apic_x2apic_probe().

Note that, for the time being (further cleanup patches following),
reversing the order of the calls to generic_apic_probe() and
acpi_boot_init() is not an option:
- acpi_process_madt() calls clustered_apic_check() and hence relies on
  genapic to have got filled before,
- generic_bigsmp_probe() (called from acpi_process_madt()) needs to
  occur after generic_apic_probe(),
- acpi_parse_madt() (called from acpi_process_madt()) calls
  acpi_madt_oem_check(), which wants to be after generic_apic_probe().

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Based on code inspection only - I have no affected system and hence no
way to actually test the case.
---
v2.2: Move generic_apic_probe() again, but only past acpi_iommu_init().
v2.1: Respect acpi_disabled in acpi_iommu_init().
v2: Don't move generic_apic_probe() invocation, instead pull out
    acpi_iommu_init() from acpi_boot_init().
---
4.16: While investigating the issue addressed by the referenced commit,
      a variant of that problem was identified when firmware pre-enables
      x2APIC mode. Whether that's something sane firmware would do when
      at the same time IOMMU(s) is/are disabled is unclear, so this may
      be a purely academical consideration. Working around the problem
      also ought to be as simple as passing "iommu=no-intremap" on the
      command line. Considering the fragility of the code (as further
      demonstrated by v1 having been completely wrong), it may therefore
      be advisable to defer this change until after branching.
      Nevertheless it will then be a backporting candidate, so
      considering to take it right away can't simply be put off.

--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -757,8 +757,6 @@ int __init acpi_boot_init(void)
 
 	acpi_mmcfg_init();
 
-	acpi_iommu_init();
-
 	erst_init();
 
 	acpi_hest_init();
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1700,15 +1700,30 @@ void __init noreturn __start_xen(unsigne
 
     dmi_scan_machine();
 
-    generic_apic_probe();
-
     mmio_ro_ranges = rangeset_new(NULL, "r/o mmio ranges",
                                   RANGESETF_prettyprint_hex);
 
     xsm_multiboot_init(module_map, mbi);
 
+    /*
+     * IOMMU-related ACPI table parsing may require some of the system domains
+     * to be usable.
+     */
     setup_system_domains();
 
+    /*
+     * IOMMU-related ACPI table parsing has to happen before APIC probing, for
+     * check_x2apic_preenabled() to be able to observe respective findings, in
+     * particular iommu_intremap having got turned off.
+     */
+    acpi_iommu_init();
+
+    /*
+     * APIC probing needs to happen before general ACPI table parsing, as e.g.
+     * generic_bigsmp_probe() may occur only afterwards.
+     */
+    generic_apic_probe();
+
     acpi_boot_init();
 
     if ( smp_found_config )
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -43,14 +43,17 @@ bool __read_mostly iommu_intpost;
 
 void __init acpi_iommu_init(void)
 {
-    int ret;
+    int ret = -ENODEV;
 
     if ( !iommu_enable && !iommu_intremap )
         return;
 
-    ret = acpi_dmar_init();
-    if ( ret == -ENODEV )
-        ret = acpi_ivrs_init();
+    if ( !acpi_disabled )
+    {
+        ret = acpi_dmar_init();
+        if ( ret == -ENODEV )
+            ret = acpi_ivrs_init();
+    }
 
     if ( ret )
     {



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 14:33:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 14:33:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225956.390329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmd3E-0003cL-UZ; Mon, 15 Nov 2021 14:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225956.390329; Mon, 15 Nov 2021 14:33:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmd3E-0003cE-Rm; Mon, 15 Nov 2021 14:33:40 +0000
Received: by outflank-mailman (input) for mailman id 225956;
 Mon, 15 Nov 2021 14:33:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmd3D-0003c6-Ky
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 14:33:39 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 055a2d14-4621-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 15:33:38 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:40254)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmd3B-000EMV-2B (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 14:33:37 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id E26DA1FC17;
 Mon, 15 Nov 2021 14:33:36 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 055a2d14-4621-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
To: Jan Beulich <jbeulich@suse.com>
Cc: Ian Jackson <iwj@xenproject.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>,
 Jane Malalane <jane.malalane@citrix.com>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
 <d1978235-f025-19ac-707c-c2e411a5a005@srcf.net>
 <008467ea-75af-acb5-62af-bd1db03ccc68@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Message-ID: <790bf907-8c6e-b8cc-6832-b8fe21af536b@srcf.net>
Date: Mon, 15 Nov 2021 14:33:36 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <008467ea-75af-acb5-62af-bd1db03ccc68@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB

On 15/11/2021 10:53, Jan Beulich wrote:
> On 12.11.2021 19:51, Andrew Cooper wrote:
>> On 10/11/2021 09:19, Jane Malalane wrote:
>>> Before, user would change turbo status but this had no effect: boolea=
n
>>> was set but policy wasn't reevaluated.  Policy must be reevaluated so=

>>> that CPU frequency is chosen according to the turbo status and the
>>> current governor.
>>>
>>> Therefore, add __cpufreq_governor() in cpufreq_update_turbo().
>>>
>>> Reported-by: <edvin.torok@citrix.com>
>>> Signed-off-by: <jane.malalane@citrix.com>
>>> ---
>>> CC: Jan Beulich <jbeulich@suse.com>
>>> CC: Ian Jackson <iwj@xenproject.org>
>>> ---
>>>
>>> Release rationale:
>>> Not taking this patch means that turbo status is misleading.
>>>
>>> Taking this patch is low-risk as it only uses a function that already=

>>> exists and is already used for setting the chosen scaling governor.
>>> Essentially, this change is equivalent to running 'xenpm
>>> en/disable-turbo-mode' and, subsequently, running 'xenpm
>>> set-scaling-governor <current governor>'.
>>> ---
>>>  xen/drivers/cpufreq/utility.c | 6 +++++-
>>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/util=
ity.c
>>> index b93895d4dd..5f200ff3ee 100644
>>> --- a/xen/drivers/cpufreq/utility.c
>>> +++ b/xen/drivers/cpufreq/utility.c
>>> @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_sta=
te)
>>>      {
>>>          ret =3D cpufreq_driver.update(cpuid, policy);
>>>          if (ret)
>>> +        {
>>>              policy->turbo =3D curr_state;
>>> +            return ret;
>>> +        }
>>>      }
>>> =20
>>> -    return ret;
>>> +    /* Reevaluate current CPU policy. */
>>> +    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);
>>>  }
>> So, having looked through the manual, what the cpufreq_driver does for=

>> turbo on Intel is bogus according to the SDM.
>>
>> There is a non-architectrual dance with IA32_MISC_ENABLE bit 38 (per
>> package) for firmware to configure turbo, but it manifests as another
>> dynamic CPUID bit (which I think we handle correctly).=C2=A0 It has th=
e same
>> semantics as XD_DISABLE and CPUID_LIMIT so we might want to consider
>> adding it to the set of bits we clear during boot.
> This is quite confusing in the docs - at least one of the tables calls
> the bit "IDA Disable", while other entries at least also refer to the
> effect of disabling IDA. I'm afraid I have trouble connecting turbo
> mode and IDA disabling, unless both are two different names of the
> same thing. Maybe they really are, except that SDM vol 2 uses yet
> another slightly different term for CPUID[6].EAX[1]: "Intel Turbo Boost=

> Technology".

SDM Vol3 14.3 uses IDA and turbo interchangeably in some cases.=C2=A0 It
reads as if IDA is the general technology name, and turbo is a sub-mode
for "doing it automatically without software involvement".

On CPUs which support IDA, the CPUID bit is !MISC_ENABLE[38], with
further adds to the confusion of which is which.

>> However, the correct way to turn off turbo is to set
>> IA32_PERF_CTL.TURBO_DISENGAGE bit, which is per logical processor.=C2=A0=
 As
>> such, it *should* behave far more like the AMD CPB path.
> I'm afraid public documentation has no mention of a bit of this name.
> Considering the above I wonder whether you mean "IDA engage" (bit 32),
> albeit this doesn't seem very likely when you're taking about a
> "disengage" bit.

It is that bit.=C2=A0 Despite the name given in Vol4 Table 2-12, it is "s=
et
to disable".

Vol3 Figure 14-2 explicitly calls it the "IDA/Turbo disengage" bit and
the surrounding text makes it clear that it is disable bit, not an
enable bit.=C2=A0 Also, that's how the Linux intel_pstate driver uses it.=


>  If it is, we'd still need to cope with it being
> unavailable: While as per the doc it exists from Merom onwards, i.e.
> just far enough back for all 64-bit capable processors to be covered,
> at least there it is attributed "Mobile only".

Honestly, the number of errors in those tables are alarming.=C2=A0 The MS=
R is
has been around longer than turbo, and I'm told that the interface has
never changed since its introduction.

Looking across Linux, there's a mess too.

acpi-cpufreq and energy_perf_policy use the MISC_ENABLE bit (which is
package wide)
intel_ips driver uses PERF_CTL (which is logical processor)
intel_pstate uses MISC_ENABLE || max_pstate =3D=3D turbo_pstate

I'm certain I've seen "one pstate being special" WRT turbo before, but I
can't locate anything about this in the SDM, which possibly means it is
model specific.

~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 14:46:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 14:46:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225960.390340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmdFJ-00057n-5c; Mon, 15 Nov 2021 14:46:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225960.390340; Mon, 15 Nov 2021 14:46:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmdFJ-00057g-0p; Mon, 15 Nov 2021 14:46:09 +0000
Received: by outflank-mailman (input) for mailman id 225960;
 Mon, 15 Nov 2021 14:46:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z40d=QC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mmdFH-00057a-8l
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 14:46:07 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20625.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2810710-4622-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 15:46:05 +0100 (CET)
Received: from DU2PR04CA0182.eurprd04.prod.outlook.com (2603:10a6:10:28d::7)
 by AM8PR08MB5619.eurprd08.prod.outlook.com (2603:10a6:20b:1d8::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Mon, 15 Nov
 2021 14:46:03 +0000
Received: from DB5EUR03FT015.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:28d:cafe::7a) by DU2PR04CA0182.outlook.office365.com
 (2603:10a6:10:28d::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend
 Transport; Mon, 15 Nov 2021 14:46:03 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT015.mail.protection.outlook.com (10.152.20.145) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.19 via Frontend Transport; Mon, 15 Nov 2021 14:46:03 +0000
Received: ("Tessian outbound f493ab4f1fb8:v110");
 Mon, 15 Nov 2021 14:46:03 +0000
Received: from 982965a7ecf2.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 4BC9FBE6-15EC-4C30-A164-0A9854170F4C.1; 
 Mon, 15 Nov 2021 14:45:54 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 982965a7ecf2.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 15 Nov 2021 14:45:54 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB3912.eurprd08.prod.outlook.com (2603:10a6:20b:86::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.18; Mon, 15 Nov
 2021 14:45:45 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 14:45:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2810710-4622-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8pfftpuK/NNpwJ+kb4m/cNWuDnpgX7GSos0apNFZI7Y=;
 b=MnOkhr5ZdvaN9MUcGqXdw8mphCPOVsKd/xwHf2S0pqG/1gSPc3Dufl25uCPxiZtenua9XUM0OWHQZcsLOluU5V2S0ueWdxVsCXmU0XlSm2aUFp1O73chi8bD6B7nw6kWn/5C9RifTK8T/9rJTenhXxDkdwd4s2ULfmJGkhyagFs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 8395f5e87bd14916
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VnyEFYfpPD+lVU+glx1Yc8x1YMB2AIe3xX9ZRoVSxRZutZF3XFYEI+9C7VoBlMP55rGqWtO+30VidCAekTgl/TpX8ILUstVppYQHKRD1y3UVXcKYbQIVNbVTFiiIir8fW604KBvva0+hPZ1kUBIRGdjT1o2qrGlig0S12/Stk3bNucOecI5GQzNee2foVS7CBOYQ1KWrA/Dp6tp3LKrZ3qSZ3Fhj9oHIIvYUZ5mmzeowaTP6Oa3Re7MVNeFGAMvSD8PHA4xedP8V2bMLL0smEuygsTMGu/+8PltA436hJmdKT+JES27KaJx0SfOD66PC2Zp0kKFtQ8fZyLcQrSRn5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8pfftpuK/NNpwJ+kb4m/cNWuDnpgX7GSos0apNFZI7Y=;
 b=m4ixxobe6gYgFYMBL0D7G29DG13diJZbHMBQO0k994sejF+BjlU2LTlh74lUIdzrzetSW8hUlCWR29Z9lcbHdBWCiWLKuS2sWrreVvZcFJ2dkaoXV8lOgejMM6euOwlJmBlPClw2zzuWXwlcCk3VBC6S7rKtYg27tBzXYcKvf7eud/hk+uR4DHCnpb4xT4XcWCWLHSJorLoBklqSys7yhL5jhUNSUCl3sju6miZiVTxfWI95bKj4FGDUqwlO01ogreOuT/UAKz9GHh/pfDbbXhLU1J9Xc3W+iEG9kbzhadQ9gAhaVMR7SQ4EO6LKF6RbYLpQr8CxE034OZTIYcQ27g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8pfftpuK/NNpwJ+kb4m/cNWuDnpgX7GSos0apNFZI7Y=;
 b=MnOkhr5ZdvaN9MUcGqXdw8mphCPOVsKd/xwHf2S0pqG/1gSPc3Dufl25uCPxiZtenua9XUM0OWHQZcsLOluU5V2S0ueWdxVsCXmU0XlSm2aUFp1O73chi8bD6B7nw6kWn/5C9RifTK8T/9rJTenhXxDkdwd4s2ULfmJGkhyagFs=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Jan Beulich <jbeulich@suse.com>, Xen-devel
	<xen-devel@lists.xenproject.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Thread-Topic: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Thread-Index:
 AQHX1yW51DCh4Kb6WkC+olJaqOqcEawEZHMAgAACF4CAAADoAIAACOmAgAAHu4CAAC7ugIAACaAA
Date: Mon, 15 Nov 2021 14:45:44 +0000
Message-ID: <614768E0-DB0B-4B8E-8784-90E85CB19AA8@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com>
 <a1b2aa1b-7d8a-4ab6-cde5-25581ee9841c@suse.com>
 <C3FB48C2-F619-48A2-9268-F0938405133C@arm.com>
 <fc9fd8d6-7461-367c-01c6-f4c852e13f54@suse.com>
 <02EF96BF-D2A6-4415-A6E9-B9511C18C895@arm.com>
 <06f83d83-382e-7ae7-551e-3f05a1cc3293@xen.org>
In-Reply-To: <06f83d83-382e-7ae7-551e-3f05a1cc3293@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 061a307d-05d0-4b00-f0ad-08d9a846a5d8
x-ms-traffictypediagnostic: AM6PR08MB3912:|AM8PR08MB5619:
X-Microsoft-Antispam-PRVS:
	<AM8PR08MB56199C38B66CC9DA13579F4E9D989@AM8PR08MB5619.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 SjtqZ7LIWA8Unr4SEtpdkc0w7jWfIEPE9igg3yI9PUAbpmFWFcdhAdvKf6g4bCAzmY42yUcYCsnbGqUZy9V8lxWmNpJzIOI3agWjg2OVLILy5rnF3z+aWhbVH+Xc0U8q5L9zB9fWNS2UOhtMoptPp+Ro89MzOADvFKEBwX+nvW9x8IIXkgVishV3NJyh0kLNyQRN2S7vGMROTJSrJupsIti8U2XRxWXqTEtoRGccBoyK8DZNNSHaf92jICxTUa+TAvO65EVJLFL7c3vIEmFW/lXIhnG/j9oD3vlT0AGIiPFyDtHMHejqNC003KNgDmOR+IXB0GMTu0MpR7iq0bk2h7u+byIKSAiqFIslTT9oNKqqC9/vaksIkQgs5FU7qQ8Bltv3xZYvke7qsQPBKXMTwm7ObAYdtokXd83pOvnb3jBqwJjFmxePD6IGJLcIEQth0p/pDeyw59gQm6cXEt2r76TvVWvoYdhMxYM16whI6xrKOaszrZ/o9T7fctnhYdMXlL170rR5eKqQ+kpJC5wileZMpwf6x17N1I2BBIToXpqkO2q0IBmR6cZkrO/gV5zpHQq+x152iLo4TzqESFADaw0Pn5nZ/03st19u1Vd2Mv5U8lviY7Kq4dSAtBQlnni+C0qjKLMkwldvTbmnpBjvyG+4FfTh+hCkmoITAUDEbKIdkuHuBj5PjviYR5jbTuCEffFRvAwKhLfkuktZH2f4fAM5KPHeAyI3o+y7ylP/swl7Rc8n0KHjyp2Ca4wJxpYQ
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38070700005)(2906002)(71200400001)(8676002)(4326008)(91956017)(76116006)(316002)(508600001)(6506007)(66446008)(66556008)(6486002)(2616005)(8936002)(5660300002)(64756008)(66946007)(66476007)(6512007)(36756003)(6916009)(26005)(54906003)(186003)(86362001)(33656002)(38100700002)(53546011)(122000001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <72B26D7AA0E58849BCC112B38F8C9890@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3912
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT015.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3313b3c1-26f9-4f02-c3c3-08d9a8469adf
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	UL7Av+n5bjaKgQExc+lNsLaPnOjLnXLeXQa3Rqsh4hMpXOWUVD7vu0j6zXUKQizfNaKH52rDsnGa8Ttee5KmiSFwQ2NYw8vXRj3He5DVLoF2wpTvlWCXYRcdNM5dMJBqzqQWznQ5YvyPExnOfeYQ5V8JULezDQEMmS94raH/XX08YGkh1uoq9YaQggIzefBBuJmRlintOBjl0H9a/iKCsBVQApmgaVt+xCsL0J+O/6PHsasH2rTG4+Sz2Lknmop9Htm4vv62ErFBmRKDOybvmu5ntU/rfcoLVdtfDLFGaQyou9HM7BoveAsBmDWNAoGkvaVany+xb3KELmvxA22zxRn/7i9aceIQi5AREnl5Pv6PrplEUKf69VOSMXOR3Vvs0HB4SarST/pFBeFB0Gyw0fuxqGeQtcb2fqfZgwz6WxdY/taFLvsnKPN/0nlVlZffQjga6w7usD+DPR92qPa29Jhqiivl7ywC4LlRJFkXEceFjY1wS4DTJUEIyMvf1yBM0CGpilI2l4BfK26mJyDzpSMrRufH/0HWhxRzu2ukAAJRYT9OSOm+X/uPHG1gqSATPPz1imnSkmpqVta7NlaGNV6iLtzUdQq2qGeVDR6lfLHfHnFxVuNTpMm1Fyp2JuWuFYgIE8rjf5Y1sNtA8ZM15BYaNVgLyRSEE6f+SSm4mxYTQEy+Tz8OItwL1Bg+A7Iwv0NEN3VNXvc/VXgfvGQhgA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(54906003)(53546011)(186003)(8936002)(6512007)(47076005)(316002)(33656002)(36860700001)(6486002)(2906002)(26005)(82310400003)(6506007)(81166007)(70586007)(70206006)(356005)(336012)(2616005)(5660300002)(4326008)(8676002)(107886003)(6862004)(36756003)(86362001)(508600001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 14:46:03.3121
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 061a307d-05d0-4b00-f0ad-08d9a846a5d8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT015.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5619

SGksDQoNCj4gT24gMTUgTm92IDIwMjEsIGF0IDE0OjExLCBKdWxpZW4gR3JhbGwgPGp1bGllbkB4
ZW4ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiANCj4gT24gMTUvMTEvMjAyMSAx
MToyMywgQmVydHJhbmQgTWFycXVpcyB3cm90ZToNCj4+PiBPbiAxNSBOb3YgMjAyMSwgYXQgMTA6
NTUsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4gT24g
MTUuMTEuMjAyMSAxMToyMywgQmVydHJhbmQgTWFycXVpcyB3cm90ZToNCj4+Pj4gSGkgSmFuLA0K
Pj4+PiANCj4+Pj4+IE9uIDE1IE5vdiAyMDIxLCBhdCAxMDoyMCwgSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPiB3cm90ZToNCj4+Pj4+IA0KPj4+Pj4gT24gMTUuMTEuMjAyMSAxMToxMywg
QmVydHJhbmQgTWFycXVpcyB3cm90ZToNCj4+Pj4+Pj4gT24gMTEgTm92IDIwMjEsIGF0IDE3OjU3
LCBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPiB3cm90ZToNCj4+Pj4+
Pj4gLS0tIGEveGVuL2NvbW1vbi9kb21haW4uYw0KPj4+Pj4+PiArKysgYi94ZW4vY29tbW9uL2Rv
bWFpbi5jDQo+Pj4+Pj4+IEBAIC0xMjM0LDE1ICsxMjM0LDE4IEBAIGludCB2Y3B1X3VucGF1c2Vf
Ynlfc3lzdGVtY29udHJvbGxlcihzdHJ1Y3QgdmNwdSAqdikNCj4+Pj4+Pj4gICByZXR1cm4gMDsN
Cj4+Pj4+Pj4gfQ0KPj4+Pj4+PiANCj4+Pj4+Pj4gLXN0YXRpYyB2b2lkIGRvX2RvbWFpbl9wYXVz
ZShzdHJ1Y3QgZG9tYWluICpkLA0KPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQgKCpzbGVlcF9mbikoc3RydWN0IHZjcHUgKnYpKQ0KPj4+Pj4+PiArc3RhdGljIHZvaWQg
X2RvbWFpbl9wYXVzZShzdHJ1Y3QgZG9tYWluICpkLCBib29sIHN5bmMgLyogb3Igbm9zeW5jICov
KQ0KPj4+Pj4+IA0KPj4+Pj4+IEhlcmUgeW91IHVzZSBjb21tZW50cyBpbnNpZGUgdGhlIGZ1bmN0
aW9uIGRlZmluaXRpb24uDQo+Pj4+Pj4gSSB0aGluayB0aGlzIGlzIHNvbWV0aGluZyB0aGF0IHNo
b3VsZCBiZSBhdm9pZGVkIGFuZCBpbiB0aGlzIHNwZWNpZmljIGNhc2UgYQ0KPj4+Pj4+IGJvb2xl
YW4gc3luYyBpcyBjbGVhciBlbm91Z2ggbm90IHRvIG5lZWQgdG8gZXhwbGFpbiB0aGF0IGZhbHNl
IGlzIG5vc2luZy4NCj4+Pj4+IA0KPj4+Pj4gV2hpbGUgSSBhZ3JlZSB0aGUgY29tbWVudCBoZXJl
IGlzbid0IG92ZXJseSB1c2VmdWwsIEkgdGhpbmsgLi4uDQo+Pj4+PiANCj4+Pj4+Pj4gQEAgLTEy
NTAsMTIgKzEyNTMsMTIgQEAgc3RhdGljIHZvaWQgZG9fZG9tYWluX3BhdXNlKHN0cnVjdCBkb21h
aW4gKmQsDQo+Pj4+Pj4+IHZvaWQgZG9tYWluX3BhdXNlKHN0cnVjdCBkb21haW4gKmQpDQo+Pj4+
Pj4+IHsNCj4+Pj4+Pj4gICBBU1NFUlQoZCAhPSBjdXJyZW50LT5kb21haW4pOw0KPj4+Pj4+PiAt
ICAgIGRvX2RvbWFpbl9wYXVzZShkLCB2Y3B1X3NsZWVwX3N5bmMpOw0KPj4+Pj4+PiArICAgIF9k
b21haW5fcGF1c2UoZCwgdHJ1ZSAvKiBzeW5jICovKTsNCj4+Pj4+PiBTYW1lIGhlcmUuDQo+Pj4+
PiANCj4+Pj4+IC4uLiBjb21tZW50cyBsaWtlIHRoaXMgb25lIGFyZSBwcmV0dHkgdXNlZnVsIHRv
IGRpc2FtYmlndWF0ZSB0aGUgcGxhaW4NCj4+Pj4+ICJ0cnVlIiBvciAiZmFsc2UiICh3aXRob3V0
IHRoZSByZWFkZXIgbmVlZGluZyB0byBnbyBsb29rIGF0IHRoZSBmdW5jdGlvbg0KPj4+Pj4gZGVj
bGFyYXRpb24gb3IgZGVmaW5pdGlvbikuDQo+Pj4+IA0KPj4+PiBJIGFncmVlIHdpdGggdGhhdCBi
dXQgdGhlIGNvbW1lbnQgaGVyZSBpcyB1c2VmdWwsIGl0IGNvdWxkIGJlIGFkZGVkIGJlZm9yZQ0K
Pj4+PiB0aGUgY2FsbCBpbnN0ZWFkIG9mIGluc2lkZSBpdC4NCj4+PiANCj4+PiBFeGNlcHQgdGhl
IGZvcm0gQW5kcmV3IGhhcyB1c2VkIGlzIHRoZSBvbmUgd2UndmUgYmVlbiB1c2luZyBlbHNld2hl
cmUNCj4+PiBmb3Igc29tZSB0aW1lLg0KPj4gSSBrbm93IEkgZm91bmQgc29tZSBvdGhlciBleGFt
cGxlcyBhbmQgdGhhdCB3aHkgSSBzYXkg4oCcc2hvdWxk4oCdIGFuZCBub3QgbXVzdC4NCj4+IElm
IG90aGVyIGNvbnNpZGVyIHRoYXQgdGhpcyBpcyB0aGUgcmlnaHQgd2F5IHRvIGdvIGFuZCBzaG91
bGQgbm90IGJlIGNoYW5nZWQgdGhpcw0KPj4gaXMgb2sgd2l0aCBtZQ0KPiANCj4gQWRkaW5nIHRo
ZSBjb21tZW50IGFmdGVyIHRoZSBwYXJhbWV0ZXIgaXMgYSBsb3QgZWFzaWVyIHRvIHJlYWQuDQo+
IA0KPiBXaGF0IGlzIE1pc3JhL0Z1U0EgdHJ5aW5nIHRvIHNvbHZlIGJ5IHByZXZlbnRpbmcgdG8g
Y29tbWVudCBqdXN0IGFmdGVyIHRoZSBwYXJhbWV0ZXJzPw0KDQpJIGRvIG5vdCB0aGluayBNaXNy
YSBpcyBhbHdheXMgdHJ5aW5nIHRvIHByZXZlbnQg4oCcYnVnc+KAnSwgc29tZXRpbWVzIGl0IGlz
IGp1c3QgdHJ5aW5nIHRvIG1ha2UNCnRoZSBjb2RlIGVhc2llciB0byByZWFkIGFuZCByZXZpZXcg
YnkgbWFraW5nIGl0IGFsd2F5cyBsb29rIHRoZSBzYW1lLiBIZXJlIGlzIHRvIHNheWluZyB0aGF0
DQp0aGlzIHNob3VsZCBub3QgYmUgZG9uZSBidXQgdGhhdCBjb21tZW50IHNob3VsZCBiZSB3cml0
dGVuIG9uZSBvciBzZXZlcmFsIGxpbmVzIHVzaW5nIC8qICovIGZvcm0uDQoNCj4gDQo+PiBidXQg
SSB3YW50ZWQgdG8gbWFrZSB0aGUgY29tbWVudCBhcyB0aGlzIGNvdWxkIGVhc2UgdGhlIHdvcmsN
Cj4+IHdpdGggRnVTYSBhbmQgTWlzcmEgY29tcGxpYW5jZSBpbiB0aGUgZnV0dXJlLg0KPiANCj4g
VGhpcyB3aWxsIG5lZWQgdG8gYmUgcGFydCBvZiBhIGxhcmdlciBkaXNjdXNzaW9uIG9uIGhvdyB0
aGUgY29tbXVuaXR5IHdhbnQgdG8gaW50ZWdyYXRlIEZ1U2EvTWlzcmEgcnVsZXMuIEkgZG8gZXhw
ZWN0IGEgZmV3IG9mIHRoZSBydWxlcyBtYXkgYmUgcXVpdGUgY29udHJvdmVyc2lhbCB0byBhZG9w
dCAobGlrZSB0aGUgb25lIGFib3ZlKSBhbmQgdGhlcmVmb3JlIHdlIHdvdWxkIG5lZWQgdG8gZGlz
Y3VzcyB0aGUgcHJvcy9jb25zIG9mIHRoZW0uDQoNCkkgZGVmaW5pdGVseSB0aGluayB0aGlzIHdp
bGwgcmVxdWlyZSBhIGRpc2N1c3Npb24gYW5kIG1heWJlIHNvbWUgbW9yZSBleHBsYW5hdGlvbiBm
cm9tIHVzIG9uIHdoeS4NCllvdXIgY29tbWVudCBhc2tpbmcg4oCcV2hhdCBpcyBwcmV2ZW50ZWTi
gJ0gaXMgaW50ZXJlc3RpbmcgYW5kIEkgd2lsbCB0cnkgdG8ga2VlcCB0aGF0IGluIG1pbmQgd2hl
biB3ZSBzdGFydCB0aGUgZGlzY3Vzc2lvbi4NCg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+
IENoZWVycywNCj4gDQo+IC0tIA0KPiBKdWxpZW4gR3JhbGwNCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 15:08:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 15:08:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225968.390351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmdad-0007er-36; Mon, 15 Nov 2021 15:08:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225968.390351; Mon, 15 Nov 2021 15:08:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmdac-0007ek-Vj; Mon, 15 Nov 2021 15:08:10 +0000
Received: by outflank-mailman (input) for mailman id 225968;
 Mon, 15 Nov 2021 15:08:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+jS=QC=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmdaa-0007ee-SM
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 15:08:09 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d4ec7474-4625-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 16:08:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4ec7474-4625-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1636988885;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=6xdTbVenQdMWBRuaOCN74mHWSEE7yQy6MA2sZhtMZ5U=;
  b=dI6kcHx75S4viX8KTUofH8GUQCoz3an8p9bpjO7uBybf/BqTOc+DWFGG
   7sI4G/iHSJr4MmKw1JwuNTEapWZ0MucvNURF/O5YkNJrvIH2TIRbAMtSo
   1B9OIGu3cVRJKZrYu4lqni8g8vGrf7Kg5aVyVFOFxDd99ciZPNONjw9FM
   8=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 5Wh8LWvqGBWYTFWVXjYpzEh7lG5I6RmYwtTGuqM4hbZlVrbJuE2W6DbvEZRmEXjKYy0O0ZvBuX
 WwddWhdO5fmfDS7DchgAaE5+jNr5W+x2Y20C99T09eiOdvTz7xXaHDHMS85OwoCnFS7T0fw+H9
 aND2jD4Ehp/meVdgCJhArTOsMeK1MW8x/8PoXLlTLaf+4bcOcDTdRQAqFSnkTWk8Xpmm/Z0nR7
 pN93T9pN8/P9Ir+mq2hd+YcQEUCIXrvNIDjq8Ke8EhloHZFJpo/kTHqwGWhawWkwYpEuNmIdR2
 iLvwUYPVcL+UgZWv2bXc6V93
X-SBRS: 5.1
X-MesageID: 57804117
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:GsLTIqs04xpV88TKRRH6X27vKufnVKVZMUV32f8akzHdYApBsoF/q
 tZmKWCCPa2KYDHyKdtzPIuz/R8Bv5+HyYRlHlZopClhHyIT+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2IXhWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NpllMeoEV1wHYP1iO0lXyIAIXpSPaYc0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258eRaqHP
 pVxhTxHQirlIANCCggrC5Mmht/xikbSKDFbgQfAzUYwyzeKl1EguFT3C/LUZd6iVchThlyfp
 G/N4yL+GB5yHMSW1D6t4n+qwOjVkkvTR4Y6BLC+sPlwjzW7xGYeFRkXXluTuuSihwi1XNc3A
 1wZ/G8ioLY/8GSvT8LhRFuorXicpBkeVtFMVeog52mwJrH8uljDQDJeF3gYNYJg5JReqSEWO
 kGhvojxXWY2k5OsWXul+ozMn2ieOSNPBDpXDcMbdjct797mqYA1qxvASNd/DaK45uHI9SHML
 yOi93Zn2ehK5SIf/+DipA2c3WrwznTcZldtvl2/Y46z0u9uiGdJjaSM4EOT0/tPJZ3xorKp7
 CldwJj2AAzj4PiweM2xrAclQenBCxWtamS0bbtT834JrWvFxpJbVdoMiAyS3W8wWir+RRfnY
 VXIpSRa74JJMX2hYMdfOtzqVZVzkfa9SYq5Cpg4i+aihLArLmdrGwk0OiatM53FyhBwwcnTx
 7/GGSpTMZrqIfs+l2fnLwvs+bQq2jo/1QvuqWPTlHyaPU6lTCfNE98taQLWBshgtf/siFiFo
 r53aprRoz0CAbKWX8Ui2dNKRbz8BSNgXs6eRg0+XrPrHzeK70l9UaKMmu14JNQ+90mX/8+Rl
 kyAtoZj4AOXrVXMKBmQa2Alb7XqXJ1lqmk8MzBqNlGts0XPq670hEvGX5doL7Qh6sJ5yvt4E
 6sMd8maW6wdQTXb4TUNK5L6qdU6JhisgAuPOQujYSQ+IME8F1CYpIe8c1u97jQKAwq2qdA6/
 ++q2DTETMdRXA9lFsvXNq6ilgvjoXgHletudELUOd0PKl70+Y1nJnWp3P86Ks0BMzvZwT6e2
 1rECBsUv7CV8YQ07MPIleaPqILwS7lyGU9THm/667eqNHaFojr/kNEYCOvRJGLTTmL5/qmmd
 N559fCkPa1VhktOvqp9D61vkfA06ezwquII1Q9jBnjKMQimU+syPnmc0MBTnaRR3bsF6xCuU
 0eC99QGa7WEPMTpTAwYKAY/N7nR0PgVnn/Z7OgvIVW87yhypeLVXUJXNhiKqSpcMLoqb991n
 bZ/4JYbu16llx4nEtealSQFpW2DI0sJX7gjqpxHUpTgjRAmyw0abJHRYsMsDEpjtzmY3pEWH
 wKp
IronPort-HdrOrdr: A9a23:rKa0uar3C7MQTJ7r8SgUHNAaV5uxL9V00zEX/kB9WHVpm5Oj+P
 xGzc526farslsssREb+OxpOMG7MBThHLpOkPMs1NCZLXTbUQqTXfpfBO7ZrQEIdBeOlNK1uZ
 0QFpSWTeeAcWSS7vyKkTVQcexQueVvmZrA7Yy1rwYPPHFXguNbnn9E426gYzNLrWJ9dPwE/f
 Snl656T23KQwVpUi33PAhOY8Hz4/nw0L72ax8PABAqrCGIkDOT8bb/VzyVxA0XXT9jyaortT
 GtqX202oyT99WAjjPM3W7a6Jpb3PPn19t4HcSJzuwYMC/lhAqEbJloH5eCoDc2iuey70tCqq
 iAnz4Qe+BIr1/BdGC8phXgnyHmzTYV8nfnjWSVhHPyyPaJDQ4SOo5kv8Z0YxHZ400vsJVXy6
 RQxV+UsJJREFfpgDn9z8KgbWAqqmOE5V4Z1cIDhX1WVoUTLJVLq5YEwU9TGJAcWArn9YEcFv
 V0Bs203ocZTbqjVQGbgoBT+q3vYpxqdS32B3Tq+/blnAS+pUoJj3fxn6ck7zM9HJFUcegz2w
 2LCNUuqFh0dL5lUUtKPpZ3fSKGMB2/ffvyChPmHb3GLtBOB5ufke+93F0KjNvaDKDgiqFC3q
 j8bA==
X-IronPort-AV: E=Sophos;i="5.87,236,1631592000"; 
   d="scan'208";a="57804117"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PTUz/egjEhfTD80SZZvvVv/GoxYbTwYcSmW/hwOFUYjYhN4QDi8Wo4aQBDDwYbycBvDoQgmcvDIc6KSUxOD9SzMiW60vjtJxG1vNpSEjlBetlWk8IP1a3fJm6SYC6FyMc8CxTLFut0qo7fDMMB1l0ce+0eSjNjEnNdpAWduPh870uDYS7gsT0mPwcKDYvZQm5rIkPoc8VpN/URs7VlxoE4AtnZN+/EIl9P7bnB74AsEicMxakJjo3mGlzbehWR8gx4bIV7215ByiGit4oxhf9Cgqbr8wXU+x6pJNx0PjzSRoxmrDiK7G/a80XGq+8LlqXmXkgb1HWFp8JiRkXo4Vsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MpUxpJBLLE5ifRi6X7EwQyAJ/YnWuq1e6oq4dYev0pw=;
 b=oB2WX9ad4RE4lZW4waZoU9iQWViuhFw+qnDXvDwluECHEoaBi+QvVdjD8GyDxcwCM71Jfm44A+hAaJEJnq3uocagG/T/Az3PHtj3Z7yGdBVqNXqromMkLvlXzWaK+IPiciYnvoKxo+dDroGQ/hR4W05oGCYeaBaaWt6aSTq/oTofnGp9rREFxgtq51JQCo2oMEtgC5C4R71JOoPuw4kPur0zG3WKMiZgY2Zndk6NmAMcjMSvxeIUiQ0D9+F07Z4YhOMJck2lwqMXyvU8HGv/8dRVmPq+gCdDJmQtGRZNJr2aPi92Ro3OiQ6iCwSlUMkeC14niQHxjIsJwvi5BvcdOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MpUxpJBLLE5ifRi6X7EwQyAJ/YnWuq1e6oq4dYev0pw=;
 b=usMDTAWCub+sTCyua2Tf3foHkwyHZefaMzTjLLgvjkOEL+BzvKLgyRg9PZdMhydmK3tIaSPrg4d47yn7IiyaaY3qQw75UOuBmoHu+TEh+hNWfqgtDWKfMzsCcbqGDgwaym04kQbMz56E40t2oIdcJbHbxZYIvWtsrvEcomuE588=
Date: Mon, 15 Nov 2021 16:07:55 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v2.2 1/6][4.16?] x86/x2APIC: defer probe until after
 IOMMU ACPI table parsing
Message-ID: <YZJ3y56FFerUa0gu@Air-de-Roger>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <b752a000-f69c-ad21-d059-90e12fc83553@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b752a000-f69c-ad21-d059-90e12fc83553@suse.com>
X-ClientProxiedBy: MR2P264CA0185.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501::24)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a11a6c43-ef8e-403a-28d6-08d9a849b72e
X-MS-TrafficTypeDiagnostic: DS7PR03MB5605:
X-Microsoft-Antispam-PRVS: <DS7PR03MB5605A7E050E508B6DB727BBE8F989@DS7PR03MB5605.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: hhoNKU1PpHVmH8wNZl3YmdB7q+YaD9wuRMSb7J2ICkzMp0IdnAao41dGRmTTSzySUIWeLh2IdR1xOH5Cg8uqxygVpMzsoyA9kYBE7pltMArcMzHwH2euqnFEhrRnCGHCeBhLMUPXwCLvH4/z9XwNw7dxNkylon11gMLXQ041eLuPsoi4xAGPSMeXMHNQ2YeyKR/ZJVUBGSTkvWjNoLCTvroiK9bTdRIWyAbwweH4cEOVkzoNVcETOAeKv63f2pbhhWc6pLGKQnSCjkmhlYDcwT5vJH/+EIXpubpr2qbEIqNX7UEVnNKnEnJFU0+5fnNq6daQ+5oIyNyx3YpDrX7jDvyHAgZ18sSpI/18JAUSvbi3Id8eAe/QCWGvebJMaYFU8qNIhhVC6s4PRlfKqqjWJS4fzQnKhqNvmK4OOqPOJMxYSY/Pm3sUleEgrch2qlZc2enf8lqrPqcbo81W1M8BLgBgpkuYj4LxFDNxA5wmcsKI3G/i6w4HznoEhz5LZX53HgxA6w0zXsv3TYrmlf5jcKzchMCJjcSD1rZ+NUTU6CGxD/i5pocFWurp/rSfT0sO5x4ARR+B3ZN8d/aQVkrd81+Q08RSxn+4Dosj2Dw8q6B2bJ/EQdfa3qUoZ0YJfQl6S0vgzLxbjjxgK5F5nITNTA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(9686003)(186003)(956004)(83380400001)(6486002)(6666004)(6496006)(66476007)(66946007)(66556008)(8676002)(33716001)(508600001)(82960400001)(38100700002)(8936002)(316002)(4326008)(54906003)(2906002)(85182001)(26005)(86362001)(6916009)(5660300002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bU92M1BDd3FWeUl2dVVQd0RhVDlkcnBob0pHcXk2MFcvQURGUi9wR09WTVBl?=
 =?utf-8?B?Y2NodWpqSWJ1bjVvb3R4ZnIyem1pRW15TGd2WllTL0FiSzJUdlN0ZHFNc2xC?=
 =?utf-8?B?VGZUK04zdzA2WEJXWW9IbUpPWHFMSk1IRlA4RUdQamtxU2prQ2NzMDRuRGNW?=
 =?utf-8?B?MjliaGJ6Y3F2L1hCd1M0Z3NTemZTM1BPV3FVbVJTWHFsNHBqR0s2NDlSRlEy?=
 =?utf-8?B?VHpLU2svYVM5Wjc3U20vU2hzOE5OOC9KWVp2K3lhVkdvS2Z1d2tXSUZtU0Nl?=
 =?utf-8?B?c1BqVG5nWFFnV0oxQStJTnp1VTBITm9SdXZTSWNWWjhGOUYrYlhQa2hIdENH?=
 =?utf-8?B?WmRITFZKK1JWRXBuTzNnRlNVSkEvZ2NMQ1JrMDNvdHRFNVgvbzBzZ3hVM2or?=
 =?utf-8?B?NXBRY1Fha25URTVWNEFaRVpyMlVVK3FySmFxOC9ScllmOE9nUFJRZzNaNldU?=
 =?utf-8?B?YldicjhWUSs2SmNHQVRMRGVaQ3Nnd29jWDVHK2JvRVVXYnV3eGRtbkQvbHRZ?=
 =?utf-8?B?RlI3Z0JlQkJOQlhqNFhZSUpWVjB6QVUxS09PV0xxQ2xidFNLTXAvTmh3RTVW?=
 =?utf-8?B?N0FRQUVNMGxyYlp0bEYwVElWOFpFVzF3YSs5SjZ1QjMrU0VpY1RVaGY4NHlZ?=
 =?utf-8?B?YTRDaEhuVEI2UnBGNjFHWlBvU1lFVEJHeHJYUnVVMUhscEZCcHZhS0l2VHpN?=
 =?utf-8?B?NHpHVkZ0czcrVURvT1pwZEdoVWZxdklUSjlLekk4eFdDWEJLU3V1OEkweko2?=
 =?utf-8?B?dUdJWG96bE9Bbmc2V0hPdFd5ZXpFZ0lqUEswV3VpTWZSM2hDMnZOR0IzTDl2?=
 =?utf-8?B?K1RaelRCcStCY3ZDWXA4Z1lZSGd0ZVBKR0FpR3dYUVBvTStmbVQyc1oxaWlh?=
 =?utf-8?B?bTVCeEM5ZEVnT3ZidGllV3dmYWlhSHdFQ0VDOGZaTy9sM2kwZE9paGNaN2R1?=
 =?utf-8?B?S0tQSUJQRXcvRFQyaXdyQXNUZFNGWW0vV1o2V25oaXdxQjJwTTNObUlJZDBF?=
 =?utf-8?B?VVNsVUE0TC8zLzVma2RiM3dVWGUxeXRKK2EvM0Z6VEVjYTFRRzA1dmtUOHlW?=
 =?utf-8?B?OFNXMWtwSE1KZ2w0elJ0WTlXVU5udkNsM1hHa3hTNXl4dXY5R1czbldqWXIy?=
 =?utf-8?B?K3U3b1hxMEpYR0k0MHJvV0VsR0duMnVmVS9PMjJZWm1oS3h1b3JGMXBNMGYv?=
 =?utf-8?B?Ylg3TGhNMjluREs4OVNjMjN0YUpLNFZEckZ6THdwbkpwU0hsNkFFQ3V4TFpt?=
 =?utf-8?B?M3liT2dXUkJCV0hXV3FVQ0gwTjhpUHNMWXVESlJxU2x1QVhqTWJqcm9FOFhz?=
 =?utf-8?B?T2Z4dFlFYnJRVzMyZ05oblp2cWo5bzlBUHhhRHVYaHlUSTh2c3VtN3lIcW1o?=
 =?utf-8?B?MEtSanJNUy8wK1E2RTJPR0Nrd3FSUU5qK2pKYmxBbUNoOFFHNEU5aTZ4QmRF?=
 =?utf-8?B?NEFOcWtSUkNHYXoyMUNSNEpacjBhYmF1TzQyQVBpWi9ROG02OVgrUEZjbER4?=
 =?utf-8?B?T3dUZnFpZzRCck9MaFEzWE9vUkZrS3U2QzdldWVDaGhBTEJsNWZxQUlabUV2?=
 =?utf-8?B?cUtFdWNSSEVpRkhjNFVHby80d1hIMzNRK3ZVRWNvdGtTY3B4aTJIRzB4NWlu?=
 =?utf-8?B?N0V3VFNHdHJtWGR4R05yZXN1WGpsVUxVeXJKNm9hTmdCS1RoN0VjMVI4WXFU?=
 =?utf-8?B?RVNHdGpMb0Z1bkZvMUIzN0g0cGR5d0t6K3dJTmxDM3pwQXQ0bkRDd0oxNGk5?=
 =?utf-8?B?UlhTYlp5OTdPVWxZdXBXY291aEhhMFE0MUdvMDFLVktqb1kwL0xwa2RvVlE2?=
 =?utf-8?B?d0paNUpYa2JFUCtLN0JKRXY0aWNWTzZJM1NzcFV4SzYwbk5odE4vUGVRVENR?=
 =?utf-8?B?UVFhS05kWUJIOHp4TFpLZ3lvRXNnYzdsRmxEbTZDWmhzMDhmdmNkb0pjbWwx?=
 =?utf-8?B?Ym0xZWd1NE1DeXFackNObVdqYThKWGZYNzZKNmZDbEZJbzJmS09DcXRSOWxI?=
 =?utf-8?B?ZzY1bzJmSGtWOGJTazlQVzNZOHJvNVNTUEh1ZkFYTmhTN3N0RStJRmxxd2wz?=
 =?utf-8?B?clhMMENXL1psR2ZQRm01S01ENFo1aTJHcVNINHB5K3BSaDIzZFE2RXFTV2RY?=
 =?utf-8?B?c0thbHFmSk42TzlHL3hPY1ZZL0p1WURjRlRTVDBVb3pKQWNLVU9jUVZ6L2hl?=
 =?utf-8?Q?QdEjekwK8KoE/ZTSbOoqr2I=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: a11a6c43-ef8e-403a-28d6-08d9a849b72e
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 15:08:01.1240
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 120W6rKltcn30g6d9SoiDHhR484QV9PZlA+wMMvXqiud8yI3QMe0TtRQKtI90TozxUD0dYyvw9pOrqjum8kbbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5605
X-OriginatorOrg: citrix.com

On Mon, Nov 15, 2021 at 03:31:39PM +0100, Jan Beulich wrote:
> While commit 46c4061cd2bf ("x86/IOMMU: mark IOMMU / intremap not in use
> when ACPI tables are missing") deals with apic_x2apic_probe() as called
> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
> affected: The call needs to occur after acpi_iommu_init(), such that
> iommu_intremap getting disabled there can be properly taken into account
> by apic_x2apic_probe().
> 
> Note that, for the time being (further cleanup patches following),
> reversing the order of the calls to generic_apic_probe() and
> acpi_boot_init() is not an option:
> - acpi_process_madt() calls clustered_apic_check() and hence relies on
>   genapic to have got filled before,
> - generic_bigsmp_probe() (called from acpi_process_madt()) needs to
>   occur after generic_apic_probe(),
> - acpi_parse_madt() (called from acpi_process_madt()) calls
>   acpi_madt_oem_check(), which wants to be after generic_apic_probe().
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Just one comment below.

> ---
> Based on code inspection only - I have no affected system and hence no
> way to actually test the case.
> ---
> v2.2: Move generic_apic_probe() again, but only past acpi_iommu_init().
> v2.1: Respect acpi_disabled in acpi_iommu_init().
> v2: Don't move generic_apic_probe() invocation, instead pull out
>     acpi_iommu_init() from acpi_boot_init().
> ---
> 4.16: While investigating the issue addressed by the referenced commit,
>       a variant of that problem was identified when firmware pre-enables
>       x2APIC mode. Whether that's something sane firmware would do when
>       at the same time IOMMU(s) is/are disabled is unclear, so this may
>       be a purely academical consideration. Working around the problem
>       also ought to be as simple as passing "iommu=no-intremap" on the
>       command line. Considering the fragility of the code (as further
>       demonstrated by v1 having been completely wrong), it may therefore
>       be advisable to defer this change until after branching.
>       Nevertheless it will then be a backporting candidate, so
>       considering to take it right away can't simply be put off.
> 
> --- a/xen/arch/x86/acpi/boot.c
> +++ b/xen/arch/x86/acpi/boot.c
> @@ -757,8 +757,6 @@ int __init acpi_boot_init(void)
>  
>  	acpi_mmcfg_init();
>  
> -	acpi_iommu_init();
> -
>  	erst_init();
>  
>  	acpi_hest_init();
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1700,15 +1700,30 @@ void __init noreturn __start_xen(unsigne
>  
>      dmi_scan_machine();
>  
> -    generic_apic_probe();
> -
>      mmio_ro_ranges = rangeset_new(NULL, "r/o mmio ranges",
>                                    RANGESETF_prettyprint_hex);
>  
>      xsm_multiboot_init(module_map, mbi);
>  
> +    /*
> +     * IOMMU-related ACPI table parsing may require some of the system domains
> +     * to be usable.

I would be a bit more specific and likely add "...to be usable in
order to hide IOMMU PCI devices.".

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 16:10:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 16:10:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225978.390362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmeYg-0006Do-Np; Mon, 15 Nov 2021 16:10:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225978.390362; Mon, 15 Nov 2021 16:10:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmeYg-0006Dh-Jt; Mon, 15 Nov 2021 16:10:14 +0000
Received: by outflank-mailman (input) for mailman id 225978;
 Mon, 15 Nov 2021 16:10:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmeYf-0006Db-Hj
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 16:10:13 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82ee72c9-462e-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 17:10:12 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2050.outbound.protection.outlook.com [104.47.4.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-22-wkGY3610Oq6xc7SbUED1ag-1; Mon, 15 Nov 2021 17:10:09 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2607.eurprd04.prod.outlook.com (2603:10a6:800:58::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Mon, 15 Nov
 2021 16:10:07 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 16:10:07 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0083.eurprd06.prod.outlook.com (2603:10a6:206::48) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.19 via Frontend Transport; Mon, 15 Nov 2021 16:10:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82ee72c9-462e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636992612;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=P2ePv1dQPrUKoLEBGyiBuw2ymgv8S8QG/NdKTdBe19U=;
	b=mF8uhlW8E+yvezoEkxzLWBsgTzgE/ox5QUDaX+6P/XTDLyX9DI3+bf0z/IkoTgYhs/S9mR
	1J7G0hYbkPx5pWd5MWyCoVAaNcKQ8QKEGrj24GUD6rZUVZVDCZKgxCRlpCXrNgsciouXGC
	Dp9pwfq7C8C5gz/u0v67OdvJ0u1bmT4=
X-MC-Unique: wkGY3610Oq6xc7SbUED1ag-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eOnevryD0BMGdz3rfxylIbRtX7TkTtkQWwaFYxq5+JcIEobaXA/emR6a8p6xeoMm/TXBP67lr73jrXMozwOJketpSlesjfSLk7X00aQRHwzbKVIMB14yYQl8fFG8LQ1O0Y4LYwCU8z4seLdWfuG47Wsj2huNZpQRy0DM3N0dFh2t1GSygCPuRw2jxtZ4lhSynNBUuRUVrpsIUgCtOAaYa+vgQpTRIPN1Wd7cL/XqQzGERQn8cqNEiWnmn7J1kM2duBnOskWqSt2sgvSlPiZNRtSm8FqFm3cChv6eId4+czjx7z3QKjubve4gByeYf3hUqPWABAcpgvD2duYauEhpiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YZ2LRa313G6SYGy7AlhOjdMZRKIzHVzHTVxnnFJlevg=;
 b=QpFh2Qt4f7lYE8mq/xgNF3pPouk9z/edqwFHrZIEZG6dyC70B90X98koYLF6JFO82YNtmawwRI+fSKrx5l3lnOC8xI6GyYV5C50oQ0/EULDqa83NrmuPyKwAr34plEd6bmBpY9H8dnnUQNnuomKQh0ZQ7AqRWibVTY3k7deIGNtSWIhvYH5JHu2ErK45Ck7ga2z0JcXCBLBZLC3pbSrcyNpbKnO68Po6odjdlyWXfilMTK7ic2tqgGqkCzB9VG0E467SAnKYNvVwVf1eWmpgFpPSRoiw5JSnTokW5J6vOZ7GMphqeRfBhV8I8Ei0aSsePwbEppJ+YCZsa1x7XJz3zw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7c15a5af-9ada-1f99-e728-8e6af22a9b92@suse.com>
Date: Mon, 15 Nov 2021 17:10:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2.2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Ian Jackson <iwj@xenproject.org>, Paul Durrant <paul@xen.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <b752a000-f69c-ad21-d059-90e12fc83553@suse.com>
 <YZJ3y56FFerUa0gu@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZJ3y56FFerUa0gu@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0601CA0083.eurprd06.prod.outlook.com
 (2603:10a6:206::48) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2be837f5-81d5-4194-7ed4-08d9a8526403
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2607:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB260722574A60CCFB2E02E561B3989@VI1PR0401MB2607.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	IIElWc2g5Gu9jBl7CVCyRVUul90KsKSgIsCmqvNi5cqzQlrgKVlfUP+HhQDyE19lYZizU4OziOxRGytpFnevcLJAd6cd6xhK5TumHkFvYChw5d7HzZ++P2rH+SQRMelU7w5uWwxxmWU/ZdFU0VIO/LXweHhiyga+RlWSV90qmG2sjTHzsLJo4SGeYrO3um32LU5gUKTtPxrvhZsTPGD71w8joLuosy7FYA09c+IhnAeCtvd5JQ+lRCt3+dVHIAwVeMCP5tej5O5HZasASUgI2HYauoNr2vE0uNqOUVBDO8FaKhhs2tzSWCbeaZnBeqYCnCRGxpg76MQQH2TiMWepcv2wXLgtanSLRCzFaNZzXl4IpmWh3VG3SfEFuQeY1QdV35Os4EJoQlOmaj9LfwKKCeVM5+yuuZTmzkR80qqIuveXOLZEMr5tRCWMZpj5ojGfWQRGg9GyVb9nVKI1NfIW5qnHYO8s9snHRN5EXxQQAN04MwNIpBhYFUKkr6gtccf4timPlSd7uhvznAECrIk8DQj3yyb642R/Uk5uZI0r3Yp8CKC55aJvWs8PvJF+QUfWdNkN+Lj74Tq57Q5bXrkKmBoqE14yxNS/mCPpKoWtAL3Vu2O2i7NMZOEKIbfnoT5e/F0Aur7A5mmXqW2M8gecI981NbgW81yw23wh7L7Ihr9uZd9eHtudcScNqRN3BrzZGUfWTCq4yE1HXx9UsyXJs2uwTgaLGC1WiUrG9p8Mdno=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(8936002)(186003)(4326008)(53546011)(316002)(16576012)(83380400001)(6916009)(2616005)(54906003)(36756003)(956004)(38100700002)(66556008)(86362001)(5660300002)(26005)(8676002)(66476007)(31696002)(508600001)(31686004)(2906002)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?MiO9ZuuYNSiUp2pZBWAPtcWS8I4EahURlXbZ+QTpL0riJBH+4oLOoIudEdM3?=
 =?us-ascii?Q?BqYwrXyRmcNDQq1OSj7Nm8g1ybNTZI73txc+u0QzLQDlLMB7N5pFJ7aZykDs?=
 =?us-ascii?Q?AsCX2zytmjHil26z6jPdnK03M+55DMpiPR0JIQza6ZZng1bKYll+jMEPZEGS?=
 =?us-ascii?Q?exuNHMelLwuBM2V037ZQQ2PW18lkNA9uC29dKdpNHfLOcLDz6HTdG5C9oOow?=
 =?us-ascii?Q?joLG8qhVru/OPhS1EABdShBxC55+yRMv7BIo+6wmTZbKtQvSEV3gB43f3OkH?=
 =?us-ascii?Q?4out1BezvtupVL9HC+0TtaQL+/rEcy9R7Z1Sl23V0zaKZbzmYXzfo2bgL1jp?=
 =?us-ascii?Q?y8G9f8BQZ74JRY2Z8IsVl7OOQpqmbuBHW7RHkZ1hIqJZtDAthc7tiIG7hiRr?=
 =?us-ascii?Q?75jiYatleCgeGsf002ic3Am+RSN9uPk9mvZUc15Ya1Bq+e5Zl+/0G9tx7Wgd?=
 =?us-ascii?Q?zlFUs5IBwg85FqJmYgyCxONqVrXx/e2WCWWvmVndD1MkvY029szBYjppVMPY?=
 =?us-ascii?Q?a3OUiURH4xCnccjS8fw+zTfe2AOuqxFLb19DtKMUQpoM7DXIr7QZIWzXy2cw?=
 =?us-ascii?Q?FIykTD063Xy+9sY0OiCYovFNmjYjwH5EBKd7K/ey+YJEhKbmVgVtSALw7TtT?=
 =?us-ascii?Q?guX3wRVczyRho/NN1yViMQEKGfffhvWR8xcDTbwp85AF9dyLSa2ncRP/XxD7?=
 =?us-ascii?Q?rUqR6wDmttWt/qA6EI4rwLjGaekeW9nsnwf2i5n9rNIHynezWtre2SKfxROM?=
 =?us-ascii?Q?p8t6AfjD+TERZOHknA2cmXK3jccxMM/lODt/uOpiSYILGM25dO2bH76p5D1X?=
 =?us-ascii?Q?qCLbXQeu+01ZtFDs9HP+J1dGCbVADi05/gTT4TUJlz1IV6F1fXNavrmplAtO?=
 =?us-ascii?Q?2EQJ4Lw+xfWwHRBa70U7/MrYvJ8TIHQNawTVuUSdoCQGKl7bP/MhpjiG4VEz?=
 =?us-ascii?Q?CGjTTnIPYwNrtzQJi/RzCmlXZ6snMwkmpoouTanRzBImG4kSnBDqqIex4s1N?=
 =?us-ascii?Q?M/tedpY/RErMZYWSYxO2UJCj63MaIxxNQCr+UfLmFwPSHlCrcB4hOdD43KRu?=
 =?us-ascii?Q?0c6DFho+qX+vSfC+MmxG238L0cfFZ94D3v/bLzgBzgan9r0D86QX6Fd2GpoM?=
 =?us-ascii?Q?qNqvZevgnbAy9ZkUTk05kKoAzMQlGt1cdtWSvAC98t/TMJ7YWa1J/tt0QAuU?=
 =?us-ascii?Q?nR9nvoYpFpdLay6dqkZb7CTw1JbYlaIG38+QykzwbRO5f9+hFBsou1QCEc9l?=
 =?us-ascii?Q?0yjsuvFzN1cmkOC6wrOwfd6UyC73/s+NsESxh0xxg5x51JYLLft0xsj6tiC9?=
 =?us-ascii?Q?XljOAXfDuJf6ZZ9ZOsfyn+QIvdvFTq3jpU60r8Ab2Sj+sUGuX9GvYbtHJXXu?=
 =?us-ascii?Q?lvzNnI071tuZKQvw33uI4fE7mlwAJqitVy5RTxqqXhGroGWf92vpcKwj9tg/?=
 =?us-ascii?Q?G1+DfVIW4Nlzprtl+A9CJjLVx+XYHIa2/5gZKXc0zQ0XRFWVY7Doh+XPQOrD?=
 =?us-ascii?Q?YFcj4H3GZx4reMc9/wGtuvGJbHuRuHCtTlSuQCWa0KPUBnfqmmRZT+t3mkB0?=
 =?us-ascii?Q?C96FmTdqdjaKKQmVcdsHgV4npk+2UgsKHdisy8wzB20jptk0tMcaydMZVWHk?=
 =?us-ascii?Q?Mdvi0iCCT3/OzGwIGItrueg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2be837f5-81d5-4194-7ed4-08d9a8526403
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 16:10:06.9660
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XzgsUpD/+tHm72KV/crA4iwiBDbYRMb6hXvfoF5FM0KSVoiKchflhOLRFoqfl2I/SE8xiA16wBCIhzAqlae2qQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2607

On 15.11.2021 16:07, Roger Pau Monn=C3=A9 wrote:
> On Mon, Nov 15, 2021 at 03:31:39PM +0100, Jan Beulich wrote:
>> While commit 46c4061cd2bf ("x86/IOMMU: mark IOMMU / intremap not in use
>> when ACPI tables are missing") deals with apic_x2apic_probe() as called
>> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
>> affected: The call needs to occur after acpi_iommu_init(), such that
>> iommu_intremap getting disabled there can be properly taken into account
>> by apic_x2apic_probe().
>>
>> Note that, for the time being (further cleanup patches following),
>> reversing the order of the calls to generic_apic_probe() and
>> acpi_boot_init() is not an option:
>> - acpi_process_madt() calls clustered_apic_check() and hence relies on
>>   genapic to have got filled before,
>> - generic_bigsmp_probe() (called from acpi_process_madt()) needs to
>>   occur after generic_apic_probe(),
>> - acpi_parse_madt() (called from acpi_process_madt()) calls
>>   acpi_madt_oem_check(), which wants to be after generic_apic_probe().
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Thanks.

>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1700,15 +1700,30 @@ void __init noreturn __start_xen(unsigne
>> =20
>>      dmi_scan_machine();
>> =20
>> -    generic_apic_probe();
>> -
>>      mmio_ro_ranges =3D rangeset_new(NULL, "r/o mmio ranges",
>>                                    RANGESETF_prettyprint_hex);
>> =20
>>      xsm_multiboot_init(module_map, mbi);
>> =20
>> +    /*
>> +     * IOMMU-related ACPI table parsing may require some of the system =
domains
>> +     * to be usable.
>=20
> I would be a bit more specific and likely add "...to be usable in
> order to hide IOMMU PCI devices.".

Hmm, not sure. I did specifically leave out the "why" part, as dom_io
might also become required for something. If you nevertheless think
I should extend the comment, then I'd insist on using "e.g." just
like I did in the comment next to the call to generic_apic_probe().

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 16:21:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 16:21:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225982.390373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmejk-0007gg-Pb; Mon, 15 Nov 2021 16:21:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225982.390373; Mon, 15 Nov 2021 16:21:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmejk-0007gZ-M8; Mon, 15 Nov 2021 16:21:40 +0000
Received: by outflank-mailman (input) for mailman id 225982;
 Mon, 15 Nov 2021 16:21:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmejj-0007gT-VA
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 16:21:39 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c0ba4cd-4630-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 17:21:38 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2059.outbound.protection.outlook.com [104.47.14.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-40-byVaktqYM3qjZngpB6Bwdw-1; Mon, 15 Nov 2021 17:21:37 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6670.eurprd04.prod.outlook.com (2603:10a6:803:120::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Mon, 15 Nov
 2021 16:21:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 16:21:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0120.eurprd06.prod.outlook.com (2603:10a6:20b:465::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Mon, 15 Nov 2021 16:21:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c0ba4cd-4630-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636993298;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hFeAu/k6nst9+U4QH7SL0wExW/7C84MqbPEgIgEXKSI=;
	b=nnoDxFzZGC4NAvE8BTi7xcmMAZ0bnjna/lGrAMFIz0xMuFGctVCJU9fwijVRcOuLqXhfgv
	L6jM0MKYByJXXnUUniIIJVIxn/ALnTFo/MHnb3QLWCOwqxSh0M6e/5jUBLhMin9v5FjaIc
	Ygfu2mSGrHK5wDEcuBdwaXO7pg+0E6A=
X-MC-Unique: byVaktqYM3qjZngpB6Bwdw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hsNf5qBfRiIj4LlaFcTgGaBtkWGw/jjiX2OtZYysoZxF0vY6Y90amp1kSsZFVn5wTDQhYixMVFPT1HgNzg4GHwPhr+cmBuca0kR0OYftfcu0GWr3AEt9uYHAiNSPN/Z3/CK/W2agPia7wD08BZU0syRyRb9wUTtEu22xIhA96yPgHLyZsUrmMJygRphNpqt9VZFwf7UCKJBxVFKZdxxn+uriZvRvaLdjr7w4FSBufd8NsxModKi3PJjVBaSURjVsHR1WlK0HJ6t72nfe2Yz517/x1BjixnMP1GuRPscnrtUNtu2kyc2gSh5kS974LnNasjmilEC5uINOldO9CYlLIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zQaKEobEC1SD5fnmPFlVOyw6Li6YOZJ6uXH4bR60K1w=;
 b=Tp7dUR8Rgpu399Pmv5hE4Iq76k4OPhgSDLLMyhljhbX93dicb7Ww8km2qQUd+JSwA6dJy1FLXL3b1xhAegCbH9GmS6EyY7TYUzLV8xHLanJaMpMtlHR/Xemi/OeH+dOhjhfCjsad6zXNTGzr1BuN6eZcBiQof6hEWOJIa27RsQFU05dqO/q1Xtc5dOWJfy/2nNFRE+3r8hLG9E4MXqjgdweWBI9D0BIJE75nNItaGIukG+aQaaU+agLWOYK/G6n76lY2QCZ082Y1YxsBHULoDoOnGbPWL/tiydnmNku7t5sDRh4P6cpF2ssAb8CbrhbgKJSLf7+9VAwWT4B+Aq/rHA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <628731e2-fa81-4f75-3806-900e70988f53@suse.com>
Date: Mon, 15 Nov 2021 17:21:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>
CC: Ian Jackson <iwj@xenproject.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>,
 Jane Malalane <jane.malalane@citrix.com>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
 <d1978235-f025-19ac-707c-c2e411a5a005@srcf.net>
 <008467ea-75af-acb5-62af-bd1db03ccc68@suse.com>
 <790bf907-8c6e-b8cc-6832-b8fe21af536b@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <790bf907-8c6e-b8cc-6832-b8fe21af536b@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0120.eurprd06.prod.outlook.com
 (2603:10a6:20b:465::18) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6c11e011-dcc1-4fb7-2eb7-08d9a853fef8
X-MS-TrafficTypeDiagnostic: VE1PR04MB6670:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6670EA21BB52B0FABBD6163FB3989@VE1PR04MB6670.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	m6WSJ6crQrtczmL1UI4DiUtUIXhE4Y9jeYyxEmiE5rXcssIJPUSDOFIDaupDCSMNmeAc6doypLyRCYWFhm/xJjMmJ5rbhjHjyE0HlaQ8PWQInmo/7D/0+HCkiQHd/AfHnpldmr+MXw7tVVt5gxm7BzjGgt/dL1U71zJqLvAWlRnFhkrzpfDnXSW3PGDY3u1jAnrGBt86mr4r9D1IBHdmt6RHzsgGxWf4a/PoZuFdgBQDUGa0y9ftY3Ra7hz6+Mqh3+V3SZxDhs8V5vrbm6/I+BOzE9v1C0R+daw1TG9Fu+9GwPxEly1XwMC4Hv0VsFB7PfkBIcEI7KiTSyGOEzvkcPrIbFr/CljvbkKfHO+rDifuVjhCdgit1se7isNiQmQHizfpuBhaeNGjF2nWCHatiLzyv/PH4qTyMaUL8GDCEN4L97uojx0ACAQlT3/HCtMLcFGkVqYXJpZ4jXpeOEUumTI2QXJ2y0UV/ngqxdR2CP8XWObIOF7o3kDL5ZWh1Bij0jx6HcEFWJFso2pibSx/za69avYw4p/Qajx0wem9O2iEcvvMAryvj/Vcc4pPQX2i+D62B+ly2xXYu0It8V8GHeZVS0B3Bvlq+EVPhAiy1BEuFA2W/1KflWE3OT26Tl7nmOsFj5r0MM7q/EiGP5LS3po93qKYUmBig8iSxVZeAFtFVoY744SeYj+oO81fkARcLvbzY7Hu1BlmTCvAObw0Bcu1hFAo0QPLg7K4A/tsUrA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(66476007)(66946007)(66556008)(2616005)(86362001)(956004)(5660300002)(186003)(26005)(31686004)(53546011)(508600001)(38100700002)(6486002)(4326008)(31696002)(8676002)(316002)(54906003)(83380400001)(2906002)(8936002)(6916009)(16576012)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?QU0pjwUpBvW7enuANHP+V+khePQlmAjuiKYIW+BUVdOTQAXArvj7LKoaqxFd?=
 =?us-ascii?Q?MAHB5bOjZQI92vv478hXGDjet4dVgkDb7KjL0lXdOPuiYj/XPhuGWZYmYvP8?=
 =?us-ascii?Q?/EXk1DuUiNBB7IDSODGQk4o3oK/uBkcAGY1MfGsymwQBgGe7ZdNXB4HoR0c4?=
 =?us-ascii?Q?A0wuqV27DAJ9Ye5XXOrh7hdQSUKQssEd5ojYx92mUOcWtr2nD3vOuzvsKsTs?=
 =?us-ascii?Q?SSpF4GpkXxVDLu2bB67cwgghCAC200HRwv2O7jjGCEriLT8nkmiNtZ03u4IN?=
 =?us-ascii?Q?x3wahy+wAKepvNdYMExDJC3yXIn8m5skmdOnLNaAoPxgDdCvbFXRwTAIGe42?=
 =?us-ascii?Q?JhSfJyZKrMdHeE1qTi/2XldFQ37GcsoJfwXv5EL+ozk4wZHztFStWMWwxC1T?=
 =?us-ascii?Q?Ed+4RF6D4aK+4o5qvhgBAvid+qdMe0YBfIPAnB0nDv3hHcvANyFBT/c+hbII?=
 =?us-ascii?Q?tIUZLcHS9Is1AA0MAB3kfSZSPeB6JHEyX8afGzYy67YvQ5vyOnxvenSfJq6C?=
 =?us-ascii?Q?9m3m/LU1YXcub0P24Jrr9PpSShZvl66htAi16PO0xUCOELFYJ1z9oWcxqdS4?=
 =?us-ascii?Q?hnutha1/dY3yMOyAOkYLvc73YNJbqmOT8/HLXMoumQDBjMz/X+sACYIsEruX?=
 =?us-ascii?Q?Oy/kkK+cSRzwUKtLOa6qPovEZ9xyRfCTm5+QM5v4Vu4PkFm6w2bBzdbSqsGr?=
 =?us-ascii?Q?7KaVrpzGVq3wRmwuEOsfaAgmIGMcc1/7FsYmoXR7n7Ngvxw/Inqv+yVgwwCG?=
 =?us-ascii?Q?StcaCR6pAvJF70I9oa21cZCb1awwjuXaVZialqGcajnnCzdVWyuri18sfKY8?=
 =?us-ascii?Q?GWgCw8/uPJPp/aQd7f6ieQPa61vkV/+qhvM74ScWQI8NuM3Nf9sdPCiAJs9f?=
 =?us-ascii?Q?k0DSCkufax7qMp6snHTNV3CI4FnoMK7E2mHeyyAjnsToP4O5LpfJ+75TNSTJ?=
 =?us-ascii?Q?EgQo7NmEqQOrEnowAXZ8EQxUjc6SDzRPMRQX+fvtg52g7QpvRgGdv4Lm0fvy?=
 =?us-ascii?Q?bdTsCpMm0sMdHGLtBtxhIO6lt4a+u8b5VKMrBLKv2CQuUnyT82F8JnEWbWGs?=
 =?us-ascii?Q?lRtYlafyk4c07gQ9RyuWBoZlGJ4zqUBd+/nOCdK5pP8X5MQILYvVjCYGegX4?=
 =?us-ascii?Q?3hTtuj8cFf+op+2NpbD4aweuELYGod6n/yz+9hD/gNcYdZVaSjyDzCadT4uD?=
 =?us-ascii?Q?mjyHBmWojNCj6q447Z/0VWKBdXXmGvfSMWUm23ZckVKk4jloMql44Tmto1Oh?=
 =?us-ascii?Q?0zRf7SeBKIPJAyBq0ghps0vF+Z+KkDR6jCrRrEIfrsvxyeq0VVUGVTMZvUUq?=
 =?us-ascii?Q?FrZs4EQvDSGK6my7bOix9+uyX6qJaP7Sj8PUYUMraFZM6gomAuZpsf0+9kPn?=
 =?us-ascii?Q?d0Kbgn/edCvub3wt4/K1o7CXCe7FuHgh0+jO6jhaxS+6jcXWjxGwHUaojHwb?=
 =?us-ascii?Q?4i/PMHPuNwKPJdMBqlvHNELFLMoPJT6XgzTfHXcCN+zlPnTIqb8jQD32gEHB?=
 =?us-ascii?Q?sg6A9pQNuE5ZQLXPWVgpmqSeRXtmPYglvZt2Nft2U/6pOo3wzZxPYRfqCAuZ?=
 =?us-ascii?Q?dkKJQmrN3n1JXnYrEZVxF9SI+TseCEgcbfmYfcfYrxX5jIT92XLtIsuiPCpD?=
 =?us-ascii?Q?aVJePGESqFdQir7oMh65zA4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c11e011-dcc1-4fb7-2eb7-08d9a853fef8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 16:21:36.4015
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZqFK1jq3pUABk8qqIEzncHy5GqSQQYwD1Wdn0Rx9+D5Uu/r0yBc+hf0K4tAkFG9o1k3h29ikJ6K19+ftQF21eg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6670

On 15.11.2021 15:33, Andrew Cooper wrote:
> On 15/11/2021 10:53, Jan Beulich wrote:
>> On 12.11.2021 19:51, Andrew Cooper wrote:
>>> On 10/11/2021 09:19, Jane Malalane wrote:
>>>> Before, user would change turbo status but this had no effect: boolean
>>>> was set but policy wasn't reevaluated.  Policy must be reevaluated so
>>>> that CPU frequency is chosen according to the turbo status and the
>>>> current governor.
>>>>
>>>> Therefore, add __cpufreq_governor() in cpufreq_update_turbo().
>>>>
>>>> Reported-by: <edvin.torok@citrix.com>
>>>> Signed-off-by: <jane.malalane@citrix.com>
>>>> ---
>>>> CC: Jan Beulich <jbeulich@suse.com>
>>>> CC: Ian Jackson <iwj@xenproject.org>
>>>> ---
>>>>
>>>> Release rationale:
>>>> Not taking this patch means that turbo status is misleading.
>>>>
>>>> Taking this patch is low-risk as it only uses a function that already
>>>> exists and is already used for setting the chosen scaling governor.
>>>> Essentially, this change is equivalent to running 'xenpm
>>>> en/disable-turbo-mode' and, subsequently, running 'xenpm
>>>> set-scaling-governor <current governor>'.
>>>> ---
>>>>  xen/drivers/cpufreq/utility.c | 6 +++++-
>>>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utili=
ty.c
>>>> index b93895d4dd..5f200ff3ee 100644
>>>> --- a/xen/drivers/cpufreq/utility.c
>>>> +++ b/xen/drivers/cpufreq/utility.c
>>>> @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_stat=
e)
>>>>      {
>>>>          ret =3D cpufreq_driver.update(cpuid, policy);
>>>>          if (ret)
>>>> +        {
>>>>              policy->turbo =3D curr_state;
>>>> +            return ret;
>>>> +        }
>>>>      }
>>>> =20
>>>> -    return ret;
>>>> +    /* Reevaluate current CPU policy. */
>>>> +    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);
>>>>  }
>>> So, having looked through the manual, what the cpufreq_driver does for
>>> turbo on Intel is bogus according to the SDM.
>>>
>>> There is a non-architectrual dance with IA32_MISC_ENABLE bit 38 (per
>>> package) for firmware to configure turbo, but it manifests as another
>>> dynamic CPUID bit (which I think we handle correctly).=C2=A0 It has the=
 same
>>> semantics as XD_DISABLE and CPUID_LIMIT so we might want to consider
>>> adding it to the set of bits we clear during boot.
>> This is quite confusing in the docs - at least one of the tables calls
>> the bit "IDA Disable", while other entries at least also refer to the
>> effect of disabling IDA. I'm afraid I have trouble connecting turbo
>> mode and IDA disabling, unless both are two different names of the
>> same thing. Maybe they really are, except that SDM vol 2 uses yet
>> another slightly different term for CPUID[6].EAX[1]: "Intel Turbo Boost
>> Technology".
>=20
> SDM Vol3 14.3 uses IDA and turbo interchangeably in some cases.=C2=A0 It
> reads as if IDA is the general technology name, and turbo is a sub-mode
> for "doing it automatically without software involvement".
>=20
> On CPUs which support IDA, the CPUID bit is !MISC_ENABLE[38], with
> further adds to the confusion of which is which.
>=20
>>> However, the correct way to turn off turbo is to set
>>> IA32_PERF_CTL.TURBO_DISENGAGE bit, which is per logical processor.=C2=
=A0 As
>>> such, it *should* behave far more like the AMD CPB path.
>> I'm afraid public documentation has no mention of a bit of this name.
>> Considering the above I wonder whether you mean "IDA engage" (bit 32),
>> albeit this doesn't seem very likely when you're taking about a
>> "disengage" bit.
>=20
> It is that bit.=C2=A0 Despite the name given in Vol4 Table 2-12, it is "s=
et
> to disable".
>=20
> Vol3 Figure 14-2 explicitly calls it the "IDA/Turbo disengage" bit and
> the surrounding text makes it clear that it is disable bit, not an
> enable bit.=C2=A0 Also, that's how the Linux intel_pstate driver uses it.

Okay, then I agree with the proposal you've made.

Jan

>>  If it is, we'd still need to cope with it being
>> unavailable: While as per the doc it exists from Merom onwards, i.e.
>> just far enough back for all 64-bit capable processors to be covered,
>> at least there it is attributed "Mobile only".
>=20
> Honestly, the number of errors in those tables are alarming.=C2=A0 The MS=
R is
> has been around longer than turbo, and I'm told that the interface has
> never changed since its introduction.
>=20
> Looking across Linux, there's a mess too.
>=20
> acpi-cpufreq and energy_perf_policy use the MISC_ENABLE bit (which is
> package wide)
> intel_ips driver uses PERF_CTL (which is logical processor)
> intel_pstate uses MISC_ENABLE || max_pstate =3D=3D turbo_pstate
>=20
> I'm certain I've seen "one pstate being special" WRT turbo before, but I
> can't locate anything about this in the SDM, which possibly means it is
> model specific.
>=20
> ~Andrew
>=20



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 16:56:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 16:56:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225988.390384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmfHQ-0002Tu-LG; Mon, 15 Nov 2021 16:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225988.390384; Mon, 15 Nov 2021 16:56:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmfHQ-0002Tn-I9; Mon, 15 Nov 2021 16:56:28 +0000
Received: by outflank-mailman (input) for mailman id 225988;
 Mon, 15 Nov 2021 16:56:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmfHO-0002Th-T0
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 16:56:27 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f671e846-4634-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 17:56:23 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-24-DSolPX4uNZChdH81hc92sg-1; Mon, 15 Nov 2021 17:56:21 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6672.eurprd04.prod.outlook.com (2603:10a6:803:127::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 16:56:16 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 16:56:16 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0086.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.18 via Frontend Transport; Mon, 15 Nov 2021 16:56:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f671e846-4634-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636995382;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=l0crSbdCxIsQ1vEscNNeY5we1MkrS+AqRP/lqWHF+Sg=;
	b=nDKKHb/US+jf9Id21ja7QTqOz4wawCgb6TACGIt9LDCYxOdZYI8cv3Un7ecDO4PYPLT7Bt
	mc+el/ScMugIT9geNyR3VfjBbKq/KdJSIezVTfWPuYNTpvNn1wJ1Os11kaLv+dUFMZZiJv
	5XgcO1AUZzaBJ6IBqDMuNXOCYV2UuRI=
X-MC-Unique: DSolPX4uNZChdH81hc92sg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=m0e5/GjbjI/UtrEg+yN+PgUilaDE2Au3EkMpImA2+N+YRnU+yDN3ccgIePLpcxR6aHsu1Du+9/P31I8Y8iXQIPFoP/sFgQULJZvk+klOtOO656cjVv3Nba5eGRRnzX/Ol/xCrI70/2uK1O5khND8VDsUNz3kviL2Nvi+TgxHf5lZXGbJP4hPaU5QsLkrLqJFgQ5aK4U/jK0fq1JeNmj3ZkLVfv3Ug1NT+oXdX/hcJ1WxF2cl0N7+0TFX9RAj9VHwwo76mtwl3TF6q1XQOq1BWvrY/5DkJq0p+CkHSYrO7zTZ9h25e4W3xjMYWC2D5T13Db3ZNHDq9sV3wSaMy+Rk5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l0crSbdCxIsQ1vEscNNeY5we1MkrS+AqRP/lqWHF+Sg=;
 b=nHWmv+AfatY4fpqmC8ccXmWow+AnaN/Sj5X3TIJzVdr1E5cnERGTfq1iK/tf3EfGWC5SD6M1D6GuMeK91LTRXIh4rLxMAib7RunRD3uoCieVSUBe5YDowG9KNEPgo4uNOtjvW/LwPaZJwYU6yZdZQUba7nZm22PMhnrt8tHAOVOfqpAvPLg6Xsg0LbZVLaBECtFJJZ91nRHxU79BJieUfXAJC3BFLHBhibJf0RB33k9yEOKlmiib9xbRDOppF3zgauxIx6jHnAM8uCl34oG+wuzMGPxlPzkxHEzEUKMEIYabuB13TdEhSXq9pWXCJdl6JdDe4AQgdQY5Bdy7zZmfJw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
Date: Mon, 15 Nov 2021 17:56:14 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-3-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0086.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:8c::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b879d99c-c8fd-40d0-fd29-08d9a858d6e5
X-MS-TrafficTypeDiagnostic: VE1PR04MB6672:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB66726D11B66BF05670B79E6EB3989@VE1PR04MB6672.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OmIe2T538DWfbH+ODjR97CNP9qB79gYbcmVtvjiXLeGXTRJ6Wc9+JX3HWg/sYwDctC1gmbwgWnko0Gmphg2l6Ai8VoQsLbLzfxP/cT9Ru7DbFO88Kg/Tj9ow30glLgEANkoUUhtqh0GRS9l+1GjdAZaIG0j5dAVCN4dVhoepaCVkTF0qqs7GfSL3+D/fFjFRhqLSw30G39ptrjhrAzPWsNHDkZabZy3iQbKtVvhwTtgeO7NoCwgMhOmhcJohDHXzV1Tt4vK/HPvksvIjMwr5TCM6ZQWOqFhvgk5UqsXx2Q49vxzCurpt0xwYgi2GsOAXS5cey7Q+y7w1GNDYC8vEm9pPTKkth3jPPiYJv4AOtFze8jjBBeAXDh+SEYH0iVuIXY5nK90f9rc2YojyJGtuC9q0n+0+pWIBYeLg8nHS6U2Xq++UL7LUgi7Z1PoaP16jSUdJczfJOgtDzBek4094wehorGnpTHzOlByxKb3BBf+swZHxLev2KBIUvcYMYdEEvGTWac/HeloGz3/D6uXo+3IcoliLbclAviYn48PKSOM2j/tyEBF1L5oBI0YOCSF4xf4AQNuqn8hPidKPu3GbeNwQnzGcLmUlBsjGpuDmDx41QWyUxpPFQI6daIAEQo1qEULOAQtWCeM5gg6WwD9R/rx08eKd9c6Gz3g0GU4EOqqBrgr6TfrdFPadDgYuymk/zYte3q4oPP3gSj23IMPYddJKz9UX8YPS724KH9C8HSA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66556008)(66476007)(26005)(83380400001)(4326008)(6916009)(66946007)(7416002)(36756003)(31686004)(8676002)(31696002)(508600001)(38100700002)(2616005)(316002)(5660300002)(8936002)(956004)(6486002)(16576012)(86362001)(2906002)(186003)(53546011)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V2xXb2IxQlFFd01peUNNcUorOFh1ZndrL01ERU4rY2FUVXkxbWJhQTlIU1RF?=
 =?utf-8?B?OEV6ZklOSFNnSmhEQUxCSG5ZSFUvQjg0YS8xWlZsQmlhRkdxcDRsT1cxQXV3?=
 =?utf-8?B?ZzB4VlVUZjZtNUpCVzlxRXdCQWlUbkhRYW9xQWJOQXhpOTF1SGtWdmRPTW1m?=
 =?utf-8?B?M0laa0NzSlgvZnZhMGYweGd4SVQ0UTBSMnJDc2h3T2hJWERpQU9oSjlubWZV?=
 =?utf-8?B?WEdMRk1mZ01jUWRvNkpHS05iakxycjdXSytVeHgrMm5ETlhVZENJbEdxSGpx?=
 =?utf-8?B?RVNSV2NiUTZGL0J5MXdXcUwyVzFvUEY2MXV3WEUyTis1MFVSTHpmSVEweWpG?=
 =?utf-8?B?QlFod0dMQU9JOUtoc2RIOC9aY2Qzekgrc1YyRnFLYjRnV0NhWi95WFVTSnZn?=
 =?utf-8?B?clIxbHBIZUtXWnFNWFMwMzBtWEZmVVMrd250Vml6aEhXY1czNUJHaW9ONytz?=
 =?utf-8?B?R2cwUnRoODdmeHNjVHBwcUwwWTdxWVFpbWx1bzRBNTB4MnU3MDB0RkNWNlB1?=
 =?utf-8?B?ei9vWlF6dmlmb3BONVA3TXYzTERZK0IwTXJ6dkx6T1NFSHFBaDQ4RFdET1hB?=
 =?utf-8?B?UkFRdkt6eVVYWmIyeWhQOFlteEhEeGltWUZteVovUkR1ck9jc1hNRlZ6Sy9s?=
 =?utf-8?B?aEFWSW1QUmRwbVA0NjhtQzgxMTFxdWtqU3NEUU1VTkJ2cUJ3NlVxWjNTQTM0?=
 =?utf-8?B?bVl3bXZodXFvd01sVFhXNXZTM0Vtdnl6WlpZTWlzc2dXY1VvcG0vY1lRSUFl?=
 =?utf-8?B?TngvdkdJZ255b3JJWjlaSUVzalpJVURtdkFGZ1ZxcmZLQnZpVnFQOFpnbDc3?=
 =?utf-8?B?MTVnQkJjRG1mZTNIWTdScFFlUXdHSFpKQmpuT2lNSEJQeVhuR3JzT1FCMERw?=
 =?utf-8?B?K1BpZjh4em5uSG5RYWxJRjNjWTJIRkI2bzNnaUhaQU5FSlR6MllUZmtDMHUv?=
 =?utf-8?B?bExsTGdHSnB2dXl2WlBqNTVMR3RQcUttKzZsQ3Vxd1l2Ulpka2VCZjlncmgw?=
 =?utf-8?B?MEtVYUU1YzFZeW9rOHhsOCtBSmU5N2JxQVdNeGxZZ1dRSWdBZ1BRdVBuelQr?=
 =?utf-8?B?TEhpT1dGRlNndDVnZSsrckpKMnp3eHpkak9QRmVBbjY3cUNzTHZzeERBMjdS?=
 =?utf-8?B?YkNjcFVTT29SNUlUTHB1eVNpSXpHWkZiYldaK3lQYnVxUy9xd0phQ2dZUUJ6?=
 =?utf-8?B?SlplZFBNblJISGhELzcvZ2Y1N0ZZbWt3aDRNMzdURWtmVDVFRlMrSUhIeWhV?=
 =?utf-8?B?cDN6VVRjZ0RxditENWovNlJnait2akFLUEJjakY4V0w5a3hXYWxuTnc5YWgv?=
 =?utf-8?B?QTl5T1dzYnBwUS8wbUJrcjJ0NWpyT1BDZ2NnNVNFTGwvUWwzZklFaVV6MHJn?=
 =?utf-8?B?Mnh0d2ZvZzFyREFrNUt1WTJ0VFVqUFBDenhsNTI3ZmlIRjlyVG5tOGd2U3Bp?=
 =?utf-8?B?YVFBUVdJQXo0UVVobTRPLyswVXlrQzcyRnJXWWd5L2t1bGVKRHVJc3Jwdk9l?=
 =?utf-8?B?WVBiWnNVOGxKVVJhaDV3VmxuQitqUE16c293Ty9FWkYxZm5zT3dWbkRGTm5l?=
 =?utf-8?B?cllEOFFEbkFDeFE0YmgveldqYkc4NWpMOWlZWUMxcStrZmJ1MGVrTXMvTzBO?=
 =?utf-8?B?ZXdmQ1ZhbXN1TmZjOEpoSnlUbXhjTHpmZVozajZZVG4rV1d2UDJ0dlRteWE3?=
 =?utf-8?B?T0pya0t3VzJ5K3FBb2d4ZURtajJHck1XZEdFSFIvaENzckFHWERVamI0SmhJ?=
 =?utf-8?B?aWMzQmNQZEcwQWZQb095enlpNmJBcWNvL3hHQncrRFRoWkxCMzhpTVEzTEtF?=
 =?utf-8?B?UVovRzZXVkI3YVhqdm0ya0ZxWmRxSUxBUDVJYjhhUmhTV09mVGZ1NFVXYUxO?=
 =?utf-8?B?a1h1QzRUS0J0V2ltRURXc3hhTVlsRTBreWhWdWptWU5Cak91cE5pUWtSem5B?=
 =?utf-8?B?Z1pTWVNyVmp2TzBIZjJsa1VVZWN5M0tIeENFSE1vOFgvVWgxRVczZHNDU09T?=
 =?utf-8?B?aXg1TVAzM2tjcUphZ2V3UG95MWVZYnZLM1FxNVVFZ3ZBNWpLQ0x1TTZoaklx?=
 =?utf-8?B?SmZEa29McGJCYkQvVVY0ZUtCbUViMVNKemFxcjA5a09saHFMK0ViYWtZY2tM?=
 =?utf-8?B?WWd3NGpZZWFIMXV3a0hyRVRvZEpxcWF2OStON0lYajJNeWFYSnNqL2h4bnVV?=
 =?utf-8?Q?hwXHwVRHJ2Y+8W6e43/AXFI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b879d99c-c8fd-40d0-fd29-08d9a858d6e5
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 16:56:16.6800
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: isyRfhy7owU2hxHLS1APn6P2m88x5oOW5jxcAZpErHzOAcoWPBjqmGgEtzY0ApYbKzA9RowsBuqsUu9TqtGj3Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6672

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> When a vPCI is removed for a PCI device it is possible that we have
> scheduled a delayed work for map/unmap operations for that device.
> For example, the following scenario can illustrate the problem:
> 
> pci_physdev_op
>    pci_add_device
>        init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
>    iommu_add_device <- FAILS
>    vpci_remove_device -> xfree(pdev->vpci)
> 
> leave_hypervisor_to_guest
>    vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
> 
> For the hardware domain we continue execution as the worse that
> could happen is that MMIO mappings are left in place when the
> device has been deassigned

Is continuing safe in this case? I.e. isn't there the risk of a NULL
deref?

> For unprivileged domains that get a failure in the middle of a vPCI
> {un}map operation we need to destroy them, as we don't know in which
> state the p2m is. This can only happen in vpci_process_pending for
> DomUs as they won't be allowed to call pci_add_device.

You saying "we need to destroy them" made me look for a new domain_crash()
that you add, but there is none. What is this about?

> @@ -165,6 +164,18 @@ bool vpci_process_pending(struct vcpu *v)
>      return false;
>  }
>  
> +void vpci_cancel_pending(const struct pci_dev *pdev)
> +{
> +    struct vcpu *v = current;
> +
> +    /* Cancel any pending work now. */

Doesn't "any" include pending work on all vCPU-s of the guest, not
just current? Is current even relevant (as in: part of the correct
domain), considering ...

> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -51,6 +51,8 @@ void vpci_remove_device(struct pci_dev *pdev)
>          xfree(r);
>      }
>      spin_unlock(&pdev->vpci->lock);
> +
> +    vpci_cancel_pending(pdev);

... this code path, when coming here from pci_{add,remove}_device()?

I can agree that there's a problem here, but I think you need to
properly (i.e. in a race free manner) drain pending work.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 16:58:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 16:58:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225991.390394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmfIy-00036M-09; Mon, 15 Nov 2021 16:58:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225991.390394; Mon, 15 Nov 2021 16:58:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmfIx-00036F-TP; Mon, 15 Nov 2021 16:58:03 +0000
Received: by outflank-mailman (input) for mailman id 225991;
 Mon, 15 Nov 2021 16:58:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmfIx-000369-DW
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 16:58:03 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31ba34d4-4635-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 17:58:02 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-12-HXi0Du19OMSEN2qxJZSDCQ-1; Mon, 15 Nov 2021 17:58:00 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6672.eurprd04.prod.outlook.com (2603:10a6:803:127::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov
 2021 16:57:58 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 16:57:58 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0072.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::49) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.16 via Frontend Transport; Mon, 15 Nov 2021 16:57:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31ba34d4-4635-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636995482;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=4FYFwjhBFFSIHbqFkVF8giP30sb9GLgqfB/tiJLWHCY=;
	b=LuQe2TdyUCElnDDMQx5Ql/0npR+vJGGROffSOwFA00sJfB5Mpi2C1Ai8r3jTMSCmd8tw2d
	8t5eRuFCW7YE2jRoT6CQoyNXn4GL+73k6h1haW2hWQQFM1bwxrIgThcZ00lfwvka9bYK6Y
	NuLT8/GckpEgTJovqP3rv6zzIt3I3IA=
X-MC-Unique: HXi0Du19OMSEN2qxJZSDCQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QrpFVWU/de9LXi9jZ0g6lGzVAOLxCvZtpftC93Ck2wfYaPJUdKRSWDJcRpIdzpgBNt29DtR5ObtBRtJwS5KSuf7fdSNWj0cJ6zEc4I6p1dtYnCh67YjWXLfZiNoX+bOWwCKmLiyPou8uQVFwPUJtSKeLCRf0UQThxleNwXk4zgOn/oSYwX5+l2lURAy8tt+wKKHjNfXJP+7jCFuKjyKsbIiiwxQMh4lUQwLdMp+UIrR8iINMY4uerFo1xcIFRVE90ph+A9NZ1t/F8BaNf+e58nnhp291Gn7yvdHMIltrLBE8IhxZ5u1a7HUZWmHgAmQfajo1S+1HbJZN7oHJqqfkfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4FYFwjhBFFSIHbqFkVF8giP30sb9GLgqfB/tiJLWHCY=;
 b=Qz3pm2LjBCpNDq0vlEcrk61k/WqYNaAOhI6pGnDppcl4x/UrR9C2tN4yDIg2X8JE98+7ayCsZ7sgTuDfj1LKH+WR3LTUCC/EVsItwg0LV2Ja8LTAuqTlP2AVvIDmwFcZd4iN+fBDrnRPeZTEbeZx6Pdwg/0Y+DnY4Y7bN1QQfCCLPecxLvr37q68E2uu5ANSyD73KYNXGRivH/quSoCn4ZpQQTLvKUZ8CPQj+qigv5pXyVeP51vaTyi8VAo4WsAYa2Z8mMxJKOxK49byvfYXLRnJISjjA3oxaV7Re7881PoXSbdyXKmoMmoQhe+XVxA5LMggp5zKXKwZtJt5exYAzg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <afd9fe9d-dd18-9a4b-e43a-f0ae8b2afcf9@suse.com>
Date: Mon, 15 Nov 2021 17:57:56 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 03/11] vpci: make vpci registers removal a dedicated
 function
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-4-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-4-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P191CA0072.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:7f::49) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8bbedf3c-aaf4-401b-caa8-08d9a85913cd
X-MS-TrafficTypeDiagnostic: VE1PR04MB6672:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB66725B386B7BA19BDE004401B3989@VE1PR04MB6672.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	7/x6qsjpDCD2oETDm9bzItvhnLiadOXX9DVdm6C97R0yJspX5kMz+g2U0IlUicX8W3mzSW7ZEJRloUROwhCebjLPRHXz2651z6uRWDeBuLND/Gp5Ti//pl7UFADNU1qEytxP4UHAvQRIL7QtGT7LHcNALS6cj4Ue8sLWgaA1/mRPPCOe2GOk+l2NVTgsdbytdtmtK+ZHZ05OYBrzpZPOT0efcp94z/gfngCYEKQNY3fEzIki4vFJM9kQkP4hY6vR2IXzc/9VTsdGEvSs09hONbfujNLztLulidnpTLgKeRuEqZadMTRBt4jWxsVrKBMc4Sol0ra5eb/TqRcA/QDlW6hyzOTflcGmGOx5+dXmPuNhdXozmBEzAiq9u1eTniHkE7zO+rkGPQV/VEd56O97UVGtxdmsAIsljtjN3/25L4QC0vjrV7/2GOhWCLFPNbaXc4ScTimoITUjWmpNjEfnhoNH/DN/y075iCLy5IlWqjIcXjk090pJCaqnXHXNo24AlExKJYv5NVzut/1SLlH41VzwzyCamMxVl7EaMHcDjx5+WGhJ0e51xkvl9H5aiC4TRJm596JQTq9SUsTNJG7IwX/z8kxS41fldOhIq/MFaGyayXj1VXl1MmZnj/P8LeVSEfVs3/ajbPlnOib70Qu1gACjQg5y8lNd+SZqE2QxqUU0BTZemoDnfr/zugi311DZ4LpFtC23tXnUgJ5W5gyjvDE1QMowbeBVdXj5/aTT1Gs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66556008)(66476007)(26005)(4326008)(6916009)(66946007)(7416002)(36756003)(4744005)(31686004)(8676002)(31696002)(508600001)(38100700002)(2616005)(316002)(5660300002)(8936002)(956004)(6486002)(16576012)(86362001)(2906002)(186003)(53546011)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y1d4U1psZWUyV3FIVmlVYUNDVXo2NzJySnZzaEhsY0FXMWJJN3FwaUVYQ2Y3?=
 =?utf-8?B?SitUejZVVUord3JIZ05GbGIxVUlVd0tSdHAwbFBVL09EMWRPWjBndi96dXQ0?=
 =?utf-8?B?NENPUWtFNE1UcVJub2RxQWVTU21qYWRnR1VUenYzRG1kVGlDVU9aaGNtQnQ4?=
 =?utf-8?B?RkhMTHhDQXlHMzlxZUFXZXQ4VzBDb0JuSXg5R0JSNStFdTY4bXhObHA0dVU4?=
 =?utf-8?B?ZGZ0WkllNlUxZ2oxbTZnOENPWU1nL3dIMHprS2tHcDlxMjRKQW5CYnA5UTdi?=
 =?utf-8?B?dzRQYWM3Q3hpbm96Rkg5Nzl4dzhHTzNrK21CNGd2VFRNWFZpakpHTVpESElE?=
 =?utf-8?B?N0JYaXFzaFJTUnVzaFhkUHdKcEJJaFJQVWdaS3JXN0k4UVZCMlNGRUhRVUg4?=
 =?utf-8?B?NnZ5R0ErWVRyS2pKcEJvV2tzRGdERFBXSnZxR1JvMGw5K1I4SWdObGVZMFY5?=
 =?utf-8?B?Qmtpd1Q2RTRiWGJRTjZtaWxweHhKZkc5aWRjRnZDN1VQYWVvZndsQjNyamdi?=
 =?utf-8?B?aStZTEIwVmh5eGxNMU51TEJLS0hjZjRTcXRRTS9SS3FqellvRVZxZVZMR3pS?=
 =?utf-8?B?dWhxY0dwSXpJMXU2UE83THJUYkwwbG1NYXZVajhEWXZMcVdOTFB2QjNadzhq?=
 =?utf-8?B?d2N4WU4wWXpKaTY2a2duQ3czbEhFNUdGVXpaUmJyZ1pIUjZsckZUZVl2YTdk?=
 =?utf-8?B?Z1pOZDc1bFlGTU95U0p0WmtZQTdJbnFTR25NalBvU3V0N1F2NHBTVzJsQWNE?=
 =?utf-8?B?VERndmwxbStnaXVtNDZmNWNuV1FnaHBwblhuVUY4enNGNEpRR2g2N24wS1J2?=
 =?utf-8?B?aUFJZGlXekxKMVJXZ3FpZ2lVelpNOW96Mks4UVJhTnIvK2FOZTFuNWZaaWE0?=
 =?utf-8?B?OGtyZjkvOWgvNDRjaTRyYXNMN1lGQnkralFPdEVIWTJDR1lGVitiK2ZrcEZv?=
 =?utf-8?B?MThLVElMQlNTdzFTV0tsVjNvVStjK2pkNmVXK1J4TkJyMk1LcHNQd0h5amgx?=
 =?utf-8?B?UXRZcXpROTIycXcwNC9FTmZmTDRHSXBwMEg4cGc5dkFsUitsdGJIWEFPczZS?=
 =?utf-8?B?MmJaWjJHT2xOQVY2NEQzSXdNRllQRzA3SHpzUHpRSmNZbmdsb3ovSGZNV2p0?=
 =?utf-8?B?QnJrbGo0SG0vc2RVajV6TnBKMjdYSUZKT3BFSkJ5S2RnTG9EMTR2U2g2dk5E?=
 =?utf-8?B?RnRnaHZKS1M3RTJBR1VvcFFPa0ZSWHpWWkl5MHpRL3R1VVIyck85U0VRUlo0?=
 =?utf-8?B?Z0FrOHFjM2QwTiszV2owNWpkWGZQMXIybkV5MkgzK2tFMWlVcDNhcGVSZzlr?=
 =?utf-8?B?Ykh0b1o2andDZkRwbEkrMVBTcUMxSzRNdHAxR2EycGVyQXJCdWNKSHRZR2tq?=
 =?utf-8?B?dE9PdGNHMk10QW1XTHA3RmY4Tm0ycUhsNU9LS2pWVXhTS0k3NGVCajhDbnpm?=
 =?utf-8?B?YzVCTkZVTGEySmdtYVBOZXVkVS9uaWI2NUZ5T1NicUt1NWUyaXdDZlRIQ3dG?=
 =?utf-8?B?d1JnQ29KMWVMbkg3ZVJWNUhKUVhTUU9ab1ZPeC9zNElTL2swOStmdmpsZFQw?=
 =?utf-8?B?dWFsUzVSbmVxTE5UMkpLSDRTaWNpbDRPWVMwamkvRDNFWFVxL0srNTR6ODZz?=
 =?utf-8?B?dFpJbFcxaTh0NHpWS1NpYmY5UTB4Yk5kdUNQVzBjV0R2ekRYVE4xeFNHMEt0?=
 =?utf-8?B?YTlTOEtkNGZOZ3B0OHVDYm5GRWg4S0gvUFZMcmVmYmxUQ0FHbVFGM3dVV2ZL?=
 =?utf-8?B?Q0ppTGlhS0lMVlFRSU05ajZnaFhxQUx4N25OalQ0TkhONTQxNnd5U200U3g0?=
 =?utf-8?B?WCtkaFFNVlpjSmlNeXcvRG9qbFYwSTIwaXF3RUFsUHVMS1RVbHRHMmhhVnZK?=
 =?utf-8?B?RGVEanV5NndoOTltUVljd2h3LzY4Rnlid3RDVUNqOXV4eURpSFhKclp5cW5U?=
 =?utf-8?B?M1NqM0Z4MlN4RmV1cTByb3I0b1hhbC9nd3hkZWxOcHdHRzB6U1Q4MW1ENWRp?=
 =?utf-8?B?bmhWSzNiSVd6d2g3TVFQUmNaekZ0TUgvZ1NRY0dINDNXUHNWS1E1TTd6aFZN?=
 =?utf-8?B?cHBrZDArRDVJYnZwQTVWcmJDdlBtVXdMb2ZMWHp2SVh6OUFSem9wYlJRQlY4?=
 =?utf-8?B?aXJMSmhjK1RzNm9mdHgyUVlmeVpHMDJKK2Z0dFFSbDNTc3VHTERyUHQ1ZU4v?=
 =?utf-8?Q?LgPX893icvBAAbmSLlm1WpE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8bbedf3c-aaf4-401b-caa8-08d9a85913cd
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 16:57:58.9044
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BDBFJBhKAmKaDjWHUdSuN6UgSFNJO9AUnQ5l9SRKgEtfi8xfLA9/2YvONMJrjLvAHo/M4HXbU4fkT+cIigqyPQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6672

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> This is in preparation for dynamic assignment of the vpci register
> handlers depending on the domain: hwdom or guest.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> ---
> Since v3:
> - remove all R-b's due to changes
> - s/vpci_remove_device_registers/vpci_remove_device_handlers

Should this maybe extend to the title then?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 17:07:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 17:07:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.225998.390406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmfRX-0004aO-SN; Mon, 15 Nov 2021 17:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 225998.390406; Mon, 15 Nov 2021 17:06:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmfRX-0004aH-OR; Mon, 15 Nov 2021 17:06:55 +0000
Received: by outflank-mailman (input) for mailman id 225998;
 Mon, 15 Nov 2021 17:06:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uxYG=QC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmfRX-0004Zw-3m
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 17:06:55 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e754a5f-4636-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 18:06:53 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2059.outbound.protection.outlook.com [104.47.14.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-39-qRL6pCpYPKSs1lE-4YCcQQ-1; Mon, 15 Nov 2021 18:06:52 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6670.eurprd04.prod.outlook.com (2603:10a6:803:120::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Mon, 15 Nov
 2021 17:06:49 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021
 17:06:49 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR3P281CA0047.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.6 via Frontend Transport; Mon, 15 Nov 2021 17:06:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e754a5f-4636-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1636996013;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zZjl3Q9lo2QDlYm2sIO7NtrPNxZquufQIqcnP3IMC+8=;
	b=ARQ4ntwt0yG7OTwBwEa4rPGQaTmFrThQ3UBsUZxIeczheXRACH66XKKnE7Vu5dxfd3DnR2
	IXbIkweU3hOaEvLpl3D+EeFpgUrIAtoO3JyfOS+VkqJZ9dREubr2hrWqzthxuyCgsi7SaE
	6A/Kwcln0D+pgEu5dIeKJJshO5VbSZE=
X-MC-Unique: qRL6pCpYPKSs1lE-4YCcQQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZJCDeijLRmAHxgOVcECCJVQWtE5Xqi5wJvYA5HXRNMJtYkn8CVPqlbpW+bGJO/z4+j0eKTbDzTixiG5IgBssf2kfBtpl80/h3wHOhHEefp9JrIoLvQ/uckJFKMDod1tlgbTpOrFo/be7kj8mdsO2cjXH1zsmO3solLWBkgXO0RrGd57gExkFEGumOV6JEdA0NgmLbW0fod46Vqwqytr7kzD1pKEB87xquubukDrK1sfIbpk9JFjDV99P+gzHkfaamSl53yk3TZQmApehH8Ti5yfHjSx6r/mMRzVDEBxZQiR+j27/PVPiNQiFxRJsafTbHBqlkC2OeJlcVFPJtEhUTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zZjl3Q9lo2QDlYm2sIO7NtrPNxZquufQIqcnP3IMC+8=;
 b=PysMizsq3Pob3YQFV5Mg9OpM0klwFI+lAy3hbmQhmauP70maQsUkAnLaQN2aZHiTLJqAI0Dme+PAkuEba2CbVBi6xu4aJQKob1i/5Lq7wwlFdIiLPNwX9OoK2d3jGHUZzNw0bJ0JLhqqIvK1+f6dil2UblXIGm87Edq6WlBqqs4AY47Hif2qGORivdUtsHPZAkFAPf7h9dGosr40TDGYgZpTRqHt6pDDEty+TPWf9UT63OMIGdORd+m6hshBGNbTzvVVW5UMuVHEs0ilDeiBewh3bdbHxoo+zfXiK17O7se1ZXdJdjZ701lkkBRQ6WrutQPsvwaX9iM6KpMyJdraHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9d72b3b0-22be-45fd-2bc6-cf27f96afe5f@suse.com>
Date: Mon, 15 Nov 2021 18:06:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 04/11] vpci: add hooks for PCI device assign/de-assign
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-5-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-5-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0047.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:4a::10) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 48a82b86-ee47-4e1d-7aa2-08d9a85a502e
X-MS-TrafficTypeDiagnostic: VE1PR04MB6670:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6670246486B314873857FC3BB3989@VE1PR04MB6670.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2887;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	v4sjY8lM9k3itVm83A7Za6xgqRKvD2QCCwN41kqEekE8QqWkoAPqJ3jSI2dg0ih9HGIFRDrsA5w62LqrMv1FeGufMdTglclgSCd3eZuYSI0gVY+6t8gqnS2XtisoyMJ1fl3O7VhJgZj8DhBdKPv9or4EmXYe9Jv65X/RyonrF0qCLGEiSh01xwwgpv8txRyA5WC8gHZMku35GlSh/kUfyYcYtMLjONasySwiYK28Y9Canl92iwmrJw15A1YlIfIPXqo5FMIdy4OvP+f7H5QwyIEi9LFzmazCnHI8yVEAXUGWoCW9973rQOEJxk6XQMx2IVtgSK/DuATRkLxNZSa0sYG4hvUmMr0QXYSDPYUtkL7YX4pAJt9KI48JHBgcIpX438paQ6X4ECWKbbuIV8ZhPEGOWPwTC8Lv3JMcGjyJVZ56yI6oyn2auwxqna/7grBJrgnB7uqqOFZEJgkOgjIp0s4Ba4367IkFebBBMb0ykgZM+GdhguqSDgT6cmxQ+ywxpEcgtszHZFFyVnGPjkkW4GqtmQZMbKLb3+mr0vXLV66daF7kolsYyir/oXz+EZtRi4NfmQpy2ITdAbuMrosf90pa6STnYq7fon95s2ULxcyUv76iVkt4ZgMdsc0aJSHvR3l2WCnWpStXWqRC0/ooow06qshEgTxeAFpbvb8QrOVmJPr3ZL2GewYfosoraHuLSve1sqY5rUTuLqbKMiv3xsGPjftOgAMdBculPdcqWtw0jIIkgkdzmgCJ8MwoSWVE
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(31686004)(53546011)(83380400001)(6916009)(16576012)(8936002)(2906002)(6486002)(4326008)(31696002)(38100700002)(8676002)(316002)(86362001)(2616005)(36756003)(66476007)(66946007)(66556008)(7416002)(5660300002)(186003)(26005)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?akUrTWU3OGZieHQ1SDBUVFJqbUpkNHNRdjNmV3ZEU0xEemIwU0NUTDM3WC9t?=
 =?utf-8?B?QlhmYVVGaEc1Z1k0OEhlamJuRkFzbmovZEFpc3FxNzUwcHFpWmUxL3dTVTM2?=
 =?utf-8?B?TTUvOWVrMS82Y2VweDhUc2Q4ek9mTHNaWEl5VGZGWTBOSVFWQVpBU1VlTzVV?=
 =?utf-8?B?VWdCWE5SWWZWYXJHa1QyT0NjenRNZW1BaGF6cWx0ajNHeVdmUTd3YVd1eGZU?=
 =?utf-8?B?eG1sVmQwMXk4S0Z3eFJvYmhMc2F2N0tuRis5Q1J3WUt3KzE0NmN6TURKSWVN?=
 =?utf-8?B?WkRicGxwNkw3TEdXYUFZeXdMZWZaVkRCNytMUnRxTG5SSEI5TVBKMVhiU2wr?=
 =?utf-8?B?WG4yQzlDVE5CR3RiUFB1SlluTUNHWm42RUpyY2F3Tkk2RVh3NHVaUllVZG9F?=
 =?utf-8?B?SUtQRWd1dzc4dXc3bXNRN3dmZU82TDhhTjBwWkpya1Ztb2lKN0hqOFV4YkFH?=
 =?utf-8?B?c1lva0w1VS9qL1Z4WVowNExnQ0dYdjE4VFJNMVpRN29EbEhpY0cwOFRuaUtW?=
 =?utf-8?B?UDVxRlJwa3I1cHhrMGR4QjQ0V3MvL0VBRTl3b3FsSXNsYjNSZU10UkY3RlV4?=
 =?utf-8?B?eFVrTDBCWW8vQ21VNnFCNnQzaUJiWnN5WjVvYzBwbVBBa0RlK2l5OUhFMkJZ?=
 =?utf-8?B?dTFMN1k2dTY0UGVzVFhzQWFuL0dQYmxxbnB1R2FrajhtRFhKS05IQ0xTRzN4?=
 =?utf-8?B?STRtZmFJV2VVZ0FCQlNTNGdJQXR6b1lWK1RQTCszUlZMaVJRYzJzeDVSSDk4?=
 =?utf-8?B?dWVydERyOTd0MmZqbXdjbFdmR2ZoOFdxVVNTajJKSk0rQnJ3S0ltOHpPbWRy?=
 =?utf-8?B?dTFhOEt3QTZEN1c5ZXJ3akdjalQydmtnYmFxeFd5eHNMNGtlRGs1TmcwMkJP?=
 =?utf-8?B?YWJWdk8wWlNKK2t6Ynhwb0dRMWUvMHRRMUdHK2srODl1Q1FtSjBTb0RDYnVq?=
 =?utf-8?B?L01laE5RVFRTTEpXT2lKSDdpN2V0WExVTDNQOUJNcm1jWXI4Z2xMUEpJdktW?=
 =?utf-8?B?RVNPTnR1cWtFMDdySUZJYW9Hbi9Zd0phcGVYT25CNGFXLzR3UnZiSERiTWVF?=
 =?utf-8?B?VjA1UnN6ampGOHdod3FhYTZPdHkxckRrT2lWUzloenZvZVNiUGFHRnI3SjZO?=
 =?utf-8?B?R0xFd0VIQVR0M0t4NFRkamJwam1hMTJZM0lFKzRpR0V6THVGeEdZbnp6Tm5Z?=
 =?utf-8?B?UXRHTFRiVjBYQkRwSGFhM1ZFcGlFRDFKazc5dGJzenUwOTk4eVRUZmR1V1I4?=
 =?utf-8?B?bTJWUThOcmhlTHhiUkpSOVdTTVA2WW9FajRlQk04VVhqTHp3SnJYdStFcDND?=
 =?utf-8?B?ZE4wOW5MRTBOOHRKUHBUV3RGZ053Mk1wMXdwcXlKMGtHMmxKWjloYm1Sd00r?=
 =?utf-8?B?cE1rWUVySmRhNnZBTjhsQWZLWllaWlhIZ1ZVOW5HbWxtUzRHbzU1U1lWT3pT?=
 =?utf-8?B?aWY1bEJYbkxhWkkwaDZqUnZOcXZmR3E2dXgrOENrZDI2TzIvMWx5amJkWmlx?=
 =?utf-8?B?TXN0SDA3dlZqSHhhRkZnNm9wNlh4Z0JWbVlkM3pNWUJuakVPUlBZTVV3UmJP?=
 =?utf-8?B?NW9oYjdkNVovcmlDQ3k3ZFd0VmZxNUNET092TTRCYlZXR0t3UlVoSjh2KzVn?=
 =?utf-8?B?NnpmQnIyT2Rob0dSaFhLaTA1WVBZeVllNGU3ZWlOQXRTTjdsRk9ya2dKNkh6?=
 =?utf-8?B?d2xaSmozZktxRUxza01ZQ1d2Y3VmOTJCYnY5UVJRMFBEVmdaa0tsdHg1aFVJ?=
 =?utf-8?B?Z1YvZnVZRVc1cVd4MGd4ZTlnTWpTK0pRLzZKdkNpS3NjSjhoRHptWThWVm5o?=
 =?utf-8?B?bVorZENwK29relJQdG8yTnRiQzRNcVFWMW9WUGxSUTJXWE84Z0NiaEZDVGt0?=
 =?utf-8?B?WmxDUWF4SjM3RENvOFl1bWxQZmlqUnErNXl2RWNxeTlsVXZ3RHlicUptNWpu?=
 =?utf-8?B?Y2Vya0pYSURSSlFGWFRZazdKL3l4b0dyWktUcDhXUDd2WGZBeGI5dnFjUFgz?=
 =?utf-8?B?VFJPSmtrTHZDRW1CakVBc1VOa2NqYkFMOFJxOTF1ZG5CTlhxKzRid1FaL3Rq?=
 =?utf-8?B?QzV5QzBnNVF4bmpJNFZXUU0vb29Uc1hROWxzQ01UZmdWVmk3blVURlpBRmt1?=
 =?utf-8?B?cStjQjZFeENxSHFiZDAzMkRyRlBUZkxSclFvd2t3Y2R5bk41cFpNNHZaTHVv?=
 =?utf-8?Q?3dQMxaB2aA09rkHto5EFuEA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 48a82b86-ee47-4e1d-7aa2-08d9a85a502e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 17:06:49.6351
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2NIpCB4gJgrx3qJ6zxwFGS/4saeF48JHAaaOJuDYwDclMVuAx6ovvLESMT7lVMtsLev4cia1zQQMAuCYJFu5rw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6670

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> When a PCI device gets assigned/de-assigned some work on vPCI side needs
> to be done for that device. Introduce a pair of hooks so vPCI can handle
> that.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> ---
> Since v3:
>  - remove toolstack roll-back description from the commit message
>    as error are to be handled with proper cleanup in Xen itself
>  - remove __must_check
>  - remove redundant rc check while assigning devices
>  - fix redundant CONFIG_HAS_VPCI check for CONFIG_HAS_VPCI_GUEST_SUPPORT
>  - use REGISTER_VPCI_INIT machinery to run required steps on device
>    init/assign: add run_vpci_init helper
> Since v2:
> - define CONFIG_HAS_VPCI_GUEST_SUPPORT so dead code is not compiled
>   for x86
> Since v1:
>  - constify struct pci_dev where possible
>  - do not open code is_system_domain()
>  - extended the commit message
> ---
>  xen/drivers/Kconfig           |  4 +++
>  xen/drivers/passthrough/pci.c |  6 ++++
>  xen/drivers/vpci/vpci.c       | 57 ++++++++++++++++++++++++++++++-----
>  xen/include/xen/vpci.h        | 16 ++++++++++
>  4 files changed, 75 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/drivers/Kconfig b/xen/drivers/Kconfig
> index db94393f47a6..780490cf8e39 100644
> --- a/xen/drivers/Kconfig
> +++ b/xen/drivers/Kconfig
> @@ -15,4 +15,8 @@ source "drivers/video/Kconfig"
>  config HAS_VPCI
>  	bool
>  
> +config HAS_VPCI_GUEST_SUPPORT
> +	bool
> +	depends on HAS_VPCI
> +
>  endmenu
> diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
> index a9d31293ac09..529a4f50aa80 100644
> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -873,6 +873,10 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
>      if ( ret )
>          goto out;
>  
> +    ret = vpci_deassign_device(d, pdev);
> +    if ( ret )
> +        goto out;
> +
>      if ( pdev->domain == hardware_domain  )
>          pdev->quarantine = false;
>  
> @@ -1445,6 +1449,8 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
>          rc = hd->platform_ops->assign_device(d, devfn, pci_to_dev(pdev), flag);
>      }
>  
> +    rc = vpci_assign_device(d, pdev);
> +
>   done:
>      if ( rc )
>          printk(XENLOG_G_WARNING "%pd: assign (%pp) failed (%d)\n",

Don't you need to call vpci_deassign_device() higher up in this
function for the prior owner of the device?

> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> +/* Notify vPCI that device is assigned to guest. */
> +int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
> +{
> +    int rc;
> +
> +    /* It only makes sense to assign for hwdom or guest domain. */
> +    if ( is_system_domain(d) || !has_vpci(d) )
> +        return 0;
> +
> +    vpci_remove_device_handlers(pdev);

This removes handlers in d, not in the prior owner domain. Is this
really intended? And if it really is meant to remove the new domain's
handlers (of which there ought to be none) - why is this necessary?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 17:27:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 17:27:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226003.390417 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmflH-0006w8-Nx; Mon, 15 Nov 2021 17:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226003.390417; Mon, 15 Nov 2021 17:27:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmflH-0006w1-K0; Mon, 15 Nov 2021 17:27:19 +0000
Received: by outflank-mailman (input) for mailman id 226003;
 Mon, 15 Nov 2021 17:27:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmflG-0006vr-Ba; Mon, 15 Nov 2021 17:27:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmflG-0005LE-49; Mon, 15 Nov 2021 17:27:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmflF-0001L5-SI; Mon, 15 Nov 2021 17:27:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmflF-0006M6-Rn; Mon, 15 Nov 2021 17:27:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=RbLGpmUFdqYdYIhBmUfOZ0Z4qnDPGcMkgknzd9k+MXQ=; b=nDvySA2GJ3vesT8MATplOUXN+z
	/oIV9y+LM/jdhnUiY+0IVluFoi1EKueqqtNVWjCJ2N5dKa4cLp1xf1QRe4ePAfvN/crApGAcfsHoW
	+qoxpLFIMiIZNxpmpzWeI1oE0G04CHoEXDGIs8uhYls2Kgp+zPrkVzHnJQztUqa8P3+g=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166149-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166149: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8ab774587903771821b59471cc723bba6d893942
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Nov 2021 17:27:17 +0000

flight 166149 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166149/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                8ab774587903771821b59471cc723bba6d893942
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   13 days
Failing since        165992  2021-11-02 05:40:21 Z   13 days   21 attempts
Testing same since   166149  2021-11-15 06:45:03 Z    0 days    1 attempts

------------------------------------------------------------
2166 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 250693 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 18:56:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 18:56:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226009.390431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmh8o-0006lG-AF; Mon, 15 Nov 2021 18:55:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226009.390431; Mon, 15 Nov 2021 18:55:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmh8o-0006l9-70; Mon, 15 Nov 2021 18:55:42 +0000
Received: by outflank-mailman (input) for mailman id 226009;
 Mon, 15 Nov 2021 18:55:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mmh8m-0006l3-26
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 18:55:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmh8k-0006rC-RC; Mon, 15 Nov 2021 18:55:38 +0000
Received: from [54.239.6.189] (helo=[192.168.10.237])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmh8k-0000wJ-L9; Mon, 15 Nov 2021 18:55:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=fwHkXMjWbDotTJgHDIt1lkTTSaQy7KYL8SDzLf3Nrs8=; b=Ic5L0C6pDV7cn6hNRTkNkIKYTN
	rxBvIFnp8WDjwa1Rv3G7ka2+eanFeqSswtF7prHsbrTS0qSEaY6/2UuqkBotYpHVN1It5T5QSbnoe
	lTUND2kyDikiHAKst/vOsG/flpnVd6QF71m1gqKbr/2mklu7sBehtICXybqTYdj6X7Ko=;
Message-ID: <57d10284-cbd0-2867-2c09-9f1f7824d938@xen.org>
Date: Mon, 15 Nov 2021 18:55:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [XEN][RFC PATCH v4 1/1] Update libfdt to v1.6.1
To: Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>
Cc: Vikram Garhwal <fnu.vikram@xilinx.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, bertrand.marquis@arm.com,
 volodymyr_babchuk@epam.com
References: <1636702040-116895-1-git-send-email-fnu.vikram@xilinx.com>
 <1636702040-116895-2-git-send-email-fnu.vikram@xilinx.com>
 <AE30D3B0-0863-465C-AFBC-8DEB28919A8A@arm.com>
 <alpine.DEB.2.22.394.2111121400280.1412361@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111121400280.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 12/11/2021 22:01, Stefano Stabellini wrote:
> On Fri, 12 Nov 2021, Luca Fancellu wrote:
>>> On 12 Nov 2021, at 07:27, Vikram Garhwal <fnu.vikram@xilinx.com> wrote:
>>>
>>> Update libfdt to v1.6.1 of libfdt taken from git://github.com/dgibson/dtc.
>>> This update is done to support device tree overlays.
>>>
>>> A few minor changes are done to make it compatible with Xen:
>>>     fdt_overlay.c: overlay_fixup_phandle()
>>>
>>>         Replace strtoul() with simple_strtoul() as strtoul() is not available in
>>>         Xen lib and included lib.h.
>>>
>>>         Change char *endptr to const char *endptr. This change is required for
>>>         using simple_strtoul().
>>>
>>>     libfdt_env.h:
>>>         Remaining Xen changes to libfdt_env.h carried over from existing
>>>         libfdt (v1.4.0)
>>
>> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
>>
>> I’ve also tested it on FVP and on a Juno board, starting few guests and it worked.
>>
>> Tested-by: Luca Fancellu <luca.fancellu@arm.com>
> 
> Thanks Luca! The patch also passes the gitlab-ci tests and looks OK to
> me. I'll let Julien ack it as he was the one with a couple of comments
> before.

The next version addressed my comments. So:

Reviewed-by: Julien Grall <jgrall@amazon.com>

I have also queued the patch in a temporary branch for-next/4.17:

https://xenbits.xen.org/gitweb/?p=people/julieng/xen-unstable.git;a=shortlog;h=refs/heads/for-next/4.17

The patch will land in staging when the tree re-opens.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 18:57:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 18:57:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226013.390442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmhAZ-0007Ml-M2; Mon, 15 Nov 2021 18:57:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226013.390442; Mon, 15 Nov 2021 18:57:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmhAZ-0007Me-Iq; Mon, 15 Nov 2021 18:57:31 +0000
Received: by outflank-mailman (input) for mailman id 226013;
 Mon, 15 Nov 2021 18:57:30 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mmhAY-0007MV-FV
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 18:57:30 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmhAU-0006uS-Sq; Mon, 15 Nov 2021 18:57:26 +0000
Received: from [54.239.6.189] (helo=[192.168.10.237])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmhAU-00010Y-ME; Mon, 15 Nov 2021 18:57:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Bt0lYOUpmt6dB9dElgNZha+A/iVkEchc3r+ENc3N38M=; b=Ai8qC0pjBkfDrEyJpVzAjVcy0G
	UPtuDRgIivtBRwCwDzV07G6EgNJg4X98EieNpmXl64wQrW4TsEmTprCjFkzJy/Li1WiJsm0lV0p+I
	DtleuISfCZyS/wsgRmbaPd8V3kxnppFxTZdHdjENq1jeTBg3SmleOxy2pXUQDVMMJoUs=;
Message-ID: <a07ff375-b910-0d73-e957-15ba9d2535fe@xen.org>
Date: Mon, 15 Nov 2021 18:57:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Jan Beulich <jbeulich@suse.com>, Bertrand Marquis
 <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
 <3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com>
 <010fa02f-e561-e7a8-9638-5246db9166b4@xen.org>
 <725F3F68-A1CE-42FB-9C8A-0700CDD02E8E@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <725F3F68-A1CE-42FB-9C8A-0700CDD02E8E@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Luca,

On 10/11/2021 14:02, Luca Fancellu wrote:
> 
> 
>> On 10 Nov 2021, at 13:36, Julien Grall <julien@xen.org> wrote:
>>
>> Hi Luca,
>>
>> On 10/11/2021 13:05, Luca Fancellu wrote:
>>> I thought having the EFI_FILE_HANDLE global in efi-boot.h was a “no go”, but if it’s not then instead of
>>> calling get_parent_handle in efi_check_dt_boot (that is the main issue with EDK2+Grub2), we can do
>>> something like this:
>>
>> fs_dir_handle is only used by callees of efi_check_boot_dt_boot(). So the global variable is not an option for me because the risk is not worth it (it is easy to misuse a global variable).
>>
>> Instead, I think fs_dir_handle should be an argument of allocate_module_file() and propagated up to the first call in efi_check_dt_boot().
>>
> 
> Yes you are right, changing the interface of handle_dom0less_domain_node, handle_module_node, allocate_module_file to host also an argument EFI_FILE_HANDLE *dir_handle
> avoids the use of the global, then the handle is requested in allocate_module_file only once and closed in efi_check_dt_boot only if it’s not null.

That would indeed be better. I'd like this patch to be merged in 4.16. 
Would you be able to send a new version in the next couple of days?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 19:10:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 19:10:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226019.390453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmhMV-0000S1-Pb; Mon, 15 Nov 2021 19:09:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226019.390453; Mon, 15 Nov 2021 19:09:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmhMV-0000Ru-Mi; Mon, 15 Nov 2021 19:09:51 +0000
Received: by outflank-mailman (input) for mailman id 226019;
 Mon, 15 Nov 2021 19:09:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mmhMU-0000Ro-LW
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 19:09:50 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmhMR-00078D-IG; Mon, 15 Nov 2021 19:09:47 +0000
Received: from [54.239.6.189] (helo=[192.168.10.237])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmhMR-0001v0-Bv; Mon, 15 Nov 2021 19:09:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=xwnd5EvYZMkOSDWxYiMi6REcV/9LZ+42bbHzuj8weqo=; b=Mlyk7i2zkV2/AUiVtTtpLIGq8h
	LYXpvQdedV/PBpEpnwTKWRXXOXePmErG6KplCBflDJvDOjf+sPNAiNUXuDiL149/NleRLxHvXSWWZ
	3ozmEkkwIcln/t+v+VKKz2HHwKMJCREXOVFt6pcqPtXFJR/kCh1NJ8VomiNa2bmq7w44=;
Message-ID: <78aa1ec7-3d47-716d-c9d6-b74d66486e9e@xen.org>
Date: Mon, 15 Nov 2021 19:09:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: ACPI/UEFI support for Xen/ARM status?
To: Jan Beulich <jbeulich@suse.com>, Elliott Mitchell <ehem+xen@m5p.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Henry Wang <Henry.Wang@arm.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <64e9208d-ecda-2e62-e10f-81750c0279fb@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <64e9208d-ecda-2e62-e10f-81750c0279fb@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 15/11/2021 10:13, Jan Beulich wrote:
> On 12.11.2021 17:02, Julien Grall wrote:
>> Hi Elliott,
>>
>> On 12/11/2021 15:44, Elliott Mitchell wrote:
>>> On Fri, Nov 12, 2021 at 05:54:08AM +0000, Henry Wang wrote:
>>>>
>>>>> -----Original Message-----
>>>>> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
>>>>> Elliott Mitchell
>>>>>
>>>>> I've been busy with another part of this project, so I've lost track of
>>>>> progress on ACPI/UEFI support on ARM.
>>>>>
>>>>> Last I'd read full support for ACPI/UEFI seemed a ways off.  Using a stub
>>>>> domain to constrain ACPI table parsing seemed the favored approach.  I
>>>>> was under the impression that would take some time.
>>>>>
>>>>> What is the status?  Do the Xen/ARM leads have any guesses for when full
>>>>> ACPI/UEFI support might reach completion?
>>>>
>>>> I am doing some development based on the Xen UEFI/ACPI on AArch64 using
>>>> the Arm FVP_Base platform. Using edk2 and master branch of Xen with
>>>> `CONFIG_ACPI=y`, it seems everything can work properly.
>>>>
>>>> Here are some of my logs:
>>>> Shell> FS2:EFI\XEN\xen.efi
>>>> Xen 4.16-rc (c/s Fri Nov 12 02:34:01 2021 +0000 git:323b47ffd9-dirty) EFI loader
>>>> ...
>>>> (XEN) PFN compression on bits 20...22
>>>> (XEN) ACPI: RSDP F5E30018, 0024 (r2 LINARO)
>>>> (XEN) ACPI: XSDT F5E3FE98, 005C (r1 LINARO RTSMVEV8        2       1000013)
>>>> (XEN) ACPI: FACP F5E3FA98, 0114 (r6 LINARO RTSMVEV8        2 LNRO        2)
>>>> (XEN) ACPI: DSDT F5E3ED98, 02AB (r2 LINARO RTSMVEV8        4 INTL 20200925)
>>>> (XEN) ACPI: GTDT F5E3FC18, 00E0 (r2 LINARO RTSMVEV8        2 LNRO        2)
>>>> (XEN) ACPI: APIC F5E3E998, 02D4 (r4 LINARO RTSMVEV8        2 LNRO        2)
>>>> (XEN) ACPI: SPCR F5E3FF98, 0050 (r2 LINARO RTSMVEV8        2 LNRO        2)
>>>> (XEN) Domain heap initialised
>>>
>>>> ...
>>>> [    0.000000] ACPI: SPCR 0x00000000F5E3FF98 000050 (v02 LINARO RTSMVEV8 00000002 LNRO 00000002)
>>>> [    0.000000] ACPI: SPCR: console: pl011,mmio32,0x1c090000,115200
>>>> ...
>>>>
>>>> Hopefully this answers your question. :)
>>>
>>> Thanks for the attempt at answering, but the SPCR entry tells me there is
>>> a substantial portion of ACPI/UEFI functionality you're not testing.  I'm
>>> specifically looking for framebuffer console support and SPCR says you're
>>> using serial console.  While serial console is appropriate for true
>>> servers, for some use cases it is inadequate.
>>
>> We don't have any support for framebuffer in Xen on Arm (even for
>> Device-Tree). I would be happy to consider any patches if you are plan
>> to post some.
>>
>>>
>>> Julien Grall and Stefano Stabellini had been proposing doing ACPI table
>>> parsing in a stub domain, but I'm unaware of the status.  Not finding
>>> much suggests it hasn't gone very far yet.
>>
>> This was a very early proposal in case we needed to parse the DSDT in
>> Xen. This hasn't been needed so far, hence why this is not implemented
>> and no-one worked on it.
>>
>> I am not very familiar how the framebuffer is detected in ACPI. Can you
>> provide more details on what exactly you want to parse?
> 
> I don't think there's any ACPI support involved there. Instead UEFI data
> needs propagating to Dom0, as that can't access EFI boot services itself.
> At least this is all that's needed on the x86 side (and all the needed
> code is there, just presumably not [fully] wired up on Arm).

Thanks for the feedback. At the moment, we don't enable EFI runtime 
services nor propagate it to Dom0. So this needs to be wired up.

However, for Elliott's case, I am not sure this is going to sufficient. 
The Raspberry PI has some devices that can only DMA into the first 1GB 
of the RAM (the GPU seems to be one). So we need to make sure Xen is 
allocating enough memory for Dom0 below that limit.

Do you have similar problem on x86? If so, how do you deal with it?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 21:31:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 21:31:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226025.390463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmjYr-0005TV-Ov; Mon, 15 Nov 2021 21:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226025.390463; Mon, 15 Nov 2021 21:30:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmjYr-0005TO-Lf; Mon, 15 Nov 2021 21:30:45 +0000
Received: by outflank-mailman (input) for mailman id 226025;
 Mon, 15 Nov 2021 21:30:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hqW4=QC=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1mmjYq-0005TI-HX
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 21:30:44 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 479be685-465b-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 22:30:41 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPS id 1AFLUPjt005882
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Mon, 15 Nov 2021 16:30:31 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.16.1/8.15.2/Submit) id 1AFLUPGj005881;
 Mon, 15 Nov 2021 13:30:25 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 479be685-465b-11ec-a9d2-d9f7a1cc8784
Date: Mon, 15 Nov 2021 13:30:25 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Julien Grall <julien.grall.oss@gmail.com>, Henry Wang <Henry.Wang@arm.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Message-ID: <YZLRcaynroUgDKgW@mattapan.m5p.com>
References: <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <YY6bsu8/y/LeMfg3@mattapan.m5p.com>
 <40474f12-e269-f251-99b1-cb5b0a317bb2@xen.org>
 <YY7ZVPQSTapB7Jnj@mattapan.m5p.com>
 <CAJ=z9a0EooNfXyrNB82_4yT9qnz5fxEJtVN6oUbVyCzjU4hEKA@mail.gmail.com>
 <YY7rfIWPC1PwidMA@mattapan.m5p.com>
 <CAJ=z9a1=V+MKD0a9aTCBvy-1nxKj4TC7ZOg82oBYn1vmfsu23g@mail.gmail.com>
 <YY8O4GOfYg4Bz2CW@mattapan.m5p.com>
 <E6611A60-F092-4D47-8756-7A6A33840B5F@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <E6611A60-F092-4D47-8756-7A6A33840B5F@arm.com>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=3.4.5
X-Spam-Checker-Version: SpamAssassin 3.4.5 (2021-03-20) on mattapan.m5p.com

On Mon, Nov 15, 2021 at 10:06:20AM +0000, Bertrand Marquis wrote:
> 
> > On 13 Nov 2021, at 01:03, Elliott Mitchell <ehem+xen@m5p.com> wrote:
> > 
> > On Fri, Nov 12, 2021 at 11:00:54PM +0000, Julien Grall wrote:
> >> On Fri, 12 Nov 2021 at 22:32, Elliott Mitchell <ehem+xen@m5p.com> wrote:
> >>>> My preference is to introduce a per-platform quirk (I believe Stefano was happy
> >>>> with this). The advantage is we could get ACPI support for your board hopefully
> >>>> merged quicker.
> >>> 
> >>> This could be workable as a temporary workaround.  Longer term I suspect
> >>> it might well be rather better to *fully* tackle the issue *now*.
> >>> Otherwise this seems likely to turn into a database of board-specific
> >>> hacks for hundreds or thousands of devices.
> >> 
> >> As usual, you have to find a balance between cost vs benefits.
> >> 
> >> If you look at the Device-Tree side, we don' t have many platforms
> >> requiring quirks.
> >> In particular, the DMA is so far strictly limited to a single platform (RPI).
> >> So I would be surprised if we suddenly require tons of quirks when using
> >> ACPI.
> > 
> > Presently the DMA quirk would be the only consumer, but there will likely
> > be other consumers later.  Might there be few device-tree quirks due to a
> > short list of platforms?  Might full ACPI support vastly increase
> > Xen/ARM's target audience?  (partially ACPI so complex to support so many
> > varied devices)
> 
> We have been looking at the possibility to have ACPI support in Xen.
> The main problem with that is the cost in lines of code in Xen which would be high
> and as a consequence the maintenance cost would be high.
> So if anything is done it must stay properly limited using ifdefs to make sure people
> needing a ???small??? xen can still have one.
> 
> Now I am on the same side as Julien, I would be very happy to help reviewing if you
> decide to do the work :-)

I'm getting the impression everyone knows Xen/ARM urgently needs full
ACPI/UEFI support, just everyone has figured out adequate short-term
workarounds.  As such everyone keeps making small investments into
keeping their short-term workarounds in place, hoping someone else will
fall on the ACPI/UEFI grenade and save everyone.

This sounds suspiciously like the classic Tragedy of the Commons
situation.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Mon Nov 15 22:00:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 22:00:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226030.390475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmk1q-0000CD-4e; Mon, 15 Nov 2021 22:00:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226030.390475; Mon, 15 Nov 2021 22:00:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmk1q-0000C6-1I; Mon, 15 Nov 2021 22:00:42 +0000
Received: by outflank-mailman (input) for mailman id 226030;
 Mon, 15 Nov 2021 22:00:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J9Y9=QC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mmk1o-0000C0-UQ
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 22:00:40 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 77462078-465f-11ec-a9d2-d9f7a1cc8784;
 Mon, 15 Nov 2021 23:00:39 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 15C1761101;
 Mon, 15 Nov 2021 22:00:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77462078-465f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637013637;
	bh=QcEVaIeufcWxIgJ7fhLT6F+X+VspDTBYdfr58Qef0qY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Pu6QjHCOWruMsiF76T+VtLW51Fkc4STTTGpyRwJzfmxO6DoYf68JWgt5/+ysWxIN5
	 Wo0sLabGzv63v4Sb6dee3E14m6oD33zDdMzRqniZ6YTFu3pgVfaZJn6BDC+U3r6tc/
	 fT2Pd3epW9B+bBQt1j1IVlACyA4ysFjpzQ1GjNlD2GbtgvHSCZ50HAXnaXdLiCPcVp
	 ECXhrn9esaz0eUMXaRsqPzOU+JGtwzkhaH4e3vVEjrVmD38hW47ca91q+svrbaIBYD
	 WKFeY8MjIwytVoX85O/D02xCsTgC3KXtRoKZhaGGNPGevpv0IVeaFDSu+OCxsgDo3O
	 xWfZRr/Bvs3iA==
Date: Mon, 15 Nov 2021 14:00:36 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>, iwj@xenproject.org
cc: Luca Fancellu <luca.fancellu@arm.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Jan Beulich <jbeulich@suse.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <a07ff375-b910-0d73-e957-15ba9d2535fe@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111151359360.1412361@ubuntu-linux-20-04-desktop>
References: <20211104141206.25153-1-luca.fancellu@arm.com> <81685961-501e-7a41-6f6f-bc4491645264@suse.com> <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop> <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop> <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com> <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop> <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop> <9bd58aa4-602b-4c64-e759-581513909457@suse.com> <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop> <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop> <3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com> <010fa02f-e561-e7a8-9638-5246db9166b4@xen.org> <725F3F68-A1CE-42FB-9C8A-0700CDD02E8E@arm.com>
 <a07ff375-b910-0d73-e957-15ba9d2535fe@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1769970815-1637013637=:1412361"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1769970815-1637013637=:1412361
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

+Ian

On Mon, 15 Nov 2021, Julien Grall wrote:
> Hi Luca,
> 
> On 10/11/2021 14:02, Luca Fancellu wrote:
> > 
> > 
> > > On 10 Nov 2021, at 13:36, Julien Grall <julien@xen.org> wrote:
> > > 
> > > Hi Luca,
> > > 
> > > On 10/11/2021 13:05, Luca Fancellu wrote:
> > > > I thought having the EFI_FILE_HANDLE global in efi-boot.h was a “no go”,
> > > > but if it’s not then instead of
> > > > calling get_parent_handle in efi_check_dt_boot (that is the main issue
> > > > with EDK2+Grub2), we can do
> > > > something like this:
> > > 
> > > fs_dir_handle is only used by callees of efi_check_boot_dt_boot(). So the
> > > global variable is not an option for me because the risk is not worth it
> > > (it is easy to misuse a global variable).
> > > 
> > > Instead, I think fs_dir_handle should be an argument of
> > > allocate_module_file() and propagated up to the first call in
> > > efi_check_dt_boot().
> > > 
> > 
> > Yes you are right, changing the interface of handle_dom0less_domain_node,
> > handle_module_node, allocate_module_file to host also an argument
> > EFI_FILE_HANDLE *dir_handle
> > avoids the use of the global, then the handle is requested in
> > allocate_module_file only once and closed in efi_check_dt_boot only if it’s
> > not null.
> 
> That would indeed be better. I'd like this patch to be merged in 4.16. Would
> you be able to send a new version in the next couple of days?

I'd love that too; adding Ian so that he is aware.
--8323329-1769970815-1637013637=:1412361--


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 22:05:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 22:05:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226035.390486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmk6C-0000qr-MC; Mon, 15 Nov 2021 22:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226035.390486; Mon, 15 Nov 2021 22:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmk6C-0000qk-In; Mon, 15 Nov 2021 22:05:12 +0000
Received: by outflank-mailman (input) for mailman id 226035;
 Mon, 15 Nov 2021 22:05:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Jrjg=QC=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmk6A-0000qe-VH
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 22:05:10 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 182837e0-4660-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 23:05:09 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:59376)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmk66-000vBn-8e (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 15 Nov 2021 22:05:06 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 1A2CD1FC18;
 Mon, 15 Nov 2021 22:05:06 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 182837e0-4660-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
To: Jan Beulich <jbeulich@suse.com>
Cc: Ian Jackson <iwj@xenproject.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>,
 Jane Malalane <jane.malalane@citrix.com>
References: <20211110091935.16906-1-jane.malalane@citrix.com>
 <d1978235-f025-19ac-707c-c2e411a5a005@srcf.net>
 <008467ea-75af-acb5-62af-bd1db03ccc68@suse.com>
 <790bf907-8c6e-b8cc-6832-b8fe21af536b@srcf.net>
 <628731e2-fa81-4f75-3806-900e70988f53@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] xen/cpufreq: Reset policy after enabling/disabling turbo
 status
Message-ID: <085b8bd9-2714-df0a-862d-00b8b1a230a3@srcf.net>
Date: Mon, 15 Nov 2021 22:05:05 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <628731e2-fa81-4f75-3806-900e70988f53@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB

On 15/11/2021 16:21, Jan Beulich wrote:
> On 15.11.2021 15:33, Andrew Cooper wrote:
>> On 15/11/2021 10:53, Jan Beulich wrote:
>>> On 12.11.2021 19:51, Andrew Cooper wrote:
>>>> On 10/11/2021 09:19, Jane Malalane wrote:
>>>>> Before, user would change turbo status but this had no effect: bool=
ean
>>>>> was set but policy wasn't reevaluated.  Policy must be reevaluated =
so
>>>>> that CPU frequency is chosen according to the turbo status and the
>>>>> current governor.
>>>>>
>>>>> Therefore, add __cpufreq_governor() in cpufreq_update_turbo().
>>>>>
>>>>> Reported-by: <edvin.torok@citrix.com>
>>>>> Signed-off-by: <jane.malalane@citrix.com>
>>>>> ---
>>>>> CC: Jan Beulich <jbeulich@suse.com>
>>>>> CC: Ian Jackson <iwj@xenproject.org>
>>>>> ---
>>>>>
>>>>> Release rationale:
>>>>> Not taking this patch means that turbo status is misleading.
>>>>>
>>>>> Taking this patch is low-risk as it only uses a function that alrea=
dy
>>>>> exists and is already used for setting the chosen scaling governor.=

>>>>> Essentially, this change is equivalent to running 'xenpm
>>>>> en/disable-turbo-mode' and, subsequently, running 'xenpm
>>>>> set-scaling-governor <current governor>'.
>>>>> ---
>>>>>  xen/drivers/cpufreq/utility.c | 6 +++++-
>>>>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/ut=
ility.c
>>>>> index b93895d4dd..5f200ff3ee 100644
>>>>> --- a/xen/drivers/cpufreq/utility.c
>>>>> +++ b/xen/drivers/cpufreq/utility.c
>>>>> @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_s=
tate)
>>>>>      {
>>>>>          ret =3D cpufreq_driver.update(cpuid, policy);
>>>>>          if (ret)
>>>>> +        {
>>>>>              policy->turbo =3D curr_state;
>>>>> +            return ret;
>>>>> +        }
>>>>>      }
>>>>> =20
>>>>> -    return ret;
>>>>> +    /* Reevaluate current CPU policy. */
>>>>> +    return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS);
>>>>>  }
>>>> So, having looked through the manual, what the cpufreq_driver does f=
or
>>>> turbo on Intel is bogus according to the SDM.
>>>>
>>>> There is a non-architectrual dance with IA32_MISC_ENABLE bit 38 (per=

>>>> package) for firmware to configure turbo, but it manifests as anothe=
r
>>>> dynamic CPUID bit (which I think we handle correctly).=C2=A0 It has =
the same
>>>> semantics as XD_DISABLE and CPUID_LIMIT so we might want to consider=

>>>> adding it to the set of bits we clear during boot.
>>> This is quite confusing in the docs - at least one of the tables call=
s
>>> the bit "IDA Disable", while other entries at least also refer to the=

>>> effect of disabling IDA. I'm afraid I have trouble connecting turbo
>>> mode and IDA disabling, unless both are two different names of the
>>> same thing. Maybe they really are, except that SDM vol 2 uses yet
>>> another slightly different term for CPUID[6].EAX[1]: "Intel Turbo Boo=
st
>>> Technology".
>> SDM Vol3 14.3 uses IDA and turbo interchangeably in some cases.=C2=A0 =
It
>> reads as if IDA is the general technology name, and turbo is a sub-mod=
e
>> for "doing it automatically without software involvement".
>>
>> On CPUs which support IDA, the CPUID bit is !MISC_ENABLE[38], with
>> further adds to the confusion of which is which.
>>
>>>> However, the correct way to turn off turbo is to set
>>>> IA32_PERF_CTL.TURBO_DISENGAGE bit, which is per logical processor.=C2=
=A0 As
>>>> such, it *should* behave far more like the AMD CPB path.
>>> I'm afraid public documentation has no mention of a bit of this name.=

>>> Considering the above I wonder whether you mean "IDA engage" (bit 32)=
,
>>> albeit this doesn't seem very likely when you're taking about a
>>> "disengage" bit.
>> It is that bit.=C2=A0 Despite the name given in Vol4 Table 2-12, it is=
 "set
>> to disable".
>>
>> Vol3 Figure 14-2 explicitly calls it the "IDA/Turbo disengage" bit and=

>> the surrounding text makes it clear that it is disable bit, not an
>> enable bit.=C2=A0 Also, that's how the Linux intel_pstate driver uses =
it.
> Okay, then I agree with the proposal you've made.

I've just done some experimentation on a Intel(R) Xeon(R) E-2288G (CFL-R
based), and both the MISC_ENABLE and PERF_CTL bits have the same effect,
and cut nearly 1GHz off the APERF/MPERF reported frequency on a busy
single core on an otherwise idle system.

I have not checked the effect that PERF_CTL on thread 0 has on other
threads in the package, but the reality is that ~100% of production use
of these controls are for all CPUs at once.=C2=A0 (So much so, that I rea=
lly
think the interface ought to gain a -1 sentential for "all cpus", rather
than forcing userspace to loop over each cpu individually, when Xen can
handle the entire loop in O(1) time.)

~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Nov 15 22:25:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 22:25:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226040.390496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmkPX-00039E-B2; Mon, 15 Nov 2021 22:25:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226040.390496; Mon, 15 Nov 2021 22:25:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmkPX-000397-7p; Mon, 15 Nov 2021 22:25:11 +0000
Received: by outflank-mailman (input) for mailman id 226040;
 Mon, 15 Nov 2021 22:25:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J9Y9=QC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mmkPW-000391-Rn
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 22:25:10 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3dfbe53-4662-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 23:25:09 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id C7A9661B5E;
 Mon, 15 Nov 2021 22:25:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3dfbe53-4662-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637015108;
	bh=vJSsxRlroSa+Wf1PfSlk5Zcswft53H0QxDAKhSabyYs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=BmWjiqc3dkXXeSpniJ6dzODtEuEJtDZJf1qW9i1Q5p2kyyOHXLaJn0rzSjli3lMUB
	 eXGwsX2Bjd0ZfgH5ZDJhCi9ZLTWo5zlr3AVgbjrJN92qY1dwwF++LJJ//g0ugs0Tri
	 WILh8gR3RXxVviHiDaTgOmbYjIpCdmtVhW34SPkG9OjdRj5t1u3OqmnV/EczLUcU1T
	 BktqC0+BvkXPC56RsyKujUDfmYijhLIBaTr2j62PZCWG3aOvNVY9aU+kIn1Oe3xljW
	 CcT+Pa4JMh59X4eQxVu26jrismAF1mULzxs4gPL3gFFD5LTphRR7LQ2wIHB7c1XqoR
	 Pz4icykEWV/3w==
Date: Mon, 15 Nov 2021 14:25:06 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, boris.ostrovsky@oracle.com, 
    xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Stefano Stabellini <stefano.stabellini@xilinx.com>, Stable@vger.kernel.org, 
    jgross@suse.com
Subject: Re: [PATCH] xen: don't continue xenstore initialization in case of
 errors
In-Reply-To: <6be8285f-6cbe-c115-a826-585664c91022@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111151424510.1412361@ubuntu-linux-20-04-desktop>
References: <20211112214709.1763928-1-sstabellini@kernel.org> <6be8285f-6cbe-c115-a826-585664c91022@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 15 Nov 2021, Jan Beulich wrote:
> On 12.11.2021 22:47, Stefano Stabellini wrote:
> > --- a/drivers/xen/xenbus/xenbus_probe.c
> > +++ b/drivers/xen/xenbus/xenbus_probe.c
> > @@ -983,8 +983,10 @@ static int __init xenbus_init(void)
> >  	 */
> >  	proc_create_mount_point("xen");
> >  #endif
> > +	return err;
> 
> Personally I think such cases would better be "return 0". With
> that done here, err's initializer could (imo should) then also
> be dropped.

I'll make both changes in the next version


> >  out_error:
> > +	xen_store_domain_type = XS_UNKNOWN;
> >  	return err;
> >  }
> >  
> > 
> 


From xen-devel-bounces@lists.xenproject.org Mon Nov 15 22:27:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Nov 2021 22:27:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226044.390507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmkRh-0003li-Nm; Mon, 15 Nov 2021 22:27:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226044.390507; Mon, 15 Nov 2021 22:27:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmkRh-0003lb-Ko; Mon, 15 Nov 2021 22:27:25 +0000
Received: by outflank-mailman (input) for mailman id 226044;
 Mon, 15 Nov 2021 22:27:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J9Y9=QC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mmkRg-0003lT-J7
 for xen-devel@lists.xenproject.org; Mon, 15 Nov 2021 22:27:24 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 33a3e441-4663-11ec-9787-a32c541c8605;
 Mon, 15 Nov 2021 23:27:23 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 9E25361B4C;
 Mon, 15 Nov 2021 22:27:21 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33a3e441-4663-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637015242;
	bh=X4nf6zOoRNxUt/0DyKF3TZAqtdB9crSvaHwx2vHHoeg=;
	h=From:To:Cc:Subject:Date:From;
	b=pd4lBh9Jlq3BumV0u9ymaqhndjHBORLGS5XL4sE8bdkXdYujxQz0W1Cp7IeDY5kW5
	 j5bMrtjcNWiv00YhWPq7TQt2KUTcFj0DdoN/1fyqXxYlXXJAVobITAlE4vRaZvI4YY
	 5YsOA8z1+VgZPrJqFkyS6RIxbtCeV8hrr8mmaz8+xLCudLguch2u23Dyeq5lXDE2rK
	 JMLFNC9OawT+tuj14ujpzjU0czDvKd18Gt6qZT/+wSjZ/9AGj0zx8c7Rl1mA2Vzjji
	 6QBl0Tb515an6Ecu2B9EdVaxgZiCzdoDmrO6q5c2CTXNx2WrEYKFE8Q+pSDQIdn8Tq
	 VzzkvMiNvMAYw==
From: Stefano Stabellini <sstabellini@kernel.org>
To: jgross@suse.com
Cc: boris.ostrovsky@oracle.com,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	sstabellini@kernel.org,
	Stefano Stabellini <stefano.stabellini@xilinx.com>,
	Stable@vger.kernel.org,
	jbeulich@suse.com
Subject: [PATCH v2] xen: don't continue xenstore initialization in case of errors
Date: Mon, 15 Nov 2021 14:27:19 -0800
Message-Id: <20211115222719.2558207-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

In case of errors in xenbus_init (e.g. missing xen_store_gfn parameter),
we goto out_error but we forget to reset xen_store_domain_type to
XS_UNKNOWN. As a consequence xenbus_probe_initcall and other initcalls
will still try to initialize xenstore resulting into a crash at boot.

[    2.479830] Call trace:
[    2.482314]  xb_init_comms+0x18/0x150
[    2.486354]  xs_init+0x34/0x138
[    2.489786]  xenbus_probe+0x4c/0x70
[    2.498432]  xenbus_probe_initcall+0x2c/0x7c
[    2.503944]  do_one_initcall+0x54/0x1b8
[    2.507358]  kernel_init_freeable+0x1ac/0x210
[    2.511617]  kernel_init+0x28/0x130
[    2.516112]  ret_from_fork+0x10/0x20

Cc: <Stable@vger.kernel.org>
Cc: jbeulich@suse.com
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
Changes in v2:
- use return 0 for the success case
- remove err initializer as it is not useful any longer
---
 drivers/xen/xenbus/xenbus_probe.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index bd003ca8acbe..5967aa937255 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -909,7 +909,7 @@ static struct notifier_block xenbus_resume_nb = {
 
 static int __init xenbus_init(void)
 {
-	int err = 0;
+	int err;
 	uint64_t v = 0;
 	xen_store_domain_type = XS_UNKNOWN;
 
@@ -983,8 +983,10 @@ static int __init xenbus_init(void)
 	 */
 	proc_create_mount_point("xen");
 #endif
+	return 0;
 
 out_error:
+	xen_store_domain_type = XS_UNKNOWN;
 	return err;
 }
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 00:37:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 00:37:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226049.390519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmmSh-0007bj-DU; Tue, 16 Nov 2021 00:36:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226049.390519; Tue, 16 Nov 2021 00:36:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmmSh-0007bc-AQ; Tue, 16 Nov 2021 00:36:35 +0000
Received: by outflank-mailman (input) for mailman id 226049;
 Tue, 16 Nov 2021 00:36:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KMVQ=QD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mmmSf-0007Zz-6H
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 00:36:33 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d6e18e3-4675-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 01:36:31 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 20DF161507;
 Tue, 16 Nov 2021 00:36:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d6e18e3-4675-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637022989;
	bh=iXN4h1U4RGVFZxEgDGeu3XUJxBca60SFwQvHlW7aNbY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=nzz+IxQvxm8A+MD2Z5DEF1qRx4tYOwV6Q9GozexSQCh1DFapy/iLUtZKdeVuMGgTy
	 To4F+Sjy2XrMo6IUwCPzpvuDa7/8XX/LDdx+Gh9uwWV2XGeAWDn2hTE/RBrcrRj00b
	 wZEwaGwCRPi3MeImnK0bJh2EVMnqhSdVI0MEzFgVELKVk3RHiMOI7v9ToAgmRNhgpf
	 ltCp89wUpTnnlhTV1hQb0IbAjwN1xg0HnRhpA2/JIsBsA9akils7Rp5ip+Cuuapoul
	 IvfNvIDHuC4Z1eH5pu0f3FoUojlJTx8TNLEvVEsr2M1K69poQhjLpI58cjK95P7SAy
	 hjo/FmfgiaWsg==
Date: Mon, 15 Nov 2021 16:36:27 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Jan Beulich <JBeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH 3/5] xen/sort: Switch to an extern inline
 implementation
In-Reply-To: <409d2c17-d1e7-40b3-226a-b6ca4c0a15bf@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111151632160.1412361@ubuntu-linux-20-04-desktop>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com> <20211111175740.23480-4-andrew.cooper3@citrix.com> <409d2c17-d1e7-40b3-226a-b6ca4c0a15bf@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 11 Nov 2021, Julien Grall wrote:
> On 11/11/2021 17:57, Andrew Cooper wrote:
> > There are exactly 3 callers of sort() in the hypervisor.
> > 
> > Both arm callers pass in NULL for the swap function.  While this might seem
> > like an attractive option at first, it causes generic_swap() to be used
> > which
> > forced a byte-wise copy.  Provide real swap functions which the compiler can
> > optimise sensibly.
> 
> I understand the theory, but none of the two calls are in hot paths or deal
> with large set on Arm. So I am rather hesitant to introduce specialised swap
> in each case as it doesn't seem we will gain much from this change.

While I like Andrew's optimization, like Julien, I would also rather not
have to introduce specialized swap functions any time a sort() is
called. Why not keeping around generic_swap as extern gnu_inline in
sort.h as well so that the ARM callers can simply:

    sort(bootinfo.mem.bank, bootinfo.mem.nr_banks, sizeof(struct membank),
         cmp_memory_node, generic_swap);

?

That looks like a good option, although it would still result in a
small increase in bloat.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 00:41:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 00:41:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226054.390530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmmXX-0000YR-16; Tue, 16 Nov 2021 00:41:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226054.390530; Tue, 16 Nov 2021 00:41:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmmXW-0000YK-TM; Tue, 16 Nov 2021 00:41:34 +0000
Received: by outflank-mailman (input) for mailman id 226054;
 Tue, 16 Nov 2021 00:41:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=G1Gk=QD=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmmXW-0000Wv-8S
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 00:41:34 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f112a2f2-4675-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 01:41:31 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:36598)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmmXO-000aIX-mT (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 16 Nov 2021 00:41:26 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 417401FDB0;
 Tue, 16 Nov 2021 00:41:25 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f112a2f2-4675-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Subject: Re: [PATCH 3/5] xen/sort: Switch to an extern inline implementation
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-4-andrew.cooper3@citrix.com>
 <409d2c17-d1e7-40b3-226a-b6ca4c0a15bf@xen.org>
 <alpine.DEB.2.22.394.2111151632160.1412361@ubuntu-linux-20-04-desktop>
From: Andrew Cooper <amc96@srcf.net>
Message-ID: <5816e643-450e-1433-d58c-b12a286fb237@srcf.net>
Date: Tue, 16 Nov 2021 00:41:24 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111151632160.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB

On 16/11/2021 00:36, Stefano Stabellini wrote:
> On Thu, 11 Nov 2021, Julien Grall wrote:
>> On 11/11/2021 17:57, Andrew Cooper wrote:
>>> There are exactly 3 callers of sort() in the hypervisor.
>>>
>>> Both arm callers pass in NULL for the swap function.  While this might seem
>>> like an attractive option at first, it causes generic_swap() to be used
>>> which
>>> forced a byte-wise copy.  Provide real swap functions which the compiler can
>>> optimise sensibly.
>> I understand the theory, but none of the two calls are in hot paths or deal
>> with large set on Arm. So I am rather hesitant to introduce specialised swap
>> in each case as it doesn't seem we will gain much from this change.
> While I like Andrew's optimization, like Julien, I would also rather not
> have to introduce specialized swap functions any time a sort() is
> called. Why not keeping around generic_swap as extern gnu_inline in
> sort.h as well so that the ARM callers can simply:
>
>     sort(bootinfo.mem.bank, bootinfo.mem.nr_banks, sizeof(struct membank),
>          cmp_memory_node, generic_swap);
>
> ?
>
> That looks like a good option, although it would still result in a
> small increase in bloat.

That is basically what Jan suggested.

I'm still unconvinced that you actually want to be doing byte-wise
swapping, even if it isn't a hotpath.  A custom swap function will
compile to less code than using generic_swap() like this, and run faster.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 00:41:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 00:41:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226055.390541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmmXe-0000s4-BY; Tue, 16 Nov 2021 00:41:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226055.390541; Tue, 16 Nov 2021 00:41:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmmXe-0000rv-80; Tue, 16 Nov 2021 00:41:42 +0000
Received: by outflank-mailman (input) for mailman id 226055;
 Tue, 16 Nov 2021 00:41:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KMVQ=QD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mmmXc-0000Wv-Te
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 00:41:40 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f590bb4f-4675-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 01:41:39 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 545B0619EA;
 Tue, 16 Nov 2021 00:41:38 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f590bb4f-4675-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637023298;
	bh=C3upJzX6Q1e3zMPk2YW2dIezpZ0wVVheV1q1lvp+Y+s=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=BugDHag3koAFCi310v7EWwt7m8oBhxTiZ68L4Teay6eHqdSwDdTo2LjnMQdMT7qfO
	 6+6IqX68DHWJLpdcj+zl3OY1Sc+KV5UXApjRxYlURkdfz6sAJc4rZAwgT0y0V8UeuK
	 1y+iPRM2f7OsZ0xEAt/eYPP9/8UbW3UoHxToV+o+r4z5gwVvX4tvlrSA7P6tJiqIIn
	 JsQ209JKiew/xu+VX+kjee3Y45KNcW9L949AJVDQT0f1TkhhkEJvnKylm5IOxOswco
	 OKd6zvPVsguKZ04OsBz0h+FslLBGXHQCpR31rAaszEzlY6HxViGklY98Ob2dQq1Dqu
	 teShnnVkguFEw==
Date: Mon, 15 Nov 2021 16:41:37 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
In-Reply-To: <fc9fd8d6-7461-367c-01c6-f4c852e13f54@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111151637330.1412361@ubuntu-linux-20-04-desktop>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com> <20211111175740.23480-2-andrew.cooper3@citrix.com> <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com> <a1b2aa1b-7d8a-4ab6-cde5-25581ee9841c@suse.com> <C3FB48C2-F619-48A2-9268-F0938405133C@arm.com>
 <fc9fd8d6-7461-367c-01c6-f4c852e13f54@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 15 Nov 2021, Jan Beulich wrote:
> On 15.11.2021 11:23, Bertrand Marquis wrote:
> > Hi Jan,
> > 
> >> On 15 Nov 2021, at 10:20, Jan Beulich <jbeulich@suse.com> wrote:
> >>
> >> On 15.11.2021 11:13, Bertrand Marquis wrote:
> >>>> On 11 Nov 2021, at 17:57, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
> >>>> --- a/xen/common/domain.c
> >>>> +++ b/xen/common/domain.c
> >>>> @@ -1234,15 +1234,18 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
> >>>>    return 0;
> >>>> }
> >>>>
> >>>> -static void do_domain_pause(struct domain *d,
> >>>> -                            void (*sleep_fn)(struct vcpu *v))
> >>>> +static void _domain_pause(struct domain *d, bool sync /* or nosync */)
> >>>
> >>> Here you use comments inside the function definition.
> >>> I think this is something that should be avoided and in this specific case a
> >>> boolean sync is clear enough not to need to explain that false is nosing.
> >>
> >> While I agree the comment here isn't overly useful, I think ...
> >>
> >>>> @@ -1250,12 +1253,12 @@ static void do_domain_pause(struct domain *d,
> >>>> void domain_pause(struct domain *d)
> >>>> {
> >>>>    ASSERT(d != current->domain);
> >>>> -    do_domain_pause(d, vcpu_sleep_sync);
> >>>> +    _domain_pause(d, true /* sync */);
> >>> Same here.
> >>
> >> ... comments like this one are pretty useful to disambiguate the plain
> >> "true" or "false" (without the reader needing to go look at the function
> >> declaration or definition).
> > 
> > I agree with that but the comment here is useful, it could be added before
> > the call instead of inside it.
> 
> Except the form Andrew has used is the one we've been using elsewhere
> for some time.

Bertrand's comment about MISRA aside, this style of comments doesn't
seem to be covered/allowed by our current CODING_STYLE. It would be good
to keep the CODING_STYLE document up to date: not only it helps us
during reviews, it also helps contributors making sure they don't
violate our guidelines. Moreover CODING_STYLE will certainly turn out
useful when we are going to have MISRA discussion so that we can have an
up-to-date reference of what we currently do and support.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 03:16:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 03:16:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226064.390551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmowZ-00005h-Hh; Tue, 16 Nov 2021 03:15:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226064.390551; Tue, 16 Nov 2021 03:15:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmowZ-00005Z-Ej; Tue, 16 Nov 2021 03:15:35 +0000
Received: by outflank-mailman (input) for mailman id 226064;
 Tue, 16 Nov 2021 03:15:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KMVQ=QD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mmowY-00005T-AO
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 03:15:34 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73eccd89-468b-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 04:15:31 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 5A56A61C12;
 Tue, 16 Nov 2021 03:15:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73eccd89-468b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637032529;
	bh=5uyM56K9C3JTNnFzlCkzis1xhtvK/qU6Vafr+c5TmAc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KRTYrpXmOePMmv+Ce7MvMiyuZIJ7Dbg6kE4ohqK3HOPH0HuCifLCNiufgGA8HSTkB
	 ih5LK1Ceb4pB43t+26SFXdje/v8W8irf2mDVE4zVz2uGnNVyHOUJZo2AEGk8T4wH62
	 AQV5IoUu/nQTKhcxU7D7kfVYsdglRZ9ZB2gGidJN9gYmoUtKE1gTogNiZhX7zm9x04
	 c+KtzY3BXfnthckPFoxqcglO3Gr/oaRkmK55Mn8jZb6rFGHt2KYdv4asx0GJPcfXH3
	 fH+5mtmIXUdQF8ue2ocnpH685cYdFNtFqm6AMwPPbM/IlAR5zOhIc5ogAa4dtHqKUW
	 aNLr38W6dg3Dg==
Date: Mon, 15 Nov 2021 19:15:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Luca Fancellu <luca.fancellu@arm.com>, 
    Vikram Garhwal <fnu.vikram@xilinx.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, bertrand.marquis@arm.com, 
    volodymyr_babchuk@epam.com
Subject: Re: [XEN][RFC PATCH v4 1/1] Update libfdt to v1.6.1
In-Reply-To: <57d10284-cbd0-2867-2c09-9f1f7824d938@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111151415020.1412361@ubuntu-linux-20-04-desktop>
References: <1636702040-116895-1-git-send-email-fnu.vikram@xilinx.com> <1636702040-116895-2-git-send-email-fnu.vikram@xilinx.com> <AE30D3B0-0863-465C-AFBC-8DEB28919A8A@arm.com> <alpine.DEB.2.22.394.2111121400280.1412361@ubuntu-linux-20-04-desktop>
 <57d10284-cbd0-2867-2c09-9f1f7824d938@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-810334440-1637014827=:1412361"
Content-ID: <alpine.DEB.2.22.394.2111151420430.1412361@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-810334440-1637014827=:1412361
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2111151420431.1412361@ubuntu-linux-20-04-desktop>

On Mon, 15 Nov 2021, Julien Grall wrote:
> On 12/11/2021 22:01, Stefano Stabellini wrote:
> > On Fri, 12 Nov 2021, Luca Fancellu wrote:
> > > > On 12 Nov 2021, at 07:27, Vikram Garhwal <fnu.vikram@xilinx.com> wrote:
> > > > 
> > > > Update libfdt to v1.6.1 of libfdt taken from
> > > > git://github.com/dgibson/dtc.
> > > > This update is done to support device tree overlays.
> > > > 
> > > > A few minor changes are done to make it compatible with Xen:
> > > >     fdt_overlay.c: overlay_fixup_phandle()
> > > > 
> > > >         Replace strtoul() with simple_strtoul() as strtoul() is not
> > > > available in
> > > >         Xen lib and included lib.h.
> > > > 
> > > >         Change char *endptr to const char *endptr. This change is
> > > > required for
> > > >         using simple_strtoul().
> > > > 
> > > >     libfdt_env.h:
> > > >         Remaining Xen changes to libfdt_env.h carried over from existing
> > > >         libfdt (v1.4.0)
> > > 
> > > Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> > > 
> > > I’ve also tested it on FVP and on a Juno board, starting few guests and it
> > > worked.
> > > 
> > > Tested-by: Luca Fancellu <luca.fancellu@arm.com>
> > 
> > Thanks Luca! The patch also passes the gitlab-ci tests and looks OK to
> > me. I'll let Julien ack it as he was the one with a couple of comments
> > before.
> 
> The next version addressed my comments. So:
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>
> 
> I have also queued the patch in a temporary branch for-next/4.17:
> 
> https://xenbits.xen.org/gitweb/?p=people/julieng/xen-unstable.git;a=shortlog;h=refs/heads/for-next/4.17
> 
> The patch will land in staging when the tree re-opens.

Hey Julien,

Thanks for that!

Do you think it would make sense to keep "for-next/4.17" under
xen-integration [1] so that we can easily trigger gitlab-ci runs on it?

I cannot setup an automatic mirror of your branch on xen-integration
because xen-integration is already mirroring upstream xen.git. For now,
I have just manually pushed:
https://gitlab.com/xen-project/fusa/xen-integration/-/tree/for-next/4.17

Which triggered (all green):
https://gitlab.com/xen-project/fusa/xen-integration/-/pipelines/409417946

FYI you should have full rights to push and make edits on
xen-integration.


[1] https://gitlab.com/xen-project/fusa/xen-integration
--8323329-810334440-1637014827=:1412361--


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 04:42:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 04:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226069.390563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmqIp-0008Ni-2w; Tue, 16 Nov 2021 04:42:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226069.390563; Tue, 16 Nov 2021 04:42:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmqIo-0008Nb-VM; Tue, 16 Nov 2021 04:42:38 +0000
Received: by outflank-mailman (input) for mailman id 226069;
 Tue, 16 Nov 2021 04:42:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmqIn-0008NR-Ik; Tue, 16 Nov 2021 04:42:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmqIn-0002SN-D9; Tue, 16 Nov 2021 04:42:37 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmqIn-00057Y-5I; Tue, 16 Nov 2021 04:42:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmqIn-0007Px-4o; Tue, 16 Nov 2021 04:42:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dKqivheNS9klnsKu/SNRJBrhMLEdsun8V7n1BaXJ6nQ=; b=h/ABtRYRly3NGisupTnyHm3WEK
	DZNUzZYjM/ORS9IkHXooerO90KotktJ+48x1BvaXlFpHkg4lyv8KQ8ePu/UB/fErPF6ZPh1tuXxv3
	A4+eQYBm8IA47BdVkJHEQnDIEvvR18dSr/k+PajqJxWKx212LkzSIIt0UwuuWjTaThjM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166151-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166151: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8ab774587903771821b59471cc723bba6d893942
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Nov 2021 04:42:37 +0000

flight 166151 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166151/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166149

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                8ab774587903771821b59471cc723bba6d893942
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   14 days
Failing since        165992  2021-11-02 05:40:21 Z   13 days   22 attempts
Testing same since   166149  2021-11-15 06:45:03 Z    0 days    2 attempts

------------------------------------------------------------
2166 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 250693 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:32:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:32:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226077.390599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms17-0002V9-6h; Tue, 16 Nov 2021 06:32:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226077.390599; Tue, 16 Nov 2021 06:32:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms17-0002Uv-3G; Tue, 16 Nov 2021 06:32:29 +0000
Received: by outflank-mailman (input) for mailman id 226077;
 Tue, 16 Nov 2021 06:32:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms15-0001ym-Ax
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:27 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20601.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6495b7b-46a6-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 07:32:26 +0100 (CET)
Received: from AM5PR0101CA0019.eurprd01.prod.exchangelabs.com
 (2603:10a6:206:16::32) by DU2PR08MB7327.eurprd08.prod.outlook.com
 (2603:10a6:10:2e6::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 06:32:21 +0000
Received: from VE1EUR03FT006.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:206:16:cafe::3) by AM5PR0101CA0019.outlook.office365.com
 (2603:10a6:206:16::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:21 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT006.mail.protection.outlook.com (10.152.18.116) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:20 +0000
Received: ("Tessian outbound de6049708a0a:v110");
 Tue, 16 Nov 2021 06:32:20 +0000
Received: from 9dafb0a6f6de.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 458B4345-CA06-46C2-986B-52038B391A38.1; 
 Tue, 16 Nov 2021 06:32:14 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9dafb0a6f6de.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:14 +0000
Received: from DB7PR02CA0017.eurprd02.prod.outlook.com (2603:10a6:10:52::30)
 by AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 06:32:13 +0000
Received: from DB5EUR03FT022.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:52:cafe::7f) by DB7PR02CA0017.outlook.office365.com
 (2603:10a6:10:52::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:13 +0000
Received: from nebula.arm.com (40.67.248.234) by
 DB5EUR03FT022.mail.protection.outlook.com (10.152.20.171) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 06:32:12 +0000
Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX04.Arm.com
 (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:12 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com
 (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.20; Tue, 16
 Nov 2021 06:32:11 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6495b7b-46a6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LTvbQKFMQheq96sNMPCwR4J14nUtOJ+ZT+GaGaSW1qg=;
 b=W3g0XDkvJWFoFClP89oy6DYOTVcKYYRglsnkM2B7gvA09kJUiMWcEhjkav8YoXi8sHPucY6fm89PlSa9/3/xb+YEIJYp3f2sI5dN/v9jhV8Wbq2tUSb0FOvCxm6wrDsBzFL03fOXS+Ig57DziLULi1v5yunHy4RQvL5yef1p7P4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: c7ad8a9ac52c75f8
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iGKCuuoUFe1wZlab21eyz+2dZV8micQoFYPCAz+OcllGIxQ9J+xJe5DYIgqGQs2sg5dkT+u9qG+2HT1EjvkhrxI9b9MaT4xEt5W8nl0P5pgrpvXccAJiZYQ3wke9fCEr0yFxRzP1eSk/QU2Lma0IAC9LXF69JqKOVf4s+1oid1V47Vx4BBTlpZOeegF1tlWeQb4O7HX7redbOKldEs3z6rSpRdQ2ASnG+oAF8Vi2A8m1XoLFARjIwfni7f3ZwRIuP8thfyJkYXk7mGevsx0C5sbwfJIK2ShPOMPBmWUJ/8+pDHOgcDKsYaMn02M7i6fIcPQe+P1DS+jJo0XphlfCYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LTvbQKFMQheq96sNMPCwR4J14nUtOJ+ZT+GaGaSW1qg=;
 b=aDmWc7g3hH9yNwH1KG/bmRll0VUA8xLklYTgop0oczxQHtGl0qU7z4XhOjLEBDg5zs3grnWwYpM8ZvUkYzdKKwL7N8BV1MJwUh0wEeKbIeUnaW7RnRdNh2srVT71Vlp8dRvgV1dDv1z6e2BX95Q4HvjGhVfU78QrWR4GU6ENAFAt32TnpJNzP1+4rab2JEgM48VloJrSYWK9zh7c1Iz3K2UEWaxb25H4M8uktj1sJbBaHjJ5NioGGJGfgoBqClF0MSEHPRhQuxD2Kkkb33mZktZ+zED/k20f24gZxIBd4TtvjCyrTDw9IMRyxnwlhFVQ3iC0KiYIrklAFDJBEo1oHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LTvbQKFMQheq96sNMPCwR4J14nUtOJ+ZT+GaGaSW1qg=;
 b=W3g0XDkvJWFoFClP89oy6DYOTVcKYYRglsnkM2B7gvA09kJUiMWcEhjkav8YoXi8sHPucY6fm89PlSa9/3/xb+YEIJYp3f2sI5dN/v9jhV8Wbq2tUSb0FOvCxm6wrDsBzFL03fOXS+Ig57DziLULi1v5yunHy4RQvL5yef1p7P4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 02/10] xen/arm: avoid setting XEN_DOMCTL_CDF_iommu when IOMMU off
Date: Tue, 16 Nov 2021 06:31:47 +0000
Message-ID: <20211116063155.901183-3-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d03205a7-5f00-4e03-be81-08d9a8cad7dd
X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:|DU2PR08MB7327:
X-Microsoft-Antispam-PRVS:
	<DU2PR08MB73275B0F53450CF9852325E0F7999@DU2PR08MB7327.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:372;OLM:372;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 yu3iwiXZ2yfULRM7fFSS56omg/WGt8+Xk/rj8PgEjNqzU65+RDIUQFtw7kIslUbAdyNeG3s5ifPPtRwy/n6B8FSFcwk5qMYTmitzdHYp9NGHv0dDTiedHPW0sQt9ovP+8krdPOKvujGS5SNQnIp9hi+4wtF7OUbBRSEC4DTo6hYFR6r1HGAhdI6dYB8fuoGWrt+Fs7AxcH4B8VYe5FhIHVu8BGRbvvbRltTMbO3e/wzfUhdrtpHdTXd+VEMhDQeHtvdXAPWRy8vhKUwKBWs6yTosIh5Ps0jWeQ0rYzcb0mJRBprTcvlKVJv4OG3e0+XeCG9UST3mPzDIx1GHtxwEW5kJZb2gFPJMiGRXwFrQu0S1xCiuA7GLpPQe5waK6tikjHTy/JkNGFuGRhxWFKO9J2WadSI2p5pbw6AJ27yniZAnj9E13KLxDe9HY0GTTUGckUZ1njJg51tcCohfWGS2S3sXAcRG+QAm+4DF2rqj8QgRPR9LY9zLcfllnOzSMxpY7LXINq10GtKDPr8ByHBDkqGFRadhOPS8wBe+32LzgMjEzx97p+WG3rAeboAu18HOBSsRh1xtAwT1vqadigb4McC1G6GaU2I5VyRsTV0gKfzCHz5TobknlFmRwakEzyZZW7TJF5qnIEHkAecJf2+xIPA7/cjBqk4YK9yyy1/Yj9UBWLyOYpSw/RzMmkZOD35EwyWkWh4MFiUsdr/T8n/zb5drIv41IJM6GQAZCH7oXy4=
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(1076003)(356005)(81166007)(336012)(47076005)(2906002)(86362001)(83380400001)(4326008)(7696005)(6666004)(316002)(82310400003)(36860700001)(70586007)(26005)(186003)(54906003)(110136005)(70206006)(8936002)(2616005)(8676002)(5660300002)(426003)(44832011)(36756003)(508600001)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7095
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT006.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4acab256-3561-48c9-a860-08d9a8cad333
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	SIOcJsurzCMMkEG/Ot7jiIYAMJ1i0AECsxKSJRXnD+BNq2AYMEFRLVHI75XJwEGu1BJkA7e+LYBGNBBuhkMF6YNvnvgR0KQjUqcV1bvAA/N9oG/o2ZB83ixvjV7TD6qGFLu4bi3yJr54ZodGNyYWOzibbHZH2wOmrd3wqmMGvEQUrUYDUG/V+Z3U/bXH9EBmMAGnvOHnUEYScZz7xKe6eNpuv4PcQjGLVGbhpdleuTBLBdvydi4CQMnjRMG0C7BSU1JO5jGU9WRxfPgajOMl6NZuFNky8TwZ8IdbzQsTFvbWaseJ/++jTpY22OCmF9uNtgDqS13lhCC6FRmw+ID5oqbOW83PLijemb4ZZd5OvZzcRg9zCWR3BRXp8FJs2b0fN5TpWlcG8SgUL8KJIjYm8zn6Qp7vqxAbhx6lnI89kaHYRmlKJ9pzQl6czuy/LSnLMd8GmmxtNHljmcm2WW9L0ToJUbsP0/36POBzdFOk6VboF5vL/SGQVDrBguNtuVqliWE1TMjHXZu7IqWRDz5f75ox5CVf/AT11ZJ3rQUs9OKO8juUiX8hKuEWl4zOXndmJhb+g3skYYNY96O650plACcAB/rlPDK0PmmLvDBs1legZ/klGauj5z3RivWwcsyRTNeN5CroDRefhRaoT7KdLs+GELJB/GMpT2DXm2aWxQb9AreuHAFBDFs+GLLGhOsKsKygZngdfcCXA/NR/wc29w==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(36756003)(70206006)(82310400003)(54906003)(508600001)(70586007)(4326008)(47076005)(186003)(1076003)(44832011)(426003)(36860700001)(86362001)(6666004)(8936002)(26005)(336012)(110136005)(316002)(2906002)(83380400001)(7696005)(8676002)(5660300002)(81166007)(2616005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:20.7070
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d03205a7-5f00-4e03-be81-08d9a8cad7dd
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT006.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB7327

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

This commit avoids setting XEN_DOMCTL_CDF_iommu when the IOMMU is
absent/disabled, otherwise xen will fail later when handling
device assignment.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
v3 changes:
- new commit, split from the original "[PATCH v2 2/6] xen/arm: introduce
direct-map for domUs"
---
 xen/arch/arm/domain_build.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 664c88ebe4..7a063f62fe 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2996,7 +2996,8 @@ void __init create_domUs(void)
             panic("Missing property 'cpus' for domain %s\n",
                   dt_node_name(node));
 
-        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
+        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") &&
+             iommu_enabled )
             d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
         if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:32:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:32:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226078.390610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms19-0002mu-GO; Tue, 16 Nov 2021 06:32:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226078.390610; Tue, 16 Nov 2021 06:32:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms19-0002mf-Bu; Tue, 16 Nov 2021 06:32:31 +0000
Received: by outflank-mailman (input) for mailman id 226078;
 Tue, 16 Nov 2021 06:32:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms17-0001yg-CV
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:29 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02on0606.outbound.protection.outlook.com
 [2a01:111:f400:fe06::606])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7d418b7-46a6-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 07:32:28 +0100 (CET)
Received: from DB6PR07CA0010.eurprd07.prod.outlook.com (2603:10a6:6:2d::20) by
 DBAPR08MB5591.eurprd08.prod.outlook.com (2603:10a6:10:1ae::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.16; Tue, 16 Nov 2021 06:32:25 +0000
Received: from DB5EUR03FT030.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:6:2d:cafe::b7) by DB6PR07CA0010.outlook.office365.com
 (2603:10a6:6:2d::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.17 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:25 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT030.mail.protection.outlook.com (10.152.20.144) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Tue, 16 Nov 2021 06:32:25 +0000
Received: ("Tessian outbound de6049708a0a:v110");
 Tue, 16 Nov 2021 06:32:25 +0000
Received: from ddebec59dc0d.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 30344C3B-6828-4C08-B442-E2019DF20579.1; 
 Tue, 16 Nov 2021 06:32:19 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ddebec59dc0d.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:19 +0000
Received: from DB7PR02CA0017.eurprd02.prod.outlook.com (2603:10a6:10:52::30)
 by PAXPR08MB7188.eurprd08.prod.outlook.com (2603:10a6:102:20a::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 06:32:17 +0000
Received: from DB5EUR03FT022.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:52:cafe::1d) by DB7PR02CA0017.outlook.office365.com
 (2603:10a6:10:52::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:17 +0000
Received: from nebula.arm.com (40.67.248.234) by
 DB5EUR03FT022.mail.protection.outlook.com (10.152.20.171) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 06:32:17 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com
 (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:16 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7d418b7-46a6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZkcqqN5Zem+x6JLUp8DfQrKdm7HXvI0sldsfin8E4B4=;
 b=18zcGAxCz7QN0h0xTgYnRl/v21J6iKgZHCTVIbPaWuMXc6YF61uDVj88czyBEUdCO6xgvKFAGNLbABK/imlizugkuM+etumaPCmW0qdUM/u58PDtIWuNeBhPQaVBaMFkS8lllzW2pNkzadLwoh7Unudn2aoZv3zoQWQOB84JlZE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 80ca79f1eb9fea95
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hH1cK7fW0KjoBc0bZgXW0DwsBXstKolDTKjrDMjWbntQ1PcSwL9E+UxdZq5Zp+M4+AG5AZvZ2VLiW1SPZW8TqyFBAHIpbU8B9wK9usyshGeC9LcXCgs8wURFd8cqW+JGF9YvLlvK/MhQn0ATyHr1xplc13ug6ZKRFpi+N/9GRqD+GFaUqKt+RgD85Hf/kVTkI0P660tDes/4doy/219Vih6Esau+z6/UQFKhJyeEBgMeyALsaTT0gPHwklJw/6d9yLuLubg+KLzzpwUZjiDQPBTyc1AJISWX+hLs05sCWZRLXsIqMYNWEITSMDfP2nkvQx8aLhc9/6+gNFDm5fIH9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZkcqqN5Zem+x6JLUp8DfQrKdm7HXvI0sldsfin8E4B4=;
 b=PjT27tU2DJiFzqNvdWLZFbB6cS5MSSl1QcisC2EEJV5o7sEz8LeyWY5ilZ6mjvDVYoVNfw94fwJyXNFJicAmlT34IeanB/0hS+rItWmp9wQmww2Jt0m0dPyffgZYfeEeiFuAZ8TtSTM20nvznlr3HjCPBegxnQWTYRUnlU6A6vAkwAGyzlh5a03CMT79aL2hK1tVSnGQTpZ5w/yHBobRn45zga7A+N/QTByYelbUybwM1hFksc1W2jAOAQM8evI/SEcrF9qQY7hr6f1RliqcIaYOwL9UE71WJvHFxUJtEptwHE1fyosrQA5fAjgli/Iei+/itnj6NOHy7/owhowvsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZkcqqN5Zem+x6JLUp8DfQrKdm7HXvI0sldsfin8E4B4=;
 b=18zcGAxCz7QN0h0xTgYnRl/v21J6iKgZHCTVIbPaWuMXc6YF61uDVj88czyBEUdCO6xgvKFAGNLbABK/imlizugkuM+etumaPCmW0qdUM/u58PDtIWuNeBhPQaVBaMFkS8lllzW2pNkzadLwoh7Unudn2aoZv3zoQWQOB84JlZE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 04/10] xen/arm: introduce direct-map for domUs
Date: Tue, 16 Nov 2021 06:31:49 +0000
Message-ID: <20211116063155.901183-5-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e7dd38a2-86f6-4ae0-6908-08d9a8cadaa5
X-MS-TrafficTypeDiagnostic: PAXPR08MB7188:|DBAPR08MB5591:
X-Microsoft-Antispam-PRVS:
	<DBAPR08MB5591D7B637F2F09EEDF95E61F7999@DBAPR08MB5591.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:628;OLM:628;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 IQfjE8X1RLCbFk27gAvCwD6Yi/P7DnTQT0/3c+kBTmHvGtr7N4fgzdjnhSN9rXR/sOFIhPTGGt/iEmJJ3lgUw/D35R6Perhrj6I/i2MqaQK+XgfTisiNRtR1bp8Fh/1v0c5QjF5n9bdo50sw6pYEBSXmBCgTahmHErRn/T9EkfQpZYw4jOVJBDLXeEME9yFzKAckklL9dy6X3+cw1lxo1HtkFGbWHIpditZC8gt/VWD4nA5CxJC5Horgbx7S/GhRkEWC3YTRTKL4an/ABvVOsqlVX5ZlQcK4YTHgm9+uWDRFd2P1nTg0NwYlx7aCNv8c3uQx2iDJdVsl38SKVXeY8hCds/0dCurhgEVMXhqQe/xutTfCWE7QHDWvPN9pBiJT1kzudy3sB1u2a1KrSkkBEjeLTRFOnt94VsTT55tGOzJxOlfusBm9jkSQahvHjxS8ouf73KKBGty/+VaKiYovgAcS6JDuWwmkD5ED5MNMxXMLBE0yBBZ9uNCVf7ShtoyWBN8FJh6wQTLUxxx3Jw5Ng8kA4mmSuDoKdZa+VMFPy61MLSen+yFgwn5TVbEyQq62uHh7mMlwQYRn5p8gaJFf5wpazHH6gLdOvZIo0KkQEuwPlDTLeaSKyyUVaJDo9G0MJe2S+8foo+ukGCchDMXtkp54Kt3I8GYl3RcTFrSEyDYFOIKzTFYwT3GN+khfmSzfVls1UyADMEIKeyGPRDn+PJA8xgMddMuUqAk9Yz0y8ys=
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(36756003)(70206006)(70586007)(82310400003)(54906003)(508600001)(4326008)(47076005)(186003)(1076003)(44832011)(426003)(36860700001)(86362001)(6666004)(8936002)(26005)(336012)(110136005)(316002)(2906002)(83380400001)(7696005)(8676002)(356005)(2616005)(5660300002)(81166007)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7188
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT030.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3d245f33-05e2-493f-b64f-08d9a8cad5c2
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JFyLRJuvv+WX+sTbrKW+Ipe5YNrez6D6gBC3mZpykl4eTfzjgSyWxUEYLzacIgNKkl5VO0+POnaVPKnDKhTWqWovRjrGYZAL4+iCoSoX83gSQQ19hvo3YuxPuugxWRPZThgujpxCepDD7ksLPat7kd60HTTxAzq0GlrsWpESZGCDmOYthxYAxxpV6Xw5vgL05G+TKqlIY+BSozLq7xWoVXsCnZ5EXXurIZTKgYGwfMSqELkmPjjrq8BdBoeZyenCYxd2uuzfPiGr5dY0XpJq3l9G8jP+uiXQRrqfGuuRqn5IJ0OrtFtKNONL3IxCR3NacvEkEHqQ8CE9QsJWSWqf8VOusFzHf1LBIO+grjMh1b19R/5x1nFc1Iq84C6GsIXPK8GfcA3ssgsAHTLLEI3icJkMZg1l651TuSMmbIaIexP58hu6ftzgga/qIxR1rgt4SvcH4O5xlWPFmKE6PniH4/aShf6cg1RWRTt4kLXIqlWV/rrFBJR54s3a2TDwioJFbRd98XGlHrkem1sRMncYaFn5usfFOF2JABl8o6/YUz4lc/2/rysczIeh8Upm3GJILqltyHU9F6xvSLmfwEyXpACIMC+qn0VaO4wixzaREMVVCaDQ4z6FVQirIqvts+Za2agXwjeNMILdWtNJfSvURAM+JzIKFBaTem3Tz0zdYEnTgEl07aLByACO0DTounyVg5NxdvKeW8YH/BCVYpHlCQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(336012)(86362001)(7696005)(4326008)(1076003)(70206006)(26005)(426003)(47076005)(70586007)(8676002)(81166007)(2616005)(5660300002)(316002)(44832011)(508600001)(186003)(6666004)(110136005)(8936002)(36860700001)(54906003)(36756003)(2906002)(82310400003)(83380400001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:25.4689
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e7dd38a2-86f6-4ae0-6908-08d9a8cadaa5
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT030.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5591

Cases where domU needs direct-map memory map:
  * IOMMU not present in the system.
  * IOMMU disabled if it doesn't cover a specific device and all the guests
are trusted. Thinking a mixed scenario, where a few devices with IOMMU and
a few without, then guest DMA security still could not be totally guaranteed.
So users may want to disable the IOMMU, to at least gain some performance
improvement from IOMMU disabled.
  * IOMMU disabled as a workaround when it doesn't have enough bandwidth.
To be specific, in a few extreme situation, when multiple devices do DMA
concurrently, these requests may exceed IOMMU's transmission capacity.
  * IOMMU disabled when it adds too much latency on DMA. For example,
TLB may be missing in some IOMMU hardware, which may bring latency in DMA
progress, so users may want to disable it in some realtime scenario.
  * Guest OS relies on the host memory layout

This commit introduces a new helper allocate_static_memory_11 to allocate
static memory as guest RAM for direct-map domain.

For now, direct-map is only available when statically allocated memory is
used for the domain, that is, "xen,static-mem" must be also defined in the
domain configuration.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
v2 changes:
- split the common codes into two helpers: parse_static_mem_prop and
acquire_static_memory_bank to deduce complexity.
- introduce a new helper allocate_static_memory_11 for allocating static
memory for direct-map guests
- remove redundant use "bool direct_map", to be replaced by
d_cfg.flags & XEN_DOMCTL_CDF_directmap
- remove panic action since it is fine to assign a non-DMA capable device when
IOMMU and direct-map both off
---
v3 changes:
- doc refinement
- drop the pointless gbank
- add check of the size of nr_banks shall not exceed NR_MEM_BANKS
- add ASSERT_UNREACHABLE to catch any misuse
- add another check of validating flag XEN_DOMCTL_CDF_INTERNAL_directmap only
when CONFIG_STATIC_MEMORY is set.
---
 docs/misc/arm/device-tree/booting.txt |   6 ++
 xen/arch/arm/domain_build.c           | 105 +++++++++++++++++++++++++-
 2 files changed, 108 insertions(+), 3 deletions(-)

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index 71895663a4..a94125394e 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -182,6 +182,12 @@ with the following properties:
     Both #address-cells and #size-cells need to be specified because
     both sub-nodes (described shortly) have reg properties.
 
+- direct-map
+
+    Only available when statically allocated memory is used for the domain.
+    An empty property to request the memory of the domain to be
+    direct-map (guest physical address == physical address).
+
 Under the "xen,domain" compatible node, one or more sub-nodes are present
 for the DomU kernel and ramdisk.
 
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 1dc728e848..97a5b5dedd 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -500,8 +500,13 @@ static bool __init append_static_memory_to_bank(struct domain *d,
 {
     int res;
     unsigned int nr_pages = PFN_DOWN(size);
-    /* Infer next GFN. */
-    gfn_t sgfn = gaddr_to_gfn(bank->start + bank->size);
+    gfn_t sgfn;
+
+    if ( !is_domain_direct_mapped(d) )
+        /* Infer next GFN when GFN != MFN. */
+        sgfn = gaddr_to_gfn(bank->start + bank->size);
+    else
+        sgfn = gaddr_to_gfn(mfn_to_maddr(smfn));
 
     res = guest_physmap_add_pages(d, sgfn, smfn, nr_pages);
     if ( res )
@@ -674,12 +679,94 @@ static void __init allocate_static_memory(struct domain *d,
  fail:
     panic("Failed to allocate requested static memory for domain %pd.", d);
 }
+
+/*
+ * Allocate static memory as RAM for one specific domain d.
+ * The static memory will be directly mapped in the guest(Guest Physical
+ * Address == Physical Address).
+ */
+static void __init allocate_static_memory_11(struct domain *d,
+                                             struct kernel_info *kinfo,
+                                             const struct dt_device_node *node)
+{
+    u32 addr_cells, size_cells, reg_cells;
+    unsigned int nr_banks, bank = 0;
+    const __be32 *cell;
+    u64 tot_size = 0;
+    paddr_t pbase, psize;
+    mfn_t smfn;
+    int length;
+
+    if ( parse_static_mem_prop(node, &addr_cells, &size_cells, &length, &cell) )
+    {
+        printk(XENLOG_ERR
+               "%pd: failed to parse \"xen,static-mem\" property.\n", d);
+        goto fail;
+    }
+    reg_cells = addr_cells + size_cells;
+    nr_banks = length / (reg_cells * sizeof (u32));
+
+    if ( nr_banks > NR_MEM_BANKS )
+    {
+        printk(XENLOG_ERR
+               "%pd: exceed max number of supported guest memory banks.\n", d);
+        goto fail;
+    }
+
+    for ( ; bank < nr_banks; bank++ )
+    {
+        smfn = acquire_static_memory_bank(d, &cell, addr_cells, size_cells,
+                                          &pbase, &psize);
+        if ( !mfn_valid(smfn) )
+            goto fail;
+
+        printk(XENLOG_INFO "%pd: STATIC BANK[%u] %#"PRIpaddr"-%#"PRIpaddr"\n",
+               d, bank, pbase, pbase + psize);
+
+        /* One guest memory bank is matched with one physical memory bank. */
+        kinfo->mem.bank[bank].start = pbase;
+        if ( !append_static_memory_to_bank(d, &kinfo->mem.bank[bank],
+                                           smfn, psize) )
+            goto fail;
+
+        tot_size += psize;
+    }
+
+    kinfo->mem.nr_banks = nr_banks;
+
+    kinfo->unassigned_mem -= tot_size;
+    /*
+     * The property 'memory' should match the amount of memory given to the
+     * guest.
+     * Currently, it is only possible to either acquire static memory or let
+     * Xen allocate. *Mixing* is not supported.
+     */
+    if ( kinfo->unassigned_mem )
+    {
+        printk(XENLOG_ERR
+               "Size of \"memory\" property doesn't match up with the sum-up of \"xen,static-mem\". Unsupported configuration.\n");
+        goto fail;
+    }
+
+    return;
+
+ fail:
+    panic("Failed to allocate requested static memory for direct-map domain %pd.",
+          d);
+}
 #else
 static void __init allocate_static_memory(struct domain *d,
                                           struct kernel_info *kinfo,
                                           const struct dt_device_node *node)
 {
 }
+
+static void __init allocate_static_memory_11(struct domain *d,
+                                             struct kernel_info *kinfo,
+                                             const struct dt_device_node *node)
+{
+    ASSERT_UNREACHABLE();
+}
 #endif
 
 static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
@@ -2983,7 +3070,12 @@ static int __init construct_domU(struct domain *d,
     if ( !dt_find_property(node, "xen,static-mem", NULL) )
         allocate_memory(d, &kinfo);
     else
-        allocate_static_memory(d, &kinfo, node);
+    {
+        if ( is_domain_direct_mapped(d) )
+            allocate_static_memory_11(d, &kinfo, node);
+        else
+            allocate_static_memory(d, &kinfo, node);
+    }
 
     rc = prepare_dtb_domU(d, &kinfo);
     if ( rc < 0 )
@@ -3024,6 +3116,13 @@ void __init create_domUs(void)
             panic("Missing property 'cpus' for domain %s\n",
                   dt_node_name(node));
 
+        if ( dt_property_read_bool(node, "direct-map") )
+        {
+            if ( !IS_ENABLED(CONFIG_STATIC_MEMORY) )
+                panic("direct-map not valid without CONFIG_STATIC_MEMORY\n");
+            d_cfg.flags |= XEN_DOMCTL_CDF_INTERNAL_directmap;
+        }
+
         if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") &&
              iommu_enabled )
             d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:32:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226075.390577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms13-0001yu-Hw; Tue, 16 Nov 2021 06:32:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226075.390577; Tue, 16 Nov 2021 06:32:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms13-0001yn-Eh; Tue, 16 Nov 2021 06:32:25 +0000
Received: by outflank-mailman (input) for mailman id 226075;
 Tue, 16 Nov 2021 06:32:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms11-0001yg-R0
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:24 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2062d.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f4141c16-46a6-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 07:32:21 +0100 (CET)
Received: from DB6P195CA0012.EURP195.PROD.OUTLOOK.COM (2603:10a6:4:cb::22) by
 AM5PR0801MB1780.eurprd08.prod.outlook.com (2603:10a6:203:39::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 06:32:19 +0000
Received: from DB5EUR03FT004.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:4:cb:cafe::26) by DB6P195CA0012.outlook.office365.com
 (2603:10a6:4:cb::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:19 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT004.mail.protection.outlook.com (10.152.20.128) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Tue, 16 Nov 2021 06:32:19 +0000
Received: ("Tessian outbound 1cd1a01725a6:v110");
 Tue, 16 Nov 2021 06:32:19 +0000
Received: from 8e81b312028f.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 10DE31A1-7021-4A47-BE04-9C0B067B8022.1; 
 Tue, 16 Nov 2021 06:32:13 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8e81b312028f.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:13 +0000
Received: from DB7PR02CA0006.eurprd02.prod.outlook.com (2603:10a6:10:52::19)
 by PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Tue, 16 Nov
 2021 06:32:11 +0000
Received: from DB5EUR03FT022.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:52:cafe::fa) by DB7PR02CA0006.outlook.office365.com
 (2603:10a6:10:52::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:11 +0000
Received: from nebula.arm.com (40.67.248.234) by
 DB5EUR03FT022.mail.protection.outlook.com (10.152.20.171) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 06:32:10 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com
 (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:09 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4141c16-46a6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=K1MdOhTcbAnefmEK77IlyRaqvA1cKHpVoGyuRHaxgnE=;
 b=IQW8J+N8qw0+7n0cNZ/Pfv9XpEyjl1B5cC2wgF9v9kko4sz+vtaifUVkRU+11VrCMA33hjChn67lPJXVv/aPMyRxklbGvXBUjw87GN+/nIUs5hoVB0alzvDpIQoPEYuz9st+1PsayjooPDPS2x5W4OKPdpJVrbkgwHhvBFHuLJw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 165dd54ca812c98a
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fTtexNJoN6icMNJM6mwbjbQRkWF7wUOQFaJy5x3s5j6f754kIkxbZommWR0gt2UktBQL+MKXZl7bIteOCb6ZVkovMfzUXPTNAh4eGtmbWl0jIclY636EPMTQQKw1iFumcgPTMUd852jU/PYB12ce2vdRXcZi0WAuBDsl+sWEuNP5L0rt7LCTsUH2Fg62ALPb6QHPNMBHpR/nW99AhFWCxHe7qyZwxuNfxSeGamyFOMGimWmTeEQpVVxr0HgNQ4r5t8P0vcRIawrktj1cW7bn9geMnsm6ZG+0FAleGe9IZnTkQGpsqri3O+7yArxkfG7IDfaHWTmbR1xeFMoLI5Ubqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=K1MdOhTcbAnefmEK77IlyRaqvA1cKHpVoGyuRHaxgnE=;
 b=aHIymzpUHK/lPvc2nGkeDjmQwUrdtF7seX6/2nECR5DZnd0vVFp6OZx3VCUFMCZCDUVfrwrDp+4zIe9zjYRyuUsCQHDdxnttFKfcXvgtCrgfGzTEiXPN95wOSgzjYC+KU6zOdGV/DoTmFofLWojWoV/KBcjaD040pesb7L47KzzfVDsEMT413PhbniQiXw06KsbJFQc0VbrJDKUBexU80RE+XJXdx6SbJD5VwqIJi2NNhRltT/n7TnGWNNjVl+KwLx0FsEBseXdAjlz0mG2s0nRHjH8BTdh3qgKedse9uYhImrhLHv5/gbotaokFM6VveZIkdFkjhuBU/MhMhxNyGQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=K1MdOhTcbAnefmEK77IlyRaqvA1cKHpVoGyuRHaxgnE=;
 b=IQW8J+N8qw0+7n0cNZ/Pfv9XpEyjl1B5cC2wgF9v9kko4sz+vtaifUVkRU+11VrCMA33hjChn67lPJXVv/aPMyRxklbGvXBUjw87GN+/nIUs5hoVB0alzvDpIQoPEYuz9st+1PsayjooPDPS2x5W4OKPdpJVrbkgwHhvBFHuLJw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 01/10] xen: introduce XEN_DOMCTL_CDF_INTERNAL_directmap
Date: Tue, 16 Nov 2021 06:31:46 +0000
Message-ID: <20211116063155.901183-2-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2c2dadb3-0b64-4679-1739-08d9a8cad70e
X-MS-TrafficTypeDiagnostic: PR3PR08MB5593:|AM5PR0801MB1780:
X-Microsoft-Antispam-PRVS:
	<AM5PR0801MB1780744088B70604D590BB5CF7999@AM5PR0801MB1780.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:6108;OLM:6108;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 5wxZ44f16vDjahLHDN1sK4eyOq1hfXjSgdkFXxLU5TFufroTBKJEfUfk6H+EvlYF8Jrbs4vxNOpfLpXgvIeukrV2q21FdV1jyNDACX/vMXuC0nfmIuCGTQhLEq3QvQ121IHTWz/U7fS+zqrnzC+WTTRKWIPfBSVdUkmf8YOszthtFXn1cExqYRsjQOVWsylu3ep3dhS9qi3vhg4MDaCeGpPRzfpxa9fKWPmHeOtWkbVN62EynSx6qjXy3/+sGah4k4PNfuvrSi2/QePKj9SO9sxdp4pbs+RebZLRcmb/FVWsTYEThV7OP5AlQbiDyM41op1h/sCZL4n63VGQBMyCTOkTHU1s7m/hZLQMSMPRFWO+EEtgYRunS9Lk2cD4dWMFlt1SQ+bjfcoBgoMcFRyAPUkJweXaIn9t8GQ/0xBd+qQpW9Ug1qzLEqmr4riOR9P7oPSN5p22wAj7/YqJ0OGqXk4JqKi2Du3Ycys1P8M+I+QXeFkfpOMXqTQW9CqI9Etlw387i1LXWOX76u7wjt9LmqGRy+Q16vf2PYJAxK0qgp4w4P9qll3HFdVaWi45RbU0ar8Zpj3d1cjxPMbJ0IIDp4jmgEtuX3d0ofz3N0U82kQFWBUuwRlZ5zYOQWC54+XzKmni/xjvKdpaOkELgz2ahCbLkTaS1ujAO0Pc7q4ZC6s950A46a6X68xuspKL3yftX3KuVlYR+XiCnVvfBuq6p+INlJ0t0AlrtsB2o9IfyOEPuSldfdLxnug6V2ehnzFw
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(4326008)(2906002)(7696005)(8676002)(86362001)(82310400003)(5660300002)(316002)(426003)(36860700001)(508600001)(81166007)(70586007)(70206006)(47076005)(110136005)(186003)(83380400001)(36756003)(8936002)(54906003)(26005)(356005)(1076003)(336012)(2616005)(6666004)(44832011)(21314003)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5593
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT004.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9e52ae0d-7f3b-448b-497e-08d9a8cad206
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	3wRoB+n5mvuRZW20H7d+SHjJ+tSRAfcJ3N61Sr05RH3D7D0eni9gUNfBCxrNIjKzEDD+vr7rllDS4RLWLE8Tq0ZM3HwRZvhYIi5XTJw75n3Xo3K9c0DyRVq1USdeqRNqm3yV8U0CYn/ROHpE3V6qpI1QqPxf7hZX1hKaDSAhu1D2kMKjkgbr1+eQeCRr25EIpGrtutcrVZ91KNa/C6G5x+Z55qNFgSoSRZ4tdWQCbdY+rgvGEyWCfy6eZn2llIykVKtfWu9zh/0g6A4qu1XEFUC1Y/N9dYwQceWPk393YtYWN2ifsVdofIaic6vIQb6cKownxR/VsNvhVbWnlJ7l09kBzwVo0Azju7dfWg2kNbrgGSrYsSdY9GrFm1h0Ptul60fttQh5mL28m6qXGnQcVSpco+1yD1DwYBVu8nfSP3IYlX717LhE3BtWQiOVlNnKYLOIG50ct2tCGXNu4SjvVNWr9dmQqjnjdz0QWIXh9SWr8tcT/zybRvjyVKT05pgjSEJdexuPWn48dRu9dltqOjUlpOp5sn4JlnAXqi2s/eNlfjcTU+w2XYh3XaaguLHFzTeTOZTaBQuJwj5loPKZdS312+OqfWlueXDE5tgkofUkWxX1PLMj6+8xroZj0GwzqZYg8x7Uh475Nmip6CNKIUCamo1YUT7kTh2YI2dYvsdXsQHhfnTgPw4SA4AbNTubfdt+RDoihB330GZUWQr1UqDvVPUbXjae2ygsgBStmX4=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(81166007)(336012)(36860700001)(508600001)(26005)(8936002)(8676002)(1076003)(54906003)(7696005)(5660300002)(186003)(6666004)(82310400003)(316002)(110136005)(47076005)(86362001)(2616005)(4326008)(70586007)(36756003)(70206006)(426003)(44832011)(83380400001)(2906002)(21314003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:19.4450
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c2dadb3-0b64-4679-1739-08d9a8cad70e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT004.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1780

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

This commit introduces a new arm-specific flag
XEN_DOMCTL_CDF_INTERNAL_directmap to specify that a domain should
have its memory direct-map(guest physical address == physical address)
at domain creation.

Since this flag is only available for domain created by XEN, not exposed
to the toolstack, we name it with extra "INTERNAL" to distinguish from
other public XEN_DOMCTL_CDF_xxx flags, and add comments to warn developers
not to accidently use its bitfield when introducing new
XEN_DOMCTL_CDF_xxx flag.

Refine is_domain_direct_mapped to check whether the flag
XEN_DOMCTL_CDF_INTERNAL_directmap is set.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
CC: andrew.cooper3@citrix.com
CC: jbeulich@suse.com
CC: George Dunlap <George.Dunlap@eu.citrix.com>
CC: Ian Jackson <ian.jackson@eu.citrix.com>
CC: Wei Liu <wl@xen.org>
CC: "Roger Pau Monné" <roger.pau@citrix.com>
---
v2 changes
- remove the introduce of internal flag
- remove flag direct_map since we already store this flag in d->options
- Refine is_domain_direct_mapped to check whether the flag
XEN_DOMCTL_CDF_directmap is set
- reword "1:1 direct-map" to just "direct-map"
---
v3 changes
- move flag back to xen/include/xen/domain.h, to let it be only available for
domain created by XEN.
- name it with extra "INTERNAL" and add comments to warn developers not
to accidently use its bitfield when introducing new XEN_DOMCTL_CDF_xxx flag.
- reject this flag in x86'es arch_sanitise_domain_config()
---
 xen/arch/arm/domain.c        | 3 ++-
 xen/arch/arm/domain_build.c  | 4 +++-
 xen/arch/x86/domain.c        | 6 ++++++
 xen/common/domain.c          | 3 ++-
 xen/include/asm-arm/domain.h | 4 ++--
 xen/include/public/domctl.h  | 4 ++++
 xen/include/xen/domain.h     | 3 +++
 7 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 96e1b23550..d77265c03f 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -629,7 +629,8 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 {
     unsigned int max_vcpus;
     unsigned int flags_required = (XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap);
-    unsigned int flags_optional = (XEN_DOMCTL_CDF_iommu | XEN_DOMCTL_CDF_vpmu);
+    unsigned int flags_optional = (XEN_DOMCTL_CDF_iommu | XEN_DOMCTL_CDF_vpmu |
+                                   XEN_DOMCTL_CDF_INTERNAL_directmap);
 
     if ( (config->flags & ~flags_optional) != flags_required )
     {
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 19487c79da..664c88ebe4 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -3089,8 +3089,10 @@ static int __init construct_dom0(struct domain *d)
 void __init create_dom0(void)
 {
     struct domain *dom0;
+    /* DOM0 has always its memory direct-map. */
     struct xen_domctl_createdomain dom0_cfg = {
-        .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
+        .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |
+                 XEN_DOMCTL_CDF_INTERNAL_directmap,
         .max_evtchn_port = -1,
         .max_grant_frames = gnttab_dom0_frames(),
         .max_maptrack_frames = -1,
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ef1812dc14..eba6502218 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -692,6 +692,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
+    if ( config->flags & XEN_DOMCTL_CDF_INTERNAL_directmap )
+    {
+        dprintk(XENLOG_INFO, "direct-map cannot be enabled yet\n");
+        return -EINVAL;
+    }
+
     return 0;
 }
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 56d47dd664..13ac5950bc 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -486,7 +486,8 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
          ~(XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |
            XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |
            XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |
-           XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu) )
+           XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |
+           XEN_DOMCTL_CDF_INTERNAL_directmap) )
     {
         dprintk(XENLOG_INFO, "Unknown CDF flags %#x\n", config->flags);
         return -EINVAL;
diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
index 9b3647587a..4f2c3f09d4 100644
--- a/xen/include/asm-arm/domain.h
+++ b/xen/include/asm-arm/domain.h
@@ -29,8 +29,8 @@ enum domain_type {
 #define is_64bit_domain(d) (0)
 #endif
 
-/* The hardware domain has always its memory direct mapped. */
-#define is_domain_direct_mapped(d) is_hardware_domain(d)
+#define is_domain_direct_mapped(d) \
+        (d->options & XEN_DOMCTL_CDF_INTERNAL_directmap)
 
 struct vtimer {
     struct vcpu *v;
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 1c21d4dc75..054e545c97 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -72,6 +72,10 @@ struct xen_domctl_createdomain {
 #define XEN_DOMCTL_CDF_nested_virt    (1U << _XEN_DOMCTL_CDF_nested_virt)
 /* Should we expose the vPMU to the guest? */
 #define XEN_DOMCTL_CDF_vpmu           (1U << 7)
+/*
+ * Be aware that bit 8 has already been occupied by flag
+ * XEN_DOMCTL_CDF_INTERNAL_directmap, defined in xen/include/xen/domain.h.
+ */
 
 /* Max XEN_DOMCTL_CDF_* constant.  Used for ABI checking. */
 #define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_vpmu
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 160c8dbdab..2b9edfdcee 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -28,6 +28,9 @@ void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info);
 void arch_get_domain_info(const struct domain *d,
                           struct xen_domctl_getdomaininfo *info);
 
+/* Should domain memory be directly mapped? */
+#define XEN_DOMCTL_CDF_INTERNAL_directmap      (1U << 8)
+
 /*
  * Arch-specifics.
  */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:32:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226079.390621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1D-00038c-2c; Tue, 16 Nov 2021 06:32:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226079.390621; Tue, 16 Nov 2021 06:32:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1C-00038J-UW; Tue, 16 Nov 2021 06:32:34 +0000
Received: by outflank-mailman (input) for mailman id 226079;
 Tue, 16 Nov 2021 06:32:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms1B-0001yg-6E
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:33 +0000
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01on0631.outbound.protection.outlook.com
 [2a01:111:f400:fe1f::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa504851-46a6-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 07:32:32 +0100 (CET)
Received: from AS9PR06CA0309.eurprd06.prod.outlook.com (2603:10a6:20b:45b::11)
 by AM0PR08MB4194.eurprd08.prod.outlook.com (2603:10a6:208:130::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 06:32:29 +0000
Received: from VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:45b:cafe::b2) by AS9PR06CA0309.outlook.office365.com
 (2603:10a6:20b:45b::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:29 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT062.mail.protection.outlook.com (10.152.18.252) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:28 +0000
Received: ("Tessian outbound c61f076cbd30:v110");
 Tue, 16 Nov 2021 06:32:28 +0000
Received: from 32557013ab59.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 6034030A-BAB0-447F-BA7B-FE5ABA6CCC9D.1; 
 Tue, 16 Nov 2021 06:32:22 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 32557013ab59.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:22 +0000
Received: from DU2P251CA0009.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:230::22)
 by AM0PR08MB5010.eurprd08.prod.outlook.com (2603:10a6:208:15c::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Tue, 16 Nov
 2021 06:32:20 +0000
Received: from DB5EUR03FT056.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:230:cafe::14) by DU2P251CA0009.outlook.office365.com
 (2603:10a6:10:230::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:20 +0000
Received: from nebula.arm.com (40.67.248.234) by
 DB5EUR03FT056.mail.protection.outlook.com (10.152.21.124) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 06:32:20 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com
 (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:18 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa504851-46a6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xk9A/ODYAnbqpkicTWn0UlFfqa7O0F+EdCboEgibH8E=;
 b=iMDCmZ0t2pXelKzTPcs1ogMbyuLwR3LPJTy+nnrALtQtCS/nHJBBQmR4gyUjEp2vYwehIbDDTIcAvlvz0OkrRmxfuKHAv2Z6P5xlI1EQQMQLwipqOa1iCfQjDKdDOd8XZZqdkW2mnvjP+9z/fwb3SJQjHXqq2EUz0oOO0hdevI8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 35dbd49221cc357c
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=B1v6Vqtd9Mxb+AV/q7n3Wjye4SNZ0so5ceHMuD5v6qXlN3uFtBt9zIwb86SIJvHvefb/REfFmtd3zGYpkEsh8vBX1G8Gkgd8V2bjlhUQ8pJ9SFSuXHrKmdX/9yvedRA9yEO/dtWGuuDimbr176BAIFtF8I84IC7w4Wgnfcfg51v0AYsP8eQEskoWIvU5FonM21E3Vv4LHye0Ik5VpbJh5vhv6BzCq8DfVC2DoVYQrVC8GtItAg02QlYaWBMDGODP8g+vO1ZWD0sro5eqQjG+fNPDscp3zfQhye6oG2n/piaP0XXcwM0QNWbsnNVNODLXERTvJ9FlO0h2yNimEme6oA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xk9A/ODYAnbqpkicTWn0UlFfqa7O0F+EdCboEgibH8E=;
 b=cjutisVC4wXvgaVG8rDLNIuvzW2M/ComGEo+QvkArcwIzc1MIMtga+Q5fFdcAxohcBIeTtmu7EOMkEE+DjsOem8TVr3NET/FoiwmUzVDoJGyBr37rQeN8kgw8krBEA/aChWlifVKDCvKmc0eorfNmEJ4KkkcdxQJjCzoz0Ad+mreEZI5nf9K0Scih0paWSlvaMoK7ns8qdE/QNAKT1UDJ/0mrSMFzJ5Q/JUtEpWfX6KgP6JA6PPoBnrDbsrJIRT7mR7+eB5UHx+ksbgx0fae6WqJSo8PGPgnq62q8I2lXUICRrEdnnpgVX9eZrn0WJNnNhjOVYDyjgFbkWws8RjDQg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xk9A/ODYAnbqpkicTWn0UlFfqa7O0F+EdCboEgibH8E=;
 b=iMDCmZ0t2pXelKzTPcs1ogMbyuLwR3LPJTy+nnrALtQtCS/nHJBBQmR4gyUjEp2vYwehIbDDTIcAvlvz0OkrRmxfuKHAv2Z6P5xlI1EQQMQLwipqOa1iCfQjDKdDOd8XZZqdkW2mnvjP+9z/fwb3SJQjHXqq2EUz0oOO0hdevI8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 05/10] xen/arm: add ASSERT_UNREACHABLE in allocate_static_memory
Date: Tue, 16 Nov 2021 06:31:50 +0000
Message-ID: <20211116063155.901183-6-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2336b8e2-10cc-4500-0b8b-08d9a8cadcc1
X-MS-TrafficTypeDiagnostic: AM0PR08MB5010:|AM0PR08MB4194:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB4194A26EDD3185D198371760F7999@AM0PR08MB4194.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:326;OLM:326;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 XQXSO08ubdsatULn2e4nWNk2+486Kz+Gx3EUwfwPzXpZFC7UvSS45uaRBeAILI/wF4fkxcGARGNGx8Rr+cjrgRLqaL2lqz1lMqw0STnIWInyxA9xVqI7hbNz95ea956zz3gjOTs6ddp1ZGhUPrcLuKTyC35d2RZNx/xGbCpqEUn/STda8beovyRGQPW3r6I2NN2lkBEFJan4TilTGMzdnp6QA4t967jX+WPgPoHmA49nZnn/X5DmIUcdvIJgYAdhKD1NHa2iJpRqL8xS3sTT1c54n4u6bUrcRL+7imKPUbXCfaIP4kkwfnRQLsLuTeO3eoLfB5jbqp1Ino3Ss860DZoOuMiO7lfAPoTF0doBfjg0YmLK9wxy84iX1KtB3VBaTWcrzYnpfM0rN2H7dSH+eUy+TdliwsLyLYCKWwdASanQUid8Cji+CJffvwttipYlMOl7W6PQNOj26AB/3VFoUVylNb89nx2vtvTCirpdcyK32o8YI+aUE222I03wR0n7GvmhQpyijS8QpxHTls38Fex4uYTvPc+mErMusJDyEeqwznkvXIqalBumdNQS/BljpMP4r5fUOFlLZ11ltqyv4zjbg+UTIYKNrf1r5Qh6jdhFTfIpWzV5Vqe8O717MHJqWXHNMTfiS+xzHLL9FKDvwniKv/K0mqBEUxxEpmJDBttlWSHJRwbJB942MiOA53uHE6tdgndHZZSwzXp6uB2LtLpn+DGz5Y3bItIANWx2JL8=
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(82310400003)(70206006)(44832011)(70586007)(2906002)(26005)(4744005)(6666004)(336012)(356005)(508600001)(86362001)(81166007)(426003)(7696005)(2616005)(316002)(5660300002)(54906003)(47076005)(36756003)(110136005)(8676002)(1076003)(8936002)(186003)(36860700001)(4326008)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5010
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	af329248-ad92-4d51-af83-08d9a8cad783
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	QO0nWTv51/nE4EZZsM5fhM6e6HcaABW175lULNIWUsL+S/SBIHa9Lo9rNqoA3QoS/ms+8d7F3CUzGY730Tc/2SZ76YKXJxfaXeHOUQx615NtXz+irqYlUXbF74Tq4XH0qlYwEFwcYO6UTgY/DKmj4UmBWENq9pGtTseMjp0nIjbeGb37y6Ov1dkYS7gCWUbJnME4Mz4fwuWwXlgIO1W/eututC5h2n2yWitXs0G3+zhF8nSisMAFNZKX39rz0QfYhlPNik/D6+5y/sUJQT9nZsg46OoEptSr/FJj5hDUhw9/FeHSSanJq0TfZPBjb64sbJ701iqtcUeMjsur/SR7CMujoUgjKV5k6btJ1+/F045LX1lD1cqQQfwu13oVQiEB7VIV90u6DlPMvq5WR9vhxo3nWL5kScXScXL3RNIdnqZpOOqfd3AkIOX9EMtzJ3kkzkOd/JMkuwmyK/5+ym7p3hUxmXtRi99MxFF0R4QQjwH8iPvxZ8Q1/5XlJZg9LcUC3XJ/8ktaiNFXsGtQ0F3p5kP+uz16vuoJfMqFx1tHymQMopee9c7GczmGepTSfn4FCj63dJc/ntiixBkXJRBASm4jn6tiDLLMSAYRrGXF00FWdvD1JFB/OPaeneHByj1MtdlX11loCZs7QYiQl8K4L8s5JfBY2INAWkAYAhuCDej3IQBjamOlrwxDC3xB/BOs3qL9hv3WwLDQw2xMNtt41w==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(4326008)(110136005)(70206006)(70586007)(4744005)(508600001)(316002)(186003)(5660300002)(36860700001)(426003)(44832011)(36756003)(6666004)(2616005)(336012)(7696005)(54906003)(8936002)(2906002)(8676002)(26005)(82310400003)(1076003)(47076005)(81166007)(86362001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:28.9085
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2336b8e2-10cc-4500-0b8b-08d9a8cadcc1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4194

Helper allocate_static_memory is not meant to be reachable when built with
!CONFIG_STATIC_MEMORY, so this commit adds ASSERT_UNREACHABLE in it to catch
potential misuse.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
v3 changes:
- new commit
---
 xen/arch/arm/domain_build.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 97a5b5dedd..b6fde74d74 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -759,6 +759,7 @@ static void __init allocate_static_memory(struct domain *d,
                                           struct kernel_info *kinfo,
                                           const struct dt_device_node *node)
 {
+    ASSERT_UNREACHABLE();
 }
 
 static void __init allocate_static_memory_11(struct domain *d,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:32:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226076.390588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms15-0002Ez-V2; Tue, 16 Nov 2021 06:32:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226076.390588; Tue, 16 Nov 2021 06:32:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms15-0002Es-RM; Tue, 16 Nov 2021 06:32:27 +0000
Received: by outflank-mailman (input) for mailman id 226076;
 Tue, 16 Nov 2021 06:32:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms14-0001ym-MN
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:26 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0620.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f49e0120-46a6-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 07:32:23 +0100 (CET)
Received: from AM6PR0502CA0058.eurprd05.prod.outlook.com
 (2603:10a6:20b:56::35) by DB8PR08MB5257.eurprd08.prod.outlook.com
 (2603:10a6:10:e8::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 06:32:19 +0000
Received: from VE1EUR03FT003.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:56:cafe::f9) by AM6PR0502CA0058.outlook.office365.com
 (2603:10a6:20b:56::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:19 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT003.mail.protection.outlook.com (10.152.18.108) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:18 +0000
Received: ("Tessian outbound c61f076cbd30:v110");
 Tue, 16 Nov 2021 06:32:18 +0000
Received: from 92d2bcac55f3.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 29AD8B85-122D-41E9-84D9-382F88057E6D.1; 
 Tue, 16 Nov 2021 06:32:11 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 92d2bcac55f3.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:11 +0000
Received: from AM5PR0402CA0008.eurprd04.prod.outlook.com
 (2603:10a6:203:90::18) by AM9PR08MB6754.eurprd08.prod.outlook.com
 (2603:10a6:20b:304::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Tue, 16 Nov
 2021 06:32:10 +0000
Received: from VE1EUR03FT019.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:203:90:cafe::f2) by AM5PR0402CA0008.outlook.office365.com
 (2603:10a6:203:90::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:10 +0000
Received: from nebula.arm.com (40.67.248.234) by
 VE1EUR03FT019.mail.protection.outlook.com (10.152.18.153) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:09 +0000
Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX03.Arm.com
 (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:08 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com
 (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.20; Tue, 16
 Nov 2021 06:32:07 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f49e0120-46a6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xPL/dvtIKqAB6NIBGXK4lzhSc8UgsEbwQ+a1Tu1jQgE=;
 b=gtpn9RA84nswMjGiHbXS+KlR6qbci1ZG2ec6wK0TzS4yyWI2bSqnYlQ28dRKGYyPQrOM4yTSZ/P10vRbGGCKhRfUBjMOTcI8dAXUg8RC3i05QxgdKOhAZikL2rWM8gqnZu6gpYTTJrWN7m169tHrh1i/5QzKsDJsKlVxDNIKR6s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 53323a65f543df4c
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WpPPHFXcAQ5QWeBbciy9EcwzuiYfWTSndkTKwGb/yIVyRtxTlwjoCkegyf23oFbsAk6RgKnoQp2HQW3Bn1OCDWZCAeGIDLbdFK8clfBU6sYb6fXB3EMe+2blPZc7m/imyslZDNqhtj51fVAHkFwpJIHPHQsVMsfaCFs3YDGbANMjAagcZHTSyPQd+8FQaFBsJBGGzaG2VnqOxHgO9FbEo6iCPi8uQpcAQCFJncQklej4QGEVdHA5VTf7ttvRFpvXCNNa+r33pnL5Pmg7ze2qDVk71j6L+PGy8r+btSs5Kau5LUAs0yUhFaa+UNbah4NeeLwy1IDlWvsPBOloHynVNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xPL/dvtIKqAB6NIBGXK4lzhSc8UgsEbwQ+a1Tu1jQgE=;
 b=EQAKyUO5pORhsPWC1a0mkX9cletkjFTGnBn97HyNaOGL2md5BLUYyTRin+urS/SCMaLUjGG6Vh3JQZt+ZzY4oPSyMOZDR7dvrqJpmuUgbenNVzkhUhky/CUSavXLtTMZdlldTTQy7iF/H8nbAgIhU7VVIOGGzAkDoU8zfDmBkpwjWf2DSKLKh9mJ88s4c1QmCyc3RGPWVGohp1/OQZZHuxCyLBF4FLJ1ZnFoGfdZH7kZZzbzievogcNOiMihmyz7TJVJQ/RHSBNWf8RB7x1bvc1yE9FoYv26E3G6kwXL06e16ECLYqZAVm1do/PXUh41DC1QdPDHZpTwr9Y5zv93KA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xPL/dvtIKqAB6NIBGXK4lzhSc8UgsEbwQ+a1Tu1jQgE=;
 b=gtpn9RA84nswMjGiHbXS+KlR6qbci1ZG2ec6wK0TzS4yyWI2bSqnYlQ28dRKGYyPQrOM4yTSZ/P10vRbGGCKhRfUBjMOTcI8dAXUg8RC3i05QxgdKOhAZikL2rWM8gqnZu6gpYTTJrWN7m169tHrh1i/5QzKsDJsKlVxDNIKR6s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 00/10] direct-map memory map
Date: Tue, 16 Nov 2021 06:31:45 +0000
Message-ID: <20211116063155.901183-1-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3b53e316-651f-40bd-21ce-08d9a8cad6bd
X-MS-TrafficTypeDiagnostic: AM9PR08MB6754:|DB8PR08MB5257:
X-Microsoft-Antispam-PRVS:
	<DB8PR08MB5257441B6BAA12FEEF0C274AF7999@DB8PR08MB5257.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 IDI/M6UPvnQYFfw36IpPBk4JaR+jYURPQ18nXkXAUYubnZEr7+igpTTmvvsVELE5bCtwRZgdN9VwHfRRJHfaz1fJ1atFoLeUwBkw/6wxhTsGRB7Sdsj4+Lub4+BH3pZFGYGU49oKhZDr4J+wlcT/1q4sGKKOQiSxg7S979PO0Bp0o6nk+RbfCMZVXA/MjjMqpiyPlBnf1citbuwf/PsdBoQDiVLrnjMYlnBLy/SaXE9AgsPdp5hTIYQf7BAaFMH9uaQHNRFLYPxjqUX6Bhzvpiq3gWuXoLwbskCvdOkeFB/cOgOD2tR+ZkvSKc7JOlN3mICIZ7AgKfYtZrSYTdIHQwyTfKJKzFUOmdtRMWopyecWp4i0rwfeKf/hDHxLoVc4ynEToeAU0QvJ/HARV/ejMC/E/eP1yLProhjMtQf8/jaxfzgjXidODA809Fa6OKmxxdrfj4uSZ/pF8/oS1g2Jxdd3W7Ixxb8XdMzDf013Fl1ndLlFT/O8KgIkfTqgnrLtj9cYjw3r/AGpWPaLJFt9/7o0bxj2f70wIHz1dIO45QzUwgwuplfHAkoUg5QS/BX4PvbE7CDZ9f0xWQFrPLdy6WiHXZwiD73qP0pMjv9m+vMQUOUuakb1GwElXyqDF2K6NyMTGjW+ajFebJv6eY81JvjnBhmOZ/fsKrmQJkp+PeNVKtTk+7iBp9fYJj5EWwFVqkUro3EB0VMl+4BiI9veAnQhiHcsW9s/W7lFN6CZDoTg5UDF9vvGuXLaVF1L/TpvepMZ8P0xRnv2/tQfe3rg0957sx4rPY46vdsTVk2Wo9MFU8xSFZyb+wanFzryxd346yJaZsf5OumWWpvp2DKNUVMp1CCEoNQLq2WxVnp3Qa6qUAbR1LKIBCjkwcePIalx
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(26005)(36756003)(7696005)(70206006)(2616005)(8676002)(186003)(5660300002)(81166007)(82310400003)(966005)(70586007)(336012)(4326008)(426003)(44832011)(508600001)(86362001)(8936002)(356005)(1076003)(316002)(6666004)(83380400001)(54906003)(36860700001)(2906002)(110136005)(47076005)(21314003)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6754
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT003.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2f18e34e-1c50-4d92-eb0a-08d9a8cad13b
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	rFfSq2qrrLYxHIhXPkead9wcffkAH1rhk5rbMHUsKCeHK5GnWDFG6eK0aQu2gQqERW2sQ2cQfVHxOSjkTULZlblqOHuHZ0+IM+Tk9p6y+phaKVdnL0BHR7r3y3v/PNCXDKJlwZq3S8yqNQqx3Az1pPYL5Fb1x2xw9NF+/ju3oeApr28rr3qOlryPt1PCL29jXywAEstsQpCe1sU+/qxWduIOw+pR7egiDD3GNY2Wo6vhbSBpXcn5gwtrBHmSf066CLHvmdPz9QS3h//uM2LObTq9i+iRa79r/amDixRpw2jGnFDsQi6X3TI5gUkzOP6U7mWap7sJKG7LwPEc8a1mJ1rCSqHVmwwQi9/uatWMGV8/U7ZeJVf5KvTvda8kugJMRQ/ONyhXvrSrPanpI42rPj0nIrzVMar2cWFeszFjKH+X8emLIJ/OiX7RRnvZ2peZUDdAdPETWwYdGf0wx5ibsp5zEdZ0NTMq0maMYKe6H3strBbcVq8tJjfZEXx3BRmhl9mjnLzIJ6SxPODE+s0etMaeXMFmUIuN8sl3QpQ41slPTVHmaz+gagBPDVsjGIKhaIczX+9kjrIR8yDKXedEaEf7JZyUekLD6itffcjZloCoZgsJDTaVhGkqM/a0cL8uasIeEyFkJ2i4d7SS4OYV36lyNGUAWUVkcKBHAwmO70o7PSnd7UpaqebKN/ovcqHuPnYYUMBVSXfJhs7Gs+Va+GD3XH22+CpdQa5gUNfb7DmiGAietBxH2cMGX7iE5C/YbTYzs27cxzj6i4HZn07ctOSvlsA3x6sfNhZJxmMkdvIcwV2P6/PV/XG1oZUPLCKxZKMKnKjZX4UZKb5uaY6+IoNanNUsnhsaC/pZ39V7w40=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(4326008)(2616005)(36756003)(82310400003)(54906003)(2906002)(110136005)(86362001)(5660300002)(26005)(426003)(6666004)(47076005)(508600001)(8676002)(966005)(44832011)(8936002)(83380400001)(7696005)(316002)(36860700001)(81166007)(70586007)(70206006)(186003)(1076003)(336012)(21314003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:18.8155
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b53e316-651f-40bd-21ce-08d9a8cad6bd
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT003.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5257

Cases where domU needs direct-map memory map:
  * IOMMU not present in the system.
  * IOMMU disabled if it doesn't cover a specific device and all the guests
are trusted. Thinking a mixed scenario, where a few devices with IOMMU and
a few without, then guest DMA security still could not be totally guaranteed.
So users may want to disable the IOMMU, to at least gain some performance
improvement from IOMMU disabled.
  * IOMMU disabled as a workaround when it doesn't have enough bandwidth.
To be specific, in a few extreme situation, when multiple devices do DMA
concurrently, these requests may exceed IOMMU's transmission capacity.
  * IOMMU disabled when it adds too much latency on DMA. For example,
TLB may be missing in some IOMMU hardware, which may bring latency in DMA
progress, so users may want to disable it in some realtime scenario.
  * Guest OS relies on the host memory layout

"direct-map" property shall be added under the appropriate domain node,
when users requesting direct-map memory mapping for the domain.

Right now, direct-map is only supported when domain on Static Allocation,
that is, "xen,static-mem" is also necessary in the domain configuration.

Looking into related [design link](
https://lists.xenproject.org/archives/html/xen-devel/2021-05/msg00882.html)
for more details.

The whole design is about Static Allocation and direct-map, and this
Patch Serie only covers parts of it, which are direct-map memory map.
Other features will be delievered through different patch series.

See https://lists.xenproject.org/archives/html/xen-devel/2021-09/msg00855.html
for Domain on Static Allocation.

This patch serie is based on
https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg00822.html
---
v3 changes:
- move flag XEN_DOMCTL_CDF_INTERNAL_directmap back to xen/include/xen/domain.h,
to let it be only available for domain created by XEN.
- name it with extra "INTERNAL" and add comments to warn developers not
to accidently use its bitfield when introducing new XEN_DOMCTL_CDF_xxx flag.
- reject this flag in x86'es arch_sanitise_domain_config()
- add ASSERT_UNREACHABLE to catch any misuse in allocate_static_memory()
and allocate_static_memory_11()
- add another check of validating flag XEN_DOMCTL_CDF_INTERNAL_directmap only
when CONFIG_STATIC_MEMORY is set.
- simply map the CPU interface at the GPA vgic_v2_hw.cbase
- drop 'cells += (GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS)'
- rename 'is_domain_use_host_layout()' to 'domain_use_host_layout()'
---
v2 changes:
- remove the introduce of internal flag
- Refine is_domain_direct_mapped to check whether the flag
XEN_DOMCTL_CDF_directmap is set
- reword "1:1 direct-map" to just "direct-map"
- split the common codes into two helpers: parse_static_mem_prop and
acquire_static_memory_bank to deduce complexity.
- introduce a new helper allocate_static_memory_11 for allocating static
memory for direct-map guests
- remove panic action since it is fine to assign a non-DMA capable device when
IOMMU and direct-map both off
- remove redistributor accessor
- introduce new helper "is_domain_use_host_layout()"
- explain why vpl011 initialization before creating its device tree node
- error out if the domain is direct-mapped and the IRQ is not found
- harden the code and add a check/comment when the hardware UART region
is smaller than CUEST_VPL011_SIZE.

Penny Zheng (4):
  xen/arm: introduce new helper parse_static_mem_prop and ...
  xen/arm: introduce direct-map for domUs
  xen/arm: add ASSERT_UNREACHABLE in allocate_static_memory
  xen/arm: gate make_gicv3_domU_node with CONFIG_GICV3

Stefano Stabellini (6):
  xen: introduce XEN_DOMCTL_CDF_INTERNAL_directmap
  xen/arm: avoid setting XEN_DOMCTL_CDF_iommu when IOMMU off
  xen/arm: if direct-map domain use native addresses for GICv2
  xen/arm: if direct-map domain use native addresses for GICv3
  xen/arm: if direct-map domain use native UART address and IRQ ...
  xen/docs: Document how to do passthrough without IOMMU

 docs/misc/arm/device-tree/booting.txt |   6 +
 docs/misc/arm/passthrough-noiommu.txt |  52 +++++
 xen/arch/arm/domain.c                 |   3 +-
 xen/arch/arm/domain_build.c           | 310 +++++++++++++++++++++-----
 xen/arch/arm/vgic-v2.c                |  31 ++-
 xen/arch/arm/vgic-v3.c                |  29 ++-
 xen/arch/arm/vgic/vgic-v2.c           |  31 ++-
 xen/arch/arm/vpl011.c                 |  60 ++++-
 xen/arch/x86/domain.c                 |   6 +
 xen/common/domain.c                   |   3 +-
 xen/include/asm-arm/domain.h          |  11 +-
 xen/include/asm-arm/new_vgic.h        |  10 +
 xen/include/asm-arm/vgic.h            |  11 +
 xen/include/asm-arm/vpl011.h          |   2 +
 xen/include/public/domctl.h           |   4 +
 xen/include/xen/domain.h              |   3 +
 16 files changed, 471 insertions(+), 101 deletions(-)
 create mode 100644 docs/misc/arm/passthrough-noiommu.txt

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:33:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:33:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226080.390631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1L-0003fe-Ca; Tue, 16 Nov 2021 06:32:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226080.390631; Tue, 16 Nov 2021 06:32:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1L-0003fS-8y; Tue, 16 Nov 2021 06:32:43 +0000
Received: by outflank-mailman (input) for mailman id 226080;
 Tue, 16 Nov 2021 06:32:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms1J-0001yg-IA
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:41 +0000
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02on0604.outbound.protection.outlook.com
 [2a01:111:f400:fe05::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff47ce7f-46a6-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 07:32:40 +0100 (CET)
Received: from AS9PR06CA0283.eurprd06.prod.outlook.com (2603:10a6:20b:45a::14)
 by AM0PR08MB5330.eurprd08.prod.outlook.com (2603:10a6:208:17f::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Tue, 16 Nov
 2021 06:32:38 +0000
Received: from VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:45a:cafe::a2) by AS9PR06CA0283.outlook.office365.com
 (2603:10a6:20b:45a::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:38 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT025.mail.protection.outlook.com (10.152.18.74) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:38 +0000
Received: ("Tessian outbound f493ab4f1fb8:v110");
 Tue, 16 Nov 2021 06:32:38 +0000
Received: from cb1db89898a0.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F601A534-0442-43B8-889E-73F095B253B4.1; 
 Tue, 16 Nov 2021 06:32:31 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id cb1db89898a0.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:31 +0000
Received: from DB7PR02CA0008.eurprd02.prod.outlook.com (2603:10a6:10:52::21)
 by DB9PR08MB6732.eurprd08.prod.outlook.com (2603:10a6:10:2af::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 16 Nov
 2021 06:32:31 +0000
Received: from DB5EUR03FT032.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:52:cafe::c3) by DB7PR02CA0008.outlook.office365.com
 (2603:10a6:10:52::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:31 +0000
Received: from nebula.arm.com (40.67.248.234) by
 DB5EUR03FT032.mail.protection.outlook.com (10.152.20.162) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 06:32:30 +0000
Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX04.Arm.com
 (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:30 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com
 (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.20; Tue, 16
 Nov 2021 06:32:29 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff47ce7f-46a6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VoG3f1Km9oFGa5vmtcmGleQgdrI0y3/dqorS3WOWRUE=;
 b=nHmpsXOe82se/svLvcoW0oA+D5zekw2tVGSL4IragPgTcjKH1wj0zvTFfzaRYxKQm1Kgd2jgeIt7nkJPunrjILfMJcJbLwxpb/bDANPARG4fiINIdhcXkBgUg486AKflLzLtEsEwmcMRJy3an9JdEyQfQlvpBjQ+F0sQIV4+ies=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: ecf3ed14b9bbc7df
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MAiWWZ8Yu0IFvCK+A+ftXDeVP6WT6Dq0C9hLSjI/9oUnCVYhJ5PiJEFCNfsGSji9jBO9BlGcUO7gkZIKXxSVmbUjyKsvoH6PWz9tnb1jRgNyAq131YO3EzL6Dc4QM9NEESeWK9+J6QXUNlnkL4v+93vKSLcY5uEFi4drfTgxddT2pBk6XD+I6QHWTWLQnVi9OtYvKz4dcIIELLv4V5IyaUgoxyB43Y2NvzPihTTA08y5OfdIMKRnKWdSgO6XNuMET6ge7v3Mpp9B8nsrxngP0MUl+MgIrhKAdM0KXcO5jy40AalH2NNcJsTt2j+fXgT7edxqav0p3ERrtRWQGTeLzA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VoG3f1Km9oFGa5vmtcmGleQgdrI0y3/dqorS3WOWRUE=;
 b=Rq7Vnq4Esc66okzlxiTZVVN9DakYL4MhhHlCmpc/zc+LlYXPGlEpf6IZXlTOeb1jKCXvZ6uCkMxvDTrczJQg0bUmuNYHIL0aaWV9l0dm1RPchstxUEqWK/sm4ncrwD7RT2p/X7anLAbOPQz21lRqgGHiYPE2LxOIf9Pxb7/Nl+bf4qaXhTzFJTaF0qFW/JPd4En3kOru7LShx3oQdCGYLBoXknvliDIYdSxgLM7kqxHa6XOua0CemIyM8Rg1y9fKcOh90mE/7KVr+sgWStBQcp2q7TCm628zRYuJdScP/hdZ3+vTfIl1ZhFkb8bHUuEN2upNH/kJUM55HZvrixrxHw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VoG3f1Km9oFGa5vmtcmGleQgdrI0y3/dqorS3WOWRUE=;
 b=nHmpsXOe82se/svLvcoW0oA+D5zekw2tVGSL4IragPgTcjKH1wj0zvTFfzaRYxKQm1Kgd2jgeIt7nkJPunrjILfMJcJbLwxpb/bDANPARG4fiINIdhcXkBgUg486AKflLzLtEsEwmcMRJy3an9JdEyQfQlvpBjQ+F0sQIV4+ies=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 10/10] xen/docs: Document how to do passthrough without IOMMU
Date: Tue, 16 Nov 2021 06:31:55 +0000
Message-ID: <20211116063155.901183-11-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8df81466-ff40-4cf6-4e4a-08d9a8cae26e
X-MS-TrafficTypeDiagnostic: DB9PR08MB6732:|AM0PR08MB5330:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB533075308FA688F426FBC15EF7999@AM0PR08MB5330.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:1751;OLM:1751;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 yecjwNlIpkY3sdVcTuWyhXs8WMbaDigmBDCSco+gqDcd0RZEXb00xbACgVdsWkT1sT+EaUd9dD9odeJmF2wdAS7ogos2XJvkKiwlM3HGD21Thd9IAfVXiFK9tLLWi5hJTCOErXCcptmdfJ62KWyf34TEYiNYhKLfGFZsbQtcirZ22sSID2BsIwTRMGnybFPYEodfMBdWqckcalYk6w7jvUbe9sZ+GfTitqHUD3a1N+NGmPF7qMwZur9s4q4mesjqfbUKDyca+xCelyx/720mdajoy6l3nDeF6JnIxSbJSo6H0xqX6s3CllwbQDI74SkFTyV0slCHX8mYhZXYL5YpPOmT7kEJ/Fh889ZzmEHk6NfHLdB0TkzC/xWDcZnEoY4HlCv+LxEojbEZ1Ipkk07OzafS9ykkMuvtl1QmjIuiKzEYNkmhzXNMjQvGDNTLTQRxOnOQWo6tURRaGUz/LsWL4yOPSQNm13ifZag5+2d86BT/ZjDNvk3pIu/uKPdLZ8oQjIqvln1vRPuOOazejnqECBSUlQkbMG9xj9SuKstg5sgTgt2rB/gLP9qOYUfB2cRJIa4VRTAkDUO3fYNTTjcg7DnZ2TSdeOEpyggxYxNWA1IFg1xvZXN0+nI4f8unHpvYff4FptL7uCz6JwJC7jZzNBW9JQQjINy4SRnQbeJQ9L7Yl34oxq5KisdkJaQGY3iF3kPb+TiLT+VeizqK/bZ5MGW7Z9y/gZS0Rv7J+M9cz6E=
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(8936002)(70586007)(70206006)(186003)(81166007)(36756003)(336012)(36860700001)(356005)(2906002)(47076005)(26005)(8676002)(83380400001)(426003)(4326008)(6666004)(54906003)(316002)(110136005)(7696005)(1076003)(2616005)(82310400003)(86362001)(44832011)(508600001)(5660300002)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6732
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	fd342311-6a3b-4489-2635-08d9a8caddde
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	KbamTBjPkBbyVcusCDct1SNh3X8oHpDCB38+psbg92PKwOYkTn+15RTSoo2xMpHapP4WWJdWUQG1zWZDQMT8gAVItdmi+CRAZHi/AINABx09Qm9fTDLCm5y9BGBU9aHTVeZ40q/VIfjQ80r9ykDOYHoRmJJOY41fsvL8Ks4lHCEsELGel17EXFUT/YMg4ifX/A1pp1ARyx8lzbjozH/vbMUekr/asOQiXsXajM4Ddr1CnFJM48MCyhxctcsft/TXmPUYYpaGnK8byCGHw4E5aspzwsMxWpjY7aJQ9rvk481JZVwetgRzSB+BW0GEk350S8MSFWo4vCgfOl+FFygI09i95DdvKaLWKO53xDar8ZPqiEn4RdV/S0ZY6sG/ssKH5DEVOECqCIl2+I558olHK0Locb207hSs5hJl1TdTsC/Ba+clRQ1nPFs0motKM4YqeAZ1GPY9v5gQjUh5Rvt3vnG5wLc3luLVIDNZPhlGwsuPa6QvBiS2bxnZzTSDcIZF3yk6jAsSdOxhaBFCwRpuaLlPbNDiDBF/KTlHANykc50HJLWuFVd5mM+xi8x3hykCOnxwf1xq//kIIoCKsJ/GohRRwPfkA46SNr4IjiKGmaymOPQsptPJDB2gIW/8ITEIkbSrNY6JlMksWGUIWkChJYrxCRkKV5V2RKOXtt0MhZQNY96CiIedzjSPvIAnK6/vW5xS8bYdlpZiL8A2tKYTMQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(81166007)(86362001)(83380400001)(110136005)(186003)(336012)(316002)(426003)(36860700001)(8936002)(6666004)(2616005)(26005)(70206006)(7696005)(1076003)(36756003)(5660300002)(82310400003)(4326008)(508600001)(8676002)(54906003)(47076005)(2906002)(70586007)(44832011);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:38.4266
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8df81466-ff40-4cf6-4e4a-08d9a8cae26e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5330

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

This commit creates a new doc to document how to do passthrough without IOMMU.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
 docs/misc/arm/passthrough-noiommu.txt | 52 +++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 docs/misc/arm/passthrough-noiommu.txt

diff --git a/docs/misc/arm/passthrough-noiommu.txt b/docs/misc/arm/passthrough-noiommu.txt
new file mode 100644
index 0000000000..3e2ef21ad7
--- /dev/null
+++ b/docs/misc/arm/passthrough-noiommu.txt
@@ -0,0 +1,52 @@
+Request Device Assignment without IOMMU support
+===============================================
+
+*WARNING:
+Users should be aware that it is not always secure to assign a device without
+IOMMU protection.
+When the device is not protected by the IOMMU, the administrator should make
+sure that:
+ 1. The device is assigned to a trusted guest.
+ 2. Users have additional security mechanism on the platform.
+
+This document assumes that the IOMMU is absent from the system or it is
+disabled (status = "disabled" in device tree).
+
+Add xen,force-assign-without-iommu; to the device tree snippet:
+
+ethernet: ethernet@ff0e0000 {
+	compatible = "cdns,zynqmp-gem";
+	xen,path = "/amba/ethernet@ff0e0000";
+	xen,reg = <0x0 0xff0e0000 0x1000 0x0 0xff0e0000>;
+	xen,force-assign-without-iommu;
+};
+
+Request 1:1 memory mapping for the domain on static allocation
+==============================================================
+
+Add a direct-map property under the appropriate /chosen/domU node which
+is also statically allocated with physical memory ranges through
+xen,static-mem property as its guest RAM.
+
+Below is an example on how to specify the 1:1 memory mapping for the domain
+on static allocation in the device-tree:
+
+/ {
+	chosen {
+		domU1 {
+			compatible = "xen,domain";
+			#address-cells = <0x2>;
+			#size-cells = <0x2>;
+			cpus = <2>;
+			memory = <0x0 0x80000>;
+			#xen,static-mem-address-cells = <0x1>;
+			#xen,static-mem-size-cells = <0x1>;
+			xen,static-mem = <0x30000000 0x20000000>;
+			direct-map;
+			...
+		};
+	};
+};
+
+Besides reserving a 512MB region starting at the host physical address
+0x30000000 to DomU1, it also requests 1:1 memory mapping.
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:33:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:33:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226081.390639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1L-0003kY-Vk; Tue, 16 Nov 2021 06:32:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226081.390639; Tue, 16 Nov 2021 06:32:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1L-0003jb-Na; Tue, 16 Nov 2021 06:32:43 +0000
Received: by outflank-mailman (input) for mailman id 226081;
 Tue, 16 Nov 2021 06:32:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms1K-0001yg-TF
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:43 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on061b.outbound.protection.outlook.com
 [2a01:111:f400:fe0d::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0004bd5a-46a7-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 07:32:41 +0100 (CET)
Received: from DB8PR06CA0021.eurprd06.prod.outlook.com (2603:10a6:10:100::34)
 by DB9PR08MB6746.eurprd08.prod.outlook.com (2603:10a6:10:2a0::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 16 Nov
 2021 06:32:40 +0000
Received: from DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:100:cafe::8e) by DB8PR06CA0021.outlook.office365.com
 (2603:10a6:10:100::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:40 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT036.mail.protection.outlook.com (10.152.20.185) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 06:32:40 +0000
Received: ("Tessian outbound f493ab4f1fb8:v110");
 Tue, 16 Nov 2021 06:32:40 +0000
Received: from 743cd50ae51c.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 C90EDCD3-16AC-4027-B213-8EE37810BA60.1; 
 Tue, 16 Nov 2021 06:32:33 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 743cd50ae51c.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:33 +0000
Received: from AM6P195CA0005.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::18)
 by DB7PR08MB3563.eurprd08.prod.outlook.com (2603:10a6:10:4d::31) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 06:32:26 +0000
Received: from VE1EUR03FT039.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:81:cafe::13) by AM6P195CA0005.outlook.office365.com
 (2603:10a6:209:81::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:26 +0000
Received: from nebula.arm.com (40.67.248.234) by
 VE1EUR03FT039.mail.protection.outlook.com (10.152.19.196) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:26 +0000
Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX03.Arm.com
 (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:21 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com
 (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.20; Tue, 16
 Nov 2021 06:32:20 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0004bd5a-46a7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mMUL+ALtFabqyz4rrJ4C7dMs4QD0H7pMOoQ66/Urgd0=;
 b=Aa9wdbwcwcZuwik+f5DhDXyqT4fxmp509+keIFarA0KlP+75N2Xe09ICJYpkxcHPU0rb6rZi50FI20kwqRjX/8pBsLFNVyPSO4AB3CPKCALeNfWuGIot+lzNyVOHHG8GuL+TybJM2bAffG4u4Gu/BESS1iCCki+dliPe43VyhAw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 4b95e8080f31ce47
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=exVQ4EP9fmFEaP2O1toJLosdbvUT495VNSEoNfBIHoguUwuGrbgNpOHuAU19nOvYHcY2zSkoabNc1bB0Yb3kFngtBSlQHZPaZqoqWTfj0qvEARZ5PXbLQa8GCuuH63l6BYrqiy6PJtKme7RtZ4Oa5ZxGlUhTJcZCpqkTVSesJQUb86iOIQXpOem9s6SAzq5y/9AwDRwY3UD0nGVzUj/i2nIp6s9vWt4UZ52Oj66lR9zyVeVdidI2N42nTN55CHOqGYi9eQUGaxBG4oCuav9zXlJgfpoCzuaK5Cb47qnXNnrgWlwUFC2Clu9/RBhpWKgP3sqkBz4M2+zFA6coMeuxvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mMUL+ALtFabqyz4rrJ4C7dMs4QD0H7pMOoQ66/Urgd0=;
 b=oKqxmf+HVoLojtiNwvtZ1cTpqfVgwK3D9P4mMT0IWxbvi9IUJM0nAslShXwx86543OBNA3RTzGpnWvOLI3masXjfWkMiISblTJjsR4o7SgnX3VcqsoRSJiAaWWLCE/uYE05l8gqtL8byYpLkYPy1lddgDd3P1zm5jKJzgcslAatG65qZ0lfewyg4I/NDU/pJnk88BTrR2pCz0Q71mZayce5exTOB2J/ZLrm98gmActvoyykXSnYWrtLvQaP4kEP22y+iYAD33CpWLoIV6SuITNwx9b+q6tP2jtWGANU+QJyRBzkmTxCj0H2meAsTFuLlwK39yFksPFY8pGq3erlDSg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mMUL+ALtFabqyz4rrJ4C7dMs4QD0H7pMOoQ66/Urgd0=;
 b=Aa9wdbwcwcZuwik+f5DhDXyqT4fxmp509+keIFarA0KlP+75N2Xe09ICJYpkxcHPU0rb6rZi50FI20kwqRjX/8pBsLFNVyPSO4AB3CPKCALeNfWuGIot+lzNyVOHHG8GuL+TybJM2bAffG4u4Gu/BESS1iCCki+dliPe43VyhAw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 06/10] xen/arm: if direct-map domain use native addresses for GICv2
Date: Tue, 16 Nov 2021 06:31:51 +0000
Message-ID: <20211116063155.901183-7-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2be10cd5-4f48-4340-de28-08d9a8cae36d
X-MS-TrafficTypeDiagnostic: DB7PR08MB3563:|DB9PR08MB6746:
X-Microsoft-Antispam-PRVS:
	<DB9PR08MB674694A0F88CC9098BEF3E25F7999@DB9PR08MB6746.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 SmEw+8oj5/BzPDlx9XKXM6s9KK3YV8y+kxAa+NVVpTN0WJr5eqlO8MLcLtKNkLJZe4slWqBLGLln5uxCKkHf8mwAOGCITmDYgy/0nbaO/UHRIAmV8oOx1X2rtuz99GOzNNaq57yypqGNjvosh6vqXnSrh6SIPuNlt9/2de2QscjJKGBqxpEesFu1cm7/75dbRFvXfrYcnPHGvsBBYiOLVKaLwEArV7V4eq5nHyM7eenqC5JqtmPV2sOHAe4WNaBzryr8zB3FQCT74XuIXmJtdav77ejiiahzC67H8bheqK9TKABnnqRUuEF2pYB62k9yPXI4Y7c/oO64sWeCb3Ts5kYph5xPKlm2vMbIxeP9zxnoRJ6vvuO0TBzfF5JKFnql95Ih88mi5KaVxyGZN3d1Ey6thz1TKEHvv/9pF7worVkz+Ztqa9DMAdOqvn8yhYmSTAeo0v5uph2LPWVI7KJPyJEN641NPPKsWxw4jcXuMqwdczVw7X85PhgbZlYMiyHtYK6LqMXDx/OFJqKJv4WHbLafEuRw7viyzXKx6lqTANo2uawIbdLiYznD07S9NRaqG/u+JTnMYSGeph+dDaTcGnLZ5f4iqyruDJbk3KeUKnKMkgdeBPM9qv0TQvKLz85Xp9KE0SGVATLAHcrWvHxkQMVKPqnTPMWJdOrvRXWmHoSIETRDMrPTQ/TKbTsV4gs845dok9uH61Bcq2vDJuP0sBTrSjDsQX5Cf1uqzxhNoTXxKQDMLGrrAMhjf9mykgln5GV5XQqU8mzqel+55E1z+Q==
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(110136005)(356005)(5660300002)(2616005)(82310400003)(508600001)(8936002)(2906002)(83380400001)(44832011)(81166007)(86362001)(316002)(47076005)(6666004)(4326008)(1076003)(54906003)(36860700001)(7696005)(70586007)(426003)(8676002)(186003)(36756003)(336012)(70206006)(26005)(36900700001)(14943795004);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3563
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2e1a206c-64e3-4ede-942b-08d9a8cadb3c
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ZpZXmE8Bg/zBLJkh/co81nxekVFUfQtbY0dliTdCkCW0ony+VGdeUmbuOvdgztE696nHasIthxHCneHsTItgouH5Nwp5gWmBBQiq0e7/lqoHsgn8gwTsJdCSwfolbLMxDfsIo3qyZDyISEfvjdtO3b9w07E9RYEouJ8J4cmx+luvn1d//6o8UAvydczipQdoeXB42ywoa26Vj6+mmZZwXWymxiRWUf5+Hg86gnobl4q4L6YvqRtFmOiNIK7SF8x3XdFno0ZZhJ4VD3a0V3dTw1Gnxys3h2WYxTW/CUuFr0kfTOfHcgPnGauX4NTn2IPlkahzKjxnaqhgFUMnqP82kYjf59JZr0MvuOXa+7Y9sgECwIuvQ0Bq8MJ42h1efZpCeBkkoUVXqMYGRWJL2K1csgo5CV78vZNE+cbPuqTwNDidv75odzQk8qHoaQ1rjn9QneE0y/KCE55pPWoyx5Y0hhJtruHR9pea3nPwCQXTitdzHU1TZZJu6J65DR0AGK++jSAyWsGaf7PCDXpNYYXcf0eKFcwdOIWLZwPrINrbq2O4pF6yFr5d5yKjdF04gysFYbhmFxeWQn2+fDQSRRe/VgGRP8XQNWFYl5FoOzzFejPJGXX4+3MOva9VzjLfAr5/1lQgtES9EeWdPwHyIIcAxhgAu8RLL+Muu1gJVPXltCvoXBEdJjDFt6Q01ERu9ACQiEZ/oVg8m4IzNHWwRphmGDXWR3/8rzoEoN69T2CHO58=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(86362001)(110136005)(1076003)(8936002)(26005)(426003)(316002)(2616005)(54906003)(336012)(2906002)(7696005)(8676002)(81166007)(36756003)(83380400001)(5660300002)(70586007)(47076005)(186003)(44832011)(82310400003)(70206006)(36860700001)(6666004)(4326008)(508600001)(14943795004);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:40.2044
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2be10cd5-4f48-4340-de28-08d9a8cae36d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6746

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

Today we use native addresses to map the GICv2 for Dom0 and fixed
addresses for DomUs.

This patch changes the behavior so that native addresses are used for
all domains that are direct-mapped.

NEW VGIC has different naming schemes, like referring distributor base
address as vgic_dist_base, other than the dbase. So this patch also introduces
vgic_dist_base/vgic_cpu_base accessor to access correct distributor base
address/cpu interface base address on varied scenarios,

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
v2 changes
- combine all changes in patch 4-6 here
---
v3 changes
- refine comment message
- add a comment explaining how the 38 was found of "char buf[38]"
- simply map the CPU interface at the GPA vgic_v2_hw.cbase
- remove a spurious change
---
 xen/arch/arm/domain_build.c    | 11 ++++++++---
 xen/arch/arm/vgic-v2.c         | 31 ++++++++++++++++++++++---------
 xen/arch/arm/vgic/vgic-v2.c    | 31 ++++++++++++++++++++++---------
 xen/include/asm-arm/new_vgic.h | 10 ++++++++++
 xen/include/asm-arm/vgic.h     | 11 +++++++++++
 5 files changed, 73 insertions(+), 21 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index b6fde74d74..c419a4b2cc 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2230,8 +2230,13 @@ static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
     int res = 0;
     __be32 reg[(GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS) * 2];
     __be32 *cells;
+    const struct domain *d = kinfo->d;
+    /* Placeholder for interrupt-controller@ + a 64-bit number + \0 */
+    char buf[38];
 
-    res = fdt_begin_node(fdt, "interrupt-controller@"__stringify(GUEST_GICD_BASE));
+    snprintf(buf, sizeof(buf), "interrupt-controller@%"PRIx64,
+             vgic_dist_base(&d->arch.vgic));
+    res = fdt_begin_node(fdt, buf);
     if ( res )
         return res;
 
@@ -2253,9 +2258,9 @@ static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
 
     cells = &reg[0];
     dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
-                       GUEST_GICD_BASE, GUEST_GICD_SIZE);
+                       vgic_dist_base(&d->arch.vgic), GUEST_GICD_SIZE);
     dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
-                       GUEST_GICC_BASE, GUEST_GICC_SIZE);
+                       vgic_cpu_base(&d->arch.vgic), GUEST_GICC_SIZE);
 
     res = fdt_property(fdt, "reg", reg, sizeof(reg));
     if (res)
diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c
index 589c033eda..6f5492e30e 100644
--- a/xen/arch/arm/vgic-v2.c
+++ b/xen/arch/arm/vgic-v2.c
@@ -654,13 +654,10 @@ static int vgic_v2_vcpu_init(struct vcpu *v)
 static int vgic_v2_domain_init(struct domain *d)
 {
     int ret;
-    paddr_t cbase, csize;
+    paddr_t csize;
     paddr_t vbase;
 
-    /*
-     * The hardware domain gets the hardware address.
-     * Guests get the virtual platform layout.
-     */
+    /* The hardware domain gets the hardware address. */
     if ( is_hardware_domain(d) )
     {
         d->arch.vgic.dbase = vgic_v2_hw.dbase;
@@ -671,10 +668,26 @@ static int vgic_v2_domain_init(struct domain *d)
          * Note that we assume the size of the CPU interface is always
          * aligned to PAGE_SIZE.
          */
-        cbase = vgic_v2_hw.cbase;
+        d->arch.vgic.cbase = vgic_v2_hw.cbase;
         csize = vgic_v2_hw.csize;
         vbase = vgic_v2_hw.vbase;
     }
+    else if ( is_domain_direct_mapped(d) )
+    {
+        /*
+         * For all the direct-mapped domain other than the hardware domain,
+         * we only map a 8kB CPU interface but we make sure it is at a
+         * location occupied by the physical GIC in the host device tree.
+         *
+         * We need to add an offset to the virtual CPU interface base
+         * address when the GIC is aliased to get a 8kB contiguous
+         * region.
+         */
+        d->arch.vgic.dbase = vgic_v2_hw.dbase;
+        d->arch.vgic.cbase = vgic_v2_hw.cbase;
+        csize = GUEST_GICC_SIZE;
+        vbase = vgic_v2_hw.vbase + vgic_v2_hw.aliased_offset;
+    }
     else
     {
         d->arch.vgic.dbase = GUEST_GICD_BASE;
@@ -685,7 +698,7 @@ static int vgic_v2_domain_init(struct domain *d)
          * region.
          */
         BUILD_BUG_ON(GUEST_GICC_SIZE != SZ_8K);
-        cbase = GUEST_GICC_BASE;
+        d->arch.vgic.cbase = GUEST_GICC_BASE;
         csize = GUEST_GICC_SIZE;
         vbase = vgic_v2_hw.vbase + vgic_v2_hw.aliased_offset;
     }
@@ -694,8 +707,8 @@ static int vgic_v2_domain_init(struct domain *d)
      * Map the gic virtual cpu interface in the gic cpu interface
      * region of the guest.
      */
-    ret = map_mmio_regions(d, gaddr_to_gfn(cbase), csize / PAGE_SIZE,
-                           maddr_to_mfn(vbase));
+    ret = map_mmio_regions(d, gaddr_to_gfn(d->arch.vgic.cbase),
+                           csize / PAGE_SIZE, maddr_to_mfn(vbase));
     if ( ret )
         return ret;
 
diff --git a/xen/arch/arm/vgic/vgic-v2.c b/xen/arch/arm/vgic/vgic-v2.c
index b5ba4ace87..63d0f03688 100644
--- a/xen/arch/arm/vgic/vgic-v2.c
+++ b/xen/arch/arm/vgic/vgic-v2.c
@@ -258,14 +258,11 @@ void vgic_v2_enable(struct vcpu *vcpu)
 int vgic_v2_map_resources(struct domain *d)
 {
     struct vgic_dist *dist = &d->arch.vgic;
-    paddr_t cbase, csize;
+    paddr_t csize;
     paddr_t vbase;
     int ret;
 
-    /*
-     * The hardware domain gets the hardware address.
-     * Guests get the virtual platform layout.
-     */
+    /* The hardware domain gets the hardware address. */
     if ( is_hardware_domain(d) )
     {
         d->arch.vgic.vgic_dist_base = gic_v2_hw_data.dbase;
@@ -276,10 +273,26 @@ int vgic_v2_map_resources(struct domain *d)
          * Note that we assume the size of the CPU interface is always
          * aligned to PAGE_SIZE.
          */
-        cbase = gic_v2_hw_data.cbase;
+        d->arch.vgic.vgic_cpu_base = gic_v2_hw_data.cbase;
         csize = gic_v2_hw_data.csize;
         vbase = gic_v2_hw_data.vbase;
     }
+    else if ( is_domain_direct_mapped(d) )
+    {
+        d->arch.vgic.vgic_dist_base = gic_v2_hw_data.dbase;
+        /*
+         * For all the direct-mapped domain other than the hardware domain,
+         * we only map a 8kB CPU interface but we make sure it is at a location
+         * occupied by the physical GIC in the host device tree.
+         *
+         * We need to add an offset to the virtual CPU interface base
+         * address when the GIC is aliased to get a 8kB contiguous
+         * region.
+         */
+        d->arch.vgic.vgic_cpu_base = gic_v2_hw_data.cbase;
+        csize = GUEST_GICC_SIZE;
+        vbase = gic_v2_hw_data.vbase + gic_v2_hw_data.aliased_offset;
+    }
     else
     {
         d->arch.vgic.vgic_dist_base = GUEST_GICD_BASE;
@@ -290,7 +303,7 @@ int vgic_v2_map_resources(struct domain *d)
          * region.
          */
         BUILD_BUG_ON(GUEST_GICC_SIZE != SZ_8K);
-        cbase = GUEST_GICC_BASE;
+        d->arch.vgic.vgic_cpu_base = GUEST_GICC_BASE;
         csize = GUEST_GICC_SIZE;
         vbase = gic_v2_hw_data.vbase + gic_v2_hw_data.aliased_offset;
     }
@@ -308,8 +321,8 @@ int vgic_v2_map_resources(struct domain *d)
      * Map the gic virtual cpu interface in the gic cpu interface
      * region of the guest.
      */
-    ret = map_mmio_regions(d, gaddr_to_gfn(cbase), csize / PAGE_SIZE,
-                           maddr_to_mfn(vbase));
+    ret = map_mmio_regions(d, gaddr_to_gfn(d->arch.vgic.vgic_cpu_base),
+                           csize / PAGE_SIZE, maddr_to_mfn(vbase));
     if ( ret )
     {
         gdprintk(XENLOG_ERR, "Unable to remap VGIC CPU to VCPU\n");
diff --git a/xen/include/asm-arm/new_vgic.h b/xen/include/asm-arm/new_vgic.h
index 97d622bff6..ab57fcd91d 100644
--- a/xen/include/asm-arm/new_vgic.h
+++ b/xen/include/asm-arm/new_vgic.h
@@ -186,6 +186,16 @@ struct vgic_cpu {
     uint32_t num_id_bits;
 };
 
+static inline paddr_t vgic_cpu_base(const struct vgic_dist *vgic)
+{
+    return vgic->vgic_cpu_base;
+}
+
+static inline paddr_t vgic_dist_base(const struct vgic_dist *vgic)
+{
+    return vgic->vgic_dist_base;
+}
+
 #endif /* __ASM_ARM_NEW_VGIC_H */
 
 /*
diff --git a/xen/include/asm-arm/vgic.h b/xen/include/asm-arm/vgic.h
index e69a59063a..a81a06c711 100644
--- a/xen/include/asm-arm/vgic.h
+++ b/xen/include/asm-arm/vgic.h
@@ -152,6 +152,7 @@ struct vgic_dist {
     struct pending_irq *pending_irqs;
     /* Base address for guest GIC */
     paddr_t dbase; /* Distributor base address */
+    paddr_t cbase; /* CPU interface base address */
 #ifdef CONFIG_GICV3
     /* GIC V3 addressing */
     /* List of contiguous occupied by the redistributors */
@@ -271,6 +272,16 @@ static inline int REG_RANK_NR(int b, uint32_t n)
 
 enum gic_sgi_mode;
 
+static inline paddr_t vgic_cpu_base(const struct vgic_dist *vgic)
+{
+    return vgic->cbase;
+}
+
+static inline paddr_t vgic_dist_base(const struct vgic_dist *vgic)
+{
+    return vgic->dbase;
+}
+
 /*
  * Offset of GICD_<FOO><n> with its rank, for GICD_<FOO> size <s> with
  * <b>-bits-per-interrupt.
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:33:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:33:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226082.390652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1N-0004Ef-Ht; Tue, 16 Nov 2021 06:32:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226082.390652; Tue, 16 Nov 2021 06:32:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1N-0004DT-Am; Tue, 16 Nov 2021 06:32:45 +0000
Received: by outflank-mailman (input) for mailman id 226082;
 Tue, 16 Nov 2021 06:32:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms1L-0001ym-Ro
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:43 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02on0625.outbound.protection.outlook.com
 [2a01:111:f400:fe07::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00965f2a-46a7-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 07:32:43 +0100 (CET)
Received: from AS9PR06CA0280.eurprd06.prod.outlook.com (2603:10a6:20b:45a::17)
 by PAXPR08MB6750.eurprd08.prod.outlook.com (2603:10a6:102:13f::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Tue, 16 Nov
 2021 06:32:41 +0000
Received: from VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:45a:cafe::1d) by AS9PR06CA0280.outlook.office365.com
 (2603:10a6:20b:45a::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:41 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT025.mail.protection.outlook.com (10.152.18.74) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:40 +0000
Received: ("Tessian outbound a33f292be81b:v110");
 Tue, 16 Nov 2021 06:32:40 +0000
Received: from 807e261bc616.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 207AFA60-8D1D-4E12-B544-83F9B777763F.1; 
 Tue, 16 Nov 2021 06:32:34 +0000
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 807e261bc616.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:34 +0000
Received: from AM6P195CA0001.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::14)
 by DU0PR08MB7414.eurprd08.prod.outlook.com (2603:10a6:10:352::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 06:32:32 +0000
Received: from VE1EUR03FT039.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:81:cafe::d8) by AM6P195CA0001.outlook.office365.com
 (2603:10a6:209:81::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:32 +0000
Received: from nebula.arm.com (40.67.248.234) by
 VE1EUR03FT039.mail.protection.outlook.com (10.152.19.196) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:32 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com
 (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:23 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00965f2a-46a7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=di6LXp+ObESAv9zUS3ByuNk/9QRwMZWkKNg30Nnkt2M=;
 b=gqOA7AdBHQGVWTRI+/s97b4fDj002SnmS0fsgZ+yfzUD4iEvhe82zymF4ubc9fkgMK4JlKEyDW3ncAh1B8EoMQQKCDI6cBQwmOWTPPhVry8W89XAP2+Se1uyVd0dQygLO0QSMG5ID1ERpu6AhP8XvDV6Yw0NAj6bprEZmMm+rss=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: ed62ec4aa64b0e41
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Fg37MS5NcHCEaGDeVXefJv8AO1+OBUmFLXWPq1VAuQMhExf7wCH44tUVRSUNBeaQPG/eNDOTr3SupJU2whL5LmWKdOeQPje8toBSK90EFpETveZSZ8YcDdjak/q/jRe1vr7zbcBmfDDvFwIUMbyZr7lZy9yl5xbpO6yuYk4ChRdOpa6257Z7F4xqpX+EBLzNblo7lg90HjKouH29e7cXqeyaHagjQ1bOKjTiWPtlcdmjsT2lgNtJb2J5h7KB1nKr7I7NqnsV10etEMl3ePutNrUxZlYIN0nWcX4JFavNjwodj7tk5FDaqodj/st2gZPFk96aTXv58adVnib4+UTAHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=di6LXp+ObESAv9zUS3ByuNk/9QRwMZWkKNg30Nnkt2M=;
 b=V/EyL4dDnb/0vM0SYOMTxKjVijq7Bgb9zfKTuGku6a0I5hbi4F41jPmroebaFvpmpxSSpsXC6KFDuHEWeDk9EkTU2yLjYHzXjXVacAeZf4tnhrd/7+hp3YCeQIvnhf9BzGONPB0ZCdt+zfOzHSb5XlmBiVp7pcCjNnHc9Z5pNFDN+XllK347z3HE407oTNYFmpfPrFaxpcHc78eGAtkON+5qCCfz3X2DsiLIiyklcWc6PGh68s/O01bdH9G4H34Ll1aOdur7MgWctpwziyPYOekE9DIap3XCK3ENvvveuE720rRp4WRenvzLTq+kKByvTzqU7jze7WuTZp5OSZjyIg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=di6LXp+ObESAv9zUS3ByuNk/9QRwMZWkKNg30Nnkt2M=;
 b=gqOA7AdBHQGVWTRI+/s97b4fDj002SnmS0fsgZ+yfzUD4iEvhe82zymF4ubc9fkgMK4JlKEyDW3ncAh1B8EoMQQKCDI6cBQwmOWTPPhVry8W89XAP2+Se1uyVd0dQygLO0QSMG5ID1ERpu6AhP8XvDV6Yw0NAj6bprEZmMm+rss=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 07/10] xen/arm: gate make_gicv3_domU_node with CONFIG_GICV3
Date: Tue, 16 Nov 2021 06:31:52 +0000
Message-ID: <20211116063155.901183-8-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 921efb67-754d-4fa7-ba26-08d9a8cae3e4
X-MS-TrafficTypeDiagnostic: DU0PR08MB7414:|PAXPR08MB6750:
X-Microsoft-Antispam-PRVS:
	<PAXPR08MB6750146C4B222E77F6CDFB7CF7999@PAXPR08MB6750.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:82;OLM:82;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 FDLWlQIi9gky1x+cfJzpDFlYnRdrwhmmfSVSHZy5ATmf5Al3ucBa6EMx1zwAtMR6w2Q/1gWYYo0vDO0CIte4BT82NHhMN2ml6VZ3KRSos2LfH0dyd2tmivnFCCFJpXaii8HmIdlBzvuHz7hOMcERLjS/CD7ufC+1ifw6ZjkxMk+4TJfJdRgW6i7jwTmAyXbnXLwDcEbZdLtmEiIJ6ZZfO9Pve7pXT3XME+M5eUhE4OPAwc7ns9qEMmn6lmqP6/mlMr2rAw8mkchaCZ7mnaJbyUWt6cUx/HgNigNBq/HQn4X/7+8+rue6kXTvwYst3TX1+0mS61BjZAEk499ofKsrEcLW4DRD7OAgx2x3Yf8MC1hRsywMDyV3VAAOG83+sDZx5JGmBl98KhwXrWj3yLL3nQ8khk85mHjy4o/ZSvM9kSKY1AgGCfA3WIqdx1aOMunxrCGKqYqYC9XRfpBcB5+C1FKhE2m8N9RGGXO93Je68K7JS89GMRWsOjdod8lv/DrSiT7dyCUnrPfRiBMjGU/C29VfhadNb+nm3u3gmxptab4TekuG4ZSCpU2UZnsc0NSk6uP5RTo9szsuYcNgPMPf811KvuqPwQMpWkNsEnWgWTQPUVmShiWvYJrS4laK0IOjXYRKs9L91sNeljgrJ7hSf5F0T/ySJnNB1+iLTmlcsdR7Fj65PaTHKPvxUk6qiUTqEoanwJA3Plg/gtjpqX+nauWbkaAEfsW31IsKWQoE+2w=
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(8936002)(4744005)(356005)(70206006)(47076005)(6666004)(186003)(81166007)(316002)(110136005)(1076003)(4326008)(7696005)(36756003)(2616005)(82310400003)(426003)(54906003)(86362001)(8676002)(36860700001)(5660300002)(70586007)(26005)(336012)(508600001)(44832011)(2906002)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7414
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	81ac1b34-04ca-49c2-c874-08d9a8caded3
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	la7lbGRNTx4Q08+nfE1qnHTgTBt73ZmSbAqYjWu8IGC1bFlmf29zUIHn7nPz5G8s1zj4DjD5FvpdAj23vyCSa0lsM3Bjt4adL8DoRyIlsNb/i7x2L8P5Og/8yhjHbA061pzIjSDX07FoY0KC3vo0OJVAAkY95RRnjFngcBEiYgH58NdLsMlwxd+q1ICvbi3/TKVxpNC+dmkP3s/OkQaPGsNL+GcqdstmuUt9BbwhTkE/w6vVr+5a51LgbuZT97AXhPVNV2vDYXijfVc0GNH9ewxr1Bcq8wbtTdEpztvcXu6ybwBtWjXf9qEndklvtp5bV0Y/Hol5hGhEMsLXoq1F0dJNxHCF081T9qREt+7blnpf8knHpCURhsuIZ25+hjcynLm0X3PwmJgshkJfq3EEcACxjc/Qxxk8XG7OVSrWrGiRtVRzUta3/97SqBMBdlzV1T4Slgiz1xi4ZaBvR2ulazxjrP6xFyrWRzMFI+EhjMQS+5Wsbdkmy/g9v+FT7JQzLxDpFnREOlUJabUWO2w2EMLxiUge/SXNkzqNphgPKxqoT8NL5OisyGtLnuFdJtJbO1OgbamKW16arTqq4wBh9ilVCaOyRfF8845naYHu5PAsFbfHysGDo/laGEBvAiOMNDaIn9gxCsdWnSXgU/X8mcPvIauWVFe0gwAr9ZzoXkg+3UC2b2sa4ey+/ITnj/M0TkOxIRedpcDo+jl3vn+dVA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(5660300002)(2906002)(508600001)(316002)(110136005)(336012)(26005)(1076003)(186003)(6666004)(70206006)(82310400003)(70586007)(8676002)(7696005)(4326008)(8936002)(86362001)(36860700001)(47076005)(426003)(4744005)(36756003)(2616005)(44832011)(81166007)(54906003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:40.8864
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 921efb67-754d-4fa7-ba26-08d9a8cae3e4
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6750

This commit gates function make_gicv3_domU_node with CONFIG_GICV3, and
also adds ASSERT_UNREACHABLE to catch any misuse.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
v3 changes:
- new commit
---
 xen/arch/arm/domain_build.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index c419a4b2cc..24f3edf069 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2279,6 +2279,7 @@ static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
     return res;
 }
 
+#ifdef CONFIG_GICV3
 static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
 {
     void *fdt = kinfo->fdt;
@@ -2328,6 +2329,12 @@ static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
 
     return res;
 }
+#else
+static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
+{
+    ASSERT_UNREACHABLE();
+}
+#endif
 
 static int __init make_gic_domU_node(struct kernel_info *kinfo)
 {
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:33:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:33:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226090.390665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1X-0005Vr-RE; Tue, 16 Nov 2021 06:32:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226090.390665; Tue, 16 Nov 2021 06:32:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1X-0005Um-N8; Tue, 16 Nov 2021 06:32:55 +0000
Received: by outflank-mailman (input) for mailman id 226090;
 Tue, 16 Nov 2021 06:32:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms1X-0001ym-A5
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:55 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02on0611.outbound.protection.outlook.com
 [2a01:111:f400:fe06::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 069dd605-46a7-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 07:32:54 +0100 (CET)
Received: from AS9PR05CA0049.eurprd05.prod.outlook.com (2603:10a6:20b:489::9)
 by DB9PR08MB6409.eurprd08.prod.outlook.com (2603:10a6:10:23c::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 06:32:50 +0000
Received: from VE1EUR03FT034.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:489:cafe::66) by AS9PR05CA0049.outlook.office365.com
 (2603:10a6:20b:489::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:50 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT034.mail.protection.outlook.com (10.152.18.85) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:50 +0000
Received: ("Tessian outbound c61f076cbd30:v110");
 Tue, 16 Nov 2021 06:32:49 +0000
Received: from 4741c4f88d5b.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 A9E4A306-56E1-4EB3-B334-D26F1DF04EC3.1; 
 Tue, 16 Nov 2021 06:32:42 +0000
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4741c4f88d5b.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:42 +0000
Received: from AM5PR0101CA0035.eurprd01.prod.exchangelabs.com
 (2603:10a6:206:16::48) by PR3PR08MB5595.eurprd08.prod.outlook.com
 (2603:10a6:102:83::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.22; Tue, 16 Nov
 2021 06:32:41 +0000
Received: from VE1EUR03FT006.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:206:16:cafe::9) by AM5PR0101CA0035.outlook.office365.com
 (2603:10a6:206:16::48) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:41 +0000
Received: from nebula.arm.com (40.67.248.234) by
 VE1EUR03FT006.mail.protection.outlook.com (10.152.18.116) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:41 +0000
Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX03.Arm.com
 (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:26 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com
 (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.20; Tue, 16
 Nov 2021 06:32:25 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 069dd605-46a7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R6yQcz0F6cxrLdZUIW64dYS0xxC/jz2U+B9GDRT6stE=;
 b=yogIbBjuCreQM+VV5rceSr9JTfKLuNTZ93o9EfjCCOSUQcLSBaks/5GxRS76ac6QCBHZg+aiE0SZ3/Y27hrYtqXrXA1BuxjWhqX8q/lOrXbTVnY5uP5QfJEFDO9Ntx2Dh3OSyx/Bhe22pEpv9Fy6QRTcONpgT8/vzD1Zjw5NMMA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: dd3784fd744465bc
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BhzxyDpVh4G6ewt9VzrSNqH+WScYvSlJey4H9EGMsrB+YWqMyfRCCjhAckA58n+5lXKlza6kouBjJydouC3JdoivB2m1krKZMua2pv1Fyjl7Vvdw1ZEl3HeoClTWlvuPLzSl7TpvriKgljqZM6C2PwqPqvgXiGnTEIVW5PzVznbal1ARZs6g70TWGWvdxNX4ot26kMw5uLfOnEK30bA8xeLGgt+i9sOhHeyXqh9mdwQ+aAGfr0WwU9810Ee8wMi9B4d3frdQdhSvNugSiXg8S2gI0SJgJRt24cRZ1qjsVKpujo55PF8OIU+FnBRouuCFkZre0bu/UXgjivEUQd2BEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R6yQcz0F6cxrLdZUIW64dYS0xxC/jz2U+B9GDRT6stE=;
 b=hmOW7js3A1rTZVFof8zE+3+YmwHp4qnofIVI0DePsTuAfcfQhUsBS/0sd4gLvToNLuEtzZ2TPRaLmU98p4n9Q445SIHvLbsGjPIs3SOEku7NcEdzesNkq7N7GegrzewI4llR8NAvVsPqzVss/4uY06S1JADKm9BJJkb/8SOm8Qz/ib/74KozvhrNAr7d8IyH4vwehd79fcc1DzuXdmmO/4utReQRZwPkyNZErGBoMJbhJMXOVwKVSrT1+u1zvI2KkErg3z7wwR8NU40iROYFQ7ZS6Y4W4rScssmXlVrCjh+oFf0iQd3ec8tvavT+GoDrIk7KiXNytwh3MSSYR/kJ3w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R6yQcz0F6cxrLdZUIW64dYS0xxC/jz2U+B9GDRT6stE=;
 b=yogIbBjuCreQM+VV5rceSr9JTfKLuNTZ93o9EfjCCOSUQcLSBaks/5GxRS76ac6QCBHZg+aiE0SZ3/Y27hrYtqXrXA1BuxjWhqX8q/lOrXbTVnY5uP5QfJEFDO9Ntx2Dh3OSyx/Bhe22pEpv9Fy6QRTcONpgT8/vzD1Zjw5NMMA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 08/10] xen/arm: if direct-map domain use native addresses for GICv3
Date: Tue, 16 Nov 2021 06:31:53 +0000
Message-ID: <20211116063155.901183-9-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fc5a00a9-c66a-4dde-7b58-08d9a8cae955
X-MS-TrafficTypeDiagnostic: PR3PR08MB5595:|DB9PR08MB6409:
X-Microsoft-Antispam-PRVS:
	<DB9PR08MB64096AA6F956704327DBECD5F7999@DB9PR08MB6409.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 JLgFzWKd8I2rkZNbtGVPjJC0I9E5MQvOdKHA/sOUWU8c0ecZM0/hNdnF7Kd+3G30SMvTYgDFQ2MXkDwcQx7FdRAdrXCzlCrJ12sky1LshQbZnVOEYag9sPd+boxR/Agad6VhkFCAwW43q6cefDJbQSnobeMCQXxKO3sZWzF87Ty/57RpFx+kA2XldM4AU+yN+F5h//hTk7DZjU7EBNDzQfoK7SWIhpryh8zoN8V/NvQP227I5n1+SEfhnr05jt+LvehHvEHMsqDtKogxGix3jur10Bj2D11G8F+YrFWZZh0VD1+6yqvs1z3lkgpLxhuLJ0/Tma/lyQ1EkjNEUoc5AFvTPSoaBiQ8R6eY8mpx+94IQrCzLd6Xmwqvima2Y7OIUAZdyFYf78h7F1mRdYhxX0xyBLcQS/KdniGvuz4hn092bgmm7OUz1+fSfQmkOuD255u/LxAJlOLki7p9MJboE+Xg7bfm8NGFSKOUr+696Q6kcszybl+iWQG8Ljk/fJdDmEB8x2tk5soXRoBY+FVYLmxlX+o32NxksXIB+N5OHP+8nURcrie6HPD3NrJyF6Q6XUcq4bOdzAVatY40x8hmydS4zcLn1uCP4ZHkcWSjVbhauXHGAQN14GIooO33A/j3ZJeTrckCtaDnCTQj0YQ9rKjg1Z4MO2xck2SOsWa8ARyqCjEShyOzNaDsh97nu4ygYrGnV7uIa88Cb0o8SjCAGprcKlk1EXPJc8b3LrbbENw=
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(2616005)(508600001)(110136005)(26005)(54906003)(47076005)(186003)(83380400001)(36860700001)(36756003)(86362001)(336012)(316002)(7696005)(1076003)(81166007)(8676002)(2906002)(4326008)(8936002)(356005)(82310400003)(426003)(5660300002)(6666004)(44832011)(70586007)(70206006)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5595
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT034.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3f91073c-622e-4d43-38b8-08d9a8cae412
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hB9ekgG70XHoEYDE9+dvIqALpySNYLgUiHRIzMfBVKisptIyBYWKIZaEK+IUk+WX00dLwxAtHncngy+M5pZSnEop8DTnK3eWUs5acAbd8p/Gm9BODog9gOTjZ7mzx9fu6wEE2m8ycX192S4DujJDCxKRFp/FBVVmQYl9i5Od//B+ma9TjhqmlcM/mnlRxwJyfRO1Obx8S5O4TRaYiLL072xyRkr1AxndmVW/CZUTLHlCZKr242Oy+wzsXgLg+eZu6Q+MBQyJP1uZlpynoDzROtiAxRPAIQUsxLmq4QRurmJ4ckBQI0nD+py85AxfHorOIWGc1MmBvH084/HOjkPN8GgLAor7rmT5rO5Ad4Vdl/EwFlN3Az+q5arJ8XWxqxBGwFJbaW5L7tW2aSRmOdL+Xp3AEvozVSCr/7g1yvBzCGM9GKgQulgosVqwwOhna5isfOyrqs1K3/pYspedzCoyt8wwBOLcGnuoeyPfhMYoa3Vn/CN0sE+Nbaxfuvg/Jq9tcplVjeRHMEW70Vry29Imrur0Q+7UeuLIf8l+cr9iJ2RaNr28weuS/0kIOHkshB03aaVFD4IsJsnqvZe0ju8z2EeyeuooJg861ypPhCL8V9FNmQi5AmrimKXPcxPeMMYSd3toyXXBFz3Jeg48QNQtt/J0F5qLJ+P7Z3oylIXjZuKqu6tTG77z4R131Ut470nniFvmY88CF8r/3LLS+bdXlA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(186003)(1076003)(7696005)(70206006)(8676002)(5660300002)(508600001)(70586007)(26005)(83380400001)(316002)(54906003)(2906002)(110136005)(47076005)(6666004)(8936002)(36860700001)(4326008)(36756003)(81166007)(86362001)(82310400003)(44832011)(336012)(2616005)(426003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:50.0100
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fc5a00a9-c66a-4dde-7b58-08d9a8cae955
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT034.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6409

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

Today we use native addresses to map the GICv3 for Dom0 and fixed
addresses for DomUs.

This patch changes the behavior so that native addresses are used for
all domain which is using the host memory layout

Considering that DOM0 may not always be directly mapped in the future,
this patch introduces a new helper "domain_use_host_layout()" that
wraps both two check "is_domain_direct_mapped(d) || is_hardware_domain(d)"
for more flexible usage.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
v2 changes:
- remove redistributor accessor
- introduce new helper "is_domain_use_host_layout()"
- comment fix
---
v3 changes:
- the comment on top of 'buf' to explain how 38 was found
- fix res getting overwritten
- drop 'cells += (GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS)'
- free 'reg' right way
- fix comment
- rename 'is_domain_use_host_layout()' to 'domain_use_host_layout()'
---
 xen/arch/arm/domain_build.c  | 37 +++++++++++++++++++++++++++---------
 xen/arch/arm/vgic-v3.c       | 29 ++++++++++++++++------------
 xen/include/asm-arm/domain.h |  7 +++++++
 3 files changed, 52 insertions(+), 21 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 24f3edf069..61fd374c5d 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2284,10 +2284,16 @@ static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
 {
     void *fdt = kinfo->fdt;
     int res = 0;
-    __be32 reg[(GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS) * 2];
-    __be32 *cells;
+    __be32 *reg;
+    const struct domain *d = kinfo->d;
+    /* Placeholder for interrupt-controller@ + a 64-bit number + \0 */
+    char buf[38];
+    unsigned int i, len = 0;
 
-    res = fdt_begin_node(fdt, "interrupt-controller@"__stringify(GUEST_GICV3_GICD_BASE));
+    snprintf(buf, sizeof(buf), "interrupt-controller@%"PRIx64,
+             vgic_dist_base(&d->arch.vgic));
+
+    res = fdt_begin_node(fdt, buf);
     if ( res )
         return res;
 
@@ -2307,13 +2313,26 @@ static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
     if ( res )
         return res;
 
-    cells = &reg[0];
-    dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
-                       GUEST_GICV3_GICD_BASE, GUEST_GICV3_GICD_SIZE);
-    dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
-                       GUEST_GICV3_GICR0_BASE, GUEST_GICV3_GICR0_SIZE);
+    /* reg specifies all re-distributors and Distributor. */
+    len = (GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS) *
+          (d->arch.vgic.nr_regions + 1) * sizeof(__be32);
+    reg = xmalloc_bytes(len);
+    if ( reg == NULL )
+        return -ENOMEM;
 
-    res = fdt_property(fdt, "reg", reg, sizeof(reg));
+    dt_child_set_range(&reg, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
+                       vgic_dist_base(&d->arch.vgic), GUEST_GICV3_GICD_SIZE);
+
+    for ( i = 0; i < d->arch.vgic.nr_regions; i++)
+    {
+        dt_child_set_range(&reg,
+                           GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
+                           d->arch.vgic.rdist_regions[i].base,
+                           d->arch.vgic.rdist_regions[i].size);
+    }
+
+    res = fdt_property(fdt, "reg", reg, len);
+    xfree(reg);
     if (res)
         return res;
 
diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 65bb7991a6..181b66513d 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -1640,14 +1640,15 @@ static inline unsigned int vgic_v3_max_rdist_count(struct domain *d)
      * Normally there is only one GICv3 redistributor region.
      * The GICv3 DT binding provisions for multiple regions, since there are
      * platforms out there which need those (multi-socket systems).
-     * For Dom0 we have to live with the MMIO layout the hardware provides,
-     * so we have to copy the multiple regions - as the first region may not
-     * provide enough space to hold all redistributors we need.
+     * For domain using the host memory layout, we have to live with the MMIO
+     * layout the hardware provides, so we have to copy the multiple regions
+     * - as the first region may not provide enough space to hold all
+     * redistributors we need.
      * However DomU get a constructed memory map, so we can go with
      * the architected single redistributor region.
      */
-    return is_hardware_domain(d) ? vgic_v3_hw.nr_rdist_regions :
-               GUEST_GICV3_RDIST_REGIONS;
+    return domain_use_host_layout(d) ? vgic_v3_hw.nr_rdist_regions :
+                                       GUEST_GICV3_RDIST_REGIONS;
 }
 
 static int vgic_v3_domain_init(struct domain *d)
@@ -1669,10 +1670,14 @@ static int vgic_v3_domain_init(struct domain *d)
     radix_tree_init(&d->arch.vgic.pend_lpi_tree);
 
     /*
-     * Domain 0 gets the hardware address.
-     * Guests get the virtual platform layout.
+     * Since we map the whole GICv3 register memory map(64KB) for
+     * all domain, DOM0 and direct-map domain could be treated the
+     * same way here.
+     * For domain using the host memory layout, it gets the hardware
+     * address.
+     * Other domains get the virtual platform layout.
      */
-    if ( is_hardware_domain(d) )
+    if ( domain_use_host_layout(d) )
     {
         unsigned int first_cpu = 0;
 
@@ -1695,10 +1700,10 @@ static int vgic_v3_domain_init(struct domain *d)
         }
 
         /*
-         * The hardware domain may not use all the re-distributors
-         * regions (e.g when the number of vCPUs does not match the
-         * number of pCPUs). Update the number of regions to avoid
-         * exposing unused region as they will not get emulated.
+         * For domain using the host memory layout, it may not use all
+         * the re-distributors regions (e.g when the number of vCPUs does
+         * not match the number of pCPUs). Update the number of regions to
+         * avoid exposing unused region as they will not get emulated.
          */
         d->arch.vgic.nr_regions = i + 1;
 
diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
index 4f2c3f09d4..0eff93197e 100644
--- a/xen/include/asm-arm/domain.h
+++ b/xen/include/asm-arm/domain.h
@@ -32,6 +32,13 @@ enum domain_type {
 #define is_domain_direct_mapped(d) \
         (d->options & XEN_DOMCTL_CDF_INTERNAL_directmap)
 
+/*
+ * For domain using the host memory layout, we have to live with the MMIO
+ * layout the hardware provides.
+ */
+#define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
+                                   is_hardware_domain(d))
+
 struct vtimer {
     struct vcpu *v;
     int irq;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:33:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226093.390676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1d-0006Fh-Br; Tue, 16 Nov 2021 06:33:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226093.390676; Tue, 16 Nov 2021 06:33:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1d-0006Ey-5g; Tue, 16 Nov 2021 06:33:01 +0000
Received: by outflank-mailman (input) for mailman id 226093;
 Tue, 16 Nov 2021 06:32:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms1b-0001yg-Lw
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:32:59 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0609.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 098b26ab-46a7-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 07:32:57 +0100 (CET)
Received: from AM5PR0502CA0013.eurprd05.prod.outlook.com
 (2603:10a6:203:91::23) by PAXPR08MB7367.eurprd08.prod.outlook.com
 (2603:10a6:102:229::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 06:32:53 +0000
Received: from AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:203:91:cafe::c7) by AM5PR0502CA0013.outlook.office365.com
 (2603:10a6:203:91::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:52 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT057.mail.protection.outlook.com (10.152.17.44) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:52 +0000
Received: ("Tessian outbound dbb52aec1fa6:v110");
 Tue, 16 Nov 2021 06:32:51 +0000
Received: from d653011d021c.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 B96E7655-4492-4119-8BA8-FBA8819B07D6.1; 
 Tue, 16 Nov 2021 06:32:45 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d653011d021c.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:45 +0000
Received: from AM5PR0101CA0029.eurprd01.prod.exchangelabs.com
 (2603:10a6:206:16::42) by VI1PR08MB3661.eurprd08.prod.outlook.com
 (2603:10a6:803:79::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 06:32:42 +0000
Received: from VE1EUR03FT006.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:206:16:cafe::f9) by AM5PR0101CA0029.outlook.office365.com
 (2603:10a6:206:16::42) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:42 +0000
Received: from nebula.arm.com (40.67.248.234) by
 VE1EUR03FT006.mail.protection.outlook.com (10.152.18.116) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:42 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com
 (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:27 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 098b26ab-46a7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GRxZTJNNAqW5OBOnoR1AuMPnoAwFgFXtUolX3JoNjy8=;
 b=e9DuDf2aIvhgmmjfmG06VAwvTusD/mME3+n8mSXAuuLYpJEJQx4IYHxRuYEBF+rNqjaq5oIpXNkvgfeuqptdC0fxMC2h44yQl8j4zLSamm1ZkYO0kiXeATG0po5w4nJlNoUIvIw8mbckn4YoI7YGhKm8v63QaUo63hdi4ihrhW4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 986fbe51ccfa8879
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=R2CSDQINA+Bw1tlDDas4I7+8Ivoq0jU0ez2btLBFUtZXiZhDg9qpAZhv/PdRMFPFXmSfYLgjeGwk2ihQEEIDpUg73eJv1XVAwV9zsPmQhwrmT/PCdhOZwW1VeXyCcMmBbYb1kXj4gorKqOTXBfdMuEYIXDcuTXSFXLsYF7rJLSVW/hWuSLp/p75PG2IOsFd9fD1635az4IsigsGmBUXaykz5qSyHPiqW6BDm1HtoI6ohKxMifw8FIGFpIftGZxSpjUUMBdA9XgRk/qbQhdtrJKxZIDIO2IOF/8rnbnuuUQT1qt0FXNDOU6i4MLHJ59wWlgd5g/GlWKkKbQojeDs9zA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GRxZTJNNAqW5OBOnoR1AuMPnoAwFgFXtUolX3JoNjy8=;
 b=NyBmeJ1TaY3kExXJHEamJd86fxT+1RJyq5XFTJzC7/g9NNpZw5RBcewP3Y3X9Ba2WSlrLLgj2pP+S/1qDVJaS3Dk8eJCzT7wK7iUuK8pEIGms7snSee4/5HsZNHfD/Nv3ASwUpN11e6Ma/jtZ5OiRKj/6qpBOTnxPUKTsDOTdyetLLlVDOiEa12iQHKAwWGDGi1daYpLuILDru3JswcYGtgvOTAxNgRjMOmdoyQhNpl9YSTXGOka6BZ2b7wBUyK/HPlOKl3KZ3PwU3om9ICWPKhezs4UczUasN06TmbbcZ9HzDPXcUcdNlgdtLrWBDsqBgognV70i1+5GeEMu7kyFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GRxZTJNNAqW5OBOnoR1AuMPnoAwFgFXtUolX3JoNjy8=;
 b=e9DuDf2aIvhgmmjfmG06VAwvTusD/mME3+n8mSXAuuLYpJEJQx4IYHxRuYEBF+rNqjaq5oIpXNkvgfeuqptdC0fxMC2h44yQl8j4zLSamm1ZkYO0kiXeATG0po5w4nJlNoUIvIw8mbckn4YoI7YGhKm8v63QaUo63hdi4ihrhW4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 09/10] xen/arm: if direct-map domain use native UART address and IRQ number for vPL011
Date: Tue, 16 Nov 2021 06:31:54 +0000
Message-ID: <20211116063155.901183-10-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f44fcb65-c6bd-482f-cc4c-08d9a8caeabd
X-MS-TrafficTypeDiagnostic: VI1PR08MB3661:|PAXPR08MB7367:
X-Microsoft-Antispam-PRVS:
	<PAXPR08MB736749730C031C6A42D96239F7999@PAXPR08MB7367.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 600cfyFuATTHHTloJIjnnfdyCiBPSEuhLqnEFO1AvfDivZq54/E4AV3oXX1xMpe8PNkFPzNjiwROC+9M+mvCrQw+9l4fHJmeQe9/wJISPiIfMlk0qVgT3c8BySxx35rlYpjtX0UBKlSLYIXkBCWzuPqx6nojpwOPqO3bmfzIn0QZWtLO/SxCHaUpWA/vQ4eX4xS6TRuZXkpL1aXBoEJyoTgbAr8AYsOyyWQguvISap2zhzL6zkhDOQfcjycFJ0xyOev6i90TvtZAEXRmKEpsIVRfMnR9MrF+Z0W3l1AthoBQWzp5wR9oVpqI/4GLcvMdINzfX7MPPp42iuj4TrUrj5bYfJ+jPlM/v+XwclcKDPUkrClTfWRcu4FiNna0aPVpkZ5Orn/pnUmVOv0Rdq6MI8lPRncMKchcHFpzdvVakJQgo5Mv9PMMZi378FxYOrIG96gVL5qShfTWj3ecnAcnYfHYLTgzPyqdebn93EIlQ64QTSifMgJlqFS48ShzutNDsqZsh1NJqARQxMTXIKpG7K2jBNHjjnp0AqBHNHZ6LgxpohLho+n0K7NEAW3RQZoSxLPonHk/+SJrJMhceriUR2+SohJaJ9jePdbHbovkCmfWMwaY5oF55eB8Iz81Wy6f2bcagpn7XsemKffHVInprnm4puMehefrndce52OxWLRqnKAAamSrQUg+KgPAzE5DIy2K40YKbVM6vzTUAe7/YkA+56vpiXnX1XkTRApEMMQ=
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(81166007)(8936002)(47076005)(1076003)(70586007)(2906002)(36756003)(82310400003)(54906003)(356005)(2616005)(44832011)(7696005)(426003)(86362001)(508600001)(26005)(8676002)(5660300002)(336012)(6666004)(316002)(4326008)(186003)(36860700001)(83380400001)(70206006)(110136005)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3661
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	d1fc28c6-384d-4796-2047-08d9a8cae4bc
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	yZLkr4ZJiSEacC/uxDYHQ89P9E64+zNEYmF+EEdtWixN64Gw/V2c+QrcygAmCuI98tAs9oHA4xw7VlxP8YJLytQYNsGHuhDGlyY9zNbz18+gCuifd9OHRpt414fx/q8bBw7i5qUr2t3WqvRkSl2UoSHt/Tj65zTKzwh/U2foQwEBnqP+YPeyE0bUjCySWQ393pb2B/hiW5/rFf55Te2ZmZkw2Z1FYb5+H9ShxKvqeG3Rs00fTdu7miiQoiPbX6TO16x7TWKj3XdDtpdW6NcaHbZjbOHcG7Q3gEPRlpeU+5bZu2gDnWr7uuEy2IyR2OGD3XlPXWIdQAGoWYPkHdM2JMljNm81uySIxSwFFPfQ87kL3A+b4gLePMIpTFlC8o6khtkoo+o1hEl/pgtJwF6rXVSGDusKbP1resSa48CSoq6NKNx9sBkg4x6q8OTVmbSLgfI4cEOOvVXCW64NnhNvTVPOfGQgzHGEl5ud82nIUoxs+BRQzLXSED99peXtjakOHuJmxEvPPggMKunEpzfTQnGdyiOLu9rhvDc2s+SwkCAVlFnKDMuF8wChBOGQwAFtnR9lgY7aDkUCMvEIdF5b+uoK8oE4EnXih6BNeAIXZroW0Rom0YkJHP0ExNj9XpG0rrXYdLU0X0CeNfJxhx1niqmpByWbBqngQliyJUepYmgvp9CqeHq5RYlCUzBmrbCGEy+gVI/h+RDQHZ25qXjbjg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(81166007)(36756003)(2906002)(1076003)(70206006)(70586007)(36860700001)(26005)(336012)(5660300002)(7696005)(4326008)(426003)(83380400001)(110136005)(8676002)(316002)(82310400003)(54906003)(6666004)(2616005)(47076005)(508600001)(8936002)(44832011)(86362001)(186003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:52.4053
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f44fcb65-c6bd-482f-cc4c-08d9a8caeabd
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7367

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

We always use a fix address to map the vPL011 to domains. The address
could be a problem for direct-map domains.

So, for domains that are directly mapped, reuse the address of the
physical UART on the platform to avoid potential clashes.

Do the same for the virtual IRQ number: instead of always using
GUEST_VPL011_SPI, try to reuse the physical SPI number if possible.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
v2 changes:
- explain why vpl011 initialization before creating its device tree node
- error out if the domain is direct-mapped and the IRQ is not found
- harden the code and add a check/comment when the hardware UART region
is smaller than GUEST_VPL011_SIZE.
---
v3 changes:
- explain how the '27' was found for 'buf'
- fix checking before dereferencing
- refine comment message
---
 xen/arch/arm/domain_build.c  | 42 ++++++++++++++++++++-----
 xen/arch/arm/vpl011.c        | 60 +++++++++++++++++++++++++++++++-----
 xen/include/asm-arm/vpl011.h |  2 ++
 3 files changed, 90 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 61fd374c5d..871c7114ae 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -30,6 +30,7 @@
 
 #include <xen/irq.h>
 #include <xen/grant_table.h>
+#include <xen/serial.h>
 
 static unsigned int __initdata opt_dom0_max_vcpus;
 integer_param("dom0_max_vcpus", opt_dom0_max_vcpus);
@@ -2376,8 +2377,12 @@ static int __init make_vpl011_uart_node(struct kernel_info *kinfo)
     gic_interrupt_t intr;
     __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
     __be32 *cells;
+    struct domain *d = kinfo->d;
+    /* Placeholder for sbsa-uart@ + a 64-bit number + \0 */
+    char buf[27];
 
-    res = fdt_begin_node(fdt, "sbsa-uart@"__stringify(GUEST_PL011_BASE));
+    snprintf(buf, sizeof(buf), "sbsa-uart@%"PRIx64, d->arch.vpl011.base_addr);
+    res = fdt_begin_node(fdt, buf);
     if ( res )
         return res;
 
@@ -2387,14 +2392,14 @@ static int __init make_vpl011_uart_node(struct kernel_info *kinfo)
 
     cells = &reg[0];
     dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS,
-                       GUEST_ROOT_SIZE_CELLS, GUEST_PL011_BASE,
+                       GUEST_ROOT_SIZE_CELLS, d->arch.vpl011.base_addr,
                        GUEST_PL011_SIZE);
 
     res = fdt_property(fdt, "reg", reg, sizeof(reg));
     if ( res )
         return res;
 
-    set_interrupt(intr, GUEST_VPL011_SPI, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+    set_interrupt(intr, d->arch.vpl011.virq, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
 
     res = fdt_property(fdt, "interrupts", intr, sizeof (intr));
     if ( res )
@@ -3109,6 +3114,14 @@ static int __init construct_domU(struct domain *d,
             allocate_static_memory(d, &kinfo, node);
     }
 
+    /*
+     * Base address and irq number are needed when creating vpl011 device
+     * tree node in prepare_dtb_domU, so initialization on related variables
+     * shall be done first.
+     */
+    if ( kinfo.vpl011 )
+        rc = domain_vpl011_init(d, NULL);
+
     rc = prepare_dtb_domU(d, &kinfo);
     if ( rc < 0 )
         return rc;
@@ -3117,9 +3130,6 @@ static int __init construct_domU(struct domain *d,
     if ( rc < 0 )
         return rc;
 
-    if ( kinfo.vpl011 )
-        rc = domain_vpl011_init(d, NULL);
-
     return rc;
 }
 
@@ -3161,15 +3171,33 @@ void __init create_domUs(void)
 
         if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
         {
+            unsigned int vpl011_virq = GUEST_VPL011_SPI;
+
             d_cfg.arch.nr_spis = gic_number_lines() - 32;
 
+            /*
+             * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
+             * set, in which case it'll match the hardware.
+             *
+             * Since here the domain is not totally built, we need to
+             * open-code the logic to find the vIRQ. and the logic here
+             * is consistent with the ones in domain_vpl011_init().
+             */
+            if ( d_cfg.flags & XEN_DOMCTL_CDF_INTERNAL_directmap )
+            {
+                vpl011_virq = serial_irq(SERHND_DTUART);
+                if ( vpl011_virq < 0 )
+                    panic("Error getting IRQ number for this serial port %d\n",
+                          SERHND_DTUART);
+            }
+
             /*
              * vpl011 uses one emulated SPI. If vpl011 is requested, make
              * sure that we allocate enough SPIs for it.
              */
             if ( dt_property_read_bool(node, "vpl011") )
                 d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
-                                         GUEST_VPL011_SPI - 32 + 1);
+                                         vpl011_virq - 32 + 1);
         }
 
         /*
diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index 895f436cc4..65610bccaf 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -29,6 +29,7 @@
 #include <xen/mm.h>
 #include <xen/sched.h>
 #include <xen/console.h>
+#include <xen/serial.h>
 #include <public/domctl.h>
 #include <public/io/console.h>
 #include <asm/pl011-uart.h>
@@ -71,11 +72,11 @@ static void vpl011_update_interrupt_status(struct domain *d)
      * status bit has been set since the last time.
      */
     if ( uartmis & ~vpl011->shadow_uartmis )
-        vgic_inject_irq(d, NULL, GUEST_VPL011_SPI, true);
+        vgic_inject_irq(d, NULL, vpl011->virq, true);
 
     vpl011->shadow_uartmis = uartmis;
 #else
-    vgic_inject_irq(d, NULL, GUEST_VPL011_SPI, uartmis);
+    vgic_inject_irq(d, NULL, vpl011->virq, uartmis);
 #endif
 }
 
@@ -347,7 +348,8 @@ static int vpl011_mmio_read(struct vcpu *v,
                             void *priv)
 {
     struct hsr_dabt dabt = info->dabt;
-    uint32_t vpl011_reg = (uint32_t)(info->gpa - GUEST_PL011_BASE);
+    uint32_t vpl011_reg = (uint32_t)(info->gpa -
+                                     v->domain->arch.vpl011.base_addr);
     struct vpl011 *vpl011 = &v->domain->arch.vpl011;
     struct domain *d = v->domain;
     unsigned long flags;
@@ -430,7 +432,8 @@ static int vpl011_mmio_write(struct vcpu *v,
                              void *priv)
 {
     struct hsr_dabt dabt = info->dabt;
-    uint32_t vpl011_reg = (uint32_t)(info->gpa - GUEST_PL011_BASE);
+    uint32_t vpl011_reg = (uint32_t)(info->gpa -
+                                     v->domain->arch.vpl011.base_addr);
     struct vpl011 *vpl011 = &v->domain->arch.vpl011;
     struct domain *d = v->domain;
     unsigned long flags;
@@ -626,6 +629,49 @@ int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
     if ( vpl011->backend.dom.ring_buf )
         return -EINVAL;
 
+    /*
+     * The VPL011 virq is GUEST_VPL011_SPI, except for direct-map domains
+     * where the hardware value shall be used.
+     * And the logic here should stay in sync with the one in
+     * create_domUs().
+     */
+    if ( is_domain_direct_mapped(d) )
+    {
+        const struct vuart_info *uart = serial_vuart_info(SERHND_DTUART);
+        int vpl011_irq = serial_irq(SERHND_DTUART);
+
+        if ( (uart != NULL) && (vpl011_irq > 0) )
+        {
+            vpl011->base_addr = uart->base_addr;
+            vpl011->virq = vpl011_irq;
+        }
+        else
+        {
+            printk(XENLOG_ERR
+                   "vpl011: Unable to re-use the Xen UART information.\n");
+            return -EINVAL;
+        }
+
+        /*
+         * Since the PL011 we emulate for the guest requires a 4KB region,
+         * and on some Hardware (e.g. on some sunxi SoC), the UART MMIO
+         * region is less than 4KB, in which case, there may exist multiple
+         * devices within the same 4KB region, here adds the following check to
+         * prevent potential known pitfalls
+         */
+        if ( uart->size < GUEST_PL011_SIZE )
+        {
+            printk(XENLOG_ERR
+                   "vpl011: Can't re-use the Xen UART MMIO region as it is too small.\n");
+            return -EINVAL;
+        }
+    }
+    else
+    {
+        vpl011->base_addr = GUEST_PL011_BASE;
+        vpl011->virq = GUEST_VPL011_SPI;
+    }
+
     /*
      * info is NULL when the backend is in Xen.
      * info is != NULL when the backend is in a domain.
@@ -661,7 +707,7 @@ int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
         }
     }
 
-    rc = vgic_reserve_virq(d, GUEST_VPL011_SPI);
+    rc = vgic_reserve_virq(d, vpl011->virq);
     if ( !rc )
     {
         rc = -EINVAL;
@@ -673,12 +719,12 @@ int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
     spin_lock_init(&vpl011->lock);
 
     register_mmio_handler(d, &vpl011_mmio_handler,
-                          GUEST_PL011_BASE, GUEST_PL011_SIZE, NULL);
+                          vpl011->base_addr, GUEST_PL011_SIZE, NULL);
 
     return 0;
 
 out2:
-    vgic_free_virq(d, GUEST_VPL011_SPI);
+    vgic_free_virq(d, vpl011->virq);
 
 out1:
     if ( vpl011->backend_in_domain )
diff --git a/xen/include/asm-arm/vpl011.h b/xen/include/asm-arm/vpl011.h
index e6c7ab7381..c09abcd7a9 100644
--- a/xen/include/asm-arm/vpl011.h
+++ b/xen/include/asm-arm/vpl011.h
@@ -53,6 +53,8 @@ struct vpl011 {
     uint32_t    uarticr;        /* Interrupt clear register */
     uint32_t    uartris;        /* Raw interrupt status register */
     uint32_t    shadow_uartmis; /* shadow masked interrupt register */
+    paddr_t     base_addr;
+    unsigned int virq;
     spinlock_t  lock;
     evtchn_port_t evtchn;
 };
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 06:33:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 06:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226094.390681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1d-0006Kr-Qa; Tue, 16 Nov 2021 06:33:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226094.390681; Tue, 16 Nov 2021 06:33:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mms1d-0006K6-Fk; Tue, 16 Nov 2021 06:33:01 +0000
Received: by outflank-mailman (input) for mailman id 226094;
 Tue, 16 Nov 2021 06:33:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dk95=QD=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1mms1c-0001yg-49
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 06:33:00 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on0623.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09abfe24-46a7-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 07:32:58 +0100 (CET)
Received: from AS9PR06CA0065.eurprd06.prod.outlook.com (2603:10a6:20b:464::30)
 by AM6PR08MB3909.eurprd08.prod.outlook.com (2603:10a6:20b:8e::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 06:32:35 +0000
Received: from VE1EUR03FT015.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:464:cafe::b6) by AS9PR06CA0065.outlook.office365.com
 (2603:10a6:20b:464::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:35 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT015.mail.protection.outlook.com (10.152.18.176) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 06:32:33 +0000
Received: ("Tessian outbound de6049708a0a:v110");
 Tue, 16 Nov 2021 06:32:33 +0000
Received: from 43cec5f3e56d.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 55F79680-E9D2-445F-940F-8917808E6AA3.1; 
 Tue, 16 Nov 2021 06:32:26 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 43cec5f3e56d.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 06:32:26 +0000
Received: from DB7PR02CA0026.eurprd02.prod.outlook.com (2603:10a6:10:52::39)
 by DB7PR08MB3323.eurprd08.prod.outlook.com (2603:10a6:5:1c::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 06:32:15 +0000
Received: from DB5EUR03FT022.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:52:cafe::e8) by DB7PR02CA0026.outlook.office365.com
 (2603:10a6:10:52::39) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:15 +0000
Received: from nebula.arm.com (40.67.248.234) by
 DB5EUR03FT022.mail.protection.outlook.com (10.152.20.171) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 06:32:15 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com
 (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 16 Nov
 2021 06:32:14 +0000
Received: from penny.shanghai.arm.com (10.169.190.66) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server id 15.1.2308.20 via Frontend
 Transport; Tue, 16 Nov 2021 06:32:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 09abfe24-46a7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HLLz/WofmlF99QVBOwKRtERUtZEC32OCFQqbgszLG0k=;
 b=axeZAptQUP2ucEdgz0mseLytPExPjzqSTD8/wfJ2Gy+RUieno4wGyTDz2wrbimiAvXgJJ8J780PiXaQFq7Am9tESYsLDvUrEDrOzvVDMspf6T2UdMN+GGPWakTLmWwY6Nusr+cfE+WeeHADv/BNfTiowLfoSO7Dg/KbA6xxASQ0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: cd8ed3fcd4df5581
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GhO4E2uWlx814IYB6wVQze6ku2kxubxb1szKSG83kyFuxaC4pbmYly8CQd6EoPc5iKfcC8dftzSCeEig4S163wBi0i5pwADVb1YtRNQzJYZDp01xVdHt66r7eZZCQvq9gHBVuGTsJJeO4SV4Y9M46JVjOkQ3BlV2Pw99I5WUlWfEJxhQtVRrDp6Da82JCUkBrnqBKX3b83jacGS8tawRL3fSu+srIt8G5e9U8uwTAGTTDd1AvNHsb2qwMQsZ7CEmH8YGArYqmIiXynj4HNV1GUiKd44kWrJcULQ2UKgmFYJxi22pBE1Jop+P/TxkABuTCUESg7pnrOtnscm0mUshrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HLLz/WofmlF99QVBOwKRtERUtZEC32OCFQqbgszLG0k=;
 b=oYCS6aqjrSeFfUALIZp2sbv5nA0yXK4UnpTh0dnbBKWrJIGMzaCt5bsMkXyMKeuT8qUKKol7IbqNGS95r9JGQ8lT10mk8dS+zWgZTeCWiFlKyrEHxDadgX/fKAfPSVo0mjOxvPEVnX/e43wF7/xRMO8fUlGEJnxKjfTi9jUWCwP8bp91+B2fNCiy5C5BWeKV313k1cj5/VTjABcbyrHlvleuJvr2LNMdvBRcjMarHyhV6dQv6iYyEaJldgbawpWc2M0F9f1yDTawXwrFrAIFsmsZqfKJ3nFECF1hdRL85LLn52SXdtl886EWnTK06j+tQL6ngCwl5gZwvZtPpzcZOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HLLz/WofmlF99QVBOwKRtERUtZEC32OCFQqbgszLG0k=;
 b=axeZAptQUP2ucEdgz0mseLytPExPjzqSTD8/wfJ2Gy+RUieno4wGyTDz2wrbimiAvXgJJ8J780PiXaQFq7Am9tESYsLDvUrEDrOzvVDMspf6T2UdMN+GGPWakTLmWwY6Nusr+cfE+WeeHADv/BNfTiowLfoSO7Dg/KbA6xxASQ0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com;
From: Penny Zheng <penny.zheng@arm.com>
To: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<julien@xen.org>
CC: <Bertrand.Marquis@arm.com>, <Wei.Chen@arm.com>
Subject: [PATCH v3 03/10] xen/arm: introduce new helper parse_static_mem_prop and acquire_static_memory_bank
Date: Tue, 16 Nov 2021 06:31:48 +0000
Message-ID: <20211116063155.901183-4-penny.zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ffb7e8e8-c3bc-4292-24fd-08d9a8cadfb9
X-MS-TrafficTypeDiagnostic: DB7PR08MB3323:|AM6PR08MB3909:
X-Microsoft-Antispam-PRVS:
	<AM6PR08MB3909A5670EE1468CA5D0FAF8F7999@AM6PR08MB3909.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:281;OLM:281;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 YgY5E3aN2Xf9veT9bmw36rgHt+EBpmIWE2izfFRGWL0jPpZHSOdLnn2cFBfuQp7TrqxaXtWWOZvJpQf4/bIhLPjbHP4XdJT/h0Vx17km9pBR65WYmykR9toGHrLw22r7R58s9uwLqv0xggJ23aYAaGHwXSuiqhjgT4OhPR59RjFcZxWzpmzGGzcR4+mDD12FYecDvVtaNZoLTbgoVtaAQQFyIzgjnAx7/OgTIs5TktEgnQ4m4lq7va/HXvfUidDLyK5pW4Apu+hnJF16OWAPTlyzD2gekWfoykiqCQzXqcBWxwgQS8N9zBPyu7E9JCfKodhojJfkHdoEfjXOGlBpn4M33p8G0Ckd+d3NAcJBAHeZTR3vO0clG0LjLGelFv9H+iM38gucXPHLUkyWErUUmh5b8IsraOrDpf0azcyoQCkvMW4p91dz93j3kzGjuPMrEPaKU9G30qj23WcprnO9UH8woynfz8AaCyMDzh4dnPoWJP/vhMIdUkp0ZdVjN+3Owtcbs7cNRxwkEKHmKuU2eDsuDTqtixiqhPvtVUqgL9SXlxBiqm0rr5+wWFAlVhsjHqBpCJzGiaFa3s+fjW1W7hmhP5MMwDZCkT2wryLaFSO2k3dH5cL7oVieq6yosX8RYEsw3ISiOvsN3UbFTdq82jzK9gc6nQV6QFHagvbZllwB1nRJPrk9AJvJg8Kns/yrB1HdUUrPdsdf5V2wK8LZJyRcieOR5nj1jyKViBVmG1g=
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(8676002)(5660300002)(8936002)(82310400003)(356005)(6666004)(26005)(2616005)(86362001)(1076003)(110136005)(54906003)(47076005)(2906002)(44832011)(186003)(36756003)(81166007)(7696005)(4326008)(336012)(36860700001)(508600001)(83380400001)(70586007)(426003)(316002)(70206006)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3323
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT015.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	eabbbfbb-ef8e-42bc-df11-08d9a8cad47b
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	c7JpKh8hq9+SR/5B0h2q8q85BlCo1wWFVfipaqplccKdoqrHu+U+f9fzgb6cD3xYmj7pKh5HhFnR6b3UO9UH3eP2MQAurMQzY+Fn8/QWKNleAdIWbs0LvOmVNV0FFe+ggo512sbkmRxZijv0nEtqq7YO3g5iGuWIqvjezaXZt9M6lRih6k1b3F/t43NZQhMegrJlJU7l6OjWIgJKxh4T+Wfg3wCi6sMjXedWSSdB74jJCKFJod/rrkKy3hgAzercxuIR//1iBZvPTVSTDM70yV6M96fAQO/GRH68yqeeM5R9KUPHCwbzwsACrUj07nhMFKSgkik9uvK/+pSEyiYc0rQtslRZ+UieRcwh157KOgzWC+akGvfianDA5D09wckGqvJf7srQwgcIQzccqfYqFSZ5TeqEYND8ksRC/p6gmijJD5n3FT8oATNRN/XgFUxF4S32t50xcXVQ65XFEun4STYe0GgeVfu6qIQ5uNzYQkrWu5sFgaqTwpiPO9cdmWahvSGzWOE+7aY+J8OvCT8uVBRHhBwG20LZWmNctPV9VZxQm7fNuB3CvDIJJZzOIa2lQAQSK0oklV+Q9QH6Du/Hv+XtkXM2dB0A+vWrbQmmq6j7KFpiiURx8SPOw6oRiHQHs8Rx8xCGgeae2XzX9IC+gk8eA2tWG017qe3t79JrMtPWI4ckFGnU/ixudkbjyOBQxPrwNXvS9YrZF4d+rJk0yQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(186003)(1076003)(70206006)(4326008)(82310400003)(26005)(2906002)(36756003)(54906003)(316002)(110136005)(7696005)(81166007)(83380400001)(336012)(508600001)(6666004)(70586007)(8676002)(36860700001)(47076005)(8936002)(86362001)(5660300002)(2616005)(44832011)(426003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 06:32:33.8839
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ffb7e8e8-c3bc-4292-24fd-08d9a8cadfb9
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT015.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3909

Later, we will introduce allocate_static_memory_11 for allocating static
memory for direct-map domains, and it will share a lot common codes with
the existing allocate_static_memory.

In order not to bring a lot of duplicate codes, and also to make the whole
code more readable, this commit extracts common codes into two new helpers
parse_static_mem_prop and acquire_static_memory_bank.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
v3 changes:
- new commit to move the split off of the code outside in a separate patch
---
 xen/arch/arm/domain_build.c | 100 +++++++++++++++++++++++-------------
 1 file changed, 64 insertions(+), 36 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 7a063f62fe..1dc728e848 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -515,12 +515,69 @@ static bool __init append_static_memory_to_bank(struct domain *d,
     return true;
 }
 
+static mfn_t __init acquire_static_memory_bank(struct domain *d,
+                                             const __be32 **cell,
+                                             u32 addr_cells, u32 size_cells,
+                                             paddr_t *pbase, paddr_t *psize)
+{
+    mfn_t smfn;
+    int res;
+
+    device_tree_get_reg(cell, addr_cells, size_cells, pbase, psize);
+    ASSERT(IS_ALIGNED(*pbase, PAGE_SIZE) && IS_ALIGNED(*psize, PAGE_SIZE));
+    if ( PFN_DOWN(*psize) > UINT_MAX )
+    {
+        printk(XENLOG_ERR "%pd: static memory size too large: %#"PRIpaddr,
+               d, *psize);
+        return INVALID_MFN;
+    }
+
+    smfn = maddr_to_mfn(*pbase);
+    res = acquire_domstatic_pages(d, smfn, PFN_DOWN(*psize), 0);
+    if ( res )
+    {
+        printk(XENLOG_ERR
+               "%pd: failed to acquire static memory: %d.\n", d, res);
+        return INVALID_MFN;
+    }
+
+    return smfn;
+}
+
+static int __init parse_static_mem_prop(const struct dt_device_node *node,
+                                        u32 *addr_cells, u32 *size_cells,
+                                        int *length, const __be32 **cell)
+{
+    const struct dt_property *prop;
+
+    prop = dt_find_property(node, "xen,static-mem", NULL);
+    if ( !dt_property_read_u32(node, "#xen,static-mem-address-cells",
+                               addr_cells) )
+    {
+        printk(XENLOG_ERR
+               "failed to read \"#xen,static-mem-address-cells\".\n");
+        return -EINVAL;
+    }
+
+    if ( !dt_property_read_u32(node, "#xen,static-mem-size-cells",
+                               size_cells) )
+    {
+        printk(XENLOG_ERR
+               "failed to read \"#xen,static-mem-size-cells\".\n");
+        return -EINVAL;
+    }
+
+    *cell = (const __be32 *)prop->value;
+    *length = prop->length;
+
+    return 0;
+}
+
 /* Allocate memory from static memory as RAM for one specific domain d. */
 static void __init allocate_static_memory(struct domain *d,
                                           struct kernel_info *kinfo,
                                           const struct dt_device_node *node)
 {
-    const struct dt_property *prop;
     u32 addr_cells, size_cells, reg_cells;
     unsigned int nr_banks, gbank, bank = 0;
     const uint64_t rambase[] = GUEST_RAM_BANK_BASES;
@@ -529,24 +586,10 @@ static void __init allocate_static_memory(struct domain *d,
     u64 tot_size = 0;
     paddr_t pbase, psize, gsize;
     mfn_t smfn;
-    int res;
-
-    prop = dt_find_property(node, "xen,static-mem", NULL);
-    if ( !dt_property_read_u32(node, "#xen,static-mem-address-cells",
-                               &addr_cells) )
-    {
-        printk(XENLOG_ERR
-               "%pd: failed to read \"#xen,static-mem-address-cells\".\n", d);
-        goto fail;
-    }
+    int length;
 
-    if ( !dt_property_read_u32(node, "#xen,static-mem-size-cells",
-                               &size_cells) )
-    {
-        printk(XENLOG_ERR
-               "%pd: failed to read \"#xen,static-mem-size-cells\".\n", d);
+    if ( parse_static_mem_prop(node, &addr_cells, &size_cells, &length, &cell) )
         goto fail;
-    }
     reg_cells = addr_cells + size_cells;
 
     /*
@@ -557,29 +600,14 @@ static void __init allocate_static_memory(struct domain *d,
     gbank = 0;
     gsize = ramsize[gbank];
     kinfo->mem.bank[gbank].start = rambase[gbank];
-
-    cell = (const __be32 *)prop->value;
-    nr_banks = (prop->length) / (reg_cells * sizeof (u32));
+    nr_banks = length / (reg_cells * sizeof (u32));
 
     for ( ; bank < nr_banks; bank++ )
     {
-        device_tree_get_reg(&cell, addr_cells, size_cells, &pbase, &psize);
-        ASSERT(IS_ALIGNED(pbase, PAGE_SIZE) && IS_ALIGNED(psize, PAGE_SIZE));
-
-        if ( PFN_DOWN(psize) > UINT_MAX )
-        {
-            printk(XENLOG_ERR "%pd: static memory size too large: %#"PRIpaddr,
-                   d, psize);
+        smfn = acquire_static_memory_bank(d, &cell, addr_cells, size_cells,
+                                          &pbase, &psize);
+        if ( !mfn_valid(smfn) )
             goto fail;
-        }
-        smfn = maddr_to_mfn(pbase);
-        res = acquire_domstatic_pages(d, smfn, PFN_DOWN(psize), 0);
-        if ( res )
-        {
-            printk(XENLOG_ERR
-                   "%pd: failed to acquire static memory: %d.\n", d, res);
-            goto fail;
-        }
 
         printk(XENLOG_INFO "%pd: STATIC BANK[%u] %#"PRIpaddr"-%#"PRIpaddr"\n",
                d, bank, pbase, pbase + psize);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 07:16:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 07:16:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226136.390698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsh7-0003xA-4a; Tue, 16 Nov 2021 07:15:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226136.390698; Tue, 16 Nov 2021 07:15:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsh7-0003x3-1B; Tue, 16 Nov 2021 07:15:53 +0000
Received: by outflank-mailman (input) for mailman id 226136;
 Tue, 16 Nov 2021 07:15:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmsh6-0003wx-5n
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 07:15:52 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0743b29b-46ad-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 08:15:50 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2056.outbound.protection.outlook.com [104.47.13.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-23-Yd3SrmEpPFSnazXZAqrjxw-1; Tue, 16 Nov 2021 08:15:49 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2447.eurprd04.prod.outlook.com (2603:10a6:800:53::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 07:15:47 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 07:15:47 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0101CA0013.eurprd01.prod.exchangelabs.com (2603:10a6:206:16::26) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Tue, 16 Nov 2021 07:15:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0743b29b-46ad-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637046950;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=/vGvseAI65bUvbGhMv5fuW5MzvhiHtpP1y1aNVYnVxg=;
	b=J4LHjVU43NIytB8vHjV0dvMyKDqXH78QR2P+ksMG2UaEJECxYNWZEN3WmPHLlu88UNHwlE
	MoConahOaEhlLObNxH9rWLdJHk7dDY4qG+osCkyb6hT9mBzSO9KR4vfJxNA5xaVtGgwZdf
	MMH+FWdQ0pAIl6VxwdXXOEv6Xiauhww=
X-MC-Unique: Yd3SrmEpPFSnazXZAqrjxw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=S4LyZNf/yt57DekwMwZFS6YYkZdFo6rvWvZK2mNOPxnmcjoEn+hLFm+feaap3HmE3Uuae2vlFWkI+YVighvkSn6eKF6q+Z8ih2vF2cz8aV0GNgoTE8NEuK0+IFTat1D61BNZ9RDJdzjo5R0CYrlsooqWqXjHMZJhTEMH2GD0q5yp0Uis95pCSfXTGnZ7MrOYq8yl77KsMVoINhY6RoXSv5ApNyeLiiCTYJlWB3PLnbSOCk2lmOMbMz+W1r3bgwDJuUK+vZ9UmQiPvXlNwOnG2g5MGhqpArUHdV7H9D7VgWi1BVUca/S07f7JxOFQBS82nV/drjf4VbAnW2ei9VlOQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/vGvseAI65bUvbGhMv5fuW5MzvhiHtpP1y1aNVYnVxg=;
 b=fL8JBLh48vKZ8pmmV7VgSkjWNvwS7DaCJIRvVwqIrT+ZDgaVM4Qgb+pa9yBAAwtKReL5sDHVUMiRjrrhRgqLItaMzs+JYTaar7rN1/dcL675lDjtpog6enIuy68g62N/a8TCGTkJPa0Mzwvoa1KUPv9/g1f3uyQYRxKxPIwavR6inCGpMnLj0BIJa42VB70r8oFIFF7Nj24MatFu54XCXh5TMGCAf6vroXfODFBFaPMlbdqQS+FwQTs39yW2KGeJf+EKwRHpEBcwPIynEvZO7Y9XIHk95DmhgMQy6eHYJkvKdxUrTDYabmGkYgaqG1Ijarsm1Z60J1Upi1S3GfS3ZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1955289a-03d3-389b-1a4d-905d6c708ccb@suse.com>
Date: Tue, 16 Nov 2021 08:15:45 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <D0965ED8-C1FE-473F-91C7-3EE18ABAB3C4@arm.com>
 <a1b2aa1b-7d8a-4ab6-cde5-25581ee9841c@suse.com>
 <C3FB48C2-F619-48A2-9268-F0938405133C@arm.com>
 <fc9fd8d6-7461-367c-01c6-f4c852e13f54@suse.com>
 <alpine.DEB.2.22.394.2111151637330.1412361@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <alpine.DEB.2.22.394.2111151637330.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0101CA0013.eurprd01.prod.exchangelabs.com
 (2603:10a6:206:16::26) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: daae3473-571c-4ce8-3fc7-08d9a8d0e91e
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2447:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB24473BA8A6E8DA4942F60692B3999@VI1PR0401MB2447.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	H7XF3JIIH560R/RiW19Kl7nw1nsRvSypxfCp/Ys3l5tX7KNCanO7Db/pJHpNinCFSSejmV5s555aIvyBSWHPC/t6uv7u9wIPsc4cvjiAo+IjqeODGdlnYY3X9ZwU5MuDHMPmFASv+iooR4gq1qZffUj5rxjCwnPAmCF23nSXv0yYgHsQYiAC3OVruH+uQRxPSUBz4AlfpBI7t5Qcuqm/p7c0dkjXIShdxqVUcd4PmZpvniMxBDp0K2DB/zWvSZDcxeH1I/g5WHcy0PZOpl6D/srOc0f6nLof0Y687HchdGcxD9OhUiFolCT7iXX0/G9iLWAHzFwwbQGB+wY3a9JeU9NXMEDVLnSzC1IBWACtEDZGk/pLirccxC225JaH53HnDydv15PVuLjaP57voS8whlv+ipzVQKtWxjVWUMsDIfREg/DNZcqE914tOMzTEiccA0ornBowKwtQyMC6V7/PCZgF01wAB8me5H014NaVrhE62YwzvZSlL3Sphq4mWE/uU/rhrXqBiUmRzu1j1NT914Iixwz2q5m1o162J6h6ZPFVQzKYbXvO4DJsOQTgXg3OKnUPSWIUC4Gljy8Q93PPid4dNT/C2Xof0M209y1QdafAZEwXsdp9YrFQTLk4BjlfSMAMC01n11LTuF8gfCjbccZRdMT1lUAdfNzWhVqCl8TTrS1i9KDdUbJUieurIZQo744AXxndYH9+caZcoc1jhg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(956004)(2616005)(508600001)(316002)(36756003)(4744005)(66476007)(66556008)(186003)(6916009)(66946007)(86362001)(16576012)(54906003)(31696002)(4326008)(26005)(6486002)(5660300002)(53546011)(2906002)(38100700002)(8676002)(8936002)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RDNUclMzdGJ0VnVWNStGb2lSajgzMEt3bUpJSVhJK2ROYzhqKzhHWDJ1R3Zr?=
 =?utf-8?B?bzh5Q0VNU1FzcTcrSXFvZi92YytleEU0a2VWeFZnNzB6Q3J0NVVIUW0xVWFs?=
 =?utf-8?B?OEJIcWFmL3BRT3h1RFBIWVdDaUtaK1k3cjBIRlQ0R1lPbzJ0MkNPTnNSc2ZZ?=
 =?utf-8?B?WHV6M20raXFqeDRIdFVtc1paUnlFTGJTSGVrSTUrNFdacnR5djVLZXdXZ3lE?=
 =?utf-8?B?T0VHaUJqdTN6bEY2NGZvcVI0Rm5GM3JqeVpNYXA4OW1PVmc3Zy9LbURyTVZI?=
 =?utf-8?B?d1gwWjRyVU9IbVYvRUU0VllwMU54bHpkNi8xc0lQeTllT2gvbGQ0UlpmWVhT?=
 =?utf-8?B?RHFzN3lpLzFkcWFsenNDeVIxRjdncjRESzhFanRtSWRTeU5Ibjc1c2JMcXpr?=
 =?utf-8?B?MGxTSmJNcE5YQnZwZEV0c0xvMEl6UmxNSTFvVEo3VnkvUWJQY1lzalNjbytz?=
 =?utf-8?B?bUkrZ25XL3o4YWxzbmozUW5pSkx1TEVBZWlVTEhMTXMxUko2alZvYVdwUE5W?=
 =?utf-8?B?ZEZKNS9wRjRXY3poRXJkWXV3M0ZGUEdKc3hGRVVYMFh5eUxTZGpUS01KN1N4?=
 =?utf-8?B?ZmpGamowZXVzUVZESzQ1MVVDU1FDZ0VRSFk4VG9QQTZKSnlDekRlcDBvTk01?=
 =?utf-8?B?azY4dVhHSnUwdXJVcFFnWm9zU3ZqSWhvUVFaQlg5Y0VNbVIxSWNRQm94akQ3?=
 =?utf-8?B?RTJURVBISkhxRW0yaW41c1ZqejlKMGpGd1FmUFNiM2MrSVhCakR2Um1mTUIr?=
 =?utf-8?B?UlMyVEI0ZGFoMDlORndMbUhBZUpUMEVOQUdodWhsMzJ6TUJFWUt5d2hZOWRq?=
 =?utf-8?B?LzlyMWdNTkFyaGYwb0RjcXRIZGt1ekZxOE9MYkc0cWdrVGUvWGwrT0ZuQSs4?=
 =?utf-8?B?K3ZuSzI3QXdFUFZwZHBzbVhPdFgrYjByajBjcWJxL3dZSmNOUkM2a3J2Mzhn?=
 =?utf-8?B?ZVNJNWpKL0VkUVRvNVFlZkh4QzY3dTJwbWN6ZGliK2VsMzd0MDlWOXEwUlAy?=
 =?utf-8?B?cHdiRENJd05yaElheThDc2UxZ2RPeHBzbFpkVGE3ZG1KSmg3NTVRMTNEL3pH?=
 =?utf-8?B?M3JEcE1qNkVvNWNSZ1pZd1RqMGJFVGZmWktETlJsT0c1Nkl3M0hlWXYrTUFx?=
 =?utf-8?B?RnVaYzFIeDdEZUlFUUtyTjJYcXlEb3dSOUl2UWdUYTBGUWZBRmpJWDE4OUY1?=
 =?utf-8?B?T3V0ZG5vQ0N5aXI0ZEh5WjM2TWoxWHFkZWRSbDZCcmJUbWNUZXlxRFVFS09M?=
 =?utf-8?B?TlpBblRpYWw4Si9qN0lwV3BwLzNXZHlhTTJSakxjc0kxVTFhVmk5MUQwdXdM?=
 =?utf-8?B?YVNUZXJHQmVjdGFSM1RhMlltaU14bXRpbGlkcUpTMDN6NWE3YUdiTDdtdDdR?=
 =?utf-8?B?SkZJdUVtRUkyd3hDY0FuVFA5YjJWSVhQcHM0MVg2bmVvSVFhdDIvZmhHZ3lo?=
 =?utf-8?B?cFJ3d1VYdVoyald3dUxodmtJMG92NE9IQzZTUnoyaTRwTlhRUHQ5L2EwblBr?=
 =?utf-8?B?MWE0WnMyZ1kzczNwQUV6M3d2dUN1V3BIdUFHSG5UUjBLSDRFU1NnVVoxYmQ2?=
 =?utf-8?B?bXBudXdRNGd3MkRKUFFna2dYWHVSbnA0V3BIZFZZUmxkQlIxS3lrb1E2SWZn?=
 =?utf-8?B?WEFkU0VZL0pRaGU1OUQ2MHFKanlhR040c3RTYzdDclFucFJ2a0xnOWd3UjlB?=
 =?utf-8?B?YmNmK2Y1WWpnTHc0UXJxL2xOVUFtOXJIOC9zSkhkT05zWmN3THNpV01lanFl?=
 =?utf-8?B?UnNSZXN2SWFCdFB0MC95SWdPRUtOc2toNkxEQ1FJWUpUOUZ1Z0orY096SGZM?=
 =?utf-8?B?UzFzREJzaU4xVGwzUlM1eWwzZitvM0k1bmpzODhKQit2MU5PaUdORFdITlRE?=
 =?utf-8?B?NlNnZFpKYTJ5NkE0RVlzRG1pT0hFZVl2QzFhc3ZWVFUyU2lQVzFpa1pFTExs?=
 =?utf-8?B?UUNBQW45Ym1FQ1E2eUpwMFE0MzdBdk1zaFIxZTVCNGw1M2FLS0pxeGhDN3B5?=
 =?utf-8?B?NmU2dmozbmk5ampYbWNyeE1kREJoVUUzZjNHUThUdG5ITjc0TW95clY2ZERu?=
 =?utf-8?B?RlRvQ01PT0RKMzNMOWhlM1VsSm5XR01iL1lsNlRYK0o4SHRLc0RHMEZLbGwr?=
 =?utf-8?B?QVV6YU1UOTNESFdtL013YTltanBSNVhPRVhVY201N29BWTMxcjJURElRZGQw?=
 =?utf-8?Q?flLlhKV9wYv7NAVnt4piXuc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: daae3473-571c-4ce8-3fc7-08d9a8d0e91e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 07:15:46.8492
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fmUzZz6lLKJqp5s5rB8cxmZ8mq6HGzAA/U/G5bWbnAxMYoaNXZtftuHCsghiq4sWGigIw5Ezfd4WojlN//5EGw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2447

On 16.11.2021 01:41, Stefano Stabellini wrote:
> Bertrand's comment about MISRA aside, this style of comments doesn't
> seem to be covered/allowed by our current CODING_STYLE. It would be good
> to keep the CODING_STYLE document up to date: not only it helps us
> during reviews, it also helps contributors making sure they don't
> violate our guidelines. Moreover CODING_STYLE will certainly turn out
> useful when we are going to have MISRA discussion so that we can have an
> up-to-date reference of what we currently do and support.

Well, yes. My track record of getting changes to this file accepted is
so poor that I'm afraid I'm not willing to make a patch.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 07:18:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 07:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226140.390709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsji-0004aQ-JK; Tue, 16 Nov 2021 07:18:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226140.390709; Tue, 16 Nov 2021 07:18:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsji-0004aJ-Fo; Tue, 16 Nov 2021 07:18:34 +0000
Received: by outflank-mailman (input) for mailman id 226140;
 Tue, 16 Nov 2021 07:18:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmsjh-0004aD-PI
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 07:18:33 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67b05e78-46ad-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 08:18:32 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2053.outbound.protection.outlook.com [104.47.13.53]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-26-HYVbKztBOuCD8RH_pQXn_w-1; Tue, 16 Nov 2021 08:18:31 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2447.eurprd04.prod.outlook.com (2603:10a6:800:53::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 07:18:29 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 07:18:28 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0012.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.16 via Frontend Transport; Tue, 16 Nov 2021 07:18:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67b05e78-46ad-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637047112;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=BRuIXSgutMvtcIQDtRFlR7tDvJ0azY5gyVE4c3OnYPA=;
	b=AthzinTodvcsIGjnPSW7wNswt11CBHwMI8YGT1oWOm7Ch8qkGaP7Jz4nmmBbDoq1slZK7k
	unOONacAX/cnJpLLkh3ge3Lqz04/MV7DC88PHr/h39k2Sqdp7HrH4kdXU85zR0CPV8MIgw
	HiFGXq/Nx4frrsy63wau4qepaFVK+T4=
X-MC-Unique: HYVbKztBOuCD8RH_pQXn_w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Vh1lzzRl31GJL1bO2Y0vlH0hGV1nsXZSIYo7yauPT9/rCkumkTgWR2gDaCxEEOtfVxQL4zIehPaauNaafM+JprtdzT34Ij55+5EJ46YO85c274KWhV7NshkJLHvbIqyviRrZpKwNtM4GC624H+F7N5J/FJb76grNkoYqgTo8YwA+i2UT6EkyfTJRyVj1bin1NW10inUdq5hSb76iH2wgRlqWJKPfjNHRzdy0fASALf1tQNsLTcuZb0iAza5GoLZX7ZFYL4HmPOp1m9JXVfElqdQbeznAkhBwoArr4258jnL4WGmtP/YL/Lx2x/SCynwML5IP6rUBIRHGX2B60WIoZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BRuIXSgutMvtcIQDtRFlR7tDvJ0azY5gyVE4c3OnYPA=;
 b=Xmam8vNa5RdOZRHl0stmhCMLGLR54IpVImzkGC4hy6nRBOBCsgSDpzuTnbEPUNLzUEa5EOiTyexnPxg2+98L7bJ+ynixVynZyayPrdV8w1X0OtBmurSZZJcexg1glIekOhbEve/tvewHFsoEjNNuDN1HHrYawq1RfQH+mtcoFlDbcRjRtykfRCRdAOZnd4M6uJRuiNKZXh9weJnDa4Y1/BI1givl62fij92dg0zUvMP3UEN9g/4c/9N/c39TkzZnv+gyCYPW3iPTJikrrzt1s1+Qd3Rq5m6True4vR3yg3SdSGDhiSV+tzbx9M6BbCzPk+8D43L9tS45kZx1DXubpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f3c5087b-4eb2-8599-f68c-cc9dbd375767@suse.com>
Date: Tue, 16 Nov 2021 08:18:26 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Henry Wang <Henry.Wang@arm.com>, Elliott Mitchell <ehem+xen@m5p.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <64e9208d-ecda-2e62-e10f-81750c0279fb@suse.com>
 <78aa1ec7-3d47-716d-c9d6-b74d66486e9e@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <78aa1ec7-3d47-716d-c9d6-b74d66486e9e@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0012.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:89::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: cc021878-5703-486c-8073-08d9a8d14960
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2447:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2447AB25B3EC9F6A3F097227B3999@VI1PR0401MB2447.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jyDHN/5JLhlcqEjtJnrJUP2F7yllDuO9PIPcALNKGy+JtVgoIEL4dRgEfJsEioLr068iiUoi25oGkfQ+F6X1rRHRBI5AAJTGSpbpV2CGRnzoiQ/kMPRcR74RuHKPvdGxmvJiLVhqvr/UClBSaoSop1J4Rd5Ab2W0g8vb8MQuq6nl69pIAPDbf1IKTfOkZNOwvujIVboN7+9XPd15MqCRRwo8PlJ5kJLYJ9JmqDdd8o2ISn2y6d2TU7wivH8VyGkXLuaddi3WhhkgWUrNuf+9UhbX7zH99eHQF2N0MV44cqgAZnzvEiyx82TP8y3MGlmDTSuvEsZ73OhM5q4ydx6A5fkWkNdcPbQm25vIR2IsuoQubS6r6MNP6aZz/bmjfep+oXBql498uQUNIEP+0kz755fuA2kWDTQWtTTOJNPKNS9P3tfh6RGcVgBUPBTTnSd8MInanJCuEDVCeohoRpj5lQC4W40wzQdFcd/9onVsNtofBhh/SxHU7zUnWo7rjaRu0ZNuEiARK5nT648uQR1kEMsvtOQbLfnNnoEz6DHXQrgiTnL1qgnr27JXJvptGvwtJ7OkTdjLW/cRs0Nj/9Erubl9VJV1eD+z72z+iNIvP/ynU62hVww4XUEzRLCIZ5Ie3iolaYrUNi5brzPfCDlaaD8CfxdEDkl1nHB3N0qQWisMLr+1KxyZCGF6SpizvZSJ60KeHB+X86vQ6w4aUpGPEpeI05JSq4+tdsrkWBG3qwxT9raBGcvxviCOGBDelpIV
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(956004)(2616005)(508600001)(316002)(36756003)(66476007)(66556008)(186003)(6916009)(66946007)(86362001)(16576012)(54906003)(83380400001)(31696002)(4326008)(26005)(6486002)(5660300002)(53546011)(2906002)(38100700002)(8676002)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TGdGbVlieTBLeHdDZm16V3FkWWQ3OGNZNkZkTlNQdlpGMVQ1M3dNc0JLSGdP?=
 =?utf-8?B?U2FIVmlDcU9qaDV3UW5tN0xTeHNsS1BEeG1VQzFtL2U4MkZZWFBTU085aXQ3?=
 =?utf-8?B?WDZRdGpqbXhIS1FqNWpzN2p1T1ZjQm5Lb1hIc21iUkRwM0JQQWJINFZaYTlL?=
 =?utf-8?B?aE1yTS9jQ1BqV3U5cEthVDFxNDVLQ0E3VzdaTDI2K1FSeHF3Q2NZY3dRTkcz?=
 =?utf-8?B?QlBzSWZ1aks0TDMxb2tjUURoQ09kZ0ZiNDZEN1hpa3d1SU0yU0R2RHI4d002?=
 =?utf-8?B?elJBZlhBSFhGQkxEQm5rb0M2ZlVHeXRqUUd1aXZOQ3pBUW9ReWxBMEZBY3di?=
 =?utf-8?B?NkwwZXFNZCtZWGxHZzBQWHErVUdxdUZyZzhIeVNqdmNLREdaZ0JuY29xU0NO?=
 =?utf-8?B?cWpBcUJIMjVONTRXTmhqMEFRazhTNXJXNUxGdE1JSGpkL0t5Vm5MSHMrNUF6?=
 =?utf-8?B?c0dxQ2R4SDgzblhGak9QY2NFLzl4M1o4NUs1ODBhSHlJS0lPMDlWMjVsSGhE?=
 =?utf-8?B?MnNvN1QrMjNHaFBpeXFEMCtsMEg1Rmo1UFIwV0pFdEdodGxrbkVlOWc5VjBE?=
 =?utf-8?B?NkJtN0Z5SnVyOU9rWUNBK1lTR3ZlRWc1MEJTaDZjZEhCTGVjbkRIL203Z0lR?=
 =?utf-8?B?djZBL3VXdzVHZDZUU2dreGxkekJiOXQ3dFluSXUrbFNvSitPM2tKNEh5MU5Z?=
 =?utf-8?B?MzZtWGM5bzk3UzlnL1lobkZzeG8wdVJka1BOdFZzV01SenoyZkx6QXpoMVhw?=
 =?utf-8?B?L012OWRFMWh3SUxqM1hQazQ4bGRzdTQyYkhwajdJeVFiOHphZy94TmNBY0t0?=
 =?utf-8?B?Z3lrMDZWSElRWmFnUU0rSEtodXU3RmYyaHhiSTl4VGNUNXJ0RDRIclFEaGp4?=
 =?utf-8?B?djc3VFRXb3pVOHp2K1lzV3o4QW8vWVM3NHQyRXBxL0pVbHFybjJFZUxzNS9v?=
 =?utf-8?B?MGcvSVpRdEwzSm5ZdjNEbE5NWjdhV1pDN01haHkycVRIalgrQWhuUUc1VTRV?=
 =?utf-8?B?K1VmcVliZk02NXI1dmVpb1lMdmFick1KSXJlaFp5KzBHUDIxODhnOWVWcCt4?=
 =?utf-8?B?a2Z1ZEJzRzk1aDdkclduZXpINExvWFJYbFFxdnRueWsxZEJQRmluR0lobHZM?=
 =?utf-8?B?cEJVcHRhSmhKdkduVEZab2pKZmgyUDZoNjEwME05UHdIOFcvSE1QelJKclFn?=
 =?utf-8?B?UTBkT0JSY2NVamw3VnRSYm9mT2ZDMEh3UUkxcnZzQVg4UVc2emJoQVFZeVFX?=
 =?utf-8?B?Yk5JVERlbmpYY0ZSRG1TRzUvellSK2hOK2FCaXJDNVFkWFVkKzBLUmx3TlM3?=
 =?utf-8?B?Wm1tTUxsSlNmYlFua0M2eXNyWGtZUU4yQ3Z6WmdmMllmVDJKSzV4dC9IeTl3?=
 =?utf-8?B?K2ovNFFvdkJveVFPeGFhVmdDMUd1VVhiS2RRSkp3aUdVU3pJTkdBbzlsWHhh?=
 =?utf-8?B?bWd4Y3Y1SGJyN2dWM0x6bFN2ajV3eEpqbmtRNHlrRm5vM1BmT3RUU1poS0p5?=
 =?utf-8?B?K1VrVjNqclliR3IwTWN2cm9XZUxnaTJJT04rWHZDMkZMVTN1RnkzRG1ub0VY?=
 =?utf-8?B?aGw3dWZLdkhwSGdJMlhmYTk0VmRIUWJmTUZOVFViMUJCOTVPeGU0M2ZVRDky?=
 =?utf-8?B?Mnc1MXdqcms1ZXZKL0g0SGJ6bzlPdXkvK3RQSXNaT1Fzak13ekUyOWRTZVFp?=
 =?utf-8?B?NzFodWtzUCtWaEZQRm5jSVFHNzlaTXR6eVdhaFc2RHlPOTl2VFlvZElWTG5Y?=
 =?utf-8?B?Y1ZOVjJ1MVphSWlaVS9RZnptMTVVWTUyOUoweVBpTi9kc3VsL0lUbWpxazZp?=
 =?utf-8?B?YmpJTzhPS2pkMEs4MHVNbWFVendQa1F3QTFTb1BPdjUyUXFLWTdoUnh0aXUy?=
 =?utf-8?B?Q0hrcUdGekY1dFl1dSthVXdsaUcxaFZrMnQzZ3h4RFMvTHZhY01VUG9qM2tS?=
 =?utf-8?B?VDZseTQvRlFlOCtBNG9WMFk1ZzMvdG80M3dSMGRmNUFnU2VOTnNlSURrcGwz?=
 =?utf-8?B?akU2R1BQdk13NFlUYXZGaE0rVzMwVWZJSUZDd0ZiUExJVzJVU0YxYmZSbCt0?=
 =?utf-8?B?cWxyQ3pvVHkvc2R0R2xXdExOaFREZkhwd1JXbFN5c2Y5dGtXY250Wk8rQzU1?=
 =?utf-8?B?SzNweWEyN0krTGZWUFJXNlNoVUx0bmppQklEVXYvWC96VTZ5WDkrczlTNDRn?=
 =?utf-8?Q?fr9WgUc2W3nlFylpddIUq+w=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cc021878-5703-486c-8073-08d9a8d14960
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 07:18:28.3667
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SHccAPExo1T+6BekhI+IpSqvf9M/+9et31Qunim7+qkeofNkyroYttklGiiKTRKvnw5W1OPB3tWf0s0jBHFp+Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2447

On 15.11.2021 20:09, Julien Grall wrote:
> Hi Jan,
> 
> On 15/11/2021 10:13, Jan Beulich wrote:
>> On 12.11.2021 17:02, Julien Grall wrote:
>>> Hi Elliott,
>>>
>>> On 12/11/2021 15:44, Elliott Mitchell wrote:
>>>> On Fri, Nov 12, 2021 at 05:54:08AM +0000, Henry Wang wrote:
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
>>>>>> Elliott Mitchell
>>>>>>
>>>>>> I've been busy with another part of this project, so I've lost track of
>>>>>> progress on ACPI/UEFI support on ARM.
>>>>>>
>>>>>> Last I'd read full support for ACPI/UEFI seemed a ways off.  Using a stub
>>>>>> domain to constrain ACPI table parsing seemed the favored approach.  I
>>>>>> was under the impression that would take some time.
>>>>>>
>>>>>> What is the status?  Do the Xen/ARM leads have any guesses for when full
>>>>>> ACPI/UEFI support might reach completion?
>>>>>
>>>>> I am doing some development based on the Xen UEFI/ACPI on AArch64 using
>>>>> the Arm FVP_Base platform. Using edk2 and master branch of Xen with
>>>>> `CONFIG_ACPI=y`, it seems everything can work properly.
>>>>>
>>>>> Here are some of my logs:
>>>>> Shell> FS2:EFI\XEN\xen.efi
>>>>> Xen 4.16-rc (c/s Fri Nov 12 02:34:01 2021 +0000 git:323b47ffd9-dirty) EFI loader
>>>>> ...
>>>>> (XEN) PFN compression on bits 20...22
>>>>> (XEN) ACPI: RSDP F5E30018, 0024 (r2 LINARO)
>>>>> (XEN) ACPI: XSDT F5E3FE98, 005C (r1 LINARO RTSMVEV8        2       1000013)
>>>>> (XEN) ACPI: FACP F5E3FA98, 0114 (r6 LINARO RTSMVEV8        2 LNRO        2)
>>>>> (XEN) ACPI: DSDT F5E3ED98, 02AB (r2 LINARO RTSMVEV8        4 INTL 20200925)
>>>>> (XEN) ACPI: GTDT F5E3FC18, 00E0 (r2 LINARO RTSMVEV8        2 LNRO        2)
>>>>> (XEN) ACPI: APIC F5E3E998, 02D4 (r4 LINARO RTSMVEV8        2 LNRO        2)
>>>>> (XEN) ACPI: SPCR F5E3FF98, 0050 (r2 LINARO RTSMVEV8        2 LNRO        2)
>>>>> (XEN) Domain heap initialised
>>>>
>>>>> ...
>>>>> [    0.000000] ACPI: SPCR 0x00000000F5E3FF98 000050 (v02 LINARO RTSMVEV8 00000002 LNRO 00000002)
>>>>> [    0.000000] ACPI: SPCR: console: pl011,mmio32,0x1c090000,115200
>>>>> ...
>>>>>
>>>>> Hopefully this answers your question. :)
>>>>
>>>> Thanks for the attempt at answering, but the SPCR entry tells me there is
>>>> a substantial portion of ACPI/UEFI functionality you're not testing.  I'm
>>>> specifically looking for framebuffer console support and SPCR says you're
>>>> using serial console.  While serial console is appropriate for true
>>>> servers, for some use cases it is inadequate.
>>>
>>> We don't have any support for framebuffer in Xen on Arm (even for
>>> Device-Tree). I would be happy to consider any patches if you are plan
>>> to post some.
>>>
>>>>
>>>> Julien Grall and Stefano Stabellini had been proposing doing ACPI table
>>>> parsing in a stub domain, but I'm unaware of the status.  Not finding
>>>> much suggests it hasn't gone very far yet.
>>>
>>> This was a very early proposal in case we needed to parse the DSDT in
>>> Xen. This hasn't been needed so far, hence why this is not implemented
>>> and no-one worked on it.
>>>
>>> I am not very familiar how the framebuffer is detected in ACPI. Can you
>>> provide more details on what exactly you want to parse?
>>
>> I don't think there's any ACPI support involved there. Instead UEFI data
>> needs propagating to Dom0, as that can't access EFI boot services itself.
>> At least this is all that's needed on the x86 side (and all the needed
>> code is there, just presumably not [fully] wired up on Arm).
> 
> Thanks for the feedback. At the moment, we don't enable EFI runtime 
> services nor propagate it to Dom0. So this needs to be wired up.

Well, the frame buffer info doesn't really get communicated via a
hypercall, but rather via start_info. Albeit for PVH my proposal to
reuse that wasn't accepted, and I'm still waiting for an alternative
proposal by either Roger or Andrew. IOW I don't know yet how this
will be done on PVH.

> However, for Elliott's case, I am not sure this is going to sufficient. 
> The Raspberry PI has some devices that can only DMA into the first 1GB 
> of the RAM (the GPU seems to be one). So we need to make sure Xen is 
> allocating enough memory for Dom0 below that limit.

Urgh.

> Do you have similar problem on x86? If so, how do you deal with it?

No, we don't have any such restrictions that I would be aware of.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 07:32:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 07:32:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226147.390720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsx3-0006ro-Pp; Tue, 16 Nov 2021 07:32:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226147.390720; Tue, 16 Nov 2021 07:32:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsx3-0006rh-MX; Tue, 16 Nov 2021 07:32:21 +0000
Received: by outflank-mailman (input) for mailman id 226147;
 Tue, 16 Nov 2021 07:32:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmsx2-0006rX-P1; Tue, 16 Nov 2021 07:32:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmsx2-0005pv-FK; Tue, 16 Nov 2021 07:32:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmsx2-0007xn-38; Tue, 16 Nov 2021 07:32:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmsx2-0001RR-2d; Tue, 16 Nov 2021 07:32:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ppB0iBupLRZrX0lWFpPQyXdtkM69V14ASCpo5lNrNZ4=; b=qxQQs8rbzmcnjTRzG5cdMjM/Re
	9UqYgo6W7wHKZOUIfxGK1PxD7La0WHJJ9iWf13TLCDDrB0LgqHgIBMb17DxxIBLcDRaLrxcM4RVwg
	XcpHbDhxCGMezmKFMDQAwHMoocE9uOGWfiQYtBPJ5nrjhW8FyPuYInTjfHLGLp0xz6dU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166153-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166153: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=df194c5c0879c2a933d6a3320268539184898830
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Nov 2021 07:32:20 +0000

flight 166153 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166153/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              df194c5c0879c2a933d6a3320268539184898830
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  494 days
Failing since        151818  2020-07-11 04:18:52 Z  493 days  479 attempts
Testing same since   166137  2021-11-13 04:18:56 Z    3 days    4 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 83222 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 07:33:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 07:33:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226154.390734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsxu-0007Tf-8V; Tue, 16 Nov 2021 07:33:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226154.390734; Tue, 16 Nov 2021 07:33:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsxu-0007TY-5J; Tue, 16 Nov 2021 07:33:14 +0000
Received: by outflank-mailman (input) for mailman id 226154;
 Tue, 16 Nov 2021 07:33:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0oQI=QD=epam.com=prvs=1954156bad=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmsxr-0007Jp-Vf
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 07:33:12 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72903aa4-46af-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 08:33:10 +0100 (CET)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AG7SMNd021897;
 Tue, 16 Nov 2021 07:33:06 GMT
Received: from eur03-am5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2059.outbound.protection.outlook.com [104.47.8.59])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cc83n016f-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 16 Nov 2021 07:33:06 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4147.eurprd03.prod.outlook.com (2603:10a6:208:cf::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Tue, 16 Nov
 2021 07:33:00 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 07:33:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 72903aa4-46af-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WQMuunp5xFIsubNP7ymA2Ea/3l8V4L5RxAIKmYv1s9wTueCdi0vXRJNWarYIveA8594axpwUgb9FmKs8l5zg1zpQw24PByhkpwKc8WwFbhaXv6IbYCPLA/67ofaP1l3byIjZj4rw1uzJl7MZj6egbpc03AkriqzZL5cvwRUrvWHoebnt/j6IwxJmXeP3aZfhuM9yR5aCQM1hZF5/nCWWWembPfnlZV/zE2rXJcD5piCH58yAYyUiO2BASw7EWrUjAL/Tb2S0R7kho9Mf5qz+VEcAxOsgUEuLu9ycgVmpkRgiZFr0ZOsYnoxIQVbMU8QDo/LDNPsvIlJOeVqM4L+cJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y8zwRjpqEgAH1u+6gJqAScxRLLTyPrOUQWRInWp2P8Q=;
 b=IJO/jzqkJ8T/Ejp22A6brAue0KTDUWgA5xWL8jRacW5p8/LxaXluG03wKy1pat8+gktZhyZ5DV4cnq4YyEfR862wrEoFuyzLrNdCVgo0M5LW8IiwwZrmam9w4R/l0FfwSQC/oN6vtMDyfFY8/nmwwbtdVvspnj1HuxHIbARFrLdKtTChvph3ECqiyygK0oox+HarsyxNtYpoSawb9tOabYI89RIrTy0kD6lLTL8JsBA0C3VFdzgbdqv5e3TpyNIEK1ZUYI2I6GrNuZW90fgApFW5UDcF8C5/Zh3huIQLYkrT4NueJ1k6cvYInYFKvZQtOaIRwtLKOWtfvt0Q7qYBsQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y8zwRjpqEgAH1u+6gJqAScxRLLTyPrOUQWRInWp2P8Q=;
 b=hNexSBDff/vGP0E9ypdFBH2fb8SwPlRMNUXmSiB83mijzmpQf43nVN27EKCcJPQ+m5GHOcrtudnFiCDywfkc2M3dMITKH3cPD35kPmKgSsNydQ4P86jcB1XvQbtBgCsnieQQjlnDy9TxmpUAAufHl7nwLN5UPvpUFHKo4amYm/HTZVWi9WHslA8yeJ3aMdjjGtILhapwGALu7oN0+iDCbR41t/xXODC65dT6Hu/FWH6KMHHb7s9CiC6ejkS2Smkw0zjFeIM4RbkzflsJBbYRYn915uwkscWbU/WehYNFBjOYjz4GsYHvTnPczAySbewnab/UDgRazhHIVvuITVfjGg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: AQHX0hJIYALl/D9fL0OD6N0XGDJh2awE30EAgAD09oA=
Date: Tue, 16 Nov 2021 07:32:59 +0000
Message-ID: <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
In-Reply-To: <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f3685bbd-bed4-41d6-c5c3-08d9a8d3510e
x-ms-traffictypediagnostic: AM0PR03MB4147:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB4147494D2942E1F035A9EF0CE7999@AM0PR03MB4147.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 rkpyVCoBMEecf2YaK2gXn/tDMnU2dAAQlZhhQaMSVULB3YWYT2/bliCPOhywH5Rz5I4A2l6T30KEvenz6Gml1BteT44bXszr8WYmnmtnJs7WvlYCIHTNllYIIGOCjEYyaTWpFzkL0Nk2evDEiPh748AXIgPR2LqvYayix1lrCrBau/Eh+SBwjEG3HWP+B+lA0zSXmyUe4NCmMgW2OJBu5cNVJoFHkbEKqkeQyiWQDWfhg9s3ANHnaz9XyCtgSYX0A2cxZ6Rbc3MuEVC/of8BZylqjVqeiByNrzuUcDRocCzBrw1MZ05Jn1f2egTIeyXpgKH176xoIyaVQH+bUy7zDH9jAVeGyORjShE41A9r94DFYiOYEmSP5TUalI5QXm0r38S7XmqblecIbn++doFI9DllsLjPBKKO2Co9yQSSfW9+SvzkgE5aBEh4EX2JvMpRW6LUesViHNSrG010yqV4/ftrCok+ml4zrXdZdcYwr4Q0/u1lMlX5L1LbrIuCtqvXsZNn/+Xr9vWOQvinqFth9f0SJUpiBGhRLauWRIcifb3eS91JIalIGlbR74e3mITw8wRPc8d0neSfR1zfp5QLUhjMiSJt0ypjEm5ME3AlddlCUA4dGbkQ7Z1vJ6epcQXatDdlmi5I2yKEpoWjTX3cnSMs0st4hn3ipWdcNYxiAJKfpP711Lu8W++SMPL366Sd6fKjhuJPMtKn8J6/GZpEMvtoPEryqhYoe6hTm/85qWi2E4IYep476exnt93QELak
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38100700002)(6506007)(5660300002)(6512007)(53546011)(8676002)(6486002)(66946007)(122000001)(6916009)(2906002)(31696002)(38070700005)(107886003)(76116006)(186003)(36756003)(83380400001)(91956017)(8936002)(508600001)(54906003)(316002)(4326008)(71200400001)(7416002)(86362001)(64756008)(66476007)(2616005)(66556008)(31686004)(26005)(66446008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?bElIS1dqYmZ3YjJwUHRUS0h0V0xXRlo4WmVhemo2Rks0UUxaVUxNbXhQVnJW?=
 =?utf-8?B?UDgvaWdNL3BYejZyRGorM3pwSnNobHREeHh0MGk3cW5lZkpPZHFxV3diTUE4?=
 =?utf-8?B?WWpuUjE5cTNlWFdidEdGVkRyNmJkckVwNTNSTy96SWM2ZXNsdlFqMmVMNUdi?=
 =?utf-8?B?NmNZZzJMV0hFR2kzSmwvcXdLSGVQL2wyWDBnL21kWTZ0MzEzcDlzMy9XcElC?=
 =?utf-8?B?a0g4dTQxcWZMZGVBLzhTeGxJcHp0b0ZlREJVNWFGNHdURDJOUjdWaHVWRDdM?=
 =?utf-8?B?TStVaHIzVVo5NlVGZEphdkVsU2d3SGdpNUhzeXZCOTVQWnZUWU5Idm41RjR6?=
 =?utf-8?B?SFZROGRRN3ZCTmVjY0crNHNCeFlNRVc3cDI1cUhjSlgwK2xQZVRnNTFZVDB4?=
 =?utf-8?B?N2xiZ1RIb2E3R1k0L0I4L2c4d094cHViMWRycXlvZkYvUlNXQ0lkOXVsaERM?=
 =?utf-8?B?STQ2eUdyMzV2NWNSMmtRcSt5dVBzUmVNUC93akhjbmw4dEhkd1FCQm9malhW?=
 =?utf-8?B?ajc4MWhnMjlmSkc1bm43Y2pzSjZ5cVZ6eEl4SHRuQXJtL20zNlFHUWVmNmhi?=
 =?utf-8?B?L1FLWWxxN29ON0cvbE9xYjZ3aEtXczVuVHZCWW1NQ25vNmlsZTI2Qk1RdnhI?=
 =?utf-8?B?Ni9wa1JTeTM4YzhadW5zYUFmTnYxdStXZ2lrRkJ6dW1Lc2FoQjhLRVZVS3d1?=
 =?utf-8?B?d2NMbW1temRzQ2s0QlhSdkFjdUdDQkhXUm9rSnA1Q2M5NG1lTWxTQWVWTEMz?=
 =?utf-8?B?YTNMWlM3eE5maytxOXZYYlpOQU5URVNrUmgvaDVqVXZIOWJXWmFXNDZLRkIw?=
 =?utf-8?B?ZFExbTRFM3AxcVgvZDNwTjNLaUlaUnRDZXBDcWlNZ2RjTTRiaGVLRklzaCtS?=
 =?utf-8?B?OFVEYUJ4L1pycGlmNi8wKytsamMzMWIveVVhckZTalhJenkwUE1TVG5IQWdY?=
 =?utf-8?B?bkxCRG1ZUUxSNm5aNEN4Zm5LSGRoSi9zZDVBVVpMQTZGUzk3TEdYL1gwTW45?=
 =?utf-8?B?ZUhrZ3kvWlpON1ZGZm9DbHNHYXdiay92MnRrZkxKTXRtZUM0VnRwUUhZeDZP?=
 =?utf-8?B?QmtIeDJXekJMeVZmUFgvbWI5dkhNV1h3ZVAzWXJpZThnb21pZTVEaHp3MzA5?=
 =?utf-8?B?bEZ6NU9JTXRuQkVKV1NLM2FHaytvZkpyZzNJR25pWjBQbGN6Ym5FOE9BKzhH?=
 =?utf-8?B?eDBQSGs2N3g1T0piZTF3QytibWt5UlFoS3hEVTkzWEkxb1F2SXNQUGsxRm4v?=
 =?utf-8?B?cWlHeXZURFJzcTRuem05TjdDT2NZbWZ4Y3dhTjV5ZXFScjFzREtFVVlXU1Q0?=
 =?utf-8?B?ZnhOSXU3WVRMZ2JBelhXbEFpb1lMOWhpVW9rWjh2WFp2MTFBQWpBZngxY2FD?=
 =?utf-8?B?MVgxMkhzRGIvR3piaE4veG9aSHdVdmN4Q01pT24wdm1xZ05iQUtDQXBqenZr?=
 =?utf-8?B?OTMzZ2tlRmlyOXBTWVpIdnc1WW5RVDlVZU5SbGRDTzZoc2FWOXBtMUliUHV3?=
 =?utf-8?B?d29Ba1pDRmRsdjhROEV0Zk44TEdCckEyR2pDeTFLL1R5Y3d0dFlsaTNkV3NM?=
 =?utf-8?B?M092WlkrYXJzQjNMK0tOUytlMk1BdVpCY0wrcUZMR3VuY1RrZGpCL00yUElJ?=
 =?utf-8?B?UHk1UFdQR29JenNDSHNTaXlhd1R0SW1kRkw3bW9HOXpLRGdYaG5ySmxkWXd4?=
 =?utf-8?B?UHRzdlFldXVsMDJGVWFVNVptNnNzZU9YSlNoVlkrK1ptNFl0aytNeHdlRHF3?=
 =?utf-8?B?bGpsZCtrV2w1cXQ2Wk5veHZwWmtmVG05TkI4N0dDRHcvMmVPeURISTYreFhw?=
 =?utf-8?B?amlqNnR2WjFoOGpPYkxCNnByZUlWMWZ0Rk8yZ0NqUXVkWGJ2YTA5K3dsdVFs?=
 =?utf-8?B?S0VhbCtaMnZUYmRpa0g3MGNheGI0U0crVk03KzNKeFdxam42WEd0bno5cTU0?=
 =?utf-8?B?VHo3UW1Xam5pZy9mTjM1VkhZQUQreTRSMGlYU2dpaXZSNkpsYlV4QXc1dm9o?=
 =?utf-8?B?WE44dmNDSGpHTWZRRDlBODF6ODJJdzBPZlBRaDhXeHF3Z2Zwc042SkxQTEhO?=
 =?utf-8?B?WXZpL1R6SzhmRmtSY0FyaUNDK2pTNkgxclAyYzZaUURvTkhMdnM0dTdpdUlH?=
 =?utf-8?B?OERZUzRXeG1HejVNVk5kQlRnTS8yWWovMTdTY1dFbkhXcEhwUGU3ZndvMFRw?=
 =?utf-8?B?RDErKzU1QzJ4ckdVN2ZaMEE1ajhic2Q3cTkzeWJNVGkwR1JJdkZkV1lBR05q?=
 =?utf-8?B?R3Mvc0lJbTk5ZDNpWHhjV2J1RHp4QzN6T2hlOXBNME9MUWJjLzNJOE54TjhT?=
 =?utf-8?B?YVlncDVGeUVrQ1RJREdYZkhXeWlRcWhmcXFYUE1Jby8xWU9CakJSdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DE2E5FA28EF2974691E13EA4DC799F5A@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f3685bbd-bed4-41d6-c5c3-08d9a8d3510e
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 07:32:59.9561
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: p88hv8NHJrwwJsf3th/OjYoOIPeGYYRKr/0EWIZLVv4Ty8AeXiBmFeCcBn9LUjSNz/6/tnaDquqL3KBJAJ5TKD8eLIraWRvBMpZsql2UzKOXofMVhEU9Kbw7RrziB5aK
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4147
X-Proofpoint-GUID: 9TVmSyDczkG7iMOVVg-LGsoIwtSh6EIz
X-Proofpoint-ORIG-GUID: 9TVmSyDczkG7iMOVVg-LGsoIwtSh6EIz
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-15_16,2021-11-15_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501
 lowpriorityscore=0 adultscore=0 impostorscore=0 bulkscore=0 phishscore=0
 spamscore=0 mlxscore=0 suspectscore=0 clxscore=1015 malwarescore=0
 mlxlogscore=878 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111160038

DQoNCk9uIDE1LjExLjIxIDE4OjU2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gV2hlbiBhIHZQQ0kgaXMgcmVtb3ZlZCBmb3IgYSBQQ0kgZGV2aWNlIGl0IGlzIHBvc3NpYmxl
IHRoYXQgd2UgaGF2ZQ0KPj4gc2NoZWR1bGVkIGEgZGVsYXllZCB3b3JrIGZvciBtYXAvdW5tYXAg
b3BlcmF0aW9ucyBmb3IgdGhhdCBkZXZpY2UuDQo+PiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2lu
ZyBzY2VuYXJpbyBjYW4gaWxsdXN0cmF0ZSB0aGUgcHJvYmxlbToNCj4+DQo+PiBwY2lfcGh5c2Rl
dl9vcA0KPj4gICAgIHBjaV9hZGRfZGV2aWNlDQo+PiAgICAgICAgIGluaXRfYmFycyAtPiBtb2Rp
ZnlfYmFycyAtPiBkZWZlcl9tYXAgLT4gcmFpc2Vfc29mdGlycShTQ0hFRFVMRV9TT0ZUSVJRKQ0K
Pj4gICAgIGlvbW11X2FkZF9kZXZpY2UgPC0gRkFJTFMNCj4+ICAgICB2cGNpX3JlbW92ZV9kZXZp
Y2UgLT4geGZyZWUocGRldi0+dnBjaSkNCj4+DQo+PiBsZWF2ZV9oeXBlcnZpc29yX3RvX2d1ZXN0
DQo+PiAgICAgdnBjaV9wcm9jZXNzX3BlbmRpbmc6IHYtPnZwY2kubWVtICE9IE5VTEw7IHYtPnZw
Y2kucGRldi0+dnBjaSA9PSBOVUxMDQo+Pg0KPj4gRm9yIHRoZSBoYXJkd2FyZSBkb21haW4gd2Ug
Y29udGludWUgZXhlY3V0aW9uIGFzIHRoZSB3b3JzZSB0aGF0DQo+PiBjb3VsZCBoYXBwZW4gaXMg
dGhhdCBNTUlPIG1hcHBpbmdzIGFyZSBsZWZ0IGluIHBsYWNlIHdoZW4gdGhlDQo+PiBkZXZpY2Ug
aGFzIGJlZW4gZGVhc3NpZ25lZA0KPiBJcyBjb250aW51aW5nIHNhZmUgaW4gdGhpcyBjYXNlPyBJ
LmUuIGlzbid0IHRoZXJlIHRoZSByaXNrIG9mIGEgTlVMTA0KPiBkZXJlZj8NCkkgdGhpbmsgaXQg
aXMgc2FmZSB0byBjb250aW51ZQ0KPg0KPj4gRm9yIHVucHJpdmlsZWdlZCBkb21haW5zIHRoYXQg
Z2V0IGEgZmFpbHVyZSBpbiB0aGUgbWlkZGxlIG9mIGEgdlBDSQ0KPj4ge3VufW1hcCBvcGVyYXRp
b24gd2UgbmVlZCB0byBkZXN0cm95IHRoZW0sIGFzIHdlIGRvbid0IGtub3cgaW4gd2hpY2gNCj4+
IHN0YXRlIHRoZSBwMm0gaXMuIFRoaXMgY2FuIG9ubHkgaGFwcGVuIGluIHZwY2lfcHJvY2Vzc19w
ZW5kaW5nIGZvcg0KPj4gRG9tVXMgYXMgdGhleSB3b24ndCBiZSBhbGxvd2VkIHRvIGNhbGwgcGNp
X2FkZF9kZXZpY2UuDQo+IFlvdSBzYXlpbmcgIndlIG5lZWQgdG8gZGVzdHJveSB0aGVtIiBtYWRl
IG1lIGxvb2sgZm9yIGEgbmV3IGRvbWFpbl9jcmFzaCgpDQo+IHRoYXQgeW91IGFkZCwgYnV0IHRo
ZXJlIGlzIG5vbmUuIFdoYXQgaXMgdGhpcyBhYm91dD8NClllcywgSSBndWVzcyB3ZSBuZWVkIHRv
IGltcGxpY2l0bHkgZGVzdHJveSB0aGUgZG9tYWluLA0KQFJvZ2VyIGFyZSB5b3Ugb2sgd2l0aCB0
aGF0Pw0KPg0KPj4gQEAgLTE2NSw2ICsxNjQsMTggQEAgYm9vbCB2cGNpX3Byb2Nlc3NfcGVuZGlu
ZyhzdHJ1Y3QgdmNwdSAqdikNCj4+ICAgICAgIHJldHVybiBmYWxzZTsNCj4+ICAgfQ0KPj4gICAN
Cj4+ICt2b2lkIHZwY2lfY2FuY2VsX3BlbmRpbmcoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYp
DQo+PiArew0KPj4gKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7DQo+PiArDQo+PiArICAg
IC8qIENhbmNlbCBhbnkgcGVuZGluZyB3b3JrIG5vdy4gKi8NCj4gRG9lc24ndCAiYW55IiBpbmNs
dWRlIHBlbmRpbmcgd29yayBvbiBhbGwgdkNQVS1zIG9mIHRoZSBndWVzdCwgbm90DQo+IGp1c3Qg
Y3VycmVudD8gSXMgY3VycmVudCBldmVuIHJlbGV2YW50IChhcyBpbjogcGFydCBvZiB0aGUgY29y
cmVjdA0KPiBkb21haW4pLCBjb25zaWRlcmluZyAuLi4NCj4NCj4+IC0tLSBhL3hlbi9kcml2ZXJz
L3ZwY2kvdnBjaS5jDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYw0KPj4gQEAgLTUx
LDYgKzUxLDggQEAgdm9pZCB2cGNpX3JlbW92ZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYp
DQo+PiAgICAgICAgICAgeGZyZWUocik7DQo+PiAgICAgICB9DQo+PiAgICAgICBzcGluX3VubG9j
aygmcGRldi0+dnBjaS0+bG9jayk7DQo+PiArDQo+PiArICAgIHZwY2lfY2FuY2VsX3BlbmRpbmco
cGRldik7DQo+IC4uLiB0aGlzIGNvZGUgcGF0aCwgd2hlbiBjb21pbmcgaGVyZSBmcm9tIHBjaV97
YWRkLHJlbW92ZX1fZGV2aWNlKCk/DQo+DQo+IEkgY2FuIGFncmVlIHRoYXQgdGhlcmUncyBhIHBy
b2JsZW0gaGVyZSwgYnV0IEkgdGhpbmsgeW91IG5lZWQgdG8NCj4gcHJvcGVybHkgKGkuZS4gaW4g
YSByYWNlIGZyZWUgbWFubmVyKSBkcmFpbiBwZW5kaW5nIHdvcmsuDQpZZXMsIHRoZSBjb2RlIGlz
IGluY29uc2lzdGVudCB3aXRoIHRoaXMgcmVzcGVjdC4gSSBhbSB0aGlua2luZyBhYm91dDoNCg0K
dm9pZCB2cGNpX2NhbmNlbF9wZW5kaW5nKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0Kew0K
IMKgwqDCoCBzdHJ1Y3QgZG9tYWluICpkID0gcGRldi0+ZG9tYWluOw0KIMKgwqDCoCBzdHJ1Y3Qg
dmNwdSAqdjsNCg0KIMKgwqDCoCAvKiBDYW5jZWwgYW55IHBlbmRpbmcgd29yayBub3cuICovDQog
wqDCoMKgIGRvbWFpbl9sb2NrKGQpOw0KIMKgwqDCoCBmb3JfZWFjaF92Y3B1ICggZCwgdiApDQog
wqDCoMKgIHsNCiDCoMKgwqDCoMKgwqDCoCB2Y3B1X3BhdXNlKHYpOw0KIMKgwqDCoMKgwqDCoMKg
IGlmICggdi0+dnBjaS5tZW0gJiYgdi0+dnBjaS5wZGV2ID09IHBkZXYpDQogwqDCoMKgwqDCoMKg
wqAgew0KIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmFuZ2VzZXRfZGVzdHJveSh2LT52cGNpLm1l
bSk7DQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2LT52cGNpLm1lbSA9IE5VTEw7DQogwqDCoMKg
wqDCoMKgwqAgfQ0KIMKgwqDCoMKgwqDCoMKgIHZjcHVfdW5wYXVzZSh2KTsNCiDCoMKgwqAgfQ0K
IMKgwqDCoCBkb21haW5fdW5sb2NrKGQpOw0KfQ0KDQp3aGljaCBzZWVtcyB0byBzb2x2ZSBhbGwg
dGhlIGNvbmNlcm5zLiBJcyB0aGlzIHdoYXQgeW91IG1lYW4/DQo+DQo+IEphbg0KPg0KVGhhbmsg
eW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 07:33:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 07:33:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226158.390745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsyS-0007zX-Ic; Tue, 16 Nov 2021 07:33:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226158.390745; Tue, 16 Nov 2021 07:33:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmsyS-0007zO-FV; Tue, 16 Nov 2021 07:33:48 +0000
Received: by outflank-mailman (input) for mailman id 226158;
 Tue, 16 Nov 2021 07:33:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmsyS-0007zG-1i
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 07:33:48 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8888718c-46af-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 08:33:46 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2056.outbound.protection.outlook.com [104.47.13.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-4-02aJUhdYMKaho8R9Mkz08Q-1;
 Tue, 16 Nov 2021 08:33:45 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2701.eurprd04.prod.outlook.com (2603:10a6:800:af::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Tue, 16 Nov
 2021 07:33:43 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 07:33:43 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P193CA0063.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.26 via Frontend Transport; Tue, 16 Nov 2021 07:33:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8888718c-46af-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637048026;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=VPA1jGhHeFEZlO5N9ugVpojQy4fMwYOuuXv84sG7Gu8=;
	b=Gl00Dd5ZIe5OMXN6fmCBRzhqqWTaea8xv0MJ2hX9uNLMQy5GJkA1E21K0yzXFIPI1r2pnA
	IPsym3s+cm28iqdGpUG4wvp0bob4AlcTIBUwqRE/vyNu1DNEk0CiNp0DoNX0IU0mhEdlgt
	Vit62ttAcp+cG+ZZYgbOF4WPf+PPfRI=
X-MC-Unique: 02aJUhdYMKaho8R9Mkz08Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=noPavCY5hAqVKhymyeZjNNjTjHKh9f55tTA+TH2TUa7vfo8Qyw7DxWnPGBevQMG3jV6mDdRe6kRoGaELhdDlyCFZgpwJy5rVDpRERVehyMoId9MZ2QMRDlswS27xnmCNPmVvqzFotts99ZX02ucjgJIgxnrcrSef+a7ig6D9udxR9KAHaCt+DWRjg4OkJInW1yOxWLPyT5fkyzOtsNM7QXhCuwojyUdCG5FUKfKAEcS8jU93h7q1wi+sKLpbqkE33uFEcmiGOrvBiBbJVditrOhERSQi7EFVe+rpFjrPrMTGZXJZ3MWpzzKcpUt/BoWbtPOeqCa1aOQG5Br/akt1MQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=k0WOFLme123Z+8DoAJrxNddKPNy2Gl8yWwJFEBzzz6c=;
 b=QGEdXP8EChjdrCYsf1ABrUjW9yCYZzDRmGlc94JGHPhTcaaTrZtPQ8klJmR7OR8zQs8mgtC6WPX0S4eJyPHAQ/lQcl95feABSNl774/rHAg9Uw5QqKOjAn8yAImJGTfjLc+CgYH9ylQKU5VbKWQKuuv7UEQ2sj3fm1mD9Wx/Z2z3hUdgjOMjrQMm/u5ocXW0G+6wnTtsi+jDypZpVavtoiPyApcald554smSD0e/Y308vckzGArVjB3E5Ol0EV8Gmy3szld5Qe6B60CseN5/ujou40EJIn1op4t/Ulleu6kEJM538qupjXepelrTtE/T1qRmGjhQebv2+nqNcaXkTg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <42136e3f-5b77-3699-39f5-f720ba09174d@suse.com>
Date: Tue, 16 Nov 2021 08:33:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [linux-linus test] 166151: regressions - FAIL
Content-Language: en-US
To: osstest service owner <osstest-admin@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <osstest-166151-mainreport@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <osstest-166151-mainreport@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P193CA0063.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:209:8e::40) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2e4cce0c-8883-4db6-ef13-08d9a8d36aaf
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2701:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2701E1902528C07AE4F592EFB3999@VI1PR0402MB2701.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	puvL1T0SVh+AJngDF/vWFN4KAlc3nNdIpARzN2uOH/pruDiXIBiSlDmwpNGxRteO6XKzUZZm9A5SuWdaKaDWYrnSBtm18DoBz9eW6oPFuB3VJkhrT2HjewpYOdfrYW+monkKVZ8W8bnq89NOvSjnUdjojjgfi1Baki4U4HJHt7UrrgjH3pWIpaRsuyMejY33Lm7dwuuwCuoR2LijwgwS9w2BMvHSfHW9j4+T3bT/8oFsWOBs7M5KxqWoIOfC+i5CR302dCC4w3V1UI+H9tcru2QxRZLcdr+zweBLEduEJfl4WJIlCv7CKuwbsTcWMSwnbNhIqlbJbAZBGeQ0rYC7uZJSEnd3ckHNLiEi7GO2hYyqa8Mf0YtT/YbzrB2Mo2z6Sbrd96av2E6IY9QHq0XY4J7h798AT33o14TIre22zolyyvqtGU5gDBuiU1yfSuikuvgaJX/geBxtIGk7S+/2SP8P3JVYcTRVDUa7se4XOk7mOtnfMazQfVwfbuN+5fJScGo6GQ0Zj6jsgfyrfM08dH37PqRkniicrAn8xU2Bie0vP5cLFrPksqztxDEBeOj2e/v1qMIwKUxVFk/l3lPOcFa7LMeDHGh8xSPXoTA2QiBMphIOHBF5qZQw0SeO1oUM5nGM/6CaE+wEAPLeyz0b/0Gx5p7E7agHJ4Wg0lD8EPQRtLD08pnfeqxMmAKYzG8GsaDZbs0DJUeczsxF2HM69MpRuGX0XsaJa/hvZ9PQuKjJ8zZLIXtG7RJzi5idLLl9Fefob4L3ZndeET+zvjKGphLcMm9gwzbwVWz2AKbR7qFJOYqr2bcUIIsGmcQCo5y93EdqP23VaEKs6UwQTPVRhA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(966005)(83380400001)(86362001)(38100700002)(8676002)(36756003)(186003)(6486002)(26005)(8936002)(956004)(5660300002)(53546011)(31686004)(2616005)(66476007)(66946007)(66556008)(508600001)(2906002)(31696002)(16576012)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?hVmZAdJIgzYGe7x1dCTz/3HIB/N9qUy8Io3VHLNKlH2O6RcSM9urDelSH/8P?=
 =?us-ascii?Q?n+QqeVrkC1OxXYq/JOFatzgR9IjJqkmVe9NhjeRxXGbVwKrsFJSpcH+CaoQH?=
 =?us-ascii?Q?GkdYD9bZ/XUlYGe/q7bCZbEDIlDos/IKc2QZc+hYNE0bXBMGWsiEsVZbD85p?=
 =?us-ascii?Q?zPbLOPG41D40u1SYUB5Sdrg7p0PPq02+dBN0g8HP55y4Z90U/u4R6GA0gqpQ?=
 =?us-ascii?Q?FqMuVj3grBjJv799O4fQrWduIITGjq9Dzap2wFCGVTXJ8MP9jC00AA3hUwY9?=
 =?us-ascii?Q?krGl5RZQ3R73jYrf5AGfFLaukGTB/+oNgi1Agu9+gYWilUTa4mf9Y0jrGtKa?=
 =?us-ascii?Q?nYr29sYsEXUqvKSQjur2RgW8/jVzHFlLgY9sA+wFIIlFIHhDlUTplsrM59Hh?=
 =?us-ascii?Q?x9AhBpVzQS5ncuOFzUiMQ0KcHTG+hrJWEXkw41aChyV9nkH59T9R2K+f7YpK?=
 =?us-ascii?Q?5PXOMcPxIxjkjtFeZ9lChhl2kWGvjgIU7+4rgkXqhfhLJjt3Y5+m64d0TM5G?=
 =?us-ascii?Q?59A+EfW1W9EfTfqRvdh8U6uSd8qjMkpz/B71tA1Dbgn4ilS2mJhv4QalWUkI?=
 =?us-ascii?Q?jcCIk2LjZCqQ9hrmVQRsa6z1BEWmAalP12PuT8IQeL8e+dKYPdLPKJZMyqXh?=
 =?us-ascii?Q?4bEbALsewagReWShYplG1zQImWFp4AQ66udHDVqn/iybAi69V70xYDYfTkmK?=
 =?us-ascii?Q?u4tK4ftW2FcZo5JKLh4zO6rc+UhmUdX5PUmSCN/R8njqNjgSClGwa9iJ6ESE?=
 =?us-ascii?Q?IjwsZlJKKdUGsIrHPoT8+JLS/vg19xxPrWWlKVxRH78C7B9tAZ7KviJ/gfNu?=
 =?us-ascii?Q?OLfey2V1YvQ25XnghqSxRg+cpILmLfo4maIcaKpETv8Bg27JJkHOa9I1tLih?=
 =?us-ascii?Q?4mVmz9GPx5x4S6phH65HCHdxNpal3zAXV4Q6lz2NQaDKH836OdQtTSEix1vM?=
 =?us-ascii?Q?TvbohUrBs5JoWzgNqFZrKVBcn16/qpc0D9bUcuiV4Z16vGjPxu+GkMc8ltGz?=
 =?us-ascii?Q?CsrvEHqQgdS47knWweQNZiGjt2MB64xMZoyIQEi2SI9BsV4i3F9Ash5cALFC?=
 =?us-ascii?Q?qjREZWnyPnpxsaLDoMRoRNlnyf2Nd4FsDKaHrOyNfebgfIDbdqbRr3vxfXqY?=
 =?us-ascii?Q?AEIJ4WSQMZHf6XDlO1gOf8XrWPbNkfPnitwXaMBzev5xraQJFJjSkEtekM1C?=
 =?us-ascii?Q?+rEIDLSHyJIY75UHEsG+6enorpz7FzkhzilPJczjn+8FoZiPNQ4wu+MYgC2V?=
 =?us-ascii?Q?OSo3UVFFNAm54n6tJAsf4vNOnYWf2WdRjE2IthFTqdKJ+oeD77+ROMkBIEp+?=
 =?us-ascii?Q?Xgy8/e1/4Wj+/iqQF6ChZY2Qn8FRLCOYL5/Ii30Q/+qDv9UovJ7yg5tfzDz1?=
 =?us-ascii?Q?jrwok9tKmvIG17pTaJENQ4FaeU5ru/sVt2LmDc+mmmnhwmT4lxfyG3Gn6wy7?=
 =?us-ascii?Q?0PD2GrfvMMB+loYh3PHo85OwCvrw4gVjx1A5GEYBb1uA+9TwICm81fPEbBZh?=
 =?us-ascii?Q?z0qJoc06ou7tpaBgfn6sETS3T9rmaH0h1UVMmsyAys7IZS7u9iUhR52Kr8+Y?=
 =?us-ascii?Q?r2LKhDI6txgp+xfqCi9bcPW4P6QHKNuKndAKgpsBv/Lq5m9FDkWoSKfLi8Vz?=
 =?us-ascii?Q?cQF49PrRIIWnhDa4+2fBC0Q=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e4cce0c-8883-4db6-ef13-08d9a8d36aaf
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 07:33:43.1846
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PxT9R0E0DDtXTUyVx90dE98QhyDeWX+vT9kuF2suKCvlTmxnLShvfT51wonhwsEYyiXOsqLRD5ldWBLPiA0uCg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2701

On 16.11.2021 05:42, osstest service owner wrote:
> flight 166151 linux-linus real [real]
> http://logs.test-lab.xenproject.org/osstest/logs/166151/
>=20
> Regressions :-(
>=20
> Tests which did not succeed and are blocking,
> including tests which could not be run:
>  build-i386-pvops              6 kernel-build             fail REGR. vs. =
165976

I'm puzzled by this in two ways: First that this is being done at all,
when 32-bit PV Xen support has gone away several releases back. If the
purpose is to cover PVH and/or HVM, then I guess the test name has
become misleading.

And second that this fails on a KVM related build error:

arch/x86/kvm/x86.c: In function =C3=A2=E2=82=AC=CB=9Cvcpu_enter_guest=C3=A2=
=E2=82=AC=E2=84=A2:
arch/x86/kvm/x86.c:9948:1: error: unsupported size for integer register
 }
 ^
make[2]: *** [scripts/Makefile.build:287: arch/x86/kvm/x86.o] Error 1
make[2]: *** Waiting for unfinished jobs....

To limit the risk of unrelated build breakage, wouldn't it make sense
to keep off Kconfig settings which aren't really of interest?

>  test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. =
165976
>  test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. =
165976
>  test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. =
165976
>  test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. =
165976
>  test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. =
165976
>  test-armhf-armhf-examine      8 reboot                   fail REGR. vs. =
165976
>  test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. =
165976
>  test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. =
165976
>  test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. =
165976
>  test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. =
165976

For these I assume Arm folks are aware and will look into the cause.
At a first glance it seems to be the NIC driver which is unhappy.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 07:45:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 07:45:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226166.390755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmt9G-00018o-Jq; Tue, 16 Nov 2021 07:44:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226166.390755; Tue, 16 Nov 2021 07:44:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmt9G-00018h-Gt; Tue, 16 Nov 2021 07:44:58 +0000
Received: by outflank-mailman (input) for mailman id 226166;
 Tue, 16 Nov 2021 07:44:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmt9F-00018b-OC
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 07:44:57 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 179e7470-46b1-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 08:44:56 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-11-6jLDyKaiNXSz8bPDntMZmw-1; Tue, 16 Nov 2021 08:44:54 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7152.eurprd04.prod.outlook.com (2603:10a6:800:12b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 07:44:53 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 07:44:53 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0003.eurprd06.prod.outlook.com (2603:10a6:20b:462::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.25 via Frontend Transport; Tue, 16 Nov 2021 07:44:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 179e7470-46b1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637048696;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GQsKGv0HALlMmhe4QU/b961BXx1Qzpd9vBXfpctLga4=;
	b=jK8Dlm0mFRfwd7ClviOGcjZ7+PuvkPGBfA/U86W44kKeKLXhgv+9NECaYur86UPPW5L5xq
	g583G75nbhkCAg051qoy/Eu2boX70r1yi3RUf2HKvNpeBMeCgTYXGeo7nd6wLzko+Ydp4/
	sxjw9vTq6qVKqrAaOk7bLLV7fLFTmtk=
X-MC-Unique: 6jLDyKaiNXSz8bPDntMZmw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SvthTJ/szIRW8n5AE6FusWDewALxLjuW/ki7/mIOR2qtNON5E013EvJ2Qlp5XZIjDYuykYDmY9HFt6ORAcA5tOmh6sW+EDQFHSX0V0Noq87PbV0DWb3HauDzpP6U+g2LN6+SXIZ9abxdaaenDgvgpDWpR097Se8iQRsU+wPcYNZoJyr5ZnS4dV63i4pAGBiivZkgOn6nXIHMWTXlehcYLpsYfLR6fzC9+tn191TuahBNR1ZKQJFfQftrYtVzYNHk/cBpqpCXSOdo4y8iZ8F3t+OLcw7bo7o6SkSuV0fi84IwqO3AvQMECcxZVkp17vCTTkADMmWu7drHTSX8DdPs5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GQsKGv0HALlMmhe4QU/b961BXx1Qzpd9vBXfpctLga4=;
 b=NmXrxvfCZiQPYaMIguu4UNUp4B1v7Edmg3pYXEPpZWj7yGUlazaGrv7sgmprgfkc0r6olgs8j2bdkxiBWebp21gkwR+0d+NTgm436PQiND+85D5y1JcV7liG0mZvovLoIMpJ+U0KzaonLvtJkGCi48Tn3FWW8DFSU5IqRa4+LEAl6T7lAfzvZ/Urxvt91Z/H0bE2XZ4wD75VHVXPL2SCseI+f43t1UsvOvCyg0sye6TW+3RrEL4WXdaHGfGQiyCddLcGS3NM0mLBrmsDInHlo711LlyR+t+pHsj/SJmpzj2BSiYszptMgrU0XdksjYihhg1MAgTqS5xwzyjF5kgQXw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <29e1ea87-c2e3-f8b1-b843-a390ad280984@suse.com>
Date: Tue, 16 Nov 2021 08:44:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2] xen: don't continue xenstore initialization in case of
 errors
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, Stable@vger.kernel.org,
 jgross@suse.com
References: <20211115222719.2558207-1-sstabellini@kernel.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211115222719.2558207-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0003.eurprd06.prod.outlook.com
 (2603:10a6:20b:462::9) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bc90014e-f7ee-4ad0-5e3e-08d9a8d4fa4c
X-MS-TrafficTypeDiagnostic: VI1PR04MB7152:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7152CB46C4987133A8DE2253B3999@VI1PR04MB7152.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	549VKNUUX9Nez7nfdOoOy8gJS66b0QXimTmGfipRhOlOHRADOdyoiLTUgosheiqMY7Zt27jx8WYlFTz7eu81nfoGcOuyh1t7RIjLfPWQ7gydIfahgCpuwgfzOT3VJymFzcak1pJBW3Ggp68kxBCV1QOtuuyxfdhBsxXbMXHwV19f3iUUNwTWHdqGy1zMuBdkytsei9Ght00s+SFMXghG+/IjavLGu/AoSJN+lRBsvLHrjxFKncp4SNvZwtWhRCjeSGOYQnhC+ywYccUIJffw2Khdfro3I3QxwQkwlbUK5CbyJkXXvaJ554qt2ht3acDC38IM+0SCXxmW27HAutG3pZZqoAs9VpqDp7t85Ze7kszz8TpuhY/1Rr9ctDCQlb66TQSwk26whaPIdTbbWKh9bNid8lHLGDca8j+b8Lwnn7P/TO++WE5oOaCLAow9J/HRlK8++KmOY5vifF3+oOK4mhTFtVG0IlZRXrRjnYI13JljrEVoYpUVgtqTyb4Ptgem5JM2XHqSLII9LveKN97QEMpbgHmRPYc1VX8ladmiwUMH6XDQKiQn86kKTvedE888G/CsuIH+TrF/iCw+oVhwKbyR7h5+t4p5cRz5XgEzxr/nM46FFcEG8TxRrG7l1PmYuV1GqAYkbQJ4HIHh49vR2e4f9htY+HU5WDrRZTDUretm/2mZBw0SHbztGiKpnnw37idek3VGzEu2cGIrY119I9l79aJG3eZ4RBpk6hx8dTb1Sf2Od7zkgrk6yQguujkj
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(8676002)(31686004)(66556008)(8936002)(38100700002)(6916009)(86362001)(5660300002)(956004)(2616005)(4326008)(36756003)(2906002)(26005)(66476007)(6486002)(186003)(66946007)(508600001)(107886003)(31696002)(316002)(83380400001)(16576012)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UFJFV2xHNWdrekJqZFFQV0pnS2RJT0piNktuS0FoS2dEclMzMG1ObFdaaDF0?=
 =?utf-8?B?dTN3L09VWTYycVY2THNieUk5STd4ZkU1YjBIbllmQlgzdlFLa051bGIzTVpG?=
 =?utf-8?B?TFBuQVE5OUtheFROODV2SXFEbS9ENVpsKzgyemcyNHJlN3lCV2RLd0NPK0J2?=
 =?utf-8?B?eEF5MlVRczRPYURJUlVYWU9BVUJHbmNIK1VLSkViNUFJd3BKL0lkRkMwVHlh?=
 =?utf-8?B?VG13czJ5UXNDUGFWRDdpR1BDWkRIQy9nU3lqaWJvQ2FpUitGWFJXWlJtTmdP?=
 =?utf-8?B?TDBEU2hMR1RWdDg3T1Z3b2JFYkpTZ0NIUnN3OWMxNCsyU1FMbTFtZ2tJVFVP?=
 =?utf-8?B?VGlKcGNKVkdBTTJIYVpFQVVlODdKNXY5aklXcWJORC95SW9IK1JUY21xcjRO?=
 =?utf-8?B?RGVxSHA5aEFoQUgrZ01aRW5sZDFnNm55bVlDanVpTkE1OUc4aWVUSWt6SUlG?=
 =?utf-8?B?M0JLRW9QRWs4OXMrek9RSVltSXg1b3FvT01hbkRweVpnRCs1RkJGTzBGUE9a?=
 =?utf-8?B?NW1xMldBQ1RLUmJOT2FnZXZuN1VJUCtEZytuUERtM1hIeG1VL3ZtSUUraXpi?=
 =?utf-8?B?NXM4RmVTK1VLVnYvaXpuaG9HbnNGSDErSG83eTVSUzQzZW5wNXpuSlUvbzlG?=
 =?utf-8?B?a0NMR0QwRjk2cmRxb3lmZnppYmIvUlhHRk9EQnNmRXBEc1BvM1dWa1dUVTJt?=
 =?utf-8?B?S2RENlhDcVdFN2xyVzRMcFk3c29aWWNpY2thS0hrNEk4YlM2SlpBdmV6NzNo?=
 =?utf-8?B?MzdYM05YelZKNjZ0K0hPbHdSUzd5dnF1VnppQ1F3ZDVSRzYwbDJYR3VCbTBL?=
 =?utf-8?B?bWZiQTBmYXNTNCs3bFMvTGNYK1pVdEdXZjhBMTRGVStvVWVYQ1N3L3dPaUhx?=
 =?utf-8?B?Tmc4bFgwQmpZYVJQdE93cXZ5dnVQSFJJaUprcW4xa1BjeVBxSGRRek5qbHBC?=
 =?utf-8?B?eC93WG55Q2hrR1loSDR0eUJkZERsVXh6Qkx6dzhjWUtSVkVVeENpd0l6TjZi?=
 =?utf-8?B?OXJjendMKzhYVk5Zb0Uzd1hjaW5tSHBVU00ySjNrMVpwRTcxUFNMaWN1VXBq?=
 =?utf-8?B?dHFVOFViL09zK2pTbnBuMTdjbEVxb0FKNTRSWHpiNVJsQkV6OFFRZUdSQjVQ?=
 =?utf-8?B?a3h4dytFM1VrNDFjZ1Z1REREZ1hRZ0NNT2ltRUdET1RLUUdYZk1sUDhxSVR1?=
 =?utf-8?B?Q084czc2NitUSzVSMytmQUt0eGNvSDB1T1dVbDlXZkcwOU4xV2hiR28xc1BK?=
 =?utf-8?B?UTNCK1lVR2Q1QTJmRnhXTnJmaFF4RUlZYzA3cDltL0d4UnFjTHp5aklnT3FT?=
 =?utf-8?B?Ukd5dFgyWlZlS0YxVVFqWFgyNkcweEtnVUJWTm5vaC9Fa09SSVZicG5GcmNJ?=
 =?utf-8?B?SEZiNy9mOFBEZ3RKM0o1aFV6dGtmZTY1MlF5OCtWdnIraVM0UHFqaytFbDhE?=
 =?utf-8?B?V1YzRXR0bGZiWDgrY09oYmFlaHZTWlRjT1JJeDVEWXZCY3J1QzkwSk5KaGZE?=
 =?utf-8?B?NlM4RTBnYThxVHQxUk1QdmpkVTUrd3lQd0ZkdjdGODJWY0dYYjNEOWlkR0xT?=
 =?utf-8?B?T0hRZEM4S1dpejQwTVFJUlgrRTQxbXErM1BCN3lrdTlmWURCamh2U1QrOVZl?=
 =?utf-8?B?RVdrNTFiM3pvM0J6MTNreHBmNnNuenNKN2w3WlZSbDV6SXR4QklRQW96N2Q3?=
 =?utf-8?B?dnErS2tXczNmWEdUMWtPOXFPWWRZUFpRemtZU2VtNm8vZit0N3AwVU9aR0tO?=
 =?utf-8?B?T3NNdU1hdGRzQ0g5Z0VMekJXU29naytvTm1EOGNKcFdGMlBWbnJvK2JEMWFZ?=
 =?utf-8?B?Nm16MTZ2SEFWZnU4QWlKaGwwUjNCZTJWL0RxdXRta1ludm5lM3BZZVBEWkYy?=
 =?utf-8?B?NmdHRDYxZm9SZm8xbDJHVUtnMU00U2JIc2JQSHcxZHkvNEFaYXFHZEFKakNr?=
 =?utf-8?B?SXFlVjBYSHptbWd0aFhrNERmMy93TGlHR1FyYmtBUDZrMzFoR2dlYUZ4TFAv?=
 =?utf-8?B?ekUrMWRCWW45ekhYbzFCb2x2ZExzUUxzNDVBK0pzRENNVG1uTy90NEk5YjIy?=
 =?utf-8?B?cEh3N3l4NC9IcFgxK1ltL3ZnSGNuRUJ6bUZCVGd0YmZoOENkRnByczhTUVVO?=
 =?utf-8?B?ZHFObldyS1JsSnNTc0wyc3ZzeTV1MVRuYlplVVQyZ3AzTDh6ZnkvMS9TK2FP?=
 =?utf-8?Q?3tJoz5QJYzUNdzyD5q0A9cA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bc90014e-f7ee-4ad0-5e3e-08d9a8d4fa4c
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 07:44:53.6986
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BXK+fEfnNGelC7wqM+1teV5BHSRR6x7oaKVNyp08N9xEoO2rvoDuNNAWuTGIs8CZvlOgFPEbWks9HUwzfvL+4w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7152

On 15.11.2021 23:27, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> In case of errors in xenbus_init (e.g. missing xen_store_gfn parameter),
> we goto out_error but we forget to reset xen_store_domain_type to
> XS_UNKNOWN. As a consequence xenbus_probe_initcall and other initcalls
> will still try to initialize xenstore resulting into a crash at boot.
> 
> [    2.479830] Call trace:
> [    2.482314]  xb_init_comms+0x18/0x150
> [    2.486354]  xs_init+0x34/0x138
> [    2.489786]  xenbus_probe+0x4c/0x70
> [    2.498432]  xenbus_probe_initcall+0x2c/0x7c
> [    2.503944]  do_one_initcall+0x54/0x1b8
> [    2.507358]  kernel_init_freeable+0x1ac/0x210
> [    2.511617]  kernel_init+0x28/0x130
> [    2.516112]  ret_from_fork+0x10/0x20
> 
> Cc: <Stable@vger.kernel.org>
> Cc: jbeulich@suse.com
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>

For the immediate purpose as described this looks okay, so
Reviewed-by: Jan Beulich <jbeulich@suse.com>

However, aren't there further pieces missing on this error patch:
- clearing of xenstored_ready in case it got set,
- rolling back xenstored_local_init() (XS_LOCAL) and xen_remap()
  (XS_HVM).
And shouldn't xs_init() failure when called from xenbus_probe()
also result in the driver not giving the appearance of being usable?

> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -909,7 +909,7 @@ static struct notifier_block xenbus_resume_nb = {
>  
>  static int __init xenbus_init(void)
>  {
> -	int err = 0;
> +	int err;
>  	uint64_t v = 0;
>  	xen_store_domain_type = XS_UNKNOWN;
>  

Minor remark: You may want to take the opportunity and add the
missing blank line here to visually separate the assignment from
the declarations.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 07:50:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 07:50:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226169.390767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtDx-0001rb-Aa; Tue, 16 Nov 2021 07:49:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226169.390767; Tue, 16 Nov 2021 07:49:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtDx-0001rU-7V; Tue, 16 Nov 2021 07:49:49 +0000
Received: by outflank-mailman (input) for mailman id 226169;
 Tue, 16 Nov 2021 07:49:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmtDv-0001rN-4r
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 07:49:47 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4537fed-46b1-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 08:49:46 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-6-5nZ09YpSM06wMeLpKq4yUQ-1; Tue, 16 Nov 2021 08:49:44 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4944.eurprd04.prod.outlook.com (2603:10a6:803:60::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 07:49:40 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 07:49:40 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0011.eurprd04.prod.outlook.com (2603:10a6:20b:310::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 07:49:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4537fed-46b1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637048985;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=xnHQDYU+f2npCEGWIn0LTMAsYXIdkkqX4C7ld4VOlA8=;
	b=Q88bqYg79CaRGGQNDcip7Y3QKELdJlSVAXot+MkfBdX7uz+Xfev0J10dGZRPYJ2NyFe1Gq
	7K7JNDbPTO+LsNRwb/0rPtP1wtABAPhkKzNJl+1TJgJoBGkd88gxC7bOfnpti7WUZL7lv/
	th33tubM8cLYUqc7kM/Dt9eTQRCpF6s=
X-MC-Unique: 5nZ09YpSM06wMeLpKq4yUQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=S1vOCYWLCBiJ6jZBDKLMhWnCYAF8sNn2L2KNYLL+e5FnjVveiIHpEDihNflqcA36AGswvjDdfWMfo5pTFPd5OIj+Dounfhd11upvhvxR94BP5r2j3WfDGuYp7hmAf2qI2FAPjD1cW3p57oulgRWEr0swBqfxujHoR+WqN0WTYB4lj+uUvycKvbYnXtfmde2tZoeXfoxWIirvRwr25kwyLWaBCt7WYM/hUQdsUKelkCf79XB44Mmpp4SJ57U4IpsDwJM2tmRqIsNLgj5l6x9S/JDx3akvkVpGiRi2vZonvExZ8xhmeDm2YY+6I7EkobbstxHSohQmUC01WtxHNEiw8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xnHQDYU+f2npCEGWIn0LTMAsYXIdkkqX4C7ld4VOlA8=;
 b=YGaEHXWmK2S4vMrAdql3ZBlSH69qJe7Z7i2LMW2YGtLQ7BzDi1DIx7tgA8kIJohnGmv8/btd1banWEPMbrLmhzNwWQHO6ZBG502aUOQJwiyhknmVOHkIz4MlpC1632cYpJ+eYY54BskuHeRwdsg4MDFU2WrtmoiKnb9WspRJdy/6RitPlkE2psXHaKgSfli9PTsaZ6LXI4kUO74pQJLjGfrTmYVxTnSseOA0WVmed9a4bjOfMndnk6Iu1jByyFPvVmlsMmluzkXMQ39auG2z1rN3e0mwaGP+PKGjrHu8WRYZEMfx2R7hZzPEXXlxnpExEUhOIZ6XEYzwGSAMwtCOXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9f883c45-05ec-f362-57e7-f87741da08d5@suse.com>
Date: Tue, 16 Nov 2021 08:49:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v3 00/10] direct-map memory map
Content-Language: en-US
To: Penny Zheng <penny.zheng@arm.com>
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com,
 xen-devel@lists.xenproject.org, sstabellini@kernel.org, julien@xen.org
References: <20211116063155.901183-1-penny.zheng@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0011.eurprd04.prod.outlook.com
 (2603:10a6:20b:310::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bdbdab9e-47b4-4aa5-4213-08d9a8d5a543
X-MS-TrafficTypeDiagnostic: VI1PR04MB4944:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB494444A8E878CE9197251D5BB3999@VI1PR04MB4944.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	E/HXDxVNFufuUDL7ViZPYQXnWUtIgpyL7DGXJcaSayd6tGrFkjqZnNKbR0NyKPExZ+JIr1rR+btmrCeCEDwjGhrWiTOMbpTj79N8GHYUW3XP0LlYKR45Te8t4gzdMIUsf2EiFXrV233WmsGHzNVUTF5NWqH6+HsL/g0YZEadwlNuYChNZlN7+6kCkCJEk8Ur7SBCkMljbrvOsTtHv+hxLuGCEwXqsrCXTY7B3uo0MvuT2s3+gLrG0vwaA7l9lNWhk6pPi44h3FMfYj66z5ZiMGZJJEjo3GXRHTFAf0/pEMUeja6QCepolCKhcIMRlInBGtOoT6ldXeKG3Q3u0nrF1850ZbHUYZTI3WOfw+4Hj6icV3LGseOP+vHzupWoErtXcXa6Z+45wFlaRWRFt6e17by9ma40c+zSFA375oQLAoorjpDicbY52cBBLKInM0Yk5KmDgb0GYXsnUYFRjcLwLc0CM4ouF8qioyKp4evlJZ/AntkwotSoUopLSmiMQ+R64DQh9qrszmeNI5gkOZthBaOeTqydo6JzB1XgAhCOiQRQ4gurzWpVM4WvTYAGXrQnl26MIc6XQ9PziHFaSHR9WPjtVnmq/hpvx9tTqWsq1DLhD3HToRE7zG7c7fjk8nxA6Bf35Xfv7lnwv3ZxykIaR3l68eqAR+8lr94ndC/+GbUUg0fDqdCCKJQraSD6LIfGaKp7PqaAwVC3Sj+TPeNyYNQBr3S3QB07QOk5mnVM5NNP2XvLQ++9cwjzorAt+GMjY97ddt48Iq7dovlXqhFgSg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(8676002)(4744005)(66556008)(86362001)(16576012)(66946007)(316002)(53546011)(4326008)(2616005)(26005)(66476007)(38100700002)(508600001)(186003)(5660300002)(8936002)(956004)(36756003)(2906002)(31686004)(6916009)(31696002)(21314003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RlVsUUpVR0NUcnI0UlRHMFhGdWREc3lvQjRIb0V6enF6TjJ3RkFDVSt0NEF0?=
 =?utf-8?B?TEk1S3VwbDFJcTQ1Y0pvanljQkJWeUYxSDlxYzBxU29LdGlJTXRVNHpxYVVz?=
 =?utf-8?B?Z0pVb3d5aXhGYUFscHozOU5lcUx5Y3AwdnRYak9xTVVVa3hKejZ2eEE4UHFE?=
 =?utf-8?B?aDdrTkg2VExUY0VtZ3V5TkxZV25uVkNtWmtRVnpQZDhJTVJWTjRaWXh6dlN0?=
 =?utf-8?B?SFd4N3VhQTdGYUlRTE05eTR6Tjc5eExGZkxUY3dkbjUyekRBcHBYdzdaeWVV?=
 =?utf-8?B?MFVtZExOZ3FDN3lzVmRNWXp2dnVEa2U3VkhNR1Q1TU0rcnVxRXFEWGtON2po?=
 =?utf-8?B?VFFMcEJjaHBEbXIzRFQ5Z2p4UkFjaXhvWlhzTnR4MXdTcTdMVDJmVk9BbVdr?=
 =?utf-8?B?ZGFNblUwRnNjTzZvTktOM1ZFVXdSQnVBUTFYYW1JbDJjdEQ2YlZMSi9mZkwx?=
 =?utf-8?B?TmQ2Ly9DcC9SYXlyR29mazM1eEl0R1RmSXNOOWwyTzdERCtOekd5STZXZmlE?=
 =?utf-8?B?WmlIaFllUTVHNzlHMUFPeDZnczc0UVg1VVljcTlIRnlWWCtXVzZHWFBWNkJu?=
 =?utf-8?B?Z2QvQ3lTM0NqREJXNkFILzNqUnRWM201d1Q5SUhkQ2dqSUZKUWFDcEU5ZENk?=
 =?utf-8?B?eXVya29vc09SM3hPaGdoQ1VkRTUvMzJSZnRZRVkzWVFlUVpqc0hKVkF2cWJt?=
 =?utf-8?B?aUhQMUNubTc1ejV1ZytVSWZ1TlZUOWtmZnpXRHlwSksyZmVQUE5sRm1qR0tv?=
 =?utf-8?B?MjBGZU8xOE9zTXFFanJlS3E5a2svUTNGVUxuN0cxVldySDRXTmY3cGttVFZu?=
 =?utf-8?B?cWJ6U3piOVZ6WFJSQjliUjVYN2dHVmtqM1oyYlZTVWd6L1ZsREVrdkhTWlo2?=
 =?utf-8?B?QVpoa0xwb3ZmdUVHNUQ4czRQUURlMldyZTJ4ZTJEWEpkU0FuN3NPQjVFZExr?=
 =?utf-8?B?ZTExS095bFQ0TkUvakZUMzlqUEpnQlh6SlNMM0lQVlJiNGxHc0lnNFpVZ1Fv?=
 =?utf-8?B?MjlMRmJkS1hYOEpFWGI2dEFIcGdEOU80QVJGdnVjbytwRUE5eUJjUnZDMmxB?=
 =?utf-8?B?aTNIWXRiS3Vtb3B6b0JtRld5cDgyVUtHaWdrNkpIY2FBU1lnbHQ5akpmQVZp?=
 =?utf-8?B?QVBaVWo2WW5abDFMWTVzMFp5T2Z5NSsxUFI0K0tudll6c2Z2QjUxRDZNclBM?=
 =?utf-8?B?ZmFjUExFMENnK0QwMjk2YWRjTklZVWFkWXVxVzVjcjZGZnBzQ1R0L202bDJI?=
 =?utf-8?B?V2pDQnlPN0J2UEZTYlJ5MmR3SlN2Yjllb0tMWnpmRnJsUHZNSEg4Z0szOFRD?=
 =?utf-8?B?Y0t5OEhHVFp3enAyTm14NzRUbUxmSVZHZmNIc21wcjk1ZDd0c25XQTRnYWVT?=
 =?utf-8?B?b0tiOFN6TXFNTE5jb1hubGRPaFJRcDZlMndtei9ua0hsaUFSTVJYQU1lNTZ3?=
 =?utf-8?B?M0MwbWJSblJKcEZZT0JWRHBqaDlxenVIcjVvaEVEUEc3OU9tUHJVOFFveTQ0?=
 =?utf-8?B?UEk1cTYvVXRtOElmN3lYNFpqdWxCQ0J0K3poQmludkRic2kwYU5ZSWh0dWpC?=
 =?utf-8?B?UGg0d2FhSEpQWFlLUHNkOUFldnFBNXEyelFLWUpPTkNCT0RzYkYzSjUzbEly?=
 =?utf-8?B?elR4cWx0cEZ0UzVYakRXcERJaGo0c1RJM2ZWcFBBclVLRDN1QnNaMWdzZlha?=
 =?utf-8?B?aGNXRjFNcTdPdkVYa0VUeitGQjdXV0tyc0RrQXZxZXI0bWhtaEZoLzV3RGFt?=
 =?utf-8?B?Q1VtanR3UmZoYlFKb0dTR2RkT1M5RWY1NEswUjgvWmRIWnV4K252bXNsdjdH?=
 =?utf-8?B?Tk5vamxVR1ZhSlFVS3dNdmxKc21lYmEzTnNFL2ZsQkpNVGN0WVJVcXY3OGdS?=
 =?utf-8?B?Y0RVY2xKRndLWmluYzIvRFpEek1oVHR3SEk3NFkzV0RtQXJZNitack01Wm8v?=
 =?utf-8?B?QkRIZFlaTEgxZEdSZWNuNDVsQ2tQWFNOZ1VWQVJZKzBXeFJsRlkrL3NHQmwx?=
 =?utf-8?B?Tld4MzhoRFRTTzRFRDJscUc1TURhWVMvaTNqVC9qb2NhR1M5UEpKZy8xVytB?=
 =?utf-8?B?eWpSMklPOVdHZUJScHBteDdWb2lKZS8wMElUZksvTkhHYndETzJTRWR1aWsv?=
 =?utf-8?B?clp4TjFvTkh6RStKVDRqNjJuYlc5MS9qMkNScnZjbU1UWkRYUXd6eEtDV2wr?=
 =?utf-8?Q?4PVKnPnpUolv4RD7nD85msA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bdbdab9e-47b4-4aa5-4213-08d9a8d5a543
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 07:49:40.5693
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZhSDUUg9J2pS0orjdK5z3+wQolUAnv+GsM0Y0kJyFw9gxaFZTUAKmcp2b2ReapGWP5KuFP+Zlr7rD7Y2owgv6Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4944

On 16.11.2021 07:31, Penny Zheng wrote:
> v3 changes:
> - move flag XEN_DOMCTL_CDF_INTERNAL_directmap back to xen/include/xen/domain.h,
> to let it be only available for domain created by XEN.
> - name it with extra "INTERNAL" and add comments to warn developers not
> to accidently use its bitfield when introducing new XEN_DOMCTL_CDF_xxx flag.

FTR I continue to object to the hijacking of a public interface bit for
this purpose. Not to the degree of nak-ing the change, but still.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 07:55:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 07:55:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226173.390778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtIo-0003ES-UW; Tue, 16 Nov 2021 07:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226173.390778; Tue, 16 Nov 2021 07:54:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtIo-0003EL-Qi; Tue, 16 Nov 2021 07:54:50 +0000
Received: by outflank-mailman (input) for mailman id 226173;
 Tue, 16 Nov 2021 07:54:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmtIn-0003EF-NH
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 07:54:49 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78ca1552-46b2-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 08:54:48 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2059.outbound.protection.outlook.com [104.47.9.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-29-1gusafHSM3uRlMYDYA147g-2; Tue, 16 Nov 2021 08:54:47 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3774.eurprd04.prod.outlook.com (2603:10a6:803:1f::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 07:54:46 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 07:54:46 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0014.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.16 via Frontend Transport; Tue, 16 Nov 2021 07:54:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78ca1552-46b2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637049288;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=plJNxoA/+o8gch4VcesZ86LbSaLbOkEwz3bpd399iM8=;
	b=kRhvRSXJ4nRdXMowoKECZcuF9FN6LBAHu3z4fC0ieMwYe7D9F7T8OlT85o+J8BbwxrmZlH
	tcqEyG+tIpQVTFSXaT0t4BrhAt+y2PXSIh2atYZh9Hy5tc7rPEjp3fVo1TpAvTC2HMmISW
	0B6BeFpPLJUpKWMVCDohz2OISHLq/aA=
X-MC-Unique: 1gusafHSM3uRlMYDYA147g-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=c74VqnYO2Qo1IKQv2vVV0RZv3xacAM02pVOF8YtCTQ4aepdoz65KP4tiiIM0ykXjucaZdANuJm57zmNZgfwxGMLtaiHfuKIb3bwtdD4AsrFLfTJYGjV10QkBQBrcAwuEpr3Uo0x0XKNSo8GxyK8LJZ53ypGzV11I/VLFPQqpDTDkr9RV97Q7y9q7uW296gJZkCfi+OVE5hhib/ZgJRMfBKPWdRouqjpkr/gpy2Ia3O/N2J2s0kGwF0EkpN01MiTOZgXZ9oMfAKYigmAt0VJm2p2Qjk0FHeZTsIBiuylWcx/n9Hsbgsx3BT/TD/GkrD7l1bjdsuDr0johitAOxX2tIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=plJNxoA/+o8gch4VcesZ86LbSaLbOkEwz3bpd399iM8=;
 b=LQMj4KSAMLamsUR00i21WJuSyQCyQXdNzqS/DTwzP1pfDrB3rvQnf4gdOuCDB2oDiG9VMbURSwl+2DGwHYlGLEnoul67eyhs+wPbanIUFlq2DGqBnt3mfaBgQ5gz+s2wfrPAftHaOP+2Ho9cp3dBYxLN9nbR3RWhF41Guh5imYZsmN4hr58FAnjkiAAOP/9gAVb/txDvX3Avd1ttIkgWKo+uK6Q3toiUtQgo19gxUsuxhWfMslRHGpHD53h/nplVcckNexcHAZHMd8ZrHhA/hVfiLCCdee3HFRGNbwK/hZkPAn8z+yuHEsH6/U/4DIZtgb/GWNp6xHuPlbuxTDXhgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0ca5a669-2c91-276a-b81a-34731f326934@suse.com>
Date: Tue, 16 Nov 2021 08:54:45 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v3 01/10] xen: introduce XEN_DOMCTL_CDF_INTERNAL_directmap
Content-Language: en-US
To: Penny Zheng <penny.zheng@arm.com>
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com,
 xen-devel@lists.xenproject.org, sstabellini@kernel.org, julien@xen.org
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-2-penny.zheng@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211116063155.901183-2-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0014.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:89::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fc8aa23e-f182-4b72-7267-08d9a8d65bc3
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3774:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB377424C8D8B04BB95443AA14B3999@VI1PR0402MB3774.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	sxvevJzZnRAtkMUw8RfnLgu8h3c/XNpielEIrQvcVsnA7IzQG3xH0HdnSaOx73TfzOXOBAzeyOCK8FNIXAK9h0bJ2xNxlyTVVaCXJIDH3/9RfHJgtvIJplpt00NDyZhYb9F16JfaSY1CMRPQhGwDXYozV+JXViyAnDyyTca+9bpbEiBzhDZ6MO8YC2w9mlCoIjidu3off7CrUhF2ABSSiaxxuvyZb/NLrD6Z8kgAH+0rt1PCMhoL1AMAQ9hSZMzZr/xpuwXMTXOmOzFNUQqeLmhQvWP3VsSsf5IDPlYs5hf+L4R2GL7EjsqwZxKxcrBaFU699Rrhvbjs4G7KBne0x7i2D/HLLmQ2HxLlyYKtTfKeWDwDPFONsVCh0N9FFnNImRCbVl6oVk1jON+nqT9w6NirW5+zVgMN+rjGMH/JO58wkkrFHpCeWoN6xuqRGcX8GxeJLC/kupTEZDeyXA5fZLZBgsfpEv1scNJu/WkhAfEKqP/N9byzlm0UpF6F4LWn5U9lhAn7ct2cO8pYa9nmtopkUsxNpN7WGU4gmtY4T1UABhAPTb1N8Vz+HYTu7mdnkXNjab8QnAmgRsvetw4RBEAcc42iEcK/j2i4JcuMu7g3YUevcGD4xOnfHhjrmtVQ/Pz0Y+Sx7Q97WYafrVvA8GLKaXQFAU/xB0fZTj/uFJQ1rWR+3p/QbJzPvI+X7evhw6kcBC31viP55773QiodlI4WEaWB6PacNc0xUH+7eJASYU3hpdC/lShVHWZBfHpg
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(38100700002)(36756003)(31686004)(6916009)(31696002)(86362001)(2616005)(956004)(4744005)(186003)(6486002)(2906002)(508600001)(53546011)(26005)(8936002)(16576012)(5660300002)(8676002)(316002)(66476007)(66556008)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OERBU3JuUHZHK3BkZDMwVnlGUGQ3N1dNS3lXbThKeWsyVHF6U2VkYUJvcFZp?=
 =?utf-8?B?NlpkM2JpbUwxbXovSjV6WitMRmdtb3cwVStOaFJyZGFwZ21SUjhzVjVsWTBh?=
 =?utf-8?B?ckR1RWNUbTNEc1NaYlE3UFVSWkhvMytBbGV5dFp4OFJrV0U3ODZhb3RxcEJU?=
 =?utf-8?B?RCtXTENwTnJsb3UxYm96UC9tQkU2aWZ3dDc3ZHVuQ0l5M1RoeVQ3aXBvWVM0?=
 =?utf-8?B?c3B5OFZTVW55aW1RWnh1Sm5pR0dWY295b1RKdG91VjVGTFJ2ckdORkFSb241?=
 =?utf-8?B?TnVEWVNWb0JOam11Vm9FbzNPSmd1WUl3OTIxdXh0YUVMNXVwVGpxTU9Ua2dG?=
 =?utf-8?B?WGxiaHlSNExYaVFYNWNrdTFHZEtVcmJqM2dVTFFUSWgvbFcxSWF0dXF5cUYw?=
 =?utf-8?B?MXBqWHhiWEs0bE5CZlFGQU8zNTh6aG5Sc2UyY1RjT2Z0NzJlRjNqQmtodWJC?=
 =?utf-8?B?MktQWDhCODljN0cwUDA1TlVSTWR4bzZLSlB6WlJaeW8zNUFLaHhIa2JLbXZk?=
 =?utf-8?B?bzljcTZLd1JrbEtPRHVZUXpNR29FcUpuZDJ5Z3BudGVoV2V5UXovWlhyVkxW?=
 =?utf-8?B?bzFHQVBXSW5xUkMrSVJDbmVlL1JBdGl0c0tKRFFzcXVaMkM1V092cGp5cWJ2?=
 =?utf-8?B?ZXFQQlhtbWMxWFJJcGprTFZvUGpMQ3NyZzY1cEZlTUxYRWdWeXc2MERXQ1kz?=
 =?utf-8?B?MjhCZHp5cld3K0VuVktXY2pyUnQ5aVRISDhHdVk3Z0F5ZFkveXlhNmJDNFU0?=
 =?utf-8?B?NjBRblUyQ3BCd2t2MUc3OUpRUnFlVkhicyt1UXJSOU0vRGw2OFJOWWR5UFF6?=
 =?utf-8?B?UUpDblkxUDM4eUZjNXJOdll5ejF3SWpmUEIvb0dCYnRHRmFheDNLdCtKMWVo?=
 =?utf-8?B?eVZNSlRhcjZZNWIvbUdxaVZXNlFBWEtLRDRVZDkwTVFPa3JweDZRa2Z0N0tk?=
 =?utf-8?B?ZkVWbmlzVml6WVAyYU1wM2h1ZGFFYlRPYVl6ck1uK3V3TjVZb1RXcnFibHJV?=
 =?utf-8?B?MXRBbmticHFJNXBpR2xNS3V1Wnhob3B2U2FZMSsvcEVEeGoyVXJmcElVMGVa?=
 =?utf-8?B?aEZMQy9kZ1FNejZuRDlKaTFaQ0Y4bzRzdGxWSUh4bktTbS9QcWJzR1pxT1o5?=
 =?utf-8?B?VkE1ZnUwdGtqSHhvMzhTNHd0Sm5wOVFoRzE4eVNxY053VWpJTkduTldJekNu?=
 =?utf-8?B?b1RCMlJla0VOeVE4dUlVRk9nVjlXei9RWitOUEVrdFZxVnVWNkVTd1AreDdZ?=
 =?utf-8?B?WWkxU0hzL29YS1dXK0hvV09BSS9NS0NtTEpGSitOMXdnanNmb2tQYkU0enhi?=
 =?utf-8?B?bDlNVUk1TXR5WWw1NHB6aUdiZm1YWDdIYkNCMWg3VjdHR3RhYzdUaHpCQ1Z0?=
 =?utf-8?B?OEt1dWhFQ3ZzaXVGOFB6enl6cjlsakNzU21LOHNyWWlSZVdJVzF0VDhIbkZR?=
 =?utf-8?B?djhpblFXK3ZEM3M0YkdJdndQRTJoT0tpT3pGOFVuMmRwWjFuSlMyM2VrbHc4?=
 =?utf-8?B?VFZEempyVVYzNkJGQXVUN08yNnZVRGMzSHdDTzY0L1dQVGFDWU5BWDBaVHZT?=
 =?utf-8?B?SkdUTGkvS2h3aDV3aUd0TmZSV3dzd2puQXk5TmNBTjNzK0JVRzFDWU5hazJY?=
 =?utf-8?B?Z2g3OGlWUFdTd0lWTWE2UUFKUkprUlBSVmVSMzhJKzVlSkZ6Z2Q5clcyNDNF?=
 =?utf-8?B?K3EvVktmMjNlb0VvOG12b0pBNCtvMkViNjI0ZE5SS2ViZE54cVliRGFLbVZF?=
 =?utf-8?B?RStCR2NnN1FTcWxFTDFkYlExUlVsYTZyTVdEeE12YjhrZSt3NC9VMEJlT2xx?=
 =?utf-8?B?Q1d5NlpoaXdQdE1RcWdnLzlEMmxsbktFZ0kwWW9Zc2ZWNnJ4R01GSWJqY3VB?=
 =?utf-8?B?QU8wZzhVNEs2OGlmNElMblk1Qm5pRlYxUkdNSGJNbnA5UVdRdEhRUGM4L29U?=
 =?utf-8?B?OGNqQUhiVHl3Q2RjY1lqdm1PZFFCQVR6QzdLdDRqT2RSZ3hLbWZGb1BGY1Jj?=
 =?utf-8?B?Qi9ubFdwRFphcmJOaWptbWIrS1FuZTRYNWVmWUxVb0NYSE9yNkY5UTQyU0pM?=
 =?utf-8?B?b3lrNlJId3MyQWtFZEJqRm5Sc2ZtN01PK2lwTmZ5OS9kSk9LY3IwbXdXYWZQ?=
 =?utf-8?B?L1lLcHV0SE5KdldkNmN6bXVYb01yamxYNERjUDYyUmgwbGp2akZkckFDSy9R?=
 =?utf-8?Q?5L+4PLfP7U+rFY4q4ymKREg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc8aa23e-f182-4b72-7267-08d9a8d65bc3
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 07:54:46.6848
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nbX8gdBmXsZouY/YMIrLcd0nh6jFcvieq2xoy3t59jKbEotb5pQg1Cv5rBMN1e6Ac2ZBXXf/rRvNjRtLHF8sxw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3774

On 16.11.2021 07:31, Penny Zheng wrote:
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -692,6 +692,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>          return -EINVAL;
>      }
>  
> +    if ( config->flags & XEN_DOMCTL_CDF_INTERNAL_directmap )
> +    {
> +        dprintk(XENLOG_INFO, "direct-map cannot be enabled yet\n");
> +        return -EINVAL;
> +    }

If this flag is to be retained in its present shape, then besides
rejecting it here (or perhaps instead of, with the check here simply
becoming ASSERT()) you want to reject it in the handling of
XEN_DOMCTL_createdomain, before calling domain_create(). Only then
would the flag become truly internal.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 08:01:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 08:01:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226183.390788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtPY-0005Cd-Sp; Tue, 16 Nov 2021 08:01:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226183.390788; Tue, 16 Nov 2021 08:01:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtPY-0005CW-Ps; Tue, 16 Nov 2021 08:01:48 +0000
Received: by outflank-mailman (input) for mailman id 226183;
 Tue, 16 Nov 2021 08:01:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmtPX-0005CG-Oj
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 08:01:47 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71e0b567-46b3-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 09:01:46 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2171.outbound.protection.outlook.com [104.47.17.171])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-5-8JuVNTJ5M5qriHWGYTj3qw-1; Tue, 16 Nov 2021 09:01:45 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4351.eurprd04.prod.outlook.com (2603:10a6:803:49::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19; Tue, 16 Nov
 2021 08:01:44 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 08:01:44 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR02CA0023.eurprd02.prod.outlook.com (2603:10a6:20b:100::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.18 via Frontend
 Transport; Tue, 16 Nov 2021 08:01:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71e0b567-46b3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637049706;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zixRn1NqrMw3t2fgK8+MWmmu6RuRJmC1vOrAKhJopok=;
	b=n2OIw/kZX2exLJpl/KkSNr4Kt44eYFt66gGI+b33cBxVukCUDaVKghhPS6FKb6W+rQ8ush
	ezTydRaHbv0XmwXuZTHGX/3s+YBD0a1nBfe3NX+KNc9mtxzkeEKktCqT5jkdDQ14PbxIVE
	gs7tdOEaMQZ6h/obGV5I4cAyrHMKbig=
X-MC-Unique: 8JuVNTJ5M5qriHWGYTj3qw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Ga4zCu27zoVY1KuV2CxIdAb1QttjS4DUx72cBzTF3iys3HknOkDIZ7ERv6GDEGBSTquy4Jr8l2pJe5oIynCQekwxP8bfGkrhGoZDt+buWZHRSBTqbfUiZ0LHm4hUUz97ZPJqtuXBM43JvQnpJzdU3OHzC+yCxMMUpmxeD074lQK63gz3+R8Vntiv2Z09e+bWKSP+lb9ru0LOSufdlSe3YuQM64r8QF5wQZ4HSdCfGefTRm2/tby4ZbEUoM8fe2zBMhcCZOGklSuIFLxp09GMoRzx+/KCTxf1jO+/+h8SmvGb1YqVMKnnznBkLgI3BOK7LkHBnz6xAsT2J2yvFxYacw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YqesUy8IFBZ/7k21mDj5KKOLPbhQSdCeHuJWSmoWtd4=;
 b=TTur15DWAHyK77jcTHQqMRtmnj6KeByPdHcGtmYqWGXA3/ql4VerDBD3AWKsc7pURKxwmbqYHgQrCv4f7y3VzkPkgb+c0wWjQ3ZbjMN3FzC4idwfcgSEUvYcHBAbxJtJMK1tNuLOYNytVXdRNEtih9FHFTxv3LAmvSq7kdmgjOVauASIeZN8R39rTwtY1HfdfDsNKAilUuoC2QpvLRj/lk/HBh2qW6CW/xR32l3o4bsl8IvjHlDSRQzw4mntNat3vFbxtQyDlaRMBfGrReSewnzEgZcbxiF57xmByJpP8HzlHcZyLUXAdLdhH8reEoikws7VgSsZMRFanW5mC+YzyQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
Date: Tue, 16 Nov 2021 09:01:42 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM7PR02CA0023.eurprd02.prod.outlook.com
 (2603:10a6:20b:100::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: dc07d1ed-8885-41cd-3aea-08d9a8d754ac
X-MS-TrafficTypeDiagnostic: VI1PR04MB4351:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43515C1DC71C62B02F63D6E3B3999@VI1PR04MB4351.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	rogHzti7Xao5DEqZmLKZPo6RX7KC9WMwdeC3dKRd7BEX0zXocQJM1/9jb5e6m4cXgUABwXJTWuOlAOmPJ252X6sXDzSRBLqqzNyKASQMuI6Jo44lnhSHvlLCL0nlO6jqkGngyMGqeb4MuEBUt9830yrNWYz88C+7GewL44tJ9eL8Hkp55NJuwQ0Hd2yj+N0+PrGrMOGlCjmX8/2sNGsK0P3aVf4B621N17GP4j2/6VUyRo3ICSeHESvY3KmrrsxtW98QFQz+HcyJnH0ASvLI7M3wa8OWeS6LtaV/Iae9+RuEJyXYvmpCLfyiXmYZchVAts4COz2zNuEGA9z/v6MqQgxXSQwJVowOk8vTu76g0HBZS5MiVWuy/9bkog5QLCclek6hds/QSRV8XVDId96lqsw/oeA6alVxpaRTmVFqjH6KCsAgLDM6rNabo9p8ycuu+5fmW/GWqc8PmDXrufY52BsDjOKXONlupp2+iHt9+3RUf9tcubt/A15ehi2ZcVZz44G3LN84tvRi3DQFelpC0Qp05DOjUlOc/q2w1SfhQix/2kRhfMEgXL5LQx1g45JgafgolkevBYli4RzLrVekDSGJqKbOYmBGat9TrNiRKnzWcN1spttO2B99SEglrt5Sf3XlNP3Z1M73kY1kweo5RkTx03TyV70DnCkJZX/U4X4kUV8syojLddoRIljb5AUEw3PuwmSzHxIz9TUEj6Be+3eDEmdPlSC8ew1Id+GI2EXf8PUNcwpoXSG8cbUDJd8g
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(31686004)(66476007)(66556008)(66946007)(36756003)(16576012)(316002)(6486002)(53546011)(38100700002)(956004)(5660300002)(4326008)(7416002)(86362001)(8936002)(54906003)(8676002)(508600001)(2616005)(31696002)(2906002)(26005)(83380400001)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?iDBU3w/TkSVA2QoTnnsdR8lWQe8vbGbDS/8wC8oh3jmSXz8PK+uwf9nsjkaf?=
 =?us-ascii?Q?dNQ7ZiziVvRIdttzDrmHh18yKu/LbaWpSxKolOJNDA+j8CAHaMIrCpJUuv1B?=
 =?us-ascii?Q?fj8uswujuTgx5hpj0PdD3DTaiK5fr0QljA0Ya7vxS6+tt6Ae5sUqMDUXv8cn?=
 =?us-ascii?Q?22Eti2nlkz6ig5Ws7A7VtDOY88x+5WvyasWrfd4zR5frnfRwnPzn9ySoCxYc?=
 =?us-ascii?Q?Swgxy1Gs/4/Mnl/T6bROWor5QTnnyB/kKzHPhQrDEjl/tOVzA+awEzwCkGSq?=
 =?us-ascii?Q?J0Y9R8DMZVF1lYULlDHUUXTpGP3kEPh0w8fRkvFhtlILZpxbrpZ9ihMlSNOq?=
 =?us-ascii?Q?8PHkQbsuQpiwSC28GWUhqkdy8AMfh7usFlq993TZ5LNeBe8QdMgnHpKdGODD?=
 =?us-ascii?Q?BIa6L/1I3C9go0Gpg+OtG7WVOuAi2YrAG/BKkQLjlF3f2dW/jEDNcvOGP0jU?=
 =?us-ascii?Q?ddMpsJqEOhNoPN+ApN9VXU8up+nJwZg15n/RAS93jqg/+a23W3AbJ74Js0PT?=
 =?us-ascii?Q?i88X1OYMlcozTc+f0ULhniQjWw/2x3Zhsw81BmSsidJ1tj8zk2vBzLQ0icH5?=
 =?us-ascii?Q?xnf3sjDlNnQDZZU/UPUDhY9Eb/YOKotOtG3w1FXxkx2qFhqnFR20RQdFmhHY?=
 =?us-ascii?Q?dyq0bI1NvMHo95lH9yYB8DcmKnvwy8SZSWKyYNfGo9Obda3w4GDkcwfFeog4?=
 =?us-ascii?Q?cTF2+JVR3X1QdrazXjFmF7DDzfTciojhmZFGFCIKgF2Ij5ffC+pHSTMTs4J5?=
 =?us-ascii?Q?ticovHBGL+3mW40aHaczwaVZapmdjLyLlQatBvxgR7WSveI5UrATkkne6DDJ?=
 =?us-ascii?Q?XWZ1rPfnnSL/WT9xwUmi3yG5L9FEJl8gSU1WCJOSbsButYB1XpemzQC0fv+G?=
 =?us-ascii?Q?ELYHMV3DAJ6NI6MWgIhp0ESKbFnATfc4aI4nLwQfesuyZDo8A8cEk4KFarMW?=
 =?us-ascii?Q?jVXeniArlXO0Ef5QLeqAYwjyzOjATfUVyd7/Zoyo058na7yPIC0zjMoBRJ1E?=
 =?us-ascii?Q?nH0foWyYAp4fQdE+GslvjwhfQnspWi7OKqQ8WD3RZ7+32Yt6ePSW9+Cpko55?=
 =?us-ascii?Q?DBXorr3DfnhWZXWzmbg7zfobQ5cP0UxUASYOrGFrNy6mNfd+/kbsJo2euGj1?=
 =?us-ascii?Q?Er/JWj3GYD8P7+BiwBElIv4XuFC3OxByiDgWNG/swDjRkD15dRzBnmtLt20m?=
 =?us-ascii?Q?QxKyg5nHEJVhyIrT4G+L/bCeSF8+lGqiiqnga61iho+qbLuIqf83K4uhNxCW?=
 =?us-ascii?Q?8j3fx9/MnplxTfMlZOZv8tN/7uY5f6DXwhLPyAq3+NpXaxWBA3JUJt4YKIR1?=
 =?us-ascii?Q?v7tRIc+CU/oaYUk+JtwJLeqZWSft5DqDsjm50sIdGtuvcJTKb5XmA6HQFFlx?=
 =?us-ascii?Q?MLgoy1Ykc42OXmWhoAyMx2vVwDdpcopgXfcy64NR+NdGfDl6bqQKuduQV2fK?=
 =?us-ascii?Q?wBXjvm8RG+XM3u/gDrnZFEguFkeMUMKYE1QV8O0nT6KgPOc1x3etHZqBA1tA?=
 =?us-ascii?Q?fBLfTxSg3EGHiIEce0Bxyrwp+gFyswJhL3b669xnRutzKOcXR1YTo4lPOC7K?=
 =?us-ascii?Q?WHS7Rto6vOabBAMcdj1oHei3x6f44U2etUtX4dZTBZIgL8XaiMDfKgs2rOQb?=
 =?us-ascii?Q?uuKlL086PMoaHYcykLt4LKo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dc07d1ed-8885-41cd-3aea-08d9a8d754ac
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 08:01:44.3143
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QfyAjznWbwKuxwYHPZJYcLxzOM8dEwmuPZSr3pgagiXdWvX5ETWwSGRBgk0bwJYZkexvXj/pkX81JRCHcx1YxA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4351

On 16.11.2021 08:32, Oleksandr Andrushchenko wrote:
> On 15.11.21 18:56, Jan Beulich wrote:
>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> When a vPCI is removed for a PCI device it is possible that we have
>>> scheduled a delayed work for map/unmap operations for that device.
>>> For example, the following scenario can illustrate the problem:
>>>
>>> pci_physdev_op
>>>     pci_add_device
>>>         init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE=
_SOFTIRQ)
>>>     iommu_add_device <- FAILS
>>>     vpci_remove_device -> xfree(pdev->vpci)
>>>
>>> leave_hypervisor_to_guest
>>>     vpci_process_pending: v->vpci.mem !=3D NULL; v->vpci.pdev->vpci =3D=
=3D NULL
>>>
>>> For the hardware domain we continue execution as the worse that
>>> could happen is that MMIO mappings are left in place when the
>>> device has been deassigned
>> Is continuing safe in this case? I.e. isn't there the risk of a NULL
>> deref?
> I think it is safe to continue

And why do you think so? I.e. why is there no race for Dom0 when there
is one for DomU?

>>> For unprivileged domains that get a failure in the middle of a vPCI
>>> {un}map operation we need to destroy them, as we don't know in which
>>> state the p2m is. This can only happen in vpci_process_pending for
>>> DomUs as they won't be allowed to call pci_add_device.
>> You saying "we need to destroy them" made me look for a new domain_crash=
()
>> that you add, but there is none. What is this about?
> Yes, I guess we need to implicitly destroy the domain,

What do you mean by "implicitly"?

>>> @@ -165,6 +164,18 @@ bool vpci_process_pending(struct vcpu *v)
>>>       return false;
>>>   }
>>>  =20
>>> +void vpci_cancel_pending(const struct pci_dev *pdev)
>>> +{
>>> +    struct vcpu *v =3D current;
>>> +
>>> +    /* Cancel any pending work now. */
>> Doesn't "any" include pending work on all vCPU-s of the guest, not
>> just current? Is current even relevant (as in: part of the correct
>> domain), considering ...
>>
>>> --- a/xen/drivers/vpci/vpci.c
>>> +++ b/xen/drivers/vpci/vpci.c
>>> @@ -51,6 +51,8 @@ void vpci_remove_device(struct pci_dev *pdev)
>>>           xfree(r);
>>>       }
>>>       spin_unlock(&pdev->vpci->lock);
>>> +
>>> +    vpci_cancel_pending(pdev);
>> ... this code path, when coming here from pci_{add,remove}_device()?
>>
>> I can agree that there's a problem here, but I think you need to
>> properly (i.e. in a race free manner) drain pending work.
> Yes, the code is inconsistent with this respect. I am thinking about:
>=20
> void vpci_cancel_pending(const struct pci_dev *pdev)
> {
>  =C2=A0=C2=A0=C2=A0 struct domain *d =3D pdev->domain;
>  =C2=A0=C2=A0=C2=A0 struct vcpu *v;
>=20
>  =C2=A0=C2=A0=C2=A0 /* Cancel any pending work now. */
>  =C2=A0=C2=A0=C2=A0 domain_lock(d);
>  =C2=A0=C2=A0=C2=A0 for_each_vcpu ( d, v )
>  =C2=A0=C2=A0=C2=A0 {
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vcpu_pause(v);
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( v->vpci.mem && v->vpci.p=
dev =3D=3D pdev)

Nit: Same style issue as in the original patch.

>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 range=
set_destroy(v->vpci.mem);
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 v->vp=
ci.mem =3D NULL;
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vcpu_unpause(v);
>  =C2=A0=C2=A0=C2=A0 }
>  =C2=A0=C2=A0=C2=A0 domain_unlock(d);
> }
>=20
> which seems to solve all the concerns. Is this what you mean?

Something along these lines. I expect you will want to make use of
domain_pause_except_self(), and I don't understand the purpose of
acquiring the domain lock.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 08:02:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 08:02:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226188.390800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtQG-0005nw-Av; Tue, 16 Nov 2021 08:02:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226188.390800; Tue, 16 Nov 2021 08:02:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtQG-0005np-7n; Tue, 16 Nov 2021 08:02:32 +0000
Received: by outflank-mailman (input) for mailman id 226188;
 Tue, 16 Nov 2021 08:02:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0oQI=QD=epam.com=prvs=1954156bad=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmtQD-0005j6-V2
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 08:02:30 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a723f9a-46b3-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 09:02:28 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AG7pwZc018980;
 Tue, 16 Nov 2021 08:02:24 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cc7mt87cs-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 16 Nov 2021 08:02:24 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3374.eurprd03.prod.outlook.com (2603:10a6:803:18::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 08:02:12 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 08:02:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a723f9a-46b3-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=L0Fgw+hBtGH2TaQqqqCEn+tcMj9ZmC+R/b9ixd/xX0JjUue9peR8OuaymNbthWo2w+VWAj+91EjzbEFCNTuEls6Vh9W/CRANTKS8930u03mtqT5d4v2+B30bh8I8nkKqytFaqh091690bxoIDCRNcK1TL5OKTjTWgxgdntFsvWRNBAJNwuTea8lZLWtwoBKnkz2ivGUAYSkU15Swyho0hs1JEqLy89D5e64g44+RhEI67RLVZ7oX0OhhjWYrDebTjdooyZwjyHNM/lQra4WTWh0Z/O9TxUoVslEgXQXxKXgO4G63JJJnY9fmqsviGicJSk086D0p/YKssj9ZDBK5cg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0It092vHelNtqCYcxURkXempalbmEJAc/vHoWYJW02E=;
 b=lXKkeFD9XpbepqYbzs71Hay+aEUNahLZ+aPxedewhc3OsbxLJl9bITBjz88a0DDw6/V7G44SnzYWxwYy7aW7oL0hJdhJYrbj/s7xrsWEwIExdcdOjIJJDRdaCZUdxK2DyzlMZfAB7I2dJsSee7Si4ahpdFYWQoWsYfFLFyDrxTSuoOHaRudeuNYRo7rApcSLEEwloxIOroN4FkpJxH2fbJA7pBAEQ3yf+smfOP/eDHNk0e9YghU1hbPK8UeAjTbWPhZF1IBZoC0wZhHTq/Nar/FMvP+qnX1Q9HnqR8HiCRKQYEbzYBjpSAfEXi5h3y38hDTNA7PUHHqOKQU0Oiwa9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0It092vHelNtqCYcxURkXempalbmEJAc/vHoWYJW02E=;
 b=jd9AJQSAkfZ22e+ylWL7w6YDJuLEpypax1OGQnr1xHF/TIQw0I2Cb7ErVlemEwdsnQPaVKwqrjTH/vW0FFmvYFuNa+83KwslehrDYQcESHEyKiwDjpx730O/YVdX6942r1bSRYlRvnzGKurJuixQxMWNJRHKuA0pnMxO1irH0kJcr3Fvxf98cdbkLz7+quqok7LHNsyeNJ2D1U0Wua2sflKXn9NjeKjHkrglY9dc7ZLINXwpfscKjNayYoCJga142xdLzyYJMC3P0Y5/wxgFqqqH7jGgSzgLbJQyrc9X5dKqTwLilnGQQJ+G5uX5n02r69nNTxusBSbhVBC3vNTYRA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        Oleksandr Andrushchenko
	<andr2000@gmail.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 03/11] vpci: make vpci registers removal a dedicated
 function
Thread-Topic: [PATCH v4 03/11] vpci: make vpci registers removal a dedicated
 function
Thread-Index: AQHX0hJJo9UyM/9aC0+aCa7QmYvZxKwE37oAgAD8pYA=
Date: Tue, 16 Nov 2021 08:02:12 +0000
Message-ID: <fcf89dd1-2b9f-1da1-3a95-862475f35d75@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-4-andr2000@gmail.com>
 <afd9fe9d-dd18-9a4b-e43a-f0ae8b2afcf9@suse.com>
In-Reply-To: <afd9fe9d-dd18-9a4b-e43a-f0ae8b2afcf9@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 1a95dcd3-bf06-4a08-5e20-08d9a8d765a7
x-ms-traffictypediagnostic: VI1PR0302MB3374:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB3374F50C992AEDDD1982079DE7999@VI1PR0302MB3374.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7691;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 3Hg1CcHKogB1TkjiLEI0df8acwxzB7N+eukkKIqlHkA7md5kpcnfSzrip42id2j0lgBrZlxAL/013R6yT6g5ikqfRSfeipyL+KM0dGvWTjoMSFA8Rojg8v7pQDqoyOQYLHQpx2J0qg/fKw+MxOmjZRLHfdpBg0dv9cmtzcBRkoo5lfP1wafl+8znk2Lrg7pIPVEL8odl4lbLRL5nvBZ8STKizhJa/vyqTohkwWNg5+grI0i+DFRL51CWQJfLkVpM2zuLjctuqYvTgr9RaBppMAilrpI8l8WZTiweaDqvFwMaTQ3Rv7zqiuk/mrX+TayLQhbaVaSvnbNLq6T9G3Ir3l5OndYvMywu+joAeww8wwuZvDDGn3/6jeJWS4iSECE2WNkcIoBye5cnzgZDk5PUBfP2rMc0g7M1BkwbC1gxvOfA6/zka6gh7z0/4vo3OjeRH4csx9lY/Kp30Rcy9EXgoyLNb091ttCKBICdJj8l4+fbQRiXUuW0ivq/2BNbkvd8e7LQYAA1ONi/Arr5Jhscgzkdq+AC+P9dub5HEzYSYdpXzek+BZW+uPkHnTiuKWM3WjrdZdl4JWpXaOSMj7WA0bzf2OakwkeZOhrsDcWuAii+lxW4Wjhfyd8Y8MHd+3p9pOQmbGdMBPZUo6xsh8ZSpuxFIozY1O6zYTXm0AqqzNU1ylNSFwSZrTijBI58XwfS02porb24JMgz3nJNJX4Da5UQyB2KRYTze05QnAMXfU+yPY3DzmRBjS9oIa5psaiS
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38070700005)(316002)(7416002)(38100700002)(54906003)(2906002)(110136005)(86362001)(71200400001)(6506007)(91956017)(76116006)(66556008)(66446008)(64756008)(186003)(26005)(66946007)(66476007)(4326008)(6486002)(31696002)(36756003)(4744005)(508600001)(2616005)(122000001)(8936002)(31686004)(6512007)(8676002)(5660300002)(53546011)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?U1dPS2dVVm0wbFhWN1JraHZyNFNSYXhGYU8ydXlkOHVLd3ZPMDU2NUFjenhN?=
 =?utf-8?B?NnMwY1RaWFlMOEJUZ2pIMEFndG9MU3E3OFoxMGV6RTBPaGlLSGdqQTNnK3RS?=
 =?utf-8?B?dDhoSVRIa0JHSnpIMGd0WjlSQk00Tm5UZ0cwM285M282eExEUml6Nk42aTFl?=
 =?utf-8?B?R3BXYTNrRjByMThwNHNZc1RVOUhrWmduN0xzMzZVVnRwbHpTenh2Z1EyS2Fm?=
 =?utf-8?B?aytWSitWNGdCZEVWTVhHalFNazB4VXA1SjdGVkdMOURWOGZabFBMNEFrT2dB?=
 =?utf-8?B?OFkweWxTd1RhU1YzWFpJMzhyc2JhU2V4b2lVR2hvajYyN1NtRUxyWHNSdVBP?=
 =?utf-8?B?N0hjYzFQSWVCRkxkRytuNUU0STI4V21XcThnRmxSUW01c1ZKa3EvVXI3ZlBU?=
 =?utf-8?B?eHFmRjVramN2Z09XeDF6RmVoZFdVanRTMXNDVnRzUktySVR5elY2cGFuc2dx?=
 =?utf-8?B?WmY3QjNxdnVGQ01FMWdLcXhDM1A0MUZkZzM4K1NCS2VKajMwVzdidDNQcTh3?=
 =?utf-8?B?eHFRQm1GTzZaaUJLeExSMmtZTGtITlU5SHNiK1FIVnVDTUhyNWQ0cGpYdVF4?=
 =?utf-8?B?VTd1T1RXaTNiZjR3dWhjemJIVzNkU2JzbG4vQTg4MTZWSTdibTV5M2lyYmth?=
 =?utf-8?B?Y3pSdVBxZ1pNZTZQZXNPTXJLNlNNQVBwaXZ3dGZKekxsd1Q0b2RKeUpGUlBj?=
 =?utf-8?B?TXZWSUN3TXFYZzVMMXhUN2RJRVl0QW90dGdwWlVNUnRJMElOaDdlYVYyd0JD?=
 =?utf-8?B?VWVveUVVaWhPdVdta3NIUVJ0aU1pZHBRaFk2aWJrMHRLdHVvb1BhK21yRkJm?=
 =?utf-8?B?L1ZrdEdCUjdNSzBaNnBRZEMrN0dTVHdpYTRGU0xnYmtsc0VtWUhVYkFFV2c1?=
 =?utf-8?B?bmJqSTNzUWN3TFJPVXJsNmJFaElmQ1QxaXNtMnA1Zmw3clhTSDdZa2FDcWhP?=
 =?utf-8?B?OThSbEpXYU4zeUwrTHVVd0lFTkl1aCtiZGJycmM3ckhGREpES1pZTlR2K0hB?=
 =?utf-8?B?UVplUEVXdnFaQzRkdjdTM3gzdWFrVlN2Nit1VERTc1AyZnFzMjNaejRDa1c2?=
 =?utf-8?B?Ym51UnRldjZ6UEJNMldRTEYxTXY1dHlvT2lHYThLaHc1SEdDRXJBTVVuNHp0?=
 =?utf-8?B?T3BwMlUvaStlbnQzaGNKM2hJVjgyNlRTVkZkNk5aaHhjRk02d0pCZmRRRnl0?=
 =?utf-8?B?bmtUN0V2SmFkWlJGaGFGK29uaXhmM2lHUnpqcytkWUlLTE14S210OXA0d0Fp?=
 =?utf-8?B?Mkllb1JJNkFxNUlYRmx3OVBVVGJnVW5tVDhUSlBmMUJ5bHRlSHRkRytaU2dX?=
 =?utf-8?B?WmxJNXlFLzBQUGt3akR1RVBtQUNtNVQrc3FON2labVh1b2o0dGVXOWFLWm0w?=
 =?utf-8?B?VjFId0ZPOU5TS0V4TlNnV0dYbTdvS09oMW1TZGxVSHpCbFV4c0p4ZFppd2pi?=
 =?utf-8?B?bWFhN1JLbUF1RUxqRUJlQ0RtK054QW9LL1NuN216L3N6ZmxNUWtUM21pelRP?=
 =?utf-8?B?NHNFUTBSUlMyUFFyUWxyZU5QQWhSQmVVVVpnUnRKQVpQRW9tcVV1UExDay9y?=
 =?utf-8?B?TFRuOVBIdVNaMFFrMUpQMHAyem5GK0VrMSttbjlyUkFmenlYeUIvVjViUjVG?=
 =?utf-8?B?LzFaaDArNU1pV1Q0NWduV1NoamhxOGFvU21HL3JRUmlYUXF0YkpjQ2M3aGJ5?=
 =?utf-8?B?WkRRL3l1MFg2NkI3MTVoOFpOcXpBMDlWQXViQ0dTa1FtRHc2dnh6bmoyQThP?=
 =?utf-8?B?WEZHYlJHQ0R6L0tFa3hvQTBtalREckEzcFJMVWh5UUF5UytZaVJISHY0SWI2?=
 =?utf-8?B?T0xPbUkwenM1cU5iWmx6aFBlRkh1NEk4bWE2aVlBcDFwSEFRL3dxT3ZtM2o3?=
 =?utf-8?B?TW15elE2bkpuK3NwT3dKNHBzeVpoY0JVMHl4dEdNcDJDQlBxb2RpYXdnTnF6?=
 =?utf-8?B?Si8wSXNYWXFmdGF6NEpFQU9kenVPdm0zZ0hMYStXdlhuS1g3Y0FDZE9Yb21O?=
 =?utf-8?B?dTlITFBMcEdRWGo5V0dUY29TNnJMZEt4aFcyamRKdGZzc3JqTFNxYnlNbXg0?=
 =?utf-8?B?TFVjUjNDRWoxSU1IQkN6NEsrWGx6aWJ6aVRqUTdPRHdheW1XTHIvblY2Sjlv?=
 =?utf-8?B?eWR3U3JiV3I2SlZ2Wnd3UEdFZXlXRTFHOFZhLzY1dFhKeFl4WXNEL0Y0eHlj?=
 =?utf-8?B?V1F2bXk4Ni9YQXZZaWFyWVdIQ0Y5OUJ6NWRSV3puUjZKbTJIMW1XZy83azgr?=
 =?utf-8?B?bEVDRGhsZGl4WGVyZGRGN0Y3TlVJZkN0Y09BaE1UcC83U1ZIc292a0dSOXhR?=
 =?utf-8?B?alhpaFgyWjZjQTJYamk3SFd1OWM5M0tia1VRZUNRcGp2ei9wOElhUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BBCD6D61C0AB4643872E5CC982E1E009@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a95dcd3-bf06-4a08-5e20-08d9a8d765a7
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 08:02:12.5014
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: YYylsiF27oj6IqkMc3VxhcXC6wi+k7EMzk/MTBYB6freTTojMOrbr4h67JKmXnVSVUmZeKOEbynPsdbxK64YDA509EvdQ5+T816INz9BZjCLEpr9wVWu3MgXN2T4cfg2
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3374
X-Proofpoint-GUID: S_wXgDooxJc_w9IpKQYxF79VCQ4vb6BC
X-Proofpoint-ORIG-GUID: S_wXgDooxJc_w9IpKQYxF79VCQ4vb6BC
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-15_16,2021-11-15_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0
 mlxscore=0 bulkscore=0 priorityscore=1501 phishscore=0 mlxlogscore=617
 malwarescore=0 lowpriorityscore=0 impostorscore=0 spamscore=0
 clxscore=1011 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111160040

DQoNCk9uIDE1LjExLjIxIDE4OjU3LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgZHluYW1pYyBhc3NpZ25tZW50IG9mIHRoZSB2
cGNpIHJlZ2lzdGVyDQo+PiBoYW5kbGVycyBkZXBlbmRpbmcgb24gdGhlIGRvbWFpbjogaHdkb20g
b3IgZ3Vlc3QuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28g
PG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPj4gLS0tDQo+PiBTaW5jZSB2MzoN
Cj4+IC0gcmVtb3ZlIGFsbCBSLWIncyBkdWUgdG8gY2hhbmdlcw0KPj4gLSBzL3ZwY2lfcmVtb3Zl
X2RldmljZV9yZWdpc3RlcnMvdnBjaV9yZW1vdmVfZGV2aWNlX2hhbmRsZXJzDQo+IFNob3VsZCB0
aGlzIG1heWJlIGV4dGVuZCB0byB0aGUgdGl0bGUgdGhlbj8NClN1cmUsIEkgd2lsbCByZS13b3Jk
DQo+DQo+IEphbg0KPg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 08:23:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 08:23:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226197.390811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtki-00089I-3j; Tue, 16 Nov 2021 08:23:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226197.390811; Tue, 16 Nov 2021 08:23:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtki-00089B-0e; Tue, 16 Nov 2021 08:23:40 +0000
Received: by outflank-mailman (input) for mailman id 226197;
 Tue, 16 Nov 2021 08:23:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0oQI=QD=epam.com=prvs=1954156bad=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmtkg-000895-JS
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 08:23:38 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7dbd4c60-46b6-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 09:23:36 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AG84TVD016214;
 Tue, 16 Nov 2021 08:23:33 GMT
Received: from eur03-am5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2059.outbound.protection.outlook.com [104.47.8.59])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cc8ta02cw-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 16 Nov 2021 08:23:32 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5698.eurprd03.prod.outlook.com (2603:10a6:208:171::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Tue, 16 Nov
 2021 08:23:22 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 08:23:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7dbd4c60-46b6-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fYGLGognEZmWxFE2Dx02XyPMUNZu0YS+s6qVq8snGm6cXOLm/klFjEE/3PteioZNQK9PdjOud0xx+BrVIquesdTTSI7+x+C087vxPSuq49Gzn3z8Wr5KRyk3K9eWDAQJliio76PTl1HTcRqEf/L9LtNgBfp8s3Mn2TjgIVzONENoRcNZ+r3Xi06s8671wy/pUV4uGNsj5BQVTH/GlLQT4wAoUlV7J7Z3JOvtjy8G3ZK35PxGIGqgS0bvNKJZv9wcdYnMFjX9OEtr2RzmL6fXTo5dqVWYxNSAxOHaNPyjAwnCFDh0jKC7lgaYCg0IfHvfhT/s3cdiUuJYIGlrvEa3Lw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VNvNXv2yfdVGZfhl+yQfUPdOI5uAQYgfoNLray0+hXo=;
 b=AU5061anWKrfU9Xfq20A+4QESeeowq2cT0mvi6g/HPvbxmvO0SYZeOAQjU4+i3xTUTnX5//DGEkutxPglxza19v1ZbkfdfYRTafUy+bguYjma10KxgjM/Iw4Xd/UAcktUOAiOuqbapXuo3CJuI2j9QkT3v5eafIdpdPXDmcU5Vf/OHXiyohmeLUfZrUrAZKB2LvH5iMc9nRWQvouPSAt9Ds2q2WXwgsPsXQxLHKVNk3vXEo6uBsTMQo5GebRQ/CpF2h9PDFu2ID+KsSAbnXbTU+mpshjX4GXpyYISO3ubSdS0MM9C6wS7mZ+8qFOtMiiqYg2AOFY/t6mxlNmhIdpfw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VNvNXv2yfdVGZfhl+yQfUPdOI5uAQYgfoNLray0+hXo=;
 b=lk22HGWwP9mC8txT1Cosw05niQtsBA+txNVLJw702kiCh7pSzo3ZOdVyXRSw09weJoQLK5u1NNYwY0APXxA0wucUAgyHfnWJNwAC9jqLTP8YwZoLGZomWhjT95EZbjcHjhnBlLJsUzmh9IDQgO8G42KtXyaB1BtRoHShx3GGJJOWqSl2MS0o7Y40nxQ7/8LYIxnrbiFFGMjUiytacyJruJQL5o6RsfsGabVmjHTQ6PJre8y0O0L5EJMf+voWCWOjRYGfQk9hyVrk370RttUPuvH4Lp0NGuHIIVZZoe+mF+Uf22xfoOG1wPj6jzH5ngzKkB6rjoxjsz1sLqfH6f5Z/w==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: AQHX0hJIYALl/D9fL0OD6N0XGDJh2awE30EAgAD09oCAAAgGAIAABgyA
Date: Tue, 16 Nov 2021 08:23:22 +0000
Message-ID: <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
In-Reply-To: <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2acc44f1-1157-4582-2a83-08d9a8da5a80
x-ms-traffictypediagnostic: AM0PR03MB5698:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5698D9CCDEEB8A66E476E3E5E7999@AM0PR03MB5698.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 1uugYKqABbOAbdf49Uza5niaO5BZR9vaxYizxGl9J0LkEyks1TkqsoJp5dR/+H0X1xoHfRhFoXKXlJ9kPfZ65jj/ph1XFOKTET4otTcwRd55dtsqGamR5KEfjA+tr7j84/LZfkB2vmm+kzDaMABEJEXKEbT26tFlmdeYng5r/qp3bJ9E35YvqtrjhwvC0Yh6NRgv2l2GgR4n0YWnYqGTwmjpaKLET634aV7JxAC+/fBuguJP9cpDyVXo5XYC+k/18kIeKO0AR6tFPdzkuyvsFvvTYIV7PA+WZD0y9ni2ddgGosBbOHYaZ2gEMuh2yUU9nsEow7UzQ0H3+OUobeuVc9pKZwzDVQIPKiVmdsaa++WKCQfAIgyWeisnajgN1OqBrEaHa/463kqMSlUP2LQCYMaGJpiuQHV2gkH/H5SfoXeOYz0cmHVFtOC2q7w0F5nDHDXJpRoXkL35WMjIH3+f5FWczMW0akSPeW5GuAGgSy+v+JmCtN00HUxo+yVZHqy+DSVnvOg/Ll20LvVzyXVu66XUChC+rCHRVQ1YPfNBU5hEItHwlwlrL/5NcMAZFTwfhKz1cl77JqnuhyvqbwC7IWFfDhZroUA1aPjJ3JMbs0FTcz+3FUdmyFy/682vGqxIeA3CBZ3RfadPm/UKW22lK9YlrMj0sI04H+MkLEgOtcYTrrlTzSnwP8KY0a1Stn4fxq0LTQz8MeX++qjWZKSBRuPk3gm42usaIT4lfKmdddYdHaApzrTXvZ8aIZw/Up9h
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(76116006)(36756003)(91956017)(6512007)(38100700002)(64756008)(26005)(2906002)(2616005)(186003)(6916009)(5660300002)(6506007)(53546011)(122000001)(6486002)(66556008)(66446008)(66946007)(66476007)(38070700005)(4326008)(508600001)(86362001)(8936002)(316002)(83380400001)(31686004)(54906003)(107886003)(31696002)(71200400001)(7416002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?NHJvSHpyZWI1bTFMdHVYUHQweCsyMG05L2JKWHo5TVNhWXh4dzJCaExvcTRG?=
 =?utf-8?B?SWtXZmhJSnh1ZkM3RlNTakJRRDgzMXFyaGxsNW80bWVrcFo1S1cvejVweTRi?=
 =?utf-8?B?dFpQOU4vYzB3NUtHVk1sTkpSeS9pZXJ4amlXTG92ZmNjelhWdGpHVEQ0UVlk?=
 =?utf-8?B?L0dPdnVBa2NLM3VYWm9nZFJPc0tHOGsxY3pQTmxYTHd2d2dtM2NpelBkUjFj?=
 =?utf-8?B?enU5a1BLeVVXQ0pnckRGRlFWa0U4MHlYenRMRGVYZVVOSUl1Rm1wOVRyTXRv?=
 =?utf-8?B?bkRtc05EZGpCUTdhNW9uZ0Y2SEJwRklkMGVLbHBGbzFqZGNpdkpMRk5SMjFS?=
 =?utf-8?B?VHdwK0dsYnlkVUl4cHhlcEdCSy9MVWZGM2dxdUcyL1hoQnJGOW4zbVgyN3Jo?=
 =?utf-8?B?Vnc5Y3dBUFczWjJyZEhac0lUMWw2OFlsQmpYL1g2K2hWVFpGQzBWTGlRSTUv?=
 =?utf-8?B?RmZpenJaNnUvWWRjeklGWHlTK0NZUTRWVG9oZDJUbzhQV1JodU13U3VjUzdN?=
 =?utf-8?B?dXY5U1V1NkJIVEtOejRjMnA4VG1uVXF6NWhzVGVoalBnWDV6NHlFRE83TjlV?=
 =?utf-8?B?R1FRaEx1cmg1ZlljaHNtTW43SVZuZVYraE8yWXFZQVpUSDh3WFBITGtnM055?=
 =?utf-8?B?NjVyNjNnNmROSXI4VkM4WFVGaGJmUWs0eTNmQ0plZ3p3cS8xNmt0UCtTUlds?=
 =?utf-8?B?aXBpbitucjRkSk5qUkNKK3E0ZnZWOVUwYzlWUGNrcFA3YTZwZ1QvSENXdkxM?=
 =?utf-8?B?eXVySEZtRFhES2dRdTA2UVZUdVljSGpGOXNkS29pcGYrUytYaVJUU3ZYOHNB?=
 =?utf-8?B?ZVlFcHpYRlZSUUpodUUwRGh6MEVGQWNzS3FTbmJUQ0dsaktWUFZXcURZRUl1?=
 =?utf-8?B?YzRwS1VIQ2VTTW96c2djakdLVm1adWVtOXBmMzh0WGhaUlgvK1FTQmxoN2F6?=
 =?utf-8?B?S0ZmelBnc1pPUDFmdDF4NFQ0UkYvemJIYkVwVGFnRXAyVVFwV0dCS01EZHpn?=
 =?utf-8?B?TGRrd09OYlZ6TXpEelYyVCtWMGRPTnppbFUyUUJQYU92WXZjR081N2RLaHN6?=
 =?utf-8?B?ZlNxWUN1SVNIWDZ4RE9ZOUVaS3NGZkpiM2VyWndNRGZsNzd0c28ySEs1RWNR?=
 =?utf-8?B?M291MFdsSWhzbStoVDJXTzk2bmRvU1gyTkU3cCtrV00yQWhxVVNQcHppbzh0?=
 =?utf-8?B?SEhYYXpCMjNQVFRCQkJ5bEYwd0MwMlpOQTd5c0RmekFYaVQ4UlBKSWpsTldU?=
 =?utf-8?B?SlJRNytLaFdEQXM0Yy94a0x1eStHYlI2blloWFU2eit5OW9iMmVETzFQd1Fv?=
 =?utf-8?B?VGo4VmRsSmVTZTN3SUU4dzhoYzc2ZUZCTmhjVTJ1emRiMWtleUNQVVJtd3lP?=
 =?utf-8?B?VU5HUEpGMkc0TStUc01YSVRIUzFKK2J2emFNdDZ3d3c5aHBqeEdEUll6YU9J?=
 =?utf-8?B?NGdJcDByeXFVazhOaUZiUXFaeXVtdWJCaWRTWnIxV3JyRjd2dE9vWEdNaWtD?=
 =?utf-8?B?VHJrbm9TN1dkTHpjbEc5VEpmcUhnZFhzMEtHM2w3U2NtNCtoU21jRVpUb3JU?=
 =?utf-8?B?YS8xVFo4a0ZoKytucHd2WEV2TUhzM1hPN1Vpdk5qWW9XOUViT2cyaFNYdndr?=
 =?utf-8?B?aXdWRkRiMmNUbW5HNTlLODJFZ3pFTTlpRjRBNG80QU9ZTHVRSlVFWi9YcXk5?=
 =?utf-8?B?STZrM0RyS1lOL2RrV2RPdEo5MGM5VHNPbVRaakZ6VlpTQ2xieU1PS1duMzlD?=
 =?utf-8?B?V21QOFl2dTdFbDh5YVIrTC9nZEtkREJKeHFNd3BIdW5ZcWhralczd2N6TTZJ?=
 =?utf-8?B?SkhVdzNZMDR5QnRsOWtSZnF3MWFPZmk3VVFrZnd3S0ptU0VUd2h6cFJBc3c2?=
 =?utf-8?B?UWhOS2dXVU9hdytHVWZ0Z3dkclZZbDlJc3MwTkM0TVVjQ1pzN3c1dHQzQVJ2?=
 =?utf-8?B?dzJFSWR2ejJGay9oVVBQa2ZaSXVPWHplWTVDcXpVcEFPOVZISkhlYXAzakts?=
 =?utf-8?B?N29ERnN6UjFyNytkcnlBZHRuTG15SkhldG9EcTNCRUFCV2RBT3pFQmIwekV6?=
 =?utf-8?B?MFV4Y3labjJsOUpYSGdpQVBIVWxIbnRaWjNJOVN0Z2dFWFFaNmJLQ0dja3lv?=
 =?utf-8?B?MFl4NVFRS0x0bVVZUkRVR2tINUpZWkNSbXhiVkdzeDZZdFA2OTJ2QUxJSGE0?=
 =?utf-8?B?YjdPdHBNUlUyWWFnb01zaTlWL3JrbWtvbkRGU3d2b0hnQUgyWFk0ZUpDdWNr?=
 =?utf-8?B?U3o4eU9jWndROGtwbWdtblVlaVBCazB1azdVZFVPMnVjK0N2bFBuSVNXazd4?=
 =?utf-8?B?U1hKUFVRbmhNRjZQVWZOZCtFUzNIK1I3eXFpd2pGMEIycmt4QjFaQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <166438F939F82B4AA2F660ED3ABFF708@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2acc44f1-1157-4582-2a83-08d9a8da5a80
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 08:23:22.2957
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: el8Uht2erQfPofJu98ct6bZtXLMKNbQnj+oNzlU5Hdfivl3clHLar7ihVZ2mPiUFXxn8gB/qkUAl51cMRot30fwXOWLGWFbNbtRSnZz3EJSl5h9zu4DP1k1aN95TRQRG
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5698
X-Proofpoint-GUID: L23f7q68ve4ZpNszXEwVPFBPV-V5QsHx
X-Proofpoint-ORIG-GUID: L23f7q68ve4ZpNszXEwVPFBPV-V5QsHx
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-15_16,2021-11-15_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0
 mlxscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 clxscore=1015
 priorityscore=1501 suspectscore=0 impostorscore=0 mlxlogscore=999
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111160042

DQoNCk9uIDE2LjExLjIxIDEwOjAxLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTYuMTEuMjAy
MSAwODozMiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxNS4xMS4yMSAx
ODo1NiwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMDUuMTEuMjAyMSAwNzo1NiwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hl
bmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4NCj4+Pj4gV2hlbiBh
IHZQQ0kgaXMgcmVtb3ZlZCBmb3IgYSBQQ0kgZGV2aWNlIGl0IGlzIHBvc3NpYmxlIHRoYXQgd2Ug
aGF2ZQ0KPj4+PiBzY2hlZHVsZWQgYSBkZWxheWVkIHdvcmsgZm9yIG1hcC91bm1hcCBvcGVyYXRp
b25zIGZvciB0aGF0IGRldmljZS4NCj4+Pj4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgc2Nl
bmFyaW8gY2FuIGlsbHVzdHJhdGUgdGhlIHByb2JsZW06DQo+Pj4+DQo+Pj4+IHBjaV9waHlzZGV2
X29wDQo+Pj4+ICAgICAgcGNpX2FkZF9kZXZpY2UNCj4+Pj4gICAgICAgICAgaW5pdF9iYXJzIC0+
IG1vZGlmeV9iYXJzIC0+IGRlZmVyX21hcCAtPiByYWlzZV9zb2Z0aXJxKFNDSEVEVUxFX1NPRlRJ
UlEpDQo+Pj4+ICAgICAgaW9tbXVfYWRkX2RldmljZSA8LSBGQUlMUw0KPj4+PiAgICAgIHZwY2lf
cmVtb3ZlX2RldmljZSAtPiB4ZnJlZShwZGV2LT52cGNpKQ0KPj4+Pg0KPj4+PiBsZWF2ZV9oeXBl
cnZpc29yX3RvX2d1ZXN0DQo+Pj4+ICAgICAgdnBjaV9wcm9jZXNzX3BlbmRpbmc6IHYtPnZwY2ku
bWVtICE9IE5VTEw7IHYtPnZwY2kucGRldi0+dnBjaSA9PSBOVUxMDQo+Pj4+DQo+Pj4+IEZvciB0
aGUgaGFyZHdhcmUgZG9tYWluIHdlIGNvbnRpbnVlIGV4ZWN1dGlvbiBhcyB0aGUgd29yc2UgdGhh
dA0KPj4+PiBjb3VsZCBoYXBwZW4gaXMgdGhhdCBNTUlPIG1hcHBpbmdzIGFyZSBsZWZ0IGluIHBs
YWNlIHdoZW4gdGhlDQo+Pj4+IGRldmljZSBoYXMgYmVlbiBkZWFzc2lnbmVkDQo+Pj4gSXMgY29u
dGludWluZyBzYWZlIGluIHRoaXMgY2FzZT8gSS5lLiBpc24ndCB0aGVyZSB0aGUgcmlzayBvZiBh
IE5VTEwNCj4+PiBkZXJlZj8NCj4+IEkgdGhpbmsgaXQgaXMgc2FmZSB0byBjb250aW51ZQ0KPiBB
bmQgd2h5IGRvIHlvdSB0aGluayBzbz8gSS5lLiB3aHkgaXMgdGhlcmUgbm8gcmFjZSBmb3IgRG9t
MCB3aGVuIHRoZXJlDQo+IGlzIG9uZSBmb3IgRG9tVT8NCldlbGwsIHRoZW4gd2UgbmVlZCB0byB1
c2UgYSBsb2NrIHRvIHN5bmNocm9uaXplIHRoZSB0d28uDQpJIGd1ZXNzIHRoaXMgbmVlZHMgdG8g
YmUgcGNpIGRldnMgbG9jayB1bmZvcnR1bmF0ZWx5DQo+DQo+Pj4+IEZvciB1bnByaXZpbGVnZWQg
ZG9tYWlucyB0aGF0IGdldCBhIGZhaWx1cmUgaW4gdGhlIG1pZGRsZSBvZiBhIHZQQ0kNCj4+Pj4g
e3VufW1hcCBvcGVyYXRpb24gd2UgbmVlZCB0byBkZXN0cm95IHRoZW0sIGFzIHdlIGRvbid0IGtu
b3cgaW4gd2hpY2gNCj4+Pj4gc3RhdGUgdGhlIHAybSBpcy4gVGhpcyBjYW4gb25seSBoYXBwZW4g
aW4gdnBjaV9wcm9jZXNzX3BlbmRpbmcgZm9yDQo+Pj4+IERvbVVzIGFzIHRoZXkgd29uJ3QgYmUg
YWxsb3dlZCB0byBjYWxsIHBjaV9hZGRfZGV2aWNlLg0KPj4+IFlvdSBzYXlpbmcgIndlIG5lZWQg
dG8gZGVzdHJveSB0aGVtIiBtYWRlIG1lIGxvb2sgZm9yIGEgbmV3IGRvbWFpbl9jcmFzaCgpDQo+
Pj4gdGhhdCB5b3UgYWRkLCBidXQgdGhlcmUgaXMgbm9uZS4gV2hhdCBpcyB0aGlzIGFib3V0Pw0K
Pj4gWWVzLCBJIGd1ZXNzIHdlIG5lZWQgdG8gaW1wbGljaXRseSBkZXN0cm95IHRoZSBkb21haW4s
DQo+IFdoYXQgZG8geW91IG1lYW4gYnkgImltcGxpY2l0bHkiPw0KQEAgLTE1MSwxNCArMTUxLDE4
IEBAIGJvb2wgdnBjaV9wcm9jZXNzX3BlbmRpbmcoc3RydWN0IHZjcHUgKnYpDQoNCiDCoMKgwqDC
oMKgwqDCoMKgIHZwY2lfY2FuY2VsX3BlbmRpbmcodi0+dnBjaS5wZGV2KTsNCiDCoMKgwqDCoMKg
wqDCoMKgIGlmICggcmMgKQ0KK8KgwqDCoMKgwqDCoMKgIHsNCiDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgLyoNCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIEZJWE1FOiBpbiBjYXNlIG9m
IGZhaWx1cmUgcmVtb3ZlIHRoZSBkZXZpY2UgZnJvbSB0aGUgZG9tYWluLg0KIMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgICogTm90ZSB0aGF0IHRoZXJlIG1pZ2h0IHN0aWxsIGJlIGxlZnRvdmVy
IG1hcHBpbmdzLiBXaGlsZSB0aGlzIGlzDQorwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogc2Fm
ZSBmb3IgRG9tMCwgZm9yIERvbVVzIHRoZSBkb21haW4gbmVlZHMgdG8gYmUga2lsbGVkIGluIG9y
ZGVyDQorwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogdG8gYXZvaWQgbGVha2luZyBzdGFsZSBw
Mm0gbWFwcGluZ3Mgb24gZmFpbHVyZS4NCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLw0K
IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2cGNpX3JlbW92ZV9kZXZpY2Uodi0+dnBjaS5wZGV2
KTsNCisNCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbih2
LT5kb21haW4pICkNCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZG9tYWluX2NyYXNo
KHYtPmRvbWFpbik7DQoNCj4NCj4+Pj4gQEAgLTE2NSw2ICsxNjQsMTggQEAgYm9vbCB2cGNpX3By
b2Nlc3NfcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdikNCj4+Pj4gICAgICAgIHJldHVybiBmYWxzZTsN
Cj4+Pj4gICAgfQ0KPj4+PiAgICANCj4+Pj4gK3ZvaWQgdnBjaV9jYW5jZWxfcGVuZGluZyhjb25z
dCBzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+Pj4gK3sNCj4+Pj4gKyAgICBzdHJ1Y3QgdmNwdSAq
diA9IGN1cnJlbnQ7DQo+Pj4+ICsNCj4+Pj4gKyAgICAvKiBDYW5jZWwgYW55IHBlbmRpbmcgd29y
ayBub3cuICovDQo+Pj4gRG9lc24ndCAiYW55IiBpbmNsdWRlIHBlbmRpbmcgd29yayBvbiBhbGwg
dkNQVS1zIG9mIHRoZSBndWVzdCwgbm90DQo+Pj4ganVzdCBjdXJyZW50PyBJcyBjdXJyZW50IGV2
ZW4gcmVsZXZhbnQgKGFzIGluOiBwYXJ0IG9mIHRoZSBjb3JyZWN0DQo+Pj4gZG9tYWluKSwgY29u
c2lkZXJpbmcgLi4uDQo+Pj4NCj4+Pj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+
Pj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+Pj4gQEAgLTUxLDYgKzUxLDggQEAg
dm9pZCB2cGNpX3JlbW92ZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+Pj4+ICAgICAg
ICAgICAgeGZyZWUocik7DQo+Pj4+ICAgICAgICB9DQo+Pj4+ICAgICAgICBzcGluX3VubG9jaygm
cGRldi0+dnBjaS0+bG9jayk7DQo+Pj4+ICsNCj4+Pj4gKyAgICB2cGNpX2NhbmNlbF9wZW5kaW5n
KHBkZXYpOw0KPj4+IC4uLiB0aGlzIGNvZGUgcGF0aCwgd2hlbiBjb21pbmcgaGVyZSBmcm9tIHBj
aV97YWRkLHJlbW92ZX1fZGV2aWNlKCk/DQo+Pj4NCj4+PiBJIGNhbiBhZ3JlZSB0aGF0IHRoZXJl
J3MgYSBwcm9ibGVtIGhlcmUsIGJ1dCBJIHRoaW5rIHlvdSBuZWVkIHRvDQo+Pj4gcHJvcGVybHkg
KGkuZS4gaW4gYSByYWNlIGZyZWUgbWFubmVyKSBkcmFpbiBwZW5kaW5nIHdvcmsuDQo+PiBZZXMs
IHRoZSBjb2RlIGlzIGluY29uc2lzdGVudCB3aXRoIHRoaXMgcmVzcGVjdC4gSSBhbSB0aGlua2lu
ZyBhYm91dDoNCj4+DQo+PiB2b2lkIHZwY2lfY2FuY2VsX3BlbmRpbmcoY29uc3Qgc3RydWN0IHBj
aV9kZXYgKnBkZXYpDQo+PiB7DQo+PiAgIMKgwqDCoCBzdHJ1Y3QgZG9tYWluICpkID0gcGRldi0+
ZG9tYWluOw0KPj4gICDCoMKgwqAgc3RydWN0IHZjcHUgKnY7DQo+Pg0KPj4gICDCoMKgwqAgLyog
Q2FuY2VsIGFueSBwZW5kaW5nIHdvcmsgbm93LiAqLw0KPj4gICDCoMKgwqAgZG9tYWluX2xvY2so
ZCk7DQo+PiAgIMKgwqDCoCBmb3JfZWFjaF92Y3B1ICggZCwgdiApDQo+PiAgIMKgwqDCoCB7DQo+
PiAgIMKgwqDCoMKgwqDCoMKgIHZjcHVfcGF1c2Uodik7DQo+PiAgIMKgwqDCoMKgwqDCoMKgIGlm
ICggdi0+dnBjaS5tZW0gJiYgdi0+dnBjaS5wZGV2ID09IHBkZXYpDQo+IE5pdDogU2FtZSBzdHls
ZSBpc3N1ZSBhcyBpbiB0aGUgb3JpZ2luYWwgcGF0Y2guDQpXaWxsIGZpeA0KPg0KPj4gICDCoMKg
wqDCoMKgwqDCoCB7DQo+PiAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmFuZ2VzZXRfZGVzdHJv
eSh2LT52cGNpLm1lbSk7DQo+PiAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdi0+dnBjaS5tZW0g
PSBOVUxMOw0KPj4gICDCoMKgwqDCoMKgwqDCoCB9DQo+PiAgIMKgwqDCoMKgwqDCoMKgIHZjcHVf
dW5wYXVzZSh2KTsNCj4+ICAgwqDCoMKgIH0NCj4+ICAgwqDCoMKgIGRvbWFpbl91bmxvY2soZCk7
DQo+PiB9DQo+Pg0KPj4gd2hpY2ggc2VlbXMgdG8gc29sdmUgYWxsIHRoZSBjb25jZXJucy4gSXMg
dGhpcyB3aGF0IHlvdSBtZWFuPw0KPiBTb21ldGhpbmcgYWxvbmcgdGhlc2UgbGluZXMuIEkgZXhw
ZWN0IHlvdSB3aWxsIHdhbnQgdG8gbWFrZSB1c2Ugb2YNCj4gZG9tYWluX3BhdXNlX2V4Y2VwdF9z
ZWxmKCksDQpZZXMsIHRoaXMgaXMgd2hhdCBpcyBuZWVkZWQgaGVyZSwgdGhhbmtzLiBUaGUgb25s
eSBxdWVzdGlvbiBpcyB0aGF0DQoNCmludCBkb21haW5fcGF1c2VfZXhjZXB0X3NlbGYoc3RydWN0
IGRvbWFpbiAqZCkNCnsNCltzbmlwXQ0KIMKgwqDCoMKgwqDCoMKgIC8qIEF2b2lkIHJhY2luZyB3
aXRoIG90aGVyIHZjcHVzIHdoaWNoIG1heSB3YW50IHRvIGJlIHBhdXNpbmcgdXMgKi8NCiDCoMKg
wqDCoMKgwqDCoCBpZiAoICFzcGluX3RyeWxvY2soJmQtPmh5cGVyY2FsbF9kZWFkbG9ja19tdXRl
eCkgKQ0KIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FUkVTVEFSVDsNCg0Kc28gaXQg
aXMgbm90IGNsZWFyIHdoYXQgZG8gd2UgZG8gaW4gY2FzZSBvZiAtRVJFU1RBUlQ6IGRvIHdlIHdh
bnQgdG8gc3Bpbj8NCk90aGVyd2lzZSB3ZSB3aWxsIGxlYXZlIHRoZSBqb2Igbm90IGRvbmUgZWZm
ZWN0aXZlbHkgbm90IGNhbmNlbGluZyB0aGUNCnBlbmRpbmcgd29yay4gQW55IGlkZWEgb3RoZXIg
dGhlbiBzcGlubmluZz8NCj4gICBhbmQgSSBkb24ndCB1bmRlcnN0YW5kIHRoZSBwdXJwb3NlIG9m
DQo+IGFjcXVpcmluZyB0aGUgZG9tYWluIGxvY2suDQpZb3UgYXJlIHJpZ2h0LCBubyBuZWVkDQo+
DQo+IEphbg0KPg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 08:37:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 08:37:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226205.390822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtxx-0001II-E9; Tue, 16 Nov 2021 08:37:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226205.390822; Tue, 16 Nov 2021 08:37:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmtxx-0001IB-Aw; Tue, 16 Nov 2021 08:37:21 +0000
Received: by outflank-mailman (input) for mailman id 226205;
 Tue, 16 Nov 2021 08:37:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ogMK=QD=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1mmtxv-0001I5-K3
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 08:37:19 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on0613.outbound.protection.outlook.com
 [2a01:111:f400:fe0d::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 673fc09b-46b8-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 09:37:16 +0100 (CET)
Received: from DU2PR04CA0297.eurprd04.prod.outlook.com (2603:10a6:10:28c::32)
 by AM0PR08MB3508.eurprd08.prod.outlook.com (2603:10a6:208:e1::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Tue, 16 Nov
 2021 08:37:14 +0000
Received: from DB5EUR03FT009.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:28c:cafe::42) by DU2PR04CA0297.outlook.office365.com
 (2603:10a6:10:28c::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend
 Transport; Tue, 16 Nov 2021 08:37:14 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT009.mail.protection.outlook.com (10.152.20.117) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 08:37:13 +0000
Received: ("Tessian outbound 1cd1a01725a6:v110");
 Tue, 16 Nov 2021 08:37:13 +0000
Received: from 4afc61761474.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 C7BA7549-B45A-4D8E-A97E-6F25D90DC152.1; 
 Tue, 16 Nov 2021 08:37:02 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4afc61761474.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 08:37:02 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PA4PR08MB6126.eurprd08.prod.outlook.com (2603:10a6:102:ea::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 08:37:00 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::1d24:822b:651c:5eeb]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::1d24:822b:651c:5eeb%6]) with mapi id 15.20.4690.015; Tue, 16 Nov 2021
 08:37:00 +0000
Received: from smtpclient.apple (217.140.106.53) by
 LO4P123CA0454.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.17 via Frontend Transport; Tue, 16 Nov 2021 08:37:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 673fc09b-46b8-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RxsdjH3NFxHT7NWiAQAjoIjnC7yeAsItOP6mJN4SgaI=;
 b=yluRB+QNbgKNd4M3LnsDV5y94q7/IkTw5ayFPed0nW52v/6kYYp/Xy9yUPPD8MgVi1bL8uOSFxhWP+8eMg5hD5qFG86zcYlqE+1eWGbj/Lixobk/+fKndt1YvpqrMzEouQzJtf6pErcDSglXjEMmu9fnlzbwHI6NM8n3ZB0yXtU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: c18f76fd473b0974
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LGkfrjSXXm9eYfk2xdm/DVOj4wnxJySKunz/18u+6mC03Es9t3AJMHCCYykn29c3pt5ILW7K6KlLx8fZ7JvE3mS/BSRtrOZbrHrFJlwZDHAv86VF1mRZKmKZ3e9hi3mchI3KnwsPzid6CHV+OGD66V/rhe//+UHrDi/TZmvgSZxub+Ivk/mrjuqRfEbCOt3/vhzUB+THlcke7KzPO1vyMAOwMWHzB1wwTqmJrEvFV8qG0UdEHA0+eR3KEM8W3Ngvwuf35mTgySsVlWSSR8fyfymfFwBzrxdEfgl4zLb/M41e2X1hOIRflR1yiR9TBMgOrmihm5BBekFwHvRR6Fd/zQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RxsdjH3NFxHT7NWiAQAjoIjnC7yeAsItOP6mJN4SgaI=;
 b=J0sWd15Nnss1rLA9I7vhdjeIELR9QBpJ6W7/FM9wEeHbGSqpW0q5llQUaeWomZHjDXkzch+u+wwOYUU2PFwQYmxVCzmAyG7o5I+aX581ZGXJCwpjpeMc2yJyELRHvdyNMqznpI4PKrhScCBEhpY3TzS4CbNwCaaxDWzSWCBgAlwutS9ubTrMVckrdRscnGq+IMOkt7jeKHJo13DEuzVn7vgAA/szdomBD/gIrb5O8Y5uLHZF34tFzE0Lb5IV1oMEKVMJBgWOIxAzk8nMwmvxqDxnQD8WP8B5oCLakdViUUrOH+baKvGrmYzT/H47JYk/uePJ12VPku+d1Vq/2hfTnw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RxsdjH3NFxHT7NWiAQAjoIjnC7yeAsItOP6mJN4SgaI=;
 b=yluRB+QNbgKNd4M3LnsDV5y94q7/IkTw5ayFPed0nW52v/6kYYp/Xy9yUPPD8MgVi1bL8uOSFxhWP+8eMg5hD5qFG86zcYlqE+1eWGbj/Lixobk/+fKndt1YvpqrMzEouQzJtf6pErcDSglXjEMmu9fnlzbwHI6NM8n3ZB0yXtU=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <alpine.DEB.2.22.394.2111151359360.1412361@ubuntu-linux-20-04-desktop>
Date: Tue, 16 Nov 2021 08:36:57 +0000
Cc: Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <1606F25D-53BF-4350-B065-B1FAB525F6A1@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <81685961-501e-7a41-6f6f-bc4491645264@suse.com>
 <alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
 <97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
 <3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com>
 <010fa02f-e561-e7a8-9638-5246db9166b4@xen.org>
 <725F3F68-A1CE-42FB-9C8A-0700CDD02E8E@arm.com>
 <a07ff375-b910-0d73-e957-15ba9d2535fe@xen.org>
 <alpine.DEB.2.22.394.2111151359360.1412361@ubuntu-linux-20-04-desktop>
To: Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO4P123CA0454.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1aa::9) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 31810703-9724-40ea-a08b-08d9a8dc4a22
X-MS-TrafficTypeDiagnostic: PA4PR08MB6126:|AM0PR08MB3508:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB35085388C4E23FDDA1F36AA1E4999@AM0PR08MB3508.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 zuFGhG6v13Km9197P2OlWu9MxmmBjpBjzSP+b7KJ+bn0IpEcRuZgXokzsra5pXjA3f7z65Dc4xxmdetSWko501lf220657SusPzBjUiJo7VPf4gA9bJwg3TQZkEBLNDxMr0EfguLsiYql+rFzH2aDrXYRg++JBdOehhe57m8ErKX8dPKx5Tt3VVK0AhMJYiRPCG9+axnURADQdhmny1Ixs1m6OMPrKkS8MYxpI8+xxHlgZyILEu5MM+BuME5GhHWXmc368CHzKd/mh8yl0Xredciu/CUR5KPF6SOkk/AdjrV13z01n1R8EFlZR3lP1DeKChT3AAx4lq+J9uBqr0tP/OtGL/Cm6DibqFi+hAl3mR/5GMlCQl9sJCfKTmvS9eQOPisdV0jRgdd3Td/xalsP0KT7M87//bo6TGHlOWKHp13gywPEIduW/1zfYL9kUtTqlRbf3wqTldnfjRNRNbcuyXvG5+eFEBFlb8j+HbIxBjJ1Z0984sDReBQxi2a0AUD4xqGMAGveopb9BfcHUkbycRZCf+d3B+r38FCNUrMh4isb8FubHdvx2AI/UoQUVn8XklEm6wKrCw7HaG/LiDWmZNB4EEAYxONP46YoVJdQarUsZBNQ+1Qn/xq6diHv7JzXIbDuGg6RKmSsmm515kExVXEgVSqhYKPEr7R7Z8B8+Ca2VozsvvMzQX3GdNQquUHC7ulO45T/MAK3fN8hzLXaciommH5QdSr1kp/P2c4w+k=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66556008)(54906003)(66946007)(66476007)(110136005)(508600001)(53546011)(956004)(6506007)(83380400001)(2906002)(5660300002)(4326008)(2616005)(6666004)(33656002)(44832011)(52116002)(316002)(6512007)(38350700002)(8676002)(8936002)(36756003)(86362001)(26005)(38100700002)(186003)(6486002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6126
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT009.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5b8b2768-d0ba-49dc-2a6b-08d9a8dc4200
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	0McIYpi8o+8ccIkpMY7Y9BfGiRnVhiQa0luHfbPIT8v/VSEgofIxbUlH8e8Ll+duZcGd6noxZdHF72FxONUAj6kTdHudAm3YCaceYK6ox7UBg6WCc/rDlfD0xRR8MdaoisQyEhXa+7QA7IXCE51d4c39aifS7vWbUFHxd+8atM4xZ5V0WZ8KNo3V9byYsccSHh3ofTkVlpi+fPFzv5aGU5gseP/euDHBQDepHlJCNy2XPsleUYI4XnWKxIMgwDFEe7j6xD1Gtx6D2TQE1Meky1G4O+8vH2A2zldzfRKsoyPLfaM7k4d29cTmL0O1y8PPwtmpxy9Okgb42eStpNfNEITyl3ia9cb98Jv5T+gC/sJYaYpgjevqEEig6e396yhrLCFSTgn8tPkDVly+IISTCiXor3eLKuTu3C/tL/SPQtH6SJRlH1WprhW7vfLLNWKAMoD9AXi0d8AzO3M4I2kuxrkkNr68XuuIFtBI8fC82b8TDOTrHBvReGLANho1TmAz6nu+/qTHWZJYugsbFKyAd8jZ9sPt54dei6LExUR35sGMwLKwHATW7FmMW4gOFZwqLHabI8bg+/o7WCOkE58aaUP8unnq/vv9QtVNpOtP48EpQeWxhy9gQy3Dvjl6dbch85dyoyEVRy2Dp3x3cKsQdgkNJIUbyTEeHVW1uBRz6wIQNEo7m66l81DQRXs3nOJHUMwOU2PCW2Q/Cvzbk0s7Dw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(6666004)(4326008)(70586007)(70206006)(508600001)(2906002)(86362001)(316002)(54906003)(110136005)(5660300002)(8676002)(6486002)(8936002)(33656002)(36756003)(36860700001)(82310400003)(83380400001)(47076005)(81166007)(44832011)(53546011)(2616005)(956004)(356005)(6506007)(186003)(26005)(336012)(6512007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 08:37:13.9620
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 31810703-9724-40ea-a08b-08d9a8dc4a22
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT009.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3508



> On 15 Nov 2021, at 22:00, Stefano Stabellini <sstabellini@kernel.org> wro=
te:
>=20
> +Ian
>=20
> On Mon, 15 Nov 2021, Julien Grall wrote:
>> Hi Luca,
>>=20
>> On 10/11/2021 14:02, Luca Fancellu wrote:
>>>=20
>>>=20
>>>> On 10 Nov 2021, at 13:36, Julien Grall <julien@xen.org> wrote:
>>>>=20
>>>> Hi Luca,
>>>>=20
>>>> On 10/11/2021 13:05, Luca Fancellu wrote:
>>>>> I thought having the EFI_FILE_HANDLE global in efi-boot.h was a =E2=
=80=9Cno go=E2=80=9D,
>>>>> but if it=E2=80=99s not then instead of
>>>>> calling get_parent_handle in efi_check_dt_boot (that is the main issu=
e
>>>>> with EDK2+Grub2), we can do
>>>>> something like this:
>>>>=20
>>>> fs_dir_handle is only used by callees of efi_check_boot_dt_boot(). So =
the
>>>> global variable is not an option for me because the risk is not worth =
it
>>>> (it is easy to misuse a global variable).
>>>>=20
>>>> Instead, I think fs_dir_handle should be an argument of
>>>> allocate_module_file() and propagated up to the first call in
>>>> efi_check_dt_boot().
>>>>=20
>>>=20
>>> Yes you are right, changing the interface of handle_dom0less_domain_nod=
e,
>>> handle_module_node, allocate_module_file to host also an argument
>>> EFI_FILE_HANDLE *dir_handle
>>> avoids the use of the global, then the handle is requested in
>>> allocate_module_file only once and closed in efi_check_dt_boot only if =
it=E2=80=99s
>>> not null.
>>=20
>> That would indeed be better. I'd like this patch to be merged in 4.16. W=
ould
>> you be able to send a new version in the next couple of days?
>=20
> I'd love that too; adding Ian so that he is aware.

Hi, yes I will prepare it and push very soon.

Cheers,

Luca




From xen-devel-bounces@lists.xenproject.org Tue Nov 16 09:36:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 09:36:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226214.390832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmutD-00070J-Si; Tue, 16 Nov 2021 09:36:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226214.390832; Tue, 16 Nov 2021 09:36:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmutD-00070C-Po; Tue, 16 Nov 2021 09:36:31 +0000
Received: by outflank-mailman (input) for mailman id 226214;
 Tue, 16 Nov 2021 09:36:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tZbI=QD=gmail.com=geert.uytterhoeven@srs-se1.protection.inumbo.net>)
 id 1mmutC-000706-2W
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 09:36:30 +0000
Received: from mail-ua1-f48.google.com (mail-ua1-f48.google.com
 [209.85.222.48]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac32037e-46c0-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 10:36:28 +0100 (CET)
Received: by mail-ua1-f48.google.com with SMTP id p37so39361340uae.8
 for <xen-devel@lists.xenproject.org>; Tue, 16 Nov 2021 01:36:28 -0800 (PST)
Received: from mail-ua1-f48.google.com (mail-ua1-f48.google.com.
 [209.85.222.48])
 by smtp.gmail.com with ESMTPSA id i27sm12214624uab.8.2021.11.16.01.36.26
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Nov 2021 01:36:26 -0800 (PST)
Received: by mail-ua1-f48.google.com with SMTP id p37so39361179uae.8
 for <xen-devel@lists.xenproject.org>; Tue, 16 Nov 2021 01:36:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac32037e-46c0-11ec-9787-a32c541c8605
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=E0eR9zkAbihj7HFpbj20+RG8BagR/Ljq9p4NqypyKkY=;
        b=J/gSxnPyzVIRsOexPo+AIZf7gc5xdBSG3cu3LB/T1i6zpOn5cApdTB82ZfB4kQ6BmR
         CaRQwXq92zs8TFJ0FEXWTIlMImHsgGejizfCBBv5JY/Co/v3ywgSbi+/iwuWQOaxRC2p
         C6RiYHczfyXpU5BsOM957l72929Msl3SkJ040fy6mG1z5BTnGtNJ6zMsF9FiW2DqWYGS
         FVbAq0l07YD8jzuz1nb0+gFRsIw3TFwPCOFoYFUWOeRhEW/iEBVKXQdvXAXsN/DEXtS7
         UG2dcMTHZIaTrTpytLOlq8oPAlEIn0y2SSIDCt0pd8RhOVOOGkr2HM3TRekoang/JPbM
         mgFQ==
X-Gm-Message-State: AOAM533wNgGoIspOr4qPZQdk3shZa4xDyQYqfU7eaEu17VocyAaG6gva
	yl/HrIeGV2+QmyQK0AL5jfKDsxDU/9kUmw==
X-Google-Smtp-Source: ABdhPJxWlJB7e/irEIA8qEayxgjghJ0PGIqAdbmqQyg/c4UWF6LitM+KzATAgGcY+Y4iDyVktFai/A==
X-Received: by 2002:a67:f516:: with SMTP id u22mr54563260vsn.47.1637055387239;
        Tue, 16 Nov 2021 01:36:27 -0800 (PST)
X-Received: by 2002:a05:6102:e82:: with SMTP id l2mr52824758vst.37.1637055386105;
 Tue, 16 Nov 2021 01:36:26 -0800 (PST)
MIME-Version: 1.0
References: <20211028061341.1479333-1-andr2000@gmail.com>
In-Reply-To: <20211028061341.1479333-1-andr2000@gmail.com>
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Tue, 16 Nov 2021 10:36:15 +0100
X-Gmail-Original-Message-ID: <CAMuHMdXEGtr5Js4QwyGBMLP_LzG8mk0Ovv9PiOpnU2-VVp+7dg@mail.gmail.com>
Message-ID: <CAMuHMdXEGtr5Js4QwyGBMLP_LzG8mk0Ovv9PiOpnU2-VVp+7dg@mail.gmail.com>
Subject: Re: [PATCH] xen-pciback: allow compiling on other archs than x86
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: xen-devel@lists.xenproject.org, 
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Juergen Gross <jgross@suse.com>, julien@xen.org, 
	Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich <jbeulich@suse.com>, 
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, 
	Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
Content-Type: text/plain; charset="UTF-8"

Hi Oleksandr,

On Thu, Oct 28, 2021 at 8:15 AM Oleksandr Andrushchenko
<andr2000@gmail.com> wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>
> Xen-pciback driver was designed to be built for x86 only. But it
> can also be used by other architectures, e.g. Arm.
>
> Currently PCI backend implements multiple functionalities at a time,
> such as:
> 1. It is used as a database for assignable PCI devices, e.g. xl
>    pci-assignable-{add|remove|list} manipulates that list. So, whenever
>    the toolstack needs to know which PCI devices can be passed through
>    it reads that from the relevant sysfs entries of the pciback.
> 2. It is used to hold the unbound PCI devices list, e.g. when passing
>    through a PCI device it needs to be unbound from the relevant device
>    driver and bound to pciback (strictly speaking it is not required
>    that the device is bound to pciback, but pciback is again used as a
>    database of the passed through PCI devices, so we can re-bind the
>    devices back to their original drivers when guest domain shuts down)
> 3. Device reset for the devices being passed through
> 4. Para-virtualised use-cases support
>
> The para-virtualised part of the driver is not always needed as some
> architectures, e.g. Arm or x86 PVH Dom0, are not using backend-frontend
> model for PCI device passthrough.
>
> For such use-cases make the very first step in splitting the
> xen-pciback driver into two parts: Xen PCI stub and PCI PV backend
> drivers.
>
> For that add new configuration options CONFIG_XEN_PCI_STUB and
> CONFIG_XEN_PCIDEV_STUB, so the driver can be limited in its
> functionality, e.g. no support for para-virtualised scenario.
> x86 platform will continue using CONFIG_XEN_PCIDEV_BACKEND for the
> fully featured backend driver.
>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> Reviewed-by: Juergen Gross <jgross@suse.com>

Thanks for your patch, which is now commit a67efff28832a597
("xen-pciback: allow compiling on other archs than x86")
in v5.16-rc1.

> --- a/drivers/xen/Kconfig
> +++ b/drivers/xen/Kconfig
> @@ -181,10 +181,34 @@ config SWIOTLB_XEN
>         select DMA_OPS
>         select SWIOTLB
>
> +config XEN_PCI_STUB
> +       bool
> +
> +config XEN_PCIDEV_STUB
> +       tristate "Xen PCI-device stub driver"
> +       depends on PCI && !X86 && XEN
> +       depends on XEN_BACKEND
> +       select XEN_PCI_STUB
> +       default m

Please note that this means "default y" if CONFIG_MODULES=n.
Perhaps this should be "default m if MODULES" instead?

> +       help
> +         The PCI device stub driver provides limited version of the PCI
> +         device backend driver without para-virtualized support for guests.
> +         If you select this to be a module, you will need to make sure no
> +         other driver has bound to the device(s) you want to make visible to
> +         other guests.
> +
> +         The "hide" parameter (only applicable if backend driver is compiled
> +         into the kernel) allows you to bind the PCI devices to this module
> +         from the default device drivers. The argument is the list of PCI BDFs:
> +         xen-pciback.hide=(03:00.0)(04:00.0)
> +
> +         If in doubt, say m.
> +
>  config XEN_PCIDEV_BACKEND
>         tristate "Xen PCI-device backend driver"
>         depends on PCI && X86 && XEN
>         depends on XEN_BACKEND
> +       select XEN_PCI_STUB
>         default m
>         help
>           The PCI device backend driver allows the kernel to export arbitrary

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 09:38:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 09:38:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226219.390844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmuvS-0007cd-A6; Tue, 16 Nov 2021 09:38:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226219.390844; Tue, 16 Nov 2021 09:38:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmuvS-0007cW-6w; Tue, 16 Nov 2021 09:38:50 +0000
Received: by outflank-mailman (input) for mailman id 226219;
 Tue, 16 Nov 2021 09:38:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0oQI=QD=epam.com=prvs=1954156bad=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmuvR-0007cM-03
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 09:38:49 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fcfa878a-46c0-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 10:38:44 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AG9JlKH029584;
 Tue, 16 Nov 2021 09:38:41 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cc9rs044x-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 16 Nov 2021 09:38:41 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM4PR0302MB2802.eurprd03.prod.outlook.com (2603:10a6:200:93::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Tue, 16 Nov
 2021 09:38:37 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 09:38:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fcfa878a-46c0-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GE+AiDXdTEkVQbCoJMd5Z69PeiWuhZ9+qzWpGkqlSIKNy+ZzepvufyMCsSl0uAfX4lX0NeP1Fxt/Vbj02B948LYT3V8jlmwSLRQKFAUs3MX3wst05VoI1tyP+TgkZcOLLvbCGouKFAkaVBs9gMX/rwoN92DQPVP15mYbIEfcsNMZEI3as7GV/FEWfkTt8y3Wss5eqtzMQ5enqwipKpuxva8chErb4PCLNPf5TCxzIZYX1Gb7E7xSneW51JZr1ZCqTl1sPt/jzyucEYFNMu2UtgssZnnPNE4cW4CqWjXoiPPLCXPc0wSGs2m22vUIV4iIPynKn3hFKdP587kjVqo2DQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wOi4jsePjCVJJtf8XlN9+bvo8ugQSGEW4ln9t2Y+Pt0=;
 b=Dj3TDwkD4Lf+MxfAP5bUcpDf0lYM/j9zOwJGiGFpNi4TB39rBrRCF9IopcNfmwZ2nC4LXrh4+P2m+mwh2hH/toEG1TyvmKt1hN9LVivsVQzZLtCnT2g+JbTFXkWy5Ihr8gYDokxNumND6cZ9z0fLLN+d46N1zTdo4fEr7XNDh+3YkEXC1wYsU87DDT30LN6FuTRbfYLIh+MmEuKEfxsc/z8sgIYRnRHGyO/orwaFjJ/ZHgMsJEDh531N5kRho1W6NfFG4QRZyUVqjCn9g60nXtvW9VDS+rfkNIMRb3BWpyIGBrHQ1shgo4YS8hYlw+DcUvs0jMuaZHHq2fkYDtkDbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wOi4jsePjCVJJtf8XlN9+bvo8ugQSGEW4ln9t2Y+Pt0=;
 b=K8VzKW4rYwCZy0y6VpY/nyNZo20yw/n4Q0MNWVyC5y51Tv6KgibbwrpDwDVlDWjdLebqYrZsj3kJjlCH++S8iUkfAz9wKyzysmvkSY3AwLUt8iS5WO9WL6KTfDHBbXcXxu11QPJVNFFh8050Ny5KCZ2RkcVMDsXkKnUYiAoRzQGb9bo0vapQPyf8d7x8KEgLRpDXgsy1e3jb4B5Xs4/9LEopiXKt1CdLqPLgajsB1MYZ5KOCgnlZrCZbbSV4vlMUJaZJD1EVT6Rh4RE7QUFn7gYVXrUGISCRwQ8pNhtsMFNr/pykrjhK5HnyAH30FO0F3S8cMA8u4tNdu0VC/hgjeQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 04/11] vpci: add hooks for PCI device assign/de-assign
Thread-Topic: [PATCH v4 04/11] vpci: add hooks for PCI device assign/de-assign
Thread-Index: AQHX0hJJIJTGsgsktEqeU1aKILk346wE4jUAgAEVGwA=
Date: Tue, 16 Nov 2021 09:38:36 +0000
Message-ID: <9a22f3a6-d1d2-a40b-f1a2-50c9816eafcd@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-5-andr2000@gmail.com>
 <9d72b3b0-22be-45fd-2bc6-cf27f96afe5f@suse.com>
In-Reply-To: <9d72b3b0-22be-45fd-2bc6-cf27f96afe5f@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 57a9510c-f805-4748-8b43-08d9a8e4dd6a
x-ms-traffictypediagnostic: AM4PR0302MB2802:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM4PR0302MB280224BF2069A06C522C73F4E7999@AM4PR0302MB2802.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:4303;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 w47f7WlGeVeZqdREBdFNfdv40UpykEdAt1jEgH8Gs0vWT7BXPNBFYLNHtHIc2IuE8f/v1m7NsLTnFn6vBWDc1o14I+QPg0ixVqPORxySx6pE8jZ4MdWrcrwyXquNY3qSJBehk8jIsZA9tYdFS6EPieYKu9RIRc11CoZJyOy3czX/nPyOCEY8iazgSHHnHmw6RupFujGtbUrU4d/qcPg5FUi6ccexYWGnWGCKXkSRlJvrA7Z87FtrBJh+8XIkNC2pO5mE2DFcImDSkb4AYkjh7mrGeNaFSmhdQhZcVC8Wns0LLbr4BS6fgVDHvbcAuYYlZYBU5SN/C2Pko/aeoUzvRj1ENDN9i/IwNHOm4RYyF9epGuerGOzxFqE+eSODSdiCr5dcT7biTkx3ReAoPnXtpg2d1OsScKW5eQP4NMQuUggu+Oog/arscGcUTb3P42zdU9jo3+Ji29Gx5paxsq+8Ac7iMKHy/9ZyBtVL8Q14/s33Uy+iF8CORR+CXRgXSGCf9NTDYQSRjyR4TN+P7Yt7roirQGrTFYAy1clQLF37qYmGplX/tlZZm1g/L4NajycGzn5IglRB2V0vq2pb9SS6K3+wQ3ep08JsB9Af9wdXuq4JVEuDYxr6JGSmFSupXGHdm+dqZ79K2Jf4umwDE5SdFlakRlrIahwVKf+HZPRcdFAk/kgkyQxVyPdL8XUm9sqMEzV2maaatbilKp32EdGAGT4Eu2ffbrMfBRaTpJKsxzl/0zmlkrRVypXg/oCh3ODo
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(38070700005)(508600001)(2906002)(66946007)(316002)(107886003)(66476007)(66556008)(31696002)(2616005)(66446008)(38100700002)(64756008)(122000001)(76116006)(7416002)(91956017)(186003)(8936002)(53546011)(54906003)(6506007)(86362001)(31686004)(6486002)(4326008)(5660300002)(71200400001)(26005)(6512007)(36756003)(8676002)(6916009)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?aEFPWkkzL0FqSllzR1N0L28zMmxBSDdpRHRtVjc4aDJTODJZeGJubFliQ2kz?=
 =?utf-8?B?MTNLYmZ0dWZwNkRHZ1dlV0d6cncrajVlL3NJZjBLeEN1UlU5YU13R0ZhRjQx?=
 =?utf-8?B?ZHppM25QMkR3c2NnS3N4QzN0Y1RITmxXVDNjRkZTbnNRTldHNlhGQ0ZNS29y?=
 =?utf-8?B?ZG8xMlppMjNlZk5aMjRyNFRNVlMyNzJmSU1wYTVteFNoWnY3SDhRME9CR0lT?=
 =?utf-8?B?Z3R5TnJla1g1SDF2UWRoaDBDcTcxUEZtbWN4cU05L2VwL24rb3JiWVlKcGhv?=
 =?utf-8?B?Q0t6NU0xSnpNdG5SOVlZb29wUjh1MDlUSVBYd2FaNXFjZEJQaTlPbjY2M1hO?=
 =?utf-8?B?aElEcDJmZ0xmNW5aeW1ldGU5d1JYZ05XdnVzZnplK3ArR0cvNjlDdzVJZmpV?=
 =?utf-8?B?WW53NllXTHJnMGFKek5SNmhEU3ZZYzVaakFHSzFHZ0hrbXRzcUtZR2hjM1pV?=
 =?utf-8?B?bGJyNEZUU1QzZitpRG9lcU1pdERaWUFubHVBUjhNT0lpTWNkRmdsdWwxVEhz?=
 =?utf-8?B?SWd2aUk1VHFFNlJ3dmJUclJUcm15Uk1UQVlVbkJCbmNURHNCU2VZYUtjWUF3?=
 =?utf-8?B?T1llU1E3TFZ4OVNlVnNFNldEc3p5eXFqS0gyMUpHcHpqMzF4azhjQUlNNElR?=
 =?utf-8?B?bjdyVGRrVmdYcUVMSWRNR0djd2xUdEVFRHBmSGRTUzhhUHNXbGNEYWVjWUls?=
 =?utf-8?B?YlNsV0NnVm9IMkJ1dzQwWlREUXA4V2UxZytqengxZWtEazEvOFVjbDlFMFR6?=
 =?utf-8?B?L0JlZlZOMmpLK2hxVWMrOTduYmhMMXl3azlIaU5BU0Y4ajJpS1NYVnI1bW1Y?=
 =?utf-8?B?K3hRRlV6Y3J2Tm51THdZK2s3UHJMbTlPa3NMOVp6eWd6SURYeDcwejJzb1pY?=
 =?utf-8?B?MExCQnNOaEVGVWpIR0FtYnpQUlJZclJIQTgvcko4bjQ4RGhpRDZBbmhva0dP?=
 =?utf-8?B?TVRBSzlnUUd0RVdienpJZWUvdHFIUG1ldXZmY1gyNEtvYStaNEZqMmVwbHVS?=
 =?utf-8?B?eVpackJYRFQwT0phdHY4cG1JeXpueHA5aHhGOGRuRUt1cUp1L2NpWmdzVnlV?=
 =?utf-8?B?R21oS29jSm1IWnFGMjQwV2hLM29vNEZlV29OOEZqS2gwNE5uMDVrbnFCMFNH?=
 =?utf-8?B?TFgvbmhha3lkb0ZQUUVLczhzTWk1d1lPbFRJcnU2K0t0bUtZelFxcXZ5Q005?=
 =?utf-8?B?MU5LOGs4NFl0Ky9xNGQ5aHdldzJnbEpUYW1EWUo5UHNKS3JEMU8zTXV1UlVk?=
 =?utf-8?B?QlBMckhzUWE5cmdYckdpT0ZRejNMYnVsa2hXZWhFa2l1eHJxdUhRWHNGYnBa?=
 =?utf-8?B?czdON01TZFI2ZEMzeW5ucDI5T0lQd1ZOU0dVZmd0bDNyK3VQWDMvRFhIU1N6?=
 =?utf-8?B?M2FkOGFyeG55WEovc3pYeDE4c3p3YlZQdTUrcFBrdmxLYnRJeE1IUlFZd2xB?=
 =?utf-8?B?UENVUmUyYVNnK2VXYTBzRUR4cGJMMnE3cGpZaTRwNlZUMlJwUVZSQXZzVk9X?=
 =?utf-8?B?cVRmVHdPQ1FLNXNnUngyS05wU29uVmJsL1QrRDNKa0xMRzdlQ1dXK1ZBNE1P?=
 =?utf-8?B?QU5VMnFTZDl6UTJHYmt1S1dxVWdGalFWY1g3TG5SUDFRdmJHeGxwMkp3eHI2?=
 =?utf-8?B?cUc3eDJlT2czQjhJOHJnRS9xOUVtUTFMem4ycnpzc01UeXVmak5HRHl0MC8x?=
 =?utf-8?B?MkdqOGdnS29SMHM2TnpBamtiejBHU082Rm9TRjRMNk8zbEJyNUhrOGtvcm1X?=
 =?utf-8?B?VUNVTTFMdUZHelI5ejBJMFBHb2them9vcHNZRThKL1YwazAyUmFmOWxNM2xQ?=
 =?utf-8?B?TDBCZEwxTlhNRFl2SWlhY2pYb3Q1aFNnZHVlaWNLZUJNTythVGhSWnhLNDY2?=
 =?utf-8?B?RnB5Y0xWblc5TGlCODFIZUd4MDQ5VWQ0U1hBOG94RlQvNno4ZTdrazN2OG1z?=
 =?utf-8?B?NnhWQU1CQkw3aEkxQ09CbFJ1QmlBeWJmVzMvK3pyMzdQdGxyd1dTeTZCdTFO?=
 =?utf-8?B?d0ZIaWxnQWNCR3dDaHVvSGhjZ0J4dWk1RlNUL2d4OFkxZzRuaXVkamFoTlRI?=
 =?utf-8?B?UTY1cUZQRmUyK3RKcVEveit6eXBiWXBKcTNtbDQwTkZTM0tyUk8wMzZha0JV?=
 =?utf-8?B?MHdaMDUrRkI2NlpjZ3JEWGNvdk5CSWJNeDI1MGNUSXBlTE5iOTI3SjZJcFUw?=
 =?utf-8?B?ZTJwR2xDanM1Sm1taWhoWEdXTlR3RS9rYlNBeG1mekVUNitheDVwZXNWSmRJ?=
 =?utf-8?B?R2pLRlRCbUdHazk4NkVYVTduL3VQUExtNFFtbGhNSHhaY3FpWWxkZzNlMXlt?=
 =?utf-8?B?U0I5cllVMTk4bEVlbk9ndE82UjFjZnhQUWFNRFNpNFZaQVdwUHhtUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <62EBA8D252909746830FAC332FA052B6@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 57a9510c-f805-4748-8b43-08d9a8e4dd6a
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 09:38:36.8371
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9wCnD0II5q96glAdkmclSOz3nAvmzwropn2ykfpQsmdG0QvSsz22ei3tvysmFZzU03g+n2Sk56n6kHaZifb9LJSJmlY4j9b3JkVi6MlcN+WDlqcucI+CgTGkHq0jVFlH
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0302MB2802
X-Proofpoint-ORIG-GUID: NWn9t-jt8DIElM6bjDgiFIf6C5XPTswu
X-Proofpoint-GUID: NWn9t-jt8DIElM6bjDgiFIf6C5XPTswu
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-15_16,2021-11-15_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0
 mlxlogscore=999 phishscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0
 mlxscore=0 impostorscore=0 suspectscore=0 priorityscore=1501
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111160048

DQoNCk9uIDE1LjExLjIxIDE5OjA2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gV2hlbiBhIFBDSSBkZXZpY2UgZ2V0cyBhc3NpZ25lZC9kZS1hc3NpZ25lZCBzb21lIHdvcmsg
b24gdlBDSSBzaWRlIG5lZWRzDQo+PiB0byBiZSBkb25lIGZvciB0aGF0IGRldmljZS4gSW50cm9k
dWNlIGEgcGFpciBvZiBob29rcyBzbyB2UENJIGNhbiBoYW5kbGUNCj4+IHRoYXQuDQo+Pg0KPj4g
U2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNo
Y2hlbmtvQGVwYW0uY29tPg0KPj4gLS0tDQo+PiBTaW5jZSB2MzoNCj4+ICAgLSByZW1vdmUgdG9v
bHN0YWNrIHJvbGwtYmFjayBkZXNjcmlwdGlvbiBmcm9tIHRoZSBjb21taXQgbWVzc2FnZQ0KPj4g
ICAgIGFzIGVycm9yIGFyZSB0byBiZSBoYW5kbGVkIHdpdGggcHJvcGVyIGNsZWFudXAgaW4gWGVu
IGl0c2VsZg0KPj4gICAtIHJlbW92ZSBfX211c3RfY2hlY2sNCj4+ICAgLSByZW1vdmUgcmVkdW5k
YW50IHJjIGNoZWNrIHdoaWxlIGFzc2lnbmluZyBkZXZpY2VzDQo+PiAgIC0gZml4IHJlZHVuZGFu
dCBDT05GSUdfSEFTX1ZQQ0kgY2hlY2sgZm9yIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JU
DQo+PiAgIC0gdXNlIFJFR0lTVEVSX1ZQQ0lfSU5JVCBtYWNoaW5lcnkgdG8gcnVuIHJlcXVpcmVk
IHN0ZXBzIG9uIGRldmljZQ0KPj4gICAgIGluaXQvYXNzaWduOiBhZGQgcnVuX3ZwY2lfaW5pdCBo
ZWxwZXINCj4+IFNpbmNlIHYyOg0KPj4gLSBkZWZpbmUgQ09ORklHX0hBU19WUENJX0dVRVNUX1NV
UFBPUlQgc28gZGVhZCBjb2RlIGlzIG5vdCBjb21waWxlZA0KPj4gICAgZm9yIHg4Ng0KPj4gU2lu
Y2UgdjE6DQo+PiAgIC0gY29uc3RpZnkgc3RydWN0IHBjaV9kZXYgd2hlcmUgcG9zc2libGUNCj4+
ICAgLSBkbyBub3Qgb3BlbiBjb2RlIGlzX3N5c3RlbV9kb21haW4oKQ0KPj4gICAtIGV4dGVuZGVk
IHRoZSBjb21taXQgbWVzc2FnZQ0KPj4gLS0tDQo+PiAgIHhlbi9kcml2ZXJzL0tjb25maWcgICAg
ICAgICAgIHwgIDQgKysrDQo+PiAgIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIHwgIDYg
KysrKw0KPj4gICB4ZW4vZHJpdmVycy92cGNpL3ZwY2kuYyAgICAgICB8IDU3ICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tLS0tDQo+PiAgIHhlbi9pbmNsdWRlL3hlbi92cGNpLmggICAg
ICAgIHwgMTYgKysrKysrKysrKw0KPj4gICA0IGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMo
KyksIDggZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL0tjb25m
aWcgYi94ZW4vZHJpdmVycy9LY29uZmlnDQo+PiBpbmRleCBkYjk0MzkzZjQ3YTYuLjc4MDQ5MGNm
OGUzOSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9kcml2ZXJzL0tjb25maWcNCj4+ICsrKyBiL3hlbi9k
cml2ZXJzL0tjb25maWcNCj4+IEBAIC0xNSw0ICsxNSw4IEBAIHNvdXJjZSAiZHJpdmVycy92aWRl
by9LY29uZmlnIg0KPj4gICBjb25maWcgSEFTX1ZQQ0kNCj4+ICAgCWJvb2wNCj4+ICAgDQo+PiAr
Y29uZmlnIEhBU19WUENJX0dVRVNUX1NVUFBPUlQNCj4+ICsJYm9vbA0KPj4gKwlkZXBlbmRzIG9u
IEhBU19WUENJDQo+PiArDQo+PiAgIGVuZG1lbnUNCj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVy
cy9wYXNzdGhyb3VnaC9wY2kuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jDQo+PiBp
bmRleCBhOWQzMTI5M2FjMDkuLjUyOWE0ZjUwYWE4MCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jDQo+PiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9w
Y2kuYw0KPj4gQEAgLTg3Myw2ICs4NzMsMTAgQEAgc3RhdGljIGludCBkZWFzc2lnbl9kZXZpY2Uo
c3RydWN0IGRvbWFpbiAqZCwgdWludDE2X3Qgc2VnLCB1aW50OF90IGJ1cywNCj4+ICAgICAgIGlm
ICggcmV0ICkNCj4+ICAgICAgICAgICBnb3RvIG91dDsNCj4+ICAgDQo+PiArICAgIHJldCA9IHZw
Y2lfZGVhc3NpZ25fZGV2aWNlKGQsIHBkZXYpOw0KPj4gKyAgICBpZiAoIHJldCApDQo+PiArICAg
ICAgICBnb3RvIG91dDsNCj4+ICsNCj4+ICAgICAgIGlmICggcGRldi0+ZG9tYWluID09IGhhcmR3
YXJlX2RvbWFpbiAgKQ0KPj4gICAgICAgICAgIHBkZXYtPnF1YXJhbnRpbmUgPSBmYWxzZTsNCj4+
ICAgDQo+PiBAQCAtMTQ0NSw2ICsxNDQ5LDggQEAgc3RhdGljIGludCBhc3NpZ25fZGV2aWNlKHN0
cnVjdCBkb21haW4gKmQsIHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sIHUzMiBmbGFnKQ0KPj4g
ICAgICAgICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+YXNzaWduX2RldmljZShkLCBkZXZmbiwg
cGNpX3RvX2RldihwZGV2KSwgZmxhZyk7DQo+PiAgICAgICB9DQo+PiAgIA0KPj4gKyAgICByYyA9
IHZwY2lfYXNzaWduX2RldmljZShkLCBwZGV2KTsNCj4+ICsNCj4+ICAgIGRvbmU6DQo+PiAgICAg
ICBpZiAoIHJjICkNCj4+ICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORyAiJXBkOiBh
c3NpZ24gKCVwcCkgZmFpbGVkICglZClcbiIsDQo+IERvbid0IHlvdSBuZWVkIHRvIGNhbGwgdnBj
aV9kZWFzc2lnbl9kZXZpY2UoKSBoaWdoZXIgdXAgaW4gdGhpcw0KPiBmdW5jdGlvbiBmb3IgdGhl
IHByaW9yIG93bmVyIG9mIHRoZSBkZXZpY2U/DQpZZXMsIHRoaXMgZG9lcyBtYWtlIG1vcmUgc2Vu
c2UsIGUuZy4gdnBjaV9kZWFzc2lnbl9kZXZpY2UocGRldi0+ZG9tYWluLCBwZGV2KQ0KYmVmb3Jl
IGFzc2lnbmluZyBwZGV2IHRvIGFuIElPTU1VIHdoaWNoIHVwZGF0ZXMgcGRldi0+ZG9tYWluIGFu
ZCB0aGVuLi4uDQo+DQo+PiArI2lmZGVmIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUDQo+
PiArLyogTm90aWZ5IHZQQ0kgdGhhdCBkZXZpY2UgaXMgYXNzaWduZWQgdG8gZ3Vlc3QuICovDQo+
PiAraW50IHZwY2lfYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcGNpX2Rl
diAqcGRldikNCj4+ICt7DQo+PiArICAgIGludCByYzsNCj4+ICsNCj4+ICsgICAgLyogSXQgb25s
eSBtYWtlcyBzZW5zZSB0byBhc3NpZ24gZm9yIGh3ZG9tIG9yIGd1ZXN0IGRvbWFpbi4gKi8NCj4+
ICsgICAgaWYgKCBpc19zeXN0ZW1fZG9tYWluKGQpIHx8ICFoYXNfdnBjaShkKSApDQo+PiArICAg
ICAgICByZXR1cm4gMDsNCj4+ICsNCj4+ICsgICAgdnBjaV9yZW1vdmVfZGV2aWNlX2hhbmRsZXJz
KHBkZXYpOw0KPiBUaGlzIHJlbW92ZXMgaGFuZGxlcnMgaW4gZCwgbm90IGluIHRoZSBwcmlvciBv
d25lciBkb21haW4uIElzIHRoaXMNCj4gcmVhbGx5IGludGVuZGVkPyBBbmQgaWYgaXQgcmVhbGx5
IGlzIG1lYW50IHRvIHJlbW92ZSB0aGUgbmV3IGRvbWFpbidzDQo+IGhhbmRsZXJzIChvZiB3aGlj
aCB0aGVyZSBvdWdodCB0byBiZSBub25lKSAtIHdoeSBpcyB0aGlzIG5lY2Vzc2FyeT8NCnRoZSBh
Ym92ZSB3b24ndCBiZSBuZWVkZWQNCj4NCj4gSmFuDQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 09:45:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 09:45:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226225.390855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmv1H-0000eI-4I; Tue, 16 Nov 2021 09:44:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226225.390855; Tue, 16 Nov 2021 09:44:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmv1H-0000eB-0e; Tue, 16 Nov 2021 09:44:51 +0000
Received: by outflank-mailman (input) for mailman id 226225;
 Tue, 16 Nov 2021 09:44:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mmv1G-0000e5-9P
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 09:44:50 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmv1E-000094-Ew; Tue, 16 Nov 2021 09:44:48 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233] helo=[10.85.43.125])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmv1E-0008Uy-9A; Tue, 16 Nov 2021 09:44:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ITb0tgPz902cdlMepxHGSDer4HVCMmfvWUnvI3cVNYI=; b=179kQt3WxHkHpZKd27hOTNF931
	hpKDkOEKmdJj2XED7OrRubTkA+bAfUZ3JKiUs4wQwY7RHsOfwrNf6uyfMme7MYFcC4KGebgEFLjIg
	AgQ3LTPhg08kn4TfSrXzH7NRFOogznGJKml9Pfc6TmLg3+iF4saTu9wFQm4Ymft55XnA=;
Message-ID: <c9bc50d8-5840-2712-979d-df2b7b56f410@xen.org>
Date: Tue, 16 Nov 2021 09:44:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v3 00/10] direct-map memory map
To: Jan Beulich <jbeulich@suse.com>, Penny Zheng <penny.zheng@arm.com>
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com,
 xen-devel@lists.xenproject.org, sstabellini@kernel.org
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <9f883c45-05ec-f362-57e7-f87741da08d5@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9f883c45-05ec-f362-57e7-f87741da08d5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 16/11/2021 07:49, Jan Beulich wrote:
> On 16.11.2021 07:31, Penny Zheng wrote:
>> v3 changes:
>> - move flag XEN_DOMCTL_CDF_INTERNAL_directmap back to xen/include/xen/domain.h,
>> to let it be only available for domain created by XEN.
>> - name it with extra "INTERNAL" and add comments to warn developers not
>> to accidently use its bitfield when introducing new XEN_DOMCTL_CDF_xxx flag.
> 
> FTR I continue to object to the hijacking of a public interface bit for
> this purpose. Not to the degree of nak-ing the change, but still.

I remember this discussion in v1 and I am a bit confused why this was 
re-introduced. Looking at the thread, I think you and I were happy with 
the following approach:

   1) Switch the last parameter of domain_create() (i.e. bool is_priv) 
to flags.
   2) Define a bit in the parameter to indicate whether the domain will 
be direct-mapped.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 09:58:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 09:58:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226230.390866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmvDd-0002AN-BW; Tue, 16 Nov 2021 09:57:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226230.390866; Tue, 16 Nov 2021 09:57:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmvDd-0002AG-6X; Tue, 16 Nov 2021 09:57:37 +0000
Received: by outflank-mailman (input) for mailman id 226230;
 Tue, 16 Nov 2021 09:57:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mmvDb-0002AA-MR
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 09:57:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmvDa-0000Os-Gn; Tue, 16 Nov 2021 09:57:34 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233] helo=[10.85.43.125])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mmvDa-0000d9-Ae; Tue, 16 Nov 2021 09:57:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=0Lo2epoeWzoqHOe36PCsxxoloWugAJ3vHvDiVqsFtbc=; b=0nrWWdCBvJ+YoIbjy1U5mfmyt0
	Fdm4NYFTyUwpdfNYW3HbHZCRFmRre3sBAUv+CwDSP/cxy4mLp+2r6EmLqoM+6YgqFwnnJcyfskehR
	l2D+VMoBV+cj5AQx6jcQxoy0hyVg8GtJDkEzDfujHs2LHCYT0Wt4blSTqca0RE8Wi0LA=;
Message-ID: <3fb62abf-5a72-fd70-3130-2505b8b42aad@xen.org>
Date: Tue, 16 Nov 2021 09:57:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [XEN][RFC PATCH v4 1/1] Update libfdt to v1.6.1
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Luca Fancellu <luca.fancellu@arm.com>,
 Vikram Garhwal <fnu.vikram@xilinx.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, bertrand.marquis@arm.com,
 volodymyr_babchuk@epam.com
References: <1636702040-116895-1-git-send-email-fnu.vikram@xilinx.com>
 <1636702040-116895-2-git-send-email-fnu.vikram@xilinx.com>
 <AE30D3B0-0863-465C-AFBC-8DEB28919A8A@arm.com>
 <alpine.DEB.2.22.394.2111121400280.1412361@ubuntu-linux-20-04-desktop>
 <57d10284-cbd0-2867-2c09-9f1f7824d938@xen.org>
 <alpine.DEB.2.22.394.2111151415020.1412361@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111151415020.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Stefano,

On 16/11/2021 03:15, Stefano Stabellini wrote:
> On Mon, 15 Nov 2021, Julien Grall wrote:
>> On 12/11/2021 22:01, Stefano Stabellini wrote:
>>> On Fri, 12 Nov 2021, Luca Fancellu wrote:
>>>>> On 12 Nov 2021, at 07:27, Vikram Garhwal <fnu.vikram@xilinx.com> wrote:
>>>>>
>>>>> Update libfdt to v1.6.1 of libfdt taken from
>>>>> git://github.com/dgibson/dtc.
>>>>> This update is done to support device tree overlays.
>>>>>
>>>>> A few minor changes are done to make it compatible with Xen:
>>>>>      fdt_overlay.c: overlay_fixup_phandle()
>>>>>
>>>>>          Replace strtoul() with simple_strtoul() as strtoul() is not
>>>>> available in
>>>>>          Xen lib and included lib.h.
>>>>>
>>>>>          Change char *endptr to const char *endptr. This change is
>>>>> required for
>>>>>          using simple_strtoul().
>>>>>
>>>>>      libfdt_env.h:
>>>>>          Remaining Xen changes to libfdt_env.h carried over from existing
>>>>>          libfdt (v1.4.0)
>>>>
>>>> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
>>>>
>>>> I’ve also tested it on FVP and on a Juno board, starting few guests and it
>>>> worked.
>>>>
>>>> Tested-by: Luca Fancellu <luca.fancellu@arm.com>
>>>
>>> Thanks Luca! The patch also passes the gitlab-ci tests and looks OK to
>>> me. I'll let Julien ack it as he was the one with a couple of comments
>>> before.
>>
>> The next version addressed my comments. So:
>>
>> Reviewed-by: Julien Grall <jgrall@amazon.com>
>>
>> I have also queued the patch in a temporary branch for-next/4.17:
>>
>> https://xenbits.xen.org/gitweb/?p=people/julieng/xen-unstable.git;a=shortlog;h=refs/heads/for-next/4.17
>>
>> The patch will land in staging when the tree re-opens.
> 
> Hey Julien,
> 
> Thanks for that!
> 
> Do you think it would make sense to keep "for-next/4.17" under
> xen-integration [1] so that we can easily trigger gitlab-ci runs on it?

It would be good to have gitlab-ci running on the branch. However...

> 
> I cannot setup an automatic mirror of your branch on xen-integration
> because xen-integration is already mirroring upstream xen.git. For now,
> I have just manually pushed:
> https://gitlab.com/xen-project/fusa/xen-integration/-/tree/for-next/4.17
> 
> Which triggered (all green):
> https://gitlab.com/xen-project/fusa/xen-integration/-/pipelines/409417946
> 
> FYI you should have full rights to push and make edits on
> xen-integration.

... AFAICT the tree can be edited by non-committers as well. I don't 
expect anyone in the list to mess up with the branch, but part of me 
would prefer if only you and I can modify it.

That said, I can push manually to xen-integration to trigger the CI 
everytime we need to update it.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 10:46:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 10:46:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226237.390880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmvyP-00073f-WA; Tue, 16 Nov 2021 10:45:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226237.390880; Tue, 16 Nov 2021 10:45:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmvyP-00073Y-T7; Tue, 16 Nov 2021 10:45:57 +0000
Received: by outflank-mailman (input) for mailman id 226237;
 Tue, 16 Nov 2021 10:45:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0oQI=QD=epam.com=prvs=1954156bad=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmvyN-00073C-UP
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 10:45:56 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5e9b462d-46ca-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 11:45:53 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AGAi1ZW003596;
 Tue, 16 Nov 2021 10:45:48 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3ccb57r0ry-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 16 Nov 2021 10:45:48 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5794.eurprd03.prod.outlook.com (2603:10a6:208:157::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 10:45:44 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 10:45:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e9b462d-46ca-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=c3/zrPwv6eA+fVnjpwOHXmQBd0aKFu4RvmwopKPXYQiZXbVk/HoTZP9tx6YlVp1Wi9VKsCDpfP+rrPs66jWDI8ggtnREb5M4k0DOA7eoz03y/s8Qgq4zps+gAT7dI6RqGARHv0dtgzWkjblDZeW11zFgvFL31RCVcLWzIIKlHrUL9HJ5BCzo4WzQ+gcbAgOCzqFb8yIyBWX+WJuheMyuLXTjvI7WGQD3jViOHtAmCpmM2ulweHhJ9Did2w4ka5atELXDt6162aH1nf9RIwm5PrDWR2bppr6aES5eFYLrcEdpjuKnnstPI0jauLiOatYer3zBKFa6sX2kPVUcUrVxqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Xd9jVMIXqutzTSzByHQ4Gz4jQ298DCDpvO0GuYHH8Fk=;
 b=Jdf+QczamQsf6I6czfGvdhKxnC0jXtH1EX7wqjHkgyCLejz/cyOyRjNW/Qll0QlAGiclSb/5p5fsyW5Tad7H3VNfn4cBqsSjgHUan7LxqUW33nYHcU4ngKh76eIBFpfYWig07CUSm7tuv2BKA2quWskSatGmfdq8XM2eI+IXMP7JDE4LiCTywFpSdhV3gSzvVC5VXt0VUo6w423rOJ82glBI0huiwpz3DCPM2jqlqjQkkvVoZrFwip+jKinsUdMvNOZkZZLJvqsCPjV/Dvp1EZB89so1Oh13Hm3e0JMHeA9jhEyij4iAZ6j8ZX1goJwUG2vUrbJnKnHyGuiHmomBkA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Xd9jVMIXqutzTSzByHQ4Gz4jQ298DCDpvO0GuYHH8Fk=;
 b=ctcebduvDhrgH1twiIEqr8UvJMQAnwqZDqTIMyv49VNPze49sMQKLzN1WMCC1YcLDBn5ePgx/YioLW4MA/UrwIDs2lHb4/aTq66zP1UTy8Sx/3PPQ83V1mhbAHnUn9GA3Ub9Bg0VticP5KkT+n2BtKeIi8k51lm+p0D5cs6Rc3vHXqtEcPQMZ5QxhVoo5Tb4Iz3lTY0F+OVbE5CaOUYyhLCSqsypNNqBpuz31fE+0qAltOB9W71a1jUfv8RiwWCBsdk/hUAQbps4Lf7P1pHBORPC8mC0kZUtZ4z1BmHD+GFqGnyDw2jsXctjd4xKw0MKOXcL7RtX1joysSxbeEnCfQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>,
        Boris Ostrovsky
	<boris.ostrovsky@oracle.com>,
        Juergen Gross <jgross@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Linux
 Kernel Mailing List <linux-kernel@vger.kernel.org>,
        "julien@xen.org"
	<julien@xen.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Jan Beulich
	<jbeulich@suse.com>,
        Anastasiia Lukianenko <Anastasiia_Lukianenko@epam.com>,
        Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH] xen-pciback: allow compiling on other archs than x86
Thread-Topic: [PATCH] xen-pciback: allow compiling on other archs than x86
Thread-Index: AQHXy8L4matlcvklF0O8ro+XGa1E1qwGA0aAgAATaYA=
Date: Tue, 16 Nov 2021 10:45:43 +0000
Message-ID: <ab6a44b3-6b56-191a-a653-ce5ace50975d@epam.com>
References: <20211028061341.1479333-1-andr2000@gmail.com>
 <CAMuHMdXEGtr5Js4QwyGBMLP_LzG8mk0Ovv9PiOpnU2-VVp+7dg@mail.gmail.com>
In-Reply-To: 
 <CAMuHMdXEGtr5Js4QwyGBMLP_LzG8mk0Ovv9PiOpnU2-VVp+7dg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 473a139d-b018-4dcb-3225-08d9a8ee3db4
x-ms-traffictypediagnostic: AM0PR03MB5794:
x-microsoft-antispam-prvs: 
 <AM0PR03MB5794B71F20F73320E0F44271E7999@AM0PR03MB5794.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5236;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 p7tzbg3bE3MJbxUlo20MOQRn1bcwmbtGxxY3SgaG9lfOsW8azhdHALsN2Sz4D5xNxoiZXoYSWQhgG+7g3kujloKEBUNPJYEOzwgCCZqhux8znkhsG4ukLWp8+DH90+R3u/7FBcWXWWrpu0kpfkkqnUSKmLExNPCDGzTT/5AQPrTDX7PJJxIbkVMZcyOVRO3JkRW3AYEcE672QXmt9opnDp8FsnMm3gXvcByIaIDZpLc/ZTMeB4cjyFAWisneLRKFhidPJsvh60uCd47g6bTBkak4/6QNzDXJk6zpCTyrhgdld/y8Ihwe4LA3tnrKxhzHE4rUgNKXVb1FtOYJfiajt/MKu/dOxW3A+c3ovtvHFo+VHra3Te/GeKtDBMSgUsqcUIDW5qvob6+zPN14ruTITAUwKE/M4n9YOlu/DXX+OAGxLjEhFHZwFurQC7e7rerYdHGAYI8hn2Szp5G0gJN9WQZ6aqyjsx0N48+2LQ30Xta1o/xpm7yl9j7sK+IUtwqZMu1EscqrJHKS13fo24mWnJ6rzsN7XbALp/q745pJZbDdJieFsO3HojLRa/014sdBhGDYfJcYBnPoyOnOaFuHPoLz0dHqBCij/kxoyczHhbARiaYaEgnry1j4Zf0GOxybwk9BES/9FTw5LEGTwoz+jrRGh997L4mL61rhJpaKmuXnrjiE5jQvqtxy8u52BEr7Lpv5sYtJpgm87EhagsygyQSFWZHFICo8qc0ZX6nsg/vzxIfH75FXVmOevs2xG+pb
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(31686004)(316002)(2906002)(86362001)(2616005)(5660300002)(107886003)(36756003)(4326008)(8676002)(122000001)(38100700002)(26005)(76116006)(53546011)(83380400001)(186003)(6506007)(66946007)(508600001)(91956017)(110136005)(6486002)(38070700005)(71200400001)(54906003)(66556008)(6512007)(66446008)(31696002)(66476007)(64756008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?UVdDSzF2dWllbk1Xd3RvL3ZIVDhZU09TT2diTEIwOGFKMlplTGZIZ04zNDQz?=
 =?utf-8?B?YmdiTVBWVjVSeENPQ21WRlB2YmEwWXBGQWJoM3dyb1RrTFZnZUtWWVBselNq?=
 =?utf-8?B?UE0yNGVEaXIrVUhabTY5bVowNXVWb0hoS3k2MWVKS01rclVFK3RmYXJQaWpY?=
 =?utf-8?B?Q1dEWDJwWUZkU293bVEzY25WcHpsZVI5RmNyVUpDNTMwemVWSzFxc2hhNUUw?=
 =?utf-8?B?S0I0bCthUEE1a2RCazhiYk56WXYxQVRFMzJvQVRybkxZemhxc0Y3d1ZyYWd5?=
 =?utf-8?B?VnRTQ2xDQUlrVVRhMXoxajgrNXNmNVRyVi9tRnU1WHBUOGthWVBEbXFlekhY?=
 =?utf-8?B?VFh0MXFNYUlwOWVkWXhQSmM0TDJIcFZWbnNoR0I5OVNDZGhKOTRnMVRUMXVs?=
 =?utf-8?B?MFdUcGVXWjlLakdrMEJQb0hId2NsMzJodldqN2p4MTNqTmpzWTNDU3Y2MzMr?=
 =?utf-8?B?UzhneHZCemMxaUg4WWZVcXZvS1hPbjR0STN6cm9KR2NOTTRLcDVOQ1hDaUF4?=
 =?utf-8?B?SHdwMHFmTkkrdXMwTGxnODB3cjltNnc3WmR5SzNqUnNPdkhhcjl1cDhYY1ZQ?=
 =?utf-8?B?cDNkY0JLb29FRWxZbXo2UGxYUzFiaW9KenFON2ZGVWNKeTFtcFR4VitSdU5t?=
 =?utf-8?B?N2RXcStqUGlVSFE1VU1OTVh0cytMdHcwQjRDSzlpaDhBOTI4TkUwYkdBYUJj?=
 =?utf-8?B?a1FVT0ZpWk1UQXFETzlmZEY1L2NaazN3Nnp4SVFOUExQSTRCSGpPeXphdVRJ?=
 =?utf-8?B?OXdSNEE2eVBnYThzRG43aEY0V3pXd0tOSURiU3BCZFM0aWE1cnFpN0Uwc2tp?=
 =?utf-8?B?WUxseTVpbzlNb3hPU3ZMQzRqZmZNQjFQS21FZU9JQU4rQXBreGI4Y1JhbzI0?=
 =?utf-8?B?S0Q4RkY2aFp0ai91R0wzYmd3RXh0WjN6VkRqckdjZ3FZUmNQc1FKTnNGNXYz?=
 =?utf-8?B?UldjK0p6S1ZoWVdrQ0FGYm1RVmk0TC9ndDdlOUR3WXhQSHdVbU1keEQ4ZTNi?=
 =?utf-8?B?S3BTVFcyeVQ0eXBQMXU3dFZrNkErVWN1WXg1SkdHcVlOcGc1YzhyY3lEM2Qr?=
 =?utf-8?B?T3NoNTN1K1JETVdSa0xRUFR1YkgvMGZacGRMeTAwK0RBbnNMaWJCa0RwbEFj?=
 =?utf-8?B?MW9IMkE4UHpIc2JMbGJNQ2ppUEl3RUFIcWFQcjdBcWVZUHRZQ3Q4UU0yTjZt?=
 =?utf-8?B?SXhOTmRhQmF3bXEyaGkwRGhaQ1RBRytrZ3hNUEQ4dlhlOWNBTE5NRmFOMUt0?=
 =?utf-8?B?ZFRpMmlYaE12VWd2cGlFRDlJdnhJUWJ3Q2xSczFxZXpGeExJRWl5d29QdVRW?=
 =?utf-8?B?Wm9COG5SMEJrdGp0YWxtZE9kMVhhU0xxQnE2MEtTSHNFNFVGYUFMQzBsU0c0?=
 =?utf-8?B?N2FYSUYreFBSRjd1WmlJWWJuVnpEakx6QmY2bG54bnRBOGo4M29kVWFBSHY5?=
 =?utf-8?B?NnBrYjhYQzZQK2Z1MDljN0FYbzZxaGtZUmRFZUpONHFMZHl1Qm5HblJpYzhF?=
 =?utf-8?B?cEd2TVRmVlhsTm5WVkpaT2VZY1NUSmJUR1FaUWF6M1BqcHgxVlNEc2U0MGdl?=
 =?utf-8?B?Tm9Xb01QTUFWRlNsVEFVZCs1cmlyMTZUSVN2dlRWR0ZRTWJJSW5YY05Rcnc2?=
 =?utf-8?B?S045cWFUekJyS1NGZ2dhS3pZN3dUQmVaR1NwT0NmSVkrNWgyTXlGMTNLazVk?=
 =?utf-8?B?TmExUUwxb2tRdGhGY0pqd0ZrakRJZnRDRHQzUWpxWTBGcTVmY2hBUlBtRHkv?=
 =?utf-8?B?SFFWSUhtdXlCRGVBOVlqbjJVQjRZVHRIUjNOSVlYTVpUYmhrZUtKa3REMGtl?=
 =?utf-8?B?OWkvNzRnWUxEVTZlWDVzTzY4dDZ0azFHU0M3VHoyTDdUcUNhRnpDaktKSDZl?=
 =?utf-8?B?OTZ1Qmk5MUs2RnZtTExrMzZnTFU3TkFlVzR6M08zR2g3aTFBL240RmZBYjFw?=
 =?utf-8?B?bzAvbjdtVWx5VHAxNzdtYlNML0pDR0dMVFMzdGRHbWVLQ0J3WU5Da0ttcXhF?=
 =?utf-8?B?ekkxbWk0VlpMbE9wK3VVOUV3c3MrVmlyWmJlWFp3enVkMXBXRW00VkR4NytX?=
 =?utf-8?B?elR5VGRFYkFYdFVuY0hSc1NPQk5NanE2enZheFVTbWtTMjllVWFzNXAwcis2?=
 =?utf-8?B?WEo5SlZZTmI0c0hHbk93OGdyOWJHTitnVTJSWDNUN1RBRlBwWXZiVTF1ZTU5?=
 =?utf-8?B?Vk1HTHJqMEpXbk5SYkRsa2ZqYm9OTEVLSmJaOW1xZUFRT25Kb0tUNHBZczZB?=
 =?utf-8?B?Rklmakd4Y1JjZWhLdFNtK0ZIUTlhRU5aWnZ0YmR6MGtNRjJ2c3czbDk3UDdp?=
 =?utf-8?B?L0NFSXVNbTl0VG5xSFp2ZE9HaE1oMEVaUHBvRXZXVzdmUDJjWWZDQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C372AB8151DCAB4C983EB234040B6FAC@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 473a139d-b018-4dcb-3225-08d9a8ee3db4
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 10:45:43.9184
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /9fpdl+CwNsJWcMcaVXUtXN793POE5xUFMbcnuQkXwVd/ZI+TfTtB+NK4z1pAQTh9JMXnuBMwBbO07bVDK3qd+XduwSmJP56J1JURRLgqnO4R7bOqfuPN2+RuxyLzYgA
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5794
X-Proofpoint-GUID: GyossbfTD6sRIL_6xOFlFjSIESw1VY5P
X-Proofpoint-ORIG-GUID: GyossbfTD6sRIL_6xOFlFjSIESw1VY5P
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-15_16,2021-11-16_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501
 lowpriorityscore=0 malwarescore=0 spamscore=0 adultscore=0 suspectscore=0
 phishscore=0 clxscore=1011 mlxlogscore=999 impostorscore=0 mlxscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111160054

SGksIEdlZXJ0IQ0KDQpPbiAxNi4xMS4yMSAxMTozNiwgR2VlcnQgVXl0dGVyaG9ldmVuIHdyb3Rl
Og0KPiBIaSBPbGVrc2FuZHIsDQo+DQo+IE9uIFRodSwgT2N0IDI4LCAyMDIxIGF0IDg6MTUgQU0g
T2xla3NhbmRyIEFuZHJ1c2hjaGVua28NCj4gPGFuZHIyMDAwQGdtYWlsLmNvbT4gd3JvdGU6DQo+
PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29A
ZXBhbS5jb20+DQo+Pg0KPj4gWGVuLXBjaWJhY2sgZHJpdmVyIHdhcyBkZXNpZ25lZCB0byBiZSBi
dWlsdCBmb3IgeDg2IG9ubHkuIEJ1dCBpdA0KPj4gY2FuIGFsc28gYmUgdXNlZCBieSBvdGhlciBh
cmNoaXRlY3R1cmVzLCBlLmcuIEFybS4NCj4+DQo+PiBDdXJyZW50bHkgUENJIGJhY2tlbmQgaW1w
bGVtZW50cyBtdWx0aXBsZSBmdW5jdGlvbmFsaXRpZXMgYXQgYSB0aW1lLA0KPj4gc3VjaCBhczoN
Cj4+IDEuIEl0IGlzIHVzZWQgYXMgYSBkYXRhYmFzZSBmb3IgYXNzaWduYWJsZSBQQ0kgZGV2aWNl
cywgZS5nLiB4bA0KPj4gICAgIHBjaS1hc3NpZ25hYmxlLXthZGR8cmVtb3ZlfGxpc3R9IG1hbmlw
dWxhdGVzIHRoYXQgbGlzdC4gU28sIHdoZW5ldmVyDQo+PiAgICAgdGhlIHRvb2xzdGFjayBuZWVk
cyB0byBrbm93IHdoaWNoIFBDSSBkZXZpY2VzIGNhbiBiZSBwYXNzZWQgdGhyb3VnaA0KPj4gICAg
IGl0IHJlYWRzIHRoYXQgZnJvbSB0aGUgcmVsZXZhbnQgc3lzZnMgZW50cmllcyBvZiB0aGUgcGNp
YmFjay4NCj4+IDIuIEl0IGlzIHVzZWQgdG8gaG9sZCB0aGUgdW5ib3VuZCBQQ0kgZGV2aWNlcyBs
aXN0LCBlLmcuIHdoZW4gcGFzc2luZw0KPj4gICAgIHRocm91Z2ggYSBQQ0kgZGV2aWNlIGl0IG5l
ZWRzIHRvIGJlIHVuYm91bmQgZnJvbSB0aGUgcmVsZXZhbnQgZGV2aWNlDQo+PiAgICAgZHJpdmVy
IGFuZCBib3VuZCB0byBwY2liYWNrIChzdHJpY3RseSBzcGVha2luZyBpdCBpcyBub3QgcmVxdWly
ZWQNCj4+ICAgICB0aGF0IHRoZSBkZXZpY2UgaXMgYm91bmQgdG8gcGNpYmFjaywgYnV0IHBjaWJh
Y2sgaXMgYWdhaW4gdXNlZCBhcyBhDQo+PiAgICAgZGF0YWJhc2Ugb2YgdGhlIHBhc3NlZCB0aHJv
dWdoIFBDSSBkZXZpY2VzLCBzbyB3ZSBjYW4gcmUtYmluZCB0aGUNCj4+ICAgICBkZXZpY2VzIGJh
Y2sgdG8gdGhlaXIgb3JpZ2luYWwgZHJpdmVycyB3aGVuIGd1ZXN0IGRvbWFpbiBzaHV0cyBkb3du
KQ0KPj4gMy4gRGV2aWNlIHJlc2V0IGZvciB0aGUgZGV2aWNlcyBiZWluZyBwYXNzZWQgdGhyb3Vn
aA0KPj4gNC4gUGFyYS12aXJ0dWFsaXNlZCB1c2UtY2FzZXMgc3VwcG9ydA0KPj4NCj4+IFRoZSBw
YXJhLXZpcnR1YWxpc2VkIHBhcnQgb2YgdGhlIGRyaXZlciBpcyBub3QgYWx3YXlzIG5lZWRlZCBh
cyBzb21lDQo+PiBhcmNoaXRlY3R1cmVzLCBlLmcuIEFybSBvciB4ODYgUFZIIERvbTAsIGFyZSBu
b3QgdXNpbmcgYmFja2VuZC1mcm9udGVuZA0KPj4gbW9kZWwgZm9yIFBDSSBkZXZpY2UgcGFzc3Ro
cm91Z2guDQo+Pg0KPj4gRm9yIHN1Y2ggdXNlLWNhc2VzIG1ha2UgdGhlIHZlcnkgZmlyc3Qgc3Rl
cCBpbiBzcGxpdHRpbmcgdGhlDQo+PiB4ZW4tcGNpYmFjayBkcml2ZXIgaW50byB0d28gcGFydHM6
IFhlbiBQQ0kgc3R1YiBhbmQgUENJIFBWIGJhY2tlbmQNCj4+IGRyaXZlcnMuDQo+Pg0KPj4gRm9y
IHRoYXQgYWRkIG5ldyBjb25maWd1cmF0aW9uIG9wdGlvbnMgQ09ORklHX1hFTl9QQ0lfU1RVQiBh
bmQNCj4+IENPTkZJR19YRU5fUENJREVWX1NUVUIsIHNvIHRoZSBkcml2ZXIgY2FuIGJlIGxpbWl0
ZWQgaW4gaXRzDQo+PiBmdW5jdGlvbmFsaXR5LCBlLmcuIG5vIHN1cHBvcnQgZm9yIHBhcmEtdmly
dHVhbGlzZWQgc2NlbmFyaW8uDQo+PiB4ODYgcGxhdGZvcm0gd2lsbCBjb250aW51ZSB1c2luZyBD
T05GSUdfWEVOX1BDSURFVl9CQUNLRU5EIGZvciB0aGUNCj4+IGZ1bGx5IGZlYXR1cmVkIGJhY2tl
bmQgZHJpdmVyLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtv
IDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEFu
YXN0YXNpaWEgTHVraWFuZW5rbyA8YW5hc3Rhc2lpYV9sdWtpYW5lbmtvQGVwYW0uY29tPg0KPj4g
UmV2aWV3ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4N
Cj4+IFJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+IFRoYW5r
cyBmb3IgeW91ciBwYXRjaCwgd2hpY2ggaXMgbm93IGNvbW1pdCBhNjdlZmZmMjg4MzJhNTk3DQo+
ICgieGVuLXBjaWJhY2s6IGFsbG93IGNvbXBpbGluZyBvbiBvdGhlciBhcmNocyB0aGFuIHg4NiIp
DQo+IGluIHY1LjE2LXJjMS4NCj4NCj4+IC0tLSBhL2RyaXZlcnMveGVuL0tjb25maWcNCj4+ICsr
KyBiL2RyaXZlcnMveGVuL0tjb25maWcNCj4+IEBAIC0xODEsMTAgKzE4MSwzNCBAQCBjb25maWcg
U1dJT1RMQl9YRU4NCj4+ICAgICAgICAgIHNlbGVjdCBETUFfT1BTDQo+PiAgICAgICAgICBzZWxl
Y3QgU1dJT1RMQg0KPj4NCj4+ICtjb25maWcgWEVOX1BDSV9TVFVCDQo+PiArICAgICAgIGJvb2wN
Cj4+ICsNCj4+ICtjb25maWcgWEVOX1BDSURFVl9TVFVCDQo+PiArICAgICAgIHRyaXN0YXRlICJY
ZW4gUENJLWRldmljZSBzdHViIGRyaXZlciINCj4+ICsgICAgICAgZGVwZW5kcyBvbiBQQ0kgJiYg
IVg4NiAmJiBYRU4NCj4+ICsgICAgICAgZGVwZW5kcyBvbiBYRU5fQkFDS0VORA0KPj4gKyAgICAg
ICBzZWxlY3QgWEVOX1BDSV9TVFVCDQo+PiArICAgICAgIGRlZmF1bHQgbQ0KPiBQbGVhc2Ugbm90
ZSB0aGF0IHRoaXMgbWVhbnMgImRlZmF1bHQgeSIgaWYgQ09ORklHX01PRFVMRVM9bi4NCj4gUGVy
aGFwcyB0aGlzIHNob3VsZCBiZSAiZGVmYXVsdCBtIGlmIE1PRFVMRVMiIGluc3RlYWQ/DQpJIGRv
bid0IHJlYWxseSBoYXZlIHN0cm9uZyBvcGluaW9uIG9uIHRoaXMgYW5kIHdpbGwgbGV0IFhlbiBt
YWludGFpbmVycw0Kc3BlYWs6IEBCb3JpcywgQEp1ZXJnZW4gd2hhdCdzIHlvdXIgcHJlZmVyZW5j
ZSBoZXJlPw0KPg0KPj4gKyAgICAgICBoZWxwDQo+PiArICAgICAgICAgVGhlIFBDSSBkZXZpY2Ug
c3R1YiBkcml2ZXIgcHJvdmlkZXMgbGltaXRlZCB2ZXJzaW9uIG9mIHRoZSBQQ0kNCj4+ICsgICAg
ICAgICBkZXZpY2UgYmFja2VuZCBkcml2ZXIgd2l0aG91dCBwYXJhLXZpcnR1YWxpemVkIHN1cHBv
cnQgZm9yIGd1ZXN0cy4NCj4+ICsgICAgICAgICBJZiB5b3Ugc2VsZWN0IHRoaXMgdG8gYmUgYSBt
b2R1bGUsIHlvdSB3aWxsIG5lZWQgdG8gbWFrZSBzdXJlIG5vDQo+PiArICAgICAgICAgb3RoZXIg
ZHJpdmVyIGhhcyBib3VuZCB0byB0aGUgZGV2aWNlKHMpIHlvdSB3YW50IHRvIG1ha2UgdmlzaWJs
ZSB0bw0KPj4gKyAgICAgICAgIG90aGVyIGd1ZXN0cy4NCj4+ICsNCj4+ICsgICAgICAgICBUaGUg
ImhpZGUiIHBhcmFtZXRlciAob25seSBhcHBsaWNhYmxlIGlmIGJhY2tlbmQgZHJpdmVyIGlzIGNv
bXBpbGVkDQo+PiArICAgICAgICAgaW50byB0aGUga2VybmVsKSBhbGxvd3MgeW91IHRvIGJpbmQg
dGhlIFBDSSBkZXZpY2VzIHRvIHRoaXMgbW9kdWxlDQo+PiArICAgICAgICAgZnJvbSB0aGUgZGVm
YXVsdCBkZXZpY2UgZHJpdmVycy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBsaXN0IG9mIFBDSSBCREZz
Og0KPj4gKyAgICAgICAgIHhlbi1wY2liYWNrLmhpZGU9KDAzOjAwLjApKDA0OjAwLjApDQo+PiAr
DQo+PiArICAgICAgICAgSWYgaW4gZG91YnQsIHNheSBtLg0KPj4gKw0KPj4gICBjb25maWcgWEVO
X1BDSURFVl9CQUNLRU5EDQo+PiAgICAgICAgICB0cmlzdGF0ZSAiWGVuIFBDSS1kZXZpY2UgYmFj
a2VuZCBkcml2ZXIiDQo+PiAgICAgICAgICBkZXBlbmRzIG9uIFBDSSAmJiBYODYgJiYgWEVODQo+
PiAgICAgICAgICBkZXBlbmRzIG9uIFhFTl9CQUNLRU5EDQo+PiArICAgICAgIHNlbGVjdCBYRU5f
UENJX1NUVUINCj4+ICAgICAgICAgIGRlZmF1bHQgbQ0KPj4gICAgICAgICAgaGVscA0KPj4gICAg
ICAgICAgICBUaGUgUENJIGRldmljZSBiYWNrZW5kIGRyaXZlciBhbGxvd3MgdGhlIGtlcm5lbCB0
byBleHBvcnQgYXJiaXRyYXJ5DQo+IEdye29ldGplLGVldGluZ31zLA0KPg0KPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgR2VlcnQNClRoYW5rIHlvdSwNCk9sZWtzYW5kcg0KPg0KPiAtLQ0KPiBH
ZWVydCBVeXR0ZXJob2V2ZW4gLS0gVGhlcmUncyBsb3RzIG9mIExpbnV4IGJleW9uZCBpYTMyIC0t
IGdlZXJ0QGxpbnV4LW02OGsub3JnDQo+DQo+IEluIHBlcnNvbmFsIGNvbnZlcnNhdGlvbnMgd2l0
aCB0ZWNobmljYWwgcGVvcGxlLCBJIGNhbGwgbXlzZWxmIGEgaGFja2VyLiBCdXQNCj4gd2hlbiBJ
J20gdGFsa2luZyB0byBqb3VybmFsaXN0cyBJIGp1c3Qgc2F5ICJwcm9ncmFtbWVyIiBvciBzb21l
dGhpbmcgbGlrZSB0aGF0Lg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBM
aW51cyBUb3J2YWxkcw0K


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 10:58:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 10:58:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226243.390891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmwAi-000068-51; Tue, 16 Nov 2021 10:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226243.390891; Tue, 16 Nov 2021 10:58:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmwAi-000061-1a; Tue, 16 Nov 2021 10:58:40 +0000
Received: by outflank-mailman (input) for mailman id 226243;
 Tue, 16 Nov 2021 10:58:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmwAh-00005q-59; Tue, 16 Nov 2021 10:58:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmwAg-0001X3-Vd; Tue, 16 Nov 2021 10:58:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mmwAg-0000HU-IU; Tue, 16 Nov 2021 10:58:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mmwAg-0003u6-Hx; Tue, 16 Nov 2021 10:58:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=PBIlsy3B9zSlBAGp8fe7pRPZUyErIgJZ7H06GGmmudM=; b=poM6c5POsgRVTOsglKF/sVJfV1
	EIJgAzeF9s3qdEh19Bc6WesT2OB6vUYYSI6jsHGC6IQiiT/DzmFOMl9my5GuFVklM2kXya+cVwd54
	+5/CwqQU2QqihZMyHYnWLCHAUVujo9mMNeGiCJYb8xa0EzxH9zaVD/Ue1O+AKwAFbxYk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166152-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166152: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
X-Osstest-Versions-That:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Nov 2021 10:58:38 +0000

flight 166152 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166152/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install    fail pass in 166147

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop  fail in 166147 like 166142
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166147
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166147
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166147
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166147
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166147
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166147
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166147
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166147
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166147
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166147
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166147
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6
baseline version:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6

Last test of basis   166152  2021-11-16 01:52:46 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 11:31:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 11:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226250.390905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmwgE-00049O-Uu; Tue, 16 Nov 2021 11:31:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226250.390905; Tue, 16 Nov 2021 11:31:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmwgE-00049H-Qy; Tue, 16 Nov 2021 11:31:14 +0000
Received: by outflank-mailman (input) for mailman id 226250;
 Tue, 16 Nov 2021 11:31:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmwgD-00049B-UE
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 11:31:13 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aeb18605-46d0-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 12:31:06 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2055.outbound.protection.outlook.com [104.47.0.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-16-8gPQD07eMvaVwK4zC7s9wg-1; Tue, 16 Nov 2021 12:31:02 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3119.eurprd04.prod.outlook.com (2603:10a6:802:10::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 11:31:01 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 11:31:01 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR0P281CA0038.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:48::21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.7 via Frontend Transport; Tue, 16 Nov 2021 11:31:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aeb18605-46d0-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637062263;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=HAF4dnWUTlGBODvANNc/XeWb7Q5R3sebTFH/Ja2y1R4=;
	b=id/bLNhCVII8xZjmkWR9qv2zbDcVhHfRmVVkK6AwJze98X4PLxUYNL8GiNHcT/1VYEwT0E
	exr/a2+YGkq/fHEOfnTxP3yz/AjtP/avXhQjLDPomyNz0eCWx5t7ZCWrJLMHgHxhAlRflZ
	82jYfDZeTlAuKUI0F7EKb0CEUWZAurI=
X-MC-Unique: 8gPQD07eMvaVwK4zC7s9wg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=T6T5bVf+bsq8mbCE7gDwlLjRTcUxTZtBxbmf4XmSYwHyCRmyNF/gmkvQctuuEqRVAA3gx9wHv1KR30u7b4Fr0cz4PzFRJIJUP36hqiHyLuPBuU7f8zLkPVBQNP8EeymSRK2XSKJNORRr8+5+XRp/QFlSmXaaXVkBh66MAtjR01bVaj+d0nCKakx3kTohpf6Li6IxvUDF+Mn+hyUMqgX16nBocdY0qiR4AW4MGPLeuF5o6UEriE+EL2VKrc3hlWJTmMfju7T2M9XQd4b8ZBDl+aQESNelmmq3dd6dRyl7+LrDO/xeeGFF+n0xo3NEfVOjE8iYUKCwoAXVFnS68TCiOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HAF4dnWUTlGBODvANNc/XeWb7Q5R3sebTFH/Ja2y1R4=;
 b=i1hRL/a9Ryb6+4IlpVAmWqf735OiqK8/F9OUCz0f8hpol2kGsowkkDPlsKfICxunSuJvcC1GMBJdCkfNG2apbrrue18//ciOvFhZM3G9Nc0A1hP9+nmAnDF2bSrGraCKc/KXyBYthkUD1bYH2znUHLkzQU2U5mMBgenkY2ezoR3QWFNFFgwZGDt0PUS+BM4lV0TkJmYR0pgRqVvXSI4z4us6qudXEd/ef58J/a0EYjM2jm38/MxWzdvcJprnZrGzX8M8VLYKu6xzFSc/ZRPF1Yjky/dNYWFAVW2cC5x0eoUeLNny7daCs0C8lxR9+CJO6/Rc9tLKSioRzR7VW/cj3Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <01e2d2ed-ad23-f8fb-a8f8-c5998b082ba5@suse.com>
Date: Tue, 16 Nov 2021 12:30:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v3 00/10] direct-map memory map
Content-Language: en-US
To: Julien Grall <julien@xen.org>, Penny Zheng <penny.zheng@arm.com>
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com,
 xen-devel@lists.xenproject.org, sstabellini@kernel.org
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <9f883c45-05ec-f362-57e7-f87741da08d5@suse.com>
 <c9bc50d8-5840-2712-979d-df2b7b56f410@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <c9bc50d8-5840-2712-979d-df2b7b56f410@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0038.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:48::21) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 925ecaa7-4a26-4190-5105-08d9a8f490ed
X-MS-TrafficTypeDiagnostic: VI1PR04MB3119:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3119649692641F68E6357A18B3999@VI1PR04MB3119.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CbmE17TSbWvP6BGVGawo7Ck3fIMkOIlqQspwG5/e87dyZSs9pfnIZ3U3q15ncJLxJzvSz5u58MUSHo74C2cc9Hs6GPrc68qcrAODdsGGVXp4CjEBUFxnHyVK2hwZ3wpZZDypIHZmnKy8OXOhldkJKe8i4wFcRvMXwkcDtoiqFc39v4RqC9OBpMXoYCR7AYPfZVqZeBmnZo1pQf6aaDTmlhfq9RI9mbfrA4sQ/t/6/EiGqAJ3T6LPmiEHvFJrKnuCF8dEnIE0RWKjif8KGAbynOHyWsWzXgWTj1mmanBVFggckchqPWLCZXuFxz5kFsr3xfHd/6E6fDTwNAGZj/XCPSgH/Hqztb7z4TQrnwBek0oxam7f9c5vy+jNM9vKzpiPiZL2fMCJ1V1EL8W/OOvsvRGMON+2+pRuMfawEs+BD9WoFvUT/lj5xUOknWme9NN4ry/ONIuHsQCnj1NQhoFXnHmINof4qHn7T/kgMwN8KlCZT0P+kUYudkdcKhK4F7wT90cu/amPJsRfEzm7PtkAyW60LMYk3Wy5ciTnO1qPZv34giE/KTWm6yDnHDBYmvMzfXtjzemMXMVHr+5m1mBW1yj9Dp8x28hWubXx03e1GoNBDj7nr5vTffnGh8rEXSHCTc4B10WjjtHaICJhZyyBcDQAsickf5Iqbl1kVyMM5PczDWbyLQTJkb/I98FvQ5Hd3ELcwf+EiTk7L1DzKd4jCh9vI/WTUbUrT2LyW52EO2BGeJ0yXZo42uuEZ1ZdALkdFAxdenFsDfOJpXA6rHWgXw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(4326008)(186003)(53546011)(66946007)(316002)(66476007)(66556008)(6486002)(31686004)(508600001)(26005)(86362001)(8936002)(5660300002)(8676002)(16576012)(38100700002)(2906002)(956004)(31696002)(110136005)(2616005)(21314003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?d202YXRlTDl0T0I3VGpMSDhIcVJMV3pIbUgyZGZmQjZZZkRZOU1hSWtZTC9x?=
 =?utf-8?B?OGdYYjF3MW5YaHU3Q291cHRTc3RaZkE3d0l6ZVF2Nkxna2ZVQ0lTNVl1WWdE?=
 =?utf-8?B?em9GaitUd09MMEpzR3B1NGY0aUhSNlZkVmgwd0h4SWM2dlBHQWpGak83R2hv?=
 =?utf-8?B?QUl4b1lHVFpGamJ3aGYwbEVXaGJBcXhwNG55cmtaUWVQUFFrSit5MFh0Vm5U?=
 =?utf-8?B?SHdRREg3Y1ExRGhBVHdGTE4wWTQ2dHI3NXlhYVpCWldhTFVCcGd6b3VLWVBX?=
 =?utf-8?B?dHpoTkttME1uNHNNaW80TFpIOVNIdTdLbllkc3lxb3FrV1pDaU5iaU1TTVk2?=
 =?utf-8?B?b0lsVktFRnh4bWhzUmErOFRIbmNVN1RxaHhoZlFHRXBLeXBocFhlcnl3dXYw?=
 =?utf-8?B?ajZkaGUwdlhBaUZnUE1jZDhoNjBiT0tmaHNiZ25lQ2dOYnRPeWdwY1hGQ0Q5?=
 =?utf-8?B?ckNZSFNsdGNqbFIwdVQxeXNSNzlFcmdlaHhDTWtlWHRpQ1pjRGIvbVVrV0xm?=
 =?utf-8?B?bWx5aXY0eXNmMG5idVR5dVhZNnRsVUVHZ2NMckgyWXVXTk1Ic0FJNmlkVGp4?=
 =?utf-8?B?Ymw1UnQ3RnFkb1NhZUhFL0I4cUdWQ2dVaWVKbTIvejhhekU5NG0wb2pUemln?=
 =?utf-8?B?bThaNll3MXJhR1BIOTd3Qy9xYkFXVEZyV0N2eVBaTmdxTCsycWtINFBROUkw?=
 =?utf-8?B?aUlmTGpQOHlJVmJLRTkvenlCdXdNOGQ3bUYzSTJNL2p2ZnZ5L3BoMUtBWWJI?=
 =?utf-8?B?UTdzZXZjSWJJanEvbEZSN0tBOXUyZHp6emZXQUNhU2ExNStOVlBVUzg5QmdE?=
 =?utf-8?B?Ry94N3ZPcHpuM2E5OHd2a3psd0NhK2NwekpTbEN5N01GMWRLOFhPNk81Z01x?=
 =?utf-8?B?VjVUVUJPOC9KUXZia0JFNEpKWU5WYUdmNno0NXdCT3o4Wk1GTEpzSnBCdlB3?=
 =?utf-8?B?RE9TRXlIaldubGQ0YzF6aE9TcHh0VzlTM0ttLzVqUjErbFQvRTVnV0RKWVo0?=
 =?utf-8?B?eVFQeUpyMUcwWFBXdDdiU3phSklFSkNGeDRlaUdSK1g2dVJFMEVyQ2V1dW02?=
 =?utf-8?B?WWFzQ0pPTkZjSWVXK2tZVE05dDlNQW9LZFVDdCtFeWtRKy8zL0tjV1FFUUk4?=
 =?utf-8?B?QS9LdmZaNEdsRWJPVDFIODVoWjRyTkZBN3Z2dGZlb2NMSHNTdHFqWFRXdnRC?=
 =?utf-8?B?NGVxM1FqRlFkMmdOOEhsd3VoQW5CenVoTUFwNXBIMWNtZUJsbEo0Ylp6ZXMw?=
 =?utf-8?B?dHhwRG5BZXlwcy9Bb214ZDB5MHRBRkUrcG0xdHN4QWkrRThtSmVtbnZpUW93?=
 =?utf-8?B?OEpsSythN0sxNHNPUjFEV0ZpNWVubXphWTlvQjV5YXJjeVpOQTlIOEk2ODZL?=
 =?utf-8?B?b1lkdEpKUGU2ODJlSzgrdEx6ak9qZG8xWVJOUUFTZEtpN1YwM2FndzNETVZu?=
 =?utf-8?B?RWY4akVnVmNiM3Z2SHFaYTJEaHkxdkhueGd3d2FkVXNYcUZkUGZFaFVlRUs4?=
 =?utf-8?B?NDZZM1dHb0dac0pSSHl4VFBucG1hRUw4ZU5kR0U3OTF2WU5LMVU1bUdOV21G?=
 =?utf-8?B?Q0pnK1VEdnNvZXN3OVY5UHoxNWZnR2FsVnIrTkdjUktvTnFQZ3d4c2pWRUJR?=
 =?utf-8?B?N1F2cytJcnZNQ1dlVStodnE0blB0aHY4NStiZmVXWjQxRG5jWHFQYTZBSDd1?=
 =?utf-8?B?RXcrMDNtSnRsTnR6SUpnem1Db25MWDFCVnhFWm52d0lkakk0V1FuQzlBQ084?=
 =?utf-8?B?aVo1M0hQOHd0VW5EWURvRUhvMnd2THZzOHVvTWlYOVQzQnlLMkVhVGlTR2M0?=
 =?utf-8?B?UjdQbU5xUHVjZEJUMS96d3dpZk12blpKUXJveldWMmFPT1ZINHRtU0Jvbkww?=
 =?utf-8?B?ZWYzeVM0dmJSeWVuQXQ3VHRUN0tsdWh5RVRPTU01aldxK1l2ZEkzN21uU0E3?=
 =?utf-8?B?eUxYbE5LWlk0dWtqZFM2MUowRys3NHJwaXdjbFFrd09uWWppNis3ZTZRaTN4?=
 =?utf-8?B?aUZVcnpmdzBCbExBV21PSEhOaTh5aFNYaUM2NVNJZGxjd1ZnR1U5b1N5QnBr?=
 =?utf-8?B?d3hkdHpNRWtYRStxcnN3di9MVmlQSXE3RFQvT2ROQVk4dWNCME0yWW5PdmFr?=
 =?utf-8?B?aytqaWZjOEtBdFJ0R0lNcDhpQmRFcVhGWTRkRldkVnFXdzgvK1RDS0RHWFJK?=
 =?utf-8?Q?5EsDGdqGtasyb1xhYtC1yOM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 925ecaa7-4a26-4190-5105-08d9a8f490ed
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 11:31:00.8693
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XzNNusZf0YiIcnwcDN0eaW2Pr4Jm1OQshe5dy3jgYtg32uSDMWbxf1oTTypiVk2RJvzBJNlZ6ImPV9SOTTBgnw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3119

On 16.11.2021 10:44, Julien Grall wrote:
> On 16/11/2021 07:49, Jan Beulich wrote:
>> On 16.11.2021 07:31, Penny Zheng wrote:
>>> v3 changes:
>>> - move flag XEN_DOMCTL_CDF_INTERNAL_directmap back to xen/include/xen/domain.h,
>>> to let it be only available for domain created by XEN.
>>> - name it with extra "INTERNAL" and add comments to warn developers not
>>> to accidently use its bitfield when introducing new XEN_DOMCTL_CDF_xxx flag.
>>
>> FTR I continue to object to the hijacking of a public interface bit for
>> this purpose. Not to the degree of nak-ing the change, but still.
> 
> I remember this discussion in v1 and I am a bit confused why this was 
> re-introduced. Looking at the thread, I think you and I were happy with 
> the following approach:
> 
>    1) Switch the last parameter of domain_create() (i.e. bool is_priv) 
> to flags.
>    2) Define a bit in the parameter to indicate whether the domain will 
> be direct-mapped.

Indeed, that's how I too would prefer this to be dealt with.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 11:39:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 11:39:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226255.390916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmwnq-0004qf-Nk; Tue, 16 Nov 2021 11:39:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226255.390916; Tue, 16 Nov 2021 11:39:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmwnq-0004qY-Kg; Tue, 16 Nov 2021 11:39:06 +0000
Received: by outflank-mailman (input) for mailman id 226255;
 Tue, 16 Nov 2021 11:39:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmwnp-0004qS-LQ
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 11:39:05 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd12b203-46d1-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 12:39:04 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2176.outbound.protection.outlook.com [104.47.17.176])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-29-9ZBpbmrgNTKGwor-3F-P1A-1; Tue, 16 Nov 2021 12:39:03 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2704.eurprd04.prod.outlook.com (2603:10a6:800:b5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 11:39:01 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 11:39:01 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0301CA0027.eurprd03.prod.outlook.com (2603:10a6:206:14::40) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Tue, 16 Nov 2021 11:39:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd12b203-46d1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637062744;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zDUnvnA/OLQxNwoMNZRHtzENyDI1FPTVxBzcYIaxMdE=;
	b=M3rlfU8OCvvgN/xoRvs2rs001BPgHxsxfx5w001ZjfcI/lX1zUTTxqO2V7TFgsIdV0hGBT
	K4u3BwqOS2ZWMuP9fuJ8ATo1qCT+swSIDT5NXVncz8znPRBrjUHgzyqiDhq7GNWN85JoWI
	jqtoxqxPk5KDWelUBVQJHa1gcH/QRdw=
X-MC-Unique: 9ZBpbmrgNTKGwor-3F-P1A-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IIX3+W8W9f7iQF05Oigg6Ufpy/ayG1JevCakwf5VH3NYY2ZGDW2BuxFHNtEdXw3oE5B3ZEPpHEKmH4pvu+pswK3jk+tLNBn+yc9z4VwO1BwQaMWWbs8ulIPg2sPJGlz4Zuwidx9d/pI2GQ12ClbXDSiD2wRN/qyHnnwF4o1JCzMUzCH5Z80KlIoAay6dkY4p3rH9O+6u9Z0nm1bf3T9gG3uVqRwEmYwKkBPSESzJadg7aZB4Pqlrj0jjG6A9qt192nnWxXI+UvBcYix2ISuZtQdZWIJw3aIrm5n07m2p8tXpdDMDz9bj+DHBpdT0Bl991m7BqQgVsMVeK2d7sBfGVA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QJKE5vr/D4gfhGfldimFjSOhdHdidhHHc1z1RpUaYaY=;
 b=TFN9snr/kSEK4JmqT7SvW73/JezDYPqYG5rB45Y1DfH4LKdgf4sgh0qxQGBuOuEHVnJ2XWgtfHV76PsFKQzuBJGThwmgDTwxaaXFpHqV5MF5uc85KjEWt3lGSX2eoikzR5xH5wYuL6LKFkvnnIigHHq/Qud+nL7w8dv3rDV8Hy/35a+QkTVQqOWzbxLdWF+q8Id4UhLqaCg52hFQ1ZVQwqmEgb2FxRsD434kWjtM4a8NjzEwM7IGJVNAlo6MQ8KvUjDutVQQowpN1FN5ZLbTtRXZm4eEx+w3BJcfSsKBZ2NYg4tXl+PoQbieXFApALL9JYLkvLG0qJOqL2pTfMjMaA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b8de7b20-539b-23e7-1ee4-9a777be296a3@suse.com>
Date: Tue, 16 Nov 2021 12:38:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0301CA0027.eurprd03.prod.outlook.com
 (2603:10a6:206:14::40) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2a9e2d37-39ab-4c55-77d6-08d9a8f5af4a
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2704:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB27044EDC6CD4B0DAD0B5CD7EB3999@VI1PR0402MB2704.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CXJZVNiV4J3NrwWHPz5XaW46dkeIiihxgJQ9lIT0l36BbFC9xKGOPyLtxkg3b944el+Vdljgl0WTe4qDbYujCdfDaE3WOJEIqJ7ZeMus32aw+xnyQdSm5jXN20vLDkDwaxXAtRTFbF5M4b1U1qQJzQyVFIyV2moUpc/amYqtzQPFwMhHCdzuK0gg6ISSEOdWZonh02f4eV8d5z65BQ9Oq8XYtjxAdhomyP2kPUBfBfxqel3yx5i1xbGNwaD6jfYDgvNrx0c97Gv7ySS6NVqq4ZF9hls9WS6rx2V77AfAm7FSBqaRCwyjIkRxYB3XowQubdzsDb782YwHnQZYDywAZCJx6VxHSqTG0FiyNT9eybLn3EWefXqDO+02urLUlH0MwT6jAnFP1YhGmYalE6r0dDgpLoims9ulUpbp6AseK7GEaUxJ1mD+813LLrdTiW3eEzjgf73ZaIC5gOkkh7xk5vlyTn+O2VEYkaxCccGt3GjFlTbiDzJxPEYOG3V5OhbeHUY0+nBRpRwjAf8CL84ibsO29CgTs2uUo0J3cn/i3T2FwqLcJ/4Zhgd0Cl5sduiklw+mO/BdSxrVNZhZX453c0ooAvigLvRkJ082f/klRQiJ1A4tAUKgxN64QqFTn2T4JGscEhkKQkp6ZlWJOywPpCwEoZa/aN/WBvbHmJKUPMM79ifwd/owzNFd2gWC9UeoVTzpaQAlpIRQIDQPehEe+yiL7JE2RbZoNoCVUKLy40bJFmEjrd9K+cfl50RTos4F
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(2616005)(5660300002)(86362001)(54906003)(31696002)(8676002)(186003)(31686004)(16576012)(4326008)(26005)(53546011)(2906002)(83380400001)(6916009)(8936002)(66946007)(66476007)(66556008)(956004)(508600001)(38100700002)(6486002)(7416002)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?X/Oh0QD9kREPN9VN5XlQUmOVza1knaCQdQ2cQbyuqlD4EXRsbB/256tIqt7c?=
 =?us-ascii?Q?uLjfF8gX9esKS2/llIMEVeNZGCehRADl0kIZUGMSTy1Zj8k64wyVrQ554eom?=
 =?us-ascii?Q?h+TFajHphp2Dh8kAVQLXGWXTybLrZNWTPAZFdbzbUcwy5nNOYhBI/fdHmH2E?=
 =?us-ascii?Q?8pSpIFrEmmndbpJOUyFeYBNl1yGv9xyUHK0vFgzJvKw4ZKbM2MdnTrqEuOA4?=
 =?us-ascii?Q?FTj9B5MZQilIgeQltRvqiD9DjQ+LtnTb2PETJCwBVNovoEMvTkfkL7RfY1E1?=
 =?us-ascii?Q?5sonnYzinxBzh2zPYAaDWzlPs/2WzR/lcuUWVkQgMfnss2RnY2HjGgfScukL?=
 =?us-ascii?Q?5cxTBduF6Amhk8M5m2vSSD/XBmnGZ6frncGdH785qYvUPOu/vkA+DrkSwkUQ?=
 =?us-ascii?Q?ljbQ37wf/+OI45IrdsoVFM84s4uLfHmnRkPxp9Do/hNxHyU7qMIntj8oL3/o?=
 =?us-ascii?Q?ffh+BPU3MJEi9u1wIjBnM3a+nFmhRg9wbh1UV3QsIz1VF9p293lQ8OJxwnMJ?=
 =?us-ascii?Q?lHDxrOKTvVVZgYJjxC42AhjGQiAJ+pVZEIgm8Y8c1UeZmJy1dPonaJku8H0P?=
 =?us-ascii?Q?/1OXFwBFs+/igGr0tiQZPrCt5C4lEw44Bgr3YjEDiwbJDzvd5EjH8z4i5FQC?=
 =?us-ascii?Q?O16TXE9ARFzxQwTGnQHtupAS3al3D2hYDSoSW/DSI19PBYbGEyhV3n2xXxNP?=
 =?us-ascii?Q?wWYOgu3NSPhhLseRV8sxBUfzESpVMl29HOY86lKHAEGoQXAeB2c1rKmfhTpO?=
 =?us-ascii?Q?2DWcDSTqbORSok1YRCQOGYW0Lwd4exLIKSPiVVV7HVqKYpB2Bd9qdHF6mgEU?=
 =?us-ascii?Q?vBTaPRrbrocojI39+O1XXH0OJEbffgTEt5Zb9sL8/p3WDwsdLC7iBI+CF3Fg?=
 =?us-ascii?Q?gcl7NUaXWevBWrMmBDGvWcF9TXG+RRDM/Q7HjEpit2b9397xPoOCL8p2gX0q?=
 =?us-ascii?Q?chmV9kQ6WmViaddWSVWWqroC8/enVlcE61L6E6Pk4hFl98KBTHj0j/VXQOr5?=
 =?us-ascii?Q?t7rSImoAUyv3tDazMHUU3vG+bb1EV1/qgqnmrOEQ0aOc6qUrCIGNF/XPxSt6?=
 =?us-ascii?Q?ELS/7fPZzkZ//4zuwgy+DxiEi6qhswfUtu9cLdJ+bE/8wgWzDdp3ena47JlV?=
 =?us-ascii?Q?Ylh7XT0Ew609N9R9RuNYy5/yHulCqrscdOFTPno/OzcGv5Bc8ID4hHDWG72S?=
 =?us-ascii?Q?SNKSS/mEIHzGibXp/w8v2zO6t4BJBm3TNb29zJTPxu2KEB24b5dpaDs7S73u?=
 =?us-ascii?Q?29yyZWMCWILLSVr9vOZjTOj7P7fttCeGc8al7v5rxqLFx9sNoTkMy0uvOFyE?=
 =?us-ascii?Q?skAaiV0QsnpBy/p589In5MO5Aj0CLkRL7v+postvf4f+o2sNzIBcR3vqbFLh?=
 =?us-ascii?Q?xN4HFZ5KVDwqhTrJZS31JghyrHhhXHuHFURjBmwY5tS6vA7/OsnJXmCETr6y?=
 =?us-ascii?Q?ojmvcbvz6csQ+AMq9G+T/P4u4X0mi5YOf+UOddXsorGh7AVmiawa4B6mm764?=
 =?us-ascii?Q?7WkziXNQ2pcgxBun+pmUTT52D8EouWJq5w35pO2SVHX9GdyE7uV+BmS9R/hu?=
 =?us-ascii?Q?0hQBT6/osHRC3vBzJNcXgQytfFtYT5fHp46Dez0pTbvE6DNh5ZiDhVgAjcSO?=
 =?us-ascii?Q?MyShLrR03RKX3mUHX9c7EBQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2a9e2d37-39ab-4c55-77d6-08d9a8f5af4a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 11:39:01.2482
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZNmA2ZB7giUOcW8O/vP3sAwleWmn022dx79rUO4+U+BDLkAL6fFugh+Lf8KDvvA/EOOl5tBbKsvf8sYVM1sS0w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2704

On 16.11.2021 09:23, Oleksandr Andrushchenko wrote:
>=20
>=20
> On 16.11.21 10:01, Jan Beulich wrote:
>> On 16.11.2021 08:32, Oleksandr Andrushchenko wrote:
>>> On 15.11.21 18:56, Jan Beulich wrote:
>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>> @@ -165,6 +164,18 @@ bool vpci_process_pending(struct vcpu *v)
>>>>>        return false;
>>>>>    }
>>>>>   =20
>>>>> +void vpci_cancel_pending(const struct pci_dev *pdev)
>>>>> +{
>>>>> +    struct vcpu *v =3D current;
>>>>> +
>>>>> +    /* Cancel any pending work now. */
>>>> Doesn't "any" include pending work on all vCPU-s of the guest, not
>>>> just current? Is current even relevant (as in: part of the correct
>>>> domain), considering ...
>>>>
>>>>> --- a/xen/drivers/vpci/vpci.c
>>>>> +++ b/xen/drivers/vpci/vpci.c
>>>>> @@ -51,6 +51,8 @@ void vpci_remove_device(struct pci_dev *pdev)
>>>>>            xfree(r);
>>>>>        }
>>>>>        spin_unlock(&pdev->vpci->lock);
>>>>> +
>>>>> +    vpci_cancel_pending(pdev);
>>>> ... this code path, when coming here from pci_{add,remove}_device()?
>>>>
>>>> I can agree that there's a problem here, but I think you need to
>>>> properly (i.e. in a race free manner) drain pending work.
>>> Yes, the code is inconsistent with this respect. I am thinking about:
>>>
>>> void vpci_cancel_pending(const struct pci_dev *pdev)
>>> {
>>>   =C2=A0=C2=A0=C2=A0 struct domain *d =3D pdev->domain;
>>>   =C2=A0=C2=A0=C2=A0 struct vcpu *v;
>>>
>>>   =C2=A0=C2=A0=C2=A0 /* Cancel any pending work now. */
>>>   =C2=A0=C2=A0=C2=A0 domain_lock(d);
>>>   =C2=A0=C2=A0=C2=A0 for_each_vcpu ( d, v )
>>>   =C2=A0=C2=A0=C2=A0 {
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vcpu_pause(v);
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( v->vpci.mem && v->vpc=
i.pdev =3D=3D pdev)
>> Nit: Same style issue as in the original patch.
> Will fix
>>
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ra=
ngeset_destroy(v->vpci.mem);
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 v-=
>vpci.mem =3D NULL;
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vcpu_unpause(v);
>>>   =C2=A0=C2=A0=C2=A0 }
>>>   =C2=A0=C2=A0=C2=A0 domain_unlock(d);
>>> }
>>>
>>> which seems to solve all the concerns. Is this what you mean?
>> Something along these lines. I expect you will want to make use of
>> domain_pause_except_self(),
> Yes, this is what is needed here, thanks. The only question is that
>=20
> int domain_pause_except_self(struct domain *d)
> {
> [snip]
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Avoid racing with other vc=
pus which may want to be pausing us */
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !spin_trylock(&d->hyperc=
all_deadlock_mutex) )
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 retur=
n -ERESTART;
>=20
> so it is not clear what do we do in case of -ERESTART: do we want to spin=
?
> Otherwise we will leave the job not done effectively not canceling the
> pending work. Any idea other then spinning?

Depends on the call chain you come through. There may need to be some
rearrangements such that you may be able to preempt the enclosing
hypercall.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 11:45:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 11:45:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226260.390926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmwtT-0006Dm-D3; Tue, 16 Nov 2021 11:44:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226260.390926; Tue, 16 Nov 2021 11:44:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmwtT-0006Df-A1; Tue, 16 Nov 2021 11:44:55 +0000
Received: by outflank-mailman (input) for mailman id 226260;
 Tue, 16 Nov 2021 11:44:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MDL+=QD=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmwtR-0006DZ-L3
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 11:44:53 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9afd1cc4-46d2-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 12:44:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9afd1cc4-46d2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637063091;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=nardZWGG1P1YTYe1oFA5lTIr3qmqCLubuP8w6bj5YJc=;
  b=C4YEVJ1RPM0evCmuoBWGb8QxW8RbaIN7G7ncvH0wWodH3YzKBWdGZiX7
   T5mzKYvRDM2R/BG/PkGs/bxZmKeKZ8tm8xHJoFSpd8rQPYujjMwM5vuEZ
   ghD9fXDiLObMGmbh/ZA56PCneioDunYnyse1QY1ty7p1HMIgRtVaEbb7D
   Y=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: /1GN+UlrSeg74z2YhxylJ0t2h15GGq//EmMvDai57FY+Zen8AEjet9V14SkVgAGTJXXVyrR6eG
 +KK0peDGpEfcascnhdrTMKyynFsJ48JdFC+sKP3DdeTFb9vJiI8VCtZDjTTHrskacJvsGM2imc
 j+kVsWTnFwQqQ81k1q9Eu3JmWcPsfHjqNitVR0++xFAzomtI+0oTt3tMLg5RfM27EeQ5CJusxd
 L4FTwUEdyamTCefRohGszxR/GujovHuo6XbY5mkGp/jblDhnA8CfWyUufB7oezE+Z076zFFLbE
 4lkB7cN0HgicfG0kgjdCteu6
X-SBRS: 5.1
X-MesageID: 57924085
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:+q5+Q6y2c2i0K93jiPp6t+fOwSrEfRIJ4+MujC+fZmUNrF6WrkVVn
 zdLDGDXPv6Ka2Wmfdt2Po6woENVv5HVzdZiHQVvqiAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrdn2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt9Vvi
 /xpp4yVdT4sPoj2p70FYzJzThgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYIHjW1s3pATdRrYT
 8woaAcsZUXgWQJeEUwSV9Ewn8brpnaqJlW0r3rK/PFqsgA/1jdZ0afvGMrYfMSQQsdYlVreo
 XjJl0zhCwweHMySz3yC6H3ErvDLtTP2XsQVDrLQ3vxgjUCXx2cTIAYLTlb9qv684mauVtQaJ
 0EK9y4Gqakp6FftXtT7Rwe/onOPolgbQdU4LgEhwFjTkOyOuV/fXzVaCG4aADA7iCMobTk0l
 XatjcPMOQVqsJivdiuFxpy/8ArnbED5MlQ+TSMDSAIE5fzqr4cykg/DQ75fLUKlsjHmMWqum
 m7X9UDSk51W1JdWjPvjoTgrlhr1/sCRJjPZ8Dk7SY5MAulRQIe+L7Kl5lHAhRqrBNbIFwLR1
 JTodiX30QzvMX1vvHDdKAnuNOvwjxpgDNE6qQQ3d3XG327zk0NPhagKvFlDyL5Ba67ogwPBb
 k7Joh9275ROJnasZqIfS9vvUJtylfG7TIi4Bqu8gj9yjn5ZLlTvEMZGPxD44owQuBJ0zfFX1
 WmzLK5A8kr2+Yw4lWHrFo/xIJcgxzwkxHO7eHwI50/P7FZqX1bMEe1tGALXNogRtfrYyC2Io
 4c3H5bbkH13DbyhChQ7BKZOdDjm21BgXsuowyGWH8beSjdb9JYJV6WMnOh/ItM9xMy4VI7gp
 xmAZ6OR83Km7VXvIgSWcHFzLrTpWJd0t3UgOiIwe12v3hAejUyHtc/zrrM7Iusq8vJN1/lxQ
 6VXcsmMGK0XGD/G5y4cfd/2q4k7LEanggeHPiyEZjkjfsE/G1yVq4G8Jga/pjMTCieXtNclp
 +Hy3A3sXpdeFR9pC9zbaazzwgrp72Qdgu97Q2DBPsJXJBf36IFvJiGo1q03LsgAJA/t3Dyf0
 wrKUx4UqfOU+90+8cXThLDCpICsSrMsEk1fFmjdzLC3KSiFoTbznd4eCL6FJGmPWnn19aOuY
 fRu48v9aPBXzkxXt4dcEqpwyf5s7dXYuLIHnB9vG2/Gbgr3B+o4cGWGx8RGqoZE2qRd5VmtQ
 kuK99RXZeeJNcfiHAJDLQYpdL3eh/Qdmz2U5vUpOkTqoiRw+ePfA0lVOhCNjg1bLad0b9x5k
 btw5pZO5lztkAcuP/aHkjtQpjaFIXE3Wqk6so0XXd3wgQ0xx1AeOZHRB0caOn1Uhwmg5qXyH
 gKpuQ==
IronPort-HdrOrdr: A9a23:fk9MMKxfJFZwmThRcbObKrPxsOskLtp133Aq2lEZdPULSKKlfp
 GV88jziyWZtN9wYhEdcdDpAtjnfZr5z+8J3WB3B8bfYOCGghrTEGgG1+rfKlLbakjDH4JmpM
 Ndmu1FeaLN5DtB/LbHCWuDYq4dKbC8mcjC74qurAYOPHJXguNbnnxE426gYzxLrWJ9dOME/f
 Snl616T23KQwVoUi33PAhJY8Hz4/nw0L72ax8PABAqrCGIkDOT8bb/VzyVxA0XXT9jyaortT
 GtqX232oyT99WAjjPM3W7a6Jpb3PPn19t4HcSJzuwYMC/lhAqEbJloH5eCoDc2iuey70tCqq
 iBnz4Qe+BIr1/BdGC8phXgnyHmzTYV8nfnjWSVhHPyyPaJDA4SOo5kv8Z0YxHZ400vsJVXy6
 RQxV+UsJJREFfpgDn9z8KgbWArqmOE5V4Z1cIDhX1WVoUTLJVLq5YEwU9TGJAcWArn9YEcFv
 V0Bs203ocWTbqjVQGagoBT+q3oYpxqdS32BnTq+/blnQS+pUoJjHfxn6ck7zA9HJFUcegM2w
 2LCNUvqFh0dL5iUUtKPpZ2fSKGMB2+ffvyChPnHb3GLtBNB5ufke+83F0KjNvaD6DgiqFCwa
 j8bA==
X-IronPort-AV: E=Sophos;i="5.87,239,1631592000"; 
   d="scan'208";a="57924085"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZFIwFQYSFVeLczC0nymvbWcfH7zBnQ+8sGoy7i/RwfYlRvn+ANUyoMGblRfz2NPoewLCCHsupDvX3v5FHEQlWXc2vMkYpPZOzyxEf3TQg4/G8gDe3/YuPEJ61a+Iyuvb9R6SCpMm5OLsjR3ugwC+rD3k7ppo/B5c85XkHnLGLSz5dHIuyHXVJg++86knrwA4MPsX9irMuVASAmkTZ7nxQQ/Z2WPFiZNsE0S8xuUWwxCiAj1zgDMa3dbuzk4g3O8WPWPp5zjduUAIljB4RbeZHIaZ+wYy3vMZVoeLr4JKlAc8arbA3/T75Jn7+HB620sRR5Jz1KBMox7lWK/JCHXCXw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L7SFpqRZCed6/tGh+vkUj1va6T0HaykI1rE/ny4lvvs=;
 b=Gldu34KMzeUhqeCxyQgkbOC/5TMVhhULERby1XDRge4x5ErIiSCSWY7A2NRjFwANi0X0BYQVhaqb6mKS1xyKVvsIB01UiHJ7kxcY2cqgioeCzNI4U52ItkfEFQyf2ETZqfRbhhWfz4VBdWsxaahPupoGvAYCHVnnfCZiD+G01mq9oVRnDJGeItkciAX8IuawPROcdTqhMknb//uUByhHLKC2+KCyY5x7KdJoQUksvrKNr8CH/NzG41oquQmQVbj1qW9I6hOXP4SBshBPt8Fi/nkOtQ/8nemH9mQPHo0sAUeRrj3GkMSO73DgWpXeXkL1jcpTmogKr32BIveIxEQj+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L7SFpqRZCed6/tGh+vkUj1va6T0HaykI1rE/ny4lvvs=;
 b=wVddSI8vxza4a3lp3NTfuDX82Rgh8lLXQMP91Ca+twNLTRt4xQdfUfbSP4WZ/46uJSEtK81t2MqJew8aDODc2Laot7JTTyq1WDErR4lRnnMhqhmQfYKfQpoQlRzwuuhRbHtbPj9KnV/7sN3Lo9UnGsIosbg52PdKHu2CmPdTqbI=
Date: Tue, 16 Nov 2021 12:44:28 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v2.2 1/6][4.16?] x86/x2APIC: defer probe until after
 IOMMU ACPI table parsing
Message-ID: <YZOZnJXpAoEiShfw@Air-de-Roger>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <b752a000-f69c-ad21-d059-90e12fc83553@suse.com>
 <YZJ3y56FFerUa0gu@Air-de-Roger>
 <7c15a5af-9ada-1f99-e728-8e6af22a9b92@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7c15a5af-9ada-1f99-e728-8e6af22a9b92@suse.com>
X-ClientProxiedBy: MR1P264CA0129.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::17) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: cde25091-6566-428d-058f-08d9a8f6783d
X-MS-TrafficTypeDiagnostic: DM5PR03MB3145:
X-Microsoft-Antispam-PRVS: <DM5PR03MB3145B085DFD885E6EE9A016F8F999@DM5PR03MB3145.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: IBK9OiLg7vrEGwBJzFbG1XqQSwSmCLOh8cLme1n1O5gj8PV5pN038UogTnBfgEboPVE01axg9qSzdNjttIah9uJJxw9C3qWuGZ9KDRIwVbBswlThUQvPAtbpubxsDY2HUMrCj12ftw+lWBrKR7MLnqKGTyP/Foytoe/41pGjZ7aZr4POmDHO+bRbXOsg5vH7Nc8SMPlekPtKimKLW5o7zwLRbpHpW2J5va8ASdsUHn4QpbhxK5SINGQtFS9G2F+Z6TIF0PlaTpQ/eUivmxgGbYOPI607FMKyHxc7EkT7V8yX20wsSYcZpZrtGojRqYsHeadAAT9nBFTKtI1P+7rrH/Q5RlkkHYDeT9qk/kgHqnGo2AdcpOlHAK8sSn25tsOYBVHzSnfHXzjaoL1wSDdP4kg+Auc81LSE3Iiwj70YDV3Zwituafk6E5MAmZQIXEP/Z6g9sfeYVdnxTtFHEGiw3hUt9UU6o+cOj701u2IK6MJLn+5tdB6js6rKvx3qab78565sme/SGQ0wlC2vFMSQtodlIWpSZwc9u5i0zp4e6oCqMSg1RwBirz1MvHb856ufap9LyAawwunNJn760vjPmcqLLoKPyzw0E5vLZi0to1zmXFyi1OUFLysPklvR3qIOtUsIZJnsLGORbM8TEAe5cQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(33716001)(316002)(6486002)(186003)(54906003)(83380400001)(9686003)(6496006)(6916009)(26005)(53546011)(4326008)(2906002)(5660300002)(8676002)(86362001)(82960400001)(66946007)(66556008)(66476007)(956004)(38100700002)(8936002)(85182001)(508600001)(6666004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T1FMSHNvQWlEamx6V0lUN1QzU2hzSTkrN3VpNDNwZ1B3U1JHd2FEZjZYUm9V?=
 =?utf-8?B?SkR0N1QydnhKZTVjSEVwSkpkSExHQXR1ZFhJMDJ1eWxYNHJMSndrMjNzcEll?=
 =?utf-8?B?WFBFTWtOOVJlMWFEQmlZb2RRaytiekczY1B5cTRvZy9oUncrc0NvWVRZTnU3?=
 =?utf-8?B?bnhOdkZ4aHZlZXBxa0U2MHo5T1NzRjZXVm5MYy9IK0xlVU5MdVMzSkxGazJU?=
 =?utf-8?B?eHBkQjNYWTBLTGEvSmh6U29kSlFHbkRPZ2xjYnVuSmcxMkdvVUZTUXU3RWt6?=
 =?utf-8?B?akx1Q2ZHeW9xeTdHam5ZdExud2hLbWxzdXE5a2xWVVdNWHhpb3I4WUlnRmhv?=
 =?utf-8?B?eFo5MTFJN1BWVi95UlkrVVJnZXhxZzV0NGhTY2xTRTlKbndnMThEeXNObVZO?=
 =?utf-8?B?TmI3aGlITFdJbGhwb0t3cEVGWDhYZG1jOEdVMUxEdVFtMjloNzd3WWR2WGtV?=
 =?utf-8?B?ZjNtb3hwdGt3Z0t4RzVYZjB4a1grTEU0TVRQWlhjeTZONXRHNi9Ea01Md3dI?=
 =?utf-8?B?NjRxOXQ1VVJkWkdWMWI1UWZ5cVhsUGZtTGxSLzU1bjB1TmNMNXdGSllVVE40?=
 =?utf-8?B?QnQ4cGxOR0N1aG5yZm1LM1l4NHI1VTZFN2swcEFaSzlmV2R6a3BwRVVHbWs2?=
 =?utf-8?B?RlR2VEZ2ZlZvZG1KemMrc3A5RWIrb0NxMGthTXI3c3NGOHJyaUZ5TUcvZ3Y5?=
 =?utf-8?B?YWV1ZGV3Ky8rVS9ZQXlLV2ZQSGdZTmllMXU4WlVjWHhxUFlhR1BENFNnM1VX?=
 =?utf-8?B?UXN6aGYvMlRpUGhUYytwRlBqS0FZMlRxQ2kyZUY5bm1wbkkwcU1VbkNqZUJK?=
 =?utf-8?B?VFFYKzg5RGgyWXRjOUc0UlNSeEplSmR6YVcxOWh6bTBRVExxdExsYSt6bEI3?=
 =?utf-8?B?akd0SkRxNmIrMm1KbGd3S2dMVDVtNGVuKzQ3MFdWMVdrcDlhMVhBVFUrdmZa?=
 =?utf-8?B?b21HRm96cEszN1lBZCtCanBmdlZoT01VQmdjS1hRbXJRZng3bHFETXlGZUEv?=
 =?utf-8?B?ZWtqbGRKSTE3blEwZTNJQmRsQWxZMFhZNGNNY1BLNTZDOStYWFRoUGkzWWR1?=
 =?utf-8?B?SExqeXdvY2l2c2JDUmlGTzNLQXJocEJuaHlQanZvZlg2MVUxNjRYcEdHZmll?=
 =?utf-8?B?YWVHU1dRdVNyam9rTDE2eXVaQ25CTm90dEJPa3J2L25lWjk4S28vS2VJK1NE?=
 =?utf-8?B?TUhPeGhJZmFvSTEwMjRMZytEbUtVVnlvQWdHbGJ1S0FZejJ4ZmJ4RGtrK3B2?=
 =?utf-8?B?eXp3TjdpUEZVUEhLcTY1TU5FSW96LzZXSElMYzgrK1E2RUoxY2tFRmhOUllq?=
 =?utf-8?B?SUxoTDJ6TW1XSk16KzB6WnpSOEZ1WmQ2MzRxcFhXKzRvTUtrdk8vTzcyTHF4?=
 =?utf-8?B?WFNjQnJKalhOQlhwTUJlcWtYR2JCeUo0bk5jekJlZmtlNUdvN2F6U0YveC9n?=
 =?utf-8?B?ZU1BK0tickdBWVR6dTRYS3NwR1lDTG85S2xGV2xPcnZmT09QcThmR0VPNFBq?=
 =?utf-8?B?SmxUODJGNDV0U1JGeFJIdzFrbGQ4cy80OUhRZ21XOUREeW5Ha2ltV2dZWERM?=
 =?utf-8?B?dldEOEdpRlBSaC9yazhxMHJ5UzNwOU5oam55ZjVySWtoTnNreUlqcjlnZkpv?=
 =?utf-8?B?VnZOQlRhTlF3aXREaG5mKzEzeDFiTFR6MDdVYkMxRjNNWDRUNEhMcFdVMDB3?=
 =?utf-8?B?ZUliU2VPZ3JTK1NldU84Qitoa1Y2U0NXV0FIWkxod3FzaG03aXN4VGF2STVT?=
 =?utf-8?B?bmlxZzRMYXlhNU0xVGxoWW1xRW83ZG1WWnNWZERGUVpKV3NPSUVjbVZPMU5q?=
 =?utf-8?B?MW9iWGsvSy9aU0NpaGtJWTZaNFM4Yks4clR3NVhYYXg5UFRvak84V0VVTHRr?=
 =?utf-8?B?OUZ3dWVtdlRxM2R1bVdLcTJrWUVmZWFaSjYrUVhPQ1hISW1tVTV5cW42anJ0?=
 =?utf-8?B?SEc4eHVsTlVnd01CazJZNFA2cFlDekZzaG5odngvS25BQkliT3N3S0lYeUdM?=
 =?utf-8?B?aVVEcnpOOGQrcEgvKzFJT2x1UVB6eGlWdktva1diTnMxQnU1QnJsVGpGcVY4?=
 =?utf-8?B?MW0rU2ZXRFB3UnFqajZuVmJiemxaWVdicnJPNTM3T3RNOFJQMDlmQk4wUE1T?=
 =?utf-8?B?TUJjSWVVRHQ4S1N3QmR5aEk1NW5FWEZxdjdKMEJQQVVRRnB3Smdodng5VmJh?=
 =?utf-8?Q?/T9U3Qb2nM/4aVxJhyNV7QE=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: cde25091-6566-428d-058f-08d9a8f6783d
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 11:44:38.4801
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SWMe9lL+lDeYtW//Yt6ySGWbKXvidp1vJUQmH1iKBOvHI8NqH06wyW/FlOwyqHmErqCd3bgC7Qtev6SFaTGFcw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3145
X-OriginatorOrg: citrix.com

On Mon, Nov 15, 2021 at 05:10:04PM +0100, Jan Beulich wrote:
> On 15.11.2021 16:07, Roger Pau Monné wrote:
> > On Mon, Nov 15, 2021 at 03:31:39PM +0100, Jan Beulich wrote:
> >> While commit 46c4061cd2bf ("x86/IOMMU: mark IOMMU / intremap not in use
> >> when ACPI tables are missing") deals with apic_x2apic_probe() as called
> >> from x2apic_bsp_setup(), the check_x2apic_preenabled() path is similarly
> >> affected: The call needs to occur after acpi_iommu_init(), such that
> >> iommu_intremap getting disabled there can be properly taken into account
> >> by apic_x2apic_probe().
> >>
> >> Note that, for the time being (further cleanup patches following),
> >> reversing the order of the calls to generic_apic_probe() and
> >> acpi_boot_init() is not an option:
> >> - acpi_process_madt() calls clustered_apic_check() and hence relies on
> >>   genapic to have got filled before,
> >> - generic_bigsmp_probe() (called from acpi_process_madt()) needs to
> >>   occur after generic_apic_probe(),
> >> - acpi_parse_madt() (called from acpi_process_madt()) calls
> >>   acpi_madt_oem_check(), which wants to be after generic_apic_probe().
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Thanks.
> 
> >> --- a/xen/arch/x86/setup.c
> >> +++ b/xen/arch/x86/setup.c
> >> @@ -1700,15 +1700,30 @@ void __init noreturn __start_xen(unsigne
> >>  
> >>      dmi_scan_machine();
> >>  
> >> -    generic_apic_probe();
> >> -
> >>      mmio_ro_ranges = rangeset_new(NULL, "r/o mmio ranges",
> >>                                    RANGESETF_prettyprint_hex);
> >>  
> >>      xsm_multiboot_init(module_map, mbi);
> >>  
> >> +    /*
> >> +     * IOMMU-related ACPI table parsing may require some of the system domains
> >> +     * to be usable.
> > 
> > I would be a bit more specific and likely add "...to be usable in
> > order to hide IOMMU PCI devices.".
> 
> Hmm, not sure. I did specifically leave out the "why" part, as dom_io
> might also become required for something. If you nevertheless think
> I should extend the comment, then I'd insist on using "e.g." just
> like I did in the comment next to the call to generic_apic_probe().

My request was mostly to make it clear where dom_io is used, it's IMO
not trivial to spot that pci_ro_device requires the dom_io to be
setup. I'm fine if you want to use 'e.g.', or if you think this is not
helpful.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 12:09:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 12:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226266.390938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmxHP-0000EC-J9; Tue, 16 Nov 2021 12:09:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226266.390938; Tue, 16 Nov 2021 12:09:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmxHP-0000E5-Fg; Tue, 16 Nov 2021 12:09:39 +0000
Received: by outflank-mailman (input) for mailman id 226266;
 Tue, 16 Nov 2021 12:09:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=G1Gk=QD=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mmxHO-0000Dy-AY
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 12:09:38 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0fff80e1-46d6-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 13:09:35 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:47120)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mmxHK-000N0E-hc (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 16 Nov 2021 12:09:34 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 3DA791FAC8;
 Tue, 16 Nov 2021 12:09:34 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0fff80e1-46d6-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <e1efcf93-b633-26f2-31f2-9ee53563a41b@srcf.net>
Date: Tue, 16 Nov 2021 12:09:33 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH v2 0/6] x86: ACPI / APIC / IOMMU interaction
In-Reply-To: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 05/11/2021 12:30, Jan Beulich wrote:
> While reworking patch 1 (the only one here that I consider a candidate
> for 4.16; see there) I stumbled over quite a few things that have long
> been ripe for cleaning up. Hence the tail of 5 further patches ...
>
> 1: x2APIC: defer probe until after IOMMU ACPI table parsing
> 2: APIC: drop clustered_apic_check() hook
> 3: APIC: drop {acpi_madt,mps}_oem_check() hooks
> 4: APIC: drop probe_default()
> 5: APIC: rename cmdline_apic
> 6: ACPI: drop dead interpreter-related code

Patches 2 thru 6 clean up an area I'd recently stumbled upon.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Since they clean up a pile of function pointers, I've pulled them into 
x86-next.


Patch 1 is looking very risky at this point, especially given the late 
correction, and I think it would be wise to wait for 4.17.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 13:28:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 13:28:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226271.390948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmyUx-0007fx-92; Tue, 16 Nov 2021 13:27:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226271.390948; Tue, 16 Nov 2021 13:27:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmyUx-0007fq-5v; Tue, 16 Nov 2021 13:27:43 +0000
Received: by outflank-mailman (input) for mailman id 226271;
 Tue, 16 Nov 2021 13:27:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0oQI=QD=epam.com=prvs=1954156bad=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmyUv-0007fj-Pb
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 13:27:42 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f76f7e39-46e0-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 14:27:39 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AGDL7Gv005074;
 Tue, 16 Nov 2021 13:27:34 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3ccd97023u-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 16 Nov 2021 13:27:34 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM4PR0301MB2195.eurprd03.prod.outlook.com (2603:10a6:200:4f::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Tue, 16 Nov
 2021 13:27:29 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 13:27:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f76f7e39-46e0-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QF+4vyTcwLHK5VetUqhuNydD4qy9p+b+N6rbStLDibXnbz9zFGRrlmbfqAFbxf4vw3c6Yl64bL3X/HliXrONZmCsmBgLjeX2oZb52pUsP4YEC4pe3GZo0g0GUPXxb3WREejDmunl4LRFhKVBb9RM6SF9rAJePBBGGkT1B9l1c6KIqZ4/WsArInI3t8FIA/8UulUsP9DT26qwRYqt8FpsW1jJOGFVoNzKH9U9gWYXdS+5pVJIaDUOa4M1tzqpEORtTuNRCNlbsx7uOxMgCn8AJ0YgU6Z/33ak3ifS1rtrBQSCuWVw2/24WO1tVBciO9EjCrc9C/aCla6pB+nlIUNjGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ti70ImF0/SQrtvJIs5aqcQf+tir2MxpPalw/Ty2FmZU=;
 b=dlXxqMu8TRxrya0oGs60SVRPiUirQNArAIgNGIdVzd1veFlOSg3wPhcw2iyOCQaWVf/E7cStxAIxzeeWLRrpea672/gL8iAxwtDrdfv4AgdeOqysH0U82r4/Zt1jrqloqDza81mbGtEQLWUjRUHcejmrmtb1VUT2fOX14V+oi6yr6g2CjaI9JxCeU0jdoAtTqwFnNvUHkWNmgLrCZTrvhKnU7bJfJESqCDR/WwkvMlQ6EJgRxP3Mgr9AcUVVTon2Gky7wowggf0FSdvRPnBWl+p2xwyN1mxqOPHNewZ/16PxD1N+wyFCZdbNpo5lIUhNkYV283u1TXNWfjmjOdLH9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ti70ImF0/SQrtvJIs5aqcQf+tir2MxpPalw/Ty2FmZU=;
 b=WNOJu7dnm0sVWTJftXotkujalvAokAt1y0ZzeXPeqpOBUGw+5EGplXfR8nRsfenRUWgmsT3KR7DhtUWhNiwQgW7gKG34G/Iu/WtjnaT95uRvzCcb3UZN8uRWQZ1vLrdB2No7TOZxA6zTOF/fZ7u+7pWA8ne/QZxwOtbY1G7rWyid4EsoOREeSjVOK26Vrx+feZCOKGOaLm2EnJUsv5XSy/3KYm2zKmdbrMcMuz1N4jVEvMgYQoJ9/CGl1iaBwMaAFqDoXwEQLCYnIkGHwi5qfEcTBcHi+OoCnt2englhhDFzFSeSoiHR06HvLwCHZ8L1Z0ypDllPR8Hyxh7DXT2e8A==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awE30EAgAD09oCAAAgGAIAABgyAgAA2qYCAAB5PAA==
Date: Tue, 16 Nov 2021 13:27:29 +0000
Message-ID: <cc7fb79b-5a43-3bdc-4621-097a01982f49@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
 <b8de7b20-539b-23e7-1ee4-9a777be296a3@suse.com>
In-Reply-To: <b8de7b20-539b-23e7-1ee4-9a777be296a3@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2432cdce-9571-4ecc-a910-08d9a904d6d1
x-ms-traffictypediagnostic: AM4PR0301MB2195:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM4PR0301MB2195E3BA546F5AAAD725BA14E7999@AM4PR0301MB2195.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 tyRJSMdhb6/0dEYqxJUZXM0dpTsX2BG8dePyEdo9+4BPdcz82SPouU4VtQGGy1mgm4puB//5kSvqGC2iX1kz3aJ2wssmoPPfPBDvNHKC/s5UadpJhRM/FlVRRN8GPApIhYAq5hyfnUo8wyCR1TFNx4VPLM+ywrGT9+ZPQmwRmyL5Q71+ecpCuMb8qrRfZDyXn8D1aq3OcMLR3ijtuzZ38r2sw3GE8hEuL3oclYzqXY4yKqGoxrJ1oxZ9UtCPk73HElRTs3lDjzDZdigvUUNo6yjhjp0VA2QUZRArD5wuDzay9C9vfl+ibeDR3VkBt+yN4f2Jo5PLMrwvUjHH9OHCIMNL/iq7qzK66Og7pOecnPDb1Hraik0/Gs6w0RauYWCVE/nU3IgiGE9hepXcuAL8Pi4Ms8kXiIbihaU8MmT5LZgpvu6qpk44veLOQAFsuClqSayoyKThVQCtBYHaSO4wBWhJsBkF1r725N7nydSgKJ6l4awTCxpMKlIYfJxpZXfbpWSnPGuVWcShXj1ZvfYwyoOlNriSZvKoLnRvR/Y2emlletCWzOoWMPwu0qbB8iO+1NLFrx4mbeyVqNDUM/jgHPTX3H6VJbp+qOIUIQwbBUvvZYd8WCoK8qCivwFxXxjJOmcom2RAXiGBxYscsljTnqgdljhoSgBQqSFKs05+7fFggoHQ1lh6KLu8pderPc65VdXdCbDjTtiWuC2f0whiBmyAynTMNlJvkf7wS06O0x+vBobUFNJTndvhrTME3P3k
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(36756003)(83380400001)(2906002)(6506007)(8676002)(4326008)(5660300002)(7416002)(31696002)(66446008)(66556008)(91956017)(66946007)(71200400001)(64756008)(66476007)(76116006)(38070700005)(508600001)(38100700002)(54906003)(122000001)(186003)(31686004)(110136005)(107886003)(86362001)(26005)(6486002)(6512007)(53546011)(2616005)(316002)(8936002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?enhVUjUzTkN6dzJzaFFkVlhVVzVvNlFzK25FRENWeUVNZnVJRE5lTnFpTG9u?=
 =?utf-8?B?RWJQaVNoTnZNWFVmOERKd3hyWlM3cDVoWEJtY0p5YlJQenBGOVpUUmlBbzJM?=
 =?utf-8?B?Q1dUWDVJTEs4R0N3cXBZUTJCWDIzaXFqTXphTWFQZXA1QWJQRFhjZlc2Z25N?=
 =?utf-8?B?eUNud3o1d05VNnlWM1poTHNLMFo2ekhvWGRJcnRZN2VPNjA4VWJuTEpWWjBT?=
 =?utf-8?B?dnJrOTNHTGUxRjhxMjNoOCtqVFNxSDFabTFidTRzQzc2TU5vVUM3OTRWSW8w?=
 =?utf-8?B?UllSaU5hbS81bytwTjUvS2RVQnltZ2xqaXNaYTdtcUNJTjE5M2c1eTA4VVBK?=
 =?utf-8?B?L0o3VkdaTU5YSjMycUQyOFkyZ1hiRmsvajF6V3ZzYkgxRlY4RC9yQngrc1du?=
 =?utf-8?B?NFpJbTJYVHdhK0xOcE5wZnlSM0owd3ZCV0QveHRPVFNyNXZRTGt3c2NyMDNs?=
 =?utf-8?B?RVQzNlR5WC85dkZGOG1oMC9qMWhiTFlaSFIxb1VHd1NzcHkvWVdab2xnR3FW?=
 =?utf-8?B?Z2wwL2NjSk84bVdGa0NOY1pGUm1hZTJSSGxTNGYydW5xSTBXQnkxRU16UGVm?=
 =?utf-8?B?ZTZZUGNWalpRM3JQcm5PUFZscm9lYnN2ZXpzTjQxaW52cjNpZkFtanc5MHN6?=
 =?utf-8?B?cXp5ODFEVC9sYk1Tbmgrb0tmczlMVHpxOGw1WHNnd3JUSE95T0FVbkg5bXp0?=
 =?utf-8?B?T1J1V1l4THd4aTg3aUhEOUlTeE40Qnd0TDhCelBHSm9WMzVMUEc5a1hGNHli?=
 =?utf-8?B?TituaUhvUkhCV3VCZzNxeG5DUXZoendZN0doZ0kvTUY0eGF6eEZpS2pVK0VU?=
 =?utf-8?B?WEdiSlczS01xVXdVUUhGclJMV1JqVHpJZFU5Q2FDNlZWTThnRXRhUXJ4bVRz?=
 =?utf-8?B?ck5vQWdhRDJqVGNVM2dCZkpLcUY2SnkyRXJuc2NCYjA3cXdDS0RwZ3BDOEpx?=
 =?utf-8?B?VHN0cEw4VlBidUN2bm9sYUVwREJodlYxb1ZObnlySXRicG10QWJ3Mkh1Tmkx?=
 =?utf-8?B?aXhKUzUwYVVsZ1VGMzdOSTZSNVA0RkRDYW5lZXluK250QzUvNG1wRkxnc3hI?=
 =?utf-8?B?SDdid1F0ZWhESkpDcXMyaUE2VTc1cTExZGRwc2FDa21mOFdMeWpWNkNxVzJZ?=
 =?utf-8?B?S3lrTUZXV1NQTVUyWHBUODErT2g1RzB1azgyZndSTndsa2dEbFNidEtOd1p2?=
 =?utf-8?B?eFhOeEs4dUdaalArRUxBb3J0OWJmNHQySk5iZGJwU3Q5NEVvbkQrSVkxek52?=
 =?utf-8?B?TzZ1eEMyWGFVTklrYkdRSUtHemJEOWlLakNCYWtFdXpFT1FqZzlYcldQajhs?=
 =?utf-8?B?eWlMQWJURjFTSyt4OHNUUVdBZzh3T2VJYUFlak8yN2piS2JNajhxOFdGaGRl?=
 =?utf-8?B?UzlmRm13V3o2RE5xUWlTUGc0aG5EVDJlVnhCRjA3N2hMRFdDODJSaVpESUZE?=
 =?utf-8?B?Rzh3MXdoWlM5Yi84aHNJZWRLY1R4WUhrTHcrSEhzZm9TSnlCdkpYNld3Yit2?=
 =?utf-8?B?dk1xenJmZ0ZzK1hmcDBlVUUwRWxzT3NGL2tXS0VuNUk3UXJ0TmJDNkluR2ly?=
 =?utf-8?B?dDZJclByOXdTWlhwZFZrVTZjV2NCeWg3RnNZcEhOVFBXYnhidWZOSzg0NitT?=
 =?utf-8?B?bTdhZmJuR0ZFYWhaVjZYRUxUdGE4UXQvY0h2bzQvZFN0T0JKZlg5RDh0ZnJs?=
 =?utf-8?B?eXAwekN5dmNieVdsNWRoNjg3MGh1a2VDWFF4ekJmV3JwdnRhMWIwb1lQYWgr?=
 =?utf-8?B?RnhSdTZjQ2lRaWxZZDJHRVY3WWlkWVpiWHc4T21pNkhnaUVXR2xobkhxQ09r?=
 =?utf-8?B?VUJyTmJuSDlhcnU2K1hQVWIrK2diV1N2YXpvT0tFSFh0ZkVuTWVURFZ6NW5D?=
 =?utf-8?B?d1VrT21QTHU2T2tpRzRQa0tJRGVLK0VmQU5uNFBseXBRb1NlRUJCZHMzckhZ?=
 =?utf-8?B?Y3B3ZnJrWSt1K2VDYisxRzdTc0JUbzlZWW9xNGlvT1NJeFI3cE1NbWtNcHhT?=
 =?utf-8?B?UmFla0tuUCtHeWFVTHp2eHBPeWhFdWlsc1gwc3RKcXNGbjZyZ0xzUjRMMTd1?=
 =?utf-8?B?K3BHQ0hNMU0wWWVjbUppQndqTnlUWTdhcTlveHh0SWlZMHpvM0hTcjBGaHdq?=
 =?utf-8?B?V2FjRVlEUEt2NGNMZEJHekVRZ1A3ZzQyRW1mZWVuZWRrbTM4c0RDbHpPWkFH?=
 =?utf-8?B?S1lxdStJb0VkOGZPQ05TRE05WDlPUVVRbytMYitVZGtQaDN5NzQzZkdvV251?=
 =?utf-8?B?OGw3V255T2w4TUVqWVdkNyt3MHpJcmY3UHF6UlZXSUNqRE04VFA1R2hXUDZY?=
 =?utf-8?B?RlhYVTdhTWl0S0FHUkxFcmZ4VzN1YUhLTU4wZVRJVkZ4elowWjI3QT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4C44341D34DDED4D9FA6531310588E5C@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2432cdce-9571-4ecc-a910-08d9a904d6d1
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 13:27:29.6801
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /9QqPp+MBspjr80+/q8/j8Z6vQszFsO2qGxqETFOEZO898lJARzqmfYaahplrmusTSYkhvouVxt1Uh3kPFy+5hlsxkaa6u6u024TEkLQ0zohbqYpVVXIw6YhxzD597yw
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0301MB2195
X-Proofpoint-ORIG-GUID: GDygQeI9Hp9q-DTbE29c2r86_-NdYnQI
X-Proofpoint-GUID: GDygQeI9Hp9q-DTbE29c2r86_-NdYnQI
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-16_02,2021-11-16_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0
 priorityscore=1501 clxscore=1015 adultscore=0 impostorscore=0
 lowpriorityscore=0 mlxlogscore=999 mlxscore=0 phishscore=0 malwarescore=0
 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111160068

DQoNCk9uIDE2LjExLjIxIDEzOjM4LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTYuMTEuMjAy
MSAwOToyMywgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMTYuMTEu
MjEgMTA6MDEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDE2LjExLjIwMjEgMDg6MzIsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAxNS4xMS4yMSAxODo1NiwgSmFu
IEJldWxpY2ggd3JvdGU6DQo+Pj4+PiBPbiAwNS4xMS4yMDIxIDA3OjU2LCBPbGVrc2FuZHIgQW5k
cnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBAQCAtMTY1LDYgKzE2NCwxOCBAQCBib29sIHZwY2lf
cHJvY2Vzc19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2KQ0KPj4+Pj4+ICAgICAgICAgcmV0dXJuIGZh
bHNlOw0KPj4+Pj4+ICAgICB9DQo+Pj4+Pj4gICAgIA0KPj4+Pj4+ICt2b2lkIHZwY2lfY2FuY2Vs
X3BlbmRpbmcoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+Pj4+Pj4gK3sNCj4+Pj4+PiAr
ICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAvKiBD
YW5jZWwgYW55IHBlbmRpbmcgd29yayBub3cuICovDQo+Pj4+PiBEb2Vzbid0ICJhbnkiIGluY2x1
ZGUgcGVuZGluZyB3b3JrIG9uIGFsbCB2Q1BVLXMgb2YgdGhlIGd1ZXN0LCBub3QNCj4+Pj4+IGp1
c3QgY3VycmVudD8gSXMgY3VycmVudCBldmVuIHJlbGV2YW50IChhcyBpbjogcGFydCBvZiB0aGUg
Y29ycmVjdA0KPj4+Pj4gZG9tYWluKSwgY29uc2lkZXJpbmcgLi4uDQo+Pj4+Pg0KPj4+Pj4+IC0t
LSBhL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jDQo+Pj4+Pj4gKysrIGIveGVuL2RyaXZlcnMvdnBj
aS92cGNpLmMNCj4+Pj4+PiBAQCAtNTEsNiArNTEsOCBAQCB2b2lkIHZwY2lfcmVtb3ZlX2Rldmlj
ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+Pj4+PiAgICAgICAgICAgICB4ZnJlZShyKTsNCj4+
Pj4+PiAgICAgICAgIH0NCj4+Pj4+PiAgICAgICAgIHNwaW5fdW5sb2NrKCZwZGV2LT52cGNpLT5s
b2NrKTsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICB2cGNpX2NhbmNlbF9wZW5kaW5nKHBkZXYpOw0K
Pj4+Pj4gLi4uIHRoaXMgY29kZSBwYXRoLCB3aGVuIGNvbWluZyBoZXJlIGZyb20gcGNpX3thZGQs
cmVtb3ZlfV9kZXZpY2UoKT8NCj4+Pj4+DQo+Pj4+PiBJIGNhbiBhZ3JlZSB0aGF0IHRoZXJlJ3Mg
YSBwcm9ibGVtIGhlcmUsIGJ1dCBJIHRoaW5rIHlvdSBuZWVkIHRvDQo+Pj4+PiBwcm9wZXJseSAo
aS5lLiBpbiBhIHJhY2UgZnJlZSBtYW5uZXIpIGRyYWluIHBlbmRpbmcgd29yay4NCj4+Pj4gWWVz
LCB0aGUgY29kZSBpcyBpbmNvbnNpc3RlbnQgd2l0aCB0aGlzIHJlc3BlY3QuIEkgYW0gdGhpbmtp
bmcgYWJvdXQ6DQo+Pj4+DQo+Pj4+IHZvaWQgdnBjaV9jYW5jZWxfcGVuZGluZyhjb25zdCBzdHJ1
Y3QgcGNpX2RldiAqcGRldikNCj4+Pj4gew0KPj4+PiAgICDCoMKgwqAgc3RydWN0IGRvbWFpbiAq
ZCA9IHBkZXYtPmRvbWFpbjsNCj4+Pj4gICAgwqDCoMKgIHN0cnVjdCB2Y3B1ICp2Ow0KPj4+Pg0K
Pj4+PiAgICDCoMKgwqAgLyogQ2FuY2VsIGFueSBwZW5kaW5nIHdvcmsgbm93LiAqLw0KPj4+PiAg
ICDCoMKgwqAgZG9tYWluX2xvY2soZCk7DQo+Pj4+ICAgIMKgwqDCoCBmb3JfZWFjaF92Y3B1ICgg
ZCwgdiApDQo+Pj4+ICAgIMKgwqDCoCB7DQo+Pj4+ICAgIMKgwqDCoMKgwqDCoMKgIHZjcHVfcGF1
c2Uodik7DQo+Pj4+ICAgIMKgwqDCoMKgwqDCoMKgIGlmICggdi0+dnBjaS5tZW0gJiYgdi0+dnBj
aS5wZGV2ID09IHBkZXYpDQo+Pj4gTml0OiBTYW1lIHN0eWxlIGlzc3VlIGFzIGluIHRoZSBvcmln
aW5hbCBwYXRjaC4NCj4+IFdpbGwgZml4DQo+Pj4+ICAgIMKgwqDCoMKgwqDCoMKgIHsNCj4+Pj4g
ICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByYW5nZXNldF9kZXN0cm95KHYtPnZwY2kubWVtKTsN
Cj4+Pj4gICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2LT52cGNpLm1lbSA9IE5VTEw7DQo+Pj4+
ICAgIMKgwqDCoMKgwqDCoMKgIH0NCj4+Pj4gICAgwqDCoMKgwqDCoMKgwqAgdmNwdV91bnBhdXNl
KHYpOw0KPj4+PiAgICDCoMKgwqAgfQ0KPj4+PiAgICDCoMKgwqAgZG9tYWluX3VubG9jayhkKTsN
Cj4+Pj4gfQ0KPj4+Pg0KPj4+PiB3aGljaCBzZWVtcyB0byBzb2x2ZSBhbGwgdGhlIGNvbmNlcm5z
LiBJcyB0aGlzIHdoYXQgeW91IG1lYW4/DQo+Pj4gU29tZXRoaW5nIGFsb25nIHRoZXNlIGxpbmVz
LiBJIGV4cGVjdCB5b3Ugd2lsbCB3YW50IHRvIG1ha2UgdXNlIG9mDQo+Pj4gZG9tYWluX3BhdXNl
X2V4Y2VwdF9zZWxmKCksDQo+PiBZZXMsIHRoaXMgaXMgd2hhdCBpcyBuZWVkZWQgaGVyZSwgdGhh
bmtzLiBUaGUgb25seSBxdWVzdGlvbiBpcyB0aGF0DQo+Pg0KPj4gaW50IGRvbWFpbl9wYXVzZV9l
eGNlcHRfc2VsZihzdHJ1Y3QgZG9tYWluICpkKQ0KPj4gew0KPj4gW3NuaXBdDQo+PiAgIMKgwqDC
oMKgwqDCoMKgIC8qIEF2b2lkIHJhY2luZyB3aXRoIG90aGVyIHZjcHVzIHdoaWNoIG1heSB3YW50
IHRvIGJlIHBhdXNpbmcgdXMgKi8NCj4+ICAgwqDCoMKgwqDCoMKgwqAgaWYgKCAhc3Bpbl90cnls
b2NrKCZkLT5oeXBlcmNhbGxfZGVhZGxvY2tfbXV0ZXgpICkNCj4+ICAgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCByZXR1cm4gLUVSRVNUQVJUOw0KPj4NCj4+IHNvIGl0IGlzIG5vdCBjbGVhciB3aGF0
IGRvIHdlIGRvIGluIGNhc2Ugb2YgLUVSRVNUQVJUOiBkbyB3ZSB3YW50IHRvIHNwaW4/DQo+PiBP
dGhlcndpc2Ugd2Ugd2lsbCBsZWF2ZSB0aGUgam9iIG5vdCBkb25lIGVmZmVjdGl2ZWx5IG5vdCBj
YW5jZWxpbmcgdGhlDQo+PiBwZW5kaW5nIHdvcmsuIEFueSBpZGVhIG90aGVyIHRoZW4gc3Bpbm5p
bmc/DQo+IERlcGVuZHMgb24gdGhlIGNhbGwgY2hhaW4geW91IGNvbWUgdGhyb3VnaC4gVGhlcmUg
bWF5IG5lZWQgdG8gYmUgc29tZQ0KPiByZWFycmFuZ2VtZW50cyBzdWNoIHRoYXQgeW91IG1heSBi
ZSBhYmxlIHRvIHByZWVtcHQgdGhlIGVuY2xvc2luZw0KPiBoeXBlcmNhbGwuDQpXZWxsLCB0aGVy
ZSBhcmUgdGhyZWUgcGxhY2VzIHdoaWNoIG1heSBsZWFkIHRvIHRoZSBwZW5kaW5nIHdvcmsNCm5l
ZWRzIHRvIGJlIGNhbmNlbGVkOg0KDQpNTUlPIHRyYXAgLT4gdnBjaV93cml0ZSAtPiB2cGNpX2Nt
ZF93cml0ZSAtPiBtb2RpZnlfYmFycyAtPiB2cGNpX2NhbmNlbF9wZW5kaW5nIChvbiBtb2RpZnlf
YmFycyBmYWlsIHBhdGgpDQoNClBIWVNERVZPUF9wY2lfZGV2aWNlX2FkZCAtPiBwY2lfYWRkX2Rl
dmljZSAoZXJyb3IgcGF0aCkgLT4gdnBjaV9yZW1vdmVfZGV2aWNlIC0+IHZwY2lfY2FuY2VsX3Bl
bmRpbmcNCg0KUEhZU0RFVk9QX3BjaV9kZXZpY2VfcmVtb3ZlIC0+IHBjaV9yZW1vdmVfZGV2aWNl
IC0+IHZwY2lfcmVtb3ZlX2RldmljZSAtPiB2cGNpX2NhbmNlbF9wZW5kaW5nDQoNClNvLCB0YWtp
bmcgaW50byBhY2NvdW50IHRoZSBNTUlPIHBhdGgsIEkgdGhpbmsgYWJvdXQgdGhlIGJlbG93IGNv
ZGUNCg0KIMKgwqDCoCAvKg0KIMKgwqDCoMKgICogQ2FuY2VsIGFueSBwZW5kaW5nIHdvcmsgbm93
Lg0KIMKgwqDCoMKgICoNCiDCoMKgwqDCoCAqIEZJWE1FOiB0aGlzIGNhbiBiZSBjYWxsZWQgZnJv
bSBhbiBNTUlPIHRyYXAgaGFuZGxlcidzIGVycm9yDQogwqDCoMKgwqAgKiBwYXRoLCBzbyB3ZSBj
YW5ub3QganVzdCByZXR1cm4gYW4gZXJyb3IgY29kZSBoZXJlLCBzbyB1cHBlcg0KIMKgwqDCoMKg
ICogbGF5ZXJzIGNhbiBoYW5kbGUgaXQuIFRoZSBiZXN0IHdlIGNhbiBkbyBpcyB0byBzdGlsbCB0
cnkNCiDCoMKgwqDCoCAqIHJlbW92aW5nIHRoZSByYW5nZSBzZXRzLg0KIMKgwqDCoMKgICovDQog
wqDCoMKgIHdoaWxlICggKHJjID0gZG9tYWluX3BhdXNlX2V4Y2VwdF9zZWxmKGQpKSA9PSAtRVJF
U1RBUlQgKQ0KIMKgwqDCoMKgwqDCoMKgIGNwdV9yZWxheCgpOw0KDQogwqDCoMKgIGlmICggcmMg
KQ0KIMKgwqDCoMKgwqDCoMKgIHByaW50ayhYRU5MT0dfR19FUlINCiDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgICJGYWlsZWQgdG8gcGF1c2UgdkNQVXMgd2hpbGUgY2FuY2VsaW5nIHZQQ0kg
bWFwL3VubWFwIGZvciAlcHAgJXBkOiAlZFxuIiwNCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgICZwZGV2LT5zYmRmLCBwZGV2LT5kb21haW4sIHJjKTsNCg0KSSBhbSBub3Qgc3VyZSBob3cg
dG8gaGFuZGxlIHRoaXMgb3RoZXJ3aXNlDQpAUm9nZXIsIGRvIHlvdSBzZWUgYW55IG90aGVyIGdv
b2Qgd2F5Pw0KPg0KPiBKYW4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 13:41:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 13:41:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226277.390959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmyiU-0001UK-HE; Tue, 16 Nov 2021 13:41:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226277.390959; Tue, 16 Nov 2021 13:41:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmyiU-0001UD-EF; Tue, 16 Nov 2021 13:41:42 +0000
Received: by outflank-mailman (input) for mailman id 226277;
 Tue, 16 Nov 2021 13:41:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0oQI=QD=epam.com=prvs=1954156bad=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmyiS-0001U7-Rh
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 13:41:40 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb633fbd-46e2-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 14:41:38 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AGDD24Y030799;
 Tue, 16 Nov 2021 13:41:34 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2109.outbound.protection.outlook.com [104.47.17.109])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ccd2788f0-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 16 Nov 2021 13:41:34 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4579.eurprd03.prod.outlook.com (2603:10a6:208:c5::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Tue, 16 Nov
 2021 13:41:30 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 13:41:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb633fbd-46e2-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LJ5mOTlnzYYi7HhVK9972iTJYRe20EfwP13o9qZWH8TDm2uErYt4sXQMAQSAiQFXTlSiF1atuNWJB9SdJboWIgFv5enIXym3XRKFs12D4j+sjdhr8YI8H9UB/ktCi0l/xviu7lCENQTUSEfciAeTq8X8wFreWJs4gNX1lUTNsZ0PwHnesGLU3HH75X3/mIkob6ltNWHJxqymJrrCUKh9FXmiB0EnBY4p/zBX6a9MPdkSZP7lkBr85Ig1ycbB615IokJYqLhKGXGrlM5hmwhWZOn9xIHglcC92d30l8mPZUbuJaYH9tWsFN4Z5EswaSivi5o+OR6b0ZbumPyOYzXi8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3TO7qUF6d0KnACzIH4mdxDQsOkzpgR0lYLPc5a6UECY=;
 b=NvuvTtOHHM8bK+B+nVzMtrU92pc+MkBf4zRNf9hFz0Hfz/Rkfip9QYQFdDtJ152mA+EBmocQyVGD5el3elXsOP3mdnlsOaOZyzhORKWuSye6Qe+NMS1ENmUmyYdw+ABD/ZqjyweJ2ksdh3/gp23DvpmLFKFAaLpSIgsNzAJZsn/voLWZK7S5del7sgiivVQcEGDieGwwkFbUmZ6DkPKNBaTFCLWY7ETDnjRgwXRhdr3uvDktTjAs4EoVHCEs2cHIyVl1o/5hCe+zFh+4eHFcBCtnM30/72VQg3gJE+DxKZU2HkgKggPRvuxt5mDL1ORmZl9q7rf5NlTh8CWIES0bgw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3TO7qUF6d0KnACzIH4mdxDQsOkzpgR0lYLPc5a6UECY=;
 b=pQylPmVa4YpZIX9waHD+f6zqyovEOfkEo7xoadl/uHpHiZ/EI5ZIwSYlIJ+GhEwwTW26D6nZBfWWMCLxafUpwFozaAqLFMUuvC32vK+eSaVRgtJyPxHm1pwN5d3AKyx41YxUINZxgEavRq6dTxA7X8WPCQf3Idl8QWzCMfDzBCqMoCk+IpWFf5vo45nszqu5vJi+2mvtbJ1JpdpHhiesA3mXy7rPe7orW1Ma5ZQspn1BDwRpAb5+Np/QyF0wTMskaq8UDUfaIYBDjkG/VjjIqQj1+SstswSQx5m9AxLYz+paUnSiJS8do94WdRaxdoY/YL3S5ap5ixMf8ZJSRJpTGw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: AQHX0hJIYALl/D9fL0OD6N0XGDJh2awE30EAgAD09oCAAAgGAIAABgyAgABY44A=
Date: Tue, 16 Nov 2021 13:41:29 +0000
Message-ID: <ad01ebdc-7fb8-3c76-d953-08b73b4b0c25@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
In-Reply-To: <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 637351ba-ec92-44ee-725d-08d9a906cbb9
x-ms-traffictypediagnostic: AM0PR03MB4579:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB457972F98AD4EFA3CC9DDC2AE7999@AM0PR03MB4579.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 ZXKDuHSWiKU5v8Myfc+Z2z70dU/2QQJNE1LJB0+qZjEfWQX4f20yKfkttpqrkH091be6UsujZGbqYgMlfy7kcjRDb6gbHjv2uOTGf8lof2KtIm82FXYuFm8nXeE1WK8Bpkyx5NlQBUirThZtn8Ns/fHlHX8XJAaKHw4SyZgfwDy+as4IB3j6aR/P5dJvHB8rVYBt50Vn1oa4WvqF3Z1FEgjdTaF7yHii4S8VFP5CnfMv3mEepgatonQZInA9QjvC2o8YrvvsYDW1bd0VGpWxrqvJC2JxqVQrXjdskCeKTYnQVvjIfDEbFi0LT/dC2Kfzq0PNc8F79gwtAzl61l+ko1oE3sQtNcEhxh2rK0fkpCMaZ5hwtRywE88AD5HsxRuUws2+CaASjp17EDd03zaX+6b4S6L7abWukw/iFxW6XMwUZGrZXOzBV/tLgbP5759zXwSSo9PquVVRrpL7Qbfm5xCqlTcGxukTSnpnaLV4g79Mx96tC1IXN4LGi/rbgieBP4BC/AMrvDQkdn/rVQGa6pztrkbqTNL+ifZC1Ze0h4o11hZNYGNZ5qlgF+vwNlUU+JGGA/6oBUEko2LgFiKb3MOEN3s6c8msMiQPxcwCilgSAHX3F9m/KOHkQTxDVwYslkqy82+Vu4fatBvqxIfkFRUmr0/b8YlCPoy+zdvq2HrFOApWTN9o/O2iEGsHRy8NvlRGB5IJApTtY5JojgKsN53jew61tA2DRFUe3+RJg9t2pldjV9kc7NXogwj5/mci
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66946007)(54906003)(8676002)(316002)(86362001)(110136005)(6512007)(186003)(76116006)(31696002)(91956017)(31686004)(7416002)(122000001)(2616005)(508600001)(5660300002)(6506007)(83380400001)(38100700002)(107886003)(53546011)(71200400001)(8936002)(66476007)(2906002)(64756008)(66556008)(38070700005)(26005)(66446008)(4326008)(6486002)(36756003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?YWpKdXVwd2U2d0grVG9tQm94YzhRd1YvRklKRm1lV1N4WnRJaEVRQ2VFdkY5?=
 =?utf-8?B?bFg1NjNqNHY2N0tDcHFEaGo1Qkg4b2hUenJXTmxmL1dhNlhGRHVibXh5RjRv?=
 =?utf-8?B?TXZjSkNKcVNWdUJaT0xjbEhIZ2dzTEpDVmtOVmpBREU4aHpublJoNGtaU05w?=
 =?utf-8?B?eTNBM2V3SnZnaVVFeS9CaWpMRVFuZ1ZqUGZQdGdhZldVa2JUbURHQ1RscEtT?=
 =?utf-8?B?aTkxN2c5ZkNFVWdrUnlYc2ZFa090Lzd4eDFIVFF2QnBKV2M4Y0I2L2gvZmNv?=
 =?utf-8?B?QUI0dmw2L0dveGN3djgvSEZVZlZrUThHVGtWRFM5UFdMb0twbmVad0syU0Fa?=
 =?utf-8?B?cUxjK3FrTk5OQ25uN1BHSXpQSGFWRzh1emwvckRiSVlKUVJoSlpxZU9ZOVp3?=
 =?utf-8?B?Q1NVS3dsOFVTTFMrODF4VG9wY0wvZU1VdlQvWFdVcWNZeGJJV0l5QkZ6SXhr?=
 =?utf-8?B?UTBvdkZybXp0QlY1MlNQYVltM1J6RTJQTThBLzBqTnB5clIzbHIyUThkYmZL?=
 =?utf-8?B?RkYyaEM3UjFVZlhoeW9ZMURtRXZxWXZ6SnpQUk5GRFRhVjErRDFRVWZoOVlB?=
 =?utf-8?B?cDlnQWwyeWRZdFYrMTB1NmdXblZQdW5uVVA4Y25sSFdzUkdWL0JKKzRKakhm?=
 =?utf-8?B?UlBNNmZBY0pnLzZ6K2ZTR1NVZHRRRU1vbVJGekdMYmhSQUJuSnZRbkw1WmJL?=
 =?utf-8?B?UGIrSXBIZ2w1cmY4RHEwWTZYUzJHcTMwdG5lb0p2MTFQbWJxUllCRzFFelky?=
 =?utf-8?B?WjJsMGJQendlWmdLeVlScVpRcThNelpNR3kzN2dnZ1NEUjNLVERZZ1RFRG9Q?=
 =?utf-8?B?ZnFabUtMbFpIVjV6V3R3QWdsQ1RaaC9oUzFmYjJrcWdsLy95VGhEeitLT3A0?=
 =?utf-8?B?b2lmcytSZmo2cXFteTU4NUp1WFk2TmN1aDlLejhROGRyYmZBWDIwcjhTUmRm?=
 =?utf-8?B?S01lZ213WjJDaFVTNlZjeTdjbkJJVWpvQmhxN1BaN0czdUhJMmJ0UlNhYi91?=
 =?utf-8?B?cTRHZWR5T3JtdU55ZS9pVzUxRGszMUlCMmhYcE8ySjk5YVp4bVArZ1d4dU5Z?=
 =?utf-8?B?azJnNGU1bFoxMnN5eEt6WEFuUVNJRHFJcVkvVDUvNXlyMURuTnB6ZnF0Vklz?=
 =?utf-8?B?NEEveW1ZMkgxWndzYktpWDFQZXRVWXdMTzBSRmJmN2RvdnFnT3NxZ2ZGRVds?=
 =?utf-8?B?VTlnUHlML0pEc3p6TEFUZGVHdFdQUWozdUlEVlRvNFd6eTRnNGlaZVQycEV4?=
 =?utf-8?B?UEZIRHVsK01LckJJQkJYeStOZHFNVHZPS2NOVnE5S3NnQUZqeEIwVGJpaEMz?=
 =?utf-8?B?aGlrY2wvSTMrN005Kzk3RXlKQlcxTmE3ZU5vMFJiM09UYVBKM2RpUUhCbzRk?=
 =?utf-8?B?bjRuSEZ4NHhmNWh3RElOeFllamhmU3oxcEtxK0s1eHE1VHBwZFVlSnVEYkll?=
 =?utf-8?B?QkV6enZ2N3c0WjVmRy9mU1hwTTEvRGZWakh0Z3BsSTAvVGErbE9tNnQrY080?=
 =?utf-8?B?NHJlK0lTZXBoK2ZUOTZ5YlMweFk1NkFqaGdkOE5wdnAzWmxQcDFDNFppOEp4?=
 =?utf-8?B?LzFaRmJNQmRZU2VXdEdOSjliNElxc0FoSkhrRVpGa2pmK3ZldUdmYzBXakVx?=
 =?utf-8?B?anBFZWJOWHBmRk9WcGlRMEFsZHBhQmNJWGZ3blZTOUU0VmhESm9sOVFZbEVz?=
 =?utf-8?B?MTRqcHJJNDhFYkczUzBSemlBazRkQWJ2Y3NnRmZidEgwai9xTkcrajMyVDhj?=
 =?utf-8?B?SjhEZlFSZkNyOFRiKyswLzFGQnhydTJNTVgxS3FLNFBPNXdhN21DUXN5MEF3?=
 =?utf-8?B?TWkwN3hiMy9lMFJsazV5RkFsemtrOEh3RWgrU2RuTkk0a0J1TW9vNjU0SXBU?=
 =?utf-8?B?aWw4TE9sUmU1akRJTkpzeDVMMzIyd3NVYThBazdYVmVBcUwxZTVlYkFKTFpk?=
 =?utf-8?B?Rm5VWnZndkkyNloyN0dmODhmcGlOTCttOGprdEUzRVFqZWl4Z2VVejJXVS9O?=
 =?utf-8?B?RUx0aVh2YTErTnNQRnE0c3FoVkdVWFdGZDgxdEF3UUlRVWFXVmdtbnBOeWpo?=
 =?utf-8?B?Zm4vU1VzR2g0ZGpjVnl0SDIvaWxBRUdSL0oxbytwWHZwd2xZcExpZjRZNFQ0?=
 =?utf-8?B?UC8xenZobmhWOWhPWHV3QmtYOW4zcStRbUhFVkZRK3haUWZKcHVLR1VJVkIr?=
 =?utf-8?B?MUtyeUxJcFhOZCt1Z3hqQmFUUnVKTnVRU0Q5L3ZESU1CRjMzZDkzaWxrNStG?=
 =?utf-8?B?SGVlYklnWVlaTjl4QTNTN2JpbXF0c0FCdWVlU3Q3TW5jTVdDQTBuenZGajNS?=
 =?utf-8?B?R0NQbWFDbFhWNHpiNnlXY2tCbFBZMjhkbTV1WllmRmpRc1FGaXphQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CFBF94DED2D955469B09C8ABA6C94408@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 637351ba-ec92-44ee-725d-08d9a906cbb9
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 13:41:30.0789
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: BDGij+YEnaBTG+Axzim52+DwBIvkZRjmGguEOCBskLzGRvjGPcOjItcUqw4burL9V7KApSr2xIMpAYFBCOZgf8iNbn94SJsOtJTzP641Gp18k7hnb/5r98jkmc+LEQR0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4579
X-Proofpoint-ORIG-GUID: 4zO_9wO0GCQtuHuWv2DAtg9Y9A--9VxC
X-Proofpoint-GUID: 4zO_9wO0GCQtuHuWv2DAtg9Y9A--9VxC
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-16_02,2021-11-16_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=642 spamscore=0
 priorityscore=1501 lowpriorityscore=0 malwarescore=0 adultscore=0
 suspectscore=0 clxscore=1015 phishscore=0 mlxscore=0 impostorscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111160069

DQoNCk9uIDE2LjExLjIxIDEwOjIzLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4N
Cj4gT24gMTYuMTEuMjEgMTA6MDEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMTYuMTEuMjAy
MSAwODozMiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4gT24gMTUuMTEuMjEg
MTg6NTYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+PiBPbiAwNS4xMS4yMDIxIDA3OjU2LCBPbGVr
c2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4+DQo+Pj4+PiBX
aGVuIGEgdlBDSSBpcyByZW1vdmVkIGZvciBhIFBDSSBkZXZpY2UgaXQgaXMgcG9zc2libGUgdGhh
dCB3ZSBoYXZlDQo+Pj4+PiBzY2hlZHVsZWQgYSBkZWxheWVkIHdvcmsgZm9yIG1hcC91bm1hcCBv
cGVyYXRpb25zIGZvciB0aGF0IGRldmljZS4NCj4+Pj4+IEZvciBleGFtcGxlLCB0aGUgZm9sbG93
aW5nIHNjZW5hcmlvIGNhbiBpbGx1c3RyYXRlIHRoZSBwcm9ibGVtOg0KPj4+Pj4NCj4+Pj4+IHBj
aV9waHlzZGV2X29wDQo+Pj4+PiAgICAgICBwY2lfYWRkX2RldmljZQ0KPj4+Pj4gICAgICAgICAg
IGluaXRfYmFycyAtPiBtb2RpZnlfYmFycyAtPiBkZWZlcl9tYXAgLT4gcmFpc2Vfc29mdGlycShT
Q0hFRFVMRV9TT0ZUSVJRKQ0KPj4+Pj4gICAgICAgaW9tbXVfYWRkX2RldmljZSA8LSBGQUlMUw0K
Pj4+Pj4gICAgICAgdnBjaV9yZW1vdmVfZGV2aWNlIC0+IHhmcmVlKHBkZXYtPnZwY2kpDQo+Pj4+
Pg0KPj4+Pj4gbGVhdmVfaHlwZXJ2aXNvcl90b19ndWVzdA0KPj4+Pj4gICAgICAgdnBjaV9wcm9j
ZXNzX3BlbmRpbmc6IHYtPnZwY2kubWVtICE9IE5VTEw7IHYtPnZwY2kucGRldi0+dnBjaSA9PSBO
VUxMDQo+Pj4+Pg0KPj4+Pj4gRm9yIHRoZSBoYXJkd2FyZSBkb21haW4gd2UgY29udGludWUgZXhl
Y3V0aW9uIGFzIHRoZSB3b3JzZSB0aGF0DQo+Pj4+PiBjb3VsZCBoYXBwZW4gaXMgdGhhdCBNTUlP
IG1hcHBpbmdzIGFyZSBsZWZ0IGluIHBsYWNlIHdoZW4gdGhlDQo+Pj4+PiBkZXZpY2UgaGFzIGJl
ZW4gZGVhc3NpZ25lZA0KPj4+PiBJcyBjb250aW51aW5nIHNhZmUgaW4gdGhpcyBjYXNlPyBJLmUu
IGlzbid0IHRoZXJlIHRoZSByaXNrIG9mIGEgTlVMTA0KPj4+PiBkZXJlZj8NCj4+PiBJIHRoaW5r
IGl0IGlzIHNhZmUgdG8gY29udGludWUNCj4+IEFuZCB3aHkgZG8geW91IHRoaW5rIHNvPyBJLmUu
IHdoeSBpcyB0aGVyZSBubyByYWNlIGZvciBEb20wIHdoZW4gdGhlcmUNCj4+IGlzIG9uZSBmb3Ig
RG9tVT8NCj4gV2VsbCwgdGhlbiB3ZSBuZWVkIHRvIHVzZSBhIGxvY2sgdG8gc3luY2hyb25pemUg
dGhlIHR3by4NCj4gSSBndWVzcyB0aGlzIG5lZWRzIHRvIGJlIHBjaSBkZXZzIGxvY2sgdW5mb3J0
dW5hdGVseQ0KVGhlIHBhcnRpZXMgaW52b2x2ZWQgaW4gZGVmZXJyZWQgd29yayBhbmQgaXRzIGNh
bmNlbGxhdGlvbjoNCg0KTU1JTyB0cmFwIC0+IHZwY2lfd3JpdGUgLT4gdnBjaV9jbWRfd3JpdGUg
LT4gbW9kaWZ5X2JhcnMgLT4gZGVmZXJfbWFwDQoNCkFybTogbGVhdmVfaHlwZXJ2aXNvcl90b19n
dWVzdCAtPiBjaGVja19mb3JfdmNwdV93b3JrIC0+IHZwY2lfcHJvY2Vzc19wZW5kaW5nDQoNCng4
NjogdHdvIHBsYWNlcyAtPiBodm1fZG9fcmVzdW1lIC0+IHZwY2lfcHJvY2Vzc19wZW5kaW5nDQoN
ClNvLCBib3RoIGRlZmVyX21hcCBhbmQgdnBjaV9wcm9jZXNzX3BlbmRpbmcgbmVlZCB0byBiZSBz
eW5jaHJvbml6ZWQgd2l0aA0KcGNpZGV2c197bG9ja3x1bmxvY2spLg0KQXMgYm90aCBmdW5jdGlv
bnMgZXhpc3RlZCBiZWZvcmUgdGhlIGNvZGUgSSBpbnRyb2R1Y2UgSSB3b3VsZCBwcmVmZXIgdGhp
cyB0byBiZQ0KYSBkZWRpY2F0ZWQgcGF0Y2ggZm9yIHY1IG9mIHRoZSBzZXJpZXMuDQoNClRoYW5r
IHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:04:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:04:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226284.390971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmz4H-0003yE-Df; Tue, 16 Nov 2021 14:04:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226284.390971; Tue, 16 Nov 2021 14:04:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmz4H-0003y7-Ae; Tue, 16 Nov 2021 14:04:13 +0000
Received: by outflank-mailman (input) for mailman id 226284;
 Tue, 16 Nov 2021 14:04:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MDL+=QD=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmz4F-0003y1-Sd
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:04:12 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10431f76-46e6-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 15:04:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10431f76-46e6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637071449;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=sUFBtkNG0DdW0fFyMdmeF5ormp5B2EtliG0+IlSXaCE=;
  b=atVH2t+xOtCvzC2USlGOzs5rjLoaDR2RoLoWXqpXiSQ7fajBz1gdgXBc
   6c3S2I5/X4K/tI8T0evhSOWrSK98caxZpLmMo1LCku4nOu+PYgcbaKlsz
   mTCJ+7fsQ7EtK0V9itKqtm5rqb8YKKdQom50tJEp5+YtK9h576gYjZZxR
   A=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: HxjY3slT/h9msQLQ99j5Bsiobprb8IjFv59Tb4IhVxHIMTbOFG0S7k/lcz73EQhvm2oOiBeXal
 /pPEVkiQ4YzpwgfxgnmRFxmuU7Y7B2zIV0vvlKEFxKFia91fDsZCCjd0XdXjV0doyRanet2dpC
 1lMgryb5BvMoCVLoDFoNmcgMfpAlm3Z4JbeLjXPIQLSDBFc7j6D9+ZDxVfriSXIGMRF5/LodPB
 GXVtJ7yegyPPi1LdKcKeOSo9UnmVsFLctoPMVoGka6U5Tx6AaRTXsaOw3a/Fgd757TVNCSAFb3
 FPsnIgLufA9yiwfQY5zoN6aF
X-SBRS: 5.1
X-MesageID: 57958739
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:W1MB96zwU5e/iYlq5UN6t+fDwSrEfRIJ4+MujC+fZmUNrF6WrkUOy
 mJLXG6Hb/6KNjfyfdh1O9nl8kIPvMfRzIdqHAY9pSAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrdn2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt+5d8
 s1Oq529cBpzFanAttoMfgFcOj4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYIHjWpg2ZsfdRrYT
 5s4VmtwYQ+bWDxwNHcyJ6oujL/5jUCqJlW0r3rK/PFqsgA/1jdZ27/oNcfTe8CbA8BcmE+Xq
 3ju72n/GgsdNtGU1XyC6H3Eru7QnwvrVYQKDrq6+/V2xlqJyQQ7GBAQEFe2v/S9okq/QM5Eb
 VwZ/DI0qqo//1DtScPyNyBUu1bd4ERaAYAJVbRntkfdkcI4/jp1GEA6YgRZa8InufYrHxcu2
 nG3jv7xARVw5ej9pW2myp+Yqja7OC4wJGAEZDMZQQZt3+QPsL3fnTqUEI89TffdYsndXGipn
 mvU9HRWa6A71JZTj82GEUb7byVAT3QjZio8/U3pU22s9WuVj6b1NtXzuTA3ARutRbt1r2VtX
 lBYy6ByD8hUVPlhcRBhps1XRNlFAN7fblXhbaZHRcVJythU0yfLkXpsyD9/Plx1Fc0PZCXkZ
 kTe0SsIusQMZCPzNvYrPtLqYyjP8UQGPY6+PhwzRoAQCqWdiSfdpH0+DaJu9z2FfLcQfVEXZ
 s7ALJfE4YcyAqV71jumL9rxIpdwrh3SMVj7HMihpzz+iOL2TCfMFd8tbQvfBshkvfjsiFiEr
 L5i2z6ilkw3vBvWOXKMr+b+7DkicBAGOHwBg5ANK7PYfFM5QDpJ5j246epJRrGJVp99z4/g1
 nq8RlVZ2Bz4g3jGIh+NcXdtdPXkWpMXkJ7xFXZE0Y+A1ydxbICxwr0YcpdrL7Ar+PY6lax/T
 uUfetXGCfNKE2yV9zMYZJj7jYpjaBX02l7eY3v7OGAyL8x6WgjE2t74ZQ+zpiMAOTW66Jklq
 Lq62wKFHZdaH1Z+DNzbYe6Exk+quSRPg/p7WkbFe4EBeEjl/IVwBTb2i/s7f5MFJRnZn2PI3
 AeKGxYI4+LKptZtotXOgKmFqaavEvd/QRUGTzWKs+7uOHCDrGS5wIJGXOKZRhznVTv5qPe4e
 OFY7/DgK/lbzlxEhJVxTuRwxqUk6tqx+7IDllZ4HG/GZkiAA697JiXUxtFGs6BAy+MLuQayX
 U7TqNBWNa/QZZHgGV8VYgEkcv6CxbcfnTyLtaY5J0Dz5SlW+rubUBoNY0nQ2XIFdLYlYpk4x
 eoBudIN713tgxUnBd+KkyRI+jneNXcHSagm6skXDYKDZtDHEb2ejUgw0hPL3aw=
IronPort-HdrOrdr: A9a23:Gv0pk6kzDnLzFDGQLD9CIARGpl7pDfPMimdD5ihNYBxZY6Wkfp
 +V8sjzhCWatN9OYh0dcLC7WJVpQRvnhPlICO4qTMqftWjdyRGVxeRZjLcKrAeQYhEWmtQtsJ
 uIEJIOduEYb2IK9foSiTPQe71LrajlgcLY9Ns2p00dMj2CAJsQiTuRZDzrdnGfE2J9dOYE/d
 enl4F6jgvlXU5SQtWwB3EDUeSGj9rXlKj+aRpDIxI88gGBgR6h9ba/SnGjr1ojegIK5Y1n3X
 nOkgT/6Knmm/anyiXE32uWy5hNgtPuxvZKGcTJoMkILTfHjBquee1aKve/lQFwhNvqxEchkd
 HKrRtlF8Nv60nJdmXwmhfp0xmI6kdZ11bSjXujxVfzq83wQzw3T+Bbg5hCTxff4008+Plhza
 NixQuixtRqJCKFuB64y8nDVhlsmEbxi2Eli/Qvg3tWVpZbQKNNrLYY4FheHP47bW3HAbgcYa
 lT5fznlbVrmQvwVQGagoAv+q3hYp0LJGbGfqBY0fbllgS/nxhCvjwlLYIk7zM9HakGOup5Dt
 L/Q9BVfYF1P78rhJ1GdZU8qLOMexfwqDL3QSuvyAfcZek600ykke+D3Fxy3pDsRKA1
X-IronPort-AV: E=Sophos;i="5.87,239,1631592000"; 
   d="scan'208";a="57958739"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aF2pbrZwsaqEnG+Kgt74paGS96z35hO5RKEKZiB4JscCGzzKKjonUh62ZUcOV+yMr7uveQcNxy0wEiPRP44AjcSJAtrcwqKgSnXE9OcyAnJqW7dTZs1+YGMyI0Ffyfgaj+31TdSnALzw4SBy27MNdQTK5CHUynSSffGet6JzOzG0L4+IKavagHbyCINl81518fSI/PjyIOuvlto0L8j0WdrZ5dJ5KS2lPtP1zuvzwyOfheLB14u1NvRHydWAjR4ZCDQbrFx9OmQwiqnW30pLq1yKe7UWaXiRl0Z3gl7NDXLnpMHqWSXXikfyI9nnhx2+ILKsM5WRl46pmH6PgRQbYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0728ae18qVcn+SOKHa2RdOtsaTnDqwGIcLeYw4Lyic4=;
 b=dDQq7p8y/LWOMTXd+xexDWPtt6tDmCbhrGP9SRTIBcxNI9wwMjSSPpBmyqYozLOTAMwLkPJYd3pDHaj3F48JBAH4zsdn8IaUm0uB5LpbDyGQ0n7SICyz3gTim6G+ZhgwzZTTtvXN2NLbTDApAfy2oMtPIctAXJZ+kbD4rK65YD2DOQAMJy1FOaoqN8M3cl7DjaXi2zarUSWje0KLFID/WkzOIjUCIeSvx5IWx34kyLbZnffvlCA7H4MRHrsEHFwuxyq+R/XzZoQG2zgEAYHONoFhBVVJNFPqjkCFOCtP/fwsGfo0834oj+R2ioUgKnOy59KpQkjRya6tTSpehtNKgQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0728ae18qVcn+SOKHa2RdOtsaTnDqwGIcLeYw4Lyic4=;
 b=rELunQhCs/d2jCAjUsAZE2iFvcOPRi6CKeiw/G+B63JDC78S7daewSHrbYc5xV93lSwzklb7oycye+71Yj73IAte5tOhip1gkz9gch9VvvH3G0DTQOci9ZeTLqlRGczYRubkocEU5RR5OcrWyHAtRyK/ZaCb9H/rV1mM3k5klcU=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH for-4.16] CHANGELOG: set Xen 4.15 release date
Date: Tue, 16 Nov 2021 15:03:44 +0100
Message-ID: <20211116140344.10766-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAZP264CA0177.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:236::24) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2d2c4ea8-2955-4f62-d231-08d9a909eef1
X-MS-TrafficTypeDiagnostic: DM5PR03MB3068:
X-Microsoft-Antispam-PRVS: <DM5PR03MB3068F1F39AFE614ABD9F15E48F999@DM5PR03MB3068.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:913;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: ZadQHc8XS55ncwhMlX6nXT74cTf+/W5f8AV0q0/VeTjOhcQCM4r03vzThaGpC9sfIUfQJlsvoKSINUGWJbYQuxClTQ8GocAJsWraECFFACsQb8Sqj1bcenWdxfA5vuleYDg0VpFZCg8Loy15A8qoJJLoZYrB23tjIYw0/ONGu134pGAy+3S4JAYG+OTVbVTnkzkM8Te0d/rniYUujqhQm1QcTRLekJAWgMfP+o8+8fZ4zJeRbaPG7bS6T4S+hRGoDi6Lsdn09Y46I7wj8MNHoo2OF4HDHQLhp2NiU/XRyUIrx5gaA4lukFRHOzXi4NmfdvSeCRrS4e4hXacO3pcjrO9lit2AGZWVnewbTGqdw8u8IrxcgWhx9lDqCcjZ0uZ+v18gKb0JRATxGFcK/bwIOQXlclfiSNigaReNxoewsePxxE+NtIm3YJVDtLdX26sA/Z2Ce5g621gGofbRgojwAMq0Ph6eQoQ0x41DEhHNI7iPM+b9YYZCxJtf+72J08uy+HPlK4GY3tmD8zyOlinhOY4aDGXVoCfIeu2BZsCTBeqM2crKJoKS/FD0ZpVrq/b8d94vXQxYMVdVtu7DClMLFSfpAaBW8pWsDZd+aBBmqaTBfgiYTBNypabMuD5sTUqwqW9z2V44bsXyIUIvnItiS4nWsaIRgWzj8hd0n2chl+8uM0JXcF+ywx+iuX6OJVLFpO4qK7ZIYp2m6AGKTQDGeS5dsi6NakTWCDbQ6F6q93krMYIfIF6Q8Rqp5vpTFpC5vW/eznbshF+MruYoM6gedqKyHqXCDUYUBtnvS/QqC1mC2pDxKaAd/Q6OzuDU8Gcf
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(6496006)(2906002)(316002)(66946007)(83380400001)(956004)(2616005)(66476007)(66556008)(38100700002)(186003)(8936002)(54906003)(86362001)(6486002)(4326008)(5660300002)(4744005)(26005)(6666004)(36756003)(82960400001)(6916009)(1076003)(8676002)(207903002)(219803003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b1RJUElka0hNRHlvTHZycVl4ZXZUN1ErZk1DS1gvZVY0SW00cG1wUkhtTi9m?=
 =?utf-8?B?bHNxVEQybUxBT3BmdXlYbjJRa0EvK0xJTUxPemc1RlhqUkpmSXRlNnBuQWZw?=
 =?utf-8?B?R3RiUVR6YytsVVBXNmZGa2xYNDlCODZYWkdFSFg4RGgyM3IvMDBYcTRTNGNa?=
 =?utf-8?B?d2gxRjFGbTZaZXJ0eXZWK2Q1RllMaTl6bXYvSUpQZktRalYrT3RFRHMwVTRm?=
 =?utf-8?B?RDduaTFDaU5nVnZJM2NVWTlBU3l0bkR1ZG1GdHZIQ2NjS0VpeVRJNHB5WUtV?=
 =?utf-8?B?VjE1NXVEN1MxcG83eU80SHI2TGhPWkJ4c3BlQWR6RXk2WlV2S3hFYUg5Vk4y?=
 =?utf-8?B?UXIxT2JUMit6R2Q3TE1EQkRhM1U1bzJXQ21hZldDT3lMRWFlKzhOUm1KeDUr?=
 =?utf-8?B?TEpoUUpuc05qUmlkN0g2cDJqM2JDZFliUFZxSk5nQmxKUHFMUUx1a2huZGlv?=
 =?utf-8?B?OWIrV3c4OVltRjUwQzk1d0RoaGJGa0k4QUZHbk82dUl4NUpVeDlCWmw5UHVW?=
 =?utf-8?B?bk9UOThsdnovQ3kva3lOeEJ3OGpUditkOEl5ekZOV2NJazZuZmkwM0tsVCtU?=
 =?utf-8?B?enltMkZ1T1F0U042Yk5BaFNwdWMwMUhyNitROGZVOUwwTnpwSkFPUHZFMWlW?=
 =?utf-8?B?UVdBd25yUy8yOEROYjdjTVdxZG1hTlpybjhlRW5xN1VkeHFsYS9uYTZ3WWlB?=
 =?utf-8?B?ek5ZL0gwRXJXN0FvNjhwSHN5RU9rczgwZW43NjUwWDUyUXBqMGhEc1UxU29O?=
 =?utf-8?B?YnA0Q2ZhWndLYll0bHhlZzlmOGg4VHd0MTNSenJBMW9iNmtvd1VmaGJUK3ZN?=
 =?utf-8?B?UTNMeGxzUnEvamEwTGpzdHpsOGVsNTZsUDNJR09ucTRVbEZ0cG1XUFJYQXQ4?=
 =?utf-8?B?WmplblAyRWxJM2ZnQTIrUTdCOWZHejBIU3k5K1AwdnlUcVEwRE52cWNGS1k2?=
 =?utf-8?B?anpoS0ZjMmpVUmE1TURTT3JVMjBXcVRhRFZaYjdVR3U0YWRmdDVzeWNxY3lG?=
 =?utf-8?B?Z1NmTkJDWlgvNjNIRGFtQ3BqQUdEUFhBNjBveHV3SHU3QU5sLyt2NDJZRVRQ?=
 =?utf-8?B?OXZOUUtEOTJrNGZKQ1J5cGZqajk2bFhMVVdzd1dqODNvdCtFM3lGQTlBeVls?=
 =?utf-8?B?OGJHOGxFK0lSb0JwR0NVTzMwWkFsSGFXRWROYXFFWVRjeVFaTXhia21LT3Zp?=
 =?utf-8?B?TnlucVBLWk1SWkpqclpTV0QraDcySEphOXdZSW85ZGYxYmtpY29WYXdsVzhh?=
 =?utf-8?B?M1pOTTVrYzZtWG5xeHlCelRQd3A4a1dWTEJJVDMrWXVaZHFLdW55Z0ZNZVVs?=
 =?utf-8?B?OEhSNEJSaGZLVEw3QTRrMVdwVm1KQnhkWjA0aW44a3dXdWdDbklHRU1LQmRT?=
 =?utf-8?B?TGhzMlMzODFWNERqb3oyUnRIWXhqTGZuNGFVNitRZHR3V0M1Um1CS3F4OWZF?=
 =?utf-8?B?bkpYRG1YazlEKzc3amd0d1YxS2UrdUVoeXBUMnY3bkdHSUhLYTdWMlFOVURz?=
 =?utf-8?B?WEZLdWtsZ0RJTEVJSTM3OUN0emZsNWVLZWRNdmdPaHBOWHdRbTBjTjl1NHFy?=
 =?utf-8?B?YURqMm5kSUg1WmpwM0dYQ1g5S1hvdjlDNC90U0o5VGM0aW5rc3lQWm5zckp6?=
 =?utf-8?B?dEtPR2JhUmtJU0RJalJVQ1NEM28xWGdYaThabTRuaDZmMnlFcW1VZUZBbVlr?=
 =?utf-8?B?MDBJRkd1bURYUzlnY3MrNW1hRU41REszTXV2WCtLM3E2M3lXQVR5MUxWaEFF?=
 =?utf-8?B?TksvajZ6VUI2YnAwMWdzRXN6OUFKNVpNS1hJdkZXa0hzQWd2SzF2R1hHR3pI?=
 =?utf-8?B?eDdyb200QXFjZzlzY0FWNVpRYzNnVzNqNnAwbExnVkMyL29UTXBrcHhBZ2JJ?=
 =?utf-8?B?UFJDR1Rha01FQUFPekxDdTQ2ODMvR1g2WDdsc0FiOFNYeGQrb0QxRW1ENVI2?=
 =?utf-8?B?ZE1lV3YzVHRGRFZVK3lXOWpmRjBWUWZXS2lpaElNWVlKaHBreERJdkcxOVZC?=
 =?utf-8?B?Y1I5YUV2MFBOS1FldXZYcDBPdjdCVTBYRG9lZ3U0eUtiMC9Vc1JwRm43RGZY?=
 =?utf-8?B?aFBRempscTFpd0JDUy8zc1ZUcnpTUFFuZFVKV2k1ZkJEQ08yYlFYWEJnSjc1?=
 =?utf-8?B?ZHRzWndTWjBaMXZvckRSanJ3dVJKYU5QZWJGWkFxYWRGKy93b0xVOVNsTmVV?=
 =?utf-8?Q?1YYKY0jrQREdasj6U2do6V8=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d2c4ea8-2955-4f62-d231-08d9a909eef1
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 14:03:57.9177
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Hd8XJFH68i3QMlcAVlQMCT39q56Oas/hF0zWwYgY4+M9e0hOufQy3OUJNME2K3kqO0YfnaHPpi6V//esmx2P0Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3068
X-OriginatorOrg: citrix.com

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 CHANGELOG.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e5ab49e779..7f3114a96c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,7 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    no longer be built per default. In order to be able to use those, configure needs to
    be called with "--enable-qemu-traditional" as parameter.
 
-## [4.15.0 UNRELEASED](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - TBD
+## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2020-04-08
 
 ### Added / support upgraded
  - ARM IOREQ servers (device emulation etc.) (Tech Preview)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:07:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:07:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226289.390981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmz7J-0004bn-SV; Tue, 16 Nov 2021 14:07:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226289.390981; Tue, 16 Nov 2021 14:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmz7J-0004bg-Pc; Tue, 16 Nov 2021 14:07:21 +0000
Received: by outflank-mailman (input) for mailman id 226289;
 Tue, 16 Nov 2021 14:07:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MDL+=QD=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mmz7I-0004ba-8U
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:07:20 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 818b9c85-46e6-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 15:07:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 818b9c85-46e6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637071638;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=YD+4vr8+VYKhXKY5ltavifruM/lAO6oGkOGfo1IYyv4=;
  b=ELFtJ8wVlfZAj+ZefvR/An75SkMpXYFUeShfJfc6mA5+HuigX/IZkilT
   ZBzj3AGpClgmqGU47a1+GE4KsyhGOu1HaOqKz8pv4SjbCM116v6Ye1f3/
   FShaLRsJg1U91nY3phauFoTZv/fK6yctPqUYu1dVj0vk/54EVGyjj6ghY
   s=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 8uVnP5+cAHCgFbfIdyvYdyQzYYk11wNe+bLg+nPQT39bTlHqe0NYavi3ng0BwYi6QEKERDejmJ
 G5pvytWL4pm1qIUJqTv+Gl4VylFzMeNGva6eJlmFSFp7F2wWwFbUWcyv9HXoQvhN3rxESxbhwe
 bLWB3L/5LprAOfSrogt97CzRuSjYG7vdtlHdZrqlvRQ8Paq2I7Ndkb7xePHeSt88KWsDjjQQQO
 ZFCbJjwlP3xkLLVTPWjeJlCkXBfDjssdQUAXSfOCN6YYnZ0J3yrbUuG4xiqUWsi4jbVqpR0CdQ
 DJ2HpZd9k97I4NVyzY1VNQ9V
X-SBRS: 5.1
X-MesageID: 57455856
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:UOYxIa82eq+ksgwEL2t3DrUDdHmTJUtcMsCJ2f8bNWPcYEJGY0x3m
 DEcDDjQaK7bMDSge9klPozn9kgAucSHy4dnS1Ro/Cs8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdg3NYy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhM0
 Mp/s8W3dTtqEa7CtOUPUylHTH1XaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguw5K8bmJsUHs2xIxjDFF/c2B5vERs0m4PcFg2tt25ATQ54yY
 eIDdmswUTf9YCYVI0YHBrMBs+Wmj1LGJmgwRFW9+vNsvjm7IBZK+LPqNd/IfN2WVINQl0CRq
 W/c13T0BAkAM96SwibD9Wij7sfOgiHTSI8UDKe/9PNhnBuU3GN7IA0bUx63rOe0jma6WslDM
 AoE9yw2t68w+Ue3CN7nUHWFTGWs50BGHYAKSqtjtV/LmvG8Dxul6nYscyZeWtp/s/MKBhMp2
 HOIjdPZGmMzmejAIZ6CzYu8oTS3MCkTCGYNYy4YUAcIi+XeTJEPYgHnFYg6TvPs5jHhMXSpm
 m3R8nBi71kGpZdTj/3TwLzRv967SnElpCYR7x6fYG+q5xgRiGWNN93xsgizARqtwe+kori9U
 Josx5j2AAMmV8jleMmxrAMlRunBCxGtamO0vLKXN8N9nwlBAlb6FWyq3BlwJV1yLuEPciLzb
 UnYtGt5vcEIYyPyNPQuP9/hUKzGKJQM8/y/DZg4ifIUPPBMmPKvpnkyNSZ8IUiw+KTTrU3PE
 cjCKpv9ZZrrIa9m0CC3V48gPUwDnUgDKZfobcmjlXyPiOPGDFbMEOttGAbeP4gRsfLfyC2Io
 ok3Cid/40gGOAEISnKMqtB7wJFjBSVTOK0aXOQLLLPeeVQ/Rzl6YxITqJt4E7FYc21uvr6g1
 lm2W1NCyUq5gnvCKA6QbWtkZq+pVpF6xU/X9wR3Vbpx83R8M4up8okFcJ47Iesu+OB5lKYmR
 PgZYcSQRP9IT22fqTgaaJD8qq1kdQiq2l3Sb3b0PmBncs4yXRHN9//lYhDrqHsEAB2ouJZsu
 LanzA7aH8YOHlwwEMbMZfuz5FqtpnxByvlqVk7FL4ALKkXh+YRnMQLrifozL51eIBnP3GLCh
 Q2XHQ0Zta/GpIpsqIvFgqWNroGIFepiHxUFQzmHvOjubSSDpzit245NVuqMbAvxbmKs9fXwf
 /hRwtH9LOYDwARAvb1jHus51qk5/dbu+eNXl1w2AHXRYl23Ibp8OX3aj9JXv6hAy7IF6wu7X
 kWDpotTNbmTYZ63FVcQIEwub/iZ1OFSkT7XtKxnLEL/7S5x3byGTUQNYEXc1H0DdON4YNE/3
 OMsmM8K8Aju2BMlP+GPgj1Q62nRfGcLVL8qt81CDYLm4ubxJoquvXAI5vfK3ayy
IronPort-HdrOrdr: A9a23:+TWWHKnbe/oDtr1j8SXC7HcBeDrpDfOwimdD5ihNYBxZY6Wkfp
 +V8sjzhCWatN9OYh0dcLC7WJVpQRvnhPhICK0qTMqftW7dyReVxeBZnPHfKljbehEWmdQtsJ
 uIH5IObOEYSGIK8voSgzPIY+rIouP3iJxA7N22pxwGIHAIGsMQnDuRSDzraXGeLDM2dKbRf6
 Dsn/avyQDQHkj+Oa+Adwc4tqX41pD2vaOjRSRDKw8s6QGIgz/twLnmEyKA1hNbdz9U278t/U
 XMjgS8v8yYwr6G4y6Z81WWw4VdmdPnxNcGLMuQivINIjGprgqzfoxuV5CLoThwiuCy71QBls
 XKvn4bTohOwkKUWlvwjQrm2gHm3jprw3j+yWWAiX+mmsD9TCJSMbsIuatpNj/ir2YwttB116
 xGm0iDsYBMMB/GlCPho/DVShBDjCOP0DofuN9Wq0YafZoVabdXo4Ba1lhSCo08ECXz751iOP
 VyDfvb+O1dfTqhHjHkV1FUsZ6Rt0kIb1K7qhBogL3Q79EWpgE286Ig/r1dop9an6hNDKWt5I
 z/Q+1Vff91P4krhJlGdZI8qP2MexrwqCL3QRCvyGvcZdU60lL22tXKCeYOlauXkKJh9upEpH
 2GaiIAiVIP
X-IronPort-AV: E=Sophos;i="5.87,239,1631592000"; 
   d="scan'208";a="57455856"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K3knnpwEjxuKzZu+TBLU0btTxeQ75IhGm/7kiM3vEmV96EpYzyGotDapTPICnrb5ToFLn55/OW9dK7Qh9f0AKpy2IIk9NA3XiOGLtGGNW2mwqKm3dbH5S0sVj0JzF7kYpPfVdJexnQIUxDDZYk7eFSCYBYhgC3je1cgnY5hnGdjJ1Sme+z/jst+0cZS4GBW52qHrtaPIWdhunLguWLKr7GDUdKoFoqJSClThi1/WJNH0SVaiYwHUMo/j6gt2Q1cbbfsRoAmj47nN0HHyqNlIRyfRLs6/P9cTUytf8aIqs0/q1uxkLdlODReJOvPAIQno5wpR9nZogO0ie8Gm6ueRXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CdHS/txhM1NAJQDOIbGQsC36UWj+N4uRXCQRmxNzhig=;
 b=QngKX3r8JKwhbmxuKH6f/LMvtXPBtqjhWCVf9lGEpjXjlDem5D2cEZu/fJJrg2u+nB7CiViKhHo9eBAM/WQnwKkUJrJm7/Vqw4EHUjLGzrCR+qsIWN095Iu4QBS+R6FlA0sEgZWOEcJDrQD7z5RdkwHn0cDUhZTQbXMSB7XlNcQd1JO/ULE1btq/fsAYbob8S6bKuqenEJwD6p2lWxJ4fm8mlpyjwdgJ9mv0dsclSkf8KCh/R/zrYdrZoWGuYYD5Psm7zMwGA7AnmJX659I1awG8mdJgBO1kglxB/JpBe8yaXS9KRmdNIckoDzV3CIfygO9BVqU4Sr9IhWDiWcWuBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CdHS/txhM1NAJQDOIbGQsC36UWj+N4uRXCQRmxNzhig=;
 b=YlbGTkqtJI875EClhgaDijRDUx957WB6Dlw9h7I1uYya5b/Cf3Aj5a0MRCzU2AXEP3eJ8aSHN8ythHmHV0fbx9sIZFYHnYTDk2VjzXGvvxRF8LnFUhcT/vNDKJ2uKa2ir0iOVgh6hWZ601OE9uz1SICEl6sjxPFBVLpKk+8B/ak=
Date: Tue, 16 Nov 2021 15:07:09 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Ian Jackson <iwj@xenproject.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16] CHANGELOG: set Xen 4.15 release date
Message-ID: <YZO7DUxImIy0Wy+W@Air-de-Roger>
References: <20211116140344.10766-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211116140344.10766-1-roger.pau@citrix.com>
X-ClientProxiedBy: PR1PR01CA0033.eurprd01.prod.exchangelabs.com
 (2603:10a6:102::46) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c45bc685-2a43-4288-5325-08d9a90a63c8
X-MS-TrafficTypeDiagnostic: DM4PR03MB6192:
X-Microsoft-Antispam-PRVS: <DM4PR03MB619228E1565A49825C7152678F999@DM4PR03MB6192.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 40Lxsc1RFGeOlV4Cv4xSXuCliqRm2qd78FZB19dDZ3AEQtR1Xce5hTrsaD5UGfR+tb0JQfUJ5Vcs5/mpFomY5TXhf5Vw2IMw8aH/tE2XrFru9+Bda8MHoogYgMI5uYI6ICmS4288jalby/Gpsn0olB8zZsCZDD8zhTFrFXc639UCvRD/LLxoSSp4bVrbknniWc8efbwgR/HwAIepGqF8taS9JP/8jCqyuhsKaeGc5cojO9NusqijPmvCjzkuwkQaPH/cmE+YlyS4ZZvSTcA9RJ8I4aB7meGM/jmkhh30AgDJOjKIpUWHrlxNyVTPKAErT6dBS99cpOwGN8X/H6KH2+8fbTg1ltDGbsFS8lRjPHAaREqks7I9q4b2BX5MBeBrfQEBefl9KVBxOxV+Q4zffj6/Lx2+shObVVCrabZXID7Klglw44TK/v5LXDde0IYNqArUAusY8pPal4F0kcc6Joouh0SuRXzquh5tj7wYwzCYsqkHsTOJk+u/zpWY7ZsKRPPB/sHglZfu4ZT2pGBaNTxPzXv3KvHgZOqLanKvCayOBlngSguT7VKEnK5+Qv1TjBJVbkihBHpSJqw84nnbPn6dnQ0+30a9Qtl2/RwSZFxIONaxkjudneTCbaSjjYWV+cYP10P9bblc47u5S5S4hsOloOS7AxVf6xKw60STNgTPF1XdcuuGSONi2GTr0B+P79Oa/yzP2tvfYtYkM6KaW37AhCJX6pk/b0Bp2rlRkf9OnAv1L20XgfjytCW3oExa0smnawTL2QK7WEUOJ/NZUwKR2/iZksJWCY6yAlPGIpDLCd8FSDNXODa4KlyNNNF7ekHhzyNorDFVOUWJ3KwMXigrDsP1gZ/xSQKNDxRAzAr8xOiBEDSynHKSoHW0yQOZ
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(508600001)(33716001)(82960400001)(83380400001)(66476007)(8936002)(66556008)(6496006)(66946007)(6486002)(956004)(38100700002)(9686003)(26005)(54906003)(4744005)(85182001)(4326008)(6666004)(5660300002)(2906002)(316002)(186003)(8676002)(86362001)(6916009)(59356011)(219803003)(207903002)(67856001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SVFRYnN1VHA0WHpFRVNNTUdmK0J1a201cDRpTG9BTkN1blgyT3FyRXJsYWUz?=
 =?utf-8?B?RHZXVk5HMEI5OWUra1BLOUZWUEVLQTRseGVrV3A3c0NQVTVBVnV5VnZtbTRP?=
 =?utf-8?B?ZmpsOG1XOTB4T1J5aUw2M29BeWNKQ3lydnFwVzVzV0oxZ0RqUjJHQ05RYkFM?=
 =?utf-8?B?NVZDeEYwNUNWMkF6TVN0NE5BcjZ6NTJLcjNnM1NManhPaGhDcEZSWlFxcXk3?=
 =?utf-8?B?UWo5cHJnUHpVN3JZZXVRMHBlaEY2YjBOUjdqMllMZWpyZS9zTjBmK1k2dGR3?=
 =?utf-8?B?ZlgvTy9sWlB5MS9CQUtDM04yaTdkM1BLbk1lRWFmNmhWUUVHUnIyNmdjTVRJ?=
 =?utf-8?B?K0hRcVkyT0QzZTVKSkRIUlVNbWdWSkpFSngrWlhEK3NFTkh2K3kwQ3BiWlZv?=
 =?utf-8?B?VDhMQWFZRnEyZjRLOXdTK3RXYlZkcmtjUmdxS1NnbkF4OXRiOHFEdTI4NFpG?=
 =?utf-8?B?Nnk1L3FVYzNobVJCazlIalcwSzNVNjB4czlDTzBNWGhxa3FTbU5MY0haUzZW?=
 =?utf-8?B?SHdXQ0NIYnQ4dUdEQUNoQnZ2YzNjSVJXT2FGU1dNNlVvTjNHblpybGg4eWRt?=
 =?utf-8?B?RlRYdVc2a1lHM3k0bG5aQ2ljb3FlbURkcXM5bThsVkdRMnluMWVpYndBWEFG?=
 =?utf-8?B?ZUN5OS9XMW5Pd0xwL2FCRFhNemNuTkJOUktTb3BOTFhtUGtxVlV1T1dnamxY?=
 =?utf-8?B?cVVXRHpyaHpiMXpjeGVRS1RpMTdqL0xjWnhUbzZsaWt6UE1HdE52ZnJqdlJj?=
 =?utf-8?B?V2JTZ0tuS1lrRVVCbUVhUjI0MGRCcW5UTVhCYjlOMkZ0TVNoMHZDR1d3RG5w?=
 =?utf-8?B?Yy90VjM4bi8vOHFBaWNwdnZydVM1b2c2QVZrQWk4WXg5R0llei8vcDg1ZTlH?=
 =?utf-8?B?Y3RPQVNKRjhEYk04RHBIMFRMUEx4SGNHdjQ5UE9DSW1SS3dFMWlua250VXh0?=
 =?utf-8?B?WlNkVFVsTm14Ry9od0FPcjFXWG41S2dyYm9EUGNoTDdUaWtKQWdmMHVwcjZC?=
 =?utf-8?B?QlJ1aFBHM0NHU1Mwa1hXK3VLWDl5ei9UQnM0VlVUOVhJWVBpVEQxUVpuSTZ2?=
 =?utf-8?B?TldQcmJhUVV1RnRneVJkekZ4K25aMXVtT2VkUUlOaWVKcFVNNUtlZlFXWTNq?=
 =?utf-8?B?dEhUbzFDU1lhWktDcEpyd01qNjVEQWFrMFJWOTIxZGlLRlJEa1ZyZTZ2dkRn?=
 =?utf-8?B?bnIwcTVLR0wzRjdkT2poYlp4T2ZXYWRFT25MTi95TnlZb2poL1h6SGZQclZD?=
 =?utf-8?B?UmpmVVk5K1Z2bnNiNmxZQ1FwZlhPRyt1cVlrRzRxZ2UrNkpNa0RGTDhlR3NY?=
 =?utf-8?B?ZnRWYzl3clh6WGM2djBzS3JhdFh0U0xEV0MwUDdlMFRNWmpyUFlDWnVjUDRa?=
 =?utf-8?B?bmVGOGpUeG1yWk1tamhIVnZkcjZ6Y2V2UVRYRitwdit6TldmNkowSHB3YnNX?=
 =?utf-8?B?TkloUHlaSkNmZlFpa1BKd1lZRVB5amRkZGl2Ri9PZkViSzQ4dHNFQlQyUm1H?=
 =?utf-8?B?TUxqRnl2NXFFNldXOHZrN2tRNXZNQWRJMU44emhScUx0VXpFTmNuSFRMUXhi?=
 =?utf-8?B?NnBXYWVOYlg5cGZBTnQ0bzM1VWJubTVRZW5kRlZlVVlFTEZqeHZCVGFYV0VI?=
 =?utf-8?B?YkQremxDWDQwSko0a0VMcjFiMDgvQmZUdTNnOCtHa2tSQlNaa0RQWmc3UXlF?=
 =?utf-8?B?TzRJVys1czVXZkpyMVp6dGhIUzhYOXFjZ1hKUUJLMkprcm8zYzBobm5hOWxy?=
 =?utf-8?B?a2ZPOU56THlrQXdzVjIxU0hLaEEzVWtLOS8wUWRrUklKa3d6aGcrVGorTlhD?=
 =?utf-8?B?YXVDZE1FNVJNVHRyZ1Nya1NQUllsSjNJVHkxa0QzRjJpOUNEdUZIN3pyN0hX?=
 =?utf-8?B?VFBOSGlwcXYvNWJtR0dkdU1veGZOZ0NxZXZxbVpLNWR3Tk92QXQ1S1ppemhu?=
 =?utf-8?B?ZUFkRlB0WTd5Mk1OV3FMVVJXWFBBWWJFQzhxL2hxeWphNjQxTHRSTitVT3lo?=
 =?utf-8?B?cXNJZFlDcHVjcS91RVl0Tjh5WmNZS3UwYzVGalI0dDc3bG43eFJMTWJ0REJk?=
 =?utf-8?B?SkVGSzJSRUZVNVozR3FQbTU0Njc2WmUvS2M2V2tSZElLa2ZCUE9hWTU2aHpP?=
 =?utf-8?B?UmRxWC8zWTg3QTRkNWt0RE4waERwa0d0ZW03SVVKNVlpcjBrTElUZ1ZZb1Qr?=
 =?utf-8?Q?sNj8Ift4tnNefNLDVrAVRFw=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: c45bc685-2a43-4288-5325-08d9a90a63c8
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 14:07:13.9491
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: saL0dDWDaaCBtjG/LPGtDEiJK0CufSyKLFyEHyTbdD7jWtqiQ9T8n393wsAZxzVzQ040hHrkbe7I2xcyGyxM9w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6192
X-OriginatorOrg: citrix.com

On Tue, Nov 16, 2021 at 03:03:44PM +0100, Roger Pau Monne wrote:
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
>  CHANGELOG.md | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index e5ab49e779..7f3114a96c 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -22,7 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     no longer be built per default. In order to be able to use those, configure needs to
>     be called with "--enable-qemu-traditional" as parameter.
>  
> -## [4.15.0 UNRELEASED](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - TBD
> +## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2020-04-08

This should be 2021-... Will resend with other stuff for CHANGELOG.

Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:11:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:11:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226294.390993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzBI-0005x4-Eg; Tue, 16 Nov 2021 14:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226294.390993; Tue, 16 Nov 2021 14:11:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzBI-0005wx-BT; Tue, 16 Nov 2021 14:11:28 +0000
Received: by outflank-mailman (input) for mailman id 226294;
 Tue, 16 Nov 2021 14:11:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmzBG-0005wr-Tb
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:11:27 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1594e1ec-46e7-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 15:11:25 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2052.outbound.protection.outlook.com [104.47.12.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-12-c75ujLwKPH2usVR7foo2OA-1; Tue, 16 Nov 2021 15:11:23 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5597.eurprd04.prod.outlook.com (2603:10a6:803:dd::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 14:11:21 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 14:11:21 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0106.eurprd06.prod.outlook.com (2603:10a6:20b:465::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 14:11:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1594e1ec-46e7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637071885;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=nXjbxyuGL5su5L7XLMGZBQbFLqKq/1hM956UTIhpvOs=;
	b=gKjEEbtwCN/SxX2DHIsegMeh4aAkh2rsKrsplEc+aWyyBH+i5jUHIPFRMSRCENPiDtXP59
	DW9OpU1VQrnqTjaMUkIIFzSTiILexXqYfxDjvRlAct4YpuN4N3gHPVpeMVy3U6Y9cJSQvX
	JhnH3u8ChhLyh42Kfxpmspson8DsjIo=
X-MC-Unique: c75ujLwKPH2usVR7foo2OA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mCP2glo0ZcHQchWwX73zbh7LLvUo65zwfTPi6Jez+2H1HwVz6+3b3kkFkHzEsZuI7K4MIo6sM6wk/KJXNgZLaWHbQmpchiGv/dqNLhQtBk9HgopPv8S4Id++F4mvrV0uD8W04djzYSAh6XKp8niNMifB/nQREYBfrsQowmFIK8qWgeeffKkp/9R4wXgEOmc6AhHqK5nqqPQRl5FaDFl0t2jP8MQd4L3XtYJ+QMLipH7soe9AQnfNFetoQLDLZ6RxYdIs4JWXVFKnXQjSGw/vdkjRgz6Yjc0imGwu61lYVs7kCbS5FUSTLUqIH0sjqxGJgmGf+zvy1vcSSti2IBCs9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BDUdK1qoypFEv2Du/ypnRw1OL3dipyoJSLoQIStcT+Y=;
 b=P4GaRyhrYIiIR9I2ZvtHcsJL538LVtVCaocyRQtzPk3S39Mi7d2kDhQ5VGuZC7NhvZoZS88lsIRazx7Ur4YKPxePvoRwmZHxmThOOjnRlAKp3RfIMiD5KKhiRWmc8oP1wZ0tQdSdwc1lGsEdKr3FeGtOuO672SbSS6wTAUkJHnWr32FluCKETx4z+4k1KH167tUm6ODi4fbPbNIElLu9pSqr5qsADL8sV9etXdL4N8ot4eH9oircAJNtcB6HLygL+IBkp5BXWErWq2TfJmeE6VUjYuwJSAELLNH/VebG3873RokEql7w4TSCjrla6nB0ofVwAe39MZi8HNmaTCnozg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9bb04d32-e2c7-e67b-4f76-d396e67a2e30@suse.com>
Date: Tue, 16 Nov 2021 15:11:20 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
 <b8de7b20-539b-23e7-1ee4-9a777be296a3@suse.com>
 <cc7fb79b-5a43-3bdc-4621-097a01982f49@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <cc7fb79b-5a43-3bdc-4621-097a01982f49@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0106.eurprd06.prod.outlook.com
 (2603:10a6:20b:465::14) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a4c51186-b482-4d90-ba18-08d9a90af78a
X-MS-TrafficTypeDiagnostic: VI1PR04MB5597:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5597E744AB2912CDB636EF39B3999@VI1PR04MB5597.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NsUIz1XWA+M2UsTcSQlKhWhZ3lI/dw+HHqpuXbVywexW6UkrqrMQ45M4zt8IHD5VBfknCGiEJrlilJMdLfWdL1O3dZ762j77rioYayhyyDX3+qOhJWlD5jdobWuLOdCkzFDm0qAQTXCSZy/vkoezHCUc4TKRgmJhl8XuQZFfCs1KNdIbGwkrEItnJl0xlFqOGGy4gWNnqEPk8VG23ou36ixygV2YB83jqC08fRTbZNZjAD0VupZAMY8LY9CjErT8Wihm+FSHAL08pwlvuwo+11pFlB+Rhn1biXQRZKwMgcAeBjLr0sN7eCLnSF7nvihkq3oGL3/BMvZjIaCtYeVCmydvkWpNLXuX99MpUBBWG2+BRkEHE0dQJYk/vXOSvn0QiLqwlZAFUFemgtsQGLcBkZbpkPWvmmD72SSLspfeMirZVyeaxdIZIU2+IntIe5+4EjNKokatAVE1bIpvzp/DSsxm+SVVbkfOJTE+E4ZjVVeksZRC+uflQxvi3zoXnELDDKk30cMLVjChXrl0rDE5EAzYW+vWjlYsijrWZbYq4JQ9WmENvxVsD+R5GXdm9kMQmqhGoTmwW3Xwk7iyhw5Co0WLDeFXQdDIiJPsyqXnNmTaIefABqU70ksWQpBTKMsE2JIAteLmrqrpUyWKBQcfR+2HmeKU3hNzGQbcjYyw+5CANShQdCW0Tc4w2JuWFjNDvKlNSnPA6TBqQhGZdPWlSPsHO40Bxeb7E4gIu9Uw440=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(2906002)(16576012)(54906003)(31686004)(316002)(956004)(6916009)(36756003)(8936002)(4326008)(86362001)(186003)(66946007)(2616005)(66476007)(6486002)(66556008)(7416002)(26005)(508600001)(31696002)(38100700002)(83380400001)(5660300002)(53546011)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?I1DCIeUBdnYSXS0HQ8Av+U65a6Q3zyFnHwVvBDVmqQ94z8yyY8l4mPZKUQyT?=
 =?us-ascii?Q?J9NN9T/Y7RyIAR2VHwnCuFd9kDA7iSrSwi1e8/D8R5b2k2mIUIA/kUm3gPsc?=
 =?us-ascii?Q?eJtK5zl84grg2innS9dHx30ENH3qaEdDZF9cJM4ADYdnum6ekPisHsGM1oaQ?=
 =?us-ascii?Q?IQ4ZxtoMcdS+pEYB6xdNDkzFWNLB3HTONeltoO4JRVR9BnDhGWVBWk3TkOdG?=
 =?us-ascii?Q?mTdGHLzKGqUs511gBcxgkSO75tzN8MDJAW0Zc5BKyvUbyAtMKPFalPbY9+K7?=
 =?us-ascii?Q?aP9VvJ5teyKe1BeCxv25xBEVQeWFWnQ+rhla/eWa8bAZh7deyYbC1nCo2pLS?=
 =?us-ascii?Q?jcN+Mousi1gVCDCRKsIJ8l0Hg6bryJCHo6oKY/mmHWgOwf4IGxm9fSl1awrf?=
 =?us-ascii?Q?T5PWhGtZEatZaD+KkRC/dM6lb8nTo7MeIko0tHAdnQCR5/0DIp2C6NpAbzf4?=
 =?us-ascii?Q?jt/dGF1+Q8FVma9xkeZZ+S+eteK7mYqAsYSqMu0WDBmH5tbyg6oUOckWxBhO?=
 =?us-ascii?Q?VCGS+AWuzYL8DTvApB0HlhPkS63avbRQ20EkhKxh1vKB0FAVt/X7ddeemHt0?=
 =?us-ascii?Q?erC/8Xt+Y6Z1LMq9rCYMAqojOoe5WEapPTPTB/GUWsnWIKEW9m7Iqp9fJt/j?=
 =?us-ascii?Q?rxsRfCgumEZAkgSvS6Ue7EaxFsAG8qu/UPLY5UFdCu/vl82JquzRDZuOWhb7?=
 =?us-ascii?Q?SoSIGt15+g0GO5HVN6F+qnXlQXuVueeIQuuJ5g0U5Mu+MWceog23N+Tex5Rb?=
 =?us-ascii?Q?hMzzYIWYgZ2ssav2hH84akFqH/tuDdcwoin+N0CfF1ng7AJg2cIxbYdMfM5U?=
 =?us-ascii?Q?BD8NBKCwckl7l/KrKYcboVju9axFb6zkNr8ri1g1Jqd4X5kdD7vfB1KBCE+B?=
 =?us-ascii?Q?ZZHeyHHi59FSlZbeL0I8Lg6Nm2zw41DG1RfSt7ZXMj/voXxmI/BeaxtbdxjJ?=
 =?us-ascii?Q?gL9SpV0fkWRqXFE/d3ILHNt/gQhAlJ5Q4eJuV1TeJWerIAOx83D7PPpF9Qvi?=
 =?us-ascii?Q?Dmcnb1U2Aw0wKj2CtjQDPwOxRqeg175YbYIjOcDJUumsMoWEdWGWXzxBIsWF?=
 =?us-ascii?Q?0no24fzVbBDgGbzF7ln5/GEXU6qzPvfvlSLDlfMihu8CY1LzXboVlwCTQSJr?=
 =?us-ascii?Q?IPUP7YZMizGIpRh4ap3+1G5AEbBcJgVzwSvM5hPr9SfAFeaHKVhwoMJELUri?=
 =?us-ascii?Q?+C4dydT+cHMw1iZvVq7G7RzLrRMSUZl1dZcrvbBOXAmKNVqkA9VX+e0XiJW8?=
 =?us-ascii?Q?fuyKOhUKociWoGBVKQZ64Hw/x0hTKXCeQZc3WWlqFDsv1v7WX8zBc0ao1dJ/?=
 =?us-ascii?Q?uMTuigsyeTZU3f+UrmV+zowM7/mMsW15zVJj1SJVczL2YXZzORNonpmE5/eR?=
 =?us-ascii?Q?KS/MFncxispU5tTw0H18kvK7ckXAUKKnDZfFIWyWB1U8zG2FXrLtzqJblreu?=
 =?us-ascii?Q?maPPkG4jG7Qwk9hAPK2R1leJTZ5HHtB6xa/Go4JhNRlHTWEbBLz1zSXSE3+2?=
 =?us-ascii?Q?nc0dBaD5anMyJRY6hRK7rPunrSGV1V+swCHm61VosPStWg3NymzuZ0rRnyq6?=
 =?us-ascii?Q?GLC+z+M+xPbd0J+k4YcdCNCAX13MJF8sqpc/snwULNYBteNYLeXa/nq8Ao3p?=
 =?us-ascii?Q?nx8oHxsgfWg+xK+xkbyjFh4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a4c51186-b482-4d90-ba18-08d9a90af78a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 14:11:21.8496
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qSNOfneNzA+voGD9+lYQXWNeZor9Eoak2SVACsCLvd8MvoQq3IBJrzXUf5RIHj9IToYdN5Z+BS+BET3bJWScUg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5597

On 16.11.2021 14:27, Oleksandr Andrushchenko wrote:
>=20
>=20
> On 16.11.21 13:38, Jan Beulich wrote:
>> On 16.11.2021 09:23, Oleksandr Andrushchenko wrote:
>>>
>>> On 16.11.21 10:01, Jan Beulich wrote:
>>>> On 16.11.2021 08:32, Oleksandr Andrushchenko wrote:
>>>>> On 15.11.21 18:56, Jan Beulich wrote:
>>>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>>>> @@ -165,6 +164,18 @@ bool vpci_process_pending(struct vcpu *v)
>>>>>>>         return false;
>>>>>>>     }
>>>>>>>    =20
>>>>>>> +void vpci_cancel_pending(const struct pci_dev *pdev)
>>>>>>> +{
>>>>>>> +    struct vcpu *v =3D current;
>>>>>>> +
>>>>>>> +    /* Cancel any pending work now. */
>>>>>> Doesn't "any" include pending work on all vCPU-s of the guest, not
>>>>>> just current? Is current even relevant (as in: part of the correct
>>>>>> domain), considering ...
>>>>>>
>>>>>>> --- a/xen/drivers/vpci/vpci.c
>>>>>>> +++ b/xen/drivers/vpci/vpci.c
>>>>>>> @@ -51,6 +51,8 @@ void vpci_remove_device(struct pci_dev *pdev)
>>>>>>>             xfree(r);
>>>>>>>         }
>>>>>>>         spin_unlock(&pdev->vpci->lock);
>>>>>>> +
>>>>>>> +    vpci_cancel_pending(pdev);
>>>>>> ... this code path, when coming here from pci_{add,remove}_device()?
>>>>>>
>>>>>> I can agree that there's a problem here, but I think you need to
>>>>>> properly (i.e. in a race free manner) drain pending work.
>>>>> Yes, the code is inconsistent with this respect. I am thinking about:
>>>>>
>>>>> void vpci_cancel_pending(const struct pci_dev *pdev)
>>>>> {
>>>>>    =C2=A0=C2=A0=C2=A0 struct domain *d =3D pdev->domain;
>>>>>    =C2=A0=C2=A0=C2=A0 struct vcpu *v;
>>>>>
>>>>>    =C2=A0=C2=A0=C2=A0 /* Cancel any pending work now. */
>>>>>    =C2=A0=C2=A0=C2=A0 domain_lock(d);
>>>>>    =C2=A0=C2=A0=C2=A0 for_each_vcpu ( d, v )
>>>>>    =C2=A0=C2=A0=C2=A0 {
>>>>>    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vcpu_pause(v);
>>>>>    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( v->vpci.mem && v->=
vpci.pdev =3D=3D pdev)
>>>> Nit: Same style issue as in the original patch.
>>> Will fix
>>>>>    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
>>>>>    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 rangeset_destroy(v->vpci.mem);
>>>>>    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 v->vpci.mem =3D NULL;
>>>>>    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>>>>>    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vcpu_unpause(v);
>>>>>    =C2=A0=C2=A0=C2=A0 }
>>>>>    =C2=A0=C2=A0=C2=A0 domain_unlock(d);
>>>>> }
>>>>>
>>>>> which seems to solve all the concerns. Is this what you mean?
>>>> Something along these lines. I expect you will want to make use of
>>>> domain_pause_except_self(),
>>> Yes, this is what is needed here, thanks. The only question is that
>>>
>>> int domain_pause_except_self(struct domain *d)
>>> {
>>> [snip]
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Avoid racing with other=
 vcpus which may want to be pausing us */
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !spin_trylock(&d->hyp=
ercall_deadlock_mutex) )
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re=
turn -ERESTART;
>>>
>>> so it is not clear what do we do in case of -ERESTART: do we want to sp=
in?
>>> Otherwise we will leave the job not done effectively not canceling the
>>> pending work. Any idea other then spinning?
>> Depends on the call chain you come through. There may need to be some
>> rearrangements such that you may be able to preempt the enclosing
>> hypercall.
> Well, there are three places which may lead to the pending work
> needs to be canceled:
>=20
> MMIO trap -> vpci_write -> vpci_cmd_write -> modify_bars -> vpci_cancel_p=
ending (on modify_bars fail path)
>=20
> PHYSDEVOP_pci_device_add -> pci_add_device (error path) -> vpci_remove_de=
vice -> vpci_cancel_pending
>=20
> PHYSDEVOP_pci_device_remove -> pci_remove_device -> vpci_remove_device ->=
 vpci_cancel_pending
>=20
> So, taking into account the MMIO path, I think about the below code
>=20
>  =C2=A0=C2=A0=C2=A0 /*
>  =C2=A0=C2=A0=C2=A0=C2=A0 * Cancel any pending work now.
>  =C2=A0=C2=A0=C2=A0=C2=A0 *
>  =C2=A0=C2=A0=C2=A0=C2=A0 * FIXME: this can be called from an MMIO trap h=
andler's error
>  =C2=A0=C2=A0=C2=A0=C2=A0 * path, so we cannot just return an error code =
here, so upper
>  =C2=A0=C2=A0=C2=A0=C2=A0 * layers can handle it. The best we can do is t=
o still try
>  =C2=A0=C2=A0=C2=A0=C2=A0 * removing the range sets.
>  =C2=A0=C2=A0=C2=A0=C2=A0 */

The MMIO trap path should simply exit to the guest to have the insn
retried. With the vPCI removal a subsequent emulation attempt will
no longer be able to resolve the address to BDF, and hence do
whatever it would do for an attempted access to config space not
belonging to any device.

For the two physdevops it may not be possible to preempt the
hypercalls without further code adjustments.

Jan

>  =C2=A0=C2=A0=C2=A0 while ( (rc =3D domain_pause_except_self(d)) =3D=3D -=
ERESTART )
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_relax();
>=20
>  =C2=A0=C2=A0=C2=A0 if ( rc )
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 printk(XENLOG_G_ERR
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 "Failed to pause vCPUs while canceling vPCI map/unmap for %pp =
%pd: %d\n",
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 &pdev->sbdf, pdev->domain, rc);
>=20
> I am not sure how to handle this otherwise
> @Roger, do you see any other good way?
>>
>> Jan
>>
> Thank you,
> Oleksandr
>=20



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:13:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:13:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226299.391004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzCn-0006cL-Vi; Tue, 16 Nov 2021 14:13:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226299.391004; Tue, 16 Nov 2021 14:13:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzCn-0006cE-SM; Tue, 16 Nov 2021 14:13:01 +0000
Received: by outflank-mailman (input) for mailman id 226299;
 Tue, 16 Nov 2021 14:13:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmzCm-0006c8-Ri
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:13:00 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4dac051c-46e7-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 15:12:59 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2054.outbound.protection.outlook.com [104.47.12.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-27-g0fHA9t3NJ2OYU-yk4Uhbg-1; Tue, 16 Nov 2021 15:12:58 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7040.eurprd04.prod.outlook.com (2603:10a6:800:121::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Tue, 16 Nov
 2021 14:12:56 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 14:12:56 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0063.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Tue, 16 Nov 2021 14:12:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4dac051c-46e7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637071979;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IyKxyp2bgnLyHxgHbqYzbTTGw+e8z5zgUCFne7TGBAA=;
	b=BjMt3nOuR8Ibjx35iFlObjvDAA358oCyK6evmu7BxLZEDpRaRe1ufAtFgNvoLfukf6W/oT
	VYaipctriRHrGJvPilAuwQXShjrj+5WGz09KRwlW0BWOWlajHbKH3SrYOWLN3xgq8Sq5sd
	z7LdVCQui8AtDQnWHn7RvGvyxSfvvj4=
X-MC-Unique: g0fHA9t3NJ2OYU-yk4Uhbg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZnbZKKsu0+gA0lrY3ws05YRUJqtBPEYv9fXroeA5bfWqqt9ZPhkTmK6mK+cP/8Ce0r2XAHiilqTJT98UZt3uwGTTuERu8yFsEc/8t2nij6AMx+jQI6lm9YxakGcalLbgZJipjSZ83IT6i2f/m2w1iW2Zmr1wc9VfLRFqeyjQ1B7tyZrMG4XgK+KCdKE92JJVBiZCpLuR4EDKlxzIcyTrbQJiCTzPD0YNFqQY5llANxJzTDTErm84s9gNX9LvweX0Enwdv9aVgvuLHkWZOoO3juHPtuKYdHD3c/NvLQkyCE/vdY5UFG2fDpYGd8MkJRaZzXZMIOJl/z5s3NJ9FoOBQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IyKxyp2bgnLyHxgHbqYzbTTGw+e8z5zgUCFne7TGBAA=;
 b=ZIduPe/9ZlANo15T0TlVumJrVQB6Ge+uPdaL5UX6Glrx7hjIqe+jVzddzSYa+ztclC+6u5VnftcGA6vOtxtDungh//cYLtQ4mB/hWfwkn010v5cDEvdQRcd1zbKF30rcq9XN0goTUaD+7gfE7yDcJ8SYKrGyKuQ7M0kxa2dr2DBgj4EXPy0gwKhVIww4kx57VfL2a7X+8oPwECwW+ILqRiOWSJTXNENPFzGILBrkEkHhYR0YMqGR39HLgtZ9e0fuev8zk6YH52OZCi/vvVylYWwN5yqgOuIDN8cMoBXPbTmJnQdAb3K+c1IKcXXrRiPgl0przz1dYPbXij49gG/Sig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fc1fdee4-e567-038f-a90b-127548a8da02@suse.com>
Date: Tue, 16 Nov 2021 15:12:54 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
 <ad01ebdc-7fb8-3c76-d953-08b73b4b0c25@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <ad01ebdc-7fb8-3c76-d953-08b73b4b0c25@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P191CA0063.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:7f::40) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e48aa785-41bb-4005-722f-08d9a90b300a
X-MS-TrafficTypeDiagnostic: VI1PR04MB7040:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB70402BE39D33709F4C19BF19B3999@VI1PR04MB7040.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Z8qWhQLeMJ2j2f/Dk+XutDYZckTIW+BNTpizUAyZbnWZlaIicQgiaB87lj1wN3aBoYNZYK/Eb5h/H9oyBcfjyONODZbpfucGjiLez6z7mMM/xdWGODyu7Rx21fsSKmTKGlVfHrjXX3b8XlBPyASzt1wiTkDb98NYZYcDuy9Ybd9k/pUcd9piaJ+3C2jY7uuA3qrOh4sZZ7XzUgI1G2XAgvRZcAyIr5HjlhomB2HQvR/RY4C9bnmGRF5bwsmKeQY/CycUDgVBiUKxBCOv2tdm0TuBM/FMates8ziwo1pTCy7fbEfW9VMTbENfNU9YUfFpcuNS6EFRb3Sqf2U+CmP9Ajkz1urgWjCf9XNb4lxSRCaBjwRUqrEuOEqUObOp/yjPRqkvJc8SMbONh5Wu/nbPEclG8yvQ3c3vuzkSVAELPgxKWEBt+OT5YRdtPmTBMlPKs+V4ZvSJlIRGUwqlKG0biCWiobYmez/cO40kKRmK2z3Zdh2c//g4zKE86SHBWm3ExKJAzoISFoDBzGQmmHlMv/Ur0wvTezAtBs2DPfhE7tY7SyANU59BDAbGnmazzVBLhB/E7uygaqmDmMLvmCTfpDQ+ltBEobupUeftYqN2puZEIyT1qRau0cjmRG9lfgUPVQjw0RoALDEXxg3Xk5A6JCpIkrE8CFBsVmX+tQIwY6hP2On2twG73QZAxdBNGz8DTpYeXg2tiKMY6M5LU1XAQ6HDvlJjS/YQ2bQwQfLk5RfbJhC1jChOUmON7cmfmf4P
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(31686004)(8936002)(186003)(508600001)(2616005)(36756003)(66946007)(6486002)(66476007)(86362001)(2906002)(66556008)(38100700002)(7416002)(4326008)(6916009)(53546011)(83380400001)(5660300002)(316002)(31696002)(8676002)(54906003)(16576012)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Tzh0STUzdmY4NFA0MEZhVklra2k5dER1NlFtK0lrWmxKNmo5NEIxYTFGTWdR?=
 =?utf-8?B?VzJuWGFQbzJVbHNFaU5kUkU5YmQwcENnK3FQK21tTjIzWFBsYnZ4TkNNWS90?=
 =?utf-8?B?ajNqMmNoZm01bUdqZVdxdlgxdkw1ZDNGRlFBS2hNMHVzU0lRN083OEcraDJD?=
 =?utf-8?B?TUlubWVBcS9kQnVOSHBBNFFiWFdJczR3dzc2Y2NUTGMvUHhXNG1jT1lUQ1p3?=
 =?utf-8?B?bWlLck9KT0FvYnY3NnYrYnc4R1laKzRhckxkbHBsbkFCSXlSaW03M2FiRmxD?=
 =?utf-8?B?bVBsM1lzc2lKNmpEa0lUT2h3U1pVcmNFajVPZUYwd0VaMm1wUWpVc2tGZ2lH?=
 =?utf-8?B?T3lpWXd6c2Z4cE9UeFdNQmpqaGlranJEdGxkclZuay9uUlptT29ONFZPc0x1?=
 =?utf-8?B?TGxUcWhXNHFxZ3RoblZGQ1EwVG9TSFFEeWVaOW5tVzJCbCt6dWFaeFZ2emlI?=
 =?utf-8?B?QUoyYVBET2wzMTBJTFRGeWZaRE9mREg1cXZ0KzR4ZG1Ocm4vS0N1dGxiNEFU?=
 =?utf-8?B?dTZkbDdTK0VLK0VpWHFnQ0Jham5vb1ZObG11QnVZT1dyL1IyS1ZnbXE0bk9H?=
 =?utf-8?B?bStnT0c0RFNSNEtoSkcvSHJlSDJEdEhYa2VjOFhaRnlwb0VDWmNCUFYvYXl6?=
 =?utf-8?B?REFTa25PaW9GZS8yZlpkdFZta1JPQStFMkNaT0pWUnlsZ2JMaXZqdElqNzlT?=
 =?utf-8?B?TWptUEEwc3hTazVTQklHN1RNb1orNE53QkNUeTBaWGpYNmd2Y2FYNHpWN29V?=
 =?utf-8?B?aXV0bWpuNEZxZ2t6QTlTS0NnRk9uTFE3SGIyN1lGeURIWkpqQ0FJM3gzTWtP?=
 =?utf-8?B?N2lQMkYrK3dGSjNmdHFBU2FSWm5sVEVlS2pNcXljdkpLeHJsanRlbmtWaFZB?=
 =?utf-8?B?Q0Z4azdjZTFTcytUN1A5dHJkVjl0cUt0aXFqd1NSZUdEMjdXNjNXWkplM0Zx?=
 =?utf-8?B?MU5WMG5vMStSLzU1cHhac0xSdkVweGEvNEN3eGQrMnNscGUzK2d4RjlXU1VM?=
 =?utf-8?B?TVcwVkZLQmw3NG1wMytRSWVUYUZydU5MWVQzdmJlanlCT2JFS2w5SXFNK3JT?=
 =?utf-8?B?VGswNzg3Z0R5WS9FaDJvZEtTYWJ3QVY4TGtaYklRa3JRYWk0dEoxUUppSDdl?=
 =?utf-8?B?S2Q0d3lJOU13ZFhiTG9tY3l3cWNEbTdOaExYVlNsQmNkRFI0SXp0TkJDdFJ5?=
 =?utf-8?B?MzFIKytnMG1salFMT1dBb2NaZXV2STFMaUJPUUp4SHdrUzZlRm9QRVI1SjRq?=
 =?utf-8?B?c1F4OTRSeTkxeExVL09OSDVSOEd1T1orVnpjQVBqckxlUFNBRG9vVmJhWnFH?=
 =?utf-8?B?TWlCYnd3QmpVaFRYaGNQdWExR1VxVzduK3Z6OGNBT1BwYkZEUjBDbmVVN1U1?=
 =?utf-8?B?V2VRSXNmSjZKME1xM09YUm5YbGxDM0hBcGFxUFBoRHRTNDliK1FMajgvT2xR?=
 =?utf-8?B?R0ZTbnlyRzQxSHNOb1lDSEVpcXAyRjFtQTNqditad1JVT05qeDF6aUdjV1k4?=
 =?utf-8?B?K3hpYzhjT2hGaEZvbmhtNVlYSnF6WTNVZTFETFJnYXk4RjJVNU9abUY0NEJq?=
 =?utf-8?B?b2YwR2JGVVhBWjVqVHRTeU4zZi9MN0tkbk1hWE11emdVb1A5OGNlcUZoZVlu?=
 =?utf-8?B?aVM0OFBOOVdKWlAxYmVPSW1UckdwWnQ1cGEyTXBqbDJudU9HdzBkRExOOWUy?=
 =?utf-8?B?U0FzY0JzNUdqWGszY1JLQk8vK3UvYUhXY3REMDFJRGs0eW5lNmtXL3FENGth?=
 =?utf-8?B?VHB1dzBqdlMxYTA2OC9KemlESEs3a0luakFGVUtCNXF2c0RUbFIzcG5EVE1a?=
 =?utf-8?B?UEJWUjB5SzBINkwwU01WQkJmQW5jSm5waTNxVUQwMzR3QklreUVrRjFHWlho?=
 =?utf-8?B?VWNaeFNsczNha1R1UjVscitJdGFWK3FJYjlTWG5JaXRXTFJxci91Mk84ODgw?=
 =?utf-8?B?Q1ZaQyttd0s1RE5HQnVlWDU4Y2Rtbzl6SFJ2SStLVUpIa2lCS2V4VDRqK0dY?=
 =?utf-8?B?KzRFM3BkdHJjMDRyTTFIaU1ROWNYVHhldWFwT3ZUOE9zRXE2eHg1MTFCQWRQ?=
 =?utf-8?B?UXNxMHgyRkZBaXVteUdBYmYxT1hiSEdQRHRhQ0ZOQ2Nhdmp4eGhtM0F2TG85?=
 =?utf-8?B?R290RFZwZjRFRFkyWlVDcE1sOU5DYkpHNmlUUzJDM2lFRzgwSk42UmdseHVw?=
 =?utf-8?Q?fJQ22lAakxI89c/TzbOMrBg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e48aa785-41bb-4005-722f-08d9a90b300a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 14:12:56.6440
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vqN9J0d4Eyyn1mLIWqyTPV7Gq9ZrkeVXOmBZYvcKdW0HDtpkMBrTXgU3/u24RzwGkWm7yiFhAlpeC8faUizfLQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7040

On 16.11.2021 14:41, Oleksandr Andrushchenko wrote:
> 
> 
> On 16.11.21 10:23, Oleksandr Andrushchenko wrote:
>>
>> On 16.11.21 10:01, Jan Beulich wrote:
>>> On 16.11.2021 08:32, Oleksandr Andrushchenko wrote:
>>>> On 15.11.21 18:56, Jan Beulich wrote:
>>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>>
>>>>>> When a vPCI is removed for a PCI device it is possible that we have
>>>>>> scheduled a delayed work for map/unmap operations for that device.
>>>>>> For example, the following scenario can illustrate the problem:
>>>>>>
>>>>>> pci_physdev_op
>>>>>>       pci_add_device
>>>>>>           init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
>>>>>>       iommu_add_device <- FAILS
>>>>>>       vpci_remove_device -> xfree(pdev->vpci)
>>>>>>
>>>>>> leave_hypervisor_to_guest
>>>>>>       vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
>>>>>>
>>>>>> For the hardware domain we continue execution as the worse that
>>>>>> could happen is that MMIO mappings are left in place when the
>>>>>> device has been deassigned
>>>>> Is continuing safe in this case? I.e. isn't there the risk of a NULL
>>>>> deref?
>>>> I think it is safe to continue
>>> And why do you think so? I.e. why is there no race for Dom0 when there
>>> is one for DomU?
>> Well, then we need to use a lock to synchronize the two.
>> I guess this needs to be pci devs lock unfortunately
> The parties involved in deferred work and its cancellation:
> 
> MMIO trap -> vpci_write -> vpci_cmd_write -> modify_bars -> defer_map
> 
> Arm: leave_hypervisor_to_guest -> check_for_vcpu_work -> vpci_process_pending
> 
> x86: two places -> hvm_do_resume -> vpci_process_pending
> 
> So, both defer_map and vpci_process_pending need to be synchronized with
> pcidevs_{lock|unlock).

If I was an Arm maintainer, I'm afraid I would object to the pcidevs lock
getting used in leave_hypervisor_to_guest.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:21:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:21:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226304.391014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzKO-00082R-QO; Tue, 16 Nov 2021 14:20:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226304.391014; Tue, 16 Nov 2021 14:20:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzKO-00082K-NK; Tue, 16 Nov 2021 14:20:52 +0000
Received: by outflank-mailman (input) for mailman id 226304;
 Tue, 16 Nov 2021 14:20:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmzKN-00082E-Kf
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:20:51 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6663be78-46e8-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 15:20:50 +0100 (CET)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2059.outbound.protection.outlook.com [104.47.1.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-10-U4AUoh_jOx63D-956Bntrw-1; Tue, 16 Nov 2021 15:20:49 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4606.eurprd04.prod.outlook.com (2603:10a6:803:70::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 14:20:47 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 14:20:47 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR04CA0025.eurprd04.prod.outlook.com (2603:10a6:20b:110::35) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend
 Transport; Tue, 16 Nov 2021 14:20:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6663be78-46e8-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637072450;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=4YHrVYXhFY8N/CjkmefMZHQwY68DAEjz+e6XBcKGUEI=;
	b=ARLfkKJ+krOTQiTVlhP9OJ32RKAokKf6SjklqV/0Bm1Kv3959XOd8dHn+U/DPMz3cBtqfU
	mm1wZK/4cy0yw2IUAvUEOLZtvwK+Eb41IC0ttcdZCR0qMhnc3GsR/IDWuRUb2L+PBOFKYt
	QuLQdSzSpbkXIFJIh1mSCgCncXNTyzU=
X-MC-Unique: U4AUoh_jOx63D-956Bntrw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=j9IPuRuOzySy7nHljyVABQho0HtD1N93908eJIKy/zpAmJcNw8zATRGxxn6JzBaEKp2WYifVM4zG/gYyRKAQQdnob5psEYBzcAWwq6wGjhYzTkPtHovcrj7jXkHuVrHV7plHc+n0AegHis9tXeppQxjolM6foVs/N41GsyVotxbhb8NeZ/9vvUYS2aReqaq2DUfA2dSzcWL0Z2nPwYui3vcjiPiDsIU5zd830IT/qwaSiPsCqJOzsAHkcmYt6okl1l7SZJTFrSfWmEBoB9S/l5dDZ+rc1SEWgxeO6NUZdQI/mgxk3ZpQog8IVXKR2Jb87f6nGOYiBO3Skx0ZuqLyzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4YHrVYXhFY8N/CjkmefMZHQwY68DAEjz+e6XBcKGUEI=;
 b=E1IFJc2cQwseS/5CNlnMCp/m8BzE7u1m80ptPWVz52I5SCCdn5eYyL5Ci0r4iUr1eIqzJL5+BxHxfW18p+1/xOw0WfHvqyPSwZAIY7aRSAGFpLWz/NGaESb6/RCfeetV70K/SwvBhhl3k20rJ3U6FRyqeQNPzfJT1TAR/azyEC63x4MQo32eSAORy4/J69FoNEi1L3xclSHtpAtQExeI1ZDzBCYE8w0qvBeYsrKFv3U2ZfwVTUk/LCWVrDMB6hL7xxmFKgr0EQUpL6bmKla0ieANYvtgl40aILZ224PgFGCczomixB2Ht794gNWOw+0EXNRaaZz0mZKsXoUICdHBZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <570d6aad-764a-cdb1-5aa2-dc9a9744907d@suse.com>
Date: Tue, 16 Nov 2021 15:20:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v2 0/6] x86: ACPI / APIC / IOMMU interaction
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
 <e1efcf93-b633-26f2-31f2-9ee53563a41b@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <e1efcf93-b633-26f2-31f2-9ee53563a41b@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM7PR04CA0025.eurprd04.prod.outlook.com
 (2603:10a6:20b:110::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: dee9f26d-9489-4f16-efd8-08d9a90c48a9
X-MS-TrafficTypeDiagnostic: VI1PR04MB4606:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4606920CB38FB9BBD536AB35B3999@VI1PR04MB4606.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	MgXfgHt9Pnjadp9viAPYLYffjK97JcWpG2QT1iDJORP8WpDjnMsq+vQouHT7ptOSzGwWt1B3j3maYDftK764wlWi5lTzlSPPtVYxVFk10/xoH6is/OHdJgeTZcj1u+15sQwEqm261XFIl+qa22ridx6OCHsxfr7toDNL+yUd9oSCw0xUFrf64noCvC1CVnxwAIEk58XUqTvxi8C1UQaUAHMQKFSWHnMJhZEHOkcbAP5d8i1nOY/sREsdPer5Gbb7HvnGaFEYGuVWhskbCIKji6DqHItjBH6Ku0jQ86GGfuOP2KXnVpldGC1E665rZpRSKzYxLZUTOygexFhr6vugvjHVT1Rt/4Ubm01CmH6ooM0vqZhpJAQJcMqcRKIQoqjpKSoMQPV6xvnIx5UZ3FscNqnzkxpYlEjmBujE8KBmatoLZWm8U+vHSRTDC0Q61Vk/NLUiGbpbu+FDmNyaQaVp55wCzYQDlW/KmPr74cn2xHg/eFIxf4pOpZrbUEuttnOkL7k5bSolVzQzSAr2x7+IX3/umkxIvo7Lph1ma+WrvNqXuH5ReGHoQTAE49igLdo28OXn7eEq6FJgC5nCO8R2DJjxhEVxQt3O8VI0ex+PJJs1JnQy3JxLn9VYPvdyKU1+B1dpazZx2cvZvFKGCwJDgERQzrWUYJxGXB0vhSWKUC3on8lq7QpJgLcU6yyGZGmnxmPH50ZXNBe+eGe2xWpp2ohYyN2GJrwFqtm/4z8FVRV2K6ILAEWV67Vc1PtN+lG8
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(508600001)(6486002)(4326008)(31696002)(8936002)(6916009)(956004)(53546011)(5660300002)(66476007)(16576012)(31686004)(2616005)(8676002)(316002)(83380400001)(86362001)(38100700002)(54906003)(186003)(66946007)(26005)(66556008)(2906002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T3g1b2pxeUwyMnFJbHRhZFhER1I0M1RkQkMyUVhPZi9LSmtzaHZpVnFTbTQv?=
 =?utf-8?B?a2ZLQURVZHJLaDhHT2lBY29XbHFMMGtrUmIxQ1RPd3lSekJ1SFVZWXRWdUV0?=
 =?utf-8?B?MnU3MjM4NG1BQksyR05NS05vdnpxbDJITi8yTlBwb0pTMjdSOFh3cTZtTHpv?=
 =?utf-8?B?R3poWVZDTFB0SXVXbjlFcnFzNHpqQnVZU3ZIcnJqT2k2S3hLMGZuU3Q0a1VP?=
 =?utf-8?B?MkRLVkFjZTFlZ3I2aUpXdytRSHlMZTZDdTJVaFhVRThqMHloNHBSYXQ2Sm1C?=
 =?utf-8?B?WE1ZL1o2ZkY3Mmg0MmdPQ29hMVJzbzZ5NnFPZEI2QWJuM3BrcldPN21SQW1D?=
 =?utf-8?B?eWZXRjJocW9UeTRnNTlXU3pDY0dyR3RCcHVqcTVWcmZGRkRac1QwQ3V1MVFJ?=
 =?utf-8?B?MFdBUEhVUTdwS05lK1ExQlhxSFVYN05YUU5xeXZpbGdRaWZtM05pL3FZUzVE?=
 =?utf-8?B?allXYlEvTXovQTVXY25jT2NxYWlVRWU4S21jTlJaVjcyR3Zyc2xleDRyTlJK?=
 =?utf-8?B?RjVoazFId1MrTjNMbWUrTTFEeDVMdjYwQ0dFVUtPZnhpdkdTUm5idVNINzh4?=
 =?utf-8?B?WCttMTJhN1Z0TW00Q09UUVBVaWIwekdxbGEzRkJGU0NseUpwcE1takpDUENZ?=
 =?utf-8?B?eFpkNnRmSTdyQkdYK2xZYUdKUnlmUTRKN1R3MzBmajZkdEFXVk1mQWxqenQ3?=
 =?utf-8?B?ek43Wk9UemdtVmhXWTlDYVJqNU9GK3dDMGNzQ043QzRydC95N1B6Z3Jmenkw?=
 =?utf-8?B?endRM2xIVlg3N3Rvd3VrSHJTazFkWFNGaDFPQW5DZVBZMWVWRlBRamFqU2tF?=
 =?utf-8?B?cTdSSG0vWlovWEtSUG8zTjlLbmZLRkw3UUJHdnplWUo1VDJBNVc4ZVZKQTFv?=
 =?utf-8?B?UXdad256ME1ycVM2VHE5SGgrRjNadHg0d1NOMjZhbEZwTHRjcitMS01nN1Nj?=
 =?utf-8?B?YW13bHhpZ1NpVGJFVkJOcXlRZ05LOFArVndlQk9BUm9xaTZzd1VlZVFsNmM1?=
 =?utf-8?B?aGF0eVl0VTJCUW9qSk9jb2xwL2l2UzFsME5rcmRFWHVVQit1TlptemVHU0pH?=
 =?utf-8?B?bW9pL1FMZUN1Z2FaYUpzQ3NoeDBXNjY3NDEwZngwd3B4NzhEc1A3cHlEMERW?=
 =?utf-8?B?T3NwK05OKzE1ZFhNeTNjTVU3NE1pdEVjRHBsWDZ1aTJscGJaZTcrQTViZVow?=
 =?utf-8?B?ajFsL2ZlRjhqZDNsWmRybXF3NVEzTFNiVlBaYTUwZkFNcXp0enN4SkFyS0dE?=
 =?utf-8?B?ajNtSS9uYUl6dGoyb2M4S3RxV1hJcGxLVExGVjdnMXdScnhwMUJka0Iyaitv?=
 =?utf-8?B?ZWFmQ2RUWGx1R09YdGUvZW1oaTJHVWZTMmFQV1kwSXBtcFdBbVZ4Mk50RWVO?=
 =?utf-8?B?ejBYbHBNaWJFZ3JDbTNjeXBsNFNwKzVIN0ZwTkg1YndNcWM3TFdXUUNrckFa?=
 =?utf-8?B?TGVXLzl0eVRIVjcvT0RRbjBFdjlRS3JRL1J1dGZZTExDNHVyOHQ2RkVHMjBZ?=
 =?utf-8?B?ZU9BY3BSWFRZNEtWbnNxcmkyZ3dFOUw1Q3ZRTzl3aUhNa0VwREdTTE93WUJQ?=
 =?utf-8?B?NGFBUk9YSHIvcDhTZ0NXUk43YXlHMHFGTXByOW5JRFgxU2FubFZJQ0VORHE3?=
 =?utf-8?B?aEFGMjg2eGRNM3BwTWZ3L293WmdnY0wzYUtNSGYvckpFTk1Cb2hBTCtia1Jt?=
 =?utf-8?B?TTAyRjVlNWxYSTkvTlpVU3VxOW1WZ1ZzaWQ3SWpEVW9xN0daeVVmMnMrVis0?=
 =?utf-8?B?Y0RRWlV6QkkxNld3VFlSaWU3UEFhRzB2ZHZKN2dzcndLY2JCWHdqdGRZNnJ5?=
 =?utf-8?B?WktGbUp1ZGpzc3NKcFF0VVFib0xQeVp2VTYvN3kxMW16MFJDenRHUUJMYk5o?=
 =?utf-8?B?YXYxZHpLTmdGRWVHNGsyS3dEdUxFcDZSODBWaURWTXJxL21NTlFwdXBRZXV5?=
 =?utf-8?B?WEd6TUlYbnpQTkVPdlQzV0l4TlRVbWQ1NTRWZ3ZzTFlUOXYvTFRtei9uUm90?=
 =?utf-8?B?bEdpbytGdzBaOUo4OGdUSDBPZFhtdmNmTG5uY0xVODNzNG13RFlPZnFlNDRH?=
 =?utf-8?B?UmorcUNBdHN2dGc0dzYrVTRtUVgyUUY3dEhVbVlTSWY0eFhhM1R3TVo1Um16?=
 =?utf-8?B?Sit6bGZPUnZUbHNWV3R2MG1aaTR2RE5IQzU4dnBCV3h1S0tERGtzNTBTZ3FI?=
 =?utf-8?Q?jMMJ3bt3QgIg/HqNGE6/jKs=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dee9f26d-9489-4f16-efd8-08d9a90c48a9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 14:20:47.5203
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AgCohdUeoEdp+ShgTsyq4VYaemh9hmK3ioQ4Hx0taUKrj1lQSJ7SJQ+VqcFaGW4vizS0KL1g1rCXKNXghDNU2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4606

On 16.11.2021 13:09, Andrew Cooper wrote:
> On 05/11/2021 12:30, Jan Beulich wrote:
>> While reworking patch 1 (the only one here that I consider a candidate
>> for 4.16; see there) I stumbled over quite a few things that have long
>> been ripe for cleaning up. Hence the tail of 5 further patches ...
>>
>> 1: x2APIC: defer probe until after IOMMU ACPI table parsing
>> 2: APIC: drop clustered_apic_check() hook
>> 3: APIC: drop {acpi_madt,mps}_oem_check() hooks
>> 4: APIC: drop probe_default()
>> 5: APIC: rename cmdline_apic
>> 6: ACPI: drop dead interpreter-related code
> 
> Patches 2 thru 6 clean up an area I'd recently stumbled upon.
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.

> Patch 1 is looking very risky at this point, especially given the late 
> correction, and I think it would be wise to wait for 4.17.

Well, that's also been my takeaway from Ian's responses so far. I did
put a question mark there because I wanted it to be considered without
meaning to actually push for it.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:24:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226309.391026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzO9-0000En-BT; Tue, 16 Nov 2021 14:24:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226309.391026; Tue, 16 Nov 2021 14:24:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzO9-0000Eg-8K; Tue, 16 Nov 2021 14:24:45 +0000
Received: by outflank-mailman (input) for mailman id 226309;
 Tue, 16 Nov 2021 14:24:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0oQI=QD=epam.com=prvs=1954156bad=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmzO7-0000Ea-Oj
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:24:43 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eedfa2ae-46e8-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 15:24:41 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AGEBarI020972;
 Tue, 16 Nov 2021 14:24:38 GMT
Received: from eur04-db3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2051.outbound.protection.outlook.com [104.47.12.51])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ccdq9r65d-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 16 Nov 2021 14:24:38 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3375.eurprd03.prod.outlook.com (2603:10a6:803:1a::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 14:24:30 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 14:24:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eedfa2ae-46e8-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CYJQ7ii0mHvTirHkLc1dADKWvJ1zHxhOpX8qd0tlGoOKoGsMWm/TCNpgoArxjd5weO1PZd0CMaUeyVO1/ycF5HLh/dkJC15B6bzkovic1jtYYEmmZTImIIPW5XBAwEoDWMuZ3WCcLj4LrvljDBCzkRTAxnCkXgqVjy9sSSrC46Yxs4JwsavzK87NalZvGKLs0VaEEsvqztBGrrmbDdmhgnxIyiCU6eGewdI+1j/QPnbeErmZoLCzNrRRqvZv+ExDTuPWbnLJ+Lb5fFRRe6URlNNR9Gwfjogdmg9YBPRA28giOZ3+6JsXI6kaSh90sD8oTBxZP/qLhqc0kqc0Voimrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ERC3kglmfYm4kn36U4BGgfIU7oIuuiJ97Q8wXkZEMDM=;
 b=lJ+FiuEeE4yetXIWR5vf5QvARCGzqHkO02fr8dmyxAQeIjGU+1OlQpLnhorj/23936DhIFUwGGtWn7tUgXBDGAltI/SlhjpxAClrfY+/QXIWx+Rm6HX1VeJY7+gLHk00fbJLNK1SRwwsZni3+Y+sk/beVhoxlvXdon59nFGMCiM7TMjjbK8Ahbkuk5KGZq1Za5gcOKwvQghjMzWxbWSmL/2qmSp4b8RHWMTm4xyt0NWLVEBOG0HyvElHy6urNAdoPMHc6sGcCeTBOk3H0xPeB5D783TdvYyEQI4bg96oj4oyVEmn+Jh2iPGdKNrc9Fs+45iGobfqxpaB6P/4TG4Hew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ERC3kglmfYm4kn36U4BGgfIU7oIuuiJ97Q8wXkZEMDM=;
 b=YljFrr+tjWsR64yry+Mw3sBLoRkSwKzlowrnrlKXl5RhV2OxyR0WObcsCgSbrT8kHrqQugt9aaHLIeORDBCSzwf3GNO3hc1GiRnOLfqRHbuwtWeCMK+9tuVeYLKPgmynojAv7wI8OZYtlxEj6bapoN6t8YAhW0XVRP4rYMrVDResTpszxRmxdn36q3StR8Cc84zr6RsBxRN4oaZ1M5PjNfZHDoQj5Y9JONFTFWEKc0pnkDnByeVxX9hCObuE0i/JILQd2xeRc9aRD8eTdELn13HBwmQY9aKpxLNIdIG2A1Uiu9jG2IYTUx5eGVxp7k8C8u8MwN+9ifwPS+3wqlhNcw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        "julien@xen.org" <julien@xen.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awE30EAgAD09oCAAAgGAIAABgyAgABY44CAAAjHAIAAAz2A
Date: Tue, 16 Nov 2021 14:24:30 +0000
Message-ID: <55a95ff3-6717-780b-25f9-c43728b6270b@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
 <ad01ebdc-7fb8-3c76-d953-08b73b4b0c25@epam.com>
 <fc1fdee4-e567-038f-a90b-127548a8da02@suse.com>
In-Reply-To: <fc1fdee4-e567-038f-a90b-127548a8da02@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ccec1107-dc50-4644-c44d-08d9a90ccda2
x-ms-traffictypediagnostic: VI1PR0302MB3375:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB33755EBD94502D13D58ACCA5E7999@VI1PR0302MB3375.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 ejsexkSaetSHBRGBKi1GWlamyMSf+5jXmEMlRZN7luY9nHx7+y3seO03tFJWuuO7rGuzJxLNrAJ5mArLdn/EW3U89PWsd0f5ePbhzFaX6Z1NCS7ytzvQqCqJoztciDVUujLWWb9liw0UuNEjkbXzEV4m2zo1UG0pcZtJfnvp2UxkON0/YF627paWxVnEGtvoQdSlFTjAjObjlV5YIiy1TWYg1JkKgh9FFu+I0SvaMJ/Ep0vZpLzc+bFWUQO4xY0KJeg1ntsthc/1yDsFr/zIepwyCFxGwMIFbqCmAmbukiqb/fHI5/JfSpVJ2yF4J3MMQ/NcEqxLHWZtGSRQrySWmdB0oMzUttDjkmRkgHCIe4rRybaU7eeB9bzGy4AQ/MHTAmYFTrpJIVZBLHLZCUPhho2M/cz04zD1asdbwj1zMOVIaZAsyRSWlggNhbKh9OseO/LiB9BgQp/U6vO07JgSWK07vAPx0VeTMVto8pT9jGzfVBV4ihsdHQabmSBYq1MoLvFxM4ctUdBZ9NlPh+SVi+e6uCrv01wZrSPFbMv4MjMTQYUp7GvnX4hZaMKhYt+2bdG1tu501aWHNgpPY0EBLg0QcXqbOcusTbq/Kg5gAaOojg3qZDc20qVOmW/FAH47Me+BXe2prP1TBKbvM/RO8KZ5PKxnmF2Of2Xu6R3UEREEh18OPWge2Bg4lV+0maGQdpHWbcsjU5OFiVc4pBUFS0V3f1mt8uuVolNmMXtJT9v9Dnzem19zce/E2Csh+RDW4f6lM3k5m88MzMtLbTB0gQp8Hj//BGKDYHSnSxfZHgDNRciH9oW6Gl2jd2qkZaGnPn0b5MEzDBjFKo0B2r9muw==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(31696002)(36756003)(186003)(31686004)(2616005)(7416002)(38100700002)(4326008)(122000001)(64756008)(86362001)(6512007)(316002)(5660300002)(8676002)(508600001)(66446008)(83380400001)(66556008)(8936002)(66946007)(66476007)(91956017)(76116006)(6486002)(2906002)(54906003)(71200400001)(966005)(110136005)(53546011)(38070700005)(6506007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?VkdrMkRMeGEvc05SenhOZjhVcTQ1cUU0a1dyOGhvcU9hdk9OZm03ZHNYd1oz?=
 =?utf-8?B?ZHpNSEQwaTFCNTJvc1ZmUUVPUjVnSjFWNytmYnN2QTlKSFRkUmRSR3B2b3l3?=
 =?utf-8?B?ZjNLekV0cW96QXBIV0I4UnVNOHlQODJqdzgrVXo0czZObE1RbmVKendOT01I?=
 =?utf-8?B?UTdBblRlaDZlKzM3Mm80azZ0WWF0emJDTDl0eUYwV2Q0MUFDeHJCVDQ1OTlL?=
 =?utf-8?B?VXcydlFoSWVEam5LUTB0UG1yamlnSDdwSWVrWnpRaHhIVmxXS3p0Yk1HUE9n?=
 =?utf-8?B?ai9hZW90WGdKYmpUTXRMTlRuc2trTlQvc1VVQWJHMzlKSUJNVjJlaUZvWkpC?=
 =?utf-8?B?bE52dGM2MUcyWDZKLzNacEJwN3pOWEFWSDEwSHJNeEZjK2IrdEdkM1hFellI?=
 =?utf-8?B?QWZDOFR2b3ozQ0xHSkVxMVlSbmNqekRqeXMzZGZlWlh5MXE1cFZ2aHlTT1h5?=
 =?utf-8?B?MlBJSnJYemNsbXpYNlJwV1h2N1FwV3NEQndkU1BxU0R0MlNhbnhsZVF4blpF?=
 =?utf-8?B?WllPSGc2RUxmUGxSLytkZC9HQitKMWRKNnhCSncrZHh5UlFuQXFqeFBLd1Q3?=
 =?utf-8?B?YnhHN2tBSDJXWmNjcm5JODY3UVNQZEhsbWVRbkZ2YTQ2N21hN3d5anRjNDVy?=
 =?utf-8?B?a0grdThnR205Y1IrRko2dXFpWlJuUll4NWQzaGJuZzZFeTVhblQ3OFdyYlFh?=
 =?utf-8?B?d3RiUlk3V2pyY09XaXZmWGJkbVdJNks2eFQ3ZzNWYk5kMHl2aHRJdGI1aUlI?=
 =?utf-8?B?Y0VLN0kxaEc5QkJlNjFtRVJpK1J1VkVObGRlTG5GQW81VnZkeWJFcytlM1R3?=
 =?utf-8?B?aHhkMU5RMERDSWFWREpXUzNUNy9SWHZzeFgxY3hKRjhOSHpHNm5SVzc3RVQy?=
 =?utf-8?B?ZEtxdnRqVVh2V2tFTG9BVmh0a0VVUkFJRHoxTXFab0Y4OVZMSGlFV0VORFN5?=
 =?utf-8?B?U0dCWndMNVRiaGszVU55eFg0amNEZk4yNk42eDFVRnEvQ0lIS3p1eGlVaG53?=
 =?utf-8?B?RzYrZ1hzS3VGUExsUEN4V3Z5SUtaaXE3UTcxSmRyUFJqS0lxWVRHWmJQNXRx?=
 =?utf-8?B?UHNCWk9XT29WeTdUV2ZrYWVJRzlENGFUejZUYzFyY1crc2lDUkFBclBzRW02?=
 =?utf-8?B?dEQraTFJMEFOeHdzaFMyR0UzMVJvV2xjd2pzWFFVdUpFV0ZkNnUrVWdmWlk2?=
 =?utf-8?B?Y1ZxNm1MOUpKaE5nOFVzcW15bFhpaEg4MWRsN1JUZTFNc2tlQjA5S0lDZHpn?=
 =?utf-8?B?YStINExHdERhL1RuaDRTWUZIbGE0K1J0UWdlREZFQ3loQm9xS3RYWVFCb0pO?=
 =?utf-8?B?WGZ6ajFOWlRtM1dEeTYvb1hTU0d6UlF3OGgzbUZzdndXVEdqcUdqSUtUbDVz?=
 =?utf-8?B?YlBERE11WktDOC9uT3dRSGJwVXNQc1hjaCtGd1pCYytOS2doUGV0eEE2MXNn?=
 =?utf-8?B?dSs2VVpRV0xDNkJDcGRpck9xL2hrQitQN3V1R0JPM0FCbE9zUjZYUG9UUFVw?=
 =?utf-8?B?OGJjazlScXdtT1QzWFpYVEtOVVJFU3BFQ1Y0SFY3ZVpCVm9EaXZYZ1RMTlNW?=
 =?utf-8?B?L1Ewcm9Cd0RUNDBBTGM0aml5YzA4UitUcXJpTStaeHIxWmhDWGdYZ1ZTVzdo?=
 =?utf-8?B?dGNCenMvbGcvdjJXNkZORE01T2J5SWFRUDVTYXhSeXN5UHJVSXZrbmN4R2NO?=
 =?utf-8?B?UTNJWVArVmJoSHllempvYW1iY1VNa3RjbXhhZGs1T2Z0UlVnRGVCTk5hNXAx?=
 =?utf-8?B?bDA5YUl6dWRNVWdQakZ5a094TlRsUWFLZFdEcEF4aU5uZXQrZXZ4YTBpYWM4?=
 =?utf-8?B?TEg3MTZVM1EvcXhaSHVvb3o4OVhHVGl2RlJOakpIWk9LazF5RWlsdWYralZ0?=
 =?utf-8?B?RTgwMVRlWElvOWNQY3ptT2VQUm1LNndra25DR280VnlqNUhtMUI4Ulo0bHFK?=
 =?utf-8?B?RUtRNnB3WUgwWkxJTlNSR0EvbVRIelp0RjF4Wks5OUxBQ3RtbEk3a2h4dnpy?=
 =?utf-8?B?YStUY1Q4MUhBRlM0amxFbUNTdEh2dE5qaWcrZnYzZ1I0VXpyNEFLcldudkJw?=
 =?utf-8?B?K0NLc2J5WndNNGJkSlRpWlMrK3RBMXF5bG1JdW5XQk9Vb1l3dUplT1M5VWtH?=
 =?utf-8?B?Z0RacldINzlnM24yQU9OTGNtRjI4QXVMaEtMc0tPaHMybFpTeDlsUzRmWUFx?=
 =?utf-8?B?N2F5RG1nbm1RR1A5QWkycE95WGM3M25pZmF0OVZNcDl4WG1McnlBQjZ4TEd2?=
 =?utf-8?B?SnhyR0JHZjJLdVEyZCtWVTM1QzB3QjI1RFdiKzhpQXFjenVkQ1Q0RlpRR3pW?=
 =?utf-8?B?YzVzS3BIUThUUnk4b1pXM0M5WHpCd3lnM0loejhWLzI3NXR2cjVkdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4EB8B0928660854FAA8AE862F67E669C@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ccec1107-dc50-4644-c44d-08d9a90ccda2
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 14:24:30.2671
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: SIkmf49BAQSBa1GA152dYoPggZ3O4SBDHbTDyQrD6jU/4KTWvlGe6wPuOW54CeisS1U0HDxFu0uF5Mycpc+wpbpDp74FQgUR38PcwiumhBy2s5O2Jch4aJVY9uBGhdmW
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3375
X-Proofpoint-GUID: 2JLV5KqXfvx2K4ERmLN_aqzx4Iz5g468
X-Proofpoint-ORIG-GUID: 2JLV5KqXfvx2K4ERmLN_aqzx4Iz5g468
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-16_02,2021-11-16_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015
 mlxlogscore=822 spamscore=0 mlxscore=0 adultscore=0 suspectscore=0
 impostorscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111160071

DQoNCk9uIDE2LjExLjIxIDE2OjEyLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTYuMTEuMjAy
MSAxNDo0MSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMTYuMTEu
MjEgMTA6MjMsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+IE9uIDE2LjExLjIx
IDEwOjAxLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4gT24gMTYuMTEuMjAyMSAwODozMiwgT2xl
a3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+PiBPbiAxNS4xMS4yMSAxODo1NiwgSmFu
IEJldWxpY2ggd3JvdGU6DQo+Pj4+Pj4gT24gMDUuMTEuMjAyMSAwNzo1NiwgT2xla3NhbmRyIEFu
ZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtv
IDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gV2hl
biBhIHZQQ0kgaXMgcmVtb3ZlZCBmb3IgYSBQQ0kgZGV2aWNlIGl0IGlzIHBvc3NpYmxlIHRoYXQg
d2UgaGF2ZQ0KPj4+Pj4+PiBzY2hlZHVsZWQgYSBkZWxheWVkIHdvcmsgZm9yIG1hcC91bm1hcCBv
cGVyYXRpb25zIGZvciB0aGF0IGRldmljZS4NCj4+Pj4+Pj4gRm9yIGV4YW1wbGUsIHRoZSBmb2xs
b3dpbmcgc2NlbmFyaW8gY2FuIGlsbHVzdHJhdGUgdGhlIHByb2JsZW06DQo+Pj4+Pj4+DQo+Pj4+
Pj4+IHBjaV9waHlzZGV2X29wDQo+Pj4+Pj4+ICAgICAgICBwY2lfYWRkX2RldmljZQ0KPj4+Pj4+
PiAgICAgICAgICAgIGluaXRfYmFycyAtPiBtb2RpZnlfYmFycyAtPiBkZWZlcl9tYXAgLT4gcmFp
c2Vfc29mdGlycShTQ0hFRFVMRV9TT0ZUSVJRKQ0KPj4+Pj4+PiAgICAgICAgaW9tbXVfYWRkX2Rl
dmljZSA8LSBGQUlMUw0KPj4+Pj4+PiAgICAgICAgdnBjaV9yZW1vdmVfZGV2aWNlIC0+IHhmcmVl
KHBkZXYtPnZwY2kpDQo+Pj4+Pj4+DQo+Pj4+Pj4+IGxlYXZlX2h5cGVydmlzb3JfdG9fZ3Vlc3QN
Cj4+Pj4+Pj4gICAgICAgIHZwY2lfcHJvY2Vzc19wZW5kaW5nOiB2LT52cGNpLm1lbSAhPSBOVUxM
OyB2LT52cGNpLnBkZXYtPnZwY2kgPT0gTlVMTA0KPj4+Pj4+Pg0KPj4+Pj4+PiBGb3IgdGhlIGhh
cmR3YXJlIGRvbWFpbiB3ZSBjb250aW51ZSBleGVjdXRpb24gYXMgdGhlIHdvcnNlIHRoYXQNCj4+
Pj4+Pj4gY291bGQgaGFwcGVuIGlzIHRoYXQgTU1JTyBtYXBwaW5ncyBhcmUgbGVmdCBpbiBwbGFj
ZSB3aGVuIHRoZQ0KPj4+Pj4+PiBkZXZpY2UgaGFzIGJlZW4gZGVhc3NpZ25lZA0KPj4+Pj4+IElz
IGNvbnRpbnVpbmcgc2FmZSBpbiB0aGlzIGNhc2U/IEkuZS4gaXNuJ3QgdGhlcmUgdGhlIHJpc2sg
b2YgYSBOVUxMDQo+Pj4+Pj4gZGVyZWY/DQo+Pj4+PiBJIHRoaW5rIGl0IGlzIHNhZmUgdG8gY29u
dGludWUNCj4+Pj4gQW5kIHdoeSBkbyB5b3UgdGhpbmsgc28/IEkuZS4gd2h5IGlzIHRoZXJlIG5v
IHJhY2UgZm9yIERvbTAgd2hlbiB0aGVyZQ0KPj4+PiBpcyBvbmUgZm9yIERvbVU/DQo+Pj4gV2Vs
bCwgdGhlbiB3ZSBuZWVkIHRvIHVzZSBhIGxvY2sgdG8gc3luY2hyb25pemUgdGhlIHR3by4NCj4+
PiBJIGd1ZXNzIHRoaXMgbmVlZHMgdG8gYmUgcGNpIGRldnMgbG9jayB1bmZvcnR1bmF0ZWx5DQo+
PiBUaGUgcGFydGllcyBpbnZvbHZlZCBpbiBkZWZlcnJlZCB3b3JrIGFuZCBpdHMgY2FuY2VsbGF0
aW9uOg0KPj4NCj4+IE1NSU8gdHJhcCAtPiB2cGNpX3dyaXRlIC0+IHZwY2lfY21kX3dyaXRlIC0+
IG1vZGlmeV9iYXJzIC0+IGRlZmVyX21hcA0KPj4NCj4+IEFybTogbGVhdmVfaHlwZXJ2aXNvcl90
b19ndWVzdCAtPiBjaGVja19mb3JfdmNwdV93b3JrIC0+IHZwY2lfcHJvY2Vzc19wZW5kaW5nDQo+
Pg0KPj4geDg2OiB0d28gcGxhY2VzIC0+IGh2bV9kb19yZXN1bWUgLT4gdnBjaV9wcm9jZXNzX3Bl
bmRpbmcNCj4+DQo+PiBTbywgYm90aCBkZWZlcl9tYXAgYW5kIHZwY2lfcHJvY2Vzc19wZW5kaW5n
IG5lZWQgdG8gYmUgc3luY2hyb25pemVkIHdpdGgNCj4+IHBjaWRldnNfe2xvY2t8dW5sb2NrKS4N
Cj4gSWYgSSB3YXMgYW4gQXJtIG1haW50YWluZXIsIEknbSBhZnJhaWQgSSB3b3VsZCBvYmplY3Qg
dG8gdGhlIHBjaWRldnMgbG9jaw0KPiBnZXR0aW5nIHVzZWQgaW4gbGVhdmVfaHlwZXJ2aXNvcl90
b19ndWVzdC4NCkkgZG8gYWdyZWUgdGhpcyBpcyByZWFsbHkgbm90IGdvb2QsIGJ1dCBpdCBzZWVt
cyBJIGFtIGxpbWl0ZWQgaW4gY2hvaWNlcy4NCkBTdGVmYW5vLCBASnVsaWVuLCBkbyB5b3Ugc2Vl
IGFueSBiZXR0ZXIgd2F5IG9mIGRvaW5nIHRoYXQ/DQoNCldlIHdlcmUgdGhpbmtpbmcgYWJvdXQg
aW50cm9kdWNpbmcgYSBkZWRpY2F0ZWQgbG9jayBmb3IgdnBjaSBbMV0sDQpidXQgZmluYWxseSBk
ZWNpZGVkIHRvIHVzZSBwY2lkZXZzX2xvY2sgZm9yIG5vdw0KPiBKYW4NCj4NCg0KWzFdIGh0dHBz
Oi8vbG9yZS5rZXJuZWwub3JnL2FsbC9hZmU0NzM5Ny1hNzkyLTZiMGMtMGE4OS1iNDdjNTIzZTUw
ZDlAZXBhbS5jb20v


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:33:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:33:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226315.391036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzWb-0001ld-CY; Tue, 16 Nov 2021 14:33:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226315.391036; Tue, 16 Nov 2021 14:33:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzWb-0001lW-9Z; Tue, 16 Nov 2021 14:33:29 +0000
Received: by outflank-mailman (input) for mailman id 226315;
 Tue, 16 Nov 2021 14:33:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/Wk1=QD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mmzWZ-0001lN-K5
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:33:27 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 28086a12-46ea-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 15:33:25 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 3C61B2193C;
 Tue, 16 Nov 2021 14:33:25 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0EF2B13BAE;
 Tue, 16 Nov 2021 14:33:25 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 1sJ0AjXBk2EEGwAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 16 Nov 2021 14:33:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28086a12-46ea-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637073205; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=RN73WCaI8ljpUhVqo26XGliZVk9RTxTm02hvTAgXtAg=;
	b=Ix/M4CSo6AbjQJA+iGmiKSfudM/ceqO3tzFqj3tSGY7C84To/aSMZ2FE3CJ85liPpG1b9d
	B0hCRJnX+ZwBzfPtQHPYwSiY/fCInxhcmeF6PrkBjqq/Iz/UgExjVMGbBW1GRJgnpTnzse
	91OKAXqBVyFgGVjSljDQ+aK/jWSlC88=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: linux@weissschuh.net,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/privcmd: make option visible in Kconfig
Date: Tue, 16 Nov 2021 15:33:23 +0100
Message-Id: <20211116143323.18866-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This configuration option provides a misc device as an API to userspace.
Make this API usable without having to select the module as a transitive
dependency.

This also fixes an issue where localyesconfig would select
CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
building as module.

Based-on-patch-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/xen/Kconfig | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index a1b11c62da9e..a2e91d3ca372 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -259,9 +259,14 @@ config XEN_SCSI_BACKEND
 	  if guests need generic access to SCSI devices.
 
 config XEN_PRIVCMD
-	tristate
+	tristate "Xen hypercall passthrough driver"
 	depends on XEN
 	default m
+	help
+	  The hypercall passthrough driver allows user land programs to perform
+	  Xen hypercalls. This driver is normally required for systems running
+	  as Dom0 to perform privileged operations, but in some disaggregated
+	  Xen setups this driver might be needed for other domains, too.
 
 config XEN_ACPI_PROCESSOR
 	tristate "Xen ACPI processor"
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:38:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:38:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226319.391048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzb3-0002QF-Vs; Tue, 16 Nov 2021 14:38:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226319.391048; Tue, 16 Nov 2021 14:38:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzb3-0002Q8-SO; Tue, 16 Nov 2021 14:38:05 +0000
Received: by outflank-mailman (input) for mailman id 226319;
 Tue, 16 Nov 2021 14:38:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0oQI=QD=epam.com=prvs=1954156bad=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mmzb2-0002Q2-M0
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:38:05 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd1c0c23-46ea-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 15:38:03 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AGEBUkj003624;
 Tue, 16 Nov 2021 14:38:00 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2112.outbound.protection.outlook.com [104.47.18.112])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ccd2eres9-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 16 Nov 2021 14:38:00 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3373.eurprd03.prod.outlook.com (2603:10a6:803:1b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 14:37:56 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 14:37:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd1c0c23-46ea-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QfUI7UL17Bypco+BJHixiJMmNrFUkucAVpv1vKF0aOq2gtWX5q2MFMxBmbn0999LOy/swFvbAoiW8yX5tNVdjH/EoGkTL8ppDtqelpZa22/i8t5yt2ATEQFNfiMAGnbD4bRw0CwJzwxvGhqTjnj+69ll0QsJkh42bhC921dicW9oJz96dJt+I3loVAjIJTG53xJMWmXlL5kRyguyjPngTJt7VA+UU2c8efbkGuPkAZI7u7oUMwJkw48YhG31jwLdP2YZNt3wxo8XpCX47TrU1ozx03G6TTeD3bHCIRPMwgO93vXUBnMVm4e0Ni8gUqGHUD+KYB6ZIxuTTpfauQdlnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7aeODCXBlinvsMCkgTSF54MVgtDGxvygK4tdxR4Pe0A=;
 b=odU6zN6Q1d7Dfe6L8JiPYhpOJviOaeeZXut4i0m5Ac1JGSDGNwp2SKnu9D9p8oZSpv1r0NEwP3ubybLhTWh6wLdK4EVEOs15gn8kb7tM8z1+lgaTMTzHllJFakM4ikUDYboGCLGg8fWfaXV1v0H3HNFrEErc0RnGM7xy7mtBOZWIeVPV0qfAgjPF73tSdFh/+bJvEyz27+Kc+NxA4s93YWOFYNvGTdzBchWKvslGhBBImaxUS+P7DSKL1Vh+QBkycI8Y1qzHzX+yHjJev1DSxWYqFqVXfXV3V5gvC1jFTzL54mq1Tt5XpE+WJwOcWLwg9Oud/lpwm3yL1rj6ZPaBig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7aeODCXBlinvsMCkgTSF54MVgtDGxvygK4tdxR4Pe0A=;
 b=pKi5aSqzDQqJvfn/dlxhkU/HL/vFUEpaqwLA99UOyKlNF4GV4VogLLsZsFYrNj1TatnHMvPK5OOcV0TxXDeaBD8AXY8fz1k2O5vtTE1nBL6cHb03MeueHEj6HNWpznRJGW586kCYUFUlVM6qSNT7rMGX9ms2uLXrkcLf/97Zd28KMUC6SrJG1aRo+S3sssB5DzlZ0YFdpvRu7m8rRQwHkVXYTNBGMtoMyLAA8yrhfXBUY2TP6tODJzgK1jLiKYEbZWwqdA5EPXfwrsrmbJeUYgS3r5Gg8n0wGrdxLmWoQaAYlN9T3LWedPTsDgDA7CHThqTyUw2tJ4GkEJ2GW7GByQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        "julien@xen.org" <julien@xen.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awE30EAgAD09oCAAAgGAIAABgyAgABY44CAAAjHAIAAAz2AgAADwIA=
Date: Tue, 16 Nov 2021 14:37:56 +0000
Message-ID: <5c670333-42be-b080-8c7a-a166d681800b@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
 <ad01ebdc-7fb8-3c76-d953-08b73b4b0c25@epam.com>
 <fc1fdee4-e567-038f-a90b-127548a8da02@suse.com>
 <55a95ff3-6717-780b-25f9-c43728b6270b@epam.com>
In-Reply-To: <55a95ff3-6717-780b-25f9-c43728b6270b@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a8e8f8dd-12df-4d29-8c24-08d9a90eade0
x-ms-traffictypediagnostic: VI1PR0302MB3373:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB3373412559E99BAAE0571FEEE7999@VI1PR0302MB3373.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 dqiTLlSTB45RBsZTH+Sm5ZuJJkvSHpk77L2SUGUrsO7laAWgxTXsODxzn0A+aj3WfDUP9/Y14yz+8M8HegKiUnL2GzqTmkzZzZ9AeQgdjEBsF2v3lB6lbdyI9NXhA7olGHpYALWZucgHLDJfBILjw9TRb80iOH94FCAwmYG/yiXb2h4Ce9QA4sf+wZ48nx3t29JnCoThigVrCrJqprvF9/6U3iNWLcS3JQAFy+Qh711T0cBLJ8JrPQt/MxE+EqJLrVg5wRnDP8VP55YOrCPujBJNs9IlNKsTp7v/dfCrvQPmAf/Gd1LG+oHcwJ0/5FnqMTfQthd4OQ/o5zAO5/kS7FcVo9fsRqVT85oR2OxSN6igMd/dnYjkjv3pTVFKsjetQN7619fncnr6D/lfXMyDSxm1lM2ObJyRfvZXSNdFaJruLtAQfZaWTR1TlkuCSJsQoANV/kocXyeT6dkbycruO3UiXxlwjX0zg0WYjkS5h0XETLdJbAXfBBe3Mlv8WiRPpu37KmG4XWyCgpTBR7kGrWd+h77Wx3yLNKu/YK8p3TadSuWb1U7yGlQIvNO1DEEcx2uxvr1wUTBEWdCLw2QO8tpcqttwh8FHvMd9lO/XnKYyfH+LKYss5RSw4YIvWKBwxnr2fS6eZ1v8yWBtINxoIPPTX1euVSqucQWPTgBRD8jngW6N3/edxgjwjwIb/E7QV2bDrDVq8WsSCtehwjJKheIoZ0sRBYzuX4YZ0a9AndompYJ3N98zMo+8Fcx8B+uAYEDCgl9MTOMy+XzDcHAjGy198g/rBnaGhrdUEM0LEB6ZyI2nSchp4zlgxhFsHAaYOSimHTXy5siH2kMfAjzEcA==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(36756003)(31686004)(6486002)(91956017)(186003)(2906002)(66556008)(66476007)(64756008)(66446008)(26005)(66946007)(53546011)(6506007)(71200400001)(5660300002)(38100700002)(4326008)(7416002)(966005)(316002)(31696002)(107886003)(8676002)(122000001)(38070700005)(54906003)(83380400001)(110136005)(2616005)(508600001)(8936002)(6512007)(76116006)(86362001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?TE9mZnVYMkUwMmRXT0ZzcVIyUkV0THVqUFlBQi95MU5Mekowc0lkZklGbHVz?=
 =?utf-8?B?Q1I3L3owSm1wenhNclVlSGd5VXdZQ1h4M0R3RWt2eFdqVGowSGVxZkVFZFJj?=
 =?utf-8?B?TVl0eStURkR6Vk9XUWlORzF5eXRrVHJEL3lQN0c3UGhwb0puelFFWkplVjRz?=
 =?utf-8?B?MVJNQjdlR1ZzbDVGNXpLd2VTaS84OUF4czZHdkcvVnZDTzFpQzdLa3ZGRGwv?=
 =?utf-8?B?bmhCeis3QlhtTjhlLzE3eUw5UW1FVFRwbTI3SW9LVlh6ZzdxSHNWbGFtK2ho?=
 =?utf-8?B?Ti9yT25KdFFMdENOczVHRDA0Rk9Dcmd5N29RcnlTS3U5YStTZWx5aEMyOGpZ?=
 =?utf-8?B?SWU1SlFnOFVpSStYbkxxajhaYU51NndxNDJCSkp4Vk9nTE81VmhUcnhXaHdV?=
 =?utf-8?B?QkhRWWVYZDY3NXdkeEIzQm1uM0NKVTNzblVVNUdyd1F0b2NDMTZycmU2eWJ0?=
 =?utf-8?B?UmpRY1JzTTlvUXFFUHFlZ29JcHB1NnNSWjNmMk9DenQ0Zm1Qdmk0azRpZzZ6?=
 =?utf-8?B?ZHkrUmtzejg0U0x1azRjVnpkWnlhVFlOMUptOENNZTFTQitnNEdxRDEyUWhE?=
 =?utf-8?B?TVE2MXQ0czRmZVc5RnAyZEtOMHB5TkM4aU5JYjhnRm5LOG9zUm1SL0MwQ0Vn?=
 =?utf-8?B?YUszbEZoc2NEV2VBQlNUWnoxUzE4Ry9XaGJ1SHBDQVg3ak1FaURHdHAzRnla?=
 =?utf-8?B?WVUvS3VVc3ZWeWx4aHAwTU1WbUlQU283bmd0M3k5RWNyS1d6V3Q1TmNMQ25O?=
 =?utf-8?B?MkE3NzdKWmlWQ1FRSDlTbnhXNVZDUm5jaTYwemdYQW9IMkRJb0M1QkJYTnRn?=
 =?utf-8?B?a2xWUlJSOC9kYnFpQzFzd3IybXhUd0FPQ0JxTGtMTmVjZFFOMnJGNk9xdWZ0?=
 =?utf-8?B?eERsQUYwdHU2NlJlTDF0VEFTakhiTkRDQ3craERnN1JLYWVxaytTTXMydTVG?=
 =?utf-8?B?VElaSjQzRlE1SFBCNkpQc0h1V1Y3dlpVUmQ2d0liaE5GUmNnVDdqd2Q2UTRr?=
 =?utf-8?B?TzlkV1hCM3l2dkZRNnppSTU0WVRKTndzNGw1RnVNM1l1am50K1ppZk84c1o5?=
 =?utf-8?B?dVd6UnN5OXVHaFhGTWIyUUwvbDJraUFVdHpPeDlOOG5reUZZSzhTclMxOU1D?=
 =?utf-8?B?VFlCS3Rod2M1VGFkZHVTRHloYkkwcGxlNUx2dk15U2NvMUhQMjFvN3d5bkF1?=
 =?utf-8?B?THA3UkFKVGRsVHh4T29INmg5V3hMZlI0SjE2VE9ISnQyNHZzS0w2RDZaYnhD?=
 =?utf-8?B?cHlnS2VBbFdOSzZtd1BIMEV6M1B2NUVKTnlZbU5rYWt2aVA2c1Q2ZDlXVFZh?=
 =?utf-8?B?OG1OYng5c05UTFU5MEVONFRqeC83ZkhSN1FkTXZudHJwY3JERWVEM0NnTnkx?=
 =?utf-8?B?TjU2NDRLcXFpZ1BTNGY2RWEzU3lreGIzWnZ6ejJZc2ErczQyTGpwcnNBV0FB?=
 =?utf-8?B?VTkzRlVGenhvYmR3RkhhME9BdkNHTmRreTEveGdyUW94UHFCOEdlYzZlY21y?=
 =?utf-8?B?djdhbFhJRWl1NHJBaW5PVlR5anRjN0ZKR0xEVUFIbVlvNTJuSnFvSzVHQm0w?=
 =?utf-8?B?bXBuQzNDSXR2NlgzdVNzT1dzSjVTZDZXNkk1blFNNThOc3RlSU5BUVFxN2Yy?=
 =?utf-8?B?VUx2LzZRU2RHaDM5UUJCNGlpdmkraytUQ3lubndIcmQ1NnJwei9jQ2tRK0FV?=
 =?utf-8?B?eUNvNktqKzZSWkRCNUFuTXh5QnJTRHdxbFphRU5nUmZuRC9wc2JZMDh0Wkdt?=
 =?utf-8?B?eVJTMUN5aW51RG05c0pwYnJ3RmJDOXhUM24vNXVrRlAyNjVpOU1TNzRIVHRp?=
 =?utf-8?B?K3FjOEhBSUdKQkdZbG9MNm9qY3RKOWRRcVRnQk5kMktPWDFkK2MzaTZ1QXZ3?=
 =?utf-8?B?SU1LWDJVOS91NWdtZU9SQXlsQVZoOFg5VDVWdEZsOVBGNmdTejJ4YnRLUUE5?=
 =?utf-8?B?eTJZUUdYL0RxNGRrYitsV3RJbkpqSzRWYWVSallEMi9Mb0lUTm5VbFdXc1hB?=
 =?utf-8?B?czFIVDY5dnQraTg1U2M4UWl4a2MvZnV6SlpmV2svV3BveXVKYVdFeU1TRS84?=
 =?utf-8?B?OTJUL2ZVTUl1WmtvalhxeGJzRG1qMTZ4T1Fad3J5ZEZ4VHR6azl3MlBpOXFn?=
 =?utf-8?B?Nyt2VlM2dzEwQ3p1U2NlT0Z0UEtKaEd1TUR3RXhnNXVRRk11S3Bid3h4dWh0?=
 =?utf-8?B?NC9FWjVwTHdxaGRlUDV4ZndpMkI0NzR5MnBDRERsa1B0Q3NsbkVwTldDUi9V?=
 =?utf-8?B?elAzRlRValltY0QrdGFidUtBcG1Nc0t1NVZOVDNkTnNvRjA5Q3BoQVVpK2ZS?=
 =?utf-8?B?enU1bWdCc01pVnRMd3RNR0ZYbEtKOWNheVBHd3llUnEzQ0w0QzNKUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BE855C91D5FDD943B1F96A4CD681AFC1@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a8e8f8dd-12df-4d29-8c24-08d9a90eade0
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 14:37:56.0630
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: IgCu0ypjonul2qb6s5zrIIgErB0CmA4HfSQfrqFDWuEhYUm63+NeldnG6IMNhpGaza/sIL/OPX0H/4jfeOphVrUIaR9EvRnuXMhlIdEqTBqIc0gSzQbuaF4gJxE78SBj
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3373
X-Proofpoint-GUID: rQitMIV3M9D83PXr0kxequqAVy-ZXkNZ
X-Proofpoint-ORIG-GUID: rQitMIV3M9D83PXr0kxequqAVy-ZXkNZ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-16_02,2021-11-16_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0
 malwarescore=0 spamscore=0 mlxlogscore=787 lowpriorityscore=0 adultscore=0
 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 priorityscore=1501
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111160072

DQoNCk9uIDE2LjExLjIxIDE2OjI0LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4N
Cj4gT24gMTYuMTEuMjEgMTY6MTIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMTYuMTEuMjAy
MSAxNDo0MSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4gT24gMTYuMTEuMjEg
MTA6MjMsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAxNi4xMS4yMSAx
MDowMSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+PiBPbiAxNi4xMS4yMDIxIDA4OjMyLCBPbGVr
c2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBPbiAxNS4xMS4yMSAxODo1NiwgSmFu
IEJldWxpY2ggd3JvdGU6DQo+Pj4+Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBB
bmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+Pj4+Pj4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVu
a28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+
IFdoZW4gYSB2UENJIGlzIHJlbW92ZWQgZm9yIGEgUENJIGRldmljZSBpdCBpcyBwb3NzaWJsZSB0
aGF0IHdlIGhhdmUNCj4+Pj4+Pj4+IHNjaGVkdWxlZCBhIGRlbGF5ZWQgd29yayBmb3IgbWFwL3Vu
bWFwIG9wZXJhdGlvbnMgZm9yIHRoYXQgZGV2aWNlLg0KPj4+Pj4+Pj4gRm9yIGV4YW1wbGUsIHRo
ZSBmb2xsb3dpbmcgc2NlbmFyaW8gY2FuIGlsbHVzdHJhdGUgdGhlIHByb2JsZW06DQo+Pj4+Pj4+
Pg0KPj4+Pj4+Pj4gcGNpX3BoeXNkZXZfb3ANCj4+Pj4+Pj4+ICAgICAgICAgcGNpX2FkZF9kZXZp
Y2UNCj4+Pj4+Pj4+ICAgICAgICAgICAgIGluaXRfYmFycyAtPiBtb2RpZnlfYmFycyAtPiBkZWZl
cl9tYXAgLT4gcmFpc2Vfc29mdGlycShTQ0hFRFVMRV9TT0ZUSVJRKQ0KPj4+Pj4+Pj4gICAgICAg
ICBpb21tdV9hZGRfZGV2aWNlIDwtIEZBSUxTDQo+Pj4+Pj4+PiAgICAgICAgIHZwY2lfcmVtb3Zl
X2RldmljZSAtPiB4ZnJlZShwZGV2LT52cGNpKQ0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IGxlYXZlX2h5
cGVydmlzb3JfdG9fZ3Vlc3QNCj4+Pj4+Pj4+ICAgICAgICAgdnBjaV9wcm9jZXNzX3BlbmRpbmc6
IHYtPnZwY2kubWVtICE9IE5VTEw7IHYtPnZwY2kucGRldi0+dnBjaSA9PSBOVUxMDQo+Pj4+Pj4+
Pg0KPj4+Pj4+Pj4gRm9yIHRoZSBoYXJkd2FyZSBkb21haW4gd2UgY29udGludWUgZXhlY3V0aW9u
IGFzIHRoZSB3b3JzZSB0aGF0DQo+Pj4+Pj4+PiBjb3VsZCBoYXBwZW4gaXMgdGhhdCBNTUlPIG1h
cHBpbmdzIGFyZSBsZWZ0IGluIHBsYWNlIHdoZW4gdGhlDQo+Pj4+Pj4+PiBkZXZpY2UgaGFzIGJl
ZW4gZGVhc3NpZ25lZA0KPj4+Pj4+PiBJcyBjb250aW51aW5nIHNhZmUgaW4gdGhpcyBjYXNlPyBJ
LmUuIGlzbid0IHRoZXJlIHRoZSByaXNrIG9mIGEgTlVMTA0KPj4+Pj4+PiBkZXJlZj8NCj4+Pj4+
PiBJIHRoaW5rIGl0IGlzIHNhZmUgdG8gY29udGludWUNCj4+Pj4+IEFuZCB3aHkgZG8geW91IHRo
aW5rIHNvPyBJLmUuIHdoeSBpcyB0aGVyZSBubyByYWNlIGZvciBEb20wIHdoZW4gdGhlcmUNCj4+
Pj4+IGlzIG9uZSBmb3IgRG9tVT8NCj4+Pj4gV2VsbCwgdGhlbiB3ZSBuZWVkIHRvIHVzZSBhIGxv
Y2sgdG8gc3luY2hyb25pemUgdGhlIHR3by4NCj4+Pj4gSSBndWVzcyB0aGlzIG5lZWRzIHRvIGJl
IHBjaSBkZXZzIGxvY2sgdW5mb3J0dW5hdGVseQ0KPj4+IFRoZSBwYXJ0aWVzIGludm9sdmVkIGlu
IGRlZmVycmVkIHdvcmsgYW5kIGl0cyBjYW5jZWxsYXRpb246DQo+Pj4NCj4+PiBNTUlPIHRyYXAg
LT4gdnBjaV93cml0ZSAtPiB2cGNpX2NtZF93cml0ZSAtPiBtb2RpZnlfYmFycyAtPiBkZWZlcl9t
YXANCj4+Pg0KPj4+IEFybTogbGVhdmVfaHlwZXJ2aXNvcl90b19ndWVzdCAtPiBjaGVja19mb3Jf
dmNwdV93b3JrIC0+IHZwY2lfcHJvY2Vzc19wZW5kaW5nDQo+Pj4NCj4+PiB4ODY6IHR3byBwbGFj
ZXMgLT4gaHZtX2RvX3Jlc3VtZSAtPiB2cGNpX3Byb2Nlc3NfcGVuZGluZw0KPj4+DQo+Pj4gU28s
IGJvdGggZGVmZXJfbWFwIGFuZCB2cGNpX3Byb2Nlc3NfcGVuZGluZyBuZWVkIHRvIGJlIHN5bmNo
cm9uaXplZCB3aXRoDQo+Pj4gcGNpZGV2c197bG9ja3x1bmxvY2spLg0KPj4gSWYgSSB3YXMgYW4g
QXJtIG1haW50YWluZXIsIEknbSBhZnJhaWQgSSB3b3VsZCBvYmplY3QgdG8gdGhlIHBjaWRldnMg
bG9jaw0KPj4gZ2V0dGluZyB1c2VkIGluIGxlYXZlX2h5cGVydmlzb3JfdG9fZ3Vlc3QuDQo+IEkg
ZG8gYWdyZWUgdGhpcyBpcyByZWFsbHkgbm90IGdvb2QsIGJ1dCBpdCBzZWVtcyBJIGFtIGxpbWl0
ZWQgaW4gY2hvaWNlcy4NCj4gQFN0ZWZhbm8sIEBKdWxpZW4sIGRvIHlvdSBzZWUgYW55IGJldHRl
ciB3YXkgb2YgZG9pbmcgdGhhdD8NCj4NCj4gV2Ugd2VyZSB0aGlua2luZyBhYm91dCBpbnRyb2R1
Y2luZyBhIGRlZGljYXRlZCBsb2NrIGZvciB2cGNpIFsxXSwNCj4gYnV0IGZpbmFsbHkgZGVjaWRl
ZCB0byB1c2UgcGNpZGV2c19sb2NrIGZvciBub3cNCk9yIGV2ZW4gYmV0dGVyIGFuZCBzaW1wbGVy
OiB3ZSBqdXN0IHVzZSBwZGV2LT52cGNpLT5sb2NrIHRvDQpwcm90ZWN0IHZwY2lfcHJvY2Vzc19w
ZW5kaW5nIHZzIE1NSU8gdHJhcCBoYW5kbGVycyB3aGljaMKgIGFscmVhZHkNCnVzZSBpdC4NCj4+
IEphbg0KPj4NCj4gWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC9hZmU0NzM5Ny1hNzky
LTZiMGMtMGE4OS1iNDdjNTIzZTUwZDlAZXBhbS5jb20vDQo=


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:40:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:40:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226325.391058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzcl-000304-B1; Tue, 16 Nov 2021 14:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226325.391058; Tue, 16 Nov 2021 14:39:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzcl-0002zx-89; Tue, 16 Nov 2021 14:39:51 +0000
Received: by outflank-mailman (input) for mailman id 226325;
 Tue, 16 Nov 2021 14:39:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mmzcj-0002zp-Qe
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:39:49 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mmzcj-0005Pc-PB
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:39:49 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mmzcj-0001cK-OO
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:39:49 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mmzcg-0000CS-16; Tue, 16 Nov 2021 14:39:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=OdFqEbkANqZJCuJqraWD9pv2GTOVC/uTxej4Y43GWrg=; b=ocMpN5IWxj2Gq6MqqXffHUKQzn
	QtbbyLYQEOwy6N3uoFCtlRJlN6EWOREM27PsAOMVrcXsX1p2awholyk8kEiyg9W6dWYkkfbT98K+V
	MbnnqOXqTgB2a4J5WLzHtcJOcSvlR3pz2jamyWHCpwHuE/EG33PtEkIAcTWNOYcjLC34=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24979.49841.401004.188343@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 14:39:45 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Julien Grall <julien@xen.org>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Wei Liu <wl@xen.org>,
    Luca Fancellu <luca.fancellu@arm.com>
Subject: Re: [PATCH v2] public/gnttab: relax v2 recommendation
In-Reply-To: <8e6e23c7-4416-405f-8bd1-bc5b23ea587e@suse.com>
References: <8e6e23c7-4416-405f-8bd1-bc5b23ea587e@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("[PATCH v2] public/gnttab: relax v2 recommendation"):
> With there being a way to disable v2 support, telling new guests to use
> v2 exclusively is not a good suggestion.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

This is a just a comment change and AIUI the recommendation ought to
be the same for all relevant versions.

We should consider backporting too.

Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:40:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:40:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226329.391069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzdF-0004GB-Jj; Tue, 16 Nov 2021 14:40:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226329.391069; Tue, 16 Nov 2021 14:40:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzdF-0004G2-Gh; Tue, 16 Nov 2021 14:40:21 +0000
Received: by outflank-mailman (input) for mailman id 226329;
 Tue, 16 Nov 2021 14:40:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mmzdE-0004Fu-6o
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:40:20 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mmzdE-0005Qk-65
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:40:20 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mmzdE-0001gc-5I
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:40:20 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mmzd8-0000DG-QR; Tue, 16 Nov 2021 14:40:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=rdCit8M2LUqtqbjWk/2zluLEXPHZ+Bv+oOqOxqtnwFI=; b=mNw5FpzZY2NssE/5NGyJHv5Yx7
	tJtxU41KpbMtsk0js4ejlTYz8ckaGeWILxv6giXcvWQHaxgADHs3EE28JwO+2UiTb+VSOAJ/PuLYk
	5h1pcEZdGgKrV3sR+MOYl7ueQId6WEhhjJieAGJhEEp7bBcKxj+m/QOCi0SW+DcrOGbU=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24979.49870.437400.419375@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 14:40:14 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    Andrew  Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.16] tests/resource: set grant version for created domains
In-Reply-To: <20211115105106.928-1-roger.pau@citrix.com>
References: <20211115105106.928-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16] tests/resource: set grant version for created domains"):
> Set the grant table version for the created domains to use version 1,
> as that's the used by the test cases. Without setting the grant
> version the domains for the tests cannot be created.
> 
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:51:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:51:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226335.391080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzoA-0005oY-L4; Tue, 16 Nov 2021 14:51:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226335.391080; Tue, 16 Nov 2021 14:51:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzoA-0005oR-I0; Tue, 16 Nov 2021 14:51:38 +0000
Received: by outflank-mailman (input) for mailman id 226335;
 Tue, 16 Nov 2021 14:51:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mmzo8-0005oH-I8
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:51:36 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mmzo8-0005dC-Fl
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:51:36 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mmzo8-0002PA-Eh
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:51:36 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mmzo3-0000FT-Lz; Tue, 16 Nov 2021 14:51:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=+I1NkhC/MlSlu0/pyrNcY+IR0W6q/gOtFnRzg1SNys8=; b=uzXKn0/Tgl3xfVKOSrOhzxkSeX
	FPCSYLXrMPh3URACPzsr5PxFQrupvnSWDRn7ks229wHHLMI3sO7RdZ4CnWfp/jgo+Sjx0pR7ewkDd
	Tm1fuA89PQdi6l769fyFCKEgjTUweBiJskydm2MveTZNY1u8b8VCbcVsHUfecSijENfg=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24979.50546.997981.476430@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 14:51:30 +0000
To: Roger Pau Monne <roger.pau@citrix.com>,
    Julien Grall <julien@xen.org>
Cc: <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Wei Liu <wl@xen.org>,
    Hongyan Xia <hongyxia@amazon.com>,
    Dmitry Isaikin <isaikin-dmitry@yandex.ru>
Subject: Re: [PATCH for-4.16] Revert "domctl: improve locking during domain
 destruction" [and 2 more messages]
In-Reply-To: <YYqQjMuARXwG4/yW@Air-de-Roger>,
	<a708312d-ab1b-4784-b1fe-01dbb680e7e9@xen.org>,
	<20211112120208.74387-1-roger.pau@citrix.com>
References: <20211112120208.74387-1-roger.pau@citrix.com>
	<20211109143128.56089-1-roger.pau@citrix.com>
	<a708312d-ab1b-4784-b1fe-01dbb680e7e9@xen.org>
	<24970.36376.658415.956968@mariner.uk.xensource.com>
	<YYqQjMuARXwG4/yW@Air-de-Roger>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monn writes ("Re: [PATCH for-4.16] Revert "domctl: improve locking during domain destruction""):
> On Tue, Nov 09, 2021 at 03:04:56PM +0000, Ian Jackson wrote:
> > So I am going to treat this as an effectively new change.
> > 
> > AIUI it is a proposal to improve performance, not a bugfix.  Was this
> > change posted (or, proposed on-list) before the Xen 4.16 Last Posting
> > Date (24th of September) ?  Even if it was, it would need a freeze
> > exception.
> 
> It was posted here:
> 
> https://lore.kernel.org/xen-devel/de46590ad566d9be55b26eaca0bc4dc7fbbada59.1585063311.git.hongyxia@amazon.com/
> 
> Which was missing a spin_barrier, and in a different form here:
> 
> https://lore.kernel.org/xen-devel/2e7044de3cd8a6768a20250e61fe262f3a018724.1631790362.git.isaikin-dmitry@yandex.ru/

Thanks.

Julien Grall writes ("Re: [PATCH for-4.16] Revert "domctl: improve locking during domain destruction""):
> For instance, in the case of Amazon our setup was:
> 
> On a 144-core server with 4TiB of memory, destroying 32 guests (each
> with 4 vcpus and 122GiB memory) simultaneously takes:
> 
> before the revert: 29 minutes
> after the revert: 6 minutes

This is quite substantial!

> > Given the current point in the release, revert the commit and
> > reinstate holding the domctl lock during domain destruction. Further
> > work should be done in order to re-add more fine grained locking to
> > the domain destruction path once a proper solution to avoid the
> > heap_lock contention is found.
...
> > Since this is a revert and not new code I think the risk is lower.
> > There's however some risk, as the original commit was from 2017, and
> > hence the surrounding code has changed a bit. It's also a possibility
> > that some other parts of the domain destruction code now rely on this
> > more fine grained locking. Local tests however haven't shown issues.

I am finding this a difficult decision.  It appears from the threads
that a number of people have been running with this revert, which
would serve to mitigate the risk, but it's not clear to me what
version(s) of Xen they had applied it to.

Ultimately, though, I think I need to refer myself to the schedule I set:

    Friday 12th November                  Hard code freeze [*]

      Bugfixes for serious bugs (including regressions), and low-risk
      fixes only.
      (0.5 weeks)

I don't see any way that this change fits into this.  The point of a
freeze is, in part, that we stop trying to *improve* things and start
trying to *unbreak* them :-).

While the perf here is clearly poor I don't think it's actually
broken.

So, I'm afraid I'm saying "no".

Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:56:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:56:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226339.391092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzsP-0006Uq-9r; Tue, 16 Nov 2021 14:56:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226339.391092; Tue, 16 Nov 2021 14:56:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzsP-0006Uj-6t; Tue, 16 Nov 2021 14:56:01 +0000
Received: by outflank-mailman (input) for mailman id 226339;
 Tue, 16 Nov 2021 14:56:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mmzsO-0006UN-3d
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:56:00 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4eeca50e-46ed-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 15:55:59 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2052.outbound.protection.outlook.com [104.47.0.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-13-n0m8UhPdPKysGxIz-Tb7Yw-1; Tue, 16 Nov 2021 15:55:57 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3117.eurprd04.prod.outlook.com (2603:10a6:802:6::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Tue, 16 Nov
 2021 14:55:54 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 14:55:53 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0701CA0072.eurprd07.prod.outlook.com (2603:10a6:203:2::34) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.15 via Frontend
 Transport; Tue, 16 Nov 2021 14:55:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4eeca50e-46ed-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637074558;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=aPiSSaE6JmblMcftistrINGmNpA2/8MuKKgoo3uP3w0=;
	b=HiSS89pl2wFZ9SWlq0NdqMXbAI72bzEEcQh3jJKum5C6vMPo0WVekpmNGuRZl1atABDVta
	h6oosKstEe5KbLL6jHLW2hh/qLdSa7nKjS5hUP+ornkXVOpWdA48T9ZmTe++V/tSPluL2i
	8GdgQkCUcuZQd6xy09GP4w3h9Ql41Ek=
X-MC-Unique: n0m8UhPdPKysGxIz-Tb7Yw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jmLwTlh/3XMT4zYDZhBOu4vPZ/bQ7l87ZllQhF/HAME47bBr+DxEc6cGFsX5QBgYOv8FISQeEXz16OTpJYhX8RrxWOk9fd1Z8qLRZ+C2/SIsV91Nv0yYuOkfFRbv+4/HmwMcqBHyQ3a5/LxPapvNAO/kjbly14w30InNYahiZ4lC1TuakhQB+8V4OS+PlVNCLUq66k43eDEm5NjJTpY1qN5wwbBU2U7SEpgYh5ugaWgqR1GxTdlMPUK8rEjdIx8ZxA9mWk8TyodHpqG45iWjfK+5yWPHlG7+XkOY522PCPIKXOtsf070bzFlxu4mCUsnFUbfy4L/AdA0eU7KLWDWZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6ByBp5MZeD59CjWf5VwLe51Y0tIsapc3swcZVUvIiHI=;
 b=d4Sk0/c7YbpJyFtDYSTSGQYPosrHHZmTysl/Gau4OFge4dN+wiVx9fPWc6Ow+UF3cOmqcsQhQIO7pgIoq40tCuszL8Q4Yb6mRJfUY3aEel5FfdVO6nIZFolxx6uh5oU/li/LwIWq/JTKzQK5f0pDcp34wn1mmVjZwBeXJr9bk7N7qimDayq/DPRwV1mEgwmDABef9FwZi05IGvy5jjtIVrdGYxz6+lHC9EJddBO9n7h0On7Sw93Sh1Xry/pWcwcPb7Lq4Ay0nJ6xY5t7eXSsKu7L4HvCfArNSfpG8RBjKW9IkKMQIojybJpmRA+sA9GQkobVwcoyi+S3JSGH8eScxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f80f3207-363d-51b7-4ae0-e4b8aeb2544b@suse.com>
Date: Tue, 16 Nov 2021 15:55:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/privcmd: make option visible in Kconfig
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
CC: linux@weissschuh.net, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20211116143323.18866-1-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211116143323.18866-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0701CA0072.eurprd07.prod.outlook.com
 (2603:10a6:203:2::34) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 161156a7-bf84-42dc-d0af-08d9a911301d
X-MS-TrafficTypeDiagnostic: VI1PR04MB3117:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB31175B10B52CFD316D2707DBB3999@VI1PR04MB3117.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	giFg30kwEZZfOtLnrZWIL2abEQq7Ix+fhYRxOCUeHZEDyOnyLA2T2pVsVtzg4iId1R1acvdMat4JpdTKXjOP+UfLQpUqIZMc7BkxP8xjw8EnZkZjfg9cZQTpFutfgVr4sfAsEQZuYWEkJUnhO4C0RRJr2tCBfkztt3mcmazrcdzjPcImgPbsg3xk2qeEPctLuPSj3g9rmyXbglidV5hK9gYxCA2W3Y9BbWDs4FJrw+C6CWckSVk4UdM4RddpRO9liy/Z3Q7Bv33nG0KBsHQLHR+K16Dn13elZN5E+iYd7Tr3oYBoCFG8IrdZUcOEF9SsHpX5AlrFmn6LfhvEh9C3hjQeDpertW7UFxnjjsnQmVqeJfXrgPeP17fS/oB9q/+h1hP7H5fqh3PjptGfb7eRWAyVdlhyMC3T+HOmiu+2xhQ/H0U4PYOgpUy8B+0i6HwMF0eVxjYE62Dnn/0HCIPCfy9ZLxhX/JuNHk/JaMrU8vQLp3Wu3Rg1kmmIkB5WEncydzuCtO7ahXPRDADEkQ6Xg5Wi9QMYMRhnn4RoHlfgjzMRpzCZJqkJ8F5Ki2kd8CDwsrO2a9Z+g+txC/EYmYeJil0U3W6QTgyBBHkpO/8gwYdsXLMzjY56XrWdBWTbMNtMOzqi+X4xgzZLmqE8ZnCbLs/AnXAQQMesI1QfES5YgPPVfLi3p0MDKiOy15sYYhF3YXIqW6ma3l7N0XLwnjt76D3elpiu6nEjTNjOlIEfKdc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6666004)(66556008)(53546011)(5660300002)(16576012)(2616005)(66946007)(2906002)(54906003)(66476007)(36756003)(86362001)(26005)(316002)(6486002)(66574015)(31686004)(508600001)(83380400001)(956004)(6636002)(8676002)(4326008)(37006003)(31696002)(186003)(38100700002)(6862004)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?aUic87nJrHWHGCLLQbOQWXJ3JM9dmq5SS34htK4YqxXX/xi48Gs6/4+G+3CE?=
 =?us-ascii?Q?kUXyQMsB9KTuwqehnDOlGy46oP/DvzO4n1PgK/ymnvo9OzlBnIPBNovROU5I?=
 =?us-ascii?Q?ZiT7k549MNKOKHQi1k9i+vpwHChmhalqsJVHhFylGCQNygq/wodFHCAgZd+L?=
 =?us-ascii?Q?lishlpjV7bNXrp/GEVcOXNPsrB1omENnkN8XTTMzJnrCVYLCbSKHRQ343SiM?=
 =?us-ascii?Q?8cf1MRribiuK5Sla7uBMBioNmgDuXczIfdd358o93/mxrVMvtY7YI/jkU43Y?=
 =?us-ascii?Q?RjUFIHicK4D3v6DwV/O/97KJa2YrDlQzEVR5FVInHV0KKbmWdRn0a25na2fN?=
 =?us-ascii?Q?3mLAFeTW16Qdcm9/NMSAIBLjPF4ACZHNpZn7alIA4V+UdMfXK5phEUYh+z3i?=
 =?us-ascii?Q?fYNt5gVY6svuylJFv1F60ASwAZHePszAtpc1PMaS6XPLYqJvcm43OqRXaKUV?=
 =?us-ascii?Q?g5dxc2+rBeF/MwT+UhC2cNmW61q+N3fUXUgy5vANmnVjIvPAZ1IT0OygUdOV?=
 =?us-ascii?Q?pBmPEpKxJv7iRAkVObrTxcvBNfma12qArd1wHn284GVBuERh44kKqFV8pZbg?=
 =?us-ascii?Q?cHoom4RPA47x7aFJAvyP5cQIM9/4yFauwe5hknZ0yDpTKejgPEpNkJQIlLYX?=
 =?us-ascii?Q?xUmaR8+s52o6xRtieAVCVrEN/Dv4SrjLDtZY2Ong8iwQba8AflQ1s/4yjO4V?=
 =?us-ascii?Q?Z6QOhhH9iytC5Qfz+uoHp1TCzuBagNUY2h3HDR5cimVI5csL75VFyHphMYtU?=
 =?us-ascii?Q?grXb7HusUpK9sA49XP9kA6kvOep5aPgo+WxR/P2Uo4Wsjlk+aEOG4eOB7fy/?=
 =?us-ascii?Q?Fwu5hD2KtU94xc7CW8zOBc2tfZnMciYsk8y+fP3Y+X9To+OSuNJv9fIdcsV7?=
 =?us-ascii?Q?dT9eBNeZaHNgyoxOjHsjS7yl85NmAuDsk+gKKuEfzw8wjXUTtVZVURTPI18g?=
 =?us-ascii?Q?2kDTpj2eUluiVf9V0hW7c7h5nVxyQRmX8IewM9iz6eFBrLf30yuhHx1XFa1Y?=
 =?us-ascii?Q?Td2+Hm5JT0dIfMAC/T1pBMsx6x8Uzt7EgeTafjBu1CRjRQc7+kZAR3I6MWp/?=
 =?us-ascii?Q?JEx+P+McJO/Xo911vgz0iT5ykHCj3QTNq9+vPmZri1q8/fXt2E2qi2oQ4zCX?=
 =?us-ascii?Q?Zxy5OCx0na8hICqHp4ZtspCeGUPmdwQZiV+8FWhxP75NTyHfS3Udg81XcLLv?=
 =?us-ascii?Q?0ubA1VS6y+blRsnrcoFQiTi5U/YObPHgQcjYDxNKi7XyqIGQFTo3iDKEOxPw?=
 =?us-ascii?Q?pX5PhQYCTB+RmoS7JqrQJ7+D1EaD9hPhEFlEqO2jZhlp2j1Qy8O7RzfdRRPT?=
 =?us-ascii?Q?nb7uGTcPlL4l4vx1rNTWGFqRdE20NmrcppkoFrxCdZINNizmKHIuQMuzF9x2?=
 =?us-ascii?Q?Zmk1vW4R4RX/Q77CQHuyY4apQSNogdFBZQpAvVbkIyBx77/9sSEu/OIf4J/2?=
 =?us-ascii?Q?bH6dDDOp0sUN8UQ9BctoKUn1uVpwznX0xbxy1IZvGiztszstiEdOldKZoBhV?=
 =?us-ascii?Q?b5xfseJNDIkCAYV4P6dg4WmaD47pnbXgHU94/tCd7IRqo+G2FbV2ZVDxVYWx?=
 =?us-ascii?Q?xPvIta1+jJMVFwBYywBT+wTn2DUXDzlsl69dseEQHJePHKAIhHTCxInE3hjO?=
 =?us-ascii?Q?nMsKECYZsZT8w/yH1U1JZY8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 161156a7-bf84-42dc-d0af-08d9a911301d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 14:55:53.7343
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BG/aUZ1+Um3YFUmljdLnsi2KZmnemH8biKt4tqI67Hmnor23bx0pqNP4RgPgHyOAAvX+6YKEQNW1R+ccETKziA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3117

On 16.11.2021 15:33, Juergen Gross wrote:
> This configuration option provides a misc device as an API to userspace.
> Make this API usable without having to select the module as a transitive
> dependency.
>=20
> This also fixes an issue where localyesconfig would select
> CONFIG_XEN_PRIVCMD=3Dm because it was not visible and defaulted to
> building as module.
>=20
> Based-on-patch-by: Thomas Wei=C3=9Fschuh <linux@weissschuh.net>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

> --- a/drivers/xen/Kconfig
> +++ b/drivers/xen/Kconfig
> @@ -259,9 +259,14 @@ config XEN_SCSI_BACKEND
>  	  if guests need generic access to SCSI devices.
> =20
>  config XEN_PRIVCMD
> -	tristate
> +	tristate "Xen hypercall passthrough driver"
>  	depends on XEN
>  	default m
> +	help
> +	  The hypercall passthrough driver allows user land programs to perform

Maybe worth adding "privileged" here? Albeit of course that's different
from the use of the word ...

> +	  Xen hypercalls. This driver is normally required for systems running
> +	  as Dom0 to perform privileged operations, but in some disaggregated

... here, so there'd be a small risk of confusion.

Jan

> +	  Xen setups this driver might be needed for other domains, too.
> =20
>  config XEN_ACPI_PROCESSOR
>  	tristate "Xen ACPI processor"
>=20



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 14:59:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 14:59:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226342.391103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzvZ-00078t-Qe; Tue, 16 Nov 2021 14:59:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226342.391103; Tue, 16 Nov 2021 14:59:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzvZ-00078m-Nh; Tue, 16 Nov 2021 14:59:17 +0000
Received: by outflank-mailman (input) for mailman id 226342;
 Tue, 16 Nov 2021 14:59:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+DEI=QD=weissschuh.net=linux@srs-se1.protection.inumbo.net>)
 id 1mmzvY-00078g-8X
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 14:59:16 +0000
Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c37f8132-46ed-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 15:59:14 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c37f8132-46ed-11ec-9787-a32c541c8605
Date: Tue, 16 Nov 2021 15:59:11 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net;
	s=mail; t=1637074752;
	bh=cb2OUIDphqHIt9Wszcy0dU6ogQaVy9OblEb3njsk/BA=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=B5PlIfWp5E08QiHGOMYxCuLCDfYIbCPJj9eaWw0rLFxzA7H9i21vDwkA0gIAt3OyX
	 S96NinLjfE/a4cPxwZffSsOdNJllUyN1EQrpwBkYWzBRbafCNRsP52kPJBbFjDfkKs
	 CcrSv9y00pONx+RkgMvF1gflACpgp/j6Edjvcj+E=
From: Thomas =?utf-8?Q?Wei=C3=9Fschuh?= <linux@weissschuh.net>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] xen/privcmd: make option visible in Kconfig
Message-ID: <aa39e0f1-77cb-48f9-ae52-2bdbc19fa702@t-8ch.de>
References: <20211116143323.18866-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211116143323.18866-1-jgross@suse.com>
Jabber-ID: thomas@t-8ch.de
X-Accept: text/plain, text/html;q=0.2, text/*;q=0.1
X-Accept-Language: en-us, en;q=0.8, de-de;q=0.7, de;q=0.6

Thanks!

On 2021-11-16 15:33+0100, Juergen Gross wrote:
> This configuration option provides a misc device as an API to userspace.
> Make this API usable without having to select the module as a transitive
> dependency.
> 
> This also fixes an issue where localyesconfig would select
> CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
> building as module.
> 
> Based-on-patch-by: Thomas Weißschuh <linux@weissschuh.net>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  drivers/xen/Kconfig | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
> index a1b11c62da9e..a2e91d3ca372 100644
> --- a/drivers/xen/Kconfig
> +++ b/drivers/xen/Kconfig
> @@ -259,9 +259,14 @@ config XEN_SCSI_BACKEND
>  	  if guests need generic access to SCSI devices.
>  
>  config XEN_PRIVCMD
> -	tristate
> +	tristate "Xen hypercall passthrough driver"
>  	depends on XEN
>  	default m
> +	help
> +	  The hypercall passthrough driver allows user land programs to perform
> +	  Xen hypercalls. This driver is normally required for systems running
> +	  as Dom0 to perform privileged operations, but in some disaggregated
> +	  Xen setups this driver might be needed for other domains, too.
>  
>  config XEN_ACPI_PROCESSOR
>  	tristate "Xen ACPI processor"
> -- 
> 2.26.2

Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:01:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:01:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226345.391114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzxY-0008Td-81; Tue, 16 Nov 2021 15:01:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226345.391114; Tue, 16 Nov 2021 15:01:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mmzxY-0008TW-3n; Tue, 16 Nov 2021 15:01:20 +0000
Received: by outflank-mailman (input) for mailman id 226345;
 Tue, 16 Nov 2021 15:01:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/Wk1=QD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mmzxW-0008TQ-N2
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:01:18 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cf489e6-46ee-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 16:01:17 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 3F8EF212B6;
 Tue, 16 Nov 2021 15:01:17 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0C19B13C1B;
 Tue, 16 Nov 2021 15:01:17 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 7uAfAb3Hk2ECKAAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 16 Nov 2021 15:01:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0cf489e6-46ee-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637074877; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=XeuZ0+ntnw8AvCOCLcRrjfSoiSRid468au7ycxI+be0=;
	b=RXEqFlGK3w5mQ5zyrUy91agF75LqwfU8P54vp+WdlXxZ31m6tBTTewjlwxz8X/terc1eEM
	ITwWCjcNBcaaANKrBzjIdP6Z0UqMJqOVbwKwSKj2PE8J0c2t1m0v+dgajYcPZY2BwKTRew
	MKt5bihUe1hhf5OElkox+i4+j2ECd8A=
Subject: Re: [PATCH] xen/privcmd: make option visible in Kconfig
To: Jan Beulich <jbeulich@suse.com>
Cc: linux@weissschuh.net, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20211116143323.18866-1-jgross@suse.com>
 <f80f3207-363d-51b7-4ae0-e4b8aeb2544b@suse.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <b155f66d-8259-ba87-62c4-ce8a0f7ed82f@suse.com>
Date: Tue, 16 Nov 2021 16:01:15 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <f80f3207-363d-51b7-4ae0-e4b8aeb2544b@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="i8FKDEJdp8XPNNhnlPoWSA2txn447H8mS"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--i8FKDEJdp8XPNNhnlPoWSA2txn447H8mS
Content-Type: multipart/mixed; boundary="1mV0JI7SNvJF6BZaJCgL2zM8fLJydHXNK";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: linux@weissschuh.net, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <b155f66d-8259-ba87-62c4-ce8a0f7ed82f@suse.com>
Subject: Re: [PATCH] xen/privcmd: make option visible in Kconfig
References: <20211116143323.18866-1-jgross@suse.com>
 <f80f3207-363d-51b7-4ae0-e4b8aeb2544b@suse.com>
In-Reply-To: <f80f3207-363d-51b7-4ae0-e4b8aeb2544b@suse.com>

--1mV0JI7SNvJF6BZaJCgL2zM8fLJydHXNK
Content-Type: multipart/mixed;
 boundary="------------1E98CE127DBC4401F0518A9F"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------1E98CE127DBC4401F0518A9F
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 16.11.21 15:55, Jan Beulich wrote:
> On 16.11.2021 15:33, Juergen Gross wrote:
>> This configuration option provides a misc device as an API to userspac=
e.
>> Make this API usable without having to select the module as a transiti=
ve
>> dependency.
>>
>> This also fixes an issue where localyesconfig would select
>> CONFIG_XEN_PRIVCMD=3Dm because it was not visible and defaulted to
>> building as module.
>>
>> Based-on-patch-by: Thomas Wei=C3=9Fschuh <linux@weissschuh.net>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>=20
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>=20
>> --- a/drivers/xen/Kconfig
>> +++ b/drivers/xen/Kconfig
>> @@ -259,9 +259,14 @@ config XEN_SCSI_BACKEND
>>   	  if guests need generic access to SCSI devices.
>>  =20
>>   config XEN_PRIVCMD
>> -	tristate
>> +	tristate "Xen hypercall passthrough driver"
>>   	depends on XEN
>>   	default m
>> +	help
>> +	  The hypercall passthrough driver allows user land programs to perf=
orm
>=20
> Maybe worth adding "privileged" here? Albeit of course that's different=

> from the use of the word ...

I guess you mean "... allows privileged user programs ..." (another
variant might be "The privileged hypercall passthrough ...")?


Juergen

--------------1E98CE127DBC4401F0518A9F
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------1E98CE127DBC4401F0518A9F--

--1mV0JI7SNvJF6BZaJCgL2zM8fLJydHXNK--

--i8FKDEJdp8XPNNhnlPoWSA2txn447H8mS
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGTx7sFAwAAAAAACgkQsN6d1ii/Ey86
DAf/VS0bpSvXrWKpz2fvlBlqBh3q9TOwlw9DYHEMKg7Ps9r/rwSvIJtp5YcMmMRNJlvh170LULPl
bQ9LAJurQWQklPoZjy3jZx6iGNZmWrLxe0Dt7uXkyIDI8tiVszD5TOexeiFqspHD8RkR5rfEfvI1
/+gL9QIQaauie4MPiEqAranGjZ9UHLsum7yAYcbtO3bjU5wQERVEtOIA+UCeD6TAGG7UJg27WjRb
KfUuBy+nOvWDobamEq5mmTRJFi0OAn5H6yemZPgbkqSMhpM+StNgiocA3VEmvak73LbaXVR7MkFN
dvquyC7reEIxsMUwOxnT+x6efioFcV9UX/KyBXezYw==
=PYgV
-----END PGP SIGNATURE-----

--i8FKDEJdp8XPNNhnlPoWSA2txn447H8mS--


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:06:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:06:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226348.391125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn02f-0000jW-Rr; Tue, 16 Nov 2021 15:06:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226348.391125; Tue, 16 Nov 2021 15:06:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn02f-0000jP-On; Tue, 16 Nov 2021 15:06:37 +0000
Received: by outflank-mailman (input) for mailman id 226348;
 Tue, 16 Nov 2021 15:06:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ogMK=QD=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1mn02e-0000jJ-9k
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:06:36 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c994e066-46ee-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 16:06:34 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 88C006D;
 Tue, 16 Nov 2021 07:06:33 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.cambridge.arm.com
 [10.1.195.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 873B53F766;
 Tue, 16 Nov 2021 07:06:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c994e066-46ee-11ec-9787-a32c541c8605
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com,
	wei.chen@arm.com,
	iwj@xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH-4.16] arm/efi: Improve performance requesting filesystem handle
Date: Tue, 16 Nov 2021 15:06:24 +0000
Message-Id: <20211116150624.7720-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.17.1

Currently, the code used to handle and possibly load from the filesystem
modules defined in the DT is allocating and closing the filesystem handle
for each module to be loaded.

To improve the performance, the filesystem handle pointer is passed
through the call stack, requested when it's needed only once and closed
if it was allocated.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
Justification for integration in 4.16:
Upside:   Fixes a performance issue only on arm that would be really useful
          for ARM users using the release, no functional changes.
Downside: It's affecting the EFI boot path (only on ARM).
Risk:     Risk is low given the small changes.

Tested in this configurations:
 - Bootloader loads modules and specify them as multiboot modules in DT:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - DT specifies multiboot modules in DT using xen,uefi-binary property:
   * combination of Dom0, DomUs, Dom0 and DomUs
 - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
   other multiboot modules are listed for DomUs using xen,uefi-binary
 - No multiboot modules in DT and no kernel entry in cfg file:
   * proper error thrown
---
 xen/arch/arm/efi/efi-boot.h | 33 +++++++++++++++++++++------------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 458cfbbed4..c4ed412845 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -45,14 +45,17 @@ void __flush_dcache_area(const void *vaddr, unsigned long size);
 static int get_module_file_index(const char *name, unsigned int name_len);
 static void PrintMessage(const CHAR16 *s);
 static int allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
+                                EFI_FILE_HANDLE *dir_handle,
                                 const char *name,
                                 unsigned int name_len);
 static int handle_module_node(EFI_LOADED_IMAGE *loaded_image,
+                              EFI_FILE_HANDLE *dir_handle,
                               int module_node_offset,
                               int reg_addr_cells,
                               int reg_size_cells,
                               bool is_domu_module);
 static int handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
+                                       EFI_FILE_HANDLE *dir_handle,
                                        int domain_node);
 static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
 
@@ -648,10 +651,10 @@ static void __init PrintMessage(const CHAR16 *s)
  * index of the file in the modules array or a negative number on error.
  */
 static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
+                                       EFI_FILE_HANDLE *dir_handle,
                                        const char *name,
                                        unsigned int name_len)
 {
-    EFI_FILE_HANDLE dir_handle;
     module_name *file_name;
     CHAR16 *fname;
     union string module_name;
@@ -686,12 +689,11 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
     file_name->name_len = name_len;
 
     /* Get the file system interface. */
-    dir_handle = get_parent_handle(loaded_image, &fname);
+    if ( !*dir_handle )
+        *dir_handle = get_parent_handle(loaded_image, &fname);
 
     /* Load the binary in memory */
-    read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
-
-    dir_handle->Close(dir_handle);
+    read_file(*dir_handle, s2w(&module_name), &module_binary, NULL);
 
     /* Save address and size */
     file_name->addr = module_binary.addr;
@@ -712,6 +714,7 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
  * Returns 1 if module is multiboot,module, 0 if not, < 0 on error
  */
 static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
+                                     EFI_FILE_HANDLE *dir_handle,
                                      int module_node_offset,
                                      int reg_addr_cells,
                                      int reg_size_cells,
@@ -744,8 +747,8 @@ static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
     file_idx = get_module_file_index(uefi_name_prop, uefi_name_len);
     if ( file_idx < 0 )
     {
-        file_idx = allocate_module_file(loaded_image, uefi_name_prop,
-                                        uefi_name_len);
+        file_idx = allocate_module_file(loaded_image, dir_handle,
+                                        uefi_name_prop, uefi_name_len);
         if ( file_idx < 0 )
             return file_idx;
     }
@@ -812,6 +815,7 @@ static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
  * Returns number of multiboot,module found or negative number on error.
  */
 static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
+                                              EFI_FILE_HANDLE *dir_handle,
                                               int domain_node)
 {
     int module_node, addr_cells, size_cells, len;
@@ -842,8 +846,8 @@ static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
           module_node > 0;
           module_node = fdt_next_subnode(fdt, module_node) )
     {
-        int ret = handle_module_node(loaded_image, module_node, addr_cells,
-                                     size_cells, true);
+        int ret = handle_module_node(loaded_image, dir_handle, module_node,
+                                     addr_cells, size_cells, true);
         if ( ret < 0 )
             return ret;
 
@@ -862,6 +866,7 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
 {
     int chosen, node, addr_len, size_len;
     unsigned int i = 0, modules_found = 0;
+    EFI_FILE_HANDLE dir_handle = NULL;
 
     /* Check for the chosen node in the current DTB */
     chosen = setup_chosen_node(fdt, &addr_len, &size_len);
@@ -881,20 +886,24 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
         {
             /* Found a node with compatible xen,domain; handle this node. */
-            ret = handle_dom0less_domain_node(loaded_image, node);
+            ret = handle_dom0less_domain_node(loaded_image, &dir_handle, node);
             if ( ret < 0 )
                 return ERROR_DT_MODULE_DOMU;
         }
         else
         {
-            ret = handle_module_node(loaded_image, node, addr_len, size_len,
-                                     false);
+            ret = handle_module_node(loaded_image, &dir_handle, node, addr_len,
+                                     size_len, false);
             if ( ret < 0 )
                  return ERROR_DT_MODULE_DOM0;
         }
         modules_found += ret;
     }
 
+    /* dir_handle can be allocated in allocate_module_file, free it if exists */
+    if ( dir_handle )
+        dir_handle->Close(dir_handle);
+
     /* Free boot modules file names if any */
     for ( ; i < modules_idx; i++ )
     {
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:08:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:08:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226354.391136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn04h-0001QV-DP; Tue, 16 Nov 2021 15:08:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226354.391136; Tue, 16 Nov 2021 15:08:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn04h-0001QO-8d; Tue, 16 Nov 2021 15:08:43 +0000
Received: by outflank-mailman (input) for mailman id 226354;
 Tue, 16 Nov 2021 15:08:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn04g-0001QG-74
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:08:42 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn04g-0005zv-5M
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:08:42 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn04g-0003aH-4C
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:08:42 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn04Q-0000J3-PV; Tue, 16 Nov 2021 15:08:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=i3c9t2s+x+6crnjusMREvzyxuaKfalRRv2nS23Rzn7I=; b=D7MJtmnglrRDsQChebPC65AKgF
	4+H8vefqkbTyNb2uUL23T4UChrz8Eu/MtgOA9CFTFS7qH6kI/DMPbmN2yuvrzaWpiwwyX/xg8urfk
	0xkPDPWvfVxsjvU6eFZ/PMKhaNFXYn1Wc1R3EjPe7jT2qXKtUPopVHeFPtEuZ05PMZto=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24979.51557.253278.46402@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 15:08:21 +0000
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
    Julien Grall <julien@xen.org>,
    Jan Beulich <jbeulich@suse.com>,
    Bertrand Marquis <bertrand.marquis@arm.com>,
    wei.chen@arm.com,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
In-Reply-To: <1606F25D-53BF-4350-B065-B1FAB525F6A1@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
	<81685961-501e-7a41-6f6f-bc4491645264@suse.com>
	<alpine.DEB.2.22.394.2111041351490.284830@ubuntu-linux-20-04-desktop>
	<97C884F7-0577-4996-AB79-0A07A8D48FD8@arm.com>
	<alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
	<9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
	<alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
	<e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
	<alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
	<9bd58aa4-602b-4c64-e759-581513909457@suse.com>
	<alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
	<191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
	<alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
	<3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com>
	<010fa02f-e561-e7a8-9638-5246db9166b4@xen.org>
	<725F3F68-A1CE-42FB-9C8A-0700CDD02E8E@arm.com>
	<a07ff375-b910-0d73-e957-15ba9d2535fe@xen.org>
	<alpine.DEB.2.22.394.2111151359360.1412361@ubuntu-linux-20-04-desktop>
	<1606F25D-53BF-4350-B065-B1FAB525F6A1@arm.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Luca Fancellu writes ("Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64"):
> > On 15 Nov 2021, at 22:00, Stefano Stabellini <sstabellini@kernel.org> wrote:
> > On Mon, 15 Nov 2021, Julien Grall wrote:
> >> That would indeed be better. I'd like this patch to be merged in 4.16. Would
> >> you be able to send a new version in the next couple of days?
> > 
> > I'd love that too; adding Ian so that he is aware.
> 
> Hi, yes I will prepare it and push very soon.

Can someone explain to me what is going on here in management-level-speak ?
I have read the thread and, as far as I can tell:

There was an actual regression with Grub2 on ARM64.  This was fixed by
9bc9fff04ba0 "xen/efi: Fix Grub2 boot on arm64" (committed on the 5th
of Novwmber).

But there are some objections to parts of that patch, from Jan.  It is
not clear to me what the status of those objections is.

Was I wrong to think that Jan had given an R-b ?  Had it been
withdrawn ?  I apologise if I committed a patch I shouldn't have.
(I have a vague memory of some conversation about this on irc but
nothing about this seems to have made it into email.)

AIUI from the thread, most of this discussion is about a followup
patch.  I don't understand the nature of the problem the followup
patch fixes, or the risk of the followup patch.

Does the current state of staging have a regression or serious bug ?
Who is affected by this bug and what are the consequences ?

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:13:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:13:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226362.391147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn08z-0002of-WE; Tue, 16 Nov 2021 15:13:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226362.391147; Tue, 16 Nov 2021 15:13:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn08z-0002oY-Se; Tue, 16 Nov 2021 15:13:09 +0000
Received: by outflank-mailman (input) for mailman id 226362;
 Tue, 16 Nov 2021 15:13:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn08y-0002oS-Tx
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:13:09 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn08y-000665-T7
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:13:08 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn08y-0003xi-S8
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:13:08 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn08v-0000Ki-0e; Tue, 16 Nov 2021 15:13:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=SlrAvkZpZ1ubCWoeyTTa1B6bMyE/gMOPUfwjvU7pyMs=; b=EiyWaw+4F8GBG9Rh7DeVEnmO4s
	7qtIkRL8dYmVHMIBPMLHX5cUGMFc+9KQnoAxuLbLhqHX4I6c/0dG9vYM77uN/T7Yb4e4KL/nBbIPk
	V5THB475FNaP0K+T4bDcBHl9NP7j3OmFepw2ngc2f6vz1O4yGNbzUa9DWZ7NyeRGFq/U=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24979.51834.458408.397350@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 15:12:58 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH for-4.16] freebsd/privcmd: fix MMAP_RESOURCE ioctl definition
In-Reply-To: <20211115110851.1462-1-roger.pau@citrix.com>
References: <20211115110851.1462-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16] freebsd/privcmd: fix MMAP_RESOURCE ioctl definition"):
> Current ioctl definition was wrong in both FreeBSD and Xen sources, as
> the MMAP_RESOURCE ioctl needs to copy back the size of the resource
> when passed a zero address and size. FreeBSD encodes in the definition
> of the ioctl number whether parameters should be copied in (W) and/or
> copied out (R). The current definition for MMAP_RESOURCE is lacking
> the copy out part (R), and thus the call to query the size of a
> resource would always return 0.
> 
> This change will break the current ioctl interface, the tools can
> however fall back to using the foreign memory interface in order to
> map resources from guests.
> 
> This was a shortcoming from when the hypercall and ioctl gained the
> ability to query the size of the resources, as originally the
> MMAP_RESOURCE ioctl didn't need to copy out any data.
> 
> Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>
> ---
> Cc: Ian Jackson <iwj@xenproject.org>
> 
> The change only affects FreeBSD, and it's only a change in a
> definition of an ioctl, so it's unlikely to break existing code logic.
> Without this change Xen tools won't be able to use the MMAP_RESOURCE
> ioctl.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:19:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:19:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226366.391157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0FO-0003Tz-Mn; Tue, 16 Nov 2021 15:19:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226366.391157; Tue, 16 Nov 2021 15:19:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0FO-0003Ts-Jt; Tue, 16 Nov 2021 15:19:46 +0000
Received: by outflank-mailman (input) for mailman id 226366;
 Tue, 16 Nov 2021 15:19:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0FN-0003Tm-F2
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:19:45 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0FM-0006DO-VA
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:19:44 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0FM-0004G1-UI
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:19:44 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn0FI-0000MW-8G; Tue, 16 Nov 2021 15:19:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=knBfnvoUck10veKPWLhZ/TJwideajrClK6rjASb4wR4=; b=l2ox9xmoaTXAxxnN1TxiI+ORX3
	aTBcShQ8Nc3L2LGRCEDZ1IC/mPhDoEoydsuH3fGUgOnLx0odRUTjtkAtxVT8EdKVgpZ16GW7tQPD2
	W7NBM56/ms0mkU+BESXeE/1airMDAfvJhUf1hjUik0oNJ8TmAY0/2YroMV8w5jO/b3oM=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24979.52233.591993.911437@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 15:19:37 +0000
To: Jan Beulich <jbeulich@suse.com>,
Cc: Roger Pau =?iso-8859-1?Q?Monn=E9?= <royger@FreeBSD.org>,
    "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    Wei Liu <wl@xen.org>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v2 1/6][4.16?] x86/x2APIC: defer probe until after IOMMU
 ACPI table parsing [and 2 more messages]
In-Reply-To: <24965.21029.795504.152439@mariner.uk.xensource.com>,
	<24969.15479.681521.102446@mariner.uk.xensource.com>,
	<b752a000-f69c-ad21-d059-90e12fc83553@suse.com>
References: <d88cfda3-54e4-2323-f536-547879380815@suse.com>
	<b752a000-f69c-ad21-d059-90e12fc83553@suse.com>
	<43d8cc88-aae0-5a82-7b4b-756dd54dd223@suse.com>
	<YYVQAH7OYmFSVOei@Air-de-Roger>
	<24965.21029.795504.152439@mariner.uk.xensource.com>
	<89eda99d-67da-ad97-6040-db79702636bd@suse.com>
	<24969.15479.681521.102446@mariner.uk.xensource.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

I wrote:
> Could we not do a smaller fix that would print something in the boot
> output, mabye ?  That would be a lower risk change.
> 
> So far, I think the tradeoff here isn't looking very good: a risk of
> unclear magnitude for many users, vs a hard crash at boot for a set of
> users we believe to be empty.
> 
> As ever, feel free to contradict me if I have the wrong end of one of
> the many sticks here...

On the question of backporting:

Jan Beulich:
> >Ian Jackson:
> >>>       Nevertheless it will then be a backporting candidate, so
> >>>       considering to take it right away can't simply be put off.
> > 
> > This part confused me.  Under what circumstances would we backport
> > this ?  AIUI it would be backporting a potentially-fragile and
> > not-readily-testable bugfix, for a theoretical scenario with a
> > straightforward workaround.
> 
> Well, I've said "candidate" for this very reason: To me, every bug
> fix is a candidate. Whether risks outweigh the potential benefits is
> then influencing whether to _actually_ take the change. A reason to
> take it despite the available workaround might be that
> "straightforward" doesn't also mean "obvious" here. IOW once you
> know what to do, doing so is easy. But one first needs to arrive
> there.

I didn't find this particularly convincing, TBH.

Despite the above exchanges, this patch is still marked 4.16? and the
release discussion inthe patch does not seem to have bene updated to
take into account this discussion.

In any case, I think at this stage of the freeze this patch is not a
good bet, particularly seeing as it has had to have another round.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:20:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:20:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226370.391169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0GF-0004kn-01; Tue, 16 Nov 2021 15:20:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226370.391169; Tue, 16 Nov 2021 15:20:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0GE-0004kg-TO; Tue, 16 Nov 2021 15:20:38 +0000
Received: by outflank-mailman (input) for mailman id 226370;
 Tue, 16 Nov 2021 15:20:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0GD-0004kW-G4
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:20:37 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0GD-0006EU-FB
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:20:37 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0GD-0004KW-EI
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:20:37 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn0G9-0000N9-GC; Tue, 16 Nov 2021 15:20:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=NxEy6/FCiY88TWeKG0GT90Kf0KOr1KIWwBZ/V23zrb0=; b=I44pRp0zSKT1toUAoKDI6eP6WM
	0SpF3fv4A75LNDm5IwwCMfwpAIDRu11h8GCKCu6fjuouwddBpFpvivK2j1EolnYKA/cy+PkeWtMty
	xGKuhSW03DnURKUChmS64Qj+aG5AH0RmVg19tApFcI8EiW6JHzSP9szQ/U37rHEXnn3I=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24979.52288.972030.824961@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 15:20:32 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Community Manager <community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16] CHANGELOG: set Xen 4.15 release date
In-Reply-To: <20211116140344.10766-1-roger.pau@citrix.com>
References: <20211116140344.10766-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16] CHANGELOG: set Xen 4.15 release date"):
> Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:29:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:29:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226375.391180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0OK-0005Yc-Vq; Tue, 16 Nov 2021 15:29:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226375.391180; Tue, 16 Nov 2021 15:29:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0OK-0005YV-Sq; Tue, 16 Nov 2021 15:29:00 +0000
Received: by outflank-mailman (input) for mailman id 226375;
 Tue, 16 Nov 2021 15:27:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TA58=QD=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mn0Mj-0005Wz-9N
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:27:21 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20610.outbound.protection.outlook.com
 [2a01:111:f400:7eae::610])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af27f305-46f1-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 16:27:19 +0100 (CET)
Received: from BN9PR03CA0128.namprd03.prod.outlook.com (2603:10b6:408:fe::13)
 by BN8PR02MB6002.namprd02.prod.outlook.com (2603:10b6:408:be::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Tue, 16 Nov
 2021 15:27:12 +0000
Received: from BN1NAM02FT015.eop-nam02.prod.protection.outlook.com
 (2603:10b6:408:fe:cafe::86) by BN9PR03CA0128.outlook.office365.com
 (2603:10b6:408:fe::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27 via Frontend
 Transport; Tue, 16 Nov 2021 15:27:12 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 BN1NAM02FT015.mail.protection.outlook.com (10.13.2.132) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 15:27:12 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Tue, 16 Nov 2021 15:27:11 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Tue, 16 Nov 2021 15:27:11 +0000
Received: from [10.71.118.222] (port=55749)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>) id 1mn0MY-0000NX-Mk
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:27:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af27f305-46f1-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nMExD0YLdexr+7al4TL9MScA8iMjhaAgQp79I2Wq/eKTwm4lF2Qy469G6uei9fs3NHXvM/XdCW38CNig7cv5DJyINok4Y66uBrzEjJDwdukAGplVFgR1MumwirtQ2sdsZMc6xEsQnVgOqYm8q5c6rgdzATh3wnjl0WTRijd3YFZa9VXWVh5x0KHhbZCFviFaj/dTl74X6kFOF9ssiAkhZsInrdiKxNFffiRkhccqxuo1sU3S0rrafg/5LK2K6AE/QCUcsf9nx5GCdWe5XztGQ2XHvSfKgZwSHpOS2Et25j/U616EAYbd1FIhlEacdzysFnVT/MzX3rqDoiieojDmrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=axw6WAFNmhkvoC3udJ+IHjNnRrtN8h0mwO/xm2If9nI=;
 b=CPu9phRrEaNywKYiKqLD1XIExf8wYUdZ+aP3/YsEsSgZibeHYHpwjlce71qaoDlJT3vPtWlREAiY5TmnKVWMxgKOCvoFYwvefDvW4S9DM7sIYgveHv1upk5fsDJTasI9aSIsmMnK4RM0q3fTcexoNeW+m8DGZSAE04qyVeqhiysmAQLYp1vdgum05hlTPEdZfjeleE5k7GbrBAGtECfhk7T0ZM025hNw8xcozqVP5dbe99vF84lXOLL6xmrpUMuPav4EYLwbYB9os7TD6XYZdzHk//yxIesVkUGF6R2tebQSCFl3ZGA/E0eGe+nif0gE+3+I8DrX7x1M6ohPkjR54A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=axw6WAFNmhkvoC3udJ+IHjNnRrtN8h0mwO/xm2If9nI=;
 b=SuhHyEPsznBeQ9QAOE2pCfEx7QWnipXgM55kCePxCmaQVjb0YctGdbsKp9X1wOFDcuXO2uSc2xo2AyrgPwdzigkxLa7HvcAqUF70P2JfBlrfu17VvmMTvhHia24xbBLNMN03PY1pkab3zQRrmI13nhZRYqmHcJRR/HKRebdfnfg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
Message-ID: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com>
Date: Tue, 16 Nov 2021 15:27:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
To: <xen-devel@lists.xenproject.org>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Subject: Xen/ARM - Query about a data abort seen while reading GICD registers
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 73bfa362-6bff-49f8-0aa2-08d9a9158fec
X-MS-TrafficTypeDiagnostic: BN8PR02MB6002:
X-Microsoft-Antispam-PRVS:
	<BN8PR02MB600274C2AEB3A4B2AF310143B2999@BN8PR02MB6002.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	szcw7KTXI2T53jaoDHq9EJPAzCSWSUmr3Ixx0Pj2f5OYdhgrx9PXOoyFZIMwH06lBNsCSRCdGASqnRCYLVIxq6O0iWtnZSAupPQycHtISg2/ianZXi+VVSBVIAAWPB5QI25mViiNyXOsuhTD7QwgYsD9SgOAIC8uAWn1+Z2MpEXB7aQbNXD/Hba+DkwXW0yPjTqzCRiN3Jg1tTFheclpqsjkmRTQbxetYfX31RRvlcoPUhxHwUfOnP0JgNM1oGhi5hIRDVdG4MiiIhOsrzYlIBxbmLzh0ZRUqStleCfVbUy6GGEwbAGHUJR4LkMS6A2WxzVj/Z4FnHAw+dSZIJlv0+m0x00z1P4pb6Ppo02D2AsCMijxYBVO2SqX9PEA5Vn+ekkp8IK8ktMrByxu2K9dkNTW9eqvRzghkQsPxM7tEYBgIe3EV4OAtJ5PFR+kMDrPVrUQU81sK9WdIWA7eloZ8ymYUyPTUHoQAkGjH4QgN+SYSRGUAgy8s8bAo2g3qZCQ5Ws85FC4KoCJ7V+QhLH2zRqyQXkAF5O4oQ4+POyIny6x8n02fGMm1Eyi5eXgVid+fo/FJ0r6s/QhIrlICUgsq0Fr+HdP2u2JWwA0k+0yo3hR2B0oviXK5gPBUCRQ0oyRLPcDkZcYjKWIWilpgHs+AGO58A0f8xHkHKrCEdSJrnG+/vN0NEmQGRYvrcx4katUoUvCzBktgPBoDWTiV2oOaGW6tMYQnhoQVWufk78qugV/tplf2oBdoGaSXCgNILhXBTI12ilnCB+W8XZ/yN3rXA==
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(508600001)(8676002)(336012)(8936002)(36906005)(47076005)(356005)(31696002)(2906002)(36756003)(31686004)(82310400003)(5660300002)(70206006)(6916009)(36860700001)(7636003)(9786002)(426003)(70586007)(26005)(316002)(186003)(2616005)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 15:27:12.1975
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 73bfa362-6bff-49f8-0aa2-08d9a9158fec
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1NAM02FT015.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR02MB6002

Hi Xen/Arm experts,

I am facing a very strange issue while running a baremetal application 
as a DomU guest on arm64 platform.

The baremetal app tries to read the GICD register with post indexing as 
follows :-
ldr x1, =0x3001000
ldr w2, [x1], #4 <<<------ PC = 0x40000ca8

And then I get :-
HSR=0x92000005 pc=0x00000040000ca8 gva=0x3001000 gpa=0x00000003001000

This problem occurs only while reading the GICD registers with post 
indexing. If I read the register with pre-indexing, then I do not see 
any abort. Alternatively, if I read GICC register with post indexing, I 
don't see the abort either.

 From the HSR value, I interpret it as
EC = 100100b # Data abort from lower exception
IL = 1b # 32 bit instruction trapped
DFSC = 101 # Translation fault level 1

On debugging, I found that the abort is triggered from

try_handle_mmio()
{ ...
     /* All the instructions used on emulated MMIO region should be valid */
     if ( !dabt.valid ) {

         return IO_ABORT;
     }
...
}

 From the Arm V8 Arm specs, I understand that dabt.valid is ISV, bit[24] 
in "ISS encoding for an exception from a Data Abort".


I saw that the caller is

do_trap_guest_sync() "case HSR_EC_DATA_ABORT_LOWER_EL"
where dabt.valid is false.
In the success scenario, dabt.valid is true.

I could not find the caller for do_trap_guest_sync()

So, can anyone help me here
1. Who is the caller for do_trap_guest_sync() ?
2. Any idea on what the issue is and how I can debug it further ?

Kind regards,
Ayan


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:36:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:36:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226380.391191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0VX-0006w6-QV; Tue, 16 Nov 2021 15:36:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226380.391191; Tue, 16 Nov 2021 15:36:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0VX-0006vz-Mb; Tue, 16 Nov 2021 15:36:27 +0000
Received: by outflank-mailman (input) for mailman id 226380;
 Tue, 16 Nov 2021 15:36:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Lo73=QD=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mn0VW-0006vt-5R
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:36:26 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0627.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::627])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f44b2dc8-46f2-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 16:36:24 +0100 (CET)
Received: from AM6P195CA0067.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::44)
 by DB9PR08MB7099.eurprd08.prod.outlook.com (2603:10a6:10:2c4::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Tue, 16 Nov
 2021 15:36:22 +0000
Received: from AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:87:cafe::e9) by AM6P195CA0067.outlook.office365.com
 (2603:10a6:209:87::44) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend
 Transport; Tue, 16 Nov 2021 15:36:22 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT032.mail.protection.outlook.com (10.152.16.84) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 15:36:20 +0000
Received: ("Tessian outbound 9a8c656e7c94:v110");
 Tue, 16 Nov 2021 15:36:20 +0000
Received: from fd2620a4c9a1.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F9BFEC9B-14E7-40D0-90F7-FB1E7F7C3463.1; 
 Tue, 16 Nov 2021 15:36:14 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id fd2620a4c9a1.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 16 Nov 2021 15:36:14 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM5PR0802MB2596.eurprd08.prod.outlook.com (2603:10a6:203:98::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19; Tue, 16 Nov
 2021 15:36:12 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 15:36:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f44b2dc8-46f2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xH6hEkRHRCnsDpQVM/w6/Vp65XyiVOeQulO2+x+2dF4=;
 b=bJW5giQeTLkiWOxgYKYUpao/uQtf4hr1U/9W9Y7ae0HePlrq8y8X6VtknpXHhVP1Xn2yhRi97sIA7biHqSM/S9fFkEGeRNr0LK4LDy2LtZEsgeMlio5BWV71uFjpC7dLSSYKkj/eYUNuW1FCrdtt0VePwVxbq6JkeHE3Z4iaHf4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 5b181a9926d8c2e0
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RWrsiQvIhDtQcXi3PeuuvzVgeL5YqVipQ1Da6tZkvYUKBO4QuIZ99mjZfKNcLlMFH7h6Uf5ioolIKRHPidd7Ik2OEgdzBwa/396XYQtAulBVHQIGZbhN5tsDe6zU55QUcxKveDAPCG2fZXO0DFqdi+y4AJSp8SLNrJIj3fgTc4DVLVngjeIP2uHH9ymbu5hBpuMsF7LHpsfOe+VmUQogt5Sdi0Lf5nho/1OGMlC7mJwuXhbYswL4KZNSnDAg+CIQTc6J0zLeVV3FBQ2AdQhQGKe0Fuip1Oxw9nb488KV4oSmkiLQbX9N0pwgSlT1a4+TDNFVnMmG3AfjmteepeR+ig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xH6hEkRHRCnsDpQVM/w6/Vp65XyiVOeQulO2+x+2dF4=;
 b=WzU/lipieE2FT7Ii8zlo/SB7prg9KV8Ksj1kgivrvYqFwDzxxOwP1G3Ct15d1EuJhkPOW5pExRSyUzhr7HIlkYRI1EzOSQ7TkjdqGMYvcrYjVgIYTMB2fAdpMnSVvdSnR4sIpYHYsL4M8D36bpAHcq9EfYyNcVDCS3hMjy8D8nB3D62p5U+7leZV8bvpnndOjoDxTlo4LT7T4tK26NpPd83d0xFhbtJU6xBDLh+q5cIpAAZ688AareU6yVcbaj9zwHKVv0Ylj+WmqbJeV7pypjADnJaDwxqcFRjK6u1q3/W59cuAPtBsijOJLfqymVz4fJMm2MXg85A0nTWi6QEPLQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xH6hEkRHRCnsDpQVM/w6/Vp65XyiVOeQulO2+x+2dF4=;
 b=bJW5giQeTLkiWOxgYKYUpao/uQtf4hr1U/9W9Y7ae0HePlrq8y8X6VtknpXHhVP1Xn2yhRi97sIA7biHqSM/S9fFkEGeRNr0LK4LDy2LtZEsgeMlio5BWV71uFjpC7dLSSYKkj/eYUNuW1FCrdtt0VePwVxbq6JkeHE3Z4iaHf4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Xen/ARM - Query about a data abort seen while reading GICD
 registers
Thread-Topic: Xen/ARM - Query about a data abort seen while reading GICD
 registers
Thread-Index: AQHX2v69rH0Wb2BjYUqXheWDWZOLqqwGSWAA
Date: Tue, 16 Nov 2021 15:36:12 +0000
Message-ID: <CED537AF-44AA-41B8-9458-17A5C43FBECC@arm.com>
References: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com>
In-Reply-To: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 5e91b002-404c-4c07-4c0f-08d9a916d6ba
x-ms-traffictypediagnostic: AM5PR0802MB2596:|DB9PR08MB7099:
X-Microsoft-Antispam-PRVS:
	<DB9PR08MB7099FE00D96CBB797C343C169D999@DB9PR08MB7099.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 9ORpEG4vjjQTK8lcCOPwVhGsknJTH/xiCerMLCFS2nvrG9RxrHuDYk5/ogdXxIkWxI7OSvy4M4ui73WVMXdGrxe57j5kavX/1NNifbkq+uYS+5ZCl4FoHOsKsYoMlRtlipicrHCGlVDe1mHVSmQ8NzNO6n1iMvNOw2ScnzsGUAxp3sXvfbpnLk1GNFbTPouEeFUfgPxCugnhU+wKMbimSW05RigrVDNMYkDHctCEMrvc/Dlbfh3D/9TViq32FuWrPt9IOTYn3zD8zlsyh1+w/HM4IKWXQvoMXFRkJmzUSHhRm/HBQ82tPne7BNt3ZuYZdNZv1ZtBD7ej3g3oAKnlUEPSqXgeLahnXaeeXt8U01AgvqtdL84DfE7RjjnT/2XZPyU9tfk3hQjlB46iBvESErGZA7+YiitaZMvis0cqUp187wBHZ6PtwFs0sCy9nq8bZzkryuX4VlQ952ETQTWzH9PZa9AdytP5Gy3GpV/+jajouoNfdTFADilJWA2hB0e1Neu04+ziSArCKm9bnmM9/jNogxm6rA2isboUuLan17uQLXRAM0YDlJvWxVlEMsc3PoRtlv2EDw18Z8Kfi0qcJbnINT2nN39IDtrFua5a4QSuK21C5t0vhzecPSfgwbbPDaAKvjAksLufSwgI58t+1I8+t1BEOfu9Om3QXTs25rTx511YhKCaGPl6ygcRqbFRpXrhd8jVmKfj9U3PJ2o21s7t3Bs/HZRoRNplWA8ZpNy5V1cvq1J1dUMU4OkHBs84
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6512007)(122000001)(186003)(6916009)(38100700002)(66556008)(2906002)(8936002)(5660300002)(53546011)(6506007)(66476007)(66946007)(2616005)(508600001)(66446008)(64756008)(36756003)(6486002)(71200400001)(316002)(4326008)(38070700005)(76116006)(86362001)(91956017)(33656002)(8676002)(26005)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <90F8E8832A3FEA4AB0F7219088C40D48@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2596
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0b0415e6-cc43-4eeb-b54e-08d9a916d20e
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	aN6ZhcO3FeAXV9N3i6rkNsjjMbrZbWFu2ElIrxEq9vLRxm/TEgZj+0CjdKd40y747m5eqeAWF8HvV/EQVzJne/y+97RSSPaBlZGkNC3UlTKyJfedtfh2ivoHXfCPPruA1YRIEKf6WRlIfq+7tolrXz4eXVbJi6bNovcYB1p2trRvPQKuyNDWtQgVTtCcyvXESNeQ4Fh9CUrXkpSnkVXFPXg/hspncgOCiPtmieQFlsC6SeRtgbwza7yDeXjEZQ7GE/pqy2Gdk5mnO/CtDqTS8+4uPGaoKUO6IRlXlu6MVjYUVxZKjxqqSWfd9wabMEUiJX8JKkEfX3j2/wmRH1KoSGOSwtRuwTmiVZVNsx1cJF8JY9vTuzFgoJ4GSizdraCgIF7dt58mJs7xuIRICvZKzKuPkcLd4lUXcH/D/Mr5BmmIqKRE635PSs8/Z/ISZlvsiAv2QndEEgg57KtRKz/ZsBkIYhBHYqkYOzGps92Qb7mtgsML4IMosznYojNY6jLJGnDxeIB4y53RGa3jdtnMdsgNd9sFTJ0qt4ruMsDHxQL4l97GBj1SzSmYb34mVzTcS8dwu4lXM0nF1UzubM8LmGAaamG8W4jD6lVeEZYB4p4YEBzA12Uo/r1UoRTmnPPpEcVB5TWakTnQ7/Ey6lJaP9jtHMW6fBQHokya+okk60TTEn6ZawcypbKcBew43DSCv7JCVl5DcVS94GBN41JQSA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(6862004)(82310400003)(70206006)(6486002)(47076005)(356005)(70586007)(186003)(36860700001)(26005)(316002)(2616005)(86362001)(4326008)(81166007)(508600001)(336012)(8936002)(6506007)(53546011)(2906002)(8676002)(36756003)(33656002)(5660300002)(6512007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 15:36:20.5944
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5e91b002-404c-4c07-4c0f-08d9a916d6ba
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7099

Hi Ayan,

> On 16 Nov 2021, at 15:27, Ayan Kumar Halder <ayan.kumar.halder@xilinx.com=
> wrote:
>=20
> Hi Xen/Arm experts,
>=20
> I am facing a very strange issue while running a baremetal application as=
 a DomU guest on arm64 platform.
>=20
> The baremetal app tries to read the GICD register with post indexing as f=
ollows :-
> ldr x1, =3D0x3001000
> ldr w2, [x1], #4 <<<------ PC =3D 0x40000ca8

Increment on on load is not supported by the emulation layer.

Could you try with:
add x1, x1, #4
ldr w2, [x1]

Regards
Bertrand

>=20
> And then I get :-
> HSR=3D0x92000005 pc=3D0x00000040000ca8 gva=3D0x3001000 gpa=3D0x0000000300=
1000
>=20
> This problem occurs only while reading the GICD registers with post index=
ing. If I read the register with pre-indexing, then I do not see any abort.=
 Alternatively, if I read GICC register with post indexing, I don't see the=
 abort either.
>=20
> From the HSR value, I interpret it as
> EC =3D 100100b # Data abort from lower exception
> IL =3D 1b # 32 bit instruction trapped
> DFSC =3D 101 # Translation fault level 1
>=20
> On debugging, I found that the abort is triggered from
>=20
> try_handle_mmio()
> { ...
>    /* All the instructions used on emulated MMIO region should be valid *=
/
>    if ( !dabt.valid ) {
>=20
>        return IO_ABORT;
>    }
> ...
> }
>=20
> From the Arm V8 Arm specs, I understand that dabt.valid is ISV, bit[24] i=
n "ISS encoding for an exception from a Data Abort".
>=20
>=20
> I saw that the caller is
>=20
> do_trap_guest_sync() "case HSR_EC_DATA_ABORT_LOWER_EL"
> where dabt.valid is false.
> In the success scenario, dabt.valid is true.
>=20
> I could not find the caller for do_trap_guest_sync()
>=20
> So, can anyone help me here
> 1. Who is the caller for do_trap_guest_sync() ?
> 2. Any idea on what the issue is and how I can debug it further ?
>=20
> Kind regards,
> Ayan
>=20



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:39:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226388.391213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yd-0007w2-KJ; Tue, 16 Nov 2021 15:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226388.391213; Tue, 16 Nov 2021 15:39:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yd-0007vv-GP; Tue, 16 Nov 2021 15:39:39 +0000
Received: by outflank-mailman (input) for mailman id 226388;
 Tue, 16 Nov 2021 15:39:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6+K+=QD=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mn0Yc-0007uz-7u
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:39:38 +0000
Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com
 [2607:f8b0:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6704d35b-46f3-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 16:39:37 +0100 (CET)
Received: by mail-pf1-x42f.google.com with SMTP id c4so18560050pfj.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Nov 2021 07:39:37 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:3:57e4:b776:c854:76dd])
 by smtp.gmail.com with ESMTPSA id x64sm1981948pfd.151.2021.11.16.07.39.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Nov 2021 07:39:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6704d35b-46f3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=A871xRYimWpuymqSDqhiZkbRS8n6nHIMpIOunv30ysw=;
        b=MfZeD4SICRk2M6gRj1QxEYd4A8GvB/tRH7apw5VqkE/bVG+e8yrO8ijV4aIzjOYHCC
         lQaASY53qGtDAM8wVSmTdWy3cvr1fvftCXOr1EfkVi6q9+ynxxKdWVTFAB9VaO2TfYRR
         tfbCajFfMAXlVqh3Ee2e0v9R0QcUDnq2f75xm0EEX761w/daoZNmHuD6pTxtXrJk+zhI
         AuO4Y0S1MvttNc6duCjVc1isZ8WPRdME3vdYmZuaOWojOYPqotm4HvFO/DdtAUnehn/u
         imITBVFlmiur1TnzAUd4yqml2N6tmP0mPVoeHVKo0W1d72FZEHoNJmiMrsvCB8TvjN82
         hWIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=A871xRYimWpuymqSDqhiZkbRS8n6nHIMpIOunv30ysw=;
        b=mnhn0KyGxjuS4bPk/lNT3VJYQwjnETN0XdcYPfD7G2DOdRde5DjtpHWg6ZNsMwdETW
         XElUP5Kic+HQQ9hp19NsAfs1Y7rcwmJMDz5OFRM75zeDAIybJAU7ZsVaTlN3UyNw6I8g
         bzYgjKXxiZgkwdDjPALadhpx/Hn+yvTMP1nqGGL4IrqaU/v7bfpaPunEw70catsF3fjQ
         OcMHjkOXO1UL/Gi4gkHx2lgir9tsPbqWxzereFxIySNh81fIkIpekd9iYVO9xuYxeWrP
         MQ4pl8iQzwaR3q6x617WD4V+1p6KzSLxEGFP0Qnk4kzyXvgLIaCpkJ5fRR40QbWqCtdj
         Nvgw==
X-Gm-Message-State: AOAM531duneFLTWNkdEHfVRUKujfujZE8051NLajyvx77f+azNUrb0wA
	N9K7LBd56whPnTi7xKhvsKM=
X-Google-Smtp-Source: ABdhPJyHY3AIAxxj2PlCrLjDoT50XcH+uS0J9YrXheMYn9wWskO9/XhyBYsqQ+PUuD81c8+MSeo8ig==
X-Received: by 2002:a62:2503:0:b0:4a2:b772:25ac with SMTP id l3-20020a622503000000b004a2b77225acmr17439529pfl.53.1637077170490;
        Tue, 16 Nov 2021 07:39:30 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: dave.hansen@linux.intel.com,
	luto@kernel.org,
	peterz@infradead.org,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	x86@kernel.org,
	hpa@zytor.com,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	thomas.lendacky@amd.com,
	dave.hansen@intel.com
Subject: [PATCH 1/5] x86/Swiotlb: Add Swiotlb bounce buffer remap function for HV IVM
Date: Tue, 16 Nov 2021 10:39:19 -0500
Message-Id: <20211116153923.196763-2-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116153923.196763-1-ltykernel@gmail.com>
References: <20211116153923.196763-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

In Isolation VM with AMD SEV, bounce buffer needs to be accessed via
extra address space which is above shared_gpa_boundary (E.G 39 bit
address line) reported by Hyper-V CPUID ISOLATION_CONFIG. The access
physical address will be original physical address + shared_gpa_boundary.
The shared_gpa_boundary in the AMD SEV SNP spec is called virtual top of
memory(vTOM). Memory addresses below vTOM are automatically treated as
private while memory above vTOM is treated as shared.

Expose swiotlb_unencrypted_base for platforms to set unencrypted
memory base offset and platform calls swiotlb_update_mem_attributes()
to remap swiotlb mem to unencrypted address space. memremap() can
not be called in the early stage and so put remapping code into
swiotlb_update_mem_attributes(). Store remap address and use it to copy
data from/to swiotlb bounce buffer.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
 include/linux/swiotlb.h |  6 ++++
 kernel/dma/swiotlb.c    | 75 ++++++++++++++++++++++++++++++++++++-----
 2 files changed, 73 insertions(+), 8 deletions(-)

diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
index 569272871375..09a140d617fa 100644
--- a/include/linux/swiotlb.h
+++ b/include/linux/swiotlb.h
@@ -73,6 +73,9 @@ extern enum swiotlb_force swiotlb_force;
  * @end:	The end address of the swiotlb memory pool. Used to do a quick
  *		range check to see if the memory was in fact allocated by this
  *		API.
+ * @vaddr:	The vaddr of the swiotlb memory pool. The swiotlb
+ *		memory pool may be remapped in the memory encrypted case and store
+ *		virtual address for bounce buffer operation.
  * @nslabs:	The number of IO TLB blocks (in groups of 64) between @start and
  *		@end. For default swiotlb, this is command line adjustable via
  *		setup_io_tlb_npages.
@@ -92,6 +95,7 @@ extern enum swiotlb_force swiotlb_force;
 struct io_tlb_mem {
 	phys_addr_t start;
 	phys_addr_t end;
+	void *vaddr;
 	unsigned long nslabs;
 	unsigned long used;
 	unsigned int index;
@@ -186,4 +190,6 @@ static inline bool is_swiotlb_for_alloc(struct device *dev)
 }
 #endif /* CONFIG_DMA_RESTRICTED_POOL */
 
+extern phys_addr_t swiotlb_unencrypted_base;
+
 #endif /* __LINUX_SWIOTLB_H */
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
index 8e840fbbed7c..4735c5e0f44d 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -50,6 +50,7 @@
 #include <asm/io.h>
 #include <asm/dma.h>
 
+#include <linux/io.h>
 #include <linux/init.h>
 #include <linux/memblock.h>
 #include <linux/iommu-helper.h>
@@ -72,6 +73,8 @@ enum swiotlb_force swiotlb_force;
 
 struct io_tlb_mem io_tlb_default_mem;
 
+phys_addr_t swiotlb_unencrypted_base;
+
 /*
  * Max segment that we can provide which (if pages are contingous) will
  * not be bounced (unless SWIOTLB_FORCE is set).
@@ -155,6 +158,31 @@ static inline unsigned long nr_slots(u64 val)
 	return DIV_ROUND_UP(val, IO_TLB_SIZE);
 }
 
+/*
+ * Remap swioltb memory in the unencrypted physical address space
+ * when swiotlb_unencrypted_base is set. (e.g. for Hyper-V AMD SEV-SNP
+ * Isolation VMs).
+ */
+void *swiotlb_mem_remap(struct io_tlb_mem *mem, unsigned long bytes)
+{
+	void *vaddr;
+
+	if (swiotlb_unencrypted_base) {
+		phys_addr_t paddr = mem->start + swiotlb_unencrypted_base;
+
+		vaddr = memremap(paddr, bytes, MEMREMAP_WB);
+		if (!vaddr) {
+			pr_err("Failed to map the unencrypted memory %llx size %lx.\n",
+			       paddr, bytes);
+			return NULL;
+		}
+
+		return vaddr;
+	}
+
+	return phys_to_virt(mem->start);
+}
+
 /*
  * Early SWIOTLB allocation may be too early to allow an architecture to
  * perform the desired operations.  This function allows the architecture to
@@ -172,10 +200,17 @@ void __init swiotlb_update_mem_attributes(void)
 	vaddr = phys_to_virt(mem->start);
 	bytes = PAGE_ALIGN(mem->nslabs << IO_TLB_SHIFT);
 	set_memory_decrypted((unsigned long)vaddr, bytes >> PAGE_SHIFT);
-	memset(vaddr, 0, bytes);
+
+	mem->vaddr = swiotlb_mem_remap(mem, bytes);
+	if (!mem->vaddr) {
+		pr_err("Fail to remap swiotlb mem.\n");
+		return;
+	}
+
+	memset(mem->vaddr, 0, bytes);
 }
 
-static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
+static int swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
 				    unsigned long nslabs, bool late_alloc)
 {
 	void *vaddr = phys_to_virt(start);
@@ -196,13 +231,28 @@ static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
 		mem->slots[i].orig_addr = INVALID_PHYS_ADDR;
 		mem->slots[i].alloc_size = 0;
 	}
+
+	/*
+	 * With swiotlb_unencrypted_base setting, swiotlb bounce buffer will
+	 * be remapped in the swiotlb_update_mem_attributes() and return here
+	 * directly.
+	 */
+	if (swiotlb_unencrypted_base)
+		return 0;
+
+	if (set_memory_decrypted((unsigned long)vaddr, bytes >> PAGE_SHIFT))
+		return -EFAULT;
+
 	memset(vaddr, 0, bytes);
+	mem->vaddr = vaddr;
+	return 0;
 }
 
 int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose)
 {
 	struct io_tlb_mem *mem = &io_tlb_default_mem;
 	size_t alloc_size;
+	int ret;
 
 	if (swiotlb_force == SWIOTLB_NO_FORCE)
 		return 0;
@@ -217,7 +267,11 @@ int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose)
 		panic("%s: Failed to allocate %zu bytes align=0x%lx\n",
 		      __func__, alloc_size, PAGE_SIZE);
 
-	swiotlb_init_io_tlb_mem(mem, __pa(tlb), nslabs, false);
+	ret = swiotlb_init_io_tlb_mem(mem, __pa(tlb), nslabs, false);
+	if (ret) {
+		memblock_free(mem->slots, alloc_size);
+		return ret;
+	}
 
 	if (verbose)
 		swiotlb_print_info();
@@ -304,7 +358,9 @@ int
 swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs)
 {
 	struct io_tlb_mem *mem = &io_tlb_default_mem;
-	unsigned long bytes = nslabs << IO_TLB_SHIFT;
+	unsigned long order
+		= get_order(array_size(sizeof(*mem->slots), nslabs));
+	int ret;
 
 	if (swiotlb_force == SWIOTLB_NO_FORCE)
 		return 0;
@@ -314,12 +370,15 @@ swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs)
 		return -ENOMEM;
 
 	mem->slots = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
-		get_order(array_size(sizeof(*mem->slots), nslabs)));
+		order);
 	if (!mem->slots)
 		return -ENOMEM;
 
-	set_memory_decrypted((unsigned long)tlb, bytes >> PAGE_SHIFT);
-	swiotlb_init_io_tlb_mem(mem, virt_to_phys(tlb), nslabs, true);
+	ret = swiotlb_init_io_tlb_mem(mem, virt_to_phys(tlb), nslabs, true);
+	if (ret) {
+		free_pages((unsigned long)mem->slots, order);
+		return ret;
+	}
 
 	swiotlb_print_info();
 	swiotlb_set_max_segment(mem->nslabs << IO_TLB_SHIFT);
@@ -371,7 +430,7 @@ static void swiotlb_bounce(struct device *dev, phys_addr_t tlb_addr, size_t size
 	phys_addr_t orig_addr = mem->slots[index].orig_addr;
 	size_t alloc_size = mem->slots[index].alloc_size;
 	unsigned long pfn = PFN_DOWN(orig_addr);
-	unsigned char *vaddr = phys_to_virt(tlb_addr);
+	unsigned char *vaddr = mem->vaddr + tlb_addr - mem->start;
 	unsigned int tlb_offset, orig_addr_offset;
 
 	if (orig_addr == INVALID_PHYS_ADDR)
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:39:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226387.391202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0YX-0007dt-BT; Tue, 16 Nov 2021 15:39:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226387.391202; Tue, 16 Nov 2021 15:39:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0YX-0007dm-8P; Tue, 16 Nov 2021 15:39:33 +0000
Received: by outflank-mailman (input) for mailman id 226387;
 Tue, 16 Nov 2021 15:39:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6+K+=QD=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mn0YV-0007dc-TC
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:39:31 +0000
Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com
 [2607:f8b0:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 635d73c5-46f3-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 16:39:31 +0100 (CET)
Received: by mail-pg1-x536.google.com with SMTP id g28so17942514pgg.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Nov 2021 07:39:30 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:3:57e4:b776:c854:76dd])
 by smtp.gmail.com with ESMTPSA id x64sm1981948pfd.151.2021.11.16.07.39.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Nov 2021 07:39:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 635d73c5-46f3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=Ytk8p6TdYJp6Y0bV41yrFTfo+pk8rHAune+7pZw0P98=;
        b=BXz0KFtLleSQa3skiYw7QDE1dXPqvkgmZsVeu4fLM5Yo+p5BS9ZqK8GmlqMk8KB2Jd
         MbFA1Sdyl8HeuFhTjRLnnl3I6jVDF41fuFlW3H6A+W4gc2Uds+KPsc9KT7JcuhVGbq/t
         XAcYRH7ZrHrS/7eajwuW1ku+LBiQ4Qc+oXHnk0LQfeobjP2mtKBjazQ5Ojyz1ZP9PGUs
         KqRxaCIQx43OP4enShtmT5F7s37Tk9u+0bvcviYRxBqU7AdqBL5xPuBzLRr/J69QC52x
         9+z78bSAAsg3A9UtUTA6eQyj+jhqQGR/7QgyARigUS1/lv1vKxm9S0dnSLpOzn5YgjJU
         DsLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=Ytk8p6TdYJp6Y0bV41yrFTfo+pk8rHAune+7pZw0P98=;
        b=vXaRjpbsCUPI21Lt95vZ2+xNjflzj/r3KtMOhii5/pdvKSWpRKRJuLFVm78yiCQbcn
         ZkG+taXf/ArQAnUJRXPKNG0dbxtqU6Brmx5SPR+rRU1llt0gYu5oVHXoq5/wbk7oTjE+
         28+P5oPl4KtXyHLzAyzOIlMwhy9stO6DfJsVDNlg5qkrMmeO+PGE9RbLdq06yJA3GnYx
         mEolwUwIdZ5FVPW5U0V+G3vEPFNqdvDcSseK26vgAlbXAFyFqbA0okRju2CM7+SdAM0Z
         KTMtyJro2Kz1tBOTsuR6ZFbhwu2fKCAcRfsvEjE0AdNjLnDCQas3uwKcaDy4jnu0Taox
         kp4w==
X-Gm-Message-State: AOAM532ga2zwxFx9cevcoQbIuQ/TzZxUqVu1Wpt/lf6ji/DF39n6767A
	kC/cZaeFMhNIF3bYmuMmNTM=
X-Google-Smtp-Source: ABdhPJwz59YenP80sWYPo5tTasO7qod/XFwabISMwdQ71s0CE7pvGan1FvjN3qeawYe/WCw9pDZXgA==
X-Received: by 2002:a62:5215:0:b0:49f:a996:b724 with SMTP id g21-20020a625215000000b0049fa996b724mr40917927pfb.3.1637077166648;
        Tue, 16 Nov 2021 07:39:26 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: dave.hansen@linux.intel.com,
	luto@kernel.org,
	peterz@infradead.org,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	x86@kernel.org,
	hpa@zytor.com,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	thomas.lendacky@amd.com,
	dave.hansen@intel.com
Subject: [PATCH 0/5] x86/Hyper-V: Add Hyper-V Isolation VM support(Second part)
Date: Tue, 16 Nov 2021 10:39:18 -0500
Message-Id: <20211116153923.196763-1-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

Hyper-V provides two kinds of Isolation VMs. VBS(Virtualization-based
security) and AMD SEV-SNP unenlightened Isolation VMs. This patchset
is to add support for these Isolation VM support in Linux.

The memory of these vms are encrypted and host can't access guest
memory directly. Hyper-V provides new host visibility hvcall and
the guest needs to call new hvcall to mark memory visible to host
before sharing memory with host. For security, all network/storage
stack memory should not be shared with host and so there is bounce
buffer requests.

Vmbus channel ring buffer already plays bounce buffer role because
all data from/to host needs to copy from/to between the ring buffer
and IO stack memory. So mark vmbus channel ring buffer visible.

For SNP isolation VM, guest needs to access the shared memory via
extra address space which is specified by Hyper-V CPUID HYPERV_CPUID_
ISOLATION_CONFIG. The access physical address of the shared memory
should be bounce buffer memory GPA plus with shared_gpa_boundary
reported by CPUID.

This patchset is to enable swiotlb bounce buffer for netvsc/storvsc
in Isolation VM. Add Hyper-V dma ops and provide dma_alloc/free_
noncontiguous and vmap/vunmap_noncontiguous callback. Allocate
rx/tx ring via dma_alloc_noncontiguous() and map them into extra
address space via dma_vmap_noncontiguous().

Tianyu Lan (5):
  x86/Swiotlb: Add Swiotlb bounce buffer remap function for HV IVM
  dma-mapping: Add vmap/vunmap_noncontiguous() callback in dma ops
  hyperv/IOMMU: Enable swiotlb bounce buffer for Isolation VM
  net: netvsc: Add Isolation VM support for netvsc driver
  scsi: storvsc: Add Isolation VM support for storvsc driver

 arch/x86/mm/mem_encrypt.c         |   4 +-
 arch/x86/xen/pci-swiotlb-xen.c    |   3 +-
 drivers/hv/Kconfig                |   1 +
 drivers/hv/vmbus_drv.c            |   6 +
 drivers/iommu/hyperv-iommu.c      | 164 +++++++++++++++++++++++++
 drivers/net/hyperv/hyperv_net.h   |   5 +
 drivers/net/hyperv/netvsc.c       | 192 +++++++++++++++++++++++++++---
 drivers/net/hyperv/rndis_filter.c |   2 +
 drivers/scsi/storvsc_drv.c        |  37 +++---
 include/linux/dma-map-ops.h       |   3 +
 include/linux/hyperv.h            |  17 +++
 include/linux/swiotlb.h           |   6 +
 kernel/dma/mapping.c              |  18 ++-
 kernel/dma/swiotlb.c              |  75 ++++++++++--
 14 files changed, 488 insertions(+), 45 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:39:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226389.391217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yd-0007zP-W2; Tue, 16 Nov 2021 15:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226389.391217; Tue, 16 Nov 2021 15:39:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yd-0007yd-Pe; Tue, 16 Nov 2021 15:39:39 +0000
Received: by outflank-mailman (input) for mailman id 226389;
 Tue, 16 Nov 2021 15:39:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6+K+=QD=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mn0Yc-0007dc-SQ
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:39:38 +0000
Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com
 [2607:f8b0:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 676e5c1d-46f3-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 16:39:38 +0100 (CET)
Received: by mail-pf1-x42d.google.com with SMTP id x131so18519824pfc.12
 for <xen-devel@lists.xenproject.org>; Tue, 16 Nov 2021 07:39:38 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:3:57e4:b776:c854:76dd])
 by smtp.gmail.com with ESMTPSA id x64sm1981948pfd.151.2021.11.16.07.39.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Nov 2021 07:39:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 676e5c1d-46f3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=QpP/dVmOy5UI+0bbwin5PnSriAWO01VAYDyEmLKe5Fk=;
        b=SXiaG54grF6wqI5IHlO5fiT6D7ch6iSGwaSfj5F99m+GDLZKF1xq7PpdqZEGQJ2hss
         Mb2HUUEo0PbfBMirBDv6g4oprtzEt8f1KyqLwPFPHMe2qW5PRdHVfXPbxYa6dQcdLZ0U
         ih6mD3K1UTLAsmNZoFe2aO5HLz3zUaoC7GZhMz7o/9lEWJCSZfN2h2eZv1+d/CFeR7kG
         VCd4AjKJvzx8+FYzrSsfSrwbytPrb+YrlivIqNsckIs/ARb8aGx366blyrHUFlVj3W6J
         DNqULX9ETBqHxrFFpaBrQrQujnGUK1fF5SlWwlmILpygaE6keMWPQcnYgsnTLFjuQtfA
         3OYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=QpP/dVmOy5UI+0bbwin5PnSriAWO01VAYDyEmLKe5Fk=;
        b=JGGSpi++rRSLT2WEx8k7TvtVQGMK3YuN0phl9O/3paMjofMn8gQkEC8fr274xbknze
         cfpjvJpDYnb37RfVmv3ahJf+2dMCtIuSCWFSZLAoSNPVyYh/o8OfB5j/KieveG3EnO9C
         LFQTObRR57N8YOJgYZX9ch6VHdydV1hQDqkVPFnhKRrRTQhCbBkRBsqcq1q5e5u5gz+g
         qFRq6A/xyvcVGqIJ3RD7zJ/Kle8iy7fm51hiChxemt7MKADRdxMhgECnEFJPWGZ4rxj/
         u4CmRuomhrCKutnRx1KpOAT50ujIton+nQE+mUpE70CpWP+LHhQkueYC8Vt5lmA6miFc
         C3Ug==
X-Gm-Message-State: AOAM5334Rtg5rg3y79e5Q6t/kgCCf5vXoGA/MGg+jAITfTUgjJDfoQsp
	ZNYSmTHQnp+A5sCqO+ahzZM=
X-Google-Smtp-Source: ABdhPJylKbp6Y35YNN+QuL8Z6jQM03hSsaNsmPApoiu7+PqjtqafYcV6ZofENONej65wNPzRZ+fN4Q==
X-Received: by 2002:a63:1b5e:: with SMTP id b30mr5271860pgm.72.1637077176375;
        Tue, 16 Nov 2021 07:39:36 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: dave.hansen@linux.intel.com,
	luto@kernel.org,
	peterz@infradead.org,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	x86@kernel.org,
	hpa@zytor.com,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	thomas.lendacky@amd.com,
	dave.hansen@intel.com
Subject: [PATCH 2/5] dma-mapping: Add vmap/vunmap_noncontiguous() callback in dma ops
Date: Tue, 16 Nov 2021 10:39:20 -0500
Message-Id: <20211116153923.196763-3-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116153923.196763-1-ltykernel@gmail.com>
References: <20211116153923.196763-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

Hyper-V netvsc driver needs to allocate noncontiguous DMA memory and
remap it into unencrypted address space before sharing with host. Add
vmap/vunmap_noncontiguous() callback and handle the remap in the Hyper-V
dma ops callback.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
 include/linux/dma-map-ops.h |  3 +++
 kernel/dma/mapping.c        | 18 ++++++++++++++----
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h
index 0d5b06b3a4a6..f7b9958ca20a 100644
--- a/include/linux/dma-map-ops.h
+++ b/include/linux/dma-map-ops.h
@@ -27,6 +27,9 @@ struct dma_map_ops {
 			unsigned long attrs);
 	void (*free_noncontiguous)(struct device *dev, size_t size,
 			struct sg_table *sgt, enum dma_data_direction dir);
+	void *(*vmap_noncontiguous)(struct device *dev, size_t size,
+			struct sg_table *sgt);
+	void (*vunmap_noncontiguous)(struct device *dev, void *addr);
 	int (*mmap)(struct device *, struct vm_area_struct *,
 			void *, dma_addr_t, size_t, unsigned long attrs);
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 9478eccd1c8e..7fd751d866cc 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -674,8 +674,14 @@ void *dma_vmap_noncontiguous(struct device *dev, size_t size,
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 	unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT;
 
-	if (ops && ops->alloc_noncontiguous)
-		return vmap(sgt_handle(sgt)->pages, count, VM_MAP, PAGE_KERNEL);
+	if (ops) {
+		if (ops->vmap_noncontiguous)
+			return ops->vmap_noncontiguous(dev, size, sgt);
+		else if (ops->alloc_noncontiguous)
+			return vmap(sgt_handle(sgt)->pages, count, VM_MAP,
+				    PAGE_KERNEL);
+	}
+
 	return page_address(sg_page(sgt->sgl));
 }
 EXPORT_SYMBOL_GPL(dma_vmap_noncontiguous);
@@ -684,8 +690,12 @@ void dma_vunmap_noncontiguous(struct device *dev, void *vaddr)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 
-	if (ops && ops->alloc_noncontiguous)
-		vunmap(vaddr);
+	if (ops) {
+		if (ops->vunmap_noncontiguous)
+			ops->vunmap_noncontiguous(dev, vaddr);
+		else if (ops->alloc_noncontiguous)
+			vunmap(vaddr);
+	}
 }
 EXPORT_SYMBOL_GPL(dma_vunmap_noncontiguous);
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:39:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:39:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226390.391235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yg-0008VS-9q; Tue, 16 Nov 2021 15:39:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226390.391235; Tue, 16 Nov 2021 15:39:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yg-0008VJ-55; Tue, 16 Nov 2021 15:39:42 +0000
Received: by outflank-mailman (input) for mailman id 226390;
 Tue, 16 Nov 2021 15:39:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6+K+=QD=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mn0Yd-0007dc-VF
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:39:40 +0000
Received: from mail-pg1-x52b.google.com (mail-pg1-x52b.google.com
 [2607:f8b0:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 682b8623-46f3-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 16:39:39 +0100 (CET)
Received: by mail-pg1-x52b.google.com with SMTP id b4so17894910pgh.10
 for <xen-devel@lists.xenproject.org>; Tue, 16 Nov 2021 07:39:38 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:3:57e4:b776:c854:76dd])
 by smtp.gmail.com with ESMTPSA id x64sm1981948pfd.151.2021.11.16.07.39.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Nov 2021 07:39:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 682b8623-46f3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=ht3NQOgxncP0Oa0yNZHTT5btJ7uSLFQ5e6/spjx5NSo=;
        b=gnxNHsZedn0697qoh2BbD33n4kcoGlRSSjJ/utuyIr1VQeD6GchXGKKiovr1Pb54J7
         NpYqD/2E5E0yQMGz5DEQ/Wc98jY1btmnk3LG/x8biuyBVydpRaomgersnRD0ritCeUF9
         7ezPDMJa3f++VPSSoKIEISc/kmZkdOyfmkGV7VDlDQfzUD1NJNYeREjTQ5YYURgXwC2e
         Y98j/UaG9qsq32RgHHp72YmbM6uJ2ky1RvJUl690/XU79HyyY5eEUIYV3QvuZUKxA5Mc
         DEqhkQji0dw7XXK9cb99H7sLBAix0V/AjbAqPIKENWOnu5+WNAawwgLEZ2570oYsmTuT
         vLfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=ht3NQOgxncP0Oa0yNZHTT5btJ7uSLFQ5e6/spjx5NSo=;
        b=xEh9+SoxzKQhrqrDVwD0AFaqotzKM9kKjTrt8B/ajp6QFNBnev/HhwiOdGMx1Iy0mg
         xdKUMY2tNQ8XsG0cpQIk1BbJXdGScsCabFcpVbVBYdxlvXNSNxMIzR4ftzusWFl+w9q0
         RB2md7E108c2x+11P6tiSIqBYuaLsx9rgljntHnTOd4sK1OYmA8ufwJ1SrbKCKUgKPXj
         Tn+ZIEyaBUzxZja8tfSs9GbY9H/y0UI1MahBZt5jZ2ZnRT+4yVcMLUkNw23xxl/C0cSN
         Qbpnlxnpj8ZNj3DbVl/JDEQ8yEkozDrI+W+OIpqkBq5ZuQqlsWlCpobmpvF7VGeFP9zZ
         KgtQ==
X-Gm-Message-State: AOAM530jKqgrA3bv17eBaeSqv4WIGbAWyMTfFq6YkopxBhFcnvUmLm01
	MCk8pYA9HcC0BW6haCRW3pU=
X-Google-Smtp-Source: ABdhPJzZFI30kugVmXkU5ZMdeMQnHJrNlpoER8gsQWnWT3Y1fR88Y1WfdomZUQcNVPh/3IjN1laC0g==
X-Received: by 2002:aa7:98dd:0:b0:49f:bab8:3b67 with SMTP id e29-20020aa798dd000000b0049fbab83b67mr31562pfm.86.1637077177447;
        Tue, 16 Nov 2021 07:39:37 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: dave.hansen@linux.intel.com,
	luto@kernel.org,
	peterz@infradead.org,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	x86@kernel.org,
	hpa@zytor.com,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	thomas.lendacky@amd.com,
	dave.hansen@intel.com
Subject: [PATCH 3/5] hyperv/IOMMU: Enable swiotlb bounce buffer for Isolation VM
Date: Tue, 16 Nov 2021 10:39:21 -0500
Message-Id: <20211116153923.196763-4-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116153923.196763-1-ltykernel@gmail.com>
References: <20211116153923.196763-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

hyperv Isolation VM requires bounce buffer support to copy
data from/to encrypted memory and so enable swiotlb force
mode to use swiotlb bounce buffer for DMA transaction.

In Isolation VM with AMD SEV, the bounce buffer needs to be
accessed via extra address space which is above shared_gpa_boundary
(E.G 39 bit address line) reported by Hyper-V CPUID ISOLATION_CONFIG.
The access physical address will be original physical address +
shared_gpa_boundary. The shared_gpa_boundary in the AMD SEV SNP
spec is called virtual top of memory(vTOM). Memory addresses below
vTOM are automatically treated as private while memory above
vTOM is treated as shared.

Hyper-V initalizes swiotlb bounce buffer and default swiotlb
needs to be disabled. pci_swiotlb_detect_override() and
pci_swiotlb_detect_4gb() enable the default one. To override
the setting, hyperv_swiotlb_detect() needs to run before
these detect functions which depends on the pci_xen_swiotlb_
init(). Make pci_xen_swiotlb_init() depends on the hyperv_swiotlb
_detect() to keep the order.

Swiotlb bounce buffer code calls set_memory_decrypted()
to mark bounce buffer visible to host and map it in extra
address space via memremap. Populate the shared_gpa_boundary
(vTOM) via swiotlb_unencrypted_base variable.

The map function memremap() can't work in the early place
hyperv_iommu_swiotlb_init() and so call swiotlb_update_mem_attributes()
in the hyperv_iommu_swiotlb_later_init().

Add Hyper-V dma ops and provide alloc/free and vmap/vunmap noncontiguous
callback to handle request of  allocating and mapping noncontiguous dma
memory in vmbus device driver. Netvsc driver will use this. Set dma_ops_
bypass flag for hv device to use dma direct functions during mapping/unmapping
dma page.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
 arch/x86/mm/mem_encrypt.c      |   4 +-
 arch/x86/xen/pci-swiotlb-xen.c |   3 +-
 drivers/hv/Kconfig             |   1 +
 drivers/hv/vmbus_drv.c         |   6 ++
 drivers/iommu/hyperv-iommu.c   | 164 +++++++++++++++++++++++++++++++++
 include/linux/hyperv.h         |  10 ++
 6 files changed, 186 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
index 35487305d8af..65bc385ae07a 100644
--- a/arch/x86/mm/mem_encrypt.c
+++ b/arch/x86/mm/mem_encrypt.c
@@ -31,6 +31,7 @@
 #include <asm/processor-flags.h>
 #include <asm/msr.h>
 #include <asm/cmdline.h>
+#include <asm/mshyperv.h>
 
 #include "mm_internal.h"
 
@@ -203,7 +204,8 @@ void __init sev_setup_arch(void)
 	phys_addr_t total_mem = memblock_phys_mem_size();
 	unsigned long size;
 
-	if (!cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT))
+	if (!cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT)
+	    && !hv_is_isolation_supported())
 		return;
 
 	/*
diff --git a/arch/x86/xen/pci-swiotlb-xen.c b/arch/x86/xen/pci-swiotlb-xen.c
index 46df59aeaa06..30fd0600b008 100644
--- a/arch/x86/xen/pci-swiotlb-xen.c
+++ b/arch/x86/xen/pci-swiotlb-xen.c
@@ -4,6 +4,7 @@
 
 #include <linux/dma-map-ops.h>
 #include <linux/pci.h>
+#include <linux/hyperv.h>
 #include <xen/swiotlb-xen.h>
 
 #include <asm/xen/hypervisor.h>
@@ -91,6 +92,6 @@ int pci_xen_swiotlb_init_late(void)
 EXPORT_SYMBOL_GPL(pci_xen_swiotlb_init_late);
 
 IOMMU_INIT_FINISH(pci_xen_swiotlb_detect,
-		  NULL,
+		  hyperv_swiotlb_detect,
 		  pci_xen_swiotlb_init,
 		  NULL);
diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
index dd12af20e467..d43b4cd88f57 100644
--- a/drivers/hv/Kconfig
+++ b/drivers/hv/Kconfig
@@ -9,6 +9,7 @@ config HYPERV
 	select PARAVIRT
 	select X86_HV_CALLBACK_VECTOR if X86
 	select VMAP_PFN
+	select DMA_OPS_BYPASS
 	help
 	  Select this option to run Linux as a Hyper-V client operating
 	  system.
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 392c1ac4f819..32dc193e31cd 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -33,6 +33,7 @@
 #include <linux/random.h>
 #include <linux/kernel.h>
 #include <linux/syscore_ops.h>
+#include <linux/dma-map-ops.h>
 #include <clocksource/hyperv_timer.h>
 #include "hyperv_vmbus.h"
 
@@ -2078,6 +2079,7 @@ struct hv_device *vmbus_device_create(const guid_t *type,
 	return child_device_obj;
 }
 
+static u64 vmbus_dma_mask = DMA_BIT_MASK(64);
 /*
  * vmbus_device_register - Register the child device
  */
@@ -2118,6 +2120,10 @@ int vmbus_device_register(struct hv_device *child_device_obj)
 	}
 	hv_debug_add_dev_dir(child_device_obj);
 
+	child_device_obj->device.dma_ops_bypass = true;
+	child_device_obj->device.dma_ops = &hyperv_iommu_dma_ops;
+	child_device_obj->device.dma_mask = &vmbus_dma_mask;
+	child_device_obj->device.dma_parms = &child_device_obj->dma_parms;
 	return 0;
 
 err_kset_unregister:
diff --git a/drivers/iommu/hyperv-iommu.c b/drivers/iommu/hyperv-iommu.c
index e285a220c913..ebcb628e7e8f 100644
--- a/drivers/iommu/hyperv-iommu.c
+++ b/drivers/iommu/hyperv-iommu.c
@@ -13,14 +13,21 @@
 #include <linux/irq.h>
 #include <linux/iommu.h>
 #include <linux/module.h>
+#include <linux/hyperv.h>
+#include <linux/io.h>
 
 #include <asm/apic.h>
 #include <asm/cpu.h>
 #include <asm/hw_irq.h>
 #include <asm/io_apic.h>
+#include <asm/iommu.h>
+#include <asm/iommu_table.h>
 #include <asm/irq_remapping.h>
 #include <asm/hypervisor.h>
 #include <asm/mshyperv.h>
+#include <asm/swiotlb.h>
+#include <linux/dma-map-ops.h>
+#include <linux/dma-direct.h>
 
 #include "irq_remapping.h"
 
@@ -337,4 +344,161 @@ static const struct irq_domain_ops hyperv_root_ir_domain_ops = {
 	.free = hyperv_root_irq_remapping_free,
 };
 
+static void __init hyperv_iommu_swiotlb_init(void)
+{
+	unsigned long hyperv_io_tlb_size;
+	void *hyperv_io_tlb_start;
+
+	/*
+	 * Allocate Hyper-V swiotlb bounce buffer at early place
+	 * to reserve large contiguous memory.
+	 */
+	hyperv_io_tlb_size = swiotlb_size_or_default();
+	hyperv_io_tlb_start = memblock_alloc(hyperv_io_tlb_size, PAGE_SIZE);
+
+	if (!hyperv_io_tlb_start)
+		pr_warn("Fail to allocate Hyper-V swiotlb buffer.\n");
+
+	swiotlb_init_with_tbl(hyperv_io_tlb_start,
+			      hyperv_io_tlb_size >> IO_TLB_SHIFT, true);
+}
+
+int __init hyperv_swiotlb_detect(void)
+{
+	if (!hypervisor_is_type(X86_HYPER_MS_HYPERV))
+		return 0;
+
+	if (!hv_is_isolation_supported())
+		return 0;
+
+	/*
+	 * Enable swiotlb force mode in Isolation VM to
+	 * use swiotlb bounce buffer for dma transaction.
+	 */
+	if (hv_isolation_type_snp())
+		swiotlb_unencrypted_base = ms_hyperv.shared_gpa_boundary;
+	swiotlb_force = SWIOTLB_FORCE;
+	return 1;
+}
+
+static void __init hyperv_iommu_swiotlb_later_init(void)
+{
+	/*
+	 * Swiotlb bounce buffer needs to be mapped in extra address
+	 * space. Map function doesn't work in the early place and so
+	 * call swiotlb_update_mem_attributes() here.
+	 */
+	swiotlb_update_mem_attributes();
+}
+
+IOMMU_INIT_FINISH(hyperv_swiotlb_detect,
+		  NULL, hyperv_iommu_swiotlb_init,
+		  hyperv_iommu_swiotlb_later_init);
+
+static struct sg_table *hyperv_dma_alloc_noncontiguous(struct device *dev,
+		size_t size, enum dma_data_direction dir, gfp_t gfp,
+		unsigned long attrs)
+{
+	struct dma_sgt_handle *sh;
+	struct page **pages;
+	int num_pages = size >> PAGE_SHIFT;
+	void *vaddr, *ptr;
+	int rc, i;
+
+	if (!hv_isolation_type_snp())
+		return NULL;
+
+	sh = kmalloc(sizeof(*sh), gfp);
+	if (!sh)
+		return NULL;
+
+	vaddr = vmalloc(size);
+	if (!vaddr)
+		goto free_sgt;
+
+	pages = kvmalloc_array(num_pages, sizeof(struct page *),
+				    GFP_KERNEL | __GFP_ZERO);
+	if (!pages)
+		goto free_mem;
+
+	for (i = 0, ptr = vaddr; i < num_pages; ++i, ptr += PAGE_SIZE)
+		pages[i] = vmalloc_to_page(ptr);
+
+	rc = sg_alloc_table_from_pages(&sh->sgt, pages, num_pages, 0, size, GFP_KERNEL);
+	if (rc)
+		goto free_pages;
+
+	sh->sgt.sgl->dma_address = (dma_addr_t)vaddr;
+	sh->sgt.sgl->dma_length = size;
+	sh->pages = pages;
+
+	return &sh->sgt;
+
+free_pages:
+	kvfree(pages);
+free_mem:
+	vfree(vaddr);
+free_sgt:
+	kfree(sh);
+	return NULL;
+}
+
+static void hyperv_dma_free_noncontiguous(struct device *dev, size_t size,
+		struct sg_table *sgt, enum dma_data_direction dir)
+{
+	struct dma_sgt_handle *sh = sgt_handle(sgt);
+
+	if (!hv_isolation_type_snp())
+		return;
+
+	vfree((void *)sh->sgt.sgl->dma_address);
+	sg_free_table(&sh->sgt);
+	kvfree(sh->pages);
+	kfree(sh);
+}
+
+static void *hyperv_dma_vmap_noncontiguous(struct device *dev, size_t size,
+			struct sg_table *sgt)
+{
+	int pg_count = size >> PAGE_SHIFT;
+	unsigned long *pfns;
+	struct page **pages = sgt_handle(sgt)->pages;
+	void *vaddr = NULL;
+	int i;
+
+	if (!hv_isolation_type_snp())
+		return NULL;
+
+	if (!pages)
+		return NULL;
+
+	pfns = kcalloc(pg_count, sizeof(*pfns), GFP_KERNEL);
+	if (!pfns)
+		return NULL;
+
+	for (i = 0; i < pg_count; i++)
+		pfns[i] = page_to_pfn(pages[i]) +
+			(ms_hyperv.shared_gpa_boundary >> PAGE_SHIFT);
+
+	vaddr = vmap_pfn(pfns, pg_count, PAGE_KERNEL);
+	kfree(pfns);
+	return vaddr;
+
+}
+
+static void hyperv_dma_vunmap_noncontiguous(struct device *dev, void *addr)
+{
+	if (!hv_isolation_type_snp())
+		return;
+	vunmap(addr);
+}
+
+const struct dma_map_ops hyperv_iommu_dma_ops = {
+		.alloc_noncontiguous = hyperv_dma_alloc_noncontiguous,
+		.free_noncontiguous = hyperv_dma_free_noncontiguous,
+		.vmap_noncontiguous = hyperv_dma_vmap_noncontiguous,
+		.vunmap_noncontiguous = hyperv_dma_vunmap_noncontiguous,
+};
+EXPORT_SYMBOL_GPL(hyperv_iommu_dma_ops);
+
 #endif
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index b823311eac79..4d44fb3b3f1c 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -1726,6 +1726,16 @@ int hyperv_write_cfg_blk(struct pci_dev *dev, void *buf, unsigned int len,
 int hyperv_reg_block_invalidate(struct pci_dev *dev, void *context,
 				void (*block_invalidate)(void *context,
 							 u64 block_mask));
+#ifdef CONFIG_HYPERV
+int __init hyperv_swiotlb_detect(void);
+#else
+static inline int __init hyperv_swiotlb_detect(void)
+{
+	return 0;
+}
+#endif
+
+extern const struct dma_map_ops hyperv_iommu_dma_ops;
 
 struct hyperv_pci_block_ops {
 	int (*read_block)(struct pci_dev *dev, void *buf, unsigned int buf_len,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:39:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:39:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226391.391240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yg-0000BG-TH; Tue, 16 Nov 2021 15:39:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226391.391240; Tue, 16 Nov 2021 15:39:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yg-00009a-NS; Tue, 16 Nov 2021 15:39:42 +0000
Received: by outflank-mailman (input) for mailman id 226391;
 Tue, 16 Nov 2021 15:39:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6+K+=QD=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mn0Yf-0007dc-Bh
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:39:41 +0000
Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com
 [2607:f8b0:4864:20::102c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 68ea8084-46f3-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 16:39:40 +0100 (CET)
Received: by mail-pj1-x102c.google.com with SMTP id
 n15-20020a17090a160f00b001a75089daa3so2590607pja.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Nov 2021 07:39:40 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:3:57e4:b776:c854:76dd])
 by smtp.gmail.com with ESMTPSA id x64sm1981948pfd.151.2021.11.16.07.39.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Nov 2021 07:39:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 68ea8084-46f3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=JY7pElcL7BP9H4psSINWD9PF2/JWAEjs+L3UP6LQB6Q=;
        b=X5jEIEh0nBMNIVa+E56UAIT0Y6syTwfpUav9bEEARradq307nzQYexfIDfZLd+Apvu
         imiWZOxs8RxTLZR/6zFD+rWYiSpa2xUUKcc2poDDadZCwefV92sMUOyDBWVpYLT+qWmx
         ND4h43brV1jZBce9wabu7GdGYGb1qzwMHyK1Y6hdkSnIRvq+fiovugAjHAayJMTk9MoY
         qY260friOuGqQ18vWarOu+os+lAKNDZbwmsqfSGiefhC4azrSMXNUrMbDaCNif792DYg
         RyBgtYNyuii/23JH8mPU2LLSXT1uYtI5uXsjUVvBMeqYuP3hVvMLMeyXf5XL1gUviDca
         Vlig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=JY7pElcL7BP9H4psSINWD9PF2/JWAEjs+L3UP6LQB6Q=;
        b=Wawmf1CXIXZ7J8A/jTwZ8SSxMyU5dqmOVJLO+sUzB3Z4ANgHjdb5IIjGrPtqOR+KYH
         CtJ29nlfJArHKsw7r3peyaUJC14JAqeRfYJvOo8OVNOrEoAfd52LgJGMXOSwl9XtFuRY
         azaYEL2gFGJX01PLP/9LJfyk0kbhXSokWD/v7vyMErzghVMWFTftouiqobAkkUbdL9CY
         hQi7Z2bxZLJ2FWsykwftfHt1L4eHpw5qM6G1D2B2wErvbwv1GhL+D9F+iLB7P7nXRHO1
         HUj5SUOZLdIoWPwmYXcUsiloaHEMK8pPzR7W5FrSPaDpy3i4xQVVHoRPSdDZfr0YGUz7
         jqOQ==
X-Gm-Message-State: AOAM531U6fNAPoQRLPTQHPjrZ7I7E1fmWJ6IqUccNOqAVhXLCVSR85Hc
	uI8+vousoAWkZa/IGC1hNl8=
X-Google-Smtp-Source: ABdhPJyrnTBpH6wm07HxI5D96I6vFFntDeVQDHLjseeuLAvO0SAM7oG/CailxbS1yK2b9roxkvzjHw==
X-Received: by 2002:a17:90b:380a:: with SMTP id mq10mr53365pjb.61.1637077178648;
        Tue, 16 Nov 2021 07:39:38 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: dave.hansen@linux.intel.com,
	luto@kernel.org,
	peterz@infradead.org,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	x86@kernel.org,
	hpa@zytor.com,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	thomas.lendacky@amd.com,
	dave.hansen@intel.com
Subject: [PATCH 4/5] net: netvsc: Add Isolation VM support for netvsc driver
Date: Tue, 16 Nov 2021 10:39:22 -0500
Message-Id: <20211116153923.196763-5-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116153923.196763-1-ltykernel@gmail.com>
References: <20211116153923.196763-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

In Isolation VM, all shared memory with host needs to mark visible
to host via hvcall. vmbus_establish_gpadl() has already done it for
netvsc rx/tx ring buffer. The page buffer used by vmbus_sendpacket_
pagebuffer() stills need to be handled. Use DMA API to map/umap
these memory during sending/receiving packet and Hyper-V swiotlb
bounce buffer dma address will be returned. The swiotlb bounce buffer
has been masked to be visible to host during boot up.

Allocate rx/tx ring buffer via dma_alloc_noncontiguous() in Isolation
VM. After calling vmbus_establish_gpadl() which marks these pages visible
to host, map these pages unencrypted addes space via dma_vmap_noncontiguous().

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
 drivers/net/hyperv/hyperv_net.h   |   5 +
 drivers/net/hyperv/netvsc.c       | 192 +++++++++++++++++++++++++++---
 drivers/net/hyperv/rndis_filter.c |   2 +
 include/linux/hyperv.h            |   6 +
 4 files changed, 190 insertions(+), 15 deletions(-)

diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
index 315278a7cf88..31c77a00d01e 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -164,6 +164,7 @@ struct hv_netvsc_packet {
 	u32 total_bytes;
 	u32 send_buf_index;
 	u32 total_data_buflen;
+	struct hv_dma_range *dma_range;
 };
 
 #define NETVSC_HASH_KEYLEN 40
@@ -1074,6 +1075,7 @@ struct netvsc_device {
 
 	/* Receive buffer allocated by us but manages by NetVSP */
 	void *recv_buf;
+	struct sg_table *recv_sgt;
 	u32 recv_buf_size; /* allocated bytes */
 	struct vmbus_gpadl recv_buf_gpadl_handle;
 	u32 recv_section_cnt;
@@ -1082,6 +1084,7 @@ struct netvsc_device {
 
 	/* Send buffer allocated by us */
 	void *send_buf;
+	struct sg_table *send_sgt;
 	u32 send_buf_size;
 	struct vmbus_gpadl send_buf_gpadl_handle;
 	u32 send_section_cnt;
@@ -1731,4 +1734,6 @@ struct rndis_message {
 #define RETRY_US_HI	10000
 #define RETRY_MAX	2000	/* >10 sec */
 
+void netvsc_dma_unmap(struct hv_device *hv_dev,
+		      struct hv_netvsc_packet *packet);
 #endif /* _HYPERV_NET_H */
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 396bc1c204e6..9cdc71930830 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -20,6 +20,7 @@
 #include <linux/vmalloc.h>
 #include <linux/rtnetlink.h>
 #include <linux/prefetch.h>
+#include <linux/gfp.h>
 
 #include <asm/sync_bitops.h>
 #include <asm/mshyperv.h>
@@ -146,15 +147,39 @@ static struct netvsc_device *alloc_net_device(void)
 	return net_device;
 }
 
+static struct hv_device *netvsc_channel_to_device(struct vmbus_channel *channel)
+{
+	struct vmbus_channel *primary = channel->primary_channel;
+
+	return primary ? primary->device_obj : channel->device_obj;
+}
+
 static void free_netvsc_device(struct rcu_head *head)
 {
 	struct netvsc_device *nvdev
 		= container_of(head, struct netvsc_device, rcu);
+	struct hv_device *dev =
+		netvsc_channel_to_device(nvdev->chan_table[0].channel);
 	int i;
 
 	kfree(nvdev->extension);
-	vfree(nvdev->recv_buf);
-	vfree(nvdev->send_buf);
+
+	if (nvdev->recv_sgt) {
+		dma_vunmap_noncontiguous(&dev->device, nvdev->recv_buf);
+		dma_free_noncontiguous(&dev->device, nvdev->recv_buf_size,
+				       nvdev->recv_sgt, DMA_FROM_DEVICE);
+	} else {
+		vfree(nvdev->recv_buf);
+	}
+
+	if (nvdev->send_sgt) {
+		dma_vunmap_noncontiguous(&dev->device, nvdev->send_buf);
+		dma_free_noncontiguous(&dev->device, nvdev->send_buf_size,
+				       nvdev->send_sgt, DMA_TO_DEVICE);
+	} else {
+		vfree(nvdev->send_buf);
+	}
+
 	kfree(nvdev->send_section_map);
 
 	for (i = 0; i < VRSS_CHANNEL_MAX; i++) {
@@ -348,7 +373,21 @@ static int netvsc_init_buf(struct hv_device *device,
 		buf_size = min_t(unsigned int, buf_size,
 				 NETVSC_RECEIVE_BUFFER_SIZE_LEGACY);
 
-	net_device->recv_buf = vzalloc(buf_size);
+	if (hv_isolation_type_snp()) {
+		net_device->recv_sgt =
+			dma_alloc_noncontiguous(&device->device, buf_size,
+						DMA_FROM_DEVICE, GFP_KERNEL, 0);
+		if (!net_device->recv_sgt) {
+			pr_err("Fail to allocate recv buffer buf_size %d.\n.", buf_size);
+			ret = -ENOMEM;
+			goto cleanup;
+		}
+
+		net_device->recv_buf = (void *)net_device->recv_sgt->sgl->dma_address;
+	} else {
+		net_device->recv_buf = vzalloc(buf_size);
+	}
+
 	if (!net_device->recv_buf) {
 		netdev_err(ndev,
 			   "unable to allocate receive buffer of size %u\n",
@@ -357,8 +396,6 @@ static int netvsc_init_buf(struct hv_device *device,
 		goto cleanup;
 	}
 
-	net_device->recv_buf_size = buf_size;
-
 	/*
 	 * Establish the gpadl handle for this buffer on this
 	 * channel.  Note: This call uses the vmbus connection rather
@@ -373,6 +410,19 @@ static int netvsc_init_buf(struct hv_device *device,
 		goto cleanup;
 	}
 
+	if (net_device->recv_sgt) {
+		net_device->recv_buf =
+			dma_vmap_noncontiguous(&device->device, buf_size,
+					       net_device->recv_sgt);
+		if (!net_device->recv_buf) {
+			pr_err("Fail to vmap recv buffer.\n");
+			ret = -ENOMEM;
+			goto cleanup;
+		}
+	}
+
+	net_device->recv_buf_size = buf_size;
+
 	/* Notify the NetVsp of the gpadl handle */
 	init_packet = &net_device->channel_init_pkt;
 	memset(init_packet, 0, sizeof(struct nvsp_message));
@@ -454,14 +504,27 @@ static int netvsc_init_buf(struct hv_device *device,
 	buf_size = device_info->send_sections * device_info->send_section_size;
 	buf_size = round_up(buf_size, PAGE_SIZE);
 
-	net_device->send_buf = vzalloc(buf_size);
+	if (hv_isolation_type_snp()) {
+		net_device->send_sgt =
+			dma_alloc_noncontiguous(&device->device, buf_size,
+						DMA_TO_DEVICE, GFP_KERNEL, 0);
+		if (!net_device->send_sgt) {
+			pr_err("Fail to allocate send buffer buf_size %d.\n.", buf_size);
+			ret = -ENOMEM;
+			goto cleanup;
+		}
+
+		net_device->send_buf = (void *)net_device->send_sgt->sgl->dma_address;
+	} else {
+		net_device->send_buf = vzalloc(buf_size);
+	}
+
 	if (!net_device->send_buf) {
 		netdev_err(ndev, "unable to allocate send buffer of size %u\n",
 			   buf_size);
 		ret = -ENOMEM;
 		goto cleanup;
 	}
-	net_device->send_buf_size = buf_size;
 
 	/* Establish the gpadl handle for this buffer on this
 	 * channel.  Note: This call uses the vmbus connection rather
@@ -476,6 +539,19 @@ static int netvsc_init_buf(struct hv_device *device,
 		goto cleanup;
 	}
 
+	if (net_device->send_sgt) {
+		net_device->send_buf =
+			dma_vmap_noncontiguous(&device->device, buf_size,
+					       net_device->send_sgt);
+		if (!net_device->send_buf) {
+			pr_err("Fail to vmap send buffer.\n");
+			ret = -ENOMEM;
+			goto cleanup;
+		}
+	}
+
+	net_device->send_buf_size = buf_size;
+
 	/* Notify the NetVsp of the gpadl handle */
 	init_packet = &net_device->channel_init_pkt;
 	memset(init_packet, 0, sizeof(struct nvsp_message));
@@ -766,7 +842,7 @@ static void netvsc_send_tx_complete(struct net_device *ndev,
 
 	/* Notify the layer above us */
 	if (likely(skb)) {
-		const struct hv_netvsc_packet *packet
+		struct hv_netvsc_packet *packet
 			= (struct hv_netvsc_packet *)skb->cb;
 		u32 send_index = packet->send_buf_index;
 		struct netvsc_stats *tx_stats;
@@ -782,6 +858,7 @@ static void netvsc_send_tx_complete(struct net_device *ndev,
 		tx_stats->bytes += packet->total_bytes;
 		u64_stats_update_end(&tx_stats->syncp);
 
+		netvsc_dma_unmap(ndev_ctx->device_ctx, packet);
 		napi_consume_skb(skb, budget);
 	}
 
@@ -946,6 +1023,87 @@ static void netvsc_copy_to_send_buf(struct netvsc_device *net_device,
 		memset(dest, 0, padding);
 }
 
+void netvsc_dma_unmap(struct hv_device *hv_dev,
+		      struct hv_netvsc_packet *packet)
+{
+	u32 page_count = packet->cp_partial ?
+		packet->page_buf_cnt - packet->rmsg_pgcnt :
+		packet->page_buf_cnt;
+	int i;
+
+	if (!hv_is_isolation_supported())
+		return;
+
+	if (!packet->dma_range)
+		return;
+
+	for (i = 0; i < page_count; i++)
+		dma_unmap_single(&hv_dev->device, packet->dma_range[i].dma,
+				 packet->dma_range[i].mapping_size,
+				 DMA_TO_DEVICE);
+
+	kfree(packet->dma_range);
+}
+
+/* netvsc_dma_map - Map swiotlb bounce buffer with data page of
+ * packet sent by vmbus_sendpacket_pagebuffer() in the Isolation
+ * VM.
+ *
+ * In isolation VM, netvsc send buffer has been marked visible to
+ * host and so the data copied to send buffer doesn't need to use
+ * bounce buffer. The data pages handled by vmbus_sendpacket_pagebuffer()
+ * may not be copied to send buffer and so these pages need to be
+ * mapped with swiotlb bounce buffer. netvsc_dma_map() is to do
+ * that. The pfns in the struct hv_page_buffer need to be converted
+ * to bounce buffer's pfn. The loop here is necessary because the
+ * entries in the page buffer array are not necessarily full
+ * pages of data.  Each entry in the array has a separate offset and
+ * len that may be non-zero, even for entries in the middle of the
+ * array.  And the entries are not physically contiguous.  So each
+ * entry must be individually mapped rather than as a contiguous unit.
+ * So not use dma_map_sg() here.
+ */
+static int netvsc_dma_map(struct hv_device *hv_dev,
+			  struct hv_netvsc_packet *packet,
+			  struct hv_page_buffer *pb)
+{
+	u32 page_count =  packet->cp_partial ?
+		packet->page_buf_cnt - packet->rmsg_pgcnt :
+		packet->page_buf_cnt;
+	dma_addr_t dma;
+	int i;
+
+	if (!hv_is_isolation_supported())
+		return 0;
+
+	packet->dma_range = kcalloc(page_count,
+				    sizeof(*packet->dma_range),
+				    GFP_KERNEL);
+	if (!packet->dma_range)
+		return -ENOMEM;
+
+	for (i = 0; i < page_count; i++) {
+		char *src = phys_to_virt((pb[i].pfn << HV_HYP_PAGE_SHIFT)
+					 + pb[i].offset);
+		u32 len = pb[i].len;
+
+		dma = dma_map_single(&hv_dev->device, src, len,
+				     DMA_TO_DEVICE);
+		if (dma_mapping_error(&hv_dev->device, dma)) {
+			kfree(packet->dma_range);
+			return -ENOMEM;
+		}
+
+		packet->dma_range[i].dma = dma;
+		packet->dma_range[i].mapping_size = len;
+		pb[i].pfn = dma >> HV_HYP_PAGE_SHIFT;
+		pb[i].offset = offset_in_hvpage(dma);
+		pb[i].len = len;
+	}
+
+	return 0;
+}
+
 static inline int netvsc_send_pkt(
 	struct hv_device *device,
 	struct hv_netvsc_packet *packet,
@@ -986,14 +1144,24 @@ static inline int netvsc_send_pkt(
 
 	trace_nvsp_send_pkt(ndev, out_channel, rpkt);
 
+	packet->dma_range = NULL;
 	if (packet->page_buf_cnt) {
 		if (packet->cp_partial)
 			pb += packet->rmsg_pgcnt;
 
+		ret = netvsc_dma_map(ndev_ctx->device_ctx, packet, pb);
+		if (ret) {
+			ret = -EAGAIN;
+			goto exit;
+		}
+
 		ret = vmbus_sendpacket_pagebuffer(out_channel,
 						  pb, packet->page_buf_cnt,
 						  &nvmsg, sizeof(nvmsg),
 						  req_id);
+
+		if (ret)
+			netvsc_dma_unmap(ndev_ctx->device_ctx, packet);
 	} else {
 		ret = vmbus_sendpacket(out_channel,
 				       &nvmsg, sizeof(nvmsg),
@@ -1001,6 +1169,7 @@ static inline int netvsc_send_pkt(
 				       VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
 	}
 
+exit:
 	if (ret == 0) {
 		atomic_inc_return(&nvchan->queue_sends);
 
@@ -1515,13 +1684,6 @@ static int netvsc_process_raw_pkt(struct hv_device *device,
 	return 0;
 }
 
-static struct hv_device *netvsc_channel_to_device(struct vmbus_channel *channel)
-{
-	struct vmbus_channel *primary = channel->primary_channel;
-
-	return primary ? primary->device_obj : channel->device_obj;
-}
-
 /* Network processing softirq
  * Process data in incoming ring buffer from host
  * Stops when ring is empty or budget is met or exceeded.
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index f6c9c2a670f9..448fcc325ed7 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -361,6 +361,8 @@ static void rndis_filter_receive_response(struct net_device *ndev,
 			}
 		}
 
+		netvsc_dma_unmap(((struct net_device_context *)
+			netdev_priv(ndev))->device_ctx, &request->pkt);
 		complete(&request->wait_event);
 	} else {
 		netdev_err(ndev,
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 4d44fb3b3f1c..8882e46d1070 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -25,6 +25,7 @@
 #include <linux/interrupt.h>
 #include <linux/reciprocal_div.h>
 #include <asm/hyperv-tlfs.h>
+#include <linux/dma-map-ops.h>
 
 #define MAX_PAGE_BUFFER_COUNT				32
 #define MAX_MULTIPAGE_BUFFER_COUNT			32 /* 128K */
@@ -1583,6 +1584,11 @@ struct hyperv_service_callback {
 	void (*callback)(void *context);
 };
 
+struct hv_dma_range {
+	dma_addr_t dma;
+	u32 mapping_size;
+};
+
 #define MAX_SRV_VER	0x7ffffff
 extern bool vmbus_prep_negotiate_resp(struct icmsg_hdr *icmsghdrp, u8 *buf, u32 buflen,
 				const int *fw_version, int fw_vercnt,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:39:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:39:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226392.391256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yi-0000aT-8v; Tue, 16 Nov 2021 15:39:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226392.391256; Tue, 16 Nov 2021 15:39:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0Yi-0000Yz-2U; Tue, 16 Nov 2021 15:39:44 +0000
Received: by outflank-mailman (input) for mailman id 226392;
 Tue, 16 Nov 2021 15:39:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6+K+=QD=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mn0Yg-0007uz-87
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:39:42 +0000
Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com
 [2607:f8b0:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69889a1e-46f3-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 16:39:41 +0100 (CET)
Received: by mail-pf1-x42c.google.com with SMTP id c4so18560320pfj.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Nov 2021 07:39:41 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:3:57e4:b776:c854:76dd])
 by smtp.gmail.com with ESMTPSA id x64sm1981948pfd.151.2021.11.16.07.39.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Nov 2021 07:39:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69889a1e-46f3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=Ak926pCUpNKs+47FmVVMlYhwNY9vAunl0LxYrKNKSNw=;
        b=fXIPR+PBwyjS3i7KU87DbF3H65iqGoi9c5lPfq49MXW5Agb+PbqhhCkodBUwgncfY0
         8u558Gxgx+hyneHiMFFna+v0Tplu2XVGB323yn9Mi4PItfFkrOZL6mOPTtH84jId0xpi
         OOq6zxxTIdjHmAiazs/l0ad1ZmnSo+bM1W9zJ7IapW3AW9cS0fE8fz7OYNZi78x2Nywm
         NgYC+p+lYyKgO/DkWdX54e2PkDPaW+2ZM3yoNgy3n0P5AWQrZ1b8yG7V4TDZUmyvRdgv
         9XPyZIT1LGCfNUbwhEfH/a+tLJRP3N9cwJNlhcq5BgdP8Ivttu+Pv7oZJiv6uaRyb8G9
         Jfng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=Ak926pCUpNKs+47FmVVMlYhwNY9vAunl0LxYrKNKSNw=;
        b=k3+zotBHrR3Z/hWjXsOnoB3gzRpS/M4XW5kZ7zGaAXEjK6+o/hGoSVi0fQkY4ngAOM
         HBy0E+FLQimXVudmRc8ASGVeVBhrmUgCQpy8RZLW4XTSkcTsQM0mC7fgocDS6F6uegmF
         7/GOTucPduWo9LIfTQg7yERwKXXLRpIJcEwDMu4bQpDE/2R7Ko84y8Aw6EHUn9EItXOE
         hFZqDtUA6w2oKh9VP8VRaThoxX1X8L3m4fdSjAO0XbkxV+xuR+i1HJxImyiMYxnmGsBs
         xUo70Rgc69rwWlJcci4q1fKA+PzGe9ZdyQjUhju8RlY3/NzB6ktpyvI111HqBoMcAmoT
         Abrw==
X-Gm-Message-State: AOAM531/qkJa0BGAokyy0rKRw9wPSTrrj7Db6HEFPwvEtF1T8Z4aQX23
	CSRnlgu0OpkyYehez+v1sSU=
X-Google-Smtp-Source: ABdhPJzCZCY+jvEVnSW7E8X0qlp8/NYaXSoxi8D4QUD1eJWMFglw+EAvUZHg9VPQ+6zuVOjNnuFh+Q==
X-Received: by 2002:a05:6a00:230d:b0:49f:b8ad:ae23 with SMTP id h13-20020a056a00230d00b0049fb8adae23mr33547pfh.80.1637077179809;
        Tue, 16 Nov 2021 07:39:39 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: dave.hansen@linux.intel.com,
	luto@kernel.org,
	peterz@infradead.org,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	x86@kernel.org,
	hpa@zytor.com,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	thomas.lendacky@amd.com,
	dave.hansen@intel.com
Subject: [PATCH 5/5] scsi: storvsc: Add Isolation VM support for storvsc driver
Date: Tue, 16 Nov 2021 10:39:23 -0500
Message-Id: <20211116153923.196763-6-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211116153923.196763-1-ltykernel@gmail.com>
References: <20211116153923.196763-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

In Isolation VM, all shared memory with host needs to mark visible
to host via hvcall. vmbus_establish_gpadl() has already done it for
storvsc rx/tx ring buffer. The page buffer used by vmbus_sendpacket_
mpb_desc() still needs to be handled. Use DMA API(scsi_dma_map/unmap)
to map these memory during sending/receiving packet and return swiotlb
bounce buffer dma address. In Isolation VM, swiotlb  bounce buffer is
marked to be visible to host and the swiotlb force mode is enabled.

Set device's dma min align mask to HV_HYP_PAGE_SIZE - 1 in order to
keep the original data offset in the bounce buffer.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
 drivers/scsi/storvsc_drv.c | 37 +++++++++++++++++++++----------------
 include/linux/hyperv.h     |  1 +
 2 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index 20595c0ba0ae..ae293600d799 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -21,6 +21,8 @@
 #include <linux/device.h>
 #include <linux/hyperv.h>
 #include <linux/blkdev.h>
+#include <linux/dma-mapping.h>
+
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
 #include <scsi/scsi_host.h>
@@ -1336,6 +1338,7 @@ static void storvsc_on_channel_callback(void *context)
 					continue;
 				}
 				request = (struct storvsc_cmd_request *)scsi_cmd_priv(scmnd);
+				scsi_dma_unmap(scmnd);
 			}
 
 			storvsc_on_receive(stor_device, packet, request);
@@ -1749,7 +1752,6 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
 	struct hv_host_device *host_dev = shost_priv(host);
 	struct hv_device *dev = host_dev->dev;
 	struct storvsc_cmd_request *cmd_request = scsi_cmd_priv(scmnd);
-	int i;
 	struct scatterlist *sgl;
 	unsigned int sg_count;
 	struct vmscsi_request *vm_srb;
@@ -1831,10 +1833,11 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
 	payload_sz = sizeof(cmd_request->mpb);
 
 	if (sg_count) {
-		unsigned int hvpgoff, hvpfns_to_add;
 		unsigned long offset_in_hvpg = offset_in_hvpage(sgl->offset);
 		unsigned int hvpg_count = HVPFN_UP(offset_in_hvpg + length);
-		u64 hvpfn;
+		struct scatterlist *sg;
+		unsigned long hvpfn, hvpfns_to_add;
+		int j, i = 0;
 
 		if (hvpg_count > MAX_PAGE_BUFFER_COUNT) {
 
@@ -1848,21 +1851,22 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
 		payload->range.len = length;
 		payload->range.offset = offset_in_hvpg;
 
+		sg_count = scsi_dma_map(scmnd);
+		if (sg_count < 0)
+			return SCSI_MLQUEUE_DEVICE_BUSY;
 
-		for (i = 0; sgl != NULL; sgl = sg_next(sgl)) {
+		for_each_sg(sgl, sg, sg_count, j) {
 			/*
-			 * Init values for the current sgl entry. hvpgoff
-			 * and hvpfns_to_add are in units of Hyper-V size
-			 * pages. Handling the PAGE_SIZE != HV_HYP_PAGE_SIZE
-			 * case also handles values of sgl->offset that are
-			 * larger than PAGE_SIZE. Such offsets are handled
-			 * even on other than the first sgl entry, provided
-			 * they are a multiple of PAGE_SIZE.
+			 * Init values for the current sgl entry. hvpfns_to_add
+			 * is in units of Hyper-V size pages. Handling the
+			 * PAGE_SIZE != HV_HYP_PAGE_SIZE case also handles
+			 * values of sgl->offset that are larger than PAGE_SIZE.
+			 * Such offsets are handled even on other than the first
+			 * sgl entry, provided they are a multiple of PAGE_SIZE.
 			 */
-			hvpgoff = HVPFN_DOWN(sgl->offset);
-			hvpfn = page_to_hvpfn(sg_page(sgl)) + hvpgoff;
-			hvpfns_to_add =	HVPFN_UP(sgl->offset + sgl->length) -
-						hvpgoff;
+			hvpfn = HVPFN_DOWN(sg_dma_address(sg));
+			hvpfns_to_add = HVPFN_UP(sg_dma_address(sg) +
+						 sg_dma_len(sg)) - hvpfn;
 
 			/*
 			 * Fill the next portion of the PFN array with
@@ -1872,7 +1876,7 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
 			 * the PFN array is filled.
 			 */
 			while (hvpfns_to_add--)
-				payload->range.pfn_array[i++] =	hvpfn++;
+				payload->range.pfn_array[i++] = hvpfn++;
 		}
 	}
 
@@ -2016,6 +2020,7 @@ static int storvsc_probe(struct hv_device *device,
 	stor_device->vmscsi_size_delta = sizeof(struct vmscsi_win8_extension);
 	spin_lock_init(&stor_device->lock);
 	hv_set_drvdata(device, stor_device);
+	dma_set_min_align_mask(&device->device, HV_HYP_PAGE_SIZE - 1);
 
 	stor_device->port_number = host->host_no;
 	ret = storvsc_connect_to_vsp(device, storvsc_ringbuffer_size, is_fc);
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 8882e46d1070..2840e51ee5c5 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -1262,6 +1262,7 @@ struct hv_device {
 
 	struct vmbus_channel *channel;
 	struct kset	     *channels_kset;
+	struct device_dma_parameters dma_parms;
 
 	/* place holder to keep track of the dir for hv device in debugfs */
 	struct dentry *debug_dir;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:41:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:41:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226407.391268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0ah-0003Vb-M4; Tue, 16 Nov 2021 15:41:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226407.391268; Tue, 16 Nov 2021 15:41:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0ah-0003VU-J1; Tue, 16 Nov 2021 15:41:47 +0000
Received: by outflank-mailman (input) for mailman id 226407;
 Tue, 16 Nov 2021 15:41:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0ag-0003VL-G0
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:41:46 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0ag-0006fU-DX
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:41:46 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0ag-0005pJ-CP
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:41:46 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn0aT-0000SD-6p; Tue, 16 Nov 2021 15:41:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=nGas+BMduZ+0DfWpuZ/emTsggD2YpKd3f//TX0e5ojU=; b=WRuMFlFdyGmJG8AM/zqT3i3/nd
	R4wl+JlHnnuivEZq4Zdo36ToHB9wH7slBMp9IYcyJ1Cml7ytNvbBLPRIULp+65kgmlXn8cQsfi101
	RiBnQylE25XobSXzEFFIWqwh9EwX0B9nlZ2bXNcWRGocIqtmOQlBfb/QOc+uN0ThIXqQ=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24979.53538.946229.336332@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 15:41:22 +0000
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: xen-devel@lists.xenproject.org,
    bertrand.marquis@arm.com,
    wei.chen@arm.com,
    Stefano Stabellini <sstabellini@kernel.org>,
    Julien Grall <julien@xen.org>,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH-4.16] arm/efi: Improve performance requesting filesystem handle
In-Reply-To: <20211116150624.7720-1-luca.fancellu@arm.com>
References: <20211116150624.7720-1-luca.fancellu@arm.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Luca Fancellu writes ("[PATCH-4.16] arm/efi: Improve performance requesting filesystem handle"):
> Currently, the code used to handle and possibly load from the filesystem
> modules defined in the DT is allocating and closing the filesystem handle
> for each module to be loaded.
> 
> To improve the performance, the filesystem handle pointer is passed
> through the call stack, requested when it's needed only once and closed
> if it was allocated.

Thsnks for submitting this formally.  The clarity is very helpful.

> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> Justification for integration in 4.16:
> Upside:   Fixes a performance issue only on arm that would be really useful
>           for ARM users using the release, no functional changes.

The size of this perf issue is not discussed here.  At this stage of
the release I will usually give release acks for fixes to serious
problems.  Does this meet that test ?  I think probably not.

Thanks to Bertrand who, when I asked on IRC, confirmed that this perf
issue only affects users of the new feature in a1743fc3a9 (so is not a
regression), and the perf issue is only a consquenceof 9bc9fff04ba0
which was itself a fix to something wrong with a1743fc3a9.  It seems
that one interpretation is that the problem here is simply a
less-than-optimal new feature.

> Downside: It's affecting the EFI boot path (only on ARM).
> Risk:     Risk is low given the small changes.

I did find this risk analysis at all convincing, I'm afraid.

So I'm afraid I'm saying "no".

Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 15:53:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 15:53:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226412.391279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0lU-00055p-R7; Tue, 16 Nov 2021 15:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226412.391279; Tue, 16 Nov 2021 15:52:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0lU-00055i-OA; Tue, 16 Nov 2021 15:52:56 +0000
Received: by outflank-mailman (input) for mailman id 226412;
 Tue, 16 Nov 2021 15:52:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0lT-00055c-FB
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:52:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0lT-0006qw-CF
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:52:55 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn0lT-0006X0-B4
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 15:52:55 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn0lO-0000Uc-8P; Tue, 16 Nov 2021 15:52:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=QI1mSEKAJPJ0hJ5CC9su34UdFjwt1CzRe11OgKUNiw8=; b=Yz9Oq3EOI218wKFTm6QYkJl6iO
	dX1VcNAhk31KCi+TD6GcmSt5Jp2dsmB31UWjGrfH3o8Pg04TBd5ZBhq2O+BTUwI39m39iE+MVHLVl
	2NjbcmSrRatlX0DqkdulZlPoa6QvOTiayBD3cKNA9eOssv4qOF9dZ++V8REGCIbFVS8w=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-ID: <24979.54225.597392.929945@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 15:52:49 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: osstest service owner <osstest-admin@xenproject.org>,
    xen-devel@lists.xenproject.org
Subject: Re: [linux-linus test] 166151: regressions - FAIL
In-Reply-To: <42136e3f-5b77-3699-39f5-f720ba09174d@suse.com>
References: <osstest-166151-mainreport@xen.org>
	<42136e3f-5b77-3699-39f5-f720ba09174d@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [linux-linus test] 166151: regressions - FAIL"):
> On 16.11.2021 05:42, osstest service owner wrote:
> > flight 166151 linux-linus real [real]
> > http://logs.test-lab.xenproject.org/osstest/logs/166151/
> > 
> > Regressions :-(
> > 
> > Tests which did not succeed and are blocking,
> > including tests which could not be run:
> >  build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
> 
> I'm puzzled by this in two ways: First that this is being done at all,
> when 32-bit PV Xen support has gone away several releases back. If the
> purpose is to cover PVH and/or HVM, then I guess the test name has
> become misleading.

"pvops" refers to the branch of Linux, not the test configuration.  It
means "not that weird xenolinux thing".

> And second that this fails on a KVM related build error:
> 
> arch/x86/kvm/x86.c: In function â€˜vcpu_enter_guestâ€™:
> arch/x86/kvm/x86.c:9948:1: error: unsupported size for integer register
>  }
>  ^
> make[2]: *** [scripts/Makefile.build:287: arch/x86/kvm/x86.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> 
> To limit the risk of unrelated build breakage, wouldn't it make sense
> to keep off Kconfig settings which aren't really of interest?

I think "you can't build it with a perfectly normal configuration that
contains both Xen and KVM things" is a relevant thing to know.
Distros need to compile their kernels with many things enabled, some
of which might be mutually exclusive at runtime.

Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 16:05:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 16:05:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226417.391290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0xS-00075k-05; Tue, 16 Nov 2021 16:05:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226417.391290; Tue, 16 Nov 2021 16:05:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn0xR-00075d-TA; Tue, 16 Nov 2021 16:05:17 +0000
Received: by outflank-mailman (input) for mailman id 226417;
 Tue, 16 Nov 2021 16:05:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mn0xQ-00075X-LN
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 16:05:16 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc55a7f5-46f6-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 17:05:15 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-29-CgIaZ9rnMdy5VO-1RffNDg-2; Tue, 16 Nov 2021 17:05:13 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5167.eurprd04.prod.outlook.com (2603:10a6:803:5b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 16:05:09 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 16:05:09 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR0301CA0024.eurprd03.prod.outlook.com (2603:10a6:20b:468::31) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Tue, 16 Nov 2021 16:05:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc55a7f5-46f6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637078715;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=whQ4I7PyIUrwvkOZICqYXl52m8YRR/9/eF0wu5gh0Qg=;
	b=WJ1Gcms7hDqMC3EM6z5V0Pp2k23EirTAQYLl8+GqvwY8QuIhPmIpU8t83afW2Oslr8NeyH
	OWZ5QiGJPVOlExwD8d8KRAXnBV3OZgvxxczNwxSn99pDDUlvDVdM1ZRHRXyCtKDSFIYOaW
	NDqRv1VB7j5qnqjT53jxPS2aZ/bmvzc=
X-MC-Unique: CgIaZ9rnMdy5VO-1RffNDg-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZtrjlPbCAsa4mown8CHTFajQwlJKAO5vWkgfAgYupuCgsLbKsJ8YLTxeVYqyx9Fok/2/UkjI0vXCQK+NG+KpkyJtzD75gICjDayvwHTbxFagtY4TXi+9GMehCqqtjIO13gijof8O4KIMBTRaqCzD01zUnLS/lphBuMHhnbSdS7U/IjzrJFWXMNCb3zIhzQeAa6cVkq1ObgcO0xbrmFsvJRqZRI2uuCvr+kE/D4lP4kmO7VkYyVM4HmF1lSc6fqL7zbCYbAaMnNlttlZRQKdmCn2LXv476FZQ7gFsfwcbtV/fI2SwgjVHudPpoLj4sOMq6csoPs3aSYUunFPfovEIng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m+HHqtJ/rLiT0XwV72sxXskxC5NtUpOCHakEVJwbD6A=;
 b=gq82RvSva6j7WVp4ZG297mVEJLF1FgZOHIKuPf5M35DMOnQyCAiqkf83BPxs/1UfCg6D0y+mMcal9vFbUwL6sKHt4JgN5fg5SSxf/YYDna8MvyFHwdEKPZ3qn0AQcEH7hgHIQyZkyLLwzksZh+2BRN76FPYJ2UxmTj4uFWwOIbqAFHiQlB9aPScKgj0IkWLhd4dmdYUmSOqRQbwB54Yw/QK+wAr9fG72e23ziBmptAXNOXXtv+tm4+qDYx3ZpA/HibINIJN2FZG/hVLe5PrmOxewPGR+y/AI5JLLddpHpCP97tQ/FVnk7POzYHkdTafh0Pl98M57Ge1KGfRSQ03z0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c6de136f-a1b9-2643-3858-9cd3d76e6f57@suse.com>
Date: Tue, 16 Nov 2021 17:05:07 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/privcmd: make option visible in Kconfig
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
CC: linux@weissschuh.net, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20211116143323.18866-1-jgross@suse.com>
 <f80f3207-363d-51b7-4ae0-e4b8aeb2544b@suse.com>
 <b155f66d-8259-ba87-62c4-ce8a0f7ed82f@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <b155f66d-8259-ba87-62c4-ce8a0f7ed82f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR0301CA0024.eurprd03.prod.outlook.com
 (2603:10a6:20b:468::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 267772d3-ac1c-4a4e-25a1-08d9a91adccd
X-MS-TrafficTypeDiagnostic: VI1PR04MB5167:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5167A2181544473B99D9ED48B3999@VI1PR04MB5167.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	DEIXAoC57jiJPuhXnkXmEQf7fELKxDYo1/7Pl83Yc36ZQDKXI3yQCBEbVUXM8CoydK1wnWNo9IEZx71ZFKjGha8U/dmKz8NDcNcAgdP7g3r01u5N2alFRORJ+xYKK864/MPBgU/mzDVbz5a94LRVjBwJgKU3A161JE/yH+Qr/fEBM/lMfXi2jU6BQJMaO1wCJzcyk0v1rzZR4vNvFctj3feYFeu1rUwAMTx8YnhBI6s1P3U2Lg6PNgLHaldGJQVrlBiDmZDy49RdYwDroDDTBlZ5nN0DRUtl2bx7anZeTlA6rHja3giGfwwVYmdLeRg+LeFrUJnLnYVJzyqKYrBOu5eKFsMymuCgEaeaNDmTOr+7qDxvtIBCbvoA4Sjs6/I2XCVNcwje94f3C+TUX5u+NPi1Bd+EHa7D6Vc+tSbNu2P8joLVWZMkKUd7yLYube5oT7D/pzD0MIM9C9YsnOzslcQ08JCRXQH2Tsz9sREy1G7PMUcKlpyp00zYMHnx2gWWOJSM+paMyxchJ7HGCv9RACdb4+4DgWpI3I+LkMVNB1LQ8BvILn5vOobw2ff42TFthbVBFGUudN/36syvPcotwfGdejIsn/2zk9Tsl/BuHoyD1/kP29lhyAL9W9pskGZzqnz1mWQcWCPyWKmsU0lF0slYltVs7JdFcOyN3g6dhnOXSEdemc9GSt9ePl2mg1uOunvmIs5cnXlYNrbPKpeoCoT8igM7+p1KlQqj917g+Hg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(38100700002)(8676002)(6636002)(5660300002)(2616005)(8936002)(956004)(86362001)(2906002)(26005)(37006003)(66556008)(36756003)(508600001)(66946007)(66476007)(54906003)(6486002)(16576012)(31696002)(186003)(6862004)(31686004)(53546011)(83380400001)(66574015)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?g7IzTLla7wwRwB6aywf2soUYQNmQY9Sg9sLtQ2spUClLpJjLLsjlCAcn/7Wn?=
 =?us-ascii?Q?aufnYqsy9Yi8UhlO27c+lmSEvvVNr9m8Jl7HyUJnRwmTpfz8IfoRk0VLD7Ui?=
 =?us-ascii?Q?6TACxBDPQQCmyIkw88soA1BHzwe1ywP/ZgK2YnzyFnVho5hxVLaf+wSRgH+v?=
 =?us-ascii?Q?ceHPU3EhFRvxMVeuNr0rmdXslSid//F3jhQMitNoou3OaHlIMDqGzJUMLXY2?=
 =?us-ascii?Q?X3LTsWR7r77p0XnhSB7zRDUA8KYT/BvSyivdOwDbH+2wXtX3bqoiXUct8k7O?=
 =?us-ascii?Q?/hfAjmpRlTTJCyXffB4DhGPTr01AuuPhk9wRIIim4GCAjkjIBj4ef/ly1us8?=
 =?us-ascii?Q?uMoP7lfHDxhqFV/EvMiigRdFMACZDBjNSgi2UH4KQ9yIb5Rgzs1EcCqMuw3I?=
 =?us-ascii?Q?2ZD8LyXhncdPdRQuXJ3sKj6lZmuiFUKWFGvI6NkkiIji84qZ+fog0hxMB11B?=
 =?us-ascii?Q?Bdy6+afp9CfK7uDZxJIzXyHo4obIBXHXVum837v4wIC8SefV7VJwYIb0l+l8?=
 =?us-ascii?Q?+jOmTeVyOhmtbxM5ck/7il1H+RyDQTRKrLVk7zixDpRqdlXeL+OyLYDbmQuJ?=
 =?us-ascii?Q?2UoeyFjEWMGsWYcM3r9I/m8TPmvqQB5ZqrlYMK8k8w2YO6aFy7lvZ1Y5cYIZ?=
 =?us-ascii?Q?COyhymTs2ld6w+0Xrchs5qtRijh+pHuF6tHX+X2u7sVGYWAr+oaA/EIFuGDB?=
 =?us-ascii?Q?VYghJ11pjXqMQCdo5ryTK6VbPuvs1yzlvu10DPjIqBSvZO0MhFkgFBmgY+p2?=
 =?us-ascii?Q?h6Y2Q+dvDAixxahCcNPgBd2JbCOLdFP2AEqHaSuPbwh+fy06b4H3FfSgy9mA?=
 =?us-ascii?Q?yUS+VRtYVyxd16L9GPBfddm0yR6vLl56oSKPOOpGXDta+B7vNLb8MVzw3ege?=
 =?us-ascii?Q?T16ePuZj7aElUCGP2x7iLDujYn+zIsGwLbGNvhaKu6ET9RDN/FQndYj8/ps/?=
 =?us-ascii?Q?+laLGyKul1GApgQEDgdPNlvUxBTjO4tNZlY8Stqp9Utx0D0wdLrxYubhX7ov?=
 =?us-ascii?Q?DT6psoevi8D3OKjWOVxSsFOmqeU3Nb8pgJ86f6EUd0HUZK8T4jb3srUZgvgF?=
 =?us-ascii?Q?Mc25Hm/Bxf7xEWCjeOoOoOo6B81ljaLrRkbEaJHElY2mYUfrhywiC55PyPwn?=
 =?us-ascii?Q?CTYjXvHAhEcpbJBUzr1TKehMZDeBViCb+FzkDO8W4No5d9AOMQXcjc2pgNQO?=
 =?us-ascii?Q?eQLVYh3OrkHiCnFDt8ojfZ1HNQ/x765nGepU6NIk/vVWZGKlIJqHwLSavdxQ?=
 =?us-ascii?Q?pRCTeJ0hnaUTkW0/2OD3JSDdl/D8LFjaLs1nih9M0LaDX2oiPQmZ37O+ayvN?=
 =?us-ascii?Q?72QUkEaRI7DOF/qZX/sS9lvczujL23eKLBhXHBgWGV3JG7uQKoUA32HMuCFZ?=
 =?us-ascii?Q?J/c4ACYTCM/7ecOFP0Doyejp6AjSk0tLKz8ttkMDqdELrHQ3DR1G7Uu0+X2r?=
 =?us-ascii?Q?yj2JCXTDQjvlmWRVMeqXysaiQDeU31DumEgxENMupDNClnOA2Zefrh30Caki?=
 =?us-ascii?Q?PystYgNrCKQmY71k3t9iuKp6ef5E3LPdB9Wo33Z2JANvR/Jfqy2GVLtn3ZFI?=
 =?us-ascii?Q?Viib08t5wBk13GKHVCfws8RavX6Osia3Ks7uWlOJxXeqkHYRLcU/UXeo0+KJ?=
 =?us-ascii?Q?8HSQhiWzm6YF1qzMOVJXlsY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 267772d3-ac1c-4a4e-25a1-08d9a91adccd
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 16:05:08.9930
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 28Uq11oYECyIKnX4lpzng1iaA4nc5IpRvaC/EMN6Np5BZDoy1q6nNr1rxYCDJRhWKwUMz6NteCOmFymrMfng1g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5167

On 16.11.2021 16:01, Juergen Gross wrote:
> On 16.11.21 15:55, Jan Beulich wrote:
>> On 16.11.2021 15:33, Juergen Gross wrote:
>>> This configuration option provides a misc device as an API to userspace=
.
>>> Make this API usable without having to select the module as a transitiv=
e
>>> dependency.
>>>
>>> This also fixes an issue where localyesconfig would select
>>> CONFIG_XEN_PRIVCMD=3Dm because it was not visible and defaulted to
>>> building as module.
>>>
>>> Based-on-patch-by: Thomas Wei=C3=9Fschuh <linux@weissschuh.net>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>
>>> --- a/drivers/xen/Kconfig
>>> +++ b/drivers/xen/Kconfig
>>> @@ -259,9 +259,14 @@ config XEN_SCSI_BACKEND
>>>   	  if guests need generic access to SCSI devices.
>>>  =20
>>>   config XEN_PRIVCMD
>>> -	tristate
>>> +	tristate "Xen hypercall passthrough driver"
>>>   	depends on XEN
>>>   	default m
>>> +	help
>>> +	  The hypercall passthrough driver allows user land programs to perfo=
rm
>>
>> Maybe worth adding "privileged" here? Albeit of course that's different
>> from the use of the word ...
>=20
> I guess you mean "... allows privileged user programs ..." (another
> variant might be "The privileged hypercall passthrough ...")?

The former, yes.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 16:09:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 16:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226420.391301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn11n-0007k0-KS; Tue, 16 Nov 2021 16:09:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226420.391301; Tue, 16 Nov 2021 16:09:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn11n-0007jt-G0; Tue, 16 Nov 2021 16:09:47 +0000
Received: by outflank-mailman (input) for mailman id 226420;
 Tue, 16 Nov 2021 16:09:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mn11m-0007jn-3s
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 16:09:46 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9cc1bf93-46f7-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 17:09:44 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2052.outbound.protection.outlook.com [104.47.14.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-24-5yoe6qwlP8SQ5YZswv-vnQ-1; Tue, 16 Nov 2021 17:09:43 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB2958.eurprd04.prod.outlook.com (2603:10a6:802:a::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 16:09:40 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 16:09:40 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR07CA0048.eurprd07.prod.outlook.com (2603:10a6:20b:459::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.15 via Frontend
 Transport; Tue, 16 Nov 2021 16:09:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9cc1bf93-46f7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637078984;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=iYm0VtEp7kV2wnizbYcIm3VxzzYeWnY1FeNOdHKy8nU=;
	b=Ds8VEZ59ujPhInkErOsLznaB8SD9jmKZowBaArr7dw4MoSJgknsFsISF+5LDs3YifJlI/w
	yzQBaeU5sZOWOyKNPZXD0bjX8bpFJ5dO+EhYy9QCB83bYsrffPtwDaaQCrjE26axwjciwB
	ctV/e34Q6Kf8dYYPb6d9F7CAYYMA+rw=
X-MC-Unique: 5yoe6qwlP8SQ5YZswv-vnQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O9HrRKRk3VLAkt//9jb5ZhgevwK3e+qi/24GsVZU/scXY/rkeRiIaFSgdZMKQ/EHLGb97E8dKXqrMFI2TK03zvo95hTjOH8n4SN9MsHouDtSQtIqZ/u6YMp5x6LyUBTXdFSsWw8SsaNYj8nkw+2dSQs4fwVjYZypOJMwJ7zuwUO9Dl28QasLD1xPowmAh0J+GxVaGwu4GZokazc5dJwlG946C5mcJamxcQE505Jr/HNQ1N/64odPiTdXxq2V3S6lxcP3lQgVl1JsuAC4imW7paHra7rR1FulkFpTRITU1eRf2uO1o2VyHh3+2XbkVztMlnVLRjVyP9fGmLbQ1xMXYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iYm0VtEp7kV2wnizbYcIm3VxzzYeWnY1FeNOdHKy8nU=;
 b=Kv5YcNhEfGIkhvQd3xXQxBcQ7lXZDGf8Ze4f4EPp78yoLVd5e5+jBe6CKhWWgC1OLO7QZahu51dHUeX5DVWX4MCsjY8+vaoJhvDdAWEg9jKddgJAB1HIDZBofpWuuZkwggLIgDnRHaSmKa3N+2pWqcOEm+RloFD6pjwgLTBKXPDFZMBX4GYWm3CXfFCJ2t7DfQ61MEycT+FeMqJ+S9FEWK3P6ywEWCLVTrSl0a20Dk07Uv6QMytGkW/qsnZKSV1L9xTL1kbwZvVrgmk23XLF9NZinTDHhwUX3y84zDVG93Pb+ToiZ6vBp9R5iHOYAz9qVLRaaC9+V2pY69aOYPIHng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7fc8313a-0806-ee8d-d752-a2a8c4193bcd@suse.com>
Date: Tue, 16 Nov 2021 17:09:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 "julien@xen.org" <julien@xen.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
 <ad01ebdc-7fb8-3c76-d953-08b73b4b0c25@epam.com>
 <fc1fdee4-e567-038f-a90b-127548a8da02@suse.com>
 <55a95ff3-6717-780b-25f9-c43728b6270b@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <55a95ff3-6717-780b-25f9-c43728b6270b@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR07CA0048.eurprd07.prod.outlook.com
 (2603:10a6:20b:459::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8004a1d8-2288-42a0-99d9-08d9a91b7ec8
X-MS-TrafficTypeDiagnostic: VI1PR04MB2958:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB2958DBBB198CEA4DEBD42A8EB3999@VI1PR04MB2958.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	biqoN3/6mhHUPAXJa2jL2QaujXKKM9ZZiIOUPX8wGRY/UsS+x07UcWEvYzf6B8fLAvyqGdEtfjO0kV8RHu628o8Ju3pZ65Afbfd26jkq95Gkm5od3YA33lBerehOWhcCNQ3Hno6NKXsdBu1nPVTT2cH4FpXXM2ND7jYfArvx7G3TDx23AxKmnFkw+2xZPtYQE01DizoiM6hn7ipJY4ocpBIX1XUDYsoNQy2V96x4gJqtbX4xTBO7f2KUOVsSJ6//DIYj8Z/JtiGkEubi985CRzUCsYhVuqrVOkKtw1fzcpVka6BoLhicPxVBzAcAyDXfy04Cy9DJl4hB6A3K6PdEGqiJ3Bdg1OGlqW49Phu5CtlgXmt7ngDv6gQAfhUiMnRP1B9SVkqlFOOkniWFahgc/BT53pHW6eQU85vDyPdwX6XTBhlRwu/xr5TbJ+Bziws0GXS07lSFnaT3+OWlwLVFDPISNQl1apCuyzV076W4bSHLzrnE0hVJ+l8pogysfasQyuuXlNl1Dyk6kE0nYfS3GiF08E2dQMDUflq5nEKwBtDfjj74gIj0mJWmkyT8TS6ad+RjUREdGEDExiVOAquItTpLmXEImYgeidhSOH0hgZllkH6xWRfKczaUurtBtiF03LhWuJm2cIyQnTgqzr2/LgIglvXb2Wq9QUh1ZWY1f9C0XyCztOlOjvhyMvesMsk64ObiBFmsegQIXsCvl1WmFAXNL3rDoQOx8wtMnkjO4EIoQaI2KO4h8gCBKl2MoLDhGrQIuuyFOQyzqLhOEb92oWCEFjo7TrCCIU2wv0E9JWHoiry/TpILsDUXmsrvIyuKgeHtJJipy0PB7P/etye3gg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(5660300002)(38100700002)(54906003)(508600001)(4326008)(7416002)(53546011)(16576012)(8936002)(36756003)(31696002)(6486002)(966005)(2906002)(956004)(26005)(6916009)(86362001)(8676002)(31686004)(83380400001)(186003)(66476007)(66556008)(2616005)(66946007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Mis0QjFjSnNtazJtUnF0WHRwUEUyUkFPSjF3T2FCWXdmRVIvZWxLcGJkYzVr?=
 =?utf-8?B?RzU1TFptTXdIS0lIajNxbXJuOERwWG1obk9xckJSaHZKVlFVcEJCa20zOFVC?=
 =?utf-8?B?R3RIaEZOL0pwUHQyZFYwKzYreFFhdjNicllHZHBmUGdGVE5UVWZWUTZpY2Qy?=
 =?utf-8?B?T0t1S2ZXdEJ5WDBvQTZLUlhNVkl4YUpjMXVZRlFMOW1WQWhoUlZ1YWoxVHV0?=
 =?utf-8?B?TnBvVGJPM1RyTjdDRVA4QUo2MzZyUkNkSzhHQ1ZxY3FNbjE4RG94QVhqSU1i?=
 =?utf-8?B?bDBSVnRCd1h3eFN6Z3VnbHNLdVdiRXNSRS9SRHZUa0p3cUNZd1UrckJHYTR5?=
 =?utf-8?B?N09mRWdqRHh2UmR1UTZzbXhKYUxqR0JCSGpleDZGcmd6S05XQ2xpMTZKL0N6?=
 =?utf-8?B?N2xkWnorQlZTVVF5YUFDNFFQbXFVb2w0N3BZT0UyL2pWUzRtaG5WYkl3N0k2?=
 =?utf-8?B?Z3hpOFJPU2dLZDNiMXZHQ2VOMFg2NzhneHNWUGVQR2VPQ2ZyR2EzTTNxcmE1?=
 =?utf-8?B?YjU5OTR5SHp4cy9rVUM1STFlMno0TnA5S3hBRHlGcWV4cFRBcXdOOFhDK3RC?=
 =?utf-8?B?d3NVYkhBZStXcExJWVVlcThyVzNQZDVIUHVkUWdmZE80NTlReGFJVmdmdTcv?=
 =?utf-8?B?T01kdEd0QXVHMzM4QnV6d3lyY2UzN2tHeGlvVzNpazJKbk1TTlVxVVlZZEdv?=
 =?utf-8?B?a3JXUURWaGoxU1dnejBoZzdsNmplU0VPSDNYV3pPR3BJRzFaNG82TGFYQ2Vh?=
 =?utf-8?B?U2M3R2QrRjE1VkYrOHB0Q0pDVWRMdFYyd0dqc3Vpb1UvamFmRzE5N3htSkw0?=
 =?utf-8?B?djNrMURjUkN2cDdXSWUvMTZuTWRTNENXYUVqbkpqQnlwd0tsMERaQm1WYTkw?=
 =?utf-8?B?UTM0bkxka0QzeHBJUEhCZ3JpcHRjbGE3cEl3ZUx4WnI3ZUZ4bFdNdUNVdWor?=
 =?utf-8?B?SFRQcjc4MnF1a3FOakxHWGN4YitYWWo0S25KeUtWK09wRDIvcHBSazA0eFJ2?=
 =?utf-8?B?ZFl6M09La2ptTlQyZWs1ZkNpVWgwcy9FQmVobHBpMUx1M1lmZUZEcER0Qmpo?=
 =?utf-8?B?MG9hVDVyb1BaajU1Q29ZZEJML2Y4WEY1Mm1kc3I3VEcxeG1KcENZTUdHYk13?=
 =?utf-8?B?U0s2Rno3QlhKVFNLUzViWmZBRVBwWStOTThHODlJcnNJM0NIUG5ycjBvWml4?=
 =?utf-8?B?eFFhTFVjbWJ2OWY4NzJCenNra1RJcmNHWTM4VW9TTCs2NnBHTnBScTRtcnB3?=
 =?utf-8?B?Skd5WHhXNkRyVTVEc2MxNUo3NHJkemM2MEN4cGIrajd5VFljbS81VWI3VGR0?=
 =?utf-8?B?NVB6WmszV3JGSFIyaWVXTDg4Y2FMazY4VkJtLzIranUxcDAyT1BqMjJQbE0x?=
 =?utf-8?B?dDJsS25ZSXV5QmpkczVSM21CYkFYZGRSVnJQOVJnYVFUT0E2aG1GZEZYV3lt?=
 =?utf-8?B?Wm5IRGZXb0Y1VTJPYW5CY1pKUlBuVFJraCtkakN0SGhOS3VCYWhWTzc4cEdh?=
 =?utf-8?B?UXZxNE1oaHh4bEw4SndQbDJ1cjNaWTJMdVc5VkZad29lZzRsblQwN25seEh4?=
 =?utf-8?B?RUVsZDVrelR6MXNTQzJ1MGJBOGFqNjI5b1dDNis5dXNsVVVCaXN1TTdmRER4?=
 =?utf-8?B?U2xNdE5TTzJoNGZBdEtwd0doRHZ3K2xsejRhNWlUYWRFWXRNZ2RDSGlIRk1T?=
 =?utf-8?B?YTZpWmZHbHN3ZTNBQlBvTGVmcDFoeVQ3RUt0bzBKMTByVWVnclZ5bnkxb0ty?=
 =?utf-8?B?MnZKOFJPS3A0M1IvelNEandzbVlWQjdidHdCeFFSUnJ1V013T3U0ZHRCcS9i?=
 =?utf-8?B?TlI2SThGRHhBZFZrcnJHcWRDdSt3TjhWcjFlYllmZkFkYmVHSkZVUEkxVkYz?=
 =?utf-8?B?SGlhbHBVMTNPNnViMHI2RnlETFNmcXhNZkYwcHlPWk43TE5WZDVKM282TTd1?=
 =?utf-8?B?QUVaRGxMcjFxTnlCQUZIenhrVlNmNStBUEZtd0hzQTNRNm9INGtpanNXSnNQ?=
 =?utf-8?B?WmtvN0ZqUGN2Qkg2OEU5a1owUGJSUW94U0ZqaUVaczdEbExzV2xqdVI3TlEr?=
 =?utf-8?B?bFovdDRqUDJFRUlUS3VDUjlJcUVTUm8xblhvdFJRR0o0a0dldEpSZmphUjhh?=
 =?utf-8?B?enNHekkvYkJ1bWNEb2MrOWdnd2R5QTM0NjluaitubjJUK2N3dUpJZG1NcGRi?=
 =?utf-8?Q?JyG8Ze8Zx+t38raomzi0ULc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8004a1d8-2288-42a0-99d9-08d9a91b7ec8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 16:09:40.7152
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: E+j7MRXuMjryPxGu3eREMsEBzgp1oERYbNJmt1UqjTeNIaxcrcRVGJPLiTTk28gvP4vlVs9T1aklJjDdogagyQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2958

On 16.11.2021 15:24, Oleksandr Andrushchenko wrote:
> 
> 
> On 16.11.21 16:12, Jan Beulich wrote:
>> On 16.11.2021 14:41, Oleksandr Andrushchenko wrote:
>>>
>>> On 16.11.21 10:23, Oleksandr Andrushchenko wrote:
>>>> On 16.11.21 10:01, Jan Beulich wrote:
>>>>> On 16.11.2021 08:32, Oleksandr Andrushchenko wrote:
>>>>>> On 15.11.21 18:56, Jan Beulich wrote:
>>>>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>>>>
>>>>>>>> When a vPCI is removed for a PCI device it is possible that we have
>>>>>>>> scheduled a delayed work for map/unmap operations for that device.
>>>>>>>> For example, the following scenario can illustrate the problem:
>>>>>>>>
>>>>>>>> pci_physdev_op
>>>>>>>>        pci_add_device
>>>>>>>>            init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
>>>>>>>>        iommu_add_device <- FAILS
>>>>>>>>        vpci_remove_device -> xfree(pdev->vpci)
>>>>>>>>
>>>>>>>> leave_hypervisor_to_guest
>>>>>>>>        vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
>>>>>>>>
>>>>>>>> For the hardware domain we continue execution as the worse that
>>>>>>>> could happen is that MMIO mappings are left in place when the
>>>>>>>> device has been deassigned
>>>>>>> Is continuing safe in this case? I.e. isn't there the risk of a NULL
>>>>>>> deref?
>>>>>> I think it is safe to continue
>>>>> And why do you think so? I.e. why is there no race for Dom0 when there
>>>>> is one for DomU?
>>>> Well, then we need to use a lock to synchronize the two.
>>>> I guess this needs to be pci devs lock unfortunately
>>> The parties involved in deferred work and its cancellation:
>>>
>>> MMIO trap -> vpci_write -> vpci_cmd_write -> modify_bars -> defer_map
>>>
>>> Arm: leave_hypervisor_to_guest -> check_for_vcpu_work -> vpci_process_pending
>>>
>>> x86: two places -> hvm_do_resume -> vpci_process_pending
>>>
>>> So, both defer_map and vpci_process_pending need to be synchronized with
>>> pcidevs_{lock|unlock).
>> If I was an Arm maintainer, I'm afraid I would object to the pcidevs lock
>> getting used in leave_hypervisor_to_guest.
> I do agree this is really not good, but it seems I am limited in choices.
> @Stefano, @Julien, do you see any better way of doing that?
> 
> We were thinking about introducing a dedicated lock for vpci [1],
> but finally decided to use pcidevs_lock for now

Even that locking model might be too heavyweight for this purpose,
unless an r/w lock was intended. The problem would still be that
all guest exiting would be serialized within a domain. (That's still
better than serializing all guest exiting on the host, of course.)

Jan

> [1] https://lore.kernel.org/all/afe47397-a792-6b0c-0a89-b47c523e50d9@epam.com/
> 



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 16:10:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 16:10:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226423.391312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn12A-0000TQ-TI; Tue, 16 Nov 2021 16:10:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226423.391312; Tue, 16 Nov 2021 16:10:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn12A-0000TH-Pf; Tue, 16 Nov 2021 16:10:10 +0000
Received: by outflank-mailman (input) for mailman id 226423;
 Tue, 16 Nov 2021 16:10:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/Wk1=QD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mn129-0007jn-Ij
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 16:10:09 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab3a755b-46f7-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 17:10:08 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 52F8D1FD26;
 Tue, 16 Nov 2021 16:10:08 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3E01713C25;
 Tue, 16 Nov 2021 16:10:08 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id g6/fDeDXk2FPRwAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 16 Nov 2021 16:10:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab3a755b-46f7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637079008; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=Ypb1gZP/qFn/Nc2cwD8eE7gissGSLHhWjECL1VbKa7U=;
	b=f99V7TL6Gvztv0x03Hl4Jsm7qkYJxJVdGf4EyhKmFW0ifeC4fOY4lUxTToz5nQgSdHbbiF
	oN3n2lInJW0p8RTJ4M5NcIHf1zjzUDK3QDB62pmIDixuaSjEcp90pgCOmnipBRR/PgBQ+W
	frovXAlYe0UJ1K00hDgY+T4QawuYTWw=
From: Juergen Gross <jgross@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "Xen.org security team" <security@xen.org>
References: <a6cbc3b1-dfdb-ab22-a00e-09db81c25c3f@suse.com>
Subject: Re: Bug Bounty program
Message-ID: <a796699d-ff16-d236-d678-ad8bd638f2ba@suse.com>
Date: Tue, 16 Nov 2021 17:10:07 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <a6cbc3b1-dfdb-ab22-a00e-09db81c25c3f@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="Z0bHqhodIHesa6lxz8SgQbNCMT69XNA7q"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--Z0bHqhodIHesa6lxz8SgQbNCMT69XNA7q
Content-Type: multipart/mixed; boundary="j9S8WZ3q1M02g52hYGitPe1jvpHDbYOtR";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "Xen.org security team" <security@xen.org>
Message-ID: <a796699d-ff16-d236-d678-ad8bd638f2ba@suse.com>
Subject: Re: Bug Bounty program
References: <a6cbc3b1-dfdb-ab22-a00e-09db81c25c3f@suse.com>
In-Reply-To: <a6cbc3b1-dfdb-ab22-a00e-09db81c25c3f@suse.com>

--j9S8WZ3q1M02g52hYGitPe1jvpHDbYOtR
Content-Type: multipart/mixed;
 boundary="------------4C8717FF9EC678D9B5A449E9"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------4C8717FF9EC678D9B5A449E9
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 02.11.21 17:10, Juergen Gross wrote:
> Recently we (the Xen security team) have been invited by HackerOne
> to join the Internet Bug Bounty https://hackerone.com/ibb (citing the
> original mail):
>=20
>  > The Internet Bug Bounty <https://hackerone.com/ibb> was created with=

>  > the goal of helping to secure critical open source infrastructure.
>  > After almost $1M paid out for vulnerabilities in open source, we are=

>  > expanding the program's scope with more OSS Projects, and I=E2=80=99=
m reaching
>  > out to you today because Xen Hypervisor was specifically requested b=
y
>  > multiple partners.
>  >
>  > - Partners contribute funds to a shared pool, and nominate projects
>  >=C2=A0=C2=A0 for inclusion
>  > - Projects opt-in for inclusion in the program
>  > - Vulnerabilities are reported directly to project maintainers by yo=
ur
>  >=C2=A0=C2=A0 preferred process
>  > - After a public advisory is released, the Finder submits a bounty
>  >=C2=A0=C2=A0 claim to the IBB
>  > - Bounty is split 80% for finder and 20% to the project
>=20
> This is something we as the security team don't want to decide without
> discussing it in the open. We've brought that topic up in today's (Nov
> 2nd) community call. As maybe not everyone wanting to bring something
> up was in that call, I volunteered to write this mail to xen-devel.
>=20
> There are a few things we already discussed:
>=20
> - As a large quantity of security bugs is actually detected by the
>  =C2=A0 security team while looking at other security bugs, we feel tha=
t the
>  =C2=A0 members of the security team should not be claiming bug bountie=
s for
>  =C2=A0 issues they find in the code.
>=20
> - We are aware of the possibility that someone (being a contributor or
>  =C2=A0 a maintainer) might try to sneak in a patch introducing a secur=
ity
>  =C2=A0 bug, in order to claim a bounty for it later. OTOH setting up r=
ules
>  =C2=A0 for a (hopefully) never occurring case feels like overkill, and=
 we
>  =C2=A0 don't want to drive away potential new contributors or maintain=
ers by
>  =C2=A0 excluding them at least partially from the bounty program. So r=
ight
>  =C2=A0 now we are inclined to not setup further exclusion rules for cl=
aiming
>  =C2=A0 any bounties.
>=20
> - General consensus seems to be to let the bug bounty program only cove=
r
>  =C2=A0 our coding. Any vulnerabilities reported against the Xen projec=
t's
>  =C2=A0 infrastructure (web sites, ...) should not qualify for claiming=
 a bug
>  =C2=A0 bounty.
>=20
> Are there any further topics we need to discuss, or is there any concer=
n
> with above statements?

Seems as if there is no specific need for further discussion, given that
2 weeks have passed without any response to this mail.

As the advisory board is fine with us joining the Internet Bug Bounty,
we'll do that.

The following restrictions apply:

- Members of the security team can't claim bounties.

- Nobody should claim a bounty for a vulnerability introduced by a
   patch for which he/she has given any of a "Signed-off-by:",
   "Acked-by:" or "Reviewed-by:" tag. In case someone thinks that
   a special case needs an exception from that rule, it is always
   possible to request that from the community manager or the security
   team (before claiming the bounty).

- Only security issues in our code base are covered by the Bug Bounty
   program.


Juergen

--------------4C8717FF9EC678D9B5A449E9
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------4C8717FF9EC678D9B5A449E9--

--j9S8WZ3q1M02g52hYGitPe1jvpHDbYOtR--

--Z0bHqhodIHesa6lxz8SgQbNCMT69XNA7q
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGT198FAwAAAAAACgkQsN6d1ii/Ey/g
nQf/dKnM6uWmb0KT1lxvuF7z/qncr8fWqRs90vFDgD6McqCNHomGHuLQRqpGFt7R5MWJ2XNS8xZg
vn6hIc9d+SEswEmY2OZjV93xYsHyU0XbRmz3ZK4f9LhjELCXGARNHaBo0cdsMQ8ArljaddWHQbuD
ihXvnIiMiDr7bsLqZH0a1+8fFv1G10y920TmBzFSuSzkNX8ANbsxoGzdQ2oZCEUcwfqYC0SpAm7Z
hdva5DasyQmgjBcAC32cqOfmajsSljmGduSqp9Vn0VV1ohUXfm4Krnk7qjyGK2SWj5A+IX29731j
/1lXrsGKkJ1nnM4Z6wHmbX+FGYPZ/lQy+Rx3cTiflQ==
=iC6B
-----END PGP SIGNATURE-----

--Z0bHqhodIHesa6lxz8SgQbNCMT69XNA7q--


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 16:11:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 16:11:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226430.391323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn13p-0001JY-ES; Tue, 16 Nov 2021 16:11:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226430.391323; Tue, 16 Nov 2021 16:11:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn13p-0001JR-Ah; Tue, 16 Nov 2021 16:11:53 +0000
Received: by outflank-mailman (input) for mailman id 226430;
 Tue, 16 Nov 2021 16:11:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mn13o-0001If-AG
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 16:11:52 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e893b1fb-46f7-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 17:11:51 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2055.outbound.protection.outlook.com [104.47.9.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-8--gp3___SOBOMabdLrj6oeQ-1;
 Tue, 16 Nov 2021 17:11:50 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5902.eurprd04.prod.outlook.com (2603:10a6:803:ed::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 16:11:45 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 16:11:45 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0124.eurprd06.prod.outlook.com (2603:10a6:20b:467::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Tue, 16 Nov 2021 16:11:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e893b1fb-46f7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637079111;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jKaH47zIMbc//wK4qcmYNjZ8PfNlPttuXeOEVfSEpto=;
	b=DNcuw9sBjbNwUyytsoCcs5ky7OWBaJ2/rbGyje4wNp704sfGm72paxrWyAs5oyzjRYo5RM
	DW7TDHwQYXX0uBCxOjfNHQwtYh1wU3pRGEH2tniPmyAcTpOSoSY2X1kVOqRSzCe7DBywoG
	91GAncInupfdi5i6GdVfDVpB0iTqbQI=
X-MC-Unique: -gp3___SOBOMabdLrj6oeQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GsJJlvMIGbIxg+xLeUafVg03ABlbVy6umW8/QFwhCbM7kDbUI3B8bskmh6cYOl4WDeX2GHr0Mw7YbDHd7MbKv8wdbVHjO0+LPvGzrcsfyY2ap5vXdVd9EeD9tjC22vB1rUIhgjUUCk0d3fwQFDkYLKeT9l/WZ/UPv0rNZc7KR96uTC1jWSXUkUf9mRBxl1XFYf32svawzEMeOi3GW6WQuVJZjmTydelpHBHZ+UTnB4rWwjoph3l6c2ZADGOg9KG7NfdRe2UBKJmieJLznCExRnZD4M2WxdP9miNat9VG1e2LIG2X24h0yBmHU60W0elUSgLpOZkFhIoTGPyhoypFlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jKaH47zIMbc//wK4qcmYNjZ8PfNlPttuXeOEVfSEpto=;
 b=XSDqbaJLPacUUgHdvpWcBfhU2q9DtTHhf4Ct2YeCMWlBBTcTIcBLKkwbcs6L2kyJlZ/HqHIqW/AqpXonp77cobl10kmQ/1GRnYW0ivi0s7FKN5YWctykjD8Aad+7m0AVRFG+JiFIzoVweq10k1lK6NIAxQbEhlzsUIwDCmBvkOG2xMu+mcHxx42LYQpzJBra8h6MEvqenJrA0w2EHKiDALCa/25k7FUUE12whBgvvHGzqsIKHdnN/Euck2wkNY/MvOWqlr+eeKz2QvZaPf4lT86wWPRx8zxwxShulC22ioGZq+0aa6tcdHCU3Rw96yEVTsT6VvA144ADqYXm+IfaEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <db75423a-bb59-6536-20ce-fc9df89149fe@suse.com>
Date: Tue, 16 Nov 2021 17:11:44 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
 <3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com>
 <010fa02f-e561-e7a8-9638-5246db9166b4@xen.org>
 <725F3F68-A1CE-42FB-9C8A-0700CDD02E8E@arm.com>
 <a07ff375-b910-0d73-e957-15ba9d2535fe@xen.org>
 <alpine.DEB.2.22.394.2111151359360.1412361@ubuntu-linux-20-04-desktop>
 <1606F25D-53BF-4350-B065-B1FAB525F6A1@arm.com>
 <24979.51557.253278.46402@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24979.51557.253278.46402@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0124.eurprd06.prod.outlook.com
 (2603:10a6:20b:467::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5fb988c8-9230-40d2-5eca-08d9a91bc950
X-MS-TrafficTypeDiagnostic: VI1PR04MB5902:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB590297BDD2C824724C4B9455B3999@VI1PR04MB5902.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hTd9Q+8fUIe3h7om3q8L++KKlCjJFzqaKlCrteHMzb44GeuIjRjMS2fXKZRXEWkf0tfT9fq+5wEwDfYvF9W8lrk+EyecL5AxJcTH4UvuEJZKphQ5oweIxMLRVALmpsTVM1XPz8rKfxugrYrJrvti2No8cXzi+5cLtkgfgFgRdSIXBWKX7xz2LGMvbv20zRnrkhTw1W3B7avrRUsvKgsZAfKOOmoYs2c5Qkh9xPRtS7koaneDZcUmfM7CAGC4PF6r9Xo7WILJt6JTxNLZZUZ7TugfPMwrbz7dFJmZLQwFoo5omXIgREOd/H7jIbwaOvXUWR/mezufrzG6oO+U7s9l7QutxxNeGk6tdp5xod6z9Dqs9iW4iz7pdWTqaX9LT+QDdXAsMgeucbwI/0IUBGWetXssKyvOawnqIaWgASttNJAK0VCWjYf4t5AtAlsS//p7fQgQuORYeqjcnqmww+EAduMmPvswjWoKGJ3FXq4ENLUgOfqgxpm+fNmmpA+uPKkzGZzqLG2MzMqZGTKDe1vVaZoBSfPHqdSmoO84Aux8C/PsH8PhkwdhY6kZlcRfNKmnMEPbHntE50v3O6pV6V5vBVOEcxddl63yrBKgGVgZgKDvyiqO9QG8LpKGGHZ7WE4xAnYG07qc/M+7L2m3lGFCKSM7ugi3sqO/qCE+6fp7erVMYqc9enE4Nq98S9t9h2VbC+vcatXOXZF5V2os2EdPYK8rsV+ZOI0GCRlL/+jTL7g=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(4326008)(38100700002)(6486002)(956004)(31686004)(53546011)(16576012)(2616005)(36756003)(31696002)(186003)(6916009)(8936002)(316002)(5660300002)(26005)(2906002)(66946007)(66556008)(508600001)(66476007)(54906003)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N0RoOHNLc3JvZURuc1ZRNUMxQ3BSSW9CQzZQR1MwVHYxVEYyeUkvZHJFSGNu?=
 =?utf-8?B?TU5uTmg0WHh6U0t6d1dkc1VoRlRkbmorVGFBZ1VYNHRFUSt1RnVuQ0NVa3pI?=
 =?utf-8?B?QkxXcm55bXRDUFcwTkVCZnRnUGJ5TmIyTFVHQldEWmJCL3Ywby9pakMrMitu?=
 =?utf-8?B?a2RyRzN3QmZOZ1lmKytrVUhqL3ByeDV0YlZRTkd0dmxoSUdxaUJ6WTZSUzhU?=
 =?utf-8?B?WmVrQUxBRi9rR043a003WlBHaXZNbVdlYy9WVjQ3Y3pxeTdPMjlVNWF3K2da?=
 =?utf-8?B?UWtjS2dQRUdjdVN6Mk8vVnFZT1ZaSFpwQkk1bVBHdkpzZ3E0RlFxaGxJWGZH?=
 =?utf-8?B?TU5aRHdFS1BoSWZUdGVhK3FQWThUaXRKb01BMFBIS3U5QW1jTXFKMjhmNVcw?=
 =?utf-8?B?dTFBKzF5M2FWSXphazhUUEIzbEJTWWplWHJVbmhIUFN5NGtPNkcyMERoU1l2?=
 =?utf-8?B?NkF1ZHYwU3hxRzRJaTZtcjlUSWw2R0xpYTBvc3dXUzBydklxSUJ5M1F1aVpQ?=
 =?utf-8?B?OHpwMHJ1TS9KS0tlR1VHOWUyU3BaMzZ1YzFLWFc4NVJzM3l4aHY5Y20xaTd4?=
 =?utf-8?B?S2xqZFVQM2piVnA2K0VZNTZ5QmdFWTRTNWFrUkJrZy9UWDE2d3M5SVhFODZj?=
 =?utf-8?B?QUxkZjh4aEk4Vi9wa01JZkEzY2pGZTNtRnYzaDQzQnhwRzc1RURmZXl6c1Fj?=
 =?utf-8?B?SWcwdWFuSGhQTHZOYmQ5ZWt3MS9yeUNpdEc4RDR2UjF1d2RkSnp2WUlNdkJk?=
 =?utf-8?B?K05sR2ZJeU5HbXpSMjF4RG5VUHhnZDVvNlVJcFZ0ZTJTUjNCbmRJYXBSMXYy?=
 =?utf-8?B?RVlvNGxUUWlDYmhqWm11ak5JVkpETVk3RWlsblRVelFwaXozb1gycTdzQ1NM?=
 =?utf-8?B?bVN0OC82RUVnblp3QnBCODZrZEJRSVZvdURHeHJHM1FqMkIyeHE2UkJLdmZD?=
 =?utf-8?B?Y0w4UXVic0NzY3FkcHRjbjlGOEZEQ2xnamJ5Znh3dXhReDJ4V2ZKSmJnaW04?=
 =?utf-8?B?V2VkU1U5emVjNFpaLy9zYS9HbGJ2QU91RXZVS3dOa1h3SUFGTlYvMlUzN3Fw?=
 =?utf-8?B?dnZMSUJjcTZwSURDY1pneFdLdjFtSDNYTms2ZVFFVXYrTlcrd05OY2RxcVVv?=
 =?utf-8?B?Z2t3N1BscnpubmVlVGV6cU41Z3QrVURBblRWb2cyQkorbVB2YnZURGRxYVBV?=
 =?utf-8?B?dk02V0xQeDJSVXRHK0xCVkZPd2lDbThTMWF6SzUvS0pmZjAzQ2p1WitWRlBa?=
 =?utf-8?B?Z0VqSmRtWUdqY2V2YXhJSUt4Sm5RVDI3VlJ0c1FkMHhxOGVEaEJMTFVUK3pZ?=
 =?utf-8?B?dkttSFQxUytQWjFJdDRqRzU0ZGNhM1FMYjEydGZhTFpXaFhVOUhyMmlzVFYw?=
 =?utf-8?B?M3NIL2I2Yit5VXgrWWkrcFdZRkREVmRQYkdsKzB5M24rQ0pFYm1HanlSL3VS?=
 =?utf-8?B?TWMxQmNLNWE1aVpkVVRRUDZldDFiMEFQZkZFUGE5NVZRTWJSa09qN0pPeWdV?=
 =?utf-8?B?SFBRYVdielBzRGRUekNvd1FqWmEwNml4UGU0ZFVOVXpQSExXb0VwWWlOU2h3?=
 =?utf-8?B?TkdHOWtNSjVnampnRUZ5blYxVXhjZG45SSsrYkwyVWdaMkFROFhROUlFeUtU?=
 =?utf-8?B?WGg0Qk5pbERLU2xCUUtYK0dRd2QxTW0xY1E0dzRVNm1PMUxVWkxrZlBJMmVw?=
 =?utf-8?B?cUl3ejVlMGVweFlSbENNQjZKV1ZLem1RNlMxT3doOXJwZU1TbDd0VnBTcmxL?=
 =?utf-8?B?amZtVUdEU1doWE4xRk90WEwxaGxnNWhHTlE1RmV3bjYvWEFzRUhOcGRvb05O?=
 =?utf-8?B?Z0RDUHZlbFE2K1hNZEdVVnpKMEdqV0tYbXlQQVk5MUN6anRjb0FrT0c2dy9j?=
 =?utf-8?B?NGljVk01NHJZWFdzcGJoc21XVU0xSnRUSzVVRFZJWXBjYUNZY2hYbFVQRitk?=
 =?utf-8?B?NXJhQmdQckJra3FMdnNwTUoya2Z1QXlYcllFYTdQZVMwbjBveXFVb09kOGFP?=
 =?utf-8?B?ekRBcFZMSytXczlkdE9OMWRPWTNrVWpEZzNZeW8vT0RwYkdYM0Q0V2owZGtk?=
 =?utf-8?B?akViYVR5aUJ6TWNKUEt6WVMyeitaT2VReExZWFFrdjkySXJ0TXJzVS9xNk9C?=
 =?utf-8?B?cGJiblM0QkFyMXgrSm5Ua0ljRk1mcTRsdTBkenA3UTh1NHFqKzNQOHFTd25q?=
 =?utf-8?Q?XHdTTNSdhjforTbXX3acPm0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5fb988c8-9230-40d2-5eca-08d9a91bc950
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 16:11:45.7953
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: p7VHpzwvD+5tfqBUYmdIILMEv4FFPL9ZujDG7Ua3NeywqFUqp50JGuJeaep6J5JZYystQ0UgyF6/sq47y1U2Rw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5902

On 16.11.2021 16:08, Ian Jackson wrote:
> Luca Fancellu writes ("Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64"):
>>> On 15 Nov 2021, at 22:00, Stefano Stabellini <sstabellini@kernel.org> wrote:
>>> On Mon, 15 Nov 2021, Julien Grall wrote:
>>>> That would indeed be better. I'd like this patch to be merged in 4.16. Would
>>>> you be able to send a new version in the next couple of days?
>>>
>>> I'd love that too; adding Ian so that he is aware.
>>
>> Hi, yes I will prepare it and push very soon.
> 
> Can someone explain to me what is going on here in management-level-speak ?
> I have read the thread and, as far as I can tell:
> 
> There was an actual regression with Grub2 on ARM64.  This was fixed by
> 9bc9fff04ba0 "xen/efi: Fix Grub2 boot on arm64" (committed on the 5th
> of Novwmber).
> 
> But there are some objections to parts of that patch, from Jan.  It is
> not clear to me what the status of those objections is.
> 
> Was I wrong to think that Jan had given an R-b ?  Had it been
> withdrawn ?  I apologise if I committed a patch I shouldn't have.

FTAOD that patch was fine to commit afaic. My concerns were addressed,
but further concerns had been left pending.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 16:23:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 16:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226435.391334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn1En-0002my-FT; Tue, 16 Nov 2021 16:23:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226435.391334; Tue, 16 Nov 2021 16:23:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn1En-0002mr-C4; Tue, 16 Nov 2021 16:23:13 +0000
Received: by outflank-mailman (input) for mailman id 226435;
 Tue, 16 Nov 2021 16:23:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mn1Em-0002ml-8H
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 16:23:12 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn1Ei-0007wb-Bj; Tue, 16 Nov 2021 16:23:08 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233] helo=[10.85.43.125])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn1Ei-0000G2-58; Tue, 16 Nov 2021 16:23:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=wuv89EBRSJv+AgaQLaZ0tKe5JZaIDN832iKx1103IdI=; b=VEGfYuNsk35XN16Jq/OsfU2R8M
	XMQU6Dm/AjC4ytNP2wVeSCJ6u7tpGMA6dJt3ABzKaqUq6cm0ZZ77hGbyJsDwfbRCpnuY8vNRfNVr4
	Op344olMS425dxgdE5D+EXi+itv7Kkw5Wj6nNzoPM9LM99AnkxXVorZq/7UHtaJGrfVw=;
Message-ID: <5f5dae42-795e-66cf-e21f-d92e33bc369c@xen.org>
Date: Tue, 16 Nov 2021 16:23:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64
To: Ian Jackson <iwj@xenproject.org>, Luca Fancellu <luca.fancellu@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Jan Beulich <jbeulich@suse.com>, Bertrand Marquis
 <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211104141206.25153-1-luca.fancellu@arm.com>
 <alpine.DEB.2.22.394.2111041431070.284830@ubuntu-linux-20-04-desktop>
 <9E52FA33-422B-4B1C-A6AF-601CDF565700@arm.com>
 <alpine.DEB.2.22.394.2111041449180.284830@ubuntu-linux-20-04-desktop>
 <e4b2e1be-0e41-0e6e-5ea8-3c12b4593724@suse.com>
 <alpine.DEB.2.22.394.2111050825240.284830@ubuntu-linux-20-04-desktop>
 <9bd58aa4-602b-4c64-e759-581513909457@suse.com>
 <alpine.DEB.2.22.394.2111081805530.3317@ubuntu-linux-20-04-desktop>
 <191dd1b2-8e2a-ee91-f401-dda4fabf4c7c@suse.com>
 <alpine.DEB.2.22.394.2111091350510.440530@ubuntu-linux-20-04-desktop>
 <3B8E0C6E-0522-4F73-B6C2-827FA45C87BA@arm.com>
 <010fa02f-e561-e7a8-9638-5246db9166b4@xen.org>
 <725F3F68-A1CE-42FB-9C8A-0700CDD02E8E@arm.com>
 <a07ff375-b910-0d73-e957-15ba9d2535fe@xen.org>
 <alpine.DEB.2.22.394.2111151359360.1412361@ubuntu-linux-20-04-desktop>
 <1606F25D-53BF-4350-B065-B1FAB525F6A1@arm.com>
 <24979.51557.253278.46402@mariner.uk.xensource.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <24979.51557.253278.46402@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 16/11/2021 15:08, Ian Jackson wrote:
> Luca Fancellu writes ("Re: [PATCH-4.16 v2] xen/efi: Fix Grub2 boot on arm64"):
>>> On 15 Nov 2021, at 22:00, Stefano Stabellini <sstabellini@kernel.org> wrote:
>>> On Mon, 15 Nov 2021, Julien Grall wrote:
>>>> That would indeed be better. I'd like this patch to be merged in 4.16. Would
>>>> you be able to send a new version in the next couple of days?
>>>
>>> I'd love that too; adding Ian so that he is aware.
>>
>> Hi, yes I will prepare it and push very soon.
> 
> Can someone explain to me what is going on here in management-level-speak ?
> I have read the thread and, as far as I can tell:
> 
> There was an actual regression with Grub2 on ARM64.  This was fixed by
> 9bc9fff04ba0 "xen/efi: Fix Grub2 boot on arm64" (committed on the 5th
> of Novwmber).
> 
> But there are some objections to parts of that patch, from Jan.  It is
> not clear to me what the status of those objections is.
> 
> Was I wrong to think that Jan had given an R-b ?  Had it been
> withdrawn ?  I apologise if I committed a patch I shouldn't have.
> (I have a vague memory of some conversation about this on irc but
> nothing about this seems to have made it into email.)
> 
> AIUI from the thread, most of this discussion is about a followup
> patch.  I don't understand the nature of the problem the followup
> patch fixes, or the risk of the followup patch.
> 
> Does the current state of staging have a regression or serious bug ?
> Who is affected by this bug and what are the consequences ?

I think there was some confusion from my side, I thought the original 
path was not committed and therefore we would respin it and fold the fix 
discussed. Apologies for that.

Given the original patch is merged, my view on the new patch is 
different. This is improving performance during boot. While it would be 
a nice patch to merge, I am less inclined to get it merged in 4.16.

That said, the 4.16 tree will be re-opened for backports soon after 
4.16.0 is released. In the past, we backported performance improvement 
patch and we could consider to do the same in this case as well.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 16:25:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 16:25:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226439.391345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn1Gd-0003Mt-Rq; Tue, 16 Nov 2021 16:25:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226439.391345; Tue, 16 Nov 2021 16:25:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn1Gd-0003Mm-OD; Tue, 16 Nov 2021 16:25:07 +0000
Received: by outflank-mailman (input) for mailman id 226439;
 Tue, 16 Nov 2021 16:25:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TA58=QD=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mn1Gc-0003Mg-SW
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 16:25:06 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20616.outbound.protection.outlook.com
 [2a01:111:f400:7eab::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0f40664-46f9-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 17:25:05 +0100 (CET)
Received: from SN2PR01CA0001.prod.exchangelabs.com (2603:10b6:804:2::11) by
 SN6PR02MB4560.namprd02.prod.outlook.com (2603:10b6:805:b0::18) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.26; Tue, 16 Nov 2021 16:25:01 +0000
Received: from SN1NAM02FT0037.eop-nam02.prod.protection.outlook.com
 (2603:10b6:804:2:cafe::55) by SN2PR01CA0001.outlook.office365.com
 (2603:10b6:804:2::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Tue, 16 Nov 2021 16:25:01 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 SN1NAM02FT0037.mail.protection.outlook.com (10.97.4.243) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Tue, 16 Nov 2021 16:25:01 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Tue, 16 Nov 2021 16:24:59 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Tue, 16 Nov 2021 16:24:59 +0000
Received: from [10.71.118.222] (port=14959)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mn1GU-0001Yl-Uh; Tue, 16 Nov 2021 16:24:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0f40664-46f9-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oQft9rkaip23hTwR8zPyk0S8SGzLM7DOTabsgmFu/nrL8IsOowz62JSE4+iad3i5vByAW1kk9vbSBZcwowtCy/qj+XL7/MJ8/NtUvrq/wZsCmU9NVrhJtY+UDTCBIAWdNyw256n8NobQU6/C9ytqSE5EUwhUrny3M+6Dwi2oQv606X21ftltkTpQUSWcJYQp669UDCcz4JTdVp1BokXbd6NCLg2RHzVh9nygjlQCtUaB3p6YOxnROXsyIq5Hu0wvhPCruM3IHA9g8LXX05NixUeM3dH1HABpfMJm779PwSUvX08hLCrM3T9njseTZJTa4SC5nKcA3E+67h95VxqNmA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jfvvNpiAyBPJ3kM7RPfPC41lPRykZLvt3wo9b24Cc7s=;
 b=ZEQ+KhL0eGxQaLAmsmfGXQ7Rf2B5A4lBRJ6S5ga3eROQDufC2mZ5Kzl8VMpJ6s/ogQMipq3qx7f+kbOUPHNTFlbClq5AuU4EDqG5rw9/YpoDZfuk1q9DuzqdbuU/qTplkuqpB09ZpLiFz/83oaWCRpYuIn/wSDNNoFNNANx5vBC9j/ppldlxbn4c0HuG5hzYWJPFsyVbQEBI/zWKXJFu3dp5/ajPjwo30XnKA6/zU3ZkVu5eAVHX5880Jehe7bXCqFvhfrXSMtcgCUt4kXMo6b/hT6ehVJxNOWBOZ7aU+8OZWQV7AosmyIIgsfziu6q0PuITzfaQqvOEaws3MrwtOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=arm.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jfvvNpiAyBPJ3kM7RPfPC41lPRykZLvt3wo9b24Cc7s=;
 b=j2b9NNo4byn4ExPUnzLsUjihEbXJY2ZXdR/qAFk2tofoaBKDmR2/810Ln1WxNv/oqLRO3RyG3gHoXA1+fLNtS6IYzebrZMb2EpCSIFbfQe0PX4G2XPgzShmCvzWbychjE5yafpJ8sAVu2G+yJLwErsE+NhTS+yGJFiNSFu8fskk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
Message-ID: <f91fd718-040e-88a3-ca96-30d1efe9a689@xilinx.com>
Date: Tue, 16 Nov 2021 16:24:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: Xen/ARM - Query about a data abort seen while reading GICD
 registers
To: Bertrand Marquis <Bertrand.Marquis@arm.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com>
 <CED537AF-44AA-41B8-9458-17A5C43FBECC@arm.com>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <CED537AF-44AA-41B8-9458-17A5C43FBECC@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3fc01640-c5fc-4a7d-d396-08d9a91da3d9
X-MS-TrafficTypeDiagnostic: SN6PR02MB4560:
X-Microsoft-Antispam-PRVS:
	<SN6PR02MB456005C7B7F9735BB7D6FA26B2999@SN6PR02MB4560.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	QZldE0RwkNStmSUMxmkXslxJXoeqyx2gPzwqpdmrov8U+4dqa7qIf8fOqSxWXnUpP8V38XMAX0Syy9lP3UGStEm0X9PH14ilLe/6buQfunZ11FBdss7QB9Kf1xOY4liP0EGvy1uuVJAPvPexFqRWqz1lbxu3bZgvKs+Yigc/oONl8zmkXVXbINaadMgVzUkW4ytPMi9jrMKVCdNK2fQO0VQmNjQZEgLvNdadRmbdlsUJvBGzB/LGsJSA27Z0sXGhgAzJgfnbNrfUOQjq0Ri02J2cVNRGDyD9OICACV/54Q6LUDXiHj+G56iIT6uZjtSXCzTWYGiCV9d0x45R/lxhgtQPNdsI2bFygqk+MvRZgxrNyGs/lfFu74jJoSZZAKGqHczV8FZvu4HaqqMxn/irLXrB0QbJEAJklH7RL1j6vaBFgmRrdeuzPLfIH0lNJX1+lRETUr53Bis9PiUv/J/uy5kJ+gh9H75gu3kJAieg1jwAJdcWOhfEyGDagB5yjoRueEdAEUCDDnj0Gw+ASg328JFNMwDSRXu6TCG3oN2UuHXSexxkzcaIDyrKY0Dz+OtgC6hae5kSO9k9+jJ8QJKy0RCWnW05xqK8z4bUSiaNTk62QeAqLBYgOXwdcdrmAPlsdVjDFFInjnK1dwqjh2DuyBMuubJsuyy4s8noV6xQTPxfnfJjTWXKv3MDOK6V1Uk9da6vqFsigCwiVl5oFBemU0jA6i0ezRiSsVqF+cOCY/OUPK9t/3yB7iazcMWLCwy0DhsCvUXpn6N6CKcUwMROJA==
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(31696002)(36860700001)(336012)(53546011)(36756003)(2906002)(186003)(8676002)(426003)(9786002)(4326008)(5660300002)(47076005)(8936002)(26005)(2616005)(70586007)(508600001)(110136005)(31686004)(70206006)(7636003)(356005)(36906005)(82310400003)(316002)(83380400001)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 16:25:01.4964
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3fc01640-c5fc-4a7d-d396-08d9a91da3d9
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0037.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR02MB4560

Hi Bertrand,

Thanks for looking into it.

On 16/11/2021 15:36, Bertrand Marquis wrote:
> Hi Ayan,
> 
>> On 16 Nov 2021, at 15:27, Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
>>
>> Hi Xen/Arm experts,
>>
>> I am facing a very strange issue while running a baremetal application as a DomU guest on arm64 platform.
>>
>> The baremetal app tries to read the GICD register with post indexing as follows :-
>> ldr x1, =0x3001000
>> ldr w2, [x1], #4 <<<------ PC = 0x40000ca8
> 
> Increment on on load is not supported by the emulation layer.

That is surprising. The reason being if I try to read the GICC register 
(0x3002000) with post indexing then it works fine.

Can you point me in source where this limitation is set ?
> 
> Could you try with:
> add x1, x1, #4
> ldr w2, [x1]

This worked fine.

-Ayan
> 
> Regards
> Bertrand
> 
>>
>> And then I get :-
>> HSR=0x92000005 pc=0x00000040000ca8 gva=0x3001000 gpa=0x00000003001000
>>
>> This problem occurs only while reading the GICD registers with post indexing. If I read the register with pre-indexing, then I do not see any abort. Alternatively, if I read GICC register with post indexing, I don't see the abort either.
>>
>>  From the HSR value, I interpret it as
>> EC = 100100b # Data abort from lower exception
>> IL = 1b # 32 bit instruction trapped
>> DFSC = 101 # Translation fault level 1
>>
>> On debugging, I found that the abort is triggered from
>>
>> try_handle_mmio()
>> { ...
>>     /* All the instructions used on emulated MMIO region should be valid */
>>     if ( !dabt.valid ) {
>>
>>         return IO_ABORT;
>>     }
>> ...
>> }
>>
>>  From the Arm V8 Arm specs, I understand that dabt.valid is ISV, bit[24] in "ISS encoding for an exception from a Data Abort".
>>
>>
>> I saw that the caller is
>>
>> do_trap_guest_sync() "case HSR_EC_DATA_ABORT_LOWER_EL"
>> where dabt.valid is false.
>> In the success scenario, dabt.valid is true.
>>
>> I could not find the caller for do_trap_guest_sync()
>>
>> So, can anyone help me here
>> 1. Who is the caller for do_trap_guest_sync() ?
>> 2. Any idea on what the issue is and how I can debug it further ?
>>
>> Kind regards,
>> Ayan
>>
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 16:33:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 16:33:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226443.391356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn1O9-0004nj-LP; Tue, 16 Nov 2021 16:32:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226443.391356; Tue, 16 Nov 2021 16:32:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn1O9-0004nc-IE; Tue, 16 Nov 2021 16:32:53 +0000
Received: by outflank-mailman (input) for mailman id 226443;
 Tue, 16 Nov 2021 16:32:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Shi=QD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mn1O8-0004nW-61
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 16:32:52 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d73eb3d6-46fa-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 17:32:51 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2056.outbound.protection.outlook.com [104.47.6.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-1-d2Dm141oNRGMOdAjKkrGow-1;
 Tue, 16 Nov 2021 17:32:49 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6176.eurprd04.prod.outlook.com (2603:10a6:803:f6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 16:32:49 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 16:32:48 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0301CA0023.eurprd03.prod.outlook.com (2603:10a6:206:14::36) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Tue, 16 Nov 2021 16:32:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d73eb3d6-46fa-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637080370;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Urt21Jy6oyL1rTrzNJtSPVrWuBplYhoH2CsCOmYZ5Fg=;
	b=cN8gh+KZRDiXmKkv15jJzATsA2bMB5F1DiKPyFh3e56I50M4Er1lcLHWUYBRM0gV6TGMTm
	nv2o3RW7UzqTFgkEViPSjnCsX7g3wXsOtOVFUusOExz1YAEQayjPktd11tNSAwtX7c24eP
	RyTX1HDxRFPWZLnLcLa9iyqtvNT9SCw=
X-MC-Unique: d2Dm141oNRGMOdAjKkrGow-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eBWZSU9OXKZgaY+yaTN/2SVzPR2wsXcbou7jmJYGCGkpH5PSrlL2ubNpRt1gA4eF8mA+gnGIW1EyexycWqS3C1PLKb2NY65uRRP02inDc71NrxAyQ81nuZFJBAK2SJOeut4kIkILDE1dJii/+POsTcHglF2N8wiJDVb5TCr9tHZmnORdRJTCbbFPlE17IjEOpUQOhsakrxnu6F2xb8SXDNRM3ahh7B+R7r+3L0xAhktwfEhdp94FMhxiDkPRLtH5vaFpksufdGFdfV0H6P5cjdprmbteTWPMfbbdtkbAZSst4Lz2eJZ53zofaPkKMZV9PMLhOu7WqpQzt1DUztaw6w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JoV8X1/COFGdLD4+5W0MeVZ/soAz6pSDxROS/1Zcmvc=;
 b=eHdG+8yBdcN45cDpnoQubWTZr+zzg66kDeQKm8MJOOA1m0CaZG1f1qAnNeVF+Ba+PQ4UbS9RIvr1AiA0WJ+zH8GR4ff2/71lV2vTaDD2XMCh+ylQmAxJqSq5y08V8jPAVnRtzBVGnz6XYCLwB+9ouBvZvS6oyZFOwBSRcK8PR3tq/Q1+DC07bCUAbXTt97TCK2CmnR9qZ2GuGJHs2MPIogoul1RrMNteXpiSpp1/0XHDVm/nomBBbhWpLKoKvJr76KmV+VxCXQJ0SxHCTjfC+qyfu26xsA6KRgehM0I/mqVRY8OKXSx/Cp8+TVhWUy91a3AwtQBMuZ8s4VoqWBhsGQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bb8f9629-28d5-cd24-b3df-ba392f468066@suse.com>
Date: Tue, 16 Nov 2021 17:32:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] tests/resource: set grant version for created
 domains
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
CC: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>
References: <20211115105106.928-1-roger.pau@citrix.com>
 <24979.49870.437400.419375@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24979.49870.437400.419375@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0301CA0023.eurprd03.prod.outlook.com
 (2603:10a6:206:14::36) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6c76ec3b-d15e-4eb3-96a9-08d9a91eba07
X-MS-TrafficTypeDiagnostic: VI1PR04MB6176:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB617663DB046E362452901E93B3999@VI1PR04MB6176.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hwotfV4yRlN+que/E+5leTj08r0O0y8vph7VcF6TceAgdgiCAlT1Z074kjNDSyIcMT68jwmYLxrhAMga3tEwQ8z9VsPKNMV641+Az7g5kR08CpHiTE68rZDLn5xq8UCcQc6WJtOnRZwsZ1/PYYuwPqD24PQzlH2MbM1uh2bM4TqjTZU4+xnT6ngA7O5RMKvEUHkhDqBtKarVzU9FXCWXLdTqGuVdRj2LoMG2i5h55l7jrkVlDADhbRTAvx/MrBy9TXdEHOLXS8WPJw77t5kpTMwz8IMoKLYI6H7aKDIyEImj17l0emsrE7q3m4uiyCHnNGiZyXva4+vc54qip4YgLwQ2E/JKpIvZQt0q55xFL7LyQ4tJbMSPasdFN2N3R9lOVQ7uHpah8QQCFoFPsD9Jm1zaaVHo5UQVpZeUczbIppnGCr/BxjMpKejEt2Xmzl8zQ/jW4haK9XyLTP8fq6DAzEie2mxDVnXWUCuXRDgGR2I+vfuWbQBgW0lsKjiUKo9lUzqdInpiBwo2WuDh2V9cpXwZgsBcfUpeFyr4jaEQw3fXU1MIWBs87TMS0Oj7jh+mYaYVtJc7scSm+/sMo5s/iNFn+cGixOwzYWctonVc/5NuKmNp7UkLEJSubtA1SlYtFRGDNCvPfSaZxJ8vBBaSdEx97+7du9XomBdyHok93zt1VLF95vNF2xDjdNXFnfNsCYC/dgoLy4QHDkR39LvJkWNCMaGDq1vw7FuV080sM52KAMwARwFuWwXCfZgwRJ2Y
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(6486002)(4744005)(36756003)(186003)(54906003)(31696002)(26005)(4326008)(6916009)(53546011)(2906002)(5660300002)(66556008)(66476007)(66946007)(86362001)(8676002)(8936002)(956004)(38100700002)(31686004)(16576012)(508600001)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?rb8L+aP2FBJwipke42cwxTNKvSjyXagrK2JzX3evNXzLBO7MioZ0yP1w4F2A?=
 =?us-ascii?Q?Ze7qpyisXi5GzhuMxG0y8G7JfONz/rWlOU56CsRVT4A5SHsrkSYQANO+Wy4V?=
 =?us-ascii?Q?2Mrxc4FReCjXaYtiwfxDDNPAGqdEcEaxtLLQmHzm+dUV+IIBiwYNCopwsILy?=
 =?us-ascii?Q?SCGO7oSU8LHoqKIjKWrnCXlQS2K7Qj3Um/Jq6HZdhqgiTx1BNXFvftND5VhC?=
 =?us-ascii?Q?0xjgwNnZiO7nV9AVbWPuVJek6iLcVFilNCAEY6aq4P8sOF4hVJNL11yOBM1v?=
 =?us-ascii?Q?uc/T9xL/M0GyLJxzIrcbBz7sOiveLdBQBv/iuRB2eYwky+xxg8u/LMoaE6SA?=
 =?us-ascii?Q?+3TelbnHlf1TxOTdTqFWtLHyldeHnobkIzEy7OXaz0/HbU/7oQ2UIh0sYyWL?=
 =?us-ascii?Q?ccpMdlQwhGhuoMjwUajkz7RdNBKBHwIVDfyLzwYhKTubrX4dJLMLeWQwquSR?=
 =?us-ascii?Q?xbyUPUnAjDse/PonuDd2m4fSEfsNTjMcOpfW9/XHYDMADGT6ZMN1oiXOqsNS?=
 =?us-ascii?Q?ilQN/5ukhJx8qMP9hQZs+aKtGCwxkIWsMqna9caQU2Wn+5DRSHGWpWQqadYP?=
 =?us-ascii?Q?NBDNWsC8y2o94UiE5Un6q5B3K3ufgypTnZ/NyiR/f62UOw2JqKsEgpNjFzF/?=
 =?us-ascii?Q?iEolA8DwKiqvOuGSZboaa65Bsmc+11RmEjzp/1uuH1Z+Dkl9spTIzo2RTKYh?=
 =?us-ascii?Q?RSa26hdNHCOSRAfICJ1z38C+VPYt9a3Tr4GNyp3yrDfgLolfpPH1JwM/oq1G?=
 =?us-ascii?Q?0aS7qjpZVFMPSAn+wZg9HU6lmc3Abi0cD0Bp6aol/Z0p7qJRaTNC9bbd1wx+?=
 =?us-ascii?Q?Zg5U+7CsFncAnlrWwhsrCrc3NIo1ckSNP5IkvtKIh7CKPsuAubMcKyKIc+Br?=
 =?us-ascii?Q?SrBAwYSW//VsWrYAOguzILVPIAVwf11b5XgdB6XICRpdaurbt40gcVYr1R80?=
 =?us-ascii?Q?ydpNjnZbs0OrfEE+aLXUcF+d/Fbfsq47J8bl3x+0u02M0H93VAZ4NROEk/x1?=
 =?us-ascii?Q?kxlkP8HWmfxyXsTR9zJErmGSpGHpiyWglyCjlmFs2DJNiVgN5X0ukZAoO9NE?=
 =?us-ascii?Q?pKSwSnnR4MFTyMVQRxENtN/M+vKWwtjUvJUWlLAfjel2RLV4pPx4TMa/IW0R?=
 =?us-ascii?Q?0MJJpbPkFQ+1fOqbCD0IrclxqF0ecKOjN55E+rjIeFLIllH/wOVWzxJjUW9A?=
 =?us-ascii?Q?osLrVtwwgZ3di72HT5T0GEYXQjqdiDubIlhi4TUP4stsB8MO6yiEsituzdBU?=
 =?us-ascii?Q?EbQgAW0CSXS6n7OcsVFNalZ3vIBaBnyZUJPZU7tsfpoT8LvBoy1BGPaBDS/t?=
 =?us-ascii?Q?Iv2ECqPUciXvBXRKw0nzR6CQ9iiH6lqI1097iT1H0Jq/aNT47WOnokoe/Rpd?=
 =?us-ascii?Q?9/FiaJ0GB/WQ8CgeEQN6EBWLE85uRKmecWpClvq00yrMHK2LmLIhzIHDbPeQ?=
 =?us-ascii?Q?WgjY3GslHHKTuTZNC5cphBqOzOV6xkX7EUo3aoXQvHe5rrRnLLA9Ybgc4MwH?=
 =?us-ascii?Q?odS9cOwLA/c7MYzyXa5MWexWz5sAsNlRNp/yz1bnOAkdfzvE/RpZR2D8jGHx?=
 =?us-ascii?Q?Y30qYmEjcHy0s0SqMQMNvXCO4NJ+dHnUaxrcJrXRBpigQrGu4tryLN45veSs?=
 =?us-ascii?Q?bC9922zsVcPLmbojMibYShQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c76ec3b-d15e-4eb3-96a9-08d9a91eba07
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 16:32:48.6247
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FL1VGStH3301h+vWjZffXlyT1l/1LmVCIN6VR6k98NI81iRWMp7Wd63ZudPj8aAb4laiIiURM/ecS9F4cXFsiQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6176

On 16.11.2021 15:40, Ian Jackson wrote:
> Roger Pau Monne writes ("[PATCH for-4.16] tests/resource: set grant versi=
on for created domains"):
>> Set the grant table version for the created domains to use version 1,
>> as that's the used by the test cases. Without setting the grant
>> version the domains for the tests cannot be created.
>>
>> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>=20
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>

I was meaning to commit this, but you've replied to the singleton v1
patch which is now in the middle of a 4-patch series. I can't very
well assume (silently) that you've meant your ack to apply to that
series - please clarify.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 16 16:46:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 16:46:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226453.391370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn1ad-0006Ms-W3; Tue, 16 Nov 2021 16:45:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226453.391370; Tue, 16 Nov 2021 16:45:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn1ad-0006Ml-Su; Tue, 16 Nov 2021 16:45:47 +0000
Received: by outflank-mailman (input) for mailman id 226453;
 Tue, 16 Nov 2021 16:45:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mn1ad-0006Mb-1S; Tue, 16 Nov 2021 16:45:47 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mn1ac-0008KS-Ra; Tue, 16 Nov 2021 16:45:46 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mn1ac-0004Ad-GZ; Tue, 16 Nov 2021 16:45:46 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mn1ac-0005Eh-G2; Tue, 16 Nov 2021 16:45:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=xRxTk7OXnxFTi8ghPuFg4p//dmMy8gQ9IwotK5IIjEg=; b=m1A7IyNfm6Ricy2aV2CS8hyeLz
	T7/cocE7Z8db6Op+auUz+8X/hN8IpoOfG/KF5aF5w4rqFEwbP8E+uzTlM2yDheC9cq0WRoTJRZAFJ
	H8VahjqImiaudXoyzXbJQmKFo/kgA1bQ7jLzP2rHUjcp/SLU53CYp+uG/ebNWKWqKlhE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166154-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166154: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8ab774587903771821b59471cc723bba6d893942
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Nov 2021 16:45:46 +0000

flight 166154 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166154/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                8ab774587903771821b59471cc723bba6d893942
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   14 days
Failing since        165992  2021-11-02 05:40:21 Z   14 days   23 attempts
Testing same since   166149  2021-11-15 06:45:03 Z    1 days    3 attempts

------------------------------------------------------------
2166 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 250693 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 17:12:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 17:12:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226462.391385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn20d-00016V-1A; Tue, 16 Nov 2021 17:12:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226462.391385; Tue, 16 Nov 2021 17:12:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn20c-00016O-UB; Tue, 16 Nov 2021 17:12:38 +0000
Received: by outflank-mailman (input) for mailman id 226462;
 Tue, 16 Nov 2021 17:12:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn20c-00016I-3J
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:12:38 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn20c-0000O4-2E
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:12:38 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn20c-00089V-0m
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:12:38 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn20O-0000nr-L5; Tue, 16 Nov 2021 17:12:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=4UF8BTUsNb5lVRkgim5z53VVEfvYxZ02EiNWg3/E4dk=; b=zYh+4nIM6+6u4Xvx2d2u8kNqXh
	EIkluhqyTJ92/Y4HAxS/L2w2yxQtytT+bBFkbcZDEU92JArYG/uj2SZCMNRXICrRvNcaRyY7sYia9
	yE7Wme88vLEkrb2zJhiHzCRUycjkMBzIs8Uz6LPr9dzHKTidiCYmAor1IAxGyOKq1Fic=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24979.58990.409475.7896@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 17:12:14 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH for-4.16 4/4] tools/python: fix python libxc bindings to pass a max grant version
In-Reply-To: <20211115121741.3719-5-roger.pau@citrix.com>
References: <20211115121741.3719-1-roger.pau@citrix.com>
	<20211115121741.3719-5-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16 4/4] tools/python: fix python libxc bindings to pass a max grant version"):
> Such max version should be provided by the caller, otherwise the
> bindings will default to specifying a max version of 2, which is
> inline with the current defaults in the hypervisor.
> 
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>
> ---
> Cc: Ian Jackson <iwj@xenproject.org>
> 
> Without this fix the python bindings won't be usable, as they will
> attempt to pass a max version of 0 which will be refused by the
> hypervisor. The main risk would be breaking the bindings, but given
> the current state it's unlikely to result in a worse outcome.

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 17:15:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 17:15:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226465.391396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn22y-0001iD-En; Tue, 16 Nov 2021 17:15:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226465.391396; Tue, 16 Nov 2021 17:15:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn22y-0001i6-BT; Tue, 16 Nov 2021 17:15:04 +0000
Received: by outflank-mailman (input) for mailman id 226465;
 Tue, 16 Nov 2021 17:15:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn22x-0001i0-Jk
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:15:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn22x-0000Qo-Iq
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:15:03 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn22x-0008Gm-Hz
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:15:03 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn22i-0000oT-Ox; Tue, 16 Nov 2021 17:14:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=3LPmevwv6RPCOZkV8ejeBtam2JjH5bBBRsymDpXAKHU=; b=pG9zB0OdTyTUfYZYcNpKDvXMDx
	HlXWuzr4kOPQe7L53iyzycItrfg6f9vxZvf3SVosXYpRFb8UdWH0y9W70TMEOx+hlnLYU5pAOV4bB
	ijTqutNjFYq/GOonbTYLe+jNnommdYinS0Z7AgNtwtpTviRDZ3z+rDvgkpPTEaLvR/0g=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24979.59134.479277.441001@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 17:14:38 +0000
To: Julien Grall <julien@xen.org>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
    xen-devel@lists.xenproject.org,
    Wei Liu <wl@xen.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Anthony PERARD <anthony.perard@citrix.com>,
    Juergen Gross <jgross@suse.com>,
    Christian Lindig <christian.lindig@citrix.com>,
    David Scott  <dave@recoil.org>,
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH for-4.16 1/4] domctl: introduce a macro to set the grant
 table max version
In-Reply-To: <7a8b5bd1-6b34-eb32-72e4-f55cee5905ed@xen.org>
References: <20211115121741.3719-1-roger.pau@citrix.com>
	<20211115121741.3719-2-roger.pau@citrix.com>
	<7a8b5bd1-6b34-eb32-72e4-f55cee5905ed@xen.org>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Julien Grall writes ("Re: [PATCH for-4.16 1/4] domctl: introduce a macro to set the grant table max version"):
> On 15/11/2021 12:17, Roger Pau Monne wrote:
> > Such macro just clamps the passed version to fit in the designated
> > bits of the domctl field. The main purpose is to make it clearer in
> > the code when max grant version is being set in the grant_opts field.
> > 
> > Existing users that where setting the version in the grant_opts field
> > are switched to use the macro.
> > 
> > No functional change intended.
> > 
> > Requested-by: Jan Beulich <jbeulich@suse.com>
> > Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>
> 
> Acked-by: Julien Grall <jgrall@amazon.com>

Reviewed-by: Ian Jackson <iwj@xenproject.org>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 17:15:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 17:15:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226468.391407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn23l-0002Ga-Nn; Tue, 16 Nov 2021 17:15:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226468.391407; Tue, 16 Nov 2021 17:15:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn23l-0002GT-Ko; Tue, 16 Nov 2021 17:15:53 +0000
Received: by outflank-mailman (input) for mailman id 226468;
 Tue, 16 Nov 2021 17:15:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn23j-0002GJ-OH
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:15:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn23j-0000Rh-NK
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:15:51 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn23j-0008LV-MX
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:15:51 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn23W-0000pb-DC; Tue, 16 Nov 2021 17:15:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=mn1/p51PXSpKzK4Z9v+ZYENCjTuDSi0jCDQKqZ+TaJM=; b=gzTigV/HGscSY6PPc14bPzwron
	5nbczYdmNvKBpdqThGqqquhAx+ZeOyZJhixfCncJW+eHYTMPmgrGL2j1axtkNGkFt25P6b2S7ZY0f
	sP/fB2VhSjV0xUbCyXd5rCnBNMfCqflwi1+pN7HOmlbQfMg4ajKwF+5DG8NYbZxATfT8=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24979.59184.176488.42009@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 17:15:28 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Wei Liu <wl@xen.org>,
    Andrew  Cooper <andrew.cooper3@citrix.com>,
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH for-4.16 3/4] test/tsx: set grant version for created domains
In-Reply-To: <20211115121741.3719-4-roger.pau@citrix.com>
References: <20211115121741.3719-1-roger.pau@citrix.com>
	<20211115121741.3719-4-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16 3/4] test/tsx: set grant version for created domains"):
> Set the grant table version for the created domains to use version 1,
> as such tests domains don't require the usage of the grant table at
> all. A TODO note is added to switch those dummy domains to not have a
> grant table at all when possible. Without setting the grant version
> the domains for the tests cannot be created.
> 
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>

Release-Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 17:40:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 17:40:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226478.391432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn2RO-0005ps-3s; Tue, 16 Nov 2021 17:40:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226478.391432; Tue, 16 Nov 2021 17:40:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn2RO-0005pl-09; Tue, 16 Nov 2021 17:40:18 +0000
Received: by outflank-mailman (input) for mailman id 226478;
 Tue, 16 Nov 2021 17:40:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn2RM-0005Vt-R5
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:40:16 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn2RM-0000sd-Q9
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:40:16 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mn2RM-0001Ib-PB
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:40:16 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mn2RB-00023w-30; Tue, 16 Nov 2021 17:40:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Subject:CC:To:Date:Message-ID:
	Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=isZQIWBbsqhcfK2Q3o83TiEyt+fRhHKezNYlb/Z3N3M=; b=HHhA+S/o4KAVzoq4knCvLeG/oc
	6m7PFhCw0GTNyKgMcSd4RKBEHA8WlI5v237zR+DHnXv01SInSHxZ8w0Eg5uA5AaEHSJz47+8e+W4J
	bKyXPr9PXUWYfr4rtH76JE620mQ2tqVO8yFOCJ0MGDbVhhEAGL4hf0SmuDoQT83OULKg=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24979.60654.749160.430862@mariner.uk.xensource.com>
Date: Tue, 16 Nov 2021 17:39:58 +0000
To: xen-announce@lists.xenproject.org
CC: xen-devel@lists.xenproject.org
Subject: Xen 4.16 RC3

Xen 4.16 RC3 is now available.

It is available from git:
  git clone https://xenbits.xenproject.org/git-http/xen.git -b 4.16.0-rc3

For your convenience a tarball is available:
  https://downloads.xenproject.org/release/xen/4.16.0-rc3/xen-4.16.0-rc3.tar.gz
  https://downloads.xenproject.org/release/xen/4.16.0-rc3/xen-4.16.0-rc3.tar.gz.sig

Please send bug reports and test reports to
xen-devel@lists.xenproject.org.  When sending bug reports, please CC
relevant maintainers and me (iwj@xenproject.org).

(We are getting late into the freeze.  Issues raised from now on may
need to be deferred for the next release.)

Ian.
Xen 4.16 Release Manager


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 17:57:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 17:57:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226512.391445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn2h8-0007xP-Iz; Tue, 16 Nov 2021 17:56:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226512.391445; Tue, 16 Nov 2021 17:56:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn2h8-0007xI-F8; Tue, 16 Nov 2021 17:56:34 +0000
Received: by outflank-mailman (input) for mailman id 226512;
 Tue, 16 Nov 2021 17:56:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KMVQ=QD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mn2h7-0007wR-DF
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 17:56:33 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 86e5dc52-4706-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 18:56:31 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 4E216613A3;
 Tue, 16 Nov 2021 17:56:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86e5dc52-4706-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637085389;
	bh=rkAU9DJ2/oJbdOPHTg4bVICVVdes5dS2MJWP33TRod0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=t3+5pOGcewpLd4fXGoqCYueuUo1lvVaU/n7+PVD3V9Drh8R/IZHrzUeXCS5dsUKJB
	 8rKDXIP5yiXewzkpdg81OJeeASIPVIjok5DPr8Byl0sn8h0XlIRynE8WWmeV8NRTLs
	 w1rozpxpltm1azrUDvLZweNAcXr3ImTx4CXr8WbFcSkueA256wPtlxwjq8usL/oLqs
	 FmkLBbqce1vPPFUiO/i4ugeucDVrcHJ7b3XDohBLYoKAyn6inF9edU5M1bblecxBR8
	 BaVrH8muVWCFU3swiW07Wi+EfnM02fdOI+tg8s/+JpHCbNvGvzGaZSQKehq3tuNINg
	 3u2QlzfgWO/Ow==
Date: Tue, 16 Nov 2021 09:56:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Luca Fancellu <luca.fancellu@arm.com>, 
    Vikram Garhwal <fnu.vikram@xilinx.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, bertrand.marquis@arm.com, 
    volodymyr_babchuk@epam.com
Subject: Re: [XEN][RFC PATCH v4 1/1] Update libfdt to v1.6.1
In-Reply-To: <3fb62abf-5a72-fd70-3130-2505b8b42aad@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111160951150.1412361@ubuntu-linux-20-04-desktop>
References: <1636702040-116895-1-git-send-email-fnu.vikram@xilinx.com> <1636702040-116895-2-git-send-email-fnu.vikram@xilinx.com> <AE30D3B0-0863-465C-AFBC-8DEB28919A8A@arm.com> <alpine.DEB.2.22.394.2111121400280.1412361@ubuntu-linux-20-04-desktop>
 <57d10284-cbd0-2867-2c09-9f1f7824d938@xen.org> <alpine.DEB.2.22.394.2111151415020.1412361@ubuntu-linux-20-04-desktop> <3fb62abf-5a72-fd70-3130-2505b8b42aad@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-654614941-1637085389=:1412361"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-654614941-1637085389=:1412361
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 16 Nov 2021, Julien Grall wrote:
> On 16/11/2021 03:15, Stefano Stabellini wrote:
> > On Mon, 15 Nov 2021, Julien Grall wrote:
> > > On 12/11/2021 22:01, Stefano Stabellini wrote:
> > > > On Fri, 12 Nov 2021, Luca Fancellu wrote:
> > > > > > On 12 Nov 2021, at 07:27, Vikram Garhwal <fnu.vikram@xilinx.com>
> > > > > > wrote:
> > > > > > 
> > > > > > Update libfdt to v1.6.1 of libfdt taken from
> > > > > > git://github.com/dgibson/dtc.
> > > > > > This update is done to support device tree overlays.
> > > > > > 
> > > > > > A few minor changes are done to make it compatible with Xen:
> > > > > >      fdt_overlay.c: overlay_fixup_phandle()
> > > > > > 
> > > > > >          Replace strtoul() with simple_strtoul() as strtoul() is not
> > > > > > available in
> > > > > >          Xen lib and included lib.h.
> > > > > > 
> > > > > >          Change char *endptr to const char *endptr. This change is
> > > > > > required for
> > > > > >          using simple_strtoul().
> > > > > > 
> > > > > >      libfdt_env.h:
> > > > > >          Remaining Xen changes to libfdt_env.h carried over from
> > > > > > existing
> > > > > >          libfdt (v1.4.0)
> > > > > 
> > > > > Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> > > > > 
> > > > > I’ve also tested it on FVP and on a Juno board, starting few guests
> > > > > and it
> > > > > worked.
> > > > > 
> > > > > Tested-by: Luca Fancellu <luca.fancellu@arm.com>
> > > > 
> > > > Thanks Luca! The patch also passes the gitlab-ci tests and looks OK to
> > > > me. I'll let Julien ack it as he was the one with a couple of comments
> > > > before.
> > > 
> > > The next version addressed my comments. So:
> > > 
> > > Reviewed-by: Julien Grall <jgrall@amazon.com>
> > > 
> > > I have also queued the patch in a temporary branch for-next/4.17:
> > > 
> > > https://xenbits.xen.org/gitweb/?p=people/julieng/xen-unstable.git;a=shortlog;h=refs/heads/for-next/4.17
> > > 
> > > The patch will land in staging when the tree re-opens.
> > 
> > Hey Julien,
> > 
> > Thanks for that!
> > 
> > Do you think it would make sense to keep "for-next/4.17" under
> > xen-integration [1] so that we can easily trigger gitlab-ci runs on it?
> 
> It would be good to have gitlab-ci running on the branch. However...
> 
> > 
> > I cannot setup an automatic mirror of your branch on xen-integration
> > because xen-integration is already mirroring upstream xen.git. For now,
> > I have just manually pushed:
> > https://gitlab.com/xen-project/fusa/xen-integration/-/tree/for-next/4.17
> > 
> > Which triggered (all green):
> > https://gitlab.com/xen-project/fusa/xen-integration/-/pipelines/409417946
> > 
> > FYI you should have full rights to push and make edits on
> > xen-integration.
> 
> ... AFAICT the tree can be edited by non-committers as well. I don't expect
> anyone in the list to mess up with the branch, but part of me would prefer if
> only you and I can modify it.

Yeah, unfortunately I haven't found a way in gitlab UI to explicitly
specify the people that have commit access to a repository. It can be
done at the https://gitlab.com/xen-project level but not for
xen-integration only. 

Unrelated but FYI, I also haven't found a way to let someone just
trigger gitlab-ci runs without also being able to commit to a tree.


> That said, I can push manually to xen-integration to trigger the CI everytime
> we need to update it.

That's good enough I think.
--8323329-654614941-1637085389=:1412361--


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 18:02:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 18:02:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226520.391457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn2mr-00014w-CJ; Tue, 16 Nov 2021 18:02:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226520.391457; Tue, 16 Nov 2021 18:02:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn2mr-00014p-9E; Tue, 16 Nov 2021 18:02:29 +0000
Received: by outflank-mailman (input) for mailman id 226520;
 Tue, 16 Nov 2021 18:02:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mn2mp-00014j-Jq
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 18:02:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn2mm-0001Mc-Kv; Tue, 16 Nov 2021 18:02:24 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233] helo=[10.85.43.125])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn2mm-0002hL-EK; Tue, 16 Nov 2021 18:02:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=XLCjBk8zbBOIqdNHN7ODoQFXK0AHmrQNVqt4z9JPZDc=; b=FLQsKqKnXho1mUY1YskGqUvNPq
	oQ8HSPIgUeFwXivWFq28EiAxyTEP3X/c9JHJE2lpJFfIakcU4Pu96NQhAa0Li+SiuuBYDf0GeYzjZ
	SAhLC1eNEQ5RFuxNj0UHpHB3OTVJoYSFKH3uAU7/BrVbrFRHZX7vcrG/SZVJAcBRZlgI=;
Message-ID: <8168668f-c89b-cc5b-295f-1d472164a5f6@xen.org>
Date: Tue, 16 Nov 2021 18:02:21 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 Jan Beulich <jbeulich@suse.com>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
 <ad01ebdc-7fb8-3c76-d953-08b73b4b0c25@epam.com>
 <fc1fdee4-e567-038f-a90b-127548a8da02@suse.com>
 <55a95ff3-6717-780b-25f9-c43728b6270b@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <55a95ff3-6717-780b-25f9-c43728b6270b@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

On 16/11/2021 14:24, Oleksandr Andrushchenko wrote:
> 
> 
> On 16.11.21 16:12, Jan Beulich wrote:
>> On 16.11.2021 14:41, Oleksandr Andrushchenko wrote:
>>>
>>> On 16.11.21 10:23, Oleksandr Andrushchenko wrote:
>>>> On 16.11.21 10:01, Jan Beulich wrote:
>>>>> On 16.11.2021 08:32, Oleksandr Andrushchenko wrote:
>>>>>> On 15.11.21 18:56, Jan Beulich wrote:
>>>>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>>>>
>>>>>>>> When a vPCI is removed for a PCI device it is possible that we have
>>>>>>>> scheduled a delayed work for map/unmap operations for that device.
>>>>>>>> For example, the following scenario can illustrate the problem:
>>>>>>>>
>>>>>>>> pci_physdev_op
>>>>>>>>         pci_add_device
>>>>>>>>             init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
>>>>>>>>         iommu_add_device <- FAILS
>>>>>>>>         vpci_remove_device -> xfree(pdev->vpci)
>>>>>>>>
>>>>>>>> leave_hypervisor_to_guest
>>>>>>>>         vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
>>>>>>>>
>>>>>>>> For the hardware domain we continue execution as the worse that
>>>>>>>> could happen is that MMIO mappings are left in place when the
>>>>>>>> device has been deassigned
>>>>>>> Is continuing safe in this case? I.e. isn't there the risk of a NULL
>>>>>>> deref?
>>>>>> I think it is safe to continue
>>>>> And why do you think so? I.e. why is there no race for Dom0 when there
>>>>> is one for DomU?
>>>> Well, then we need to use a lock to synchronize the two.
>>>> I guess this needs to be pci devs lock unfortunately
>>> The parties involved in deferred work and its cancellation:
>>>
>>> MMIO trap -> vpci_write -> vpci_cmd_write -> modify_bars -> defer_map
>>>
>>> Arm: leave_hypervisor_to_guest -> check_for_vcpu_work -> vpci_process_pending
>>>
>>> x86: two places -> hvm_do_resume -> vpci_process_pending
>>>
>>> So, both defer_map and vpci_process_pending need to be synchronized with
>>> pcidevs_{lock|unlock).
>> If I was an Arm maintainer, I'm afraid I would object to the pcidevs lock
>> getting used in leave_hypervisor_to_guest.
> I do agree this is really not good, but it seems I am limited in choices.
> @Stefano, @Julien, do you see any better way of doing that?

I agree with Jan about using the pcidevs_{lock|unlock}. The lock is not 
fine-grained enough for been call in vpci_process_pending().

I haven't yet looked at the rest of the series to be able to suggest the 
exact lock. But we at least want a per-domain spinlock.

> 
> We were thinking about introducing a dedicated lock for vpci [1],
> but finally decided to use pcidevs_lock for now

Skimming through the thread, you decided to use pcidevs_lock because it 
was simpler and sufficient for the use case discussed back then. Now, we 
have a use case where it would be a problem to use pcidevs_lock. So I 
think the extra complexity is justified.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 18:26:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 18:26:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226528.391468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn3AM-0003Rg-DJ; Tue, 16 Nov 2021 18:26:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226528.391468; Tue, 16 Nov 2021 18:26:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn3AM-0003RZ-9B; Tue, 16 Nov 2021 18:26:46 +0000
Received: by outflank-mailman (input) for mailman id 226528;
 Tue, 16 Nov 2021 18:26:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mn3AL-0003RT-QZ
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 18:26:45 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn3AK-0001mn-Lf; Tue, 16 Nov 2021 18:26:44 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233] helo=[10.85.43.125])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn3AK-00045m-F0; Tue, 16 Nov 2021 18:26:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=fBOLRRt/xWvxgrhH/HqHSu7azbzSh3VHlItWQo4Py+c=; b=13DMT1BFuxalX4DbtIy4r/nPtV
	DKaIupz1f7wNtDtScRacRBNwFM/HgcxeaUk/xufZ0BZd/b9mBIV5lC20xQaPUIK2xuMsZnAHgOij9
	kg3FkAPavTqbOskIs74b86f0g8ZHAyoBMw7c5H8cdT9imOALG/mrYQTrxT3hsLETByfs=;
Message-ID: <8b4b8e5e-e9f0-13d8-948f-58111d81d960@xen.org>
Date: Tue, 16 Nov 2021 18:26:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v6 1/7] xen/arm: rename DEVICE_PCI to
 DEVICE_PCI_HOSTBRIDGE
To: Oleksandr Andrushchenko <andr2000@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 jbeulich@suse.com, andrew.cooper3@citrix.com, george.dunlap@citrix.com,
 paul@xen.org, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-2-andr2000@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211105063326.939843-2-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> To better reflect the nature of the device type and not to make any
> confusion rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE which it
> really is.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Suggested-by: Julien Grall <julien@xen.org>

We usually put the Suggested-by tag before the Signed-off-by. Other than 
that:

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 18:49:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 18:49:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226534.391479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn3Vq-0005kz-8L; Tue, 16 Nov 2021 18:48:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226534.391479; Tue, 16 Nov 2021 18:48:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn3Vq-0005ks-4t; Tue, 16 Nov 2021 18:48:58 +0000
Received: by outflank-mailman (input) for mailman id 226534;
 Tue, 16 Nov 2021 18:48:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mn3Vo-0005km-R4
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 18:48:56 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn3Vn-00028f-JC; Tue, 16 Nov 2021 18:48:55 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233] helo=[10.85.43.125])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn3Vn-0005Mk-CZ; Tue, 16 Nov 2021 18:48:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=szMWftmAkKOjMywPbfo27OHXruT/fRXvjWfAt8mdJfc=; b=SG1aLhgbW5G2R835kkMsBvFWtD
	i1Wa93cgWzk+GzoD2cjSfxoPKIxYY3tHGIjSDYYWDeQaoOSfoXT1RO4ocD6kPF97DTuw3rJClUkPa
	VOoS7Nr0i9TxN9VicOGhva/+dZJP7ApnzPJdTbKQck4gZ4IPJictBB+10Zt51aetu9wQ=;
Message-ID: <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
Date: Tue, 16 Nov 2021 18:48:52 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
To: Oleksandr Andrushchenko <andr2000@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 jbeulich@suse.com, andrew.cooper3@citrix.com, george.dunlap@citrix.com,
 paul@xen.org, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211105063326.939843-3-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksander,

On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> If a PCI host bridge device is present in the device tree, but is
> disabled, then its PCI host bridge driver was not instantiated.
> This results in the failure of the pci_get_host_bridge_segment()
> and the following panic during Xen start:
> 
> (XEN) Device tree generation failed (-22).
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Could not set up DOM0 guest OS
> (XEN) ****************************************
> 
> Fix this by adding "linux,pci-domain" property for all device tree nodes
> which have "pci" device type, so we know which segments will be used by
> the guest for which bridges.
> 
> Fixes: 4cfab4425d39 ("xen/arm: Add linux,pci-domain property for hwdom if not available.")
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> ---
> New in v6
> ---
>   xen/arch/arm/domain_build.c        | 15 ++++++++++++++-
>   xen/arch/arm/pci/pci-host-common.c |  2 +-
>   xen/include/asm-arm/pci.h          |  8 ++++++++
>   3 files changed, 23 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 491f5e2c316e..f7fcb1400c19 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -753,9 +753,22 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
>           {
>               uint16_t segment;
>   
> +            /*
> +             * The node doesn't have "linux,pci-domain" property and it is
> +             * possible that:
> +             *  - Xen only has drivers for a part of the host bridges
> +             *  - some host bridges are disabled
> +             * Make sure we insert the correct "linux,pci-domain" property
> +             * in any case, so we know which segments will be used
> +             * by Linux for which bridges.

The check above will check the node type is "pci". AFAICT, this would 
also cover PCI devices. I am not aware of any issue to add 
"linux,pci-domain" for them. However, this feels a bit odd.

 From my understanding, a PCI device would always be described as a 
child of the hostbridges. So I would rework the 'if' to also check if 
the parent type is not "pci".

> +             */
>               res = pci_get_host_bridge_segment(node, &segment);
>               if ( res < 0 )
> -                return res;
> +            {
> +                segment = pci_get_new_domain_nr();
> +                printk(XENLOG_DEBUG "Assigned segment %d to %s\n",
> +                       segment, node->full_name);
> +            }
>   
>               res = fdt_property_cell(kinfo->fdt, "linux,pci-domain", segment);
>               if ( res )
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
> index d8cbaaaba654..47104b22b221 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -137,7 +137,7 @@ void pci_add_host_bridge(struct pci_host_bridge *bridge)
>       list_add_tail(&bridge->node, &pci_host_bridges);
>   }
>   
> -static int pci_get_new_domain_nr(void)
> +int pci_get_new_domain_nr(void)
>   {
>       return atomic_inc_return(&domain_nr);

We may have a DT where only the nodes used by Xen have 
"linux,pci-domain". In this case, we would end up to return 0, 1... 
which may have already been used.

This will probably make Linux unhappy. So I would return -1 here if 
use_dt_domains == 1. The caller would also need to bail out if -1 is 
returned.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 19:12:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 19:12:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226541.391490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn3sc-0000QB-5q; Tue, 16 Nov 2021 19:12:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226541.391490; Tue, 16 Nov 2021 19:12:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn3sc-0000Q4-2o; Tue, 16 Nov 2021 19:12:30 +0000
Received: by outflank-mailman (input) for mailman id 226541;
 Tue, 16 Nov 2021 19:12:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mn3sa-0000Py-9f
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 19:12:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn3sZ-0002Yv-7s; Tue, 16 Nov 2021 19:12:27 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233] helo=[10.85.43.125])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn3sZ-0006zH-0w; Tue, 16 Nov 2021 19:12:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=qfp1xha3qzpO+qSYNLGF6M0gi2M5YQs4YyajYbYiIH8=; b=IZrhp9SWC3RM2ZDx3uV5dOCvdt
	lqDKbD/LcKWJIKVOW0I9FbgOL6fgCXjzOFEWYanE/VKZTQPim08zb9h0PLFSHN74SxT006qC0YTng
	JE6feA759eC+MXdcrasayBujXNoJ47DUtfrQ7XIQb/+51iSs7xyoC/7c+wV0dAlMTQpI=;
Message-ID: <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
Date: Tue, 16 Nov 2021 19:12:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
To: Oleksandr Andrushchenko <andr2000@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 jbeulich@suse.com, andrew.cooper3@citrix.com, george.dunlap@citrix.com,
 paul@xen.org, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211105063326.939843-4-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> In order for vPCI to work it needs to maintain guest and hardware
> domain's views of the configuration space. For example, BARs and
> COMMAND registers require emulation for guests and the guest view
> of the registers needs to be in sync with the real contents of the
> relevant registers. For that ECAM address space needs to also be
> trapped for the hardware domain, so we need to implement PCI host
> bridge specific callbacks to properly setup MMIO handlers for those
> ranges depending on particular host bridge implementation.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> ---
> Since v5:
> - add vpci_sbdf_from_gpa helper for gpa to SBDF translation
> - take bridge's bus start into account while calculating SBDF
> Since v4:
> - unsigned int for functions working with count
> - gate number of MMIO handlers needed for CONFIG_HAS_PCI_MSI
>    and fix their number, e.g. single handler for PBA and
>    MSI-X tables (Roger)
> - re-work code for assigning MMIO handlers to be simpler
>    and account on the fact that there could multiple host bridges
>    exist for the hwdom
> Since v3:
> - fixed comment formatting
> Since v2:
> - removed unneeded assignment (count = 0)
> - removed unneeded header inclusion
> - update commit message
> Since v1:
>   - Dynamically calculate the number of MMIO handlers required for vPCI
>     and update the total number accordingly
>   - s/clb/cb
>   - Do not introduce a new callback for MMIO handler setup
> ---
>   xen/arch/arm/domain.c              |  2 +
>   xen/arch/arm/pci/pci-host-common.c | 27 ++++++++++++
>   xen/arch/arm/vpci.c                | 66 ++++++++++++++++++++++++++----
>   xen/arch/arm/vpci.h                |  6 +++
>   xen/include/asm-arm/pci.h          |  5 +++
>   5 files changed, 98 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 96e1b235501d..92a6c509e5c5 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -739,6 +739,8 @@ int arch_domain_create(struct domain *d,
>       if ( (rc = domain_vgic_register(d, &count)) != 0 )
>           goto fail;
>   
> +    count += domain_vpci_get_num_mmio_handlers(d);
> +
>       if ( (rc = domain_io_init(d, count + MAX_IO_HANDLER)) != 0 )
>           goto fail;
>   
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
> index 47104b22b221..0d271a6e8881 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -289,6 +289,33 @@ int pci_get_host_bridge_segment(const struct dt_device_node *node,
>       return -EINVAL;
>   }
>   
> +int pci_host_iterate_bridges(struct domain *d,
> +                             int (*cb)(struct domain *d,
> +                                       struct pci_host_bridge *bridge))
> +{
> +    struct pci_host_bridge *bridge;
> +    int err;
> +
> +    list_for_each_entry( bridge, &pci_host_bridges, node )
> +    {
> +        err = cb(d, bridge);
> +        if ( err )
> +            return err;
> +    }
> +    return 0;
> +}
> +
> +unsigned int pci_host_get_num_bridges(void)
> +{
> +    struct pci_host_bridge *bridge;
> +    unsigned int count = 0;

How about making this static and...

> +
> +    list_for_each_entry( bridge, &pci_host_bridges, node )
> +        count++;

... only call list_for_each_entry() when count is -1? So we would only 
go through the list once.

This should be fine given hostbridge can only be added during boot (we 
would need to protect pci_host_bridges with a lock otherwise).

> +
> +    return count;
> +}
> +
>   /*
>    * Local variables:
>    * mode: C
> diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
> index 23f45386f4b3..5a6ebd8b9868 100644
> --- a/xen/arch/arm/vpci.c
> +++ b/xen/arch/arm/vpci.c
> @@ -16,16 +16,31 @@
>   
>   #include <asm/mmio.h>
>   
> +static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
> +                                     paddr_t gpa)
> +{
> +    pci_sbdf_t sbdf;
> +
> +    if ( bridge )
> +    {
> +        sbdf.sbdf = VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
> +        sbdf.seg = bridge->segment;
> +        sbdf.bus += bridge->cfg->busn_start;
> +    }
> +    else
> +        sbdf.sbdf = VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
> +
> +    return sbdf;
> +}
> +
>   static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
>                             register_t *r, void *p)
>   {
> -    pci_sbdf_t sbdf;
> +    struct pci_host_bridge *bridge = p;
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
>       /* data is needed to prevent a pointer cast on 32bit */
>       unsigned long data;
>   
> -    /* We ignore segment part and always handle segment 0 */
> -    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
> -
>       if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
>                           1U << info->dabt.size, &data) )
>       {
> @@ -41,10 +56,8 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
>   static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
>                              register_t r, void *p)
>   {
> -    pci_sbdf_t sbdf;
> -
> -    /* We ignore segment part and always handle segment 0 */
> -    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
> +    struct pci_host_bridge *bridge = p;
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
>   
>       return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
>                              1U << info->dabt.size, r);
> @@ -55,17 +68,54 @@ static const struct mmio_handler_ops vpci_mmio_handler = {
>       .write = vpci_mmio_write,
>   };
>   
> +static int vpci_setup_mmio_handler_cb(struct domain *d,
> +                                      struct pci_host_bridge *bridge)
> +{
> +    struct pci_config_window *cfg = bridge->cfg;
> +
> +    register_mmio_handler(d, &vpci_mmio_handler,
> +                          cfg->phys_addr, cfg->size, bridge);
> +    return 0;
> +}
> +
>   int domain_vpci_init(struct domain *d)
>   {
>       if ( !has_vpci(d) )
>           return 0;
>   
> +    if ( is_hardware_domain(d) )
> +        return pci_host_iterate_bridges(d, vpci_setup_mmio_handler_cb);
> +
> +    /* Guest domains use what is programmed in their device tree. */

I would rather not make the assumption that the guest is using a 
Device-Tree. So how about:

/*
  * The hardware domain gets one virtual hostbridge by "real"
  * hostbridges.
  * Guests get the virtual platform layout (one virtual host bridge for
  * now).
  */

The comment would have to be moved before if ( is_hardware_domain(d) ).

>       register_mmio_handler(d, &vpci_mmio_handler,
>                             GUEST_VPCI_ECAM_BASE, GUEST_VPCI_ECAM_SIZE, NULL);
>   
>       return 0;
>   }
>   
> +unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)

AFAICT, this function would also be called even if vPCI is not enabled 
for the domain. So we should add:

if ( !has_vpci(d) )
   return 0;

> +{
> +    unsigned int count;
> +
> +    if ( is_hardware_domain(d) )
> +        /* For each PCI host bridge's configuration space. */
> +        count = pci_host_get_num_bridges();

This first part makes sense to me. But...

> +    else

... I don't understand how the else is related to this commit. Can you 
clarify it?

> +        /*
> +         * There's a single MSI-X MMIO handler that deals with both PBA
> +         * and MSI-X tables per each PCI device being passed through.
> +         * Maximum number of supported devices is 32 as virtual bus
> +         * topology emulates the devices as embedded endpoints.
> +         * +1 for a single emulated host bridge's configuration space.
> +         */
> +        count = 1;
> +#ifdef CONFIG_HAS_PCI_MSI
> +        count += 32;

Surely, this is a decision that is based on other factor in the vPCI 
code. So can use a define and avoid hardcoding the number?

> +#endif


> +
> +    return count;
> +}
> +
>   /*
>    * Local variables:
>    * mode: C
> diff --git a/xen/arch/arm/vpci.h b/xen/arch/arm/vpci.h
> index d8a7b0e3e802..3c713f3fcdb5 100644
> --- a/xen/arch/arm/vpci.h
> +++ b/xen/arch/arm/vpci.h
> @@ -17,11 +17,17 @@
>   
>   #ifdef CONFIG_HAS_VPCI
>   int domain_vpci_init(struct domain *d);
> +unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d);
>   #else
>   static inline int domain_vpci_init(struct domain *d)
>   {
>       return 0;
>   }
> +
> +static inline unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
> +{
> +    return 0;
> +}
>   #endif
>   
>   #endif /* __ARCH_ARM_VPCI_H__ */
> diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
> index c20eba643d86..969333043431 100644
> --- a/xen/include/asm-arm/pci.h
> +++ b/xen/include/asm-arm/pci.h
> @@ -110,6 +110,11 @@ void arch_pci_init_pdev(struct pci_dev *pdev);
>   
>   int pci_get_new_domain_nr(void);
>   
> +int pci_host_iterate_bridges(struct domain *d,
> +                             int (*clb)(struct domain *d,

NIT: This is more common to call a callback 'cb'. In any case, I would 
prefer if the names matches the one used in the implementation.

> +                                        struct pci_host_bridge *bridge));
> +unsigned int pci_host_get_num_bridges(void);
> +
>   #else   /*!CONFIG_HAS_PCI*/
>   
>   struct arch_pci_dev { };
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 19:13:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 19:13:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226543.391501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn3t3-0000rw-Es; Tue, 16 Nov 2021 19:12:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226543.391501; Tue, 16 Nov 2021 19:12:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn3t3-0000rp-BA; Tue, 16 Nov 2021 19:12:57 +0000
Received: by outflank-mailman (input) for mailman id 226543;
 Tue, 16 Nov 2021 19:12:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9r0J=QD=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1mn3sr-0000jw-JJ
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 19:12:55 +0000
Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d2b336c-4711-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 20:12:44 +0100 (CET)
Received: from zn.tnic (p200300ec2f1b8100142ca11f4b264b2f.dip0.t-ipconnect.de
 [IPv6:2003:ec:2f1b:8100:142c:a11f:4b26:4b2f])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 63CAB1EC056D;
 Tue, 16 Nov 2021 20:12:43 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d2b336c-4711-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim;
	t=1637089963;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:in-reply-to:in-reply-to:  references:references;
	bh=MvK45/ux9p/D3P3nIzsezA5z0FVwGNzV1VvGxFtGLKQ=;
	b=DYO/tXGYfoiflcnBZ3TlKfZZ+/Nly9hyIxYswP+umYZWIDlAGYy77xh7aqb7mOF0MVFTU+
	+GG5FsAU39HXZwuLfIERLqvO7NAOXLMV4qlBiPeZkbRl9YG9fRZFW3kcoexW0VM/khZZpy
	Hn5p4xjCfVD7JeZRj+4M3EhGy/fJ6lk=
Date: Tue, 16 Nov 2021 20:12:39 +0100
From: Borislav Petkov <bp@alien8.de>
To: Tianyu Lan <ltykernel@gmail.com>
Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org,
	tglx@linutronix.de, mingo@redhat.com, x86@kernel.org, hpa@zytor.com,
	jgross@suse.com, sstabellini@kernel.org, boris.ostrovsky@oracle.com,
	kys@microsoft.com, haiyangz@microsoft.com, sthemmin@microsoft.com,
	wei.liu@kernel.org, decui@microsoft.com, joro@8bytes.org,
	will@kernel.org, davem@davemloft.net, kuba@kernel.org,
	jejb@linux.ibm.com, martin.petersen@oracle.com, hch@lst.de,
	m.szyprowski@samsung.com, robin.murphy@arm.com,
	xen-devel@lists.xenproject.org, michael.h.kelley@microsoft.com,
	Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org, vkuznets@redhat.com, brijesh.singh@amd.com,
	konrad.wilk@oracle.com, parri.andrea@gmail.com,
	thomas.lendacky@amd.com, dave.hansen@intel.com
Subject: Re: [PATCH 3/5] hyperv/IOMMU: Enable swiotlb bounce buffer for
 Isolation VM
Message-ID: <YZQCp6WWKAdOCbh8@zn.tnic>
References: <20211116153923.196763-1-ltykernel@gmail.com>
 <20211116153923.196763-4-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20211116153923.196763-4-ltykernel@gmail.com>

On Tue, Nov 16, 2021 at 10:39:21AM -0500, Tianyu Lan wrote:
> diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
> index 35487305d8af..65bc385ae07a 100644
> --- a/arch/x86/mm/mem_encrypt.c
> +++ b/arch/x86/mm/mem_encrypt.c
> @@ -31,6 +31,7 @@
>  #include <asm/processor-flags.h>
>  #include <asm/msr.h>
>  #include <asm/cmdline.h>
> +#include <asm/mshyperv.h>
>  
>  #include "mm_internal.h"
>  
> @@ -203,7 +204,8 @@ void __init sev_setup_arch(void)
>  	phys_addr_t total_mem = memblock_phys_mem_size();
>  	unsigned long size;
>  
> -	if (!cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT))
> +	if (!cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT)
> +	    && !hv_is_isolation_supported())

Are we gonna start sprinkling this hv_is_isolation_supported() check
everywhere now?

Are those isolation VMs SEV-like guests? Is CC_ATTR_GUEST_MEM_ENCRYPT
set on them?

What you should do, instead, is add an isol. VM specific
hv_cc_platform_has() just like amd_cc_platform_has() and handle
the cc_attrs there for your platform, like return false for
CC_ATTR_GUEST_MEM_ENCRYPT and then you won't need to add that hv_* thing
everywhere.

And then fix it up in __set_memory_enc_dec() too.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 19:23:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 19:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226551.391511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn42n-0002WU-I5; Tue, 16 Nov 2021 19:23:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226551.391511; Tue, 16 Nov 2021 19:23:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn42n-0002WN-Ez; Tue, 16 Nov 2021 19:23:01 +0000
Received: by outflank-mailman (input) for mailman id 226551;
 Tue, 16 Nov 2021 19:23:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mn42m-0002WH-7u
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 19:23:00 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn42l-0002k8-3c; Tue, 16 Nov 2021 19:22:59 +0000
Received: from 54-240-197-233.amazon.com ([54.240.197.233] helo=[10.85.43.125])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mn42k-0007ee-SG; Tue, 16 Nov 2021 19:22:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=YSZ0WWJXuCf7N5BEKh4RtM575I9HYjtZ/UwCdyOGPuc=; b=oi60Sxx6X0dQ2ApxPIi1hNEXVZ
	ynMUZPYbORlpIQOv3NzC+jYMnkCOOHoW3EPXq2oQL0cajgpD0JNWq0ryHIb7FoKBVtGDaTahxhOM5
	TjulirZ9FjdAh7vzHZay95PbPeldrCAcXDFX7J+Ze23GVbp7QDrvk/DGf0UtEzjFYFhI=;
Message-ID: <997e2ad5-9b52-73b4-a02d-f255480684d9@xen.org>
Date: Tue, 16 Nov 2021 19:22:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v6 5/7] xen/arm: do not map IRQs and memory for disabled
 devices
To: Oleksandr Andrushchenko <andr2000@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 jbeulich@suse.com, andrew.cooper3@citrix.com, george.dunlap@citrix.com,
 paul@xen.org, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-6-andr2000@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211105063326.939843-6-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Currently Xen maps all IRQs and memory ranges for all devices except
> those marked for passthrough, e.g. it doesn't pay attention to the
> "status" property of the node.
> 
> According to the device tree specification [1]:
>   - "okay"     Indicates the device is operational.
>   - "disabled" Indicates that the device is not presently operational,
>                but it might become operational in the future (for example,
> 	      something is not plugged in, or switched off).
> 	      Refer to the device binding for details on what disabled means
> 	      for a given device.
> 
> So, "disabled" status is device dependent and mapping should be taken by
> case-by-case approach with that respect. Although in general Xen should map
> IRQs and memory ranges as the disabled devices might become operational

Right, this change effectively prevent dom0 to use such device if it 
becomes operational in the future. So this sounds like a big regression.

How do you plan to handle it?

> it
> makes it impossible for the other devices, which are not operational in
> any case, to skip the mappings.

You wrote "makes it impossible for the other devices", but it is not 
clear to me what's would go wrong when we map a disabled device (Dom0 
should not touch it). Do you have an example?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 19:55:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 19:55:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226557.391523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn4Xc-0005fz-4N; Tue, 16 Nov 2021 19:54:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226557.391523; Tue, 16 Nov 2021 19:54:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn4Xc-0005fs-17; Tue, 16 Nov 2021 19:54:52 +0000
Received: by outflank-mailman (input) for mailman id 226557;
 Tue, 16 Nov 2021 19:54:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mn4Xa-0005fi-Ff; Tue, 16 Nov 2021 19:54:50 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mn4Xa-0003FQ-AA; Tue, 16 Nov 2021 19:54:50 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mn4Xa-0003Pl-1V; Tue, 16 Nov 2021 19:54:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mn4Xa-0004D1-12; Tue, 16 Nov 2021 19:54:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=C4gmlrrpulsPthyVfXceWh/PRDNrTXYGr9JNb0NkXK8=; b=iL8igMzvREY4E97HiuUkuOlQhg
	xh0WcBQjkowaoEEHSZ5t95OyfrCx8TZzpBINfqNiJY9FLXDvovIwAqSv5+nvxHvQFSs2kfTooMJo8
	bh72Sq+2b3IzZlws0YAHgizyCwWibGYDKMNhfH0m/tBwwOfzFa+kiWAxDiH89auYy+ZA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166155-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166155: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:allowable
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=757b8dd4e970038538b2e027120ab4594bebdebc
X-Osstest-Versions-That:
    qemuu=42f6c9179be4401974dd3a75ee72defd16b5092d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Nov 2021 19:54:50 +0000

flight 166155 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166155/

Failures :-/ but no regressions.

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds    18 guest-start/debian.repeat fail REGR. vs. 166128

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166128
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166128
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166128
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166128
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166128
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166128
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166128
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166128
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166128
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                757b8dd4e970038538b2e027120ab4594bebdebc
baseline version:
 qemuu                42f6c9179be4401974dd3a75ee72defd16b5092d

Last test of basis   166128  2021-11-12 14:07:54 Z    4 days
Testing same since   166155  2021-11-16 09:09:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ani Sinha <ani@anisinha.ca>
  Eugenio Pérez <eperezma@redhat.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Igor Mammedov <imammedo@redhat.com>
  Jason Wang <jasowang@redhat.com>
  Julia Suvorova <jusual@redhat.com>
  Michael S. Tsirkin <mst@redhat.com>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Richard Henderson <richard.henderson@linaro.org>
  Stefan Hajnoczi <stefanha@redhat.com>
  Stefano Garzarella <sgarzare@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   42f6c9179b..757b8dd4e9  757b8dd4e970038538b2e027120ab4594bebdebc -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 20:11:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 20:11:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226564.391537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn4n7-000809-JP; Tue, 16 Nov 2021 20:10:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226564.391537; Tue, 16 Nov 2021 20:10:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn4n7-000802-GP; Tue, 16 Nov 2021 20:10:53 +0000
Received: by outflank-mailman (input) for mailman id 226564;
 Tue, 16 Nov 2021 20:10:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mn4n6-0007zs-CH; Tue, 16 Nov 2021 20:10:52 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mn4n6-0003bc-63; Tue, 16 Nov 2021 20:10:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mn4n5-00048m-U7; Tue, 16 Nov 2021 20:10:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mn4n5-00040T-Td; Tue, 16 Nov 2021 20:10:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=/ORJbGXmrYKrghN/yzVXwF6CeU/rDtTno89GdLeZ/uw=; b=I6rWwx1aAFhBGyMpuCYR24iSC7
	RLEHZywDeOnC2b79xZ5N6L27czwch9ULhgGZ2TmU4pnq9xt2g6WDiKUN+eHSyeoDHuMG81AR5coBJ
	VA1C8d9KX1Ga7iApq7L4P9AM5pAVo02tXoU0PfiO15d0G2QvOaf/RPO1BvwJwIdZwSfQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166156-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166156: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=2d72d2784eb71d8532bfbd6462d261739c9e82e4
X-Osstest-Versions-That:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Nov 2021 20:10:51 +0000

flight 166156 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166156/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  2d72d2784eb71d8532bfbd6462d261739c9e82e4
baseline version:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6

Last test of basis   166132  2021-11-12 21:02:51 Z    3 days
Testing same since   166156  2021-11-16 17:02:54 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c7a7f14b92..2d72d2784e  2d72d2784eb71d8532bfbd6462d261739c9e82e4 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 20:38:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 20:38:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226571.391550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn5Dm-000254-QS; Tue, 16 Nov 2021 20:38:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226571.391550; Tue, 16 Nov 2021 20:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn5Dm-00024x-Nb; Tue, 16 Nov 2021 20:38:26 +0000
Received: by outflank-mailman (input) for mailman id 226571;
 Tue, 16 Nov 2021 20:38:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KMVQ=QD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mn5Dk-00024p-TY
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 20:38:24 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23cbee5b-471d-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 21:38:23 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 73E2A615E2;
 Tue, 16 Nov 2021 20:38:21 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23cbee5b-471d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637095101;
	bh=SvKPdFkKvv9/l3E29avCQQ5l60+C6CAU2FDLUlSCpeE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=BRu09yU/fREfiDfQFT7QWZGklu/p/AtBihXxjoQrhE+RImimHpY5Q9mOtPklCh8W+
	 ZR+uFXfRF2sE8QhkMiYXEamfm7JTQL+fKoB8FKUBTlzphpIBhH7mURkybFeoOYt3yy
	 w71kKxCX/lJBYuoc2fSo68M3ygSRceOjxSE8LVn6tEvSuobA0hf4YUg1LkQXU/B9oI
	 C7871e1BOz+YMEBoc4jrPHYUfH1hJCH2ZAAsNmmOa0zBdyGdCwUikkFnbxXUNKHGzS
	 vtm22DMQRhGkqTSUr/SNCmRsQXt5qFcL4FChk55kNOpiW43pN8cS0xRBjNR9gc24rn
	 b0Vbd7MM36MVw==
Date: Tue, 16 Nov 2021 12:38:19 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <luca.fancellu@arm.com>
cc: xen-devel@lists.xenproject.org, bertrand.marquis@arm.com, wei.chen@arm.com, 
    iwj@xenproject.org, Stefano Stabellini <sstabellini@kernel.org>, 
    Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH-4.16] arm/efi: Improve performance requesting filesystem
 handle
In-Reply-To: <20211116150624.7720-1-luca.fancellu@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111161235260.1412361@ubuntu-linux-20-04-desktop>
References: <20211116150624.7720-1-luca.fancellu@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 16 Nov 2021, Luca Fancellu wrote:
> Currently, the code used to handle and possibly load from the filesystem
> modules defined in the DT is allocating and closing the filesystem handle
> for each module to be loaded.
> 
> To improve the performance, the filesystem handle pointer is passed
> through the call stack, requested when it's needed only once and closed
> if it was allocated.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>

This is great, thanks Luca!

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> Justification for integration in 4.16:
> Upside:   Fixes a performance issue only on arm that would be really useful
>           for ARM users using the release, no functional changes.
> Downside: It's affecting the EFI boot path (only on ARM).
> Risk:     Risk is low given the small changes.

As mentioned on IRC to Ian, the reason I said I'd be happy to see it in 4.16 is
that it is addressing the leftover open issue from the original patch
which was committed a bit too quickly (if you recall you asked me if I
thought it should be reverted). But now at this stage it is hard to
disagree that it should go in when the window reopens.

So I think we can queue it in the Xen on ARM temporary for-next branch.


> Tested in this configurations:
>  - Bootloader loads modules and specify them as multiboot modules in DT:
>    * combination of Dom0, DomUs, Dom0 and DomUs
>  - DT specifies multiboot modules in DT using xen,uefi-binary property:
>    * combination of Dom0, DomUs, Dom0 and DomUs
>  - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
>    other multiboot modules are listed for DomUs using xen,uefi-binary
>  - No multiboot modules in DT and no kernel entry in cfg file:
>    * proper error thrown
> ---
>  xen/arch/arm/efi/efi-boot.h | 33 +++++++++++++++++++++------------
>  1 file changed, 21 insertions(+), 12 deletions(-)
> 
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index 458cfbbed4..c4ed412845 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -45,14 +45,17 @@ void __flush_dcache_area(const void *vaddr, unsigned long size);
>  static int get_module_file_index(const char *name, unsigned int name_len);
>  static void PrintMessage(const CHAR16 *s);
>  static int allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
> +                                EFI_FILE_HANDLE *dir_handle,
>                                  const char *name,
>                                  unsigned int name_len);
>  static int handle_module_node(EFI_LOADED_IMAGE *loaded_image,
> +                              EFI_FILE_HANDLE *dir_handle,
>                                int module_node_offset,
>                                int reg_addr_cells,
>                                int reg_size_cells,
>                                bool is_domu_module);
>  static int handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
> +                                       EFI_FILE_HANDLE *dir_handle,
>                                         int domain_node);
>  static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
>  
> @@ -648,10 +651,10 @@ static void __init PrintMessage(const CHAR16 *s)
>   * index of the file in the modules array or a negative number on error.
>   */
>  static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
> +                                       EFI_FILE_HANDLE *dir_handle,
>                                         const char *name,
>                                         unsigned int name_len)
>  {
> -    EFI_FILE_HANDLE dir_handle;
>      module_name *file_name;
>      CHAR16 *fname;
>      union string module_name;
> @@ -686,12 +689,11 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
>      file_name->name_len = name_len;
>  
>      /* Get the file system interface. */
> -    dir_handle = get_parent_handle(loaded_image, &fname);
> +    if ( !*dir_handle )
> +        *dir_handle = get_parent_handle(loaded_image, &fname);
>  
>      /* Load the binary in memory */
> -    read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
> -
> -    dir_handle->Close(dir_handle);
> +    read_file(*dir_handle, s2w(&module_name), &module_binary, NULL);
>  
>      /* Save address and size */
>      file_name->addr = module_binary.addr;
> @@ -712,6 +714,7 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
>   * Returns 1 if module is multiboot,module, 0 if not, < 0 on error
>   */
>  static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
> +                                     EFI_FILE_HANDLE *dir_handle,
>                                       int module_node_offset,
>                                       int reg_addr_cells,
>                                       int reg_size_cells,
> @@ -744,8 +747,8 @@ static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
>      file_idx = get_module_file_index(uefi_name_prop, uefi_name_len);
>      if ( file_idx < 0 )
>      {
> -        file_idx = allocate_module_file(loaded_image, uefi_name_prop,
> -                                        uefi_name_len);
> +        file_idx = allocate_module_file(loaded_image, dir_handle,
> +                                        uefi_name_prop, uefi_name_len);
>          if ( file_idx < 0 )
>              return file_idx;
>      }
> @@ -812,6 +815,7 @@ static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
>   * Returns number of multiboot,module found or negative number on error.
>   */
>  static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
> +                                              EFI_FILE_HANDLE *dir_handle,
>                                                int domain_node)
>  {
>      int module_node, addr_cells, size_cells, len;
> @@ -842,8 +846,8 @@ static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
>            module_node > 0;
>            module_node = fdt_next_subnode(fdt, module_node) )
>      {
> -        int ret = handle_module_node(loaded_image, module_node, addr_cells,
> -                                     size_cells, true);
> +        int ret = handle_module_node(loaded_image, dir_handle, module_node,
> +                                     addr_cells, size_cells, true);
>          if ( ret < 0 )
>              return ret;
>  
> @@ -862,6 +866,7 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>  {
>      int chosen, node, addr_len, size_len;
>      unsigned int i = 0, modules_found = 0;
> +    EFI_FILE_HANDLE dir_handle = NULL;
>  
>      /* Check for the chosen node in the current DTB */
>      chosen = setup_chosen_node(fdt, &addr_len, &size_len);
> @@ -881,20 +886,24 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>          if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
>          {
>              /* Found a node with compatible xen,domain; handle this node. */
> -            ret = handle_dom0less_domain_node(loaded_image, node);
> +            ret = handle_dom0less_domain_node(loaded_image, &dir_handle, node);
>              if ( ret < 0 )
>                  return ERROR_DT_MODULE_DOMU;
>          }
>          else
>          {
> -            ret = handle_module_node(loaded_image, node, addr_len, size_len,
> -                                     false);
> +            ret = handle_module_node(loaded_image, &dir_handle, node, addr_len,
> +                                     size_len, false);
>              if ( ret < 0 )
>                   return ERROR_DT_MODULE_DOM0;
>          }
>          modules_found += ret;
>      }
>  
> +    /* dir_handle can be allocated in allocate_module_file, free it if exists */
> +    if ( dir_handle )
> +        dir_handle->Close(dir_handle);
> +
>      /* Free boot modules file names if any */
>      for ( ; i < modules_idx; i++ )
>      {
> -- 
> 2.17.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 20:41:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 20:41:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226577.391562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn5GY-0003U9-Cg; Tue, 16 Nov 2021 20:41:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226577.391562; Tue, 16 Nov 2021 20:41:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn5GY-0003U1-9n; Tue, 16 Nov 2021 20:41:18 +0000
Received: by outflank-mailman (input) for mailman id 226577;
 Tue, 16 Nov 2021 20:41:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KMVQ=QD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mn5GX-0003Tr-2r
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 20:41:17 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a515a1f-471d-11ec-9787-a32c541c8605;
 Tue, 16 Nov 2021 21:41:16 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 7673E615E2;
 Tue, 16 Nov 2021 20:41:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a515a1f-471d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637095273;
	bh=HJXh7d45EkOa81W0yYy22f31pSuK5EYCpmnPfOH9bV0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lzMniruqAN7FIccrEqhN47qqJzeE7l1cHj/1rgGKbZObRkVdUoQbTmBnGezQpNi8E
	 TFbpkVKPVaaRWTkwQLPjGO7LYYvdJPM2H29BHKkCdqNhEzoeQKz5jiJ/0qLMIeY1Fv
	 +NY4C659CRa5QsZeFR0icQGOTjdSmiYf6Sbem01xmHvC3S91FaIYXpcBz1i7zI4g/E
	 AyFDdC+oYSm4HXcdOFacA4Xbqp7bG6OZh8ZvCovCJlvWYjhsh/jz/Rkj8wkVMFSPZI
	 5qKpZKo3SLA2pR+7N8CRic3wzmdAgOixqkWRFiymK+AbYWh7HgBJChNQlghLLDtjJR
	 gG1Qb69VzO37A==
Date: Tue, 16 Nov 2021 12:41:12 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, boris.ostrovsky@oracle.com, 
    xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Stefano Stabellini <stefano.stabellini@xilinx.com>, Stable@vger.kernel.org, 
    jgross@suse.com
Subject: Re: [PATCH v2] xen: don't continue xenstore initialization in case
 of errors
In-Reply-To: <29e1ea87-c2e3-f8b1-b843-a390ad280984@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111161239180.1412361@ubuntu-linux-20-04-desktop>
References: <20211115222719.2558207-1-sstabellini@kernel.org> <29e1ea87-c2e3-f8b1-b843-a390ad280984@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 16 Nov 2021, Jan Beulich wrote:
> On 15.11.2021 23:27, Stefano Stabellini wrote:
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > 
> > In case of errors in xenbus_init (e.g. missing xen_store_gfn parameter),
> > we goto out_error but we forget to reset xen_store_domain_type to
> > XS_UNKNOWN. As a consequence xenbus_probe_initcall and other initcalls
> > will still try to initialize xenstore resulting into a crash at boot.
> > 
> > [    2.479830] Call trace:
> > [    2.482314]  xb_init_comms+0x18/0x150
> > [    2.486354]  xs_init+0x34/0x138
> > [    2.489786]  xenbus_probe+0x4c/0x70
> > [    2.498432]  xenbus_probe_initcall+0x2c/0x7c
> > [    2.503944]  do_one_initcall+0x54/0x1b8
> > [    2.507358]  kernel_init_freeable+0x1ac/0x210
> > [    2.511617]  kernel_init+0x28/0x130
> > [    2.516112]  ret_from_fork+0x10/0x20
> > 
> > Cc: <Stable@vger.kernel.org>
> > Cc: jbeulich@suse.com
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> For the immediate purpose as described this looks okay, so
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thank you!


> However, aren't there further pieces missing on this error patch:
> - clearing of xenstored_ready in case it got set,
> - rolling back xenstored_local_init() (XS_LOCAL) and xen_remap()
>   (XS_HVM).
> And shouldn't xs_init() failure when called from xenbus_probe()
> also result in the driver not giving the appearance of being usable?

I prioritized this patch because I have a direct test case for this
issue and I can see that this patch solves it. But what you wrote is
true, and I can have a look in the following weeks.


> > --- a/drivers/xen/xenbus/xenbus_probe.c
> > +++ b/drivers/xen/xenbus/xenbus_probe.c
> > @@ -909,7 +909,7 @@ static struct notifier_block xenbus_resume_nb = {
> >  
> >  static int __init xenbus_init(void)
> >  {
> > -	int err = 0;
> > +	int err;
> >  	uint64_t v = 0;
> >  	xen_store_domain_type = XS_UNKNOWN;
> >  
> 
> Minor remark: You may want to take the opportunity and add the
> missing blank line here to visually separate the assignment from
> the declarations.
> 
> Jan
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 16 22:34:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Nov 2021 22:34:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226582.391573 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn71a-0005AY-Hl; Tue, 16 Nov 2021 22:33:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226582.391573; Tue, 16 Nov 2021 22:33:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn71a-0005AR-EB; Tue, 16 Nov 2021 22:33:58 +0000
Received: by outflank-mailman (input) for mailman id 226582;
 Tue, 16 Nov 2021 22:33:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iecc=QD=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mn71Z-0005AL-4K
 for xen-devel@lists.xenproject.org; Tue, 16 Nov 2021 22:33:57 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4700087f-472d-11ec-a9d2-d9f7a1cc8784;
 Tue, 16 Nov 2021 23:33:54 +0100 (CET)
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AGLl6k8032014; 
 Tue, 16 Nov 2021 22:33:52 GMT
Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cbhv859w2-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 16 Nov 2021 22:33:51 +0000
Received: from pps.filterd (userp3030.oracle.com [127.0.0.1])
 by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AGMCDNN020304;
 Tue, 16 Nov 2021 22:33:50 GMT
Received: from nam10-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam10lp2107.outbound.protection.outlook.com [104.47.58.107])
 by userp3030.oracle.com with ESMTP id 3ca2fwwd0d-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 16 Nov 2021 22:33:49 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BLAPR10MB5297.namprd10.prod.outlook.com (2603:10b6:208:326::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 22:33:48 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.019; Tue, 16 Nov 2021
 22:33:48 +0000
Received: from [10.74.108.16] (138.3.200.16) by
 BYAPR03CA0015.namprd03.prod.outlook.com (2603:10b6:a02:a8::28) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Tue, 16 Nov 2021 22:33:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4700087f-472d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=8NbJ0EHl9hAkWILQHHMbUsq3DDQ6kVQFE3xM9BWEFiE=;
 b=FhAqZRxTYEg5eLskjcLPfT5fEuF2JKPcn7ffsht8bC5bCdk9Ho9P9RamunVo4F6xC5/m
 o2xihYlK05/o0edUPZTOTpZZQhFFtZcK03Jv7tvz3P3zoyIQi+jcLBEgz1bMK8+xKbwi
 /2QC3qNUdjFBa0MiOIvWGVbwBgSnVIj7CWr4JLmfvgAV62E2wNH3c4Au8/itTgBdPiTc
 3alWJfTAX4AQmM/O5BMviLrmmySGSKTjFgIcUM8NgG7ANa1HLzwfPKtIB9p2A0A+1jxo
 zKOFa+pRlZR6OlbaalMUddB726BxeO6XZ+anLx8BMfDAYRCrNtnSWT6KNtPBJ6JnjHGQ fw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AFhFx2+td5nlwENlCdbALSe/3Xrg+gP5pKI3QJuAhyuzMLWf2Aqwnri0y72z20qoTYMdxw9mMCaaWaoHcfxs/9OfHZNnfYw2jGa1U3UjaQx3s6SvGnG4k7O0afypZqO4GtuHAUMcZStt/V6Jvv98xCYryf8/OOL2vKumhhjojr++ampX0uG+y9q4k/dGuxEvu9K0hSX00/BLq+q6NTmV8BSbRGoUTt7fq0keTfF0VdQzwQ2EC8RNKGIN8PM7/o49/b9Un2PFQtz5q+Rly7cCyPTUSZWgJD7B7audQifY7fNbJziMiVemMG8egJrx7TRLrwmDWY4va/7eST2IuKtX7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8NbJ0EHl9hAkWILQHHMbUsq3DDQ6kVQFE3xM9BWEFiE=;
 b=S0DT89PNnZCTT0UKYFl3RcEmtTnbLJLJmEPSpywDksXze+eH3JTwgl5jVpLDyDQHF4c99P8ofpRh1AQVoA6fyq3JT2sUOfMfJKTyBmZQ2rCJjdmLcDVnNkYEpsNAK8c2RlcATO5d0MzV+4WfepHXqLHEe3QETXSwgNQoOZzicwjOPMgZcDOZs4C5B2G398iuU6uiJsgV1oZWB6p6Zk4lvrBMiXkhgZpBc81/5ftVJjaNTdZkJq45Nn3+VwEyB0dYnmQPzgEHZUUcubYFOTZHpxq+EFCTmXzc4Xf8JrBtFFMtgvLaw+AmD3MxkZGD9LyWF1Eg2QpKUTw8SEVoq2AHgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8NbJ0EHl9hAkWILQHHMbUsq3DDQ6kVQFE3xM9BWEFiE=;
 b=NBF5Q5GXVtBYsimp4KXEfYTquiXXA8xZ118JMSB84a0gMoLo01+1RdkqDRSaZm0sGMI7d6Ve75IlpLOaIVlLWc6lhOg+irzJI8tRV+ZJpBmLq4Bqm9eyhuZJMJzuRMDQuzYpAFxLUdyaM1zpT3rXKQE8d5eVSdbcUGBdnWbVu8Q=
Message-ID: <f6957992-3431-c576-a8d4-daf4e60832cb@oracle.com>
Date: Tue, 16 Nov 2021 17:33:43 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/privcmd: make option visible in Kconfig
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>
Cc: linux@weissschuh.net, Stefano Stabellini <sstabellini@kernel.org>,
        xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20211116143323.18866-1-jgross@suse.com>
 <f80f3207-363d-51b7-4ae0-e4b8aeb2544b@suse.com>
 <b155f66d-8259-ba87-62c4-ce8a0f7ed82f@suse.com>
 <c6de136f-a1b9-2643-3858-9cd3d76e6f57@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <c6de136f-a1b9-2643-3858-9cd3d76e6f57@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BYAPR03CA0015.namprd03.prod.outlook.com
 (2603:10b6:a02:a8::28) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 10a5ce96-f0b6-4bfe-d39c-08d9a9512825
X-MS-TrafficTypeDiagnostic: BLAPR10MB5297:
X-Microsoft-Antispam-PRVS: 
	<BLAPR10MB5297D6F00421594C0C9DB1338A999@BLAPR10MB5297.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3826;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	hVE37oVohM2Dvu2fWqzgF1oxJNw5a+p0R3m8HwbcNzTSx2U4XUVlDW+oOumqtqZZSCNwdvxgzNLJFTa4t80w4HeNX8MnBx1iNL9vyknun5iDCbFWXgeDSFUdQdkhAF9zcg+JAMVGDCvyfk5r2352LmAXlbPl+Ymh2cN4HYS7LLnthf/wmqDFyVxNQrnmpt/zfCSU6s/8OpTv8kZwcoyU3J7OFU4eUMbtfrGiOj6NG8VNOpj6dyxcX2qmXBgrCVnroZoy63utFu577X67vdpuwu1fgjsRpuMXqyw5FX/wSK1fkh2F/tx5751zdDP9QLis1IRztQXhre6b6f46u5rAymE4J1bjGXBPAAQEZDrrzytU4leNPC1i+odkpebZTAuzntr+QOVluIiFA2/3IouKCzfnVlSJRCGUhTU8iDWIBgK8BS2bhQ2r2U5kWD/6vIV9QfZjTODTRUe5pG81FCcdj30DTwZcJrjQc9FuCqvFju1+RjZczV0I/p5hy7mytNSWLVEWgPWDKDtb3RRhK4tvf+PHCicY/uvpl5I73Viu4mbMV/WXDSAPqYWrelYx4shhWew3MIUPvTJ3+iwyglzHD4TlH3zHI5HrTldFYiH1QtMj2mBv4AeaGMPa61tbVICSZUZ+DrVb/SQdkvjEz1qLZROUjUIlZsM6j2XptzuJ2bL8Am8LGZoZRuZjgGGIJ5w1dvt4+KpEko0qoWYWQGfx12rnqQsRkju2s1NN/f558YDiwry0i5b/fYQJE8PVFlFU
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(53546011)(66556008)(956004)(4326008)(4744005)(508600001)(16576012)(26005)(31696002)(38100700002)(86362001)(6486002)(31686004)(66476007)(2616005)(8676002)(110136005)(66946007)(44832011)(6666004)(8936002)(2906002)(186003)(5660300002)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?U1pneUxINXNBNXg1U2NvZDQra2N5eGhFaU43RUgxWHBVWUN3bGZpbUY2cDdy?=
 =?utf-8?B?Ly9JYjFHZmhPTkJCd0tBYW5meWV4TlllOFdTaWd0eWNubEpzdGZwOThWRWRl?=
 =?utf-8?B?MytJem9ITlo2a20wQjRXaGtUajc0aGZ3alhjSEhqcGlQMDV3NVlZRWp0UEhZ?=
 =?utf-8?B?T0dFRitxbTg5ejlYcGovaUtBOExwWnIraW1LeWhNQS9Sc2hEbURCSjRiOElO?=
 =?utf-8?B?MVg4RXUvMUNzVW9vQnNaa1RWSXBJRlZPWGFiS1VhdDNla1ZHOVFQUHJDbUVv?=
 =?utf-8?B?UFk3QnA1SGxiRnlwQVcwSDVFN1pCeUJpN1RaMDN4Ky92dkJzdTljVnhVU0pH?=
 =?utf-8?B?NDF2c2xnZlBZQ28rNjdCcnNEOXlka1d5REhNcTVCZnpCTXA5QmNKamZ1dE1q?=
 =?utf-8?B?YXlMWER1U2VlV0tvU2VZYkxIZlNyd1ZieUJ2VXZEZDAra0tUM0w5WGNnNVo1?=
 =?utf-8?B?VVNjanhuTUJ1dEY5SW1UTER3WlhqK1FjTklrMjIyL0FYQ21KRGVFZVJ2eHNn?=
 =?utf-8?B?TWNOTVRVMlhKOE9YemJtVVFVL2huY1ppYmxycnBBNlF0NVAwR3BhWXBSaTRO?=
 =?utf-8?B?NTJnU2VsdjhVMFd3S0QwVEU3RzZZQzZnd3hkR2MvUWd2L2hxN042U2VobWRw?=
 =?utf-8?B?bXhZNHdNWTQwVXlKQkQxWDFERW5nbjZKdmU1Zm1TWG9POUkvbjlqMmpvNU1Z?=
 =?utf-8?B?L05IMkFiQjBITkZUVU83TU4yQzdrSnJ5d2Q2cklrMVh4cW40SUtOSjBCbUll?=
 =?utf-8?B?amJaZHN5bUl0SkJ4NmY5Q0xEcTgxSS83ZS9UOG1QUllUYVZlTk4vVnZZQWZp?=
 =?utf-8?B?YVBpVDB0bUp1MjNCcnExOUVFQ2ZLNUwxb3FGNk83RU5lU0lBZGUrT2YzL2s1?=
 =?utf-8?B?bjBJQUVEQk9ueDVNRG1xSFdXdDZwVWdEZ25FQ3hRM1BVSW1peXcvejRERk5l?=
 =?utf-8?B?RnZnWW1vaUwyMnJCL29nU0JJMUpkc0tZK0FCemgyTVFKUVlrdEFmc3F0aWNJ?=
 =?utf-8?B?K0YwNGRLL2N6dVhLaktxT1QyQ05COVBWYk1iOHk5aHVYaEZYZjk2RHV5TlJw?=
 =?utf-8?B?bjFrNFUzc2hxSHRNSmhLbElabTYzbVRhNG04QXpmaXlBMXo5WEdNRjJYNUhQ?=
 =?utf-8?B?N3Jwd3ZCUndWZ0g0cU5yMzNWU0VVbi8rTDJMczRZOGYvZlp5YVdZcVdTYUhv?=
 =?utf-8?B?cHAwdjhpenR0aHN6Z0V6ZHorNTZjcndwY3ZDanNtOFhiVk15YWFxY1Q1alVK?=
 =?utf-8?B?WWt1MW1SdVZTL01ObjIzcVVUbThxUTNWMjVzdSt1SjlsdndvSERXT2dkY0RK?=
 =?utf-8?B?VkZMSFhQTTMrMnVLZmYrSnl1NXhpQSt2U1Iyalh2S2kvTVN0R28ram5ZOFZr?=
 =?utf-8?B?aTVYcEVrWEhTamdhSHRyVXpycm9zbkNMYVZiRUROK2YzNHh6SUFYRmF3bnZK?=
 =?utf-8?B?OTQ3akFXaDlDVUhlSjhqZ0NTQTFqRG1HL0EvTXhjMHlEQWo3SVlDdlY4b01Q?=
 =?utf-8?B?NVMzenlJZUEreVZGNU1zMVNRcGZ3TVZLTkF0RWNISG9UbzhOQ2oxTjRLQlRI?=
 =?utf-8?B?NWtSRE9lWkdVcittZDBOMWR6dHF3STJyVGV4V2haVmlGSVhEUnpGdlV5cXdl?=
 =?utf-8?B?RUVrY2hMTHBuQnVuYm52K1UvOTVPaWQxUkNvbGtlM0p1OVZkbGV0dHEyUENU?=
 =?utf-8?B?UEJhbStmZGk5MTliZFA0MFNHdGc2SWFvcGVKQUcyQ0NkdzJDcUFzakV4RCtL?=
 =?utf-8?B?OENSKzVCYm93NDBzbjVFNWsvWmIrRFUzbjJMT042WEZGZXpJeVJsZ054eFFZ?=
 =?utf-8?B?cGN4K1lhN1pMa251QTR2Ty90VHFmVm83aWFFbUtaL1R1bnRBYXlXd09wVGln?=
 =?utf-8?B?akZlNFJqSDRrSE9IUEtrelM4ZWpUZ01kUmNiaFo4N2lWVUE2QWlBYWhGaGpm?=
 =?utf-8?B?QllUd1ZlUkEzQzNjQmM4S0QweVBaODFOLy9QNjVJY2tUTXg5eWVEem5xdXhS?=
 =?utf-8?B?aktLY0FwN3ZocDBWbGNJN2Vxam5HZjdrdU5QeXh3dDNWNmhXWFdHSGFpM2xa?=
 =?utf-8?B?L25scnRNaWZVNHhSZHdNTHlNQVFlWGNjZjc5SmNqQ3paSDNzZmR3ZlBjenRm?=
 =?utf-8?B?aVNRK0ROT2ZUMHhyNmR4NlN5TVFXaHBoWlN4a3MzbVJxME9uY1hGYkRjYTJw?=
 =?utf-8?B?ZUJjNVJFazJCb01JbTZWM0tmcDNzK3k1dE5XVFBNR21BR1ZnUHdoeHpoTmNt?=
 =?utf-8?B?ejJOYnVnMkcxb2NTckUyOGpJSUJBPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10a5ce96-f0b6-4bfe-d39c-08d9a9512825
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 22:33:48.3685
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ng27wb837jOm8w7k6iDXoSXd8QhCNgrmMB7QgdgrsFDZs9trLHs2oSwCr2DrdBL7xP0C9qo4K0IPEIcAxZJhn/XzmGvRC6UziOevl2LD5YU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5297
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0
 adultscore=0 mlxlogscore=869 malwarescore=0 mlxscore=0 suspectscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111160099
X-Proofpoint-GUID: gX-tW3FJZm18mmYlvzDVAKc6aBeY2EHA
X-Proofpoint-ORIG-GUID: gX-tW3FJZm18mmYlvzDVAKc6aBeY2EHA


On 11/16/21 11:05 AM, Jan Beulich wrote:
> On 16.11.2021 16:01, Juergen Gross wrote:
>> On 16.11.21 15:55, Jan Beulich wrote:
>>> On 16.11.2021 15:33, Juergen Gross wrote:
>>>
>>>>    
>>>>    config XEN_PRIVCMD
>>>> -	tristate
>>>> +	tristate "Xen hypercall passthrough driver"
>>>>    	depends on XEN
>>>>    	default m
>>>> +	help
>>>> +	  The hypercall passthrough driver allows user land programs to perform
>>> Maybe worth adding "privileged" here? Albeit of course that's different
>>> from the use of the word ...
>> I guess you mean "... allows privileged user programs ..." (another
>> variant might be "The privileged hypercall passthrough ...")?
> The former, yes.


I can apply with this change, no need to resend.


-boris



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 00:09:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 00:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226586.391584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn8VE-0005oE-KP; Wed, 17 Nov 2021 00:08:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226586.391584; Wed, 17 Nov 2021 00:08:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mn8VE-0005o7-Ge; Wed, 17 Nov 2021 00:08:40 +0000
Received: by outflank-mailman (input) for mailman id 226586;
 Wed, 17 Nov 2021 00:08:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Y4lz=QE=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mn8VC-0005o1-HS
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 00:08:38 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 815d2658-473a-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 01:08:36 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id C2FA9613A7;
 Wed, 17 Nov 2021 00:08:33 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 815d2658-473a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637107714;
	bh=ViAGOyVm8Tq61FZIJJwIJ74Z+YlW1ALXCAxCAqiirqk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=bz5JziWHPoKNEVHvj2nEAmUYWoSfBvxx+swpBle5mB7OysaDOLAYEe9NIhcISyff+
	 pUkBG3AW4K2sYClBgK9/j8qhqT+2NlLmHcB17vmjBothhaVvuoSV95/co1juk4Q4Z0
	 A9wj0JSIlYBkSAn3IvwClO0HcuzMn3xM44TY82lhUTP+MRYvIbJ/xTzAAWuKPjznUy
	 pJb0LPXW+6PZm7ZB6u1f5UYJPESLsaghYE7avBhJ2rEy3wASDmkAvRmK0j/OL169sP
	 n7wRX0Wp2bnd0W0tRF8T+2wMW2pVUKXUIsg4esUI5kyLIuqNV7bbhZdGcWcLjlO44q
	 q8BqtUDwpB+VA==
Date: Tue, 16 Nov 2021 16:08:32 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Penny Zheng <penny.zheng@arm.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, julien@xen.org, 
    Bertrand.Marquis@arm.com, Wei.Chen@arm.com
Subject: Re: [PATCH v3 00/10] direct-map memory map
In-Reply-To: <20211116063155.901183-1-penny.zheng@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111161607360.1412361@ubuntu-linux-20-04-desktop>
References: <20211116063155.901183-1-penny.zheng@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 16 Nov 2021, Penny Zheng wrote:
> Cases where domU needs direct-map memory map:
>   * IOMMU not present in the system.
>   * IOMMU disabled if it doesn't cover a specific device and all the guests
> are trusted. Thinking a mixed scenario, where a few devices with IOMMU and
> a few without, then guest DMA security still could not be totally guaranteed.
> So users may want to disable the IOMMU, to at least gain some performance
> improvement from IOMMU disabled.
>   * IOMMU disabled as a workaround when it doesn't have enough bandwidth.
> To be specific, in a few extreme situation, when multiple devices do DMA
> concurrently, these requests may exceed IOMMU's transmission capacity.
>   * IOMMU disabled when it adds too much latency on DMA. For example,
> TLB may be missing in some IOMMU hardware, which may bring latency in DMA
> progress, so users may want to disable it in some realtime scenario.
>   * Guest OS relies on the host memory layout
> 
> "direct-map" property shall be added under the appropriate domain node,
> when users requesting direct-map memory mapping for the domain.
> 
> Right now, direct-map is only supported when domain on Static Allocation,
> that is, "xen,static-mem" is also necessary in the domain configuration.
> 
> Looking into related [design link](
> https://lists.xenproject.org/archives/html/xen-devel/2021-05/msg00882.html)
> for more details.
> 
> The whole design is about Static Allocation and direct-map, and this
> Patch Serie only covers parts of it, which are direct-map memory map.
> Other features will be delievered through different patch series.
> 
> See https://lists.xenproject.org/archives/html/xen-devel/2021-09/msg00855.html
> for Domain on Static Allocation.
> 
> This patch serie is based on
> https://lists.xenproject.org/archives/html/xen-devel/2021-10/msg00822.html

I haven't had a chance to review the series but I wanted to say that I
tested it successfully both with and without direct-map, so:

Tested-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 02:12:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 02:12:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226591.391595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnAQT-0003LE-KD; Wed, 17 Nov 2021 02:11:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226591.391595; Wed, 17 Nov 2021 02:11:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnAQT-0003L7-GZ; Wed, 17 Nov 2021 02:11:53 +0000
Received: by outflank-mailman (input) for mailman id 226591;
 Wed, 17 Nov 2021 02:11:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Y4lz=QE=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnAQS-0003Kv-5y
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 02:11:52 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7ec6bbb-474b-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 03:11:48 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 7572761507;
 Wed, 17 Nov 2021 02:11:47 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7ec6bbb-474b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637115107;
	bh=1sJR+x8QSuLwW/kR5p/1Dip3rvuByc6vAKciM3MxL+Q=;
	h=From:To:Cc:Subject:Date:From;
	b=g/XwgabaeLNS1AEjamMRtCcZFcGKZDMcoxKQ3cvC3A22/ImQv7CGvtc0Mbwi6m2sg
	 bGnHNmvAII0X2EyopbfdL9zDsV+ThTWDe94DVWl8N0tapFDZRHdicZj9fz0vsrjj8N
	 VmfvxLWhqkUJ46iL7GYKyKz/i6UnlQg7h+YukiqajqMKhFZvG88mdJLlgx67u2WPzc
	 7HqbDdrzIz6eIctAYlpHZjnbK/qqQZw58tD4eqc7gsCqJoi+Plj2W72D07W6LRtTkz
	 tHmnE7xJk4ZlwPG3Q7f2jvMt5q56osyqq9IUXemY6OKzM1r8Ad9L2KB3aMKPKdPBqR
	 lUJmhzwT0tR0g==
From: Stefano Stabellini <sstabellini@kernel.org>
To: jgross@suse.com
Cc: boris.ostrovsky@oracle.com,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	sstabellini@kernel.org,
	jbeulich@suse.com,
	Stefano Stabellini <stefano.stabellini@xilinx.com>,
	stable@vger.kernel.org
Subject: [PATCH] xen: detect uninitialized xenbus in xenbus_init
Date: Tue, 16 Nov 2021 18:11:45 -0800
Message-Id: <20211117021145.3105042-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

If the xenstore page hasn't been allocated properly, reading the value
of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
error. Instead, it will succeed and return zero.

Instead of attempting to xen_remap a bad guest physical address, detect
this condition and return early.

Note that although a guest physical address of zero for
HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
and zero has never been validly used in that capacity.

Cc: stable@vger.kernel.org
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
 drivers/xen/xenbus/xenbus_probe.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 94405bb3829e..c89de0062399 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -951,6 +951,18 @@ static int __init xenbus_init(void)
 		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
 		if (err)
 			goto out_error;
+		/*
+		 * Uninitialized hvm_params are zero and return no error.
+		 * Although it is theoretically possible to have
+		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
+		 * not zero when valid. If zero, it means that Xenstore hasn't
+		 * been properly initialized. Instead of attempting to map a
+		 * wrong guest physical address return error.
+		 */
+		if (v == 0) {
+			err = -ENOENT;
+			goto out_error;
+		}
 		xen_store_gfn = (unsigned long)v;
 		xen_store_interface =
 			xen_remap(xen_store_gfn << XEN_PAGE_SHIFT,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 06:57:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 06:57:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226596.391606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnEsR-0003Od-QF; Wed, 17 Nov 2021 06:57:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226596.391606; Wed, 17 Nov 2021 06:57:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnEsR-0003OW-Mj; Wed, 17 Nov 2021 06:57:03 +0000
Received: by outflank-mailman (input) for mailman id 226596;
 Wed, 17 Nov 2021 06:57:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Hmy3=QE=epam.com=prvs=19557d9e99=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnEsP-0003OG-Va
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 06:57:02 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ea7c7dc-4773-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 07:56:59 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AH5mLMY001573;
 Wed, 17 Nov 2021 06:56:56 GMT
Received: from eur02-am5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2051.outbound.protection.outlook.com [104.47.4.51])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ccuhf06fn-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 17 Nov 2021 06:56:56 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6322.eurprd03.prod.outlook.com (2603:10a6:20b:15e::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.18; Wed, 17 Nov
 2021 06:56:49 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4690.028; Wed, 17 Nov 2021
 06:56:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ea7c7dc-4773-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=a77DueqCOFK+nKamu7H7fDBGQkyfHf2o+ycCjsvEVHcFkTt9HwtI63T4gr+7U8EJQWamrmYJe0pClKOBfdXXPWIGnhFe6izpsqb29HmgW6U4czbca0NuyLgOepEZl7KtYLmBmTNh/1yPf7eGNyr6PvIMN+6m5PkftN7lUWJlevmjqweZzQPxGAA4Baxgoo74QkfNH81UEQCYRi/GIQGQ0Ch3dyGWWKMd06JIZdLCtxWNILPuCiw642nTDMRux1DGJqzEygwZWvaWz7zu5x7O0Rn1vp41Ooh+G90+IouoJ4VXr5UCDOQyf0JzSpk7v1TTKNRWOZBpPJhMjoL3lBS90g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qIr/KvR55JsY5SmHhWTZTDsnqKW7PYjI1DBTHlH6H80=;
 b=WJFQpcyj3JdUBhLr7g5UV/XI/8DIHNIe4o/a7gFTG7GwzmkLRQldhYu5h/rk/xnK1CGeupOprjRVCUz8bd9vExkmQuX9PJ68XASbXvw3y72p2cJHAqqhlkYuCIF7zpysk+2q+CwRZo16OEYjjBwzKYClkD9xJi3YrSvRbHNags4o8FyumCx95yp8ETz6wZfcYQDKO8dgRp6+mQXrcrAOGszt1uQJVL+oYIIoZHYFIqFcFBhGDU1vL4ld8U42FXyARz9kbdrehyMZ7BMkLOZB8eQnoucTGIGCC3aaxX/7d9DjrNK3M7WM73UHmny1Hnxtd0DHOnoyBdsXYbsPghneQw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qIr/KvR55JsY5SmHhWTZTDsnqKW7PYjI1DBTHlH6H80=;
 b=CIA0uxmw0Cha6JFLfREnM3R2tR17S2FMfUZYHlROSNNP2bHqdO+5B5lcatjrn5xDDVLhJMJGDVSkUcllmTzEJUcnPouaxX0qc50N0tSPcXKYx5dnRCspyvXnGBUep0AmAhVA07m1JJ0ZCHS8fx3RMU/BsxWovvrAtVP7WXGLHIImk985a64akAzel6GCAoN1dYtceOmK9UPPicmo/Cq1A7DAkMb/U4DxoZVch+2z2f16EDaYeY19ABy7Rt0PG1wRwJc5PQB64hbAjV+wJ2sn9HhqIlzWJQHO/kEEVrzVucdrOgJgAHts2nBEii5Tr8dLAVFIPEpB2CwGj2MhUAcggw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Topic: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Index: AQHX0g8QVTbfP59mVU+LM2unTUGOtawGkRQAgADLYgA=
Date: Wed, 17 Nov 2021 06:56:48 +0000
Message-ID: <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
In-Reply-To: <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 14b64536-de3a-4b9d-f58d-08d9a9976d7a
x-ms-traffictypediagnostic: AM0PR03MB6322:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB6322FFEFAD373AB4F62CF108E79A9@AM0PR03MB6322.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 4jDYYzl98WJrbKysmMdb2lsGmpJKLKjAf28VjbK14G9xAvBBv8DrajC7m3eM/oR5kVVVW1a/eVNvMqwR5gLGd25aLvSdl7imd0yZpBwgq1nT/BKBxPe/QExdVnp/bTaJ5Bn8MkO6Cagz023hDQ6OZvRseETsBsnj5LjrUP2ICZVM7gcM9KV456PVcgo8KnP3t66tItteUjgtmC0CKOa1ck67bcKVHna3MyRj29wD+HIlthGo0YycmQOM/5YG501IDkqHOnLlaP2SYrpiG3eD/mzCsWbKmnZdlKYr4IADdYZlO+s7uG5HmlbzKOJFn7o6sZF21EBcEHZBEN/jYKqMh1dXgXn6wJCBVjP9i5icmOuzYN2N7ZNOxix853dBX2ZhB/Q7YGEUO+sLSPC3giVzlEZ5OraZGoIkResih9ay+5fUeqJ9u8SQejUwjj7655zBSYx+AM2MHvpEhxPw2fLsu8ZLcROHM4vwRypov90DjBDwsGKaU92vHYfl7/K6ENylKWBWYKqwg5zJszXV+XQ6F9Ta26hLA9z3LZFmGL5KQSo82KikMBhK1idI2nvbqLLr2yHJ9x1jnKxAq8juGoz9kTzKZj3s3UkvVMFL1nvF6a3yPbXrwUAKGev+u2V5JM8dkrggblnxMemq2cECAECcB4dAa5aNj2UB8QuSJC3XIOea1p5eM2OQTof8IkrXoQHVnSDHry88P/pWALpUD5eVCNAe/etl5cOzvcmN5eAt0wy39BJeGACFS4aOcVhO6+CE
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(91956017)(76116006)(71200400001)(31686004)(4326008)(8936002)(66446008)(5660300002)(66946007)(7416002)(66556008)(2906002)(64756008)(66476007)(2616005)(508600001)(316002)(26005)(6512007)(53546011)(6506007)(86362001)(110136005)(107886003)(36756003)(186003)(122000001)(38100700002)(8676002)(38070700005)(54906003)(6486002)(83380400001)(31696002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?KzRkMXo4dHV2RUtqZGd3TzlQUDBSQkp2ZVM4MjJNMXo2dXNsVHI4NmhHSmRW?=
 =?utf-8?B?YXFxVGtvODM0ZTBKbXhUT0ttMVJ2bDAyQlBCQmJ0WUcyT2cxN0NDeFVJaXJS?=
 =?utf-8?B?NmZsSzJ0a2xYTkUzMEU2akVWU3lGazdjVTBwSGg1Q1ZVaytFMG5lLzVCRHJm?=
 =?utf-8?B?aVQ1WjVlQnc0VUJvcGpkYkhPM3RRWENCMElxWXV6bnluYnMwOHZ5eUU3bVhM?=
 =?utf-8?B?SjVudjhpT2llVFJmL1FVMlBIVGhmMjFGVXQrN20wUnUvenZCbk4vbVB0d2JX?=
 =?utf-8?B?Rmd5YWgrZ2tVUzNOWG9NQTNxRkJYVDA2V21icFRHUlcwYm1uZDlMWmoyZExU?=
 =?utf-8?B?UFpWZTFuL2cyUlJUOGpCV1Ezbk5zQ2ptLzIwb0JsOWxYdVJPKzNSTWRxRUt0?=
 =?utf-8?B?dG5NbVhacjBnRHlrczBsWmFjMk1HTm9nNWVDUm4yVXJRNFYzTnFLTVpCWEdE?=
 =?utf-8?B?d2piWWwza1F4SmlZTU9GL1ZCbjdSR0V6QnhUcmN6bkpPb2VqTUtJUkdHVm9v?=
 =?utf-8?B?d0lGZjlYM20yd0thY1A1eldKazh3TTJYelYwdHBLZXNHUFFhRG40MGUrQS9R?=
 =?utf-8?B?RTNzUjJFdlJoM3VXcWhqb0JtRHIvTS9KYVBXU2ZlNFl5RGNZTHoyZWtCdC9j?=
 =?utf-8?B?YWVuaUF0L2N4Uklrd3BqUTdpOVE4eTZrOXFhRkZZV0h2bXlQQ1VkeDVNU1pv?=
 =?utf-8?B?MEFFN0dYSXA4TnNFMzUrdHF3V2FNRU9zaWJRVm9uTkhVMDdVVmxLcW42OEN2?=
 =?utf-8?B?Q1Nub05GcXN5WEZJeXgxcVR5aE81bHluY0ZvSlFMNFBDVkN3SjU1cEZ5UXQv?=
 =?utf-8?B?K1ZCSmNyRG1iQmVsenFsU3ZFYlVPYXpIdkNDYzFVWC9iNm9vWDg0bzhQYUtB?=
 =?utf-8?B?MHAwUXFkZzFGc3o3NUoxV09qVjFGZUVYb2Q0NEdRN0xhdXU3d3crdk1tT2lS?=
 =?utf-8?B?bXgzZXNTYWNOclpQZENpNjlFeXVnTS9rSlFwYXZ5cnhSWjZ2LzlZWW5VT3NI?=
 =?utf-8?B?RkVGVWlRQ3pNdHlmaG5QQ3duZHdUT3p6QWU5dWlLbmQ2YTMzV0RYQklrTTFU?=
 =?utf-8?B?VEl3NVdJM3ZqZUZSa1JQYWN1R0pvV0JjdjZYSWt6NmdtTjBacE5Jd2hVV0hK?=
 =?utf-8?B?c2lUekUwUngrWXdFUmhJL0g5SVQzUHZENW10NUs0Z0d0ZmtDOVlvamo5MzhO?=
 =?utf-8?B?MXVBVVovMzN0QVlDeGd0Nk5WZkJvY0JubW5aSUtlbTBjNXgwUzBpTWdpZjdD?=
 =?utf-8?B?dFg2S0V4TnpGMzhsS2NVMFQxNEpDNW9ESnJIWHl0LzJoWGRpM3htK1NGWGhT?=
 =?utf-8?B?SXFNZjVGc3E5T2RraWRvc0tSbFl5VnBUellvbU1rVzE3WE5OOWRob3l0NmFi?=
 =?utf-8?B?ek9VVHZaTm1tSkRtNVI4OW5FQlZvUUFLUDYvZjFndnhGWHBvOUhnR3dzdElm?=
 =?utf-8?B?MHZreUR3OUNZbVZzb3NFQ0NSVEZGZjlCSWQzdHBDdEpUYkZYaUlpSTNPN09U?=
 =?utf-8?B?aVR4dXJhZ3dxSUdnYWlqY04yMFF2cCsxSDJXN2trbng1WWlXWThySldBdlI2?=
 =?utf-8?B?clRjeVZWQVFDeGNRcDdGbVlBUldnV1h5NVpKcnhNNTAvdzFQVW1kcXhhZE9n?=
 =?utf-8?B?amlsMm1mS0pheWVnWXZMUThhVmt0SXlsbkRsS3psOWZuYjdlMG1ZYU9wNjVG?=
 =?utf-8?B?RlhSSmQ3eXltSXFuQmt5dkwvT3RKZ2hGWGN1dXE3elVDcytwWXlMaGxYSUNt?=
 =?utf-8?B?MXJKQ0xtUlAyL2pmTjhubnJxOXFJaWlLZk9oRmNBbkhFNjhoaFQrOHV4Wnhk?=
 =?utf-8?B?TFJtSFJybGxNVHhFY2QxalRoUUtySVFzN2s3eXVobFJvdFJjYzFlYjVaNWlq?=
 =?utf-8?B?bDFJUmlVN3dxNEZpVHhDak0zZWZoVXVYZXZJd0hpeThzRHIyUDRkQklBWGtQ?=
 =?utf-8?B?NlY4czVqL21yd0tSMTlzbDNlSVRuT3Y5VFBSUGZLbzB6dTdUWmxvV2tYM0hh?=
 =?utf-8?B?cnJKaWk3b1RmSnBleGx4K3RocGRvaWM4MGt4N3I3RmIxdTRFSE10Wm9QVmFR?=
 =?utf-8?B?NkZXNGlsVnI5bTVaUEsyM1pqNkdvQ0RRdU9MTGN0QUl5YURCSnBmYmc3TGRK?=
 =?utf-8?B?OXV3TlpCczlQRDFWWi9mYlVlcWM1VWcySkI0UStIZjk4bmlsQVBaTUdLSkQy?=
 =?utf-8?B?dUcwVWRRNGI0L2hvWkZvTTAyYW1DeHYwZjMrY000Y05NZXNpc1d3UnNXbWs2?=
 =?utf-8?B?d2tPTzdNRUNnZC83MkFOZlhodUVrdE5TbTNhRnhGWTVHSzVjeTVYZ214L1B6?=
 =?utf-8?B?MzVQMGRKMlRISmtjWk90dy9tciswWTF6dE5iOEhCVk56NlVCV3hkZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <596006657E82AD4C8F011C38D191EB09@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 14b64536-de3a-4b9d-f58d-08d9a9976d7a
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2021 06:56:49.0540
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ycThuRkejD6dPylhasHoeV7Pd3h3RL5A61YHYd4dFR8BAjLfXHlXKWRGdcfJ+1Y4zygtp70OdEgXcJqWHUTynUOGPAureNO7ugu7JLqKv0+5IIuAfyKNfOggQd11g5MU
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6322
X-Proofpoint-GUID: kJqFq9RUq5c80ay6E6UCXG_U4O-31J3U
X-Proofpoint-ORIG-GUID: kJqFq9RUq5c80ay6E6UCXG_U4O-31J3U
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-17_02,2021-11-16_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 adultscore=0
 bulkscore=0 impostorscore=0 priorityscore=1501 malwarescore=0
 clxscore=1015 phishscore=0 mlxscore=0 lowpriorityscore=0 suspectscore=0
 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111170032

SGksIEp1bGllbiENCg0KT24gMTYuMTEuMjEgMjA6NDgsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRlciwNCj4NCj4gT24gMDUvMTEvMjAyMSAwNjozMywgT2xla3NhbmRyIEFuZHJ1
c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3Nh
bmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0KPj4gSWYgYSBQQ0kgaG9zdCBicmlkZ2Ug
ZGV2aWNlIGlzIHByZXNlbnQgaW4gdGhlIGRldmljZSB0cmVlLCBidXQgaXMNCj4+IGRpc2FibGVk
LCB0aGVuIGl0cyBQQ0kgaG9zdCBicmlkZ2UgZHJpdmVyIHdhcyBub3QgaW5zdGFudGlhdGVkLg0K
Pj4gVGhpcyByZXN1bHRzIGluIHRoZSBmYWlsdXJlIG9mIHRoZSBwY2lfZ2V0X2hvc3RfYnJpZGdl
X3NlZ21lbnQoKQ0KPj4gYW5kIHRoZSBmb2xsb3dpbmcgcGFuaWMgZHVyaW5nIFhlbiBzdGFydDoN
Cj4+DQo+PiAoWEVOKSBEZXZpY2UgdHJlZSBnZW5lcmF0aW9uIGZhaWxlZCAoLTIyKS4NCj4+IChY
RU4pDQo+PiAoWEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+
PiAoWEVOKSBQYW5pYyBvbiBDUFUgMDoNCj4+IChYRU4pIENvdWxkIG5vdCBzZXQgdXAgRE9NMCBn
dWVzdCBPUw0KPj4gKFhFTikgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Kg0KPj4NCj4+IEZpeCB0aGlzIGJ5IGFkZGluZyAibGludXgscGNpLWRvbWFpbiIgcHJvcGVydHkg
Zm9yIGFsbCBkZXZpY2UgdHJlZSBub2Rlcw0KPj4gd2hpY2ggaGF2ZSAicGNpIiBkZXZpY2UgdHlw
ZSwgc28gd2Uga25vdyB3aGljaCBzZWdtZW50cyB3aWxsIGJlIHVzZWQgYnkNCj4+IHRoZSBndWVz
dCBmb3Igd2hpY2ggYnJpZGdlcy4NCj4+DQo+PiBGaXhlczogNGNmYWI0NDI1ZDM5ICgieGVuL2Fy
bTogQWRkIGxpbnV4LHBjaS1kb21haW4gcHJvcGVydHkgZm9yIGh3ZG9tIGlmIG5vdCBhdmFpbGFi
bGUuIikNCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xl
a3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0KPj4gLS0tDQo+PiBOZXcgaW4gdjYN
Cj4+IC0tLQ0KPj4gwqAgeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jwqDCoMKgwqDCoMKgwqAg
fCAxNSArKysrKysrKysrKysrKy0NCj4+IMKgIHhlbi9hcmNoL2FybS9wY2kvcGNpLWhvc3QtY29t
bW9uLmMgfMKgIDIgKy0NCj4+IMKgIHhlbi9pbmNsdWRlL2FzbS1hcm0vcGNpLmjCoMKgwqDCoMKg
wqDCoMKgwqAgfMKgIDggKysrKysrKysNCj4+IMKgIDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0
aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt
L2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+PiBpbmRleCA0
OTFmNWUyYzMxNmUuLmY3ZmNiMTQwMGMxOSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9k
b21haW5fYnVpbGQuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+PiBA
QCAtNzUzLDkgKzc1MywyMiBAQCBzdGF0aWMgaW50IF9faW5pdCB3cml0ZV9wcm9wZXJ0aWVzKHN0
cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sDQo+PiDCoMKgwqDCoMKg
wqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdWludDE2X3Qgc2VnbWVu
dDsNCj4+IMKgICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qDQo+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgICogVGhlIG5vZGUgZG9lc24ndCBoYXZlICJsaW51eCxwY2ktZG9tYWluIiBwcm9w
ZXJ0eSBhbmQgaXQgaXMNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBwb3NzaWJsZSB0
aGF0Og0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqwqAgLSBYZW4gb25seSBoYXMgZHJp
dmVycyBmb3IgYSBwYXJ0IG9mIHRoZSBob3N0IGJyaWRnZXMNCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgKsKgIC0gc29tZSBob3N0IGJyaWRnZXMgYXJlIGRpc2FibGVkDQo+PiArwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgICogTWFrZSBzdXJlIHdlIGluc2VydCB0aGUgY29ycmVjdCAibGlu
dXgscGNpLWRvbWFpbiIgcHJvcGVydHkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBp
biBhbnkgY2FzZSwgc28gd2Uga25vdyB3aGljaCBzZWdtZW50cyB3aWxsIGJlIHVzZWQNCj4+ICvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBieSBMaW51eCBmb3Igd2hpY2ggYnJpZGdlcy4NCj4N
Cj4gVGhlIGNoZWNrIGFib3ZlIHdpbGwgY2hlY2sgdGhlIG5vZGUgdHlwZSBpcyAicGNpIi4gQUZB
SUNULCB0aGlzIHdvdWxkIGFsc28gY292ZXIgUENJIGRldmljZXMuIEkgYW0gbm90IGF3YXJlIG9m
IGFueSBpc3N1ZSB0byBhZGQgImxpbnV4LHBjaS1kb21haW4iIGZvciB0aGVtLiBIb3dldmVyLCB0
aGlzIGZlZWxzIGEgYml0IG9kZC4NCj4NCj4gRnJvbSBteSB1bmRlcnN0YW5kaW5nLCBhIFBDSSBk
ZXZpY2Ugd291bGQgYWx3YXlzIGJlIGRlc2NyaWJlZCBhcyBhIGNoaWxkIG9mIHRoZSBob3N0YnJp
ZGdlcy4gU28gSSB3b3VsZCByZXdvcmsgdGhlICdpZicgdG8gYWxzbyBjaGVjayBpZiB0aGUgcGFy
ZW50IHR5cGUgaXMgbm90ICJwY2kiLg0KPg0KV2UgbWF5IGhhdmUgImJyaWRnZSAtPiBicmlkZ2Ug
LT4gZGV2aWNlIiB0b3BvbG9neSBhcyB3ZWxsLg0KU28sIEkgcHJlZmVyIHRvIGhhdmUgdGhlIGNo
ZWNrIGFzIGl0IGlzLg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLw0KPj4gwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVzID0gcGNpX2dldF9ob3N0X2JyaWRnZV9zZWdtZW50KG5v
ZGUsICZzZWdtZW50KTsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggcmVzIDwg
MCApDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXM7DQo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHNlZ21lbnQgPSBwY2lfZ2V0X25ld19kb21haW5fbnIoKTsNCj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgcHJpbnRrKFhFTkxPR19ERUJVRyAiQXNzaWduZWQgc2VnbWVudCAl
ZCB0byAlc1xuIiwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCBzZWdtZW50LCBub2RlLT5mdWxsX25hbWUpOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfQ0KPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVzID0gZmR0X3Byb3BlcnR5
X2NlbGwoa2luZm8tPmZkdCwgImxpbnV4LHBjaS1kb21haW4iLCBzZWdtZW50KTsNCj4+IMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggcmVzICkNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJj
aC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5jIGIveGVuL2FyY2gvYXJtL3BjaS9wY2ktaG9zdC1j
b21tb24uYw0KPj4gaW5kZXggZDhjYmFhYWJhNjU0Li40NzEwNGIyMmIyMjEgMTAwNjQ0DQo+PiAt
LS0gYS94ZW4vYXJjaC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5jDQo+PiArKysgYi94ZW4vYXJj
aC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5jDQo+PiBAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQg
cGNpX2FkZF9ob3N0X2JyaWRnZShzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2UpDQo+PiDC
oMKgwqDCoMKgIGxpc3RfYWRkX3RhaWwoJmJyaWRnZS0+bm9kZSwgJnBjaV9ob3N0X2JyaWRnZXMp
Ow0KPj4gwqAgfQ0KPj4gwqAgLXN0YXRpYyBpbnQgcGNpX2dldF9uZXdfZG9tYWluX25yKHZvaWQp
DQo+PiAraW50IHBjaV9nZXRfbmV3X2RvbWFpbl9ucih2b2lkKQ0KPj4gwqAgew0KPj4gwqDCoMKg
wqDCoCByZXR1cm4gYXRvbWljX2luY19yZXR1cm4oJmRvbWFpbl9ucik7DQo+DQo+IFdlIG1heSBo
YXZlIGEgRFQgd2hlcmUgb25seSB0aGUgbm9kZXMgdXNlZCBieSBYZW4gaGF2ZSAibGludXgscGNp
LWRvbWFpbiIuIEluIHRoaXMgY2FzZSwgd2Ugd291bGQgZW5kIHVwIHRvIHJldHVybiAwLCAxLi4u
IHdoaWNoIG1heSBoYXZlIGFscmVhZHkgYmVlbiB1c2VkLg0KPg0KPiBUaGlzIHdpbGwgcHJvYmFi
bHkgbWFrZSBMaW51eCB1bmhhcHB5LiBTbyBJIHdvdWxkIHJldHVybiAtMSBoZXJlIGlmIHVzZV9k
dF9kb21haW5zID09IDEuIFRoZSBjYWxsZXIgd291bGQgYWxzbyBuZWVkIHRvIGJhaWwgb3V0IGlm
IC0xIGlzIHJldHVybmVkLg0KWWVzLCB0aGlzIHNvdW5kcyByZWFzb25hYmxlLCBJIHdpbGwgYWRk
IHRoaXMgY2hhbmdlIGFuZCBwcmludCBhbiBlcnJvciBtZXNzYWdlIHNvIGl0IGlzDQplYXNpZXIg
dG8gdW5kZXJzdGFuZCB3aGF0IFhlbiBkb2Vzbid0IGxpa2UgKGl0IHRvb2sgbWUgYSB3aGlsZSB0
byBkZWJ1ZyBhbmQgdW5kZXJzdGFuZA0Kd2h5IEkgaGF2ZSAiKFhFTikgRGV2aWNlIHRyZWUgZ2Vu
ZXJhdGlvbiBmYWlsZWQgKC0yMikuIikNCj4NCj4gQ2hlZXJzLA0KPg0KVGhhbmsgeW91LA0KT2xl
a3NhbmRy


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 07:19:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 07:19:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226602.391617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFDg-0005rS-Ko; Wed, 17 Nov 2021 07:19:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226602.391617; Wed, 17 Nov 2021 07:19:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFDg-0005rL-GW; Wed, 17 Nov 2021 07:19:00 +0000
Received: by outflank-mailman (input) for mailman id 226602;
 Wed, 17 Nov 2021 07:18:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnFDf-0005rF-Hg
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 07:18:59 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1421771-4776-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 08:18:58 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2105.outbound.protection.outlook.com [104.47.18.105])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-29-CxDpRj0RNWOpkpOogJj9aw-1; Wed, 17 Nov 2021 08:18:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4190.eurprd04.prod.outlook.com (2603:10a6:803:4b::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Wed, 17 Nov
 2021 07:18:49 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 07:18:49 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0053.eurprd05.prod.outlook.com (2603:10a6:20b:489::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Wed, 17 Nov 2021 07:18:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1421771-4776-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637133537;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ma1hzlFtHGxNvdfFTwmm7EgNAItC/xExQ2/dRnNOFv4=;
	b=lqXpdnoCiXmmueNp76ZjDsmlHIsRswJ3CCDTr7FxW4CioKruCxXKUNgWFcKb56R+ZPMq9R
	GcAH3sCGN85eXwmvx2ygzRMys2YL8Lep6UiwusuJ02QCeKm0NgClWKlQ8ErNq1KeTcOmMa
	5MQDLH/EnddFfbMzfRoLG+5d9FhMetQ=
X-MC-Unique: CxDpRj0RNWOpkpOogJj9aw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iUJNXT3PPS5kWJ7inRZUFssIFiO4sBbnbNThzGFVKehkwD5wEeC08Z3TlYYRKlgN/3C240YXhIelak1K8ChckEx4G6C6r+L0Z4knjNCdQFXCEWQJHd7+NETuieE4jfMopwO7FZpYUJsDfGA5d5JjwwrHJVrYiIVjqQGQRGsXLrTVrIRqL74IBt6y6arvo+xOW97T1CuMRavElbvCE49linLiGaUaG8/ZL3Bjs1NpntDnafJ46G1LN1kC5owdgxpF/l7VpJyOGSZr/SS5Ej06SvzpraD6lTw7LPHRJaAMnJBAfh0cmSjMyFojpL5C7xX9iGyiVBrS9ArnQBGyNJoP9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ma1hzlFtHGxNvdfFTwmm7EgNAItC/xExQ2/dRnNOFv4=;
 b=eTsefedmgvj0zCZWssUrJpSzT5dcxCp0vi3MrHMBfZjoYoYkwhvWL2Z7qpiN6nF8WKMYCw0pHu+YhSYReY4294EQIHBUYH8Dlx0AJXciWUvYXVsJ29ZX3wUsbOdaz4moZdMS824+Y8BK2oUeqw1aQqrOXftviC3z/U6g30P3Ltj1StbOPMZel5YR0l0h5nszDpe/OWNqt5zbRdHzKfTsou5aSqRib1bZJOuMWKvzgWRs77WgwEbOXAjQyb31jhTYl549dC33f7TTuamMeRjRlE6MPKKjOChQKrsWE/SurITBJ/WUVPETnpNW9oMPeYKXUT4KCCJyjOLWNOWm1eiF2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <34522fb0-6b39-e563-49a4-a04145104bd0@suse.com>
Date: Wed, 17 Nov 2021 08:18:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 0/4] gnttab: fallout/improvements from max
 version
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?= <marmarek@invisiblethingslab.com>
Cc: Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <20211115121741.3719-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211115121741.3719-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR05CA0053.eurprd05.prod.outlook.com
 (2603:10a6:20b:489::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4ce6b086-af4e-4b22-2b6b-08d9a99a8015
X-MS-TrafficTypeDiagnostic: VI1PR04MB4190:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB41901EF006806F30F6DD49EAB39A9@VI1PR04MB4190.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	O0mCD8EBNadw6zD0qRkgALJdjPR/Xdi5mbAU78N66wl2nJh7z+KT9P3vRQ6sscdgsCxnShxp7wJoyU/B/KTctUiK0BRC8R2hyDw4ciYPYNunelR+tclH+i094tXtHdj0znXQgPZsWSwcZlPBFMQDgSAbNptl675EJf8gDF6aWs4KL0xg/Bbghi8tGQ4ChgnUtSd4UAxefZbX7dcSZgXgO7Ia4uKaRHr7JyfxTRvdFEHiiY1o3rwFnd9Hqd7d7rqjWBiBJhQBPEeDLl3GXxy4B8crLcsdJK0AtI+FSMNLpImlh0YLxakUpvqpcYFX6x0bLg88RaKDX3O3dmnC2+/nstSB7JH0rHm5nf1C4aQyTGS+iKenIpPGt5j63i9F53fYXxKeyZRDhVdEe91IPFNXFtx+mqWT06hF0+q516IJtsRF/FDahLCzc3mopp7SCjMgH8sEGU+WB5kgGX7bTt/LzTQu7zwhRea/7H1eHLITlW3/1WN+AlScXcy+tE927kk+BTXBgsuFiED032LfzOeoeAOeNcC01VGNAwCGq9IDLOZzD6j/viCC4lBWN2DZKPmRCXykLc013uFwCJyaLQaGjb1gvJOC7usqT4Xg9tfSFHWfr9LimvtePt+JI2EX0KfScaTdwh8ugFX/hXDFJ9ktlmwlAMw1kXsLyNSYq2baKiV9x+nJd3RBUeIsOwNL0ljDjTvfPnSIe3LPyj6V9/1aVFRsEwh4JRgjbY5GZ7gBCS8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(2906002)(53546011)(36756003)(26005)(4326008)(316002)(6486002)(4744005)(38100700002)(110136005)(7416002)(31696002)(186003)(66476007)(66946007)(66556008)(16576012)(54906003)(31686004)(2616005)(956004)(5660300002)(8936002)(8676002)(508600001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dkI0TDBYc0tSYlVJYkhYekFaMm1qVVQvTVFxSTd6MnI1QTVKaWxXTmFpRmJC?=
 =?utf-8?B?ZmsvNlhiR0ZGSHI0Q1FWNFBZcVdBOEhOengwNGUrQXpkb3kwZjNJSWJRcHZz?=
 =?utf-8?B?bHVmVUw5QzFSSTAvaEZWbW5UeFEvaVZoQVFjS21rbXF5WTl1cEVTQkRNNTdh?=
 =?utf-8?B?SjllRytHQlR5eG5ERFhoS3NnNjE3T1VaQk53eStVVlA2dmJwWkFsV2FZRWx3?=
 =?utf-8?B?d2RrSERiM2pKRmUrQjZHakl1aXU2V2VDL2VobVYzemJ3YU9SYVFHeWVQNUcx?=
 =?utf-8?B?WlBNeml6N091WWZhSEpsL1lVUDZDYTZ0enNXY2ZRR2hTNVZmcUhMbDdZZ2hh?=
 =?utf-8?B?ZGRMaTJaK2NlRWlZdW5BcEF1RTJvTXhhWkpEeTl4VXJ5NEpBcnlCZnFjbndS?=
 =?utf-8?B?Wml0ME5rUzlJUmYrYWg3VGZ4OGxYcUx1TmxVUFpBRXREcU81L3JGU1cxamt6?=
 =?utf-8?B?UWk3bm8vT0NxaFpMRTF6K29EQit0b2JpZmFSY1pzTU15QVl3ZSswT3FlSFBI?=
 =?utf-8?B?bzNBMzhSTC9jdTdBNHBqcUJNM0JnczVuZjJMbXBtMzY3K0cxeXB3QnpVUkND?=
 =?utf-8?B?OXhGbUVHcW9TZ0RHZFNBT1Bnc0FwaE1sbVBZZ0kwUk1VOVFOdURnaDVMRXl4?=
 =?utf-8?B?d2JVeXh4ZTdQRzdPcHpySHh6aGN3NTZYSGErUVNlazdkcG14THRQUkxEVzZi?=
 =?utf-8?B?QnAzY1NrSjYxTytKYkxIQ0lBcnVpTU9sbWtJdHdSWWxzTi84T2VGU052UEVS?=
 =?utf-8?B?c3ExcUtwcDFvYksrYm85RGxjSCs3Z2FjTG9FTUxPVW1JZFF6QStXM1V3Y2Vv?=
 =?utf-8?B?NXZFeXlwaW9JdG9RMDJwNk1TZVVIdE1VNTZRQzh6ZFNRbkpyVUVnUWo4RXFz?=
 =?utf-8?B?UGRzKzBFSFJBdnFVSTNCY3Urek1BRXUxZlYvMWZpZytZcldFSS9NcHVyLy9V?=
 =?utf-8?B?OEs4TWhYUXhiK2w5Zk8xUWNnWitTekpTOGFKVlJ6VmV1SjNiQUxUS2psNUkx?=
 =?utf-8?B?UlM3SjgwdGlvRFB4MGRpTkhIY1o4Y25XVU9scDF5U3lINmZnemcwdHRJSmVC?=
 =?utf-8?B?ZDNDMy8yWmRNeDBQb083UTJwVlZ1NXlDa2FIOC9PTVllUGNjNFE3dlIzK09X?=
 =?utf-8?B?VmdGZkJXQURTOW55eHZEL243cm1HZnZrR0Nyc0pBaW01dFVXNFl6YzR6VzNP?=
 =?utf-8?B?RzZFSm56MUUwVi9LTExpNU5oUDl6emR5Y0hsQ01zU1FPYW5QK3JSbnRrR1Rt?=
 =?utf-8?B?YlZUeHlZQW1DUFRGdmJyMXFzdHdLQVdzZWtZY3B2SWIyVWU4SGhNdGl2OUwr?=
 =?utf-8?B?T3ppSFVDOVE3NmM0VktWQm5TVU81ZTcxS1VhN3drVjZWaTRzdWluWlJ2MXQy?=
 =?utf-8?B?SlpFemk0TTAvYXZqRU5BaTdCcUh5blVoeGZjRk1PT1lrNkc1ajVoS1ZRT2k4?=
 =?utf-8?B?R1FZZHpDaDY2RUtJQlJ2Vno0UzVOZUxuWVlncGc1RmwxS0g4NFBCUjlSUGF0?=
 =?utf-8?B?aGk1a2MrS2E3VTB6T0loMTFKV1Zpajkwb0NYbFFLTmFNRGVBVFNRZ1JJSlBQ?=
 =?utf-8?B?ZjRHdHVCTDUzaVB5eWd4ZCsrYmwxR2U1OW1OaldJbEZrZ1h1aWNXVTVNU2ZB?=
 =?utf-8?B?dFEyend4eUgwVFhqRGZiTTRnNXpBcURoeUNQREd1emZQT3dnWGV2N3k2QUFI?=
 =?utf-8?B?QTRyRzVDbnQ5MHFCRnZVcUMzM2JzVFl0VjRERHRGYmhrbTFXZHA2NnZtMTdz?=
 =?utf-8?B?NE1vTkxldWo3M2RIRnEzaVlqdFVpcFcvWmFSOUNURW5VQzUzcHB3aERHZHNV?=
 =?utf-8?B?aVYyeng3bFdrTXprZzhzR0NLQmRrdDJDcXpvNTA4VHY5SFg3SllUOGdvaW5x?=
 =?utf-8?B?SmZOR203SjR4MUZob0dtYjNJY0FIYlUyaGg5RnFUWUdDcWZDQnZSV3NTSU55?=
 =?utf-8?B?T05xR2lELzcwWFp6V0F1TXNHNXRKWFU5R25xcERzdTRNU0UydkQyWnp5VHIx?=
 =?utf-8?B?RzByT0VDZlNrTFNrb0xNdHoyRmlFc202RERyWFV2QlFKWkxXcktjOFVSZXln?=
 =?utf-8?B?U2YwZUZYNGJaS29uRG92c01JOEZOZFR4UmtWaFlaZVE1RHVjMlNvU1MycGpl?=
 =?utf-8?B?MXpOZmtvSGNzMUxwVm11eHV6UGlIWEhwNTU4WXhXSjB0UGVURHI0QUd1ay9X?=
 =?utf-8?Q?IXtfA6GjuCyCysDiNPYqtUQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ce6b086-af4e-4b22-2b6b-08d9a99a8015
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 07:18:48.9993
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wIQ6pTYdJNJ/570ZZcFPMjvKFlMEcElcm9ZGytK1jlBv+BLclsbceI/icuRtqKJrvIDoUS0rJl0U+j1tFxetfw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4190

On 15.11.2021 13:17, Roger Pau Monne wrote:
> Hello,
> 
> The first patch introduces some syntactic sugar for setting the max
> grant version on the domctl, while the later 3 patches fix missing
> occurrences of xen_domctl_createdomain that didn't set the max grant
> version. It's likely patches 2 and 3 could be squashed.
> 
> All should be considered for the release, or else we need to revert the
> grant table version per domain change.
> 
> Thanks, Roger.
> 
> Roger Pau Monne (4):
>   domctl: introduce a macro to set the grant table max version
>   tests/resource: set grant version for created domains
>   test/tsx: set grant version for created domains

I've committed these, but ...

>   tools/python: fix python libxc bindings to pass a max grant version

... this one still lacks a maintainer ack (ignoring the slightly malformed
shape of the ./MAINTAINERS entry, which imo ought to refer to tools/python/
to designate that's a directory).

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 07:42:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 07:42:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226610.391640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFZz-0000ci-KJ; Wed, 17 Nov 2021 07:42:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226610.391640; Wed, 17 Nov 2021 07:42:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFZz-0000cb-HE; Wed, 17 Nov 2021 07:42:03 +0000
Received: by outflank-mailman (input) for mailman id 226610;
 Wed, 17 Nov 2021 07:42:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnFZy-0000cV-9u
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 07:42:02 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d979b042-4779-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 08:42:01 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2058.outbound.protection.outlook.com [104.47.0.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-40-B4RYW2b2NzK08wt8dyY5TA-1; Wed, 17 Nov 2021 08:41:59 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2607.eurprd04.prod.outlook.com (2603:10a6:800:58::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Wed, 17 Nov
 2021 07:41:58 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 07:41:58 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0390.eurprd06.prod.outlook.com (2603:10a6:20b:460::35) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend
 Transport; Wed, 17 Nov 2021 07:41:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d979b042-4779-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637134920;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7O4IAlBuV7Ht5e46unwQP9LahssvTkosfPU1fu1k7K4=;
	b=BGz+TSw6V76OfZ1Kjvgf56FKJ0KwPepuoAUlDKSedNtAqJ5uNGwHnZfqceKFLkQaBrJo93
	vznRYL1ncCy/nuEPP/D5kJZ6RK5VWZJ2Ip+CCjyTI1eHgredEaOQV5XeUB++RU1bbBbJjW
	TIYUlEzwlPXn10fI68OkF8CiQFuLFcw=
X-MC-Unique: B4RYW2b2NzK08wt8dyY5TA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SDhUGzxoqQKXNSnGrEn0zr67IRFXWhtNuFADnWufTi9XS9FMwkHE3fRmUiFPXRDmwjEh50qFQkGBJ5gcg0kZxCltNNi3K2pV2gpjXGoi77cN75Gsni497YO305jwLYAjWsuYL8utx4zxScCJ03ID6ohq2J2d7qqzCcf0dKPMvgKzGdSNl/qqZR8l+k9OIzVltKoi/myEljMSckZrKL7EzIalrbPFh/4n9Luw22ZEoIC8kLVic0n5ZeKgTnXheIZVi9NmKgp+X9cMYlprAZIuVElHcZZsoRcUfy7bHIFLdPW3/6VY9Lfv7nf2FShdKfR0s0jdKEdjUf6ZyniJLyyYlg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7O4IAlBuV7Ht5e46unwQP9LahssvTkosfPU1fu1k7K4=;
 b=QkHveLmQDEJaDHvwM413wEVfS7ZKeNAQdoqnyGheoOEKSsvcM3AICa/9wBByCqaHe/Nl3ZG2Ih9hDiRFVibmQ+2I/1qhcT7AFu5402KhLJlnWDZzMybjMMJWwfM747mD1FNgzHvENHnlwNdO8A0Jb56agbeWz0U8i4cS5RlBYI2M3rfxhcPm8t1JFyy85M8W1cH3E6IXJDe8+trFIuhasEtT6KKfzoL5eTz4s2sA7imrUvo/7l555RAeT1nVqRiutLpLH+6axGN6YFYUZPY1V382pFoWw4x+NxH79JvrH9gxHe2/m0vht2F2NVAmw/D+HcHnOGX2KA73kq8+dlORxg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
Date: Wed, 17 Nov 2021 08:41:56 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org,
 jgross@suse.com
References: <20211117021145.3105042-1-sstabellini@kernel.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211117021145.3105042-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0390.eurprd06.prod.outlook.com
 (2603:10a6:20b:460::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9d017831-02e2-4b6d-8ef3-08d9a99dbbf6
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2607:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB260718B8CE8F3571989A919AB39A9@VI1PR0401MB2607.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	4JtZYiXLRyiWlWkLrQXrMO3ozgxNMtlTbsuKJ+grI5xzaSb2kq7e9J4jvuK3o9nDD2ONAxvOmmMXPWahet7E4fo/+63TI3YO4IE7JobevhxvvIp5TURCSk6QXo4a8XKcxJHnkPlJqluDSFpX2ZUKgVX59qaTC65GTadHOqDFwlHik/jyxvXM+BXlrC3dPs3PvkKyurA6Mdfjj5or+NJcnnlWmjeh2qjg0fg7M6KSR57pJSeeC8tJfr7Rk+nUTzt3k3u4Ybkcty+oiCYwKLI9vXDQy6Iwi78i9J1FXXlcDVyuAyq+G16XLUvJ4ouGZFSfePkwP0UawkeMTcymDFrWh6RE6n90ffn1ks81m32UWss1H4ltHdpCLtW8Ba6ADwGhIqIgvHBikrJMswqiN/xONh8+3pGV2eYHJnqVGdhq6HVquxHstpvI5/bxBomO0dsTodh7p6l0sQi9ASNAVysZklHytNeYT1wN6s6lh10iGXcewZFzuKo7uOWe2l2WHy8pcAbCKbN+YXgBVfAdeRBcRbQAy6G4mAvsOOzwd/M4xRzAf7go7Iwz5lysGBgCF4+rEOnSnEgXzw/mq74gDk4GjiyBxFRbGjVM25N1FPqOIneWdtY+4bXx1hXX9CC0Fvqk2NleaoNKDlJqH5UowMZtQ4AF0c+zsG9lCAmw9EA5W1Vc+SOWjh9E9Bv8axYcndcjSC1arHKC/QWMYSwmjwLKASahRFwyIxmyRtnI4HBEfxwDuH/opzehP2VnQuptI4mx
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(6486002)(8936002)(66556008)(5660300002)(38100700002)(316002)(16576012)(107886003)(66946007)(2616005)(956004)(36756003)(6916009)(86362001)(4326008)(186003)(66476007)(26005)(8676002)(508600001)(2906002)(31686004)(31696002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VjVtRUlwWXZxSVJwRitMK0xUYW1QTk5Ja1V2eVFoQW92N2RmektDekIzblVT?=
 =?utf-8?B?TVhjdk5HelpPSXAybU1FTEE5cXRsRUwzeWdtYjZUR0lUUEhUK1oxODVONXZZ?=
 =?utf-8?B?aUs1Q2JNS3cxaHdsdmdyTm02SEJkR1RJckoyTTd1SWk0bUdhRFZBVS96RTRh?=
 =?utf-8?B?WGw1UzlPYXVxdlV5aEFKL3NWQjBhNjhDaXZOSmk3WXUrRnJHcVkxaUh4cjVK?=
 =?utf-8?B?a1NLL2cydjEwRHNuMjk2U3kvbjQyZ1pKa20rNGpjZmlmMFo3Vi8xUnh0eUNC?=
 =?utf-8?B?dStjeGZ0anY3MjA0RXBUamRRMzEzbVVPRWtMOVdpOW4yWFREZDZGQkhXMGxR?=
 =?utf-8?B?OVJoVGZ3RDRMWW9NSGNGL1NYVDJpdWVNS2lDekNvOXFMUmRqa1RlRGhkREc3?=
 =?utf-8?B?TktaM2cwbmlWQVBpd20xNlpINjIvVlI3MTRqb3dnSDJ6VUUxNTIxNTAySlpN?=
 =?utf-8?B?ZS93WmJ4RVIxYTVLczgwemJCOVBOWXdrZURlbmluT0UwcFcyMnFNSmJCbG5y?=
 =?utf-8?B?Q3MxcGJ1WnplSFEzc0g0a002SmdMSTZIdUxXMkVJOFBmRGJrMFN4WVcrRmtZ?=
 =?utf-8?B?Y09qTVZnVENicnU0S2gxUWVhcTFZTDUzR0w4b0JWSTFRRGRjWDJrSWNMeXZt?=
 =?utf-8?B?MTBNRkN5QTgyYWZGcDFKa2xjR1YyM1hEMTI1WERmd3pDaVVQSFBRZTNsOU1q?=
 =?utf-8?B?UnFIbUw2K1dSN21SZUd1amNkV1VodjU1QVhYZlNsSk9QUDlnc1NpUnU0M1J4?=
 =?utf-8?B?TnNpUGhuemY2aHN4LzdZUG02bnhqdjVDdDJzWVRGdWVoZ1hwb08yOFE1R0E0?=
 =?utf-8?B?UWpFSjk3WGpoS2dxUGhwOFZkOENhZWo3N3pSVFpBSkpNQjMvN3FFbFRBdGJU?=
 =?utf-8?B?YzVTbWNGWXVvRzhweXlMRFg0RmsxMnczUzJTOWhGLy9IMEZ5Wi9lWVZtYU5M?=
 =?utf-8?B?N2dPNjVCRGxaZXRiTmdQcmFpMGdkaTZBZFpPZXZiWHBCTFFBUXAvWXhsTDdJ?=
 =?utf-8?B?T1N3Q21QSzN2T0tyZmViTnhvYU0zWE9XZjVnNmxLTDhLSVg5ZGdkdTNkaHpj?=
 =?utf-8?B?Yy84Sk5TL3BUKytuVDVuclcwUm9qTUxtWEJkL3Jnb2h5c0FNUVFnSDBEbyt2?=
 =?utf-8?B?c0xaaFNSdGZXVjNmUE5Sa0ZxSVF4UWtWMTJhc3BhM3RkV0VaUTB0QW9iMm1C?=
 =?utf-8?B?Vmd0NUk1T3Jzd0lzUUJadVVFZ0wrbHd0MHFPT3krdlArbUdFRTh2MWRZNGo3?=
 =?utf-8?B?SjZDN3hTN0ZUanhaczVsdXROOTl2R1A1ZXlia05vbUtMbXg0b25RR041RWZx?=
 =?utf-8?B?Vy9hbmtrNXoycjdiSU84dkpId3FvazVqTHptUld6UzgwdWxPR2pIR05ZOVZ2?=
 =?utf-8?B?ZHNQblRWamFXaWJmN1oyVkVqUmpScnIzM0VrRFQ5UnFoZ1J0MDJDS3Y0by9I?=
 =?utf-8?B?cWt3ZXlHMnphc1poVFR5MERsVGdZejNqUXh1bm54dkNLeTlBRHRlWGRPZnpy?=
 =?utf-8?B?bzJjeFRoSWtvTVB3dysrOCtXSkxJUkhHK2twL0NLR0dZdU1UZWFkN2RWTHJj?=
 =?utf-8?B?M2s2cG5MOC9LUEo3bmJuMVM1UkhVbEZXUDAyNThHdXFPcGdQaWloYzNZTXNo?=
 =?utf-8?B?VlhOay9iYWxPWGRpT0piUFV1d0o2SDEyV0c2aDBRUEpKK1I5YW9IdjMxeUZa?=
 =?utf-8?B?MGdWRGsya0dPcitkZGhpeFpRRkRIS0VrWmxyNWx6MVk3WVkyU0s0UEwxRGdT?=
 =?utf-8?B?bUZEU3FEZ2RVWGRadlAxNU92MXRHOFptRmJQMm96VUo3UkVWcERPMTl5NlFN?=
 =?utf-8?B?RzJCL0dXVmY1enZmZzZsUzkwdVFKbnAzWFlhRksvZ2NvU1Y5QTdDNjZrWGU0?=
 =?utf-8?B?R2JvVS9RcXgyNU1QTWpzSnV1YlpYdFZ3dTdYTHZvUCtOMWIrMTVnNDhSeTg1?=
 =?utf-8?B?TzVoTlVjR0tZQVg2RThOYjRFUHZNY1JldzI0L1dBY2lRQ0Yvb05hUGFsK3BC?=
 =?utf-8?B?bmNncWNSbWRVRnVQalM2dlMyTFkrL0psQnM4czRvdXRCZC9nNHkzL0FzaXlw?=
 =?utf-8?B?eWEybHdXVy9BSlQvYjdQNjAvQjRCbUpDQm8zNXBhanh4L3dxT29rSmdZOWk2?=
 =?utf-8?B?bm0rMGozY0tUNm5sZXg5Y2lzd2tOUDNZenlzQytOSlhKVWtWTktsMzhLc01F?=
 =?utf-8?Q?L/83Lbla6elDm+JZ/ett4Jg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d017831-02e2-4b6d-8ef3-08d9a99dbbf6
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 07:41:57.9992
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: h3LW0HC/df3focdKaHLgx5xWTaEoQOnVGrI0Vp81di26VSXgFnRjjtlB1rynTkF8/IKHpfYPTncRidyUvoevJw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2607

On 17.11.2021 03:11, Stefano Stabellini wrote:
> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -951,6 +951,18 @@ static int __init xenbus_init(void)
>  		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>  		if (err)
>  			goto out_error;
> +		/*
> +		 * Uninitialized hvm_params are zero and return no error.
> +		 * Although it is theoretically possible to have
> +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
> +		 * not zero when valid. If zero, it means that Xenstore hasn't
> +		 * been properly initialized. Instead of attempting to map a
> +		 * wrong guest physical address return error.
> +		 */
> +		if (v == 0) {
> +			err = -ENOENT;
> +			goto out_error;
> +		}

If such a check gets added, then I think known-invalid frame numbers
should be covered at even higher a priority than zero. This would,
for example, also mean to ...

>  		xen_store_gfn = (unsigned long)v;

... stop silently truncating a value here.

By covering them we would then have the option to pre-fill PFN params
with, say, ~0 in the hypervisor (to clearly identify them as invalid,
rather than having to guess at the validity of 0). I haven't really
checked yet whether such a change would be compatible with existing
software ...

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 07:59:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 07:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226615.391650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFqM-00028a-3K; Wed, 17 Nov 2021 07:58:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226615.391650; Wed, 17 Nov 2021 07:58:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFqM-00028T-0V; Wed, 17 Nov 2021 07:58:58 +0000
Received: by outflank-mailman (input) for mailman id 226615;
 Wed, 17 Nov 2021 07:58:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnFqK-00028N-ND
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 07:58:56 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35f8f8cd-477c-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 08:58:55 +0100 (CET)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2059.outbound.protection.outlook.com [104.47.5.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-38-SBwRWn_OPeKYtTUHnVqhZg-1; Wed, 17 Nov 2021 08:58:53 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2336.eurprd04.prod.outlook.com (2603:10a6:800:27::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov
 2021 07:58:52 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 07:58:52 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0100.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.20 via Frontend Transport; Wed, 17 Nov 2021 07:58:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35f8f8cd-477c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637135934;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=TAU8668aoQAaQgi26rJKscd5joxlTGYJbu+sCcmhmn4=;
	b=LaD1NVDnL0Fd4ZNMN17ySxzCxPuCePGutiyORIojI72UxlNzaN0NnSNdDr99WZrWm+2xd0
	NkEyPqE81OQDL8eH8dGlBtPNKrW31hLJ86TktWfK1W4Ylry6a+NWlK1eG3vqmrgDBxYzKd
	7UPAdD9wiVMgMVUoiEsVXV7/be4wKK4=
X-MC-Unique: SBwRWn_OPeKYtTUHnVqhZg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SzJz0C2F6NlWlblddBWkCPc5nNnmiZdkfmkqajaDkaopGt/YM5zOmQqXx+cf1FDvexoY3Vo0JY1MVGt6fBnwBnT3fE51LV2iTivDrerJCUsSAXZgXZsqYN4bME/SZXe7/maqAwBvY1+5g/CpweHVQXTiBEcv2GpXg9Go4gzogpzuoJZuuFfh0JRp3e1FwRLxSv3DoFNiE5zsAw4ij1ufo7erokEUNRtmZPYP2YuudErJCZNLSyvQYDl5TP89pmXsiC2k5sT+9Lb19OUeGHYd3XtfAg3RYLqCPJ92GSMeoVA9zsaiPnZhcMiZAC2eOWsUaDPTybENmVLmKQzgbAlFdg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TAU8668aoQAaQgi26rJKscd5joxlTGYJbu+sCcmhmn4=;
 b=VhrNWAX/stTsCVSx4Mk9lAYsgyzNg6axdwyJca6jrl7IqVHiIhiLDSpFNMv8E3hfBsvYvQH5X/3q5JMFk68IqkG3Mz4l9GENgsBtlSkDes3pc7Fl2LPivBK2vDhSfc8opxmPY5hczjsqgD/vb7zeww5v8LGbCOAAnPrdiUfkT4vuYGqGCOdjhsvXW6A/9QykCgRZuSyWkIWnLyKHgh1x/93kMvAYTbdXBOBjtAI8DMce+8xbHEItEBgC3I9+Gri6vY+TSE5KH3cv0Jyl3m1A1nTkYn6KhVn9snavTU+IFniOXE+YG21PHAh/rH3gikguYulafd50bvh1lVP+CBPStA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8ef681e6-0274-7b84-494d-29d2c3b3870b@suse.com>
Date: Wed, 17 Nov 2021 08:58:50 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] x86: alternatives handling adjustments
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0100.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:8c::41) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c4a25b60-b9fc-464d-44d9-08d9a9a01847
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2336:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB23364977943BB97005D3FD9CB39A9@VI1PR0401MB2336.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	FqsuQGzopIz1srzkqGy0aA15AbNCKXMyQlDVMLMewce74DXs/wWopzN+YUB31bDhpotwdFHprHkeHR/cnkZQgKsd195DXYXOT+HNYIv/oUYfUdbZo2u455ReKjJnnVP4SN/UIZSjXtIfdNfXd7nOLyo4d+kq8g1P1CIM+TSAihHDgAVP6h6Bpv1cFHO1WMM+1C1C6nIyJYS8PbUZxQnNiQWXW/U1Wt1zFv73kKl7R97nEGQvw51A4CUDAb7NnT8gqbf69qH6j57yYjNF/0WiuHgHKD2iDVeY8Ah+qOTFFK/zfb12vh3Ly6IGVwNe7mMINnMuUdBWYZobSem7jQvBxMk7oZlchtY4UHxtg75g8t/YWO5VGvCN92Jh41Qox+sLHtoJSABZkKkLRAxKskf7aY4jhOCYlAband3xaphxg5HReHW5DwkQIhMG83GUEncs3y5sTLgn3lMBzHzFQtGYUMzSZ2V6/wVw7chQ6gqq1DGDf9ifyemmlMIc23aDr40Vz3IXACeSNzUHUKsa2IkVCF4cadEZntTfTM/rBLfFqWPMb3W4kyR1kcBn1jSnty1WTaiHwBGb8eDS6q4YLiFKn4KHgn/dlqnNkB2dT/Aj+1WcFjAOa+1PWbXu06xDUFAGfqcnLLkAtBDR4TwoZPsBkLXAzoy7F59titVJ4raVc26nor9b/z/5lBNaWHbpzmMpgd8XIoIO/g0N9Sp/3waP/eHEzZQ3eo6G9omr5x57J8+IpuC6qI+wZ4TnB1bTYff3
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(66476007)(86362001)(66556008)(38100700002)(558084003)(16576012)(5660300002)(316002)(66946007)(8676002)(31696002)(956004)(4326008)(2616005)(8936002)(83380400001)(54906003)(26005)(31686004)(508600001)(36756003)(2906002)(6486002)(186003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UVN0cHVxV3VlNlp6cElMRGl6angrR2ovREp0bnFxZHczbXpDc1VTQ2RlTk9E?=
 =?utf-8?B?VzllY1BTZ2pwV0ZFWUU2aE9ESlRsYzlSbkVwaHduUHNlb0krdE91ekVoWXJ2?=
 =?utf-8?B?SnV4anUreGxlWmQwMytpelNPaGtldkE0bmtrKzBpT1FSakQxOXJDMHlrK1Jv?=
 =?utf-8?B?S1RHWU1aYTZZdEFvaHJSM2hrRHZQajd6V2FsUCttaHJTdzljcHZURHRZV2RO?=
 =?utf-8?B?M3lGeTN6a0llTTV0VlVSeXhXRnFTQmVJSjkwejFzNWRGSWVBOHJuODJzZURK?=
 =?utf-8?B?QjVlM0Z6YjNPNXlaQlJBM2lXekMwWFp6bTZSdlZWWU1jY1R5TStVWkN4OGVY?=
 =?utf-8?B?cjd2RlVCdDE1Q2pZRVFqOCttRkNySlM1bDIwYnlKNGFvZ1B3Z0F0V2xQRWJB?=
 =?utf-8?B?SlV0NjdtR2VWSTFEb29ybzJFZEQycW92RVlIZTVCU2FjRmVoRFVrcFlqcGlQ?=
 =?utf-8?B?OFZTNVhRNDJnL2ZxUlIxTk1ZUUJHbEFTVFBiNFpBRERzUUcyM0J4Mmo3OUdG?=
 =?utf-8?B?ajRDQS9ha0VITXp6NW5xQklQdUVRdk9meHV2RlNOd1pvMGpWV0taMjgySlZx?=
 =?utf-8?B?L0N3ZGMzMGFpZ0x5RVVZS21BRmk0bHh3ZTJpQXdYeXFGUnpRZVJKQldmZUxZ?=
 =?utf-8?B?b3U1aCtwY2xNWlAwMG8rZXdKaUdtSnVqejFVcWl5cjFhWGRZUVJ0cTgvM1ZM?=
 =?utf-8?B?Z0dMQThFZjJVYmk2eDNnWU5BMFI1ZnM0QlprUzJEQlUxN3lNUVF6SFcwNThL?=
 =?utf-8?B?MmU3K3VReE5ROEtsY2p3VjcwNUI3cHZ2aFlwYWV1RUJKd3VuU1VJQmpQUGNq?=
 =?utf-8?B?L1VPSUpoVW55QktqaW5ZbWpLR0t1SjRpbCtFZS9EQ2FRazdZSFU5N3A4NkVO?=
 =?utf-8?B?aTYwc0c3bWs1ME5jRnpTSUtmNTlqUkNPeHp5cEJuM3k5ZmlKdlFGR0JQSWs5?=
 =?utf-8?B?SkxLWTVhSHJ2M3BoL1FreEVxL3U2MDBxcDRJZ3Z4eG9mNWk3cjJkVGJXcTMr?=
 =?utf-8?B?REZCQ0hSWnhwd1pwcUkvcFkvckMwbEJzUDhRNUdYOWpnS1RNdFF4RjZhcC9O?=
 =?utf-8?B?b0hEeGlsaS9aeXBUTGZIb1Z4cEU1ejlCYlowSThjbjErV21QRlQ2Vm83QlRt?=
 =?utf-8?B?clkyTnl6dTFYWFZabFhZenloWm9QRDFQRkdiK3JNR1NXU2lIbGdnbFZFSUYx?=
 =?utf-8?B?cTJOdnhqZEV6VFNGSXF2VkM2c295dzZ0UmRHNmpQa2FsenphN1lDR2VPbHZX?=
 =?utf-8?B?Ym5QaTBSRzExaVhmVG9kRnhIR09CcHRVRHdIZnQ4Qkp2UXg2V09vVHl3M25j?=
 =?utf-8?B?UC9lbDhDY0QyeDlMei8zSlQrSUdSQUtTbmljTnBuck1nbVFMZ0dYemFNaFVh?=
 =?utf-8?B?SVlhd0JhZ3YxckgrYmJzRWR0UGhEYllQNm1wdnkxNENXNWhEcmt6YThEL1Ir?=
 =?utf-8?B?U05pOENrSHlpWGNtS3hSZU1FZXZid3AzVys5M2ZEbHJJbjg0MExpVlNTTUFq?=
 =?utf-8?B?RndDWWt4a1R1QjNqWVdNTjQ3QXpBWDhFdEhKOXR2YjVOdGZESVVKM1QwYVN4?=
 =?utf-8?B?SUpNbGNnTWRTYkEyYjYxN2g2RUcyK29PL21Jb1hDNGpIVHkyVFZ6YXU5OEhB?=
 =?utf-8?B?Q3pKZTF2R05Pb0tmRW8zVWZFQyt0RWorRW5UMHR6bU5TdWF4VmpJRGs3Vm12?=
 =?utf-8?B?OXBKZC91UkdxRlBFTHlIS3FRQ2t1VndPSWgrTFJDM1ZiSVhpSWJaVlJSaTJY?=
 =?utf-8?B?MkFJMUZicld4aVJ5WVNOSk54YWNxTVVOQ00yLy95L3Ava3p1WGRxTG9LeWpR?=
 =?utf-8?B?RDhtNXQrWXNhU0FxZ1cyRnRkUzIycjlJMHJlT1BCdkRJV1ljSE1ITjQrZXRu?=
 =?utf-8?B?dmh3Y3k3ZkZWY0VLVTd3cWNjU1lRUmhjeXlPMjNJZ0tvcjk4ajB6SmpjdE9m?=
 =?utf-8?B?M015NmVOV3Q2R0JsVDhPanZSNzV4V25kd2xmazVrWUlnb01BUkR4NHJSRDVF?=
 =?utf-8?B?SUcycUd0NEZSaWN4WFIySE5qaFBwejVpQjYwR0MvaXM1TEswaHZET1ppK2Zv?=
 =?utf-8?B?ZTJnTFl5WjNJUmRqa3QzR1J6a1FoYU8ySjZxN0RNZEVQdzZWYXdLWEpMdWly?=
 =?utf-8?B?QUN6cmF5b0YyVFBFOUE5WlROWFRZdkgraTN1QXcwYTZ6ZGxxSUh3Yy9UQVVU?=
 =?utf-8?Q?WkWx6aQ/jlexAwCJ426iGkU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c4a25b60-b9fc-464d-44d9-08d9a9a01847
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 07:58:51.8730
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pWk1W/fVrsx8uaLhZ6FkPlkqegqSBwfYmShWKajFZgTNsn9HAeWrfdKRBKVdLv5YotdOG+D22iJRMK5XTUxuIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2336

The 1st patch here is incomplete and hence RFC, while the 2nd is merely
a tiny bit of cleanup noticed on the way.

1: allow replacement code snippets to be merged
2: adjust alternative_vcall0()

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 08:00:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 08:00:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226624.391662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFrc-0003v1-Pn; Wed, 17 Nov 2021 08:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226624.391662; Wed, 17 Nov 2021 08:00:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFrc-0003uT-MJ; Wed, 17 Nov 2021 08:00:16 +0000
Received: by outflank-mailman (input) for mailman id 226624;
 Wed, 17 Nov 2021 08:00:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnFrb-0003td-Dm
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 08:00:15 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 64d74844-477c-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 09:00:13 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2053.outbound.protection.outlook.com [104.47.12.53]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-26-Nl4j7U-OMdaGj_HUUWaVvA-1; Wed, 17 Nov 2021 09:00:12 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6480.eurprd04.prod.outlook.com (2603:10a6:803:11d::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov
 2021 08:00:09 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 08:00:09 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR0P281CA0059.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.5 via Frontend Transport; Wed, 17 Nov 2021 08:00:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64d74844-477c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637136013;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=egGunBE+GPge17GANLEtrNdHh0RZzXAuLg9AKb3sSwg=;
	b=QptCJqQwi4fCZmEVv0Ar7pj3jD9sQVUTx8qonJtmFsvhA0r9lsQZFRWWxrPgafXPff5t7A
	aYHq0Ym5B5cFzSGxqiQTg9hgPsn2eAWFqw4qvMUDj4re4urTOgxvKYXWRunDl2O9AuXBVn
	M9Z/3aUb5dfnwHXPDJ9KAmtwkAvHg0U=
X-MC-Unique: Nl4j7U-OMdaGj_HUUWaVvA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=d7EWNcGoHEQrp4Zsv5JlQFVm3urGlgwEPTtvSnq9aRkUEQPSXsWDiM821tRgJlt9sWg8mii7BdULnCnKKY1h0qGxNs8qMD6GWpfwyeWR0efzaSWWwWPpUKYfsMqpTyaux3v/+F1hhM84VvMJ3h8IS3XF7xhyKWAxKFqf1ajVz0pZOXYIM4DkHsNCf3pm1ZJF8UTvgp0HRQ432gatVYxZq7NjCfPoDkBvC6ruJ+RqDuFVDjWjginp7onth+VzeRh6rZzhvCXqGj8m8h1XOsw/WMy93OnVX9B3MLTdABEzymqyl/TmvaGDSmYSs1GGII1s9Unwm/88hbDJp0ivgNWmng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=egGunBE+GPge17GANLEtrNdHh0RZzXAuLg9AKb3sSwg=;
 b=lyVqQYynqrDmVIWdVikE/ex1gvfkwiniMP/3H2CE5EkoUSDnECmDV5OuiuDZIevOhzgaDMA8CWqgzoxc4jwhvK3wQDrNsn9K+aZfVLEegydItRLAEO8SDr/OrVb0R9XVW45dGYwROlqkM4B20uQEduoFdNkdIcd41BLv7ZPGnSEdfgFunGyYc8JmgXcop0ixIUlXjzH3s3OnIsIlpC8UZPTLbJ1bDOuYtq+7LGtWv8vEOe6FnxBn7VLDXr6a1eOkut60ADbtisJV+ZX7ESIe7o9swr9vMzOH0Rffyh56/ntu16uIv4biP8vZTP+g2KHmtDcOmY1ayBSSX1S6mSpwKQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <38597a0e-5409-15c0-44e8-7160ca06d160@suse.com>
Date: Wed, 17 Nov 2021 09:00:08 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH RFC 1/2] x86/alternatives: allow replacement code snippets to
 be merged
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <8ef681e6-0274-7b84-494d-29d2c3b3870b@suse.com>
In-Reply-To: <8ef681e6-0274-7b84-494d-29d2c3b3870b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0059.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:49::7) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 141ae865-e0f4-4c48-45f1-08d9a9a0468f
X-MS-TrafficTypeDiagnostic: VE1PR04MB6480:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB64807E1D44EAD5027171C0B2B39A9@VE1PR04MB6480.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3513;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	bixORuYiX4cl+buuVbK1pnvZyQuV9xvRwdCNwlE2k1Nt/dGDneuKtYfXPQomgzsWi2MvnRuAMqwvkxaYByuHNrjKE8QF1xcI5WlnvdHIU+93qDciTSPkPS3D0L6rUyzu/65rOI/DL4tn2Ex7ncuVCi4c1qVOk5P3YOIv4PfjcFmlqNbWkA7x2qP9M0MwRbE/WFQRJQ4kCQ0VqJsv2zI89zQAj3s96WDeSyQpxzKv6/PWtODIEv+KOyG730cPjsKhhBGgp1Zm55+lT9cIfXgn/VhH5WDtiKC8AaGv1Io9huPK3f8iHVX6SOUjGTEDgtlxKXuJYfIyGAW01H5qlJUW4556eYqp+cXEwAz37I/gQKiv09e6QKCRPlnqZZTVn+3MAjy1a4JgdK6qzfp6C8Xse1PW7J1AIvGXb6JssZ+MTuTXRthbFU/JpsDkp2/+mCtYbWi5dLsvbnq5wycfKo6J1p3YAxLbx1g5BTgpLLzr8Sd9PcNVswpHpO7nwf5nerEiI/1peL0zmIiljII79o2gqpN/yZAhV1L2i+cl55HC8vxu8+3ishrbAOQp9jSwHsnK9UUNNbhfW9e+2pKEb1HSg6iT8p9Wk/pA4ntsEOU6W5mYDZY85vdhpFowbPSewiWpj/VK3TionkAek4aZ5o+/DmPdGghwTu1QaHTY/016E1rL3xFQgmoJlZlNi+gHGu7SvNua/GNbREetl9cAy7wqtTVsU5Fs3F5wDt5dqu3FEwcjvwEZmF1JHvfkHMvl0Lw+
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(86362001)(36756003)(5660300002)(31686004)(2906002)(6486002)(54906003)(6916009)(316002)(16576012)(38100700002)(2616005)(8936002)(508600001)(956004)(66556008)(186003)(66476007)(30864003)(26005)(31696002)(8676002)(66946007)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NVEwelNJL1lNbDFkZ3ZvN1FHTEd3NUVvZzNYZnFCYWtlY0xjY1hjcFUvN1N0?=
 =?utf-8?B?SFA5cHhQTDFWUDRpYVpta1FuTkplMmE2SXBTV2Z4LzBvbkd6N2FreG5uTXRn?=
 =?utf-8?B?aTY5NXh3UEJqaTZ1QTBHZlFZN1N1aDJtU3k2RzdLcVNnZEpwNHJKQWlOMmRu?=
 =?utf-8?B?cTJLUkFRTE0rNzBnbmhIVWhRMGNFeEhva21BaVV3clRldFpESEpLcDFId2pH?=
 =?utf-8?B?aDJ2UU4rbHRRT21ZUXdRSmF3ZTRnZDZ5eGRCU29wOEhnQmVVV1dlNVNndzgz?=
 =?utf-8?B?aVl3LzU2a29JVVUvb2tSTzRFSHZ4c2l1bDJNNzJ6RlpWWkg1UzJCKzVGWFFH?=
 =?utf-8?B?RzI5NU94SldaSnBoRitrb2hDM2FodVh1QUFVVmdGaWIxbHU3NHRpK2QzdXU0?=
 =?utf-8?B?THZQQmJDNlJwOE9jbXhIbDNkSkVtUHB4aGZwTnNIRm8wVk9kRDd1MWt3ajU1?=
 =?utf-8?B?dDBQMTgwTDN6dXV5d0Q0d3RUdEJqREpxTTdWVHZ6LzNrTGxqWGhpYi9qbGJ6?=
 =?utf-8?B?U0lwQm1uWU5ZNlBVVS9ZanJhczY1M0ErTGZHYStmdDNwOGFIc2dmUGVBODV0?=
 =?utf-8?B?bEJjT1kzSy82bUJXRDVadUUvQkoyTnBuR1o4eE9xYWhWVmt0ZXdEWGFOUHkx?=
 =?utf-8?B?LzNnZDdDQ2hRM2RXMEhGaG5uTkNxanpaWklDM1VoTlk2K3p4aDRSNEY4UkJq?=
 =?utf-8?B?dlRRaVk3L0ozckUvamZGcERNY1FLMlc0SkZXTlJDQmhLbHB0N2JlWnhPWndh?=
 =?utf-8?B?aDlRMGNxaktJVlhYaTZHUEg1R09qQ25LVkJwa0phODF5alplNzBKdFF4Szhx?=
 =?utf-8?B?QVF6SUJXUGZxTWdWNTFhdEtRL0FBdUNqaFRrZExIUzAxK08rcnBTOThIUUh3?=
 =?utf-8?B?NnNjWGc0VmYwNHN5OU1NNS9vbVpHcEhocmNaaEEyc0NDV01wOEFmeGhmMFhr?=
 =?utf-8?B?TEZUbXd6Q2luU1lsM1Q3dlFlVlROVWZlZFNtS2h6OTJ4NW12cjFtTEdpWDVa?=
 =?utf-8?B?OXRVeE9SaitqcC9lZ3NRN2x2UVFxRTZtMFhIUmtxY2tuUVMwbUZrV2dialJG?=
 =?utf-8?B?WG1vWnZIZ29zT3FQeWtGMUNmQmRjYWYwSFR2TVdVYUNtcjFaZ1dudlo2YjZL?=
 =?utf-8?B?SWtiaDM0VmtqRHhDTTlHdXlEbjMvQ0ZrVmhuVUI5Qk9WTitNSUZ5ZFhZdWxF?=
 =?utf-8?B?RGw3YWZINUpyeVRXYmVlSUV3dnZ0aVhTZlZrTDY4bVpCQjRiKzE0MUtpTUdM?=
 =?utf-8?B?ZC9iTHBWVXFCK2djbnoxNDFxcW1JT2FRQ0c5RU9DL0ZvMFEyRDRkY0poa3Va?=
 =?utf-8?B?NGVSamJxZG83ZGpUK1FXeFRwRTlPREhYbnUxTEE5eElYS05Rakp5Mm5ZU09s?=
 =?utf-8?B?WEZ0a0xXMS9Oa3oxRlRMQ051M0IvWU4zZjQ3SktYZHJNRkRWcVFvVEhBUXhN?=
 =?utf-8?B?MkthL05ZaHZUVDhlNzhpUU5CVmdhY3RSaUF0L1J2NjdKclJBZXZuL2JPYW9z?=
 =?utf-8?B?SC95UEJ3azN5TS85OERUbGlFNmRsbks1QjJsVWc0Ly9weVM0UU5rZk91UEhJ?=
 =?utf-8?B?b0JDVmpmVXkxZVpOUXpWenlrN29nZjdSbWcrVnFXRzk4RmNJSHNPQUIzV2Z1?=
 =?utf-8?B?NjZ5VUhad1ovNmJHLzVwOUN4VDdpN3ZybWlwUDFLRlRsSThKOGZBSEN5YVFC?=
 =?utf-8?B?Q3BhZDNHQUN6dTNEZ0RRc2NVUUtmczlnUXNydHZEMExUTms1L1JmbHQ1dXFR?=
 =?utf-8?B?YzhBbURkbnkrMndOd2szZGxGN2hTRmNSQUNaam4vMmR0bUJUbTNEcTdZZEkr?=
 =?utf-8?B?SWpUbG1CNDNCR3RBN0RlYWQ3RVo1ZzNWNm11enVkcllZUGFva05BTVo0NnND?=
 =?utf-8?B?alpkNmZSRFo5aDluUm9iUXNEVkFnYU82NmRLd2JCM1dNazRTU0hXWk9zRVln?=
 =?utf-8?B?Wm51ekpYQkpsakNFcVFkUkE0SXNvNTRPWTZQR3NVVi9ZMXhaK29idGpSUjlB?=
 =?utf-8?B?Qmx6RHp0Sys1SjNmdjUzbDRvaVFpNE02U0pUZGJVU283aEtWbk1aS05BU0Nh?=
 =?utf-8?B?UjhZbTY2OFprZXRkeTNTL3NtTmxKbENEK1AwdEhrWHlhczNlK3FqMHRZM3Rt?=
 =?utf-8?B?UmxBWmZ4TmR2UFNNK2RNeVZ1NWlad1Y0bGZ5T2FjQlJDZEZ0NnB0b2wveDRl?=
 =?utf-8?Q?YzDuw5E60Fp+iU04FrRv8f0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 141ae865-e0f4-4c48-45f1-08d9a9a0468f
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 08:00:09.4571
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QxbkQsRBAEp2m/ZAYLrgWWelux+412wxfWHvAH1GyU/cJEybIIkn06bYnXHq8xrpFqvfwcKTDuwtxU+n88F5BQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6480

Prior to b11380f6cd58 ("x86/spec-ctrl: Build with BRANCH_HARDEN lfences
by default") LFENCE was the dominant entry. But even without it there's
still quite a bit of redundancy, much of which can be eliminated by
marking the sections as mergable. This of course also requires splitting
them by "element" size.

Note that due to gas restrictions replacement code containing Jcc or
PC-relative JMP cannot be made subject to merging. Hence the original
assembly macros can't be altered, but replacement ones need to be
introduced (and then used selectively).

Note that CR4_PV32_RESTORE could in principle also benefit from getting
changed, but right now at least GNU ld doesn't merge sections with
relocations. Since this is a per-section decision, not an element based
one, marking the items for merging could thus get in the way of merging
other same-sized entries originating from the same source files.

The sorting in the linker script additions is merely for cosmetic
reasons, easing manual inspection of the resulting binary.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Obviously the new assembler macros could be merged with the existing
ones, reducing redundancy. But I didn't want to do so right away, i.e.
before knowing whether the basic approach is deemed viable (and
worthwhile, considering it requires a relatively new gas).

For the same reason there are no C macro variants just yet (which
overall would provide larger savings: in particular all altcalls can
have their replacement insns folded).

--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -35,6 +35,11 @@ $(call as-option-add,CFLAGS,CC,\
 $(call as-option-add,CFLAGS,CC,\
     ".L1: .L2: .nops (.L2 - .L1)$$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE)
 
+# Check to see whether the assembler supports insn emission to the absolute
+# section (via the .struct directive), to size them into an absolute symbol.
+$(call as-option-add,CFLAGS,CC,\
+    ".pushsection .text; .struct; lfence; .L0:; .if .L0 != 3; .error; .endif; .popsection",-DHAVE_AS_INSN_SIZE)
+
 CFLAGS += -mno-red-zone -fpic
 
 # Xen doesn't use SSE interally.  If the compiler supports it, also skip the
--- a/xen/arch/x86/x86_64/compat/entry.S
+++ b/xen/arch/x86/x86_64/compat/entry.S
@@ -12,7 +12,7 @@
 #include <irq_vectors.h>
 
 ENTRY(entry_int82)
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         pushq $0
         movl  $HYPERCALL_VECTOR, 4(%rsp)
         SAVE_ALL compat=1 /* DPL1 gate, restricted to 32bit PV guests only. */
@@ -248,7 +248,7 @@ ENTRY(compat_int80_direct_trap)
 compat_create_bounce_frame:
         ASSERT_INTERRUPTS_ENABLED
         mov   %fs,%edi
-        ALTERNATIVE "", stac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", stac, X86_FEATURE_XEN_SMAP
         testb $2,UREGS_cs+8(%rsp)
         jz    1f
         /* Push new frame at registered guest-OS stack base. */
@@ -295,7 +295,7 @@ compat_create_bounce_frame:
         movl  TRAPBOUNCE_error_code(%rdx),%eax
 .Lft8:  movl  %eax,%fs:(%rsi)           # ERROR CODE
 1:
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         /* Rewrite our stack frame and return to guest-OS mode. */
         /* IA32 Ref. Vol. 3: TF, VM, RF and NT flags are cleared on trap. */
         andl  $~(X86_EFLAGS_VM|X86_EFLAGS_RF|\
@@ -341,7 +341,7 @@ compat_crash_page_fault_4:
         addl  $4,%esi
 compat_crash_page_fault:
 .Lft14: mov   %edi,%fs
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         movl  %esi,%edi
         call  show_page_walk
         jmp   dom_crash_sync_extable
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -249,7 +249,7 @@ iret_exit_to_guest:
  */
 ENTRY(lstar_enter)
 #ifdef CONFIG_XEN_SHSTK
-        ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
+        MERGE_ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
 #endif
         /* sti could live here when we don't switch page tables below. */
         movq  8(%rsp),%rax /* Restore %rax. */
@@ -286,7 +286,7 @@ ENTRY(lstar_enter)
 /* See lstar_enter for entry register state. */
 ENTRY(cstar_enter)
 #ifdef CONFIG_XEN_SHSTK
-        ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
+        MERGE_ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
 #endif
         /* sti could live here when we don't switch page tables below. */
         CR4_PV32_RESTORE
@@ -324,14 +324,14 @@ ENTRY(cstar_enter)
 
 ENTRY(sysenter_entry)
 #ifdef CONFIG_XEN_SHSTK
-        ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
+        MERGE_ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
 #endif
         /* sti could live here when we don't switch page tables below. */
         pushq $FLAT_USER_SS
         pushq $0
         pushfq
 GLOBAL(sysenter_eflags_saved)
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         pushq $3 /* ring 3 null cs */
         pushq $0 /* null rip */
         pushq $0
@@ -386,7 +386,7 @@ UNLIKELY_END(sysenter_gpf)
         jmp   .Lbounce_exception
 
 ENTRY(int80_direct_trap)
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         pushq $0
         movl  $0x80, 4(%rsp)
         SAVE_ALL
@@ -514,7 +514,7 @@ __UNLIKELY_END(create_bounce_frame_bad_s
 
         subq  $7*8,%rsi
         movq  UREGS_ss+8(%rsp),%rax
-        ALTERNATIVE "", stac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", stac, X86_FEATURE_XEN_SMAP
         movq  VCPU_domain(%rbx),%rdi
         STORE_GUEST_STACK(rax,6)        # SS
         movq  UREGS_rsp+8(%rsp),%rax
@@ -552,7 +552,7 @@ __UNLIKELY_END(create_bounce_frame_bad_s
         STORE_GUEST_STACK(rax,1)        # R11
         movq  UREGS_rcx+8(%rsp),%rax
         STORE_GUEST_STACK(rax,0)        # RCX
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
 
 #undef STORE_GUEST_STACK
 
@@ -594,11 +594,11 @@ domain_crash_page_fault_2x8:
 domain_crash_page_fault_1x8:
         addq  $8,%rsi
 domain_crash_page_fault_0x8:
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         movq  %rsi,%rdi
         call  show_page_walk
 ENTRY(dom_crash_sync_extable)
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         # Get out of the guest-save area of the stack.
         GET_STACK_END(ax)
         leaq  STACK_CPUINFO_FIELD(guest_cpu_user_regs)(%rax),%rsp
@@ -667,7 +667,7 @@ UNLIKELY_END(exit_cr3)
         iretq
 
 ENTRY(common_interrupt)
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         SAVE_ALL
 
         GET_STACK_END(14)
@@ -700,7 +700,7 @@ ENTRY(page_fault)
         movl  $TRAP_page_fault,4(%rsp)
 /* No special register assumptions. */
 GLOBAL(handle_exception)
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         SAVE_ALL
 
         GET_STACK_END(14)
@@ -728,7 +728,7 @@ handle_exception_saved:
         jz    exception_with_ints_disabled
 
 #if defined(CONFIG_PV32)
-        ALTERNATIVE_2 "jmp .Lcr4_pv32_done", \
+        MERGE_ALTERNATIVE_2 "jmp .Lcr4_pv32_done", \
             __stringify(mov VCPU_domain(%rbx), %rax), X86_FEATURE_XEN_SMEP, \
             __stringify(mov VCPU_domain(%rbx), %rax), X86_FEATURE_XEN_SMAP
 
@@ -908,7 +908,7 @@ ENTRY(entry_CP)
 ENTRY(double_fault)
         movl  $TRAP_double_fault,4(%rsp)
         /* Set AC to reduce chance of further SMAP faults */
-        ALTERNATIVE "", stac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", stac, X86_FEATURE_XEN_SMAP
         SAVE_ALL
 
         GET_STACK_END(14)
@@ -942,7 +942,7 @@ ENTRY(nmi)
         pushq $0
         movl  $TRAP_nmi,4(%rsp)
 handle_ist_exception:
-        ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
+        MERGE_ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         SAVE_ALL
 
         GET_STACK_END(14)
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -192,6 +192,8 @@ SECTIONS
         * the address and the length of them to patch the kernel safely.
         */
        *(.altinstr_replacement)
+       *(SORT(.altinstr_replacement.?))
+       *(SORT(.altinstr_replacement.*))
 
 #ifdef EFI /* EFI wants to merge all of .init.*  ELF doesn't. */
        . = ALIGN(SMP_CACHE_BYTES);
--- a/xen/include/asm-x86/alternative-asm.h
+++ b/xen/include/asm-x86/alternative-asm.h
@@ -55,6 +55,7 @@
     decl_orig(\oldinstr, repl_len(1) - orig_len)
 
     .pushsection .altinstructions, "a", @progbits
+
     altinstruction_entry .L\@_orig_s, .L\@_repl_s1, \feature, \
         orig_len, repl_len(1), pad_len
 
@@ -102,6 +103,88 @@
     .popsection
 .endm
 
+#ifdef HAVE_AS_INSN_SIZE
+
+.macro SECTION esz
+    .section .altinstr_replacement.\esz, "axM", @progbits, \esz
+.endm
+
+.macro MERGE_ALTERNATIVE oldinstr, newinstr, feature
+    decl_orig(\oldinstr, repl_len(1) - orig_len)
+
+    .pushsection .altinstructions, "a", @progbits
+
+    altinstruction_entry .L\@_orig_s, .L\@_repl_s1, \feature, \
+        orig_len, repl_len(1), pad_len
+
+    .struct
+    \newinstr
+.L\@_repl_l\(1):
+
+    .section .discard, "a", @progbits
+    /*
+     * Assembler-time checks:
+     *   - total_len <= 255
+     *   - \newinstr <= total_len
+     */
+    .byte total_len
+    .byte 0xff + .L\@_repl_l\(1) - total_len
+
+    .altmacro
+    SECTION %.L\@_repl_l\(1)
+    .noaltmacro
+
+    decl_repl(\newinstr, 1)
+
+    .popsection
+.endm
+
+.macro MERGE_ALTERNATIVE_2 oldinstr, newinstr1, feature1, newinstr2, feature2
+    decl_orig(\oldinstr, as_max(repl_len(1), repl_len(2)) - orig_len)
+
+    .pushsection .altinstructions, "a", @progbits
+
+    altinstruction_entry .L\@_orig_s, .L\@_repl_s1, \feature1, \
+        orig_len, repl_len(1), pad_len
+    altinstruction_entry .L\@_orig_s, .L\@_repl_s2, \feature2, \
+        orig_len, repl_len(2), pad_len
+
+    .struct
+    \newinstr1
+.L\@_repl_l\(1):
+
+    .struct
+    \newinstr2
+.L\@_repl_l\(2):
+
+    .section .discard, "a", @progbits
+    /*
+     * Assembler-time checks:
+     *   - total_len <= 255
+     *   - \newinstr* <= total_len
+     */
+    .byte total_len
+    .byte 0xff + .L\@_repl_l\(1) - total_len
+    .byte 0xff + .L\@_repl_l\(2) - total_len
+
+    .altmacro
+    SECTION %.L\@_repl_l\(1)
+    .noaltmacro
+    decl_repl(\newinstr1, 1)
+
+    .altmacro
+    SECTION %.L\@_repl_l\(2)
+    .noaltmacro
+    decl_repl(\newinstr2, 2)
+
+    .popsection
+.endm
+
+#else /* !HAVE_AS_INSN_SIZE */
+# define MERGE_ALTERNATIVE   ALTERNATIVE
+# define MERGE_ALTERNATIVE_2 ALTERNATIVE_2
+#endif /* HAVE_AS_INSN_SIZE */
+
 #undef as_max
 #undef repl_len
 #undef decl_repl
--- a/xen/include/asm-x86/spec_ctrl_asm.h
+++ b/xen/include/asm-x86/spec_ctrl_asm.h
@@ -228,19 +228,19 @@
 /* Use after a VMEXIT from an HVM guest. */
 #define SPEC_CTRL_ENTRY_FROM_HVM                                        \
     ALTERNATIVE "", DO_OVERWRITE_RSB, X86_FEATURE_SC_RSB_HVM;           \
-    ALTERNATIVE "", DO_SPEC_CTRL_ENTRY_FROM_HVM,                        \
+    MERGE_ALTERNATIVE "", DO_SPEC_CTRL_ENTRY_FROM_HVM,                  \
         X86_FEATURE_SC_MSR_HVM
 
 /* Use after an entry from PV context (syscall/sysenter/int80/int82/etc). */
 #define SPEC_CTRL_ENTRY_FROM_PV                                         \
     ALTERNATIVE "", DO_OVERWRITE_RSB, X86_FEATURE_SC_RSB_PV;            \
-    ALTERNATIVE "", __stringify(DO_SPEC_CTRL_ENTRY maybexen=0),         \
+    MERGE_ALTERNATIVE "", __stringify(DO_SPEC_CTRL_ENTRY maybexen=0),   \
         X86_FEATURE_SC_MSR_PV
 
 /* Use in interrupt/exception context.  May interrupt Xen or PV context. */
 #define SPEC_CTRL_ENTRY_FROM_INTR                                       \
     ALTERNATIVE "", DO_OVERWRITE_RSB, X86_FEATURE_SC_RSB_PV;            \
-    ALTERNATIVE "", __stringify(DO_SPEC_CTRL_ENTRY maybexen=1),         \
+    MERGE_ALTERNATIVE "", __stringify(DO_SPEC_CTRL_ENTRY maybexen=1),   \
         X86_FEATURE_SC_MSR_PV
 
 /* Use when exiting to Xen context. */
@@ -250,16 +250,16 @@
 
 /* Use when exiting to PV guest context. */
 #define SPEC_CTRL_EXIT_TO_PV                                            \
-    ALTERNATIVE "",                                                     \
+    MERGE_ALTERNATIVE "",                                               \
         DO_SPEC_CTRL_EXIT_TO_GUEST, X86_FEATURE_SC_MSR_PV;              \
-    ALTERNATIVE "", __stringify(verw CPUINFO_verw_sel(%rsp)),           \
+    MERGE_ALTERNATIVE "", __stringify(verw CPUINFO_verw_sel(%rsp)),     \
         X86_FEATURE_SC_VERW_PV
 
 /* Use when exiting to HVM guest context. */
 #define SPEC_CTRL_EXIT_TO_HVM                                           \
-    ALTERNATIVE "",                                                     \
+    MERGE_ALTERNATIVE "",                                               \
         DO_SPEC_CTRL_EXIT_TO_GUEST, X86_FEATURE_SC_MSR_HVM;             \
-    ALTERNATIVE "", __stringify(verw CPUINFO_verw_sel(%rsp)),           \
+    MERGE_ALTERNATIVE "", __stringify(verw CPUINFO_verw_sel(%rsp)),     \
         X86_FEATURE_SC_VERW_HVM
 
 /*



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 08:01:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 08:01:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226627.391673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFsC-0004Xm-2c; Wed, 17 Nov 2021 08:00:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226627.391673; Wed, 17 Nov 2021 08:00:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnFsB-0004Xf-VL; Wed, 17 Nov 2021 08:00:51 +0000
Received: by outflank-mailman (input) for mailman id 226627;
 Wed, 17 Nov 2021 08:00:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnFsA-0004Ww-QJ
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 08:00:50 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a939fff-477c-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 09:00:50 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2054.outbound.protection.outlook.com [104.47.12.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-5-YkO-zEWiOFO4iSk9FEkqKw-1;
 Wed, 17 Nov 2021 09:00:48 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6480.eurprd04.prod.outlook.com (2603:10a6:803:11d::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov
 2021 08:00:47 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 08:00:47 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR0P281CA0058.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::19) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.8 via Frontend Transport; Wed, 17 Nov 2021 08:00:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a939fff-477c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637136049;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=v97bW+vQJx1D0j8h3u6Qf9S2JVDKpRDR1gplq3wrWHU=;
	b=E7TGCuYGSgDvbKO0NbgjDWSlPH2nrdJuGOk63Zo7ukM4+bsvkh0/WCUnzEoRnHIYBOnpmD
	RP/Q9Or/Ve2zmj3sLZbeRHESny6s0UeX0+LNN9x+FIFwpYOOLdTO3NNe5KLyBCiua5DMfn
	7zjnkGk9F9Dl62IBZxIyWwRCe6uceo8=
X-MC-Unique: YkO-zEWiOFO4iSk9FEkqKw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DFQ0x6sWZeLU76k14tJMqo3PvBkrd2Ylxu4Lc2vIi06D8zVvFq/aWXxCfwEYwvjbPACtv50hWwLOqGvEVc7JZkMbtKsCZ24DFUiFmKJm58FTJBv53ismmv7oL1VCToj+SczWdKifwPIGEXmLdFR+XQC+IimvX/CAw6m3v7+1hiAuGZNGFm2atghgbNCgZFbO/LJ+TpVX7ydcXPm7DAHz3ZiC9qouoSgNF2nysLMusBK6efZ+5gYj8YsTHc+yTxqqRzk1pbHuAs3Lx/2MpTs20maRsrtUAkb1VfwBqnDknuZW6PjK7ZzjEWQruWW04o7jw5Qfh5CG56Bn4W2RLVU1aw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v97bW+vQJx1D0j8h3u6Qf9S2JVDKpRDR1gplq3wrWHU=;
 b=g4+NnDZHpgRC5MqiadkDctY9jPQifMVMPRIz/XxcXc1KBJYpCVttcTHA/K555wppdG7+MSQbjTM9p0CpiL4I2VXa/9SRQZlCkBuQ9peQ+WSgfiZgDnk0MJnaou6H3/bYQrjNNVH0C+nhjsAO4yNFpKiN+WdeRfPp4AuK5zV1lJ2YfSnX2fI8UeqrQDzUnb+uuYul5NXeeMYkTiwly9Tani+4UlLbRFtdHdd3pRsoMT4QsYorY6QL7Ak0kwksseFxx1QTVbmbRv7z4Yyfn1O2eA10l0xT/SPxhIQMtCc3wfsc+xGQbZrxOIsQEysFzuNdGx7H7xYrCq/lbo4s6dld4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9b6620ae-308b-c1c9-939f-74e24c647e5b@suse.com>
Date: Wed, 17 Nov 2021 09:00:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 2/2] x86/alternatives: adjust alternative_vcall0()
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <8ef681e6-0274-7b84-494d-29d2c3b3870b@suse.com>
In-Reply-To: <8ef681e6-0274-7b84-494d-29d2c3b3870b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0058.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:49::19) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a76ae1c3-db01-4dcb-de3c-08d9a9a05d55
X-MS-TrafficTypeDiagnostic: VE1PR04MB6480:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB64806F96EBA8B5A0B1771F7AB39A9@VE1PR04MB6480.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1227;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ObZn8YUzsp3ssTMozwfX6U7aSyH/ZJpd4XO/gIHrigh8Kwer32POpArQC+gurmVsEdrp6iz4GDMOOzGdkg6fGyQfgHSRQFYqkmzTHut9AIOYZV1t3+P7o7JJwdn2Wxyc5yVfiwKp+VKzcM7gcAE/fzCQvG9ElXdFFEg47heNQgtLyidCxfXiCohGuJOY05BnGHvuZxEMXTSIKKUb/2n+JKDlmvbOkah2Z5MtdswD94AAqo1DJHeGrPvO15iOPq7AanEUc7zoPZXzkQBW1EaUUBSFgMNSThSkrzCOt8qrqyh9AHddrXQlg6nnJYMkxqRjl72snSTumCER+OWVm7PMZ/kLUrMZcrEogHdeqtuubE3Mjj0XmrK222/WWQtH5cyt1dyqpqlMR343s0xPutXWsH65GIXXHSSl1CVv92uOQPSKjFqeWhIAWv5ayDBWokVea7Qas4Z4bkFV9ZTNfq21eSu/x3mgvRRCFjcZ5HpFUpcyXPLx5w8lXpemX/kRTbAPNy1WEfxJjgHSu+sJsKlx1v63/ULkO9s7Qs2XwBE5dmNluw+BIgdjXvWj5PEXg+ZzV67jjndonm9DTahiK07aE+LsyVyB1bM5j6STy9gvU11cv0PBoClYXmCEe/qYS6E0+TZ3qek9iWQRihdPZYRQSdZ7ukBIc9y4ZVC8SBndmT0hQhohHh5IUyoaREOn/dZXyFM4QFFjNJpo6vv6UpKyxPxbFZYf0w8/wUm0+Ku8rLhslYyMYdd1tV7uul/lKHjr
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(86362001)(36756003)(5660300002)(31686004)(2906002)(6486002)(54906003)(6916009)(316002)(16576012)(38100700002)(2616005)(8936002)(508600001)(956004)(66556008)(186003)(66476007)(26005)(4744005)(31696002)(8676002)(66946007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M1R4cVBqdmhBczh6OUV4ZFlmMjZTTWZJakJ0bEE4bVZvYzdpbXE5UktoZXM1?=
 =?utf-8?B?RXhEdWdWNExOZlBsLzBMN0YxSG1kYXB5VWtER0Zwc01JYTF5NzBaQXF6aFcz?=
 =?utf-8?B?WjEybjJUVFcrWWE4eGMrd0hLSHNqWFh2cHBBbDIra1lQa3RKc2xCTnFSQVIv?=
 =?utf-8?B?YXBhTEQ5MlFqRGZybzdDTWdSaUhIb2EwdXBFdWJxWVBGM0RVeGdlWENjdlRH?=
 =?utf-8?B?bnYrSEh6cUNLUnRWSDZYaThjbU02anRtenJxUnlRRVFxUW9WWmYrallxdEVX?=
 =?utf-8?B?RnVuMFo4LytLaC9PU3pQK3RlcFhSOFlLVmdpRjFKKzNMRmp0NnI5RllqWEVO?=
 =?utf-8?B?Yml5T0cybkorU01rY3B3V1o3UUQ0UGtvRkpkT09FdzJlS2lYTU1vZlgxdDZ5?=
 =?utf-8?B?RFZ1TUFzMG52U3p5MnVXZ2hRMDM0RVU3emRJUnM5VzJxamttM2dUMDdDVmlq?=
 =?utf-8?B?OGtCZ0lNVmp5SkZhanBOTGRvcDlmeGdpamNXZXRRNTlWV2RJTkNjNjJTT0dh?=
 =?utf-8?B?M1V4djhjL0ZQWW91b1RKM2twZlN0aXNtWlBMV2ZXVUZLNDJWRTlzNytDSENF?=
 =?utf-8?B?QmFJcGpuRkdOYzlQczBmRG5wOTlvQWVEcXJjZ1hRNlVjS1M2cE9BM05rM3N1?=
 =?utf-8?B?MFVzQ2V5QXVsNmlwbmY2ZDhIczZ3TmVCVk41TlRXQllFK2pxcmdTcGw0RXc1?=
 =?utf-8?B?OXJCVi9ySFhRdi9wMTFmeDJQN0JxbmRLMDJUM1gwaWE5NEtNWk51ZEdicklx?=
 =?utf-8?B?QkFQMDdtKzQzMXVadmx0blIxUGVlSG5aeldOMS9jS2RmUFpON0xxWkFoTklE?=
 =?utf-8?B?Vkl0bktmY3FLTlpWSGVUQVdXQUVTMExPYnZsci92ZVpjbkNwOXpUd1NjMjhw?=
 =?utf-8?B?QVFuOUNPZDVCT21jMU8vT1pTK3M2RURNdHpyZDJaNXBlUkZ2NUpGNE9hYzlm?=
 =?utf-8?B?ZjVVYVowdzBKaEdkUHJOcjFFTkQ3Ui9Sem9QR2pZRms2aDhpRFNtaTQ0cTdz?=
 =?utf-8?B?SVpyWGE3MGk0Vmt2bFR0YjIvV1l6dzdIR3RQcFJGRjk2NFQ3R05ZSFdjM0p3?=
 =?utf-8?B?d1hZTDhYOUpVTmgxeXRjUXFNRms5Tkg5ZkZOazlKQmYzcG43UXVYbG1RSUF0?=
 =?utf-8?B?c3JLaTUyTWpBdC9pbWZqRDliR2kzeDl1S0xpYncxTllJaERJd3NrbTFCazJu?=
 =?utf-8?B?ZmQrcGordVVqZ3JFWDhuUEVDbXlxUGl2N0lMWmIzRXYwazRjWFpCNEUvV3I3?=
 =?utf-8?B?MGl4MW1qek9COG1qY0dFaGhnbjNLNTV3NVNxUFNQVU1WVlpERlFpcXFvMnA1?=
 =?utf-8?B?YkdBLzRXVWZ2WmRNem13SFZ1aVhBOEU1U1BYTzBKM1JZeGZIWlE2WXAxS1pX?=
 =?utf-8?B?TVBwRnZtWjk1clB4M1pWbzJ3ODhJWUtMdVNoN2tDOGhBN0I0MjYwNmliU2hj?=
 =?utf-8?B?ZUJ3VElsQmdHUS9HV0Z5UTNGTUhCRkxqamp5K2hkcjdQUWNkdEFrS0JIbGs2?=
 =?utf-8?B?bEY0a1VCNWI4eWtnV3Q5eDlyTjdnazUyL1RTUWZCTEt4L0RlVUJDRVYxRUtp?=
 =?utf-8?B?YjluN2MzV0h2ckE5RE9Zb1VyQnhkUU9ybktQMk44cytwYVU2Vm1Db2x6OXBG?=
 =?utf-8?B?dVpFenl3T3lORWxoSEVTMFBsSlV0QnJqUDBGZ1RCVENGbncxd3dvMUozd3da?=
 =?utf-8?B?WmxXWi9UUzhhT1FXZFRTRmJWbmMrMHV2UytNMURLcHlrMWFGMGJaWTh5ZzVO?=
 =?utf-8?B?N0grQjJuRlBzTzc5ODg3Wi9Bb1pXLzFNRDVQcUpYYS9WMjRuWDd5K1dpaURF?=
 =?utf-8?B?K2VaaE96dnNqdjZTUml3WEU2cURHZ3ZCRGlUelFJaGkwRmJlQVBpNkVFcDdC?=
 =?utf-8?B?MkdYL3ZkazRxWkhQcGF6cUV3dHYzZ3JoKzgxTDRGazFvMTR0M1NOejJrd1Iw?=
 =?utf-8?B?dmFTSzVDOTBRSktuVkFMeUMzdkRHZVVDY2dNWm90TjB3NUlneVRHelUwQVlq?=
 =?utf-8?B?UFptbC9kSDBOa2tORGVhQXBRWDlyN0duNmxVSnVtMU9IMXRIbGloemZVSk9C?=
 =?utf-8?B?WUxjcDZNSGt2c043TDV2dEpGbVJab1BwL2s1UXg2T1AxY3JEVzkvcU1YQU9P?=
 =?utf-8?B?ZEgvUEttT0JKdEtJcFZ5NTVqVDlTN0xMTmRPYmx3d3Rva2ZReEtlQkNXNGl6?=
 =?utf-8?Q?65MZcXTzRnoxPdq17jgCMAM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a76ae1c3-db01-4dcb-de3c-08d9a9a05d55
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 08:00:47.6425
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UaVqxcKY3TPCbci4o64p3RqRhv2T/kgJbJQbQiEHUKxPYxS4y2rcxY9EfkgjxalgZtWkNO9utMLdSXvcL2tqHQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6480

I'm puzzled about two inconsistencies with other alternative_vcall<N>()
here: There's a check missing that the supplied function pointer is
actually pointing to a function taking no args. And there's a pointless
pair of parentheses. Correct both.

Fixes: 67d01cdb5518 ("x86: infrastructure to allow converting certain indirect calls to direct ones")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/asm-x86/alternative.h
+++ b/xen/include/asm-x86/alternative.h
@@ -218,7 +218,8 @@ extern void alternative_branches(void);
 
 #define alternative_vcall0(func) ({             \
     ALT_CALL_NO_ARG1;                           \
-    ((void)alternative_callN(0, int, func));    \
+    (void)sizeof(func());                       \
+    (void)alternative_callN(0, int, func);      \
 })
 
 #define alternative_call0(func) ({              \



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 08:28:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 08:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226636.391683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnGJ8-00079C-DF; Wed, 17 Nov 2021 08:28:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226636.391683; Wed, 17 Nov 2021 08:28:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnGJ8-000795-AB; Wed, 17 Nov 2021 08:28:42 +0000
Received: by outflank-mailman (input) for mailman id 226636;
 Wed, 17 Nov 2021 08:28:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnGJ6-00078z-9B
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 08:28:40 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d4e156c-4780-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 09:28:39 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2169.outbound.protection.outlook.com [104.47.17.169])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-6-b2rKcIdaNoitie0wYQjizQ-1; Wed, 17 Nov 2021 09:28:37 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5165.eurprd04.prod.outlook.com (2603:10a6:803:54::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov
 2021 08:28:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 08:28:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0502CA0024.eurprd05.prod.outlook.com (2603:10a6:203:91::34) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Wed, 17 Nov 2021 08:28:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d4e156c-4780-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637137718;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=NZqmx/f9SxWx6HKq+SKbz6qRkXxJuCzX6FjMoUHU+TI=;
	b=CosIbDsJMx92ZVVdFDcpF59A2O7GWyYolM2O4KDVuObg9dqmoBI33b6nyO0M98VNUXZzcg
	/3zhsVpzz9PEuMLk7DiR8W43W4I+tC8u0bwl8LZUwdm2RhAopA8gC/kaCTMSw/XpdOun5K
	/m2i+y430pOQFFcMcr0rikGyMEryy1Q=
X-MC-Unique: b2rKcIdaNoitie0wYQjizQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LT6tPDzLpEvX1a1N9Q6UFRxdqTNoppdDeFVOsHMc6wyNhtpiky7XijKy3Fwka/tCDXkVxLdKh8x9fea05s5GveANO+HkQvzMUwRKEUjnRJhmAAjy6E7P4CQaf1/AX4DfsOMueoo9ST8QJiv1V6Fgbl0E8OpeUvpvawNDb9OV2l3QLz4W5Tlp+pDF4WmlJx4MNRcMo6q1yjhiZE77XJCSDf9gB6N8L0udQa8r83GLetpCF7ttc5lf7CRfx6UzFYjx670Q+9bHJR89qTT9h81YhV2uTv22odE39bvZIW55+nNP0bKFIuwDFhSU/QA5IAp8is0UHYADygFjUltSMuT43g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NZqmx/f9SxWx6HKq+SKbz6qRkXxJuCzX6FjMoUHU+TI=;
 b=gLyiLwGbbQ5pvBo0kvP5jdbKM2Si7NBi3oskhaRMlgqu+5Kttp1pNteCkRHQ47b/UXWwA7is2S2/9e1yniBRl6ZlQgHIBVPVGAURwLLUHmfnPX+RK5xXchYxI/o2Jua7RWvlit8kw2PKJZ6EHjOUSs9oNhTpY2tFA8EYR1QIfky6XU3oeU3TTj2XNRd+7a1DWDmB01nmKEmFdYVFQR6S9vIdsMNSkDEhLUIGeGJE4XnLJ5bPTbRLO5T9U60i4X62j4sl1GM7hMc9Sw++39CM8WcSIY33TiR+8a1s6kvad5JmkcTXXkoqR1OixKwBLRtmKuI781aadi6Ou2JKsE9f2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
Date: Wed, 17 Nov 2021 09:28:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>, roger.pau@citrix.com
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-3-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0502CA0024.eurprd05.prod.outlook.com
 (2603:10a6:203:91::34) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5c0d4edd-4d05-4d0d-6794-08d9a9a43fd1
X-MS-TrafficTypeDiagnostic: VI1PR04MB5165:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5165E9F48C25D44952BA51FFB39A9@VI1PR04MB5165.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	kcslf0TSlfIOyrPabVI2Qe8jvVlp/ROmz14AAWNvj8TwCWWSi9cQIsZNn7rys0iiV0ClEQdCZlK+q7FXtthpxcKsqc8/zC7sONcsXtFC1LlStKtqKLf69tfMTlB0wJV5jk6F7ykQK0/6Wj/YsvDIRkVX8ZOCod0XM6eLJnu0tY13bJQ5glNrDXE3AmKEK54dmyMWzr0bQwfGuzflAn7eVb31IN+vCyAH79ilx/DkgvTz/odjJhKcuSbWsf/LAMySRl5ADJwYe0SXTMDte5HzP54f0do14vg2H982NVkBo4eV5FjN4S2Aevk9vjAitXwnyenPdSDqi6aBy22Eh+w0xR7W1cP5oNOXtzm9I7uYoIqc9Dr09sCb2yAjeJMc/JJVjEawR1zdrvrBaBh0Pcq3uVgJ/phRDteXmlm0KvT0HO/qdJTO9aJ0UN5g1vL/9H9MTWMNiyT27+rw2NDy0zQtJ90qN6cfc+ISJ+So4GvuxgMhCpgCIC/WqxQ8sd7wS0NW0+r1jp0njZuxmQx/Q3YgU7T97seSzg08Br32WESbw2CoaAoUDPxQP/uLNv4hi0M+05z04nmzMDTvXsRXIdvMjlLVcVrjZ9FM/Y5PmVSOyufI/pHcMPLt9brNEZxLiKkx49Bu68N/jkwkA69OppqG0Z1kvnFQyVQ6uBzEpDot1BarckwFciyyucdDgQNqdUXJiWNXM82rrwSm4rvwZAqybCYsMWoobkZVuc9J0j+i/co=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(508600001)(7416002)(6486002)(8936002)(31686004)(66476007)(38100700002)(5660300002)(86362001)(66556008)(31696002)(66946007)(2906002)(16576012)(83380400001)(36756003)(8676002)(2616005)(956004)(26005)(316002)(186003)(4326008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SlE5d2Z6alVZU05LR3BJcDRyZGk0TWpVS29yWlIwVk5zNHljUXBHdzFxemZZ?=
 =?utf-8?B?bU5KbjRGTHBmT2dhaTFUbUNwei9MOTVZUi9HY01aR1BwN0MvQWwyNXdMYUkr?=
 =?utf-8?B?UklWcG1xOE5BanpkS3F1a0NnUXFBQ0FVQngvYzJIc2ZwQUJqY09BOFllY1ZM?=
 =?utf-8?B?ZGRTMU9DbVJkSmtiSEhtMjh6TERIK1JTL0ZDMVd6VnovQklaRUtOS0NwblVl?=
 =?utf-8?B?ODlLK1JZTVhGT1F4WEZqZi90MkpFTWltZXkzM3RaUG1tNUFEQWhPOTRzYXA1?=
 =?utf-8?B?WjFvRDVVc0gzQmlXNHZYMmdSZUM5VFp1WldCTmJDeStDQlNma05BSC9BT3B4?=
 =?utf-8?B?dGU3am1ZaXVDcVpWNnkzdXFjOEFnazE1eU1NMTBrSzFuMU1QK3ZBVEt4SE0w?=
 =?utf-8?B?MGNaYzZtVXFIL3FrRnRqVjJIRzE4L1hOWjg5QTJwWEVKS2JZRGVBaGJBWW5W?=
 =?utf-8?B?VTd5aWc0TUtoa1NXaVhTNUhoOXhFQkEwRXVTcHdkVE9MNnd1RkR3NGNnYzFm?=
 =?utf-8?B?cGdJM2xWV3AxSkVkelhQZE9udy9yNnVnQ2pnUVp5K2FZS2s1Sk1VL3Y4ZmZ2?=
 =?utf-8?B?Q1NkRVFRNzh6MmlSazlDcjB5c2liL3liY0c1QTdGdkxVSmJleGM0dTEyZGRM?=
 =?utf-8?B?dnk4ODFHcE9SY3JFKzA1RGFsWkFyejFtalBNRnByMGZ2MEpEY2UyaGRzTE9B?=
 =?utf-8?B?b3doV3c1K3hIUmh2cWhUNzdrSExpTGw1aURlM2dOS0hVME4zdkduc1lMNnU1?=
 =?utf-8?B?MnJIZm1xbis5SkZSZHo5OGVEQS81L0ZET0dYOU43amFHaWI1M0d3WFcycHYz?=
 =?utf-8?B?dHI5cEgvYzFRREJOUnoybDRhUVF2RjFZMlNjV1V3K0V6RVdRVlhLQktpT1lN?=
 =?utf-8?B?QVpNLzh2TUZna2wxcG01cUtrM1F4Q0tVemRiL0tJQy91U3JSRFZxb3YvKy9a?=
 =?utf-8?B?RmVZRVNFaWRGV25ZK3FJa2Q3RURHemMvdW8wNkIvMVlsNzlFbk9PQjExUGll?=
 =?utf-8?B?dzlFdlNCMWExVWpDVUNOTVZlRWsrOHZRUk1XRGlmdEx3OW02ZTEzU1hhcWhw?=
 =?utf-8?B?U1lLVndqRnFINGpDd0R0OGxoWlpBQ1hmQlFuVTcvZVl0MVVrMno4SFVPSUpE?=
 =?utf-8?B?QTRSOGt6NURoeVU2YVVqZm1YRktnL0VNQ01vZEFhMTRqMk5VRGR0MzNMZ3lI?=
 =?utf-8?B?ZDVYeWFIZmJyQzZ3Q3RPREJmSlZTL0luWWFRNDRkTCswdGo0RE1NYkpCaDlp?=
 =?utf-8?B?eUdITlFGN1JkREF4N0syT3g1b0hWYTI2WEdhYUFWUFhnUURYQno5eWdpU0F2?=
 =?utf-8?B?TWxGUW5ocHowdXdQelJpOUxYUVJHeWRxL01NWXV2a2dkcjBGOHZuOUtEa3Jx?=
 =?utf-8?B?N0tacUJhQU4wQjFMVVJUdzdKRzNMeWwzTG9sc3RGR2dFbFcvZFF3bmF4WElJ?=
 =?utf-8?B?SHhLeWhWY2JLdnQ4cXJMNUo4bDVTMmZ5SWtYMThZZ3FoSWlEb2dXeU9DWlhN?=
 =?utf-8?B?bFl2YjRoeGtaSHg4RTVPTU95WHcwckhqQUhSRkxxNmpwek8rYjI0RlJRNDlx?=
 =?utf-8?B?aUR1U3dIMkJxRlVQc2hGVmJWY1Y0d3pmUExSOXFnWVNRTysrZmQrRDZxNVlm?=
 =?utf-8?B?TERkYzAza3FrT2t6ZHhDNUI1Rjc3Y1hVZ2NxVzJnZ0Frblpwa0JlRWZBcjlz?=
 =?utf-8?B?elQ0c3JZYTFhbFZMQzV1dmJ6YTNzSWRzWDd0NlRPVWZmL1BwVEp4VU5tdWY3?=
 =?utf-8?B?VS9VODZPZDdVVXlLMkYxUHAzVG1FaEZLbHUwY0tPVjl6SFBWeHZ1UjRzSitz?=
 =?utf-8?B?RHBsMzcxU1ZCdGpKdUFkeHFCVVRYSmhQbDdlOHRIenpQQUxBSUxTSmphRzVo?=
 =?utf-8?B?QnM4RGsyS3dRTWtNVER5NTZBWEMxbzVicVF3eCttN0R4ZFYvMkd4aHczR0dw?=
 =?utf-8?B?N1ZyQTg2c0tFc2xPZ2pUZDAzbUxiT3NxMTVuWTgxTE8ydWk0STZzbndTWCtl?=
 =?utf-8?B?YngyMlRTOXlnZmpqSkhGei84aENKNDZ5U0VJbnRNNjNzMjJOMkUxK0hhWlJQ?=
 =?utf-8?B?QmErOWZwekpjVWwyTTJlbnppb2IyZ2lnV2lkUFI0M3Z2bVRER250RGo3LzNk?=
 =?utf-8?B?ZjYrblNwcFhjSzFkNk1KT1dJbEY0U2p4VXMyOEJxTmY3Rkh4WEZtV1pJZ252?=
 =?utf-8?Q?pEaTnSUK9JgLmrjNFsH5QOo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c0d4edd-4d05-4d0d-6794-08d9a9a43fd1
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 08:28:36.1553
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7KI9beLR3yAqGqOngJ8NNSJFlHhWo0X9pGjAFC8jqzgRxrR1ItahqlGx4ZH8GtKm5ZGJbzZAHWaLbtdezWz72Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5165

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> When a vPCI is removed for a PCI device it is possible that we have
> scheduled a delayed work for map/unmap operations for that device.
> For example, the following scenario can illustrate the problem:
> 
> pci_physdev_op
>    pci_add_device
>        init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
>    iommu_add_device <- FAILS
>    vpci_remove_device -> xfree(pdev->vpci)
> 
> leave_hypervisor_to_guest
>    vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
> 
> For the hardware domain we continue execution as the worse that
> could happen is that MMIO mappings are left in place when the
> device has been deassigned
> 
> For unprivileged domains that get a failure in the middle of a vPCI
> {un}map operation we need to destroy them, as we don't know in which
> state the p2m is. This can only happen in vpci_process_pending for
> DomUs as they won't be allowed to call pci_add_device.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Thinking about it some more, I'm not convinced any of this is really
needed in the presented form. Removal of a vPCI device is the analogue
of hot-unplug on baremetal. That's not a "behind the backs of
everything" operation. Instead the host admin has to prepare the
device for removal, which will result in it being quiescent (which in
particular means no BAR adjustments anymore). The act of removing the
device from the system has as its virtual counterpart "xl pci-detach".
I think it ought to be in this context when pending requests get
drained, and an indicator be set that no further changes to that
device are permitted. This would mean invoking from
vpci_deassign_device() as added by patch 4, not from
vpci_remove_device(). This would yield removal of a device from the
host being independent of removal of a device from a guest.

The need for vpci_remove_device() seems questionable in the first
place: Even for hot-unplug on the host it may be better to require a
pci-detach from (PVH) Dom0 before the actual device removal. This
would involve an adjustment to the de-assignment logic for the case
of no quarantining: We'd need to make sure explicit de-assignment
from Dom0 actually removes the device from there; right now
de-assignment assumes "from DomU" and "to Dom0 or DomIO" (depending
on quarantining mode).

Thoughts?

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 08:39:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 08:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226641.391694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnGTV-00009Q-Cf; Wed, 17 Nov 2021 08:39:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226641.391694; Wed, 17 Nov 2021 08:39:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnGTV-00009J-9e; Wed, 17 Nov 2021 08:39:25 +0000
Received: by outflank-mailman (input) for mailman id 226641;
 Wed, 17 Nov 2021 08:39:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnGTT-00009D-Tu
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 08:39:23 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dcf5feec-4781-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 09:39:22 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2054.outbound.protection.outlook.com [104.47.10.54]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-31-mb5sSacyOMaySOKXuRiMvw-1; Wed, 17 Nov 2021 09:39:21 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3536.eurprd04.prod.outlook.com (2603:10a6:803:2::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov
 2021 08:39:19 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 08:39:19 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0102.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.16 via Frontend Transport; Wed, 17 Nov 2021 08:39:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dcf5feec-4781-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637138362;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=c1NbKMx+BVB28B1tLkPrIUq7uBVGcrCysKxVsq2OPr4=;
	b=F7anT3/c0mFgs6FGqq7TtqkKthLJIRk2kAg30gcaowKVYrJpIpuhv2U5op1PtmZLPY36++
	78Jkz6NZArAGG1rkCPSwyuUjV5Thrby/h76BwR5+MYvPkQO3GMKwvgKybru+Z5Ia95w0Zj
	tDFHy4VEOgU2V6W61+nQT2j4qQUncSA=
X-MC-Unique: mb5sSacyOMaySOKXuRiMvw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GIzAStwSOHbEGCZe+Lixy7tbrB9ZW3nL5pWkkf78LTcE0eJDhVTMJeer/ofLAbwGAe1OVMlkDCfzir5ewEbK0+yArbTMtz73xwLm0JwOmCzcOVxYGJ/CtV0qCeEERhb/6HXJBFWO1FkT8wZys4OOpCLNjVdliO2KF0nsHorPY9Mfj4vl6/mE2CzByuLADtVQUtx19Bz9hs7hNFdipt4NsdKFyrgM05L5qv4d9JPiHurMlDBmMs04QIDXzl+NpQX2xweCC3S8yLO1yqbujf03Fzpa6hhpQWs6gEjiLaR1czB0jMfv/OXHRWVlFXkNmGmrxSptgEm8ZtxcIZjUyr2ldg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=c1NbKMx+BVB28B1tLkPrIUq7uBVGcrCysKxVsq2OPr4=;
 b=kdQWLILk6Gkh3g44NUjqwDhpVZzjL4jleoPWxaKdWP+xInS4evj+WfImi8f/KBEXbh4/1y8vxrc6rQhlBZYexkhx60j+3vqTwI+YSGVgWeU1eTrgpkGuywC223Oj+xw5sYVMiQocLdvfo7q2IGMBVrFW75ypu6uveZGCzsGQe3jKGAAxG8ZFoDPYHoEuUXa5DxeHQkyThRvoG6DCHBDT3nSeC6Ik+kKU6sw3aSVfkF0pig+bBbbJqgUIBRQcPTB9cb6dsoR4VNd1evkWAcwthfVnKpw2bOtewm6EvFKS8cVfh6XZJbWiBBvddX9gtCRng5+Pb2wLuBfABGDLZ3pMlw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b62a87ca-b68f-76fd-51c6-114e8b8e125b@suse.com>
Date: Wed, 17 Nov 2021 09:39:17 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: PCI pass-through vs PoD
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony Perard <anthony.perard@citrix.com>,
 Ian Jackson <iwj@xenproject.org>, Paul Durrant <paul@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
References: <b6d598cd-c244-2b7f-c731-fe839df3382e@suse.com>
In-Reply-To: <b6d598cd-c244-2b7f-c731-fe839df3382e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0102.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:8c::43) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4fa7f8a8-8e95-4648-d9c8-08d9a9a5bf14
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3536:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB35364EF677205341125B2FDDB39A9@VI1PR0402MB3536.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Rt+EJzVUsjKXheDwFlGXQtkvugXOjD3DNyssmemMAPQ6Ch+SNoxcvUJxXNdEKpI1KTZebk76Ib0nedTZw7o6VFwdpMaeIuMwH395aq8eLTeSzok1zRs2b7VrHiT6f7p4MfaJ1UZgKvxrTATn85/bUkQ1dpIQ/OXx9p8pp9sNQ626MFDm5vLSRkF7uswshDY6qrEKUHw7rHPaYDUCyc6CaOkeQJ0nHUjCRteEyRjJOY4hgHj8AEKEt9w4V8NGLn29DvJ9hfx9bXkI090cQAG8wcq2qv/admK/88IoXlzmdNtqkIgHJ8oPEVN74DroViMu/jmMc4f65WChQ7cEJMg4kY/OPbVrtzWc9m00VqDUFaKrf+fjf51DExHTDlMQr1xzfp6EKOgnAkIjgrAmvdTVjwy3b3KNWzM25ki9sSL/kB8j6HlFgD4ja5rDXn6MA66fHyEArpUwGaeqUeBFskD3M9GQnvZUV72He9l/j76oqw/mxrt2A2N7P9ZhC3GYODYakQ4DU5D/ARVDwy6GmIaFG1umakTB2F3mld3jlPffRD1PgQEzLVkklmUz/3Fu+GEv47RbT8fe2hzeGqquxLjvBdvEpK38We5BLkOxZQYCHg4lhL5xPzUBPPwbbYd9RZnUDr3YZwzLcwCq9qVzD5Fb/az+PQnFvjZy+Z8HiJmbEghXEXRRpJ/D+o7h/ShRE+FTNeT5W1dZ1sKBHnPl+BjTEoGiZItQyri/Ju2xuxqbF19upWTVHFnJE93rGFnfJynb
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(31686004)(66476007)(8676002)(4326008)(316002)(36756003)(6916009)(38100700002)(66946007)(26005)(53546011)(508600001)(66556008)(956004)(186003)(2616005)(3480700007)(83380400001)(54906003)(86362001)(8936002)(16576012)(6486002)(31696002)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q3FVZnI3SVZJUWd1cjh4NXVQY0FBTTJqUS9wck9qZXY0czZld2NkM25PSmdR?=
 =?utf-8?B?aTlmdG9KOTBHQXBxSFhjUXZBMEFra1VVZUhXVDJ3N2VlaGJ2YWVJT1BxdTVr?=
 =?utf-8?B?ZnorVHdxN2NVWm1PRjE5TDFDQW1XOEdMS21BcXVqM0VqclV0MFMwREF0UU11?=
 =?utf-8?B?ODRLaXhXbFFYOU5uOHlwRi9JbXdpZGRLc0x3aFlnb0l0SHUzV1haUG1iQWtD?=
 =?utf-8?B?RzFiaEZjVjlsdGM3bUNlaFBPcmFEQk1rdm1iY01CQWl5NllPcFBZUENtK05V?=
 =?utf-8?B?M3FZNzBISXFrbE5JQ1pwYXB5ZlNLSWJYL3UyNFp4ZnFMdS9jV3p4SW90RGds?=
 =?utf-8?B?bTAvNjA0SEN6WXBWWlVwTDhablk5d0VjQkpjY3kvZ05sL0duajdzRmhtWnJ0?=
 =?utf-8?B?bjV2UzZyTUNJQ2ZFSVFlVnVIK2Z5TDU2SWNmcTNYcVBEOW9WVXFINlZ0Ry9T?=
 =?utf-8?B?c0g3RTlpVHFTeFhvRTdqbS9mSXMwbHVETktwenJYaUlTMk5tZ2hlWFdycWN1?=
 =?utf-8?B?cnU2OXdEQ01qWm5OWHM3Rm0yeWdYS2RBN20vUUNWV2Q1MnE5ZkNMRFR5cGcw?=
 =?utf-8?B?MDMxR1RKVmxnYTl0VXZaRWcvR1lGd0hic1lPNTg5UUMyMjR4REtDeVd2MzN6?=
 =?utf-8?B?bGNFc3FtVjljb2lhZVNyYlkrNXRWcUx6ZnhiVEdCVGg0a1pUY0VQVVBUclRJ?=
 =?utf-8?B?a2g1R3FQa2M5MFlUYnp2ZnB4cXAyYVpRci9PYVZwZU12aU1TMWN5WDJITm44?=
 =?utf-8?B?eEw5b0FueTJUSnNXaG50VGJpV0dBbkZURjQrbnN1dkpnZDVpSk90OTllcVRv?=
 =?utf-8?B?VVhyTEljdkpPNEpOejRGL0M3TVJ3Znc3RUJVTnYzSUd4bStBVnVqVU9ialdY?=
 =?utf-8?B?NnRVVGloVHExWWV2TU1XeUdYeHp4SVRvb1BGU09aVWtaUEtkM1VDeDc0dWFW?=
 =?utf-8?B?eGxNUWNDSFVOTHQ4c2FacUhZTFZFWmVOVkMvY09vZjBHcHZNVDl2K2tweTZw?=
 =?utf-8?B?VlVpa0VRZzJZc3RWY00vRnFkdEo3QTZtWGw0cTl0T0p5RGZIVTU2WHE3YVlU?=
 =?utf-8?B?cEIyNVdlMjVOZlFtUG1GM3NRTHUrSHlZZU9IcFBPVW9xQ0hmUzZ4N09KUnpV?=
 =?utf-8?B?QmN5aVFSbjl4RWNDVW1Kd3M5NWNtRVdhOTBHTjgvQ0JtQ1JhNm1GMmVyM0JG?=
 =?utf-8?B?cU82ZWZUT0xhbGJadXFBTjFXdU1mMWdaTHR2M2RnVGc0MkpCNzRCbnoyTnJW?=
 =?utf-8?B?cTBEWVNRT3J6b1VEekJncU1RVktDa1RoWDhRQytzejBUMzdyZkU5VUZCcmMv?=
 =?utf-8?B?aERVYnNDMXR5TU8wYmhwM3VjSjlKaTB4ZnJ0Vzc0UXlLd3psMzk4WDNoM0M5?=
 =?utf-8?B?c2xVek5ZTG5wcDdCclFmUlFGUzUyZjZFb0piUFBpWWVIeHgwNmJjQjdLa0pL?=
 =?utf-8?B?WXNsb0xhczd1cHVaUS8yQkxPM3BKdEJOVEhxazd6UjJES0RjOCtYYzhzOGN5?=
 =?utf-8?B?Z3o2YjYrL3l2UHd0bHlJdjZ5QU01RmhLZ2hKdkhrZ0dRWkNWOS9xVHpTVTVL?=
 =?utf-8?B?QUdkMUc3bkhVb01lbC82R05rYkJCUUxpMVFkcUlUZERCb2lPeWsvZUFEejhT?=
 =?utf-8?B?d1V0QWJVQVN3dkUxM3Z2RGNsakVPMkhQdmR3QW5pVHAwcVNRWDJtY2p0eHVZ?=
 =?utf-8?B?d01mdFFDcnRyMWFCR3g5eXRGQ3o1K09EVytROTBlSE1IVUhuU0swdmZIckhB?=
 =?utf-8?B?OStzTExwckVCNkNFbmEzTVBha3VXQU5oVGUyZjVQRng2UThwYnNpUFZjbjJP?=
 =?utf-8?B?YW00dVE5Sk1aclNvOENzK3czUnp5TFhybXBFZjV3RXBIQXd1dlF1T3EyWGZj?=
 =?utf-8?B?R1p4eHl4a3VDQ1RuUjZ2QTltclA2djdJdXYrWXhlR1dlQ0RuOVFzK2xIb28r?=
 =?utf-8?B?alJqMjcrR3VrWFlJVEZ0bkZOS00vajkra2FmUWdpbTF5WFFDUzhhZE00QnQ2?=
 =?utf-8?B?Yk03ckZqdEswTGc2S2hiV1B6anNyRGdpaThVQXRpY3ZacDNyY2tZKzR3cnFv?=
 =?utf-8?B?aVVMNGZ1SU02UnkyLzFCemZFa2dOOG9SdzY5dkx3ZURhTEo4aEhYaVo3SDRO?=
 =?utf-8?B?dWJOSUxHa055WVFVbGIya2hFa2Rqamt5QXdTMEVrY3QyTWUrcVBnTHBaL1Za?=
 =?utf-8?Q?ORq5SACacMFCL6PM4QZaN4w=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4fa7f8a8-8e95-4648-d9c8-08d9a9a5bf14
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 08:39:19.1467
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aEUNSUNmtKZk4dDOyyeGwrWkeTFjrK345Qdb/t9z3aEKSoVXD4Ru99pXwumPnhFUCfnAxAzbj4TMKYXLVbl0uw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3536

On 13.09.2021 11:02, Jan Beulich wrote:
> libxl__domain_config_setdefault() checks whether PoD is going to be
> enabled and fails domain creation if at the same time devices would get
> assigned. Nevertheless setting up of IOMMU page tables is allowed.
> However, when later assigning a device to a domain which has IOMMU page
> tables, libxl__device_pci_add() does not appear to be concerned of PoD:
> - xc_test_assign_device() / XEN_DOMCTL_test_assign_device only check the
>   device for being available to assign,
> - libxl__device_pci_setdefault() is only concerned about the RDM policy,
> - other functions called look to not be related to such checking at all.

I've now verified this to be the case. In fact creating the guest and
assigning it a device while the guest still sits in the boot loader
allowed the (oldish) Linux guest I've been using to recognize the device
(and hence load its driver) even without any hotplug driver. Obviously
while still in the boot loader ...

> IMO assignment should fail if pod.count != pod.entry_count,

... this holds, and hence assignment should have failed.

IOW this approach currently is a simple "workaround" to avoid the "PCI
device assignment for HVM guest failed due to PoD enabled" error upon
domain creation.

I'll see if I can find a reasonable place to add the missing check; I'm
less certain about ...

> and all PoD
> entries should be resolved otherwise (whether explicitly by the
> hypervisor or through some suitable existing hypercalls - didn't check
> yet whether there are any reasonable candidates - by the tool stack is
> secondary).

... the approach to take here.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 08:56:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 08:56:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226646.391705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnGji-0002OT-PN; Wed, 17 Nov 2021 08:56:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226646.391705; Wed, 17 Nov 2021 08:56:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnGji-0002OM-MI; Wed, 17 Nov 2021 08:56:10 +0000
Received: by outflank-mailman (input) for mailman id 226646;
 Wed, 17 Nov 2021 08:56:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=74+5=QE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnGjh-0002OG-G4
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 08:56:09 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ed1e782-4784-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 09:56:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ed1e782-4784-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637139360;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=BsvHb/ge7EOpQfAlSFzLxZp21J64zYHtNKEyMPDJTbo=;
  b=CKmp0sSgfNvT6dC57v0O6ZRscEmvtrHQEXjPXIcX11aoPGWkIqPuGNf9
   uYh6DkkKCYyCx3rgnQavuz9o6A9yy6YVT5QK5V97cu1jZ4qdjWJPl5yN5
   9jCEnouvKB3J05jCb/eaORtp1x+iW2pq07tnrZ7ZxiXap/pBpIUj4KjML
   A=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: Q0iotyDAT5vb/8KDOkGRRi1n9bv7LmmTcrb8fYu8qeXgTElkNeFpjouIBX+Sxi8amfg1FqDauY
 Lo6KnDrWzcYUUgULz2OyI1pWfbKIiLjNoSkwV7lnMOYeFhSYdBlsKutyi1WbrqVgquf33YHJXj
 zDWuXnLvZELXAHPCVnTylubg3r+gtcgQTv/vDXuBCuBFnm7vIJq195K8xpA/Ty/C7B5AHekugt
 MtU3i+maZw56qGqoFvqbqeuoyJZ8bTf1tQ74ImxA/53XwPlgnKkKb5ejfnD1X4eFJ6KR1McxzL
 jQsoaIl68L2YApm6Ug2Uq/oy
X-SBRS: 5.1
X-MesageID: 58035065
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:GBpDs648vbVBpF6DflfWYQxRtMHAchMFZxGqfqrLsTDasY5as4F+v
 jAdCG6BPfuKa2H1Ld0laYyw9x9Uv5CAnYUwGQo+/nphHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg29Ew27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zx
 M9v5YCsagkQEqjDoOBaXDQfTzBzIvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALNs7kMZlZonh95TrYEewnUdbIRKCiCdpwgWdo3Z0WQ6u2i
 8wxNWFeXjHxUSZzBRRJMdEzjf3zoUX/fGgNwL6SjfVuuDWCpOBr65D1OcfRUsyHQ4NShEnwj
 n3C13T0BFcdLtP34Tua8Fq8i+nXhyT5VYkOUrqi+ZZCglee22gSAx0+TkagrL+yjUvWc8JSL
 QkY9zQjqYA29Ve3VZ/tUhugunmGsxUAHd1KHIUHBBqlk/SOpVzDXy5dE2AHOIdOWNIKqSIC2
 kWrz8/1JjJWnLiacXba+ZrT8SK/Jn1ARYMdXhMsQQwA6tjlhYg8iBPTU9pueJKIYs3J9SLYm
 G7T8nVn71kHpYtSjvjgowib6965jsGRFlZd2+nBYo6yAuqVjqaBbpfg11XU5O0owG2xHgjY5
 yhsdyRzAYkz4XCxeM6lHLVl8FKBva/t3NjgbbhHRcFJG9OFoSDLQGyoyGsiTHqFy+5dEdMTX
 GfduBlK+LhYN2awYKl8buqZUppxkvCwSoi6CqqFM7Kih6Sdkifdp0mCgmbKgQjQfLUEy/lja
 f93j+7yZZrlNUiX5GXvHLpMuVPa7is/2XnSVfjGI+ePitKjiIquYe5dajOmN7lhhIvd+Vm92
 4sPZqOilkQEOMWjM3a/zGLmBQ1TRZTNLcut8JI/my/qClcOJVzN/NeNm+58INI8wPwO/goKl
 1nkMnJlJJPErSSvAS2Ba2x5aaOpWpB6rHkhOjcrM0ru0H8mCbtDJo9GH3fuVbV4puFl09BuS
 PwJJ5eJDvhVE2yV8DUBd5jt6odlcU3z1w6JOiOkZhk5foJhGFOVqoO1IFO3+XlcFDezuOs/v
 6akilHRT60cSlkwF83Rcv+ukQ+85CBPhOJoUkLUCdBPY0GwopNyIin8g6ZvccEBIBnO3BWA0
 AOSDUtKrOXBudZtotLImbqFv8GiFO4nRhhWGGzS7LCXMyjG/zX8nd8cAbjQJT2EDTH64qSvY
 +lR3srQCvxfkQYYqZd4HpZq0bk6u4nlqYhFw1k2B37MdVmqVO9teyHUwclVu6RR7bZFog/qC
 FmX89xXNLjVasPoFFkdeFgsYuiZjKxGnzDT6bI+IVng5T8x972CCB0AMx6JgS1bDb10LIJ6n
 rtx5J9Is1Sy2kgwL9KLriFI7GDdfHUPXpIuuoweHIK22BEgzUtPYMCEByL7iH1Vhw6g7qX+z
 ueouZf/
IronPort-HdrOrdr: A9a23:fzznqahXXOrwLHoKZ0X+e/YFpHBQXt4ji2hC6mlwRA09TyX+rb
 HIoB17726RtN91YhodcL+7VJVoLUmyyXcX2+ks1NWZMjUO0VHAROsO0WKI+VzdMhy72ulB1b
 pxN4hSYeeAaGSSVPyKgzVQxexQouW6zA==
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="58035065"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kbzXn5/grQ+kx9VMpm+x/KE/gXhUaBNsqHhJCdtQqeRnwBqhJKedx/tkG1hPFokl9jWFqmxUKD1LNKLQeSiUdz1luS4NRZv0k/sx5zAVfoleIiDD6oBb7O8a6D72JgP1EFBwOZhXAU85COy6O+MPJBIfV23ZWVoENFbidl0QWNiM71pfl8FRYu1YkAFdap6q+KK7CWQrMFhSALND9B0AZ9XTJrd3P1ApSLdtPp+/NZQWSzn1b2XPpbEkUEdoD8D4sAGBXJC+4K4cltOrC7bYb5WRjb6esWwhmjU3tcXdSBZqa8pFDY2QeP3cGTp3dZgH2E2xEsQ4DlkaU5fsGZ4AXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Qj7o4Fh7oCvekEDVNRy0BKJMSfFuvp1kP7A2BNvLx2M=;
 b=JjCMjXTJQ3sRzN+Lnx/fHqnys53xc0HCCWmOGmT++6t9gJaf8xKFvVKqGoJYlCkAt+PH00wXNXWFupNYBwK/l3VzXB+3FxnP3PKSoSYDS7CrQUy3QXMfr+mUcDOGcni3T8PxXdr0R6rpbBVAbjEzu8opLugcTd6YiP3gpTeNQRyAMkPfXh2NBGjzDysl5XvGD7KCYZEF0w2+RRs7+AW0iuOAkHDH5EFJ2w5iZJ7WwXcgpfr9LFmLg3h70USmTz1kFh2LtZNcrVi2wlK5YOnwH1GVxK3KJwQUHz5YRM2z0uC5f8zse5OwJOYImcYMh+lOBLHdMML2ya+kCAD/LVkCkA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Qj7o4Fh7oCvekEDVNRy0BKJMSfFuvp1kP7A2BNvLx2M=;
 b=bctONmm3K4DAYM/rt5/gFpNGiSKhrFZ0Uv8dNjEbVhYlLDLchyLimiJ9eWSWfWLcrkw1YEL8/mXjnhKYNOROuP/s8U1xkRHAZYUqolW8Xt6A5shiKMHgkU76XK0mArgfF+n0Wlvqdo/4sQjQGtKCbsbzvbcYvC+Gix6Znr9q7Bs=
Date: Wed, 17 Nov 2021 09:55:44 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Anthony
 Perard <anthony.perard@citrix.com>, Ian Jackson <iwj@xenproject.org>, Paul
 Durrant <paul@xen.org>, George Dunlap <george.dunlap@citrix.com>, Wei Liu
	<wl@xen.org>
Subject: Re: PCI pass-through vs PoD
Message-ID: <YZTDkNRY5pMLFUR6@Air-de-Roger>
References: <b6d598cd-c244-2b7f-c731-fe839df3382e@suse.com>
 <b62a87ca-b68f-76fd-51c6-114e8b8e125b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <b62a87ca-b68f-76fd-51c6-114e8b8e125b@suse.com>
X-ClientProxiedBy: PAZP264CA0208.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:237::21) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c01a3854-2030-4cf8-f90c-08d9a9a80dc6
X-MS-TrafficTypeDiagnostic: DM6PR03MB4219:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4219955A51242AA560EA8B6E8F9A9@DM6PR03MB4219.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 6W5eZcBaNgMq7sXFrtXdj6Emq78RKumQFCzgzMw+DSU9GxiIdC2DG5ckjY74fGnO9N7RW+hXf8RGlR/uij+gyqzR665s5CiNqnu83Io//ZmEryB3qEYwBS971C0lzbcUBrWI6UZG3ZjFqO97Cza57OjcPDllDfuVXU4TAyIqRfEzh1Kdxe1j3Q3y7aK6U7fCiVJblm1cT2otgoDE6n8QPszeAbohefTwPfU+lmpTGhTFvadLxzpujEc6snHopjLOPStqWja4QOdcewUFgapdfvWPSgDmPuSAXIWRFAnUEXCt4fkcEgjwC+kxhnQdY53/lP/hhm3MDBQ8w2DY5f+xFQNZvIIOly+TVgMGqqhZ6niRTXmIzdL35rrszUPbr2l02UC8DePnPq96QVOyPZCRy3KkI6krVttWJA0o2G8Hsl76+p3tETroUM+uJN5J6THE0KFuqMqcHkZ2wdTBFxZCNNtntt/s+OVDQNiLEZRGd6RmnNoxGgV7HmiRdNqzKWWHRcG4VMlCZ/ZGyES4Jx3+GHvBWwsGFvqjBMeXp7zsSqFrJ+0t9GTpi09SdqB2Bja/ODD0QUtQkz7dSU4NEtZYWKBMIEjwCqtXNVAhTt8jlQYqrQUQW+WuQJJ4jHRIFfqh6Y+pVJTqMrI+XrCG80TjEA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(5660300002)(6666004)(85182001)(53546011)(4326008)(9686003)(2906002)(316002)(6496006)(54906003)(38100700002)(66946007)(33716001)(66476007)(86362001)(3480700007)(66556008)(82960400001)(83380400001)(508600001)(6916009)(26005)(8936002)(956004)(186003)(8676002)(6486002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MEgrWU1USStnM3BiRVRZTUFReDJ5MWhpZWtxa3FRb3RsV3JoRFhLcTlsWGVz?=
 =?utf-8?B?anNSaldaVG5hcGx0SnVTci8zenZrUzZFYXJ6eWJaV3pHREFWb3Erd01FaTZE?=
 =?utf-8?B?aE1MZ0d4MmI1V1JMUnF4d2JkamVZOU04eTVGdVFRM3R5MDNubVFUVVBuWmRE?=
 =?utf-8?B?Si90STFDc1hycjIvYXlUWTRmSncrcUxDMk9KcHFLZ1pLUlBldjhmSzV4aEVk?=
 =?utf-8?B?NHdWY2xkbzEyYW9oa3RGaCs1aTlGLzgzeXErRGNKZDFiUE5VMHNqbFhOT2Mx?=
 =?utf-8?B?RmRROUx3UURUdGY2OHAzUDhXNDU3cnJjNGx0dktRMXRBYjY2b3JEVHJMVkJu?=
 =?utf-8?B?SWdzRzFJUktmL3NXcGtobkI0SStlMnRPUDI4a1hnVTRMbjRIV3NpR01XcXhw?=
 =?utf-8?B?bjRsekV4Y3cvUU54amEvOUJ0ei9ZdEY0ejljaSszZnJNczcrVFRjdlVrckxx?=
 =?utf-8?B?RVVXaVUzUStKV3lZKy9iMXhyaldXUDRaajZDcFFEbFVnY3VtN2hCQnlpQWdK?=
 =?utf-8?B?RTFRWmp2L1ZwQ2V4aExlbGhtV1RYZW1naVU1T3dsQW8wQVZSU1dXTm1ha3lx?=
 =?utf-8?B?STV5aTA5VFpnSEJOTnhzRG13cHl2dkt4NnFZNFdHMFJzM1JUblQ1SXhlL0pN?=
 =?utf-8?B?ZmtObFVhR0FhdEkrL0hEQW90MmpqcDRxOUNUdHVtNFNrS1AzaVppMXFUcGNF?=
 =?utf-8?B?VUlDdnlkTUYyTjFERUFrOVpYRjA1TW1YV0lLMXJIMENHa0VWVDU4YW8vbVJO?=
 =?utf-8?B?NWJNRElrdFVYdEVlRU4zR2N4cUZkV00raDRXMkZzdlBxSXQxZTNybHNTdSt3?=
 =?utf-8?B?MzRIQXZLb3ZZekxsYUdlMjd4cU5QNWhJdWRlZHJPYURLKzBPV1NSREhsNUZi?=
 =?utf-8?B?QTRsNU1ZRzZIT0swQ3lHSHdvTnBlaGk3UkMwOHNreGxmQlFPeEFKaHFLTVlD?=
 =?utf-8?B?N0liNXhoQWpXem1Kc1NVZWM1TEhCOXQ3NVo3UEpqeXdjTjI5RVFDZXlPclZy?=
 =?utf-8?B?bjZJS1NaaFBUN1R3di9zK2FtVU5XWXNkN3hMSUpSRnFrMU5jOWpxWmxjYmMz?=
 =?utf-8?B?MHlIcW1iYyt1UDVRdVRmVzYzOVhLaGM3cklxYTlXVnBUSFBKY2R2WDZlNXlv?=
 =?utf-8?B?aVVmVE94TzFab1JuMUVkTGZORjlYZzhEWEhJa1EvNW5Jb2hLMDUrWjN1WEVZ?=
 =?utf-8?B?dWJaY2puemhjdDB1RnR2eGI5blBUTFQ0ZHlpcFJsTWxhcWdvMENLY1hFWTBT?=
 =?utf-8?B?Z0N3a3BOU0txYjJiOW5tQXM5SWZVb3BnWDB6YkxuYVFwM3NRR25PMElidGU4?=
 =?utf-8?B?Rm9XbllneWpJNzFzbjQwbXZXSUxRTTlscFBWVDdJTHhwb2hBNFgzU25xK3dJ?=
 =?utf-8?B?NnB3eHJ5SXY4RTdZK0YzU0I4cFJQTWxGN1pBdGU0bXhiT3FsZWRZMXpmTVhH?=
 =?utf-8?B?TnArOGJrT3Y2QWsrdVBYN0dHYkVYQWRiMHptWm9rYVpOVHpzUHRyS0dlSVRt?=
 =?utf-8?B?ZThqSmVvcW1JK3dzVGw3TXVpU3RocTlFYk5BOXBzY0xyWTk5T1ExekdyOUdU?=
 =?utf-8?B?ZEc4THBiclBVT1BIbUFzOHlrOEh1eVpFUzdEL3p2eXFhYzRiM3Y5VFhKcGpL?=
 =?utf-8?B?akxpVjRCeFhhOG8zYjdXZ1hXYUJGVkIzZWZ1SE1oWTIyaEk0ZlUyZ21TWGVS?=
 =?utf-8?B?SVJIdTFmMzZIbEk5MVN0M2tkOWZMTEpvK3RFYW03cDlIU0h0ZFI1R054enN3?=
 =?utf-8?B?Zm5pV1J0aEhnVFVhTi8vTnd1Wkt4cjNBbStMazVQbzVLTDIvKzF5Mk90eFFa?=
 =?utf-8?B?Rm9TbkpxbVZ6WG8yakpVQ3VCM2FrbXJ3ZmpzRHFBVXZrTDlwckhLN3h5NEhB?=
 =?utf-8?B?c0REUGUyZ04xR2NFT0hBU2ZBNjJWYllCSFgxZHd2UU5SSGUxN3ZweE5TU0ln?=
 =?utf-8?B?eG5ZbEo4ZUxGdmhXcXlXdU9KUnNuMGh2MW9PUi9JbG9qNWZ4R2xXYWRCZm1Y?=
 =?utf-8?B?VUhBc0tLdWRyMEtzQ2R3RVREQ1RNb0RrS3ExaDRkNFNqVE8xelM2VXo5Qmx5?=
 =?utf-8?B?QkFPQkhhVjIyZnd4Vkh5NWEyUm5EdkliWUlFUjl1QmRrQXRxUXNKeTZleUxB?=
 =?utf-8?B?R3l2cHVlcll0VnZOY0dFY0x4QzlqRjh5aytiRVA0SnU2Mk1BSjVxK015WXdG?=
 =?utf-8?Q?GqcqD8gv81icYV9tzPPzPVY=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: c01a3854-2030-4cf8-f90c-08d9a9a80dc6
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 08:55:50.2589
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rCWpVmLmquaKDO1f6p/7FGKB8wGOA9GZrVQsTuq+7/IyImurqyVX1Kq8tRryQXSCETvbVUd5EsmxS0h6UxIFcA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4219
X-OriginatorOrg: citrix.com

On Wed, Nov 17, 2021 at 09:39:17AM +0100, Jan Beulich wrote:
> On 13.09.2021 11:02, Jan Beulich wrote:
> > libxl__domain_config_setdefault() checks whether PoD is going to be
> > enabled and fails domain creation if at the same time devices would get
> > assigned. Nevertheless setting up of IOMMU page tables is allowed.

I'm unsure whether allowing enabling the IOMMU with PoD is the right
thing to do, at least for our toolstack.

> > However, when later assigning a device to a domain which has IOMMU page
> > tables, libxl__device_pci_add() does not appear to be concerned of PoD:
> > - xc_test_assign_device() / XEN_DOMCTL_test_assign_device only check the
> >   device for being available to assign,
> > - libxl__device_pci_setdefault() is only concerned about the RDM policy,
> > - other functions called look to not be related to such checking at all.
> 
> I've now verified this to be the case. In fact creating the guest and
> assigning it a device while the guest still sits in the boot loader
> allowed the (oldish) Linux guest I've been using to recognize the device
> (and hence load its driver) even without any hotplug driver. Obviously
> while still in the boot loader ...
> 
> > IMO assignment should fail if pod.count != pod.entry_count,
> 
> ... this holds, and hence assignment should have failed.
> 
> IOW this approach currently is a simple "workaround" to avoid the "PCI
> device assignment for HVM guest failed due to PoD enabled" error upon
> domain creation.
> 
> I'll see if I can find a reasonable place to add the missing check; I'm
> less certain about ...
> 
> > and all PoD
> > entries should be resolved otherwise (whether explicitly by the
> > hypervisor or through some suitable existing hypercalls - didn't check
> > yet whether there are any reasonable candidates - by the tool stack is
> > secondary).
> 
> ... the approach to take here.

I think forcing all entries to be resolved would be unexpected when
assigning a device.

I would rather print a message saying that either the guest must
balloon down to the requested amount of memory, or that all entries
should be resolved (ie: using mem-set to match the mem-max value).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 09:06:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 09:06:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226652.391716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnGtV-0003vm-Qx; Wed, 17 Nov 2021 09:06:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226652.391716; Wed, 17 Nov 2021 09:06:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnGtV-0003vf-NY; Wed, 17 Nov 2021 09:06:17 +0000
Received: by outflank-mailman (input) for mailman id 226652;
 Wed, 17 Nov 2021 09:06:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnGtT-0003vV-VI; Wed, 17 Nov 2021 09:06:15 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnGtT-0003CO-Lc; Wed, 17 Nov 2021 09:06:15 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnGtT-0002lH-Cs; Wed, 17 Nov 2021 09:06:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnGtT-0006IN-CI; Wed, 17 Nov 2021 09:06:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=/4SrNA563K2GABF8lxSme80c1hoAa83B4+vvqMaUSM0=; b=JCarA/MBqEgNixOm5+NsYZLbfa
	WqjMHbwLtRfq6zZs5+mhnF+pEos/Gmj5RNJvNMUnXGFfhgG7E4O94IZXa1eQwMSBqQEcy9gbqyYOO
	Q2uN6KAL3fwPxcn0SUKJbxDavAPp/imERV/rGSfRNMz1K0MJe9MBslxIyaO04ORYU9zQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166157-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166157: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8ab774587903771821b59471cc723bba6d893942
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Nov 2021 09:06:15 +0000

flight 166157 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166157/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166154

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                8ab774587903771821b59471cc723bba6d893942
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   15 days
Failing since        165992  2021-11-02 05:40:21 Z   15 days   24 attempts
Testing same since   166149  2021-11-15 06:45:03 Z    2 days    4 attempts

------------------------------------------------------------
2166 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 250693 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 09:54:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 09:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226660.391753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHdx-0000ss-3z; Wed, 17 Nov 2021 09:54:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226660.391753; Wed, 17 Nov 2021 09:54:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHdx-0000sl-0F; Wed, 17 Nov 2021 09:54:17 +0000
Received: by outflank-mailman (input) for mailman id 226660;
 Wed, 17 Nov 2021 09:54:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=74+5=QE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnHdv-0000MY-Sx
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 09:54:16 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51ac2e55-478c-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 10:54:14 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51ac2e55-478c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637142854;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=lGayQy7igq6wHjy+WtROZSFSpXIwFKP2OUqy45QMeAA=;
  b=bAMd71P4/DlYBjCAlAbs5b05HNkaqss7gHA51JV6FAC+wkqwQg4KrXZF
   50dirvtLULSvssIm1d/xMgpOhwQiLUKk4s+x9JSGT4AIVGtGRl/bui8N7
   9sMKIvv4zmL3kUwY+t/CTNaR4CsQoWgzUkrLTFzSYGAj23oZ4AoNXHYz4
   k=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 1kbvPQ8GizthAtNr1XpRsymf1oqoeks2JKwjAyV5KHHdsjzq+rgV+5MhFaM7soTSDVoutjL8Yw
 xSo2jD7St159934DM00cyVi/5VXovUOts7DpKIPdiEOMnVUHiePAlwHkbtNFxIg7uoec99cVDf
 5GHuHcK99KOV3+Be6Gnd6672mjJL80WevHDQqb+8MK/3NUpzpmf1LJNzv01CQWWOtYISLCLT+V
 yrCAp2FMqcAmY3vEXVr5DVK8DVEvhhXdDyqKypNvOZLGBWm2E1RIDbmfimILuU9Sc5U+Hqe099
 2azRx72wUna7ey1wOCzbLSRG
X-SBRS: 5.1
X-MesageID: 58038805
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:C3y7zaOFnA6uqenvrR2Ak8FynXyQoLVcMsEvi/4bfWQNrUom1TVVz
 GcXXDzVb/7bZzSheI91O9y2/BsBscDWzd81Ggto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Es8w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoxWxnsx4w
 Y1dj6etFA0DD7L9geAedwYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/iavYQIjG9t7ixINfPBV
 sQSOTVuVzfBSB9DHmouLJcgnuj90xETdBUH8QnI9MLb+VP7wQh81rGrLdTUf8CRSNtctkGCr
 2nC8iLyBRRyHN2AyxKV/3S0nOjNkCjnHoUIG9WQ+vd0jXWJy2cUCRlQUkG0ydGyg1SyXN93I
 EUO9i0j66M18SSDTNbnWAajiGWZpRNaUN1Ve8U49QWMx6z88wufQG8eQVZpatYrqcs3TjwCz
 UKSkpXiAjkHmL+SUnLb6beVsT6yNCEZBWMFfykJVxQC+dr45oo0i3rnR9JiC7K8j8ezFyv5x
 TuLtwAhi75VhskOv42x8ErbmTuqqt7MRxQs+wTMdmu/60VyY4vNT4ev7F3G6/dcPcCcR1+Is
 3Ues9iT6vgUCpOAnzDLR/8CdJmr+vDDNjTfiFxuGpAJ9jKx9nrldodViBlyK0tkPdwNUSP4a
 0/U/wVK7dlcO2XCRaN5ao2+CsMuzID7CM/oEPvTa7JmaJ97fh6K5yFqaEuZ2UjilUEtlec0P
 pLzWc2sF3cBFaN/zDesAfhb2rsi3CMWymbaRJS9xBOiuZKdaWCUT/EZMVKIRuE/8K6A5g7S9
 r53LNCWwh9SVOn/ZCj/8oMJK10Oa38hCvjesNBaaeeZPkxmGWUtBvXLyLUtU4BihaJYjPjP5
 HKmHERfzTLXnnTCNAiOLGxjabnmQJJjhX89JmkoLFGunX85bu6H9rwfbZotdLwP//cl0PR/C
 fIME+2eBfBIRiXC6i4qZ5D3p4x/dzymnQuLeSGiZVAXb5NmAgDE5NLgVg/u7zUVSDq6s9Mkp
 L+t3R+dRoAMLyx+BcPfc9qzzFe8u3cMleY0VEzNSvFPeUDE4IVsbSvrgZcfJsgWLBzZyziy1
 gCIAAwZr+3Av4809tbSgamO6YyuFoNWG0dcEHnGxb23Lm/H5melx8lNXPvgVS/ZfHP5/uOlf
 +o95/L7NucOkBBVso5/O7FxxKk66p3koLoy5h15FXONf0nzIrxlK3iCm8JIs8Vl3LZZpA/wQ
 UOJ9dlyMK+MfsjiFTY5Pg0+ZP6E0vISsjDT6/oyO0jxoiRw+dKvSUxPOzGchSobK6F6WL7J2
 s945pRQsVbmzEN3bJDW1Ui46lhgMFQga6Q7v5hCELXQl1ch4GBdUIXYCQvptcTnh8p3DmEmJ
 Tqdhaznjrtax1bff3dbKUUhzdaxlrxV5kkUkQZqy0Ch34Oc26RphEE5HSEfF1wNln16P/RP1
 n+H3qGfDYGH5H9WicdKRAhA8CkRVUTCqiQdJ7bk/VA1rnVEtESRfAXR2s7XpSj1Fl6wmBABp
 Nl0L06/D17XkDnZhHdaZKKcg6WLoSZN3gPDgtu7OM+OAoM3ZzHo6of3OzFX80u4XZxt3hyaz
 QWPwAqWQfegXcL3i/dlY7R2KJxKEEzUTIC8aa8JEFw18ZH0J2jphGnmx7GZccJRPf3amXJU+
 OQ1Tv+joy+WjX7UxhhCXPZkC+YtwJYBuYpTEpu2dDVum+bO8VJUXGf4q3GWaJkDGI41z67Q6
 +r5Klq/L4BnrScOxjKW8pAbYjHQjBttTFSU4d1ZOd4hTvormOptbVszwv2zuXCUOxFg5BWao
 EXIYKq+8gCo4dgEc1LEHvoRCgOqB8n0UejUogm/v84XNYHEMNvUthNToV7iZlwEMbwUUtVxt
 LKMrN+ogx+V4OdoCzjUy8ubCq1ExcSuR+4LYMj5G2ZXwHmZU8j27hpdp23hcc5VkMlQ79WMT
 hejbJfibsYcXtpQnSUHayVXHxsHJb7wa6Ps+XG0o/iWU0BP2g3bNtK3s3TuaDgDJCMPPpT/D
 C7yuuqvuY8E/NgdWkdcCqg/UZFiIVLlVa83TPHLtGGVXjuyn1ePmrr+jh58uzvFPWaJTZTh6
 pXfSxmgKBnr4PPUzMtUupBZtwEMCCovmvE5e08Q9oIkiz2+C2Jaf+0RPY9fV8NRmy32kpr5e
 CvMfC0pDiCkBWZIdhD14dLCWAaDB7NRZoeld2Jxp07EOT2rAI6gAad68nYy6nh7TTLv0eW7J
 IxM4Xb3JBWwnslkSOt7CiZXWgu7Kic2Hk41xH0=
IronPort-HdrOrdr: A9a23:lvQEr6Byn6O5dpjlHeg9sceALOsnbusQ8zAXPh9KJiC9I/b1qy
 nxppkmPH/P6Qr4WBkb6LS90c67MA/hHP9OkPQs1NKZMjUO11HYSr2KgbGSoQEIXheOjdK1tp
 0QApSWaueAdGSS5PySiGLTc6dCsam6GeKT9J3jJh9WPH9XgspbnmBE42igYyhLrF4sP+tHKH
 PQ3LsLm9LmEk5nGviTNz0gZazuttfLnJXpbVovAAMm0hCHiXeN5KThGxaV8x8CW3cXqI1Svl
 Ttokjc3OGOovu7whjT2yv66IlXosLozp9mCNaXgsYYBz3wgkKDZZhnWZeFoDcpydvfpGoCoZ
 3pmVMNLs5z43TeciWcpgbs4RDp1HIU53rr2Taj8DPeiP28YAh/J9tKhIpffBecwVEnpstA3K
 VC2H/cn4ZLDDvb9R6Np+TgZlVPrA6ZsHAimekcgzh0So0FcoJcqoQZ4Qd8DIoAJiTn84oqed
 MeTf003MwmM29yUkqp+1WGmLeXLzAO91a9MwY/U/WuontrdCsT9Tpe+CQd9k1wva7VBaM0od
 gsCZ4Y5o2mePVmG56VNN1xMvdfNVa9NC4kSFjiWWgPNJt3cE4l+KSHqonc2omRCes1Jd0J6c
 38bG8=
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="58038805"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OZnVWSLcHb6KKihH+zac6zIPXBboLpWwuT2xal61+G+DGZOQLl4xDGIP5YZhnv2tjuWy422tzz8ILuXyhvX5QTqWxdd1jGOnOe9tf6GNyLGnYefQsY4YwRzuydXpBXk3nsYlOg1fIam2sDq6+T+uUBtSVmhVMiNik+lIabTDHv0uVbI8mSbAKiQcUPvqHDrqcx/Jwq5mLUqRlFIclzMhcIoK4NKW7g0tAiBHl7Uma7pcvCdT7+vBWb+9rVNGUYWqt8c50OecPnwpH7bGMEVkjqCZs0UBbi0WEamoNVZolYpNAfQnoD37FcaR7re+Zr/s92BrkXjQ6PwaEtfsgcsCXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y06GO6sYHtogNBy+7y427BbKjOFuMhPCPbyl0XdHqNY=;
 b=PAZhHuX46XaUPjthir4T5yRyAYNs0mTtUOu032Pf9KF2nDC9Nof47PUfuN7lf2TRZLNlYeaf6FQujPUI4BfbBJeUee/Li7w+la8SxbmG+WtQQJ0n+gdtRYwBpkiLShFMX2S8HFxISbVCk223p9WpAAtzUr5tCKFpawgMPLngm7KasmZioTkOYoZQomRCNhU8wj7SkM/GIAxzxA2aXcJ5+l7T856QD9sOASR9TWk2g36SbXikeVj7Eln4s+hE2qY9btKt3qp1lBVQ5COSDzOTksB+3y8PqpoGcN9albVZnfAWyv8bBCLptkOOqDTaq8Fud6+ZCHBbQN4h6TdVe9UeCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y06GO6sYHtogNBy+7y427BbKjOFuMhPCPbyl0XdHqNY=;
 b=I9ASMcJuZdHL7wrpDT1o3di7MA3qGmaiyfq/A/vTSNAtAkwoWgOEjbX7i4H6MMoymC6Eq+GB49UvsrcMLT4ECpZUqumbM2UD3UFvWEZw8Fn8Pi7bc1nbIitbB5GAVG4ZGTap2VuD965Qlb1dULRE/OyScvFdy+yqnI7Dq0ElwBI=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Christian
 Lindig <christian.lindig@citrix.com>, Christopher Clark
	<christopher.w.clark@gmail.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>,
	Dario Faggioli <dfaggioli@suse.com>, David Scott <dave@recoil.org>, Doug
 Goldstein <cardoe@cardoe.com>, Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Julien
 Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, Nick
 Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Quan Xu
	<quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Shriram Rajagopalan <rshriram@cs.ubc.ca>, Stefano Stabellini
	<sstabellini@kernel.org>, Stewart Hildebrand
	<stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei
 Liu <wl@xen.org>, Community Manager <community.manager@xenproject.org>
Subject: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work during the 4.16 release cycle
Date: Wed, 17 Nov 2021 10:53:38 +0100
Message-ID: <20211117095338.14947-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211117095338.14947-1-roger.pau@citrix.com>
References: <20211117095338.14947-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAZP264CA0169.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:236::21) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c6abea90-d099-4c1b-7bd4-08d9a9b03355
X-MS-TrafficTypeDiagnostic: DM6PR03MB3577:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB35772DB7E7472E49018C5B208F9A9@DM6PR03MB3577.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: woM1/pSHnGTfn6qV6a3ABKYB8IO5/kO0bblHXhmxfJtjwbA/emy9/rCtWPYw2D0Qz0WyaIob2XX/f2QlNhaF4tLITXuw/c43GfjLJOK00GR29BG9Q2luY8XHIf6x3i3/FQQS4bt9ko4rizMxFl4e8QKlrTzqpVUQuPVZo9ZP65zcyZ7jGob4mCMKToUy8RIFHuIWgrVFwcBE1lWwtc8Xd+5EK83GTg2e1NY9ijhYj083l1jjdmzIrPMXxgBun3SFkQ769209XekcmA9aenmsCHMN9giJEWwrsnpie6fjO0vaeMxgdmz+cwVDkn2RxTZSCUkhF6HdButO/koxhCdWP3vn0sjI75VvK2GFg2C7uroFYK+AU6vZIpn0vFq3dRX4ro4EXeU2o7PuRV5wGeL/1oXPCkvp4mMwfd2mnbSfpDmMH9w5T+TMrYAluZORKWxRFXGvnuTTjG3H/vAsfbAyAJQA4UbH6fRp/kJR4EzjAeJs9NwrS4LR/Efs86HP5okST4EXezz+TkNTY/kdUL2XK4AvT+Ecjw/xDEZjexpgMmCiHmgTuZSvufPWdmt2Y5GjI2bk62PkWk6vMduk7agDsZmA2dL0qBr1cr/sIKbghvdqMzzae59nBzFgLCFtvZ+ObzwgW+FeKYXYtdDRbe/1tDompZk32qLyJSSH8Flt7+yVK3WqsvJo/Idp5ESBRrfodyRcBkMf+3NxCOfbRjdoOMnfNdpjqgSk7CbsIgbyXXenKn6uFzGthzLG/L/txiMZuveRdehOV6b6+mPD+P0Y5/W3/YBWr8sczpalEaMVxJOuxeN8VDShAGon7Qf1E9M5
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(1076003)(66556008)(38100700002)(316002)(6916009)(186003)(86362001)(82960400001)(8676002)(4326008)(5660300002)(54906003)(2906002)(26005)(6666004)(7406005)(83380400001)(7416002)(2616005)(508600001)(6486002)(36756003)(66946007)(6496006)(956004)(66476007)(8936002)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MFFSTGRPdmhDWG1QMExrc2ZrR3FOaVdIdHdsMDQrQ2p2QmVwWjE1SDJZOFdM?=
 =?utf-8?B?TUVaazJNVnhCMDNpVEE5OFZRUGdDTG10SDk4OG5McnozeGJsNEhiVDYrTC9T?=
 =?utf-8?B?QUlCS3VLZjJKeEwvb3F0NUZsR3M4OGNSWk4wWTRaajF1Z0k2MGNxT0N2TTZ0?=
 =?utf-8?B?QUFnL0V4Y2xDZTU3TFNjc0tYZkFrMmFvdVNiYjBGaGtyMlRtNHIyY1pmY0c1?=
 =?utf-8?B?ZDdjS0hFMEtDT2lIb29IODhVWGpma2s2UDZFb1RTb21YWmQ1Z2VpVFcxdm1D?=
 =?utf-8?B?cWxBQnBZVFNYOE9uWDJVdDhneENVVmZDdktjNEt6amM2d2V1WDFDQ1k1V0pY?=
 =?utf-8?B?WXZFTWtYNG1sTFdJNVc0R1NRTElCNWtQQ0FjLzRYRG9HSmtOckZjbU5RdG9U?=
 =?utf-8?B?WmVYTE0wN2RQSUtCbERBeWlqdzNpczFqV3dxVkgreFgrNyt0aGhQODhQUUNZ?=
 =?utf-8?B?Z01UamVuVzYrZWFSbWpNR09Udm94SnNPd00rYmczdUlXQzhBSGgyNmJnb1JV?=
 =?utf-8?B?MlE4U3loamRwL0VBOE1WNFdQYWxQRWk0MVlYVm52OWozSHdldzRaaUhsSVFE?=
 =?utf-8?B?MjlWS1VsL1VjTldxdmpnZzhuNXVzNGxRTVJRRU94MFRMTUo4cUsvQmdVK3I1?=
 =?utf-8?B?YWs2MVRuVm1Vd000RGtZVEJJTEkyaE1uNlJYakpQYUVxRThRenRoejdtMVNl?=
 =?utf-8?B?SU5EU3BrV20xWFVmVVExaDJnejFueThESXFvMmNTekJYZ2xXbFpQa21Yb25J?=
 =?utf-8?B?Y1pDemt3UElNWHpQK0VKQ3U4RzdhTURJZDVNemFYazlkd2s1aHoxRWRuNGpO?=
 =?utf-8?B?QUZSRmlNODFQRzFGMk15Z21kcERoRGprK3gyNDRaZFFuUk9TSmRTMFRVUm1r?=
 =?utf-8?B?bjV6RFZPWDhoYmx0UEJJTS9LeWoydWxFemgrQWdyYkZVVWVhN2hFVXl0dHFh?=
 =?utf-8?B?TW9kcndOTm1lSjQyT1E2R1RzUythMllROStKM2JCUzRCTksvdWx0cEx0Rjlh?=
 =?utf-8?B?Nzk3MXc5T2ZqaERVVmkvb3JQazFhOHFuRUd3NDhrK21OUHh1RmRSaU5YNjBV?=
 =?utf-8?B?S2c1TW1ya3VVaTkyZ05qeS9VbWJNUEhEMldaQ2o3VXdqdUR2QlRBdXYvK3dz?=
 =?utf-8?B?cW5BVnpMSUVkWURod25lMlkxMXR3Y2xHL1VxSDdTZzNpOEcrWkw5bTh1cTQ2?=
 =?utf-8?B?NVg2TTNyZ2h2RGdyMkZEdGxQMXhOZGxpcWNQVmFmMm5mTGxFL2FDN2ZoWEcx?=
 =?utf-8?B?MjkyOEhVdFNoTU1QRGI1TVZzSDI1a09yaHdkMXV1OTU4elpNRGJCcnVLYzBN?=
 =?utf-8?B?MmdVTDNZbWdoVFBHQWJJNlNCMVFvV2tRUGNGUDdrTU1qVmNhQ21nT3c4S0wy?=
 =?utf-8?B?YVVQL2NWWWl1RXdJWEZ4KzFwQmgyR251RGh4S3AwSi90VWpHRW0ybkFLaWRU?=
 =?utf-8?B?SlVWQUJsVEIwczNBQjRtNnVDd0pNL1RWelVFQ0hkZ1ZSSzVaRG53MWhob3o3?=
 =?utf-8?B?MXZsdFhRZTVxd3BETTRQUUlYbDNqYXdwOW5YV28wQU5OalIweERXTlZ3T2lM?=
 =?utf-8?B?bXV0aXFlbnh5Qm9PSStkMFplaTl5UXRTYlJKZ0E4bmN2MzFkVkt1QVptYW1L?=
 =?utf-8?B?VWZScW03VW9LTnlza3I2OGJPdFNrN2FrMFcweGhXdWNqWXc1RkloNmJOMmJK?=
 =?utf-8?B?blNBZEVqc3BuS3pLbHBsSjVndkk3aGtOUUV6cFBMQ1NTaGlWaG95bENiTDF4?=
 =?utf-8?B?cXMwWGtDQkRCT3VncmZlbk1kR3R0bWxZRUhlcHZqckwvVU5BTUI0cWFFWXl6?=
 =?utf-8?B?VkZXZlZRQ1lDcmNxclFEQVR5b0hiQzhLT2ZmdTBmWi9qV1lyaUpqaUk5MTJP?=
 =?utf-8?B?TUFpY20xaEo1QUxmRkJBVml1U1R2UDl6cnJOK2xuLy92ZlFRZlkwMFEyWnE0?=
 =?utf-8?B?MUFvbWRCSUZ5cXZGTHozNWFJaXEyNmZyVG9TWjNqRWdpQ0NybnVkcFd0SE04?=
 =?utf-8?B?dkgwc1o5SjFIM1FqODNEbVhHeDFyMVdsYUFkanloc2RxV3Z6ZUJ6akhrM3VD?=
 =?utf-8?B?NEE0bmFaRVR3K2xIT0Nycm12dXZneTlTK3hBUmdmaTNUYzI3NjErbXdCdEd4?=
 =?utf-8?B?SGt6R09jaGZaWnVKY00xd3U3blBwV2JIUUpoVHFpV2ZRK0M4LzgrMml2MkJx?=
 =?utf-8?Q?ptLJkQRXMaCm7472cdCPlg0=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: c6abea90-d099-4c1b-7bd4-08d9a9b03355
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 09:54:09.1697
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: neOzJjRmPS5JzWEOli2t+vgUOAF6CdFh1v4ZLd+yANSqlL0cLcO5hNqA4trGtxnTVUGryCg9Dg93z4+S9ERbRw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3577
X-OriginatorOrg: citrix.com

Document some of the relevant changes during the 4.16 release cycle,
likely more entries are missing.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 CHANGELOG.md | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad1a8c2bc2..8b0bdd9cf0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
  - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
    no longer be built per default. In order to be able to use those, configure needs to
    be called with "--enable-qemu-traditional" as parameter.
+ - Fixes for credit2 scheduler stability in corner case conditions.
+ - Ongoing improvements in the hypervisor build system.
+ - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
+ - 32bit PV guests only supported in shim mode.
+ - Improved PVH dom0 debug key handling.
+ - Fix booting on some Intel systems without a PIT (i8254).
+
+### Added
+ - 32bit Arm builds to the automated tests.
+ - New x86 pagetable APIs.
+ - Arm vPMU support.
 
 ## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2021-04-08
 
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 09:54:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 09:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226658.391730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHdv-0000N6-DQ; Wed, 17 Nov 2021 09:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226658.391730; Wed, 17 Nov 2021 09:54:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHdv-0000Mz-AN; Wed, 17 Nov 2021 09:54:15 +0000
Received: by outflank-mailman (input) for mailman id 226658;
 Wed, 17 Nov 2021 09:54:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=74+5=QE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnHdt-0000MY-4d
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 09:54:13 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f4c7989-478c-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 10:54:11 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f4c7989-478c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637142851;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=E8qfDMyH2LHw6JSVkZwHv1VbwFYbZKc+yP/NqhA6Cw0=;
  b=Z3cLFsZtm/DwfLNM6MDg317XCtG1KKyrpOJ+t/uTZ00ei9Ge7QWgkLLq
   zad7dhj69AAq8uVJucJUWR14CKSWh4kpW1n89/mIqTBQIRFi6D7YggcsA
   oi0zRS5KltxIdCSOTkVKfiBWRzxOyjiQ0hV8sjm5JNPB3+yLf60RemXDR
   M=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: Jtvs3r0oVzDWQtxAuCV4xB3FETqFH6ke9R2u/fflWUK64WQhsjAGcv5i/JcNP1RnYQWCDCp2/Q
 3Rtao5F8D5zdyZ5QeVwr/xHmStHhHW2WZPn/0KSadUV6PyFwlr4t2cP5ZiOBXK0oK/+B6P8jJh
 5HVkYYPcpICZp9yI3uGw91XphJat1nY1I2dNlSIJQ62oQZePaTQ21axUoHHvjX8ybs9I37nqVm
 fdMTNMc1byfI/mtF+ILcHC+sIngT8Gj62w/5dvya+1P50u8ERL8D0Nma2k2IehQWAFa+f3Uf+M
 HjGHgn0M2ZefrZS30McXzqbu
X-SBRS: 5.1
X-MesageID: 59994919
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:YW4/467nV6opyWNv3rN01gxRtB3DchMFZxGqfqrLsTDasY5as4F+v
 jdKWWqDbqqDYGSnKt92PNi19UsCu5CEndRnTgBv/Hg0Hi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg29Ew27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z5
 +tXrY62bS0QA4b8oesdfDRhNwYmIvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALNs7kMZlZonh95TrYEewnUdbIRKCiCdpwgWZh15wfRKe2i
 8wxbhdOY0TxcR51H3AMMJAVgba1oXzuWmgNwL6SjfVuuDWCpOBr65D0LdPTPMyXHe1am0+Zo
 iTN+GGRKgkTKdi32TeDtHW2iYfnhir+RY8WUqG49/RjnVmP7mEVE1gSRFy95/6jhSaWQdtfN
 khS4Ssooqga/VauCNL6WnWQpXeeuxcGVtl4Eusk6RqMwK7Z/waYAGcfSjdLLtchsaceRjssz
 FaF2czoAT9Ht6ecQnaQsLyTqFuaIy8OJ3UFYiwCZQIE5dfku4w4yBnIS75LFaOzgc3oMTrx2
 HaXtCU4gfMegdNj/7u8+VfLkje9vK/DRwQ+5hjUdm+95wY/b4mgD6S06F3z/ftGaoGDQTGpt
 38BntWY7fwfS5SEkiWCTf8lDLyv/+yCMjDXnRhoBZZJ3yup026ue8ZX+j4WDFxyLs8OdDvtY
 UnSkQBc/pleOD2td6AfS5iqC94r16HlPd/+EO3eZZxFa/BZaAaC9TpGeU2U0mbigUUo16o4P
 P+zatqhEn8AFeJnzT66Su0H2Lkn7iw532XeX4/81Re8l7GZYRa9SrobMV3IcuEw6ouFphnY9
 5BUMM7i4xlQXODxeCD/7Z8YLVdMK2MyQ5/xtaR/fe6ZIxF6H3khBuWX3vUqf4V/nIxak+7J+
 je2XUow4Fb2m3DvMwiBbXFnLrT1Uv5XoXwyMiMtOlKp82M+eovp56AaH7M+ebg86OVi17h6V
 fADcMSbKutDQXLM/DF1RYnwqslueQqmgSqKPjG5e34vcph4XQvL99T4OAz1+0EmBC29v9ozu
 L2k2wbSR7IMQg1jCIDdb/fH51m8p2QHkeR+GU7BOMBOeV7E+ZJvbSf2i5cfIc4WLg7Y7iCHz
 AvQChAdzcHPpJQ1tsbJhLyJr4qgH8NyGVBcEnPE6qy1Lm/R+W/L6Y1dVqCOdDPUVmLx8Y2jY
 /lYy7f3N/hvtFRXt4txFZ57wKR44MHgz5dXygliFTPWYVWuFqhtPHCu2tNGvalAgLRevGOeU
 UuV9t5XEb6AIs/iHRgaIw9NRuaJ2OwQmzLSxe8oO0i87yhylJKGTkd6LxSKkDZaLrZ+LMUi2
 +hJhSINw1Xh0FxwaI/A130KsTTXRpAdb0k5nr4kGpf5jC4B82xpUaXTCgDb2bWoM8oZZyHGP
 QSorKbFgr1dwG/LfHwyCWXB0IJhuHgehPxZ5ARcfgrUw7IpktdyhUQMqmpvEmy52z0ei7orU
 lWHIXGZMklnE91AoMFYF16hFAhabPFy0hygkgBZ/IE1oqTBa4AsEIHfEbrdlKz62zgFFtS+w
 F1+4Dy9OdoNVJuvthbeoWY/95TeoSVZr2UuYvyPEcWfBIUdajH4mKKobmdgg0K5Wpxp1BKb+
 rUwrbsYhUjH2cg4+fZT526yj+p4dfx5DDYaHaEJEF0hQwkwhw1eKRDRchvsK6uh1tTB8FOiC
 twGGy68f0/W6cp6lRhCXfRkC+YtxJYBvYNeEpu2dT9um+bO9VJB7cOPnhUScUd2Gr2CZ+5mc
 diPH99De0TN7UZpd5jl8JMZZzHmOIZcP2URHomdqY00Kn7Ki8k1GWka2bqopXSFdgxh+hOfp
 gTYYKHKiedlzOxRc0HES82v3i24doH+Uvqm6ge2v4gcZN/DK56W5QgUtkPmL0JdOr5IA4Z7k
 rGEsdjW2kLZvelpDzCFysfZT6QZt9+vWOd3M97sKCUIlyW1R8KxsQAI/Hq1KMIVnYoFtNWnX
 QaxdOC5acURB4VG3HRQZiUHS0QdBq37Y73OvyS4q/jQWBER3RaedIGs9GPzbHEdfSgNYsWsB
 gjxsveox9ZZsIUTW0NUW6A4W8d1eQaxV7Enetv9sSijIlOp2l7S6KH/kRcA6C3QDiXWGsjN/
 p+YFAP1cw6/uf+UwYgB4ZBypBAeEF10nfI0IhAG49dzhj23UDwGIOAaPclUA51YiHWvhpTxZ
 TWLZ2o+EyTtGz9DdEykstjkWw6eAM0IO8v4eWN1rx/FNX/uCdPSGqZl+wdh/2xyK2nqw+yQI
 N0D/mH9Y0qqyZZzSOdPvvG2jI+LHB8BKq7kLawlr/HPPg==
IronPort-HdrOrdr: A9a23:0MuxB6vWEYNyQXj6kMWqhLhD7skCkYMji2hC6mlwRA09TyXGra
 6TdaUguiMc1gx8ZJhBo7C90KnpewK6yXcT2/htAV7CZnidhILMFuBfBOTZskTd8kHFh4tgPM
 RbAtZD4b/LfCBHZK/BiWHSebtQo6jkgdGVbI/lvghQpGpRGsddBmlCe2Km+hocfng7OXN1Lu
 vX2iIBzADQDEg/X4CePD0oTuLDr9rEmNbPZgMHPQcu7E2rgSmz4LD3PhCE1lNGOgk/jYsKwC
 zgqUjU96+ju/a0xlv10HLS1Y1fnJ/ExsFYDMKBp8AJInHHixquZq5mR7qe1QpF7d2H2RIPqp
 3hsh0gN8N85zf4eXy0mwLk303a3DMn+xbZuBalqEqmhfa8aCMxCsJHi44cWADe8VAcsNZ117
 8O936FtrJMZCmw3RjV1pztbVVHh0C0qX0tnao4lHpES7YTb7dXsMg24F5VKpEdByj3gbpXXt
 WGNPusp8q+TGnqLUww5gJUsZmRtzUIb1i7q3E5y4yoO2M8pgE886MarPZv6EvouqhNDKWs3N
 60QZiAoos+OfP+XZgNdNvpfvHHeFAlOSi8S156AW6XXJ3vaEi94KIe3t0OlZWXkdozvd0PpK
 g=
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="59994919"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kr0xNzLWXFPzhyviXSPjH6rb+LYk5n0tV1LAZ88jc4bnWSi/Y7yISC/YypKH6RouSdCJPqPd3uKYmC+z+7Mo8WaIqBeiCwDOo3w4KyoxHcTiYH3QuB5JFWib5lONxHeEZdkY+RSuvQ0vNwZpxVtGUALPg9mScNaKJv+Zg/4DUQQWAl1JLjflPdpnodRQKgmM3sGZdObvPGgpl+YSfoje1g+xmolAHYHcJ/aV8OqJxwc3I/Av5ZmpKs3Ot4n7KGCyvtE7f0T5ny2qTKK0BF3N6f9Z3Q5OyRV2Nt8WypkpXuiNyvFTc8iObU8SVcHtO07uzpfDjK+xUABrLFAyFSWRZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=u/sPWHWRjMxcHzCGPowon7I8361W6VEG40c0XkVvB3U=;
 b=RTs48lG3BweLr02fvvL5J3kKEHLB9xUJZDxi8M+k3IBj/hBvx9t7iSHSoJnEMCF31gk8js/Be/enI3XvwSsHAstk6M52GUBg7mJM0865HMxMhWQGf/4Bhud58yVk6FlAd0ILkUuZ0LJiLqopPEMSRQC3evINrxjk3MtK+ItiobrVNDiJH5YJF3LOyeZd9aV8zdGLmyAIwUI03FhbXlGiEfxnKkHPTxZGiJaFtp7hTRCcJXhQLo9S4wO2LYMLga+BOTNsUFVwiaAkfYCbTLY5ypDTLwB+EtwfspZCptQr5kHJMPWHSIn+z0Vj/h82hQWgvlH0A0Z12tuKmzqpXQhNpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u/sPWHWRjMxcHzCGPowon7I8361W6VEG40c0XkVvB3U=;
 b=gxc724qNk5acRJq4mHHQQXYKzahQxA3gQlbPDAM6HKW0OJDxBMwx47eEq4hpn07D6NeP/PJR8L2TyBwKOJbIII8D1fq6RjVlGrx/DtBetVutjl1wlAOXg9g8JG+g0hljEAPUfYPdEOjjB3pyHs2PmoUHIB4vWaMw1AQute6q4Bg=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Bob Eshleman <bobbyeshleman@gmail.com>,
	"Christian Lindig" <christian.lindig@citrix.com>, Christopher Clark
	<christopher.w.clark@gmail.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>,
	Dario Faggioli <dfaggioli@suse.com>, David Scott <dave@recoil.org>, "Doug
 Goldstein" <cardoe@cardoe.com>, Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, "Julien
 Grall" <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, "Nick
 Rosbrook" <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Quan Xu
	<quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Shriram Rajagopalan <rshriram@cs.ubc.ca>, Stefano Stabellini
	<sstabellini@kernel.org>, Stewart Hildebrand
	<stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	"Wei Liu" <wl@xen.org>, Community Manager <community.manager@xenproject.org>
Subject: [PATCH for-4.16 0/2] CHANGELOG: start to populate entries for 4.16
Date: Wed, 17 Nov 2021 10:53:36 +0100
Message-ID: <20211117095338.14947-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAZP264CA0061.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:1fd::14) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 73229111-e790-4833-53d4-08d9a9b02cea
X-MS-TrafficTypeDiagnostic: DM6PR03MB3577:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB35776F3C9862DB4E87ABA30F8F9A9@DM6PR03MB3577.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: lvOK3iMZ8GT8LjheB81gjEV3OLwQ0HKaeL9FlinmaTLalgeJtsUDfezIT8zX9Hm3qxMyYXd9JsG+ZdA4fg5dx1RXE6xptN5L3qkHi767LhjSykdQlk0h9kfWro65fFBuHyA8kv6qXzvzQmiKW8lF3rLvsmwmC/Ko37FCEACkH++Qo6cbDCqMA6P5KmXRx02viC1N4U9cNvRxeIlVX6bdDCj8sXANX0jzj7EPg1kVLrDculy+vaaQ9mnbCijBc76Y8FMjSmEG08gKqMmHiuMMD3aRJruVGL+x/R3r/K0bzlnfRAOWi5X533hNy9/7H7NmHptIG5naEVyrzkdWS107hPZIUKcXVS1szmukQRsZ5KfjDyjrHQKdipwM4o4+DjuJoVD1tykVwAJP0aUk8q2Gqd2Pxlteli8tfkOtqAE8Teim9fhkmkKS+PN0yMCqFLSury0f9EYKmhOWaVBvQmc344FOW+eCLcljVAVeDhf5Z1/shHhCTXLXLaqqUGFndY311UTM7BRhmYZ8qJY7R0I2qNsW/s5NveK5/jN9fBvkoSpuigddRDXyFFbb/5HVRydDSv3g7bMLTfg0u7tpzIGVVpkIUVVVOe6fQLD9Tm/SSI9KLdbPWwhC+7qBVBNA5hZy6XrHFPga068ClOJcm31gEm2h3qP6OxD2Ty5bY7HIOOqJ6zRBrCw9G2n7eaVreJJewGf1cXH1bi1EhOUMCNb9C2aEg/CBhAxYc2QvPyNPPDk=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(1076003)(66556008)(38100700002)(316002)(6916009)(186003)(86362001)(82960400001)(8676002)(4326008)(5660300002)(4744005)(54906003)(2906002)(26005)(6666004)(7406005)(83380400001)(7416002)(2616005)(508600001)(6486002)(36756003)(66946007)(6496006)(956004)(66476007)(8936002)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WnZBWlY1QllnUDVKWkxHOGI1YnV6djJoN0hpNDhsSUhtT3lydDZ1eEdieml5?=
 =?utf-8?B?YzcrcE50S3UzMnloRzYydDFrMmtzZ09DbW5lV3RKbVg5c0RhNC9XeEFCNjR4?=
 =?utf-8?B?aDBEMnJtT1doVTcwTmlWNEw2L1NWejk2VHltNHNOYzRPcDdndlp6VTdQWmVw?=
 =?utf-8?B?a3ArRDhFRCtJcmFFbXFZNExrdHR3Y0VHMTF4Qnk4VnNhRVBXaWlvVjNKVFdq?=
 =?utf-8?B?M0kzeHdITjNReG9NbGNFVnczd1hhaEhxZ0NkY2hONnlodUVvZ2lOUFBOeWFO?=
 =?utf-8?B?Sjh5bUU5TmlGSy9Dck80SXBzQzhyNURvclNnOUtldmJkMWw5Qng3bHFzQnNY?=
 =?utf-8?B?d1dJYUh5WHNROTJkVlM4WkphNTBUMFo2QzJvdWpvYzEwdFY1T0Z6Znp0Tm9x?=
 =?utf-8?B?cjd0TlpTOEtmWDhXZkEydmd5ZlRiRXdRSi9OQ2czMUhWNWUvMlNuK1lBRVlR?=
 =?utf-8?B?bCtzNFJxNlZxeFZBZGZPTHV1RlNuWFE2RVdQdVJLdzV2NlFIK3ZDZ3lSUTha?=
 =?utf-8?B?dEhVdkprUEx4VEhzcFRHOTZGVlN0QSt4ZHYvNFJYZTJVdGRYREVnay9UaVVl?=
 =?utf-8?B?eDByYVRUUHFFVi9QZDdDeXNKUUszMnU1OFJ5NXRhRjdIYzEzbmtUZGlGVlhn?=
 =?utf-8?B?d29SODZQNDZ5c2QxUEZRSlhmRVVTbzNuRW9DY0ZFVzJ6cWlSbndpeVdGdk8z?=
 =?utf-8?B?b0pCY0l2dDhETjhOUFJiVmFoSTVuWUZJY1BzWU1lMHRHeFRTQ2VYMG5ncHdO?=
 =?utf-8?B?d2FLYWozRDhYNnFMQWw0MWRiUXVkNjFmMm0xTnB0cW85cXdHT3I4cWVaYjdH?=
 =?utf-8?B?OFZicW94K2hvcUZFWWF0djhtV2h4djI5djVpdjNsMUZ0OVVGSXN1aWRnOGdy?=
 =?utf-8?B?ZS95ZHJQNVgvWDYzSFIzUVRhOGRlU2src1c1VUlKK0laRmQzakFrYURvMjNB?=
 =?utf-8?B?YkFZNjVOMTVJZW5ES0NiY28xOTh5eHdrQno3QU4vTlkyTzc1ODhDSVNIZVlx?=
 =?utf-8?B?ZVpFMDl2eUh0bTdUSFZPbmpRSUU2NUc1UjdPZlNaRHBmNnh2NlRYejB6MWxs?=
 =?utf-8?B?OGRLNjJOVm9Bd3RTbUZ6dVJjSS9SRThneHY2MTgwSWNSNkh0MXlQbDRDV1FS?=
 =?utf-8?B?RjhGeXFmZXlWbTF6VXg0aU5wemtSaTJwOXBkd09pcmFxVXUzMDRrOHZ6cmpN?=
 =?utf-8?B?WGJIMXVobTVwYmRtR2U1SFJad3pBNVlEMUR3cGFGeW1Qb0U2SUw4S1FPa2pZ?=
 =?utf-8?B?VmV3U2UwcU1zV3MvY21lUUxSalRtZGJKaDUrd2Ribys3SVBDdDhnVVJha3A1?=
 =?utf-8?B?NHQ4OFZWbzRzZ2RVclplbnM5R3pUd3IyTGpoUjJ1Z0NUUzlwQWV1ZHAyaU8w?=
 =?utf-8?B?WnRTNmpHaWUyRXR0djlYdDBwRGQ5UWxiUUFoWUZKL2NnTGdSTk9aRXpDNzR6?=
 =?utf-8?B?alRPWE85dGsrVkZSOC9ET0FMSEo1VHE2UmVUUlZGV0hIZm9zeWl4c09zWmNw?=
 =?utf-8?B?RVpJV08xajgxM2NTS25QSldFMkVicjRWN2tlTVBuSWVFNGNrYlFuMXdHZ1h4?=
 =?utf-8?B?RTIvQUtQTDNDR1JJc3hpVTdvMllMR0crM2hMUXJFdnY0cUI3YVlsYW1jUEJl?=
 =?utf-8?B?bjRvMmFtM2Ezd0JrYWNjTkVHODl6WFk1UXFXaHhiL3FXcGFkY2NRL3V5RE5I?=
 =?utf-8?B?RGJEdFllclRwaUtsMHdqSG5xdjRKbHFDbEdHS2MxaVZoeS9LY2tWdWVjYkVF?=
 =?utf-8?B?QnFxbzB6VGJvM0JiTi9adzJCem1oK3p1WWlqa1lJZEdUYWx6d1k1V2dOdWpy?=
 =?utf-8?B?OUxQUmpvckVram9UdDJRQ0k2UWJPbTV0VDlzVktxdEF6dkljdUdvaVI3NmtW?=
 =?utf-8?B?UUZrUHFIWDgzakVGeHI3TUVjMFNPMzdaOUxSUWExMFFFeFF4bzNCMmJYeHFG?=
 =?utf-8?B?cUtFQXlTMC9kK0lPTUlwc2RjbWtFMVZQWHVMS0lUTGFtdjlNUlpXeVJyUUsz?=
 =?utf-8?B?aHZSSU95enpLNTRrR1ZSUWlyaGdEb3ZlaUZ2Mk1qS3J2b0lZb1VRTmZmdnFN?=
 =?utf-8?B?a1FvMmcwRk4wV0wyb1hWZXNhQ2ZncnJzTXBYdlhPKzZ2THl1Tmo1cjlwMmZt?=
 =?utf-8?B?T1JpSzZiUEx6Y2N5Smd5TWFTbzh1blRsUXdESEEyWGhKTnljRG9GcGpQWTdE?=
 =?utf-8?Q?xjUpXXdDF7bxwYUDx0z6Np0=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 73229111-e790-4833-53d4-08d9a9b02cea
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 09:53:58.4370
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: w0jfpuzMnF9S7blvvFlO23PVlpH468gKw55twVCHLRcwrXueX4L/rEz8fEafbMKXIgkAE/6VAuTcGq9FowLnUg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3577
X-OriginatorOrg: citrix.com

Hello,

The following changes are preparation work for the 4.16 release. This
is my first pass at the log for the release, it's likely missing more
entries.

I'm Ccing all maintainers in this cover letter and also in patch #2 for
further feedback on missing items.

Thanks, Roger.

Roger Pau Monne (2):
  CHANGELOG: set Xen 4.15 release date
  CHANGELOG: add missing entries for work during the 4.16 release cycle

 CHANGELOG.md | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 09:54:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 09:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226659.391735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHdv-0000QX-Nk; Wed, 17 Nov 2021 09:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226659.391735; Wed, 17 Nov 2021 09:54:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHdv-0000Ph-Iy; Wed, 17 Nov 2021 09:54:15 +0000
Received: by outflank-mailman (input) for mailman id 226659;
 Wed, 17 Nov 2021 09:54:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=74+5=QE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnHdt-0000MY-Sa
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 09:54:14 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5143adc2-478c-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 10:54:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5143adc2-478c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637142852;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=ZacOT3ITkAa+MdjgGs6b4ewjRyVE7nbo3488q4xNj14=;
  b=XOGU3HIwjLzLDbPBWAj+N6M/g8HeJ5YiztWkXAEqz2Z41EsubX9xzLKr
   VaiDGti8PYgYo72/G/jTCS5NUMF2hwduAgZyNhlYMxYymiT91/MwkEVEY
   74lPjfo/RQuPd0uNyarjQwu7So75QKp7/OxWmM6vFfxrsPdsHFVkxTslQ
   4=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: aaySobvWiIWSzmHK+iWyjJGnbdBDfd3oAgAxYvRJlR80ibooHo6nONTCFFYCIx0lA55+7sBiu/
 rDHAVlQAO5uYHxAmQ5nFhNrOmtD2bE5y/Z+ajECxpigoMfCDQz2iA9zoyG/cLxnh8IgVdbjg91
 G1EaxTaDgZE9+0rQJo987J8m6AUIx7ilzh8wtLTeDKtDLriYcOdUqr+7wofJSZ5gKIiWH5OSt7
 6v6UICBtsRRfZ9pfB25m+O60VV+JF3UJixLcntYzf2e09LATzRZU4QVZaGiGONrIov2WAcavC6
 aJziFY84ZNJcqhkdedSi4pbZ
X-SBRS: 5.1
X-MesageID: 59994920
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:bUt99K2f3/9vUPwOvfbD5Sd2kn2cJEfYwER7XKvMYLTBsI5bpz0Em
 DQbUWjVafjZZmTxf912aNi+pkoF6sTUz4dhHgA+pC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wrFh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhsO5r0
 MdLkbaJdCwZB6LMt8kkdz4ADHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1EnMMsIdOtJIoCknph0SvYHbAtRpWrr6DiuI4JjWth3Jgm8fD2a
 sokcCs1YBn6Y0NEMXYVGaMHnv6XiSyqG9FfgA3M/vdmi4TJ9yR6173oLdzUZs3MQMxTl0mVv
 ErW8mLhGBYYOdeDjz2f/RqEh/DNtTP2XpoIE7+1/eIsh0ecrkQDBRtTWValrP2Rjk+lR8kZO
 0ES4jApr6U56AqsVNaVYvGjiCfa5FhGAYMWSrBkrlHWokbJ3+qHLkc6VCZTbvgMjfIddQUl1
 nCkpvfOXSM65dV5Vkmh3ruTqDqzPw0cImkDeTIIQGM53jXznG0gpkmRF4g+ScZZmvWwQGitm
 G7S8EDSkp1K1ZZTv5hX62wrlN5FSnLhagcurjvaUWu+hu+STN70Ptf4gbQ3ABspEWp4crVjl
 CRU8yR9xLpXZX1oqMBraL9VdF1Oz6zbWAAweXY1Q/EcG82FohZPh7x47jBkP1tOOc0ZYzLva
 0K7kVoPv8ALbCT2MvMtMt/Z5yEWIU7IT4+Nuhf8NIQmX3SMXFXfoHEGibC4gQgBb3TAYYlgY
 MzGIK5A/F4RCLh9zSreegvu+eRD+8zK/kuKHcqT503+idK2PSfJIZ9YYArmRr1ot8us/VSKm
 +uzwuPXkn2zpsWlOXKJmWPSRHhXRUUG6Wfe95YKK7Xde1U+QwnMyZb5mNscRmCspIwM/s/g9
 XChQE5Ijl35gHzMMwKRbX5/LrjoWP5CQbgTZETA5H6khCouZ5iB9qAae8dldLUr7rU7n/V1U
 +MEa4OLBfEWEmbL/DEUbJ/cqo1+dUv02VLSbnT9ODVvLYR9QwHp+8P/ele9/ic5ESfq59A1p
 Ket112HTMNbFRhiFsvfdNmm00i14SoGgOt3UkaReotTdUzg/ZJEMSv0ivNrccgAJQ+anmmR1
 hqMAAderu7I+tdn/N7MjKGCjoGoD+ohQRYKQziFte67bHCI8HCizIlMVPezUQrcDG6kqr+/Y
 eh1zu3nNKFVllh9rIchQa1gyrgz5oWzquYCnBhkBnjCc3+iFqhkfiudxcBKu6BAmu1ZtA+xV
 h7d89VWI+zUasbsEVpXLws5dOWTk/oTn2CKv/gyJUz74g5x/aaGDhoOb0Xd1nQFIesnKp4hz
 McgpNUSul62hRcdO9qbijxZqjaXJXsaXqR77pwXDecHUObwJo2utXAENhLL3Q==
IronPort-HdrOrdr: A9a23:Boyi96M2+wts0sBcT1v155DYdb4zR+YMi2TDiHofdfUFSKClfp
 6V8cjztSWUtN4QMEtQ/exoX5PwPU80lKQFnLX5WI3NYOCIghrPEGgP1/qB/9SkIVyEygc/79
 YQT0EdMqyIMbESt6+Ti2PZYrVQsOVvsprY/9s2p00dMz2CAJsQiDuRZDzrd3GfE2J9dOUE/d
 enl4B6jgvlXU5SQtWwB3EDUeSGj9rXlKj+aRpDIxI88gGBgR6h9ba/SnGjr1sjegIK5Y1n3X
 nOkgT/6Knmm/anyiXE32uWy5hNgtPuxvZKGcTJoMkILTfHjBquee1aKvC/lQFwhNvqxEchkd
 HKrRtlF8Nv60nJdmXwmhfp0xmI6kdm11bSjXujxVfzq83wQzw3T+Bbg5hCTxff4008+Plhza
 NixQuixttqJCKFuB64y8nDVhlsmEbxi2Eli/Qvg3tWVpZbQKNNrLYY4FheHP47bWzHAbgcYa
 pT5fznlbRrmQvwVQGdgoAv+q3iYp0LJGbHfqBY0fbllwS/nxhCvj0lLYIk7zA9HakGOut5Dt
 L/Q9NVfYF1P7wrhJ1GdZI8qLOMexTwqDL3QSqvyAfcZeo600ykke+C3Fxy3pDtRKA1
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="59994920"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mqFcPBT16fUm28iTNBxVRA1sa4BJnIhsWRN3TaU7SHUKHH5a5tIHV1ca+3ZmODVPykWB2BsyNw/XvSyn4bzonxe8H68uKX8HchgmZd46cuDDHd3iMuEmYG6kkCkYwn0o1bl7FdO8uPzw8IxhIisOhGPyw5+zegzYhfyuZhKwr5auVrijOdqjAFe6zcXDK/ixsmLilRF8veAsuuyyayY17L4CFF1EQQmGBA/aPqUWFIhwao9yrz8zv/k8nQ32IFxUuQ9Yk04mTql28GKjDyKvpVQ+o/OPt+8+etBELV8ernCvpvgF4tr1J6kYJtGBWK9t3njNN2GFJT1UKcHQSmmoLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/Ws8aUy8F+EVvPCLmY4ejokUBqMwMeb6CAM8JrY6H6w=;
 b=ZO7jDd/MbYx6SNeex2kJjtUzL6DmW+wXcSt/IQDVwX1KyTpA+PLN8jlMpQT0Gxz9FGFMDAMHUneFXU79ue3K12PvaLOiYrhbNH9+TchwSvZWx0uJcZk0wfknzJ6YTDk/tAc+Ae76hybCMX6AK/4gzRtIqMS4ir/CrFDkPQhmsWd2BZDlkHNjPPTTFGgQtqC5kCAj9B+WCY1N+GCnFPGSpe2iJLow6+DDzPgbPh7ma/yKjvjWclzzbzBrXGlnREuJXizXEAF1e8zr2TLp6onw7RHXkA7VNa+j9jR90WQ9TmYECgich7MY6TQgjl8smY8seunBP0R5FqR/f7252Gu9bA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/Ws8aUy8F+EVvPCLmY4ejokUBqMwMeb6CAM8JrY6H6w=;
 b=GmL/oiFtY7wAdBmyCceKr9EHLMS21MSBDQLVgQQx2B3fpnsHksTnwK7UsuMCv1YN2MDDXjzxY9YO/O0aNV8RHS5SF5YAAWq3us9XaWp+pf55el+XGPKwgOg6xVHs6yj5O1iUNLftNZys8XYDPMKJv280EgBdn4ybLf/bkgCGVX0=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH for-4.16 1/2] CHANGELOG: set Xen 4.15 release date
Date: Wed, 17 Nov 2021 10:53:37 +0100
Message-ID: <20211117095338.14947-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211117095338.14947-1-roger.pau@citrix.com>
References: <20211117095338.14947-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAYP264CA0009.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:11e::14) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0cc01efe-13ee-4044-fee4-08d9a9b0302a
X-MS-TrafficTypeDiagnostic: DM6PR03MB3577:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3577D14C43800EA9988BB49B8F9A9@DM6PR03MB3577.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:913;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: s7Z0Onyl5n5xymLLdet4DZ8c4HzlhkqTO7sCQwn7GLZ532ffdeS756RHebajBipaYowZy2hNATwn4CCsKfuRkY814xgYI73BoMGUnX4FKvELrt2MRs5+6tT2dSoBRkzyX98nzlVvcPGX5AZRrtgjXNvVnIPmNWBmgrf34PcGtOzpOyDEVqG3p25MOgeNFQFCVr6MhOfxgCmX48veqbWO3+NgsdfRZdFgRUB8dfTVf5fHgIZ2SlLPZ1njqsgm13gcdkSOIrnbbX4NXLenIsX40zEswml+st7fMO6mO9ww4s68Y7aeA5arqm5ogmDX12puVlzj/SJA9+HLYGIEFIG22UG9F9s+1BhQQefAef3JU/8GjLqk+ogPcpg9yJYXHUojJKkHM2r7VnWFcX1qNSv2ytF+B2IxPRPO+7vaf05YK04MGErG5tywAbZT6ORex7/CIiNsqTkH8zbjuBA4AorD2IQq8X62EMRJQAiwinER9slaLyIz75l2iiB90gTHX5DQzdlDxW6sH8M2M9iU6lloo3/loy4dZNNuzLz+V9O1CyWtvonnnH+ROFa/Db5vUAmWeAlFqLRhQxp3qJANYDrLNDUWjT9BlyAYfxeOyAPpitE9ZC4tWYDpj7bxOkrabsG85Qv4C0xCLsw014W2fdIAC671Phsbv1znxK40EkROxPuT/C7U8PoVtM7kJm3MBxOAlSaK4zrWrxxQwzttYQ27xedNIMqH1YRH5wFk1NNEv8qtrcxQMa6wsbbpTR97xnX+UWkh5pzDeScWjZRxqAjgjLezPJIHcyTE0LLSyM7Xgg5C9tD0ZP3maIJeH6hxp7hQ
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(1076003)(66556008)(38100700002)(316002)(6916009)(186003)(86362001)(82960400001)(8676002)(4326008)(5660300002)(4744005)(54906003)(2906002)(26005)(6666004)(83380400001)(2616005)(508600001)(6486002)(36756003)(66946007)(6496006)(956004)(66476007)(8936002)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VzM0RVE0YU8vay91QTVKTUxUZjhHbXhqUHVuQ1VTOWduL2FRbGNaR1EvQjUv?=
 =?utf-8?B?NVM0c2lxNWQ4YkpFU21waDRPb3FvZFdCV0srRDkwaGswRlRYVzRObzBXZzlh?=
 =?utf-8?B?Y0h4cEh1NmJDNE5HQ2QwUGswcjRzYUNqK29PYlV5UUNGaUx5SlB5K1BJUjJS?=
 =?utf-8?B?QkUxVGhBMldtMml2Ny80bXZOVllhUFQ5bFBub3ZEWHZlYWp2QitJdGg5OXVq?=
 =?utf-8?B?c2F2bGkvbmJMSXZmUGMxbndrYTJ2WmdSRXNGY29qUVFOOUFLM3g5VktHa1FL?=
 =?utf-8?B?b29rakpjeXNZK281Qzk5RTZaaHB6eEFoS2dOZ0tFczBpaXdWN2NMYm5TTjBZ?=
 =?utf-8?B?VCtHaUZ5ZjVIVTMwQTNBUTZ4VU1iV0xoU0RVK2RmY0l5cXljMmQzcGdYQnhn?=
 =?utf-8?B?MEtWMEJnTTF1M3B2eWE1RUt1WHNXMXBENTdxMllsVGx6YTZUUDc2emYwNUcv?=
 =?utf-8?B?WUhIRkg1S3lIUWhMekg1T3BTbVA5c29ZWFZZWnF3UUV4M1NybnhoSElnYjQy?=
 =?utf-8?B?UzNvL2NOT1RJeUNHUFpwV3Fhc2d0bTdWZ09mY3BGM0dwYWRrT0J3RXU3MFVB?=
 =?utf-8?B?Sm1Gc1Uwb2NVRFc5d2Vkdy96NGdER2ZwbnRtMnpCdmM3alhVcmFLcExWYzNB?=
 =?utf-8?B?VkVEUXprUW00c1BOR0dDZWdGUkE1VFRRQm94RzlWWFRvL255QkN3YnFrM3JI?=
 =?utf-8?B?NDhPNUdQTWtKK0xjUVlxdlozc2s5WFVDNVFCYzV1L2R0WlYwWTJ5QjQxSjRO?=
 =?utf-8?B?VDRTM3FwM05RVzZJUitRZWNad0tyemZ4dnlxN0FMWklPR2ptcDVGSUs2a1BK?=
 =?utf-8?B?ejY4Q0EvTzJSUzllYUthQ0tPRjNGUnR5NTlXbkNTTFp3ZzNBMHM0QzR5TUIz?=
 =?utf-8?B?OTFoRFM0Ri9RMEhRUVIxeGJrWjlmNWw3UnF1bTlLSHBmTkQzbTRtb2ZHeHZC?=
 =?utf-8?B?UEdqWnRYSjRpbWZOQTVyTHBzYUxYbW9nVGhhQk1icHd2SXp1UHVNeWRpTTc0?=
 =?utf-8?B?RGV3a3BlVzJYcEIyMmFQYm5BdjR1RE9MVEl4SHc4RURGVE9GMGtJYjZOUjlU?=
 =?utf-8?B?dUszUlFhaC91ZlZqMDFTRnBRZ0VFN3JBOE1Rb2Y5MkZaa0EybUxqYkFkYUo2?=
 =?utf-8?B?V3kxRFZZb2JFQ2Nna3R2cDdqNXBRY29QaDFhM0FuNkhBVlFlSXJ4Ymwzai9C?=
 =?utf-8?B?bXI4SHYrbGlnYnl4UGVVM2NqcVRWWkZBbE05NDRkTGViSU14VVJZTTRscklV?=
 =?utf-8?B?SExKekpnZy8vODcvRlZPMEVuZThTdWVoYUZTZjN4Q2k5SzRWZGtnOGNaWUtk?=
 =?utf-8?B?bXFLRzl1eFcrQzlrc3FGN01TeGowVHBLZ1U0emRPR2xlSjBTMVVKb1NXRU04?=
 =?utf-8?B?QkFXeFdEOUZ1QWZSUUdmTXhGNnFiOHMyTkwwSkM2cHVOaTFNYkJFWU9wQzdH?=
 =?utf-8?B?V3pjT0Q0Wm1nNnNRUmdubm1RYTUzOHNFSnA4ekRJUjVsemZReSt3K2ZmZUNh?=
 =?utf-8?B?Q1VROEEzem50eFBZZlJsRy9ZbDY0NUtHKzJDK3RsZ2JNNDhZM2NVREwyMWVv?=
 =?utf-8?B?NG9LRXlSV25UL0FxSDV5Z0F3VXNKRElEZ0pjNXdOMWhUTFpBUmFxUU92S3p0?=
 =?utf-8?B?WlhUa1lCU09zNnpTbmpuVlBlcGpFbUhPRW1YY2tLbGRUb0s2TVpOb3p0TVZJ?=
 =?utf-8?B?MDBzL1llb0Qra2U3bVlibXpFT3FSbVpvZHhvMHFGMTdrdjFyZjkvUXZIbE1C?=
 =?utf-8?B?RUN4ajFSRlp6U2VkSTBPSnNyRm1YQjl4R1ZuYVdvNVBkUDF4UjVtYmxYTmVD?=
 =?utf-8?B?K2FTVEh5SDBtWFYxc1BWYlF5TEdqY05Bejlkb3VqVlhwM0lzSHdXZ0ZWOE1Z?=
 =?utf-8?B?UjBvc1RpVkljQ0s4WlVNUHpQT0VRemdaWDRCK1ZjT1hsNHhxT2taN09SbXMx?=
 =?utf-8?B?eEFlcUlqYVJSajRPa1d0cWN1OEgrODI3aGIzL3lpSURYMUxwSVJnRkdqSTZl?=
 =?utf-8?B?K2lZZjFFVUx1cHZSN2FwVytDcTcwYmxxaW1CVEZYaFdKclQxNm5FR2h1dWw1?=
 =?utf-8?B?NFdHU0FxVUtzcElteFViVGVUd01qOWk1WW55N1djTWRyQ1FsemREelBsY0tG?=
 =?utf-8?B?Kzdaa3F3dW5rSmxMTWJOanE2THFENlRKNUhGM0o0Z0hxYXFqMFdHdUVQR3pC?=
 =?utf-8?Q?fAr2qII3YCxOMRlBoW+Isi0=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 0cc01efe-13ee-4044-fee4-08d9a9b0302a
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 09:54:03.7964
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Z9+ukcnx5BC2MPHFCVhe3gWuWxB601+qwjZnvuUq8FjI9XoKQjNoqWVZ714rKvBkzNBOoRZwzSg6p+1abvqm3g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3577
X-OriginatorOrg: citrix.com

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 CHANGELOG.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e5ab49e779..ad1a8c2bc2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,7 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    no longer be built per default. In order to be able to use those, configure needs to
    be called with "--enable-qemu-traditional" as parameter.
 
-## [4.15.0 UNRELEASED](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - TBD
+## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2021-04-08
 
 ### Added / support upgraded
  - ARM IOREQ servers (device emulation etc.) (Tech Preview)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 09:57:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 09:57:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226675.391769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHh1-0002Md-2i; Wed, 17 Nov 2021 09:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226675.391769; Wed, 17 Nov 2021 09:57:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHh0-0002KR-UQ; Wed, 17 Nov 2021 09:57:26 +0000
Received: by outflank-mailman (input) for mailman id 226675;
 Wed, 17 Nov 2021 09:57:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BtAJ=QE=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1mnHh0-0002FH-CB
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 09:57:26 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c3bf6d5e-478c-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 10:57:24 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 34102ED1;
 Wed, 17 Nov 2021 01:57:24 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.cambridge.arm.com
 [10.1.195.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 79C953F70D;
 Wed, 17 Nov 2021 01:57:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3bf6d5e-478c-11ec-9787-a32c541c8605
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com,
	wei.chen@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Juergen Gross <jgross@suse.com>,
	Dario Faggioli <dfaggioli@suse.com>
Subject: [RFC PATCH 1/2] xen/cpupool: Create different cpupools at boot time
Date: Wed, 17 Nov 2021 09:57:10 +0000
Message-Id: <20211117095711.26596-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20211117095711.26596-1-luca.fancellu@arm.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>

Introduce an architecture specific way to create different
cpupool at boot time, this is particularly useful on ARM
biglittle system where there might be the need to have
different cpupools for each type of core, but also systems
using NUMA can have different cpu pool for each node.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/Kconfig       | 15 +++++++
 xen/arch/arm/Makefile      |  1 +
 xen/arch/arm/cpupool.c     | 84 ++++++++++++++++++++++++++++++++++++++
 xen/common/sched/cpupool.c |  5 ++-
 xen/include/xen/cpupool.h  | 30 ++++++++++++++
 5 files changed, 134 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/cpupool.c
 create mode 100644 xen/include/xen/cpupool.h

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index ecfa6822e4..4d7cc9f3bc 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -33,6 +33,21 @@ config ACPI
 	  Advanced Configuration and Power Interface (ACPI) support for Xen is
 	  an alternative to device tree on ARM64.
 
+config BOOT_TIME_CPUPOOLS
+	bool "Create cpupools per cpu type at boot time."
+	depends on ARM
+	default n
+	help
+
+	  Creates, during boot, a cpu pool for each type of CPU found on
+	  the system. This option is useful on system with heterogeneous
+	  types of core.
+
+config MAX_BOOT_TIME_CPUPOOLS
+	depends on BOOT_TIME_CPUPOOLS
+	int "Maximum number of cpupools that can be created at boot time."
+	default 16
+
 config GICV3
 	bool "GICv3 driver"
 	depends on ARM_64 && !NEW_VGIC
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 07f634508e..0bb8b84750 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -13,6 +13,7 @@ obj-$(CONFIG_HAS_ALTERNATIVE) += alternative.o
 obj-y += bootfdt.init.o
 obj-y += cpuerrata.o
 obj-y += cpufeature.o
+obj-$(CONFIG_BOOT_TIME_CPUPOOLS) += cpupool.o
 obj-y += decode.o
 obj-y += device.o
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
diff --git a/xen/arch/arm/cpupool.c b/xen/arch/arm/cpupool.c
new file mode 100644
index 0000000000..550521e352
--- /dev/null
+++ b/xen/arch/arm/cpupool.c
@@ -0,0 +1,84 @@
+/******************************************************************************
+ * cpupool.c
+ *
+ * (C) 2021, arm
+ */
+
+#include <xen/cpumask.h>
+#include <xen/cpupool.h>
+#include <xen/err.h>
+#include <xen/sched.h>
+#include <asm/cpufeature.h>
+#include <asm/processor.h>
+#include "../../common/sched/private.h"
+
+typedef struct {
+    register_t     midr;
+    struct cpupool *pool;
+} pool_t;
+
+static pool_t __initdata pool_cpu_map[CONFIG_MAX_BOOT_TIME_CPUPOOLS];
+
+void __init arch_allocate_cpupools(const cpumask_t *cpu_online_map,
+                                   cpupool_create_t cpupool_create)
+{
+    unsigned int cpu, i;
+
+    /* First pool is the default pool0 associated with midr of the boot core */
+    pool_cpu_map[0].midr = system_cpuinfo.midr.bits;
+    pool_cpu_map[0].pool = cpupool0;
+
+    for_each_cpu ( cpu, cpu_online_map )
+    {
+        for ( i = 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
+            if ( !pool_cpu_map[i].pool ||
+                 (cpu_data[cpu].midr.bits == pool_cpu_map[i].midr) )
+                break;
+
+        if ( i < CONFIG_MAX_BOOT_TIME_CPUPOOLS )
+        {
+            if ( !pool_cpu_map[i].pool )
+            {
+                /* There is no pool for this cpu midr, create it */
+                pool_cpu_map[i].midr = cpu_data[cpu].midr.bits;
+                debugtrace_printk("Create pool %u for cpu MIDR: 0x%"
+                                  PRIregister"\n", i, pool_cpu_map[i].midr);
+                pool_cpu_map[i].pool =
+                    cpupool_create(i, scheduler_get_default()->sched_id);
+                BUG_ON(IS_ERR(pool_cpu_map[i].pool));
+                cpupool_put(pool_cpu_map[i].pool);
+            }
+        }
+        else
+            panic("Could not create cpupool, maximum number reached (%u)",
+                  (unsigned int)(CONFIG_MAX_BOOT_TIME_CPUPOOLS));
+    }
+
+    /* Print useful information about the pools */
+    for ( i = 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
+        if ( pool_cpu_map[i].pool )
+            printk(XENLOG_INFO "Pool-%u contains cpu with MIDR: 0x%"
+                   PRIregister"\n", i, pool_cpu_map[i].midr);
+}
+
+struct cpupool *__init arch_get_cpupool(unsigned int cpu)
+{
+    unsigned int i;
+
+    for ( i = 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
+        if ( pool_cpu_map[i].pool &&
+             (cpu_data[cpu].midr.bits == pool_cpu_map[i].midr) )
+            return pool_cpu_map[i].pool;
+
+    return cpupool0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index 8c6e6eb9cc..7389f04e28 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -13,6 +13,7 @@
 
 #include <xen/cpu.h>
 #include <xen/cpumask.h>
+#include <xen/cpupool.h>
 #include <xen/guest_access.h>
 #include <xen/hypfs.h>
 #include <xen/init.h>
@@ -1231,12 +1232,14 @@ static int __init cpupool_init(void)
     cpupool_put(cpupool0);
     register_cpu_notifier(&cpu_nfb);
 
+    arch_allocate_cpupools(&cpu_online_map, cpupool_create);
+
     spin_lock(&cpupool_lock);
 
     cpumask_copy(&cpupool_free_cpus, &cpu_online_map);
 
     for_each_cpu ( cpu, &cpupool_free_cpus )
-        cpupool_assign_cpu_locked(cpupool0, cpu);
+        cpupool_assign_cpu_locked(arch_get_cpupool(cpu), cpu);
 
     spin_unlock(&cpupool_lock);
 
diff --git a/xen/include/xen/cpupool.h b/xen/include/xen/cpupool.h
new file mode 100644
index 0000000000..4b50af9e3d
--- /dev/null
+++ b/xen/include/xen/cpupool.h
@@ -0,0 +1,30 @@
+#ifndef __XEN_CPUPOOL_H
+#define __XEN_CPUPOOL_H
+
+#include <xen/sched.h>
+
+typedef struct cpupool* (*cpupool_create_t)(unsigned int, unsigned int);
+
+#ifdef CONFIG_BOOT_TIME_CPUPOOLS
+
+void arch_allocate_cpupools(const cpumask_t *cpu_online_map,
+                            cpupool_create_t cpupool_create);
+
+struct cpupool *arch_get_cpupool(unsigned int cpu);
+
+#else
+
+static inline __init
+void arch_allocate_cpupools(const cpumask_t *cpu_online_map,
+                            cpupool_create_t cpupool_create)
+{
+}
+
+static inline struct cpupool *__init arch_get_cpupool(unsigned int cpu)
+{
+    return cpupool0;
+}
+
+#endif
+
+#endif /* __XEN_CPUPOOL_H */
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 09:57:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 09:57:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226674.391764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHh0-0002FU-Jw; Wed, 17 Nov 2021 09:57:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226674.391764; Wed, 17 Nov 2021 09:57:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHh0-0002FN-GJ; Wed, 17 Nov 2021 09:57:26 +0000
Received: by outflank-mailman (input) for mailman id 226674;
 Wed, 17 Nov 2021 09:57:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BtAJ=QE=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1mnHgz-0002FB-20
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 09:57:25 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c2974363-478c-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 10:57:23 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 44247D6E;
 Wed, 17 Nov 2021 01:57:22 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.cambridge.arm.com
 [10.1.195.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 670063F70D;
 Wed, 17 Nov 2021 01:57:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2974363-478c-11ec-a9d2-d9f7a1cc8784
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com,
	wei.chen@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Juergen Gross <jgross@suse.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [RFC PATCH 0/2] Boot time cpupools
Date: Wed, 17 Nov 2021 09:57:09 +0000
Message-Id: <20211117095711.26596-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.17.1

Currently Xen creates a default cpupool0 that contains all the cpu brought up
during boot and it assumes that the platform has only one kind of CPU.
This assumption does not hold on big.LITTLE platform, but putting different
type of CPU in the same cpupool can result in instability and security issues
for the domains running on the pool.

For this reason this serie introduces an architecture specific way to create
different cpupool at boot time, this is particularly useful on ARM big.LITTLE
platform where there might be the need to have different cpupools for each type
of core, but also systems using NUMA can have different cpu pool for each node.

To test this serie, the hmp_unsafe Xen boot argument is passed to allow Xen
starting different CPUs from the boot core.

Luca Fancellu (2):
  xen/cpupool: Create different cpupools at boot time
  tools/cpupools: Give a name to unnamed cpupools

 tools/libs/light/libxl_utils.c | 13 ++++--
 xen/arch/arm/Kconfig           | 15 ++++++
 xen/arch/arm/Makefile          |  1 +
 xen/arch/arm/cpupool.c         | 84 ++++++++++++++++++++++++++++++++++
 xen/common/sched/cpupool.c     |  5 +-
 xen/include/xen/cpupool.h      | 30 ++++++++++++
 6 files changed, 142 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/arm/cpupool.c
 create mode 100644 xen/include/xen/cpupool.h

-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 09:57:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 09:57:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226676.391786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHh2-0002lH-Cn; Wed, 17 Nov 2021 09:57:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226676.391786; Wed, 17 Nov 2021 09:57:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHh2-0002kk-8u; Wed, 17 Nov 2021 09:57:28 +0000
Received: by outflank-mailman (input) for mailman id 226676;
 Wed, 17 Nov 2021 09:57:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BtAJ=QE=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1mnHh0-0002FB-Rf
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 09:57:26 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c4735faa-478c-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 10:57:26 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 73707D6E;
 Wed, 17 Nov 2021 01:57:25 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.cambridge.arm.com
 [10.1.195.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 653253F70D;
 Wed, 17 Nov 2021 01:57:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4735faa-478c-11ec-a9d2-d9f7a1cc8784
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com,
	wei.chen@arm.com,
	Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>
Subject: [RFC PATCH 2/2] tools/cpupools: Give a name to unnamed cpupools
Date: Wed, 17 Nov 2021 09:57:11 +0000
Message-Id: <20211117095711.26596-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20211117095711.26596-1-luca.fancellu@arm.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>

With the introduction of boot time cpupools, Xen can
create at boot time many cpupools different from the
cpupool with id 0.

Since these newly created cpupools can't have an
entry in Xenstore, name them with the same convention
used for the cpupool 0: Pool-<cpupool id>.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 tools/libs/light/libxl_utils.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/tools/libs/light/libxl_utils.c b/tools/libs/light/libxl_utils.c
index 4699c4a0a3..d97d91ca98 100644
--- a/tools/libs/light/libxl_utils.c
+++ b/tools/libs/light/libxl_utils.c
@@ -147,13 +147,16 @@ int libxl_cpupool_qualifier_to_cpupoolid(libxl_ctx *ctx, const char *p,
 char *libxl_cpupoolid_to_name(libxl_ctx *ctx, uint32_t poolid)
 {
     unsigned int len;
-    char path[strlen("/local/pool") + 12];
+    char buffer[strlen("/local/pool") + 12];
     char *s;
 
-    snprintf(path, sizeof(path), "/local/pool/%d/name", poolid);
-    s = xs_read(ctx->xsh, XBT_NULL, path, &len);
-    if (!s && (poolid == 0))
-        return strdup("Pool-0");
+    snprintf(buffer, sizeof(buffer), "/local/pool/%d/name", poolid);
+    s = xs_read(ctx->xsh, XBT_NULL, buffer, &len);
+    if (!s)
+    {
+        snprintf(buffer, sizeof(buffer), "Pool-%d", poolid);
+        return strdup(buffer);
+    }
     return s;
 }
 
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 09:58:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 09:58:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226684.391797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHhc-0003wC-Np; Wed, 17 Nov 2021 09:58:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226684.391797; Wed, 17 Nov 2021 09:58:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHhc-0003w3-KH; Wed, 17 Nov 2021 09:58:04 +0000
Received: by outflank-mailman (input) for mailman id 226684;
 Wed, 17 Nov 2021 09:58:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnHhb-0003vL-3Q; Wed, 17 Nov 2021 09:58:03 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnHhb-00044M-0s; Wed, 17 Nov 2021 09:58:03 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnHha-0004Bo-MK; Wed, 17 Nov 2021 09:58:02 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnHha-0006MV-Ls; Wed, 17 Nov 2021 09:58:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=5qZbDxHHrOlW0/kF+LuIIdj6Hdd5kt4Mel2aWcylHJo=; b=WcKaqiLfXr418KjDD6eQfIO4AH
	TFKfNcxLVzO04oi0O4JaPP9PmHj8j4sc63hRghvMi11D1nOyHHzw4upHr/BeqLpSIII/gVuchM52v
	CN5rI25ISNC4MCJEnWMw4ozNgmrUOMubyGt09N8TiOxDKhIiDjesSZZxQNhbjp66MkDw=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166165-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-coverity test] 166165: all pass - PUSHED
X-Osstest-Versions-This:
    xen=2d72d2784eb71d8532bfbd6462d261739c9e82e4
X-Osstest-Versions-That:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Nov 2021 09:58:02 +0000

flight 166165 xen-unstable-coverity real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166165/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xen                  2d72d2784eb71d8532bfbd6462d261739c9e82e4
baseline version:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6

Last test of basis   166145  2021-11-14 09:18:29 Z    3 days
Testing same since   166165  2021-11-17 09:18:30 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 coverity-amd64                                               pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c7a7f14b92..2d72d2784e  2d72d2784eb71d8532bfbd6462d261739c9e82e4 -> coverity-tested/smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 10:00:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 10:00:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226692.391811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHjV-0004fG-5P; Wed, 17 Nov 2021 10:00:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226692.391811; Wed, 17 Nov 2021 10:00:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHjV-0004f9-1O; Wed, 17 Nov 2021 10:00:01 +0000
Received: by outflank-mailman (input) for mailman id 226692;
 Wed, 17 Nov 2021 09:59:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=BnEr=QE=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1mnHjT-0004f3-GI
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 09:59:59 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ee6d32c-478d-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 10:59:58 +0100 (CET)
Received: by verein.lst.de (Postfix, from userid 2407)
 id 863B668AFE; Wed, 17 Nov 2021 10:59:53 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ee6d32c-478d-11ec-a9d2-d9f7a1cc8784
Date: Wed, 17 Nov 2021 10:59:53 +0100
From: Christoph Hellwig <hch@lst.de>
To: Tianyu Lan <ltykernel@gmail.com>
Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org,
	hpa@zytor.com, jgross@suse.com, sstabellini@kernel.org,
	boris.ostrovsky@oracle.com, kys@microsoft.com,
	haiyangz@microsoft.com, sthemmin@microsoft.com, wei.liu@kernel.org,
	decui@microsoft.com, joro@8bytes.org, will@kernel.org,
	davem@davemloft.net, kuba@kernel.org, jejb@linux.ibm.com,
	martin.petersen@oracle.com, hch@lst.de, m.szyprowski@samsung.com,
	robin.murphy@arm.com, xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com,
	Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org, vkuznets@redhat.com, brijesh.singh@amd.com,
	konrad.wilk@oracle.com, parri.andrea@gmail.com,
	thomas.lendacky@amd.com, dave.hansen@intel.com
Subject: Re: [PATCH 1/5] x86/Swiotlb: Add Swiotlb bounce buffer remap
 function for HV IVM
Message-ID: <20211117095953.GA10330@lst.de>
References: <20211116153923.196763-1-ltykernel@gmail.com> <20211116153923.196763-2-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211116153923.196763-2-ltykernel@gmail.com>
User-Agent: Mutt/1.5.17 (2007-11-01)

The subject is wrong, nothing x86-specific here.  Please use
"swiotlb: " as the prefix

> + * @vaddr:	The vaddr of the swiotlb memory pool. The swiotlb
> + *		memory pool may be remapped in the memory encrypted case and store

Please avoid the overly long line.

> +	/*
> +	 * With swiotlb_unencrypted_base setting, swiotlb bounce buffer will
> +	 * be remapped in the swiotlb_update_mem_attributes() and return here
> +	 * directly.
> +	 */

I'd word this as:

	/*
	 * If swiotlb_unencrypted_base is set, the bounce buffer memory will
	 * be remapped and cleared in swiotlb_update_mem_attributes.
	 */
> +	ret = swiotlb_init_io_tlb_mem(mem, __pa(tlb), nslabs, false);
> +	if (ret) {
> +		memblock_free(mem->slots, alloc_size);
> +		return ret;
> +	}

With the latest update swiotlb_init_io_tlb_mem will always return 0,
so no need for the return value change or error handling here.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 10:00:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 10:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226695.391822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHjs-00060t-Cx; Wed, 17 Nov 2021 10:00:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226695.391822; Wed, 17 Nov 2021 10:00:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHjs-00060m-9m; Wed, 17 Nov 2021 10:00:24 +0000
Received: by outflank-mailman (input) for mailman id 226695;
 Wed, 17 Nov 2021 10:00:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnHjq-0005zL-Vo
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 10:00:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnHji-0004DM-7T; Wed, 17 Nov 2021 10:00:14 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=[192.168.21.213]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnHjh-0005kh-Uc; Wed, 17 Nov 2021 10:00:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=gQ5und0MGMzv92KoeFJjM2CCanA/7DoVOa+xUCMBDf4=; b=4vqujkYWKwYfDMkhhS9Ll/f78k
	MLZC+vAFS5rgb86IpKuje76iaG21qoYGor/dF0SjNnwgnbOAdmFkHEkQq6OHFth+kb9HGR0wd4fyC
	1ElZb6JCXGNMFPUJ/B05jxrNaPa7UCIQlhhdObQ5KfBBPr4yuHOZ8kuuciAUP9vZtG4E=;
Message-ID: <7354e1bf-f34e-c604-b126-fdbfd53afe62@xen.org>
Date: Wed, 17 Nov 2021 10:00:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Dario Faggioli
 <dfaggioli@suse.com>, David Scott <dave@recoil.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Josh Whitehead <josh.whitehead@dornerworks.com>,
 Juergen Gross <jgross@suse.com>, Jun Nakajima <jun.nakajima@intel.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>,
 Nick Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>,
 Quan Xu <quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Shriram Rajagopalan <rshriram@cs.ubc.ca>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211117095338.14947-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 17/11/2021 09:53, Roger Pau Monne wrote:
> Document some of the relevant changes during the 4.16 release cycle,
> likely more entries are missing.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
>   CHANGELOG.md | 11 +++++++++++
>   1 file changed, 11 insertions(+)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index ad1a8c2bc2..8b0bdd9cf0 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>    - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
>      no longer be built per default. In order to be able to use those, configure needs to
>      be called with "--enable-qemu-traditional" as parameter.
> + - Fixes for credit2 scheduler stability in corner case conditions.
> + - Ongoing improvements in the hypervisor build system.
> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> + - 32bit PV guests only supported in shim mode.
> + - Improved PVH dom0 debug key handling.
> + - Fix booting on some Intel systems without a PIT (i8254).
> +
> +### Added
> + - 32bit Arm builds to the automated tests.
> + - New x86 pagetable APIs.
> + - Arm vPMU support.

I would add "Early" or something similar because this can only work in a 
constrained setup.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 10:01:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 10:01:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226699.391833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHlD-0006h1-O4; Wed, 17 Nov 2021 10:01:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226699.391833; Wed, 17 Nov 2021 10:01:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHlD-0006gu-Kz; Wed, 17 Nov 2021 10:01:47 +0000
Received: by outflank-mailman (input) for mailman id 226699;
 Wed, 17 Nov 2021 10:01:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=BnEr=QE=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1mnHlC-0006gj-Fs
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 10:01:46 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f2e9876-478d-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 11:01:45 +0100 (CET)
Received: by verein.lst.de (Postfix, from userid 2407)
 id C89DA68B05; Wed, 17 Nov 2021 11:01:42 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f2e9876-478d-11ec-a9d2-d9f7a1cc8784
Date: Wed, 17 Nov 2021 11:01:42 +0100
From: Christoph Hellwig <hch@lst.de>
To: Tianyu Lan <ltykernel@gmail.com>
Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org,
	hpa@zytor.com, jgross@suse.com, sstabellini@kernel.org,
	boris.ostrovsky@oracle.com, kys@microsoft.com,
	haiyangz@microsoft.com, sthemmin@microsoft.com, wei.liu@kernel.org,
	decui@microsoft.com, joro@8bytes.org, will@kernel.org,
	davem@davemloft.net, kuba@kernel.org, jejb@linux.ibm.com,
	martin.petersen@oracle.com, hch@lst.de, m.szyprowski@samsung.com,
	robin.murphy@arm.com, xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com,
	Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org, vkuznets@redhat.com, brijesh.singh@amd.com,
	konrad.wilk@oracle.com, parri.andrea@gmail.com,
	thomas.lendacky@amd.com, dave.hansen@intel.com
Subject: Re: [PATCH 3/5] hyperv/IOMMU: Enable swiotlb bounce buffer for
 Isolation VM
Message-ID: <20211117100142.GB10330@lst.de>
References: <20211116153923.196763-1-ltykernel@gmail.com> <20211116153923.196763-4-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211116153923.196763-4-ltykernel@gmail.com>
User-Agent: Mutt/1.5.17 (2007-11-01)

This doesn't really have much to do with normal DMA mapping,
so why does this direct through the dma ops?


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 10:04:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 10:04:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226703.391844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHnT-0007KM-4f; Wed, 17 Nov 2021 10:04:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226703.391844; Wed, 17 Nov 2021 10:04:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHnT-0007KF-1a; Wed, 17 Nov 2021 10:04:07 +0000
Received: by outflank-mailman (input) for mailman id 226703;
 Wed, 17 Nov 2021 10:04:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Swqu=QE=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mnHnR-0007K4-KX
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 10:04:05 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b1c4e9e1-478d-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 11:04:04 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 871681FD29;
 Wed, 17 Nov 2021 10:04:03 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9DADF139ED;
 Wed, 17 Nov 2021 10:04:02 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 0PdGJZLTlGF6CAAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 17 Nov 2021 10:04:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1c4e9e1-478d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637143443; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=ytDc6KZCtbz5E5DOXqwTfXDZitaOYWFYTF5dyAAcdY0=;
	b=W1KLonleF+2e8uJ5f+SuQjoR4IbTCbCZKbz31nV70Pv0xBUJ7EB2sztl1RS6yWk8g8tjOc
	mkpPKSTucKrITaxeH6zaXK15ggAnG/+6yG4AGatfHKYepBkHwVFzXefs/tCHPvps9ZA8HM
	7m6M0GbW5k+Ht3+VzUGi78jb+4Brqr4=
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Dario Faggioli
 <dfaggioli@suse.com>, David Scott <dave@recoil.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Josh Whitehead <josh.whitehead@dornerworks.com>,
 Julien Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>,
 Nick Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>,
 Quan Xu <quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Shriram Rajagopalan <rshriram@cs.ubc.ca>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Message-ID: <de9c570f-b5dd-59fe-56ec-b9c5f931101d@suse.com>
Date: Wed, 17 Nov 2021 11:04:01 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211117095338.14947-3-roger.pau@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="zycez8IXuPu1TuzFM3LH93k9FpTZ401qo"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--zycez8IXuPu1TuzFM3LH93k9FpTZ401qo
Content-Type: multipart/mixed; boundary="omj0rZAs75DZq9MzGm0IorKsaoNWMjQ24";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Dario Faggioli
 <dfaggioli@suse.com>, David Scott <dave@recoil.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Josh Whitehead <josh.whitehead@dornerworks.com>,
 Julien Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>,
 Nick Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>,
 Quan Xu <quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Shriram Rajagopalan <rshriram@cs.ubc.ca>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
Message-ID: <de9c570f-b5dd-59fe-56ec-b9c5f931101d@suse.com>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
In-Reply-To: <20211117095338.14947-3-roger.pau@citrix.com>

--omj0rZAs75DZq9MzGm0IorKsaoNWMjQ24
Content-Type: multipart/mixed;
 boundary="------------2CE7F4D0A0EDAC2E5FD4F053"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------2CE7F4D0A0EDAC2E5FD4F053
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 17.11.21 10:53, Roger Pau Monne wrote:
> Document some of the relevant changes during the 4.16 release cycle,
> likely more entries are missing.
>=20
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>   CHANGELOG.md | 11 +++++++++++
>   1 file changed, 11 insertions(+)
>=20
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index ad1a8c2bc2..8b0bdd9cf0 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://ke=
epachangelog.com/en/1.0.0/)
>    - qemu-traditional based device models (both, qemu-traditional and i=
oemu-stubdom) will
>      no longer be built per default. In order to be able to use those, =
configure needs to
>      be called with "--enable-qemu-traditional" as parameter.
> + - Fixes for credit2 scheduler stability in corner case conditions.
> + - Ongoing improvements in the hypervisor build system.
> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> + - 32bit PV guests only supported in shim mode.
> + - Improved PVH dom0 debug key handling.
> + - Fix booting on some Intel systems without a PIT (i8254).

Missing are:

- don't default to build qemu-traditional
- don't default to build pvgrub

> +
> +### Added
> + - 32bit Arm builds to the automated tests.
> + - New x86 pagetable APIs.
> + - Arm vPMU support.
>  =20
>   ## [4.15.0](https://xenbits.xen.org/gitweb/?p=3Dxen.git;a=3Dshortlog;=
h=3DRELEASE-4.15.0) - 2021-04-08
>  =20
>=20

Juergen

--------------2CE7F4D0A0EDAC2E5FD4F053
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------2CE7F4D0A0EDAC2E5FD4F053--

--omj0rZAs75DZq9MzGm0IorKsaoNWMjQ24--

--zycez8IXuPu1TuzFM3LH93k9FpTZ401qo
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGU05EFAwAAAAAACgkQsN6d1ii/Ey9l
xAf/e/8V1E3tJp4I1e+hcAgJ4LwI4TSpBANlJn1+R88GMp+WwN3/eZIMzIny+VJ5tIZ3FIRQSzm8
TkYsRQX61ySNNj7Qz4c7maQG7Oeu5l0iQrM3zLdhSi+AsPis09jhG3X9iFnkVHP97ZdN53zYMrF4
+uONVxAAKfoetot8gG4vJdIAFMdVbOFKaApi+0S+Ify5i/tpYRrPFIYCJCKYPuqzn6crWEWKcss8
CAfmI/Ep+ZvAbKSW7/5quapzCZ2PUny03liLChbfDD3gHw5Dd9ov6qGnSJaxIhSgO+AF6oeGjee0
1vFLLYQlqQZV7ot2jFLQSdCjvoOC0ZbGQCgg1vuYew==
=/uB5
-----END PGP SIGNATURE-----

--zycez8IXuPu1TuzFM3LH93k9FpTZ401qo--


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 10:14:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 10:14:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226707.391855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHwe-0000QA-5e; Wed, 17 Nov 2021 10:13:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226707.391855; Wed, 17 Nov 2021 10:13:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnHwe-0000Q3-2M; Wed, 17 Nov 2021 10:13:36 +0000
Received: by outflank-mailman (input) for mailman id 226707;
 Wed, 17 Nov 2021 10:13:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnHwc-0000Px-3n
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 10:13:34 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04705c7a-478f-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 11:13:32 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-3-0A4r5O50NHiE0B0ertWQKQ-1; Wed, 17 Nov 2021 11:13:31 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5597.eurprd04.prod.outlook.com (2603:10a6:803:dd::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Wed, 17 Nov
 2021 10:13:28 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 10:13:28 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0100.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:8f::41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Wed, 17 Nov 2021 10:13:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04705c7a-478f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637144012;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OCQ/QzpTqOIKLp1pBx8paecAmrROgusf5Bv7gM0fHn0=;
	b=TQLf+JGpj1ub8Ryn4nqw2wdIeS2kZz0fDYeFwKyHAoIG1HMH/pzg+Xsk8yb9JADPdv6Cse
	FLMJyswg1Ivl8iNvtgJNEfMSfs5Qp9Vd0aIwcJMvdy/nGAiYOHst6Iq+c6MTkrcxt7mJyE
	j/J8mw02xB9/PF2MaHQlJkc6XuPiCaM=
X-MC-Unique: 0A4r5O50NHiE0B0ertWQKQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SGTBJyVjlSt0tmKAMAvE8jJagdCjWfUwIxYY5iWSuWsMnJMK4iWQygDFcsVogXFaR3x4ZDWSOr0RF9EhLidxNTlxUXUb+AUTac8jRCfXyAG073h3fba3YEe6n3Rhi/wrXNow3stIfTD042+fNZZY0D+3qxnM6emYZwlZD06w/n/yzzz5oYVsWuIYPl132DqnxDMSVv3HL67rgYxdxWrPfZ14w2p6prkC7YiiP6c0HhF7ZrTsQe6Dkd9MztAPv9Njpe0JfFesbs/e7FBPGz/I7QB3cb5vV/3ZhimKUTu2v3q2cHYwkJUPnhwLueCWiLGJdfnQptIivH3GMXiUgUAzlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=g5AV2r+Tz9iMhR9vqiGN1HI9l9TcbDfXOWoBFwMLJwY=;
 b=mDqcVrPotXDSYezrfbT8Txx/pLhucBeyE6Tp6wh/oj+r276Mq8xYMzQ/A781RaakWHzLINb61pTV7O7cC5nUJLJoKcSceQbLBF5bD16BoJjAVPGyIFrG72XgIcScZ6HJWLT3dDKvm7GOLb9xo4qIiknj2Mp8J8E9X5K+Vr+bJqkStpNAUFVfkQZASO0MON8sAHnwdQSswLOBZxVpROQnihjr8m+DAHI7ytKAmD0ebfymbrQHW/7PfO7SVBey5lC6NVFYzn1tDq+q9XfVbHxsm+9JkhWZIyIaRAOrrbE23HExDNSmNq9f0wYmqRdQm3+5eTRxAp20K3Ub0tTMYp1Ekw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fe31a1b4-8c66-701d-f951-6426fa72252c@suse.com>
Date: Wed, 17 Nov 2021 11:13:27 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: PCI pass-through vs PoD
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony Perard <anthony.perard@citrix.com>, Ian Jackson
 <iwj@xenproject.org>, Paul Durrant <paul@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
References: <b6d598cd-c244-2b7f-c731-fe839df3382e@suse.com>
 <b62a87ca-b68f-76fd-51c6-114e8b8e125b@suse.com>
 <YZTDkNRY5pMLFUR6@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZTDkNRY5pMLFUR6@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P194CA0100.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:8f::41) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: dd567f4d-3d3c-4e85-547c-08d9a9b2e65b
X-MS-TrafficTypeDiagnostic: VI1PR04MB5597:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5597F2F3C5336E90D84B9694B39A9@VI1PR04MB5597.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NfpOr9R5x7ukpwhzm/IN33bcYrvdr1oMyUj4IpEyloE/je8q8QJVFNrr11QyisJTKN8EthioVhusoErhOEpn9YPwFFgJpnQ+8atiDBozePlSFhQZ3gGVjwL62G/S08hSUutByKPuSQolwwxtZUG16iRzMSwpBPIR++QvBNzopeKLyZ6gSb82nescG6SFCQ/xsViAVzt+MTh5gt1YpbiPospBqm3eQUCD+bIgIMLO89VOHgn126LaKZv+ydOQeINIv9UJzPoh8zKWFj8VydaPIEYXtV9mKVefQIWiH6U6RMIPdXnv6V9pI6UYLpw3f7j2ZczZZPlzNcVOJvT8S3mtCoCojIDLZHuWriWk96AoAhz+/5h+U11+YYESYsVw82l05ufGCuNnag9RF5RItfMPoeNOCvpCn/G1foOI6jPJxKoJ2PWF0K2mtcIZzpqUzti45KpT9s7DpBdWLUNUJsbZ9CmZF2UM5zgLZq4y7hR6afpgHCmDigN1mld8KeufIWYaaDZNPbVy0bPyd5LdisqfOnmZjGtdppSeOzHqS4l96pJZUNMo9KDGApWP848pZdtH1hpTARTWa1n64QZRoZb1frascEp0sX9VqPMSDe+3O8sX/fCW5zSFY8WCYiCY+VUAXXiXruz7k9wBpm4g3G7jsiDbIwrj961HSP0A/kWl7btsyo9gf4cLHFAmHk+PWkTXp5QcXOprjhbzSE5El9DM2qa4BAmefe5eSdqZwY9m+Jc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(66476007)(26005)(4326008)(66946007)(66556008)(5660300002)(186003)(31686004)(36756003)(6916009)(31696002)(2616005)(83380400001)(2906002)(38100700002)(3480700007)(86362001)(316002)(8936002)(508600001)(16576012)(54906003)(6486002)(8676002)(53546011)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?SvmRKecpq6lrJnqirK59q8RqM3A49rETxcIC2Jjmz4MePybT7Hcwci/X3H8L?=
 =?us-ascii?Q?i/cqLjxp4Z/0mJWeXNDClv1WPSCTMoTNftDnz09629g3KuwYAleWXHwB0QmI?=
 =?us-ascii?Q?I70opZsKyLWzjmqPyTw0j7off75lcAlIdlqG7dubpHtCXoRJ6p/lhHKuMjpS?=
 =?us-ascii?Q?bzAB77wG7Otnd0NupDMJBqD6ECDsvj3t/MgBfxiYWzD1I+s2x07b9YD/C+O0?=
 =?us-ascii?Q?WaWA17bBIfEFNgByDrENvyINfjwi4zY+Xrgf8LSctcdci1TPaJAtL3iokqFy?=
 =?us-ascii?Q?cBe7dTATOpGiCbwSHY/TjTWIQlqlJhOJkdUaScI7uGFZHDrOcnAVve95IUQd?=
 =?us-ascii?Q?nBtz6jcFjYRNQFyOzZwIJPsVal6HIdpNEI3T7h1ihzNiUusouSAAg2y2+jxM?=
 =?us-ascii?Q?8gQKbYIViG3ZRMV1d8KvX2P8PLfnWNK4Ag3whISAX8TEHnj0bfGpQ5/5GXHS?=
 =?us-ascii?Q?3p9GrOXlsQL1Xbo4BSPPIphoCfTCBQt5lb4kx85ztkLCM2Lo3wxQesZPVP0r?=
 =?us-ascii?Q?n7oZYspg1fwO42fLr3voQ/T7vRKmTesQygAliI8wOZxAxEGahNj5gva2jf++?=
 =?us-ascii?Q?l3ptg9k4F5Br5I2W9fIkalwiU1cEKZrvPujOLaXjrn1BfKI1iywlwKQB5fsu?=
 =?us-ascii?Q?RF5yvI8BFkl9PnICdQm1hwbXm8LIIM99i9h37jg6i7gc4AoRVYOYqDo5AR6x?=
 =?us-ascii?Q?4TwaSIF060Tlj7HX07SQEV5KDif6kKZjJ3zT+NkA1Lf4vgaMjLjLNy6G6puw?=
 =?us-ascii?Q?7BgqmDiobcmCMRc2EiMAd7Kqyth09pYZj1Nqz/mo03WV7EAr2NF6s6m5YVm8?=
 =?us-ascii?Q?L7b7OH9I5jD/rqxxls0klGeLrx3yf4syluz5leA1ykgDWIXOSinuFGe56mgQ?=
 =?us-ascii?Q?rrXzyXia0bzpfeuKwyB2uAoFVwZiKSqjmaZGTfVnIWFeLcdoARjFCxXz4wRg?=
 =?us-ascii?Q?MVc8geZJ3DqdeLCQBkkBzwe7W5ZW+mPONkyB91HFMg78I9ZV7SbsxSu50yDs?=
 =?us-ascii?Q?ouLiX4f/9Yj4mrr6THqENxD3XW5qtoyku9bjEKUc9Mnjv60T/WZ9mXeGsjrc?=
 =?us-ascii?Q?vYI16X38hFmQRO1nwHzXzr/78koaNyvkIqAVns0x1LyvcOHGYfKTr8Veo9UF?=
 =?us-ascii?Q?uHZV3mK59cS6Ch/YuzyV+uj9akDvWQeQVp69JK9+edRZGjDaY8ELr6B/pbGs?=
 =?us-ascii?Q?U9jhMz5MES5sWYZied8dOtJmMQjXwCw/KTid6u5PBey0j5WkC7SwsyxDEs1x?=
 =?us-ascii?Q?fE5nhSCTSCX3mmzyWgFeIrPXoy+cbegYfLvESMNQh4TbMTkcIVDKFPXSTa2H?=
 =?us-ascii?Q?m5LqisxibxlIcSqo9XxPi9R7PjG7UpRM4ek1vGD3brnZYUKr4by5UCXUD+Da?=
 =?us-ascii?Q?T0l1laOJmyxqjxUsg04dK983yq475o8ZMnaJhfxzV1A2bW7fXaGlDPYY0SyS?=
 =?us-ascii?Q?64PnxpO+9XY8b80IpxKPGT4p98wyIr4SDtRhjCR6kn0IooxcOkPwm0rgCOA/?=
 =?us-ascii?Q?pTASZ5KUZnDMuxgz05H5cyTdBqqvJKm/0qiMdl6uA8DePkgm2BkgM/qdnBBZ?=
 =?us-ascii?Q?xZS0sr7khih1gH3PlBUC+hU7DfXY6YkXmDv9hDKORJYqNs+yQXBSISPruOb3?=
 =?us-ascii?Q?x63cW0osWHuWju7E+4kn0k4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dd567f4d-3d3c-4e85-547c-08d9a9b2e65b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 10:13:28.5352
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ps3OmovjDg7bbbls9RxqTNRjHFWAZ53BiuvliDSlqKC5UPyfEZCvi2V1NFT51xb4AQ9UAN2FUmSzGH8TUQdICg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5597

On 17.11.2021 09:55, Roger Pau Monn=C3=A9 wrote:
> On Wed, Nov 17, 2021 at 09:39:17AM +0100, Jan Beulich wrote:
>> On 13.09.2021 11:02, Jan Beulich wrote:
>>> libxl__domain_config_setdefault() checks whether PoD is going to be
>>> enabled and fails domain creation if at the same time devices would get
>>> assigned. Nevertheless setting up of IOMMU page tables is allowed.
>=20
> I'm unsure whether allowing enabling the IOMMU with PoD is the right
> thing to do, at least for our toolstack.

May I ask about the reasons of you being unsure?

>>> However, when later assigning a device to a domain which has IOMMU page
>>> tables, libxl__device_pci_add() does not appear to be concerned of PoD:
>>> - xc_test_assign_device() / XEN_DOMCTL_test_assign_device only check th=
e
>>>   device for being available to assign,
>>> - libxl__device_pci_setdefault() is only concerned about the RDM policy=
,
>>> - other functions called look to not be related to such checking at all=
.
>>
>> I've now verified this to be the case. In fact creating the guest and
>> assigning it a device while the guest still sits in the boot loader
>> allowed the (oldish) Linux guest I've been using to recognize the device
>> (and hence load its driver) even without any hotplug driver. Obviously
>> while still in the boot loader ...
>>
>>> IMO assignment should fail if pod.count !=3D pod.entry_count,
>>
>> ... this holds, and hence assignment should have failed.
>>
>> IOW this approach currently is a simple "workaround" to avoid the "PCI
>> device assignment for HVM guest failed due to PoD enabled" error upon
>> domain creation.
>>
>> I'll see if I can find a reasonable place to add the missing check; I'm
>> less certain about ...
>>
>>> and all PoD
>>> entries should be resolved otherwise (whether explicitly by the
>>> hypervisor or through some suitable existing hypercalls - didn't check
>>> yet whether there are any reasonable candidates - by the tool stack is
>>> secondary).
>>
>> ... the approach to take here.
>=20
> I think forcing all entries to be resolved would be unexpected when
> assigning a device.
>=20
> I would rather print a message saying that either the guest must
> balloon down to the requested amount of memory, or that all entries
> should be resolved (ie: using mem-set to match the mem-max value).

But ballooning down alone doesn't help. That only ensures there is
enough memory in the PoD cache to fill all PoD entries. The PoD
entries will get replaced (resolved) only as they get touched. That
touching is what I call "resolving them", and what would be needed
for assignment to be safe (for the guest). Expecting the guest to
do anything about this is imo not very reasonable; it can only be
tool stack or the hypervisor effecting this.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 10:21:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 10:21:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226712.391866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnI4U-0001qk-0t; Wed, 17 Nov 2021 10:21:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226712.391866; Wed, 17 Nov 2021 10:21:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnI4T-0001qd-Ti; Wed, 17 Nov 2021 10:21:41 +0000
Received: by outflank-mailman (input) for mailman id 226712;
 Wed, 17 Nov 2021 10:21:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnI4T-0001qX-3w
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 10:21:41 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 27270fa6-4790-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 11:21:40 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-34-mnWt1ky-Nmu8TMNm9wXpxg-1; Wed, 17 Nov 2021 11:21:38 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3534.eurprd04.prod.outlook.com (2603:10a6:803:8::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov
 2021 10:21:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 10:21:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR0301CA0051.eurprd03.prod.outlook.com (2603:10a6:20b:469::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Wed, 17 Nov 2021 10:21:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27270fa6-4790-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637144499;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=+IkfjkCzUnC8KNynMjolizLgIjAorxKZeGoesin4bMk=;
	b=m4RM7StODs/oPAne+PSjFhcKVpr+pzoO9bgz/nmTQP+9V6Hb4O92zS4xLaL0//sqEEtOTO
	ClIPRg2w/DyACScuLT+UHR2Nbw4ytZQesAttndoyhWNLbdzNnAnqB7zvMyy0U/cTpqSekE
	q/oy9nV9vISRUzxmKafIJQ3w+G+r+uU=
X-MC-Unique: mnWt1ky-Nmu8TMNm9wXpxg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=C4ILeQjZYp5f51m/J/OHKWP7vaNXRzkRfXUtz3QfBH9yqE7K2Qbir5+ydzyBuyCA/+STtsySMwSwipsCa8h+tKbUjgwXjIw9bs6FSJ2PCxIisQ2jaV8XnoNzfVm+0pv0GoiUPmTss1eSDt14govnMCuaSpqa3VkwvHtvs/DdH3K7ZrRA3cJzvFSs32rrKLLdIB9lf/Ll1vjQQLR+qaG8OJElPC71CpPKmwmfn4a0mwX6vWXN7nGOY7ZD2w0EL1lEMe70gK9CWVLcZzz0NSfzYfmilCyszVteS4sthRy8cmCIIkbQHVExl85CRc8io9XKcZ1UTkOEJlFkKPHp7HltFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8wjtB97RtX2/c1qiZXzGTSawX168GUcaFVbcDTQC8UI=;
 b=P5QjH19TkBP4VzfcQXF4LUqE1Gq5H2CRL60nghFZOpWHypNh6W6iKUt/qQPVGYlzQG7j3Q1XdKzLjSKdr5ilt9ol8jMDW6f4sBlkh/Zi2/rhJsRKr5yqW9c6JwMyyIyvNqBmvLe/vyRZ4Cip7UucPMmcFCbrZpOY0GiYnFZAF104PeuoF3C+/IA4aUUDQcys7h8aCQf8XWeA31fOjxCNQn0u040Z1ub6HVb/Hr4uf655jWngo0Q1mqJ1tDQ4RoH1KW1oRo/bUlbFcT3QKFcbzTmv8RlVVdrScKRq9/+lcw/P7WKJGIK5zWbb1BtGB0ff6bWbmB9vj0o6HWVJqOGuxg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0994aad7-0e2b-a78c-5b23-422c93dea353@suse.com>
Date: Wed, 17 Nov 2021 11:21:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 1/2] CHANGELOG: set Xen 4.15 release date
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
CC: Ian Jackson <iwj@xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-2-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211117095338.14947-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR0301CA0051.eurprd03.prod.outlook.com
 (2603:10a6:20b:469::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 84663645-a1a9-4ee2-4add-08d9a9b40932
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3534:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3534278442B1AB801F7C31F4B39A9@VI1PR0402MB3534.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:628;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	h/w48DhlTXprWSgHOWsMeMRJmQDLC0fs0o30vykEQXHGrBI0nQRAHePvVJcdU8DLr69RWrec3TBT8hMD2HPm0H3YRsGkp75GtfvWsulhIX2IcLQnNaJ4Xo/h73FjWAN9ocm8NF/nNkvB9eJEu0l+79qrPpcU7Sc2GUN68zQeV3GaM/K89yhdPm/bDeUu85qi+BcwJOCb3Ou42rXJkzuGcqFmxthDwPYu0/jg3bP0g2etm9mLIomUl8H7i87oekp5E600xh2PLsnOmh6VSUt9TmWnl/b58xzcOWtGSKC8L8lTjCrLFwDhdJSRjOLVywWh7FRyykSEL6pXvM9uqd+LIWoIyWYY3wJsNDfGBzbuG/7KRdu+dkZfE4fdosHAm9jaGZUAkSpAX9Skm2/yGOPLRkExIIdp/rgme4ZxGwi2uHa2T+kbrjF9FSLyUh+AR9v2s0vAamWfM8KskhkwtcwcHtnhOmbN5p5aEdqTPiAMYtW1oI4JTGHc5K0ib8LoyziOb52Azl8lheLfp+T86/PLlF2XAAPTk4OyuolTosD+VIIO954L9WGyCzo7iwGPsiftEhYh+W1V3ltGDXdSBUte2VpLgsh1qpwTw1YBbd8YPjHBqM53Aez0mvpJRjg+PrYLpc9h2oaoemHQL43/gQA2oh8hqzwsE+8XKhDPZ6n/IpBWLXcYCRK+NRhaLyFUBMSIl8w5dYCww1TWyASlHCKOI0YcYTMtUdROWOIGA1ZEw7yhD7Dxb6R3SnvGZZhy00sn8yWpke10SoESyV2ExrnfTKEy2qTgy0xMpD+xGzmP07zlhvqSAppj9/K6KVO7V6FbJ8Af9kV6h5WQahBuEA8Y/dH9WaLdbwbRCoLJA/frtqXXjxmf5JE47ymnL+pHzLm/Cm2a8KxKVkfvXqPOxn0r+A==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(16576012)(26005)(8936002)(8676002)(6916009)(54906003)(5660300002)(2906002)(4744005)(186003)(316002)(36756003)(38100700002)(86362001)(956004)(6486002)(2616005)(66556008)(66476007)(508600001)(31696002)(66946007)(83380400001)(4326008)(53546011)(31686004)(59356011)(219803003)(207903002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Rc/mqBt8CX5CqgfoiUWxmDCVNuzuVu42n1EtmPotGIav/c7obnlST2m+nUiF?=
 =?us-ascii?Q?67NqxFz6KZhV6OD7LrHWNmWlsf6mZ5YaZfMI9Vl3b5/XqsF3rWPDDIJyI2FC?=
 =?us-ascii?Q?PM/MfHts9y7QA9ORaNIvrmcLraf+jMd/+LU29jM+5Z6fl/LoxDTz6jmi0J0I?=
 =?us-ascii?Q?SxDcoQLBX60CgSWybGpoRPI/7pOnKWEWMh53SRQfxcxXTZ0lQeOyPGWAit7i?=
 =?us-ascii?Q?UtPz1h86oWr1ZYUexDzZcOD2Bf6URMl4IXaE9K4CZpTBloKaUmkhaXjflXl+?=
 =?us-ascii?Q?Zao3g/dd5t0NEqDB7vXQ5n3/9ZYjoHYvJVkjND/qXonpwpno7CLzUZLxTujg?=
 =?us-ascii?Q?B4IvH3RfyBotfQDsWsuN3cRHo92yOtv3lt3EA0LKKXM2X0GyZZMPwOuGPO0l?=
 =?us-ascii?Q?gH5ajLTwReLji+HqLiv+eswtIMB9Djz32kuR0HKVBEu+gT6jzeu+v3McFiLd?=
 =?us-ascii?Q?12AJEObJwFUgWGuqoY+vYFuxE51FDWKk/9SRn9Kj2URKw6Qp7bhHyN0zZdPF?=
 =?us-ascii?Q?/IVi5YPiNySo9sJn2G+H9iMpBhDyz87WsvRr4z1ygUVH3b89TRZJWfZ0u2Nq?=
 =?us-ascii?Q?VQQh89o+dToxo+qWhdU2oubT+AZ8Pt44D8u1Vjq0nDQ2Yfny73GMh3D11jDK?=
 =?us-ascii?Q?1HE2jG4wMySgdsGZA3ZKWOslMLjzmiiGlc9wtSZbSHJVbLw4AgVQuPZQF3F+?=
 =?us-ascii?Q?5uH9VUzDd0d+a9xt6h80/oKeCKESnxhpgTZjDkrxp5IXj7jCrZ0uKWGrKxWy?=
 =?us-ascii?Q?nQU/YOH8L+1xcJzDtiiK1uoXRxlq9KcE3nDCHLRrVclX0xs2G7iFF2T86UTw?=
 =?us-ascii?Q?IyyIzBHkrijjpxba4BeAMEukPZFH7NE9X23aIQcnQp8a5/pp+32swRirGn/b?=
 =?us-ascii?Q?ZAbOeAkXfpvubdNpl8TlkiExUlQuRYF9Nmk7w4p/8TussApBKbvRP0JzHwfK?=
 =?us-ascii?Q?+XxiyYjRc0Iro4Ud1EOzeSFFjf+cOJSBjDuC5cd6VypUs1gD1uYXnlKUAvT6?=
 =?us-ascii?Q?N0i5IyzxEXcyK0aOdrqSHdKjrYsDQLgeRPVIpD3oj9iPJdPoYs013cXQ0t5L?=
 =?us-ascii?Q?NWxthQfXQ7Gp6VA+2KsMqan22Zbt/kjDY4QzIZIX2EhEJif48ZLNIwhEcxvu?=
 =?us-ascii?Q?aAik0TBGsL8/cm9CXFpuA1SKd7+vocAx9FJLVnUIpIZZCZfaZJlo4OIoZ9e8?=
 =?us-ascii?Q?LSQLqXsMSOXIOrscVBQlDWfrMw/XlhqHLhD1zoUBXqQV1N9jaUPHGOkhJDiE?=
 =?us-ascii?Q?sPah0A0vTs8FVsVh+qx12/e3Qj7u3wRufvp4DrZkQPkAAj1O15D5olkvpW96?=
 =?us-ascii?Q?gkSOdrYyqq6F2+pk73Xh8ad2t6h6SSt5qSoc3mywgN5W5EoqqzCPOVmtle5n?=
 =?us-ascii?Q?9xc3fCzhGRTeEE1XkHtrnVN8smGOkf4OJ57O3wqEnCgRh4ORGzjitUy/zmL7?=
 =?us-ascii?Q?TTu6L3J2jfvMEXs24hgT+iDosQg5zUr7KrvblEgVnn7stjae6gYpui5Qx6sT?=
 =?us-ascii?Q?Tv8SGUDQLiJK16Wghe0ITTguivUGelc0bk9Wd+4YbX1cRJ+S/F1l0jgtNgn1?=
 =?us-ascii?Q?Ixy431wFDb3t1X5LE3ryAL6CXmC225Ufp5EaM68jql/IEAg6PRRaJuD53vID?=
 =?us-ascii?Q?T9XvcnRpgC6EDw/YNmI3r+g=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 84663645-a1a9-4ee2-4add-08d9a9b40932
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 10:21:36.4193
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sPqWeV+AQ+e/IhZWXC9b87HP9XgC17VKv4ODDLRBORqzGKMjM6GVub1+3zlDfAotvGYCRogncSWEc+ZLECJNEA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3534

On 17.11.2021 10:53, Roger Pau Monne wrote:
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>

I'm puzzled how we managed to have missed that.

> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -22,7 +22,7 @@ The format is based on [Keep a Changelog](https://keepa=
changelog.com/en/1.0.0/)
>     no longer be built per default. In order to be able to use those, con=
figure needs to
>     be called with "--enable-qemu-traditional" as parameter.
> =20
> -## [4.15.0 UNRELEASED](https://xenbits.xen.org/gitweb/?p=3Dxen.git;a=3Ds=
hortlog;h=3DRELEASE-4.15.0) - TBD
> +## [4.15.0](https://xenbits.xen.org/gitweb/?p=3Dxen.git;a=3Dshortlog;h=
=3DRELEASE-4.15.0) - 2021-04-08

One day off is not really a problem, but I wonder how you ended up with the
8th. The tag was made on the 7th, and the commit that was tagged had been
made on the 6th.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 10:26:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 10:26:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226717.391877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnI8t-0002T3-Ka; Wed, 17 Nov 2021 10:26:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226717.391877; Wed, 17 Nov 2021 10:26:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnI8t-0002Sw-Gv; Wed, 17 Nov 2021 10:26:15 +0000
Received: by outflank-mailman (input) for mailman id 226717;
 Wed, 17 Nov 2021 10:26:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnI8s-0002Sq-7F
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 10:26:14 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnI8r-0005LU-5s; Wed, 17 Nov 2021 10:26:13 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=[192.168.21.213]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnI8q-00075C-Vc; Wed, 17 Nov 2021 10:26:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=/DgogtAJFgjgI5KYerRuNrL4UfdBHJ9arKaEz4qvZ80=; b=iK3IXPENOAKikBSDPleTG9eNp5
	amJS91ej33l202DSXJC+Q2Fkrm4iAIayFfdmIh4OT/s0ycLTdXC4do/q/7q6m/UBFqTzjCjBXzmYQ
	KR+s9ckyRQelzIXBudVJ3/0GMi34E1iOnQjmfatj8g9tze6bb5mwdGl4CnzwNIjwwqCc=;
Message-ID: <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
Date: Wed, 17 Nov 2021 10:26:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Juergen Gross <jgross@suse.com>, Dario Faggioli <dfaggioli@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211117095711.26596-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 17/11/2021 09:57, Luca Fancellu wrote:
> Currently Xen creates a default cpupool0 that contains all the cpu brought up
> during boot and it assumes that the platform has only one kind of CPU.
> This assumption does not hold on big.LITTLE platform, but putting different
> type of CPU in the same cpupool can result in instability and security issues
> for the domains running on the pool.

I agree that you can't move a LITTLE vCPU to a big pCPU. However...

> 
> For this reason this serie introduces an architecture specific way to create
> different cpupool at boot time, this is particularly useful on ARM big.LITTLE
> platform where there might be the need to have different cpupools for each type
> of core, but also systems using NUMA can have different cpu pool for each node.

... from my understanding, all the vCPUs of a domain have to be in the 
same cpupool. So with this approach it is not possible:
    1) to have a mix of LITTLE and big vCPUs in the domain
    2) to create a domain spanning across two NUMA nodes

So I think we need to make sure that any solutions we go through will 
not prevent us to implement those setups.

I can see two options here:
   1) Allowing a domain vCPUs to be on a different cpupool
   2) Introducing CPU class (see [1])

I can't remember why Dario suggested 2) rather than 1) in the past. 
@Dario, do you remember it?

Cheers,

[1] https://lore.kernel.org/xen-devel/1481135379.3445.142.camel@citrix.com/

> 
> To test this serie, the hmp_unsafe Xen boot argument is passed to allow Xen
> starting different CPUs from the boot core.
> 
> Luca Fancellu (2):
>    xen/cpupool: Create different cpupools at boot time
>    tools/cpupools: Give a name to unnamed cpupools
> 
>   tools/libs/light/libxl_utils.c | 13 ++++--
>   xen/arch/arm/Kconfig           | 15 ++++++
>   xen/arch/arm/Makefile          |  1 +
>   xen/arch/arm/cpupool.c         | 84 ++++++++++++++++++++++++++++++++++
>   xen/common/sched/cpupool.c     |  5 +-
>   xen/include/xen/cpupool.h      | 30 ++++++++++++
>   6 files changed, 142 insertions(+), 6 deletions(-)
>   create mode 100644 xen/arch/arm/cpupool.c
>   create mode 100644 xen/include/xen/cpupool.h
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 10:29:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 10:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226723.391888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIC2-00036z-3a; Wed, 17 Nov 2021 10:29:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226723.391888; Wed, 17 Nov 2021 10:29:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIC1-00036s-Vs; Wed, 17 Nov 2021 10:29:29 +0000
Received: by outflank-mailman (input) for mailman id 226723;
 Wed, 17 Nov 2021 10:29:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=74+5=QE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnIC0-00036m-6x
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 10:29:28 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3bb8093a-4791-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 11:29:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3bb8093a-4791-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637144966;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=OzN2ANRw0Bx1B/Cw1PBWIhM0wENT9s73Pj2IaNDPCxM=;
  b=ERH8i1AwqVsxrvnJatZFGKhzi4WDtaF/9R7UvnpTpRi4O3zEhAtHUG+W
   ofNZnof1PuObTl/QRBcdgCIv08B/NT/HaH7tYhEhemiYyJiGR5UVeI8dQ
   BzePBP7gYqgzLoWZF2YVO2UMQvj2BId1NVp5iuHirEr15YmqSl0sY0lFS
   E=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 9ugRz5hHfwXeOlG4lSxeb9F7TGMiKnPcnd1QkhcaemSr2D0zT0xXxY5y+BOReHKQeqPQ1hgxyG
 KJ3nFZuo0awKHIYKf9T2dSlCRTORf+WhhfG/s4qb4wPCFbRR8hLaPP2tTgEzryfdyTZ6VZc5+h
 q3yQGI6rXDlyDdTsLeR6HiufPo8dy002V1aUw0gS5Pt2CdSZjaxqUr6v7tRk2Rc6fysqQF8/ez
 xCRRkfzALZtCqsiPs/xnyqYTckXj08BqBm3IMnOlHeo1l5X/3vK22qHOu/z5Bsab6d0Z7vV6Wz
 zuq2CIegWeyXTBULvPfvD6Ei
X-SBRS: 5.1
X-MesageID: 58016358
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:pmFnuqifYybzqR5WCl37/yUXX1614RcKZh0ujC45NGQN5FlHY01je
 htvXzvXO6ncamTzf9BybI/ioUxXsMSEz9U1HQZp/yw3RiMb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cx3oDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1Ts5uzawEPY5fdmcImXUZ1VDxzHIx/reqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t1pgXQ62DN
 6L1bxJoVkvdShpva2weN7w6jMmSgV3uYTNx/Qf9Sa0fvDGIkV0ZPKLWGNHSf9mXQ8RJjwCdr
 2TP8GnjKgEXMsSFzjiI+W7qgfXA9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03A
 04e9zcqrKMy3Fe2VdS7VBq9yFaFoRw0S9dWC/c96gyG1uzT+QnxO4QfZmcfMpp87pZwHGF0k
 A/S9z/0OdBxmKOTTnG/8JHJlyKzHxMbckJFeCIlbDJQtrEPv7oPph7IS99iFou8gdv0BSz8z
 li2kcQuu1kApZVVjvvmpDgrlxrp/8GUFVBtum07S0r8tlshDLNJcbBE/rQyARxoCI+CBmeMs
 3Ef8yR1xLBfVMrd/MBhrQhkIV1I2xpnGGGM6bKMN8N4n9hIx5JFVdoIiN2ZDB03WvvogRezP
 CfuVfp5vfe/xkeCY65teJ6WAM8316XmHtmNfqmKNYUWMsctK1PdrXwGiausM4bFyhNEfUYXY
 8nzTCpRJSxCVfQPIMSeGY/xLoPHNghhnDiOFPgXPjys0KaEZW79dFv2GADmUwzN14vd+F+92
 48Gb6OikkwDOMWjMni/2dNCdjgicClkba0aXuQKL4Zv1CI9Qzp/YxIQqJt8E7FYc1N9yr2Vo
 yrjAxAAkzISRxTvcG23V5yqU5u2Nb5XpnMnJy08e1Gu3nkoe4G066kDMZAweNEaGCZLlJaYl
 tEJJJeNBOphUDPC92hPZJXxttU6Jh+qmRiPL2yuZz1mJ8xsQAnA+9nFeArz9XZRUnrr5JVm+
 7DwhBnGRZcjRhh5CJqEYvyY0F7s72MWn/h/XhWUL4ALKlns6oVjNwf4kuQzf5MXMRzGyzbDj
 1SWDB4UqPPjuYgw9NWV16mIo53wS7l1H1ZAHnmd5rGzbHGI8m2myI5GceCJYTGCCz+kpPT8P
 b1YlqiuPucGkVBGt5tHP4xqla9utcHyo7J6zxh/GCmZZVqcFb49cGKN2tNCt/MRy+YB6xe2Q
 E+G5vJTJa6NZJH+CFcUKQcoMraD2PUTlmWA5Pg5Ohyntip+/b7BWkROJRiczidaKeItYo8ix
 O4gvu8Q6hC+1UV2YorX0HgM+jTeNGEEXoUmqooeUd3ihQccw11fZYDRV33t65aVZtQQakQnL
 1d4XkYZa2iwEqYaT0cOKA==
IronPort-HdrOrdr: A9a23:vKVTP6xLbzPJuH/6cwFRKrPwEL1zdoMgy1knxilNoHtuA6ilfq
 GV7ZEmPHDP+VUssR0b+OxoW5PvfZq/z+8T3WB5B97LNmTbUQOTXedfBODZsl/d8kPFltK1/J
 0QCpSXV7bLZmSS9/yU3OATKadZ/DD9ysyVuds=
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="58016358"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aBJVwxcJUXnVUijqq1Bldd7aImwKMzxzlhosumJRlsndLEVHozLQ5e/WqgjsKPMaIXZkhuWVDcs/6H8JwW34TKi2Lumv3Y1wZuOFRydDHaopr7Zx67tmpLX7GS35YN0ILOXkp3/X7XSS1/A9mQwPtOiakW9H8FH5DaQ6AvZC6sPbSRQl7QZO35BB9xlxMDVn87eE+1L96hNmSMx5GkjATemNt0t4sd+4261uX21w4nYKT4sCdUO1DcgbgzAYwsL9ycYxXtZiWhkKQjPV3+hnNEtar/ao9jCKFlWMh/DwIWJqFH5CJoGmnPDXR/yOAlA8rw4qCS817nCgG/vd7fue9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=B6zGlFseuIs70eUpOKiqS0UQx1XrROLLCTaY9AWaHo4=;
 b=W6aOl/L1G61MitA9RS8QVBX6WgHy/PfAC9F+V5q47s8IbSsLPTmdWVV6wKRji6SSao7qd77PbrTkcTaHWF78UdAYhKQbt1w4eXWe1qGMDnVUMfE2zRXECH46y2LJ/i9bLkYY7TeCGIFwYdyTG2hRjAEOF3p1nerH/EBQIZlZav9XDEMzzBlrA4vf8d+Yt7vOnZI7OLFUYi7/DUCO128aE+owJ9wuSFEIPHHY7PISt/VIPpFSuFY7K1BkwZXF1Yii9f/A7g2V+9FMmp5ez8zjywEFcD+Z1m8RsHu3+FlcIRBmvkPUMwHW9Slo6R90Oiz7Nht8Zyt6Ys1M+cK0zVK2xA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=B6zGlFseuIs70eUpOKiqS0UQx1XrROLLCTaY9AWaHo4=;
 b=IvzL5X/pvIk13+rab+3klA0nMVLDijQrH1IovsE6QLaCsLKKB7DRVFd69326vsboBeEkPxd7b0WmQl8cFsIYYOWONTWD0U3ab/EwIF7VJNVC2dS0fsxmKv4N3gmUJ7ct2GbZAHbVP+McwTvn0/Um8YLWYHtg9YBW69zJteoXnwI=
Date: Wed, 17 Nov 2021 11:29:09 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Ian Jackson <iwj@xenproject.org>, Community Manager
	<community.manager@xenproject.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16 1/2] CHANGELOG: set Xen 4.15 release date
Message-ID: <YZTZdSfVYFwqR1I4@Air-de-Roger>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-2-roger.pau@citrix.com>
 <0994aad7-0e2b-a78c-5b23-422c93dea353@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0994aad7-0e2b-a78c-5b23-422c93dea353@suse.com>
X-ClientProxiedBy: PR3PR09CA0029.eurprd09.prod.outlook.com
 (2603:10a6:102:b7::34) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c8852da3-9699-4620-20c3-08d9a9b51b08
X-MS-TrafficTypeDiagnostic: DM5PR03MB3148:
X-Microsoft-Antispam-PRVS: <DM5PR03MB3148170D5FA121D6CA27A62A8F9A9@DM5PR03MB3148.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:439;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: /NhP2Quq8EoXlgWSdVR5VXxGnf/txdRbtMvvTkog5EEg5pTecmp9Mi4GCpE696Ge2ehCDMN/AYWk81r/S9EIdw6H0CatbeFsgF1vPK5ckarpfkjlXQI8TbGa5NrsIRpELKi4jo5e8bUsO67lRvUYevQOUXL2Nmq0Fuxsl9zhikbQox9AnlXuldHJSS0BL/ssnb3p7ecvQeatI/L/MHgvba5sFC3TaVIbGmT/Ji2I6z8G12juYx+NOMWz5gc09VBRF++CwxornKkCcUk02ODiE6OGQESGd4d+F0zb38tKsdjIEGJaYtKM8G1vrWU1Pgtk6tR3osayggp3WvNBjRJt9TF4s2M4vuYF5VWCmMOOY3gadu2wsUZQqwMThDXHXR+XQI6k/+7+qpdUTR3bCO+p8JXsYmteM/vVzzBmb3Wxhi/39DYyJXyB1voSB80gbTuWQWHg4eUQjUYk7QcghnlwCPoZhBmCUvGmb/uk26DCoNhXOlUfNPEibcrlC1AaGHAYE5VgWD5VGgvWhOlO2sRFu8/l10i0azOGJFnuUZ5zWS0zo/ey9eLq85tKQsn+QsLVaJQ5HRCjnDnzCBX25Ugpo0kUDe74GAdxmgEpEzO9UITbDmx97F/8J8MDNepe2SgzcDsSdWtwK1dxFYWV4e+nD/HHeyY7POxvuP58ZJmez8UYNHLGs1Rum/M0rFll62HttgPgleQUsjMTi8Y1nmqU9PkniXIj2ZGCTnmVS6rQppLGPgcwUoALBdxnMWcT1j4XK8jiz5ODJUaBWDVBsbSwdRZs93eHjjkruX9eAQYIqKr2uGxVoqvScFEZ8LlErbE29YRjOhAS8x9POeXQ0+R6GJblw3MsqNV7nZWRcD5wadPSbVCtw740J6SHxGNFB1qt
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(66556008)(316002)(6486002)(82960400001)(6666004)(66946007)(83380400001)(4326008)(38100700002)(8676002)(508600001)(85182001)(5660300002)(186003)(66476007)(9686003)(6496006)(966005)(26005)(8936002)(86362001)(2906002)(53546011)(33716001)(54906003)(6916009)(956004)(59356011)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K1pmY2xtMUNyZjVlQ0NyNEx6VWh5UWc4blM0ZzJrRERxSExPaS94elJMRHJj?=
 =?utf-8?B?ZVVSdGZSRzJmNWFFY1FaalFQTGplTlJJRHd0eUptdFhnRVBrN0pNd09qZ1Q2?=
 =?utf-8?B?MlNwK240eE1GeFA1SjRYUUM0eFkvNkZzNFpMbENkcnhGdVkxZnJpaTVEYkI5?=
 =?utf-8?B?Z2hDNENHSXU5a2NtaWRnMzV4emlFdFlZWHFheE5sSGpENFNMQTV2bGtKbng2?=
 =?utf-8?B?TVl5RHV2V043a0R6aTl1Mm5NSmo0MFhrTTBLVkRYZ0FQQkNKS0dHcVhoMG5Q?=
 =?utf-8?B?cnlJc0hjam9zdWZVR0twYVA3WDFOUUR4TFBaZnBTTmFrQWZjcFVFdEJYQ2Zy?=
 =?utf-8?B?d0kyS05qM29QZkdkYlpJVk1FUDJLSC9Wc1NnWHc3bFlIQjVzM3lzUE5zWXZQ?=
 =?utf-8?B?cVA2dGdDTmhpTUZnamhFdVpWbExsNnl5czZKc012VnpDK3orc0RGcC82S3Bx?=
 =?utf-8?B?aVh3QndFSVRlRElCZU9PbWFpVmxkZ3hBYTIwQzlVQ0syekRUUFVtcVVuampJ?=
 =?utf-8?B?M05TaXFPSXBhVHg0MFZITTQrOUhxemZ5aTMvNERsZG9mSXRVTkFFQ3hERGMz?=
 =?utf-8?B?TExQMitGeWVkQ2MrL21UeVZPR1djVmxSb3p1SVhJamRseXFmTXhTekVXaWJP?=
 =?utf-8?B?YUxocUR3WGNRUVFNNnA4Z1VKdGNRL1pRNlpyZUQzNnFoV25PdTRnN1BaUitw?=
 =?utf-8?B?emxCWjFHaXd3QnYzWEhUQUNMenkxOHBOc0t1eThlUVhVM0xtQzFJb012UzMx?=
 =?utf-8?B?bng2V1JIcW5jNmlUOFdTdi80TkR2VXI1akxlWFBvY2xIam9DTFJhbmtlNld2?=
 =?utf-8?B?dEg4NCtTRXZhM08wNklTaG9WUFROSjdrcW9mZm5tdXZLeTNyTzlKVW1VSSsz?=
 =?utf-8?B?NkRpa2hoZ0hvSUUyaDAycSt3VlZ5UXg5MytpK2Y1RlNmcE5lZEphZVk0V2Vt?=
 =?utf-8?B?VjdDYllmL1crSG5qdGtaK1ZCam9uZkpTc3pkYWZqbWlOa2luaXR4L2lnVnlW?=
 =?utf-8?B?N0g5VE1lOGQ0ZjhkQ2pRZEJmMUNjUi8wbG1WT21UaElWR3pjYmpUWEhueDZw?=
 =?utf-8?B?NThuYVRaUlpkSXVwNXV4bmdUMU04bFFqakF5cGU2blZ1K3E4MU5oMy9iUXI2?=
 =?utf-8?B?RERlNTFvWjM3eERDOG9uOHNoU3R0OVJ1Qk5VVWRETW1xVExWZ00wZ21qSTJC?=
 =?utf-8?B?NkhqVzRrWlNudmRGWk5zYXJVNHgycGFJTDZDL0p1SlluTUowMmhIem1WNUJn?=
 =?utf-8?B?T3REQVljQ3E3c3l0aUFYL2lmMUNvcnJLVzE5Q1FHRFh6UlVHYyt5L21qVWhK?=
 =?utf-8?B?cTVubXF3cTJSdUVqZ0hvMHdaTmx4NWlwUFVDaXNzRVRzUzRXNU1MSkZUbzBF?=
 =?utf-8?B?My9EcnlTVFJUdjAzc3RGNEJ6MjdZdGlBWEdZUEhZM29XV3JkbGw1cFdnN1VZ?=
 =?utf-8?B?T3Jza2RZeEhwZlZqZkdFMkRZQ1ovdlNDUENRb1lhVWphMTQ5U3hML2xRa2Fv?=
 =?utf-8?B?bUpNLzJSUS9UeHhjZE4wREM2TnNPWXQwYWp3cmNXcjVsVUpvcURRTXFjT0tq?=
 =?utf-8?B?VHAxVkpyMWZGZjFIT0d6dmpCd1dhYUlTQ1JtSTB4QzNwaEJiN0U5YjVPRWNQ?=
 =?utf-8?B?dFBpQ2YzMDBZRStJdXBQSEVLT3ZmblhBT1BIdFdjck5OQVJjTCtWTktXNHBj?=
 =?utf-8?B?bytvZEFjNnRtcGVxbWxJT2lDZUVCdWo0SFdncE4vZ2ZLU25yeVYrRElDaVdu?=
 =?utf-8?B?SkxLRWpVbk9RdzFNRVI0TmdtTFVnVW5EODgwS09LMVFaSHRjbURWcHovQlZJ?=
 =?utf-8?B?Y1Z4SFZ3UFc0aVVOeXRCMHlBckhxTldiakZYZHpnRFcrK0NMaW44Sm1hRFky?=
 =?utf-8?B?cjJBYWkvcHJkYmh3R2x5MjFZWkgxUy9BbFBsRHhoWndRQjFtVUFvZzZQSlVy?=
 =?utf-8?B?dnN2T3FsRFZkSUlNUklzdHBFRXpCNWpnK0s4VTZpUEhlV1N4MGhlQzZPeFg4?=
 =?utf-8?B?VmJ3RTAxYmhHc3JXK3VjTnZ6MDdLT1Z3YWJoVjVnUEhHU2MxdlB0cUpKYVk1?=
 =?utf-8?B?Y09hVUtHdlNWTHRtMVVCcGNpN0IzTXFBNXJxMGN1dElqTUoyaGVCdjE1VFVO?=
 =?utf-8?B?Zm9ZcmF0bllLZlVtR2trVGVpS0RqdWtVbnFhazlnTUsvVDNXVEFZanNPeDVF?=
 =?utf-8?Q?8dJE5HuvLjk8SHAOwbTT9Yo=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: c8852da3-9699-4620-20c3-08d9a9b51b08
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 10:29:15.9209
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vH+Fu6H0Y/hetfGQlzBiClXZF21s593LbHzPadtFUySGYWRkhdOyUrPFWLg/Utw5UjWDNnkhBKkfv4/VaTiYmQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3148
X-OriginatorOrg: citrix.com

On Wed, Nov 17, 2021 at 11:21:34AM +0100, Jan Beulich wrote:
> On 17.11.2021 10:53, Roger Pau Monne wrote:
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> I'm puzzled how we managed to have missed that.
> 
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -22,7 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >     no longer be built per default. In order to be able to use those, configure needs to
> >     be called with "--enable-qemu-traditional" as parameter.
> >  
> > -## [4.15.0 UNRELEASED](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - TBD
> > +## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2021-04-08
> 
> One day off is not really a problem, but I wonder how you ended up with the
> 8th. The tag was made on the 7th, and the commit that was tagged had been
> made on the 6th.

Both the announcement and the blog post where on the 8th, so I think
that's the official release date, not really when the tag was made.

https://lists.xenproject.org/archives/html/xen-announce/2021-04/msg00001.html
https://xenproject.org/2021/04/08/xen-project-hypervisor-4-15/

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 10:41:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 10:41:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226728.391899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnINl-0005O1-At; Wed, 17 Nov 2021 10:41:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226728.391899; Wed, 17 Nov 2021 10:41:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnINl-0005Nu-73; Wed, 17 Nov 2021 10:41:37 +0000
Received: by outflank-mailman (input) for mailman id 226728;
 Wed, 17 Nov 2021 10:41:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Swqu=QE=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mnINk-0005Nn-1B
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 10:41:36 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef51e7f4-4792-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 11:41:34 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 5D9301FD29;
 Wed, 17 Nov 2021 10:41:34 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0685C13BDD;
 Wed, 17 Nov 2021 10:41:34 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id wHRoAF7clGGpGAAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 17 Nov 2021 10:41:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef51e7f4-4792-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637145694; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=EEKWKMWzx2ljeJwUQtLOlGW1E4SJH/wacWkq4l/VO3Y=;
	b=TnBYLbMaEtrF6bo75A6UDybLg5RChzbCSWrBLfpp++TIcfOz69IPfJ1+hVxFYwaDzAyGSp
	x6tbfGm271kiiHppgnQerSNu6dMvS7e1VJEDzHZx7SHa+rJpwDcfGmREmxmrrBcH0rZciy
	9TRrqQHJTbRV7EW5h7YOojlcUnOdrp4=
To: Julien Grall <julien@xen.org>, Luca Fancellu <luca.fancellu@arm.com>,
 xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
Message-ID: <88550762-0504-05a0-5692-2ddcd1076e52@suse.com>
Date: Wed, 17 Nov 2021 11:41:33 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="JYU24edbfhLgV9imTW6zN2pesYah40er0"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--JYU24edbfhLgV9imTW6zN2pesYah40er0
Content-Type: multipart/mixed; boundary="87M0gadKbhP0kG4ppqQnuV2TAZ1cnUYFl";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, Luca Fancellu <luca.fancellu@arm.com>,
 xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <88550762-0504-05a0-5692-2ddcd1076e52@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
In-Reply-To: <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>

--87M0gadKbhP0kG4ppqQnuV2TAZ1cnUYFl
Content-Type: multipart/mixed;
 boundary="------------D5293703A024B322732BF036"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------D5293703A024B322732BF036
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 17.11.21 11:26, Julien Grall wrote:
> Hi Luca,
>=20
> On 17/11/2021 09:57, Luca Fancellu wrote:
>> Currently Xen creates a default cpupool0 that contains all the cpu=20
>> brought up
>> during boot and it assumes that the platform has only one kind of CPU.=

>> This assumption does not hold on big.LITTLE platform, but putting=20
>> different
>> type of CPU in the same cpupool can result in instability and security=
=20
>> issues
>> for the domains running on the pool.
>=20
> I agree that you can't move a LITTLE vCPU to a big pCPU. However...
>=20
>>
>> For this reason this serie introduces an architecture specific way to =

>> create
>> different cpupool at boot time, this is particularly useful on ARM=20
>> big.LITTLE
>> platform where there might be the need to have different cpupools for =

>> each type
>> of core, but also systems using NUMA can have different cpu pool for=20
>> each node.
>=20
> ... from my understanding, all the vCPUs of a domain have to be in the =

> same cpupool. So with this approach it is not possible:
>  =C2=A0=C2=A0 1) to have a mix of LITTLE and big vCPUs in the domain
>  =C2=A0=C2=A0 2) to create a domain spanning across two NUMA nodes
>=20
> So I think we need to make sure that any solutions we go through will=20
> not prevent us to implement those setups.
>=20
> I can see two options here:
>  =C2=A0 1) Allowing a domain vCPUs to be on a different cpupool
>  =C2=A0 2) Introducing CPU class (see [1])
>=20
> I can't remember why Dario suggested 2) rather than 1) in the past.=20
> @Dario, do you remember it?

Having vcpus of a domain in different cpupools would probably require a
major scheduling rework due to several accounting information being per
cpupool today with some of that data being additionally per domain. Not
to mention the per-domain scheduling parameters, which would need to
cope with different schedulers suddenly (imagine one cpupool using
credit2 and the other rt).

I'd rather use implicit pinning e.g. via a cpu class.


Juergen


--------------D5293703A024B322732BF036
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------D5293703A024B322732BF036--

--87M0gadKbhP0kG4ppqQnuV2TAZ1cnUYFl--

--JYU24edbfhLgV9imTW6zN2pesYah40er0
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGU3F0FAwAAAAAACgkQsN6d1ii/Ey8j
5gf+OEbKoEbtExW/5VIT7z7uei+vMQfwWJGkJ0dgDrm4P5KpJqlAeek5XNkQJaVUpGZkmDBG6YY8
v3Pr7iqw3lhWMGJDTyWAfU0N6moIfTEhPGuzfW2q1y43dQ6zJDNR3dG0xaaSIFW5uZf+74Pn8n5v
IcS5srjdMXN3hwJ5LxUwgMz20mIJmPCx3s7pNXq5MeZ4u8GU6O538u74XMVhYYcieaiWu12ctziA
lMRmq5W4rXEtYIvXHHPMuEnp7lkVzSAnYKfh7sHZ3RjAslB7PhbvG8DEIrHm2G283X4i9XvinJhW
lKCxZ3DHTyCUYWnuUfHsi1Mu0luVt3G/egETjSCgLQ==
=4VOq
-----END PGP SIGNATURE-----

--JYU24edbfhLgV9imTW6zN2pesYah40er0--


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:06:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:06:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226736.391910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIlK-0007k0-AL; Wed, 17 Nov 2021 11:05:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226736.391910; Wed, 17 Nov 2021 11:05:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIlK-0007jt-6y; Wed, 17 Nov 2021 11:05:58 +0000
Received: by outflank-mailman (input) for mailman id 226736;
 Wed, 17 Nov 2021 11:05:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Swqu=QE=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mnIlJ-0007jn-6D
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:05:57 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 561597c9-4796-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 12:05:55 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 6B7801FD29;
 Wed, 17 Nov 2021 11:05:55 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0076113BDD;
 Wed, 17 Nov 2021 11:05:54 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id sJdQOhLilGFYIgAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 17 Nov 2021 11:05:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 561597c9-4796-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637147155; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=yM+TQQJa3NQZ4UutNZgtDAxadzrQBnF7u4I8rifL1A8=;
	b=ogG/KwsEA4hAoxSrTQ5+Xqufr8ARakFYuoGZ4UTOdDnAA2KuBahX6pLd3UIT6gmJEUBpBC
	i/ptleuNk+w9n/hRj324YZesIKF8xNYjk3FZ8KS4D9M1Dd6PzRflzoFrQ+R9uGDaHdtk74
	v1PBQHV4pzIxnR8i+WwLwyD8hdibdSo=
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <20211117095711.26596-2-luca.fancellu@arm.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [RFC PATCH 1/2] xen/cpupool: Create different cpupools at boot
 time
Message-ID: <eef43ca6-dce1-9d24-7ee6-7ced8a709f00@suse.com>
Date: Wed, 17 Nov 2021 12:05:54 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211117095711.26596-2-luca.fancellu@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="6si69ii0rMH9X91Jv7XbStgEM0mIfpi9A"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--6si69ii0rMH9X91Jv7XbStgEM0mIfpi9A
Content-Type: multipart/mixed; boundary="dX9muPziiOppkhpMdUXUsVT5hsQIRImod";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com, wei.chen@arm.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>
Message-ID: <eef43ca6-dce1-9d24-7ee6-7ced8a709f00@suse.com>
Subject: Re: [RFC PATCH 1/2] xen/cpupool: Create different cpupools at boot
 time
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <20211117095711.26596-2-luca.fancellu@arm.com>
In-Reply-To: <20211117095711.26596-2-luca.fancellu@arm.com>

--dX9muPziiOppkhpMdUXUsVT5hsQIRImod
Content-Type: multipart/mixed;
 boundary="------------72FFA587828DECC2EF3CC606"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------72FFA587828DECC2EF3CC606
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 17.11.21 10:57, Luca Fancellu wrote:
> Introduce an architecture specific way to create different
> cpupool at boot time, this is particularly useful on ARM
> biglittle system where there might be the need to have
> different cpupools for each type of core, but also systems
> using NUMA can have different cpu pool for each node.
>=20
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>   xen/arch/arm/Kconfig       | 15 +++++++
>   xen/arch/arm/Makefile      |  1 +
>   xen/arch/arm/cpupool.c     | 84 +++++++++++++++++++++++++++++++++++++=
+
>   xen/common/sched/cpupool.c |  5 ++-
>   xen/include/xen/cpupool.h  | 30 ++++++++++++++
>   5 files changed, 134 insertions(+), 1 deletion(-)
>   create mode 100644 xen/arch/arm/cpupool.c
>   create mode 100644 xen/include/xen/cpupool.h
>=20
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index ecfa6822e4..4d7cc9f3bc 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -33,6 +33,21 @@ config ACPI
>   	  Advanced Configuration and Power Interface (ACPI) support for Xen =
is
>   	  an alternative to device tree on ARM64.
>  =20
> +config BOOT_TIME_CPUPOOLS
> +	bool "Create cpupools per cpu type at boot time."
> +	depends on ARM
> +	default n
> +	help
> +
> +	  Creates, during boot, a cpu pool for each type of CPU found on
> +	  the system. This option is useful on system with heterogeneous
> +	  types of core.
> +
> +config MAX_BOOT_TIME_CPUPOOLS
> +	depends on BOOT_TIME_CPUPOOLS
> +	int "Maximum number of cpupools that can be created at boot time."
> +	default 16
> +
>   config GICV3
>   	bool "GICv3 driver"
>   	depends on ARM_64 && !NEW_VGIC
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 07f634508e..0bb8b84750 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -13,6 +13,7 @@ obj-$(CONFIG_HAS_ALTERNATIVE) +=3D alternative.o
>   obj-y +=3D bootfdt.init.o
>   obj-y +=3D cpuerrata.o
>   obj-y +=3D cpufeature.o
> +obj-$(CONFIG_BOOT_TIME_CPUPOOLS) +=3D cpupool.o
>   obj-y +=3D decode.o
>   obj-y +=3D device.o
>   obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
> diff --git a/xen/arch/arm/cpupool.c b/xen/arch/arm/cpupool.c
> new file mode 100644
> index 0000000000..550521e352
> --- /dev/null
> +++ b/xen/arch/arm/cpupool.c
> @@ -0,0 +1,84 @@
> +/*********************************************************************=
*********
> + * cpupool.c
> + *
> + * (C) 2021, arm
> + */
> +
> +#include <xen/cpumask.h>
> +#include <xen/cpupool.h>
> +#include <xen/err.h>
> +#include <xen/sched.h>
> +#include <asm/cpufeature.h>
> +#include <asm/processor.h>
> +#include "../../common/sched/private.h"

No, please don't do that.

You should try to add architecture agnostic service functions in
common/sched/cpupool.c removing the need to include that file here.

> +
> +typedef struct {
> +    register_t     midr;
> +    struct cpupool *pool;
> +} pool_t;
> +
> +static pool_t __initdata pool_cpu_map[CONFIG_MAX_BOOT_TIME_CPUPOOLS];
> +
> +void __init arch_allocate_cpupools(const cpumask_t *cpu_online_map,
> +                                   cpupool_create_t cpupool_create)

Drop the cpupool_create parameter here and ...

> +{
> +    unsigned int cpu, i;
> +
> +    /* First pool is the default pool0 associated with midr of the boo=
t core */
> +    pool_cpu_map[0].midr =3D system_cpuinfo.midr.bits;
> +    pool_cpu_map[0].pool =3D cpupool0;
> +
> +    for_each_cpu ( cpu, cpu_online_map )
> +    {
> +        for ( i =3D 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
> +            if ( !pool_cpu_map[i].pool ||
> +                 (cpu_data[cpu].midr.bits =3D=3D pool_cpu_map[i].midr)=
 )
> +                break;
> +
> +        if ( i < CONFIG_MAX_BOOT_TIME_CPUPOOLS )
> +        {
> +            if ( !pool_cpu_map[i].pool )
> +            {
> +                /* There is no pool for this cpu midr, create it */
> +                pool_cpu_map[i].midr =3D cpu_data[cpu].midr.bits;
> +                debugtrace_printk("Create pool %u for cpu MIDR: 0x%"
> +                                  PRIregister"\n", i, pool_cpu_map[i].=
midr);
> +                pool_cpu_map[i].pool =3D
> +                    cpupool_create(i, scheduler_get_default()->sched_i=
d);
> +                BUG_ON(IS_ERR(pool_cpu_map[i].pool));
> +                cpupool_put(pool_cpu_map[i].pool);

=2E.. call a new wrapper in common/sched/cpupool.c taking just the id as
parameter (e.g. "cpupool *cpupool_create_default(unsigned int id)")
which will use the default scheduler and do the cpupool_create() and
cpupool_put() calls internally.

> +            }
> +        }
> +        else
> +            panic("Could not create cpupool, maximum number reached (%=
u)",
> +                  (unsigned int)(CONFIG_MAX_BOOT_TIME_CPUPOOLS));
> +    }
> +
> +    /* Print useful information about the pools */
> +    for ( i =3D 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
> +        if ( pool_cpu_map[i].pool )
> +            printk(XENLOG_INFO "Pool-%u contains cpu with MIDR: 0x%"
> +                   PRIregister"\n", i, pool_cpu_map[i].midr);
> +}
> +
> +struct cpupool *__init arch_get_cpupool(unsigned int cpu)
> +{
> +    unsigned int i;
> +
> +    for ( i =3D 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
> +        if ( pool_cpu_map[i].pool &&
> +             (cpu_data[cpu].midr.bits =3D=3D pool_cpu_map[i].midr) )
> +            return pool_cpu_map[i].pool;
> +
> +    return cpupool0;
> +}
I don't think this return can be reached.

What about adding an "ASSERT_UNREACHABLE()" here and return NULL instead?=


> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
> index 8c6e6eb9cc..7389f04e28 100644
> --- a/xen/common/sched/cpupool.c
> +++ b/xen/common/sched/cpupool.c
> @@ -13,6 +13,7 @@
>  =20
>   #include <xen/cpu.h>
>   #include <xen/cpumask.h>
> +#include <xen/cpupool.h>
>   #include <xen/guest_access.h>
>   #include <xen/hypfs.h>
>   #include <xen/init.h>
> @@ -1231,12 +1232,14 @@ static int __init cpupool_init(void)
>       cpupool_put(cpupool0);
>       register_cpu_notifier(&cpu_nfb);
>  =20
> +    arch_allocate_cpupools(&cpu_online_map, cpupool_create);
> +
>       spin_lock(&cpupool_lock);
>  =20
>       cpumask_copy(&cpupool_free_cpus, &cpu_online_map);
>  =20
>       for_each_cpu ( cpu, &cpupool_free_cpus )
> -        cpupool_assign_cpu_locked(cpupool0, cpu);
> +        cpupool_assign_cpu_locked(arch_get_cpupool(cpu), cpu);
>  =20
>       spin_unlock(&cpupool_lock);
>  =20
> diff --git a/xen/include/xen/cpupool.h b/xen/include/xen/cpupool.h
> new file mode 100644
> index 0000000000..4b50af9e3d
> --- /dev/null
> +++ b/xen/include/xen/cpupool.h
> @@ -0,0 +1,30 @@
> +#ifndef __XEN_CPUPOOL_H
> +#define __XEN_CPUPOOL_H
> +
> +#include <xen/sched.h>
> +
> +typedef struct cpupool* (*cpupool_create_t)(unsigned int, unsigned int=
);
> +
> +#ifdef CONFIG_BOOT_TIME_CPUPOOLS
> +
> +void arch_allocate_cpupools(const cpumask_t *cpu_online_map,
> +                            cpupool_create_t cpupool_create);
> +
> +struct cpupool *arch_get_cpupool(unsigned int cpu);
> +
> +#else
> +
> +static inline __init
> +void arch_allocate_cpupools(const cpumask_t *cpu_online_map,
> +                            cpupool_create_t cpupool_create)
> +{
> +}
> +
> +static inline struct cpupool *__init arch_get_cpupool(unsigned int cpu=
)
> +{
> +    return cpupool0;
> +}
> +
> +#endif
> +
> +#endif /* __XEN_CPUPOOL_H */
>=20

I think this can all go into include/xen/sched.h.


Juergen

--------------72FFA587828DECC2EF3CC606
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------72FFA587828DECC2EF3CC606--

--dX9muPziiOppkhpMdUXUsVT5hsQIRImod--

--6si69ii0rMH9X91Jv7XbStgEM0mIfpi9A
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGU4hIFAwAAAAAACgkQsN6d1ii/Ey9o
FAf9Ex0vrhykdvSCn+DIbPmAvnEKMOgpncg+X4LTfY2eWkXd3/WhgxwNsAAjZpNF57VeymSza4R5
IXCUf8nMR3u/osegB0lIsK9nzB1EZElH24IgLz0MK2LfV5ma/nFltVKvhGkeUvmIMm9PQs3p3ibl
5aoyujhTLBAAikIb8EeI/c5W+JjUycjYAPSSEBG/DPKQ/+qEJRMicpbPeFEU1ges0O4gtgzq68oa
mxXVTJSFZ+vVbjh+ur1QgNJWuNjwCCyB8VoCY4YVkcDsB28a8PMpKz5xc1qocUs9tA25o5oNDO5g
rCaWQcmkbtiNpRaiDmq7eu7WVio3tLZQhsGj92h2pQ==
=1rwx
-----END PGP SIGNATURE-----

--6si69ii0rMH9X91Jv7XbStgEM0mIfpi9A--


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:07:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226739.391921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnImI-0008J9-Jn; Wed, 17 Nov 2021 11:06:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226739.391921; Wed, 17 Nov 2021 11:06:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnImI-0008J2-Gb; Wed, 17 Nov 2021 11:06:58 +0000
Received: by outflank-mailman (input) for mailman id 226739;
 Wed, 17 Nov 2021 11:06:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnImH-0008Is-Gw; Wed, 17 Nov 2021 11:06:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnImH-00063z-B0; Wed, 17 Nov 2021 11:06:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnImH-0008N9-5B; Wed, 17 Nov 2021 11:06:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnImH-0003BT-4e; Wed, 17 Nov 2021 11:06:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=daBx8vbWyAlb7KsjNFpZHOM54Hk9Tsb4JHyaupdW5i0=; b=69oJp9U2u0XBy3ZLwQNbB0oUqz
	wJUr05ko5GaSGMAhkWvakrVUbtCivNaT34f6W99cBJnJzV/efrUVi6zqqXYHAt3UjtejYCc6l4Kz9
	miV8ClA6eDX+DOYwNTQwr+DGo+ZEY/BVJb/QTMEYZ7oSz4+XOswNLG59s4svd5c6OGrY=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166162-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166162: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=306e0afbb382ec10081ab277c866e9e7c212dda5
X-Osstest-Versions-That:
    xen=2d72d2784eb71d8532bfbd6462d261739c9e82e4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Nov 2021 11:06:57 +0000

flight 166162 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166162/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  306e0afbb382ec10081ab277c866e9e7c212dda5
baseline version:
 xen                  2d72d2784eb71d8532bfbd6462d261739c9e82e4

Last test of basis   166156  2021-11-16 17:02:54 Z    0 days
Testing same since   166162  2021-11-17 08:01:37 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Julien Grall <jgrall@amazon.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   2d72d2784e..306e0afbb3  306e0afbb382ec10081ab277c866e9e7c212dda5 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:10:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:10:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226744.391935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIpI-00011b-82; Wed, 17 Nov 2021 11:10:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226744.391935; Wed, 17 Nov 2021 11:10:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIpI-00011U-4A; Wed, 17 Nov 2021 11:10:04 +0000
Received: by outflank-mailman (input) for mailman id 226744;
 Wed, 17 Nov 2021 11:10:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tBek=QE=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnIpH-0000qH-7r
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:10:03 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e816f481-4796-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 12:10:01 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:59708)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnIpE-000Xw4-7t (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 17 Nov 2021 11:10:00 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 28D1D1FC53;
 Wed, 17 Nov 2021 11:10:00 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e816f481-4796-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <d2650a7e-f681-301c-6959-bc84a502255a@srcf.net>
Date: Wed, 17 Nov 2021 11:09:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony Perard <anthony.perard@citrix.com>, Ian Jackson
 <iwj@xenproject.org>, Paul Durrant <paul@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
References: <b6d598cd-c244-2b7f-c731-fe839df3382e@suse.com>
 <b62a87ca-b68f-76fd-51c6-114e8b8e125b@suse.com>
 <YZTDkNRY5pMLFUR6@Air-de-Roger>
 <fe31a1b4-8c66-701d-f951-6426fa72252c@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: PCI pass-through vs PoD
In-Reply-To: <fe31a1b4-8c66-701d-f951-6426fa72252c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 17/11/2021 10:13, Jan Beulich wrote:
> On 17.11.2021 09:55, Roger Pau Monné wrote:
>> On Wed, Nov 17, 2021 at 09:39:17AM +0100, Jan Beulich wrote:
>>> On 13.09.2021 11:02, Jan Beulich wrote:
>>>> libxl__domain_config_setdefault() checks whether PoD is going to be
>>>> enabled and fails domain creation if at the same time devices would get
>>>> assigned. Nevertheless setting up of IOMMU page tables is allowed.
>> I'm unsure whether allowing enabling the IOMMU with PoD is the right
>> thing to do, at least for our toolstack.
> May I ask about the reasons of you being unsure?

PoD and passthrough is a total nonsense.  You cannot have IOMMU mappings 
to bits of the guest physical address space which don't exist.

It is now the case that IOMMU (or not) must be specified at domain 
creation time, which is ahead of creating PoD pages.  Certainly as far 
as Xen is concerned, the logic probably wants reversing to have 
add_to_physmap&friends reject PoD if an IOMMU was configured.

A toolstack could, in principle, defer the decision to first device 
assignment.

However, this is terrible behaviour all around, because one way or 
another we've got to force-populate all PoD pages (which is potentially 
minutes worth of work to do), and liable to suffer -ENOMEM, or we have 
to reject a control operation with -EBUSY for a task which is dependent 
on the guest kernel actions in a known-buggy area.


There is no point trying to make this work.  If a user wants a device, 
they don't get to have PoD.  Anything else is a waste of time and effort 
on our behalf for a usecase that doesn't exist in practice.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:10:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:10:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226746.391945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIpc-0001mV-GF; Wed, 17 Nov 2021 11:10:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226746.391945; Wed, 17 Nov 2021 11:10:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIpc-0001mM-Cg; Wed, 17 Nov 2021 11:10:24 +0000
Received: by outflank-mailman (input) for mailman id 226746;
 Wed, 17 Nov 2021 11:10:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Swqu=QE=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mnIpa-0001jj-N2
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:10:22 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f4bf9838-4796-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 12:10:22 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id B2845212C7;
 Wed, 17 Nov 2021 11:10:21 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 79EF213BDD;
 Wed, 17 Nov 2021 11:10:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id cm9rHB3jlGEGJAAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 17 Nov 2021 11:10:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4bf9838-4796-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637147421; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=oCvYZL3L6FBwcbGOGmzcyi3wqX7+h7+j4ozgtDnD75c=;
	b=rLpAHJRGDqiwzw2hg+X47i6Pg8CqHjTgXAE+sJyTyEKD2igsMEb+rw6n/plOjw98s53Vwj
	00TJo9OopHQMzDksVUxtIkdZa94yO9t1Mr5XMIJWKvQvFn8ktWV4r4azFGewY6UlLCoqmN
	XqMSW14E+hF6iFiqqFeQ2GMU+LIhSTo=
Subject: Re: [RFC PATCH 2/2] tools/cpupools: Give a name to unnamed cpupools
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <20211117095711.26596-3-luca.fancellu@arm.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <2d0140be-8830-3d7a-5ee9-58ef80357888@suse.com>
Date: Wed, 17 Nov 2021 12:10:20 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211117095711.26596-3-luca.fancellu@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="dzxb3zL8JocRhty9Iumhyx0fRgngG0aro"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--dzxb3zL8JocRhty9Iumhyx0fRgngG0aro
Content-Type: multipart/mixed; boundary="mUjJnurtZh7K3sGppsyHqEGZWCT3ktWBo";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: bertrand.marquis@arm.com, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <2d0140be-8830-3d7a-5ee9-58ef80357888@suse.com>
Subject: Re: [RFC PATCH 2/2] tools/cpupools: Give a name to unnamed cpupools
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <20211117095711.26596-3-luca.fancellu@arm.com>
In-Reply-To: <20211117095711.26596-3-luca.fancellu@arm.com>

--mUjJnurtZh7K3sGppsyHqEGZWCT3ktWBo
Content-Type: multipart/mixed;
 boundary="------------3BCCADA07C69FA525C9C0626"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------3BCCADA07C69FA525C9C0626
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 17.11.21 10:57, Luca Fancellu wrote:
> With the introduction of boot time cpupools, Xen can
> create at boot time many cpupools different from the
> cpupool with id 0.
>=20
> Since these newly created cpupools can't have an
> entry in Xenstore, name them with the same convention
> used for the cpupool 0: Pool-<cpupool id>.
>=20
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>   tools/libs/light/libxl_utils.c | 13 ++++++++-----
>   1 file changed, 8 insertions(+), 5 deletions(-)
>=20
> diff --git a/tools/libs/light/libxl_utils.c b/tools/libs/light/libxl_ut=
ils.c
> index 4699c4a0a3..d97d91ca98 100644
> --- a/tools/libs/light/libxl_utils.c
> +++ b/tools/libs/light/libxl_utils.c
> @@ -147,13 +147,16 @@ int libxl_cpupool_qualifier_to_cpupoolid(libxl_ct=
x *ctx, const char *p,
>   char *libxl_cpupoolid_to_name(libxl_ctx *ctx, uint32_t poolid)
>   {
>       unsigned int len;
> -    char path[strlen("/local/pool") + 12];
> +    char buffer[strlen("/local/pool") + 12];
>       char *s;
>  =20
> -    snprintf(path, sizeof(path), "/local/pool/%d/name", poolid);
> -    s =3D xs_read(ctx->xsh, XBT_NULL, path, &len);
> -    if (!s && (poolid =3D=3D 0))
> -        return strdup("Pool-0");
> +    snprintf(buffer, sizeof(buffer), "/local/pool/%d/name", poolid);
> +    s =3D xs_read(ctx->xsh, XBT_NULL, buffer, &len);
> +    if (!s)
> +    {
> +        snprintf(buffer, sizeof(buffer), "Pool-%d", poolid);
> +        return strdup(buffer);
> +    }
>       return s;
>   }
>  =20
>=20

This breaks libxl_cpupoolid_is_valid(), as it will now return always
true, regardless whether the poolid is existing or not.


Juergen

--------------3BCCADA07C69FA525C9C0626
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------3BCCADA07C69FA525C9C0626--

--mUjJnurtZh7K3sGppsyHqEGZWCT3ktWBo--

--dzxb3zL8JocRhty9Iumhyx0fRgngG0aro
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGU4xwFAwAAAAAACgkQsN6d1ii/Ey9W
dwgAhRH1EWCX/7sipzekx1K5JRud0wyzJaT0kfWyLteBs8UT+bz3w8Vo64WfUBRIUjYhCeLAdivo
bLt5S/hMIddElgmiXSw+RYMNay2HivWEAcsL2MkzdEUwaok8ZfhuADcnfvwhAPStMgRjgyaXzsL+
KY+vSvcJsrJYXboprMvnNP7zsX2lpLjbAx4PnITA1+i1+x5JCeblNQOMtadFgO+saYKyiFmHHb30
lus7zoG1feiCZLfUXlNiXeXLLKSzX5vtNjcqkaLdpkmuHsferCdT/+tRKQlsR/293B5q8Bf6Fnjm
imOilwdXmW8XZGlq3iCHRCpemMXBI0DrG90jTKKssg==
=rQju
-----END PGP SIGNATURE-----

--dzxb3zL8JocRhty9Iumhyx0fRgngG0aro--


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:13:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:13:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226752.391956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIs9-0002Wc-Tt; Wed, 17 Nov 2021 11:13:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226752.391956; Wed, 17 Nov 2021 11:13:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIs9-0002WV-Qn; Wed, 17 Nov 2021 11:13:01 +0000
Received: by outflank-mailman (input) for mailman id 226752;
 Wed, 17 Nov 2021 11:13:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VwQQ=QE=arm.com=Rahul.Singh@srs-se1.protection.inumbo.net>)
 id 1mnIs9-0002WN-CO
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:13:01 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01on0608.outbound.protection.outlook.com
 [2a01:111:f400:fe1e::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53312be3-4797-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 12:13:00 +0100 (CET)
Received: from AS9PR04CA0058.eurprd04.prod.outlook.com (2603:10a6:20b:46a::23)
 by AM0PR08MB5345.eurprd08.prod.outlook.com (2603:10a6:208:18c::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov
 2021 11:12:46 +0000
Received: from AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:46a:cafe::ef) by AS9PR04CA0058.outlook.office365.com
 (2603:10a6:20b:46a::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.17 via Frontend
 Transport; Wed, 17 Nov 2021 11:12:46 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT039.mail.protection.outlook.com (10.152.17.185) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Wed, 17 Nov 2021 11:12:44 +0000
Received: ("Tessian outbound a33f292be81b:v110");
 Wed, 17 Nov 2021 11:12:44 +0000
Received: from 8561a2652c49.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F6C2297F-A134-495E-865A-35362CC52635.1; 
 Wed, 17 Nov 2021 11:12:30 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8561a2652c49.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 17 Nov 2021 11:12:30 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com (2603:10a6:20b:39e::10)
 by AM7PR08MB5318.eurprd08.prod.outlook.com (2603:10a6:20b:104::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Wed, 17 Nov
 2021 11:12:29 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9]) by AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9%9]) with mapi id 15.20.4649.026; Wed, 17 Nov 2021
 11:12:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53312be3-4797-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W/wn3dXu4SX30oHC8l7SICYI+WWOaGiluZTY43P2S0g=;
 b=TAOjFQK2Ca6UXpDlpZd6MzDImUDY28ZdV4jwzIL+pfOfiu9pDMYduF3fuN914GUVa9ho8oYRuWJdh6ynwvUMFVvTSiH445UACo/a7bkJ1l2dHT0lI18ELOas8fl7qCjvPsRSb2/V/gCrD/qvv1bHvpB+EVy0NWS/VprZ9Lt8OMw=
X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is
 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=temperror action=none
 header.from=arm.com;
Received-SPF: TempError (protection.outlook.com: error in processing during
 lookup of arm.com: DNS Timeout)
X-CheckRecipientChecked: true
X-CR-MTA-CID: 8ed4d5d1a3bed108
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VqWZ28ULW5fJMTDAOPN1sulTpXTOrW/V/KN6WRB28iZJdWeVJ+nNdNb9iY9JlwIaghksjJr1eFuv+4qW/YVah7ur798jfn5K4oBrGHEUwz7jRhSPyRNCk36Tt6YzH4IvwZOsEIRzApugiGeUPSaQ0ppfPuZoHvT/4UFU/NP+aDoU4mw4mRr6iHwOfwy9rqF5ydmKps2F4UuIQqa0pvBJq3Gr8HGeDmObZzgzjbYr436H3H8c5vDjetE9SXbaKP56rutZTF1Rtjr3VS/VtSTHYVDGP1xkAtElwhDDGyJXCvcZrr47FTs1QwUoi6/oFTvSP3J0jUb6x+A8E7etUA+3kg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W/wn3dXu4SX30oHC8l7SICYI+WWOaGiluZTY43P2S0g=;
 b=l4OjUjDoa6IBZkq2W6Rzp+TnIPPsY5ybd4MIBUBGoqPnWi67BDqVXHbjZXJdPP83yVBb9jms/m1j/Y9SCZUe0hbzCL14fTlmeStuumxCLinohf2oq7mmy3BgOoZkI74jMT+E+xI8TP+s+4LAfUQx/xAbrFrq6gXLdCgwWKXae3YFcUBLPBclMhRlxpT9NoOfwQ2t9JDNBL1b8o7+tKM54WuAnT93ARUaL+j/k36D1TNZZWrZsO1IXbdQ3OEA/tULJoUwzYyBpkiJmRVHb8p1I7YA4bz7fb6dg2sb+sR2kJbAGJ6up4T7g99tYdimagKCqA2aGvMqv9e7fT1fjUATZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W/wn3dXu4SX30oHC8l7SICYI+WWOaGiluZTY43P2S0g=;
 b=TAOjFQK2Ca6UXpDlpZd6MzDImUDY28ZdV4jwzIL+pfOfiu9pDMYduF3fuN914GUVa9ho8oYRuWJdh6ynwvUMFVvTSiH445UACo/a7bkJ1l2dHT0lI18ELOas8fl7qCjvPsRSb2/V/gCrD/qvv1bHvpB+EVy0NWS/VprZ9Lt8OMw=
From: Rahul Singh <Rahul.Singh@arm.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, "oleksandr_tyshchenko@epam.com"
	<oleksandr_tyshchenko@epam.com>, "volodymyr_babchuk@epam.com"
	<volodymyr_babchuk@epam.com>, "Artem_Mygaiev@epam.com"
	<Artem_Mygaiev@epam.com>, "roger.pau@citrix.com" <roger.pau@citrix.com>,
	"jbeulich@suse.com" <jbeulich@suse.com>, "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>, "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>, "paul@xen.org" <paul@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>
Subject: Re: [PATCH v6 7/7] xen/arm: do not use void pointer in
 pci_host_common_probe
Thread-Topic: [PATCH v6 7/7] xen/arm: do not use void pointer in
 pci_host_common_probe
Thread-Index: AQHX0g8fEgwSC2QqkU2uFtSRWiduaqwHo+UA
Date: Wed, 17 Nov 2021 11:12:29 +0000
Message-ID: <96F5FCA2-D8EE-4DC3-8945-619887069C5E@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-8-andr2000@gmail.com>
In-Reply-To: <20211105063326.939843-8-andr2000@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: bfb90236-7d2e-4a34-4c51-08d9a9bb2e2b
x-ms-traffictypediagnostic: AM7PR08MB5318:|AM0PR08MB5345:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB534508DD901A6C237A44EC72FC9A9@AM0PR08MB5345.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:5236;OLM:5236;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 IrtEU5Qvp9Sk0cQlkrfqHjD5Nr/827K9yCBls0dBl5VhH75chvNcN4kPovBFOlDRnZ5o0N6u67elU+bAEdxNTox8RNMkxv+DtIJdmHtw2+1IuljlYmvthhAW2X2eJKC7lYh+2MbvaU1E3J701GFgX4in1KQtKOFIO9ncGsxJ25JgpNNIGfwNEW28moGux7jPXzbbBf/Jmx+CBFS/ujsOhc+LwJIy2epVlGmTF1wwl91kY/rvR0MVa+MfpXlrlRArsf+GnrbXH8YP47OjR2olHtcyFjozelLhgHXv9wUDkLaNYfUNMEanG1DtrMOx2+EIGB1ivgFcJmLe2FAzOMpMxYU0k6FxfbtX2zr7dCmVwbt3smHSvGgh9NsK5jjR1TC5sAv0QB7wr9BjQiBvDZpgd3/Xe/XP7PiecpUkao/MkhGQK7GeHz7aDIfOyovfSOWaF/Jb1O2RDYOV7DfAF+OICC7YQ+SgTIWTUz3o24FdVRj0qjXWYtqsip3GgNhbaoTYP3EW5Br657iWDH41nAhLCp2uXschh0FW8EFjl7VkN/BtqmaI3vQxMQyNo/rMuwcKezy7bOK38G3D+U2bLQNkZsgZySDLmvUE8FBNg0i74gEZxApDZJE2rCviSCXrXp/EOw8eBwNvk6XIN/Wu66XiFT1JUNXcVWUmvwHT8AENIOSPPpKVsHYFyqDFSTH7y7qXyxRiHRKwahT6JlyAodsKurOx0Wu01ErmdbizXf34/SGAJMctLOTXmibjhEdrcviv
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6919.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(6512007)(8676002)(7416002)(26005)(122000001)(5660300002)(53546011)(508600001)(36756003)(33656002)(91956017)(6486002)(38070700005)(6506007)(66556008)(66446008)(64756008)(86362001)(66476007)(2906002)(2616005)(316002)(83380400001)(54906003)(6916009)(38100700002)(8936002)(71200400001)(76116006)(66946007)(186003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <FA8BA0BFA9C32E41B2F544E9261301FF@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5318
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	57314f2b-04f4-4f2b-b495-08d9a9bb24f8
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	9yrP/mPbS9brDEOklHbZtHb6NQ6fiUEz0RQYpEPBl2qI3BwGHw4HMXjJzBuaCS6oohTJIz6fpeD3kvSfH6Dqf9FXc2oW7X96w4VbEjFieuTqgEg8FTExPKWWsTVcUT7smq6fikU4yKXr2f6KcribbjX0TyZQUctgjdHiT3g8uQaDzXo8d7TZKX0zzacOopV+JMv8gGr/0wp3W1UEga4YGipkkK2u3jTA1cl5M+1kDtqNhyZr+9V+XuVy+ObZiEoNw5zJNHBkao7OiQ++BRkjfpS/VKTflPeLYNSyShETe7fXAIDNrIOur52guBAF0W9qb72Jtyil1LA1hHY/s+NoyKIOB+HFdJUJUQxR5i94VOtJJZkEGI6bC2RRzmqXD5fDs8zqgIa7TTF/loCKTh2gX5nsRVdCsEAGP9lUO1Sp9ZiXLZpyukKDRTu1kkZBHMDiQgDI4d/VGwBsmG6xnW2eHSa4P4+Q0CC1/cxC5sg79QrUBEYyDUe6PTDixA8xssS5XMe5QrvILLtpnQTOdoIIzjge2MZNhW4CMoliZiqvSHBdJLcIGFD2AhYPZMhpLEjdh5+RhZ0cr9GURRKHpWfRLgUw0380Ke8cPa70Q2YlBqBrfxY6Ygby2MafhgqQ61JBpg8lPjdnlyIIIlw3p1TeEixUkFH0Ldl3UderGJTKJPdzsKvk0hu7GDP5Ag/s0rN0wFtyiAkwShIL/pTblo1hECs3prUHhmNu5L4D6pW6bKE=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(70206006)(186003)(36756003)(6486002)(70586007)(356005)(8676002)(81166007)(33656002)(107886003)(82310400003)(5660300002)(6506007)(86362001)(336012)(8936002)(36860700001)(53546011)(63350400001)(63370400001)(83380400001)(2616005)(508600001)(6512007)(316002)(4326008)(26005)(47076005)(6862004)(54906003)(2906002)(45980500001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 11:12:44.7644
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bfb90236-7d2e-4a34-4c51-08d9a9bb2e2b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5345

Hi Oleksandr,

> On 5 Nov 2021, at 6:33 am, Oleksandr Andrushchenko <andr2000@gmail.com> w=
rote:
>=20
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>=20
> There is no reason to use void pointer while passing ECAM ops to the
> pci_host_common_probe function as it is anyway casted to struct pci_ecam_=
ops
> inside. For that reason remove the void pointer and pass struct pci_ecam_=
ops
> pointer as is.
>=20
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Reviewed-by: Rahul Singh <rahul.singh@arm.com>
Tested-by: Rahul Singh <rahul.singh@arm.com>

Regards,
Rahul
>=20
> ---
> New in v4
> ---
> xen/arch/arm/pci/ecam.c            | 4 ++--
> xen/arch/arm/pci/pci-host-common.c | 6 ++----
> xen/include/asm-arm/pci.h          | 5 +++--
> 3 files changed, 7 insertions(+), 8 deletions(-)
>=20
> diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
> index 4f71b11c3057..6aeea12a68bf 100644
> --- a/xen/arch/arm/pci/ecam.c
> +++ b/xen/arch/arm/pci/ecam.c
> @@ -24,8 +24,8 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *=
bridge,
>                                pci_sbdf_t sbdf, uint32_t where)
> {
>     const struct pci_config_window *cfg =3D bridge->cfg;
> -    struct pci_ecam_ops *ops =3D
> -        container_of(bridge->ops, struct pci_ecam_ops, pci_ops);
> +    const struct pci_ecam_ops *ops =3D
> +        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
>     unsigned int devfn_shift =3D ops->bus_shift - 8;
>     void __iomem *base;
>=20
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-ho=
st-common.c
> index 6af845ab9d6c..1aad664b213e 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -194,15 +194,13 @@ static int pci_bus_find_domain_nr(struct dt_device_=
node *dev)
>     return domain;
> }
>=20
> -int pci_host_common_probe(struct dt_device_node *dev, const void *data)
> +int pci_host_common_probe(struct dt_device_node *dev,
> +                          const struct pci_ecam_ops *ops)
> {
>     struct pci_host_bridge *bridge;
>     struct pci_config_window *cfg;
> -    struct pci_ecam_ops *ops;
>     int err;
>=20
> -    ops =3D (struct pci_ecam_ops *) data;
> -
>     bridge =3D pci_alloc_host_bridge();
>     if ( !bridge )
>         return -ENOMEM;
> diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
> index 3d706fdd1d88..4199e0267d24 100644
> --- a/xen/include/asm-arm/pci.h
> +++ b/xen/include/asm-arm/pci.h
> @@ -65,7 +65,7 @@ struct pci_host_bridge {
>     struct list_head node;           /* Node in list of host bridges */
>     uint16_t segment;                /* Segment number */
>     struct pci_config_window* cfg;   /* Pointer to the bridge config wind=
ow */
> -    struct pci_ops *ops;
> +    const struct pci_ops *ops;
> };
>=20
> struct pci_ops {
> @@ -94,7 +94,8 @@ struct pci_ecam_ops {
> /* Default ECAM ops */
> extern const struct pci_ecam_ops pci_generic_ecam_ops;
>=20
> -int pci_host_common_probe(struct dt_device_node *dev, const void *data);
> +int pci_host_common_probe(struct dt_device_node *dev,
> +                          const struct pci_ecam_ops *ops);
> int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sb=
df,
>                             uint32_t reg, uint32_t len, uint32_t *value);
> int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t s=
bdf,
> --=20
> 2.25.1
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:16:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:16:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226756.391968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIvc-0003Bq-Fd; Wed, 17 Nov 2021 11:16:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226756.391968; Wed, 17 Nov 2021 11:16:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIvc-0003Bj-CR; Wed, 17 Nov 2021 11:16:36 +0000
Received: by outflank-mailman (input) for mailman id 226756;
 Wed, 17 Nov 2021 11:16:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5X4Q=QE=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mnIvb-0003Ar-KR
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:16:35 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02on0613.outbound.protection.outlook.com
 [2a01:111:f400:fe07::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d220558b-4797-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 12:16:34 +0100 (CET)
Received: from AM6P194CA0080.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:8f::21)
 by DB6PR0801MB1829.eurprd08.prod.outlook.com (2603:10a6:4:39::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov
 2021 11:16:31 +0000
Received: from VE1EUR03FT015.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:8f:cafe::71) by AM6P194CA0080.outlook.office365.com
 (2603:10a6:209:8f::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Wed, 17 Nov 2021 11:16:31 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT015.mail.protection.outlook.com (10.152.18.176) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Wed, 17 Nov 2021 11:16:31 +0000
Received: ("Tessian outbound 157533e214a9:v110");
 Wed, 17 Nov 2021 11:16:30 +0000
Received: from 8ba46ecb97b5.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 C8BEC5A4-A2EB-4FD6-B241-09C43FBDA488.1; 
 Wed, 17 Nov 2021 11:16:24 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8ba46ecb97b5.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 17 Nov 2021 11:16:24 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB5096.eurprd08.prod.outlook.com (2603:10a6:20b:ee::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov
 2021 11:16:11 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Wed, 17 Nov 2021
 11:16:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d220558b-4797-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LMFl5gcudJV3Vce7N08dDnYf7AE8Pe3mU55lTGwcpuY=;
 b=tB3qh2SrlwNVGs5jcGgkPkhkoxHA4NiFH+2Z/P/FSJQk6AD42NdAz+I466E5ay4xneYjZDYELs+oVnA/wu/IxyB1naJ85R7+3HZrWzjXN4WK+gs33wdClBWYPnD5U69KmaUB7HEiswFWPRCTNlUpRtOXVbLgLZdNLxJqdEHC4cg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: ee5fa50c64dbe183
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g+fJOWOorM50CKQkJu7Dkj6UwsaJR2IIv6lFOAiNW+SS877u6lWLLl0Bjbi8tj1iVyFFKdqUD6n4wynnRD87lyzQ0OJbqhmaa2986RH5p6dZ0WYUeeuoJ5gkvQGbXYO8AVZ+r+eE6B6gziNNK3GB+G5Ziy2Mlql6jkeDzWzQAAJra7F4UMx+2LX+UFLGjq8zq4ghbH5AshvhsyQAu8tQagyjxL6Z6mQB/f003RiO6GZHSR0Xx+QTQvJYmkK14ZQwxAY3UuWbmcCaqdX5I0ZoPM+UyQXZxwB3D6zTkwTbevoISRNxY8UcpwrwPGdX5a6d5evat47YrzVh/oWkYXqMJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LMFl5gcudJV3Vce7N08dDnYf7AE8Pe3mU55lTGwcpuY=;
 b=gBLokkPrdQbbun+2cO0bSO60omllBD8qBDzUitj0vv7m1F6WDszBK+YMF0LyoCuchagEmXTAgtxC5BpddOnemoGNkzJ8fVcjTB4U+uc2zBclWvqtqKN9WriKCGKceT5y282o7zAWc35dWxvqE4Nwwu02nK42IZraVlmpuyq5rzzT6ZUTD12kMsJynP5+SC02qwesDsmiB7LQjUr3xi+/KBdH9FAEHi+rv12PSH+Pfz6O+SV0u9DJyMk7RUwlZ7/8wvyJeiU3wAatzlqKqtTJJAsJU72+jLFBu4xTfRhYnCG5nDAXg9EmWE194wV6g1x88M07GIGFxvFRYSFIhi51pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LMFl5gcudJV3Vce7N08dDnYf7AE8Pe3mU55lTGwcpuY=;
 b=tB3qh2SrlwNVGs5jcGgkPkhkoxHA4NiFH+2Z/P/FSJQk6AD42NdAz+I466E5ay4xneYjZDYELs+oVnA/wu/IxyB1naJ85R7+3HZrWzjXN4WK+gs33wdClBWYPnD5U69KmaUB7HEiswFWPRCTNlUpRtOXVbLgLZdNLxJqdEHC4cg=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Luca Fancellu <Luca.Fancellu@arm.com>, Xen-devel
	<xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Juergen Gross
	<jgross@suse.com>, Dario Faggioli <dfaggioli@suse.com>, Anthony PERARD
	<anthony.perard@citrix.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
Thread-Topic: [RFC PATCH 0/2] Boot time cpupools
Thread-Index: AQHX25mOHH0z58pAdkqC6AziO7R1GqwHg+AAgAAN94A=
Date: Wed, 17 Nov 2021 11:16:10 +0000
Message-ID: <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
In-Reply-To: <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 9323657b-052f-48b5-b0d3-08d9a9bbb50e
x-ms-traffictypediagnostic: AM6PR08MB5096:|DB6PR0801MB1829:
X-Microsoft-Antispam-PRVS:
	<DB6PR0801MB18290A4E6F0151F5355DD9349D9A9@DB6PR0801MB1829.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 utr7hkcez3AL9BMKFCiQMzXgDtwSDZLLumoLh4E0R+fE7+Gd8xNcVsTtL+QAy7wlz8QBfekFhFgD+pFMgZbWntfGkRZmg/n5BEqmqR+Uuq4hdDEPY/7DzhmHOC4yTck9nJS+hgVgGVV23OeFDJdaDhz9WM6mla/hC8WIzLdaEFT8LMhz2PJvIePylzrceNaAYkllB9GVLTx3Fy0hiyFKR5NqrFkPkXRnyGVHg4SuP/2N8j8EsCk/OwGGNOM2ouv7MF7oWqHo4OkXywnZ5+mUnXnCAGNR89m4d6UkL/1VdkqcGrrh8GRRp3rPsLYSGDzw0cwv7fKdwbJ1HdGGtcFQfvA0IjLz3TIxD4ymXG+oac5PaWaKRP0Om3xF/gx3Jm12DMqn0n/agtnMOymTDsc5AiDewhuSIaLM1fVr/u1tHtzs0jIgQOvG37M9FdrRBOzyTAjjshTbIIzWP6wH+Wq+/N0mwas0H6eo0U+mxlMHpFJtU43FjQp/15MappEx+knCWbipQwlztfK4lRm3bEXKJWkHuJuSU5k0O0cnCY6o43CyQC6hXWYVg3NaEMKaaXLIVEMlDV76YCqLWyrXt9jr64I/iqJHMNpKVteLBhvJE02J0BlT5loBCePvjCEyXh7dvDevMTawxbpe3S+INLrDgFfL5XJNecRfBPIp6mGHmvSI+X4fzxqlQ/TvxcuMSyB5UEwFkkY4Fb5+5+ZQnbnLljRO001ZcS/O/9/Pv/O5FmHVR4y0uX2RkxX8nabqVqUDsezGlpCRkqS0Np73usBz25NiWpGOxL83N8KmMskHlQ+cUfm+iDxsrZD8m/9sNe8OwIwTmtYT5WAvTZTGZPxUhA==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(36756003)(54906003)(2906002)(4326008)(186003)(316002)(71200400001)(8676002)(6512007)(26005)(2616005)(6486002)(7416002)(8936002)(33656002)(6916009)(6506007)(53546011)(966005)(508600001)(86362001)(66556008)(66446008)(66946007)(76116006)(38100700002)(64756008)(38070700005)(91956017)(66476007)(122000001)(5660300002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <0A4937A79064CD40909732AB7F808689@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB5096
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT015.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	aa3ff44e-9636-4e54-a611-08d9a9bba89f
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	zFELhoTSsS3xtOcuthRxZPfOSkzB5N4v3xNUFJvNEm9BxKaHlgrYXjTnkmHMrfQ1/LhIj6ZHhQ1FQL0KXft+ZSGfjPdkeF8KWRwYvzdBx1NHt+rsy8Hevnx9qbYPlBxjJT4FXRRZyTFZTI5ceomyb4+2D1nSYR2AiamY2R0Tzf17Qsd6Px2KiqRfBdGcNtQfKOQhRgdfC8sz7nLXQjIrzkiguN2Wlu+uXC0ZTrH4yNarfs69ijRXr8L3jGbwUDXv/uvyu2DhZCY8C+czGQcXkgFXyIG3g8RSTHDWdGJO+eTnmwDBXTJM8yPVdyYnG9I/lyJGK1OEyjSOU+MzG1Bj+RgsH3+R0ulJTQ+5dPtziCCrWdxKbDu0V7R17ey73zPJ0fQ4yBT9As4GmW8b9UoCZiCtKdgtbnaXwHU+ifbKt2yN1uiUsqxGPHCr2bks4flaqYYWw7uqarPG+PurjCMjVnNVIM6Zg9HyM9i43DdoIYDLl6N2IW3KSVu/57dd74WduPAxJfbsC2R+TNXczycexgHpDHwDL/KYzzcKY5587HRse0+jAvvsmjux4zqOWS94SWNmrezzBp00dH9jT5cF//1m9AnxuyNu3OEFtWdo7O57hW8c/TK7kxl1fcHTHxQGezr5a2lahwKhR73hZmjgKDU+9qRTsLf8vmChuC7THnC7rZJh8P+7Hz6ggcpRr46VmUE4RF5YGbIzJvSb+a6sIkl8N0Q3se7fHGY3H5prlLVMfZIbCTq8v1/hvaI0GlykYywDU/FsynCvc4zj/Y49dhx+VR9ibR3R6GOV7i0zKhU=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(82310400003)(70586007)(316002)(186003)(81166007)(36756003)(47076005)(966005)(6512007)(70206006)(8676002)(356005)(6862004)(26005)(86362001)(2906002)(83380400001)(36860700001)(5660300002)(6506007)(4326008)(54906003)(33656002)(6486002)(8936002)(53546011)(508600001)(2616005)(107886003)(336012);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 11:16:31.0193
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9323657b-052f-48b5-b0d3-08d9a9bbb50e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT015.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1829

SGkgSnVsaWVuLA0KDQo+IE9uIDE3IE5vdiAyMDIxLCBhdCAxMDoyNiwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSBMdWNhLA0KPiANCj4gT24gMTcvMTEvMjAy
MSAwOTo1NywgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IEN1cnJlbnRseSBYZW4gY3JlYXRlcyBh
IGRlZmF1bHQgY3B1cG9vbDAgdGhhdCBjb250YWlucyBhbGwgdGhlIGNwdSBicm91Z2h0IHVwDQo+
PiBkdXJpbmcgYm9vdCBhbmQgaXQgYXNzdW1lcyB0aGF0IHRoZSBwbGF0Zm9ybSBoYXMgb25seSBv
bmUga2luZCBvZiBDUFUuDQo+PiBUaGlzIGFzc3VtcHRpb24gZG9lcyBub3QgaG9sZCBvbiBiaWcu
TElUVExFIHBsYXRmb3JtLCBidXQgcHV0dGluZyBkaWZmZXJlbnQNCj4+IHR5cGUgb2YgQ1BVIGlu
IHRoZSBzYW1lIGNwdXBvb2wgY2FuIHJlc3VsdCBpbiBpbnN0YWJpbGl0eSBhbmQgc2VjdXJpdHkg
aXNzdWVzDQo+PiBmb3IgdGhlIGRvbWFpbnMgcnVubmluZyBvbiB0aGUgcG9vbC4NCj4gDQo+IEkg
YWdyZWUgdGhhdCB5b3UgY2FuJ3QgbW92ZSBhIExJVFRMRSB2Q1BVIHRvIGEgYmlnIHBDUFUuIEhv
d2V2ZXIuLi4NCj4gDQo+PiBGb3IgdGhpcyByZWFzb24gdGhpcyBzZXJpZSBpbnRyb2R1Y2VzIGFu
IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyB3YXkgdG8gY3JlYXRlDQo+PiBkaWZmZXJlbnQgY3B1cG9v
bCBhdCBib290IHRpbWUsIHRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBvbiBBUk0gYmlnLkxJ
VFRMRQ0KPj4gcGxhdGZvcm0gd2hlcmUgdGhlcmUgbWlnaHQgYmUgdGhlIG5lZWQgdG8gaGF2ZSBk
aWZmZXJlbnQgY3B1cG9vbHMgZm9yIGVhY2ggdHlwZQ0KPj4gb2YgY29yZSwgYnV0IGFsc28gc3lz
dGVtcyB1c2luZyBOVU1BIGNhbiBoYXZlIGRpZmZlcmVudCBjcHUgcG9vbCBmb3IgZWFjaCBub2Rl
Lg0KPiANCj4gLi4uIGZyb20gbXkgdW5kZXJzdGFuZGluZywgYWxsIHRoZSB2Q1BVcyBvZiBhIGRv
bWFpbiBoYXZlIHRvIGJlIGluIHRoZSBzYW1lIGNwdXBvb2wuIFNvIHdpdGggdGhpcyBhcHByb2Fj
aCBpdCBpcyBub3QgcG9zc2libGU6DQo+ICAgMSkgdG8gaGF2ZSBhIG1peCBvZiBMSVRUTEUgYW5k
IGJpZyB2Q1BVcyBpbiB0aGUgZG9tYWluDQo+ICAgMikgdG8gY3JlYXRlIGEgZG9tYWluIHNwYW5u
aW5nIGFjcm9zcyB0d28gTlVNQSBub2Rlcw0KPiANCj4gU28gSSB0aGluayB3ZSBuZWVkIHRvIG1h
a2Ugc3VyZSB0aGF0IGFueSBzb2x1dGlvbnMgd2UgZ28gdGhyb3VnaCB3aWxsIG5vdCBwcmV2ZW50
IHVzIHRvIGltcGxlbWVudCB0aG9zZSBzZXR1cHMuDQoNClRoZSBwb2ludCBvZiB0aGlzIHBhdGNo
IGlzIHRvIG1ha2UgYWxsIGNvcmVzIGF2YWlsYWJsZSB3aXRob3V0IGJyZWFraW5nIHRoZSBjdXJy
ZW50IGJlaGF2aW91ciBvZiBleGlzdGluZyBzeXN0ZW0uDQoNClNvbWVvbmUgbm90IHVzaW5nIGNw
dXBvb2wgd2lsbCBrZWVwIHJ1bm5pbmcgb24gdGhlIHNhbWUgY29yZXMgYXMgYmVmb3JlLg0KU29t
ZW9uZSB3YW50aW5nIHRvIHVzZSB0aGUgb3RoZXIgY29yZXMgY291bGQgYXNzaWduIGEgZ3Vlc3Qg
dG8gdGhlIG90aGVyKHMpIGNwdXBvb2wgKGJpZy5MSVRUTEUgaXMganVzdCBhbiBleGFtcGxlIHdp
dGggMiBidXQgdGhlcmUgYXJlIG5vdyBjb3JlcyB3aXRoIDMgdHlwZXMgb2YgY29yZXMpLg0KU29t
ZW9uZSB3YW50aW5nIHRvIGJ1aWxkIHNvbWV0aGluZyBkaWZmZXJlbnQgY2FuIG5vdyBjcmVhdGUg
bmV3IGNwdXBvb2xzIGluIERvbTAgYW5kIGFzc2lnbiB0aGUgY29yZXMgdGhleSB3YW50IHRvIGlz
IHRvIGJ1aWxkIGEgZ3Vlc3QgaGF2aW5nIGFjY2VzcyB0byBkaWZmZXJlbnQgdHlwZXMgb2YgY29y
ZXMuDQoNClRoZSBwb2ludCBoZXJlIGlzIGp1c3QgdG8gbWFrZSB0aGUg4oCcb3RoZXLigJ0gY29y
ZXMgYWNjZXNzaWJsZSBhbmQgcGFyayB0aGVtIGluIGNwdXBvb2xzIHNvIHRoYXQgY3VycmVudCBi
ZWhhdmlvdXIgaXMgbm90IGNoYW5nZWQuDQoNCj4gDQo+IEkgY2FuIHNlZSB0d28gb3B0aW9ucyBo
ZXJlOg0KPiAgMSkgQWxsb3dpbmcgYSBkb21haW4gdkNQVXMgdG8gYmUgb24gYSBkaWZmZXJlbnQg
Y3B1cG9vbA0KPiAgMikgSW50cm9kdWNpbmcgQ1BVIGNsYXNzIChzZWUgWzFdKQ0KPiANCj4gSSBj
YW4ndCByZW1lbWJlciB3aHkgRGFyaW8gc3VnZ2VzdGVkIDIpIHJhdGhlciB0aGFuIDEpIGluIHRo
ZSBwYXN0LiBARGFyaW8sIGRvIHlvdSByZW1lbWJlciBpdD8NCg0KSSB0aGluayAxKSBpcyBkZWZp
bml0ZWx5IGludGVyZXN0aW5nIGFuZCBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBsb29rZWQgYXQg
aW4gdGhlIGZ1dHVyZS4NCg0KVGhpcyBzZXJpZSBqdXN0IGFpbXMgYXQgbWFraW5nIGFsbCBjb3Jl
cyBhdmFpbGFibGUgd2l0aG91dCBicmVha2luZyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdoaWNo
IGlzIGEgZ29vZCBpbXByb3ZlbWVudCBidXQgZG9lcyBub3QgY29udHJhZGljdCB0aGUgMiBvcHRp
b25zIHlvdSBhcmUgc3VnZ2VzdGluZy4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+IA0KPiBDaGVl
cnMsDQo+IA0KPiBbMV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzE0ODExMzUz
NzkuMzQ0NS4xNDIuY2FtZWxAY2l0cml4LmNvbS8NCj4gDQo+PiBUbyB0ZXN0IHRoaXMgc2VyaWUs
IHRoZSBobXBfdW5zYWZlIFhlbiBib290IGFyZ3VtZW50IGlzIHBhc3NlZCB0byBhbGxvdyBYZW4N
Cj4+IHN0YXJ0aW5nIGRpZmZlcmVudCBDUFVzIGZyb20gdGhlIGJvb3QgY29yZS4NCj4+IEx1Y2Eg
RmFuY2VsbHUgKDIpOg0KPj4gICB4ZW4vY3B1cG9vbDogQ3JlYXRlIGRpZmZlcmVudCBjcHVwb29s
cyBhdCBib290IHRpbWUNCj4+ICAgdG9vbHMvY3B1cG9vbHM6IEdpdmUgYSBuYW1lIHRvIHVubmFt
ZWQgY3B1cG9vbHMNCj4+ICB0b29scy9saWJzL2xpZ2h0L2xpYnhsX3V0aWxzLmMgfCAxMyArKysr
LS0NCj4+ICB4ZW4vYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAgfCAxNSArKysrKysNCj4+ICB4
ZW4vYXJjaC9hcm0vTWFrZWZpbGUgICAgICAgICAgfCAgMSArDQo+PiAgeGVuL2FyY2gvYXJtL2Nw
dXBvb2wuYyAgICAgICAgIHwgODQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K
Pj4gIHhlbi9jb21tb24vc2NoZWQvY3B1cG9vbC5jICAgICB8ICA1ICstDQo+PiAgeGVuL2luY2x1
ZGUveGVuL2NwdXBvb2wuaCAgICAgIHwgMzAgKysrKysrKysrKysrDQo+PiAgNiBmaWxlcyBjaGFu
Z2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCj4+ICBjcmVhdGUgbW9kZSAx
MDA2NDQgeGVuL2FyY2gvYXJtL2NwdXBvb2wuYw0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4v
aW5jbHVkZS94ZW4vY3B1cG9vbC5oDQo+IA0KPiAtLSANCj4gSnVsaWVuIEdyYWxsDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:16:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:16:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226757.391979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIvl-0003VG-SU; Wed, 17 Nov 2021 11:16:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226757.391979; Wed, 17 Nov 2021 11:16:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnIvl-0003V9-OR; Wed, 17 Nov 2021 11:16:45 +0000
Received: by outflank-mailman (input) for mailman id 226757;
 Wed, 17 Nov 2021 11:16:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnIvk-0003Uf-GZ
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:16:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnIvk-0006PV-EF
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:16:44 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnIvk-0001kr-DN
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:16:44 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mnIve-00059f-VH; Wed, 17 Nov 2021 11:16:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=q7DWdBP8a1VxxvQm5j9gplXTa8COphzD0/B88JW8l48=; b=labg0j7Mw9FQiZb4BVOzs6YZxp
	Z0Z1tjC1KiD6d12L2SWKxpQr9tdhpK6Veh9lQMa09NWNGMggV5WY3tg8W+PnlcOsnSpic1TFENBXG
	ancSkiXY6b2T+dXBeIvbnhvQ4jqIIy//oDisOwi+lCMODeB/N15kRfqQxxvSy7GQLgr8=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24980.58518.431781.673797@mariner.uk.xensource.com>
Date: Wed, 17 Nov 2021 11:16:38 +0000
To: Andrew Cooper <amc96@srcf.net>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
    xen-devel@lists.xenproject.org,
    Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?=  <marmarek@invisiblethingslab.com>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH for-4.16 4/4] tools/python: fix python libxc bindings to
 pass a max grant version
In-Reply-To: <a673781a-a819-78e9-9ac5-d54345555d95@srcf.net>
References: <20211115121741.3719-1-roger.pau@citrix.com>
	<20211115121741.3719-5-roger.pau@citrix.com>
	<a673781a-a819-78e9-9ac5-d54345555d95@srcf.net>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("Re: [PATCH for-4.16 4/4] tools/python: fix python libxc bindings to pass a max grant version"):
> On 15/11/2021 12:17, Roger Pau Monne wrote:
> > Such max version should be provided by the caller, otherwise the
> > bindings will default to specifying a max version of 2, which is
> > inline with the current defaults in the hypervisor.
> >
> > Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> > Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

FTR

Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:21:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:21:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226767.391990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJ0V-0005FD-Eg; Wed, 17 Nov 2021 11:21:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226767.391990; Wed, 17 Nov 2021 11:21:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJ0V-0005F6-BJ; Wed, 17 Nov 2021 11:21:39 +0000
Received: by outflank-mailman (input) for mailman id 226767;
 Wed, 17 Nov 2021 11:21:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Swqu=QE=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mnJ0T-0005Ew-JE
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:21:37 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 86c142ac-4798-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 12:21:36 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 057971FD29;
 Wed, 17 Nov 2021 11:21:36 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 980AC13C93;
 Wed, 17 Nov 2021 11:21:35 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id ZcC/I7/llGHyKAAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 17 Nov 2021 11:21:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86c142ac-4798-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637148096; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=PJDqaQ3WWXXy1R785BNHte76FXIaO7+JlbYv+mee9to=;
	b=r/cVJ5RvjYaRB3kl3OX/a1WYz50gf0FtAbR27T/1pM2zbyplErBt1XN4y2cRcu9aUA3WBS
	SQS+4SJUFQ3QcyvKG7Nih5DEDkQ59DaaC6XJjSSlTNZHAEcuKKQq7UJpWWCCw5xMS0skcE
	qE67wvbRPjw4f7vrRcO2CfF1sv98WG8=
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
To: Bertrand Marquis <Bertrand.Marquis@arm.com>, Julien Grall <julien@xen.org>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <9cf3d606-9284-1439-3a26-18c4a931da48@suse.com>
Date: Wed, 17 Nov 2021 12:21:35 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="qiJhUBFDyXbRsBqWc3cEYQFNLnNxtl64T"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--qiJhUBFDyXbRsBqWc3cEYQFNLnNxtl64T
Content-Type: multipart/mixed; boundary="xoyhLEf0Pagh2BtDxkJ13Y6yGXTV5985V";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>, Julien Grall <julien@xen.org>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <9cf3d606-9284-1439-3a26-18c4a931da48@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
In-Reply-To: <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>

--xoyhLEf0Pagh2BtDxkJ13Y6yGXTV5985V
Content-Type: multipart/mixed;
 boundary="------------BF362D578D2C8E54B806BE2A"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------BF362D578D2C8E54B806BE2A
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 17.11.21 12:16, Bertrand Marquis wrote:
> Hi Julien,
>=20
>> On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
>>
>> Hi Luca,
>>
>> On 17/11/2021 09:57, Luca Fancellu wrote:
>>> Currently Xen creates a default cpupool0 that contains all the cpu br=
ought up
>>> during boot and it assumes that the platform has only one kind of CPU=
=2E
>>> This assumption does not hold on big.LITTLE platform, but putting dif=
ferent
>>> type of CPU in the same cpupool can result in instability and securit=
y issues
>>> for the domains running on the pool.
>>
>> I agree that you can't move a LITTLE vCPU to a big pCPU. However...
>>
>>> For this reason this serie introduces an architecture specific way to=
 create
>>> different cpupool at boot time, this is particularly useful on ARM bi=
g.LITTLE
>>> platform where there might be the need to have different cpupools for=
 each type
>>> of core, but also systems using NUMA can have different cpu pool for =
each node.
>>
>> ... from my understanding, all the vCPUs of a domain have to be in the=
 same cpupool. So with this approach it is not possible:
>>    1) to have a mix of LITTLE and big vCPUs in the domain
>>    2) to create a domain spanning across two NUMA nodes
>>
>> So I think we need to make sure that any solutions we go through will =
not prevent us to implement those setups.
>=20
> The point of this patch is to make all cores available without breaking=
 the current behaviour of existing system.

May I suggest to add a boot parameter for being able to control this
behavior by other means than compile time configuration?

>=20
> Someone not using cpupool will keep running on the same cores as before=
=2E
> Someone wanting to use the other cores could assign a guest to the othe=
r(s) cpupool (big.LITTLE is just an example with 2 but there are now core=
s with 3 types of cores).
> Someone wanting to build something different can now create new cpupool=
s in Dom0 and assign the cores they want to is to build a guest having ac=
cess to different types of cores.
>=20
> The point here is just to make the =E2=80=9Cother=E2=80=9D cores access=
ible and park them in cpupools so that current behaviour is not changed.
>=20
>>
>> I can see two options here:
>>   1) Allowing a domain vCPUs to be on a different cpupool
>>   2) Introducing CPU class (see [1])
>>
>> I can't remember why Dario suggested 2) rather than 1) in the past. @D=
ario, do you remember it?
>=20
> I think 1) is definitely interesting and something that could be looked=
 at in the future.

 From scheduler point of view this is IMO a nightmare.


Juergen

--------------BF362D578D2C8E54B806BE2A
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------BF362D578D2C8E54B806BE2A--

--xoyhLEf0Pagh2BtDxkJ13Y6yGXTV5985V--

--qiJhUBFDyXbRsBqWc3cEYQFNLnNxtl64T
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGU5b8FAwAAAAAACgkQsN6d1ii/Ey9h
xAgAhsa9PYCu9MmsNLy0i0oIvEinDgCDbxOB1XSEkZ+3kCHh3nB04usXhindeQso6vDUvLiygFMU
7ca2GqG4h2dkn2bPfYUkDPjgd7bHZQdkeYuc50oS0MF7onVW1iE06kIL7Y/qHOt2UIYqRp6XDhaW
HLeGK293XEALRtNfrmi/SarAUu0BoaHD6SAenSdKC3gNdS05yfR8o0SRQYz6FIb8lA5uOPkNb3qv
X8uDN/mD4qnQrpKYvKpxmEV5tCuN/HhJODhdpqrnKaER6yxRv2I756VMFLc7nAXC1WbX8zi3H44N
weNO79MXanEvIYIihJ4QndMg6NWERew7ePsWDeKZKQ==
=kYpe
-----END PGP SIGNATURE-----

--qiJhUBFDyXbRsBqWc3cEYQFNLnNxtl64T--


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:23:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226771.392000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJ2A-0005pE-PJ; Wed, 17 Nov 2021 11:23:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226771.392000; Wed, 17 Nov 2021 11:23:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJ2A-0005p7-MI; Wed, 17 Nov 2021 11:23:22 +0000
Received: by outflank-mailman (input) for mailman id 226771;
 Wed, 17 Nov 2021 11:23:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ayfn=QE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnJ29-0005p1-2I
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:23:21 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c44fc579-4798-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 12:23:19 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2108.outbound.protection.outlook.com [104.47.18.108])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-39-iKa-duLwMQ2QUZnzN8DXJQ-1; Wed, 17 Nov 2021 12:23:18 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4381.eurprd04.prod.outlook.com (2603:10a6:803:6d::30)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Wed, 17 Nov
 2021 11:23:16 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Wed, 17 Nov 2021
 11:23:16 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0101CA0003.eurprd01.prod.exchangelabs.com (2603:10a6:206:16::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Wed, 17 Nov 2021 11:23:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c44fc579-4798-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637148199;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=6LH8bjd2DOVyr7qTLgENFchGNs0/2XMC+Qhv4jBDCbA=;
	b=TYF+WkYYfFrD4yVa6hk3HZUxK46tbNvIAnlXm/SlDOQOQct3MqxqEVZiUrQhssg0JUmxov
	UErJJ57y1GRnY6+/n8+sKWbVl6hNVZ//X3788n4vCYs6jx7ZfhbHLUqqqXl4fe+WZn9lVz
	VW2fCUYQ9uL7HLHSfNH9Ny4IcPWkbGk=
X-MC-Unique: iKa-duLwMQ2QUZnzN8DXJQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XevNKNFbF/ArfF+3gn0+4e8XmxvHO6CIjk/Tcv8wMwojx7FZ8/yxvOEgo5D7Xi1UK7V0WyJyY/v8d3eA/JDzAxOBX+xAvrLeqPlCdhTPnYhammmweHQ2m0EoJrAqGY57v3AsxZy17RXg5rkFSIF0lySX3qC/Ac3+eaRUcfVcLJHeQwjhGcjPoOKdrbFG7e6prY3p+Et0cey9Ass+FcYiPAId7WvAZKw+HfP3FSqMpYVaS8EdxffRVqqlnodVkrJtIODBqRHOlKilQHF9/Vy0ikxOa+dVjBCtKeiV7Tr0Ct3jY8hE5dwDu6j10C0z1L6AsO+EpPAruMlCTcGu9eEoFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=14hPiTk2gguYcKLApCOn5laYX8odgYsKi0JoiDkOStQ=;
 b=ZIIzikhL1SHIbeeHyYkIDTu4XbwxzYAv0ymfYf2zHx/gfMGNsBlvkTyVQJOM3fY18ArkZGD3kn61b8gKkLdXYX7gCauObaeIxjX8Wifj4pbGX1ulfLfGkEA1AWxAgx1JaZpGNOSIjabJS49KTXtYK7iPj8eZtD7J3gHiW6rm8bypfyo4wLdPdoT5EhdY2i+81mN7ySln3uCWaB2go1z7m7QAWxcZc+h+e07huhBXYE1+okRBA4VZ/ME9AL0KMTf7MAknGtyvfXp6lYEtH7KpTEvbEESyptd8Nnex+blnLCbguVL3d3kJbjR8jfdT6lUIskH1jW1QfqbIIoFmh9FsqQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <3d7d5069-591d-4535-c13a-5976e1172a68@suse.com>
Date: Wed, 17 Nov 2021 12:23:14 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: PCI pass-through vs PoD
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony Perard <anthony.perard@citrix.com>, Ian Jackson
 <iwj@xenproject.org>, Paul Durrant <paul@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
References: <b6d598cd-c244-2b7f-c731-fe839df3382e@suse.com>
 <b62a87ca-b68f-76fd-51c6-114e8b8e125b@suse.com>
 <YZTDkNRY5pMLFUR6@Air-de-Roger>
 <fe31a1b4-8c66-701d-f951-6426fa72252c@suse.com>
 <d2650a7e-f681-301c-6959-bc84a502255a@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <d2650a7e-f681-301c-6959-bc84a502255a@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0101CA0003.eurprd01.prod.exchangelabs.com
 (2603:10a6:206:16::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d79134eb-cfc6-4b7c-da10-08d9a9bca66c
X-MS-TrafficTypeDiagnostic: VI1PR04MB4381:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4381A142432912B982D79E80B39A9@VI1PR04MB4381.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1T/udkGfZzOx6+Epzm3SqXIM9jtshO4aQ6dCSN4bY1ar5e+lggOz2FyhISSnJ7Ux3ohyGzGjjbgzGbDnhj+67AZnFu9/liZ4o5TeSpp7sgbD/bwmMnOYLKjXgkx6wyPB4t63pc4IWSQhxeqD1rhmnMV+b9oL7xuqTj1D/E0I/TTBMCAzZj5kPynFN1+UcS7yfOBAeYc+BIqGCbcQDPLLktThIdFAPJSUUOsK2MBNc6lJPzdqmmSuUxmg8oSoJcwx9mfU6XtsOgsGD8r4Vc5K1WhTPB3YlwevYjnuamD3jCBWlPg9H6BuiBRioii0OCmUubfRuvRmt1d7XKVTGp09L7ulYbQVH+lSPn8YgCHDYfKVy0Dy3EG8ejtipR7opHi8LMos3RLTWnq3qChgf7k3pbN8j8zXWjcs8+rtdn3hV2QSfgUR0J1FNRPXvMz/gIYmsbIkL2aiQrfqIM6XAhfnqbuFpdwRi2df6PNTXVc1AMhI8qc6aFY5m/NQaKMyp0D827GNcBMEQWsDqMqYj0ImXrq2NNCN63RNgoBmy/qJoKS1NDIKjXq0yHBDeljmD5iOYaukEoQnOF6WaaFcNx5XheXnA4MX5bEO0i2RQ5qnWphcEX6HTL8sKo7Idk8rb0slcviP2JXZerR7Y/GRxI1SfPShmO3fGfmcxCn8clgGulHm9d7OOfnE8dUs4ZQOlETwzFWz6PahsOydohYrvnvQZQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(5660300002)(4326008)(66946007)(110136005)(2616005)(186003)(6486002)(8676002)(53546011)(3480700007)(26005)(31696002)(8936002)(316002)(66476007)(508600001)(36756003)(16576012)(31686004)(956004)(66556008)(38100700002)(86362001)(54906003)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?diDpEUyvt3jZfnxQPkNBSRjCvpfWVIDPyzIlDn9IW9xNWDE/piTrQGNvKytA?=
 =?us-ascii?Q?LasrVGyks1nt8FQTq6URvDWNkTlDIHraoSnmObqTTHm28OQ59yXsqW4Riplp?=
 =?us-ascii?Q?2MPqy5uM3fNxL/bFhTUikKhjOUl7eArofXYR1yovKE1GHeRoNQst6UoVVo/K?=
 =?us-ascii?Q?PnXqgvd3eKjhxHV6x0dNkhZetUgVxDru0SoUbxduHUd6aHh7tvie8TvDryi+?=
 =?us-ascii?Q?NaMyeT9jSAu9WsXaEmNTQ5NsdcIapi2EW/8NS49kUmpla2EKMYSMp1fZNHYk?=
 =?us-ascii?Q?DX9LEmI3tb6pSGqo0N3hvLljVqK0nBsP7+0Cy8k/xplIbLDaXy6XH0JZrj/b?=
 =?us-ascii?Q?F8/glUPNkqZrpYIt48gaWaA1/8e2Tr96SLuiImCmaYsfeaeImV6HdBjVyckl?=
 =?us-ascii?Q?pRA1F/9udxw6kn2hVc8A5nzOduzI9DcA3qVnjU70e6Hk2U2ErTwWRZ5YuZVO?=
 =?us-ascii?Q?nujjhY9X0pU5V6ESNJGKVm6K7Zz+/xVyzf0buRUzA6Oj0CnFxpp6wHt8S2YD?=
 =?us-ascii?Q?eaBkShJiCcpOhQpEXeahyKFK3kmnWydgdtluTn1qLHWmz9Hjn/JudnF42CrY?=
 =?us-ascii?Q?b8LLvePq+odcK8dP1Ycn/Trzmo0Ky0hHf7m9OvOFKWDgOXFb0Q7Lg9UD74Pu?=
 =?us-ascii?Q?8S+wWNoRflU+qcxifkNBOMNMGRoQMoAza41VGVxgHSI9p8uGAod4aVqO1iFp?=
 =?us-ascii?Q?19lMoS5IK6obzGCntpWlDIIyVec4UxkAj0MYFCmzSW8dszeb3yf4usxGRZ88?=
 =?us-ascii?Q?6ojWSpdey0T2XaQsvyxeSf0xpcu2v8T0ppqnMfzoimIOsr+7Fpw4+Gq7g3tj?=
 =?us-ascii?Q?9FGfNYIX//K6sossnD6EF1559yYQJ8QCMiZ/dyTLnxZsgUG3DlwWCs9C/pKn?=
 =?us-ascii?Q?dbVD1Er4mYMPeitk5cF0VKFJjcFHgajjq9UKBiaEg536icQXWSu4wAqj9/JT?=
 =?us-ascii?Q?GnXMnhWCApFZW3OLSqEWLl4GRHys7CPcGxk4brLXBa6Ul62llO+Vxq2IvRiD?=
 =?us-ascii?Q?/c090GIUN9ZTt4dWXG4aeNvjSO29X/W/2lY6ZrndW7dCitXLZt+M1iYvP6IB?=
 =?us-ascii?Q?fwFBBw0Ot9+cQW1leIFUIabMDmGtOF49Xbq88xtb3Xsmv+wyrZlXiFyYhBRO?=
 =?us-ascii?Q?jaaYPfDXFN+snbl0J1Bw9zz4EUspktkSJHZEqP9yse+zT0U+ht1q4bih+ird?=
 =?us-ascii?Q?mdR57SI+Ou2R/kho5cB9ZWoYUz+9gpYVRH6PZgxq5rvwJ8l5KUYFlnVm/bqn?=
 =?us-ascii?Q?9k9bQEayQA8svz5c7SHUWadEoOp6kHuTACdxPm+xnclW6hQC++6RVCU2SGwK?=
 =?us-ascii?Q?X3xIyWgch5516j/XEXBNb8yzx+0sd6MdCX1fyQJrw8I7E7TeGABPgDP4YQND?=
 =?us-ascii?Q?C8Lm4ES5rDFpEQ9vH1ulAoQxdeqWT9LH0yFBpCDSMKnE5UV4npEQRGnsgvS4?=
 =?us-ascii?Q?xi3+KFLNpvTNqo6/gu5uOU/wKEcz1KIMV09KiY2gL0L9yNZjYBvTeVNaGdVq?=
 =?us-ascii?Q?UfOKruJf4Dv8j8BKSm/sVZu58hMms9qcgUY0MWq/Nsi5qrRIIFR8a6eXRrnT?=
 =?us-ascii?Q?U2C9tFK08T0VqiAz6XMUyd+ZlT/cUIEmRjZrSr5hDpdDw2aMmcyrmbENuvT1?=
 =?us-ascii?Q?2euMSu8AH7B0XZbAQCD6894=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d79134eb-cfc6-4b7c-da10-08d9a9bca66c
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 11:23:16.1712
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hIz049F40wbiwjLz3MOGpEIclgHZ6aAXIS7m9rRMy7QjccgG7b5RaBbI3JuQ3S5Xr/1FuV6lN0fd/bYEm0VsOQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4381

On 17.11.2021 12:09, Andrew Cooper wrote:
> On 17/11/2021 10:13, Jan Beulich wrote:
>> On 17.11.2021 09:55, Roger Pau Monn=C3=A9 wrote:
>>> On Wed, Nov 17, 2021 at 09:39:17AM +0100, Jan Beulich wrote:
>>>> On 13.09.2021 11:02, Jan Beulich wrote:
>>>>> libxl__domain_config_setdefault() checks whether PoD is going to be
>>>>> enabled and fails domain creation if at the same time devices would g=
et
>>>>> assigned. Nevertheless setting up of IOMMU page tables is allowed.
>>> I'm unsure whether allowing enabling the IOMMU with PoD is the right
>>> thing to do, at least for our toolstack.
>> May I ask about the reasons of you being unsure?
>=20
> PoD and passthrough is a total nonsense.=C2=A0 You cannot have IOMMU mapp=
ings=20
> to bits of the guest physical address space which don't exist.
>=20
> It is now the case that IOMMU (or not) must be specified at domain=20
> creation time, which is ahead of creating PoD pages.=C2=A0 Certainly as f=
ar=20
> as Xen is concerned, the logic probably wants reversing to have=20
> add_to_physmap&friends reject PoD if an IOMMU was configured.
>=20
> A toolstack could, in principle, defer the decision to first device=20
> assignment.

Right, which is what I consider the preferred approach.

> However, this is terrible behaviour all around, because one way or=20
> another we've got to force-populate all PoD pages (which is potentially=20
> minutes worth of work to do),

Sure.

> and liable to suffer -ENOMEM,

Not if (as suggested) we first check that the PoD cache is large enough
to cover all PoD entries.

> or we have=20
> to reject a control operation with -EBUSY for a task which is dependent=20
> on the guest kernel actions in a known-buggy area.

Why reject anything?

> There is no point trying to make this work.=C2=A0 If a user wants a devic=
e,=20
> they don't get to have PoD.=C2=A0 Anything else is a waste of time and ef=
fort=20
> on our behalf for a usecase that doesn't exist in practice.

Not sure where you take the latter from. I suppose I'll submit the patch
as I have it now (once I have properly resolved dependencies on other
patches I have queued and/or pending), and if that's not deemed acceptable
plus if at the same time I don't really agree with proposed alternatives,
I'll leave fixing the bug to someone else. Of course the expectation then
is that such a bug fix come forward within a reasonable time frame ...

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:27:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:27:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226776.392012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJ5z-0006Un-9c; Wed, 17 Nov 2021 11:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226776.392012; Wed, 17 Nov 2021 11:27:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJ5z-0006Ug-6a; Wed, 17 Nov 2021 11:27:19 +0000
Received: by outflank-mailman (input) for mailman id 226776;
 Wed, 17 Nov 2021 11:27:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnJ5y-0006Ua-8j
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:27:18 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnJ5y-0006un-65
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:27:18 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnJ5y-0002JU-5B
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:27:18 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mnJ5u-0005DZ-Fs; Wed, 17 Nov 2021 11:27:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=YhFVBscsLtPAF/Ls0uW4TIPGjmxcUUUOUvNDO7Az+PE=; b=oCAKWhIQt1mn/em61lf+PQVACG
	0K8bNsIfEqLPPP+C0LJTGpaFNA0KX2xQTt0viOBNBlHx8SJvypTX/BGAd6zyQPkGSiQlYIN+wP88r
	Gi+bNgVIDTMfmBHf5BcAJo4KzG4qRHBV1tPmeOJ7mKY+A6+E7XRVf2ut4rbVLbwvk1ao=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24980.59153.643830.74053@mariner.uk.xensource.com>
Date: Wed, 17 Nov 2021 11:27:13 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16 0/2] CHANGELOG: start to populate entries for 4.16
In-Reply-To: <20211117095338.14947-1-roger.pau@citrix.com>
References: <20211117095338.14947-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16 0/2] CHANGELOG: start to populate entries for 4.16"):
> The following changes are preparation work for the 4.16 release. This
> is my first pass at the log for the release, it's likely missing more
> entries.
> 
> I'm Ccing all maintainers in this cover letter and also in patch #2 for
> further feedback on missing items.

Thanks!  Dropped the CC list for this mail:

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

for both patches (including future versions).

Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:38:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:38:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226782.392023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJG4-0007zi-Ci; Wed, 17 Nov 2021 11:37:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226782.392023; Wed, 17 Nov 2021 11:37:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJG4-0007zb-9Y; Wed, 17 Nov 2021 11:37:44 +0000
Received: by outflank-mailman (input) for mailman id 226782;
 Wed, 17 Nov 2021 11:37:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnJG3-0007zV-GD
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:37:43 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnJG3-0007J0-Ct
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:37:43 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnJG3-0002uo-Bw
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:37:43 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mnJFw-0005FW-Je; Wed, 17 Nov 2021 11:37:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=lJQksZ65pv1TCUVk3MFtBpRg8bbHdgrfLeHqxA5jeiA=; b=y8kp2nR/dlb3qeth4Jvy3Mkh3o
	zZErhKbEn8NocTVEdu9NBO91FJS2huDWvPrR92WaOS3Ex5xt2uPSBQF0+sYLUSUkIivyqc0X4J9NP
	ZLZm9RdcsZ+1mudoQQP+fG5RcmbYQxg23GjDG/T3uz5PLDfbRnacLGCIqxq6od24cu+U=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24980.59775.757513.572454@mariner.uk.xensource.com>
Date: Wed, 17 Nov 2021 11:37:35 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
    Community Manager <community.manager@xenproject.org>,
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH for-4.16 1/2] CHANGELOG: set Xen 4.15 release date
In-Reply-To: <0994aad7-0e2b-a78c-5b23-422c93dea353@suse.com>
References: <20211117095338.14947-1-roger.pau@citrix.com>
	<20211117095338.14947-2-roger.pau@citrix.com>
	<0994aad7-0e2b-a78c-5b23-422c93dea353@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH for-4.16 1/2] CHANGELOG: set Xen 4.15 release date"):
> I'm puzzled how we managed to have missed that.

Manual faff and eyes glazing over I think...

> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -22,7 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >     no longer be built per default. In order to be able to use those, configure needs to
> >     be called with "--enable-qemu-traditional" as parameter.
> >  
> > -## [4.15.0 UNRELEASED](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - TBD
> > +## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2021-04-08
> 
> One day off is not really a problem, but I wonder how you ended up with the
> 8th. The tag was made on the 7th, and the commit that was tagged had been
> made on the 6th.

The announcement was made on the 8th.  The release deliverables are
generally prepped the day before the formal release.

Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:39:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:39:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226786.392033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJHf-000081-OA; Wed, 17 Nov 2021 11:39:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226786.392033; Wed, 17 Nov 2021 11:39:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJHf-00007u-LG; Wed, 17 Nov 2021 11:39:23 +0000
Received: by outflank-mailman (input) for mailman id 226786;
 Wed, 17 Nov 2021 11:39:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sAWr=QE=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1mnJHd-00007o-Lu
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:39:21 +0000
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com
 [66.111.4.26]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff9d7d0f-479a-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 12:39:20 +0100 (CET)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailout.nyi.internal (Postfix) with ESMTP id BA4AF5C0209;
 Wed, 17 Nov 2021 06:39:17 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute5.internal (MEProxy); Wed, 17 Nov 2021 06:39:17 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 17 Nov 2021 06:39:16 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff9d7d0f-479a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to:x-me-proxy
	:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=0RS0wq
	3UVF21owVzpJPXyb1ecifh7eOPcXxp4IMIN9U=; b=MB6ugb/xp5EggALjbeQHpc
	Jz12O7Tpw/EJqclxW1W/gL9eGGPeReCwbj9CxGRCZJYhJzH18KJ1+xz8114FfK0N
	c/umHrFhv26Dxuen4rcEXKz8sFoFO2w7SP54mFEkueG8rlwK5ZPVtItaBBY3DWzI
	iBEbs0PSd+rOCG7vvpgUo42o19nlQzFq1JKe/gyb5PsvSVPdot70HdOt2lPSzA66
	/p7+xNXlvP/4OiN7gVNby+k3li6B46qpOwTcpKm94atgEmSDwGCobuo/V5TFZw+W
	Iq+kE1dpCUePHtjR/ULWVr8cBJErX1IpzmgAldwnnPKiK+jgd59Lllj+N0QWRuFw
	==
X-ME-Sender: <xms:5emUYVlMewQOpyTDwYSft8n1DZcS__jaYN12grLdE0q_cuMk4U3Czg>
    <xme:5emUYQ2UGYdyCDr6b9VqCvFhqVnwZNSrVooV6GXZU3P7ZWR_yF-obt95EH4WzWhKv
    OlghyT8FDyAKg>
X-ME-Received: <xmr:5emUYboPRDov5Y5N0lG73EyAv4IWKI0WrAuJWQy5lhuuu5q2oSuT-Cy28vyQqVkW2eDRiTxh10NYGzyXlSUYuwQ9rWsqOcbH>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrfeeggddvhecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepteevffei
    gffhkefhgfegfeffhfegveeikeettdfhheevieehieeitddugeefteffnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:5emUYVk6dwVN1Hm9sBMufNX3l9GXuQrMJ6gWWiFViBP7LjHGN6uB4g>
    <xmx:5emUYT2Sf6Z49RdN2QRxG_bf5d7qEKjbZ-zg4sFmr_n09mj7RSC7lA>
    <xmx:5emUYUuu1riAlhaLHiKqIVVc8YFGQfu4aVJ4BIo0M0p9I_RApR8gXw>
    <xmx:5emUYc_Xz5Lvml2Yl8innrbanL2KECoMsbWmxPXCOsy9PxGhy5NB8A>
Date: Wed, 17 Nov 2021 12:39:12 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
	Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH for-4.16 4/4] tools/python: fix python libxc bindings to
 pass a max grant version
Message-ID: <YZTp4Oi1EDEyk0Jd@mail-itl>
References: <20211115121741.3719-1-roger.pau@citrix.com>
 <20211115121741.3719-5-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="0rDW33ZUHJNBZ5CD"
Content-Disposition: inline
In-Reply-To: <20211115121741.3719-5-roger.pau@citrix.com>


--0rDW33ZUHJNBZ5CD
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 17 Nov 2021 12:39:12 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
	Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH for-4.16 4/4] tools/python: fix python libxc bindings to
 pass a max grant version

On Mon, Nov 15, 2021 at 01:17:41PM +0100, Roger Pau Monne wrote:
> Such max version should be provided by the caller, otherwise the
> bindings will default to specifying a max version of 2, which is
> inline with the current defaults in the hypervisor.
>=20
> Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Acked-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

> ---
> Cc: Ian Jackson <iwj@xenproject.org>
>=20
> Without this fix the python bindings won't be usable, as they will
> attempt to pass a max version of 0 which will be refused by the
> hypervisor. The main risk would be breaking the bindings, but given
> the current state it's unlikely to result in a worse outcome.
> ---
>  tools/python/xen/lowlevel/xc/xc.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>=20
> diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowleve=
l/xc/xc.c
> index 6293d205a3..fd00861032 100644
> --- a/tools/python/xen/lowlevel/xc/xc.c
> +++ b/tools/python/xen/lowlevel/xc/xc.c
> @@ -116,7 +116,7 @@ static PyObject *pyxc_domain_create(XcObject *self,
>                                      PyObject *args,
>                                      PyObject *kwds)
>  {
> -    uint32_t dom =3D 0, target =3D 0;
> +    uint32_t dom =3D 0, target =3D 0, max_grant_version =3D 2;
>      int      ret;
>      size_t   i;
>      PyObject *pyhandle =3D NULL;
> @@ -132,12 +132,13 @@ static PyObject *pyxc_domain_create(XcObject *self,
>      };
> =20
>      static char *kwd_list[] =3D { "domid", "ssidref", "handle", "flags",
> -                                "target", "max_vcpus", NULL };
> +                                "target", "max_vcpus", "max_grant_versio=
n",
> +                                NULL };
> =20
> -    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "|iiOiii", kwd_list,
> +    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "|iiOiiii", kwd_list,
>                                        &dom, &config.ssidref, &pyhandle,
>                                        &config.flags, &target,
> -                                      &config.max_vcpus) )
> +                                      &config.max_vcpus, &max_grant_vers=
ion) )
>          return NULL;
>      if ( pyhandle !=3D NULL )
>      {
> @@ -162,6 +163,7 @@ static PyObject *pyxc_domain_create(XcObject *self,
>  #else
>  #error Architecture not supported
>  #endif
> +    config.grant_opts =3D XEN_DOMCTL_GRANT_version(max_grant_version);
> =20
>      if ( (ret =3D xc_domain_create(self->xc_handle, &dom, &config)) < 0 )
>          return pyxc_error_to_exception(self->xc_handle);
> --=20
> 2.33.0
>=20

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--0rDW33ZUHJNBZ5CD
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmGU6eIACgkQ24/THMrX
1yxO2Af/aJVdiZMEMieXT7yDPb/DZEwyZLGU7yDoWJOO0IgeQYc3NNMdrM1SnBk3
AgmMX4nQmgm6//JILO0myveXJAncvXIHF9nfKHYQC41InQ2yYC+bUzpqvdc5ID2E
KURX9Z6cgvqNORcVlg3fCB3bXYVAUzLPvDJAfXxT4lU9PrM4lhg5KsjUaTWQQcBC
LNdrLki8Q4QBZ36M8+VLOF1EtjYQnVGHf6gDv4FTaFMknZj26UdQaCktMw0gZylU
2hEqydV8Tyj6vi00uNkfG+rTANnGdP5kjHmIsZGbg05H/CrpeiKOlg4cO9oAb90v
7qdLwq9tHLNSJkOf+JaYyw08gE+hFg==
=0aMq
-----END PGP SIGNATURE-----

--0rDW33ZUHJNBZ5CD--


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:44:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:44:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226793.392057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJMp-0001fX-F0; Wed, 17 Nov 2021 11:44:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226793.392057; Wed, 17 Nov 2021 11:44:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJMp-0001fQ-C0; Wed, 17 Nov 2021 11:44:43 +0000
Received: by outflank-mailman (input) for mailman id 226793;
 Wed, 17 Nov 2021 11:44:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=N6FX=QE=arm.com=michal.orzel@srs-se1.protection.inumbo.net>)
 id 1mnJMn-0001fK-UY
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:44:41 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id bf74587d-479b-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 12:44:40 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7A3601FB;
 Wed, 17 Nov 2021 03:44:39 -0800 (PST)
Received: from [10.57.29.207] (unknown [10.57.29.207])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5C3963F70D;
 Wed, 17 Nov 2021 03:44:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf74587d-479b-11ec-a9d2-d9f7a1cc8784
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
To: Julien Grall <julien@xen.org>, Roger Pau Monne <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Dario Faggioli
 <dfaggioli@suse.com>, David Scott <dave@recoil.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Josh Whitehead <josh.whitehead@dornerworks.com>,
 Juergen Gross <jgross@suse.com>, Jun Nakajima <jun.nakajima@intel.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>,
 Nick Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>,
 Quan Xu <quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Shriram Rajagopalan <rshriram@cs.ubc.ca>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <7354e1bf-f34e-c604-b126-fdbfd53afe62@xen.org>
From: Michal Orzel <michal.orzel@arm.com>
Message-ID: <0e8ab234-edf4-10d4-74ea-ddb9d1e2953c@arm.com>
Date: Wed, 17 Nov 2021 12:44:25 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <7354e1bf-f34e-c604-b126-fdbfd53afe62@xen.org>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

Hi,

On 17.11.2021 11:00, Julien Grall wrote:
> Hi,
> 
> On 17/11/2021 09:53, Roger Pau Monne wrote:
>> Document some of the relevant changes during the 4.16 release cycle,
>> likely more entries are missing.
>>
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>> ---
>>   CHANGELOG.md | 11 +++++++++++
>>   1 file changed, 11 insertions(+)
>>
>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>> index ad1a8c2bc2..8b0bdd9cf0 100644
>> --- a/CHANGELOG.md
>> +++ b/CHANGELOG.md
>> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>    - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
>>      no longer be built per default. In order to be able to use those, configure needs to
>>      be called with "--enable-qemu-traditional" as parameter.
>> + - Fixes for credit2 scheduler stability in corner case conditions.
>> + - Ongoing improvements in the hypervisor build system.
>> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
>> + - 32bit PV guests only supported in shim mode.
>> + - Improved PVH dom0 debug key handling.
>> + - Fix booting on some Intel systems without a PIT (i8254).
>> +
>> +### Added
>> + - 32bit Arm builds to the automated tests.
>> + - New x86 pagetable APIs.
>> + - Arm vPMU support.
> 
> I would add "Early" or something similar because this can only work in a constrained setup.
> 
+1.
I would say:
"Arm early vPMU support for guests."

> Cheers,
> 

Cheers,
Michal


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:48:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:48:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226797.392068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJQh-0002Jn-QG; Wed, 17 Nov 2021 11:48:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226797.392068; Wed, 17 Nov 2021 11:48:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJQh-0002Jg-N7; Wed, 17 Nov 2021 11:48:43 +0000
Received: by outflank-mailman (input) for mailman id 226797;
 Wed, 17 Nov 2021 11:48:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnJQh-0002Ja-57
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:48:43 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnJQg-0007VL-3P; Wed, 17 Nov 2021 11:48:42 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=[192.168.21.213]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnJQf-0003dF-TA; Wed, 17 Nov 2021 11:48:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=mpApsSg1E3OQHUYW1TRPvg2gV1+EAFXMAWBUyIm1WpA=; b=S+dWXGtsFfmy6yoge4TnqdssEZ
	DQVJ8nYPnoUekh2yYnDPdGnNo3gUi1+8nt+Z+iPB0zt3Yc3U4xjhQKfq2ih8S2arrfqDKtNA/vEwz
	Uto1zt3oj26pxj4jmHLyf7D1ynbQhc4ybF8aaa3mtnlyrE84PtV63fLVJq5+wuBT8j5A=;
Message-ID: <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
Date: Wed, 17 Nov 2021 11:48:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Juergen Gross <jgross@suse.com>, Dario Faggioli <dfaggioli@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 17/11/2021 11:16, Bertrand Marquis wrote:
> Hi Julien,

Hi,

>> On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
>>
>> Hi Luca,
>>
>> On 17/11/2021 09:57, Luca Fancellu wrote:
>>> Currently Xen creates a default cpupool0 that contains all the cpu brought up
>>> during boot and it assumes that the platform has only one kind of CPU.
>>> This assumption does not hold on big.LITTLE platform, but putting different
>>> type of CPU in the same cpupool can result in instability and security issues
>>> for the domains running on the pool.
>>
>> I agree that you can't move a LITTLE vCPU to a big pCPU. However...
>>
>>> For this reason this serie introduces an architecture specific way to create
>>> different cpupool at boot time, this is particularly useful on ARM big.LITTLE
>>> platform where there might be the need to have different cpupools for each type
>>> of core, but also systems using NUMA can have different cpu pool for each node.
>>
>> ... from my understanding, all the vCPUs of a domain have to be in the same cpupool. So with this approach it is not possible:
>>    1) to have a mix of LITTLE and big vCPUs in the domain
>>    2) to create a domain spanning across two NUMA nodes
>>
>> So I think we need to make sure that any solutions we go through will not prevent us to implement those setups.
> 
> The point of this patch is to make all cores available without breaking the current behaviour of existing system.

I might be missing some context here. By breaking current behavior, do 
you mean user that may want to add "hmp-unsafe" on the command line?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 11:52:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 11:52:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226802.392078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJUJ-0003gD-AO; Wed, 17 Nov 2021 11:52:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226802.392078; Wed, 17 Nov 2021 11:52:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJUJ-0003g6-7C; Wed, 17 Nov 2021 11:52:27 +0000
Received: by outflank-mailman (input) for mailman id 226802;
 Wed, 17 Nov 2021 11:52:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BtAJ=QE=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1mnJUI-0003fy-Lp
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 11:52:26 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20600.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d46133b8-479c-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 12:52:25 +0100 (CET)
Received: from DU2PR04CA0321.eurprd04.prod.outlook.com (2603:10a6:10:2b5::26)
 by VE1PR08MB4896.eurprd08.prod.outlook.com (2603:10a6:802:b1::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov
 2021 11:52:21 +0000
Received: from DB5EUR03FT042.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:2b5:cafe::a2) by DU2PR04CA0321.outlook.office365.com
 (2603:10a6:10:2b5::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend
 Transport; Wed, 17 Nov 2021 11:52:21 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT042.mail.protection.outlook.com (10.152.21.123) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15 via Frontend Transport; Wed, 17 Nov 2021 11:52:21 +0000
Received: ("Tessian outbound f493ab4f1fb8:v110");
 Wed, 17 Nov 2021 11:52:21 +0000
Received: from 3ceec2153b09.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 2836A5CC-9157-4917-B99B-26467F35C677.1; 
 Wed, 17 Nov 2021 11:52:09 +0000
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 3ceec2153b09.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 17 Nov 2021 11:52:09 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PAXPR08MB6846.eurprd08.prod.outlook.com (2603:10a6:102:15d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Wed, 17 Nov
 2021 11:52:08 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::1d24:822b:651c:5eeb]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::1d24:822b:651c:5eeb%6]) with mapi id 15.20.4690.015; Wed, 17 Nov 2021
 11:52:08 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LNXP265CA0032.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:5c::20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.20 via Frontend Transport; Wed, 17 Nov 2021 11:52:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d46133b8-479c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vo1+fdYgImCVH9Dbo/jFZe8vPebZIbtirwi6vieZFIY=;
 b=z81wEFFSDC6CvhIwF6tBZi/iW66lnI3AZA6FwMjSwEXv7yP+L7Cb5KaR4Z7txJ8OxLjL+BibWvCD1hDbfVBN5mBBmhJFY+lthz0ALfQlHCvWmDF2u5XKAe8gl3MxJlA8vSVePte3zUOLw5j5Dhz2VqNiaf8I0hrvtdm9w/TCVXY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: f894de6f21acbc5d
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aE+iS34bY9TagNQFM3UB+E/f7CTfIpeJwr1vIATP2S22Tao4m4vewGI9N+YRDL8kKTlMyowh5VgzXjFG5KE+1Qy90gGDCxBOAuPpO6rXGo/EJHbzUDaEfamt3ubbdEIWkqA55unSEex3Ba+31UZPFRLh/bgOOQMT0hpMhIjAehORxx1sqwZMsbSQdCH258aRZ9oX9ZQ/yPkgNoByXFHDUTU2r4nJLOvq1RVvVHI+ogjo4/rZteE7C6uk1Bm580w32YhGVDBCO3qJeIvlDOZz8+80TfE8zW+WSwFGX+ck45q2vwm/ioqFX5pVsdW3D2I3Z+N7lf51DloBbeUSqsD1xA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Vo1+fdYgImCVH9Dbo/jFZe8vPebZIbtirwi6vieZFIY=;
 b=dpAILSMVYEtWXw+t8uLNIwe6HNvDiJEAyIwwxg5Yr+T7Zmla5k1pxPSCj/0+ib6t9C2QFpv4XdAlchnLPZ/L/BvmW2abySfivCtl4wm+0992FcnOjgGqhLJMeeWJPscmVAyC94T17PcAQFH4FPQf5xB/Gy57aj8wpHRxlWjYP4xoefBrUWg0zFyv1qs4wo8N5yn/VaIcgRwzbEf9mATuGz8G3dwjTz/BTCMbGvPVRBZ7fyHCinPcptLTi9rgTGSJHd1g9zUcbisIonhAuhpxus5b2HDduhE+RRqP5M0oI0A5nhM1TPlGabu1/p1J/Ztyjf43IWAq23zfq5NGcyLm6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vo1+fdYgImCVH9Dbo/jFZe8vPebZIbtirwi6vieZFIY=;
 b=z81wEFFSDC6CvhIwF6tBZi/iW66lnI3AZA6FwMjSwEXv7yP+L7Cb5KaR4Z7txJ8OxLjL+BibWvCD1hDbfVBN5mBBmhJFY+lthz0ALfQlHCvWmDF2u5XKAe8gl3MxJlA8vSVePte3zUOLw5j5Dhz2VqNiaf8I0hrvtdm9w/TCVXY=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [RFC PATCH 2/2] tools/cpupools: Give a name to unnamed cpupools
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <2d0140be-8830-3d7a-5ee9-58ef80357888@suse.com>
Date: Wed, 17 Nov 2021 11:52:01 +0000
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>,
 Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <D14A26F2-487D-42B6-BD3B-552CEFA84294@arm.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <20211117095711.26596-3-luca.fancellu@arm.com>
 <2d0140be-8830-3d7a-5ee9-58ef80357888@suse.com>
To: Juergen Gross <jgross@suse.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LNXP265CA0032.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:5c::20) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5a265944-e95d-40e4-5905-08d9a9c0b69b
X-MS-TrafficTypeDiagnostic: PAXPR08MB6846:|VE1PR08MB4896:
X-Microsoft-Antispam-PRVS:
	<VE1PR08MB489651E9359BD32805BC799CE49A9@VE1PR08MB4896.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:3383;OLM:3383;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 wlL1LNj9xawuEzKgiYB2xSrIPaHdqomVKrvJxUFpv/kF3ZInIHtlpBYbnZQ8uQmX5zNA8oAOrPkVjQf+EDmqC/ysBWJgVRGUCuajNoJS7JLzV5uNh9R7Py6dmHzKcG0W55ZqAzgQEOCsbSNbuYgd0BdzR8pNp9Kk3NTcc3k6uyggwFeY7uBbyWiKnlxisobsvEeD6/j4msQBcayzygzA/yqJQTMmZ84RsdY7Kb5SHJ1ilOjbJvbaepY9LJpIGMKzROXUNkcLZq0Rq5N7X3A5QTzm+tHX2w1zhpW9v0mkUu3gkNLGRi36ON5O2Tter3qDm5JnHKhPIuBXgFwfki9a/AQNbiFGd+INp/aI9A8H27G5owaYQ9G84XqWcIE7zWI1djhZXOHnLVM0n4aC56eD3K+XU4UYqZbWvZ6gAdnOHWCHh1X6aGzzFl4Jbct7xwsj+oTAjuDb3ElUKgoOG/M00ShMjdgxK4MFXzp4wDjSdH3j6XhQzFRu2HALSFOX41YHqR74ddXuBCPZRTiJ+zEnxcUA7gR5HvHZVBofTl7Ec8duRtXvNYFyvOqbtO1wQ9diX4L4vXjWG6Ht1XGbRYd7yBbDUaP4X1VTqegTEUvs3sdCqV7VQKPvMCWeLXGI1EjB8++5gneJATLD2RwGbNfKSxT3sO16FIx7wY860D3q7O1SfrapeH1M3l7xz8vH9RriiOhPMZ5Wxf8I6YENrDWgFejbGZYVXT2KzLWg7279Zt4=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(26005)(2906002)(36756003)(38100700002)(38350700002)(8936002)(6512007)(83380400001)(52116002)(956004)(53546011)(6486002)(6506007)(2616005)(86362001)(5660300002)(4326008)(6916009)(54906003)(8676002)(33656002)(66946007)(66556008)(66476007)(44832011)(6666004)(186003)(316002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6846
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT042.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	fb929e9b-e9ba-4ce1-d54f-08d9a9c0aef2
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	7oB71BjAAnUmrHLMICdBRZILetg1+L7VSopSwrNM257GWlI0dlMsOjRRGqmShwVuzG8+DEPBv/hWDiBbFgXtK9TXu6r3+kSVDAvmdC7cvv5TTZIWxAszUo9dX3WNHrrIBgCD+bGcU5nvadIkE/tTke2Z0qpgkCv2VGZpHhGM1/gPHTGAgIr/gx9hMf+Mp/GpzHKXggFGdwV0JNKfBEzg4lSYbPadF97tKNGAUgOWJcuWa5Q7vzp1AmRFluRKlglhuenjWNn63S4SbUDTAr+ymqIwZ3qSu91vE2VhUmjA4YDeQkcOZEVsIWB5HTJTdaK4ZhjqQ4sMF3tk+An5BGvh2nCn+ZxSLSdK/p9Wo7//yNDQxriRxIrfFU+BSWvnpRa9LIuco2bNfH+jDIY9AQlijBV61QGPJPdjZ/YzgW7CyLbLo53Eqnan2LPPAI/5/QiKzGudQffqsvRfP3z2qrfIbdRB33RCc0iuJIAkiQhsr6nAYP9gg1R424SKgHVUGd5ixMrle30hHBIL7DqFtvPf+FoRQVx5p22hWRi4m2PKX6tPnEdgqQYPIR9QSJCdM9NbqHidUs6dNYnyaw6kVQNHDV/kUDfI3Tqu3VFg9mezZOmAIEb91rZDQsbv56G0UDAHM2qIj/N+taSGBV6k1R29ygz/GwR2izEBnDW/cU8Fd0Pp3Hpr74IRqHkrftrPnw0qxjl0wZyNZiUxfKSOi9iW0g==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(82310400003)(83380400001)(81166007)(6862004)(107886003)(36756003)(6512007)(33656002)(316002)(6486002)(4326008)(6506007)(53546011)(36860700001)(26005)(47076005)(54906003)(186003)(356005)(86362001)(70586007)(5660300002)(70206006)(8676002)(44832011)(8936002)(956004)(2616005)(508600001)(336012)(6666004)(2906002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 11:52:21.2015
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a265944-e95d-40e4-5905-08d9a9c0b69b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT042.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4896



> On 17 Nov 2021, at 11:10, Juergen Gross <jgross@suse.com> wrote:
>=20
> On 17.11.21 10:57, Luca Fancellu wrote:
>> With the introduction of boot time cpupools, Xen can
>> create at boot time many cpupools different from the
>> cpupool with id 0.
>> Since these newly created cpupools can't have an
>> entry in Xenstore, name them with the same convention
>> used for the cpupool 0: Pool-<cpupool id>.
>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>> ---
>>  tools/libs/light/libxl_utils.c | 13 ++++++++-----
>>  1 file changed, 8 insertions(+), 5 deletions(-)
>> diff --git a/tools/libs/light/libxl_utils.c b/tools/libs/light/libxl_uti=
ls.c
>> index 4699c4a0a3..d97d91ca98 100644
>> --- a/tools/libs/light/libxl_utils.c
>> +++ b/tools/libs/light/libxl_utils.c
>> @@ -147,13 +147,16 @@ int libxl_cpupool_qualifier_to_cpupoolid(libxl_ctx=
 *ctx, const char *p,
>>  char *libxl_cpupoolid_to_name(libxl_ctx *ctx, uint32_t poolid)
>>  {
>>      unsigned int len;
>> -    char path[strlen("/local/pool") + 12];
>> +    char buffer[strlen("/local/pool") + 12];
>>      char *s;
>>  -    snprintf(path, sizeof(path), "/local/pool/%d/name", poolid);
>> -    s =3D xs_read(ctx->xsh, XBT_NULL, path, &len);
>> -    if (!s && (poolid =3D=3D 0))
>> -        return strdup("Pool-0");
>> +    snprintf(buffer, sizeof(buffer), "/local/pool/%d/name", poolid);
>> +    s =3D xs_read(ctx->xsh, XBT_NULL, buffer, &len);
>> +    if (!s)
>> +    {
>> +        snprintf(buffer, sizeof(buffer), "Pool-%d", poolid);
>> +        return strdup(buffer);
>> +    }
>>      return s;
>>  }
>> =20
>=20
> This breaks libxl_cpupoolid_is_valid(), as it will now return always
> true, regardless whether the poolid is existing or not.

Hi Juergen,

Yes right, do you think I can use safely xc_cpupool_getinfo(=E2=80=A6) when=
 there is no entry
in xenstore?
I would check that the returned cpupool id is the same and if it isn=E2=80=
=99t or if I get a null
result, then I will return NULL to ensure libxl_cpupoolid_is_valid(=E2=80=
=A6) works again.

Cheers,
Luca

>=20
>=20
> Juergen
> <OpenPGP_0xB0DE9DD628BF132F.asc>



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 12:06:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 12:06:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226817.392090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJi9-0005P0-Ts; Wed, 17 Nov 2021 12:06:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226817.392090; Wed, 17 Nov 2021 12:06:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJi9-0005Ot-Oy; Wed, 17 Nov 2021 12:06:45 +0000
Received: by outflank-mailman (input) for mailman id 226817;
 Wed, 17 Nov 2021 12:06:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Swqu=QE=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mnJi8-0005On-Fd
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 12:06:44 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d40d07a3-479e-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 13:06:43 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id ACC6C1FD35;
 Wed, 17 Nov 2021 12:06:42 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7B1AB13C94;
 Wed, 17 Nov 2021 12:06:42 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id nn2dHFLwlGH2OwAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 17 Nov 2021 12:06:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d40d07a3-479e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637150802; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=avaztLJdsrNFSbjMNXBuMdm/PFlhMNAEY4JkM2A0Kgk=;
	b=euPtZFpbP5TLGcfo9j6H6X3go6odlZxURELt+Bekf8SeepZ//e/H67DJ99MjfowAVQOwsJ
	CEK2XelzUj9ulpk3s6qyOfTiwyQegyS22lEyTTGeWt4DRLWNOXj7i3XGGH15v6PYus75dD
	24Y2EByZLbzfAhBqoR0KsYGBr+qUELU=
Subject: Re: [RFC PATCH 2/2] tools/cpupools: Give a name to unnamed cpupools
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <20211117095711.26596-3-luca.fancellu@arm.com>
 <2d0140be-8830-3d7a-5ee9-58ef80357888@suse.com>
 <D14A26F2-487D-42B6-BD3B-552CEFA84294@arm.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <3ecbae61-ade8-955f-a1f9-bf7478e2821a@suse.com>
Date: Wed, 17 Nov 2021 13:06:41 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <D14A26F2-487D-42B6-BD3B-552CEFA84294@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="A55LLCymQoFWQVvVWsjxkChqiKqCXwHqg"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--A55LLCymQoFWQVvVWsjxkChqiKqCXwHqg
Content-Type: multipart/mixed; boundary="quh4cbrLX0zNc7ZXut7FuqVJzXNMKI0wh";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>, wei.chen@arm.com,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <3ecbae61-ade8-955f-a1f9-bf7478e2821a@suse.com>
Subject: Re: [RFC PATCH 2/2] tools/cpupools: Give a name to unnamed cpupools
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <20211117095711.26596-3-luca.fancellu@arm.com>
 <2d0140be-8830-3d7a-5ee9-58ef80357888@suse.com>
 <D14A26F2-487D-42B6-BD3B-552CEFA84294@arm.com>
In-Reply-To: <D14A26F2-487D-42B6-BD3B-552CEFA84294@arm.com>

--quh4cbrLX0zNc7ZXut7FuqVJzXNMKI0wh
Content-Type: multipart/mixed;
 boundary="------------2F67CE2DF4FC6EC3DE8AF75E"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------2F67CE2DF4FC6EC3DE8AF75E
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 17.11.21 12:52, Luca Fancellu wrote:
>=20
>=20
>> On 17 Nov 2021, at 11:10, Juergen Gross <jgross@suse.com> wrote:
>>
>> On 17.11.21 10:57, Luca Fancellu wrote:
>>> With the introduction of boot time cpupools, Xen can
>>> create at boot time many cpupools different from the
>>> cpupool with id 0.
>>> Since these newly created cpupools can't have an
>>> entry in Xenstore, name them with the same convention
>>> used for the cpupool 0: Pool-<cpupool id>.
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>>   tools/libs/light/libxl_utils.c | 13 ++++++++-----
>>>   1 file changed, 8 insertions(+), 5 deletions(-)
>>> diff --git a/tools/libs/light/libxl_utils.c b/tools/libs/light/libxl_=
utils.c
>>> index 4699c4a0a3..d97d91ca98 100644
>>> --- a/tools/libs/light/libxl_utils.c
>>> +++ b/tools/libs/light/libxl_utils.c
>>> @@ -147,13 +147,16 @@ int libxl_cpupool_qualifier_to_cpupoolid(libxl_=
ctx *ctx, const char *p,
>>>   char *libxl_cpupoolid_to_name(libxl_ctx *ctx, uint32_t poolid)
>>>   {
>>>       unsigned int len;
>>> -    char path[strlen("/local/pool") + 12];
>>> +    char buffer[strlen("/local/pool") + 12];
>>>       char *s;
>>>   -    snprintf(path, sizeof(path), "/local/pool/%d/name", poolid);
>>> -    s =3D xs_read(ctx->xsh, XBT_NULL, path, &len);
>>> -    if (!s && (poolid =3D=3D 0))
>>> -        return strdup("Pool-0");
>>> +    snprintf(buffer, sizeof(buffer), "/local/pool/%d/name", poolid);=

>>> +    s =3D xs_read(ctx->xsh, XBT_NULL, buffer, &len);
>>> +    if (!s)
>>> +    {
>>> +        snprintf(buffer, sizeof(buffer), "Pool-%d", poolid);
>>> +        return strdup(buffer);
>>> +    }
>>>       return s;
>>>   }
>>>  =20
>>
>> This breaks libxl_cpupoolid_is_valid(), as it will now return always
>> true, regardless whether the poolid is existing or not.
>=20
> Hi Juergen,
>=20
> Yes right, do you think I can use safely xc_cpupool_getinfo(=E2=80=A6) =
when there is no entry
> in xenstore?
> I would check that the returned cpupool id is the same and if it isn=E2=
=80=99t or if I get a null
> result, then I will return NULL to ensure libxl_cpupoolid_is_valid(=E2=80=
=A6) works again.

An alternative might be to let tools/helpers/xen-init-dom0.c let write
the missing cpupool entries (including for Pool-0) and drop the
poolid =3D=3D 0 special casing from libxl_cpupoolid_to_name().

This should be rather easy by using xc_cpupool_getinfo() until it finds
no further cpupool.


Juergen

--------------2F67CE2DF4FC6EC3DE8AF75E
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------2F67CE2DF4FC6EC3DE8AF75E--

--quh4cbrLX0zNc7ZXut7FuqVJzXNMKI0wh--

--A55LLCymQoFWQVvVWsjxkChqiKqCXwHqg
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGU8FEFAwAAAAAACgkQsN6d1ii/Ey+C
jgf/VJKRjfrG4egWRJunihzw6RgU0Cp4Ft3xhMet+aEv+639LDFSvh/DEQ4uez4tdhJ8RA30Vprd
jRjO8KU7L2DSpz7xAT0YuXy8oRfq2lx3WDG7G9VOfT4BYP26FoYDpqg6gGDjN5/OmQcp23wp/VSa
xHEzDyN5LGPM+uTiEbXrR++1R6YoMUaDqSxamgLtUhxTz18F6OCH2q3Kte7hml9lt0zvZ85qf4+I
oXWI1NY980UlmSE70JgoRMDMOOVN36bIpTZwAEWcCfm/eU5pzLrS9yjmEfUJh1aqGUJ8XvCjLGbP
Mst4IeBQXcydKXVuTdk9PjkVVX0DPEwDxT1MWxjyNA==
=G4DF
-----END PGP SIGNATURE-----

--A55LLCymQoFWQVvVWsjxkChqiKqCXwHqg--


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 12:07:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 12:07:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226821.392101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJj6-0005xj-6L; Wed, 17 Nov 2021 12:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226821.392101; Wed, 17 Nov 2021 12:07:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJj6-0005xc-2k; Wed, 17 Nov 2021 12:07:44 +0000
Received: by outflank-mailman (input) for mailman id 226821;
 Wed, 17 Nov 2021 12:07:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5X4Q=QE=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mnJj4-0005xQ-OX
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 12:07:42 +0000
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03on061a.outbound.protection.outlook.com
 [2a01:111:f400:fe0a::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6bc9d1d-479e-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 13:07:42 +0100 (CET)
Received: from AM8P251CA0006.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:21b::11)
 by PAXPR08MB6494.eurprd08.prod.outlook.com (2603:10a6:102:154::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Wed, 17 Nov
 2021 12:07:38 +0000
Received: from VE1EUR03FT053.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:21b:cafe::ef) by AM8P251CA0006.outlook.office365.com
 (2603:10a6:20b:21b::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Wed, 17 Nov 2021 12:07:38 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT053.mail.protection.outlook.com (10.152.19.198) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Wed, 17 Nov 2021 12:07:37 +0000
Received: ("Tessian outbound de6049708a0a:v110");
 Wed, 17 Nov 2021 12:07:37 +0000
Received: from 433a273be1fe.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 D36C23F0-F97B-455F-A83A-0E60D4AC7CED.1; 
 Wed, 17 Nov 2021 12:07:26 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 433a273be1fe.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 17 Nov 2021 12:07:26 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM5PR0801MB2017.eurprd08.prod.outlook.com (2603:10a6:203:42::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.18; Wed, 17 Nov
 2021 12:07:23 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Wed, 17 Nov 2021
 12:07:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6bc9d1d-479e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8CspX5/HLzX3A7h9VuLLEr57x1ohmWzgwzH5nJmCNnE=;
 b=b59BWLcn+Pf6UV7AVTrh72mWUMUQfBjj41lnWox75ChQvdeqhIzF9shfGu8vl+7ElejVbnL5jvMPcqpdjbSeHbioAR20ZuiicFoUu9iKVKn1JtqCijzhRzkPOipC46KIm2J5TADh75jpmxuWdgdiuNt7vcYZlkMXYq40+GVhA54=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 1dcbc8689deb30ec
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JWTtYeXZJENnDXDvelMebshPJv7BCOPd87Z+eBAie577mB8RqZ6DjU5/AtwBpx6RW1+xpp8feDzRTOMNQ4an2KlK6OWUXsBdqVmK2OearJvTt8NZB9mtXV9czA9u59WNYm8rAJlR0Jq/EKvx8xwirDQ0F74wJmVeuIO2CXEwL3GQuFqFkH4Ae2kBPZkEFqXIvyPbIwG09i0CDs1jMdlstoLywfPJbj4Ppi1KCJi/6uAAaopFhaMxWo67QKu2SRKwBEeDZ8FzExTMrI+nVP75uG4zd1isHgZRfyqSTo51RopR3vq/bgqftlYsQ4rxxDFYIfFDskCe+EkxAOhlhUPTRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8CspX5/HLzX3A7h9VuLLEr57x1ohmWzgwzH5nJmCNnE=;
 b=oAWAssQP8cPz3PIrngX8nikldSqyOlhajkR6DoGIkdsW2tPFyk97lK0LTPtSh0GbO9HPBdNnTCGObSMFafXs82vlvWd6yscuLpWK9r3FgtFiXYaq3fzWiKaZnOF5/cbkHJXKVdlguXBOFaVxOODnHBsOWTyW4mL/uneF6SJtCInR9SMpJ6/3n6YcM2dE3D6qp6w/CAHub2WVKvdZ7iMSk+YlRJ0AV9PheeKkQy5G+zdxsSQ8rBhBDBiyRmi5adBNh++A3AvCX1EF1OcalVmyONr4oORcbrcXSwm9pCfqAA0YFMQobNOoWJjXSi+FO/efQHM/kcxifm3MpExQgHVr8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8CspX5/HLzX3A7h9VuLLEr57x1ohmWzgwzH5nJmCNnE=;
 b=b59BWLcn+Pf6UV7AVTrh72mWUMUQfBjj41lnWox75ChQvdeqhIzF9shfGu8vl+7ElejVbnL5jvMPcqpdjbSeHbioAR20ZuiicFoUu9iKVKn1JtqCijzhRzkPOipC46KIm2J5TADh75jpmxuWdgdiuNt7vcYZlkMXYq40+GVhA54=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Luca Fancellu <Luca.Fancellu@arm.com>, Xen-devel
	<xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Juergen Gross
	<jgross@suse.com>, Dario Faggioli <dfaggioli@suse.com>, Anthony PERARD
	<anthony.perard@citrix.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
Thread-Topic: [RFC PATCH 0/2] Boot time cpupools
Thread-Index: AQHX25mOHH0z58pAdkqC6AziO7R1GqwHg+AAgAAN94CAAAkVgIAABTgA
Date: Wed, 17 Nov 2021 12:07:21 +0000
Message-ID: <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
 <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
In-Reply-To: <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 5b5d7846-f515-44ae-cbcf-08d9a9c2d8f1
x-ms-traffictypediagnostic: AM5PR0801MB2017:|PAXPR08MB6494:
X-Microsoft-Antispam-PRVS:
	<PAXPR08MB6494837F0AF0DAEC5741246D9D9A9@PAXPR08MB6494.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 ZdgWgF4hI/EIzc3F4Q+0YlUrM5KE5SNBlxlMVPaurHMFFjGUUFyBQXV5OGaeZNu3p8mTKu32BJToO7+Oi49QhDvGWJp+vmFzlPac0TN9of1s3Ub6TNQ9h4rvxC+BQOy6OA3gHd3I7zLnlRKE1rwtVpBjtb5PO66Jq7USBuIxyET+6tsH/oki2q4Q+k2x8I0X3M3Q6/QlqBGUrjOqNWyex6ouDs9Gj5i45yexDFxf4guS5xZK3Xvtw/FtnfL4R6AGCeIL2c3l7iisavhfxw5FdTb+MkXgx1kRgLklz7woIzjZH8plIt6Vxt5gKE+mbgFmHY5alLU32fHWw9aKRqmxF6yaAQ/W/LDWe/2042qcjV+FBInbjG/vwqky/CUHwXg/5LpMDiFRoJFGUE5QRjUb8FMK2vSkgmayLm3A1hlIeUu+ryTlgzTUDL5+4jDHFkaZIEfw4cRNayZzULlFBc9bAiaL25RORF2CAmuLKLi+dj8/7mPEDY2y3rfRQQuvk4lb/9UwHJBsGwxsrIULmE55JKESvu+e8Dbj3WC+C6QT4eCKfzL5J/HXHcUDNhLCWAObcL3HWnPr6AHvESH0YcTk5Qczjpin5/sb4+1i2/4z1s2EQPLjsIU7T66AOxtNGLrzdfVSGcApHkC218OEQskCmpd/puc3hX1WXTnug14RUAamPF26P7BMsH/4FnAtvAAQgdwFYHQ3gxPABUCHAouNigWFIApAXiZrv9XUw6oSot5PDKbCwO7N1Y6oAXMj29rJ
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2906002)(316002)(38070700005)(7416002)(6506007)(36756003)(6916009)(91956017)(5660300002)(83380400001)(508600001)(71200400001)(66446008)(66556008)(8936002)(66946007)(6486002)(2616005)(64756008)(66476007)(76116006)(4326008)(8676002)(6512007)(86362001)(54906003)(186003)(26005)(33656002)(38100700002)(122000001)(53546011)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <729FC93025B2A94AB9730BFDD97B2956@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB2017
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT053.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	7c4d6f02-e60e-4e26-5f48-08d9a9c2d008
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OvTXomoax1/ThRemMLwDgjik13Gk5A/x3R3p10Q9QkJ7ItNxkqUXr5HZbi62OKBXpXLxphEyPDidjuldPpXRSddvV6FzMsSwpMQ2znqI62ch2xfBrG+SRRj5NrBWfW1f9ucKg7LB7TmIlsI2dF00Znof2qkfFB0gmgHi7KhlDUX7sN28l5s9nqRXYGb+PHolhlapoLEP/DaHhaLl8wUCIGlYkkfR2KOjDSSdfpZN38N9yz66EACf7kH3BZ4cSjBnO1m5Sg10YyMrYK9a/i8rf9IqHGnkqWww9u5BhC75pPL6xmqsf7zZj8sQ+KTuY4cYpe7vhTvlcDf6ia7SzbEa8X6zUjIuduEMHKplQD7+DP/a7gRQJ+U6Qmi0hBtNtb36h6L0NCDVcML0+lCsdzAeoPj9kJYf/gPpeQzGGQ5TR1Mlp/z/BF0VpFrdbYWVyDbHU3+w3k3rBf2hudZT0yF4Tv5JNsmblrblKTKSaxy6TBdwzeFc6AJ4vaiGrVAKUyB8RY0CZRIhbd1u8KIRJjos3UVNEBjlzHkt82r9ziCCyCejaTR9ED0vVusDSQD/6NvLU9+sbFbEOm4a27ZQUiKcVmGgKH7cYGYDEXp0vceYERsfhgVxFtoEZv71HzXscWLq+Dny6yYQOANo16Ho/fhM9XLUuFUg/J1Rumx7NKAracYcqU3mgPt5+jH+avMqZIsWjlsms6/UQKhLRseC/02TuQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(70206006)(33656002)(70586007)(336012)(8676002)(508600001)(81166007)(54906003)(53546011)(356005)(316002)(83380400001)(6506007)(2616005)(36860700001)(6512007)(6486002)(8936002)(107886003)(186003)(82310400003)(5660300002)(2906002)(4326008)(6862004)(26005)(47076005)(36756003)(86362001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 12:07:37.6990
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b5d7846-f515-44ae-cbcf-08d9a9c2d8f1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT053.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6494

Hi Julien,

> On 17 Nov 2021, at 11:48, Julien Grall <julien@xen.org> wrote:
>=20
> On 17/11/2021 11:16, Bertrand Marquis wrote:
>> Hi Julien,
>=20
> Hi,
>=20
>>> On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
>>>=20
>>> Hi Luca,
>>>=20
>>> On 17/11/2021 09:57, Luca Fancellu wrote:
>>>> Currently Xen creates a default cpupool0 that contains all the cpu bro=
ught up
>>>> during boot and it assumes that the platform has only one kind of CPU.
>>>> This assumption does not hold on big.LITTLE platform, but putting diff=
erent
>>>> type of CPU in the same cpupool can result in instability and security=
 issues
>>>> for the domains running on the pool.
>>>=20
>>> I agree that you can't move a LITTLE vCPU to a big pCPU. However...
>>>=20
>>>> For this reason this serie introduces an architecture specific way to =
create
>>>> different cpupool at boot time, this is particularly useful on ARM big=
.LITTLE
>>>> platform where there might be the need to have different cpupools for =
each type
>>>> of core, but also systems using NUMA can have different cpu pool for e=
ach node.
>>>=20
>>> ... from my understanding, all the vCPUs of a domain have to be in the =
same cpupool. So with this approach it is not possible:
>>>   1) to have a mix of LITTLE and big vCPUs in the domain
>>>   2) to create a domain spanning across two NUMA nodes
>>>=20
>>> So I think we need to make sure that any solutions we go through will n=
ot prevent us to implement those setups.
>> The point of this patch is to make all cores available without breaking =
the current behaviour of existing system.
>=20
> I might be missing some context here. By breaking current behavior, do yo=
u mean user that may want to add "hmp-unsafe" on the command line?

Right, with hmp-unsafe the behaviour is now the same as without, only extra=
 cores are parked in other cpupools.

So you have a point in fact that behaviour is changed for someone who was u=
sing hmp-unsafe before if this is activated.
The command line argument suggested by Jurgen definitely makes sense here.

We could instead do the following:
- when this is activated in the configuration, boot all cores and park them=
 in different pools (depending on command line argument). Current behaviour=
 not change if other pools are not used (but more cores will be on in xen)
- when hmp-unsafe is on, this feature will be turned of (if activated in co=
nfiguration) and all cores would be added in the same pool.

What do you think ?

Cheers
Bertrand

>=20
> Cheers,
>=20
> --=20
> Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 12:14:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 12:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226825.392112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJpg-0007Ol-Ue; Wed, 17 Nov 2021 12:14:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226825.392112; Wed, 17 Nov 2021 12:14:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnJpg-0007Oe-R6; Wed, 17 Nov 2021 12:14:32 +0000
Received: by outflank-mailman (input) for mailman id 226825;
 Wed, 17 Nov 2021 12:14:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=74+5=QE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnJpf-0007OY-Hd
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 12:14:31 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e8e165c8-479f-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 13:14:29 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8e165c8-479f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637151269;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=Wuty3OoPe4Mc2XGEFVSRWV0b2n8CO8Hl/wenb9U8GRU=;
  b=Rp/qgxkzbF9fnwhxtgWN0anfHeZBEeS4Wbdm/hiyrepKMM6VQqUGjDEM
   Pcb+5MRAcqp4xVyLC8AUVq1bOV52D4NxToQgEgy+rmSu/2oy2OPpaWIM8
   Zh2DL66SbUEyRsjh4iI4ZJmsjbdeC3FE2Ls/M+obCd+b1dh5jXbB3md45
   Q=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: K8NPgpWCCg7y7E6BdBzk1XEcP03c785C1NRrf79ZMTxM7EAOHgNTxZff7GTLieZT1S3afrFial
 yPA2uFAt/sg4UeEJE1p8+rmDi51M7e3Y6OPENbQvWnaHWJqYG2EMBgLEpTrK2eccUUxBBA38DA
 ITG9FWfsUgex0u48uqZlikHOEk//h1G7pCfWmPuGoM+1XoIDPQtDs96FwnnzfEwSQayRjfczVu
 bc0KLcH1YMtRH+4OFOUphpXSUjWwHqKtwk0cFeA9V2N/OlRzxJ8UCSBpMYc9nvSMIoD8okbTW+
 uFJPvMzsinTqIo0kXUREmVRj
X-SBRS: 5.1
X-MesageID: 58413861
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:6plu+K58gT+l9tmcNxzYeQxRtAvDchMFZxGqfqrLsTDasY5as4F+v
 mYcCz/UM67ZamGjc9F1b4mx904Fu5CAndBgHQZu+HgwHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg29Ew27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zl
 dFE74O1FUAQAaz+veE+QTBiLhB5IvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALNs7kMZlZonh95TrYEewnUdbIRKCiCdpwgWds35seQ6+2i
 8wxTDNzNTTNeDZzBXAVIYsHod+OiUXiSmgNwL6SjfVuuDWCpOBr65DnN9Dfa9GRRcFYm0+ej
 m3D9mX9RBodMbS3wzef7milgOOJmCrhQZ8TD5Wx7Pssi1qWrkQMDDUGWF39puO24ma1W8heM
 FAT4iojt+4tskevR8P+dxK9qX+A+BUbXrJ4EfA+6QyL4rrZ5UCeHGdsZjxOcts9r+ctWCcnk
 FSOmrvBDDhuq6GcSGjb+K2dqzizIgAKIWREbigBJSMV7t+mrIwtgxbnStd4DLXzntDzASv3w
 T2BsG45nbp7pcIE26i051nvnyOnpp+PSBU8oArQQAqN7ARiZMi6Z4205FjW5PpoIIGDSFSbo
 38emNPY5+cLZbmPniGQROQGHJmy+u2IdjbbhDZHFJ4k8imr+mKyO4VZ5jhxKV1BIssCYSXuY
 kLYpUVW/pA7FHekZKB4YoW1Cuwx0LPtU9/iU5j8ZdNUbp98XASO5i1paAib2GWFuEQlj6wXI
 5qQdseoS3EABsxPzSW0b/cQ16cxwSIzzn+VQor0pzyq1beYbTiIR7YALECDcOkR67mNqwHYt
 d1YMqOi0A5DWefzZi3W9487Ll0QK3U/Q5fspKR/bfKOPQN8BCchCvvdzLk7coppt6hSjOHF5
 G66QExDjlH4gBXvMgyPd31nLq/vXJx2sHYnFSEqJhOsyn8lJ4G14883bYA3Z7g9/elLxuUyU
 vMOPc6JatxRTTDA9yUYfIPKpoVofxS2hiqDJyOgJjM4evZIQg3C+tbgOAz15iQKJiOtsI01p
 LjI/h/SRJMYbxhhCMvQZ+OiyxW6un11sP5zWmPYL98Vf1/jmKBwIizsirksIscDKT3K3D7c3
 AGTaT8bou/XqoNz79jNhoiDtY6iF+Y4FU1fd0He5KyzPDPX/UKix5FBS+eCeT3BVGLy976mb
 O8TxPb5WNUFgVAMtYN/GrRqyKsW5t3zqrscxQNhdF3IYkqqDPV8I3CA9chJqqBJgLRevGOeQ
 kuS/vFKNLPPP9nqeHYIOQMjKPSejdkbnzDT6bI+J0CSzCp6+rWXTG1ZPgLKlTRQKr0zPY84q
 c87v9Uc8Qu4iRwCO9eAgCdP+m/KJXsFO5jLrblDXtWt0FByjAgfP9qMUUca/a1jdf0RNkBwP
 TrIw5P9hoZ5w2nQWkAOJH/SiL81aYs1hDhGy1oLJlKsk9XDh+Mq0BA5zQnbXji53T0cjbstZ
 zED21ldYPzXomw23JQrs3WEQlkZXHWkFlrNJ0zlfYEzZ22hTSTzIWI0Io5hF2hJojsHLlC3E
 Fx1oVsJsAoGnumtjkPeumY/8pQPqOCdECWYwKhL+OzfQfEHjcLN2PPGWIbxg0KP7TkNrEPGv
 /J22+17dLf2MyUdy4ViVdLFjeRPFE/Yfj0fKR2EwE/vNTuHEN1V8WLQQ31dh+sXf6CamaNGI
 5IGyj1zu+SWi3/V82Fz6V8kKL5ohv85jOfuiZuwTVPqR4C392Iz2LqJr3CWrDZyH71GzJZsQ
 quMJmnqOjHB2hNpd5rl8ZAs1pyQOoJfOmURHYmdrY00Kn70mL02LBxpjOLr5y793ckO10v8g
 T4vrpT+loRK4Y9tg5HtAuNEAQC1Isn0T+OG7Ea4tNEmUD8FGZ6mW9o9pga1MgJIE6EWXtgrx
 72BvMSuhBHOvaosUnCfkJ6ETvEb6cK3VetRE8T2MHgFwnfSBJ6yu0MOqzKiNJhEsNJB/c37F
 QG2X9S9KIwOUNBHyXwLNyUHS0QBC776Z7vLrD+mq6jeEQAU1AHKdYv19XLgYWxBWDUPPpnyV
 l39t/q0v4gKp4VQHh4UQfphBsYgclPkXKIncfz3tCWZUTb00g/T5OO6mEN5uz/RC3SCHMLr2
 r7/R0DzJEaopaXF7NBFqIgu7BcZO2lw3LsrdUUH9t8o1z3jVDwaLf4QOIktA41PlnCgz4nxY
 TzAYTdwCSj5WjgYIxzw7M66A1WaD+0KfNz4OiYo7wWfbCLvXNGMB75o9yFB5XZqe2S8kLH7e
 I9GonCgbAKsxpxJRPoI4q3piOhq8frW23YU9B2viMf1GRsfXe0H2XEJ8NChjsAb/xUhTHn2G
 FU=
IronPort-HdrOrdr: A9a23:xbW/kqGuM8qmAqKCpLqE7MeALOsnbusQ8zAXPidKOHtom62j5q
 STdZEgviMc5wx8ZJhNo7+90cq7IU80l6Qa3WB5B97LNmTbUQCTTb1K3M/PxCDhBj271sM179
 YET0GmMqySMbGtt7eZ3DWF
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="58413861"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=j+yG+sfCTw0kqBBj7hqWctdDXsN8+fEllRnkhBIigmF7ndYEwlfdHnGkxYsE54Lmx1XogU5gMmNLAvp+b5OxSV2qXengucpm5+GyWAA1GYsWekocps5WoU5dA2Ity4pv54tzfFHb0yn1KiAAWqohn09CeFXvlJ92+L3HugvFKsYTkxYJ1kjMWTo+GGEPG9wiJXd01TqhEksdrztM5zn6acO5iXMWBzee2s9FLCwuxV9vcBYizPGXz3l4u4VEJk62F4HDzPRrVBkmYaH/bbA/XX9pJnK7H0r3kX342h0Uy1MvpYZVvyyRXSXdI1PrBrB/rfCB9unli0fu/it4qAuMmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JGYkus4ocFIX4HsCTj8pbRA8p+bZmobpucfg9ICCIR8=;
 b=Bdo/uYGTgtP7XmLO9kHGwMa1hbHIC2icSD0ccqZM/64OAhstUwaO4o36Fm72gewtHvRqeYXwshB4juM/xd0UKhiJoPlmxPRHsMOLpqqX0+D7kUhJhAqfvAq7gNkaHO6bPMqj1Ei9acf7QTEUR5KMxFzHM6lBFqegtkK++EKW+UKlBT9UnHEuvvrp4sKlJkJmwtDud73UfYaPI7TkOe3c12Edq8OhHu8Gf0lKLOGhdJ8ttJVntwisrp3qVTbMuvnCjLY5kQKfmwslvqpAzOpRv506PJfvDCkzfsrlqGlQmaZib955V7LSL5E4WueA9Lrt7c7h5yy0R3FEYGzMdOODag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JGYkus4ocFIX4HsCTj8pbRA8p+bZmobpucfg9ICCIR8=;
 b=K7orFhy+LAEdzP05w+PUTXRYt5CdWxZJSDJzgPehoDJzWc3iTo9vwurM7OOuSdhDurRJoVzRpSAQJQfb6RKrWkZtapVhopW8swGhXYaz1tIfuNUKrZdGP/KvNtBdpDqI1p0r4uBUeUbSd0uBnC9tTiA7L7ZWpEPgnyymZUHtRiE=
Date: Wed, 17 Nov 2021 13:14:18 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Michal Orzel <michal.orzel@arm.com>
CC: Julien Grall <julien@xen.org>, <xen-devel@lists.xenproject.org>, Alistair
 Francis <alistair.francis@wdc.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Jun
 Nakajima <jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>, Konrad
 Rzeszutek Wilk <konrad.wilk@oracle.com>, Marek
 =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, Meng
 Xu <mengxu@cis.upenn.edu>, Nick Rosbrook <rosbrookn@ainfosec.com>, Paul
 Durrant <paul@xen.org>, Quan Xu <quan.xu0@gmail.com>, Rahul Singh
	<rahul.singh@arm.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Samuel
 Thibault <samuel.thibault@ens-lyon.org>, Shriram Rajagopalan
	<rshriram@cs.ubc.ca>, Stefano Stabellini <sstabellini@kernel.org>, Stewart
 Hildebrand <stewart.hildebrand@dornerworks.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Tim Deegan <tim@xen.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Message-ID: <YZTyGiP9Jy0M/4cK@Air-de-Roger>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <7354e1bf-f34e-c604-b126-fdbfd53afe62@xen.org>
 <0e8ab234-edf4-10d4-74ea-ddb9d1e2953c@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0e8ab234-edf4-10d4-74ea-ddb9d1e2953c@arm.com>
X-ClientProxiedBy: MR2P264CA0164.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::27) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8c747a79-4d96-47dc-674a-08d9a9c3cac5
X-MS-TrafficTypeDiagnostic: DM5PR03MB2923:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM5PR03MB292361D7DBFBA3C41E807F558F9A9@DM5PR03MB2923.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: PNKbSNKnLvAqdpZ6xl8ojnwUD2K1GL+n4b2h06K/MoQZezGXa0YiO0c9JiuX01nPdUAnUhGZdeetx/uUpUsncd8xpMooc+IUPT7PDUoAqLxJ70Nh88SE0QTI5Oj5orVMXhmULgHGfVy/8vsX/SDH6CPicUhImp8pz7eJ0u4TWK6FxT1u30X/BdvzWlWSt1Abay7AsgXH3uXLxzvEC+kBaUF06vvjaeaam0MKDfUN0eKON9H0nAhsWqWwl7Hx7ePI2pq+zOAO7qF/7gESmbAvhqekX7NuOA+KO6jBwyE+xbZwbPcsOAYkjdAiADcxv65wAL4WqvJ/SOV/BVdXUV7Nkbim5mMY4KwisuZGJyLky43P5pc9JnhDsiBfxoVKNNezqxyRvvopWePEMzVq5EDvALlJWlyYHjBEyMRnxvk4tNr3GepiZY2b4OAFjCXD3eNa6UMzMozNk3MUckQYYADU1LE0OwZga79RU5M7E/NolnOo0p/imrMKM4NxHVEvd4nXwdyoa+LmdSUL2lnPMEg3yo7yCfvgm4z9aRuUeGXouGF5+dSytRHJSDqEickURh/F6oIhERHNvUT+1xH47TYF25CmVFDkiRJa/YVQrpnlEfTZ7qWWZejjTcdpKwq8FWwprMvOxIVL/zSOyS7JIKBkFGny6PjA0OCxuJnwpp0MEtifO2G8SV8bIf0Ov1wzM1AH+qubpUUunVxI5Hwh/nCLeTnQ+atRe+6fcjco7VLoTmwD+SbTQ2czZ06Kv3R1lSRDft+WyX5gVQnccvFAS4fgC7ENJlxRNKLsvsl1NuMV/ojrHVBj1oY3hidPpoE8R0yc3MbfE/DEkbxF7/TjuVwvUg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(6486002)(6916009)(6496006)(26005)(66946007)(83380400001)(2906002)(8936002)(9686003)(38100700002)(33716001)(8676002)(86362001)(956004)(66476007)(66556008)(5660300002)(316002)(54906003)(186003)(85182001)(4326008)(53546011)(7416002)(7406005)(6666004)(82960400001)(508600001)(59356011)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K3lld1BZQ1ZGNldZQS9VUElteDFhM2hjRllTalVMeXQ0U3ZDWnp1azU5cU1U?=
 =?utf-8?B?eVVYNmlYUlZzZ0x5SmlyRjE0aWVQSEhkdXJRa1J3YzNhcEVma21oRk9jVWVu?=
 =?utf-8?B?QkVEdWNwMnFONS9td0dUVWlTeVY1V1dzNmdKQ3lGM3c4Wmw3U1Q2T1dnQmhj?=
 =?utf-8?B?eC9JZ1NOR1g4b0dpc2Y3MVJvS0RkR2NaZ28zV3VQZUFObkVsNk4zNlhSUExH?=
 =?utf-8?B?TXVIbUhUcHNNd0JNSERFbDhORm5JTGpCMWNldzR1TXI2QW9aNDFkSEJPWDIx?=
 =?utf-8?B?YXpLSm1QOXg5SWZwNlE2bWJIYjQyTktwbGllc1ZxRERnSmdzS3NDaGt6aXFo?=
 =?utf-8?B?MU9WMEs3dGUvb2ttOWxSQis3aThFWU9laDIvczRDNEMrRkJibU5PeWNISEEw?=
 =?utf-8?B?WXFtVWNxbllGcnc0YnIrL3BKTXdRYkNNb1RROTVRTUdpWEx5cHJlM2p4NE9q?=
 =?utf-8?B?RWpUTTRsNk43dHlPY2NCZWVJUkNJRlJoVGt2cGlwOG13b2FXV0ptN1VNaEwx?=
 =?utf-8?B?WGtaMUIwdFliZXZCVnVRN04rUGNPMHpyN0xTa1MwbkUveGNLMXlmaEF3K2pj?=
 =?utf-8?B?Qm05MHZoQXJUZnNyRFBwdzFGaFE3Zk1nMnh5UlZ1N3N4S3RpNmtzZjlUa2VW?=
 =?utf-8?B?WmFBTGZHOVljR3o0SzZYeHEvVElmeEVTQTJtanRKaWRsQm1ob01hUUZXTTNn?=
 =?utf-8?B?cTRtaGZidHVwVVRtcERabGtubnYxMEMvZ29pbEc1WllDSElhSHJJQ3IrZnBv?=
 =?utf-8?B?WEx2WVk2Ly9JNlJyNjJjWkdmOVZuTjRLMzZ2YWZuOHZ6QXd2TmRKSlJXSWxv?=
 =?utf-8?B?RjNOaEc2ZUN6aFdxbjFDdW5lRWVqUUxiTWVheGNHcjd1TllBM3hsM3h0SHVO?=
 =?utf-8?B?ZHhaajhPOGYrQUpVd2l6NHpzNjd6QzlsU3R4Z2lnMjFMZnFucGoxMEhDbUF5?=
 =?utf-8?B?RldxNVdTOU9SdlBZTzVneUxjb3hOZnVyM3I5Tkg0bGJRMFN5NTJvVm12TU5y?=
 =?utf-8?B?cFBFK2d0T1paMi9La3c4VWJmY0pTcDlmeDdoVk5nOXhnb1o3YUsza3BENWFD?=
 =?utf-8?B?dGZ4Zm9VTHRtTVpESXhCYzllODFyVmtHNUtPSk5iUnpJSmtkT0ErQTJvc2h1?=
 =?utf-8?B?WVdFOTJDYVNjdjdZcnVkUDhNeVJ0VG1LN3dVZWk4QTcrOEZHd0d0Q3FqdXJz?=
 =?utf-8?B?QWVDSFZCVXlaUzZsRTVjRi9HWmVFWlM5V0lWbmZRdmdUeS9Fbjg3NFpNeHZa?=
 =?utf-8?B?aytzd0t2Ymhrbk1jZndPWDZCU2U1S29ROEJVVHVtWWdiTk5tMm9nS29Jd2ZX?=
 =?utf-8?B?Z2F4Z0YwVi9lZEJsN0xYenhFWitESWxYK3htNGVrbzJnOHp3cEQ3alJSdmNm?=
 =?utf-8?B?VnZYbXBTZmxERlFLWll3ajZsWEdmM3pKdU5Wa0thS0dlVWJ4MWlJeE13WWFM?=
 =?utf-8?B?cy9UalQ2UGtxMkEvZ3lwS1NpaWxUaTdkTGt4WnZMOXF6akVjTlQ1MXJNQnhI?=
 =?utf-8?B?MndkY2RDR1pqYUd6V1FvdGhyV0RGWjNyN2ZPOWxmbXJicnh5VU00ZDdjWUJ5?=
 =?utf-8?B?SzZubzRXWnoxRHdoZjBLN3FyR0NHbWd5MUYwWmZzSUVXWGlKZWZRYzhrY0Zs?=
 =?utf-8?B?ZkdQTk1YL1VPdTNDUFNCQXhsN0JvSUdZeThiZVExdmVjNE1SLytiVVpJL01D?=
 =?utf-8?B?R2g0VzNQNERBQmZ1eGw2RDRSOHVReGJ6OEFoL09HZEZEaUZxenAyVWNEeEV0?=
 =?utf-8?B?Rzl6bVUrOWlTQ3Q2YXpEamprTkx5NVJBOHI1OGptbGNVOWphZG9VelpUZjVq?=
 =?utf-8?B?V3VtdXd3YXhpbGZ0RGpSeXNVNlFLeGVBK2wyd2ZNL2xLa1ZUOVRyZkdwWkZl?=
 =?utf-8?B?SFcvbnlGNE9saFFZRndreHA4Znl4cFg3c2Jtb3lzaXoyUHh5Uk9nMFFkaUNw?=
 =?utf-8?B?NVlyOXRIRkF5VlViMjg2SklqWFYxTmZyVHg1MjBxa3g0VHdsb1k0RlBWd0pr?=
 =?utf-8?B?Rm54WFB5NTM3aHlnRyt0VUZKV29UZVRNdWxrL0s1ZzNhU2xlTWs4dW5OQUpM?=
 =?utf-8?B?MkhXckdVRDh6b1A3bFR5L3BjeGl4MTJ4VW5VbXFieW5EeTF4am1JOUhMcXFP?=
 =?utf-8?B?NlJoZ1FJakVhMCtvQzd1aEhWRDFZOFlNSzFQT3JBM3lxNXRzQ3lPc3ZOZVMr?=
 =?utf-8?Q?A6LMsfFx0iu7PTJcSkoNuNs=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c747a79-4d96-47dc-674a-08d9a9c3cac5
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 12:14:23.7159
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2U1Z90kpuUZlKhwoFe2d+mu8eXj5OgjXs8OWl00RVbwLzqgJ80pNg0x4oGN8tRiFpV+tHBYAzDMFn2LPBc9/6Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2923
X-OriginatorOrg: citrix.com

On Wed, Nov 17, 2021 at 12:44:25PM +0100, Michal Orzel wrote:
> Hi,
> 
> On 17.11.2021 11:00, Julien Grall wrote:
> > Hi,
> > 
> > On 17/11/2021 09:53, Roger Pau Monne wrote:
> >> Document some of the relevant changes during the 4.16 release cycle,
> >> likely more entries are missing.
> >>
> >> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >> ---
> >>   CHANGELOG.md | 11 +++++++++++
> >>   1 file changed, 11 insertions(+)
> >>
> >> diff --git a/CHANGELOG.md b/CHANGELOG.md
> >> index ad1a8c2bc2..8b0bdd9cf0 100644
> >> --- a/CHANGELOG.md
> >> +++ b/CHANGELOG.md
> >> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >>    - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
> >>      no longer be built per default. In order to be able to use those, configure needs to
> >>      be called with "--enable-qemu-traditional" as parameter.
> >> + - Fixes for credit2 scheduler stability in corner case conditions.
> >> + - Ongoing improvements in the hypervisor build system.
> >> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> >> + - 32bit PV guests only supported in shim mode.
> >> + - Improved PVH dom0 debug key handling.
> >> + - Fix booting on some Intel systems without a PIT (i8254).
> >> +
> >> +### Added
> >> + - 32bit Arm builds to the automated tests.
> >> + - New x86 pagetable APIs.
> >> + - Arm vPMU support.
> > 
> > I would add "Early" or something similar because this can only work in a constrained setup.
> > 
> +1.
> I would say:
> "Arm early vPMU support for guests."

I've used limited instead of early, as using early could be confused
with early boot support or some such IMO.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 12:27:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 12:27:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226834.392123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnK23-0000Wn-9o; Wed, 17 Nov 2021 12:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226834.392123; Wed, 17 Nov 2021 12:27:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnK23-0000Wg-5V; Wed, 17 Nov 2021 12:27:19 +0000
Received: by outflank-mailman (input) for mailman id 226834;
 Wed, 17 Nov 2021 12:27:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=74+5=QE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnK21-0000Wa-HD
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 12:27:17 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b1e41311-47a1-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 13:27:16 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1e41311-47a1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637152036;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=t9GlDXRoiPCQAnRTgXeT2TH4FFi1pR/U6QVUnBeqyaM=;
  b=cwIO42DElV68nHaSghyQ9/4H7OppkXhBL/3ktt0pF2udGhvEjbePtoGR
   SMxxTl4N6BiWNjAlYrl4SNmwpaxb5nUWHNolP5vd3Zq/O2m8ZgZqiTFN2
   qORGEnYQKjNPtDhWK6143Fn4XdX+R+VawsFFuzVTnHTHOj1LoMPqCRI8H
   g=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 0ShfleCdCWoh/mFTC+kGl9oU4JMcsV3Ma61kn0eaqBNo59ZR5oCWRSdm3NMsLbkVAwA5sLK7tV
 j80Xhk3bn10rMm7fxmgFU5moklm1w1CA4q4YBmRmlulONoyqO7LW8oztKNZbqbpgosyqEIX7JN
 Qbsc+/Jf6e3iQ+lssu2IEudpF7YWwOZaGTGhLrd+HqnzKEizAAnZQu1+Zhu1QSJqf26zy3y1xB
 UVpo20uZt5bcxupSCawd+sjKy7nseHHpSwOYS5jh/512bcE+DMwFPnSV7AUQHGycIZuYsu1Oib
 ODZ6CxVYB+rVGzsObhN6PYjB
X-SBRS: 5.1
X-MesageID: 57984589
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:BY1WAaIBAox86+a4FE+RQpIlxSXFcZb7ZxGr2PjKsXjdYENS0WNUn
 2ROD2+DPv/cYGr2Lt51Pd+2oBlTvcfWy4JiSAZlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6xLZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Ipvtwz
 MQUlqWPbhUpbq6P29UeaxhXRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsF2gcsuNo/zNZ43sXB81zDJS/0hRPgvRo2Xuo4IgGpg16iiG96Hf
 uUGUx9wVSjyXBEMMQoHBo0xpumB0yyXnzpw9wvO+PtfD3Lo5A5s1LngNvLFd9rMQt9a9m6Dv
 X7P9Wn9BhAcNfScxCCD/3bqgfXA9QvkXKoCGbv+8eRl6HWDy2pWBBAIWF+TpfiillX4S99ZM
 1YT+Cclse417kPDZtjiXTWorXicpBkeVtFMVeog52mlyKDZ/gKYDWgsVSNaZZots8peeNAx/
 gbXxZWzX2Up6eDLDyLGnluJkd+sESksBm4GdHYndDQi8dmzo8JwvxH3T9k2RcZZkebJMT33x
 jmLqg03iLMSkdMH2s2HwLzXv96/jsOXF1Bov207Skrgt1okP9D9O+RE/HCCta4YRLt1WGVtq
 5TtdyK2yOkVRa+AmyWWKAnmNOH4vq3VWNEwbLMGInXAy9hP0yLzFWyzyGsnTKuMDiriUWWxC
 KM0kVkPjKK/xFPwMcdKj3uZUqzGN5TIG9X/TezzZdFTeJV3fwLv1HgwPhHIjz+xzxR2wPxX1
 XKnnSCEVy1y5UNPlmTeegvg+eVzmnBWKZ37G/gXMChLIZLBPSXIGN/pwXOFb/wj7bPsnekm2
 403Cid+8D0GCLeWSnCOqeY7dAlWRVBmVcGeg5EGLYarf1s5cFzN/teMmNvNjaQ+xP8L/goJl
 1ngMnJlJK3X2SeadF7UMy87M9sCn/9X9BoGAMDlBn7xs1ALaoez9qYPMZwxeLgs7ut4yvBoC
 fICfq297j5nEFwrIhwRMsvwqpJMbhOuiV7cNiapemFnLZVhWxbI6pnveQ62rHsCCS++tM0fp
 by811yEHcpfFlo6VMuGOuiyy16RvGQGnL4gVUX/PdQOKl7n95JnKnKtg6Zvcd0MMxjK2hCTy
 x2SXUUDveDIroJsqIvJiKmIop2HCex7GkYGTWDX4azvbXvR/3a5wJ8GW+GNJGiPWGTx8aSkR
 ONU0/Cjb6FXwAcU69JxSu85w7g/6t3jo65h4j5lRHibPU62Dr5AI2Wd2ZUdvKN62bIE6xC9X
 ViC+4cGNOzRat/lClMYOCEscv+HiaMPgjDX4Pk4fBf66Stw8ObVWEleJUDR2ilULb8zO4I52
 +Yx/sUR7lXn2BYtN9+HiAFS9niNcSNcA/l26MlCDd+5kBcvx3FDfYfYW33/75y4YtlRNlUnf
 22Pj63YirUAnkfPfhLfz5QWMTaxUXjWhC138Q==
IronPort-HdrOrdr: A9a23:/p5Dh6i/qYK4aYvj9Ittk45iG3BQXzR13DAbv31ZSRFFG/FwyP
 rAoB1L73PJYWgqNU3I+ergBEGBKUmskaKdhrNhR4tKPTOWw1dASbsN0WKM+UyHJ8STzJ8+6U
 4CSdkANDSTNykCsS+S2mDReLxBsbr3jpxA7d2us0uFJjsaDJ2IgT0JbzpyRSZNNXR77NcCZd
 Khz/sCgwDlVWUcb8y9CHVAd+/fp+fTnJajRRIdHRYo5CSHkDvtsdfBYlKl9yZbdwkK7aYp8G
 DDnQC8zqK/s8ujwhuZ82PI9ZxZlPbo19MGLs2Rjco+LCnql2+TFc9ccozHmApwjPCk6V4snt
 WJixA8P/5r43eURW2xqQuF4XiW7B8er1vZjXOIi3rqpsL0ABggDdBauI5fehzFr2I9odBVys
 twri2knqsSKSmFsDX25tDOWR0vvFGzu2AenekaiGEaeZcCaYVWsZcU8CpuYds99RrBmcEa+d
 RVfYHhDK48SyLYU5mZhBgj/DWUZAV8Iv/cKXJy+PB80FBt7QREJgUjtYkid0w7heIAoq9/lp
 H525RT5cBzp/AtHNFA7Z86MLOK40z2MGTx2TGpUB3a/J9uAQO+l3ew2sRw2N2X
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="57984589"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lGEYAicgErzBf3u+28q1PZ+fvLG71V5iZUWoWPMfw4F9QHmYp7LBDr1BuG/0YdAXwg2RCdz2/vzxZ5Ivs0x6ubR6kRbkGX2gAKOiG80Q73Do6FFqZNgaPKP8ECqZVDhmfTW9k5mmH1RyRH8kZu4wztvrIkLjUnxbMqVPWHk6+BZGJ0B0InafkXdwb3hvcNYhLEMEEKaGk9eWMlBa7hmVej8rVaWRitzxa7J7fJxPgFskHMyiPCDp8zH++rHl6h6nyup8tSbc8ioB08+Y/Xg5GKD4Tn8/tHb/OQ2n47Hpw20N09Zyfb17PfG22CjkCCBrXac3bxQlPNnuyccaepPm9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fujjj3Mv1RnDlkPyMs1wkPWMDUbz5z63iYfbGKEyPI4=;
 b=gH6aKiqrib/iylUwd+WjAIarc7TynhzsCEaa2Nzyr/ZWqq0abmhfbhgH5h1JJ5JidPWGl1jmJEa3FLj6eFChxlDLklM/OfzrYx2nRoG0a9rUmICaeicSVAEL9y3T+mnv/Ta0FQ821HFpgKEbHVElcinORT7jGB8LUJBPMJHEMf+ZT3tV2uPVQKEJLSn1e5S/cgEsvKVYUqj9bg9r9vG+B3xBVU0DPmUtfBML85B5OmkR4/0pwnooOs1v9D5p2s3NaGe99sNHqVaYZXypBbk430dJ+WytDtz6SOXMB5wuogPTyAuSUKqGYuIAVHMxewXlAj+hqgkGaDguYtqCiUy+6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fujjj3Mv1RnDlkPyMs1wkPWMDUbz5z63iYfbGKEyPI4=;
 b=kHCKxiczB4lrteFb8Z+Je52dUZPp4bk1Z4Bkl+v2/nS+foWwikhFSLVLRIphBm1zjR4jh5Znvh1h93VMG5N6j7+JV/5bMi1IZ3jjsWvr5puu1EN658RbqTVCyW9c6I6g17Gp7lC4xmo/409qqCeAZFoobghnW/5RARVLX4dtSgA=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [PATCH for-4.16] MAINTAINERS: declare REMUS support orphaned
Date: Wed, 17 Nov 2021 13:26:47 +0100
Message-ID: <20211117122647.17872-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0139.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::20) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e92fb404-8a37-4e3e-5580-08d9a9c5932d
X-MS-TrafficTypeDiagnostic: DM6PR03MB4396:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4396A9D2246040DF1DAD94EE8F9A9@DM6PR03MB4396.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 0Fr6ObV6mxLcOSwRvO7qxLLua2Oag6+hF4QGT7UZR2cF5gKMeJozwtFeiBayAzSU55bfP+UIKJmUc2neVUGhimT0xyCnYzF3+eVJcHRIm4mBFGslMcg3VM+GuRtblkSLUgndL6OFsP1WZlLQjVBbf45gfJJ0NkzNFNOcCJGME/7TXME6hnqpKbFTNDGCjh0P8a7SJXuZEtgkfA+eD5wOQliKjNl6UdRj22td+okPy6Y7CRY8H6Crdeary7s7gyUl5WV7HdZ9gx4pQaRgTtjmMIDPqlpcrP68rw9lLymDkq1f8O6ZcJx7PwHwJZhDyFBE+vBRRTz7DManaRVyBz0JOfHvzqr0KCjjANRVVbLLsA4/eX64C+ezCjtrLrZAcYiK8zGay5ampjzBZ6ikxJksLyUuCdf25d4KaJYPe+NwcYCyar9UzOjL0Ea5wu8q1/acH8jYcqA4qGYp+JyG0bwo6IEHPxo2ZYXV715BpcfUFKl6U0Px1PfJTvXSstcHAM0q0a9HN+XSr5IrfXsJaR9Ctlp6jKtveAyeX9Wt/WR8JZA3s0uKFjP8nfu0jq6BWUfVtQiuhpz0X6OmI4KacZugbgl2l5oHEGO6WAvNfmsf9onkFNgbJ6JezsH+msQrPV3+nPuz3u8TMDrl/rKvLEervrzRtjGcfWwFBlulM6569gboCFOZz1szmyMBW57JcOf7bqh39uJcDfWv59aJWb3PmYshzCFwb3sTSXvh8XYpIq8=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(2906002)(1076003)(8676002)(4326008)(83380400001)(36756003)(6496006)(8936002)(6916009)(6666004)(4744005)(38100700002)(86362001)(186003)(6486002)(66946007)(966005)(66476007)(66556008)(82960400001)(508600001)(5660300002)(2616005)(956004)(54906003)(316002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZGJZd0R2U3lqTkJLRGFvZjVVbkVOdXFmaWNkdTVxdVZ1Y0l1UXBBZHcxMERx?=
 =?utf-8?B?QU1WdWorMGNXb29BZlQyaWpiamE5U2h0T3pCQnNIRjA0OVNNSFdRVGE0Nm9B?=
 =?utf-8?B?K0ZaejZVQm42QnVPNXZ5bnJNc3lvS01paDBPZGJOUkFuSGw5NTltL3B1Zmxz?=
 =?utf-8?B?NDc2R1ByWVlEMWtLVFlaU2JhT1Y5QmpPQ21LME9HbDBGSTVadkRORC81NkQw?=
 =?utf-8?B?d0tLNi9SdGZMYzVpNWdTVkZwYWpSdkIvOGFheWR1bGU0MXlMYVBmOEVyN0Mw?=
 =?utf-8?B?Znc1MTNHUHYvWGsvSTd2bUxISllJbThsNFJGalNYazBCbGZyUC84ekN0OVFQ?=
 =?utf-8?B?MXN3K2NMK24zQVF3ajF0RnQ3Z2E2M0ZENUMwTngwUXhCMGg5WHZkaW4wcDFX?=
 =?utf-8?B?REJ5N0w4QmZlUDUvRWhLckQvRWpUUzlBR2JtdlpiWnYrQW9TWnU0Tm9iVTFj?=
 =?utf-8?B?bEU4ckh2UWpCUUNLUzV3NzdDeFRsR2NCaGJHUEFFd3JmQkFGb1VOakhabXoy?=
 =?utf-8?B?K05QTDBHNk1hdGFmQjBMT1R4WUNNZXdCcDh5NDc1S3h4TjNNUkQ5VEU1RjhU?=
 =?utf-8?B?TnExOTJ6SmxQSW5LRU5sOE53SGZVM0wzRHhzM0FZM21xd0RrRDlwbm5JS3JC?=
 =?utf-8?B?dy8yWFFvUzkwTmdOaUNnM3cvMVJGRjhPRUxCSWFJaWtaVVJIdXVMZnRRUDM3?=
 =?utf-8?B?SHNVSEJJWDhac1pMbi9ZNFVWd3Q3dTFYaUQ3a3JGNXVYVytDN1hiZjZFSXpa?=
 =?utf-8?B?UUp3YkZ1aEpOQ3RVSzB1aStxOWxuN0c1azYySmVMZjJteE15TE4yWFlIRENW?=
 =?utf-8?B?dE1RR291ZTk2Qkd1RHR5WXBkVWsyMWUyVzJFemFka20yRG14SGp1cGhzYjAw?=
 =?utf-8?B?Q1V2WTlPTUorWG9WdnJaK1dwRlFmMTFtQzBsTWtQRXhOUHZtamQyUkhUcGdT?=
 =?utf-8?B?Rm5teWtpblcvSmpkdC9uOXJQeVBSQ3I5QjJiVXNka3NMVTEvVTZ2Y0diU2VJ?=
 =?utf-8?B?TDhHSThuQUsrcXYwNWZ6R0oxRk5HMVdIMmpYeWpqVWRPZC9zZ1RWODJ5MHpX?=
 =?utf-8?B?QjlYeG42YU1nWXJsQzZnbnlxbVZ3a3h5RGlYVWwxTlpOWEQvREtreitSNGQz?=
 =?utf-8?B?emlaZU5SZUpKb3ZFLzdrOUFiOURRU2FBcGJ4T280d0RDK0YreE1jSTF1MUxh?=
 =?utf-8?B?eEl5dGhiZ3RPTnhCMEFLSjhpS0RsVkUyUHc4aVpZS3E1T3pGT2ZsdVBFVGcx?=
 =?utf-8?B?Vm40cVJhZmUrWGczKzhjQ2tCS01nQkdIUlZ5ei9HcHU3cys2aldML1EvajJP?=
 =?utf-8?B?SFZ6MzBxdnlhb0lpU1NnQlp5TGFhT1BWUlI4aVdQQVhmZmtiVHpZVDd1VzAr?=
 =?utf-8?B?VUZhNWFMQVp4R25aNFMxdWovcWwvaU8xNVQyQ3ptMkhuaXk2eml5N0hJcjRx?=
 =?utf-8?B?M2FpelplTHAzS3FkMTkvRXlubGxwYWpmdUttT1ZGcHdHT0Jwa3hVV3hkUzk3?=
 =?utf-8?B?RmVRSkR3SE5nOGQ2SWhTeFovZXZqWG0yMjRjemQzVEs4REMvcWFidmk5UXpk?=
 =?utf-8?B?alBXZ2JGVXZoOHd4bmVxSzhlTDYzUDBOMHRGTHBNUTl1aEpoZmdxWERLU3NW?=
 =?utf-8?B?ZmFHOElYbXZlT0lJb3dLQU9SMks3OTRMNkRsOFlGRGo1UnBzTVNaVCt5ODM2?=
 =?utf-8?B?YzVBbGlDelJ6TG40ZTByY2dzRnRXdk5jek5leXVpQ1hKZ3cvOS9Sa254ODAx?=
 =?utf-8?B?MnFzRFUvMTJFNlc3UkoxNjgwbnZzQ2czc3Y3bHpTbHVvV1NrY1poeXcrTTU3?=
 =?utf-8?B?WkpiYzMzcEZZN0ZwdnB0QjdBVmhnRGdKS3M4QkZzRG5nWTBiYnlKL0R0VGhY?=
 =?utf-8?B?czZQV2ZSWGhENXVpVlRLWWlaNVZXNEFpNklIWGZBblZMc05saUROL1FXaDdP?=
 =?utf-8?B?Sy9ieDVSOTBBdFFiMXI2QWQ2R1Vnd0RtWlNHYjJnaVI3WW9aNmNpNXJDYUsr?=
 =?utf-8?B?cDFtRmRZdjA3SDJOSTlHTHJuTDNMc3dzcXM3aG5xOS9EZEVTR2xPRnFBcW1P?=
 =?utf-8?B?RkpqV1R0WGwvQXRnbVE1a2NqUDArQnZGWTBFNEtTOHAxMXdrT0h5NUg5YldY?=
 =?utf-8?B?VEJIcm1Ua2xVazB5eTIyNUxrRVZ1WjRocE1tSG11Z0xCZ3ZlNXpyWGFnbDdT?=
 =?utf-8?Q?KN7aGmV/7KIvnEKNaZQI8QE=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: e92fb404-8a37-4e3e-5580-08d9a9c5932d
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 12:27:09.3634
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RoR9X4NL68ENSCBTWPX/ZKDfUxYN5LYSQYwASRad2uY5kttmBt9bvXMF5R4/5CGVJT1OWbh9VZs+RP/owUo1Aw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4396
X-OriginatorOrg: citrix.com

The designated maintainer email address for the remus entry is
bouncing, so remove it and declare the entry as orphaned as there's no
other maintainer.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 MAINTAINERS | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 4956db1011..f67f70aed3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -470,8 +470,7 @@ S:	Supported
 T:	git https://xenbits.xenproject.org/git-http/qemu-xen.git
 
 REMUS
-M:	Shriram Rajagopalan <rshriram@cs.ubc.ca>
-S:	Maintained
+S:	Orphan
 F:	docs/README.remus
 F:	tools/libs/light/libxl_remus_*
 F:	tools/libs/light/libxl_netbuffer.c
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 12:27:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 12:27:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226836.392134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnK2X-00012W-HP; Wed, 17 Nov 2021 12:27:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226836.392134; Wed, 17 Nov 2021 12:27:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnK2X-00012P-EK; Wed, 17 Nov 2021 12:27:49 +0000
Received: by outflank-mailman (input) for mailman id 226836;
 Wed, 17 Nov 2021 12:27:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnK2V-00010v-Ff; Wed, 17 Nov 2021 12:27:47 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnK2V-0008E1-Bm; Wed, 17 Nov 2021 12:27:47 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnK2V-0003AF-0Y; Wed, 17 Nov 2021 12:27:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnK2V-0001jY-01; Wed, 17 Nov 2021 12:27:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=BK1LhBV/i4iRtWhbOS8v9s3gx4kkDdVVXbaLV+NZ/Z8=; b=0a1Uw90wmkomjsSJmuidwftqGk
	u0TkCBRlPSoBn2/bpRL9H+hoGAS4BXIYe8QZJzd8JAOU1rEokNjh2oger40JJXdTA86u+o9wH87SB
	lGGBCxX6MxBAdrh06bmvj7rRca/sz/aIm/mIggvv1su6Ux3w5l95pntWSANag+9Sintg=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166159-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166159: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=9104bd89dadd0b17c414ba24b0841d0042179a2e
X-Osstest-Versions-That:
    qemuu=757b8dd4e970038538b2e027120ab4594bebdebc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Nov 2021 12:27:47 +0000

flight 166159 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166159/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166155
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166155
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166155
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166155
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat    fail  like 166155
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166155
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166155
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166155
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166155
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166155
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                9104bd89dadd0b17c414ba24b0841d0042179a2e
baseline version:
 qemuu                757b8dd4e970038538b2e027120ab4594bebdebc

Last test of basis   166155  2021-11-16 09:09:09 Z    1 days
Testing same since   166159  2021-11-16 20:09:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Bennée <alex.bennee@linaro.org>
  Cleber Rosa <crosa@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Eric Auger <eric.auger@redhat.com>
  Hanna Reitz <hreitz@redhat.com>
  Kevin Wolf <kwolf@redhat.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Peter Maydell <peter.maydell@linaro.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Stefan Hajnoczi <stefanha@redhat.com>
  Willian Rampazzo <willianr@redhat.com>
  Yanan Wang <wangyanan55@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   757b8dd4e9..9104bd89da  9104bd89dadd0b17c414ba24b0841d0042179a2e -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 12:30:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 12:30:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226842.392147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnK5M-0002Vj-8S; Wed, 17 Nov 2021 12:30:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226842.392147; Wed, 17 Nov 2021 12:30:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnK5M-0002Vc-4f; Wed, 17 Nov 2021 12:30:44 +0000
Received: by outflank-mailman (input) for mailman id 226842;
 Wed, 17 Nov 2021 12:30:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnK5L-0002VW-I8
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 12:30:43 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnK5L-0008Gr-HL
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 12:30:43 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnK5L-0005yI-GH
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 12:30:43 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mnK5H-0005Ss-3j; Wed, 17 Nov 2021 12:30:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=eMpLQOCrMuv81uO3DLJrULXUZspxIUHGZLl50yxIF00=; b=l8JhZ4ylx+W4oItODDvruOG5nD
	5X8Dc5JRa+3k16uJRixwAdiSHIGMVqO7pEp/558nCVPDSbp2XjxBryx4NjUOqntAL8JhFWBoW5C2e
	+jSDQAYZMdG8w9VssKOcIK0TblB7LRIukrVb9jT5HR98gJGEua9XtZDxZEu1TmZkmmnY=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24980.62958.680856.115625@mariner.uk.xensource.com>
Date: Wed, 17 Nov 2021 12:30:38 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    Julien Grall <julien@xen.org>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH for-4.16] MAINTAINERS: declare REMUS support orphaned
In-Reply-To: <20211117122647.17872-1-roger.pau@citrix.com>
References: <20211117122647.17872-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16] MAINTAINERS: declare REMUS support orphaned"):
> The designated maintainer email address for the remus entry is
> bouncing, so remove it and declare the entry as orphaned as there's no
> other maintainer.

Hrm, :-(.

Acked-by: Ian Jackson <iwj@xenproject.org>


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 13:07:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 13:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226850.392158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnKel-0005nc-3z; Wed, 17 Nov 2021 13:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226850.392158; Wed, 17 Nov 2021 13:07:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnKel-0005nV-16; Wed, 17 Nov 2021 13:07:19 +0000
Received: by outflank-mailman (input) for mailman id 226850;
 Wed, 17 Nov 2021 13:07:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tBek=QE=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnKej-0005nP-Bc
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 13:07:17 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48a91cc4-47a7-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 14:07:15 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:47420)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnKeg-000gfD-hF (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 17 Nov 2021 13:07:14 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 1EB8B1FBFC;
 Wed, 17 Nov 2021 13:07:14 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48a91cc4-47a7-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <5c503268-f729-ae02-c9f0-d015cdc747f9@srcf.net>
Date: Wed, 17 Nov 2021 13:07:13 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony Perard <anthony.perard@citrix.com>, Ian Jackson
 <iwj@xenproject.org>, Paul Durrant <paul@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
References: <b6d598cd-c244-2b7f-c731-fe839df3382e@suse.com>
 <b62a87ca-b68f-76fd-51c6-114e8b8e125b@suse.com>
 <YZTDkNRY5pMLFUR6@Air-de-Roger>
 <fe31a1b4-8c66-701d-f951-6426fa72252c@suse.com>
 <d2650a7e-f681-301c-6959-bc84a502255a@srcf.net>
 <3d7d5069-591d-4535-c13a-5976e1172a68@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: PCI pass-through vs PoD
In-Reply-To: <3d7d5069-591d-4535-c13a-5976e1172a68@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 17/11/2021 11:23, Jan Beulich wrote:
> On 17.11.2021 12:09, Andrew Cooper wrote:
>> On 17/11/2021 10:13, Jan Beulich wrote:
>>> On 17.11.2021 09:55, Roger Pau Monné wrote:
>>>> On Wed, Nov 17, 2021 at 09:39:17AM +0100, Jan Beulich wrote:
>>>>> On 13.09.2021 11:02, Jan Beulich wrote:
>>>>>> libxl__domain_config_setdefault() checks whether PoD is going to be
>>>>>> enabled and fails domain creation if at the same time devices would get
>>>>>> assigned. Nevertheless setting up of IOMMU page tables is allowed.
>>>> I'm unsure whether allowing enabling the IOMMU with PoD is the right
>>>> thing to do, at least for our toolstack.
>>> May I ask about the reasons of you being unsure?
>> PoD and passthrough is a total nonsense.  You cannot have IOMMU mappings
>> to bits of the guest physical address space which don't exist.
>>
>> It is now the case that IOMMU (or not) must be specified at domain
>> creation time, which is ahead of creating PoD pages.  Certainly as far
>> as Xen is concerned, the logic probably wants reversing to have
>> add_to_physmap&friends reject PoD if an IOMMU was configured.
>>
>> A toolstack could, in principle, defer the decision to first device
>> assignment.
> Right, which is what I consider the preferred approach.

Why?

Just because something is technically possible, does not mean it is an 
appropriate or clever thing to do.

In this case, we're talking about extra complexity in Xen and the 
toolstack, which in the very best case comes with unattractive user 
experience properties, to "fix" an issue which doesn't happen in practice.

>> and liable to suffer -ENOMEM,
> Not if (as suggested) we first check that the PoD cache is large enough
> to cover all PoD entries.

Just because at this instant we have enough free RAM to force-populate 
all PoD entries doesn't mean the same is true in 2 minutes time after 
we've been slowly force-populating a massive VM.

Yes, there are heuristics we can use to short-circuit the failure early, 
but that's still spelt -ENOMEM and reported to the user as such.

The only way to succeed here is to force populate the VM and to have not 
suffered -ENOMEM by the end of this task.

>> or we have
>> to reject a control operation with -EBUSY for a task which is dependent
>> on the guest kernel actions in a known-buggy area.
> Why reject anything?

Because the guest kernel has no knowledge of nor the ability to query 
the PoD status of a page, the only way to not have things malfunction is 
to enforce that there are no P2M entries of type PoD when devices are 
assigned.

If you don't want to / can't force-populate the entire VM prior to 
having device assigned, then the assign operation needs to fail.

>> There is no point trying to make this work.  If a user wants a device,
>> they don't get to have PoD.  Anything else is a waste of time and effort
>> on our behalf for a usecase that doesn't exist in practice.
> Not sure where you take the latter from. I suppose I'll submit the patch
> as I have it now (once I have properly resolved dependencies on other
> patches I have queued and/or pending), and if that's not deemed acceptable
> plus if at the same time I don't really agree with proposed alternatives,
> I'll leave fixing the bug to someone else. Of course the expectation then
> is that such a bug fix come forward within a reasonable time frame ...

What bug?  PoD and PCI Passthrough are mutually exclusive technologies.

We can (now) tell up front when a VM is configured with these mutually 
exclusive options.  Such a configuration should be rejected as early as 
possible.


What you're talking about is introducing extra complexity to explicitly 
support running the VM in a known-incompatible configuration, with the 
decision point for fixing said incompatibility deferred until runtime 
and now with a possibility of "genuinely can't this to become compatible".

Failing device assignment (potentially after a multi-minute wait) with 
"well you shouldn't have enabled PoD to begin with, you fool" is clearly 
worse behaviour than refusing to create such a VM in the first place, 
and you need a far far better reason than "because it's technically 
possible" to justify doing this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 13:22:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 13:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226854.392170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnKth-00081K-FJ; Wed, 17 Nov 2021 13:22:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226854.392170; Wed, 17 Nov 2021 13:22:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnKth-00081D-Bf; Wed, 17 Nov 2021 13:22:45 +0000
Received: by outflank-mailman (input) for mailman id 226854;
 Wed, 17 Nov 2021 13:22:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=66jA=QE=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mnKtf-000817-6l
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 13:22:43 +0000
Received: from mail-pg1-x535.google.com (mail-pg1-x535.google.com
 [2607:f8b0:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70b9fffc-47a9-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 14:22:41 +0100 (CET)
Received: by mail-pg1-x535.google.com with SMTP id 200so2266633pga.1
 for <xen-devel@lists.xenproject.org>; Wed, 17 Nov 2021 05:22:41 -0800 (PST)
Received: from ?IPV6:2404:f801:0:5:8000::50b? ([2404:f801:9000:18:efec::50b])
 by smtp.gmail.com with ESMTPSA id
 t40sm23310231pfg.107.2021.11.17.05.22.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Nov 2021 05:22:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70b9fffc-47a9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:subject:content-language:to
         :cc:references:from:in-reply-to:content-transfer-encoding;
        bh=n7Jf+5/Jh7KOEFSs12H1gnleHX5Ul1EJihf5cWALbbw=;
        b=NMtrHwlhumZZGG7ACQ5UZwJN7rtTqhVOALh7ylXTR9G6Y8zmsKtbGjwSxvzwVD314V
         mFlCILMpoJPcOxUNV38QoEdCs8zz43HlJK1GNiNc4P2QVifmYL23tPn/GqSDrxCGPg16
         bvAIjKJA0lzwI5sAj/KKF7Bc8fhHe/9Wx28bmwIGJrkCjDmdcCDuD5dw7cCpuvtFoqub
         iSkzJKRMidoqCXXQSY0sUPKp3Cs63451CNuN8JlBUt7M7BBJqI/PFOoctzgC3YAkmPjZ
         yOWSQXVn3LZwrWkLZBlx3QxZWWBmdX22onr58Glga9JdD2AAQeBuO5o77eDt6FelUOw8
         iVxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=n7Jf+5/Jh7KOEFSs12H1gnleHX5Ul1EJihf5cWALbbw=;
        b=ZNKVPj6uUvZ4/CATOKU+JL1fLu7AlhulMRdjyDKnSO/LidPrAhJ+1MRSoPvOsVt5yi
         4h6F3pjG+M5DFOY19pG+pcA8lykZtu4iK7+2uT1X5N4y9DdNG2etyLvw6THyyqNV0eMu
         W1O8kCXYUGVbXWAhXhDrDsyDNGt+VJ80U7yqfGrayHeQa2btsCrNq3hd9IIKq50V+VRb
         P2STPBjPu5I1p1HqYWeCgw81JYJ+UxJvgf/DILahmVaM58BbjF6bxHkqKGrYlsLQuqlX
         oOv4b2POkNdiI4PDIrvl5cDyHqZ+z3X+84UZGY9WuQx5X4A4iMDbPin6N0okdRHCB6tB
         Hqmw==
X-Gm-Message-State: AOAM530sqTO1k9woZ99f1YrZRN3hOFO+WJyaO60n6K3uWhTrDGov8Fb+
	XsB9uMJ3g8ITsUz/9FYe02c=
X-Google-Smtp-Source: ABdhPJwYIet5fq/8KowjGXs7GPhnQ/zbG+7NtQHLznln3NXsAVsDB6ZMleQEQVqBwkPH6jdcXK5meg==
X-Received: by 2002:a05:6a00:2146:b0:44c:2922:8abf with SMTP id o6-20020a056a00214600b0044c29228abfmr48946221pfk.27.1637155360284;
        Wed, 17 Nov 2021 05:22:40 -0800 (PST)
Message-ID: <fb9809f5-a830-733e-745b-aa1b1d2671f5@gmail.com>
Date: Wed, 17 Nov 2021 21:22:27 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 3/5] hyperv/IOMMU: Enable swiotlb bounce buffer for
 Isolation VM
Content-Language: en-US
To: Borislav Petkov <bp@alien8.de>
Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org,
 tglx@linutronix.de, mingo@redhat.com, x86@kernel.org, hpa@zytor.com,
 jgross@suse.com, sstabellini@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, sthemmin@microsoft.com,
 wei.liu@kernel.org, decui@microsoft.com, joro@8bytes.org, will@kernel.org,
 davem@davemloft.net, kuba@kernel.org, jejb@linux.ibm.com,
 martin.petersen@oracle.com, hch@lst.de, m.szyprowski@samsung.com,
 robin.murphy@arm.com, xen-devel@lists.xenproject.org,
 michael.h.kelley@microsoft.com, Tianyu Lan <Tianyu.Lan@microsoft.com>,
 iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
 netdev@vger.kernel.org, vkuznets@redhat.com, brijesh.singh@amd.com,
 konrad.wilk@oracle.com, parri.andrea@gmail.com, thomas.lendacky@amd.com,
 dave.hansen@intel.com
References: <20211116153923.196763-1-ltykernel@gmail.com>
 <20211116153923.196763-4-ltykernel@gmail.com> <YZQCp6WWKAdOCbh8@zn.tnic>
From: Tianyu Lan <ltykernel@gmail.com>
In-Reply-To: <YZQCp6WWKAdOCbh8@zn.tnic>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 11/17/2021 3:12 AM, Borislav Petkov wrote:
> What you should do, instead, is add an isol. VM specific
> hv_cc_platform_has() just like amd_cc_platform_has() and handle
> the cc_attrs there for your platform, like return false for
> CC_ATTR_GUEST_MEM_ENCRYPT and then you won't need to add that hv_* thing
> everywhere.
> 
> And then fix it up in __set_memory_enc_dec() too.
>

Yes, agree. Will add hv cc_attrs and check via cc_platform_has().




From xen-devel-bounces@lists.xenproject.org Wed Nov 17 13:32:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 13:32:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226860.392181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnL37-00011t-Ag; Wed, 17 Nov 2021 13:32:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226860.392181; Wed, 17 Nov 2021 13:32:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnL37-00011m-6y; Wed, 17 Nov 2021 13:32:29 +0000
Received: by outflank-mailman (input) for mailman id 226860;
 Wed, 17 Nov 2021 13:32:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=66jA=QE=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mnL36-00011I-Ey
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 13:32:28 +0000
Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com
 [2607:f8b0:4864:20::102c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce12b810-47aa-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 14:32:27 +0100 (CET)
Received: by mail-pj1-x102c.google.com with SMTP id
 gx15-20020a17090b124f00b001a695f3734aso2660214pjb.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Nov 2021 05:32:27 -0800 (PST)
Received: from ?IPV6:2404:f801:0:5:8000::50b? ([2404:f801:9000:1a:efea::50b])
 by smtp.gmail.com with ESMTPSA id
 y28sm23237747pfa.208.2021.11.17.05.32.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Nov 2021 05:32:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce12b810-47aa-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:subject:content-language:to
         :cc:references:from:in-reply-to:content-transfer-encoding;
        bh=zR3oNRYhTYJUZxaoak8qMlUuBunZjm5m9hqskt3h3S4=;
        b=ggvPHm4xgldOYNuvLAK0wCZC8fi4QdT92wt9aO0Z1D+A8KeOi+P1P1JWtXkWduE+Ch
         r6ou4FvXsNhepLE8E70VqGkz+/lDwWv7enCCiPmHwIBtd8kf2It6TjK/tqJvLKuShbGK
         0bql4MAv8/pbMx8YyG0cDh/0zTFZMrBCBap5FVuQdaMLz170KD8tA2xrwcyOnV2CGSaU
         XC9McvnV4rtzWcYyCt8336Tl0rj1KT9TWDrtW7oGGCWhI41aW30RYAShzVcOFPieXpQ2
         2szScJ98dW1z6BZ6y4Px5EjFn8WqTBG7cb5V8p7izkymWXTEpGK00GSfEtG9CuZzRkDF
         KZTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=zR3oNRYhTYJUZxaoak8qMlUuBunZjm5m9hqskt3h3S4=;
        b=y3Op9Pnpuwe+i7e0U/0Wh/imPQqRyA5oAYe8vu0bynXrmIyJnqh5mUp/mU+l+gsfmH
         MmWB6UZ1qBNXH4kIIGsEsfg5pygpxMkGGXqsA7M8lep/4TZ/AvpmxgH/q1uCO6byFA5Z
         pciZ29IAiqQW97wm1VGHkNZcRZrqEpt+NRVwZuQHIeXIH0NqwxgwGO1GId72Ytzmwibv
         bzS/qW6f0ISTeVXXz+bJudJ6LOOH47BiSwn8oTejWu7UpGzlgs3ApS2pNUkXxDUzF8EW
         hGVQRu9GAmRMYALR9IWCuMrexrhWLs8JB7yfvgs3Q7EkpyeaNQwkDCkOLIQExRn78ZUT
         UEaQ==
X-Gm-Message-State: AOAM5321YdCq46OMUfVBe3VMd1Q3I00JkuRM+Se7T66QExO0v1+/5m/j
	VFkOyrJPayIS4WV6aE9t6PI=
X-Google-Smtp-Source: ABdhPJzUpe9LLZVlH0z5E35okJoiJmMYQnfNMpmq8a9kmB7F5FUzY6wGExQKYAIJCpzqgtl9+SISaw==
X-Received: by 2002:a17:90a:ab17:: with SMTP id m23mr9499872pjq.194.1637155946398;
        Wed, 17 Nov 2021 05:32:26 -0800 (PST)
Message-ID: <0ab42ae0-9323-9297-c2c8-1cfc1ebada08@gmail.com>
Date: Wed, 17 Nov 2021 21:32:13 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/5] x86/Swiotlb: Add Swiotlb bounce buffer remap function
 for HV IVM
Content-Language: en-US
To: Christoph Hellwig <hch@lst.de>
Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org,
 tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org,
 hpa@zytor.com, jgross@suse.com, sstabellini@kernel.org,
 boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
 sthemmin@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
 joro@8bytes.org, will@kernel.org, davem@davemloft.net, kuba@kernel.org,
 jejb@linux.ibm.com, martin.petersen@oracle.com, m.szyprowski@samsung.com,
 robin.murphy@arm.com, xen-devel@lists.xenproject.org,
 michael.h.kelley@microsoft.com, Tianyu Lan <Tianyu.Lan@microsoft.com>,
 iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
 netdev@vger.kernel.org, vkuznets@redhat.com, brijesh.singh@amd.com,
 konrad.wilk@oracle.com, parri.andrea@gmail.com, thomas.lendacky@amd.com,
 dave.hansen@intel.com
References: <20211116153923.196763-1-ltykernel@gmail.com>
 <20211116153923.196763-2-ltykernel@gmail.com> <20211117095953.GA10330@lst.de>
From: Tianyu Lan <ltykernel@gmail.com>
In-Reply-To: <20211117095953.GA10330@lst.de>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Christoph:
       Thanks for your review.

On 11/17/2021 5:59 PM, Christoph Hellwig wrote:
> The subject is wrong, nothing x86-specific here.  Please use
> "swiotlb: " as the prefix

OK. Will update. Thanks.

> 
>> + * @vaddr:	The vaddr of the swiotlb memory pool. The swiotlb
>> + *		memory pool may be remapped in the memory encrypted case and store
> 
> Please avoid the overly long line. >
>> +	/*
>> +	 * With swiotlb_unencrypted_base setting, swiotlb bounce buffer will
>> +	 * be remapped in the swiotlb_update_mem_attributes() and return here
>> +	 * directly.
>> +	 */
> 
> I'd word this as:
> 
> 	/*
> 	 * If swiotlb_unencrypted_base is set, the bounce buffer memory will
> 	 * be remapped and cleared in swiotlb_update_mem_attributes.
> 	 */

Thanks for suggestion. Will update. Thanks.


>> +	ret = swiotlb_init_io_tlb_mem(mem, __pa(tlb), nslabs, false);
>> +	if (ret) {
>> +		memblock_free(mem->slots, alloc_size);
>> +		return ret;
>> +	}
> 
> With the latest update swiotlb_init_io_tlb_mem will always return 0,
> so no need for the return value change or error handling here.
> 

OK. Will revert the change.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 13:59:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 13:59:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226867.392192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnLTH-0003PH-Gy; Wed, 17 Nov 2021 13:59:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226867.392192; Wed, 17 Nov 2021 13:59:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnLTH-0003PA-Dn; Wed, 17 Nov 2021 13:59:31 +0000
Received: by outflank-mailman (input) for mailman id 226867;
 Wed, 17 Nov 2021 13:59:30 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnLTG-0003P0-SG; Wed, 17 Nov 2021 13:59:30 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnLTG-0001Kf-HN; Wed, 17 Nov 2021 13:59:30 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnLTG-0007l4-66; Wed, 17 Nov 2021 13:59:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnLTG-0004La-5Y; Wed, 17 Nov 2021 13:59:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=sSbz0DByT/xr6U95rrWwbjN8y/n405s1JA07l7jOtEA=; b=262mlWoSNIOsOUjiHoPu8pNWRI
	3xQKUgDOkW0Z/Fcu1n2v2MJ9X2QzMtjpgl3WpRUFQtaGhT0b2T8gT08XC7st3QYpxeTeTiGjnm2Ly
	yEt4DWfFRHhSudxhCyEMVhad435YKax1n8T/V1mdBR7R0VBm+tY2pBj/LhiyPPqTAvUM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166160-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166160: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=2d72d2784eb71d8532bfbd6462d261739c9e82e4
X-Osstest-Versions-That:
    xen=c7a7f14b92991e7d79735bff95f04676b9af34c6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Nov 2021 13:59:30 +0000

flight 166160 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166160/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail like 166135
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166147
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166152
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166152
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166152
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166152
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166152
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166152
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166152
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166152
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166152
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166152
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166152
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  2d72d2784eb71d8532bfbd6462d261739c9e82e4
baseline version:
 xen                  c7a7f14b92991e7d79735bff95f04676b9af34c6

Last test of basis   166152  2021-11-16 01:52:46 Z    1 days
Testing same since   166160  2021-11-16 20:36:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c7a7f14b92..2d72d2784e  2d72d2784eb71d8532bfbd6462d261739c9e82e4 -> master


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 14:00:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 14:00:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226873.392209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnLU8-0004pf-3f; Wed, 17 Nov 2021 14:00:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226873.392209; Wed, 17 Nov 2021 14:00:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnLU8-0004pY-04; Wed, 17 Nov 2021 14:00:24 +0000
Received: by outflank-mailman (input) for mailman id 226873;
 Wed, 17 Nov 2021 14:00:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=66jA=QE=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mnLU6-0003pW-FP
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 14:00:22 +0000
Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com
 [2607:f8b0:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b3750eda-47ae-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 15:00:21 +0100 (CET)
Received: by mail-pl1-x630.google.com with SMTP id b11so2213666pld.12
 for <xen-devel@lists.xenproject.org>; Wed, 17 Nov 2021 06:00:21 -0800 (PST)
Received: from ?IPV6:2404:f801:0:5:8000::50b? ([2404:f801:9000:18:efec::50b])
 by smtp.gmail.com with ESMTPSA id
 95sm5490056pjo.2.2021.11.17.06.00.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Nov 2021 06:00:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3750eda-47ae-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:subject:content-language:to
         :cc:references:from:in-reply-to:content-transfer-encoding;
        bh=pfKT7vWJtxV2smk9CnW5qMlXjmk0IHKeJrqLf4YFRis=;
        b=Rjj9c6AtN53lwjrZL6EQMTK4S9B6EyjLDiTKAEZtG92IG/z5eW4MmmZjuNMEaPPtjf
         LSOJT/vIwEcxXU1K7Ca+hnK+LznG3PkqsB9P36idDXcWR6yBZ0TKu/gYYNIynsfa6uwl
         wwXh4cR3P9Fphh3Ru4IOABiaCcVVd3dR/Z+YDRN5tiFV3q6iF+hOXqmMcg2FfSxJRFzw
         2zMMFPxbuq+GlPyeaD3MgQIipxxSO7TRApycEHsiuMj7dn5MGNWFoo8smcQRSoTJRhJs
         ZsXAJgdRa8E0sMFr5/frJselNGMJAjuNu9fCWyvPs//KwOW3T6zPAQdpgf+k/6JRtRmA
         Pl4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=pfKT7vWJtxV2smk9CnW5qMlXjmk0IHKeJrqLf4YFRis=;
        b=ymM927ed27qwqsHIKu47y4aKdnKwtPTMB2C3rvTGTNOpl0gR6xtjE9TECQ7NZz+aKU
         Jf5rU55sKfb6VCY/6kMyxkWkBRM0mf6fUPgYTfpcRAXk6RMW6i6V8UVgp3uLUl59jT7e
         npR9Q50d/jGWAiSEeg3rXcCnu0eBV0naErYfnGUpsf8yH59sD1Bjmcy8erAqqDpgd9Tf
         MxYlkQs5/0iVWHqfKNLhKytP3Xso3j8QMmVVsjR2Gq+HaFBmLQJfdze7ATbHJkagCyGf
         /i01eNT/S1zMkumKuXj1Wpl2G9h4BszkBqxscSqsVhpZ5+Wo3mcX1kXE//XxwBZMZ8xY
         5a3A==
X-Gm-Message-State: AOAM531irz0l/Tn59I7a+hbucGuZbjJL+uy2gkRAmR6+0FokQ+yqC/RN
	jNpxwMcwEHIageUWDw709Ns=
X-Google-Smtp-Source: ABdhPJz045G1qOXv6u71zRNaxnc6W77FjMF/vz0ksg1+BccDMfhcBoN3nBp5JPhXQCiAcID15bfAZg==
X-Received: by 2002:a17:903:32c2:b0:141:eed4:ec1c with SMTP id i2-20020a17090332c200b00141eed4ec1cmr56123455plr.33.1637157619685;
        Wed, 17 Nov 2021 06:00:19 -0800 (PST)
Message-ID: <c93bf3d4-75c1-bc3d-2789-1d65e7c19158@gmail.com>
Date: Wed, 17 Nov 2021 22:00:08 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 3/5] hyperv/IOMMU: Enable swiotlb bounce buffer for
 Isolation VM
Content-Language: en-US
To: Christoph Hellwig <hch@lst.de>
Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org,
 tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org,
 hpa@zytor.com, jgross@suse.com, sstabellini@kernel.org,
 boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
 sthemmin@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
 joro@8bytes.org, will@kernel.org, davem@davemloft.net, kuba@kernel.org,
 jejb@linux.ibm.com, martin.petersen@oracle.com, m.szyprowski@samsung.com,
 robin.murphy@arm.com, xen-devel@lists.xenproject.org,
 michael.h.kelley@microsoft.com, Tianyu Lan <Tianyu.Lan@microsoft.com>,
 iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
 netdev@vger.kernel.org, vkuznets@redhat.com, brijesh.singh@amd.com,
 konrad.wilk@oracle.com, parri.andrea@gmail.com, thomas.lendacky@amd.com,
 dave.hansen@intel.com
References: <20211116153923.196763-1-ltykernel@gmail.com>
 <20211116153923.196763-4-ltykernel@gmail.com> <20211117100142.GB10330@lst.de>
From: Tianyu Lan <ltykernel@gmail.com>
In-Reply-To: <20211117100142.GB10330@lst.de>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/17/2021 6:01 PM, Christoph Hellwig wrote:
> This doesn't really have much to do with normal DMA mapping,
> so why does this direct through the dma ops?
> 

According to the previous discussion, dma_alloc_noncontigous()
and dma_vmap_noncontiguous() may be used to handle the noncontigous
memory alloc/map in the netvsc driver. So add alloc/free and vmap/vunmap
callbacks here to handle the case. The previous patch v4 & v5 handles
the allocation and map in the netvsc driver. If this should not go 
though dma ops, We also may make it as vmbus specific function and keep
the function in the vmbus driver.

https://lkml.org/lkml/2021/9/28/51




From xen-devel-bounces@lists.xenproject.org Wed Nov 17 14:08:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 14:08:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226879.392221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnLcD-0005eL-Qx; Wed, 17 Nov 2021 14:08:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226879.392221; Wed, 17 Nov 2021 14:08:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnLcD-0005eE-N7; Wed, 17 Nov 2021 14:08:45 +0000
Received: by outflank-mailman (input) for mailman id 226879;
 Wed, 17 Nov 2021 14:08:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5X4Q=QE=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mnLcB-0005dl-MJ
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 14:08:43 +0000
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03on0630.outbound.protection.outlook.com
 [2a01:111:f400:fe09::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dedc0bae-47af-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 15:08:43 +0100 (CET)
Received: from DB8PR04CA0005.eurprd04.prod.outlook.com (2603:10a6:10:110::15)
 by AM5PR0801MB1907.eurprd08.prod.outlook.com (2603:10a6:203:4a::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25; Wed, 17 Nov
 2021 14:08:05 +0000
Received: from DB5EUR03FT060.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:110:cafe::69) by DB8PR04CA0005.outlook.office365.com
 (2603:10a6:10:110::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Wed, 17 Nov 2021 14:08:05 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT060.mail.protection.outlook.com (10.152.21.231) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.19 via Frontend Transport; Wed, 17 Nov 2021 14:08:05 +0000
Received: ("Tessian outbound 1cd1a01725a6:v110");
 Wed, 17 Nov 2021 14:08:05 +0000
Received: from dd63fb111d96.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 775ECF31-5667-4C7E-A1A8-BA0D915BA1AF.1; 
 Wed, 17 Nov 2021 14:07:53 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id dd63fb111d96.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 17 Nov 2021 14:07:53 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB5093.eurprd08.prod.outlook.com (2603:10a6:20b:d5::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov
 2021 14:07:51 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Wed, 17 Nov 2021
 14:07:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dedc0bae-47af-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4fd4HN8k0XKsMwyTUGkhzi7dq5sLj7KvnfGeu1ADax4=;
 b=D5qQKOV3bbv6rEJeU+BoYsq3eN0Hj2wmovZW7PbjxkD0VRoZI+ztfH1MrDE2FNsa5NOlIIawZirbtEuKf6yJI/MreeiMUobgJGfUnJ1+pmpzs3nKZo4bvTlPAUrvjx1yAS1mbzb7tLgIJ8qXswJ8GrVmPy6GxHHTx1fEWSn5UKs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: c4762fc8319875a5
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BPUumzggTlugDbBbL1/X7Hfbx3frspnukti/xtzkgeGjlaUUhVPNqqe5eBlT5aLsjNuaijNTmGlNyGXDdZl4hG2IdJE9rDx5NYCqxT30Mjyc8gyfPXtWnLWCIc2l1snhm521sASYXM7T4+PNmugjfo+KlOL63ja+91tGcyR9QGWy7UzoJf8xIVq2jIEk0s828lixZwOtKGd0lQ5Ri89mZRtpgMA69DFmfsZXjV3xkQRAIjjPnt6DOehWf/s1sNhO24FlNMhSF77Z6iG2HFXdrIwiQne1j0wx2phTWMWUMgu27uclXJn0KNs0M7tlOLRxla04Ahs3frEm3ox6GKVY7A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4fd4HN8k0XKsMwyTUGkhzi7dq5sLj7KvnfGeu1ADax4=;
 b=PE5KOGU9I82spI2enWsZ3n+LAIWgSwYpg7UJ2X+PfvQ90Go9nL2PgfDax3jkBNStlZu3+Pz5FwDlNM9Podp6Bw+9qcmRtAte+IgZ58gNthnllcVVG42qNOEt7ZaW3e5SJTbi5vaJjlXuRGwSu/CTE1fZCRAyS9sOYtQeKjhSAZmt2sCrDzAWpxFnjqXldoJmDa8W2RjuNmZJPDaMh3Fbac3CX22U1e23msEu9IcsEii/0WO5SYdPUrH2QhDEL7CEC/ASASfmth0/b8P+4vtrOXKRNnGeiGzW0tgRGDNcQJLeh5UkfKwqXJg0W4mySOBc3gw0oify9idf9lwbclVG2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4fd4HN8k0XKsMwyTUGkhzi7dq5sLj7KvnfGeu1ADax4=;
 b=D5qQKOV3bbv6rEJeU+BoYsq3eN0Hj2wmovZW7PbjxkD0VRoZI+ztfH1MrDE2FNsa5NOlIIawZirbtEuKf6yJI/MreeiMUobgJGfUnJ1+pmpzs3nKZo4bvTlPAUrvjx1yAS1mbzb7tLgIJ8qXswJ8GrVmPy6GxHHTx1fEWSn5UKs=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Roger Pau Monne <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Julien
 Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, Nick
 Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Quan Xu
	<quan.xu0@gmail.com>, Rahul Singh <Rahul.Singh@arm.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Shriram Rajagopalan <rshriram@cs.ubc.ca>, Stefano Stabellini
	<sstabellini@kernel.org>, Stewart Hildebrand
	<stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei
 Liu <wl@xen.org>, Community Manager <community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Topic: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Index: AQHX25ke11bcLw+u/U2iOGdMJWqiNawHwc0A
Date: Wed, 17 Nov 2021 14:07:50 +0000
Message-ID: <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
In-Reply-To: <20211117095338.14947-3-roger.pau@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 5c7e4714-19d8-4243-0221-08d9a9d3acd2
x-ms-traffictypediagnostic: AM6PR08MB5093:|AM5PR0801MB1907:
X-Microsoft-Antispam-PRVS:
	<AM5PR0801MB1907AAD3857C7C1C89709E349D9A9@AM5PR0801MB1907.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:8273;OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 2HXTFrSmQT36iq3rQloHgap09ISfvJl4FT2ZuTN5mAc/DwLCV0KE8TuNAu+0qthNoQcE6kLgP/T6FX2GWDuSN74Lq9Ep5N33jOK/KbOq1KjnP3N+Lsr1DKoJNYt4kDq/lWYiwfl+MCLxuIA2WT4NPPTSXtCGUOKzQl53DC2Aglcf56IE1a+G1GKQc8Hr635AKJxcVbRxZogU+38RIdenJeTk45Qdu6bDCNsoklWRPbwmbtJr3U9yuJ/gN0sZGuAgBNxZO5voxIBT/KrAYIvIv7Ihx2zt9It5HNQtnoSbRlyKT26MQ/ehChCLHfgBzQfKYfj6/PYmqft3f0s2+iWBX4j5oJ7xmPt5pc/7X+ARy9O5aZkui8m2Wb4EOI2wF55gmaf2Voq9Z015oRg89pPF5Fto8OSdaKZiQlu5bluilmkOE4nlI59mXUgAjeL3qwnaQOp/h96Roj/Oqqa0rrK/2yjcuBL9UsydZcsZ3tF978zgvp7Z/yktBq/seT1Sxc1gkKh9O+8eKxGIY1i6Y6cG/HHRywHw7NXvMfH7Uxd+ZqcoFXYYXyTGPst5YDcfp18muCAC0oXn9qMiklxEi1Lyv5Ey2kFh+jBTgjGTd/jJ9zmJgwi7bwjLD3m2kFYTBcQjgeJbP08AyiJxtMjYyzliDSugxubLnrX4ydz0QrPJ9Z1Qo+brCmq0hKvAMVLA6Gz11PRFKKuPTfgufEGi2TIp131KKyn3YtgKwUFaSjc99guoKWLkkEqyy5xe6NR86Dj4DfHJa/f5CyFjrSA2dxb4ZAqPlKlMjjEI3Kdd4L9GwDJRJWvn/I6L8fzfh53DXkUyFhk4dK0aaprBOHo/d8RpTHPQILWLSbr4TWSIfasNAWlKctUbhVxLW+xpXJbmgIaE
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(36756003)(2906002)(83380400001)(2616005)(38100700002)(5660300002)(122000001)(316002)(6486002)(26005)(6512007)(7406005)(38070700005)(71200400001)(7416002)(8676002)(4326008)(54906003)(8936002)(66476007)(66946007)(76116006)(91956017)(64756008)(66446008)(66556008)(33656002)(6916009)(508600001)(86362001)(186003)(6506007)(53546011)(207903002)(219803003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <3DC4EBD07CD7504F93C170B25A844133@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB5093
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT060.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a0826f88-4842-4c71-6d5e-08d9a9d3a43a
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	EVxWlNLVV//AiDrne3yzOgO5oHlPjp0gGOAY/D/vq4UC2v2o7ejW5RoQvD1iiBBUp50SHUY9BdSuYzNsOeYctQdT4OaYG4iVAyvchtsmMxuv76mAGfWvm2cVS0I4ulw4MJ7Xsn000kouUAlHVRAe6Qo5Q1zMFpPmkzzK6zw1Wdf+F1miqZPGrqN1TRpjYzf2SprW3RHKvC8Y5YvMlKZ3+Ir3gjbofwIKxJMR903U/Kgf3POQBZNylfHZmRDUCzDhpNMzuSH6kGxjuag3Xqa5pUhbT5qBlW+Qh/sq/uEGlJvU+uISodGixFQUQv7s7DfWW9950uEucjl20WgLWSAEppzUrWSvE8KNAUH1YZA9IabID35sc+T5UUdajVx7f7CzR7whCpZiveYtTRXB+8M11mRnH5aYxj5Ky4UIwENFT01B+WPax6m/49/K2LMWCcHXtTapukkhf5cufDqxQQ/SnuI9CspV76N8DzFu86naxoM2XXE/y946e1tVRHbFfr07QImxaHYjLSsg0CRHJU7BLPqazx7arKNIy7OVFb986AEU40ZW6VbpHzkT7lyccvsGmom8v/xw9JBoNN2u3+7IjK4brQoUOpNbGZqmxrdGJv94H4flXrPU1nAfwrL4dWJwbZ9n3bhbzv/A1AM2VZ7bCk0rIwYIBAkk/5kvgc6R+ED5ktO6Ah0R4XeFeF4RG32fzpoGLUDcjdIje5xhTvdDmyi56ySPu9cBYpkEOdGf4byGVGibpxY4xD4LWkLjWMz3/x1d7mTHKvjgvfkNtZED2PPKCVRy3tP4L18mhOSB7Z4Y5t7TjQRbFBT8GxwXff/iFbnpc3qLDnFkuaAVWV9VwBRfxBeWLAxebrZhTUeVxcA=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(8936002)(2906002)(54906003)(2616005)(186003)(70586007)(6486002)(6512007)(356005)(82310400003)(70206006)(36756003)(4326008)(33656002)(81166007)(36860700001)(47076005)(8676002)(6506007)(5660300002)(6862004)(336012)(53546011)(83380400001)(86362001)(316002)(508600001)(26005)(207903002)(219803003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 14:08:05.2203
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c7e4714-19d8-4243-0221-08d9a9d3acd2
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT060.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1907

SGkgUm9nZXIsDQoNCj4gT24gMTcgTm92IDIwMjEsIGF0IDA5OjUzLCBSb2dlciBQYXUgTW9ubmUg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IERvY3VtZW50IHNvbWUgb2YgdGhl
IHJlbGV2YW50IGNoYW5nZXMgZHVyaW5nIHRoZSA0LjE2IHJlbGVhc2UgY3ljbGUsDQo+IGxpa2Vs
eSBtb3JlIGVudHJpZXMgYXJlIG1pc3NpbmcuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBSb2dlciBQ
YXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4gLS0tDQo+IENIQU5HRUxPRy5tZCB8
IDExICsrKysrKysrKysrDQo+IDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspDQo+IA0K
PiBkaWZmIC0tZ2l0IGEvQ0hBTkdFTE9HLm1kIGIvQ0hBTkdFTE9HLm1kDQo+IGluZGV4IGFkMWE4
YzJiYzIuLjhiMGJkZDljZjAgMTAwNjQ0DQo+IC0tLSBhL0NIQU5HRUxPRy5tZA0KPiArKysgYi9D
SEFOR0VMT0cubWQNCj4gQEAgLTIxLDYgKzIxLDE3IEBAIFRoZSBmb3JtYXQgaXMgYmFzZWQgb24g
W0tlZXAgYSBDaGFuZ2Vsb2ddKGh0dHBzOi8va2VlcGFjaGFuZ2Vsb2cuY29tL2VuLzEuMC4wLykN
Cj4gIC0gcWVtdS10cmFkaXRpb25hbCBiYXNlZCBkZXZpY2UgbW9kZWxzIChib3RoLCBxZW11LXRy
YWRpdGlvbmFsIGFuZCBpb2VtdS1zdHViZG9tKSB3aWxsDQo+ICAgIG5vIGxvbmdlciBiZSBidWls
dCBwZXIgZGVmYXVsdC4gSW4gb3JkZXIgdG8gYmUgYWJsZSB0byB1c2UgdGhvc2UsIGNvbmZpZ3Vy
ZSBuZWVkcyB0bw0KPiAgICBiZSBjYWxsZWQgd2l0aCAiLS1lbmFibGUtcWVtdS10cmFkaXRpb25h
bCIgYXMgcGFyYW1ldGVyLg0KPiArIC0gRml4ZXMgZm9yIGNyZWRpdDIgc2NoZWR1bGVyIHN0YWJp
bGl0eSBpbiBjb3JuZXIgY2FzZSBjb25kaXRpb25zLg0KPiArIC0gT25nb2luZyBpbXByb3ZlbWVu
dHMgaW4gdGhlIGh5cGVydmlzb3IgYnVpbGQgc3lzdGVtLg0KPiArIC0gdnRwbW1nciBtaXNjZWxs
YW5lb3VzIGZpeGVzIGluIHByZXBhcmF0aW9uIGZvciBUUE0gMi4wIHN1cHBvcnQuDQo+ICsgLSAz
MmJpdCBQViBndWVzdHMgb25seSBzdXBwb3J0ZWQgaW4gc2hpbSBtb2RlLg0KPiArIC0gSW1wcm92
ZWQgUFZIIGRvbTAgZGVidWcga2V5IGhhbmRsaW5nLg0KPiArIC0gRml4IGJvb3Rpbmcgb24gc29t
ZSBJbnRlbCBzeXN0ZW1zIHdpdGhvdXQgYSBQSVQgKGk4MjU0KS4NCg0KTWlzc2luZzoNCi0gY3B1
IElEIHNhbml0aXphdGlvbiBvbiBhcm02NA0KLSBmaXggMzIvNjRiaXQgdnJlZyBlbXVsYXRpb24g
b24gYXJtNjQNCg0KPiArDQo+ICsjIyMgQWRkZWQNCj4gKyAtIDMyYml0IEFybSBidWlsZHMgdG8g
dGhlIGF1dG9tYXRlZCB0ZXN0cy4NCj4gKyAtIE5ldyB4ODYgcGFnZXRhYmxlIEFQSXMuDQo+ICsg
LSBBcm0gdlBNVSBzdXBwb3J0Lg0KDQpNaXNzaW5nOg0KLSBzdGF0aWMgYWxsb2NhdGlvbiBmb3Ig
ZG9tMGxlc3Mgb24gYXJtNjQNCi0gZG9tMGxlc3MgRUZJIHN1cHBvcnQgb24gYXJtNjQNCg0KQ2hl
ZXJzDQpCZXJ0cmFuZA0KDQo+IA0KPiAjIyBbNC4xNS4wXShodHRwczovL3hlbmJpdHMueGVuLm9y
Zy9naXR3ZWIvP3A9eGVuLmdpdDthPXNob3J0bG9nO2g9UkVMRUFTRS00LjE1LjApIC0gMjAyMS0w
NC0wOA0KPiANCj4gLS0gDQo+IDIuMzMuMA0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 15:34:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 15:34:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226890.392232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnMws-0005Rx-3K; Wed, 17 Nov 2021 15:34:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226890.392232; Wed, 17 Nov 2021 15:34:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnMwr-0005Rq-Uy; Wed, 17 Nov 2021 15:34:09 +0000
Received: by outflank-mailman (input) for mailman id 226890;
 Wed, 17 Nov 2021 15:34:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=74+5=QE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnMwq-0005Rk-4C
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 15:34:08 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb4a828f-47bb-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 16:34:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb4a828f-47bb-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637163245;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=Pj3ME5dQfFCEUCP9uNcK+m9EBdPrXETkCRvMIc/CChQ=;
  b=gFNaTmGEQZ3ijMwkTyAsQ9aTh7GAoFAUkr6w7HKJwqAG7Z6WlbqYb4qx
   KQZmQN0rvEI9mMItK8JcVqWItkquvYZjFz4Kt8u1XwqKOQF1rUUmyXMrI
   sraZdZdfLTc/KlWLam4rIK9gPOlJC4Nl6rz4iJEqKOTppx58oChK8j7od
   U=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 4JKZ5GC3ea4Rvfdd+9Wbt53YAzJne3nl7H9MoUFrhfFY48ZwHU7VJoQ7VeV8rQGPl+j8uyQ4O4
 0sPTlu0OIbEazg1oml6v87NSIUXcb6kJVQe34+5fdjlCSNUuA8Wgfds62oDnG97lSX/UDdkasc
 4PfU7Z70+jtkTtP/jCh0GUEge4OVsdT8abRw7EgB3Ij5OPD1EjL2rMXznq3ZQGBaUuMuQqPSa6
 4qqbHrgzceKYjldn1kEl8A1c9glPVgBWZwmC+FsD4I0ZoA9J5gDDoEfYcIrGrxlLN0vBqxHYBk
 CgJdGBzovTDwJRhf6jhKvDnu
X-SBRS: 5.1
X-MesageID: 58002625
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Qrh0uqK+DXg9bu/gFE+RNpIlxSXFcZb7ZxGr2PjKsXjdYENS1zEAy
 mtLXDiGP/+NMGr3f4xyOY238EtT7ZXRxoBgHVdlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6xLZi6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2nvc9e2
 MQT8qWhYkRxPPHLnu0sfD5XRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsF2gcsuNo/zNZ43sXB81zDJS/0hRPgvRo2XtYcAhmlq26iiG97eY
 sQIcWZWdyjKXCB1IUsRKpUn28aB0yyXnzpw9wvO+PtfD3Lo5A1u0pD9PdzNYNuISM5J2EGCq
 Qru/W70HxUbP9y30iee/zSngeqntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLpix
 1c8o3R06/JorQryE4e7D0bQTGO4UgA0dfhPPP0rtka024GXuwTFAW4NfxFmZ4lz3CMpfgAC2
 liMltLvIDVgtryJVH6QnoupQSOO1Ts9djFbO3JdJecRy5y6+dxo0EqTJjp2OPft1oWdJN3m/
 9ydQMHSbZ03hNVD6ai09Euvb9mE9smQFV5dCuk6swuYAuJFiGyNO9zABbvzt68owGOlor+p5
 iBsdy+2tr5mMH11vHbRKNjh5Znwjxp/DBXSgER0A74q/Cm39niocOh4uW8lex85bZpbJWW4P
 Sc/XD+9ArcJZxNGioctPeqM5zkCl/C8RbwJqNiKBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WiOHSKqtBKcghRRZX5bLivw/Fqmie4ClMOMEkqCuPLwKNnfIpgnq9PkfzP8
 G37UUhdoGcTT1WcQelTQnw8Or7pQ7hlqnc3YX4lMVqygiBxaoez9qYPMZAweOB/puBkyPd1S
 dgDetmBXasTGmiWpWxFYMmvtpFmeTSqmRmKY3ivbg8gcsMyXAfO4NLlIFfirXFcEiqtuMIii
 LS8zQeHE4EbTgFvAZ+OOvKixl+8p1YHn+d2UxeaK9VfYhy0ooNrNzbwnrk8JMRVcUfPwT6T1
 gC3BxYEpLaS/99poYeR3a3d9tWnCepzGEZeDlL317fuOHmI5HenzK9BTP2MIWLXWlTr9fjwf
 u5S1fz9bqEKxQ4Yr4pmHr935qsi/N+z9aRCxwFpEXiXPVSmDrRsfiuP0cVV7/Afw7ZYvU29W
 16V+8kcMrKMYZu3HFkULQsjT+KCyfBLxWWCsaVreB33tH1t4b6KcUROJB3d2iVSIYx8PJ4h3
 ep86tUd7Bayi0ZyP9uL5syOG79g8pDUv30bi6wn
IronPort-HdrOrdr: A9a23:m52WsKGDxNb9EqoApLqE7MeALOsnbusQ8zAXPidKOHtom62j5q
 STdZEgviMc5wx8ZJhNo7+90cq7IU80l6Qa3WB5B97LNmTbUQCTTb1K3M/PxCDhBj271sM179
 YET0GmMqySMbGtt7eZ3DWF
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="58002625"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lImEgYsx8mrSNqxVwXcDauW7mGp0yxrxSnodxUud1mzPfgtI056UYQv0n2VrEKnN+s/6g+sDuFGVBbgIWJfXYCS+0DE5sil1pt0ELknP6SFxgO81u5XDJ3f7fvnzTiMz+oSdirRd2G6vYzziPGCKnNL1MNh8uHHeiSHKvXV8lhu2gIHgdmkjz89lbFFwKjjmpADj93/YQ6kO2AuBnUInn+9JKhoFxvqHY+LjIVx/yutZIeeQoN1NvoQ891ADRzF4PReKqFqCuKZ55qVw5lq8nvYDDdMuUEp+99hvzLqXdDGEg41i4DoPQeP38JHokvyroBVPtUlh+KDOKANaDlCXBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Z7yVKsAWCWZHBToll3wYcVdUhfwMwV/kcO/6YqeI6j4=;
 b=ImngCNqYCptTAPdyCpwqeNMzcGmzWD+y1g4u1m1yK8DxY1hOhxz5z4QS1bNhPmfRg2uZyN0it4ZvYjueH03mdmxN7gTSXR+5X+1TUiG0zE26EvoPuHKGefbxBfT9yYsPWzQ0rqKqzrcHmnIA0Lje5v2Xf1Xw4ISm0ISkicytmIyfGa/pJWohLwfkFC8LAKLHqC8ruqV0L8MjbtDvMtACOni1wSDgnJg+5d8WBGcLjv73oLTaGPgSNdgSxDiiZp96I6jaUtwOc8X4SORs4tpQGs1dmB1brW2GhE5gZfo7NjQ3fErKuk8E/VRV5JrywcmFAvHjijrRNJOnL9EYBq4bFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Z7yVKsAWCWZHBToll3wYcVdUhfwMwV/kcO/6YqeI6j4=;
 b=mfq08LfzST3JkcQQtYTHCC0aIXj7gTSW2m4yvBpHEUuhlk5fXeI9otCqdPjPOIbAopxC9k/XY4GhHizobfYZ83Nv8+LcoM2YAd7ecx8w499S8yAxEphnQJCqhesLfslwZ/gF2yzNJlvBugoruFaEJGTLD6ZWoy37bblXTHrcUv0=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	Ian Jackson <iwj@xenproject.org>
Subject: [PATCH for-4.16] efi: fix alignment of function parameters in compat mode
Date: Wed, 17 Nov 2021 16:33:50 +0100
Message-ID: <20211117153350.19823-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR2PR09CA0002.eurprd09.prod.outlook.com
 (2603:10a6:101:16::14) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 100fa047-696a-452f-d182-08d9a9dfad1e
X-MS-TrafficTypeDiagnostic: DM4PR03MB6094:
X-Microsoft-Antispam-PRVS: <DM4PR03MB6094EEAF94D417DEC710AF038F9A9@DM4PR03MB6094.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: zzDpMEEZnKeFS5HoxR6ZGiXhcFnLgpY7sq01Nl41Yole+umUyIdiicmP90T1A+5OljFRXXttMFbT4TVg1UmI1RPxXjavy+jY2bBuyHxGxCR1ZQHBeTpmiUMlMn0PIamXbm6IeJhtxSHVZeYPcmxNUJWMSlRe4sUcusNV6CeUMm+L7jpu8XGJI9qMR30QiWhWQgIecLZu0A6HSh7cVnDeaK6zlKGs9GXqBKR1jvSQ99IwS7+qzYRul5smWHtC7S0X0OiOJEcfTcUezxRlKn5e8+GW600qam+/1CzcLHrWq6PHNbz9HScnOGRjOLazLMm4weFgHfLU+SqSDfu4o4NGc7NRysTWhXYanEQ6hGyWoddqdfY/ATYqWwFffi6hNlrrudEElCDq0q5ql1aiv+dV4dNp3EOaavF0iVdtIRkQP8bXrnskqy6/uTz1BqqVT+hhyEoBmnnixOdLeRc5rYl/SOb5Ks6ayMSKDQd1aKjApB1Wgbui86R31qD0f6M+v5eh6nD4MjUZdqHaj5ON7Z8WsImpMrwt3TLtQOQUiZWX2Qzw8qRKN5byus1hi3BoxWj+qjeXoQw8fyn+QpxgyUo6deWUyCnTHrjpOaAhtr1ULAJv/6yYvBa1/CIX3zSgGB4ya18G9yVtQz6C6w3lyq/4kg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(54906003)(86362001)(316002)(956004)(2906002)(36756003)(6486002)(508600001)(38100700002)(66946007)(66556008)(66476007)(4326008)(83380400001)(26005)(8676002)(6496006)(6916009)(8936002)(6666004)(82960400001)(1076003)(186003)(5660300002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NUVva3RKdVVaQzhpdFhtWXFxN0dERVN6VWc2ei90aEFOUUE3a1Z6RjJFMVRY?=
 =?utf-8?B?YmtoODZUR3FQbGtmbjl2ZTJvYVNzcUdMQWRUeWRUb3lmdVJrOGp2eTllRnZw?=
 =?utf-8?B?cVZiRmNmV3Y5VStVcGdnNUFiYmlRM21sQjFoUlpSZ1pqWEdHN3ZITEhuY3gr?=
 =?utf-8?B?M29CMkE0YVplRFhwblRFUGVDMFVvN2xOT21OR2RzUVdCcTFQYk1ha2F4VEho?=
 =?utf-8?B?SjZhYU16UUxQWjB5dEpCb3JDZ1lkdlRwYnhLTm01R1ZSR0x2eU1saWZWYUtz?=
 =?utf-8?B?QjZjeTRGZkllUEQ3M0lPMFNPdE1oNVpXMlpnTTQvTDVyWXhhWUFsbEZidFRY?=
 =?utf-8?B?a29lanR0NERLM012bFRLeXhhZDdrcERnazVOenZWTkRMZlBCRUJ4L2JXcy9m?=
 =?utf-8?B?RXpIeGxJZVNIYllwV2k4a09VazE2M2dacmFZRkVhb1JWb09ibmhYRE9EVEdz?=
 =?utf-8?B?clRMVExGVkZvOFQ0NEo2VDlWMTJmdlNabUR6SGYwenJFTGtuN3g1SGZNVDlv?=
 =?utf-8?B?TXM5Mis3b3JOTlE5WlBXakdIcTQ2T1RmRm1CeVdsODI4b3R3SDRsR0JXdXRT?=
 =?utf-8?B?NDZoVWhPZktMb3l5OWZTbjluMlZ4QXo2UHJXRFZJL3c3WjRUcjVFRkVGWWJu?=
 =?utf-8?B?Um0wdWpzb2V4RW5IR1I5b09oZmNBK01wRWp5U1RINVRZUFlUSjJwWThhYU5T?=
 =?utf-8?B?elFLaW1HQjI2MUpJeXZnOGYxV0ZLcndjdytoVS84N3pBQzdETkZHK01KNk05?=
 =?utf-8?B?OUF6MEkxR01ESHhvL1lra2lXQzNCWitpazdIOTArS0hGQlhnV2FyRmxpTFFK?=
 =?utf-8?B?aG01d3JQUUpxdlB6Rld0RkJlTy9NeVFGNUJPSUIzSUhZeFNxcGRlSU5xMEhJ?=
 =?utf-8?B?M1JwV3JSSU5HQjQ1Mzhib0hZRUExei9kYWdGdERYRk14d25DTm4xUGxQWjZX?=
 =?utf-8?B?cnh0SkpsS3ZSWmk3dUIrVUNQYVR6cDhmQTRVeGVxMHV0a2tVYVVDTU9Fc3VK?=
 =?utf-8?B?QU5EZElpZWpOVzBwU09EL1FBaHY5eEIyM040Yk0rL2g0aUdSbHVyS1N2YTNK?=
 =?utf-8?B?UkY5STRsOGVzRzJyRjE2Zms0NlU5VUFURjN1b1RvYUdLTVpLeitCbEhEVDFZ?=
 =?utf-8?B?UXB5aHRKVlEvdk9HNzBzbzdxWUpyYXY0RkJTZCtxVytZeXpVR3VicHk3TGh0?=
 =?utf-8?B?dTcyNmc5aENUeFMxLzMwejZMYjVRd21aS3FLc2tJYnNBUUxXR2pZV0RmMlhR?=
 =?utf-8?B?VXV0bGg1TldRQWpLTzNHWGZ4VjJIbGl2TU5JL0JMTTNydThVMXlPRU1BbFI3?=
 =?utf-8?B?aXpieXo3aUJOZHRiYnNLd3d0M2NRejdlSS9kV1ZNZkwwUmtJQ24vWFlkTkE5?=
 =?utf-8?B?NnBmQTZUTjA1WHBoNUV5QzhxcTQ3N0o4T1Izdlh1ZnlpT3NBV2tzV0RnVTFU?=
 =?utf-8?B?UlZWUlNlS3d6QTdrd0NnSGwwS3ZpNjFKVFJqSFcramY4YWtrb0RFZFZRQ09C?=
 =?utf-8?B?YzhJNnU3UkE2cFZDSDR5NGJyVGRJcFk4Ujk2YXh0cHVLVlZtS0t3MHd4eXM3?=
 =?utf-8?B?NkRsMEJKa1hRTXRLd1ZOelBzc0hyMjdHUlcyeG9Kd09JOVFNemZDbGNKdW9p?=
 =?utf-8?B?T1lmMUU3QUJNMDJQRmFENXU4S292SUdiQ29EUVB1N09Ibm1yUDNjNlpYNDV3?=
 =?utf-8?B?L1crSjNXYk00ZEpWV3NIT1RFM20rbDVBeEFld01FbGtEeDJVV0xBVDlWS3d1?=
 =?utf-8?B?TlBBcS9xRGd4V3QvY3E2VFd2WVVwVWIrM2x3NU1DYzErZDFrekdPRUlpb0E0?=
 =?utf-8?B?VGl2aDhKQXFtK0lhZ1VkdVlrRHlWMnVoQS9jQm56VUhuNVJWcHJrbW1IbUJx?=
 =?utf-8?B?c1ZIWlYrVnhJNmRJV0xRTkVOdklPKzduazhlWDdSb1NITU13YkxZVUlwYUJt?=
 =?utf-8?B?bzJOeGNzSDdrRkg3SzIxSHVqTU96dmtXdndtdXgrYzdsT0d0UFhFajZqdFMy?=
 =?utf-8?B?N1U3K1QycE5jSHA4NGp4b1pHUVczcDM4MTljdVRVUWs3b0NZNVVtTkxjYUFU?=
 =?utf-8?B?Uys1T1lTczVlUE05ZUxmNXg1TTZyMkZXUUgwZGE2Wm5ua1kxYlZDczE0SlY1?=
 =?utf-8?B?ZUVlMWhPUmV1QStwa0kxbjhyelRpaGdDUjVORzFkaDlvREZGTmJQajVkREor?=
 =?utf-8?Q?5Tn5g9jcUkSgecTWkjii+8g=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 100fa047-696a-452f-d182-08d9a9dfad1e
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 15:33:59.8368
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4YPSsTZl3GmjjwQqvpxlLPqZEQ+LyAz2Z38R7jlMlIFvuvXC1wtudd6pvoj1mvcMIhdAt+khvWJc4SV+ZfKsOg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6094
X-OriginatorOrg: citrix.com

Currently the max_store_size, remain_store_size and max_size in
compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
complain with:

In file included from compat.c:30:
./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.max_store_size,
            ^
./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.remain_store_size,
            ^
./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.max_size);
            ^
Fix this by bouncing the variables on the stack in order for them to
be 8 byte aligned.

Note this could be done in a more selective manner to only apply to
compat code calls, but given the overhead of making an EFI call doing
an extra copy of 3 variables doesn't seem to warrant the special
casing.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

Tagged for possible inclusion into the release, as it's a likely
candidate for backport. It shouldn't introduce any functional change
from a caller PoV. I think the risk is getting the patch wrong and not
passing the right parameters, or broken EFI implementations corrupting
data on our stack instead of doing it in xenpf_efi_runtime_call.
---
 xen/common/efi/runtime.c | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index 375b94229e..4462233798 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
     break;
 
     case XEN_EFI_query_variable_info:
+    {
+        uint64_t max_store_size, remain_store_size, max_size;
+
         if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
             return -EINVAL;
 
@@ -638,16 +641,29 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
 
         if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
             return -EOPNOTSUPP;
+
+        /*
+         * Bounce the variables onto the stack to make them 8 byte aligned when
+         * called from the compat handler, as their placement in
+         * compat_pf_efi_runtime_call will make them 4 byte aligned instead and
+         * clang will complain.
+         *
+         * Note we do this regardless of whether called from the compat handler
+         * or not, as it's not worth the extra logic to differentiate.
+         */
+        max_store_size = op->u.query_variable_info.max_store_size;
+        remain_store_size = op->u.query_variable_info.remain_store_size;
+        max_size = op->u.query_variable_info.max_size;
+
         state = efi_rs_enter();
         if ( !state.cr3 )
             return -EOPNOTSUPP;
         status = efi_rs->QueryVariableInfo(
-            op->u.query_variable_info.attr,
-            &op->u.query_variable_info.max_store_size,
-            &op->u.query_variable_info.remain_store_size,
-            &op->u.query_variable_info.max_size);
+            op->u.query_variable_info.attr, &max_store_size, &remain_store_size,
+            &max_size);
         efi_rs_leave(&state);
         break;
+    }
 
     case XEN_EFI_query_capsule_capabilities:
     case XEN_EFI_update_capsule:
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 15:43:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 15:43:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226896.392243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnN5k-0006xU-2i; Wed, 17 Nov 2021 15:43:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226896.392243; Wed, 17 Nov 2021 15:43:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnN5j-0006xN-Vv; Wed, 17 Nov 2021 15:43:19 +0000
Received: by outflank-mailman (input) for mailman id 226896;
 Wed, 17 Nov 2021 15:43:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tBek=QE=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnN5j-0006xG-49
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 15:43:19 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 152972e8-47bd-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 16:43:17 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:59810)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnN5g-0007tz-9I (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 17 Nov 2021 15:43:16 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id B67251FC53;
 Wed, 17 Nov 2021 15:43:16 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 152972e8-47bd-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <1927a35e-9902-bee8-f7f2-ab8463043d8e@srcf.net>
Date: Wed, 17 Nov 2021 15:43:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] efi: fix alignment of function parameters in
 compat mode
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Ian Jackson <iwj@xenproject.org>
References: <20211117153350.19823-1-roger.pau@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <20211117153350.19823-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 17/11/2021 15:33, Roger Pau Monne wrote:
> Currently the max_store_size, remain_store_size and max_size in
> compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
> complain with:
>
> In file included from compat.c:30:
> ./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>              &op->u.query_variable_info.max_store_size,
>              ^
> ./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>              &op->u.query_variable_info.remain_store_size,
>              ^
> ./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>              &op->u.query_variable_info.max_size);
>              ^
> Fix this by bouncing the variables on the stack in order for them to
> be 8 byte aligned.
>
> Note this could be done in a more selective manner to only apply to
> compat code calls, but given the overhead of making an EFI call doing
> an extra copy of 3 variables doesn't seem to warrant the special
> casing.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Cc: Ian Jackson <iwj@xenproject.org>
>
> Tagged for possible inclusion into the release, as it's a likely
> candidate for backport. It shouldn't introduce any functional change
> from a caller PoV. I think the risk is getting the patch wrong and not
> passing the right parameters, or broken EFI implementations corrupting
> data on our stack instead of doing it in xenpf_efi_runtime_call.
> ---
>   xen/common/efi/runtime.c | 24 ++++++++++++++++++++----
>   1 file changed, 20 insertions(+), 4 deletions(-)
>
> diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
> index 375b94229e..4462233798 100644
> --- a/xen/common/efi/runtime.c
> +++ b/xen/common/efi/runtime.c
> @@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
>       break;
>   
>       case XEN_EFI_query_variable_info:
> +    {
> +        uint64_t max_store_size, remain_store_size, max_size;
> +
>           if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
>               return -EINVAL;
>   
> @@ -638,16 +641,29 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
>   
>           if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
>               return -EOPNOTSUPP;
> +
> +        /*
> +         * Bounce the variables onto the stack to make them 8 byte aligned when
> +         * called from the compat handler, as their placement in
> +         * compat_pf_efi_runtime_call will make them 4 byte aligned instead and
> +         * clang will complain.
> +         *
> +         * Note we do this regardless of whether called from the compat handler
> +         * or not, as it's not worth the extra logic to differentiate.
> +         */
> +        max_store_size = op->u.query_variable_info.max_store_size;
> +        remain_store_size = op->u.query_variable_info.remain_store_size;
> +        max_size = op->u.query_variable_info.max_size;
> +
>           state = efi_rs_enter();
>           if ( !state.cr3 )
>               return -EOPNOTSUPP;
>           status = efi_rs->QueryVariableInfo(
> -            op->u.query_variable_info.attr,
> -            &op->u.query_variable_info.max_store_size,
> -            &op->u.query_variable_info.remain_store_size,
> -            &op->u.query_variable_info.max_size);
> +            op->u.query_variable_info.attr, &max_store_size, &remain_store_size,
> +            &max_size);
>           efi_rs_leave(&state);

This will compile, but the caller won't get any data back unless you 
copy the opposite way here...

~Andrew

>           break;
> +    }
>   
>       case XEN_EFI_query_capsule_capabilities:
>       case XEN_EFI_update_capsule:



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 15:50:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 15:50:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226901.392254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNCB-0007cI-R2; Wed, 17 Nov 2021 15:49:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226901.392254; Wed, 17 Nov 2021 15:49:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNCB-0007cB-ND; Wed, 17 Nov 2021 15:49:59 +0000
Received: by outflank-mailman (input) for mailman id 226901;
 Wed, 17 Nov 2021 15:49:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5X4Q=QE=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mnNCA-0007c5-2a
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 15:49:58 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20604.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02f3a780-47be-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 16:49:56 +0100 (CET)
Received: from DB6PR0202CA0036.eurprd02.prod.outlook.com (2603:10a6:4:a5::22)
 by PR3PR08MB5868.eurprd08.prod.outlook.com (2603:10a6:102:81::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Wed, 17 Nov
 2021 15:49:50 +0000
Received: from DB5EUR03FT064.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:4:a5:cafe::49) by DB6PR0202CA0036.outlook.office365.com
 (2603:10a6:4:a5::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend
 Transport; Wed, 17 Nov 2021 15:49:50 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT064.mail.protection.outlook.com (10.152.21.199) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.19 via Frontend Transport; Wed, 17 Nov 2021 15:49:49 +0000
Received: ("Tessian outbound 1cd1a01725a6:v110");
 Wed, 17 Nov 2021 15:49:49 +0000
Received: from 4ef8ac4021c4.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 BC406BEC-895F-4369-91BF-F06FEE7AB627.1; 
 Wed, 17 Nov 2021 15:48:47 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4ef8ac4021c4.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 17 Nov 2021 15:48:47 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB7028.eurprd08.prod.outlook.com (2603:10a6:20b:34f::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Wed, 17 Nov
 2021 15:48:45 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Wed, 17 Nov 2021
 15:48:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 02f3a780-47be-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uqNeQg0bMhGZ+WBUbxRjqfnIBylKjZKx5WHeToWR4l0=;
 b=AkPsxFMbiSBOyWZaqBssNPyjd9M5xRbk3N+vkDy2S+n21FSKnMJdkaozrRevQegtJg3esqD2ufwD98uKJFTqLyfJGci2JkhhQvOlMB83HETeu4hx+tUTfgdFUAh2Gr4Iawt905bkPYBZD8O9bFOmfqCJwUm1QdOl0pWSnsme2hw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: f645883b1e3f8676
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RrY7g+m8vqJ2K3Mg5zh6KNXURfsf8HzU4FpZifRvsaTVRba/lT/ACCG/tJx+8lisdFkwct36x9S9yUyn39CEUbRqel0F+PI5PfOG4VIVdu6BjW+H2YOSkmxx8SYZnThMdUSNiCbDZF3N++oSj+vY1VjIXtIvTDJzZjVF3dOzjuTS4CJPN6WZ8euz8Ujm5p7E3TIoFbXpoYF4KEjv6c7lI49KkQIe6mz1/qKUbWlOn75sZrhe5l700rbaWBKuJRYJsUozJ5ldDzEMsmN9I24P5lZ9K8t9Y/nfZRumeVGl3XlQwIDy4g+mE3Tpxjga/qdHc/crx2QxQqfnOBAwAoQUnw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uqNeQg0bMhGZ+WBUbxRjqfnIBylKjZKx5WHeToWR4l0=;
 b=ZtSwxkPlW9PycMyBoSRAkqBOcUNRoQNSS10L7Cb8olxC01WvZKD/vOwvqa3tF7b8u9qntu6N7Hr4p8LCF8kIbJEk2XgUKF9jw1AkQUeVAvoguYKO6+FV3bNNPQdZSop2NnQ1+xnB6hQJUuwnKKZ1pYUsNa2HAp9iQ5ToBpPwJXAhC/0rqkw94oyUjI+pgUfEmi9QTmdaX1+1lcKZF/eii8b3avqcmPQypFUm/0NfuEUF/tGmjvTOJZulrOSwRgVbrkEtUHmAsBpJ/xHGCkwaZX0W2A/OQ7VHKOCN0MgFwLkfbNHP6nEg1NdrOiltqCj+UGR7Yr3hCgQVNOxkNxvSMQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uqNeQg0bMhGZ+WBUbxRjqfnIBylKjZKx5WHeToWR4l0=;
 b=AkPsxFMbiSBOyWZaqBssNPyjd9M5xRbk3N+vkDy2S+n21FSKnMJdkaozrRevQegtJg3esqD2ufwD98uKJFTqLyfJGci2JkhhQvOlMB83HETeu4hx+tUTfgdFUAh2Gr4Iawt905bkPYBZD8O9bFOmfqCJwUm1QdOl0pWSnsme2hw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: Xen/ARM - Query about a data abort seen while reading GICD
 registers
Thread-Topic: Xen/ARM - Query about a data abort seen while reading GICD
 registers
Thread-Index: AQHX2v69rH0Wb2BjYUqXheWDWZOLqqwGSWAAgAANoACAAYg3gA==
Date: Wed, 17 Nov 2021 15:48:45 +0000
Message-ID: <0ACF6308-EDB0-4B98-A029-1C7B23820198@arm.com>
References: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com>
 <CED537AF-44AA-41B8-9458-17A5C43FBECC@arm.com>
 <f91fd718-040e-88a3-ca96-30d1efe9a689@xilinx.com>
In-Reply-To: <f91fd718-040e-88a3-ca96-30d1efe9a689@xilinx.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 38780fb6-75d8-4714-282c-08d9a9e1e378
x-ms-traffictypediagnostic: AS8PR08MB7028:|PR3PR08MB5868:
X-Microsoft-Antispam-PRVS:
	<PR3PR08MB5868DD2A76736FFB49DAF4459D9A9@PR3PR08MB5868.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 CqREF7sjpQWpPWiUBaJwShXM8Lnscgi/qzgJPQXLICIFLuEAPomVDErY5q03r3HHD5hUPTEKpMkPqt4/hJGh16sasVUfa7uNQEXJy+4r+mw5onv045YzH8NsIu4xGGtAlkwpfRBR3nngha34d9Ruq1Jp3llcSJt1qhtYSQIGTiKfzjfkP+KDA/l0jZ5M/qNIaiJLJqz4/fxwSHNkG+xiX1ROesKY9sznvuJAz/fjAIROmZDNDhRg8z7c95fL+AIQPvm7YkgveSZmY6Iffa9MxOHJCUBPFa6fBToue62ONHZwU9ir+RDsdgaVBuM3hx2KaWU8EIvalQ9mhzejkwdaaK2Kp3xx174yoIiMRYmchEc3dKWuZc76zuiA490ZGuT0QiP6laaeD5rhJOpqEXcKov9CO8JqQLet5I+YyT4SWrZ4eD0u+kCh+8S4eez+dL+pnDynwRuj1qe/nqyutqml5fh5yPQiwfTVqSKFpcZ/tD5zczD9KFtWvQAicAhdU30B0DpE8zt8X5fEKklELl0hQcgFsUmFwzUAFlnLAEBYLxJUqhUMVP0eWPjx6a7XTJmrX826qg6QGSaKHVeJBx28/FmihWufbinXBjWeZQzJoE/XknO/FSwl03EVQVbIquV+2svMA2NadtG/wv+gWcAepiwMEkvCbhPEEh957itkoDN6VriOGiJjOctg0dhi0M+jVHmVdCQ9nGBJiusbrvoXZhMJUBBMDZ92oMRu/eIYglmlUABb/IvihXTwl7NZGRGh
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(2616005)(38100700002)(5660300002)(316002)(186003)(8676002)(53546011)(6506007)(66556008)(26005)(71200400001)(66446008)(83380400001)(76116006)(4326008)(66946007)(66476007)(6486002)(64756008)(91956017)(38070700005)(6512007)(2906002)(122000001)(36756003)(86362001)(33656002)(54906003)(6916009)(8936002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <5161781E93623440B586A213CB7039A2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7028
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT064.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	13f0840f-d974-4567-9ccd-08d9a9e1bd32
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	py0O5G8Lmyer9KN2LVlgX+Eg8I9wBAQqNp3/+zx3e3Czsz0yJ76umdRCKzq0mctBqlF+F7MqrSgV/JY4fLyjHy+yveyrirKqyFOTilJWgmO794ss4oJSComI0T0Ge12DpZSPfau8usk0HA6904CcNgm7NS0ZozDYW3JwT6f2uVCE+l60V1Z2sHoC0ufaUhPWDbBfWgvMRveWOsMFfGLRofpb1mJidG3hA+QT43XHSoEfTl0KQCA+Hnlj3eiY952DTEnrXMD0cT8mYY9T0GMxAULX0Zxvv7QFYTblHqqFjTUB4Fvi6pTNo7sth3n0KA+ewfaMsykS/Zekfc2p5tVa+Qmc7es/CaeVEXhFp8XwHp+AELu9IRuOYFamPdvbhgqExcGwrOV3ydKEcJJY0CeaWeMJvy/PLijf2HpCn+/NpSkQ5KLO9zq1lakLHM3GI5UBysTZRXAGpnNC7QBAiT9pIh0E4fFYorueE6qXUyxbo0trbI9yc1ju+4tp//GFW+RH2Wd8ElMEw1QMxmZu2QalYgAZjEYRfa8fE1XE/3J1JXp0teKxHU78vgi7viFMBXN5lY/dcTMM8ZtyjegIVpb6/9M19r58Kk+cL1TsytLNmpIkqH2n2QavhAjBFKZ1DG4SUlWEVa8jnQasXNCF4coTsnOBtd1Ma1yFRQoCsLYjGSQfsyYzHvlt3T7wqY+5o/oJLD/bCPQZXy1ZYBC97NWlqQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(5660300002)(8936002)(82310400003)(508600001)(107886003)(54906003)(8676002)(81166007)(26005)(36860700001)(4326008)(83380400001)(36756003)(70206006)(86362001)(70586007)(356005)(2906002)(6862004)(186003)(316002)(336012)(47076005)(33656002)(6506007)(6486002)(2616005)(6512007)(53546011);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 15:49:49.8594
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 38780fb6-75d8-4714-282c-08d9a9e1e378
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT064.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5868

SGkgQXlhbiwNCg0KPiBPbiAxNiBOb3YgMjAyMSwgYXQgMTY6MjQsIEF5YW4gS3VtYXIgSGFsZGVy
IDxheWFuLmt1bWFyLmhhbGRlckB4aWxpbnguY29tPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5k
LA0KPiANCj4gVGhhbmtzIGZvciBsb29raW5nIGludG8gaXQuDQo+IA0KPiBPbiAxNi8xMS8yMDIx
IDE1OjM2LCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4gSGkgQXlhbiwNCj4+PiBPbiAxNiBO
b3YgMjAyMSwgYXQgMTU6MjcsIEF5YW4gS3VtYXIgSGFsZGVyIDxheWFuLmt1bWFyLmhhbGRlckB4
aWxpbnguY29tPiB3cm90ZToNCj4+PiANCj4+PiBIaSBYZW4vQXJtIGV4cGVydHMsDQo+Pj4gDQo+
Pj4gSSBhbSBmYWNpbmcgYSB2ZXJ5IHN0cmFuZ2UgaXNzdWUgd2hpbGUgcnVubmluZyBhIGJhcmVt
ZXRhbCBhcHBsaWNhdGlvbiBhcyBhIERvbVUgZ3Vlc3Qgb24gYXJtNjQgcGxhdGZvcm0uDQo+Pj4g
DQo+Pj4gVGhlIGJhcmVtZXRhbCBhcHAgdHJpZXMgdG8gcmVhZCB0aGUgR0lDRCByZWdpc3RlciB3
aXRoIHBvc3QgaW5kZXhpbmcgYXMgZm9sbG93cyA6LQ0KPj4+IGxkciB4MSwgPTB4MzAwMTAwMA0K
Pj4+IGxkciB3MiwgW3gxXSwgIzQgPDw8LS0tLS0tIFBDID0gMHg0MDAwMGNhOA0KPj4gSW5jcmVt
ZW50IG9uIG9uIGxvYWQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW11bGF0aW9uIGxheWVyLg0K
PiANCj4gVGhhdCBpcyBzdXJwcmlzaW5nLiBUaGUgcmVhc29uIGJlaW5nIGlmIEkgdHJ5IHRvIHJl
YWQgdGhlIEdJQ0MgcmVnaXN0ZXIgKDB4MzAwMjAwMCkgd2l0aCBwb3N0IGluZGV4aW5nIHRoZW4g
aXQgd29ya3MgZmluZS4NCg0KV2hlbiB0aGUgSVNWIGJpdCBpcyBub3Qgc2V0LCBYZW4gd291bGQg
aGF2ZSB0byBkZWNvZGUgdGhlIGluc3RydWN0aW9uIHRvIGFjdHVhbGx5IGVtdWxhdGUgdGhlIGFj
Y2VzcyBhbmQgcHJvcGVybHkgbW9kaWZ5IHRoZSByZWdpc3RlcnMgdmFsdWVzIGFzIGxvbmcgYXMg
cHJvdmlkaW5nIHRoZSDigJxlbXVsYXRlZOKAnSBhY2Nlc3MgdmFsdWUuDQpUaGVyZSBpcyBub3Qg
c3VjaCBhIGRlY29kZXIgaW4gWGVuIHJpZ2h0IG5vdyB3aGljaCBtZWFucyB0aG9zZSBraW5kIG9m
IGFjY2Vzc2VzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciBlbXVsYXRlZCBtbWlvIGFjY2Vzc2VzLg0K
DQo+IA0KPiBDYW4geW91IHBvaW50IG1lIGluIHNvdXJjZSB3aGVyZSB0aGlzIGxpbWl0YXRpb24g
aXMgc2V0ID8NCg0KSW4gdGhpcyBjYXNlIHRoZSBpc3YgZmllbGQgaXMgc2V0IHRvIDAgd2hlbiB0
aGUgZXhjZXB0aW9uIGlzIHJlY2VpdmVkIGJ5IFhlbiB3aGljaCBtZWFucyB0aGUgZGVjb2Rpbmcg
cGFydCBvZiBIU1IgaXMgaW52YWxpZCBzbyBYZW4gaXMgbm90IGhhbmRsaW5nIHRoZSBlbXVsYXRp
b24gb2YgdGhlIGFjY2Vzcy4NCg0KQGp1bGllbiBhbmQgU3RlZmFubzogSSBoYXZlIGJlZW4gZ29p
bmcgYXJvdW5kIGFuZCBhcm91bmQgdGhlIGNvZGUgYnV0IEkgY2Fubm90IGZpbmQgd2hlcmUgdGhl
IHZhbGlkIGJpdCBvZiBoc3JfZGFidCBpcyBjaGVja2VkLCBjb3VsZCB5b3UgaGVscCBtZSBoZXJl
ID8NCg0KPj4gQ291bGQgeW91IHRyeSB3aXRoOg0KPj4gYWRkIHgxLCB4MSwgIzQNCj4+IGxkciB3
MiwgW3gxXQ0KPiANCj4gVGhpcyB3b3JrZWQgZmluZS4NCg0KR29vZCA6LSkNCg0KQmVydHJhbmQN
Cg0KPiANCj4gLUF5YW4NCj4+IFJlZ2FyZHMNCj4+IEJlcnRyYW5kDQo+Pj4gDQo+Pj4gQW5kIHRo
ZW4gSSBnZXQgOi0NCj4+PiBIU1I9MHg5MjAwMDAwNSBwYz0weDAwMDAwMDQwMDAwY2E4IGd2YT0w
eDMwMDEwMDAgZ3BhPTB4MDAwMDAwMDMwMDEwMDANCj4+PiANCj4+PiBUaGlzIHByb2JsZW0gb2Nj
dXJzIG9ubHkgd2hpbGUgcmVhZGluZyB0aGUgR0lDRCByZWdpc3RlcnMgd2l0aCBwb3N0IGluZGV4
aW5nLiBJZiBJIHJlYWQgdGhlIHJlZ2lzdGVyIHdpdGggcHJlLWluZGV4aW5nLCB0aGVuIEkgZG8g
bm90IHNlZSBhbnkgYWJvcnQuIEFsdGVybmF0aXZlbHksIGlmIEkgcmVhZCBHSUNDIHJlZ2lzdGVy
IHdpdGggcG9zdCBpbmRleGluZywgSSBkb24ndCBzZWUgdGhlIGFib3J0IGVpdGhlci4NCj4+PiAN
Cj4+PiBGcm9tIHRoZSBIU1IgdmFsdWUsIEkgaW50ZXJwcmV0IGl0IGFzDQo+Pj4gRUMgPSAxMDAx
MDBiICMgRGF0YSBhYm9ydCBmcm9tIGxvd2VyIGV4Y2VwdGlvbg0KPj4+IElMID0gMWIgIyAzMiBi
aXQgaW5zdHJ1Y3Rpb24gdHJhcHBlZA0KPj4+IERGU0MgPSAxMDEgIyBUcmFuc2xhdGlvbiBmYXVs
dCBsZXZlbCAxDQo+Pj4gDQo+Pj4gT24gZGVidWdnaW5nLCBJIGZvdW5kIHRoYXQgdGhlIGFib3J0
IGlzIHRyaWdnZXJlZCBmcm9tDQo+Pj4gDQo+Pj4gdHJ5X2hhbmRsZV9tbWlvKCkNCj4+PiB7IC4u
Lg0KPj4+ICAgIC8qIEFsbCB0aGUgaW5zdHJ1Y3Rpb25zIHVzZWQgb24gZW11bGF0ZWQgTU1JTyBy
ZWdpb24gc2hvdWxkIGJlIHZhbGlkICovDQo+Pj4gICAgaWYgKCAhZGFidC52YWxpZCApIHsNCj4+
PiANCj4+PiAgICAgICAgcmV0dXJuIElPX0FCT1JUOw0KPj4+ICAgIH0NCj4+PiAuLi4NCj4+PiB9
DQo+Pj4gDQo+Pj4gRnJvbSB0aGUgQXJtIFY4IEFybSBzcGVjcywgSSB1bmRlcnN0YW5kIHRoYXQg
ZGFidC52YWxpZCBpcyBJU1YsIGJpdFsyNF0gaW4gIklTUyBlbmNvZGluZyBmb3IgYW4gZXhjZXB0
aW9uIGZyb20gYSBEYXRhIEFib3J0Ii4NCj4+PiANCj4+PiANCj4+PiBJIHNhdyB0aGF0IHRoZSBj
YWxsZXIgaXMNCj4+PiANCj4+PiBkb190cmFwX2d1ZXN0X3N5bmMoKSAiY2FzZSBIU1JfRUNfREFU
QV9BQk9SVF9MT1dFUl9FTCINCj4+PiB3aGVyZSBkYWJ0LnZhbGlkIGlzIGZhbHNlLg0KPj4+IElu
IHRoZSBzdWNjZXNzIHNjZW5hcmlvLCBkYWJ0LnZhbGlkIGlzIHRydWUuDQo+Pj4gDQo+Pj4gSSBj
b3VsZCBub3QgZmluZCB0aGUgY2FsbGVyIGZvciBkb190cmFwX2d1ZXN0X3N5bmMoKQ0KPj4+IA0K
Pj4+IFNvLCBjYW4gYW55b25lIGhlbHAgbWUgaGVyZQ0KPj4+IDEuIFdobyBpcyB0aGUgY2FsbGVy
IGZvciBkb190cmFwX2d1ZXN0X3N5bmMoKSA/DQo+Pj4gMi4gQW55IGlkZWEgb24gd2hhdCB0aGUg
aXNzdWUgaXMgYW5kIGhvdyBJIGNhbiBkZWJ1ZyBpdCBmdXJ0aGVyID8NCj4+PiANCj4+PiBLaW5k
IHJlZ2FyZHMsDQo+Pj4gQXlhbg0KPj4+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:05:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:05:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226905.392264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNQj-0001xs-4h; Wed, 17 Nov 2021 16:05:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226905.392264; Wed, 17 Nov 2021 16:05:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNQj-0001xl-1i; Wed, 17 Nov 2021 16:05:01 +0000
Received: by outflank-mailman (input) for mailman id 226905;
 Wed, 17 Nov 2021 16:04:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnNQh-0001xf-Ob
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:04:59 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnNQh-000435-M3
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:04:59 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnNQh-0005w6-L9
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:04:59 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mnNQe-000689-4Y; Wed, 17 Nov 2021 16:04:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=wRglQJ4LGW0ZqcMtkvZ8+2/Re+KNGqdfDHpO4Ljb1DY=; b=juVqIaiut9QPbd2ePZVZpMnt/g
	006GGD90FmYbeMKKL9G5va4Ez6poMXOyMGVTj8x5n9gvNEyoS6gEADnZhh5qRIgHkU71k7ZHtj5pD
	R+Wjr0rRZYy61JkdVeVRpfKuca5kfMCih6q4jIwmBvSHx1q6YbSUctN4j3VwlghbAfag=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24981.10279.714058.771543@mariner.uk.xensource.com>
Date: Wed, 17 Nov 2021 16:04:55 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH for-4.16] efi: fix alignment of function parameters in compat mode
In-Reply-To: <20211117153350.19823-1-roger.pau@citrix.com>
References: <20211117153350.19823-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16] efi: fix alignment of function parameters in compat mode"):
> Currently the max_store_size, remain_store_size and max_size in
> compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
> complain with:
> 
> In file included from compat.c:30:
> ./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>             &op->u.query_variable_info.max_store_size,
>             ^
> ./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>             &op->u.query_variable_info.remain_store_size,
>             ^
> ./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>             &op->u.query_variable_info.max_size);
>             ^
> Fix this by bouncing the variables on the stack in order for them to
> be 8 byte aligned.
> 
> Note this could be done in a more selective manner to only apply to
> compat code calls, but given the overhead of making an EFI call doing
> an extra copy of 3 variables doesn't seem to warrant the special
> casing.
...
> Tagged for possible inclusion into the release, as it's a likely
> candidate for backport. It shouldn't introduce any functional change
> from a caller PoV. I think the risk is getting the patch wrong and not
> passing the right parameters, or broken EFI implementations corrupting
> data on our stack instead of doing it in xenpf_efi_runtime_call.

Thanks.  I have double-checked the variable names etc.

Reviewed-by: Ian Jackson <iwj@xenproject.org>

I agree with your analysis vis-a-vis 4.16.  The current code is
technically UB[1] and it seems possible that it might trigger bugs in
firmware.

I would like a third opinion (even though technically my review might
be enough).  So, subject to a review from a hypervisor maintainer:

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

Thanks,
Ian.

[1] Well, as far as I can tell.  My copy of C99+TC1+TC2 is hopelessly
unclear about unaligned pointers, and here of course we have a
compiler extension too.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:05:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:05:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226907.392276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNRA-0002Nd-DI; Wed, 17 Nov 2021 16:05:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226907.392276; Wed, 17 Nov 2021 16:05:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNRA-0002NW-A1; Wed, 17 Nov 2021 16:05:28 +0000
Received: by outflank-mailman (input) for mailman id 226907;
 Wed, 17 Nov 2021 16:05:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qgGu=QE=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mnNR8-0002Gi-9V
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:05:26 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b6fff35-47c0-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 17:05:24 +0100 (CET)
Received: from pps.filterd (m0246629.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AHFL8GZ009089; 
 Wed, 17 Nov 2021 16:05:22 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cd2ajhany-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 17 Nov 2021 16:05:20 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AHFxE9F023879;
 Wed, 17 Nov 2021 16:05:17 GMT
Received: from nam02-sn1-obe.outbound.protection.outlook.com
 (mail-sn1anam02lp2048.outbound.protection.outlook.com [104.47.57.48])
 by userp3020.oracle.com with ESMTP id 3caq4uexup-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 17 Nov 2021 16:05:17 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB4381.namprd10.prod.outlook.com (2603:10b6:208:1d3::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov
 2021 16:05:16 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.020; Wed, 17 Nov 2021
 16:05:16 +0000
Received: from [10.74.104.192] (138.3.200.0) by
 BYAPR11CA0104.namprd11.prod.outlook.com (2603:10b6:a03:f4::45) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.26 via Frontend Transport; Wed, 17 Nov 2021 16:05:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b6fff35-47c0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : from : to : cc : references : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=XgiTadkq76ZVDpjxNeUJMWZL9Ld8qMmI7T3pK/mN4Mg=;
 b=RBAhfWomCkehhpx8HsBs75zIVGZT/FESLvjTBWInS9/Ibh6dnzxNz/DDLP+Js2KsYcoU
 mtI2FgaOwT7I7qnxONlWKI0cjFsw3yIcbVnFjeQVWfNjRUbkdZVTuzGD8U6JpexTVHUs
 vtJUUX1+c1Ce2qXmXvAE+fnLlT6IbncVkc1M5XejZX5pZ5c2JMvqA17ZpvZHeIlosquC
 JFYog1nAn6drQUZuEI1Vk+Z2L4gsYdbodVCB93W+cBWcnNDw8UIOCKzdL2oIctZHfWcD
 1LmB/U6vO8txHUxJAtIwPpH1IWUv1WkDxr/CYtTJwSwlYfG2M+fO/FIhENpCpa4qnAqP PQ== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=foXCT52okOASJjhPC0bMVpzsdSIMEX+bE5zY2XlLZR/xqDwyXd2oVhjQxVJ+8HbLIOQcfFbBj6/fCw9C/esRzlLi58vPd6ygssYpRj/kgMPZQcRP8zFr9DoDXIPnvxB8MNw/YXA5lWdb/dimkXDB+mHSuFb22Xel76j026/35n5/a9aKSWQrXqtLz9IWnAmHIXaHw22usgWG4ZrEuGPFvLUUUHjmDjW3aHJEyai/ToqXXieL2kMcmaDygM+H86utO6m7Lqvm8oawyFy2d6sNycjfu3GiztTQD9UidNEyOxtAgaQOWUw4F5rsQhdxQuQ9plN+dHWR8zs4/EgTQJtteg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XgiTadkq76ZVDpjxNeUJMWZL9Ld8qMmI7T3pK/mN4Mg=;
 b=YRLVPIcDoSVUiVuzi8OfiuMxMzKvKxj65oG0aNRRpur/jeYxyUPPWPmHX5z3i694rIk38hTyjYzEBawL8B0hPtsXrFOcXBaZHyEtILDLuOGXotoqtqS8Xzv1vCnMd0f0p2jg7wFIQQ1jh42JbWvXySCXkqi64hprCgejPPRM8F6b74yvNVvsYjLgQN4cB6/8lddAe473gZP+vHIeBodboH2sPabKlucpSE32YYjryXvONooegGitEC6xUhRMqDmGwUf5Q+YCRiZ53j6bRNbtsr1yl5zZkamVkLzPrZUj3AxAfITCGxyuK0+0gctB2/1ewSPFf5qjLelHtQd/pgWlTg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XgiTadkq76ZVDpjxNeUJMWZL9Ld8qMmI7T3pK/mN4Mg=;
 b=0Ep7z0ETs9ic354+VCHPPmQNH87C8F8K/Vl7NAGIodUDSpUjvj8TRPSqd9NTW4aGxuf/0uY01Fmjd4/JYaJwa0GMeadNOJsacp43nfyAbg9g4+49q+pqGCFjPL6IoLmXL9GXk6JaiFPWCXaQcOnsvqD7sipMocWqoZAyJKVz8kQ=
Message-ID: <cb342108-c470-7623-0255-c4d35e2fa73d@oracle.com>
Date: Wed, 17 Nov 2021 11:05:10 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/privcmd: make option visible in Kconfig
Content-Language: en-US
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>
Cc: linux@weissschuh.net, Stefano Stabellini <sstabellini@kernel.org>,
        xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20211116143323.18866-1-jgross@suse.com>
 <f80f3207-363d-51b7-4ae0-e4b8aeb2544b@suse.com>
 <b155f66d-8259-ba87-62c4-ce8a0f7ed82f@suse.com>
 <c6de136f-a1b9-2643-3858-9cd3d76e6f57@suse.com>
 <f6957992-3431-c576-a8d4-daf4e60832cb@oracle.com>
In-Reply-To: <f6957992-3431-c576-a8d4-daf4e60832cb@oracle.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BYAPR11CA0104.namprd11.prod.outlook.com
 (2603:10b6:a03:f4::45) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 10266b62-aa57-408a-30c7-08d9a9e40b3b
X-MS-TrafficTypeDiagnostic: MN2PR10MB4381:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB4381AAC501363768B7F980408A9A9@MN2PR10MB4381.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4303;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	4WkZubKHNIjxZtXkw58DhLAk8mQiX2BhumQnkefKR5bPKQcZoAmLmqYORUcNV5jPR3l9s/Jn34Wm6OeojtaA5eqAz2FJpv2zLtDpPXHZGdbky/DzB1Z6WmQGgNCEdfAN5HENPGP5tMKME46ttLSzJ27+2u6MuopsDb1U5uv26WIsOXJKlrelX9qoyunFP2sa/dlSljb++tAZjkqtYbDBY2NMQHj5bM5TLyc0ZxTCJ8ljcAq0TnPWtjVngW+hOV/wpnC/3PZA28BFxXJt2PGMOia4/vFb8cYpmPW3xnLOGZHAojPa4kLB9TMfmqb0g714xRfsab3PNvELUQwIHei7T//x91bxWVCw9F4Nlk93NOB9RCUYJExt3ehNgMngcXtXMeJuGEiGHz2ceOUuFVQUI2qwe0VBZgMhGw2kF7kLthfQXSwt9DYrVu1bnc275j+bF17uDdxzdClUYog12IV/kx3Cn0UtKnd0NkcKy37/r1RGJEgpf8cMRfre254MVmtxoIZdlzSlV4x/pfcsA5h9wZcYnRkhLPiNaVoIm//w00PsLkWcTwN5sSt/exZkMlFfaUqY8ittJnCIcdNiJrBE0mQ8Vo981acXfI8HuMPwj3Q3SybVmCRimHraRDaAOdM8OYQW8FgxT6QcO2HzNhGb2+K+jLX0CdvioZ1pMMeXLMTVfOeZ1AiGmttDh6awHt5MhuosEMuNOwhHoqVNYq4hQ5+tY+WB8dTMj4uc1p2/QsN+fOv5muzgi8JdJrScjMzJ
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(316002)(4326008)(186003)(110136005)(508600001)(66946007)(16576012)(6486002)(31696002)(66556008)(66476007)(53546011)(36756003)(44832011)(4744005)(6666004)(31686004)(26005)(5660300002)(8676002)(2906002)(956004)(2616005)(38100700002)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?QldoVW5OdEl5all0SjhrYUFNeWEyRmlDRlRXYnZMaGxERHcrU1NycTR4bFFI?=
 =?utf-8?B?enFEeXo0TURwU1MyZlM2dGJ0cTNINjFBYkY4RENjNTBxcHVDajc4RHlkUmRY?=
 =?utf-8?B?dG5GTE5CZXQ3ZjUza2cwalRZL0ZwMVlISkhoSHVVMjJ1K0VNTFRhOXZkd3Bk?=
 =?utf-8?B?RStrTU51N1NKVC9ROW1lSFZscXhtSXUxQnlOVGdmcUtBQWdvTzYvZ2JFc3Yz?=
 =?utf-8?B?TG1qSnVPTVYySEV6c0FZNUNZSG8xc1hLeHdEOTV3SGQxMnBER2xvNlpYYVBp?=
 =?utf-8?B?cHM2bE9oWDV4QUVKbUdLWlV5djhJUCszSzZocE1QVnppSEpYcXRlWWp1TmVG?=
 =?utf-8?B?TWxMa0hsZm52cFhXa0ZWUTArcGVvZmx2UkpJSjZzaFNVNGJFV1ZDOW9YQ2x2?=
 =?utf-8?B?WFpDT05KanZ4MFRTd1RDNlk3UFUrU1E4bnpFZ2JVc3h5d0NYdW1RMmRVN2kz?=
 =?utf-8?B?dUNwcVBLb1dIcDBCQnVtcU9SbEJVYUQyd0M5RFlQWUNLVzgxNFY3UE9MampP?=
 =?utf-8?B?VDZlRFQyNWUyRzNNTlF4VkVScDF2ZE9HLzk2VU9vUER2TWtYTEpZalYrTmtO?=
 =?utf-8?B?dDlkNVhIUHRlaXBpZ3pIRHN0dWVFbHk3Tm81VktTaE5ZbG5qT2sxbGRCQUJR?=
 =?utf-8?B?eklyYkVRQmJoUlY5RExiRDh1KzI1MnkwSnlHUTNWZEtLaW9QMTRLaXp2azdO?=
 =?utf-8?B?Z2tOVVVGM2JIZGl1dDBzNzh5TGRCRXBUUTIwUWptTk9xQ1JSSGdGSkVZa3RY?=
 =?utf-8?B?Vzc3cTlqZ1NDdWV3aDE0KzVTeWRYUkM2TW5VSnhPUTB3aWpxaDdEcmNuSWNi?=
 =?utf-8?B?L2NJVlRvcm5BbjI5R1JXWEdYL2hCelFWM2VQQ0ZOSjdLR1h5MlhtRHVtVUww?=
 =?utf-8?B?WE1KWkJqaXgwbnJ4RXNFK3JkUndqWFZ6SldlUWRScGE3T3N0Y2xuZnl3R0p5?=
 =?utf-8?B?bFVxelZHWVdEbkdPWkxDcUtVelNKT0FRVVhkZU0wa3IrU0VWd0JESzdMZHpU?=
 =?utf-8?B?bFI3SFdGMFJ6WkVxZEg0b2c3d3B1RE5nWEwvRmZRQzFQckJIY3M1WDkxbk5j?=
 =?utf-8?B?TVVrWjh2SlIrTDJjdjdGNDdoVWVSR3VlS3BHQXJYWWVuK2dXOTI0WEJVbUJa?=
 =?utf-8?B?OTBhVE1TUHVUYWNTZ3F6cXVZSlFycFVobTBXNUJUWTRYQlhqS0llVDJIdlNx?=
 =?utf-8?B?ZTlqOVduK0JQMDFqUUhrNVBxdWhYNzh6c29tRWZSSjZWUFpVUUFseVpvNEpw?=
 =?utf-8?B?QzBIOEJQdmFVSlJUeU83VGgrK0x2VjZvempsSXNjdXZQL2NSOGxVM1ZiQ1Na?=
 =?utf-8?B?TWE0a2lqZlZZMTMwT3FsYXhGZ1NqMHl4Y0ErUGxhMyt4V1dWSzRiUFpFU0V4?=
 =?utf-8?B?bG4wMFZQdHIwUko5aENPQnhMZVpFL3dqVk03TDd0and2bUpoRDh1TUFuUnRm?=
 =?utf-8?B?YkN2OVFWc0FVUUJRZ0J0SG5ybnRmckJ5ZkNuUDFwVCtQZGF1WGY1amNwRHZ0?=
 =?utf-8?B?UVVXajJFck1kclR4aEhuTkxOdzAvMU1jZTVBSnlRK3RkTGtuaVlWcTBkUisw?=
 =?utf-8?B?OG0rdUw2dHdVdGdGVUlEK1dWSTNNR0FEL1l4KzdwekJjQ2cwNGdvR2ovSGg0?=
 =?utf-8?B?YmtLUjFTVlpGcm5UdW01ZHVnMlhSSGxBSzlrTjVYczltTWFxM1R3bWs5Ym84?=
 =?utf-8?B?Yit1d1cyZ05iNWJxZ0ZTdm5WaVdXTUhLWWRjODdzRVF3aTlxU3JOT2xNTitj?=
 =?utf-8?B?aGMvMXNLcnpydTFUV0k5Yy9GRVdnN3c3SlZTbkdFY2hHbm1Jdms0SlI2Zm9h?=
 =?utf-8?B?VmV3ZTd2dUwzTXZzQ2R3SnR3VmV4blhNT2pMK05BSFRwZUdPNGVLWjB2S1I0?=
 =?utf-8?B?bmVGMng1Mndac09BU1JEaGpibzIwOVMzL1NCMnYwWCt2SXVQU3hQQ01TZnZz?=
 =?utf-8?B?bmgwOTcrc3EwaEtVcjV6a251WGdidHJ4d0drTHpoYVREQzRwdkovWlhucjg4?=
 =?utf-8?B?WGkwaE1Va093aXlwUHZGdmxsb05QdS9ISVdkdnEyb0YwTnRzK045YVJYRkRa?=
 =?utf-8?B?aUhDRUFBWTA2T2lrcDJsNzJUdE1PaUNhK1JKRzl3MG94YWx4RUFYaGpqMk4z?=
 =?utf-8?B?VXBXaVRvMjRnakpFYVNXMW1KQlhhcms4d24ydVV4NDBGUENjQ0oxQmZMQ0xo?=
 =?utf-8?B?RjYyRmU3YldjWmwzbXhHQnhlYmFJSDFTVW9USGVzM1g5U2I1Ty9HOVZOZXpK?=
 =?utf-8?B?MXZHUVlCN3U0dm1Nd0c0ZGwvMWNnPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10266b62-aa57-408a-30c7-08d9a9e40b3b
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 16:05:15.8967
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WKDsno5c+JQESyCrAvviu8RjHYafuKznkTPEuiRBkT26TrBmdQoH4DQsE3rPEGtk0bWSzDOTgklG1e+kcrsW50255POpIrgFgwG7J8oSvbc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4381
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10171 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 mlxscore=0
 phishscore=0 bulkscore=0 mlxlogscore=958 adultscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111170075
X-Proofpoint-GUID: bhHq3_WPAsMuGuNvs2bDx6XwEOgb0yV0
X-Proofpoint-ORIG-GUID: bhHq3_WPAsMuGuNvs2bDx6XwEOgb0yV0


On 11/16/21 5:33 PM, Boris Ostrovsky wrote:
>
> On 11/16/21 11:05 AM, Jan Beulich wrote:
>> On 16.11.2021 16:01, Juergen Gross wrote:
>>> On 16.11.21 15:55, Jan Beulich wrote:
>>>> On 16.11.2021 15:33, Juergen Gross wrote:
>>>>
>>>>>       config XEN_PRIVCMD
>>>>> -    tristate
>>>>> +    tristate "Xen hypercall passthrough driver"
>>>>>        depends on XEN
>>>>>        default m
>>>>> +    help
>>>>> +      The hypercall passthrough driver allows user land programs to perform
>>>> Maybe worth adding "privileged" here? Albeit of course that's different
>>>> from the use of the word ...
>>> I guess you mean "... allows privileged user programs ..." (another
>>> variant might be "The privileged hypercall passthrough ...")?
>> The former, yes.
>
>
> I can apply with this change, no need to resend.
>
>


Applied to for-linus-5.16c


-boris



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:06:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:06:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226911.392287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNRV-0002tj-Q6; Wed, 17 Nov 2021 16:05:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226911.392287; Wed, 17 Nov 2021 16:05:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNRV-0002tc-Mm; Wed, 17 Nov 2021 16:05:49 +0000
Received: by outflank-mailman (input) for mailman id 226911;
 Wed, 17 Nov 2021 16:05:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnNRU-0002s4-KE
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:05:48 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnNRU-00043y-JI
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:05:48 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnNRU-00060x-IK
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:05:48 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mnNRP-00068Z-J4; Wed, 17 Nov 2021 16:05:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=DyWJ/ZxWimWk+fE7tKqO67S6U+zqVIh9eAkzPmzNbL0=; b=W92Oz1G8jI63qa+MLYyQUPk3cH
	d84lPeEIPMtMs/c0clPSVp8CSIePgXOEPf4TDggvoHvT7tGKPWUWjUiv7k6NiKcizEnX2LKAMxqP3
	rRnjJUV93Zwl25pzkfrlDixjY8M5sFWs6cw/Js2QZc/i31oXtmhbholmojEI8p51+vy4=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24981.10327.56927.848136@mariner.uk.xensource.com>
Date: Wed, 17 Nov 2021 16:05:43 +0000
To: Andrew Cooper <amc96@srcf.net>,
    Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH for-4.16] efi: fix alignment of function parameters in compat mode [and 1 more messages]
In-Reply-To: <20211117153350.19823-1-roger.pau@citrix.com>,
	<1927a35e-9902-bee8-f7f2-ab8463043d8e@srcf.net>
References: <20211117153350.19823-1-roger.pau@citrix.com>
	<1927a35e-9902-bee8-f7f2-ab8463043d8e@srcf.net>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("Re: [PATCH for-4.16] efi: fix alignment of function parameters in compat mode"):
> This will compile, but the caller won't get any data back unless you 
> copy the opposite way here...

Well spotted.  I feel quite the fool!

Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:06:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:06:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226915.392298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNRy-0003ZD-2E; Wed, 17 Nov 2021 16:06:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226915.392298; Wed, 17 Nov 2021 16:06:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNRx-0003Z6-VM; Wed, 17 Nov 2021 16:06:17 +0000
Received: by outflank-mailman (input) for mailman id 226915;
 Wed, 17 Nov 2021 16:06:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qgGu=QE=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mnNRw-0002q8-4R
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:06:16 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 465c31b3-47c0-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 17:06:09 +0100 (CET)
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AHFlRd6022028; 
 Wed, 17 Nov 2021 16:06:06 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cd2059j6f-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 17 Nov 2021 16:06:06 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AHG0ajE093455;
 Wed, 17 Nov 2021 16:06:05 GMT
Received: from nam10-mw2-obe.outbound.protection.outlook.com
 (mail-mw2nam10lp2102.outbound.protection.outlook.com [104.47.55.102])
 by aserp3030.oracle.com with ESMTP id 3ccccqawbk-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 17 Nov 2021 16:06:05 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BLAPR10MB5042.namprd10.prod.outlook.com (2603:10b6:208:30c::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Wed, 17 Nov
 2021 16:06:03 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.020; Wed, 17 Nov 2021
 16:06:03 +0000
Received: from [10.74.104.192] (138.3.200.0) by
 BYAPR11CA0074.namprd11.prod.outlook.com (2603:10b6:a03:f4::15) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.18 via Frontend Transport; Wed, 17 Nov 2021 16:06:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 465c31b3-47c0-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=z5+aHhp9bWM8ZoMn9iz6HfR3omgHA682Wq8x96d95nw=;
 b=Tz5dLSA4X9R1uTZAhLkO6L//TumpYtW3SqcJGPhT21NCIErCUTDInScUTzWQ4x1FBAWB
 yjIWSGAdPXn9dlMn0FJhDe3ew9EKykP7jQo0zk9ot4znKBqTHP0ZR2xCSlkzEYDS/Ujk
 K7087+46I9xvaH6fuWn5Gmak+MPE/qhErbWE/tb1cts93/w/FgQ4oPHM0bW58yDL9NAP
 zdTX/LdmHm/NywV1E40ICT9Wke8UMvhZNyM/Jw/moPwgSsjfEnXXFy0sgtfodQbh1FCx
 Js26lwWyaGzSyu79yWiTy9/1fdyFmCmF9175WrdD++S4C3mDCJqPWkVlDsmxjkgFjqjk pQ== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=obCVJi39PvVwHkcIZqAp79hhmzPyBz1sZVrEdnPDYhuS3NEaLmf0R7NM+rYonBe5ebEpq5jx4grnQQbqXg39yw3gbnfOfS2DWMwDoxJt6NjKkMVQ+RO2Cq9ajfNUtJxVdEUAMRXnVmeECmEmwMm9/bNpdUqFeBjTGbjYhdlb/RVboRmP5HPwKAYUZ9JUYF/Hx1BbbB6OrzopTckqMO2+Sgc7F6Sg1cyTXG42B+ppRabnBB/7qX50kTazx6FUOC6eTkGEY6hgQXtZ1M9QhxazQn5VQwDINVZE0qEi0yfTtOQN661l/0P/QdkuLR6IaI1fcf20bO7+MElsv76w0a875A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=z5+aHhp9bWM8ZoMn9iz6HfR3omgHA682Wq8x96d95nw=;
 b=N46k9gvewViNcFt6+jcR7TXsE7+9yWlOPJ1AsHT/NI2b7saRx14SdQ6lncTXDnPBKIY3nH9/6Q74VY+gj+XfBGh6+WTNxJ2H3m/bKWmQhTz2BoTlXkUQTuKH4jMHaseI2x8sKU6Sdu9S/EKks+Oe4yCotySgTjs+qfE/6X7pmE2t0Jn/PoWzrVQ4H3QzbqC946qNpKRUkEdxWsMZG8cRCrEdpJJVyROO9D6fErqjLdwxego+WZL1kMgio/rmZ3B0pcZsQqmk9bXZjdMh3T1WdpDlR7xM5/d3vLgtHhl0bF0aEm5Fg/voohORVd0dOTS2rmCAq8mHV+MtZov5jjrreA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=z5+aHhp9bWM8ZoMn9iz6HfR3omgHA682Wq8x96d95nw=;
 b=H+rrU/xvNEuYuvf11v/+6ROo+nC8o4Olth+GmiEd0PV8qtlwmi0whzm9QQGkrn1olpY5aSIN/D5ATc395wN5bnA+/zJtx6OcjHwQICyyEXv5k8VEPCxR+xMStIwjns1rTHFm72FOgK6J//xC3izjN3lPdOEyaFUY/w0H3HhKev4=
Message-ID: <ed47fcdb-f841-65e6-be70-a12303ac153e@oracle.com>
Date: Wed, 17 Nov 2021 11:05:57 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.0
Subject: Re: [PATCH v2] xen: don't continue xenstore initialization in case of
 errors
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>, jgross@suse.com
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
        Stefano Stabellini <stefano.stabellini@xilinx.com>,
        Stable@vger.kernel.org, jbeulich@suse.com
References: <20211115222719.2558207-1-sstabellini@kernel.org>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211115222719.2558207-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BYAPR11CA0074.namprd11.prod.outlook.com
 (2603:10b6:a03:f4::15) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4c3d243b-e3a1-4f12-7233-08d9a9e42756
X-MS-TrafficTypeDiagnostic: BLAPR10MB5042:
X-Microsoft-Antispam-PRVS: 
	<BLAPR10MB50421BD9917E24EFE7F0F3628A9A9@BLAPR10MB5042.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6108;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	rtSLE6VhOaE3juocxXlqyoeeIAYHuts6OgB1+GsKiu2n89az2gINFxbwUHJTRmxcYRdyqojCUCGN0CwvHe+5Bz4fC1aaqd9QCC40xogD3fTgWDaGGaiSs4Tz4ykeqemdo00WZTNjUJdtT+HB67OM40q+0pjHfcFwQXQnmCCbSHNF9qkWJXZVDkSG0ceIBu7DuhRmH6XF+bPjSkW67pNT1NR6i9MvuFbDyiKtIMeVmDboIsXG3CkXBafJfw7gDjL29G0twP2t2UZUUf/wMz6XrVuq+aU/zdrwv7gMT0FBEbC7t0f9a+ZC34iL6R/BhasrYhT+9GbMCSO15/IUd32ZiC5PTlk5qMR0DIeAsut1nz2jIcQR+tvZ1B9i5kxkeh4kbBJS+b76ba4j2dBlCY5vE+gp7hnONmQILP2B5FkU+tIso+Fr5kYT1u0DqA7LxWCfCyfxUAC7pOauJbbyyjYubF3nrkw2flJ4KE4ludniuF+bBi4M6NVvCp8QLvZrrXnclqkV2jvSIxnYrunNqdqxrqCSAP+VvMRc+e5JFnDDhkrhK03lL1/Wqnt7AMSG//IGR2XHSrjgdBWq7qBloBCouFin0b2uxAE82VzMggBBgl5DVxjrwkkwSTsaN4l+2vwHvTnvnDdZWF9h8a8Gp4mdH1rmrS4JDompZ3Di3bOg7EP0hFUItExbIZM8IP9GGFRfj3nQVQSnveZzVNKd2ji28tN2uiHXoF+i2S5HuvszLha/eKF4vgdyZsfmshYOmeom
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(956004)(2616005)(6666004)(4744005)(5660300002)(66476007)(6486002)(66946007)(66556008)(44832011)(8936002)(26005)(186003)(53546011)(508600001)(4326008)(31696002)(36756003)(8676002)(2906002)(31686004)(16576012)(86362001)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?aDhmVmRJcXNFR0pmeTJaZ2VrdDE4cXdrdUJpMlg2VHNwMENmZWVodHl1Tloy?=
 =?utf-8?B?Mmc5S3JLMFI3QTQvQUR6Qzg1VS9QUXloU2NKWXRPWnMwT0Znc3BucEFxU2Jm?=
 =?utf-8?B?aUp6bUtzUjJ6RmdpZC9HZ2NkR0J2d28xRzkzN3BWZzlTb09iMk80R3MwSHBr?=
 =?utf-8?B?amJzNTNSTjdyV3J1Wktzb0J4cWpZY2JUYlI0Mkw5di8weW04aHJ2KzdSV0E3?=
 =?utf-8?B?aERnaWJHdjZvNno3cUNldGxrUFZGK3FvVnBQSXhPN3Y2QnZFOHdZWFFZWVpO?=
 =?utf-8?B?TitlaGNaSDFvaGVjRE45U25KamI1ZzVFaVJqNzljL2I4UnVGdExNODRlRGth?=
 =?utf-8?B?TlFPSXRFakljU1hsQVlPcldqUFpPenc1UHk5UDhvYkY5VGFPZXE1TWxQUzd6?=
 =?utf-8?B?eGpHcUloK0xoUnBOSHpDQWZSeGdmR250TGJJaVo4bVE0eEJEM21MWGNGOTVO?=
 =?utf-8?B?QVQyS0ZEbTRtSFRoWXNjdVVpQjBPeklGT0FVNVpHZEpXMHlvVTdjbWhNeldy?=
 =?utf-8?B?ZEdIS3U2czlvVzlPSEFjWE1iZ2JsbjBKTmw5RC9LU01QK2hYWlZkSzRSVmFt?=
 =?utf-8?B?YmNQd3hXNnpvaUU3UWZBNDFNWVlpbTNxUWI0MXdMSFhteTFUd2VIRy9Qd2pt?=
 =?utf-8?B?VGh5Vit3NWE1Mkl1bUh1aXVXTDVyck1SME9DT0ZGYURuaVZES3YyTnlPZit3?=
 =?utf-8?B?VTQyWG5ER1ZWU0tFUDN2WnNDWFlycU5VOFo2Z0Rld1dTVktTWEZiaHBDYnhp?=
 =?utf-8?B?YytMVDdTNjdvNnNjckhPcnpXdHU4N0RzLzRUSmhFMFNQNEt6MytDVjlzLzJ0?=
 =?utf-8?B?ZXVpUzlOdm1CVmVhSThWaGVXejVIY2dmZFhlZ090bEJ4U2FMNE9UalJ6cjlN?=
 =?utf-8?B?NGkycStHMXgzaDlLcHpXNmEzUHJwRTcrYy9vaGJBM3JRa0UrTWtWU0d6ZzVU?=
 =?utf-8?B?VHRLQkE0T055endIYlZwYUJkNFBGSWNtMy9ub1RxdGJPTmJiWjJTUXV1Tm1D?=
 =?utf-8?B?b1FUVjlVUXR2NSt0SDErOGlnWjJpa3JaM25GWGxobDBxVmhudnJMQ1ZWM0Ew?=
 =?utf-8?B?SElCRURZN28xZXIwa0cwdEtaRHhoMzZRRnRiWlJmNytveEdpWmU2Qm52VWdH?=
 =?utf-8?B?VDhQWVZ6MmpRYzdFVFVZTVVHNWtKS2JPNUFJMy94VFI1REQ1VkxOR1dMakQv?=
 =?utf-8?B?Z0J6NVVzTU5PTWp4b0xQUUdUeXgyREVqemc5dFJCaUVqRFR2dFFqaDVaanlI?=
 =?utf-8?B?VUdFenppVmNmQnNqaEoyKzMyQ0NlbDFKSXIyWEExK2pPWVhQS3VwU2pvaWlY?=
 =?utf-8?B?d1lGTHlmdU5rNDYwT1BSTmMrMVN2eXhJR3dWRG9BQ0wwZnY0dXd3ZE13NWdQ?=
 =?utf-8?B?ZVZxTmZKbldLQVdRRGM3SEJGV2NRV3BSME1SaElnM1dQemczQlIrQ2R0anBk?=
 =?utf-8?B?cExvc1Nxd0Yvd0pZOXRkblc3Y2pqNGFwZi9sMVlxVEZOY1N5NnF6T2N5YXRo?=
 =?utf-8?B?MHpyVWp6L3VUMmtUcHl6RzZXMHZJdkd2MFVDV0xKMnVSYkRud3lFVWVBODBY?=
 =?utf-8?B?L2lHbDNLNUh6R25UWTYva2JmcTNYejF2Mm1FSmFnZjRnbFpwd1JpdUN3T1h3?=
 =?utf-8?B?MjJJNSsxTlhuTEljY1hlTnFGdGxZekJpUHVqb1U1ZU5SUTRtVUNWMnlOSFVN?=
 =?utf-8?B?QTJYNUI0RDZmUzNrR1RzQTBtbE9xaFZ4eHFsZ3FQT2tudElScm1yN2p0bnV3?=
 =?utf-8?B?WFJmK3B5L21ROHI1bCtLUXJjc2k1UnZnMmZMaEpKak1iZVloc3BjcnZ6Q2Nl?=
 =?utf-8?B?R1R3T1g3ZXdnZHdsdGJiR1J1dERDcm41S2c4VmRzUjZJTkRUOEFGZTNySmMw?=
 =?utf-8?B?UlpGeHU0SjZ0Ni9PVkI2NHVCKyswSHlJTXZFZUp5aElIQ2ZuNGhCU0gwcEcw?=
 =?utf-8?B?Vk9UOU8zMVVTMXRJR2UrZlJrK1ZyYURpWmJQNE5YaG9aOHZ1d0RmNDduK29k?=
 =?utf-8?B?dFRUTzV1QjhBdGlUc2tKTWk4R0RYWERmK0JTalQzbVlQYkp1UW8reFdtTjZ6?=
 =?utf-8?B?Zm1VWlRma3hiT2wxK1d0d1ZjNC9Cd3VmUkpqREsvRXpBYTBESU1wajNodWRL?=
 =?utf-8?B?eERqa01XUVJCN1ZPeEJSZVhaMTgwSGc0bS9UOTI2ZmRUUlJ3Z0tqTy8vVEli?=
 =?utf-8?B?YUVYdmhpVGpHZFcxeENUaXMrT0tBdWxNbXNQKzZxR3R4ZnVWMWlpM2dVZ3Ft?=
 =?utf-8?B?aHVJQ2h5NTR3enBBNHNaR2NCNzR3PT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c3d243b-e3a1-4f12-7233-08d9a9e42756
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 16:06:02.9629
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lDtLUKLAVzN2EaidJOcluK2BtDCpVWSmjrtVCvBdPqIFCNF/HMVas2+dIRic6wYW042A/N2Uy6xI9RIsxyKr+6F9uuJStP2GNc+zAHwhXUU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5042
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10171 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0
 adultscore=0 mlxscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111170075
X-Proofpoint-ORIG-GUID: tSwjEGZwZIg_kvrro00YhUG1delN9QP-
X-Proofpoint-GUID: tSwjEGZwZIg_kvrro00YhUG1delN9QP-


On 11/15/21 5:27 PM, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>
> In case of errors in xenbus_init (e.g. missing xen_store_gfn parameter),
> we goto out_error but we forget to reset xen_store_domain_type to
> XS_UNKNOWN. As a consequence xenbus_probe_initcall and other initcalls
> will still try to initialize xenstore resulting into a crash at boot.
>
> [    2.479830] Call trace:
> [    2.482314]  xb_init_comms+0x18/0x150
> [    2.486354]  xs_init+0x34/0x138
> [    2.489786]  xenbus_probe+0x4c/0x70
> [    2.498432]  xenbus_probe_initcall+0x2c/0x7c
> [    2.503944]  do_one_initcall+0x54/0x1b8
> [    2.507358]  kernel_init_freeable+0x1ac/0x210
> [    2.511617]  kernel_init+0x28/0x130
> [    2.516112]  ret_from_fork+0x10/0x20
>
> Cc: <Stable@vger.kernel.org>
> Cc: jbeulich@suse.com
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>



Applied to for-linus-5.16c


-boris



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:09:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:09:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226923.392308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNUY-0004S1-Gh; Wed, 17 Nov 2021 16:08:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226923.392308; Wed, 17 Nov 2021 16:08:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNUY-0004Ru-De; Wed, 17 Nov 2021 16:08:58 +0000
Received: by outflank-mailman (input) for mailman id 226923;
 Wed, 17 Nov 2021 16:08:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnNUX-0004Rk-14; Wed, 17 Nov 2021 16:08:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnNUW-00049H-S9; Wed, 17 Nov 2021 16:08:56 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnNUW-0006ML-IZ; Wed, 17 Nov 2021 16:08:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnNUW-0000NE-I7; Wed, 17 Nov 2021 16:08:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=L8yYYWmm/o1ibO3NnHsHu6A0ZNUQZPVB8QZP+ziynfI=; b=RLpSBzy6vhG9rKV+USvS1kKztN
	iP8xDPxWJjv5CCwz5Xfe/GTp+pVpjrM8Pt+uT83yoA+XdEmL5bFZEjTnr2BTxKU1S5zUR/AFRCAcQ
	ApyEEJ7LRop2eSbfRWDRQpYOwJxPmPYmKCTKFGJvE2Ih6AYRinmnVh2uxSFRLqlsp2ik=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166168-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166168: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:guest-start/debianhvm.repeat:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1cffc48f1e1f972daeec579c62de4bb24f3152fa
X-Osstest-Versions-That:
    xen=306e0afbb382ec10081ab277c866e9e7c212dda5
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Nov 2021 16:08:56 +0000

flight 166168 xen-unstable-smoke real [real]
flight 166173 xen-unstable-smoke real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166168/
http://logs.test-lab.xenproject.org/osstest/logs/166173/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 20 guest-start/debianhvm.repeat fail REGR. vs. 166162

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1cffc48f1e1f972daeec579c62de4bb24f3152fa
baseline version:
 xen                  306e0afbb382ec10081ab277c866e9e7c212dda5

Last test of basis   166162  2021-11-17 08:01:37 Z    0 days
Testing same since   166168  2021-11-17 12:02:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 1cffc48f1e1f972daeec579c62de4bb24f3152fa
Author: Roger Pau Monné <roger.pau@citrix.com>
Date:   Wed Nov 17 12:43:05 2021 +0100

    tools/python: fix python libxc bindings to pass a max grant version
    
    Such max version should be provided by the caller, otherwise the
    bindings will default to specifying a max version of 2, which is
    inline with the current defaults in the hypervisor.
    
    Fixes: 7379f9e10a ('gnttab: allow setting max version per-domain')
    Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
    Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Acked-by: Ian Jackson <iwj@xenproject.org>
    Acked-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
    Release-Acked-by: Ian Jackson <iwj@xenproject.org>

commit 27ece0dd522278e074acc264dd95d734beb64d0f
Author: Roger Pau Monné <roger.pau@citrix.com>
Date:   Wed Nov 17 12:35:26 2021 +0100

    CHANGELOG: set Xen 4.15 release date
    
    Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>
    Release-Acked-by: Ian Jackson <iwj@xenproject.org>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:21:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:21:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226932.392326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNgh-0006fC-MN; Wed, 17 Nov 2021 16:21:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226932.392326; Wed, 17 Nov 2021 16:21:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNgh-0006f5-Im; Wed, 17 Nov 2021 16:21:31 +0000
Received: by outflank-mailman (input) for mailman id 226932;
 Wed, 17 Nov 2021 16:21:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hiVf=QE=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mnNgg-0006ez-71
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:21:30 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20617.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 699c5811-47c2-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 17:21:27 +0100 (CET)
Received: from SA9PR11CA0026.namprd11.prod.outlook.com (2603:10b6:806:6e::31)
 by SJ0PR02MB8531.namprd02.prod.outlook.com (2603:10b6:a03:3fc::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.20; Wed, 17 Nov
 2021 16:21:24 +0000
Received: from SN1NAM02FT0045.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:6e:cafe::35) by SA9PR11CA0026.outlook.office365.com
 (2603:10b6:806:6e::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Wed, 17 Nov 2021 16:21:24 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 SN1NAM02FT0045.mail.protection.outlook.com (10.97.5.234) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4690.19 via Frontend Transport; Wed, 17 Nov 2021 16:21:23 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Wed, 17 Nov 2021 16:21:22 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Wed, 17 Nov 2021 16:21:22 +0000
Received: from [10.71.116.231] (port=51609)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mnNgX-0000um-K7; Wed, 17 Nov 2021 16:21:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 699c5811-47c2-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hCSztjOibQiFE50cChKSZJNQBfdaQP4191E9D5GRE3VFyhEarEe9DrmnFG+sisqsuhpSpXJ4durWDPh7ntJC/T0oDe60vJSnjDf/dljG2bI4YOjXcms1TxbT/aVhiYxcWM+mcZwQsoeJxa3NX2vdBaC7fESTo5E5z5QwPWSE87m4I0mEYzoD4yoGPjWlAyA2eywZW/jwO0d+k4/2nBjNCxZP6vCPieRCU22O+RAXWVC0AuUAMzButmsp+4rLNkgLYIWQk4xUs9MgdDZROEpQyMY4CZO4+aWJ5qPDu8lmLoZ7Y0qBYoyr0T8Y/dy5epCsgzjkOVQRy2xTF4uDhD+aPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JMdnJ/41Z4FbEgOqflToYOsj2Dp5uOaTg+dKoc4ZMzQ=;
 b=O+E2StvEDOoVbdHFug1iyvg1ZRJbI4/IqoMmMOJ0Ufk9w9pPhIbBfBA6En6SSy3w6V9X9kb0i0SuSsykGiWZDWo58p/MUQhInbaL0/MB9PuuBNffpMF/rY7QyhxucT1tO3UYozgZxYSS+LN7mtTeEHDWCNlrp6ABXvV5WZUajNaEILH6D+wBQ5Fsg9rquFhiUGNjtlOmqMsmdzqyEquRqe2JvaD/KDR5lP/Exkoe1sMBjG03f1XXkUFzT2k3q4G6B3LkBq/VDbZ9I/fxP2KbKM2v5LuWqSBhg+tj6sR0D9itfMvNhIs5NBytgmMwLotAEF5KCO/z8OlezlYhUDOnMQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=arm.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JMdnJ/41Z4FbEgOqflToYOsj2Dp5uOaTg+dKoc4ZMzQ=;
 b=Bgn2NS8J3xzr1ZLC3J5RmImPKoUsP0HMNCLbYy6B7yXdrXH2PE9W0aQxqnKRMtSaJR/jdxEH6kIFpKTLYXk8fhHifTpOxF78yMyuKgnDa1Z2EnSVui6f6WJ7BzeYqx9O+OrjzffEi+5/NjPNBlGj2tKsV9ay5KBZjwxPvQ91JP0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
Message-ID: <636b9fe8-4c10-45f5-da95-513c87e5939f@xilinx.com>
Date: Wed, 17 Nov 2021 16:21:21 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: Xen/ARM - Query about a data abort seen while reading GICD
 registers
To: Bertrand Marquis <Bertrand.Marquis@arm.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com>
 <CED537AF-44AA-41B8-9458-17A5C43FBECC@arm.com>
 <f91fd718-040e-88a3-ca96-30d1efe9a689@xilinx.com>
 <0ACF6308-EDB0-4B98-A029-1C7B23820198@arm.com>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <0ACF6308-EDB0-4B98-A029-1C7B23820198@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6a1d5271-6d4d-480b-b2c5-08d9a9e64c67
X-MS-TrafficTypeDiagnostic: SJ0PR02MB8531:
X-Microsoft-Antispam-PRVS:
	<SJ0PR02MB85314D89DC7CF8E7E9F6397EB29A9@SJ0PR02MB8531.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	5XuC5jWDlLOwrD5DffP+YpOEwonoG9Esyv+//Bwt+X1HijZLfFuQb11cFhe2A+pBG1ii9eKFPuTgpcccs40LCvw2BOJqFZHFdtWSs5yanYhUN/D8v402J6s/l65a4onb+c8dtbqFufTJIe6W2OYQ7lywthpheOFnfcTHGRLU0Hekx5HnOkVdPn6zEbPLzm4u8kagajU5I8AumHAKIagovIKkldQ1VnTaGUVhuEHRaHW0vfPVucQBLNNb42SCBWRScjYL/EbUN/Stqj1L0aSFH8hitdHllMfSO4dBvWCiZWxp9aNQnp7nRzhfqAYdpf5H3D5aBQ+0A+vk080pPFjLam0VuhQe9tD+2RIhPzFh8yQ/gkmMWBUuTqZv/Dii+wDZCyGRiDli+XNjVE+hzJdnJ7c7AxLBbmNAPXfkyS3JVntk/8eOP2fls76l5vMRFvUWaJ99tD88fKAkIQOr0vpJy04oHyBLk9sfGVKWFzKmNRVl7R5hfdOEPIjhK3btDeIW6HGDGPOzTqrX0miBL+LHW/F5+AotZl8YQgZGBMFwTUTRFzRoXZeUNQx5J5gYVSMDf54q7Cn8tD501ACV+kiwi0Pymf1EWMk3HwamQBM6B5MZPd7qvx3a1GTXipnauEjNqDicZudp+kDfWcb7Tft2N4QhxPCasPC7bO/INsGXsXmdaGgYne0iMQvhcDIKtE8LAYkJaOpNVzKssh2sWc6VoIihrUCWS8UnUTHzCt9ERAq9hK2xlJtYb0BdwDeJZo43yMbsHyEb52XPSiEL7aDbEwoowgliTYQuFEBe8Y0VOFzBO1BpkyuyxpPikm2PPbjOK9qCJsk1sUv6ReWUk5aIZmNwdZn1SVVq/jOuhp4/nq8=
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(70206006)(8676002)(356005)(53546011)(186003)(70586007)(426003)(82310400003)(8936002)(2906002)(5660300002)(31686004)(966005)(9786002)(508600001)(36756003)(31696002)(7636003)(83380400001)(2616005)(336012)(36906005)(316002)(4326008)(36860700001)(54906003)(26005)(47076005)(110136005)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 16:21:23.6283
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6a1d5271-6d4d-480b-b2c5-08d9a9e64c67
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0045.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8531

Hi Bertrand,

Many thanks for your response.

On 17/11/2021 15:48, Bertrand Marquis wrote:
> Hi Ayan,
> 
>> On 16 Nov 2021, at 16:24, Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
>>
>> Hi Bertrand,
>>
>> Thanks for looking into it.
>>
>> On 16/11/2021 15:36, Bertrand Marquis wrote:
>>> Hi Ayan,
>>>> On 16 Nov 2021, at 15:27, Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
>>>>
>>>> Hi Xen/Arm experts,
>>>>
>>>> I am facing a very strange issue while running a baremetal application as a DomU guest on arm64 platform.
>>>>
>>>> The baremetal app tries to read the GICD register with post indexing as follows :-
>>>> ldr x1, =0x3001000
>>>> ldr w2, [x1], #4 <<<------ PC = 0x40000ca8
>>> Increment on on load is not supported by the emulation layer.
>>
>> That is surprising. The reason being if I try to read the GICC register (0x3002000) with post indexing then it works fine.
> 
> When the ISV bit is not set, Xen would have to decode the instruction to actually emulate the access and properly modify the registers values as long as providing the “emulated” access value.

This is very interesting. Is this being done for any of the other 
instructions in Xen ?
> There is not such a decoder in Xen right now which means those kind of accesses are not supported for emulated mmio accesses.

I am actually trying to understand where I will need to make the changes 
if I have to add support for the decoder. The reason being this issue is 
being faced by one of our customer application.
Besides changing the instruction to prevent post increment, is there any 
other mitigation ?

The reason being I don't see a way to instruct the compiler to not 
generate the post indexing instructions.
> 
>>
>> Can you point me in source where this limitation is set ?
> 
> In this case the isv field is set to 0 when the exception is received by Xen which means the decoding part of HSR is invalid so Xen is not handling the emulation of the access.
> 
> @julien and Stefano: I have been going around and around the code but I cannot find where the valid bit of hsr_dabt is checked, could you help me here ?

By any chance, are you referring to 
https://github.com/Xilinx/xen/blob/4bd2da58b5b008f77429007a307b658db9c0f636/xen/arch/arm/io.c#L129 
?

Also, post indexing works for some other registers (eg GICC). So, I am 
guessing that the behaviour is specific for GICD or random ?

- Ayan
> 
>>> Could you try with:
>>> add x1, x1, #4
>>> ldr w2, [x1]
>>
>> This worked fine.
> 
> Good :-)
> 
> Bertrand
> 
>>
>> -Ayan
>>> Regards
>>> Bertrand
>>>>
>>>> And then I get :-
>>>> HSR=0x92000005 pc=0x00000040000ca8 gva=0x3001000 gpa=0x00000003001000
>>>>
>>>> This problem occurs only while reading the GICD registers with post indexing. If I read the register with pre-indexing, then I do not see any abort. Alternatively, if I read GICC register with post indexing, I don't see the abort either.
>>>>
>>>>  From the HSR value, I interpret it as
>>>> EC = 100100b # Data abort from lower exception
>>>> IL = 1b # 32 bit instruction trapped
>>>> DFSC = 101 # Translation fault level 1
>>>>
>>>> On debugging, I found that the abort is triggered from
>>>>
>>>> try_handle_mmio()
>>>> { ...
>>>>     /* All the instructions used on emulated MMIO region should be valid */
>>>>     if ( !dabt.valid ) {
>>>>
>>>>         return IO_ABORT;
>>>>     }
>>>> ...
>>>> }
>>>>
>>>>  From the Arm V8 Arm specs, I understand that dabt.valid is ISV, bit[24] in "ISS encoding for an exception from a Data Abort".
>>>>
>>>>
>>>> I saw that the caller is
>>>>
>>>> do_trap_guest_sync() "case HSR_EC_DATA_ABORT_LOWER_EL"
>>>> where dabt.valid is false.
>>>> In the success scenario, dabt.valid is true.
>>>>
>>>> I could not find the caller for do_trap_guest_sync()
>>>>
>>>> So, can anyone help me here
>>>> 1. Who is the caller for do_trap_guest_sync() ?
>>>> 2. Any idea on what the issue is and how I can debug it further ?
>>>>
>>>> Kind regards,
>>>> Ayan
>>>>
> 


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:35:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:35:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226937.392337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNuA-0008DD-3L; Wed, 17 Nov 2021 16:35:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226937.392337; Wed, 17 Nov 2021 16:35:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnNu9-0008D6-Uy; Wed, 17 Nov 2021 16:35:25 +0000
Received: by outflank-mailman (input) for mailman id 226937;
 Wed, 17 Nov 2021 16:35:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5X4Q=QE=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mnNu8-0008D0-EG
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:35:24 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0620.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c1ef830-47c4-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 17:35:23 +0100 (CET)
Received: from AS9PR06CA0054.eurprd06.prod.outlook.com (2603:10a6:20b:463::14)
 by DBBPR08MB6042.eurprd08.prod.outlook.com (2603:10a6:10:20f::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov
 2021 16:35:19 +0000
Received: from AM5EUR03FT059.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:463:cafe::ff) by AS9PR06CA0054.outlook.office365.com
 (2603:10a6:20b:463::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Wed, 17 Nov 2021 16:35:19 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT059.mail.protection.outlook.com (10.152.17.193) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Wed, 17 Nov 2021 16:35:18 +0000
Received: ("Tessian outbound 9a8c656e7c94:v110");
 Wed, 17 Nov 2021 16:35:17 +0000
Received: from 8448dd708420.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 AE3403FC-D7C8-4510-B064-846C26268A04.1; 
 Wed, 17 Nov 2021 16:35:10 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8448dd708420.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 17 Nov 2021 16:35:10 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB6279.eurprd08.prod.outlook.com (2603:10a6:20b:294::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov
 2021 16:35:07 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4690.027; Wed, 17 Nov 2021
 16:35:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c1ef830-47c4-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ie43Xz3RA2BVNzsz7z6PKVadi/E9Qir6lsdO5bTEIbA=;
 b=S6D7uvW90KGu8DhH2H0WrrekpH1xhbHzz+RiiFQnp2d6QOqfCquezizlBkjTS10JqLazFEfRIWlP/Ugu3X9zW9f721y+VxxkwbT33KuwMhWBaYgbmaF43YhxOeMK/pOGyW0kGzo4pc3NP9A0QmWjchoHSR1OUzcG2z8Obtfw+u4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: fc4f07fbab604ca7
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hSQj1duqtmGBvoa8Cfk29nvkXncUudvM5WIHXU7y1UOeEV+jX7giFMuX7lygE1FRfbRPktxzaHaMABnCzMhZfo2WtVQ9FqCywqmad4QYYpNqT7A73gc6RkYGl6W8L0Tdk/619CfDAWrpZZkITwE1wZFrYQ2/Z5BxFZoX7Wim6lRyuFK3hr38AhK+uj79U7avJKq16Q7XOVjjD2JlYMhcxER2Rl5Bn0R1uI59RXqh+OzJYVJya4wg+Fc9w+S1QHwRicE41bX5nhWWYbzb1GKBeL/i2CILyjEvDuLfq5gNnImkkWjmrhWCscZc9YNKai9IbKTgjB4jlr5q4K5FQHBwMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ie43Xz3RA2BVNzsz7z6PKVadi/E9Qir6lsdO5bTEIbA=;
 b=RQ1Uzyz4qusSBCZY+Dl80UV5n9jvpxPJNSZ8WWnGQ1j7OolMaKVUkDrddVw5hkqktMKsD9wUFK1ga8jNAb5A0nuCJffAH+3bHkgD8HeE51ZOkSKrLIWR4HH16BZ17hLnAKapFwIUxM71uHSwHoQ/me3y5MQrJ8nUNx2YQUeilx1SAy/rSn8K9ebdvEwzhplKpHrNaKD6twsHZBOCWP1Ded+fJU8bDlVSwnBzPXh3JHJIv9jnd9fUe7te/ITlep767IMSeDlzFRVYfV75gxh7tn1QD6t4LNNnYLAYotDJd2uM1TJJ2OmdDnTPM4MyBQ4+NZJxkEzuq5QLXswSeOZSzw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ie43Xz3RA2BVNzsz7z6PKVadi/E9Qir6lsdO5bTEIbA=;
 b=S6D7uvW90KGu8DhH2H0WrrekpH1xhbHzz+RiiFQnp2d6QOqfCquezizlBkjTS10JqLazFEfRIWlP/Ugu3X9zW9f721y+VxxkwbT33KuwMhWBaYgbmaF43YhxOeMK/pOGyW0kGzo4pc3NP9A0QmWjchoHSR1OUzcG2z8Obtfw+u4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: Xen/ARM - Query about a data abort seen while reading GICD
 registers
Thread-Topic: Xen/ARM - Query about a data abort seen while reading GICD
 registers
Thread-Index: AQHX2v69rH0Wb2BjYUqXheWDWZOLqqwGSWAAgAANoACAAYg3gIAACRuAgAAD2YA=
Date: Wed, 17 Nov 2021 16:35:07 +0000
Message-ID: <BA07700B-D025-492D-A376-513408927F68@arm.com>
References: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com>
 <CED537AF-44AA-41B8-9458-17A5C43FBECC@arm.com>
 <f91fd718-040e-88a3-ca96-30d1efe9a689@xilinx.com>
 <0ACF6308-EDB0-4B98-A029-1C7B23820198@arm.com>
 <636b9fe8-4c10-45f5-da95-513c87e5939f@xilinx.com>
In-Reply-To: <636b9fe8-4c10-45f5-da95-513c87e5939f@xilinx.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 0da2a74f-b053-45a9-e6ad-08d9a9e83e1a
x-ms-traffictypediagnostic: AS8PR08MB6279:|DBBPR08MB6042:
X-Microsoft-Antispam-PRVS:
	<DBBPR08MB6042FB76BB0BA4B5D23659A09D9A9@DBBPR08MB6042.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 e8EOSMi1f+8Mf4U7Wj4/CdaW97FQijAVlZt/Pk5+SA49wB4EBWxRyFGoEWp0sdyNs0+NDPebN9j57W4FgNJusXpZcIiusNsgUT4KiYXKP1OXy118EM24c7DaEXMx5a8OaGRlu8MdYIt/3e2t44lTt544LILZugY7RPqsOt0Ef05Xz2jlVh9i3j+Y05MeL3HQynd6zH2rgLRXqS+F40LLaP/UlavBfuH+Gh9BseHanpV7CXbqmEdS8n481qQpy4Ajhar4+22mk8LQn5hgqsOEJc/laOUI+1pdqZZdXxVqGrn59YWypj2bNCP0nVgqvcRS3nOMOfPIBKOwf3rqHck58dhxSk7GK/pqs+vVU/GWfTHxY+hVLtms8NRFWO1KAx9HWPhtfH7EoCkFjjTgrDI/BOsM7T8cFwgSzqufJtBZzSKA+U8s8LEqAYFAHvDtl8LEXjUpMCrXriAS3Gv2NBTT72IOUJG8Fk86/IInUaxT7hbyNXpEjkcF0LCes8a/OqdT5jg2+8iPok4pyUeKjSUBAMDhRcHbwts/X0waVTeuEU++ihbV5dgROB7tSBQVb89tmSWzyp6z3pjNqP6Jf+85euxQvNhhtWw2BdjBqtDFxxxRHS3w184XuMnySN4z1KQNcJmupKP+/6qxCOubHpVdTEAQ9NVvxFbn/kQFPJxtyE6i5A51/GPqprmLQaP9aakcLP8WzF2yee2fOEiEwW1+QyUO06LVJqKZVV+NEF7tuXGc4QyeDS313oC0G7zryPplxKisYCRqZ/GkTf1829JdtWJHed7QdbYzMqxtlqQRx62RWcRt9VNopnClGqN1fwK7USyDBOAwYuMLMZP51hVGYA==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6916009)(66446008)(66476007)(86362001)(122000001)(316002)(64756008)(66556008)(38100700002)(8676002)(5660300002)(66946007)(186003)(8936002)(83380400001)(76116006)(54906003)(2616005)(91956017)(4326008)(26005)(6512007)(33656002)(71200400001)(508600001)(966005)(6486002)(53546011)(2906002)(38070700005)(36756003)(6506007)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <703247B7198E254587858BB4F3B9038F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6279
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT059.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	215c7422-4313-43bc-9bb7-08d9a9e83774
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	J7f1tQrARmfnyEJcXpiVHs5ChZZ1OcQH6Qeh1vl+FEokxA5UM0I3BMZ1zXJNSmmi0argnl3eEVqfFcuCbjvOJhDq1yQQGtXjAEnmEQ4NpAXQvtQl+Zu0/Nr/Oc8UZDjMhC0bwN1aMNnqscbiJSPOEeQaxbJjJN6y4Ki7228u2cWs2Wjpq86lXzA9IW9UgfFrZwPFTR7s4TBU0SpAMGaiFwuF9MsOWM1fYgXr/UhXNgwbDYjen5q0jBn+PHaNxs1flNTb6c2mhfChb88wyxtdZ40MKleEkxQLbFQCE1LK1mip3ferXPBXx11S6y0f/zo/uTlzZzeP6gr/8z7tAolPB610bf64lVMXPoVmD8YjRw5houfjMbw+cPC9iGwIxK6lxU1ffiyve/jQbaU6j1hQrCCKA1dWgHJ3OSCG/ErItKBpw8OkWICoF435TmpwC7AvTT9cedgjN1owVc+FGcXxtOWoVZTRn67Z7hhAc9GeKs1HUolMZSq9ynZey1rKGv8Rpsy3GeoyurtTtw1ORYH1uagwlyqzr/mfGJs2sDhxfmsyMdfe+/anTykWrhJAsIWOJhY/XOOGJ3apnmVT1X9U0My1Jj3Rz1ziKvoUT3JkFa12sQPt9EmS3vRSjT3p9sIyBVUpvK6yJg0rPUronXEKWI9KRIxDJfv0miJ0nJ7srGPcqqjb4uZjz42pgKT4SHiKp/f4BtJFfhlmrkapALnp6P+lstCnzjFtS76eXk6Q9+nL1ovdxnDCSdiY6BcJHMJ9sAxR/4ii9XdtbP/QhI1G9u8KuWCQL+zepCq/UFmciqY=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(70206006)(6486002)(6862004)(47076005)(26005)(186003)(356005)(82310400003)(966005)(36860700001)(316002)(107886003)(70586007)(508600001)(86362001)(4326008)(6506007)(336012)(8936002)(81166007)(53546011)(8676002)(2906002)(54906003)(36756003)(6512007)(2616005)(33656002)(5660300002)(83380400001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 16:35:18.2496
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0da2a74f-b053-45a9-e6ad-08d9a9e83e1a
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT059.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6042

SGkgQXlhbiwNCg0KPiBPbiAxNyBOb3YgMjAyMSwgYXQgMTY6MjEsIEF5YW4gS3VtYXIgSGFsZGVy
IDxheWFuLmt1bWFyLmhhbGRlckB4aWxpbnguY29tPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5k
LA0KPiANCj4gTWFueSB0aGFua3MgZm9yIHlvdXIgcmVzcG9uc2UuDQo+IA0KPiBPbiAxNy8xMS8y
MDIxIDE1OjQ4LCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4gSGkgQXlhbiwNCj4+PiBPbiAx
NiBOb3YgMjAyMSwgYXQgMTY6MjQsIEF5YW4gS3VtYXIgSGFsZGVyIDxheWFuLmt1bWFyLmhhbGRl
ckB4aWxpbnguY29tPiB3cm90ZToNCj4+PiANCj4+PiBIaSBCZXJ0cmFuZCwNCj4+PiANCj4+PiBU
aGFua3MgZm9yIGxvb2tpbmcgaW50byBpdC4NCj4+PiANCj4+PiBPbiAxNi8xMS8yMDIxIDE1OjM2
LCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4+PiBIaSBBeWFuLA0KPj4+Pj4gT24gMTYgTm92
IDIwMjEsIGF0IDE1OjI3LCBBeWFuIEt1bWFyIEhhbGRlciA8YXlhbi5rdW1hci5oYWxkZXJAeGls
aW54LmNvbT4gd3JvdGU6DQo+Pj4+PiANCj4+Pj4+IEhpIFhlbi9Bcm0gZXhwZXJ0cywNCj4+Pj4+
IA0KPj4+Pj4gSSBhbSBmYWNpbmcgYSB2ZXJ5IHN0cmFuZ2UgaXNzdWUgd2hpbGUgcnVubmluZyBh
IGJhcmVtZXRhbCBhcHBsaWNhdGlvbiBhcyBhIERvbVUgZ3Vlc3Qgb24gYXJtNjQgcGxhdGZvcm0u
DQo+Pj4+PiANCj4+Pj4+IFRoZSBiYXJlbWV0YWwgYXBwIHRyaWVzIHRvIHJlYWQgdGhlIEdJQ0Qg
cmVnaXN0ZXIgd2l0aCBwb3N0IGluZGV4aW5nIGFzIGZvbGxvd3MgOi0NCj4+Pj4+IGxkciB4MSwg
PTB4MzAwMTAwMA0KPj4+Pj4gbGRyIHcyLCBbeDFdLCAjNCA8PDwtLS0tLS0gUEMgPSAweDQwMDAw
Y2E4DQo+Pj4+IEluY3JlbWVudCBvbiBvbiBsb2FkIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVt
dWxhdGlvbiBsYXllci4NCj4+PiANCj4+PiBUaGF0IGlzIHN1cnByaXNpbmcuIFRoZSByZWFzb24g
YmVpbmcgaWYgSSB0cnkgdG8gcmVhZCB0aGUgR0lDQyByZWdpc3RlciAoMHgzMDAyMDAwKSB3aXRo
IHBvc3QgaW5kZXhpbmcgdGhlbiBpdCB3b3JrcyBmaW5lLg0KPj4gV2hlbiB0aGUgSVNWIGJpdCBp
cyBub3Qgc2V0LCBYZW4gd291bGQgaGF2ZSB0byBkZWNvZGUgdGhlIGluc3RydWN0aW9uIHRvIGFj
dHVhbGx5IGVtdWxhdGUgdGhlIGFjY2VzcyBhbmQgcHJvcGVybHkgbW9kaWZ5IHRoZSByZWdpc3Rl
cnMgdmFsdWVzIGFzIGxvbmcgYXMgcHJvdmlkaW5nIHRoZSDigJxlbXVsYXRlZOKAnSBhY2Nlc3Mg
dmFsdWUuDQo+IA0KPiBUaGlzIGlzIHZlcnkgaW50ZXJlc3RpbmcuIElzIHRoaXMgYmVpbmcgZG9u
ZSBmb3IgYW55IG9mIHRoZSBvdGhlciBpbnN0cnVjdGlvbnMgaW4gWGVuID8NCg0KTm8gWGVuIGlz
IG5vdCB0cnlpbmcgdG8gZGVjb2RlIGFueSBpbnN0cnVjdGlvbnMuDQpJZiB5b3UgbG9vayBhdCBM
aW51eCBzb3VyY2UgY29kZSwgdGhpcyBpcyB0aGUga2luZCBvZiBzdHVmZiB0aGF0IHRoZSBrZXJu
ZWwgaXMgZGVsZWdhdGluZyB0byB1c2VyIGFwcGxpY2F0aW9uIChxZW11KSB0byBkbyBhcyBpdCBj
YW4gYmUgcXVpdGUgY29tcGxleC4NCg0KPj4gVGhlcmUgaXMgbm90IHN1Y2ggYSBkZWNvZGVyIGlu
IFhlbiByaWdodCBub3cgd2hpY2ggbWVhbnMgdGhvc2Uga2luZCBvZiBhY2Nlc3NlcyBhcmUgbm90
IHN1cHBvcnRlZCBmb3IgZW11bGF0ZWQgbW1pbyBhY2Nlc3Nlcy4NCj4gDQo+IEkgYW0gYWN0dWFs
bHkgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgd2hlcmUgSSB3aWxsIG5lZWQgdG8gbWFrZSB0aGUgY2hh
bmdlcyBpZiBJIGhhdmUgdG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBkZWNvZGVyLiBUaGUgcmVhc29u
IGJlaW5nIHRoaXMgaXNzdWUgaXMgYmVpbmcgZmFjZWQgYnkgb25lIG9mIG91ciBjdXN0b21lciBh
cHBsaWNhdGlvbi4NCj4gQmVzaWRlcyBjaGFuZ2luZyB0aGUgaW5zdHJ1Y3Rpb24gdG8gcHJldmVu
dCBwb3N0IGluY3JlbWVudCwgaXMgdGhlcmUgYW55IG90aGVyIG1pdGlnYXRpb24gPw0KDQpOb3Qg
dGhhdCBJIGtub3cgb2YuDQoNCj4gDQo+IFRoZSByZWFzb24gYmVpbmcgSSBkb24ndCBzZWUgYSB3
YXkgdG8gaW5zdHJ1Y3QgdGhlIGNvbXBpbGVyIHRvIG5vdCBnZW5lcmF0ZSB0aGUgcG9zdCBpbmRl
eGluZyBpbnN0cnVjdGlvbnMuDQoNCllvdSBjYW4gZGVmaW5lIGlvIGFjY2VzcyBmdW5jdGlvbnMg
aW5zdGVhZCBvZiBsZXR0aW5nIHRoZSBjb21waWxlciBnZW5lcmF0ZSB0aGUgcmVhZC93cml0ZSBm
dW5jdGlvbnMuDQpMb29rIGF0IGFyY2gvYXJtNjQvaW5jbHVkZS9hc20tYXJtL2lvLmggaW4gbGlu
dXggZm9yIGV4YW1wbGUuDQoNCj4+PiANCj4+PiBDYW4geW91IHBvaW50IG1lIGluIHNvdXJjZSB3
aGVyZSB0aGlzIGxpbWl0YXRpb24gaXMgc2V0ID8NCj4+IEluIHRoaXMgY2FzZSB0aGUgaXN2IGZp
ZWxkIGlzIHNldCB0byAwIHdoZW4gdGhlIGV4Y2VwdGlvbiBpcyByZWNlaXZlZCBieSBYZW4gd2hp
Y2ggbWVhbnMgdGhlIGRlY29kaW5nIHBhcnQgb2YgSFNSIGlzIGludmFsaWQgc28gWGVuIGlzIG5v
dCBoYW5kbGluZyB0aGUgZW11bGF0aW9uIG9mIHRoZSBhY2Nlc3MuDQo+PiBAanVsaWVuIGFuZCBT
dGVmYW5vOiBJIGhhdmUgYmVlbiBnb2luZyBhcm91bmQgYW5kIGFyb3VuZCB0aGUgY29kZSBidXQg
SSBjYW5ub3QgZmluZCB3aGVyZSB0aGUgdmFsaWQgYml0IG9mIGhzcl9kYWJ0IGlzIGNoZWNrZWQs
IGNvdWxkIHlvdSBoZWxwIG1lIGhlcmUgPw0KPiANCj4gQnkgYW55IGNoYW5jZSwgYXJlIHlvdSBy
ZWZlcnJpbmcgdG8gaHR0cHM6Ly9naXRodWIuY29tL1hpbGlueC94ZW4vYmxvYi80YmQyZGE1OGI1
YjAwOGY3NzQyOTAwN2EzMDdiNjU4ZGI5YzBmNjM2L3hlbi9hcmNoL2FybS9pby5jI0wxMjkgPw0K
DQpZZXMgdGhhbmtzIDotKSBJIHdhcyBzdHVjayBpbiB0cmFwcy5jIGJ1dCBpdCBpcyBhY3R1YWxs
eSBkb25lIGxhdGVyLg0KDQo+IA0KPiBBbHNvLCBwb3N0IGluZGV4aW5nIHdvcmtzIGZvciBzb21l
IG90aGVyIHJlZ2lzdGVycyAoZWcgR0lDQykuIFNvLCBJIGFtIGd1ZXNzaW5nIHRoYXQgdGhlIGJl
aGF2aW91ciBpcyBzcGVjaWZpYyBmb3IgR0lDRCBvciByYW5kb20gPw0KDQpEaXN0cmlidXRvciBp
cyBlbXVsYXRlZCBieSBYZW4uDQpDcHUgcGFydCBvZiB0aGUgR0lDIGlzIHVzaW5nIHRoZSBoYXJk
d2FyZSBzbyBYZW4gaXMgbm90IGVtdWxhdGluZyBpbyBhY2Nlc3MgdG8gdGhpcyBhcmVhLCB0aGUg
cHJvY2Vzc29yIGlzIHdoaWNoIGlzIHdoeSBpdCB3b3JrcyBpbiB0aGF0IGNhc2UuDQoNCkJlcnRy
YW5kDQoNCj4gDQo+IC0gQXlhbg0KPj4+PiBDb3VsZCB5b3UgdHJ5IHdpdGg6DQo+Pj4+IGFkZCB4
MSwgeDEsICM0DQo+Pj4+IGxkciB3MiwgW3gxXQ0KPj4+IA0KPj4+IFRoaXMgd29ya2VkIGZpbmUu
DQo+PiBHb29kIDotKQ0KPj4gQmVydHJhbmQNCj4+PiANCj4+PiAtQXlhbg0KPj4+PiBSZWdhcmRz
DQo+Pj4+IEJlcnRyYW5kDQo+Pj4+PiANCj4+Pj4+IEFuZCB0aGVuIEkgZ2V0IDotDQo+Pj4+PiBI
U1I9MHg5MjAwMDAwNSBwYz0weDAwMDAwMDQwMDAwY2E4IGd2YT0weDMwMDEwMDAgZ3BhPTB4MDAw
MDAwMDMwMDEwMDANCj4+Pj4+IA0KPj4+Pj4gVGhpcyBwcm9ibGVtIG9jY3VycyBvbmx5IHdoaWxl
IHJlYWRpbmcgdGhlIEdJQ0QgcmVnaXN0ZXJzIHdpdGggcG9zdCBpbmRleGluZy4gSWYgSSByZWFk
IHRoZSByZWdpc3RlciB3aXRoIHByZS1pbmRleGluZywgdGhlbiBJIGRvIG5vdCBzZWUgYW55IGFi
b3J0LiBBbHRlcm5hdGl2ZWx5LCBpZiBJIHJlYWQgR0lDQyByZWdpc3RlciB3aXRoIHBvc3QgaW5k
ZXhpbmcsIEkgZG9uJ3Qgc2VlIHRoZSBhYm9ydCBlaXRoZXIuDQo+Pj4+PiANCj4+Pj4+IEZyb20g
dGhlIEhTUiB2YWx1ZSwgSSBpbnRlcnByZXQgaXQgYXMNCj4+Pj4+IEVDID0gMTAwMTAwYiAjIERh
dGEgYWJvcnQgZnJvbSBsb3dlciBleGNlcHRpb24NCj4+Pj4+IElMID0gMWIgIyAzMiBiaXQgaW5z
dHJ1Y3Rpb24gdHJhcHBlZA0KPj4+Pj4gREZTQyA9IDEwMSAjIFRyYW5zbGF0aW9uIGZhdWx0IGxl
dmVsIDENCj4+Pj4+IA0KPj4+Pj4gT24gZGVidWdnaW5nLCBJIGZvdW5kIHRoYXQgdGhlIGFib3J0
IGlzIHRyaWdnZXJlZCBmcm9tDQo+Pj4+PiANCj4+Pj4+IHRyeV9oYW5kbGVfbW1pbygpDQo+Pj4+
PiB7IC4uLg0KPj4+Pj4gICAgLyogQWxsIHRoZSBpbnN0cnVjdGlvbnMgdXNlZCBvbiBlbXVsYXRl
ZCBNTUlPIHJlZ2lvbiBzaG91bGQgYmUgdmFsaWQgKi8NCj4+Pj4+ICAgIGlmICggIWRhYnQudmFs
aWQgKSB7DQo+Pj4+PiANCj4+Pj4+ICAgICAgICByZXR1cm4gSU9fQUJPUlQ7DQo+Pj4+PiAgICB9
DQo+Pj4+PiAuLi4NCj4+Pj4+IH0NCj4+Pj4+IA0KPj4+Pj4gRnJvbSB0aGUgQXJtIFY4IEFybSBz
cGVjcywgSSB1bmRlcnN0YW5kIHRoYXQgZGFidC52YWxpZCBpcyBJU1YsIGJpdFsyNF0gaW4gIklT
UyBlbmNvZGluZyBmb3IgYW4gZXhjZXB0aW9uIGZyb20gYSBEYXRhIEFib3J0Ii4NCj4+Pj4+IA0K
Pj4+Pj4gDQo+Pj4+PiBJIHNhdyB0aGF0IHRoZSBjYWxsZXIgaXMNCj4+Pj4+IA0KPj4+Pj4gZG9f
dHJhcF9ndWVzdF9zeW5jKCkgImNhc2UgSFNSX0VDX0RBVEFfQUJPUlRfTE9XRVJfRUwiDQo+Pj4+
PiB3aGVyZSBkYWJ0LnZhbGlkIGlzIGZhbHNlLg0KPj4+Pj4gSW4gdGhlIHN1Y2Nlc3Mgc2NlbmFy
aW8sIGRhYnQudmFsaWQgaXMgdHJ1ZS4NCj4+Pj4+IA0KPj4+Pj4gSSBjb3VsZCBub3QgZmluZCB0
aGUgY2FsbGVyIGZvciBkb190cmFwX2d1ZXN0X3N5bmMoKQ0KPj4+Pj4gDQo+Pj4+PiBTbywgY2Fu
IGFueW9uZSBoZWxwIG1lIGhlcmUNCj4+Pj4+IDEuIFdobyBpcyB0aGUgY2FsbGVyIGZvciBkb190
cmFwX2d1ZXN0X3N5bmMoKSA/DQo+Pj4+PiAyLiBBbnkgaWRlYSBvbiB3aGF0IHRoZSBpc3N1ZSBp
cyBhbmQgaG93IEkgY2FuIGRlYnVnIGl0IGZ1cnRoZXIgPw0KPj4+Pj4gDQo+Pj4+PiBLaW5kIHJl
Z2FyZHMsDQo+Pj4+PiBBeWFuDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:44:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:44:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226943.392348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnO2W-0001DN-UH; Wed, 17 Nov 2021 16:44:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226943.392348; Wed, 17 Nov 2021 16:44:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnO2W-0001DG-R2; Wed, 17 Nov 2021 16:44:04 +0000
Received: by outflank-mailman (input) for mailman id 226943;
 Wed, 17 Nov 2021 16:44:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnO2V-0001D6-84; Wed, 17 Nov 2021 16:44:03 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnO2V-0004if-3H; Wed, 17 Nov 2021 16:44:03 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnO2U-0007mD-Rh; Wed, 17 Nov 2021 16:44:02 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnO2U-0005G6-RE; Wed, 17 Nov 2021 16:44:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4UrsrXLXMhV1s9X1yp/leje0Z5h3geQRLSOSc+02F3Q=; b=28/kmXA90rr+7S0dcBQ2vx/k+U
	4ucVlUGv47jKeJ40X6UBmchA/0pfJnTeSqY2b0ctACgEdW1X7QDXC082DD2jr2M+mbyMfsteWzX5o
	gwBmHAQwm/VY9BZe9kcULNDmd+ME1ezSlTdtVb4x1Xp/FISthJq1vQfub1Y4wX/9D0gs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166161-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166161: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=03f9dfbb5183b3ade354a63dc16e8afb5f6d8652
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Nov 2021 16:44:02 +0000

flight 166161 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166161/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              03f9dfbb5183b3ade354a63dc16e8afb5f6d8652
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  495 days
Failing since        151818  2020-07-11 04:18:52 Z  494 days  480 attempts
Testing same since   166161  2021-11-17 04:20:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 83294 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:49:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:49:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226949.392362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnO7P-0001wG-N5; Wed, 17 Nov 2021 16:49:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226949.392362; Wed, 17 Nov 2021 16:49:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnO7P-0001w9-Jq; Wed, 17 Nov 2021 16:49:07 +0000
Received: by outflank-mailman (input) for mailman id 226949;
 Wed, 17 Nov 2021 16:49:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J8BY=QE=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mnO7O-0001w3-B0
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:49:06 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 44ee7341-47c6-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 17:49:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44ee7341-47c6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637167744;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=efPOHOrE6a5DVeX9XVytyKn2D82Ml2FQhhFZBoPDHW4=;
  b=hltcJY2gtmUX73rIPMQeQwbBqHujtYh482+o4CNr7BbwseEWAKZpb8mZ
   o6Ihy4aRkYkef1ZWI/hJL+VeHVrm5WS7CK8AmPf31d3iGMXsQf4JHwdEp
   hH0DObAucKLXtoKc7VMbf2mFGxDEx0AKjeyl4rqcTbBlUeyVs8sS5NbtU
   U=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: So6Z9e17AeByBW2r0VcftRu9ZuEinvVs39SmTGx/KBPn/ucqoKHM9deON5wkmuseVoVqZGzywm
 /Yt4Y7AdXsU18wUQrRtRNqoC0EjlUr3g6fFk+SB2d2pp/byvMVmR8l8P36wd6YMrjFxbuvxlR3
 A2aO9dYaRkYXKdKzLcEFe9pfpNgKfwUzzR+5D6x+rySy86bHzmVVpWYm+Igo/tCCNyVXhoklD1
 c1d78+18Yn340Qv8R2Jh7LvcLgB1hCHAEaxNzRLrz2M73spv2kMPoYf45borO8/dDDPYh1FjeY
 AtlXn2e/xNNQi12iJj7NPYwe
X-SBRS: 5.1
X-MesageID: 58049181
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:XCx6f6OQsOi2iBbvrR1okMFynXyQoLVcMsEvi/4bfWQNrUp3hGZRz
 GBLWGrTbPuPNmvyctx0Ydvn8EJVuJfRztQ3Ggto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Es8w7VRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoz6un9BJ6
 NFyj7u5FwEZE4Lmns05EDANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWdo2pEXTa+2i
 8wxThRWVT3fRDNzGk4JAp89vcmxulynbGgNwL6SjfVuuDWCpOBr65DyNPLFd9rMQt9a9m66j
 G/b+2XyAjkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24nNSQPoGd
 RZSoHB36/Fvqgr7FbERQiFUvlaPmR4cY/pULNcd4V+L+of7yQCwIistG2sphMMdiOc6Qjkj1
 1msltzvBCByvLD9dU9x5ot4vhvpZ3FLcDZqiTssCFJcvoK9+N1bYgfnF447SMaIYsvJ9SYcK
 txghAw3nP0tgMECzM1XFniX0mv39vAlouPYjzg7v15JDCslNOZJhKTysDA3CMqsyq7DFjFtW
 1BexaCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I9sPuGEheBg1aJdZEdMMX
 KM1kVkKjHO0FCH0BZKbnqrrU5h6pUQePYqNug/ogipmPcEqKV7vENBGbk+MxWH9+HXAYolkU
 ap3hf2EVC5AYYw+lWLeb75EjdcDm3BvrUuOFMuT50n2jtKjiIu9FO5t3K2mNbtisstpYWz9r
 r5iCid940kFDbClPHCIqdV7wJJjBSFTOK0aYvd/LoarSjeK0kl4YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:GRfi/ak9f9iQ2pcgvnJ6rYt/0pHpDfNwiWdD5ihNYBxZY6Wkfp
 +V/cjzhCWbtN9OYh4dcIi7Sda9qXO1z+8T3WBjB8bdYOCGghroEGgG1+vfKlLbalbDH4JmpM
 Jdmu1FeaHN5DtB/IbHCWuDYqwdKbC8mcjC74qzvhQdLz2CKZsQkjuRYTzrdHGeMTM2fabRY6
 Dsn/avyQDQHUg/X4CePD0oTuLDr9rEmNbNehgdHSMq7wGIkHeB9KP6OwLw5GZcbxp/hZMZtU
 TVmQ3w4auu99uhzAXH6mPV55NK3PP819p4AtCWgMR9EESvtu/oXvUlZ1SxhkFznAid0idtrD
 AKmWZ4Ay1H0QKUQohym2q05+Cv6kd015ao8y7ovZKqm72IeNt9MbsauWqcGSGpt3bJe7pHof
 92NiuixulqJAKFkyLn69fSURZ20kKyvHo5iOYWy2dSSI0EddZq3MAiFW5uYd099RjBmc0a+S
 hVfbbhzecTdUnfY2HSv2FpztDpVnMvHg2eSkxHvsCOyTBZkH1w0kNdnaUk7zk93YN4T4MB6/
 XPM6xumr0LRsgKbbhlDONERcesEGTCTR/FLWrXK1X6E6MMPW7LtvfMkfoIzfDvfIZNwIo5mZ
 zHXl8dvWkue1j2AcnLx5FP+gClehT3Yd0s8LAX23FUgMyIeFPbC1zLdLl1qbrTnxw2OLyuZ9
 +jfI9fCbvmJWvqcLw5qTHDZw==
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="58049181"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH] xen/smp: Support NULL IPI function pointers
Date: Wed, 17 Nov 2021 16:48:52 +0000
Message-ID: <20211117164852.16394-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

There are several cases where the act of interrupting a remote processor has
the required side effect.  Explicitly allow NULL function pointers so the
calling code doesn't have to provide a stub implementation.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

The wait parameter is a little weird.  It serves double duty and will confirm
that the IPI has been taken.  All it does is let you control whether you also
wait for the handler to complete first.  As such, it is effectively useless
with a stub function.

I don't particularly like folding into the .wait() path like that, but I
dislike it less than an if()/else if() and adding a 3rd cpumask_clear_cpu()
into the confusion which is this logic.
---
 xen/arch/x86/mm/hap/hap.c | 11 +----------
 xen/arch/x86/mm/p2m-ept.c | 11 ++---------
 xen/common/smp.c          |  4 ++++
 3 files changed, 7 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index 73575deb0d8a..5b269ef8b3bb 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -696,15 +696,6 @@ static void hap_update_cr3(struct vcpu *v, int do_locking, bool noflush)
     hvm_update_guest_cr3(v, noflush);
 }
 
-/*
- * Dummy function to use with on_selected_cpus in order to trigger a vmexit on
- * selected pCPUs. When the VM resumes execution it will get a new ASID/VPID
- * and thus a clean TLB.
- */
-static void dummy_flush(void *data)
-{
-}
-
 static bool flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
                       void *ctxt)
 {
@@ -737,7 +728,7 @@ static bool flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
      * not currently running will already be flushed when scheduled because of
      * the ASID tickle done in the loop above.
      */
-    on_selected_cpus(mask, dummy_flush, NULL, 0);
+    on_selected_cpus(mask, NULL, NULL, 0);
 
     return true;
 }
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index b2d57a3ee89a..1459f66c006b 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -1236,14 +1236,6 @@ static void ept_memory_type_changed(struct p2m_domain *p2m)
         ept_sync_domain(p2m);
 }
 
-static void __ept_sync_domain(void *info)
-{
-    /*
-     * The invalidation will be done before VMENTER (see
-     * vmx_vmenter_helper()).
-     */
-}
-
 static void ept_sync_domain_prepare(struct p2m_domain *p2m)
 {
     struct domain *d = p2m->domain;
@@ -1269,7 +1261,8 @@ static void ept_sync_domain_prepare(struct p2m_domain *p2m)
 
 static void ept_sync_domain_mask(struct p2m_domain *p2m, const cpumask_t *mask)
 {
-    on_selected_cpus(mask, __ept_sync_domain, p2m, 1);
+    /* Invalidation will be done in vmx_vmenter_helper(). */
+    on_selected_cpus(mask, NULL, NULL, 1);
 }
 
 void ept_sync_domain(struct p2m_domain *p2m)
diff --git a/xen/common/smp.c b/xen/common/smp.c
index 79f4ebd14502..854ebb91a803 100644
--- a/xen/common/smp.c
+++ b/xen/common/smp.c
@@ -87,10 +87,14 @@ void smp_call_function_interrupt(void)
 
     irq_enter();
 
+    if ( unlikely(!func) )
+        goto no_func;
+
     if ( call_data.wait )
     {
         (*func)(info);
         smp_mb();
+    no_func:
         cpumask_clear_cpu(cpu, &call_data.selected);
     }
     else
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 16:58:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 16:58:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226952.392372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnOFt-0003Mj-Ik; Wed, 17 Nov 2021 16:57:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226952.392372; Wed, 17 Nov 2021 16:57:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnOFt-0003Mc-Fm; Wed, 17 Nov 2021 16:57:53 +0000
Received: by outflank-mailman (input) for mailman id 226952;
 Wed, 17 Nov 2021 16:57:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=74+5=QE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnOFs-0003MW-1H
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 16:57:52 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7dac5677-47c7-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 17:57:49 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7dac5677-47c7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637168269;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=eq/wWhq5bg/oLeMPXks+gumnEIglVeAohywBXKHohpU=;
  b=UlpLHH6+h+envZy0pmuP/zASb4ErwzAJmXMNMQdA3urd7c+CA+/s+Exn
   qpoIESnUQh5XO3zmCmM2Ab5XpoDRDNDJg0lzKiFP9lehjwVsw3bs80KH8
   hwcIIS7Eti3QZB1LNZGuZOrGIyhSAMxE2bNYuEYG4/48In0YKDd7oFL6c
   Q=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: VbJi2NMkJbfKvKQaikCm7zuoNe6UDwG0kjslPbHaZw/c/yKbQfR29v3+JURMbuy9p0MeoJ9hnN
 rzKjcW/ftBhgNvCkRhgc22nQD12yBCvS3IuanGoOG1JSK2mOueqeS41qhfezLZZXJQ9Pl5yOpc
 OxJ4/3m5ApWefYO29cA3tWZ2UFJ6LrbmTc6cABTYwFM4wQ6ErgA4OoWApMvMLd2ob+zHl8u+ro
 CehMDflWVkLAPO8IpGSWzfaFkZaiOn4qWQRuySfbFlNpsqtLt7wJF05SmXCrRQDft33Juc1ECC
 J/B4ZrVkMrNoOwJAl+NUyTp/
X-SBRS: 5.1
X-MesageID: 58049829
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:uQmoUalYrpELyNhXBHPj5tPo5gx2IURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJOUT2DOPfeZGWhe4t+O4nkoUIHvMfVmNU1G1Bo+ys9RSMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29c32YPR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 PgSpKPzbgQVBffjtLk8TDZ2I31DBKITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBNPsM44F/Glp0BnSDOo8QICFSKLPjTNd9Gpg3pwfTayPD
 yYfQShFUU/9OkxOA2c4VLwnweiFmijUdwQN/Tp5ooJoujOOnWSdyoPFINfTP9CHW8hRtkKZv
 X7duXT0BAkAM96SwibD9Wij7sfNly7mXIMZFJWj6+VnxlaUwwQ7CQIUfUu2p+GjjUyzUM4ZL
 FYbkgInqKNjqmSwVNLzGRu1vBa5UgU0AoQKVbdgsUfUl/SSs13x6nU4oiBpRYM3i4wRRgARj
 HClwvL2KhJf7ICsRifInluLlg+aNS8QJG4EQCYLSwoZ/tXuyL0OYgLzosVLS/Ds0ICscd3k6
 3XT9XVl2e1P5SIe//zjpQivvt66mnTeoufZDC3zV3nt0A52bZXNi2eAuQmCtqYowGp0ozC8U
 Jk4dyq2sLBm4XKlznXlrAAx8FeBva7t3Nr02wAHInXZ327xk0NPhKgJiN2EGG9nM9wfZRjia
 1LJtAVa6fd7ZSXxMvcnPN7uV557kMAM8OgJsNiONbKihbArKme6ENxGPxbMjwgBbmBy+U3AB
 XtrWZn1VitLYUiW5DG3W/0cwdcWKtMWngvuqWTA503/i9K2PSfNIZ9caQfmRr1pvcus/VSOm
 /4CZpTi9vmqeLCnCsUh2dVIdg5iwLlSLc2elvG7gcbfeFc7Qz94VKeKqV7jEqQ895loei7z1
 ijVcmdTyUblhG2BLgOPa3t5b6joU4o5pnU+VRHA937xs5T6SYrwvqoZabUterwrqL5qwfJuF
 qFXcMScGPVfDD/A/m1FP5X6qYVjcjWthB6PYHX5MGRuIcY4Slyb4MLgcyvu6DIKUni9u/whr
 uDyzQjcW5cCGVhvVZ6EdPK1wlqtlnEBg+YuDVDQK9xedRy0oohnIiD8lNEtJMQIJUmRzzeWz
 V/OUxwZufPMs8k+99yQ3fKIqIKgEu1fGEtGHjaEsebqZHeCpmf6mN1OSueFezzZRVjYwqT6a
 LUH1ez4Pd0GgE1O79h2HYF0wP9s/NDovbJbkFhpRS2Zc1SxB7p8CXCaxs0T5LZVz7pUtAbqC
 EKC/t5WZeeANM//SQNDIQMkaqKI1O0OmymU5vMweR2o6Chy9buBcENTIxjT13ANcOoraNsok
 bU7pcobyw2jkR57YN+Jgxdd+3mIMnFdAb4ssYsXAdOzhwcmor2YjUcw1sMiDEmzVuhx
IronPort-HdrOrdr: A9a23:FnDMlKG1GiIIMSwJpLqFDpHXdLJyesId70hD6qkvc3Jom52j+P
 xGws526faVslYssHFJo6HnBEClewKgyXcV2/hqAV7GZmjbUQSTXeRfBOfZslnd8mjFh5JgPM
 RbAtlD4b/LfCBHZK/BiWHSebtQo6jkgdCVbKXlvgxQpGlRGt9dBmxCe3+m+yNNNW577c1TLu
 vi2iMLnUvrRV0nKuCAQlUVVenKoNPG0LrgfB49HhYirC2Dlymh5rLWGwWRmk52aUIC/Z4StU
 z+1yDp7KSqtP+2jjfaym/o9pxT3P/s0MFKCsCggtUcbh/slgGrToJ8XKDqhkF5nMifrHIR1P
 XcqRYpOMp+r1vXY2GOuBPonzLt1T4/gkWSgGOwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze
 Ziw3+Zn4A/N2KAoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vFoLA
 BXNrCe2B9qSyLZU5iA1VMfheBEH05DUStue3Jy+vB8iFNt7TREJ0hx/r1oop5PzuN7d3B+3Z
 W3Dk1frsA4ciYnV9MPOA4/e7rDNoXse2OFDIvAGyWtKEk4U0i936Ifpo9Fot2XRA==
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="58049829"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=n+J5Fg8Eqj7NrHkakT0T1naj4qeGpzWk8XQQYCZ5VBllE5v+oPYFyQMVeZJ2XeoNaYpb8nFZVCTnmbxcYHatLnZx4v98GDbNRk7S5q/j41Mn3BEvOAlAloX0wgaYMFyn7tUDDHc1z8Z7IV4ieQ3L1E0QwvTCpJXXmgxqywhK09XljIo++H7iiraAUItdTGYgdhMWHxUz5qUFrVv8foKb+1c2SZgj6Zt19g6nZ3Q4XQGQJx/+qPgzjlKIl5rMb7EfBOPNEHJbSZkyFzkO0YOaZLRYq6hZL0bSGQS3RHRUDqI96lC3IRrwpXx6QVV3PwK9q/pCzTVUsfvJDE7cKGlwbA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LLMuqhF5StVAg6CgYgwcWpx3AKbJN+4UVewL1yzV2y0=;
 b=F2g6vBx/ScJm4nuQFzfLip5Tmk9o+JHYHE54WlwfhBbVIWOebcLxuxzZkPcpDeYm5EJ2Oqc2xvd22dR/Souahb5g1E1PobGRCKR6Vis6HuwMqa+uiFRlIWsXLv5iXcp6X4usE8S8I4p516us09BDWe8ArBmEU/pdGS7DGIALNlSITJNYGMWVw221/PtTgAM6CtS4butcDHPBB/Dzarf+yyyxEDh09X+gd1lDCwIwS6NYIaYTpWGS0vrb/eypL1NJzko4MLmT7myb5kQgCAy8YZdk/UxotulNPJT/enkmcu7X2nPQ+Tk92GGGN5F4IVhj3Hj5+lFAlO8xm+rixcyYVg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LLMuqhF5StVAg6CgYgwcWpx3AKbJN+4UVewL1yzV2y0=;
 b=A4avnLQkylO5AV3f7gCPp3MrILzqPiREXt51jckZcDX0JCBei4TcOdmhjg0BAcI2gL1XFtZu1qGhK1piOMtSNUTqcmT12dg7hMWHel7B2XFBZ6HDhHvkRrOICKLNsuT0u3pNmwssw7FJc6x1ZPKyCB4gPo47emVhE+qlVLXKKIc=
Date: Wed, 17 Nov 2021 17:57:32 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ian Jackson <iwj@xenproject.org>
CC: Andrew Cooper <amc96@srcf.net>, <xen-devel@lists.xenproject.org>, "Jan
 Beulich" <jbeulich@suse.com>
Subject: Re: [PATCH for-4.16] efi: fix alignment of function parameters in
 compat mode [and 1 more messages]
Message-ID: <YZU0fIm7pLAc/z7n@Air-de-Roger>
References: <20211117153350.19823-1-roger.pau@citrix.com>
 <1927a35e-9902-bee8-f7f2-ab8463043d8e@srcf.net>
 <24981.10327.56927.848136@mariner.uk.xensource.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <24981.10327.56927.848136@mariner.uk.xensource.com>
X-ClientProxiedBy: PR0P264CA0223.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:100:1e::19) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ff52465e-b24c-4c86-57d7-08d9a9eb5c16
X-MS-TrafficTypeDiagnostic: DM6PR03MB4058:
X-Microsoft-Antispam-PRVS: <DM6PR03MB405818072DDAC90DA2C7ED4E8F9A9@DM6PR03MB4058.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:758;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 8N+ZKxR/zV12ZZFyHVzc07oKDCHyGdebujtAhWJdLDoFoyCk3h/w8atPspdl+qtxVr4V6dKkIj2utTO4K4s+pmPAVNtR198Q/TWEEGL+l4uRXrO712a1t680YZ9VrOxz8ioSjiXIU2a3KgyOfs7VsRlDlXyrOGReyjKbkicIatz34EDzjiumKtgTPyETfXKSAu7kAuNdxt94+4un60Ec90VbrLTae+BI892q5s+NYhUeJm5Jud4iv9cirq85ma3hWtywqGOw3Zo9Wwy5Tat2DkvGzwECOAQB80idZgOaDTagrD3/BiiSgD0i410gkYM48571WAcQ5ilfHOqoddn5Ze+gAY5KJ1DzQlUsYeHxJeLf6Re7Z8UYZvuWlXODRXeUGOiU/u5ts79dME4fGVyJRjrwz2ZApJM2yEtvG8eLDx+NYqY6twO0ADwhNGyUGzEZauDvxlIytPMIJoZqINz2RUk3tuHQjhpqMe2gGr4xvi+Qbv+whwoT6m+pqWUJ/esZ8vfvbmOYr6UmSeweJ6CPRMsoJq8D6zQFICfs+Fs2Hg463neebk9Mnu4lbAQVPNNfuln2CayTcUHiux1ZQfsqxxv1oOgxkqBQ9lbiphc6wasWG3Lf8qZwLucDFMdjzQoMTmaWtM9KjWedzyPe3Owhgw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(4744005)(26005)(85182001)(54906003)(956004)(6916009)(82960400001)(2906002)(5660300002)(86362001)(8936002)(6666004)(4326008)(6496006)(316002)(508600001)(38100700002)(8676002)(9686003)(66556008)(66476007)(186003)(6486002)(33716001)(66946007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RkNzaFRBcEd3ZUtnZkxOblpjNXhlVzBPZUUwd0xjRUdYOU9DRUNMMTl1Sm9G?=
 =?utf-8?B?RW00VWc2ckh1K1p6M1l4Q1dBeTUwdFpIMG9EQSt2ZWlpTjhwVEhqOHdtOTc0?=
 =?utf-8?B?aW1vTmozU1ZIcHYvMm51WDNqUVY4aTQ1a1p2L2ZsRHB3MXRadi8zMFQvQm03?=
 =?utf-8?B?cWwyODM0bktLaWNJdzBkUnFhaExQMEh6R0g0eDRoRVFOeFNhRUNMTnJrbkpW?=
 =?utf-8?B?ekVOdDhVcTZxbXpPNjI4c21yT3FWaDBBNi9vNHBuUVI3dnNiWldBUlpkMU8w?=
 =?utf-8?B?VzdhS21UUlBNOTJnTmcwWkF4OHBoT1R6SUdweWluUFNNT2tRY0NxS0c1SStJ?=
 =?utf-8?B?bzVDRlRFUjRZUFdzUEszc0pkYnFieVBpS2tFRkdiMmJpYWRzTUVobHZvVGsz?=
 =?utf-8?B?OGRWKzRKWU1UUHJVY2RjWjZQR092T1lWaUdsZk8wWnpka3pVRHZiYWlpc3JN?=
 =?utf-8?B?TWFTblhmVU5WZndXUk1vUnlzQzgyV2FRakR6VE1HMG1renh2RDlWN01OQzY2?=
 =?utf-8?B?SUhhaENtR2dDTmFMUWI1OTcvRGhZVlczcmZ5TCtKbTYyOEg3L3J0dFA4bFF0?=
 =?utf-8?B?R3hQa1dSd2NSc0h0MGM0ZjlQMWVZbXNzOE85RjRWZ09iVGtHMzFZcEplMStS?=
 =?utf-8?B?SDdLVytZVStIR3FKaC9LQTJoQkUrdGhhVWtUOWc4bmZ3S2c1ZU8yZEtuTUlZ?=
 =?utf-8?B?aVpjNVU4ZGlKZHJ3V2dyOWxNem1PL1daOWZCZ1hyMytwVXhXMCsrMGpuZnE5?=
 =?utf-8?B?WUdubWRmMTZxTGVJbXZMWkRRVldTUGtOcjYvRXgyYjRyeUQyaDh2T1pKeTJB?=
 =?utf-8?B?eHZ4cmgxd0pVclBnRldhRjVzZGdWZjFOQVBWMyszVDM4dGFIYm5vVVZEVWRp?=
 =?utf-8?B?MEJSUHU4WmR0Y1VlVWlxWkZxR1YrK0VuanNjUUhuQjhiK0xGVlRQTUVaOXBH?=
 =?utf-8?B?SDVNSncrWHYyL1dUNmlXMjZUN2NTdDJ1ci9pRDU2aXoweHFVMHEvN2gvS3Qw?=
 =?utf-8?B?d3JUZi9uSUNLc3hMdlhLbXhuanRPU2RORDFjL3lEd1BubW5yMVIrbE50Q0x3?=
 =?utf-8?B?VHh5ZmwvZVV0b25GNzFreWdhbzRNNG1TTTNHamN6YVVpanhvQ1pVRGMrN2hr?=
 =?utf-8?B?WURIaFRnMW9CRTNoZS9vSXBRemRLdytDVWZldDdXYS9lalk0VDJIZnFuMVlX?=
 =?utf-8?B?SFhhZk1rcnp6d294aUFmQlBHVCs3bjJLbEh4YUJHYzlvQkpLUU1HbUZLZit0?=
 =?utf-8?B?emliV210YkFzbkRKcWgvQjNDdThSckl2SmpFeEo4YkV3ZXQrR1diRmVSb2Np?=
 =?utf-8?B?SDYrRzFHUHEwVXlXMU1xcHE1NFFmZEExV2d4K0xoYVVlQkowbFpqa2pmc3Nt?=
 =?utf-8?B?N0laNzcwSTZpU293RklSYlROWG1IK3pCNXY2TnpnMzRZcm9XZzAvRmZsTG5K?=
 =?utf-8?B?K0N0Y1pLTEhQWCtMYWIyODl3QXJNbUZ5ZVEwdGtsdjJVSTR6blg5TXV3ZCs3?=
 =?utf-8?B?NElOZXNpTlQ5ZVV6QjNwNnhZYkdRcU1BeGJMb1REaHl2Wk9Wd0lZVlZ1L3F0?=
 =?utf-8?B?VzA2aXNFTUNQNDhZS2ZzdXhQSDQzd1dOazF5Q2RobmV0QmxLYlZTbWo3c2di?=
 =?utf-8?B?SzZOSjJvMUVWVEY5b2lMYmpiMm9oeVkrVEhJL3h0Vy9XYi9KbVEvVGp1dEdQ?=
 =?utf-8?B?aUlQWHVHN3JJR1dGenBkNTV6em13NmVTRTY2YXRPNlV0SlhmYmhhVVdBOFFu?=
 =?utf-8?B?Mk5PYXF6R3dsUkZaZDR3RlJwM25sc2tlcmdoTFR6Nmhqcjd3dTJjUEZyVmhp?=
 =?utf-8?B?QTMwUDBVcXNOUWx6WHkwRFV5N0d6Z3ozWXlJOGQ2bEh6UExEZlQwRGJqbW5s?=
 =?utf-8?B?YUpQbU9jTUgxQ3pQTlFnV3U5WmVabFRRTndKTWViWEJxRzRyQ2J2c2xRNDFR?=
 =?utf-8?B?eFo3TFloWkpZQVYxNFRHM1BOYmZmZHNuZTVOODZOZjJMUjh1NW5TbEI3SEsx?=
 =?utf-8?B?OUFkYUdBYmxJTFV4RWVKOXhqRWZWYlhvc3VrbXF6UDMyd1RidFZKNkQvMldZ?=
 =?utf-8?B?d0xIejc1UWs4aitpU3BZc1lrTDNjdS9CYnBhYmRtTjVXeTFNc2VVMDR5SW1x?=
 =?utf-8?B?QVJrdjlacCtNYVZMM3lpSGhFNE9wR1NqNDVwOER0MEFrb3h3YVk3UG84cjR2?=
 =?utf-8?Q?ZFLcGVqpt+HDwb3zloKAScg=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: ff52465e-b24c-4c86-57d7-08d9a9eb5c16
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2021 16:57:37.7789
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uZsRnI4weZfvhkZnJb4GO2fPKtoPu5rV92gJlPHxu4UC6I94atFg9TrXO5tsTO9xTHcwWH1fbGevBis/bucctA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4058
X-OriginatorOrg: citrix.com

On Wed, Nov 17, 2021 at 04:05:43PM +0000, Ian Jackson wrote:
> Andrew Cooper writes ("Re: [PATCH for-4.16] efi: fix alignment of function parameters in compat mode"):
> > This will compile, but the caller won't get any data back unless you 
> > copy the opposite way here...
> 
> Well spotted.  I feel quite the fool!

Indeed. Will send a fixed version tomorrow. Would you like me to keep
the release ack Ian?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 18:01:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 18:01:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226967.392399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnPFN-0001Z4-96; Wed, 17 Nov 2021 18:01:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226967.392399; Wed, 17 Nov 2021 18:01:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnPFN-0001Yx-5s; Wed, 17 Nov 2021 18:01:25 +0000
Received: by outflank-mailman (input) for mailman id 226967;
 Wed, 17 Nov 2021 18:01:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnPFL-0001Yr-Pd
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 18:01:23 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnPFK-00066o-K0; Wed, 17 Nov 2021 18:01:22 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=[192.168.21.213]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnPFK-0002Qv-D8; Wed, 17 Nov 2021 18:01:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=JKnAP9c8QonaYKOPlLir5wYycd9gkSqKBQnoSgO2SY8=; b=dv1dE3nUk+udqVD3fZrh5kzPu/
	WdeOJopFIK6lV/iyy1RGvbFr1hBNw9eGlfD23BcJGZVFUhoWoH/dPFMT+e7q9RM6TwhxDEp/srwOx
	V5te8klcjICR0d44/7nnhRf7CisZ9dRVoI9P3UefO2awKtPdaBO2hnicxi99WUW3IuyU=;
Message-ID: <c7bda1d6-355e-3240-1d09-59d7c13c4262@xen.org>
Date: Wed, 17 Nov 2021 18:01:19 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: Xen/ARM - Query about a data abort seen while reading GICD
 registers
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com>
 <CED537AF-44AA-41B8-9458-17A5C43FBECC@arm.com>
 <f91fd718-040e-88a3-ca96-30d1efe9a689@xilinx.com>
 <0ACF6308-EDB0-4B98-A029-1C7B23820198@arm.com>
 <636b9fe8-4c10-45f5-da95-513c87e5939f@xilinx.com>
 <BA07700B-D025-492D-A376-513408927F68@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <BA07700B-D025-492D-A376-513408927F68@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

I will combine my answers for this thread in one single e-mail.

On 17/11/2021 16:35, Bertrand Marquis wrote:
>> On 17 Nov 2021, at 16:21, Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
>>
>> Hi Bertrand,
>>
>> Many thanks for your response.
>>
>> On 17/11/2021 15:48, Bertrand Marquis wrote:
>>> Hi Ayan,
>>>> On 16 Nov 2021, at 16:24, Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
>>>>
>>>> Hi Bertrand,
>>>>
>>>> Thanks for looking into it.
>>>>
>>>> On 16/11/2021 15:36, Bertrand Marquis wrote:
>>>>> Hi Ayan,
>>>>>> On 16 Nov 2021, at 15:27, Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
>>>>>>
>>>>>> Hi Xen/Arm experts,
>>>>>>
>>>>>> I am facing a very strange issue while running a baremetal application as a DomU guest on arm64 platform.
>>>>>>
>>>>>> The baremetal app tries to read the GICD register with post indexing as follows :-
>>>>>> ldr x1, =0x3001000
>>>>>> ldr w2, [x1], #4 <<<------ PC = 0x40000ca8
>>>>> Increment on on load is not supported by the emulation layer.
>>>>
>>>> That is surprising. The reason being if I try to read the GICC register (0x3002000) with post indexing then it works fine.
>>> When the ISV bit is not set, Xen would have to decode the instruction to actually emulate the access and properly modify the registers values as long as providing the “emulated” access value.
>>
>> This is very interesting. Is this being done for any of the other instructions in Xen ?
> 
> No Xen is not trying to decode any instructions.

We actually decode some instructions (see arch/arm/decode.c). This was 
necessary because early revision of Cortex-A15 would not properly fill 
syndrome for Thumb instructions.

decode_instruction() could be extended to handle the specific 
instruction if needed.

> If you look at Linux source code, this is the kind of stuff that the kernel is delegating to user application (qemu) to do as it can be quite complex.
> 
>>> There is not such a decoder in Xen right now which means those kind of accesses are not supported for emulated mmio accesses.
>>
>> I am actually trying to understand where I will need to make the changes if I have to add support for the decoder. The reason being this issue is being faced by one of our customer application.
>> Besides changing the instruction to prevent post increment, is there any other mitigation ?
> 
> Not that I know of.

Decoding the instruction is the only solution if you don't want to 
update the baremetal app.

>>
>> The reason being I don't see a way to instruct the compiler to not generate the post indexing instructions.
In general, it is not safe to let the compiler decide for you how to 
access the MMIO registers as it can do all sort of optimization behind 
your back. That's why...

> 
> You can define io access functions instead of letting the compiler generate the read/write functions.
> Look at arch/arm64/include/asm-arm/io.h in linux for example.

... Linux provides io{read, write} helpers.

@Ayan, is the code written in assembly or C? If the latter, how is it 
written?

That said, the ldr writeback instructions should be safe to use. It 
happens that we never had OS using them before.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 18:26:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 18:26:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226973.392410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnPdd-0003ub-BD; Wed, 17 Nov 2021 18:26:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226973.392410; Wed, 17 Nov 2021 18:26:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnPdd-0003uU-7e; Wed, 17 Nov 2021 18:26:29 +0000
Received: by outflank-mailman (input) for mailman id 226973;
 Wed, 17 Nov 2021 18:26:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J8BY=QE=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mnPdb-0003uO-8Y
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 18:26:27 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dcf6532a-47d3-11ec-a9d2-d9f7a1cc8784;
 Wed, 17 Nov 2021 19:26:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dcf6532a-47d3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637173583;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=vcaFR5Wb8C5x2GC+ObWk4NMWkFGNk65Gx4Uiu2P/QjI=;
  b=KsOZF598E1K/+c8K/uG5lA+8PE1PP7frXeJQIbM3njsvY30br0mSMjZJ
   uaLr0LWYF5r6Lw45So3PbsoE597S/7NX1lOFzun2KW0b2ky9sDlQ27J9f
   2jFaGZT/TnQAeOy0MHNp3HISLZ2rPWHe7cVt8anQ1mCEMMPc42EQE15Qi
   U=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: rhJOP72HmMGe2sVr7bLTOpcWNEVWa27Nev+opEzb40WrCNuaSRa5VQLOhGxZAU6DjqqF660ByR
 HTMkbwRSTCpRpz6r0ZFXnMgPn/ONg9djjPRBWgPxl3mP4OkrMJ4kjK04bHVExhDcsWyYe0rc07
 N2LxBJ36XAH7O7Do+zRLFciVi2hELuTqrKhyoURu9h1wnCNn75NYgaNeZoBTlj+PdOXaGAI0Vj
 BKPmdTOJWbujl+O0jeGe/RT1RkQpIBPLVYkAxqkYESjlpFn4L4VPxUekZQgBVfWaHVpDzQ2HrO
 rwQVy/+fHuF22jFiraBHaCxy
X-SBRS: 5.1
X-MesageID: 57580380
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:qJeAJqvLHrib1Xf7+28Qb+BUP+fnVIVZMUV32f8akzHdYApBsoF/q
 tZmKTqGPPaIZGrye9p3bNzl8x4E6pXXz4AxG1BvrHxjFitD+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2IfhWGthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npl7sShaR8DPLX2mMctTxcCHyRwAbMF9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DO
 JdJMWE/NHwsZTVXNXMcNaM+mdv4n1vHSy1DjU6Ig7sOtj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKgkTKdi32TeDtHW2iYfnjS79HY4fCrC83vprm0GIgHweDgUMUlm2quX/jVSxM/p9A
 UEJ/islrYAp6VemCNL6WnWFTGWs50BGHYAKSqtjtV/LmvG8Dxul6nYsFWZQSMQMttcMRR8ay
 lHTk9bnOSIsv+jAIZ6CzYu8oTS3MCkTCGYNYy4YUAcIi+XeTJEPYgHnFYg6TvPs5jHhMXSpm
 m3R8nBi71kGpZdTj/3TwLzRv967SnElpCYR7x6fYG+q5xgRiGWNN93xsgizARqtwe+kori9U
 Josx5j2AAMmV8jleMmxrAMlRunBCxGtamO0vLKXN8N9nwlBAlb6FWyq3BlwJV1yLuEPciLzb
 UnYtGt5vcEIYyP6MvMoP9jgVqzGKJQM8/y/DZg4ifIUPPBMmPKvpnkyNSZ8IUiz+KTTrU3PE
 cjCKpv9ZZrrIa9m0CC3V48gPUwDnUgDKZfobcmjlXyPiOPGDFbMEOttGAbeP4gRsfLfyC2Io
 ok3Cid/40gGOAEISnKMqtB7wJFjBSVTOK0aXOQLLLPeeVQ/Rzl6YxITqJt4E7FYc21uvr+g1
 hmAtoVwkTITXFXLdleHbG5NcrTqUcotpH43J3V0b12px2IiccCk66JGL8k7erwu9epCy/9oT
 qZaJ5XcU6oXEjmXqS4AaZTdrZB5cEj5jwy5ICf4MiM0eIRtRlKV94a8LBfv7iQHEgG+qdA6/
 ++7zgreTJdaH1ZiAc/aZeiB1VS0uXRByut+U1GReotYeVn28ZgsICv016dlL8YJIBTF5z2by
 wfJXktI+biT+9c4qYCbi7qFooGlF/pFMnBbR2SLv6yrMST6/3a4xdMSWui/Yj2ABnj//7+vZ
 LsJwqikYuEHhltDr6F1D61vkfAl/9LqqrJXklZkEXHMYwj5A79sOCDbj8xGt6kLzb5FowqmH
 EmI/4ACa7mOPcrkFn8XJRYkMbvfha1FxGGK4KRnOlj+6Q924KGDABdbMBS7gSBAKKd4bdE+y
 uA7tc9KswGyh3LG6DpdYvy4I4hUEkE9bg==
IronPort-HdrOrdr: A9a23:I9mqc6oyJCayPRfDvKTLgf8aV5oneYIsimQD101hICG8cqSj+f
 xG+85rsiMc6QxhPE3I9urhBEDtex/hHP1OkOws1NWZLWrbUQKTRekIh+bfKlXbakvDH4VmtJ
 uIHZIQNDSJNykZsfrH
X-IronPort-AV: E=Sophos;i="5.87,241,1631592000"; 
   d="scan'208";a="57580380"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>
Subject: [PATCH] x86/hvm: Remove callback from paging->flush_tlb() hook
Date: Wed, 17 Nov 2021 18:26:03 +0000
Message-ID: <20211117182603.20057-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

TLB flushing is a hotpath, and function pointer calls are
expensive (especially under repoline) for what amounts to an identity
transform on the data.  Just pass the vcpu_bitmap bitmap directly.

As we use NULL for all rather than none, introduce a flush_vcpu() helper to
avoid the risk of logical errors from opencoding the expression.  This also
means the viridian callers can avoid writing an all-ones bitmap for the
flushing logic to consume.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Paul Durrant <paul@xen.org>

The result even compiles smaller:

  $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
  add/remove: 0/2 grow/shrink: 0/3 up/down: 0/-125 (-125)
  Function                                     old     new   delta
  flush_tlb                                    207     205      -2
  always_flush                                   6       -      -6
  need_flush                                     9       -      -9
  do_hvm_op                                   2434    2418     -16
  shadow_flush_tlb                             628     536     -92

but this is very much not the point of the patch.

It would be rather more efficient in this case and probably others for
for_each_vcpu() to iterate over d->vcpu[] than follow the v->next_vcpu pointer
chain (better locality of access), and also because then the vCPU id is the
loop induction variable, not a value read from memory.
---
 xen/arch/x86/hvm/hvm.c               |  7 +------
 xen/arch/x86/hvm/viridian/viridian.c | 31 +++++++++----------------------
 xen/arch/x86/mm/hap/hap.c            | 11 ++++++++---
 xen/arch/x86/mm/shadow/common.c      | 18 +++++++++++-------
 xen/arch/x86/mm/shadow/private.h     |  3 +--
 xen/include/asm-x86/paging.h         | 11 ++++-------
 6 files changed, 34 insertions(+), 47 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index eee365711d63..31e9474db093 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4047,17 +4047,12 @@ static void hvm_s3_resume(struct domain *d)
     }
 }
 
-static bool always_flush(void *ctxt, struct vcpu *v)
-{
-    return true;
-}
-
 static int hvmop_flush_tlb_all(void)
 {
     if ( !is_hvm_domain(current->domain) )
         return -EINVAL;
 
-    return paging_flush_tlb(always_flush, NULL) ? 0 : -ERESTART;
+    return paging_flush_tlb(NULL) ? 0 : -ERESTART;
 }
 
 static int hvmop_set_evtchn_upcall_vector(
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c
index b906f7b86a74..cab0bbee5cde 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -574,13 +574,6 @@ static void vpmask_fill(struct hypercall_vpmask *vpmask)
     bitmap_fill(vpmask->mask, HVM_MAX_VCPUS);
 }
 
-static bool vpmask_test(const struct hypercall_vpmask *vpmask,
-                        unsigned int vp)
-{
-    ASSERT(vp < HVM_MAX_VCPUS);
-    return test_bit(vp, vpmask->mask);
-}
-
 static unsigned int vpmask_first(const struct hypercall_vpmask *vpmask)
 {
     return find_first_bit(vpmask->mask, HVM_MAX_VCPUS);
@@ -669,17 +662,6 @@ static uint16_t hv_vpset_to_vpmask(const struct hv_vpset *set,
 #undef NR_VPS_PER_BANK
 }
 
-/*
- * Windows should not issue the hypercalls requiring this callback in the
- * case where vcpu_id would exceed the size of the mask.
- */
-static bool need_flush(void *ctxt, struct vcpu *v)
-{
-    struct hypercall_vpmask *vpmask = ctxt;
-
-    return vpmask_test(vpmask, v->vcpu_id);
-}
-
 union hypercall_input {
     uint64_t raw;
     struct {
@@ -714,6 +696,7 @@ static int hvcall_flush(const union hypercall_input *input,
         uint64_t flags;
         uint64_t vcpu_mask;
     } input_params;
+    unsigned long *vcpu_bitmap;
 
     /* These hypercalls should never use the fast-call convention. */
     if ( input->fast )
@@ -730,18 +713,19 @@ static int hvcall_flush(const union hypercall_input *input,
      * so err on the safe side.
      */
     if ( input_params.flags & HV_FLUSH_ALL_PROCESSORS )
-        vpmask_fill(vpmask);
+        vcpu_bitmap = NULL;
     else
     {
         vpmask_empty(vpmask);
         vpmask_set(vpmask, 0, input_params.vcpu_mask);
+        vcpu_bitmap = vpmask->mask;
     }
 
     /*
      * A false return means that another vcpu is currently trying
      * a similar operation, so back off.
      */
-    if ( !paging_flush_tlb(need_flush, vpmask) )
+    if ( !paging_flush_tlb(vcpu_bitmap) )
         return -ERESTART;
 
     output->rep_complete = input->rep_count;
@@ -760,6 +744,7 @@ static int hvcall_flush_ex(const union hypercall_input *input,
         uint64_t flags;
         struct hv_vpset set;
     } input_params;
+    unsigned long *vcpu_bitmap;
 
     /* These hypercalls should never use the fast-call convention. */
     if ( input->fast )
@@ -771,7 +756,7 @@ static int hvcall_flush_ex(const union hypercall_input *input,
         return -EINVAL;
 
     if ( input_params.flags & HV_FLUSH_ALL_PROCESSORS )
-        vpmask_fill(vpmask);
+        vcpu_bitmap = NULL;
     else
     {
         union hypercall_vpset *vpset = &this_cpu(hypercall_vpset);
@@ -807,13 +792,15 @@ static int hvcall_flush_ex(const union hypercall_input *input,
         rc = hv_vpset_to_vpmask(set, vpmask);
         if ( rc )
             return rc;
+
+        vcpu_bitmap = vpmask->mask;
     }
 
     /*
      * A false return means that another vcpu is currently trying
      * a similar operation, so back off.
      */
-    if ( !paging_flush_tlb(need_flush, vpmask) )
+    if ( !paging_flush_tlb(vcpu_bitmap) )
         return -ERESTART;
 
     output->rep_complete = input->rep_count;
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index 73575deb0d8a..84d7a1b7906a 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -705,8 +705,13 @@ static void dummy_flush(void *data)
 {
 }
 
-static bool flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
-                      void *ctxt)
+static bool flush_vcpu(const struct vcpu *v, const unsigned long *vcpu_bitmap)
+{
+    return !vcpu_bitmap || test_bit(v->vcpu_id, vcpu_bitmap);
+}
+
+/* Flush TLB of selected vCPUs.  NULL for all. */
+static bool flush_tlb(const unsigned long *vcpu_bitmap)
 {
     static DEFINE_PER_CPU(cpumask_t, flush_cpumask);
     cpumask_t *mask = &this_cpu(flush_cpumask);
@@ -721,7 +726,7 @@ static bool flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
     {
         unsigned int cpu;
 
-        if ( !flush_vcpu(ctxt, v) )
+        if ( !flush_vcpu(v, vcpu_bitmap) )
             continue;
 
         hvm_asid_flush_vcpu(v);
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 8c1b041f7135..de09ef5cae58 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -3069,9 +3069,13 @@ static void sh_clean_dirty_bitmap(struct domain *d)
 }
 
 
-/* Fluhs TLB of selected vCPUs. */
-bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
-                      void *ctxt)
+static bool flush_vcpu(const struct vcpu *v, const unsigned long *vcpu_bitmap)
+{
+    return !vcpu_bitmap || test_bit(v->vcpu_id, vcpu_bitmap);
+}
+
+/* Flush TLB of selected vCPUs.  NULL for all. */
+bool shadow_flush_tlb(const unsigned long *vcpu_bitmap)
 {
     static DEFINE_PER_CPU(cpumask_t, flush_cpumask);
     cpumask_t *mask = &this_cpu(flush_cpumask);
@@ -3084,12 +3088,12 @@ bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
 
     /* Pause all other vcpus. */
     for_each_vcpu ( d, v )
-        if ( v != current && flush_vcpu(ctxt, v) )
+        if ( v != current && flush_vcpu(v, vcpu_bitmap) )
             vcpu_pause_nosync(v);
 
     /* Now that all VCPUs are signalled to deschedule, we wait... */
     for_each_vcpu ( d, v )
-        if ( v != current && flush_vcpu(ctxt, v) )
+        if ( v != current && flush_vcpu(v, vcpu_bitmap) )
             while ( !vcpu_runnable(v) && v->is_running )
                 cpu_relax();
 
@@ -3103,7 +3107,7 @@ bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
     {
         unsigned int cpu;
 
-        if ( !flush_vcpu(ctxt, v) )
+        if ( !flush_vcpu(v, vcpu_bitmap) )
             continue;
 
         paging_update_cr3(v, false);
@@ -3118,7 +3122,7 @@ bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
 
     /* Done. */
     for_each_vcpu ( d, v )
-        if ( v != current && flush_vcpu(ctxt, v) )
+        if ( v != current && flush_vcpu(v, vcpu_bitmap) )
             vcpu_unpause(v);
 
     return true;
diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h
index 35efb1b984fb..e4db8d32546a 100644
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -922,8 +922,7 @@ static inline int sh_check_page_has_no_refs(struct page_info *page)
 }
 
 /* Flush the TLB of the selected vCPUs. */
-bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
-                      void *ctxt);
+bool shadow_flush_tlb(const unsigned long *vcpu_bitmap);
 
 #endif /* _XEN_SHADOW_PRIVATE_H */
 
diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h
index 996c2cd0383f..308f1115dde9 100644
--- a/xen/include/asm-x86/paging.h
+++ b/xen/include/asm-x86/paging.h
@@ -141,9 +141,7 @@ struct paging_mode {
     void          (*update_cr3            )(struct vcpu *v, int do_locking,
                                             bool noflush);
     void          (*update_paging_modes   )(struct vcpu *v);
-    bool          (*flush_tlb             )(bool (*flush_vcpu)(void *ctxt,
-                                                               struct vcpu *v),
-                                            void *ctxt);
+    bool          (*flush_tlb             )(const unsigned long *vcpu_bitmap);
 
     unsigned int guest_levels;
 
@@ -417,11 +415,10 @@ static always_inline unsigned int paging_max_paddr_bits(const struct domain *d)
     return bits;
 }
 
-static inline bool paging_flush_tlb(bool (*flush_vcpu)(void *ctxt,
-                                                       struct vcpu *v),
-                                    void *ctxt)
+/* Flush selected vCPUs TLBs.  NULL for all. */
+static inline bool paging_flush_tlb(const unsigned long *vcpu_bitmap)
 {
-    return paging_get_hostmode(current)->flush_tlb(flush_vcpu, ctxt);
+    return paging_get_hostmode(current)->flush_tlb(vcpu_bitmap);
 }
 
 #endif /* XEN_PAGING_H */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 17 18:37:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 18:37:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226979.392421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnPns-0005Sl-EN; Wed, 17 Nov 2021 18:37:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226979.392421; Wed, 17 Nov 2021 18:37:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnPns-0005Se-BC; Wed, 17 Nov 2021 18:37:04 +0000
Received: by outflank-mailman (input) for mailman id 226979;
 Wed, 17 Nov 2021 18:37:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnPnq-0005SY-U2
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 18:37:02 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnPnq-0006i0-Rl
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 18:37:02 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mnPnq-0005Fn-Ql
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 18:37:02 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mnPnl-0006YP-EZ; Wed, 17 Nov 2021 18:36:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=PDDgpZGQiCZnny5tv94ByOtLb5U7NPHA7iWyCo9dTZk=; b=R8FWbogJeMcZttRbj0ZNE8cTBM
	u3KdtwEjzCKHu3ClaZHV0xfsyfqbcolPYAint42yCkM69/B+jSUtjl8VXlvov+ct3XejsP0AuCCqq
	YBMNTSk1YLOeqsiSx1wmUJh+wTD8IB7SFIsz96fPu5t+87df163UxgQRZPWTfIUQHRoo=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24981.19400.547111.994160@mariner.uk.xensource.com>
Date: Wed, 17 Nov 2021 18:36:56 +0000
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <amc96@srcf.net>,
    <xen-devel@lists.xenproject.org>,
    "Jan  Beulich" <jbeulich@suse.com>
Subject: Re: [PATCH for-4.16] efi: fix alignment of function parameters in
 compat mode [and 1 more messages]
In-Reply-To: <YZU0fIm7pLAc/z7n@Air-de-Roger>
References: <20211117153350.19823-1-roger.pau@citrix.com>
	<1927a35e-9902-bee8-f7f2-ab8463043d8e@srcf.net>
	<24981.10327.56927.848136@mariner.uk.xensource.com>
	<YZU0fIm7pLAc/z7n@Air-de-Roger>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monn writes ("Re: [PATCH for-4.16] efi: fix alignment of function parameters in compat mode [and 1 more messages]"):
> On Wed, Nov 17, 2021 at 04:05:43PM +0000, Ian Jackson wrote:
> > Andrew Cooper writes ("Re: [PATCH for-4.16] efi: fix alignment of function parameters in compat mode"):
> > > This will compile, but the caller won't get any data back unless you 
> > > copy the opposite way here...
> > 
> > Well spotted.  I feel quite the fool!
> 
> Indeed. Will send a fixed version tomorrow. Would you like me to keep
> the release ack Ian?

Yes, please.

Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 19:11:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 19:11:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226984.392431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnQKU-00012I-4f; Wed, 17 Nov 2021 19:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226984.392431; Wed, 17 Nov 2021 19:10:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnQKU-00012B-1A; Wed, 17 Nov 2021 19:10:46 +0000
Received: by outflank-mailman (input) for mailman id 226984;
 Wed, 17 Nov 2021 19:10:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnQKS-000125-Vd
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 19:10:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnQKS-0007FH-BR; Wed, 17 Nov 2021 19:10:44 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=[192.168.21.213]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnQKS-0007Yp-57; Wed, 17 Nov 2021 19:10:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ixSqz082dGPhsyQYum/hrWCFts0RgIerSewKYlSSJeI=; b=C/dp2eofIb64dqhIdNhVyCo/yt
	zxtbztinabOazBuIA8n4wwYze7BUpsKQqIgj1aIfcBVoN9sJkZVUim5P8gWK/tUx69H7A09BBQDw6
	7et6YZpWeobdIYfwEvx4p0hqnIyF0ho/anNYO5TOOC6tPsj77ro1IucYXQwP7iXf5jac=;
Message-ID: <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
Date: Wed, 17 Nov 2021 19:10:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 George Dunlap <george.dunlap@citrix.com>, Juergen Gross <jgross@suse.com>,
 Dario Faggioli <dfaggioli@suse.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
 <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
 <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

(Prunning some CC to just leave Arm and sched folks)

On 17/11/2021 12:07, Bertrand Marquis wrote:
> Hi Julien,

Hi Bertrand,

>> On 17 Nov 2021, at 11:48, Julien Grall <julien@xen.org> wrote:
>>
>> On 17/11/2021 11:16, Bertrand Marquis wrote:
>>> Hi Julien,
>>
>> Hi,
>>
>>>> On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
>>>>
>>>> Hi Luca,
>>>>
>>>> On 17/11/2021 09:57, Luca Fancellu wrote:
>>>>> Currently Xen creates a default cpupool0 that contains all the cpu brought up
>>>>> during boot and it assumes that the platform has only one kind of CPU.
>>>>> This assumption does not hold on big.LITTLE platform, but putting different
>>>>> type of CPU in the same cpupool can result in instability and security issues
>>>>> for the domains running on the pool.
>>>>
>>>> I agree that you can't move a LITTLE vCPU to a big pCPU. However...
>>>>
>>>>> For this reason this serie introduces an architecture specific way to create
>>>>> different cpupool at boot time, this is particularly useful on ARM big.LITTLE
>>>>> platform where there might be the need to have different cpupools for each type
>>>>> of core, but also systems using NUMA can have different cpu pool for each node.
>>>>
>>>> ... from my understanding, all the vCPUs of a domain have to be in the same cpupool. So with this approach it is not possible:
>>>>    1) to have a mix of LITTLE and big vCPUs in the domain
>>>>    2) to create a domain spanning across two NUMA nodes
>>>>
>>>> So I think we need to make sure that any solutions we go through will not prevent us to implement those setups.
>>> The point of this patch is to make all cores available without breaking the current behaviour of existing system.
>>
>> I might be missing some context here. By breaking current behavior, do you mean user that may want to add "hmp-unsafe" on the command line?
> 
> Right, with hmp-unsafe the behaviour is now the same as without, only extra cores are parked in other cpupools.
> 
> So you have a point in fact that behaviour is changed for someone who was using hmp-unsafe before if this is activated.
> The command line argument suggested by Jurgen definitely makes sense here.
> 
> We could instead do the following:
> - when this is activated in the configuration, boot all cores and park them in different pools (depending on command line argument). Current behaviour not change if other pools are not used (but more cores will be on in xen)

 From my understanding, it is possible to move a pCPU in/out a pool 
afterwards. So the security concern with big.LITTLE is still present, 
even though it would be difficult to hit it.

I am also concerned that it would be more difficult to detect any 
misconfiguration. So I think this option would still need to be turned 
on only if hmp-unsafe are the new command line one are both on.

If we want to enable it without hmp-unsafe on, we would need to at least 
lock the pools.

> - when hmp-unsafe is on, this feature will be turned of (if activated in configuration) and all cores would be added in the same pool.
> 
> What do you think ?

I am split. On one hand, this is making easier for someone to try 
big.LITTLE as you don't have manually pin vCPUs. On the other hand, this 
is handling a single use-case and you would need to use hmp-unsafe and 
pinning if you want to get more exotic setup (e.g. a domain with 
big.LITTLE).

Another possible solution is to pin dom0 vCPUs (AFAIK they are just 
sticky by default) and then create the pools from dom0 userspace. My 
assumption is for dom0less we would want to use pinning instead.

That said I would like to hear from Xilinx and EPAM as, IIRC, they are 
already using hmp-unsafe in production.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 20:33:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 20:33:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226990.392446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnRbt-00007I-6v; Wed, 17 Nov 2021 20:32:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226990.392446; Wed, 17 Nov 2021 20:32:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnRbt-000078-3P; Wed, 17 Nov 2021 20:32:49 +0000
Received: by outflank-mailman (input) for mailman id 226990;
 Wed, 17 Nov 2021 20:32:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnRbr-00006y-Pe; Wed, 17 Nov 2021 20:32:47 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnRbr-0000F2-J9; Wed, 17 Nov 2021 20:32:47 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnRbr-0000ud-9G; Wed, 17 Nov 2021 20:32:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnRbr-0008Bf-8j; Wed, 17 Nov 2021 20:32:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=wUixW35im7mCXc5n4O3cpoBV78OQ/8FEyWVWZtajB+0=; b=6Ccs9xzChQ/1MkYcMPn3DmFIrA
	8Tv3qp7ojkKlWSq2VALYJyHRKiqOOblCz76ajrGUJvKGuNqLmm+aSH8NVxqzg2+tj51d+Ndky7C+v
	Xj64qnVKA3WJykffW9MKpq9En2OHOnMnNV8GX2/9giCPTVyhSjKWizCz3tJl/ggqPTGQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166176-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166176: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1cffc48f1e1f972daeec579c62de4bb24f3152fa
X-Osstest-Versions-That:
    xen=306e0afbb382ec10081ab277c866e9e7c212dda5
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Nov 2021 20:32:47 +0000

flight 166176 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166176/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1cffc48f1e1f972daeec579c62de4bb24f3152fa
baseline version:
 xen                  306e0afbb382ec10081ab277c866e9e7c212dda5

Last test of basis   166162  2021-11-17 08:01:37 Z    0 days
Testing same since   166168  2021-11-17 12:02:59 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   306e0afbb3..1cffc48f1e  1cffc48f1e1f972daeec579c62de4bb24f3152fa -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 21:27:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 21:27:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.226996.392459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnSSI-00056d-0K; Wed, 17 Nov 2021 21:26:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 226996.392459; Wed, 17 Nov 2021 21:26:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnSSH-00056W-Tk; Wed, 17 Nov 2021 21:26:57 +0000
Received: by outflank-mailman (input) for mailman id 226996;
 Wed, 17 Nov 2021 21:26:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnSSG-00056Q-3e
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 21:26:56 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnSSE-00017s-Ow; Wed, 17 Nov 2021 21:26:54 +0000
Received: from gw1.octic.net ([81.187.162.82] helo=[10.0.1.193])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnSSE-0008FS-J0; Wed, 17 Nov 2021 21:26:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=gSMmsE0cVcj2jqOMEN+Z+yv4TFLSQtEc4bWoWX4Jifw=; b=Tdmi6yF+pObdDrc6SQO1Q/cmH7
	7ID/FneEMQIeN5quQ1MzUH9OaKZtpuwVTb7J+QYuV4gku9sdKyVsRmFHKRjYPr3KFoWsJIkWydBXe
	BMho/ku78CSdol/yRIW5f1+g3+7FOOw1cLvBuWcWfjh+VlzZbUvtBNLQuaoOZDiIJ07o=;
Message-ID: <a0f371ce-df7f-fdfb-f4f2-f963d2468480@xen.org>
Date: Wed, 17 Nov 2021 21:26:51 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 6/7] xen/arm: process pending vPCI map/unmap operations
To: Oleksandr Andrushchenko <andr2000@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 jbeulich@suse.com, andrew.cooper3@citrix.com, george.dunlap@citrix.com,
 paul@xen.org, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-7-andr2000@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211105063326.939843-7-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> vPCI may map and unmap PCI device memory (BARs) being passed through which
> may take a lot of time. For this those operations may be deferred to be
> performed later, so that they can be safely preempted.
> 
> Currently this deferred processing is happening in common IOREQ code
> which doesn't seem to be the right place for x86 and is even more
> doubtful because IOREQ may not be enabled for Arm at all.
> So, for Arm the pending vPCI work may have no chance to be executed
> if the processing is left as is in the common IOREQ code only.
> For that reason make vPCI processing happen in arch specific code.
> 
> Please be aware that there are a few outstanding TODOs affecting this
> code path, see xen/drivers/vpci/header.c:map_range and
> xen/drivers/vpci/header.c:vpci_process_pending.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 21:34:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 21:34:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227001.392471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnSYw-0006VT-Ne; Wed, 17 Nov 2021 21:33:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227001.392471; Wed, 17 Nov 2021 21:33:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnSYw-0006VM-Kk; Wed, 17 Nov 2021 21:33:50 +0000
Received: by outflank-mailman (input) for mailman id 227001;
 Wed, 17 Nov 2021 21:33:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnSYv-0006VG-CU
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 21:33:49 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnSYu-0001ET-Li; Wed, 17 Nov 2021 21:33:48 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.25.43]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnSYu-0000Bn-FK; Wed, 17 Nov 2021 21:33:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=4xzMYiQsssrDbPr0SJyETYgvVubbl95/rxE64CtG+vs=; b=5W5gEQfsfTPzUfV3NNkiuCQ53u
	HNl6TG3i6AYtn6ulk95Hos5einNj8LcR6w0ygWHsdV4VynBw811FJ6XMWjAniGfwgXk7ClBxmrbmo
	R3Wgii30eKwGbuzhVVGasR1+UDftvFoIga879apcZlY5A1iqzemXsJ2nPPCA/4T/VqEk=;
Message-ID: <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
Date: Wed, 17 Nov 2021 21:33:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Oleksandr,

On 17/11/2021 06:56, Oleksandr Andrushchenko wrote:
> Hi, Julien!
> 
> On 16.11.21 20:48, Julien Grall wrote:
>> Hi Oleksander,
>>
>> On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> If a PCI host bridge device is present in the device tree, but is
>>> disabled, then its PCI host bridge driver was not instantiated.
>>> This results in the failure of the pci_get_host_bridge_segment()
>>> and the following panic during Xen start:
>>>
>>> (XEN) Device tree generation failed (-22).
>>> (XEN)
>>> (XEN) ****************************************
>>> (XEN) Panic on CPU 0:
>>> (XEN) Could not set up DOM0 guest OS
>>> (XEN) ****************************************
>>>
>>> Fix this by adding "linux,pci-domain" property for all device tree nodes
>>> which have "pci" device type, so we know which segments will be used by
>>> the guest for which bridges.
>>>
>>> Fixes: 4cfab4425d39 ("xen/arm: Add linux,pci-domain property for hwdom if not available.")
>>>
>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> ---
>>> New in v6
>>> ---
>>>    xen/arch/arm/domain_build.c        | 15 ++++++++++++++-
>>>    xen/arch/arm/pci/pci-host-common.c |  2 +-
>>>    xen/include/asm-arm/pci.h          |  8 ++++++++
>>>    3 files changed, 23 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>> index 491f5e2c316e..f7fcb1400c19 100644
>>> --- a/xen/arch/arm/domain_build.c
>>> +++ b/xen/arch/arm/domain_build.c
>>> @@ -753,9 +753,22 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
>>>            {
>>>                uint16_t segment;
>>>    +            /*
>>> +             * The node doesn't have "linux,pci-domain" property and it is
>>> +             * possible that:
>>> +             *  - Xen only has drivers for a part of the host bridges
>>> +             *  - some host bridges are disabled
>>> +             * Make sure we insert the correct "linux,pci-domain" property
>>> +             * in any case, so we know which segments will be used
>>> +             * by Linux for which bridges.
>>
>> The check above will check the node type is "pci". AFAICT, this would also cover PCI devices. I am not aware of any issue to add "linux,pci-domain" for them. However, this feels a bit odd.
>>
>>  From my understanding, a PCI device would always be described as a child of the hostbridges. So I would rework the 'if' to also check if the parent type is not "pci".
>>
> We may have "bridge -> bridge -> device" topology as well.

Do you have an example of Device-Tree?

> So, I prefer to have the check as it is.

I don't really like the idea to spuriously add "linux,pci-domain" to PCI 
DT node. But if there are no other solution, then this should at least 
be mentionned in the commit message and code.

[...]

> Yes, this sounds reasonable, I will add this change and print an error message so it is
> easier to understand what Xen doesn't like (it took me a while to debug and understand
> why I have "(XEN) Device tree generation failed (-22).")


Sounds good to me. The current error is indeed confusing.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 21:45:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 21:45:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227006.392481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnSkE-0007xM-Py; Wed, 17 Nov 2021 21:45:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227006.392481; Wed, 17 Nov 2021 21:45:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnSkE-0007xF-NA; Wed, 17 Nov 2021 21:45:30 +0000
Received: by outflank-mailman (input) for mailman id 227006;
 Wed, 17 Nov 2021 21:45:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnSkD-0007x9-Ee
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 21:45:29 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnSkC-0001QM-Bg; Wed, 17 Nov 2021 21:45:28 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.25.43]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnSkC-0000tP-3L; Wed, 17 Nov 2021 21:45:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=vYOymXebaSd5VmPWEZC/uCACL0l6vZrq2eJyzXp7pxs=; b=nAIrDJZrTlflES8u30AXsbxthm
	l1+N9zThp9d8iBm5OyhhR2EP4Pm8xUItZx/UCH8+5tMGa2bDkaODbNvrkLzNXWm0MVFCR9ha1ehJ9
	P7HI9YaVLAUqTAyi7OUKVfipK969wdJmU9r1rU3X2dwfcxx8qUE2dpZkXLmBDbyBblRU=;
Message-ID: <af9d192c-7445-1378-a81d-17101bad7245@xen.org>
Date: Wed, 17 Nov 2021 21:45:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 7/7] xen/arm: do not use void pointer in
 pci_host_common_probe
To: Oleksandr Andrushchenko <andr2000@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 jbeulich@suse.com, andrew.cooper3@citrix.com, george.dunlap@citrix.com,
 paul@xen.org, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-8-andr2000@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211105063326.939843-8-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> There is no reason to use void pointer while passing ECAM ops to the
> pci_host_common_probe function as it is anyway casted to struct pci_ecam_ops
> inside. For that reason remove the void pointer and pass struct pci_ecam_ops
> pointer as is.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

I was going to ack and push the patch. But then I couldn't apply the 
patch...

> 
> ---
> New in v4
> ---
>   xen/arch/arm/pci/ecam.c            | 4 ++--
>   xen/arch/arm/pci/pci-host-common.c | 6 ++----
>   xen/include/asm-arm/pci.h          | 5 +++--
>   3 files changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
> index 4f71b11c3057..6aeea12a68bf 100644
> --- a/xen/arch/arm/pci/ecam.c
> +++ b/xen/arch/arm/pci/ecam.c
> @@ -24,8 +24,8 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
>                                  pci_sbdf_t sbdf, uint32_t where)
>   {
>       const struct pci_config_window *cfg = bridge->cfg;
> -    struct pci_ecam_ops *ops =
> -        container_of(bridge->ops, struct pci_ecam_ops, pci_ops);
> +    const struct pci_ecam_ops *ops =
> +        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
>       unsigned int devfn_shift = ops->bus_shift - 8;
>       void __iomem *base;
>   
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
> index 6af845ab9d6c..1aad664b213e 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -194,15 +194,13 @@ static int pci_bus_find_domain_nr(struct dt_device_node *dev)
>       return domain;
>   }
>   
> -int pci_host_common_probe(struct dt_device_node *dev, const void *data)
> +int pci_host_common_probe(struct dt_device_node *dev,
> +                          const struct pci_ecam_ops *ops)
>   {
>       struct pci_host_bridge *bridge;
>       struct pci_config_window *cfg;
> -    struct pci_ecam_ops *ops;
>       int err;

... in staging, the code has an two additional lines here:

     if ( dt_device_for_passthrough(dev) )
         return 0;

Is this series relying on patch that are not yet upstreamed?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 21:53:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 21:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227012.392493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnSrU-00010f-MO; Wed, 17 Nov 2021 21:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227012.392493; Wed, 17 Nov 2021 21:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnSrU-00010Y-JK; Wed, 17 Nov 2021 21:53:00 +0000
Received: by outflank-mailman (input) for mailman id 227012;
 Wed, 17 Nov 2021 21:52:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnSrT-00010S-2J
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 21:52:59 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnSrR-0001Yb-MP; Wed, 17 Nov 2021 21:52:57 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.25.43]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnSrR-00014j-G8; Wed, 17 Nov 2021 21:52:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=uQ9M9maJldFdsKSJxr6/TT1y3h5jC4AqQtZknHTrpoE=; b=6XGShNuELR+IKCUPH5fIFl2AZc
	gD/EPO+/LUdXDTWjpXiJN9tVlpRDN1aqtumdpGHgxj4v0pFIQJjzuju5RLDmfXze8cxkp5JXdg6A5
	uxKS5InC7GsXKkOw0BIsmJOfh7u/ay6LyMBQ+7xQ+YDVRMpatpB7omxWvJr7ZoBMI00k=;
Message-ID: <9fbc1b5f-67e1-cf1d-0d03-463fd5de3209@xen.org>
Date: Wed, 17 Nov 2021 21:52:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH-4.16] arm/efi: Improve performance requesting filesystem
 handle
To: Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>
Cc: xen-devel@lists.xenproject.org, bertrand.marquis@arm.com,
 wei.chen@arm.com, iwj@xenproject.org,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20211116150624.7720-1-luca.fancellu@arm.com>
 <alpine.DEB.2.22.394.2111161235260.1412361@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111161235260.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 16/11/2021 20:38, Stefano Stabellini wrote:
> On Tue, 16 Nov 2021, Luca Fancellu wrote:
> So I think we can queue it in the Xen on ARM temporary for-next branch.

I have pushed it to for-next/4.17 on both my repo and gitlab (hopefully 
this triggered a CI run).

Cheers,

> 
> 
>> Tested in this configurations:
>>   - Bootloader loads modules and specify them as multiboot modules in DT:
>>     * combination of Dom0, DomUs, Dom0 and DomUs
>>   - DT specifies multiboot modules in DT using xen,uefi-binary property:
>>     * combination of Dom0, DomUs, Dom0 and DomUs
>>   - Bootloader loads a Dom0 module and appends it as multiboot module in DT,
>>     other multiboot modules are listed for DomUs using xen,uefi-binary
>>   - No multiboot modules in DT and no kernel entry in cfg file:
>>     * proper error thrown
>> ---
>>   xen/arch/arm/efi/efi-boot.h | 33 +++++++++++++++++++++------------
>>   1 file changed, 21 insertions(+), 12 deletions(-)
>>
>> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
>> index 458cfbbed4..c4ed412845 100644
>> --- a/xen/arch/arm/efi/efi-boot.h
>> +++ b/xen/arch/arm/efi/efi-boot.h
>> @@ -45,14 +45,17 @@ void __flush_dcache_area(const void *vaddr, unsigned long size);
>>   static int get_module_file_index(const char *name, unsigned int name_len);
>>   static void PrintMessage(const CHAR16 *s);
>>   static int allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
>> +                                EFI_FILE_HANDLE *dir_handle,
>>                                   const char *name,
>>                                   unsigned int name_len);
>>   static int handle_module_node(EFI_LOADED_IMAGE *loaded_image,
>> +                              EFI_FILE_HANDLE *dir_handle,
>>                                 int module_node_offset,
>>                                 int reg_addr_cells,
>>                                 int reg_size_cells,
>>                                 bool is_domu_module);
>>   static int handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
>> +                                       EFI_FILE_HANDLE *dir_handle,
>>                                          int domain_node);
>>   static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image);
>>   
>> @@ -648,10 +651,10 @@ static void __init PrintMessage(const CHAR16 *s)
>>    * index of the file in the modules array or a negative number on error.
>>    */
>>   static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
>> +                                       EFI_FILE_HANDLE *dir_handle,
>>                                          const char *name,
>>                                          unsigned int name_len)
>>   {
>> -    EFI_FILE_HANDLE dir_handle;
>>       module_name *file_name;
>>       CHAR16 *fname;
>>       union string module_name;
>> @@ -686,12 +689,11 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
>>       file_name->name_len = name_len;
>>   
>>       /* Get the file system interface. */
>> -    dir_handle = get_parent_handle(loaded_image, &fname);
>> +    if ( !*dir_handle )
>> +        *dir_handle = get_parent_handle(loaded_image, &fname);
>>   
>>       /* Load the binary in memory */
>> -    read_file(dir_handle, s2w(&module_name), &module_binary, NULL);
>> -
>> -    dir_handle->Close(dir_handle);
>> +    read_file(*dir_handle, s2w(&module_name), &module_binary, NULL);
>>   
>>       /* Save address and size */
>>       file_name->addr = module_binary.addr;
>> @@ -712,6 +714,7 @@ static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image,
>>    * Returns 1 if module is multiboot,module, 0 if not, < 0 on error
>>    */
>>   static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
>> +                                     EFI_FILE_HANDLE *dir_handle,
>>                                        int module_node_offset,
>>                                        int reg_addr_cells,
>>                                        int reg_size_cells,
>> @@ -744,8 +747,8 @@ static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
>>       file_idx = get_module_file_index(uefi_name_prop, uefi_name_len);
>>       if ( file_idx < 0 )
>>       {
>> -        file_idx = allocate_module_file(loaded_image, uefi_name_prop,
>> -                                        uefi_name_len);
>> +        file_idx = allocate_module_file(loaded_image, dir_handle,
>> +                                        uefi_name_prop, uefi_name_len);
>>           if ( file_idx < 0 )
>>               return file_idx;
>>       }
>> @@ -812,6 +815,7 @@ static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image,
>>    * Returns number of multiboot,module found or negative number on error.
>>    */
>>   static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
>> +                                              EFI_FILE_HANDLE *dir_handle,
>>                                                 int domain_node)
>>   {
>>       int module_node, addr_cells, size_cells, len;
>> @@ -842,8 +846,8 @@ static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image,
>>             module_node > 0;
>>             module_node = fdt_next_subnode(fdt, module_node) )
>>       {
>> -        int ret = handle_module_node(loaded_image, module_node, addr_cells,
>> -                                     size_cells, true);
>> +        int ret = handle_module_node(loaded_image, dir_handle, module_node,
>> +                                     addr_cells, size_cells, true);
>>           if ( ret < 0 )
>>               return ret;
>>   
>> @@ -862,6 +866,7 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>>   {
>>       int chosen, node, addr_len, size_len;
>>       unsigned int i = 0, modules_found = 0;
>> +    EFI_FILE_HANDLE dir_handle = NULL;
>>   
>>       /* Check for the chosen node in the current DTB */
>>       chosen = setup_chosen_node(fdt, &addr_len, &size_len);
>> @@ -881,20 +886,24 @@ static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image)
>>           if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
>>           {
>>               /* Found a node with compatible xen,domain; handle this node. */
>> -            ret = handle_dom0less_domain_node(loaded_image, node);
>> +            ret = handle_dom0less_domain_node(loaded_image, &dir_handle, node);
>>               if ( ret < 0 )
>>                   return ERROR_DT_MODULE_DOMU;
>>           }
>>           else
>>           {
>> -            ret = handle_module_node(loaded_image, node, addr_len, size_len,
>> -                                     false);
>> +            ret = handle_module_node(loaded_image, &dir_handle, node, addr_len,
>> +                                     size_len, false);
>>               if ( ret < 0 )
>>                    return ERROR_DT_MODULE_DOM0;
>>           }
>>           modules_found += ret;
>>       }
>>   
>> +    /* dir_handle can be allocated in allocate_module_file, free it if exists */
>> +    if ( dir_handle )
>> +        dir_handle->Close(dir_handle);
>> +
>>       /* Free boot modules file names if any */
>>       for ( ; i < modules_idx; i++ )
>>       {
>> -- 
>> 2.17.1
>>

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 22:22:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 22:22:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227017.392504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnTK4-0004AX-2L; Wed, 17 Nov 2021 22:22:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227017.392504; Wed, 17 Nov 2021 22:22:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnTK3-0004AQ-VE; Wed, 17 Nov 2021 22:22:31 +0000
Received: by outflank-mailman (input) for mailman id 227017;
 Wed, 17 Nov 2021 22:22:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tBek=QE=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnTK2-0004AK-E4
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 22:22:30 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d888dd6e-47f4-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 23:22:28 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:37148)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnTJq-000fc0-ma (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 17 Nov 2021 22:22:18 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id BC5491FBFC;
 Wed, 17 Nov 2021 22:22:17 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d888dd6e-47f4-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <fe2fc17e-540b-b900-4f93-ab87a89725ad@srcf.net>
Date: Wed, 17 Nov 2021 22:22:17 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 2/5] xen/xsm: Complete altcall conversion of xsm interface
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-3-andrew.cooper3@citrix.com>
 <41f3c740-dcb3-c58f-a937-8326d59002a5@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <41f3c740-dcb3-c58f-a937-8326d59002a5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 08/11/2021 09:11, Jan Beulich wrote:
> On 05.11.2021 14:55, Andrew Cooper wrote:
>> With alternative_call() capable of handling compound types, the three
>> remaining hooks can be optimised at boot time too.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
>> CC: Daniel Smith <dpsmith@apertussolutions.com>
>>
>> I'm on the fence as to whether to declare this as fixing "xsm: convert xsm_ops
>> hook calls to alternative call"
> Forgot to say a word on this: I'd consider Fixes: appropriate, as the
> commit's description says nothing about these having been left out,
> nor why.

Ok.  I'll insert one.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 22:37:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 22:37:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227022.392514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnTYR-0005gW-CV; Wed, 17 Nov 2021 22:37:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227022.392514; Wed, 17 Nov 2021 22:37:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnTYR-0005gP-9G; Wed, 17 Nov 2021 22:37:23 +0000
Received: by outflank-mailman (input) for mailman id 227022;
 Wed, 17 Nov 2021 22:37:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tBek=QE=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnTYP-0005g0-M0
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 22:37:21 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ece2874e-47f6-11ec-9787-a32c541c8605;
 Wed, 17 Nov 2021 23:37:20 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:37156)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnTYI-000rjr-pB (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 17 Nov 2021 22:37:14 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 944621FC53;
 Wed, 17 Nov 2021 22:37:14 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ece2874e-47f6-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <1a9aae9f-fbe0-7c12-3a3c-222583a52b00@srcf.net>
Date: Wed, 17 Nov 2021 22:37:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-5-andrew.cooper3@citrix.com>
 <e2a68ed1-e7b3-0862-65d6-0f0e1ca454c3@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 4/5] xen/xsm: Improve fallback handling in xsm_fixup_ops()
In-Reply-To: <e2a68ed1-e7b3-0862-65d6-0f0e1ca454c3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 08/11/2021 09:04, Jan Beulich wrote:
> On 05.11.2021 14:55, Andrew Cooper wrote:
>> +void __init xsm_fixup_ops(struct xsm_ops *ops)
>> +{
>> +    /*
>> +     * We make some simplifying assumptions about struct xsm_ops; that it is
>> +     * made exclusively of function pointers to non-init text.
>> +     *
>> +     * This allows us to walk over struct xsm_ops as if it were an array of
>> +     * unsigned longs.
>> +     */
>> +    unsigned long *dst = _p(ops);
>> +    unsigned long *src = _p(&dummy_ops);
> I'm afraid I consider this an abuse of _p(): It hides casting when
> that would better not be hidden (and there's then also a pointless
> step through "unsigned long" in the casting). I suppose this is
> also why "src" didn't end up "const unsigned long *" - with spelled
> out casts the casting away of const might have been more noticable.

I've changed to a const pointer, but opencoding _p() wouldn't make it 
any more likely for me to have spotted that it ought to have been const 
to begin with.

But ultimately it comes down to neatness/clarity.  This:

unsigned long *dst = _p(ops);
const unsigned long *src = _p(&dummy_ops);

is easier to read than this:

unsigned long *dst = (unsigned long *)ops;
const unsigned long *src = (const unsigned long *)&dummy_ops;

Fundamentally, I can do either, but I have a preference for the one 
which is easier to follow.

>> +    for ( ; dst < (unsigned long *)(ops + 1); src++, dst++ )
>> +    {
>> +        /*
>> +         * If you encounter this BUG(), then you've most likely added a new
>> +         * XSM hook but failed to provide the default implementation in
>> +         * dummy_ops.
>> +         *
>> +         * If not, then perhaps a function pointer to an init function, or
>> +         * something which isn't a function pointer at all.
>> +         */
>> +        BUG_ON(!is_kernel_text(*src));
> Just as a remark, not a request to change anything: A cause of this
> triggering may also be is_kernel_text() not covering all text
> sections. Some of what recently we've been talking about informally
> may lead to new text section variants appearing, and whether those
> would sensibly end up inside [_stext,_etext) is uncertain.

I'm afraid that I'm not aware of what you're referring to here.  But I 
don't think any good will come from having is_kernel_text() not covering 
suitable things.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 23:15:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 23:15:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227027.392525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnU8t-0001Dj-AF; Wed, 17 Nov 2021 23:15:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227027.392525; Wed, 17 Nov 2021 23:15:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnU8t-0001Dc-7M; Wed, 17 Nov 2021 23:15:03 +0000
Received: by outflank-mailman (input) for mailman id 227027;
 Wed, 17 Nov 2021 23:15:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tBek=QE=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnU8r-0001DW-87
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 23:15:01 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2eb26c04-47fc-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 00:15:00 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:47598)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnU8k-000Gsk-g7 (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 17 Nov 2021 23:14:54 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id C41861FD7A;
 Wed, 17 Nov 2021 23:14:53 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2eb26c04-47fc-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <ae979a87-41c0-51ec-db41-6bcc1eaa896f@srcf.net>
Date: Wed, 17 Nov 2021 23:14:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-6-andrew.cooper3@citrix.com>
 <e8a9d0bf-c9d7-a1ab-f50d-7ebaffbb3f8a@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 5/5] xen/xsm: Address hypercall ABI problems
In-Reply-To: <e8a9d0bf-c9d7-a1ab-f50d-7ebaffbb3f8a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 08/11/2021 09:50, Jan Beulich wrote:
> On 05.11.2021 14:55, Andrew Cooper wrote:
>> Currently, __HYPERVISOR_xsm_op enters xsm_ops.do_{xsm,compat}_op() which means
>> that if any other XSM module registers a handler, we'll break the hypercall
>> ABI totally by having the behaviour depend on the selected XSM module.
>>
>> There are 2 options:
>>   1) Rename __HYPERVISOR_xsm_op to __HYPERVISOR_flask_op.  If another XSM
>>      module wants hypercalls, they'll have to introduce a new top-level
>>      hypercall.
>>   2) Make the current flask_op() be common, and require new hypercalls to fit
>>      compatibly with xen_flask_op_t.  This can be done fairly easily by
>>      subdividing the .cmd space.
>>
>> In this patch, we implement option 2.
>>
>> Move the stub {do,compat}_xsm_op() implementation into a new xsm_op.c so we
>> can more easily do multi-inclusion compat magic.  Also add a new private.h,
>> because flask/hook.c's local declaration of {do,compat}_flask_op() wasn't
>> remotely safe.
>>
>> The top level now dispatches into {do,compat}_flask_op() based on op.cmd, and
>> handles the primary copy in/out.
> I'm not convinced this is the only reasonable way of implementing 2).
> I could also see number space to be separated in different ways, ...
>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
>> CC: Daniel Smith <dpsmith@apertussolutions.com>
>>
>> Only lightly tested.  Slightly RFC.  There are several things which aren't
>> great, but probably want addressing in due course.
>>
>>   1) The public headers probably want to lose the flask name (in a compatible
>>      way), now that the hypercall is common.  This probably wants to be
>>      combined with no longer taking a void handle.
> ... leaving per-module public headers and perhaps merely adding an
> abstracting
>
> struct xen_xsm_op_t {
>      uint32_t op;
>      ... /* placeholder */
> };
>
> or (making explicit one possible variant of number space splitting)
>
> union xen_xsm_op_t {
>      uint32_t op;
>      struct {
>          uint16_t cmd;
>          uint16_t mod;
>      } u;
>      ... /* placeholder */
> };
>
> in, say, a new public/xsm.h.

That doesn't work.  The ABI is fixed at sizeof(xen_flask_op_t) for all 
other modules, because a caller which doesn't know which module is in 
use must not have Xen over-read/write the object passed while it's 
trying to figure things out.

> As a result I consider this change either going too far (because of
> not knowing future needs) or not far enough (by e.g. leaving
> do_xsm_op() to use xen_flask_op_t.

Well - what it does is prevent someone from breaking the ABI with 
literally this patch

diff --git a/xen/xsm/silo.c b/xen/xsm/silo.c
index 3550dded7b4e..36b82fd3bd3e 100644
--- a/xen/xsm/silo.c
+++ b/xen/xsm/silo.c
@@ -100,6 +100,11 @@ static int silo_argo_send(const struct domain *d1, 
const struct domain *d2)

  #endif

+static long silo_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
+{
+    /* ... */
+}
+
  static const struct xsm_ops __initconstrel silo_xsm_ops = {
      .evtchn_unbound = silo_evtchn_unbound,
      .evtchn_interdomain = silo_evtchn_interdomain,
@@ -110,6 +115,7 @@ static const struct xsm_ops __initconstrel 
silo_xsm_ops = {
      .argo_register_single_source = silo_argo_register_single_source,
      .argo_send = silo_argo_send,
  #endif
+    .do_xsm_op = silo_do_xsm_op,
  };

  const struct xsm_ops *__init silo_init(void)


This is a damage limitation patch, but without knowing how the next 
module is going to want to do hypercalls differently, it is rather hard 
to judge what is appropriate.  I certainly didn't waste much time 
thinking about it.

>
>>   2) {do,compat}_xsm_op() are currently identical other than the dispatched-to
>>      functions because the size of xsm_flask_op_t is invariant with
>>      COMPAT-ness.  We could simplfy things by only having one, and dispatching
>>      to {do,compat}_*_op() directly, but I'm not sure whether the complexity is
>>      worth it.
> Perhaps not, I would say, not the least because (as said above) I
> think we shouldn't put in place restrictions which may get in the
> way of adding some future module.
>
> Extending struct xen_flask_op to become a generic XSM interface
> structure (or even just for Flask's own purposes) also is not as
> straightforward as it might seem: There's currently no provision
> for sub-structs which would grow the overall size of the structure:
> The copy_{to,from}_guest() invocations for existing sub-ops may not
> copy more that the present worth of sizeof(struct xen_flask_op).
> Yet your implementation of do_xsm_op() moves this deficiency from
> Flask to XSM.

Deficiency yes, but necessary to avoid breaking the ABI for caller which 
doesn't know which module is in use.  This cannot be fixed without 
swapping to approach 1.

>>   3) Bloat-o-meter says these changes add 16 extra bytes to dm_op() and I can't
>>      figure out what could possibly be causing this.
> Without comparing the object files in closer detail it's guesswork,
> but might this be register scheduling differences resulting from
> the changed sizeof(struct xsm_ops)? I've been observing similar
> seemingly unmotivated changes to generated code ...

The only thing it can plausibly be is a knock-on effect from the 
structure of xsm_ops changing.

Normally, I wouldn't be to surprised to see some displacement fields 
dropping from 4 to 1 byte as xsm_ops is getting smaller, but everything 
is alt_call()'d up so should be a 7-byte `call *disp32(%rip)`.

>> --- a/xen/xsm/flask/flask_op.c
>> +++ b/xen/xsm/flask/flask_op.c
>> @@ -22,6 +22,8 @@
>>   #include <objsec.h>
>>   #include <conditional.h>
>>   
>> +#include "../private.h"
> Kind of odd: I'd expect a file named such to not get included
> across directory levels, unless a single component was split in
> such a way (to me Flask and XSM core are separate, yet still
> related components).

Its all a tangled mess because logically separating XSM and Flask was a 
task done when SILO was introduced.

There is not an appropriately located file (under xen/xsm/ ) where the 
prototypes could reasonably live, and this felt like the lesser of the 
available evils.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 23:21:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 23:21:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227032.392537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnUEg-0002bZ-WF; Wed, 17 Nov 2021 23:21:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227032.392537; Wed, 17 Nov 2021 23:21:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnUEg-0002bS-TG; Wed, 17 Nov 2021 23:21:02 +0000
Received: by outflank-mailman (input) for mailman id 227032;
 Wed, 17 Nov 2021 23:21:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tBek=QE=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnUEg-0002bM-6I
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 23:21:02 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06d79b8f-47fd-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 00:21:01 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:47600)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnUEc-000KhY-hQ (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 17 Nov 2021 23:20:58 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 305C81FBFC;
 Wed, 17 Nov 2021 23:20:58 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06d79b8f-47fd-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <ab199183-2413-163c-bc28-9d0b3b4627c2@srcf.net>
Date: Wed, 17 Nov 2021 23:20:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 5/5] xen/xsm: Address hypercall ABI problems
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-6-andrew.cooper3@citrix.com>
 <e8a9d0bf-c9d7-a1ab-f50d-7ebaffbb3f8a@suse.com>
 <ae979a87-41c0-51ec-db41-6bcc1eaa896f@srcf.net>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <ae979a87-41c0-51ec-db41-6bcc1eaa896f@srcf.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 17/11/2021 23:14, Andrew Cooper wrote:
> On 08/11/2021 09:50, Jan Beulich wrote:
>> On 05.11.2021 14:55, Andrew Cooper wrote:
>>> Currently, __HYPERVISOR_xsm_op enters xsm_ops.do_{xsm,compat}_op() 
>>> which means
>>> that if any other XSM module registers a handler, we'll break the 
>>> hypercall
>>> ABI totally by having the behaviour depend on the selected XSM module.
>>>
>>> There are 2 options:
>>>   1) Rename __HYPERVISOR_xsm_op to __HYPERVISOR_flask_op.  If 
>>> another XSM
>>>      module wants hypercalls, they'll have to introduce a new top-level
>>>      hypercall.
>>>   2) Make the current flask_op() be common, and require new 
>>> hypercalls to fit
>>>      compatibly with xen_flask_op_t.  This can be done fairly easily by
>>>      subdividing the .cmd space.
>>>
>>> In this patch, we implement option 2.
>>>
>>> Move the stub {do,compat}_xsm_op() implementation into a new 
>>> xsm_op.c so we
>>> can more easily do multi-inclusion compat magic.  Also add a new 
>>> private.h,
>>> because flask/hook.c's local declaration of {do,compat}_flask_op() 
>>> wasn't
>>> remotely safe.
>>>
>>> The top level now dispatches into {do,compat}_flask_op() based on 
>>> op.cmd, and
>>> handles the primary copy in/out.
>> I'm not convinced this is the only reasonable way of implementing 2).
>> I could also see number space to be separated in different ways, ...
>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
>>> CC: Daniel Smith <dpsmith@apertussolutions.com>
>>>
>>> Only lightly tested.  Slightly RFC.  There are several things which 
>>> aren't
>>> great, but probably want addressing in due course.
>>>
>>>   1) The public headers probably want to lose the flask name (in a 
>>> compatible
>>>      way), now that the hypercall is common.  This probably wants to be
>>>      combined with no longer taking a void handle.
>> ... leaving per-module public headers and perhaps merely adding an
>> abstracting
>>
>> struct xen_xsm_op_t {
>>      uint32_t op;
>>      ... /* placeholder */
>> };
>>
>> or (making explicit one possible variant of number space splitting)
>>
>> union xen_xsm_op_t {
>>      uint32_t op;
>>      struct {
>>          uint16_t cmd;
>>          uint16_t mod;
>>      } u;
>>      ... /* placeholder */
>> };
>>
>> in, say, a new public/xsm.h.
>
> That doesn't work.  The ABI is fixed at sizeof(xen_flask_op_t) for all 
> other modules, because a caller which doesn't know which module is in 
> use must not have Xen over-read/write the object passed while it's 
> trying to figure things out.
>
>> As a result I consider this change either going too far (because of
>> not knowing future needs) or not far enough (by e.g. leaving
>> do_xsm_op() to use xen_flask_op_t.
>
> Well - what it does is prevent someone from breaking the ABI with 
> literally this patch
>
> diff --git a/xen/xsm/silo.c b/xen/xsm/silo.c
> index 3550dded7b4e..36b82fd3bd3e 100644
> --- a/xen/xsm/silo.c
> +++ b/xen/xsm/silo.c
> @@ -100,6 +100,11 @@ static int silo_argo_send(const struct domain 
> *d1, const struct domain *d2)
>
>  #endif
>
> +static long silo_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
> +{
> +    /* ... */
> +}
> +
>  static const struct xsm_ops __initconstrel silo_xsm_ops = {
>      .evtchn_unbound = silo_evtchn_unbound,
>      .evtchn_interdomain = silo_evtchn_interdomain,
> @@ -110,6 +115,7 @@ static const struct xsm_ops __initconstrel 
> silo_xsm_ops = {
>      .argo_register_single_source = silo_argo_register_single_source,
>      .argo_send = silo_argo_send,
>  #endif
> +    .do_xsm_op = silo_do_xsm_op,
>  };
>
>  const struct xsm_ops *__init silo_init(void)
>
>
> This is a damage limitation patch, but without knowing how the next 
> module is going to want to do hypercalls differently, it is rather 
> hard to judge what is appropriate.  I certainly didn't waste much time 
> thinking about it.
>
>>
>>>   2) {do,compat}_xsm_op() are currently identical other than the 
>>> dispatched-to
>>>      functions because the size of xsm_flask_op_t is invariant with
>>>      COMPAT-ness.  We could simplfy things by only having one, and 
>>> dispatching
>>>      to {do,compat}_*_op() directly, but I'm not sure whether the 
>>> complexity is
>>>      worth it.
>> Perhaps not, I would say, not the least because (as said above) I
>> think we shouldn't put in place restrictions which may get in the
>> way of adding some future module.
>>
>> Extending struct xen_flask_op to become a generic XSM interface
>> structure (or even just for Flask's own purposes) also is not as
>> straightforward as it might seem: There's currently no provision
>> for sub-structs which would grow the overall size of the structure:
>> The copy_{to,from}_guest() invocations for existing sub-ops may not
>> copy more that the present worth of sizeof(struct xen_flask_op).
>> Yet your implementation of do_xsm_op() moves this deficiency from
>> Flask to XSM.
>
> Deficiency yes, but necessary to avoid breaking the ABI for caller 
> which doesn't know which module is in use.  This cannot be fixed 
> without swapping to approach 1.
>
>>>   3) Bloat-o-meter says these changes add 16 extra bytes to dm_op() 
>>> and I can't
>>>      figure out what could possibly be causing this.
>> Without comparing the object files in closer detail it's guesswork,
>> but might this be register scheduling differences resulting from
>> the changed sizeof(struct xsm_ops)? I've been observing similar
>> seemingly unmotivated changes to generated code ...
>
> The only thing it can plausibly be is a knock-on effect from the 
> structure of xsm_ops changing.
>
> Normally, I wouldn't be to surprised to see some displacement fields 
> dropping from 4 to 1 byte as xsm_ops is getting smaller, but 
> everything is alt_call()'d up so should be a 7-byte `call *disp32(%rip)`.
>
>>> --- a/xen/xsm/flask/flask_op.c
>>> +++ b/xen/xsm/flask/flask_op.c
>>> @@ -22,6 +22,8 @@
>>>   #include <objsec.h>
>>>   #include <conditional.h>
>>>   +#include "../private.h"
>> Kind of odd: I'd expect a file named such to not get included
>> across directory levels, unless a single component was split in
>> such a way (to me Flask and XSM core are separate, yet still
>> related components).
>
> Its all a tangled mess because logically separating XSM and Flask was 
> a task done when SILO was introduced.
>
> There is not an appropriately located file (under xen/xsm/ ) where the 
> prototypes could reasonably live, and this felt like the lesser of the 
> available evils.

I guess it is worth adding, so we're all on the same page.

The thing I actually need to do is fix the fact that the prototypes for 
{do,compat}_flask_op() are local in xen/xsm/flask/hooks.c and not in a 
header shared with xen/xsm/flask/flask_op.c.

The thing I wanted to do is stop it being so trivially easy to break the 
ABI with a 5-line patch.


Any bikeshedding beyond that can happen in due course.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 23:32:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 23:32:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227038.392548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnUPP-00048T-5u; Wed, 17 Nov 2021 23:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227038.392548; Wed, 17 Nov 2021 23:32:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnUPP-00048M-2n; Wed, 17 Nov 2021 23:32:07 +0000
Received: by outflank-mailman (input) for mailman id 227038;
 Wed, 17 Nov 2021 23:32:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tBek=QE=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnUPO-00048G-77
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 23:32:06 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 927477c5-47fe-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 00:32:04 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:47612)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnUPH-000TGa-gH (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 17 Nov 2021 23:31:59 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id B09271FD7A;
 Wed, 17 Nov 2021 23:31:58 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 927477c5-47fe-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <4a97e977-da9e-5ca0-0013-75a2f9411de0@srcf.net>
Date: Wed, 17 Nov 2021 23:31:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
From: Andrew Cooper <amc96@srcf.net>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <6306ecd3-011b-51ee-65d3-107099b6dfa1@suse.com>
Content-Language: en-GB
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
In-Reply-To: <6306ecd3-011b-51ee-65d3-107099b6dfa1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 12/11/2021 09:57, Jan Beulich wrote:
> On 11.11.2021 18:57, Andrew Cooper wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -1234,15 +1234,18 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
>>       return 0;
>>   }
>>   
>> -static void do_domain_pause(struct domain *d,
>> -                            void (*sleep_fn)(struct vcpu *v))
>> +static void _domain_pause(struct domain *d, bool sync /* or nosync */)
>>   {
>>       struct vcpu *v;
>>   
>>       atomic_inc(&d->pause_count);
>>   
>> -    for_each_vcpu( d, v )
>> -        sleep_fn(v);
>> +    if ( sync )
>> +        for_each_vcpu ( d, v )
>> +            vcpu_sleep_sync(v);
>> +    else
>> +        for_each_vcpu ( d, v )
>> +            vcpu_sleep_nosync(v);
> Is this really better (for whichever reason) than
>
>      for_each_vcpu ( d, v )
>      {
>          if ( sync )
>              vcpu_sleep_sync(v);
>          else
>              vcpu_sleep_nosync(v);
>      }
>
> ?

Yes.  For cases where it can't be optimised out via constant 
propagation, it removes a conditional branch from the middle of a loop.  
I forget what the name for the compiler pass which does this is, but it 
makes a big difference given the way that L0 instruction caches and 
loop-stream-detectors/etc are build.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 17 23:57:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Nov 2021 23:57:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227043.392558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnUnr-0006VC-6d; Wed, 17 Nov 2021 23:57:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227043.392558; Wed, 17 Nov 2021 23:57:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnUnr-0006V5-3h; Wed, 17 Nov 2021 23:57:23 +0000
Received: by outflank-mailman (input) for mailman id 227043;
 Wed, 17 Nov 2021 23:57:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Y4lz=QE=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnUnp-0006Ug-Ro
 for xen-devel@lists.xenproject.org; Wed, 17 Nov 2021 23:57:21 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18748871-4802-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 00:57:19 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 87B55619E5;
 Wed, 17 Nov 2021 23:57:17 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18748871-4802-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637193437;
	bh=NrBsKGhaDZIw8SoTyBJoF3nIK0DO8mVjl4O1X5Zl62c=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=PuSX3k4UyxjCaBHnsyxUPAg3Vr8boxvf1zvTFiDdwGyEB2dSQU/T4h7I5oX1wWL/G
	 W4fdbeaHH7YQTVd/9GCHMGMPFy/7k0Ng1TRrcrK5y+ntyJiIIsd8LtL3MSBvnPm8fN
	 /DmjV06DOVS5HTf7WlzKTudMvNoXmkEX0CY6fRYpJ/EQq3tv/YcvYfweRYucU1ydb2
	 H90TEVQCpGJYR9QtBzjfPaZw3d6Fi0Mv4XNk1CMrZuJj49ZlMvn9jSUZtB24xtymjV
	 /Xg9YTqPquX6maj2oC1TvsyNajJXhLLznvqK4472xY4oeQj33yD1X+txcudbuDg+um
	 Q+Y16YG/gWrYA==
Date: Wed, 17 Nov 2021 15:57:16 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org, 
    bertrand.marquis@arm.com, wei.chen@arm.com, iwj@xenproject.org, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH-4.16] arm/efi: Improve performance requesting filesystem
 handle
In-Reply-To: <9fbc1b5f-67e1-cf1d-0d03-463fd5de3209@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111171553380.1412361@ubuntu-linux-20-04-desktop>
References: <20211116150624.7720-1-luca.fancellu@arm.com> <alpine.DEB.2.22.394.2111161235260.1412361@ubuntu-linux-20-04-desktop> <9fbc1b5f-67e1-cf1d-0d03-463fd5de3209@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 17 Nov 2021, Julien Grall wrote:
> On 16/11/2021 20:38, Stefano Stabellini wrote:
> > On Tue, 16 Nov 2021, Luca Fancellu wrote:
> > So I think we can queue it in the Xen on ARM temporary for-next branch.
> 
> I have pushed it to for-next/4.17 on both my repo and gitlab (hopefully this
> triggered a CI run).

Thanks, and yes it triggered the following run:
https://gitlab.com/xen-project/fusa/xen-integration/-/pipelines/411093550

which passed.

FYI if you want a quick link to check the latest runs for
xen-integration, this is what I use:
https://gitlab.com/xen-project/fusa/xen-integration/-/pipelines

(I really prefer the pipeline view because it is too easy to get lost
with the full list of individual jobs.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 00:32:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 00:32:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227048.392570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnVLf-0002ap-7G; Thu, 18 Nov 2021 00:32:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227048.392570; Thu, 18 Nov 2021 00:32:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnVLf-0002ai-3q; Thu, 18 Nov 2021 00:32:19 +0000
Received: by outflank-mailman (input) for mailman id 227048;
 Thu, 18 Nov 2021 00:32:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnVLd-0002ac-4g
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 00:32:17 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa6ac775-4806-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 01:32:15 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:37186)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnVLa-000IU2-oa (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 18 Nov 2021 00:32:14 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 682EC1FD7A;
 Thu, 18 Nov 2021 00:32:14 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa6ac775-4806-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <6935bdd8-6b4a-80f6-d134-768dc0d37abe@srcf.net>
Date: Thu, 18 Nov 2021 00:32:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-6-andrew.cooper3@citrix.com>
 <e220b6f2-3cb9-e7b0-6b74-4b266e4e7fb6@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 5/5] x86/ioapic: Drop function pointers from
 __ioapic_{read,write}_entry()
In-Reply-To: <e220b6f2-3cb9-e7b0-6b74-4b266e4e7fb6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 12/11/2021 10:43, Jan Beulich wrote:
> On 11.11.2021 18:57, Andrew Cooper wrote:
>> Function pointers are expensive, and the raw parameter is a constant from all
>> callers, meaning that it predicts very well with local branch history.
> The code change is fine, but I'm having trouble with "all" here: Both
> functions aren't even static, so while callers in io_apic.c may
> benefit (perhaps with the exception of ioapic_{read,write}_entry(),
> depending on whether the compiler views inlining them as warranted),
> I'm in no way convinced this extends to the callers in VT-d code.
>
> Further ISTR clang being quite a bit less aggressive about inlining,
> so the effects might not be quite as good there even for the call
> sites in io_apic.c.
>
> Can you clarify this for me please?

The way the compiler lays out the code is unrelated to why this form is 
an improvement.

Branch history is a function of "the $N most recently taken branches".  
This is because "how you got here" is typically relevant to "where you 
should go next".

Trivial schemes maintain a shift register of taken / not-taken results.  
Less trivial schemes maintain a rolling hash of (src addr, dst addr) 
tuples of all taken branches (direct and indirect).  In both cases, the 
instantaneous branch history is an input into the final prediction, and 
is commonly used to select which saturating counter (or bank of 
counters) is used.

Consider something like

while ( cond )
{
     memcpy(dst1, src1, 64);
     memcpy(dst2, src2, 7);
}

Here, the conditional jump inside memcpy() coping with the tail of the 
copy flips result 50% of the time, which is fiendish to predict for.

However, because the branch history differs (by memcpy()'s return 
address which was accumulated by the call instruction), the predictor 
can actually use two different taken/not-taken counters for the two 
different "instances" if the tail jump.  After a few iterations to warm 
up, the predictor will get every jump perfect despite the fact that 
memcpy() is a library call and the branches would otherwise alias.


Bringing it back to the code in question.  The "raw" parameter is an 
explicit true or false at the top of all call paths leading into these 
functions.  Therefore, an individual branch history has a high 
correlation with said true or false, irrespective of the absolute code 
layout.  As a consequence, the correct result of the prediction is 
highly correlated with the branch history, and it will predict 
perfectly[1] after a few times the path has been used.

~Andrew

[1] Obviously, it's not actually perfect outside of a synthetic 
example.  Aliasing in the predictor is a necessary property of keeping 
the logic small enough to provide an answer fast, but the less 
accidental aliasing there is, the faster the CPU performance in 
benchmarks, so incentives are in our favour here.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 01:11:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 01:11:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227053.392581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnVxi-00009o-9B; Thu, 18 Nov 2021 01:11:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227053.392581; Thu, 18 Nov 2021 01:11:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnVxi-00009g-5O; Thu, 18 Nov 2021 01:11:38 +0000
Received: by outflank-mailman (input) for mailman id 227053;
 Thu, 18 Nov 2021 01:11:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vl7d=QF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnVxg-00009Z-Sl
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 01:11:37 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77f3bf75-480c-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 02:11:35 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 6E38261B64;
 Thu, 18 Nov 2021 01:11:32 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77f3bf75-480c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637197892;
	bh=WHCgBZ0aPRt3WgEFcwwwa71uGk27HMJM2oDlG51kC/U=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=P8+RAozWhfszcaFtxMxOY5y9Oj0+LPBthFUkRPg8bL3xYvPrHPuRPfayQ9E9lP3Mw
	 Dsu/YDMkBL9UetUDyV1L6K0wysOKW8FtwJu2jJLlqmslxRtnO7iw61P5RyLbvuEi1E
	 YLw5ZZ/tQdxQ5IadO8pu7gsZlVoNtC5esvMe8uxI1BwmY+LW3MwZNbpRZn4DEWRour
	 47tH9AK1OErQmWmHwCYsD0lla6lMN7F90sod3LPqp0yESnku2zNmjCOXiVf6OKnKnd
	 0vwwPh/l+zD+tiqjhXBB0zzk8o3iOJHl6Lrye/D3++rfvSf1XYfxW1LQkMIXF4s2Um
	 yawTLBk04eOug==
Date: Wed, 17 Nov 2021 17:11:31 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: Xen/ARM - Query about a data abort seen while reading GICD
 registers
In-Reply-To: <c7bda1d6-355e-3240-1d09-59d7c13c4262@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111171701390.1412361@ubuntu-linux-20-04-desktop>
References: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com> <CED537AF-44AA-41B8-9458-17A5C43FBECC@arm.com> <f91fd718-040e-88a3-ca96-30d1efe9a689@xilinx.com> <0ACF6308-EDB0-4B98-A029-1C7B23820198@arm.com> <636b9fe8-4c10-45f5-da95-513c87e5939f@xilinx.com>
 <BA07700B-D025-492D-A376-513408927F68@arm.com> <c7bda1d6-355e-3240-1d09-59d7c13c4262@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-199181399-1637197892=:1412361"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-199181399-1637197892=:1412361
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 17 Nov 2021, Julien Grall wrote:
> I will combine my answers for this thread in one single e-mail.
> 
> On 17/11/2021 16:35, Bertrand Marquis wrote:
> > > On 17 Nov 2021, at 16:21, Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
> > > wrote:
> > > 
> > > Hi Bertrand,
> > > 
> > > Many thanks for your response.
> > > 
> > > On 17/11/2021 15:48, Bertrand Marquis wrote:
> > > > Hi Ayan,
> > > > > On 16 Nov 2021, at 16:24, Ayan Kumar Halder
> > > > > <ayan.kumar.halder@xilinx.com> wrote:
> > > > > 
> > > > > Hi Bertrand,
> > > > > 
> > > > > Thanks for looking into it.
> > > > > 
> > > > > On 16/11/2021 15:36, Bertrand Marquis wrote:
> > > > > > Hi Ayan,
> > > > > > > On 16 Nov 2021, at 15:27, Ayan Kumar Halder
> > > > > > > <ayan.kumar.halder@xilinx.com> wrote:
> > > > > > > 
> > > > > > > Hi Xen/Arm experts,
> > > > > > > 
> > > > > > > I am facing a very strange issue while running a baremetal
> > > > > > > application as a DomU guest on arm64 platform.
> > > > > > > 
> > > > > > > The baremetal app tries to read the GICD register with post
> > > > > > > indexing as follows :-
> > > > > > > ldr x1, =0x3001000
> > > > > > > ldr w2, [x1], #4 <<<------ PC = 0x40000ca8
> > > > > > Increment on on load is not supported by the emulation layer.
> > > > > 
> > > > > That is surprising. The reason being if I try to read the GICC
> > > > > register (0x3002000) with post indexing then it works fine.
> > > > When the ISV bit is not set, Xen would have to decode the instruction to
> > > > actually emulate the access and properly modify the registers values as
> > > > long as providing the “emulated” access value.
> > > 
> > > This is very interesting. Is this being done for any of the other
> > > instructions in Xen ?
> > 
> > No Xen is not trying to decode any instructions.
> 
> We actually decode some instructions (see arch/arm/decode.c). This was
> necessary because early revision of Cortex-A15 would not properly fill
> syndrome for Thumb instructions.
> 
> decode_instruction() could be extended to handle the specific instruction if
> needed.
> 
> > If you look at Linux source code, this is the kind of stuff that the kernel
> > is delegating to user application (qemu) to do as it can be quite complex.
> > 
> > > > There is not such a decoder in Xen right now which means those kind of
> > > > accesses are not supported for emulated mmio accesses.
> > > 
> > > I am actually trying to understand where I will need to make the changes
> > > if I have to add support for the decoder. The reason being this issue is
> > > being faced by one of our customer application.
> > > Besides changing the instruction to prevent post increment, is there any
> > > other mitigation ?
> > 
> > Not that I know of.
> 
> Decoding the instruction is the only solution if you don't want to update the
> baremetal app.
> 
> > > 
> > > The reason being I don't see a way to instruct the compiler to not
> > > generate the post indexing instructions.
> In general, it is not safe to let the compiler decide for you how to access
> the MMIO registers as it can do all sort of optimization behind your back.
> That's why...
> 
> > 
> > You can define io access functions instead of letting the compiler generate
> > the read/write functions.
> > Look at arch/arm64/include/asm-arm/io.h in linux for example.
> 
> ... Linux provides io{read, write} helpers.
> 
> @Ayan, is the code written in assembly or C? If the latter, how is it written?

I chatted with Ayan this morning and he will try to contact the original
author and get a proper answer, but I am pretty sure that it is written
in C. What makes it worse is that I believe the issue only started to
appear recently due to updating compiler (hence new compiler
optimizations.) Which means that this issue might become more common in
the future in other environments too :-(

I believe this is the code (source [1]):

    XScuGic_WriteReg(BaseAddress, XSCUGIC_DIST_EN_OFFSET, 0UL);

which expands to:

    #define XScuGic_WriteReg(BaseAddress, RegOffset, Data) \
    	(Xil_Out32(((BaseAddress) + (RegOffset)), ((u32)(Data))))

Which is:

    static INLINE void Xil_Out32(UINTPTR Addr, u32 Value)
    {
    	/* write 32 bit value to specified address */
    #ifndef ENABLE_SAFETY
    	volatile u32 *LocalAddr = (volatile u32 *)Addr;
    	*LocalAddr = Value;
    #else
    	XStl_RegUpdate(Addr, Value);
    #endif
    }

[1] https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/scugic/examples/xscugic_low_level_example.c


So it seems to be a pretty standard volatile write in a static inline
function.


> That said, the ldr writeback instructions should be safe to use. It happens
> that we never had OS using them before.

Yeah I agree... My two cents is that if we can find a way to decode the
instruction without a huge amount of code then it would be worth doing
it.
--8323329-199181399-1637197892=:1412361--


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 01:48:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 01:48:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227058.392592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnWWy-0003Py-2V; Thu, 18 Nov 2021 01:48:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227058.392592; Thu, 18 Nov 2021 01:48:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnWWx-0003Pr-VN; Thu, 18 Nov 2021 01:48:03 +0000
Received: by outflank-mailman (input) for mailman id 227058;
 Thu, 18 Nov 2021 01:48:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnWWw-0003Pl-Gt
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 01:48:02 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f6bd50c-4811-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 02:48:00 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:37188)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnWWk-0009gR-pK (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 18 Nov 2021 01:47:50 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 7F13F1FBF1;
 Thu, 18 Nov 2021 01:47:50 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f6bd50c-4811-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <23b5c4ae-d4da-3d01-42f3-17f1504a0a6a@srcf.net>
Date: Thu, 18 Nov 2021 01:47:49 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: Julien Grall <julien@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <dc639bdb-a025-4ddf-f328-8aca91bf9ea9@xen.org>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
In-Reply-To: <dc639bdb-a025-4ddf-f328-8aca91bf9ea9@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 12/11/2021 09:36, Julien Grall wrote:
> On 11/11/2021 17:57, Andrew Cooper wrote:
>> Retpolines are expensive, and all these do are select between the 
>> sync and
>> nosync helpers.  Pass a boolean instead, and use direct calls 
>> everywhere.
>
> To be honest, I much prefer to read the old code. I am totally not 
> against the change but I can see how I would be ready to introduce new 
> function pointers use in the future.

Really?  The only reason there are function points to begin with was 
because of a far more naive (and far pre-spectre) me fixing a reference 
counting mess in 2014 by consolidating the logic.  My mistake was not 
spotting that the function pointers weren't actually necessary in the 
first place.

> So I think we need some guidelines on when to use function pointers in 
> Xen.

It's easy.  If you are in any way unsure, they're probably the wrong 
answer.  (Ok - I'm being a little facetious)

There are concrete security improvements from not using function 
pointers, demonstrated by fact that JOP/COP attacks are so pervasive 
that all major hardware and software vendors are working on techniques 
(both hardware and software) to prevent forward-edge control flow 
integrity violations.  (The mandate from the NSA to make this happen 
certainly helped spur things on, too.)

There are also concrete performance improvements too.  All competitive 
processors in the market today can cope with direct branches more 
efficiently than indirect branches, and a key principle behind 
profile-guided-optimsiation is to rearrange your `ptr()` function 
pointer call into `if ( ptr == a ) a(); else if ( ptr == b ) b(); else 
ptr()` based on the frequency of destinations, because this really does 
make orders of magnitude improvements in some cases.

We have some shockingly inappropriate uses of function pointers in Xen 
right now (patches 4 and 5 in particular, and "x86/hvm: Remove callback 
from paging->flush_tlb() hook" posted today).  While this specific 
example doesn't fall into shockingly inappropriate in my books, it is 
firmly in the "not appropriate" category.

> The more...
>
>>
>> Pause/unpause operations on behalf of dom0 are not fastpaths, so avoid
>> exposing the __domain_pause_by_systemcontroller() internal.
>>
>> This actually compiles smaller than before:
>
> ... the code doesn't really compile smaller on Arm:
>
> 42sh>  ../scripts/bloat-o-meter xen-syms-old xen-syms
>
> add/remove: 4/2 grow/shrink: 0/6 up/down: 272/-252 (20)
> Function old     new   delta
> _domain_pause                                  -     136    +136
> _domain_pause_by_systemcontroller              -     120    +120
> domain_pause_by_systemcontroller_nosync        -       8      +8
> domain_pause_by_systemcontroller               -       8      +8
> domain_resume                                136     132      -4
> domain_pause_nosync                           12       8      -4
> domain_pause                                  12       8      -4
> domain_pause_except_self                     188     180      -8
> do_domctl                                   5480    5472      -8
> domain_kill                                  372     356     -16
> do_domain_pause                               88       -     -88
> __domain_pause_by_systemcontroller           120       -    -120
> Total: Before=966919, After=966939, chg +0.00%


ARM, like x86, compiles for speed, not size.  "it got a bit larger" is 
generally not as interesting as "it got smaller, despite everything the 
compiler would normally do in the opposite direction".  Obviously, if 
the build of Xen got 10x larger then we'd have a problem, but it hasn't.

Conversely, if we were compiling for size not speed, then "it got 
smaller" is the uninteresting direction.

The truth is that Xen (both x86 and ARM) is a couple of megabytes in RAM 
and this literally doesn't matter these days where RAM is measured in GB 
and TB.  We care to an extent for efficient use of the cache/etc, but 
noone would bat an eyelid at several MB more for a want-to-have feature.


Here, you're saying that for an added 5 instructions, totalling 0.00% 
delta in the size of the hypervisor, you've got some reasonably frequent 
codepaths which will execute faster, and cannot be hijacked with a 
JOP/COP attack.

That's a clear all-around improvement on ARM, just like it is on x86.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 02:20:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 02:20:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227063.392603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnX1h-0006wJ-I7; Thu, 18 Nov 2021 02:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227063.392603; Thu, 18 Nov 2021 02:19:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnX1h-0006wC-DA; Thu, 18 Nov 2021 02:19:49 +0000
Received: by outflank-mailman (input) for mailman id 227063;
 Thu, 18 Nov 2021 02:19:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vl7d=QF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnX1f-0006w6-E1
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 02:19:47 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe5096c0-4815-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 03:19:45 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 293A6610D0;
 Thu, 18 Nov 2021 02:19:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe5096c0-4815-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637201983;
	bh=F7UPXOnXCDsROKE0CgkwqMZuUaG9AUeBEsumTZJKjB8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=d1lcpNr54BsZSdDEC8Vm8VxZM/EwkMTiJZLJed+zCy4lBj4Dj+oTq31rlNbXCH8O6
	 m96Ju3wmhYxL0BBAFre8kCyHMRTlEN2N4Y+2YKK+opJN+WDIhl4GiE5C4BJdXes+O/
	 LfDxPW6pBYrw2cMY8KzBQOd4s+ByNHZJJuSGdy9MF23xipCx0yAQ7yGYWyTp82Bvj8
	 eS/hTtHgao6agHAEaUb1epOZam/EPB/bHwj30DGEz5IDYi7SrYrkB+VIKe7Jih7q1W
	 xLuMtxjnbgVJ9TjgQckO8x2RqN6g49EBgPOoWP6R0I9fa0XrJcFHkaOj8GSzEuLsvD
	 VI3WRQsbAdyag==
Date: Wed, 17 Nov 2021 18:19:42 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Luca Fancellu <Luca.Fancellu@arm.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    George Dunlap <george.dunlap@citrix.com>, Juergen Gross <jgross@suse.com>, 
    Dario Faggioli <dfaggioli@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
In-Reply-To: <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop>
References: <20211117095711.26596-1-luca.fancellu@arm.com> <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org> <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com> <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org> <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
 <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 17 Nov 2021, Julien Grall wrote:
> > > > > On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
> > > > > 
> > > > > Hi Luca,
> > > > > 
> > > > > On 17/11/2021 09:57, Luca Fancellu wrote:
> > > > > > Currently Xen creates a default cpupool0 that contains all the cpu
> > > > > > brought up
> > > > > > during boot and it assumes that the platform has only one kind of
> > > > > > CPU.
> > > > > > This assumption does not hold on big.LITTLE platform, but putting
> > > > > > different
> > > > > > type of CPU in the same cpupool can result in instability and
> > > > > > security issues
> > > > > > for the domains running on the pool.
> > > > > 
> > > > > I agree that you can't move a LITTLE vCPU to a big pCPU. However...
> > > > > 
> > > > > > For this reason this serie introduces an architecture specific way
> > > > > > to create
> > > > > > different cpupool at boot time, this is particularly useful on ARM
> > > > > > big.LITTLE
> > > > > > platform where there might be the need to have different cpupools
> > > > > > for each type
> > > > > > of core, but also systems using NUMA can have different cpu pool for
> > > > > > each node.
> > > > > 
> > > > > ... from my understanding, all the vCPUs of a domain have to be in the
> > > > > same cpupool. So with this approach it is not possible:
> > > > >    1) to have a mix of LITTLE and big vCPUs in the domain
> > > > >    2) to create a domain spanning across two NUMA nodes
> > > > > 
> > > > > So I think we need to make sure that any solutions we go through will
> > > > > not prevent us to implement those setups.
> > > > The point of this patch is to make all cores available without breaking
> > > > the current behaviour of existing system.
> > > 
> > > I might be missing some context here. By breaking current behavior, do you
> > > mean user that may want to add "hmp-unsafe" on the command line?
> > 
> > Right, with hmp-unsafe the behaviour is now the same as without, only extra
> > cores are parked in other cpupools.
> > 
> > So you have a point in fact that behaviour is changed for someone who was
> > using hmp-unsafe before if this is activated.
> > The command line argument suggested by Jurgen definitely makes sense here.
> > 
> > We could instead do the following:
> > - when this is activated in the configuration, boot all cores and park them
> > in different pools (depending on command line argument). Current behaviour
> > not change if other pools are not used (but more cores will be on in xen)
> 
> From my understanding, it is possible to move a pCPU in/out a pool afterwards.
> So the security concern with big.LITTLE is still present, even though it would
> be difficult to hit it.

As far as I know moving a pCPU in/out of a pool is something that cannot
happen automatically: it requires manual intervention to the user and it
is uncommon. We could print a warning or simply return error to prevent
the action from happening. Or something like:

"This action might result in memory corruptions and invalid behavior. Do
you want to continue? [Y/N]


> I am also concerned that it would be more difficult to detect any
> misconfiguration. So I think this option would still need to be turned on only
> if hmp-unsafe are the new command line one are both on.
> 
> If we want to enable it without hmp-unsafe on, we would need to at least lock
> the pools.

Locking the pools is a good idea.

My preference is not to tie this feature to the hmp-unsafe command line,
more on this below.


> > - when hmp-unsafe is on, this feature will be turned of (if activated in
> > configuration) and all cores would be added in the same pool.
> > 
> > What do you think ?
> 
> I am split. On one hand, this is making easier for someone to try big.LITTLE
> as you don't have manually pin vCPUs. On the other hand, this is handling a
> single use-case and you would need to use hmp-unsafe and pinning if you want
> to get more exotic setup (e.g. a domain with big.LITTLE).
> 
> Another possible solution is to pin dom0 vCPUs (AFAIK they are just sticky by
> default) and then create the pools from dom0 userspace. My assumption is for
> dom0less we would want to use pinning instead.
> 
> That said I would like to hear from Xilinx and EPAM as, IIRC, they are already
> using hmp-unsafe in production.

This discussion has been very interesting, it is cool to hear new ideas
like this one. I have a couple of thoughts to share.

First I think that the ability of creating cpupools at boot time is
super important. It goes way beyond big.LITTLE. It would be incredibly
useful to separate real-time (sched=null) and non-real-time
(sched=credit2) workloads. I think it will only become more important
going forward so I'd love to see an option to configure cpupools that
works for dom0less. It could be based on device tree properties rather
than kconfig options.

It is true that if we had the devicetree-based cpupool configuration I
mentioned, then somebody could use it to create cpupools matching
big.LITTLE. So "in theory" it solves the problem. However, I think that
for big.LITTLE it would be suboptimal. For big.LITTLE it would be best
if Xen configured the cpupools automatically rather than based on the
device tree configuration. That way, it is going to work automatically
without extra steps even in the simplest Xen setups.

So I think that it is a good idea to have a command line option (better
than a kconfig option) to trigger the MIDR-based cpupool creation at
boot time. The option could be called midr-cpupools=on/off or
hw-cpupools=on/off for example.

In terms of whether it should be the default or not, I don't feel
strongly about it. Unfortunately we (Xilinx) rely on a number of
non-default options already so we are already in the situation where we
have to be extra-careful at the options passed. I don't think that
adding one more would make a significant difference either way.


But my preference is *not* to tie the new command line option with
hmp-unsafe because if you use midr-cpupools and don't mess with the
pools then it is actually safe. We could even lock the cpupools like
Julien suggested or warn/return error on changing the cpupools. In this
scenario, it would be detrimental to also pass hmp-unsafe: it would
allow actually unsafe configurations that the user wanted to avoid by
using midr-cpupools. It would end up disabling checks we could put in
place to make midr-cpupools safer.

So in short I think it should be:

- midr-cpupools alone
cpupools created at boot, warning/errors on changing cpupools

- midr-cpupools + hmp-unsafe
cpupools created at boot, changing cpupools is allowed (we could still
warn but no errors)

- hmp-unsafe alone
same as today with hmp-unsafe


For the default as I said I don't have a strong preference. I think
midr-cpupools could be "on" be default.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 02:37:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 02:37:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227069.392613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnXIv-0000rW-62; Thu, 18 Nov 2021 02:37:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227069.392613; Thu, 18 Nov 2021 02:37:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnXIv-0000rP-30; Thu, 18 Nov 2021 02:37:37 +0000
Received: by outflank-mailman (input) for mailman id 227069;
 Thu, 18 Nov 2021 02:37:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vl7d=QF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnXIu-0000rJ-09
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 02:37:36 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b50bf70-4818-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 03:37:34 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id E94DD61ABF;
 Thu, 18 Nov 2021 02:37:31 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b50bf70-4818-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637203052;
	bh=wPjXsYR+kvoDOxY3F8/OcBtzPdH/YiJv/4y80ZmPSDU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=R9H9zDv9ZDIXa9Pm5x57YwM/p+E7zA+AOFpGIT3/Vt+Sx0onRKzie3rYsDUX5mYQl
	 eAQw4BV906a3Hn9O23btPQHkBsdhAkhU+cfOwevieccV38z3ui9RegNWtaS+rtDvoL
	 n7s+LFfCJDQMqCPp+M3wsGjbXxNLeRlqzpsRVTVjeMli18E1vResHenwylLcX/IC8/
	 G2d7358E4Nc1PHnWycznMttgGWiUHJS4QCpLywez8wXuYKHW1S8JGSWlUBoSglWgH+
	 upSNi1QAgxw6jWKPm/Xbs3cJxjwd/w6XOMDCJvtIsDr4dFrHSrvcPJ/QmQNSPw0gZK
	 Kc84YxY2qOMUA==
Date: Wed, 17 Nov 2021 18:37:30 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, boris.ostrovsky@oracle.com, 
    xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org, 
    jgross@suse.com
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
In-Reply-To: <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
References: <20211117021145.3105042-1-sstabellini@kernel.org> <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 17 Nov 2021, Jan Beulich wrote:
> On 17.11.2021 03:11, Stefano Stabellini wrote:
> > --- a/drivers/xen/xenbus/xenbus_probe.c
> > +++ b/drivers/xen/xenbus/xenbus_probe.c
> > @@ -951,6 +951,18 @@ static int __init xenbus_init(void)
> >  		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
> >  		if (err)
> >  			goto out_error;
> > +		/*
> > +		 * Uninitialized hvm_params are zero and return no error.
> > +		 * Although it is theoretically possible to have
> > +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
> > +		 * not zero when valid. If zero, it means that Xenstore hasn't
> > +		 * been properly initialized. Instead of attempting to map a
> > +		 * wrong guest physical address return error.
> > +		 */
> > +		if (v == 0) {
> > +			err = -ENOENT;
> > +			goto out_error;
> > +		}
> 
> If such a check gets added, then I think known-invalid frame numbers
> should be covered at even higher a priority than zero.

Uhm, that's a good point. We could check for 0 and also ULONG_MAX


> This would, for example, also mean to ...
>
> >  		xen_store_gfn = (unsigned long)v;
> 
> ... stop silently truncating a value here.

Yeah, it can only happen on 32-bit but you have a point.


> By covering them we would then have the option to pre-fill PFN params
> with, say, ~0 in the hypervisor (to clearly identify them as invalid,
> rather than having to guess at the validity of 0). I haven't really
> checked yet whether such a change would be compatible with existing
> software ...

I had the same idea. I think the hvm_params should be initialized to an
invalid value in Xen. But here in Linux we need to be able to cope with
older Xen versions too so it still makes sense to check for zero in
places where it is very obviously incorrect (HVM_PARAM_STORE_PFN).


What do you think of the appended?



diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 94405bb3829e..04558d3a5562 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -951,6 +951,28 @@ static int __init xenbus_init(void)
 		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
 		if (err)
 			goto out_error;
+		/*
+		 * Return error on an invalid value.
+		 *
+		 * Uninitialized hvm_params are zero and return no error.
+		 * Although it is theoretically possible to have
+		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
+		 * not zero when valid. If zero, it means that Xenstore hasn't
+		 * been properly initialized. Instead of attempting to map a
+		 * wrong guest physical address return error.
+		 */
+		if (v == 0) {
+			err = -ENOENT;
+			goto out_error;
+		}
+		/*
+		 * ULONG_MAX is invalid on 64-bit because is INVALID_PFN.
+		 * On 32-bit return error to avoid truncation.
+		 */
+		if (v >= ULONG_MAX) {
+			err = -EINVAL;
+			goto out_error;
+		}
 		xen_store_gfn = (unsigned long)v;
 		xen_store_interface =
 			xen_remap(xen_store_gfn << XEN_PAGE_SHIFT,


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 03:00:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 03:00:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227074.392625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnXea-00039k-3n; Thu, 18 Nov 2021 03:00:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227074.392625; Thu, 18 Nov 2021 03:00:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnXeZ-00039d-Vq; Thu, 18 Nov 2021 02:59:59 +0000
Received: by outflank-mailman (input) for mailman id 227074;
 Thu, 18 Nov 2021 02:59:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vl7d=QF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnXeY-00039X-No
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 02:59:58 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9bb699a9-481b-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 03:59:56 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 9A79D61078;
 Thu, 18 Nov 2021 02:59:54 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9bb699a9-481b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637204395;
	bh=227Kim8Epr57A67ppbaKw+6u1E9HBwUOh5FxSr6Cn14=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=XpTmPt+fHWVVNN/Ylt0eFjIkkaBDCaeE2eq9H9m63LhoPMmauihZge7y16ITBJyha
	 LwntF+e9/CBis2btp5gifLobTce4McesWba1csDJxjhGM+P0nsd6BNdFVCh1lhBeot
	 /sDL2hY+hXifFN1pNGR6y8souny60jkoY0QRRhXOXTTDMbv/BgGOnjSJJJsJijUm9y
	 3WXnwF3P0qVYj9wRMqcJE3uRImS85+768wQQszbPf9qaL9PKuflgHTaG0cNVhNNUb3
	 6E6CRro9k8K+e9xw9M68VgWeJWcCKKJe+LU0nvvT39WoHv+CZNzcBIsqE6JdJ2g30n
	 XdkHhwhkbFERA==
Date: Wed, 17 Nov 2021 18:59:53 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <luca.fancellu@arm.com>
cc: xen-devel@lists.xenproject.org, bertrand.marquis@arm.com, wei.chen@arm.com, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, 
    Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, 
    Juergen Gross <jgross@suse.com>, Dario Faggioli <dfaggioli@suse.com>
Subject: Re: [RFC PATCH 1/2] xen/cpupool: Create different cpupools at boot
 time
In-Reply-To: <20211117095711.26596-2-luca.fancellu@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111171854240.1412361@ubuntu-linux-20-04-desktop>
References: <20211117095711.26596-1-luca.fancellu@arm.com> <20211117095711.26596-2-luca.fancellu@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 17 Nov 2021, Luca Fancellu wrote:
> Introduce an architecture specific way to create different
> cpupool at boot time, this is particularly useful on ARM
> biglittle system where there might be the need to have
> different cpupools for each type of core, but also systems
> using NUMA can have different cpu pool for each node.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>  xen/arch/arm/Kconfig       | 15 +++++++
>  xen/arch/arm/Makefile      |  1 +
>  xen/arch/arm/cpupool.c     | 84 ++++++++++++++++++++++++++++++++++++++
>  xen/common/sched/cpupool.c |  5 ++-
>  xen/include/xen/cpupool.h  | 30 ++++++++++++++
>  5 files changed, 134 insertions(+), 1 deletion(-)
>  create mode 100644 xen/arch/arm/cpupool.c
>  create mode 100644 xen/include/xen/cpupool.h
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index ecfa6822e4..4d7cc9f3bc 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -33,6 +33,21 @@ config ACPI
>  	  Advanced Configuration and Power Interface (ACPI) support for Xen is
>  	  an alternative to device tree on ARM64.
>  
> +config BOOT_TIME_CPUPOOLS
> +	bool "Create cpupools per cpu type at boot time."
> +	depends on ARM
> +	default n
> +	help
> +
> +	  Creates, during boot, a cpu pool for each type of CPU found on
> +	  the system. This option is useful on system with heterogeneous
> +	  types of core.

Let's use a command line option instead (or in addition?). The code is
so small that I would probably not bother with the kconfig option.


> +config MAX_BOOT_TIME_CPUPOOLS
> +	depends on BOOT_TIME_CPUPOOLS
> +	int "Maximum number of cpupools that can be created at boot time."
> +	default 16

Maybe it could be just a #define


>  config GICV3
>  	bool "GICv3 driver"
>  	depends on ARM_64 && !NEW_VGIC
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 07f634508e..0bb8b84750 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -13,6 +13,7 @@ obj-$(CONFIG_HAS_ALTERNATIVE) += alternative.o
>  obj-y += bootfdt.init.o
>  obj-y += cpuerrata.o
>  obj-y += cpufeature.o
> +obj-$(CONFIG_BOOT_TIME_CPUPOOLS) += cpupool.o
>  obj-y += decode.o
>  obj-y += device.o
>  obj-$(CONFIG_IOREQ_SERVER) += dm.o
> diff --git a/xen/arch/arm/cpupool.c b/xen/arch/arm/cpupool.c
> new file mode 100644
> index 0000000000..550521e352
> --- /dev/null
> +++ b/xen/arch/arm/cpupool.c
> @@ -0,0 +1,84 @@
> +/******************************************************************************
> + * cpupool.c
> + *
> + * (C) 2021, arm
> + */
> +
> +#include <xen/cpumask.h>
> +#include <xen/cpupool.h>
> +#include <xen/err.h>
> +#include <xen/sched.h>
> +#include <asm/cpufeature.h>
> +#include <asm/processor.h>
> +#include "../../common/sched/private.h"
> +
> +typedef struct {
> +    register_t     midr;
> +    struct cpupool *pool;
> +} pool_t;
> +
> +static pool_t __initdata pool_cpu_map[CONFIG_MAX_BOOT_TIME_CPUPOOLS];
> +
> +void __init arch_allocate_cpupools(const cpumask_t *cpu_online_map,
> +                                   cpupool_create_t cpupool_create)
> +{
> +    unsigned int cpu, i;
> +
> +    /* First pool is the default pool0 associated with midr of the boot core */
> +    pool_cpu_map[0].midr = system_cpuinfo.midr.bits;
> +    pool_cpu_map[0].pool = cpupool0;
> +
> +    for_each_cpu ( cpu, cpu_online_map )
> +    {
> +        for ( i = 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
> +            if ( !pool_cpu_map[i].pool ||
> +                 (cpu_data[cpu].midr.bits == pool_cpu_map[i].midr) )
> +                break;

Please use { } for readability


> +        if ( i < CONFIG_MAX_BOOT_TIME_CPUPOOLS )
> +        {
> +            if ( !pool_cpu_map[i].pool )
> +            {
> +                /* There is no pool for this cpu midr, create it */
> +                pool_cpu_map[i].midr = cpu_data[cpu].midr.bits;
> +                debugtrace_printk("Create pool %u for cpu MIDR: 0x%"
> +                                  PRIregister"\n", i, pool_cpu_map[i].midr);
> +                pool_cpu_map[i].pool =
> +                    cpupool_create(i, scheduler_get_default()->sched_id);
> +                BUG_ON(IS_ERR(pool_cpu_map[i].pool));
> +                cpupool_put(pool_cpu_map[i].pool);
> +            }
> +        }
> +        else
> +            panic("Could not create cpupool, maximum number reached (%u)",
> +                  (unsigned int)(CONFIG_MAX_BOOT_TIME_CPUPOOLS));
> +    }
> +
> +    /* Print useful information about the pools */
> +    for ( i = 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
> +        if ( pool_cpu_map[i].pool )
> +            printk(XENLOG_INFO "Pool-%u contains cpu with MIDR: 0x%"
> +                   PRIregister"\n", i, pool_cpu_map[i].midr);

Please use { } for readability


> +}
> +
> +struct cpupool *__init arch_get_cpupool(unsigned int cpu)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
> +        if ( pool_cpu_map[i].pool &&
> +             (cpu_data[cpu].midr.bits == pool_cpu_map[i].midr) )
> +            return pool_cpu_map[i].pool;
> +
> +    return cpupool0;
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
> index 8c6e6eb9cc..7389f04e28 100644
> --- a/xen/common/sched/cpupool.c
> +++ b/xen/common/sched/cpupool.c
> @@ -13,6 +13,7 @@
>  
>  #include <xen/cpu.h>
>  #include <xen/cpumask.h>
> +#include <xen/cpupool.h>
>  #include <xen/guest_access.h>
>  #include <xen/hypfs.h>
>  #include <xen/init.h>
> @@ -1231,12 +1232,14 @@ static int __init cpupool_init(void)
>      cpupool_put(cpupool0);
>      register_cpu_notifier(&cpu_nfb);
>  
> +    arch_allocate_cpupools(&cpu_online_map, cpupool_create);
> +
>      spin_lock(&cpupool_lock);
>  
>      cpumask_copy(&cpupool_free_cpus, &cpu_online_map);
>  
>      for_each_cpu ( cpu, &cpupool_free_cpus )
> -        cpupool_assign_cpu_locked(cpupool0, cpu);
> +        cpupool_assign_cpu_locked(arch_get_cpupool(cpu), cpu);
>  
>      spin_unlock(&cpupool_lock);
>  
> diff --git a/xen/include/xen/cpupool.h b/xen/include/xen/cpupool.h
> new file mode 100644
> index 0000000000..4b50af9e3d
> --- /dev/null
> +++ b/xen/include/xen/cpupool.h
> @@ -0,0 +1,30 @@
> +#ifndef __XEN_CPUPOOL_H
> +#define __XEN_CPUPOOL_H
> +
> +#include <xen/sched.h>
> +
> +typedef struct cpupool* (*cpupool_create_t)(unsigned int, unsigned int);
> +
> +#ifdef CONFIG_BOOT_TIME_CPUPOOLS
> +
> +void arch_allocate_cpupools(const cpumask_t *cpu_online_map,
> +                            cpupool_create_t cpupool_create);
> +
> +struct cpupool *arch_get_cpupool(unsigned int cpu);
> +
> +#else
> +
> +static inline __init
> +void arch_allocate_cpupools(const cpumask_t *cpu_online_map,
> +                            cpupool_create_t cpupool_create)
> +{
> +}
> +
> +static inline struct cpupool *__init arch_get_cpupool(unsigned int cpu)
> +{
> +    return cpupool0;
> +}
> +
> +#endif
> +
> +#endif /* __XEN_CPUPOOL_H */
> -- 
> 2.17.1
> 


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 03:01:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 03:01:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227077.392636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnXg5-0004Tj-E6; Thu, 18 Nov 2021 03:01:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227077.392636; Thu, 18 Nov 2021 03:01:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnXg5-0004Tc-B7; Thu, 18 Nov 2021 03:01:33 +0000
Received: by outflank-mailman (input) for mailman id 227077;
 Thu, 18 Nov 2021 03:01:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vl7d=QF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnXg4-0004S1-4b
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 03:01:32 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3fddd1d-481b-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 04:01:30 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 044E16187F;
 Thu, 18 Nov 2021 03:01:28 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3fddd1d-481b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637204489;
	bh=9aorx6iNIVy8X/FfNQZ1UkrkeVrcRlB1qXJsSrWUY0U=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=J68LGInGIIyzX5F+KsVcsxL3pMoArgqhXeNxmgsqe/mVmimq7gMdgXEI9xUM1yvos
	 mnRC0uUkqf3eJ3UNBofcOv/i0Yjd6p7T/5mDLIu5bmq03WiT/NFQsvetrB4YrZZG5z
	 hLLHxPr1nEYzXV5H3RqxOcNJj01xwVsqxAyD5ZfmD+d3FHXvMGe2FclfMdApYTJtSn
	 F8xEyteOq51KY0i0MSH6SnRYQi7hy3g/rmZOAodeUMXpuWdEOkWWglK0YtNIKHopMZ
	 s9tySAvy4yFXxlNIOkWZkx0M7PEPb6KgoGn6CFirsywi2og6Q78HNO95+ftwMfqQU9
	 K2VyJ7PYFFUGA==
Date: Wed, 17 Nov 2021 19:01:27 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Juergen Gross <jgross@suse.com>
cc: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org, 
    bertrand.marquis@arm.com, wei.chen@arm.com, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, 
    Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, 
    Dario Faggioli <dfaggioli@suse.com>
Subject: Re: [RFC PATCH 1/2] xen/cpupool: Create different cpupools at boot
 time
In-Reply-To: <eef43ca6-dce1-9d24-7ee6-7ced8a709f00@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111171859580.1412361@ubuntu-linux-20-04-desktop>
References: <20211117095711.26596-1-luca.fancellu@arm.com> <20211117095711.26596-2-luca.fancellu@arm.com> <eef43ca6-dce1-9d24-7ee6-7ced8a709f00@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 17 Nov 2021, Juergen Gross wrote:
> On 17.11.21 10:57, Luca Fancellu wrote:
> > Introduce an architecture specific way to create different
> > cpupool at boot time, this is particularly useful on ARM
> > biglittle system where there might be the need to have
> > different cpupools for each type of core, but also systems
> > using NUMA can have different cpu pool for each node.
> > 
> > Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> > ---
> >   xen/arch/arm/Kconfig       | 15 +++++++
> >   xen/arch/arm/Makefile      |  1 +
> >   xen/arch/arm/cpupool.c     | 84 ++++++++++++++++++++++++++++++++++++++
> >   xen/common/sched/cpupool.c |  5 ++-
> >   xen/include/xen/cpupool.h  | 30 ++++++++++++++
> >   5 files changed, 134 insertions(+), 1 deletion(-)
> >   create mode 100644 xen/arch/arm/cpupool.c
> >   create mode 100644 xen/include/xen/cpupool.h
> > 
> > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> > index ecfa6822e4..4d7cc9f3bc 100644
> > --- a/xen/arch/arm/Kconfig
> > +++ b/xen/arch/arm/Kconfig
> > @@ -33,6 +33,21 @@ config ACPI
> >   	  Advanced Configuration and Power Interface (ACPI) support for Xen is
> >   	  an alternative to device tree on ARM64.
> >   +config BOOT_TIME_CPUPOOLS
> > +	bool "Create cpupools per cpu type at boot time."
> > +	depends on ARM
> > +	default n
> > +	help
> > +
> > +	  Creates, during boot, a cpu pool for each type of CPU found on
> > +	  the system. This option is useful on system with heterogeneous
> > +	  types of core.
> > +
> > +config MAX_BOOT_TIME_CPUPOOLS
> > +	depends on BOOT_TIME_CPUPOOLS
> > +	int "Maximum number of cpupools that can be created at boot time."
> > +	default 16
> > +
> >   config GICV3
> >   	bool "GICv3 driver"
> >   	depends on ARM_64 && !NEW_VGIC
> > diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> > index 07f634508e..0bb8b84750 100644
> > --- a/xen/arch/arm/Makefile
> > +++ b/xen/arch/arm/Makefile
> > @@ -13,6 +13,7 @@ obj-$(CONFIG_HAS_ALTERNATIVE) += alternative.o
> >   obj-y += bootfdt.init.o
> >   obj-y += cpuerrata.o
> >   obj-y += cpufeature.o
> > +obj-$(CONFIG_BOOT_TIME_CPUPOOLS) += cpupool.o
> >   obj-y += decode.o
> >   obj-y += device.o
> >   obj-$(CONFIG_IOREQ_SERVER) += dm.o
> > diff --git a/xen/arch/arm/cpupool.c b/xen/arch/arm/cpupool.c
> > new file mode 100644
> > index 0000000000..550521e352
> > --- /dev/null
> > +++ b/xen/arch/arm/cpupool.c
> > @@ -0,0 +1,84 @@
> > +/******************************************************************************
> > + * cpupool.c
> > + *
> > + * (C) 2021, arm
> > + */
> > +
> > +#include <xen/cpumask.h>
> > +#include <xen/cpupool.h>
> > +#include <xen/err.h>
> > +#include <xen/sched.h>
> > +#include <asm/cpufeature.h>
> > +#include <asm/processor.h>
> > +#include "../../common/sched/private.h"
> 
> No, please don't do that.
> 
> You should try to add architecture agnostic service functions in
> common/sched/cpupool.c removing the need to include that file here.
> 
> > +
> > +typedef struct {
> > +    register_t     midr;
> > +    struct cpupool *pool;
> > +} pool_t;
> > +
> > +static pool_t __initdata pool_cpu_map[CONFIG_MAX_BOOT_TIME_CPUPOOLS];
> > +
> > +void __init arch_allocate_cpupools(const cpumask_t *cpu_online_map,
> > +                                   cpupool_create_t cpupool_create)
> 
> Drop the cpupool_create parameter here and ...
> 
> > +{
> > +    unsigned int cpu, i;
> > +
> > +    /* First pool is the default pool0 associated with midr of the boot
> > core */
> > +    pool_cpu_map[0].midr = system_cpuinfo.midr.bits;
> > +    pool_cpu_map[0].pool = cpupool0;
> > +
> > +    for_each_cpu ( cpu, cpu_online_map )
> > +    {
> > +        for ( i = 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
> > +            if ( !pool_cpu_map[i].pool ||
> > +                 (cpu_data[cpu].midr.bits == pool_cpu_map[i].midr) )
> > +                break;
> > +
> > +        if ( i < CONFIG_MAX_BOOT_TIME_CPUPOOLS )
> > +        {
> > +            if ( !pool_cpu_map[i].pool )
> > +            {
> > +                /* There is no pool for this cpu midr, create it */
> > +                pool_cpu_map[i].midr = cpu_data[cpu].midr.bits;
> > +                debugtrace_printk("Create pool %u for cpu MIDR: 0x%"
> > +                                  PRIregister"\n", i,
> > pool_cpu_map[i].midr);
> > +                pool_cpu_map[i].pool =
> > +                    cpupool_create(i, scheduler_get_default()->sched_id);
> > +                BUG_ON(IS_ERR(pool_cpu_map[i].pool));
> > +                cpupool_put(pool_cpu_map[i].pool);
> 
> ... call a new wrapper in common/sched/cpupool.c taking just the id as
> parameter (e.g. "cpupool *cpupool_create_default(unsigned int id)")
> which will use the default scheduler and do the cpupool_create() and
> cpupool_put() calls internally.

What if sched=something is also passed on the command line? Shouldn't
that be used for all cpupools? Or maybe sched=something works because it
changes the "default scheduler"?


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 04:50:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 04:50:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227082.392647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnZMW-0005Vj-4B; Thu, 18 Nov 2021 04:49:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227082.392647; Thu, 18 Nov 2021 04:49:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnZMW-0005Vc-00; Thu, 18 Nov 2021 04:49:28 +0000
Received: by outflank-mailman (input) for mailman id 227082;
 Thu, 18 Nov 2021 04:49:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnZMU-0005VS-N7; Thu, 18 Nov 2021 04:49:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnZMU-0002hL-H3; Thu, 18 Nov 2021 04:49:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnZMU-0001ab-0s; Thu, 18 Nov 2021 04:49:26 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnZMU-0005LK-0K; Thu, 18 Nov 2021 04:49:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=caj/pcN+vmcM5OH6N1wGaU78XtaXc/bAidw0+id7Va0=; b=Ii6mYYXApAFZkqdcY6xaJ/Wriw
	JY1hKXsL2I/IR9M+SMprtwSYl17DyjUJm4h0IW5uchzMDgnAsuCIuf9zcULGlHuWcOItZR5RaejU/
	tpbTD2PrnWcINMfe+pSDIkBsRnbzAiF+rHHTbVYPOH5sjbi7nrckI0Wj5DIo8LrSOqLc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166164-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-5.4 test] 166164: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-5.4:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-5.4:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=17efa1a44c7f615e9ec321f82138e7711690e7a1
X-Osstest-Versions-That:
    linux=5915b0ea674673d13d2755f7e7f843fe286d85ec
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Nov 2021 04:49:26 +0000

flight 166164 linux-5.4 real [real]
flight 166181 linux-5.4 real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166164/
http://logs.test-lab.xenproject.org/osstest/logs/166181/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166181-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166129
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166129
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166129
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166129
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166129
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166129
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166129
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166129
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166129
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166129
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166129
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166129
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                17efa1a44c7f615e9ec321f82138e7711690e7a1
baseline version:
 linux                5915b0ea674673d13d2755f7e7f843fe286d85ec

Last test of basis   166129  2021-11-12 14:12:12 Z    5 days
Testing same since   166164  2021-11-17 09:13:13 Z    0 days    1 attempts

------------------------------------------------------------
356 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   5915b0ea6746..17efa1a44c7f  17efa1a44c7f615e9ec321f82138e7711690e7a1 -> tested/linux-5.4


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 05:08:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 05:08:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227088.392661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnZem-0008DV-Up; Thu, 18 Nov 2021 05:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227088.392661; Thu, 18 Nov 2021 05:08:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnZem-0008DO-Ra; Thu, 18 Nov 2021 05:08:20 +0000
Received: by outflank-mailman (input) for mailman id 227088;
 Thu, 18 Nov 2021 05:08:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=l94Z=QF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mnZel-0008DI-EU
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 05:08:19 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a9ddb7d-482d-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 06:08:18 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 8FE061FD35;
 Thu, 18 Nov 2021 05:08:17 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 45EDA13CBE;
 Thu, 18 Nov 2021 05:08:17 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id Pm7yD8HflWF1EwAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 18 Nov 2021 05:08:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a9ddb7d-482d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637212097; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=Pm1jOtey/sUED+paQ3ntqpCPg4VifYw9HouKFNdPoGA=;
	b=tPB+Z/htIoPyZLRyJlV1D7mff7J819gy9TnNTSCNxCT8txT8rZsbb7m84arh4HAHNzyIwY
	vjgT8Pe35PA6Z3LVPeh0/Q6uCGPCd7QTrhxn/D5YhCKntfIUBm3g0zyrMdDiqMBLrEIsrl
	Zt7OPkOIzBtagKG3Vc0XAUHwk2/a7S0=
Subject: Re: [RFC PATCH 1/2] xen/cpupool: Create different cpupools at boot
 time
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org,
 bertrand.marquis@arm.com, wei.chen@arm.com, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <20211117095711.26596-2-luca.fancellu@arm.com>
 <eef43ca6-dce1-9d24-7ee6-7ced8a709f00@suse.com>
 <alpine.DEB.2.22.394.2111171859580.1412361@ubuntu-linux-20-04-desktop>
From: Juergen Gross <jgross@suse.com>
Message-ID: <2629c010-4c74-122e-6e79-c4574fbcd187@suse.com>
Date: Thu, 18 Nov 2021 06:08:16 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111171859580.1412361@ubuntu-linux-20-04-desktop>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="8X7gqauFn938NHbfqrL5z1Wx2eUsbINkA"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--8X7gqauFn938NHbfqrL5z1Wx2eUsbINkA
Content-Type: multipart/mixed; boundary="iRjif7zEeeK1M22g97sgPltfnmGjajGH4";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org,
 bertrand.marquis@arm.com, wei.chen@arm.com, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>
Message-ID: <2629c010-4c74-122e-6e79-c4574fbcd187@suse.com>
Subject: Re: [RFC PATCH 1/2] xen/cpupool: Create different cpupools at boot
 time
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <20211117095711.26596-2-luca.fancellu@arm.com>
 <eef43ca6-dce1-9d24-7ee6-7ced8a709f00@suse.com>
 <alpine.DEB.2.22.394.2111171859580.1412361@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2111171859580.1412361@ubuntu-linux-20-04-desktop>

--iRjif7zEeeK1M22g97sgPltfnmGjajGH4
Content-Type: multipart/mixed;
 boundary="------------70A5DD663CBC9D8110D8AFA2"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------70A5DD663CBC9D8110D8AFA2
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 18.11.21 04:01, Stefano Stabellini wrote:
> On Wed, 17 Nov 2021, Juergen Gross wrote:
>> On 17.11.21 10:57, Luca Fancellu wrote:
>>> Introduce an architecture specific way to create different
>>> cpupool at boot time, this is particularly useful on ARM
>>> biglittle system where there might be the need to have
>>> different cpupools for each type of core, but also systems
>>> using NUMA can have different cpu pool for each node.
>>>
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>>    xen/arch/arm/Kconfig       | 15 +++++++
>>>    xen/arch/arm/Makefile      |  1 +
>>>    xen/arch/arm/cpupool.c     | 84 ++++++++++++++++++++++++++++++++++=
++++
>>>    xen/common/sched/cpupool.c |  5 ++-
>>>    xen/include/xen/cpupool.h  | 30 ++++++++++++++
>>>    5 files changed, 134 insertions(+), 1 deletion(-)
>>>    create mode 100644 xen/arch/arm/cpupool.c
>>>    create mode 100644 xen/include/xen/cpupool.h
>>>
>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>> index ecfa6822e4..4d7cc9f3bc 100644
>>> --- a/xen/arch/arm/Kconfig
>>> +++ b/xen/arch/arm/Kconfig
>>> @@ -33,6 +33,21 @@ config ACPI
>>>    	  Advanced Configuration and Power Interface (ACPI) support for X=
en is
>>>    	  an alternative to device tree on ARM64.
>>>    +config BOOT_TIME_CPUPOOLS
>>> +	bool "Create cpupools per cpu type at boot time."
>>> +	depends on ARM
>>> +	default n
>>> +	help
>>> +
>>> +	  Creates, during boot, a cpu pool for each type of CPU found on
>>> +	  the system. This option is useful on system with heterogeneous
>>> +	  types of core.
>>> +
>>> +config MAX_BOOT_TIME_CPUPOOLS
>>> +	depends on BOOT_TIME_CPUPOOLS
>>> +	int "Maximum number of cpupools that can be created at boot time."
>>> +	default 16
>>> +
>>>    config GICV3
>>>    	bool "GICv3 driver"
>>>    	depends on ARM_64 && !NEW_VGIC
>>> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
>>> index 07f634508e..0bb8b84750 100644
>>> --- a/xen/arch/arm/Makefile
>>> +++ b/xen/arch/arm/Makefile
>>> @@ -13,6 +13,7 @@ obj-$(CONFIG_HAS_ALTERNATIVE) +=3D alternative.o
>>>    obj-y +=3D bootfdt.init.o
>>>    obj-y +=3D cpuerrata.o
>>>    obj-y +=3D cpufeature.o
>>> +obj-$(CONFIG_BOOT_TIME_CPUPOOLS) +=3D cpupool.o
>>>    obj-y +=3D decode.o
>>>    obj-y +=3D device.o
>>>    obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
>>> diff --git a/xen/arch/arm/cpupool.c b/xen/arch/arm/cpupool.c
>>> new file mode 100644
>>> index 0000000000..550521e352
>>> --- /dev/null
>>> +++ b/xen/arch/arm/cpupool.c
>>> @@ -0,0 +1,84 @@
>>> +/*******************************************************************=
***********
>>> + * cpupool.c
>>> + *
>>> + * (C) 2021, arm
>>> + */
>>> +
>>> +#include <xen/cpumask.h>
>>> +#include <xen/cpupool.h>
>>> +#include <xen/err.h>
>>> +#include <xen/sched.h>
>>> +#include <asm/cpufeature.h>
>>> +#include <asm/processor.h>
>>> +#include "../../common/sched/private.h"
>>
>> No, please don't do that.
>>
>> You should try to add architecture agnostic service functions in
>> common/sched/cpupool.c removing the need to include that file here.
>>
>>> +
>>> +typedef struct {
>>> +    register_t     midr;
>>> +    struct cpupool *pool;
>>> +} pool_t;
>>> +
>>> +static pool_t __initdata pool_cpu_map[CONFIG_MAX_BOOT_TIME_CPUPOOLS]=
;
>>> +
>>> +void __init arch_allocate_cpupools(const cpumask_t *cpu_online_map,
>>> +                                   cpupool_create_t cpupool_create)
>>
>> Drop the cpupool_create parameter here and ...
>>
>>> +{
>>> +    unsigned int cpu, i;
>>> +
>>> +    /* First pool is the default pool0 associated with midr of the b=
oot
>>> core */
>>> +    pool_cpu_map[0].midr =3D system_cpuinfo.midr.bits;
>>> +    pool_cpu_map[0].pool =3D cpupool0;
>>> +
>>> +    for_each_cpu ( cpu, cpu_online_map )
>>> +    {
>>> +        for ( i =3D 0; i < CONFIG_MAX_BOOT_TIME_CPUPOOLS; i++ )
>>> +            if ( !pool_cpu_map[i].pool ||
>>> +                 (cpu_data[cpu].midr.bits =3D=3D pool_cpu_map[i].mid=
r) )
>>> +                break;
>>> +
>>> +        if ( i < CONFIG_MAX_BOOT_TIME_CPUPOOLS )
>>> +        {
>>> +            if ( !pool_cpu_map[i].pool )
>>> +            {
>>> +                /* There is no pool for this cpu midr, create it */
>>> +                pool_cpu_map[i].midr =3D cpu_data[cpu].midr.bits;
>>> +                debugtrace_printk("Create pool %u for cpu MIDR: 0x%"=

>>> +                                  PRIregister"\n", i,
>>> pool_cpu_map[i].midr);
>>> +                pool_cpu_map[i].pool =3D
>>> +                    cpupool_create(i, scheduler_get_default()->sched=
_id);
>>> +                BUG_ON(IS_ERR(pool_cpu_map[i].pool));
>>> +                cpupool_put(pool_cpu_map[i].pool);
>>
>> ... call a new wrapper in common/sched/cpupool.c taking just the id as=

>> parameter (e.g. "cpupool *cpupool_create_default(unsigned int id)")
>> which will use the default scheduler and do the cpupool_create() and
>> cpupool_put() calls internally.
>=20
> What if sched=3Dsomething is also passed on the command line? Shouldn't=

> that be used for all cpupools? Or maybe sched=3Dsomething works because=
 it
> changes the "default scheduler"?
>=20

Yes.


Juergen

--------------70A5DD663CBC9D8110D8AFA2
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------70A5DD663CBC9D8110D8AFA2--

--iRjif7zEeeK1M22g97sgPltfnmGjajGH4--

--8X7gqauFn938NHbfqrL5z1Wx2eUsbINkA
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGV38AFAwAAAAAACgkQsN6d1ii/Ey/R
wwgAnREEY/G1CkIRTaXeodWettMpnOvhHaJttoi5BLl4UczrdAlHj1IK+0jwdZI4FVbpwtKQJmj0
Nd7RKJ9VsvvtFHHGdeVjV2B+cG1ZGKGwYbLSRo5zUVLoMvp+/0fiwYoBFf5Rc5bSo6ff2veUNXE6
86I4/q4fRzHzLlYbicw6u5rvvWsyI6H3keAF87CDxNO3pOp3btahBKSeW+/16hY150cTs7tlng8F
tr9LNxJf1UMyIkVoAXfPjbzXo9yEiwDvTFpikE2IuIE+9BZdPhwryUEJ/OyScZDHE5Gv+GScdhuw
qhD9xr7Zwf6+olFhtF6nbKJ8L//1ZFU32x9fmweBIQ==
=XydQ
-----END PGP SIGNATURE-----

--8X7gqauFn938NHbfqrL5z1Wx2eUsbINkA--


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 05:20:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 05:20:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227092.392672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnZps-0001EX-W9; Thu, 18 Nov 2021 05:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227092.392672; Thu, 18 Nov 2021 05:19:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnZps-0001EQ-Rs; Thu, 18 Nov 2021 05:19:48 +0000
Received: by outflank-mailman (input) for mailman id 227092;
 Thu, 18 Nov 2021 05:19:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=l94Z=QF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mnZpq-0001EK-IP
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 05:19:46 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23ed5972-482f-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 06:19:44 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 171C3212BF;
 Thu, 18 Nov 2021 05:19:44 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A677A13CBE;
 Thu, 18 Nov 2021 05:19:43 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id lEUQJm/ilWF2FgAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 18 Nov 2021 05:19:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23ed5972-482f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637212784; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=RFizS13dXr1U+nyRCg8f8JObCGX70vXaZf/eYyfxWtY=;
	b=RrsWBfT7XmArtmKbTblkMRpncAGd9jcdy6muZIz3pqfmBzfxa/NDB4rH7BKOJeXyrHMIC3
	mBu6s/ptJpdFY6J8qKhG+nuOjo/sD5MCLx4qvvM37ZDr7k/po5hOEsROX8P8WMBE/3TW2P
	h/QgYjmTGGGWqJyUwevdSsuuIRNjbL8=
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Luca Fancellu <Luca.Fancellu@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 George Dunlap <george.dunlap@citrix.com>, Dario Faggioli <dfaggioli@suse.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
 <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
 <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
 <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
 <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
Message-ID: <59e14393-a1fc-5b82-2f6e-5567f218cb3a@suse.com>
Date: Thu, 18 Nov 2021 06:19:43 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="IPP9Ec1viq4GUQVvD7kduxVmbutMtMy7L"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--IPP9Ec1viq4GUQVvD7kduxVmbutMtMy7L
Content-Type: multipart/mixed; boundary="EMZ8BuDzesKpUActVmVQCILibcfgb31dC";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Luca Fancellu <Luca.Fancellu@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 George Dunlap <george.dunlap@citrix.com>, Dario Faggioli <dfaggioli@suse.com>
Message-ID: <59e14393-a1fc-5b82-2f6e-5567f218cb3a@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
 <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
 <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
 <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
 <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop>

--EMZ8BuDzesKpUActVmVQCILibcfgb31dC
Content-Type: multipart/mixed;
 boundary="------------DB34264B6EE0AADC04E1BED5"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------DB34264B6EE0AADC04E1BED5
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 18.11.21 03:19, Stefano Stabellini wrote:
> On Wed, 17 Nov 2021, Julien Grall wrote:
>>>>>> On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
>>>>>>
>>>>>> Hi Luca,
>>>>>>
>>>>>> On 17/11/2021 09:57, Luca Fancellu wrote:
>>>>>>> Currently Xen creates a default cpupool0 that contains all the cp=
u
>>>>>>> brought up
>>>>>>> during boot and it assumes that the platform has only one kind of=

>>>>>>> CPU.
>>>>>>> This assumption does not hold on big.LITTLE platform, but putting=

>>>>>>> different
>>>>>>> type of CPU in the same cpupool can result in instability and
>>>>>>> security issues
>>>>>>> for the domains running on the pool.
>>>>>>
>>>>>> I agree that you can't move a LITTLE vCPU to a big pCPU. However..=
=2E
>>>>>>
>>>>>>> For this reason this serie introduces an architecture specific wa=
y
>>>>>>> to create
>>>>>>> different cpupool at boot time, this is particularly useful on AR=
M
>>>>>>> big.LITTLE
>>>>>>> platform where there might be the need to have different cpupools=

>>>>>>> for each type
>>>>>>> of core, but also systems using NUMA can have different cpu pool =
for
>>>>>>> each node.
>>>>>>
>>>>>> ... from my understanding, all the vCPUs of a domain have to be in=
 the
>>>>>> same cpupool. So with this approach it is not possible:
>>>>>>     1) to have a mix of LITTLE and big vCPUs in the domain
>>>>>>     2) to create a domain spanning across two NUMA nodes
>>>>>>
>>>>>> So I think we need to make sure that any solutions we go through w=
ill
>>>>>> not prevent us to implement those setups.
>>>>> The point of this patch is to make all cores available without brea=
king
>>>>> the current behaviour of existing system.
>>>>
>>>> I might be missing some context here. By breaking current behavior, =
do you
>>>> mean user that may want to add "hmp-unsafe" on the command line?
>>>
>>> Right, with hmp-unsafe the behaviour is now the same as without, only=
 extra
>>> cores are parked in other cpupools.
>>>
>>> So you have a point in fact that behaviour is changed for someone who=
 was
>>> using hmp-unsafe before if this is activated.
>>> The command line argument suggested by Jurgen definitely makes sense =
here.
>>>
>>> We could instead do the following:
>>> - when this is activated in the configuration, boot all cores and par=
k them
>>> in different pools (depending on command line argument). Current beha=
viour
>>> not change if other pools are not used (but more cores will be on in =
xen)
>>
>>  From my understanding, it is possible to move a pCPU in/out a pool af=
terwards.
>> So the security concern with big.LITTLE is still present, even though =
it would
>> be difficult to hit it.
>=20
> As far as I know moving a pCPU in/out of a pool is something that canno=
t
> happen automatically: it requires manual intervention to the user and i=
t
> is uncommon. We could print a warning or simply return error to prevent=

> the action from happening. Or something like:
>=20
> "This action might result in memory corruptions and invalid behavior. D=
o
> you want to continue? [Y/N]

This should only be rejected if the source and target pool are not
compatible. So a cpupool could be attributed to allow only specific
cpus (and maybe domains?) in it.

Otherwise it would be impossible to create new cpupools after boot on
such a system and populating them with cpus.

>> I am also concerned that it would be more difficult to detect any
>> misconfiguration. So I think this option would still need to be turned=
 on only
>> if hmp-unsafe are the new command line one are both on.
>>
>> If we want to enable it without hmp-unsafe on, we would need to at lea=
st lock
>> the pools.
>=20
> Locking the pools is a good idea.

This would be another option, yes.

> My preference is not to tie this feature to the hmp-unsafe command line=
,
> more on this below.

I agree.

>>> - when hmp-unsafe is on, this feature will be turned of (if activated=
 in
>>> configuration) and all cores would be added in the same pool.
>>>
>>> What do you think ?
>>
>> I am split. On one hand, this is making easier for someone to try big.=
LITTLE
>> as you don't have manually pin vCPUs. On the other hand, this is handl=
ing a
>> single use-case and you would need to use hmp-unsafe and pinning if yo=
u want
>> to get more exotic setup (e.g. a domain with big.LITTLE).
>>
>> Another possible solution is to pin dom0 vCPUs (AFAIK they are just st=
icky by
>> default) and then create the pools from dom0 userspace. My assumption =
is for
>> dom0less we would want to use pinning instead.
>>
>> That said I would like to hear from Xilinx and EPAM as, IIRC, they are=
 already
>> using hmp-unsafe in production.
>=20
> This discussion has been very interesting, it is cool to hear new ideas=

> like this one. I have a couple of thoughts to share.
>=20
> First I think that the ability of creating cpupools at boot time is
> super important. It goes way beyond big.LITTLE. It would be incredibly
> useful to separate real-time (sched=3Dnull) and non-real-time
> (sched=3Dcredit2) workloads. I think it will only become more important=

> going forward so I'd love to see an option to configure cpupools that
> works for dom0less. It could be based on device tree properties rather
> than kconfig options.

I think device tree AND command line option should be possible (think of
x86 here).

> It is true that if we had the devicetree-based cpupool configuration I
> mentioned, then somebody could use it to create cpupools matching
> big.LITTLE. So "in theory" it solves the problem. However, I think that=

> for big.LITTLE it would be suboptimal. For big.LITTLE it would be best
> if Xen configured the cpupools automatically rather than based on the
> device tree configuration. That way, it is going to work automatically
> without extra steps even in the simplest Xen setups.
>=20
> So I think that it is a good idea to have a command line option (better=

> than a kconfig option) to trigger the MIDR-based cpupool creation at
> boot time. The option could be called midr-cpupools=3Don/off or
> hw-cpupools=3Don/off for example.

I'd rather go for:

cpupools=3D<options>

With e.g. <options>:

- "auto-midr": split system into cpupools based on MIDR
- "auto-numa": split system into cpupools based on NUMA nodes
- "cpus=3D<list of cpus>[,sched=3D<scheduler>]

This would be rather flexible without adding more and more options
doing similar things. Other sub-options could be added rather easily.

> In terms of whether it should be the default or not, I don't feel
> strongly about it. Unfortunately we (Xilinx) rely on a number of
> non-default options already so we are already in the situation where we=

> have to be extra-careful at the options passed. I don't think that
> adding one more would make a significant difference either way.
>=20
>=20
> But my preference is *not* to tie the new command line option with
> hmp-unsafe because if you use midr-cpupools and don't mess with the
> pools then it is actually safe. We could even lock the cpupools like
> Julien suggested or warn/return error on changing the cpupools. In this=

> scenario, it would be detrimental to also pass hmp-unsafe: it would
> allow actually unsafe configurations that the user wanted to avoid by
> using midr-cpupools. It would end up disabling checks we could put in
> place to make midr-cpupools safer.
>=20
> So in short I think it should be:
>=20
> - midr-cpupools alone
> cpupools created at boot, warning/errors on changing cpupools
>=20
> - midr-cpupools + hmp-unsafe
> cpupools created at boot, changing cpupools is allowed (we could still
> warn but no errors)

I'd rather add an explicit ",locked" option to above cpupools parameter.

>=20
> - hmp-unsafe alone
> same as today with hmp-unsafe
>=20
>=20
> For the default as I said I don't have a strong preference. I think
> midr-cpupools could be "on" be default.
>=20

What about making this a Kconfig option?


Juergen

--------------DB34264B6EE0AADC04E1BED5
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------DB34264B6EE0AADC04E1BED5--

--EMZ8BuDzesKpUActVmVQCILibcfgb31dC--

--IPP9Ec1viq4GUQVvD7kduxVmbutMtMy7L
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGV4m8FAwAAAAAACgkQsN6d1ii/Ey9J
jQf/ba8MPm0sJMQHN1Kxrod2DdedDP9rTpEBRiV7jcSfILuX/JRsB0GlKg+3N58XAZeFyUG6tMvY
zNsL1ilJ92bseMead0dJf9C7lV+DsACJb4ewe5ZSOh+ZzZMr6EfnR1+EtfjqlQFu1bu8xzbylRbv
cUnTGSoFzn8ZvZPhWNAbcvzeVurIsXmL9cDkoF1/5HhOgdfIDS0MR4RSKvj+xZpyeWnoWGv23Rgh
WhqEPsV1ZnPJoDHWCf1PC6p9rl2Iy37KrqolB89OoNfTHWui3sVEAhSEa/J3QsUFF5hCCLFIx5xb
3dTVfBnrNLgdKuF3KgYpA2ehkz8UwqbxdiFF+iZsnw==
=Gdvo
-----END PGP SIGNATURE-----

--IPP9Ec1viq4GUQVvD7kduxVmbutMtMy7L--


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 05:32:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 05:32:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227097.392683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mna1n-0003Uy-77; Thu, 18 Nov 2021 05:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227097.392683; Thu, 18 Nov 2021 05:32:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mna1n-0003Ur-3h; Thu, 18 Nov 2021 05:32:07 +0000
Received: by outflank-mailman (input) for mailman id 227097;
 Thu, 18 Nov 2021 05:32:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=l94Z=QF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mna1m-0003Ul-33
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 05:32:06 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dce895bb-4830-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 06:32:04 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 104871FD29;
 Thu, 18 Nov 2021 05:32:04 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id CBF9813CD1;
 Thu, 18 Nov 2021 05:32:03 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id +JAKMFPllWGiGQAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 18 Nov 2021 05:32:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dce895bb-4830-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637213524; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=rRGAu7bZdX3Ix9JjDYs+TM1bDyCbS8VjFB3i9fDpzso=;
	b=IXTG1B1p8nOT82thsHAyS5xb/uvyMUF+0QWFgzFeMeEOQncgGDlEOmquzge0zR8s2xtz5A
	ISfc9DongohcrZZLZ7YvoNQes5lhSh7McJRV1bEiY7eAGj4++zhEb2qYGIc7XCbdvAPzhG
	+VRdQOmPPJQV8FEbq0BxqbCimwL9LTw=
To: Stefano Stabellini <sstabellini@kernel.org>,
 Jan Beulich <jbeulich@suse.com>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
Message-ID: <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
Date: Thu, 18 Nov 2021 06:32:03 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="29RVxVUJg63awUgJUSxsgmOlVhK4615qM"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--29RVxVUJg63awUgJUSxsgmOlVhK4615qM
Content-Type: multipart/mixed; boundary="nSHzhRpesfpXITYpkJ2xhm90WcK6GlkeW";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
 Jan Beulich <jbeulich@suse.com>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org
Message-ID: <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>

--nSHzhRpesfpXITYpkJ2xhm90WcK6GlkeW
Content-Type: multipart/mixed;
 boundary="------------AC4F40E86C19AA84FCDD6900"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------AC4F40E86C19AA84FCDD6900
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 18.11.21 03:37, Stefano Stabellini wrote:
> On Wed, 17 Nov 2021, Jan Beulich wrote:
>> On 17.11.2021 03:11, Stefano Stabellini wrote:
>>> --- a/drivers/xen/xenbus/xenbus_probe.c
>>> +++ b/drivers/xen/xenbus/xenbus_probe.c
>>> @@ -951,6 +951,18 @@ static int __init xenbus_init(void)
>>>   		err =3D hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>>>   		if (err)
>>>   			goto out_error;
>>> +		/*
>>> +		 * Uninitialized hvm_params are zero and return no error.
>>> +		 * Although it is theoretically possible to have
>>> +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
>>> +		 * not zero when valid. If zero, it means that Xenstore hasn't
>>> +		 * been properly initialized. Instead of attempting to map a
>>> +		 * wrong guest physical address return error.
>>> +		 */
>>> +		if (v =3D=3D 0) {
>>> +			err =3D -ENOENT;
>>> +			goto out_error;
>>> +		}
>>
>> If such a check gets added, then I think known-invalid frame numbers
>> should be covered at even higher a priority than zero.
>=20
> Uhm, that's a good point. We could check for 0 and also ULONG_MAX
>=20
>=20
>> This would, for example, also mean to ...
>>
>>>   		xen_store_gfn =3D (unsigned long)v;
>>
>> ... stop silently truncating a value here.
>=20
> Yeah, it can only happen on 32-bit but you have a point.
>=20
>=20
>> By covering them we would then have the option to pre-fill PFN params
>> with, say, ~0 in the hypervisor (to clearly identify them as invalid,
>> rather than having to guess at the validity of 0). I haven't really
>> checked yet whether such a change would be compatible with existing
>> software ...
>=20
> I had the same idea. I think the hvm_params should be initialized to an=

> invalid value in Xen. But here in Linux we need to be able to cope with=

> older Xen versions too so it still makes sense to check for zero in
> places where it is very obviously incorrect (HVM_PARAM_STORE_PFN).
>=20
>=20
> What do you think of the appended?
>=20
>=20
>=20
> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xen=
bus_probe.c
> index 94405bb3829e..04558d3a5562 100644
> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -951,6 +951,28 @@ static int __init xenbus_init(void)
>   		err =3D hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>   		if (err)
>   			goto out_error;
> +		/*
> +		 * Return error on an invalid value.
> +		 *
> +		 * Uninitialized hvm_params are zero and return no error.
> +		 * Although it is theoretically possible to have
> +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
> +		 * not zero when valid. If zero, it means that Xenstore hasn't
> +		 * been properly initialized. Instead of attempting to map a
> +		 * wrong guest physical address return error.
> +		 */
> +		if (v =3D=3D 0) {

Make this "if (v =3D=3D ULONG_MAX || v=3D=3D 0)" instead?
This would result in the same err on a new and an old hypervisor
(assuming we switch the hypervisor to init params with ~0UL).

> +			err =3D -ENOENT;
> +			goto out_error;
> +		}
> +		/*
> +		 * ULONG_MAX is invalid on 64-bit because is INVALID_PFN.
> +		 * On 32-bit return error to avoid truncation.
> +		 */
> +		if (v >=3D ULONG_MAX) {
> +			err =3D -EINVAL;
> +			goto out_error;
> +		}

Does it make sense to continue the system running in case of
truncation? This would be a 32-bit guest with more than 16TB of RAM
and the Xen tools decided to place the Xenstore ring page above the
16TB boundary. This is a completely insane scenario IMO.

A proper panic() in this case would make diagnosis of that much
easier (me having doubts that this will ever be hit, though).


Juergen

--------------AC4F40E86C19AA84FCDD6900
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------AC4F40E86C19AA84FCDD6900--

--nSHzhRpesfpXITYpkJ2xhm90WcK6GlkeW--

--29RVxVUJg63awUgJUSxsgmOlVhK4615qM
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGV5VMFAwAAAAAACgkQsN6d1ii/Ey+m
2wf9GyRRXxpr7aSCaqm3ovd4UF8HOBo0CnBk+Ti67Vjan76QfABYXOAHc42WfBqnSyIBqOSu7jfc
gTasNsMIuW0UIBP+3/PxkxQDsEH/lH5PhP981gubpBybw5kmZUkBjciYyxC0SJltFpr/PxR3naq9
LYx9p5LvjLKISEE0Ti2IKWKnNFw8Y4Wvuvi7T8+kKkChe2wmF/++ZuxtZ0QLENVcNy0K4wmObbDK
K8SbtprmzIk7go564BEW8quvdvyryv72kQq2jO8mcRKUmyixvxRkzSK5D1n5vojDjZKysO2ZIHTf
kc38gS1aN61mdkjZD9DrpeduE/5hHnxe+Rw1paAp7g==
=HByG
-----END PGP SIGNATURE-----

--29RVxVUJg63awUgJUSxsgmOlVhK4615qM--


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 06:05:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 06:05:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227102.392694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnaXa-0006jB-Rr; Thu, 18 Nov 2021 06:04:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227102.392694; Thu, 18 Nov 2021 06:04:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnaXa-0006j4-Ns; Thu, 18 Nov 2021 06:04:58 +0000
Received: by outflank-mailman (input) for mailman id 227102;
 Thu, 18 Nov 2021 06:04:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnaXZ-0006iu-K2; Thu, 18 Nov 2021 06:04:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnaXZ-0004In-ER; Thu, 18 Nov 2021 06:04:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnaXZ-00068a-2b; Thu, 18 Nov 2021 06:04:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnaXZ-0005ok-24; Thu, 18 Nov 2021 06:04:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=860EmpXgXhg4ttkS1pF8WlcYISc7xep2zh8cQOVO0Sg=; b=yuMdZl36GiyGloyjVzdI7vye6I
	dw/E6XT2owAhhIj+r4mtPZ8jotnuOz9AZqJPj/rgE4529Y+I3UiPBaYIHKFr4WP7MlUE/3rkVBXwx
	WXHpMJD+UoS6ecul9PtgstQBalwbk1xLx0PYRTRWl4agu4FAzlTuD6fy6qXaF6Irvwmg=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166169-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.15-testing test] 166169: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.15-testing:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=f90cea9c556b7e67b3527e39f9732fb4af2fc11a
X-Osstest-Versions-That:
    xen=f50ef17c9884c0c2d486d3b1de8f110bb6b22c42
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Nov 2021 06:04:57 +0000

flight 166169 xen-4.15-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166169/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 165521
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165521
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165521
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165521
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165521
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165521
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165521
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165521
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165521
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165521
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165521
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165521
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165521
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  f90cea9c556b7e67b3527e39f9732fb4af2fc11a
baseline version:
 xen                  f50ef17c9884c0c2d486d3b1de8f110bb6b22c42

Last test of basis   165521  2021-10-15 09:38:50 Z   33 days
Testing same since   166169  2021-11-17 12:06:36 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   f50ef17c98..f90cea9c55  f90cea9c556b7e67b3527e39f9732fb4af2fc11a -> stable-4.15


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 06:07:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 06:07:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227108.392708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnaZe-0007PF-EH; Thu, 18 Nov 2021 06:07:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227108.392708; Thu, 18 Nov 2021 06:07:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnaZe-0007P8-BF; Thu, 18 Nov 2021 06:07:06 +0000
Received: by outflank-mailman (input) for mailman id 227108;
 Thu, 18 Nov 2021 06:07:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnaZd-0007Ow-Do; Thu, 18 Nov 2021 06:07:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnaZd-0004Mb-9P; Thu, 18 Nov 2021 06:07:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnaZd-0006FO-24; Thu, 18 Nov 2021 06:07:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnaZd-0000KK-1M; Thu, 18 Nov 2021 06:07:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DIBlLKWmfIl2IrOTSgPVKEPat70fmKb06vTis5o0Cg4=; b=mUrC9UE+R46wIhzNtHrEABhl4Z
	DbCT3C7h7TZtNNtdNtlebqwmGIbtL39wl2kJeEsUi3/W/aSak4/RAapL4fs7LdeB9TSIyBroeWzo3
	o1wJPJAWoQiQZmWDaPvy/wQoQZFkV/uTF9Cs477hf96IpyhAtCKlwimOayai8MxJnXB4=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166163-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166163: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-amd64-amd64-freebsd12-amd64:guest-saverestore.2:fail:heisenbug
    linux-linus:test-arm64-arm64-xl-vhd:guest-start/debian.repeat:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8ab774587903771821b59471cc723bba6d893942
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Nov 2021 06:07:05 +0000

flight 166163 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166163/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail in 166157 pass in 166163
 test-amd64-amd64-freebsd12-amd64 18 guest-saverestore.2    fail pass in 166157
 test-arm64-arm64-xl-vhd      17 guest-start/debian.repeat  fail pass in 166157

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                8ab774587903771821b59471cc723bba6d893942
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   16 days
Failing since        165992  2021-11-02 05:40:21 Z   16 days   25 attempts
Testing same since   166149  2021-11-15 06:45:03 Z    2 days    5 attempts

------------------------------------------------------------
2166 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             fail    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 250693 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 06:52:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 06:52:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227117.392726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbHV-0003r9-3N; Thu, 18 Nov 2021 06:52:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227117.392726; Thu, 18 Nov 2021 06:52:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbHU-0003r2-VO; Thu, 18 Nov 2021 06:52:24 +0000
Received: by outflank-mailman (input) for mailman id 227117;
 Thu, 18 Nov 2021 06:52:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=bdp6=QF=arm.com=Wei.Chen@srs-se1.protection.inumbo.net>)
 id 1mnbHT-0003qw-Ij
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 06:52:23 +0000
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03on0607.outbound.protection.outlook.com
 [2a01:111:f400:fe09::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 135940cb-483c-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 07:52:21 +0100 (CET)
Received: from DBBPR09CA0006.eurprd09.prod.outlook.com (2603:10a6:10:c0::18)
 by AM0PR08MB5188.eurprd08.prod.outlook.com (2603:10a6:208:165::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 06:52:18 +0000
Received: from DB5EUR03FT024.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:c0:cafe::63) by DBBPR09CA0006.outlook.office365.com
 (2603:10a6:10:c0::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Thu, 18 Nov 2021 06:52:18 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT024.mail.protection.outlook.com (10.152.20.67) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 06:52:18 +0000
Received: ("Tessian outbound 157533e214a9:v110");
 Thu, 18 Nov 2021 06:52:18 +0000
Received: from 5ec15bcae8ec.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 10F79A4D-CA9C-4310-AEF6-23F27BE02214.1; 
 Thu, 18 Nov 2021 06:52:12 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5ec15bcae8ec.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 18 Nov 2021 06:52:12 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com (2603:10a6:10:2a2::7)
 by DB9PR08MB6635.eurprd08.prod.outlook.com (2603:10a6:10:254::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Thu, 18 Nov
 2021 06:52:04 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5]) by DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5%3]) with mapi id 15.20.4669.013; Thu, 18 Nov 2021
 06:52:04 +0000
Received: from [10.169.172.97] (203.126.0.113) by
 SI2P153CA0035.APCP153.PROD.OUTLOOK.COM (2603:1096:4:190::14) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.10 via Frontend Transport; Thu, 18 Nov 2021 06:52:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 135940cb-483c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SA6cCkc5CHwxAPEJcV/2EV1idpDK9DdL9LN9DS9YFeM=;
 b=ZL3cq9H7Xnng0tGGvbmPg/HUXrLUDwscxfVsCnPBy6AbRigUOQZ/y8ecO6PpNUDBYQKHZRiY0+8NBWfb2f7JYuqQr6Go1s5U+uVdZoqaLX1kflQU9Xbg6JMtpHv2wk42bJwitvAMY2tMKWM5xZHTVp0yLXTRLzdW2hAdNwVVFmc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: c75defadf37f2473
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=J78SX++PFvW8UM1vx96RSuC/UCCSo5AitsUqS/XCPscHFXIbogxjSnw0bgZE8/bdtBnuIU/leu5LcUtBIwddyn1YemRx2wXZyHqG/+aEpHS7anfMpH8hYOsSRA0gBrmgfIi1vzNnlRpDtA4vG+psPID+KHt5yvWWNrrhMHbqEjMD4GRR1b+f84Jk9WC0z/pxuwCPB3ErkTYav9+a4ihOHiylw8XaV3nKOtdijEBzwLbiGjtb8uYJc+U1FDFWlueVj43GZoA7FOF8xocKCFd96ytgANhkj1EUUF9682sPcrjKcliYIx0AtHL0idN/xfjmTSW+VjpwKbBV/k7jXNoQbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SA6cCkc5CHwxAPEJcV/2EV1idpDK9DdL9LN9DS9YFeM=;
 b=eAsvJSvymPWtzuB649ASnHIhUlmhsARO70aEtPNueVq2SsOjrlsgIbXIw6tjBrf+1xaqEuzSJQUb/shgpCtaCcttgUbSWlUWI0zprOz7rm7SqAC0WZ9J+TVph5tbhaNvtT67aKfJHm1FPR1AVs1vI+5honCLklGC9BrZzjkPhZFE/NOB7x0Nzaw2JQA+o3TV/JSmruXhFTf1UxwLnxqApw+S6mfO5TAWh1muhEC4IqdFgrho5Zjunoy4jd6+i8spYEVcpIRxwXD/AchtssA8FaHZ2/GH+s/JI8Rr0FgPABs1aq1HAHG4a1S/PsR6InBYp3wJ6VQZWePxPgOSFWIlbQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SA6cCkc5CHwxAPEJcV/2EV1idpDK9DdL9LN9DS9YFeM=;
 b=ZL3cq9H7Xnng0tGGvbmPg/HUXrLUDwscxfVsCnPBy6AbRigUOQZ/y8ecO6PpNUDBYQKHZRiY0+8NBWfb2f7JYuqQr6Go1s5U+uVdZoqaLX1kflQU9Xbg6JMtpHv2wk42bJwitvAMY2tMKWM5xZHTVp0yLXTRLzdW2hAdNwVVFmc=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Message-ID: <bdfc59ab-87cb-26bf-78f6-bc521e7bdd5b@arm.com>
Date: Thu, 18 Nov 2021 14:51:56 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH] xen/smp: Support NULL IPI function pointers
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <20211117164852.16394-1-andrew.cooper3@citrix.com>
From: Wei Chen <Wei.Chen@arm.com>
In-Reply-To: <20211117164852.16394-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SI2P153CA0035.APCP153.PROD.OUTLOOK.COM
 (2603:1096:4:190::14) To DB9PR08MB6857.eurprd08.prod.outlook.com
 (2603:10a6:10:2a2::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0a599e2e-5257-40cd-00e9-08d9aa5ff690
X-MS-TrafficTypeDiagnostic: DB9PR08MB6635:|AM0PR08MB5188:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB5188109A9540935C340B8B2E9E9B9@AM0PR08MB5188.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 HvzbUHFeDGbqIU5rMa1QqavAdJUFRSkCwo+thZ0IL25DXZ2qPKa0QFcPp5Mg67Ylhgex3nMExppMln+d/755D4kZel0M5rBKh+njzjvJ/V/mNYlRac4oUgJUf9D/xwKcXaMddipQFwc8ykkFoHHf/DuVVvUbn2gl0iC09mXnsqqxyBKiCAX9ekKs1ifglBcZcSrG7iWgHXKExVp1HHTyizl3FxV9niG79J7CqESbYPH6IUBYrGJ160HmuTnPt7sC9G74I3eH0Q6SacLhcu0dHgMKMY9A4+RcTFu2zeixSzBg40IfO7iiuVH/pGtKHmjn7LQIkz4y/cR9DEqZF7jR3YOol/ppb3tmoJFYL8UBsQJsHOIFOgvgAulFSqApNKOwmnyei57fV/Fp1W46689jm0dczTgFRhX+oaXWomFfDzUGsWn7/U61YpdAcjj8On1soILTu7/yL7SVLGBHHo5fIYgXuX0UTa0PMFRR2s+1oUVr5VPAcEMiKsdq3cgY9n+4H33N/bzMdhK5KusL/RjzAL1wn4NEsrAtTC3uDK63q+91ChKP0xkIHQ4MO40JPHUOvbRxhRZd4QimDCde2kElZmqzc+MFT1przh/C01QKsjtjE6vry7okdnfae1zfGE0zTBqvRvOnJOg4ijJ/e38CZCrGoCvUW5tcm+i3Zh9tS07zdsYZ75b0Aa9valNeSyfGaOh8NCIWNsLbvnfhLMGV/Qx9oph4K3m6fbD1oIwUNRk=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6857.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(36756003)(53546011)(508600001)(5660300002)(26005)(38100700002)(2616005)(86362001)(66946007)(16576012)(31696002)(66556008)(6486002)(316002)(186003)(4326008)(83380400001)(6666004)(8676002)(66476007)(956004)(2906002)(8936002)(54906003)(110136005)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6635
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT024.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	68263dff-d327-4608-03c8-08d9aa5fed97
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NCV1LUOVPVPwsDLBTwgvHo8laoyuHGQTON89QubXqdw3e6ZO5RTD5QzoMcGb6ViS0OJtAaBVKkKG31CzeAjUukvKE0Qdzk37qJhTsBFf/f3aUoqmmqj1o50uli1T8kuNeH8YbN48vhYYYMkO9V5lckm/e7ZOmEijDeahcLmdraNPv1YwkB6fAxkejJD3OrQnHNirwQ3K2nZugYxQmyWUKM3hkSd6oumwlPt6NTOd51iPjKFRusd9V9C0vlu/ETCbH4v1iLW2vTMURoPmjrUI29R9P8kcZTWHyo0HhR9CswnRMHzkah6itszg4nx29vVnkM+ueCWWNWtGx3xadToCgV5isUJNkWu9gjJmEqa6tz1Onh0g8wDH8mkCjfhOzo++RQVtHoh3Ed+jtF+kiRGy2BTYOd1I/sDy0BuweoXzhqF/JC+jTwKx37zORDV++J1CqRbWCrlCJWtz/JrshKtqjDIX1FG+KQ48+GpMLWG9lVJZPM+r7zjYQZk2wX9OwYOgh0+LgVHSNJ7Kp/zt5iJcyys4C1d3ffkVmW+lxDIS173gYYXM61e6jss5Hp7t1LQNhOaUvpSL8mgaZtCvVIex4EYOWiJMqZEm2OGkKgnYQpxpiE2OJGHRh77IRt4Ho7zl2QLSWRKLJDxj/R95HkaKMCeaPHLQUzsdGR84ckx38AQTLPRCMhiu5gejFinzL2Tm0XQR5yi0qdCQHbomDhxoy3ekNSmbrEIiKOJm+J6ApH4=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(6486002)(54906003)(110136005)(47076005)(36756003)(81166007)(31696002)(2906002)(336012)(2616005)(4326008)(36860700001)(508600001)(5660300002)(8936002)(316002)(16576012)(83380400001)(70206006)(186003)(82310400003)(8676002)(26005)(31686004)(53546011)(6666004)(86362001)(956004)(356005)(70586007)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 06:52:18.4813
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a599e2e-5257-40cd-00e9-08d9aa5ff690
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT024.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5188

Hi Andrew,

On 2021/11/18 0:48, Andrew Cooper wrote:
> There are several cases where the act of interrupting a remote processor has
> the required side effect.  Explicitly allow NULL function pointers so the
> calling code doesn't have to provide a stub implementation.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
> 
> The wait parameter is a little weird.  It serves double duty and will confirm
> that the IPI has been taken.  All it does is let you control whether you also
> wait for the handler to complete first.  As such, it is effectively useless
> with a stub function.
> 
> I don't particularly like folding into the .wait() path like that, but I
> dislike it less than an if()/else if() and adding a 3rd cpumask_clear_cpu()
> into the confusion which is this logic.
> ---
>   xen/arch/x86/mm/hap/hap.c | 11 +----------
>   xen/arch/x86/mm/p2m-ept.c | 11 ++---------
>   xen/common/smp.c          |  4 ++++
>   3 files changed, 7 insertions(+), 19 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
> index 73575deb0d8a..5b269ef8b3bb 100644
> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -696,15 +696,6 @@ static void hap_update_cr3(struct vcpu *v, int do_locking, bool noflush)
>       hvm_update_guest_cr3(v, noflush);
>   }
>   
> -/*
> - * Dummy function to use with on_selected_cpus in order to trigger a vmexit on
> - * selected pCPUs. When the VM resumes execution it will get a new ASID/VPID
> - * and thus a clean TLB.
> - */
> -static void dummy_flush(void *data)
> -{
> -}
> -
>   static bool flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
>                         void *ctxt)
>   {
> @@ -737,7 +728,7 @@ static bool flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
>        * not currently running will already be flushed when scheduled because of
>        * the ASID tickle done in the loop above.
>        */
> -    on_selected_cpus(mask, dummy_flush, NULL, 0);
> +    on_selected_cpus(mask, NULL, NULL, 0);
>   
>       return true;
>   }
> diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
> index b2d57a3ee89a..1459f66c006b 100644
> --- a/xen/arch/x86/mm/p2m-ept.c
> +++ b/xen/arch/x86/mm/p2m-ept.c
> @@ -1236,14 +1236,6 @@ static void ept_memory_type_changed(struct p2m_domain *p2m)
>           ept_sync_domain(p2m);
>   }
>   
> -static void __ept_sync_domain(void *info)
> -{
> -    /*
> -     * The invalidation will be done before VMENTER (see
> -     * vmx_vmenter_helper()).
> -     */
> -}
> -
>   static void ept_sync_domain_prepare(struct p2m_domain *p2m)
>   {
>       struct domain *d = p2m->domain;
> @@ -1269,7 +1261,8 @@ static void ept_sync_domain_prepare(struct p2m_domain *p2m)
>   
>   static void ept_sync_domain_mask(struct p2m_domain *p2m, const cpumask_t *mask)
>   {
> -    on_selected_cpus(mask, __ept_sync_domain, p2m, 1);
> +    /* Invalidation will be done in vmx_vmenter_helper(). */
> +    on_selected_cpus(mask, NULL, NULL, 1);
>   }
>   
>   void ept_sync_domain(struct p2m_domain *p2m)
> diff --git a/xen/common/smp.c b/xen/common/smp.c
> index 79f4ebd14502..854ebb91a803 100644
> --- a/xen/common/smp.c
> +++ b/xen/common/smp.c
> @@ -87,10 +87,14 @@ void smp_call_function_interrupt(void)
>   
>       irq_enter();
>   
> +    if ( unlikely(!func) )
> +        goto no_func;
> +
>       if ( call_data.wait )
>       {
>           (*func)(info);
>           smp_mb();
> +    no_func:
>           cpumask_clear_cpu(cpu, &call_data.selected);
>       }
>       else

Why only apply to call_data.wait non-zero case?
Is it because func will not be NULL when call_data.wait is zero?

> 


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 07:00:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 07:00:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227123.392737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbOt-0004rj-49; Thu, 18 Nov 2021 07:00:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227123.392737; Thu, 18 Nov 2021 07:00:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbOs-0004rB-VH; Thu, 18 Nov 2021 07:00:02 +0000
Received: by outflank-mailman (input) for mailman id 227123;
 Thu, 18 Nov 2021 07:00:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnbOq-0004ab-Ny
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 07:00:01 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23d7db8a-483d-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 07:59:58 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AI6XuKQ020583;
 Thu, 18 Nov 2021 06:59:55 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2169.outbound.protection.outlook.com [104.47.17.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cd6gv1mrv-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 06:59:55 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB7298.eurprd03.prod.outlook.com (2603:10a6:20b:26c::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20; Thu, 18 Nov
 2021 06:59:51 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 06:59:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23d7db8a-483d-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=k8YytWdfveFBNF5qIt/a3OqlBkJSvCXOic4vXXaVtxKNZcMyzaHF+Gy9soh8s/hstd5KbChH95udUx1imWv+cVUeiGxEU4Lc75O3zwHxVq+jbTOwpSLtGYyii+mStlDZWggXkcBI9JOAGFIsEqkgJjSDNcLJKFNsSL5iqc7h7dsyeSrk2WOp+BQ7+5xYjw29dXEuf5W/mxBSmuHVVh/yhjc4FVlRwTADIPB0LbXeLbRVdw46+hWt/jAfipwPJHInTM//E3yS4gTZTzWTso73mkm+IHbj0YFcyCKjQTyOxsyUk7NYBwecPqRhLDJHSVyj49h+ZsKAzVYnS0Pn9XTcGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7qg7XRTUKILwrI9usAmHhgG7UQvg1vjST346KolD7nw=;
 b=k4rBWFlRe/w9yap4scWrBppaJ/AJFAt63omznbS8JwJQD1tk/kyWbG0evLqp1WFAe+1boXA/TP6UR8d52523Tdb32/ptjIbOYRxygarWMvk6BzqQbX3lPsoYGQStL7QUwKYAbSSkC1McxJbHf7BdFuooXFe+ZKUjN/AamzSWdvdZbpcqbZSm08+DvCquVTi/MH8ywKFBmy8M8njEXoOVgzq++wF7odyNAb7Z0C2eNtF65+SeSu/cooKCxps4Gkuw1+hUKhGXmTWX8GI+ilg8x2f7xb7LxC3BA6ogvxyZUzb956REZgfzOFh3TqwK9vc18NOgb008k+zyIrwdFIL4dQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7qg7XRTUKILwrI9usAmHhgG7UQvg1vjST346KolD7nw=;
 b=i9UoZKF0QaUW5XMVNdjvAZyftzEOjfDrpN9/FHFde7oTsmKs+MvmbHX/2EPz6ny8GPapPq4vW064H6Y/k92lCp3xJZO+CXuxiO2JmNcA1vRVqnHHLlWML8QemEDHdj4Jn/6ip9CctcSLnutOeue1q/hUbDraQTlxB6BJ/7YZ0Qbc4FP7kGOj/OgtmB10i+vdrjvBgPhU9pke5UQD/zoVVpTY9sG3VTZhBKlFBMNi7tbDnvkWJH50VsdtwpMzAVPK/x+FELCfxO0a6a9MAt0QnnufPU9qlhJHKHfXM8REUWsvcUHoMPy9PKKai9PbDu0m0Z8hPL2to9u30OrX/aqMxQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 5/7] xen/arm: do not map IRQs and memory for disabled
 devices
Thread-Topic: [PATCH v6 5/7] xen/arm: do not map IRQs and memory for disabled
 devices
Thread-Index: AQHX0g8TzX0nJtcMKUqFWH5LUHUR4awGmpkAgAJVCwA=
Date: Thu, 18 Nov 2021 06:59:51 +0000
Message-ID: <ffaabc83-9ca7-1f41-23a9-bf2a1e3828ca@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-6-andr2000@gmail.com>
 <997e2ad5-9b52-73b4-a02d-f255480684d9@xen.org>
In-Reply-To: <997e2ad5-9b52-73b4-a02d-f255480684d9@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 99f01b1e-4736-41ef-eab3-08d9aa610499
x-ms-traffictypediagnostic: AM9PR03MB7298:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB7298066130417A4B61E6665CE79B9@AM9PR03MB7298.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 I1X7JuB48Vko6rlVsGMaNvHKXTzIMJbxueibXvrhOlZpEcK+e1BJW4V6j8k0K1EL40oavVUyS3aXX+s7az2pDTJkIGtf528f7sd6pIg3zSYuyueMDL/ZPv4ZuV/w9GmbU9WiRCA3pTC4tvc1T8B/jQSLXyENBk7r7GI3roUaKu4D1cONsrXoOVu/8UBwhIm3Qq/aclrK4V39AmUNFTe4jg6SeGeVKGx3bumfNucKsvORLqgKYluf26Y7v2nEkHztAbtsuSIHeDYsQaKXY9h71b2TLBX6MJuylJJyS9IOCGGVFrjNEPGNXC3S/lVhJAZ0CBJWNI2O6EAX6ClYm87znM2tqsDBmmdg+LUwD7G7NRHz4qHgRbGFYA4xC5XKH7jhXAFeXF5TI+VGqVypohgd9oSrddM6LWED0f1Vh7OItwqYVpg4HucWQAe3pX7fNhPTJGPj1nQDizI7YXLZZ1kMQnP6BZjqCRwdPwK9faDun7NwmcPdy77BJ6G0eT7YeYxyIZTcBKC21ldthOeI12mDpqGp37hfXnhJFyZspmTdE8yY2KkSjzW+RwFIOmubsn5OJPAoazkB9yc971Ew5iTcYhKCFPwlc0PV4O0at1nMjb/9uQ0G6H8l2QcuMzAM3WWfpaHEQD8xF/x+QoIN7Xm2xX8qKkFtkRQN8BFNxSUCFmSbBybK+xU0mY5twoiTJCO/LVbvXVf8D98CxWlzBoAdkvhi7nynTwH1Z34HiSqxqDrqq0dDipvg15zwxqeGAErvDZlusgRoJTyQXUmZAG2zUf5/vQ68pS6hV0AQIsDyMFGH9E3TOBRT2D8ZQ4ExjaFOyEwngY+BEEOoyiovaZemBGcHbyCE92R42Qj6rtVwodySIjgnZNvSzYpBMl/I1OOP
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(966005)(186003)(26005)(7416002)(508600001)(110136005)(83380400001)(2616005)(54906003)(107886003)(5660300002)(76116006)(91956017)(6486002)(66946007)(8936002)(64756008)(4326008)(316002)(71200400001)(38100700002)(36756003)(31696002)(31686004)(6506007)(66556008)(122000001)(86362001)(38070700005)(66476007)(2906002)(8676002)(66446008)(6512007)(53546011)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?UmVzNVJaOHhXNFdWUDhVbDVZKy9UbTdnNDF0SUxsSk10bU8yQ2hQQTBObGZ6?=
 =?utf-8?B?UFR2c1VsdkJBeHVFdjR3Qy9VZUJpcGkxNDVYVjlNam9DMWFWVWo2NXVkWGNn?=
 =?utf-8?B?K3RiNFJaVm9FdTh1bkFEM2lYNFFlMjd3ZUpqUjZXSEFvOHpHQ2llQkNXYU9V?=
 =?utf-8?B?WjFqVW5iSDVWb01ZSXBvL3Z3d2VoSEE2bGt0eGhBQVBWNHdJOWphYlJKcGdF?=
 =?utf-8?B?bHB1OWUxdnphcGVDRlcrTlBmVnBRMlRYbUJ2bTIzZi90MUJyKy9KK0N4WkUw?=
 =?utf-8?B?VmRlRmt6WmY4ZFZvaUc2RFk2dVZUVWZ3RkwvemdrMldGMkk2eU9RUkhhbEs2?=
 =?utf-8?B?T2lzVExWblJpalN2ZGx0emJzV24yUDZURXlxUGlZSDZFVUNxZkUvNHdxSHJo?=
 =?utf-8?B?WFMvMndGV1gxMjQ2N1h2R2o0Ulh3Y0MzV0JhSVlhZ09qeXdVMTJQN3N3aXo4?=
 =?utf-8?B?azJZOXI0c1RpSG9xSnQzeDlzWlNVbU0vQ3FhTzZFMDRWNitVOGpuODl0QWt5?=
 =?utf-8?B?dU94V003RSsxb056MlZ3WitSbENsOThRYVkvZ3lXQno1Q1JGNXhnZ2Fub2RY?=
 =?utf-8?B?REczOHpNRG00NVRLczBwVnpDdlByc0JwZWJiQmRVUjNJaG9DNGFxcVd2WHpl?=
 =?utf-8?B?T0ttYkpXYkUxQ08vZFJXSk84ekQvaGdCMkxycVBpRGs3Y3QycTdNdVRpeFFa?=
 =?utf-8?B?SENadVdXR2t1a2RiblIzWDFRSVVlbHVVOTFpcFgvWmFZbWNHZVY5eXBiT2w0?=
 =?utf-8?B?Z2NydXJCRy9XSmJUcHUrK2dHcVVsZFdsNDNmcUFCaHo3QTRueVdMZDRuMVly?=
 =?utf-8?B?YUxWV3NSMkYzZmkrOE5IMDBhM1IybzJZNW03dVgxdXVBa0dOSzBLMHI5QjdQ?=
 =?utf-8?B?ZWRCMDVJZXRoLzRuUlkzYVJoeEl1V3JRS3IrNkNiT2hnaHRyb1NKT09DUGZL?=
 =?utf-8?B?WkFLOFlJcGNQVWx2bHd5Y2ltNUwzVUl4VG9jdlBMVmQwTFNFSDI2L1g1b2dO?=
 =?utf-8?B?RW91M3ZLa2dIT2h2TFZMdnJvMUNVTXdyaWlxYkNPbEZkM3c4TkpIQ3pxR2lp?=
 =?utf-8?B?NjU5dXpVbG15TWdCYVkxS2E2NVJRUUQ0N1h5RTJSYU5ybGh4MTRHbjBtUEpZ?=
 =?utf-8?B?M3RWNEphSWVHOHRrcEEyeDdJR3p1Y3FLejhVeGMybDZpelZZUDZLSUUxM3NB?=
 =?utf-8?B?OFF5WHcyWTVsKzg4T0p6T21rSkQxNWFuekVpYnRrVk1WMDVSdzJOeHhqNXEv?=
 =?utf-8?B?ek5zVkVlMUh1TDhsSTZJUFhVNjd3ZzF5Q1VhaWxTbmtoVGxHYXVHUFB1Z3dv?=
 =?utf-8?B?VlpkVys3R294K2o2U05VMk11M2VUaGQwM3Q0dHlnT0hXVXRIdi8wQU5vY2lR?=
 =?utf-8?B?c2xzMlV1d1pQNmxibG8vOFlFZjZraFpIUlhLR1lNOWk4WXFnV1JjVEhGREY1?=
 =?utf-8?B?RlQxczJpa0kxb3MrTEJpSjV4dU92dUhIR3B4MnRubloyRnZHWWF4aEVZMG05?=
 =?utf-8?B?d2Z2cUZka3NjNmU2WmMwNjkrdm5KWTRZbllzUk9JaG43aFVicXZHbDJtNEly?=
 =?utf-8?B?T3BEZXNENXNkKy9XbXBjUWdWRzB3d3Y2WDRYSjNsWjgwd0lVSmJzQlpkd1Zx?=
 =?utf-8?B?Yktzb1llK1paTi9iZGtmdEJhMzVWWi9Qc2taaS9nOG1Kd3cvWmlIWDRPNHB2?=
 =?utf-8?B?eWFuR2Vra0NUdnEvUGowQStTazhyN3dsZFF3YjNQV0UxUWZ3eXVaZ3h6enY2?=
 =?utf-8?B?YzREVTZFUzVmRVNIanR5Z3JHNjVPeEkzOVY4UTl0OEVxSkhBb0Z0VEhzTzNv?=
 =?utf-8?B?KzlieUlURmVodzBtTG5ZWmpvdllpdlRiRUxvVHJ3NlV3VElIYlZ0WExieVdQ?=
 =?utf-8?B?a095OTYvWDB6OWdwdk9obk11bnM2TE93K1NHWHJSU2VHSEtBVk9sSXppK2pS?=
 =?utf-8?B?UEV3REhzYUh2WHE1dEYrclFTUkVaVVVUdVp0dCsvK01SUm84NXp2YlArYnpo?=
 =?utf-8?B?c3d1bzZWUCszb0VRUEVrZGFYZHZWcnl0c3A0b0U0MFUvbWlxZWgzWVZobFVI?=
 =?utf-8?B?Mkg5Z1FZSTB2aTNURGdYb0FHOC9va25CZ3hIRk1Zc05JUDhjMVBhalhxVEMw?=
 =?utf-8?B?WjY1ZitZM2p3Rng3TldHdnJDcUZ5SnVkS3JoSGt3ek1mc0pLUFRWa24rK2hv?=
 =?utf-8?B?MXcyY1FvaG9kTENIbnJsNDQwejB5MXZRMXdVcGwvYzdnWXQ0ak40aGQ5N2xk?=
 =?utf-8?B?aSsyVzdDcTAxN3BhSlY2eE41RjI1Vjh6cHhTSEVwUmtYZWR6djg3bGd4bWQ0?=
 =?utf-8?B?RDA3ZEJkR1dzSTIvY1JaM3ZJRGk1aUh3MFlUNitpdjN4cjJMNzRyQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2750701F04E77C4B8E7C70D5F36FBEF9@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 99f01b1e-4736-41ef-eab3-08d9aa610499
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 06:59:51.4136
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: y7KqmL33JAI7m4L1OsMm9BdP49VKqUkeC5cuH5etLlMj5LLcO7C3q92gZBshU+NVVhd4ms7d6+ekPBlZlXEtxw9EYzw89zlV+jvZ0VTaC5soMzTRIT4X6EzNzIs5/cDX
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7298
X-Proofpoint-GUID: Fl_1ucox1aIObHw8fR4YlckllZqF4yuc
X-Proofpoint-ORIG-GUID: Fl_1ucox1aIObHw8fR4YlckllZqF4yuc
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_02,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0
 clxscore=1015 mlxscore=0 lowpriorityscore=0 spamscore=0 phishscore=0
 priorityscore=1501 mlxlogscore=684 suspectscore=0 impostorscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180040

SGksIEp1bGllbiENCg0KT24gMTYuMTEuMjEgMjE6MjIsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRyLA0KPg0KPiBPbiAwNS8xMS8yMDIxIDA2OjMzLCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2Fu
ZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+DQo+PiBDdXJyZW50bHkgWGVuIG1hcHMgYWxs
IElSUXMgYW5kIG1lbW9yeSByYW5nZXMgZm9yIGFsbCBkZXZpY2VzIGV4Y2VwdA0KPj4gdGhvc2Ug
bWFya2VkIGZvciBwYXNzdGhyb3VnaCwgZS5nLiBpdCBkb2Vzbid0IHBheSBhdHRlbnRpb24gdG8g
dGhlDQo+PiAic3RhdHVzIiBwcm9wZXJ0eSBvZiB0aGUgbm9kZS4NCj4+DQo+PiBBY2NvcmRpbmcg
dG8gdGhlIGRldmljZSB0cmVlIHNwZWNpZmljYXRpb24gWzFdOg0KPj4gwqAgLSAib2theSLCoMKg
wqDCoCBJbmRpY2F0ZXMgdGhlIGRldmljZSBpcyBvcGVyYXRpb25hbC4NCj4+IMKgIC0gImRpc2Fi
bGVkIiBJbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGlzIG5vdCBwcmVzZW50bHkgb3BlcmF0aW9u
YWwsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1dCBpdCBtaWdodCBiZWNvbWUg
b3BlcmF0aW9uYWwgaW4gdGhlIGZ1dHVyZSAoZm9yIGV4YW1wbGUsDQo+PiDCoMKgwqDCoMKgwqDC
oMKgwqAgc29tZXRoaW5nIGlzIG5vdCBwbHVnZ2VkIGluLCBvciBzd2l0Y2hlZCBvZmYpLg0KPj4g
wqDCoMKgwqDCoMKgwqDCoMKgIFJlZmVyIHRvIHRoZSBkZXZpY2UgYmluZGluZyBmb3IgZGV0YWls
cyBvbiB3aGF0IGRpc2FibGVkIG1lYW5zDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yIGEgZ2l2
ZW4gZGV2aWNlLg0KPj4NCj4+IFNvLCAiZGlzYWJsZWQiIHN0YXR1cyBpcyBkZXZpY2UgZGVwZW5k
ZW50IGFuZCBtYXBwaW5nIHNob3VsZCBiZSB0YWtlbiBieQ0KPj4gY2FzZS1ieS1jYXNlIGFwcHJv
YWNoIHdpdGggdGhhdCByZXNwZWN0LiBBbHRob3VnaCBpbiBnZW5lcmFsIFhlbiBzaG91bGQgbWFw
DQo+PiBJUlFzIGFuZCBtZW1vcnkgcmFuZ2VzIGFzIHRoZSBkaXNhYmxlZCBkZXZpY2VzIG1pZ2h0
IGJlY29tZSBvcGVyYXRpb25hbA0KPg0KPiBSaWdodCwgdGhpcyBjaGFuZ2UgZWZmZWN0aXZlbHkg
cHJldmVudCBkb20wIHRvIHVzZSBzdWNoIGRldmljZSBpZiBpdCBiZWNvbWVzIG9wZXJhdGlvbmFs
IGluIHRoZSBmdXR1cmUuDQpPciBkb2Vzbid0LCBzZWUgYmVsb3cNCj4gU28gdGhpcyBzb3VuZHMg
bGlrZSBhIGJpZyByZWdyZXNzaW9uLg0KPg0KPiBIb3cgZG8geW91IHBsYW4gdG8gaGFuZGxlIGl0
Pw0KSXQgZGVwZW5kcyBpZiB0aGlzIGlzIHJlYWxseSBhIHJlZ3Jlc3Npb24gb3IgaXMgb2sgYW5k
ICJieSBkZXNpZ24iDQo+DQo+PiBpdA0KPj4gbWFrZXMgaXQgaW1wb3NzaWJsZSBmb3IgdGhlIG90
aGVyIGRldmljZXMsIHdoaWNoIGFyZSBub3Qgb3BlcmF0aW9uYWwgaW4NCj4+IGFueSBjYXNlLCB0
byBza2lwIHRoZSBtYXBwaW5ncy4NCj4NCj4gWW91IHdyb3RlICJtYWtlcyBpdCBpbXBvc3NpYmxl
IGZvciB0aGUgb3RoZXIgZGV2aWNlcyIsIGJ1dCBpdCBpcyBub3QgY2xlYXIgdG8gbWUgd2hhdCdz
IHdvdWxkIGdvIHdyb25nIHdoZW4gd2UgbWFwIGEgZGlzYWJsZWQgZGV2aWNlIChEb20wIHNob3Vs
ZCBub3QgdG91Y2ggaXQpLiBEbyB5b3UgaGF2ZSBhbiBleGFtcGxlPw0KT2ssIGhlcmUgd2UgZ28u
IEluIHRoZSBTb0MgSSBhbSB3b3JraW5nIHdpdGggdGhlIFBDSWUgY29udHJvbGxlciBtYXkgcnVu
IGluIHR3byBtb2RlczoNClJvb3Qgb3IgRW5kcG9pbnQuIE5vdCBjb25maWd1cmFibGUgYXQgcnVu
LXRpbWUsIHNvIHlvdSBjb25maWd1cmUgaXQgaW4gdGhlIGRldmljZSB0cmVlLg0KVGhlIGFyZSB0
d28gZGV2aWNlIHRyZWUgZW50cmllcyBmb3IgdGhhdDogZm9yIHRoZSByb290IFsxXSBhbmQgZm9y
IHRoZSBlbmRwb2ludCBbMl0uDQpTbywgd2hlbiB5b3Ugd2FudCB0aGUgY29udHJvbGxlciB0byBi
ZSBhIFJvb3QgQ29tcGxleCB0aGVuIHlvdSBwdXQgc3RhdHVzID0gImRpc2FibGVkIg0KZm9yIHRo
ZSBFbmRwb2ludCBlbnRyeSBhbmQgdmlzZSB2ZXJzYS4NCg0KSWYgeW91IHRha2UgYSBsb29rIGF0
IHRoZSBub2RlcyB0aGV5IGJvdGggZGVmaW5lIHRoZSBzYW1lICJyZWciIGFuZCAiaW50ZXJydXB0
cyIsDQplZmZlY3RpdmVseSBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IgbWUgaW4gdGhlIHBhdGNo
IFszXSB0byBhY3R1YWxseSB0cmFwIE1NSU9zOg0Kd2Ugc2tpcCB0aGUgbWFwcGluZ3MgZm9yIFsx
XSBhbmQgdGhlbiwgYmVjYXVzZSB3ZSBhc3N1bWUgImRpc2FibGVkIiBpcw0Kc3RpbGwgdmFsaWQg
Zm9yIG1hcHBpbmdzLCB3ZSBhZGQgdGhvc2UgZm9yIFsyXS4NCg0KU28sIHRoaXMgaXMgcHJvYmFi
bHkgd2h5IGRldmljZSB0cmVlIGRvY3VtZW50YXRpb24gc2F5cyBhYm91dCB0aGUgZGlzYWJsZWQg
c3RhdHVzDQp0byBiZSBkZXZpY2Ugc3BlY2lmaWMuDQoNCkhvcGUgdGhpcyBkZXNjcmliZXMgYSB2
ZXJ5IHZhbGlkIHVzZS1jYXNlLiBBdCB0aGUgc2FtZSB0aW1lIHlvdSBtYXkgYXJndWUgdGhhdA0K
SSBqdXN0IG5lZWQgdG8gcmVtb3ZlIHRoZSBvZmZlbmRpbmcgZW50cnkgZnJvbSB0aGUgZGV2aWNl
IHRyZWUgd2hpY2ggbWF5IGFsc28gYmUNCnZhbGlkLg0KPg0KPiBDaGVlcnMsDQo+DQpUaGFuayB5
b3UsDQpPbGVrc2FuZHINCg0KWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9yZW5lc2FzLXJjYXIvbGlu
dXgtYnNwL2Jsb2IvdjUuMTAuNDEvcmNhci01LjEuMy5yYzYvYXJjaC9hcm02NC9ib290L2R0cy9y
ZW5lc2FzL3I4YTc3OWYwLmR0c2kjTDg0Mw0KWzJdIGh0dHBzOi8vZ2l0aHViLmNvbS9yZW5lc2Fz
LXJjYXIvbGludXgtYnNwL2Jsb2IvdjUuMTAuNDEvcmNhci01LjEuMy5yYzYvYXJjaC9hcm02NC9i
b290L2R0cy9yZW5lc2FzL3I4YTc3OWYwLmR0c2kjTDg5Ng0KWzNdIGh0dHBzOi8vcGF0Y2h3b3Jr
Lmtlcm5lbC5vcmcvcHJvamVjdC94ZW4tZGV2ZWwvcGF0Y2gvMjAyMTExMDUwNjMzMjYuOTM5ODQz
LTUtYW5kcjIwMDBAZ21haWwuY29tLw==


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 07:07:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 07:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227129.392747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbW0-00064G-Rd; Thu, 18 Nov 2021 07:07:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227129.392747; Thu, 18 Nov 2021 07:07:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbW0-000649-OS; Thu, 18 Nov 2021 07:07:24 +0000
Received: by outflank-mailman (input) for mailman id 227129;
 Thu, 18 Nov 2021 07:07:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=bdp6=QF=arm.com=Wei.Chen@srs-se1.protection.inumbo.net>)
 id 1mnbW0-000643-46
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 07:07:24 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2060b.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2c2d8089-483e-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 08:07:21 +0100 (CET)
Received: from AS8P251CA0009.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::34)
 by AS8PR08MB6725.eurprd08.prod.outlook.com (2603:10a6:20b:394::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Thu, 18 Nov
 2021 07:07:19 +0000
Received: from AM5EUR03FT055.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:2f2:cafe::66) by AS8P251CA0009.outlook.office365.com
 (2603:10a6:20b:2f2::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Thu, 18 Nov 2021 07:07:18 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT055.mail.protection.outlook.com (10.152.17.214) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Thu, 18 Nov 2021 07:07:17 +0000
Received: ("Tessian outbound a33f292be81b:v110");
 Thu, 18 Nov 2021 07:07:16 +0000
Received: from 3404ec6f49be.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 BBFDFCEC-013D-4094-BC64-E74A81DF8E2B.1; 
 Thu, 18 Nov 2021 07:07:09 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 3404ec6f49be.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 18 Nov 2021 07:07:09 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com (2603:10a6:10:2a2::7)
 by DBBPR08MB6281.eurprd08.prod.outlook.com (2603:10a6:10:1f6::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Thu, 18 Nov
 2021 07:07:02 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5]) by DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5%3]) with mapi id 15.20.4669.013; Thu, 18 Nov 2021
 07:07:02 +0000
Received: from [10.169.172.97] (203.126.0.113) by
 SG2PR06CA0181.apcprd06.prod.outlook.com (2603:1096:4:1::13) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 07:06:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c2d8089-483e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=komqyoBXhTKnEseJYljA9LNOtqyhDG4nqHbtSQHMFeQ=;
 b=W5OB7tgde++GHYjrPzvewNDW48CNfI8fdUAu/xIoG3i/8ms5g3CXiwjnKYuHfsWM1GoS7g+Y2gtbfmzMBL/A77qQw3nMyGZYYT1zeN8YJNzUrNxcQtiXbETbtpmR2aw2PUEGyHTZr56ZGi+XPkFMCVZbBrKMB27JUW21yeiQK4c=
X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is
 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=temperror action=none
 header.from=arm.com;
Received-SPF: TempError (protection.outlook.com: error in processing during
 lookup of arm.com: DNS Timeout)
X-CheckRecipientChecked: true
X-CR-MTA-CID: e2d8fa461fd852a8
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=m0npoRjAaxz1USGorVJ1POpL0MpDw0rosDveEm/01OdsAG1RdbW+jbabR1eh6oer5g/WWAyp33L54hg/gy3+LaNIiLfktsM7u0tFYafuNuDY8ySj6uPdR7aCu6Jc1WfyFjqsgZIg4Hf4w5vyrH8Jjw88g4HButC56z8/x5OTNn48s10fR8QYZZxIJI7vcmNm1jcDvq4FB7UJswiKNjXL34Hge4Xpenoek5EEDEFSLzH0Reqh4fXS6Lc8Hu7fKDjZppODVojtxBJdNIWDmySlXgoBsYkdDrBHBRk+1+zmXI99iDvHCwoNwhf8+a4EVzdWiGDewGQH8MQ1XhFemh5/iQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=komqyoBXhTKnEseJYljA9LNOtqyhDG4nqHbtSQHMFeQ=;
 b=bM5thjRApN0n4MUJgDE4Io++v/EdPL1ztvvpAu9dJPjc3kalODxzCJmesGldA7/FlLSwuovcauOLx6QjbVZYeYj4UjKmwTk+fV/MJwwLAuSzxPylStevEBkFPa/tmOQwwy4YnFt3sxpfSoK8vYYZvYmzOz8lJAoyZtpqg9exRhHgVcQTbQrhKI/S/0rOuLUjByXZxfD8zp9NWKAcKwQfiooiPgXAtoFvn2IIzvToB1jojtZz0IonUbacJdZlhc0Nbu5AYCrBFVfv7q7nhh6Rm6FMJKZoPqwG68nt4acs1RgLAIusEbew2LraRz6aqnwjJQUFzdvSzOAN8klOF8s7+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=komqyoBXhTKnEseJYljA9LNOtqyhDG4nqHbtSQHMFeQ=;
 b=W5OB7tgde++GHYjrPzvewNDW48CNfI8fdUAu/xIoG3i/8ms5g3CXiwjnKYuHfsWM1GoS7g+Y2gtbfmzMBL/A77qQw3nMyGZYYT1zeN8YJNzUrNxcQtiXbETbtpmR2aw2PUEGyHTZr56ZGi+XPkFMCVZbBrKMB27JUW21yeiQK4c=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Message-ID: <9e1d181c-69fa-72d2-40b3-72ce6479c3eb@arm.com>
Date: Thu, 18 Nov 2021 15:06:53 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH 2/2] x86/alternatives: adjust alternative_vcall0()
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <8ef681e6-0274-7b84-494d-29d2c3b3870b@suse.com>
 <9b6620ae-308b-c1c9-939f-74e24c647e5b@suse.com>
From: Wei Chen <Wei.Chen@arm.com>
In-Reply-To: <9b6620ae-308b-c1c9-939f-74e24c647e5b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SG2PR06CA0181.apcprd06.prod.outlook.com (2603:1096:4:1::13)
 To DB9PR08MB6857.eurprd08.prod.outlook.com (2603:10a6:10:2a2::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f82d291c-d85a-4410-2943-08d9aa620e3e
X-MS-TrafficTypeDiagnostic: DBBPR08MB6281:|AS8PR08MB6725:
X-Microsoft-Antispam-PRVS:
	<AS8PR08MB67255EB6C51F3345CCB6E4CD9E9B9@AS8PR08MB6725.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:1227;OLM:1227;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 UdC9pay2sluZg9CMekBTKB2iUdCWDfkxOUzaK3MAM6GpSHhSlKDbt0AGi9yYXs4GyELT/WV+yw2DQbc5HNCqtTWFhYG4ljXCIcx3XMZFzeJmmuuZC6AlHgAosT0YT2ZXj6Qg10oPGhCMW/yv0v20wPm3CKE0d5EuEyw2eTFiTmC32HI6HwGh0wapxFSAmrpWk1M3YQPbRhJOtNNpr2lrFSo0VgxMwIcNTUBOH9gpySart2RIPS0mWZrjtlg2mlccCRtaz2is9oMmbKrSZvHKNoEaS2pLQL4zx+dNf+LhUjZepfqhsRw7XbipUMtu2tczIsHz/BTEay6DilnohaOwO2ECyafJW6hzK9heA8zyiNCh0JsWn4KbT6HUl4+T8oRIZseaR4WHwJGVauXdn2CpMq/lYzxT303rO9yGzuZAKYDUUkwhnp28H5rLQUA70H3MMWF0iZFIg2olLrGhS/AL3U1MTbQrLvXCh3HUhzqQWAy6bwLoDnfhQOVgm6a3+gp4KK8UYKQZSSboIb9zeI4k952MogUC9cnSoziqK0fz5GXOPGVO1r6KJ0kqqBBkuKoa2QIeEnwmxM3Eh5lW5jZ7VfaI37z7TnaPvc2pxgVgK4ZU48v0o5L1rBdKh15WQbI+gKtm4jrqwoYGtx7n9qluQSmIDgkvTjHbGWdBfH9stBeTfQOlwl7xuYiqpFisIl0cYI0yyJ53fw5BN/FFi2bASFBT/MPQ/hnRayFy0gILdiQ=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6857.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66556008)(66476007)(16576012)(508600001)(8936002)(4744005)(6486002)(66946007)(31686004)(2906002)(186003)(31696002)(6666004)(316002)(26005)(2616005)(110136005)(54906003)(956004)(36756003)(5660300002)(8676002)(4326008)(38100700002)(53546011)(86362001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6281
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT055.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	68fd8a26-f4a2-48a4-7c5f-08d9aa6204e1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	vZZc2nwPk7TfBkRQgSZfBzTVnS8JS4zbb3Qq2QOwFrwcFqNWvIZFxbgDF1sJe4caRW7TNMwkqkCI1OxT7UWsowuqNL/zp0Bsgn/mEaYv8JOx8pv5lMPvEabvsgSCAW+VZgY19MUWs89QcZQNGcmubxz5zdQl2XG2D0vdkHsSIA08EyozJGyJeI38yM1j9ZoBhiWPZ+HcnhFpGxf+do/zuq3IODGUMMunab854qPtAlpEhcJH42PbnRNWPzsAR7jGn0AJ03rK2DoQGTd1QDA2T6UeB84bsNvaDD8dJjYyfRWhCYYVfzXf/ofl/Y/L9PLohUtQdGRL74EsGqQb3HgTjMTylV+w6SI8ZN9dHPvCdg8I8QCS5OrZu3547qO/xyNxPVSlc8+zfdVs7OR/OAMzCPEkLH6yeuxuGAmlsCEn4tSH/rCmEZDM0u0RoabcNogWND6B1zb2n4YEFmCeJ+K0b1YvnF9Yg1iXtzIYUi0LuHVwM7sAbg7NIlWmnnvCl9pTTmMPoaQn95+Ug06yAY3dLqRMKBTNkeyDrfiJSQFWirZTE6NRu6RdZInT4qIxBNJdtsWYpPZsJTNm4JfVu+Ue8obgjfaXekENtV3YcatlFMpbwkIhgiSNebeIZDiZlY3FHcEsTEzXjEOLjAgfW8MeJpn/b0HXgRKv9A12Zr2N9fqgV7qtunLBWuGqJwVKDsCNaJu19HG13MpIIoxv2v+Ad/HgNTq5Ki6/ZS61MFWsurfqcwtu6gf2OZErJzd9N3a6pJOKmJjl8TYu+GD4WGRWHw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(2616005)(316002)(16576012)(63350400001)(336012)(956004)(110136005)(4744005)(36756003)(70586007)(81166007)(6486002)(63370400001)(186003)(5660300002)(107886003)(36860700001)(6666004)(86362001)(8676002)(356005)(82310400003)(26005)(70206006)(53546011)(31686004)(47076005)(54906003)(508600001)(2906002)(8936002)(31696002)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 07:07:17.1519
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f82d291c-d85a-4410-2943-08d9aa620e3e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT055.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6725



On 2021/11/17 16:00, Jan Beulich wrote:
> I'm puzzled about two inconsistencies with other alternative_vcall<N>()
> here: There's a check missing that the supplied function pointer is
> actually pointing to a function taking no args. And there's a pointless
> pair of parentheses. Correct both.
> 
> Fixes: 67d01cdb5518 ("x86: infrastructure to allow converting certain indirect calls to direct ones")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> --- a/xen/include/asm-x86/alternative.h
> +++ b/xen/include/asm-x86/alternative.h
> @@ -218,7 +218,8 @@ extern void alternative_branches(void);
>   
>   #define alternative_vcall0(func) ({             \
>       ALT_CALL_NO_ARG1;                           \
> -    ((void)alternative_callN(0, int, func));    \
> +    (void)sizeof(func());                       \
> +    (void)alternative_callN(0, int, func);      \
>   })
>   
>   #define alternative_call0(func) ({              \
> 
> 

Reviewed-by: Wei Chen <Wei.Chen@arm.com>


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 07:13:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 07:13:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227134.392759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbc0-0007S7-Ij; Thu, 18 Nov 2021 07:13:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227134.392759; Thu, 18 Nov 2021 07:13:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbc0-0007S0-Eu; Thu, 18 Nov 2021 07:13:36 +0000
Received: by outflank-mailman (input) for mailman id 227134;
 Thu, 18 Nov 2021 07:13:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnbbz-0007Ru-5i
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 07:13:35 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 09b2e784-483f-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 08:13:33 +0100 (CET)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AI6XjNr028339;
 Thu, 18 Nov 2021 07:13:29 GMT
Received: from eur02-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2050.outbound.protection.outlook.com [104.47.6.50])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cd9rw921g-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 07:13:29 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5699.eurprd03.prod.outlook.com (2603:10a6:208:173::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 07:13:26 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 07:13:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 09b2e784-483f-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=T5nccRxlHe4Ki6AXFT8O4C1QXZrc4QrjkTc1oOtwE4C4acG09XWwt0bkSNSBy2G7aKKq5fPGYhtkJXF4gXF148pAyjIFzZf/wrVIZYUWcl+l71zFF8Roqz1ocRXpzjGLalsIlCGN1ARfqYC2s7EVJ//CN7tX5Qg02L2ka09FgrMpKYhSYObtzouNnhyPYL/VVim9aC08len9Z8XQqlmqtjdD+qLACh6ebXu6ILizOvIfwps9tmfDWSryMAiLC5046Wm2rZycZJl2+H9wBJ01IDr4z012vApFJ60JRZsg+qu7nfyvbXI+PiTNmBo3XavWCG4dswBLo2BYKHiBtdxYvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J0gLZ0Oh3Y/Mv2bWc9bEGo1/i2jYCcrUWHkpOJcuC/o=;
 b=hmBRGNDbTmh1q7uTZ2MxIUSzBgZfPn/d24E6Ud2SAtYIzIyytRfQbTaHO8TZvrgrqdKS/a4XRM4HhhPzrbC95D1uSoWWLufh0MD2/E9xHbjWHs6bUxNpHqL+UCbbkTyk5uF3Q+1EW3pgXDUJVe4O87KGEePiP5IB7rGYFsVKgz2Put7Sxaz/QJsSrPTFgPKbgKgPBS5o6JGpW46QuXFt+fioozkVm/C9//CHNj/dgAPDz4jyBgq9ojXm2323g49tBtYk1Gj5PgN+ZZwTWmM8xqSN1LMNDR1Xxek3yrm3YcGy2lejbG7kgEczkC30bjCFquRWKNyp4bKkJKgNsHVyAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=J0gLZ0Oh3Y/Mv2bWc9bEGo1/i2jYCcrUWHkpOJcuC/o=;
 b=QlHf9o0hcIvdBYTa1MsX6+AbkDjVlDbloRHOAJtNT2koUVgtFsymmx8uQ9qwD8N6dy7K6SPMx/1B+bpM41dysKaJdLKCsNDgLDeb8G1Lfq1L/WAAh1GC4bc5gLIiMjcP9J2dLguv/wwhIWDpLzy84LtwrXkqGgdg2K7zgscUXkLf8BE61orT28i7sUK2jU7H84CXt5CjeZfgmYSbYgEfWKPg1XH1z9luEqgVZTP+11Hci4c5bWf4p0Dk/bUCsyFSJZ52XobG1ETDtMf+QefJknigl0JeYo0JbrcNMx5pinpgfqUjU5YpTIBbkCkZIQ6q8oXtsRb7GnWC/70h5M6cqA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Topic: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Index: AQHX0g8QVTbfP59mVU+LM2unTUGOtawGkRQAgADLYgCAAPUEgIAAofWA
Date: Thu, 18 Nov 2021 07:13:26 +0000
Message-ID: <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
 <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
In-Reply-To: <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 832e36fe-3e1d-472c-d833-08d9aa62ea66
x-ms-traffictypediagnostic: AM0PR03MB5699:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5699BFAE6419AB17D158F396E79B9@AM0PR03MB5699.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 Md56VFhxg6PT3Bmj76JgOPZr2mBZolFBBH3jQpdJmK2G5xg6lsn5vSGmW6dng44fpG3foXKkKlJFFs1398vefamumoNZ6TX1/wwLUZElcPViPJPhTdsfl+GVp1MCx7DO2wTZE+aOuWvdlXwjP9iVmiFgiTJcqdWPV15MroToN8nRK7UMsmucFZ0XLDET7aj1CXhUGcBt2abpz3Ur50jzNXs/stMmnsXQXFU+nYN3/m3Zw65Z/UQI+BXkEKk2AvCg03V7wrMkNbBn5gXyxd+glxN2GWYv7hjuu9SNOHI3Zl7QUKiFtIsgv5olTUegrhLP66+IohR0uwKSkO9XEvsuUyuPNZQkimHDu1oAVRNrZcPJvQUb3r31L+agaEIH7Eh6jpY6JfGfDccmMNQb9WoXeVPPuI/yETaadPMagCsTvr3oSrtcmY6VKxGmfT+xsFy8v39pVdsAuwENsR2fEVr4ztr7Ko3uPB4Zp1agN2vtSlSgFOQgN3lUCUBBLEWn9IPG6OwajsP0LYERB3pdzuMRDzWbk9ELBJ6atp0AJZLSbF/VzRAeqp06wG544sR5Slz1UanDNZOtqpY8JECPucVdyaPqC0K/1DACiFUVVi0C1QFMVGl/v+9NghI1IPCNwldlUUA4CVbhUSHPyDFM2VZTTCII4P7an0m93Rd8NjgH/JGNnOB1kk0smFFvAzkcVKOiESVCInuYvwCpV5ZwB0puvA5W5xOhK9xeIZJ+K3Jmpdwq/fEcS+8R9nnaLFIGv2V1
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(31686004)(83380400001)(38100700002)(71200400001)(54906003)(110136005)(66946007)(76116006)(91956017)(2616005)(316002)(2906002)(122000001)(4326008)(31696002)(66476007)(66556008)(66446008)(64756008)(186003)(5660300002)(7416002)(8676002)(6512007)(107886003)(8936002)(6506007)(38070700005)(86362001)(6486002)(508600001)(53546011)(36756003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?M2J3ZUhkZnJtRkd1bXdpSU5VYk1IRk5WTHFqb2k5RDZhNVltZW9ncUxGS0I4?=
 =?utf-8?B?SnFxT0hFYVdGYS9hQU1ybERNN01vQWdHR3pmVDFuR0VnUS9oTW05WUdGVzM4?=
 =?utf-8?B?WVB5aFYwdGlJbE1CTGZhTUsxWGlqaC9ubWZ5SUZaYlN5ZDZ1L2x1QkJBWnBQ?=
 =?utf-8?B?Wm1CdndscWRlSUc1cGtSMXJhaXFwN1VzYWxRaGhtSlJxeVBSWnd1WnNWZDVK?=
 =?utf-8?B?aGIrd29QNjlpVkRCRmlWR0FtampNVW4wc2NKNDgySUlCZ1ZVd29TeXRnWlpW?=
 =?utf-8?B?Q3NjQ2VRUEt1enF6dEJwb25aVjMvU3d2NGQzWk80VkVDYzBVemlrdmJRcWxC?=
 =?utf-8?B?dWdSUUJab2ZxYzZwQ1BUWTYrU2drK3lxejdZbVE5czBDa3hmOVZ5UW9BYldl?=
 =?utf-8?B?MzBaQTY2TldKem1RNG9pZHdMVDVta21xbUgwNStlMmNnS1RQZFM2d2pHSGlt?=
 =?utf-8?B?RGxqc2tPODBIVThRTmhhbGlyMG93ZHhoOXBKa0xIa0xzWWU0R1NuZUlVOG1y?=
 =?utf-8?B?TlRCYVFpR0I3TE1oVTBqMnpnMUsrKzgxRUFVQXZUMFpiQVpNWjlTTWhGTzBZ?=
 =?utf-8?B?aFNBbjZIV1ZaYVZlNWpuTGt6dlFrMTVRdCtPQXBRU0VDVnBqM2xtQStZY3Jr?=
 =?utf-8?B?VVYzdkFsRTVLdmtqNDhPa1JTbkpZTGlsMmJpYS9WbEFnb2lpNDNjd21MbTJn?=
 =?utf-8?B?TzVqWFpTK3MwUVdyUlBTTS9sa2JCbGMxbkpEYzRLaERseExMMTIrWHFKeGJ0?=
 =?utf-8?B?ZHZwaUhJbFg1Sk96eFNTMTZsM1JPVmtDTThiTGlYSDFpZ1NYNDhndURkMWIr?=
 =?utf-8?B?TmQ0aDFTa2ZYZXVobHY0ejljSngxbXZCdHE1Z0IyWFNsYlNndFFWS2JmdnYw?=
 =?utf-8?B?QlVZUVA1QUFKWFZvSG5sTTJIOTRZb3RZbFRaVHFwNS9EdURmLzl1SDFrUjlm?=
 =?utf-8?B?OHJ1TGJ4UW5OdCtmcHJqbGdBTmV5VW5xT3k2NjJweTJnbklxRTZvSVMyRTl0?=
 =?utf-8?B?enZVTVcrZ1V4cFFKeE1wK2d2SXp0NUNDKzlDRzFPM1BZTzVSSXlWdm91cEd2?=
 =?utf-8?B?OUVEeWdEbGJ3bExRQXI5YUVvOGZnbnZGTmRqODJTT3EvVXpOeS9Ic0JDVy9M?=
 =?utf-8?B?MlVJRVoxTDh2UUo4Zm1yeWdLN0pEbTZqMkhjTkdqcFN5UHNtalVtK05ScEVt?=
 =?utf-8?B?NGNDdkJiR3VFdnVTSjB2R3E5L3c0NDlXRjhRMHJwL0pPZUg3RUFTKzhLRGxy?=
 =?utf-8?B?Wld4bDBSUUI0eFpCdDZxa2hFdmZWMEZZVnZsU2M0YnJNVi9rUGRoNEgxQ3J1?=
 =?utf-8?B?eURoWVliOWJXSkVtVFJ5aG1yaDhNMlNEMmY3WEZlSVA2TytaaXZoOERTS3Jy?=
 =?utf-8?B?d0E4SG8rMXUwVm1CY1RKeTVxOFYrc25NZGZtNnc2S2l1SFg5NGRYeFNDeHE0?=
 =?utf-8?B?a3AzaGdIVmE3eC8xcE1oQ1BtSGZDS3ZtaWF4V0JOWU1vcXpBT3k3UDdVK1RL?=
 =?utf-8?B?cUVBaVg1aUI2NDdSejBzQTFSRDgrZG1zL1lESFN2TENHQW1VWDZMRUI2bW01?=
 =?utf-8?B?NzZ4cFRwMXJzdE40QkFlTFVrdzFOb2VmYTFpbDNGdUlQVjcyUUhQc1h6NmpP?=
 =?utf-8?B?RG44TVFJRk1tc3dtRHFVTTEwaFNOalJMUzdVYkd0eVFJL0lnUVViVFY5ZDlO?=
 =?utf-8?B?R2REWGtaSTlCcm1DZHl6ZGgreHpaSVVZVUZ0T1J1dW40TkRobGJSQlF3L2hQ?=
 =?utf-8?B?NTJYRjR3aWlxdy9rdmpiUnRuREJtaWdBVEJvUmNVUnBNTDFPdHVWRjRXdFJZ?=
 =?utf-8?B?NGZYSWl6djFYc20yOWpTdy9OZjRqbWZUUlk4UXFJZjhCQk1tbXJtMGJOVThU?=
 =?utf-8?B?NU9ZYmw1d0pnQy81eFF3bFc0UHVQc21XcTFxRU1xRUJuSGR1M0FlSHV1ekdZ?=
 =?utf-8?B?YlIza2FhNnBEL21wekRvb2MyUlplWm8zWUE3Q3M2YzhIdi9Kc0ZjWWJVRnFK?=
 =?utf-8?B?a3Z3ZUI1Q0VNa3lPQitYNndrK0p6cDVUditmdUR4WGVVbnpKQi9PMVhVTExC?=
 =?utf-8?B?WWJGZDRtRGt5dVZHUjdmelYwSytvL2tIdXNaK0ZYbFJRcGM4MkxPL3FIT2tu?=
 =?utf-8?B?QWZOMVdPUUMwblFEcHJ6WVYvYTVwa2NhTTlhaFpOYk8wbU5qZkdZeklVQk1F?=
 =?utf-8?B?bE1ITkJ3TWVjOTRyOGFyMUgzQk44emppNHRHUTQ4TGhKZ2RNY3VzU2JPV3Zi?=
 =?utf-8?B?TWhnK3lWK29YdStDaXNjbWRsbnVFekk2eXdHeTBkeURLcE5pQzZJNWlwZmRF?=
 =?utf-8?B?TjJFQWk0ZWZ0QWgvWURNNTVyNzgzdnVSdElBYm9ValhnR29RRlVmQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8192FCFB8F4384419C569E9929687706@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 832e36fe-3e1d-472c-d833-08d9aa62ea66
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 07:13:26.4536
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: nclKanBW2Bb+xQVG3rB2sRW94xZeROKw2lVCNutTQk+EGFMy8OMYtHNkIhqjxrB43qND5ge3O0sLiPFtVeWq9YNSG0teWilq+fp3Z9RJFpojRY90TKJZ/1TQ3or0VF22
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5699
X-Proofpoint-GUID: nGFisaquNEGvOq5872Igubh5SNf_tO2a
X-Proofpoint-ORIG-GUID: nGFisaquNEGvOq5872Igubh5SNf_tO2a
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_02,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0
 suspectscore=0 clxscore=1015 lowpriorityscore=0 mlxlogscore=999
 priorityscore=1501 impostorscore=0 adultscore=0 malwarescore=0
 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180042

SGksIEp1bGllbiENCg0KT24gMTcuMTEuMjEgMjM6MzMsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRyLA0KPg0KPiBPbiAxNy8xMS8yMDIxIDA2OjU2LCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+IEhpLCBKdWxpZW4hDQo+Pg0KPj4gT24gMTYuMTEuMjEgMjA6NDgs
IEp1bGllbiBHcmFsbCB3cm90ZToNCj4+PiBIaSBPbGVrc2FuZGVyLA0KPj4+DQo+Pj4gT24gMDUv
MTEvMjAyMSAwNjozMywgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IEZyb206
IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNv
bT4NCj4+Pj4NCj4+Pj4gSWYgYSBQQ0kgaG9zdCBicmlkZ2UgZGV2aWNlIGlzIHByZXNlbnQgaW4g
dGhlIGRldmljZSB0cmVlLCBidXQgaXMNCj4+Pj4gZGlzYWJsZWQsIHRoZW4gaXRzIFBDSSBob3N0
IGJyaWRnZSBkcml2ZXIgd2FzIG5vdCBpbnN0YW50aWF0ZWQuDQo+Pj4+IFRoaXMgcmVzdWx0cyBp
biB0aGUgZmFpbHVyZSBvZiB0aGUgcGNpX2dldF9ob3N0X2JyaWRnZV9zZWdtZW50KCkNCj4+Pj4g
YW5kIHRoZSBmb2xsb3dpbmcgcGFuaWMgZHVyaW5nIFhlbiBzdGFydDoNCj4+Pj4NCj4+Pj4gKFhF
TikgRGV2aWNlIHRyZWUgZ2VuZXJhdGlvbiBmYWlsZWQgKC0yMikuDQo+Pj4+IChYRU4pDQo+Pj4+
IChYRU4pICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4+Pj4gKFhF
TikgUGFuaWMgb24gQ1BVIDA6DQo+Pj4+IChYRU4pIENvdWxkIG5vdCBzZXQgdXAgRE9NMCBndWVz
dCBPUw0KPj4+PiAoWEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
DQo+Pj4+DQo+Pj4+IEZpeCB0aGlzIGJ5IGFkZGluZyAibGludXgscGNpLWRvbWFpbiIgcHJvcGVy
dHkgZm9yIGFsbCBkZXZpY2UgdHJlZSBub2Rlcw0KPj4+PiB3aGljaCBoYXZlICJwY2kiIGRldmlj
ZSB0eXBlLCBzbyB3ZSBrbm93IHdoaWNoIHNlZ21lbnRzIHdpbGwgYmUgdXNlZCBieQ0KPj4+PiB0
aGUgZ3Vlc3QgZm9yIHdoaWNoIGJyaWRnZXMuDQo+Pj4+DQo+Pj4+IEZpeGVzOiA0Y2ZhYjQ0MjVk
MzkgKCJ4ZW4vYXJtOiBBZGQgbGludXgscGNpLWRvbWFpbiBwcm9wZXJ0eSBmb3IgaHdkb20gaWYg
bm90IGF2YWlsYWJsZS4iKQ0KPj4+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5k
cnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pj4+DQo+Pj4+
IC0tLQ0KPj4+PiBOZXcgaW4gdjYNCj4+Pj4gLS0tDQo+Pj4+IMKgwqAgeGVuL2FyY2gvYXJtL2Rv
bWFpbl9idWlsZC5jwqDCoMKgwqDCoMKgwqAgfCAxNSArKysrKysrKysrKysrKy0NCj4+Pj4gwqDC
oCB4ZW4vYXJjaC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5jIHzCoCAyICstDQo+Pj4+IMKgwqAg
eGVuL2luY2x1ZGUvYXNtLWFybS9wY2kuaMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgOCArKysrKysr
Kw0KPj4+PiDCoMKgIDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv
bnMoLSkNCj4+Pj4NCj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQu
YyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYw0KPj4+PiBpbmRleCA0OTFmNWUyYzMxNmUu
LmY3ZmNiMTQwMGMxOSAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWls
ZC5jDQo+Pj4+ICsrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYw0KPj4+PiBAQCAtNzUz
LDkgKzc1MywyMiBAQCBzdGF0aWMgaW50IF9faW5pdCB3cml0ZV9wcm9wZXJ0aWVzKHN0cnVjdCBk
b21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sDQo+Pj4+IMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHsNCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50MTZfdCBzZWdt
ZW50Ow0KPj4+PiDCoMKgICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qDQo+Pj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgKiBUaGUgbm9kZSBkb2Vzbid0IGhhdmUgImxpbnV4LHBjaS1kb21h
aW4iIHByb3BlcnR5IGFuZCBpdCBpcw0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICog
cG9zc2libGUgdGhhdDoNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqwqAgLSBYZW4g
b25seSBoYXMgZHJpdmVycyBmb3IgYSBwYXJ0IG9mIHRoZSBob3N0IGJyaWRnZXMNCj4+Pj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqwqAgLSBzb21lIGhvc3QgYnJpZGdlcyBhcmUgZGlzYWJs
ZWQNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIE1ha2Ugc3VyZSB3ZSBpbnNlcnQg
dGhlIGNvcnJlY3QgImxpbnV4LHBjaS1kb21haW4iIHByb3BlcnR5DQo+Pj4+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgKiBpbiBhbnkgY2FzZSwgc28gd2Uga25vdyB3aGljaCBzZWdtZW50cyB3
aWxsIGJlIHVzZWQNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGJ5IExpbnV4IGZv
ciB3aGljaCBicmlkZ2VzLg0KPj4+DQo+Pj4gVGhlIGNoZWNrIGFib3ZlIHdpbGwgY2hlY2sgdGhl
IG5vZGUgdHlwZSBpcyAicGNpIi4gQUZBSUNULCB0aGlzIHdvdWxkIGFsc28gY292ZXIgUENJIGRl
dmljZXMuIEkgYW0gbm90IGF3YXJlIG9mIGFueSBpc3N1ZSB0byBhZGQgImxpbnV4LHBjaS1kb21h
aW4iIGZvciB0aGVtLiBIb3dldmVyLCB0aGlzIGZlZWxzIGEgYml0IG9kZC4NCj4+Pg0KPj4+IMKg
RnJvbSBteSB1bmRlcnN0YW5kaW5nLCBhIFBDSSBkZXZpY2Ugd291bGQgYWx3YXlzIGJlIGRlc2Ny
aWJlZCBhcyBhIGNoaWxkIG9mIHRoZSBob3N0YnJpZGdlcy4gU28gSSB3b3VsZCByZXdvcmsgdGhl
ICdpZicgdG8gYWxzbyBjaGVjayBpZiB0aGUgcGFyZW50IHR5cGUgaXMgbm90ICJwY2kiLg0KPj4+
DQo+PiBXZSBtYXkgaGF2ZSAiYnJpZGdlIC0+IGJyaWRnZSAtPiBkZXZpY2UiIHRvcG9sb2d5IGFz
IHdlbGwuDQo+DQo+IERvIHlvdSBoYXZlIGFuIGV4YW1wbGUgb2YgRGV2aWNlLVRyZWU/DQpObywg
SSBkb24ndCBoYXZlIGF0IGhhbmQsIGJ1dCBJIGNhbiBpbWFnaW5lIHRoaXMgY2FuIHJlbGF0aXZl
bHkgZWFzeSBiZSBkb25lIHdpdGggUUVNVQ0KRXZlbiBpZiBub3QsIGRvIHlvdSBhc3N1bWUgdGhp
cyB0b3BvbG9neSBjYW4gbmV2ZXIgaGFwcGVuPw0KPg0KPj4gU28sIEkgcHJlZmVyIHRvIGhhdmUg
dGhlIGNoZWNrIGFzIGl0IGlzLg0KPg0KPiBJIGRvbid0IHJlYWxseSBsaWtlIHRoZSBpZGVhIHRv
IHNwdXJpb3VzbHkgYWRkICJsaW51eCxwY2ktZG9tYWluIiB0byBQQ0kgRFQgbm9kZS4gQnV0IGlm
IHRoZXJlIGFyZSBubyBvdGhlciBzb2x1dGlvbiwgdGhlbiB0aGlzIHNob3VsZCBhdCBsZWFzdCBi
ZSBtZW50aW9ubmVkIGluIHRoZSBjb21taXQgbWVzc2FnZSBhbmQgY29kZS4NCkkgYW0gZmluZSB3
aXRoIGFueSBzb2x1dGlvbiBoZXJlLCBJIGp1c3Qgd2FudCB0aGF0IHRvIGJlIGRlZmluZWQgYW5k
IGltcGxlbWVudGVkLg0KUGxlYXNlIGxldCBtZSBrbm93IHRoZSBmaW5hbCBkZWNpc2lvbiBvbiB0
aGlzIGFuZCBob3cgd2UgcHJvY2VlZA0KPg0KPiBbLi4uXQ0KPg0KPj4gWWVzLCB0aGlzIHNvdW5k
cyByZWFzb25hYmxlLCBJIHdpbGwgYWRkIHRoaXMgY2hhbmdlIGFuZCBwcmludCBhbiBlcnJvciBt
ZXNzYWdlIHNvIGl0IGlzDQo+PiBlYXNpZXIgdG8gdW5kZXJzdGFuZCB3aGF0IFhlbiBkb2Vzbid0
IGxpa2UgKGl0IHRvb2sgbWUgYSB3aGlsZSB0byBkZWJ1ZyBhbmQgdW5kZXJzdGFuZA0KPj4gd2h5
IEkgaGF2ZSAiKFhFTikgRGV2aWNlIHRyZWUgZ2VuZXJhdGlvbiBmYWlsZWQgKC0yMikuIikNCj4N
Cj4NCj4gU291bmRzIGdvb2QgdG8gbWUuIFRoZSBjdXJyZW50IGVycm9yIGlzIGluZGVlZCBjb25m
dXNpbmcuDQo+DQo+IENoZWVycywNCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 07:27:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 07:27:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227141.392770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbpd-0000bY-Sj; Thu, 18 Nov 2021 07:27:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227141.392770; Thu, 18 Nov 2021 07:27:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbpd-0000bR-Pl; Thu, 18 Nov 2021 07:27:41 +0000
Received: by outflank-mailman (input) for mailman id 227141;
 Thu, 18 Nov 2021 07:27:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnbpc-0000bK-4K
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 07:27:40 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 013a6d15-4841-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 08:27:38 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AI6XifV012843;
 Thu, 18 Nov 2021 07:27:35 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2113.outbound.protection.outlook.com [104.47.17.113])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cdc4kgthb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 07:27:35 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6066.eurprd03.prod.outlook.com (2603:10a6:208:165::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 07:27:31 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 07:27:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 013a6d15-4841-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KzAjOKBDYCyTxscd0bkQIJoC58MohXxHnbHOHdtRXioIpe+QDgAFPFiwXHsYKdQh2Ag454mHMf8zHE1wB7FWx/5u+qVIFDrff/pNW4h3gR7P5qYc1wcPwHP+1v4RuMyutvJW+qcvteIi1tZSQpWaMKdBrqpeA11100nKLo28ALqksdDk6atEHe9nxSYNaZ16poXJdFbfl0Gqwr/lOba3uohvjUaKUBw40rj6k3OSOc9C1F0gMXxcZ09tuhepJHVbKXTvULbHEbuNul9fD7LsfzKpFSihjs6NvyHtrqFC5g08u9+4Oovp34M5kJ5hBT50b8gpEGpCPKsQyIsoPQOp+w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UTFWK5X9vmR/u/D8SE21Vgdp2qQ1ZefraOrPNfyEK0w=;
 b=RiuEZMwQCXl5eGIWZEq2VRZ0RZAQlNjOsAT8vfeASxghg/GIwAVF2bXJydnTiZyuUOjgEsRZahz82zbTZGuZPLWK2swg40yraWiGx0iTKy9Pj25H+Yh+UYB541E4bnadxCBMa5w79dFtd9knQM44IFciHqIlwxJ5Rbn1I09sAn45Xa5LRRWW9BgwhgiW13MayZWTPnS4mrDopGODsnKNlpk7pSlNXYN0nZJmpouh8DmFIfiinpFp2ziOM+wo/IqmsdwCpgbeHcGqC3YywUHCf4E8L5ge4I8RPowAugqxxKwPR8VibFq2YzKEbGlMMAJ0/yIR3SeN0zSTRo1f1gKAqQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UTFWK5X9vmR/u/D8SE21Vgdp2qQ1ZefraOrPNfyEK0w=;
 b=XmcQuWUyR24k8zyBYd1aCjJ3eXNFkLAa3oqs7mg5ThdWcoSOJRpiex2mZ+IOO1H5zDcY6ts12rAmN0E2JBgbx7pXKCnsCVNoDL6knJ4qMVen28CBLb3Oxil281FT/TUHbueVQKmWXWQZozLDNkOKqLdVlTK6DUu0Rn2dTaz+izVsI4TYVCK+rLWu7u3UC+4HtwcpHooGTdDtSW98PMDvTFiHR8LlXeE4dERfJF2ojkv2sT+Ef2QETV0uOw/SAp5nR6LzN6Hxc/M+bVZAspzmucIb4gKdAlEqHJhwr8Xm0LWQgFBWmdl38pCfTJdAh71l5/ZwQfigGo0/PqWJqqc73A==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Topic: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Index: AQHX0g8SPRoS2Ac9eEeTcWew1GI8x6wGl6aAgAJfuQA=
Date: Thu, 18 Nov 2021 07:27:31 +0000
Message-ID: <2f414e8f-67d5-d513-74d4-cc21a3a9ed28@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
 <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
In-Reply-To: <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 6b997a00-d4d8-4f64-9e67-08d9aa64e1e3
x-ms-traffictypediagnostic: AM0PR03MB6066:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB60661015098F47D95ED4FBFFE79B9@AM0PR03MB6066.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7219;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 rW5w2EbUdlW0GUWu7UyfB5lNlv5cwvdcJ7B4P6K1JogA8tjzsZ30aJLxLnuLpPPQnn7CShwN6Wggo3rEA5OLLJuU5R3hp9D/LDfhAY5kXIrJCx/gp4mHf3d8ceRAdFMnVQ1eugIh2fUQFnNpPFzACbeLyiJz+jQbVj31GAZieemVH7zsUcNp6Cgf/TmsfySS83rHBC3yJK/sIYWtN6r/cR9VV4SJZLyup5DC6tA/klC78lLK9aPp4sQ8leyv4HFFG/4oxrB7N2gPfL9XMwR7tapHtK0Sl2Csx+zCGLYSfKwm1ZF4vTZ/Ox3oKU9cMnU2vbjzOr967goYsMEf4cin0wT9jDgnHkZLKb8a3CoU+QMePsiXxo99HfpqPpyx/Sd0WnNCfBXR/AiZXezeTlJGmOxLWD40vBqY8NQiSmJeX4VA7fJJx99qPQKbgcin2sDHTeYEivIr6is8/TuzVXU9vr/MRcL71ucaYi+fmLWbWlojEOhM0YvOxD+VIpDPpB2TehL+i2Dfg6kCDz83E2cCdsaWqflC4JcrqGGcjMyTmf7wBAN1VHSoTF0KnHAEVh4tYqPdkYiS+ZyIQeFAy1pUAFZhRoJHS7gU1uE1vI7QLna4dRiSPXiJJ6fndvLEozsFP3YSRL4QUhnpx+ZwxRShqGL239zme2wCYP0leT2h35odlqqeB0PPWfmyDHnOmYNi8e8ffMU2Hq6C4xy6WGJEy0Ns8H4QZEp7G8Q1TikFO0ZkymEAQU6BckOSABlwZQ8UsJ5ciqUE1u1DS2qzzLMufjsDSKPYUVzU8KAkq/gjhmqRu1T2FRzy8cC5sXWfABuFOZ1EG/vKgv3toAPVQfIX0w==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(7416002)(36756003)(31686004)(110136005)(31696002)(8936002)(508600001)(316002)(38070700005)(54906003)(6486002)(122000001)(6512007)(38100700002)(4326008)(2906002)(5660300002)(26005)(966005)(83380400001)(86362001)(66946007)(186003)(8676002)(71200400001)(66476007)(66556008)(66446008)(107886003)(91956017)(6506007)(76116006)(53546011)(64756008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?T24raXZIK09GQUNjQmhHamJ6U2I0Qi9wbnl4K1YvRXc2S0xiSGtCUmVtZkZS?=
 =?utf-8?B?RGMvbk5wYi9hMWNvMnhHRGxzTWVySkRKSlNEdFlSZVQ1aVphZHAvc2VlMkUy?=
 =?utf-8?B?ZnRsTjBqdEdYZUhaTitqVE9iUzEyQlVlQTQ2Yk1ZdG81YnFpNUdqNWx5aGZM?=
 =?utf-8?B?dXhiU2t4S0lYNHc3QUxlL2w1cURSNjRvcmZ1Wmd6YWxsQ3ZBOHhNMjFoSEcv?=
 =?utf-8?B?cndJRUpheTV0bTkzVWg2ZUJqVDNFdzBFRkhGU1QrSDhjdTUrMHEzcUJxeTUr?=
 =?utf-8?B?Wm9RNDhXRjhqUEFhUEpHc0l1SitzSGFiUFBUM2poY2dTUTY5blBJWVFwd2VY?=
 =?utf-8?B?Si9RK1JhU2E2QldIaDJReVpac242bzMwaExabXFBdXM3Y2dZSkh5MFRFNzc4?=
 =?utf-8?B?MHJ2QkdSMDEyeHVRS1U0aktrZHpGZ3hYN05HQzRDZkpTaXFEZ0JjK3lSY1ZV?=
 =?utf-8?B?NzJsL3ArTkU0Smoxclp2WnVDQkQ3azg2VVMrSGlEU0I2Qi9tSDVoUmFRb2Fj?=
 =?utf-8?B?Q0RqMkFtdVQyblBKVC9DUTZSaFgzMERrbWtkUVJ6UnhITWp0aXd1RTZwTjQ1?=
 =?utf-8?B?SUxSUTM1clJhVjlBN1ptMjBCRWFlT2ZjYTJHa0VoVnd0NTRtYzRESFJMQlpo?=
 =?utf-8?B?ek4zWURJOWV5S0JMUzNyaTRvNjgwRjRSSXV6WVRpK3RpejB1eWxGU2tkZG1I?=
 =?utf-8?B?UTRKTkw5RGZZQU1hdXl1YU9LbXkvN1Y3SEk3b0JRclIwMmlXYnBzWXAvMEpq?=
 =?utf-8?B?ajI4d3JPcmh6dUMzQXNqYUNoUU0zTHlONHFZWDY2SnhLV1ZMbzl5bW1jYnpP?=
 =?utf-8?B?dlJTcEJ1VFBOYVNzUkxkeHBUNEZLYzFsN2lyeHh0aHZ5V2loRGk1MFFXaGl1?=
 =?utf-8?B?NTFKSldOdUVtZEVsZTBmMnlCS0hnSTNHaXJqQ3laRGVjaERsOTQ4MzlVTGtu?=
 =?utf-8?B?TGxsVGMyU2M1UXZHcUZZaWEvWTdIN1R5Z0hWZGNoU0FwYjc2L3lDdmxBR1li?=
 =?utf-8?B?WGdXTGhONVcwaldxdHhndUkzTGt1cXJ6ZEp0c0dFY0MxaHJtOEhXWmRWOG5C?=
 =?utf-8?B?dmQrTVpYNHdLWkpWVnZhWnl3cllRTzVLcHZUMU9hK2ExeHF3S2tJay9RWlNq?=
 =?utf-8?B?K1dGRnQ1L25lMmtSOWhlTE0xUzM5UEdNb2lrbnR1L0RaaFY0Zjh2Uk05Mkt1?=
 =?utf-8?B?SGtEUU1IWDhrajNHdk93UUFnTVFkQ29yUUVUUzgraFdpUlFibGVvT2hnV0NH?=
 =?utf-8?B?ek9FY0Y5V05TczVnaVJJMUszaDE3dDBzRjJYMzJrVWJ3d0hQejBYeC96dy9k?=
 =?utf-8?B?RG9HVjlrd3pyMjJGNW11dGtDVEs0NmpVeU11M3FoeC9SNlNieGtVMlNReC81?=
 =?utf-8?B?Y2x2dGE4RENLTFZiSEdQbFRQWFQyT3pGaFp6dGJBdDg1YkVHQ3QvUWZsSDIx?=
 =?utf-8?B?OTRRM1MwMzNkNnkxZk1maGJZbmpoOHZEMW45emFScnhVa01vNDlGMzZqdFVG?=
 =?utf-8?B?T0YzZ1NFZEM1RVZidHhCaUF3T0ZENzdhZythN3VSdXZYVndRY1pQa0txQUov?=
 =?utf-8?B?aTVGWEVYYis1RURXdkRjU0x4ay94WFJjU0RvTTdZbHg0RVFEV2FuZU8vNURx?=
 =?utf-8?B?YWZIY3NMNk5JSkpVN3FjU2x5aCtzaUVLUFhOMlN4Z2UzblRramZ1UG1WWUNw?=
 =?utf-8?B?NlZDUUlRUkIyUGRYV21vVVYrRE5LVml5dzBCUkYybW1kQWJSK2hoQjd6WGZ6?=
 =?utf-8?B?aHVxSzNOUXdCS3llY2xST3cvOCs5WUt0STZIeXNEVE0vQW10bDJzU25zTW1u?=
 =?utf-8?B?WWVBZUtQVXJGTzdVRkRBTE00Yk1FSjE2TUxwdm9RWThhMTRxNFE5QUVBY1c0?=
 =?utf-8?B?OVJhU3htYkhMdXBnWmpYTlpLYlV0WGhnTXZaejg2TStTUFVaVk5TWlp0elh5?=
 =?utf-8?B?TUNDcEFVY2dKaW1rQ0o3VXFqU3lrNFVINkhVaFRCamwzdWF5YUZxZEdQRTJy?=
 =?utf-8?B?RVhCRjcwcTFlcStVd2syVDZIcG5DZktUUWRKL2xuaGNXZzZoL2dHMVVWUzBM?=
 =?utf-8?B?dE5udWlFUmNIM013djJyMlMxU2d6NmttVFRpY2ZvSW9rdnlZd0dXR3psYkEx?=
 =?utf-8?B?bDErUHkwQVpxQWFWdm9LSkNSaGg5UTJ1c1IzUlZpN1BCTkhrcExTNlRnS0VL?=
 =?utf-8?B?ck9lSlFWcFlWaFkvZ0JKbzhFNVlDVFVTTWh5S3g1RWZKcUJyNnQxNzhpeDNL?=
 =?utf-8?B?eFo2Q1JPMHgxSW5BdDZJVjFUUnB1citrZzRoTjdvNHFBbUd5a1NWWlkyeUN4?=
 =?utf-8?B?TUwvaGdWeHFwbFRqVndLUnYwQjJOYytvc0cwUS84WnZSelBUVVArZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <393D38AD266F314594EBC62CF621D5F0@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b997a00-d4d8-4f64-9e67-08d9aa64e1e3
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 07:27:31.1822
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: DKfyZkPcmHvHzGlio3JAaT9P1igAvtHlztDFM8Fx1nIuC+YqeX3+7+9IOGRq+JmeSZ3+rhQAuzdE7cXioShfAEVIj31IriDtE7Vus2DRww+wd81FOtKcDKlUV+oj0WlI
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6066
X-Proofpoint-GUID: WfZLuNVjDYSPf2R4HnTmgm9aNNwzo2BM
X-Proofpoint-ORIG-GUID: WfZLuNVjDYSPf2R4HnTmgm9aNNwzo2BM
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_02,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 lowpriorityscore=0
 mlxlogscore=999 suspectscore=0 spamscore=0 priorityscore=1501
 impostorscore=0 clxscore=1015 adultscore=0 malwarescore=0 phishscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180042

SGksIEp1bGllbiENCg0KT24gMTYuMTEuMjEgMjE6MTIsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRyLA0KPg0KPiBPbiAwNS8xMS8yMDIxIDA2OjMzLCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2Fu
ZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+DQo+PiBJbiBvcmRlciBmb3IgdlBDSSB0byB3
b3JrIGl0IG5lZWRzIHRvIG1haW50YWluIGd1ZXN0IGFuZCBoYXJkd2FyZQ0KPj4gZG9tYWluJ3Mg
dmlld3Mgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2UuIEZvciBleGFtcGxlLCBCQVJzIGFuZA0K
Pj4gQ09NTUFORCByZWdpc3RlcnMgcmVxdWlyZSBlbXVsYXRpb24gZm9yIGd1ZXN0cyBhbmQgdGhl
IGd1ZXN0IHZpZXcNCj4+IG9mIHRoZSByZWdpc3RlcnMgbmVlZHMgdG8gYmUgaW4gc3luYyB3aXRo
IHRoZSByZWFsIGNvbnRlbnRzIG9mIHRoZQ0KPj4gcmVsZXZhbnQgcmVnaXN0ZXJzLiBGb3IgdGhh
dCBFQ0FNIGFkZHJlc3Mgc3BhY2UgbmVlZHMgdG8gYWxzbyBiZQ0KPj4gdHJhcHBlZCBmb3IgdGhl
IGhhcmR3YXJlIGRvbWFpbiwgc28gd2UgbmVlZCB0byBpbXBsZW1lbnQgUENJIGhvc3QNCj4+IGJy
aWRnZSBzcGVjaWZpYyBjYWxsYmFja3MgdG8gcHJvcGVybHkgc2V0dXAgTU1JTyBoYW5kbGVycyBm
b3IgdGhvc2UNCj4+IHJhbmdlcyBkZXBlbmRpbmcgb24gcGFydGljdWxhciBob3N0IGJyaWRnZSBp
bXBsZW1lbnRhdGlvbi4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNo
ZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+PiAtLS0NCj4+IFNpbmNl
IHY1Og0KPj4gLSBhZGQgdnBjaV9zYmRmX2Zyb21fZ3BhIGhlbHBlciBmb3IgZ3BhIHRvIFNCREYg
dHJhbnNsYXRpb24NCj4+IC0gdGFrZSBicmlkZ2UncyBidXMgc3RhcnQgaW50byBhY2NvdW50IHdo
aWxlIGNhbGN1bGF0aW5nIFNCREYNCj4+IFNpbmNlIHY0Og0KPj4gLSB1bnNpZ25lZCBpbnQgZm9y
IGZ1bmN0aW9ucyB3b3JraW5nIHdpdGggY291bnQNCj4+IC0gZ2F0ZSBudW1iZXIgb2YgTU1JTyBo
YW5kbGVycyBuZWVkZWQgZm9yIENPTkZJR19IQVNfUENJX01TSQ0KPj4gwqDCoCBhbmQgZml4IHRo
ZWlyIG51bWJlciwgZS5nLiBzaW5nbGUgaGFuZGxlciBmb3IgUEJBIGFuZA0KPj4gwqDCoCBNU0kt
WCB0YWJsZXMgKFJvZ2VyKQ0KPj4gLSByZS13b3JrIGNvZGUgZm9yIGFzc2lnbmluZyBNTUlPIGhh
bmRsZXJzIHRvIGJlIHNpbXBsZXINCj4+IMKgwqAgYW5kIGFjY291bnQgb24gdGhlIGZhY3QgdGhh
dCB0aGVyZSBjb3VsZCBtdWx0aXBsZSBob3N0IGJyaWRnZXMNCj4+IMKgwqAgZXhpc3QgZm9yIHRo
ZSBod2RvbQ0KPj4gU2luY2UgdjM6DQo+PiAtIGZpeGVkIGNvbW1lbnQgZm9ybWF0dGluZw0KPj4g
U2luY2UgdjI6DQo+PiAtIHJlbW92ZWQgdW5uZWVkZWQgYXNzaWdubWVudCAoY291bnQgPSAwKQ0K
Pj4gLSByZW1vdmVkIHVubmVlZGVkIGhlYWRlciBpbmNsdXNpb24NCj4+IC0gdXBkYXRlIGNvbW1p
dCBtZXNzYWdlDQo+PiBTaW5jZSB2MToNCj4+IMKgIC0gRHluYW1pY2FsbHkgY2FsY3VsYXRlIHRo
ZSBudW1iZXIgb2YgTU1JTyBoYW5kbGVycyByZXF1aXJlZCBmb3IgdlBDSQ0KPj4gwqDCoMKgIGFu
ZCB1cGRhdGUgdGhlIHRvdGFsIG51bWJlciBhY2NvcmRpbmdseQ0KPj4gwqAgLSBzL2NsYi9jYg0K
Pj4gwqAgLSBEbyBub3QgaW50cm9kdWNlIGEgbmV3IGNhbGxiYWNrIGZvciBNTUlPIGhhbmRsZXIg
c2V0dXANCj4+IC0tLQ0KPj4gwqAgeGVuL2FyY2gvYXJtL2RvbWFpbi5jwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgfMKgIDIgKw0KPj4gwqAgeGVuL2FyY2gvYXJtL3BjaS9wY2ktaG9zdC1jb21t
b24uYyB8IDI3ICsrKysrKysrKysrKw0KPj4gwqAgeGVuL2FyY2gvYXJtL3ZwY2kuY8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDY2ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0t
LQ0KPj4gwqAgeGVuL2FyY2gvYXJtL3ZwY2kuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCB8wqAgNiArKysNCj4+IMKgIHhlbi9pbmNsdWRlL2FzbS1hcm0vcGNpLmjCoMKgwqDCoMKgwqDC
oMKgwqAgfMKgIDUgKysrDQo+PiDCoCA1IGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyks
IDggZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW4u
YyBiL3hlbi9hcmNoL2FybS9kb21haW4uYw0KPj4gaW5kZXggOTZlMWIyMzU1MDFkLi45MmE2YzUw
OWU1YzUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMNCj4+ICsrKyBiL3hl
bi9hcmNoL2FybS9kb21haW4uYw0KPj4gQEAgLTczOSw2ICs3MzksOCBAQCBpbnQgYXJjaF9kb21h
aW5fY3JlYXRlKHN0cnVjdCBkb21haW4gKmQsDQo+PiDCoMKgwqDCoMKgIGlmICggKHJjID0gZG9t
YWluX3ZnaWNfcmVnaXN0ZXIoZCwgJmNvdW50KSkgIT0gMCApDQo+PiDCoMKgwqDCoMKgwqDCoMKg
wqAgZ290byBmYWlsOw0KPj4gwqAgK8KgwqDCoCBjb3VudCArPSBkb21haW5fdnBjaV9nZXRfbnVt
X21taW9faGFuZGxlcnMoZCk7DQo+PiArDQo+PiDCoMKgwqDCoMKgIGlmICggKHJjID0gZG9tYWlu
X2lvX2luaXQoZCwgY291bnQgKyBNQVhfSU9fSEFORExFUikpICE9IDAgKQ0KPj4gwqDCoMKgwqDC
oMKgwqDCoMKgIGdvdG8gZmFpbDsNCj4+IMKgIGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vcGNp
L3BjaS1ob3N0LWNvbW1vbi5jIGIveGVuL2FyY2gvYXJtL3BjaS9wY2ktaG9zdC1jb21tb24uYw0K
Pj4gaW5kZXggNDcxMDRiMjJiMjIxLi4wZDI3MWE2ZTg4ODEgMTAwNjQ0DQo+PiAtLS0gYS94ZW4v
YXJjaC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vcGNp
L3BjaS1ob3N0LWNvbW1vbi5jDQo+PiBAQCAtMjg5LDYgKzI4OSwzMyBAQCBpbnQgcGNpX2dldF9o
b3N0X2JyaWRnZV9zZWdtZW50KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSwNCj4+
IMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7DQo+PiDCoCB9DQo+PiDCoCAraW50IHBjaV9ob3N0
X2l0ZXJhdGVfYnJpZGdlcyhzdHJ1Y3QgZG9tYWluICpkLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCAoKmNiKShzdHJ1Y3Qg
ZG9tYWluICpkLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHBjaV9ob3N0X2JyaWRn
ZSAqYnJpZGdlKSkNCj4+ICt7DQo+PiArwqDCoMKgIHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJy
aWRnZTsNCj4+ICvCoMKgwqAgaW50IGVycjsNCj4+ICsNCj4+ICvCoMKgwqAgbGlzdF9mb3JfZWFj
aF9lbnRyeSggYnJpZGdlLCAmcGNpX2hvc3RfYnJpZGdlcywgbm9kZSApDQo+PiArwqDCoMKgIHsN
Cj4+ICvCoMKgwqDCoMKgwqDCoCBlcnIgPSBjYihkLCBicmlkZ2UpOw0KPj4gK8KgwqDCoMKgwqDC
oMKgIGlmICggZXJyICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7DQo+
PiArwqDCoMKgIH0NCj4+ICvCoMKgwqAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gK3Vuc2ln
bmVkIGludCBwY2lfaG9zdF9nZXRfbnVtX2JyaWRnZXModm9pZCkNCj4+ICt7DQo+PiArwqDCoMKg
IHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZTsNCj4+ICvCoMKgwqAgdW5zaWduZWQgaW50
IGNvdW50ID0gMDsNCj4NCj4gSG93IGFib3V0IG1ha2luZyB0aGlzIHN0YXRpYyBhbmQuLi4NCj4N
Cj4+ICsNCj4+ICvCoMKgwqAgbGlzdF9mb3JfZWFjaF9lbnRyeSggYnJpZGdlLCAmcGNpX2hvc3Rf
YnJpZGdlcywgbm9kZSApDQo+PiArwqDCoMKgwqDCoMKgwqAgY291bnQrKzsNCj4NCj4gLi4uIG9u
bHkgY2FsbCBsaXN0X2Zvcl9lYWNoX2VudHJ5KCkgd2hlbiBjb3VudCBpcyAtMT8gU28gd2Ugd291
bGQgb25seSBnbyB0aHJvdWdoIHRoZSBsaXN0IG9uY2UuDQo+DQo+IFRoaXMgc2hvdWxkIGJlIGZp
bmUgZ2l2ZW4gaG9zdGJyaWRnZSBjYW4gb25seSBiZSBhZGRlZCBkdXJpbmcgYm9vdCAod2Ugd291
bGQgbmVlZCB0byBwcm90ZWN0IHBjaV9ob3N0X2JyaWRnZXMgd2l0aCBhIGxvY2sgb3RoZXJ3aXNl
KS4NCk9rLCBJIGNhbiBkbyB0aGF0DQo+DQo+PiArDQo+PiArwqDCoMKgIHJldHVybiBjb3VudDsN
Cj4+ICt9DQo+PiArDQo+PiDCoCAvKg0KPj4gwqDCoCAqIExvY2FsIHZhcmlhYmxlczoNCj4+IMKg
wqAgKiBtb2RlOiBDDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZwY2kuYyBiL3hlbi9h
cmNoL2FybS92cGNpLmMNCj4+IGluZGV4IDIzZjQ1Mzg2ZjRiMy4uNWE2ZWJkOGI5ODY4IDEwMDY0
NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZwY2kuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3Zw
Y2kuYw0KPj4gQEAgLTE2LDE2ICsxNiwzMSBAQA0KPj4gwqAgwqAgI2luY2x1ZGUgPGFzbS9tbWlv
Lmg+DQo+PiDCoCArc3RhdGljIHBjaV9zYmRmX3QgdnBjaV9zYmRmX2Zyb21fZ3BhKGNvbnN0IHN0
cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGFkZHJf
dCBncGEpDQo+PiArew0KPj4gK8KgwqDCoCBwY2lfc2JkZl90IHNiZGY7DQo+PiArDQo+PiArwqDC
oMKgIGlmICggYnJpZGdlICkNCj4+ICvCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgIHNiZGYu
c2JkZiA9IFZQQ0lfRUNBTV9CREYoZ3BhIC0gYnJpZGdlLT5jZmctPnBoeXNfYWRkcik7DQo+PiAr
wqDCoMKgwqDCoMKgwqAgc2JkZi5zZWcgPSBicmlkZ2UtPnNlZ21lbnQ7DQo+PiArwqDCoMKgwqDC
oMKgwqAgc2JkZi5idXMgKz0gYnJpZGdlLT5jZmctPmJ1c25fc3RhcnQ7DQo+PiArwqDCoMKgIH0N
Cj4+ICvCoMKgwqAgZWxzZQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHNiZGYuc2JkZiA9IFZQQ0lfRUNB
TV9CREYoZ3BhIC0gR1VFU1RfVlBDSV9FQ0FNX0JBU0UpOw0KPj4gKw0KPj4gK8KgwqDCoCByZXR1
cm4gc2JkZjsNCj4+ICt9DQo+PiArDQo+PiDCoCBzdGF0aWMgaW50IHZwY2lfbW1pb19yZWFkKHN0
cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWdpc3Rlcl90ICpyLCB2b2lkICpw
KQ0KPj4gwqAgew0KPj4gLcKgwqDCoCBwY2lfc2JkZl90IHNiZGY7DQo+PiArwqDCoMKgIHN0cnVj
dCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSA9IHA7DQo+PiArwqDCoMKgIHBjaV9zYmRmX3Qgc2Jk
ZiA9IHZwY2lfc2JkZl9mcm9tX2dwYShicmlkZ2UsIGluZm8tPmdwYSk7DQo+PiDCoMKgwqDCoMKg
IC8qIGRhdGEgaXMgbmVlZGVkIHRvIHByZXZlbnQgYSBwb2ludGVyIGNhc3Qgb24gMzJiaXQgKi8N
Cj4+IMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBkYXRhOw0KPj4gwqAgLcKgwqDCoCAvKiBXZSBp
Z25vcmUgc2VnbWVudCBwYXJ0IGFuZCBhbHdheXMgaGFuZGxlIHNlZ21lbnQgMCAqLw0KPj4gLcKg
wqDCoCBzYmRmLnNiZGYgPSBWUENJX0VDQU1fQkRGKGluZm8tPmdwYSAtIEdVRVNUX1ZQQ0lfRUNB
TV9CQVNFKTsNCj4+IC0NCj4+IMKgwqDCoMKgwqAgaWYgKCB2cGNpX2VjYW1fcmVhZChzYmRmLCBF
Q0FNX1JFR19PRkZTRVQoaW5mby0+Z3BhKSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDFVIDw8IGluZm8tPmRhYnQuc2l6ZSwgJmRhdGEpICkN
Cj4+IMKgwqDCoMKgwqAgew0KPj4gQEAgLTQxLDEwICs1Niw4IEBAIHN0YXRpYyBpbnQgdnBjaV9t
bWlvX3JlYWQoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLA0KPj4gwqAgc3RhdGlj
IGludCB2cGNpX21taW9fd3JpdGUoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLA0K
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgcmVnaXN0ZXJfdCByLCB2b2lkICpwKQ0KPj4gwqAgew0KPj4gLcKgwqDCoCBwY2lfc2JkZl90
IHNiZGY7DQo+PiAtDQo+PiAtwqDCoMKgIC8qIFdlIGlnbm9yZSBzZWdtZW50IHBhcnQgYW5kIGFs
d2F5cyBoYW5kbGUgc2VnbWVudCAwICovDQo+PiAtwqDCoMKgIHNiZGYuc2JkZiA9IFZQQ0lfRUNB
TV9CREYoaW5mby0+Z3BhIC0gR1VFU1RfVlBDSV9FQ0FNX0JBU0UpOw0KPj4gK8KgwqDCoCBzdHJ1
Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2UgPSBwOw0KPj4gK8KgwqDCoCBwY2lfc2JkZl90IHNi
ZGYgPSB2cGNpX3NiZGZfZnJvbV9ncGEoYnJpZGdlLCBpbmZvLT5ncGEpOw0KPj4gwqAgwqDCoMKg
wqDCoCByZXR1cm4gdnBjaV9lY2FtX3dyaXRlKHNiZGYsIEVDQU1fUkVHX09GRlNFVChpbmZvLT5n
cGEpLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgMVUgPDwgaW5mby0+ZGFidC5zaXplLCByKTsNCj4+IEBAIC01NSwxNyArNjgsNTQg
QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXJfb3BzIHZwY2lfbW1pb19oYW5kbGVy
ID0gew0KPj4gwqDCoMKgwqDCoCAud3JpdGUgPSB2cGNpX21taW9fd3JpdGUsDQo+PiDCoCB9Ow0K
Pj4gwqAgK3N0YXRpYyBpbnQgdnBjaV9zZXR1cF9tbWlvX2hhbmRsZXJfY2Ioc3RydWN0IGRvbWFp
biAqZCwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlk
Z2UpDQo+PiArew0KPj4gK8KgwqDCoCBzdHJ1Y3QgcGNpX2NvbmZpZ193aW5kb3cgKmNmZyA9IGJy
aWRnZS0+Y2ZnOw0KPj4gKw0KPj4gK8KgwqDCoCByZWdpc3Rlcl9tbWlvX2hhbmRsZXIoZCwgJnZw
Y2lfbW1pb19oYW5kbGVyLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIGNmZy0+cGh5c19hZGRyLCBjZmctPnNpemUsIGJyaWRnZSk7DQo+PiAr
wqDCoMKgIHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+IMKgIGludCBkb21haW5fdnBjaV9pbml0
KHN0cnVjdCBkb21haW4gKmQpDQo+PiDCoCB7DQo+PiDCoMKgwqDCoMKgIGlmICggIWhhc192cGNp
KGQpICkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+IMKgICvCoMKgwqAgaWYg
KCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBwY2lf
aG9zdF9pdGVyYXRlX2JyaWRnZXMoZCwgdnBjaV9zZXR1cF9tbWlvX2hhbmRsZXJfY2IpOw0KPj4g
Kw0KPj4gK8KgwqDCoCAvKiBHdWVzdCBkb21haW5zIHVzZSB3aGF0IGlzIHByb2dyYW1tZWQgaW4g
dGhlaXIgZGV2aWNlIHRyZWUuICovDQo+DQo+IEkgd291bGQgcmF0aGVyIG5vdCBtYWtlIHRoZSBh
c3N1bXB0aW9uIHRoYXQgdGhlIGd1ZXN0IGlzIHVzaW5nIGEgRGV2aWNlLVRyZWUuIFNvIGhvdyBh
Ym91dDoNCj4NCj4gLyoNCj4gwqAqIFRoZSBoYXJkd2FyZSBkb21haW4gZ2V0cyBvbmUgdmlydHVh
bCBob3N0YnJpZGdlIGJ5ICJyZWFsIg0KPiDCoCogaG9zdGJyaWRnZXMuDQo+IMKgKiBHdWVzdHMg
Z2V0IHRoZSB2aXJ0dWFsIHBsYXRmb3JtIGxheW91dCAob25lIHZpcnR1YWwgaG9zdCBicmlkZ2Ug
Zm9yDQo+IMKgKiBub3cpLg0KPiDCoCovDQo+DQo+IFRoZSBjb21tZW50IHdvdWxkIGhhdmUgdG8g
YmUgbW92ZWQgYmVmb3JlIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkuDQpTdXJlLCBJIGNh
biBleHRlbmQgdGhlIGNvbW1lbnQNCj4NCj4+IMKgwqDCoMKgwqAgcmVnaXN0ZXJfbW1pb19oYW5k
bGVyKGQsICZ2cGNpX21taW9faGFuZGxlciwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBHVUVTVF9WUENJX0VDQU1fQkFTRSwgR1VFU1Rf
VlBDSV9FQ0FNX1NJWkUsIE5VTEwpOw0KPj4gwqAgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+IMKg
IH0NCj4+IMKgICt1bnNpZ25lZCBpbnQgZG9tYWluX3ZwY2lfZ2V0X251bV9tbWlvX2hhbmRsZXJz
KHN0cnVjdCBkb21haW4gKmQpDQo+DQo+IEFGQUlDVCwgdGhpcyBmdW5jdGlvbiB3b3VsZCBhbHNv
IGJlIGNhbGxlZCBldmVuIGlmIHZQQ0kgaXMgbm90IGVuYWJsZWQgZm9yIHRoZSBkb21haW4uIFNv
IHdlIHNob3VsZCBhZGQ6DQo+DQo+IGlmICggIWhhc192cGNpKGQpICkNCj4gwqAgcmV0dXJuIDA7
DQo+DQpHb29kIGNhdGNoLCB3aWxsIGFkZA0KPj4gK3sNCj4+ICvCoMKgwqAgdW5zaWduZWQgaW50
IGNvdW50Ow0KPj4gKw0KPj4gK8KgwqDCoCBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApDQo+
PiArwqDCoMKgwqDCoMKgwqAgLyogRm9yIGVhY2ggUENJIGhvc3QgYnJpZGdlJ3MgY29uZmlndXJh
dGlvbiBzcGFjZS4gKi8NCj4+ICvCoMKgwqDCoMKgwqDCoCBjb3VudCA9IHBjaV9ob3N0X2dldF9u
dW1fYnJpZGdlcygpOw0KPg0KPiBUaGlzIGZpcnN0IHBhcnQgbWFrZXMgc2Vuc2UgdG8gbWUuIEJ1
dC4uLg0KPg0KPj4gK8KgwqDCoCBlbHNlDQo+DQo+IC4uLiBJIGRvbid0IHVuZGVyc3RhbmQgaG93
IHRoZSBlbHNlIGlzIHJlbGF0ZWQgdG8gdGhpcyBjb21taXQuIENhbiB5b3UgY2xhcmlmeSBpdD8N
Cj4NCj4+ICvCoMKgwqDCoMKgwqDCoCAvKg0KPj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBUaGVyZSdz
IGEgc2luZ2xlIE1TSS1YIE1NSU8gaGFuZGxlciB0aGF0IGRlYWxzIHdpdGggYm90aCBQQkENCj4+
ICvCoMKgwqDCoMKgwqDCoMKgICogYW5kIE1TSS1YIHRhYmxlcyBwZXIgZWFjaCBQQ0kgZGV2aWNl
IGJlaW5nIHBhc3NlZCB0aHJvdWdoLg0KPj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBNYXhpbXVtIG51
bWJlciBvZiBzdXBwb3J0ZWQgZGV2aWNlcyBpcyAzMiBhcyB2aXJ0dWFsIGJ1cw0KPj4gK8KgwqDC
oMKgwqDCoMKgwqAgKiB0b3BvbG9neSBlbXVsYXRlcyB0aGUgZGV2aWNlcyBhcyBlbWJlZGRlZCBl
bmRwb2ludHMuDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAqICsxIGZvciBhIHNpbmdsZSBlbXVsYXRl
ZCBob3N0IGJyaWRnZSdzIGNvbmZpZ3VyYXRpb24gc3BhY2UuDQo+PiArwqDCoMKgwqDCoMKgwqDC
oCAqLw0KPj4gK8KgwqDCoMKgwqDCoMKgIGNvdW50ID0gMTsNCj4+ICsjaWZkZWYgQ09ORklHX0hB
U19QQ0lfTVNJDQo+PiArwqDCoMKgwqDCoMKgwqAgY291bnQgKz0gMzI7DQo+DQo+IFN1cmVseSwg
dGhpcyBpcyBhIGRlY2lzaW9uIHRoYXQgaXMgYmFzZWQgb24gb3RoZXIgZmFjdG9yIGluIHRoZSB2
UENJIGNvZGUuIFNvIGNhbiB1c2UgYSBkZWZpbmUgYW5kIGF2b2lkIGhhcmRjb2RpbmcgdGhlIG51
bWJlcj8NCldlbGwsIGluIHRoZSBsYXRlciBzZXJpZXMgWzFdIHRoaXMgaXMgZGVmaW5lZCB2aWEg
UENJX1NMT1QofjApICsgMSBhbmQgdGhlcmUgaXMgbm8gZGVkaWNhdGVkDQpjb25zdGFudCBmb3Ig
dGhhdC4gSSBjYW4gdXNlIHRoZSBzYW1lIGhlcmUsIGUuZy4gcy8zMi9QQ0lfU0xPVCh+MCkgKyAx
DQo+DQo+PiArI2VuZGlmDQo+DQo+DQo+PiArDQo+PiArwqDCoMKgIHJldHVybiBjb3VudDsNCj4+
ICt9DQo+PiArDQo+PiDCoCAvKg0KPj4gwqDCoCAqIExvY2FsIHZhcmlhYmxlczoNCj4+IMKgwqAg
KiBtb2RlOiBDDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZwY2kuaCBiL3hlbi9hcmNo
L2FybS92cGNpLmgNCj4+IGluZGV4IGQ4YTdiMGUzZTgwMi4uM2M3MTNmM2ZjZGI1IDEwMDY0NA0K
Pj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZwY2kuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3ZwY2ku
aA0KPj4gQEAgLTE3LDExICsxNywxNyBAQA0KPj4gwqAgwqAgI2lmZGVmIENPTkZJR19IQVNfVlBD
SQ0KPj4gwqAgaW50IGRvbWFpbl92cGNpX2luaXQoc3RydWN0IGRvbWFpbiAqZCk7DQo+PiArdW5z
aWduZWQgaW50IGRvbWFpbl92cGNpX2dldF9udW1fbW1pb19oYW5kbGVycyhzdHJ1Y3QgZG9tYWlu
ICpkKTsNCj4+IMKgICNlbHNlDQo+PiDCoCBzdGF0aWMgaW5saW5lIGludCBkb21haW5fdnBjaV9p
bml0KHN0cnVjdCBkb21haW4gKmQpDQo+PiDCoCB7DQo+PiDCoMKgwqDCoMKgIHJldHVybiAwOw0K
Pj4gwqAgfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGRvbWFpbl92cGNp
X2dldF9udW1fbW1pb19oYW5kbGVycyhzdHJ1Y3QgZG9tYWluICpkKQ0KPj4gK3sNCj4+ICvCoMKg
wqAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gwqAgI2VuZGlmDQo+PiDCoCDCoCAjZW5kaWYgLyogX19B
UkNIX0FSTV9WUENJX0hfXyAqLw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0v
cGNpLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BjaS5oDQo+PiBpbmRleCBjMjBlYmE2NDNkODYu
Ljk2OTMzMzA0MzQzMSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcGNpLmgN
Cj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcGNpLmgNCj4+IEBAIC0xMTAsNiArMTEwLDEx
IEBAIHZvaWQgYXJjaF9wY2lfaW5pdF9wZGV2KHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsNCj4+IMKg
IMKgIGludCBwY2lfZ2V0X25ld19kb21haW5fbnIodm9pZCk7DQo+PiDCoCAraW50IHBjaV9ob3N0
X2l0ZXJhdGVfYnJpZGdlcyhzdHJ1Y3QgZG9tYWluICpkLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCAoKmNsYikoc3RydWN0
IGRvbWFpbiAqZCwNCj4NCj4gTklUOiBUaGlzIGlzIG1vcmUgY29tbW9uIHRvIGNhbGwgYSBjYWxs
YmFjayAnY2InLiBJbiBhbnkgY2FzZSwgSSB3b3VsZCBwcmVmZXIgaWYgdGhlIG5hbWVzIG1hdGNo
ZXMgdGhlIG9uZSB1c2VkIGluIHRoZSBpbXBsZW1lbnRhdGlvbi4NCldpbGwgY2hhbmdlDQo+DQo+
PiArIHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSkpOw0KPj4gK3Vuc2lnbmVkIGludCBw
Y2lfaG9zdF9nZXRfbnVtX2JyaWRnZXModm9pZCk7DQo+PiArDQo+PiDCoCAjZWxzZcKgwqAgLyoh
Q09ORklHX0hBU19QQ0kqLw0KPj4gwqAgwqAgc3RydWN0IGFyY2hfcGNpX2RldiB7IH07DQo+Pg0K
Pg0KPiBDaGVlcnMsDQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHINCg0KWzFdIGh0dHBzOi8vcGF0
Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC94ZW4tZGV2ZWwvcGF0Y2gvMjAyMTExMDUwNjU2Mjku
OTQwOTQzLTExLWFuZHIyMDAwQGdtYWlsLmNvbS8=


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 07:34:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 07:34:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227147.392780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbwA-0001z7-Jh; Thu, 18 Nov 2021 07:34:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227147.392780; Thu, 18 Nov 2021 07:34:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnbwA-0001z0-Gj; Thu, 18 Nov 2021 07:34:26 +0000
Received: by outflank-mailman (input) for mailman id 227147;
 Thu, 18 Nov 2021 07:34:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnbw8-0001yu-UD
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 07:34:25 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2c8f553-4841-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 08:34:23 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AI6Xigi012843;
 Thu, 18 Nov 2021 07:34:20 GMT
Received: from eur02-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2059.outbound.protection.outlook.com [104.47.6.59])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cdc4kgu7x-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 07:34:20 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4756.eurprd03.prod.outlook.com (2603:10a6:208:ce::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 07:34:16 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 07:34:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2c8f553-4841-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AWazcW0xsDd9MBempGDbtY9Wz121pUgc2FyJt0G/J3SHEm7StJpueUfUJjPxNc2UTaeq0qI0FtXoisDlZ5pgNmQiepglG4unmv7so9GtOEYesF4RnNosPMDzD5edXFIPMmvZn12epFqrXX5iT5dMJ2/IyZKPt+qz8ka26fNt7E5yImBUdQ1ZHnt/mmcRXnaZPYuVZ2VzkvOjHUb6nxBME9ofiyIc97kq9nWuN/fEnyANp2YsDHNOq9JrUzkSvrcHAXADLRSwlN5UWxg70XL89plnagTSdLT/xLUBL6iqSl7Z69mHM0Q90ocAvdoBr6F9GXBlO1P1xpxz36XzLs1zJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sGjDzr3Y8v1+vhYuvlArJy6VhDzMWTGjxM10baeoAMM=;
 b=bUUkQU/j5nvWO/sTHLrIAivzHzor8L2UMx6yfpEUlVVAhVWQs3u2R8J1ep9tTpPLO9okjHQU/X42nZKSRKvKHN5J1ST2q2eVXe/j52cX5xXjv/26ETs10WDsY9uSGRq9otN8C6B4RkZqfPD53Ndu+z6ZLRf2TdNl7o+ztQ+VSCTCVyykY7aLFtFr3AGTO/wCB4zUJVZdgQjeCaXyu9MvXT6SkB4fOcq6+2KaGXBgSo/oN64v44773W7UrdqwhUGoWpRpdrzoLSO5nhoAvQLGsHE3u8Lh5EofkrHeToaYXvvfJgpArNl4gS+rwGsmg9V3EO816IQ9ETSVSnV5CBCTxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sGjDzr3Y8v1+vhYuvlArJy6VhDzMWTGjxM10baeoAMM=;
 b=N2+QoA7Ny4fmfeM/PX1afPFwvPRfkKuqODSWWdHyYWmEe6qwud4mGbx5I4x4VmMPAXm96FUXnqzLg/ErAJ+e1FnCqqhZAhTNnDoYeDZtpBSQNS/+b1UOgR6oqpRTld70zhVQ/4Tz4PtnZmmKUzXKow1lv4yxccmXxenkJ7NZPTk+/roHHjV21TDCh6r+NPra7aClD/pBxIcVbaUq8+4UD+wrbQo8rJ3Bl3qTB7/OWF3aKwje911ogbfQnOtXz6ZNHjIG/1SH1jozeWtaTpIlyVWfC4gXe5mDhQMW3Ysyfml01QWDpCoIIgECYeAiUYl0aTd2tYpx9SoEQRKZWnzahA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 7/7] xen/arm: do not use void pointer in
 pci_host_common_probe
Thread-Topic: [PATCH v6 7/7] xen/arm: do not use void pointer in
 pci_host_common_probe
Thread-Index: AQHX0g8VdyW1HUZQoU+rE1C3L5fCpKwIVL2AgACkhIA=
Date: Thu, 18 Nov 2021 07:34:16 +0000
Message-ID: <aa6075bd-3bfc-f49e-e0b9-07ee131c315b@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-8-andr2000@gmail.com>
 <af9d192c-7445-1378-a81d-17101bad7245@xen.org>
In-Reply-To: <af9d192c-7445-1378-a81d-17101bad7245@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 362e05e8-8a31-44f6-effe-08d9aa65d36a
x-ms-traffictypediagnostic: AM0PR03MB4756:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB4756090E6484A9AD68878B77E79B9@AM0PR03MB4756.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 kMR6ktTle7tjQTOq4ySoXUQYte/PBf3VG84GCBuh/VQSpPkyqxRy3Zj6oCrGeSDZ1qOJP7u06RONssRobzMJGNstRjnFEe88jcRsvAsAI1ADQ0VDDOEj37DRMr5at3oNB8X8rroZ3/J4s/20NdXpMWslLNUHBRKcn6KonTDM57fedAhepzjd3BuFX8h8HqUHND4WNfsHPgGxudY+czHjgewoeCDIQL4f/gMfNugarZzm83Ar5JCN7EtcctQb7JY+JOzhUZA2WCUMbXYCNBTf5rOeENgb+3OmH2lDHo8UdtTDAHH0P7vfm89diYzo4Ym+VLjGxb1lOkqlwcS5649JWg5IjGnvnvbDODo3QoxDt3JELt5L23sM9wHtxAM2aRkN7xhMrmEUE8m2JKZZz55hKxQIPLx0XjLegFo0RJBvx5ICv/tMfQtHJ398ia6rm1DktKYbfLZFalByh5QG0skd/rb5mR3jBGa6Pw+Yq4B+Qz2bQi9Qf6VecygHMLtB4NBIHMyzjW8+h8rr8di3u25yjLa4MQdATxYHTABGYu/FW5d/pRlMmigz3L/AMLp6Kijw1vn4VRgJGvSPWvlWWobfPg/AS9SfkWKY6v/f3lZK6KidIkIinwh4wFDN8YPH9Kb/a4PrwlMJJym0g6ZBp0zt+SP2CTPA3RYZ7KUpARaSnEK/a9xOBRxsxgDhio6Ah4OalgDveWXQJPutNmaqqmZepO8lnhD3aCsBI0KLhedJ3dzD3b+4yLD5usU6W1HcW+9p
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(76116006)(71200400001)(91956017)(54906003)(110136005)(2906002)(38070700005)(316002)(6486002)(107886003)(38100700002)(8936002)(186003)(83380400001)(6512007)(508600001)(36756003)(66946007)(122000001)(2616005)(66446008)(86362001)(66476007)(7416002)(66556008)(4326008)(64756008)(31696002)(26005)(6506007)(8676002)(53546011)(5660300002)(31686004)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?R2xsektXRGg5UW5FNjJnWnQ3ZDMyTGxhTXlHNzd6SFc5R2NoY0hWRk5tZjhJ?=
 =?utf-8?B?RXdmMXFUeFZ5NXJXbU44aHU5SU9BYW9ibTJyWnpIOTh6aDdyQ0ZHd1BTNE4w?=
 =?utf-8?B?dDVFaEhPenFkc0RqcHJuWGFWRkoxZlc2MVNzYm5uOEl6RDVLOHQwYmVodjk0?=
 =?utf-8?B?T1ovM1NxS2I1TWZ3ZnEwU2RQaWN4NDQ3ay9jT2xONHJjbFlhSUtKY08yRVZQ?=
 =?utf-8?B?WFdmU0I0OEtualRNQVp6dk9Dd2l1Zm1Gcnh4enh2d29ZN2hoVXlINGJtZG1u?=
 =?utf-8?B?RjBRTVh1ajV3eVZRUjk1N1BBNU9WK2ZkTFBUQWd2THk5SzBuYUxlSEFONXVD?=
 =?utf-8?B?Z29KOEZtOU0xNnNOTkxZUFZZQmpwQllCRW9nVlFTNzljQXBzbzdtSTI1YnVO?=
 =?utf-8?B?aVNoVjBXaDlkRTBkRzNLTWllSmg4SHpnQ01QenRiZmhQVVdIZkFhYTMrdmYw?=
 =?utf-8?B?VmJMVjF1N1A5dFJDTnN4QkovNjdwSENTMzd3U0p6eDA1OWI3YUdRQzNXVWNv?=
 =?utf-8?B?NVNnUTJsdk0ybmFYQ0QwY0U2N0c3UXlzTjZmYTczcE5uOUNEdEFEUmdoYkxu?=
 =?utf-8?B?Z1VBbXRoeUQvQzZ0b2tlUmgvUlhVendXd2FoUHhKQWYyaDJ6b3ozdzJ4c3VQ?=
 =?utf-8?B?Yzgwd1NPVHkyaW5GQU1WZzF2ZnBaMkJTbG5FMjZIV2tyekZjeXhQOEx3UHZu?=
 =?utf-8?B?VW10MnNOczlGMFZ3enU1VmpLMjVkelJOTWVTR1hZMHlSZ0ppbWxUOWlTRnNX?=
 =?utf-8?B?RHhMVC9xN3psNG55ZGlBdHpNTmdJY21EbjM1blVSMHFMWm5HSWFPMWtINDdt?=
 =?utf-8?B?bGhmL0tScmRpVnJHeHdUM1ljWUp5UlRCUkozVE5qRFk5MTNwOWQ4RDdGWTRY?=
 =?utf-8?B?V1o0bUl5MjZHendXalFKRXNsWmNya2NIa1FpV2xpVEVKQkVTTmJFMzNIVks1?=
 =?utf-8?B?MzdKL2xYRVZtbXVMcXF6YVladXI1cWFFQzdkRCtjMlVZZ0RHY2ZHcm5TZGhi?=
 =?utf-8?B?UUhHNExEOGNieUZlMUFKTXI5YVhvWXdsTGlQVlgxOGcvZitjODlBOHdaMUkz?=
 =?utf-8?B?ZXhpYU1nU1VxdERxYkVyMHR2Zm1aSG9FNmdZNnBlQS9lczlBTGFtRTArczFI?=
 =?utf-8?B?OVdIOW1SYnQ5MWpZbC9pYXZTck51QUUvditaaEVjZ0pPaXhZMzkzV2tKNGpO?=
 =?utf-8?B?SEpTUUlBSGN3U0dEVGx4UFdxMVNKV1ppd1dOdFpJWWRsSGgza1R5Tm5XbnM4?=
 =?utf-8?B?clh1bmFZdG9mNFhuT1dHV1B2VU1odlcyYzRuMzFJek5Rb2YvUnkxcmdRaTRm?=
 =?utf-8?B?SDMrdXhlc2hpTTFoS2JzRFhaZm03WUMvNXZrQktTb1VVWXU4bHNrbFJ5SjUv?=
 =?utf-8?B?ZWN5YTh3SHNQbjBRR0lJeDQ1RG5IWmg1aTV1ZFVuS3oyS1p0NXZkU0ZpRTBL?=
 =?utf-8?B?a2UyUld4SHI1V2JuZmIvQzZVSFNoc2VPdW5ZSnFJQkxRTUVWUnFiQXZGTGZO?=
 =?utf-8?B?NXZiK3p1c2RDeTd5Q1M4Z25xbHVHN1p0eUwvYWNlUE8yc1hDd2NKY2d5YkJi?=
 =?utf-8?B?ZTVtY1lPTUg0OEFRZUNRZVpvaHFnMTNSS0Y4ejlvWE0vTzFkNkRSVlZQYXlJ?=
 =?utf-8?B?RmRIc2pyUVlkTnBmVVMveHJiR2ZsR3ZNc3c2ZGR3aUhxQ1dvd1NTdmd3NnlU?=
 =?utf-8?B?WjRGNjdmOWJJbGJSejhlQ0RiN0dPQlFiRktBUnFoMC84OENWK28vcGN0R2Mx?=
 =?utf-8?B?dW03ZlBNNFhUNkR5MHBScVBKbXYrbENTSWVpZXhjd21lOC80NS91ZVc1YlRr?=
 =?utf-8?B?Qk1Uc1JjVUFuTFJpMlZRVUIvUlRoNXgzRmx1a1JWQ3piOEEvRlVOY0hLRGIr?=
 =?utf-8?B?c3pUOUt0QzRPMUY1S0dhMzNNUkpsdlUzS1dLZnU5WXRtM2N1S0Zubm1tRElX?=
 =?utf-8?B?MXBkYythR0VrZW1ITDU1VnBjWnZWbDBoUFVPZTkvTVc1MStNajlCVy9kU0tN?=
 =?utf-8?B?cktMbGNHUEltZlRaNS9vYW0ydmZrWCtiTHpMSy93TVpUT20rZjNhZUd4U29S?=
 =?utf-8?B?RjhrMmEwaHIxSUtuOVAvbmQ0eGE1M2xpaFJ6bmJCbWhMZjJYcWh4NEY5TjUw?=
 =?utf-8?B?MVVwOE5nbTQ4UVk4T3A5ZTExeDhkOVNsZDFFNEJJMUVmOTk5MmNseE1KNjNs?=
 =?utf-8?B?UTNLQklKS0tCc1FEU1JudTY1V1VwZkYvYkdWaU1lazJydXZPd00rb0cxS2N4?=
 =?utf-8?B?Z01pNnFycXdaRVZKNEVqUGVXaW5tbUszVFpuK2xBYUZUdStsMlBtMFNHNDZo?=
 =?utf-8?B?cVp0eWltbzRDbGprT0ZNb1NlL2dubFdKa0Z3UnhscWtCb1BIekQzZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <94892F10691E4746947711E69DF081CC@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 362e05e8-8a31-44f6-effe-08d9aa65d36a
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 07:34:16.4010
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: AGJ/eMWReUo3cO8LOL+upxZwYm+x0M1YXYn6DCc8Qm06cznd83LJUUkO/3BkxWJrsv2Em5xRhCsxVQn6dyRhwqWAnL/+RKEwYtDMdb5Wbn3zVep3Dx1mBfNBf0uUKCdB
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4756
X-Proofpoint-GUID: 6XM1nbe2HlA246UpfIhuUZ9tLuOCXXT8
X-Proofpoint-ORIG-GUID: 6XM1nbe2HlA246UpfIhuUZ9tLuOCXXT8
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_02,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 lowpriorityscore=0
 mlxlogscore=999 suspectscore=0 spamscore=0 priorityscore=1501
 impostorscore=0 clxscore=1015 adultscore=0 malwarescore=0 phishscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180043

SGksIEp1bGllbiENCg0KT24gMTcuMTEuMjEgMjM6NDUsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRyLA0KPg0KPiBPbiAwNS8xMS8yMDIxIDA2OjMzLCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2Fu
ZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+DQo+PiBUaGVyZSBpcyBubyByZWFzb24gdG8g
dXNlIHZvaWQgcG9pbnRlciB3aGlsZSBwYXNzaW5nIEVDQU0gb3BzIHRvIHRoZQ0KPj4gcGNpX2hv
c3RfY29tbW9uX3Byb2JlIGZ1bmN0aW9uIGFzIGl0IGlzIGFueXdheSBjYXN0ZWQgdG8gc3RydWN0
IHBjaV9lY2FtX29wcw0KPj4gaW5zaWRlLiBGb3IgdGhhdCByZWFzb24gcmVtb3ZlIHRoZSB2b2lk
IHBvaW50ZXIgYW5kIHBhc3Mgc3RydWN0IHBjaV9lY2FtX29wcw0KPj4gcG9pbnRlciBhcyBpcy4N
Cj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRy
X2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+DQo+IEkgd2FzIGdvaW5nIHRvIGFjayBhbmQgcHVz
aCB0aGUgcGF0Y2guIEJ1dCB0aGVuIEkgY291bGRuJ3QgYXBwbHkgdGhlIHBhdGNoLi4uDQo+DQo+
Pg0KPj4gLS0tDQo+PiBOZXcgaW4gdjQNCj4+IC0tLQ0KPj4gwqAgeGVuL2FyY2gvYXJtL3BjaS9l
Y2FtLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgNCArKy0tDQo+PiDCoCB4ZW4vYXJjaC9hcm0v
cGNpL3BjaS1ob3N0LWNvbW1vbi5jIHwgNiArKy0tLS0NCj4+IMKgIHhlbi9pbmNsdWRlL2FzbS1h
cm0vcGNpLmjCoMKgwqDCoMKgwqDCoMKgwqAgfCA1ICsrKy0tDQo+PiDCoCAzIGZpbGVzIGNoYW5n
ZWQsIDcgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gvYXJtL3BjaS9lY2FtLmMgYi94ZW4vYXJjaC9hcm0vcGNpL2VjYW0uYw0KPj4gaW5k
ZXggNGY3MWIxMWMzMDU3Li42YWVlYTEyYTY4YmYgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9h
cm0vcGNpL2VjYW0uYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3BjaS9lY2FtLmMNCj4+IEBAIC0y
NCw4ICsyNCw4IEBAIHZvaWQgX19pb21lbSAqcGNpX2VjYW1fbWFwX2J1cyhzdHJ1Y3QgcGNpX2hv
c3RfYnJpZGdlICpicmlkZ2UsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBjaV9zYmRmX3Qgc2JkZiwgdWludDMyX3Qg
d2hlcmUpDQo+PiDCoCB7DQo+PiDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCBwY2lfY29uZmlnX3dp
bmRvdyAqY2ZnID0gYnJpZGdlLT5jZmc7DQo+PiAtwqDCoMKgIHN0cnVjdCBwY2lfZWNhbV9vcHMg
Km9wcyA9DQo+PiAtwqDCoMKgwqDCoMKgwqAgY29udGFpbmVyX29mKGJyaWRnZS0+b3BzLCBzdHJ1
Y3QgcGNpX2VjYW1fb3BzLCBwY2lfb3BzKTsNCj4+ICvCoMKgwqAgY29uc3Qgc3RydWN0IHBjaV9l
Y2FtX29wcyAqb3BzID0NCj4+ICvCoMKgwqDCoMKgwqDCoCBjb250YWluZXJfb2YoYnJpZGdlLT5v
cHMsIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMsIHBjaV9vcHMpOw0KPj4gwqDCoMKgwqDCoCB1
bnNpZ25lZCBpbnQgZGV2Zm5fc2hpZnQgPSBvcHMtPmJ1c19zaGlmdCAtIDg7DQo+PiDCoMKgwqDC
oMKgIHZvaWQgX19pb21lbSAqYmFzZTsNCj4+IMKgIGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v
cGNpL3BjaS1ob3N0LWNvbW1vbi5jIGIveGVuL2FyY2gvYXJtL3BjaS9wY2ktaG9zdC1jb21tb24u
Yw0KPj4gaW5kZXggNmFmODQ1YWI5ZDZjLi4xYWFkNjY0YjIxM2UgMTAwNjQ0DQo+PiAtLS0gYS94
ZW4vYXJjaC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0v
cGNpL3BjaS1ob3N0LWNvbW1vbi5jDQo+PiBAQCAtMTk0LDE1ICsxOTQsMTMgQEAgc3RhdGljIGlu
dCBwY2lfYnVzX2ZpbmRfZG9tYWluX25yKHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqZGV2KQ0KPj4g
wqDCoMKgwqDCoCByZXR1cm4gZG9tYWluOw0KPj4gwqAgfQ0KPj4gwqAgLWludCBwY2lfaG9zdF9j
b21tb25fcHJvYmUoc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEp
DQo+PiAraW50IHBjaV9ob3N0X2NvbW1vbl9wcm9iZShzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRl
diwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzICpvcHMpDQo+PiDCoCB7DQo+PiDCoMKgwqDCoMKg
IHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZTsNCj4+IMKgwqDCoMKgwqAgc3RydWN0IHBj
aV9jb25maWdfd2luZG93ICpjZmc7DQo+PiAtwqDCoMKgIHN0cnVjdCBwY2lfZWNhbV9vcHMgKm9w
czsNCj4+IMKgwqDCoMKgwqAgaW50IGVycjsNCj4NCj4gLi4uIGluIHN0YWdpbmcsIHRoZSBjb2Rl
IGhhcyBhbiB0d28gYWRkaXRpb25hbCBsaW5lcyBoZXJlOg0KPg0KPiDCoMKgwqAgaWYgKCBkdF9k
ZXZpY2VfZm9yX3Bhc3N0aHJvdWdoKGRldikgKQ0KPiDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsN
Cj4NCj4gSXMgdGhpcyBzZXJpZXMgcmVseWluZyBvbiBwYXRjaCB0aGF0IGFyZSBub3QgeWV0IHVw
c3RyZWFtZWQ/DQpZZXMsIEkgbWlzdGFrZW5seSBoYWQgYSBwYXRjaCBiZWxvdyB0aGF0IEkgZGlk
bid0IHdhbnQgdG8gdXBzdHJlYW0gd2l0aA0KdGhpcyBzZXJpZXMsIHNvIHRoaXMgaXMgd2h5LiBT
b3JyeSBhYm91dCB0aGF0Lg0KRnJhbmtseSwgSSBkaWRuJ3QgZXhwZWN0IHBhdGNoZXMgdG8gYmUg
bWVyZ2VkIGZyb20gdGhpcyBzZXJpZXMgbm93IGFzDQoxKSBJIGV4cGVjdCB2Nw0KMikgSSB0aG91
Z2h0IHdlIHdvbid0IHB1c2ggdW50aWwgdGhlIHJlbGVhc2UNCg0KVGhhdCBiZWluZyBzYWlkOiBk
byB5b3UgbWluZCBpZiBJIHB1dCB5b3VyIEFja2VkLWJ5IGluIHRoaXMgcGF0Y2gsIHNvDQppdCBp
cyByZWFkeSBmb3Igdjc/DQo+DQo+IENoZWVycywNCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 07:49:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 07:49:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227154.392791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncAY-0003Z4-2K; Thu, 18 Nov 2021 07:49:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227154.392791; Thu, 18 Nov 2021 07:49:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncAX-0003Yx-V6; Thu, 18 Nov 2021 07:49:17 +0000
Received: by outflank-mailman (input) for mailman id 227154;
 Thu, 18 Nov 2021 07:49:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mncAX-0003Yn-Bq
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 07:49:17 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 067ff4ee-4844-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 08:49:15 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AI6XxnS022679;
 Thu, 18 Nov 2021 07:49:11 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2058.outbound.protection.outlook.com [104.47.14.58])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cdchgru8c-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 07:49:11 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB7427.eurprd03.prod.outlook.com (2603:10a6:20b:267::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 07:49:06 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 07:49:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 067ff4ee-4844-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=S6xYWGp/g0FtOcMB6E95Icdv0WwsZM8DbP+KsaG0OqgeFkT83dPugwyyiw35UTKVBOZDFkbe77nREJz5I4fV899wwY0t4ugZGPxJ4uCFU9NvC9lI0R0Pf2uah3cec+bjBX/ci6XhPsryK97F7h9DBLA4mMhr4V+EkFWYEKgi0nspAgI1yn6sNiWfUboAsgut0q8Wf+N56LKWj/fI+VnlRxahS6ZndZO6eXxYBx/KcNInfsueQ6PgRJ1OdYdH5psbghVIDIA2xJvZ6icQZQrM3wkXsynjD5ZtkYjYCvYzsp/1ZbhoOrm8AEsDfZeAvo6XTjdEoyoD27YHaiHMXX4Pgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nmp+qFIFD+EkQb+Qai1M7TC7Z9wkvbtKTE3EEwcSzrI=;
 b=iRBRclvgFeP7u5jYiCWlKLKhdMM6IVGps6/D0Ky374JiCx43DqEWR7C2XvgMiQUYp39/2RCjE2WvxEIS2LCpKCPnfMSZmMS1Pb8L/g1pOY/SNL207bDdr4423AU1LPXBhik1ydmDLZmvUNzR/obypZaDr3VYIms8kJD5vECIAs7mFc9XrgYbWSaQOeUnj8O4y6cENFKyZTNvM3tnRF6L+aMCZiv4SMR0SXC6tlI202nYAX/TXI1T2akQ7Y3xu6D6tM+YI68EY8FkzvKGQhXGFylnr97xP3VXvOJ9ZLk91EK8ucNhHFcI8Qd18fGraO68dNpF6zhbk/fEgpbBbUbNUw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nmp+qFIFD+EkQb+Qai1M7TC7Z9wkvbtKTE3EEwcSzrI=;
 b=noiGKgRgi7S89oEIqD4KQjZ0LSUreLLSLgEIKBPaq/USthIRRow538XIAMX3vVgeX5hZ78mSYIET+dsuWacQSh0jXgcB9zXBmbBx1Z0Mf+6GNG8LXs/3CaYDKUTpEMQ4cnQy0pYfeJ/m6t0ExVyoig1mhZ4m3zKqYpsuI07zdAuRWumhgEiBm/a7ruRtx6f6aotnepbwcl6+bPAoquf1xRmUk4Q4v28IUMlNo+lbFQIUfqQjtsLACEIooYZ8PwP8t8fgaGt7cGmvdtRIUUe/ZBkbifoTrCWBso5DwMTsUsnSS4tnCC0if00kImwOLzWNItxsBROgonA3hJyVVC4Fyw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYA=
Date: Thu, 18 Nov 2021 07:49:05 +0000
Message-ID: <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
In-Reply-To: <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 957e03d0-7a82-441e-fc57-08d9aa67e59d
x-ms-traffictypediagnostic: AM9PR03MB7427:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB7427368D8C1FECB573084D24E79B9@AM9PR03MB7427.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 mD58uaNATVRddZclKGLfeLpUmCCeM1RgFowFZiNZYgJIXi5wPmsGLp6EocEpnQnoPbDiELqY4UxTH5S1kmO6rV/4OQGnhbVcadozV1hPHH8jvsf3zk7yQ+UJ1pLnkggGv9u9KhWLNa4lZAV1HknXL+HaezJNc+hi0yeC/Ga2o2cX6vmUOi1rawLi3XfcJJR3IjIDUbPl6b0JwhVODAUu70WDi+PHBF2zai+LzmCAmOOYtOkj4KE2O2lUjC/UKCjEIFsgzjJG7J6z8kku6Ph66iviJlRYmAzlwD8l5YnlUyr6TLOBedbLQthiCzbt9IICsgjSK4WuvJVed+6pzgTpD4w1i7w1SIx/a0lKZCfHd1KE48U5OKDVMqWM/aTuluE/cHLavf09Q13OxtX16DZTrIef3WSht8trShFKqzC7nPhzww3CfTflBj9uEwwUtZ0O8KhEJSZrcwbla8a/a+G2xJWGe+nPB5wNGeBTbwSZ21+uChWwiOqu0VgzBs8GDi54agvShVrG/3eia8mOvAGJ8Nj7e7MxqmavpekbmDuWaOWUmsrshZKilrzMBKhbcaWuVGRjZOkQZprn0zTwoAPsmnTdEuqaJKcI/O0hgI/0HwsLgqZwaljazAdACQGLH5mGM3idt3RoR7ATROen7B5MEKl5SzWE1/p4zJQsKQgADWtOCJ5GNkisO/k9BfMN/r93PHia6uJCMvgThqQqS7Kj8Pm9BbA071j3f/oL2Dhyed9o90YAnnwFwI+w3L/32rel
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(31696002)(122000001)(38100700002)(6506007)(8936002)(83380400001)(91956017)(508600001)(53546011)(66476007)(76116006)(64756008)(66446008)(66556008)(31686004)(8676002)(26005)(66946007)(2906002)(186003)(36756003)(54906003)(4326008)(107886003)(86362001)(6512007)(110136005)(71200400001)(38070700005)(6486002)(316002)(7416002)(5660300002)(2616005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?RHFEd1FIZXlrdjBDZ0hCRzc1ZWdod0tkUWtmUkh5a3lNWFZHQTdXL043SHd0?=
 =?utf-8?B?RHBSVHpVUzB1RGRrMHVGTzR0QUc5RmVjQi9sVlZiWlhXMFBIWnAvNDZ1QzQ4?=
 =?utf-8?B?SllicWVUOCtQckF5ajE2ZkEyVTVWTUZkUUd6cjIxVVJ3RUdHSjVLbDhSa2VY?=
 =?utf-8?B?aUdMOU5wRWFjUUtHdlV6ZmE0Uk93a0czV1NDR0ZNdkhkcTdtRWRMNis4VGtM?=
 =?utf-8?B?N2tqdDhSaUxCVWFSMUFkTDI2cWErS09kOVlrVlVNbTQ5bzBwcnQ1OE5zcENu?=
 =?utf-8?B?L2xkQWRvc1kvQmJxV3NaZDhyWFZBL0JPeDZsSWZJQVRsVVlybG5jMXhPT2Zh?=
 =?utf-8?B?R1hjRmhJRHRiWWJLdm1KL1doUkp1eFlRRElMcDdiYTRnSmxzSUxvdVBnclFO?=
 =?utf-8?B?cFYwWVVwejNvMGxNU3dPdmlPWFYwWmJSbzFDUkhCUDZXNklld1piR0J5em4z?=
 =?utf-8?B?NjBiTEJYOTlrbG4wZ3dHNytKYlV3MU9oL0ZpcHVlZGg5dnFQWVJLOThMNWh5?=
 =?utf-8?B?OVVBTnJPQWR5dHUxRjI0Q0x6cGxMbVJXaUpic2E1cXVIMWhkS0pSaXJsaTBH?=
 =?utf-8?B?UTVlVXhWMW1ta2RNV2R1eTAzdmlnNFYvQWd2eGtDVktObWxHMkY3MHE5b1g5?=
 =?utf-8?B?cms0d0htS2NjS3ZOQ1JjZGpPcHZNaEVtOVFFT1ZZb3hDTUl2NG5sSFNpNXMr?=
 =?utf-8?B?WnQ0VXFHdEhmaVB6RUNhSlBobDY3N252cThKSk54MFhOd09pdXQyZjBnZlVF?=
 =?utf-8?B?czNLMEdleGk2L1NxVW1EZmtlL01FWXpoWFFNTDBaQW4rakttdjcreGZMZEFW?=
 =?utf-8?B?cjlPSldXbmNIZU1ScDZWazIvL3N3ZUpYNFNXM2UrV2diNzB0akhnRnVCd1NR?=
 =?utf-8?B?YWNqaWZjWDBLZUJNWVZ6MzR1YUUzMzNNK0JqalQvMW1tZHBOeW5ieGFvYjYr?=
 =?utf-8?B?aHZPMW1URk9yemlYb0JHMEZsZDFCTTJHeDUwY0pjaENZdVRpeThCSDRBSnpt?=
 =?utf-8?B?eE8rdHdYek1MZm15OHVwT3dDM1MwaXZwR3FKQ3RVODlieWpleW01ejYxY05U?=
 =?utf-8?B?d1JxZWczaEhqdlo2MTgxaGFwcEVrSytwZW41dDFnQnJUTFFXNy93RUhWckJx?=
 =?utf-8?B?eUlBTytpMFBXdExYQVFVMGJqTElQb1BnV3hYVkQ3ZmlZenJXcVhXeXZVcHhx?=
 =?utf-8?B?UFNmRmw4dlpuZEFoYXdFZWgwZGNodENDQ2N4VGdKbWdSTy80NXVuNmU5Qy9P?=
 =?utf-8?B?WWxpdmFYN21TTFdSZXZvekVrMHVsYzF6MURFbVRZTzY1MmJ4Q2pSdE9wVnhC?=
 =?utf-8?B?ZjIrdHRXRW8xTzFMZ2JrbVUxUXpENnh1RE51M0tmQVFvZFZiaTVIQ2tYSDA5?=
 =?utf-8?B?R2JLMHlneXkycU53NlRpYzA3ekkzM2dHbVg2TTc0VjBOcC85ZWJhSFM0enJF?=
 =?utf-8?B?c2liMlNXWEMzaUJ3bklsYk9IN0ZNSGwvR25OdDZqK3JSR0ZST3g4V3hVMXdK?=
 =?utf-8?B?Zy9KT3Q4MmFPQmw0VHpGUnNGYVRpWFpsbW1obVdMOEdJRGRocVVMM2pxbnpm?=
 =?utf-8?B?eDdENkdabEZ2UVQ4ZHkvVk1iMm8xcHJHWm0wUGlWc0JYRW11azFOY1FiaEZn?=
 =?utf-8?B?eVJpajVkbjk1T3E0OWtGTUpGUm1TQjdUdXo0ZnlTOTNxVTh5TUp4WWVUdEtn?=
 =?utf-8?B?a2hMazNmZ0VRQUM4aUFiN2luZWFic0R4Y3Z0YkorcUppV2l4REdxa0JadHJ6?=
 =?utf-8?B?VmlJUGg5dWFNZzMxOVVqeWxwcWpQd09UK1UxeXBWclpxSVFmc3dGLytGNEg0?=
 =?utf-8?B?QmRyMFJZa1ZrQkRaRmxLQS9HR2p3eEdRbHd4aU9hdlJuT0Yxb0RxM21zOTFY?=
 =?utf-8?B?SE1jU3pYeUkvTFFUTllXMXpXcjFoOXdCRWNLOGhUcTE4cDJWWVhYdnlzUnk2?=
 =?utf-8?B?ck8waGtmVWhscW1OTEcreUt0aHl6c0JDcE10TlRudXpiM0svMG9TZVVtakFJ?=
 =?utf-8?B?QTUwMnBoVjZoQ3I2NkxuS1RoY1hSWityU1docGt5L2drRTZMd3IyY25uU2xJ?=
 =?utf-8?B?MVlzRGE1aEM2VmdwaWIxVjdPRVFVNDVOSVdlNVNLNE5QT2p3WmREOG5DVVU0?=
 =?utf-8?B?cmJ4eXhyVXlucGNGbVc4ZXhNbkNDY1kxZy9PUDBPNWgxelA0U0hhdXVxMHl0?=
 =?utf-8?B?REhibFdWc1REQnNlbmsvOGtrMGFUTUUzMjNaenJjUUNsbTlBYWlPN01FaDU1?=
 =?utf-8?B?TUdGRHVvWHhRc3J6ZlQ3TVo1OVVNWWkzOHBLOEYwcFk2dms3OGhwSnlhRktX?=
 =?utf-8?B?ZlZvaG5YdkErN2xpYW51SE5FblBTRFRVU0FsZlh4SDNyQ0FHaC9lUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3D300308B1E30242AB8B9249CA270415@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 957e03d0-7a82-441e-fc57-08d9aa67e59d
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 07:49:05.9578
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: FLBFOlnEKGXEC1pTf7yWHwAxIWuKEGXNwpiigr1ezBICVHtk/nSI0wEIXLRoglBCLqTXpbL4yV3KnevU4cHllgo1hwyX0pGUZ+HjLyiOQpo0XWopuNA+CE/+073ZJYXA
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7427
X-Proofpoint-ORIG-GUID: rwl5zYgc_CttZ3afqlgSzXOGTNpQ7nDq
X-Proofpoint-GUID: rwl5zYgc_CttZ3afqlgSzXOGTNpQ7nDq
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_02,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 malwarescore=0
 lowpriorityscore=0 impostorscore=0 clxscore=1015 suspectscore=0
 phishscore=0 priorityscore=1501 spamscore=0 mlxlogscore=394 adultscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180044

DQoNCk9uIDE3LjExLjIxIDEwOjI4LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gV2hlbiBhIHZQQ0kgaXMgcmVtb3ZlZCBmb3IgYSBQQ0kgZGV2aWNlIGl0IGlzIHBvc3NpYmxl
IHRoYXQgd2UgaGF2ZQ0KPj4gc2NoZWR1bGVkIGEgZGVsYXllZCB3b3JrIGZvciBtYXAvdW5tYXAg
b3BlcmF0aW9ucyBmb3IgdGhhdCBkZXZpY2UuDQo+PiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2lu
ZyBzY2VuYXJpbyBjYW4gaWxsdXN0cmF0ZSB0aGUgcHJvYmxlbToNCj4+DQo+PiBwY2lfcGh5c2Rl
dl9vcA0KPj4gICAgIHBjaV9hZGRfZGV2aWNlDQo+PiAgICAgICAgIGluaXRfYmFycyAtPiBtb2Rp
ZnlfYmFycyAtPiBkZWZlcl9tYXAgLT4gcmFpc2Vfc29mdGlycShTQ0hFRFVMRV9TT0ZUSVJRKQ0K
Pj4gICAgIGlvbW11X2FkZF9kZXZpY2UgPC0gRkFJTFMNCj4+ICAgICB2cGNpX3JlbW92ZV9kZXZp
Y2UgLT4geGZyZWUocGRldi0+dnBjaSkNCj4+DQo+PiBsZWF2ZV9oeXBlcnZpc29yX3RvX2d1ZXN0
DQo+PiAgICAgdnBjaV9wcm9jZXNzX3BlbmRpbmc6IHYtPnZwY2kubWVtICE9IE5VTEw7IHYtPnZw
Y2kucGRldi0+dnBjaSA9PSBOVUxMDQo+Pg0KPj4gRm9yIHRoZSBoYXJkd2FyZSBkb21haW4gd2Ug
Y29udGludWUgZXhlY3V0aW9uIGFzIHRoZSB3b3JzZSB0aGF0DQo+PiBjb3VsZCBoYXBwZW4gaXMg
dGhhdCBNTUlPIG1hcHBpbmdzIGFyZSBsZWZ0IGluIHBsYWNlIHdoZW4gdGhlDQo+PiBkZXZpY2Ug
aGFzIGJlZW4gZGVhc3NpZ25lZA0KPj4NCj4+IEZvciB1bnByaXZpbGVnZWQgZG9tYWlucyB0aGF0
IGdldCBhIGZhaWx1cmUgaW4gdGhlIG1pZGRsZSBvZiBhIHZQQ0kNCj4+IHt1bn1tYXAgb3BlcmF0
aW9uIHdlIG5lZWQgdG8gZGVzdHJveSB0aGVtLCBhcyB3ZSBkb24ndCBrbm93IGluIHdoaWNoDQo+
PiBzdGF0ZSB0aGUgcDJtIGlzLiBUaGlzIGNhbiBvbmx5IGhhcHBlbiBpbiB2cGNpX3Byb2Nlc3Nf
cGVuZGluZyBmb3INCj4+IERvbVVzIGFzIHRoZXkgd29uJ3QgYmUgYWxsb3dlZCB0byBjYWxsIHBj
aV9hZGRfZGV2aWNlLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hl
bmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4gVGhpbmtpbmcgYWJvdXQg
aXQgc29tZSBtb3JlLCBJJ20gbm90IGNvbnZpbmNlZCBhbnkgb2YgdGhpcyBpcyByZWFsbHkNCj4g
bmVlZGVkIGluIHRoZSBwcmVzZW50ZWQgZm9ybS4NClRoZSBpbnRlbnRpb24gb2YgdGhpcyBwYXRj
aCB3YXMgdG8gaGFuZGxlIGVycm9yIGNvbmRpdGlvbnMgd2hpY2ggYXJlDQphYm5vcm1hbCwgZS5n
LiB3aGVuIGlvbW11X2FkZF9kZXZpY2UgZmFpbHMgYW5kIHdlIGFyZSBpbiB0aGUgbWlkZGxlDQpv
ZiBpbml0aWFsaXphdGlvbi4gU28sIEkgYW0gdHJ5aW5nIHRvIGNhbmNlbCBhbGwgcGVuZGluZyB3
b3JrIHdoaWNoIG1pZ2h0DQphbHJlYWR5IGJlIHRoZXJlIGFuZCBub3QgdG8gY3Jhc2guDQo+ICAg
UmVtb3ZhbCBvZiBhIHZQQ0kgZGV2aWNlIGlzIHRoZSBhbmFsb2d1ZQ0KPiBvZiBob3QtdW5wbHVn
IG9uIGJhcmVtZXRhbC4gVGhhdCdzIG5vdCBhICJiZWhpbmQgdGhlIGJhY2tzIG9mDQo+IGV2ZXJ5
dGhpbmciIG9wZXJhdGlvbi4gSW5zdGVhZCB0aGUgaG9zdCBhZG1pbiBoYXMgdG8gcHJlcGFyZSB0
aGUNCj4gZGV2aWNlIGZvciByZW1vdmFsLCB3aGljaCB3aWxsIHJlc3VsdCBpbiBpdCBiZWluZyBx
dWllc2NlbnQgKHdoaWNoIGluDQo+IHBhcnRpY3VsYXIgbWVhbnMgbm8gQkFSIGFkanVzdG1lbnRz
IGFueW1vcmUpLiBUaGUgYWN0IG9mIHJlbW92aW5nIHRoZQ0KPiBkZXZpY2UgZnJvbSB0aGUgc3lz
dGVtIGhhcyBhcyBpdHMgdmlydHVhbCBjb3VudGVycGFydCAieGwgcGNpLWRldGFjaCIuDQo+IEkg
dGhpbmsgaXQgb3VnaHQgdG8gYmUgaW4gdGhpcyBjb250ZXh0IHdoZW4gcGVuZGluZyByZXF1ZXN0
cyBnZXQNCj4gZHJhaW5lZCwgYW5kIGFuIGluZGljYXRvciBiZSBzZXQgdGhhdCBubyBmdXJ0aGVy
IGNoYW5nZXMgdG8gdGhhdA0KPiBkZXZpY2UgYXJlIHBlcm1pdHRlZC4gVGhpcyB3b3VsZCBtZWFu
IGludm9raW5nIGZyb20NCj4gdnBjaV9kZWFzc2lnbl9kZXZpY2UoKSBhcyBhZGRlZCBieSBwYXRj
aCA0LCBub3QgZnJvbQ0KPiB2cGNpX3JlbW92ZV9kZXZpY2UoKS4gVGhpcyB3b3VsZCB5aWVsZCBy
ZW1vdmFsIG9mIGEgZGV2aWNlIGZyb20gdGhlDQo+IGhvc3QgYmVpbmcgaW5kZXBlbmRlbnQgb2Yg
cmVtb3ZhbCBvZiBhIGRldmljZSBmcm9tIGEgZ3Vlc3QuDQo+DQo+IFRoZSBuZWVkIGZvciB2cGNp
X3JlbW92ZV9kZXZpY2UoKSBzZWVtcyBxdWVzdGlvbmFibGUgaW4gdGhlIGZpcnN0DQo+IHBsYWNl
OiBFdmVuIGZvciBob3QtdW5wbHVnIG9uIHRoZSBob3N0IGl0IG1heSBiZSBiZXR0ZXIgdG8gcmVx
dWlyZSBhDQo+IHBjaS1kZXRhY2ggZnJvbSAoUFZIKSBEb20wIGJlZm9yZSB0aGUgYWN0dWFsIGRl
dmljZSByZW1vdmFsLiBUaGlzDQo+IHdvdWxkIGludm9sdmUgYW4gYWRqdXN0bWVudCB0byB0aGUg
ZGUtYXNzaWdubWVudCBsb2dpYyBmb3IgdGhlIGNhc2UNCj4gb2Ygbm8gcXVhcmFudGluaW5nOiBX
ZSdkIG5lZWQgdG8gbWFrZSBzdXJlIGV4cGxpY2l0IGRlLWFzc2lnbm1lbnQNCj4gZnJvbSBEb20w
IGFjdHVhbGx5IHJlbW92ZXMgdGhlIGRldmljZSBmcm9tIHRoZXJlOyByaWdodCBub3cNCj4gZGUt
YXNzaWdubWVudCBhc3N1bWVzICJmcm9tIERvbVUiIGFuZCAidG8gRG9tMCBvciBEb21JTyIgKGRl
cGVuZGluZw0KPiBvbiBxdWFyYW50aW5pbmcgbW9kZSkuDQpQbGVhc2Ugc2VlIGFib3ZlLiBXaGF0
IHlvdSB3cm90ZSBtaWdodCBiZSBwZXJmZWN0bHkgZmluZSBmb3INCnRoZSAiZXhwZWN0ZWQiIHJl
bW92YWxzLCBidXQgd2hhdCBhYm91dCB0aGUgZXJyb3JzIHdoaWNoIGFyZQ0Kb3V0IG9mIGFkbWlu
aXN0cmF0b3IncyBjb250cm9sPw0KPg0KPiBUaG91Z2h0cz8NCj4NCj4gSmFuDQo+DQpUaGFuayB5
b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:09:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:09:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227164.392802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncTL-0006PR-T3; Thu, 18 Nov 2021 08:08:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227164.392802; Thu, 18 Nov 2021 08:08:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncTL-0006PK-QB; Thu, 18 Nov 2021 08:08:43 +0000
Received: by outflank-mailman (input) for mailman id 227164;
 Thu, 18 Nov 2021 08:08:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mncTK-0006PE-Jc
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:08:42 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bcb78972-4846-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 09:08:39 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2175.outbound.protection.outlook.com [104.47.17.175])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-13-gO3ffBlTPty-TU37pG8BEg-1; Thu, 18 Nov 2021 09:08:38 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2605.eurprd04.prod.outlook.com (2603:10a6:800:57::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20; Thu, 18 Nov
 2021 08:08:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 08:08:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0201CA0015.eurprd02.prod.outlook.com (2603:10a6:203:3d::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Thu, 18 Nov 2021 08:08:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bcb78972-4846-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637222919;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=v3TPNVccdrcAebodlvtYNj4JZi6Q2AethMF5xAeeejM=;
	b=DkFZBZ2Wqa2n3754VyjohumuuDRAWXCJKiov/AWdjhXP+vJxjGj2k00QLni7woWb3mgQ7L
	7pw+/rSJgWuR9GZByDBAklu6jkV5WjX5O2/S4bT0ww9/ucqV4ASWpgSn6slrZObGzPxnL6
	uLhSPxmEVQybQHeetffPnDR/mNS+O1M=
X-MC-Unique: gO3ffBlTPty-TU37pG8BEg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HIjPu7xTiyCnc3Qjy6wco1Vstj4weTGBJCIJCkNZXPTjNTzA9ppFT6iHjCscYOx6lQ7a5yCt+UfJLRRC2IgIFkjFAuSoPYL8NIU7s9cdazGQjFeryDa7tIUKmuacCL48dMOpYzb1be+s+qJlALEJI9sv+emABPb9IOj8Gix+TLrIV+zI/TDsUUH6mT9Sbfnw3mUGhYgZycGDK/tXHamJb6iY4VU5iqnQDLOtg1S+4RgTmXR4YYmVqUhaV8uDO3gcvvrXgJIkJ/xV2Z4K4x6AjPNTMzYuw9Tc5+z5jzlbjsuFK9nFkysrD0w6y6VQFIQRTN24JxG5Fa/bpYz7sYs7Jg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VxRyreEDEqFACnbtzNddexK+m4lB6miLPve8d8QolxQ=;
 b=Qf6OTSeznFtJ7jp5wNfVkmsDWew3q3Mf+A0tri+LqN6GkJJ87O3JcGo7x3h448My59PYHza6xd8GDLJ3jG2r6TBNBhpmSh19rUjrv5CPtV/CdshaoGCbGKQLKgx33b0HPcyrZMGbZRPdxzdoTjnJsky/sS0ffvy8cY3B7YtOFGw2fkC9ri5Dt4VIYWNIK88AoytbMSPUNk/9w5svlcJiwPOBqkwP9nCTi4NmIhyKo8u5Hp6X/otlFHFCUc5/972AuFK/wnokNMqLPni5W6/TtNUou2ipIhA3U4TubgN9ekQFtVcwlO9LEChosdoXn0ASejmQOw3waKBOnuhyhbK2WQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <35744782-674e-b21f-7cff-76e90152e843@suse.com>
Date: Thu, 18 Nov 2021 09:08:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: PCI pass-through vs PoD
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony Perard <anthony.perard@citrix.com>, Ian Jackson
 <iwj@xenproject.org>, Paul Durrant <paul@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <b6d598cd-c244-2b7f-c731-fe839df3382e@suse.com>
 <b62a87ca-b68f-76fd-51c6-114e8b8e125b@suse.com>
 <YZTDkNRY5pMLFUR6@Air-de-Roger>
 <fe31a1b4-8c66-701d-f951-6426fa72252c@suse.com>
 <d2650a7e-f681-301c-6959-bc84a502255a@srcf.net>
 <3d7d5069-591d-4535-c13a-5976e1172a68@suse.com>
 <5c503268-f729-ae02-c9f0-d015cdc747f9@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <5c503268-f729-ae02-c9f0-d015cdc747f9@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0201CA0015.eurprd02.prod.outlook.com
 (2603:10a6:203:3d::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c5e8e880-7ec4-48aa-2c95-08d9aa6a9f48
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2605:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB260512EFB9CCD0E77DB2265BB39B9@VI1PR0401MB2605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	O8HqEuw2YOo69tI6ZrlQDxJmEO7P7XGZlsCR0d70sdTwAJP5ZKZesOo9OZlJRosZrQqOIOA8huN+5KoKuZJj+5BePOr9lN9pOKtzUiY/PnVny3G+Iyjg1Q1DjXsjxCPmkEcID6EuSTcv+bli/amaCUuUVlQ0L1xLbaBmG+Ig65iyQnSA4J03k5sGipjWn0Sjaqym34nWoLD7osHPkntbXPCFFn5Pa3mH9bX6b+rWeo0tQfFt19np6srLQgIKJDUCDSugPi1ril3aWpHPSIkCyEkoIBfADNLfZ727VabMBrfQA5qJxG3G8Nwipehl5+z6tso/421qFu+myaHZjZ3nFhoLBZrWvFu15XBsReX7E4Db/LOQv5Lf2VsJNI2uUZuPYRw4cJuEGm1pHs6gXLTxSKW/tMmzUZy57YujdKmK2W0ubDlBYHy+R4Q6KAWKC7nkXOEJ0Q4KuxVS1J+E7N6CCRUEXWaJabxPM8plJ/eQaHXMm/UusoqqNfoHDuBv1bu5XB97boWHlGS/7bM+2JWvy0gHdfPJi/HgrYHsrCJovEu4fyNYBlYScIU7Bs3BZRzI9KVsNzEh3ojYrpvs3s9RoIakiy/+RKxFk3PjvRCiZa9A5HOKGycHQQv9BFb4NPp95UwGp+ZGD1NQzO6WIsmetOf4NzbG6++bIReW9VUZ47oyoyz9wrBFO5sLOKfdw+5ZIunBBIVcr1qcx07iGnt+iYfae9wgy97nDAkrCYrCYu0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(6916009)(4326008)(53546011)(956004)(6486002)(26005)(8676002)(66946007)(83380400001)(31696002)(2906002)(186003)(8936002)(66556008)(66476007)(3480700007)(54906003)(2616005)(508600001)(36756003)(31686004)(5660300002)(316002)(16576012)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?TO1ch9Zhm35zWQE+FHIuFau0ne6ei4/q8pG/jjsytW39+AsOKzyWo+hwDOeX?=
 =?us-ascii?Q?JEaQ+ap7h8+VqHvrIVLtSNE4V/KX3XXfFLUjeOA8pTxvU0rrBNMFXP8xrukQ?=
 =?us-ascii?Q?ztaigRzFg6a+yUCOAPl52A4eWU/VU3F/0n7u9IviwbDd3NyUnJIfAo5OZMTP?=
 =?us-ascii?Q?H5SCx1PhrTEW/NncZQm/xaj1wDSTNeb4/ROb0N0diwlaEEEogDWlfZk9TzfG?=
 =?us-ascii?Q?OC42BCixg4Mseg2X4EnTWxlT2LnhGFaNUHyvZJAmPtOsTvPaCh/uT6QoZgkx?=
 =?us-ascii?Q?hWDePuV2lL7rm3YhG2D9I8yfetlYPTTALt42i4f6KKs4pk/L9Eo5pS4cTW23?=
 =?us-ascii?Q?iCECKPF2d6V14QDYeEc5Sm9Y9vfETeG2MO2BOv3gQeODwY5ikW3O9DqybKVn?=
 =?us-ascii?Q?imk5lJhyaN/q0fr1B3EdCX+FlsNYgFVfg+ilxTOWDoNf72BtniZQSPBeL5lC?=
 =?us-ascii?Q?y/F/5k5yJ0dNyQh4xZ66Yat/ZIgoyYHGGcCmBAD8m88Xp4/tcn6DvNkWliqZ?=
 =?us-ascii?Q?KJ2XNJ8lkUTgEYVcBFEVhubOgjQfOmzYN3yieo7G08KEWZwsaR3AlpZwGU45?=
 =?us-ascii?Q?yD8uPwyxu0PBhEezRDrRSkVDRggV1gw9J3IvIFTEW0L0wtxzngBGrKovk2Z/?=
 =?us-ascii?Q?ZybVk/2YJRuTcGRRJ8uiLaJWs5dDTVKHRrBuwK5W60e0hXSIrS2C7R6vsda4?=
 =?us-ascii?Q?HM04KAW8pdVyr2V1NFxvdPSEhf1j+VUWiGUY91o0lv5ybLghmhmkQdypOJCl?=
 =?us-ascii?Q?ZoWrkJiX4s4NYwdhZufgTUE1cEQDg74b1ItKAIaYhrNvuazKGj67Y/KnzssI?=
 =?us-ascii?Q?K86/V97nCN4gvKS2QRRFa7Uu7zmp12K3gpeYaCXR+QpT7UKWThy/Li1JrUWj?=
 =?us-ascii?Q?w9niBYJqxS/hJKBQ2Fq8bjGiYvlzyfzPXqe9L5ujCIswuPnKpb/yECjszldF?=
 =?us-ascii?Q?dB/899iXupTChi9qFNBiarNLPwQ5oPskIdjLlX1L5AJTY+mR7Ci4cfg0KbO3?=
 =?us-ascii?Q?IdxELJFWUy3La00RfijtPGbsbb1cLWItcUvwNx5KdY8DlCciojo44/JeIetJ?=
 =?us-ascii?Q?MRnCg56MQhYSkDD85ljoJ7JFlS2KeikkZzuHSweQkt5qBVw/HtgbkuQTW+aY?=
 =?us-ascii?Q?2FLxz1YJr00J7py2EJMPzifZC0H4sOtvA08tDdlmmScw3JMl/rKan5Dn+wva?=
 =?us-ascii?Q?gEwq/TwFIj4LN+iI1qW7auq8FDma+iqxSU63lvaQu+JkNJFDpVKLwmFSSt+X?=
 =?us-ascii?Q?3t5i2nn+P1r6LNbagwAsxbwKPDr6O+sScyijbOyTFxyVg6N80JsblCHgFV+z?=
 =?us-ascii?Q?FW5tAifWcDaZGLb38IdhIiP1nqbBuQbBPWG0vXNmlI/R35w1JV2+fRaO7yy8?=
 =?us-ascii?Q?nQsZPsummgcer7NShCWw+mu1wUBXugoG5NBUWlTWKlH5mS2r5YbXeIpBx8SV?=
 =?us-ascii?Q?sbdzMZNPEbv3N1bHpCCyPlGmmwfsjTaVazjXjkoWbnwvw2b6Z8AygZrS0PJS?=
 =?us-ascii?Q?yPb1E/8pv4kWY1wnfZbLouB4Fb74BurCDd5r6AR57cOOeX+1IfechtDU6cVO?=
 =?us-ascii?Q?wpHS0ROQALiKCX2xGpaLgRjGQtCZcd9LEDOO2p0hUc0gh+BOzKtOLfr7CHR/?=
 =?us-ascii?Q?cleuvMJ924A9AuC+e8qHhDk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c5e8e880-7ec4-48aa-2c95-08d9aa6a9f48
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 08:08:36.6317
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JBA/agAcKRQyfhXgRqGbAc5wAV6iNMivvpObVXWq4+pSuox4rIA1cnu1H838M1Lam4Wv7YEvEpinpUxAaeNjKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2605

On 17.11.2021 14:07, Andrew Cooper wrote:
> On 17/11/2021 11:23, Jan Beulich wrote:
>> On 17.11.2021 12:09, Andrew Cooper wrote:
>>> On 17/11/2021 10:13, Jan Beulich wrote:
>>>> On 17.11.2021 09:55, Roger Pau Monn=C3=A9 wrote:
>>>>> On Wed, Nov 17, 2021 at 09:39:17AM +0100, Jan Beulich wrote:
>>>>>> On 13.09.2021 11:02, Jan Beulich wrote:
>>>>>>> libxl__domain_config_setdefault() checks whether PoD is going to be
>>>>>>> enabled and fails domain creation if at the same time devices would=
 get
>>>>>>> assigned. Nevertheless setting up of IOMMU page tables is allowed.
>>>>> I'm unsure whether allowing enabling the IOMMU with PoD is the right
>>>>> thing to do, at least for our toolstack.
>>>> May I ask about the reasons of you being unsure?
>>> PoD and passthrough is a total nonsense.=C2=A0 You cannot have IOMMU ma=
ppings
>>> to bits of the guest physical address space which don't exist.
>>>
>>> It is now the case that IOMMU (or not) must be specified at domain
>>> creation time, which is ahead of creating PoD pages.=C2=A0 Certainly as=
 far
>>> as Xen is concerned, the logic probably wants reversing to have
>>> add_to_physmap&friends reject PoD if an IOMMU was configured.
>>>
>>> A toolstack could, in principle, defer the decision to first device
>>> assignment.
>> Right, which is what I consider the preferred approach.
>=20
> Why?
>=20
> Just because something is technically possible, does not mean it is an=20
> appropriate or clever thing to do.
>=20
> In this case, we're talking about extra complexity in Xen and the=20
> toolstack, which in the very best case comes with unattractive user=20
> experience properties, to "fix" an issue which doesn't happen in practice=
.

IOW you're suggesting to wait for the first report of this being a problem.

>>> and liable to suffer -ENOMEM,
>> Not if (as suggested) we first check that the PoD cache is large enough
>> to cover all PoD entries.
>=20
> Just because at this instant we have enough free RAM to force-populate=20
> all PoD entries doesn't mean the same is true in 2 minutes time after=20
> we've been slowly force-populating a massive VM.
>=20
> Yes, there are heuristics we can use to short-circuit the failure early,=
=20
> but that's still spelt -ENOMEM and reported to the user as such.
>=20
> The only way to succeed here is to force populate the VM and to have not=
=20
> suffered -ENOMEM by the end of this task.

I'm afraid I can't follow you here at all. The PoD cache is memory already
owned by the guest. As long as no new PoD entries get made out of thin air
(i.e. other than taking the backing page and placing it in the PoD cache),
there's no -ENOMEM possible here. That's precisely why entry count wants
to be checked against count of "PoD cache" pages to be sure.

>>> or we have
>>> to reject a control operation with -EBUSY for a task which is dependent
>>> on the guest kernel actions in a known-buggy area.
>> Why reject anything?
>=20
> Because the guest kernel has no knowledge of nor the ability to query=20
> the PoD status of a page, the only way to not have things malfunction is=
=20
> to enforce that there are no P2M entries of type PoD when devices are=20
> assigned.
>=20
> If you don't want to / can't force-populate the entire VM prior to=20
> having device assigned, then the assign operation needs to fail.

Well, yes, that's what I have been saying form the beginning. All we
appear to disagree on is whether tool stack or hypervisor should
actually put effort in doing such a force-populate.

>>> There is no point trying to make this work.=C2=A0 If a user wants a dev=
ice,
>>> they don't get to have PoD.=C2=A0 Anything else is a waste of time and =
effort
>>> on our behalf for a usecase that doesn't exist in practice.
>> Not sure where you take the latter from. I suppose I'll submit the patch
>> as I have it now (once I have properly resolved dependencies on other
>> patches I have queued and/or pending), and if that's not deemed acceptab=
le
>> plus if at the same time I don't really agree with proposed alternatives=
,
>> I'll leave fixing the bug to someone else. Of course the expectation the=
n
>> is that such a bug fix come forward within a reasonable time frame ...
>=20
> What bug?=C2=A0 PoD and PCI Passthrough are mutually exclusive technologi=
es.

I wonder in how far you've read my earlier mails properly. After initially
only suspecting this might be possible, I did _verify_ that I can assign a
device with the guest still in PoD mode, including before the balloon
driver has kicked in (in which case even force-populate wouldn't help, i.e.
assignment ought to fail no matter what). While initially I thought this
would have been an unintended side effect of f89f555827a6 ("remove late
(on-demand) construction of IOMMU page tables"), I now think this has been
an issue even before. There's no check in the hypervisor (in particular arc=
h_iommu_use_permitted() hasn't been checking for PoD so far, which is
used during assignment only anyway), while the tool stack checks only
during domain construction afaics (in libxl__domain_config_setdefault()).

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:13:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:13:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227170.392814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncY1-0007rH-Km; Thu, 18 Nov 2021 08:13:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227170.392814; Thu, 18 Nov 2021 08:13:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncY1-0007rA-H3; Thu, 18 Nov 2021 08:13:33 +0000
Received: by outflank-mailman (input) for mailman id 227170;
 Thu, 18 Nov 2021 08:13:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=l94Z=QF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mncXz-0007r4-G7
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:13:31 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a144fb0-4847-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 09:13:30 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 19FCE217BA;
 Thu, 18 Nov 2021 08:13:30 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C811C13CBE;
 Thu, 18 Nov 2021 08:13:29 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id pOwLLykLlmHfUAAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 18 Nov 2021 08:13:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a144fb0-4847-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637223210; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=rydNytA6MHRQbMCt1EMxirsJHx5fRBgzi3NjEbmAKIU=;
	b=krkkvSvdcqBQaIiurW4vWzuh2XNu5mwmPFIhDMdW+QD1Voa3JFALQSOZEinI8NLU9/wX3w
	CUcW3yr7gWRZn19TP5MJF6QCBg8jzDlh29yzGr2SpG1KH6FSVYZMj1R52N6r3lj6gJ3L3A
	wdZnsaURGDT26X7pmu50GV5C4pIEJP4=
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 Geert Uytterhoeven <geert@linux-m68k.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
 "julien@xen.org" <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich
 <jbeulich@suse.com>, Anastasiia Lukianenko <Anastasiia_Lukianenko@epam.com>
References: <20211028061341.1479333-1-andr2000@gmail.com>
 <CAMuHMdXEGtr5Js4QwyGBMLP_LzG8mk0Ovv9PiOpnU2-VVp+7dg@mail.gmail.com>
 <ab6a44b3-6b56-191a-a653-ce5ace50975d@epam.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] xen-pciback: allow compiling on other archs than x86
Message-ID: <da612bdd-4fb7-2361-d167-cc1a829d62a1@suse.com>
Date: Thu, 18 Nov 2021 09:13:29 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <ab6a44b3-6b56-191a-a653-ce5ace50975d@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="kjDlSqsddPsApzzGQz1djnRLXh7gvIi7q"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--kjDlSqsddPsApzzGQz1djnRLXh7gvIi7q
Content-Type: multipart/mixed; boundary="XfZMtVDaabDHq5xYIBiojcvIwNQpfGnBH";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 Geert Uytterhoeven <geert@linux-m68k.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
 "julien@xen.org" <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich
 <jbeulich@suse.com>, Anastasiia Lukianenko <Anastasiia_Lukianenko@epam.com>
Message-ID: <da612bdd-4fb7-2361-d167-cc1a829d62a1@suse.com>
Subject: Re: [PATCH] xen-pciback: allow compiling on other archs than x86
References: <20211028061341.1479333-1-andr2000@gmail.com>
 <CAMuHMdXEGtr5Js4QwyGBMLP_LzG8mk0Ovv9PiOpnU2-VVp+7dg@mail.gmail.com>
 <ab6a44b3-6b56-191a-a653-ce5ace50975d@epam.com>
In-Reply-To: <ab6a44b3-6b56-191a-a653-ce5ace50975d@epam.com>

--XfZMtVDaabDHq5xYIBiojcvIwNQpfGnBH
Content-Type: multipart/mixed;
 boundary="------------80A444647212451F77DC65D1"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------80A444647212451F77DC65D1
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 16.11.21 11:45, Oleksandr Andrushchenko wrote:
> Hi, Geert!
>=20
> On 16.11.21 11:36, Geert Uytterhoeven wrote:
>> Hi Oleksandr,
>>
>> On Thu, Oct 28, 2021 at 8:15 AM Oleksandr Andrushchenko
>> <andr2000@gmail.com> wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> Xen-pciback driver was designed to be built for x86 only. But it
>>> can also be used by other architectures, e.g. Arm.
>>>
>>> Currently PCI backend implements multiple functionalities at a time,
>>> such as:
>>> 1. It is used as a database for assignable PCI devices, e.g. xl
>>>      pci-assignable-{add|remove|list} manipulates that list. So, when=
ever
>>>      the toolstack needs to know which PCI devices can be passed thro=
ugh
>>>      it reads that from the relevant sysfs entries of the pciback.
>>> 2. It is used to hold the unbound PCI devices list, e.g. when passing=

>>>      through a PCI device it needs to be unbound from the relevant de=
vice
>>>      driver and bound to pciback (strictly speaking it is not require=
d
>>>      that the device is bound to pciback, but pciback is again used a=
s a
>>>      database of the passed through PCI devices, so we can re-bind th=
e
>>>      devices back to their original drivers when guest domain shuts d=
own)
>>> 3. Device reset for the devices being passed through
>>> 4. Para-virtualised use-cases support
>>>
>>> The para-virtualised part of the driver is not always needed as some
>>> architectures, e.g. Arm or x86 PVH Dom0, are not using backend-fronte=
nd
>>> model for PCI device passthrough.
>>>
>>> For such use-cases make the very first step in splitting the
>>> xen-pciback driver into two parts: Xen PCI stub and PCI PV backend
>>> drivers.
>>>
>>> For that add new configuration options CONFIG_XEN_PCI_STUB and
>>> CONFIG_XEN_PCIDEV_STUB, so the driver can be limited in its
>>> functionality, e.g. no support for para-virtualised scenario.
>>> x86 platform will continue using CONFIG_XEN_PCIDEV_BACKEND for the
>>> fully featured backend driver.
>>>
>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.=
com>
>>> Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>=

>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>>> Reviewed-by: Juergen Gross <jgross@suse.com>
>> Thanks for your patch, which is now commit a67efff28832a597
>> ("xen-pciback: allow compiling on other archs than x86")
>> in v5.16-rc1.
>>
>>> --- a/drivers/xen/Kconfig
>>> +++ b/drivers/xen/Kconfig
>>> @@ -181,10 +181,34 @@ config SWIOTLB_XEN
>>>           select DMA_OPS
>>>           select SWIOTLB
>>>
>>> +config XEN_PCI_STUB
>>> +       bool
>>> +
>>> +config XEN_PCIDEV_STUB
>>> +       tristate "Xen PCI-device stub driver"
>>> +       depends on PCI && !X86 && XEN
>>> +       depends on XEN_BACKEND
>>> +       select XEN_PCI_STUB
>>> +       default m
>> Please note that this means "default y" if CONFIG_MODULES=3Dn.
>> Perhaps this should be "default m if MODULES" instead?
> I don't really have strong opinion on this and will let Xen maintainers=

> speak: @Boris, @Juergen what's your preference here?

TBH, I don't have any.

All other backends have no "default" line, so maybe the cleanest
solution would be to remove the "default" lines for XEN_PCIDEV_STUB
and XEN_PCIDEV_BACKEND, too?

>>
>>> +       help
>>> +         The PCI device stub driver provides limited version of the =
PCI
>>> +         device backend driver without para-virtualized support for =
guests.
>>> +         If you select this to be a module, you will need to make su=
re no
>>> +         other driver has bound to the device(s) you want to make vi=
sible to
>>> +         other guests.
>>> +
>>> +         The "hide" parameter (only applicable if backend driver is =
compiled
>>> +         into the kernel) allows you to bind the PCI devices to this=
 module
>>> +         from the default device drivers. The argument is the list o=
f PCI BDFs:
>>> +         xen-pciback.hide=3D(03:00.0)(04:00.0)
>>> +
>>> +         If in doubt, say m.
>>> +
>>>    config XEN_PCIDEV_BACKEND
>>>           tristate "Xen PCI-device backend driver"
>>>           depends on PCI && X86 && XEN
>>>           depends on XEN_BACKEND
>>> +       select XEN_PCI_STUB
>>>           default m
>>>           help
>>>             The PCI device backend driver allows the kernel to export=
 arbitrary


Juergen

--------------80A444647212451F77DC65D1
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------80A444647212451F77DC65D1--

--XfZMtVDaabDHq5xYIBiojcvIwNQpfGnBH--

--kjDlSqsddPsApzzGQz1djnRLXh7gvIi7q
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGWCykFAwAAAAAACgkQsN6d1ii/Ey/Q
Cwf+Jhc/1Jm9LFxI79T5Jq+bvkmctPEYk9ihYb+/AzNfCCfmi3pv+MLdtfC+o4SwqgMnV4OLJRkz
erlNSepcFQ0wywncJ5smsDPCbhRO87t8vSXNOS8yUz27YnEszkn8YrahUzuTxP9mBTTmmu6ggx9k
/4luFLQVkBrTI/AcSMYzCxYmVOW+ClqnWut4rtcFtyvOMs0a1Rh+z7LpRazWhR8Uii4qBI0vsobM
vck/r7LwAQb+oF/1srQl/v9yx9h4OaRUFA7Z9QQNAq05Eo4AxOvBw0RKWapn+g4e0UehnKTrA9Dv
FPJOkRSLbyMhw2OrBRk09r4AFChl+BDGg8aCspIcuQ==
=zSZW
-----END PGP SIGNATURE-----

--kjDlSqsddPsApzzGQz1djnRLXh7gvIi7q--


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:28:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:28:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227175.392825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncmM-0000vn-V8; Thu, 18 Nov 2021 08:28:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227175.392825; Thu, 18 Nov 2021 08:28:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncmM-0000vg-Rr; Thu, 18 Nov 2021 08:28:22 +0000
Received: by outflank-mailman (input) for mailman id 227175;
 Thu, 18 Nov 2021 08:28:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=45Id=QF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mncmL-0000va-83
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:28:21 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ae09631-4849-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 09:28:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ae09631-4849-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637224099;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=AqjN0EaMxlB4fMwGU+2y80IO2OZOEXGU0gV7jqUmP5M=;
  b=gQ1R2+1eFiJfY9CrzkbX5Qq38ny+PITa7F3SiVLEkG3xa3Dh7rIF3K3X
   NVimfgt7nh3YLdg4gY6eq6OPH+xxLq7NtXy6P/XrhM+20HpPqd+P+Sb4j
   3LlZBp5itP+c2najrDVWGd/9F8HtQvrOD0hiaH1sVu23HBZ/VTE+BZwDT
   E=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: KwRLzz7fyEzqornLgetH9Q+NvIYLi0hbFwU1G41ue/BcYgi7Xtd9cGDvyGPvjYGFos4VtaXkKc
 8z0aYINN8Ch2+4qhdUd++OgdJf3EcXEcEnEsuvQWnTGc7nI7chT/7myMNxm+NPyygEk2fdmu+f
 MO0CSVFwOjR7xHidfaTJzS5NT4ufHJLmuBdPPQJfy7HopmKZWL9G0GhC9SmtsIfMtXJRJ2LkNs
 VJZAq6xJsHQX23jbIjrU09AdmeAQRS9XUKSUsrh+GQBe0FjllSpB/0bMx58ymIcTCR1vTiHGnu
 OBRiVT6OTmeKY2ZEh08KhaFc
X-SBRS: 5.1
X-MesageID: 60089337
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:HtaJyqI88ayM06inFE+RNpIlxSXFcZb7ZxGr2PjKsXjdYENShDwBz
 mEWWTqGbKyCNGT3Lop0a4i1ox5Q7JPRzIRrS1BlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es6y7Zg6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2EsNdd1
 ucdsaWzF1d0P6btvNQeeB5HRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsF2gcsuNo/zNZ43sXB81zDJS/0hRPgvRo2UvYcIjWxr2aiiG97sT
 ZQfdwJpdC7gPUdNMxAUIpA1p+qB0yyXnzpw9wvO+PtfD3Lo5A1u0pD9PdzNYNuISM5J2EGCq
 Qru/W70HxUbP9y30iee/zSngeqntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLpix
 1c8o3R06/JorQryE4e7D0bQTGO4UgA0VvVXP/MIuAW0yfSEvgeSJ0w0TRVGd4lz3CMpfgAC2
 liMltLvIDVgtryJVH6QnoupQSOO1Ts9djFbO3JdJecRy5y6+dxo0EqTJjp2OPft1oWdJN3m/
 9ydQMHSbZ03hNVD6ai09Euvb9mE9smQFV5dCuk6swuYAuJFiGyNO9zABbvzt68owGOlor+p5
 iRsdy+2tr5mMH11vHbRKNjh5Znwjxp/DBXSgER0A74q/Cm39niocOh4uW8lex42bptYKWK5O
 ic/XD+9ArcJYBNGioctPeqM5zkCl/C8RbwJqNiKBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WiOHSKqtBKcghRRZX5bLivw/Fqmie4ClMOMEkqCuPLwKNnfIpgnq9PkfzP8
 G37UUhdoGcTT1WeQelTQnw8Or7pQ7hlqnc3YX4lMVqygiBxaoez9qYPMZAweOB/puBkyPd1S
 dgDetmBXasTGmiWpWxFYMmvtpFmeTSqmRmKY3ivbg8gcsMyXAfO4NLlIFfirXFcEiqtuMIii
 LS8zQeHE4EbTgFvAZ+OOvKixl+8p1YHn+d2UxeaK9VfYhy0ooNrNzbwnrk8JMRVcUfPwT6T1
 gC3BxYEpLaS/99poYeR3a3d9tWnCepzGEZeDlL317fuOHmI5HenzK9BTP2MIWLXWlTr9fjwf
 u5S1fz9bqEKxQ4Yr4pmHr935qsi/N+z9aRCxwFpEXiXPVSmDrRsfiuP0cVV7/Afw7ZYvU29W
 16V+8kcMrKMYZu3HFkULQsjT+KCyfBLxWWCsaVreB33tH1t4b6KcUROJB3d2iVSIYx8PJ4h3
 ep86tUd7Bayi0ZyP9uL5syOG79g8pDUv30bi6wn
IronPort-HdrOrdr: A9a23:HtqupqmuKeMeRylBaz4x5y/oRfjpDfPCimdD5ihNYBxZY6Wkfp
 +V88jzhCWZtN9OYhwdcLC7WZVpQRvnhPpICO4qTM2ftWjdyRCVxeRZg7cKrAeQfREWmtQtt5
 uIEJIOd+EYb2IK9PoSiTPQe71LoKjlgd6VbI/lvgtQpGpRGsZdBmlCe2Om+hocfng6OXN1Lu
 vV2uN34x6bPVgHZMWyAXcIG8DFut3wjZrjJToLHQQu5gWihS6hrOeSKWnT4j4uFxd0hZsy+2
 nMlAL0oo2lrvGA0xfZk0ve9Y5fltfNwsZKQOaMls8WADPxjRvAXvUrZ5Sy+BQO5M2/4lcjl9
 fB5z8mIsRI8nvUOlq4pBP8sjOQpwoG2jvH8xu1kHHjqcv2SHYREMxan79UdRPf9g4JoMx8+L
 gj5RPXi7NnSTf72Ajt7dnBUB9n0mCup2A5rOIVh3tDFaMDdb5qq5AF9k89KuZNIMvD0vFnLA
 BSNrCd2B4PGmnqLEwx/1MfjeBEZ05DUCtvGSM5y46oOzs/pgEM86JX/r1bop46zuNMd3Bz3Z
 WwDk1ZrsA+ciYoV9MPOA54e7rONoXse2O7DIvAGyWvKEk4U0i92aIfpo9FoN2XRA==
X-IronPort-AV: E=Sophos;i="5.87,243,1631592000"; 
   d="scan'208";a="60089337"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mJ9DEGfjAiUMnAUwZP1pcwKCggI+3d0WuFYKNN5QcEow5Tck3RKWZwCk2C9PVIAIqh7/wL/jEn0QZgjPo6JQdxD3ZMz426LBYD6eZ+353MH9cJGgp2YI5rdJhWd+VWc66G0oev/9fNUuWSA8dZLsQfcRnpCNzse2DkQfw06Qa0KpKl83iLoWcaqGjFN/IAKjdSuwUDuKKyi1a1VQyK70CrtwfVKqxAsHB4OY2ovNb9Vxo6aBeCZRQ0bEP73Z3O/Y99MC4VX8CrS2cgChVdNgoFFyuJfkPwx6eNTnvf2mGqanVB30A4zqLHAC1cGp/BUFo7GPSrqelxFuMdm6hz29/w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7iI4sG5ccFDAseKHYLIAbbrV1FZm8Jj/ahp9xsvOjKA=;
 b=FfaHf26vRCWOGaE/p20/C4Dyazje2sUbh0e7+U4psu2rqx/Q8d9ZncLSWL30eis5QjjmpBarpRMvrPLAJTFy6HAICUKFOLXrmiS8bo9OLPKgSDimBa12u9Uf1aUglh/xHXm3HD7A3t7EHVzOb1RpG0ZQ4oMTYhXalfJvohq0FJQzYbqpDoI+EtZZUZ/gmEQDprY7+yo/Q9sl4B9mzVZCYBuGWUjNx+rlKd1gW/ftGxk5belM4hLUYgqOPMI1kLcqioYJADqVq1ocJ5NjA7VZrXKpD7bPeUFJDdnG29Hd/rlH5MPGmKZAsp4dJN/M8g0Y2Kzvf2o+9zSLOrniFwJdtg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7iI4sG5ccFDAseKHYLIAbbrV1FZm8Jj/ahp9xsvOjKA=;
 b=d/lxnz751aCPKRTaqYRqcJo3oDzqmp+rCxql52cUmfFBVcGAzbomlyxGhhu+qNlz5sAvNtKWCOWfIc3QuwjMZYD9WTfhNqqJkOEVIwnpm9Dm62j99A7xD2FvNQAowpTLIaiYWKnhLDcehOM/m4++p9fzGiKhd7RaQZfKpvlI+ZA=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	Ian Jackson <iwj@xenproject.org>
Subject: [PATCH for-4.16 v2] efi: fix alignment of function parameters in compat mode
Date: Thu, 18 Nov 2021 09:28:06 +0100
Message-ID: <20211118082806.23335-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0058.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:31::22) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 66dba142-702b-4046-9c6a-08d9aa6d5c25
X-MS-TrafficTypeDiagnostic: DM6PR03MB4396:
X-Microsoft-Antispam-PRVS: <DM6PR03MB43968440FE3F705B55A900F08F9B9@DM6PR03MB4396.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: t9jiONIgMjVpDiNBi0q6qdX363TuVGn7XkMlBDO0jC3eIi+m96T/+Lkyxt5yuizFeKTCdJ6kjWSi76zZHzuof1t/x9E1ZN/xewqQfjzAbk9v41fcCM1I9GqqAclgNzymh9a3sMsBo3A+v3AKs6GGc3k6ZDnVSRGVFvdPc+ktLZYO3L+vUCXSgsfy/H43NWUrsYVf8VpXAFIUnlXR/FFpkF7auKbMDbRmQoVlIPB/NRaCXIYtnx1xtE3uKOuunakKi/rdORBwERfFcirc+WpBtpzyCLD/XncpjtRJc2qkpkOQR3MvrCWXSCMHlEDuMWu3fblEpHoLIdwrxcWf/Ebj7Pt1Ia9ycr0diz2RDAl60WPtCIDZzgUOW7OmuscpbodVADMcPXYe5RgoBLw3jVeDXbo2R0TFacxpySQ4LkcUxtEQm+ll+faO20fWSZMoSFFP+r90nw/u/9DdlKTqlBUAUfQ47Z6dkcwErAwhC8oUn6Ega63vt5QhE7S1uorGgaX+CHyI6c6E7FwshPKIjaIg+x6cRS1ZUV2ZTQOXwVpdVQKtMThsF/iBX04uTnE7dDpwoogIzJJ0xKLMNWHynvTh7rzJTD+WkIl9T3s35aCX3oJTsMBdyKogZFVGgn5l71h/O/rDyvBo3piNcPpAEqOvwA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(4326008)(83380400001)(6666004)(2906002)(1076003)(86362001)(26005)(36756003)(8936002)(6496006)(186003)(38100700002)(6916009)(6486002)(316002)(66946007)(82960400001)(66476007)(66556008)(508600001)(5660300002)(2616005)(956004)(54906003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TnZRbkh2aTJvQ3ZUYWYxamgraVZHRHp0a3NTYTczWUNUaVJXbFhVN0hGUnpx?=
 =?utf-8?B?akZ4OXg1d1lveGdFMTZIb3lFZWhEUlo4S2JRSzh6ek1vSkhTN0RGMVJsR0pL?=
 =?utf-8?B?ZkZhOVQ1SjJ5TVZBQm1PZmFGWUxwVDIzSXJKSDN2ZGNzekRaZjFXSnZSTWR5?=
 =?utf-8?B?bzh5UTR3ZG1IMHI1OHl0NG1OLzJFNjRIWUFXQ2NZaUxiNm13ckJQalh0ckwx?=
 =?utf-8?B?MUVqZDRlbFZDQjNoWUEzeEtIOEd3dzZUWER4UEpoRnBIWWpXNThmYlRVY3hY?=
 =?utf-8?B?UE1pdmpSN1lHMEdiV2sva1RSL0lkTkdpcG10Y3hnOXYyTEh5VUJzQmw5azhI?=
 =?utf-8?B?dlFzMWxkNVQzZ2NmSXdtS3JoRTVZbzFNWUx4TU93TmNKTG9HdkhqQ1RlVzM1?=
 =?utf-8?B?YmU2Ly9Vekp2eEN6bkpTaURwdW50VHdTWU1HUmZiVG5IMGpnckZOWWUyOEhi?=
 =?utf-8?B?K2dTV2JaS2lsWVluMGY4NmNjaDNKdkZQcVZmanIyb1E3VldBOFIwN1ovRjZ3?=
 =?utf-8?B?WUtjVW9Tb0tCeW5ENFc1eGJ4MUJiZFkyZHN3elBGdzRSRHBmeFR3SUlPMW11?=
 =?utf-8?B?TG1hanJ4OEVCL0JTbnpnNkdIWHRPWEQyVmpSSFdrRkttbTh0eUkyNUg2bDFX?=
 =?utf-8?B?T2ZJSEVwMGVTNTYwTmhpQ3FJUE5xUHdaNVRVSUVvMG9nc2NoVjVidEt4SS9S?=
 =?utf-8?B?RVM0bDh5ek9pN3BuY1BPdmo0RGFCbXhOeFdUOUxtVlhHdTBiSTJWcjQ3SzBi?=
 =?utf-8?B?cU5xMHl2MUxMUFNPZDQzcTVIYXlTVWFrWVlLb0RVTlNQMXZBQTcwMUtMdzRF?=
 =?utf-8?B?dVd2RVZKUkd6QkMxZk14M1RxcExjcUdjbVdPcG9uMjNEcDhNRWhJUlU4TDRE?=
 =?utf-8?B?Zmw1M21tK3ZKTlMyRUt5YStZUUl0Wndyb1paQllOTFpZZEpaZG5hRURZRDRW?=
 =?utf-8?B?eWYzcVpmT2Z1KzZSVHNhSW1kSmN4SDFkdERxbUVOVFFoTXJYYkhrY1o5R3ZJ?=
 =?utf-8?B?aGJYVXB3K1h0aTdFTXNrckRmMHFJS0xsWG5rd1JudzdCRGdWUjIwQXkxVjBi?=
 =?utf-8?B?UXRJT1Jidm1CdHBhWjNQUnFPOGRQNm42ZCtJVGJaRTBPcEdjMHpMWFpFOUFi?=
 =?utf-8?B?SndrbSs2cTNLNlc4R2Z1TUQ1MExOVnkwdEM3S3NhSWlWS3phOW9wa0dCSlp2?=
 =?utf-8?B?Si9UZzVLRWtCN1hMNG5wd0pJejlYNDVUSnBQYjdwdkFhYldPVElyTXU0VnF3?=
 =?utf-8?B?MXB6YTZXQ2lnTlltWDV6bmx2L1dKenJJZk1QUjBWWE91ck16K0RXNy9xOFJG?=
 =?utf-8?B?dDFsMkhucEUxT0VsQTFNakROVDBHTDhaS2VoQ0pZWFcrYURqbXJUbXBEUXhY?=
 =?utf-8?B?U1A0Sml5czh4dUI0UnVqUmRSN1BsQ1V6dlVURHZPNDBkVEZFb00xTmJESkN6?=
 =?utf-8?B?Sm4vazF0ZWRNQ0F2SnQxOTRoOGZFYlgrcVBycmxnQzNHR0M4YnJnRmNlb3Zu?=
 =?utf-8?B?ZDRRT2ZtME05WGlvUTBsZXdSUFhic3dWTFZJYWY1NUplNlVjeXREcm1kVVNI?=
 =?utf-8?B?WmlIMVJnekJZV3puODJ3T25ucUdOYldvTXN6VkdFOWoyTzNqbStWd0h2ZDlW?=
 =?utf-8?B?ZTF3VURoN3RNcVduMU1OZWJDYmhyMklyZXI0SXN6UHFCdGNZSXRsU0UrZDkx?=
 =?utf-8?B?REIrVEdjcDFGeE5WbW51Y2EvbjdtTjdZNzVDbXY5SlU1Rk1kRVN0VVVxMHcx?=
 =?utf-8?B?aGpjYnlXaFV6TndZV3lnbklBc2g1Ym5vdVRURjk1MWkzOExVRmhsV01EbmVU?=
 =?utf-8?B?OGZ1LzVxeFhmai9KZWRWMWRPaE9qQ2ErOWZlakFJQlM1L2UyYVhhcEhHY2cw?=
 =?utf-8?B?REwweGFUd1liZEYwUXM3Qnd0TXAyWEQzYmFqVCtla0hUcTB0T0o0SWY2ditF?=
 =?utf-8?B?cEdyOXlZenc5QjMyclVXZUV6RWtyZlZXQVcxSEU4eUtWSmhuZ1ZZVWpxRVR3?=
 =?utf-8?B?T0lIdDhwR2pVbURCenpaUUROTGZjNWcyTzBsTHgxbEFnRHhnN1dLZVk5THhy?=
 =?utf-8?B?djhCVUxBTFJVcUpFWS83MXVmSnh3Z1Q4MlZHWW4yK294RDJUd29aeFI0Nzhy?=
 =?utf-8?B?eXlaVTJ5QVEzSlZYN2FFNmNiZ2dqbW9mU0ZDZHNTU2VqT0VOM09xZEVadTc2?=
 =?utf-8?Q?5KatdNuTi/XSKshVx0275E4=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 66dba142-702b-4046-9c6a-08d9aa6d5c25
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 08:28:12.6370
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nQ4clU7zljViU11rfnkUHmMhvilabj8qpU31opCmsVT/k8GNvT8XEHlB826hFrWSTUiw7sgbsyWi696MapGatA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4396
X-OriginatorOrg: citrix.com

Currently the max_store_size, remain_store_size and max_size in
compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
13.0.0 complain with:

In file included from compat.c:30:
./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.max_store_size,
            ^
./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.remain_store_size,
            ^
./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.max_size);
            ^
Fix this by bouncing the variables on the stack in order for them to
be 8 byte aligned.

Note this could be done in a more selective manner to only apply to
compat code calls, but given the overhead of making an EFI call doing
an extra copy of 3 variables doesn't seem to warrant the special
casing.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
---
Changes since v1:
 - Copy back the results.
---
Cc: Ian Jackson <iwj@xenproject.org>

Tagged for possible inclusion into the release, as it's a likely
candidate for backport. It shouldn't introduce any functional change
from a caller PoV. I think the risk is getting the patch wrong and not
passing the right parameters, or broken EFI implementations corrupting
data on our stack instead of doing it in xenpf_efi_runtime_call.
---
 xen/common/efi/runtime.c | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index 375b94229e..f1cbf3088c 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
     break;
 
     case XEN_EFI_query_variable_info:
+    {
+        uint64_t max_store_size, remain_store_size, max_size;
+
         if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
             return -EINVAL;
 
@@ -638,16 +641,34 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
 
         if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
             return -EOPNOTSUPP;
+
+        /*
+         * Bounce the variables onto the stack to make them 8 byte aligned when
+         * called from the compat handler, as their placement in
+         * compat_pf_efi_runtime_call will make them 4 byte aligned instead and
+         * clang will complain.
+         *
+         * Note we do this regardless of whether called from the compat handler
+         * or not, as it's not worth the extra logic to differentiate.
+         */
+        max_store_size = op->u.query_variable_info.max_store_size;
+        remain_store_size = op->u.query_variable_info.remain_store_size;
+        max_size = op->u.query_variable_info.max_size;
+
         state = efi_rs_enter();
         if ( !state.cr3 )
             return -EOPNOTSUPP;
         status = efi_rs->QueryVariableInfo(
-            op->u.query_variable_info.attr,
-            &op->u.query_variable_info.max_store_size,
-            &op->u.query_variable_info.remain_store_size,
-            &op->u.query_variable_info.max_size);
+            op->u.query_variable_info.attr, &max_store_size, &remain_store_size,
+            &max_size);
         efi_rs_leave(&state);
+
+        op->u.query_variable_info.max_store_size = max_store_size;
+        op->u.query_variable_info.remain_store_size = remain_store_size;
+        op->u.query_variable_info.max_size = max_size;
+
         break;
+    }
 
     case XEN_EFI_query_capsule_capabilities:
     case XEN_EFI_update_capsule:
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:34:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:34:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227180.392835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncrj-0002Ix-JG; Thu, 18 Nov 2021 08:33:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227180.392835; Thu, 18 Nov 2021 08:33:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncrj-0002Iq-GG; Thu, 18 Nov 2021 08:33:55 +0000
Received: by outflank-mailman (input) for mailman id 227180;
 Thu, 18 Nov 2021 08:33:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=45Id=QF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mncrh-0002Ik-Tc
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:33:53 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41c19268-484a-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 09:33:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41c19268-484a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637224432;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=VHmZFiAkSNNxr5QfyVe7wxDdItwEVCjRSrloPzTYd2E=;
  b=H+EK+oOTTNw3e+ftqW0ZiW46rqv81djBkB5imkS+hvsP5gKaj9+lI+Qm
   MNNzQfyrJSa0aIILZDd3fRpaxF4BmXuFUTLCQ10XJywCLGt5UZCGS5gVJ
   3HOo9KeOOCsl+CdkNzyagLhYkuwv4ItLjBhQrv2X10zBHeXZFh6TQYD1n
   4=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 0ye4teCl4pYXgdahYzoaZL/J1BE4AjzysmXW1fUgQc5Rv9lvHev6KspxH3Mp7EZ5xfB6Qd78F1
 Iv3mKTnOS7XPpW3wZ3UFmRzMLKQxA2n85My1y6D0/UjeJdaj+orRQCSKvvdtaDoiw5CnQCWvkm
 xmlVWRZDaXJzLvbXQGeKaPGW/iaS0VnsR2vTzIpq5sR5Zm3TQTkRlDxTYN3nZc6qQZyTU6M1xS
 7Ffz/RT5pBxozyWqr4nlkTayOjMjJhqJ21cumQ+yeVnlm1OBjZbHO5nZxSXnVq+LRB7hYbki7o
 ey1qYH91X2DsY76u2YynqOMU
X-SBRS: 5.1
X-MesageID: 60089620
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:52YhV6N5Ovg7ffTvrR1PkMFynXyQoLVcMsEvi/4bfWQNrUok1TYPx
 mBNUWiAafePMWuhfYhxbonip0JX7MKHyNdmTwto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eszw7dRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozDZxZdz8
 slQjrq1c0QnHb3ekc8EXiANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/uSvY8Jgm1o7ixINefEX
 5QJZwNFVhHrODFGPAsPCq5ug9790xETdBUH8QnI9MLb+VP7zRNz+KjgNsLPfd6HTtkTmVyXz
 krW8mK8DhwEOdi3zTue7mnqluLJhTn8Wo8ZCPu/7PECqF+Zy3EXCRYWfUCmuvT/gUm7M/pAL
 2QE9yxoqrI9nHFHVfGkAUf++iTd+EdBBZwASIXW9T1h1ILRs1zeBFIYUwVnbeZluuwmVzUBz
 1KwyoaB6SNUjJWZTneU97GxpDy0ODQIIWJqWRLoXTfp8PG4/tht00unosJLVffs04arQW2YL
 yWi9XBm390uYdg3O7JXFLwtqxalvdD3QwE8/W07tUr1v1oiNOZJi2FFgGU3DMqszq7FHjFtX
 1BewqByCdzi67nXyERhp81XQtmUCw6tamG0vLKWN8BJG86R03CiZ5tMxzp1OV1kNM0JERewP
 hSM4FwNucMDYSvwBUOSX25XI552pUQHPY67Ps04k/IUOsQhHON51H8GibGsM5DFzxF3zPBX1
 WazesewF3cKYZmLPxLtL9rxJYQDn3hkrUuKHMiT503+jdK2OS7EIZ9YYQDmRr1os8u5TPD9r
 o832z2ikE4EDoUTo0D/rOYuELz9BSRhWM2t9ZUILrXrz8gPMDhJNsI9CIgJIuRNt69Uiv3J7
 je6XEpZw0D4nnrJNUOBbXULVV8ldc8mxZ7iFSBzb1uuxVY5ZoOjsPUWe5ctJOF1/+1/1/9kC
 fICfpzYUPhITz3G/RUbbIX889M+JEj621rWMnr3eiU7cr5hWxfNpo3ucDzw+XRcFSGwr8Y//
 eGtj1uJXZoZSg1+J8/Kc/bznUiptH0QlbsqDUvFK9VeYmv2941uJ3Cjh/M7OZhUex7C2iGbx
 0CdBhJB/bvBpIo88d/og6GYrtj2T7siTxQCR2SCtOS4LyjX+Gan0LRsaufQcGCPTn7w9YWje
 f5Rk6P2PsoYkQsYqIF7Cbtqk/4zvoO9u79Aww14N3zXdFD3WKh4K3yL0MQT5K1AwrhV5Vm/V
 k6Vo4QIPLyIPIXuEUILJRpjZeOGjKlGlj7X5PUzAUP7+C4oo+bXDRQMZ0GB2H5HMb94EII52
 uNw6scZ5ju2hgcuLtvb3Dtf8H6BLyBYXqgq3n3A7FQHVub/Jol+XKHh
IronPort-HdrOrdr: A9a23:2vBHmqo3Mn5VDy/82/NL1+0aV5u3L9V00zEX/kB9WHVpm5Oj+f
 xGzc516farslossREb+expOMG7MBXhHLpOkPQs1NCZLXXbUQqTXftfBO7ZogEIdBeOk9K1uZ
 0QF5SWTeeAcmSS7vyKkDVQcexQuOVvmZrA7Yy1ogYPPGMaGJ2IrT0JcTpzencGNTWubqBJba
 Z0iPA3wAZJLh8sH7qG7zQ+LqX+juyOsKijTQ8NBhYh5gXLpTS06ITiGxzd+hsFSTtAzZor7G
 CAymXCl+qemsD+7iWZ+37Y7pxQltek4txfBPaUgsxQDjn3kA6naKloRrXHljEop+OE7kosjb
 D30lsdFvU2z0mUUnC+oBPr1QWl+DEy60X6wVvdunfnqdyRfkNzN+NxwaZiNjfJ4Uspu99xlI
 hR2XiCipZRBRTc2Azg+tnhTXhR5wqJiEtntdRWo21UUIMYZrMUh5cY5llpHJAJGz+/wJw7Ed
 NpENrX6J9tABKnhkjizytSKeGXLzEO9k/seDlHhiXV6UkZoJlB9Tpa+CRF9U1ws67USPF/lq
 352+pT5fdzp/QtHNdA7dE6ML2K41z2MGDx2V2pUCDa/YE8SjnwQs3Mkf8IDN/DQu1+8HJ1ou
 WZbG9l
X-IronPort-AV: E=Sophos;i="5.87,243,1631592000"; 
   d="scan'208";a="60089620"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=c6tEQzw+2DPuc2inXhtpzbhozjkgAbmdduD6znsCXYydRSbDx9HFpN3e9Vh09isi9YxXFvcD1JJJNUIwkbZxRO3V1fYI0J95B3l/qnERBmsv5ODs0V4NuhsJlBO3Udc9Tw183rNUiLIM+nPYqphfAdkrczyLYr6ob52KVf3Eyz/SrlmbeZc8MdiLO/4R6sWSf8i06yGIXCWaF7zsZDDSH08vnC/TZodrW/3+0gs2ZseSZwAInOoQ6TknA3uBoNwSnlcSqrq+0hJY0XEGD4Wsc0W2n15LrjcPCQF7YPok6h+86aZrEeCyRbv/7C2Bns53MBipDb5cIMCLGQLBHIC6Lw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SK0g71aPS4DeWVUriS6RFJbsGDjmSYdetg4JMbE7GrE=;
 b=OPddE+3+m1f8xatItWtQNj9ezo/LS4BHEAZyley1W563Cs6VKMdlz/KYqRfcIRrf8x85nVN5qhkqzT4fTRGThAYCazUg8rQYvH5FiNWw8W0vGnLAVjJZXo4iieq9i/1/+h8SOuUja//2HoqHc6JKz7HAIxieS2SXZTWOvXj3spiAf2ghbnE+xkFDMtB1I+v03wbVrO2OQZrbH7NJZsMPrm2Hmq/HOz60hMXue4JeBZp9lVnrtKo6XQCiobPj8nYG0S8lJpRymqf4DMovp3diCYM2cmitihBGOv6bzvKBWiPUJIx2SUzxQmntqCA/kW4GYEr5TQZgmBEJ4HnjpsW5qw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SK0g71aPS4DeWVUriS6RFJbsGDjmSYdetg4JMbE7GrE=;
 b=VI6/meC/282oXFbnAQ+i+AypI7shRoCCk2+C6XEGVlIk/rMSq4NJlvHuhEGgbgOqAcz0Nfj0kBWk6DLHkTsyCuiTopm35UsTY8+3SGVc1KHrkDUkJIJ+DKb4MNprNWHocG1N1J3GnA1cjt1tL3olnuxD4aKqMmYuukcsHVhbjSQ=
Date: Thu, 18 Nov 2021 09:33:32 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>, Xen-devel
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
Message-ID: <YZYP3BpugHwOhNuV@Air-de-Roger>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
 <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
 <24962.46376.136195.463274@mariner.uk.xensource.com>
 <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
 <67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
 <2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
X-ClientProxiedBy: MR2P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500::19)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0f912e6b-8ccd-4d48-94d9-08d9aa6e1e1a
X-MS-TrafficTypeDiagnostic: DM5PR03MB2970:
X-Microsoft-Antispam-PRVS: <DM5PR03MB29708CBE9E7EDF3AD7AC93F98F9B9@DM5PR03MB2970.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: VoGPS18hARjXrgC+gC6s1JO9SBpQKP7g6ASBGj4KAOIjpoElI6Xhl53ZQ3QRcniXZ8hS0z1zmlTZKgv1nF/piAWPMY873PluCkDxzEOufiOokIH3b08VuQfi2nq95h/Ub1n6lMbTt1Xl5iEt/0mmkuIzXUSR4FoTLWFvpnAdTzkor/iNIgPTegbWOILwE+9SDpgQTP6Mw4D/hbxmYaZRFEicExw4EIBDQ4zhkOBSWYJUzQxBuPEouDOqM/w9FfX237BtaoDMWsQC4/HBtAM09VUJXrdTMuLjY8/xwHDxOVQzTWDD+kgDf3t+mKHPKOwdpkjd0D1YX3gHZtjKej+0nyk2+rDpJ8L4quOW2HKkmRsnztWKX6eXjE3dztQv7FEuSN/MQEWuMXDpHlVuEpQGTKVRvxNEZLR/KfHU2WwZnfUT0PIpf/MTrDS6u2ljyFzJr5tZTbgXDYbihPtfZUnE++OhWL1zU2wA+qP2ejnz3VqfBxM2vBiZwLmR1edFMYdaZhf9bygqGYLSMOrhLwdQrobVBQ/O2kmjrHFicu3vusdnC0sBuIaJQb8NGs4LY91dEh3LJMaoSDXAPH0ZUqO3N0mJ/rtcdB2bWsnFiRIFxAPh0UY3o52reSY2SgKvUCBDvPed9oSgudZ6N7bI0+a44M0Xa8qKvexXFQSO7noJbfpkwrU+U+7r8/8nXYG69HIQTVSnZe6jYCoXU+qtC+rUSbyYWbCHW4Xy0cWbvvc9BtA=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(508600001)(316002)(86362001)(186003)(6496006)(9686003)(85182001)(26005)(6666004)(38100700002)(2906002)(5660300002)(66946007)(956004)(33716001)(110136005)(66556008)(66476007)(54906003)(6486002)(4326008)(82960400001)(53546011)(8936002)(966005)(8676002)(6636002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YW9hb2lOcjFIL2Y3T1hmMlZhak01RHdrRGdYVkZlZEJLVDIvdjNjYi9uRk5u?=
 =?utf-8?B?Z1dzK01xb0VFTXpFS3o0NzBJMEZWWTFJU2tBWW5WbDBFZTdlK0k5eWtabTZ5?=
 =?utf-8?B?UC9mSFZ4eU9VeWpyNmdUTlpTcmVQZGZ0Rk1wWE5wYThxdEF2QzBrMWd6LzIz?=
 =?utf-8?B?VHlhNE1FZEovLzZUUVhKVW8zSnYvTjg0dmd4bHpzaHZRelBnNkdxeXd2d1g1?=
 =?utf-8?B?RWxKcW1FK1Vkd04vN2JvdU9Lam9QSHFrVWZlYVBxTEV3WlNEOGJUWE1TZHdj?=
 =?utf-8?B?RGIzYkl0K0pQVTBrZlNLY2Z4RFlJRW5VdVBSYUQ4WlpmTFBsRXpPS0lEcXVI?=
 =?utf-8?B?ckJ3ZWN5d0hSVnBTbXdLYy94aTVtQ2srOTFKM1lKbEZzKzVsRkYrUlNmT2lp?=
 =?utf-8?B?OVNhZFFGUjhuVGJiUGJ5YmpsU1ZiS2YyZHBVTDF5K3hnWXhmcW5OY3J6QldZ?=
 =?utf-8?B?TjV6NTZPV1N5K3lNQ2lNSWhiK0l4akk0QVJFeFRXQzlZc2VhUVBZN0ZoRTN0?=
 =?utf-8?B?YUo3Ukl0MGxwYVJxcCt5MFdUdk41N1hYelNmK2pIVGJpWFp5WUdvU1V3cWJJ?=
 =?utf-8?B?RlI1RVFieFVoa0pVZ3RFblZTalc1U0FJWDR2S1RKa1lwZGpVOW5pbzhzbWRi?=
 =?utf-8?B?Qm05TDV0TCtuSm4yazNnNHBLUUxaK0Y0YU45NVF3TFA0RGVqOG5CRkdpRS9F?=
 =?utf-8?B?MmJTSjhsY3VkNUl0Q3ByMUF2RDc5NUJuZlpzcDM5cnNGN01NUjF3Y2hFWURB?=
 =?utf-8?B?S1lHZnZHU2drOUJPOHFKSHJkRVozajE3dkpxd3l6OTdRRTV3Y0JYWDRHZytz?=
 =?utf-8?B?NkoxRk5vbS9mUlBvblltYjlvWlFDT2h4UVpUM1M3TUx0LzE2aGZ3YXJ4UUhS?=
 =?utf-8?B?WVEvRXpLN3Zjbk5BSW53VG9GKzNQOEtoZG5ud0JYa25SNm4zRGIvcEN6dW1N?=
 =?utf-8?B?eDEwS1Rkb0pCNnFPT01uVnBQY0U0Sy8wK2xZWDc2bHkzaHAwbzVjOTY1ZnVV?=
 =?utf-8?B?TTJWa2lQWms5djhmVzdTSWVINWxRb2FjZEpXMzZQa0daUU56OU5kOFJzTUxG?=
 =?utf-8?B?NkpldTFJc3JNNkZLQUoxaVZDcW9Gb3lUSGZCT0JVK1BTTW00MUloZVdKSzdR?=
 =?utf-8?B?QzZwTmdDWnUzQlNjb0pVaWlOT1k4Z21NWi9YWnYrdk5yN2pQNnZRejhIbW45?=
 =?utf-8?B?YWsxbUhtWHMvbDFoQnNFaEZ5VW9rMXFCVXJHMCtZY3AwMU0vaWxxelFwcGZy?=
 =?utf-8?B?cEF4NFlTZDByRU4wT01VaC90SnhnS3pxbEh5cXczKzNDajdUdHhFbXQrZUU3?=
 =?utf-8?B?QVpockUwSWU4STBaK3MwcGhWa3UwMWlCRFZBZzE1WHgxMkdzeFhsRVJJbFRr?=
 =?utf-8?B?elNpNEZvUjRGV0RCdW05RWVydldRbE1QQU5XbHJCMmxvSmJoaC9UeE1YdHNU?=
 =?utf-8?B?MVUwcDlpQmgxV1JNYWNWOC81VnFucFNDUGZuQ0lCNnpQMDlVMklSWGk4bDlC?=
 =?utf-8?B?S1FqQ0tIa3lBY1R6a1E0bjFRNVVEOWwzZUozbldnR2hDWEZxaGtwaU9QZ2xm?=
 =?utf-8?B?d1Q0aGlQYVZwT2lUTlpUdTBQM1FVU25HdUQ2UnpRZjZuM2xKRWViT0JzdjFY?=
 =?utf-8?B?d2NCTW5mMEZhVWlaeDI4NE5jNHgyRVlVOXUxWUtOQW8wenFuUlBWOFh3cWo0?=
 =?utf-8?B?ZlNWb1pBUEplNlVub2NJenZqTlFKa3BGSFUwM01uejFVNmZDYkxZdGttekI4?=
 =?utf-8?B?NUNoZjY2TWpDRVRmVVQzVWVDcHplYkhTSDE5ZmNEbmZKWlJQdHcvSzRhblUw?=
 =?utf-8?B?SDl5bVJuUXNGRnZQdG0zbmhmTGYzV3pIZkNna2hzeG54bjhNZERUS1NTSW9r?=
 =?utf-8?B?d3FtcHhXT2JYeENuVUtsc3B2YVQxcVcxQzVBelljak1FYi9sYVVibDBaVWFk?=
 =?utf-8?B?SlMzNHBOMmJhNm9zQVpUNDY3eUMvOTE2U2N4MTJIYnJFSXlGMGVjWFd1UFRp?=
 =?utf-8?B?cC9LamJscjNxWXN6YUZRU252WEdKRmYxRmZjZmFUd2ljVzFxaW1wUlI0cXFJ?=
 =?utf-8?B?SndRWFVQMVl0Y3BveTVBUFMxQlFMTG05c0xveUdUOFlobW1uYVNUWjN2SEpv?=
 =?utf-8?B?dWwvekNuODdHVHNIRFFBQk94aERYRWhQOUUvSWtkT0cvSHJqbTdKeVZySStE?=
 =?utf-8?Q?/dMeaEY6PRmtNf3sgCEC7tU=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f912e6b-8ccd-4d48-94d9-08d9aa6e1e1a
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 08:33:38.0218
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6Yj6CeP7BGEZUaEdfuNciVaKnxc0WUNZ8gKimiNrWWUrg/ZaJpZR0uzKpo0cuvx82OwQdQ9BEIeYE8LtUX8TkQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2970
X-OriginatorOrg: citrix.com

On Thu, Nov 04, 2021 at 01:17:53PM +0100, Jan Beulich wrote:
> On 04.11.2021 11:48, Andrew Cooper wrote:
> > If your answer is "well actually, we didn't mean to say 'if a GSI is
> > mapped' in the comment, and here's a different predicate which actually
> > inspects the state of a dpci object for validity", then fine -  that
> > will shut the compiler up because you're no longer checking for the
> > NULLness of a pointer to a sub-object of a non-NULL pointer, but that's
> > a bugfix which needs backporting several releases too.
> > 
> > The current logic is not correct, and does not become correct by trying
> > pass blame to the compiler.
> 
> I have yet to understand in which way you deem the current logic to not
> be correct. I'm sorry for being dense.
> 
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102967 is the GCC bug, but
> > the result of it was them persuading me that the diagnostic was
> > legitimate, even if currently expressed badly.  They've agreed to fix
> > how it is expressed, but I doubt you'll persuade them that the trigger
> > for the diagnostic in the first place was wrong.
> 
> Well, thanks for the pointer in any event. I've commented there as well.

Did we get any resolution out of this?

It would be good IMO if we could build out of the box with GCC 12
instead of having to backport fixes later on.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:36:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:36:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227186.392846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncuS-0002zr-60; Thu, 18 Nov 2021 08:36:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227186.392846; Thu, 18 Nov 2021 08:36:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncuS-0002zk-2y; Thu, 18 Nov 2021 08:36:44 +0000
Received: by outflank-mailman (input) for mailman id 227186;
 Thu, 18 Nov 2021 08:36:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mncuQ-0002zd-12
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:36:42 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6f00a8c-484a-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 09:36:40 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2111.outbound.protection.outlook.com [104.47.17.111])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-16-nmK9MEgLNha_PGGWC_4d4w-1; Thu, 18 Nov 2021 09:36:39 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3389.eurprd04.prod.outlook.com (2603:10a6:803:b::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 08:36:35 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 08:36:35 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR05CA0015.eurprd05.prod.outlook.com (2603:10a6:20b:311::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Thu, 18 Nov 2021 08:36:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6f00a8c-484a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637224600;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=foNIdUAlezc7Iw3okXdDS12ebVv8xlOQjqjqyt43OSo=;
	b=SRwjKpx0TPwOEAVOr3tEZ0LauYNsAd+hoaQZVFkP4ngzjXxA9Disj/p1qAMu2hFeie4y6k
	wt3K4afTmdiTofI/Mxz6uPQnDN/exr0862rtRlItyRFaKOxNBffc5dtxK6HpHU4SDd3RH4
	qHwwiCXURWUITuIqgBDwzSEbRyx7Xo8=
X-MC-Unique: nmK9MEgLNha_PGGWC_4d4w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ASs23MBYBMikMf1ZaXjPBfczNA1FO/DMkZm1Qw8aKRzW/GFUhNz4jIF5wNNmBqGGq5gPE/A/+OZJNModD5LcIW7rl5mV3aw2PSGcNsq2LkNu88NbIb/qmizGNN1XF0Z9fWsn6pdj/Jd5mG/VfWSikgQ2W365ZP3i/zXbAIMuT+kay9p7+DH6ukYJyAZZ1YQ1zTTnXZBvcmxJ3UezfG1A6rLaukaaKJeylOdYxe8cuT2GsCAfPqnglMk4LQQIV999qSKCl3ha1fnRQp3NkeUsnITnGmYbzgA1MVQqW7fkiusYpK42sRpzGsG2JIcHFMQXuB0Dop3ViJ0gGn5oMYU2jA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=foNIdUAlezc7Iw3okXdDS12ebVv8xlOQjqjqyt43OSo=;
 b=Z5LesO0dsrUyLMv4+nA9GISjJC86NynzW61l85MqnpzjL/tfMBoyiTleBoUe2bCYvu9Y96zNEYxopf7ROP6hPhE4E5Zo5cRwqlnrDK53E4Q3+BV+LSqBv/mMXYMYCPZDkW4+S/x2z2KcieZSUsdN4/m4kpb7wCt3YfommNS3mY2ycvSxJpSw1pg3v6GwfwYLdhyRk0S74lZkqbA7xmAVQyAtC9ELZx+QmvjSIreaFayethMTMxuEO9Rz05iP+gf1mcj05HnLJX7D0hmIzf0Zw9290xigr/sbdRSfxD8CO8hnm5ybg3XBeNUHQOevuB2xe0lNGw3yjKe2Y40vgK61Jg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
Date: Thu, 18 Nov 2021 09:36:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR05CA0015.eurprd05.prod.outlook.com
 (2603:10a6:20b:311::20) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 829d5e90-bd7e-4017-f6d7-08d9aa6e87fd
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3389:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3389479FC3AE5BF8373F53BFB39B9@VI1PR0402MB3389.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	mm7sSIixQU/EKcBEM0oFD76KWwl8CmoJw040f5t61HTwXHvLnyXJ8BnMhipT6Jf60j8uzQgToVqb4x+xXDpLE0COVwy5QzOHyq4Zrf8kQxpFEt8u73JaOCyb4LkNsB//Etmtw0lHIzTsuM0wjrnv2V0mUQ+dkMgGvSPvpjOTBFNRciRACKyON7r8tvNtsXttGlAwE3ak3mN1cey5DXMJPsUkVO8xip1+YnR0EM9Ruszk21R+wwmL1M/LNlp6bMS8gQmNmdksEpp2LSQjfFXkLNvjYWwd/xwisCEbTNKncYQAlC+Wv5YOv5UdppMVv1IEw5QEHoN7l0buzSMocKdgQKQjVEDeitwLnhv2dVY+ikdS/3ccVfP13vfq6yzkWwc6ml6kCe36aoKu7CbuT6ndhjNqw81xVkN/IW70EZJ/3OHULcTUulQSX0AnXp9AXyU2aKPLywOG7hOeUEqBhq4QOerNeL4OB+HKJYMG4acf6qZb12juLWE9Ty4pNBgBCzUV63mzeF0p3IqkIro1goLNkNg9Z3x1ua1uCuR9ZkgBL0Q5XdO0JlwACHZmfuKd3KMVm/HYVE/HrRyuuZnZCymfa+suv7TNu2J9hwsZocpnfWZjD1ibwuH/X2vGIK65fa1TNKmC2Agu2nbAI0Mzm7niMXAHpzdMJ3OPo/rSiOJmjTjOzD2lFXZlbIiFGteEPDiZkGgh0yoLWbcA2LQ0Cur2VeyzPUx5QUcQNw4Hlnsl9srtp/3BRSVnspN/PFxqjgwe
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(66556008)(5660300002)(26005)(86362001)(53546011)(4326008)(31696002)(2616005)(38100700002)(54906003)(31686004)(186003)(36756003)(83380400001)(316002)(2906002)(16576012)(66946007)(956004)(8676002)(508600001)(6916009)(8936002)(7416002)(66476007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?alVaQkZBYnl2WUg1Y1pvT0NMVTBqZEpFcXJUckozdXF4YkZQNGcvbXNJQkFz?=
 =?utf-8?B?QXlOT0lJMGVDUGRuVklLTEYrbkl6RzljZUhIZ2h5dHdpZWN5Z3dPNk1RVTRC?=
 =?utf-8?B?TlNwU2kyL2VRdWc3QjluUkxBQ01WbXFGTVgwWU1jZ3A3b0kvYUpzenh6dkxM?=
 =?utf-8?B?UXVqcmZwKzBFWHF1eTFMdncxWEJ0aGhVT2tqZlEwdU5VWkM5V1E5V3VCZUx1?=
 =?utf-8?B?WG96ZXV4K3FSdUd1SGh0ZEQ0M0syTk4zK3dKTklxY3ZvWTkwdVNMUkczdDMy?=
 =?utf-8?B?NFhabmRreFN1MHBURjRhb05ORElIUU9SOWQzMkt3dGpOZUdHQitGaGkxVk5T?=
 =?utf-8?B?V1RPOVRTc255UmtQZ0oveDN5bjNrSVgxM0VPZ2VJT1l1VllPS2FINkNGb0Zm?=
 =?utf-8?B?UGtTVkxKbXY5azVsN3pJanduSEY5eEVnV1pKT2pqbXdhdlhpak1TNXgxZ3Fp?=
 =?utf-8?B?SjFlVjVsUkp5NkdPaFZVUCt4c0UybjR5WW1relVpRmpRbDBJOWJ0TEE3RG9B?=
 =?utf-8?B?ODF0cnJzYmNBQVRJUWNLSzdNWXhpY0UrMjZzaEFlQ2dwZE1CR1lxZUlyVUc3?=
 =?utf-8?B?bFlVOVA0bEIreHBabnA0eXJHOFhyYVdlTTZvRkhxckxpQW1wNWRBazdoUm5G?=
 =?utf-8?B?bXcrNEdWczhHM2M0VHpGMi9pdzhlejZEbnRhSW95ajdWbjFaaHJiemhtU3pu?=
 =?utf-8?B?RjhuUHgvU1dpT29TQjdSOXdyZTQ1OW1uUmZRM01sbEdONjl0Ym9SYkU3NVpQ?=
 =?utf-8?B?YUkrSlgzQ3dKRGlveCtNMjNHTysrL3FCUEFxcGRYUnc5TVgvSDlWc0FOM1hp?=
 =?utf-8?B?bGU2TVVlSGpvV3ZiNjFnenAvU1R1dndCVlRXSWk0aXVvWU16UUI5NFZaVkVK?=
 =?utf-8?B?QUZmSjBQOWtySituRjYrcnZIWWRlSFpqQ1lJN1pYNWhmN3ZOV0JOQ2NRNThG?=
 =?utf-8?B?dUVKcEx4bXp6QnlOZi9xK25iK3c2UUJ4Q24ybksyVFA2M1Bzcm5zMmNBZW5F?=
 =?utf-8?B?Z05jUjBUZnllV2J5MkloR212UmJyNUhEaUVPYllUcTVVaWNUUU9VUE1Td005?=
 =?utf-8?B?Z2NrL25YWllIcFBuTGJ3QWpNdEwrNDAvSm5Pam5vM2JZdU5mekt1Vy9zNDUr?=
 =?utf-8?B?eFoyaFhsWHdWUXVwaHBHODBPdGFOeUdiL2xFT1EvZHFjaVcxNnoyWEIvdmk2?=
 =?utf-8?B?SXNCdktOMmxnK0c5aTFKbEhkTGMvdmhZU2gydFdkYUc4dW92ckdKMVhEWmtJ?=
 =?utf-8?B?ajNtb2JPR0NqTXVOaVl2d0U4eVV1NHh2RTloU0U0RVZnQmZXWHpTYkZuV1Ar?=
 =?utf-8?B?YlVKUU4zb0t6dFFsb1ZEWmZGN3ZhSjlGb0YyeEJYRDVVU0Z2Vzh1NFRRRGwx?=
 =?utf-8?B?Q3pqMVRKTzVQdU5vNHQvbm9WQkMyZTNsQm15M1pTMC9zWkN0SkpweXhrbU8y?=
 =?utf-8?B?dkJuMy9HSENPYm15Tk15ZWZYTEJodEhtSFhQdzFyU2pMbzVQTnlYT1JDSmpC?=
 =?utf-8?B?eGlyamUydFVyeXlBZ1RjY1VYK094RFVmZWhiSmppWXZPUzZmL3QzQUwvVVFE?=
 =?utf-8?B?UnFTSzROcE5BWm1OOEQrVWRSRmFqMXkvMEN4UVdFM0sxMFdaZnFKWWt6aFEr?=
 =?utf-8?B?c0k3bkNOSGlvRjR3TVdJd2ZRVHVjUi83RURSZWFFczBtZksvYkpwRFMyWDdo?=
 =?utf-8?B?bDFtWVVVNjVrMWkxQWRDeEZxdkl3bm1FUmNXLzlCUGFyQzVGeTNDQzZQa1Jo?=
 =?utf-8?B?NkRzSTRjVFZXeW5La3RwRFdJR0sxeXpPQkJDWEZWbnpSem9KOTJZNHdmTVRy?=
 =?utf-8?B?ZnBPNGZrZ0NrMVM5dS9FMnE4TTlGS2s2aTkrZGlJcnJXOEUrbGh2K0tqMkFq?=
 =?utf-8?B?QUhoWjZrVTNERUVyeXlXU0JwRW00ZjM4QU84eUNTY0svUC8vbTdpcytqSVky?=
 =?utf-8?B?bkZsRFRjOFI4bG5QU2R0ZmRscnlkR2gwZnp2TWpmbisvSmNSaGpnalpKQlhM?=
 =?utf-8?B?VEtvYzNHSUdBM1A2TjdteGRzdFgrYXZqVCtvS1pad21UMWQxckJ5RmtqbHJl?=
 =?utf-8?B?T1V5aFdoRXNDRlBDcEJlWHkrWkZxTUxyOEs3eG5pYlRkcWJsTnB0UERBaTdE?=
 =?utf-8?B?QVYzZnd0aGRqV0dGMzFMbHJ5WXhjamRGbmVncHZLVnROUURqdlV6eXpzTHh6?=
 =?utf-8?Q?vitn59brAB0tIVvHtlhClkM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 829d5e90-bd7e-4017-f6d7-08d9aa6e87fd
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 08:36:35.5187
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OLtoBlxbEtQVVQLq63bGv+S3TK5xsPgAd3ZvRKg7sHAUbiBqnPZvoRRU75C/F3knmtrOe4CWE/RwqqI1FtJTgA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3389

On 18.11.2021 08:49, Oleksandr Andrushchenko wrote:
> 
> 
> On 17.11.21 10:28, Jan Beulich wrote:
>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> When a vPCI is removed for a PCI device it is possible that we have
>>> scheduled a delayed work for map/unmap operations for that device.
>>> For example, the following scenario can illustrate the problem:
>>>
>>> pci_physdev_op
>>>     pci_add_device
>>>         init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
>>>     iommu_add_device <- FAILS
>>>     vpci_remove_device -> xfree(pdev->vpci)
>>>
>>> leave_hypervisor_to_guest
>>>     vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
>>>
>>> For the hardware domain we continue execution as the worse that
>>> could happen is that MMIO mappings are left in place when the
>>> device has been deassigned
>>>
>>> For unprivileged domains that get a failure in the middle of a vPCI
>>> {un}map operation we need to destroy them, as we don't know in which
>>> state the p2m is. This can only happen in vpci_process_pending for
>>> DomUs as they won't be allowed to call pci_add_device.
>>>
>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>> Thinking about it some more, I'm not convinced any of this is really
>> needed in the presented form.
> The intention of this patch was to handle error conditions which are
> abnormal, e.g. when iommu_add_device fails and we are in the middle
> of initialization. So, I am trying to cancel all pending work which might
> already be there and not to crash.

Only Dom0 may be able to prematurely access the device during "add".
Yet unlike for DomU-s we generally expect Dom0 to be well-behaved.
Hence I'm not sure I see the need for dealing with these.

>>   Removal of a vPCI device is the analogue
>> of hot-unplug on baremetal. That's not a "behind the backs of
>> everything" operation. Instead the host admin has to prepare the
>> device for removal, which will result in it being quiescent (which in
>> particular means no BAR adjustments anymore). The act of removing the
>> device from the system has as its virtual counterpart "xl pci-detach".
>> I think it ought to be in this context when pending requests get
>> drained, and an indicator be set that no further changes to that
>> device are permitted. This would mean invoking from
>> vpci_deassign_device() as added by patch 4, not from
>> vpci_remove_device(). This would yield removal of a device from the
>> host being independent of removal of a device from a guest.
>>
>> The need for vpci_remove_device() seems questionable in the first
>> place: Even for hot-unplug on the host it may be better to require a
>> pci-detach from (PVH) Dom0 before the actual device removal. This
>> would involve an adjustment to the de-assignment logic for the case
>> of no quarantining: We'd need to make sure explicit de-assignment
>> from Dom0 actually removes the device from there; right now
>> de-assignment assumes "from DomU" and "to Dom0 or DomIO" (depending
>> on quarantining mode).

As to this, I meanwhile think that add/remove can very well have Dom0
related vPCI init/teardown. But for DomU all of that should happen
during assign/de-assign. A device still assigned to a DomU simply
should never be subject to physical hot-unplug in the first place.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:41:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:41:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227191.392858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncyU-0004M0-Pf; Thu, 18 Nov 2021 08:40:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227191.392858; Thu, 18 Nov 2021 08:40:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mncyU-0004Lt-Lp; Thu, 18 Nov 2021 08:40:54 +0000
Received: by outflank-mailman (input) for mailman id 227191;
 Thu, 18 Nov 2021 08:40:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mncyU-0004Lk-7M
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:40:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d5d6996-484b-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 09:40:53 +0100 (CET)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2050.outbound.protection.outlook.com [104.47.1.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-32-NJNWaiqcM4uaPpgrfocvRQ-1; Thu, 18 Nov 2021 09:40:51 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3118.eurprd04.prod.outlook.com (2603:10a6:802:a::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 18 Nov
 2021 08:40:48 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 08:40:48 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0058.eurprd06.prod.outlook.com (2603:10a6:20b:463::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Thu, 18 Nov 2021 08:40:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d5d6996-484b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637224853;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=llQ4wRsyJ0uGbRlru51nj9tulLG7/T2vCEv5MdCMxTM=;
	b=e3nuhx7zDXbUIOK5qAQBV8Uxasc7Y3bl4zAJJaPE+6jTkSJ+OGMbZLoO40VdJKPx4qI4Om
	w7OUgUyRCTWYa6f/4JIjPVUo/AYe0/vPJrxS2RzhZclNcKDBNRIw1EYcwPv0sGZgzouGMs
	QmDrM+a+w2E3/aUHxuXXwZzXFp5ejh0=
X-MC-Unique: NJNWaiqcM4uaPpgrfocvRQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DecLPgdqOw04eIHzxby8foNruQm7zL5CVvalwhQOFCwgBLJKdOAVwU1/K4V+LvedHLBLAA/kNvTgwKcg0GHYbtFb9adTgOuPjGvRu3WobkJTwK2kyRgjNfP4qCLanFQNPlswNfufNJ8u7n6icxv63dyOvJ5Ldn/yDR+OcnWA184/sxllevVF40plkLZAAFcz0tnorwdbYDA6huFlcGxFCBKY3y+jAygiJOMnDwuADOLrzFTcOkzR7zDfVV4SrOfieMNnnFLEo3D3bbw0/DDAHPhIggfH7U3stvC8/C/zHs1BgrYiHw1jebgiprravVHhyGqzQDaRK3PXtxxw5gU4Pw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=llQ4wRsyJ0uGbRlru51nj9tulLG7/T2vCEv5MdCMxTM=;
 b=f22gJbkX4/TAC2N1aDrIPIcj+2jhtGt2zW4tjXBH6a3xqIL2zaIUO9x8jd2R9oDwCmyVxM8d3cewjcfHwGDlqnN2oR74tjHsq/K8OrdDGGsNy1aqnwIr5dNrsrScNFKnywn8Lx5NEMvyjMVXlxPeS4bDuwXyBw4yCHM2aV7iTe5cgi6eU5Ppf6xIq29R39Q4Q4cxg3urNDVin49PQ8a0mKbDrSevm8HmUp+03xpW9SiQCv8eKWGkL2TKSzONSQhfFkPnfV1tptnnz9uCqYzTZYWuo+ab3yJ2JGZLHNpY9BJWgReEw8pbGaDgSNhgmQLl6dl5HSOYZshK+2hIGNm7fQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4c952e5b-a136-3fda-810c-29fa556ef965@suse.com>
Date: Thu, 18 Nov 2021 09:40:42 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org,
 jgross@suse.com
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0058.eurprd06.prod.outlook.com
 (2603:10a6:20b:463::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b7e0e5b9-3918-45e1-97a3-08d9aa6f1e89
X-MS-TrafficTypeDiagnostic: VI1PR04MB3118:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB311852305D2CECB5DFF2BA2BB39B9@VI1PR04MB3118.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hvtYZcg1qJeK1HWmHowhMTYW3sJN53CytO1lnmBMB8Sb5wNlAWsH8VhK3+thTfNjRt/fxYrvPytMv4gy4YWvFiHfbKe+TGOWwszXbioGO8RHwtdDWFrMty7/qYtOA9IE/vno0YuNsvPmKxbeBtPgA5W4CA7g5AfwBZVLbslZgMfoNKT0FaymMhmKv2fhJUAhrEFNC+kJKROjHCOSNd0ssXBQUpjp3CefxqRE+25vYFbqakvdAH/T8PdV11QXVVu5j5eJvuvU84ZkmWl3vT745OZaCndcnBhI1lFiSYV3i0k5nSZF9t/JFvO/HUc7SL6czG5aCFqwFCl5/ZmiQyJYVlxhwa0sjPpTeyZc9LOO5vYWtefHgJ2g4ommkGP1Bwywd/66tBjL1JA7DvASORD9uR0x1CA02qj2FXvn2vRuocVGOpsp5T24Uvo50AhYoy24j9mVFLbOI9Gnc+ru2TP02BytDo90opzjClSLK9YqgP8EszqEQu+BirXRn9vbKQ6/Y1TIvhfQ4WQf4XvYjpWQ2lWSoG37QBtGCYhJy+ETTxHlhDsFeOuOYNkvzgeFhtpJBKChgCTWlBGySHopxTZRTkMMHak5RJ2d9F7EmS8q8NXqRqXN3XALyL5kDy3B4IrbxYlnUKpICqqdX+0QZgTVrRjXuVOd71IhpVDn3ac9+znlq+KzJYhGbQzDs7x/NXV+PnJsFXPPHCeYVzHQ+t9VZf24Q8bvE9crMfIBJFCX2q0VsYimHjUuToaszzwfe48i
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66476007)(66556008)(6666004)(66946007)(8676002)(8936002)(6486002)(107886003)(31696002)(956004)(86362001)(5660300002)(316002)(38100700002)(31686004)(4326008)(6916009)(508600001)(16576012)(53546011)(36756003)(26005)(186003)(2616005)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OXV4blAyY1Z6WUtIUnBjOTltcndac2FpMEdyOVZCRkNrUUMwMS80Y1Rhemx1?=
 =?utf-8?B?V3ZGWVd4eVgrTjA4NVFPKyt5RlBjRVZ4UnhLR3J1d0dSdE1sUzRaWURUTVRE?=
 =?utf-8?B?YUhVK1FaLzB4WlhQd0Jqek8xY3dQUUx1Q3FtMUplZHd0U1kvUERvQlZaeTh1?=
 =?utf-8?B?ZkdXYThuSmxZbHJnN3ZJODhJR05BUklGOWV1ZjFydWJ5K2EvV0VKTjlJb3NN?=
 =?utf-8?B?WDJvTlIzRmVZaFptS2NReGxKcm5KNkhCVERwQW1VWi9ycGxGN3UxbXdFVXBr?=
 =?utf-8?B?V3hxei9Gdk1rZEY2ekd0RUdUWkdoQjgxdUYrQWczUm44bTZVNzNyZmVsZmpr?=
 =?utf-8?B?OVgrNVRtSG1lS2pyRkZEMUNnRUc4RnVZaU1yaXU4NXNUNnpScVBUeWMzbUts?=
 =?utf-8?B?dXJNaTNjeTZ1K1psVjBpd1dPa1VBYjMxVk1zNGdOOFRna2dZTTdhd2FmQlMw?=
 =?utf-8?B?cFdycEI2QlhXTzlSWHh0OG10ZmNYSU5TZHhCMHA0SFlJTVIvSnpFZkcvWlMy?=
 =?utf-8?B?WTBIbm5kVy9jUUs2aUFJRktvMjhSSEErWmlONEtvUDArSDBldmxKZkJIcGpG?=
 =?utf-8?B?QmZFZFFtT0FpQUZZQjNoMkhaK1g1SWUyeUQxRUJoTzRZbkJKMlNLSE9xb2pH?=
 =?utf-8?B?RzNLOFNETDhEWDgvRy92T3Z5NEV5YnV1ODRBT0ZTTG83dENSTjhDclJ3aTEx?=
 =?utf-8?B?dFdPRDNIaW1MMk80L1FFeEZickdVUlh4SXFNSkVCdkRLc3dYQndBVkhNSjdO?=
 =?utf-8?B?WGJ1MWVoNkJ0bHVLWTdrOU45dC95RGZmdTBpck93T28yWUFqOStYVE02clAv?=
 =?utf-8?B?SUF6OXJ5QVV4YVFreGpHT3FncnV3Mk40RjExWG11OS96S3JWanVGQnJVUDRh?=
 =?utf-8?B?dWVzbi9FNlk3QWI5OXBxU2lGeHlYSFQyazQ4TmN6azh5TnZDMzhEMHc3OStS?=
 =?utf-8?B?MmxoaVBRd2NlNEhUaVo1ditzVzJOZkYvM05DWWZrbG9SYUtRVnE3YnNKblhU?=
 =?utf-8?B?TWc3MENVMjJMOFQ0U1JWM2hqTXk4cHVlbVZTdGFXY21TdUtFM1Q3em83UXZ4?=
 =?utf-8?B?eFc4MlR6WEJVZnZkY2t3WnBteGxabHZySjA3elphWUFSdlpkTFc0VGFmK1Y5?=
 =?utf-8?B?ZVdqcjBRZHVQSFlUWWFqUE9IeXFrT04xSVAzaXVOMU95K3dVdEVLNnpDVU5q?=
 =?utf-8?B?SmVOTmJtTUl4TlV2VFByTDhVSDdVTEhuVk82VHArMEJwVUFoeVcxbklFMjkz?=
 =?utf-8?B?WC9FNHNFcjd3V1duWWN4TTBLem9keW1mK3JSUVRYV0ZrQVUyN1h1MWpWUSt5?=
 =?utf-8?B?YVBOOTdGb1MyejZONG5yZW5iYlFXeEtKc1BUbXVub0RyRmY0NGVhMGtmS0hO?=
 =?utf-8?B?MXFsaFpqNXJFVGdqOEJSZncyMXc4RkFVclkxQ3FqMHp3YnNDRlNJUE5RVnJk?=
 =?utf-8?B?UTdGUENPYmYyem1PL002VVlPaHBBVHZJK1F2THYzazdIbHdHcUR0allIdUpZ?=
 =?utf-8?B?M3pQVjVCbWVlQnV3ejgrcXZvLzJ3MVhXc3YrdWFZS0hOa3RwNC9HNGtmRzRx?=
 =?utf-8?B?VTU4NVZmNXI3QitGT1duV2pRRWZEL1Y2ajkzc0JIeWZZVThiNGJJUmh4ekc3?=
 =?utf-8?B?d1pPZ2lBMGVBQnZidVRyOW9aVzhtanhidkNYQ0w1WFBpaUxjdGJLN2pBYTN5?=
 =?utf-8?B?MDQyQnk5MElIREdKVHhldUxsQXZHZHZNVkhHQ3Znam5PUitoQUc1d1hKUC8y?=
 =?utf-8?B?RkxjdElBODdPOENQRVYwTFBSZHp6OFQ0cTdkNFphbU9mTUdSUFc3RWtBS1FN?=
 =?utf-8?B?V3dqaEFpV0F0U0UrY3hYQ28xZzhGMVBtOXRpTW1VZW9XTUJZN2VmUTdYTXhh?=
 =?utf-8?B?dEpDMEhHVlJjQngyb09xNG4rVDZ2N0JnN1RVSzhudG9YRHFhN1h5MGp4K1lz?=
 =?utf-8?B?dXBCa24yRHFoNWVoNkxPQlh1dTZqNUZXYjFpYzVkZFR6SGM4S05hWU42Ynlq?=
 =?utf-8?B?NXFiODJmbFF6bDVyZmVtUnZqY2M3ckVDRS9BdVM4RmMyaXl2ck9JR2FaNm9z?=
 =?utf-8?B?anl6aWdodkt1RG82RHpZRUJJQTNBdlFwZjB6M2xxdzZneXRDUG5IdUxoNG9Y?=
 =?utf-8?B?MldaeXpjOUFpQTduT2lWZnMva05mYVd3SDdKR25Pd0dSbEFGak9GenNMZDBQ?=
 =?utf-8?Q?Vhi0KR2dyUO9G1UoQluNjUA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b7e0e5b9-3918-45e1-97a3-08d9aa6f1e89
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 08:40:48.1370
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: q1nq2NLsNtEbK2pFOH7Jmob0wrIxPyNS8DoZKw+53mVMhp5xJVSxgSQFprKXlieVlC+BIA3QTef6cjdvL0RJqQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3118

On 18.11.2021 03:37, Stefano Stabellini wrote:
> On Wed, 17 Nov 2021, Jan Beulich wrote:
>> On 17.11.2021 03:11, Stefano Stabellini wrote:
>>> --- a/drivers/xen/xenbus/xenbus_probe.c
>>> +++ b/drivers/xen/xenbus/xenbus_probe.c
>>> @@ -951,6 +951,18 @@ static int __init xenbus_init(void)
>>>  		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>>>  		if (err)
>>>  			goto out_error;
>>> +		/*
>>> +		 * Uninitialized hvm_params are zero and return no error.
>>> +		 * Although it is theoretically possible to have
>>> +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
>>> +		 * not zero when valid. If zero, it means that Xenstore hasn't
>>> +		 * been properly initialized. Instead of attempting to map a
>>> +		 * wrong guest physical address return error.
>>> +		 */
>>> +		if (v == 0) {
>>> +			err = -ENOENT;
>>> +			goto out_error;
>>> +		}
>>
>> If such a check gets added, then I think known-invalid frame numbers
>> should be covered at even higher a priority than zero.
> 
> Uhm, that's a good point. We could check for 0 and also ULONG_MAX

Why ULONG_MAX? The upper bound is determined by the number of physical
address bits (in a guest: the virtual counterpart thereof). In a 32-bit
environment ULONG_MAX could in principle even represent a valid frame
number.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:44:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:44:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227195.392869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnd20-0004zN-AC; Thu, 18 Nov 2021 08:44:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227195.392869; Thu, 18 Nov 2021 08:44:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnd20-0004zG-5r; Thu, 18 Nov 2021 08:44:32 +0000
Received: by outflank-mailman (input) for mailman id 227195;
 Thu, 18 Nov 2021 08:44:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=bdp6=QF=arm.com=Wei.Chen@srs-se1.protection.inumbo.net>)
 id 1mnd1z-0004zA-9A
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:44:31 +0000
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03on0631.outbound.protection.outlook.com
 [2a01:111:f400:fe09::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bdc7a26f-484b-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 09:44:29 +0100 (CET)
Received: from AS9PR04CA0031.eurprd04.prod.outlook.com (2603:10a6:20b:46a::10)
 by DB6PR0802MB2488.eurprd08.prod.outlook.com (2603:10a6:4:a1::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 18 Nov
 2021 08:44:26 +0000
Received: from AM5EUR03FT054.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:46a:cafe::11) by AS9PR04CA0031.outlook.office365.com
 (2603:10a6:20b:46a::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20 via Frontend
 Transport; Thu, 18 Nov 2021 08:44:26 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT054.mail.protection.outlook.com (10.152.16.212) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.20 via Frontend Transport; Thu, 18 Nov 2021 08:44:25 +0000
Received: ("Tessian outbound c61f076cbd30:v110");
 Thu, 18 Nov 2021 08:44:23 +0000
Received: from 9c0c994e0549.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 EE7BE924-0566-4884-ADA8-0252CD003CDA.1; 
 Thu, 18 Nov 2021 08:44:13 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9c0c994e0549.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 18 Nov 2021 08:44:13 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com (2603:10a6:10:2a2::7)
 by DB6PR0802MB2599.eurprd08.prod.outlook.com (2603:10a6:4:a2::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 18 Nov
 2021 08:44:10 +0000
Received: from DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5]) by DB9PR08MB6857.eurprd08.prod.outlook.com
 ([fe80::b974:8325:d5ae:e8a5%3]) with mapi id 15.20.4669.013; Thu, 18 Nov 2021
 08:44:10 +0000
Received: from [10.169.172.97] (203.126.0.111) by
 SG2PR02CA0130.apcprd02.prod.outlook.com (2603:1096:4:188::8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 08:44:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bdc7a26f-484b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EXqUrR5GD4K4RlH7p8iQ4qKd7fvKkIm6p9iJXqJ2xvM=;
 b=K4Sjvg0KGT6tIzFUV9Ew0TYSiv4CIaAKydindGR0hkgmaF04yBd7FmeGcBOyi8NRrpmG+E2AOSGmI1b8QyshrdOPPnUiPbr1FVbE0qHa658C5nHj64dXXttgkH5/gfziGADh8Ianra/76dfWayZLfXFPA9WVLMT+B2c9+Sw9UB0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: f612e0e3cf4e25ab
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Mgs0Yrce+9DpbT1P+Yk3NoHWoySy5nvhed35IFuMp0mj+iAhwF3xwqefQXClGvIxO+na22AyqYuwTwaSFqO/UcCFclCoxiRqvyGnbQuXwZDpg5U6OKdW0+Qhe7UbqLTAj5VodMwmemAtW4RhXUS5KSmp7T/3lbyv3XS8l7yn5pYodbvkMexYLmoopT7CIFxrYtA9hxfTD9IBobwROmPFin0RI9LljNCrTxQiv7gcVZWYGKrqb9Td76bJUSWVR7k6jh/tsNN7vN0opRXTr7WZtvpKsk4F4TeXymd+4EbsbjENKVbCk2B07vwc4J42MjdsRnwrE3Hy1s7gB8ge3cZw0A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EXqUrR5GD4K4RlH7p8iQ4qKd7fvKkIm6p9iJXqJ2xvM=;
 b=DkAniO1eBTbdEJ8U3FWREqA+WQTGw5nKgBZBV63J+73lDMRlATIy4Em/0EguPt8brdKHgaV2f+vjJJmDVh/y5VxJF7JAL+q1kxUl1BG95swIWk+bpqjxM7n4ESUp4eZem1+Xf2J9SVXuHcVl71p41H/ZfznNUzAg5QEP3TR9z/CktXXI4qywUK2RR/dIsUnD/hZKP5rVhZJQ3hvsDz5JI/HoyPjtvm4RgvhIfK71ZzYTRrI4h54ZgKxvpBDndDWNT1n1+vxmEltUUi6AmgutyLXQeAInbgvEIcSIC0TTR9LToQ8urmfuFZrSN9ezRivDF1UOm2V1SYCgg0b0y6gypw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EXqUrR5GD4K4RlH7p8iQ4qKd7fvKkIm6p9iJXqJ2xvM=;
 b=K4Sjvg0KGT6tIzFUV9Ew0TYSiv4CIaAKydindGR0hkgmaF04yBd7FmeGcBOyi8NRrpmG+E2AOSGmI1b8QyshrdOPPnUiPbr1FVbE0qHa658C5nHj64dXXttgkH5/gfziGADh8Ianra/76dfWayZLfXFPA9WVLMT+B2c9+Sw9UB0=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Message-ID: <251f2baf-548f-f7e6-852e-9ccc9ab11beb@arm.com>
Date: Thu, 18 Nov 2021 16:43:53 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.2.1
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Content-Language: en-US
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Roger Pau Monne <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Dario Faggioli
 <dfaggioli@suse.com>, David Scott <dave@recoil.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Josh Whitehead <josh.whitehead@dornerworks.com>,
 Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>,
 Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>,
 Nick Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>,
 Quan Xu <quan.xu0@gmail.com>, Rahul Singh <Rahul.Singh@arm.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Shriram Rajagopalan <rshriram@cs.ubc.ca>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
From: Wei Chen <Wei.Chen@arm.com>
In-Reply-To: <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SG2PR02CA0130.apcprd02.prod.outlook.com
 (2603:1096:4:188::8) To DB9PR08MB6857.eurprd08.prod.outlook.com
 (2603:10a6:10:2a2::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8197cde9-870b-44c1-e12c-08d9aa6fa068
X-MS-TrafficTypeDiagnostic: DB6PR0802MB2599:|DB6PR0802MB2488:
X-Microsoft-Antispam-PRVS:
	<DB6PR0802MB248890E8B9AB5663B133B4179E9B9@DB6PR0802MB2488.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 3P5A3icBA5f2iaWGn8lroIFrJqQjo7GRjWHyb+H4e1Mmok9uBwkHUQVd12cC7WEUe58kD7iAeqCw0XLmQSHfg/BOnfFrf7v7wiYasmo9tcOU+FpZmrcG1rU5+C+QmBTngoqE6Ea64JPrHJN2rHvJ3885iRkkJGPlLCyyOKtb4Kj7/rfFes3rgg8suHT20Ek+m3CA4rQuW3FWzCzPXejdw5Ms+JcB5uH9FFdZ/1a6bdr++powQYUSEY2Q0M4mtCOuWFxOUqkSBZi5NemV+nZqul2hbS6vQoMvSzvQ5u7u5tKO8+hxRAigxoMkfOAcTOXjq+8AvJlFYnlYlsjKItMNGfXCdviDUtUz5HHNRXrp3ZobSqdr5s7GcnGyw6vPQBcH+Zr3B6Gj4+S1xFJW5CQfnQJ/kIvaolPnx4/J1wpZqcwRk91ZgXE9uZKaw0NMzetTg+M8e+q1h6Wn25QahHhIabaYXvmlxylZICwSV5gccGBcnFZFGXPd/mGCcn2bf1SIo6rhvxBuVPL0vkBbqrWck6ItujoUDsLqQnpcrpDtYLaXZ+GEfjPvQndzb0gmO4XUagcPSd/blyJfehuVPAK/co57GJ9qOciPznHqpxsTpPS2zRLgUp4LFe1p0j0oFQX242/HhBQ5UYVkivKsmKjk4qE9F6GwCiXtCs0y9AFYIe/VdJO6ZJ6oqBNWqtZA0aqdxlTewhd3pDhkcrSMiZlMvTk0j8x88wdn+yLelgqBo61vCkU+kT2g23tWigHbcz29h+KszbdfLmxUPBY+OMmZiBbwNFNnD16JUoxK6duHgTTqB9cU+0v4FFS1wmE+i4F/fmjXGoQQO9BQBr2oRd0IKh2lHczjr168p5h/Zd4PpDdRscW/4/EJLEAlrnbxD+yJSC0vKnku/PeOgphWBqJJcg==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6857.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(54906003)(4326008)(2616005)(38100700002)(53546011)(31696002)(6486002)(316002)(5660300002)(508600001)(16576012)(2906002)(110136005)(36756003)(66556008)(66476007)(31686004)(956004)(7406005)(8936002)(8676002)(7416002)(26005)(6666004)(86362001)(66946007)(186003)(83380400001)(59356011)(219803003)(207903002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2599
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT054.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	480a121e-7b9a-42f1-88ce-08d9aa6f969d
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	udBiINHNiE7HYEOZyVm5RuazukW83H2H0gBsamOiZ9LYLOnbcOEmzYSCpd43o3JGlS8eBRyTFa0PRp5KsvuxDU8Ok3VaZFPVJKL+xfoMOBOcEUmthsEhHQnYOmyp8LGbTqEP7xtRme6bR3OKvCS5Zw+pILlBxh95xNhygseV952r4Qm/rDPePxnUc2PI9czO0bwL34MW73GXZW3OoKsZgq50xx6fCVVTNWjhWUXLgH0OJsI1vlJrXhaM9D/Kq+LdCHiz2KbRVnZOb7GrWr2K8TfYNX48aiQG+nmVCfTEZ0FoR/fENVAiPhvfANt9Cppi/LonyHmwmRMuFQ97im7PEJwzldVi3qS8N3MJKa4kFmaZxGLYOleV2IQ/xmvJ7XGZWcy3vVDylUVzGi9If71U3l+MvS07xn78sKtp5v/ymSR3N4UoHZSDgp7de88akZ8quhZs8eYhdyQtok4NmDf6mLrmLb0Ygj5YQW8UnpucVPIMHqpeTGGJuGyxw2gq/EmpzaXvtz9Y0Cc6mescMERXsi1StABYsFSukuyag7tUGsrOz7mGlW42pGZcaZKn/sVjpqsa7HoJV1zhM6l/LlDTmTabA811oOo1FGlLGrVElJ9zxMv6ylJyz1AzjhKSjXBaZfXT0OHNcUcJe9urhv0THCcK9IGCDGHoBTfkjYwuLbs4BdbZhbOIRa1o+3VSqrFC7aoSWaOyDGteZrz8NjRkyAWB0YIYEl/1MUPH74AFQDuK7fcP0SmhdY2E9osYAIZp1/cB3l1E6lxXexZ583JP/DuUL3tSn2f2XhkQH23X8Y/eG1hSeDcxHdGrJ97W00KQI4sdz7q6jTOQtg0bIpIZAWUkFJ63JcRbxAa9+t6vV29aCvaWYkc2Tx0jLiEn72P3+D81lFUUxwCsHFYia8Pwow==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(508600001)(82310400003)(70586007)(8676002)(83380400001)(336012)(81166007)(110136005)(86362001)(47076005)(36756003)(31696002)(356005)(31686004)(16576012)(70206006)(316002)(8936002)(26005)(2906002)(4326008)(53546011)(6666004)(54906003)(186003)(36860700001)(956004)(5660300002)(2616005)(6486002)(59356011)(219803003)(207903002)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 08:44:25.8365
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8197cde9-870b-44c1-e12c-08d9aa6fa068
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT054.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2488


On 2021/11/17 22:07, Bertrand Marquis wrote:
> Hi Roger,
> 
>> On 17 Nov 2021, at 09:53, Roger Pau Monne <roger.pau@citrix.com> wrote:
>>
>> Document some of the relevant changes during the 4.16 release cycle,
>> likely more entries are missing.
>>
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>> ---
>> CHANGELOG.md | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>> index ad1a8c2bc2..8b0bdd9cf0 100644
>> --- a/CHANGELOG.md
>> +++ b/CHANGELOG.md
>> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>   - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
>>     no longer be built per default. In order to be able to use those, configure needs to
>>     be called with "--enable-qemu-traditional" as parameter.
>> + - Fixes for credit2 scheduler stability in corner case conditions.
>> + - Ongoing improvements in the hypervisor build system.
>> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
>> + - 32bit PV guests only supported in shim mode.
>> + - Improved PVH dom0 debug key handling.
>> + - Fix booting on some Intel systems without a PIT (i8254).
> 
> Missing:
> - cpu ID sanitization on arm64
> - fix 32/64bit vreg emulation on arm64
> 
>> +
>> +### Added
>> + - 32bit Arm builds to the automated tests.
>> + - New x86 pagetable APIs.
>> + - Arm vPMU support.

Maybe miss this one either:
Add GICD_ICPENDR register handler in vGIC to support Zephyr.

> 
> Missing:
> - static allocation for dom0less on arm64
> - dom0less EFI support on arm64
> 
> Cheers
> Bertrand
> 
>>
>> ## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2021-04-08
>>
>> -- 
>> 2.33.0
>>
> 


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:47:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:47:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227201.392879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnd5A-0005h7-TW; Thu, 18 Nov 2021 08:47:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227201.392879; Thu, 18 Nov 2021 08:47:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnd5A-0005h0-Qa; Thu, 18 Nov 2021 08:47:48 +0000
Received: by outflank-mailman (input) for mailman id 227201;
 Thu, 18 Nov 2021 08:47:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnd59-0005gu-Fk
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:47:47 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 337e41c8-484c-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 09:47:46 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-3-bMOJcId7PFCZNywFiwAwEg-1; Thu, 18 Nov 2021 09:47:45 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4382.eurprd04.prod.outlook.com (2603:10a6:803:73::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 08:47:42 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 08:47:42 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0379.eurprd06.prod.outlook.com (2603:10a6:20b:460::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Thu, 18 Nov 2021 08:47:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 337e41c8-484c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637225266;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=iya6b1bQoAJ848Se32DLvKbaTbi3hYCcvLKUjFP3Yr8=;
	b=Y0duF1c+a980hD33UwQet2iexHxRqjzTMqLCIpuDs/fcDqXkDEkzUgg4nDw3M8snj/JxsM
	DU70aIjse08IhbzB6q5+5N6Hk87H/tw03kMK2vOaM1wa06YNnIt36BBg8nx34Bx5OHjfaa
	4i3WmHBQiWytvTZjAhC5YP9r0xadSfs=
X-MC-Unique: bMOJcId7PFCZNywFiwAwEg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ci9UAXQnQuRyURYz83cDPaecd6Tc1ztE4EhAW3iHIglrEctqOZhvAt+x4x7rtz0oQN2KI5nLb0YRmjAT563Ow7FhODnoF2hgPGNscM5vlLdCeY2lmDxLiUqXCNqtvWNGj+zycSBbfOaQEPZcV/RBoEV3HgCQatjhbBNxvsqAi414X9o6UIXIEtg9kpfD0FWhheAALG9PlVQCzGu5N7OkAwL22h5mp5DyRN3ee+/iZhdfwd6CLjhOAFFxxrbnX6vgpqgbaDCuJxFUM6j4giCB3RFRFx4QxcBVhRXCyjYnx7CwGvZpe9Juy+ApaQaH1A3cmIkuMIKUdG5PQBXO2ByGrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iya6b1bQoAJ848Se32DLvKbaTbi3hYCcvLKUjFP3Yr8=;
 b=UEw2ypKus0m9XrDt7qs1jhWcN95WRL34tkoypveQx1wZeGSFPrxt1hAWVHoy0fazBExkvJAbWUF6YRkMjiqJOsuBLCJeiaVVQfFhAvNOctMsjD0jGsSLevwG92S5wfBdp0okkGFZElFiosEDPfCTfZKpsGAFKZwow5P1D2EpwAn6tLIgcMVMgJRp3MB22jC3i7PPwGmry3HNYE6loakkOE+UzyFxF3s6JVw7Ud+YbCj4BSqlu+RtmCaFe8NkaJiJa6nEdQEvVcxDdS8umfphhauCLFfzJYB8Nog1m6JSkZFccNMD/b/H8XFvzv3AAVFcimDtHwPbj2Mv8j3TG2u8Jw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>
Date: Thu, 18 Nov 2021 09:47:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
 <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0379.eurprd06.prod.outlook.com
 (2603:10a6:20b:460::12) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 98615384-9711-40b7-97ba-08d9aa70157f
X-MS-TrafficTypeDiagnostic: VI1PR04MB4382:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43822D3C1F16B096A9984FE7B39B9@VI1PR04MB4382.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hfaC0yFCzpEqn0CTFrW7Pu+c47RSzXMbrKxtiA/AIMgktUxP/95EWAZSaZT7yGsWQJ6uSh/UBLSQoWIcc/Vu7Vu7zbhH14QDdPdFxWnKHrrot+8aoYrSA/F0+93wnfbFB4+bxIFO5vZTSOassSFoq3Pi6+MELx/ia8dpF24G8gfv+PnJzhQDSMFkWbmE+kmlT4udy86tBEW7UfB8TCTlQtWULExlFu9DTKjgBlju/pb63/5r5v+4IeQNerquQ6AGYydP/0kCgPy+s6OShAnwMhgQynsZnDwoorm+c8jL1nY5cVJls0KgzJZw8vbZ1h7dqjKlbEmFTn7OhGpDRJvWQS75WJvZc8QPZJM7lCZxuWoLq5RIkHBeVliyGatw4gFFwLBLt9BwYtHVNgjPtHCU6wdFDGX2iEL9DUyecuXc3wHYN0QtM75gcGtIH4s1NesgIjBMD4bRjAjzwgQ47mObPw+S58ArslVjbv4wz9mhZkACA9ZCR0DGBs6xDvVFMlEQPM5hEefQEdE09Ee6PdhmihCTCw1iEoaOojn5gAX3v3AONTW+8G8KTqwvu/RQLkCAOkdrLAw0HLExCohX42bPP4M++OP+0jN3+kd28cm5PPl8lTRNhKrqgLJv5zs+gl94xqFfcOl7y6xWqVJLFqBXgmplcBWbMRXkp6wpzHw9XQSXWqSKSiSKffZNNaTKcw9zZIrTSG0/0N+eBvKE4JDgVsXKXCVOLNBFXXYJXDCqdzb8hUApYw3FZDx9uFYoVep4
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(2616005)(956004)(31686004)(86362001)(54906003)(316002)(37006003)(508600001)(6636002)(36756003)(8676002)(31696002)(186003)(2906002)(5660300002)(53546011)(66476007)(4326008)(26005)(8936002)(6862004)(6486002)(66556008)(66946007)(16576012)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UjJ2dElnTk04eEY5UFdyTGU4MGZRczJiS3pZV0w2WnVlVUx5T0lyajdZSHh2?=
 =?utf-8?B?RUZhdytUTnBLUktUVnUwbzJzRVVwYmVWemtaVEFpaFFrV29xWXpPS3NuUFBj?=
 =?utf-8?B?OVB1RUw4MEczdUM1M1VFV01JSm9qd2hFTFp4a05ManFZdTB3OWc5MFcrZ0pC?=
 =?utf-8?B?bzA3Y3ZiaHFiWGV3N2UzSkVSWDNuZ1NnMUZRSHh4TEFkYjVmcTgxeTFNd1pv?=
 =?utf-8?B?RTQ5cmptVE9XQ1QrK1cvMHVjS0VING92aFVIdlU3K3V5b25FZ0hwMytwQyth?=
 =?utf-8?B?cTlnb1RTNkZKbGFMSVp5Q0FHS2ExaURYWWx5ZEs0bG1RWjBSWGtuWlFQS3c2?=
 =?utf-8?B?NUNLTG5NdUZwUGZFbDdWcEszemREeGtWWHc1YjJsWnd0QXRYZ20vYVlJUGpi?=
 =?utf-8?B?eitjVU9vQmo4QWh6eHUzbWI0alRhUE0zZ0oyRUc2VHpxNE5YaUwvbDZhTkky?=
 =?utf-8?B?emgrR29SamZkbTJLSXRqNmlkd1pOWEhBWm5zMU9jeW1TQUtwV0JRUXRKaUN2?=
 =?utf-8?B?NE1JbUxNUzMrNjlyK05jQTZ1b2l1NkZBTktNakRMWWVLRC9nQkUvbHNsQTFV?=
 =?utf-8?B?Wkw3T1E5RkNob1g3THdLY3NxTWlickk1SmlKTWxlYThxWnAvSUljRDdmVHdo?=
 =?utf-8?B?WVcyeU1kUGN1bTl6RnZ0cVpxS090S21yNTAxdU1MOGpsMHdPdm80MWM5ZWhn?=
 =?utf-8?B?SGFkdHNra25naG1oWmhOTXYzbks2VzM4cW95d2tSTjh1czh4VDdSQ21KOUFm?=
 =?utf-8?B?VFlQYWdQVlF0TDlqN3FMWWgrNnBGcHplZHRTRWRLMmE0RTdHMUN3RGR1MlZo?=
 =?utf-8?B?VU5GV0VXa2lwOE5TR1dwVmFIcUNySG9xUDZoZUhzUFBURWtvR3llOGtpYVpy?=
 =?utf-8?B?MWcvaytJU2JVRGRsQUFJRWF5YWtZUjRLWlY4SkR4Tnd6MFhlV0lPTllqa1Y1?=
 =?utf-8?B?VHdqdTMwempHK1ZtaVlabWFKYWdPS1NGME82REQwdDJvWnRwZzRFWEdabjFu?=
 =?utf-8?B?OWd4UDFlS2ZmYTQxNzQyN0k0VEJVdlVwcnJtVDFKUFVlWmlvVE5KRzBqcm5T?=
 =?utf-8?B?enI4ZFNhbWFWS0pMd29uakZkb3lzeHlaT1pVb2ZvQStXMzdVOEMxcStjQ05y?=
 =?utf-8?B?cUx4V3dTcEwwbCtrYnFpN1hFYXRtSUZkaC96a0sxc2pDZjZVSEI3dzdaaWlp?=
 =?utf-8?B?UHZCT0xEVjFOZjc3RzI3SnJ3YW5BclhSUTAwaXJuV3orRTlKbEZ2dWt4WEli?=
 =?utf-8?B?b2VnOGdYQUJKNzhBcTZJbWh1cVNzcHNSendiTGJVNDg0QkoyVE1mWUVhdENS?=
 =?utf-8?B?Vm1TQml3cUwwN0x1aS9ZY1B1OTNQVHQ0Tkh0L3pGMGpFTVJJcnM2ZjZVVnpy?=
 =?utf-8?B?NlA3Q051R0tpTTMrWWQrZXU1Ky92N2dIcjc4Rk96WDVTN0NaRXJSSEdlVStH?=
 =?utf-8?B?N3l3cG5VeTRUeGllVURXVTB6SzlMRXZSWEwreFN6dXBKK3lRekhXenpUbHdK?=
 =?utf-8?B?TngwblhSTkpLRmVJdUJla3h5Z3oxQUF5aEMvZkZOT010Vld6b2FRdlUweDZN?=
 =?utf-8?B?THhhYk1VTHdGdGljREtIU09UUE0xL2psUFgyMm9RQ0VDb0RuVnhWKzhHZGp1?=
 =?utf-8?B?eUNmcGNXM0FGNjRMT2l0TFBaY1poYkJaWmxlY3lEZS9vcmMxUXZDbGZBMTNi?=
 =?utf-8?B?QmtJTTdBM0xRQkpsUmxqMlp6S2NHelVqOTlWdEhwRWZoVjBscDU2WThjdWVl?=
 =?utf-8?B?cUxwTFA5K1cwSTRSR2Z6V3o2UjdQbkFCbDFnMERFQXJ2Tm1WeUQ0SnBPSVlt?=
 =?utf-8?B?ZTJVQjlUcUNaRmcxOU1wSkxqa0VEMVhxakJ0dVNOZktlQnVsSU51UDBRK0dB?=
 =?utf-8?B?bXZuMFpTYklJaW4wSjZMdGhVT2g3aTUycHRBTnpwcEFxR0VHZkFiVWgrMHV5?=
 =?utf-8?B?QW9HaVBrSE5hRVBGcm5UY1ZobWFkSDFOZFJWR2xYVzhuUnlVb0VqZjhaSFIv?=
 =?utf-8?B?QmxkV3Q4em9EelRROVFRUWpUbTQyQXdTeHNnWVV4azVVdWxQL3dGdmdTMTc1?=
 =?utf-8?B?TGtCSlJjUTNEUGtEYk9OaGwwMEk3SU1JRWlLcks1TDNjV1pRdXQzSE13dkph?=
 =?utf-8?B?S1QreEI5SHByeXI2NUtZODlnMkhaZFNoSlAyanpQemF1bUdnclgraEQxZlNv?=
 =?utf-8?Q?4K9qwkXE3TG+tYIzopqLkQU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 98615384-9711-40b7-97ba-08d9aa70157f
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 08:47:42.4297
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UG9Wk6pItAaaLU9iv3+KOvK38P/0dlt5hDKKhvuVC1fv5Z0zsHfdwWW8Z6AcyM4HWcw8uQRnoIVZFDXSA/KsHw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4382

On 18.11.2021 06:32, Juergen Gross wrote:
> On 18.11.21 03:37, Stefano Stabellini wrote:
>> --- a/drivers/xen/xenbus/xenbus_probe.c
>> +++ b/drivers/xen/xenbus/xenbus_probe.c
>> @@ -951,6 +951,28 @@ static int __init xenbus_init(void)
>>   		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>>   		if (err)
>>   			goto out_error;
>> +		/*
>> +		 * Return error on an invalid value.
>> +		 *
>> +		 * Uninitialized hvm_params are zero and return no error.
>> +		 * Although it is theoretically possible to have
>> +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
>> +		 * not zero when valid. If zero, it means that Xenstore hasn't
>> +		 * been properly initialized. Instead of attempting to map a
>> +		 * wrong guest physical address return error.
>> +		 */
>> +		if (v == 0) {
> 
> Make this "if (v == ULONG_MAX || v== 0)" instead?
> This would result in the same err on a new and an old hypervisor
> (assuming we switch the hypervisor to init params with ~0UL).
> 
>> +			err = -ENOENT;
>> +			goto out_error;
>> +		}
>> +		/*
>> +		 * ULONG_MAX is invalid on 64-bit because is INVALID_PFN.
>> +		 * On 32-bit return error to avoid truncation.
>> +		 */
>> +		if (v >= ULONG_MAX) {
>> +			err = -EINVAL;
>> +			goto out_error;
>> +		}
> 
> Does it make sense to continue the system running in case of
> truncation? This would be a 32-bit guest with more than 16TB of RAM
> and the Xen tools decided to place the Xenstore ring page above the
> 16TB boundary. This is a completely insane scenario IMO.
> 
> A proper panic() in this case would make diagnosis of that much
> easier (me having doubts that this will ever be hit, though).

While I agree panic() may be an option here (albeit I'm not sure why
that would be better than trying to cope with 0 and hence without
xenbus), I'd like to point out that the amount of RAM assigned to a
guest is unrelated to the choice of GFNs for the various "magic"
items.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:52:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:52:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227205.392891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnd9E-00073S-Fh; Thu, 18 Nov 2021 08:52:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227205.392891; Thu, 18 Nov 2021 08:52:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnd9E-00073L-Bj; Thu, 18 Nov 2021 08:52:00 +0000
Received: by outflank-mailman (input) for mailman id 227205;
 Thu, 18 Nov 2021 08:51:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnd9C-00073F-C0
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:51:58 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8ee5047-484c-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 09:51:57 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2057.outbound.protection.outlook.com [104.47.2.57]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-32-Sjg6FybWPRK9RS8H9QDf4Q-1; Thu, 18 Nov 2021 09:51:55 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5168.eurprd04.prod.outlook.com (2603:10a6:803:56::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 18 Nov
 2021 08:51:53 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 08:51:53 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0001.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::14) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 08:51:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8ee5047-484c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637225516;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=FQX5CLDzlmQSnFZt5g8zkeAIoHqPfiG2F+Fiy0jggLg=;
	b=jqT1CEaBtIh6HQwcP6Ao5Ot/n2bKh+/mcneJVsL2Q7XeGO4dgVaQ01rWI+VvTXr8uMub3t
	KF9rroptPOst7hXvTud9VIYGNM1RCS5d7CC2mMfYDAuQ3aHPfRsuXx/dKIKzYb1vOalyab
	S4ps9BTOypVi6iv2hd+KXLw3S+Bor7I=
X-MC-Unique: Sjg6FybWPRK9RS8H9QDf4Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=A/bA7djiPnPxd5nxqf3faGe+Gxq8CeWSzr44+Dali7avGX54H1Kg0bDyz3yqo69q5bQm/d5nQ3iGrp6nCedIU1s0WbovSokymJwx+7Mo2DAM/0tdUhtfnWvHJsHDSPf7WOY8KgJp27GusvLgJ8VU/RJiGL5B+xMUCiDllz1bWaM6OvJrP1/feH2RI8LYxKnYu1D0kgz8VfE235VoH47dPHqF1JJ6FbfDdKBDuKGLO50ddZyhMR7OGq+JZ3F+LPQW3ORgNWcIUe+7HmKQEg4nSfiS8CKx+xRHnBv7kMrHojUh5v5VpdClKmKrh7WQtGwfeIOyhwJEztxdpiTBUmkwhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=t2bIi7qqVnbtprCFd8P/L6h6IbLumUmEouKCpGEjL+g=;
 b=jpnJc2dWjkbEYSd825/8oudT1mKDQBO1PzHOPlNyqyOw0fYoPJL3pDlItYhQWWevrl7NkNojiN3Zn1RhiuEiR7SzJIAvVcYWH/dQBS58XoeAaE7/A0arIE0sQukmce4V4DCO2nYddjB0tJoQyfx9lE3ajDDEYgcFWLTIUqiSw7nwfN8NvDuwbCmjC/tMOeJUfVVuQAGylCAtTrtneP6Yleaoo/S7nJ9qPkvOMDldL1AKpSky1fTSN4zpkWt6bWCkBRdkuq893E9aSovSQ/TMTiOg3DrREc/3lEfQFKdr58AtC4BTCjgbC9KVMNXQTE2uFw+MmP5PA99kdyHcswWLow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <def0133b-9eb2-44cd-33c3-39c9d0dca9f4@suse.com>
Date: Thu, 18 Nov 2021 09:51:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
 <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
 <24962.46376.136195.463274@mariner.uk.xensource.com>
 <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
 <67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
 <2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
 <YZYP3BpugHwOhNuV@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZYP3BpugHwOhNuV@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P195CA0001.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:81::14) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a8c89ace-8f07-475b-a8fe-08d9aa70ab30
X-MS-TrafficTypeDiagnostic: VI1PR04MB5168:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5168F3F698E1C9B74EAFDC24B39B9@VI1PR04MB5168.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Y7I7mzlkqfvgFbfhzJwAh25gtK0OCs6q7/NLJA8lO586k/AoEX9c/O5jZaU93VkSwsX6C1rzdjnlSw5Mv6IazNrd0Jis9YsNO7xAetTtiud5zaIoEbIKYNed8ApK/nIlqud4s/vxLasgBo9pxlSp0isjUAjwSQRxqcwGYJbMnrvAsL4ApEIttkeb8uMasPahTcLCi0Mu2mGGwd24dcIHKu9n+IDXbF5M7cLAk4YzgXXUfJN49bVf3hKBmMjIEticm2KN+yDf7X9WHvBEyZHRaVd81x4bXZrtAHiFkY+kKZarA4BDo4cmQVDSTwyTYZ4lZaHNO24p4WdNC8mo3VWPTzuvBAXmLEsv+kBMH28rNF3wuzkd1xSQnYB8KgKNZrGao0yO9/brp5pAu1y65Pf5JUO9D1S9JcOwp6UNbV4T0dSCib4HJZKyD5jlkR7K+BDftpji/0aAF5MnP9ZO4bXM8yW4/xNfSrbmRV9FJrj+mLYWKyGfC9oFIV09fo+2GZbiIrjFAQf6z0NiLm+mdGjt+06a3g3ulCVmGkl42MVk4mQiz0Wj1NA9FPlloqm9oo0lSWKfldSRbGIBbodKq8UEXGRIflFmWQ56sQJZNElCit7eV1bY5k2JbEKEEdmPp7H1u6JoYwJW7l+PK36ER7giSyPWO4YVsFBOAz/hxPiGh8PnaJauuyKLCIOLzIcwqfG84ybxkvCSihV3lUXLVP0ohUXmAxRnlrW17yk6AIJ8gNPiZBEGiuULyrVfmW614IftKQGnU7AkDH22IqOmo4LIRxw7jstEwuazM2YDlOwGtH5DGDTHqNh49+oYUJqYdpboCbIx3aSYYoIdqRfjEAekYg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(956004)(16576012)(508600001)(2906002)(31686004)(66556008)(186003)(66476007)(6486002)(2616005)(53546011)(26005)(54906003)(38100700002)(8676002)(31696002)(5660300002)(4326008)(8936002)(966005)(66946007)(316002)(6916009)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?DRDaBAULzr/63tmzqEzOd/FLTyNw+IGMViDKCL9xApUSRli6JEWLm+HCeBet?=
 =?us-ascii?Q?YQ6Vpjx3e8gH82RFo3j6X06Ng2b6SwqhcE828qJFvah/eP55jIY+MRDjbshY?=
 =?us-ascii?Q?p3VJm25G/aBrigqOPlZkF/t1Zrh+744m3F68IWurdW4cywCCfRbWYfpfErJw?=
 =?us-ascii?Q?h9qICAYhvWaw/6W612LUmFZs5pcHgHFscwa2oI2gvxFyElX061XFwDEO8Sv9?=
 =?us-ascii?Q?Vjbcz1w2xBR+KSvTQhkThDkazTKiLP8hOfX1BlY1McbecfSRwzU/Cr/L7lzt?=
 =?us-ascii?Q?pPuwR2x8RfawWPj+mqhcOsfOPlsGFJG/WsMsUk/CPKaxA9DOYul/+MDFiRXd?=
 =?us-ascii?Q?hb7MCze6ymwNN8CNF8ctVRzeHs52lJDLSJIaPM3n9FaMmlhMsrk/2BmDWVza?=
 =?us-ascii?Q?qrd0lIrCSiYj810iiONQ+9+X3YyvYzuNBS46gpelcx061FYLLMar8I2RrO8h?=
 =?us-ascii?Q?hoRDn7SiZVTcqRa126zEhnImCWVyXIwSzpdVbmPA38ylqLyxrHJuxFQzRR8t?=
 =?us-ascii?Q?rm03/qP5hhXbpO4V66GodYOhZyTiIzw35K2CgFc4z7piOvRfYpBTnCxWhrlF?=
 =?us-ascii?Q?vLcreDreptWm3ofN5KnuyS/TBTMlLZKAtoXE0+sgsdVFaGxOYWFVWvUXBXgV?=
 =?us-ascii?Q?pY7pHhBwcB9jiYxp2Fq3pstcRNJdm2lwiRhAny/s9kUJBJO2qqurCzKVdGBN?=
 =?us-ascii?Q?PPpxcmP7Oylc6bNAMarnTNwjnHrlLbGfyHWG/zOA+/95ir0yNZCZksnmlcOR?=
 =?us-ascii?Q?bvkXvY9UwP7cK2DlAWVOzQED+IlLB9/Fuz1SD35cI+tMDESVX/rdqKb1AUHA?=
 =?us-ascii?Q?9xYsGzCaM7EQ9nduy70t/Ryn+sFmzVIbZqFP/5tC9jKg4XBuII6rF2ViU42B?=
 =?us-ascii?Q?gyWKo3Y20m9lfiCn+qi4j0YOaoOBBSUOOULwsisk1vRTV0b6/jBtCqrJ337A?=
 =?us-ascii?Q?nK2Ir+bJluruc8kMR9ZfdOznJdJYyPh7w4hYbtw5lIyaraNZ1x5xmb0xTerK?=
 =?us-ascii?Q?L1Q6br/3e0dCwVN765whwkEfeltC4yOkkzGalntCVPLVyFD/IJDzbdQknR3A?=
 =?us-ascii?Q?olDZl/cT1esVFSFcuCWRJ2Rv6M3op5aD4/bx/bNcKEGQJi7bB5w8VmysEB10?=
 =?us-ascii?Q?8ndz02tvmMlfsjbr3XjmLnW7aAiP0k3jkGr4AGo6rm4xYeFekD1anYwtliGP?=
 =?us-ascii?Q?wVEnqxDFz413fEVBFNr85qwDHwtECuTNDQR92tsZRtRpGH2KoweOH/ZX9y5u?=
 =?us-ascii?Q?58keHTHzlEsYIpbiGdT8sj0dvj5H5wwxHDrEbJHuP2SrHyy40Lu1kgiTnglx?=
 =?us-ascii?Q?k0kksnnnMAMBBehe8nLAeFldD4OZo2EC3e7LR+jEKf02rQuZulbyNLsyLWns?=
 =?us-ascii?Q?O4KcbHRau6jtYGe4IJZZi2Aju3d10Dwuuvj+5VNCoGQf200PHG5IUwuClYR9?=
 =?us-ascii?Q?q/RGGBfgksbagez/wJTXkHujGqmWzVk1ge5llmPh3T4p7qrBwM8W1gV/gc1d?=
 =?us-ascii?Q?zF2MS0O5dIRpanDO2tcI/yWXAkk8k3INFPJWdZxbJU4cm2sJNSKaSjkSM6bX?=
 =?us-ascii?Q?bZVwM+KdNlwgeUJ/Ni0HDeOCpZg+OjoZxrhN+mgD+Xo0YZ1VagWif1UiEDQL?=
 =?us-ascii?Q?2kSpgkwL9Q04J1h8SkVV66w=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a8c89ace-8f07-475b-a8fe-08d9aa70ab30
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 08:51:53.5667
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JbUfLfjQHZB1vofL6ovzxlusrbaTqpltJ5gcgdXboHfX0oBJ3qNSWYtWdjMHrpUgfQZ2pBpOW8KAVJlw44eccg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5168

On 18.11.2021 09:33, Roger Pau Monn=C3=A9 wrote:
> On Thu, Nov 04, 2021 at 01:17:53PM +0100, Jan Beulich wrote:
>> On 04.11.2021 11:48, Andrew Cooper wrote:
>>> If your answer is "well actually, we didn't mean to say 'if a GSI is
>>> mapped' in the comment, and here's a different predicate which actually
>>> inspects the state of a dpci object for validity", then fine -=C2=A0 th=
at
>>> will shut the compiler up because you're no longer checking for the
>>> NULLness of a pointer to a sub-object of a non-NULL pointer, but that's
>>> a bugfix which needs backporting several releases too.
>>>
>>> The current logic is not correct, and does not become correct by trying
>>> pass blame to the compiler.
>>
>> I have yet to understand in which way you deem the current logic to not
>> be correct. I'm sorry for being dense.
>>
>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D102967 is the GCC bug, b=
ut
>>> the result of it was them persuading me that the diagnostic was
>>> legitimate, even if currently expressed badly.=C2=A0 They've agreed to =
fix
>>> how it is expressed, but I doubt you'll persuade them that the trigger
>>> for the diagnostic in the first place was wrong.
>>
>> Well, thanks for the pointer in any event. I've commented there as well.
>=20
> Did we get any resolution out of this?

I don't think we did. I'm still struggling to understand Andrew's way
of thinking.

> It would be good IMO if we could build out of the box with GCC 12
> instead of having to backport fixes later on.

I guess gcc12 is too far from getting released that there could be any
guarantee for no further issues to get exposed by that point. It has
also been common for us to backport fixes and workarounds when new
compiler versions appear.

I could agree to being proactive if the change to make to our code was
uncontroversial.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:53:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227209.392901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndAP-0007ch-PA; Thu, 18 Nov 2021 08:53:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227209.392901; Thu, 18 Nov 2021 08:53:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndAP-0007ca-MG; Thu, 18 Nov 2021 08:53:13 +0000
Received: by outflank-mailman (input) for mailman id 227209;
 Thu, 18 Nov 2021 08:53:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=l94Z=QF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mndAP-0007cU-5h
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:53:13 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5c03525-484c-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 09:53:12 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id B01551FD35;
 Thu, 18 Nov 2021 08:53:11 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7BBDC13CF6;
 Thu, 18 Nov 2021 08:53:11 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id ItXeHHcUlmEQYQAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 18 Nov 2021 08:53:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5c03525-484c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637225591; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=kb4waLBtBGSXHBRlUIyKFLdUUKY/+94sspf4DGh5uNQ=;
	b=QY+YOrdxtpHrGcCGhkhih+HiCvAEBJoMyKspFVIHYod3K9u1/U2wsVq0W6Q2rFa98WDnaz
	lTdmfLpr7cAOnfSDRrJMdtJCcyjn1tSTHLFyr+rwP/ACrllPWoc9DrlkOoU/1jQ/EoCgDD
	VmVPN/Lb9MT8UV38B+dNLpzZJflncvQ=
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
To: Jan Beulich <jbeulich@suse.com>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
 <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
 <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <b0cd6af9-66c4-3a73-734a-3a51d052fac2@suse.com>
Date: Thu, 18 Nov 2021 09:53:10 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="xzOlgh1CbAovcTzGLiZmCHxZ9bARs5goq"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--xzOlgh1CbAovcTzGLiZmCHxZ9bARs5goq
Content-Type: multipart/mixed; boundary="5BnwnPOSA5BhoJPL6QLfBvrjsgylFqXtS";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <b0cd6af9-66c4-3a73-734a-3a51d052fac2@suse.com>
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
 <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
 <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>
In-Reply-To: <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>

--5BnwnPOSA5BhoJPL6QLfBvrjsgylFqXtS
Content-Type: multipart/mixed;
 boundary="------------D1D8945FCC5D2D680FE05F6A"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------D1D8945FCC5D2D680FE05F6A
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 18.11.21 09:47, Jan Beulich wrote:
> On 18.11.2021 06:32, Juergen Gross wrote:
>> On 18.11.21 03:37, Stefano Stabellini wrote:
>>> --- a/drivers/xen/xenbus/xenbus_probe.c
>>> +++ b/drivers/xen/xenbus/xenbus_probe.c
>>> @@ -951,6 +951,28 @@ static int __init xenbus_init(void)
>>>    		err =3D hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>>>    		if (err)
>>>    			goto out_error;
>>> +		/*
>>> +		 * Return error on an invalid value.
>>> +		 *
>>> +		 * Uninitialized hvm_params are zero and return no error.
>>> +		 * Although it is theoretically possible to have
>>> +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
>>> +		 * not zero when valid. If zero, it means that Xenstore hasn't
>>> +		 * been properly initialized. Instead of attempting to map a
>>> +		 * wrong guest physical address return error.
>>> +		 */
>>> +		if (v =3D=3D 0) {
>>
>> Make this "if (v =3D=3D ULONG_MAX || v=3D=3D 0)" instead?
>> This would result in the same err on a new and an old hypervisor
>> (assuming we switch the hypervisor to init params with ~0UL).
>>
>>> +			err =3D -ENOENT;
>>> +			goto out_error;
>>> +		}
>>> +		/*
>>> +		 * ULONG_MAX is invalid on 64-bit because is INVALID_PFN.
>>> +		 * On 32-bit return error to avoid truncation.
>>> +		 */
>>> +		if (v >=3D ULONG_MAX) {
>>> +			err =3D -EINVAL;
>>> +			goto out_error;
>>> +		}
>>
>> Does it make sense to continue the system running in case of
>> truncation? This would be a 32-bit guest with more than 16TB of RAM
>> and the Xen tools decided to place the Xenstore ring page above the
>> 16TB boundary. This is a completely insane scenario IMO.
>>
>> A proper panic() in this case would make diagnosis of that much
>> easier (me having doubts that this will ever be hit, though).
>=20
> While I agree panic() may be an option here (albeit I'm not sure why
> that would be better than trying to cope with 0 and hence without

I could imagine someone wanting to run a guest without Xenstore access,
which BTW will happen in case of a guest created by the hypervisor at
boot time.

> xenbus), I'd like to point out that the amount of RAM assigned to a
> guest is unrelated to the choice of GFNs for the various "magic"
> items.

Yes, but this would still be a major tools problem which probably
would render the whole guest rather unusable.


Juergen

--------------D1D8945FCC5D2D680FE05F6A
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------D1D8945FCC5D2D680FE05F6A--

--5BnwnPOSA5BhoJPL6QLfBvrjsgylFqXtS--

--xzOlgh1CbAovcTzGLiZmCHxZ9bARs5goq
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGWFHYFAwAAAAAACgkQsN6d1ii/Ey9d
JAgAnAF6cjuPVg8/8DKqxz85cpVZJInLAjkVHghSLrOBHNBooBXCWWBKqPzBjLo40e1ggpexrB1S
mxAjTUPLej1P5wBPesPwQAf8Mvin9qwWe4fnKk/fVq/dtD0M8hXuJg6p6jNb4j6rsvMMAA50Ba91
vxQ1kfwW/bi1r3hxEEYHvMpZOfUOVvBN2nTsLVavX5uh6T/TZSwii60ByRUDjeh/fHTs3FnQKpnH
Z67XW3lMHevdBpMYmp5raimRlObeZmMbwg9I+FYl5SaSGzCBB0LE/MD5/srpe+U9gbWRXUOox6wE
M2Wpl2KdW8Zf+9iLWtVwdhad7ZfggMqQEqxuh7ueBw==
=McP0
-----END PGP SIGNATURE-----

--xzOlgh1CbAovcTzGLiZmCHxZ9bARs5goq--


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:54:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:54:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227214.392913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndBW-0008HX-7U; Thu, 18 Nov 2021 08:54:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227214.392913; Thu, 18 Nov 2021 08:54:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndBW-0008HQ-3a; Thu, 18 Nov 2021 08:54:22 +0000
Received: by outflank-mailman (input) for mailman id 227214;
 Thu, 18 Nov 2021 08:54:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mndBU-0008Bb-6D
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:54:20 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c9c6ba0-484d-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 09:54:18 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AI8n6if027124;
 Thu, 18 Nov 2021 08:54:14 GMT
Received: from eur04-db3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2052.outbound.protection.outlook.com [104.47.12.52])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cdk3n8408-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 08:54:14 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5697.eurprd03.prod.outlook.com (2603:10a6:208:176::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 08:54:09 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 08:54:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c9c6ba0-484d-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XINk84ylUMP7cwhHQ7XQVrH170b/IV6j1jCS90VvwAyt4Gqg6KvVTCiuwdUbm7is34fVvO8S04m0r1Ws8ZzgBavm45eA65QJwSZY5SaRsKn8nStFDWavs7ermbEtRLTb9gU6zMQ0IewPpId8W0dWkiqGZnlPRqzDvTjSFbOXMx3kvHv930yXGkY6V3UvDilsuntfgdJYlNswc8RkhtO0BaOVxzzrQ4Ko7KVUH9+l8UoNw13pIkI1+3ldFM34ToIApRn+TODvhO5k4bY0qHOtXrQi0Rm9NAL6RzcKgg7/KEdINSrV80uaRVB/WSiSC/3IA0I6/v0CtShyvqLj+TPfJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uj/uIIKXU/s44WxEWtoUbWliQGdPaL8j3VVnLTC5qAo=;
 b=RrcwMucngMjD6lCT6UEVXYuY0iuUqVGAv4qCo0pZ9arIXVIYu2xlrpoKiNzf1KXunNpFddS9Z0kSHzizpRVcFDEj2YQe/bXIakDsTEJBUTRAvDclac7wkHsyQSWU3hgINa2lOQVBcfIJk3doyEMbliOPgAkKIgSbcZMeg6pGir4KomKd4ZEoDySRAIqR4rpYZRxQZ5jUN7Hb2WQEi3b6ftzMtG7C3U8YMm4mw7ixWMoMBWNVXgvAiTbu0s/uCezEq5Fpah2At2cjwN3GY6Rafa0xp7nj404MhYcL8ERBHenV4PJuJ34aqM6mmmd/KpT+LI8+mW5Ebgtg8rwqfKE1pA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uj/uIIKXU/s44WxEWtoUbWliQGdPaL8j3VVnLTC5qAo=;
 b=Ca+pCc/7D2mqiiJfB4aaTGSIhckQNfo3ATRBlb/npeol4jVhDN0TUvB2F+1edcWLM4D+t0umzDaQij+wDC0DELoJbqg1cLlYhHteZ+rNnFgG/VEcwbvj2i5VsS0SWjsP+59rBxw7PoGY4SJNwOzAGXMKVXNUGHurvuQNQ66ME7L+s1oThuirnAcXgPRUDCV5IpMRzSwvwumFBk+qC+vZAu6NjUH9EEukOXjFTZPQrF7wn9UO431Fxjia/IKEK4HNHLxRGtM4RuKg+LadUNFp4T2yPFoEUk9gm1J8t/yBLdGvSe1O7HY5LZ2Oq5aMfWlQO3/mfMVLGMMlYTEm8RLZlg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkA
Date: Thu, 18 Nov 2021 08:54:09 +0000
Message-ID: <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
In-Reply-To: <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d0635d2f-8584-47aa-f84f-08d9aa70fc4b
x-ms-traffictypediagnostic: AM0PR03MB5697:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB56973BE0F1E8747037531873E79B9@AM0PR03MB5697.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 uRaRTiEOGLHcZ+huUSumwdDBlllxdTYpGESx/nkJTXfjxBUY62bZM1GLE2beTQ3aS50glVohmaXgnYnGPi29jcFB925TRd+Uc4Wi3XgSm15+GRY9JDjL2Zi2qhYYeS+OZZjl3QurDO10HjO+vEfhqv6V/m2tek1LGSKuqu3p2PGCOD1+L9J8oigOymz4PMW8tWaDqTUTXC4QRAl7gO3Da/NF6eeaLjgqNlX0jPcOYnT7nAbU5bCsPuxcJZuhoVy097h29NnWvOlwOJaW7AY7yPPWX8AOpRILEJsazEGX3G6wSayObmrMPQBkeqUXkcEEflZQvogk3xzC8Y7KD0O3Dfwufa0sFfp5sU3RM8zJrFgrWR8t47V3ZbTGHbbR5Uqai9dKF1+caTZz0ZDj1w+CGrI2on3slvHEkr7yYv83UA12jlT537UuLl+kLVxaRLxnGeQX57BRWg21QPyl1/Z3uP3oFMvGN3OstnFDZs6rv5ekFsBNa8MPYz6y6TkkuwwlSvZpX0g4wATZcrzcJSJ2pNTCjrFTT/42ediBUMzAiQrrZD2hR/qw8LVJ4aZUKCcjp/lLj90nLdqJXrKZ30j7xj3dxZSa7pufbJlvRwfGCVg9Amt6oTLQ1UHTlTYYVYG2hlyTU3luKRvPgRtp7oGaStJItVtkH4jldjZx+ghlcwm/jcL3HpA8kTE786NRBtVuUAfAZ+rwnqWrcz4VbE04mVFVIkQbmPL911DnASgZwZIFEcVf6SkMl3Xbfk9IUnQt
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38070700005)(6486002)(71200400001)(66946007)(186003)(31686004)(2906002)(38100700002)(316002)(7416002)(508600001)(6506007)(54906003)(53546011)(26005)(6916009)(6512007)(66556008)(8936002)(31696002)(8676002)(76116006)(86362001)(66446008)(5660300002)(66476007)(83380400001)(4326008)(64756008)(91956017)(107886003)(122000001)(2616005)(36756003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?TTFWNmVzZytoTXVVN0NsUHpkS3dhY2NJRzdTdXB4VmtKTE91ZXhnS1VuMXh2?=
 =?utf-8?B?aHMwWTBxMDV1YVRXL3VVY1lsNURtS1JSelREMitBaHB4VktOMGp5RU1QN0ZO?=
 =?utf-8?B?eXh4bUQ3OTFCU0xGbW1SakMyYzdJdE8vcy9KSGlJN2tkSDNYOHI0MDBwWXpk?=
 =?utf-8?B?ai84UDVEZEIzVmhnbTNxeDc1c2dZZUpRZzNQSFpxVEFhUUROY0NIb05rOTdS?=
 =?utf-8?B?WGR5L0IxY0J6K0RlY2hkMGN1L0VRc2hKQ1doWFNpS2ZrNW5QNnV3SStiMmox?=
 =?utf-8?B?VTJrTkZjZk4yMVdDa2RjdkFkWHJWZHN3dzNtalNFbW5EUGxtNUZRckhaZzFx?=
 =?utf-8?B?b1ZZdHBUZ2xMc29BR21oZXRqMHVYbTE1UGd4dkx4cFJUKzBMaFR6UVRyajdp?=
 =?utf-8?B?NkdZL1hpRGJ5QXRpY2piaVpxc0Fpa2hVSTlyOHFnYWxDNm9VRTR3Q2dLTTBJ?=
 =?utf-8?B?TlZ6aFR0THdRaER2L0ZYRjNqdDc0L0I0eDdtUEM4RUp0Y3FBTGlPUHI3YVJj?=
 =?utf-8?B?S1Y2RVc5S2JsU2Y0c0laRm95Z0duamZNaWZvbk5CT3NuRUlSZkNuYkczQnRE?=
 =?utf-8?B?MVdnVWE4NUtUbjEzUjNTR0FXMTFadjBFVDFoTjJIYjU5aW9WVFVHT0h4NTFj?=
 =?utf-8?B?V1hkWDZCV25nMWczQmpPYk8xUWR4WFkxS3M2clVLVXBHeXN6M0Y3RDlIeHZU?=
 =?utf-8?B?ZkVBR2x2TC9nUEJHR093R2lXRVZOckRtMnlsa3lFd1E4OHJnWEY0YWlidHRN?=
 =?utf-8?B?Y2pId1FVbmV6N3hPYmdqM3BzNklGK21BQjcyUm5oZ2YrZEliTjZzQmF3Z1pN?=
 =?utf-8?B?c0VlQXYrMnYzTll6RHBvbDI2S2Ryd0NESWloVDJVNDhvSGFaL0ZZZzZ4V0d2?=
 =?utf-8?B?SWJsU3J2dzgxRlNRRkNQNWRnQjZrSGkrTDRPczI4K2dLNGxDd1R1enNPUEJl?=
 =?utf-8?B?ang5ZTUyUHhKYk5rTDhTWGFDazNkT3hXaG5vb2JCOFQ2QVlnOVlIREQwMGhS?=
 =?utf-8?B?NGRlZFhFV2c2cmkyWDNkTTVzZ3JudEd4TElMbmhhMlhZejQrZW5na25sVXEv?=
 =?utf-8?B?bG4zQmRKeUJ4cEM5RlBNQmhuZEdjaWpOcWplU0xXVEFaZHFRa3ExcXNXaVQ3?=
 =?utf-8?B?cmpObE5oNmpPdWhBUGl3NmI4cE5TaVdIN3oyNHIzbmF1a3N3dzdxQTF0U1FV?=
 =?utf-8?B?a1orbXFmZ0ZNcEIzZTh5Z20zMVZCSi95WHdpQUFoV3hEN1JwQUFsK0VpMHN0?=
 =?utf-8?B?ejlhVUhPRXQ4TUdXVnJvbVU4WmExVVJYMTRadzlxRnBqMTJ0Sk1WTTNSM3Rv?=
 =?utf-8?B?cXJEY0xOTm1pVTcxMVU1SlI2NzJsNVgreEJ2VTRWN1N3MkdEeS8vTmVLUlJX?=
 =?utf-8?B?UmFRZmljaEJuanR2bkQrVTBZeENEWElZd2xzb1c2blA2bm1sZk5IT2EzSFIr?=
 =?utf-8?B?c0xXRGc5S0Q0Q0txU1l6YUVzMDBxMFYydUlreEJoaDVySGJwb0prV2RHWGwv?=
 =?utf-8?B?UzZQK2hZYXhtZjB6S3kvenlSZGc5Q09Sc1FidXNsMVFaazRNa3JGVURGRktL?=
 =?utf-8?B?a3ZmNGQ2MSt5RHFRejVaTGFZYWVlaW5WN01XaTFVOGRMUS8wMWZrRU5tV2lj?=
 =?utf-8?B?b3lnZjNYaEZOaHlrY05LdlkrZjB2cGcyYTVUNDBMWUxWd1JwNE5IT1RRRmxQ?=
 =?utf-8?B?RTdqUGQ3UHlpYkFoV1JLK0s4SlJjNmtUK2FOVHJQVC9KTmJZd2RCbGp4TGNM?=
 =?utf-8?B?UFRoeE5EUXRwa3V2NlJ5bncxYzNoa2JZa2lDS2ZEYWZ3elNZWkdwTzFRV0FV?=
 =?utf-8?B?dTA3VFpzQythdS9HMzRzU0RwVFVGVWNkcjNsMGh1VHR0OWdCOHZtRys5Mi9v?=
 =?utf-8?B?T0I0ZVZqcmpRQkx2anNabUUrdnk2ZnJLNFJoTGxxM3B2TEtmc29zbk9mdUFX?=
 =?utf-8?B?cElpVEZucEpsaFNHNG96a1ZnQXdZc2U2dTlVbjlKNzVmSFVZOFhoOTNvQkt3?=
 =?utf-8?B?ZEdZMmRZZ3ViYXVUTFE2enhxR0ZaOGsraU85L3M3SmVtb3ovVmhrNVlLRGRl?=
 =?utf-8?B?Zi9DYjQzYzAvLzNkbi9PbUpRazBETUpmYjFPeWVDeW16WjVObkszUnNZTU5Z?=
 =?utf-8?B?MlJmZ200ZWhMa1NqbHExZG1sa1ZJd1NnTkxIZDBIWDh6RUZwaUlRSnp1K01u?=
 =?utf-8?B?MVMwT1VUQ1FtR0VyN2J0Nm1FV1phN2ZhOGQ5OHgwdGJwM0kyRGRpM2lRbjYx?=
 =?utf-8?B?dzNhaytOWDBLNGtzeTFzUEZIREw0T0RwRExjSkFORUQ0aUtPdGhocll1c1g4?=
 =?utf-8?B?Y09Cd2w5dHVrR3dBVkdlVGhqZnhTU2FVQmc4Y2VUWHVmYitJcFdYUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E5376CC192A65B488A88F7E75EBD0B76@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d0635d2f-8584-47aa-f84f-08d9aa70fc4b
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 08:54:09.3799
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: KFhRwX2tmf+Pgimjdv9y/baE8o+EhswFn06PcPLPqml4rZowLZDcSUpUc4nFuT6TZDj6zcQ+mxqsEyZhd8BKmEPgZCgjYznR5re+ovEaRmA0heb1rqrePvDRcJT0PzYX
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5697
X-Proofpoint-ORIG-GUID: D9XOwTWYKYjgLA29ti3U8ZpEhsRfuQvY
X-Proofpoint-GUID: D9XOwTWYKYjgLA29ti3U8ZpEhsRfuQvY
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_04,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0
 mlxscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0
 suspectscore=0 mlxlogscore=939 priorityscore=1501 clxscore=1015
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180052

DQoNCk9uIDE4LjExLjIxIDEwOjM2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTguMTEuMjAy
MSAwODo0OSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMTcuMTEu
MjEgMTA6MjgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pj4+DQo+Pj4+IFdo
ZW4gYSB2UENJIGlzIHJlbW92ZWQgZm9yIGEgUENJIGRldmljZSBpdCBpcyBwb3NzaWJsZSB0aGF0
IHdlIGhhdmUNCj4+Pj4gc2NoZWR1bGVkIGEgZGVsYXllZCB3b3JrIGZvciBtYXAvdW5tYXAgb3Bl
cmF0aW9ucyBmb3IgdGhhdCBkZXZpY2UuDQo+Pj4+IEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5n
IHNjZW5hcmlvIGNhbiBpbGx1c3RyYXRlIHRoZSBwcm9ibGVtOg0KPj4+Pg0KPj4+PiBwY2lfcGh5
c2Rldl9vcA0KPj4+PiAgICAgIHBjaV9hZGRfZGV2aWNlDQo+Pj4+ICAgICAgICAgIGluaXRfYmFy
cyAtPiBtb2RpZnlfYmFycyAtPiBkZWZlcl9tYXAgLT4gcmFpc2Vfc29mdGlycShTQ0hFRFVMRV9T
T0ZUSVJRKQ0KPj4+PiAgICAgIGlvbW11X2FkZF9kZXZpY2UgPC0gRkFJTFMNCj4+Pj4gICAgICB2
cGNpX3JlbW92ZV9kZXZpY2UgLT4geGZyZWUocGRldi0+dnBjaSkNCj4+Pj4NCj4+Pj4gbGVhdmVf
aHlwZXJ2aXNvcl90b19ndWVzdA0KPj4+PiAgICAgIHZwY2lfcHJvY2Vzc19wZW5kaW5nOiB2LT52
cGNpLm1lbSAhPSBOVUxMOyB2LT52cGNpLnBkZXYtPnZwY2kgPT0gTlVMTA0KPj4+Pg0KPj4+PiBG
b3IgdGhlIGhhcmR3YXJlIGRvbWFpbiB3ZSBjb250aW51ZSBleGVjdXRpb24gYXMgdGhlIHdvcnNl
IHRoYXQNCj4+Pj4gY291bGQgaGFwcGVuIGlzIHRoYXQgTU1JTyBtYXBwaW5ncyBhcmUgbGVmdCBp
biBwbGFjZSB3aGVuIHRoZQ0KPj4+PiBkZXZpY2UgaGFzIGJlZW4gZGVhc3NpZ25lZA0KPj4+Pg0K
Pj4+PiBGb3IgdW5wcml2aWxlZ2VkIGRvbWFpbnMgdGhhdCBnZXQgYSBmYWlsdXJlIGluIHRoZSBt
aWRkbGUgb2YgYSB2UENJDQo+Pj4+IHt1bn1tYXAgb3BlcmF0aW9uIHdlIG5lZWQgdG8gZGVzdHJv
eSB0aGVtLCBhcyB3ZSBkb24ndCBrbm93IGluIHdoaWNoDQo+Pj4+IHN0YXRlIHRoZSBwMm0gaXMu
IFRoaXMgY2FuIG9ubHkgaGFwcGVuIGluIHZwY2lfcHJvY2Vzc19wZW5kaW5nIGZvcg0KPj4+PiBE
b21VcyBhcyB0aGV5IHdvbid0IGJlIGFsbG93ZWQgdG8gY2FsbCBwY2lfYWRkX2RldmljZS4NCj4+
Pj4NCj4+Pj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5k
cl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPj4+IFRoaW5raW5nIGFib3V0IGl0IHNvbWUgbW9y
ZSwgSSdtIG5vdCBjb252aW5jZWQgYW55IG9mIHRoaXMgaXMgcmVhbGx5DQo+Pj4gbmVlZGVkIGlu
IHRoZSBwcmVzZW50ZWQgZm9ybS4NCj4+IFRoZSBpbnRlbnRpb24gb2YgdGhpcyBwYXRjaCB3YXMg
dG8gaGFuZGxlIGVycm9yIGNvbmRpdGlvbnMgd2hpY2ggYXJlDQo+PiBhYm5vcm1hbCwgZS5nLiB3
aGVuIGlvbW11X2FkZF9kZXZpY2UgZmFpbHMgYW5kIHdlIGFyZSBpbiB0aGUgbWlkZGxlDQo+PiBv
ZiBpbml0aWFsaXphdGlvbi4gU28sIEkgYW0gdHJ5aW5nIHRvIGNhbmNlbCBhbGwgcGVuZGluZyB3
b3JrIHdoaWNoIG1pZ2h0DQo+PiBhbHJlYWR5IGJlIHRoZXJlIGFuZCBub3QgdG8gY3Jhc2guDQo+
IE9ubHkgRG9tMCBtYXkgYmUgYWJsZSB0byBwcmVtYXR1cmVseSBhY2Nlc3MgdGhlIGRldmljZSBk
dXJpbmcgImFkZCIuDQo+IFlldCB1bmxpa2UgZm9yIERvbVUtcyB3ZSBnZW5lcmFsbHkgZXhwZWN0
IERvbTAgdG8gYmUgd2VsbC1iZWhhdmVkLg0KPiBIZW5jZSBJJ20gbm90IHN1cmUgSSBzZWUgdGhl
IG5lZWQgZm9yIGRlYWxpbmcgd2l0aCB0aGVzZS4NClByb2JhYmx5IEkgZG9uJ3QgZm9sbG93IHlv
dSBoZXJlLiBUaGUgaXNzdWUgSSBhbSBmYWNpbmcgaXMgRG9tMA0KcmVsYXRlZCwgZS5nLiBYZW4g
d2FzIG5vdCBhYmxlIHRvIGluaXRpYWxpemUgZHVyaW5nICJhZGQiIGFuZCB0aHVzDQp3YW50ZWQg
dG8gY2xlYW4gdXAgdGhlIGxlZnRvdmVycy4gQXMgdGhlIHJlc3VsdCB0aGUgYWxyZWFkeQ0Kc2No
ZWR1bGVkIHdvcmsgY3Jhc2hlcyBhcyBpdCB3YXMgbm90IG5laXRoZXIgY2FuY2VsZWQgbm9yIGlu
dGVycnVwdGVkDQppbiBzb21lIHNhZmUgbWFubmVyLiBTbywgdGhpcyBzb3VuZHMgbGlrZSBzb21l
dGhpbmcgd2UgbmVlZCB0byB0YWtlDQpjYXJlIG9mLCB0aHVzIHRoaXMgcGF0Y2guDQoNCkFub3Ro
ZXIgc3RvcnksIHdoaWNoIEkgYW0gZ2V0dGluZyBtb3JlIGNvbnZpbmNlZCBub3csIGlzIHRoYXQN
CnRoZSBwcm9wZXIgbG9ja2luZyBzaG91bGQgYmUgYSBkZWRpY2F0ZWQgcGF0Y2ggYXMgaXQgc2hv
dWxkIG5vdCBvbmx5DQphZGQgbG9ja3MgYXMgcmVxdWlyZWQgYnkgdGhpcyBwYXRjaCwgYnV0IGFs
c28gcHJvYmFibHkgcmV2aXNpdCB0aGUNCmV4aXN0aW5nIGxvY2tpbmcgc2NoZW1lcyB0byBiZSBh
Y2NlcHRhYmxlIGZvciBuZXcgdXNlLWNhc2VzLg0KPg0KPj4+ICAgIFJlbW92YWwgb2YgYSB2UENJ
IGRldmljZSBpcyB0aGUgYW5hbG9ndWUNCj4+PiBvZiBob3QtdW5wbHVnIG9uIGJhcmVtZXRhbC4g
VGhhdCdzIG5vdCBhICJiZWhpbmQgdGhlIGJhY2tzIG9mDQo+Pj4gZXZlcnl0aGluZyIgb3BlcmF0
aW9uLiBJbnN0ZWFkIHRoZSBob3N0IGFkbWluIGhhcyB0byBwcmVwYXJlIHRoZQ0KPj4+IGRldmlj
ZSBmb3IgcmVtb3ZhbCwgd2hpY2ggd2lsbCByZXN1bHQgaW4gaXQgYmVpbmcgcXVpZXNjZW50ICh3
aGljaCBpbg0KPj4+IHBhcnRpY3VsYXIgbWVhbnMgbm8gQkFSIGFkanVzdG1lbnRzIGFueW1vcmUp
LiBUaGUgYWN0IG9mIHJlbW92aW5nIHRoZQ0KPj4+IGRldmljZSBmcm9tIHRoZSBzeXN0ZW0gaGFz
IGFzIGl0cyB2aXJ0dWFsIGNvdW50ZXJwYXJ0ICJ4bCBwY2ktZGV0YWNoIi4NCj4+PiBJIHRoaW5r
IGl0IG91Z2h0IHRvIGJlIGluIHRoaXMgY29udGV4dCB3aGVuIHBlbmRpbmcgcmVxdWVzdHMgZ2V0
DQo+Pj4gZHJhaW5lZCwgYW5kIGFuIGluZGljYXRvciBiZSBzZXQgdGhhdCBubyBmdXJ0aGVyIGNo
YW5nZXMgdG8gdGhhdA0KPj4+IGRldmljZSBhcmUgcGVybWl0dGVkLiBUaGlzIHdvdWxkIG1lYW4g
aW52b2tpbmcgZnJvbQ0KPj4+IHZwY2lfZGVhc3NpZ25fZGV2aWNlKCkgYXMgYWRkZWQgYnkgcGF0
Y2ggNCwgbm90IGZyb20NCj4+PiB2cGNpX3JlbW92ZV9kZXZpY2UoKS4gVGhpcyB3b3VsZCB5aWVs
ZCByZW1vdmFsIG9mIGEgZGV2aWNlIGZyb20gdGhlDQo+Pj4gaG9zdCBiZWluZyBpbmRlcGVuZGVu
dCBvZiByZW1vdmFsIG9mIGEgZGV2aWNlIGZyb20gYSBndWVzdC4NCj4+Pg0KPj4+IFRoZSBuZWVk
IGZvciB2cGNpX3JlbW92ZV9kZXZpY2UoKSBzZWVtcyBxdWVzdGlvbmFibGUgaW4gdGhlIGZpcnN0
DQo+Pj4gcGxhY2U6IEV2ZW4gZm9yIGhvdC11bnBsdWcgb24gdGhlIGhvc3QgaXQgbWF5IGJlIGJl
dHRlciB0byByZXF1aXJlIGENCj4+PiBwY2ktZGV0YWNoIGZyb20gKFBWSCkgRG9tMCBiZWZvcmUg
dGhlIGFjdHVhbCBkZXZpY2UgcmVtb3ZhbC4gVGhpcw0KPj4+IHdvdWxkIGludm9sdmUgYW4gYWRq
dXN0bWVudCB0byB0aGUgZGUtYXNzaWdubWVudCBsb2dpYyBmb3IgdGhlIGNhc2UNCj4+PiBvZiBu
byBxdWFyYW50aW5pbmc6IFdlJ2QgbmVlZCB0byBtYWtlIHN1cmUgZXhwbGljaXQgZGUtYXNzaWdu
bWVudA0KPj4+IGZyb20gRG9tMCBhY3R1YWxseSByZW1vdmVzIHRoZSBkZXZpY2UgZnJvbSB0aGVy
ZTsgcmlnaHQgbm93DQo+Pj4gZGUtYXNzaWdubWVudCBhc3N1bWVzICJmcm9tIERvbVUiIGFuZCAi
dG8gRG9tMCBvciBEb21JTyIgKGRlcGVuZGluZw0KPj4+IG9uIHF1YXJhbnRpbmluZyBtb2RlKS4N
Cj4gQXMgdG8gdGhpcywgSSBtZWFud2hpbGUgdGhpbmsgdGhhdCBhZGQvcmVtb3ZlIGNhbiB2ZXJ5
IHdlbGwgaGF2ZSBEb20wDQo+IHJlbGF0ZWQgdlBDSSBpbml0L3RlYXJkb3duLiBCdXQgZm9yIERv
bVUgYWxsIG9mIHRoYXQgc2hvdWxkIGhhcHBlbg0KPiBkdXJpbmcgYXNzaWduL2RlLWFzc2lnbi4N
ClllcywgSSBhZ3JlZS4gVGhlIG1vZGVsIEkgYWxzbyBzZWUgaXM6DQotIGZvciBEb20wIHdlIHVz
ZSBhZGQvcmVtb3ZlDQotIGZvciBEb21VcyB3ZSB1c2UgYXNzaWduL2RlLWFzc2lnbg0KPiAgIEEg
ZGV2aWNlIHN0aWxsIGFzc2lnbmVkIHRvIGEgRG9tVSBzaW1wbHkNCj4gc2hvdWxkIG5ldmVyIGJl
IHN1YmplY3QgdG8gcGh5c2ljYWwgaG90LXVucGx1ZyBpbiB0aGUgZmlyc3QgcGxhY2UuDQpEb3Vi
bGUgdGhhdA0KPg0KPiBKYW4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 08:59:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 08:59:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227220.392924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndGD-0000XZ-Qt; Thu, 18 Nov 2021 08:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227220.392924; Thu, 18 Nov 2021 08:59:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndGD-0000XS-Mz; Thu, 18 Nov 2021 08:59:13 +0000
Received: by outflank-mailman (input) for mailman id 227220;
 Thu, 18 Nov 2021 08:59:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=45Id=QF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mndGC-0000XM-BB
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 08:59:12 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cad55156-484d-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 09:59:10 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cad55156-484d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637225950;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=82QRVKSiGkrj/VwbO2eXYfxHzf6wpsPUGqTOg1nVNBE=;
  b=Ljz09726nUrjvGM1MeTj0QzEabCt7aEi7nO/A7gjE3wlCfh03wf6BGUT
   A7HymvVyncXN/Aa6ck8La7mLCnvO7GTumxHOIbUOIlYkWRykHsHrCo7YQ
   oR0PoPkZAP735vxsB4bbFbLt4eJoi7vx+ttMGUbPyWO8JHiKq7vjm/isp
   I=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: a8aZSed7UGJLtP8HRYEwH8c1G7ozkHw72h+m6stEpoQQ769xMNFt5Ouc/0/Yfx782UJNdhFQBc
 PdwkfO4z6MTPD67Ps7xUpukaPy3tS8wiwXjtcUfUgSv32dhEs9fT26fRc/1SmiZSpY93qKeBFN
 hpc3Ue7I0Tw0hq8YH8F5xSvMNW1pt0oEf+nnfKTTbhAculiQ0EYEDn4ZLxdqI5KQtxUJghDlCQ
 SFLwWIJLiGkG+0BHjchQPEW0nbt0UIhIt85E8+h9HmfE77IHxDJ+kQFxoC9YMNW2485lc6HW3h
 gFThVxQ2nW1MQ37Y3O7mnMRc
X-SBRS: 5.1
X-MesageID: 60091056
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:AuWz9KrPoThNM5htnJh4LFjvrk1eBmI9YRIvgKrLsJaIsI4StFCzt
 garIBmPb6zeZWr8fNklOonnoRgGvcPXzt9gG1FtqiBnF3lA9JuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IHpW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnYyUbVolA62QofpDVDNmLgN0God8oaCSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFJkYtXx6iynQEN4tQIzZQrWM7thdtNs1rp4WRaeHP
 5dHAdZpRBD4RkReHUUSM5JksdaInHn2KSdm9HvA8MLb5ECMlVcsgdABKuH9d9iHQ8wTg0iZo
 37d8nrwKhYAPdebxHyO9XfEru7QnwvrVYQKDrq6+/V2xlqJyQQ7BBQIWHOhrPK+i0r4XMhQQ
 2Qf8zAiqqUa/0WxQt7wGRa/pRasvBEGXMFLO/Yn8wzLwa3Riy6bG2wFQzhpeNEg8sgsSlQC1
 FWEgtfoDjxHq6CORDSW8bL8hTG1IihTMm8DeSIEQAIJy9Xkuoc+lA3IVNV4VqWyi7XdCTz2h
 jyHsiU6r7ESltIQkbW2+0jdhDChrYSPSRQ6ji3eWmO+8gp4fsirfYWu4lnAxelMJ8CSSVzpl
 HMDns2D6uESHNeInSqET+gXNKGk4e6fNz/RikIpGIMunxyv5njle4lT6TN/IU5BM8AYdDuva
 0jW0Std65NeM2GjRbNmaIK2TcIxxO7vEsqNfvzaZ9VBY591dSec4TpjI0WX2gjFmk8mm7AyI
 peffMOlC14VDK1myHy9QOJ1+bQr3CEl2WTLRZ3hiQvh2r6Xfn29RrIMMV/IZec8hIuHrRvU9
 ZBDNsKM4xRZTOD6JCLQ9OY7NksWJHI2AZT3rc1/deOZJAdiXmY7BJf52q8sZIV/g+JVl+PE8
 3unU0lU4Fb4n3vKMxqNcHN4LrjoWP5Xtns+ICEoe0qo2nIqfIKzxKoZbN4zbL4hsut5wpZcV
 eIFYcSaC/FnQS+B5j4WK5L0xKR8cxCsiROLLjCSajE1dJ59RCTE4tbhOADo8UEmJCetqdE3p
 bHm8wrBWIcCXCxrFsOQY/Wqp3uttH0Ug8puXE/FJNZCdUGq+49vQwTtj/ofM8wKbxLZyVOy0
 g+MBB4CqOrlookr8cLIj6SJs4eoFeRlGkNQWWLc6N6eMCTc8Xq+6YRBS6CVZT3bUiX59LjKT
 fpR5+HxNrsAhlkim4l7FaxiweQh5t/sj7hAxw9gETPAaFHDIqp9K3/AzdQXnqJIz75d/wCxX
 yqnwNBaJLHPA8LjH145LRAgKO+E0Jk8gD7J5+4yJ0b8zCZ2+rSASkhZeRKLjUR1NLJoNKs1z
 OFnv9QZgzFTkTJzbIzA1HoNsT3RcDpQCM3Lq632Hqf7ri52xmxCPaXCVCjc3qytYfJmCBA1d
 2r8aLX5u5xQwU/LcnwWHHfL3PZAiZlmhC2m3GPuNHzSxIOb26ZfMAl5tG1uE18LlkkvP/dbY
 zAzbyVIybOyEyCEbSSpd0SlAEl/CRKQ4SQdIHNZxTSCHyFEuoEgRVDR2NphHmhFowqwnRABp
 dl0LVoJtx6wIKkdOQNoByZYRwTLF4AZy+E7sJnP8z65N5c7eyH5paSleHAFrRDqaeto2haY/
 LY2obogNP2hXcL1n0HdI9PGvVj3YEraTFGuvNk7pP9ZdY0iUG/aNceyx7CZJZoWeq2iHb6QA
 M1yPMNfPylSJw7Vxg338ZUkeucu9NZwvYJqUuqyeQYu7uvOxhI04cm43nWv2wcWryBGzJ9Vx
 nX5LGnZTAR9RBJ8xgfwkSWzEjbiPIRfOlSjhLvdHSdgP8trjdyAuHoai9Ocl36ULBFm71STu
 gbCbLXR1Ots1cJnmI6EL0mJL1zcxQrbWLva/Qatnc5JaN+TY87CuxlM8gvsPhhMPKtXUNNyz
 OzfvNny1ULDnbA3T2GGxMXRS/gXvZ2/DLhNL8b6DHhGhi/eCsXi1AQOpjKjIptTndIDusT+H
 1mkaNG9fMI+UstGwCEHcDBXFhsQUvylbqrpqS6nge6LDxwRjV7OIN+9rCe7ZmBHbC4YfZb5D
 1as6fqp49lZqqVKBQMFWK46U8Mpfge7VPJ/JdPrtDSeAm25uX+4u+PvxUg69DXGKniYC8Kms
 5jLcQfzKUaps6bSwdAH74Er5k8LDGxwiPUbd14G/4IkkCizCWMLILhPMZgCDZ0IwCX+2IuhO
 WPIZWomTy78QS5FYVP359G6BlWTAekHO9HYID01/hzLN3fqVd3YWLYxpD1953pWeyf4yLD1I
 N4TzXT8Ixytz8w7Xu0U/PG63b9qy/6yKqjkIqwhfxge2yojPIg=
IronPort-HdrOrdr: A9a23:1LUNaKxPtP5AcJqgftdKKrPxveskLtp133Aq2lEZdPULSKOlfp
 GV8MjziyWYtN9wYhAdcdDpAtjmfZr5z+8O3WB3B8beYOCGghrSEGgG1+XfKlLbak/DH4JmpM
 Jdmu1FeaHN5DtB/LfHCWuDYq8dKbC8mcjC74eurAYccegpUdAZ0+4QMHfkLqQcfnghOXNWLu
 v52iIRzADQBkj/I/7LS0XsGIP41qn2vaOjRSRDKw8s6QGIgz/twLnmEyKA1hNbdz9U278t/U
 XMjgS8v8yYwr6G4y6Z81WWw4VdmdPnxNcGLMuQivINIjGprgqzfoxuV5CLoThwiuCy71QBls
 XKvn4bTohOwkKUWlvwjQrm2gHm3jprw3j+yWWAiX+mmsD9TCJSMbsIuatpNj/ir2YwttB116
 xGm0iDsYBMMB/GlCPho/DVShBDjCOP0DofuN9Wq0YafZoVabdXo4Ba1lhSCo08ECXz751iOP
 VyDfvb+O1dfTqhHjHkV1FUsZ6Rt0kIb1K7qhBogL3Q79EWpgE286Ig/r1dop9an6hNDKWt5I
 z/Q+1Vff91P4krhJlGdZU8qP2MexrwqCL3QRGvyGvcZdQ60lL22tXKCeYOlauXkKJh9upEpH
 2GaiIAiVIP
X-IronPort-AV: E=Sophos;i="5.87,244,1631592000"; 
   d="scan'208";a="60091056"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oScisQC5ZJs5Baw/zUcSSEdC9TsN2eEgTfdgtzy3HKJbvCvQa8zvihM9K8cqGRPgbayE5VW4lW8j21VPBMGZFPRIJ1U0/P9LoBhbX+c/+8JxFrmHl3R6P9j7hMp2sAdnUtRMVHADrNdIvoys6nmhLknONFxDgZtqtSDzuN2m0HAF/Zx8huUYU6g+yPhoDk0I9M50CQG5dfbB/q+d2+ETlS/SRpiIpve3sJRzXJ+UfY1M26F5VoMPDqO8kKOh/xvnUpa9gvkASr8kqeHyyq/la9jeWtUiG76KljwTarBIJH1sgXQ/zuiV4TZWbMxb5N4w/VStLlta8LpAZa1uVyGZ/A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IEX1xw0cZdmzj/VGFU5T0ar5GeQz/UjN34d6/Thshvw=;
 b=Wt6PB+4aAjXh0GPHrPo0hzD1HvfRnvO/xp5OiBV3mJTENbRgFKfi5ppIbeZF+7YxNB9CofXKcH3a4CAQ6YpbHOItYvRWLuFnGMZjLQUMN39IWqhFiXYeFcYlT4eqN3v0QQCl1i13YCNtNASaOvkYZjYcNzTTQNNYR7Y38KmLE5MD2XQepPtOkmu+uvkhZqiFSCOxwzbHH0vMs8Yzh/Ip9y4uh9PeFtPUCduOAJlfx+jG4TVvnnaMol7Yi/DnwHSBLSKooC4sNM9CJE7MOD8OoT5ZDi2jfmNzw1DzhL1liPNiUOdoyYgvI7AvH1elmV/DsoeYk7kYQvtXFxI6Y3X2xA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IEX1xw0cZdmzj/VGFU5T0ar5GeQz/UjN34d6/Thshvw=;
 b=bOB4O4Li+zDWtT+OIHE6bw/wnQcNbbtI21EjdjGBq7uRwYURW0QNO1RlNsG7p9x8+DrNLvikgEGtIVgL9gQhGgIGEu5TdoR20ziZZXXSarA4QPquGKuEEUi14Br+DJtdp5wNk+CU8wYcN/tYhnwcGTQmIl+ylypl2lL0I9EdkT4=
Date: Thu, 18 Nov 2021 09:58:54 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Julien
 Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Marek
 =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, Meng
 Xu <mengxu@cis.upenn.edu>, Nick Rosbrook <rosbrookn@ainfosec.com>, Paul
 Durrant <paul@xen.org>, Quan Xu <quan.xu0@gmail.com>, Rahul Singh
	<Rahul.Singh@arm.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Samuel
 Thibault <samuel.thibault@ens-lyon.org>, Shriram Rajagopalan
	<rshriram@cs.ubc.ca>, Stefano Stabellini <sstabellini@kernel.org>, Stewart
 Hildebrand <stewart.hildebrand@dornerworks.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Tim Deegan <tim@xen.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Message-ID: <YZYVzkaQTQ6+Rn72@Air-de-Roger>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
X-ClientProxiedBy: MR2P264CA0089.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::29) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b33bb45a-46dc-4bd3-5f43-08d9aa71a913
X-MS-TrafficTypeDiagnostic: DM5PR03MB3371:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM5PR03MB337174DC555D4F99F6C5B2C78F9B9@DM5PR03MB3371.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 9yvkjwq+TTe0mb4ft6F0kLcrmdMQzbp+HHV+HNF5FPm1m7apLf6bSRs7zSBjVNMBO4aaw+181IDchLXEZkrK4CEkaoOenOUTy0XGVEQ51OQHZiNYyWIUKKvln4bsk0dtGxKG7W1GV5i9oPGJuH412GUOd4xz16QpGvUC4T5vpe+8t+WH7oatIiZhvYJ01HMxHMpGBQkI8mEcI3UXX6JbXkURJlz7/55/f3c8kwWSxIlUjAJyzu+xwBDnA3TETNiIUrD+Oh1bPpRWtq7AZtUCHe6e18jWws5OcjfHVlaLT7RHlYY0gQgi1DVSb+serfe9StaY8jp8WrNpGaSoL4bCfK4H3U7xCLglGQqfZI4qAUX3we+A7fw6uIC7nvg0m1sXxgmlqJ4Na/IN/T+eQIGueI37srKZfnz5utYogF6tD69IeRGolRP8TkPuqjvpNYr19WVt+fGvVnC3bSlMpXioF1QI+il/osArTSTR99OUWqIljRR5HajcaUdBmbx7ogz3I2Meuv+z5Fs45R0DgHq0OajWHsvHADKVdGKSaaamLxk42148QGGSlCVj/QFp77pyB6srCSJrVyDTynJd7Jt5MHCh8A5CldPfGirzFWPQI1YRQ4sPTFsfisys/L7AAc0F6/Y6AYQjKQFa/GY4nKTLnAXJ9xLEQaLUL/CASJ5fZX3SjWyqNoydIHEyLmkkW40nT/J0gJZrA59TP8wmLukuhiN2oplgpMBl7YS0OQfUW8Ok22QQlYvI3k/W77ehwLkuHHOEcURQJyE2n7JX4W3A5E3Z4n3NjrPw2R8CH0KLiofp8DD70vw9M9IGDAlJBVBbg2b+LHAvUKATU03IE2MIRYvbn9ID7kcpSK0osQjXp7B8pW+hIaHg1BGDIAG9XpVL
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(6916009)(316002)(6496006)(7416002)(7406005)(4326008)(956004)(54906003)(83380400001)(9686003)(6666004)(33716001)(5660300002)(85182001)(8936002)(2906002)(66556008)(26005)(38100700002)(508600001)(66946007)(66476007)(53546011)(186003)(6486002)(82960400001)(86362001)(8676002)(59356011)(219803003)(207903002)(67856001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N3lxeVBTSU5vWGc1NE5mY0FoYzJiV3d2a0QyeTNTS1BnaDI4UllSMmZOaGpZ?=
 =?utf-8?B?S3lTYlhpSFN3NzFXTUo1RVoxZXdhWTVZSWlhaDVyMmRZVkMrVEtSeUVNa2E4?=
 =?utf-8?B?aHVnVWMvbWQ2R2UyeDlWMk0zQ0dIQXNGRlU0RzFERVhUdy96UTk2WW1rQ1VS?=
 =?utf-8?B?RnJ2b0l4bktPL09jamNqK2RtNFpnTnZLSGg4V3l4T25ZenRUOWZIL2g4R2Zk?=
 =?utf-8?B?VmtVVFZCZ2FrL1dOemZvUUpIcGZTcFZzNVIvTTV6cXBVSExlYk4xSEUreCtF?=
 =?utf-8?B?blFMQXVsOFRTMWxVQWZyY2kvRlErMWpHK3gzclpycXA4SzVOWVJDZkU5L05B?=
 =?utf-8?B?YitXMDlHYW1zSHZQQkllUjlYR0xPTHRzV3g2dmNYOEVZYThQUFNNaDI3RGdX?=
 =?utf-8?B?cjdtaWlkOXlYT3l6UnlNTGhseDRLYXBXTGd3MS9BZnpvSjZ1VjF4SzhaSkZG?=
 =?utf-8?B?RGdXRXVJK3JuMFVqa2NJU3ZFdEFndlB1M2ZRSUVZOXJPbmhWNHlRaUJmZXpi?=
 =?utf-8?B?RHdmeGh3TXhHQWJtdE1ScWVWNkRlRE9BWmtRd05QQ2JVdi93Rlk0MVAwNWlk?=
 =?utf-8?B?OVJiY2hxMVpGMWp2bnZNMUQ3QVljeUNsWWdNa1RDNC9mTXg0M05kZ2VKZUt6?=
 =?utf-8?B?a3ZpbEdGaXlQS1NQK3VtMHg5bzU1ZlJHNUxpZXN1VFpYN2Vqa2tnN2VRYUZk?=
 =?utf-8?B?UnpwekxBQXZuNHBRK0NibTJmaUFFd1RSOTlTSXhqS3ZGVHpPY1pSSitPenk0?=
 =?utf-8?B?Z3VIZy9JTHk5ZHhWTmplY1lEWXJTSFlwUnNpSTc5MXQrU0Rmc0VSK2ZhamZw?=
 =?utf-8?B?VHUwRG5aYXBiVm5CVk82cDNERFo1M3IxYzNCTGFFd2xKRlEzeDdTQVYvdm4x?=
 =?utf-8?B?SWE2OGlkSFdsV3NmSW80R2pTTExjZ05pY2lPTkZjL2VSY0N0Mkl5OFFtQVlX?=
 =?utf-8?B?VGQybUxLOXpVRUhQYlp2TXAzT21Oblc1L1VmZ3dSUkNkenV4WVJ6cW1FRis0?=
 =?utf-8?B?c3M3NWJ0Zk9tNHcrOWFETFpwL1lUeVB1NU5SSWM3d0dYVTh0WW1aSmt2L1ZI?=
 =?utf-8?B?RDdoQndRVDhnN0dYZWJOKzJsL0dGR2xuOTB5NzFUS09aMjM0SDFLODg2VERT?=
 =?utf-8?B?NDBKdTdRUTFZUzJITkZVMGN1VWplQ0s3Y294NFkyRDhpTVYzbVBsYmNXTFRU?=
 =?utf-8?B?YWEweTNqWmRLOHBPdGR6OUtXN21SV0htUEJtNVJzWGVna1lFN1o5bTFxam5F?=
 =?utf-8?B?SVc0OExBYVhPRDBCeTdGSHNaSWxaRi9VS29OWFE5cG1BaGcwamJaMWpWUzVD?=
 =?utf-8?B?Z0lYTzZmR25wclhjN3Q1SElZOUpEUFhhNk8raUQ5aU52MW9MOFhlMTVtT1lt?=
 =?utf-8?B?ZUdoVmtNRHdCN3lPWktlS1d5YUtiaWZQUlR0T1FsYXVNMTZ4VVhqMzhUT3pY?=
 =?utf-8?B?RjN2b3A1N2k4SmM0Um9RSE45UFp2WndFcmlxS3V3bmVwaUJEei9FYTVSczdS?=
 =?utf-8?B?L2NSbGZKS0xsSkMxRHRjR3ZlMVcydEI3cFZ0QkowSnQyZklxTHZwNEJzTEEz?=
 =?utf-8?B?WUgwbkEweFcveVJDSUhtUG85aUtaNnJvQVJJQzhGdFVzcHJMSHVIY0N4S2VI?=
 =?utf-8?B?SFFBOXlNajJrOGZSRXhWY0NOREN3OG04ejBHek55VW82cWJlOXVYdkRFVEJ3?=
 =?utf-8?B?L2JwRW9mNlp0T0E4YUZaZmVieENqRHhkYUJYQ1J6NmdNTlVNR2lHME9wcVZt?=
 =?utf-8?B?THNDV3Jnd21vTjFoMFFudG9VVCtLUFZkazFIRUFSK05TQzF5NkM4dUR4QUxZ?=
 =?utf-8?B?K216STF0SlFqZmdnUXptZ2Raai9zZG1QakFaNXN6bXRKUmVJRm9YNnNPeTJa?=
 =?utf-8?B?VWIwS2Z1SWxYUUZKM2FKeHB5Ly8vZFpsYUYzSHJ5NzhBamFkcFphUVFCZmdN?=
 =?utf-8?B?RGZ1OWRpdE5tWkJDdjdwc0JvTjBZQnBqTVA5VUl3ejBJWUlLeFNhV0h0TlhD?=
 =?utf-8?B?K29rSGpnN0YxWmxWUFR1RXNkTzVCYWlXOEFFRm1mK1loN3ZKUWtpS25NaGhF?=
 =?utf-8?B?R2E5MlV5M2k5dlVGZXJrS0hyR1F3Y1k4eVhnV2JlYlpXMlBQSHFaWStZZmJI?=
 =?utf-8?B?OUpFWVBZeU9KU3YrTjBRU0hJakZHYTgyRDlBQ0Zua2MwclFGWWhYRUpPZTdX?=
 =?utf-8?Q?GBY8mdcQ09r02Wjc+L4WB4s=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: b33bb45a-46dc-4bd3-5f43-08d9aa71a913
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 08:58:59.5973
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qqnM0qXVevGISfGdU9Aaas5o9unen6yHZnnQntPLpMalnyTBxs4BJum1EEy0Ju7YENot4v8yoc4oMm13Abu9Zg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3371
X-OriginatorOrg: citrix.com

On Wed, Nov 17, 2021 at 02:07:50PM +0000, Bertrand Marquis wrote:
> Hi Roger,
> 
> > On 17 Nov 2021, at 09:53, Roger Pau Monne <roger.pau@citrix.com> wrote:
> > 
> > Document some of the relevant changes during the 4.16 release cycle,
> > likely more entries are missing.
> > 
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > CHANGELOG.md | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> > 
> > diff --git a/CHANGELOG.md b/CHANGELOG.md
> > index ad1a8c2bc2..8b0bdd9cf0 100644
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >  - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
> >    no longer be built per default. In order to be able to use those, configure needs to
> >    be called with "--enable-qemu-traditional" as parameter.
> > + - Fixes for credit2 scheduler stability in corner case conditions.
> > + - Ongoing improvements in the hypervisor build system.
> > + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> > + - 32bit PV guests only supported in shim mode.
> > + - Improved PVH dom0 debug key handling.
> > + - Fix booting on some Intel systems without a PIT (i8254).
> 
> Missing:
> - cpu ID sanitization on arm64
> - fix 32/64bit vreg emulation on arm64

Can I get a bit more information about those items? Just a pointer to
the commit messages would be helpful so that I can try to write a more
comprehensive entry (or maybe it's just me not knowing anything about
Arm that fails to understand it).

> > +
> > +### Added
> > + - 32bit Arm builds to the automated tests.
> > + - New x86 pagetable APIs.
> > + - Arm vPMU support.
> 
> Missing:
> - static allocation for dom0less on arm64
> - dom0less EFI support on arm64

Those I can indeed understand :).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:06:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:06:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227228.392935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndNE-00021g-QH; Thu, 18 Nov 2021 09:06:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227228.392935; Thu, 18 Nov 2021 09:06:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndNE-00021Z-M4; Thu, 18 Nov 2021 09:06:28 +0000
Received: by outflank-mailman (input) for mailman id 227228;
 Thu, 18 Nov 2021 09:06:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mndND-00021T-MU
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:06:27 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf1848de-484e-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 10:06:26 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-21-QNeMx1XPOEuZZ0RLGEs1Tg-1; Thu, 18 Nov 2021 10:06:25 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6176.eurprd04.prod.outlook.com (2603:10a6:803:f6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 09:06:23 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 09:06:23 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0346.eurprd06.prod.outlook.com (2603:10a6:20b:466::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Thu, 18 Nov 2021 09:06:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf1848de-484e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637226386;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hzYPmiFFtOZJr02TIPeK6LVt3dijkTC9mFGdDhsO/qc=;
	b=l+t3q2NsYpRvLu6xPlrzmVXZJw9JejuJUojBn2eH5bmXEFIRnsTDIrOJ9W5khSy5jYegwH
	qhSW062gGm0f2pCjLLqMv9JKbdXgSAUu/YcvGDMztjHqKRwRVO+dbxlOtGJsf9RMlvzGBY
	YtYUSd/fq29/y8GH9zG2xr2vybOoGAA=
X-MC-Unique: QNeMx1XPOEuZZ0RLGEs1Tg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kG5gvOFpZMjlxo4x6POQe9C/Frz0vn+RcGL6tVWkJQqmQYiwXeKydb5tF1aVO5XL9Duj/9nYNvojz1rYEu4ym4AH6ORw+MbeyfF94DkkTRb56fTG0gPw6W+SFpq18spA/O6Ci+LHtJwDBpSq8NRh2kqrydef/KWAyprS09OoFbupiG8slW9l1QYAHTGTglClG15YzjQTSASkLKAP1NJa5LWILAy+7gSSxkIzwyeO9tVB9OPTFlwG/RIfygmztwZ1DyrA5+Iq1S9PpTbHlJKHt1W+NmRVg5e/2H7474IbQEAaQOWs+UIHKNy2eQP3xfabov/TlGc6eIwt87bm4Iacvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y9Kh+thLpiBTnf/Qnbgg3blH8jli1hgBYOr7EBkBOLg=;
 b=BohjzPvrCzbZ3pi/QEY+qTJzFXs/EwmxIOdUIDoOpBL1uHIDV6i2ldA8dE7ZG18v2YlRzVlNea4HIs4p7HRieAq4dE/8KlRTlXEabYNyTs+P60odvo7ToO1axip4n3qtLWVcATf0N+Y/hEXx4N+RIMD621hKsuQ75toUXYEwA41Fp9N8jmg5UJAmAkav3a7rq9UDX8kfrvXAvdmFC07sLdbNwSALKvxKywI9+euRZ0Le4B4+YByd0tqPsI4XYvifGsnq//lypjKxMzcjBgT9tDXowsTfOaPTkBtg3TwO70P4U1R41lqWPb8PCyDlSlxBf4FoGbcG0IMKnvyGS6xOGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e16c1767-0e3b-4bac-b07d-05fe6944ae5f@suse.com>
Date: Thu, 18 Nov 2021 10:06:22 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 5/5] x86/ioapic: Drop function pointers from
 __ioapic_{read,write}_entry()
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-6-andrew.cooper3@citrix.com>
 <e220b6f2-3cb9-e7b0-6b74-4b266e4e7fb6@suse.com>
 <6935bdd8-6b4a-80f6-d134-768dc0d37abe@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <6935bdd8-6b4a-80f6-d134-768dc0d37abe@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0346.eurprd06.prod.outlook.com
 (2603:10a6:20b:466::21) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 08e1201c-acd0-444e-7482-08d9aa72b1c2
X-MS-TrafficTypeDiagnostic: VI1PR04MB6176:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6176A8330890EB42C023C716B39B9@VI1PR04MB6176.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	nlwKk/VNf9PB6yo/9clMtTfy10m6NH1zg+/8p/pqGL2z3T8Ojsj4Axb3uBMxochtDog4JkQLs7XN1v2qmSkNe5/HLHlCdhbthHjHUJhJPYsL3tZ7afcrCq9rGaDEK6FHXUswF+G/SmnreBmImzlKs8dVHWAOveXXGpVgKn5umP5UwAboEEuK7FAUdH5FSOXdwMN2sF/4ky0qw3tZMX28oQvz8H22xVNQ+BO3e4VKLEYDCq+OZSnItj8spZiHxEjXuzCJKeFXVeqGe3lFD/Q8fuJpcgTzF8U4pR3NnQKleyii7zDGUJnKurfzFZiQQMZsvp8bokfYRTsdyKXzRKRAdMuJVS7NqeYcu2Mw2M6hNgjnd9+mcK/yE3j41Z6Px6KJf0gB8rzuWdP3ktZUwK51+1lqUaeyUmke28FpBE5cqgRM/g6yAZ+5UY3+kGBZUJjov+OHPd6OKq83vJjmXyxWmz5kCs8ms5ibc+TzNjS4okM6321lmD9E7OGPspT/0uKt8oHKCg1Mad/lEAcGLS24ebV49eRPvK0i2tQO0Zl1cbrGMjHn9XaBTDlf/sPGhOWoK/1CBQvikcci41IAZpOF7JeHancy0DV0W5sfsBOSsped8c87AR6zciyLxrUPWCu3s88QXmouNS37VDDkLlsIi6/rqJEu29qVihuUZwzh7Y5CpFs+7QHMU3rP7AioAYqHaYlKQov7RtpPIQH5y+Re0tGBCGLep510tll+ZtIpFfM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(2906002)(110136005)(54906003)(66476007)(66556008)(186003)(16576012)(66946007)(86362001)(4326008)(316002)(6486002)(53546011)(5660300002)(26005)(38100700002)(956004)(508600001)(31686004)(2616005)(83380400001)(8936002)(8676002)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xc+uGhWNOXQmpwrhnoUxYjEOEL3iUUceKbN2/iGjhMCnFi5o/z3/ON6bEv1E?=
 =?us-ascii?Q?W2u39Ay5zsjrl2JXtBHwNeV6//PqRV5QVXCfNIDXTyArQ9wM5vzFF1wKFqTs?=
 =?us-ascii?Q?p2rh9bgmBFsiSissLWYzaMz9ekwf3m0vHB1CjwDIA+SSvmWFM9a+J5Gd7a2m?=
 =?us-ascii?Q?keSaOLNJlst0B9/P9JnlTXbQv8LkBgcaUh0s7zUvaAuyT/SkaPMnXb6sIHfK?=
 =?us-ascii?Q?INjy0iHwWZwno8AdLkMxkgQ1igFm41a4SbP+UxaOOhh+gMTkj2ThmNouth5c?=
 =?us-ascii?Q?cIj9TvzWMiV2kLfjGXsl/cOu2NYoF/yWKETcu5YD7OoiJkCoN/n6Y52mZrba?=
 =?us-ascii?Q?OsQD2Cbv3kySYQ0+f61a6x3GkwJ0JzXEk57DB0WWcF9Lp+6TFh/QEAmqdcto?=
 =?us-ascii?Q?JBNZBmHB502JK7RIhYAGJNyHo37L4+rQ5xIOSrNMgO6ervjBbz2XBMT5FDtI?=
 =?us-ascii?Q?Pb628u+HpvBnduMeOuWx4j555lTcTbzp5IE8sjmyk6rZSd4wul5VyBHrFvei?=
 =?us-ascii?Q?liQ9jmNIOkop5quZbglDFM7xec26A2RH2V3Cb3EHWOJx27PO9RQ8u8OaGDom?=
 =?us-ascii?Q?3jzv/TBQIh2UAsZHCgWGjShMARPgVooBn+N7PdSmaF9VMvWj0QjnAylosEB8?=
 =?us-ascii?Q?7JDpOOFKLRJjcPXPWDQjHqa0/rdgIDLpADoIyxUQAXOLnI20SbqH1ZI6hf5k?=
 =?us-ascii?Q?NKoszo0r0D2qHrZIk29cHBCo677EIBAsS/j0uKp0KhLth2aUYqij1xgk2aQr?=
 =?us-ascii?Q?bwJjb8rGfwo1Qb5PoNVXyDO8vdpEp5lGxkmeOrzjl3mXxDaNXFCwP3prRq9q?=
 =?us-ascii?Q?z3Pql7wwTz0/k4WPY/v2f5DXy9kvvrjodw2v52wpH8h0Pw2DyBhAD18bQZir?=
 =?us-ascii?Q?Gzff8b72wysuzIChJQMap0yOPdpdpmwiQQj5fd6AWUAuH7VazZ7kBcs7sGWJ?=
 =?us-ascii?Q?cNYPc16LQwZf1CPp1W6g87/j1qS8aJ3RuIPYrepZWWJjbQvZnsKjNB2N9X7j?=
 =?us-ascii?Q?R3y/kG2Dy/yKRVQw2g0HYdOdihSNCEaVpAx0gGnB3Qxj+ZGM4mvAtVGQvw3l?=
 =?us-ascii?Q?iVZ2swca9DcnKwtJeAVhyAtXvqH97IpZuTxwd6ziBq+eDreuWVGT3Rj0oAJ5?=
 =?us-ascii?Q?xEXHc5cs21yk2cNck09o8bYegHVxXpwJQVjhn1UbvlhsVicmOv8p8f5ynIk/?=
 =?us-ascii?Q?k75fCik+FMh8D9ywkXU8vbTkXka2nY3zXWj9m6Sbl6NMYauETrlbHpSUxZob?=
 =?us-ascii?Q?lSNVSJxZ6E1KcM20k/EDFpRwu7QmawPcAg3ev0LXFbhWgDy3bPaBEnzlP/ul?=
 =?us-ascii?Q?ObIyMK9+uuHggurFtWrj2nSGLwYvHHsB9sin8KKr45KKLWkgG2Wvvu1e5lHb?=
 =?us-ascii?Q?n+3tk9D73IoKvn6XEYxnuf/YxB1cnX4X3e9LBv1V4ACY1ENHZjtfGvd6hE6I?=
 =?us-ascii?Q?41Do79i8z//6s6s6bPdOdmcDXC3yvVnSpRoHk66E8V5guB0ZlG5vD8G1R2Fx?=
 =?us-ascii?Q?K40KGb74GIta/7+eFSMt7oTl3iMavzMNZWhuIz0iUTsYYpcZ6A5CaxR1yGC6?=
 =?us-ascii?Q?bq5pbY+PU4nIvHuDOpOaxzooIftsWnF4h6f0/mb0LDUUCoYuCtRWFzyg3AdY?=
 =?us-ascii?Q?m2spPHRmnP1TnFnbJXfIGJ8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 08e1201c-acd0-444e-7482-08d9aa72b1c2
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 09:06:23.5860
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NyNdFLXxbj+2VLjlJQEXQlJDdiCZv3vAWtsapRBm03MxD47hIdktKbThc2GS8tr2XCv/J3vTsBL+l1HYFAbIKg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6176

On 18.11.2021 01:32, Andrew Cooper wrote:
> On 12/11/2021 10:43, Jan Beulich wrote:
>> On 11.11.2021 18:57, Andrew Cooper wrote:
>>> Function pointers are expensive, and the raw parameter is a constant fr=
om all
>>> callers, meaning that it predicts very well with local branch history.
>> The code change is fine, but I'm having trouble with "all" here: Both
>> functions aren't even static, so while callers in io_apic.c may
>> benefit (perhaps with the exception of ioapic_{read,write}_entry(),
>> depending on whether the compiler views inlining them as warranted),
>> I'm in no way convinced this extends to the callers in VT-d code.
>>
>> Further ISTR clang being quite a bit less aggressive about inlining,
>> so the effects might not be quite as good there even for the call
>> sites in io_apic.c.
>>
>> Can you clarify this for me please?
>=20
> The way the compiler lays out the code is unrelated to why this form is=20
> an improvement.
>=20
> Branch history is a function of "the $N most recently taken branches".=C2=
=A0=20
> This is because "how you got here" is typically relevant to "where you=20
> should go next".
>=20
> Trivial schemes maintain a shift register of taken / not-taken results.=
=C2=A0=20
> Less trivial schemes maintain a rolling hash of (src addr, dst addr)=20
> tuples of all taken branches (direct and indirect).=C2=A0 In both cases, =
the=20
> instantaneous branch history is an input into the final prediction, and=20
> is commonly used to select which saturating counter (or bank of=20
> counters) is used.
>=20
> Consider something like
>=20
> while ( cond )
> {
>  =C2=A0=C2=A0=C2=A0 memcpy(dst1, src1, 64);
>  =C2=A0=C2=A0=C2=A0 memcpy(dst2, src2, 7);
> }
>=20
> Here, the conditional jump inside memcpy() coping with the tail of the=20
> copy flips result 50% of the time, which is fiendish to predict for.
>=20
> However, because the branch history differs (by memcpy()'s return=20
> address which was accumulated by the call instruction), the predictor=20
> can actually use two different taken/not-taken counters for the two=20
> different "instances" if the tail jump.=C2=A0 After a few iterations to w=
arm=20
> up, the predictor will get every jump perfect despite the fact that=20
> memcpy() is a library call and the branches would otherwise alias.
>=20
>=20
> Bringing it back to the code in question.=C2=A0 The "raw" parameter is an=
=20
> explicit true or false at the top of all call paths leading into these=20
> functions.=C2=A0 Therefore, an individual branch history has a high=20
> correlation with said true or false, irrespective of the absolute code=20
> layout.=C2=A0 As a consequence, the correct result of the prediction is=20
> highly correlated with the branch history, and it will predict=20
> perfectly[1] after a few times the path has been used.

Thanks a lot for the explanation. May I suggest to make this less
ambiguous in the description, e.g. by saying "the raw parameter is a
constant at the root of all call trees"?

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:07:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:07:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227231.392946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndOO-0002cp-4H; Thu, 18 Nov 2021 09:07:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227231.392946; Thu, 18 Nov 2021 09:07:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndOO-0002ci-0N; Thu, 18 Nov 2021 09:07:40 +0000
Received: by outflank-mailman (input) for mailman id 227231;
 Thu, 18 Nov 2021 09:07:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mndOM-0002cQ-NR
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:07:38 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9b94281-484e-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 10:07:37 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2106.outbound.protection.outlook.com [104.47.18.106])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-32-gETXgr83M-K0NwTFqNP48g-1; Thu, 18 Nov 2021 10:07:36 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5903.eurprd04.prod.outlook.com (2603:10a6:803:e0::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 09:07:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 09:07:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0301CA0020.eurprd03.prod.outlook.com (2603:10a6:206:14::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Thu, 18 Nov 2021 09:07:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9b94281-484e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637226457;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Q4bWeNmVqAwW6LErwWdvJs8IfPn5jq2KBv1UVogp6CY=;
	b=XkT/EyH2p3l7OWNxrupH9NA1JJMbm4zNy6+V5HPuJdL94wCuweOOMp3vFr3dHj323YN5Vi
	G1NzqsJF2wcSwzQuQ0HWSxwF74ltmlpae7DXrNMpc0pd7xbxhWypUd0ZpQMy7bORfLZiGT
	hkIAHXJq7NlPygfhEbMUnmMk6O0UJbo=
X-MC-Unique: gETXgr83M-K0NwTFqNP48g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OMyq7d48hsBbYFdhfSMpFoZKVDpNBUtVf4fYi4NiHl6fpA446jtxCzQx+jj/ZcsLC/C1ek6iYTANz8OAS3pivo9e5P/SR6Cir+hYsx6T2Rmp0SkdcRsLWe2rcjLil+Clzh7I88ptzfK+Q8nxpjqDEO95EFiCFStJY7xdd1JNecDYx3MvJXla35kyA1ImIRX1jBL/R19p7bd7VNO4cGMPoQjwjYUSxegh2LgY8EpxuETnQ5lZhRYMgDcoqvcYnhJTiS3KMmLrpFuEi15VBvIZGfnGLoMViTrPKOosE3D2LEfTrk+S5hXizz2v5ezAauvVatRYn93lKHudQm+qOa0WlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q8xtDLJmzjvodvz6QGmljCHX2yrkP0d2yAIfuv20+EA=;
 b=lSsyK43B08B0neGQ5canwaXv3CwDjmO0MvWCA1vPIWxOpOliJGYH8FrHT/8V41VzFgt6TJhFQVqBchu8YNE1C5WQBOGj2wFy/df3G/UlIE5BAvWLYfy7VoPNsj694PbBZxL7xaS/iQlBemuv587HVB7jOP25DxjnvqaKY6+UtuYqCnRiiQTqm0qmnS8xmOyY/yEBljK1kWI9TATOwgmrEfsHVojGI10dXEoScVCM9w6T57RSkJ8c424p/7IUqk4AxQzV2ujaQ5k7v5DdORL9nRFSJWP/4u4uu2+66cioxViPwF6h6Cp0FCuTGAaxrsWA8mtgeq1i6omjqxtchWzIUw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <854eea65-1450-a764-638b-2781b463f8e7@suse.com>
Date: Thu, 18 Nov 2021 10:07:33 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 5/5] x86/ioapic: Drop function pointers from
 __ioapic_{read,write}_entry()
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-6-andrew.cooper3@citrix.com>
 <e220b6f2-3cb9-e7b0-6b74-4b266e4e7fb6@suse.com>
 <6935bdd8-6b4a-80f6-d134-768dc0d37abe@srcf.net>
 <e16c1767-0e3b-4bac-b07d-05fe6944ae5f@suse.com>
In-Reply-To: <e16c1767-0e3b-4bac-b07d-05fe6944ae5f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0301CA0020.eurprd03.prod.outlook.com
 (2603:10a6:206:14::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 576acb53-9802-466e-a59e-08d9aa72dc12
X-MS-TrafficTypeDiagnostic: VI1PR04MB5903:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5903367B6A7300DCDC93F6BEB39B9@VI1PR04MB5903.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	lC6QOmFdL1OweVjCE9pYFNSuruORiVejNURWbphGdLoB4SIugGjd/ecwLW4Y+Tq2MbhLBU5nAnBoAizvGRd9bCEpfN2pWr+gZnzMb6jzY+DkdMCqYv+H3qs/5PFuXgSPCV6eXorFRnLQaltgwvR6kxUQTLoeR9YQG+YqRDLf2mx/qG+y/eaoHWuQiWLjYCDpOKC+61Cr/FRGRn3SPwi0afI05ZMEsXkcHiNE4QK3uZ8sbHLHDXrjdEPjaXNo9tM/ntC346nePb36OA3grMIGlvyrtPyIvfi/qSrPgPkWadapmLMeNZWyCb126BiKtr7eCLAWYck+jzY2sanN7hA5cnJ7P2RP4nlJmstEhnzL/CZxL4FOynQC+hoop/78uWbNLd5VozNne/fI5gp/5avibqXKqYVz/2Jf9ErzcAMMTec3YZrzJNdguXonzuvOncM4tu5qylOJggLffhfYxCLI/nAaactoG5RGUHUM3z2aJHHBgqRWnqtNW26QHKBr2Pp2MfsC3M4lHRqdPtUPO2qDw/vTlM+wJHpktdpetfGXUQi05XreTOAMHVyCtwBl3UoEeKURkWOi1kOKx6VCzCLcJojrFkj4KVgzvymMKNwwaK+hJdxv+ygDrnmL2GNZS/TJzuHxTHOtH3iGLC/C8n7hqYazukr5I6sBWQUcKZCOcMPEqA73m0i8AP9oJasiq2aOLQQidZrb4hnHbQCF+pTNCk40HsSVleYA6jJl1gGLLHdJINjgEAaZB8uVR9dKuwWA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(53546011)(8936002)(54906003)(110136005)(5660300002)(31686004)(316002)(2616005)(31696002)(86362001)(956004)(36756003)(4326008)(16576012)(186003)(2906002)(66556008)(66946007)(508600001)(26005)(6486002)(38100700002)(8676002)(66476007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?UvgzBWZzARs0XRjcFHe/s3eryJNl/IH7GfpkWhDfHmlPTeF/Y5t3yIqZ+odf?=
 =?us-ascii?Q?vHpXmGu8CQGcdn9kUl1+ZrmBPu/CzNZyyt6VGi9grOifcKhe+9MSGlerh4Y/?=
 =?us-ascii?Q?EV2rlYOA1ZU25NxGIMFhfi6cwu/RV2GkutJwv3b93vJloyzGap+1TR0KxOFv?=
 =?us-ascii?Q?yVewox4iQ6O5lbOG7TlsKMIZJwkV+8xFw+UET8lLQknPEGH1o4PmCYluBrKb?=
 =?us-ascii?Q?5MsLrvzvgve9pv7LAJOXWHrO0OpOyijLV2xZz+r4v8mj0sjqAUFxhBehDywl?=
 =?us-ascii?Q?l9roySsymOSjtbmyrouGBrLkt6qMswDi88lWj/onpsBpzQm6kwR7X3c0M5Lq?=
 =?us-ascii?Q?JxzIv3vlK/20U7/fhzmGi+IYuY4B3OTAwp7hddpxT9gOJFO3S+lPvV7ULIAc?=
 =?us-ascii?Q?C5r4HV7gcxqu4+xuvJe0xFigzt7nMA4EPs2+aliBRiOzzjS6ekIQUpyLr1Y4?=
 =?us-ascii?Q?dUF2tSZbD9h9qzb/vS7/j7zKc8b3pxIEhIADxsbsbaVrLFxoHmFoWRgckDCb?=
 =?us-ascii?Q?bXQ78lTTGJ4OPNMTb7B1Z1dYjruvQqj2BLyrw1DUHCLsbyuS6W0f/jkC7DQX?=
 =?us-ascii?Q?dUVBuSW6i5uY6vI3BrxzC8KGi33WwuXUq/EV8lJ/Kp16RxW+EFs20Qdo57yX?=
 =?us-ascii?Q?ken1efZh5QLwG+qVf/IM+NLYFVg8S0fvGUlY2kg05gFwhyy21MpdgWeskRyL?=
 =?us-ascii?Q?hLF05Qf2ucs3XbX8tl9yrp6r9qdzofjZOyZ2lKw4p56r/gzlG99hfD0rQ26r?=
 =?us-ascii?Q?dngyqQHsCo0WIGtM3z1G9xnpIunMcjZ4bLJZnptF2bqO07madwjV4zYTyIva?=
 =?us-ascii?Q?yW+YATmHTZDTPr3JS9Fo5Vv+PXp8xqRCJvNiKGENmCbndPOjCu4Wa6WxHV6E?=
 =?us-ascii?Q?RnEdsGTA2fwcB5ZaWDfAcDlZsrPBoLgQSW7/Cw9AJLP+DhdpAzWR5CJkVUYA?=
 =?us-ascii?Q?lt4RE5Go+5j1uW7vtCmZmOnd9911t01/+JD1nRxc9/0omVQiZieweD7OUCAc?=
 =?us-ascii?Q?vLTtidDv3C81KWUG0gjdhGTAon980Rk+m0VHVrX4XSB6sLe1xtZBXI/L7huT?=
 =?us-ascii?Q?zXdw1tNeUwD4BRnerfz3tZ2vS/STg51+FBICYO8hfJr6eQ3h+OYMiHT8yVFT?=
 =?us-ascii?Q?P7oXHd7tUK2GCMu/C/HL7vB5VpDBJAwxEYvHRKOkuuurfHIigG3xsyUbu7ly?=
 =?us-ascii?Q?AxzoBmHqdDtCxXzd7N5Ij6W20V4Ewm1U/t3gE55OOfafTemMwsKkqne3EMeS?=
 =?us-ascii?Q?R+RAdLZs5BxojiHfmMwynIaSYUTrHR0ZcQ2zzhZI/vCmfkTOk/xU3bmQYFlc?=
 =?us-ascii?Q?hkShaW4k1xw47UpGJK0OOOr9+2QtfZZxdjqHClPcfrSzzJfiIsO7asqn3GI1?=
 =?us-ascii?Q?W0h6gXloVaywYhmq+vG/RjHcYj4uGqGhbvFOyHsWMrhtB/7Ncrbd/10ycJT6?=
 =?us-ascii?Q?R3QAIlyM7SQ0968bs751ZLmPuojPKz0lZXj039mPSWSqPvyLlbBiR9WWExQS?=
 =?us-ascii?Q?EMy4xvlz0QVO4EZLiismsRMNqpUSlDMjd9SKKKkxE4lsBuqWFo6EEmeJCMg7?=
 =?us-ascii?Q?mq6FF7sA30T/zkhBQ27YACqll/usVQpl0FA3UwgghPOErEJi0IuXNkQIvh65?=
 =?us-ascii?Q?NjNBZGPxAWBvWQe7J1pynZo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 576acb53-9802-466e-a59e-08d9aa72dc12
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 09:07:34.5918
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 17mIzBScTceJhPFsoaes0AXQUdzCOEw0/clDQD0LnKBCtg7aKsBjgDgEMXlf3ToNYIIQiVle7KiQ0+8T4pp2ew==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5903

On 18.11.2021 10:06, Jan Beulich wrote:
> On 18.11.2021 01:32, Andrew Cooper wrote:
>> On 12/11/2021 10:43, Jan Beulich wrote:
>>> On 11.11.2021 18:57, Andrew Cooper wrote:
>>>> Function pointers are expensive, and the raw parameter is a constant f=
rom all
>>>> callers, meaning that it predicts very well with local branch history.
>>> The code change is fine, but I'm having trouble with "all" here: Both
>>> functions aren't even static, so while callers in io_apic.c may
>>> benefit (perhaps with the exception of ioapic_{read,write}_entry(),
>>> depending on whether the compiler views inlining them as warranted),
>>> I'm in no way convinced this extends to the callers in VT-d code.
>>>
>>> Further ISTR clang being quite a bit less aggressive about inlining,
>>> so the effects might not be quite as good there even for the call
>>> sites in io_apic.c.
>>>
>>> Can you clarify this for me please?
>>
>> The way the compiler lays out the code is unrelated to why this form is=
=20
>> an improvement.
>>
>> Branch history is a function of "the $N most recently taken branches".=
=C2=A0=20
>> This is because "how you got here" is typically relevant to "where you=20
>> should go next".
>>
>> Trivial schemes maintain a shift register of taken / not-taken results.=
=C2=A0=20
>> Less trivial schemes maintain a rolling hash of (src addr, dst addr)=20
>> tuples of all taken branches (direct and indirect).=C2=A0 In both cases,=
 the=20
>> instantaneous branch history is an input into the final prediction, and=
=20
>> is commonly used to select which saturating counter (or bank of=20
>> counters) is used.
>>
>> Consider something like
>>
>> while ( cond )
>> {
>>  =C2=A0=C2=A0=C2=A0 memcpy(dst1, src1, 64);
>>  =C2=A0=C2=A0=C2=A0 memcpy(dst2, src2, 7);
>> }
>>
>> Here, the conditional jump inside memcpy() coping with the tail of the=20
>> copy flips result 50% of the time, which is fiendish to predict for.
>>
>> However, because the branch history differs (by memcpy()'s return=20
>> address which was accumulated by the call instruction), the predictor=20
>> can actually use two different taken/not-taken counters for the two=20
>> different "instances" if the tail jump.=C2=A0 After a few iterations to =
warm=20
>> up, the predictor will get every jump perfect despite the fact that=20
>> memcpy() is a library call and the branches would otherwise alias.
>>
>>
>> Bringing it back to the code in question.=C2=A0 The "raw" parameter is a=
n=20
>> explicit true or false at the top of all call paths leading into these=20
>> functions.=C2=A0 Therefore, an individual branch history has a high=20
>> correlation with said true or false, irrespective of the absolute code=20
>> layout.=C2=A0 As a consequence, the correct result of the prediction is=
=20
>> highly correlated with the branch history, and it will predict=20
>> perfectly[1] after a few times the path has been used.
>=20
> Thanks a lot for the explanation. May I suggest to make this less
> ambiguous in the description, e.g. by saying "the raw parameter is a
> constant at the root of all call trees"?

Oh, forgot to say that then:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:15:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:15:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227238.392957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndVt-000451-U1; Thu, 18 Nov 2021 09:15:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227238.392957; Thu, 18 Nov 2021 09:15:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndVt-00044u-QP; Thu, 18 Nov 2021 09:15:25 +0000
Received: by outflank-mailman (input) for mailman id 227238;
 Thu, 18 Nov 2021 09:15:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mndVs-00044o-2m
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:15:24 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ea733a8-4850-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 10:15:22 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2106.outbound.protection.outlook.com [104.47.18.106])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-13-i8ueb_0WM1aXLys9wyoc-A-1; Thu, 18 Nov 2021 10:15:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 09:15:19 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 09:15:19 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0372.eurprd06.prod.outlook.com (2603:10a6:20b:460::26) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Thu, 18 Nov 2021 09:15:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ea733a8-4850-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637226922;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Z/enDxBkCcmQSOEP2/JG57BnuVcoOjEWJNVfYtVs7ag=;
	b=dUk7nu1pn5AJ/QBb8npNbWocZgte2e2324A+BR4/5f5OYQbW8pIcYBDc1ZVA2GFJ47w8r2
	JkVMizNfsCZJxw5YN2BtbbbyJjf0ZyTj1J++SXwYEbloT2n2FQiC6B8L9ZpiLd00NwpjEe
	4WJAx53UcCoWfrQ3hZ94G8itdacfjCs=
X-MC-Unique: i8ueb_0WM1aXLys9wyoc-A-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OL4FbTt63J8xcNHP+zIj8mBPRkqra8K3lwcXCMrzM336gSAduXbi+KxqK0yeAm0CqI7/AwtpWYN5lsc3rPhdk1u/u51EglsQaKOF48k3bX2o2cdfZ0yTT6+LSJJf+1UGwiQ9pz8dC4XL400dzAG+VjQC+AvLORnqoEJe/bRpKvJ0wnIRkj22gO/2h7MThBolZg3h5ermtOQL2eYaH8P1zrN6aix9SkZfRBdoqXk1ELTJ+TJx0VaPscpBu8xcMfDbwPndza0OBBVWoNZFZbhPBAjGqRBzGwKFc/vIGPT/OVoJEvE8m5Vddhz1BABd2evk1M4fxny6n4P8PKBvg7pwag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Z/enDxBkCcmQSOEP2/JG57BnuVcoOjEWJNVfYtVs7ag=;
 b=VMXLXz6VGc+VVY5G0CTPi6HCB4NVF1D7qfhwA7lc2oAYlzg0n2SHYaIqrIJFoOUqmj+JxC8SLFQUvCC9/sD1KSRuL6wrAehJQhgp79WRVWC+lOk7/5i4WgOGfI/LOkAPDxyaY0aV4Z70E9NvRrKNh84LZSPNjcYLJxxOJn2NnhjeQ2wAP0mgOGaW/IQPQnZAQAz0ISbjAxKu/0OFR91V5z6p16KQe3VQtxDZsBeumwrdFpA0DJFb+ipQGjhWY8VFViRWL89YgQRU0/GPMUGLkbSPjc+WtiiyPqEs3UA8cW9m1mcCZcdZPagi6yqe/s7sPD8uv0koGIYw8renxXfH8Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
Date: Thu, 18 Nov 2021 10:15:17 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0372.eurprd06.prod.outlook.com
 (2603:10a6:20b:460::26) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 79332b5a-8b05-490e-18e9-08d9aa73f0f2
X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7037D40BA18267AC77753843B39B9@VI1PR04MB7037.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qL99KDh+MPHivocKMU8p8FdrhMVgJG2C/XUoP0kegUzSVu76goimkr2z9TWcsQdHuAM+F/RV0xdfuRQKRXKVccW/cgnUcge6hH0iYxjhKcD/5OVaWHtPK0F/N1XpGO4XfZT2i90+uZ4CgT+gwuLPOO9j8auV33L6yEWNYDxRY2/7vAm1vEda8uOSxJ0oy4FIRHdqQIvtWnzvJDxEn+OA1Mt/rQt7br9AG7d1Nb48r9NSSYCmN93di4zPJSuSFdAmhGPC1O86oTs+ab5xZvdgQjGrkJznYr3gIRFWfzj9IGTatnnTqdthJinnq3EToSjkx4T70gl57OMVuMGx/hWmLOqG8yoSSTELnIoKaCDfCrgAVFwDP+SZd90nQquPtbknYAGDrRV2X+u5ILPYT4y6MtPGS47HVxPdHuNARBCDR2PcHqM9sIwrNaUnC/50AptjZfRS5O+0A83uoMIpBz+pvR3DNBrUHs8MFgI7fHyDpza4Sp6kWbOSZHaN2aSXo/RoPA6V8/YlpcY/w9FKrsJOebw80uCORzbIpoW1Mfk0RQPwRZb3lIhGVqb1rqPwsUE4rdrH9eU6oclgsGVmvtN0kD30YXZMH35OHbfHs9dUpzjE3eFCk9m3Q6DNmE3c7DJOLqCVB/iJbDSaBtqpWKAOuOa0yC7sVkdlDD6tnb4hs0MHW3NWm6blMBm90R4iNVO9YZSGkZm9xRq+JlpFfwfusk2WWT3fG4Zlv8BLBVCZaIqxvrW2sErDH2b+UlgdLVxv
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(186003)(54906003)(86362001)(53546011)(66946007)(16576012)(66476007)(956004)(2616005)(2906002)(6916009)(66556008)(31696002)(31686004)(7416002)(6486002)(8936002)(83380400001)(38100700002)(8676002)(5660300002)(36756003)(26005)(4326008)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Mk5Lc1RWczJZZDlLM0V4VXBpekFaWEd5dnhnZlptdkw5ZUlqakFHVWR1Q3Zh?=
 =?utf-8?B?TTJVcHRiYnFlcEZMc0pwZS9nTWgwT1BScEFyVjJPNmVjTHB6WXY5Vk10OEJj?=
 =?utf-8?B?aUNjeFB0TWZFN3hORjltMi92anZzSHIzWDNYQ0dXbHkvZWtJaUc2cmVmUk5E?=
 =?utf-8?B?VnFVRVRqcU5DZWhPc0NIOWdCUldZSGtOWGF3KzBRWGdjMDVPSXVVQTB5ZGQ1?=
 =?utf-8?B?WGVqYTdEZVhsanJsVktKeHBSRmx2aDBhZW5vRXRFTUVmNTlIUDUrWFhLbzlY?=
 =?utf-8?B?bzFSMGV3bVBvNVltR25BTmVZS1FmK1h1ZFVXY2RibGMzZlNURkU4aklFbnFX?=
 =?utf-8?B?YjI1aVVYaEN2amhOUXRCSmlEczB6WlA5Ums1SEM0R0NaRkJiYVEyTW5BWjVS?=
 =?utf-8?B?SWFITHArajFtKzl6bm1tMzlmTzhXQTdNLzhidXY1eERTa2pmVUZTVUVIQjdQ?=
 =?utf-8?B?RFhIK0haV2ZpL2VmUEEvVXNnWXJLYTBJNDNBbTE2anlKaXpiVjVUR3Znb2dH?=
 =?utf-8?B?U3FrMHdKUVQ2UW1aeDNFZCtTZURseTdaZzRTdnZGNUdyQmJVajltbkVVcmpH?=
 =?utf-8?B?aEVzV0JqSjBZdFR0eEYrSUx2SmZ6ZFFoQXNDSzVCZERsYTg0d2xlMmF0TW9r?=
 =?utf-8?B?ODlLWmdYSzZsV2VSb3N6ZDdtZFJSTnRlYzhKb0xsWUJnZUdHcGpvNzZ0V2RR?=
 =?utf-8?B?Q0ErVjlDbmkrdmlZck5GNDNwanNReWxXeEQwRjRPSDFpV2ovZHl3eEx6YVRq?=
 =?utf-8?B?OXc3d3V3TFk3UDJrYjVBdWR5dEIwdExIYXFURUpiamlUNDZlYVpaMUMvc2t6?=
 =?utf-8?B?T0lub25sczlLcFJZRFJmYVFrYk1DNHJIQlhnKytsTHVGYnI5SzQ4TlNwSnYy?=
 =?utf-8?B?UlJCdHFybDg1VU1DbGptbmNpV1J1TU1sNURGSHNCSzNyaTh0enJzdlFZME1s?=
 =?utf-8?B?ckxwdENUeWQwd3dSVlQzRUtNMnlzNFhTajlhUVBHNDZETCswa0ZEMXMva3c1?=
 =?utf-8?B?dmdKS0V6STR2TU8xQ2ZzWlQ1VlZSckI2bDVibTBBYVFVM3FrSnBMblFLdkZl?=
 =?utf-8?B?M2FjbUhQZ3JueFNKMWRSV1ZrWHdwSXhkbTVjWWhaOHRnc1o0NkdPTU1BT3dn?=
 =?utf-8?B?aGtENm9lZjh0dStEVDE1RHVYSytHYThXYzlVOHRNRDErY2VMMHRqbmRzU0pw?=
 =?utf-8?B?bkF0Q3JHNzVkcWN5a3dseHF1QlBUQlFuL3lrc0hLTTFyWG9XMXFxdEZZRzQ4?=
 =?utf-8?B?MlFwTEtzRGxEWUc5NFQ1UEYxa0hBMXZJVHdtc0VET3lERCtMNnJjTWd5SDFl?=
 =?utf-8?B?Sk8xS25ENUZselVGMG9Gbm9PTmxmWGxvWm14RmJjRlBHK2h0Wk90UllxcER4?=
 =?utf-8?B?dkFKbE1TSENVRGRTanJNZjY2R2YrNklSS0xza21Pb3k0WjhqVGlPYmliaGd2?=
 =?utf-8?B?RE5Ic3FxZFZwV29rMVhCNXY3UlJDTmZPeEV2a2w0WGN6dml5aUtBczQwUmV0?=
 =?utf-8?B?VWxxMStVM3NXaEx0cHRJakwxQWlOdDVPb1c0dTdROERuVThnSkVaQkR5eldP?=
 =?utf-8?B?THIrTGNmVE5MZUgrZldaekhTSFcrd0hBV2ZYc25GVW9PY2tCQ3VXd05PMTBL?=
 =?utf-8?B?SG5jNDhjSGpyb2RrQ0dwNUoyQ3lSM1FOUXNsanFGdncyYkY3eU9FNTRnTVg1?=
 =?utf-8?B?WkdEMGFOWk9uSnVPcUFqbDJIRlI5L2R2RUlCUnhtUVg0RFh6Q2xyMXJnYzEx?=
 =?utf-8?B?UTBmMldpNGdHNEx1czV1UVJ3Nm9ic29JMGF4VlllcjRlVGhFMHRZdjFNQk95?=
 =?utf-8?B?WElqNDJuTWFjSDJScWtwN000U09XVHViS1NMRHhYQUJxUEpWQlZNRWJVNHBj?=
 =?utf-8?B?ay9hc2hSUWZwcFA1Q0tIczBrVVR5TGJzM0NPbHJVK0c3bFY3VzF6SGlMelgy?=
 =?utf-8?B?dm55bDlva0J2VEh6Y1l6SFNtTERISXRHUXNOcTdMS1pmNTFxWkZQUGlIN3Ns?=
 =?utf-8?B?Z0Q4VlY0VFc3ZnM1Y1lFc2Nvb2FLUk9pN2lDeHdNYjJQWnFyTjhFVEpGUEc5?=
 =?utf-8?B?WjJubGx4SU54Q2UxVURHKytPdEhqQlV3c0Z6QXlTa1JkQjBxeUZnWmFTNS9m?=
 =?utf-8?B?MjI4eTJWV1VnRUtwVWdOMkFtckU0NzROVjZ4eGs4bFhVUHo2SnlxRWVKQVI4?=
 =?utf-8?Q?OFjt+c3bePjdNeu9pgSa2lk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 79332b5a-8b05-490e-18e9-08d9aa73f0f2
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 09:15:19.1154
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zXEBnyDPOS3Rd8VpMpOyC7ZIJJkVuyGEsONh3/qTGNGEPVnz48agcK1ICOnLSQL/ey/jt4m3aIMhV5Xp0Nuh2w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037

On 18.11.2021 09:54, Oleksandr Andrushchenko wrote:
> On 18.11.21 10:36, Jan Beulich wrote:
>> On 18.11.2021 08:49, Oleksandr Andrushchenko wrote:
>>> On 17.11.21 10:28, Jan Beulich wrote:
>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>
>>>>> When a vPCI is removed for a PCI device it is possible that we have
>>>>> scheduled a delayed work for map/unmap operations for that device.
>>>>> For example, the following scenario can illustrate the problem:
>>>>>
>>>>> pci_physdev_op
>>>>>      pci_add_device
>>>>>          init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
>>>>>      iommu_add_device <- FAILS
>>>>>      vpci_remove_device -> xfree(pdev->vpci)
>>>>>
>>>>> leave_hypervisor_to_guest
>>>>>      vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
>>>>>
>>>>> For the hardware domain we continue execution as the worse that
>>>>> could happen is that MMIO mappings are left in place when the
>>>>> device has been deassigned
>>>>>
>>>>> For unprivileged domains that get a failure in the middle of a vPCI
>>>>> {un}map operation we need to destroy them, as we don't know in which
>>>>> state the p2m is. This can only happen in vpci_process_pending for
>>>>> DomUs as they won't be allowed to call pci_add_device.
>>>>>
>>>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>> Thinking about it some more, I'm not convinced any of this is really
>>>> needed in the presented form.
>>> The intention of this patch was to handle error conditions which are
>>> abnormal, e.g. when iommu_add_device fails and we are in the middle
>>> of initialization. So, I am trying to cancel all pending work which might
>>> already be there and not to crash.
>> Only Dom0 may be able to prematurely access the device during "add".
>> Yet unlike for DomU-s we generally expect Dom0 to be well-behaved.
>> Hence I'm not sure I see the need for dealing with these.
> Probably I don't follow you here. The issue I am facing is Dom0
> related, e.g. Xen was not able to initialize during "add" and thus
> wanted to clean up the leftovers. As the result the already
> scheduled work crashes as it was not neither canceled nor interrupted
> in some safe manner. So, this sounds like something we need to take
> care of, thus this patch.

But my point was the question of why there would be any pending work
in the first place in this case, when we expect Dom0 to be well-behaved.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:25:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:25:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227243.392968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndf8-0005a6-VL; Thu, 18 Nov 2021 09:24:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227243.392968; Thu, 18 Nov 2021 09:24:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndf8-0005Zz-Rl; Thu, 18 Nov 2021 09:24:58 +0000
Received: by outflank-mailman (input) for mailman id 227243;
 Thu, 18 Nov 2021 09:24:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mndf7-0005Zp-Cc; Thu, 18 Nov 2021 09:24:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mndf7-0008HR-6B; Thu, 18 Nov 2021 09:24:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mndf6-0007Hv-Ro; Thu, 18 Nov 2021 09:24:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mndf6-0007eZ-RJ; Thu, 18 Nov 2021 09:24:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=S58yGO0KMwTomt98/UorteQq5KGspOHBIak4Nx8s9dk=; b=tVokTolqmMAMHYVcDm+KINNLkW
	ZkVkXMAdd+tfdEfCnI6tTaLo4SiMno4q5R9pQdYZABh6r0G7fwRLlyP/HDMi+ZQMaRcfc4E/JP8K8
	bdl3pklDlifxtj9edHaG5V4/4EqaHn75wczz/gD8qBjFXABiDo2oOhkjQjtwLRTGeI2M=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166170-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166170: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=52cebbfc133fb784644edeae1e5b53aac3b64e5f
X-Osstest-Versions-That:
    qemuu=9104bd89dadd0b17c414ba24b0841d0042179a2e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Nov 2021 09:24:56 +0000

flight 166170 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166170/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166159
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166159
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166159
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat    fail  like 166159
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166159
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166159
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166159
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166159
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166159
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                52cebbfc133fb784644edeae1e5b53aac3b64e5f
baseline version:
 qemuu                9104bd89dadd0b17c414ba24b0841d0042179a2e

Last test of basis   166159  2021-11-16 20:09:44 Z    1 days
Testing same since   166170  2021-11-17 12:28:33 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alistair Francis <alistair.francis@wdc.com>
  Bin Meng <bin.meng@windriver.com>
  Eric Blake <eblake@redhat.com>
  John Snow <jsnow@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Richard W.M. Jones <rjones@redhat.com>
  Thomas Huth <thuth@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   9104bd89da..52cebbfc13  52cebbfc133fb784644edeae1e5b53aac3b64e5f -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:28:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:28:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227249.392982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndiX-0006El-Fp; Thu, 18 Nov 2021 09:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227249.392982; Thu, 18 Nov 2021 09:28:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndiX-0006Ee-Cb; Thu, 18 Nov 2021 09:28:29 +0000
Received: by outflank-mailman (input) for mailman id 227249;
 Thu, 18 Nov 2021 09:28:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mndiW-0006EF-Bl
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:28:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mndiU-0008Li-WC; Thu, 18 Nov 2021 09:28:27 +0000
Received: from gw1.octic.net ([81.187.162.82] helo=[10.0.1.193])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mndiU-0004BM-PG; Thu, 18 Nov 2021 09:28:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=L3yxdPzhdNeeoGqr96qq/zmQrgZOuF25Y/ZOAg2pwO8=; b=zd+SrMl/4Nrg/YRy1H0rHR5kbU
	F2aO/89SOFlELdqwpaUSPdGFJ0iU16gf68VkzJdls3nGMWuOIeeIe4r3UBvjm/oxjA5AER9fjaQpN
	yxQzY8TzYQ1+OhV3DTC0i9HLG+2115o47UEDMcovTUdps6zb+sHto643sFf1xKkOVcxU=;
Message-ID: <f46d7a85-b323-1219-8409-b435720846a6@xen.org>
Date: Thu, 18 Nov 2021 09:28:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH 1/5] xen/domain: Remove function pointers from domain
 pause helpers
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-2-andrew.cooper3@citrix.com>
 <dc639bdb-a025-4ddf-f328-8aca91bf9ea9@xen.org>
 <23b5c4ae-d4da-3d01-42f3-17f1504a0a6a@srcf.net>
From: Julien Grall <julien@xen.org>
In-Reply-To: <23b5c4ae-d4da-3d01-42f3-17f1504a0a6a@srcf.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Andrew,

On 18/11/2021 01:47, Andrew Cooper wrote:
> On 12/11/2021 09:36, Julien Grall wrote:
>> On 11/11/2021 17:57, Andrew Cooper wrote:
>>> Retpolines are expensive, and all these do are select between the 
>>> sync and
>>> nosync helpers.  Pass a boolean instead, and use direct calls 
>>> everywhere.
>>
>> To be honest, I much prefer to read the old code. I am totally not 
>> against the change but I can see how I would be ready to introduce new 
>> function pointers use in the future.
> 
> Really?  The only reason there are function points to begin with was 
> because of a far more naive (and far pre-spectre) me fixing a reference 
> counting mess in 2014 by consolidating the logic.  My mistake was not 
> spotting that the function pointers weren't actually necessary in the 
> first place.
> 
>> So I think we need some guidelines on when to use function pointers in 
>> Xen.
> 
> It's easy.  If you are in any way unsure, they're probably the wrong 
> answer.  (Ok - I'm being a little facetious)
> 
> There are concrete security improvements from not using function 
> pointers, demonstrated by fact that JOP/COP attacks are so pervasive 
> that all major hardware and software vendors are working on techniques 
> (both hardware and software) to prevent forward-edge control flow 
> integrity violations.  (The mandate from the NSA to make this happen 
> certainly helped spur things on, too.)
> 
> There are also concrete performance improvements too.  All competitive 
> processors in the market today can cope with direct branches more 
> efficiently than indirect branches, and a key principle behind 
> profile-guided-optimsiation is to rearrange your `ptr()` function 
> pointer call into `if ( ptr == a ) a(); else if ( ptr == b ) b(); else 
> ptr()` based on the frequency of destinations, because this really does 
> make orders of magnitude improvements in some cases.
> 
> We have some shockingly inappropriate uses of function pointers in Xen 
> right now (patches 4 and 5 in particular, and "x86/hvm: Remove callback 
> from paging->flush_tlb() hook" posted today).  While this specific 
> example doesn't fall into shockingly inappropriate in my books, it is 
> firmly in the "not appropriate" category.

Thanks for the full explanation. What I am looking for is an update of 
CODING_STYLE to make clear the function pointers should be avoided in 
Xen and when we would accept them.

>>> This actually compiles smaller than before:
>>
>> ... the code doesn't really compile smaller on Arm:
>>
>> 42sh>  ../scripts/bloat-o-meter xen-syms-old xen-syms
>>
>> add/remove: 4/2 grow/shrink: 0/6 up/down: 272/-252 (20)
>> Function old     new   delta
>> _domain_pause                                  -     136    +136
>> _domain_pause_by_systemcontroller              -     120    +120
>> domain_pause_by_systemcontroller_nosync        -       8      +8
>> domain_pause_by_systemcontroller               -       8      +8
>> domain_resume                                136     132      -4
>> domain_pause_nosync                           12       8      -4
>> domain_pause                                  12       8      -4
>> domain_pause_except_self                     188     180      -8
>> do_domctl                                   5480    5472      -8
>> domain_kill                                  372     356     -16
>> do_domain_pause                               88       -     -88
>> __domain_pause_by_systemcontroller           120       -    -120
>> Total: Before=966919, After=966939, chg +0.00%
> 
> 
> ARM, like x86, compiles for speed, not size.  "it got a bit larger" is 
> generally not as interesting as "it got smaller, despite everything the 
> compiler would normally do in the opposite direction".

My point is you have a generic section "this compiles smaller" section 
in your commit message when in fact this was only tested with one x86 
compiler version.

So at the minimum you should specify the version/architecture because 
otherwise this sounds like you claim smaller Xen for everyone.

But to be honest, I don't really see the value to mention them as this 
is depending on your compiler (e.g. it may be bigger or smaller) and as 
you wrote it yourself "you're saying that for an removed 5 instructions".

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:33:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:33:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227253.392992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndmu-0007bM-20; Thu, 18 Nov 2021 09:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227253.392992; Thu, 18 Nov 2021 09:33:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndmt-0007bF-V1; Thu, 18 Nov 2021 09:32:59 +0000
Received: by outflank-mailman (input) for mailman id 227253;
 Thu, 18 Nov 2021 09:32:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mndms-0007b9-R8
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:32:58 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82aa87dd-4852-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 10:32:57 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AI6Xp5o012873;
 Thu, 18 Nov 2021 09:32:54 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2105.outbound.protection.outlook.com [104.47.17.105])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cdc4kh853-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 09:32:54 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB7427.eurprd03.prod.outlook.com (2603:10a6:20b:267::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 09:32:51 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 09:32:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82aa87dd-4852-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Q+OLJXVQIfDmajoPiQTxdJZMNGOf1rraCC45rt/wbrxu8AuTrrxed/ss66/3QzXKKiE36O36dx58QWa0CCxYK6TKYL6j99/DIhlTazg0h82K3YByfpm/lXUfeJl1X1C4pEzsf1GFIiyeKaYU/5cBakBBfXPsqDEQUIQy6WomVaI/ROvv62U+zCzk/+1oGXWWvwhtv9LIlUBteMfood+NsoIRLzK0Nl+5H7PrS6TvpeZVT3NiSMPxcW3v+PYozUQCbZ1wptGByOVCllSwrfXpBTHj4SUMaWlmtWIxI5yaIUFohSYRBuIOxaP2VjLpbAO6v8eOpcQuwXF+aF24R7/xqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v3Q05aaD6d6aRKdufVlG1cq8/91qZuyaHzj40U6mZ34=;
 b=GWkGpsSLkUviOKcE8s+t3RPgJYZXpLiebHfhlKj9nhpeMy+s4+PBgbil0Bsieqz4bpFuh+lmlYq9OlOv8yB4Mn8+1VRuIFEg5SlIIb4CyGcrjpRd7uG4cmVXAq73T0573LmpaY3oIb2giODn18LKcSqDwLAsK2cxB0G51NoUoDmNUnaYB42X5BBHapXx1yTZty7sqnosPtwFZHGTpbmysgFq4z3N8FDLC+cTBBwH6Us4YgEZ/BTDW4icy40HrU3cwoE32SmRxzPlHYs8Y2ljrx90e9/ABaysTs5ZKbqVL7AE5MdXKd2TU0mOks2Or9FDCjXUZ/EK2ohR0eRC4Q5deQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v3Q05aaD6d6aRKdufVlG1cq8/91qZuyaHzj40U6mZ34=;
 b=of/dV2a5BYgYbMs//cSXBwXWaPnen/cXR1IICYvCQmsyJdz3pg5Z9F20XyCaybbkdnNzZcsDZCptBO9Q3oFbuEul5qrpvJq271r8BN4CJSzJszsJyOflJpbB1WpuMqTIB+0RqA68NsuxaxfPptIBphZar+hNONh3D0LqL3faU15ltq7T9OOJmMOVS+CslikeoWMaUSc7qHnOt7YwX2DKXNthF3Ol+8y9kV0vfMqE4jmr/+TkMzMMYVawdzMF6g3pJsNahG5ha75B2BTQ9GdbrRQBJ/sGQ99rJ11k2em19S7wnUgtPm1T1MaBC4KZJb7LDDS1ZMa5Z7G98Re6O+9Ewg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAA==
Date: Thu, 18 Nov 2021 09:32:50 +0000
Message-ID: <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
In-Reply-To: <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3e213129-6806-4587-a41b-08d9aa76640b
x-ms-traffictypediagnostic: AM9PR03MB7427:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB74278F5B945273BCB34714E3E79B9@AM9PR03MB7427.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 UlKp+1zJ9mi1UQmg70AJrI6BS9kcam8jAq86rJ2BWLSRTKIERmvSGN8BbTXtXlABibb80s0WXF5xG+JtEqZ4jEUaTdIZpHy+HJXUhVC+azdJHZpNnYA/r1A7UwARhrbKJ2w0Snm1yGyeCZ/Hn9Czi4yY31A/1k6EFHPIZ6X0NpaK4Mq6Rp6YT79zyHZVciOYxjn9/E9uALQ51eYR3ClKkQ1ctrOyn7xyIz8OiPm+QLDJUQUJKCM1L8MXMVZ3N14KmoIpIxdukcAOZvPtVeUeZuj9k8WO5IxxkQ102qkoz6xYlNc6ioArVABMuQ93DjLRABgAiwyMKp4jYOhcWKGJZsKQiIo5VoCvpFtnJIb3mkt0WSe8unG6RNj8FwN0Y8iVD8YmyJGNuQDq19HoS/iNtyjC9KG+tc/te0XH8azDsDj4dknm+McASXXx6NObcbEM0Wbbou2vgSy2y3iWO1HTQF1tshmsVVJdl2FknjC/rzVODOJqENFhvV4HuGhB6QQTqArz4oeJHqoEsjS645Woe4upMT23PocnCBykPmn8lX4O9Uen2/Jp2V5zL4zyVzCOtpfGgrfh5JZb4YWi5/IDiLutoy9YopJlwM3laX/CzLLp2OOsLMJ3C0NxUxjlJi6EOycy6rXzU6lxU5LetBu+N+TApzjib97pxnDWKj+DD5XGbmwNqywobTMPJrlbfkK9hYhzoHIMyuXq3VjBbxTWzVJTQYl5qJoaQxygWOyu/uiJNvaj+zJzdM308S57jqso
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(107886003)(2906002)(54906003)(186003)(36756003)(316002)(6486002)(71200400001)(38070700005)(5660300002)(2616005)(7416002)(6512007)(86362001)(6506007)(8936002)(83380400001)(122000001)(38100700002)(31696002)(6916009)(31686004)(66946007)(8676002)(26005)(508600001)(91956017)(66446008)(66556008)(64756008)(66476007)(53546011)(76116006)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?OXV6S05hc2I2M1FlcGErV2VCTll5VmhnM1Q0SDhxMVp5blNYTzVSS1RUejky?=
 =?utf-8?B?Q05vc2lQWlQ4MXZDbmJ5MXh6TGV4MVdLZ0w4VTRjQ2NZNHFDaUF5TE9sQUZw?=
 =?utf-8?B?S2NzRzBkUEdwZVNRV0xhSUFpSVd6VTRJWU9YcFd0UTJxaENKZDdUWkVMekpy?=
 =?utf-8?B?cmpmM1UwVWRKemRXcmFBd1dMazArdUF1QjlkMW9QWnl2V3RnVzk4Zk0ycnlW?=
 =?utf-8?B?RW0zTVhZOXN6bytuMFZzc1FualJYcGFzUnNtV201K1ZhbzBpQXJpZFV3Y2NS?=
 =?utf-8?B?NlF3SUh2QktIcU05RXN6T2M1bmNXTFVqWGw1ZDI5b3BMcFIyUHhGOEZlbDF2?=
 =?utf-8?B?aWVoWTcxcUlLTHcxOXZ4MGRreU95aHViaW95Mi85WGRRQU1NK2QzZE83R2FB?=
 =?utf-8?B?N3BmU1ZRZ21vc05nZ1o2eHk5ZHFXdHMvT2hvSlNvWTdyVW13a29WSGJSa2dJ?=
 =?utf-8?B?YzF4SFJMQVp5YTdPQjM3TDkzU0QvKzNEWTd5d0E3bWNJTVJRUUhpd1B0Sklv?=
 =?utf-8?B?ZGROOW9scHAzb2t5YVVkajFaZTFEdW8zWGp6ZDRHVFhrYmJ3cnZtSVZvUVhh?=
 =?utf-8?B?YUlnVW0rL1ZSMEtmb3RiUGhZL1M5dldQTkdrWmpONnU0WkFVYUJBNW1EWm1y?=
 =?utf-8?B?NTF6aUQ2OFR3M0F1REJtTEVCTzRpWmdkSmVxcTd5WXc3YVdqaWpWY0pqbmwz?=
 =?utf-8?B?WURWVCtzK1hyT1A1NXJOSWh1alBlTUJLaFJHOUp5b2NkZmFGUXhyYkZVa1Rr?=
 =?utf-8?B?Sk5xMUU4bHlhQTFOSmp1NGxQQjhxVmZ6VDdnRXByYlNKUmRQUzBSTCtrY0Yx?=
 =?utf-8?B?MThmM3k5NW1jWXNFZjVodGRvMEZ5bjlkeUk5eDhXV09ET0xXWUQ5S3hmaHhr?=
 =?utf-8?B?YktNTGw4aXJYM2VSSm5rUmljNHM5SWtoV0hkdjBHY2hDVENXZEQ2R1h3bWpr?=
 =?utf-8?B?QUhTakRFNm9WckpKQ0FIL1FjY1h5bFo0TGlTdXYzdzc2U0w2OFkyNHZYcVpo?=
 =?utf-8?B?bDZ0dExMbm5mOWpXenRMZmNOT202aTNqckhpcFlCcjV6VFZsZHVvS1FJY2dZ?=
 =?utf-8?B?bmZ2V2RiUTI2MWZ3QkVSOGxuVm1ubzAzTzVjQ2NxQWxwOUpIdUdsNzdzM1Bw?=
 =?utf-8?B?N3gyY1ZMOHdKbDlGVEczSmNvOHBsWmsxemNpZ1o0cy9hRG1WVEQrdzlZS1Ix?=
 =?utf-8?B?QWpmYXorZXN6MlV3QmxvSDJqZTRGbmJ2eW5WV25zWWNiVGtPT0VsT1krM3gw?=
 =?utf-8?B?bStMRTFSSnVOK0xOL1dSSnQ0TmsrakpqaUhvaGVWd1pyQmJnOS9DcFBTV2c1?=
 =?utf-8?B?cDlENGxGYkVRVk1VaURxcWRKZS9mSkhzMFkyQmF2c2dCbHhkVHRLN2w0RDc1?=
 =?utf-8?B?OUNrdzlPbDNzR0wxYWl2dVVZcnNvWUNmdWxtREhZQXRPL1Y4NVVvZjdvMWlJ?=
 =?utf-8?B?aVY2TlRjTmpQazUxMlpLaDhqR1dXVTNUZ2orWERHWVhZS2VRdEFrZUY5QmdG?=
 =?utf-8?B?SWczWHFSRVprN3NUMTJTSUZmditDQlpMV2M1bXdZQlJab2FBWkIvZWlFSVh1?=
 =?utf-8?B?dzZjUjFKN2hPdjVYSGFQZTBrRExWaktnYkpYajhlaHFqOUE2eEU0SjFSSFdK?=
 =?utf-8?B?QzB0MnlqaVg4Y2RLL3RnZ05yYTlQUFJwdlh6djNYMEhmMFk4U0w0WE1Ca3Ni?=
 =?utf-8?B?RUtGUzNMWkMzZHdUV1QxUFozT1pqeFJGZEE4Q0xiK04zd3EwUWh3UTBwaUVa?=
 =?utf-8?B?K3dSWWlvRC90a0p3ZlVnaVcwczBVY2dkOUcxWUt2K2E5S0dJOGowUk1XUTNT?=
 =?utf-8?B?aWovNFFXbVBZaUhzbUl4a0JWclVsWC9qR2RHUUlteFh2NDE3UUpQVkcyWE9h?=
 =?utf-8?B?YVNETHlVVEQwaWdiTzU1RUJ0c0l6UzhvWDdmTlpnSUhOM3JrWDA2TDJxVjAw?=
 =?utf-8?B?cmZlRjlvQUEwWXV1TmpHQ1R0NWVucDNSRW5uNGh2RHI0R2hiUUF5dlhVelVq?=
 =?utf-8?B?TlRsNk8zRTExT1oyd28rUUx3UmU1cUJmVEl3RTVDU0FQcWFYeUQ2dVF1RlNr?=
 =?utf-8?B?Q3dZK21aRnZqOWxDNjVmcXlwZGR5ejJXRUkwa2IvaEZmb1ZSQXlYSUUxZVZj?=
 =?utf-8?B?bndLTzh1bXVGeC9yWWNicGVnb0thVmtkMUpOaER3L2lpT0xVSkRMcExVWk5k?=
 =?utf-8?B?ajV6Q0J3VnloS090RDRPVVJXbkNZVjBTV2RXZVFXWlRVYVhoc2pnOXRoZ3Y5?=
 =?utf-8?B?dXZ3L2Q0RDEzc0JQTUJHeDBpQXVOaDBNWUIzZGlXdUZHa2QzaWNpVnRRQmFp?=
 =?utf-8?B?SWlOOHY5dFBHUFl0TGdyVUUveEttZ0RyUi83RzMxSzM2R2NjWCtTQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E764EC16AF70A248BC606EADF8674C0D@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e213129-6806-4587-a41b-08d9aa76640b
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 09:32:51.0067
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: PZ7uWCG2uX2AsfUJ/OFePEtNhN0uKK634N3Jn7xVesPrTlW2PpTOEHAyDq9/0oRey87cW4L9I0TJTnVLrocLptXkkA8/NFd/wsq6QkWpZBS9PrUQaHS/WfhVI1aA6jEH
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7427
X-Proofpoint-GUID: vuKIKkaXokHUDiCoUwgJ00b0IG8aZgQw
X-Proofpoint-ORIG-GUID: vuKIKkaXokHUDiCoUwgJ00b0IG8aZgQw
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_04,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 lowpriorityscore=0
 mlxlogscore=999 suspectscore=0 spamscore=0 priorityscore=1501
 impostorscore=0 clxscore=1015 adultscore=0 malwarescore=0 phishscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180055

DQoNCk9uIDE4LjExLjIxIDExOjE1LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTguMTEuMjAy
MSAwOTo1NCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOC4xMS4yMSAx
MDozNiwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTguMTEuMjAyMSAwODo0OSwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IE9uIDE3LjExLjIxIDEwOjI4LCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIHdyb3RlOg0KPj4+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVr
c2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4+Pg0KPj4+Pj4+IFdoZW4gYSB2UENJ
IGlzIHJlbW92ZWQgZm9yIGEgUENJIGRldmljZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGhhdmUN
Cj4+Pj4+PiBzY2hlZHVsZWQgYSBkZWxheWVkIHdvcmsgZm9yIG1hcC91bm1hcCBvcGVyYXRpb25z
IGZvciB0aGF0IGRldmljZS4NCj4+Pj4+PiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBzY2Vu
YXJpbyBjYW4gaWxsdXN0cmF0ZSB0aGUgcHJvYmxlbToNCj4+Pj4+Pg0KPj4+Pj4+IHBjaV9waHlz
ZGV2X29wDQo+Pj4+Pj4gICAgICAgcGNpX2FkZF9kZXZpY2UNCj4+Pj4+PiAgICAgICAgICAgaW5p
dF9iYXJzIC0+IG1vZGlmeV9iYXJzIC0+IGRlZmVyX21hcCAtPiByYWlzZV9zb2Z0aXJxKFNDSEVE
VUxFX1NPRlRJUlEpDQo+Pj4+Pj4gICAgICAgaW9tbXVfYWRkX2RldmljZSA8LSBGQUlMUw0KPj4+
Pj4+ICAgICAgIHZwY2lfcmVtb3ZlX2RldmljZSAtPiB4ZnJlZShwZGV2LT52cGNpKQ0KPj4+Pj4+
DQo+Pj4+Pj4gbGVhdmVfaHlwZXJ2aXNvcl90b19ndWVzdA0KPj4+Pj4+ICAgICAgIHZwY2lfcHJv
Y2Vzc19wZW5kaW5nOiB2LT52cGNpLm1lbSAhPSBOVUxMOyB2LT52cGNpLnBkZXYtPnZwY2kgPT0g
TlVMTA0KPj4+Pj4+DQo+Pj4+Pj4gRm9yIHRoZSBoYXJkd2FyZSBkb21haW4gd2UgY29udGludWUg
ZXhlY3V0aW9uIGFzIHRoZSB3b3JzZSB0aGF0DQo+Pj4+Pj4gY291bGQgaGFwcGVuIGlzIHRoYXQg
TU1JTyBtYXBwaW5ncyBhcmUgbGVmdCBpbiBwbGFjZSB3aGVuIHRoZQ0KPj4+Pj4+IGRldmljZSBo
YXMgYmVlbiBkZWFzc2lnbmVkDQo+Pj4+Pj4NCj4+Pj4+PiBGb3IgdW5wcml2aWxlZ2VkIGRvbWFp
bnMgdGhhdCBnZXQgYSBmYWlsdXJlIGluIHRoZSBtaWRkbGUgb2YgYSB2UENJDQo+Pj4+Pj4ge3Vu
fW1hcCBvcGVyYXRpb24gd2UgbmVlZCB0byBkZXN0cm95IHRoZW0sIGFzIHdlIGRvbid0IGtub3cg
aW4gd2hpY2gNCj4+Pj4+PiBzdGF0ZSB0aGUgcDJtIGlzLiBUaGlzIGNhbiBvbmx5IGhhcHBlbiBp
biB2cGNpX3Byb2Nlc3NfcGVuZGluZyBmb3INCj4+Pj4+PiBEb21VcyBhcyB0aGV5IHdvbid0IGJl
IGFsbG93ZWQgdG8gY2FsbCBwY2lfYWRkX2RldmljZS4NCj4+Pj4+Pg0KPj4+Pj4+IFNpZ25lZC1v
ZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0Bl
cGFtLmNvbT4NCj4+Pj4+IFRoaW5raW5nIGFib3V0IGl0IHNvbWUgbW9yZSwgSSdtIG5vdCBjb252
aW5jZWQgYW55IG9mIHRoaXMgaXMgcmVhbGx5DQo+Pj4+PiBuZWVkZWQgaW4gdGhlIHByZXNlbnRl
ZCBmb3JtLg0KPj4+PiBUaGUgaW50ZW50aW9uIG9mIHRoaXMgcGF0Y2ggd2FzIHRvIGhhbmRsZSBl
cnJvciBjb25kaXRpb25zIHdoaWNoIGFyZQ0KPj4+PiBhYm5vcm1hbCwgZS5nLiB3aGVuIGlvbW11
X2FkZF9kZXZpY2UgZmFpbHMgYW5kIHdlIGFyZSBpbiB0aGUgbWlkZGxlDQo+Pj4+IG9mIGluaXRp
YWxpemF0aW9uLiBTbywgSSBhbSB0cnlpbmcgdG8gY2FuY2VsIGFsbCBwZW5kaW5nIHdvcmsgd2hp
Y2ggbWlnaHQNCj4+Pj4gYWxyZWFkeSBiZSB0aGVyZSBhbmQgbm90IHRvIGNyYXNoLg0KPj4+IE9u
bHkgRG9tMCBtYXkgYmUgYWJsZSB0byBwcmVtYXR1cmVseSBhY2Nlc3MgdGhlIGRldmljZSBkdXJp
bmcgImFkZCIuDQo+Pj4gWWV0IHVubGlrZSBmb3IgRG9tVS1zIHdlIGdlbmVyYWxseSBleHBlY3Qg
RG9tMCB0byBiZSB3ZWxsLWJlaGF2ZWQuDQo+Pj4gSGVuY2UgSSdtIG5vdCBzdXJlIEkgc2VlIHRo
ZSBuZWVkIGZvciBkZWFsaW5nIHdpdGggdGhlc2UuDQo+PiBQcm9iYWJseSBJIGRvbid0IGZvbGxv
dyB5b3UgaGVyZS4gVGhlIGlzc3VlIEkgYW0gZmFjaW5nIGlzIERvbTANCj4+IHJlbGF0ZWQsIGUu
Zy4gWGVuIHdhcyBub3QgYWJsZSB0byBpbml0aWFsaXplIGR1cmluZyAiYWRkIiBhbmQgdGh1cw0K
Pj4gd2FudGVkIHRvIGNsZWFuIHVwIHRoZSBsZWZ0b3ZlcnMuIEFzIHRoZSByZXN1bHQgdGhlIGFs
cmVhZHkNCj4+IHNjaGVkdWxlZCB3b3JrIGNyYXNoZXMgYXMgaXQgd2FzIG5vdCBuZWl0aGVyIGNh
bmNlbGVkIG5vciBpbnRlcnJ1cHRlZA0KPj4gaW4gc29tZSBzYWZlIG1hbm5lci4gU28sIHRoaXMg
c291bmRzIGxpa2Ugc29tZXRoaW5nIHdlIG5lZWQgdG8gdGFrZQ0KPj4gY2FyZSBvZiwgdGh1cyB0
aGlzIHBhdGNoLg0KPiBCdXQgbXkgcG9pbnQgd2FzIHRoZSBxdWVzdGlvbiBvZiB3aHkgdGhlcmUg
d291bGQgYmUgYW55IHBlbmRpbmcgd29yaw0KPiBpbiB0aGUgZmlyc3QgcGxhY2UgaW4gdGhpcyBj
YXNlLCB3aGVuIHdlIGV4cGVjdCBEb20wIHRvIGJlIHdlbGwtYmVoYXZlZC4NCkkgYW0gbm90IHNh
eWluZyBEb20wIG1pc2JlaGF2ZXMgaGVyZS4gVGhpcyBpcyBteSByZWFsIHVzZS1jYXNlDQooYXMg
aW4gdGhlIGNvbW1pdCBtZXNzYWdlKToNCg0KcGNpX3BoeXNkZXZfb3ANCiAgICAgIHBjaV9hZGRf
ZGV2aWNlDQogICAgICAgICAgaW5pdF9iYXJzIC0+IG1vZGlmeV9iYXJzIC0+IGRlZmVyX21hcCAt
PiByYWlzZV9zb2Z0aXJxKFNDSEVEVUxFX1NPRlRJUlEpDQogICAgICBpb21tdV9hZGRfZGV2aWNl
IDwtIEZBSUxTDQogICAgICB2cGNpX3JlbW92ZV9kZXZpY2UgLT4geGZyZWUocGRldi0+dnBjaSkN
Cg0KbGVhdmVfaHlwZXJ2aXNvcl90b19ndWVzdA0KICAgICAgdnBjaV9wcm9jZXNzX3BlbmRpbmc6
IHYtPnZwY2kubWVtICE9IE5VTEw7IHYtPnZwY2kucGRldi0+dnBjaSA9PSBOVUxMDQoNClNvLCB0
aGlzIG1hZGUgbWUgaW1wbGVtZW50IHRoZSBwYXRjaC4gVGhlbiB3ZSBkZWNpZGVkIHRoYXQgaXQg
aXMgYWxzbw0KcG9zc2libGUgdGhhdCBvdGhlciB2Q1BVcyBtYXkgYWxzbyBoYXZlIHNvbWUgcGVu
ZGluZyB3b3JrIGFuZCBJDQphZ3JlZWQgdGhhdCB0aGlzIGlzIGEgZ29vZCBwb2ludCBhbmQgd2Ug
d2FudCB0byByZW1vdmUgYWxsIHBlbmRpbmcgd29yaw0KZm9yIGFsbCB2Q1BVcy4NCg0KU28sIGlm
IHlvdSBkb3VidCB0aGUgcGF0Y2ggYW5kIHdlIHN0aWxsIGhhdmUgdGhlIHNjZW5hcmlvIGFib3Zl
LCB3aGF0DQp3b3VsZCB5b3Ugc3VnZ2VzdCBpbiBvcmRlciB0byBtYWtlIHN1cmUgd2UgZG8gbm90
IGNyYXNoPw0KPiBKYW4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:35:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:35:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227263.393016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndp3-0008PP-Mv; Thu, 18 Nov 2021 09:35:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227263.393016; Thu, 18 Nov 2021 09:35:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndp3-0008PI-Ig; Thu, 18 Nov 2021 09:35:13 +0000
Received: by outflank-mailman (input) for mailman id 227263;
 Thu, 18 Nov 2021 09:35:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=45Id=QF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mndp1-0008P7-RI
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:35:12 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d18394c9-4852-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 10:35:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d18394c9-4852-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637228109;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=CAAgo7sIvmHSMziNt3qIRoORYfuV5lol3N+4UqTn/Gs=;
  b=ds/RPFYmI33ApzNVXCUIGZxajvRJ1WWqhV12I0tsxht80KK7VJwFjGRP
   kyR7vQOecXJVJ4xYPW4/giZP/ayhL2QIkKigOP/UnXxl9zdf/YmFDTqkg
   6U8o9rZiEde5jtWL/CVpNatUmKDuS8f6pwtLFvuFuVX+SHTZnkctzeERC
   4=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: eXJCbs6qfnyGdrIiwY8kvaYmNYONRZldlCvG4TEh6OF53MWvVqL/esGqum+zC+8iNcImYOwKar
 IoxmW46Ox0wHmzvp7C/4mpSfIaCxQZrPr+0fUivLKRdu7Y5dSC3NBB/pCSjDvUtASeP6BTxJWi
 BXOOzF2axDsGZYpPllDOl/V0OiQ0rFSbj6qp5xUFFjwSgbFwrp9390DwTbmssya1vby4ASmCJP
 WjSdfgVrW+9Qqpyk9Yy7BLjqWfMAr8+Bkcb2rfnwBsmd/y36etz8lq6riTAZ8SciNhrMiEcyh0
 xKMhqKWCuM/iwlEeqdTJiQZ6
X-SBRS: 5.1
X-MesageID: 58130417
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:lTdNH6/YQZrtKdUdJVCqDrUDa3mTJUtcMsCJ2f8bNWPcYEJGY0x3z
 WtMDzyGb63bNDTxKt5wbIjl9BwDupWAzt9gQQtl/n88E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdg0tYy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPh36
 NNmuJfscDw1GZfnyMEXXSJUAx1XaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguw5K8bmJsUHs2xIxjDFF/c2B5vERs0m4PcFjG5r3pwXQp4yY
 eJCbgVEdjWRZyRrJ3kLC5gklfqpjFbgJmgwRFW9+vNsvjm7IBZK+LnyMvLFd9qSX8JXk02E4
 GXc8AzREhwccdCS1zeB2natnfPU2zP2XpoIE7+1/eIsh0ecrkQRAhALUVqwodGil1WzHdlYL
 iQ85S4GvaU0skuxQbHAswaQ+SDe+ERGApwJTrN8uFrlJrfoDxixAEgCZTNKNOUdqOgMbmwP3
 FGyk8PVLGk62FGKck61+rCRpDK0HCEaK24eeCMJJTc4D8nfTJIb1UyWEIs6eEKhppisQGyrn
 WjWxMQrr+xL1ZZj6kmtwbzQb9tATLDtRxV92AjYV3nNAuhRNN/8PNzABbQ2AJ99wGelorup4
 Chsdyu2trlm4XSxeMqlGrll8FaBvajtDdEkqQQzd6TNDhz0k5JZQahe4StlOGBiOdsedDnib
 Sf74F0Ku8YMYCb2PfInOepd7vjGK4C6SbwJsdiOMLJzjmVZLlfbrEmCm2bOt4wSrKTcuf5mY
 srKGSpdJX0bFb5m3FKLqxQ1itcWKtQF7TqLH/jTlk3/uZLHPSL9YepVYTOmM7FihIvZ8Vq9z
 jqqH5bTo/mpeLalOXe/HE96BQ1iEEXX8riq8ZEKLbDafVI9cIzjYteIqY4cl0Vet/09vs/D/
 22nW18ez1z6hHbdLh6NZGwlY7TqNauTZ1piVcD1FVr3iXUlf6i166ITK8k+cbU9rbQxxv9oV
 fgVPc6HB60XGDjA/j0ca7j7rZBjK0v31V7fYXL9bWhtZYNkSizI5sTgIlnl+h4RA3flrsA5u
 bChiF/WGMJRWwR4Ac/KQ/uz1Fft72MFked/UhKQcNlecUnh6qZwLCn1gqNlKs0AM0yblDCby
 xyXEVETouyU+90599zAhKalqYa1ErQhQhoGTjeDtbvvbHvU5Guux4NEQd2kRzGFWTOm4rima
 MVU0+r4bK8NkmFVvtcuCL1s168/uYfi/ucI0gR+EXzXRF23Ebc8cGKe1MxCu6ARlL9UvQy6B
 hCG9tVAYOjbPcrkFBgaJRY/b/TF3vYRw2GA4fMwKUT8xSl24LvYDhkCY0jS0HRQfOlvLYco4
 eY9o8pHuQWwhy0jPsuCki0JpX+HKWYNUvl/u5wXaGMxZtHHFr2WjUTgNxLL
IronPort-HdrOrdr: A9a23:yilI/6/tKOKVeIF21sRuk+FCdb1zdoMgy1knxilNoENuHfBwxv
 rDoB1E73LJYVYqOU3Jmbi7Sc69qFfnhORICO4qTMqftWjdyRCVxeRZg7cKrAeQeREWmtQtsJ
 uINpIOdOEYbmIK/PoSgjPIaurIqePvmMvD5Za8vgdQpENRGtldBm9Ce3im+yZNNW977PQCZf
 6hDp0tnUveRZ1bVLXwOlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJr3CQKR0BsyWy5Ghe5Kyx
 mIryXJooGY992rwB7V0GHeq7xQhdva09NGQOiBkNIcJDnAghuhIK5hR7qBljYop/zH0idmrP
 D85zMbe+hj4XLYeW+45TPrxgnbyT4rr0TvzFeJ6EGT6PDRdXYfMY5slIhZehzW5w4Lp9dnyp
 9G2Gqfqt5+EQ7AtD6V3amIazha0m6P5VYym+8aiHJSFaEEbqVKkIAZ9ERJVL8dASPB7pw9Gu
 UGNrCT2B9vSyLYU5nlhBgs/DT1NU5DWytuA3Jy9fB96gIm3EyQlCAjtYgidnRpzuNKd3AL3Z
 WCDk1SrsA9ciYhV9MLOA4we7rFNoXze2O4DIuzGyWuKEhVAQOHl3bIiI9FkN1CPqZ4iqcPpA
 ==
X-IronPort-AV: E=Sophos;i="5.87,244,1631592000"; 
   d="scan'208";a="58130417"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AAG+Us73IbODWmvfcJuFYpSR0iEBenx+rVfODkBXn7q535l6j/H8kyPoMw4AIOxsLokK2Qt6ZniMH1GlhPPisSCFf0tBkl5GcWtKchNaTc5Ney/2C3vVLV4JX0MC+U4+CSSxoi/QxGkR8BEI6RhHxFaBeYmtRys9xdBxFFXHzIdpjkVfMNGeCBiGZ1cSB+dofB9YzDbw9N55PPNHm4CJetZOVetqFEkCbs16KVlPAz0l8lawcVb7Fpav8ZyZxlmsxogfpazfFutZ9Jhah6OkmuHTIJeHcgFhVRNIKnPAr3nyjhvrZYgceSTxR3x4X25xOfDDAcCxhphacMZYNyjmFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GoWQ71HXUd+cJ3hMxF7fMYUXTE8CKyFN8s2LY//+xMA=;
 b=VP678NmbTX9gS/f1JDqoP1qqUGbGSRDhE8RobpCWSmemN4LnbPH7w0E4PoBqvhWQZRD54/vSD1ZKUm55yI2inqLXvmXCigTGz3FHuJnH/5edFACKDXiTHrzbJP7z5y+tgbU5D8K0De1zqJPsJ/X21PRKkCD39BIPdyj/8mujlfIR/mrylr+JjafmuTOUFqi1+Ny8CZ4zmnBHQXMe6I3rXiBt9UtkTlGrjO9cMHo+D04s1xoquDKQ5TBSNc1ECOWsV6ZmM0wWgNM3zLNJsuMXC4KSHYR5F6UzgIkhPZO8vrd9Iat/E5ovLZPw/l3g5OLwA7k8pp3TAGt6pQTNelMnDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GoWQ71HXUd+cJ3hMxF7fMYUXTE8CKyFN8s2LY//+xMA=;
 b=eViC1tGAr1iVIXmm3aL4SCK39CmlRjuC7H7np88Mf2J16C+FBIX3cSiTkcHXxti3PABmjL/r4Qxw0S07wPbglU9wwcdrGVMqepRTO2qjAkJ/f3xBCnexqIj4UuF+EDJE46xGZZWpwUMCC0slS273sT3ySwSNJPKN6XaHSUCosEY=
Date: Thu, 18 Nov 2021 10:34:59 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
Message-ID: <YZYeQ7/feMBrTFSu@Air-de-Roger>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
 <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
 <24962.46376.136195.463274@mariner.uk.xensource.com>
 <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
 <67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
 <2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
 <YZYP3BpugHwOhNuV@Air-de-Roger>
 <def0133b-9eb2-44cd-33c3-39c9d0dca9f4@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <def0133b-9eb2-44cd-33c3-39c9d0dca9f4@suse.com>
X-ClientProxiedBy: MRXP264CA0039.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::27) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8d27de33-bd94-410e-1c4a-08d9aa76b3b8
X-MS-TrafficTypeDiagnostic: DM5PR03MB2924:
X-Microsoft-Antispam-PRVS: <DM5PR03MB29249F9B22AC1701781BFA448F9B9@DM5PR03MB2924.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6108;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: EyLhpT/SYp0lHOdC/mxZwhyJj7lPKCI3PW/gXrdiJYGxboKxL86lQBEEOtVM8u3QUyVXz5EalnYdJgSgu1akiV+OMX22kagF/ccQH/+1N9wYdH8VOCaAGbzqNDPvyZ8olOJG/SmotZ997Ey3Grhfh5Cxcb5w3um3j9ktwpt31sASXBGlyxcPvICRcPftSAg3rLV3KiktDUq8Yg9Xn8kOxiq+08PAeN+ktsnHRGqZbAThkKjywJdIUj0E35Lxcrnex1UEwimlOp2KRMVcnhpUHFG/vMPqL1//HFqmuvYesixUYDmD4wiLLx34OPwko8LZhknoZyVZAmpPxf5xjvzSce49DMnJzHRT03lcP2GwNqiPNkMrEI5y89MhJnrlyyhU9XwT9gkdwKQ9AZZhWZR0NMUB97kgZmaT/xv7C1hP5m6AOrZ6wtZ+bUltLwYFIJ/KonT5sUVU6RTeMpoat0Zebi96hAoMw7+gOdPDP/ardSO7gwECaLcig9MDqsk5nrerbkcBtZJT86CJNV7hQ6oEGfF89azadu/wDwmB67QYxjgo/fB2Kr5jYWeKnBr8Ti8mIgWvo13zjdjpRLRfdMd5A9JmTPj0WeBECf+Wa4aafpSW+PKqnC9TVT3C1VdMmuhwEL1xv2baSrJHjN1xYSMsfYTlEYCPbB8A4rNf19WgNSwwdnohPVQSh/971bbU8qCnPtS5KtDyHiZebgy5E6OizP49kGPxJWm642433wywfJo=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(26005)(86362001)(6666004)(956004)(2906002)(6916009)(6486002)(6496006)(8676002)(53546011)(54906003)(8936002)(966005)(33716001)(316002)(9686003)(66476007)(508600001)(5660300002)(4326008)(85182001)(38100700002)(66556008)(66946007)(82960400001)(186003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZmkwSUJ2R25zMkdXb3lOUVNndTQvcDBJNGJZY3VaVGtJa1I0RzE2eW8xS245?=
 =?utf-8?B?NU92V2RlRlN3TVltOVNBQ09PMGxMRlVTV1g4UTM2N1ZWWHcveGZNVURSTTdV?=
 =?utf-8?B?VTA2d0E5N3NTaHFSZVp5eTgva2JaQnBuWGZtSDA5dVBReHR3ckREV0orbDJR?=
 =?utf-8?B?U00zTHQrQUZnbTJxWVpHb1lQaEx1b2p3ZC9zWktFdGM2ejlUYVJkRXh2ZnBY?=
 =?utf-8?B?RXd2TlZ1WUgxSnRlNmdjU3ZKblRxQ1Y2ZkV0ZGt2OHFtUTkrSFFVRVJlSGtY?=
 =?utf-8?B?MjIwQjhncXU2ZVRJVzg0Wi9ScXlnVWwyOFFKZ203VFZROTVxcTlMc2hlOFc5?=
 =?utf-8?B?M054UURSTVVJWFFiVUlPR1hoK0FCcDNPbHhhQ1NXZGxyd1NXRUtnekJrWDh2?=
 =?utf-8?B?WDdaZU00OElCUjRDbzVJUVRTNVNPaWZ0WW5MOU9JYVFZOVZRWlNZTGJndlZt?=
 =?utf-8?B?ckozTmVoSWdJNkplaStFVkUzM1Q4MExFMmpRODBMYWI0MHRaNHdxc2Zlb0Q1?=
 =?utf-8?B?R3N0akk0ZFdrbC84OWlNQk5URjQxSWs1dkZpVGtnMERodUZ4ZEJpQmNRNWww?=
 =?utf-8?B?Y0R1aXpKWndDSm5DK0NEZ1l3TFFsQUpVb2YyRklIZmFXQUJJL1dveUNQdVIw?=
 =?utf-8?B?cW9YUkZ3a3RqZFVPMTNUNnhENzlNTDJYNXFxbXhhMlBGKzVQNkRMSk1rZzZ4?=
 =?utf-8?B?WThoKzZjYzRQVVVJNzduUlUrZGhEQitIcFd6dkZHRmFNd21mVkcrTUNTbXJt?=
 =?utf-8?B?NFN6aGFwWGtCQyt4Mys2a2UxcEtZWDhqN2pLT3djMGJPOUQ5RFlTYkM1OGR1?=
 =?utf-8?B?eC9Zdm82TGhqRGRQVFlSeWVEdUIzeC9YSVMzWC8xQXRIRk9hMGN4NHlHRjdp?=
 =?utf-8?B?M1JORWsyWFNXS1Z1a1pabEhzRS9qWkhLM2NTVkZVN05QaTNYdjVUemlKN2p2?=
 =?utf-8?B?SVAyNWFvcXNFVm5vODJSN00rTWN0eHgrUzA5MmlnWEtJTXBZcmR6bDFSZUh0?=
 =?utf-8?B?bzh0cVAxeE1WRXJYVHVzK1BGQ2lZcSs3WVdlQXcvbzI0czJ2VXo2dU9vUDQx?=
 =?utf-8?B?T3pXRWFneWNOQnRVT2JBWExtSjRBWCtsVFNaTThYazZSV3hmMjRLUW12Q3BX?=
 =?utf-8?B?d3BQdUlOTXNwVTd4UHY1bDVENnF0YzZLYmQxTEMwSTE2dENyNFU1MDdlUTBX?=
 =?utf-8?B?blNKMmdTMFVpbytTMU02U09scHprRmk5TG9GREF1OVZSU1JRSmdCYm9EWita?=
 =?utf-8?B?STZOdVJhWkIvVTduTER1dzRiQ1hiYkpLb2ZPVktZY2pyeUMxL21XbVJZSFZz?=
 =?utf-8?B?WHdBelYrOEJndzhxYVZwTFgvM2RrekVOS0JkNDVMbStzbHFqSTNiTmdxUUpU?=
 =?utf-8?B?TWVidXM0aEVwUGpDTkZEVDVVUERvcWNvaWNGMC9RUW16b2lLeUM1YWV4QjhX?=
 =?utf-8?B?TVZEVWNrREZCVDl0alIzN3VMdWZlR2pEaDlxS1ppT0l6b1M4K1VhVEEwYTFv?=
 =?utf-8?B?NUM4VzErNUw1bEJXSXFaWmY4S1dOa1dyV2dzdmhkWWcrbEdFY0ZzVXMvRGFM?=
 =?utf-8?B?Z0FQR0lta1JTVTZhd0NRbk9JaVRFUGNMMlFYYjJyZlhOU1V6MUh4aWc1cWpy?=
 =?utf-8?B?RFVPZkNNL2E5RzZOVFB6bDdIY2RzVEloNkhoaUtSQjluSTFaWW1nNXJPNmJC?=
 =?utf-8?B?OVVSNkd2N3Q0b2JVVlovaGRpMnZoWEtHUVF4MnFwVmFiU0RQQzlicDF6SFFR?=
 =?utf-8?B?WVFnMW54aHJkNEpoUTdVbS9EYWx5QTNmSnQ5YytuaHRkS3hhaVdxSklUUEN5?=
 =?utf-8?B?SjluQlBiS2V3ck9LczV5OTUzNWN1ejgrcDB3bnVCZUJSM3R4WVNZQmZHMXNp?=
 =?utf-8?B?c2xZOHJBOVVHV3JndXhDSkc5TjVsWFFBTzk2clZTdis4YXVuUTd6cGNMaEFh?=
 =?utf-8?B?bmQ1S3cvV2Q2aXREZFhJZkZMcUJPUnBFdUdOSUg3bEVGVnFBZk9ua1NSSXUy?=
 =?utf-8?B?T2Y0R01oZUc2N1BGNVNjdTF3Sys2ZnR5bkN6R3plNENhZUVtN3RPdVNUdnhX?=
 =?utf-8?B?RUtBZmYwU2lHZUdBQzZaVjhNZ0tTajd3c2xlUytwbk9pYnhVRVkraWd4OExO?=
 =?utf-8?B?U0JYRFNhOXo3Z1l4SlBWVzM1a3pldGZkOXliR2RWdXoyYlcyTDE4NGI3blBx?=
 =?utf-8?Q?BLI6GhHn2y9zo3gasXnAeYI=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d27de33-bd94-410e-1c4a-08d9aa76b3b8
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 09:35:04.8960
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: F61i7kJGmn49ygCUKytH+HBlaDycd2KV4cznHfTUYeCKkO8id0KLrxXKKtTCRWUJCSYRtKkI0Bh4Ev86AjvmJA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2924
X-OriginatorOrg: citrix.com

On Thu, Nov 18, 2021 at 09:51:52AM +0100, Jan Beulich wrote:
> On 18.11.2021 09:33, Roger Pau Monné wrote:
> > On Thu, Nov 04, 2021 at 01:17:53PM +0100, Jan Beulich wrote:
> >> On 04.11.2021 11:48, Andrew Cooper wrote:
> >>> If your answer is "well actually, we didn't mean to say 'if a GSI is
> >>> mapped' in the comment, and here's a different predicate which actually
> >>> inspects the state of a dpci object for validity", then fine -  that
> >>> will shut the compiler up because you're no longer checking for the
> >>> NULLness of a pointer to a sub-object of a non-NULL pointer, but that's
> >>> a bugfix which needs backporting several releases too.
> >>>
> >>> The current logic is not correct, and does not become correct by trying
> >>> pass blame to the compiler.
> >>
> >> I have yet to understand in which way you deem the current logic to not
> >> be correct. I'm sorry for being dense.
> >>
> >>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102967 is the GCC bug, but
> >>> the result of it was them persuading me that the diagnostic was
> >>> legitimate, even if currently expressed badly.  They've agreed to fix
> >>> how it is expressed, but I doubt you'll persuade them that the trigger
> >>> for the diagnostic in the first place was wrong.
> >>
> >> Well, thanks for the pointer in any event. I've commented there as well.
> > 
> > Did we get any resolution out of this?
> 
> I don't think we did. I'm still struggling to understand Andrew's way
> of thinking.

What about the GCC bug report?

Ultimately we need GCC people to make the check less restrictive or we
need a way to rework the code in a way that doesn't trigger it, either
Andrew's proposal or something else.

> > It would be good IMO if we could build out of the box with GCC 12
> > instead of having to backport fixes later on.
> 
> I guess gcc12 is too far from getting released that there could be any
> guarantee for no further issues to get exposed by that point. It has
> also been common for us to backport fixes and workarounds when new
> compiler versions appear.
> 
> I could agree to being proactive if the change to make to our code was
> uncontroversial.

OK, but unless GCC changes their mind we are likely to have this
conversation again in the future, so we might be just delaying the
inevitable.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:35:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227266.393026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndpY-0000VD-VS; Thu, 18 Nov 2021 09:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227266.393026; Thu, 18 Nov 2021 09:35:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mndpY-0000V6-SX; Thu, 18 Nov 2021 09:35:44 +0000
Received: by outflank-mailman (input) for mailman id 227266;
 Thu, 18 Nov 2021 09:35:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mndpX-0000Us-BF; Thu, 18 Nov 2021 09:35:43 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mndpX-0008TW-6U; Thu, 18 Nov 2021 09:35:43 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mndpW-0007qT-M6; Thu, 18 Nov 2021 09:35:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mndpW-0004rP-La; Thu, 18 Nov 2021 09:35:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+DwASExiJdFKD9zT2TX8MGeKvKUvR6fyIKy7g/gStn8=; b=vEYgbzLQF0HudITprHjqQ4skHZ
	EnjO9KKtYkYMvpt3C2Is53j/vPnFk5WgECZ1bgR8SA0w/1dl3hoHT7gyiteCVWmIFtbIUng0N/W+f
	MSI0vrpynffXdD88RD4DCI0j6SMLsusOrqMfXtJOVKTQjOe3Z1gAgwKwnlQiHrHehQFI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166172-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166172: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=306e0afbb382ec10081ab277c866e9e7c212dda5
X-Osstest-Versions-That:
    xen=2d72d2784eb71d8532bfbd6462d261739c9e82e4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Nov 2021 09:35:42 +0000

flight 166172 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166172/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166160
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166160
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166160
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166160
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166160
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166160
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166160
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166160
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166160
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166160
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166160
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166160
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  306e0afbb382ec10081ab277c866e9e7c212dda5
baseline version:
 xen                  2d72d2784eb71d8532bfbd6462d261739c9e82e4

Last test of basis   166160  2021-11-16 20:36:52 Z    1 days
Testing same since   166172  2021-11-17 14:03:18 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Julien Grall <jgrall@amazon.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   2d72d2784e..306e0afbb3  306e0afbb382ec10081ab277c866e9e7c212dda5 -> master


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:46:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:46:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227275.393041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mne07-00027d-87; Thu, 18 Nov 2021 09:46:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227275.393041; Thu, 18 Nov 2021 09:46:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mne07-00027W-4v; Thu, 18 Nov 2021 09:46:39 +0000
Received: by outflank-mailman (input) for mailman id 227275;
 Thu, 18 Nov 2021 09:46:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mne06-00027M-13
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:46:38 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ba592c8-4854-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 10:46:36 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2058.outbound.protection.outlook.com [104.47.6.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-34-OO0nWliZOammG67bB0AYMQ-1; Thu, 18 Nov 2021 10:46:35 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3536.eurprd04.prod.outlook.com (2603:10a6:803:2::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 09:46:33 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 09:46:33 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR02CA0018.eurprd02.prod.outlook.com (2603:10a6:20b:6e::31) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 09:46:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ba592c8-4854-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637228796;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=fsKZ07ICmB9OOI4AObCcDhM+tT8bisfkbiEKoQ5Wnt0=;
	b=cVDs7DkuU05C3ixJc/ySrQPZv8ss/c2QzSuS80glrSM1r5E3ulR9x8HS0D58thsG/IGW4I
	2JpLs2ZrhXSgsyhi88N+Ybbq1YYVFgYqmyuckeqwdABqlXn6kAunbB3J3uhgH7PmDkhOm0
	InaZdZtQRkAWV7wmCISlPBDoBLzsh14=
X-MC-Unique: OO0nWliZOammG67bB0AYMQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WaTut3bLwG4xsUu0l5UlkbqAWye4TH1gcoxbfOIbUvysQcAUAXyyWpQ00Ybh3WnQ/iIDxATnkAmcm5Ju/Ot5QC122qCT/kOHDGISWyLlo1njKCfSZvj2HQc9lqLo+yRQSMq5kNRccp7nPTl5ZfBtnTrLOnR9lVo2mrdpOfOJom9qGG1ahWbrPZSVKTWoK7ME56kDDL8MObj1LnLbisjADPrEp0hmOAD5ZG9Hrf6CfRso/jJYKHK2jSxM/bEqAoqTBR6Ws7MyR1BlYNT1GPld5lLTz5ATKM2liDrntloN8+588NYqRLmQuUdyqz8pGTWzIpNW10y87InAyiPFA1OIoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tR8fKjXx8JN3iJjhJHNZk6AlLfPw1yZCe7oSXr2gke4=;
 b=TLHZk0SBhDUJhh2AoEAd+5n7LCQlXgRaDtNxA+H+wZ/xylu5wz5y8+mK5tff1qiAsANPJ6r06QsT07I4p9UPMz6OFPvsSiWzvY/nGYsq/x/WVQ0zQJRpiQoqzrGaw6Jdh4nTfoBX9P07CIYPRuNov7eKNlJeJSnigN5PYppqrR9czAIVKha/DnB7Q8yHddpd2T/b0ND6rW/+e6tg4dF2lAof9zHCuGuBjOq+3qUBupT4MwCnhWYSQmjL85rl9u3651qPxZ8MSGz12rZZcZEarf5yjYyd4jMznL2ZydWodz3sYzJKgYDFC3kRVGdvtK8F5Z0xc+7F3a9PaUMc7z1ZaA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1377adb3-e3f5-2865-a2df-e6dd8098645e@suse.com>
Date: Thu, 18 Nov 2021 10:46:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 v2] efi: fix alignment of function parameters in
 compat mode
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
CC: Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211118082806.23335-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211118082806.23335-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR02CA0018.eurprd02.prod.outlook.com
 (2603:10a6:20b:6e::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 40a0dbff-63aa-4313-1d4f-08d9aa784e19
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3536:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3536F2EF2C28CA69E7B2B860B39B9@VI1PR0402MB3536.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	tJOOj4J06D3KH+MqQLUhpuUv9/Lkrnzytv0ljggBaKjNIm06ZqxvAJtmAxCc2cDHr8qjMnHpPWLOYl/1QF3Pp6szPrDWv05ACeXFaeIzL05L6fXfhQg9ovqvYt9NOIpSzDFIfAKTvN553L1d7/ai8s74KgbiF2HyfhkT7wl3vEPXcbUXqkUOHJ7KaLJLckkic9tTFQPZK+RxHEdV0n5SnuvzNzh+7XeFyGWmsutHCpLzR5+4efcoU8kU8dgE5NA3WCuEaS9ndhnEKCgGbEqIB5XvZAjc6ry6ewTNW9Ig6DgP4BkwIrWsxUjUqupM9tCZsrhY54w1RzUrzod1MRtUX9eZl83XjyQHI7wPbfopFeZAiPZgJViu2qkXjviLhALGZopUoJ1EDV6UWqvngdnT288eOc5xESB1hHd2AQDVuHbpwOvp7irMAjqBDTM+TlS9g7Owby4CDGLj35+Bvalj7zbauTVotHZQhUt3vc9So2ouo27Dnrn8Faf+3yebAd7O9ujfZFYZ2ypl9/m4bUslwOAA/BnisG592CGA30g7MuRgw6ZJJNjoktXU0Nu4UeXvHuFQ0KKxRGg9B9T99/UOLx410MBj6Vfcqxv+NR7za5Ca07vGh3HTrEZ2XUT9vskUAzZUtomt4QQ+yUahRNyCKkRqblJmh0egwkUEA64PaIC56OwQcDsMrnGv0BY0Il3mcGJvurPKNYm85U01S7q8aCSpneEzNbXBggvT7p5jhdo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(83380400001)(2616005)(956004)(5660300002)(16576012)(6486002)(31696002)(86362001)(53546011)(8936002)(4326008)(31686004)(2906002)(66946007)(26005)(36756003)(508600001)(6916009)(66556008)(316002)(66476007)(38100700002)(8676002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?U0b2n0sT7WxIhsAIELTGysezpDa/AGRTuPq4oTFrPadQJSZBlqoJyMPi10xO?=
 =?us-ascii?Q?IN60LrT2RiuDj8c9UD93z0cj1Km1t64/UOeU+QNb5DeG1cJZLxytRX5G8jmq?=
 =?us-ascii?Q?Ce+1rIEr3CGZeknIrikeefESBiy3EGeVlzh5x+DaobDxqU/hBdQLhvXvRi4q?=
 =?us-ascii?Q?KYSPAf4olBd5WeIpgWCf+PARlIIY1hfhSCFhNAQ9wa6VyjngTQ9+xsEEhtE6?=
 =?us-ascii?Q?o9jxjfja89S1T+mKqpzybQ/tphMvCI/BqVlt45LsuH+lrK9ZP3q6EXFLtRQj?=
 =?us-ascii?Q?tW/9WJz8dvBlcjyN2ERUBxhP3NQhlNetse+eeQbJiCgbmPiPIYnUolC0p8R8?=
 =?us-ascii?Q?5ARWnLGPya+5kB/tPStuv70jkuGmDhXjtfwgnDcI3shAGr5M5otuWZeIWJwH?=
 =?us-ascii?Q?9UjItgLmJMlawcQfzONWqCQywlMGupvr35uJi1MaUbxU8r75DDFY7JE2Zg0i?=
 =?us-ascii?Q?zTf1RepFYOnaiBapta12ngbBxeP77QCjElUkIl+bHw6KhW6aCvgy+jrs1XLF?=
 =?us-ascii?Q?nybPuYnb87GrxYtcrB7p641pLACPYC1CVMFBQscntIahvvDJWi2raMiQKhB5?=
 =?us-ascii?Q?oHzD0utt2TRm5NxFqZWxis67knm6kw821o6FwyjXQOFw5xpJf0kpebvSP6aA?=
 =?us-ascii?Q?CCNPaBokP46zw4Bwh6z3NHsRqOyYp3tshLCyhqhVFyJYeh5e4qu3V7ASk277?=
 =?us-ascii?Q?MB9XDQIiwCEEbVOxklXJew19FqSHNaouSGqO69/igPG2HFtoPE1fBkEfD2Nu?=
 =?us-ascii?Q?rpLJIJjOHGSW3I5wWfoESvjOA4A44EX+rZdQM87ayjiqVtIkTkGwlDjSTok4?=
 =?us-ascii?Q?eix4JJP++dtYXb3jLjvoPvCMBN0glEI/EHWFmQqdOASp85Md+cjbjBxAqvwL?=
 =?us-ascii?Q?bdsb71dCHc4Y/HSE9kVoERl/afq+YDzuJ+Q6j+vtMdlwugdmD42oy+m0FL/j?=
 =?us-ascii?Q?/8jYzDwOdMZp1GHTSuuUu/sZe/Kz/kNv5rTWgxjcYO5iyr4wXRcx0vP21ia5?=
 =?us-ascii?Q?fImOfU+JQhXDLHztTBinlt72QSQ881zXZM7Vs7+aq/qW+R8rrTE4d4EqwShb?=
 =?us-ascii?Q?MXALK3nZu+I8FtRqoQVQTCEw/RZb+h0rOB+Wh3NqOW77BlXJWKatxnEAScBZ?=
 =?us-ascii?Q?sFCi+kI71vEyglolATynWgkkfL0W9sQqKtG1tq4JglYxCnEC8KCZ9jAJd35S?=
 =?us-ascii?Q?2CV19bVJSXXKxdvo1ggkbe4JbrZTrVTuG213BgOKovbPcg9D/N/9WAf0SQ21?=
 =?us-ascii?Q?bHIRpybW5pb9EVCfp8uFAfxLMDMKO3XUYwAH9RVeKN+n+fofLHXUQM0pboXv?=
 =?us-ascii?Q?ZtIjW7OdhIHkOzR3Tltn9630mt0UZI2WQyXx8GwcHy1hxTRYBYKa5au4l8kk?=
 =?us-ascii?Q?7OIDyS3Bq/4N8uDi4O5fupGaUlkV9TMZW0pggAMsnl/w3ZM/6GU4/FreXa4Z?=
 =?us-ascii?Q?BjTWyJWQ3KPXE00tPETWGYGu/k0WrfMByUhst8mPxVM0zFT89Av7ww239n7n?=
 =?us-ascii?Q?FUkEgfXvjmg5uOfQrFKIVjkg4e/DKlNXqoukI85byvdLutjR0ydr7GV+4kqN?=
 =?us-ascii?Q?O0MAM242vWZDGz1W7ODYfIKZ+EdLnpGves7zb6+H32l2sFx+jHac6IouSXv6?=
 =?us-ascii?Q?9FYh17/mG2LlguWNsm4c48w=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40a0dbff-63aa-4313-1d4f-08d9aa784e19
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 09:46:33.3771
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: F7wuoo57ZO8rIA6s2c6Y+7XzuQKWcZm5h/ZUidEgZH6JxGr6tDN4gIJHEKn8Gmi2gyQDi0BU55OfvXACUTCgLw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3536

On 18.11.2021 09:28, Roger Pau Monne wrote:
> Currently the max_store_size, remain_store_size and max_size in
> compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
> 13.0.0 complain with:
>=20
> In file included from compat.c:30:
> ./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte alig=
ned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer a=
ccess [-Werror,-Walign-mismatch]
>             &op->u.query_variable_info.max_store_size,
>             ^
> ./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte alig=
ned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer a=
ccess [-Werror,-Walign-mismatch]
>             &op->u.query_variable_info.remain_store_size,
>             ^
> ./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte alig=
ned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer a=
ccess [-Werror,-Walign-mismatch]
>             &op->u.query_variable_info.max_size);
>             ^
> Fix this by bouncing the variables on the stack in order for them to
> be 8 byte aligned.
>=20
> Note this could be done in a more selective manner to only apply to
> compat code calls, but given the overhead of making an EFI call doing
> an extra copy of 3 variables doesn't seem to warrant the special
> casing.
>=20
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>

The code change looks correct to me, so it could have my R-b, but I'd
like to ask for some clarification first.

> --- a/xen/common/efi/runtime.c
> +++ b/xen/common/efi/runtime.c
> @@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *o=
p)
>      break;
> =20
>      case XEN_EFI_query_variable_info:
> +    {
> +        uint64_t max_store_size, remain_store_size, max_size;
> +
>          if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
>              return -EINVAL;
> =20
> @@ -638,16 +641,34 @@ int efi_runtime_call(struct xenpf_efi_runtime_call =
*op)
> =20
>          if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
>              return -EOPNOTSUPP;
> +
> +        /*
> +         * Bounce the variables onto the stack to make them 8 byte align=
ed when
> +         * called from the compat handler, as their placement in
> +         * compat_pf_efi_runtime_call will make them 4 byte aligned inst=
ead and
> +         * clang will complain.

I expect future gcc would also complain; I'm actually surprised it
doesn't already, as I recall work in that direction was done for one
of the more recent releases. Hence while I'm fine with referring to
clang specifically in the description, I'd prefer the comment here
to be more generic. E.g. "... and compilers may validly complain."

> +         * Note we do this regardless of whether called from the compat =
handler
> +         * or not, as it's not worth the extra logic to differentiate.
> +         */
> +        max_store_size =3D op->u.query_variable_info.max_store_size;
> +        remain_store_size =3D op->u.query_variable_info.remain_store_siz=
e;
> +        max_size =3D op->u.query_variable_info.max_size;

All three are OUT only as per the EFI spec. I'm not going to insist
on dropping these assignments, but their presence wants justifying
in the comment if you want to retain them. E.g. "While the function
parameters are OUT only, copy the values here anyway just in case."
Obviously if the assignments here were dropped, the local variables
would need to gain initializers to avoid leaking hypervisor stack
data.

If you agree with the suggested comment adjustments (and don't want
to e.g. go the route of dropping the assignments), I'd be happy to
make such adjustments while committing alongside adding my R-b. For
anything else I'd like to ask for a v3 submission.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:50:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:50:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227279.393052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mne47-0003T8-Oy; Thu, 18 Nov 2021 09:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227279.393052; Thu, 18 Nov 2021 09:50:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mne47-0003T1-Ln; Thu, 18 Nov 2021 09:50:47 +0000
Received: by outflank-mailman (input) for mailman id 227279;
 Thu, 18 Nov 2021 09:50:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mne46-0003Sv-FQ
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:50:46 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fff42ef5-4854-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 10:50:45 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2056.outbound.protection.outlook.com [104.47.12.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-13-2JGwg5f2MZ-ZrUeLAs50pw-1; Thu, 18 Nov 2021 10:50:44 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4607.eurprd04.prod.outlook.com (2603:10a6:803:71::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 18 Nov
 2021 09:50:41 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 09:50:41 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0029.eurprd04.prod.outlook.com (2603:10a6:20b:92::42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 09:50:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fff42ef5-4854-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637229044;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=1s1bnXHQ/U7mDJtAs3ALO5YczkL9zL9jPw0QJijRaaU=;
	b=j/PtJJt+GuQAMZ+LBmUyY7sBhesUqH+6pSvtIp4P2lkGD6aZ+A0qN+vUTrxKnFBRrlc0YK
	c49pdGz3CCT0f42mnl95OJWMGwRTmOYg3z34dkEQx11j6bSceZoY6tUj0f0XC0BVTu9bos
	ZoH9gNEk4OsGmoihj8fLfNtKnJEVBKc=
X-MC-Unique: 2JGwg5f2MZ-ZrUeLAs50pw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YfFCGRqL4+SqTifRbis6dh9KH+ZoI0SIxqnFUokiL9jiC29UVZId9fCdAR/pK7vmpqPzM38zRI/7i9plCL6b323Gyv7o2yLfq6GS3S5M1N04iHxq/l+h+wtxBsbJa/BPyoRbTeHBCKNUZLv4xT3rDkimrA4pGdV2+kYOMKU9bGbLU80BMTXPwdWUuO7p1fL0fRePbIq5QXT5D0JGS6jX2VZY/jddzXrRd4VQvcaL/nZStqgUdHyhQ8ypxbX2jEm8/ffaPDps8Vki8mhcG8Ar1icvwG8itxIorAm9/TDCFqoa0BLX3Z+mTWMMuDrY69tMMrDH3njrQfv+Qd7ntEsIOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yKJFd/BdYdio66y0jSOGBawJmr1iTWg0b1pZ60kB3eo=;
 b=e0XFj2ESi2PdIyE4uR9t3kxFx6bMs77GCfyZc4AZ0CGJFV7njYFd9YRGbsSBnXtipqwM7ZeQFlHVGeOQAtMQHKhc5G9L2DbezX7i2y/n85cczMIdraCg8v6L9YdfwclG47P2Bvwjrs3BLwmgDkikMIA6bx1Q0UIWmg72dbYQZRnT0iQ9lmwGSaF4muqvzqK8/WG/06G+N2V9TfZxVgJ1C7gXZBimpyajPRXUkb7hPEMTWXH1VuOmCJdHj+2pQwk54L+PPLHwK2Jq+XzOJBUZFrQYtCTXvS7uNzfHtA3B2cU9HlQ6ouJXcqWljctWPlDzb7WslCnJqQQNtKwIxpca2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9071e678-5d3a-739d-1657-dc8c16183bdc@suse.com>
Date: Thu, 18 Nov 2021 10:50:40 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16] x86/passthrough: Fix hvm_gsi_eoi() build with
 GCC 12
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211027200713.22625-1-andrew.cooper3@citrix.com>
 <77acd9ab-1bf0-cc02-3865-bf9844b3eae2@suse.com>
 <24962.46376.136195.463274@mariner.uk.xensource.com>
 <1950ed44-5b0f-bdad-75f9-b91c66d95fdd@suse.com>
 <67d7cf93-2860-f8f1-9de7-932da7f537e0@citrix.com>
 <2051641d-17f4-07ee-9db2-0234e6ce4c70@suse.com>
 <YZYP3BpugHwOhNuV@Air-de-Roger>
 <def0133b-9eb2-44cd-33c3-39c9d0dca9f4@suse.com>
 <YZYeQ7/feMBrTFSu@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZYeQ7/feMBrTFSu@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR04CA0029.eurprd04.prod.outlook.com
 (2603:10a6:20b:92::42) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 328f5907-5b0c-45f5-6644-08d9aa78e22b
X-MS-TrafficTypeDiagnostic: VI1PR04MB4607:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB46074BEA9E35488492A6216FB39B9@VI1PR04MB4607.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4941;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	KRTr04N7h+mIwfIkM/Kd5lrkj9EvvGDcbhKEfKScjFwHKvNvHRM5mi4Pgr4Q7b9PbnddGkeFW0sjzZ9YOh3lq/WWFOLJ72KFPQgQMO1i0vKCKSS6HeCqvFoTvUYiHtYh2p0e7NiS/W8FfeRvQJyaRUyECbfGIAZ2kB8JapriG5LdYQXGOYckbohhGQNKOEDVPiN7DdirwnJKnZFdu2HVrnPxaKL22OiaQWKtM9ffL+xtPC1gk2TdvvPdEtS/xlrGZx1JVHPWqdCTKdMfawBTn9AqVgO2qeGFsg1W7mdwbdqilEaELWZ93PZ6b4RA7hwh+FeoKZy17xz5wmrtwp4Owh48IaEOE8r9bjiNsjqr9Zh8jTEv0SOLiZH+xxT277cC4VOPB/z0PBsNmwqRE8tqmR+npIxnq8y9HsJ9b4RQ6ZD59wj1aFSlxoaJZqr6f6Bq5zZ1d9kyBvdv4ow/i2UlWn1GHyY3ShKypqI06nHUXq0B/3yRVyyNAaeapL1sgaPPjD8t+iIPEewcas+BBX5PgXjUAtYwr5gdZJdm5O6OpUi1ej1+MmDIYRVN8gOxpASM3iD2pIzsnEzCrWHBLMb83dRCQ6jmspFTtQUMZRP7LXn0LjZ01V0bfheUqsJB0EN32WkfmhSuegvyZcvWwpRgxdGIi6ykFcuLQwhfhpo+RUvJIsLDQnV8E5ad/bjDDciqIO6Mwj9q3+Zt0wzy3FltAi0tbHdJYCkDpvwcAu9z7xkPtLGrXyQUXxJMyY0Gs/PolCsmKeSIY62cXEZ+7W90XvCA2lMQ2+7EDzr7EN+nrrvjutJ0JyIajQh+l82yZQhDW4FbkUhpcOrou3k8dAUPWA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(16576012)(186003)(4326008)(54906003)(2616005)(66556008)(8676002)(8936002)(5660300002)(36756003)(508600001)(2906002)(66476007)(966005)(6486002)(86362001)(956004)(31696002)(26005)(38100700002)(53546011)(6916009)(66946007)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?V9rP76q1Oj0FGRHnZevBMhsEShQ32RrK1ug+wdQqE+dIPTY7N7C6LFdii+jV?=
 =?us-ascii?Q?d16qPnGV2nNtL7XqXpZHrzuUUif1WWzJ+XyyVmZyGADZbBlKkgT8KTs960ol?=
 =?us-ascii?Q?dEzcbCIvO4wXW26QCUcwYDfGoINleTcwsYN2AX9PcXWNXC17oDsjdw4PrcTw?=
 =?us-ascii?Q?PNK/f3oYA2EbjDdhLiWYlAnX8nKDr8TFVg0C2GGQfuD+V1bF0ELQc5fTFfcm?=
 =?us-ascii?Q?AmnkPhp0814hm1Ui7K2fJuUUragCYJeLQRpFohXxfwZvjA9SjZwbGTLxqwTD?=
 =?us-ascii?Q?Lg8KoZYJATBsG3CwCE+fwu40ZJpxctnis5mtJ186A0vso6q80XE3YPhcchtr?=
 =?us-ascii?Q?AlOBQY/ukIN2Th0bho9BLXyckzEcld9+iwcxOF9IuqiUTZauYL/PGSmrl6I9?=
 =?us-ascii?Q?qLV2jIPzGBU0vvkeEWmSf74V6FALAnLPbeQeKv/+v59gSCjAqnzN8hqUFzF/?=
 =?us-ascii?Q?HpkkKALycZ4rl74awT8QHhqf5f3EEtU6kjlwuGf03t+YeRQrwAAEOnFDReUb?=
 =?us-ascii?Q?Ri/BnvZBL1S0GGL4whR4CJOMa8uzWI1qFM2zuryleVT0h3On1JLpAMWXn0hS?=
 =?us-ascii?Q?FlxJDnl1VxzV4KCHNLoCvbanHMKEbrtR4pYASdFOZa90O36gixhnRooWOoJA?=
 =?us-ascii?Q?3kav9iGLq3GOOJKZSFOmfZBTEPsWKD6eHTAUCS6auelc1FmAvlxMilqSuuXR?=
 =?us-ascii?Q?42IgbtZGIxUQxvRKTxxIOkVVBQCFdhIzLj0gZYLkXCO4OtXZkkXS1uKsLpiE?=
 =?us-ascii?Q?oeyL3BLGM09qS3dZ5vf1TyJ6xA82kzMvoe6/CFOu6KsGZOq1JElMvbCx5tFo?=
 =?us-ascii?Q?my7gvEA32Bz6t4wWPfq7N8SY6E6Yn4VGZ4UqdCV2BgGGxUHk9vFRABfiJ8sa?=
 =?us-ascii?Q?CC1+1K3mSGviIpHRTVnXp6LrJrBpbxQ5pAYXFb6U7drGP0lNHtgXvFsujElU?=
 =?us-ascii?Q?3yZisuokY2moQhXXp0BN3BDInyZzhNO9wlEPU5H3l5HHuvmr6dwsBgRCJvJD?=
 =?us-ascii?Q?XKiJ57X9RTqYMZWtHww6JsfDOItc8/EP+9zgV3bqp+TkRSRyOPPwnADL5vO7?=
 =?us-ascii?Q?+TuuuwRz3SVh7GHO4HN38VSbMpdEB35HQVoI4Q4d9HYtOSg7aM5vYB1pfoFH?=
 =?us-ascii?Q?Y9HPQj3RKN/Y29YLJYTaNPyfsJRHecgtiMw/w5qDz4hPsTZy307fHaIhlY6f?=
 =?us-ascii?Q?EPDGeem1KAAasdqysKN4F4Mql70HYfviAVhrjmlWlIcH2/v6157d3r2T+Ys4?=
 =?us-ascii?Q?2csNCDD54verrjtHJwqKFtBeTQdVUA8WuFlJDsyXNEm07xjHzN5K6D6zz55M?=
 =?us-ascii?Q?yhr3Y9D2DssyroP/ryhQbDU+JZfZwoPCn2qTnmxfck3vJgX/wsmonUrAtA/E?=
 =?us-ascii?Q?z5NYGGU59ZmeXvwkUKsOmLGOiDxd3KWTY6i5gBhEQVggKuuve2LrnqnU9t07?=
 =?us-ascii?Q?RaDEYIlzWIBveC69z13r2Nt1iy+rhsxm8QaeyCfk5rMR09dlTThcoGAQr54L?=
 =?us-ascii?Q?ccUgdD7MpcRYJOmy4pCCPmIOiEZM7R3hzSwEJPk9ldInoYQCy3m1sIgfVat0?=
 =?us-ascii?Q?yztoB7sEVKj2+i32uckmgdANWuVWgyn3gfGmeppCcqTXmxA1CTszCSW7i7QL?=
 =?us-ascii?Q?Wk2FmhZ/Dw2PvAgIr4SA9us=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 328f5907-5b0c-45f5-6644-08d9aa78e22b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 09:50:41.7847
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bbnKSm6boXVfnjmu3Y51+fCACGeekGs5n6sKmUZRC4RKlIK9jjYdI7wXx+cbCuPzIhIA4vO28uOMK9A2wTBTMQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4607

On 18.11.2021 10:34, Roger Pau Monn=C3=A9 wrote:
> On Thu, Nov 18, 2021 at 09:51:52AM +0100, Jan Beulich wrote:
>> On 18.11.2021 09:33, Roger Pau Monn=C3=A9 wrote:
>>> On Thu, Nov 04, 2021 at 01:17:53PM +0100, Jan Beulich wrote:
>>>> On 04.11.2021 11:48, Andrew Cooper wrote:
>>>>> If your answer is "well actually, we didn't mean to say 'if a GSI is
>>>>> mapped' in the comment, and here's a different predicate which actual=
ly
>>>>> inspects the state of a dpci object for validity", then fine -=C2=A0 =
that
>>>>> will shut the compiler up because you're no longer checking for the
>>>>> NULLness of a pointer to a sub-object of a non-NULL pointer, but that=
's
>>>>> a bugfix which needs backporting several releases too.
>>>>>
>>>>> The current logic is not correct, and does not become correct by tryi=
ng
>>>>> pass blame to the compiler.
>>>>
>>>> I have yet to understand in which way you deem the current logic to no=
t
>>>> be correct. I'm sorry for being dense.
>>>>
>>>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D102967 is the GCC bug,=
 but
>>>>> the result of it was them persuading me that the diagnostic was
>>>>> legitimate, even if currently expressed badly.=C2=A0 They've agreed t=
o fix
>>>>> how it is expressed, but I doubt you'll persuade them that the trigge=
r
>>>>> for the diagnostic in the first place was wrong.
>>>>
>>>> Well, thanks for the pointer in any event. I've commented there as wel=
l.
>>>
>>> Did we get any resolution out of this?
>>
>> I don't think we did. I'm still struggling to understand Andrew's way
>> of thinking.
>=20
> What about the GCC bug report?
>=20
> Ultimately we need GCC people to make the check less restrictive or we
> need a way to rework the code in a way that doesn't trigger it, either
> Andrew's proposal or something else.
>=20
>>> It would be good IMO if we could build out of the box with GCC 12
>>> instead of having to backport fixes later on.
>>
>> I guess gcc12 is too far from getting released that there could be any
>> guarantee for no further issues to get exposed by that point. It has
>> also been common for us to backport fixes and workarounds when new
>> compiler versions appear.
>>
>> I could agree to being proactive if the change to make to our code was
>> uncontroversial.
>=20
> OK, but unless GCC changes their mind we are likely to have this
> conversation again in the future, so we might be just delaying the
> inevitable.

Yes, but we apparently need time to settle on how to work around the
issue. I was actually surprised Andrew was able to talk you into
going the chosen route despite your open-coding concerns, which I
share. In the course of the discussion at least one alternative
approach was already outlined, iirc.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:56:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:56:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227283.393063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mne9L-000478-BB; Thu, 18 Nov 2021 09:56:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227283.393063; Thu, 18 Nov 2021 09:56:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mne9L-000471-7u; Thu, 18 Nov 2021 09:56:11 +0000
Received: by outflank-mailman (input) for mailman id 227283;
 Thu, 18 Nov 2021 09:56:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mne9K-00046v-3j
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:56:10 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0b56ce9-4855-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 10:56:08 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-8-XDNig28YMGWNxSS94660ew-1; Thu, 18 Nov 2021 10:56:07 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5904.eurprd04.prod.outlook.com (2603:10a6:803:e6::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Thu, 18 Nov
 2021 09:56:05 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 09:56:05 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P250CA0028.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:330::33) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 09:56:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0b56ce9-4855-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637229368;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=t76qZVa18ssaCE3fEw7q8ZCroRiWjv9laCR6W4EkqEE=;
	b=DYcVVCImtOhcYI8OWTsE8ViH+WSKFZRMAyXCjXjJeX2KNYQOPC4mfhuAcm97AAEpq1bYb1
	fY7s3WY06bfeNr58yO5yCtv/RqZSLum25b7RxaNeGULzeZVexKMmcRb+3epJ8YUT2Lq0wR
	rJ95K9foa+/swsCJ/8LttRQQqLUQXzM=
X-MC-Unique: XDNig28YMGWNxSS94660ew-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HPCVUByVLXy2ebdU1zmxeGHoOtyPO7hH+CU+6EWGl1cKA+resPEhHWhIbUxRtTT4Q2iQi0k0SoHLrz1Ce9aUDRKFuun2xrRqo8Azi1k6xrJBLJO8f75dzGkos+9w/wnNNR7DyDFjJMdCh3fpGuEmMKIT/LnjzLxa44wohX/ZVAbtg8maLrJH9rz3ka6m2c/mlwOKAaINlNSQJl74SfDYx7n7eeIvTlZ0Ro5aLTJ3xOU4p1gICmDevze8xSOCRrcTjEnd9QfGeORos+0lyuvoV1BrGKb/oAAaXs0c/qPQltU/6hlnZxfEiq8gI/Ss/e2Lid5uyANRA+frd4TU//ox5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=t76qZVa18ssaCE3fEw7q8ZCroRiWjv9laCR6W4EkqEE=;
 b=DcgRh4fF0dK/fMLi8P8SVWPJcx2/yGxgE5Kj7MyJc18zgGFpuwLlSoRhw8aEPmvSlAjD0z5bhByYhrJ7SrTO6nJUoPydaYINgOtzZvGHQ8kk0KSzoSF9I+O5LxQK8hYH9QvEMDsRFylOCuy7WMkO8RLK+j943NxhUyAgvACKk3KlALYREcuAD3cGfpCppTUz/8/yxlQjQmh5QJ9I2u3ZxeIQpGIIfObNAdv6WZNydK2Y+67XqeDI7EPyuwoVIu71EacvYxFsw1ud6R6KvsxnYdBv8ppZsb8tNe/fSoLw3EJY0RpR8GC1rM5E6YWNCS1hC+NRHcuGuDs6ZgRjt+FGww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <81ec6518-1929-293a-6a6a-74844b119580@suse.com>
Date: Thu, 18 Nov 2021 10:56:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/smp: Support NULL IPI function pointers
Content-Language: en-US
To: Wei Chen <Wei.Chen@arm.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20211117164852.16394-1-andrew.cooper3@citrix.com>
 <bdfc59ab-87cb-26bf-78f6-bc521e7bdd5b@arm.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <bdfc59ab-87cb-26bf-78f6-bc521e7bdd5b@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P250CA0028.EURP250.PROD.OUTLOOK.COM
 (2603:10a6:20b:330::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7d18a707-21d5-49c3-a921-08d9aa79a2fe
X-MS-TrafficTypeDiagnostic: VI1PR04MB5904:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5904297ECB14F72507715C1EB39B9@VI1PR04MB5904.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	3gQfRqIontPEzXqBCsO9rOqkiALbaxb4yXSIqxGkNPOzkD6IekTNUYV8kJEmPT3o6KILIDGlxFMzOiCj+XLvyswBppAplPhFVohwL4N/iqXCtV1iE+VFIHBaDL3fdBcagmj+jdq4aKwK2pUJuQAHWvVL7MJbJzGrf99h8MfLJP6XcizH/nLf0+2OPBDO0ee5N/CmnjcecmXiJ6hPh65L4mJlAk//PnVyX4ommqySFU9fnOwEN+xwlE6JrmOqUV9bMHpirSRXVUyyA9hTP8fqChL0i0yICbZzWFR6dl47zZpU8w0YXqQYekLcCiG2OCx9fg2+WSCAkB4HgozOLSfLaOzI6YrQ+2VG4gV9uxUlTNIRCwhaZ41frfwe7UqiuM0Pe+qG5ICy+bmlEDSkZZpIBaZ1Nre3ka+d+W9ezYufAaRD+CywjXfFDB/ISyLzgFyY/SQIbYtGLwu41AQ7+CaYEseYc4nmzPgtHeORQt0Ys2s33HSCveI9pGJVvo6zcDS3e7IOWbcJZdbo0H0AhgVbpgLOErslXnN3gdQmyE/J48d+PkNkGtSo97CATNTjLdYKsXVvoRzqfZkAA7PnrcPAZMgwex3J8OXrxtaMNgATYEN5myHs1bBpPRqL9GyJUJxZz23fMIURrzIzjsmZEpKaauKHdPMr79n8AvZDC3tM3cUgYRvcoj9pffiEzArYNvhttgMV4sHhIPNMGGELEOFSC8owAKLWwsftI5KgjqRcrNKfEIjdUOLTQmx3DyJqpp8V
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(26005)(8936002)(186003)(53546011)(31686004)(66946007)(66476007)(66556008)(86362001)(31696002)(8676002)(38100700002)(956004)(508600001)(5660300002)(4326008)(6916009)(2616005)(54906003)(16576012)(6486002)(36756003)(4744005)(2906002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aGxKU2V1QkZqcDZhUG1YaTlkcXdnenY2QWxPQWVTM3pJUTMyU1pnbzl6N2Nr?=
 =?utf-8?B?cmVBQkVSZGg3Wm5oTE44cVJzV2hyVEYrTTdTTGFYQXBRR3grZCtMTFVlR0t1?=
 =?utf-8?B?MHN5bzJ6dCtCYnBua3o3S3JrZ0xrRHR3QzF6NjZtRDFCU2RyVmZTeVFjWXd4?=
 =?utf-8?B?cmNDL015Y212b2NJSFVyejdPS3JXMEdlVXM2c0VOdVFJTUcrK1VzdDRVWk9G?=
 =?utf-8?B?bGt0UCtZbHkrSzIrN001K0RqcG5BOEJOTHhxNzU0citxNnlJUUpJTUNTSU9r?=
 =?utf-8?B?NWVQZHQyTlZJRUtVb2FmQndKaTFwTVBaT1BqSXN1QzJvQlJTK2FtSDU4ME1P?=
 =?utf-8?B?ZEtDMjErbFFyeVVEMEovZHZqODJyd2hvMU1XUkxSWDRoeFYvcXQvUStRQzFN?=
 =?utf-8?B?cWxJTWtCdDI1b2NQZFV4clU2UjRSald2NlQxUGpJakJFZTZ1YlIySU1pd3V6?=
 =?utf-8?B?Q2lETXRyc2ZJTkw1dEJGQTdmNENpcDhQSDZoRmZXQUx6T09CTlVWNlYvRjcr?=
 =?utf-8?B?MWRUQ2RlTFY2dHRMVzVkMjVYK0M0UDlUaUU4UXZYVjNyNUowRElUejA0Mnhq?=
 =?utf-8?B?TXFxSjRYSklwM21DYUtEQ2NiMkpKV0FrU2I3SDUzbG1VckJINnZFVVV1cHln?=
 =?utf-8?B?OTVocFN4Vkt0Q2xlajd0MnlFRVFVbjRKYTRSZE44akJUeEY1aVVlWHpORHNi?=
 =?utf-8?B?cVlaTktkR3pVZkxSVmZXN1FQanBqajVUNUlpQU8yaEt1NW50SCt4MmRFN0px?=
 =?utf-8?B?aW42RGYzdzdraHplTTV0bmc1TWtoU1pqNHJDL1IwWG1xTkhDNlhVWXBaRS9m?=
 =?utf-8?B?ZjZiQmNGTHV3VVJHczRIbnBRWTlVWmZodGozWlJTdTg0UzdiK1huK3A0MzR1?=
 =?utf-8?B?K05td2dMSDBSRHNkcllucUJnczkyRzcyQ3pwbTNncGdGTDFId2l6Nlk5cHQ2?=
 =?utf-8?B?WTNrTUVENS9lV2ZOT04weUNjTDdKOGFReHJaSmNNWUJYS2kwY2w2dlNDRGxL?=
 =?utf-8?B?bExkTnZOSlhRaGRIVllpREpzUjFaeFNGazVReHZ1aVVFQTA5NGVveDNTczBy?=
 =?utf-8?B?dkFta0FwTUgzSHF2dTd1bGxiQnVYMkIyeFhFOFNDOHE0UTRWNWdsOGZPNFVI?=
 =?utf-8?B?anhpMUtLV3ZmTGNmZzk4eVk2NnNXWkZvb29OOEE3MUZ1Z1c4Uld3RnFnQVdD?=
 =?utf-8?B?Tlh0a2hadElRLzlTT01IWTVOUlRHZ3RTZmlZR1laVUU1ZWd4clc5RU9xbnM1?=
 =?utf-8?B?U3pBdVlpN3dmUGJQbGRNRld4RVEwbFRlbTA1azdvRE9vekRPY0ZRcmQvMjV3?=
 =?utf-8?B?a3hzcC9xdHlwaXd0ZzdYUlJPYWtxSUJoemRFQWdQWVg5Y3lRSmwvYWJMdDZ0?=
 =?utf-8?B?aFJscGFnU1BpV2JqaVBqcXJaNUM2d05XM3JOT01NUVgzam1tRTl0UjVjQUtt?=
 =?utf-8?B?Y1g0NnpEYWs3VmxKNExUbTVIa2ZCRjFPdVdwR2FnSjZkRTdZZzJIUXNOQ2Ro?=
 =?utf-8?B?VlBtYWVxcjIrSmkyTDJvdDVOam5RVmJIdlNraitibE56MmZ6UEZsUUQxSjh5?=
 =?utf-8?B?UTVnTTFmckNqamd6QVNZR0wxM0xpZGhlcVpGVmYzYVF2alRnL2xGTk1jeGx3?=
 =?utf-8?B?dmhPdzErNWl6d0ZVekxUdXVtS1BZMzUwS0JUTWk3MnhKbDhpNHh5VXlGTllm?=
 =?utf-8?B?Znh3Y00zUitaTTBsNWJsQldPeis0VllOMk9oSFVNclNJdW9jZFBuNTI5R3Yy?=
 =?utf-8?B?VGtGY2lTYmZreDhpL2drOTNrazFTUU1sRG1ibS9CR09GU0NVSGhIYk1GV2lu?=
 =?utf-8?B?aWxsaSsrc1BpWElrL2t5OFJQNlNPNURaMVRVN3BXdnllaXVCczAwZDc5Y0dK?=
 =?utf-8?B?RzJGUEx0YUMxV1RzQWtTSUtpcUpkSzFOamo1RW9vOEJEUzFhd1lONXEvVmtI?=
 =?utf-8?B?aVA1MnJMSU94dktjUXdrR2YwVWJsWjYxOUtkVkhUU2tlMm4zck5iU1EvR05F?=
 =?utf-8?B?em8rUC8zTUdjQUd5ZldLSTdOYzZWcjlWYWZmSTFEYmlmK3hXekNlSE9RWWFZ?=
 =?utf-8?B?YTN6L01qK1ZyUjl2d3Y1ZFNIb3BqdWk2VE8zTmtJazZQWjFISisvMjE1UDI4?=
 =?utf-8?B?SkVkS2VCcnhkaWdwc3EvdGpxcFd5U2krTG5URFNRQ2VySFFlUUhtNzE1enlN?=
 =?utf-8?Q?Zh9kz8v/5rqrvLHV1/3RW0M=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d18a707-21d5-49c3-a921-08d9aa79a2fe
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 09:56:05.3378
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NPs/GIrGilu4x5LBIcL4xCAGfBkHub6SICYem/yLhyPdXrN2lAg0iaTLTtFjfdp/BMlf1S8UrKxa3BbENH9mug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5904

On 18.11.2021 07:51, Wei Chen wrote:
> On 2021/11/18 0:48, Andrew Cooper wrote:
>> --- a/xen/common/smp.c
>> +++ b/xen/common/smp.c
>> @@ -87,10 +87,14 @@ void smp_call_function_interrupt(void)
>>   
>>       irq_enter();
>>   
>> +    if ( unlikely(!func) )
>> +        goto no_func;
>> +
>>       if ( call_data.wait )
>>       {
>>           (*func)(info);
>>           smp_mb();
>> +    no_func:
>>           cpumask_clear_cpu(cpu, &call_data.selected);
>>       }
>>       else
> 
> Why only apply to call_data.wait non-zero case?
> Is it because func will not be NULL when call_data.wait is zero?

No. call_data.wait is irrelevant when no function is to be called.
If you look at the "else" branch, all that would be needed there
is again just the cpumask_clear_cpu() invocation. Hence easiest to
wire it like Andrew did (leaving aside my personal dislike of goto).

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 09:59:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 09:59:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227289.393074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mneC1-0004oq-UA; Thu, 18 Nov 2021 09:58:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227289.393074; Thu, 18 Nov 2021 09:58:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mneC1-0004oj-Qm; Thu, 18 Nov 2021 09:58:57 +0000
Received: by outflank-mailman (input) for mailman id 227289;
 Thu, 18 Nov 2021 09:58:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mneC0-0004od-GL
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 09:58:56 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23f19ab8-4856-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 10:58:55 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2059.outbound.protection.outlook.com [104.47.2.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-40-9DDlEaxOOPK-XIBJtpG0hQ-1; Thu, 18 Nov 2021 10:58:54 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3120.eurprd04.prod.outlook.com (2603:10a6:802:e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Thu, 18 Nov
 2021 09:58:52 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 09:58:52 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0023.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:2::36) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Thu, 18 Nov 2021 09:58:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23f19ab8-4856-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637229535;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=b6wS3yvgiK4BO4uZI38HHnkqiqbUgPZ7hPQidz4KiNo=;
	b=N3Nn2tHW3ARaBLSFLdFMEMtEyTXF4pP2DOqheLZJjAW4+y8+u2VEI6h+w1SASgnaEKO9DY
	5wVwCE8wb4KWZ9gq8Icl//gpX23fJCY4Wqa0VtM77Yr0G7KyFVT7lbzHjlYPQxuujyil5m
	DlJN+NM2lAwQM2BPROIzoFs5qsqu7cs=
X-MC-Unique: 9DDlEaxOOPK-XIBJtpG0hQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=czUFdtuzmc+xbfT05e122OWL+YoHNYlEY0qZWNJbubVzV2vF3A4HCu0dwTPhoo6dfDL9tl/zZP2DbmZuAoXqxrf/lFdpeRUz7//khCeB0VrvDhs5u3KJYwGSYk481dP0OhcyKQJsbu7N9jFheOybX1QS6lyKsGKq0VS3bjrzY7QbCKonuWgHUk4m+0pizWuv3nbCrvSYGYZBs/J8SBFS9/YJe4q5339KejiiiJ0RYQqNAXLRpwzNtq53ME8r+0fcdgG0184GL0aDjJaQXdXFbXJo06AHJRuOg7MPlxtv9Aw67VBkfFQJ7j4lYnX1UURRlHoTi0vH7iz56VjJuZ28Rg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MuHa7okESgt9qRNIJdeUHhwtPOGDq/Y+/WpjZzyGnnI=;
 b=iCLzc/CUwpPgFydcVn8ewaSEy4FzTLN74q2SfQYrx/8qIqmJSY3hOzUPzDefEMkKHYaj3K2+LnFStkyuHh/UWCkcIuijBZIPXJPEKa5FNGerc5Xo7cPbEbIXl4Fy7lVKx3TYjWOhmIFmZIXbEgEzrvQW4as1zZkOhLLXrDrK3o8OhY7FOJ+kaqB3ZrpJLEBn4QT3rfd1mxRd7hxfwBYRaIGeNDyzkDRhTtsligIrgtDWfr1NHE3q0DzA2ciygmTH9767KkBet7TXeg9IckDaARo4ZlL9uK8mS4Vo9nyy8zKbvuo8b2X4JJDfsvFjyfuT8KlBbK+yGlNpM/3mbmDygg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c1dc1fed-8f07-5074-592e-b240f2bbdd44@suse.com>
Date: Thu, 18 Nov 2021 10:58:51 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/smp: Support NULL IPI function pointers
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211117164852.16394-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211117164852.16394-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR1001CA0023.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:2::36) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b1d52ce3-aaf2-4f93-30ff-08d9aa7a0662
X-MS-TrafficTypeDiagnostic: VI1PR04MB3120:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB31201A9CAB4761B7EBA6746AB39B9@VI1PR04MB3120.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	YDYnY05cyX65p7zEbVA26hFKsfF9/HPNuet+5wYpQeDfXVc5B5RNkBzfeJatl2h83qXThrDxAN+sn1HiHn4vN+y1OPFS2Raw41ElCTmNAAQ0DE85XwUHtfRQWXPOYb7HkRdDwO/QDFaN1epexLueGRf0YW8itWT+7NWREUMWQFWI5SEaRzeG7c7uEKyC3RVDbSKgiEpsKf0fBj3oriwkTiHBUVbjbCva4/7Uwu8voMo+KuxmkFMNJpHX1rzfj7a/h2N7JWmCCTDye2NVPlNkL88K/7w5uQvxyWlpI77WZd7Q+GkGEVB1WuOviPA+YVWsUnjkRY+F5lwMPiT3BTax2yKvHwDy+jAPxgr7YKKT8HyRUtCZnSlxTSYwVqEWL4fpG6U8UINB8EWNF7VqQBQvwqghSYNeYjscGVczHBjEz9vdMZZ3P+iYdSx2liMzwun/wXgayP5p8aNSJVEgYgiIqlKn/rOvfgwmnDlLUH9pXJla7hwObZ7ZyxmRiks5E9beemfWSzRctIeZjQMq0ErLn4xA5Vepzd7q6zHTbKnTxKITzPvuBG38ItBK9rwfqfb7kCLpFm9XAQ4+DtBrjjaovu/ifoQbVRiu64FgntmxWjyzsI2ewiUiJmmYZLOeLLBt9N1Q1uRGTKdwO8oh7LdEs9ndrBBpX8yF6qqrmJq+ujZdd/XuSYn6xo9qUUD9TsyIKuV+fAAN1jjnOCHIB/7bqzqYc8FYit2lTq0IEymgd9Idoq4rDSswCCdt4B83fjQM
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(16576012)(6916009)(31696002)(86362001)(31686004)(53546011)(8676002)(5660300002)(6486002)(2616005)(54906003)(36756003)(956004)(8936002)(83380400001)(38100700002)(186003)(66556008)(26005)(2906002)(66476007)(4326008)(66946007)(508600001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?UD30LXM1jTjCMjR61UyHYg/WocLKe74dDOWxa9OgL2IKKTfXibsvk62+db4k?=
 =?us-ascii?Q?lt6Km0MfHc8ZuOVw1hdqMFArfSM00XFOaFduPE4xY4J9aXjG4pRQlJrB9/X/?=
 =?us-ascii?Q?HoaXDHdDlx2xQ5sRj/bDgMGndUfGHhSouqaQzfNxuYgck2prJ/hUDd/sPhrI?=
 =?us-ascii?Q?VKMBbTeuxXVSkwIBm56nV9Mx7+FQ7j66b5VW514pXYZmXuMhm3sUBisxLSjK?=
 =?us-ascii?Q?UndjthyOK21/8R6A7/jE4L3ZV1CoMLZBiIh+LW6tJpvjddtIRM9TUxjvOcAW?=
 =?us-ascii?Q?R+K+Hgz0gNoyUfRPKXVC99gdkaA2+q2/kr3VaiVl9fQEODghjcjeXLHpZGwG?=
 =?us-ascii?Q?/wGALcyTYYG+OIFO4wBgUK3toBRGkZrWcEofMzaLvCxTRcBJZJN65hwynhwo?=
 =?us-ascii?Q?kKsC+aFTCbAmFCEZhbg1LTiBTEUhxnAKheOpJNLvpVqAyPn6GfheXutrMMi6?=
 =?us-ascii?Q?DR5ykeLgzxznRkw2eUCDOV+ckkw2Vev9aihhi0tAW2iBdo8xAbUJlvMp7Bsp?=
 =?us-ascii?Q?bQ0Q1EphSVri2VUGnaNrhCLr87JFxlOZTmspYDNHbM+Fps9HCIIcnjWDTD/4?=
 =?us-ascii?Q?hcbY9VSVMkv8Zu/+qqUmA6Ezzz1T37Dq1NfUmsJM96q0COItIhckTy1SetaR?=
 =?us-ascii?Q?Cl7L9Li7IYMnz3kyaz7n1+kYiucN+hgZA9E6/Pkm79dUnJ52RLSjPML37iAp?=
 =?us-ascii?Q?2YZVKI0uG5sNsY2x/9BGOiz/WqjomiqkwJUjUCcgR4BPdNKMAF4bXIQ45MI0?=
 =?us-ascii?Q?iF+oWY8GTs9D0aJDzFffGfLO+qVPldAvfO3x+GooBGRc5LrmFgk76MrgjmoP?=
 =?us-ascii?Q?Jb1endByioRzGZNeGjSKvhJ9SoZDaviA2nUCpyr8bjgpOdc5LHO0P4T4V5bo?=
 =?us-ascii?Q?FBVo3rD7QvXI5KBzBCZA+zuAGWVaiqAF6WM8gdhpAoM/shLhn+G25PC6HJAB?=
 =?us-ascii?Q?KnBcQYl/yObs6HN0jWjOjOiVmBWvOdFfr0xArMN5Fq/dBxNKsjUGf/ZL5ngm?=
 =?us-ascii?Q?nvmCMXjaygr8ptbyQLdHHxH+uDLZ7/etYqiH7RB/qY46cVlVv303/bSwOVDB?=
 =?us-ascii?Q?zJoX7ZmzHoIs+xX9nUCXW2fTonYWB6DiXXoOmmpgYu5zdkhBMh6lsLeVHqJN?=
 =?us-ascii?Q?MG/PdlMzB51Lh5cYM264bnDSIn3t/wVOtO+tEjTs17hJctL/RkrUpOZilV0M?=
 =?us-ascii?Q?n24Xge8jiXZnRqeeYya7R6kuxwzzY6TKakkDaUyEDxgIV+nfBUfKpxkLDBCg?=
 =?us-ascii?Q?ATJUBzmHuYmYvBYCWPup1kI9RHctD19dZOT0j16bR4iPu3MxJLMXz6NxKZSe?=
 =?us-ascii?Q?4SP83lKlcuiUSbLlTduj83fwG41h9FxuUJ6WqAcDOY+mVlxOC0hl4CXLWiNF?=
 =?us-ascii?Q?oAOZ+8edlk5h+XAeTx7iA3MYz+8sfX+sisJ+R0jpuQGbqIKsfbH+iXMBabhm?=
 =?us-ascii?Q?qeKFFLWpwxntpdvOmgF1DN0abX4ww/eoDWcv0ON061/NjEEiSFhfVTMlfZcC?=
 =?us-ascii?Q?JhlIakufMKQPX3Ywj8yUFSSHnjV2ERRxM4ZtoDagInR/HmT3LuPbtH89EOS3?=
 =?us-ascii?Q?o8s/kpzi8kYm/Wx5wWRLIK/09OEfwYB0KgnNX0KF08C9UzNCQKdBWOeupgJF?=
 =?us-ascii?Q?EMYQDnZ4y49wzYe3Vg9w9z4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b1d52ce3-aaf2-4f93-30ff-08d9aa7a0662
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 09:58:52.0405
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: k8EvyGDDgvKx1hIsDs9b2mS47lVNh/+YfVxzh0ruR7kYRqbJT/W8xIRFTRgUb0WEl4Mfn4GvLVerPILAyaLthA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3120

On 17.11.2021 17:48, Andrew Cooper wrote:
> There are several cases where the act of interrupting a remote processor =
has
> the required side effect.  Explicitly allow NULL function pointers so the
> calling code doesn't have to provide a stub implementation.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
>=20
> The wait parameter is a little weird.  It serves double duty and will con=
firm
> that the IPI has been taken.  All it does is let you control whether you =
also
> wait for the handler to complete first.  As such, it is effectively usele=
ss
> with a stub function.
>=20
> I don't particularly like folding into the .wait() path like that, but I
> dislike it less than an if()/else if() and adding a 3rd cpumask_clear_cpu=
()
> into the confusion which is this logic.

I can accept this, albeit personally I would have preferred the extra if()
over the goto.

Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 10:01:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 10:01:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227293.393085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mneEY-0006Eo-Db; Thu, 18 Nov 2021 10:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227293.393085; Thu, 18 Nov 2021 10:01:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mneEY-0006Eh-8P; Thu, 18 Nov 2021 10:01:34 +0000
Received: by outflank-mailman (input) for mailman id 227293;
 Thu, 18 Nov 2021 10:01:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3ELX=QF=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mneEX-0006Dq-5o
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 10:01:33 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2060e.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 80d9929a-4856-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 11:01:31 +0100 (CET)
Received: from DB9PR05CA0021.eurprd05.prod.outlook.com (2603:10a6:10:1da::26)
 by AM6PR08MB3000.eurprd08.prod.outlook.com (2603:10a6:209:43::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Thu, 18 Nov
 2021 10:01:22 +0000
Received: from DB5EUR03FT058.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:1da:cafe::e7) by DB9PR05CA0021.outlook.office365.com
 (2603:10a6:10:1da::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Thu, 18 Nov 2021 10:01:22 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT058.mail.protection.outlook.com (10.152.20.255) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 10:01:21 +0000
Received: ("Tessian outbound de6049708a0a:v110");
 Thu, 18 Nov 2021 10:01:21 +0000
Received: from 0f3a67bd64dd.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E382F916-9D0D-4D21-8CD2-6A3F4C67799E.1; 
 Thu, 18 Nov 2021 10:01:10 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0f3a67bd64dd.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 18 Nov 2021 10:01:10 +0000
Received: from AM0PR08MB3778.eurprd08.prod.outlook.com (2603:10a6:208:104::24)
 by AM9PR08MB6865.eurprd08.prod.outlook.com (2603:10a6:20b:2fe::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 10:01:08 +0000
Received: from AM0PR08MB3778.eurprd08.prod.outlook.com
 ([fe80::3133:1b5:369e:9dd5]) by AM0PR08MB3778.eurprd08.prod.outlook.com
 ([fe80::3133:1b5:369e:9dd5%7]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 10:01:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80d9929a-4856-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CklGWzrmvjCZtpXiTS1VuOGiRLuIlUBW8y/+YX9ouy0=;
 b=TwcY+a1PxdROx4yvMIObMI6QDMmgqo9c8fOTYOk4JBf6gZ7i98B6BbjI8b2aqjw+q0p5e6jcqjvMPSJKHr6hZ4DUDLBZKapH0jktZ6CDKdxTpWKI4SWL4Pe8AYie3ChkpcmIoUwosn/ebqbNrti1kJHFYCeoFRRvBz+TtODKeKo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 748ddede485b6eb5
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mD4FQujc5M0kHrXMA1mwwn0zcWLAQLi6U3brGAfFSLNmj2s0BJNU4KAdLJ4cOv6+BRwp+QGitmlfaOjPpNWj3IJRnCJYgj+rbOocFnCShYAZE98WVZYv2Tm4m9d0M+AtGTrrZFktzKEtOqdZ9fCh0/QHvY2tDK2u9KtsSKy5W5WmcC/SvSy7iuQfsgOsUB/zQ0nsZ4wcwhoJyfRpA4AQYn+ECUl132nv6yMQGMILZpCcMLZLbRC2CM5x4Hb1+gmyBsggHRWUvMWYSoeShF92IJaxfXiuSWgpfTDvKVPI8WeMwO4BhOpZvpCz/bAXd8eE3lYC3Ywxg/B5y/Hvk6ib4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CklGWzrmvjCZtpXiTS1VuOGiRLuIlUBW8y/+YX9ouy0=;
 b=QVT0mwKq/QPNS4Zcun7l9OUnDF9dtqEhCRPFGvkl6fUVgcOUeqm4jgkXgbQ2X9prR1+8/dRtHdbJ2gSdhleAbrnmj5xNJp5C9PExbSZoVDpIrsuP+FMnXd46fjPYwBc1l89FteqoBapH15ruk5HfIC2mmtL5KaLBXnVaOoFxioVMe3CkV0OggX272FXCAB7avgjfxa2AbCNdMhK6VID1qMSeHlVPx7e3MV9wmjbNZhsSgjE9Tp5gEDrvZtdKiciIRFp1ljN1bm5OoTfYh4fhuZBPfuWROtUFUsFpDgW74JQaQJDVS14kyLnLyZMVPjXZo334iEW7O+5BLEzUTmzKAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CklGWzrmvjCZtpXiTS1VuOGiRLuIlUBW8y/+YX9ouy0=;
 b=TwcY+a1PxdROx4yvMIObMI6QDMmgqo9c8fOTYOk4JBf6gZ7i98B6BbjI8b2aqjw+q0p5e6jcqjvMPSJKHr6hZ4DUDLBZKapH0jktZ6CDKdxTpWKI4SWL4Pe8AYie3ChkpcmIoUwosn/ebqbNrti1kJHFYCeoFRRvBz+TtODKeKo=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Julien
 Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, Nick
 Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Quan Xu
	<quan.xu0@gmail.com>, Rahul Singh <Rahul.Singh@arm.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Shriram Rajagopalan <rshriram@cs.ubc.ca>, Stefano Stabellini
	<sstabellini@kernel.org>, Stewart Hildebrand
	<stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei
 Liu <wl@xen.org>, Community Manager <community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Topic: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Index: AQHX25ke11bcLw+u/U2iOGdMJWqiNawHwc0AgAE8BwCAABFigA==
Date: Thu, 18 Nov 2021 10:01:08 +0000
Message-ID: <31E84B55-DF77-40B5-A61E-45DC79AEC7F6@arm.com>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
 <YZYVzkaQTQ6+Rn72@Air-de-Roger>
In-Reply-To: <YZYVzkaQTQ6+Rn72@Air-de-Roger>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 2abcf775-2646-465f-16cd-08d9aa7a5fbe
x-ms-traffictypediagnostic: AM9PR08MB6865:|AM6PR08MB3000:
X-Microsoft-Antispam-PRVS:
	<AM6PR08MB30002B3B4964FB94F278217E9D9B9@AM6PR08MB3000.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 zL3OQcEYDVURC4NWksSMScwb+harDxUZgX2XjTDXbUBbAqTRge6kLu6RwuDco2fqlYg2Ze1E/DKGFyq4lPf3KxlHj9z8jJbSbfs0wpUHsqv6fOXucZAdz7iKG/5NQjQ+Z16/I1uHSiQF/p9X+89VD8flbLGWDG00/yKxhy6suwarTY5Ef8oe0o1kIqLTv7/+8qWrVB30zynQ7tbXHz/G27giqJjcH3X4InSEV6Qaga+bDZYP3bq6YxKQMW3gtP4Rc9D5fkXt1P6wgl4jFEOO2XcxVABVulqtbssUNc3+UlZfH2OoxHhG/QIHxWlGFzscQb5vFi2QLPVW8C0XdmMjNwJAMYol2hVHYLsthb6ZfvEnsL2xL1s3mQY+cwqglwMOM53mNlsS0J4ZhIhuKtYJjX5CMCqnWUTjUjIApuHZKFMV3G7evO0lgssEh/Uo6krmaCWM7hzrj9T85XsIIzdO9aTnEknZZUSthIL3vn5xr6AZ1dRxSzX5918jI9+FqWKLvDI/ugD1MOEbCPztgw5bpQUGyxR/Vq8csm6MQ3im5eM35CTj3Iiux9P8jVDtll7R6MqkdxT2XeCPNXKpFdgv1k0OadYnD1yKL9CTBh5dusNUCLTWT9XdJPPmDgroRLBYlzEC7+Lf10bl1MQluhl16hBb+wOV9w1LZ4XD6YG+vGCh/zZ374geIwQaPueM7hvBzLH0CO6RzukEYtCHAwrNy5/7j+Hc0ccIFgL2a9tpw0QF8wFmWmEKq1SSHiKfeDfE3FFhhwSaRr5t/+yPOehadyxYOUnhy7Zi/A64/3oAHLWz4ph9hvogvJ2q6/MjBMWCJUlrLtgaw5YKwb3QS/gdC+zEfS1UA34MSHIk8v1K1NkDupL56A5tHIxZIc6Hmy8uMULQ7+29HZl82NmC3UokS2IBpvpjShKCJKja/lhmqFk=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3778.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(36756003)(2906002)(54906003)(71200400001)(8676002)(186003)(6512007)(316002)(26005)(2616005)(122000001)(33656002)(7406005)(4326008)(66446008)(6916009)(5660300002)(66946007)(966005)(8936002)(53546011)(6506007)(508600001)(38070700005)(6486002)(66556008)(86362001)(76116006)(38100700002)(66476007)(91956017)(64756008)(7416002)(207903002)(219803003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <3422E76CFB2F294ABEFB418913334662@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6865
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT058.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	246947d9-69cb-4e1e-2490-08d9aa7a57c1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	+PuqAn72nk8XY7hRTz4HjYo2wJpNPj9ZV2wv2965YbeMSFGkDTh1/2Gu0YpI8+0NK2mmGKBXGdwqb09E37Q8uCf4egquT/zJg5i+nIq1jlMoZcoUWydkrSUt0kip4Lgb4YtW3bLQHuKajnpDEzr5T50OGFPDbOLGcE3jTKs9guLEFzNNCDZXYwFGna7Mw2gL+t1w+YepbUji62eW4t0eXN+xOZ0oV2D5MJOmThEIL0acNHZZPtd9TEvTnSA+k5s0BTnRGWLm4CSbu0+yt7Tlk8SdVqF+LES6HrMOPR0pZoQQIzLcyZ6SohbVlJh9ROmzvKAyqxp4WIwCu7F5GyHwIt3ADUdF26uo2fV5iom5/Id2sJ+i1oXhLmJuwGeMWRNE0+vCrO1Ao91J3L8jIdzei62cUL9EzaXrwbcJrN29qkmrtitVTCZFrKcVyP+YEErZWwHkS2+1S+XV5z0HJFRNbPzctnX58kExzEmxCZQOvPGg0lAb9UhI1a+JVr/GR2a9GJxSuxuRqWpcRwduyROk98tG31ESf4tYHukiEju6eIvEJ1D0kcnFcvIibduc9Poq+NLCzdQbUNOpzLpZRdoPs2q/mSe31rK0eNOjRDAlb/DKLKe0qXuWQ57qmdFi2i37iVkHvIGW2LDkc8M7x9UF5Xdy5Fd7aO7LQCagvpv7abkq8HGunE4vgJOAy5rD4PnKFa7nghhSLEg8IXIkZW5kuQfbSUsQxywDVZ0h0ux+qDUL6JLSMPfYQz+clYYiV/y1rivoScCY8YInBYj7H7uiTITc+5CPdamqSi0mG5hFQipvOcWw3lmUwZ81wpjFyZKF8JMWfdLMCKW0j+DEMrC2upPZq6YP0bQi6d58lGLh8ELABZjc2X6LaTqQXoUSEe/W
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(53546011)(6506007)(81166007)(6862004)(316002)(70586007)(86362001)(47076005)(336012)(83380400001)(966005)(5660300002)(6512007)(508600001)(26005)(82310400003)(4326008)(54906003)(8676002)(36860700001)(2616005)(8936002)(2906002)(70206006)(186003)(356005)(6486002)(36756003)(33656002)(219803003)(207903002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 10:01:21.8581
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2abcf775-2646-465f-16cd-08d9aa7a5fbe
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT058.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3000

SGkgUm9nZXIsDQoNCg0KPiBPbiAxOCBOb3YgMjAyMSwgYXQgMDg6NTgsIFJvZ2VyIFBhdSBNb25u
w6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIFdlZCwgTm92IDE3LCAy
MDIxIGF0IDAyOjA3OjUwUE0gKzAwMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiBIaSBS
b2dlciwNCj4+IA0KPj4+IE9uIDE3IE5vdiAyMDIxLCBhdCAwOTo1MywgUm9nZXIgUGF1IE1vbm5l
IDxyb2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4gRG9jdW1lbnQgc29tZSBv
ZiB0aGUgcmVsZXZhbnQgY2hhbmdlcyBkdXJpbmcgdGhlIDQuMTYgcmVsZWFzZSBjeWNsZSwNCj4+
PiBsaWtlbHkgbW9yZSBlbnRyaWVzIGFyZSBtaXNzaW5nLg0KPj4+IA0KPj4+IFNpZ25lZC1vZmYt
Ynk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0KPj4+IC0tLQ0KPj4+
IENIQU5HRUxPRy5tZCB8IDExICsrKysrKysrKysrDQo+Pj4gMSBmaWxlIGNoYW5nZWQsIDExIGlu
c2VydGlvbnMoKykNCj4+PiANCj4+PiBkaWZmIC0tZ2l0IGEvQ0hBTkdFTE9HLm1kIGIvQ0hBTkdF
TE9HLm1kDQo+Pj4gaW5kZXggYWQxYThjMmJjMi4uOGIwYmRkOWNmMCAxMDA2NDQNCj4+PiAtLS0g
YS9DSEFOR0VMT0cubWQNCj4+PiArKysgYi9DSEFOR0VMT0cubWQNCj4+PiBAQCAtMjEsNiArMjEs
MTcgQEAgVGhlIGZvcm1hdCBpcyBiYXNlZCBvbiBbS2VlcCBhIENoYW5nZWxvZ10oaHR0cHM6Ly9r
ZWVwYWNoYW5nZWxvZy5jb20vZW4vMS4wLjAvKQ0KPj4+IC0gcWVtdS10cmFkaXRpb25hbCBiYXNl
ZCBkZXZpY2UgbW9kZWxzIChib3RoLCBxZW11LXRyYWRpdGlvbmFsIGFuZCBpb2VtdS1zdHViZG9t
KSB3aWxsDQo+Pj4gICBubyBsb25nZXIgYmUgYnVpbHQgcGVyIGRlZmF1bHQuIEluIG9yZGVyIHRv
IGJlIGFibGUgdG8gdXNlIHRob3NlLCBjb25maWd1cmUgbmVlZHMgdG8NCj4+PiAgIGJlIGNhbGxl
ZCB3aXRoICItLWVuYWJsZS1xZW11LXRyYWRpdGlvbmFsIiBhcyBwYXJhbWV0ZXIuDQo+Pj4gKyAt
IEZpeGVzIGZvciBjcmVkaXQyIHNjaGVkdWxlciBzdGFiaWxpdHkgaW4gY29ybmVyIGNhc2UgY29u
ZGl0aW9ucy4NCj4+PiArIC0gT25nb2luZyBpbXByb3ZlbWVudHMgaW4gdGhlIGh5cGVydmlzb3Ig
YnVpbGQgc3lzdGVtLg0KPj4+ICsgLSB2dHBtbWdyIG1pc2NlbGxhbmVvdXMgZml4ZXMgaW4gcHJl
cGFyYXRpb24gZm9yIFRQTSAyLjAgc3VwcG9ydC4NCj4+PiArIC0gMzJiaXQgUFYgZ3Vlc3RzIG9u
bHkgc3VwcG9ydGVkIGluIHNoaW0gbW9kZS4NCj4+PiArIC0gSW1wcm92ZWQgUFZIIGRvbTAgZGVi
dWcga2V5IGhhbmRsaW5nLg0KPj4+ICsgLSBGaXggYm9vdGluZyBvbiBzb21lIEludGVsIHN5c3Rl
bXMgd2l0aG91dCBhIFBJVCAoaTgyNTQpLg0KPj4gDQo+PiBNaXNzaW5nOg0KPj4gLSBjcHUgSUQg
c2FuaXRpemF0aW9uIG9uIGFybTY0DQo+PiAtIGZpeCAzMi82NGJpdCB2cmVnIGVtdWxhdGlvbiBv
biBhcm02NA0KPiANCj4gQ2FuIEkgZ2V0IGEgYml0IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhv
c2UgaXRlbXM/IEp1c3QgYSBwb2ludGVyIHRvDQo+IHRoZSBjb21taXQgbWVzc2FnZXMgd291bGQg
YmUgaGVscGZ1bCBzbyB0aGF0IEkgY2FuIHRyeSB0byB3cml0ZSBhIG1vcmUNCj4gY29tcHJlaGVu
c2l2ZSBlbnRyeSAob3IgbWF5YmUgaXQncyBqdXN0IG1lIG5vdCBrbm93aW5nIGFueXRoaW5nIGFi
b3V0DQo+IEFybSB0aGF0IGZhaWxzIHRvIHVuZGVyc3RhbmQgaXQpLg0KDQpJIGFncmVlLCB0aGUg
dGV4dCBpcyBub3QgcXVpdGUgY2xlYXIsIEkgd2lsbCB0cnkgdG8gY29tZSB3aXRoIGEgYmV0dGVy
IG9uZS4NCkluIHRoZSBtZWFudGltZSBoZXJlIGlzIGFyZSBsaW5rcyB0byB0aGUgc2VyaWVzOg0K
aHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L3hlbi1kZXZlbC9saXN0Lz9zZXJp
ZXM9NTM1ODA1JnN0YXRlPSoNCmh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC94
ZW4tZGV2ZWwvbGlzdC8/c2VyaWVzPTQ3NzE1MSZhcmNoaXZlPWJvdGgNCg0KQ2hlZXJzDQpCZXJ0
cmFuZA0KDQo+IA0KPj4+ICsNCj4+PiArIyMjIEFkZGVkDQo+Pj4gKyAtIDMyYml0IEFybSBidWls
ZHMgdG8gdGhlIGF1dG9tYXRlZCB0ZXN0cy4NCj4+PiArIC0gTmV3IHg4NiBwYWdldGFibGUgQVBJ
cy4NCj4+PiArIC0gQXJtIHZQTVUgc3VwcG9ydC4NCj4+IA0KPj4gTWlzc2luZzoNCj4+IC0gc3Rh
dGljIGFsbG9jYXRpb24gZm9yIGRvbTBsZXNzIG9uIGFybTY0DQo+PiAtIGRvbTBsZXNzIEVGSSBz
dXBwb3J0IG9uIGFybTY0DQo+IA0KPiBUaG9zZSBJIGNhbiBpbmRlZWQgdW5kZXJzdGFuZCA6KS4N
Cj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 10:21:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 10:21:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227300.393096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mneXD-0008WV-Vw; Thu, 18 Nov 2021 10:20:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227300.393096; Thu, 18 Nov 2021 10:20:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mneXD-0008WO-SG; Thu, 18 Nov 2021 10:20:51 +0000
Received: by outflank-mailman (input) for mailman id 227300;
 Thu, 18 Nov 2021 10:20:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=45Id=QF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mneXC-0008WI-5A
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 10:20:50 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31c80bcd-4859-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 11:20:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31c80bcd-4859-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637230848;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=WbA3nqP4lQWOX2GpJIOG0Fo9bUPV0YAjuTTfD6x6Ky4=;
  b=GjZ8CmUVM4CsYBcxTjWiLShLbt/SX6s5GXVi5/BiIWBtcNNYOmu4/u5+
   MM5Pp+rDRbzGcry9X7nTljHIRp7oHwIKQylZHx+2m6F++SHkveAveRvI6
   gHKsOV/GBKUIv/lF9A1BG4ti5Tbv2k+WUIx/icQYNm422VTL9rPVqhbqT
   o=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: j8bf7tjGWMINYw/cB5mB43JSKtf78ZpxjfpjXkFk8qk/BhM9kG1kBUsE3xKehdz/kOLR+7XZ6K
 i5WXWs7YX/8v/1reek2uvaQpWblgDqbb/XmkZBR6/JiEopT5BRylH+fkmsZiqsPDRb5hl4EpKz
 VfI5muV7JGuk0EYwCPe8/eh1qui1/2F4jVeXWGJbsBkdUEzFkB5X4S2DQIAZQfEgtuYFPVXjJR
 3QGwt/U5mnPhZE0PovIxEqY27klsXzkxdJDT5MV5zHVOEm0IwacWLu6S2wPrtq5oKi6BGMnMH2
 01we4MOlzNKuDCYGYAtx686c
X-SBRS: 5.1
X-MesageID: 58133309
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:4b4J+qiTxj9crl8tyHmhVvyEX161hxcKZh0ujC45NGQN5FlHY01je
 htvCDuDM/iPa2H8Ld51at+09BgD7ZbUm98yTlRoqS5mEC8b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cx0YDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /0Up5mTdCR3N5Tsxu8yXiBXMmJ/DO5vreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t1pkVRq2GN
 qL1bxJpUzbtPCBLIWw9Ea4QoNyvvFSuWj1x/Qf9Sa0fvDGIkV0ZPKLWGMrYfJmGSNtYmm6cp
 3na5CLpDxcCLtudxDGZtHW2iYfnnDz5cJIfEqWi8fxni0HVwXYcYDUUX1ampfiyimalRslSb
 UcT/0ITQbMarRLxCIOnBlvh/SDC7kV0t8ds//MSsROI6Zf3vQ+gJjYPYTN4Z/1ltf51bGl/v
 rOWpO/BCTtqubyTbHuS8LaIsD+/URQowX8+iTwsFlVcvYS6yG0npleWF4s4Tvbp5jHgMWiom
 2jikcQou1kEYSfnPY2f9EuPvT+jr4OhouUdtlSOBTLNAu+UieeYi22UBbrzsaYowGWxFADpU
 J04dy62trxm4XalznLlfQn1NOv1j8tpyRWF6bKVI7Ev9i6251modp1K7Td1KS9Ba5hfJma2P
 BKP6V4Bvve/2UdGi4ctP+pd7Oxwk8Dd+SnNDKiIPrKinLAvHON4wM2eTRHJhD28+KTduao+J
 Y2aYa6R4YUyUsxaIM6Nb75Fi9cDn3lmrUuKHMyT50n3gNK2OS/OIZ9YYQTmUwzMxP7dyOkj2
 40EbJXiJtQ2eLCWXxQ7BqZPdw1XdiZiWsitwyGVH8baSjdb9KgaI6a56ZsqepB/nrQTkeHN/
 3qnXVRfxka5jnrCQThmoFg5AF82dZog/389IwI2OlOkhyoqbYq1tf9NfJorZ7g3sudkyKcsH
 fUCfsyBBNVJSyjGpGtBPcWs8tQ6eUT5nx+KMgqkfCM7I8xqSTvW94K2ZQDo7iQPUHa67JNsv
 7262wrHapMfXAA+Xt3OYfeiwgrp73gQke5/RWXSJdxXdBm++YRmMXWp3PQ2P9sNOVPIwT7Dj
 1SaBhIRpO/spY4p8YaW2fDY/tnxS+YnRxhUBWjW67qyJBL2xGv7zN8SSvuMcBDcSHjwpPeoa
 9JKwqyuK/YAhltL7dZxSu450aIk6tLzjLZG1QA4Tm7TZlGmB748cHmL2c5D6v9EyrND4FbkX
 0uO/p9ROKmTOdOjG1kUfVJ3YuOG3PASuz/T8fVqfxmquH4ppOKKARdIIh2BqC1BN78kYooqz
 NAotNMS9wHi2AEhNcyLj3wM+mmBRpDav37Lan3O7FfXtzcW
IronPort-HdrOrdr: A9a23:IAy/fKmNcOmMfj1CadAj7OHMAk3pDfIo3DAbv31ZSRFFG/Fw8P
 re+8jztCWE7Ar5PUtKpTnuAsW9qB/nmqKdgrNwAV7BZmfbUQKTRekJgLcKqAeAJwTOssJbyK
 d8Y+xfJbTLfD1HZB/BkWqF+gAbsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,244,1631592000"; 
   d="scan'208";a="58133309"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CfDIAcPYzf5FgfjcurvhCHbZF+Ou+uBMsXYhVs38kumWuFP0cb9AHKiMB1Njqsmn7/YfTCfi4H5gVIJW6OZelb1F7dFQkCmWIORurtNFjac4J+qW1b5VLati9oPYbMnpEj5BwZlhnT7mScj5ekBhGTjxbmVHSJDsW/wgJ2XaEg3BKaiDl0EzPKIdyBMbbc4iXQgCKD9tIFoPNDs9Bf3PWDL/5f3saMeUgb/nafYU+3fSltwb7Wkgs5C/SeTGQOcC9jR1TVCzhOiqcWZluLkY2NFlv8JEQpt/b7o8NTT6Wrdo6U9PDQIx/vl+nvFYUSiFYOaheNdnQzd3Ju3Ybke2AQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VlgMutMQb+2IUHmemPA9szW1fAYLAb1w4VIV8ymViM8=;
 b=a1vq/2VihPRMeFBmaxPo+r4EOB7pMZOrG+4hZBugc/uoVUDkYqGWEO5wSWHxJh8q92Ivd/rQRFtSaEy6F2cg3zuzfdFU0cJ+vFxJ12b8OJCnY31pvTX1HnbmmqSdjVlUENcWT6RF7+cisaDxssaRmaeVlHCDshZtGK4N2gYlWPvfZ4wBPkDCSyaqvQiWHfkW1NPngMsWCOD64B0NpZspO9Gdwk/nfPoWdd1wsb5n6bAfmZ4i1H7FKtzqzCo2fvX6gemT+lkladJBMxhvC5E80WA2GOEhm4fymJ8kpoQvgUFVHgOTBMiKZocbIHBo8vA4vALDoXYGxSUoa7wEBZhlFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VlgMutMQb+2IUHmemPA9szW1fAYLAb1w4VIV8ymViM8=;
 b=AWZ51anX3QwvDru0ooto3i4mISUX3j9ZwcAKxShFkPovTB7rAyZoEnKYmvE6MuwfA2XGypez0J3pHjL1NOe60QArboER92AU1mKDFTgR1pLoOfVCIPZURXerqUcwM7VysN470kbzOM1E7+r1kXcJgfQ0DsEPJ8yqtXIDBai3tfs=
Date: Thu, 18 Nov 2021 11:20:38 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Ian Jackson <iwj@xenproject.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16 v2] efi: fix alignment of function parameters in
 compat mode
Message-ID: <YZYo9oGq2Bzontjw@Air-de-Roger>
References: <20211118082806.23335-1-roger.pau@citrix.com>
 <1377adb3-e3f5-2865-a2df-e6dd8098645e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1377adb3-e3f5-2865-a2df-e6dd8098645e@suse.com>
X-ClientProxiedBy: PR3P192CA0020.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:102:56::25) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b6597a52-4f57-4779-8f78-08d9aa7d1478
X-MS-TrafficTypeDiagnostic: DM5PR03MB3370:
X-Microsoft-Antispam-PRVS: <DM5PR03MB337033140E1C0671B9443E6C8F9B9@DM5PR03MB3370.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: yLd8othD5XooVFdAwD9wxR5SMEeJKS3fZT625yIRfCbMeUi1+kr6BP7dQ6hU0nZ+P9CDYwBuNWEYi/a0J74HTUA2gC7j9KXzR1HSlkxIDeCNvlyaGtTKwn8/Ogt8skCcv4Q0A4XI8hcFYlpkBcuVnsXKNrLfVMoUXMH97jR6kuCtfa4ZEhKgQouq713aaLdcHsqJvLcaaxJyK9bTGp4i/4CFTpr2HeM7E5vJakAnLrY3L6s4rUd73mQ7UzGpqJommwWH9/2/q1QMJSFUH6WZCW6Im0jpq9a9i52Y8DOio/L0gIe5vhUP2sRe9LpqKIbUAmLXhhbiRUYmnWrtE+YESnl5ADxvgdMhQKJWzYIrIHRkgCOYHU0joWg2PdE82t/MyrbdVfqsfOSyQIldRB9NnxzHfYxkOX9X9y6GnAdw/y9omHhEj014Z5rtt0fnvs0DyugTBjeSD+pqd32a5QwYXmCeLnfamj2siWiq/fZlImjj9MwctnjSk07FxU1FPXk5F+wB7TExWwLxdh3XXqPMt8Q9rpnfvnW75BENKtWbldxlAOukXNGnBft831TzOWp/Q5UhYo6k+PEuufMd64KB1ojZ+CZDaAqj85c4tPXvqRPGqgUFSBYsy4arOLwk93yY4oZxBmKee0XCdRzdB5ubFg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(6486002)(38100700002)(33716001)(6496006)(5660300002)(508600001)(6666004)(8676002)(2906002)(316002)(9686003)(66556008)(66476007)(8936002)(4326008)(956004)(85182001)(66946007)(6916009)(53546011)(83380400001)(186003)(26005)(86362001)(82960400001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OEtVejgyQ2JwdlQwdVZIeUQ1NXQ4SmN6Ri9wV1RtMHZ2M0FQZlJISCtiNlVo?=
 =?utf-8?B?ZmxESVR6cEdIU2EyemhGZE1SU0RFNkl5NWx0aFdXOU53b2hyVDZWeTNQamxV?=
 =?utf-8?B?UGhadUI3eFowbWRLTFZHSU9VTXZ5OUFORE1kZ0ZYd0VHM3c0bUlQT29mMzRY?=
 =?utf-8?B?NHhXalN0blNzVHVLMUpKK2k4MStuOVVKbklYNUJsZms2YmhPUHhWZHh4Mk1t?=
 =?utf-8?B?bkp5SWlYUGhDVlVISkdheGJnOWZ5WEQ2QVVOZnRoL0pEQkViZ2RoYjQzWGta?=
 =?utf-8?B?Zk5TWERkN3VRNlNkc3RvaFQ4YzJsSEh6RU1USklVaFFjMXE1eE8vZmgwYzB5?=
 =?utf-8?B?bVNMU3dsRlNNcTZwMld5STlvQXdGSzNNSkdQS1RaejdITDh3OEY2TVJQZjJu?=
 =?utf-8?B?VUlIMStrUDRFb29HOVB6YjJOZnhQU3BvWStWYlNaU0hzSUNQYTUzS3FLRWQw?=
 =?utf-8?B?LzdpdHZHTGhLWW1MUkowQzRGWHl1SGZsTmpwcmtzeGtNdTlFRFQwSTRnVWov?=
 =?utf-8?B?QnVLZ0hPaVgyeDV6cVU5QU1ZNG1YNEROYkJKMGFCVDBKUFY2VTZxTVJmeVBO?=
 =?utf-8?B?MytsbEtmQThla3NDMWhlSDZzMmN2anl0OGVFeUpESnlvYnVKVVVPWW8yZFgv?=
 =?utf-8?B?Q2Vta2tHREplUW5wRkpzVG9UaFlTNnZyQmlNRENRbTEvajNhWGRkbDJUWlVs?=
 =?utf-8?B?OFJBWXh4Y3kvaC9ReEJvNWJBU3NOTXB3dFhtb2NpdForWkZBRGplbGRkLzQy?=
 =?utf-8?B?ejl2blhlQS9nSXFsMWl2LzR6cENaL2c2aEVIMHIveEtXQjJWamhwMzM1QnVB?=
 =?utf-8?B?ckcvcC9yVXdHUjNiVUo1NTRja2d4Ykl6VXlYcVF0d1AwUjdmcmN6ajNZZVNt?=
 =?utf-8?B?S2RYWkZZUkpjaGlYY0FLQ1Mvcmx2YktpNmNhRmhRbDFPdC9ISFNKd0tvbHUv?=
 =?utf-8?B?L2V2aVJuaGhUK0VqK3hOTWtOUGxBYjkzTkNHQWg0aWVmam9YbkZYVFlQRVhm?=
 =?utf-8?B?dlJFaFU1bmErMU8xOVZVYUJFU2REVUhRUVVZcUlKV0pRcDdKU3d4OUhxdVls?=
 =?utf-8?B?QnpUMFo2M2trMHRVSkwzOUErdXlPNGJHVFQ5MytrbHh6b2tmd2JoQTJJazBS?=
 =?utf-8?B?dm9Lbjc3VXB5dEZwVkFSUktxd0ppVHdsZUt6VEZIeXRvMjhNVTBkQUJXYUpL?=
 =?utf-8?B?cGxXWjYzL1R2c1ErTFh5Z29MZDVsQVhCQXJyTWticVpoMnVhT3gzSzRTMjBu?=
 =?utf-8?B?SmM1WkdQamYxei8vT2wrdGp4SVdRSkFzemlOWVpuMnllM2JmeUV2c2xpUXIz?=
 =?utf-8?B?MjBLbGs4OHR4dUFvOU02VnBFRmV0MjQ4QnlZdmdsdmt2TEFFNHJGM29YUTZC?=
 =?utf-8?B?OGhwRzN1cGxsVElsMy9UWW8xWnBWK3FvNVAvdTVWSkxQM3c4Rk9kOG45cWcr?=
 =?utf-8?B?bzFwS3d4bUFCNGxvZ3RtY0xjVVpMS3lxL3hmUlNrTFJHRkVKVWp5NXZXNjc2?=
 =?utf-8?B?VUhqQVQ2VU8yanhxcFVaNTZuKzFtRUFJWjRYNjV1ZHZaNXQwYjNZK1FCeXBB?=
 =?utf-8?B?RXBhcTEyVkFLbU8wNFMwSk02bkROZmppN2tPRXlXc2tnRy9aZ1p6bUFjV1VW?=
 =?utf-8?B?UEZ3QmZBUkh6MnEyQmR0MTRmOUM0dlo1S2tMMGxlbGR3ZjFQYVNtbEpxOWY0?=
 =?utf-8?B?UlQxQmVFVkxkQ09BbWJwUUJ3TUtQb0xaZXdVTkpSV05KRUtFdFI0Y0RhdVg2?=
 =?utf-8?B?QnFBU2FqTWNlQ0t2ZUY1NmtHb0YyR0NXQzVsVmVIMlNiQmZsT0Nkc3BxTGZR?=
 =?utf-8?B?c1d4SCtVMGVZUVhWTWdwaHF2WGZCRGFXTEJVSjBNRm05Ui9hUVUzSEJvSUxB?=
 =?utf-8?B?S0owdEdsc2lMRCsrbVdTOXhxSWM3b2VHaEJCWFZCK05OTFRmZWUyUnFjSjli?=
 =?utf-8?B?dTRSZ3ZBdkxRQUhZSFB4cDdiZUN5YW9WNkNIUlcxVURIOEtURXVKL1RVanlZ?=
 =?utf-8?B?Z3g2YUtqWjBSVGpiRDR1SVg2bkZTNi9EM2dIVGFOVlM4aEFEV0JRYk9kWkdT?=
 =?utf-8?B?WEhadkQrYnJ3MmVYTDZZeitYRVY3UDdzYVNJbnpCbnNTMlZuV3ZLa0hVdE5n?=
 =?utf-8?B?U1lIeU82bHR0THV6WTI5SzN2N0hBcGYyNjNjQ3dRdEFQRTloMVJ4MVJ1NEI5?=
 =?utf-8?Q?voWbvQj+PjJ/psGmoAZlkcY=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: b6597a52-4f57-4779-8f78-08d9aa7d1478
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 10:20:44.1999
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lo2J6QZ6A/V14T+wab7qe05tpq/aWC4QZoQxYk5FBVYQUDnRUekzsQnEfM2U6a4AlBGQiCM8ciezX3s63mzETA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3370
X-OriginatorOrg: citrix.com

On Thu, Nov 18, 2021 at 10:46:32AM +0100, Jan Beulich wrote:
> On 18.11.2021 09:28, Roger Pau Monne wrote:
> > Currently the max_store_size, remain_store_size and max_size in
> > compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
> > 13.0.0 complain with:
> > 
> > In file included from compat.c:30:
> > ./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
> >             &op->u.query_variable_info.max_store_size,
> >             ^
> > ./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
> >             &op->u.query_variable_info.remain_store_size,
> >             ^
> > ./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
> >             &op->u.query_variable_info.max_size);
> >             ^
> > Fix this by bouncing the variables on the stack in order for them to
> > be 8 byte aligned.
> > 
> > Note this could be done in a more selective manner to only apply to
> > compat code calls, but given the overhead of making an EFI call doing
> > an extra copy of 3 variables doesn't seem to warrant the special
> > casing.
> > 
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> 
> The code change looks correct to me, so it could have my R-b, but I'd
> like to ask for some clarification first.
> 
> > --- a/xen/common/efi/runtime.c
> > +++ b/xen/common/efi/runtime.c
> > @@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
> >      break;
> >  
> >      case XEN_EFI_query_variable_info:
> > +    {
> > +        uint64_t max_store_size, remain_store_size, max_size;
> > +
> >          if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
> >              return -EINVAL;
> >  
> > @@ -638,16 +641,34 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
> >  
> >          if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
> >              return -EOPNOTSUPP;
> > +
> > +        /*
> > +         * Bounce the variables onto the stack to make them 8 byte aligned when
> > +         * called from the compat handler, as their placement in
> > +         * compat_pf_efi_runtime_call will make them 4 byte aligned instead and
> > +         * clang will complain.
> 
> I expect future gcc would also complain; I'm actually surprised it
> doesn't already, as I recall work in that direction was done for one
> of the more recent releases. Hence while I'm fine with referring to
> clang specifically in the description, I'd prefer the comment here
> to be more generic. E.g. "... and compilers may validly complain."

Sure.

> > +         * Note we do this regardless of whether called from the compat handler
> > +         * or not, as it's not worth the extra logic to differentiate.
> > +         */
> > +        max_store_size = op->u.query_variable_info.max_store_size;
> > +        remain_store_size = op->u.query_variable_info.remain_store_size;
> > +        max_size = op->u.query_variable_info.max_size;
> 
> All three are OUT only as per the EFI spec. I'm not going to insist
> on dropping these assignments, but their presence wants justifying
> in the comment if you want to retain them. E.g. "While the function
> parameters are OUT only, copy the values here anyway just in case."
> Obviously if the assignments here were dropped, the local variables
> would need to gain initializers to avoid leaking hypervisor stack
> data.

I think it's important to do the copy in order to prevent changes in
behavior. Even if explicitly listed as OUT I won't be surprised if
there where quirks that passed something in.

What about replacing the last paragraph with:

"Note that while the function parameters are OUT only, copy the values
here anyway just in case. This is done regardless of whether called
from the compat handler or not, as it's not worth the extra logic to
differentiate."

> If you agree with the suggested comment adjustments (and don't want
> to e.g. go the route of dropping the assignments), I'd be happy to
> make such adjustments while committing alongside adding my R-b. For
> anything else I'd like to ask for a v3 submission.

Sure.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 10:25:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 10:25:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227305.393106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnebc-0000nO-Kf; Thu, 18 Nov 2021 10:25:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227305.393106; Thu, 18 Nov 2021 10:25:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnebc-0000nH-He; Thu, 18 Nov 2021 10:25:24 +0000
Received: by outflank-mailman (input) for mailman id 227305;
 Thu, 18 Nov 2021 10:25:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnebb-0000nB-9C
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 10:25:23 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d5172e9c-4859-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 11:25:21 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:60038)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnebX-000nKV-9E (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 18 Nov 2021 10:25:19 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 8DE811FA51;
 Thu, 18 Nov 2021 10:25:19 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5172e9c-4859-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <066bc8de-c112-d18a-a33d-3bae4ae9c45a@srcf.net>
Date: Thu, 18 Nov 2021 10:25:19 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen/smp: Support NULL IPI function pointers
Content-Language: en-GB
To: Wei Chen <Wei.Chen@arm.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <20211117164852.16394-1-andrew.cooper3@citrix.com>
 <bdfc59ab-87cb-26bf-78f6-bc521e7bdd5b@arm.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <bdfc59ab-87cb-26bf-78f6-bc521e7bdd5b@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/11/2021 06:51, Wei Chen wrote:
> Hi Andrew,
>
> On 2021/11/18 0:48, Andrew Cooper wrote:
>> There are several cases where the act of interrupting a remote
>> processor has
>> the required side effect.  Explicitly allow NULL function pointers so
>> the
>> calling code doesn't have to provide a stub implementation.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Wei Liu <wl@xen.org>
>>
>> The wait parameter is a little weird.  It serves double duty and will
>> confirm
>> that the IPI has been taken.  All it does is let you control whether
>> you also
>> wait for the handler to complete first.  As such, it is effectively
>> useless
>> with a stub function.
>>
>> I don't particularly like folding into the .wait() path like that, but I
>> dislike it less than an if()/else if() and adding a 3rd
>> cpumask_clear_cpu()
>> into the confusion which is this logic.
>> ---
>>   xen/arch/x86/mm/hap/hap.c | 11 +----------
>>   xen/arch/x86/mm/p2m-ept.c | 11 ++---------
>>   xen/common/smp.c          |  4 ++++
>>   3 files changed, 7 insertions(+), 19 deletions(-)
>>
>> diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
>> index 73575deb0d8a..5b269ef8b3bb 100644
>> --- a/xen/arch/x86/mm/hap/hap.c
>> +++ b/xen/arch/x86/mm/hap/hap.c
>> @@ -696,15 +696,6 @@ static void hap_update_cr3(struct vcpu *v, int
>> do_locking, bool noflush)
>>       hvm_update_guest_cr3(v, noflush);
>>   }
>>   -/*
>> - * Dummy function to use with on_selected_cpus in order to trigger a
>> vmexit on
>> - * selected pCPUs. When the VM resumes execution it will get a new
>> ASID/VPID
>> - * and thus a clean TLB.
>> - */
>> -static void dummy_flush(void *data)
>> -{
>> -}
>> -
>>   static bool flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
>>                         void *ctxt)
>>   {
>> @@ -737,7 +728,7 @@ static bool flush_tlb(bool (*flush_vcpu)(void
>> *ctxt, struct vcpu *v),
>>        * not currently running will already be flushed when scheduled
>> because of
>>        * the ASID tickle done in the loop above.
>>        */
>> -    on_selected_cpus(mask, dummy_flush, NULL, 0);
>> +    on_selected_cpus(mask, NULL, NULL, 0);
>>         return true;
>>   }
>> diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
>> index b2d57a3ee89a..1459f66c006b 100644
>> --- a/xen/arch/x86/mm/p2m-ept.c
>> +++ b/xen/arch/x86/mm/p2m-ept.c
>> @@ -1236,14 +1236,6 @@ static void ept_memory_type_changed(struct
>> p2m_domain *p2m)
>>           ept_sync_domain(p2m);
>>   }
>>   -static void __ept_sync_domain(void *info)
>> -{
>> -    /*
>> -     * The invalidation will be done before VMENTER (see
>> -     * vmx_vmenter_helper()).
>> -     */
>> -}
>> -
>>   static void ept_sync_domain_prepare(struct p2m_domain *p2m)
>>   {
>>       struct domain *d = p2m->domain;
>> @@ -1269,7 +1261,8 @@ static void ept_sync_domain_prepare(struct
>> p2m_domain *p2m)
>>     static void ept_sync_domain_mask(struct p2m_domain *p2m, const
>> cpumask_t *mask)
>>   {
>> -    on_selected_cpus(mask, __ept_sync_domain, p2m, 1);
>> +    /* Invalidation will be done in vmx_vmenter_helper(). */
>> +    on_selected_cpus(mask, NULL, NULL, 1);
>>   }
>>     void ept_sync_domain(struct p2m_domain *p2m)
>> diff --git a/xen/common/smp.c b/xen/common/smp.c
>> index 79f4ebd14502..854ebb91a803 100644
>> --- a/xen/common/smp.c
>> +++ b/xen/common/smp.c
>> @@ -87,10 +87,14 @@ void smp_call_function_interrupt(void)
>>         irq_enter();
>>   +    if ( unlikely(!func) )
>> +        goto no_func;
>> +
>>       if ( call_data.wait )
>>       {
>>           (*func)(info);
>>           smp_mb();
>> +    no_func:
>>           cpumask_clear_cpu(cpu, &call_data.selected);
>>       }
>>       else
>
> Why only apply to call_data.wait non-zero case?
> Is it because func will not be NULL when call_data.wait is zero?

This was explicitly discussed:

> The wait parameter is a little weird.  It serves double duty and will
> confirm
> that the IPI has been taken.  All it does is let you control whether
> you also
> wait for the handler to complete first.  As such, it is effectively
> useless
> with a stub function.
>
> I don't particularly like folding into the .wait() path like that, but I
> dislike it less than an if()/else if() and adding a 3rd
> cpumask_clear_cpu()
> into the confusion which is this logic. 

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 10:35:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 10:35:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227311.393118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnel3-0002Eh-JD; Thu, 18 Nov 2021 10:35:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227311.393118; Thu, 18 Nov 2021 10:35:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnel3-0002Ea-Ft; Thu, 18 Nov 2021 10:35:09 +0000
Received: by outflank-mailman (input) for mailman id 227311;
 Thu, 18 Nov 2021 10:35:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnel2-0002EU-1U
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 10:35:08 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 321a035f-485b-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 11:35:06 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:60042)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnekz-000toT-8P (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 18 Nov 2021 10:35:05 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 4F9E11FC53;
 Thu, 18 Nov 2021 10:35:05 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 321a035f-485b-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <9ce22608-a1ef-adbd-6455-8ae1af88b388@srcf.net>
Date: Thu, 18 Nov 2021 10:35:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Wei Chen <Wei.Chen@arm.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211117164852.16394-1-andrew.cooper3@citrix.com>
 <c1dc1fed-8f07-5074-592e-b240f2bbdd44@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] xen/smp: Support NULL IPI function pointers
In-Reply-To: <c1dc1fed-8f07-5074-592e-b240f2bbdd44@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/11/2021 09:58, Jan Beulich wrote:
> On 17.11.2021 17:48, Andrew Cooper wrote:
>> There are several cases where the act of interrupting a remote processor has
>> the required side effect.  Explicitly allow NULL function pointers so the
>> calling code doesn't have to provide a stub implementation.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Wei Liu <wl@xen.org>
>>
>> The wait parameter is a little weird.  It serves double duty and will confirm
>> that the IPI has been taken.  All it does is let you control whether you also
>> wait for the handler to complete first.  As such, it is effectively useless
>> with a stub function.
>>
>> I don't particularly like folding into the .wait() path like that, but I
>> dislike it less than an if()/else if() and adding a 3rd cpumask_clear_cpu()
>> into the confusion which is this logic.
> I can accept this, albeit personally I would have preferred the extra if()
> over the goto.

Just so it's been posted.  This is what the if/else looks like:

diff --git a/xen/common/smp.c b/xen/common/smp.c
index 79f4ebd14502..ff569bbe9d53 100644
--- a/xen/common/smp.c
+++ b/xen/common/smp.c
@@ -87,7 +87,11 @@ void smp_call_function_interrupt(void)
 
     irq_enter();
 
-    if ( call_data.wait )
+    if ( unlikely(!func) )
+    {
+        cpumask_clear_cpu(cpu, &call_data.selected);
+    }
+    else if ( call_data.wait )
     {
         (*func)(info);
         smp_mb();


GCC does manage to fold this into the goto version presented originally.

If everyone else thinks this version is clearer to read then I'll go
with it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 10:38:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 10:38:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227317.393129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnenc-0002sO-1C; Thu, 18 Nov 2021 10:37:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227317.393129; Thu, 18 Nov 2021 10:37:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnenb-0002sH-UN; Thu, 18 Nov 2021 10:37:47 +0000
Received: by outflank-mailman (input) for mailman id 227317;
 Thu, 18 Nov 2021 10:37:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=45Id=QF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnena-0002sB-Hs
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 10:37:46 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8f26ffdc-485b-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 11:37:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f26ffdc-485b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637231864;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=467SMhHvKC8b/X5FFPZw048OgtsclbIiJ+ca4P453Pg=;
  b=YSQV320bwgyUd8vc8QaNvhxNTPfnx0CiTEQeNBqRD3WKral9tyLFPBVs
   KjshhFcpuWa5WQIOLaNeaCEVBpilhRxE+usaplPYrCK6Rku7IjoLCS9rA
   /9iM8w7oE11ZWEaOqBZr149Rjutfh0QVONsLa4JD9MD4UC/azmXUvA2se
   M=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 1d3iyySweqbhNhJSMXT8d63zGcWjzqjRLSOzfFAA/vUuVcboKghrOd5HG8c3LtkQbf9Moxv8Fs
 RRrTBQkuIDagnD9SwkrZfE6j76JxX17vc70e+REHpxTXUyJ6VC+JTKEPXgm2SzSO2zztzTKtvR
 OExYw0jepEhbwdOjJ3Dzeu0Jriq7G4UFnKOlrpc09O99ibchgizPFWFIZSE4qKSAYkfzsOw9cA
 qKeq2xQ1XEs8sgLav/hXr9DlU8LWQqCYgarZ8k7hvmavlPCQF/D8HAuAHjAXQmBvf5sHnmWGhY
 jnMcM2p5CPMSEP46q3OFGpRH
X-SBRS: 5.1
X-MesageID: 58134277
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Xu2UeKOnN7QDFhfvrR2Ak8FynXyQoLVcMsEvi/4bfWQNrUoi12dVz
 TAYD2uHaPiCZmT0edknao6y9hwFvJKDxoBgHQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eszw7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoy+1lNpw1
 utzj7/qRwh4DJ/JkehHCCANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/iavIQEhmhv7ixINe3dJ
 NoXNRszVRPZbTdsGWsZWZM9uPj90xETdBUH8QnI9MLb+VP7wQh81rGrLdTUf8CRSNtctkGCr
 2nC8iLyBRRyHN2AyxKV/3S0nOjNkCjnHoUIG9WQ+vd0jXWJy2cUCRlQUkG0ydGyg1SyXN93I
 EUO9i0j66M18SSDTNbnWAajiGWZpRNaUN1Ve8U49QWMx6z88wufQG8eQVZpatYrqcs3TjwCz
 UKSkpXiAjkHmL+SUnLb6beVsT6yNCEZBWMFfykJVxQC+dr45oo0i3rnXttlVaK4kNDxMTXx2
 CyR6jgzga0JiswG3Ln9+krI6xqlopnSUgc0/EPZRGuj5QJiTJGpbMqj7l2zxf1HKYOESFidr
 T4Bks6X4+0UJYGAkjSXR+cAF63v4OyKWBXenFgpGZAi/jas/neLfIZM7TU4L0BsWu4IdjPkb
 1XakR9A759Uen2xZOl4ZJzZI8gkxKfvFNPhV9jPc8FDJJN2cWev9iZkb1+dxGDpnU0ll4kwP
 J6adYCnCnNyIa9n1jutW+AF0bIxgD94zmfaX5PTwBGu0L7Yb3mQIZ8GPUWPaKYl7aqCiATT7
 9tbccCNzn13S/biayPa9YoSK1EiLnUhA53y7ctNeYarORZrB2g7F7nRwLctdoZ/lqJZvuvP5
 HewQFBf0lnkw3bALG2icXlmdb7rG4p/rHgyICgwFVuuwD0ncIGpqqAFePMfZ6In7u15xPtcR
 OJDZs+LRP9GIhzZ/DAaYYj4vZZVfh2hjgKTPAKoeDE6OZVnQmTh0NL+YhHm8iVIKyOtrNY/u
 JWpzAadSp0GLyx+BcPfc9qzzFe8u3cMleY0VEzNSvFPeUDE4IVsbSvrgZcfJsgWLBzZyziy1
 gCIAAwZr+3Av4809tbSgamO6YyuFoNWG0dcEHnGxb23Lm/H5melx8lNXPvgVS/ZfHP5/uOlf
 +o95/L7NucOkBBVso5/O7FxxKk66p3koLoy5h15FXONf0nzIrxlK3iCm8JIs8Vl/LZZpA/wY
 UOJ9dlyMK+MfsjiFTY5Pg0+ZP6E0vISsjDT6/oyO0jxoiRw+dKvSUxPOzGchSobK6F6WL7J2
 s945pRQsVbmzEN3bJDW1Ui46lhgMFQab64tt48kPrXI0AQkm2NwZJXQUHTPtcTnh8p3DmEmJ
 Tqdhaznjrtax1bff3dbKUUhzdaxlrxV5kkUkQZqy0Ch34Oc26RphEE5HSEfF1wNln16P/RP1
 n+H3qGfDYGH5H9WicdKRAhA8CkRVUTCqiQdJ7bk/VA1rnVEtESRfAXR2s7XpSj1Fl6wmBABo
 Nl0L06/D17XkDnZhHdaZKKcg6WLoSZN3gPDgtu7OM+OAoM3ZzHo6of3OzFX8kS7XJ9h2R2dz
 QWPwAqWQfenXcL3i/dlY7R2KJxKEEzUTIC8aa8JEFw18ZH0J2jphGnmx7GZccJRPf3amXJU+
 OQ1Tv+joy+WjX7UxhhCXPZkC+YtwJYBuYpTEpu2dDVum+bO8VJUXGf4q3GWaJkDGI41z67Q6
 +r5Klq/L4BnrScOxjKW8pAbYjHQjBttTFSU4d1ZOd4hTvormOptbVszwv2zuXCUOxFg5BWao
 EXIYKq+8gCo4d0Ec1LEHvoRCgOqB8n0UejUogm/v84XNYHEMNvUthNToV7iZlwEMbwUUtVxt
 LKMrN+ogx+V4OdoCzjUy8ubCq1ExcSuR+4LYMj5G2ZXwHmZU8j27hpdp23hcc5VkMlQ79WMT
 hejbJfibsYcXtpQnSUHayVXHxsHJb7wa6Ps+XG0o/iWU0BP2g3bNtK3s3TuaDgDJCMPPpT/D
 C7yuuqvuY8E/NgdWkdcCqg/UZFiIVLlVa83TPHLtGGVXjuyn1ePmrr+jh58uzvFPWaJTZTh6
 pXfSxmgKBnr4PPUzMtUupBZtwEMCCovmvE5e08Q9oIkiz2+C2Jaf+0RPY9fV8NRmy32kpr5e
 CvMfC0pDiCkBWZIdhD14dLCWAaDB7NRZoeld2Jxp07EOT2rAI6gAad68nYy6nh7TTLv0eW7J
 IxM4Xb3JBWwnslkSOt7CiZXWgu7Kic2Hk41xH0=
IronPort-HdrOrdr: A9a23:TGacsKOoNPgiZsBcT1D155DYdb4zR+YMi2TDiHofdfUFSKClfp
 6V8cjztSWUtN4QMEtQ/uxoHJPwO080kqQFnLX5XI3SJzUO3VHHEGgM1/qB/9SNIVyaygcZ79
 YdT0EcMqyAMbEZt7eC3ODQKb9Jq7PmgcPY9ds2jU0dNT2CA5sQkTuRYTzrdHGeKjM2YabQQ/
 Gnl7V6TnebCDkqhoPRPAhwY8Hz4/nw0L72ax8PABAqrCGIkDOT8bb/VzyVxA0XXT9jyaortT
 GtqX232oyT99WAjjPM3W7a6Jpb3PPn19t4HcSJzuwYMC/lhAqEbJloH5eCoDc2iuey70tCqq
 iBnz4Qe+BIr1/BdGC8phXgnyHmzTYV8nfnjWSVhHPyyPaJDA4SOo5kv8Z0YxHZ400vsJVXy6
 RQxV+UsJJREFfpgDn9z8KgbWArqmOE5V4Z1cIDhX1WVoUTLJVLq5YEwU9TGJAcWArn9YEcFv
 V0Bs203ocWTbqjVQGagoBT+q3oYpxqdS32BnTq+/blnQS+pUoJjHfxn6ck7zA9HJFUcegM2w
 2LCNUvqFh0dL5lUUtKPpZ2fSKGMB2/ffvyChPmHb3GLtBNB5ufke+83F0KjNvaD6DgiqFCwa
 j8bA==
X-IronPort-AV: E=Sophos;i="5.87,244,1631592000"; 
   d="scan'208";a="58134277"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O1za34jiLnt1copWNyMiZEmN9XMBZh779Jk0tXMgHGZyZF3/PcvIg9mieRi4CpDFOacvTuOZteMSAWYsoDUoYK04iG6JX4DWaFtWwxeHRHPeTErBfVlvmaU14stctZMAzrmt0wFUA4kQ4bg6LtOqZtY/J9NYjFynyZLTFyKVUZQIfqCniauZGCCWsJyvQeuhdtFu5V4Bk3zg+X5+HzNzVHVPSsgKG77jmmNX7UGL2ygzg2+sQVjBMbwXmgiCwHJevZz+8tnL39s5/AF5ncbmZ13q7SpOfOOa2sN1OrmFAU5vYswpCsZnHrgB1RBLiDf0/7p/nsEKSxpVPDWNBBJRew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ovf4+s0uKJOMtoOtxbZ3WDZ+71Sdg7gsqjwe7mFV5Uo=;
 b=jjm4YTf81jn1gtT4V5HDmiOICsBzR4IdWokykPnFs2bOWx4nTcMHQ/0sOqXlEQbPCXsi+rUO7zUo3M1suN7JLgMZhKWM0MGpDWT6ZxG8jXnIbRad1RS/HP7drSCqF79a5tVPXjVwVrq00v99tgnt+h6Q2zQV0K5JVU0phspWtDB31Yu+L+0FRU4dxmeRK9pnr+O4XdovonK8ewUjaoD/pnlQP4abABG1Wtp8BZZnP26Wob03f2aDfj17Ku2v44AV9c7QeKXaWcpanOZmLDrLM63h3hfrOL9P4ViQTWrwYrHWonmvoUWGg4/dDjkzrgNecNUPPS1ClXS+HHYlx5S0BA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ovf4+s0uKJOMtoOtxbZ3WDZ+71Sdg7gsqjwe7mFV5Uo=;
 b=i66rcIfoIzNi0HDzpdkzeTx0RE9yy7OC0gZxxFvvYXDTm7AtwOMw4hLSRV+hCcicIrY/f+wP3xuX2Mo2TyLmhiMTNcyQ3sjzjtrCe/cowRpEXEmUoHfFeEy8Lw+gJcRXZZwxKTXa4jbupwdRS03BGltOqOKwCDschd1VF7UK15U=
Date: Thu, 18 Nov 2021 11:37:29 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Julien
 Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Marek
 =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, Meng
 Xu <mengxu@cis.upenn.edu>, Nick Rosbrook <rosbrookn@ainfosec.com>, Paul
 Durrant <paul@xen.org>, Quan Xu <quan.xu0@gmail.com>, Rahul Singh
	<Rahul.Singh@arm.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Samuel
 Thibault <samuel.thibault@ens-lyon.org>, Shriram Rajagopalan
	<rshriram@cs.ubc.ca>, Stefano Stabellini <sstabellini@kernel.org>, Stewart
 Hildebrand <stewart.hildebrand@dornerworks.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Tim Deegan <tim@xen.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Message-ID: <YZYs6ewhD7yBetFh@Air-de-Roger>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
 <YZYVzkaQTQ6+Rn72@Air-de-Roger>
 <31E84B55-DF77-40B5-A61E-45DC79AEC7F6@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <31E84B55-DF77-40B5-A61E-45DC79AEC7F6@arm.com>
X-ClientProxiedBy: MR2P264CA0051.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:31::15) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 59efa5d0-080b-4430-5a2d-08d9aa7f6e65
X-MS-TrafficTypeDiagnostic: DM6PR03MB3483:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB348378831F6F5E842645541F8F9B9@DM6PR03MB3483.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: EEPy1SDmdLIifYi+alxbVppNPjwxQCHVJx0okBWD07Y+aKYYSI9eNxqXdnhA3euwWv2zlzsLcX7klP0cFpZGY5RdFBOzx+nTjkSazezOgUuRdo3ASkyGMEjl3s/Pd1Cx7GHjXZeUqXN3uRpLEBhGShxZUlD/Jd2ack3Ee2b2hg70PI1FHUHDjvDcEVG1eOVJll4nfpe9hd0Wqnl4lF5nyNfZBiVSFQ9TdVuTpBfZ4JV9lRDGIUXayr/K8d5qw6+yNbb1lrn7gRjYjkClNzY382wICITKyXTBFXGmLznfxReghbLt+P01gcEjLuN1KdtPAGuLejHhZBsMYlOhK0IOSHBZ14FG6N7LhzzwactwmCVeiwjdJhsdGN0rg4hRGWKCxm3qzJ9Dys3018fCV+jLTRfx8Htt2IlB4cEEMeSD5YoEhTr3l1vraYnfpaB8XKorPtmPUp2EAy1Oa0CcJvrih0l4JkxadqmyQpdmnN3zBCf5OKiZrBDNc8pA1p3vJfTikRyBoErghjJGFZLfQRtPuCte3SOXvQBHT79XspMN0+WOvH/fkKyl5NF5229i86lfvvwLFYA/RYnX/drTgj2XAUn6B477ZmfQFSkTxnXTbfXgNH+1WxifN0nKbtldKh7EgQt0sR4MUuxzWldSBpijLJm465nqndXpA0K5kKWbcxfxJfbgDf21flvcCs+ukclWwCmRLR4Ql325hBPVYoxraO1OkEOhCHvONnm+CS1GOwBxcNIinzO8ajnHG+krAcIjF9K0QikamwmTV/NNr5JP4+Y4Ke1mOQ3GVT42PsOmw8NwNsqxFjAisnmniceTB+RdGkCrWrm/khQ2HGMp3CFl1g==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(6486002)(8936002)(38100700002)(53546011)(66946007)(66556008)(956004)(316002)(6496006)(5660300002)(9686003)(83380400001)(6916009)(54906003)(33716001)(85182001)(2906002)(82960400001)(186003)(86362001)(26005)(7406005)(66476007)(8676002)(7416002)(4326008)(966005)(508600001)(6666004)(59356011)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K2JEcmtSVVZpT2pEd3pMYUVKUmVqNWM1MiszOGRZM1J2ekFZcGFVaHBCUGl0?=
 =?utf-8?B?anhOMlBuamtLZmRCTGVxTkM3RkFiYVp5NXBra3pua01ScDhvUFZoUXhBSHMy?=
 =?utf-8?B?YlpTeTE2cXpIUVBoMkNiQlVGRXJZWnROTDRGWDMybmxIVFVNaUNyZlJjQVQ5?=
 =?utf-8?B?dXo3QjRyMzZUOW4yZ0dEUTJPRXZwQml1MnQxZjRKcUw1REVwR21VVWhkR2NH?=
 =?utf-8?B?bzhrVlZxZ3pLZ3RlNUphMWlrZ3YxMGIyL25FYlFpUmF6bnZ3VVo5S2Q0WWdN?=
 =?utf-8?B?K2J0dGdpSlVOU09qWWJUaXBVZ2g1NEVYdjNBdWU3amRyaEkyY0VGNC92WG8r?=
 =?utf-8?B?K2piVTE3by9YQi93WGladW1HLys4aXRvWXQ1SlZyNVNqakl2WGlBVEh3dXM0?=
 =?utf-8?B?cmtWQ3AyKzBYckJXYVp1bkZjbUR2UXBxV3laZ0dmc1lwK0dYWTBZa2xxb24z?=
 =?utf-8?B?dHRUOEU2cUNIbDNOalZVbXBhb2lGdXd2MXMrQ1RHYnJPWEs0QWJyV3BsaXMz?=
 =?utf-8?B?ZWRpSUN5cGdDbjhoNjM1aDBpZkMxQVRHSjdTNHY3SG9CVWlWNDd0SDEwT3lN?=
 =?utf-8?B?RS8zeWVNR2Y5UG1iL296NzJOanRQcGRLQkVmbFEwbE5mV0hSUCtxZWJlMlVF?=
 =?utf-8?B?bTZvR013dXJhRXJrUGllWDRCOVFCT3BqNzhFcjdMekw0VWxwem5hZEJjS1hM?=
 =?utf-8?B?cEJaWUJiNDhZRU9aMm9HeVZBS1BhQWNrTVdXOTZPRWJIc1Nza2t1SzhRV1JS?=
 =?utf-8?B?TXYyRGd4OTVqejB0QVBObnlnMjlBblU2aUhHK1JEMHRmQUVhZWlSZHpwRVhK?=
 =?utf-8?B?ZjhBaE5hUnpOZ09kUlpTN3pFcFNPSHdubndBOU9zaGJqTHNpelczV2c1OXBL?=
 =?utf-8?B?TUlGSUx2ZUd0UmxDWlhIWmhWZnNGblN5b1dDZnVpb09rcTg1V1lsQ0lhaFh6?=
 =?utf-8?B?WS9HZDlvR2U5QnBPUWxkbElUZlBVQU0yOXdCMk52dEU0RXJBamg5SUk1Q2tX?=
 =?utf-8?B?dUUvUWVjc0kzekRnaVY2ZThiTFZQMGZiTE5TbWR5dUptNGszUHp2V0lPWFBG?=
 =?utf-8?B?ckVlTzRjcUpNc2VmNk9VODhIbFA5UVM4YlhzQXlWTDRCaWkwenFpeGtFenRi?=
 =?utf-8?B?K2g4eU1FU1dHRHhaWno4T01sM3JzeFlnd2ZQSEE4bnBEbU93UFkzcVFWcnNh?=
 =?utf-8?B?bit5d2F2QUJTcUdVNU5zUURLOXhSUVdFSHBTdVJodXdkSUdzQVNHVHFqdFFj?=
 =?utf-8?B?U0pYc3VXejl1dExxdFRjTitId3d4cTM1MDllbFlobno2dDhpNHNuWEJYMlRX?=
 =?utf-8?B?QWdUVWY5cGFGQmswZlF4V1Z3VTdta2x1Y243Q3plRDdEUzJacGI0bW9TWHF1?=
 =?utf-8?B?RE81S2dyTEQ2akEzS1M5SmRpKzY2bVN2OTl1dWFiM0JFdktyQXk0L0JIV2xH?=
 =?utf-8?B?ZEZaY0RIN1lEVTlHSDJZWW9LN2x5ZlQySUFVNHNkZ0tvNnJjR0doUkJFZVRj?=
 =?utf-8?B?NTBsTjVWSzkvYTNmLzRNc2plVmxmZVJvNUU4eFptaDh4TG1xZzR3NFNsa0th?=
 =?utf-8?B?a2s4YXdEc0xEVTFIMmwvY2ZhRkJTSjhhWW1lcjEwMHpwQWhLaXBpMFBwUWoz?=
 =?utf-8?B?Qi9ERFd4TW9sM1V3NktGTFdOdHp4ODVrbTF3NUMySlZLZ3g0Nkl1aGRmdllL?=
 =?utf-8?B?aTd5UytvWGc2V0hrZ1hvVndWemdTUmF0empnVGU3Tzdpc01yMkV4V3pud002?=
 =?utf-8?B?bU5lV1pOTElIVGp2ZmpWaVdSd0F5d1dGbUplZXZKa25VQms2VTRYY1ZuR0hT?=
 =?utf-8?B?M0lZVmJ6Y3VqUUtlUXd3YmJjcVJKOVBOb2lVVDkyb3JTZmRNeHdQZzZ0UG1y?=
 =?utf-8?B?VFBEcGx6UHArRnF0eTRDQmI0UytpNHpSSGQ4NFpFKzhyMDJmSXovejhNTjBx?=
 =?utf-8?B?R2VvQlU0VVN3YnRWQlcwdEk2elpBc2txeVpKam5sYlJqS1hWOFRqdnFHZnJa?=
 =?utf-8?B?VmZJelVVQWVld0I5UW9VbjRYTitHMTlnSjFjRHd4d2Q1ZTVhOFpYYkM4dmRl?=
 =?utf-8?B?Rys0Y1IyNkliQ1lSZzR4SHd4a2c2QUlnc214NGZXRU42dmJwVDMydVBSV2Z6?=
 =?utf-8?B?RXI2Rlpha0oyQ2c4OFNTTzdITVFveFpGUmxDa1JSbVhobTN0emZLSGhTTjVT?=
 =?utf-8?Q?OOqY/+dMQo4il8RqkZmMyaA=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 59efa5d0-080b-4430-5a2d-08d9aa7f6e65
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 10:37:34.1182
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: esm0Pq/nBuUETIE+MHlNDLEQWglj9jUNGNqJUz7iduLWWPFmZdIG25cXYNDsUBxckjZ4ptC/BvuwjzTqU+RflA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3483
X-OriginatorOrg: citrix.com

On Thu, Nov 18, 2021 at 10:01:08AM +0000, Bertrand Marquis wrote:
> Hi Roger,
> 
> 
> > On 18 Nov 2021, at 08:58, Roger Pau Monné <roger.pau@citrix.com> wrote:
> > 
> > On Wed, Nov 17, 2021 at 02:07:50PM +0000, Bertrand Marquis wrote:
> >> Hi Roger,
> >> 
> >>> On 17 Nov 2021, at 09:53, Roger Pau Monne <roger.pau@citrix.com> wrote:
> >>> 
> >>> Document some of the relevant changes during the 4.16 release cycle,
> >>> likely more entries are missing.
> >>> 
> >>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >>> ---
> >>> CHANGELOG.md | 11 +++++++++++
> >>> 1 file changed, 11 insertions(+)
> >>> 
> >>> diff --git a/CHANGELOG.md b/CHANGELOG.md
> >>> index ad1a8c2bc2..8b0bdd9cf0 100644
> >>> --- a/CHANGELOG.md
> >>> +++ b/CHANGELOG.md
> >>> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >>> - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
> >>>   no longer be built per default. In order to be able to use those, configure needs to
> >>>   be called with "--enable-qemu-traditional" as parameter.
> >>> + - Fixes for credit2 scheduler stability in corner case conditions.
> >>> + - Ongoing improvements in the hypervisor build system.
> >>> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> >>> + - 32bit PV guests only supported in shim mode.
> >>> + - Improved PVH dom0 debug key handling.
> >>> + - Fix booting on some Intel systems without a PIT (i8254).
> >> 
> >> Missing:
> >> - cpu ID sanitization on arm64
> >> - fix 32/64bit vreg emulation on arm64
> > 
> > Can I get a bit more information about those items? Just a pointer to
> > the commit messages would be helpful so that I can try to write a more
> > comprehensive entry (or maybe it's just me not knowing anything about
> > Arm that fails to understand it).
> 
> I agree, the text is not quite clear, I will try to come with a better one.
> In the meantime here is are links to the series:
> https://patchwork.kernel.org/project/xen-devel/list/?series=535805&state=*
> https://patchwork.kernel.org/project/xen-devel/list/?series=477151&archive=both

Thanks. I've added:

 - CPU feature leveling on arm64 platform with heterogeneous cores.
 - Handle register accesses as 32/64bit on Arm depending on the processor
   bitness.

Let me know if that's not accurate.

Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 10:45:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 10:45:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227322.393140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnev7-0004GR-Rk; Thu, 18 Nov 2021 10:45:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227322.393140; Thu, 18 Nov 2021 10:45:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnev7-0004GK-Of; Thu, 18 Nov 2021 10:45:33 +0000
Received: by outflank-mailman (input) for mailman id 227322;
 Thu, 18 Nov 2021 10:45:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnev6-0004GD-Jn
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 10:45:32 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6c6b7c9-485c-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 11:45:31 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2052.outbound.protection.outlook.com [104.47.12.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-13-v-Y0ppoBNv6dSyMtAu7MJg-1; Thu, 18 Nov 2021 11:45:30 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3776.eurprd04.prod.outlook.com (2603:10a6:803:18::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 10:45:28 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 10:45:28 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0024.eurprd06.prod.outlook.com (2603:10a6:20b:462::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Thu, 18 Nov 2021 10:45:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6c6b7c9-485c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637232331;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OThHxnLMh6a/fp4/DH5Ojoo2i/SoiQIGmuNLzLU7vuE=;
	b=YBuaMpWq1XKJlCQQRefDAWmREnFtUjXl0iSZhifM/v9/77zVC8WexfJvoKyNIZDAJTjCox
	1onUnyv8HV8cSynEOKNpBtwRuct4TSqbarRlk47ngdUZ0mCeoH2OZ0//85X66D2ZWpEcYV
	UHQ21mnAO1A/t6dRgjipWzURUF1v+dc=
X-MC-Unique: v-Y0ppoBNv6dSyMtAu7MJg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gwhCfzztOX6co4uzM4PNiL4cxwHW5hCBwGF4b3bSQfaIbafsuRLDVilVbXwgY+smcE4s1geccQ9QAkdfppCm8yYJ1TKgvUBvqfgij12UQUMW2nvgm78eBtVe0HkAt+MZzBna0oQnzJ4jgsbW0j5en+36mBcfdNv4IPwA7GJVkF666DLvA0gG7tfrLnvKhSCbPupKdaeBl5CZd643YmNPWna1WjnVMVqMQL6l7wsE9ILgA7n0/gg3ZrDNRUkqir9GzNjGyeqx0N4M42e2URsvNRqFOIh4FBFk2QnqhNA5hHEpzZCuy5f+TVWeXJb4fvANXRbm+dlzgZfu60wPcu47Eg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OThHxnLMh6a/fp4/DH5Ojoo2i/SoiQIGmuNLzLU7vuE=;
 b=OtbIWfZmqjlVmbfTB/PiPjenOyNnAjGDJLBvwj5OrlsZfn9jJNspKeiiTKhciOSnIW4wcmwO7GXshQViIlYAazjlJbRQY8js+coSvY0QO03gAEvxJkAfgkd3k0bn/upD5dSF6jXb4iWLfPKTC+qkiMeZiF5KpHITViZa1zNIm2EDfMJCAay4ET/MB8xvuI8zK3MgTfv/D5HoMGJstsHUV0aOOs6THzmBbere4JUgerzWPDxFIVZ7YnG3lGqd8FTZiqs6mzYwp8W3xCcfErklelL/H+PyNolvag/7iA3Kw3gcnNSoZj7o59LVMtdKoVyQ5hly1h/hfzjVKFmMZndLfg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <df71b9a1-9aed-d0ce-ecf1-2addc69511d1@suse.com>
Date: Thu, 18 Nov 2021 11:45:26 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] x86/hvm: Remove callback from paging->flush_tlb() hook
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211117182603.20057-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211117182603.20057-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0024.eurprd06.prod.outlook.com
 (2603:10a6:20b:462::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 84be4f61-4198-47ac-3e50-08d9aa8088fe
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3776:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3776388631BD1FA76EF20A5DB39B9@VI1PR0402MB3776.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	p1k7QLNcORT4/LQ8YZDV4D/O9rU7Cijiv94UdmBWAdJfhve/LmiF1xrvc+aTnQdwbm556r41F9wswhEHaVPyvQ0gBXsZgLrLr2gQcbCIEfRYQAucJShKUc0OFFR9n6Uou0uzoNa2RIvo+IygVWpourJKrovxYl2Pxap0C4O2DG5rqQjM1FchXUQLi0Oov2UPBiZCVOQZiWds0D/LmrdkSU4jk2oxYTjlLdrLC6pYfaX5BKT+9+80cshZAPuFBV1gw80pHABa8fkW8bPkjtSk/LIpyQZ9gTDsMbk8mEFFJDNhsyiIWU7dgxjFNhrBZ9F5GWLydUYz/WHVaGIIfDAXEw1tecM6iBVL0NZXLfMy5mjMeKA14E1e+rWmWpxKuj32MonqQQjZPJcEFbRyAATql2jhxarCj+FGSVxPsliRBmRVevVwaAIxJiAxJxJA3+lG7tPDRLGT60m6xbiBXuWA15UNuPpZ75TEQ7zMUkAvneAEVzu4bjmasUbM6RSxFgZHNSjwjboOFjA+PbFtInN7sNCLs7lMr5utmvX7taTl+nZt3a7a8JoBZE0icsD1aTwPuCrc1VbTv3J2AtX/QFEZ0lKHAh9aha56u8a5tu3NqsHU4sesfOT0GnFYigYy1aHWKIv985gy4CtOeyVf3QvGdpH71dPn/rLegiePnpGsXFPPFOaK4wHbgAHXcmOzNa9eHhpYmkRpNCXznwAKJcqjXk+ILBz69ksIIHD6yfyHaKE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(8676002)(316002)(53546011)(16576012)(66556008)(5660300002)(66946007)(66476007)(38100700002)(36756003)(6916009)(956004)(2906002)(2616005)(31686004)(83380400001)(31696002)(8936002)(4744005)(54906003)(26005)(508600001)(4326008)(186003)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RS84aDNobVhiaWEySzZGUlFmSjg2VWtxTU1XczcwcmNyMnAzQTE1ZnJCNk9r?=
 =?utf-8?B?NFZBMXEwNVd3ZmJOZ2FOTmJoU3pZMmEyR09Vd2J6NXYwNW10T2krRk5vRkR5?=
 =?utf-8?B?SENvR1cxMjh3Qlg4djA2UXdhd3h2M0JyZWpLNVhYTG8rL1JUSHh3WThTczBQ?=
 =?utf-8?B?WDRoU1pPVC8yV0ZpU1NPbTBtcTZQU1MrNjkzd2w0TUZlVEg3eEE5elRNdVB2?=
 =?utf-8?B?SWtkN3Y1YVd6Y2ZYV1JiOVNmV2RkaUtMcWQxMm5PL3Q1TXJScC82TVNPY0Qw?=
 =?utf-8?B?b0VNdTlNemJYcnBTTlBLamZaemN0TnlwTzRSSzZ3UmtGZnQ1dmRaUUhOc2w3?=
 =?utf-8?B?YXU4VUdvdTBvK1BWRVV0MVVsdEdaNmhld1ZKbVk0N3Z6MHllSFVMb25sNmhQ?=
 =?utf-8?B?SnBwQTRUcURUbmF1V1Nnd1ozc2pFS3h0dm5HbEV1T3FKcXR1UVZ6aEVzZkhR?=
 =?utf-8?B?SVBPMjJjRytZeHlRNWw2YUR2cDM4T2RIZ0kzb3ZvS2dlNWVPRi9yQlF2c2Fa?=
 =?utf-8?B?TElXRFZnc2ZxeVVRK0pGdDVsOUVBbHhDWnE2bjdscTluMlJFVWM2M01OMW5Q?=
 =?utf-8?B?VmdPTWRIa3pTRmtrcXltUk9IZ0NGZUJSVkNVSDJ2amtRMDY3VlNQcEVnTWw2?=
 =?utf-8?B?ZnVMN1Urbk5zQnFVVVM4Q1YwM3hnSjNtYUVDZ05ydGJsdnFGamtPWkJrR1pG?=
 =?utf-8?B?RjNBRG9Bd3pyZkVQVjRWUElIQVVQN3VKNVB2Q3VTN1loTVhJdDMrai9pQ1FR?=
 =?utf-8?B?MzNvZlg5SnlTWS9JWjNaMzkxdWhPUS9NTDVtSHI3NGwrMXVYY3l1eFBiTHNs?=
 =?utf-8?B?WTJFb28vOE5iV3VMbzVTMkVBQXBWdkEzUGxUQ0pXVjRWWURpRU5FdkEwS20r?=
 =?utf-8?B?aEhyRmVxSmtwazRsTWxuNWljaXhIYys1QW9EeE9BMURGUTE1RkQ2WFUvMzU3?=
 =?utf-8?B?eVlvaVlvMWZuK3VZWFVRTjVhdHRianE0bnRRbFVzS01LT1EwaUVoSTRlNnRs?=
 =?utf-8?B?TVZtRC83V0lBUy9YYkx4b2ZrS3lydlBXaTQzTlFSM0psM0NQNzlKNzkvMTNy?=
 =?utf-8?B?emJkZ1dYVXlkSWJyYndIVktGOTdkTjd4QkRNNm1iYU9FclpBTmdycUpNTGta?=
 =?utf-8?B?U2FIT0puV2dnUmw1VnZWQ2pWTHdZaVE3cE95QTRjRzFNUy9ObEEvUjNmWHZ6?=
 =?utf-8?B?Tlg3dGttaGN3eUc0d3ZOVG8vWEppZjNxckJFTlFkeE11VER3cXRGMU5XNlNk?=
 =?utf-8?B?MFNRMDBrWDhkZDJRc2FKeWdPV29wWndhTWtQdGdGTjlqeXhWWmltU3Uzd0RN?=
 =?utf-8?B?Z1cvWUZldVEyNVE1SWpVVnlaK1dtTU1IdlZXOTdWY2FZdWU3cTI0b0pSb2ZD?=
 =?utf-8?B?VWg4ZEFYUHU2aVJvZDhKaFd5K1F1UU52aTNrQWxnL21zZnhTZjRlNURZR3Zl?=
 =?utf-8?B?WTNIdVFJZjhteGZBODRBVS9SdjA3OGkzeTBoWW1WVFlMN0FYbENzUDJxaFlY?=
 =?utf-8?B?Uk81SEpxMW5xakEwM1d3N3hYRTN2Tm4yNHJaWFhTN2M1d1hUUVV0SGY2WnF1?=
 =?utf-8?B?NlMrdnFIcDREWnQ1NkJTaWxvZ01PUStjU05XNE9ybG9SSnF5aGtvblladGtW?=
 =?utf-8?B?cUpBUE9lWFlIWWZKblpxaVRRRWVkSWRhSGZaS2JQYW9oQ1ZSYzhyMU0rQ25B?=
 =?utf-8?B?Y0RSamg5UENxRFE1L0xGUmtaVVB6S2FTcDRmckI4WGs5cW8vUGpRbmZMR0lX?=
 =?utf-8?B?TklzNlZ0Q2o4dm9aL3h2VGxUVUllMXBQUUtrL3dUcUpFdndHN01DNGFoTTFB?=
 =?utf-8?B?Rld0bzA0NHRBT0hpaUkraGtObzVUMVRwWDR4Q0ZZZ3BQY2d3TlQyQ2ZpY2M4?=
 =?utf-8?B?eVBadzJrWi84YjArQjBIbTNKTVZFV25NVTRsSW1xTklGQUpyQkpmMEVRSUFE?=
 =?utf-8?B?T01mRHZTYW9nOEQ2M1d2U2twQ1RCOElNZ1J6a2ErZkdIRWRMYURQeGFyM29v?=
 =?utf-8?B?T0hzaFVvcVFOUURJanRuV0F3OVd0TlJnRGYyU0hnN29IQnN2cktrcHkrckFn?=
 =?utf-8?B?Vm1Qbk1QYlhiWFF2S0RFYTQzb0ZRdUJ3OC9tVFYwSUZ2Q2I2d2hlY1hrd2oz?=
 =?utf-8?B?aVJ2cVA2QlNuOWZqSWdvYnptZEtXSXgrUm1DNVpVTm9aeVNVZ3N6b05rOWxk?=
 =?utf-8?Q?CWgwnHkdkzY0/IUGi1wWK/Y=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 84be4f61-4198-47ac-3e50-08d9aa8088fe
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 10:45:28.2164
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RpewQq8sjb9Sle5LG3IT09d0MUaCyo7E8hvEyzkXBHxZkujZxrIhWEDOOflhVS+qP7qNtqB/glx7mW7J2yu93Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3776

On 17.11.2021 19:26, Andrew Cooper wrote:
> TLB flushing is a hotpath, and function pointer calls are
> expensive (especially under repoline) for what amounts to an identity
> transform on the data.  Just pass the vcpu_bitmap bitmap directly.
> 
> As we use NULL for all rather than none, introduce a flush_vcpu() helper to
> avoid the risk of logical errors from opencoding the expression.  This also
> means the viridian callers can avoid writing an all-ones bitmap for the
> flushing logic to consume.

I think you want to clarify that you convert only one of the two ways of
specifying "all". The other (HV_GENERIC_SET_ALL as consumed by
hv_vpset_to_vpmask()) could also be converted, but this would be a bit
more involved. I have no idea which of the two Windows would typically
use, nor why there are two mechanisms in the first place.

> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 10:46:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 10:46:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227327.393150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnewE-0004uF-9R; Thu, 18 Nov 2021 10:46:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227327.393150; Thu, 18 Nov 2021 10:46:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnewE-0004u8-6X; Thu, 18 Nov 2021 10:46:42 +0000
Received: by outflank-mailman (input) for mailman id 227327;
 Thu, 18 Nov 2021 10:46:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnewC-0004u0-Dg
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 10:46:40 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce109b96-485c-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 11:46:38 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AI8GP43011914;
 Thu, 18 Nov 2021 10:46:35 GMT
Received: from eur03-db5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2052.outbound.protection.outlook.com [104.47.10.52])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cdk648j05-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 10:46:35 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB3585.eurprd03.prod.outlook.com (2603:10a6:208:47::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Thu, 18 Nov
 2021 10:46:27 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 10:46:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce109b96-485c-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=A1cKpMR8IO+28jmib9VfpuOHvs3jJEKH5N86N6a7WbdP9okN+bqfW0rQU6hYl9a/XYzKz8afgEWpGejkHhHpqRFtTbkOq5q14gR+qFEm20e7aPHid3poTtpPJyKY9XkA5olZMOHcI7ZDSwOguCnf5V6p2c0CortlQWNc2jECamGBocPh2JfIoQ0fpzeaXNRcns+1Xht1r2Pasyrk653KfJcnJ2oYhmsUnbKPyYE0Gmw17SrooRtdvYTMxWHkFl5re6ajlvcSnW3c9DUUKk5KW+OC4QP0WmHnIsmuwJlZ5SmOnI3OHAngeK9+r+mUYsFAy5suT4skeZUFD1NqnSjNag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=h3urg5HemcdQVyvIu3/8vAMRaXCIqTe8C+E2vfEFywU=;
 b=Q5aRSJWmAilAK8xkMOU5sEHvISVntf6kZSD4As+TNrfFNAVCk5j3AuUicHSuCqjhvgw5v8SRbHiopqcxq7/Mj3ThI/0EOqYX+ScErDqwv8FcmuxbZ28KFhKwEi9xbn7uzP7sqJ8cIbKAzpAhootIcbuHaEjEtqmeePftt/wI7E3n+snejak3N/iK34NasDnBaBesRTbG7zX4tHPZvJ4LVlZ1O7fPRWewPmxVWeca2CkXRE0RRSCcrGnL2IIpi+mi+Zt5qPnDVgyFfwLlbqCKYUwbMpr+zHhx7C9f+ijmGQNeRQQvS1pVO8k9m4wP9XFq3z9qONGmKbvn2lfjglF9aQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h3urg5HemcdQVyvIu3/8vAMRaXCIqTe8C+E2vfEFywU=;
 b=ofNEKRo1L/pamonHWmHI5Qw1VYe8TcjQPDkfcdJDueE0Wn367wIFXJ2i89Ju1gQIiYjg6qPPJIUPUZq/GJIOa6TGVoCMbSkcAzEJ96GDEiVlFKFdYFrBoLOvh1aWHX6jkHPwgT+UvD5voBWiLU6ZmvJW7k52bBy7I/jc4H8JqgaPK21ao38GyEvtX+wPGHni5+FYWigmgXtvxv5sgE6CWYJERU1r4kfDJJLfON6a9TpsIN3Y0RQ2YRy4KvnKaA9P6GPc455vZit6XBZTUkm+VBAyjpbKk48OqcCTjoUfVqd8oHuRtKS1og38IwJhaQQwt8fB5+SnP0pbL+xcMhc0mw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Topic: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Index: AQHX0g8SPRoS2Ac9eEeTcWew1GI8x6wGl6aAgAJfuQCAADeUAA==
Date: Thu, 18 Nov 2021 10:46:27 +0000
Message-ID: <9f712f79-9660-865a-3002-713950518819@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
 <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
 <2f414e8f-67d5-d513-74d4-cc21a3a9ed28@epam.com>
In-Reply-To: <2f414e8f-67d5-d513-74d4-cc21a3a9ed28@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b4d892a7-9162-404e-201e-08d9aa80ac84
x-ms-traffictypediagnostic: AM0PR03MB3585:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB358515B6579DB26C25971D41E79B9@AM0PR03MB3585.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 qG5OBryTLVjxW2jckp1cYArkjLQLBewQIUs24TRju2NrILxw7HU4CQlDSLmdYCbyiXsMu+Wm5rFTgBaYlOQI/DX1/p7KWK1dHXHAREX/rLnb1KvFf8suBIa9qgbTCSFSKF734dwWmkg3wExW4Qlg2cI+OYDTKczeY6Vqj9pNfslGhqIHqW6dDU+QWM854pnmB79YDtRKN+HgJbrI42rIhOguC1xkkboso+UobcaFkb7sJgVD8ZJuwGcXrgByyCPzJkLNFh1rPlEIJFEdq7hM3FqsadQprjLScHeS/sdUSgUo/8BTEQ4LISBUHvPJ4TmRB6X7zg25DjW9kDfOOtH2wwzKWU8/oNkUq5INuTkXUY78n+NrQZkJqTzLsYiWHDaS5nYccmSYPYq3NSZoQs91i5JaGDWxF7obB7iJbIBpmTVLo2OM2dERShTxJrKzs3AlSdq0gALL4ifWTkXbAA33nU7ubUuEn/JSBGu2nZjAGiPFN/53Jz//bOc4IEr9moepaq81d+thvKGFYkqOiKB7pDtl/V+vFVt42tsjET+CL33CjpEDno5m6ck9oBWGHzDLKjXftHty9HgacSnWw1xZ+77vDavMjS5cGJ+uIGpoSmvOJFhjsoaTwzPK5UgDEt866oFhDfgRDjHee1Zbc1I7RQW1j+IPS4R4qu2vidwsKwMGnMw9sZwGEfPWQz0+OFJSlmYr0X8W5oKv+reBD1nAhb35xlKZX6Oh1eG7U4CK8ISUV8KQeTNxzkWz/wvsfN/8n46aywxA1QD3aQ31Mgo3YXGHsQ/uy9o9QE08xAnG1aENbWOuFe69dMyeCz99Colb5zzqZ9Y3xZaCO5Km9eUCEQ==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(76116006)(5660300002)(186003)(2906002)(110136005)(966005)(83380400001)(30864003)(316002)(86362001)(6506007)(107886003)(91956017)(122000001)(508600001)(71200400001)(38070700005)(53546011)(38100700002)(26005)(36756003)(2616005)(4326008)(66476007)(64756008)(8936002)(7416002)(31686004)(54906003)(66946007)(66446008)(6512007)(66556008)(31696002)(8676002)(6486002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?bGc5aHhTSnNoQ3B3N09oMUFhQ2NidWJCWlI2SFMzcUpRWWJwbjV5aDZGRVFr?=
 =?utf-8?B?WXZDMjNoS2c1emo4ZWxtOUVLOGVKN2hmQ3N5ZWxva0p2REM4WHY2SHN2eHBP?=
 =?utf-8?B?MTZBUHh3MDZkdTdYd2xGSlJYSzdCaWtwSEY1d2krbnBJdUp2dTg5alEvek8v?=
 =?utf-8?B?cEFlR1NucUxieEc5Z1VObmdkYnl6ZWx5eEo5M0xGU3BTZDBHR0tkU0xtdS84?=
 =?utf-8?B?YmJsZk1BRFR6QVhTY0cwZFVPNVdUR3R2Q0RZcDZrY21aMXNtYlBvd21QTVB3?=
 =?utf-8?B?OHNUMEw0bjdJbjhXNkE5S3R1eDllSjVybWdNaEljUE9BVTY5a3VxMGFsL25E?=
 =?utf-8?B?dldHSXBTenFUUmo2cG15Z3RNTk9LMXpUNUNSajJyZ2EyQXN2c0Z1K2dhaFJh?=
 =?utf-8?B?Zlpxa2Z3Zkl1V09WZ2hFa3NSSU0xS2ZCbUh5eUJiUEM4eGFkMGJocC83ZTgw?=
 =?utf-8?B?NW1ySEVPa2dGWnhNQytKUzkrd1dTVHRSZXZZdSs5V2VjTUdUV3d5Sm5lMzBH?=
 =?utf-8?B?dWhMdjZwdVR5ZW5yZ1RXL2NkMWJIOW5oN242Z2d2WWRyYjRnUVZvWVRPTW51?=
 =?utf-8?B?bDB3azhud1RFOEliMEdqY1dIRlFCZmJ6WXRIWkNhTHV4VWxHMFBDR0kyL2FO?=
 =?utf-8?B?c3FmU0FJSmtVanF4blBsWUdERnVHczFrMGltekkrTkVCZzkzT1k0Uk5lRktT?=
 =?utf-8?B?MlhuVnF1WmZkYyswVDB0ajJZYWszMW9NeG5aZ0xCWkJvc29PbmltejdlQmd3?=
 =?utf-8?B?c0lpM1VYZTRtUXFyT1FHdWFrUThybkx1OGNlOXdCUTltdUJPdGZrTE56ejlm?=
 =?utf-8?B?YTNyVHhUQWNmOVNHRElpeU5tcGpCUmxuUWJqSUNBdE1sU001UHlIMkpVNzVZ?=
 =?utf-8?B?aTdyK2s3TUxvNWxRcTVCRVFNNkJ4aURVUmorSnlIMllWdllyY1IzTlJuenRi?=
 =?utf-8?B?aUlIU2dXRk42cCtpMlJCcGltT3JxdzgvY1MybjdkVXhITi9DcERnNUx4UmxR?=
 =?utf-8?B?YmlDaUtWOC9iQVhwdmc3NVFMdVR1d05XSy9EVkh6K3pueUxPWFJXMEJacXRS?=
 =?utf-8?B?VGxsRmlJNHBnNit0VE9qY3Yra3JCWEYvVXNTQS9xbjgvRC9Mb3FEUFJBcTR6?=
 =?utf-8?B?TjUydFRTTjdrSzY1bXdiRXp1SGdFdXR4bTA1OW16d1lXSGxlWFMzb0EzNy9G?=
 =?utf-8?B?WlZMUkdRMlJJcDd1RTBUTVhhZm9qMW03cldRd2hqeXNKa2pvWk5qbk5XOE94?=
 =?utf-8?B?enJkbi9FLzNaYVhKMjF2TGNRQ2E2QXI0YkZ5b2VIVGF0Q3haR3Y1OUZ2NndW?=
 =?utf-8?B?TFpQSXV5S2NiVjdYRXk1Z01SYm5LaFp4bXJOazVZV3dlWFI4eWd3YnJ4K1lQ?=
 =?utf-8?B?NVFqUERVU2hYWTN0MC8zNnNwU0JDbW44ZmprenA1bVlkK2d0MSs0MjdGWjhL?=
 =?utf-8?B?SWFqRGRoYTQ5czB3a1g3d21wMUlMd1V1c0Z3aGx3MzlsdHhyUXFUbzJ1azRQ?=
 =?utf-8?B?M0lhVUN4cFlDeHExSHk3TDljcTRDeWFyODVELzJaWW1mUkh5QVpSS2pKNk4x?=
 =?utf-8?B?bGRmN3F2bGZRUDJQVm9CbEZNT3Z0OHBiTkY1eFErVzBpbWlkMTMwc3FROXJD?=
 =?utf-8?B?RmtNSnB1K0dXYmFaWFh3M0ovS0ROamhtdmtKMDlVRlV3eVVaTjB2UlNNNCsy?=
 =?utf-8?B?SUwvRkZuRUxGckwzYXJvMHVOSUpobVlmMlZTcndMOXVMMW9GV0Ruem9BTEU4?=
 =?utf-8?B?WVBoOGJwTTl2SDAwRW42Q3VJZzNEMmwvcTByaGRSK0s0Mk1zUU9qUldLeC9n?=
 =?utf-8?B?a1lVVjRsMWY3eEY5OTQyY0NvYVFEbVd5aFFOTy83amM5U0V3dTVLcVVpZWxi?=
 =?utf-8?B?S0hseVMxZkIrTVV5NjY2NlEwd3FaTU1CeHZsUDllQnR2a0lMK3NuNGdCcStr?=
 =?utf-8?B?aFhzWU9taTRDSmhnZlMyTkRKMGdUckUyeGtwSm90bVZETldHOGdQZFI2SGVU?=
 =?utf-8?B?MXowRnVtZ0FMV3BZMHE2MGhGMmIzWjJjV20vZURUNWM0bmt6aEt6SEc0eEFR?=
 =?utf-8?B?WUpUS3Y2NzQ4c2lHS0xyUXNtbHVFUlZzYVdPOFVpQkUvMzlQNXlDM0FnZ0RK?=
 =?utf-8?B?a1kzZDFrL0dKOWFXa21ZV3hBU2hhV1J4aUFqdk84WUJDSVpUaE0xL0VsdDRm?=
 =?utf-8?B?RDRteWZuUnlmRk9OdkZLRzZ1VHpNVUtMeFhNU0pIV3lUNmNkb0h3dkxBVmMw?=
 =?utf-8?B?TC9NKy85YUhteEdTYXAwNUpodmRyOGNVbGQ0UXZqRjRlWmJDYjFFSWVSVGxZ?=
 =?utf-8?B?d1piNDA3ZHVOekx2c2dwR3JKVHRKZ0NlTW5oQlhRWDdKaFNkcUNRdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A2377DD590368D4397B228914FCB2FA7@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4d892a7-9162-404e-201e-08d9aa80ac84
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 10:46:27.4948
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Gfvc9wJL4Tk9f7CgESuD9LGsztCS9qKQfyymsH/wXAFrWCrHtkHGiS8eJm2pI1S1dNaSgpaqpOeeiTFi2c3l9uc0c3GYp99jAuQjzcCQOn9eVtv2PopKevH1PFHM0bku
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB3585
X-Proofpoint-GUID: 2onB2U4T9hhRjYmBvHcVGnJm2pWhAe2o
X-Proofpoint-ORIG-GUID: 2onB2U4T9hhRjYmBvHcVGnJm2pWhAe2o
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_04,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501
 spamscore=0 phishscore=0 adultscore=0 malwarescore=0 impostorscore=0
 suspectscore=0 mlxlogscore=999 bulkscore=0 clxscore=1015 mlxscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180063

DQoNCk9uIDE4LjExLjIxIDA5OjI3LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4g
SGksIEp1bGllbiENCj4NCj4gT24gMTYuMTEuMjEgMjE6MTIsIEp1bGllbiBHcmFsbCB3cm90ZToN
Cj4+IEhpIE9sZWtzYW5kciwNCj4+DQo+PiBPbiAwNS8xMS8yMDIxIDA2OjMzLCBPbGVrc2FuZHIg
QW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8
b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pj4NCj4+PiBJbiBvcmRlciBmb3Ig
dlBDSSB0byB3b3JrIGl0IG5lZWRzIHRvIG1haW50YWluIGd1ZXN0IGFuZCBoYXJkd2FyZQ0KPj4+
IGRvbWFpbidzIHZpZXdzIG9mIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlLiBGb3IgZXhhbXBsZSwg
QkFScyBhbmQNCj4+PiBDT01NQU5EIHJlZ2lzdGVycyByZXF1aXJlIGVtdWxhdGlvbiBmb3IgZ3Vl
c3RzIGFuZCB0aGUgZ3Vlc3Qgdmlldw0KPj4+IG9mIHRoZSByZWdpc3RlcnMgbmVlZHMgdG8gYmUg
aW4gc3luYyB3aXRoIHRoZSByZWFsIGNvbnRlbnRzIG9mIHRoZQ0KPj4+IHJlbGV2YW50IHJlZ2lz
dGVycy4gRm9yIHRoYXQgRUNBTSBhZGRyZXNzIHNwYWNlIG5lZWRzIHRvIGFsc28gYmUNCj4+PiB0
cmFwcGVkIGZvciB0aGUgaGFyZHdhcmUgZG9tYWluLCBzbyB3ZSBuZWVkIHRvIGltcGxlbWVudCBQ
Q0kgaG9zdA0KPj4+IGJyaWRnZSBzcGVjaWZpYyBjYWxsYmFja3MgdG8gcHJvcGVybHkgc2V0dXAg
TU1JTyBoYW5kbGVycyBmb3IgdGhvc2UNCj4+PiByYW5nZXMgZGVwZW5kaW5nIG9uIHBhcnRpY3Vs
YXIgaG9zdCBicmlkZ2UgaW1wbGVtZW50YXRpb24uDQo+Pj4NCj4+PiBTaWduZWQtb2ZmLWJ5OiBP
bGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+
DQo+Pj4gLS0tDQo+Pj4gU2luY2UgdjU6DQo+Pj4gLSBhZGQgdnBjaV9zYmRmX2Zyb21fZ3BhIGhl
bHBlciBmb3IgZ3BhIHRvIFNCREYgdHJhbnNsYXRpb24NCj4+PiAtIHRha2UgYnJpZGdlJ3MgYnVz
IHN0YXJ0IGludG8gYWNjb3VudCB3aGlsZSBjYWxjdWxhdGluZyBTQkRGDQo+Pj4gU2luY2UgdjQ6
DQo+Pj4gLSB1bnNpZ25lZCBpbnQgZm9yIGZ1bmN0aW9ucyB3b3JraW5nIHdpdGggY291bnQNCj4+
PiAtIGdhdGUgbnVtYmVyIG9mIE1NSU8gaGFuZGxlcnMgbmVlZGVkIGZvciBDT05GSUdfSEFTX1BD
SV9NU0kNCj4+PiAgwqDCoCBhbmQgZml4IHRoZWlyIG51bWJlciwgZS5nLiBzaW5nbGUgaGFuZGxl
ciBmb3IgUEJBIGFuZA0KPj4+ICDCoMKgIE1TSS1YIHRhYmxlcyAoUm9nZXIpDQo+Pj4gLSByZS13
b3JrIGNvZGUgZm9yIGFzc2lnbmluZyBNTUlPIGhhbmRsZXJzIHRvIGJlIHNpbXBsZXINCj4+PiAg
wqDCoCBhbmQgYWNjb3VudCBvbiB0aGUgZmFjdCB0aGF0IHRoZXJlIGNvdWxkIG11bHRpcGxlIGhv
c3QgYnJpZGdlcw0KPj4+ICDCoMKgIGV4aXN0IGZvciB0aGUgaHdkb20NCj4+PiBTaW5jZSB2MzoN
Cj4+PiAtIGZpeGVkIGNvbW1lbnQgZm9ybWF0dGluZw0KPj4+IFNpbmNlIHYyOg0KPj4+IC0gcmVt
b3ZlZCB1bm5lZWRlZCBhc3NpZ25tZW50IChjb3VudCA9IDApDQo+Pj4gLSByZW1vdmVkIHVubmVl
ZGVkIGhlYWRlciBpbmNsdXNpb24NCj4+PiAtIHVwZGF0ZSBjb21taXQgbWVzc2FnZQ0KPj4+IFNp
bmNlIHYxOg0KPj4+ICDCoCAtIER5bmFtaWNhbGx5IGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIE1N
SU8gaGFuZGxlcnMgcmVxdWlyZWQgZm9yIHZQQ0kNCj4+PiAgwqDCoMKgIGFuZCB1cGRhdGUgdGhl
IHRvdGFsIG51bWJlciBhY2NvcmRpbmdseQ0KPj4+ICDCoCAtIHMvY2xiL2NiDQo+Pj4gIMKgIC0g
RG8gbm90IGludHJvZHVjZSBhIG5ldyBjYWxsYmFjayBmb3IgTU1JTyBoYW5kbGVyIHNldHVwDQo+
Pj4gLS0tDQo+Pj4gIMKgIHhlbi9hcmNoL2FybS9kb21haW4uY8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHzCoCAyICsNCj4+PiAgwqAgeGVuL2FyY2gvYXJtL3BjaS9wY2ktaG9zdC1jb21tb24u
YyB8IDI3ICsrKysrKysrKysrKw0KPj4+ICDCoCB4ZW4vYXJjaC9hcm0vdnBjaS5jwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t
DQo+Pj4gIMKgIHhlbi9hcmNoL2FybS92cGNpLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfMKgIDYgKysrDQo+Pj4gIMKgIHhlbi9pbmNsdWRlL2FzbS1hcm0vcGNpLmjCoMKgwqDCoMKg
wqDCoMKgwqAgfMKgIDUgKysrDQo+Pj4gIMKgIDUgZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9u
cygrKSwgOCBkZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v
ZG9tYWluLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMNCj4+PiBpbmRleCA5NmUxYjIzNTUwMWQu
LjkyYTZjNTA5ZTVjNSAxMDA2NDQNCj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMNCj4+
PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMNCj4+PiBAQCAtNzM5LDYgKzczOSw4IEBAIGlu
dCBhcmNoX2RvbWFpbl9jcmVhdGUoc3RydWN0IGRvbWFpbiAqZCwNCj4+PiAgwqDCoMKgwqDCoCBp
ZiAoIChyYyA9IGRvbWFpbl92Z2ljX3JlZ2lzdGVyKGQsICZjb3VudCkpICE9IDAgKQ0KPj4+ICDC
oMKgwqDCoMKgwqDCoMKgwqAgZ290byBmYWlsOw0KPj4+ICDCoCArwqDCoMKgIGNvdW50ICs9IGRv
bWFpbl92cGNpX2dldF9udW1fbW1pb19oYW5kbGVycyhkKTsNCj4+PiArDQo+Pj4gIMKgwqDCoMKg
wqAgaWYgKCAocmMgPSBkb21haW5faW9faW5pdChkLCBjb3VudCArIE1BWF9JT19IQU5ETEVSKSkg
IT0gMCApDQo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGZhaWw7DQo+Pj4gIMKgIGRpZmYg
LS1naXQgYS94ZW4vYXJjaC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5jIGIveGVuL2FyY2gvYXJt
L3BjaS9wY2ktaG9zdC1jb21tb24uYw0KPj4+IGluZGV4IDQ3MTA0YjIyYjIyMS4uMGQyNzFhNmU4
ODgxIDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9hcmNoL2FybS9wY2kvcGNpLWhvc3QtY29tbW9uLmMN
Cj4+PiArKysgYi94ZW4vYXJjaC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5jDQo+Pj4gQEAgLTI4
OSw2ICsyODksMzMgQEAgaW50IHBjaV9nZXRfaG9zdF9icmlkZ2Vfc2VnbWVudChjb25zdCBzdHJ1
Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUsDQo+Pj4gIMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7
DQo+Pj4gIMKgIH0NCj4+PiAgwqAgK2ludCBwY2lfaG9zdF9pdGVyYXRlX2JyaWRnZXMoc3RydWN0
IGRvbWFpbiAqZCwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgaW50ICgqY2IpKHN0cnVjdCBkb21haW4gKmQsDQo+Pj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlKSkNCj4+PiArew0K
Pj4+ICvCoMKgwqAgc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlOw0KPj4+ICvCoMKgwqAg
aW50IGVycjsNCj4+PiArDQo+Pj4gK8KgwqDCoCBsaXN0X2Zvcl9lYWNoX2VudHJ5KCBicmlkZ2Us
ICZwY2lfaG9zdF9icmlkZ2VzLCBub2RlICkNCj4+PiArwqDCoMKgIHsNCj4+PiArwqDCoMKgwqDC
oMKgwqAgZXJyID0gY2IoZCwgYnJpZGdlKTsNCj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBlcnIg
KQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7DQo+Pj4gK8KgwqDCoCB9
DQo+Pj4gK8KgwqDCoCByZXR1cm4gMDsNCj4+PiArfQ0KPj4+ICsNCj4+PiArdW5zaWduZWQgaW50
IHBjaV9ob3N0X2dldF9udW1fYnJpZGdlcyh2b2lkKQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoCBzdHJ1
Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2U7DQo+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgY291
bnQgPSAwOw0KPj4gSG93IGFib3V0IG1ha2luZyB0aGlzIHN0YXRpYyBhbmQuLi4NCj4+DQo+Pj4g
Kw0KPj4+ICvCoMKgwqAgbGlzdF9mb3JfZWFjaF9lbnRyeSggYnJpZGdlLCAmcGNpX2hvc3RfYnJp
ZGdlcywgbm9kZSApDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGNvdW50Kys7DQo+PiAuLi4gb25seSBj
YWxsIGxpc3RfZm9yX2VhY2hfZW50cnkoKSB3aGVuIGNvdW50IGlzIC0xPyBTbyB3ZSB3b3VsZCBv
bmx5IGdvIHRocm91Z2ggdGhlIGxpc3Qgb25jZS4NCj4+DQo+PiBUaGlzIHNob3VsZCBiZSBmaW5l
IGdpdmVuIGhvc3RicmlkZ2UgY2FuIG9ubHkgYmUgYWRkZWQgZHVyaW5nIGJvb3QgKHdlIHdvdWxk
IG5lZWQgdG8gcHJvdGVjdCBwY2lfaG9zdF9icmlkZ2VzIHdpdGggYSBsb2NrIG90aGVyd2lzZSku
DQo+IE9rLCBJIGNhbiBkbyB0aGF0DQpJIGhhdmUgcmUtd29ya2VkIHRoZSBwYXRjaCBzbyB0aGF0
IG1vcmUgY29kZSBjYW4gYmUgcmUtdXNlZDoNCg0KIMKgwqDCoCBpZiAoIGlzX2hhcmR3YXJlX2Rv
bWFpbihkKSApDQogwqDCoMKgIHsNCiDCoMKgwqDCoMKgwqDCoCBpbnQgY291bnQ7DQoNCiDCoMKg
wqDCoMKgwqDCoCBjb3VudCA9IHBjaV9ob3N0X2l0ZXJhdGVfYnJpZGdlc19hbmRfY291bnQoZCwN
CnZwY2lfc2V0dXBfbW1pb19oYW5kbGVyX2NiKTsNCiDCoMKgwqDCoMKgwqDCoCBpZiAoIGNvdW50
IDwgMCApDQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gY291bnQ7DQoNCiDCoMKgwqDC
oMKgwqDCoCByZXR1cm4gMDsNCiDCoMKgwqAgfQ0KDQogwqDCoMKgIHJlZ2lzdGVyX21taW9faGFu
ZGxlcihkLCAmdnBjaV9tbWlvX2hhbmRsZXIsDQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgR1VFU1RfVlBDSV9FQ0FNX0JBU0UsIEdVRVNUX1ZQQ0lf
RUNBTV9TSVpFLCBOVUxMKTsNCg0Kc28gcGNpX2hvc3RfZ2V0X251bV9icmlkZ2VzIGdvZXMgYXdh
eS4NCj4+PiArDQo+Pj4gK8KgwqDCoCByZXR1cm4gY291bnQ7DQo+Pj4gK30NCj4+PiArDQo+Pj4g
IMKgIC8qDQo+Pj4gIMKgwqAgKiBMb2NhbCB2YXJpYWJsZXM6DQo+Pj4gIMKgwqAgKiBtb2RlOiBD
DQo+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92cGNpLmMgYi94ZW4vYXJjaC9hcm0vdnBj
aS5jDQo+Pj4gaW5kZXggMjNmNDUzODZmNGIzLi41YTZlYmQ4Yjk4NjggMTAwNjQ0DQo+Pj4gLS0t
IGEveGVuL2FyY2gvYXJtL3ZwY2kuYw0KPj4+ICsrKyBiL3hlbi9hcmNoL2FybS92cGNpLmMNCj4+
PiBAQCAtMTYsMTYgKzE2LDMxIEBADQo+Pj4gIMKgIMKgICNpbmNsdWRlIDxhc20vbW1pby5oPg0K
Pj4+ICDCoCArc3RhdGljIHBjaV9zYmRmX3QgdnBjaV9zYmRmX2Zyb21fZ3BhKGNvbnN0IHN0cnVj
dCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBhZGRyX3Qg
Z3BhKQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoCBwY2lfc2JkZl90IHNiZGY7DQo+Pj4gKw0KPj4+ICvC
oMKgwqAgaWYgKCBicmlkZ2UgKQ0KPj4+ICvCoMKgwqAgew0KPj4+ICvCoMKgwqDCoMKgwqDCoCBz
YmRmLnNiZGYgPSBWUENJX0VDQU1fQkRGKGdwYSAtIGJyaWRnZS0+Y2ZnLT5waHlzX2FkZHIpOw0K
Pj4+ICvCoMKgwqDCoMKgwqDCoCBzYmRmLnNlZyA9IGJyaWRnZS0+c2VnbWVudDsNCj4+PiArwqDC
oMKgwqDCoMKgwqAgc2JkZi5idXMgKz0gYnJpZGdlLT5jZmctPmJ1c25fc3RhcnQ7DQo+Pj4gK8Kg
wqDCoCB9DQo+Pj4gK8KgwqDCoCBlbHNlDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHNiZGYuc2JkZiA9
IFZQQ0lfRUNBTV9CREYoZ3BhIC0gR1VFU1RfVlBDSV9FQ0FNX0JBU0UpOw0KPj4+ICsNCj4+PiAr
wqDCoMKgIHJldHVybiBzYmRmOw0KPj4+ICt9DQo+Pj4gKw0KPj4+ICDCoCBzdGF0aWMgaW50IHZw
Y2lfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCj4+PiAgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlZ2lz
dGVyX3QgKnIsIHZvaWQgKnApDQo+Pj4gIMKgIHsNCj4+PiAtwqDCoMKgIHBjaV9zYmRmX3Qgc2Jk
ZjsNCj4+PiArwqDCoMKgIHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSA9IHA7DQo+Pj4g
K8KgwqDCoCBwY2lfc2JkZl90IHNiZGYgPSB2cGNpX3NiZGZfZnJvbV9ncGEoYnJpZGdlLCBpbmZv
LT5ncGEpOw0KPj4+ICDCoMKgwqDCoMKgIC8qIGRhdGEgaXMgbmVlZGVkIHRvIHByZXZlbnQgYSBw
b2ludGVyIGNhc3Qgb24gMzJiaXQgKi8NCj4+PiAgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGRh
dGE7DQo+Pj4gIMKgIC3CoMKgwqAgLyogV2UgaWdub3JlIHNlZ21lbnQgcGFydCBhbmQgYWx3YXlz
IGhhbmRsZSBzZWdtZW50IDAgKi8NCj4+PiAtwqDCoMKgIHNiZGYuc2JkZiA9IFZQQ0lfRUNBTV9C
REYoaW5mby0+Z3BhIC0gR1VFU1RfVlBDSV9FQ0FNX0JBU0UpOw0KPj4+IC0NCj4+PiAgwqDCoMKg
wqDCoCBpZiAoIHZwY2lfZWNhbV9yZWFkKHNiZGYsIEVDQU1fUkVHX09GRlNFVChpbmZvLT5ncGEp
LA0KPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCAxVSA8PCBpbmZvLT5kYWJ0LnNpemUsICZkYXRhKSApDQo+Pj4gIMKgwqDCoMKgwqAgew0KPj4+
IEBAIC00MSwxMCArNTYsOCBAQCBzdGF0aWMgaW50IHZwY2lfbW1pb19yZWFkKHN0cnVjdCB2Y3B1
ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCj4+PiAgwqAgc3RhdGljIGludCB2cGNpX21taW9fd3Jp
dGUoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLA0KPj4+ICDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWdpc3Rlcl90IHIs
IHZvaWQgKnApDQo+Pj4gIMKgIHsNCj4+PiAtwqDCoMKgIHBjaV9zYmRmX3Qgc2JkZjsNCj4+PiAt
DQo+Pj4gLcKgwqDCoCAvKiBXZSBpZ25vcmUgc2VnbWVudCBwYXJ0IGFuZCBhbHdheXMgaGFuZGxl
IHNlZ21lbnQgMCAqLw0KPj4+IC3CoMKgwqAgc2JkZi5zYmRmID0gVlBDSV9FQ0FNX0JERihpbmZv
LT5ncGEgLSBHVUVTVF9WUENJX0VDQU1fQkFTRSk7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgcGNpX2hv
c3RfYnJpZGdlICpicmlkZ2UgPSBwOw0KPj4+ICvCoMKgwqAgcGNpX3NiZGZfdCBzYmRmID0gdnBj
aV9zYmRmX2Zyb21fZ3BhKGJyaWRnZSwgaW5mby0+Z3BhKTsNCj4+PiAgwqAgwqDCoMKgwqDCoCBy
ZXR1cm4gdnBjaV9lY2FtX3dyaXRlKHNiZGYsIEVDQU1fUkVHX09GRlNFVChpbmZvLT5ncGEpLA0K
Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAxVSA8PCBpbmZvLT5kYWJ0LnNpemUsIHIpOw0KPj4+IEBAIC01NSwxNyArNjgsNTQgQEAg
c3RhdGljIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXJfb3BzIHZwY2lfbW1pb19oYW5kbGVyID0g
ew0KPj4+ICDCoMKgwqDCoMKgIC53cml0ZSA9IHZwY2lfbW1pb193cml0ZSwNCj4+PiAgwqAgfTsN
Cj4+PiAgwqAgK3N0YXRpYyBpbnQgdnBjaV9zZXR1cF9tbWlvX2hhbmRsZXJfY2Ioc3RydWN0IGRv
bWFpbiAqZCwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAq
YnJpZGdlKQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgcGNpX2NvbmZpZ193aW5kb3cgKmNm
ZyA9IGJyaWRnZS0+Y2ZnOw0KPj4+ICsNCj4+PiArwqDCoMKgIHJlZ2lzdGVyX21taW9faGFuZGxl
cihkLCAmdnBjaV9tbWlvX2hhbmRsZXIsDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNmZy0+cGh5c19hZGRyLCBjZmctPnNpemUsIGJyaWRn
ZSk7DQo+Pj4gK8KgwqDCoCByZXR1cm4gMDsNCj4+PiArfQ0KPj4+ICsNCj4+PiAgwqAgaW50IGRv
bWFpbl92cGNpX2luaXQoc3RydWN0IGRvbWFpbiAqZCkNCj4+PiAgwqAgew0KPj4+ICDCoMKgwqDC
oMKgIGlmICggIWhhc192cGNpKGQpICkNCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAw
Ow0KPj4+ICDCoCArwqDCoMKgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkNCj4+PiArwqDC
oMKgwqDCoMKgwqAgcmV0dXJuIHBjaV9ob3N0X2l0ZXJhdGVfYnJpZGdlcyhkLCB2cGNpX3NldHVw
X21taW9faGFuZGxlcl9jYik7DQo+Pj4gKw0KPj4+ICvCoMKgwqAgLyogR3Vlc3QgZG9tYWlucyB1
c2Ugd2hhdCBpcyBwcm9ncmFtbWVkIGluIHRoZWlyIGRldmljZSB0cmVlLiAqLw0KPj4gSSB3b3Vs
ZCByYXRoZXIgbm90IG1ha2UgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgZ3Vlc3QgaXMgdXNpbmcg
YSBEZXZpY2UtVHJlZS4gU28gaG93IGFib3V0Og0KPj4NCj4+IC8qDQo+PiAgwqAqIFRoZSBoYXJk
d2FyZSBkb21haW4gZ2V0cyBvbmUgdmlydHVhbCBob3N0YnJpZGdlIGJ5ICJyZWFsIg0KPj4gIMKg
KiBob3N0YnJpZGdlcy4NCj4+ICDCoCogR3Vlc3RzIGdldCB0aGUgdmlydHVhbCBwbGF0Zm9ybSBs
YXlvdXQgKG9uZSB2aXJ0dWFsIGhvc3QgYnJpZGdlIGZvcg0KPj4gIMKgKiBub3cpLg0KPj4gIMKg
Ki8NCj4+DQo+PiBUaGUgY29tbWVudCB3b3VsZCBoYXZlIHRvIGJlIG1vdmVkIGJlZm9yZSBpZiAo
IGlzX2hhcmR3YXJlX2RvbWFpbihkKSApLg0KPiBTdXJlLCBJIGNhbiBleHRlbmQgdGhlIGNvbW1l
bnQNCiDCoMKgwqAgLyoNCiDCoMKgwqDCoCAqIFRoZSBoYXJkd2FyZSBkb21haW4gZ2V0cyBhcyBt
YW55IE1NSU9zIGFzIHJlcXVpcmVkIGJ5IHRoZQ0KIMKgwqDCoMKgICogcGh5c2ljYWwgaG9zdCBi
cmlkZ2UuDQogwqDCoMKgwqAgKiBHdWVzdHMgZ2V0IHRoZSB2aXJ0dWFsIHBsYXRmb3JtIGxheW91
dDogb25lIHZpcnR1YWwgaG9zdCBicmlkZ2UgZm9yIG5vdy4NCiDCoMKgwqDCoCAqLw0KDQo+Pj4g
IMKgwqDCoMKgwqAgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKGQsICZ2cGNpX21taW9faGFuZGxlciwN
Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIEdVRVNUX1ZQQ0lfRUNBTV9CQVNFLCBHVUVTVF9WUENJX0VDQU1fU0laRSwgTlVMTCk7DQo+
Pj4gIMKgIMKgwqDCoMKgwqAgcmV0dXJuIDA7DQo+Pj4gIMKgIH0NCj4+PiAgwqAgK3Vuc2lnbmVk
IGludCBkb21haW5fdnBjaV9nZXRfbnVtX21taW9faGFuZGxlcnMoc3RydWN0IGRvbWFpbiAqZCkN
Cj4+IEFGQUlDVCwgdGhpcyBmdW5jdGlvbiB3b3VsZCBhbHNvIGJlIGNhbGxlZCBldmVuIGlmIHZQ
Q0kgaXMgbm90IGVuYWJsZWQgZm9yIHRoZSBkb21haW4uIFNvIHdlIHNob3VsZCBhZGQ6DQo+Pg0K
Pj4gaWYgKCAhaGFzX3ZwY2koZCkgKQ0KPj4gIMKgIHJldHVybiAwOw0KPj4NCj4gR29vZCBjYXRj
aCwgd2lsbCBhZGQNCkhtLi4uIGJ1dCB3ZSBoYXZlDQoNCnN0YXRpYyBpbmxpbmUgdW5zaWduZWQg
aW50IGRvbWFpbl92cGNpX2dldF9udW1fbW1pb19oYW5kbGVycyhzdHJ1Y3QgZG9tYWluICpkKQ0K
K3sNCisgICAgcmV0dXJuIDA7DQorfQ0KZmlyIHRoYXQgY2FzZQ0KDQo+Pj4gK3sNCj4+PiArwqDC
oMKgIHVuc2lnbmVkIGludCBjb3VudDsNCj4+PiArDQo+Pj4gK8KgwqDCoCBpZiAoIGlzX2hhcmR3
YXJlX2RvbWFpbihkKSApDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIC8qIEZvciBlYWNoIFBDSSBob3N0
IGJyaWRnZSdzIGNvbmZpZ3VyYXRpb24gc3BhY2UuICovDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGNv
dW50ID0gcGNpX2hvc3RfZ2V0X251bV9icmlkZ2VzKCk7DQo+PiBUaGlzIGZpcnN0IHBhcnQgbWFr
ZXMgc2Vuc2UgdG8gbWUuIEJ1dC4uLg0KPj4NCj4+PiArwqDCoMKgIGVsc2UNCj4+IC4uLiBJIGRv
bid0IHVuZGVyc3RhbmQgaG93IHRoZSBlbHNlIGlzIHJlbGF0ZWQgdG8gdGhpcyBjb21taXQuIENh
biB5b3UgY2xhcmlmeSBpdD8NCj4+DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIC8qDQo+Pj4gK8KgwqDC
oMKgwqDCoMKgwqAgKiBUaGVyZSdzIGEgc2luZ2xlIE1TSS1YIE1NSU8gaGFuZGxlciB0aGF0IGRl
YWxzIHdpdGggYm90aCBQQkENCj4+PiArwqDCoMKgwqDCoMKgwqDCoCAqIGFuZCBNU0ktWCB0YWJs
ZXMgcGVyIGVhY2ggUENJIGRldmljZSBiZWluZyBwYXNzZWQgdGhyb3VnaC4NCj4+PiArwqDCoMKg
wqDCoMKgwqDCoCAqIE1heGltdW0gbnVtYmVyIG9mIHN1cHBvcnRlZCBkZXZpY2VzIGlzIDMyIGFz
IHZpcnR1YWwgYnVzDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqAgKiB0b3BvbG9neSBlbXVsYXRlcyB0
aGUgZGV2aWNlcyBhcyBlbWJlZGRlZCBlbmRwb2ludHMuDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqAg
KiArMSBmb3IgYSBzaW5nbGUgZW11bGF0ZWQgaG9zdCBicmlkZ2UncyBjb25maWd1cmF0aW9uIHNw
YWNlLg0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgICovDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGNvdW50
ID0gMTsNCj4+PiArI2lmZGVmIENPTkZJR19IQVNfUENJX01TSQ0KPj4+ICvCoMKgwqDCoMKgwqDC
oCBjb3VudCArPSAzMjsNCj4+IFN1cmVseSwgdGhpcyBpcyBhIGRlY2lzaW9uIHRoYXQgaXMgYmFz
ZWQgb24gb3RoZXIgZmFjdG9yIGluIHRoZSB2UENJIGNvZGUuIFNvIGNhbiB1c2UgYSBkZWZpbmUg
YW5kIGF2b2lkIGhhcmRjb2RpbmcgdGhlIG51bWJlcj8NCj4gV2VsbCwgaW4gdGhlIGxhdGVyIHNl
cmllcyBbMV0gdGhpcyBpcyBkZWZpbmVkIHZpYSBQQ0lfU0xPVCh+MCkgKyAxIGFuZCB0aGVyZSBp
cyBubyBkZWRpY2F0ZWQNCj4gY29uc3RhbnQgZm9yIHRoYXQuIEkgY2FuIHVzZSB0aGUgc2FtZSBo
ZXJlLCBlLmcuIHMvMzIvUENJX1NMT1QofjApICsgMQ0KPj4+ICsjZW5kaWYNCj4+DQo+Pj4gKw0K
Pj4+ICvCoMKgwqAgcmV0dXJuIGNvdW50Ow0KPj4+ICt9DQo+Pj4gKw0KPj4+ICDCoCAvKg0KPj4+
ICDCoMKgICogTG9jYWwgdmFyaWFibGVzOg0KPj4+ICDCoMKgICogbW9kZTogQw0KPj4+IGRpZmYg
LS1naXQgYS94ZW4vYXJjaC9hcm0vdnBjaS5oIGIveGVuL2FyY2gvYXJtL3ZwY2kuaA0KPj4+IGlu
ZGV4IGQ4YTdiMGUzZTgwMi4uM2M3MTNmM2ZjZGI1IDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9hcmNo
L2FybS92cGNpLmgNCj4+PiArKysgYi94ZW4vYXJjaC9hcm0vdnBjaS5oDQo+Pj4gQEAgLTE3LDEx
ICsxNywxNyBAQA0KPj4+ICDCoCDCoCAjaWZkZWYgQ09ORklHX0hBU19WUENJDQo+Pj4gIMKgIGlu
dCBkb21haW5fdnBjaV9pbml0KHN0cnVjdCBkb21haW4gKmQpOw0KPj4+ICt1bnNpZ25lZCBpbnQg
ZG9tYWluX3ZwY2lfZ2V0X251bV9tbWlvX2hhbmRsZXJzKHN0cnVjdCBkb21haW4gKmQpOw0KPj4+
ICDCoCAjZWxzZQ0KPj4+ICDCoCBzdGF0aWMgaW5saW5lIGludCBkb21haW5fdnBjaV9pbml0KHN0
cnVjdCBkb21haW4gKmQpDQo+Pj4gIMKgIHsNCj4+PiAgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+
PiAgwqAgfQ0KPj4+ICsNCj4+PiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZG9tYWluX3Zw
Y2lfZ2V0X251bV9tbWlvX2hhbmRsZXJzKHN0cnVjdCBkb21haW4gKmQpDQo+Pj4gK3sNCj4+PiAr
wqDCoMKgIHJldHVybiAwOw0KPj4+ICt9DQo+Pj4gIMKgICNlbmRpZg0KPj4+ICDCoCDCoCAjZW5k
aWYgLyogX19BUkNIX0FSTV9WUENJX0hfXyAqLw0KPj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVk
ZS9hc20tYXJtL3BjaS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wY2kuaA0KPj4+IGluZGV4IGMy
MGViYTY0M2Q4Ni4uOTY5MzMzMDQzNDMxIDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9pbmNsdWRlL2Fz
bS1hcm0vcGNpLmgNCj4+PiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BjaS5oDQo+Pj4gQEAg
LTExMCw2ICsxMTAsMTEgQEAgdm9pZCBhcmNoX3BjaV9pbml0X3BkZXYoc3RydWN0IHBjaV9kZXYg
KnBkZXYpOw0KPj4+ICDCoCDCoCBpbnQgcGNpX2dldF9uZXdfZG9tYWluX25yKHZvaWQpOw0KPj4+
ICDCoCAraW50IHBjaV9ob3N0X2l0ZXJhdGVfYnJpZGdlcyhzdHJ1Y3QgZG9tYWluICpkLA0KPj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBpbnQgKCpjbGIpKHN0cnVjdCBkb21haW4gKmQsDQo+PiBOSVQ6IFRoaXMgaXMgbW9yZSBjb21t
b24gdG8gY2FsbCBhIGNhbGxiYWNrICdjYicuIEluIGFueSBjYXNlLCBJIHdvdWxkIHByZWZlciBp
ZiB0aGUgbmFtZXMgbWF0Y2hlcyB0aGUgb25lIHVzZWQgaW4gdGhlIGltcGxlbWVudGF0aW9uLg0K
PiBXaWxsIGNoYW5nZQ0KPj4+ICsgc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlKSk7DQo+
Pj4gK3Vuc2lnbmVkIGludCBwY2lfaG9zdF9nZXRfbnVtX2JyaWRnZXModm9pZCk7DQo+Pj4gKw0K
Pj4+ICDCoCAjZWxzZcKgwqAgLyohQ09ORklHX0hBU19QQ0kqLw0KPj4+ICDCoCDCoCBzdHJ1Y3Qg
YXJjaF9wY2lfZGV2IHsgfTsNCj4+Pg0KPj4gQ2hlZXJzLA0KPj4NCj4gVGhhbmsgeW91LA0KPiBP
bGVrc2FuZHINCj4NCj4gWzFdIGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC94
ZW4tZGV2ZWwvcGF0Y2gvMjAyMTExMDUwNjU2MjkuOTQwOTQzLTExLWFuZHIyMDAwQGdtYWlsLmNv
bS8NCg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 10:48:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 10:48:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227332.393162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mneyA-0005YB-N1; Thu, 18 Nov 2021 10:48:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227332.393162; Thu, 18 Nov 2021 10:48:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mneyA-0005Y4-K1; Thu, 18 Nov 2021 10:48:42 +0000
Received: by outflank-mailman (input) for mailman id 227332;
 Thu, 18 Nov 2021 10:48:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mney8-0005Xu-LW
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 10:48:40 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 16bb5adc-485d-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 11:48:39 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2052.outbound.protection.outlook.com [104.47.10.52]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-4-DAMTv59fMC-1TVaoFuVKww-1;
 Thu, 18 Nov 2021 11:48:38 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6479.eurprd04.prod.outlook.com (2603:10a6:803:11c::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Thu, 18 Nov
 2021 10:48:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 10:48:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P193CA0086.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:88::27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 10:48:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16bb5adc-485d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637232519;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Pk65xUh0yXRduk2K0070O/Ck3BuVN7sfQOh7LWubgTo=;
	b=fRFb58LD+PQpyVWUp+IKnNvZaRXAPWgtAfPqKSJHjHtlB6fogJDOztB/Rj7b7CnKWDdM+A
	75dSl/UKL+t4FcT16hcoCD1dM8/Emc2Bs4gBWTelta0KLyotDJ8zQUVKXmsfZw7OGYqpAv
	P8o+jyTNOdoHeSQdqsd03ULtr+2Pv+0=
X-MC-Unique: DAMTv59fMC-1TVaoFuVKww-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nCTarAecHm6R4ygkQbx6xiPM1+zf3/l+PlAgV6qSdj2janJxDan3kGgGb7g1kCCwb3F9t9GSRlMl9KxJM619q4XzZXvMxClqGSJv0RtMpqa6Yhq5lLdq8kC/kRIU0tGwTxPzGG+kPYh+jP5TIW+pNCOMP26QYhcBNlrlXedD7HOrtWua/pGdeJOPVvFMVbYtYe4BuDpRolwu/wllTj1rmO2LnnjDbiL9jGCbeH17WdANb/PkVvuXRVzIfHMgSzUYCdpjcfJwU5gxTlaH53BXh2N5Dhmo4J3D/j97TSBRhK/QMrGHqOCvHADKenjCa0t3ceSMmCn9QDjPTKYxsiGRng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TZft+WfS+KYGog5BueoSOrodyo8FpxreEnFSpcDLhkw=;
 b=Kj2BH8bCJp2bXWbPFggUlnLwxTfL7kBcRnMC21dZHZ/M9K3q+VLvSSlgNEauSm14MU9mWvYsTKqHMpt+LZGR3zRQDPt6Jm/3nvs76Uwg29DE8zPw/4yAC9ffCN/ihoaHuNo/xqOSOH/tylRe+QZ7k1vxpD5mnUMqm9W7nCHiAW/j3yjY6/xhauzarCfRVCqPX/OWRjPVaI8r+QmvV2OnQhXO+NoDjzQVcWYArhTvRDL3BOpuvpIWKx8eQrbx4bxsbYTUjN5ImKkI8Z7GmoigBpKPJdloxUV/V9gqigHC23ObA+B3Y1VYZuqMWVl3DkvBh2z46V8gjcz/2L1MfbwkBA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9ba8818a-41c8-ee48-6179-56ccb266d40d@suse.com>
Date: Thu, 18 Nov 2021 11:48:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH for-4.16 v2] efi: fix alignment of function parameters in
 compat mode
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211118082806.23335-1-roger.pau@citrix.com>
 <1377adb3-e3f5-2865-a2df-e6dd8098645e@suse.com>
 <YZYo9oGq2Bzontjw@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZYo9oGq2Bzontjw@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P193CA0086.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:209:88::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3ada8e50-36a9-4d8e-a9a3-08d9aa80f8de
X-MS-TrafficTypeDiagnostic: VE1PR04MB6479:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6479E1DD1972FB307BE6370CB39B9@VE1PR04MB6479.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	+QFBxLaOwGMD1+dy/4EQgYz3TBP4rSYhVhe3d03BQcwfrCJV0zcMoN/GU5bMqFLh9jbm9D1dJTYujAjlYXFnntQi0zkpSvbndy+kKbLO3q+FZbIeXWE9wLdwlZ0bpaIkXThj5L9BlxMuWUPy0bpA4/1VKXP5XRamTYg76B3qR9ivOE5oO+JTUY1wiY7HswLu9OZbs0EbRKvE9VOWJqMxWPKWdDykO8584q69rMWBolGkqKv7xCfxhZW1drF/HenuSd350arFX1SB8fe1H68gj5zECYneVPPjUzEbt3FFp0CHgxdNOiO5N3TP0dedjMMNukKZCZQutViGllUm5aP2SITGpjhQlCQc2fBLVAhInfxZdBGKyNBSUqZe/zoPI0v0UryKYNK+Y76M/gQDWaEzi4xw6upLnQzOKru4JoBMkwDqvXZE8Aaq//oy+9OW4wdh48n9psVZRQs5rb5m/3F6ujIul6kLFswp64zudozZ4jJTNZbKPpXukIhRHe+81rZ3ScMSRKEw9lUYH9qVYYZeGaBXThEqz1oKXJ0wPflFqqoJAzT0EuQLp0Xp+mYKPqvBtxIW+MGa82SkMAe/88ZbARmlboyqZ+ynUAlnZvRBPKPNUV9yc1vvJZr3MwidLDY14IzVEoNZj6bAOFDY/hF1YoCiIaJ9uv/6MD05lJSnJtoau58FRRkYusIOZMz719x/7cXwl6vUZT74vZLUVKQ++iF3LnK3YZ8CxL8UVzAqL+hhi6FFNB6EarlZfuCUxyAq
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(316002)(16576012)(2616005)(26005)(66476007)(8936002)(956004)(2906002)(8676002)(66946007)(66556008)(31696002)(508600001)(4326008)(6486002)(83380400001)(38100700002)(31686004)(6916009)(5660300002)(53546011)(86362001)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?fYS+iKp7xa7qS9I9VRe4wAPK29EByCbrm2neiV9dRWVlk/ndNEEYdxDFQCT7?=
 =?us-ascii?Q?jo4PxhqGa1WlDDNLB77JQnDzoPhNgqRdiodzb0NmjZY/nYnkaJ/qYN/PHjLF?=
 =?us-ascii?Q?48vg64hZE4hWAg5osNBrHLMY+F9gP904Dra8DtSNxFZCd/vmol/DYQ/fzvm2?=
 =?us-ascii?Q?8+yyD789mc+x2c9Qogu1T+VNDxYPDBJ2sH9FABLdv/G5d1yVvziDJCsyO+eq?=
 =?us-ascii?Q?1EXBVSEF7oPqeXDpLvrwRkqA813dNNWo/jZNzxeYN5JGcGzx/KDRt81TxLdU?=
 =?us-ascii?Q?uDlEzmvTMGz4RxiTaifISc7p575AJCetcN+YPGWkngOub4BtDVaEiIu7LyTO?=
 =?us-ascii?Q?ZUkxxxKzV3vIRoXss2n9Hq30641VUK9kxTV+dExjB8/yqEqJbUdLl6pXGj8B?=
 =?us-ascii?Q?s/9Q4TNn3ta4gSbb+BykHSVV0EY0vonjcP07ZGz5dO9pZMiM/CJydbRmk9v9?=
 =?us-ascii?Q?6KB+WjMeNSKJfj6jeEsmGeUVk4fVqY2q9KlYSqQPCy4XYRzCJ/2SwG9m0mEo?=
 =?us-ascii?Q?UIUlNW5201WsRtHFOIYFTJlwX3IQKBCfCzCWHDvqmeL4GnXvUXyObE/81BBU?=
 =?us-ascii?Q?Q9EU9bUEM26t5FlLyFV8mUewgayH8PfJV2VZyUldgAtb1qRRVdP/cLWj3YPE?=
 =?us-ascii?Q?bWTi4q+SDYDV6aZXMw/TuW12eRTSkFZfhwJVqtoiyro06ORJaIpT5flDCwW9?=
 =?us-ascii?Q?9D4uJP+gXbwHumQ30RKOr/A3Bqb8z5sjqgOwdpX2lwkSU7RKkK1k0m0yltAE?=
 =?us-ascii?Q?CMxhUqWTmDa15bw970KeSDUucmGf1++S445Ov2qV67WAAqO2xrTrhEG+RnbZ?=
 =?us-ascii?Q?bm7iuf/gHoRuHQr/LUKMCy6uJdGQxuFIO+WkkKbbkFLci30p+m6hk3Srpx9S?=
 =?us-ascii?Q?nDjoBd1Lw69YFPUmPjLxEBJluD3Jyc1ILwGufVYqlJzEL8TyiWJ5lxUgDS7D?=
 =?us-ascii?Q?VW422ZDLiGlj4CLUmkaPU5W8kMvWeFjy4Ry+WB9naKOEn9VssSw7w+rIS4xj?=
 =?us-ascii?Q?aFU9uRX9OIExCZiVM2R1JWGZoPXKMKqT/jX6pI9YL9TpDtr2c1NAAZRH0Rsc?=
 =?us-ascii?Q?HGqBAig6FRSYA9sSozBWZ8to3dozAbntzM4Zdc5ihXJJj0Bipici2TG2r6d8?=
 =?us-ascii?Q?zQ1BhhysM4SfDb++UOP8n0vm/PpG6QdCbS3CoOMj+MUMx2zTY3xZSXFRET9H?=
 =?us-ascii?Q?kkvWnPa0AmnIxTkRYAYIdTiNyRJZ6KFg33bz1g1CToQ/VkMWl1uHChdgDiPP?=
 =?us-ascii?Q?gdvkV7/pUvxH49oKYVyKDXM+lUzBGbHS36qyHPlqJMAfkxZ0nshaVou8MLxQ?=
 =?us-ascii?Q?+hpZ2k2zKOT6NMVItZHyIOBJbrmYHY6QOv79N9tgrULazckDTRpTWXbjpllo?=
 =?us-ascii?Q?Wnwy3ByRhYbqOXMuVeAgCOajRgujlHPLGlEi6t0IbjZi7e3Jjv9WOQVPrqb1?=
 =?us-ascii?Q?WgouR4m0L/UMv2kz4nBRIZyLOYTn/glCh2uaWe+GGQP1nb/w0eOLaUazU3fn?=
 =?us-ascii?Q?5h8h0NpPgYs+afoj3qfrwtq4I+i8hPxcr0Gq8AZ8KevSjDbybyb38E9+w3Q/?=
 =?us-ascii?Q?/g3rIJi9pp9XufvrfQD64jWB/7b23z21XNOG/zMX0Fi9LYEnOkjPLolTIPT6?=
 =?us-ascii?Q?KQI23K3rDZbGlVDZuBCojUw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ada8e50-36a9-4d8e-a9a3-08d9aa80f8de
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 10:48:35.8872
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: b3uV2/3S25HD7/InS5CCjauuZRJCz+jacd9E2hpS6QQW+e2OwBtD5elD8upSdwaJRaaQnBgGgWE3Hfdi90xuSw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6479

On 18.11.2021 11:20, Roger Pau Monn=C3=A9 wrote:
> On Thu, Nov 18, 2021 at 10:46:32AM +0100, Jan Beulich wrote:
>> On 18.11.2021 09:28, Roger Pau Monne wrote:
>>> Currently the max_store_size, remain_store_size and max_size in
>>> compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
>>> 13.0.0 complain with:
>>>
>>> In file included from compat.c:30:
>>> ./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte al=
igned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer=
 access [-Werror,-Walign-mismatch]
>>>             &op->u.query_variable_info.max_store_size,
>>>             ^
>>> ./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte al=
igned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer=
 access [-Werror,-Walign-mismatch]
>>>             &op->u.query_variable_info.remain_store_size,
>>>             ^
>>> ./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte al=
igned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer=
 access [-Werror,-Walign-mismatch]
>>>             &op->u.query_variable_info.max_size);
>>>             ^
>>> Fix this by bouncing the variables on the stack in order for them to
>>> be 8 byte aligned.
>>>
>>> Note this could be done in a more selective manner to only apply to
>>> compat code calls, but given the overhead of making an EFI call doing
>>> an extra copy of 3 variables doesn't seem to warrant the special
>>> casing.
>>>
>>> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>>> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
>>
>> The code change looks correct to me, so it could have my R-b, but I'd
>> like to ask for some clarification first.
>>
>>> --- a/xen/common/efi/runtime.c
>>> +++ b/xen/common/efi/runtime.c
>>> @@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call =
*op)
>>>      break;
>>> =20
>>>      case XEN_EFI_query_variable_info:
>>> +    {
>>> +        uint64_t max_store_size, remain_store_size, max_size;
>>> +
>>>          if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
>>>              return -EINVAL;
>>> =20
>>> @@ -638,16 +641,34 @@ int efi_runtime_call(struct xenpf_efi_runtime_cal=
l *op)
>>> =20
>>>          if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 =
)
>>>              return -EOPNOTSUPP;
>>> +
>>> +        /*
>>> +         * Bounce the variables onto the stack to make them 8 byte ali=
gned when
>>> +         * called from the compat handler, as their placement in
>>> +         * compat_pf_efi_runtime_call will make them 4 byte aligned in=
stead and
>>> +         * clang will complain.
>>
>> I expect future gcc would also complain; I'm actually surprised it
>> doesn't already, as I recall work in that direction was done for one
>> of the more recent releases. Hence while I'm fine with referring to
>> clang specifically in the description, I'd prefer the comment here
>> to be more generic. E.g. "... and compilers may validly complain."
>=20
> Sure.
>=20
>>> +         * Note we do this regardless of whether called from the compa=
t handler
>>> +         * or not, as it's not worth the extra logic to differentiate.
>>> +         */
>>> +        max_store_size =3D op->u.query_variable_info.max_store_size;
>>> +        remain_store_size =3D op->u.query_variable_info.remain_store_s=
ize;
>>> +        max_size =3D op->u.query_variable_info.max_size;
>>
>> All three are OUT only as per the EFI spec. I'm not going to insist
>> on dropping these assignments, but their presence wants justifying
>> in the comment if you want to retain them. E.g. "While the function
>> parameters are OUT only, copy the values here anyway just in case."
>> Obviously if the assignments here were dropped, the local variables
>> would need to gain initializers to avoid leaking hypervisor stack
>> data.
>=20
> I think it's important to do the copy in order to prevent changes in
> behavior. Even if explicitly listed as OUT I won't be surprised if
> there where quirks that passed something in.
>=20
> What about replacing the last paragraph with:
>=20
> "Note that while the function parameters are OUT only, copy the values
> here anyway just in case. This is done regardless of whether called
> from the compat handler or not, as it's not worth the extra logic to
> differentiate."

Fine with me, thanks.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 10:50:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 10:50:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227337.393172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnezi-0006vO-6a; Thu, 18 Nov 2021 10:50:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227337.393172; Thu, 18 Nov 2021 10:50:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnezi-0006vH-3i; Thu, 18 Nov 2021 10:50:18 +0000
Received: by outflank-mailman (input) for mailman id 227337;
 Thu, 18 Nov 2021 10:50:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnezh-0006v9-DM
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 10:50:17 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 50a170eb-485d-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 11:50:16 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:60048)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnezg-000557-72 (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 18 Nov 2021 10:50:16 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id E96801FD7A;
 Thu, 18 Nov 2021 10:50:15 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50a170eb-485d-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <9aa54187-43e6-0ed6-62af-50ba52b3116a@srcf.net>
Date: Thu, 18 Nov 2021 10:50:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211118082806.23335-1-roger.pau@citrix.com>
 <1377adb3-e3f5-2865-a2df-e6dd8098645e@suse.com>
 <YZYo9oGq2Bzontjw@Air-de-Roger>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH for-4.16 v2] efi: fix alignment of function parameters in
 compat mode
In-Reply-To: <YZYo9oGq2Bzontjw@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/11/2021 10:20, Roger Pau Monné wrote:
> On Thu, Nov 18, 2021 at 10:46:32AM +0100, Jan Beulich wrote:
>> On 18.11.2021 09:28, Roger Pau Monne wrote:
>>> Currently the max_store_size, remain_store_size and max_size in
>>> compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
>>> 13.0.0 complain with:
>>>
>>> In file included from compat.c:30:
>>> ./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>>>             &op->u.query_variable_info.max_store_size,
>>>             ^
>>> ./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>>>             &op->u.query_variable_info.remain_store_size,
>>>             ^
>>> ./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>>>             &op->u.query_variable_info.max_size);
>>>             ^
>>> Fix this by bouncing the variables on the stack in order for them to
>>> be 8 byte aligned.
>>>
>>> Note this could be done in a more selective manner to only apply to
>>> compat code calls, but given the overhead of making an EFI call doing
>>> an extra copy of 3 variables doesn't seem to warrant the special
>>> casing.
>>>
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
>> The code change looks correct to me, so it could have my R-b, but I'd
>> like to ask for some clarification first.
>>
>>> --- a/xen/common/efi/runtime.c
>>> +++ b/xen/common/efi/runtime.c
>>> @@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
>>>      break;
>>>  
>>>      case XEN_EFI_query_variable_info:
>>> +    {
>>> +        uint64_t max_store_size, remain_store_size, max_size;
>>> +
>>>          if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
>>>              return -EINVAL;
>>>  
>>> @@ -638,16 +641,34 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
>>>  
>>>          if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
>>>              return -EOPNOTSUPP;
>>> +
>>> +        /*
>>> +         * Bounce the variables onto the stack to make them 8 byte aligned when
>>> +         * called from the compat handler, as their placement in
>>> +         * compat_pf_efi_runtime_call will make them 4 byte aligned instead and
>>> +         * clang will complain.
>> I expect future gcc would also complain; I'm actually surprised it
>> doesn't already, as I recall work in that direction was done for one
>> of the more recent releases. Hence while I'm fine with referring to
>> clang specifically in the description, I'd prefer the comment here
>> to be more generic. E.g. "... and compilers may validly complain."
> Sure.
>
>>> +         * Note we do this regardless of whether called from the compat handler
>>> +         * or not, as it's not worth the extra logic to differentiate.
>>> +         */
>>> +        max_store_size = op->u.query_variable_info.max_store_size;
>>> +        remain_store_size = op->u.query_variable_info.remain_store_size;
>>> +        max_size = op->u.query_variable_info.max_size;
>> All three are OUT only as per the EFI spec. I'm not going to insist
>> on dropping these assignments, but their presence wants justifying
>> in the comment if you want to retain them. E.g. "While the function
>> parameters are OUT only, copy the values here anyway just in case."
>> Obviously if the assignments here were dropped, the local variables
>> would need to gain initializers to avoid leaking hypervisor stack
>> data.
> I think it's important to do the copy in order to prevent changes in
> behavior.

I agree with Jan here.  While I agree that not doing the copy in is
technically a change in behaviour, it's still the appropriate way to
express the logic.


> Even if explicitly listed as OUT I won't be surprised if
> there where quirks that passed something in.

I would be surprised, given how much static analysis typically goes into
the IN/OUT annotations in the windows world.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 11:15:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 11:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227344.393184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnfNR-0000tj-66; Thu, 18 Nov 2021 11:14:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227344.393184; Thu, 18 Nov 2021 11:14:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnfNR-0000tc-2s; Thu, 18 Nov 2021 11:14:49 +0000
Received: by outflank-mailman (input) for mailman id 227344;
 Thu, 18 Nov 2021 11:14:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3ELX=QF=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mnfNQ-0000tW-21
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 11:14:48 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on062c.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc46aea9-4860-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 12:14:46 +0100 (CET)
Received: from AM7PR02CA0030.eurprd02.prod.outlook.com (2603:10a6:20b:100::40)
 by PAXPR08MB7202.eurprd08.prod.outlook.com (2603:10a6:102:209::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 11:14:41 +0000
Received: from VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:100:cafe::b7) by AM7PR02CA0030.outlook.office365.com
 (2603:10a6:20b:100::40) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Thu, 18 Nov 2021 11:14:41 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT007.mail.protection.outlook.com (10.152.18.114) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 11:14:40 +0000
Received: ("Tessian outbound dbb52aec1fa6:v110");
 Thu, 18 Nov 2021 11:14:39 +0000
Received: from 533940c39b17.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 5DE54684-A5E2-4D06-9490-A2E8D7CAE7CD.1; 
 Thu, 18 Nov 2021 11:14:28 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 533940c39b17.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 18 Nov 2021 11:14:28 +0000
Received: from AM0PR08MB3778.eurprd08.prod.outlook.com (2603:10a6:208:104::24)
 by AM4PR08MB2834.eurprd08.prod.outlook.com (2603:10a6:205:5::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Thu, 18 Nov
 2021 11:14:25 +0000
Received: from AM0PR08MB3778.eurprd08.prod.outlook.com
 ([fe80::3133:1b5:369e:9dd5]) by AM0PR08MB3778.eurprd08.prod.outlook.com
 ([fe80::3133:1b5:369e:9dd5%7]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 11:14:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc46aea9-4860-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gxTCpAfHIpoobhLr6g1Cw6VBIuQe6GsjHsl6horTIlg=;
 b=pIlJ9gfRz+K73C4cy6vk6bSuNAiv0ingE4j8LGN7CYxuM8PzkvjtFMJpPtjiTRFrIaoQXMQYO1qkiSElRDWZ6OWcc21Qoo4IKPNIYTGe4tic7mLrYEUXv/DvxWN+5ZH4NMJcMxJeYBB8fmIUJcTNFfDq/0W5TUdvxj00n1+qMk8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: b70fb495659451cb
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kWR3RJOQRkETXGZOtO4DXM+0z+bE2rhFEiwx1VidcqYVnMlbk09PZoAc3AMxYFurqGVZznt21wT++RBDjqJLGA4NypN4m1iMztx9BzKL/rlXA7SQgCy/wiVybGjM7bASQQGaO1HfiNGy2225VLz35pVXVRCcpNvXOjlvSM/tO8ynX5wAdcRDTwo8SjCecv7sXvCF2YDtKUBoNgSOEmlqCv/8vV5D0l3JyGxTOexs2TqoBfked1zPwnDiw+kpbn358Hg2+03jvT5244rNVpM3RrKmjzWQ/BA7o0Fq5vtaP5zbqAemBJL9oX3szl3vQKtmyxs3k/pM/t5ewkUbC5mw3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gxTCpAfHIpoobhLr6g1Cw6VBIuQe6GsjHsl6horTIlg=;
 b=AchU47mpZGhuM5ZNoDGQuFd7LvMH995CdSblTsWHAoQmlXAnjn5ubbzDKk3jW4OVhePxChFoSXELf4QPVOEqZup72UjGbPhL9rz5f5aOCZ5B0t6fkR7Hh4zUiv1b3AAJNotFxgtYOjBjdy5Hwtd0+CFc2tHqRZKXAdkD/JpB3KingHMgKKqLxGwXG8L9RLSjcvHR48PdIwKmA3NcaiEMmMVu/maESgn4zcnxDh6Wr1D/CD92yo/AOSxBqhAHx2KXWMj7mQuo5JEVeagL6+k85/VoIj9YdOBl2FdY4mzj05jlIj2eQnuN6eLJ6r6jvlY+QJbOStUrXLmDD9nBeHTicA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gxTCpAfHIpoobhLr6g1Cw6VBIuQe6GsjHsl6horTIlg=;
 b=pIlJ9gfRz+K73C4cy6vk6bSuNAiv0ingE4j8LGN7CYxuM8PzkvjtFMJpPtjiTRFrIaoQXMQYO1qkiSElRDWZ6OWcc21Qoo4IKPNIYTGe4tic7mLrYEUXv/DvxWN+5ZH4NMJcMxJeYBB8fmIUJcTNFfDq/0W5TUdvxj00n1+qMk8=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Julien
 Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, Nick
 Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Rahul Singh
	<Rahul.Singh@arm.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Samuel
 Thibault <samuel.thibault@ens-lyon.org>, Shriram Rajagopalan
	<rshriram@cs.ubc.ca>, Stefano Stabellini <sstabellini@kernel.org>, Stewart
 Hildebrand <stewart.hildebrand@dornerworks.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Tim Deegan <tim@xen.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Topic: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Index: AQHX25ke11bcLw+u/U2iOGdMJWqiNawHwc0AgAE8BwCAABFigIAACimAgAAKTgA=
Date: Thu, 18 Nov 2021 11:14:24 +0000
Message-ID: <02E4A3D7-6FD7-4B48-BA66-2D62DF94003C@arm.com>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
 <YZYVzkaQTQ6+Rn72@Air-de-Roger>
 <31E84B55-DF77-40B5-A61E-45DC79AEC7F6@arm.com>
 <YZYs6ewhD7yBetFh@Air-de-Roger>
In-Reply-To: <YZYs6ewhD7yBetFh@Air-de-Roger>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: f2c9b728-3185-4182-aa21-08d9aa849d74
x-ms-traffictypediagnostic: AM4PR08MB2834:|PAXPR08MB7202:
X-Microsoft-Antispam-PRVS:
	<PAXPR08MB72020B4C4F50DA93CB62CF999D9B9@PAXPR08MB7202.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 Sru/k0r5xka45WlU4rO4t8SIsIhvbngPBojsU2XBitmFKgI1QS4UyYNQxY7ziilUa5WZznJdvuelhXfIRegwgsn4QecoFM4PHpNi8faKymos49woC0gmvTYBGCLpPNKRVqenpZyg3lvfV/8jNTwAhH+kQrymly8C0kBJmYfxSLEfk1Bw9xsZ4YvYTaUsVnt0QEgZ4VOMSxms3ZlDqpGPt5/yPaWdEZ/QxzkDzW/NrnOK0c0J4LgHzJChGrhHjU4I/9E53XdSrizeGEGzMtwbhvsnL1T9qEoYzVC8s5im8jy1WP1WtO57cAFGTLW+y0aZlcQVqV4bmMVkLPJTDHwOUBxih231op5lTlNlTIdaG2MXTdXHD7Xnza2fAuD8yOZxajuMsTagjOp0ej4uZtMDGrTr6LTOV/yfrZM/Cm0D+2Pe1PPKmK761KQMjcXefzpyduWuHO7Pw/pd2svZiE1JD0w620Xra143O17gDCuLnj/E0yGr3EnPCtQJ+/y1zWCG8AKi4sbA+ftDtPinsHccsIpQmOrP6JXOg1IZ0crVPj+3q9O9Hy7S4yfQRalm/dZcgWUNKXb3KwMzcrWd+M7ZkH0lsN07VqrJl2Uu4f5km9Zn4FC3dOEgqHWC/aJnaefHBpTpjIV4qTgoIkIKB5KCSmjiaoYA4QtRGScsHsSjO5VE0efnkSWKQ5+IlcDAKArEJncu70//fUSXrMRm5iD607MbCpTiuFC1a3+82Xyhyp6hxCNalYGuGOsha8nX9T5jl+0jLqihRVKDFXZrQPoffzX9fmDOYX9YhOMCqZfyfkp43HLiC2RshjgZ2HEmKKL2bijzWGKzH75oH2pMHTxaGnaphLqJeU7aC0L39yvk+xH5DmZRnShSSa8VbkstVpq0+oJ/pvngkIuJgwlLQPoXkjmVjIRAGR6y1Z0witxi5XM=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3778.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(76116006)(5660300002)(186003)(2906002)(8676002)(316002)(83380400001)(966005)(91956017)(86362001)(6506007)(53546011)(122000001)(508600001)(6916009)(38070700005)(71200400001)(6512007)(2616005)(33656002)(26005)(38100700002)(36756003)(7416002)(64756008)(4326008)(8936002)(66476007)(54906003)(66946007)(66556008)(66446008)(7406005)(6486002)(207903002)(219803003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <2071D721030A014EB392D124A2156C7A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2834
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0e81867c-1d88-4d7d-5504-08d9aa849475
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ytIGG6sD14+MG+dRrcGcaJaWJ5tdVd4BaSuAkrOXMnS+v5ELnOf5dUv2cR95Ko8lBD5PSPUamLmwyBOsS0GVBRsFUDXNKZPCkf3fvnPr9jbGVM5W7Xe70FM41jdI9AmLM+YGVpZGWzKTc+I0Kcyvd+jSBrswIqOvyFdw8KIN6ffQlV2dG2TEKlijFif3pdUnRJkp7ZNgAUhClaRPQWsU7+UkVH0rWyxOGJJbKpHShW2MnCWinhjlxs3nMVrNOxmzSSRAippWL/Yk4X65Qui+S7lBEyNP7RNt/8476O3qPdOk/GguRxIwBiuhY+wpixXgewTZvolCxVe9dyip03KinZuwtDFuILDbvNTLRYUoyarwX66wLLNT4ooF4Wa3xXoSIUuC9j8PcEPfyFr+UW0UNd7dVufMR8PwTsxfRuaJjeC9Gh8co8IR0jK8YLAPh/8veZrxKsnKrmHRaN7KhSUrxCAPoKewfPLeQC5cE2/T1qHk+VSfzh9vT83KWUdhyY13pg3MTTYB7sLtqUWv3LWjEPJRPJwiOe6NXwQzAKYeU76wpVA6Wh3H2leQeHGrt+D0C1ey6gY4+vg9GRgv2V9u4YDiZLUiG+lhnwL+ilDgmXBhCO6ytoQgPpPP3lDKskrDElNJHxJJvVqloDIFUl9GZSdjn3kxeSUu4oG0Whd08i/B70MQDfxAYvzQYcLCEPNs7sLqhi3qsErichWIfTPnIdNi5SDThJUboBhzl1CM+8qQS3LKO/eNQvMBvS2ZlCaTtVWgyjcqCftuJ3wnb6dXPZGDdSN1wLhWCRDLCpaji4ijRMfIqTe75F/u9ZTWoh8DJi/xxib5PfDR5C0brr3/TGkqLw6xIYFDuo+0xNKgwg5ejoCXdJgFWbzLn56hO0J6
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(70206006)(70586007)(5660300002)(86362001)(8676002)(6486002)(316002)(966005)(336012)(2906002)(508600001)(8936002)(2616005)(54906003)(186003)(83380400001)(4326008)(26005)(47076005)(36860700001)(6506007)(82310400003)(6512007)(356005)(6862004)(36756003)(81166007)(53546011)(33656002)(219803003)(207903002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 11:14:40.2310
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f2c9b728-3185-4182-aa21-08d9aa849d74
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7202

SGkgUm9nZXIsDQoNCj4gT24gMTggTm92IDIwMjEsIGF0IDEwOjM3LCBSb2dlciBQYXUgTW9ubsOp
IDxyb2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiBUaHUsIE5vdiAxOCwgMjAy
MSBhdCAxMDowMTowOEFNICswMDAwLCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4gSGkgUm9n
ZXIsDQo+PiANCj4+IA0KPj4+IE9uIDE4IE5vdiAyMDIxLCBhdCAwODo1OCwgUm9nZXIgUGF1IE1v
bm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOg0KPj4+IA0KPj4+IE9uIFdlZCwgTm92
IDE3LCAyMDIxIGF0IDAyOjA3OjUwUE0gKzAwMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+
Pj4+IEhpIFJvZ2VyLA0KPj4+PiANCj4+Pj4+IE9uIDE3IE5vdiAyMDIxLCBhdCAwOTo1MywgUm9n
ZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6DQo+Pj4+PiANCj4+Pj4+
IERvY3VtZW50IHNvbWUgb2YgdGhlIHJlbGV2YW50IGNoYW5nZXMgZHVyaW5nIHRoZSA0LjE2IHJl
bGVhc2UgY3ljbGUsDQo+Pj4+PiBsaWtlbHkgbW9yZSBlbnRyaWVzIGFyZSBtaXNzaW5nLg0KPj4+
Pj4gDQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0
cml4LmNvbT4NCj4+Pj4+IC0tLQ0KPj4+Pj4gQ0hBTkdFTE9HLm1kIHwgMTEgKysrKysrKysrKysN
Cj4+Pj4+IDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspDQo+Pj4+PiANCj4+Pj4+IGRp
ZmYgLS1naXQgYS9DSEFOR0VMT0cubWQgYi9DSEFOR0VMT0cubWQNCj4+Pj4+IGluZGV4IGFkMWE4
YzJiYzIuLjhiMGJkZDljZjAgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9DSEFOR0VMT0cubWQNCj4+Pj4+
ICsrKyBiL0NIQU5HRUxPRy5tZA0KPj4+Pj4gQEAgLTIxLDYgKzIxLDE3IEBAIFRoZSBmb3JtYXQg
aXMgYmFzZWQgb24gW0tlZXAgYSBDaGFuZ2Vsb2ddKGh0dHBzOi8va2VlcGFjaGFuZ2Vsb2cuY29t
L2VuLzEuMC4wLykNCj4+Pj4+IC0gcWVtdS10cmFkaXRpb25hbCBiYXNlZCBkZXZpY2UgbW9kZWxz
IChib3RoLCBxZW11LXRyYWRpdGlvbmFsIGFuZCBpb2VtdS1zdHViZG9tKSB3aWxsDQo+Pj4+PiAg
bm8gbG9uZ2VyIGJlIGJ1aWx0IHBlciBkZWZhdWx0LiBJbiBvcmRlciB0byBiZSBhYmxlIHRvIHVz
ZSB0aG9zZSwgY29uZmlndXJlIG5lZWRzIHRvDQo+Pj4+PiAgYmUgY2FsbGVkIHdpdGggIi0tZW5h
YmxlLXFlbXUtdHJhZGl0aW9uYWwiIGFzIHBhcmFtZXRlci4NCj4+Pj4+ICsgLSBGaXhlcyBmb3Ig
Y3JlZGl0MiBzY2hlZHVsZXIgc3RhYmlsaXR5IGluIGNvcm5lciBjYXNlIGNvbmRpdGlvbnMuDQo+
Pj4+PiArIC0gT25nb2luZyBpbXByb3ZlbWVudHMgaW4gdGhlIGh5cGVydmlzb3IgYnVpbGQgc3lz
dGVtLg0KPj4+Pj4gKyAtIHZ0cG1tZ3IgbWlzY2VsbGFuZW91cyBmaXhlcyBpbiBwcmVwYXJhdGlv
biBmb3IgVFBNIDIuMCBzdXBwb3J0Lg0KPj4+Pj4gKyAtIDMyYml0IFBWIGd1ZXN0cyBvbmx5IHN1
cHBvcnRlZCBpbiBzaGltIG1vZGUuDQo+Pj4+PiArIC0gSW1wcm92ZWQgUFZIIGRvbTAgZGVidWcg
a2V5IGhhbmRsaW5nLg0KPj4+Pj4gKyAtIEZpeCBib290aW5nIG9uIHNvbWUgSW50ZWwgc3lzdGVt
cyB3aXRob3V0IGEgUElUIChpODI1NCkuDQo+Pj4+IA0KPj4+PiBNaXNzaW5nOg0KPj4+PiAtIGNw
dSBJRCBzYW5pdGl6YXRpb24gb24gYXJtNjQNCj4+Pj4gLSBmaXggMzIvNjRiaXQgdnJlZyBlbXVs
YXRpb24gb24gYXJtNjQNCj4+PiANCj4+PiBDYW4gSSBnZXQgYSBiaXQgbW9yZSBpbmZvcm1hdGlv
biBhYm91dCB0aG9zZSBpdGVtcz8gSnVzdCBhIHBvaW50ZXIgdG8NCj4+PiB0aGUgY29tbWl0IG1l
c3NhZ2VzIHdvdWxkIGJlIGhlbHBmdWwgc28gdGhhdCBJIGNhbiB0cnkgdG8gd3JpdGUgYSBtb3Jl
DQo+Pj4gY29tcHJlaGVuc2l2ZSBlbnRyeSAob3IgbWF5YmUgaXQncyBqdXN0IG1lIG5vdCBrbm93
aW5nIGFueXRoaW5nIGFib3V0DQo+Pj4gQXJtIHRoYXQgZmFpbHMgdG8gdW5kZXJzdGFuZCBpdCku
DQo+PiANCj4+IEkgYWdyZWUsIHRoZSB0ZXh0IGlzIG5vdCBxdWl0ZSBjbGVhciwgSSB3aWxsIHRy
eSB0byBjb21lIHdpdGggYSBiZXR0ZXIgb25lLg0KPj4gSW4gdGhlIG1lYW50aW1lIGhlcmUgaXMg
YXJlIGxpbmtzIHRvIHRoZSBzZXJpZXM6DQo+PiBodHRwczovL3BhdGNod29yay5rZXJuZWwub3Jn
L3Byb2plY3QveGVuLWRldmVsL2xpc3QvP3Nlcmllcz01MzU4MDUmc3RhdGU9Kg0KPj4gaHR0cHM6
Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L3hlbi1kZXZlbC9saXN0Lz9zZXJpZXM9NDc3
MTUxJmFyY2hpdmU9Ym90aA0KPiANCj4gVGhhbmtzLiBJJ3ZlIGFkZGVkOg0KPiANCj4gLSBDUFUg
ZmVhdHVyZSBsZXZlbGluZyBvbiBhcm02NCBwbGF0Zm9ybSB3aXRoIGhldGVyb2dlbmVvdXMgY29y
ZXMuDQpZZXMNCj4gLSBIYW5kbGUgcmVnaXN0ZXIgYWNjZXNzZXMgYXMgMzIvNjRiaXQgb24gQXJt
IGRlcGVuZGluZyBvbiB0aGUgcHJvY2Vzc29yDQo+ICAgYml0bmVzcy4NCg0KSSB3b3VsZCBzYXk6
DQotIEZpeCBjb3Byb2Nlc3NvciByZWdpc3RlciBhY2Nlc3NlcyBvbiBBcm0gdG8gdXNlIHRoZSBw
cm9wZXIgMzIvNjRiaXQgYWNjZXNzIHNpemUuDQoNCkJlcnRyYW5kDQoNCj4gDQo+IExldCBtZSBr
bm93IGlmIHRoYXQncyBub3QgYWNjdXJhdGUuDQo+IA0KPiBSb2dlci4NCg0K


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 11:19:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 11:19:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227349.393194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnfSD-0001YB-Mz; Thu, 18 Nov 2021 11:19:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227349.393194; Thu, 18 Nov 2021 11:19:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnfSD-0001Y4-Jt; Thu, 18 Nov 2021 11:19:45 +0000
Received: by outflank-mailman (input) for mailman id 227349;
 Thu, 18 Nov 2021 11:19:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnfSC-0001Xy-58
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 11:19:44 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6cdda234-4861-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 12:19:43 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:41040)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnfS9-000hzy-1F (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 18 Nov 2021 11:19:41 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 155CA1FC53;
 Thu, 18 Nov 2021 11:19:41 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6cdda234-4861-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <439464d3-43fe-58a1-521b-0cc4eed02d08@srcf.net>
Date: Thu, 18 Nov 2021 11:19:40 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211117182603.20057-1-andrew.cooper3@citrix.com>
 <df71b9a1-9aed-d0ce-ecf1-2addc69511d1@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] x86/hvm: Remove callback from paging->flush_tlb() hook
In-Reply-To: <df71b9a1-9aed-d0ce-ecf1-2addc69511d1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/11/2021 10:45, Jan Beulich wrote:
> On 17.11.2021 19:26, Andrew Cooper wrote:
>> TLB flushing is a hotpath, and function pointer calls are
>> expensive (especially under repoline) for what amounts to an identity
>> transform on the data.  Just pass the vcpu_bitmap bitmap directly.
>>
>> As we use NULL for all rather than none, introduce a flush_vcpu() helper to
>> avoid the risk of logical errors from opencoding the expression.  This also
>> means the viridian callers can avoid writing an all-ones bitmap for the
>> flushing logic to consume.
> I think you want to clarify that you convert only one of the two ways of
> specifying "all". The other (HV_GENERIC_SET_ALL as consumed by
> hv_vpset_to_vpmask()) could also be converted, but this would be a bit
> more involved. I have no idea which of the two Windows would typically
> use, nor why there are two mechanisms in the first place.

Oh - I'd not spotted that path.  It is well hidden away from
HV_FLUSH_ALL_PROCESSORS.

Giving how windows APIs typically evolve,
HVCALL_FLUSH_VIRTUAL_ADDRESS_{SPACE,LIST} where first.  It has a limit
of 64 vCPUs, and the VpSet sparse form is clearly catering to massive
numbers of vCPUs.

I'd expect to see both paths used, so we ought to see about optimising
that too, in due course.

>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 11:29:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 11:29:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227353.393206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnfb1-0002ym-JL; Thu, 18 Nov 2021 11:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227353.393206; Thu, 18 Nov 2021 11:28:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnfb1-0002yf-Fw; Thu, 18 Nov 2021 11:28:51 +0000
Received: by outflank-mailman (input) for mailman id 227353;
 Thu, 18 Nov 2021 11:28:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mnfb0-0002yZ-Be
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 11:28:50 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnfas-00025v-0S; Thu, 18 Nov 2021 11:28:42 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227] helo=[10.7.236.15])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mnfar-0003Qg-O2; Thu, 18 Nov 2021 11:28:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=yBln7b8ZuTbuxB6/HuY2RMqTGG4fOndJLS4yNcskPDM=; b=63N39sn7LR5Vs+dA3s4PO5/HOQ
	z8FBxp7kQZl3S859H4A+csZIFXtuBJywSA2Q3Rbw//ED47xkBL0jEa18BhOvQhekwfyZNp/q29oRF
	/pl0NRi1/Onrw56UzTFBibEoyASRs9baLxrxdG8BCeEORbqkiNDGlYrU2bL3FL0iXghM=;
Message-ID: <5a76d1d7-81d6-0a3e-3ab7-0ca735ee522f@xen.org>
Date: Thu, 18 Nov 2021 11:28:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Dario Faggioli
 <dfaggioli@suse.com>, David Scott <dave@recoil.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Josh Whitehead <josh.whitehead@dornerworks.com>,
 Juergen Gross <jgross@suse.com>, Jun Nakajima <jun.nakajima@intel.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>,
 Nick Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>,
 Rahul Singh <Rahul.Singh@arm.com>, Ross Lagerwall
 <ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Shriram Rajagopalan <rshriram@cs.ubc.ca>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
 <YZYVzkaQTQ6+Rn72@Air-de-Roger>
 <31E84B55-DF77-40B5-A61E-45DC79AEC7F6@arm.com>
 <YZYs6ewhD7yBetFh@Air-de-Roger>
 <02E4A3D7-6FD7-4B48-BA66-2D62DF94003C@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <02E4A3D7-6FD7-4B48-BA66-2D62DF94003C@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 18/11/2021 11:14, Bertrand Marquis wrote:
> Hi Roger,
> 
>> On 18 Nov 2021, at 10:37, Roger Pau Monné <roger.pau@citrix.com> wrote:
>>
>> On Thu, Nov 18, 2021 at 10:01:08AM +0000, Bertrand Marquis wrote:
>>> Hi Roger,
>>>
>>>
>>>> On 18 Nov 2021, at 08:58, Roger Pau Monné <roger.pau@citrix.com> wrote:
>>>>
>>>> On Wed, Nov 17, 2021 at 02:07:50PM +0000, Bertrand Marquis wrote:
>>>>> Hi Roger,
>>>>>
>>>>>> On 17 Nov 2021, at 09:53, Roger Pau Monne <roger.pau@citrix.com> wrote:
>>>>>>
>>>>>> Document some of the relevant changes during the 4.16 release cycle,
>>>>>> likely more entries are missing.
>>>>>>
>>>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>>>>> ---
>>>>>> CHANGELOG.md | 11 +++++++++++
>>>>>> 1 file changed, 11 insertions(+)
>>>>>>
>>>>>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>>>>>> index ad1a8c2bc2..8b0bdd9cf0 100644
>>>>>> --- a/CHANGELOG.md
>>>>>> +++ b/CHANGELOG.md
>>>>>> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>>>>> - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
>>>>>>   no longer be built per default. In order to be able to use those, configure needs to
>>>>>>   be called with "--enable-qemu-traditional" as parameter.
>>>>>> + - Fixes for credit2 scheduler stability in corner case conditions.
>>>>>> + - Ongoing improvements in the hypervisor build system.
>>>>>> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
>>>>>> + - 32bit PV guests only supported in shim mode.
>>>>>> + - Improved PVH dom0 debug key handling.
>>>>>> + - Fix booting on some Intel systems without a PIT (i8254).
>>>>>
>>>>> Missing:
>>>>> - cpu ID sanitization on arm64
>>>>> - fix 32/64bit vreg emulation on arm64
>>>>
>>>> Can I get a bit more information about those items? Just a pointer to
>>>> the commit messages would be helpful so that I can try to write a more
>>>> comprehensive entry (or maybe it's just me not knowing anything about
>>>> Arm that fails to understand it).
>>>
>>> I agree, the text is not quite clear, I will try to come with a better one.
>>> In the meantime here is are links to the series:
>>> https://patchwork.kernel.org/project/xen-devel/list/?series=535805&state=*
>>> https://patchwork.kernel.org/project/xen-devel/list/?series=477151&archive=both
>>
>> Thanks. I've added:
>>
>> - CPU feature leveling on arm64 platform with heterogeneous cores.
> Yes
>> - Handle register accesses as 32/64bit on Arm depending on the processor
>>    bitness.
> 
> I would say:
> - Fix coprocessor register accesses on Arm to use the proper 32/64bit access size.

I would suggest s/coprocessor/system/ because the changes was targeting 
arm64.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 11:59:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 11:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227363.393216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mng4W-0006BI-1K; Thu, 18 Nov 2021 11:59:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227363.393216; Thu, 18 Nov 2021 11:59:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mng4V-0006BB-Ui; Thu, 18 Nov 2021 11:59:19 +0000
Received: by outflank-mailman (input) for mailman id 227363;
 Thu, 18 Nov 2021 11:59:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mng4U-0006B5-VT
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 11:59:18 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f4a5a93a-4866-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 12:59:18 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-33-3Cz3lhkeOS-lSc6F6OjD6A-1; Thu, 18 Nov 2021 12:59:15 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6176.eurprd04.prod.outlook.com (2603:10a6:803:f6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 11:59:13 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 11:59:13 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0006.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::19) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Thu, 18 Nov 2021 11:59:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4a5a93a-4866-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637236756;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=4H8f2KQLVi+GNJQIZb64/6x21piCuM4EH/czGViIVx0=;
	b=LmmyyFbvxs/HF4NxkeuGFjyoBtG0fuzdvq51lIc3V8X20IfcKhVrlQ3ePVGPy5lsWHRZ86
	LeQjnmXqtwBn8IbhlLcFx8r4uQDQbymiWZYjv5pTUMMAMdeF02VpO1SF7f1+q7Dgrqa8wA
	XCIswoR153WFnH6yCMssqgH2f/4SMRQ=
X-MC-Unique: 3Cz3lhkeOS-lSc6F6OjD6A-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mYWkwFSH90baTQ2QwHyRZgvwRdNKKqh6IVMnOfENnzWdPM9dxevSXIH0TVysZ6IursjGVES7+pLRutFWGv3Gj1Vo7wIFYVO47hxLZQQYzWCTp5XRRJlKMna0RG8Ajp8zKU4MEvSW0dXDVz3rVEdVR0T1/uOQYGEJtYtDrGoUbP5j4hxCPRixwXGxV/hh00c+imRm89aZ8p7envrDV/mj4hRpNVA1yYHaqmBneI/UAAoFMWHEEAij03oRgc3JoPbCBVowm64M07GM8WA3zLHNSEvVC2aNlRNlFDgdhag6jfnyBkIP84lQZKzy4pHw8sHG66NWwEHxg89K41BcEeG5Sw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xEIAbidNzS608OXD69nwjT0U5nhqnovo34e2SLoW5lc=;
 b=YQNrb2zYImw8/+LiahL0mKMh4msLfzruEHxfLPUajzzQYH/f6EJOFgyraPD4prIV72xzwthFfC7gdo/AYE1/+FNJCfEyyYfQxRHIzihE8XZEKU7c/Qhbueuw5qgyxg6RQOplmeOuB/bp+S6aTtTvsqNRhodfQ+9I9r9fLMs8UmFJI9NFuvmBIZ7CEEQIiG4IhQpFXMy8wMqCohKC+7qbDPta7iDmU2BrA1G85oJfikMHaMPGpwVizMGfw5D2uhUupPQwUlw7Kwhmoh+pfy506XqcNQXC3nNgGTzyXsypZPPv+XFe7s26N3Uf3nxZqBDuJdeoWzzr8sVY63CXNpWbTg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4c3b8d67-70e6-294b-5fea-a63b5a5eb77b@suse.com>
Date: Thu, 18 Nov 2021 12:59:12 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 4/5] xen/xsm: Improve fallback handling in xsm_fixup_ops()
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-5-andrew.cooper3@citrix.com>
 <e2a68ed1-e7b3-0862-65d6-0f0e1ca454c3@suse.com>
 <1a9aae9f-fbe0-7c12-3a3c-222583a52b00@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <1a9aae9f-fbe0-7c12-3a3c-222583a52b00@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P194CA0006.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:90::19) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9b9a529c-102f-44fe-e764-08d9aa8ad6d9
X-MS-TrafficTypeDiagnostic: VI1PR04MB6176:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6176389DF9CD635D812D1CB6B39B9@VI1PR04MB6176.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qAI2pH0dIRmVnjsNVmU/hIJf9tA9ODmJWTotAs5Wfmw7I7dMXpXA745Vv1iEosyIOgMCJuSXhc3tUOYc7qSduZvyImVo3vDriQ3w6CMSAJLUYHnARKA2OHP6FzwgXhKj04s/X2pVFxi6hQeWLT5WWQXNOsgmjDEj+sc16d4YW9pj6wCWWsKR5b7vKwFkORdnVEmXJ61r5xXS44arZaMit1qLSnJn8E+qzxe3PZLKHBId3ROk+Lo1ww8WLvAVGytO7ShbvxPoYkTvHYO0000Mr6G/pMQaZUTFddRXelZtDgoKQsMvhlsZ4e0PrZrtexZjMsjpxjVnWzVAIDndwB7oOws2rrH9zBEZ/BA4Jo0h4YX4uFabY7nwsVAlRL2s80ER2w7RE1E6AuDQVmwKtiqAovQnuPnODm2cnRbRwa6ZCRx9i8oNteA3xKZZ6h0O2egUitfOAXtS0SY75GOZCta6vncyU1skoTfT0BgiZq/5BLNhmqk0uPFBBnSQIMiinJpvYAFCKpJYx/BVJVvXzpQRKKhjs8QEaFuWRNqB0lnTJK6C90JNm0JYatUF2S5XyMJsNnhiAlcyKjkMWzcXGIkuSpt8pjx/wXwjX+v2aFtmcJsuBC6exgf0wWGufxHY83EljXZfDUZFhtMckWUF1tKSMmjVRIbd5towmGrWhzkbAkp6+HDkiSgHI0hHOFYPMR6oqbQoq8CVzLHVpcS7hq4JVqEqPHmbx8tw604pa4X8mvEepf6IS9ymZEDA9aghW2xw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(2616005)(31686004)(956004)(26005)(38100700002)(8936002)(8676002)(31696002)(54906003)(66476007)(186003)(16576012)(66556008)(2906002)(36756003)(110136005)(5660300002)(66946007)(53546011)(86362001)(316002)(6486002)(4326008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?sMtwYmEAFnGwjsqVwFxHdLd2L2R72Vt/E98wZV4Hjb0s6phjClqUgDRljyu2?=
 =?us-ascii?Q?D7iS5ioYs+5Q8pTZEr6dsgXERqIC84EwvZtZA7D/mmh9H2cyEzAxZ3Hjg39j?=
 =?us-ascii?Q?llNQ5EIef/7MatcCQZp5n86EnmAFHc39mcbPcTpENkHhB/sYkLLgAn6EEMBa?=
 =?us-ascii?Q?6ukHXAYErRGI4XgiG2LmV1zOliPY0AiufHg6wXZzrwkjiwvr6RTnNiQ8TrUA?=
 =?us-ascii?Q?YMkUQDZZ5aChF+vOUjeg8T2VnDRVLmOms2vvPqCwmQzIHakmer83CQ+wrCws?=
 =?us-ascii?Q?++tjPaNRyxEJuhO4dlkA6PXy0FqnKVacj1UXxTZH+h6+ckvmVw70xo7ZzTHW?=
 =?us-ascii?Q?dQp4xQy/mmTljWSIfs1OorXR258pvJmc1UXKSy7YplwNkAq873T/kB/AdTC1?=
 =?us-ascii?Q?T9myfU9Vugn0TCfyvVqDtsqWnq8Vf8IejBT5bnS6FBUT/O5LXTCzzmVK/P0b?=
 =?us-ascii?Q?w+DBCkL4PARvEzji0PNr2sv24knGq/UNkkOzxTVkUZzMW1ZV6ufd/VNg3xF/?=
 =?us-ascii?Q?kd21aJUWWNnAUCTdu5YmpQ6xc/iqE2wmNs8bklS6MbwnslOzjDKXYdF1lNdw?=
 =?us-ascii?Q?dkeYwzF73/euUK5bNpnZ1Z2okmhEI6ZTmw9mzuhGlygkRpCqP5BAJy6lUmI7?=
 =?us-ascii?Q?07pQ25LekEfE5IIZnYgkwO4Oq6/upG4ICjN9EbPSm8yrZx3d6GCMgRAvbNzj?=
 =?us-ascii?Q?jAPsw96Xl91/j/jWt5b2lJJzRc/BCXlB5gvPZxgAMQKXhhFHiCzIO1Gb85p4?=
 =?us-ascii?Q?X3MKHolfRwImkEVdUycIA1NtqbanEslvDJWExtTsdZziVW4Bg1DZjTUTUMkY?=
 =?us-ascii?Q?rL96Ow2ScergTFAbu0aEkrfg2EHUc5P49hiFmvRd0xAu1hrrnyN+rp/nI/pd?=
 =?us-ascii?Q?u3YBSk5Dc+97DWU9o2Zf8NzfZ2R/ZHSZdOj/SuS19qSJax9Hs47+NrLsZ0hs?=
 =?us-ascii?Q?kCaJKNJDJuI4QVgRR6N5ckxhUOwmYeKFlkkxy1dqFI2w+JChmOmGSyL5DyJ+?=
 =?us-ascii?Q?xyF4htt3T9zYrirdoy10C+0ZeDSaVHwKJA0nP6BG8948wBASU1lnfh1aRKyk?=
 =?us-ascii?Q?C9n3w1BKM1WTQhE6gkJA+F+b9O9TZsE1exD6h7H17gsNSaxmbN6d4AC45UFi?=
 =?us-ascii?Q?OEo5xFWIyg95mFdtEeNQqKvxxRSWdkHZpNWJZVP2Ox0JD6mrN6fZqwhUovqE?=
 =?us-ascii?Q?e0T6ixl48Vg8FkTemDqgSwGCmRV/Thkz5dv4OC31s9BCGU+CT8VU9n9lIDny?=
 =?us-ascii?Q?4UF3vWiDPjroOznKUHUNHdPWj3t9m7JDqU/pQgpv9NfbRkg9NWawjCuX1nZH?=
 =?us-ascii?Q?SSm4vg0zE9GlvEnrjvNI1wNxNZpjthsF2GcQV8bUChqmpwIrfeFSqw/AM8C3?=
 =?us-ascii?Q?iass3by/od/VimyYzua7YBq42YdLAeHY8h3GUP4cTUSjPfR78kdx1P/vAPZi?=
 =?us-ascii?Q?/Mj6BrsifzsKCOmEs45yKxVGgUPqHPWSwqwK6sekql4ph7ADfqsr85u827kQ?=
 =?us-ascii?Q?Ltgw6objaasT9T4hxwXPCdzK9vfUDThgeyGOkJ9yabvpKfNXkvBDtV6+etII?=
 =?us-ascii?Q?3Nfy7Ffn+aH+8dPv7PlZLiUpd1wJc2ibkOf2J8esQ5LXD2+II4X6zNklo5sd?=
 =?us-ascii?Q?B2LxbEVAqI06pZyAaBjNr7I=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b9a529c-102f-44fe-e764-08d9aa8ad6d9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 11:59:13.8178
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9J0es1qRlAJ4ZSSYUucylkXhsLojURssarChRbkT/Q2wpy1Zy66oAfZ+va052+EtYwobSaR4S8LdWgdxE5KNVg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6176

On 17.11.2021 23:37, Andrew Cooper wrote:
> On 08/11/2021 09:04, Jan Beulich wrote:
>> On 05.11.2021 14:55, Andrew Cooper wrote:
>>> +void __init xsm_fixup_ops(struct xsm_ops *ops)
>>> +{
>>> +    /*
>>> +     * We make some simplifying assumptions about struct xsm_ops; that=
 it is
>>> +     * made exclusively of function pointers to non-init text.
>>> +     *
>>> +     * This allows us to walk over struct xsm_ops as if it were an arr=
ay of
>>> +     * unsigned longs.
>>> +     */
>>> +    unsigned long *dst =3D _p(ops);
>>> +    unsigned long *src =3D _p(&dummy_ops);
>> I'm afraid I consider this an abuse of _p(): It hides casting when
>> that would better not be hidden (and there's then also a pointless
>> step through "unsigned long" in the casting). I suppose this is
>> also why "src" didn't end up "const unsigned long *" - with spelled
>> out casts the casting away of const might have been more noticable.
>=20
> I've changed to a const pointer, but opencoding _p() wouldn't make it=20
> any more likely for me to have spotted that it ought to have been const=20
> to begin with.
>=20
> But ultimately it comes down to neatness/clarity.=C2=A0 This:
>=20
> unsigned long *dst =3D _p(ops);
> const unsigned long *src =3D _p(&dummy_ops);
>=20
> is easier to read than this:
>=20
> unsigned long *dst =3D (unsigned long *)ops;
> const unsigned long *src =3D (const unsigned long *)&dummy_ops;
>=20
> Fundamentally, I can do either, but I have a preference for the one=20
> which is easier to follow.

One option would be to at least make _p() cast to const void *.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 12:08:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 12:08:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227368.393228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mngCu-0007is-3a; Thu, 18 Nov 2021 12:08:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227368.393228; Thu, 18 Nov 2021 12:08:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mngCt-0007il-W1; Thu, 18 Nov 2021 12:07:59 +0000
Received: by outflank-mailman (input) for mailman id 227368;
 Thu, 18 Nov 2021 12:07:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mngCs-0007ib-BN; Thu, 18 Nov 2021 12:07:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mngCs-0002mh-5e; Thu, 18 Nov 2021 12:07:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mngCr-0005ky-Sw; Thu, 18 Nov 2021 12:07:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mngCr-0001NU-S1; Thu, 18 Nov 2021 12:07:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4Zb3mLa98c0cKIpm7qbes8pQo2QLwkw3uWQ3j8BSEEA=; b=hxMG3kLnrOF3zV1rE8VxA4p6qp
	ohbVVQF5toZj1nJWjGoZcyLCqKacPzkS3OGQh1bsq+a+71nv+EL5QVuATkuU3YGnmtJ20Q1/jReT0
	uilvXWbfR5z+bNjmrT0/nDYY/tArVc5tvwxm0efcXPd/WMuBNd5OJF7CNGWBQplbiINc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166182-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166182: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=bbbf774fb2c104e374313b7489834df88a08fbfb
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Nov 2021 12:07:57 +0000

flight 166182 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166182/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              bbbf774fb2c104e374313b7489834df88a08fbfb
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  496 days
Failing since        151818  2020-07-11 04:18:52 Z  495 days  481 attempts
Testing same since   166182  2021-11-18 04:18:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 83587 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 12:58:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 12:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227380.393242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mngzU-0004JD-LD; Thu, 18 Nov 2021 12:58:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227380.393242; Thu, 18 Nov 2021 12:58:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mngzU-0004J6-Go; Thu, 18 Nov 2021 12:58:12 +0000
Received: by outflank-mailman (input) for mailman id 227380;
 Thu, 18 Nov 2021 12:58:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mngzS-0004J0-Kk
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 12:58:11 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d358c38-486f-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 13:58:09 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AIBxM84029302;
 Thu, 18 Nov 2021 12:58:05 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cdk3n91mk-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 12:58:04 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6210.eurprd03.prod.outlook.com (2603:10a6:20b:15f::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 12:57:33 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 12:57:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d358c38-486f-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AHKSmrPHZii7roUUjt0yDrcze6JSWKslwu3/KSuqmrORwRrxb0pzdp/O6yLlCq1KSvRQRrHujWtzO/eqmKxgdBQoQU7ssI3lFki3e+jJ/jvu2ah2oGfNDTTWoibPsLajgAPfje9G5PNznzDr2baTf5kcIwPT49KrpGS6NN2KHO9cRfwH/8i2lDo7ghViVJhkM1zDu/e3gg1KwtjGfkiKLHN3fa8e5EGYKyZcNYsQOuPVkwrrP+JmhZR7VAKeryeA3omAa5ooY6g/JyxMQ8xScVFyjCc28PXpQryCEoHGYSVFjvvs3IIFnrtoyFd9YFXvhOuqtPdt9DzOjG5sEYNr9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gZtzUd+RnnZy0RfKzNGaaaENRu5r2z3qxsQzfpKFpP4=;
 b=ICYXHziK0zHEC5GhaQgEI478k3eavHmdkBNt0mMGGh0R5OVlAZRx1VdlwqtIpTHMOaax+PhL6/1fOrOB80VM5/tKglfmEXnLQkYbIW10TWW7IYBMGn8sO4ayUPy5E+cLd7uFvOiGEBFoj2MK5hhqVjSs6Yu8jr5NAAAGvA4bEU7RdHC1sDFHAkG6WvOFxPL3ikwzWFZklJ9wSQAaieUwnLCYXaJD/+nxcB9E2yKBqsG0TeDz6fnijYawLC4BJNnUsReZIPBmoZhc7Cks8uofaOJNzyXmX5zIh9sUZ2uKKaJsxp6gHUs1nDlV90MjqEq3LGc9KaOJwk0cdYhiyyDctA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gZtzUd+RnnZy0RfKzNGaaaENRu5r2z3qxsQzfpKFpP4=;
 b=DfNAxXZaFWgE9xJ3NrG8oAYDZNtOY4Z4bbg33dJnbztUGGY8usz8mLiggN+qPGgfgPa5p2A/C2FKTkmrBPYcH41ZlcZhhnrpZ9jRzMtklLqm/p1hthAEnlcTOAbyjCJ+F0KY0XRfwXMi87esFUcyc82Qt5E2yZanjDmPux3ezs4cJP7UOVWi4gr8HkuyPvKt73mCHTDp9aya7HaHMoCrF+4qxyeG4H4bYzAfM0ex8eHGHGcwuBI9nHoK0m90JsWhqtZRc7ygRlAwokkeSu0oa9MUuzdkCGFmYyJCgTj7uypXgjCG+hqDZ81UPyPkaLqCOP3amipQ/1qbv2MF1gbb3A==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>, Jan Beulich <jbeulich@suse.com>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awE30EAgAD09oCAAAgGAIAABgyAgABY44CAAAjHAIAAAz2AgAA834CAAs9/AA==
Date: Thu, 18 Nov 2021 12:57:33 +0000
Message-ID: <4e6828d7-512c-2217-8c9a-a45f85a9d07d@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <5bd70935-4968-b8d4-4d6c-7ec0fc54ee6a@suse.com>
 <4e12f7de-19cb-bc79-4df0-6fb52538a944@epam.com>
 <5b47cd28-5264-9f24-38a0-e9dec6c2c1b4@suse.com>
 <b87a51d2-cd96-d0ac-8718-7f2b2feed531@epam.com>
 <ad01ebdc-7fb8-3c76-d953-08b73b4b0c25@epam.com>
 <fc1fdee4-e567-038f-a90b-127548a8da02@suse.com>
 <55a95ff3-6717-780b-25f9-c43728b6270b@epam.com>
 <8168668f-c89b-cc5b-295f-1d472164a5f6@xen.org>
In-Reply-To: <8168668f-c89b-cc5b-295f-1d472164a5f6@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a7e5f218-a888-45cf-5911-08d9aa92fcf6
x-ms-traffictypediagnostic: AM0PR03MB6210:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB6210EDC1F107C732FC94654AE79B9@AM0PR03MB6210.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 L1x7/d4TQNnUKTsWPwqo0dTNTjMe/763Ouoib/NSpGwHQM1bhKicpOSG9XgqKHdzLlclIhqkhzo5o9nxetatsfQwGzyhTd+tAMPeLGkt3mGWfmQDB4UPNuIEG2WLG5/796CLo8lIVkiJJrUzAmK+AtiK6YDHb3h/d2R8/DS7mCKQIRI0ziyR8Q1Bb4CVwDbUWp4z7NzhWunXuM30tzPkiYTY1NXt3EY1Ots5rlZfxv+ps7o9pGOR0gZzmvaDX76JrVpgKwkQ+EhnsFL5hbrf08fZT1h8q/boBkI+AjZygv2bYEQnGq9yE8leflXPOgwRpm1lXUXALE4HT4fa4loBPH8jQefvdqDIrbFXlP7iL4KsDpxeWWNlvqx+AZHJ4GTX0urFtWD49UYSkPHz1hrqgVn+otZncqREcy3rcmYG81S9RF7OkWYCdXF0MMPW7qCaLN/cCEeLKs+soMRmdk53U7Ig9bMjO3NTgXiyMvM0ItFJDjByPcidqaKgc2csjNNLkMpIlXXMIbR0R+vIoHscGvgppzUod0qnJossz+h9j2IcXrWtu7MOVPxj7WkTT8x+lhkjOnbBj0TNIkDn5VhcNR4HHMELmDMyLf2t/ZFKf61nrg/fL0xJmQpJnZ6UQVSfTvWerltNyrW+iOY7j6myLzPfKiUTHUxt0L+WnNd1v6n2FM0jRndqxJ6eRE92NI3kWWg/7JJ6nzMZV6Pnm26g5cNQ93hSX045Zli7p389+5jMqJTuPZPj5R9/ZRswY5PP
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(316002)(54906003)(110136005)(6506007)(508600001)(53546011)(4326008)(86362001)(122000001)(36756003)(83380400001)(5660300002)(38100700002)(7416002)(6512007)(71200400001)(2906002)(107886003)(31686004)(186003)(2616005)(91956017)(76116006)(38070700005)(6486002)(26005)(66446008)(8936002)(64756008)(8676002)(66946007)(31696002)(66556008)(66476007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?akl1bDdHSE80aXZzTXpyVUFpZkg1Yy9Yc2VhVWx5dDNHRHBSZG1CWGlxdHJm?=
 =?utf-8?B?TmZKbER4eHJwZUxBaVl5WGxsWmdHbEVCQUpLeHp0TnRqc3E2NXdKbXVlNWRD?=
 =?utf-8?B?ZG5BVzBLdFZ4RWtmUGhBSGg2WktUcFViVzZzYitZRHJ5WHRTdUdRU1hCL2JD?=
 =?utf-8?B?N3Z5MnhkZWJIUnBOVVZNWURtUEswU2g0VE94Z1FZUDlSajNzak9YVDNVeGhu?=
 =?utf-8?B?K0YwOHZaT0hDU2gyYlZmYzBIbmZibE0xNTgvWTB0d1hteEtmY0tubEZqU3dT?=
 =?utf-8?B?TlJuTEkxbDNzV0M3QXQ5YUhnbFVWWUc2VnRlbXpJK1RjTXJyZ3B0UCtkamVx?=
 =?utf-8?B?cjM3bjU4TllDSjJoR0E2TVNwaFdmRm5VdTFFNUZ6QW83QTdlVTR5YXRkS0tz?=
 =?utf-8?B?WXJrQWxJNDJSUDY2ekNlR3hoSTFtRlYvTGVEcjl5TFlsVjBYVmtlODM1M0xS?=
 =?utf-8?B?Q3RDWlY3Ujl3c0pqUHNMc1BiUHhwTnNaVGRUWHJIenNNSGRJNFI0QnVYUE1X?=
 =?utf-8?B?TDJlRW9oQ0RicmJhTjNrZGlVNTRLcGIrd3NYcTRCSkdyTTFCUDc2STZ2b21L?=
 =?utf-8?B?cDV4bjBWSzl3b3o2Y3lndDFJYjIwMGs0OUE3SGhIbVZpRnhWajJQNXlMVWdT?=
 =?utf-8?B?NmplRzcvL3UrN05DT0NQZ25LSkNSY0dDTlBsUjZGbjZmL3pyb0VPc1IvZWZE?=
 =?utf-8?B?Zy9lVTZ5SlJoRDhWaWlQejA5aFBCdktTVXNXdFZicStKcnBJdlVTc21ZdE9r?=
 =?utf-8?B?RmkrYWJyTXJyVDZQTVJxbjRrV3ArakVsK2JrN0JPL2tpVTVkaWdyTkRKQitT?=
 =?utf-8?B?YUFaY2NPSjdCRzQvVzZRMis1VnRISWlRaFlDb0JnRnhtVnhGWDJJdFhUUmUv?=
 =?utf-8?B?endRRm4yZHg3L1pqakYzSDZiZVZ4V3ljZlduSHZVL1hvcmRGZjlRZTVVaTVL?=
 =?utf-8?B?MVUzbFJpdWg1WnFqY01GUmdlKzJZTVlJTUgrc0krbWFuTjkxTWZjcmxTbjBp?=
 =?utf-8?B?TXl2STVlQzlwZFhpa1BiczMvdjYxMzVTbGEzTDh4RDlhZDdKc080b0lObytE?=
 =?utf-8?B?R1RBbC9EMWsyWEFuNzlGbGRHOFQ0L0ZNZk9uVHJ1L1JmRC91WTYyblRRQTMv?=
 =?utf-8?B?bWtmU29NNU56Yk5EeUorV2Y2d3JrWEJidm9NUEw2Z3lLNmU2M3BhdzlkMVNz?=
 =?utf-8?B?b2ZmTFB3azdSUWxRT2ZnRFBmZlluL1ZOcXNMR0RPOUd4OEE3RGQzVEt2dTNY?=
 =?utf-8?B?NHJuRUhIRkY5ZXRvV2lDeUMrc1YrNmZIVXV3ZmZQMGhDMVk4bDFZMjJ3MWhs?=
 =?utf-8?B?Zy9HTnVOdEt0NitwWEUxRUY5NkZpa0dYV1FrRnRKbkR4MDBHemV0cEJtSGtj?=
 =?utf-8?B?M2dwWm9WeHhiMjRoQjJmZHNhVmlhN050bFdkTkRMckdZMHFkaHpsTTlSY2dC?=
 =?utf-8?B?Q0pic01RZEZTQkorek1scmM2UTE5RkZBM05JR2luLzFzZXN2TEZiUU9yQlZr?=
 =?utf-8?B?MlNTSzVsZVIrYms5MWFHQTJlVjdyb3J3YkZub0oyOCsyWmd6djFhUFZrNjYx?=
 =?utf-8?B?ZkcrNittelNnNUNHVU1CTlprdk1Cb1JFcDhLRUpVeUVvMzJnRVhYdjI0cHMx?=
 =?utf-8?B?Sm1aRXZOVGRWQ0dEZjhrVDhWOFhRcSs5RGZMZkUzQVB5Rmc0VGpEWlJ3K0Vl?=
 =?utf-8?B?alIrVzZtMXM5RGd1clZ1OVlrdnBuUDF2ZndVRmtXbjRkV0NZcjJjc3JucWht?=
 =?utf-8?B?b091UDlKMGxobmdkY3dUQW41aFdOL3ZwUDBhNGhxSkQyZm9yMGFKSHlCOG5a?=
 =?utf-8?B?d1IwMnUwd2cwMWZ1WWY3dmNTaUpDTXFHbnB4ZFh4LzBKMVVUUFAwVnBHOExE?=
 =?utf-8?B?enl1eWR4QmsvMmo0UXFhazRUTllLVy95dk1hUlhIdmFuZzF1Yi9Mdkg0NGRT?=
 =?utf-8?B?YlFXTnZ2WXBBaW5LRGgwZmwweGlnS3Z3SGdWZllWei9hUi9PVWdva211ZFpj?=
 =?utf-8?B?MHIvOUlORkhRWDY5SmxZWEIwVnF6UmhSNkdxdkZVSHZNYm5oSEZwdDdWSHdM?=
 =?utf-8?B?K1AyZTZZdENneFVDK3lLeVY0VUFNbUV1Qkt0bU5VOEUvaHJQTDRPTUlPN3o2?=
 =?utf-8?B?bnFmek1ML09TaTRqdXU3UVRSRFlUK05uWGw0WnVmcHI5c1k4Q0ZNd2Q1QVZy?=
 =?utf-8?B?cmhPZGpybzR3Y2RnQUdWTm9FZGhpS1BQUmt4SDBZSk4vbGFCRlp6NHQ3L2lL?=
 =?utf-8?B?NWxqQnRtYjkvVGQrUVFlY3RYNk9kSFNSb3dMN2xWQlpWVGxsUDVuT3JDNlVn?=
 =?utf-8?B?dDdBajNTbmlJVmQrMnozeHA0eGZIMEJPdmRYL3RZWHdVN0ZlSEpTQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A09C110230A47C419AFC12A985832006@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a7e5f218-a888-45cf-5911-08d9aa92fcf6
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 12:57:33.4480
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: I4ZRNbB+kAIFEu9Y0dcFLlQ4S2AB8PpGOPdOv9xNNyM5Q/uCYzQ6aivt0QaokOi18QGhOY+MOE3lGT0cnFPRS8K3zejOytmUr5h0nX8UWSf5nnJPMjCBhHrTJt1kJ4Sl
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6210
X-Proofpoint-ORIG-GUID: BoRL1alqCXl_nqaV0S7Yy9RYg7mBPdHE
X-Proofpoint-GUID: BoRL1alqCXl_nqaV0S7Yy9RYg7mBPdHE
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_05,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0
 mlxscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0
 suspectscore=0 mlxlogscore=928 priorityscore=1501 clxscore=1015
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180074

SGksIEp1bGllbiENCg0KT24gMTYuMTEuMjEgMjA6MDIsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRyLA0KPg0KPiBPbiAxNi8xMS8yMDIxIDE0OjI0LCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+DQo+Pg0KPj4gT24gMTYuMTEuMjEgMTY6MTIsIEphbiBCZXVsaWNo
IHdyb3RlOg0KPj4+IE9uIDE2LjExLjIwMjEgMTQ6NDEsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtv
IHdyb3RlOg0KPj4+Pg0KPj4+PiBPbiAxNi4xMS4yMSAxMDoyMywgT2xla3NhbmRyIEFuZHJ1c2hj
aGVua28gd3JvdGU6DQo+Pj4+PiBPbiAxNi4xMS4yMSAxMDowMSwgSmFuIEJldWxpY2ggd3JvdGU6
DQo+Pj4+Pj4gT24gMTYuMTEuMjAyMSAwODozMiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3Jv
dGU6DQo+Pj4+Pj4+IE9uIDE1LjExLjIxIDE4OjU2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+
Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0K
Pj4+Pj4+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVz
aGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IFdoZW4gYSB2UENJIGlzIHJl
bW92ZWQgZm9yIGEgUENJIGRldmljZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGhhdmUNCj4+Pj4+
Pj4+PiBzY2hlZHVsZWQgYSBkZWxheWVkIHdvcmsgZm9yIG1hcC91bm1hcCBvcGVyYXRpb25zIGZv
ciB0aGF0IGRldmljZS4NCj4+Pj4+Pj4+PiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBzY2Vu
YXJpbyBjYW4gaWxsdXN0cmF0ZSB0aGUgcHJvYmxlbToNCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IHBj
aV9waHlzZGV2X29wDQo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqAgcGNpX2FkZF9kZXZpY2UNCj4+
Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGluaXRfYmFycyAtPiBtb2RpZnlfYmFycyAt
PiBkZWZlcl9tYXAgLT4gcmFpc2Vfc29mdGlycShTQ0hFRFVMRV9TT0ZUSVJRKQ0KPj4+Pj4+Pj4+
IMKgwqDCoMKgwqDCoMKgIGlvbW11X2FkZF9kZXZpY2UgPC0gRkFJTFMNCj4+Pj4+Pj4+PiDCoMKg
wqDCoMKgwqDCoCB2cGNpX3JlbW92ZV9kZXZpY2UgLT4geGZyZWUocGRldi0+dnBjaSkNCj4+Pj4+
Pj4+Pg0KPj4+Pj4+Pj4+IGxlYXZlX2h5cGVydmlzb3JfdG9fZ3Vlc3QNCj4+Pj4+Pj4+PiDCoMKg
wqDCoMKgwqDCoCB2cGNpX3Byb2Nlc3NfcGVuZGluZzogdi0+dnBjaS5tZW0gIT0gTlVMTDsgdi0+
dnBjaS5wZGV2LT52cGNpID09IE5VTEwNCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IEZvciB0aGUgaGFy
ZHdhcmUgZG9tYWluIHdlIGNvbnRpbnVlIGV4ZWN1dGlvbiBhcyB0aGUgd29yc2UgdGhhdA0KPj4+
Pj4+Pj4+IGNvdWxkIGhhcHBlbiBpcyB0aGF0IE1NSU8gbWFwcGluZ3MgYXJlIGxlZnQgaW4gcGxh
Y2Ugd2hlbiB0aGUNCj4+Pj4+Pj4+PiBkZXZpY2UgaGFzIGJlZW4gZGVhc3NpZ25lZA0KPj4+Pj4+
Pj4gSXMgY29udGludWluZyBzYWZlIGluIHRoaXMgY2FzZT8gSS5lLiBpc24ndCB0aGVyZSB0aGUg
cmlzayBvZiBhIE5VTEwNCj4+Pj4+Pj4+IGRlcmVmPw0KPj4+Pj4+PiBJIHRoaW5rIGl0IGlzIHNh
ZmUgdG8gY29udGludWUNCj4+Pj4+PiBBbmQgd2h5IGRvIHlvdSB0aGluayBzbz8gSS5lLiB3aHkg
aXMgdGhlcmUgbm8gcmFjZSBmb3IgRG9tMCB3aGVuIHRoZXJlDQo+Pj4+Pj4gaXMgb25lIGZvciBE
b21VPw0KPj4+Pj4gV2VsbCwgdGhlbiB3ZSBuZWVkIHRvIHVzZSBhIGxvY2sgdG8gc3luY2hyb25p
emUgdGhlIHR3by4NCj4+Pj4+IEkgZ3Vlc3MgdGhpcyBuZWVkcyB0byBiZSBwY2kgZGV2cyBsb2Nr
IHVuZm9ydHVuYXRlbHkNCj4+Pj4gVGhlIHBhcnRpZXMgaW52b2x2ZWQgaW4gZGVmZXJyZWQgd29y
ayBhbmQgaXRzIGNhbmNlbGxhdGlvbjoNCj4+Pj4NCj4+Pj4gTU1JTyB0cmFwIC0+IHZwY2lfd3Jp
dGUgLT4gdnBjaV9jbWRfd3JpdGUgLT4gbW9kaWZ5X2JhcnMgLT4gZGVmZXJfbWFwDQo+Pj4+DQo+
Pj4+IEFybTogbGVhdmVfaHlwZXJ2aXNvcl90b19ndWVzdCAtPiBjaGVja19mb3JfdmNwdV93b3Jr
IC0+IHZwY2lfcHJvY2Vzc19wZW5kaW5nDQo+Pj4+DQo+Pj4+IHg4NjogdHdvIHBsYWNlcyAtPiBo
dm1fZG9fcmVzdW1lIC0+IHZwY2lfcHJvY2Vzc19wZW5kaW5nDQo+Pj4+DQo+Pj4+IFNvLCBib3Ro
IGRlZmVyX21hcCBhbmQgdnBjaV9wcm9jZXNzX3BlbmRpbmcgbmVlZCB0byBiZSBzeW5jaHJvbml6
ZWQgd2l0aA0KPj4+PiBwY2lkZXZzX3tsb2NrfHVubG9jaykuDQo+Pj4gSWYgSSB3YXMgYW4gQXJt
IG1haW50YWluZXIsIEknbSBhZnJhaWQgSSB3b3VsZCBvYmplY3QgdG8gdGhlIHBjaWRldnMgbG9j
aw0KPj4+IGdldHRpbmcgdXNlZCBpbiBsZWF2ZV9oeXBlcnZpc29yX3RvX2d1ZXN0Lg0KPj4gSSBk
byBhZ3JlZSB0aGlzIGlzIHJlYWxseSBub3QgZ29vZCwgYnV0IGl0IHNlZW1zIEkgYW0gbGltaXRl
ZCBpbiBjaG9pY2VzLg0KPj4gQFN0ZWZhbm8sIEBKdWxpZW4sIGRvIHlvdSBzZWUgYW55IGJldHRl
ciB3YXkgb2YgZG9pbmcgdGhhdD8NCj4NCj4gSSBhZ3JlZSB3aXRoIEphbiBhYm91dCB1c2luZyB0
aGUgcGNpZGV2c197bG9ja3x1bmxvY2t9LiBUaGUgbG9jayBpcyBub3QgZmluZS1ncmFpbmVkIGVu
b3VnaCBmb3IgYmVlbiBjYWxsIGluIHZwY2lfcHJvY2Vzc19wZW5kaW5nKCkuDQo+DQo+IEkgaGF2
ZW4ndCB5ZXQgbG9va2VkIGF0IHRoZSByZXN0IG9mIHRoZSBzZXJpZXMgdG8gYmUgYWJsZSB0byBz
dWdnZXN0IHRoZSBleGFjdCBsb2NrLiBCdXQgd2UgYXQgbGVhc3Qgd2FudCBhIHBlci1kb21haW4g
c3BpbmxvY2suDQo+DQo+Pg0KPj4gV2Ugd2VyZSB0aGlua2luZyBhYm91dCBpbnRyb2R1Y2luZyBh
IGRlZGljYXRlZCBsb2NrIGZvciB2cGNpIFsxXSwNCj4+IGJ1dCBmaW5hbGx5IGRlY2lkZWQgdG8g
dXNlIHBjaWRldnNfbG9jayBmb3Igbm93DQo+DQo+IFNraW1taW5nIHRocm91Z2ggdGhlIHRocmVh
ZCwgeW91IGRlY2lkZWQgdG8gdXNlIHBjaWRldnNfbG9jayBiZWNhdXNlIGl0IHdhcyBzaW1wbGVy
IGFuZCBzdWZmaWNpZW50IGZvciB0aGUgdXNlIGNhc2UgZGlzY3Vzc2VkIGJhY2sgdGhlbi4gTm93
LCB3ZSBoYXZlIGEgdXNlIGNhc2Ugd2hlcmUgaXQgd291bGQgYmUgYSBwcm9ibGVtIHRvIHVzZSBw
Y2lkZXZzX2xvY2suIFNvIEkgdGhpbmsgdGhlIGV4dHJhIGNvbXBsZXhpdHkgaXMganVzdGlmaWVk
Lg0KSSB3b3VsZCBsaWtlIHRvIHVuZGVyc3RhbmQgd2hhdCBpcyB0aGlzIGxvY2sgc28gSSBjYW4g
aW1wbGVtZW50IHRoYXQgcHJvcGVybHkuDQpXZSBoYXZlIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBh
cyBJIGNhbiBzZWU6DQoNCjEuIHBjaWRldnNfe2xvY2t8dW5sb2NrfSAtIGNvbnNpZGVyZWQgdG9v
IGhlYXZ5LCBwZXIgaG9zdA0KMi4gcGRldi0+dnBjaS0+bG9jayAtIGJldHRlciwgYnV0IHN0aWxs
IGhlYXZ5LCBwZXIgUENJIGRldmljZQ0KMy4gV2UgbWF5IGNvbnZlcnQgcGRldi0+dnBjaS0+bG9j
ayBpbnRvIHIvdyBsb2NrDQo0LiBXZSBtYXkgaW50cm9kdWNlIGEgc3BlY2lmaWMgbG9jaw0KDQpU
byBiZXR0ZXIgdW5kZXJzdGFuZCB0aGUgc2NvcGUgb2YgdGhlIGxvY2s6DQoxLiBNTUlPIHRyYXAg
aGFuZGxlcnMgKHZwY2lfe3JlYWR8d3JpdGV9IC0gYWxyZWFkeSBwcm90ZWN0ZWQgd2l0aCBwZGV2
LT52cGNpLT5sb2NrDQoyLiB2cGNpX3Byb2Nlc3NfcGVuZGluZyAoU09GVElSUSBjb250ZXh0KQ0K
My4gSHlwZXJjYWxscyB3aGljaCBjYWxsIHBjaV97YWRkfHJlbW92ZXxhc3NpZ258ZGVhc3NpZ259
X2RldmljZQ0KNC4gQFJvZ2VyLCBkaWQgSSBtaXNzIHNvbWV0aGluZz8NCg0KQW5kIEkgZmVlbCB0
aGF0IHRoaXMgbmVlZHMgYSBkZWRpY2F0ZWQgcGF0Y2ggZm9yIHRoYXQ6IEkgYW0gbm90IHN1cmUg
aXQgaXMgYQ0KZ29vZCBpZGVhIHRvIGFkZCB0aGlzIGxvY2tpbmcgY2hhbmdlIGludG8gdGhpcyBw
YXRjaCB3aGljaCBzZWVtcyBub3Qgc28gcmVsZXZhbnQNCj4NCj4gQ2hlZXJzLA0KPg0K


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 12:59:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 12:59:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227385.393253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnh0X-0004t2-2v; Thu, 18 Nov 2021 12:59:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227385.393253; Thu, 18 Nov 2021 12:59:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnh0W-0004sv-Ut; Thu, 18 Nov 2021 12:59:16 +0000
Received: by outflank-mailman (input) for mailman id 227385;
 Thu, 18 Nov 2021 12:59:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnh0V-0004J0-LI
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 12:59:15 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54f54e54-486f-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 13:59:14 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2056.outbound.protection.outlook.com [104.47.6.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-39-4XYjlQXIOcyqg6JnbSSGJA-1; Thu, 18 Nov 2021 13:59:13 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4382.eurprd04.prod.outlook.com (2603:10a6:803:73::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 12:59:11 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 12:59:11 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR04CA0019.eurprd04.prod.outlook.com (2603:10a6:206:1::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 12:59:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54f54e54-486f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637240354;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=l41bxwUVcb7yOacAFBOmXw9dFLExFt4wBEhMZrbrawc=;
	b=FAq6xP20ys8urPJ0mAAoAsPyEuz1kdUXHVmDO8BaTtZ4bs56WshFZYnieMP4rlqZE8ENrS
	zGmDtfaVGqcxLuahmXCgbj+LKBaJg0aKB21KILbrx+fpbRncrBXQQoI1gvHnsSR1aKg1Qh
	uYycEmbbccqyL5ygYkOslCIwIWETd5M=
X-MC-Unique: 4XYjlQXIOcyqg6JnbSSGJA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cWl887JV+3RS0XafvagLZbcMeLs7DnSvOubJTLt8hRo3v1qFbPVgkmRjumZORImvFpPFdjmAoFxbf5ukHJGAJdN/rTQ836N6XHqwHN475pnno5OJ0HbNlb7oqi/QTpQnj6oiAp8cZvyR5jYohfEzh+ELUt78fuZ1I68oawV+Exu2A7DeOIBGlpZh2aE1YHI/LRxeg16bgickHlPeYK/SRZ3wafdF3cBjYgYqX4Wd+nQCK6tD8HcM4OGV25izQeq5LfsIDX8GudyQIdAh23awiod6rDvWg6vpdErdR6QVGoh9nkhCNNANfS6cVUovD7RHG7V6s7qDV+81h97GAcQQFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x896/+HDLB8updnHKtmxVhOZ8ahF8apnlW70H+1+4uw=;
 b=IhVEGQNUpCM+16RAtPpcKnI58k3xZTZCA8iNgDcNb/7bJgkslQ6I/q84oficHzuEuOFVOprdAOrAZZ/W5aQMyTOEtjQwp5y5MGO1atK9WM2yoI2wLwa29CH15lWWlr8a3SObQPWDKfKAr0RsOhIO0hp2XtEobltYOj9vXwkv7GfMin6lXUdMlGDbj+Lx1yHw249UgJ7HV3Vm86BpDCtnXDzh7kS1Xro6W+uqAvjXN8dMonaswvhsBQ11/AYtTZDWkAiSRYL9FnKZOedQQ5j0D2nejbyjQmhK0l/o6nbybjdltrXrRyJaxrDdA//bFjlw/peiTlkycKFcXWu+7c3JeQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1c8991bf-2c8b-7309-b7e7-0bbb89db6fee@suse.com>
Date: Thu, 18 Nov 2021 13:59:10 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 5/5] xen/xsm: Address hypercall ABI problems
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-6-andrew.cooper3@citrix.com>
 <e8a9d0bf-c9d7-a1ab-f50d-7ebaffbb3f8a@suse.com>
 <ae979a87-41c0-51ec-db41-6bcc1eaa896f@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <ae979a87-41c0-51ec-db41-6bcc1eaa896f@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR04CA0019.eurprd04.prod.outlook.com
 (2603:10a6:206:1::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1a2dd935-4e15-4b68-4bd8-08d9aa93374f
X-MS-TrafficTypeDiagnostic: VI1PR04MB4382:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4382680ADDDA996ED481707FB39B9@VI1PR04MB4382.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	DfriLBg12PgVogIXjwd3r/UyiXOR/qRRnToIwnmcCbTLggbpExmZXwtZErQ0sxqJf6ICTJR7IUjw1EzOaNC1DmseImtHC+5sRwmn5VJUTVnj9nUDcPLJDDSOBNLKFtIlWae/dS5KmoLUiNOwWoJWrxub0CIcct0yX4lXT3WFdKovtTaHgnLtuOGE7PLaaBmLuic2leBVoJCEK/RKH4cBARexMewi1nE9gS+dAiQFtTdFFt/baxn3KnmwXTzervEYfv516dWm0LXSXnNnRzytUOhuHHaBKmqONfA+nv5Y4oxSfAwTWChx5ZCPoSW42SZWTbiOe8P8EA3h/r0ybXlptLoJrMtb/+n+RGkiEZUciUoRp+mMdfJ8DsPJjdML+onSpjlL0v0K+BNmwwR4Dozt9YRxuAPuYPppcXOT6JuObF0xeQmUyr2kcTK8mqR3re+8eRX6kilruHql2OH1V1uMr6EsFVN+IX+I5UWv4+HEGHsrQC/r4mswlztLHcuAExvSfYWQmGgx1/WrLcNUAUyiFyzQ4ddle0zd2hPZKKxh3f4tlYIuxptv8Y19GxPsfwvUV0WDasuacFNRi6SK0F/QrQavTeLSZvFHcn4dwp4KmCgYKanZ93rK1R5KMwyDWa8DkDUqnqstsmW+WKClL+BZo+DNVEDkD7TRBe3z9A0kw6gSAVFFfaEd8KZySMccDE4cmi+/ERm5aJxn0DEpeSYdXELd5tMQKoVSeaO+XareIrQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66476007)(4326008)(26005)(2906002)(5660300002)(53546011)(66946007)(66556008)(16576012)(8936002)(6486002)(38100700002)(31686004)(86362001)(2616005)(110136005)(956004)(36756003)(31696002)(8676002)(186003)(316002)(54906003)(508600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?oBGA+ph1ebI23c1x43Q3M+K9nIakDE481RqD5AufYo/AEdXtO2SLSA5Mfm8+?=
 =?us-ascii?Q?rr9jbWfXW7MW8VloNuTYZF4aHlcu3/Q+NdMgA+fGhjkz1nX+avur4WlFVFub?=
 =?us-ascii?Q?pr2SJg97qmbuTlS+ljY2XA1FDjMuyUoL6dihw/FdsPHDIo0V43TCDSs028Tz?=
 =?us-ascii?Q?NgBhq3/93nO76JfdGCgV8Z26MKgR0mIj2epKj9K9hQjMC0BHxctKplE1Oq4P?=
 =?us-ascii?Q?KRGQ3v1ZwPgtZoVX/9fjELt6KekTomhfTnLsUUGVwyEC8VN+8yxnweR59DDK?=
 =?us-ascii?Q?JKsTZJ1T5LFzZZ5wkbVQNl0Ap16ZJjjK9MWg2UT38Wax8vxHdzno+wIPYOdN?=
 =?us-ascii?Q?wPJmqiE40+f0hmTg7h7RMsv7euh6Z5ywg8M3G6eDhe1ra8GUah0/mW/ASv7E?=
 =?us-ascii?Q?B7DZW9npkOoHUFqvPgeIe9qzP3e5AoE4PDQ3Ik2r65kDOIkyQ0XNIGjPkQP0?=
 =?us-ascii?Q?s/IYjUFqxxGH6NOvKZEOUasDnjUJRRCbe5zJTIs8FhqLltq5KtloaWgUVQNe?=
 =?us-ascii?Q?lVNOgyk3e7/ID397JUtddFyU9eho35z01Dy0Ws0HWx0w1nKC778xEAT0PuKV?=
 =?us-ascii?Q?sJe0D88gTz1pTt9Qrt+0rnEf3PkBYTuQVpESxMPe5ZHG78bV39bEIuvVNIDN?=
 =?us-ascii?Q?+heWiQTXH57iPuAATsxyzfE3W2M5/lhinZHInjXPTHWyCYGwMmAPO7EjBvur?=
 =?us-ascii?Q?D6LPy7FNXbfj0z3Q7UKM2pF+soEm++ww97lFB5ZIlGEvMQg7Qz7HqE5d2aC6?=
 =?us-ascii?Q?Sj8nkEnhM43WxjTP1PFJ+hW1erYXGygmL5Fybxqs9dtEN6crzMDhygaiv6IZ?=
 =?us-ascii?Q?oqEIh005BmdEzaeaPTp/9e1IrNanzDKH7PrNiXxQ9h99gRgwNJib+mNF/PFU?=
 =?us-ascii?Q?/StQiBuCRDoZ0Kcn+OQSvDqIM5OM4SkEnhAmJ4g+0mso+FxKyEnG791LD1Q3?=
 =?us-ascii?Q?3Ld0X85gWrH6Hl1PpPKg6jpOPb7MZDl9jCC6+C6wTHRBglkXnz6m4GrlgVWE?=
 =?us-ascii?Q?zMZ+y1FPtJrgnUI3FSv4kG1/EBylR7Vu3T++tgvtZdO+nnYpmdPeLXDJM1Ng?=
 =?us-ascii?Q?FQQtHFhuoRs//oepdmcakoKDJPMP/Xfa1uNY/oYdLmvQaus2MRsFBo9e2DpB?=
 =?us-ascii?Q?Vyn10EW+UUfQVKPzCsxJfqAQgbX1X39FwH7EqsvkQoCeiMfnnprjEJEGj2i2?=
 =?us-ascii?Q?4myJSQx+M0tmVqdhLlng/C9OmZCOvmha9IjOKjrxhE8HChknVqhKJhf+HPJT?=
 =?us-ascii?Q?WDW9OK1q5U40apxnh2yvwe270k7skAdFHqtjHqrY5LbrvVAVpJmSDzjG7ws0?=
 =?us-ascii?Q?FYVVGvRb0+hWMzWaIw+MiehBKohVXvDWU40dabB+SHySSDnRZvMvSkhfXfke?=
 =?us-ascii?Q?LSZ7tsou1Fy4AETx+XmzZL6bHKl7GFCtnXP2tSo7/2nNYNsJEGL4XzGKsv+Y?=
 =?us-ascii?Q?JPfkHm9uXUW6GuXDduvSHg/XOBsaWh2YvK3vQg5Jh2DiskLts6i7YV8eeiCn?=
 =?us-ascii?Q?EfYIYgUfXzQYkHWNETQ/2tbJtN8qBQu+Akq9sE/vxzbQ4eHu0L9KZ9LzJ43L?=
 =?us-ascii?Q?pWR8AQb0nR6mr6TvvbnbT8AdeON0eMOgesP0XWUnkq0LuW87U2X2fE+06vRu?=
 =?us-ascii?Q?6PXgkdUoKsxKO9nDeo22DbM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a2dd935-4e15-4b68-4bd8-08d9aa93374f
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 12:59:11.6043
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UQUJ4MPp+PJl4nTUAYabyP9vfeRqewTyb46PA8DIKboyOzINUyP7FTTOUdA+9NrsEPW0+xuGYdBVmbHUJSnDVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4382

On 18.11.2021 00:14, Andrew Cooper wrote:
> On 08/11/2021 09:50, Jan Beulich wrote:
>> On 05.11.2021 14:55, Andrew Cooper wrote:
>>> Currently, __HYPERVISOR_xsm_op enters xsm_ops.do_{xsm,compat}_op() whic=
h means
>>> that if any other XSM module registers a handler, we'll break the hyper=
call
>>> ABI totally by having the behaviour depend on the selected XSM module.
>>>
>>> There are 2 options:
>>>   1) Rename __HYPERVISOR_xsm_op to __HYPERVISOR_flask_op.  If another X=
SM
>>>      module wants hypercalls, they'll have to introduce a new top-level
>>>      hypercall.
>>>   2) Make the current flask_op() be common, and require new hypercalls =
to fit
>>>      compatibly with xen_flask_op_t.  This can be done fairly easily by
>>>      subdividing the .cmd space.
>>>
>>> In this patch, we implement option 2.
>>>
>>> Move the stub {do,compat}_xsm_op() implementation into a new xsm_op.c s=
o we
>>> can more easily do multi-inclusion compat magic.  Also add a new privat=
e.h,
>>> because flask/hook.c's local declaration of {do,compat}_flask_op() wasn=
't
>>> remotely safe.
>>>
>>> The top level now dispatches into {do,compat}_flask_op() based on op.cm=
d, and
>>> handles the primary copy in/out.
>> I'm not convinced this is the only reasonable way of implementing 2).
>> I could also see number space to be separated in different ways, ...
>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
>>> CC: Daniel Smith <dpsmith@apertussolutions.com>
>>>
>>> Only lightly tested.  Slightly RFC.  There are several things which are=
n't
>>> great, but probably want addressing in due course.
>>>
>>>   1) The public headers probably want to lose the flask name (in a comp=
atible
>>>      way), now that the hypercall is common.  This probably wants to be
>>>      combined with no longer taking a void handle.
>> ... leaving per-module public headers and perhaps merely adding an
>> abstracting
>>
>> struct xen_xsm_op_t {
>>      uint32_t op;
>>      ... /* placeholder */
>> };
>>
>> or (making explicit one possible variant of number space splitting)
>>
>> union xen_xsm_op_t {
>>      uint32_t op;
>>      struct {
>>          uint16_t cmd;
>>          uint16_t mod;
>>      } u;
>>      ... /* placeholder */
>> };
>>
>> in, say, a new public/xsm.h.
>=20
> That doesn't work.=C2=A0 The ABI is fixed at sizeof(xen_flask_op_t) for a=
ll=20
> other modules, because a caller which doesn't know which module is in=20
> use must not have Xen over-read/write the object passed while it's=20
> trying to figure things out.

Well, imo figuring out which module is in use should be via a sysctl.
Then there would be no restrictions by one module's interface
definitions on other modules.

>> As a result I consider this change either going too far (because of
>> not knowing future needs) or not far enough (by e.g. leaving
>> do_xsm_op() to use xen_flask_op_t.
>=20
> Well - what it does is prevent someone from breaking the ABI with=20
> literally this patch
>=20
> diff --git a/xen/xsm/silo.c b/xen/xsm/silo.c
> index 3550dded7b4e..36b82fd3bd3e 100644
> --- a/xen/xsm/silo.c
> +++ b/xen/xsm/silo.c
> @@ -100,6 +100,11 @@ static int silo_argo_send(const struct domain *d1,=20
> const struct domain *d2)
>=20
>  =C2=A0#endif
>=20
> +static long silo_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
> +{
> +=C2=A0=C2=A0=C2=A0 /* ... */
> +}
> +
>  =C2=A0static const struct xsm_ops __initconstrel silo_xsm_ops =3D {
>  =C2=A0=C2=A0=C2=A0=C2=A0 .evtchn_unbound =3D silo_evtchn_unbound,
>  =C2=A0=C2=A0=C2=A0=C2=A0 .evtchn_interdomain =3D silo_evtchn_interdomain=
,
> @@ -110,6 +115,7 @@ static const struct xsm_ops __initconstrel=20
> silo_xsm_ops =3D {
>  =C2=A0=C2=A0=C2=A0=C2=A0 .argo_register_single_source =3D silo_argo_regi=
ster_single_source,
>  =C2=A0=C2=A0=C2=A0=C2=A0 .argo_send =3D silo_argo_send,
>  =C2=A0#endif
> +=C2=A0=C2=A0=C2=A0 .do_xsm_op =3D silo_do_xsm_op,
>  =C2=A0};
>=20
>  =C2=A0const struct xsm_ops *__init silo_init(void)

So I'm afraid I don't see any ABI breakage here. Provided of course
silo_do_xsm_op() avoids the FLASK_* number space and uses a struct
layout compatible with the head of struct xen_flask_op.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 13:01:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 13:01:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227390.393263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnh2T-0006Ib-Fa; Thu, 18 Nov 2021 13:01:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227390.393263; Thu, 18 Nov 2021 13:01:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnh2T-0006IU-BZ; Thu, 18 Nov 2021 13:01:17 +0000
Received: by outflank-mailman (input) for mailman id 227390;
 Thu, 18 Nov 2021 13:01:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnh2S-0006IK-4x
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 13:01:16 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9bdcf150-486f-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 14:01:14 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2059.outbound.protection.outlook.com [104.47.9.59]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-25-N9yybh_tPkihtntGZ_Hi7Q-1; Thu, 18 Nov 2021 14:01:12 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB2957.eurprd04.prod.outlook.com (2603:10a6:802:4::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.15; Thu, 18 Nov
 2021 13:01:11 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 13:01:11 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR0301CA0002.eurprd03.prod.outlook.com (2603:10a6:20b:468::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20 via Frontend
 Transport; Thu, 18 Nov 2021 13:01:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9bdcf150-486f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637240473;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tsLtrLFgJMn7k333olsBuKy8Q9kXaSP5kbWmYdkQIB0=;
	b=RkN9Mg0GXtOeQW5zbR3+3RpRzzKjnWoiqlog3LlIQZZh0Uod8RRdalgXGo321/Y+TlsilM
	4wUM+fsbpy9kYNlVKVs85ia6DtTzuoPJ0TYvGRh/knFsEfTXeDuYmSEDI6362HuBbCmKzg
	kg4mPqVK0pq2eN6w5nEJedeL64kmD4Q=
X-MC-Unique: N9yybh_tPkihtntGZ_Hi7Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HWUEMhyWYFKldhh0eftUmSDAYT6bP1fkWIgka2uU3A7+kKUj12m/cvhi7SdDOSNpVgJi7n6IBTduaFlFQiM6opKIyika84z1V42vyu1iFGwdkCs4nTXmDNrqXKnXJU6qpFhMMUQXWFFz01D7oUj2/IP1NAnAejdsJEqEwSpd33IA7X5OaGhDOPtMyDXCb3I4KEbFM6bM6Vvkb6Tp8jVDsqH46vtWZVV/k/ifiYzsyf1eJwz0c2HO1M+xDII+8PMdMby9AWbgDy7FwZHhmbOWugUeBJSrLpVCNjT3cNa8R6PD4wVCDCaqCzijEpZ1id5e92W3LHEoe1mMopvBEZA2ow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sMHiOjAx7W5b5fB++qkpqRKDBkTMzGM+MytiDHkCVGA=;
 b=bqS4Xgh+od4a6QQpRI/twUA3wXqp6ggAorCenH6zQjfcaVhtShkL9i7ra14YiRv9ddCiITNMI/NaBhyJc9P4uOfoRoOn6rWC2ALHgkCUL4zCFwEKf76JA5O95iYA3oQus9WOAEccik4GHrFgk/osGEtCCUL5SObUros53QWZ+3iRpTx0ulF171X2Ql+txtBSTK4Ti/e0NjlGdZzip+FSLRp3BVKmtAQxywliF/vKtoOLTYypWwtFbtyD2iYEwg6P6uKQ/srnEzMfbRSmMjEdjO1LH1w0U+C4Fnbo+VL+NDLu5egxMuRYSTkPTMyJHJ1DjwILwL4vwtMPsGSbB+rBdQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6875511f-5b6f-9924-5852-ae51a469ef33@suse.com>
Date: Thu, 18 Nov 2021 14:01:10 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 5/5] xen/xsm: Address hypercall ABI problems
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211105135555.24261-1-andrew.cooper3@citrix.com>
 <20211105135555.24261-6-andrew.cooper3@citrix.com>
 <e8a9d0bf-c9d7-a1ab-f50d-7ebaffbb3f8a@suse.com>
 <ae979a87-41c0-51ec-db41-6bcc1eaa896f@srcf.net>
 <ab199183-2413-163c-bc28-9d0b3b4627c2@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <ab199183-2413-163c-bc28-9d0b3b4627c2@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR0301CA0002.eurprd03.prod.outlook.com
 (2603:10a6:20b:468::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: caeea2d6-75e7-45d3-2fc0-08d9aa937edd
X-MS-TrafficTypeDiagnostic: VI1PR04MB2957:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB2957ACCD734F15257E235E10B39B9@VI1PR04MB2957.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	D92kD3bknZmcbYC+TKHQaQybGX8w938h3+5oF70rzhwnaJ63X+28qzr3DpX1Xe8Ociz3/fjBT2vZPN6IyFLE1AOemlOmaIBrHM/X2ZXqrUiSj4KvphA8QPqBCC2VR7w1lBretzw+ZZ3IDh4442K1H1VwwyagmiusoCHOKUTNpYk3SWIF00FXpJybeMuZT/lFr/2hlLeOc5MlpbFwbdpFEhGXjK+a4f5gWqQbtpmwxeVVrKZ1RkimN8u5qNfdq3msWmgguXYWjwjM1G5rqjdwDqmeXVZ3VVQqym4iF8m4ekkJOk1egvazf0jMGz06HDg7K/pB9Txe/7QzfnlwJPam/RYVJySwZ5c4vKGgYVHP48B1bhrWp7VnerNJtLb6xAbMf3U67NzMxurcJ7vWevXFZ/xTG56Cm2pTBjXMOTKwRt8qFztn+ZglEK/jc7FmtG2LGdkg1y/W1kzgDE4Xx6qnbrawjxofeAbFKWS7hZpLB8kIXb785BA170ZZkMCmS8gweopGXXPugedmCL3WNoIBooM+Ogo+fZ1JQARIoH+hB9VXbp0U2W8gGBKf1K6QDvxFwj56Z0EydCBGySH9NRR4exHQ7bNsBs/IlaBX0BctjcEEOwOJ9NteRmRvCdW00LOqwI7YY7c0grC8RqLaWHv5C0vH5pKLj69r8lEdTClbwOir4/FMyDGsK3T9qDHVS0NZt078mK3HR101ZTLeNoAvfoT9A59UkE9RoVHI5/V3E0AR63eDHM979vXI7ppWs+b+
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(66946007)(31686004)(53546011)(956004)(8936002)(110136005)(54906003)(4326008)(8676002)(66476007)(66556008)(36756003)(38100700002)(2906002)(6486002)(508600001)(316002)(31696002)(26005)(16576012)(2616005)(5660300002)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?WiUsupslC+CzzP9hd/GAW3Y/FgiI9LLPGeKtn11ur22u85rQ8IsWTumfWnvU?=
 =?us-ascii?Q?HhfHLGLn3qud7Wv0Wm1bn/pCWhwznFdYE4orAj9wnu8vvuchBEI6qH05XDqQ?=
 =?us-ascii?Q?78WkxCUofX1uxv93hWqWCQw5FRDosT/3OFu7+LfYYkHTHijcO/Q0019jsvEN?=
 =?us-ascii?Q?+/gEsfPEZuvziZTKC0kMc6o9EjRG0GtFqJoc0MZmfhgYHrnJBHMnUfmb3NCI?=
 =?us-ascii?Q?1w715noIpGxxebs+jb7l7RWzdnjzyz98gvePFY4T70zXJDowj+gtRIWEeGk0?=
 =?us-ascii?Q?koXdnJDAVwNMKbnfypUU5tpRId0Hzfh6usYwnP/RlJNGBxcE3V/xsbuz9VEI?=
 =?us-ascii?Q?eGGcuP76hUGCgyhkTx3A2v6vuHp4IYOAUjimd+h+vKyfa3OYrjNAfftMblI7?=
 =?us-ascii?Q?iNeiKbe8cyKV2YUXLep/Q2j4Gw3kNi0sV1aRLWLrH4dwkWPS5qKN3Txaijza?=
 =?us-ascii?Q?IeGtMF02jDqRuuxsD9BUVaLN1P50JeSRPcE+0YAwCj6LwMKil40QUSgZlare?=
 =?us-ascii?Q?HiwHT40NclFBYl5AC6zr45CrqL+7scWdTmijSHlqsw/3qE2qQNlumJuW1mFZ?=
 =?us-ascii?Q?QLdYsbFOwRWQrvXgmrkgdHTPkVor4VyjfyVTNAs3d0wyBPC6Ov+YVxSYmgJK?=
 =?us-ascii?Q?/s+t4MOlOmAoIj1HolgggWd84ospN0LPlji++NPfgERgypuaGCaAJNqDk0H4?=
 =?us-ascii?Q?qUI8CziZ8E9uP+dZiPI6iDZ4dj4hgb2Mb2f2f8LonnoEkLJzg5tEE8LSim5n?=
 =?us-ascii?Q?ON7GIVZE9aQ4VdSBejJyrIVK7uOVb2Q4A3BCEUV52IVgra3XqWGlSKEuZhgO?=
 =?us-ascii?Q?xlX0adlS8bkIONdbDOojk2h0w3TaP95WDkV/kRresJ52z3t52O3E64BWYdTp?=
 =?us-ascii?Q?l/CwjlEhXovgFlEi3KMIM5vonRD6ygYRqXIJINqvZY9OC8CyqFkhgtwdgObs?=
 =?us-ascii?Q?6gChPduAx2bDO+uVZtHZ3RK8gDX4r2MoKWslpBXN1/IsMv7qXr4GifwriVFk?=
 =?us-ascii?Q?ubXlRDou7VWprqqKlBS+VbNwZykD/PG8RFOeL5zZ6HJWQT6/QD8V2AJ5L0pR?=
 =?us-ascii?Q?IfhjT2+4z11gOyJcdWi0p0rpO6X0NysDLvn+a51D3+BbhNBa2zKgFNSlVTBf?=
 =?us-ascii?Q?5JapOax0eoFUkH1aoB+jzawWW9FvKuI10Nv7Dz3k1kTBSiM8TxpU10v7ynlr?=
 =?us-ascii?Q?puazqHi82i5XI4imvojEYPNlhfJzbJpHVEoUt9bm7xiNOGLqtYZN9iB+AQT1?=
 =?us-ascii?Q?7HlGMA5srdn0WkGg4wJVy9N1ZCgv2CbYHig8iqJHf7npto1ZsOtUam4WLupt?=
 =?us-ascii?Q?laNkhy3VilEEdGXG0A3QnNpWXYrHfBmpzwo5YgJlCwzMKEDokbucN2s6+2NL?=
 =?us-ascii?Q?JaKvLfCcH75IAJeNxBgoBYtfYF+LCJSMLFNwiClR4ihTIaQ5W94MOKFiqwHk?=
 =?us-ascii?Q?QDPTSJVQSnPHBiLFqGbCfOJjOucB3YvL9H7m9AK3hfHuKXgspGck2vcDWFo+?=
 =?us-ascii?Q?Un7c6dkgCpgo6Cl1qvFLCXpxai9PHy2BC9hkDdkmt2PtB+TOUz6HloUsENXG?=
 =?us-ascii?Q?R9U29DCzI/Acv1bPxMV0ig/aP9PaiBlOQ80VYiMkgMbJS3kmCM7ycEud2SeU?=
 =?us-ascii?Q?Af8FLxeugFOdX/ZtPm550EE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: caeea2d6-75e7-45d3-2fc0-08d9aa937edd
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 13:01:11.6254
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2A6pBF065mpK52BQYNOvgNDVOVclv+XHP8bj+w7BAwWYGQRzy+UdKqvony4cl7bBQUgsIozlUcgskNTPFxw2NA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2957

On 18.11.2021 00:20, Andrew Cooper wrote:
> On 17/11/2021 23:14, Andrew Cooper wrote:
>> On 08/11/2021 09:50, Jan Beulich wrote:
>>> On 05.11.2021 14:55, Andrew Cooper wrote:
>>>> --- a/xen/xsm/flask/flask_op.c
>>>> +++ b/xen/xsm/flask/flask_op.c
>>>> @@ -22,6 +22,8 @@
>>>> =C2=A0 #include <objsec.h>
>>>> =C2=A0 #include <conditional.h>
>>>> =C2=A0 +#include "../private.h"
>>> Kind of odd: I'd expect a file named such to not get included
>>> across directory levels, unless a single component was split in
>>> such a way (to me Flask and XSM core are separate, yet still
>>> related components).
>>
>> Its all a tangled mess because logically separating XSM and Flask was=20
>> a task done when SILO was introduced.
>>
>> There is not an appropriately located file (under xen/xsm/ ) where the=20
>> prototypes could reasonably live, and this felt like the lesser of the=20
>> available evils.
>=20
> I guess it is worth adding, so we're all on the same page.
>=20
> The thing I actually need to do is fix the fact that the prototypes for=20
> {do,compat}_flask_op() are local in xen/xsm/flask/hooks.c and not in a=20
> header shared with xen/xsm/flask/flask_op.c.

And I fully agree we need to do so. Me saying "kind of odd" also wasn't
meant as an objection, just to express my surprise to see something like
this.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 13:12:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 13:12:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227395.393274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhDW-0007o9-Gu; Thu, 18 Nov 2021 13:12:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227395.393274; Thu, 18 Nov 2021 13:12:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhDW-0007o2-Dn; Thu, 18 Nov 2021 13:12:42 +0000
Received: by outflank-mailman (input) for mailman id 227395;
 Thu, 18 Nov 2021 13:12:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnhDV-0007nv-75
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 13:12:41 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 34fc8f4a-4871-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 14:12:40 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2106.outbound.protection.outlook.com [104.47.17.106])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-10-kwc6R0xjPcK_AxHmMXJ3tA-1; Thu, 18 Nov 2021 14:12:38 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5598.eurprd04.prod.outlook.com (2603:10a6:803:e9::30)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Thu, 18 Nov
 2021 13:12:37 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 13:12:37 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0075.eurprd06.prod.outlook.com (2603:10a6:20b:464::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Thu, 18 Nov 2021 13:12:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34fc8f4a-4871-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637241159;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=Umgx712IOa99WXk5HlWGJSIXiN44NwdWYdgE66c72nY=;
	b=WjThlGo9gVf0OtW99UBoOtPfxoztqxeYtQwgL7M1HSL9R/fw7IBkAuavCEd22rMypoalTb
	2y6ebSa4GwUbLcbzAyuu0jWK2hVJUOCnYN2WwU5qb6Ok3eSTbQJXVeEj2avEvF1bPOx3wA
	hN9kQdd1JZzvoZF/LyYxLnlMvqfDJ2w=
X-MC-Unique: kwc6R0xjPcK_AxHmMXJ3tA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Ss8jOGLw+mDlaDge8J3/0sihux+JSngykQeNWEpg1iBquNP5k9IYlKaoUMYKguIVbiESOVWq/z+vMtfhdkxJSAkCuEgsqQIPxGxSsCbZUuUDi7QV/HoVLNfcyHASU2+ywt9mnbcpnxDlAwG1ni81yJ6FHk34TwvCSMvCJuVjq7obFEB9Nj22ymnln0a1Updp+uuno/PKRFNi3bu7zX4ms0anQIF4jph1N1ydXnZ6PsKBSGJ9uamAs6GHdqJjh1rhg+AkutrbP+DWpo7nqnzbmwZxMb0QTvd6ySIBbtHBZoZxMVdoDI+KCxFOSvtnc4MEjULVHWAckLniVKBPUmSOOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Umgx712IOa99WXk5HlWGJSIXiN44NwdWYdgE66c72nY=;
 b=iqzZQuGe+jkDVB8hjnjbHxpfX66akq35qT828J0H3F4LnzcKT4bGyzOxZNGHKX9RTD1ipxAQntVqRGt1eVUD/YdNcTOFezRSCul5xJPFhTX4uAMbhf2gjN/gJqmY5q8//b/W0wS0Sh6EyEox6FGAS4IQgeddTQw603rJCe54ZvX5MJdz2mnQ3vug16gumfK+lEjsS+Lfk35fYEO00an7qMes4IHw42Z8ajDpp89pfcWPQZc+Fl7HF5POwikQgfC6d/JZn1/C/4GOyQ8EBKEUzUm/6E1CjOc/QcIn/ENmKPBdxPNrcgU+4Hq/gS1Rs7onlQaD/pdYf5HJvuS2PlsMOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
Date: Thu, 18 Nov 2021 14:12:36 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/3] x86/Viridian: ExProcessorMasks handling improvements
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0075.eurprd06.prod.outlook.com
 (2603:10a6:20b:464::23) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 53b7eafa-af4c-40eb-7ead-08d9aa9517db
X-MS-TrafficTypeDiagnostic: VI1PR04MB5598:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5598E561A62F67212F31B9DCB39B9@VI1PR04MB5598.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	z97oA1T2d+LJASmGQH7oAsp27YU1nRlICPw4UMzt99MQXpoCucr40TO6/bf0X3XV2WxsbGfnv3ROzT7D3Av8LddYjns9aPNX1Kt2MLIhG6Jc70t6Mj8Xbb3Izu2TH+28kZoiZ1HZfEfNJd94RCEScbrlfl1WLY5wqBmhs0ncIWENhTCr5Efk/24jwwGGMU4dMJeHRlhFpeCMy2AR+Hk64OnhStttQ6i+6z8Hj9AtB5M6SVPDVvRq8dtDDcfcsMnlLEB40HRSJcjikHNQdTO5yyj3aOkKqdWM9sexDudNX9SFz7TZgfP+v6TOFv4571nPbK+LRQUoVnVAg2k7/5L+HvqsciOCmS6eBnTCm9RAUi3xa+eDjbaQ0j1svS34tX2V4XEKl7334fV4U1aqXNjamIHmB6cbnIUp0A2uDHDKLY47IUJJdYnR5hzJr7+XorgVtEXPOeiIbN3OU0cc8/8OgqT8R5b1lZzN11F5L4nFoYzq5BDeQOsQhirVwLU/fFA05WXn813SEfT92eAXCdosoBScLtBCzI+PcPQXFodpwXUOD2UynYxPR9B63bSD+Gxcbum0Elq8NHNtddgtz5jZ2RKTY2TENCMXc10h+hxqqKWQx6JOXRwxAda7Kt1JjiXcxE0DKcOSme5fHbaMU1v359vT0/5+/ktaJkwbUCT7fCSovCRU7NEQtWqv5WKbc4tIIOiUYjHqzpUyC1apx3kS1ttkI+7BldI/GX7IZmWHRdmnQIDl2IaS+GeofGq1LtuU
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(366004)(6486002)(86362001)(66476007)(66946007)(508600001)(4326008)(31696002)(31686004)(26005)(16576012)(5660300002)(558084003)(316002)(54906003)(8676002)(2906002)(66556008)(36756003)(2616005)(38100700002)(956004)(8936002)(83380400001)(6916009)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c29RWHdya283ZmV6R1RBR1AyVUNUZ24rRXluME9rWE1NaWFvZUROMjV1cFJi?=
 =?utf-8?B?VnJrTzZic3RROU1sY1lpZHNCNmpleXprV1VualRhRjE2bE9UWFBqZzg2VmdM?=
 =?utf-8?B?dE5JbTlVY2ZZNy9xdEF2SXhtYUd1ay9uQ3JUQXpmeE4zUlZvVFpLVmNpY00r?=
 =?utf-8?B?dGRESzc0Qk9wVy9iSE9ibGgwdGV6VnNCUURrYUFmZVpRbTMvaTJjNXZMNnFE?=
 =?utf-8?B?R1RrRFNkNVg2Q3NxeTMxQnVvQTZhR3MwL0g5K1RnNmxtdysveWNjY211UTJv?=
 =?utf-8?B?MWVSUHg3UEw1R2xkKy80dGJpUGN6L09ZWGIwcFFkZC9tbVUzZGt3dHo2VkhZ?=
 =?utf-8?B?dWlXLzZwSGg1NzdKa0hqU0U3aDdPVVFlS3lPVGUvdVB5S2FQNmtBVjIrK3hm?=
 =?utf-8?B?SE1MaWd5OFVtTkl1dGhHQ01XOXkwUWd0eENSVUdIaHlvNnEvdjVJbGRaa2xr?=
 =?utf-8?B?YnpKaCtKL29HQlNFNE9RYXFLWGZGZEhCSUp4VDNiaHlDWFJJZlY0L2Jma2R3?=
 =?utf-8?B?R0dsRHlCNURaMlBaOVRnZ2pERUwrd2lhaVAycS9tZDQvWGJWcWd4dFpKKzRh?=
 =?utf-8?B?T05zYjBlQkxmN0FWYkkrSGMwanMyTmFPVHlpNkxhYWVjSlprdWN6S1ZSSDQw?=
 =?utf-8?B?aW1scmZuTHY4Q2tnbWNFaml6bnZ6QjlFdUtDaEVvT2VEdmpxMUlYM3RuL0pC?=
 =?utf-8?B?V1Vza2RvbTNiMmFmVW56V1dVYzNWUGVsVkI1K3RFdmJWMUdUcFZsNENCT1Jy?=
 =?utf-8?B?YmZMczlmdGZWQTBHTXBiL2QrcXUxNnFNRmNxWjM3dVhFbzFPb1FxaDUvM3VV?=
 =?utf-8?B?UUpsQlBPdkFtVk1OSUpYeUZuUDBHVE8wR0Y3dDJXcW9rRG5JUEpoY1VjLzR1?=
 =?utf-8?B?UU5kR24xK1YzbXh1VXkyUlFWK3BtcnNBMENkUlgyNFVQZDVJMlRBOVBTZnUy?=
 =?utf-8?B?dXQwNmVhRzVzdkNyR3ZZSWx4aEhaSlBwb2FzTytUZ1JYVXZPN3ZaVWlYMUVM?=
 =?utf-8?B?VVlaZGJYYTRlYk8rTVNJQmpzRVlVYStvTVFocHFkYWpPckpWSTRnOGFuL0Uw?=
 =?utf-8?B?c1d2V1YxcHBXdHo2b2plUVo3Z21JamtMam41U2FPZE5mQzAxa2ZaaUlHUjdV?=
 =?utf-8?B?RzhKQzhYZ1JWWXREUUozTlZsZG83SlU4MW5ud3dDNFJGWngxRjVhRm9VN1BV?=
 =?utf-8?B?bUk5RGxFM1ZKcW4xRjZRV0VWbzE4ZGFqeURFMXRaZGk3eDR6NVhOMVlYNG1u?=
 =?utf-8?B?MmovbDBKazlYdzVqdTVmMTlLYlBPVU4vWnFReHo2ZGpRRC9MMjYzV2pHZG9Y?=
 =?utf-8?B?OU5EQ0lWMTRIU0h0NUlUb0oyaGxnbzBhMTRCdVJoam8rOTFqVm4vNmVkQnFp?=
 =?utf-8?B?aUZjSDdwSjFHYWlBZFMzczRaclJRbnhTRmNxNHlFejhJR05VL3JiU2R3RGNz?=
 =?utf-8?B?YTMrdVpvTUdQQWo2S0RYOGUyc0Vta0U3dkEyTUVWMlB2Qm9FamVSL2VWOTB1?=
 =?utf-8?B?YVZvLzAwTHVEeW1zUHllMU5keWpWaUlSWHgwSndJTEtUNGNWUXg2SXlFRkhS?=
 =?utf-8?B?QVgvREltNFNPKzZQTnBSM2gzUm44aklGOUNYQ2FoSCt1OElOT0RsSDN2ZVRG?=
 =?utf-8?B?Uk8xdURzTitlSnFpeTFkeXN0UnF3VnRhY1JZTHlMUHNua3ZzQnc3Z0xieG5m?=
 =?utf-8?B?YVQ5UTBibkdYZHY5ZmY2VXZ4SGt0S1Q2aGxIYWdVSzlUMXVoOWQyRWZveEhl?=
 =?utf-8?B?TE9CL2FsbWhRQVN4aXI5L1JDMTlIODJrb3NVeVZob1FER2JLclVBQWNSOUxs?=
 =?utf-8?B?VEovZ1dCNURnS0s3WFRMYTU4Q1AvSVVyVXFRMlAxcy9SZDNOQzN2VGlTeG52?=
 =?utf-8?B?T3FzNG45SkdlUEllVGxwMjFHRU15dW10aFByUTRyVmtsc0EraWIvVE12R2s2?=
 =?utf-8?B?WUZSUHlteUIxS2Vhc3czMVF2WkszbUdleE9EbTA3MFo1MzBYY0RXUit5ODRz?=
 =?utf-8?B?dHBsM01iRTJPZVBjTjVrcDRVMFZodnRIeU85MGtDMkwrdUNiM2VOeTRrekp5?=
 =?utf-8?B?eE11U1lTRlJ6ZXZ6QXZRR2pqZ3laOExwRFhTT2dTamJGeGhDVHFsV0J4QkVJ?=
 =?utf-8?B?a0xyQ2owNlJGTlNHWnd1bU1vc0d3Q2pUS25TcC9DNjdmdEZwVk5qcFhIbTRQ?=
 =?utf-8?Q?fxWZZWNcY/CpF449XeDdXS0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 53b7eafa-af4c-40eb-7ead-08d9aa9517db
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 13:12:37.8654
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2vk4rNKtPQgQOR+TwFTp75EDrOTZT3XYvFPrICeyPSomEv8a/FLSKzq1CWHIITnjQNZ+tQt6Ua1OWaQS+0uzQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5598

I've noticed the bugs fixed in patch 1 only while doing the other cleanup.

1: fix error code use
2: drop dead variable updates
3: fold duplicate vpset retrieval code

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 13:13:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 13:13:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227400.393286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhEa-0008Qd-VT; Thu, 18 Nov 2021 13:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227400.393286; Thu, 18 Nov 2021 13:13:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhEa-0008QW-S9; Thu, 18 Nov 2021 13:13:48 +0000
Received: by outflank-mailman (input) for mailman id 227400;
 Thu, 18 Nov 2021 13:13:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnhEZ-0008QJ-L1
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 13:13:47 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5caedfc5-4871-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 14:13:46 +0100 (CET)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2056.outbound.protection.outlook.com [104.47.8.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-4-uSpZ9odVPXG20505mv0x2w-1;
 Thu, 18 Nov 2021 14:13:45 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5165.eurprd04.prod.outlook.com (2603:10a6:803:54::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 13:13:44 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 13:13:44 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0055.eurprd05.prod.outlook.com (2603:10a6:20b:489::6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Thu, 18 Nov 2021 13:13:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5caedfc5-4871-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637241226;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eOVU/IktMNarHrzq1eR850T7kGTI+/Z3sQLri7a16Vs=;
	b=L+h+7yNB2Nyebmuo4Ml2YmGAmpkWORuNvUymlF0riosDf0wui+SHmFZeXLZD7H+KBvlDxC
	8yeddsGCxfYNRz9W8vogM4eFIrtQR6vU5qABKwyTPhLVHMilG3Nw9m1YiafntxUL3TvKo2
	V1RzYwtiMWQ6abZKmLHTvI3vBvhrUUg=
X-MC-Unique: uSpZ9odVPXG20505mv0x2w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hL2b/G1b4jsYWi+4D8AsVEMaiKZgmyaap7qYxrNObjC7FrZpY7E2K8WDWVFVJ2iskLXxEMT9Cw7L04j2LVscS/MZQYOeZdptquudUmhAbnaXUq7YLihqZZjsGThKfflBHq8I8FvkBJXm9YHYdL0477IMhUYe6gy44DJ0owaB3RoWJZSJBNMGW6SdmHDVVgZJh/mgqHWUZX77SoCpCDkih74bPGSeWuGr3PUiC9P+LjbCaMuScVwVyaDrxUav3DZG5Zrqlgp3lyHLBVd391e7HM25cGVVX3dfkyRvjfNbndNAbBpyHOHAKJNIl2yTUFwHURihDfF3YD433WviRNlSng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eOVU/IktMNarHrzq1eR850T7kGTI+/Z3sQLri7a16Vs=;
 b=Ki9If9sbqdl0YYB0D2FmM5CYq7Oxzz1LoxOe1CugHheonvDGp8t/pY2VCAnE/sx3GC/m4p8dpHxJ7rp8hY5vG+9ssaS/PPYENpO/04vNtqx7A1fdEzI4/oNvkXQndAnjoXxxGJV0G7iTsuk//Y3cnb7sZSNryX/Nf5NSDQxVAvpNg6CLp2YvFDxrNctby1YccckM+F36WI9rpWF1fVcHi5itK/ye1ew4KOlqKxstdCT5JK9kDytHSwyKirday1zxDuf8fPzFFAGTNAwkDR/YbbblLppL6H7IHBrOuR5H13X549SecUR7B97RtMBwSMwOavVeI7HEqZDhwupu/pAGOg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <cf0d323d-6ef3-0b35-8423-5adab75ab4f1@suse.com>
Date: Thu, 18 Nov 2021 14:13:43 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 1/3] x86/Viridian: fix error code use
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
In-Reply-To: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR05CA0055.eurprd05.prod.outlook.com
 (2603:10a6:20b:489::6) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 21ac61cb-8bb5-4a2d-3b46-08d9aa953fae
X-MS-TrafficTypeDiagnostic: VI1PR04MB5165:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB516524CDF5C6FD7C679B96CDB39B9@VI1PR04MB5165.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2803;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jhXxK4K7FILXhA+kK1jvKynLlUATITXA29cAq2bO8CJym41J57CWbLwisJZcyf9KyKTDmm+Ymi24LctjND8mFudc2xityiayHePPZFV/MV33q1gCxLklgjzwed0C1FNlC3NQKP/qRdaxG+xLnBfEdnUKKKfP7zBfuDbRjk4v7izwFTo2DyPk14dIv8akAqDX3PEmvCOivbfYgZWEao1v7ZHopdoKYmMwZ99gY/XPhEHugkdykpG80xbLBxwep52IxgEQSYtBzIeKALq6cNbQ27bhLbsRVgckRxGmmxgvQ9ce0g82ZzX5ZKdVH8jhK5Qj6ejpXWhpvZUZJR46++Vf47L/uTNCMlK/gvi2q0xaa6+apzQSoJP7nHBCWmQIVvEEcH3E/P4TH05SeJoOM+WArpD5a0fZJqUMTg7YwULAt3GZnOCczuDs80IUWHKJCmYqXRaBm2cOX/+8EVxYt86ngqaZBRt7EZtwyoKwhsprk7niZpPl8DukivWHpc4VBcx1GgMxv9ZEBd4b5FhrtjisIEDbBv2dafXgj3NRUgmcRNKcbZrPfQD8zjHhQRTnrFfeB8gIPe8F7nW+GqptF4uY7WjakEUw6WdSUUQOpFXZTKd24kyyxIbOIZzxQ3s3wh8wneEqh8j6BQN/UybaS1fF6TWBabZy50IGMYcRXLEmtV8KHT64FJ5RNx/xur1Li7aYpVSS08jVmcFHahRQEJmwsgHqittFU6e6qOI89JY53Bw6fFcP+EVrz5/zh4DTRIjX
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(38100700002)(83380400001)(54906003)(16576012)(956004)(66946007)(26005)(31686004)(4326008)(316002)(31696002)(2906002)(2616005)(86362001)(186003)(5660300002)(66556008)(66476007)(8676002)(8936002)(6486002)(508600001)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RHloekJmOGxlYzFURW9jTUVQNEs5UEZrcEJRTFU3eEQ1WnEweWlsQlZKR2tH?=
 =?utf-8?B?R1dHcXFpUUt2UHBJU1NrYUV5amcyOVZyajk4UVh3RXdBbnVkOEZsWENDM2tW?=
 =?utf-8?B?SXhNckExaW11Y3p2ZVp0QU8xL3Z5Wkx1N1JZQmdvSnRKQ0hMbVhEekZLSUxv?=
 =?utf-8?B?bG5IRytsazJwVWsvREl2VFhGU3d1YlZldDJVNTFOTmF1cklJakd1NEhZSEdD?=
 =?utf-8?B?MlkvUzhNeUljbEhNUXJsQXdZRENXcW5zTlZuNGZUZ3Z4dzl4bDkwT0Y0QzlW?=
 =?utf-8?B?WHVIWTgwL2ZqQW4rWURXOTRvUzIzeWNYWVNkZFc5N1Y5RTh3UzB4UGdaUzJB?=
 =?utf-8?B?WE8vQlZNcDJWdXdlZ1pKLzYyOFdVUmNTM1hPOU4yNkJRM3NKMVhjVDhRY0Nu?=
 =?utf-8?B?SkRpNzVsR29tZWl3clZOVzRQZnhOczB3eGVaM3NyRk55U3hMZktLanB5bXY5?=
 =?utf-8?B?bk1NbEVmbUJZT2RXaU1CbFBwWlpNa3RKU2xjNC96OG1qb2JYWHJrVk1ScktS?=
 =?utf-8?B?VUxVV1d6eHhhS2Vqanp0NFFwOWZGejUvSzNLL0ZOMm5ZaFV0b3g1WGhjTDdU?=
 =?utf-8?B?bVprVkdUbWhZNnFHZTVxSkhLTE1waXZ0MVdMWS9qazRBazNxemNUSEM3ditU?=
 =?utf-8?B?ZUQwNThDekNabkVEdkpWNlh5UG5RdE9XZmFFS0p1Y2d5YnFneTBmTXhvb21K?=
 =?utf-8?B?WXRZMnRjTWhTOXRldC9HTXpWeE5hcUFjOU5FUll4c1FkcnBhQTNhRy9NbUhE?=
 =?utf-8?B?bHZVQVdFaFQ4V3MxeGtmTVppOUplN3ZwNEh6cjhHbmhtYWNBT1V1dzJRdisx?=
 =?utf-8?B?ZHJMMVR4V3ZRQ1RWZmNrSEVFRnBvSnJwaGR2L0cvejRoQzR4VWVPZ255WVh6?=
 =?utf-8?B?TVEvbExHa0hhSXVIVmQ3YUtaOEx2UXRoZFJMZnBPL0N1RmZrenZqQiswc0NN?=
 =?utf-8?B?UzJZa3BZYXRlNGg3WWJ6aGtPeExncll6MWw2ZUNDTlNpLytPRXlPemgvTWdU?=
 =?utf-8?B?aVV4YnZFTE1wYWFZSEs0MmFNcTFIMjNnRzFJajdhL2VMK0EyM1BSbnBFNDZh?=
 =?utf-8?B?TFBQMXM3eDBCSHNwbnhCUTE4aVc5cTh6L2ZUQkJ6bENYbGIxUEJ1TDhDUTQ0?=
 =?utf-8?B?ck1SeDZYcUtJVk5zRXAvUUtxVHRnMGRLalByb20zaTkvdmNHQ1R1NkcwazU4?=
 =?utf-8?B?OG91V2I0M1o4d1NjOUQ3NjBybmhSS3hnOEJJZGVqRHJHM1hMRmhmL0Z0UnNa?=
 =?utf-8?B?bnJyYkpOM201WFRQK1RoQ1hTbFR4WWx4RDcvOWNRNmsraUtYOHBXQng3bzk2?=
 =?utf-8?B?bTZMQ2VyZ0JyVXA0RTgwbWhlN3JDZ2diR05UdDJyeFBvTDlhV1I4cktTREVZ?=
 =?utf-8?B?cXIyWU5kaGtHOXF4R0RpZS9UWWJySS83ekIzcWRVNGN1YUhGYUQ0NFNIRzF1?=
 =?utf-8?B?OUUyeDd0UGtOcHZHU2RJM1kzeWlDTDF2SEhxSTZXN24yREtWZjJCU3dCZU8z?=
 =?utf-8?B?MEVQS0NKNUpycDJBU3JaZWZJbWZwMjhYMVE5a0h4WGxuWjlwSzM4M1QrdmhB?=
 =?utf-8?B?ak1MaEtPKzFpU3ZaNmcvekh4VkhMb2hDU0hYeWNLWG9MWUlWeEdzaHB6Z09X?=
 =?utf-8?B?eGYrK1JSNmZQSUltLzBBbXROcTJLYWtnNG9vTXNZZnhsMnAzOEdvdVUveVgx?=
 =?utf-8?B?bHExVXg2M1lpU2lOT216b0xnMnJMZzZJSzNGeExuRzJrRDUwZlJJU212K2VU?=
 =?utf-8?B?S2Nqa05HbDkyNzNkdmQ1a0w0MW1rdjNFU0k4OC9rbFoxSDVraWVTMEpQWGV0?=
 =?utf-8?B?WFAwM1lqbFZzQldpeDZrZEFFY3N4ZXhsaEZTWmdVdjY4T0tGS3ZwR1daQjdw?=
 =?utf-8?B?a25CZW94K1ZEdmM2bUJsTnpTSjZmek1YSjArcHlKYnc3STFTaGR5YWFOaVEr?=
 =?utf-8?B?K0pBQkpPRy9ZTU8veVNLb1dlVFhjNXNoY1dUWTZaZ1JuOTVjQVdPL1JQZFNP?=
 =?utf-8?B?T2ZWYlNZbEo4ZUJOVTk0TG9QdWI5TUI5U0lHeWJrVEhhK1NEYXRUOXRPa3BJ?=
 =?utf-8?B?eDNmalJ1UVJYTEpaU0I0eWJLQzlYMnJHVTBCT0VYM1Bod3dvSEhxbDhPTjk2?=
 =?utf-8?B?YjY1S3B0Z0ZMUmJNdHhYRmlGY3hYUEc4ZTl0NDhlanFPSHVzVFNIQkhLby9i?=
 =?utf-8?Q?usI0xC0SyVrtuepCXQeihPE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 21ac61cb-8bb5-4a2d-3b46-08d9aa953fae
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 13:13:44.6427
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: psnhVAYenQi/JrSZ3l9PjUjODhKaVZdb1oXHTSVyix4oeNm0R1L+X5Qj7E/U2VoWH1PP7MSJphDUuGjKKMp8Jw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5165

Both the wrong use of HV_STATUS_* and the return type of
hv_vpset_to_vpmask() can lead to viridian_hypercall()'s
ASSERT_UNREACHABLE() triggering when translating error codes from Xen
to Viridian representation.

Fixes: b4124682db6e ("viridian: add ExProcessorMasks variants of the flush hypercalls")
Fixes: 9afa867d42ba ("viridian: add ExProcessorMasks variant of the IPI hypercall")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -628,8 +628,8 @@ static unsigned int hv_vpset_nr_banks(st
     return hweight64(vpset->valid_bank_mask);
 }
 
-static uint16_t hv_vpset_to_vpmask(const struct hv_vpset *set,
-                                   struct hypercall_vpmask *vpmask)
+static int hv_vpset_to_vpmask(const struct hv_vpset *set,
+                              struct hypercall_vpmask *vpmask)
 {
 #define NR_VPS_PER_BANK (HV_VPSET_BANK_SIZE * 8)
 
@@ -919,10 +919,10 @@ static int hvcall_ipi_ex(const union hyp
          input_params.reserved_zero[0] ||
          input_params.reserved_zero[1] ||
          input_params.reserved_zero[2] )
-        return HV_STATUS_INVALID_PARAMETER;
+        return -EINVAL;
 
     if ( input_params.vector < 0x10 || input_params.vector > 0xff )
-        return HV_STATUS_INVALID_PARAMETER;
+        return -EINVAL;
 
     *set = input_params.set;
     if ( set->format == HV_GENERIC_SET_SPARSE_4K )



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 13:14:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 13:14:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227404.393297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhEw-0000TE-8D; Thu, 18 Nov 2021 13:14:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227404.393297; Thu, 18 Nov 2021 13:14:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhEw-0000T4-47; Thu, 18 Nov 2021 13:14:10 +0000
Received: by outflank-mailman (input) for mailman id 227404;
 Thu, 18 Nov 2021 13:14:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnhEu-0000Rz-M1
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 13:14:08 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 695883b9-4871-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 14:14:08 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2058.outbound.protection.outlook.com [104.47.13.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-20-xJvxcdKrMR-nCBxJiEYVOg-1; Thu, 18 Nov 2021 14:14:06 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6383.eurprd04.prod.outlook.com (2603:10a6:803:11b::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20; Thu, 18 Nov
 2021 13:14:05 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 13:14:05 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0037.eurprd05.prod.outlook.com (2603:10a6:20b:489::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25 via Frontend
 Transport; Thu, 18 Nov 2021 13:14:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 695883b9-4871-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637241247;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=a8687ihPanRL+3ac1IjZtotfsNsyk2rdhK4easY+hVg=;
	b=UwTf/oS1YYVXjEuEhfPfC5bJZJVh6JigJicdpJKLi1TLih5HkzIBC1uda0fQ51mrdolQGv
	SDfM37yzgWuTaaYRyK8pQjasrY+MGpw0DJNfUkwxjgMyTOb8K6TTi4SoTrmbcUu+Sl9K2T
	sOf8UFN7SAuxfTvRTnGq3mjy8kexAYg=
X-MC-Unique: xJvxcdKrMR-nCBxJiEYVOg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Taxmt4IK+K7Z9jpTodVrqmA1byvbF845qHZdtqM/ZE3lTo+JegbsgCtg3esdFdNk1wqrlpZ2M9WYXNBU9rT5h5XrszYPjbPeyX+/K6K20unqepJyIfi9yQohR8QAdLCFaXBK1mlH9z64oTTQjL+zDp7i26uOZSH8FzEuUJqHcrU3LNSfsJYbQh6WJAAm/r6PSQqILL0Szmhvg1hpJ/5lG78GecXmHPuSgIWle6CzCE0OghRmm481ud8JE+ug8cu+mHX51mKIt64q9xDshox519LxEg4B8S6ohd6/Jp7/DHzsyGW1gGKkg7Ei2Z/uqhXGAGVx/jCSlB1rIZ0g0zfAfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a8687ihPanRL+3ac1IjZtotfsNsyk2rdhK4easY+hVg=;
 b=BlYCAIEf6SP+s1byNcr41bQ9mijij1LvzRzr9xjhokEhsjJ1unyGAbMBIxq89TiBJjlsCI7I7U9qNoBW8LnasBK5H6tKVZ3NmQEVp1iZZz+Aqi/qOtcEgOsJ/1EQjO9kCip/4d6//sKXwfWvUJ5ayN0faXYqD3vfmjP68OYp808wNgVxW8vpAhR/HTCJoT6T5PPzZ3pv7RSQfamAJ/JEdizBAomgylUdf3P8zbjs/wq0aneyQOzRioXiY5kFImZWKCL/UwPyrUbThmfBkPOgUTdttD7MLloGl5DfIDb0TKyqsaB4T2Be31rh64ImMR7f9Mm+okeeTs2n2QYjkT/zNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ae2fa743-da2b-91a8-908f-b0c7bb006fd0@suse.com>
Date: Thu, 18 Nov 2021 14:14:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 2/3] x86/Viridian: drop dead variable updates
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
In-Reply-To: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR05CA0037.eurprd05.prod.outlook.com
 (2603:10a6:20b:489::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 51b5f890-ad72-4299-67eb-08d9aa954c02
X-MS-TrafficTypeDiagnostic: VE1PR04MB6383:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB638360659486145D3260F284B39B9@VE1PR04MB6383.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1824;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	4IawI3xG5ZN7ziZYYC7th0hQYAsllEQ0uAorJ+mNKNKQy7ntRB8Jxfn+FXJunjzLDJ/cvb37Y0eQ1eVxWuB/J762sH1wKRCKqHwWRYGwZLXjpWtxWASzneJ7GLK6U1upf0ZpRA8UluuhFObPZM225EzfqjVh9H8o+E2LonPr96T0XP6XDa+x3twPao/De9UO3CO9xUfOdIHoXeJfOWLRt5+bifjbKnAHcWx4m3KEx/v9Z22gq7csUVNlBimbSM4WrMN2C1WqAKAK2DqdQ3z/IgXx1Z+Vn3gTxZSbVYff/ClMeTJVflxUt1FeUd1NRZreRnzB2i/bPHCTuXvBz1QkKHSsesIi8Zg7QE3B0N5r4D1aCrpdBIxltpJLTcb/svrGUkDG47fQsiIP9LuRk9U/ctDMA/nf/rR9d0eMma6ICR1EIlIlBFvJvYI741cFmiQIe0whtZpvgRj5CjgD80UNv1fFgsJQKw9EyaR/dtpJ87RLfr23R0n/AnxS48zb6k57rjbR901/3TmyZHpser1Cy9rhukQuDsLYg7foaZMrGCmrR0KgrBf/uedT99FcwG4cTipSVtjk4sWwwIzOToRu6EM4c3PLkFWVm937rC2l5BWD/covhEH894tTK5NtTW6RJheNcgTdTVCIKeUBiewKdYLvicN86NDwdXMBKlWeybxoU2Ni8fA8VpgvDZ7HNbStBbjVXDn5N8uNSFTcVJZGSnOujU27gO5cZT70SVQXL6M=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(66556008)(2906002)(26005)(5660300002)(31696002)(508600001)(83380400001)(66946007)(38100700002)(186003)(4326008)(66476007)(36756003)(6916009)(86362001)(31686004)(16576012)(54906003)(2616005)(8936002)(15650500001)(956004)(316002)(6486002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eW9DWnRiNG5lQ2xmZFlGb3RIQ000Q3ZLd0E0VXFISkkzUzFVZTRzTUFzaXhk?=
 =?utf-8?B?d1hOTlNXWG9pZC9rQ1Fla25NZitVbmRXQjltclRXTWRZRTFxbjVhdXVlOFNG?=
 =?utf-8?B?dndoMXJtb0xlT09USklvNE0yVno2d0VsMDQ0ZzVEc2NkTzA1ZmEwaTVEa2xM?=
 =?utf-8?B?N2E3dFRpMkxzZG5PcEJkSnpiSnFaUzJpNmdxKzAyMWNJZnBnenV3Ym91THNE?=
 =?utf-8?B?NW9RZjBabndobE1mNEQ5Vks3aHFSRHc1b25zTDJiRlNDaDhBbW8yYWNDTndu?=
 =?utf-8?B?dVpYTWhyTnlQNW5GSDF0b0lsb2wyWW9TY01kajRSR3hma1ZzOW1UU04wNGgw?=
 =?utf-8?B?ejQvUmliTkZEb1doUTlQZGF4a3Y2MmdnVjlsK3Z4K2JtY2NsUmFUUEhDb1VX?=
 =?utf-8?B?R3MzWGZIUC9lcHRFU25QYXU3dG92R2VWcW9ITGo1SWI2azNtMklENnZWMDQ5?=
 =?utf-8?B?LzB0b2ZvRktZQm5MUzZza1J5SUdERlhXamtJVHpNc3BKeGYwRFFyN0lubnJ4?=
 =?utf-8?B?VVk0d3diMk1GSzdjeVN1T1lZTi9pUmN6aG5tREtCSjlYSWNTMTB6MVduK3gz?=
 =?utf-8?B?M2Q3UFRuZTBxRTQ4aFY4cVVsUUpESDIyaHhTbFA5K0ZjMzcyODB5YnYzREgx?=
 =?utf-8?B?SmFDM0gyUUs5WUZEV05WOXBFZDBQY2c0VCtTNVNoV2R0dDloVUNYdUpnY2RJ?=
 =?utf-8?B?YmtLNy9DbUJaeElTa1NtRGNRSDRxamNvWFcvQlN2cTJaRnFnRTZ6c3p2VmFG?=
 =?utf-8?B?WXlMZDRheWpXUU5lUXhPamltSG1aN0lZQU8rVE9mM2U1TENBLzBkcVdoYnA3?=
 =?utf-8?B?M242K213a1R6L0Y0MDQ3NlFwQU5zeHVmajI5VjdRQm00UUJTK1RxTFFEalE5?=
 =?utf-8?B?TEtWbGh5RlByeDFwVTVjNUpUYmFjRDJuRHFiTzM2NlJ1L05FRkJnK1ptb0FL?=
 =?utf-8?B?ZTBLKzZibDh1eE5sam5tWXZWb09zSmpSMDJIa0krZzRhdWhYQUJMajF1OUJY?=
 =?utf-8?B?Q0Q3RGVaSkNrdTF3Y2twRStPOVpDMC84NUU4cHlPa3AybWJnYVBKQlZBcTQ4?=
 =?utf-8?B?VmtVRkZPcTFwc0NBMGUrUkFMZnE4Smt5VXJqM3FPcTNsYlBRZjNDVG5UcHNm?=
 =?utf-8?B?VlBFbzFoMTFQdHNLYkdXNjhRcE1IM2gxb1V5U0tNM3g0OGhrZVBGeTBhUFJR?=
 =?utf-8?B?czliT2V2UXhFTHFDK2dudVIvd0tpbmp2Y0ZJdi9RY0ZVSEtZV3RQamN6azQv?=
 =?utf-8?B?UGRLTW1TYVUvU2VpK3VGQnZvWno1WjFqOTVjS0RYV1RuNjlHMGhlNVdZb3Bo?=
 =?utf-8?B?ZFFrTm9vTTRabnBPVzFuYXZOLzdtMVM5VHZRejNMRzVyS2NycXlqU2Zvd05I?=
 =?utf-8?B?UDFZeXZXaVV0cVBaTzhBVmpFNkM5aFRzalF2cGl4VWVySG5FeWFzOTI3RnJM?=
 =?utf-8?B?TzRQa3RzU2tOaCtpN1QvU3gwOEw2c2VObVpScGR4cU13S21DNUNrOHE4cWtR?=
 =?utf-8?B?ejg1UW5yT3dBM2FwVVA5RDBTTUw0VFF4dU1CRzdmMjhMcTBacW9Ca0djamty?=
 =?utf-8?B?YTNxMHVvMllyQTJoaTlrMFI2enNvSXBzOUU2WDdqL3d4Q05CbC9tOHRGVWVH?=
 =?utf-8?B?WU1IOGk3NXRNaE1OTDlsZ0RDUVU4SHZGSHphUG00QWdFOTY5eVh2V2FVRTQ3?=
 =?utf-8?B?cmhBM1o5dXdMV2VtNnRFZlB3M2s0V2dpNDlPUXo1TTJmNS9SWjEwbTNjVU9C?=
 =?utf-8?B?Y0ZHNUFNUGVzMmw5TktuaDNpeEN5T2FUYTMyQ3NaSkxOMGlTcHAvVkRsL2V3?=
 =?utf-8?B?SVREN1dLbUUyVitsakxHMDZjU2YwMnExQnNUbmhmcU4rRUpkK29EUUhSaGZU?=
 =?utf-8?B?SFo1M1Y2V1JwOEtLRDJsSFZzSzJlY0FTRTRubVRKdW5TUmxMdVJpY3Y2RWJx?=
 =?utf-8?B?SXFBbzk3SVIxcDZZTGVYUmlicnFOcUpLQ1E3bFRSckZKM3EzbmR4aDNhM2dB?=
 =?utf-8?B?N1BmdDdLcE1hRjQ1RUgwSE4xcW94WnBsL2dKcWtNaUZwNlJrYVpxM2JiYjBW?=
 =?utf-8?B?REhxY3d6ZVZMVmo5aXN4OUI1em44OVgraytvZlRuM3htbVgvejlIRTk5QTZK?=
 =?utf-8?B?Sm1NTWVUSDRnUDc1QkFlcDRzZlpwRVdhSTdzeW9XWEthUTAraStBVHoySDdz?=
 =?utf-8?Q?oR7OZuN3lAX+O+/d+6US9Ik=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 51b5f890-ad72-4299-67eb-08d9aa954c02
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 13:14:05.2850
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7TbSMx7wJlvvLnGkXUCXP0GWfWUxsvt6cxvHBAx3yhwK9dqd0WBug0pL6DyPyqhDBGEW3Zz5q1ncT6Zbe+AfKw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6383

Both hvcall_flush_ex() and hvcall_ipi_ex() update "size" without
subsequently using the value; future compilers may warn about such.
Alongside dropping the updates, shrink the variables' scopes to
demonstrate that there are no outer scope uses.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -776,7 +776,6 @@ static int hvcall_flush_ex(const union h
     {
         union hypercall_vpset *vpset = &this_cpu(hypercall_vpset);
         struct hv_vpset *set = &vpset->set;
-        size_t size;
         int rc;
 
         *set = input_params.set;
@@ -784,8 +783,7 @@ static int hvcall_flush_ex(const union h
         {
             unsigned long offset = offsetof(typeof(input_params),
                                             set.bank_contents);
-
-            size = sizeof(*set->bank_contents) * hv_vpset_nr_banks(set);
+            size_t size = sizeof(*set->bank_contents) * hv_vpset_nr_banks(set);
 
             if ( offsetof(typeof(*vpset), set.bank_contents[0]) + size >
                  sizeof(*vpset) )
@@ -798,11 +796,7 @@ static int hvcall_flush_ex(const union h
                                           input_params_gpa + offset,
                                           size) != HVMTRANS_okay)
                 return -EINVAL;
-
-            size += sizeof(*set);
         }
-        else
-            size = sizeof(*set);
 
         rc = hv_vpset_to_vpmask(set, vpmask);
         if ( rc )
@@ -903,7 +897,6 @@ static int hvcall_ipi_ex(const union hyp
     } input_params;
     union hypercall_vpset *vpset = &this_cpu(hypercall_vpset);
     struct hv_vpset *set = &vpset->set;
-    size_t size;
     int rc;
 
     /* These hypercalls should never use the fast-call convention. */
@@ -929,8 +922,7 @@ static int hvcall_ipi_ex(const union hyp
     {
         unsigned long offset = offsetof(typeof(input_params),
                                         set.bank_contents);
-
-        size = sizeof(*set->bank_contents) * hv_vpset_nr_banks(set);
+        size_t size = sizeof(*set->bank_contents) * hv_vpset_nr_banks(set);
 
         if ( offsetof(typeof(*vpset), set.bank_contents[0]) + size >
              sizeof(*vpset) )
@@ -943,11 +935,7 @@ static int hvcall_ipi_ex(const union hyp
                                       input_params_gpa + offset,
                                       size) != HVMTRANS_okay)
             return -EINVAL;
-
-        size += sizeof(*set);
     }
-    else
-        size = sizeof(*set);
 
     rc = hv_vpset_to_vpmask(set, vpmask);
     if ( rc )



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 13:14:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 13:14:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227409.393308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhFb-000181-I3; Thu, 18 Nov 2021 13:14:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227409.393308; Thu, 18 Nov 2021 13:14:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhFb-00017r-EB; Thu, 18 Nov 2021 13:14:51 +0000
Received: by outflank-mailman (input) for mailman id 227409;
 Thu, 18 Nov 2021 13:14:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnhFZ-0008QJ-Ls
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 13:14:49 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81c33106-4871-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 14:14:48 +0100 (CET)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2056.outbound.protection.outlook.com [104.47.1.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-12-Vh5s9ku4Me-GXLzm78DRgA-1; Thu, 18 Nov 2021 14:14:47 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2704.eurprd04.prod.outlook.com (2603:10a6:800:b5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Thu, 18 Nov
 2021 13:14:46 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 13:14:46 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0126.eurprd06.prod.outlook.com (2603:10a6:20b:467::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20 via Frontend
 Transport; Thu, 18 Nov 2021 13:14:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81c33106-4871-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637241288;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7NvNnOH5HYnSaIdiD82OvXyiaMKZTo5P7hBpSZhL67A=;
	b=lk20czgJkMtCrcQFcnsCzYcyJrRJs1Qv7xQhNErJh4b4u4SVcQZcev4VnemPSzKQoBPOqZ
	C5kTucyFIVmiiyULup+xDtoBxAWIqGvV1ki7zvM+4vUpnQ0UsxOUoOvL+L4tRru/eSMPxB
	VhenVHOVdKxxrGhRMke40uEYI7CH9fY=
X-MC-Unique: Vh5s9ku4Me-GXLzm78DRgA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Cu88c6RUkYKJAvmwn8AWBi3ZKNft5jWXJKWN6sdWkNYu7y7NvFGJbX0pLM21l1aZWNo7mBwJu7FenXzzTkjJ3F3Stz23+ZjT3Ls44nyKJfz4mAYvyMLsLtPoKNde6qw65GQEEXi3mAEgrjYmQKUh/N8PNpPJLq1LAD5m5UmUmyyf+Ua5L/lDBeqLbh9V8QbogFV3iEKpGMo4u2DVcZ+NSCIYlAXM/umFcAJ8K7eY/a5ayZEs3o0yAVyZ+A2CjLfsVJrQkXzANmn6JrDWcdvnHfw+/y0qrspBPHjbCFbUr50a0t4kblAJ7WwUYDwVcj6RJtPZISjOJMhIIqT6UuIliw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7NvNnOH5HYnSaIdiD82OvXyiaMKZTo5P7hBpSZhL67A=;
 b=imT4AjyuLSkC2LZU7ApAaA3rJYylWfAtaKji1FoQ/9xPaCnz9Q2Kv9kridz7VJ7Gook5iVws2FB1PL4/IyVtAmYahDJkZx8G5BdsZlbEpZADBqIzgLlcGa1Y5LiWpoBe7SOB2Z2ayNxi9UNGReajGavhGGJj3JhtQ1JNcNzKG6xgOho502VS6J2UpDF/BrWlriLK7fKPCCIDljS2TRYUl9ISLtAkZlLOrZzg4LvIyNRqlftwLlPWArwg9QVR5MmJLJytRXUmiAVLnERnxKWEcUHCyuO+3sZjOGwjjOQd9yzSrrBgX2WeLl4ff+z8snDPHgyQJjxRKPwksr14/b1t9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4aa6c9b4-dcaf-38e9-0b22-394f22ae898d@suse.com>
Date: Thu, 18 Nov 2021 14:14:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 3/3] x86/Viridian: fold duplicate vpset retrieval code
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
In-Reply-To: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0126.eurprd06.prod.outlook.com
 (2603:10a6:20b:467::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: aeb108c7-a028-4a22-71e4-08d9aa9564bc
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2704:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2704863F007818B11966B860B39B9@VI1PR0402MB2704.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	L+d7unjbeRqO39kucSfK2qyysCfBXMMmnV1dTg8bYemNPSYDEHEcZ/qMV57ZMsXG70+XUX/6q6JM6qwOA8ipQuHZZO8VtK7WxE4Y4+3dAAo9sLWUMH90rQc5KaVvNyZJFt15hoyCmrg28pn+coeEWNG//m03aZRSeHRE7OQXPTF+5akvy8Rwdd4t2M8onq9Wb3IgCFmMD/rSlUgRj201yrHMDKTrMGgJMRonl/fQOM29SS/XOKGlJWyu/UOhNTFPfggtuoA16N49sJgiXtkaVklOhpigmSAQRj+SMxELbo5NTgkvOilIhRW1R0PvUsFd+gPlgXQVJ9Yill3tHdo7q+xbJvOq8hJJE67c+LdIwrEyaWj8LpCFzdh3FQu/SNZK1gMALfSnhA6cgJjSHoDEn18iW6bKlMztEdNbKntDFuZv5liWBmlDfoCALZfN+K5ye7l5RCF7z+KC3/5oRPy9eMaSHlzOHVFWBxZhpKtJrsOAH5L8kdcIOYzmTix4B5y3xhYo0a0gCPE/9FcM0o7QV/y5VosLJVdf57ltl2WC9Izv/sFxDodPLf33w+XtefwvTqRHOCKjnYIA7Gffjfn8oeILBIJEZXeh4L8JZ4iWOsxqgtHFHRUBT4XOm1DxQiRxsKRIA/4mDaQEgBSlrr4VeSW1mkIbHFZdYqIcssAkwJtXK/qWm1jIEbRRWVUD5kbjf32S5LWgLQ45snSUOdVIbuw2wvo2qA9gsOLNG88xruw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(38100700002)(36756003)(2906002)(66556008)(31686004)(66946007)(86362001)(83380400001)(66476007)(4326008)(5660300002)(956004)(2616005)(26005)(6486002)(8936002)(16576012)(316002)(54906003)(6916009)(508600001)(186003)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ckxhTG5HMTQ4T1J1SWhvdzFOcjRZZEJxbFhKd3dZaGJVcVFyS3o4Tnl1NEZF?=
 =?utf-8?B?b3Bsa0QvN1o5SGpOWXJpNTFjbkxLSUxpTVFFaHE4eVJENWFVemg1MEhKQ2JH?=
 =?utf-8?B?eVEzM2tsS2FKSTlodXR4blJKaDQ4SzBwSVdHb0w2ZHFwRW9FWXF2TjdGNlRm?=
 =?utf-8?B?VUtlMmEyeDZCTmtFMmVoYWVuS0RVbHN3Smt3MnRRZjZ6NTA2YzBPckg5Kzl3?=
 =?utf-8?B?OGZnaFpJNmdsaS9WRjBIOFpCOEE5RzkvOWdtUlRkTTdMOWcrVkFhQkZrbTNS?=
 =?utf-8?B?WjVXSFR2NnEwdVVRVUlVRkRTR1ZsaG9lMG9HSitYQkhYUWs5WmFFa2Z1RThx?=
 =?utf-8?B?eVAybTJaU1JRNUlUV1hreUd0Q0FqYjFoYWR5Ym8zd05vODNINEpXSEhBNzhj?=
 =?utf-8?B?dFpKVlZjNWhwV1VwcDhBZ3JRYkpteTMwdFJGR0lHd0hWQ3lNY2pKMHBlb3Nu?=
 =?utf-8?B?cVMyd1hxaXlwcHlqVUxSNTVDbm9CTUJJWjhLVU01KzVScnZrWk1weUVsNGxC?=
 =?utf-8?B?SWREd284c3BLUmUwc2VMcjlLbEg4a2FBSEo1TXBKL01rdlpsUHZrMUhORkpm?=
 =?utf-8?B?cWdrbVlNWk9jc0FrK2FnOGxkOUE1TE9EZWJ4cFRDOHhMR213TWtNNTZ2eXR5?=
 =?utf-8?B?NlFSTWdWS1VkZXgyLzFCY2ExWjExdW92TXBqRG0zblVsWS9VY0J1ZmtDVU51?=
 =?utf-8?B?Z3RhUG9JYUluU0VmNlJEOU4xNE1vVU5kODRkZEV4aUxwelgyUFlCUDdqM3Ex?=
 =?utf-8?B?VUd0cUt4YmxkUDJhemt1T2Vta1JHbFdmVnNUazc5bDBzczlyL2ErSlVJMjFB?=
 =?utf-8?B?RWd6Zy9DZjJQQVdlT0ZGVFcyeVZpTlNTK2hOazRzdzJ0ODNtUi9zbVRtb21s?=
 =?utf-8?B?bDJoYUwxQjRodG94RVNLU2hqYndCcGcwTDJCL1UyWlJ4Sjh5cHFiZktRbGRE?=
 =?utf-8?B?QXYrVG90bDVsRWhhZmxvdzhTUk1vYndMa1FRWmRBeWNtcEErY1BMTHJscU5t?=
 =?utf-8?B?QWZqcGZiV0NJdW8zdzNSaEZQdEk0RElySEpqd216SHpSSDIzZ2hxT2F4ZWNB?=
 =?utf-8?B?elErZ0hlTklpY3JaaUdtZE9adFFQYVBUbHFQaDlUd1BOaENUVFFQaHJqRlZB?=
 =?utf-8?B?VzVaTFdtSktTeEIzdkRTMnpJcXA0clpkOUdBZUF6ZkhXR09DSmNYSDBJWngr?=
 =?utf-8?B?cmYxa3UxNTdiYWh4ZXFGZWVKYnlPaWhHYzJ0VCtQUksyMkFVMTRuQWIrQjhB?=
 =?utf-8?B?dHVpSm9BNU5kUmh1REdReitZaTFNU1F0NHI1b2ZtV1VDYlV1QmcwbmZndkts?=
 =?utf-8?B?d3NtRkRhZmF3d2V5cjBVMElBM3I4K3d5NzVLVHlvaU5BTEVFYWlRM1hMb2lC?=
 =?utf-8?B?dDhQdEw1Q2ZOeUJBTUprdDhRRjd5ZUoxMktKYVZqd0tzZlRpT3lWYkZOdjZr?=
 =?utf-8?B?dU9sVlFhdEp1ZlRRaGpQWDVFRnV6T0dramp0NGIxN0E5RUZMa3NSMVVxM2Fs?=
 =?utf-8?B?YlBWNm8vLzRESFJ0cWp0dnlLaFNCSnlmN29LQXF2ZDc4YkdEYXk1SDBwZXM0?=
 =?utf-8?B?VGJ0eW9hSFU2Skl2d2oxdjNRb0ZVVUF1RkQ1R1dldVNydTVVNnBxN2szUUFK?=
 =?utf-8?B?RDduQmFlWDVkZVlFNjZGMCt4c2dIWEh4bkZrN3A5SzZFVTI5VGhIL3ZVSzRn?=
 =?utf-8?B?aVNDNkE5L2d1dXB1elhmY1YvR25RMUlKTWJHRXJkSDhjYWR6MmhEc1hhMmZ3?=
 =?utf-8?B?ZDZCbUtTb0JwdkMrdHRlQXRqMkxGSjVhbXlIenIxSFZxZlJKcWRKTmJVN3Y4?=
 =?utf-8?B?WTlzWDg1TStqRmZMTzN5U1o2UW1JdmZkVGhmYXhxOXRnRjdhUmdkQ2NjNnVO?=
 =?utf-8?B?RGhTaHM0cmJLVCtqcmR3Y0NadGt5ODlyOTNWYk5sb0JmMnJwckh6Mmo4UXJ6?=
 =?utf-8?B?bERRNkdkV0thQ1pva1pydlV0UWo3anRYVGRuRXhxUEFPYVBGdzFxKzhHM2pp?=
 =?utf-8?B?TmFwb0NTaTVnUW1SamNWeFE0NGQxa3duL1BpTUU1dzRYcTRsbnQ2NURVK2pU?=
 =?utf-8?B?K21WODl1MWE1UGt5N2lvdHoxd21yaXhaMi8rUVJzRHAyOTRlbDV1dlk1L3o4?=
 =?utf-8?B?RENtVjhlSnQ5RG9qVUpUWEtWaUJ2OTJVaEU4ZDU5MFRrOGVrbmxjUlcxMGc3?=
 =?utf-8?Q?t6ALRW04tzu7eaJfMbREjlQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aeb108c7-a028-4a22-71e4-08d9aa9564bc
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 13:14:46.7865
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MyRKHAGN8R/tmaL4/Gr8Z6YTFKChhRqPskc3BE/N9DNYLpRl0TCr6Rgmdp/ZAn67HFXLc+HjyQ3rHQ+iayxOXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2704

hvcall_{flush,ipi}_ex() use more almost identical code than what was
isolated into hv_vpset_to_vpmask(). Move that code there as well, to
have just one instance of it. This way all of HV_GENERIC_SET_SPARSE_4K
processing now happens in a single place.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -628,10 +628,14 @@ static unsigned int hv_vpset_nr_banks(st
     return hweight64(vpset->valid_bank_mask);
 }
 
-static int hv_vpset_to_vpmask(const struct hv_vpset *set,
+static int hv_vpset_to_vpmask(const struct hv_vpset *in, paddr_t bank_gpa,
                               struct hypercall_vpmask *vpmask)
 {
 #define NR_VPS_PER_BANK (HV_VPSET_BANK_SIZE * 8)
+    union hypercall_vpset *vpset = &this_cpu(hypercall_vpset);
+    struct hv_vpset *set = &vpset->set;
+
+    *set = *in;
 
     switch ( set->format )
     {
@@ -643,6 +647,18 @@ static int hv_vpset_to_vpmask(const stru
     {
         uint64_t bank_mask;
         unsigned int vp, bank = 0;
+        size_t size = sizeof(*set->bank_contents) * hv_vpset_nr_banks(set);
+
+        if ( offsetof(typeof(*vpset), set.bank_contents[0]) + size >
+             sizeof(*vpset) )
+        {
+            ASSERT_UNREACHABLE();
+            return -EINVAL;
+        }
+
+        if ( hvm_copy_from_guest_phys(&set->bank_contents, bank_gpa,
+                                      size) != HVMTRANS_okay)
+            return -EINVAL;
 
         vpmask_empty(vpmask);
         for ( vp = 0, bank_mask = set->valid_bank_mask;
@@ -774,31 +790,13 @@ static int hvcall_flush_ex(const union h
         vpmask_fill(vpmask);
     else
     {
-        union hypercall_vpset *vpset = &this_cpu(hypercall_vpset);
-        struct hv_vpset *set = &vpset->set;
-        int rc;
-
-        *set = input_params.set;
-        if ( set->format == HV_GENERIC_SET_SPARSE_4K )
-        {
-            unsigned long offset = offsetof(typeof(input_params),
+        unsigned int bank_offset = offsetof(typeof(input_params),
                                             set.bank_contents);
-            size_t size = sizeof(*set->bank_contents) * hv_vpset_nr_banks(set);
-
-            if ( offsetof(typeof(*vpset), set.bank_contents[0]) + size >
-                 sizeof(*vpset) )
-            {
-                ASSERT_UNREACHABLE();
-                return -EINVAL;
-            }
-
-            if ( hvm_copy_from_guest_phys(&set->bank_contents[0],
-                                          input_params_gpa + offset,
-                                          size) != HVMTRANS_okay)
-                return -EINVAL;
-        }
+        int rc;
 
-        rc = hv_vpset_to_vpmask(set, vpmask);
+        rc = hv_vpset_to_vpmask(&input_params.set,
+                                input_params_gpa + bank_offset,
+                                vpmask);
         if ( rc )
             return rc;
     }
@@ -895,8 +893,8 @@ static int hvcall_ipi_ex(const union hyp
         uint8_t reserved_zero[3];
         struct hv_vpset set;
     } input_params;
-    union hypercall_vpset *vpset = &this_cpu(hypercall_vpset);
-    struct hv_vpset *set = &vpset->set;
+    unsigned int bank_offset = offsetof(typeof(input_params),
+                                        set.bank_contents);
     int rc;
 
     /* These hypercalls should never use the fast-call convention. */
@@ -917,27 +915,8 @@ static int hvcall_ipi_ex(const union hyp
     if ( input_params.vector < 0x10 || input_params.vector > 0xff )
         return -EINVAL;
 
-    *set = input_params.set;
-    if ( set->format == HV_GENERIC_SET_SPARSE_4K )
-    {
-        unsigned long offset = offsetof(typeof(input_params),
-                                        set.bank_contents);
-        size_t size = sizeof(*set->bank_contents) * hv_vpset_nr_banks(set);
-
-        if ( offsetof(typeof(*vpset), set.bank_contents[0]) + size >
-             sizeof(*vpset) )
-        {
-            ASSERT_UNREACHABLE();
-            return -EINVAL;
-        }
-
-        if ( hvm_copy_from_guest_phys(&set->bank_contents,
-                                      input_params_gpa + offset,
-                                      size) != HVMTRANS_okay)
-            return -EINVAL;
-    }
-
-    rc = hv_vpset_to_vpmask(set, vpmask);
+    rc = hv_vpset_to_vpmask(&input_params.set, input_params_gpa + bank_offset,
+                            vpmask);
     if ( rc )
         return rc;
 



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 13:21:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 13:21:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227416.393319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhLO-0002fp-C5; Thu, 18 Nov 2021 13:20:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227416.393319; Thu, 18 Nov 2021 13:20:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhLO-0002fi-81; Thu, 18 Nov 2021 13:20:50 +0000
Received: by outflank-mailman (input) for mailman id 227416;
 Thu, 18 Nov 2021 13:20:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnhLN-0002fc-3f
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 13:20:49 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56d7ecd8-4872-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 14:20:47 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:37320)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnhLK-000fwV-mn (Exim 4.95) for xen-devel@lists.xenproject.org
 (return-path <amc96@srcf.net>); Thu, 18 Nov 2021 13:20:46 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 0097A1FAB6
 for <xen-devel@lists.xenproject.org>; Thu, 18 Nov 2021 13:20:45 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56d7ecd8-4872-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <0b8a1864-5ae9-3b19-4d43-893a5777985e@srcf.net>
Date: Thu, 18 Nov 2021 13:20:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 0/3] x86/Viridian: ExProcessorMasks handling improvements
Content-Language: en-GB
To: xen-devel@lists.xenproject.org
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/11/2021 13:12, Jan Beulich wrote:
> I've noticed the bugs fixed in patch 1 only while doing the other cleanup.
>
> 1: fix error code use
> 2: drop dead variable updates
> 3: fold duplicate vpset retrieval code

Oh, nice.  This makes it rather easier to do the flush short-circuit for
HV_GENERIC_SET_ALL.

I'll try importing this patchset onto my branch and having a go at it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 13:26:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 13:26:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227420.393330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhQK-0003Jn-07; Thu, 18 Nov 2021 13:25:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227420.393330; Thu, 18 Nov 2021 13:25:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhQJ-0003Jg-SZ; Thu, 18 Nov 2021 13:25:55 +0000
Received: by outflank-mailman (input) for mailman id 227420;
 Thu, 18 Nov 2021 13:25:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnhQI-0003JZ-Fy
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 13:25:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0dae80be-4873-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 14:25:53 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2058.outbound.protection.outlook.com [104.47.13.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-21-8edaqIXlOhKUwRT9e_EATg-1; Thu, 18 Nov 2021 14:25:51 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5168.eurprd04.prod.outlook.com (2603:10a6:803:56::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 18 Nov
 2021 13:25:47 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 13:25:47 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P192CA0021.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:83::34) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.20 via Frontend Transport; Thu, 18 Nov 2021 13:25:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0dae80be-4873-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637241952;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Edk/7tlPwAHfMTQGjYz4puhyORycPzNtUVWTYTkXBc0=;
	b=dFcuGhXrrT7Uu5cpBCAYEgiF7BqAbz2qvJpVtWWyrss/pGEtlta5yYU7MtzHFDwJe/NPdz
	AqB1yMFeF51TZcHshM7/UP0RF86uLyDqRsopHDIILnLrN988g9CtQxqSI3lrI+qZvqoeBd
	nifjyRvVzQqCQe3mkvMSUXyURMyfFVI=
X-MC-Unique: 8edaqIXlOhKUwRT9e_EATg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jl59DAnDYYv6qlM/Q0mIz33G8XQ7WeTR3MGAgyeyt3z5E7Ez2Gu7n7KSZp2rWdHdsE5G/Ala7aPH6GTL/3PChOfa7KepsUYeCKZGSGrN+1XA//lD88zpMmfkvSzT2tiC8V7tGta/luL6B5WEU28Y8DnJ6ujrUOQ9Qtd0f8F58A22NqEcRk4tS6k04nPa4eRgPvlC6Wn2OuztVO9abzFiZr7dRLOCV/Sl7SPpu5iFaT7a3a76iyo3MwLM0hzUYjpYL8HDm4n09nBjW3Rq+L1KYZTNEHSennQsvnXC6ih6pgg6wGujuImNUbNxFvcjnXHvQe4COiVN+PiJfuOjer9kbA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Edk/7tlPwAHfMTQGjYz4puhyORycPzNtUVWTYTkXBc0=;
 b=eJzHB4DPrdl8XGHliaYZxHfGxWujOTYCb/jtYp7/CLLbEI/0kltooA94c7iowWiKmlR12tpY/zE5B22eyVdiec4xCvF1GY5WJbN/ooZ7wV9IDvoKjPDqr4R0pkyV8nsI8Fc3zoWiEE4EjYRcxz3sbyplasK+5Fec1GTGK+7ZYe7nVS2+RecDDCJLIrfr6uff0zbIXWz6YcFgTagZ8Fi629dHokukwPUV0idVja5as+jLrf2D6CmIwDPYqMMI+jy76pmWT0Unoh0YtCpvB16OseLKiRdyz9xlWI0LYkZrqXZXdLVE4t9FzXt6ccbDAGG31vYyplNBE5uQ3I0gplxC4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
Date: Thu, 18 Nov 2021 14:25:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P192CA0021.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:209:83::34) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f29923d2-5ebf-4db2-7b6d-08d9aa96eeb6
X-MS-TrafficTypeDiagnostic: VI1PR04MB5168:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5168584F5AD610A0B3B35CD2B39B9@VI1PR04MB5168.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4303;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	h/w5/lr2XNay/vW2azere6kaZrBN2Knrm3N5g5boz0ez65lDTjr5y9E2Cx2Iy/U4Q+yzpsj9dT5XqvPCzYH2mVJr7VcNWNG1i1lLO5Q0CyFj1IHJKWxc211dtOmhFEMsf9H4wXFthZc4yHZeG/XVo6+2Xj4OSvbU0OzjICHY1fAnuB5c3762/GwCQ5PijPoBqCZNoL0fRrjABJ58zte9U5H5ytb7GyRsKAj+XjhY/Z6bvM1tEoMz5l7ltOd70PsC4R0w+6Uil+n3DmuSftYg3hErqjgbyhs6pQnTRzW6Ps4EeePbyAT799oujj1Ezv5t3u/cwv+wK4ZKAD6VO/7XKgVBlJcpK4QiadlSw467dp+9XpzKZ7f4zSwuqtrKxBbFCdfg03SHTzAyUN59XwJ0/ZKp0GZO6QTp4g4UaaIDbXa2vJIkEwhMMS2LNQ6xhIM9025hTAjHxQDxpTP7zuBkN8CO/SZtg2xPZ5CAKRdUsQreSzKfnyow2qcpeVbBDuv0CWcqf1w7cT6KsMlQdq2xSzKH5iB9M1Rzi9JCLUBKkio2Ew1vuSnGZEofLATcy9ne+Im7DsUzG1UJbkwlxjtsoJGsdF4XmpwioujTNpVBAI2ulIfn/BUlFLUqexmPJmzzDRygaynXLiwFml53peBd//cGKbr5ZgLcqojSxFm/KFI4hSqLPadd4WK0PzJSrWmMihk7PbBMn5lWxApa6g0UBmLQbUbRImAmwFFDZMibfJPMZZqW1Vj8wxzVSw/fTxE9
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(956004)(16576012)(83380400001)(508600001)(31686004)(2906002)(66556008)(186003)(66476007)(6486002)(2616005)(7416002)(53546011)(26005)(54906003)(38100700002)(8676002)(31696002)(110136005)(5660300002)(4326008)(8936002)(66946007)(316002)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TFFJOENBcEtqRjhhWm5iM1BHT05USjBEZmhhRktoWm5NOVhZdVlIdnlVR2J3?=
 =?utf-8?B?cit3VlExSFUwSHdGUzAwUSt5LytDSW1yZ2hhdTZZUEdHS29iTVBYdEhrVXlO?=
 =?utf-8?B?VjE2VWs4THMrTkcxRUhTalRmRktFTktPUnJBWTRISTJYQmlDaTRFS25mNXc4?=
 =?utf-8?B?M2JUdllTTDltVVNzN0JxNDl0RjM4SDZWbDhxdWVOcGEyVk82UC9ienhyTVdS?=
 =?utf-8?B?dWl6TWF1bG15YUZNRDRab2tEdGRKd3cxZzlsQS91YmJURmJacENUS05xYjNt?=
 =?utf-8?B?WWR0VGJ2UGVqcFVzckR1aVFzWkNlMFlaMXNYZWwrZW1TQVVocWwzd2VmZS9N?=
 =?utf-8?B?YWhEbi9MeVRRbEM3SS81dEtDU2R1a3hxaVJkODJ4QlNxVWFoU1FHTExGWlhJ?=
 =?utf-8?B?dzgvUHFBdnZudWdzdzBuUStzWmQ1SkNTUFVEcjdPc0ZtVXVwMHltc1JKN1g3?=
 =?utf-8?B?c0wra2x4ZXI0M3pJbkdLdlJpQno4MEJrUzBYTktZbFU5R0tHNEtqRUV2Z2ZD?=
 =?utf-8?B?RXI5WDRtamdWcXZMbmpxR3I5YXRYcGVlV0tqWnJUWGZXWmtmOWgvNHB1RzFB?=
 =?utf-8?B?K1lVeDVKTldGclJQeVJzbUJ3amRubXUydGloVlM5dkV4MWRjV2EyeE5PNzlG?=
 =?utf-8?B?ZVI4cHI5SlNFUktKQ01BZmZ0dHlQdUhQQXk3aTZBSHFCUFc2MHV3b2ZPMjhY?=
 =?utf-8?B?OEx6OFZuWTRkUWl1MWZZZ1d2clRCY2FqQ3RGWmI1RHhDMDBJb1R6Yi9zNFY3?=
 =?utf-8?B?aG5kZmoyUVVQc1dhUjVod0RrVXpDUVdjc2w1QU01d0hNcU96aEt4UGcvV0lR?=
 =?utf-8?B?dXh6VGdPZmdXZEpCV1hjNks5REhGdkYxdlB5UStLS2duZ3FDSDNjV0lvSkpZ?=
 =?utf-8?B?S0dJU3gwNXc5RTRvdk95WG5DQlRaWkFibEl2OEF1T0RCY3Q4Um5CZndXVzhY?=
 =?utf-8?B?UUJTUVdXMncrQWRGUUZtWTc3Y2tGeE1hQ3UxTWk0RzVXSSs5WEZSckZtZlh6?=
 =?utf-8?B?M21qOTlWVzFpN0pab3BwdWVqbGpSckJMSTdtNWZkTGFvOVgzSUVsMkxKM3ZS?=
 =?utf-8?B?NUJnbGZTazdaZW1DM3lIbllWVDJUNUtIdHowL1FqdVQyS1lwZC9pVzRkUXBG?=
 =?utf-8?B?eWx2VnM4QlJWZUd6Vmd5WGVrdGw2cVBka3pPZEJyNDk1UTYrVk5HR2dIZGpJ?=
 =?utf-8?B?MG1uQ2JnN1RPbGdYWkpKNTA5QVgvS1BydzVtd0prTXM3NURPMGhWREtrNW9q?=
 =?utf-8?B?Q1BJWGdNbjV5bjRDWkFhYVA5R2lyUkR4bmpYRTlkbzRhTDRtaDNNSFNlWXpq?=
 =?utf-8?B?TExUWDgrNC9JdHpTM1p2UEt3RlA3ajVwNTU2ZHIreEFFZFJSRTVjbFRVRXUy?=
 =?utf-8?B?SE8vbjZ1UkVNZ1ZmTFdqdzQ1VHdvR25HWW1TaGEwY2Rub3VHOWtacjY1Z1Z0?=
 =?utf-8?B?RTU1Ri9EY2hxUVl0Nktia3BoaFdCMmFKUmc1bDNIdldVbTZqT095akM3V3VN?=
 =?utf-8?B?dk4ydkJUSXhvMm1Udms1ZHhLa0lWMEJieGhCZVNnL1VNZ1ZNU3RFaFR5QWV2?=
 =?utf-8?B?Zm1pTUp6djJNNzFIOEFsMHRsUzcrWXVDOWR0WVlwRWkwM2RVbCsvUTZkQ1R1?=
 =?utf-8?B?THdaM29zcUxaQmJBOUc2NnQ1RE1WY2hQZURYU3I1RkRxL3hJczBXQ3dwdjlr?=
 =?utf-8?B?ZXVmU25UWFBjTlZSdXNBWkxKQWlCTG54YUVIQjBWWThRTS91Q3FCdEtVZVNy?=
 =?utf-8?B?ZTZPYUl6M2hybUxnaXF1TlJWb2FPaDdwVjVHZmhabkcyKzBRNUliTWRCd3RO?=
 =?utf-8?B?RFdweE5ZVFlGUERScHpDOUU2d1R6UzlsSUt5aHZabm9sSDlSazlPVjd2ZmpG?=
 =?utf-8?B?WUhwaWlnVnZ6TUd6T3U1bHYwbEJVZ3l5K2VGZUl2N3BqSTJyeTh5d1hNZjM1?=
 =?utf-8?B?Y1d0UXdTSnF4RWlWUHZiTGE4TGdXMWtyTHRsN25DWVdCaFJHLzFPMkV1N1pp?=
 =?utf-8?B?VkM5SXVJZDNFSll0bUZMU0tVY1JiTHB2dEdaZU82c1hzTWtudTdKNUNqZ0lj?=
 =?utf-8?B?THA2Q25VU21SbE1SelZKU3R1aCtiZFZyRmdhbjdydTZmTEtBWFZJbTcybWVY?=
 =?utf-8?B?NlMvM0lVbjArUVhqTk9mTm5LclgzTlJkVkMrWmVGS3RucStER1RPQkNnVEZJ?=
 =?utf-8?Q?g4d7QmtH3hNPzGzkWW+4hEI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f29923d2-5ebf-4db2-7b6d-08d9aa96eeb6
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 13:25:47.7667
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: b/aZsNmfgCmRaZ7OVlFJSBrYg7Tjj10bkeuCS/PPqQMgZdnJiqisOjEK2p4NWIzqbIWUkhrmvq5EY7nR74G+Mg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5168

On 18.11.2021 10:32, Oleksandr Andrushchenko wrote:
> 
> 
> On 18.11.21 11:15, Jan Beulich wrote:
>> On 18.11.2021 09:54, Oleksandr Andrushchenko wrote:
>>> On 18.11.21 10:36, Jan Beulich wrote:
>>>> On 18.11.2021 08:49, Oleksandr Andrushchenko wrote:
>>>>> On 17.11.21 10:28, Jan Beulich wrote:
>>>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>>>
>>>>>>> When a vPCI is removed for a PCI device it is possible that we have
>>>>>>> scheduled a delayed work for map/unmap operations for that device.
>>>>>>> For example, the following scenario can illustrate the problem:
>>>>>>>
>>>>>>> pci_physdev_op
>>>>>>>       pci_add_device
>>>>>>>           init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
>>>>>>>       iommu_add_device <- FAILS
>>>>>>>       vpci_remove_device -> xfree(pdev->vpci)
>>>>>>>
>>>>>>> leave_hypervisor_to_guest
>>>>>>>       vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
>>>>>>>
>>>>>>> For the hardware domain we continue execution as the worse that
>>>>>>> could happen is that MMIO mappings are left in place when the
>>>>>>> device has been deassigned
>>>>>>>
>>>>>>> For unprivileged domains that get a failure in the middle of a vPCI
>>>>>>> {un}map operation we need to destroy them, as we don't know in which
>>>>>>> state the p2m is. This can only happen in vpci_process_pending for
>>>>>>> DomUs as they won't be allowed to call pci_add_device.
>>>>>>>
>>>>>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>> Thinking about it some more, I'm not convinced any of this is really
>>>>>> needed in the presented form.
>>>>> The intention of this patch was to handle error conditions which are
>>>>> abnormal, e.g. when iommu_add_device fails and we are in the middle
>>>>> of initialization. So, I am trying to cancel all pending work which might
>>>>> already be there and not to crash.
>>>> Only Dom0 may be able to prematurely access the device during "add".
>>>> Yet unlike for DomU-s we generally expect Dom0 to be well-behaved.
>>>> Hence I'm not sure I see the need for dealing with these.
>>> Probably I don't follow you here. The issue I am facing is Dom0
>>> related, e.g. Xen was not able to initialize during "add" and thus
>>> wanted to clean up the leftovers. As the result the already
>>> scheduled work crashes as it was not neither canceled nor interrupted
>>> in some safe manner. So, this sounds like something we need to take
>>> care of, thus this patch.
>> But my point was the question of why there would be any pending work
>> in the first place in this case, when we expect Dom0 to be well-behaved.
> I am not saying Dom0 misbehaves here. This is my real use-case
> (as in the commit message):
> 
> pci_physdev_op
>       pci_add_device
>           init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
>       iommu_add_device <- FAILS
>       vpci_remove_device -> xfree(pdev->vpci)
> 
> leave_hypervisor_to_guest
>       vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL

First of all I'm sorry for having lost track of that particular case in
the course of the discussion.

I wonder though whether that's something we really need to take care of.
At boot (on x86) modify_bars() wouldn't call defer_map() anyway, but
use apply_map() instead. I wonder whether this wouldn't be appropriate
generally in the context of init_bars() when used for Dom0 (not sure
whether init_bars() would find some form of use for DomU-s as well).
This is even more so as it would better be the exception that devices
discovered post-boot start out with memory decoding enabled (which is a
prereq for modify_bars() to be called in the first place).

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 13:35:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 13:35:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227426.393341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhYs-0004l4-Rv; Thu, 18 Nov 2021 13:34:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227426.393341; Thu, 18 Nov 2021 13:34:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhYs-0004kx-Og; Thu, 18 Nov 2021 13:34:46 +0000
Received: by outflank-mailman (input) for mailman id 227426;
 Thu, 18 Nov 2021 13:34:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnhYr-0004km-F1
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 13:34:45 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a959a52-4874-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 14:34:44 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2055.outbound.protection.outlook.com [104.47.2.55]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-12-FGdETZy1O4Ow78U1oJkrSQ-1; Thu, 18 Nov 2021 14:34:43 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5742.eurprd04.prod.outlook.com (2603:10a6:803:e5::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 13:34:42 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 13:34:42 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0246.eurprd06.prod.outlook.com (2603:10a6:20b:45f::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20 via Frontend
 Transport; Thu, 18 Nov 2021 13:34:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a959a52-4874-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637242484;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jmCGzeGuWKb32AVWn8aZJOcGm5Or68mZhwJbH2Q6nMA=;
	b=SfuV01sDgt6pt3zsy4tZLeknmJhbxTl2AcxwFBlmi5BTcbT/WxqFyi8XeaPnuwoDIbCK3w
	/rPdhVvU46NxP1Zt5p1gHLkZhFvhdR0WghsbvGgKVbxqT+lXxdpbYUCL5kR1UtBtKdw1uM
	E83hKBjwVaDR6FZc6XVJdoSiSk1wsX8=
X-MC-Unique: FGdETZy1O4Ow78U1oJkrSQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=j63cMyLmtd4B0BLZShNAK3MAR4RoH3HNNfxhB5ueDR/ovVSqFr9/+hi0hDE6ADwuzcbTP2ixV6nhwN7ral2n61wAPFP5RZ08BgrZOPjkmh3F/glDILQxqKQzmqlcGKcSVmz0EEgN5YoiZ+cMLwLvkq35oAtmNJrS0dtmyYaPyUe44Aq8J2EwruNW1t4sPAeLH8fe7RX+idVkiLDquvttQM+h3vQsmoc6l00snQsu1E7L45zKSWp03t8jGbcb8Z3ikvlNT9XIDZVBLUw9/DvBGiZBElSoDjsiUQ6+fZ09JCAEt3petxK3vTgI7BTTllYXpQruGQU99Mm3tH46V+nY7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rxaPk6KylYqBA6TKcE7yXlK1ISqGjzElhwR7l/ecyRg=;
 b=BdSkJFK55iMpug4Ai7+YcLmXjLA92Sdwl7xFOmxXkgFZNeyl9B52BIccHX7kGBb3atTczqrvqVuiwV8sRrso/AfIn1vQk8DhI1Z0Qunqjnb5DuC134u/JVjwUjMFl74rWdEVQYeJK/tzb7HLmLaAi7Jb6GeaqT/4ZWAvx1GGG23gk9E5RoDp1u2hq3cqLco6YzAjGb5ymkWJqFar7P2gn+YqV9Ls9sLMtbmXI1szl0tpcFQs9xwvNQ7q6T4gH+OQ6R9KsnXpaYEK4CVuY6aCbVB2K7B7KyuCAN0gjag2XUOZ4kO+Y/vLySIrz+nbp5DsSMRFrkPGPJHoB/C53HIiXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <44ccd257-6c8b-c35c-a0be-1ebdbd6d8ad6@suse.com>
Date: Thu, 18 Nov 2021 14:34:40 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 0/3] x86/Viridian: ExProcessorMasks handling improvements
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, xen-devel@lists.xenproject.org
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
 <0b8a1864-5ae9-3b19-4d43-893a5777985e@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <0b8a1864-5ae9-3b19-4d43-893a5777985e@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0246.eurprd06.prod.outlook.com
 (2603:10a6:20b:45f::12) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f63d25d7-6b2e-4026-f330-08d9aa982d64
X-MS-TrafficTypeDiagnostic: VI1PR04MB5742:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5742381DC4EEC6A17D27D04EB39B9@VI1PR04MB5742.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	DiYY6EUMP+LsETi2HYOW5MsVWDOSztjxNQiI7tCN66PJp2woqBb2/zrN1GNZMJpoMhNt8v9MazZooz/57wNAS7d+1Ry9fnUQZiRdi6pl6n9voPZ2R7ml/bftE2/dVafrRwvA6WgOxYna0G3BcbqRSVHbUmS9Xt7XvD12C8S/lCFKbqBxs80IQWwHb62L79z4Jc8uEktzrbHVkAK6BzWeeG52cvtR39lsyk4II7EMHe51bqCWAPcg8Z83qzUOTtT7MFBv2M60ZGBUzL+2ql28Udo1OoR/1W6XmB6U5H3BQlHUy/cSdS+ykMA/6nsyflqOpw27GJs0wM4EK7lBntFCR9VHQHcg35CZ106B5PfwLdsVlqSwml2Pc9WogGq/+VgQXt5xJpqRdsJBr+e63HCSCWuaNuW77XMB7rnBcFJCyIcCqZbwJ2brh2CULtFy0YAxlwe23utxVR8LLIkyxCi6xh92DSr21Wikixi7b/VRhx35Lp1WMbme/SIX1T9lcm4xIkWmvQAe6C4cGZgvVSPsYhkNiknn9xFFWdHnvFjzGn8fmTLqahw41z0TgrqEVnrpWtz7H7ck3rHE0pG8PhzqKG0jpc9a8rvursY5rZtJSJdXxBzD9Qx/Qy3JSbRwS52x7UP0C50vAe7M6wxkyoJlotsAlLRj2l4YQ2CWFE+sgJkvairkyJVRwcTVu/tOWLFN4tnWJXvmbcGdC0q3pyQt7GNLZLv+98JKERkpqmdkPX6BjSUnqgmX9alVk/9M5tnX
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(366004)(508600001)(86362001)(4744005)(6486002)(8676002)(2616005)(36756003)(956004)(66946007)(66476007)(16576012)(31686004)(53546011)(316002)(83380400001)(66556008)(186003)(2906002)(5660300002)(8936002)(38100700002)(31696002)(26005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Vrd0lIS5TH6z/J5nPpHSBNkUTlTPPvZ4NEqChvj2tBXWOSz2IDLJD/9ozF0k?=
 =?us-ascii?Q?6dLukPIvMAaXnq3fivgoDLdE9VVrBZl1CcxDOQwvKQJmwe7BolvPQV/DHs1g?=
 =?us-ascii?Q?1NV/NswzSWl95rT0gJMiYx0Edilh1jyLQIYzhdbudcw5twgJVnrKiiBHuJ6r?=
 =?us-ascii?Q?G/lezlFS/bqqm5YWbptNjqekBFIv/+xC0dSg9lwnzg+EV56zw8B+UB4Q34WA?=
 =?us-ascii?Q?LtK+TcBqSusU0PgdOQjLcRZgF8YKAr6qlPZGbJL0Af6yk6OjBtcF/8itiWib?=
 =?us-ascii?Q?P7ShmeubuvRl4iSXgsYkvW/ffMEOrgu2LPbvBL4sDdFJl6IZQDljz82gFshY?=
 =?us-ascii?Q?OHUwX9/fQxIvxRC7oBeYQasIiC2jPt6nXTF7PBP+Nz099KWXqSO3qKaMmICg?=
 =?us-ascii?Q?2aUUWgQfIvfmyFNCXbvnruxF4mLcdAMzg+90nI/EW23Fy/7k8o/WgHKLrUwY?=
 =?us-ascii?Q?zfFbewC3NtwhNMMMuOGPEjrk/KJZHKAXih4p8iDh/mtxwJCqCttd1zeXjYIv?=
 =?us-ascii?Q?iURwS59b13lL/dfnQ3mM5EaiWW12SV1IlTr3n6yWj7QT9vAji8oRa7BOCult?=
 =?us-ascii?Q?rXbw9TkqvIbckZTOWB0GkChR9l/ChrawsG7p4myMI+CcV1+cPfZNgKRi7aQH?=
 =?us-ascii?Q?iXn4DwcmsD+MK+s37x/KYU+qdzGoDkaz2NI0Asgt243qUcLGIr4fcwhJ0OX0?=
 =?us-ascii?Q?ZlgEi3OQll0V7X3wC+p3khTL0Axpul8HP/38uQdwmC3oZaOHfwUEkimfyAC1?=
 =?us-ascii?Q?ZvGH/lSQ5vOml9xJSN2VB3Hu8iT+KOXfM5JnsE2sUWJBRIRd+9h0JOmpQz+P?=
 =?us-ascii?Q?fxeny7cuLmTZWroLfoAZvbglHpt/RjwMG/BApci7symUfz3uH7nW6eyzl07L?=
 =?us-ascii?Q?oZDb4WZOrllGWQQ3MEnVacD7nUtx0tanJ21Sy9Qu8KppTDWEsUoao9+2l7zJ?=
 =?us-ascii?Q?6H5mecuGt+td0c/7JVBGIhtQ2bE8suf3du4HNyAe7AcO9IuzzW+xitj6O7Vp?=
 =?us-ascii?Q?b0Erss5Eh9fBpshd0qY6N/00mnSOQqOgdkYQMavBRvOCwgjUQY6Et35r+tSc?=
 =?us-ascii?Q?wgknXRsOvG9yolWgkRn4h7i60zcni9O4FaMLqCutyZRPHblEG3WEoHGvnn0S?=
 =?us-ascii?Q?SttH2+87p60h3WtIHn8D5Fu3T+oIv4+jRYNGMlI+D3LeNLvRpxwn9/2q3BuW?=
 =?us-ascii?Q?sTvhZddpwmLPi9GEX76LxTA8i+SiXs27npDBiUehwV8AOI7K9rG6CFe5+joW?=
 =?us-ascii?Q?vnI3b0BpFw4hAUBmp2ApC61E+8gq0EWtmMbKvWCwS1D0K22GR3DQZBzG0Bv9?=
 =?us-ascii?Q?+3HYlzP8hWSgoDIPoYdEKJn4hzRzjw7isCw+bf2OEbZ53Dyb4fyTnMo5NqGC?=
 =?us-ascii?Q?48X9aZxPryLc4cGzhYz0rEudglObKrXVH39I/ilFL5uk+K4Z9HKCccYsqiF2?=
 =?us-ascii?Q?smkz6B4uESbvJTdLjGMwMwgUHBO0qEbM7rWnzAC5LmRBptuHLcB05iy4LoJ7?=
 =?us-ascii?Q?bRrXYjXbisz4HyOeMRSzoE1BqDnke13lu7SdyTmcttgwdo2fuJF3VQQ69Xhe?=
 =?us-ascii?Q?q8qwiYWsjzR9L5MbIcO0tq5UO1WDnLHJc1WFD4ei32YDRUXfQGlVOnwI3EM+?=
 =?us-ascii?Q?Rq6MEy1lXQQ5Ua1kgH2QhPg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f63d25d7-6b2e-4026-f330-08d9aa982d64
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 13:34:42.4646
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9/rqPAX05/0JdQhcEWWAumlIRw5r1/E9cvXW95I2QFLupxBXVcm+g7FBGsBqPg/pL3K9iovSC1SycJhS1EnoRw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5742

On 18.11.2021 14:20, Andrew Cooper wrote:
> On 18/11/2021 13:12, Jan Beulich wrote:
>> I've noticed the bugs fixed in patch 1 only while doing the other cleanu=
p.
>>
>> 1: fix error code use
>> 2: drop dead variable updates
>> 3: fold duplicate vpset retrieval code
>=20
> Oh, nice.=C2=A0 This makes it rather easier to do the flush short-circuit=
 for
> HV_GENERIC_SET_ALL.

To be honest I first thought it might, but now I'm not sure anymore.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 13:48:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 13:48:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227432.393352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhm2-0006FZ-2B; Thu, 18 Nov 2021 13:48:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227432.393352; Thu, 18 Nov 2021 13:48:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnhm1-0006FS-VP; Thu, 18 Nov 2021 13:48:21 +0000
Received: by outflank-mailman (input) for mailman id 227432;
 Thu, 18 Nov 2021 13:48:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnhm0-0006FM-By
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 13:48:20 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f3eefb1-4876-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 14:48:18 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AIBZDPE020080;
 Thu, 18 Nov 2021 13:48:15 GMT
Received: from eur03-am5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2058.outbound.protection.outlook.com [104.47.8.58])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cdchgtr7u-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 13:48:15 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB2829.eurprd03.prod.outlook.com (2603:10a6:800:da::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Thu, 18 Nov
 2021 13:48:07 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 13:48:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f3eefb1-4876-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iWVp4coT/c+yB002O1Xkno8QrGCypWBXB8nP9ohSqfXYbw/nstVTunYGU0vwlqjx266eyq/CCMJFs3WLjYxTkbwBRiduZ3RVTk7ufAoVccanay6UGPDhhSxFPp7bKLtuTieQAEIM5dFKiEboD5iNzpd351izvAQ9ZDCPviETUQU4QwD1hr7eccmWTznpifd7/xXwx7iI+3qSnsHdX5+ODY2fAsFWscOk4c7wVX4stj2wZEsEdFwCfl7CMUta/21BBFX25V1r6geuZMc1Yz3eFDVresqR1IBLg/IQHSJu8oKNJZU0Ge6M89wc8mkd2/1vuUqJeIG/OqzsGm6vSQhcPw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nbg+UYZgRAFSEXvRxiZrMy4N46RL/4mL3h1polXP4v4=;
 b=fH0DSwyK5ui8ekdTVX8TRgGAfaLWppGf9/e+pCLNko4PdJDCObEFkbqU95OTLcZqiXw7TiMpQwGHlCmJPrGru35UnXjMO91qdi8IIK1gk9gzYU82158e3+A9eUj54/C9ec85zLlnSOmMKTGlZSYSn76Bl7qfD3VLbZm1ZdWFfi1DjuN0kFl6Bd9rYDNvr5kLTh51Wxdo0VcYs+bUN684qIOQPdP3wVbZcbyYm4vb5OLNSBWGk5m5NAcLZta25ogygXr/arIYffAyxzB8dVx2ZCK0Ztx9F4hjreC92l7ALWPFdc24b+JXPDD3HofknOGoTNRacjzSSzrOIbOEhuaWEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nbg+UYZgRAFSEXvRxiZrMy4N46RL/4mL3h1polXP4v4=;
 b=pwoFlclQzAyunSIexrZWGXrqhsHLHjbBy/UB7W2q4r1nqO2x6i4LDPSgotilBeZXWM0zLPl2xoYO3wMfCIz9vhb1XhHv+NetEoVZGJPvwxvkWRV0temlVRYUEJIjX+1ggyq6a9nIQ25VK1hTRgJKgqIoPArhm8pRv8AWmOo+xX5sl0SF+aVzUi6k5KbCOQxsXt6PAxg1G0MWIfmq5rtPEBjjkC9uZ+mWYGqRWpIZh5VPPO24yuDKQwmB9NjwyXrJVBTRfO17DHm7rck7q1QxncxGRT6l/VpI5lfJItinJyzcyCJOtXGm9xeeAeAG6ntExPJ+3STSPduJ0ylMoT2Hcg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgA=
Date: Thu, 18 Nov 2021 13:48:06 +0000
Message-ID: <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
In-Reply-To: <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: e7a172eb-3b02-49c0-ee67-08d9aa9a0d11
x-ms-traffictypediagnostic: VI1PR0302MB2829:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB2829A13D107ECFCC82255693E79B9@VI1PR0302MB2829.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5516;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 UucAYTfsCKefya5aWmWn4Ivr929qwbyVpFB+ZXmcfVkc6bebPxsnGjECO+K2grJOnyqeZry7nZKoJVrpRYrRgyjQlxXcmNP1jKGM1FMGvs8/d/sAeQJLZBBrEPsutd4ey+K1BxugYZVagvAWT3ti385NM7mrwYAf40LVxT4xMeF8uWhHSZ3XxeuAFeq6sOEggCeeVJwkuwv07QlOiTQ4HJ++Rvva0qpTsgkNvsyRT0T0hvWQ2mdacvagtuBuyxzdD5RoCRIWz47fIKzqTFaklwm6eUjbywOaoi65bWM4OGFjyYEGaYsN/mw4v7AhRz6LHihyaEoMIR0oqh8GWhoUwxETa3LjkzLFtqLg2CT0q1dtO2y6jAITWJvRe5PE+FwuNKhTaErm9UJNv0mck/M/XImi4QHAqBuFIZVYezUx9FzP395vf6YEp/5fcY7a3bphHke4FG0enW9AauiWkp/sC8IG9+B6zlNYibf1nxbQseJoD+I4Dxz0Sz26oSgrfoBj7jou7C/sDYQ+v8IuGrqRhwn8sDZONyFQmBVmzp9UCv2OnBwtwYPEdzr2wvWkty0BL1eRCEI29aV9XQmDlau4q1EEzLVTxlU3EECbPv+cRqxAxBNBcfp9+zYTRVfET3Fx3otU5cpufq5qg+bj0s/zRAnjge9YVPpopTgZDy570x8g9bsgiHgA7mWtMRy0Y3zEdslwv1T7AQpnz3glI7YhSMYlZ2AYXkYteCsZSr0TaC7Tf8HjzKITQ9zh6eiT3GJm
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2906002)(6506007)(2616005)(5660300002)(31696002)(53546011)(54906003)(186003)(36756003)(4326008)(38100700002)(71200400001)(122000001)(38070700005)(91956017)(6486002)(107886003)(86362001)(8676002)(6512007)(316002)(66446008)(64756008)(508600001)(66556008)(66946007)(31686004)(66476007)(110136005)(7416002)(8936002)(26005)(83380400001)(76116006)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?MU9zY2gxVUNWWVRPV3JCQWM5NjZpdU1NNFd6SFY2NFR6WDRkM2x0TVVSTTIv?=
 =?utf-8?B?RlEvLzk4azdINHcreWxCTGhuOVUyMlhycGZZNU9IdkZGZjRDbmZOR1czc0ti?=
 =?utf-8?B?UGQrQ3oyVGllYmE4aGxNQWJsMnFCMTNhYVlldDJkTGdNemJIK0phSHpndkVp?=
 =?utf-8?B?OUdER2RnSTA0bGFUMUdFMWxET0NjNTRhOUNwNk1RT3RjbjNtcklPa2FkZE9V?=
 =?utf-8?B?dTVtZGRLcjdGdXRQdjBLa0g1MFVGNms4bVp4clVWT01yQno5WHA3emhhM21D?=
 =?utf-8?B?UUJQZ0hkV2pPUDd6VFRPN2o2L3RnL1JPZkJqMVg0MjYvc1FBVER4SmY4R2l0?=
 =?utf-8?B?VmYzWm11ZVFRTkhPenI1Mi9GZGo1NUIvV1hsOWRmNHlXNTZDSHc5YTAySlJ6?=
 =?utf-8?B?Zml1Wmk4T1lVYnl0REZLQ0R3YVgwWDh1OXRnMDgrVFNDREJ3Q2ZabEZLSnJQ?=
 =?utf-8?B?R0JtOCtwamZoeWlSMGlaOXRmdlllOUwwdFR3YmZnS1ZSdVRCRGZ3aWdIZU1E?=
 =?utf-8?B?b1RFaGoxbnBMQzdXOTdjYjd2NlF1dmM2L21NWVg5ZUtLVllCenFnQzZQRnRB?=
 =?utf-8?B?VTZZQnkrMytOSGJya0FONGxiVDV5bWoyV0kvNVJwdXgzc3htS1pDQTd2UGVM?=
 =?utf-8?B?ODdkc1A3aWZqcHlvYXBvRm9LMmR6a2p4ZkpxcmlnTHg4T0xBbm0vVjBOSWRS?=
 =?utf-8?B?Yy9GTXB3c0IzODRDRGljM0dxTEMrY0lhQjRtYXNsYWpLbDA2YlVnZWE1dWNi?=
 =?utf-8?B?Nm5rMU9SR1dFa0hwUmw0bWlMb2pJMmp1ZktkQi9kZHpWMWQ3ZVdVM01BOEll?=
 =?utf-8?B?VDNJMFJtaXY3VFBaSThZQk84QVBINk1NWVVSMVVNZkU3NnozZCtCeW5PSi9O?=
 =?utf-8?B?SXFTbVFBbU94UzVXVFp5WllxZ1EyNlZHMlgwTlZjWGFzbEpkT2xMTDc3TTN5?=
 =?utf-8?B?bHJwTGlqWk9NRUhld3A3cE9NZ0ovTEpXcDF6UVgwTWRNN1JHQXlkWG1aQlA3?=
 =?utf-8?B?djNYTFZOZTQxQTd2Y3FPTUM5SlZrUVNpQzVZamp3bDBpeWc4MEhCbmFqd1g1?=
 =?utf-8?B?VGpqMHNaUnQrUzdkeGZQR0JXSXVxYnIvQ29TUThhZTRQekF6NWRLbHJHZWkz?=
 =?utf-8?B?WVVWNHE1ZzVoUmtrTThCaGJraUp2YlhnZVV5NVphYkV6MHRsNm5iS3FCUWxz?=
 =?utf-8?B?cC96a0JRVmt1U0RCVmdVRC9VYjdWY0hiWGptQUtOeVZXSlNDQU1PQWZZTC9x?=
 =?utf-8?B?eWxrMXNRN2ZaV1lmcDFiRjVEcmtTbVZlNjZuTXJ2R21SdjRoL3NwQUN6MGFC?=
 =?utf-8?B?KzB4MHBMTXpqM3ZWR1VGdDZzUlorS2g0NTlBb1hhYm56QnVFQU5Pd1RzZWVL?=
 =?utf-8?B?TENaL3hjbSs2YW9pdkdZL1BnRGM1SEJTZ2RuYk43RGFFRHp6T3RUbFFQclFk?=
 =?utf-8?B?N1hQWExRZ0NpSC9ObnBISVRCZ1V6TEhYR0ZXU0VMZy81L215bVBTMG1abnd3?=
 =?utf-8?B?VTR5NlgzNnIyLzNmTXpFM3VEWGg2SlNTcWo5S05Dc0NZRjJGWGJrbDhhMDZW?=
 =?utf-8?B?YkVXaUFDYXlHL05kTlB4UjJ3K0phaHVFWlRKdVB0NkJSV1ZhT0dtUVRxeGla?=
 =?utf-8?B?VDhUQTNKbncwejlVbmd6ZFBkYm0zSGlXZFVhMWNQcWpaRmFLOC9GSitDbGJV?=
 =?utf-8?B?WjhORklLOVpWSlMvelVlUzdmbXJkSFNVVkY3S3lTakZ0RktZR3FINzIreVQx?=
 =?utf-8?B?cXZ3Q0U2RGM3YWpZVUg3YlRIbFJjcFprRVNUdlIrTUJ4a2dqNDBUM0o0Y25X?=
 =?utf-8?B?RE9HeDFyL2UySjc0bVRnbHRDZVNtc012V01hb2NIcVFsdnZjUTh6ZmJVbG4x?=
 =?utf-8?B?S1c4M2Y0QTZGN2pUT1BEQnVUdG45Tk9leVM5emhkRnlSbHZvRHhCdWVsZGVX?=
 =?utf-8?B?NUNzeWg5c0wxOXJOYkxhaFM5S3lTeXoydFpOSHBMNDVPS3JZN0lRZGc3aUR3?=
 =?utf-8?B?WUxCMENtT3l6Yi9Nb1JYSzAzd2lGOEtpcFZCbGVWY1huQ2QxK1FBR3hjb29O?=
 =?utf-8?B?QjRENXZuM1FSUU40cmxXRGRKVG4vMkZBaHFwZ3lESFZDaEZIdmtzdFUrWlhn?=
 =?utf-8?B?NWcrWkNmYzA0U0VYUEk2QU9mZFZSR1ZzZ2tQVlVFSGE0K3lLOGg5d3cvMDdM?=
 =?utf-8?B?eE5tSnhnVkpORlRpcklNZlJnQnloemNKODZ4d3JRZ1AvRWlsTGhCQ2gwRGpZ?=
 =?utf-8?B?WE5XaHhDZWM4WWIzNXZyMVNrS2ROb3hSMk1UUjRONUwyZzhkem9UZW9DWGpl?=
 =?utf-8?B?d0t4dlVyTnRYSTlsbUd5OUN1NWVIQnh0NUNQYnZHOG8wT2pFVXpPQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F21D53F58419D44C940F4B033BA3765E@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e7a172eb-3b02-49c0-ee67-08d9aa9a0d11
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 13:48:06.9106
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: iwpzCPQ2BuH/weUsFmqnIV7sm470H0s1jdGLyAHS7HHfBhcqwxjySnB2CMA90nR9Oh6PXltEu70HTjJ3eCBqjOXnceBi1zstzGJiaC49h8Z3EmsQE8NQpQTaIrl7o+L7
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2829
X-Proofpoint-ORIG-GUID: 6zo6QuMG5HFc_nfWwhB1DtxljeTp3_59
X-Proofpoint-GUID: 6zo6QuMG5HFc_nfWwhB1DtxljeTp3_59
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_05,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 malwarescore=0
 lowpriorityscore=0 impostorscore=0 clxscore=1015 suspectscore=0
 phishscore=0 priorityscore=1501 spamscore=0 mlxlogscore=999 adultscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180078

DQoNCk9uIDE4LjExLjIxIDE1OjI1LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTguMTEuMjAy
MSAxMDozMiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMTguMTEu
MjEgMTE6MTUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDE4LjExLjIwMjEgMDk6NTQsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAxOC4xMS4yMSAxMDozNiwgSmFu
IEJldWxpY2ggd3JvdGU6DQo+Pj4+PiBPbiAxOC4xMS4yMDIxIDA4OjQ5LCBPbGVrc2FuZHIgQW5k
cnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBPbiAxNy4xMS4yMSAxMDoyOCwgSmFuIEJldWxpY2gg
d3JvdGU6DQo+Pj4+Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNoY2hl
bmtvIHdyb3RlOg0KPj4+Pj4+Pj4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtz
YW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IFdoZW4gYSB2
UENJIGlzIHJlbW92ZWQgZm9yIGEgUENJIGRldmljZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGhh
dmUNCj4+Pj4+Pj4+IHNjaGVkdWxlZCBhIGRlbGF5ZWQgd29yayBmb3IgbWFwL3VubWFwIG9wZXJh
dGlvbnMgZm9yIHRoYXQgZGV2aWNlLg0KPj4+Pj4+Pj4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dp
bmcgc2NlbmFyaW8gY2FuIGlsbHVzdHJhdGUgdGhlIHByb2JsZW06DQo+Pj4+Pj4+Pg0KPj4+Pj4+
Pj4gcGNpX3BoeXNkZXZfb3ANCj4+Pj4+Pj4+ICAgICAgICBwY2lfYWRkX2RldmljZQ0KPj4+Pj4+
Pj4gICAgICAgICAgICBpbml0X2JhcnMgLT4gbW9kaWZ5X2JhcnMgLT4gZGVmZXJfbWFwIC0+IHJh
aXNlX3NvZnRpcnEoU0NIRURVTEVfU09GVElSUSkNCj4+Pj4+Pj4+ICAgICAgICBpb21tdV9hZGRf
ZGV2aWNlIDwtIEZBSUxTDQo+Pj4+Pj4+PiAgICAgICAgdnBjaV9yZW1vdmVfZGV2aWNlIC0+IHhm
cmVlKHBkZXYtPnZwY2kpDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gbGVhdmVfaHlwZXJ2aXNvcl90b19n
dWVzdA0KPj4+Pj4+Pj4gICAgICAgIHZwY2lfcHJvY2Vzc19wZW5kaW5nOiB2LT52cGNpLm1lbSAh
PSBOVUxMOyB2LT52cGNpLnBkZXYtPnZwY2kgPT0gTlVMTA0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IEZv
ciB0aGUgaGFyZHdhcmUgZG9tYWluIHdlIGNvbnRpbnVlIGV4ZWN1dGlvbiBhcyB0aGUgd29yc2Ug
dGhhdA0KPj4+Pj4+Pj4gY291bGQgaGFwcGVuIGlzIHRoYXQgTU1JTyBtYXBwaW5ncyBhcmUgbGVm
dCBpbiBwbGFjZSB3aGVuIHRoZQ0KPj4+Pj4+Pj4gZGV2aWNlIGhhcyBiZWVuIGRlYXNzaWduZWQN
Cj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBGb3IgdW5wcml2aWxlZ2VkIGRvbWFpbnMgdGhhdCBnZXQgYSBm
YWlsdXJlIGluIHRoZSBtaWRkbGUgb2YgYSB2UENJDQo+Pj4+Pj4+PiB7dW59bWFwIG9wZXJhdGlv
biB3ZSBuZWVkIHRvIGRlc3Ryb3kgdGhlbSwgYXMgd2UgZG9uJ3Qga25vdyBpbiB3aGljaA0KPj4+
Pj4+Pj4gc3RhdGUgdGhlIHAybSBpcy4gVGhpcyBjYW4gb25seSBoYXBwZW4gaW4gdnBjaV9wcm9j
ZXNzX3BlbmRpbmcgZm9yDQo+Pj4+Pj4+PiBEb21VcyBhcyB0aGV5IHdvbid0IGJlIGFsbG93ZWQg
dG8gY2FsbCBwY2lfYWRkX2RldmljZS4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5
OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5j
b20+DQo+Pj4+Pj4+IFRoaW5raW5nIGFib3V0IGl0IHNvbWUgbW9yZSwgSSdtIG5vdCBjb252aW5j
ZWQgYW55IG9mIHRoaXMgaXMgcmVhbGx5DQo+Pj4+Pj4+IG5lZWRlZCBpbiB0aGUgcHJlc2VudGVk
IGZvcm0uDQo+Pj4+Pj4gVGhlIGludGVudGlvbiBvZiB0aGlzIHBhdGNoIHdhcyB0byBoYW5kbGUg
ZXJyb3IgY29uZGl0aW9ucyB3aGljaCBhcmUNCj4+Pj4+PiBhYm5vcm1hbCwgZS5nLiB3aGVuIGlv
bW11X2FkZF9kZXZpY2UgZmFpbHMgYW5kIHdlIGFyZSBpbiB0aGUgbWlkZGxlDQo+Pj4+Pj4gb2Yg
aW5pdGlhbGl6YXRpb24uIFNvLCBJIGFtIHRyeWluZyB0byBjYW5jZWwgYWxsIHBlbmRpbmcgd29y
ayB3aGljaCBtaWdodA0KPj4+Pj4+IGFscmVhZHkgYmUgdGhlcmUgYW5kIG5vdCB0byBjcmFzaC4N
Cj4+Pj4+IE9ubHkgRG9tMCBtYXkgYmUgYWJsZSB0byBwcmVtYXR1cmVseSBhY2Nlc3MgdGhlIGRl
dmljZSBkdXJpbmcgImFkZCIuDQo+Pj4+PiBZZXQgdW5saWtlIGZvciBEb21VLXMgd2UgZ2VuZXJh
bGx5IGV4cGVjdCBEb20wIHRvIGJlIHdlbGwtYmVoYXZlZC4NCj4+Pj4+IEhlbmNlIEknbSBub3Qg
c3VyZSBJIHNlZSB0aGUgbmVlZCBmb3IgZGVhbGluZyB3aXRoIHRoZXNlLg0KPj4+PiBQcm9iYWJs
eSBJIGRvbid0IGZvbGxvdyB5b3UgaGVyZS4gVGhlIGlzc3VlIEkgYW0gZmFjaW5nIGlzIERvbTAN
Cj4+Pj4gcmVsYXRlZCwgZS5nLiBYZW4gd2FzIG5vdCBhYmxlIHRvIGluaXRpYWxpemUgZHVyaW5n
ICJhZGQiIGFuZCB0aHVzDQo+Pj4+IHdhbnRlZCB0byBjbGVhbiB1cCB0aGUgbGVmdG92ZXJzLiBB
cyB0aGUgcmVzdWx0IHRoZSBhbHJlYWR5DQo+Pj4+IHNjaGVkdWxlZCB3b3JrIGNyYXNoZXMgYXMg
aXQgd2FzIG5vdCBuZWl0aGVyIGNhbmNlbGVkIG5vciBpbnRlcnJ1cHRlZA0KPj4+PiBpbiBzb21l
IHNhZmUgbWFubmVyLiBTbywgdGhpcyBzb3VuZHMgbGlrZSBzb21ldGhpbmcgd2UgbmVlZCB0byB0
YWtlDQo+Pj4+IGNhcmUgb2YsIHRodXMgdGhpcyBwYXRjaC4NCj4+PiBCdXQgbXkgcG9pbnQgd2Fz
IHRoZSBxdWVzdGlvbiBvZiB3aHkgdGhlcmUgd291bGQgYmUgYW55IHBlbmRpbmcgd29yaw0KPj4+
IGluIHRoZSBmaXJzdCBwbGFjZSBpbiB0aGlzIGNhc2UsIHdoZW4gd2UgZXhwZWN0IERvbTAgdG8g
YmUgd2VsbC1iZWhhdmVkLg0KPj4gSSBhbSBub3Qgc2F5aW5nIERvbTAgbWlzYmVoYXZlcyBoZXJl
LiBUaGlzIGlzIG15IHJlYWwgdXNlLWNhc2UNCj4+IChhcyBpbiB0aGUgY29tbWl0IG1lc3NhZ2Up
Og0KPj4NCj4+IHBjaV9waHlzZGV2X29wDQo+PiAgICAgICAgcGNpX2FkZF9kZXZpY2UNCj4+ICAg
ICAgICAgICAgaW5pdF9iYXJzIC0+IG1vZGlmeV9iYXJzIC0+IGRlZmVyX21hcCAtPiByYWlzZV9z
b2Z0aXJxKFNDSEVEVUxFX1NPRlRJUlEpDQo+PiAgICAgICAgaW9tbXVfYWRkX2RldmljZSA8LSBG
QUlMUw0KPj4gICAgICAgIHZwY2lfcmVtb3ZlX2RldmljZSAtPiB4ZnJlZShwZGV2LT52cGNpKQ0K
Pj4NCj4+IGxlYXZlX2h5cGVydmlzb3JfdG9fZ3Vlc3QNCj4+ICAgICAgICB2cGNpX3Byb2Nlc3Nf
cGVuZGluZzogdi0+dnBjaS5tZW0gIT0gTlVMTDsgdi0+dnBjaS5wZGV2LT52cGNpID09IE5VTEwN
Cj4gRmlyc3Qgb2YgYWxsIEknbSBzb3JyeSBmb3IgaGF2aW5nIGxvc3QgdHJhY2sgb2YgdGhhdCBw
YXJ0aWN1bGFyIGNhc2UgaW4NCj4gdGhlIGNvdXJzZSBvZiB0aGUgZGlzY3Vzc2lvbi4NCk5vIHBy
b2JsZW0sIEkgc2VlIG9uIHRoZSBNTCBob3cgbXVjaCB5b3UgcmV2aWV3IGV2ZXJ5IGRheS4uLg0K
Pg0KPiBJIHdvbmRlciB0aG91Z2ggd2hldGhlciB0aGF0J3Mgc29tZXRoaW5nIHdlIHJlYWxseSBu
ZWVkIHRvIHRha2UgY2FyZSBvZi4NCj4gQXQgYm9vdCAob24geDg2KSBtb2RpZnlfYmFycygpIHdv
dWxkbid0IGNhbGwgZGVmZXJfbWFwKCkgYW55d2F5LCBidXQNCj4gdXNlIGFwcGx5X21hcCgpIGlu
c3RlYWQuIEkgd29uZGVyIHdoZXRoZXIgdGhpcyB3b3VsZG4ndCBiZSBhcHByb3ByaWF0ZQ0KPiBn
ZW5lcmFsbHkgaW4gdGhlIGNvbnRleHQgb2YgaW5pdF9iYXJzKCkgd2hlbiB1c2VkIGZvciBEb20w
IChub3Qgc3VyZQ0KPiB3aGV0aGVyIGluaXRfYmFycygpIHdvdWxkIGZpbmQgc29tZSBmb3JtIG9m
IHVzZSBmb3IgRG9tVS1zIGFzIHdlbGwpLg0KPiBUaGlzIGlzIGV2ZW4gbW9yZSBzbyBhcyBpdCB3
b3VsZCBiZXR0ZXIgYmUgdGhlIGV4Y2VwdGlvbiB0aGF0IGRldmljZXMNCj4gZGlzY292ZXJlZCBw
b3N0LWJvb3Qgc3RhcnQgb3V0IHdpdGggbWVtb3J5IGRlY29kaW5nIGVuYWJsZWQgKHdoaWNoIGlz
IGENCj4gcHJlcmVxIGZvciBtb2RpZnlfYmFycygpIHRvIGJlIGNhbGxlZCBpbiB0aGUgZmlyc3Qg
cGxhY2UpLg0KV2VsbCwgZmlyc3Qgb2YgYWxsIGluaXRfYmFycyBpcyBnb2luZyB0byBiZSB1c2Vk
IGZvciBEb21VcyBhcyB3ZWxsOg0KdGhhdCB3YXMgZGlzY3Vzc2VkIHByZXZpb3VzbHkgYW5kIGlz
IHJlZmxlY3RlZCBpbiB0aGlzIHNlcmllcy4NCg0KQnV0IHRoZSByZWFsIHVzZS1jYXNlIGZvciB0
aGUgZGVmZXJyZWQgbWFwcGluZyB3b3VsZCBiZSB0aGUgb25lDQpmcm9tIFBDSV9DT01NQU5EIHJl
Z2lzdGVyIHdyaXRlIGVtdWxhdGlvbjoNCg0Kdm9pZCB2cGNpX2NtZF93cml0ZShjb25zdCBzdHJ1
Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJlZywNCiDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50MzJfdCBjbWQsIHZvaWQgKmRhdGEpDQp7DQpbc25pcF0N
CiDCoMKgwqDCoMKgwqDCoCBtb2RpZnlfYmFycyhwZGV2LCBjbWQsIGZhbHNlKTsNCg0Kd2hpY2gg
aW4gdHVybiBjYWxscyBkZWZlcl9tYXAuDQoNCkkgYmVsaWV2ZSBSb2dlciBkaWQgdGhhdCBmb3Ig
YSBnb29kIHJlYXNvbiBub3QgdG8gc3RhbGwgWGVuIHdoaWxlIGRvaW5nDQptYXAvdW5tYXAgKHdo
aWNoIG1heSB0YWtlIHF1aXRlIHNvbWUgdGltZSkgYW5kIG1vdmVkIHRoYXQgdG8NCnZwY2lfcHJv
Y2Vzc19wZW5kaW5nIGFuZCBTT0ZUSVJRIGNvbnRleHQuDQo+DQo+IEphbg0KPg0KVGhhbmsgeW91
LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 14:04:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 14:04:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227439.393363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mni1a-0000Bw-JY; Thu, 18 Nov 2021 14:04:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227439.393363; Thu, 18 Nov 2021 14:04:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mni1a-0000Bp-Fg; Thu, 18 Nov 2021 14:04:26 +0000
Received: by outflank-mailman (input) for mailman id 227439;
 Thu, 18 Nov 2021 14:04:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=45Id=QF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mni1Z-0000Bj-Od
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 14:04:25 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d53811c-4878-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 15:04:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d53811c-4878-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637244263;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=rv3HhJphnj7rFB9LGN5pDL0D6FGsaA+pEPMeea76L9E=;
  b=h6w2D3WkPJRjvzrymBosTkhTN9UG4dS0ezVuP4XbAeiKVIhP5W4XzBHs
   O2wDKuFzsD7VRp1Z7e45IZxr5HiZj79cCIT3oxkL0HUoaom/c3s5v9N+k
   YKLNgAOhEf6FQMA33D6bZlt4uyHNABpkJs0E3tWuIT1qyUNUmwbYagXNU
   Q=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: gLxUiSsALcGkYvWxhjW1a2cFwlA6zGfSu6WPZgUrgxkZulLj5FZBMgIxlj9DT0tbWX/E1C9IHU
 LEtrVtMTulOo/BouJSDHzU8DS2ZBqVjSPpg358HDuax76FPhUYwABbm3KrW0kOcWHu60MyS5Xq
 h85VThE/PuhNkxMiP5m3N2WFUXL0Ohhu5tjKfmK6F8hJUXLVY48otXutDXPo0lSEpE1cf4wXj9
 OxnxOkAHvQrfYX5YtJ7mJLG/ecTlh9kKEhB3iKhZubUaRheUM0j339L/yeIpDK2yjjjBErf6e4
 ffeRr4IE5QxWuxX6+9U8mp+3
X-SBRS: 5.1
X-MesageID: 58088961
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:739hhq9mL+V0g8AfZgZeDrUDrXiTJUtcMsCJ2f8bNWPcYEJGY0x3n
 WROWW6GMq3cZGbxLtB/Otnl8ktVuZ/dnIJnGlBvrHw8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdg0tYz6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPg2z
 Mptsc3qUj52P/LRiMA+Djx+NnpXaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguw5K8bmJsUHs2xIxjDFF/c2B5vERs0m4PcFjG9g1pEQRJ4yY
 eI2ZGpTfR/gZiFuJ3UzVolvhOChvyLWJmgwRFW9+vNsvjm7IBZK+KDkLd79atGMA8JPkS6wj
 3ja8mHOJwAVPd2S1xKI6nupwOTImEvTUo8ICKex8PIshVSJ33ESEzUfT179qv684mauVtQaJ
 0EK9y4Gqakp6FftXtT7Rwe/onOPolgbQdU4O/cz6ByJjLHV5QmZLmEeS3hKb9lOnPExQTsmx
 1qYheTDDDZksKCWYX+F/7LSpjS3UQAXJ2IfYS4PTSMe/sLu5oo0i3rnadJuE7W8iNHvLhj2z
 yqXtyg1h7gVjskj2r2y+BbMhDfEjprUSg844C3HU2Tj6Rl2DKaCY4Gr8lHd4ex3EJeCTlKBs
 X4HnOCT9OkLS5qKkUSlW/4RFbuk4/KENjz0glN1GZQlsTO39BaekZt4uW8kYh0za4BdJGGvM
 BS7VR5tCIF7e3+1TasmOZmIVMV10LjENonAcNWPR48bCnRuTzOv8CZrbE+W+mnilkkwjK0yU
 aumndaQ4WUyUvo+kmfvLwsJ+fpyn31lmzuPLXzu503/ieL2WZKDdVsS3LJihMgd5bjMngja+
 s032yCim0QGC72WjsU6HOcuwbE2wZoTWcCeRy9/LLfrzu9a9IcJUaO5LVQJIdINokitvr2Ul
 kxRo2cBoLYFuVXJKB+RdldoY671UJB0oBoTZHJ3Yg/3hyV/Mdv/ts/zkqfbm5F9qISPKtYuE
 ZE4lzioWKwTGlwrBRxDBXUCkGCSXEvy3l/fV8ZUSDM+Y4RhV2T0FizMJWPSGN01JnPv76MW+
 uT4viuCGMZrb1kyXa7+NaP0p3vs7Cd1pQ6HdxaRSjWlUB63q9YCxu2YpqJfHvzg3j2fnGbHj
 FjPXk9DzQQPyqdsmOT0aWm/h97BO8N1H1ZAHnmd6rCzNCLA+XGkz5MGW+GNFQ0xnkuukEl7T
 ekKnfz6LtMdm1NG79h1H7pxlPps7Nrzvb5KiA9jGSyTPVisD7phJFiA3NVO6fIRluMI51PuV
 xLd4MReNJWIJNjhTAwbKj06Y7nRzvoTgDTTs6g4eR2o+C9t8bObekxOJB3Q2jdFJb54Pdp9k
 +csscIb8SKljR8uPorUhyxY7T3UfHcBT78mptcRB4qy0lgnzVRLYJr9DC7q4c7QN4UQYxdye
 jLN3fjMnbVRwEbGYkEfL3mV0LoPn4kKtTBL0EQGewaDlO3ai6JlxxZW6zk2EFhYl00Vz+JpN
 2F3HERpPqHSrSxwjc1OUm3wSQFMABqVph74x1cTzTCLSkCpUirGLXEnOPbL90ccqjoOcj9e9
 bCe6WDkTTe1I52hgnpsARZo+675UNh81gzeg8T2Tc2KEq4zbSfhnqLzN3EDrAHqAJ9piUDKz
 QWwED2ctUEv2fYsnpAG
IronPort-HdrOrdr: A9a23:0rrSG6Cj5Z7B6VjlHegwsceALOsnbusQ8zAXPh9KJyC9I/b2qy
 nxppgmPH/P6Ar4WBkb6La90Y27MA7hHPlOkPUs1NaZLXPbUQ6TTb2KgrGSpgEIdxeOktK1kJ
 0QDJSWa+eAfWSS7/yKmDVQeuxIqLLsndHK9IWuvEuFDzsaEJ2Ihz0JezpzeXcGPTWua6BJc6
 Z1saF81kSdkDksH4mGL0hAe9KGi8zAlZrgbxJDLxk76DOWhTftzLLhCRCX0joXTjsKmN4ZgC
 f4uj28wp/mn+Cwyxfa2WOWx5NKmOH5wt8GIMCXkMAaJhjllw7tToV8XL+puiwzvYiUmRoXue
 iJhy1lE9V46nvXcG3wiRzx2zP42DJr0HPmwU/wuwqqneXJABYBT+ZRj4NQdRXUr2A6ustn7a
 5N12WF87JKEBLphk3Glpj1fiAvsnDxjWspkOYVgXAae5AZcqVtoYsW+14QOIscHRj99JssHI
 BVfYDhDc5tABGnhk3izyxSKITGZAV2Iv7GeDlNhiWt6UkUoJgjpHFog/D2nR87hdsAotd/lq
 L5259T5cRzp/ktHNRA7dc6MLmK41P2MGbx2UKpUB/a/fI8SjjwQ6Ce2sRD2AjtQu1Q8KcP
X-IronPort-AV: E=Sophos;i="5.87,245,1631592000"; 
   d="scan'208";a="58088961"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oGdF7+dPcT9tavaR2XrnQGpZypB6E1fKZtcdRbhOeBO+72pzWguv0L05sCZHkoXt6EQ9S2gUSUZ1b8fJSb5xEI/pfcC4sz1I4/Zy01xUbG1Anm+d0Q3UWRORHxu/gU05v7fYfPoyw7yDnQqvN3QjwcBOSNI5gGvoQobyiyZf2YoJD3OuxZrDnEeIhh4+kWM5c/gF7nxcZYgdZz8Lpl6EC+AkTijRtwkNSjgM4KqOGjVJcp0Mz871+m1uFpzq23VaNMSuHi+XwaGgUn6qc2l+bSQE5VHQ3h42B9L+67RVALAlCed57t5EjJgU5KxDFVLnnMvwUhyiVaiXiE2DZJR2ZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AropeSepIw3hrBomuaKAfY8kV1MLCtyXtX7n/30PMH8=;
 b=hRs4oGtIQtBNIt4mL0Yr8gawXktRm1SRh+sDBSfy4raQwSMDvOjHgyUwfzSUOApeAUKw8vrE+y1WNOxoPpRF+t2wFDDYOauouZ2FChaaUWibQ4YptLfg8cAUQgDhKud1QsqV23QSPkVptpGQLstFsYpbv8eOvOSVY90EpgWZm4I6kG1PkN7zu8IkztPCKXfc5poFzFEGELyd6kdQ8m42DVPMtmtBdAR2coplffTYZACk1aoBbQ8/A1fu+w1SR/2Aw78213XGgxxfp/YGokr3gjzvA4kpbmRnTx0Tyfi5l8u81FJFYaVycltADb3AeqsttELPrbZM9pLZTxrtRyGdkw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AropeSepIw3hrBomuaKAfY8kV1MLCtyXtX7n/30PMH8=;
 b=SZzRJRX5tttX6DK9lghg2omadevJA75Rg2TQ90NnTLkKw7HruU1g8PHysqVFbnu5YcS+A0ZFhMaDv9Gl5EgJTjokaLBuW1wuUnhdfIoGcPLCveg6WVZE4ZjNbvsd4pMrMRQ6hzTXHpAtxa7Vf2Z5Y5Tcy45Npy0PjNIXsiW3U+I=
Date: Thu, 18 Nov 2021 15:04:03 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Jan Beulich <jbeulich@suse.com>, "julien@xen.org" <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"george.dunlap@citrix.com" <george.dunlap@citrix.com>, "paul@xen.org"
	<paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Message-ID: <YZZdU1oCaMt1HxTj@Air-de-Roger>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
X-ClientProxiedBy: MR1P264CA0140.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::6) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 74b1f129-52c1-4251-c882-08d9aa9c4f2e
X-MS-TrafficTypeDiagnostic: DM6PR03MB5322:
X-Microsoft-Antispam-PRVS: <DM6PR03MB5322CE5465D7FA4371F21F588F9B9@DM6PR03MB5322.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 25SHbcWJfhsGYpflevk43aaI41UQ77iRiXT7b+GeKnPuvLAlCbOmWVYTVqnuTysu6pdBd9MFo7xuY6lI8ITrIfb5Yw3FVPycvRdqZsGaq3OJ7QdVMRnofjC9Wu6WxSwYMqLYi47bj49xjAyu9xpkwiWRsQxwrm9t3bqPSgqiYcsaY4pxA0J35wheliG8/a5lkMLY/FHu5kC4a2AOTIRh6Lkv+6B35+WVR8k+lJB32Vj+OlAy6JhufTxkb37UjSGyQz585lm+GsoL1XimaW7k7lKV06YXwOX4/0zNEenBX0GzvEeIzm7wG7fCYhPqrNB6xMtcK5GvEjwZJEQEdaQaJqrs4CicIO4duzXCpOYUHPE4ptj5KSmwlwzhgDI2mdCKpjyV7aPbnzjs2CDY4UdD08B5eXpsPpKJLTWhuePZd7/8m2pFLMqRpS/sHwKWBSKfKvzS7Ogpavo5fAFAvdzxNMHNZLg1wyDYTEz989B51IropENCdqltNwhbA++O/AwsFjZ5fcZoI3+tUVjVljS82W+2EbSadP92XCp8OUbheXNzGF3qo4BK8ps6WUUih1teuGrLVU1nuBoQCXILA+6r9Sxy0dnJOh4cCPIWSU1x7TeUEl40sbgBHIohGIUOJMH9eBESrI6CHAYkoqc7vgE8mQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(82960400001)(8936002)(54906003)(4326008)(7416002)(33716001)(508600001)(53546011)(6666004)(5660300002)(66476007)(66556008)(66946007)(316002)(8676002)(6496006)(2906002)(38100700002)(6486002)(956004)(83380400001)(9686003)(186003)(6916009)(86362001)(26005)(85182001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VUpVcktJUHh6L1JEcG5tT1VraG9KdDRvZGhwVEpkdkpPZVZCcDkrRWhDTFVq?=
 =?utf-8?B?cGU5cFBCSzJ0VS84QTR0cXYzSHJVQUVXd3pGS3FXTDhjZHZmVmV0WnBKNFFW?=
 =?utf-8?B?WmF0MEt3NjFDVnBKZnFUOVpNUW9vdE9DN0dpTkwzSGdyQzQ3RUNaRkI0STd1?=
 =?utf-8?B?b0dpSjhFRDFZM3dyLzRiRFIwQmtSTTNWY0dLWUYrVjVHSUZuZGZaN1NsSGRD?=
 =?utf-8?B?Ym80YjBSa2dMZmhDUkZqL3ZTVlRNLzJzT3Iya0RjWHhOWndqWE5kZDFxSFVT?=
 =?utf-8?B?dnlzRmFOck9jNlMwMzUwVlNKUitxRGkvM1g5OE0yd1B5K1lSa2xxUjlMR2Q3?=
 =?utf-8?B?UEJIVjBkeGl5RllPMCtLNlRqRDJxVnZTR2NxZTVUY04rSk9ONGtrN2NQS003?=
 =?utf-8?B?UDBzc1lUQnZCaEF1MEFBWTRhKzFhMnlhT0dHcmdGYXFURTJ5NDZrWFV5Tjdr?=
 =?utf-8?B?eW1EU0hnN0szbXArT21hVGtEd3YzMm1zK1YydWJxSGE4Um9SNk1BbXBldTN0?=
 =?utf-8?B?SjBEd2hmQ0ljQlNmbmJBQjljenczSXBSK0UzdzFLMk03aDB6T2JGT3JmMEls?=
 =?utf-8?B?TXg0YzBRcWg2WXRzVHhWamtjNi9SR05La2pzN2dJcWJtZVpKb1VmTGZXYUlE?=
 =?utf-8?B?L3dvUU1yai83S2xrMVo3N29iQm1ib241TTQycmQ2U3ZNNXBTK2VoaElzK1hP?=
 =?utf-8?B?RnhMNGt6NERSb3ZWMnJhcFlyZDhrNzlxbTZXakt1dHdqRjVOUGY5b1l5eVR4?=
 =?utf-8?B?ZFB6dXhJR1hPWERjK3ZUMnQzalpWZ0ovby9USjBpa015dHpGM2RLZlltTXFo?=
 =?utf-8?B?elY2UUNOa3JxOVRTSkluNkZudkpWb3h5N0t1YitsMzN6VW81blBJZkJESksr?=
 =?utf-8?B?aytsbFM1VW0yVFlYK1JNaVAxVHoreU9KQkZENEozRFdHdE1tN09ZbUd5b1F1?=
 =?utf-8?B?R2JYakduYkorYlhDWDNadXRyWG1hYTM3WVJKNDhSM3NwTXZhRHU3UjRXZVUr?=
 =?utf-8?B?RGxlOS92OUpZUGpDbWtTQkVvSFVtVFVnbkVlaHhtUnNDMDdYUDdvWVAwN0Ex?=
 =?utf-8?B?OERFd1hqUjVrOGsxb0ZOdW94U2crVWZhc1FRYjZSOFR2TjR2d3RkTnQ4R3No?=
 =?utf-8?B?M3g5OU5jTGtmTVNYT0N4VnRERVNHdC9lQmNQRUt1K2xCM2RwN0g2UThlTDFT?=
 =?utf-8?B?SmdkTER2enRpQXVnL0pYcHJTdEtsYkhFRFN3NzdNNGN1SFlBRk1iY0dONmpi?=
 =?utf-8?B?Tkl1cFU1cE5ydE9FV29MdEtlTE10Y0g3WjlOSFd3SlhZU09LME5jdDdNaVRI?=
 =?utf-8?B?S2JoaXphWTBLTUpqZVJRWTJ5WXZwME80NjZSaDdSZkFhYWlwQk9TcU5TeTNS?=
 =?utf-8?B?cEhEaDlRTjBaYW1tWGlqbWtqT2xqN0VxejZOQ1Z3aDRreXN4aTRTVkd4cWgy?=
 =?utf-8?B?b1EzLzlBWExiTGFvelhTa01GZmhGQ2VSSERkV211bWwrSDdWMktTajRRVjl5?=
 =?utf-8?B?bDdJWmJ6dWtJa0N2bDdKeXBXWWpqdndCcTBwMlE2MU1zREJuQmxOdkNSZWha?=
 =?utf-8?B?SzVaKzNVa2EydEFZanpiazQ4Y3U2eUNyRjgyZ1o0Ynp2cG5YOVVteXp5WW9v?=
 =?utf-8?B?YkJESlJMNWs4RjNjL2plMVVnOS91M2ovOHNEVlQxZ2MwcGw2eGU1M3RNa0Qr?=
 =?utf-8?B?QlAxdjBINWRabXAvT3pEOFN6MUwxRkE2bjRuNWNkZlozTmdUTERTeU81dlcy?=
 =?utf-8?B?d01KcjVmVHgxVi9WUkQrOUpVTThyVFVHVUlvMDVvM0lsemN2L2JYNTdHUVJD?=
 =?utf-8?B?SVNDaS9sTGRPMTFHazJyaERoODJBZlNlS2taMmpJUkw2dkdhMEIycHZRcHlR?=
 =?utf-8?B?VFl0K0pSaXhJeG5yM2dWaWIvS0cyVi94OXFVOTU4K0JUT29GejYxMDBzZWRS?=
 =?utf-8?B?Y1JnekZZYUJpQ0tHMUg2UmZkTlYzdDhtejAxY3Q5WjB1OWQzdW9nZ0REaERQ?=
 =?utf-8?B?cHlKblA3MUVGT1N0TjVZVyt4MVBlc3ZQWWdTcnB1TjJSUXliVTZXVWozT1Qw?=
 =?utf-8?B?ZG5QWUNFNzdsVFRuSnFSdTA0ZnVMbjVxeUxBSU5wQ0IxYzl2MzlSQ1pMaEo2?=
 =?utf-8?B?aSsyampsNENkYkFOR05BNTdhb3ZkbnZudGREUldKRUN1dHdYR2NZK1QzRXMx?=
 =?utf-8?Q?VSL32uDuZHeBNbtZuJ2sHcs=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 74b1f129-52c1-4251-c882-08d9aa9c4f2e
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 14:04:17.1135
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yQfwYnMHdVzL1k7oJyS5l9CXcr12DJaUrY9x470FaI+8DrahsmPyen8vAcTgUiLBCMrBdu57O+3N+0ZNEFKHMw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5322
X-OriginatorOrg: citrix.com

Sorry, I've been quite busy with other staff.

On Thu, Nov 18, 2021 at 01:48:06PM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 18.11.21 15:25, Jan Beulich wrote:
> > On 18.11.2021 10:32, Oleksandr Andrushchenko wrote:
> >>
> >> On 18.11.21 11:15, Jan Beulich wrote:
> >>> On 18.11.2021 09:54, Oleksandr Andrushchenko wrote:
> >>>> On 18.11.21 10:36, Jan Beulich wrote:
> >>>>> On 18.11.2021 08:49, Oleksandr Andrushchenko wrote:
> >>>>>> On 17.11.21 10:28, Jan Beulich wrote:
> >>>>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> >>>>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> >>>>>>>>
> >>>>>>>> When a vPCI is removed for a PCI device it is possible that we have
> >>>>>>>> scheduled a delayed work for map/unmap operations for that device.
> >>>>>>>> For example, the following scenario can illustrate the problem:
> >>>>>>>>
> >>>>>>>> pci_physdev_op
> >>>>>>>>        pci_add_device
> >>>>>>>>            init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
> >>>>>>>>        iommu_add_device <- FAILS
> >>>>>>>>        vpci_remove_device -> xfree(pdev->vpci)
> >>>>>>>>
> >>>>>>>> leave_hypervisor_to_guest
> >>>>>>>>        vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
> >>>>>>>>
> >>>>>>>> For the hardware domain we continue execution as the worse that
> >>>>>>>> could happen is that MMIO mappings are left in place when the
> >>>>>>>> device has been deassigned
> >>>>>>>>
> >>>>>>>> For unprivileged domains that get a failure in the middle of a vPCI
> >>>>>>>> {un}map operation we need to destroy them, as we don't know in which
> >>>>>>>> state the p2m is. This can only happen in vpci_process_pending for
> >>>>>>>> DomUs as they won't be allowed to call pci_add_device.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> >>>>>>> Thinking about it some more, I'm not convinced any of this is really
> >>>>>>> needed in the presented form.
> >>>>>> The intention of this patch was to handle error conditions which are
> >>>>>> abnormal, e.g. when iommu_add_device fails and we are in the middle
> >>>>>> of initialization. So, I am trying to cancel all pending work which might
> >>>>>> already be there and not to crash.
> >>>>> Only Dom0 may be able to prematurely access the device during "add".
> >>>>> Yet unlike for DomU-s we generally expect Dom0 to be well-behaved.
> >>>>> Hence I'm not sure I see the need for dealing with these.
> >>>> Probably I don't follow you here. The issue I am facing is Dom0
> >>>> related, e.g. Xen was not able to initialize during "add" and thus
> >>>> wanted to clean up the leftovers. As the result the already
> >>>> scheduled work crashes as it was not neither canceled nor interrupted
> >>>> in some safe manner. So, this sounds like something we need to take
> >>>> care of, thus this patch.
> >>> But my point was the question of why there would be any pending work
> >>> in the first place in this case, when we expect Dom0 to be well-behaved.
> >> I am not saying Dom0 misbehaves here. This is my real use-case
> >> (as in the commit message):
> >>
> >> pci_physdev_op
> >>        pci_add_device
> >>            init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
> >>        iommu_add_device <- FAILS
> >>        vpci_remove_device -> xfree(pdev->vpci)
> >>
> >> leave_hypervisor_to_guest
> >>        vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL
> > First of all I'm sorry for having lost track of that particular case in
> > the course of the discussion.
> No problem, I see on the ML how much you review every day...
> >
> > I wonder though whether that's something we really need to take care of.
> > At boot (on x86) modify_bars() wouldn't call defer_map() anyway, but
> > use apply_map() instead. I wonder whether this wouldn't be appropriate
> > generally in the context of init_bars() when used for Dom0 (not sure
> > whether init_bars() would find some form of use for DomU-s as well).
> > This is even more so as it would better be the exception that devices
> > discovered post-boot start out with memory decoding enabled (which is a
> > prereq for modify_bars() to be called in the first place).
> Well, first of all init_bars is going to be used for DomUs as well:
> that was discussed previously and is reflected in this series.
> 
> But the real use-case for the deferred mapping would be the one
> from PCI_COMMAND register write emulation:
> 
> void vpci_cmd_write(const struct pci_dev *pdev, unsigned int reg,
>                      uint32_t cmd, void *data)
> {
> [snip]
>          modify_bars(pdev, cmd, false);
> 
> which in turn calls defer_map.
> 
> I believe Roger did that for a good reason not to stall Xen while doing
> map/unmap (which may take quite some time) and moved that to
> vpci_process_pending and SOFTIRQ context.

Indeed. In the physdevop failure case this comes from an hypercall
context, so maybe you could do the mapping in place using hypercall
continuations if required. Not sure how complex that would be,
compared to just deferring to guest entry point and then dealing with
the possible cleanup on failure.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 14:15:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 14:15:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227445.393373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mniBc-0001dw-Ic; Thu, 18 Nov 2021 14:14:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227445.393373; Thu, 18 Nov 2021 14:14:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mniBc-0001dp-FX; Thu, 18 Nov 2021 14:14:48 +0000
Received: by outflank-mailman (input) for mailman id 227445;
 Thu, 18 Nov 2021 14:14:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mniBb-0001dj-Gv
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 14:14:47 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1323cf4-4879-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 15:14:45 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AIBmkN4028356;
 Thu, 18 Nov 2021 14:14:42 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2175.outbound.protection.outlook.com [104.47.17.175])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cdp9pgrqk-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 14:14:41 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5010.eurprd03.prod.outlook.com (2603:10a6:208:10b::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 18 Nov
 2021 14:14:36 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 14:14:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1323cf4-4879-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZIfuQRKR7cdSZQmdczQZLV0fMFiVDneHSBW1e+uGud3phRsnc+ojIUe0EKYRPs5oX1H48CuKnMqlbyXrHgsJyl2uUlvb1pNNch+Ddy8pSdg+1TXwq81I+gtSw3DyUn9d2mIsCjG10rhPSU+f5Pv5aw/srS87UWvkCxG6MfqZvSHy0+LdkvC319hMKHS56zaHgcvMVH1z/2Cl0EfT7/k9VKKVozaXfMs41lKLA/UdtkojHe3QlyZfTY+naX2L8J4JzfpONF0c7uYlmzP6A4mio2J7lhBJBMrrHg93VedCDUuvPSQ4dh9W7gsFt55X9lJZk95E8DdIERVgr5zLaJGszg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4VNnTl4tnYO2aRP/gEH87SetkkaUDK12tfHXudF23Ro=;
 b=TvWRo5kmWpZXRQ9LknOyjZnSlaUKMmP7wWoNkVvI9MjDlYTILzEHgNp3yVgr3rQQPBvelrtH0IzUJ/xH668YlqOCYyktOWXtp1vh/xic3eF3XHDcRNu8v6JTqeEG8L/c99px9Ri2beiiTYBcWrjAiIXMmDvy63a2AbCLmMJyoll8yLO+t2dlY6srEkiiwSx01/T9NUI0T9mzesA6BZKSPpCX4O4qLRr05DgNvt7GSRUNKDiZPZ/T99bZOUZKznciCU9E5EkVLepAhpkshTrktK+wH4g3LFu1Z2ViF+oCyWU8sMNCBptsMrSKimnXs21oGX/wMUewUJA1lkpqQaCSVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4VNnTl4tnYO2aRP/gEH87SetkkaUDK12tfHXudF23Ro=;
 b=LoOvNI4Xc6rXIwFcA8r4UjkdBUdZWhUuSNBCO1Lq1KEKK8Gs0hDu5QzoGb5ZldmVkIjUy1p8XV6MNyP224chR9o6Gcx+cEermW386gg0CbWK/V+QrFb/G/nXrX6kutrwtFDa7arZmhBNlWs/oHQtpaJi3mxgx6eYAIEenn5nmxdQ7iwizcncv+cEMpvjnCuB9tv2AyZBPm/5msG53BM0jfDIE2Jlzz1aHAJvudCIn9WkrXI8Vl544PcovF33l+Xbu8zHYfBkjVBJnOIjuedpd2h7jn0A1SfzHaUF0qEPYwna9zg4H5Gi5JjcYWCEbQ5ZBVt3dKvEwStTNCks4CwtbQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIA
Date: Thu, 18 Nov 2021 14:14:36 +0000
Message-ID: <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
In-Reply-To: <YZZdU1oCaMt1HxTj@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 068cf1c8-e7dd-4226-1a48-08d9aa9dc09c
x-ms-traffictypediagnostic: AM0PR03MB5010:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5010D66547CEFFCF02FC0429E79B9@AM0PR03MB5010.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 3ivKE5aRk5m2v0V8ySzQC2qATkiwP/oOj6b1W/WDjeKzHg7TWaS+7fJ9rGHgYpEOZqHeBXFVy+3G5+90zp6WGhmxqyYHUaGoEcQENTje/10pdchauNtVwdnnCc8G3dp7/SEN+Wlovlf34AMbnE+162hrAFoAJS7u12mG1/kcb4jbJb78ns1tzVOqPC4T7bX5j2mebLQLHU/KlMtRRwf38VzVFZ0xDykrBYkh3Q/nlxzMM5j8FQ11j4jIHNr2i5PSBzw/FYQEmV67TEPzcl1fBqITS4NY5vTvZtYjNcIFqoxukFeNsKjE8Pg8abcS4p0TAGse3s/j+N4bkXlLNLbgJ+HNBbxtPUxEu0vICd+nQ6K27+k++7ESl6Uo8aWQm4fsn7xIyktXff+/WuGKoZifpVc1G2k7tDHgWvU7+vJOtYjXi3THXIy0LWGSxQwyZEG1VdaoDwa8058oio6C0/MZ+oRA5nChLW/sdBwegFfPJfRTPdbUzVeVjZMz3F7x2nRXxeIxKATjG2EB+8iIc9YR8/qZIuZbGx1OrDS+hmsWIyXPHh4M03zlBc19tz5KbWG5jDvgmw0XWCXLtOPrOBYWBtEK37uxQvz7eNkoCBiZpnIvTxn9YDOP/UgJywUxhlpr/AQ0+/rNjOiIX0ZSPAEZ6ESqukevP5pLAF2j+QO2Ob+FdfUXPPV2FUT5vIYUFTZKwgBQQGS68fJncNlCC+3gvkpnE5C5HYgIG7fqILWofhIbMo5IIwaQtkMNenNRhml2
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(2616005)(66946007)(91956017)(6506007)(66446008)(38070700005)(6512007)(5660300002)(66476007)(186003)(66556008)(38100700002)(6916009)(2906002)(76116006)(54906003)(8936002)(64756008)(71200400001)(6486002)(8676002)(53546011)(7416002)(31686004)(83380400001)(4326008)(31696002)(508600001)(316002)(122000001)(36756003)(86362001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?ampSemY4U2xPZkhnQjRrSnMyWFFHS056VzVmVVp1VERPZHNjSUdOMFdQd3RP?=
 =?utf-8?B?WEw5WE8rSlJxclBsdzA3S2Z1QWlLR1ZVcFdMOEdaMFpNdzI4VU9LclJMYTl5?=
 =?utf-8?B?aXZzVkxqRmRRdUF5b0Y4TG43V0dESWdmcFRhZExkckJ5T1FDU0s4a0c3blhT?=
 =?utf-8?B?MlBsWmw1b2JvYm14ZHlkTi96bGFPeUthYk0xQ3R4OHVwMEFRalF0dEN1U0xw?=
 =?utf-8?B?R2hhZDBPOFBvVmFteWpXSzR0c0VrUkFIaVp4OEZ6aFFxNWI5S3YvV2hPc3By?=
 =?utf-8?B?cUl1NHZXMk96M0JSQmhvbTVPWkNBbmlHRkhnQndIZmVuZlJtY1VTWmZBelNh?=
 =?utf-8?B?L0I1OGFkSDBHV0dQcWxkYWVvazFzTlFYU1V6Qm5tc1AvNnJRTjBmWERtZ3FN?=
 =?utf-8?B?cUJVNEx5U1EvbTdMYjQwb3Q4ZUNCUHRpOXh1QUtpNktuVS9RbWlWWHhQWG1Y?=
 =?utf-8?B?aUlEemxmTTdRV0FlaVB4R050RGJvYXpnQkNTS1F0bTlaSmxDYVZ4TXpyMEpK?=
 =?utf-8?B?dDJsSXBZaGFEQ3ZYMkFPUm43d2dBV2QvNFdnTitVbU5OSFFwbE5FaHBCMWlD?=
 =?utf-8?B?NW5EQldsdzVwYTZuOHJhQnROSWFhU2UvR1hUMWFXV04ySms2TU1rVmlRa2VS?=
 =?utf-8?B?UzhIWGdSY0h6bGhEMXplZU96R3prU1BmQ3ppV2w4ZzdERmtvU0JsU2VCUDho?=
 =?utf-8?B?Tk1yQjh3eEs1ZGM1S2t1NGtjUE4yM01Gb0NINFc0UEFFRDZPSnVxek4xY1or?=
 =?utf-8?B?NGg2V1dVTTU1QWxXSTNNeWNQdUI2Vlc5U24vSzhkWG9RYktXZWFNeVQvd1Ez?=
 =?utf-8?B?NnM2Rzc2MlhWYkluTlBvSkE5SzFSS3EzdVN0RDVMVCs5U3RuQm1Vb2N3a2xm?=
 =?utf-8?B?WjEvUDNDT3lqSitkbzRaQjRRNDlpYm93QmptbTZ4ODgrNVpRbFYxOTlvRS9a?=
 =?utf-8?B?M2FMbGtLU3AvZVZ1VFZUZlZCSGVCaEtjTW53a1lIVC9FNVB5NnJGRDFwTzl5?=
 =?utf-8?B?SDc5ZzNEWWptNnJHOGJ3L0RmTER5WHZyc3QrbGc3SVR2dUhtZWsreDVDYXN0?=
 =?utf-8?B?dEVCL2M2aWNQY0FMZjJadzlDdkw3aWtyd1NOOWhuTXpjUXFGc2VqTlFuaXRv?=
 =?utf-8?B?bEQ2SUFSeTlsa3prVGovanN2NGJHZDk0NXFtMW5GRTVreVgxb1dnV25tTUIx?=
 =?utf-8?B?VUVXMmMxZHU2SGF3SkM2dzBrYkZsWXRWYUtERU1URnU2Q3ZqTVd5NHVTbk9O?=
 =?utf-8?B?V01XSHFnNDc5OHRkQVMwQjVncVVSQUpBMzRFaUx6enRIWWJtZlVCKzVjbHlz?=
 =?utf-8?B?aDJhN1BramNpWDh1UU9PU3ErZ2lKNnREWGdDWUszMERoYk1zTmFndExlVXJ3?=
 =?utf-8?B?VFlJVXM3WXRlYjBXSmZEdWN2dDI5MmFGK045ZWhkeSticTZUMTRsZEhlSnEy?=
 =?utf-8?B?M1NFWC9vRXRrRWs2RHZsSkdIdjA0ZlNINGNjL3dTVURHdUc2VGNVcXQ4L3lH?=
 =?utf-8?B?Q2ppdExZRzlDdmRtVVpjQWovWnl3RUhSUzJ4QXZBZ2tSNnF6em53djhpY3Er?=
 =?utf-8?B?djJXYVlHUGVRd1p0cUNRZ1NYdHErdFRGcUYvVXAyeUZubjA5bWJwQkRwczJt?=
 =?utf-8?B?WStKUFlwNXloV3JCVTYxQytQcmZIdWdtRGxjQjNmR1hpTzlhb1JqaC9va1c1?=
 =?utf-8?B?ZnRDeWFBSVp1Ym84TUpoSDZuMUtWK1lIM2xnTnNwVW56UnllWTVHcmlOTlNW?=
 =?utf-8?B?UzZKbWFIRHlwOHBYUDRUY2JQTU1xZ0NCSEVqZDZsOTRpTEVQWHQ5UzI4L3J1?=
 =?utf-8?B?MDg5QnFPSldibXJHMzVweWpoa0RaZ1h0K1pDc29FcVB4NDk3RHBGcWVMUkhz?=
 =?utf-8?B?WkZNMnpPVzJLU1RVN3IxMGVXUFA0a3VDSXd3cHdWNWUza2xocDVsaDZRWllt?=
 =?utf-8?B?M1NYVmR4QjRRUVJ4QjJPY3VXbUQweU5sY2VCTU1GcEpKbktJS0doR3BxZXgx?=
 =?utf-8?B?dFJwdjBkb2hnd1B3SlF5RjQzSEtKbmN3d010QzZ6eE5IOEp4MTVpT21VYUli?=
 =?utf-8?B?VlJ3MGhwQThuQXZsMXpwRjNxVDEwQWJQYXZYRnV0a3NDaXF2SndEdmRoTjRh?=
 =?utf-8?B?V1lScFdnS09yV3A3aVo3YXNRay84VndSZXh1Mlp6R05EWFlTUFEwZmFsRi9k?=
 =?utf-8?B?NGxzbHI2U0hlVmlqd0Z4bG5BaWJBVTRpOFFQTWoyUWsrRnFYTmxjNHFqRmx5?=
 =?utf-8?B?dWpjL3k5OFpuMEtwY3h2dHowZGNsQmxCaDkvRlhOalJMZmo4d3BGc2tLNUpa?=
 =?utf-8?B?TTdsa0wydFJZcmpmV3E3M1hDNjN3OGh1QVcvcnRUd01TSWsydzVVQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F0C5090ECA5E9F47BF375D197F67F2BA@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 068cf1c8-e7dd-4226-1a48-08d9aa9dc09c
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 14:14:36.6822
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: BsdvdRJFcwV6yGsyGPBUl/26Q3CHMXqgM9TZYhCWjkGllgLa3tOpEsXIXfueZQet7bisYo4rYY2I5OMoX6bGprmghh9knnBU24JPRRbaIC1tHo8/ng+AjdCTEL/OfPkP
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5010
X-Proofpoint-ORIG-GUID: 7TQi96NYGyjgToYoK5GdMgJuVhka_4fl
X-Proofpoint-GUID: 7TQi96NYGyjgToYoK5GdMgJuVhka_4fl
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_12,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501
 adultscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 mlxscore=0
 bulkscore=0 clxscore=1015 impostorscore=0 suspectscore=0 phishscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180080

DQoNCk9uIDE4LjExLjIxIDE2OjA0LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBTb3JyeSwg
SSd2ZSBiZWVuIHF1aXRlIGJ1c3kgd2l0aCBvdGhlciBzdGFmZi4NCj4NCj4gT24gVGh1LCBOb3Yg
MTgsIDIwMjEgYXQgMDE6NDg6MDZQTSArMDAwMCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3Jv
dGU6DQo+Pg0KPj4gT24gMTguMTEuMjEgMTU6MjUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9u
IDE4LjExLjIwMjEgMTA6MzIsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBP
biAxOC4xMS4yMSAxMToxNSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+PiBPbiAxOC4xMS4yMDIx
IDA5OjU0LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBPbiAxOC4xMS4y
MSAxMDozNiwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+Pj4+IE9uIDE4LjExLjIwMjEgMDg6NDks
IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+Pj4+Pj4gT24gMTcuMTEuMjEgMTA6
MjgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+Pj4+Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+Pj4+Pj4+PiBGcm9tOiBPbGVrc2FuZHIg
QW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pj4+Pj4+
Pj4+DQo+Pj4+Pj4+Pj4+IFdoZW4gYSB2UENJIGlzIHJlbW92ZWQgZm9yIGEgUENJIGRldmljZSBp
dCBpcyBwb3NzaWJsZSB0aGF0IHdlIGhhdmUNCj4+Pj4+Pj4+Pj4gc2NoZWR1bGVkIGEgZGVsYXll
ZCB3b3JrIGZvciBtYXAvdW5tYXAgb3BlcmF0aW9ucyBmb3IgdGhhdCBkZXZpY2UuDQo+Pj4+Pj4+
Pj4+IEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHNjZW5hcmlvIGNhbiBpbGx1c3RyYXRlIHRo
ZSBwcm9ibGVtOg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBwY2lfcGh5c2Rldl9vcA0KPj4+Pj4+
Pj4+PiAgICAgICAgIHBjaV9hZGRfZGV2aWNlDQo+Pj4+Pj4+Pj4+ICAgICAgICAgICAgIGluaXRf
YmFycyAtPiBtb2RpZnlfYmFycyAtPiBkZWZlcl9tYXAgLT4gcmFpc2Vfc29mdGlycShTQ0hFRFVM
RV9TT0ZUSVJRKQ0KPj4+Pj4+Pj4+PiAgICAgICAgIGlvbW11X2FkZF9kZXZpY2UgPC0gRkFJTFMN
Cj4+Pj4+Pj4+Pj4gICAgICAgICB2cGNpX3JlbW92ZV9kZXZpY2UgLT4geGZyZWUocGRldi0+dnBj
aSkNCj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4gbGVhdmVfaHlwZXJ2aXNvcl90b19ndWVzdA0KPj4+
Pj4+Pj4+PiAgICAgICAgIHZwY2lfcHJvY2Vzc19wZW5kaW5nOiB2LT52cGNpLm1lbSAhPSBOVUxM
OyB2LT52cGNpLnBkZXYtPnZwY2kgPT0gTlVMTA0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBGb3Ig
dGhlIGhhcmR3YXJlIGRvbWFpbiB3ZSBjb250aW51ZSBleGVjdXRpb24gYXMgdGhlIHdvcnNlIHRo
YXQNCj4+Pj4+Pj4+Pj4gY291bGQgaGFwcGVuIGlzIHRoYXQgTU1JTyBtYXBwaW5ncyBhcmUgbGVm
dCBpbiBwbGFjZSB3aGVuIHRoZQ0KPj4+Pj4+Pj4+PiBkZXZpY2UgaGFzIGJlZW4gZGVhc3NpZ25l
ZA0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBGb3IgdW5wcml2aWxlZ2VkIGRvbWFpbnMgdGhhdCBn
ZXQgYSBmYWlsdXJlIGluIHRoZSBtaWRkbGUgb2YgYSB2UENJDQo+Pj4+Pj4+Pj4+IHt1bn1tYXAg
b3BlcmF0aW9uIHdlIG5lZWQgdG8gZGVzdHJveSB0aGVtLCBhcyB3ZSBkb24ndCBrbm93IGluIHdo
aWNoDQo+Pj4+Pj4+Pj4+IHN0YXRlIHRoZSBwMm0gaXMuIFRoaXMgY2FuIG9ubHkgaGFwcGVuIGlu
IHZwY2lfcHJvY2Vzc19wZW5kaW5nIGZvcg0KPj4+Pj4+Pj4+PiBEb21VcyBhcyB0aGV5IHdvbid0
IGJlIGFsbG93ZWQgdG8gY2FsbCBwY2lfYWRkX2RldmljZS4NCj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+
Pj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRy
dXNoY2hlbmtvQGVwYW0uY29tPg0KPj4+Pj4+Pj4+IFRoaW5raW5nIGFib3V0IGl0IHNvbWUgbW9y
ZSwgSSdtIG5vdCBjb252aW5jZWQgYW55IG9mIHRoaXMgaXMgcmVhbGx5DQo+Pj4+Pj4+Pj4gbmVl
ZGVkIGluIHRoZSBwcmVzZW50ZWQgZm9ybS4NCj4+Pj4+Pj4+IFRoZSBpbnRlbnRpb24gb2YgdGhp
cyBwYXRjaCB3YXMgdG8gaGFuZGxlIGVycm9yIGNvbmRpdGlvbnMgd2hpY2ggYXJlDQo+Pj4+Pj4+
PiBhYm5vcm1hbCwgZS5nLiB3aGVuIGlvbW11X2FkZF9kZXZpY2UgZmFpbHMgYW5kIHdlIGFyZSBp
biB0aGUgbWlkZGxlDQo+Pj4+Pj4+PiBvZiBpbml0aWFsaXphdGlvbi4gU28sIEkgYW0gdHJ5aW5n
IHRvIGNhbmNlbCBhbGwgcGVuZGluZyB3b3JrIHdoaWNoIG1pZ2h0DQo+Pj4+Pj4+PiBhbHJlYWR5
IGJlIHRoZXJlIGFuZCBub3QgdG8gY3Jhc2guDQo+Pj4+Pj4+IE9ubHkgRG9tMCBtYXkgYmUgYWJs
ZSB0byBwcmVtYXR1cmVseSBhY2Nlc3MgdGhlIGRldmljZSBkdXJpbmcgImFkZCIuDQo+Pj4+Pj4+
IFlldCB1bmxpa2UgZm9yIERvbVUtcyB3ZSBnZW5lcmFsbHkgZXhwZWN0IERvbTAgdG8gYmUgd2Vs
bC1iZWhhdmVkLg0KPj4+Pj4+PiBIZW5jZSBJJ20gbm90IHN1cmUgSSBzZWUgdGhlIG5lZWQgZm9y
IGRlYWxpbmcgd2l0aCB0aGVzZS4NCj4+Pj4+PiBQcm9iYWJseSBJIGRvbid0IGZvbGxvdyB5b3Ug
aGVyZS4gVGhlIGlzc3VlIEkgYW0gZmFjaW5nIGlzIERvbTANCj4+Pj4+PiByZWxhdGVkLCBlLmcu
IFhlbiB3YXMgbm90IGFibGUgdG8gaW5pdGlhbGl6ZSBkdXJpbmcgImFkZCIgYW5kIHRodXMNCj4+
Pj4+PiB3YW50ZWQgdG8gY2xlYW4gdXAgdGhlIGxlZnRvdmVycy4gQXMgdGhlIHJlc3VsdCB0aGUg
YWxyZWFkeQ0KPj4+Pj4+IHNjaGVkdWxlZCB3b3JrIGNyYXNoZXMgYXMgaXQgd2FzIG5vdCBuZWl0
aGVyIGNhbmNlbGVkIG5vciBpbnRlcnJ1cHRlZA0KPj4+Pj4+IGluIHNvbWUgc2FmZSBtYW5uZXIu
IFNvLCB0aGlzIHNvdW5kcyBsaWtlIHNvbWV0aGluZyB3ZSBuZWVkIHRvIHRha2UNCj4+Pj4+PiBj
YXJlIG9mLCB0aHVzIHRoaXMgcGF0Y2guDQo+Pj4+PiBCdXQgbXkgcG9pbnQgd2FzIHRoZSBxdWVz
dGlvbiBvZiB3aHkgdGhlcmUgd291bGQgYmUgYW55IHBlbmRpbmcgd29yaw0KPj4+Pj4gaW4gdGhl
IGZpcnN0IHBsYWNlIGluIHRoaXMgY2FzZSwgd2hlbiB3ZSBleHBlY3QgRG9tMCB0byBiZSB3ZWxs
LWJlaGF2ZWQuDQo+Pj4+IEkgYW0gbm90IHNheWluZyBEb20wIG1pc2JlaGF2ZXMgaGVyZS4gVGhp
cyBpcyBteSByZWFsIHVzZS1jYXNlDQo+Pj4+IChhcyBpbiB0aGUgY29tbWl0IG1lc3NhZ2UpOg0K
Pj4+Pg0KPj4+PiBwY2lfcGh5c2Rldl9vcA0KPj4+PiAgICAgICAgIHBjaV9hZGRfZGV2aWNlDQo+
Pj4+ICAgICAgICAgICAgIGluaXRfYmFycyAtPiBtb2RpZnlfYmFycyAtPiBkZWZlcl9tYXAgLT4g
cmFpc2Vfc29mdGlycShTQ0hFRFVMRV9TT0ZUSVJRKQ0KPj4+PiAgICAgICAgIGlvbW11X2FkZF9k
ZXZpY2UgPC0gRkFJTFMNCj4+Pj4gICAgICAgICB2cGNpX3JlbW92ZV9kZXZpY2UgLT4geGZyZWUo
cGRldi0+dnBjaSkNCj4+Pj4NCj4+Pj4gbGVhdmVfaHlwZXJ2aXNvcl90b19ndWVzdA0KPj4+PiAg
ICAgICAgIHZwY2lfcHJvY2Vzc19wZW5kaW5nOiB2LT52cGNpLm1lbSAhPSBOVUxMOyB2LT52cGNp
LnBkZXYtPnZwY2kgPT0gTlVMTA0KPj4+IEZpcnN0IG9mIGFsbCBJJ20gc29ycnkgZm9yIGhhdmlu
ZyBsb3N0IHRyYWNrIG9mIHRoYXQgcGFydGljdWxhciBjYXNlIGluDQo+Pj4gdGhlIGNvdXJzZSBv
ZiB0aGUgZGlzY3Vzc2lvbi4NCj4+IE5vIHByb2JsZW0sIEkgc2VlIG9uIHRoZSBNTCBob3cgbXVj
aCB5b3UgcmV2aWV3IGV2ZXJ5IGRheS4uLg0KPj4+IEkgd29uZGVyIHRob3VnaCB3aGV0aGVyIHRo
YXQncyBzb21ldGhpbmcgd2UgcmVhbGx5IG5lZWQgdG8gdGFrZSBjYXJlIG9mLg0KPj4+IEF0IGJv
b3QgKG9uIHg4NikgbW9kaWZ5X2JhcnMoKSB3b3VsZG4ndCBjYWxsIGRlZmVyX21hcCgpIGFueXdh
eSwgYnV0DQo+Pj4gdXNlIGFwcGx5X21hcCgpIGluc3RlYWQuIEkgd29uZGVyIHdoZXRoZXIgdGhp
cyB3b3VsZG4ndCBiZSBhcHByb3ByaWF0ZQ0KPj4+IGdlbmVyYWxseSBpbiB0aGUgY29udGV4dCBv
ZiBpbml0X2JhcnMoKSB3aGVuIHVzZWQgZm9yIERvbTAgKG5vdCBzdXJlDQo+Pj4gd2hldGhlciBp
bml0X2JhcnMoKSB3b3VsZCBmaW5kIHNvbWUgZm9ybSBvZiB1c2UgZm9yIERvbVUtcyBhcyB3ZWxs
KS4NCj4+PiBUaGlzIGlzIGV2ZW4gbW9yZSBzbyBhcyBpdCB3b3VsZCBiZXR0ZXIgYmUgdGhlIGV4
Y2VwdGlvbiB0aGF0IGRldmljZXMNCj4+PiBkaXNjb3ZlcmVkIHBvc3QtYm9vdCBzdGFydCBvdXQg
d2l0aCBtZW1vcnkgZGVjb2RpbmcgZW5hYmxlZCAod2hpY2ggaXMgYQ0KPj4+IHByZXJlcSBmb3Ig
bW9kaWZ5X2JhcnMoKSB0byBiZSBjYWxsZWQgaW4gdGhlIGZpcnN0IHBsYWNlKS4NCj4+IFdlbGws
IGZpcnN0IG9mIGFsbCBpbml0X2JhcnMgaXMgZ29pbmcgdG8gYmUgdXNlZCBmb3IgRG9tVXMgYXMg
d2VsbDoNCj4+IHRoYXQgd2FzIGRpc2N1c3NlZCBwcmV2aW91c2x5IGFuZCBpcyByZWZsZWN0ZWQg
aW4gdGhpcyBzZXJpZXMuDQo+Pg0KPj4gQnV0IHRoZSByZWFsIHVzZS1jYXNlIGZvciB0aGUgZGVm
ZXJyZWQgbWFwcGluZyB3b3VsZCBiZSB0aGUgb25lDQo+PiBmcm9tIFBDSV9DT01NQU5EIHJlZ2lz
dGVyIHdyaXRlIGVtdWxhdGlvbjoNCj4+DQo+PiB2b2lkIHZwY2lfY21kX3dyaXRlKGNvbnN0IHN0
cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4gICDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50MzJfdCBjbWQsIHZvaWQgKmRhdGEpDQo+PiB7
DQo+PiBbc25pcF0NCj4+ICAgwqDCoMKgwqDCoMKgwqAgbW9kaWZ5X2JhcnMocGRldiwgY21kLCBm
YWxzZSk7DQo+Pg0KPj4gd2hpY2ggaW4gdHVybiBjYWxscyBkZWZlcl9tYXAuDQo+Pg0KPj4gSSBi
ZWxpZXZlIFJvZ2VyIGRpZCB0aGF0IGZvciBhIGdvb2QgcmVhc29uIG5vdCB0byBzdGFsbCBYZW4g
d2hpbGUgZG9pbmcNCj4+IG1hcC91bm1hcCAod2hpY2ggbWF5IHRha2UgcXVpdGUgc29tZSB0aW1l
KSBhbmQgbW92ZWQgdGhhdCB0bw0KPj4gdnBjaV9wcm9jZXNzX3BlbmRpbmcgYW5kIFNPRlRJUlEg
Y29udGV4dC4NCj4gSW5kZWVkLiBJbiB0aGUgcGh5c2Rldm9wIGZhaWx1cmUgY2FzZSB0aGlzIGNv
bWVzIGZyb20gYW4gaHlwZXJjYWxsDQo+IGNvbnRleHQsIHNvIG1heWJlIHlvdSBjb3VsZCBkbyB0
aGUgbWFwcGluZyBpbiBwbGFjZSB1c2luZyBoeXBlcmNhbGwNCj4gY29udGludWF0aW9ucyBpZiBy
ZXF1aXJlZC4gTm90IHN1cmUgaG93IGNvbXBsZXggdGhhdCB3b3VsZCBiZSwNCj4gY29tcGFyZWQg
dG8ganVzdCBkZWZlcnJpbmcgdG8gZ3Vlc3QgZW50cnkgcG9pbnQgYW5kIHRoZW4gZGVhbGluZyB3
aXRoDQo+IHRoZSBwb3NzaWJsZSBjbGVhbnVwIG9uIGZhaWx1cmUuDQpUaGlzIHdpbGwgc29sdmUg
b25lIHBhcnQgb2YgdGhlIGVxdWF0aW9uOg0KDQpwY2lfcGh5c2Rldl9vcA0KICAgICAgICBwY2lf
YWRkX2RldmljZQ0KICAgICAgICAgICAgaW5pdF9iYXJzIC0+IG1vZGlmeV9iYXJzIC0+IGRlZmVy
X21hcCAtPiByYWlzZV9zb2Z0aXJxKFNDSEVEVUxFX1NPRlRJUlEpDQogICAgICAgIGlvbW11X2Fk
ZF9kZXZpY2UgPC0gRkFJTFMNCiAgICAgICAgdnBjaV9yZW1vdmVfZGV2aWNlIC0+IHhmcmVlKHBk
ZXYtPnZwY2kpDQoNCkJ1dCB3aGF0IGFib3V0IHRoZSBvdGhlciBvbmUsIGUuZy4gdnBjaV9wcm9j
ZXNzX3BlbmRpbmcgaXMgdHJpZ2dlcmVkIGluDQpwYXJhbGxlbCB3aXRoIFBDSSBkZXZpY2UgZGUt
YXNzaWduIGZvciBleGFtcGxlPw0KDQo+DQo+IFRoYW5rcywgUm9nZXIuDQpUaGFuayB5b3UsDQpP
bGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 14:35:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 14:35:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227453.393385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mniVX-0003zk-DF; Thu, 18 Nov 2021 14:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227453.393385; Thu, 18 Nov 2021 14:35:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mniVX-0003zd-9b; Thu, 18 Nov 2021 14:35:23 +0000
Received: by outflank-mailman (input) for mailman id 227453;
 Thu, 18 Nov 2021 14:35:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mniVW-0003zX-5f
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 14:35:22 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c190f947-487c-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 15:35:20 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-21-GMpUn_yZNv6aGfaz7kbjcA-1; Thu, 18 Nov 2021 15:35:18 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6671.eurprd04.prod.outlook.com (2603:10a6:803:11f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 18 Nov
 2021 14:35:17 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 14:35:17 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FRYP281CA0017.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.17 via Frontend Transport; Thu, 18 Nov 2021 14:35:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c190f947-487c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637246120;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Q0pIrFpklBOSD6hAv0+HQDYDrR5HqC2fhf8WYNDb3PM=;
	b=l43iAnnIX0bTo4avk/N+ptG6AnEWG63dA3kdxzC5GuRe8Abs25/F//xyOMJNGA1v//zxc7
	nCi1ds/creVu2Rg40sXLevMlGNkX+/C+YAqVFr/W/KxevaZHStTtpHCwb7sX4R6wtdSAJD
	yPUW/NmWJiWoAkcmVdsnJDr58wr3ltI=
X-MC-Unique: GMpUn_yZNv6aGfaz7kbjcA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JYAN4BNDvhssVbv7eA4MnWf8TocRU16PmK5xrt8MisPOBvqjAQuGoVJsImxKk6XycwByj78AFh0u/1W5I3XzHWWk8dsF1Q8Xghm+gFVtjdzPlapeS+WIz+2Y+awzs6ChlQS9+O2inbnMBZAoQNPvYviu0sYY8kKlcZ0DCmjPyo9+o30C8qrDN1ANtzgy849V9PMxpQvad0T9QuacCGUod+67wqatFvIx9VVcS9jbHpr/ppoUWg9oiXk1udhOjq55jjzv/SquBYxvT6l8hjkdB7HMvoJs2LbYi9scdavWWmcF8vtGStKV1gfOvyT7TXB5OTebgPr+adCER5LSt8g4GA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9eXD7lSyYy++f0AHj3IOb5Lk5OJwElGRy3HgMpkNY1E=;
 b=WbErgp4uEqyWD5iD3/gYm2fr2Az4Sx5AgMYdmTJfR9vLVTkGa0KBqda1olRUSPRELlx3AsK16aRqlK86MUlsSDVLMbdqkLB554y5JztfHgdv9vOs0rd3VYtzThYnqNuLCdWdVECSyVttXNxoHDL4TnkML08BFmQBTmw+91ZVvEyS/x/1yrY5BetXLktQd/gOsmHEtnbIBFKOSxtpCHvfi44bM+cM2ydHj1sFAn6EHYW7nL3J8RAj6O8N4L9BH/XuS0Zw0O1g4Tl3eciX7WrmD+GIkEdvfofHGFrdo3IMQH5ENDmSBtIz2m7VAQwwbh5I+Oa5bnlO98XntHVquN8dEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
Date: Thu, 18 Nov 2021 15:35:14 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: FRYP281CA0017.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::27)
 To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c06305b0-5e17-4962-456d-08d9aaa0a3b9
X-MS-TrafficTypeDiagnostic: VE1PR04MB6671:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6671872A037AF1F991139F91B39B9@VE1PR04MB6671.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qyrHlrYU1q9PhcJc+6QrElBNNiWrXHT4tYH1cTS/CgubVqG68hiKXfPdGrqyf1hf1dFaGfaK5LN0YJzsKjdYjdm5NktqB4XY7/dG8hGP1TWfqmUInv1Hvl+65ojJY5/z+22NnPk+s48OhryZfDrUGnwBSPWO+fOtL/2GJ5GII+mFPBUE535DVXPw52EdAIR8rrGP331aD242NsUMilr6D9vAtEOJPB2RQDDiBI2taxcXsBNAOyVKYGavfIL+2RqdMpBNxUty+8EHZVuNsXsQ+u4fy2Bx0tZVhf11LWzsEsYFX9bWvj1gLz07RTYplk6uqYK1ecYK3gFTm1BGSrFxeB3ybxs+zN5VLgaLboKLReDY0E7469aGbo+nd6ZMQBqshjMIPxuidIBCRYc77BFtTuz5d3RKgfIdYStTLDythtkk8qfwsjesaPqMS2peloBjz3sJ3KkTF981XGFrVwqWPkK2YtN56T7a4h0BA4s9WjdBzbAeSJOeAbUjbyupnEbaalLirXKzzur4AJEfKN4eAPQfowDxUtrd7qfEkNzUgH9rHyRFpkqTQbZwPqkNDTTA/IjzDUbO+418gvFs+jgra/I0kusdxcFnKL0nCFP+90ICrMU3NkhVYGyaOuRKQ16iR/9UsIVqXN3pVrPGiv3z8bnSZYxwJXOwjydbItgNWIR3JV6qtSV1Hq8KL8//593rR1A5IeW9ZJeKbEnIJwN4+8AKYJOlbp5upIa4EolyaNs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66556008)(5660300002)(66476007)(66946007)(2616005)(956004)(83380400001)(6486002)(186003)(31696002)(26005)(6916009)(53546011)(4326008)(8676002)(54906003)(2906002)(16576012)(36756003)(316002)(31686004)(508600001)(86362001)(8936002)(38100700002)(7416002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?hK2TH+jwr9YkC/6oIEa6SVT1ovHS5yDFXmFPHyXO2T5dtWuT5zcw3FZOTE2/?=
 =?us-ascii?Q?zzoxNrkbGhmI6VLYReD4dH7JhSyBP4O8ScVzP2LbcUHnbA3vgn4Uh7CZ5cEp?=
 =?us-ascii?Q?zZG2iwsTV1fjA290kMCKENJ64bGw1eAIvkEOgMCj2sjyc6ToeKuJPJ33zamj?=
 =?us-ascii?Q?2iYCkElzsj4Osf0g7w6eKz34qzaS0l4Zeclo/rhV2j9e4UkivqFy7JO/bR7K?=
 =?us-ascii?Q?Kdy4P2TRCwJ6EfWY+gKB1gZHImAbKklI6chb1ETW56K6pXPq0nmShydoqSU5?=
 =?us-ascii?Q?oqe+R/NYUpMiGYVZ9ViZvtSC3mF2mVU2hxfjWGmjF1YnEkDJzZ48tUhhiBC4?=
 =?us-ascii?Q?oammFUmwLkCx2BqNowsQ/hSm738v5i+hMCsN1C2dRpQichMqvHcgRJAYyWsd?=
 =?us-ascii?Q?uXa4hhNJbC9J8IBlvRT01Y4g9zirvdA1G2sf5Uo/425ZgnJG90J9Pc5ZGZ8W?=
 =?us-ascii?Q?UU7B7AYBn9EmDExoM9UWz9EcFrY8nmZ2MUYHgQqW7cenMm1MPMZ8bkp1pfwr?=
 =?us-ascii?Q?rlmOi50mjXm5adwOmfxUG0PL0Mh4mZybFzqehZwhII8wRxadO5VxH0Y6o+yE?=
 =?us-ascii?Q?XDrGDFAbgLvQcUhqLJT6vSaj/FRMgJ6Yh7Dyu6ssx22z2fFVbbsW+gn5rnho?=
 =?us-ascii?Q?BtkINJFTekqwiu4p/gwXeVZVvsXW5kApkr8zuJuslfoDCFWzsxblHm2zn+5Z?=
 =?us-ascii?Q?rDkhKWcTKBbK3lBLczcX6MRE2IzQ4YQEr8HhfmL5b81j/AnnEqsRxhdfBEEN?=
 =?us-ascii?Q?mThzio6TmM9gW6No0chEDDjvrCVhEK73Ho3w9uK+n0KAiFHdRWbWXZm8OwU1?=
 =?us-ascii?Q?8Z6qKLkJQW8vqZ7Y35TH+7JwEqjvgPH8WedP/AcZXI//IAu1aLUl8ez7DLbo?=
 =?us-ascii?Q?h67VCuV46cF7Osid3MROKorFOvkFjmEHtiQaBW21/EYYNGy4DMZFp12QOMLS?=
 =?us-ascii?Q?XUXUeDHm3RnR6PzAPpdK3N7VTQtiUJzEXiOdYmBuPDK5k2HgAVbYjf9EbNs7?=
 =?us-ascii?Q?45QvZ3kZItPrpK/nc5BRcEAPIDE9TsdZNV4jojT8Fmt4KoK+XwPcdh20aQrB?=
 =?us-ascii?Q?p3XzlxkW3Pr2pRl/K2h3q4GW2EdzQuGPe4p1DhfwckrSLeyCimKZvzgr2R2K?=
 =?us-ascii?Q?vvmHXTcSnR1f/l8ZJcldJQb+811NvXg0FTr+6qnMntRneJP1Yt2g197JlvQg?=
 =?us-ascii?Q?U7Cpuh1T9F7Zi6J18REfUPfZqyMvCIXme06mQNoyLgY7KGZQ2knxD+7Ac8NF?=
 =?us-ascii?Q?UD7jfwIxu+wa/LHdmjw9i3E/rSJHPNUuAKz7uoVDb1s2GOfJFeFgQ3Um+nSq?=
 =?us-ascii?Q?DmpxGhzUa7s5114KI2HzT0oGGJ75vklC6IxQStdyOZaLGjpVygjV2OQ3HLTp?=
 =?us-ascii?Q?uLVPrgrBVfV289Hg8U0ynsJtb0kfrGcjpa8IpLOImgtsCX/zblfOpYZrfdVK?=
 =?us-ascii?Q?tN9gWOAGdtkMqAsEg/jjdEY4A2xVQ7YAyFd4NFQ4ma8+WwiNnFJBno7R7qel?=
 =?us-ascii?Q?4WwZZ4X0kmX2Aakll/s/97xp6EIbi9taEGNUrEN+TyQtq56EbARcjSFGbWFG?=
 =?us-ascii?Q?ss9jrqjZ677lUSIdPLwYxTE0H5EYfm7x5wNI8n+bTfBDwRUdCBezzvIJR2fv?=
 =?us-ascii?Q?K+1D+8TLXcGXzuTMK3KVhu4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c06305b0-5e17-4962-456d-08d9aaa0a3b9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 14:35:16.9042
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8Qc/7/sCee/xDIaivjHDaBQS9O34eHH9GGx7ENw7wepXWgxH0UUgtzs0ixu0+FFarQYlpEuOI0KCOj96Qg7KpQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6671

On 18.11.2021 15:14, Oleksandr Andrushchenko wrote:
> On 18.11.21 16:04, Roger Pau Monn=C3=A9 wrote:
>> Indeed. In the physdevop failure case this comes from an hypercall
>> context, so maybe you could do the mapping in place using hypercall
>> continuations if required. Not sure how complex that would be,
>> compared to just deferring to guest entry point and then dealing with
>> the possible cleanup on failure.
> This will solve one part of the equation:
>=20
> pci_physdev_op
>         pci_add_device
>             init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDU=
LE_SOFTIRQ)
>         iommu_add_device <- FAILS
>         vpci_remove_device -> xfree(pdev->vpci)
>=20
> But what about the other one, e.g. vpci_process_pending is triggered in
> parallel with PCI device de-assign for example?

Well, that's again in hypercall context, so using hypercall continuations
may again be an option. Of course at the point a de-assign is initiated,
you "only" need to drain requests (for that device, but that's unlikely
to be worthwhile optimizing for), while ensuring no new requests can be
issued. Again, for the device in question, but here this is relevant -
a flag may want setting to refuse all further requests. Or maybe the
register handling hooks may want tearing down before draining pending
BAR mapping requests; without the hooks in place no new such requests
can possibly appear.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 15:07:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 15:07:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227459.393396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnj0O-0007GE-SA; Thu, 18 Nov 2021 15:07:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227459.393396; Thu, 18 Nov 2021 15:07:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnj0O-0007G7-P5; Thu, 18 Nov 2021 15:07:16 +0000
Received: by outflank-mailman (input) for mailman id 227459;
 Thu, 18 Nov 2021 15:07:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3ELX=QF=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mnj0N-0007G1-Iu
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 15:07:16 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20603.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 364fb1df-4881-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 16:07:14 +0100 (CET)
Received: from AS9PR05CA0035.eurprd05.prod.outlook.com (2603:10a6:20b:489::17)
 by AM6PR08MB4565.eurprd08.prod.outlook.com (2603:10a6:20b:af::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 18 Nov
 2021 15:07:08 +0000
Received: from VE1EUR03FT061.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:489:cafe::a7) by AS9PR05CA0035.outlook.office365.com
 (2603:10a6:20b:489::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20 via Frontend
 Transport; Thu, 18 Nov 2021 15:07:08 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT061.mail.protection.outlook.com (10.152.19.220) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 15:07:07 +0000
Received: ("Tessian outbound 9a8c656e7c94:v110");
 Thu, 18 Nov 2021 15:07:06 +0000
Received: from 6c09a8e09a89.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 5145985E-01D6-4902-981C-C4501C8C1C23.1; 
 Thu, 18 Nov 2021 15:06:39 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6c09a8e09a89.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 18 Nov 2021 15:06:39 +0000
Received: from AM0PR08MB3778.eurprd08.prod.outlook.com (2603:10a6:208:104::24)
 by AM0PR08MB4946.eurprd08.prod.outlook.com (2603:10a6:208:165::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 15:06:34 +0000
Received: from AM0PR08MB3778.eurprd08.prod.outlook.com
 ([fe80::3133:1b5:369e:9dd5]) by AM0PR08MB3778.eurprd08.prod.outlook.com
 ([fe80::3133:1b5:369e:9dd5%7]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 15:06:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 364fb1df-4881-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ioVsnUZhMcuaw2BYK1lDBbcuFXgNuYB9H11k+0m6+Xg=;
 b=CRqKyJeivLa9XxXPPcn9s4/eCn8MWTkuQJ8aYrcA1WXrCx+Vjij6aIFcA1dezGAxkKv0SIoo99TNy5nuDXKtdiiRzDb6UN55bH1whHiaf+4hQ38CUcHq2w1Guy2CrI6jbEUKY6bljktZx3j7cowbn4i9bhlJ4DxXFc7+vnMDgr4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 14a47daf3f6c3a42
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=E8vcOAtQHEX3j2KEFjziDaXS73G6pdZK8VidRh16y14jfczJubH4NeQw0TFXeMrG8GEC3xoQ2XLj6Z0btGmDecfUs4BL4JQq7X2rOrdh92wrtztW0pg0VYZikARQl0DGVBwxFHusZQ8uHKmklj2s5nEkF85Wx5zc9LD06U2tt92xs7M2F/GQkLYgS99zDNHmg+mxfIxdfokZETPMtFJEHRnWTgotSJhhuvoQdSENkEBE6hRHjlgrQdvbCBDqusGBvptoaaejrcAf2fq8SMqKG5988TzyzkIMRCWCapnW539zD3pNdSntEbNK4NKntGRoKMEwQVKiMIk3ZVnIx0P1IA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ioVsnUZhMcuaw2BYK1lDBbcuFXgNuYB9H11k+0m6+Xg=;
 b=IcGVGL3IRmxZuQwA2Ne2DAA5hwqMmsaE4JsshlmqDrcUKewjRxYPGb6U9y5H+kCAkwds6iDrnPN1kNFS9Gd1WbOChhWXeFRkdV8VRj+jkpdEf1ORuQIPa8yuDMf5mBhr4n3CXTTWhMtR4WrN2DNBDSzfIkqz+cTfTZvAB3+OkNBDYFRzrsi4uWzaRlIoAuaKZp/7UoFYh3u11DpCx3I66MO3RxpMk6H42E6WMhXiBfcRf0wtlIi7zg0z+wmIqC0dfplNrBdQE7uUPezA/4kCzZl5pE1xpJrKHFoetBafRz6YKHeNx0niqC3VzXp9t9G0wghM43QzeMdB7oAG4GzsNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ioVsnUZhMcuaw2BYK1lDBbcuFXgNuYB9H11k+0m6+Xg=;
 b=CRqKyJeivLa9XxXPPcn9s4/eCn8MWTkuQJ8aYrcA1WXrCx+Vjij6aIFcA1dezGAxkKv0SIoo99TNy5nuDXKtdiiRzDb6UN55bH1whHiaf+4hQ38CUcHq2w1Guy2CrI6jbEUKY6bljktZx3j7cowbn4i9bhlJ4DxXFc7+vnMDgr4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Jun
 Nakajima <jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>, Konrad
 Rzeszutek Wilk <konrad.wilk@oracle.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, Nick
 Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Rahul Singh
	<Rahul.Singh@arm.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Samuel
 Thibault <samuel.thibault@ens-lyon.org>, Shriram Rajagopalan
	<rshriram@cs.ubc.ca>, Stefano Stabellini <sstabellini@kernel.org>, Stewart
 Hildebrand <stewart.hildebrand@dornerworks.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Tim Deegan <tim@xen.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Topic: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Index:
 AQHX25ke11bcLw+u/U2iOGdMJWqiNawHwc0AgAE8BwCAABFigIAACimAgAAKTgCAAAP5gIAAPOaA
Date: Thu, 18 Nov 2021 15:06:34 +0000
Message-ID: <E6EDB34C-1004-4253-BD54-BAD1E34C2978@arm.com>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <17956608-4AF6-4F97-99EC-E74E088F792B@arm.com>
 <YZYVzkaQTQ6+Rn72@Air-de-Roger>
 <31E84B55-DF77-40B5-A61E-45DC79AEC7F6@arm.com>
 <YZYs6ewhD7yBetFh@Air-de-Roger>
 <02E4A3D7-6FD7-4B48-BA66-2D62DF94003C@arm.com>
 <5a76d1d7-81d6-0a3e-3ab7-0ca735ee522f@xen.org>
In-Reply-To: <5a76d1d7-81d6-0a3e-3ab7-0ca735ee522f@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 52e7d580-12c1-410d-b4d0-08d9aaa516bf
x-ms-traffictypediagnostic: AM0PR08MB4946:|AM6PR08MB4565:
X-Microsoft-Antispam-PRVS:
	<AM6PR08MB456581FE7C820C8BE2588CD49D9B9@AM6PR08MB4565.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 iOJ2O3a5PhoFAAHAVHJ9GivmmAgoJhyiXx1rrMe+6xND21mN7QhGudPfF5PmT5pXD9GATzw1KbDdVtmylnmkzm5ckSQCrY4qq9uc2co9ik4v4YOzU1eIZeTze6MbZ7a5xFlGirsUYG+kO5vjOfp7auRETMfU77vmN5soD0HgHA2WzVePKHBRqmJ/R+8AlEzlgv+pfU8qCESaSyBL6oagN+3EoEVs4GjwNtJhj4HDABjXyH7gGf5YeBBIZm440WcnYMxGLnu4Ge5macd6w6pC34J4UzyUzkkoI07yiprGbV7C8aF8zjbk7mNsB8iCuKj/AIf3DW0sYRwI5kl+6NQJQgWzeo0r+Ta15sBjgmOvLHf+vAp2vY+71XD4kziAZv0c62hscQiZml73GhNDAxa0lw6RovXvWmoXotY2Ojm5XVz1N6VPcwjEtG0lVU9y03DnJkGCwlBNXm0mFDVVlPRfrlJgNdckx45EsL1Qgyhl4KPxb/m0HSroeqtia6YYvHgtNX4eKoKre17S5/0n8yY1D7MN3MhX75koPOJVMsotPj9IDXKXtWNcHd+ApwK/2AQ+21/XEuaAsfzFSsGWD0b7PMghxsIGATJFXRN+VyXYNcSXT0+72aluSFKPb+XeCXjuu2Wkd67zW/MRQzoxEgeogGIsj7+CXer6dIozRrlSHaLKeQDpeRmOEVvqeWm0UvjolU2rxBEBsVlCbPvZV/sOOo9KYEeOQTf0oklsdUWypgMy7eceJ64TL9QoThACe5ALQS3bthGpoH/P0gNYXzRJJ2uSr9CtcbLB6FFN4eTpwljBDGDNhBVxaDbXQcUhq8ObZK0VO0r7JK5V9eP40sXoQnfDpUvwbJw90LNfpPA5PJq4JgTFquJxXcDNeRO2cHePAHp9Lttyr91gpYqeIAAd1xU1KLSlshj0ceZCPNkUycE=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3778.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(966005)(83380400001)(86362001)(4326008)(5660300002)(6512007)(2906002)(33656002)(26005)(38100700002)(91956017)(76116006)(53546011)(66476007)(186003)(71200400001)(66556008)(66446008)(6506007)(66946007)(8676002)(6486002)(64756008)(36756003)(508600001)(2616005)(7416002)(7406005)(8936002)(316002)(122000001)(38070700005)(54906003)(6916009)(219803003)(207903002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <DAF98A4B0DECAC44BDE998FCB781D826@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4946
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT061.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	22b3378e-f3a2-4e95-d4f8-08d9aaa502ff
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	VBxD9hj5EM51V8xzs8vFAoRSsRBbW+HlV7UrKCIG3LVIi8oMkEmLIMgZgIG8saJdqmGPrI0UxZXGeZrwpq6zZ17WeLHbzcbuUJhriQ4Fm3T2wI9gJ8bzX4fh90bNUp/XMH49+j8vKT5LektSn/v8ovPIZoWuiuMyezgodsBu5ofbqM45WB5ALn9qSHLosYRfe/DNN++ofPD/UXqFul6JKrFZWxNuamjAKD/BSrTOX/3X/bFNKGV0vpOxpK6Ifzk55aOsKzcnSg9dkOBiue8tio4Qzx9DxWLkO9XsJjbx/VC2qrbWl5ttLKNSvtiwlT8iEp2dc32U29OvArnZ5JcER6PltjinWvtI0ylY/++mt8tPMfYD9vwzZpFMb9RZ6mZSCEyx+Q5axe0G9WVHLSwlJ5CmjHNJjmqbDbJqNHJLT5GLoGKXjz3jZABAR8H0QdKjt3qrHL5cNcGYTLEhMk7NksM/2ThZ9jlSe4UjlrXglfMHrttsrpCx5Ekqp7U+v/V7GfYCQg+YKksNcoImC7AZu1U2/qxK2d2Ugzb16Xw5EZ2b1VQVideYk4TCy2ZOIgaNUC0J7KjRzfOhcyN7v717ne9+Q/rFmsWg37IlA/0eSxCIweRoGw0YBPgCjS0e8ezHKdDT0KO4psFsiIcFjbdDeqgcMRGDOgBIVKrSN/mniJSi6sJdiCcM6ervMidXAzvCtQlGYKezZUOioTaRSp+AWY0O4Y6MbR1yZ1Ce6EL7mZs25YrWNrbCTeCSYqarUEEkCSF2OOXlCybJaoTlDmPRR364y3uarbDF4WbdUFwMQCpeJqCsuZTXg1k+WI/QXr+LgmZ43YIj1O8roKYcYLONGw0uSRUG6eQYIGxOdxUWndCpmoBdHdhMVn+/KKuRPHsQ
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(2616005)(8936002)(36756003)(81166007)(6486002)(36860700001)(5660300002)(33656002)(70586007)(26005)(186003)(70206006)(4326008)(53546011)(6506007)(2906002)(966005)(86362001)(316002)(6512007)(83380400001)(8676002)(82310400003)(6862004)(336012)(47076005)(508600001)(356005)(54906003)(207903002)(219803003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 15:07:07.6144
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 52e7d580-12c1-410d-b4d0-08d9aaa516bf
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT061.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4565

DQoNCj4gT24gMTggTm92IDIwMjEsIGF0IDExOjI4LCBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4u
b3JnPiB3cm90ZToNCj4gDQo+IA0KPiANCj4gT24gMTgvMTEvMjAyMSAxMToxNCwgQmVydHJhbmQg
TWFycXVpcyB3cm90ZToNCj4+IEhpIFJvZ2VyLA0KPj4+IE9uIDE4IE5vdiAyMDIxLCBhdCAxMDoz
NywgUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOg0KPj4+IA0K
Pj4+IE9uIFRodSwgTm92IDE4LCAyMDIxIGF0IDEwOjAxOjA4QU0gKzAwMDAsIEJlcnRyYW5kIE1h
cnF1aXMgd3JvdGU6DQo+Pj4+IEhpIFJvZ2VyLA0KPj4+PiANCj4+Pj4gDQo+Pj4+PiBPbiAxOCBO
b3YgMjAyMSwgYXQgMDg6NTgsIFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29t
PiB3cm90ZToNCj4+Pj4+IA0KPj4+Pj4gT24gV2VkLCBOb3YgMTcsIDIwMjEgYXQgMDI6MDc6NTBQ
TSArMDAwMCwgQmVydHJhbmQgTWFycXVpcyB3cm90ZToNCj4+Pj4+PiBIaSBSb2dlciwNCj4+Pj4+
PiANCj4+Pj4+Pj4gT24gMTcgTm92IDIwMjEsIGF0IDA5OjUzLCBSb2dlciBQYXUgTW9ubmUgPHJv
Z2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IERvY3VtZW50IHNv
bWUgb2YgdGhlIHJlbGV2YW50IGNoYW5nZXMgZHVyaW5nIHRoZSA0LjE2IHJlbGVhc2UgY3ljbGUs
DQo+Pj4+Pj4+IGxpa2VseSBtb3JlIGVudHJpZXMgYXJlIG1pc3NpbmcuDQo+Pj4+Pj4+IA0KPj4+
Pj4+PiBTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNv
bT4NCj4+Pj4+Pj4gLS0tDQo+Pj4+Pj4+IENIQU5HRUxPRy5tZCB8IDExICsrKysrKysrKysrDQo+
Pj4+Pj4+IDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspDQo+Pj4+Pj4+IA0KPj4+Pj4+
PiBkaWZmIC0tZ2l0IGEvQ0hBTkdFTE9HLm1kIGIvQ0hBTkdFTE9HLm1kDQo+Pj4+Pj4+IGluZGV4
IGFkMWE4YzJiYzIuLjhiMGJkZDljZjAgMTAwNjQ0DQo+Pj4+Pj4+IC0tLSBhL0NIQU5HRUxPRy5t
ZA0KPj4+Pj4+PiArKysgYi9DSEFOR0VMT0cubWQNCj4+Pj4+Pj4gQEAgLTIxLDYgKzIxLDE3IEBA
IFRoZSBmb3JtYXQgaXMgYmFzZWQgb24gW0tlZXAgYSBDaGFuZ2Vsb2ddKGh0dHBzOi8va2VlcGFj
aGFuZ2Vsb2cuY29tL2VuLzEuMC4wLykNCj4+Pj4+Pj4gLSBxZW11LXRyYWRpdGlvbmFsIGJhc2Vk
IGRldmljZSBtb2RlbHMgKGJvdGgsIHFlbXUtdHJhZGl0aW9uYWwgYW5kIGlvZW11LXN0dWJkb20p
IHdpbGwNCj4+Pj4+Pj4gIG5vIGxvbmdlciBiZSBidWlsdCBwZXIgZGVmYXVsdC4gSW4gb3JkZXIg
dG8gYmUgYWJsZSB0byB1c2UgdGhvc2UsIGNvbmZpZ3VyZSBuZWVkcyB0bw0KPj4+Pj4+PiAgYmUg
Y2FsbGVkIHdpdGggIi0tZW5hYmxlLXFlbXUtdHJhZGl0aW9uYWwiIGFzIHBhcmFtZXRlci4NCj4+
Pj4+Pj4gKyAtIEZpeGVzIGZvciBjcmVkaXQyIHNjaGVkdWxlciBzdGFiaWxpdHkgaW4gY29ybmVy
IGNhc2UgY29uZGl0aW9ucy4NCj4+Pj4+Pj4gKyAtIE9uZ29pbmcgaW1wcm92ZW1lbnRzIGluIHRo
ZSBoeXBlcnZpc29yIGJ1aWxkIHN5c3RlbS4NCj4+Pj4+Pj4gKyAtIHZ0cG1tZ3IgbWlzY2VsbGFu
ZW91cyBmaXhlcyBpbiBwcmVwYXJhdGlvbiBmb3IgVFBNIDIuMCBzdXBwb3J0Lg0KPj4+Pj4+PiAr
IC0gMzJiaXQgUFYgZ3Vlc3RzIG9ubHkgc3VwcG9ydGVkIGluIHNoaW0gbW9kZS4NCj4+Pj4+Pj4g
KyAtIEltcHJvdmVkIFBWSCBkb20wIGRlYnVnIGtleSBoYW5kbGluZy4NCj4+Pj4+Pj4gKyAtIEZp
eCBib290aW5nIG9uIHNvbWUgSW50ZWwgc3lzdGVtcyB3aXRob3V0IGEgUElUIChpODI1NCkuDQo+
Pj4+Pj4gDQo+Pj4+Pj4gTWlzc2luZzoNCj4+Pj4+PiAtIGNwdSBJRCBzYW5pdGl6YXRpb24gb24g
YXJtNjQNCj4+Pj4+PiAtIGZpeCAzMi82NGJpdCB2cmVnIGVtdWxhdGlvbiBvbiBhcm02NA0KPj4+
Pj4gDQo+Pj4+PiBDYW4gSSBnZXQgYSBiaXQgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aG9zZSBp
dGVtcz8gSnVzdCBhIHBvaW50ZXIgdG8NCj4+Pj4+IHRoZSBjb21taXQgbWVzc2FnZXMgd291bGQg
YmUgaGVscGZ1bCBzbyB0aGF0IEkgY2FuIHRyeSB0byB3cml0ZSBhIG1vcmUNCj4+Pj4+IGNvbXBy
ZWhlbnNpdmUgZW50cnkgKG9yIG1heWJlIGl0J3MganVzdCBtZSBub3Qga25vd2luZyBhbnl0aGlu
ZyBhYm91dA0KPj4+Pj4gQXJtIHRoYXQgZmFpbHMgdG8gdW5kZXJzdGFuZCBpdCkuDQo+Pj4+IA0K
Pj4+PiBJIGFncmVlLCB0aGUgdGV4dCBpcyBub3QgcXVpdGUgY2xlYXIsIEkgd2lsbCB0cnkgdG8g
Y29tZSB3aXRoIGEgYmV0dGVyIG9uZS4NCj4+Pj4gSW4gdGhlIG1lYW50aW1lIGhlcmUgaXMgYXJl
IGxpbmtzIHRvIHRoZSBzZXJpZXM6DQo+Pj4+IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcv
cHJvamVjdC94ZW4tZGV2ZWwvbGlzdC8/c2VyaWVzPTUzNTgwNSZzdGF0ZT0qDQo+Pj4+IGh0dHBz
Oi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC94ZW4tZGV2ZWwvbGlzdC8/c2VyaWVzPTQ3
NzE1MSZhcmNoaXZlPWJvdGgNCj4+PiANCj4+PiBUaGFua3MuIEkndmUgYWRkZWQ6DQo+Pj4gDQo+
Pj4gLSBDUFUgZmVhdHVyZSBsZXZlbGluZyBvbiBhcm02NCBwbGF0Zm9ybSB3aXRoIGhldGVyb2dl
bmVvdXMgY29yZXMuDQo+PiBZZXMNCj4+PiAtIEhhbmRsZSByZWdpc3RlciBhY2Nlc3NlcyBhcyAz
Mi82NGJpdCBvbiBBcm0gZGVwZW5kaW5nIG9uIHRoZSBwcm9jZXNzb3INCj4+PiAgIGJpdG5lc3Mu
DQo+PiBJIHdvdWxkIHNheToNCj4+IC0gRml4IGNvcHJvY2Vzc29yIHJlZ2lzdGVyIGFjY2Vzc2Vz
IG9uIEFybSB0byB1c2UgdGhlIHByb3BlciAzMi82NGJpdCBhY2Nlc3Mgc2l6ZS4NCj4gDQo+IEkg
d291bGQgc3VnZ2VzdCBzL2NvcHJvY2Vzc29yL3N5c3RlbS8gYmVjYXVzZSB0aGUgY2hhbmdlcyB3
YXMgdGFyZ2V0aW5nIGFybTY0Lg0KDQpBZ3JlZQ0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+
IENoZWVycywNCj4gDQo+IC0tIA0KPiBKdWxpZW4gR3JhbGwNCg0K


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 15:11:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 15:11:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227464.393407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnj4J-0000B0-Er; Thu, 18 Nov 2021 15:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227464.393407; Thu, 18 Nov 2021 15:11:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnj4J-0000At-Al; Thu, 18 Nov 2021 15:11:19 +0000
Received: by outflank-mailman (input) for mailman id 227464;
 Thu, 18 Nov 2021 15:11:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnj4I-0000An-M6
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 15:11:18 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c64d4e85-4881-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 16:11:16 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AICbJn0018398;
 Thu, 18 Nov 2021 15:11:12 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2172.outbound.protection.outlook.com [104.47.17.172])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cdp9ph1fj-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 15:11:12 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3470.eurprd03.prod.outlook.com (2603:10a6:803:1f::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 15:11:07 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 15:11:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c64d4e85-4881-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=S3aiC2WPGVSkzhjkn79WCGyqQqmQ+acXkZYVbnDy2Da+NxT3yKSY4rddJ5aRTIC9rYFBZKn4oA9QI7CjWaikABrvuzYDryh/t2GxGNrgA6ts6joO6sDQNXE7JKrgeOIotNBSunCEnuxAco/yJ4ZvR6fz1K17DvZHc7EZ2Bx/sC+5P51EgYSUVMk3LUrJUsR6zafX7CpQQE2MGfruDVsukCa5fuddz75W3ZtkOciHBieuPFWXRC1ZsvS3xD5QWoT4YalEl/IWIyzgYDoDoCoMh4fvt72mFre6k27XD6VA0vypBnahEJKLYBa/wHMKX4YBLBJLeuFYHC5f4Kibbd3i7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=13WsbcRt1o1jEhSqQDz7SEJwBOC96YHsyu/KpgELDf0=;
 b=dhc7GN5P+ThkNkD6gpYkB13xv2BW9APe2kWuvAIccRj27WL3MPYHhG276qfT/eUVwMae2hDNdtgykX7GZMpanisgtBTAIN9qSz6S6Y3+DjxOA5B3mocuuoHfIKMbuwKjBuzjGRT8j1vaZ7Rikgzy7ti42IUUFmzRCOAqIXLrO9V8Gr5DvLW8ZRbLDP+jj0m6OGAPCKrGIMyFEbHKcdVAujoohevaK+OI5dcnSTvLtZO96ltePmdqio4jaq+Dgwz/HK6ynfivmgoh73yAm9ZxgnEj4XYMUuLUC3gLX4UtcNzfN63crT0DAhM6RSNHNASDsPu68BM3Qc2MB5iv1j1t+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=13WsbcRt1o1jEhSqQDz7SEJwBOC96YHsyu/KpgELDf0=;
 b=FwSz2CrBP+g+fmsoZ0sODLusQywKbW5IFVz7rESamga0EEJTOsSLEesFbJ/oEmlMTn5WBRxTbQMwBEQq/Imh/hgC3ayoaDF1LQHY5vzblfM/GwtHJhjwfSG0BWiKnRKNySJOznTyVrow7pVN6xOhQfQaZNozKPmSbrn4QItc6Ij3JnB8ubucnBmkFCL6sP4gJfydsocU6uDlvIo6YWhCxtyZg3M9QRj908SFoOmjbRPHaYgeVu1lFzdkuCaf1lHD6dwUH8ux/NZmURasdCo8OTegRaj2stoXEXqdWX6Np/u0eXrVyxRkqXs5rMu1zSDANaZXU5Vmmw71LVvmCFa1Sg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIAgAAFxACAAAoGAA==
Date: Thu, 18 Nov 2021 15:11:07 +0000
Message-ID: <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
In-Reply-To: <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f6576ca7-6f12-4580-d574-08d9aaa5a5a9
x-ms-traffictypediagnostic: VI1PR0302MB3470:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB3470D8D3AFF498968B3CC3FBE79B9@VI1PR0302MB3470.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 cuj7xPq/t42lQBW5NZyH5kSwPl9BhFx5Y/GPMVOQP8rjN+AWWJxnjyPiHx2dm1golz1Vq6NiboQjio03PtyDhXctCp7WeZh453ZU1NxM5fqtc4YM5ryTmDqat/k18PDGqC5un03L5//V4hUPp8qKBf3ezyizQeBGooCzrmDAxSY0zODbkC7fTe2XpIvrQ4HGZje+Hr4GMdaotJVRfTYlfxHNuG0xOmPpy1GxaFoMe269PiPTQLdhhlibkLAfLNFm/G8MKb+nPahQ83ROzNIi/xtFOYUSdj8co31UrbFu32GcEMt+OSJkRMiv532iTxpxEkjoWpeU1jqfmDn9PeRR4e9UYDiNTNvCogCFTM7N8C+3c+xD02hv9YDjhP9rFiHnEdAhmZ18Ow9cPf1PjH+tj0pF1NmUvKW3yae2sCpNFlMdYngFTC8sDV3YRS0gK4m+auyUQ0p6fjqrfSZ3/lDXer1phDuFfMFlv1tW/MhCQEUaGnl1CnglxcCnbqM50vXGbf6LWipkIoR6TPZQFozuym8HUnff3fQhiDHoNf+MSye3LGXgR/Qqf/fsP3TkTD1DWyth29GKaGflQbIu1lWJbrZhOXsDl2MCzXPPAAhLkZZazW2L2JsCUpW1ECoJWfLjy8ueuL+IbkjsXA79IulmuBbrUrffgUCFwx3/qun25TP2W8/WQqO1VlBJk3iGu4hjVhhvodIvJ/gYtTX5p5vMJO5IfKTSSKVcRsUSdS/6nRkvv7KysC0JcRUtlSeBDobN
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66946007)(66556008)(6916009)(6512007)(76116006)(71200400001)(26005)(64756008)(66476007)(91956017)(66446008)(508600001)(8676002)(186003)(83380400001)(36756003)(54906003)(122000001)(8936002)(38100700002)(6486002)(86362001)(7416002)(31686004)(107886003)(38070700005)(2616005)(5660300002)(6506007)(2906002)(53546011)(4326008)(31696002)(316002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?a3pWWXd5SW5KaGxEcFplcXJINmVrckVvRG9XdmhnMXpCcXFiV3JnNG5seXRJ?=
 =?utf-8?B?Nm96RXREMi90U0ZxUnNzMDBtUEtQUVliWGJNcmFnenZuR2JiQ1h0UUdCYzh1?=
 =?utf-8?B?SEczWExXRU9MNlBiSHN1cXRZRWVmLzluWWNTRFVFTUJzdWllSFVpYmNxNXFH?=
 =?utf-8?B?SHFZekcyeCtUNEhHMk9kOUxkRDJEQUxTZnVkdkZVMUNGeW9VTFE4blRLS0FV?=
 =?utf-8?B?YkJxbGJJbjhpWW9PaGtOTHR3QmxEbkd6TnpXaGwxUi9wVmZ3dVhLS2hWSFFa?=
 =?utf-8?B?cURQZFJkVzVuV3lGT0J5QTg5RlJzTVRaR3AxVHArTnZ0eHloem9rcmFqRWht?=
 =?utf-8?B?OUUwVU51Q1RMR3haTVN6Q1BkRi9YYXBnT0Fib3ZRNjRYeEphaGkwTHhiOHgv?=
 =?utf-8?B?SUE1ekVlNXZOUzlxQVB6QVV6S2wzUExIYzd6UXFsbDdvdlRYeHA1Q2hudzFN?=
 =?utf-8?B?cUVVTmVhcTdpbFVVMnhJNjJVYTcxZUhOWkxHSHB4S2JLZ0NRSlU3MURsNTdw?=
 =?utf-8?B?Wi85bWI5ZTBpT2VwSmhJR2FjTThXWVpyTG1KSkdTZE9sWHBaOHlBcUNYNk5m?=
 =?utf-8?B?cUFzUCtkQUxxeUxzdXlhWTMrdTdFWWFVNk1MTnQ3UHk5WlZFSmJGNUZFa0ZB?=
 =?utf-8?B?Vlh3UE5PVlhjSks5ZXhpdkhnSWVTSHRnV3lYOUdZYkYzM3dJQ1NVTVd1U0V2?=
 =?utf-8?B?SlJ0OTBua2ZoUExwTGk4cDVmS1N5QTRkUlNvV1FET295eFZkNWp1OHVIOUNP?=
 =?utf-8?B?ei9iZ3pWajk4MW84MWVJalhjNjRGckdiQUFUQ0dvQm1ldmpxZFc2bS80ZnAy?=
 =?utf-8?B?U2t2bDVtQk96VWdtVzZKVlRBNWQxdGUxeG56YWVLbXI0ZWRMVEhDK01vVHo1?=
 =?utf-8?B?Y05VMUlyQnZzRHpwY3c0Y0owcFRXcGFTMVdRVUc0SVcxUC9DaU8yblBtb1NV?=
 =?utf-8?B?YVRTWmtNUWo2Qk9YVXJzVXBIZW45eHFrNUN1YVpRamVQSkxWSHJPaVh0NGhH?=
 =?utf-8?B?RmNuSmU2TlBzUkx3cGxkcUlHTkRhRzZUK0NiZ21WYm1zSmV6bmkrUS9zRGdM?=
 =?utf-8?B?VlVQQlpBbEcxcjdjL1V1SlhiYmxXRlpPbkkvOXFtOXhTaE9GLzVyY3FOcWkr?=
 =?utf-8?B?NDZ5YWZPRjY0QWFmM1dUNnJ6SHcvQ2dCQ3lQN3JvOHNCLzZRU2RwYUFRZkd0?=
 =?utf-8?B?cUJ3enlLWmFKaTlxZXI2TkNNOUsxNGZNK2l4ZDZrNGpBT3Nva2tGYkVZYUpm?=
 =?utf-8?B?RDdTUi9tKzkzcmlvT2dkOHJKYmdBNVJwdjN0YzZONllIVXdLQnZXTGJ2aGY5?=
 =?utf-8?B?THFLTWk2ak5JSGh2dUNhNDFTbzIwbHhLL21peUlJaHNhV1hQa1BicmVEeUpC?=
 =?utf-8?B?Y0RWbDlCWVkybVJwUEtIc1JoL1FiaE9WS2F6T1BaaXVJckx6R2JDWlVBdTZZ?=
 =?utf-8?B?MW1tVGQ1VWp3cnJSR0xqU2hweHo4WWZRS0tHSlQ0Q3pMdGdqUFloQ2V1MlBI?=
 =?utf-8?B?cGN0ZVRiTTd6YnBtaXZNNXFzbyt6R2dMNzlPcXJYdW9iSVdSc1JxRlNIelVP?=
 =?utf-8?B?SDZMemdROU1SYzZpSEpTcFR0ZUpYMFBwWWloY3F5R2x0OVJyYy8zcEh5WHBp?=
 =?utf-8?B?aDJ0TWpacGZuU21yRm1tYnRVMkpERTI2VTdLQWI3MnRUWDNSMjM5d3RGOXVn?=
 =?utf-8?B?MUNldEVaaFV5am4xbFVueStocHhVcHpTUytPR1VEL2pWOGtLYVRHWGlqRXB1?=
 =?utf-8?B?MUpZaTFHanAzMmJ0OGtaeGpCUUJacCtjaFJvRmVHMHZreVV6RkNOMmlGS0Nj?=
 =?utf-8?B?YkwydmY3dTJjUkNpNWxYZG13ZjA2aHJZbkx4aU1zajVGdHArcS9HU2NFVDVT?=
 =?utf-8?B?NkFoeTNEUndsMFVCOFhOVi9WZDZwM2k2TStmMUl6elZxdGFNc3FySUMxcmtD?=
 =?utf-8?B?RkJzL21LVk1pRUFud2VGcGRxZU1PWlVXcHBrWURiVDVaSnhHMFhsbDJJMm1z?=
 =?utf-8?B?dVRZNWd3SnRtNXpoUWllNUNPMWhIWGRiNmxWc0xHTEt5RkU0VGJSVE9KS1Fa?=
 =?utf-8?B?QmhTY3QyOTUxeWN0UUxSTVFCODIvMStKOWNYbDNQUUZQcytkVmcwekhRcVEy?=
 =?utf-8?B?VTNIZmhkM0Z4TFU4cFd6dlMxWVo1ZStMcUdOd2tDamRuTlRWOVUwdEZ4c0VE?=
 =?utf-8?B?QWhJMlpPanZEZGlNL3l3K2F4ZmZHb1plTmhmUDBrYW9IRWJqWkdBY1gzSUc2?=
 =?utf-8?B?NFVVbmxmZ3VzY2VaZ3FKZkRQOUcxdmhBbC8vL2s5a1hneDNLVmVtaG1Cd0JX?=
 =?utf-8?B?U1RKVm9uaGh3N3ZuaEIrTlhHZ2lXcTl4VWM3eUFPaUFGR0x2cmQ5Zz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6597CCBBABCB2B428F4B2DEC26EA69CD@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f6576ca7-6f12-4580-d574-08d9aaa5a5a9
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 15:11:07.3749
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Cc3xuG/+s33ATG+7UGx9stYvxXfxKUUbxvnmv3QF8G00AwlxCnoAnUcWqafPrfVW3GqAGQUc3N2HwqwR+rj01uGR29jukMpTfeVyz3m/7Ba1pY44SQkVeC19X5QBRNjw
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3470
X-Proofpoint-ORIG-GUID: mjb--oE1Py1kKF3VDuJdeoojY3xUDVul
X-Proofpoint-GUID: mjb--oE1Py1kKF3VDuJdeoojY3xUDVul
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_12,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501
 adultscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 mlxscore=0
 bulkscore=0 clxscore=1015 impostorscore=0 suspectscore=0 phishscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180085

DQoNCk9uIDE4LjExLjIxIDE2OjM1LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTguMTEuMjAy
MSAxNToxNCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOC4xMS4yMSAx
NjowNCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBJbmRlZWQuIEluIHRoZSBwaHlzZGV2
b3AgZmFpbHVyZSBjYXNlIHRoaXMgY29tZXMgZnJvbSBhbiBoeXBlcmNhbGwNCj4+PiBjb250ZXh0
LCBzbyBtYXliZSB5b3UgY291bGQgZG8gdGhlIG1hcHBpbmcgaW4gcGxhY2UgdXNpbmcgaHlwZXJj
YWxsDQo+Pj4gY29udGludWF0aW9ucyBpZiByZXF1aXJlZC4gTm90IHN1cmUgaG93IGNvbXBsZXgg
dGhhdCB3b3VsZCBiZSwNCj4+PiBjb21wYXJlZCB0byBqdXN0IGRlZmVycmluZyB0byBndWVzdCBl
bnRyeSBwb2ludCBhbmQgdGhlbiBkZWFsaW5nIHdpdGgNCj4+PiB0aGUgcG9zc2libGUgY2xlYW51
cCBvbiBmYWlsdXJlLg0KPj4gVGhpcyB3aWxsIHNvbHZlIG9uZSBwYXJ0IG9mIHRoZSBlcXVhdGlv
bjoNCj4+DQo+PiBwY2lfcGh5c2Rldl9vcA0KPj4gICAgICAgICAgcGNpX2FkZF9kZXZpY2UNCj4+
ICAgICAgICAgICAgICBpbml0X2JhcnMgLT4gbW9kaWZ5X2JhcnMgLT4gZGVmZXJfbWFwIC0+IHJh
aXNlX3NvZnRpcnEoU0NIRURVTEVfU09GVElSUSkNCj4+ICAgICAgICAgIGlvbW11X2FkZF9kZXZp
Y2UgPC0gRkFJTFMNCj4+ICAgICAgICAgIHZwY2lfcmVtb3ZlX2RldmljZSAtPiB4ZnJlZShwZGV2
LT52cGNpKQ0KPj4NCj4+IEJ1dCB3aGF0IGFib3V0IHRoZSBvdGhlciBvbmUsIGUuZy4gdnBjaV9w
cm9jZXNzX3BlbmRpbmcgaXMgdHJpZ2dlcmVkIGluDQo+PiBwYXJhbGxlbCB3aXRoIFBDSSBkZXZp
Y2UgZGUtYXNzaWduIGZvciBleGFtcGxlPw0KPiBXZWxsLCB0aGF0J3MgYWdhaW4gaW4gaHlwZXJj
YWxsIGNvbnRleHQsIHNvIHVzaW5nIGh5cGVyY2FsbCBjb250aW51YXRpb25zDQo+IG1heSBhZ2Fp
biBiZSBhbiBvcHRpb24uIE9mIGNvdXJzZSBhdCB0aGUgcG9pbnQgYSBkZS1hc3NpZ24gaXMgaW5p
dGlhdGVkLA0KPiB5b3UgIm9ubHkiIG5lZWQgdG8gZHJhaW4gcmVxdWVzdHMgKGZvciB0aGF0IGRl
dmljZSwgYnV0IHRoYXQncyB1bmxpa2VseQ0KPiB0byBiZSB3b3J0aHdoaWxlIG9wdGltaXppbmcg
Zm9yKSwgd2hpbGUgZW5zdXJpbmcgbm8gbmV3IHJlcXVlc3RzIGNhbiBiZQ0KPiBpc3N1ZWQuIEFn
YWluLCBmb3IgdGhlIGRldmljZSBpbiBxdWVzdGlvbiwgYnV0IGhlcmUgdGhpcyBpcyByZWxldmFu
dCAtDQo+IGEgZmxhZyBtYXkgd2FudCBzZXR0aW5nIHRvIHJlZnVzZSBhbGwgZnVydGhlciByZXF1
ZXN0cy4gT3IgbWF5YmUgdGhlDQo+IHJlZ2lzdGVyIGhhbmRsaW5nIGhvb2tzIG1heSB3YW50IHRl
YXJpbmcgZG93biBiZWZvcmUgZHJhaW5pbmcgcGVuZGluZw0KPiBCQVIgbWFwcGluZyByZXF1ZXN0
czsgd2l0aG91dCB0aGUgaG9va3MgaW4gcGxhY2Ugbm8gbmV3IHN1Y2ggcmVxdWVzdHMNCj4gY2Fu
IHBvc3NpYmx5IGFwcGVhci4NClRoaXMgY2FuIGJlIHByb2JhYmx5IGV2ZW4gZWFzaWVyIHRvIHNv
bHZlIGFzIHdlIHdlcmUgdGFsa2luZyBhYm91dA0KcGF1c2luZyBhbGwgdkNQVXM6DQoNCnZvaWQg
dnBjaV9jYW5jZWxfcGVuZGluZyhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikNCnsNCiDCoMKg
wqAgc3RydWN0IGRvbWFpbiAqZCA9IHBkZXYtPmRvbWFpbjsNCiDCoMKgwqAgc3RydWN0IHZjcHUg
KnY7DQogwqDCoMKgIGludCByYzsNCg0KIMKgwqDCoCB3aGlsZSAoIChyYyA9IGRvbWFpbl9wYXVz
ZV9leGNlcHRfc2VsZihkKSkgPT0gLUVSRVNUQVJUICkNCiDCoMKgwqDCoMKgwqDCoCBjcHVfcmVs
YXgoKTsNCg0KIMKgwqDCoCBpZiAoIHJjICkNCiDCoMKgwqDCoMKgwqDCoCBwcmludGsoWEVOTE9H
X0dfRVJSDQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiRmFpbGVkIHRvIHBhdXNlIHZD
UFVzIHdoaWxlIGNhbmNlbGluZyB2UENJIG1hcC91bm1hcCBmb3IgJXBwICVwZDogJWRcbiIsDQog
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmcGRldi0+c2JkZiwgcGRldi0+ZG9tYWluLCBy
Yyk7DQoNCiDCoMKgwqAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQ0KIMKgwqDCoCB7DQogwqDCoMKg
wqDCoMKgwqAgaWYgKCB2LT52cGNpLm1hcF9wZW5kaW5nICYmICh2LT52cGNpLnBkZXYgPT0gcGRl
dikgKQ0KDQpUaGlzIHdpbGwgcHJldmVudCBhbGwgdkNQVXMgdG8gcnVuLCBidXQgY3VycmVudCwg
dGh1cyBtYWtpbmcgaXQgaW1wb3NzaWJsZQ0KdG8gcnVuIHZwY2lfcHJvY2Vzc19wZW5kaW5nIGlu
IHBhcmFsbGVsIHdpdGggYW55IGh5cGVyY2FsbC4NClNvLCBldmVuIHdpdGhvdXQgbG9ja2luZyBp
biB2cGNpX3Byb2Nlc3NfcGVuZGluZyB0aGUgYWJvdmUgc2hvdWxkDQpiZSBlbm91Z2guDQpUaGUg
b25seSBjb25jZXJuIGhlcmUgaXMgdGhhdCBkb21haW5fcGF1c2VfZXhjZXB0X3NlbGYgbWF5IHJl
dHVybg0KdGhlIGVycm9yIGNvZGUgd2Ugc29tZWhvdyBuZWVkIHRvIGhhbmRsZS4uLg0KPiBKYW4N
Cj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 15:16:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 15:16:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227471.393418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnj9G-0000tj-5z; Thu, 18 Nov 2021 15:16:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227471.393418; Thu, 18 Nov 2021 15:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnj9G-0000tc-2P; Thu, 18 Nov 2021 15:16:26 +0000
Received: by outflank-mailman (input) for mailman id 227471;
 Thu, 18 Nov 2021 15:16:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnj9F-0000tW-5E
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 15:16:25 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ddc0ecc-4882-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 16:16:23 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2050.outbound.protection.outlook.com [104.47.9.50]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-22-Qav3UCqtM_2qEZLChcRh1Q-1; Thu, 18 Nov 2021 16:16:22 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4382.eurprd04.prod.outlook.com (2603:10a6:803:73::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 15:16:20 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 15:16:20 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0053.eurprd06.prod.outlook.com (2603:10a6:206::18) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 15:16:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ddc0ecc-4882-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637248583;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ahoCHD+ZJkECgVIZzHmKlPxcMDr3MzNmPwtkYuf12Dc=;
	b=koaUeweyVdIvAlrjQLicbhXYbPkgS/nBRnCLGIj+dGFqE/Brzha6Nq60OeO0CXz0ojIDic
	1B4c4uPfg0GlOgqsxqFf0yXq66d/VqohYvOMG5CWWdo/EPC11Gul/SgzIIRW0XifCsgSCL
	nKJ0PNM2jIY8/ImJtxOVe/eGOf8D3fg=
X-MC-Unique: Qav3UCqtM_2qEZLChcRh1Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UTc5XDsE340I6S0x1xv6sDAmfgPm7L6utAuA9DLkFdFcm0fQ4Vdu2NSfxVokHoAnC1Ro+2jzODq2ShMuweCDjvzFmAA3JRvAXrwD1OJiSfDqlvM99S8oZYeY9WJnl2xHf9hMbRWB6eFK8GyP2peXEUc5xLiWHZ/VYBt+rsa3WgDa7wrA6OX9Lwo1C1zuKlBBIUK76VnR7EXOGO+g0BetPnCzUygo0gVzJ8Dey+NmwEkuR1qtJ6W2uMqDyWjVvQ/2rRoR9W1pMVAJ4LNTkKbdsm8c8x2xtaNiOGwus4ObHTKRiPEFFn4ft42Yeopvz+k8p3I4Wy1c4g8WjrMuaEQmeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=C9GMCsnhAbzXX2yJdr2wcRfw1H/QqImUom0VTKn33kA=;
 b=ZG+2E4N8KkXLsPp7sKH3y5OQ2McWNBxwbF9fQg5lGiBZvFp6B+lPb6wXzHMq6AmVOtBr6AaEdO2rrDyENBx+whJKewE2oxEweviCeRA8G4pSS2zxp98QvAnqtKBsXr11StNz5NIedVTwJ+26aeqJfeiMhRhxR0H21x6ARd5E9alJZTj1UWzglpeMPxlReeUqhcu1MU7XAbhCJuCw4OXIYzA9bQWSJq6JHTBZX6IKibBUZ6qsj/XtRKms1u+RfhyBC0XturWNFcipPMnzOvV+lvwkgjngEBsYHiRNXlh4nEdLbxwBWDCB0DzyhKLT3JPghpylFLo95p8ye4fw8U1ZhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
Date: Thu, 18 Nov 2021 16:16:18 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0601CA0053.eurprd06.prod.outlook.com
 (2603:10a6:206::18) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 117a24a5-3cfe-43c9-5c94-08d9aaa65ff8
X-MS-TrafficTypeDiagnostic: VI1PR04MB4382:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43829A09E761E7D80373B8A7B39B9@VI1PR04MB4382.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	L/XtfaBUjkK2EHDqTNzpRKaWAUmTWBW1kp5EsY71/Gc21+EZYmJnm6uCerbNDEZcCGKL4wQFTcJ610Jm/rpcBc/C2TFoIlilVEK+zrhwrCuDk1/tDGeO8tF6vBTmDGHqUEF6lj9mvxbHxoO1ANzlpRc5U9sYUR5dk92DJEWlvPPgwIWpLMlfGtZZ1drhmWSKVhY4Eyci1xiUgCiP9E7qObn+VQwAilJ5kATMgfuW8RUB1cYJ0T8S8dd+eDTTGqtArth+xcJpQbX7WPRo9l0wk/V1SMZ/XGLfna1MdCsJoITqmil3TXvREXlm6ebopvc5M2Ei00M1ned3qRQLRZAyJOLhcqMMXtLKxNN/BUJDujitD72DQcKfBVAv68Aypgx+BZSh28FvBlo/eXftJokMlQ6EOPrgqB0ykdOx4T33C1M/yTEIYg/Cuq0JyVbYjTe46WFDDT5cp+amBwXq2v3jlsdt367+lTqfn/VGO9B2J1ZwC+8aBxCp5Az/LLU9QG/eVrXBGbHlt9GAaDxgxvaZ04hKunrS7HgdZcpaKBB8U/162jeZGjfbZUr/MoEbTot1wvdbdEDOXU+AcFJbHzT+XJOLdLCX6Due5rgkExxK1GlSmc0cSeXdhsV3kzEPO0J1x0qy4njftbnsI2LlFk0haSPuTfOJUIAu3X5z82L5+5+F6GegmPCiczR26UH5qt11nWw/yga703Q0iw7A79BwQqPvqmzBJCqLkGvzwxTfWKc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(31686004)(86362001)(2616005)(38100700002)(54906003)(316002)(508600001)(36756003)(186003)(8676002)(31696002)(2906002)(53546011)(5660300002)(4326008)(66476007)(6916009)(26005)(8936002)(7416002)(6486002)(83380400001)(66556008)(66946007)(16576012)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?pT+IS846h9LCaw31BEsz3+Oaq0MpIocrKjlUD8mce+p3x/7hGLLYN+PrJEJW?=
 =?us-ascii?Q?WRgAZjVCTb5TXVLvDQVDr4EtcKHXf62OLTVSff/Vbrm7G6roB4EQ7IQd7oTf?=
 =?us-ascii?Q?R/YDDq8K1pPVnQizySy+cxM82S5fLVSuHaqg+mACIjZCTHtXjfD+6SmOT3cP?=
 =?us-ascii?Q?4Ohw/+bSnL7bvduYw46tMdQe+3I5HtBek8ASx0hd6StSdjfUYU0Q30cI800O?=
 =?us-ascii?Q?dJ10iLXUvrIAsEP2npbNDwlUzMEYXc05hINfFezJMYHE+c0uSTDFshedZ8w/?=
 =?us-ascii?Q?4u4tzJhLf5uPmFbihLgFOKtBEWtmVP1feoJJ6fBYp0TH6ntfXbBb+uEE/lXO?=
 =?us-ascii?Q?vVlu5mD84jF0ULpF0veXMWgJby9rDUcGx6g+fk5cX5NO1rsSeVUjyLIAcq2c?=
 =?us-ascii?Q?mAfVcK+83pCiEaHZgYbOFmiuS8XSGzlSFxxrNLVdTdx0ls0fe/aQw5wPb7Dx?=
 =?us-ascii?Q?dO+L30FEzpFGPisC6ccVAGC3fjH0cqlIlFAcMubtexGPgkAdcHLGGUicn61/?=
 =?us-ascii?Q?n9+U2aj4UzdPet9HPlqdweBjVOx+9x54HpI3NdujEFZ0pBoEhGQSnS6X3tVf?=
 =?us-ascii?Q?5k82EbkgP/0PDXoDLdwu2YSMoTwfKDg/D6NzQdq5IRnvEH11aUEuxcVahL8A?=
 =?us-ascii?Q?oJp1MJBaHrFbsnMMkzmYC8/u/rFn4fDJBBwYcXNsoknEkBpAUnfZVTl5CtP+?=
 =?us-ascii?Q?xO/UIjkYzjzuJM8vwuuSEUr1CNMpIEoXOulafO+q9ELHf2V1mCV8QLl9cF1r?=
 =?us-ascii?Q?G4KFmvbx/A14gCZMCLjS0LA1xCDYdtTGtXVdwnM4ZL0dgIkGjaHybyx70XLg?=
 =?us-ascii?Q?N3mOb48vX5BZ+WfqPjjiJJQ0okzEDWRLp16RnIOXZPNG+8/j0CcLMmcMh9dy?=
 =?us-ascii?Q?vI63QQ0JmdI8vMIrij2RHps10QWXM8W8VqEP+loymi87Tz0o4DFXwgSErWNm?=
 =?us-ascii?Q?e0f8ByMJg7hB1+BMVIVApIJh0QfZdwraGInmlPLWqANfz0J9VuefWJctN4Vx?=
 =?us-ascii?Q?PvdJr/orW8asiNbRboIT1bZlntShe7pjUYEkMHTYHgcbcdNo67FRNcSPBnl6?=
 =?us-ascii?Q?X9k3/k0Ux70W0i8/GuZ6qaDhvQvguC81cnf1qPC9BJXkQCI2jirzf6VTu/ZH?=
 =?us-ascii?Q?oG++7IwPfZ1vivKQ6G4ChHO65CrVtf9Y6LgyBxqBhQagsXpMOUqcJx3FERDp?=
 =?us-ascii?Q?5NgvNAetQG5jtiPg0VbJ5nIo9tvoOiwptsxprzr6UkwuYvR+0rwzkc2GNh0/?=
 =?us-ascii?Q?yTS4wsd2upHwGSW/vDwdlxHeF81zJeELriP+X3Q//+j8tPImYDT8aNCmC8Js?=
 =?us-ascii?Q?DwcZI7yl+PlVVcDRmkgZF52KG4jkH4xIVjfjlnPWOSr4lVnLYK/L+PSRoO5c?=
 =?us-ascii?Q?aV4KDcwYBQfJIFT03QAKd2ylg6SM7k5ZvvAQqAgfhHzL/885kKKiEsKTrmph?=
 =?us-ascii?Q?4Lby3Vb4BD8NQWuzb3uG8BYqudisTMzikaAtMoN6Va7riIcpz2np+pAq2/bo?=
 =?us-ascii?Q?Pyd9R1HYYXPjuQaXIVRPgZiUy3Z4lHyRoQe8aZ+yuj9wQkVfbEM8/y0Wi+SR?=
 =?us-ascii?Q?CAkCqTHxc8fBANodBLyyLmWnwdCVkBp2ZDQrYU1ZBSLHXsJCpo7DP6R+JZGz?=
 =?us-ascii?Q?DkFXjCH0ehct1rraSvyzJxU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 117a24a5-3cfe-43c9-5c94-08d9aaa65ff8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 15:16:20.1990
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: U3xvkhBN7pA22RgL+2CschXbI21K9SOCYCXFcqmEDvIWNKxw7t2h8mxTMuM7YFs7Du+RmFWas6895Nqr6tvDEg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4382

On 18.11.2021 16:11, Oleksandr Andrushchenko wrote:
>=20
>=20
> On 18.11.21 16:35, Jan Beulich wrote:
>> On 18.11.2021 15:14, Oleksandr Andrushchenko wrote:
>>> On 18.11.21 16:04, Roger Pau Monn=C3=A9 wrote:
>>>> Indeed. In the physdevop failure case this comes from an hypercall
>>>> context, so maybe you could do the mapping in place using hypercall
>>>> continuations if required. Not sure how complex that would be,
>>>> compared to just deferring to guest entry point and then dealing with
>>>> the possible cleanup on failure.
>>> This will solve one part of the equation:
>>>
>>> pci_physdev_op
>>>          pci_add_device
>>>              init_bars -> modify_bars -> defer_map -> raise_softirq(SCH=
EDULE_SOFTIRQ)
>>>          iommu_add_device <- FAILS
>>>          vpci_remove_device -> xfree(pdev->vpci)
>>>
>>> But what about the other one, e.g. vpci_process_pending is triggered in
>>> parallel with PCI device de-assign for example?
>> Well, that's again in hypercall context, so using hypercall continuation=
s
>> may again be an option. Of course at the point a de-assign is initiated,
>> you "only" need to drain requests (for that device, but that's unlikely
>> to be worthwhile optimizing for), while ensuring no new requests can be
>> issued. Again, for the device in question, but here this is relevant -
>> a flag may want setting to refuse all further requests. Or maybe the
>> register handling hooks may want tearing down before draining pending
>> BAR mapping requests; without the hooks in place no new such requests
>> can possibly appear.
> This can be probably even easier to solve as we were talking about
> pausing all vCPUs:

I have to admit I'm not sure. It might be easier, but it may also be
less desirable.

> void vpci_cancel_pending(const struct pci_dev *pdev)
> {
>  =C2=A0=C2=A0=C2=A0 struct domain *d =3D pdev->domain;
>  =C2=A0=C2=A0=C2=A0 struct vcpu *v;
>  =C2=A0=C2=A0=C2=A0 int rc;
>=20
>  =C2=A0=C2=A0=C2=A0 while ( (rc =3D domain_pause_except_self(d)) =3D=3D -=
ERESTART )
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_relax();
>=20
>  =C2=A0=C2=A0=C2=A0 if ( rc )
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 printk(XENLOG_G_ERR
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 "Failed to pause vCPUs while canceling vPCI map/unmap for %pp =
%pd: %d\n",
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 &pdev->sbdf, pdev->domain, rc);
>=20
>  =C2=A0=C2=A0=C2=A0 for_each_vcpu ( d, v )
>  =C2=A0=C2=A0=C2=A0 {
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( v->vpci.map_pending && (=
v->vpci.pdev =3D=3D pdev) )
>=20
> This will prevent all vCPUs to run, but current, thus making it impossibl=
e
> to run vpci_process_pending in parallel with any hypercall.
> So, even without locking in vpci_process_pending the above should
> be enough.
> The only concern here is that domain_pause_except_self may return
> the error code we somehow need to handle...

Not just this. The -ERESTART handling isn't appropriate this way
either. For the moment I can't help thinking that draining would
be preferable over canceling.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 15:22:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 15:22:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227476.393428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjEV-0002J8-Pu; Thu, 18 Nov 2021 15:21:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227476.393428; Thu, 18 Nov 2021 15:21:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjEV-0002J1-M2; Thu, 18 Nov 2021 15:21:51 +0000
Received: by outflank-mailman (input) for mailman id 227476;
 Thu, 18 Nov 2021 15:21:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnjET-0002Ip-SW
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 15:21:50 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ee8c088-4883-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 16:21:48 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AIETkwv015902;
 Thu, 18 Nov 2021 15:21:45 GMT
Received: from eur03-am5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2050.outbound.protection.outlook.com [104.47.8.50])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cdrn5r706-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 15:21:44 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6066.eurprd03.prod.outlook.com (2603:10a6:208:165::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 15:21:42 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 15:21:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ee8c088-4883-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SiN+r28+EllmMop/LzwlD9srtF6NYvGNwgXSrden6Z9XwmH6jMMxr2tZyqYClybpdUoEovZ8LNFpkBIrd/nFgLpShPFqzpNQ9P5NFO78fHwpcV5nRqIlxIB8wlO0zzTIwx7Iz0ErkJXNOr0uTVqOaPe8tFyg+ZXsrGJl4LKjEIVkG46Y0T7tZiOFCVOi+XycrTdqp87tNX4fJYea8nygUDBlQoxhTtpJUS9NP+Sum0CYXl8qRqKjBbxGZt3TC7OOgcNdu3SiUn+tIIcHBv1LFd7yjDeJBZSeNx6vcG1opVSQlYP5FtuumJufV6lM9nOwYyZc4t/QTVdvP6TM9Le4Mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/MwVL3sl2M5CNWWB2Vn2eU1bZ/T930eX33fqbGsYutI=;
 b=bz+8hpA6Ty5ZO+TLRCz7bPebIZ9WdoGsGxTvbYbPiMrix+cXx6zsgjjcv8GYqXmlfE8ZQubQAZKhbJ8UpCVa0tiy59XvOO8GE+wqAYkKgm6MgyImtfUku28nTmWmRKLqWIdBBS8YzjOq72SZBhKIF5HUG/4lUzKxIYcHfDLEKt8NeTQZejnfdbjg/HGz6yoxIeOd9gDgYDfmlP9etClHZEoVa3Y6zR0qU2QwE2MxRvI6RaaBF2YcAYq6qPM9d5CtUuwEOy89KK3osZTRfcBgyoontkznk+hKSg4qmow8p9aL6W7eFya/x7bWqCrtky6kTq9atj9JBB82wUR9GZwRuw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/MwVL3sl2M5CNWWB2Vn2eU1bZ/T930eX33fqbGsYutI=;
 b=BAoAGx5+fWCAjTA31wN0ZsnXl9Szs8wfeZVBIoO3YNL01iMCBCsDtUgZ721q3FZ39nYTCa5HwiLHZDDhGTDUeDw9Ym9B7/pvr4BlU70f9H+yy8sBowzqfZR54Z6AoIhbHvkIM/+IplBXfq8371lJhKxVqnoC2Y3a5QTUGnT2dKB3rIl+wM3Gukbd/MNnUWWgQUE+9Atq9PdO0UM6yYnQlaUzQNi1o+qRRDt6ezB11I2AIi7FlBuyH8AWoSA+OT1AWyQSi1txxJSzXiiFTGof4cC1KRVAqyT8AXkbK1lkF2sKDG71TXksQV2XPoOuBEyCHgar0ALwJgRrc78vWX54BQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIAgAAFxACAAAoGAIAAAXMAgAABgYA=
Date: Thu, 18 Nov 2021 15:21:42 +0000
Message-ID: <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
In-Reply-To: <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 4b5b221a-43ff-4ce3-98e8-08d9aaa71feb
x-ms-traffictypediagnostic: AM0PR03MB6066:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB6066488BAD97EE1E5AE2E398E79B9@AM0PR03MB6066.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 t5w2xcyT4e9/ikdpYWJBHX/WPLkYNAvIaZ6NRZPUQ4p0bjCKPW3PBTcrxFxMJAKpsrxp5UvTMU14E56USWYINAfgNsJr4RcjIt88/XoI/FUoFbzZ5t5GV5FZH+J8Ys2xMIGRpS8/Ox59iwn1jE1dnTvMbkvCifvekFy3tjgOELvCguM5RzvsuVY//oACpAhqVxs93haj0qbRu/tW3EW9FMJPyp/07vEUuQY7nHVivKuX+X4vTrBpQ1gxoIa6PdVYTylkRm/WsQKnTkG7a1l2/Muc1cQwIT0tiNQ1IsPIboKhguQLthVlbB7ZB4jFw70t6X9oRYmkry7i3XEi0eijaBzhvmefKAGp42Fsy2vyEJU8nKXQ2Yt5SQC6r8JdBBy9E8SWJoktIBquRsL1LQM6nHPuUqQ8PkD3Vlj7G6FYbdx/tBR0dIcNSr8NGhnfdnwpxHtWGugoPMxZaYZ8M9zTiTT4yPt8GqVcXOe8g40QdSImoPX+Em4l+Ag4+cPIR5Uus4tmvhXt0mCJOa6F+jQDmJhjwrgiz2WoZPgefWrqFGTyoIuKvmScV9w0c1Hbv0xAELeSTlKxl50BmxdOrqdknzo0BbCc7dCi5a4pNpSMCnPqoQt/DzN32A9vCiId0uPlRSQPskiR2aA/JMrdHNcWNqXFbsdW1/FbYs7AVeGMedoEU+gQQFI6jOa6RfWdPjnZN1bN17xxtaTAI4vJWVIu3TtjXAxHv1SAIUTNlgXrFAWpYA1Odq+JxlDCYA6BwVq9
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(7416002)(508600001)(6506007)(76116006)(53546011)(31696002)(31686004)(36756003)(38070700005)(54906003)(6916009)(122000001)(8936002)(6486002)(316002)(26005)(4326008)(2906002)(6512007)(5660300002)(83380400001)(86362001)(38100700002)(71200400001)(186003)(107886003)(66476007)(66946007)(8676002)(66556008)(66446008)(91956017)(64756008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?cUJOb2lsS2NNcytneWdsL2JxUnhJL0ROWnZoQ0s3bm0xNHgra0xuTE5nS3k2?=
 =?utf-8?B?bWhyMDB6WjhQOWtGRkdzUWxZdmxhUU1MdVZQU2RQeDlHMkVmbmgzWTR6ZlFD?=
 =?utf-8?B?L2lvc1hmSVMyekY5OGoxRi9US0xQTVhxSDN1UFJTTGNUZW5OSythcUdPeGpV?=
 =?utf-8?B?SW5vV1k4SFJtOFpFbE5yTVczNnlvbGQ0WkJrOHFKNDdwbWpqaXluWFRCOG14?=
 =?utf-8?B?Slc5clRpU0l2R1lFMCtpMXBxZnlJWlJuNXowSFF6UWF1UUI1VmxlcXBuWWtx?=
 =?utf-8?B?RWhaWU1qcWpqcXZBUlZpWU50UVprYnM5N1NRc0szdDdXbmRmTmdxVGFYNWF0?=
 =?utf-8?B?OStDOGFZUktQdFVhRWhRSDh0TWhESzNHczFoMUNRWDRZYjZJMm5IM3drM1Fn?=
 =?utf-8?B?Sk90T0JqYytuWVF0UlFtOWdnRmVEaDdoOWJRSmpmRmdGbmxhNmFlSE5PZFNu?=
 =?utf-8?B?bFU0SE5aSHh2UGNnS1BESnVLZHY1U1dkSVJ3V3pNNmhwV291M2NZR0FTSkd4?=
 =?utf-8?B?czNLZWRvWU1oOURUQzhSZDljZG83SE53dVZLVDN6QStFeG1WdmoxNHVjSy92?=
 =?utf-8?B?NTZxcHJKWTJRcjk4eTd1ell5MFhMT3RkK0MweEFrSEh0bE5KR0JiQnNmZnpD?=
 =?utf-8?B?Sldrc2JKY2FqdE5qRXhHblBxbWhyTkc5djhRUE9FY0RoNjE5cUs0R0VDMTNz?=
 =?utf-8?B?eVJkOXBiTTJ0bG1XRlNtYUd1L01jVGQ5RWJ5TWxZWnd3ZGlhN1pCOVdOWEhl?=
 =?utf-8?B?QVltSVpDRTdLdkk0NjNOK3VWbjRPVnQxK1l3N1BDT2pEcHMzempIdnpIbXVr?=
 =?utf-8?B?TDhaQmVTQjhsZW9KSVRjLzJINEkyaGVUNWgyYkQ1NVZ2dGppL2FRZGhscjhx?=
 =?utf-8?B?RXVCdFFwZnRvMmJKZllJakNmMi80VDgxZWQwRVhWMnFSdWUvNUhsbFVnZHRz?=
 =?utf-8?B?WlJQV2dqQSs3WXRmUE9KNHNTK2tsNFUxZGlEMXY5SnNEOFV3bzBvODZFdWF4?=
 =?utf-8?B?SVRhci9BSW9ObHcyMTJIUXZBS0NSOUxEcHdrWXpVOHo0TUZsem5xU0MvR25J?=
 =?utf-8?B?VDlPTXdGaEhDdVp5UDFkVUFYcmYrNzhrblpsaWpSZzRRZXI4RFZBNVJIbkJx?=
 =?utf-8?B?NitRNUFJSkdpZHBoTkFKY1BDZ1plbFNBeFJNOWdvNnF6OVU4d1JmR1BzZUNG?=
 =?utf-8?B?RXFlOGM0OUJRdnNhU2puTWtxRndxMW5RWHJSYTlnMlh0ZGFEcDlBNzJjdHZV?=
 =?utf-8?B?cnNYeE5Zb3BPdTFZK1FNTlVhUEpxNVRWQWhPQ1dhdnpJeGFTS21UVWkrQlUv?=
 =?utf-8?B?S0o3Q2x0eFhZVE9UNVlaL05BcHh6RlVSWnFvclpmUkloeFowdFFYV05nRyth?=
 =?utf-8?B?SjZOb3gxT3ZlaXB1UUFIOVhpN3I3SmpwQUVPUTcyTE5yRVFtWlFFWFpzVmJW?=
 =?utf-8?B?Y04zZjJvRFBBQmI4a2V5Nm1FV3BzTU5kVVhzNkZGRnRhLzFhRkd2SGxtMmFy?=
 =?utf-8?B?NWVUbWVIWHN4aTFKVVNVZFltNkZQTGtyU0JaNFhBM3cra1N0c0J2ZEVhck5n?=
 =?utf-8?B?bE16ZUhDNGF1M0VISmtwRVNxZEFSd1ZOWkVJU2pUTzhSUjg4bzIvU1dDSzdY?=
 =?utf-8?B?Q3J3Ylo5KzNTdlc0NGlGUHhGRnNYTFhtaTJhL1gvelRhWXBuVitocDBVK1pG?=
 =?utf-8?B?dkxYSzRoejNhQ1FLT0xFeXV5QkJpeHpGUzFMaC81VnNZenM5MU4vVEVhRE56?=
 =?utf-8?B?U2NXeFJRV0d2dWdaTUpObk5GNkl1L25BVDUrZjdlVVRFdVNLVWY4ZXY0Nytn?=
 =?utf-8?B?VlVrSnUvbEFtbTNwUDhXQVVGb1Fzd2JjWm5seUp3WmhUWC9waU5qa3MwWm5I?=
 =?utf-8?B?cHR1REZJTXU4bFpKaFc5Wi9jYzcxaUxoT2RtYUNnblBOTHo1SkJ6ZkpveVZB?=
 =?utf-8?B?cFkrK2dGNnRZU1ZtL0RyYWxuakpaOXM3OUloQWdpdm9FeXJFYTNBTitqMEdk?=
 =?utf-8?B?QktUSXBsbHdjcysxZ0VKL2hCd0h0bmx6Y1pnQnpEZTRHL2h2WWxtbkVlNmY0?=
 =?utf-8?B?aUJ0eDQ4bTNtWEFPS3Ftdi85QXUzNlVKT3RKeXdpS2FFcnBicTdJK0o5TjVJ?=
 =?utf-8?B?T2hCYTdhSTlJVVhob1pseFJvcVc2V29BTmVLbkUzK0dzN3ZlZXp1cHZ5OWl3?=
 =?utf-8?B?MFJjQ2Q5ajcvN0VEKzdxNFFWNjNWVE9ZQWtIbUh6TnZJT244Nm03OURHVUZl?=
 =?utf-8?B?a2krZGFrMHBwczEvY3JPeEFXYmtzUmd5MGhBSzBzNHNNNjZnVWpPOWhLdEtn?=
 =?utf-8?B?dTdoSHNuQWNIY1oxeGtrWDVxeEtCSGhYZHM0eUt1V2d2VGkrOUNudz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B86488ECD8DE384B82BB3155E0AC8D70@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b5b221a-43ff-4ce3-98e8-08d9aaa71feb
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 15:21:42.0235
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 95kfBj5+YtlxhNFPMh1RXzV+GVd57Zlu+ox/J6jyTy/4TiJaBL2a8YEpD96NW2lDA1W0Qc/eTViRPM+qxFQsjPqCsmEtSvigCwbCz/ItEb4Tz+we4F+VVQNbc9AL7/u9
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6066
X-Proofpoint-GUID: gjtHd5xjnqekUNy2vZtDipF90IwqdfIx
X-Proofpoint-ORIG-GUID: gjtHd5xjnqekUNy2vZtDipF90IwqdfIx
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_12,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0
 clxscore=1015 bulkscore=0 lowpriorityscore=0 priorityscore=1501
 mlxlogscore=999 adultscore=0 mlxscore=0 phishscore=0 suspectscore=0
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180085

DQoNCk9uIDE4LjExLjIxIDE3OjE2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTguMTEuMjAy
MSAxNjoxMSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMTguMTEu
MjEgMTY6MzUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDE4LjExLjIwMjEgMTU6MTQsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAxOC4xMS4yMSAxNjowNCwgUm9n
ZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+IEluZGVlZC4gSW4gdGhlIHBoeXNkZXZvcCBmYWls
dXJlIGNhc2UgdGhpcyBjb21lcyBmcm9tIGFuIGh5cGVyY2FsbA0KPj4+Pj4gY29udGV4dCwgc28g
bWF5YmUgeW91IGNvdWxkIGRvIHRoZSBtYXBwaW5nIGluIHBsYWNlIHVzaW5nIGh5cGVyY2FsbA0K
Pj4+Pj4gY29udGludWF0aW9ucyBpZiByZXF1aXJlZC4gTm90IHN1cmUgaG93IGNvbXBsZXggdGhh
dCB3b3VsZCBiZSwNCj4+Pj4+IGNvbXBhcmVkIHRvIGp1c3QgZGVmZXJyaW5nIHRvIGd1ZXN0IGVu
dHJ5IHBvaW50IGFuZCB0aGVuIGRlYWxpbmcgd2l0aA0KPj4+Pj4gdGhlIHBvc3NpYmxlIGNsZWFu
dXAgb24gZmFpbHVyZS4NCj4+Pj4gVGhpcyB3aWxsIHNvbHZlIG9uZSBwYXJ0IG9mIHRoZSBlcXVh
dGlvbjoNCj4+Pj4NCj4+Pj4gcGNpX3BoeXNkZXZfb3ANCj4+Pj4gICAgICAgICAgIHBjaV9hZGRf
ZGV2aWNlDQo+Pj4+ICAgICAgICAgICAgICAgaW5pdF9iYXJzIC0+IG1vZGlmeV9iYXJzIC0+IGRl
ZmVyX21hcCAtPiByYWlzZV9zb2Z0aXJxKFNDSEVEVUxFX1NPRlRJUlEpDQo+Pj4+ICAgICAgICAg
ICBpb21tdV9hZGRfZGV2aWNlIDwtIEZBSUxTDQo+Pj4+ICAgICAgICAgICB2cGNpX3JlbW92ZV9k
ZXZpY2UgLT4geGZyZWUocGRldi0+dnBjaSkNCj4+Pj4NCj4+Pj4gQnV0IHdoYXQgYWJvdXQgdGhl
IG90aGVyIG9uZSwgZS5nLiB2cGNpX3Byb2Nlc3NfcGVuZGluZyBpcyB0cmlnZ2VyZWQgaW4NCj4+
Pj4gcGFyYWxsZWwgd2l0aCBQQ0kgZGV2aWNlIGRlLWFzc2lnbiBmb3IgZXhhbXBsZT8NCj4+PiBX
ZWxsLCB0aGF0J3MgYWdhaW4gaW4gaHlwZXJjYWxsIGNvbnRleHQsIHNvIHVzaW5nIGh5cGVyY2Fs
bCBjb250aW51YXRpb25zDQo+Pj4gbWF5IGFnYWluIGJlIGFuIG9wdGlvbi4gT2YgY291cnNlIGF0
IHRoZSBwb2ludCBhIGRlLWFzc2lnbiBpcyBpbml0aWF0ZWQsDQo+Pj4geW91ICJvbmx5IiBuZWVk
IHRvIGRyYWluIHJlcXVlc3RzIChmb3IgdGhhdCBkZXZpY2UsIGJ1dCB0aGF0J3MgdW5saWtlbHkN
Cj4+PiB0byBiZSB3b3J0aHdoaWxlIG9wdGltaXppbmcgZm9yKSwgd2hpbGUgZW5zdXJpbmcgbm8g
bmV3IHJlcXVlc3RzIGNhbiBiZQ0KPj4+IGlzc3VlZC4gQWdhaW4sIGZvciB0aGUgZGV2aWNlIGlu
IHF1ZXN0aW9uLCBidXQgaGVyZSB0aGlzIGlzIHJlbGV2YW50IC0NCj4+PiBhIGZsYWcgbWF5IHdh
bnQgc2V0dGluZyB0byByZWZ1c2UgYWxsIGZ1cnRoZXIgcmVxdWVzdHMuIE9yIG1heWJlIHRoZQ0K
Pj4+IHJlZ2lzdGVyIGhhbmRsaW5nIGhvb2tzIG1heSB3YW50IHRlYXJpbmcgZG93biBiZWZvcmUg
ZHJhaW5pbmcgcGVuZGluZw0KPj4+IEJBUiBtYXBwaW5nIHJlcXVlc3RzOyB3aXRob3V0IHRoZSBo
b29rcyBpbiBwbGFjZSBubyBuZXcgc3VjaCByZXF1ZXN0cw0KPj4+IGNhbiBwb3NzaWJseSBhcHBl
YXIuDQo+PiBUaGlzIGNhbiBiZSBwcm9iYWJseSBldmVuIGVhc2llciB0byBzb2x2ZSBhcyB3ZSB3
ZXJlIHRhbGtpbmcgYWJvdXQNCj4+IHBhdXNpbmcgYWxsIHZDUFVzOg0KPiBJIGhhdmUgdG8gYWRt
aXQgSSdtIG5vdCBzdXJlLiBJdCBtaWdodCBiZSBlYXNpZXIsIGJ1dCBpdCBtYXkgYWxzbyBiZQ0K
PiBsZXNzIGRlc2lyYWJsZS4NCj4NCj4+IHZvaWQgdnBjaV9jYW5jZWxfcGVuZGluZyhjb25zdCBz
dHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+IHsNCj4+ICAgwqDCoMKgIHN0cnVjdCBkb21haW4gKmQg
PSBwZGV2LT5kb21haW47DQo+PiAgIMKgwqDCoCBzdHJ1Y3QgdmNwdSAqdjsNCj4+ICAgwqDCoMKg
IGludCByYzsNCj4+DQo+PiAgIMKgwqDCoCB3aGlsZSAoIChyYyA9IGRvbWFpbl9wYXVzZV9leGNl
cHRfc2VsZihkKSkgPT0gLUVSRVNUQVJUICkNCj4+ICAgwqDCoMKgwqDCoMKgwqAgY3B1X3JlbGF4
KCk7DQo+Pg0KPj4gICDCoMKgwqAgaWYgKCByYyApDQo+PiAgIMKgwqDCoMKgwqDCoMKgIHByaW50
ayhYRU5MT0dfR19FUlINCj4+ICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiRmFpbGVk
IHRvIHBhdXNlIHZDUFVzIHdoaWxlIGNhbmNlbGluZyB2UENJIG1hcC91bm1hcCBmb3IgJXBwICVw
ZDogJWRcbiIsDQo+PiAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJnBkZXYtPnNiZGYs
IHBkZXYtPmRvbWFpbiwgcmMpOw0KPj4NCj4+ICAgwqDCoMKgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2
ICkNCj4+ICAgwqDCoMKgIHsNCj4+ICAgwqDCoMKgwqDCoMKgwqAgaWYgKCB2LT52cGNpLm1hcF9w
ZW5kaW5nICYmICh2LT52cGNpLnBkZXYgPT0gcGRldikgKQ0KPj4NCj4+IFRoaXMgd2lsbCBwcmV2
ZW50IGFsbCB2Q1BVcyB0byBydW4sIGJ1dCBjdXJyZW50LCB0aHVzIG1ha2luZyBpdCBpbXBvc3Np
YmxlDQo+PiB0byBydW4gdnBjaV9wcm9jZXNzX3BlbmRpbmcgaW4gcGFyYWxsZWwgd2l0aCBhbnkg
aHlwZXJjYWxsLg0KPj4gU28sIGV2ZW4gd2l0aG91dCBsb2NraW5nIGluIHZwY2lfcHJvY2Vzc19w
ZW5kaW5nIHRoZSBhYm92ZSBzaG91bGQNCj4+IGJlIGVub3VnaC4NCj4+IFRoZSBvbmx5IGNvbmNl
cm4gaGVyZSBpcyB0aGF0IGRvbWFpbl9wYXVzZV9leGNlcHRfc2VsZiBtYXkgcmV0dXJuDQo+PiB0
aGUgZXJyb3IgY29kZSB3ZSBzb21laG93IG5lZWQgdG8gaGFuZGxlLi4uDQo+IE5vdCBqdXN0IHRo
aXMuIFRoZSAtRVJFU1RBUlQgaGFuZGxpbmcgaXNuJ3QgYXBwcm9wcmlhdGUgdGhpcyB3YXkNCj4g
ZWl0aGVyLg0KQXJlIHlvdSB0YWxraW5nIGFib3V0IGNwdV9yZWxheCgpPw0KPiAgIEZvciB0aGUg
bW9tZW50IEkgY2FuJ3QgaGVscCB0aGlua2luZyB0aGF0IGRyYWluaW5nIHdvdWxkDQo+IGJlIHBy
ZWZlcmFibGUgb3ZlciBjYW5jZWxpbmcuDQpHaXZlbiB0aGF0IGNhbmNlbGxhdGlvbiBpcyBnb2lu
ZyB0byBoYXBwZW4gb24gZXJyb3IgcGF0aCBvcg0Kb24gZGV2aWNlIGRlLWFzc2lnbi9yZW1vdmUg
SSB0aGluayB0aGlzIGNhbiBiZSBhY2NlcHRhYmxlLg0KQW55IHJlYXNvbiB3aHkgbm90Pw0KPg0K
PiBKYW4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 15:30:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 15:30:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227482.393440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjMI-00032i-Mr; Thu, 18 Nov 2021 15:29:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227482.393440; Thu, 18 Nov 2021 15:29:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjMI-00032b-Js; Thu, 18 Nov 2021 15:29:54 +0000
Received: by outflank-mailman (input) for mailman id 227482;
 Thu, 18 Nov 2021 15:29:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/tNz=QF=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mnjMH-00032V-5O
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 15:29:53 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f5dd617-4884-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 16:29:51 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id w29so12281026wra.12
 for <xen-devel@lists.xenproject.org>; Thu, 18 Nov 2021 07:29:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f5dd617-4884-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=MULBlUikP8t2N97P55ABinZBZ4Z0bSQzPnY23TlGio4=;
        b=HLvLq4oiireOxg7eiCA0AdIavoFH4fYMJBa+Mjn8lWZUQTghSoufoiSEuhuT52bL+O
         WMTlj9Y7GE9KOBlJERJklBB6GSagaJHhPRUILyluVUDMmnq5NzrTYZl75kpgOdCAf07H
         lvVCy4BqKpRiAX+nyKoWFvKT4qpe4IOOC6L1QnYPTd1uVOtf70CXhtwp5HrGVkEi8BT4
         O2IMe6+hVqthSflkQmNpSLxHJnFiHi7zDYbdGBOK5ivLC5Vp1j6LBlA4ugJumnpm+C7l
         0pCpJXb8dkt0f010QYouqnCi5dW4zfcRwQ/8yS7+xq3GWbse9PF5q6saujvOB4Nr3bKA
         VdAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=MULBlUikP8t2N97P55ABinZBZ4Z0bSQzPnY23TlGio4=;
        b=p3Hriz8r59vSElkTfkOVHbAeWPCwgpSWuXm/velQ9zyiWq5+H8V7fG61nfWp8fkLSO
         v1L+UXDJbfUTdAGMeZTL0kYROty19+Zw1q23hCM8GofYySo7WDTL/OYOlwa0mG5C5RdN
         3hDUD+Lvqjm9ciZ2p6SHx8d9aYWW8P7OW3Ol1MbwbxECsG0R3aa91MejvY9rC74liyBT
         Q95LMOz7RnhpnxhC3E7kJjgP750PuAD6bGw3gP97DxFJK+81LKfSsnC6HHb8tNPxZbD6
         r79tg76VETAwxArav9I5gZA4lW77hRMy/zlvPQKg0hFAWTCEFrn+WUSQVNuM0REZkaZ8
         UItA==
X-Gm-Message-State: AOAM531bKI57hnLvCkqRUtpKU4ukzmn+tOnHvuUYqFSDM0Qj0j/f9iMx
	p7jArkhqQ9ichRIK846ENwhiFEks2mqKX0kedY8=
X-Google-Smtp-Source: ABdhPJyPMWa54AyjJ/KxZw/uAheOczDDirG9v6W3XHc4CMxEs6v3cXAJooV16il2MWDvJO8sY3T4GYVYdtmaEf5n5Tc=
X-Received: by 2002:adf:e842:: with SMTP id d2mr31005116wrn.399.1637249391093;
 Thu, 18 Nov 2021 07:29:51 -0800 (PST)
MIME-Version: 1.0
References: <20211117095711.26596-1-luca.fancellu@arm.com> <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com> <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
 <1941B2BF-6451-4665-8591-DB14739121A9@arm.com> <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
In-Reply-To: <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
Date: Thu, 18 Nov 2021 17:29:40 +0200
Message-ID: <CAPD2p-moDUReV0u98T0PFA+Buj+cCLk2P0TkqFu_e9M=bY5=4A@mail.gmail.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
To: Julien Grall <julien@xen.org>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Luca Fancellu <Luca.Fancellu@arm.com>, Xen-devel <xen-devel@lists.xenproject.org>, 
	Wei Chen <Wei.Chen@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	George Dunlap <george.dunlap@citrix.com>, Juergen Gross <jgross@suse.com>, 
	Dario Faggioli <dfaggioli@suse.com>
Content-Type: multipart/alternative; boundary="0000000000005d6cd405d111d44c"

--0000000000005d6cd405d111d44c
Content-Type: text/plain; charset="UTF-8"

On Wed, Nov 17, 2021 at 9:11 PM Julien Grall <julien@xen.org> wrote:

Hi Julien, all

[Sorry for the possible format issues]

(Prunning some CC to just leave Arm and sched folks)
>
> On 17/11/2021 12:07, Bertrand Marquis wrote:
> > Hi Julien,
>
> Hi Bertrand,
>
> >> On 17 Nov 2021, at 11:48, Julien Grall <julien@xen.org> wrote:
> >>
> >> On 17/11/2021 11:16, Bertrand Marquis wrote:
> >>> Hi Julien,
> >>
> >> Hi,
> >>
> >>>> On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
> >>>>
> >>>> Hi Luca,
> >>>>
> >>>> On 17/11/2021 09:57, Luca Fancellu wrote:
> >>>>> Currently Xen creates a default cpupool0 that contains all the cpu
> brought up
> >>>>> during boot and it assumes that the platform has only one kind of
> CPU.
> >>>>> This assumption does not hold on big.LITTLE platform, but putting
> different
> >>>>> type of CPU in the same cpupool can result in instability and
> security issues
> >>>>> for the domains running on the pool.
> >>>>
> >>>> I agree that you can't move a LITTLE vCPU to a big pCPU. However...
> >>>>
> >>>>> For this reason this serie introduces an architecture specific way
> to create
> >>>>> different cpupool at boot time, this is particularly useful on ARM
> big.LITTLE
> >>>>> platform where there might be the need to have different cpupools
> for each type
> >>>>> of core, but also systems using NUMA can have different cpu pool for
> each node.
> >>>>
> >>>> ... from my understanding, all the vCPUs of a domain have to be in
> the same cpupool. So with this approach it is not possible:
> >>>>    1) to have a mix of LITTLE and big vCPUs in the domain
> >>>>    2) to create a domain spanning across two NUMA nodes
> >>>>
> >>>> So I think we need to make sure that any solutions we go through will
> not prevent us to implement those setups.
> >>> The point of this patch is to make all cores available without
> breaking the current behaviour of existing system.
> >>
> >> I might be missing some context here. By breaking current behavior, do
> you mean user that may want to add "hmp-unsafe" on the command line?
> >
> > Right, with hmp-unsafe the behaviour is now the same as without, only
> extra cores are parked in other cpupools.
> >
> > So you have a point in fact that behaviour is changed for someone who
> was using hmp-unsafe before if this is activated.
> > The command line argument suggested by Jurgen definitely makes sense
> here.
> >
> > We could instead do the following:
> > - when this is activated in the configuration, boot all cores and park
> them in different pools (depending on command line argument). Current
> behaviour not change if other pools are not used (but more cores will be on
> in xen)
>
>  From my understanding, it is possible to move a pCPU in/out a pool
> afterwards. So the security concern with big.LITTLE is still present,
> even though it would be difficult to hit it.
>
> I am also concerned that it would be more difficult to detect any
> misconfiguration. So I think this option would still need to be turned
> on only if hmp-unsafe are the new command line one are both on.
>
> If we want to enable it without hmp-unsafe on, we would need to at least
> lock the pools.
>
> > - when hmp-unsafe is on, this feature will be turned of (if activated in
> configuration) and all cores would be added in the same pool.
> >
> > What do you think ?
>
> I am split. On one hand, this is making easier for someone to try
> big.LITTLE as you don't have manually pin vCPUs. On the other hand, this
> is handling a single use-case and you would need to use hmp-unsafe and
> pinning if you want to get more exotic setup (e.g. a domain with
> big.LITTLE).
>
> Another possible solution is to pin dom0 vCPUs (AFAIK they are just
> sticky by default) and then create the pools from dom0 userspace. My
> assumption is for dom0less we would want to use pinning instead.
>
> That said I would like to hear from Xilinx and EPAM as, IIRC, they are
> already using hmp-unsafe in production.
>


We have been using hmp-unsafe since it's introduction, yes we are aware of
possible consequences of enabling that option (as different CPU types might
have different errata, cache lines, PA bits (?), etc), so we are trying to
deal with it carefully.
In our target system we pin Dom0's vCPUs to the pCPUs of the same type from
userspace via "xl vcpu-pin" command, for other domains more exotic
configuration can be used.

I share Stefano's opinion not to tie new feature (boot time MIDR-based
cpupools) to existing hmp-unsafe option and create new command line option
to control new feature.

The proposed algorithm (copy it here for the convenience) looks fine to me.
"So in short I think it should be:
- midr-cpupools alone
cpupools created at boot, warning/errors on changing cpupools
- midr-cpupools + hmp-unsafe
cpupools created at boot, changing cpupools is allowed (we could still
warn but no errors)
- hmp-unsafe alone
same as today with hmp-unsafe"

For the default behaviour I also don't have a strong preference.  One thing
is clear: default behaviour should be safe. I think, the command line
option is preferred over the config option as new feature can be
enabled/disabled without a need to re-build Xen, moreover, if we follow the
proposed algorithm route, the behaviour of new feature at runtime (whether
the changing of cpupools is allowed or not) are going to be depended on the
hmp-unsafe state which is under command line control currently. But, there
is no strong preference here as well.



>
> Cheers,
>
> --
> Julien Grall
>
>

-- 
Regards,

Oleksandr Tyshchenko

--0000000000005d6cd405d111d44c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Wed, Nov 17, 2021 at 9:11 PM Julie=
n Grall &lt;<a href=3D"mailto:julien@xen.org">julien@xen.org</a>&gt; wrote:=
<br></div><div dir=3D"ltr" class=3D"gmail_attr"><br></div><div class=3D"gma=
il_attr">Hi Julien, all</div><div class=3D"gmail_attr"><br></div><div class=
=3D"gmail_attr">[Sorry for the possible format issues]</div><div dir=3D"ltr=
" class=3D"gmail_attr"><br></div><blockquote class=3D"gmail_quote" style=3D=
"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-le=
ft:1ex">(Prunning some CC to just leave Arm and sched folks)<br>
<br>
On 17/11/2021 12:07, Bertrand Marquis wrote:<br>
&gt; Hi Julien,<br>
<br>
Hi Bertrand,<br>
<br>
&gt;&gt; On 17 Nov 2021, at 11:48, Julien Grall &lt;<a href=3D"mailto:julie=
n@xen.org" target=3D"_blank">julien@xen.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On 17/11/2021 11:16, Bertrand Marquis wrote:<br>
&gt;&gt;&gt; Hi Julien,<br>
&gt;&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt;&gt;&gt; On 17 Nov 2021, at 10:26, Julien Grall &lt;<a href=3D"mail=
to:julien@xen.org" target=3D"_blank">julien@xen.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hi Luca,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On 17/11/2021 09:57, Luca Fancellu wrote:<br>
&gt;&gt;&gt;&gt;&gt; Currently Xen creates a default cpupool0 that contains=
 all the cpu brought up<br>
&gt;&gt;&gt;&gt;&gt; during boot and it assumes that the platform has only =
one kind of CPU.<br>
&gt;&gt;&gt;&gt;&gt; This assumption does not hold on big.LITTLE platform, =
but putting different<br>
&gt;&gt;&gt;&gt;&gt; type of CPU in the same cpupool can result in instabil=
ity and security issues<br>
&gt;&gt;&gt;&gt;&gt; for the domains running on the pool.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I agree that you can&#39;t move a LITTLE vCPU to a big pCP=
U. However...<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; For this reason this serie introduces an architecture =
specific way to create<br>
&gt;&gt;&gt;&gt;&gt; different cpupool at boot time, this is particularly u=
seful on ARM big.LITTLE<br>
&gt;&gt;&gt;&gt;&gt; platform where there might be the need to have differe=
nt cpupools for each type<br>
&gt;&gt;&gt;&gt;&gt; of core, but also systems using NUMA can have differen=
t cpu pool for each node.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; ... from my understanding, all the vCPUs of a domain have =
to be in the same cpupool. So with this approach it is not possible:<br>
&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 1) to have a mix of LITTLE and big vCPUs in t=
he domain<br>
&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 2) to create a domain spanning across two NUM=
A nodes<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; So I think we need to make sure that any solutions we go t=
hrough will not prevent us to implement those setups.<br>
&gt;&gt;&gt; The point of this patch is to make all cores available without=
 breaking the current behaviour of existing system.<br>
&gt;&gt;<br>
&gt;&gt; I might be missing some context here. By breaking current behavior=
, do you mean user that may want to add &quot;hmp-unsafe&quot; on the comma=
nd line?<br>
&gt; <br>
&gt; Right, with hmp-unsafe the behaviour is now the same as without, only =
extra cores are parked in other cpupools.<br>
&gt; <br>
&gt; So you have a point in fact that behaviour is changed for someone who =
was using hmp-unsafe before if this is activated.<br>
&gt; The command line argument suggested by Jurgen definitely makes sense h=
ere.<br>
&gt; <br>
&gt; We could instead do the following:<br>
&gt; - when this is activated in the configuration, boot all cores and park=
 them in different pools (depending on command line argument). Current beha=
viour not change if other pools are not used (but more cores will be on in =
xen)<br>
<br>
=C2=A0From my understanding, it is possible to move a pCPU in/out a pool <b=
r>
afterwards. So the security concern with big.LITTLE is still present, <br>
even though it would be difficult to hit it.<br>
<br>
I am also concerned that it would be more difficult to detect any <br>
misconfiguration. So I think this option would still need to be turned <br>
on only if hmp-unsafe are the new command line one are both on.<br>
<br>
If we want to enable it without hmp-unsafe on, we would need to at least <b=
r>
lock the pools.<br>
<br>
&gt; - when hmp-unsafe is on, this feature will be turned of (if activated =
in configuration) and all cores would be added in the same pool.<br>
&gt; <br>
&gt; What do you think ?<br>
<br>
I am split. On one hand, this is making easier for someone to try <br>
big.LITTLE as you don&#39;t have manually pin vCPUs. On the other hand, thi=
s <br>
is handling a single use-case and you would need to use hmp-unsafe and <br>
pinning if you want to get more exotic setup (e.g. a domain with <br>
big.LITTLE).<br>
<br>
Another possible solution is to pin dom0 vCPUs (AFAIK they are just <br>
sticky by default) and then create the pools from dom0 userspace. My <br>
assumption is for dom0less we would want to use pinning instead.<br>
<br>
That said I would like to hear from Xilinx and EPAM as, IIRC, they are <br>
already using hmp-unsafe in production.<br></blockquote><div><br></div><div=
><br></div><div>We have been using hmp-unsafe since it&#39;s introduction, =
yes we are aware of possible consequences of enabling that option (as diffe=
rent CPU types might have different errata, cache lines, PA bits (?), etc),=
 so we are trying to deal with it carefully.<br>In our target system we pin=
 Dom0&#39;s vCPUs to the pCPUs of the same type from userspace via &quot;xl=
 vcpu-pin&quot; command, for other domains more exotic configuration can be=
 used.<br><br>I share Stefano&#39;s opinion not to tie new feature (boot ti=
me MIDR-based cpupools) to existing hmp-unsafe option and create new comman=
d line option to control new feature.</div><div><br>The proposed algorithm =
(copy it here for the convenience) looks fine to me.<br>&quot;So in short I=
 think it should be:<br>- midr-cpupools alone<br>cpupools created at boot, =
warning/errors on changing cpupools<br>- midr-cpupools + hmp-unsafe<br>cpup=
ools created at boot, changing cpupools is allowed (we could still<br>warn =
but no errors)<br>- hmp-unsafe alone<br>same as today with hmp-unsafe&quot;=
<br><br></div><div>For the default behaviour I also don&#39;t have a strong=
 preference.=C2=A0 One thing is clear: default behaviour should be safe. I =
think, the command line option is preferred=C2=A0over the config option as =
new feature can be enabled/disabled without a need to re-build Xen, moreove=
r, if we follow the proposed algorithm route, the behaviour of new feature =
at runtime (whether the changing of=C2=A0cpupools=C2=A0is allowed or not) a=
re going to be depended on the hmp-unsafe state which is under command line=
 control currently. But, there is no strong preference here as well.<br></d=
iv><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">
<br>
Cheers,<br>
<br>
-- <br>
Julien Grall<br>
<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
 class=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div=
 dir=3D"ltr"><span style=3D"background-color:rgb(255,255,255)"><font size=
=3D"2"><span style=3D"color:rgb(51,51,51);font-family:Arial,sans-serif">Reg=
ards,</span></font></span></div><div dir=3D"ltr"><br></div><div dir=3D"ltr"=
><div><span style=3D"background-color:rgb(255,255,255)"><font size=3D"2">Ol=
eksandr Tyshchenko</font></span></div></div></div></div></div></div></div><=
/div>

--0000000000005d6cd405d111d44c--


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 15:41:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 15:41:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227488.393451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjXH-0005Lm-Q3; Thu, 18 Nov 2021 15:41:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227488.393451; Thu, 18 Nov 2021 15:41:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjXH-0005Lf-Lv; Thu, 18 Nov 2021 15:41:15 +0000
Received: by outflank-mailman (input) for mailman id 227488;
 Thu, 18 Nov 2021 15:41:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnjXG-0005LX-O4
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 15:41:14 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f598557f-4885-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 16:41:13 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2056.outbound.protection.outlook.com [104.47.2.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 de-mta-23-Od3eCBwhPTCsHWSen8OI0A-1; Thu, 18 Nov 2021 16:41:11 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3773.eurprd04.prod.outlook.com (2603:10a6:803:1c::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 15:41:09 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 15:41:09 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0701CA0022.eurprd07.prod.outlook.com (2603:10a6:203:51::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.10 via Frontend
 Transport; Thu, 18 Nov 2021 15:41:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f598557f-4885-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637250072;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5jExqXhxg2XpO1vBqByWYP9grueM1SmeTBm9TWPgMR4=;
	b=PXIIBMEApXOgoo0iMtHo6iyEkhHH5A0+bLAkjhGUFi/MNZlPsi78QkhCYmRsQ+qL3GOVnT
	cj/uEp+jmIhWqR5DLUW6KqqaqbT39Z7sW/JIVy7R5wyEr7GfPJor1Th/NmnpT5trTe8hjr
	uu7IMdehn7atUrUHX7Civ69QY2w/RdE=
X-MC-Unique: Od3eCBwhPTCsHWSen8OI0A-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kekVtLac1v4DSbqTw/evAKLCj6fzp9hZay1Kt8gj8Wfosj9ZmOBNNSO4wXJTLA0ijK3ABDk+BRUT703bOtFOEf+8ytDhmJ9VU/7OJxFFjNdtLOgAf4U7ANemZykQIis0O+bjSoHfy7bDrJI/OEoEWhzfjz0RmFm4AnzxhagYcc76f6Zcyd3r5OC2VGMGtNlZKayNSvFXtBUcW1kruWq/k99MEUAi165YpHJjb2RuaOJzaT/6AwCAv0iINJzhrmpVLCCv5bj478VYIFLPe7b51/KP+KIlKflYz1vF7Q1kHhP/2Ju6nAmUvSGotBm4ZKI+1EOx6VdJIRdsFAetmTmOsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vflEYNAaxUGaHkx6BA9lxKG3NWyibnUr4GFhwV81uuA=;
 b=go5HdboeHmwgVSkXLxkZMtvWwgmFBfj8Pa1HEdLNMyj23EFhXd1H3LnNLoRsWI8sePVJS17TiSVjsrd4gXDAkg3uOrDx3/NOx4Oqk/kUYWiy8gq4Q+kslHdv0Lku5hShvpdzmo5XCVM8iNCslIyx2G72HYvJTdZISiGSkfuvl/ts0sKyI5SCY4g+LwlTeDNWzVO8N3adtU7lDMlstKagzl255+myEsiQzEvkViz3xew+KuglZfcYUQ1XXbKCgRpf/NhO6bCb7bzhmJ50SWfr8vjtFynYGl4TBO14517UGRd12j+2e2qsWZF61KeS/MnjHjq787vojzW0TlIbFI7hLQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
Date: Thu, 18 Nov 2021 16:41:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0701CA0022.eurprd07.prod.outlook.com
 (2603:10a6:203:51::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8b05b49d-970b-4bd9-9785-08d9aaa9d747
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3773:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB377310DB91D2560B22D5A85CB39B9@VI1PR0402MB3773.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	mrJfw9EAHr8Xi9fyGqkueWB4iWedZeSz9POjYvBo6f3WAb5aCGdF4isslASC5OChssiVoDq6K5G2Wz2yqUt6evL9tmAhfFg/mT0Pn/b3jtC0IORcYt2BJzS5m/2Rz0FlsVeQAx4B8MERmgKuTB+yCubSlrmjvtm96WOUrbt2pZ/Hk2q17FuVrLA2zMtSNjzZpZxj+pjizkE2h+UTeO5rMEGmlmXtx3cGbZQraVzKmlP9CZ1EYAuWvXHaGcG1zgKjYt3c4H5n6QX/ipBrdVI/yxsDIH/Lwnh6VTE+CyIP47z02Uu/pBmjlEdxnRafnSeHGxH64o1F2zFGY0QgaGOWvjPQ+OBhb8Ns0GBIKjebqX/YsB0CbzH+Qot5uDvJ4Udx7Staiid871d6tE9gBAOhHQnX2Sx81rpCofFUSCuVfDqk060EN2RWxqR4PjuIZwRHVi7XvFm5zygbeYSjmy0T60U9IDZwTQoUkVtAqDlHMoLb6R46NhoAEmbNKoqKGdjr2PeArsa99zVgOsDOciEvDhtaFOaJP5x6IIn5y4nRhri+QK/ycvWfWK9Wl16Gop5IHlmuxqwIJKw/x4BEVkM25ZNBgtpQdXeNy0StSnbt89e6dedHzgISmdfmnBxPkCER14fqh6DZN7XLC8ttWCiNrDuNuuaWJ4OgH8cYVKY5p/p8q0KoIwla1MwQupYbAeLW1HcXU53SMICvnClcViUSmKvxN2zuGpXA5Ez9dELGhB4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(53546011)(31696002)(186003)(508600001)(66946007)(2906002)(5660300002)(4326008)(31686004)(6486002)(16576012)(6916009)(36756003)(66556008)(66476007)(54906003)(2616005)(316002)(956004)(86362001)(8676002)(7416002)(38100700002)(83380400001)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?WZQXAdjxqlejd2IqO4L5hdVAvQ2ma0gQQp6JPluBnmK9q4rTq3vwktf4d8N9?=
 =?us-ascii?Q?7TK1dI6VK0ZfXLnlTHgMbh2ZDoAnZuyHh4pRJ0DZTgIHWLYLvmetBU+GURhf?=
 =?us-ascii?Q?qmuS8iCKmM7Od61Pmlma/3gX+6PG4enyGEE77I4yResDN5Zzg6EBE1Ny2i1D?=
 =?us-ascii?Q?UXUkNn2/c++mKISJug2GgWB4TwAWwc6bu8U/Q8deipvQiH9A09ZeO0gxIZhW?=
 =?us-ascii?Q?YP1X/qokKHJygIGoOboFCOwRFDjyIw/MschJ+RokS8tBReUjwK9M7B/1rfIH?=
 =?us-ascii?Q?AzwgAgb+BX6hc68CiJVDTd9MkUbmfoV233gU7ZrVaei6dXrzoIISO1Kx5rPR?=
 =?us-ascii?Q?hCYTjkyj9rl1Hxb/RtceAiPQgHnnnWz3oaNytbJI6aT5OsrlCw5CyvLBppfv?=
 =?us-ascii?Q?DnSJ4t1pYJYjR+NGchG2O0ttRG+zQ6srQ21Fz7OV4SYYSSGNDYluCKOjLULB?=
 =?us-ascii?Q?MJbMMl0CXG7Dqy7fex3+Vlx7dsc/nQLKACSyETGyCFCidaaYt/xlDxEdXH+i?=
 =?us-ascii?Q?MAF8s93bXthj8B3F0sYMguq+5mwd49Bmz0Hv5KVwxQLotZTekpAntbX+vmzM?=
 =?us-ascii?Q?jtgOE/uCQSltLzfe1mi2tp9PCAZ4nJBYPv7I9FGetPtuoMm+h98Y7s21LI2m?=
 =?us-ascii?Q?N78GpVJ9R426dbNTzNEb8CnUEKHWp4adbbZDN4VOEOx687L1iET3bxUnSbFs?=
 =?us-ascii?Q?i4hlr99iOHPWUcrRG4ewEWYsPNnGNk5tgYIwHELhWt6jA0Udig7CpQ28LMvU?=
 =?us-ascii?Q?s5S6IjaZZ0g6GSp91DcsZTDYKIgMk4h7ECCP5ljEDicNllUNWfPcqMT/cagb?=
 =?us-ascii?Q?Z30BMxTI2v9nMtdAfcXW3RPOa8d6OM4ZKp8AavK3YUeRxPk4crvztutRAXt1?=
 =?us-ascii?Q?5a4z1MsRHh0j7ZsR8crGRRmmYeodwZRf+GMVy6VWNNObdF8KNaq1p1TjzkVb?=
 =?us-ascii?Q?Jcb+pohlzsxsKLSypJCJsElkd/Ga2QwFotvnCdWPlVyLfJpgMR3ZJObnEwVE?=
 =?us-ascii?Q?OQyuG1DBX1AuaMylaickZ+GO26msPw3qa1E3Ga7+QBlrKegKJ1AsuP92hWJJ?=
 =?us-ascii?Q?u6SXPeZgu4Ko68HEYxi6Sl3R3egStDz4zaCuZPrLU06GX+0ikN34t+mFGASV?=
 =?us-ascii?Q?IZ8Za/rxam2G5W1tTakMmkvL0xmLP1/1vSpAlxq3JVmhgUWS4ztHx85VY+1O?=
 =?us-ascii?Q?B8feIlLDzmV0Ae4u6Gt0yLpDz7bAmfZEViYku81lvMFpLx7TEb1a6+5iJ2zS?=
 =?us-ascii?Q?qvmpEG1NtdQfEH2IB/iZ2lDEFZiomY2uHwHnQIehrqswhFUdHoM0xOHkHlg+?=
 =?us-ascii?Q?kvaVbrsHWrgUxXUV0USJAvC6UYjS+vxvcD83RNulSaTh/N+FjtSfAE7stbYA?=
 =?us-ascii?Q?BwNTrR3gi0/kEj6FUcCbORAyGgicfcZn6RXQ9uK/P2NvEeN6xeU9JcPLkzQR?=
 =?us-ascii?Q?JIBLgof44ncZjtYLZ6kOxt3t4d408sVrcRE9Zc5dYvsMRHs1od7IE5t7xUDN?=
 =?us-ascii?Q?8f3gHhOz+9VC1Hkk3pT7jfhH/zkkwccg4VRX6Kx4GBHtqHxt7juoyp4t2XNq?=
 =?us-ascii?Q?o5WMGNtMATfsEJpD2EAh0YZyK9EledtOHO1J1MOQiaMcGfarp4nmi6tEjXw9?=
 =?us-ascii?Q?gbkzAluepYAO47wsHsNM/Ws=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8b05b49d-970b-4bd9-9785-08d9aaa9d747
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 15:41:08.9233
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GL7jRizeH2MIbvTAdMD3NBnVdtcTB7ibHUtKLhiABPvw3sGHaZtB8j8yGA0IGGlRro5O+b+SGabXRLG2j4sMqA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3773

On 18.11.2021 16:21, Oleksandr Andrushchenko wrote:
> On 18.11.21 17:16, Jan Beulich wrote:
>> On 18.11.2021 16:11, Oleksandr Andrushchenko wrote:
>>> On 18.11.21 16:35, Jan Beulich wrote:
>>>> On 18.11.2021 15:14, Oleksandr Andrushchenko wrote:
>>>>> On 18.11.21 16:04, Roger Pau Monn=C3=A9 wrote:
>>>>>> Indeed. In the physdevop failure case this comes from an hypercall
>>>>>> context, so maybe you could do the mapping in place using hypercall
>>>>>> continuations if required. Not sure how complex that would be,
>>>>>> compared to just deferring to guest entry point and then dealing wit=
h
>>>>>> the possible cleanup on failure.
>>>>> This will solve one part of the equation:
>>>>>
>>>>> pci_physdev_op
>>>>>           pci_add_device
>>>>>               init_bars -> modify_bars -> defer_map -> raise_softirq(=
SCHEDULE_SOFTIRQ)
>>>>>           iommu_add_device <- FAILS
>>>>>           vpci_remove_device -> xfree(pdev->vpci)
>>>>>
>>>>> But what about the other one, e.g. vpci_process_pending is triggered =
in
>>>>> parallel with PCI device de-assign for example?
>>>> Well, that's again in hypercall context, so using hypercall continuati=
ons
>>>> may again be an option. Of course at the point a de-assign is initiate=
d,
>>>> you "only" need to drain requests (for that device, but that's unlikel=
y
>>>> to be worthwhile optimizing for), while ensuring no new requests can b=
e
>>>> issued. Again, for the device in question, but here this is relevant -
>>>> a flag may want setting to refuse all further requests. Or maybe the
>>>> register handling hooks may want tearing down before draining pending
>>>> BAR mapping requests; without the hooks in place no new such requests
>>>> can possibly appear.
>>> This can be probably even easier to solve as we were talking about
>>> pausing all vCPUs:
>> I have to admit I'm not sure. It might be easier, but it may also be
>> less desirable.
>>
>>> void vpci_cancel_pending(const struct pci_dev *pdev)
>>> {
>>>   =C2=A0=C2=A0=C2=A0 struct domain *d =3D pdev->domain;
>>>   =C2=A0=C2=A0=C2=A0 struct vcpu *v;
>>>   =C2=A0=C2=A0=C2=A0 int rc;
>>>
>>>   =C2=A0=C2=A0=C2=A0 while ( (rc =3D domain_pause_except_self(d)) =3D=
=3D -ERESTART )
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_relax();
>>>
>>>   =C2=A0=C2=A0=C2=A0 if ( rc )
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 printk(XENLOG_G_ERR
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 "Failed to pause vCPUs while canceling vPCI map/unmap for %=
pp %pd: %d\n",
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 &pdev->sbdf, pdev->domain, rc);
>>>
>>>   =C2=A0=C2=A0=C2=A0 for_each_vcpu ( d, v )
>>>   =C2=A0=C2=A0=C2=A0 {
>>>   =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( v->vpci.map_pending &=
& (v->vpci.pdev =3D=3D pdev) )
>>>
>>> This will prevent all vCPUs to run, but current, thus making it impossi=
ble
>>> to run vpci_process_pending in parallel with any hypercall.
>>> So, even without locking in vpci_process_pending the above should
>>> be enough.
>>> The only concern here is that domain_pause_except_self may return
>>> the error code we somehow need to handle...
>> Not just this. The -ERESTART handling isn't appropriate this way
>> either.
> Are you talking about cpu_relax()?

I'm talking about that spin-waiting loop as a whole.

>>   For the moment I can't help thinking that draining would
>> be preferable over canceling.
> Given that cancellation is going to happen on error path or
> on device de-assign/remove I think this can be acceptable.
> Any reason why not?

It would seem to me that the correctness of a draining approach is
going to be easier to prove than that of a canceling one, where I
expect races to be a bigger risk. Especially something that gets
executed infrequently, if ever (error paths in particular), knowing
things are well from testing isn't typically possible.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 15:46:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 15:46:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227494.393462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjca-00067B-Gl; Thu, 18 Nov 2021 15:46:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227494.393462; Thu, 18 Nov 2021 15:46:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjca-000674-D7; Thu, 18 Nov 2021 15:46:44 +0000
Received: by outflank-mailman (input) for mailman id 227494;
 Thu, 18 Nov 2021 15:46:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HVvB=QF=epam.com=prvs=1956dce401=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mnjcY-00066y-PU
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 15:46:42 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b899ec06-4886-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 16:46:41 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AIEwYQe027008;
 Thu, 18 Nov 2021 15:46:35 GMT
Received: from eur02-he1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2056.outbound.protection.outlook.com [104.47.5.56])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cds2m86rw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 18 Nov 2021 15:46:35 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5700.eurprd03.prod.outlook.com (2603:10a6:208:16f::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 15:46:28 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 15:46:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b899ec06-4886-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=C2uKKcdcnfsqpz/bm6qbmLvmk1lh6/JxJDVmeE8DE7+FGPHlerxiK9PVSFLFzvBZkqDYc7DI9PSbXLwsQy/rCg/SWC32Yn8VeyH4TRIaz58znTxNlbtDRMuVOa7D/5U8wWOwy0lPi7ey54+RpJqKkxnsuwvwVZO4wmaVxfk21BE2Jd/HMlpg+OJ8d1EjZWvzuv2vM0jlWtLDNpxNo5g+JlXgv4Reco7NgtTP8EDQl3gMX4TOVi4W37A9p5FOJTG4D84iMOWVrpQ3A9FTUrZTmSSQQr84xSmcAL4BKZjUeo/cY01kGEODwwOzCCVNqImCgJI6m5DjUq+r7OfHTwitvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tSyhJBEbCV8iyrnV17bf/LoDjHQIFOEnKl3ul0JENYQ=;
 b=S2qHi8EUDlXGZf1OmzeuoN9bxsydN2jxJIajDAxi4lH2AL0RUO+cmlFeR9LtPfnZbd8R5OxYtCephwt6asdiAdQVLfzFPPj3pdHGQTJZe+KoAb+Z1N70th4t9RajjGGbBFYDUZ1y5ACd6VkUhIaFO80ii6xdCNgiF3vrnT5pheddNc3s62EnmFOnlDWsQbofTt3I/rC2aAokw1cdWQNWRyLexg8T/JG0ThiBr38Hz1HEQLLyQGmcxAhBc2n/XNUU/PRo7IhkjDUR1ezihR6wxWfKhMBPqkMLYCPKQtAq7b8enw+U7qYOzrzpuM1yL5IiOMoG2YI4VDBCyqP9UT5sAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tSyhJBEbCV8iyrnV17bf/LoDjHQIFOEnKl3ul0JENYQ=;
 b=IXhajDrWUygsqzNBJoUHD50nqMp3wn3fKXvkKB9Tb3uJArebyg2wrlpqeLJ8W3v12tcWHymb2758aZHcoYI+hScfYPJmdK7x4lIQ53c+/BrGV7hUJpx1BP7bR4R/Tfsnew59pH6Os6UZF+S6/Pu3YVLxeOqlDgoPm/Sv3BREUu10esGa9Xn2GQaoU8yHx/WqqHMJCtn8g5f3XOWhzK4wScYZb6kU9rVRkSMQoeOyqExEi6MrbaSXlIJk6JUpfpq96TZeVDQexaQkmAhfLRSS2cJkgwDJOL6SM0/EW4iJgGbpVgi+Fg0l0oQ0XrhBMuuIC4kCBLQWfeSq4UUlMw3ifQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIAgAAFxACAAAoGAIAAAXMAgAABgYCAAAVtAIAAAX+A
Date: Thu, 18 Nov 2021 15:46:28 +0000
Message-ID: <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
In-Reply-To: <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2821c7dc-4017-4336-879d-08d9aaaa95bb
x-ms-traffictypediagnostic: AM0PR03MB5700:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5700BAD41863039E1A04B591E79B9@AM0PR03MB5700.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 Nc4INfvte20D6Hpp3Bt7UBEfqk9c0/mynKQibHmQ+HgyZAji/Dz59SAg3Z+QxtiQCK8PbySyjfNTvA+rCFioBuXKtRzlyhjWmaOq7UUYO86DeORHft6MxymNrtW7h472VJhL7HwmYeKl5lwfdHfi49miz8SexTg+M7rfNZUB37c4JqBdhJc95m3wkKX6cFUi3wTmQXH82IZF35sMjXXQghcfYcvAj5Xk/tTjxdRL7t2gSCv3WzIePK4G/vte0Y4j7f+/CDUsPesx2gdJXmb7TW5mIvXGItwgD230jb+IcJNaMl6MiswV6xAD2MmDRCECiubJuO8fJ1wxYA07VbHJrDA8SOBe5fv95ZaaPOwwOVCH+QZcqS+d/ogahyBubb2vCef1eWUo/TNZxpSxzlG2yXoTNgsXXJhkSMmbbG7fYhx3xeoEU2p0+uPxIh3GH/HPCIBj/eeTCXedoxOWy9lgSJ5w5b6zkXT3Pki60eTbmaLQPem3vC5Amy8g1pYVVxkz43e8fj7ZEJWo3soggGpCDaEzoWWaZ0vhKwPZRg+BGAU/jnwgfwEgpwUIleDGQue+oGCUsIpOtuKNgkfX2BPx4g5Xkgvl7GMMgLesSd1Zg07RU7GfZzHPBkb0Fl0ox2U11UhBhswqWKzA5D8qoBZ7Kf5sQdaN0HksyEqB1dyJBEa1r1O/udtZj3s3fc5hXSk0sfI5i4ildRXOxhBluiLwe/Ot6z08WUpJhbbLAO4ARw0hHJDOcMkwW888eg7fBWVL
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(66476007)(6506007)(53546011)(66946007)(66556008)(6916009)(2616005)(8936002)(122000001)(91956017)(6486002)(5660300002)(7416002)(76116006)(66446008)(64756008)(186003)(31696002)(86362001)(107886003)(38100700002)(31686004)(83380400001)(6512007)(2906002)(54906003)(36756003)(4326008)(26005)(71200400001)(38070700005)(316002)(8676002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?YWwvU09xMU5XMWxoNEtZcHFBU0ZiTmN0RXNLQmdrZ2NoUjJ5azljMWVyVENF?=
 =?utf-8?B?cm9pcVNPMTgwWU5NWEY0cjZqamJJdUpGRDdJeHVyN1MyYlRXdlJxTWgyTWtG?=
 =?utf-8?B?V3FPSlZTVWVlRlJ4S1NRbVBDRE1QUjZXWmtCamJ3U0JSUHNGU29NeUZabkZ4?=
 =?utf-8?B?dVgycVA5R0dPMzFCZWV5UWw1azlaNjVGNzk3c01IdmtsMk1VL3NOYkQ1K1l4?=
 =?utf-8?B?OFBvWHhnOHQrMFpTUzBHaUpJbU9LdWdMNWhHbkZLUUd4YXZ1OWhtNUJqRll3?=
 =?utf-8?B?Vm5TUldHTmNSMm5ZYXZvQkNqUExtb0ROVWkxT2hOUmxEK21XN3RKMFFMR3Z2?=
 =?utf-8?B?SU9wOGx1TERqUWxVcVRXeWJ1bmZRVDVMMUVoeS8wV3B3amo2UmpPZkhHR1Uz?=
 =?utf-8?B?a3V3YmdBUXl2a0QyeG5hVXNzemVubVBOaFpzM2N0cHBaYXM0RWZwcmtsdW9n?=
 =?utf-8?B?cjB6dENwRjdneGcwRW5BQXRJaFlXTzc1TjQyMXhKKy9VL05VcWMwUEVyRGdh?=
 =?utf-8?B?M3V4a3lOOTBxUG5hMmk1bGVvOXZMcXVFMmZoVGJsM2podzRPR0N5Ny9OWjd0?=
 =?utf-8?B?bGJSRTJQM0lZMk9RQ2dLZkZPMVlvTk4xY0dsYjhaUEh2UU01aUUxUi9qenc2?=
 =?utf-8?B?UnJGZWxBdXloSG9VdGcvZmllUHVoclZNUHJodHdvTUYxeW9OeHViYjY3MWNY?=
 =?utf-8?B?UFJIQ1FSSUQ3THh5cHM0Q2VVcm5GZlpDbVEwVDYwelVtNnF4RklhZk1GZ3M2?=
 =?utf-8?B?cXNCZWU3czdDSFMrbWt1YVJsNlFPSGFpd2dMbzU5UXYvSE00eWlMUmRWeDN3?=
 =?utf-8?B?a3ErTnNFdXoyWEJaN1QrbElPbGdvSjF0cnhieU9CbGVBdnJ6REViU3FhdWJo?=
 =?utf-8?B?Y01Wd0QzZFVaWkM3elpmODBUZXIyd3JUbEFmdU5TR1cvcXpoQnBHeWc3SW1x?=
 =?utf-8?B?a1M0RFFXVmZtT1V1Z1prcnhYYUpWRFBYa3JHa29RVkdHRGtONDg2bDFRaUYz?=
 =?utf-8?B?OHFlV21EemFWcDhQdmx1L3lQTEQ4ZjYvK0xxdjdGWlM3SUh0NUtXYkVqbDRj?=
 =?utf-8?B?VDIvNS80Z0t5R2lVSG1oTFpnSTUvNUxuZnd4ZTF5RE4zcnFZeVpoRGpGQUd5?=
 =?utf-8?B?MGpKYmFqQWhJWVBwZ090Wnd4ejA0YmhXc0djZVZlN2ZON3QwS2JTMUJDWkR6?=
 =?utf-8?B?RnFEamtBMTNORmxpYzJLajV0azAwcTRlQXZsWUtEZG1yZktGT015ZERxUlBh?=
 =?utf-8?B?c2c5N2JpVXRNYi8zcEtuSEV0VTFBQkhZZEdqUkVvN1dGdzJFaDc3UmU5cEpE?=
 =?utf-8?B?QlFTWlBoakNrcEVOOWVOa2E1RHBsWU9OTUt4YWJTTVZJVVNsVDVxc2xaekEy?=
 =?utf-8?B?Z3F6NDhQcFVBa3dIRGNRRnQ2SEtra3V4cmtWcVVkN2V1bWdqa1k1aGxkc21a?=
 =?utf-8?B?Ly92NjB6QlI2Z09pK1dyaFFpZmcyMU9NMFhESWhQUlF3NUJuU0VIM0U0ellW?=
 =?utf-8?B?UHF3ay80Z1JzZW1QR25YNkNlRFhybnFGaE80U00rRHFuVzJyZjB2TjluNnlB?=
 =?utf-8?B?QThadXNmYkk1STMvcTBHQ0tLY2RuZ1NXL3JtV2t3VHJURkZDQi9FdllxUkVu?=
 =?utf-8?B?cTkwT2VkZ0c0T3hBTWdiUkoyVHpqNFdadHF5MVRxd2pLZG9FK1Q4NXhnVVpY?=
 =?utf-8?B?TnVSdG1SbzVyYkg0UkRNemVtZk53QXBMMEVXWVlUVTZBeFVyaVIrUnQvNUl1?=
 =?utf-8?B?ZGFOZStZMU5CM05kU3V6NmFqVnpIdW15b1BTMml1YUFEbXlCTlRPRGVxUUw1?=
 =?utf-8?B?RDYyWk82Nm5KWnNmSVY4VmtiT3Y0ODZCaFc5aEIyM3dQbWpoaXNTQnRETVdy?=
 =?utf-8?B?bHBmZnJKVVY3OGhhNURUUENlbzlIVUFrcWJhNDZaTDJmK1VkVXpVbThWZFd1?=
 =?utf-8?B?dWxwM3M0R3VFcE5lYkRCN0k0SlVnYzRnRkVXRmp3S1RrY1YrQjh1aG1mcmhx?=
 =?utf-8?B?bE1nRkV3WnNqdEU3eEN2Y1kxcWpyMG5rV1BBVTVvL2lxbmVNNFNjZHc1QnEr?=
 =?utf-8?B?anQraGFmd2FKZy9tUkJZN0lLbzRHekJyT0ZjS0s5NndGaEc0NFZzNG93MkYw?=
 =?utf-8?B?ZytBNEMwQ3ZvdGtjdVR5aG5YaUJXWEh2dHpIZklsWDhNZEdBMzA5c0FFZFBP?=
 =?utf-8?B?OHh1dW1RNHljUEhCRjgrcEZRSU9nOXlGS1Y4L1ZremN4ZC9QTXN3TDdYWFc0?=
 =?utf-8?B?V2R1QklpVVFDQ0VvOHVibWcrMGtCd1ZiZFNGVzZhc1diNVMzcGQwS3ZyQko4?=
 =?utf-8?B?ZGFSeUZDNUhpallZYkZ5d1VsZnBSQU1iVTg2alBqczlZdzlsWXptdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D3BDE2839254634B840B8208109E34A1@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2821c7dc-4017-4336-879d-08d9aaaa95bb
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2021 15:46:28.1091
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: oq6stkXWS1NFmUYglJGWlVzzPtQqVYaxTN9Oo1qnBLH5LwXw/INxBLuxjFaIFGxJgYMS1L6jn8cB5N0e01ssGSdHA9+0Q52RUejvgdVZkfb1RBJFOIbAcjLNDCljB1kL
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5700
X-Proofpoint-GUID: 4SBDhJJNp8Ae2swC1PrOIfFBBBjSXmYG
X-Proofpoint-ORIG-GUID: 4SBDhJJNp8Ae2swC1PrOIfFBBBjSXmYG
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-18_12,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0
 mlxlogscore=999 priorityscore=1501 bulkscore=0 suspectscore=0 adultscore=0
 phishscore=0 mlxscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0
 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111180087

DQoNCk9uIDE4LjExLjIxIDE3OjQxLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTguMTEuMjAy
MSAxNjoyMSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOC4xMS4yMSAx
NzoxNiwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTguMTEuMjAyMSAxNjoxMSwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IE9uIDE4LjExLjIxIDE2OjM1LCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4+IE9uIDE4LjExLjIwMjEgMTU6MTQsIE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIHdyb3RlOg0KPj4+Pj4+IE9uIDE4LjExLjIxIDE2OjA0LCBSb2dlciBQYXUgTW9ubsOp
IHdyb3RlOg0KPj4+Pj4+PiBJbmRlZWQuIEluIHRoZSBwaHlzZGV2b3AgZmFpbHVyZSBjYXNlIHRo
aXMgY29tZXMgZnJvbSBhbiBoeXBlcmNhbGwNCj4+Pj4+Pj4gY29udGV4dCwgc28gbWF5YmUgeW91
IGNvdWxkIGRvIHRoZSBtYXBwaW5nIGluIHBsYWNlIHVzaW5nIGh5cGVyY2FsbA0KPj4+Pj4+PiBj
b250aW51YXRpb25zIGlmIHJlcXVpcmVkLiBOb3Qgc3VyZSBob3cgY29tcGxleCB0aGF0IHdvdWxk
IGJlLA0KPj4+Pj4+PiBjb21wYXJlZCB0byBqdXN0IGRlZmVycmluZyB0byBndWVzdCBlbnRyeSBw
b2ludCBhbmQgdGhlbiBkZWFsaW5nIHdpdGgNCj4+Pj4+Pj4gdGhlIHBvc3NpYmxlIGNsZWFudXAg
b24gZmFpbHVyZS4NCj4+Pj4+PiBUaGlzIHdpbGwgc29sdmUgb25lIHBhcnQgb2YgdGhlIGVxdWF0
aW9uOg0KPj4+Pj4+DQo+Pj4+Pj4gcGNpX3BoeXNkZXZfb3ANCj4+Pj4+PiAgICAgICAgICAgIHBj
aV9hZGRfZGV2aWNlDQo+Pj4+Pj4gICAgICAgICAgICAgICAgaW5pdF9iYXJzIC0+IG1vZGlmeV9i
YXJzIC0+IGRlZmVyX21hcCAtPiByYWlzZV9zb2Z0aXJxKFNDSEVEVUxFX1NPRlRJUlEpDQo+Pj4+
Pj4gICAgICAgICAgICBpb21tdV9hZGRfZGV2aWNlIDwtIEZBSUxTDQo+Pj4+Pj4gICAgICAgICAg
ICB2cGNpX3JlbW92ZV9kZXZpY2UgLT4geGZyZWUocGRldi0+dnBjaSkNCj4+Pj4+Pg0KPj4+Pj4+
IEJ1dCB3aGF0IGFib3V0IHRoZSBvdGhlciBvbmUsIGUuZy4gdnBjaV9wcm9jZXNzX3BlbmRpbmcg
aXMgdHJpZ2dlcmVkIGluDQo+Pj4+Pj4gcGFyYWxsZWwgd2l0aCBQQ0kgZGV2aWNlIGRlLWFzc2ln
biBmb3IgZXhhbXBsZT8NCj4+Pj4+IFdlbGwsIHRoYXQncyBhZ2FpbiBpbiBoeXBlcmNhbGwgY29u
dGV4dCwgc28gdXNpbmcgaHlwZXJjYWxsIGNvbnRpbnVhdGlvbnMNCj4+Pj4+IG1heSBhZ2FpbiBi
ZSBhbiBvcHRpb24uIE9mIGNvdXJzZSBhdCB0aGUgcG9pbnQgYSBkZS1hc3NpZ24gaXMgaW5pdGlh
dGVkLA0KPj4+Pj4geW91ICJvbmx5IiBuZWVkIHRvIGRyYWluIHJlcXVlc3RzIChmb3IgdGhhdCBk
ZXZpY2UsIGJ1dCB0aGF0J3MgdW5saWtlbHkNCj4+Pj4+IHRvIGJlIHdvcnRod2hpbGUgb3B0aW1p
emluZyBmb3IpLCB3aGlsZSBlbnN1cmluZyBubyBuZXcgcmVxdWVzdHMgY2FuIGJlDQo+Pj4+PiBp
c3N1ZWQuIEFnYWluLCBmb3IgdGhlIGRldmljZSBpbiBxdWVzdGlvbiwgYnV0IGhlcmUgdGhpcyBp
cyByZWxldmFudCAtDQo+Pj4+PiBhIGZsYWcgbWF5IHdhbnQgc2V0dGluZyB0byByZWZ1c2UgYWxs
IGZ1cnRoZXIgcmVxdWVzdHMuIE9yIG1heWJlIHRoZQ0KPj4+Pj4gcmVnaXN0ZXIgaGFuZGxpbmcg
aG9va3MgbWF5IHdhbnQgdGVhcmluZyBkb3duIGJlZm9yZSBkcmFpbmluZyBwZW5kaW5nDQo+Pj4+
PiBCQVIgbWFwcGluZyByZXF1ZXN0czsgd2l0aG91dCB0aGUgaG9va3MgaW4gcGxhY2Ugbm8gbmV3
IHN1Y2ggcmVxdWVzdHMNCj4+Pj4+IGNhbiBwb3NzaWJseSBhcHBlYXIuDQo+Pj4+IFRoaXMgY2Fu
IGJlIHByb2JhYmx5IGV2ZW4gZWFzaWVyIHRvIHNvbHZlIGFzIHdlIHdlcmUgdGFsa2luZyBhYm91
dA0KPj4+PiBwYXVzaW5nIGFsbCB2Q1BVczoNCj4+PiBJIGhhdmUgdG8gYWRtaXQgSSdtIG5vdCBz
dXJlLiBJdCBtaWdodCBiZSBlYXNpZXIsIGJ1dCBpdCBtYXkgYWxzbyBiZQ0KPj4+IGxlc3MgZGVz
aXJhYmxlLg0KPj4+DQo+Pj4+IHZvaWQgdnBjaV9jYW5jZWxfcGVuZGluZyhjb25zdCBzdHJ1Y3Qg
cGNpX2RldiAqcGRldikNCj4+Pj4gew0KPj4+PiAgICDCoMKgwqAgc3RydWN0IGRvbWFpbiAqZCA9
IHBkZXYtPmRvbWFpbjsNCj4+Pj4gICAgwqDCoMKgIHN0cnVjdCB2Y3B1ICp2Ow0KPj4+PiAgICDC
oMKgwqAgaW50IHJjOw0KPj4+Pg0KPj4+PiAgICDCoMKgwqAgd2hpbGUgKCAocmMgPSBkb21haW5f
cGF1c2VfZXhjZXB0X3NlbGYoZCkpID09IC1FUkVTVEFSVCApDQo+Pj4+ICAgIMKgwqDCoMKgwqDC
oMKgIGNwdV9yZWxheCgpOw0KPj4+Pg0KPj4+PiAgICDCoMKgwqAgaWYgKCByYyApDQo+Pj4+ICAg
IMKgwqDCoMKgwqDCoMKgIHByaW50ayhYRU5MT0dfR19FUlINCj4+Pj4gICAgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCAiRmFpbGVkIHRvIHBhdXNlIHZDUFVzIHdoaWxlIGNhbmNlbGluZyB2
UENJIG1hcC91bm1hcCBmb3IgJXBwICVwZDogJWRcbiIsDQo+Pj4+ICAgIMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgJnBkZXYtPnNiZGYsIHBkZXYtPmRvbWFpbiwgcmMpOw0KPj4+Pg0KPj4+
PiAgICDCoMKgwqAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQ0KPj4+PiAgICDCoMKgwqAgew0KPj4+
PiAgICDCoMKgwqDCoMKgwqDCoCBpZiAoIHYtPnZwY2kubWFwX3BlbmRpbmcgJiYgKHYtPnZwY2ku
cGRldiA9PSBwZGV2KSApDQo+Pj4+DQo+Pj4+IFRoaXMgd2lsbCBwcmV2ZW50IGFsbCB2Q1BVcyB0
byBydW4sIGJ1dCBjdXJyZW50LCB0aHVzIG1ha2luZyBpdCBpbXBvc3NpYmxlDQo+Pj4+IHRvIHJ1
biB2cGNpX3Byb2Nlc3NfcGVuZGluZyBpbiBwYXJhbGxlbCB3aXRoIGFueSBoeXBlcmNhbGwuDQo+
Pj4+IFNvLCBldmVuIHdpdGhvdXQgbG9ja2luZyBpbiB2cGNpX3Byb2Nlc3NfcGVuZGluZyB0aGUg
YWJvdmUgc2hvdWxkDQo+Pj4+IGJlIGVub3VnaC4NCj4+Pj4gVGhlIG9ubHkgY29uY2VybiBoZXJl
IGlzIHRoYXQgZG9tYWluX3BhdXNlX2V4Y2VwdF9zZWxmIG1heSByZXR1cm4NCj4+Pj4gdGhlIGVy
cm9yIGNvZGUgd2Ugc29tZWhvdyBuZWVkIHRvIGhhbmRsZS4uLg0KPj4+IE5vdCBqdXN0IHRoaXMu
IFRoZSAtRVJFU1RBUlQgaGFuZGxpbmcgaXNuJ3QgYXBwcm9wcmlhdGUgdGhpcyB3YXkNCj4+PiBl
aXRoZXIuDQo+PiBBcmUgeW91IHRhbGtpbmcgYWJvdXQgY3B1X3JlbGF4KCk/DQo+IEknbSB0YWxr
aW5nIGFib3V0IHRoYXQgc3Bpbi13YWl0aW5nIGxvb3AgYXMgYSB3aG9sZS4NCj4NCj4+PiAgICBG
b3IgdGhlIG1vbWVudCBJIGNhbid0IGhlbHAgdGhpbmtpbmcgdGhhdCBkcmFpbmluZyB3b3VsZA0K
Pj4+IGJlIHByZWZlcmFibGUgb3ZlciBjYW5jZWxpbmcuDQo+PiBHaXZlbiB0aGF0IGNhbmNlbGxh
dGlvbiBpcyBnb2luZyB0byBoYXBwZW4gb24gZXJyb3IgcGF0aCBvcg0KPj4gb24gZGV2aWNlIGRl
LWFzc2lnbi9yZW1vdmUgSSB0aGluayB0aGlzIGNhbiBiZSBhY2NlcHRhYmxlLg0KPj4gQW55IHJl
YXNvbiB3aHkgbm90Pw0KPiBJdCB3b3VsZCBzZWVtIHRvIG1lIHRoYXQgdGhlIGNvcnJlY3RuZXNz
IG9mIGEgZHJhaW5pbmcgYXBwcm9hY2ggaXMNCj4gZ29pbmcgdG8gYmUgZWFzaWVyIHRvIHByb3Zl
IHRoYW4gdGhhdCBvZiBhIGNhbmNlbGluZyBvbmUsIHdoZXJlIEkNCj4gZXhwZWN0IHJhY2VzIHRv
IGJlIGEgYmlnZ2VyIHJpc2suIEVzcGVjaWFsbHkgc29tZXRoaW5nIHRoYXQgZ2V0cw0KPiBleGVj
dXRlZCBpbmZyZXF1ZW50bHksIGlmIGV2ZXIgKGVycm9yIHBhdGhzIGluIHBhcnRpY3VsYXIpLCBr
bm93aW5nDQo+IHRoaW5ncyBhcmUgd2VsbCBmcm9tIHRlc3RpbmcgaXNuJ3QgdHlwaWNhbGx5IHBv
c3NpYmxlLg0KQ291bGQgeW91IHBsZWFzZSB0aGVuIGdpdmUgbWUgYSBoaW50IGhvdyB0byBkbyB0
aGF0Og0KMS4gV2UgaGF2ZSBzY2hlZHVsZWQgU09GVElSUSBvbiB2Q1BVMCBhbmQgaXQgaXMgYWJv
dXQgdG8gdG91Y2ggcGRldi0+dnBjaQ0KMi4gV2UgaGF2ZSBkZS1hc3NpZ24vcmVtb3ZlIG9uIHZD
UFUxDQoNCkhvdyBkbyB3ZSBkcmFpbiB0aGF0PyBEbyB5b3UgbWVhbiBzb21lIGF0b21pYyB2YXJp
YWJsZSB0byBiZQ0KdXNlZCBpbiB2cGNpX3Byb2Nlc3NfcGVuZGluZyB0byBmbGFnIGl0IGlzIHJ1
bm5pbmcgYW5kIGRlLWFzc2lnbi9yZW1vdmUNCm5lZWRzIHRvIHdhaXQgYW5kIHNwaW5uaW5nIGNo
ZWNraW5nIHRoYXQ/DQo+DQo+IEphbg0KPg0KPg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 15:53:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 15:53:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227499.393473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjip-0007VX-6b; Thu, 18 Nov 2021 15:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227499.393473; Thu, 18 Nov 2021 15:53:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnjip-0007VQ-3O; Thu, 18 Nov 2021 15:53:11 +0000
Received: by outflank-mailman (input) for mailman id 227499;
 Thu, 18 Nov 2021 15:53:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnjin-0007VK-Po
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 15:53:09 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ff5505f-4887-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 16:53:08 +0100 (CET)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2058.outbound.protection.outlook.com [104.47.5.58]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-8-4AgSKdwwNMKiup0rx-8l5Q-1;
 Thu, 18 Nov 2021 16:53:07 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5743.eurprd04.prod.outlook.com (2603:10a6:803:e0::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 18 Nov
 2021 15:53:04 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 15:53:04 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P193CA0087.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:88::28) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 15:53:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ff5505f-4887-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637250788;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=DSP7lRJgendETN/3k2DCCiinkR6tX5EzevSV6N86guU=;
	b=UsPfqkk1UZH0MPVuGbpWnQVoDb6mC7Te4s2e0t2/o4+D2tHFFqsWPJ6VbFp1ax48psrE8K
	PUXLpRwsWTcua+yjbPlK7ZJD3gSZCrUxiW4G9F0ifKEOhbmMTKbo3gW5O2O+LR2M3M8mQh
	VCKKZ2AV9uOmNh/ILoWccaMNf6zgP64=
X-MC-Unique: 4AgSKdwwNMKiup0rx-8l5Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EjxZQTlpRb7wxvCxVHaM1JnzBt1PDhRl1g9Dbk+xX7bI79R1Duw9RlurdOH1rm6imHeoQjdpGy0bpCQhaLjVeCYsxru/gk7esjJlK5S3atXt3gxv9ISlEmiw5wdN6XqFO3I4HkMqz9XzyBJMDxfG4/URUhe6It5vQX4V/3yqloqGHpx167AL0ML3ytupnM22BaTLt07jDdfiT7cpl9HVwgnC33vUe+Pnwwrktq2/v5Zuftk6Fux0DEmXPb9C3Dp5/ou+5NymR9xvCdQBjr6bQyqDv7IcwYS9R1UKoUEP5mXoYIsJWuno1xRx7hdsa9sAVs5qdBpBlGK4CAIn/HcD9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DSP7lRJgendETN/3k2DCCiinkR6tX5EzevSV6N86guU=;
 b=Gq1lsNT4YrBOv9HY40wZQ0VP36KJ/JjWesm9PlKDs/ZABInorhdsEP9FrzoVUVH64ter/acJreMtkE5MVPzrNMvPHW6gALT2nADbBmacxQxyPnR/+YE/Hc0pdHUFWVcMDBwKpkS9qc18njjwzP5o8t9kzWHyBa89yquLO3Sv4RpkdS7+opbtw7LWAx2RP/xFE7mlrfUe01nk96AA2zW/HDc8r/y7aoImAC3y71BeVZPQCGjxb3CL51nEWnxA9uuBoX8tMbdmlkgm4ZnHDzeuJ9fBHrUkBAtS2S/1nXR1ewM50NA6N/Bc3cWN0pZB3FSGUIX4jxzoolqPbSObg2QLEQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
Date: Thu, 18 Nov 2021 16:53:02 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P193CA0087.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:209:88::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 23278496-4897-4116-9c33-08d9aaab81fd
X-MS-TrafficTypeDiagnostic: VI1PR04MB5743:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5743DC08B6EF09C23DB62986B39B9@VI1PR04MB5743.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	kfKF7BqDyZP8/l9RS2QxtEuYTLa/zUngouzLxA06+DZlupmaLjZyt5efCuxuPwrFhfJPe89RlLKnv6BKAgG8/x7nOXnpjWFtDWovd1+6r0TD2gU9hGjNavA//nrRQBV3JSZhMAF6sz7VBYSaNId4NtKMcdsQYbVSQsuU5RVK1HXyataE9HYaNfT87txFm/CYKgg+Z1EFuZexaS9Ly6a6yRK8wbTE0n3/to1nHcLxuycULKvMvD5ZDma/wbuqYxi+Gl7BRMZa7NXGTrPERGQjPsIPcEsoOYftE11zBmKyuzpSZSx9l6yUM5MRIpz5l9u4AJwxOxWgCy1/YF03/GhJ8AaIlXogVXiSXTt3heDf/f0MTD+x/nPGEOrnllKdYvh0KVPYmLr1u1xp9DaxV8k+skvoFYWOZ/u/GHHk0xx6aDq6VDA8L5IiprLsTWEQBWTsVDgaH8aclBHGzFf1l5GrxsK02H9r681mDixnsu/8lrGvp3QkTgWgC4DYTqVMBUfwhNGXuhWJ4J5fDKBlyJN4rPoUmKZZM2Y5Urh+3B3w8hfEYtcfBRy2xuOPk4AhPBWFEV4YtS71ivq1KMV2CKEBW4ML9RnEE4vwikFP7zmd71e1+wtFPtmXlCz9eOPl/O8cNYky+ULMuApErjTItjaFm6/HmOWKsd9SxNM1tmSfjQEMA5eD7rDOsUQlNIP8WpL3LWMdi+ElxktfOPcxULji1AofaZjT2OWtnlfp7Eb+AIe1ND+wIr4N5rzhNpONEoj7
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(8936002)(66946007)(38100700002)(31686004)(6486002)(5660300002)(53546011)(8676002)(66476007)(86362001)(2906002)(16576012)(83380400001)(956004)(316002)(7416002)(31696002)(26005)(54906003)(36756003)(508600001)(66556008)(6916009)(186003)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QTNod2s5eUlZTmVwS2hOM0d0YWNaTHMwcldFcFNXMlhmNzNYVG01OVBzdDQy?=
 =?utf-8?B?MEVUeUNEd3JkZ1VFL3hqUm5Bc2hsUnpMS21McTdxS0RISEdaNHJ6UGdwYXo1?=
 =?utf-8?B?Ujd6OGg1M3c3Q082c29Wc1pCbkpqSDVrcHd2YmhzMVY5bEdzYUp5VVJBOEFW?=
 =?utf-8?B?OFk4bCtIL1pDdDF1WnZNOFQ2ajd5YjczbFNXZURpS0QxeG9iQlZ1NklJNnN4?=
 =?utf-8?B?WnlOaHFrQURIMjVzQW1Uek5mbjR0YTRieldqWFd2a0UvWXVxOHlycVJMUWtF?=
 =?utf-8?B?aXQ4WjdiTEVVU05DT2thOUgrZEZpUFNiaytrM2FNMy9JeGdaRTBtQWVHSUhO?=
 =?utf-8?B?eUxsbVhycTNJUXM1Z2lZaGdDeWlTbHdsNHl5S0lQSVYxSlplUGlXdFVQb0xP?=
 =?utf-8?B?ZkNZK1Nvb20yM2JKa3h1RzVZZTFQWWZualZjczJGc2FobTlJLzlSRGxzSSt3?=
 =?utf-8?B?MjlSVzZaaTl4UEM1L1RYczZtd2lIZk9iNlhPbjA5b1lLZ0dEekNEeHloblJE?=
 =?utf-8?B?RTlKRms1Tm55bnEySy9VNmVXU21VM1h5Z1ZKS2YzUXdPekFzaGxaT3dJMXZ3?=
 =?utf-8?B?dG5jOE5uK2RmMFFkWnM5OXYxN3JibmRwakNMcktHcnpXRlRuSWN3U1k4bzNl?=
 =?utf-8?B?Z3liTERITSt4R3R0aXRUSHRsL1BjTnB5RlVSNU5UVW5QTC8wcmdWLzlzcVZk?=
 =?utf-8?B?RFQyUEVxYjR3ZmgvaWk2OTFIYjZ4RGY3QUJPRHVWY3VxR0hTWERuck9abjNN?=
 =?utf-8?B?M2tGRXhEY0g0VUVBalBsQWNnOEQ3WWlEK1lweG1TZ1NDV3d2aFJHM2M4QVhJ?=
 =?utf-8?B?MXRjSlVPVWRTSW16MGNsazVwdWh5WkVCaEVvcC9lSncyK0MxNmlBVlJnWjNP?=
 =?utf-8?B?c1ZWaHJxbmJPNG96U09JVVYyWEpnNXh6S0FxVjcrS0pyUFVZMVpzUmwrejdV?=
 =?utf-8?B?c2ZtUW04ZGkvWGxuMUl6SVgvTGRmMElDQmYrOHYxbmkyM2w1RnBncXNJYXh2?=
 =?utf-8?B?TEd5Q0Jwd0xtSmYxTWc2T3Q2UG9TNTFJdlRHbXVjdlFONUJMVHNOYkJQb2V6?=
 =?utf-8?B?RFFMeStSUUdlS00xYi83Zld6Ujl3ZW9wWlBaSTRMSGovMDNaeTBkTExha0s4?=
 =?utf-8?B?SysrOVFtcTlHbU5JOUdvQjU4S3JIcm9yOVRtM2xnRldMMlorRDR6NVR2QVlw?=
 =?utf-8?B?d21Ra3pJMWgxQ3drb3hERXhLK3ZmMkYzVHNSN09iZ2xmQzlrYkR2Qjc4bk9G?=
 =?utf-8?B?VktnTmY2elhydWtwQjBlZmhmU2pMcUVmVk5ZYTBHZjlvNjh0TUIxSjcwa0ta?=
 =?utf-8?B?S1d4SGtuNExOUlFadDljTDdDVWtVMUorWFp2bTk5NllDTk9PUEFCZUQxUGRm?=
 =?utf-8?B?emNpSHlFMzdlaDRSOU5ZMitWcGx1OFNNSFgvdzRpNUpYRDFZL3FKVHg0R0o5?=
 =?utf-8?B?dWNNUnp6cHplTjNLaWJLa2h5QTNFMmRxYjlHS1ZIM0MyZzR5dGVzWTFvNUNE?=
 =?utf-8?B?MWpxS1h3Z1oydEdLNTVvVW5JMDFCdERDNnNCQm1mL013cjJ3bzhORENiWGhi?=
 =?utf-8?B?Q0hteVVvRm0ybHVsekpYSndZWmJTaGpUZUgvd0FYa3JtdmowZC80SE81M2d2?=
 =?utf-8?B?YWFUNWhrKzROd1B1S0ViZmtlRXFuTzZjcUFMc0hnOEJqVENoT1FLV3VCRU1S?=
 =?utf-8?B?RHdnYS9mZCtzM1J0bzhNTEd6ZWo1WHlOWE44bFJQSS81bzBMMFByTHVJb2Rr?=
 =?utf-8?B?b1lmTHd6eVpKc1lLSW1Iakwzd0hsY2dqei9qK0huNTk5MXI1cE1SRXVROEUv?=
 =?utf-8?B?bk9ZSVFZT2JSR1pCRjZXUW5qSEYrLzFITjRrNlREaUhXSXRSV2FmQzJvcm9U?=
 =?utf-8?B?QXN1cDdGTHNHaFhRUUEwTHUzWERCRWhhNCs0d1FWNUVheFh5RkgxZ2d6TUJP?=
 =?utf-8?B?MVFQZzBSQ1ZNNGZEN2dTY1l3RHhPaHZORGNsVGtmb1MrN1BSbGs1RHhvaFdr?=
 =?utf-8?B?YjN1T1JaL1lJQmxTSi81enNKY3llTyt3b0YwcHFYYVZGVzBiQXplT3pEb0g4?=
 =?utf-8?B?R2pPWktLUUlkOVZoQ2JzUXM3NC9qVElzZytpTGZFMU5zd0V2NnFaaUl4WnlV?=
 =?utf-8?B?eHd0M0E5d2NCR2ZFaHpBdXY5ZklDWjVxclB2TGpmaFlmbXJjbGZNY1JCOE12?=
 =?utf-8?Q?uLIxcO7EHOn9KTy6wJyFqMY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 23278496-4897-4116-9c33-08d9aaab81fd
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 15:53:04.7596
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xBqPWAhwDSogzQ1Crtw8jMGLu3Z2sCOMtVxbhR7wp/704O/q87KLrbn07RM7KnQlX6LYhnILbzlj9L6x1/eDdQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5743

On 18.11.2021 16:46, Oleksandr Andrushchenko wrote:
> On 18.11.21 17:41, Jan Beulich wrote:
>> On 18.11.2021 16:21, Oleksandr Andrushchenko wrote:
>>> On 18.11.21 17:16, Jan Beulich wrote:
>>>>    For the moment I can't help thinking that draining would
>>>> be preferable over canceling.
>>> Given that cancellation is going to happen on error path or
>>> on device de-assign/remove I think this can be acceptable.
>>> Any reason why not?
>> It would seem to me that the correctness of a draining approach is
>> going to be easier to prove than that of a canceling one, where I
>> expect races to be a bigger risk. Especially something that gets
>> executed infrequently, if ever (error paths in particular), knowing
>> things are well from testing isn't typically possible.
> Could you please then give me a hint how to do that:
> 1. We have scheduled SOFTIRQ on vCPU0 and it is about to touch pdev->vpci
> 2. We have de-assign/remove on vCPU1
> 
> How do we drain that? Do you mean some atomic variable to be
> used in vpci_process_pending to flag it is running and de-assign/remove
> needs to wait and spinning checking that?

First of all let's please keep remove and de-assign separate. I think we
have largely reached agreement that remove may need handling differently,
for being a Dom0-only operation.

As to draining during de-assign: I did suggest before that removing the
register handling hooks first would guarantee no new requests to appear.
Then it should be merely a matter of using hypercall continuations until
the respective domain has no pending requests anymore for the device in
question. Some locking (or lock barrier) may of course be needed to
make sure another CPU isn't just about to pend a new request.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 16:11:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 16:11:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227506.393484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnk0O-0001w0-NP; Thu, 18 Nov 2021 16:11:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227506.393484; Thu, 18 Nov 2021 16:11:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnk0O-0001vt-Ja; Thu, 18 Nov 2021 16:11:20 +0000
Received: by outflank-mailman (input) for mailman id 227506;
 Thu, 18 Nov 2021 16:11:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/tNz=QF=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mnk0N-0001vn-SS
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 16:11:20 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29b2e6da-488a-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 17:11:18 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id n29so12525752wra.11
 for <xen-devel@lists.xenproject.org>; Thu, 18 Nov 2021 08:11:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29b2e6da-488a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=1HYeqxis+aGi5Y3C5fGaYpoMxSBQvYbGj60inG9Lp0Q=;
        b=kouxNU4IhU4rH6/wm1xc7RGJnmYCOIJZ5d6gq+Rq2V3dBTcKCjHitBx/A7IgEoJBDC
         4oOcwB+k0n5UaXk0MUwwTnw9TYLBnfP0EX3+uSFfYAXqv2PnLKopvQpRDRY2CAC4bQev
         R3/uVjBi8XhsEDhfHBVcM0yK+MMDZngwT4CZsm5b2iErkmRmwXErxA9I4bgVsXDheC12
         L37pp8UC8jXWXCm4J3If+p0M7mKKM56e+YjbszB1XLsazREjR7qvj0M/dMouhva9rhuB
         Fo/H6fpB5WW2frncYGgoOOnQOYopgFv+y9F/Krwmr05KiKGB0N5rS7Pp8fgJGcqcq98s
         R70Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=1HYeqxis+aGi5Y3C5fGaYpoMxSBQvYbGj60inG9Lp0Q=;
        b=UKtG15LX4DV15WQRyfuit0SuZ7X229Bl2Gmw4HeLK28B4/D+nP2VCKLhhoJ/y5ZAEF
         MBz9IMgfbApNh8bH+VlakzrRQX1Ctj1ttU9LMNT1sDZicprd3xzNt2814fL3YBqGv+la
         OVXQtrROf+32XdCHd4i5zBj4K6edlCf0mk+wNZq1NWZX8NO+XLsehDgNwL1zQBwnwhBK
         2h0Kt0XeDh569rL/83Nmzab0eAJ/hqpFw5XZVvQrqaZdcF9SCgVLSCPgQcXZjzM6JY8K
         UnS+6XT1Qa6dXgcBkT5+AiEhsa8FPajNQDEOPl2VC5+7GC770m5VnPAMlaBJ9BYudLXv
         lfww==
X-Gm-Message-State: AOAM531oIHVB0rtVEfG3saw6DmrBzEDz8hu29EVN2MsCIarpTBFNgQOq
	RvDCRVM39kgmSgv/Y+WQ/OMTFX75W3XENN8SGlY=
X-Google-Smtp-Source: ABdhPJxrCWAtRFTzeWA3wDPTU+yLgEqOV5nCxvwhxCLQQTtyp+pDpG8kGkapuOoJuQI5ytx/hjflXZY9uD8eSorvoTI=
X-Received: by 2002:adf:e842:: with SMTP id d2mr31336751wrn.399.1637251877978;
 Thu, 18 Nov 2021 08:11:17 -0800 (PST)
MIME-Version: 1.0
References: <20211117095338.14947-1-roger.pau@citrix.com> <20211117095338.14947-3-roger.pau@citrix.com>
In-Reply-To: <20211117095338.14947-3-roger.pau@citrix.com>
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
Date: Thu, 18 Nov 2021 18:11:07 +0200
Message-ID: <CAPD2p-nb7u7om7zv5-KvfZTsmGis9uGfBkvwjEXrym_+4PN-RQ@mail.gmail.com>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, 
	Alistair Francis <alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Bob Eshleman <bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>, 
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>, 
	Dario Faggioli <dfaggioli@suse.com>, David Scott <dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, 
	Elena Ufimtseva <elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, 
	Ian Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, 
	Josh Whitehead <josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, 
	Julien Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, 
	Kevin Tian <kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Meng Xu <mengxu@cis.upenn.edu>, Nick Rosbrook <rosbrookn@ainfosec.com>, 
	Paul Durrant <paul@xen.org>, Quan Xu <quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>, 
	Ross Lagerwall <ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>, 
	Shriram Rajagopalan <rshriram@cs.ubc.ca>, Stefano Stabellini <sstabellini@kernel.org>, 
	Stewart Hildebrand <stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>, 
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>, 
	Community Manager <community.manager@xenproject.org>
Content-Type: multipart/alternative; boundary="00000000000098463905d11268a2"

--00000000000098463905d11268a2
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 17, 2021 at 11:54 AM Roger Pau Monne <roger.pau@citrix.com>
wrote:

Hi Roger, all

[Sorry for the possible format issues]

Document some of the relevant changes during the 4.16 release cycle,
> likely more entries are missing.
>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  CHANGELOG.md | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index ad1a8c2bc2..8b0bdd9cf0 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](
> https://keepachangelog.com/en/1.0.0/)
>   - qemu-traditional based device models (both, qemu-traditional and
> ioemu-stubdom) will
>     no longer be built per default. In order to be able to use those,
> configure needs to
>     be called with "--enable-qemu-traditional" as parameter.
> + - Fixes for credit2 scheduler stability in corner case conditions.
> + - Ongoing improvements in the hypervisor build system.
> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> + - 32bit PV guests only supported in shim mode.
> + - Improved PVH dom0 debug key handling.
> + - Fix booting on some Intel systems without a PIT (i8254).
>

I would add "Various fixes for OP-TEE mediator (Arm)" here and ...



> +
> +### Added
> + - 32bit Arm builds to the automated tests.
> + - New x86 pagetable APIs.
> + - Arm vPMU support.
>

"Extended regions support, device tree only (Arm)" here.

...
The extended regions are ranges of unused address space exposed to domains
as
"safe to use" for special memory mappings.


[snip]


--=20
Regards,

Oleksandr Tyshchenko

--00000000000098463905d11268a2
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Wed, Nov 17, 2021 at 11:54 AM Roge=
r Pau Monne &lt;<a href=3D"mailto:roger.pau@citrix.com" target=3D"_blank">r=
oger.pau@citrix.com</a>&gt; wrote:<br></div><div dir=3D"ltr" class=3D"gmail=
_attr"><br></div><div dir=3D"ltr" class=3D"gmail_attr">Hi Roger, all<br><br=
>[Sorry for the possible format issues]<br></div><div dir=3D"ltr" class=3D"=
gmail_attr"><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Doc=
ument some of the relevant changes during the 4.16 release cycle,<br>
likely more entries are missing.<br>
<br>
Signed-off-by: Roger Pau Monn=C3=A9 &lt;<a href=3D"mailto:roger.pau@citrix.=
com" target=3D"_blank">roger.pau@citrix.com</a>&gt;<br>
---<br>
=C2=A0CHANGELOG.md | 11 +++++++++++<br>
=C2=A01 file changed, 11 insertions(+)<br>
<br>
diff --git a/CHANGELOG.md b/CHANGELOG.md<br>
index ad1a8c2bc2..8b0bdd9cf0 100644<br>
--- a/CHANGELOG.md<br>
+++ b/CHANGELOG.md<br>
@@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](<a href=3D"htt=
ps://keepachangelog.com/en/1.0.0/" rel=3D"noreferrer" target=3D"_blank">htt=
ps://keepachangelog.com/en/1.0.0/</a>)<br>
=C2=A0 - qemu-traditional based device models (both, qemu-traditional and i=
oemu-stubdom) will<br>
=C2=A0 =C2=A0 no longer be built per default. In order to be able to use th=
ose, configure needs to<br>
=C2=A0 =C2=A0 be called with &quot;--enable-qemu-traditional&quot; as param=
eter.<br>
+ - Fixes for credit2 scheduler stability in corner case conditions.<br>
+ - Ongoing improvements in the hypervisor build system.<br>
+ - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.<br>
+ - 32bit PV guests only supported in shim mode.<br>
+ - Improved PVH dom0 debug key handling.<br>
+ - Fix booting on some Intel systems without a PIT (i8254).<br></blockquot=
e><div>=C2=A0</div><div>I would add &quot;Various fixes for OP-TEE mediator=
 (Arm)&quot; here and ...</div><div><br></div><div>=C2=A0</div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol=
id rgb(204,204,204);padding-left:1ex">
+<br>
+### Added<br>
+ - 32bit Arm builds to the automated tests.<br>
+ - New x86 pagetable APIs.<br>
+ - Arm vPMU support.<br></blockquote><div>=C2=A0</div><div>&quot;Extended =
regions support, device tree only (Arm)&quot; here.</div><div><br></div><di=
v>...</div><div>The extended regions are ranges of unused address space exp=
osed to domains as<br>&quot;safe to use&quot; for special memory mappings.<=
br></div><div><br></div><div><br></div><div>[snip]</div><div>=C2=A0</div></=
div><div><br></div>-- <br><div dir=3D"ltr"><div dir=3D"ltr"><div><div dir=
=3D"ltr"><div><div dir=3D"ltr"><span style=3D"background-color:rgb(255,255,=
255)"><font size=3D"2"><span style=3D"color:rgb(51,51,51);font-family:Arial=
,sans-serif">Regards,</span></font></span></div><div dir=3D"ltr"><br></div>=
<div dir=3D"ltr"><div><span style=3D"background-color:rgb(255,255,255)"><fo=
nt size=3D"2">Oleksandr Tyshchenko</font></span></div></div></div></div></d=
iv></div></div></div>

--00000000000098463905d11268a2--


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 16:45:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 16:45:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227511.393494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnkX7-00057E-7L; Thu, 18 Nov 2021 16:45:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227511.393494; Thu, 18 Nov 2021 16:45:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnkX7-000577-4S; Thu, 18 Nov 2021 16:45:09 +0000
Received: by outflank-mailman (input) for mailman id 227511;
 Thu, 18 Nov 2021 16:45:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nol9=QF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnkX6-000571-0h
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 16:45:08 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e237a675-488e-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 17:45:06 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2051.outbound.protection.outlook.com [104.47.12.51]) (Using
 TLS) by relay.mimecast.com with ESMTP id de-mta-6-kP1dXfuANeS3pthcULgOlA-1;
 Thu, 18 Nov 2021 17:45:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4189.eurprd04.prod.outlook.com (2603:10a6:803:3d::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 16:45:03 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.019; Thu, 18 Nov 2021
 16:45:02 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P189CA0015.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:31f::11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Thu, 18 Nov 2021 16:45:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e237a675-488e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637253905;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=uix2DAhqKeZn61GAOWGgesnFsdoXTIb+1GgSD0sfalE=;
	b=JyqUvGzRzI0dN/yBDKj1iQEoZI5NDaPGJZh0im1EwTrAw4fHK0b+Zc423WBp0AF9+8aiP1
	wmI7BUOklx7jRl7eRELc/xMAScQIvnePZQYgtx8hDkocwibYlFS24LtEstCtGdRwtvJ/L6
	i8NOA8UXxAZDLX1XM4zo2B6IFEFj8Oc=
X-MC-Unique: kP1dXfuANeS3pthcULgOlA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=c4NJVE6Qf4bTXWmFzyy7707CQc+gdb9mLkfAbN4YFnsIIjozkC9pJCCCjvNZjotPvfqn9ADl/wu07BkOqeOQOOFNuUsTYrx5W2DXCqZ6d3g5jiL7WT3HBFBw/p6rs6YaN5e5+2zJPjeoKQx+ffvqDk62xmJ58XFIt31lt7Ab83EGx1ZWAGiBhvF9RikNmMHiV4tRHmMs3ZG/WBgqAXpBKszra6TvG2J3F5lkpLwu/SvBSjFzQQPPQXYJfjrL8XcMCwwc9tN9U1PZGKI/KI5LB6jeQHCRGBEksd5oLW2ZZaco78q8jayK8EKUTbpk4/FVlLw3+j4BbUGAcesnH3PxHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uix2DAhqKeZn61GAOWGgesnFsdoXTIb+1GgSD0sfalE=;
 b=muIdOToVnt8kUqkv+qDmvPO4nc0ecmsOVD/W8vEb6W+lthrHh4XFVnlCzg7qthS0e3YssPxd9TtCRl3rruWaKwzTJwG4R4ob5dAVXRLnj/W2ZMxrMATiqbtTDad4UGetWSgWpHDDgSEgcHzhLwtQW8uG2N/run/A4awiIvtaa35XziLAMz51265/ezYztykEhUbOss99ue457Uamn/B4DShSb4EOPKzvN+4PpEnHqZnIEZ6YMkpFoQevwjpDWaHg8I10G6YtUDIuCSXjQ2i952Lv+gMrAONaGja3sAn/BPuddIVbqeLj1yZg1Wsq2C4E3Yx1rS0OA9rClW+vdFVFXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <217a5684-34af-e08c-2d70-563857ec5595@suse.com>
Date: Thu, 18 Nov 2021 17:45:01 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 10/11] vpci: add initial support for virtual PCI bus
 topology
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-11-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-11-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P189CA0015.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:20b:31f::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e23340d4-d974-4ba9-5a72-08d9aab2c46a
X-MS-TrafficTypeDiagnostic: VI1PR04MB4189:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB418939B2AADFA10721D8256CB39B9@VI1PR04MB4189.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	F1OwBYdV417CZDwoUJML830ACnG/boTl4fCNxN6C+ADhbixuhkG6vYEwVOQ8F6KSBRy4aZuh1knoDJzi9ntOu/A4MDK2dfhaudOAR0eYdr7g8kLx++6wk5As5z/D7zGMhQhXkh8xRFzbKMfoYP2yiMrI44ket3L3ICNL7FatNNH1LacaPa9PlW68xjKvlhftgYEaw1WLW06Z0QAs6Un5maudY7gqfA9gDLbQ127Cm2TcO5/B7Nqc3LKJKGjtlhniyq8WjT3ms+qDmTNzCo8RbCtkmAzAptdY7PnJSP5R1yubzG1pzCSem4PFc06b9Pkv8cs82qDWebxCcPH3h7mhsFS62qCQCMEuOfkOR2h9zxV4+xQuVK7qsTBecpOXCsdCTgVqx85jHEHorFoTWgq5YUCXek5IhRbThPA7D7/FXn6e4CaDO81hc+5VZsfuYIi8tQIE+CmsOFNnRv+XO7BrsTw196zE+j+u/PotxmTs1/U1j3usKH+wxJOVf+l/VabZMITcLH8oatkPb876s6NkGDwq/S88Sna62Fy4PH4G2IS+Ipj8OTqJ2OLV1bdW0rTLWhkGur5qW+VaYVBS1/IJrliHhEfqb3mZ2vZQU4ikK5PskNSsPv8xniwMRxnY+GnLjPQOQVFhDwy3Y7k1zQxID9De5gBj4flYNz3jFu7YKu4FVe0PZHE1fXSW3HAwvnQE7lljF8YpVAVsUZMgbrkMqckxzUHwBWrTFNMfDoFsO1Q=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(26005)(186003)(508600001)(31696002)(66556008)(6486002)(86362001)(31686004)(66946007)(66476007)(5660300002)(38100700002)(956004)(2616005)(36756003)(6916009)(4326008)(53546011)(2906002)(16576012)(8936002)(316002)(7416002)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZWFBS05ObnhWcDRtWGk3SVFTQ1hkZ0ZqdVhCTFpwM2l4QndQSENXVWxqeGkr?=
 =?utf-8?B?cmxOczVEWW9QZ0pORk5DYmZrcnkwS29qN1JGbWdPYUtHdFJwVzNBaGRzTHRU?=
 =?utf-8?B?RTlPVlhNVUVXQkxQeWFxbVdDeGFTQWpYTDNLNlBUbmRQdFlFY09UL0NPbUV6?=
 =?utf-8?B?MTlGRmE1bWxLT1FiOGtSTFBFamRORm1qRTVlZjdma1lLYlFoaml4RVpRVWRI?=
 =?utf-8?B?Mk52UXZkUVc2RFdSOXdWUEQ3dnBlcWM1MVAydCtlMzlHZlc1K0ZJaXhuYnBx?=
 =?utf-8?B?dU1RbDBKb0MvODNjc0FQWkRiWCtmNjZZYjdoUjNrM3FyL0gxNDRYQlhJZ2hN?=
 =?utf-8?B?L2s3UmZ2NngrVVRtOFVGSkJiRHppMzBKOE9wRGRkMStzN2VKMkpMWVhsS1pv?=
 =?utf-8?B?T3BZRHgxSUxsR3lvNEx3SDIwL25JSUNMdVIrOWZyb1NTS0x2NGl6b3lsdUxa?=
 =?utf-8?B?WERiZUkrclJRS1ZmMTBDRmxPSkFJRUJSYXhyQlpFK3k0bHdhclBqalVYNUhB?=
 =?utf-8?B?c0NTU0pOTmc3OWowRCtsVEF2L1o4Y2QyaElzRis3Kzkva1pFSk1ldURSVlN4?=
 =?utf-8?B?TWU4NVltbkNkaGZobjBPNUhrTG82ZzhGa3BJQktBNW9wN1BVeG5EZTZ4Umxp?=
 =?utf-8?B?dzNlUVhWRDJTMEtlVkIxaHNkVkZMbkovbWx5cXRhaWVlcmVCWncrTFh1UUt0?=
 =?utf-8?B?VGlYSkx5NFA2U0c0S3V5MWVKaGVGa21uT3ZYT1E4aWxsN21nbnlQWlFzeSsv?=
 =?utf-8?B?UTgyc0drRi9sb2R1R1FkZFhjQStvVE5hcEc0MnRWdzk4UmgyM0p2ZXVMbjBT?=
 =?utf-8?B?YWZ3dXRNcUE2NlJqNmNER3U5QXNuTStqK1NRRWJrV0xlK01zMWhMbWdXRkJV?=
 =?utf-8?B?TVJnRm5PU1BBMTllN2lWWk5xcEhrcXBiejZZbUVRc042dzNDM2dOOGZyNWJy?=
 =?utf-8?B?dURpSk5obXgxTnRNRFJRai9jbHh6M0xWTjBkaDV2VTlXa3hISXhuV29vUWVv?=
 =?utf-8?B?YnhTUzAxdzYzdlZZWU5xb3dqTmliOUZXbkUvUWUxZE9TTU91QmE2Sk1ZQzJR?=
 =?utf-8?B?dFBCcjQ5QkFHMmFCUCtkUXE0Qy95OTU0VnZQS1Z3UTAwTDUvZVZaNHdSM253?=
 =?utf-8?B?OTE3aHNmSFZoMC9DbFo2NHR4c01hcURaN3p2VG5DUkN5d00vTWwwdWlkeXdx?=
 =?utf-8?B?MC9Ud1kwVWxSOWdMNG1LSFRnc0hHcm4wd2pteWhaTWNwRmZOM0FPSGd5L0sy?=
 =?utf-8?B?MWFKczVrOHdlSm12eXUxcVYxaGd5cDF0dDhWVFJGZng5dk00YUloN0hkd1Qv?=
 =?utf-8?B?OG1PV2o4bUE4a0NJOFROWVR3NjYxS1ZxQlEwcHY5eUtkRUdWcjBSeWhqRlF4?=
 =?utf-8?B?b2xORFl5c21SZUs3bzQ1T2R5UjlYYmExbERvTGkvaHJXOHdIaXNON1BxWUxV?=
 =?utf-8?B?WXk3ZU94ZlRRTFFvbC9nL3R4SDNmSEwxbUJ6TGdKNUdQMTJnL2lYaDZBV05E?=
 =?utf-8?B?ZGt5aVV4Y09ZSlpwWW5lb3B5NWJGOG81OWg0VWJzQ3BmTGJTcndKMm93YUZ5?=
 =?utf-8?B?K2dkdnpDeG05UWRVVUNLOWJSbmNNczR5Z0k5ZGFraTZ3RGZEUFRBMUVrSHBx?=
 =?utf-8?B?UitvNEx2Qm9qNGNBOHY4VFBkYmtoM0QyazJMSGNwaHFGdVJPczlscnp1NFF5?=
 =?utf-8?B?RFloaENiYWNGeTdPVmFkN0g1cWFiY3BoOE9xYkZzalJTTy96OStucW45eEQr?=
 =?utf-8?B?KzJlUnd3ZGJBYWJTZjNjbTRpaDJXSEZQbHRJTVpmYVhnaHVtMWNMamE2aEhZ?=
 =?utf-8?B?SnBIU3JCNjV4aVBOaWc2TGZkV1llVGsrT3Uzb2lBZm81R2ZMZ0EwcmpIWDc3?=
 =?utf-8?B?TWVhcXorNzIzR21XUVdtK25MQU9pcEptZy9JS1BpUldyVzN0aithYmhzbFo5?=
 =?utf-8?B?Y0FZeGp5M29FYmRqaWV2WlVKQkxzYkwrOTV4UXdEL0VFL2NJbGpaNXdHK1Zw?=
 =?utf-8?B?dDZyZUh6VUJZajlTS3paRFI1U2pJcG9FZ0lGWHVDSXQ3YVNRekZWcjZ3T1Z1?=
 =?utf-8?B?ZEhtd3k3OUhSSkxzcmRqK2xuanFWRXo0NWFYYXhmWURKSThIV0IrWnNqTWk5?=
 =?utf-8?B?VVZGZVhHMGIyMUpNbEdWaVpTbWp1YTg2dGFIQmwwNFN1c2t3YWZVRHZndjlI?=
 =?utf-8?Q?C/dlRnNlGrUc5GmgsGn4iyE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e23340d4-d974-4ba9-5a72-08d9aab2c46a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 16:45:02.7429
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9vi4hTKcpPzlvTBCbdA80XdVFdmzboHzrfb9kukw8wdMAOD3MQoCrv61NKHDUFOOxOyqn7wv4vGEn41Ag8d5Xw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4189

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> Since v3:
>  - make use of VPCI_INIT
>  - moved all new code to vpci.c which belongs to it
>  - changed open-coded 31 to PCI_SLOT(~0)
>  - revisited locking: add dedicated vdev list's lock

What is this about? I can't spot any locking in the patch. In particular ...

> @@ -125,6 +128,54 @@ int vpci_add_handlers(struct pci_dev *pdev)
>  }
>  
>  #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> +int vpci_add_virtual_device(struct pci_dev *pdev)
> +{
> +    struct domain *d = pdev->domain;
> +    pci_sbdf_t sbdf;
> +    unsigned long new_dev_number;
> +
> +    /*
> +     * Each PCI bus supports 32 devices/slots at max or up to 256 when
> +     * there are multi-function ones which are not yet supported.
> +     */
> +    if ( pdev->info.is_extfn )
> +    {
> +        gdprintk(XENLOG_ERR, "%pp: only function 0 passthrough supported\n",
> +                 &pdev->sbdf);
> +        return -EOPNOTSUPP;
> +    }
> +
> +    new_dev_number = find_first_zero_bit(&d->vpci_dev_assigned_map,
> +                                         PCI_SLOT(~0) + 1);
> +    if ( new_dev_number > PCI_SLOT(~0) )
> +        return -ENOSPC;
> +
> +    set_bit(new_dev_number, &d->vpci_dev_assigned_map);

... I wonder whether this isn't racy without any locking around it,
and without looping over test_and_set_bit(). Whereas with locking I
think you could just use __set_bit().

> +    /*
> +     * Both segment and bus number are 0:
> +     *  - we emulate a single host bridge for the guest, e.g. segment 0
> +     *  - with bus 0 the virtual devices are seen as embedded
> +     *    endpoints behind the root complex
> +     *
> +     * TODO: add support for multi-function devices.
> +     */
> +    sbdf.sbdf = 0;

I think this would be better expressed as an initializer, making it
clear to the reader that the whole object gets initialized with out
them needing to go check the type (and find that .sbdf covers the
entire object).

> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -145,6 +145,10 @@ struct vpci {
>              struct vpci_arch_msix_entry arch;
>          } entries[];
>      } *msix;
> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> +    /* Virtual SBDF of the device. */
> +    pci_sbdf_t guest_sbdf;

Would vsbdf perhaps be better in line with things like vpci or vcpu
(as well as with the comment here)?

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 17:24:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 17:24:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227516.393506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnl8W-0000hv-2u; Thu, 18 Nov 2021 17:23:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227516.393506; Thu, 18 Nov 2021 17:23:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnl8V-0000ho-W9; Thu, 18 Nov 2021 17:23:47 +0000
Received: by outflank-mailman (input) for mailman id 227516;
 Thu, 18 Nov 2021 17:23:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vl7d=QF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnl8U-0000hi-KK
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 17:23:46 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47744098-4894-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 18:23:44 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 62BAB61154;
 Thu, 18 Nov 2021 17:23:41 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47744098-4894-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637256223;
	bh=b2MdE1ve3OgEDaRSFm5dZpvr8LY3cY+agcRnQy7nBBs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WiSy34G+B40fcbatlVn5VBPxiz/zth6XmhKxZqUPAtkeRdOO/18E8TpkFVfYboS10
	 dVa3XcKc6OrK1iQm+Ad2TRcQzyIoqgSNGB4SdwNBFB4W4uGPW5SAdIpBs9+SHr8LgL
	 N9NMJEtikNX0J+trPgqipNLcSv7NlkRINV6TPkPvXhW+eXOOGywzBLd7bpUPGNuRl2
	 jqE/FF04Erq+BRJTgyodLsAcCnThxhPIS3oa5iuxOVh2kQbVOZ8ahWZieHkYEAlBWd
	 vU2bN4I4xUjMkg2Q/wToVLelr5BfaT62+fJzKRVfo72IEx2B+875cX++d4g3dcfM3C
	 CJGAJW4+hIT9Q==
Date: Thu, 18 Nov 2021 09:23:40 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Roger Pau Monne <roger.pau@citrix.com>
cc: xen-devel@lists.xenproject.org, 
    Alistair Francis <alistair.francis@wdc.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@citrix.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Bob Eshleman <bobbyeshleman@gmail.com>, 
    Christian Lindig <christian.lindig@citrix.com>, 
    Christopher Clark <christopher.w.clark@gmail.com>, 
    Daniel De Graaf <dgdegra@tycho.nsa.gov>, 
    Dario Faggioli <dfaggioli@suse.com>, David Scott <dave@recoil.org>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Elena Ufimtseva <elena.ufimtseva@oracle.com>, 
    George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, 
    Jan Beulich <jbeulich@suse.com>, 
    Josh Whitehead <josh.whitehead@dornerworks.com>, 
    Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>, 
    Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>, 
    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, 
    =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
    Meng Xu <mengxu@cis.upenn.edu>, Nick Rosbrook <rosbrookn@ainfosec.com>, 
    Paul Durrant <paul@xen.org>, Quan Xu <quan.xu0@gmail.com>, 
    Rahul Singh <rahul.singh@arm.com>, 
    Ross Lagerwall <ross.lagerwall@citrix.com>, 
    Samuel Thibault <samuel.thibault@ens-lyon.org>, 
    Shriram Rajagopalan <rshriram@cs.ubc.ca>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Stewart Hildebrand <stewart.hildebrand@dornerworks.com>, 
    Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>, 
    Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>, 
    Community Manager <community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
In-Reply-To: <20211117095338.14947-3-roger.pau@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2111180920500.1412361@ubuntu-linux-20-04-desktop>
References: <20211117095338.14947-1-roger.pau@citrix.com> <20211117095338.14947-3-roger.pau@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-2090811883-1637256222=:1412361"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-2090811883-1637256222=:1412361
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 17 Nov 2021, Roger Pau Monne wrote:
> Document some of the relevant changes during the 4.16 release cycle,
> likely more entries are missing.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
>  CHANGELOG.md | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index ad1a8c2bc2..8b0bdd9cf0 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
>     no longer be built per default. In order to be able to use those, configure needs to
>     be called with "--enable-qemu-traditional" as parameter.
> + - Fixes for credit2 scheduler stability in corner case conditions.
> + - Ongoing improvements in the hypervisor build system.
> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> + - 32bit PV guests only supported in shim mode.
> + - Improved PVH dom0 debug key handling.
> + - Fix booting on some Intel systems without a PIT (i8254).
> +
> +### Added
> + - 32bit Arm builds to the automated tests.

I think you can expand this:

- greatly improved gitlab-ci based automated tests:
    - 32-bit Arm builds
    - x86 full system tests

Or with single lines only:

- 32bit Arm builds to the gitlab-ci automated tests
- x86 full system tests to the gitlab-ci automated tests
--8323329-2090811883-1637256222=:1412361--


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 17:27:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 17:27:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227521.393517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlCD-0001Lr-JE; Thu, 18 Nov 2021 17:27:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227521.393517; Thu, 18 Nov 2021 17:27:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlCD-0001Lk-Fz; Thu, 18 Nov 2021 17:27:37 +0000
Received: by outflank-mailman (input) for mailman id 227521;
 Thu, 18 Nov 2021 17:27:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vl7d=QF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnlCC-0001Le-Jt
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 17:27:36 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cfea917c-4894-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 18:27:35 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 5837361A07;
 Thu, 18 Nov 2021 17:27:31 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cfea917c-4894-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637256451;
	bh=PW38kg3BZZd7xGv9RgVmm4GIDeNB2VIec0bkVy2Ud2M=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=iJLxsAkIDLJNH1IrFS0aPRZObP3VJYolJE36JTO7oUEW4giVLAZkPbBeWOs1So00I
	 p/cBPLuiDBu7ya1qqA3auchwGKNjD9vF1dEv1nnoTctjv583bo0xxHt8hhOvU/M/m7
	 k7IaaDTNL55vL3WP2k9V5P+zlUc2wBztnF4Azsq0kPI2KUeA5ZcycVRa62oOfIZVzU
	 H6qTI7m0ZgQfDTlClJFaUMd2GnltQQOkcP6rSZnsI9yUSE/Yl5mxahgGta16WWawHL
	 l3CpL+aVV5UqHTQhByh25MXSQGRRP8AEHoNtDp9VwQSZlmnl2r8MiEDFryxSh++jfE
	 FX4AuKPRxyvdQ==
Date: Thu, 18 Nov 2021 09:27:29 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Juergen Gross <jgross@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Luca Fancellu <Luca.Fancellu@arm.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    George Dunlap <george.dunlap@citrix.com>, 
    Dario Faggioli <dfaggioli@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
In-Reply-To: <59e14393-a1fc-5b82-2f6e-5567f218cb3a@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111180925240.1412361@ubuntu-linux-20-04-desktop>
References: <20211117095711.26596-1-luca.fancellu@arm.com> <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org> <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com> <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org> <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
 <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org> <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop> <59e14393-a1fc-5b82-2f6e-5567f218cb3a@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

I like all your suggestions below!


On Thu, 18 Nov 2021, Juergen Gross wrote:
> On 18.11.21 03:19, Stefano Stabellini wrote:
> > On Wed, 17 Nov 2021, Julien Grall wrote:
> > > > > > > On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
> > > > > > > 
> > > > > > > Hi Luca,
> > > > > > > 
> > > > > > > On 17/11/2021 09:57, Luca Fancellu wrote:
> > > > > > > > Currently Xen creates a default cpupool0 that contains all the
> > > > > > > > cpu
> > > > > > > > brought up
> > > > > > > > during boot and it assumes that the platform has only one kind
> > > > > > > > of
> > > > > > > > CPU.
> > > > > > > > This assumption does not hold on big.LITTLE platform, but
> > > > > > > > putting
> > > > > > > > different
> > > > > > > > type of CPU in the same cpupool can result in instability and
> > > > > > > > security issues
> > > > > > > > for the domains running on the pool.
> > > > > > > 
> > > > > > > I agree that you can't move a LITTLE vCPU to a big pCPU.
> > > > > > > However...
> > > > > > > 
> > > > > > > > For this reason this serie introduces an architecture specific
> > > > > > > > way
> > > > > > > > to create
> > > > > > > > different cpupool at boot time, this is particularly useful on
> > > > > > > > ARM
> > > > > > > > big.LITTLE
> > > > > > > > platform where there might be the need to have different
> > > > > > > > cpupools
> > > > > > > > for each type
> > > > > > > > of core, but also systems using NUMA can have different cpu pool
> > > > > > > > for
> > > > > > > > each node.
> > > > > > > 
> > > > > > > ... from my understanding, all the vCPUs of a domain have to be in
> > > > > > > the
> > > > > > > same cpupool. So with this approach it is not possible:
> > > > > > >     1) to have a mix of LITTLE and big vCPUs in the domain
> > > > > > >     2) to create a domain spanning across two NUMA nodes
> > > > > > > 
> > > > > > > So I think we need to make sure that any solutions we go through
> > > > > > > will
> > > > > > > not prevent us to implement those setups.
> > > > > > The point of this patch is to make all cores available without
> > > > > > breaking
> > > > > > the current behaviour of existing system.
> > > > > 
> > > > > I might be missing some context here. By breaking current behavior, do
> > > > > you
> > > > > mean user that may want to add "hmp-unsafe" on the command line?
> > > > 
> > > > Right, with hmp-unsafe the behaviour is now the same as without, only
> > > > extra
> > > > cores are parked in other cpupools.
> > > > 
> > > > So you have a point in fact that behaviour is changed for someone who
> > > > was
> > > > using hmp-unsafe before if this is activated.
> > > > The command line argument suggested by Jurgen definitely makes sense
> > > > here.
> > > > 
> > > > We could instead do the following:
> > > > - when this is activated in the configuration, boot all cores and park
> > > > them
> > > > in different pools (depending on command line argument). Current
> > > > behaviour
> > > > not change if other pools are not used (but more cores will be on in
> > > > xen)
> > > 
> > >  From my understanding, it is possible to move a pCPU in/out a pool
> > > afterwards.
> > > So the security concern with big.LITTLE is still present, even though it
> > > would
> > > be difficult to hit it.
> > 
> > As far as I know moving a pCPU in/out of a pool is something that cannot
> > happen automatically: it requires manual intervention to the user and it
> > is uncommon. We could print a warning or simply return error to prevent
> > the action from happening. Or something like:
> > 
> > "This action might result in memory corruptions and invalid behavior. Do
> > you want to continue? [Y/N]
> 
> This should only be rejected if the source and target pool are not
> compatible. So a cpupool could be attributed to allow only specific
> cpus (and maybe domains?) in it.

Yes you are right.


> Otherwise it would be impossible to create new cpupools after boot on
> such a system and populating them with cpus.
>
> > > I am also concerned that it would be more difficult to detect any
> > > misconfiguration. So I think this option would still need to be turned on
> > > only
> > > if hmp-unsafe are the new command line one are both on.
> > > 
> > > If we want to enable it without hmp-unsafe on, we would need to at least
> > > lock
> > > the pools.
> > 
> > Locking the pools is a good idea.
> 
> This would be another option, yes.
> 
> > My preference is not to tie this feature to the hmp-unsafe command line,
> > more on this below.
> 
> I agree.
> 
> > > > - when hmp-unsafe is on, this feature will be turned of (if activated in
> > > > configuration) and all cores would be added in the same pool.
> > > > 
> > > > What do you think ?
> > > 
> > > I am split. On one hand, this is making easier for someone to try
> > > big.LITTLE
> > > as you don't have manually pin vCPUs. On the other hand, this is handling
> > > a
> > > single use-case and you would need to use hmp-unsafe and pinning if you
> > > want
> > > to get more exotic setup (e.g. a domain with big.LITTLE).
> > > 
> > > Another possible solution is to pin dom0 vCPUs (AFAIK they are just sticky
> > > by
> > > default) and then create the pools from dom0 userspace. My assumption is
> > > for
> > > dom0less we would want to use pinning instead.
> > > 
> > > That said I would like to hear from Xilinx and EPAM as, IIRC, they are
> > > already
> > > using hmp-unsafe in production.
> > 
> > This discussion has been very interesting, it is cool to hear new ideas
> > like this one. I have a couple of thoughts to share.
> > 
> > First I think that the ability of creating cpupools at boot time is
> > super important. It goes way beyond big.LITTLE. It would be incredibly
> > useful to separate real-time (sched=null) and non-real-time
> > (sched=credit2) workloads. I think it will only become more important
> > going forward so I'd love to see an option to configure cpupools that
> > works for dom0less. It could be based on device tree properties rather
> > than kconfig options.
> 
> I think device tree AND command line option should be possible (think of
> x86 here).

Sure


> > It is true that if we had the devicetree-based cpupool configuration I
> > mentioned, then somebody could use it to create cpupools matching
> > big.LITTLE. So "in theory" it solves the problem. However, I think that
> > for big.LITTLE it would be suboptimal. For big.LITTLE it would be best
> > if Xen configured the cpupools automatically rather than based on the
> > device tree configuration. That way, it is going to work automatically
> > without extra steps even in the simplest Xen setups.
> > 
> > So I think that it is a good idea to have a command line option (better
> > than a kconfig option) to trigger the MIDR-based cpupool creation at
> > boot time. The option could be called midr-cpupools=on/off or
> > hw-cpupools=on/off for example.
> 
> I'd rather go for:
> 
> cpupools=<options>
> 
> With e.g. <options>:
> 
> - "auto-midr": split system into cpupools based on MIDR
> - "auto-numa": split system into cpupools based on NUMA nodes
> - "cpus=<list of cpus>[,sched=<scheduler>]
> 
> This would be rather flexible without adding more and more options
> doing similar things. Other sub-options could be added rather easily.

I like this


> > In terms of whether it should be the default or not, I don't feel
> > strongly about it. Unfortunately we (Xilinx) rely on a number of
> > non-default options already so we are already in the situation where we
> > have to be extra-careful at the options passed. I don't think that
> > adding one more would make a significant difference either way.
> > 
> > 
> > But my preference is *not* to tie the new command line option with
> > hmp-unsafe because if you use midr-cpupools and don't mess with the
> > pools then it is actually safe. We could even lock the cpupools like
> > Julien suggested or warn/return error on changing the cpupools. In this
> > scenario, it would be detrimental to also pass hmp-unsafe: it would
> > allow actually unsafe configurations that the user wanted to avoid by
> > using midr-cpupools. It would end up disabling checks we could put in
> > place to make midr-cpupools safer.
> > 
> > So in short I think it should be:
> > 
> > - midr-cpupools alone
> > cpupools created at boot, warning/errors on changing cpupools
> > 
> > - midr-cpupools + hmp-unsafe
> > cpupools created at boot, changing cpupools is allowed (we could still
> > warn but no errors)
> 
> I'd rather add an explicit ",locked" option to above cpupools parameter.

yeah that's better

 
> > 
> > - hmp-unsafe alone
> > same as today with hmp-unsafe
> > 
> > 
> > For the default as I said I don't have a strong preference. I think
> > midr-cpupools could be "on" be default.
> > 
> 
> What about making this a Kconfig option?

Could also be a good idea


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 17:34:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 17:34:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227527.393528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlIN-0002n0-Df; Thu, 18 Nov 2021 17:33:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227527.393528; Thu, 18 Nov 2021 17:33:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlIN-0002mt-Ai; Thu, 18 Nov 2021 17:33:59 +0000
Received: by outflank-mailman (input) for mailman id 227527;
 Thu, 18 Nov 2021 17:33:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnlIL-0002mn-NF
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 17:33:57 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4575274-4895-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 18:33:56 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:37398)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnlIJ-000s69-nB (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 18 Nov 2021 17:33:55 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 14DFF1FD7A;
 Thu, 18 Nov 2021 17:33:55 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4575274-4895-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <a5d2e394-cc86-0ddb-8e61-5ee0024c98e8@srcf.net>
Date: Thu, 18 Nov 2021 17:33:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 5/5] x86/ioapic: Drop function pointers from
 __ioapic_{read,write}_entry()
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211111175740.23480-1-andrew.cooper3@citrix.com>
 <20211111175740.23480-6-andrew.cooper3@citrix.com>
 <e220b6f2-3cb9-e7b0-6b74-4b266e4e7fb6@suse.com>
 <6935bdd8-6b4a-80f6-d134-768dc0d37abe@srcf.net>
 <e16c1767-0e3b-4bac-b07d-05fe6944ae5f@suse.com>
 <854eea65-1450-a764-638b-2781b463f8e7@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <854eea65-1450-a764-638b-2781b463f8e7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/11/2021 09:07, Jan Beulich wrote:
> On 18.11.2021 10:06, Jan Beulich wrote:
>> On 18.11.2021 01:32, Andrew Cooper wrote:
>>> On 12/11/2021 10:43, Jan Beulich wrote:
>>>> On 11.11.2021 18:57, Andrew Cooper wrote:
>>>>> Function pointers are expensive, and the raw parameter is a constant from all
>>>>> callers, meaning that it predicts very well with local branch history.
>>>> The code change is fine, but I'm having trouble with "all" here: Both
>>>> functions aren't even static, so while callers in io_apic.c may
>>>> benefit (perhaps with the exception of ioapic_{read,write}_entry(),
>>>> depending on whether the compiler views inlining them as warranted),
>>>> I'm in no way convinced this extends to the callers in VT-d code.
>>>>
>>>> Further ISTR clang being quite a bit less aggressive about inlining,
>>>> so the effects might not be quite as good there even for the call
>>>> sites in io_apic.c.
>>>>
>>>> Can you clarify this for me please?
>>> The way the compiler lays out the code is unrelated to why this form is 
>>> an improvement.
>>>
>>> Branch history is a function of "the $N most recently taken branches".  
>>> This is because "how you got here" is typically relevant to "where you 
>>> should go next".
>>>
>>> Trivial schemes maintain a shift register of taken / not-taken results.  
>>> Less trivial schemes maintain a rolling hash of (src addr, dst addr) 
>>> tuples of all taken branches (direct and indirect).  In both cases, the 
>>> instantaneous branch history is an input into the final prediction, and 
>>> is commonly used to select which saturating counter (or bank of 
>>> counters) is used.
>>>
>>> Consider something like
>>>
>>> while ( cond )
>>> {
>>>      memcpy(dst1, src1, 64);
>>>      memcpy(dst2, src2, 7);
>>> }
>>>
>>> Here, the conditional jump inside memcpy() coping with the tail of the 
>>> copy flips result 50% of the time, which is fiendish to predict for.
>>>
>>> However, because the branch history differs (by memcpy()'s return 
>>> address which was accumulated by the call instruction), the predictor 
>>> can actually use two different taken/not-taken counters for the two 
>>> different "instances" if the tail jump.  After a few iterations to warm 
>>> up, the predictor will get every jump perfect despite the fact that 
>>> memcpy() is a library call and the branches would otherwise alias.
>>>
>>>
>>> Bringing it back to the code in question.  The "raw" parameter is an 
>>> explicit true or false at the top of all call paths leading into these 
>>> functions.  Therefore, an individual branch history has a high 
>>> correlation with said true or false, irrespective of the absolute code 
>>> layout.  As a consequence, the correct result of the prediction is 
>>> highly correlated with the branch history, and it will predict 
>>> perfectly[1] after a few times the path has been used.
>> Thanks a lot for the explanation. May I suggest to make this less
>> ambiguous in the description, e.g. by saying "the raw parameter is a
>> constant at the root of all call trees"?

Done.

> Oh, forgot to say that then:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 17:34:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 17:34:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227528.393539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlIa-00037Y-Lh; Thu, 18 Nov 2021 17:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227528.393539; Thu, 18 Nov 2021 17:34:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlIa-00037P-IH; Thu, 18 Nov 2021 17:34:12 +0000
Received: by outflank-mailman (input) for mailman id 227528;
 Thu, 18 Nov 2021 17:34:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=45Id=QF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnlIZ-00036X-7C
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 17:34:11 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb502b4f-4895-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 18:34:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb502b4f-4895-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637256849;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=ofiiQ1b0AutdvAbJN1H6ZKE46X5b6tcsRdTu9Qzuw3Y=;
  b=NaWJwv+zNieI8Xz1QXoreLb/Z+DdDbuv6hpNlGsGLD+FJjDHixxZ1kbs
   vQFwd8MIjHvvyf8nxiHfCP2mtmyy/QLC1EJ4UXKNUDQyJftvjS6uv7644
   IVbZAiyjiXYLgBAR6dGwISjy1AUz1b0sQWnV2rtPkfmBdEmyoWrffmoTm
   Q=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: tpaCmMDIXPAUSobx2PmNqpprz6SnliC8URUbAa7aRpABqL50NeN5d7B/AYhiwORTBPKqSnD84Y
 8rYBlhfDYGd3Tc2vDHKUkzmrRvhvRw4kfQWHYIv1CTwM+T8uOLAAZoqHcmMAoOrKMZRtIyPWJC
 xXRRxse3FjjLSVbkVM7fdF4Uw7i1yuPJZRRGtT7TK71RNvgAzc7jnsPkFMEYekk6wb3/cRfaf5
 2lhbMrOMlrGtplC/ifa8VVKOJxLFTQ2u+501eDDoqNjyUd09u3QWWPIl01d1wATQG1ORjCKBgO
 zvzO6wpBb4/s4oiZkpACd4ZJ
X-SBRS: 5.1
X-MesageID: 60140559
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:VmK9daq6v9NYUE6FwdcvIsDEP2NeBmIoYRIvgKrLsJaIsI4StFCzt
 garIBnSa/jeYWL0fd9+PYqzo0pXvpWHzN8xSFc/qS5hRX8XoJuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IHpW1jlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnb2dZQgmO5eVos0MUR1WFDxUZJZq+YaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFJkYtXx6iynQEN4tQIzZQrWM7thdtNs1rp4WRKqGO
 pdIAdZpRDXJTx1oNkgHNMIjuuu0o3TAVwFo62vA8MLb5ECMlVcsgdABKuH9YceWTM9YmkKZo
 GPu/GnjBBwectuFxlKt6W6hmebVgWX7WYYeGbei//hmqFGU3GoeEgIRT1ig5/K+jyaWV9tBJ
 mQO9yEprKx081akJvHnRB2ioWSNuzYXQJxNGeZ84wjl4rTT5wGVF20VVAlLYdYttNI1bTEy3
 1rPlNTsbRRsvaOUTzSB976ShTK0JSURa2QFYEcsUQIA6sLLvII3gxTAX9tnVqWyi7XdBTD16
 yCHqm45nbp7pdUC0ri2+RbbgzOmr4XNUiY44B6SWnOi6EV+foHNT4+v70LS4bBfLYKaZl6bt
 XMAlo6V6+VmJZSEjimEWugONLCv+feeMTfYjEJvHp8u7DCk8TioeoU4yDp5IUJ0NMcYaHnsa
 Unatg5LzI9eOmOwaq16aJ73DN4lpYD6HNT4UrbPb9xBYrB4bgrB9yZrDWaI1n3puFghl+c4I
 5jzWd+xBHBcGbk/5DWzTuYZl7Qsw0gWwG7VSoDm5x+myvyDfHOTT/EIPEbmRvo+96mepwLW9
 f5WNs2EzA5SW6v1ZSy/2YMXIFYDa2U1BJXqsMFJf8aEOANtHGxnAPjUqZsgZI5Nj6lTjv3P/
 Hy2Rglf0lWXrXHJIAqFa3dnaZv0QI1y63k8OEQENl+y138uSY2m9qsYet08erxP3O5s1/lvV
 NEeZt6NRP9IT1zv/DAQboLhvZdiXBuujAOKeSGiZVAXfZRtWgjI8d/MZRb0+W8FCS/fnck5u
 L3myQPaXZcDSg1uJMrRcvSi1Uy2p3sG3ul1WiPgPd17aEjqto9wJETZnvIxZs0BNxjH7j+bz
 BqNRwcVo/HXpI04+8WPgrqLx6+gF+plAkNbBS/V97+wPijB1nWvyslLV+PgVTLAUiXy8aarZ
 +RQxtn9NuEKmBBBtI8UO7R2yaMz4fP/qrkcyR5rdF3Ab06qEa9nOnmLx49Q8KZJz6VakQSzU
 0OLvNJdPN2hNMzpHVELLSI5f++D0rcSgTCU4vMrSG3w6TVr5rOBXQNXNgOVlS1GBLJvNcUux
 uJJkMQR4QauhwEqNtuDhyZ8+GGFL3hGWKIi3qz2G6ey1FBtkAsbJ8WBVGmmu/ljdumgLGELD
 xObi6/43o5110jGfX0uPyH28etk0MFmVA9x8HcOIFGAm9zgj/Ax3QFM/Tlfcjm53imrwMooZ
 DE1ahQdybGmum4x2ZMdBzzE9xRpXUXBoiTMJ001eHo1pqVCfkjENyUDNOmE5yj1GEoML2EAr
 Nl0JIsIOAsGnf0dPANuCSaJSNS5FLSdEzEufuj9Q6xp+LFgP1LYbleGPzZglvceKZpZaLf7j
 edr5v1sTqbwKDQdpaY2Y6HDi+9PEU/YeTASHKE7lE/sIY06UGvusdRpAxrvEv6h2tSQqRPoY
 yCQDpwnu+uCONam8WlAWP9kz05cl/81/tsSEo4H1kZd24ZzWgFB6cqKngCn3TdDa4w3za4Vd
 9OAHxrfQzf4rSYFxAfwQDxsZzPQjS8sP1angohYMYwhSvo+jQ2bWR1oj+bv4SzKaFAPEtD9l
 FqrWpI6BtdKkOxEt4DtDr9CF0OzL9byX/6P6we9r5JFatanDCsEn1p9RoDPM1sEML0Pdc5wk
 LjR4tf70Fmc5OQ9UnzDmonHHK5MvJ3gUO1SO8PxDX9bgSrdB5O8v0pdozi1ec5TjddQxsi7X
 A/kOsG+QsEYBoVGz3pPZikATxtEU/brbr3trD+WpuiXDkRPyhTOKd6qrCe7bWxSeiISFYf5D
 wv456Sn6txC9dweDx4YHfB2RZR/JQa7C6chctTwsxieD3Wp3Qze6uezy0J45GiSWHeeEcv87
 ZbUfTTEdUy/6PPS0dVUk41upRlLXnxztvY9IxAG8NlshjHkUGNfdbYBMY8LA41/mzDp0M2qf
 ynEaWYvBHmvXTlAdhmgst3vUh3GW74LM9b9YDco41mVe2G9A4bZWOlt8SJp4nFXfDr/zb74d
 YFCqyOoZhXhkIt0Qesz5+CghbY1z/zX8XsE5EThnpGgGB0ZG7gLiCRsEQclufYryC0ReJEn/
 VQIeF0=
IronPort-HdrOrdr: A9a23:Wgpq7qskyG+fxEsoaeXXKjK67skC5YMji2hC6mlwRA09TyXGra
 6TdaUguiMc1gx8ZJhBo7C90KnpewK7yXdQ2/htAV7EZnibhILIFvAZ0WKG+Vzd8kLFh4tgPM
 tbAsxD4ZjLfCdHZKXBkXmF+rQbsaG6GcmT7I+0pRodLnAJGtJdBkVCe32m+yVNNXh77PECZe
 OhD6R81l2dkSN9VLXEOpBJZZmOmzWN/6iWFiIuNloC0k2jnDmo4Ln1H1yx2QofaSpGxfMH/X
 LemwL0y62/u7XjoyWsmVP73tBzop/M29FDDMuDhow8LSjtsB+hYMBEV6eZtD44jemz4BIBkc
 XKoT0nI8NvgkmhMV2dkF/I4U3NwTwu43jtxRuxhmbim9XwQHYAB89IletiA1DkwntlmOs5/L
 NA3mqfuZYSJwjHhj7B69/BUAwvvlaooFI5+NRjzEB3YM87Uvt8vIYf9ERaHNMrByTh8r0qF+
 FoEYX1+OtWS1WHdHrU11MfgOBEZk5DWytuf3Jy/vB8i1Nt7TdEJgojtY0id047hdAAo8Iu3Z
 WDDkxq/Is+BvP+I5gNXdvpevHHf1Aldyi8eV56EW6XZp3vBEi936IfwI9Frt1CK6Z4gafbpv
 z6ISVlXCgJChrTNfE=
X-IronPort-AV: E=Sophos;i="5.87,245,1631592000"; 
   d="scan'208";a="60140559"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Qu7lYGmCpjsTDMaboJItFhenogwBLMJEuZkQL2SydfnF2Rmky0gB3UNn27fIFGONpBGU4abVTH8I9bLdF1/Qz9tkE0Kvmzxh4pZLrccDz3uX6NgXmm5Uel/+HW+M/2Fiu8nElOfp+X7JYtZnw2EVA1QU7BVLSrGNINwJX8dcDk7NftW95RorC0HEwIqdWRrlFdezn4t8wjLfF3tOBARcdSWLKvnX8wXi3kHR12G55J6dG3rlUzY3wGDTGCSXwjTuJx1AeTmLHg9rHXgD4RSodqRK9FsAgWAxuK4R3YsAVOJ1v80yCSRqOLplV5gl2Ga1a1kX5MBuXGGTvCZy9QLDmA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9SYIj9X8nhBqniQWZySJ54EN0c1FgMTBGuAkN9AEhAw=;
 b=YSsgWel9x24Wcq0sqjeUSXMbvYYOCSmYCRl3c/ZDrx7l+l0FLJxH9+EIgcZ8/Helkd2UHOudspICH+vjMfyRcFnrGmCt300WmVj/+cON9Ds0AgVPe63yqTeb6rYqMl7+uLcXROt/ml7dzYpuvTAEJa3nxiMBqOP9j6v5iPjMa0QgHFm2FYOR46lcsj3AhsZP2JyuqbaAAxhVUHBR1DYumAbV3BK/S/tnHdjKAfyPH36ie+ARLyQK0+aQmv+ByYaKPSFL3R+5KP8ErMYWVih8QxzpZNMWF6rOq/2fi+wLVD7SNI9BhBfZwJMvTW4N3SEmSAAys914OaIxPDjrnwqFqQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9SYIj9X8nhBqniQWZySJ54EN0c1FgMTBGuAkN9AEhAw=;
 b=RyRh0Syh/g9tvUnJNwqDNcMN3ei/uCUALMUT9RhfN6gzCUgp9HYqy267zeMO28MLGJQRJHZgangZaMc0DqpjOTfqAA58H5JhIFWumfS7KYvkIXRekdqYA96Vq99iu8vCdEtxWx7ChX/QmKo61qNMNLaIYDMWf7xaQTTgNlIvu8I=
Date: Thu, 18 Nov 2021 18:33:52 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Bob Eshleman <bobbyeshleman@gmail.com>,
	"Christian Lindig" <christian.lindig@citrix.com>, Christopher Clark
	<christopher.w.clark@gmail.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>,
	Dario Faggioli <dfaggioli@suse.com>, David Scott <dave@recoil.org>, "Doug
 Goldstein" <cardoe@cardoe.com>, Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, "Julien
 Grall" <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Marek
 =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	"Meng Xu" <mengxu@cis.upenn.edu>, Nick Rosbrook <rosbrookn@ainfosec.com>,
	"Paul Durrant" <paul@xen.org>, Quan Xu <quan.xu0@gmail.com>, Rahul Singh
	<rahul.singh@arm.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, "Samuel
 Thibault" <samuel.thibault@ens-lyon.org>, Shriram Rajagopalan
	<rshriram@cs.ubc.ca>, Stefano Stabellini <sstabellini@kernel.org>, "Stewart
 Hildebrand" <stewart.hildebrand@dornerworks.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Tim Deegan <tim@xen.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Message-ID: <YZaOgGWfbDkIq4Lq@Air-de-Roger>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <CAPD2p-nb7u7om7zv5-KvfZTsmGis9uGfBkvwjEXrym_+4PN-RQ@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAPD2p-nb7u7om7zv5-KvfZTsmGis9uGfBkvwjEXrym_+4PN-RQ@mail.gmail.com>
X-ClientProxiedBy: MR2P264CA0011.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::23) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 01a2bca1-da3c-43bc-f11d-08d9aab999eb
X-MS-TrafficTypeDiagnostic: DM5PR03MB2921:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM5PR03MB2921FD79F672030205875EB08F9B9@DM5PR03MB2921.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: KXCVnSbcBMQBa8MxAug4TjYc0929K96ixe5hgyC/Y94Ec3XjzSFmqbe4XL3T3QfbwcwgiWrPoDkHCd40xYHd2QePsWhuQjxnDz5oZzg3u+Pfiwm+7klSJWNSUBR/+z+Nj+b2PbVxwc0ybrGUVzD06chZprz+4l4WKE+6AdGmqXEbVoM98DV5fhOd4Ziw2DJBMzLAjsc6s0/q3j/bDM3xrZeCe0yR+rmkflTQMMqTWJ7bdZClv6RsmFyGiddmMVXTpQExIMDQKFoXhrnHn6dS5uAeDhvXcNZHkwntw//GzUu40BRw20Uk7wmstQq2vlAxG63FnmoJBvVIWM5VHCA30gi8b2ev5csmhD984bZtaj2r+Yq5fRsgCmMOEL32N7/R/i1ZaZtr6iOUJYFqk2hDtqrWEtK/Ssf75QZBkQScEPslzMkB8jL2OOdm65qjp3ouLIupS1CYnBfaeRe7/rh/HpAt8NQkyr0y/4wujCo8mIAGd/LiMacKRJC85AgilpVlIjJm7BqtXaszHldl1vWYRiUVG4uXcf2t6IpKwZFVza6CsF4qF4K+QkhSsZPeDpsE6ecjdz1nNlfsGep9cvDMA0c8VNsf4P82q5FHqRjBDfoJk3sK1mYnTPsTw0rrsfM0nEhFK+DAkEB4QIlIQoxlb/hD8elnMVNZRN10lLgDJEG4RAt8g+QM9xhy6js49GbqU1M5o8O/6glYsqjSGAq6LsMo/ub97O4o58q78JUQ/ySq83XqVRxh2PA6/mdUCY4tU9S2C8lewfxJG3lnfd3PLqgbwtlMwC4U6Kj9m4jxXEcXLY9B82HbboX8R7JK486GDgx1PL15Q7YVs5miPboFfw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(956004)(6486002)(186003)(86362001)(26005)(6496006)(66946007)(82960400001)(33716001)(83380400001)(4326008)(966005)(2906002)(38100700002)(85182001)(9686003)(66556008)(66476007)(8676002)(54906003)(5660300002)(7406005)(8936002)(316002)(6666004)(6916009)(53546011)(7416002)(508600001)(59356011)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bWpnRUFaU0l5ZmlCQXdiNndxSUg3YlNraVRPYXN0MWhrL1JJSlhyMWJkeEYw?=
 =?utf-8?B?TXhvYnBHQTlrVGxoeU1nZW9LV3B6cGhUYlArMDFDcktacExpQllIYjVtU3BC?=
 =?utf-8?B?R2U5WDhiakFoTFBYRnlvb3orWUU4eXFFNDlGS2N3WEZQdnVSNlVaUm9pRU1O?=
 =?utf-8?B?a1NhOXRyVWloQVN3MkluNkt0OGFmS0hTWU1RUWMxTkJnd1VlNzdMc3ZIMmor?=
 =?utf-8?B?cU1SZkp1UWJJMm5TeHVJbXcyVXJuZXowemN3cFR5aGpraG9TcHFTTnJGTHRw?=
 =?utf-8?B?SmdaTE80UVFWTkdxMkNyanB0ZDVEWkZDSEJ6b1ZGZVZrNzhUNFZHZXEyRTFq?=
 =?utf-8?B?SytkWFZEUjczVGtYM0RHZjV0TG9VL1Nkak9hWHNJWGdHNWtYUHVKTkY4UnVx?=
 =?utf-8?B?R1hPelBYa2RVMk15ZU5Lc1VkczZtOExpSzl2ZXZGTFk2cUJQTE1DLzU2VjVY?=
 =?utf-8?B?SmRwRURuRHhndm1EZXZRcDlrTmp0WkRSdnBZVEhwT21XVWM0YmdUZVY5am01?=
 =?utf-8?B?dEFaVTNUcWZ0OUR6UW5DVldjUFROV0JDRU0zNGhoZVhHcnk3REhLRmhpVSs1?=
 =?utf-8?B?ZG5nL0IvSjMrTHgwanVqSEJKcTErOERlajVZT1Y5U1ozVFNmdnBFUGxNV0FO?=
 =?utf-8?B?V0Y2eDVFM2tDM1ZwSml3ekxxTEhBdjZXRTBOc0RSWXM2NkVkdi94cGlOcmph?=
 =?utf-8?B?ZjR1aDl5dHhHMk5SdHZtMWRlSUNrZE9jaS9SelkzTTE1RXE0Rms5cFZxb1Ry?=
 =?utf-8?B?c2VXZzVpUEV1S0xScEkzejVoMUhjbDFBSFRQeVplWTZMRTVUZWlPQU9yQnVC?=
 =?utf-8?B?d0J3WWJDQkxJazZkeHUzQjJUQUhyUHI4UlVCbmtRazNzRUtER2FrektXRmdn?=
 =?utf-8?B?UGl4eVZrcXMveGlaVzdRdk1sZ3dXZGgrWEhrMzNEMDNrT2JXODVISHlxeDEw?=
 =?utf-8?B?ZDlHenBYY0lobDNmVFZRV1h2R2FBUUdxak5EY0NhZ3p5azhZR1lKMWhZT3ov?=
 =?utf-8?B?QVJDWnBGRmFackxXb2E2L2tGTGh6bzNqSjZVZ1UranlmYTNrYTZPSFlKMVZ2?=
 =?utf-8?B?eGlBNUFkSjY0NEg5WFRPNC9tc3NHK1pFb3NXay9iVktsLzRSV0tkSEVZaWhY?=
 =?utf-8?B?TS9NaHlHbWUvZ0tLdGxiOVdJTVF6MkFVelRTNTFrSHp5cy9rZ1hVNWZpVFFH?=
 =?utf-8?B?MW8xU1ZwWG9WVy8zUWROems1MkpMODdrODdqZXh2WVpGNk5Yci9BL3NWMGU4?=
 =?utf-8?B?UUJzWU5USVFMalR3QkY5VDVNdEY5aHhZNEJUbXoyWkwxR3V3OWswNU5NRTN0?=
 =?utf-8?B?ZW9aQnB2YmE5R2ZDL2ZXT2pSNVR2SFIwMGN5SENOL2dMRnhuZU5BRGJWM3FX?=
 =?utf-8?B?NHZBZFJvKzBvbnBFemtsZUdyVXRMQXg4S0hIdi9YcHYwd0tQZHVCN0M0NGNM?=
 =?utf-8?B?R09VRmlPY2tlaVp5NFJvcldmdjhUZjA3K2tpdE9PM01kS0NYaWlkdlNTUlkv?=
 =?utf-8?B?a0lvK1RQeStONVd6K1Z4cXpqbDBYb05xWk85N1d3SXNJZncreExxbENzREQ5?=
 =?utf-8?B?SlVaR1g2M3hVVzk2Nkh3clRGZy92aEtRVGFUQSs2NDlsVFFPUmJ2amxWY3c1?=
 =?utf-8?B?aVFDR1FFaUZHQVl0UlpzTjBQTC81bHpBRGpvVStmYVppSGtId256ekxwZlJZ?=
 =?utf-8?B?aVNQVGdiZ0JBMzJuUjNXRldUaG4wNEpkWHlSNnlTeTNEL0lvcXFRZFlraUls?=
 =?utf-8?B?cEp0akQ4QUFIcmZhZmQvUDR6K3QxOHBMQ013QUpBZnMyVGNxTkI3bXVsQkcz?=
 =?utf-8?B?R1AwU010N1dnVkx1cCtRTGZwWWtUa3pqeXpNTUl5TkwrdkVBdXVNTE5PenE1?=
 =?utf-8?B?b0FZNU1SSTFhUDg4aEgvL0xpUndtZEg0M3VqNXFLNVp3cTVmRklXcGw1Q1pC?=
 =?utf-8?B?T3orOC9kUDNyTHkxOXlyZ3pzSktZNVRzZ1RMQlVheVpCSDhCenAxdnJ3c2c3?=
 =?utf-8?B?b2c5SWVFUGZ6VUNFUmR1cSt6cVh4VDlrODdqTjNlcVI5RU1EYjR1dFgrYTg2?=
 =?utf-8?B?NDVMNlJFamlxSytpT0RqNWxOUVAzRUJ2NTU3eEwyM3ltQnl1Y3JwQzRxR1I2?=
 =?utf-8?B?TkwwMmJlSmZSYVVwenpZRjAxamlISmk1WmhzOXhMb0Z2NGk2THhOV3lZbTk4?=
 =?utf-8?Q?JVHX39Iai153PmE2PXWhIRQ=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 01a2bca1-da3c-43bc-f11d-08d9aab999eb
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 17:33:57.8948
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uKhSo/FZ8prQOFyeAJjHqyErXY6c3SN8h0jfbKkrs6pP9SXBwTHy/e7LgWe3DnDXmeGdhGFcK5rETNFKa/1KJg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2921
X-OriginatorOrg: citrix.com

On Thu, Nov 18, 2021 at 06:11:07PM +0200, Oleksandr Tyshchenko wrote:
> On Wed, Nov 17, 2021 at 11:54 AM Roger Pau Monne <roger.pau@citrix.com>
> wrote:
> 
> Hi Roger, all
> 
> [Sorry for the possible format issues]
> 
> Document some of the relevant changes during the 4.16 release cycle,
> > likely more entries are missing.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> >  CHANGELOG.md | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >
> > diff --git a/CHANGELOG.md b/CHANGELOG.md
> > index ad1a8c2bc2..8b0bdd9cf0 100644
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](
> > https://keepachangelog.com/en/1.0.0/)
> >   - qemu-traditional based device models (both, qemu-traditional and
> > ioemu-stubdom) will
> >     no longer be built per default. In order to be able to use those,
> > configure needs to
> >     be called with "--enable-qemu-traditional" as parameter.
> > + - Fixes for credit2 scheduler stability in corner case conditions.
> > + - Ongoing improvements in the hypervisor build system.
> > + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> > + - 32bit PV guests only supported in shim mode.
> > + - Improved PVH dom0 debug key handling.
> > + - Fix booting on some Intel systems without a PIT (i8254).
> >
> 
> I would add "Various fixes for OP-TEE mediator (Arm)" here and ...
> 
> 
> 
> > +
> > +### Added
> > + - 32bit Arm builds to the automated tests.
> > + - New x86 pagetable APIs.
> > + - Arm vPMU support.
> >
> 
> "Extended regions support, device tree only (Arm)" here.
> 
> ...
> The extended regions are ranges of unused address space exposed to domains
> as
> "safe to use" for special memory mappings.

I've worded this as:

"Report unpopulated memory regions safe to use for foreign mappings,
Arm and device tree only."

As "extended regions" was IMO too vague. Let me know if that's OK.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 17:36:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 17:36:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227537.393550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlKN-0003xE-1M; Thu, 18 Nov 2021 17:36:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227537.393550; Thu, 18 Nov 2021 17:36:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlKM-0003x6-UY; Thu, 18 Nov 2021 17:36:02 +0000
Received: by outflank-mailman (input) for mailman id 227537;
 Thu, 18 Nov 2021 17:36:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=45Id=QF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnlKL-0003wz-Qw
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 17:36:01 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd31b9b4-4895-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 18:36:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd31b9b4-4895-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637256960;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=kWT75wfhc7JiF6WpfaHQzETyxGTEAcs5UxforT8c0Wg=;
  b=OYqGRqfdVyd917mwm8KsLN2858vQob06yaXi3G37U9yG/QNqOgVzAGjZ
   Iflycle8uTqYXayBX3M8GkOoTvK7wZCdkud6VFiAik1a6ysHZNMQhMWIk
   00uY0uyB0zrhkKWVMj5yez75kolSLCUIb4UmaKEdhOgst1am3hJFuClhQ
   k=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: RfyjLZsZVSYSMPLs+pCVth9u8TprAeLslPIUYfTGyTXU0oq6OLRX9ghEDkZh8su1O7hivmiyg4
 /syJ4NS2Y/pb/5qrFmRHuIUn8yxuU8Ivpj4F0q9aiU/fak3arNl7igLFpprnIIwnJwvMP4Fit3
 gnLPmbTG8tVttD9CXsfXUvit7kHs63QPH2NLxA4Q+vVDDtpN/7BE4Jx29/H0HkU7hctaKHQ2mB
 2ICJIrrduW926PVpvW6bJZxN1viKPMpfJi+dw08w5YOignBPsiKdrRAtMfI66/GgmfRms+rdGi
 Gex2mp2tcsIK/83wKEy5QkwR
X-SBRS: 5.1
X-MesageID: 57672370
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:oyTEXKBUhpSTURVW/wznw5YqxClBgxIJ4kV8jS/XYbTApD4m3j1Rm
 modWziDOfuKZzD9c4hwPd6y80hU75LSzNE3QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540EI7wIbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/sBDXkfQp+
 NF0s4GMaEQPLqnPvPVaTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvqUuoUDg29YasZmRfWdO
 JICVjRWYDvyXyBmJA9UDMMhg7L97pX4W2IB8w/EzUYt2EDYxRZ917XFO9PPdtuHA85Smy6wq
 2bL+W2/Hx8bMcCExCSM2nW2j+TLkGXwX4d6PLG2//FlgVqXx0QIFQYbE1C8pJGRhkegVvpFJ
 kcT+y5oqrI9nGSpScL9GQK4oWKJvhMVV/JcFPc85RuSzbDX+ECSAW1sZjxOcts9r+ctWCcnk
 FSOmrvBBCNtmK2YT2qH8bWZpi/0PjIaRUcAbyIZSQoO4/H4vZo+yBnIS75LAKOzy9H4Bzz06
 zSLtzQlwaUei9YR0Ke29kyBhCijzrDASg8u+gzWRCSr9Ap/b4++T5Ok4h7Q6vMoBI2eS1ycu
 nkYio6b5eYHApyXvDyARv0XG7Ok7OrDNyfT6XZtAp0g+jKF63OlO4dK71lWL0dzM90Yfifpb
 VWVpkVa4JZJP1OlaKZ2Z8S6DMFC5aTvGdnqTPn8cstFYp83chSOui5peya41W33jFIll615P
 J6BaNutFl4TE6Ehxz2zL88X1rUh1y0lxWfeQJn95xui2LuaInWSTN8tMkaIKOYw76qGoQDc2
 9dZK8aOjR5YVYXWeDLX648JJFUiJmN9GJr97cdeHsaYPgd5EXs9Tf/Qxb8scZZsmah9muDS+
 HynRUhCy0G5jnrCQS2QY3B+bPX0XJBwrVoyJylqNlGts1A4aIOy4aNZa5s2d7A68PBLwPhvC
 v0UfMPGBe5AIhzZ/DAaYYj4vZZVfh2hjgKTPAKoeDE6OZVnQmTh4cT4dwHi8C0PCCuftsYkp
 bCkkATBTvIrWw1nBd3+dPGrwlW+rHUZ3ul1WiPgPthWUFXh9s5tMSOZpvwwJdsFJVPcxz+Z/
 wGMCBwcqK/GpIpd2NzAn6WNtYqqO+p4AEtBHmPf4Kq2NC/V5W6qy8lLV+PgVS/ZfHP5/uOlf
 +o95/LxLvwB2kpLuoxUErB3wKZ47Nzqz5dCxxlgNGXGaRKsELwICmCb1M8JprAV7rBcsAqyH
 EmI/7FyPLiPN9P4OFUQP0w4dumF07cZliS6xe4yO0/g4yh0+pKOUENcOAKBg2pWK74dDW8+6
 b5/4ohMsVX500d0dIbd5sxJy4iSBkclDasD7qEeOYn2tito7EFGYrjNTTCjtfljdO5wGkUtJ
 zaVgo/LiLJd2lfOfhIPKJTd4QZOrc9Q4U4XlTfuM3zMw4OY3aFvgHW95BxuFlwNpiirxd6fL
 YSC26ddAayVtwlli8FYN4xHM1EQXUbJkqAdJrZgqYE4c6VKfjCdRIHeEbzUlKz8z466VmIHl
 F1/4Dy7OQsGhOmrgkMPtbdN8pQPt+BZ+AzYg9yAFM+YBZQ8ajeNqvbwPjVR9Ee6XZNs1BevS
 QxWEABYM/GT2ck4+fNTNmVn/e5IFEDsyJJqH5mNA5/l7UmDIWrviFBi2mi6e99XJuyizKNLI
 5cGGy67bDznjHzmhmlCXcYkeuYo9NZ0tItqUu66fgYu7urAxgeFRbqNr0ASckdwGI4w+Sv8Q
 6uMHw+//pu42SEJxjST9ZYcYQJVo7AsPWXB4Qx8y81Qf7oru+Bwa0AilLyyunSeKgx8+ByI+
 gjEYsfrIyZKkOyARqPgTfdOARuaM9T2WLja+Qy/qY0WP9jOLd3Pp0UerVy+Z1ZaOr4YWtJWk
 7WRsYGogBOZ7ehuC22JyYOcE6Rp5NmpWLYFOMzAM3QHzzCJX9Xh4kVf9jnge4BJit5U+uKuW
 xC8NJmrbdcQVtoEnC9VZiFSHgwzEaPyaqu89yqxo+7VUkoW0BDdLcPh/njsNDkJeigNMpz4K
 wn1p/fxuYwI8NUSXEcJXqg0DYV5LVnvXbodW+fw7TTIXHO1hl6iu6f5kUZy4z/8FXTZQt3x5
 ojIR0aieU3q6r3I1txQr6d7ogYTUCRmmeA1c08Qp4x2hjS9ADJUJOgRK8xbWJRdkyi035Dkf
 jDdKmAlDHylDzhDdBz95vXlXxueWbNSaouoeGRx8hPGcTqyCaOBHKBlp3Vp7HpBczf+yP2qd
 IMF8XrqMxntmpxkSI7/PBBgbTuLEh8C+k81xA==
IronPort-HdrOrdr: A9a23:E8wIsqoA/BVZcyErT7JX/ScaV5u6L9V00zEX/kB9WHVpm5Oj+P
 xGzc526farslsssREb+OxpOMG7MBThHLpOkPMs1NCZLXTbUQqTXfpfBO7ZrQEIdBeOlNK1uZ
 0QFpSWTeeAcWSS7vyKkTVQcexQueVvmZrA7Yy1rwYPPHFXguNbnn9E426gYzNLrWJ9dPwE/f
 Snl656T23KQwVpUi33PAhJYwCFzOe74K7OUFojPVoK+QOOhTSn5PrTFAWZ5A4XV3dqza05+W
 bIvgTl7uH72svLhSP05iv21dB7idHhwtxMCIiljdUUECzljkKNaJ56U7OPkTgpqKWE6Uoskv
 PLvxA8Vv4Dp0/5TyWQm1/AygPg2DEh5zvLzkKZu2LqpYjDSDczG6N69MpkWyqcz3BlkMB30a
 pN0W7cnYFQFwn8kCP04MWNfw12l2KvyEBS0dI7vjh6a88zebVRpYsQ8Ad+C5EbBh/374ghDa
 1HENzc3vBLalmXBkqp/1WH+ObcHEjbIy32B3Tr4qeuonxrdTFCvgUlLfUk7zQ9HMlXcegC2w
 zGWp4Y3Y2mAPVmK56VP91xM/dfPFa9Ny4kAFjiUmgPK5t3Tk4li6SHq4ndt9vaMqDh8vMJ6e
 P8uRVjxDcPR34=
X-IronPort-AV: E=Sophos;i="5.87,245,1631592000"; 
   d="scan'208";a="57672370"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=V/skgblitx+Xo6eMfS+APNUfp3q4SVhpIlmpzzL9kdtLOtXpZPmH71WyDFeVCyYGQT4AIVS+o35Nef7vLIlQhqkyTJi2JJyw+Z0qSUoa9HAWLTX9bJ8/yq9OIcOtvZ/azJnOb4c9A0pbkaMmJNaeXG1uMJ9x+WvbRkKqPsk8H7HgGg8je6OT1drpk3JWy5qDejj9Rd+8aWxx8zmFJX1o23UXa7h2ZY//Vq5wIxS2NdBTPzWUtF7M4PMVvCqB9NAQGw4j8bX7aN2wwvpEyAKCXFsUsknmRiy+ojlLvaMCHfbXF6D+lY4ut7v5bHJnhoQZlqs9EgDpfv4gWwsuW/t8jw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aEMzDZ1qM1ZWDzNxPJYex5hz0cSy3ER9QpjwLe8HLj4=;
 b=bB8YBpJPd1WZdCswoGH0rawk7rNTo6xltqBbJApCybsOSZEt71oVU3/OHnJMBsskh3Q6UBgsSrMPddNkkcwq8CTiSxdK1yKXaGA6f3sxPC7YxRGPVf7o0YGUxg/VOizG7gkNJRmfBQ9TE1ZwayCg8pPRTvPmYoLv1OCiHvKPMpT4PqWVBYmHiH5gDIs0bYWYWJnG0kKqjRBuaqBzvZIumqShJMyCaFQFcSYshpM5E5sJOJBkgR2TKQOA0z+tJ1Mmrnj8GP6/xu8eDITn0SLVx69Y+s6JEZQprhokm1Zjk2ERCTsgySPVy+qoTuTuPEzQMq/eNXy8I42wNenp1nOiXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aEMzDZ1qM1ZWDzNxPJYex5hz0cSy3ER9QpjwLe8HLj4=;
 b=Ii7wqRGEX3ymBCtOY4eOdCoYz/hPuy8OhPQQZ0medLIndyndgdYL9TtydPfx0QAUdnmooQTwgpMlO5dZem50MB4+QN87mkLyiawQ81bHyoxGnoooT6k1cPLhVF+35jpmrZQhQgQljwZZnHDG6eNEjWTZwLEy2QxeCgZHbySKKtg=
Date: Thu, 18 Nov 2021 18:35:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Christian
 Lindig <christian.lindig@citrix.com>, Christopher Clark
	<christopher.w.clark@gmail.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>,
	Dario Faggioli <dfaggioli@suse.com>, David Scott <dave@recoil.org>, Doug
 Goldstein <cardoe@cardoe.com>, Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Julien
 Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Marek
 =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, Meng
 Xu <mengxu@cis.upenn.edu>, Nick Rosbrook <rosbrookn@ainfosec.com>, Paul
 Durrant <paul@xen.org>, Quan Xu <quan.xu0@gmail.com>, Rahul Singh
	<rahul.singh@arm.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Samuel
 Thibault <samuel.thibault@ens-lyon.org>, Shriram Rajagopalan
	<rshriram@cs.ubc.ca>, Stewart Hildebrand
	<stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei
 Liu <wl@xen.org>, Community Manager <community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Message-ID: <YZaO0Cc16mzVgwq0@Air-de-Roger>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <alpine.DEB.2.22.394.2111180920500.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2111180920500.1412361@ubuntu-linux-20-04-desktop>
X-ClientProxiedBy: MR2P264CA0063.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:31::27) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a5b388fe-c6f4-483d-93e2-08d9aab9df8c
X-MS-TrafficTypeDiagnostic: DM5PR03MB2921:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM5PR03MB29213782EBDEEED0D4D9A6F98F9B9@DM5PR03MB2921.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4714;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: bzawWG8d/draOXLDugNxHvPo67f/TOdXEY/5BgTFhaJ+uhmVeB7MCZVNDIwGW5DcUwuIJV3+FEhTwBb/J5yQRH33fXYXAE2EBdd5jHh1THs3jo68aicTpX5+R2RMhsqPKKssn1kfJyZ2/EJ3k1V0VsgSY586gg0N42HPb9s5cvugIMqBomCY3iCpqlEOwzU1/FwJZm0mSHNqst3WJfHulJbdwFOLNFw6LOKDnBRpzRJ1Wo8g7JhEPV8vBpWahn4yqEdhMaYA2GHEs9bb/pNgnK/1LG2yV0VyTr/vV94vqGroUD57SJ4lHfhw9cI7YemX6ioY4JcfIMGOrUZMoVXG9XPJceOZCW5jrb1pltisngItDuzFBrQBsWTp/baq/XZj8PWxksDWLxZc0bwRhqhC0q1RHdBFn7AQW5NqmHujRhHQGy/iZR7ZhKtysJCSG1BrEOhfLb9NwZFBg0aMuaiByC9jXXrwJ8WUfXyqtx1U8EViHU5sZb9wjIkY5ZUwgs3GzXHq6+A6nQPyVWIaXpB+tdEL/uKm90wKYswshkenpMe6wJrCEPG8QBLkCGIwvSELo89kCr4ZPZpHJ0P3B5GlwHP/JIfWic5vo3fhc1z7nfOzShGs6IeQw8m3R3uxacKXI9O/nF25ZDHHCu6D9w9A/pcWMn+F31DILayozooDFHs6Ik2Ehge6mfRKYegVvl1MftFsc99ht3MfIYXI3LPDHXo/nkczU/RRGjcWS8JhXvbTb2zB+/aARzw+1CimNiPgTpuFLuowDXHvASb8SCbNbbqdW+nVMs7mKxwGxjOaFTH1WjLWdMohR05RILfiaI5jVBZV4xVErMh/5TeY05cJ+w==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(956004)(6486002)(186003)(86362001)(26005)(6496006)(66946007)(82960400001)(33716001)(83380400001)(4326008)(2906002)(38100700002)(85182001)(9686003)(66556008)(66476007)(8676002)(54906003)(5660300002)(7406005)(8936002)(316002)(6666004)(6916009)(7416002)(508600001)(59356011)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MS9HbXJvdHBRb0huSm43aDRPdmZtNEQ1eUxXOUhXQ1MvcFFaNnpROHV6d1RE?=
 =?utf-8?B?bUdWTWFiQnp6cHBRd3l3N1BveU8yNHV6dFFCSzlpTFc4YzdGa3owVGppY3li?=
 =?utf-8?B?cFNKRWJ1UUZHZmEzYWpkT1JBU1VPY0hSU3hjdHVxdCtEbWhRd2xVWENra2Vi?=
 =?utf-8?B?dGUzUHBmZmthTDVvSlRHbmpqT3labFBFeUhrTXFMUW9aNW16QlZNT1EvNU5O?=
 =?utf-8?B?RVVnNXNtZEJ6Y2lHWU8ybngwMHZ3VHgrelRPVHZZS29oWW13QU1Td2tlc2dX?=
 =?utf-8?B?QlFReTBKSEZHSWFXY3BESjdCTjAvSlFsZFBWNjZlaW8wUDlJZjc3MFpldjYv?=
 =?utf-8?B?bDJVUzgvQlNReGd4Y3o0S0kwSjVIV1NtSkJQRVcxUEozZkZ6MFlOTEFkK0ZK?=
 =?utf-8?B?NllrMWx1d3QybjBZVXJMeENsdkpndDUyc3BOaElPVjZwT2UvQ1czYnN0UHVl?=
 =?utf-8?B?VzZmTHFQVHBlKy9QMWczSGxYdTZJeU84d0txL1d0VkFsVTdqa3ZKcXJnU3JH?=
 =?utf-8?B?TW9rcjRQZXd2Ym9KRnN0MHhSYjV6b2VWcUNvOEEzZDNZakVrQS9hcUMwdkRY?=
 =?utf-8?B?QmdlM2l6R1V3MnBiUm9QQlBKcUZRRkZrTExoTHloU0xPaVR4NVFuWGRDTkJG?=
 =?utf-8?B?Q3Zub3lNaTJiNDV3RGMvQ1pxekR5TDJSK2JWcmYwdkRGNkZub2lHZWtNL2U0?=
 =?utf-8?B?aUVZYktJeWt5S3phU1ExaEZYNDVxS2lZQlc5T2greEZ3Skh4enFKQnY4NDEx?=
 =?utf-8?B?WjlSaXVxTWd1WkFMYnZnY1hETHFwZGU0UUxXZkpJS0pmanNHV0FiLzg1Y3pR?=
 =?utf-8?B?SnRqUElRY2JiWlEvTVBxbUkvN20rZEYydXJ0MTRNTFZuSEljcFd2Z0tudXM2?=
 =?utf-8?B?aVNpRU9vQm1TZUwvQ0dSU05saVZ3cklOcmlFdTBvVzFnTTJjeFRqVU9CZ2NT?=
 =?utf-8?B?RkZHU2FVTEpYNEJRRmdKbkU3NGVrbWhlbnAyQUFOVjlwR3JpWjlBb1pzbkVx?=
 =?utf-8?B?ZFdpRWNLZTRnMjZCd3UwZWVBNDJyaHI4dXBhTXdxRTJIUlBUbGxnT0RHbGIw?=
 =?utf-8?B?WDgzTXhhcGNybjhhc1BJRzZES3dETlRYWHZ6SS9PME5GU1BiaXFINkFsbHRy?=
 =?utf-8?B?NFcvUW9KS1hVaUNESGpiRFNVVkdSUUtubVdIbi9BK1hlNEhkaXp6UjZEODFX?=
 =?utf-8?B?WXNSTEtQbFZEa1ZOdVBaOXQ3cUg2UVZqM3FqUnVvdk5OQlhuWVBudjlpdUox?=
 =?utf-8?B?UW4ycUl6VW5ISEtMYmljclNDVXUrRzRMOUMwcUQ5U1JGdndWYnJsU0pOUmFv?=
 =?utf-8?B?SzE4dzlpMjZXbzErcXFOamIrS1VQMEY5YWYwMEpsT3d3R1ZUWXJ3OWZ0Vzg5?=
 =?utf-8?B?SUlBR1N6Vnc4TDE4ZzZwdUtXOEE3ZDZacDgxU0ZONWJPdkJXVHVYckNaSXpI?=
 =?utf-8?B?T1JqbzZWZXppQXFHWUNEei8yMXhaNUE2ZTU4T3lBMkxzbFFDUzVGMDRySkVw?=
 =?utf-8?B?aHNXQlJGOEgxb3lXQkZnRnBLeVN3WnlCRS9aMkhhR2Y5eEUya3FKMmg3amlH?=
 =?utf-8?B?UEsvbDRJR1U0L1dOM2l2RVhsdzluaW5FNkhBKzQyMU5qTDFkdWtPSWZtYUhn?=
 =?utf-8?B?c3ZNYzNPMkswajhIWmx4ME9OQlo0NFZXU2oyRWlMbFg0QjlRcDJDaDIwLzdo?=
 =?utf-8?B?YzYwdEg2ckM2czNxVlQ1eUwrMUM4djRxeDMzMGZZR3RHMXIzRjFvWml6VmRH?=
 =?utf-8?B?TEkzelBIUmV0WHdRYzdoSFpwOVprSlZxRWxacWhRTkhlVGVuWkdRYjI3K3ZR?=
 =?utf-8?B?a3hqWnF1QnBud3dvemlKTXN3RzFHcmZtaVNrcitrUEw1WmNuMktlbEhJVC9O?=
 =?utf-8?B?TVIySU9RZEZVSHlyb1NCMkFncEhpNmtoZTZUOVI1WTZZaVZFVEdScWx0S2to?=
 =?utf-8?B?L0xmcDBHb0IzalE1WXpNZ0ZqZ2lOQUh5cDhJNFI1T0NZbzNxOWpWZm50SGNm?=
 =?utf-8?B?UjFsYUwzRDBDWEVncGRlVDdlTGc1RGE5bWg5VEdmQmZKcHlmMzZlbXFIVUY4?=
 =?utf-8?B?WXc4bm84QUd0UXcwNkdFUTcrTllLdmNjR0Qxa3FhVWcxZkNnK2wxdFZ6VjBT?=
 =?utf-8?B?MnBXd2dvZm1HMm1qSVpmVmt1QThqckRqUDdqRXVXcXowYjh4OE5hVFR3Q3ZH?=
 =?utf-8?Q?Rs8VwHI9xa2f9swT9kWrAWw=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: a5b388fe-c6f4-483d-93e2-08d9aab9df8c
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 17:35:54.8039
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: r58DIJ3CrEM3gfxgYH1J1maKFb+lHNxSpCwP5xxXN9DRFegjTKp0cZMOBXaFYUGT9p7eNLJZMj1CyJsPpZhC8w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2921
X-OriginatorOrg: citrix.com

On Thu, Nov 18, 2021 at 09:23:40AM -0800, Stefano Stabellini wrote:
> On Wed, 17 Nov 2021, Roger Pau Monne wrote:
> > Document some of the relevant changes during the 4.16 release cycle,
> > likely more entries are missing.
> > 
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> >  CHANGELOG.md | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/CHANGELOG.md b/CHANGELOG.md
> > index ad1a8c2bc2..8b0bdd9cf0 100644
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >   - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
> >     no longer be built per default. In order to be able to use those, configure needs to
> >     be called with "--enable-qemu-traditional" as parameter.
> > + - Fixes for credit2 scheduler stability in corner case conditions.
> > + - Ongoing improvements in the hypervisor build system.
> > + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> > + - 32bit PV guests only supported in shim mode.
> > + - Improved PVH dom0 debug key handling.
> > + - Fix booting on some Intel systems without a PIT (i8254).
> > +
> > +### Added
> > + - 32bit Arm builds to the automated tests.
> 
> I think you can expand this:
> 
> - greatly improved gitlab-ci based automated tests:
>     - 32-bit Arm builds
>     - x86 full system tests
> 
> Or with single lines only:
> 
> - 32bit Arm builds to the gitlab-ci automated tests
> - x86 full system tests to the gitlab-ci automated tests

Added, thanks.

Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 17:56:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 17:56:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227543.393561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnldt-0006KC-S8; Thu, 18 Nov 2021 17:56:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227543.393561; Thu, 18 Nov 2021 17:56:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnldt-0006K5-P8; Thu, 18 Nov 2021 17:56:13 +0000
Received: by outflank-mailman (input) for mailman id 227543;
 Thu, 18 Nov 2021 17:56:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnlds-0006Jz-LW
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 17:56:12 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cff1f12d-4898-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 18:56:11 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:60196)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnldq-000BE9-6Z (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 18 Nov 2021 17:56:10 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id D723C1FC53;
 Thu, 18 Nov 2021 17:56:09 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cff1f12d-4898-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <d359fb13-f367-1a4a-26ed-241e0203e6c7@srcf.net>
Date: Thu, 18 Nov 2021 17:56:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 3/3] x86/Viridian: fold duplicate vpset retrieval code
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
 <4aa6c9b4-dcaf-38e9-0b22-394f22ae898d@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <4aa6c9b4-dcaf-38e9-0b22-394f22ae898d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/11/2021 13:14, Jan Beulich wrote:
> --- a/xen/arch/x86/hvm/viridian/viridian.c
> +++ b/xen/arch/x86/hvm/viridian/viridian.c
> @@ -643,6 +647,18 @@ static int hv_vpset_to_vpmask(const stru
>      {
>          uint64_t bank_mask;
>          unsigned int vp, bank = 0;
> +        size_t size = sizeof(*set->bank_contents) * hv_vpset_nr_banks(set);
> +
> +        if ( offsetof(typeof(*vpset), set.bank_contents[0]) + size >
> +             sizeof(*vpset) )
> +        {
> +            ASSERT_UNREACHABLE();
> +            return -EINVAL;
> +        }
> +
> +        if ( hvm_copy_from_guest_phys(&set->bank_contents, bank_gpa,
> +                                      size) != HVMTRANS_okay)

Minor style issue - closing bracket.  I see it was a preexisting issue
from the old code.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 18:05:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 18:05:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227548.393572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlme-0007qZ-Ox; Thu, 18 Nov 2021 18:05:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227548.393572; Thu, 18 Nov 2021 18:05:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnlme-0007qS-L8; Thu, 18 Nov 2021 18:05:16 +0000
Received: by outflank-mailman (input) for mailman id 227548;
 Thu, 18 Nov 2021 18:05:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9nqF=QF=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mnlmd-0007qM-7y
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 18:05:15 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1435481d-489a-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 19:05:14 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:37414)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mnlmc-000DPz-mb (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 18 Nov 2021 18:05:14 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id D51721FA51;
 Thu, 18 Nov 2021 18:05:13 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1435481d-489a-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <0352b245-8dee-c960-18e2-ee0ae5846001@srcf.net>
Date: Thu, 18 Nov 2021 18:05:13 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 0/3] x86/Viridian: ExProcessorMasks handling improvements
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
 <0b8a1864-5ae9-3b19-4d43-893a5777985e@srcf.net>
 <44ccd257-6c8b-c35c-a0be-1ebdbd6d8ad6@suse.com>
Cc: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <44ccd257-6c8b-c35c-a0be-1ebdbd6d8ad6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/11/2021 13:34, Jan Beulich wrote:
> On 18.11.2021 14:20, Andrew Cooper wrote:
>> On 18/11/2021 13:12, Jan Beulich wrote:
>>> I've noticed the bugs fixed in patch 1 only while doing the other cleanup.
>>>
>>> 1: fix error code use
>>> 2: drop dead variable updates
>>> 3: fold duplicate vpset retrieval code
>> Oh, nice.  This makes it rather easier to do the flush short-circuit for
>> HV_GENERIC_SET_ALL.
> To be honest I first thought it might, but now I'm not sure anymore.

Just this delta:

diff --git a/xen/arch/x86/hvm/viridian/viridian.c
b/xen/arch/x86/hvm/viridian/viridian.c
index 658e68f7f2bb..c8c05bfb04a1 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -771,7 +771,8 @@ static int hvcall_flush_ex(const union
hypercall_input *input,
                                   sizeof(input_params)) != HVMTRANS_okay )
         return -EINVAL;
 
-    if ( input_params.flags & HV_FLUSH_ALL_PROCESSORS )
+    if ( input_params.flags & HV_FLUSH_ALL_PROCESSORS ||
+         input_params.set.format == HV_GENERIC_SET_ALL )
         vcpu_bitmap = NULL;
     else
     {

which now I come to think of it independent of your cleanup, and small
enough to be folded into my main IPI change.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 18:43:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 18:43:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227553.393583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmNV-0003OK-Ir; Thu, 18 Nov 2021 18:43:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227553.393583; Thu, 18 Nov 2021 18:43:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmNV-0003OD-Ff; Thu, 18 Nov 2021 18:43:21 +0000
Received: by outflank-mailman (input) for mailman id 227553;
 Thu, 18 Nov 2021 18:43:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ezFO=QF=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1mnmNT-0003O7-Ij
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 18:43:19 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6551fb05-489f-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 19:43:18 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 j140-20020a1c2392000000b003399ae48f58so546097wmj.5
 for <xen-devel@lists.xenproject.org>; Thu, 18 Nov 2021 10:43:18 -0800 (PST)
Received: from ?IPV6:2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599?
 ([2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599])
 by smtp.gmail.com with ESMTPSA id y6sm689594wrh.18.2021.11.18.10.43.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Nov 2021 10:43:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6551fb05-489f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=7zaYDU3ZePpTlInVD9URUJQdW+RJPtCVuC+0we1A5PU=;
        b=YVqzRhI7cTKLSbXJ1gXDgTEW4P/Xq2L881IPVgYgyS1s+oz3EONNUY+vqG6dMKkdPR
         RyIu4uvmi8fZvkGb/wQIbaZg0ZThlX9IXkiP225FD1iOEo+Y8AKAGxrDFWMXk2yUmwMt
         C8lo80a9kgL2cDVo9T98gJRMFETPwzPXyu5/BNiiHCwXV/GJb6/wubLP9+cX57ws24yl
         47QE1jDzAnLu3RkoWFhWeV+7S6OK5/kxHHm/DMKXg4RyIf9ssq1vmXPMkje+FLQaTLZo
         Z4Gb0O4NbRGmodfs3LkaGm3F9tEVugd1zVJnFkcC50+ZEDjEDaEPrcBbMWD340r0ag9r
         JC3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=7zaYDU3ZePpTlInVD9URUJQdW+RJPtCVuC+0we1A5PU=;
        b=1FRXbapTRSvSBevXx+6mVSH0Sn+9EpmraloQgkyAzUl8Sq0aiW/7RY23oUVN3XWJqm
         M8fmxL1hMIXfg2yj4iwKzvJwdi68J1+Y6dVQPNxhhSmZYTChJBJZWrVLLTJaEByI6mX2
         MkDtvnrRL3t8RCJpMFF0XN+aMsRvMkZw6kdDf2a5pdpN4KT6Z3kcM3rw8N6gWZT0RxIW
         F2Sa44lZtGk77lk7WEVstgUzKzcuOqUoGoyP/LLKTlhZOWzjAkLY9YKbbi0dlZztFlSe
         x6c+XRU2Hqu0XqBmk6jC52YIek+L3+xgF3+c+XIE9NOX/MX15kEu2ilo7WABhB0Txd+B
         pyUA==
X-Gm-Message-State: AOAM533Hg5m8OaYX8hVPJYWt/iiK97xI/RCxpJJcH8wsnxrY9GREPlOF
	DAmBnKMsys4b8Giu2XHbgQw=
X-Google-Smtp-Source: ABdhPJz6KWvuZzHQbxdPfhqOhQQqELzEpZ40tHOTjWphOG0F7DeV07P3vaibjQadsB74pvdu1k1agg==
X-Received: by 2002:a1c:ed03:: with SMTP id l3mr12780919wmh.86.1637260997697;
        Thu, 18 Nov 2021 10:43:17 -0800 (PST)
Message-ID: <018da83e-3371-dd7d-f08d-0488e19670ac@gmail.com>
Date: Thu, 18 Nov 2021 18:43:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Reply-To: paul@xen.org
Subject: Re: [PATCH 1/3] x86/Viridian: fix error code use
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
 <cf0d323d-6ef3-0b35-8423-5adab75ab4f1@suse.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <cf0d323d-6ef3-0b35-8423-5adab75ab4f1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18/11/2021 13:13, Jan Beulich wrote:
> Both the wrong use of HV_STATUS_* and the return type of
> hv_vpset_to_vpmask() can lead to viridian_hypercall()'s
> ASSERT_UNREACHABLE() triggering when translating error codes from Xen
> to Viridian representation.
> 
> Fixes: b4124682db6e ("viridian: add ExProcessorMasks variants of the flush hypercalls")
> Fixes: 9afa867d42ba ("viridian: add ExProcessorMasks variant of the IPI hypercall")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Paul Durrant <paul@xen.org>


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 18:47:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 18:47:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227558.393594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmRd-00042f-3q; Thu, 18 Nov 2021 18:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227558.393594; Thu, 18 Nov 2021 18:47:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmRd-00042Y-0s; Thu, 18 Nov 2021 18:47:37 +0000
Received: by outflank-mailman (input) for mailman id 227558;
 Thu, 18 Nov 2021 18:47:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ezFO=QF=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1mnmRc-00042S-A4
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 18:47:36 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fec63bf8-489f-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 19:47:35 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id u1so13396341wru.13
 for <xen-devel@lists.xenproject.org>; Thu, 18 Nov 2021 10:47:35 -0800 (PST)
Received: from ?IPV6:2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599?
 ([2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599])
 by smtp.gmail.com with ESMTPSA id e7sm951885wrg.31.2021.11.18.10.47.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Nov 2021 10:47:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fec63bf8-489f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=CLzrQk9I+jVAC4VMNStZlGSKMxgxyNMtoE+8tF6z5rI=;
        b=UIupOkzhoKW78NOoEZFcYffzyauhodoM7UGgttrXIhWrjGM7YpoLNuxIqLiI5eOxzJ
         mK8FM0Y5r5TzlxXqrsEpNTMgCh0qCcN3oDhMOv0+TeE61rax9Kcaxrkp8Rc7SHiPmhs9
         PmyCw9Vb6d+vsnO7+XbRHS6ZnWaO3qYITjTV/M87Iznb8QhcgEBr80JI7wV4IwLokEMy
         jsmc8Rh7t210JWkHvjpXF/yXoSJ4nGkBUgrVVpPHg8RV+q8bZLx9svOtKhsSvLKDU3OC
         DipLGbf9Y3XA3rEVN3hz689jfQ/zw6bVFnk6PK9Sp7FAaAuWgbCuUdOquVN+78stMrbN
         55dQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=CLzrQk9I+jVAC4VMNStZlGSKMxgxyNMtoE+8tF6z5rI=;
        b=AsEhbJid6LN5M4aBSikEtfjrSaazN2SCDqfXdZ0tlIPt1XPS8o8MxueObtOb/TInWb
         pb/7VWLyTtpuh9unIBoMahXpvskKaetCtBFd0yc5ewdrQwXv9f3tSYD455+6u1iaFVcK
         zN0jp/jC9hhGb021140NV8+BtqhgGC7WvooQtxw3xxfGYWDQQPOFFbVMMR2Ip4QrhoaK
         HW7NT0XxvhmdmV1CAl7zMdOyEBLJhJb0MSBWvWgkONNeLvcvPHJzo9C4kS4ODD2CiSrA
         fFm0h0meC8HPzYW10zCdrc8tYlKEVu3fpRsTc4S//JsmcFPfT0VHbTJvXg2FMIAombPS
         wWiQ==
X-Gm-Message-State: AOAM533yqrgZ3L6aTh/OJ9AGBvAIJZn4dujaF16qtlvKS9QPASm9zSyx
	k2y39Xgx7xSCQBnr3fYwrLs=
X-Google-Smtp-Source: ABdhPJz/gT5Fo9YL0MwSmnrnI/72eanUIZOjhPD1526Q0DGyNzM7YsgkGbfT6IvzkwwBfdSCuUpx+A==
X-Received: by 2002:adf:d091:: with SMTP id y17mr33071352wrh.418.1637261255043;
        Thu, 18 Nov 2021 10:47:35 -0800 (PST)
Message-ID: <87ea9d01-8da1-52d9-1f72-48f417d9f164@gmail.com>
Date: Thu, 18 Nov 2021 18:47:33 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Reply-To: paul@xen.org
Subject: Re: [PATCH 2/3] x86/Viridian: drop dead variable updates
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
 <ae2fa743-da2b-91a8-908f-b0c7bb006fd0@suse.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <ae2fa743-da2b-91a8-908f-b0c7bb006fd0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18/11/2021 13:14, Jan Beulich wrote:
> Both hvcall_flush_ex() and hvcall_ipi_ex() update "size" without
> subsequently using the value; future compilers may warn about such.
> Alongside dropping the updates, shrink the variables' scopes to
> demonstrate that there are no outer scope uses.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Paul Durrant <paul@xen.org>


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 18:49:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 18:49:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227563.393604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmTI-0004ck-F2; Thu, 18 Nov 2021 18:49:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227563.393604; Thu, 18 Nov 2021 18:49:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmTI-0004cd-C7; Thu, 18 Nov 2021 18:49:20 +0000
Received: by outflank-mailman (input) for mailman id 227563;
 Thu, 18 Nov 2021 18:49:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tpGR=QF=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mnmTG-0004bm-RE
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 18:49:19 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a3b0de8-48a0-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 19:49:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a3b0de8-48a0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637261356;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=NbsZ6NUegDcSQoMOv/4sPiQdtY2+3SFEfUDg5iYGvWo=;
  b=V5fN88QYt2KLCl9KU2z7lo1n7ZlKJzvzdWoqWWonAfm72GV+dLG3a3ts
   a/pG1vYkAqZ/856Iv8tiY+45VRArlM6ku8p2LrmdYcFzzHFj/QJjiucWY
   Tm6TA5ihdGJCaTlV112ECfe9HHO7TwhdlFD3hb02k42U3/HzzYuYHXGm+
   o=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 8zn02FljashdfOL1N75kiNHCxX0mChf9f+sXx4P6FhWChquRJmOEnAvLjyxPVk1orBNc0+ncEd
 hRl+woJ1Jl/0lxPhjFAg59DaZKj7wGzA9tUVvQknUgczzk/6PkmMhx2ahcz3Le3Olkup2NR3G8
 bmAd6HvR5NCV9QqT19jsUgVjMiL5MnhKjs07gjD1z+6VCF6J4z5LgzefanBJn8MWtJaQ5MOuiT
 Q8dRR2wUIiDA0KchtPzkEJbVshy//DvJg00gLadbsJYbauHQqySKsulGNFCSSf2eMmngOUUjZl
 uNxze91oxX1EhqkqWV9RHwyp
X-SBRS: 5.1
X-MesageID: 60147975
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:+5xEA6BGMoNPpxVW//rkw5YqxClBgxIJ4kV8jS/XYbTApDsmhDMPy
 GNOXziPO/6IM2vzeo8ib9ux/RwHuZ7dztQ2QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540EI7wIbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/jxSLltZN6
 Mtx75XpDlYCJfOUk+YaTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcGhG5s2ZERQJ4yY
 eJHVSFpKxTNZSZTPwgRCYk9xNmWi33GJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tl6Ru
 2bu72n/RBYAO7S32TeDt36hmOLLtSf6Q54JUq218OZwh1+ezXBVDwcZPXOZi/Skjk+1W/pEN
 lcZvCEpqMAPGFeDF4enGUfi+Tjd40BaC4E4//AGBB+lzovW6gClJnY4FDcYL40Nr5FuTj4ty
 Qrc9z/2PgBHvLqQQHOb076bqzKuJCQYRVM/iT84oRgtuIe6/txq5v7bZpM6SfPu0IWpcd3l6
 2nS9HBWulkFsSIcO0xXF3jjiinkmJXGRxVdCu7/DjP8tVMRiGJIiuWVBbnnARRocNbxorqp5
 iFsdy2iAAYmV83leMulGrtlIV1Rz6zZWAAweHY2d3Xbyxyj+mS4Yadb6yxkKUFiP64sIGGyP
 xaM5V4NtMIDZhNGiJObharrV6zGKoC6S7zYug38NIISMvCdiifZlM2RWaJg9z+0yxV9+U3OE
 ZyabdytHR4n5VdPl1KLqxMm+eZznEgWnDqLLbiilkjP+efONRa9FOZeWHPTP79R0U9xiFiMm
 zqpH5DRkEs3vSyXSnS/zLP/2nhWdyVmXs6v9JQMHgNBSyI/cFwc5zbq6etJU+RYc259zY8kJ
 1mxBR1VzkTRn3rCJVnYY3xvcuq3D51+sWg6LWonOlPxgyovZoOm7aE+cZorfOZ4qLw/nKAsF
 /RVKd+dBvlvSyjc/2hPZ5fKs4E/Jg+gghiDPnT5bWFnLYJgXQHA5vTtYhDrqHsVFiOyuMZn+
 ++g2wrXTIAtXQNnCMqKOvujw0no5SoWmf5oXluOKd5WIR2+/I9vIi33r/k2P8BTdkmTmmrEj
 16bWE5Kq/PMrok59MjyqZqF94r5QfFjGkd6HnXA6erkPyft4Wf+k5RLV/yFfG6BWTqsqrmif
 +hc09r1LOYDwARRq4N5HrtmkfA+6t/oq+MIxwhoBiyWPVGiC7cmKXiax8hf8KZKw+YB6wexX
 0uO/PhcOKmIZ5y5QAJAelJ9Y7TRz+wQlxnT8e8xcRfz6yJA9baaVVlfYkuXgytHIbopaI4oz
 I/NYiLNB9BTXvbyDuu7sw==
IronPort-HdrOrdr: A9a23:DvVtLq+MyDYdFa2mwmhuk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re5cjztCWE7gr5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtBD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,245,1631592000"; 
   d="scan'208";a="60147975"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>
Subject: [PATCH v2] x86/hvm: Remove callback from paging->flush_tlb() hook
Date: Thu, 18 Nov 2021 18:48:56 +0000
Message-ID: <20211118184856.20229-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211117182603.20057-1-andrew.cooper3@citrix.com>
References: <20211117182603.20057-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

TLB flushing is a hotpath, and function pointer calls are
expensive (especially under repoline) for what amounts to an identity
transform on the data.  Just pass the vcpu_bitmap bitmap directly.

As we use NULL for all rather than none, introduce a flush_vcpu() helper to
avoid the risk of logical errors from opencoding the expression.  This also
means the viridian callers can avoid writing an all-ones bitmap for the
flushing logic to consume.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Paul Durrant <paul@xen.org>

v2:
 * Also short-circuit the hvcall_flush_ex() HV_GENERIC_SET_ALL path.

The result even compiles smaller:

  $ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
  add/remove: 0/2 grow/shrink: 0/3 up/down: 0/-125 (-125)
  Function                                     old     new   delta
  flush_tlb                                    207     205      -2
  always_flush                                   6       -      -6
  need_flush                                     9       -      -9
  do_hvm_op                                   2434    2418     -16
  shadow_flush_tlb                             628     536     -92

but this is very much not the point of the patch.

It would be rather more efficient in this case and probably others for
for_each_vcpu() to iterate over d->vcpu[] than follow the v->next_vcpu pointer
chain (better locality of access), and also because then the vCPU id is the
loop induction variable, not a value read from memory.
---
 xen/arch/x86/hvm/hvm.c               |  7 +------
 xen/arch/x86/hvm/viridian/viridian.c | 34 +++++++++++-----------------------
 xen/arch/x86/mm/hap/hap.c            | 11 ++++++++---
 xen/arch/x86/mm/shadow/common.c      | 18 +++++++++++-------
 xen/arch/x86/mm/shadow/private.h     |  3 +--
 xen/include/asm-x86/paging.h         | 11 ++++-------
 6 files changed, 36 insertions(+), 48 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index eee365711d63..31e9474db093 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4047,17 +4047,12 @@ static void hvm_s3_resume(struct domain *d)
     }
 }
 
-static bool always_flush(void *ctxt, struct vcpu *v)
-{
-    return true;
-}
-
 static int hvmop_flush_tlb_all(void)
 {
     if ( !is_hvm_domain(current->domain) )
         return -EINVAL;
 
-    return paging_flush_tlb(always_flush, NULL) ? 0 : -ERESTART;
+    return paging_flush_tlb(NULL) ? 0 : -ERESTART;
 }
 
 static int hvmop_set_evtchn_upcall_vector(
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c
index b906f7b86a74..51d50e194e6d 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -574,13 +574,6 @@ static void vpmask_fill(struct hypercall_vpmask *vpmask)
     bitmap_fill(vpmask->mask, HVM_MAX_VCPUS);
 }
 
-static bool vpmask_test(const struct hypercall_vpmask *vpmask,
-                        unsigned int vp)
-{
-    ASSERT(vp < HVM_MAX_VCPUS);
-    return test_bit(vp, vpmask->mask);
-}
-
 static unsigned int vpmask_first(const struct hypercall_vpmask *vpmask)
 {
     return find_first_bit(vpmask->mask, HVM_MAX_VCPUS);
@@ -669,17 +662,6 @@ static uint16_t hv_vpset_to_vpmask(const struct hv_vpset *set,
 #undef NR_VPS_PER_BANK
 }
 
-/*
- * Windows should not issue the hypercalls requiring this callback in the
- * case where vcpu_id would exceed the size of the mask.
- */
-static bool need_flush(void *ctxt, struct vcpu *v)
-{
-    struct hypercall_vpmask *vpmask = ctxt;
-
-    return vpmask_test(vpmask, v->vcpu_id);
-}
-
 union hypercall_input {
     uint64_t raw;
     struct {
@@ -714,6 +696,7 @@ static int hvcall_flush(const union hypercall_input *input,
         uint64_t flags;
         uint64_t vcpu_mask;
     } input_params;
+    unsigned long *vcpu_bitmap;
 
     /* These hypercalls should never use the fast-call convention. */
     if ( input->fast )
@@ -730,18 +713,19 @@ static int hvcall_flush(const union hypercall_input *input,
      * so err on the safe side.
      */
     if ( input_params.flags & HV_FLUSH_ALL_PROCESSORS )
-        vpmask_fill(vpmask);
+        vcpu_bitmap = NULL;
     else
     {
         vpmask_empty(vpmask);
         vpmask_set(vpmask, 0, input_params.vcpu_mask);
+        vcpu_bitmap = vpmask->mask;
     }
 
     /*
      * A false return means that another vcpu is currently trying
      * a similar operation, so back off.
      */
-    if ( !paging_flush_tlb(need_flush, vpmask) )
+    if ( !paging_flush_tlb(vcpu_bitmap) )
         return -ERESTART;
 
     output->rep_complete = input->rep_count;
@@ -760,6 +744,7 @@ static int hvcall_flush_ex(const union hypercall_input *input,
         uint64_t flags;
         struct hv_vpset set;
     } input_params;
+    unsigned long *vcpu_bitmap;
 
     /* These hypercalls should never use the fast-call convention. */
     if ( input->fast )
@@ -770,8 +755,9 @@ static int hvcall_flush_ex(const union hypercall_input *input,
                                   sizeof(input_params)) != HVMTRANS_okay )
         return -EINVAL;
 
-    if ( input_params.flags & HV_FLUSH_ALL_PROCESSORS )
-        vpmask_fill(vpmask);
+    if ( input_params.flags & HV_FLUSH_ALL_PROCESSORS ||
+         input_params.set.format == HV_GENERIC_SET_ALL )
+        vcpu_bitmap = NULL;
     else
     {
         union hypercall_vpset *vpset = &this_cpu(hypercall_vpset);
@@ -807,13 +793,15 @@ static int hvcall_flush_ex(const union hypercall_input *input,
         rc = hv_vpset_to_vpmask(set, vpmask);
         if ( rc )
             return rc;
+
+        vcpu_bitmap = vpmask->mask;
     }
 
     /*
      * A false return means that another vcpu is currently trying
      * a similar operation, so back off.
      */
-    if ( !paging_flush_tlb(need_flush, vpmask) )
+    if ( !paging_flush_tlb(vcpu_bitmap) )
         return -ERESTART;
 
     output->rep_complete = input->rep_count;
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index 5b269ef8b3bb..de4b13565ab4 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -696,8 +696,13 @@ static void hap_update_cr3(struct vcpu *v, int do_locking, bool noflush)
     hvm_update_guest_cr3(v, noflush);
 }
 
-static bool flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
-                      void *ctxt)
+static bool flush_vcpu(const struct vcpu *v, const unsigned long *vcpu_bitmap)
+{
+    return !vcpu_bitmap || test_bit(v->vcpu_id, vcpu_bitmap);
+}
+
+/* Flush TLB of selected vCPUs.  NULL for all. */
+static bool flush_tlb(const unsigned long *vcpu_bitmap)
 {
     static DEFINE_PER_CPU(cpumask_t, flush_cpumask);
     cpumask_t *mask = &this_cpu(flush_cpumask);
@@ -712,7 +717,7 @@ static bool flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
     {
         unsigned int cpu;
 
-        if ( !flush_vcpu(ctxt, v) )
+        if ( !flush_vcpu(v, vcpu_bitmap) )
             continue;
 
         hvm_asid_flush_vcpu(v);
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 8c1b041f7135..de09ef5cae58 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -3069,9 +3069,13 @@ static void sh_clean_dirty_bitmap(struct domain *d)
 }
 
 
-/* Fluhs TLB of selected vCPUs. */
-bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
-                      void *ctxt)
+static bool flush_vcpu(const struct vcpu *v, const unsigned long *vcpu_bitmap)
+{
+    return !vcpu_bitmap || test_bit(v->vcpu_id, vcpu_bitmap);
+}
+
+/* Flush TLB of selected vCPUs.  NULL for all. */
+bool shadow_flush_tlb(const unsigned long *vcpu_bitmap)
 {
     static DEFINE_PER_CPU(cpumask_t, flush_cpumask);
     cpumask_t *mask = &this_cpu(flush_cpumask);
@@ -3084,12 +3088,12 @@ bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
 
     /* Pause all other vcpus. */
     for_each_vcpu ( d, v )
-        if ( v != current && flush_vcpu(ctxt, v) )
+        if ( v != current && flush_vcpu(v, vcpu_bitmap) )
             vcpu_pause_nosync(v);
 
     /* Now that all VCPUs are signalled to deschedule, we wait... */
     for_each_vcpu ( d, v )
-        if ( v != current && flush_vcpu(ctxt, v) )
+        if ( v != current && flush_vcpu(v, vcpu_bitmap) )
             while ( !vcpu_runnable(v) && v->is_running )
                 cpu_relax();
 
@@ -3103,7 +3107,7 @@ bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
     {
         unsigned int cpu;
 
-        if ( !flush_vcpu(ctxt, v) )
+        if ( !flush_vcpu(v, vcpu_bitmap) )
             continue;
 
         paging_update_cr3(v, false);
@@ -3118,7 +3122,7 @@ bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
 
     /* Done. */
     for_each_vcpu ( d, v )
-        if ( v != current && flush_vcpu(ctxt, v) )
+        if ( v != current && flush_vcpu(v, vcpu_bitmap) )
             vcpu_unpause(v);
 
     return true;
diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h
index 35efb1b984fb..e4db8d32546a 100644
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -922,8 +922,7 @@ static inline int sh_check_page_has_no_refs(struct page_info *page)
 }
 
 /* Flush the TLB of the selected vCPUs. */
-bool shadow_flush_tlb(bool (*flush_vcpu)(void *ctxt, struct vcpu *v),
-                      void *ctxt);
+bool shadow_flush_tlb(const unsigned long *vcpu_bitmap);
 
 #endif /* _XEN_SHADOW_PRIVATE_H */
 
diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h
index 996c2cd0383f..308f1115dde9 100644
--- a/xen/include/asm-x86/paging.h
+++ b/xen/include/asm-x86/paging.h
@@ -141,9 +141,7 @@ struct paging_mode {
     void          (*update_cr3            )(struct vcpu *v, int do_locking,
                                             bool noflush);
     void          (*update_paging_modes   )(struct vcpu *v);
-    bool          (*flush_tlb             )(bool (*flush_vcpu)(void *ctxt,
-                                                               struct vcpu *v),
-                                            void *ctxt);
+    bool          (*flush_tlb             )(const unsigned long *vcpu_bitmap);
 
     unsigned int guest_levels;
 
@@ -417,11 +415,10 @@ static always_inline unsigned int paging_max_paddr_bits(const struct domain *d)
     return bits;
 }
 
-static inline bool paging_flush_tlb(bool (*flush_vcpu)(void *ctxt,
-                                                       struct vcpu *v),
-                                    void *ctxt)
+/* Flush selected vCPUs TLBs.  NULL for all. */
+static inline bool paging_flush_tlb(const unsigned long *vcpu_bitmap)
 {
-    return paging_get_hostmode(current)->flush_tlb(flush_vcpu, ctxt);
+    return paging_get_hostmode(current)->flush_tlb(vcpu_bitmap);
 }
 
 #endif /* XEN_PAGING_H */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 18:51:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 18:51:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227568.393616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmUz-00060n-W8; Thu, 18 Nov 2021 18:51:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227568.393616; Thu, 18 Nov 2021 18:51:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmUz-00060g-T0; Thu, 18 Nov 2021 18:51:05 +0000
Received: by outflank-mailman (input) for mailman id 227568;
 Thu, 18 Nov 2021 18:51:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ezFO=QF=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1mnmUy-00060a-R1
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 18:51:04 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b10b774-48a0-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 19:51:04 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id 133so6304054wme.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Nov 2021 10:51:04 -0800 (PST)
Received: from ?IPV6:2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599?
 ([2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599])
 by smtp.gmail.com with ESMTPSA id s13sm10091855wmc.47.2021.11.18.10.51.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Nov 2021 10:51:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b10b774-48a0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=1PAPO3Y2RtSMMlsrgkt2gZHEkvgCvamHQZpPUYVi3Bs=;
        b=cjH7Zk8pEa6SxKvbVF46haj4Q/XjZOFvcXTxGGERE6rSFcLR1a/jxEUtd/+T0NTjLg
         WhKdo6c+7/UnYDuxJ8OUyoGzwiNqJLppJyaYfpSDzdgwc4KEDiim9gPH4a+O6ChsyL2W
         v8/Y4P9S/EeCDqWy7LlKAk0H/YZSwsZZNSgAGapP8/9NdBGO3wnKiubBWwF4NLwkC/42
         5mcIqLhv4yyBt4jSu3bwpeF46EN/lIXMXf705J2LKS9zXCoBrFU9xbAZlwbrbwiiZpXs
         Flvheg6jPj50xbI7WJVD5AYdiWu3j+woyAAorE9VKti0gau13N8HC9K4OVhY98W5JQN4
         gGLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=1PAPO3Y2RtSMMlsrgkt2gZHEkvgCvamHQZpPUYVi3Bs=;
        b=8PmbibyA+VdCWkYmvLFQs25T/Jcv9WNRWLROTJcEoQRb+Z2lqq9Cuj61T5v8HQXKIR
         g9GUbxibWILJMkC9EEZA94slDwI1H6/jUT/DswLtflXRRlozEe1nPsE3J2ibcmXxoj74
         CiAWfZ+btCvHaDrL8ZOaMwCv/TPg2AIBJ3tpScZMjsydeGcwIv6J1uYY119nA+RThfjY
         l+V/+McEh6DkCklIllB0Q3d6FRpD74yTtHlPJq3tqj0kzBMJfOus6qW+1J0zTqBiOeAx
         B44nRwx6R+OJ0dKg3KBc3CBJ98Kx0XldCUV1+PXiamlI2B7C7lJXH6/L9JLQoR2+V9xJ
         Klvw==
X-Gm-Message-State: AOAM532NDlK5enpVeIf/GU8zrjfJ21A50io7H5VP31WMhqFDLbF5s7u1
	CHekZI/dNCewbHhP/0/pzx37VNNqwJg=
X-Google-Smtp-Source: ABdhPJx4dcY9J1CXoUub35JYPSU7NBqGVs1bdMNjGe9xq1zA0NdB/KutOBeCrYRkFJWn97UA1wochQ==
X-Received: by 2002:a05:600c:3486:: with SMTP id a6mr12486811wmq.32.1637261463670;
        Thu, 18 Nov 2021 10:51:03 -0800 (PST)
Message-ID: <c3e007e0-8ba9-c58b-4332-70d2cbaeedef@gmail.com>
Date: Thu, 18 Nov 2021 18:51:02 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Reply-To: paul@xen.org
Subject: Re: [PATCH 3/3] x86/Viridian: fold duplicate vpset retrieval code
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
 <4aa6c9b4-dcaf-38e9-0b22-394f22ae898d@suse.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <4aa6c9b4-dcaf-38e9-0b22-394f22ae898d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18/11/2021 13:14, Jan Beulich wrote:
> hvcall_{flush,ipi}_ex() use more almost identical code than what was
> isolated into hv_vpset_to_vpmask(). Move that code there as well, to
> have just one instance of it. This way all of HV_GENERIC_SET_SPARSE_4K
> processing now happens in a single place.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Paul Durrant <paul@xen.org>


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 18:53:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 18:53:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227573.393626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmWu-0006dI-BA; Thu, 18 Nov 2021 18:53:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227573.393626; Thu, 18 Nov 2021 18:53:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmWu-0006dB-8A; Thu, 18 Nov 2021 18:53:04 +0000
Received: by outflank-mailman (input) for mailman id 227573;
 Thu, 18 Nov 2021 18:53:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ezFO=QF=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1mnmWs-0006d5-Jm
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 18:53:02 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c12dd5bf-48a0-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 19:53:01 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id u1so13422134wru.13
 for <xen-devel@lists.xenproject.org>; Thu, 18 Nov 2021 10:53:01 -0800 (PST)
Received: from ?IPV6:2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599?
 ([2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599])
 by smtp.gmail.com with ESMTPSA id z8sm662323wrh.54.2021.11.18.10.53.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Nov 2021 10:53:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c12dd5bf-48a0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=+/z/+p3MB4VD85Cgq5R8YOH64O5nYkn+Jf+PXXgbrdQ=;
        b=JVzxHwdc7i61sfgZKUFmRkD6+s5sb1FcB/zviWblE+8R+d5q29Dao4Y2YztqOkYi63
         RduHA1YqvULw5vPnyEhFwtHAB8B5rJ5MuUps2+hHtvl2Mf5OncKhQqdN66wv2qHLv64H
         /5SBXtZ7Jwgla9F3YU8vbf/iuAn0+sOeXBRDuZxzr9ujwjIxiJQawr91N/hgi5I1jVHC
         51vXvyPjtkvrbCrDHx6I014u3SqYtB71JaJUgfOUSGDzh4dhrck1iDWJTjPQGy5l+xt9
         cnsWGLuBNEAYhdGjdzcwedynoArBkeRNaURn/WiRUiVEpgGLrNSSrHUneQ4Kw2HcZoh3
         cusQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=+/z/+p3MB4VD85Cgq5R8YOH64O5nYkn+Jf+PXXgbrdQ=;
        b=WqFWnyXRhRwLMA5hZhffFtRvbaEkxlc5q/ZhAzSCC3vRov4NOhxfC2DK96mIlNG92k
         UKp3ZnZNjoRcEGV8FJ2FqCEt7Z8sLd0nsSQWgIQgKEJ/rZaY+DD+gm0AmTYKCnLwhrkL
         pDGd8OJ7DEXEhi6ulop+0y0RublxYyaf2iSHzv30g4FURfvbaIMK4/+n53Fu65+WagT4
         qd8IUujCJozO5pdpaoQpJ4pOvq5TSE2Lm5L6EolzeSFPNzupR5JlCW5RV0fqwo5O711u
         A4NkS82x7a++/1mnHZCIEIje8U2bdEX55XjGUj1vLV15fYJGEaxc5IZuTCJhgkIOm2xu
         4PMw==
X-Gm-Message-State: AOAM5306xMnGKGNYwyZYKs64u3TUPoFE+zeCbB9VOwcQaK1JqxnsQQq7
	DOwUUuD7bZ/3iDwiE2acOVw=
X-Google-Smtp-Source: ABdhPJx6ywYUfZFyx4XoCGFG/U4N36nmAK9oqsHWeE0lOvs2gr0cauPSqVBv2ee/mknhfDLXVL6ioA==
X-Received: by 2002:a5d:6dab:: with SMTP id u11mr32715077wrs.46.1637261581263;
        Thu, 18 Nov 2021 10:53:01 -0800 (PST)
Message-ID: <c1dbbf5f-c0ac-af17-af4a-b1b93f90310c@gmail.com>
Date: Thu, 18 Nov 2021 18:52:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Reply-To: paul@xen.org
Subject: Re: [PATCH] x86/hvm: Remove callback from paging->flush_tlb() hook
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211117182603.20057-1-andrew.cooper3@citrix.com>
 <df71b9a1-9aed-d0ce-ecf1-2addc69511d1@suse.com>
 <439464d3-43fe-58a1-521b-0cc4eed02d08@srcf.net>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <439464d3-43fe-58a1-521b-0cc4eed02d08@srcf.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 18/11/2021 11:19, Andrew Cooper wrote:
> On 18/11/2021 10:45, Jan Beulich wrote:
>> On 17.11.2021 19:26, Andrew Cooper wrote:
>>> TLB flushing is a hotpath, and function pointer calls are
>>> expensive (especially under repoline) for what amounts to an identity
>>> transform on the data.  Just pass the vcpu_bitmap bitmap directly.
>>>
>>> As we use NULL for all rather than none, introduce a flush_vcpu() helper to
>>> avoid the risk of logical errors from opencoding the expression.  This also
>>> means the viridian callers can avoid writing an all-ones bitmap for the
>>> flushing logic to consume.
>> I think you want to clarify that you convert only one of the two ways of
>> specifying "all". The other (HV_GENERIC_SET_ALL as consumed by
>> hv_vpset_to_vpmask()) could also be converted, but this would be a bit
>> more involved. I have no idea which of the two Windows would typically
>> use, nor why there are two mechanisms in the first place.
> 
> Oh - I'd not spotted that path.  It is well hidden away from
> HV_FLUSH_ALL_PROCESSORS.
> 
> Giving how windows APIs typically evolve,
> HVCALL_FLUSH_VIRTUAL_ADDRESS_{SPACE,LIST} where first.  It has a limit
> of 64 vCPUs, and the VpSet sparse form is clearly catering to massive
> numbers of vCPUs.
> 
> I'd expect to see both paths used, so we ought to see about optimising
> that too, in due course.
> 

In my experience, yes, it only uses the sparse version if you have more 
than 64 vCPUs.

   Paul

>>> No functional change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks.
> 
> ~Andrew
> 



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 18:57:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 18:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227577.393638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmar-0007I4-UN; Thu, 18 Nov 2021 18:57:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227577.393638; Thu, 18 Nov 2021 18:57:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmar-0007Hx-PM; Thu, 18 Nov 2021 18:57:09 +0000
Received: by outflank-mailman (input) for mailman id 227577;
 Thu, 18 Nov 2021 18:57:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ezFO=QF=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1mnmaq-0007Hr-QD
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 18:57:08 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 53edd4ef-48a1-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 19:57:07 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id r8so13457488wra.7
 for <xen-devel@lists.xenproject.org>; Thu, 18 Nov 2021 10:57:07 -0800 (PST)
Received: from ?IPV6:2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599?
 ([2a00:23c5:5785:9a01:70ff:9fb9:79eb:9599])
 by smtp.gmail.com with ESMTPSA id r17sm665554wmq.11.2021.11.18.10.57.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Nov 2021 10:57:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53edd4ef-48a1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=BsC5cvFh7IO5Sl2VWqb/+dbMjhO/ygEzNF2OwN7ZWTw=;
        b=Zkk0LpPbLfN1BikqUXWAc8Pz5/MEinqphzQnhmc5jIjXUG2M8DjyXMU8rrPvSWu8uU
         ZbNDS/jlJUKa1/Ozz+y9HyyiLgnyZ4JDsH785xzRS0NZAFlUTs0gIXBkDjkWePB4uKbo
         YGxJCrrU7Ir0cFRkZ4+zxJUI1asMQXFtqchH+MYRnhbejxhtnP+V7cZ+vliiEpkRzmwA
         4fexHPGMlhe/VpRes5vbJZg9D9Pp7rwlejk5HBaSNEQ3OwWmMEDb2FWzRdfUpo3TG1ML
         6yRfL7Hk+stxz/MWLyAvokRqYoYSuxl67gxfm22BcQ2UjDB8JgRR6riCbwQ1ood5nJiy
         TDYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=BsC5cvFh7IO5Sl2VWqb/+dbMjhO/ygEzNF2OwN7ZWTw=;
        b=0nwgpcVi6Mmv7S/akF/lLSQpkG1tXLDhqQcXadxvHWECUTQjpmrxUsKVp1rv4tsHNx
         VrceJxEOFGRENnLLd7tlsHZ7ffN2ZltJe4XcydGSyQxKmDC0Rvp+1iuU8tCrruUnli6f
         adshYgq2vgV7p57AazIbcvU5VdUeSgs0eOnLdfNK2ax8H3k+4kB4dk6tXyNky+n+w0ys
         zkZiLPI76oUDMNxuQYKfuhHcu3NBRorWuMseuCZzEpYnIUsEgee0YmEwPUJF0Iw6OxtX
         FFMXkRU3eZkqzaZ3/ngT1PeekfC6z5dkom3k5Pkg7tZg1Jq9XegzVIqETzeY8ztWnN//
         8kdQ==
X-Gm-Message-State: AOAM533BldDUponzLHvZ/x7uFwFRMhhUazNlnuQ3j45x49tDGyfJ0Cco
	siDgQeXBGkZe2irDosGDlJ0=
X-Google-Smtp-Source: ABdhPJxv/sqDEArPI6T3nFk0lCmAMtZuNkYnzzAqC+PPTFhnkGAOFsQJ1qFy6U+TBBJz74XJ9fYevA==
X-Received: by 2002:a5d:6d86:: with SMTP id l6mr33531962wrs.304.1637261827516;
        Thu, 18 Nov 2021 10:57:07 -0800 (PST)
Message-ID: <efb4d89d-a9eb-3c34-cef8-2cafe7a87cdf@gmail.com>
Date: Thu, 18 Nov 2021 18:57:06 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Reply-To: paul@xen.org
Subject: Re: [PATCH v2] x86/hvm: Remove callback from paging->flush_tlb() hook
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>
References: <20211117182603.20057-1-andrew.cooper3@citrix.com>
 <20211118184856.20229-1-andrew.cooper3@citrix.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20211118184856.20229-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18/11/2021 18:48, Andrew Cooper wrote:
> TLB flushing is a hotpath, and function pointer calls are
> expensive (especially under repoline) for what amounts to an identity
> transform on the data.  Just pass the vcpu_bitmap bitmap directly.
> 
> As we use NULL for all rather than none, introduce a flush_vcpu() helper to
> avoid the risk of logical errors from opencoding the expression.  This also
> means the viridian callers can avoid writing an all-ones bitmap for the
> flushing logic to consume.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Paul Durrant <paul@xen.org>


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 19:04:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 19:04:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227582.393649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmi3-0000I1-LQ; Thu, 18 Nov 2021 19:04:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227582.393649; Thu, 18 Nov 2021 19:04:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnmi3-0000Ht-IU; Thu, 18 Nov 2021 19:04:35 +0000
Received: by outflank-mailman (input) for mailman id 227582;
 Thu, 18 Nov 2021 19:04:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/tNz=QF=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mnmi2-0000HX-FY
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 19:04:34 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d73d883-48a2-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 20:04:33 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id b40so31037901lfv.10
 for <xen-devel@lists.xenproject.org>; Thu, 18 Nov 2021 11:04:33 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id o17sm12344lfn.50.2021.11.18.11.04.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Nov 2021 11:04:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d73d883-48a2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=G1Qx5xvvEgGKi2uAbKYdFA3Jpya7JG3GAmYp9/wd4RA=;
        b=eHD3uvFpOJ3kY08WIE6U4FALAxk6vRIJtAkEHwKHA5I1PJnOjZkGowgImyT6VSjjEe
         KySHOfcWlg4+0EBlVjzIFh2znxzzd+TZLE4H+XM0rJq2+46M7cgkAnaA7nvdMpi+X6wV
         jATUWv+KedTgJevEVm8FBBcUT7pVlULDTj01uHuCw/6UL2YydoE1wSl7D8vs9TEs1IAX
         0icz90OWfRQ5mOU6hxdB4vRg4Id7O/9pXQPYSrb0THYEdo5yd+/UF1KJUzC+4Tzj7Owd
         V+qyJcB9OiuqiG/r+0yJkGy0LTtWdsFPnXvYu5H5ndMOdZHlAKCFaHaU8Xd+U5D1NHmd
         yGJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=G1Qx5xvvEgGKi2uAbKYdFA3Jpya7JG3GAmYp9/wd4RA=;
        b=kRXivfXSbFR494tHu/3s55DSfr+l3iwdqB1ZnukexlhC07lcRjeTRp2Zq8Kp/dFZTk
         qOuCLbWgCDuApL7tAorBEO9RSkbZGEC/6Rld0HgXDPPHzUMnBQ6BOXW+qssDoV9Yxj2H
         b12PD2cn10o91nKm9HWAPtQ/Kj27n+nrrvy77uNn4lRJ1fdDCzMDRLySQIFYMmS64Nzm
         sYSY0ICSs6JoS2B/uwDpF3Vn92K74z9d+gW37Dc6VGsxgL7aAeI7BAOC9jPHa7uYqSWF
         O9ADLKMk5l701pyqjOc5Cr1D9BjOFwT+sVdEcaFrEKX0FLp7wmUsQp0y2Kv5QgyFF6ez
         tvxg==
X-Gm-Message-State: AOAM532rCa1PdLSZ+PLZv1uWXCCLHvD8Fy/VdteYwUUeOW9p0ZdRcc42
	V25VBEZNwILNfFTKyYoI5tY=
X-Google-Smtp-Source: ABdhPJzaFHStI21+VziopIbXQgR6syncIKNuElOP0ssSAnNEQQ1Pqi2P9+WbREYTqOo2n4F5ZsqMqw==
X-Received: by 2002:ac2:4c50:: with SMTP id o16mr26669215lfk.517.1637262272920;
        Thu, 18 Nov 2021 11:04:32 -0800 (PST)
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Dario Faggioli
 <dfaggioli@suse.com>, David Scott <dave@recoil.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Josh Whitehead <josh.whitehead@dornerworks.com>,
 Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>,
 Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>,
 Nick Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>,
 Quan Xu <quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Shriram Rajagopalan <rshriram@cs.ubc.ca>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <CAPD2p-nb7u7om7zv5-KvfZTsmGis9uGfBkvwjEXrym_+4PN-RQ@mail.gmail.com>
 <YZaOgGWfbDkIq4Lq@Air-de-Roger>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <d4f3d50d-9875-f7bf-2c82-83f8fedb8cfc@gmail.com>
Date: Thu, 18 Nov 2021 21:04:30 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <YZaOgGWfbDkIq4Lq@Air-de-Roger>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 18.11.21 19:33, Roger Pau Monné wrote:

Hi Roger


> On Thu, Nov 18, 2021 at 06:11:07PM +0200, Oleksandr Tyshchenko wrote:
>> On Wed, Nov 17, 2021 at 11:54 AM Roger Pau Monne <roger.pau@citrix.com>
>> wrote:
>>
>> Hi Roger, all
>>
>> [Sorry for the possible format issues]
>>
>> Document some of the relevant changes during the 4.16 release cycle,
>>> likely more entries are missing.
>>>
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>> ---
>>>   CHANGELOG.md | 11 +++++++++++
>>>   1 file changed, 11 insertions(+)
>>>
>>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>>> index ad1a8c2bc2..8b0bdd9cf0 100644
>>> --- a/CHANGELOG.md
>>> +++ b/CHANGELOG.md
>>> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](
>>> https://keepachangelog.com/en/1.0.0/)
>>>    - qemu-traditional based device models (both, qemu-traditional and
>>> ioemu-stubdom) will
>>>      no longer be built per default. In order to be able to use those,
>>> configure needs to
>>>      be called with "--enable-qemu-traditional" as parameter.
>>> + - Fixes for credit2 scheduler stability in corner case conditions.
>>> + - Ongoing improvements in the hypervisor build system.
>>> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
>>> + - 32bit PV guests only supported in shim mode.
>>> + - Improved PVH dom0 debug key handling.
>>> + - Fix booting on some Intel systems without a PIT (i8254).
>>>
>> I would add "Various fixes for OP-TEE mediator (Arm)" here and ...
>>
>>
>>
>>> +
>>> +### Added
>>> + - 32bit Arm builds to the automated tests.
>>> + - New x86 pagetable APIs.
>>> + - Arm vPMU support.
>>>
>> "Extended regions support, device tree only (Arm)" here.
>>
>> ...
>> The extended regions are ranges of unused address space exposed to domains
>> as
>> "safe to use" for special memory mappings.
> I've worded this as:
>
> "Report unpopulated memory regions safe to use for foreign mappings,
> Arm and device tree only."
>
> As "extended regions" was IMO too vague. Let me know if that's OK.

I think, it is OK. Nit: maybe replace "foreign" with "foreign/grant"? I 
would be OK either way.

Thank you.


>
> Thanks, Roger.

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Thu Nov 18 21:01:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 21:01:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227589.393660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnoWQ-0002kx-0u; Thu, 18 Nov 2021 21:00:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227589.393660; Thu, 18 Nov 2021 21:00:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnoWP-0002kq-Tz; Thu, 18 Nov 2021 21:00:41 +0000
Received: by outflank-mailman (input) for mailman id 227589;
 Thu, 18 Nov 2021 21:00:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vl7d=QF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnoWO-0002kk-E8
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 21:00:40 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9435c505-48b2-11ec-9787-a32c541c8605;
 Thu, 18 Nov 2021 22:00:38 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 3D5056139F;
 Thu, 18 Nov 2021 21:00:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9435c505-48b2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637269236;
	bh=+eXV2EHyJlDvkKpbBXFTh2C6Rkk/xNYbto1qhtiHSTY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=QUwZaoK0p2C5nSaXw+3wAH/8DsldNvlYbUjJt7AUdDKdJ8jew32tqWtoMUq4aqUwi
	 OEmwx1A0cQsKjGmPMytP83bbaOJtdXDnlR7UCWk6ewRkwISpifVEUEzFSY3rI/Z7O5
	 a3jw/zKG/abree6q2cXi2+hzh4YVN3csmUWEWH9DmVdQ6UddhqnZ5jxw4+buyFNFnh
	 xfC3cxf9XMwEDA9ZI9RBFdmcyUJdhQXBINSrdPYWqx8Yo4NVYt44op6OCDURBTKIQx
	 ZqXYKp2tpl2HchhUYlwgE3iSOwEvzT7IY9NGk8Mrl4whacgYnWBPiV2LwdoAXghSAD
	 MyOW5Bd4DhXww==
Date: Thu, 18 Nov 2021 13:00:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Juergen Gross <jgross@suse.com>
cc: Jan Beulich <jbeulich@suse.com>, boris.ostrovsky@oracle.com, 
    xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
In-Reply-To: <b0cd6af9-66c4-3a73-734a-3a51d052fac2@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111181226460.1412361@ubuntu-linux-20-04-desktop>
References: <20211117021145.3105042-1-sstabellini@kernel.org> <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com> <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop> <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com> <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>
 <b0cd6af9-66c4-3a73-734a-3a51d052fac2@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 18 Nov 2021, Juergen Gross wrote:
> On 18.11.21 09:47, Jan Beulich wrote:
> > On 18.11.2021 06:32, Juergen Gross wrote:
> > > On 18.11.21 03:37, Stefano Stabellini wrote:
> > > > --- a/drivers/xen/xenbus/xenbus_probe.c
> > > > +++ b/drivers/xen/xenbus/xenbus_probe.c
> > > > @@ -951,6 +951,28 @@ static int __init xenbus_init(void)
> > > >    		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
> > > >    		if (err)
> > > >    			goto out_error;
> > > > +		/*
> > > > +		 * Return error on an invalid value.
> > > > +		 *
> > > > +		 * Uninitialized hvm_params are zero and return no error.
> > > > +		 * Although it is theoretically possible to have
> > > > +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it
> > > > is
> > > > +		 * not zero when valid. If zero, it means that Xenstore hasn't
> > > > +		 * been properly initialized. Instead of attempting to map a
> > > > +		 * wrong guest physical address return error.
> > > > +		 */
> > > > +		if (v == 0) {
> > > 
> > > Make this "if (v == ULONG_MAX || v== 0)" instead?
> > > This would result in the same err on a new and an old hypervisor
> > > (assuming we switch the hypervisor to init params with ~0UL).

Sure, I can do that


> > > > +			err = -ENOENT;
> > > > +			goto out_error;
> > > > +		}
> > > > +		/*
> > > > +		 * ULONG_MAX is invalid on 64-bit because is INVALID_PFN.
> > > > +		 * On 32-bit return error to avoid truncation.
> > > > +		 */
> > > > +		if (v >= ULONG_MAX) {
> > > > +			err = -EINVAL;
> > > > +			goto out_error;
> > > > +		}
> > > 
> > > Does it make sense to continue the system running in case of
> > > truncation? This would be a 32-bit guest with more than 16TB of RAM
> > > and the Xen tools decided to place the Xenstore ring page above the
> > > 16TB boundary. This is a completely insane scenario IMO.
> > > 
> > > A proper panic() in this case would make diagnosis of that much
> > > easier (me having doubts that this will ever be hit, though).
> > 
> > While I agree panic() may be an option here (albeit I'm not sure why
> > that would be better than trying to cope with 0 and hence without
> 
> I could imagine someone wanting to run a guest without Xenstore access,
> which BTW will happen in case of a guest created by the hypervisor at
> boot time.
> 
> > xenbus), I'd like to point out that the amount of RAM assigned to a
> > guest is unrelated to the choice of GFNs for the various "magic"
> > items.
> 
> Yes, but this would still be a major tools problem which probably
> would render the whole guest rather unusable.

First let's distinguish between an error due to "hvm_param not
initialized" and an error due to more serious conditions, such as "pfn
above max".

"hvm_param not initialized" could mean v == 0 (as it would be today) or
v == ~0UL (if we change Xen to initialize all hvm_param to ~0UL). I
don't think we want to panic in these cases as they are not actually
true erroneous configurations. We should just stop trying to initialize
xenstore and continue with the rest.


The "pfn above max" case could happen if v is greater than the max pfn.
This is a true error in the configuration because the toolstack should
know that the guest is 32-bit so it should give it a pfn that the guest
is able to use. As Jan wrote in another email, for 32-bit the actual
limit depends on the physical address bits but actually Linux has never
been able to cope with a pfn > ULONG_MAX on 32-bit because xen_store_gfn
is defined as unsigned long. So Linux 32-bit has been truncating
HVM_PARAM_STORE_PFN all along.

There is also an argument that depending on kconfig Linux 32-bit might
only be able to handle addresses < 4G, so I don't think the toolstack
can assume that a 32-bit guest is able to cope with HVM_PARAM_STORE_PFN
> ULONG_MAX.  If Linux is 32-bit and HVM_PARAM_STORE_PFN > ULONG_MAX,
even if HVM_PARAM_STORE_PFN < address_bits_max I think it would be fair
to still consider it an error, but I can see it could be argued either
way. Certainly if HVM_PARAM_STORE_PFN > address_bits_max is an error.

In any case, I think it is still better for Linux to stop trying to
initialize Xenstore but continue with the rest because there is a bunch
of other useful things Linux can do without it. Panic should only be the
last resort if there is nothing else to do. In this case we haven't even
initialized the service and the service is not essential, at least it is
not essential in certain ARM setups.


So in conclusion, I think this patch should:
- if v == 0 return error (uninitialized)
- if v == ~0ULL (INVALID_PFN) return error (uinitialized)
- if v >= ~0UL (32-bit) return error (even if this case could be made to
  work for v < max_address_bits depending on kconfig)

Which leads to something like:

        /* uninitialized */
		if (v == 0 || v == ~0ULL) {
			err = -ENOENT;
			goto out_error;
		}
        /* 
         * Avoid truncation on 32-bit.
         * TODO: handle addresses >= 4G
         */
        if ( v >= ~0UL ) {
            err = -EINVAL;
            goto out_error;
        }


From xen-devel-bounces@lists.xenproject.org Thu Nov 18 22:25:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Nov 2021 22:25:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227595.393671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnpq3-0001rF-5N; Thu, 18 Nov 2021 22:25:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227595.393671; Thu, 18 Nov 2021 22:25:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnpq3-0001r8-1G; Thu, 18 Nov 2021 22:25:03 +0000
Received: by outflank-mailman (input) for mailman id 227595;
 Thu, 18 Nov 2021 22:25:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=998U=QF=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mnpq1-0001r2-S7
 for xen-devel@lists.xenproject.org; Thu, 18 Nov 2021 22:25:02 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ca3dad5-48be-11ec-a9d2-d9f7a1cc8784;
 Thu, 18 Nov 2021 23:24:58 +0100 (CET)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AIM68pL020982; 
 Thu, 18 Nov 2021 22:24:56 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cd4qyt3d1-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 18 Nov 2021 22:24:56 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AIM1A2h136555;
 Thu, 18 Nov 2021 22:24:54 GMT
Received: from nam11-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169])
 by userp3020.oracle.com with ESMTP id 3caq4wu3hy-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 18 Nov 2021 22:24:54 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB4336.namprd10.prod.outlook.com (2603:10b6:208:15f::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov
 2021 22:24:53 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021
 22:24:52 +0000
Received: from [10.74.108.36] (138.3.200.36) by
 BY5PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:1d0::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27 via Frontend
 Transport; Thu, 18 Nov 2021 22:24:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ca3dad5-48be-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=Md0tz9tREW9RabkkUpcmeh+S6AjifQUqo23EL6a5vBI=;
 b=v2rce0mFfUPz7zXaON4ZPAUfooeThHwufu8BsblJfpPEYOB9ZcIIuqCHe7s/QMOjGiuB
 b0FkNNN/wW7LVq1kPU2nYLrExXsVcMKYoM+j9/x+DvWcW4035rXl3HuAH5u/HCyRq6gq
 IbAwnBwEfp14AjEx3+aVUuFwO8hnPusCRalGkbbhPuskfGpn3Upyy3AQqJX4vd8g6Rq0
 6sBxeUC/ean9ZkzkYTHVNtdkuvQxfmxxY+P49r1p5hyyQzwyDN0S7PYi2r310tnV3zwd
 hzIwS5cTVbqL/uslM0dtmbEoqSbP+8bEvNBWn8/IN0YXDMh2X0eOMt/YRPgcMAg3JO28 +A== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XIczXN/aFF66ZSdG3ZnmNPWIiBcb+d5pa91TcClzvEZ4p89ELeK6gc44guzU2UX1OUzPZJRhkuikAM+CXkBHQQ2J9JgdlwGD0whu7vnnfBP+wTzjoDuUID8OHoBkBiuk+EF5r+InytIsUY9Y87ni7M7FyzC3nX8kf0jOCpZW1kPJ0Dvj9cQoYnvVTnILaxFQhExEXc3vxeQxC1qgTOc27K21vDZlGQJJCvJKq9N9v4T0NIN/1J+txm3IJ8zgpYQQtOxAfatEtQnNiseKgIw8LPzLMb6OWJzOSsthSvXzY63zcu3ZjbkfZ/iUliG1/XTxP7MzBmie1GM4jEGucAFwSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Md0tz9tREW9RabkkUpcmeh+S6AjifQUqo23EL6a5vBI=;
 b=Jq+yMCX2t3hwRQuzFq/Pc8jdGKLk0WrWSJKVYiwM4WxFY6c5z1dPrcN88288vs7B2RLopKMbndfj756XgVCqQNWEoZragVRFksUpUiPECfeOlSFn3jd7hSWBRNonfQ+cVt4wBPMiAzrlRjiSY7asdGSULiOHNbkRDNMOI6siNmndO0wbm4OvTMMEDqzU7BLv4lO5kKj3rAckJcVNTK0oUGhj/eTty3+fDdW4cVef3DlwlfbRE+HGB5E1ffSSgTa2KcwTMhy//koLJC8zpIVsvkrfbcJtjXYQKIUE+msUujpkTw3XU2rnV1tAWfq1TZ0kQZoyXmmyx2gpigtb+75SMg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Md0tz9tREW9RabkkUpcmeh+S6AjifQUqo23EL6a5vBI=;
 b=TF/QAYxjRUjN7vs+bOkgBG7QtCizZ99XgJYPdTyr3WxManIhX6M8+6eaU7Gpn9J4XGBnE8q30CmcXlLbhj/wbDFU0Wm/FPTXeLN+go/m2RtIS6KH3i/QR47yD15aGdc//yIyiZnr8mTO4To7h+a0BD9k6hpR0RbPX/RN/OyYRV4=
Message-ID: <fdfe4ba4-8f5f-47a2-98df-3dfdb50d8f6f@oracle.com>
Date: Thu, 18 Nov 2021 17:24:46 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>,
        Juergen Gross <jgross@suse.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
        linux-kernel@vger.kernel.org,
        Stefano Stabellini <stefano.stabellini@xilinx.com>,
        stable@vger.kernel.org
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
 <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
 <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>
 <b0cd6af9-66c4-3a73-734a-3a51d052fac2@suse.com>
 <alpine.DEB.2.22.394.2111181226460.1412361@ubuntu-linux-20-04-desktop>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <alpine.DEB.2.22.394.2111181226460.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY5PR04CA0008.namprd04.prod.outlook.com
 (2603:10b6:a03:1d0::18) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8b34a7c2-a17b-49aa-e018-08d9aae23db6
X-MS-TrafficTypeDiagnostic: MN2PR10MB4336:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB4336203567C3C7B9A73A42838A9B9@MN2PR10MB4336.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3383;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	/7JyEBx76QAgM4kszIFrRtlyhK3SIeJPdClNSoQE1+10ZyrJ2i/b4Uf3FN+Sz4JCZp/TeIt0SmAhPSPU7x/47and7r5EC4PthnCu+H4BXxx3lGJoC9MPIzzm6+92R3r6NM7q9pqLtqxagoaTlZTtxgWBBIT4GQJ8Fpfk8EnTECkO9SNBK2sBooyRj0J1C5Jz8215RQgMpp+bCb4N0YNC02RTwcnTqhVXaEHDYp7uxle2IlQ95DC21N4iBWZuGoZZhLBTmcjkg6kmx4TaZH8B2JEPrJqce6dllXVZkRPNATLl9rz4RVdFte377lBpWDGXUK/VjQQWd5dpTIBbD8WnGEbBcEAzn3hElkCm9p4oLxZvDY9/JI3TXrGb1703dtjhucvqvS1/3lLShZNcgfqgDqLoluLD8M1VCLH3O+DMQHApNa1KCIcTxZvZ/IjPrqODRbHjK/wfAgU8pTMIPndh5RcvrmVvnfFx9EwNnW8mmg/kLRD4mb1T2GnEBVMlfIZcvzCKhLcrCcFwNZtbbQV8ZDzsUXgzI/rXotxtXK45MM2vSQxZc0xxHNXqyulT/gv3trex2BFy0A7zHX3BmCgIuvk+YO/kxpVKzKTlBuYs4bcM4FBv3Dv+JZBE0oteRXPcj8QREVNFcnzqNktGYmsTuGZ3V4na0tHBAod+JPPmxegF79N5/TmgHQwgxJC4MH096ytAV5wDb244cCCbJadRY9OPZZdnAO+nAsXPE+ZVYGwsB1wWfkEeGPlosdFR98Ts
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(5660300002)(110136005)(53546011)(186003)(8676002)(6666004)(8936002)(4326008)(558084003)(2616005)(66556008)(44832011)(31686004)(86362001)(31696002)(66946007)(16576012)(38100700002)(316002)(2906002)(6486002)(508600001)(66476007)(26005)(36756003)(956004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?VzVtWGJCQ1lYQ2VTM1l1V29adk5WalRNNUJTWEpYM0duVXBoVVVkZkUzeU5Z?=
 =?utf-8?B?b05vVDlVVEZDem83ZExFNjZFUUNFaHJ0bVF5dk9hRFpMTnJmb3V0c2l5c2dF?=
 =?utf-8?B?dW9Cc1hQSVUyN0lYZ1JqbUF2SUFzYXV3aEswWndueTFoTTNlMHlvRVNOclpw?=
 =?utf-8?B?MlpiRlVVM29XSXNkNEQxWGc5czgrYUxPWVYrMXFjY0FDaVA3U3RvLzBJN0JX?=
 =?utf-8?B?SDgvMmF2RVl2WHgzRmUxV0VyeXBodVQ1emNvOGxpU2c5TUhpNnpPYlloak9N?=
 =?utf-8?B?ZG5sMXJBd0lWTUdENlVWTzJ0QTZycFkrTXl2YlAxZzgxMEJaNUNDNFQ4ZDBD?=
 =?utf-8?B?TEF3VGZXZnBqU1JqWnI5RlhWMUk1aVlycklhUURaeHlOZlh0MjY4NDk1SlBt?=
 =?utf-8?B?dXRaVi9BWS9xNjdNdDFEeCsyT3FKREM2SDFyd1IxazJSc1lndFRWTjBkOGNQ?=
 =?utf-8?B?WWRBYzN4Q2h4NWV2REhmb3JsZXBYYzFyYmhUVGZORlRhUHp1OVJRNEpRRUhh?=
 =?utf-8?B?dGRFV3h6TTFvSnVaN0l6dlVzcGNyajY3Ni9ZUElzb2NWVkVyckpwNGlFc0Z1?=
 =?utf-8?B?V1NjM1RTK2VHb0JwSzgyK05BZEd1c28zZDE5MnIrRm1SYnlkZDRwVFBqdng0?=
 =?utf-8?B?Y0J2R0l6L3BkMUgvWkNTRzg2dTV3Nmt1MlNzem1JSXlCZTN6elIwYkh4NDVZ?=
 =?utf-8?B?a09MZEZWK0RUdFBMWUNsV3Y1cHdORjdtRW9JUkl2TE9XajhLckpjc0ZLUVkw?=
 =?utf-8?B?ZkI4dzZZL05SSDVoSDhzUTNoeFlFMUkyMXdJNUp1ZForWEt4QWRqWmhJQjZD?=
 =?utf-8?B?eXBtS3FKNFp6dWtraFI1b3JPZVNnN3NpMkd3MklIYXljWWgvZDhldjdienRB?=
 =?utf-8?B?KzI0Y1FKRDZTcXIzdUJzYmkzODIxY3ZHYTBuSStieTFwR1MxdVo0d2dGMXh2?=
 =?utf-8?B?TzJrZk54aHcxWWR0N3Jhb1pwSDVFbVVCOWpOWDh4TlZZUys1YnR1WWY5RFdC?=
 =?utf-8?B?M0lLMzZKeUYxaXpOdUw3QnNDbjViTEpRTGViMlJDdHJ4b2tiUEo1V2ZOM3Iz?=
 =?utf-8?B?bDlvMXJpRTRFSGtrZGlmSkdvZTRpcWJhR1dMVGxkWXhNdk1XWk54RjRRNVVl?=
 =?utf-8?B?VlJpL0VKZE02TnNRaStDZnphdXBUaVFyK3R4Q1FTejJCcTlCVjdDc3JlSXkx?=
 =?utf-8?B?OU0vZ1YrbDRWWVd2UmN2YUVsVFlYdTc5Z2ZLODVHcm91UVRIcFl4U2lDQUxI?=
 =?utf-8?B?T1J4WW1FRUtadlhpcHNlL2tMWmdlVVlHSElydFhyZ2d4d1o3MkdlSU9JYzli?=
 =?utf-8?B?MDhqdU43eWdDN0FGRXlGODN4bi83WDJwVXFzd2lBeXpKaEgwRXVhYU9zTEp5?=
 =?utf-8?B?RWk2TEowemVicEd3b0xZUWJGNTNxYlcwc0RVTnFoTE0rbmNDZ1dHUHFWczlV?=
 =?utf-8?B?R3FRUDhZYVpYZWJPSTJFYzVpWFo1d1dYSFFVNXhpbW9WYW5kZFI1OEJTRlJE?=
 =?utf-8?B?eGJjTi90M0tuWmlHNTVhcHVCN1I3dkNGUk91T1FrN1NGZ3IrVjdaRzZubEhB?=
 =?utf-8?B?OUxvY0VvOGhXak5hS0ZUejZLaE9RVElrYzBYYnh5ZklVeitCU05tWmpBaWZk?=
 =?utf-8?B?bDFPUTJXSXZKVzNMKy9Bc1c2SXVmN25KaXIxR1lDZk90RkhZd0xQVWNlSmZw?=
 =?utf-8?B?WWZCLzIydlhXbWJKd05zTm90V25iRXIrYUdKRGZVSmZvZ080K3ZnUnJMbkEz?=
 =?utf-8?B?Vzg5RFJYZjF0SmU3RS8xVTE4Y3p1ZXR2OHN3VDBLZW9PY0dwWnFnakVFTWll?=
 =?utf-8?B?S1A5MVlpN0VxN0pUSXdKNWhFNGxtak1ER0p2NzFzSWowd2o2YzY4Mk9zL0h0?=
 =?utf-8?B?aVR3cUNDQSs1TXlrUWFXU1QxR3czWjVRVjBIMTdiL2xzN3JuQmlYR0JIVjY5?=
 =?utf-8?B?UC95TmpkYndYSVF1ZStCMTdpSzcwWG5mc083N0h1UGNwU3dlWjQxcFE1b01G?=
 =?utf-8?B?YzFnNktEOEZUelk2WmdXaDVxVDJwWE1SelBsalh3NDk3VXB5Skp5bDhFS1VN?=
 =?utf-8?B?NVNvSmF2aTJ2T0hUVzhYUml1ZDdySjdaSE9aMWJoN2ZBY1FSS00wWVJZajFn?=
 =?utf-8?B?cnJBRjIzc0ZVUXN1QUNheVR0TVg1aGhaL3dYKzNJUmlOejlzSUdxSk5VekNB?=
 =?utf-8?B?YUVwbHN3K0dxSHNzRmpGY001WFFaSUQ0eTQ2ZmJIdnB2OGxFSEpqTGxpL3l0?=
 =?utf-8?B?RXp2MVRFeUtRVXZKcUQyN3Y3SVVRPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8b34a7c2-a17b-49aa-e018-08d9aae23db6
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 22:24:52.6820
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JvHSt23gyASPAV/t1+L47VGXx42+fGK/HT7aTJ5fNI2IGstY25bh7JU55s4MyFdqsOORAhj0hfcHcN7XOG9jXMDMZxSj4vSM3gyrDpicIc4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4336
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10172 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 mlxscore=0
 phishscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111180114
X-Proofpoint-ORIG-GUID: bop7nLiiUjQsyb_RFUVGw23IbyGFwAdZ
X-Proofpoint-GUID: bop7nLiiUjQsyb_RFUVGw23IbyGFwAdZ


On 11/18/21 4:00 PM, Stefano Stabellini wrote:
>
>          /*
>           * Avoid truncation on 32-bit.
>           * TODO: handle addresses >= 4G
>           */
>          if ( v >= ~0UL ) {
>              err = -EINVAL;
>              goto out_error;
>          }


Since this is only relevant to 32-bit kernels then "#if BITS_PER_LONG == 32".


-boris



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 00:33:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 00:33:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227600.393681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnrpy-0005gV-Sq; Fri, 19 Nov 2021 00:33:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227600.393681; Fri, 19 Nov 2021 00:33:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnrpy-0005gO-Pr; Fri, 19 Nov 2021 00:33:06 +0000
Received: by outflank-mailman (input) for mailman id 227600;
 Fri, 19 Nov 2021 00:33:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TVl8=QG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnrpx-0005gI-7h
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 00:33:05 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 408dc629-48d0-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 01:33:03 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id AA54661A81;
 Fri, 19 Nov 2021 00:33:00 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 408dc629-48d0-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637281981;
	bh=1fElwPn9R/HfyDXXTOVjYSsM9qGxrjhRRiHKHxPiRHg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=H79BP+nXY7Vd+LpvrYVXo2XSIYYUFqgHn5NKOnbOmdQc4FgnfDz6y1VvQ0edmM73P
	 D+YQjTs+47xsBttsQcbVFazUX4ibDtazzmRgDw0FRqQIyHHeGp7hIJOhw72IRekPnK
	 e3aSgGDDxfNFCA80WNvvhtCsiYs+iMuvVDWNlxUJwULxS/I6n4rNOYw914aTkFupg5
	 bSaUEF4B21m/Z8Pa+j64dmyb1GtBVvKjVDLYXBMAmPfojsE0sUh30kJu4Tf0AsRJNh
	 /QP7T0rcExFyO2ylxs1yYwaARaM2dG25a2L0ifUDY9t/52S8+Rw48x8CLGdGTdtTvG
	 vN7qAlEYS3qrw==
Date: Thu, 18 Nov 2021 16:32:58 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr <olekstysh@gmail.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org, 
    linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Russell King <linux@armlinux.org.uk>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH V2 2/4] arm/xen: Switch to use gnttab_setup_auto_xlat_frames()
 for DT
In-Reply-To: <60cc5b07-5935-aa26-8690-353c779bbab5@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111181631020.1412361@ubuntu-linux-20-04-desktop>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com> <1635264312-3796-3-git-send-email-olekstysh@gmail.com> <alpine.DEB.2.21.2110271754400.20134@sstabellini-ThinkPad-T480s> <60cc5b07-5935-aa26-8690-353c779bbab5@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 11 Nov 2021, Oleksandr wrote:
> On 28.10.21 04:28, Stefano Stabellini wrote:
> 
> Hi Stefano
> 
> I am sorry for the late response.
> 
> > On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
> > > From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > 
> > > Read the start address of the grant table space from DT
> > > (region 0).
> > > 
> > > This patch mostly restores behaviour before commit 3cf4095d7446
> > > ("arm/xen: Use xen_xlate_map_ballooned_pages to setup grant table")
> > > but trying not to break the ACPI support added after that commit.
> > > So the patch touches DT part only and leaves the ACPI part with
> > > xen_xlate_map_ballooned_pages().
> > > 
> > > This is a preparation for using Xen extended region feature
> > > where unused regions of guest physical address space (provided
> > > by the hypervisor) will be used to create grant/foreign/whatever
> > > mappings instead of wasting real RAM pages from the domain memory
> > > for establishing these mappings.
> > > 
> > > The immediate benefit of this change:
> > > - Avoid superpage shattering in Xen P2M when establishing
> > >    stage-2 mapping (GFN <-> MFN) for the grant table space
> > > - Avoid wasting real RAM pages (reducing the amount of memory
> > >    usuable) for mapping grant table space
> > > - The grant table space is always mapped at the exact
> > >    same place (region 0 is reserved for the grant table)
> > > 
> > > Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > ---
> > > Changes RFC -> V2:
> > >     - new patch
> > > ---
> > >   arch/arm/xen/enlighten.c | 32 +++++++++++++++++++++++++-------
> > >   1 file changed, 25 insertions(+), 7 deletions(-)
> > > 
> > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
> > > index 7f1c106b..dea46ec 100644
> > > --- a/arch/arm/xen/enlighten.c
> > > +++ b/arch/arm/xen/enlighten.c
> > > @@ -59,6 +59,9 @@ unsigned long xen_released_pages;
> > >   struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS]
> > > __initdata;
> > >     static __read_mostly unsigned int xen_events_irq;
> > > +static phys_addr_t xen_grant_frames;
> > __read_mostly
> 
> ok
> 
> 
> > 
> > 
> > > +#define GRANT_TABLE_INDEX   0
> > >     uint32_t xen_start_flags;
> > >   EXPORT_SYMBOL(xen_start_flags);
> > > @@ -303,6 +306,7 @@ static void __init xen_acpi_guest_init(void)
> > >   static void __init xen_dt_guest_init(void)
> > >   {
> > >   	struct device_node *xen_node;
> > > +	struct resource res;
> > >     	xen_node = of_find_compatible_node(NULL, NULL, "xen,xen");
> > >   	if (!xen_node) {
> > > @@ -310,6 +314,12 @@ static void __init xen_dt_guest_init(void)
> > >   		return;
> > >   	}
> > >   +	if (of_address_to_resource(xen_node, GRANT_TABLE_INDEX, &res)) {
> > > +		pr_err("Xen grant table region is not found\n");
> > > +		return;
> > > +	}
> > > +	xen_grant_frames = res.start;
> > > +
> > >   	xen_events_irq = irq_of_parse_and_map(xen_node, 0);
> > >   }
> > >   @@ -317,16 +327,20 @@ static int __init xen_guest_init(void)
> > >   {
> > >   	struct xen_add_to_physmap xatp;
> > >   	struct shared_info *shared_info_page = NULL;
> > > -	int cpu;
> > > +	int rc, cpu;
> > >     	if (!xen_domain())
> > >   		return 0;
> > >     	if (!acpi_disabled)
> > >   		xen_acpi_guest_init();
> > > -	else
> > > +	else {
> > >   		xen_dt_guest_init();
> > >   +		if (!xen_grant_frames)
> > > +			return -ENODEV;
> > maybe we can avoid this, see below
> > 
> > 
> > > +	}
> > > +
> > >   	if (!xen_events_irq) {
> > >   		pr_err("Xen event channel interrupt not found\n");
> > >   		return -ENODEV;
> > > @@ -370,12 +384,16 @@ static int __init xen_guest_init(void)
> > >   	for_each_possible_cpu(cpu)
> > >   		per_cpu(xen_vcpu_id, cpu) = cpu;
> > >   -	xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
> > > -	if (xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
> > > -					  &xen_auto_xlat_grant_frames.vaddr,
> > > -					  xen_auto_xlat_grant_frames.count)) {
> > > +	if (!acpi_disabled) {
> > To make the code more resilient couldn't we do:
> > 
> > if (!acpi_disabled || !xen_grant_frames) {
> I think, we can.
> 
> On the one hand, indeed the code more resilient and less change.
> From the other hand if grant table region is not found then something weird
> happened as region 0 is always present in reg property if hypervisor node is
> exposed to the guest.
> The behavior before commit 3cf4095d7446 ("arm/xen: Use
> xen_xlate_map_ballooned_pages to setup grant table") was exactly the same in
> the context of the failure if region wasn't found.
> 
> ...
> 
> Well, if we want to make code more resilient, I will update. But, looks like
> we also need to switch actions in xen_dt_guest_init() in order to process
> xen_events_irq before xen_grant_frames, otherwise we may return after failing
> with region and end up not initializing xen_events_irq so xen_guest_init()
> will fail earlier than reaches that check.
> What do you think?
 
Yes, you are right. I was re-reading the patch to refresh my memory and
I noticed immediately that xen_dt_guest_init also need to be changed so
that xen_events_irq is set before xen_grant_frames.
 
I think it is a minor change that doesn't add complexity but make the
code more robust so I think it is a good idea

 
> > > +		xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
> > > +		rc =
> > > xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
> > > +
> > > &xen_auto_xlat_grant_frames.vaddr,
> > > +
> > > xen_auto_xlat_grant_frames.count);
> > > +	} else
> > > +		rc = gnttab_setup_auto_xlat_frames(xen_grant_frames);
> > > +	if (rc) {
> > >   		free_percpu(xen_vcpu_info);
> > > -		return -ENOMEM;
> > > +		return rc;
> > >   	}
> > >   	gnttab_init();



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 00:59:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 00:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227604.393693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnsFA-00082J-Uv; Fri, 19 Nov 2021 00:59:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227604.393693; Fri, 19 Nov 2021 00:59:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnsFA-00082C-Rp; Fri, 19 Nov 2021 00:59:08 +0000
Received: by outflank-mailman (input) for mailman id 227604;
 Fri, 19 Nov 2021 00:59:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TVl8=QG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnsF9-000826-J0
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 00:59:07 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3c51046-48d3-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 01:59:05 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 17C5460F14;
 Fri, 19 Nov 2021 00:59:03 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3c51046-48d3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637283543;
	bh=GctSgusPNnJzGCE58MSOzEI8+sqmTJV7hQouDc+Ntmc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=SZUhPGRT21IfRbX1voo4H4AZ9pzIFRQgrJEpMvgKjy2I1dgUd7sy0SEHjWSksWvwF
	 uA/70iA/c1c27rkXlmIPMKM32ePXHlyv9HIAFmOqNcpRYxylCn7bj3m8QbsEFb51OG
	 9oyJoxNa1XnPszreDyST04klLVrBj+F47pdJ7JhE3BmmD8pku5r81nZnDABboKioE+
	 fU7PmR6LpZ4k7udS1giyaZUFc1ts7mA0vvymqakpN3oamQsNnU3/66eRjOXMSRB2JV
	 B4rEj0pyDOWpc9hd0h3h4CB+a4TcqlTMAI3iOAKu8F11tKL7OIy9sn1iTZxxMxWFE3
	 sKOIIc9xd8dwg==
Date: Thu, 18 Nov 2021 16:59:01 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr <olekstysh@gmail.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
In-Reply-To: <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com> <1635264312-3796-4-git-send-email-olekstysh@gmail.com> <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s> <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 9 Nov 2021, Oleksandr wrote:
> On 28.10.21 19:37, Stefano Stabellini wrote:
> 
> Hi Stefano
> 
> I am sorry for the late response.
> 
> > On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
> > > From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > 
> > > The main reason of this change is that unpopulated-alloc
> > > code cannot be used in its current form on Arm, but there
> > > is a desire to reuse it to avoid wasting real RAM pages
> > > for the grant/foreign mappings.
> > > 
> > > The problem is that system "iomem_resource" is used for
> > > the address space allocation, but the really unallocated
> > > space can't be figured out precisely by the domain on Arm
> > > without hypervisor involvement. For example, not all device
> > > I/O regions are known by the time domain starts creating
> > > grant/foreign mappings. And following the advise from
> > > "iomem_resource" we might end up reusing these regions by
> > > a mistake. So, the hypervisor which maintains the P2M for
> > > the domain is in the best position to provide unused regions
> > > of guest physical address space which could be safely used
> > > to create grant/foreign mappings.
> > > 
> > > Introduce new helper arch_xen_unpopulated_init() which purpose
> > > is to create specific Xen resource based on the memory regions
> > > provided by the hypervisor to be used as unused space for Xen
> > > scratch pages.
> > > 
> > > If arch doesn't implement arch_xen_unpopulated_init() to
> > > initialize Xen resource the default "iomem_resource" will be used.
> > > So the behavior on x86 won't be changed.
> > > 
> > > Also fall back to allocate xenballooned pages (steal real RAM
> > > pages) if we do not have any suitable resource to work with and
> > > as the result we won't be able to provide unpopulated pages.
> > > 
> > > Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > ---
> > > Changes RFC -> V2:
> > >     - new patch, instead of
> > >      "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide
> > > unallocated space"
> > > ---
> > >   drivers/xen/unpopulated-alloc.c | 89
> > > +++++++++++++++++++++++++++++++++++++++--
> > >   include/xen/xen.h               |  2 +
> > >   2 files changed, 88 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/drivers/xen/unpopulated-alloc.c
> > > b/drivers/xen/unpopulated-alloc.c
> > > index a03dc5b..1f1d8d8 100644
> > > --- a/drivers/xen/unpopulated-alloc.c
> > > +++ b/drivers/xen/unpopulated-alloc.c
> > > @@ -8,6 +8,7 @@
> > >     #include <asm/page.h>
> > >   +#include <xen/balloon.h>
> > >   #include <xen/page.h>
> > >   #include <xen/xen.h>
> > >   @@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_lock);
> > >   static struct page *page_list;
> > >   static unsigned int list_count;
> > >   +static struct resource *target_resource;
> > > +static struct resource xen_resource = {
> > > +	.name = "Xen unused space",
> > > +};
> > > +
> > > +/*
> > > + * If arch is not happy with system "iomem_resource" being used for
> > > + * the region allocation it can provide it's own view by initializing
> > > + * "xen_resource" with unused regions of guest physical address space
> > > + * provided by the hypervisor.
> > > + */
> > > +int __weak arch_xen_unpopulated_init(struct resource *res)
> > > +{
> > > +	return -ENOSYS;
> > > +}
> > > +
> > >   static int fill_list(unsigned int nr_pages)
> > >   {
> > >   	struct dev_pagemap *pgmap;
> > > -	struct resource *res;
> > > +	struct resource *res, *tmp_res = NULL;
> > >   	void *vaddr;
> > >   	unsigned int i, alloc_pages = round_up(nr_pages, PAGES_PER_SECTION);
> > > -	int ret = -ENOMEM;
> > > +	int ret;
> > >     	res = kzalloc(sizeof(*res), GFP_KERNEL);
> > >   	if (!res)
> > > @@ -30,7 +47,7 @@ static int fill_list(unsigned int nr_pages)
> > >   	res->name = "Xen scratch";
> > >   	res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
> > >   -	ret = allocate_resource(&iomem_resource, res,
> > > +	ret = allocate_resource(target_resource, res,
> > >   				alloc_pages * PAGE_SIZE, 0, -1,
> > >   				PAGES_PER_SECTION * PAGE_SIZE, NULL, NULL);
> > >   	if (ret < 0) {
> > > @@ -38,6 +55,31 @@ static int fill_list(unsigned int nr_pages)
> > >   		goto err_resource;
> > >   	}
> > >   +	/*
> > > +	 * Reserve the region previously allocated from Xen resource to avoid
> > > +	 * re-using it by someone else.
> > > +	 */
> > > +	if (target_resource != &iomem_resource) {
> > > +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
> > > +		if (!res) {
> > > +			ret = -ENOMEM;
> > > +			goto err_insert;
> > > +		}
> > > +
> > > +		tmp_res->name = res->name;
> > > +		tmp_res->start = res->start;
> > > +		tmp_res->end = res->end;
> > > +		tmp_res->flags = res->flags;
> > > +
> > > +		ret = insert_resource(&iomem_resource, tmp_res);
> > > +		if (ret < 0) {
> > > +			pr_err("Cannot insert IOMEM resource [%llx - %llx]\n",
> > > +			       tmp_res->start, tmp_res->end);
> > > +			kfree(tmp_res);
> > > +			goto err_insert;
> > > +		}
> > > +	}
> > I am a bit confused.. why do we need to do this? Who could be
> > erroneously re-using the region? Are you saying that the next time
> > allocate_resource is called it could find the same region again? It
> > doesn't seem possible?
> 
> 
> No, as I understand the allocate_resource() being called for the same root
> resource won't provide the same region... We only need to do this (insert the
> region into "iomem_resource") if we allocated it from our *internal*
> "xen_resource", as *global* "iomem_resource" (which is used everywhere) is not
> aware of that region has been already allocated. So inserting a region here we
> reserving it, otherwise it could be reused elsewhere.

But elsewhere where?

Let's say that allocate_resource allocates a range from xen_resource.
>From reading the code, it doesn't look like iomem_resource would have
that range because the extended regions described under /hypervisor are
not added automatically to iomem_resource.

So what if we don't call insert_resource? Nothing could allocate the
same range because iomem_resource doesn't have it at all and
xen_resource is not used anywhere if not here.

What am I missing?


Or maybe it is the other way around: core Linux code assumes everything
is described in iomem_resource so something under kernel/ or mm/ would
crash if we start using a page pointing to an address missing from
iomem_resource?
 
 
> > >   	pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
> > >   	if (!pgmap) {
> > >   		ret = -ENOMEM;
> > > @@ -95,12 +137,40 @@ static int fill_list(unsigned int nr_pages)
> > >   err_memremap:
> > >   	kfree(pgmap);
> > >   err_pgmap:
> > > +	if (tmp_res) {
> > > +		release_resource(tmp_res);
> > > +		kfree(tmp_res);
> > > +	}
> > > +err_insert:
> > >   	release_resource(res);
> > >   err_resource:
> > >   	kfree(res);
> > >   	return ret;
> > >   }
> > >   +static void unpopulated_init(void)
> > > +{
> > > +	static bool inited = false;
> > initialized = false
> 
> ok.
> 
> 
> > 
> > 
> > > +	int ret;
> > > +
> > > +	if (inited)
> > > +		return;
> > > +
> > > +	/*
> > > +	 * Try to initialize Xen resource the first and fall back to default
> > > +	 * resource if arch doesn't offer one.
> > > +	 */
> > > +	ret = arch_xen_unpopulated_init(&xen_resource);
> > > +	if (!ret)
> > > +		target_resource = &xen_resource;
> > > +	else if (ret == -ENOSYS)
> > > +		target_resource = &iomem_resource;
> > > +	else
> > > +		pr_err("Cannot initialize Xen resource\n");
> > > +
> > > +	inited = true;
> > > +}
> > Would it make sense to call unpopulated_init from an init function,
> > rather than every time xen_alloc_unpopulated_pages is called?
> 
> Good point, thank you. Will do. To be honest, I also don't like the current
> approach much.
> 
> 
> > 
> > 
> > >   /**
> > >    * xen_alloc_unpopulated_pages - alloc unpopulated pages
> > >    * @nr_pages: Number of pages
> > > @@ -112,6 +182,16 @@ int xen_alloc_unpopulated_pages(unsigned int
> > > nr_pages, struct page **pages)
> > >   	unsigned int i;
> > >   	int ret = 0;
> > >   +	unpopulated_init();
> > > +
> > > +	/*
> > > +	 * Fall back to default behavior if we do not have any suitable
> > > resource
> > > +	 * to allocate required region from and as the result we won't be able
> > > to
> > > +	 * construct pages.
> > > +	 */
> > > +	if (!target_resource)
> > > +		return alloc_xenballooned_pages(nr_pages, pages);
> > The commit message says that the behavior on x86 doesn't change but this
> > seems to be a change that could impact x86?
> I don't think, however I didn't tested on x86 and might be wrong, but
> according to the current patch, on x86 the "target_resource" is always valid
> and points to the "iomem_resource" as arch_xen_unpopulated_init() is not
> implemented. So there won't be any fallback to use
> alloc_(free)_xenballooned_pages() here and fill_list() will behave as usual.
 
If target_resource is always valid, then we don't need this special
check. In fact, the condition should never be true.


> You raised a really good question, on Arm we need a fallback to balloon out
> RAM pages again if hypervisor doesn't provide extended regions (we run on old
> version, no unused regions with reasonable size, etc), so I decided to put a
> fallback code here, an indicator of the failure is invalid "target_resource".

I think it is unnecessary as we already assume today that
&iomem_resource is always available.


> I noticed the patch which is about to be upstreamed that removes
> alloc_(free)xenballooned_pages API [1]. Right now I have no idea how/where
> this fallback could be implemented as this is under build option control
> (CONFIG_XEN_UNPOPULATED_ALLOC). So the API with the same name is either used
> for unpopulated pages (if set) or ballooned pages (if not set). I would
> appreciate suggestions regarding that. I am wondering would it be possible and
> correctly to have both mechanisms (unpopulated and ballooned) enabled by
> default and some init code to decide which one to use at runtime or some sort?

I would keep it simple and remove the fallback from this patch. So:

- if not CONFIG_XEN_UNPOPULATED_ALLOC, then balloon
- if CONFIG_XEN_UNPOPULATED_ALLOC, then
    - xen_resource if present
    - otherwise iomem_resource

The xen_resource/iomem_resource config can be done at init time using
target_resource. At runtime, target_resource is always != NULL so we
just go ahead and use it.

 
> > 
> > >   	mutex_lock(&list_lock);
> > >   	if (list_count < nr_pages) {
> > >   		ret = fill_list(nr_pages - list_count);
> > > @@ -159,6 +239,9 @@ void xen_free_unpopulated_pages(unsigned int nr_pages,
> > > struct page **pages)
> > >   {
> > >   	unsigned int i;
> > >   +	if (!target_resource)
> > > +		return free_xenballooned_pages(nr_pages, pages);
> > > +
> > >   	mutex_lock(&list_lock);
> > >   	for (i = 0; i < nr_pages; i++) {
> > >   		pages[i]->zone_device_data = page_list;
> > > diff --git a/include/xen/xen.h b/include/xen/xen.h
> > > index 43efba0..55d2ef8 100644
> > > --- a/include/xen/xen.h
> > > +++ b/include/xen/xen.h
> > > @@ -55,6 +55,8 @@ extern u64 xen_saved_max_mem_size;
> > >   #ifdef CONFIG_XEN_UNPOPULATED_ALLOC
> > >   int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page
> > > **pages);
> > >   void xen_free_unpopulated_pages(unsigned int nr_pages, struct page
> > > **pages);
> > > +struct resource;
> > This is to avoid having to #include linux/ioport.h, right? Is it a
> > problem or is it just to minimize the headers dependencies?
> > 
> > It looks like adding #include <linux/ioport.h> below #include
> > <linux/types.h> in include/xen/xen.h would work too. I am not sure what
> > is the best way though, I'll let Juergen comment.
> Yes, the initial reason to use forward declaration here was to minimize the
> headers dependencies.
> I have rechecked, your suggestion works as well, thank you. So I would be OK
> either way, let's wait for other opinions.
> 
> 
> > 
> > 
> > > +int arch_xen_unpopulated_init(struct resource *res);
> > >   #else
> > >   #define xen_alloc_unpopulated_pages alloc_xenballooned_pages
> > >   #define xen_free_unpopulated_pages free_xenballooned_pages
> > > -- 
> > > 2.7.4
> > > 
> 
> [1] https://lore.kernel.org/lkml/20211102092234.17852-1-jgross@suse.com/
> 
> -- 
> Regards,
> 
> Oleksandr Tyshchenko
> 


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 01:20:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 01:20:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227613.393704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnsZH-000406-Pn; Fri, 19 Nov 2021 01:19:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227613.393704; Fri, 19 Nov 2021 01:19:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnsZH-0003zz-Lt; Fri, 19 Nov 2021 01:19:55 +0000
Received: by outflank-mailman (input) for mailman id 227613;
 Fri, 19 Nov 2021 01:19:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TVl8=QG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mnsZG-0003zt-If
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 01:19:54 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb7803cd-48d6-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 02:19:52 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id BA0156138D;
 Fri, 19 Nov 2021 01:19:50 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb7803cd-48d6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637284791;
	bh=Gxy95d9uTSFZ6s+xvZfv+fxwvVi6Av4nD/RW09/P+9k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=SjmXbKz20/RpYbcSNdiPGdQlbm8kQB5pXm1LmjRbuu2PLajv5FKfT75eHVgveifx7
	 NN+h4zZDiDUN8rRFKSqj4dbdEGXH56OvLyYpROXnMP4ASnFOQS1bzLrRJ+1/WGxgmR
	 YagdmEv16M3BeryJEWn2u/YsgJrh7itWyczZlRYM/7Ry5QtfcHg/THbAV31W7F0H3l
	 RyL/GNg+oYevGsVVlD5vDWVxPmQmCLMcaaRS6seIZ2mPusEYtE/QwT3DHkSnSAhucV
	 BgHk6vL3rg+5l5gPxUkDaQXQ7JYbIM7irxMm7rNJaeFAnXK/yXCXLqhKUdBUwsCRu1
	 atXinAriLoZ6Q==
Date: Thu, 18 Nov 2021 17:19:48 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr <olekstysh@gmail.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org, 
    linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Russell King <linux@armlinux.org.uk>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH V2 4/4] arm/xen: Read extended regions from DT and init
 Xen resource
In-Reply-To: <237f832d-5175-5653-18ee-058a7d7fa7a6@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111181701110.1412361@ubuntu-linux-20-04-desktop>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com> <1635264312-3796-5-git-send-email-olekstysh@gmail.com> <alpine.DEB.2.21.2110271803060.20134@sstabellini-ThinkPad-T480s> <237f832d-5175-5653-18ee-058a7d7fa7a6@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1809159159-1637284073=:1412361"
Content-ID: <alpine.DEB.2.22.394.2111181708270.1412361@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1809159159-1637284073=:1412361
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2111181708271.1412361@ubuntu-linux-20-04-desktop>

On Wed, 10 Nov 2021, Oleksandr wrote:
> On 28.10.21 04:40, Stefano Stabellini wrote:
> 
> Hi Stefano
> 
> I am sorry for the late response.
> 
> > On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
> > > From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > 
> > > This patch implements arch_xen_unpopulated_init() on Arm where
> > > the extended regions (if any) are gathered from DT and inserted
> > > into passed Xen resource to be used as unused address space
> > > for Xen scratch pages by unpopulated-alloc code.
> > > 
> > > The extended region (safe range) is a region of guest physical
> > > address space which is unused and could be safely used to create
> > > grant/foreign mappings instead of wasting real RAM pages from
> > > the domain memory for establishing these mappings.
> > > 
> > > The extended regions are chosen by the hypervisor at the domain
> > > creation time and advertised to it via "reg" property under
> > > hypervisor node in the guest device-tree. As region 0 is reserved
> > > for grant table space (always present), the indexes for extended
> > > regions are 1...N.
> > > 
> > > If arch_xen_unpopulated_init() fails for some reason the default
> > > behaviour will be restored (allocate xenballooned pages).
> > > 
> > > This patch also removes XEN_UNPOPULATED_ALLOC dependency on x86.
> > > 
> > > Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > ---
> > > Changes RFC -> V2:
> > >     - new patch, instead of
> > >      "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide
> > > unallocated space"
> > > ---
> > >   arch/arm/xen/enlighten.c | 112
> > > +++++++++++++++++++++++++++++++++++++++++++++++
> > >   drivers/xen/Kconfig      |   2 +-
> > >   2 files changed, 113 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
> > > index dea46ec..1a1e0d3 100644
> > > --- a/arch/arm/xen/enlighten.c
> > > +++ b/arch/arm/xen/enlighten.c
> > > @@ -62,6 +62,7 @@ static __read_mostly unsigned int xen_events_irq;
> > >   static phys_addr_t xen_grant_frames;
> > >     #define GRANT_TABLE_INDEX   0
> > > +#define EXT_REGION_INDEX    1
> > >     uint32_t xen_start_flags;
> > >   EXPORT_SYMBOL(xen_start_flags);
> > > @@ -303,6 +304,117 @@ static void __init xen_acpi_guest_init(void)
> > >   #endif
> > >   }
> > >   +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
> > > +int arch_xen_unpopulated_init(struct resource *res)
> > > +{
> > > +	struct device_node *np;
> > > +	struct resource *regs, *tmp_res;
> > > +	uint64_t min_gpaddr = -1, max_gpaddr = 0;
> > > +	unsigned int i, nr_reg = 0;
> > > +	struct range mhp_range;
> > > +	int rc;
> > > +
> > > +	if (!xen_domain())
> > > +		return -ENODEV;
> > > +
> > > +	np = of_find_compatible_node(NULL, NULL, "xen,xen");
> > > +	if (WARN_ON(!np))
> > > +		return -ENODEV;
> > > +
> > > +	/* Skip region 0 which is reserved for grant table space */
> > > +	while (of_get_address(np, nr_reg + EXT_REGION_INDEX, NULL, NULL))
> > > +		nr_reg++;
> > > +	if (!nr_reg) {
> > > +		pr_err("No extended regions are found\n");
> > > +		return -EINVAL;
> > > +	}
> > > +
> > > +	regs = kcalloc(nr_reg, sizeof(*regs), GFP_KERNEL);
> > > +	if (!regs)
> > > +		return -ENOMEM;
> > > +
> > > +	/*
> > > +	 * Create resource from extended regions provided by the hypervisor to
> > > be
> > > +	 * used as unused address space for Xen scratch pages.
> > > +	 */
> > > +	for (i = 0; i < nr_reg; i++) {
> > > +		rc = of_address_to_resource(np, i + EXT_REGION_INDEX,
> > > &regs[i]);
> > > +		if (rc)
> > > +			goto err;
> > > +
> > > +		if (max_gpaddr < regs[i].end)
> > > +			max_gpaddr = regs[i].end;
> > > +		if (min_gpaddr > regs[i].start)
> > > +			min_gpaddr = regs[i].start;
> > > +	}
> > > +
> > > +	/* Check whether the resource range is within the hotpluggable range
> > > */
> > > +	mhp_range = mhp_get_pluggable_range(true);
> > > +	if (min_gpaddr < mhp_range.start)
> > > +		min_gpaddr = mhp_range.start;
> > > +	if (max_gpaddr > mhp_range.end)
> > > +		max_gpaddr = mhp_range.end;
> > > +
> > > +	res->start = min_gpaddr;
> > > +	res->end = max_gpaddr;
> > > +
> > > +	/*
> > > +	 * Mark holes between extended regions as unavailable. The rest of
> > > that
> > > +	 * address space will be available for the allocation.
> > > +	 */
> > > +	for (i = 1; i < nr_reg; i++) {
> > > +		resource_size_t start, end;
> > > +
> > > +		start = regs[i - 1].end + 1;
> > > +		end = regs[i].start - 1;
> > > +
> > > +		if (start > (end + 1)) {
> > Should this be:
> > 
> > if (start >= end)
> > 
> > ?
> 
> Yes, we can do this here (since the checks are equivalent) but ...
>
> > > +			rc = -EINVAL;
> > > +			goto err;
> > > +		}
> > > +
> > > +		/* There is no hole between regions */
> > > +		if (start == (end + 1))
> > Also here, shouldn't it be:
> > 
> > if (start == end)
> > 
> > ?
> 
>    ... not here.
> 
> As
> 
> "(start == (end + 1))" is equal to "(regs[i - 1].end + 1 == regs[i].start)"
> 
> but
> 
> "(start == end)" is equal to "(regs[i - 1].end + 1 == regs[i].start - 1)"
 
OK. But the check:

  if (start >= end)

Actually covers both cases so that's the only check we need?


> > 
> > I think I am missing again something in termination accounting :-)
> 
> If I understand correctly, we need to follow "end = start + size - 1" rule, so
> the "end" is the last address inside a range, but not the "first" address
> outside of a range))

yeah
 

> > > +			continue;
> > > +
> > > +		/* Check whether the hole range is within the resource range
> > > */
> > > +		if (start < res->start || end > res->end) {
> > By definition I don't think this check is necessary as either condition
> > is impossible?
> 
> 
> This is a good question, let me please explain.
> Not all extended regions provided by the hypervisor can be used here. This is
> because the addressable physical memory range for which the linear mapping
> could be created has limits on Arm, and maximum addressable range depends on
> the VA space size (CONFIG_ARM64_VA_BITS_XXX). So we decided to not filter them
> in hypervisor as this logic could be quite complex as different OS may have
> different requirement, etc. This means that we need to make sure that regions
> are within the hotpluggable range to avoid a failure later on when a region is
> pre-validated by the memory hotplug path.
> 
> The following code limits the resource range based on that:
> 
> +    /* Check whether the resource range is within the hotpluggable range */
> +    mhp_range = mhp_get_pluggable_range(true);
> +    if (min_gpaddr < mhp_range.start)
> +        min_gpaddr = mhp_range.start;
> +    if (max_gpaddr > mhp_range.end)
> +        max_gpaddr = mhp_range.end;
> +
> +    res->start = min_gpaddr;
> +    res->end = max_gpaddr;
> 
> In current loop (when calculating and inserting holes) we also need to make
> sure that resulting hole range is within the resource range (and adjust/skip
> it if not true) as regs[] used for the calculations contains raw regions as
> they described in DT so not updated. Otherwise insert_resource() down the
> function will return an error for the conflicting operations. Yes, I could
> took a different route and update regs[] in advance to adjust/skip
> non-suitable regions in front, but I decided to do it on the fly in the loop
> here, I thought doing it in advance would add some overhead/complexity. What
> do you think?

I understand now.


> So I am afraid this check is necessary here.
> 
> For example in my environment the extended regions are:
> 
> (XEN) Extended region 0: 0->0x8000000
> (XEN) Extended region 1: 0xc000000->0x30000000
> (XEN) Extended region 2: 0x40000000->0x47e00000
> (XEN) Extended region 3: 0xd0000000->0xe6000000
> (XEN) Extended region 4: 0xe7800000->0xec000000
> (XEN) Extended region 5: 0xf1200000->0xfd000000
> (XEN) Extended region 6: 0x100000000->0x500000000
> (XEN) Extended region 7: 0x580000000->0x600000000
> (XEN) Extended region 8: 0x680000000->0x700000000
> (XEN) Extended region 9: 0x780000000->0x10000000000
> 
> *With* the check the holes are:
> 
> holes [47e00000 - cfffffff]
> holes [e6000000 - e77fffff]
> holes [ec000000 - f11fffff]
> holes [fd000000 - ffffffff]
> holes [500000000 - 57fffffff]
> holes [600000000 - 67fffffff]
> holes [700000000 - 77fffffff]
> 
> And they seem to look correct, you can see that two possible holes between
> extended regions 0-1 (8000000-bffffff) and 1-2 (30000000-3fffffff) were
> skipped as they entirely located below res->start
> which is 0x40000000 in my case (48-bit VA: 0x40000000 - 0x80003fffffff).
> 
> *Without* the check these two holes won't be skipped and as the result
> insert_resource() will fail.
> 
> 
> **********
> 
> 
> I have one idea how we can simplify filter logic, we can drop all checks here
> (including confusing one) in Arm code and update common code a bit:
> 
> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
> index 1a1e0d3..ed5b855 100644
> --- a/arch/arm/xen/enlighten.c
> +++ b/arch/arm/xen/enlighten.c
> @@ -311,7 +311,6 @@ int arch_xen_unpopulated_init(struct resource *res)
>         struct resource *regs, *tmp_res;
>         uint64_t min_gpaddr = -1, max_gpaddr = 0;
>         unsigned int i, nr_reg = 0;
> -       struct range mhp_range;
>         int rc;
> 
>         if (!xen_domain())
> @@ -349,13 +348,6 @@ int arch_xen_unpopulated_init(struct resource *res)
>                         min_gpaddr = regs[i].start;
>         }
> 
> -       /* Check whether the resource range is within the hotpluggable range
> */
> -       mhp_range = mhp_get_pluggable_range(true);
> -       if (min_gpaddr < mhp_range.start)
> -               min_gpaddr = mhp_range.start;
> -       if (max_gpaddr > mhp_range.end)
> -               max_gpaddr = mhp_range.end;
> -
>         res->start = min_gpaddr;
>         res->end = max_gpaddr;
> 
> @@ -378,17 +370,6 @@ int arch_xen_unpopulated_init(struct resource *res)
>                 if (start == (end + 1))
>                         continue;
> 
> -               /* Check whether the hole range is within the resource range
> */
> -               if (start < res->start || end > res->end) {
> -                       if (start < res->start)
> -                               start = res->start;
> -                       if (end > res->end)
> -                               end = res->end;
> -
> -                       if (start >= (end + 1))
> -                               continue;
> -               }
> -
>                 tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>                 if (!tmp_res) {
>                         rc = -ENOMEM;
> diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c
> index 1f1d8d8..a5d3ebb 100644
> --- a/drivers/xen/unpopulated-alloc.c
> +++ b/drivers/xen/unpopulated-alloc.c
> @@ -39,6 +39,7 @@ static int fill_list(unsigned int nr_pages)
>         void *vaddr;
>         unsigned int i, alloc_pages = round_up(nr_pages, PAGES_PER_SECTION);
>         int ret;
> +       struct range mhp_range;
> 
>         res = kzalloc(sizeof(*res), GFP_KERNEL);
>         if (!res)
> @@ -47,8 +48,10 @@ static int fill_list(unsigned int nr_pages)
>         res->name = "Xen scratch";
>         res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
> 
> +       mhp_range = mhp_get_pluggable_range(true);
> +
>         ret = allocate_resource(target_resource, res,
> -                               alloc_pages * PAGE_SIZE, 0, -1,
> +                               alloc_pages * PAGE_SIZE, mhp_range.start,
> mhp_range.end,
>                                 PAGES_PER_SECTION * PAGE_SIZE, NULL, NULL);
>         if (ret < 0) {
>                 pr_err("Cannot allocate new IOMEM resource\n");
> (END)
> 
> I believe, this will work on x86 as arch_get_mappable_range() is not
> implemented there,
> and the default option contains exactly what being used currently (0, -1).
> 
> struct range __weak arch_get_mappable_range(void)
> {
>     struct range mhp_range = {
>         .start = 0UL,
>         .end = -1ULL,
>     };
>     return mhp_range;
> }
> 
> And this is going to be more generic and clear, what do you think?

Yeah this is much better, good thinking!
--8323329-1809159159-1637284073=:1412361--


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 02:02:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 02:02:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227619.393715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mntDe-0000if-11; Fri, 19 Nov 2021 02:01:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227619.393715; Fri, 19 Nov 2021 02:01:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mntDd-0000iY-Tt; Fri, 19 Nov 2021 02:01:37 +0000
Received: by outflank-mailman (input) for mailman id 227619;
 Fri, 19 Nov 2021 02:01:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mntDc-0000iO-8Z; Fri, 19 Nov 2021 02:01:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mntDc-0003FM-1e; Fri, 19 Nov 2021 02:01:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mntDb-0005X3-JH; Fri, 19 Nov 2021 02:01:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mntDb-0002Tv-Io; Fri, 19 Nov 2021 02:01:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+JP6zhHjsSTRpLOSmpeMJhXJwsve9KfZD1i6Py6gUMM=; b=WBvDlx68x5Du5fSnO8adCwHhJ2
	YP4asDpWonVCCeTmG3cg9J7XyuM9mbJVfuQeBKtSwS5TUeGk3O5fmWpHCCqhGeZFpus6BBhwgebMF
	EHLyFBEg/4cq/4HA9lk8tCRJnYmNJPsuuenAP1b4UV09SGKNopjqZgke0BGlFj7aQHkE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166184-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166184: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=3bb87484e77d22cf4e580a78856529c982195d32
X-Osstest-Versions-That:
    qemuu=52cebbfc133fb784644edeae1e5b53aac3b64e5f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 02:01:35 +0000

flight 166184 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166184/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166170
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166170
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166170
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166170
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166170
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166170
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166170
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166170
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                3bb87484e77d22cf4e580a78856529c982195d32
baseline version:
 qemuu                52cebbfc133fb784644edeae1e5b53aac3b64e5f

Last test of basis   166170  2021-11-17 12:28:33 Z    1 days
Testing same since   166184  2021-11-18 09:26:57 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Kashyap Chamarthy <kchamart@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Thomas Huth <thuth@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   52cebbfc13..3bb87484e7  3bb87484e77d22cf4e580a78856529c982195d32 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 02:35:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 02:35:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227628.393737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mntkb-000463-WF; Fri, 19 Nov 2021 02:35:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227628.393737; Fri, 19 Nov 2021 02:35:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mntkb-00045w-T9; Fri, 19 Nov 2021 02:35:41 +0000
Received: by outflank-mailman (input) for mailman id 227628;
 Fri, 19 Nov 2021 02:35:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mntka-00045m-I2; Fri, 19 Nov 2021 02:35:40 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mntka-0003mv-Av; Fri, 19 Nov 2021 02:35:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mntkZ-0006Iq-V2; Fri, 19 Nov 2021 02:35:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mntkZ-00039b-UW; Fri, 19 Nov 2021 02:35:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ZWGtHRgw0c3vsCY4u2cVnZntbWbfPuyiFo+v5aYhEuE=; b=HX+gMWvAxOLjDHXM025lTpJ/co
	J47QO2/QACKILzczHVhxMZixF/kmp+uGtp0KK1QfhcrkfDtHjXL+ckVD9b5p6hKKOZkxpiAvmYqdd
	dIeGdPIWt+B3fxb1eqiAJve8QP/aZ/hn+QK8prPIqt4oowYWraaBj8vKzy+it3H0UbAA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166185-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166185: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1cffc48f1e1f972daeec579c62de4bb24f3152fa
X-Osstest-Versions-That:
    xen=306e0afbb382ec10081ab277c866e9e7c212dda5
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 02:35:39 +0000

flight 166185 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166185/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166172
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166172
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166172
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166172
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166172
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166172
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166172
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166172
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166172
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166172
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166172
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166172
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1cffc48f1e1f972daeec579c62de4bb24f3152fa
baseline version:
 xen                  306e0afbb382ec10081ab277c866e9e7c212dda5

Last test of basis   166172  2021-11-17 14:03:18 Z    1 days
Testing same since   166185  2021-11-18 09:38:01 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   306e0afbb3..1cffc48f1e  1cffc48f1e1f972daeec579c62de4bb24f3152fa -> master


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 03:20:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 03:20:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227634.393750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnuRk-0000SY-Fl; Fri, 19 Nov 2021 03:20:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227634.393750; Fri, 19 Nov 2021 03:20:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnuRk-0000SR-Cr; Fri, 19 Nov 2021 03:20:16 +0000
Received: by outflank-mailman (input) for mailman id 227634;
 Fri, 19 Nov 2021 03:20:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnuRj-0000SH-14; Fri, 19 Nov 2021 03:20:15 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnuRi-0004Vd-SG; Fri, 19 Nov 2021 03:20:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnuRi-0007de-GF; Fri, 19 Nov 2021 03:20:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnuRi-0002tB-Fk; Fri, 19 Nov 2021 03:20:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=X61MipeVXMPDxRpB0vuhuRuM1DpxJGQMbDQuZxQeOeY=; b=s30RGgX+TK0ESUE11f4q7798lR
	ugqaJY8J/MbpezLeB+yz7D/Kt+8+aCa3rFek8O/SBaTe//GmSFxwdrlZWws8J/UPCi4JVT0TXINfq
	S0RNrifNVe/9ePOZQ8tYiqURdg7UtveTIhdV5oSsezQEMGDrkGQu5SliAQ6KwEF8NI/g=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166183-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166183: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-examine:memdisk-try-append:fail:regression
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-xl-cubietruck:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=42eb8fdac2fc5d62392dcfcf0253753e821a97b0
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 03:20:14 +0000

flight 166183 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166183/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-examine      4 memdisk-try-append       fail REGR. vs. 165976
 build-i386-pvops              6 kernel-build             fail REGR. vs. 165976
 test-armhf-armhf-xl-cubietruck  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 165976
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-examine      8 reboot                   fail REGR. vs. 165976
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-raw  8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-libvirt-qcow2  8 xen-boot               fail REGR. vs. 165976
 test-armhf-armhf-xl-vhd       8 xen-boot                 fail REGR. vs. 165976
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 165976

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                42eb8fdac2fc5d62392dcfcf0253753e821a97b0
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   17 days
Failing since        165992  2021-11-02 05:40:21 Z   16 days   26 attempts
Testing same since   166183  2021-11-18 06:11:44 Z    0 days    1 attempts

------------------------------------------------------------
2167 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 251060 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 05:16:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 05:16:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227641.393764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnwGB-0002ey-Ah; Fri, 19 Nov 2021 05:16:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227641.393764; Fri, 19 Nov 2021 05:16:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnwGB-0002er-7k; Fri, 19 Nov 2021 05:16:27 +0000
Received: by outflank-mailman (input) for mailman id 227641;
 Fri, 19 Nov 2021 05:16:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Spps=QG=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mnwG9-0002el-A4
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 05:16:25 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d57dc6ea-48f7-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 06:16:22 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 5906E212C3;
 Fri, 19 Nov 2021 05:16:21 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0F0A013A42;
 Fri, 19 Nov 2021 05:16:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 37LxASUzl2FxIAAAMHmgww
 (envelope-from <jgross@suse.com>); Fri, 19 Nov 2021 05:16:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d57dc6ea-48f7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637298981; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=CZ8May4VfhuaiCLlX4LdXWGn2SOL5tYQ4J+aUlevn30=;
	b=C94y6rlvM/z7CPIf9CLqsdyr4RA5/4QTgtiqRdnY6VraBsjk/mqROE/kfEXN5CYA2KULQ5
	sv44aupivlmA79ogr2MPfzpsrz6c7szHVvKM3gneshZESnRO8OST8RC7K9eTUUbBMOcYQZ
	cvTXhMK94Wj9RufBqgEZpSN2OE5Wh+8=
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, boris.ostrovsky@oracle.com,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
 <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
 <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>
 <b0cd6af9-66c4-3a73-734a-3a51d052fac2@suse.com>
 <alpine.DEB.2.22.394.2111181226460.1412361@ubuntu-linux-20-04-desktop>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
Message-ID: <2d6a1818-e6d0-eb5d-5319-e0cd2e071b03@suse.com>
Date: Fri, 19 Nov 2021 06:16:20 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111181226460.1412361@ubuntu-linux-20-04-desktop>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="k9FHfRXORn3u1wfdVDhanJ9xPhj52Izt9"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--k9FHfRXORn3u1wfdVDhanJ9xPhj52Izt9
Content-Type: multipart/mixed; boundary="dq7zbyiopWgrKFF7IM4pZ8fIUMjtIo0st";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, boris.ostrovsky@oracle.com,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org
Message-ID: <2d6a1818-e6d0-eb5d-5319-e0cd2e071b03@suse.com>
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
 <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
 <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>
 <b0cd6af9-66c4-3a73-734a-3a51d052fac2@suse.com>
 <alpine.DEB.2.22.394.2111181226460.1412361@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2111181226460.1412361@ubuntu-linux-20-04-desktop>

--dq7zbyiopWgrKFF7IM4pZ8fIUMjtIo0st
Content-Type: multipart/mixed;
 boundary="------------1D5CADEDF14EBB1AB90E832F"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------1D5CADEDF14EBB1AB90E832F
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 18.11.21 22:00, Stefano Stabellini wrote:
> On Thu, 18 Nov 2021, Juergen Gross wrote:
>> On 18.11.21 09:47, Jan Beulich wrote:
>>> On 18.11.2021 06:32, Juergen Gross wrote:
>>>> On 18.11.21 03:37, Stefano Stabellini wrote:
>>>>> --- a/drivers/xen/xenbus/xenbus_probe.c
>>>>> +++ b/drivers/xen/xenbus/xenbus_probe.c
>>>>> @@ -951,6 +951,28 @@ static int __init xenbus_init(void)
>>>>>     		err =3D hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>>>>>     		if (err)
>>>>>     			goto out_error;
>>>>> +		/*
>>>>> +		 * Return error on an invalid value.
>>>>> +		 *
>>>>> +		 * Uninitialized hvm_params are zero and return no error.
>>>>> +		 * Although it is theoretically possible to have
>>>>> +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it
>>>>> is
>>>>> +		 * not zero when valid. If zero, it means that Xenstore hasn't
>>>>> +		 * been properly initialized. Instead of attempting to map a
>>>>> +		 * wrong guest physical address return error.
>>>>> +		 */
>>>>> +		if (v =3D=3D 0) {
>>>>
>>>> Make this "if (v =3D=3D ULONG_MAX || v=3D=3D 0)" instead?
>>>> This would result in the same err on a new and an old hypervisor
>>>> (assuming we switch the hypervisor to init params with ~0UL).
>=20
> Sure, I can do that
>=20
>=20
>>>>> +			err =3D -ENOENT;
>>>>> +			goto out_error;
>>>>> +		}
>>>>> +		/*
>>>>> +		 * ULONG_MAX is invalid on 64-bit because is INVALID_PFN.
>>>>> +		 * On 32-bit return error to avoid truncation.
>>>>> +		 */
>>>>> +		if (v >=3D ULONG_MAX) {
>>>>> +			err =3D -EINVAL;
>>>>> +			goto out_error;
>>>>> +		}
>>>>
>>>> Does it make sense to continue the system running in case of
>>>> truncation? This would be a 32-bit guest with more than 16TB of RAM
>>>> and the Xen tools decided to place the Xenstore ring page above the
>>>> 16TB boundary. This is a completely insane scenario IMO.
>>>>
>>>> A proper panic() in this case would make diagnosis of that much
>>>> easier (me having doubts that this will ever be hit, though).
>>>
>>> While I agree panic() may be an option here (albeit I'm not sure why
>>> that would be better than trying to cope with 0 and hence without
>>
>> I could imagine someone wanting to run a guest without Xenstore access=
,
>> which BTW will happen in case of a guest created by the hypervisor at
>> boot time.
>>
>>> xenbus), I'd like to point out that the amount of RAM assigned to a
>>> guest is unrelated to the choice of GFNs for the various "magic"
>>> items.
>>
>> Yes, but this would still be a major tools problem which probably
>> would render the whole guest rather unusable.
>=20
> First let's distinguish between an error due to "hvm_param not
> initialized" and an error due to more serious conditions, such as "pfn
> above max".
>=20
> "hvm_param not initialized" could mean v =3D=3D 0 (as it would be today=
) or
> v =3D=3D ~0UL (if we change Xen to initialize all hvm_param to ~0UL). I=

> don't think we want to panic in these cases as they are not actually
> true erroneous configurations. We should just stop trying to initialize=

> xenstore and continue with the rest.
>=20
>=20
> The "pfn above max" case could happen if v is greater than the max pfn.=

> This is a true error in the configuration because the toolstack should
> know that the guest is 32-bit so it should give it a pfn that the guest=


I don't think so. All x86 PVH/HVM guests start booting in 32-bit mode.

> is able to use. As Jan wrote in another email, for 32-bit the actual
> limit depends on the physical address bits but actually Linux has never=

> been able to cope with a pfn > ULONG_MAX on 32-bit because xen_store_gf=
n
> is defined as unsigned long. So Linux 32-bit has been truncating
> HVM_PARAM_STORE_PFN all along.

The question is whether the number of physical address bits as presented
to the guest is always >=3D 44. If not the actual limit is less than
ULONG_MAX. Other than that you are right: a PFN larger than a 32-bit
ULONG_MAX will be truncated by a 32-bit guest.

> There is also an argument that depending on kconfig Linux 32-bit might
> only be able to handle addresses < 4G, so I don't think the toolstack
> can assume that a 32-bit guest is able to cope with HVM_PARAM_STORE_PFN=

>> ULONG_MAX.  If Linux is 32-bit and HVM_PARAM_STORE_PFN > ULONG_MAX,
> even if HVM_PARAM_STORE_PFN < address_bits_max I think it would be fair=

> to still consider it an error, but I can see it could be argued either
> way. Certainly if HVM_PARAM_STORE_PFN > address_bits_max is an error.

Right. The tools should NEVER put the frame above 4G for a non-PV guest.

> In any case, I think it is still better for Linux to stop trying to
> initialize Xenstore but continue with the rest because there is a bunch=

> of other useful things Linux can do without it. Panic should only be th=
e
> last resort if there is nothing else to do. In this case we haven't eve=
n
> initialized the service and the service is not essential, at least it i=
s
> not essential in certain ARM setups.
>=20
>=20
> So in conclusion, I think this patch should:
> - if v =3D=3D 0 return error (uninitialized)
> - if v =3D=3D ~0ULL (INVALID_PFN) return error (uinitialized)
> - if v >=3D ~0UL (32-bit) return error (even if this case could be made=
 to
>    work for v < max_address_bits depending on kconfig)
>=20
> Which leads to something like:
>=20
>          /* uninitialized */
> 		if (v =3D=3D 0 || v =3D=3D ~0ULL) {
> 			err =3D -ENOENT;
> 			goto out_error;
> 		}
>          /*
>           * Avoid truncation on 32-bit.
>           * TODO: handle addresses >=3D 4G
>           */
>          if ( v >=3D ~0UL ) {
>              err =3D -EINVAL;
>              goto out_error;

I think at least in this case a pr_err("...") should be added.

Silent failure is not nice.


Juergen

--------------1D5CADEDF14EBB1AB90E832F
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------1D5CADEDF14EBB1AB90E832F--

--dq7zbyiopWgrKFF7IM4pZ8fIUMjtIo0st--

--k9FHfRXORn3u1wfdVDhanJ9xPhj52Izt9
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGXMyQFAwAAAAAACgkQsN6d1ii/Ey/B
mgf8CeBF7aQ7MCZzknGdgTgOEM6ZT59iOsQaIj2gd/8mNjdLxmb57oAPWsXqP34QvpbdhWvQpWaP
P6HjSFA91VTAY+Tj1cTxcFQt5tb7t2ZCBMeuzfRCVitfEwGbGRWY2/Rn4LuRZayBVEiMxNa8cyDt
9I4nVLcN+2atND2UsnJ/qXM5CNlRELepxI8fm95/u4pC10Ih9ntaaHl5Ith2zlzmgA4GXi5qxqSp
Hm/+pohiLIl8T60rWW7W3GBC0K4MDj/26q2Zbd6WokVLOYtLofxjpaPnrS7o/w4VPIVSS5hrNyf6
SP5WV13CqMeHZqgEfRhq5tIcktJQv6au5XBAmlyvAw==
=fAIM
-----END PGP SIGNATURE-----

--k9FHfRXORn3u1wfdVDhanJ9xPhj52Izt9--


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 07:58:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 07:58:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227646.393776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnymH-00006k-6t; Fri, 19 Nov 2021 07:57:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227646.393776; Fri, 19 Nov 2021 07:57:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnymH-00006d-3e; Fri, 19 Nov 2021 07:57:45 +0000
Received: by outflank-mailman (input) for mailman id 227646;
 Fri, 19 Nov 2021 07:57:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnymF-00006E-OZ
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 07:57:43 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f4d524a-490e-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 08:57:42 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2057.outbound.protection.outlook.com [104.47.4.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-28-0KEf8So2OoKP9lL3zTm7tQ-1; Fri, 19 Nov 2021 08:57:40 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3120.eurprd04.prod.outlook.com (2603:10a6:802:e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Fri, 19 Nov
 2021 07:57:39 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 07:57:39 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0119.eurprd06.prod.outlook.com (2603:10a6:20b:465::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Fri, 19 Nov 2021 07:57:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f4d524a-490e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637308661;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IuciwUj8k0MDAnrhMZDZbD2cFgi46CwvvxiKh7SC2No=;
	b=V73+eRHN5hcZWZAR8Lzw+6IfM/md6kejluffjl2X4ypWFWAuy4miHK5bZRsXuTPKlW6hvr
	RjAh3rIwnLwL2WleRR5FM6B7dDjvlB3pogygey9bufeurbqDT/wQ2sXMdBjKwON06b+jfe
	jr32qcQs9lwny6yb7F6n8gKtJeEtUEY=
X-MC-Unique: 0KEf8So2OoKP9lL3zTm7tQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bgt80h/Eu0gbTXE5sztabtISH+cFILhqBywcYOJpYSuHCOi9v6/Y+rmRnuxrni+usz5D3B8SIEh/yS28B7RH9RLxC9RQx3X1edkhTdoZts9n4zxndr2//pDyDjjOXfiPE+n8A27G4nIWGpkvlTFfBU9FC8wbnhZjOUqo6niwondInONO0YwVFUoma67pq3MtKQg8zAG22pIQuc5jIvuAddMeI6Uw+Edsq1DH49QpKoGCCWBCcH1nm1Cfpeij4CX+P2HgwJT9xxQHTEetgofjANYwPk2eebAFiDEwQ9LsOBzbWkMSlKvQ1C3H/N1U3jk0py2vkY0qix7euQ5RxKwAfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AhC+gXUL7sP9vCz+tuCYMC5rpJ53h+BYaZEXZfZCEAs=;
 b=f4VRPFmTQHWN9vH3AIOm4sh8KqSJs/vIKL3Z880DnmdKDjRtmBxDjinG/i35okPq7xkETyXTFjAuZ84u0sRN6lyGQpfQV9hGDH1i5R+bbCPhN18P1poCXWJWiH6YUKTJUfoM9TXXE7MWedxd7e2hQlAVhT7sJSZFPzuKVHWYpNU8LD9ElgZK9hdMbQ/UIrQ3OMfRRQl8LM0Y5CBmvLrgGghQEAVJR/We5AewyZfty4yUqn0wep4Nuzn160wOi3K6DPJJuFjL8f+/Z7dDhTplLYQla8DrVtK8IrIQ+apwSh7W9JEpMvaUy9srB7NM6n4uwCF90VgRkzHMbgWU7BwP7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9c2f5986-f217-0e67-66fc-4ed8ff29713b@suse.com>
Date: Fri, 19 Nov 2021 08:57:37 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH 0/3] x86/Viridian: ExProcessorMasks handling improvements
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>
CC: Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <c8e8767b-111c-5eec-15c4-a7cb60a99283@suse.com>
 <0b8a1864-5ae9-3b19-4d43-893a5777985e@srcf.net>
 <44ccd257-6c8b-c35c-a0be-1ebdbd6d8ad6@suse.com>
 <0352b245-8dee-c960-18e2-ee0ae5846001@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <0352b245-8dee-c960-18e2-ee0ae5846001@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0119.eurprd06.prod.outlook.com
 (2603:10a6:20b:465::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d41a9ea6-f7a2-402a-0bf7-08d9ab3241bd
X-MS-TrafficTypeDiagnostic: VI1PR04MB3120:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3120DF489C91A64F3C32F39AB39C9@VI1PR04MB3120.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Xa1zqE59lR6NQhWAd2Zuq09/mp/8LqLZfDqA9GguPz286SB5jU82vawCbh8rU+bNIumfPWOp7FkQKVTFf7uSj9uzMONLaDktiR5V9gtLEuOe/ILBeBkSs5tYM/SA3oOsrbb4k14fnaxKicdp+2tPY+mQ9zG+S6m6cfSwMmsTLD4LKY9ETxOL/EJD1WTnR/ss5vVqStnKUbAfUUNccHPktnpd924SLEFV9SarjNbhW2XuIVuQ/XSNezh9HM4HU5DYKYk4SZBtBq7V0815Ym6UlaE1aSDHjL+P7fNV+9dMRquiORl6hMe4pSYp9/sqelCH46/N7Ax/7OlORxA3xkjT+3fxCFKSue49Kb2/tYE1Kdbh1ea2aEIA4EAeDufJHjS9ZzZtJmv/dhaPNXPa+iObUCYUm47kB9BeBGius697cpqlqfxXiolsyxQ1ymafD0t/DHkJ7J/BssgjCbk9DnYbxwp3oRccW4Hg/S7R46FfmsvdXquhWm8LxnXJ67k/z85jqqINkGizsy8rZXOnfkL45bAqm1/B0k8xFVml0TRFQh4usBPkczX3NJX8Rvr8v3Y+WYBMKTwcP5+MyjI8gXZ/Zd5e0DlMdabLlT2LMFzkJeZbt2n1Cb02wROa9WF9b3ooDEV35FJs0xDtcDyiGe5xl9/qYFrnvmTxdMW7dZDnTceYeIomRaqEoGXGwMaAE73NezkRWcMMrjW5NUJUC5clm/cI8KqOw7SXbkWjrdvYFjc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(366004)(316002)(16576012)(86362001)(6916009)(31696002)(31686004)(956004)(36756003)(5660300002)(6486002)(2616005)(8676002)(8936002)(54906003)(83380400001)(53546011)(38100700002)(186003)(26005)(66946007)(66556008)(2906002)(4326008)(66476007)(508600001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Kkdkxb3983f/8i2DFgyyPtu9OzziTxi7c798vUdCwGiYsS1FOlrQCqbHI8bM?=
 =?us-ascii?Q?cD3oQsdZ020eSdAjzQb540TcQgZv3BsHE402ONZ8a2VfeNLIw8ovs5bp2b6d?=
 =?us-ascii?Q?T56gsU+V3NV4tXUe1c7ZMHWH/lf79N6b1pGLEtGos/3MCKCPl00c68HMgQoY?=
 =?us-ascii?Q?SynHq/XrQ4tiEc/nuBpCY/1pYDyv+7mpm9Ka9nbsjmXeWMaw2eBqc+S4jpQS?=
 =?us-ascii?Q?hmMzd2OqtkmwhaS/rCUBVbLPzZaeqlTtH5HFKcq9QoAOQa6s+crZFqW1OOlA?=
 =?us-ascii?Q?YC4g6rdS2rXXbgkdY5GAmAQ7zj+7iqgI429og17b24HpcEZkxxlBW0DiBxWo?=
 =?us-ascii?Q?ChQBbrQ4+hyXlr8ccOBX8kLB3o7zd8pIvlfTY9hNofq8WHRB0GylHPhA6Jt/?=
 =?us-ascii?Q?JW58L3OLR7MhL3d//yBruhDgay5l5esgYqtbP9tO2Z2ibwOdS+PJNSpChKy2?=
 =?us-ascii?Q?/o/Wzccepk91SbEdW/SqL8ztsM1VtIDDyiVXhw7XsRHxukgt+W4Ja8xtp3iT?=
 =?us-ascii?Q?YodemYCcV0gQN8h4BdQHWGxDLWElhc1FT5HTfMA7LVaDvYeVfM4KvTlxs8pL?=
 =?us-ascii?Q?6LOwCeQjgQ59GvlsF29nxGGfi5vNkMTjoYbZ6LJ5C/T5k17G3U28MxR0xzzg?=
 =?us-ascii?Q?jT3L60nGUaFBh/NbeR/uajJDM14ofbuWEGloNvE/9j6GuHAHTVVl3aYpN5At?=
 =?us-ascii?Q?/HkH46dq/0DcOpGh4u/kodKWCkdLSWBfLmx9VkAybDnb0cIORPPS+OfqMnxa?=
 =?us-ascii?Q?TpQOGw2a9bTbZYEy7lBf1xVNE9xYAlQotDd4uLorlukEM6JkOWEEJM7P18Na?=
 =?us-ascii?Q?HkP/ucMk2Qp62ZnpJPNPu9QqEoWZLqav62Ne4BraAAGksIoa1gf+55D8Crc3?=
 =?us-ascii?Q?bhtkDiHnu83OXQqoAgKcGlYMLIDTx9yJK60XYvROVgTHmtf6dv7TfZLqBTHF?=
 =?us-ascii?Q?XDa/T+qe/zkRKfc/IbpxZvGTR1hsS3mRmMlhXUXqPmS7CIzdI/Nfs3UkvXX1?=
 =?us-ascii?Q?B6Vwyx7zdTi1crakPx4EPnie0pjinTNJH2X2gVzF3zRR1/k2X56aQpiS+TbY?=
 =?us-ascii?Q?ofYQ1SwFjJ4ElVyUnfo9APUyhzwZfrMTg0iSSDtDHI4BMBoQgDAO4zbSFoup?=
 =?us-ascii?Q?VUByVG8kzCRmhAjvybnpwRvDiy3uZZBGHIPLb80wD1mS7pO16F8U3tMhjmi2?=
 =?us-ascii?Q?7aAvq34RjwJbF89hiW94OPIK2PHPO2FCB5yUGsYlhASufEyX1ZnOMUokPToR?=
 =?us-ascii?Q?czHbY2IZIzleAfByAIIX0pFy98sH55R+COXdqtc+4CQ7V4j76VSfLDPj2oCM?=
 =?us-ascii?Q?ofzvPkX0tp6Xvwpj06mReYirJpO/b1Ibr7cHGE73MnDIE2Y8UfWrXxxaXXcr?=
 =?us-ascii?Q?p5XeCZjkMy6wdbNLCDuS1T8Gy6hvZlO8G/VcG7UKeaTdc3CRA9NaGBCNJCG2?=
 =?us-ascii?Q?psJ8RA4/inVjOmjBIOajrwIIBJ8BL8uZv1Q/s4QJRAbedQWuctK13WqJVvxL?=
 =?us-ascii?Q?lonswH0s2wGDAixCiP/DuPlWkRyBvV/G10ev85IAsPoJRqCoEm3KrOiB33dl?=
 =?us-ascii?Q?HPc47uNmUFgKOsoo2biPGHc/6RrkumvIlT3bOL1sJ1pvrbNP9q/+mCl+tL9r?=
 =?us-ascii?Q?4B8eRKXCaPd8tEhXbxBtjnc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d41a9ea6-f7a2-402a-0bf7-08d9ab3241bd
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 07:57:39.1057
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pOA5RbTri3UVMa2oWulTK2BQzD3e+WQt1O0QoWR+i/TBJiLYfM7c2U600/wSqMqzcWGoL2/AM6uYkQ+4WA0Wxw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3120

On 18.11.2021 19:05, Andrew Cooper wrote:
> On 18/11/2021 13:34, Jan Beulich wrote:
>> On 18.11.2021 14:20, Andrew Cooper wrote:
>>> On 18/11/2021 13:12, Jan Beulich wrote:
>>>> I've noticed the bugs fixed in patch 1 only while doing the other clea=
nup.
>>>>
>>>> 1: fix error code use
>>>> 2: drop dead variable updates
>>>> 3: fold duplicate vpset retrieval code
>>> Oh, nice.=C2=A0 This makes it rather easier to do the flush short-circu=
it for
>>> HV_GENERIC_SET_ALL.
>> To be honest I first thought it might, but now I'm not sure anymore.
>=20
> Just this delta:
>=20
> diff --git a/xen/arch/x86/hvm/viridian/viridian.c
> b/xen/arch/x86/hvm/viridian/viridian.c
> index 658e68f7f2bb..c8c05bfb04a1 100644
> --- a/xen/arch/x86/hvm/viridian/viridian.c
> +++ b/xen/arch/x86/hvm/viridian/viridian.c
> @@ -771,7 +771,8 @@ static int hvcall_flush_ex(const union
> hypercall_input *input,
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sizeof(input_para=
ms)) !=3D HVMTRANS_okay )
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -EINVAL;
> =C2=A0
> -=C2=A0=C2=A0=C2=A0 if ( input_params.flags & HV_FLUSH_ALL_PROCESSORS )
> +=C2=A0=C2=A0=C2=A0 if ( input_params.flags & HV_FLUSH_ALL_PROCESSORS ||
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 input_params.set.format=
 =3D=3D HV_GENERIC_SET_ALL )
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vcpu_bitmap =3D NULL;
> =C2=A0=C2=A0=C2=A0=C2=A0 else
> =C2=A0=C2=A0=C2=A0=C2=A0 {
>=20
> which now I come to think of it independent of your cleanup, and small
> enough to be folded into my main IPI change.

FTAOD please keep my R-b there with this addition.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 07:59:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 07:59:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227650.393787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnyoO-0000gY-Kf; Fri, 19 Nov 2021 07:59:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227650.393787; Fri, 19 Nov 2021 07:59:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnyoO-0000gR-GE; Fri, 19 Nov 2021 07:59:56 +0000
Received: by outflank-mailman (input) for mailman id 227650;
 Fri, 19 Nov 2021 07:59:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/r4T=QG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mnyoM-0000gD-HC
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 07:59:54 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac262b1e-490e-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 08:59:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac262b1e-490e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637308792;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=pTtrypl90DsDq5pe8TgWhmGYbYrvVJA5PR2TSYv1OfU=;
  b=LZ8JDYvExGsm4ZYRX+DWizdK3+Cu7J4jbcujNy4hEmNBYmDzVq5cnakp
   zxKZVTp/4pT85WcSLTLgpPwVhFH3ktJRsvEH7jGWE1wfNgqDN0jE6q+G7
   qAepfqcLLSOubQ5jQJqa74B5bWRApvKqgQd3Hagwx0iVqvjhA8ahxJju8
   U=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: NgFFt/xYt2HbMjeYF3CiqIMqBkpkd5+H9qv/9bayrTRNSUlXJt2CNqDA5zk37yBkCakndVdZ2j
 5w0DUn/b/qguxwBTa43yOGKaoIvtDo5th96sxT0AyeRb2Syq7vAN5qTHVXN4GTw5nTGGZcoOwq
 FshkDQKfiImfOKEtlf5WzcCysyNfqX0mXfvWqKRSmZAHvN+pbmKbK0OT0J6nAV6QTojUq1og1g
 sOH3RL5JjxYhraIntD4kspau47AmYxPlkitxL1Ji49z2sngxTZ49R2v3OnOS6/H/fCA45vqome
 BTfBvlIk9Kz734wc3ei+dtOh
X-SBRS: 5.1
X-MesageID: 58218831
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:u8UdkqDrMawIWhVW/xLnw5YqxClBgxIJ4kV8jS/XYbTApDl2hGYAy
 WcYWm2DaKuDNjP1fognb4Sy8BxQu5XcyNI2QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540EI7x4bVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/2xaVteh15
 t9xn6OxTSInBrz9idQhekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvWQvI8Ih25YasZmQMjyZ
 cpHUyZUZhnkeSd0N20xGrIkk7L97pX4W2IB8w/EzUYt2EDI1xB42rXpNNvTe/SJSN9Tk0Leo
 XjJl0ziHhwFPcaDjzqE9n6hjPXGmy/TVIUIErCi6flwg0bVzWsWYDUaXEW2ieO0gUm/X5RYM
 UN80jA1rbIz7kWuZtLmGQCyqziPt3Y0Rd1UFOEr7RCX/aDd6Q2ZG2ssQyZIbZots8pebT8ny
 F6P2c/oDDpHsbuJRHbb/bCRxRuuMC0cNkceZisJSwQU7t2lq4Y25jrTT9NLAKOzyNrvFlnY2
 DmPsSU6wakTjMQCyqGn1V3BmHeot5/PCAkv6W3/XWWj9Ap1IpGkY4+A7kLS5vJNao2eSzGpu
 XEensGE4eMmDJeTlTeMSuEAALGo4fmeNDTWx1VoGvEJ/DOo/mOlfJxBpjR3Ik5mP9wsaTLve
 FXUuw5a+NlUJnTCRbV+Y5+1Td8ry6fgPd3/U7bfad8mSoB4aQuv7CxoI0mK0AjFiVUll+cvJ
 M+zfsOlDHJcAqNipBKzSuESwaIDzSElg37LSJb9iRmrzNK2fnmOQ60CN1iIRuk46q2Duwjet
 d1YMqOixhFSVuS4fyfW9JIIIE4DBX8hDJvypopccevrCgt5GkkxBvnJ27Qjdod52aNPmY/g8
 n+0VUBZz17+rWbaMgjMYXdmAJvkVIxzqn8TNiU2MVGlnXMkZO6H7qgFcIAsVaI67+ElxvlxJ
 9ECf8iDGeheUTTv9DEUbJ27p4tnHDypjw+TOyuuYBAkYoVtAQfO/7fMfAz09G8RDiuruMszq
 rGI2gTBR5cZWAN4D92QY/Wqp3uuuVANleQ0WFHHSvFDdUOp/IV0JijZiv4sP9pKORjF3iGd1
 QudHVEfv+ali4Yx8cLVjKGe6YmzGu11H1FyAGXQq72xMEHy/Helh4lJU++KfDXUfGLy5KimI
 +5SypnUMuADnVtMm5pxFfBs161Wz9Dvvb5B0gN8HHjRKUvtAbdpOHqu0sxGt6kLzbhc0SO6V
 U6C9cNTEamYM8PiVlgKLUwqafrr/fsZgCXI5PI5ZkDz/jZq/aGvWF9XeRKLjUR1Jrx/OpIo2
 ucltcsf7SSwjxMrNpCNiSU8yoiXBiVeCeN97MhcWdK1zFpwor1fXXDCIn/V/Lu3b/tGDmMVI
 zuxipLTtqVs+mOXJhLfCkPx9eZagJ0PvjVDw1kDO0mFl7L5uxMn4PFC2W9pF1oIl32rx8o2Y
 zE2bBMtec1i6h8x3JAbN11ADT2tE/FwFqbZ71IS3FPUQECzPoAmBD1sYL3dlKz1Ho81Q9S6w
 F164Dq6OdoJVJuotsfXZaKDg6a+JTCW3lec8P1L5+zfQ/EHjcDZqqGvf3EUjBDsHNk8gkbKz
 cEzor0vM/OjZH5N/v1nY2V/6Vj2YErZTIClaas/lJ7l4EmGIG3isdRwAx7ZljxxywzirhbjV
 p0GyjNnXBWizieexg339oZXS4KYaMUBvYJYEpuyfDZum+LG8lJB7cKBngCj1TRDa4g/zq4Ax
 nb5KmvqOnaOnkFdh2KlhJACYgJUl/FfP1aitA10mc1Uf68+XBZELRtvj+Dq5irNa2OKPXu85
 Wv+WkMf9MQ7oaxElIrwCKRTQQKyLNL4TuOT9w6v9d9JaLvy3Q3m7mv5c3HrYFZbO6U/QdNym
 ejfudL7xhqd7r03T3rYi9+KEKwQvZe+W+9eM8TWKnhGnHTdBJ+wskVbo23oe4ZUlN5959W8Q
 1fqYsWHatNICcxWw2dYanYCHk9FWbj3dKrpuQi0s++IVkoGyQXCId7+rS3pYGhXezUmIZr7D
 gOo6f+i6soB9NZHBQMeBuEgCJh9eQexVawjftz3lD+ZEmj33Q/S5uq8zUItsGiZBGOFHcD25
 YP+aiL/LBni6rvVyNx5spBpukFFBnhKnuRtLFkW/MR7im7mATdef/gdK5gPFrpdjjf2iMPjf
 DjIYWYvVXf9UDBDfUmu6djvRF7CVOkHO9O/LT015UKELSyxAdrYUrdm8y5h5VZweyfik777e
 Y1PpCWoM0jj2IxtSMYS+ue/0LVuyf7tz34V/Vzwzp7pCBEEDLRWjHFsEWKhj8Ac/x0hQKkTG
 VUIeA==
IronPort-HdrOrdr: A9a23:aUGelqOPwPmN0cBcT1L155DYdb4zR+YMi2TDiHoedfUFSKOlfp
 6V8MjztSWVtN4QMEtQ/+xoHJPwPE80kqQFnbX5XI3SJjUO3VHIEGgM1/qG/9SNIVybygcZ79
 YeT0EcMqyBMbEZt7eD3ODQKb9Jq7PrgcPY55as854ud3AQV0gJ1XYJNu/xKDwOeOApP+tfKH
 LKjfA32QZINE5nIvhSQRI+Lp/+juyOsKijTQ8NBhYh5gXLpTS06ITiGxzd+hsFSTtAzZor7G
 CAymXCl+uemsD+7iWZ+37Y7pxQltek4txfBPaUgsxQDjn3kA6naKloRrXHljEop+OE7kosjb
 D30lgdFvU2z0mUUnC+oBPr1QWl+DEy60X6wVvdunfnqdyRfkNwN+NxwaZiNjfJ4Uspu99xlI
 hR2XiCipZRBRTc2Azg+tnhTXhR5wmJiEtntdRWo21UUIMYZrMUh5cY5llpHJAJGz+/wJw7Ed
 NpENrX6J9tABOnhkjizyxSKeGXLzAO9k/seDlEhiXV6UkWoJlB9Tpb+CRF9U1wsq7USPF/lq
 z52+pT5ehzp/QtHNdA7dE6MIKK41z2MGDx2V2pUCDa/YE8SjjwQs3MkfgIDN/DQu1/8HJ1ou
 WYbG9l
X-IronPort-AV: E=Sophos;i="5.87,246,1631592000"; 
   d="scan'208";a="58218831"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HiBl/5MhdIB66FXUfRcvxq3m7Xj0Mpj4y468PtnQs9IpWpbhLXGZsog0qXudlCnuqhmmrWVfjYydkWJpHDMA5IUFa4rgaWscKfEW3WhthPfvg45qw+ez8xvL+AtTtKUs9eZyA44d2p0IIJ/tTRRxj0hx67EOOsdbZIrnAB9fkOrnLzg6/1asmWJfVYzT6nOjZXgEur1HxJVlwTUnL7WP2iNNck8m2nmXuhcDCGzWbMzTAa2DJDodgw/20vbR7baN8nC1oTsbd86LfeEcfBFgiYdTApXzmauGSqbLC1wPWIR/wStnOOItHbnQRe8qDvndu1K7FunMPVdspQ5uH3QOng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=STQvdXtUWHGGlzcqqpb6ApyoyLMpnfYNh8VgaY2BInI=;
 b=DS1Wt42XmqXMD/w7rv2ZUNwUlFhRIPpS+b/FzLki57WB0kadt6PqwAtEfnEtBSjQvfkC/8Vxj3I+8mo5/AzR67gguQPxjqrqgjS2oMWqOvCk4FlAoEse788XprvOqblmL02taYZAxkTKlKL2tIz0K3Z9MoAF/E5hA/qeSDQ8wHZDLIj4RXFxHv5gpuLaz2q8aSWGxT9PkZw1gn8Tm+E2wXx1qSxqHha5WLCEDVbZJ2MV+bKHrrUx9OXBK17lJEfmzQ9+BP/EK6SNbIK6JoKMWYonjwdK8D21WVYrUqonPJoSKrew4WxOMBqQWD03Z6ae5/n/KcPIycsiiFkPDDTpYA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=STQvdXtUWHGGlzcqqpb6ApyoyLMpnfYNh8VgaY2BInI=;
 b=c+IKvSVheLe+p0vQi5oIMUUjYmWZbTi/XQ1LOgfBfDK+//M7rJiWT+Sv8hFeM0SEZLXWzkVlFfCXWeSnUiJSjh/0kYABsJ2X+kbosgrvcOKrTpRHl12TxkipNxnlUkMKFbeZRayytEYzcH0SQ8tf3+1elHVtxC2eOdeD8Q23KSA=
Date: Fri, 19 Nov 2021 08:59:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr <olekstysh@gmail.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Bob Eshleman <bobbyeshleman@gmail.com>,
	"Christian Lindig" <christian.lindig@citrix.com>, Christopher Clark
	<christopher.w.clark@gmail.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>,
	Dario Faggioli <dfaggioli@suse.com>, David Scott <dave@recoil.org>, "Doug
 Goldstein" <cardoe@cardoe.com>, Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, "Julien
 Grall" <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Marek
 =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	"Meng Xu" <mengxu@cis.upenn.edu>, Nick Rosbrook <rosbrookn@ainfosec.com>,
	"Paul Durrant" <paul@xen.org>, Quan Xu <quan.xu0@gmail.com>, Rahul Singh
	<rahul.singh@arm.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, "Samuel
 Thibault" <samuel.thibault@ens-lyon.org>, Shriram Rajagopalan
	<rshriram@cs.ubc.ca>, Stefano Stabellini <sstabellini@kernel.org>, "Stewart
 Hildebrand" <stewart.hildebrand@dornerworks.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Tim Deegan <tim@xen.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Message-ID: <YZdZZsgXjZv/rh66@Air-de-Roger>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <CAPD2p-nb7u7om7zv5-KvfZTsmGis9uGfBkvwjEXrym_+4PN-RQ@mail.gmail.com>
 <YZaOgGWfbDkIq4Lq@Air-de-Roger>
 <d4f3d50d-9875-f7bf-2c82-83f8fedb8cfc@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d4f3d50d-9875-f7bf-2c82-83f8fedb8cfc@gmail.com>
X-ClientProxiedBy: MR2P264CA0075.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::15) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bcca3481-da7a-4d64-5dae-08d9ab3289e3
X-MS-TrafficTypeDiagnostic: DM5PR03MB2491:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM5PR03MB2491220BF8D505E4AB9621C68F9C9@DM5PR03MB2491.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: cDrfy9Ai8xsHhnJ0LMpl/PdVxAAoP1jdRohRDR00IYUWHyh7Tzq+lmYcQeGmzubwtgwL8ArAYOIXxvhKp5P417j7AZL9GOyoideDcL+0BXm6xWx+1BHCLwbep42t2H0xnXJ9Mtb/psvWn9gnXnBT+fjhvgO/PS42ZZN/W1B3/4FKGmV4hPcrzeDFThTX4Z51sWntRxau1Au4J9ph2sMIRPhMWykZBXOyqnmRj78EZEQvCuzG90dLzwgCtw7sDeiNZaeB9LSE5TY+okjNQYSAJ6P3mTz/E6oxJ8elInQCCMZ7BbUuPwhyQWw7Ax7/dAltWF3sP5JziPYn5kUKTkQzL9Vecehvv/fKTHn2jv7b//Hjp9b4fXrOvWjluIwJ0CyScX0OEnJyh+8P9JQUImXMU6O7M+Ke6iLQ13URj0QxOZjs0+6kckJRIvrPu0Iw7/eCnfJf5YB6zvHsdNbo56Koba2wRfXBNDFeJXIuujmAhNeqcnnhcv0vqDwh9sA02EcMvc8ZKRm1p4Vp0LP5pKHu6lY3/Zwr1t+7UNZGaj9D69eEKxpcAloZzrNmNXzjNQY1LJsnGkLTPz/aW0NDc3AZT9RF30O4FxjZIhmfDxHha8ttpFxnHObaXAQIFgi2R0j4HtV5FdDgoIgp97IZeIH5Clf+F+Iu6FtksFjRysSFbg75FKweGM2eQlWdUBrmLYhMngGFx8DglxmaT6bn81c37xZ/OPSwUFFdXhQvdagdksyTvqw4PGaAFDey+AkipPyeYs4QRVyZw7RDQ2kwx8/oTpzO+JInAi46e5XE23mktPX+ZNF4wEvpIe6MJTCJL4zcg7wROHavlSsPPSI5Hevv2A==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(956004)(186003)(86362001)(6486002)(26005)(83380400001)(66946007)(4326008)(6496006)(966005)(2906002)(82960400001)(33716001)(85182001)(38100700002)(9686003)(5660300002)(66556008)(7406005)(8936002)(66476007)(8676002)(54906003)(7416002)(6666004)(6916009)(53546011)(316002)(508600001)(59356011)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WmhxSzFFcklVZjZ2QlVMRzl6bGJDb2t6M3R6dWZQZ1prWFZ6c3ZaZXNpblV6?=
 =?utf-8?B?NzNyZFZrMUNzT1l2WG0yV0UzZFZnWFJCaU9MRGF6aXdtVW5zc3U0b2pyY216?=
 =?utf-8?B?dEZKWjdzVUROdkVibDB4YTEvRTQ3anByMmxxM0orMXpQY2JpQldFU2djRkVm?=
 =?utf-8?B?RGNBOUpUb1ZTeXcvM2NRSi9OVS9OOU4yaXBkY2l2VEh0SVBVbEdSVndzQU41?=
 =?utf-8?B?eE1BZWxwVVlwTGY4WTRGU0ZKQVJWQlROY1dxZS8wOFlpSFU1c1NRZWtRUkdj?=
 =?utf-8?B?Z2l3TVlCQ1dSckFFV25KR2l0UVozR1krQ05VWmEwNG5GZ05qSW9ZSmZGeFM5?=
 =?utf-8?B?N2ZWZUh4eWZEQnRpS1M2MVVaU3BSc1NGZW44cmRDbFJuNlFRRkhJd2hWZ2kz?=
 =?utf-8?B?dHVTSmdheXlIN3hnYlJSak85NWduamZFRTVyN3cwdWJIUFlEMHo3NTdkRThC?=
 =?utf-8?B?WTYyQkdCRnlIdXkveHkySnIvbVZWVS95N2tBREprZG5YbFU2T2ZlZUpSaHVl?=
 =?utf-8?B?bGhkdEF2OTg5ZTY1ZFNJc2hUZkVqMDFaZ2V6UndQNnlPWmk4T1dkYkQ3TTZS?=
 =?utf-8?B?M1puTmF3UkdGUkxzNGdiUkFPY0tvMUI4SlQyT1A3cnN0Mnh4U2ZET2xEMXVa?=
 =?utf-8?B?TGlRTlZ5eFRuL2ZxVStFd1dIelNqc0VaRUlzbncwZEN2cHJ2ZHFVeTI3aGdS?=
 =?utf-8?B?Wm9XR09EbVZFL0tUUU5xcjRocjRtSmliQTJubFFlQ2FIVjVIMlFwdHZyYUhW?=
 =?utf-8?B?ZUh5SC92R2NLNXJqT0tDaEc3TGp6YjNFSzJzb05HN0hxZkRvdGFHcG5na3RY?=
 =?utf-8?B?UWxBOEEyOU5zSTg3QTQ4TFk5K21IcVI4Q3diLzVTRmhmNjNvSGx4QVJTV0kz?=
 =?utf-8?B?UHlJaTU5anNPYVhacjZCTlZUa0ZvUG5MNnFQMEswT1hzM0dIbE50dUNDY3Bx?=
 =?utf-8?B?Q1hxbTd4OVhpd0YyNDBTMmdQWGdiTzc2RnRJTWs3TWRxUkRGT1h6dC91VXA5?=
 =?utf-8?B?bEtybG9uK0haemNITWoybDBub1BsMXZWUVVDd1Z4OWxvVzR2K0lXRFhMbjUw?=
 =?utf-8?B?cXA5bW9FYUlScU52YUc3UzdjMEhpVnBBTVYxa1hvMnozN3Mxb0V1RzZYUEZa?=
 =?utf-8?B?MGlUbVcyajZ1U3JGdW0yMWlLY2lTcjBOV1JMOCtKL2RJOFlFcUtNaVRrV2xo?=
 =?utf-8?B?dVR4ZWlqME83TDcrZ2t1cXJWeGIwOHQ1VU9GUGt2SkNoK2JsOTZuamJJbU5i?=
 =?utf-8?B?SXk2cFZLOXdLK3lQMGExM1l5ZDJpNG9lRlMwNHlaQ0t6WGk4cHJlOWtsbWRJ?=
 =?utf-8?B?TGhla0VSakNrdENpaVNhSVY4V1FvOHpGSHV2aEp0M3Q3MVZ3L1JOeEpJTFJj?=
 =?utf-8?B?bnN0THVlMjUxWnk0M3Zma28xdVRQMjdaUG5BVE8xWGJMbC95VFB5aVgyODU5?=
 =?utf-8?B?VWwrMy82QjVoZEVueVUzZmJnVEFZTnVSRjIvajlteEZVQk83WE4zaXhSMzNm?=
 =?utf-8?B?dXRvcyt6aUFwQ1JjUHdUbDZCYTJWNE5ndHZOMmJ2YVJsbUJhc2hNZVN6YlF3?=
 =?utf-8?B?eDJ3T0dTVFR2b1hCQ05FV1NsMXRwd2g3UnNKVnFTd1BBdWJyRGRGN1lhWjhr?=
 =?utf-8?B?NThtOFJTbFdncHFadFdoZGxSOHhReW5VZjFnMG1EWHZIZ0ZocUlCajlmNlhm?=
 =?utf-8?B?VWVXTTgyR2srNW1EQllKckZVRjRqOFp4dGl0ZVpucGQ5d3Nhb2xoSm00YjZG?=
 =?utf-8?B?djRTY1JvaHBqVnRzQVNMQXZrYnhrODhRYmh6QmpYL3k0WEF5cU92dDM1YWlk?=
 =?utf-8?B?MlRaVXVZTnJDR3lQVkZDMmhKeUxYRktnU2Jyd0kyQXkweEV5RGg4cjRTdGR0?=
 =?utf-8?B?U0pSNEEydmtpNWgrdGhOZkYyT0ZGamh0U0ZTR3g1a3hhOThsMGUyOU1uZ3Vi?=
 =?utf-8?B?U2JkWG8rYTFkc2hHUUl1Wit6ZTVSancydDdJY3RoMGh2cUNWNnVmQkIxWkxo?=
 =?utf-8?B?SVoxUjhUTk9rMEpYMnZ6VVBLUzlvdnVzYzB0T1ZGb3oydEZxd01SZzNYa2tH?=
 =?utf-8?B?YUZWYTFZMDE5d0lSUkNGblRqZG9hR1h3UlRkUitwL1pPNFNRQ3BFb1JrRk5Q?=
 =?utf-8?B?Rk9qYmpBVkx4aHVYcTFmWGZiVTNVYVA4K01teWdybGdiUWxCZVE3UzJ1VFBs?=
 =?utf-8?Q?2try/7aOkNf0oM0ae3sQY7A=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: bcca3481-da7a-4d64-5dae-08d9ab3289e3
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 07:59:40.4777
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MiYQsWJi02o0JvmUs7mNXsqf5wXQS/XXo9e+rMSWXxeNuuZG7PGGwNiiwVuufVYTsKQ/di3Mhb+hj4Dc7Ppd5Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2491
X-OriginatorOrg: citrix.com

On Thu, Nov 18, 2021 at 09:04:30PM +0200, Oleksandr wrote:
> 
> On 18.11.21 19:33, Roger Pau Monné wrote:
> 
> Hi Roger
> 
> 
> > On Thu, Nov 18, 2021 at 06:11:07PM +0200, Oleksandr Tyshchenko wrote:
> > > On Wed, Nov 17, 2021 at 11:54 AM Roger Pau Monne <roger.pau@citrix.com>
> > > wrote:
> > > 
> > > Hi Roger, all
> > > 
> > > [Sorry for the possible format issues]
> > > 
> > > Document some of the relevant changes during the 4.16 release cycle,
> > > > likely more entries are missing.
> > > > 
> > > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > > > ---
> > > >   CHANGELOG.md | 11 +++++++++++
> > > >   1 file changed, 11 insertions(+)
> > > > 
> > > > diff --git a/CHANGELOG.md b/CHANGELOG.md
> > > > index ad1a8c2bc2..8b0bdd9cf0 100644
> > > > --- a/CHANGELOG.md
> > > > +++ b/CHANGELOG.md
> > > > @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](
> > > > https://keepachangelog.com/en/1.0.0/)
> > > >    - qemu-traditional based device models (both, qemu-traditional and
> > > > ioemu-stubdom) will
> > > >      no longer be built per default. In order to be able to use those,
> > > > configure needs to
> > > >      be called with "--enable-qemu-traditional" as parameter.
> > > > + - Fixes for credit2 scheduler stability in corner case conditions.
> > > > + - Ongoing improvements in the hypervisor build system.
> > > > + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> > > > + - 32bit PV guests only supported in shim mode.
> > > > + - Improved PVH dom0 debug key handling.
> > > > + - Fix booting on some Intel systems without a PIT (i8254).
> > > > 
> > > I would add "Various fixes for OP-TEE mediator (Arm)" here and ...
> > > 
> > > 
> > > 
> > > > +
> > > > +### Added
> > > > + - 32bit Arm builds to the automated tests.
> > > > + - New x86 pagetable APIs.
> > > > + - Arm vPMU support.
> > > > 
> > > "Extended regions support, device tree only (Arm)" here.
> > > 
> > > ...
> > > The extended regions are ranges of unused address space exposed to domains
> > > as
> > > "safe to use" for special memory mappings.
> > I've worded this as:
> > 
> > "Report unpopulated memory regions safe to use for foreign mappings,
> > Arm and device tree only."
> > 
> > As "extended regions" was IMO too vague. Let me know if that's OK.
> 
> I think, it is OK. Nit: maybe replace "foreign" with "foreign/grant"? I
> would be OK either way.

Maybe, I would consider grants as foreign mappings also, ie: the
memory is foreign to the domain, but I can see this being confusing as
we have a specific kind of mappings that are named foreign.

Does replacing foreign with external seem better?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 08:24:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 08:24:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227661.393798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnzC4-0004Pe-Ud; Fri, 19 Nov 2021 08:24:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227661.393798; Fri, 19 Nov 2021 08:24:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnzC4-0004PX-Qn; Fri, 19 Nov 2021 08:24:24 +0000
Received: by outflank-mailman (input) for mailman id 227661;
 Fri, 19 Nov 2021 08:24:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mnzC3-0004PR-4y
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 08:24:23 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18ed4be5-4912-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 09:24:22 +0100 (CET)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2054.outbound.protection.outlook.com [104.47.1.54]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-14-mon7UZqdMJ6BW8djFTm3Dg-1; Fri, 19 Nov 2021 09:24:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2605.eurprd04.prod.outlook.com (2603:10a6:800:57::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20; Fri, 19 Nov
 2021 08:24:17 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 08:24:17 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0053.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Fri, 19 Nov 2021 08:24:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18ed4be5-4912-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637310261;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=flmX9PFhQZs53xscWkDSqgKIyEAwpQZmabzx+s9Uz58=;
	b=Qu+F2MTVJW46WFL2175bMjJUkZoUjVBVndjrUGEUeP7B9IbHhNb94jUdzY7tCA+NBHrv0s
	XkVRtJl+EPgmib3021TejkLLUmTQAJlnZSEhkbfylsxhh83gbpe+kWXFw5j0dbc2qVf7lz
	hXsg14GhkZ0c1PmMZ53L8YyKXLUEWGc=
X-MC-Unique: mon7UZqdMJ6BW8djFTm3Dg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GdDdY7pqUei2F7/o6ys8IghU6gytgfUFDzFJOjZatPMMzgv27Pzms7oQEdnib4UEHaPf1+JzloH+m9pbgSrInE5EoKOv/tjCwhUBmrUzyCG7zUumibxnL2u9dR25oDsyVqchnWI4QwjvROjFfeXd1Wtb2fixwlIbMAmKD7XISFWW5LH87BtAa09BDnWxrtOTgSUPrcizFZuwU35dsQBmCHMSv2QPnuk/K4DrZOfVKJrlIElyelaeooopH49pptc7+ZEx6WQukdud+nPMjZtGwQOAUdN/xGdHBW8A5NUR1KSi6X8Va5ZLlmvb8ek1RIcE3oPrK/zpQD/Dmn+iSH5W2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=flmX9PFhQZs53xscWkDSqgKIyEAwpQZmabzx+s9Uz58=;
 b=j3LG7Dl+38wNYp1XUgO1MjhGN8/MAm5Tvd1fydoVES89gxEioCDHtATbgkLHQXMPRIiCZbMmP9in+dgQFyxl5Z5Zlolv0rEjNc6oa/f+YmjgClzrGrQdtcn2GsCa429ATxnS9nA581OaAEQPxiA4KrnRkj2Pc81wFgVlzobo5eVLiI2kZhcbTvcQVUsbX2QRoJfCgNxH7h/ysyd9i7Xi9A3tlskn53xgw2e76J8oSdf7ZUvxzPUoqpBKf2XJWll+9Xr7nM8gTZn6yWVXmGtaWIMli8OVBugZm0NxvgBWZdf48u6RN3dSX5GohgJVak0/IhClfWAPCGqs1Fua5m6yEA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <79a85431-a505-795d-1e72-76628df987af@suse.com>
Date: Fri, 19 Nov 2021 09:24:16 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org,
 Juergen Gross <jgross@suse.com>
References: <20211117021145.3105042-1-sstabellini@kernel.org>
 <2592121c-ed62-c346-5aeb-37adb6bb1982@suse.com>
 <alpine.DEB.2.22.394.2111171823160.1412361@ubuntu-linux-20-04-desktop>
 <44403efe-a850-b53b-785f-6f5c73eb2b96@suse.com>
 <9453672e-56ea-71cd-cdd2-b4aaafb8db56@suse.com>
 <b0cd6af9-66c4-3a73-734a-3a51d052fac2@suse.com>
 <alpine.DEB.2.22.394.2111181226460.1412361@ubuntu-linux-20-04-desktop>
 <fdfe4ba4-8f5f-47a2-98df-3dfdb50d8f6f@oracle.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <fdfe4ba4-8f5f-47a2-98df-3dfdb50d8f6f@oracle.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0053.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:80::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e084f8d5-e7f3-4b0d-6c34-08d9ab35fa93
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2605:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB26058AA559D64214A5B5A69EB39C9@VI1PR0401MB2605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	aKyRmn4zLbZREv6yIrEdcTLiSuEVvyCsW1qcl5DJ4Jy25Iv5jgWgZAdCxf6VreUy8Sw0SxCmeEgtKrLAVah+VtHYRW2eaixW6kfLjjrzgoRm5/1jY0Q4j+gRTT54gDGh/stMd8VsKII44gDZ2jkr5ENbYHZqMuPkSd/cB5W6uZ/ThuIiH2+xsz1o77sh5dNIYBBa6Mw57uHyddu6hUqXJRbfgXNqEmjxZrRuNvRytM8J42iNhqhClPDuMpEK/ZSFXPFjAbF6ameZMrsIOu5HlNcKiV7IiunHb/k/KOpcPGpotDuPkZKS7g5VCY0261de+BQ23r4uHywbH0ng36VoFg2Bm/JsxhqHhjLJa9IbUmpzF7+qU3ELBAbyop3YZ6zG7x3cqTJFIEdH6RfbRK+WW84P9o8eKB539QcZzHwLsXUzzH3mmHi0jSCuNu3crLjHP9XB82TfvW7hbwX6+bfwHXubG2opqvfhtH52I8gf5qnaXSvnLj4r0BpBJWyYkBr3nzxG6LPf3AL0TgLkPMcdmdRFXGkjgkxZbnd2pk0APmxdasIH1fwO3beSpx+O/LBeA3NldpNmjtdQJ57xucxzlPAW5T+bN7edhHRz03yOBlg8PjBcAHNrE/W8F9xXQJPgHqe9sCwcsH6vmvMuw9S0Uy14GV9Hx6DmI0uEk9HhlPrj8o5XlXVybg/9ZRrOAr63cNAT0uAdPiq9LUu8EIYBKM/KFFXTx7wlc9mnjsG3YyY/YptLY54frmWh3G0Z/uyF
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(110136005)(2616005)(66946007)(316002)(31686004)(8676002)(36756003)(508600001)(5660300002)(16576012)(26005)(4326008)(6486002)(38100700002)(956004)(53546011)(86362001)(2906002)(186003)(4744005)(8936002)(66556008)(66476007)(107886003)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WVhLOE5ycmxnNmd1eVhUa2lhYlZTVms3Z1lBNlI0UXdzK2dldFZraExLaUl6?=
 =?utf-8?B?ZlhrQjdWZVVSM0NOb0J2elp0SEhyTzFKWThqSktKMzQ5NEx1ZkNGNTJ6WThu?=
 =?utf-8?B?R1lZTEhqRXpQOGZIampTSFg5dHJ4UWxPRVFmK2Z3RmwrOHVMQll3TUxpVjZa?=
 =?utf-8?B?eUgvME9tQXhTOFFuNXFVdG4xMlJCajFUUnVLdDRKdi9IZFhzbFhZQlBlbnpl?=
 =?utf-8?B?bXA1V0gvektXeDYzSmtOaG4wZjB4N0MyaU5HYko4VmNHUDJOQUNWSVp6SlFT?=
 =?utf-8?B?N25iSGo5WkJIUzVZYVZZb1VoM2tHQkpuRzRqaHhtU2N4bnRPc21Xanp0MURG?=
 =?utf-8?B?S2VvZXVNYXd3ZXFuVDM0Mi9rSnM4cVZHc3FrS2doSlZqeTQrbG5FQWpmL1h1?=
 =?utf-8?B?SVh2cWtLYjN4bWFaTjlCcEswV0R3UWsxM0NVUHV6cGdjYUNsdlJqZXdWdUI3?=
 =?utf-8?B?YXNlRXVhdXpvYXRmelhoQ1RyUnlzc0ZUU3VyL2xxNC9CWVhQYXJVQkdLamJH?=
 =?utf-8?B?eWg3d0pBQWJNWDA5cXc5MGJHWGd6RzB0NnlSOEtSTXVvcDAyRVZhRElmYXA5?=
 =?utf-8?B?TzF2Qy8xeGFZZkFERkppdmZyOEdPN0ZwMGZOOWJZREZyb2lLV0I2dXQrL1J6?=
 =?utf-8?B?bDlzRWpSU2pjWFRSQkcxOEFBUVBEOGt4bytmcFNxajBQZU4yS1h0d2hsZG1D?=
 =?utf-8?B?YXBwejFwSGhJM1diQ3ZkSXUwWkJteXlrVVZTOFMySFBjZWloVkJaSy85eTND?=
 =?utf-8?B?cllqMVRmWlBPVlFsM3BodHNFVkR3dFdsUHBSdCtrdWkwUFFKZnN2UStxWjZL?=
 =?utf-8?B?YnZQT3NlWXM2U1JJZ1pTNDJnZmJUd2ZuQ2U2cVM3WHczT2Y3Q3hqU0tPSE1T?=
 =?utf-8?B?ODBRZXR3UUlUcnRNVzlveUEzZU5YK01uQlBML0xiT0dQZUpXaEl0YS9Ndyty?=
 =?utf-8?B?cUs1eVV5VUd1eGt0UFdpUVREcCsxa3NNUlNFK25rcmx3Vll1THgybzRVcm5I?=
 =?utf-8?B?UVVuQ0VWOVVvRnNSLzMxQ2lCeTM2Ynd3eU9TMmIyMWF0VkR4ek9MMWFIdEZ6?=
 =?utf-8?B?NER4U01BNDJIS2t6UU1PelZpMlcxTHkwMzFiV3o0YmVpMktoZlpHWlJNN3Fh?=
 =?utf-8?B?WmhzbWt4T2RUWGZ5L1lwL1B6SEt5R3JXV0luSy80R1Y5SnVJV1NjRHFCZm5W?=
 =?utf-8?B?K1Mxa0FlcjVMYUJ3bVVDRjR5OWZIS1ppUmdRM0t5NTg1REllV0lWTldGMi9z?=
 =?utf-8?B?ZmljRHBVU2tXeThCUG5qWFlFZTNiNXZCRU9qcGRLNXZQVm40NStMNzBQWWFM?=
 =?utf-8?B?bFZqZ2dpNlk3U0F6OGpSWUtOS3JMbytZOXV4MDgzVXJFWnZpclFDRzhtNUZT?=
 =?utf-8?B?VG9LNDJ1bVl2RWlrRDVlaXVpMlZrSUVNeDdZT1pKejd5QmJzcldqYjIvVnJ2?=
 =?utf-8?B?WWRBdjRuUzNuZ0I5cjhjNDhtemtTQlRpNUhJUW9rLzdZYnhWYndhNU1rc3kz?=
 =?utf-8?B?QXVFTW9XMFM0MTFDaWtmZTZ0RlRMcElmOFlkQkh2WndYbnlSYURvR1VndHNi?=
 =?utf-8?B?TFBlZ1J2cHNQWjFYOFI0L2JkcHVubmt0T0RCdVN6SWpnM0pCZXlTa2ZaU3Jv?=
 =?utf-8?B?SWNHUTJNT0dkL2VPbGkyYndjZkpPRmdtSlBxekpFWlMxbmxVSjZPTTlmMHdO?=
 =?utf-8?B?Vll1M0VCWVZiSlJDSnBzY2RMKzdNSE42bHhsVkp1VzFDbGtSdU4vbnpoVnlB?=
 =?utf-8?B?TTI1a0JMU05kYXFTNFAwWndNalZveHo4RW5MSUlUT2FTVlZXZGlMS3RuMVFp?=
 =?utf-8?B?WFlGUER2bW1ob3pqQllxTGVLclFSNHFJcWEzNGUyMzgrQmVCY0hXQWtXNWFt?=
 =?utf-8?B?R0JnQ1czRkJvQmRFdDliUTl5Yk1zNUl2UnFaeCtqTDUvS3U5VWVtbCt2WE5U?=
 =?utf-8?B?VWhHYXNNWC83clZTenJEaDZ2QmZIeGFBNUdxekhiMTBaZmEwa2tHMTEwRHE3?=
 =?utf-8?B?OXdTOFl2Q3lUbEpBNkFaQmg1RGcvOENwaHVUY29oMkt1TkZMTVpYUUFqQmF0?=
 =?utf-8?B?R1BETjBtUUl4bjlqSHRseDkrV2k2dDlMdmVOMnNWb0xUUnZBYVJyend1Tm9C?=
 =?utf-8?B?TkNrZ3E2WlVGaWxiaENlcXRFWXZEUGtNTjZCUitKVUNieldMMGR3M0hSTXd3?=
 =?utf-8?Q?2+rsOquMPiK95gVHGSl2+1A=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e084f8d5-e7f3-4b0d-6c34-08d9ab35fa93
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 08:24:17.6427
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vH8EFefdX79ndsHb1/12Zt/LD4c72JZtT20dsWJsdhx+ekSNYGni0Tb7GlFB9B/YZQROaRZd3ikeORush++daQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2605

On 18.11.2021 23:24, Boris Ostrovsky wrote:
> On 11/18/21 4:00 PM, Stefano Stabellini wrote:
>>
>>          /*
>>           * Avoid truncation on 32-bit.
>>           * TODO: handle addresses >= 4G
>>           */
>>          if ( v >= ~0UL ) {
>>              err = -EINVAL;
>>              goto out_error;
>>          }
> 
> 
> Since this is only relevant to 32-bit kernels then "#if BITS_PER_LONG == 32".

Plus then > instead of >= (thus also making the comment actually decribe
the code) and ULONG_MAX instead of ~0UL, I would say.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 08:38:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 08:38:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227666.393809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnzP2-0005th-2m; Fri, 19 Nov 2021 08:37:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227666.393809; Fri, 19 Nov 2021 08:37:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mnzP1-0005ta-Vn; Fri, 19 Nov 2021 08:37:47 +0000
Received: by outflank-mailman (input) for mailman id 227666;
 Fri, 19 Nov 2021 08:37:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnzP0-0005tQ-1J; Fri, 19 Nov 2021 08:37:46 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnzOz-0002NB-EV; Fri, 19 Nov 2021 08:37:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mnzOz-00071g-1l; Fri, 19 Nov 2021 08:37:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mnzOz-0002PK-1E; Fri, 19 Nov 2021 08:37:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=m6Ggets4gNe+CvHEqc238RJqXzeoBhl2PKTYhQ7u0xI=; b=OjC6bQyDizjyse0yZBnnTEOMV2
	FYlIYnCEV6C4oWPCjxwnY/sM9iMyaR4GEHpMjNiR24StaCCcvPWr7IG4SuIomQtOq7PzJbql74+4g
	lweer5LM8952PYKeie0jQVpNPPW3A6ZniRvy7JFosQsOgCEwQ2q0ed9v8wCV5m5NACTs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166191-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166191: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=748c4a6b742faf246318dc78821755800a5f8428
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 08:37:45 +0000

flight 166191 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166191/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              748c4a6b742faf246318dc78821755800a5f8428
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  497 days
Failing since        151818  2020-07-11 04:18:52 Z  496 days  482 attempts
Testing same since   166191  2021-11-19 04:20:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 83727 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 09:34:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 09:34:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227703.393923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo0Hy-0004IP-HP; Fri, 19 Nov 2021 09:34:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227703.393923; Fri, 19 Nov 2021 09:34:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo0Hy-0004II-EO; Fri, 19 Nov 2021 09:34:34 +0000
Received: by outflank-mailman (input) for mailman id 227703;
 Fri, 19 Nov 2021 09:34:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GMHT=QG=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mo0Hx-0004IC-So
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 09:34:34 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df852520-491b-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 10:34:20 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id m27so40405196lfj.12
 for <xen-devel@lists.xenproject.org>; Fri, 19 Nov 2021 01:34:20 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id b5sm307023lff.278.2021.11.19.01.34.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Nov 2021 01:34:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df852520-491b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=eAP6XJ4o0PmgI8WAMtNC4pMx0n7xuY5MAe6fyQzUAbw=;
        b=OdgNqqoNR0UNkpncKFrGsJVhQm1udH7iLjBdRFBy8ifBgZpNPfIZSFu/d2f/D/HMmx
         qg26Hs4rF9Tmxi6CQaXJUQP86/lUP19py7PmfrXrJ70nX/pH0mDhEqXkks5Ywtl589rT
         K58v335QdLkWWqe3DkBjBqKXPgfVDStSDOf1vM7teEvAtxB/y+DLrLs+AfGcHt+T/emZ
         SJgkVeDPVRThHB5iEAdLANs+1C7RWPBNwnoHhkCr0r1ojjKE3j/rXfqjuPEl4OkY5a6x
         oyX6QBK1BGV3hRhnC2eZgf7g8USyY3M07YSfpxFV/9OOK+6q0aOrKUDlqh7s37IN64t3
         zLgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=eAP6XJ4o0PmgI8WAMtNC4pMx0n7xuY5MAe6fyQzUAbw=;
        b=yB42L1tTfYmPuOO3lAw+BZ8oEIsRIAU44xkrStgqlmAJoxHs0Mh9gVMAQzDhxon5NE
         7KoRW7TwVUOVoqMAMfDQiuh1LPnzuk8abNEDh4cXqc5fZCdLimXkvotdEfs+l1la7a9e
         tl9PfvgfEMNR9rkWm7cz929abI8SmwMuY0suvkzRXxIryZhSQyKss5iWt1EvdgY0I5ud
         qIYgRXMH/FkPD6Es3uuLDB61JgUBcEzYxUE1RL+e9D96mx1zPiXucmmlLEHnJFzqIYzD
         useduLn0VeiKWn2Wj1r0E2bLmovyXGSoeXbthM+92eC/7kO70GfyduhUUVkXXGxenL8Q
         s4Gg==
X-Gm-Message-State: AOAM533jLZa6agvidbj0bQ1C6Mc6Uu5IUxK3ZVcZMBsK3DzorP7TpB9b
	9870AIDPQ6TtlRgjVQZrO4A=
X-Google-Smtp-Source: ABdhPJzD3TKxnic5qHDthfyhujd3SQBTrCj44aPkA5uQJtskwIp1UB4xnh1T6dQWWei2jOcFu3gz8g==
X-Received: by 2002:a19:7419:: with SMTP id v25mr30532282lfe.159.1637314460136;
        Fri, 19 Nov 2021 01:34:20 -0800 (PST)
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Dario Faggioli
 <dfaggioli@suse.com>, David Scott <dave@recoil.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Josh Whitehead <josh.whitehead@dornerworks.com>,
 Juergen Gross <jgross@suse.com>, Jun Nakajima <jun.nakajima@intel.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>,
 Nick Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>,
 Quan Xu <quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Shriram Rajagopalan <rshriram@cs.ubc.ca>,
 Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <CAPD2p-nb7u7om7zv5-KvfZTsmGis9uGfBkvwjEXrym_+4PN-RQ@mail.gmail.com>
 <YZaOgGWfbDkIq4Lq@Air-de-Roger>
 <d4f3d50d-9875-f7bf-2c82-83f8fedb8cfc@gmail.com>
 <YZdZZsgXjZv/rh66@Air-de-Roger>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <41554b67-552b-3e44-9e5e-f7e493ebf615@gmail.com>
Date: Fri, 19 Nov 2021 11:34:18 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <YZdZZsgXjZv/rh66@Air-de-Roger>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 19.11.21 09:59, Roger Pau Monné wrote:

Hi Roger, all


> On Thu, Nov 18, 2021 at 09:04:30PM +0200, Oleksandr wrote:
>> On 18.11.21 19:33, Roger Pau Monné wrote:
>>
>> Hi Roger
>>
>>
>>> On Thu, Nov 18, 2021 at 06:11:07PM +0200, Oleksandr Tyshchenko wrote:
>>>> On Wed, Nov 17, 2021 at 11:54 AM Roger Pau Monne <roger.pau@citrix.com>
>>>> wrote:
>>>>
>>>> Hi Roger, all
>>>>
>>>> [Sorry for the possible format issues]
>>>>
>>>> Document some of the relevant changes during the 4.16 release cycle,
>>>>> likely more entries are missing.
>>>>>
>>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>>>> ---
>>>>>    CHANGELOG.md | 11 +++++++++++
>>>>>    1 file changed, 11 insertions(+)
>>>>>
>>>>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>>>>> index ad1a8c2bc2..8b0bdd9cf0 100644
>>>>> --- a/CHANGELOG.md
>>>>> +++ b/CHANGELOG.md
>>>>> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](
>>>>> https://keepachangelog.com/en/1.0.0/)
>>>>>     - qemu-traditional based device models (both, qemu-traditional and
>>>>> ioemu-stubdom) will
>>>>>       no longer be built per default. In order to be able to use those,
>>>>> configure needs to
>>>>>       be called with "--enable-qemu-traditional" as parameter.
>>>>> + - Fixes for credit2 scheduler stability in corner case conditions.
>>>>> + - Ongoing improvements in the hypervisor build system.
>>>>> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
>>>>> + - 32bit PV guests only supported in shim mode.
>>>>> + - Improved PVH dom0 debug key handling.
>>>>> + - Fix booting on some Intel systems without a PIT (i8254).
>>>>>
>>>> I would add "Various fixes for OP-TEE mediator (Arm)" here and ...
>>>>
>>>>
>>>>
>>>>> +
>>>>> +### Added
>>>>> + - 32bit Arm builds to the automated tests.
>>>>> + - New x86 pagetable APIs.
>>>>> + - Arm vPMU support.
>>>>>
>>>> "Extended regions support, device tree only (Arm)" here.
>>>>
>>>> ...
>>>> The extended regions are ranges of unused address space exposed to domains
>>>> as
>>>> "safe to use" for special memory mappings.
>>> I've worded this as:
>>>
>>> "Report unpopulated memory regions safe to use for foreign mappings,
>>> Arm and device tree only."
>>>
>>> As "extended regions" was IMO too vague. Let me know if that's OK.
>> I think, it is OK. Nit: maybe replace "foreign" with "foreign/grant"? I
>> would be OK either way.
> Maybe, I would consider grants as foreign mappings also, ie: the
> memory is foreign to the domain, but I can see this being confusing as
> we have a specific kind of mappings that are named foreign.
>
> Does replacing foreign with external seem better?

Fine with me, thank you.


BTW, I noticed that "Support of generic DT IOMMU bindings for SMMU V2 
(Arm)" is not mentioned. Looks like the support has reached upstream 
during the 4.16 release cycle, so worth adding here.

@Julien, @Stefano?





>
> Thanks, Roger.

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 09:42:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 09:42:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227710.393933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo0Pm-0005mM-F0; Fri, 19 Nov 2021 09:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227710.393933; Fri, 19 Nov 2021 09:42:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo0Pm-0005mF-Bt; Fri, 19 Nov 2021 09:42:38 +0000
Received: by outflank-mailman (input) for mailman id 227710;
 Fri, 19 Nov 2021 09:42:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo0Pk-0005m5-Qe; Fri, 19 Nov 2021 09:42:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo0Pk-0003rv-Ld; Fri, 19 Nov 2021 09:42:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo0Pk-0001r0-8S; Fri, 19 Nov 2021 09:42:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mo0Pk-0003k5-7x; Fri, 19 Nov 2021 09:42:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Ip0Yve/Z3ZoG7gsQLRAAuwILV7eCtxfOHIxrsQSB5no=; b=f1HzA7wyPvGObo3eNLvDbibD/K
	gZJU26KPD1XWp+MzEefiDQGA/lww2m9XxtdMLO3jVo18aCxuGHU4Q6tqvQiLCImZ3yrdn3G+CbLTE
	wQok3xXsiTakfbDUAEvmtDi9ShIiNMhyfj4rf/HLjV88tLA3e+jI3TmOtklTDVrbhSpU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166188-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166188: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=44a3aa0608f01274418487b655d42467c1d8334e
X-Osstest-Versions-That:
    qemuu=3bb87484e77d22cf4e580a78856529c982195d32
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 09:42:36 +0000

flight 166188 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166188/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166184
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166184
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166184
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166184
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166184
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166184
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166184
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166184
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                44a3aa0608f01274418487b655d42467c1d8334e
baseline version:
 qemuu                3bb87484e77d22cf4e580a78856529c982195d32

Last test of basis   166184  2021-11-18 09:26:57 Z    1 days
Testing same since   166188  2021-11-19 02:04:55 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brijesh Singh <brijesh.singh@amd.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Dov Murik <dovmurik@linux.ibm.com>
  Peng Liang <liangpeng10@huawei.com>
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   3bb87484e7..44a3aa0608  44a3aa0608f01274418487b655d42467c1d8334e -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:20:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:20:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227716.393948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo109-0001M9-F0; Fri, 19 Nov 2021 10:20:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227716.393948; Fri, 19 Nov 2021 10:20:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo109-0001M2-Bo; Fri, 19 Nov 2021 10:20:13 +0000
Received: by outflank-mailman (input) for mailman id 227716;
 Fri, 19 Nov 2021 10:20:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo108-0001Lw-Gc
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:20:12 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46a81cb8-4922-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 11:20:11 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2050.outbound.protection.outlook.com [104.47.4.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-25-oK8rPr-fPAyE3vRvy0ugQA-1; Fri, 19 Nov 2021 11:20:09 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2704.eurprd04.prod.outlook.com (2603:10a6:800:b5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 10:20:07 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 10:20:07 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0039.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::16) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Fri, 19 Nov 2021 10:20:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46a81cb8-4922-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637317210;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=hvD5f7vYvUumDXt1OhnKd+iB6NRIj6nlyTFIoMhRVPQ=;
	b=MyUQIi5rRuImSPl0ZKoIPHFDMPL0ek6mpHq1kO6YNe6pAhEY4af+q+RbAfNmq+mpxPy8e+
	JTBdmPhXShUpWpPZk33CNUxIWHR6ikUJ6DhVlrmHN748Uf04nIWEssGOohHYCcljgRsE8X
	6hq8lCquYylDqEgbyzalLl/KCTfCQPE=
X-MC-Unique: oK8rPr-fPAyE3vRvy0ugQA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HB11S88sJOQc0o8gyfcfsB+BaSOz1atCcdIg1DPzxiAK8leKb0b1EXM/y2WXINJDHC30xtaAcYd//BYDbujN0Bsu1ztiJHT6v9qA79BBU1yafiqYGBYrvHUNdgpNthjC5MW75zK18y6kXBJn6/6g7j0gp2wCCUf7sUvHNyc8Pfh31zJS0ZHUOvC71QJUU6OPCOZE9X1p5u/Zem1jpsMyGxItsLtUprVf0wI1rja+ChGflrpkFLnDQovepMigGSCsi++CGeu87edxFgVuD02UbEBpQvIdWgwJX6EDcBnFZLALfl/X3AFar5l3KXsgcmYR1k0O9MXZqRLfi3oL03fnSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hvD5f7vYvUumDXt1OhnKd+iB6NRIj6nlyTFIoMhRVPQ=;
 b=B25ZUIKoELOAeJDDU0ICNr7RJGKLfarp9m9cg6NZoD1zztSLTS8c4TNUyvVs7VQ+6PFPZx+etScgpUnlLBLwkcdkCTu6GTO9eNsNbF4zLExpr5ZpSXNWzNm9E2njD+K6XWgpzzQAm2guUWUjHjYneLDvoqMN6LIuv0u5GbTxa0anu8cQfYYeGBKQz+8tTk5Q6RCSNw6PVi9JhcyKp6KWb8OZ1AQi5Ag725wU+nCY8JvTTpUW/WYspo9ngzkTTLFd5d9CS59FUd5etnK+kqIGtP272cn1f5oGGwTdU9DJYbr6jPc7l/VDseh0bl9SE9cPHwCVidF8HKWpr1l1p1HmWg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
Date: Fri, 19 Nov 2021 11:20:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Content-Language: en-US
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/7] (mainly) xz imports from Linux
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P191CA0039.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:7f::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8c42fa28-1ce7-452e-6698-08d9ab46291c
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2704:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB270486A223D7FDABBF5EC4F4B39C9@VI1PR0402MB2704.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hhnZeQW+HFCMJUy+HpsDW1s79axNpqECPkZoXLwTZnx+g0kU69NtdbKYKB5HlmdHr8XS+MSm2JAq4uDHTYK03yg3Lose7la7whnN1bcgLeRzOWMZM9X23p1DpyGO7ir59V9Dt6RW3vceklat2bi1aJj4Vvxk3KW3CbC7odmuQPpbFHKiSqgJpbISa030/5b36TfB8YesO+yx3oOqUBXhGg/w2DhL/Bh3CQ5YdaUVPeFETZBf0avUueP/WwHW8QGRkY58hHQHgupUcRjENRk9oiLpDisW4H2PakySE2cJYGiCxK+Zdh4VFfA7MbA7v47b3LPuQIaOGUNWDncXS5FwQ7unXXMmsL041nQ5FbEvf1+p//gUkIMCu1gOm+8siLJkq/BYxQYNjGIaUCWLyHzwyblugJlqtRRvzU5lW/M4P8pYW5u7Ytx/yODboEKxR7AQncVuiCc64AIqswOfiNHzTdOqudlNpsb8cQZxgbxMQhm3mihjf8Z5PObHgjR96uCWe0bf+GMGEyJjpp7p4z1MvTZ2eHAHX2xTcLsCdd64EKC8JDIEuOO3QbggL5nuX92ieR/UMUx2wKhNl8OzhqSL6Pg748x+Dg1DyYWV+dexsZeS+WUV5r+65YsgtKqVt6wrkXPRyW7cKuWC6no3PcCYNLjGP2DC6o7sE36qW8C3B8TSY8ust22D+iJxRr0YsRcD0qcrrGyeyG4lBk7vKoH0pAweyoARp8MvmQdHl2f1cww=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(38100700002)(36756003)(508600001)(2906002)(31686004)(8676002)(83380400001)(66476007)(66556008)(86362001)(956004)(2616005)(4744005)(5660300002)(26005)(8936002)(6486002)(186003)(316002)(66946007)(54906003)(6916009)(16576012)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RERCVExjVE0wU0dubVlYY1RkRXRKSkIvdmFaT2MraWd4VStkUllPTmxoVGVx?=
 =?utf-8?B?dENxa3FGSm9RWGY3MnVnQm9zWHIvaUdDZUlHLzhHcVdoanNHVzFSRUJWZm95?=
 =?utf-8?B?WTFaM0JGdDBYYjhVbmxFbENZajBWQ3JJVjNoV0dXMG5paVhsT1o1S29KbTFx?=
 =?utf-8?B?MDVxVFN5SEdNUjRTWU5tUzJrbEROUnFZVEEyWU83RkdpL1pydkFqaFVGMEQy?=
 =?utf-8?B?aVhsc0NRZk9BOTdHaGQ3WjFNODFVcmdubkpsOGtCci9PMERYZU1Hd2JCVWJF?=
 =?utf-8?B?WTI4Nk53Y3hYdWptaytVU1dldkFJbWtMN2pRcWFKTnhnRk8zeEtWTUx3aTM0?=
 =?utf-8?B?UndTWmduQXg2Qkl1dmZsOXRBSFh4QjVpc3FRcDRLRTNkUUdmbk5mZ0MvZjRG?=
 =?utf-8?B?NS96aHVqWjZtMVI4R1cxUGJ6aEZHUUtoR1FQUjc5bTZuS0w1QUJBZjByQXps?=
 =?utf-8?B?bjFiMVg3V1ZqREYrVDk5cSt4K0ZIbkk0T1VodUlaM0p1TVpzVE9NaXZGZGtY?=
 =?utf-8?B?T3BOZVVHckJRTSsybDBpV093Yk93NXNrZFoyaFJtckRRR2RGYlR5WkQrWi93?=
 =?utf-8?B?c3FNMVdnMTJ6dk5mY1h0aktVZ3dLbkoyZi8yaVVwM2kvcjhPcXZyY1lMbW5h?=
 =?utf-8?B?ODFvcmJLbnQ4MjI1Rmx0bG5POVJLM245Ti9LcUFWL2NNZEo0SVlqRFJucHlI?=
 =?utf-8?B?ZTMvdlYyQ3VESCt5aGhyNGpYNTFRbzZPVG1BV2dDb08xNzRsUXgza1RqNDNH?=
 =?utf-8?B?ckQ2RUltaTdTNmxNVFhBSHdsOGcvSDhPT05rM2d5U1g1Rkl2cm8reUdwRnVY?=
 =?utf-8?B?TWw5Y3o4U0tyU2QydkFld0VSZzB0VHoyMXFIYlNXbE9oaFNaYU96MlJtNEty?=
 =?utf-8?B?WjlldU5UTng3UUtDN0VNK2NTM2I5L3NJTXEwMTJVazNBZTNwLzJDYXNpQnlL?=
 =?utf-8?B?WC9qRFd6ZEx6U24rTzNtR3dUR3l5Wkc2NkxxdE5SbGFjU1AyZng4czVTUVlJ?=
 =?utf-8?B?QnRNTTFmaWFIRWdHNGtjUEpIV29QQUorQ1RSZmRlWjFBMldscFdNbm1PZGt6?=
 =?utf-8?B?QURUOWRZRTFSc3pWYkNhSmloTmtHQ01RSW4xZUF6NmRVRjNqdlgzWk8rbjkr?=
 =?utf-8?B?Wmgvd1dIWEwxREJrY2J4QVdwOVI0cU1xK2pSTTF1MFdyQnJNdzJxazhrT1E1?=
 =?utf-8?B?STJLY0xGczl3ZzRGQy8wbERIWHZHdTM0L3lHWHA0YkoxOGpPL2lwWGJYZXhI?=
 =?utf-8?B?MlpzVkRKdkVuUFVORGVaZWZybzB2VW5ha0w2NnF0ZkYrbzArV1lzMnJLdFdG?=
 =?utf-8?B?TlpXZEZXVTRVWWJYcVVUaDh0cjJRVUlvSTlUR2JjVk1nL0RiTzVYeng2Uktj?=
 =?utf-8?B?MWF1OTNLMURwbm5WbmhvaHlyNWd5Q0dVcWg4Y2FxQUJRVWZIcnlnTXpWTWxi?=
 =?utf-8?B?OFYxWUFnUnBqUzdjMDBRTGJWOFJjR2QwNWgyUGZJanRLalc1Z0hFVmtMaUpE?=
 =?utf-8?B?K00wS1o4bWJTNXFNM0JtcWJwUWVoOS9NblVINFJOcTJTWXNWc1FGdWdFU2t1?=
 =?utf-8?B?VEVzMytaaHBwY251T2RZaFJORXJSbWJnZkVyd0ZaWUpPeGdqOWxER2haZElU?=
 =?utf-8?B?NGNUeVNZSnhmK0VwLzFoRG5yeVEvMjJmM3hYdEFjaXg2ZzNkODZKRk1WUWZq?=
 =?utf-8?B?VnlDaDFockFJRkE0T3lNcEtCQkxRUUhkYW9PU29rR3dnUGdVWEZtQ3JWVlVs?=
 =?utf-8?B?N1hpMnNISVZJemFPcWVIUTZ2c2Y4ODVqMU5WUEFKakUyUllKRzNsRDJRZnhS?=
 =?utf-8?B?ZjNlV0pBU0NsNm0zTVBkQVFmNGpHN1hGVkE2WDErZnZOMjY2TGJMVENlbzlC?=
 =?utf-8?B?TlhSNENINitscjExWFc3cmx5YVZTM05sbGloWVkvTWxPM1V0ckxWOWFyOThW?=
 =?utf-8?B?bitDN08yZXd0a1liRkROdmFHRjFaNGdHdU9EUWxFcERLQ2tZWWNKRnV6WGhC?=
 =?utf-8?B?ekxIVDRFUDJTWjVIOXI0Y2V6b1ZKeUw3ODJ3OWUxVDlybU1hSGNQV08xcjlB?=
 =?utf-8?B?Tzd6WjVqc3BWa1dTVHJxbDFheXVuNGpwbHpOak5kNHhJdThmNHQzeWFyM2Vz?=
 =?utf-8?B?S09SdDFsZXlJU3l0QVM4cjdibmRkY0hHTkJpYUJnZDBTTytpSEZZa0oxbHF0?=
 =?utf-8?Q?xZXcV5uFyi267gI5l7UYobk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c42fa28-1ce7-452e-6698-08d9ab46291c
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 10:20:07.6842
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qm9vUAsO7jegxQE4LsSz7l24S+x4NgKYndJstbhUG48U1oquqRIFHjE4yReu82v3YH/O8WdM0h7hBTI2chf8Sg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2704

While going through their 5.15.3 log I did notice two changes, which made
me go check what else we might be missing. The series here is the result.
Linux has also updated zstd, but that includes a pretty large change which
I'm not ready to deal with right now. Them moving closer to the upstream
zstd sources is certainly a good thing, so I suppose sooner or later we
will want to follow them in doing so.

1: xz: add fall-through comments to a switch statement
2: xz: fix XZ_DYNALLOC to avoid useless memory reallocations
3: decompressors: fix spelling mistakes
4: xz: avoid overlapping memcpy() with invalid input with in-place decompression
5: xz: fix spelling in comments
6: xz: move s->lzma.len = 0 initialization to lzma_reset()
7: xz: validate the value before assigning it to an enum variable

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:21:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:21:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227720.393958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo115-0001tR-Oi; Fri, 19 Nov 2021 10:21:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227720.393958; Fri, 19 Nov 2021 10:21:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo115-0001tK-Li; Fri, 19 Nov 2021 10:21:11 +0000
Received: by outflank-mailman (input) for mailman id 227720;
 Fri, 19 Nov 2021 10:21:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo114-0001si-7T
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:21:10 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 69b7166a-4922-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 11:21:09 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2053.outbound.protection.outlook.com [104.47.4.53]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-16-PM4tJkMSMSuCZqGyvd_4Ng-1; Fri, 19 Nov 2021 11:21:08 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2704.eurprd04.prod.outlook.com (2603:10a6:800:b5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 10:21:07 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 10:21:07 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0067.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::44) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.20 via Frontend Transport; Fri, 19 Nov 2021 10:21:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69b7166a-4922-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637317269;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Z0rK9VmEi1jVsksstUzQ7TXl9Hlmh2BpCcX4s9+HTHg=;
	b=GkIZNOP6qlBJWvuvZha9gtShbhXb6y48SJ/72ezzupA9rc6UUrXnlbm/NbxAGaGntsWhWt
	e8AjajJZzSxB7PMd7cS97+5j3XgXppkJwqrWt+1EPYEmfnD4dUbYtqnuXHp50mwV9yZHfW
	bcp9w1qU6GYFOTlHQMQ8SkJttf2ypr0=
X-MC-Unique: PM4tJkMSMSuCZqGyvd_4Ng-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZdDwwF7yPgtmUB2LY1Mq9lo8oMgv4gyOly+Q2n5U/4+8gCvqbjB8RkgfNoVumNnw9gv6Xxv3otJCoZxiyHZis71ZPFSHx6NyBVG5BST/2CxyRL/u73XQ73LGxCQT2bNJE4TO38AzmhkP0B9f+3x/CVEBtgFc5nNZvuvvaOswjAbm02LJJWfWRdLxV4i2ziiHbAv60GtmyorUtuu62DbXEwUhHaj7BM6l+u+tQEE02snw1RYRNiFVrRY9LRUbPzt4bhFQsllD24i2wEWS0K0GiACJVILgrquSu+B026/LOvI5TVUtj1INNSDf8vERxOI6JD77YStOnIsLMqklYwZTmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Z0rK9VmEi1jVsksstUzQ7TXl9Hlmh2BpCcX4s9+HTHg=;
 b=iE0rm04yOlcGyFmDfn0Oyde/fslqXg9HUMESizOLSzph+Omr0cU36uaTB70/8OmuUTgGMBi0nHbfrmbebPAd5X8JwbjrclH2Sm+bUqXByAilHj8SRi3936rxXuBlJ0XYZmhh6HRyWp0AJ3sqHVjw7TCiqpdh/kqs3nhwMAOcLgcEALB/1uahFFEH04F9TQSHCzJA0DTkOEv3WLvidFwSwJmpitTxrklSFK80PG7nY8FDWzu9zONxWxmT3Qu97m+60T8CIZVDVi+yTQmdRQoOyBpJGa5q1IARH0/YmFBVjMs/4FqGJX6R8VgCudV29u2uawqL7n/FLIJq5zSM3VXP/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
Date: Fri, 19 Nov 2021 11:21:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 1/7] xz: add fall-through comments to a switch statement
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
In-Reply-To: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P191CA0067.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:7f::44) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bf198489-fb39-4abd-d27c-08d9ab464c9b
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2704:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2704F65FEE3899CBE6761CEDB39C9@VI1PR0402MB2704.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:196;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	2K0QjACt30PfqxoI6Kx1MCGJBaXNCUMfxFQwYDNxBEeoTfUWSMs1Y7hh3b304tocW3cJ15jiUFWgMqJ09qdAuoY0rd7FpANE8SF/ptM9Z4OnsfRI09npDf0qdg55JV2KUGF6i8fRERbUd6pT/rqjRbi6pXMh8Wt7GoSDgoNYc1usVInubQjKYYmrEof6DB/xy4nyZG30bpSxhi4iZW6eW6a8Lsz4lN36RdwEQkRX8pxb1baE9a9DQtUFFNMdBo/DmV5sFTgAi8qxP2uGBQOy9a+M2Bp0XjsZDOaonlsl4tKjn8UjudKO7P30GBmYKY0WM9EQwYvSiG5lqnX8YcbB1tYWKARenKC14p/CwnoQDgug3jektZz7l0cF3wwTk/Aj3fTRoLaCHvEC9iIR4nmEJD3uD4CubvBcXH+1gInBmc+5FpD20BDZvVWBOn9QwLeBTKl7znf5+8PmFGngwYh9UDDf+b27JaccbwxSeKFYGSyp1QnNPuJDmQDh3nE5yjoboNu2ezbqdT9NFX1TNh9vG2pm8IeJ9hEPxurpHNs35h7dKWmdkmCvGRcJKYm2Ie2BekUhifC+aBnhnpI1tqcBsy/vTNSwBSFnEWV+vhIFiTFHlGNw037za75FLfsb9QogqvQINkJl0VlLnf4oggAcB0PSEQNVDodw1gwhEumrf2cOE8FtNBT16ifYVS1uiPuE4TyhP6TzdDB93fbJirns8QAMJNEM0QkAFIUxI7Qb5bcVIin17lZ4T2x17C7GEJKU
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(38100700002)(36756003)(508600001)(2906002)(31686004)(8676002)(83380400001)(66476007)(66556008)(86362001)(956004)(2616005)(5660300002)(26005)(8936002)(6486002)(186003)(316002)(66946007)(54906003)(6916009)(16576012)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZTAzd3lRQ01xWGtLQ1JDeWdXN21HU1F4UTNUN3R6emNOYUU2dXdNK0xMd3ph?=
 =?utf-8?B?clJaNEZTWE04SnAraldOUWp1VEZpNEY4WFExQlNYaVBoN25mNitTQlNFQWFa?=
 =?utf-8?B?UmU4ZGhyVm0wVHlGeUhMQ1hhYWRLcmUycmRHeGdWUzhKWjdCTmxWekNNRE8x?=
 =?utf-8?B?elJycGtqWWRLcEQrNTFNOEVHbHV2bWI5RThsVUsreFZwRUxBSXZ5emJXWXd0?=
 =?utf-8?B?QjM3SU1adWpxWTlWVlJpY3k4MzZ4VWVFUlZFVURMTGVqQ1U4TEZVU1RFbEx1?=
 =?utf-8?B?RmdoTkJnYllVQkJjbXFYaWdNWVJJbnh5VUxuaTVHNDRRdTlydXYxVExQdWx1?=
 =?utf-8?B?WUVCTHpCRWJtc01UQlgvRDZZSmpodjZVaUhYTUVCNkhNYXphZVNmS2tubXlJ?=
 =?utf-8?B?NDZ1eDJ3WU5LalAxdlBRQVk3SjJGZnFRNmxzaWZPczcwa0E3ZzdVcEVESHY2?=
 =?utf-8?B?dGFkK2lYUmdQNVBKTWdhd2JNcDFYU3FXK214UHpsUzRvUnVOd0g3bThKRjB5?=
 =?utf-8?B?cUhiaklwNnk2bGJyNEZncmFUbWIwYTNPNHNWdk5nbUdmeENqYzRJVnd1eUZv?=
 =?utf-8?B?dzBvdjJVUlBDUTZuejlnOTBodXRoai9WN29ZSVpRN2FmZGdjMTRBYTJwK2xR?=
 =?utf-8?B?U1NIRHRNV2c0MjU1a3lmdEtrSEdlOGsyZHJyUExYZkVZY1lIL3NYMXhoU1c1?=
 =?utf-8?B?WGZaWGVjS2pkUStQcjExUTFOSXRrSURKbW1UV2xmeHNZU25VZGliUGtabDZR?=
 =?utf-8?B?YjYzWnZWd0ovbXNOY0ZDU0RsMTNBbTVVSWpIck1LcWtBZndCQU9tVWxCdGNl?=
 =?utf-8?B?V3BGTDhESGxwdmwrcXRRakFBT1hRaGVNaHJJenZ3Nm94ZWJjZGt3RXFYR3FZ?=
 =?utf-8?B?NFZxU05RVlFGNHN6RlRiT1h3SkxzRUd1aFB1VTNMZmIxTDBjL0R5Tkl3emcr?=
 =?utf-8?B?UjdOZXRXc1ltTU5jaDZOYlJ4VzNSM05mYUlUKzE0MlZUWEhzcVpzRCs3Unhs?=
 =?utf-8?B?RGRrTE9ZUjlSS3BTbTJ6Y2NRTFVhNlUvcCt5UVh6U0F0ajVjNHhtY1krSXVt?=
 =?utf-8?B?U2NIQjZ2VEQza1dGL1hIbEVKQWNjWUg1OHAvWkZhSTJQd1hSNlVmWkFZL2hI?=
 =?utf-8?B?NUhCcXJlQ25ieUpsMUtiR21ibHRTSVlnYlI5OFppbnZJSVZVY251eFlYWCtX?=
 =?utf-8?B?MTlIc3dlUTFZT0tTQ09Uek01dXlLTm80Rzc5d3I2dFl5cS9NM1VzTDNRZE1j?=
 =?utf-8?B?L0ZsT1ZUeEJva0UzdVFqdGsvUVlRQ1BiSU9YWkFkS0pLM3RqdjJ0Ri92c3Bo?=
 =?utf-8?B?eHc4YityOHJsNG1YbWFYZEdkeWNHU2taTXZkNFRvUzB6ZkFQMVk3MWY5VktC?=
 =?utf-8?B?T1BtbzgxRHhqWTRZc09LUFRyVW1DZk5NNktRK1h3QWZpZnBmVndxUzVKemxR?=
 =?utf-8?B?WlI4ZFEwQXE5ekZhZnJyc2paZVpIZG1rczMwRUl4ckdNTkNsU1duL1loRGJr?=
 =?utf-8?B?QUpMUkk0M1lKc3FVbTJuV2R1ZU1nT1NNZ09TcjlxQmN4MEVXdWJqR3lMRi9L?=
 =?utf-8?B?L0xHbHhITTBhVzl3MXNRcGZDL3FMOTQwR0FLanNVNXR0dlFwd3QwUkdFbGRj?=
 =?utf-8?B?ZFUvSzE0QTAvdThZbmFJMWF2c1BBQUdkaVhGb1MrSlU4WnZyem1lUVNxQWho?=
 =?utf-8?B?WTh6dE5xUU5VL3QrUFg0eGJwaTFIVGp1SW9XUk41VE0xNzEyNmcxV0NCU0sv?=
 =?utf-8?B?Zy9TQlVPaFpBZDNjWWxMMmg3NTg0a2RxZ2l4bDNKZndTOEcrSDF5anJERjNL?=
 =?utf-8?B?SWp6SFJmSm41WTVyUmh1MER6emd3ZGpkSGxwVUdaU0hpYTFRSkdKdEM4NmtO?=
 =?utf-8?B?RDlYZTJxbHd0aGhmTHRtdHJXYk5FYStNRWk3RVZGUlJGQTlkaDl1Sm92ZjVI?=
 =?utf-8?B?MGxpOWNRQ1A0SkgxeVV0WGw2OGV0ZkpSZlRzNndVNjFMQlVqRm1jcDg1RE1C?=
 =?utf-8?B?eFdNNWhud1NnWkZjZm12bWl1cythcVQ4RmJucXdLZmRDYUltaXNEU0xhemQ5?=
 =?utf-8?B?UHBGeDdjWXZnd1I2N2RoWlRmZFRhcXhkeElxSDJ3dmRIYjJSWGRmM3ZkUWgz?=
 =?utf-8?B?ZDBKWmVkNEw2ZGF5UDFxa1Z1eE80VzNNc3dJK1J6ZUNtMVkrOUJwTDBqaTBF?=
 =?utf-8?Q?U4n0cLTn23wkqI8GcMzgqvI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf198489-fb39-4abd-d27c-08d9ab464c9b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 10:21:07.2275
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WkmYN1gGkjSfwEywigRb5Pc1IamV2xsx92mtZ9ZlV83hSGrdEVkb9cNY3simB2NBxJkRVvukl5rsgISvWQ0N6g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2704

From: Lasse Collin <lasse.collin@tukaani.org>

It's good style. I was also told that GCC 7 is more strict and might
give a warning when such comments are missing.

Suggested-by: Andrei Borzenkov <arvidjaar@gmail.com>
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
[Linux commit: 5a244f48ecbbd03a11eb84819c5c599db81823ee]
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Linux has meanwhile further moved to using the "fallthrough" pseudo-
keyword, but us doing so requires the tool stack to first make this
available for use in at least stubdom builds.

--- a/xen/common/xz/dec_stream.c
+++ b/xen/common/xz/dec_stream.c
@@ -583,6 +583,8 @@ static enum xz_ret __init dec_main(struc
 			if (ret != XZ_OK)
 				return ret;
 
+		/* Fall through */
+
 		case SEQ_BLOCK_START:
 			/* We need one byte of input to continue. */
 			if (b->in_pos == b->in_size)
@@ -606,6 +608,8 @@ static enum xz_ret __init dec_main(struc
 			s->temp.pos = 0;
 			s->sequence = SEQ_BLOCK_HEADER;
 
+		/* Fall through */
+
 		case SEQ_BLOCK_HEADER:
 			if (!fill_temp(s, b))
 				return XZ_OK;
@@ -616,6 +620,8 @@ static enum xz_ret __init dec_main(struc
 
 			s->sequence = SEQ_BLOCK_UNCOMPRESS;
 
+		/* Fall through */
+
 		case SEQ_BLOCK_UNCOMPRESS:
 			ret = dec_block(s, b);
 			if (ret != XZ_STREAM_END)
@@ -623,6 +629,8 @@ static enum xz_ret __init dec_main(struc
 
 			s->sequence = SEQ_BLOCK_PADDING;
 
+		/* Fall through */
+
 		case SEQ_BLOCK_PADDING:
 			/*
 			 * Size of Compressed Data + Block Padding
@@ -643,6 +651,8 @@ static enum xz_ret __init dec_main(struc
 
 			s->sequence = SEQ_BLOCK_CHECK;
 
+		/* Fall through */
+
 		case SEQ_BLOCK_CHECK:
 			if (s->check_type == XZ_CHECK_CRC32) {
 				ret = crc32_validate(s, b);
@@ -665,6 +675,8 @@ static enum xz_ret __init dec_main(struc
 
 			s->sequence = SEQ_INDEX_PADDING;
 
+		/* Fall through */
+
 		case SEQ_INDEX_PADDING:
 			while ((s->index.size + (b->in_pos - s->in_start))
 					& 3) {
@@ -687,6 +699,8 @@ static enum xz_ret __init dec_main(struc
 
 			s->sequence = SEQ_INDEX_CRC32;
 
+		/* Fall through */
+
 		case SEQ_INDEX_CRC32:
 			ret = crc32_validate(s, b);
 			if (ret != XZ_STREAM_END)
@@ -695,6 +709,8 @@ static enum xz_ret __init dec_main(struc
 			s->temp.size = STREAM_HEADER_SIZE;
 			s->sequence = SEQ_STREAM_FOOTER;
 
+		/* Fall through */
+
 		case SEQ_STREAM_FOOTER:
 			if (!fill_temp(s, b))
 				return XZ_OK;



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:21:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:21:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227723.393969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo11R-0002Pk-8d; Fri, 19 Nov 2021 10:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227723.393969; Fri, 19 Nov 2021 10:21:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo11R-0002Pb-5Y; Fri, 19 Nov 2021 10:21:33 +0000
Received: by outflank-mailman (input) for mailman id 227723;
 Fri, 19 Nov 2021 10:21:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo11P-0002Lq-Un
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:21:32 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76ae808c-4922-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 11:21:31 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2059.outbound.protection.outlook.com [104.47.4.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-23-QvYLr_5vNNaLS5_My8ecOw-1; Fri, 19 Nov 2021 11:21:29 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2704.eurprd04.prod.outlook.com (2603:10a6:800:b5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 10:21:28 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 10:21:28 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0420.eurprd06.prod.outlook.com (2603:10a6:20b:461::7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.20 via Frontend Transport; Fri, 19 Nov 2021 10:21:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76ae808c-4922-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637317291;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GS19NKXjFTcuZWiTvSaFRadeqka4sVuIO4lh4DFHodI=;
	b=WDULcfIX7s+s8mfgJmXGMbAPvzGdXbXOz4V8EA/SaZeUWHSX9HHrtOIZ5Rmr5vZkWMTz55
	HMWEpEwCnnPZWYrLJgyit3nwRpIN3xsb2ficzei5I+1jeAvCRnYOSVnuZSaFsjURkqs6ne
	DXxHn6qszt41tglEtLtOIYPMwyK5Uas=
X-MC-Unique: QvYLr_5vNNaLS5_My8ecOw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WUXb9tLPbIsfNn140TXGHMGqER8liqGI+RmeDyfAHjDJAppJ2KiTyuuwDAF3CR0mjTgoSnU2KNZaglaJPgJmtgE5DFl4O3TlYSM/M0uxgkugGy1zvQWfhuZ6+iQ/w2xPsi9FObyNcYOV+MZ4e/yRTpWPUpCqOx+Lf2m5N10mrLzbS/uWXkxdeDoJPec5Z9VP+Tj9bS8EvEw6iv87O0e+ax9uzQWsLBVsNA5wOdalzrRw3k4vmkhZDgnThJ8nT4Jr4QWJJESh467y2O5MmOZUC3M8gSJVMu6AVIedVNPz1nX+n5E26m1AgeKmZePJ6f8T7ovCYrhZmvJvC8PLFcd8WQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GS19NKXjFTcuZWiTvSaFRadeqka4sVuIO4lh4DFHodI=;
 b=gLqI3Lz/XnSKvqwCMngZTdz0yCtsBcIkYt2F7K9Prol//aFssdfA8AgR6lcACNfnDAN7n5XU4lOY/J4H95JZjm9e207DQZJUjPZFzC7aLpK0NkoGlSkmLcL/SRYkvRlhz9L+6Ko4nVghfO5Q+5XeLfiXJs7ex4OBBCmwCqQGOL9QmaKWXWCxK7C6o1bytPlE/ZD6ECojqlo93SejvpA7MB2y88HZXwUw8UjYMtLdmbATHipE8fvH1s2dfoRfiADpm3f0jn3BUofx2rNBZQ0oWEPoYpgRaKUrrPX5TTkApVv9y9GGWqNl+6MEBPeyWT20wJBpTi/ipJ7YnK75p0cfwA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <196008a7-ce37-52bf-13d3-4a08f203957a@suse.com>
Date: Fri, 19 Nov 2021 11:21:26 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 2/7] xz: fix XZ_DYNALLOC to avoid useless memory reallocations
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
In-Reply-To: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0420.eurprd06.prod.outlook.com
 (2603:10a6:20b:461::7) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 632158c3-9aab-4687-a52d-08d9ab46595d
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2704:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB27040A3A725F96C627AD7B41B39C9@VI1PR0402MB2704.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:56;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Gwkxk01Ge/bdJr/rCEKnQBx8AkdIrY55WVzlQNN2aDATXV9d6ylbZySjgAhFuVMO+NewmFm5pSjQ9JHUDDfzaILgLVBXZwKHg/XbNujkoZ+VxnYxSSABd76OssXt7toUB83pALFUHWZivHpLvJtHZC/N4+1MWsZ58CQFEU4s0irnmTdBJf9AbBzfZqfYMDqBF++hBNivSAV+qZX2Uh4o+qjkoO2uAEogWyczD8JrPpUQdSlpCsqb3fWl7RAmXfk2r4hVbv8RaJ0/RpH03+dvWJaawhpbPTC7Uf5rbyHcN+mtJsxy950ZjV+CZkX9T2/Rpt4sPwCYA0kkCd15/FZpfIzvo6qN9ApfkI6SBOWigVRDolRRo1StTofnaScuudo9pG+lhSEApP+wbfgMQaYnzJTjjSM22fcyjOu9Fqohw4YxN8XisCeDNtX1fbGBeoWuO8zCxn6xiH4aD5bwB6o2ujI2ElQLmSkQ12zWSYpsvcirWn5WUphpK5Jd4g26EsT8fX0A5K0YoolprypR+qErPKSoGBPeY26TklVkwgPAfvaJjcSR1CaRc89OSDPCcUuNerLvoZTII1VKNCs8/jxQELywDjDgOh9UFKZKc744ahw3OHflN5GKxTzDTZiuEzR1JLg9NXXCK4tcr2OWPnH4XDWDgUSRfTUcoaLuj1O+1N0lrz8o9JkUpIohHt2FEc4uAM4heRis6h6kUrvtQhvLNdy6WvcJ6GFzc4sLCUscs5as9QMYRN6aLXnzopBrdUKh18U1dB3Hmd2k8TzdgyvM3uXa5/3WqkDsJY26FbBIjavyvdoDBgWk+a/DzLj7nSzs
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(38100700002)(36756003)(508600001)(2906002)(31686004)(8676002)(66476007)(66556008)(86362001)(956004)(2616005)(4744005)(5660300002)(26005)(8936002)(6486002)(186003)(316002)(966005)(66946007)(54906003)(6916009)(16576012)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Ukluc1JCUlAzUHcrWE8wbHVsOEZmTVBhbGxicjZzdldzNDVPWXFaVHFYdVlS?=
 =?utf-8?B?ODdjbktrWjc4TFkrQUs1VWFINHNTT3JqY0EraFhsT3gyY3dZWll6WjVUeG5H?=
 =?utf-8?B?dkRVZ0hSMGFXQjJrdzBPbGY3d0hsM3RZdG5LNHAyY2tiV2QyOFZ0d2pIUkI0?=
 =?utf-8?B?ZGRPejE5eFliTjk1VE5Xc2RzcEZiS3VMYk93N3pzNUJqWVVXNGNBRnRoK0N2?=
 =?utf-8?B?cnR6eVVESjBuRE0yeEVyOEQvbkx1dG1SRmdJeksyc1ltMUNsclI3NlBDcFVI?=
 =?utf-8?B?MmVpNWRQUHcvTTVrMzZxSnBSWERxZjRxOVpJSmJLQTFiZ3RORW50QllNM2l0?=
 =?utf-8?B?TUZGaFlCSFNxV0dmV2FvNDBqTStLZjFKSnhvU09mYytMSE1yak5qUmloQi8w?=
 =?utf-8?B?aHZFeXoyQTg0c3RNMDkvUWlYNm1DZkpyelJKVmFvdkN6eHJFZVk4TVhBU29z?=
 =?utf-8?B?OWthZkxLMmExdWhnRVpWWkwxTThwaFJPY2ozN1BuRnJLS2hDb05oSlhxc254?=
 =?utf-8?B?MkpKZGp1Z254N3BPbWEwSDJ6dzhZcGt1MiszcFZQZVAxRmh2S2Ntdm9ZUUR1?=
 =?utf-8?B?N1VWYU5xd05oUy9DTW80Tk1DSmVYMzYwbEFubFo3Q3pzREdWeUU1VzJhN1Qy?=
 =?utf-8?B?QnZ0cStFTkRLUnpDTjhlRVBIU2RLZEJoN0YyNENBek5DVENvMkhKR1JadlVw?=
 =?utf-8?B?dEJraE1DeDFqSE1IODhjRklxMFlXdTlpa01sQUZJdHVFMU9veHUwdHFVb09E?=
 =?utf-8?B?NVZaTm5kb09ROFVpYjZ4bnpQV2FDR0ZvZk80MVg1bGNnVWVadTVhUW5Vazg5?=
 =?utf-8?B?RTZCUDcxd1hMeU03cWlIQXFYdCtpd1hIY0VRaFRtK2hIY0p3L2k4WEFzaUMx?=
 =?utf-8?B?QmNlTWdWSHliV2NiRURYTUhUUWVqUnhKcCtLb05PR0dxOEtJcmRBWHVvcjZT?=
 =?utf-8?B?d3pNVHYvRit6emFIRDFwclkzNG5xcXRDYkVZN2VQM2dIa3lja1Mza0R1YXFz?=
 =?utf-8?B?TlJPUVFGY3RNNVk5K2R0UGJGZ3plVHFjVytQOGJseWUyN1hHZUZuZldwZC9q?=
 =?utf-8?B?N1BjdzhFRU1QSnA1OThvb0lQeGZHcjNBVDhpcFIvbVhJMHRnT2phUDJWU01R?=
 =?utf-8?B?SXhuLzNBSWZhc2lrRE9kQm1ZVjZzZ2hsNWRJQ2dPblRwRGJ0ejJJQ0xraHJH?=
 =?utf-8?B?YVJkUWVQWmNRRWo3alZ4SzVsQVNjU25YZmMzaTVqZklqeU1RUC96Tk56S0hP?=
 =?utf-8?B?OUpYVnczZVVsL1VCQ3l1TXRUa2EvTEUrVjAyQ1lKWnRVZG0zN2FQcENLMHps?=
 =?utf-8?B?Uy9lbnM2bDV2WHQvZlJJWDE5UDh6TzZ2czkwZVNTQVNRbEMzMzRLdGQrd3dR?=
 =?utf-8?B?QTd6dm1FTlRwU2VDcFNDZVI0R1ZBNHFlT0xZTWRib2lNbFdQWlBvSUJESDM3?=
 =?utf-8?B?R2JpK0JXNzBGNThjSWZRSlVjWVJMTmk0WDh4RWJCYm40M3AyN1c0S0l2aklZ?=
 =?utf-8?B?RGFmRHBJLytYU2szOXc3YU1GMmxCc0FnRmhjOXREcEw5RVlQS0hHY1c5ZjFS?=
 =?utf-8?B?YlJDKytMMU0vVFpCV0FQT1JNTDhIRDBtN0YyZUhGRmJFdTR6aXo0ZmZ2akIv?=
 =?utf-8?B?ZTV2ZGpENThGczFWbkZoSWRuZHhKTlBvTWw5T2JWNjNGZlZTM1BaMHZtdmxm?=
 =?utf-8?B?cUE0akN3UlNmRU1aVUF5dkRGV04wSWZOQ3EyOUd5ZGJRVGlxRkUyS01GWFg2?=
 =?utf-8?B?bkZlVnRvUWhwTmsxT0x5eGQ1bTVuUEJockZSOGt0Yk5tWjlqb0IyWXlpYzVu?=
 =?utf-8?B?cWlKTmMyVWhqNXBYR1lmTjlFVXNwTGtZcFhiSDRtdC9zVEM0aWY2b1Q0TzlI?=
 =?utf-8?B?cE4zaTM3RTRxWjB3OSt5emlOdTdLSE9CQWxJeEhhVFFGUmFHL29yWWxQTW9y?=
 =?utf-8?B?K25TUllESnYzWWZLeXBYUWJVVGVtSm9JSFBPKzZ5cGJrYWVkTk9TNjZDWTJN?=
 =?utf-8?B?MEdzYUtuV3JZZnE0Q0NpOU10NDIyVWhnU0l4WnVJWXE4TEVwYU9wV1ZrVmth?=
 =?utf-8?B?U282Y3N5NWZPbFJ5WUFvUDlUM3M5a3ZSb1Q5RFFTZUxYbEQ4UVlmVkFqalN2?=
 =?utf-8?B?UVE1U1kxSW91TDNsWWR3TGNFOXJkeGdPZ29SUnZvbHZYTEdrekZ3a21RV3ZL?=
 =?utf-8?Q?jIFaJj5OK2Q+QIMjeg2zpqg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 632158c3-9aab-4687-a52d-08d9ab46595d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 10:21:28.5895
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ks5r58P7QlroyeKlAEsnhUqMs6WBR3xJJFvZqdEiGct38Yn1wlmj2GOK9uPdcb3XtgIWYEKgd0wvCsVoTt1+Ow==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2704

From: Lasse Collin <lasse.collin@tukaani.org>

s->dict.allocated was initialized to 0 but never set after a successful
allocation, thus the code always thought that the dictionary buffer has
to be reallocated.

Link: http://lkml.kernel.org/r/20191104185107.3b6330df@tukaani.org
Reported-by: Yu Sun <yusun2@cisco.com>
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Acked-by: Daniel Walker <danielwa@cisco.com>
[Linux commit: 8e20ba2e53fc6198cbfbcc700e9f884157052a8d]
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/xz/dec_lzma2.c
+++ b/xen/common/xz/dec_lzma2.c
@@ -1146,6 +1146,7 @@ XZ_EXTERN enum xz_ret __init xz_dec_lzma
 
 		if (DEC_IS_DYNALLOC(s->dict.mode)) {
 			if (s->dict.allocated < s->dict.size) {
+				s->dict.allocated = s->dict.size;
 				large_free(s->dict.buf);
 				s->dict.buf = large_malloc(s->dict.size);
 				if (s->dict.buf == NULL) {



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:22:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:22:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227726.393981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo11s-00033t-HO; Fri, 19 Nov 2021 10:22:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227726.393981; Fri, 19 Nov 2021 10:22:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo11s-00033m-EH; Fri, 19 Nov 2021 10:22:00 +0000
Received: by outflank-mailman (input) for mailman id 227726;
 Fri, 19 Nov 2021 10:21:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo11q-0002Lq-Q9
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:21:59 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86a1f2e4-4922-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 11:21:58 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2058.outbound.protection.outlook.com [104.47.4.58]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-9-ZVJ6HCxxMOOcOERfDptcKw-1; Fri, 19 Nov 2021 11:21:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2704.eurprd04.prod.outlook.com (2603:10a6:800:b5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 10:21:55 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 10:21:55 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P189CA0002.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:31f::21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Fri, 19 Nov 2021 10:21:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86a1f2e4-4922-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637317317;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Qo4aw9jO+x/yjshebq2fIVWJsdP1zKWvaVAQTszqXLM=;
	b=RYqw2J0yOtH3His1mRNLG9dG7K/4vIT71hJH5TLWQOaYgQXvR/sTgIXdEUZ7aL/l+ARMmg
	NsRgIytXcaXv2fTVZzZAY1l2wht6gPfkCAI2MOrJjEZUdAAdbT9Rn78KbBfgRbtIgtlXQd
	7y18YCxo8Ttqc0XQfMxlSY5GXKKAEzU=
X-MC-Unique: ZVJ6HCxxMOOcOERfDptcKw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=E/TWJ94NsJ4TYyaR7dEgP0JAbgm6tGbhLaE6HrDAIjJ8cXAa9VhTVTjQa0EOo5r/1sgdOUC3y/Be6LjUIocWYSdGc+KCpQWMHjp58s8/FY0fpIlJzqIPoTYx6trnLmj5KIRFRDnHJSbxEHYzbuEvSC7A0I0YYuydleq/ist51M1NYdoUxDySbP7/Xold+rf2W3x/Xnnii7YpNzncC8j2x2mfXgedPsHeIqndOsUNQLNSNGQECvgGJ50SvzdPbhKVWmbrNdV4g9leKZFw3Amihh1Ln9ghpX6LqpHZhKyaXSj0GZUgmbe8U6AsXUX8ADv3DfmgBqbUCNeNSWyU58i7oA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Qo4aw9jO+x/yjshebq2fIVWJsdP1zKWvaVAQTszqXLM=;
 b=B+ehqTDJVyejfUQ4kdAuqaupy8w1o/E/v4gYqlb1IoN2rGLiNbky6s4pZFCvSwxFs9wIwyEAOLIgftsKwtvrUq6OY1LBVBaYzJfGtHu5CLvZ6zkci44e9/j++8yw1EDShtHqoFaqRKcazdpUy4cMCwBP7VtFcA28NqKLbQ5voqF4UlNEiYaCqlnbYyRwNHjAIlkjq8lfc4+Pc/jTtP9TBLf8D/oZaDC6K9OGKCSZVPiOJNJK8xebGs7lizlsWcZDdALDveTv3wz+Dxezc8SiYFNizW6+FSmEnC6IEUccTGwan7Wqdj8wIzsOzTXHRTnrbVguVV+iKnRUv7JWUSfd9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c70932d2-f3c3-2b6d-c2db-69a0c3ab2b2c@suse.com>
Date: Fri, 19 Nov 2021 11:21:54 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 3/7] decompressors: fix spelling mistakes
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
In-Reply-To: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P189CA0002.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:20b:31f::21) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7d1c5f9e-809c-4df3-2c28-08d9ab466975
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2704:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2704ED968B0C83517EAD5289B39C9@VI1PR0402MB2704.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:335;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ovbjpF5fkrJ5cw1kCDFH4WWahZktHL00tWGoUMXK7xRFfMPxSu/aZ6S+qZT71EZ6dxA9yKrHCuxe4t1yHFuxIhdnFxT3C+XRUIicie3oLuFGQSCPNMK6hKx/XPUMQ3xUe/nYiUGaPk1R4lZ33qCEDRp1Z67VuZQEDfkngXr5cGbPLKqNcezWwP3dI2JPp1THA8NAXfUMwUSh90paMT5UYhBGuRMIZE63Jywa4Vu7PrPpqz/ZE1kflSfXgvxBiAtb4S3nlPRydux3FXgbRN7XTJM5pQGgWTTrPSanrmhJIWduUrQaZj9QdJstvlBic0SAIui3QSG0tXGLEGtcHpscFFYGgL4U27jNcYdauz2zC3jjgyQ80fvSpgYQimmOnbt+uyFtJljhOgITFvzXoB3tWKzEx4Szr8zTfsgzLeT2zKsU2Vjfm/0mgjqa5xIcs5ECUgxNGwTTA23u9IkXlednTHssFwjcLIyNkHCiSbup/WIfRkfd73O/nY9oC9A5g9/tyipXW23zOU9eF19T2XkZKpNEJbIK89lznjH6UgxC0qaLnPp5P8KXxuzkbtESQ239B09q7krN8Askzt9saNpsjWBOU/mGBvHDBBfHoAfm3M5NAhpKe6cW9+oyseYDKrG/gtP80xl1vbVL1uiMGxG3mUaZh8jpYy0bx+sN/qIRIqXWZsE22K+mthw39YwrzAohTOIU9EUPI/vi9s7CYGnYZw2IPWd6HG2HOwAEVDzbPNBKNJtU3B0O30VIwebFLrYofaq+vFio3O82D0/GKSp0VcFPIYCIzaZiZ1FIpJvz/+IwPq1CnwbLXMgvB6E0pfE3APafg0P2AcTjusuWbsDCcw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(38100700002)(36756003)(508600001)(2906002)(31686004)(8676002)(83380400001)(66476007)(66556008)(86362001)(956004)(2616005)(5660300002)(26005)(8936002)(6486002)(186003)(316002)(966005)(66946007)(54906003)(6916009)(16576012)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cE1pKzlwbVVIeDRQd2hBbWlqYjA3RkZvcnRFMUFnSFdWU3BESFNleXJlR0lX?=
 =?utf-8?B?L0VyR1N6Y2hISUhpbitNVGlVWDFINThlbkR1UmJKMnZXeWFPNEord1ZxYktq?=
 =?utf-8?B?eG55Tk1UREduSVpDYVRxTzFVOGRYelhmeVVJUEtES1M3WFY4UW1BSThwVjg1?=
 =?utf-8?B?cSszV1FwNmZDYVFqbUVYdklBV01ybU9oNUFBdkRoVHY3QS9MUjhldTl5V3dG?=
 =?utf-8?B?RTVQNElJZnF4cWlaOXpPQkRhaVBWTmZleW5WREllTlNMRXZjNHpBMURoSkhY?=
 =?utf-8?B?ZWtHQmNTeVhnSlpvMzBlMGkzMStjZWFVS0R3L0s5UDhHSTR2bFhUQThwRDJ0?=
 =?utf-8?B?emNkN1BiSmN0L2t1UzdyZVFhNGpqR3BOb0lBNHppWVhnTWNIdXRjelpRdjBi?=
 =?utf-8?B?bWZuaTllN0J5dWNvR2ZGZWZ6OTlaVjRQTVhQUDFxbG5tMWVyVmdYdzdxZEVV?=
 =?utf-8?B?ZENXQ0FpQnp2VXNrb3VMcmlkQVdFY25RVStXV0w2Q2RJSGgyQlBRRTgzNDdO?=
 =?utf-8?B?L0x2YWpmR051bjFBSGRXbkl2SVFQUW5QbnJRelh0d1JaSkd2cDg1TmlkN3lF?=
 =?utf-8?B?RVNybkR4ZFBRV20xWjV3UDVXNjVackdIeCtBM0FwY29ydjUyd1laa2U1OFlU?=
 =?utf-8?B?T21uTys1T05pUVhmNzFMTDRCWjhoNXdOUm93Qm9ydW5LcVd4L1pMbWgvV2w1?=
 =?utf-8?B?dVJhbGhNYWJwU1h3aHBpYkFiZGp6blZWMElxQ2lUQVZsWFNFcWUvbVF5b3Nl?=
 =?utf-8?B?NENRNkoyOUV1UmprUVZINEVRQlV2N1JSR1F4ZzhtRWJrZk50T3g3Qjd3UlJ2?=
 =?utf-8?B?K2ZwcWJyV0gwRlhoYytKdUFlTUVtekU3dWpqSGpYQW9Ld0tKWjhDdWpId3Vu?=
 =?utf-8?B?cGVGSXpDY0t3cDIyTmJFWC9XeFZDOEgyaTdoQVY0bEJocHY4UXJ1MlNkRkhj?=
 =?utf-8?B?U01jdFlsd3htZjBsd2hmeitVbW5PS1MwRWZEcGJOSE91TTZyVmlQZ0pKdjhK?=
 =?utf-8?B?Sm9wak5KZ1dQRXM3MUc3TUMxOUNMQUdPSXNmU2JRUjFKR1VKTWNBZGFiblZD?=
 =?utf-8?B?aFdxNGQvVitzelA0NmFUbUhKaFUxQzFiaGI1L0RSalF1OTJWazBCZzF4cVdY?=
 =?utf-8?B?bDJpaE9zTXpaa1VZYXF2S2hpa2RoMWhRUkUyOElGWkp6bGZSKyt1VldSRWhj?=
 =?utf-8?B?a0pGY3d4bDdpTXE0TThoWm0yNHVBM1ZCWDh1NTdkc0hBOGZkNTYvV05VMWhq?=
 =?utf-8?B?OXVsZ1c2enYxVkwvNDdRWVFUbEdja2NGWTBqYzRRNjZ6aUtLN0dlNUZRU3lH?=
 =?utf-8?B?SlY0SzNmKzBnRG9QVWwxSmYwRVFEcUs5bkJsOEhwK1M4ODZMajB3ajdZcy9C?=
 =?utf-8?B?MDVac3NLSmFySDJtMUcyd2pMdkpSVVh3aDBXVXU1cmZHd1pVaWRZWmhzMVk4?=
 =?utf-8?B?Zy8yQXBxV3JRTElxMVZkWXBGOGFtbnBpWm16azl0dFpkcG5kSjd5bnhpbWE4?=
 =?utf-8?B?QndRNDVvQUs2M2l4bjNmMVV4MTFkRDFPSmRuRThGeEkrZjhUbE5PblBHbUk3?=
 =?utf-8?B?YUt1bm8zSVJOSHgxZEN3YUZqRVZBdDBmYTV5NzdQTzBIeDZpRk5taFBHV2Qy?=
 =?utf-8?B?WVNZQk92WEhtMmdQSHJITVBtVXpWNU1uMk10bmRsUXNReG4wN3RXdHlPNTE5?=
 =?utf-8?B?ZVpmbTRnL2hyalcxUGhFOG5NNm1MQ1diRnBwcjNOcGhIUS9nemkxemJvcFA5?=
 =?utf-8?B?VzNuaWprQjU1QjVSaXpkQVFZSzJDVGVxdlp0RXpub0JRRmtsZ2lNOVhWTzdq?=
 =?utf-8?B?YWpkaFRSVXU2NS9TZGtRa0VROFVYbVJkeGQ4MXVJbjlZL3pJekNmaFgrdHQ2?=
 =?utf-8?B?VjhVeithOXQzVTlSRlFJM3E1ZkdHb2IrK1V6UTBMQkFlWXdHVUtFN1pqTys0?=
 =?utf-8?B?UG1PY24ydVhNNFRmNEhPcEJ3WDhKWXVseDJ4QVRkTm4wQ005cVVUaXlxbko1?=
 =?utf-8?B?OWIybG1Cem5IZ2xiYzMxc1czU1VNUXhaam9ySHYydFpncDBSN0xjYXh6bW1U?=
 =?utf-8?B?MjJkN0tSbE0weEFPc01pTHFTRGlrcGdjc2cyUHNYMGhXbDdDSmNZeUhBb1FB?=
 =?utf-8?B?M1RhVGMzall6Nllkc2xzRmRJYmd6dkhEamZPZ1ZldFVWRGIzUmJVRmJWakls?=
 =?utf-8?Q?ervi4eTuKu/MiGGh9OnV5S8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d1c5f9e-809c-4df3-2c28-08d9ab466975
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 10:21:55.5922
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: o5eL/MTSRGZg5mUvUl9UpQnX05S+kUQsrNGbvN1YoXmMuB4019jRC0awPRjooD4fBZx6jewnd6QYUErIfKH7Gg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2704

From: Zhen Lei <thunder.leizhen@huawei.com>

Fix some spelling mistakes in comments:
sentinal ==> sentinel
compresed ==> compressed
immediatelly ==> immediately
dervied ==> derived
splitted ==> split
nore ==> not
independed ==> independent
asumed ==> assumed

Link: https://lkml.kernel.org/r/20210604085656.12257-1-thunder.leizhen@huawei.com
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
[Linux commit: 05911c5d964956442d17fe21db239de5a1dace4a]
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/bunzip2.c
+++ b/xen/common/bunzip2.c
@@ -73,7 +73,7 @@
 
 /* This is what we know about each Huffman coding group */
 struct group_data {
-	/* We have an extra slot at the end of limit[] for a sentinal value. */
+	/* We have an extra slot at the end of limit[] for a sentinel value. */
 	int limit[MAX_HUFCODE_BITS+1];
 	int base[MAX_HUFCODE_BITS];
 	int permute[MAX_SYMBOLS];
@@ -326,7 +326,7 @@ static int __init get_next_block(struct
 			pp <<= 1;
 			base[i+1] = pp-(t += temp[i]);
 		}
-		limit[maxLen+1] = INT_MAX; /* Sentinal value for
+		limit[maxLen+1] = INT_MAX; /* Sentinel value for
 					    * reading next sym. */
 		limit[maxLen] = pp+temp[maxLen]-1;
 		base[minLen] = 0;
--- a/xen/common/unxz.c
+++ b/xen/common/unxz.c
@@ -23,7 +23,7 @@
  * uncompressible. Thus, we must look for worst-case expansion when the
  * compressor is encoding uncompressible data.
  *
- * The structure of the .xz file in case of a compresed kernel is as follows.
+ * The structure of the .xz file in case of a compressed kernel is as follows.
  * Sizes (as bytes) of the fields are in parenthesis.
  *
  *    Stream Header (12)
--- a/xen/common/unzstd.c
+++ b/xen/common/unzstd.c
@@ -16,7 +16,7 @@
  * uncompressible. Thus, we must look for worst-case expansion when the
  * compressor is encoding uncompressible data.
  *
- * The structure of the .zst file in case of a compresed kernel is as follows.
+ * The structure of the .zst file in case of a compressed kernel is as follows.
  * Maximum sizes (as bytes) of the fields are in parenthesis.
  *
  *    Frame Header: (18)
--- a/xen/common/xz/dec_bcj.c
+++ b/xen/common/xz/dec_bcj.c
@@ -422,7 +422,7 @@ XZ_EXTERN enum xz_ret __init xz_dec_bcj_
 
 	/*
 	 * Flush pending already filtered data to the output buffer. Return
-	 * immediatelly if we couldn't flush everything, or if the next
+	 * immediately if we couldn't flush everything, or if the next
 	 * filter in the chain had already returned XZ_STREAM_END.
 	 */
 	if (s->temp.filtered > 0) {
--- a/xen/common/xz/dec_lzma2.c
+++ b/xen/common/xz/dec_lzma2.c
@@ -147,8 +147,8 @@ struct lzma_dec {
 
 	/*
 	 * LZMA properties or related bit masks (number of literal
-	 * context bits, a mask dervied from the number of literal
-	 * position bits, and a mask dervied from the number
+	 * context bits, a mask derived from the number of literal
+	 * position bits, and a mask derived from the number
 	 * position bits)
 	 */
 	uint32_t lc;
@@ -484,7 +484,7 @@ static always_inline void rc_normalize(s
 }
 
 /*
- * Decode one bit. In some versions, this function has been splitted in three
+ * Decode one bit. In some versions, this function has been split in three
  * functions so that the compiler is supposed to be able to more easily avoid
  * an extra branch. In this particular version of the LZMA decoder, this
  * doesn't seem to be a good idea (tested with GCC 3.3.6, 3.4.6, and 4.3.3
@@ -761,7 +761,7 @@ static bool_t __init lzma_main(struct xz
 }
 
 /*
- * Reset the LZMA decoder and range decoder state. Dictionary is nore reset
+ * Reset the LZMA decoder and range decoder state. Dictionary is not reset
  * here, because LZMA state may be reset without resetting the dictionary.
  */
 static void __init lzma_reset(struct xz_dec_lzma2 *s)
--- a/xen/common/zstd/huf.h
+++ b/xen/common/zstd/huf.h
@@ -131,7 +131,7 @@ typedef enum {
 	HUF_repeat_none,  /**< Cannot use the previous table */
 	HUF_repeat_check, /**< Can use the previous table but it must be checked. Note : The previous table must have been constructed by HUF_compress{1,
 			     4}X_repeat */
-	HUF_repeat_valid  /**< Can use the previous table and it is asumed to be valid */
+	HUF_repeat_valid  /**< Can use the previous table and it is assumed to be valid */
 } HUF_repeat;
 /** HUF_compress4X_repeat() :
 *   Same as HUF_compress4X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none.



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:22:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:22:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227734.393992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo12F-0003db-Ri; Fri, 19 Nov 2021 10:22:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227734.393992; Fri, 19 Nov 2021 10:22:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo12F-0003dU-Nl; Fri, 19 Nov 2021 10:22:23 +0000
Received: by outflank-mailman (input) for mailman id 227734;
 Fri, 19 Nov 2021 10:22:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo12E-0003FS-J0
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:22:22 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94d9d9ca-4922-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 11:22:21 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2051.outbound.protection.outlook.com [104.47.4.51]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-17-AXYmrSAsPE6VtmYQLeNg8g-1; Fri, 19 Nov 2021 11:22:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2704.eurprd04.prod.outlook.com (2603:10a6:800:b5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 10:22:19 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 10:22:19 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR0202CA0058.eurprd02.prod.outlook.com (2603:10a6:20b:3a::35) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Fri, 19 Nov 2021 10:22:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94d9d9ca-4922-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637317341;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Poc0wRx/mUi3cWDnszzqwQVxElnm2r9mLP8h58FAsVw=;
	b=F4i+wOnaUYE/o7juzWWY3omAp4NpvXnLgNxoQ6pWOVqe4ghTq/BsyshvILQOldv8qoXLut
	DKS+T2Kl1wvxNBEZmU0LpS67LWbBA1zwjiHOl0dHfxkZDPWaFQRerdNjcIBVZCI5tDBgy3
	Irw8SjblW6btLPSLULmQOZ1l/WmCYAg=
X-MC-Unique: AXYmrSAsPE6VtmYQLeNg8g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EUpd8WeQi5qeK1VJ/CD9bcv14ONyU7aU0qCno6b3zKzpYnsS7VerEDG47GbEBjFiKcqv9qjaqqNBxabZPiAlgDmvFzOmMXcsWRyKgSlhV0PtDoYWC/R5h6Pdgij2O5AyzMLX3k8xz41LX2+aaAwtw2Du5RTS0q5ehSmN7mxMFN/4vCliERfAeyy/lnfsGdVZPti5e+uox8cOBLaNR3cGVb+qKn/ya17HtZVzAT0SVHU971Ss1m6k01qUsRyDTgHlxlrY9XOQp8gIdVv3fT0gYs5bsJLjQUeFc1ynOl60vVHVYimOUmEASl9KOTrLq611H35AZroYLMQUvUUnReMA6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Poc0wRx/mUi3cWDnszzqwQVxElnm2r9mLP8h58FAsVw=;
 b=AbhQdo828vE7c2lcOyuV5VoCvRqcc6BxTVpLOLKCRV/B9kYqi9Lzzvo2GDnFNPXxRQuILBubZrUVrStRGow/A2xTN/VhdqAdX58HPwps++UxIq9yWPWjHDNpEVx1sozXUpjxJ05TlCIvaNEWbWiAlEAd182wSsaLR4llSR4802P1yyXukA5+QMkvTmp2CJQc/gMHX0AfbOxnEGpabvkS10R3GBofmHb+4fYdgEJ/x8cugukPdvZGK6uqroWg4Q554gvAEZoUuc5OlJ2I3EyMXopq3r0TWzGsLKw+haqF8m6BLIqDw4XxnSf5lsKny7xYQ9xRk/eZfOagONYoB8cqpQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <389df3f4-5842-0f44-c8a4-42130f51959d@suse.com>
Date: Fri, 19 Nov 2021 11:22:17 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 4/7] xz: avoid overlapping memcpy() with invalid input with
 in-place decompression
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
In-Reply-To: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR0202CA0058.eurprd02.prod.outlook.com
 (2603:10a6:20b:3a::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 793a95cd-4571-433f-1300-08d9ab46778b
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2704:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2704533DBCFC6F9480E63941B39C9@VI1PR0402MB2704.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	FVZJZ5DaSMlNSR9yPTHe+OB+gbofu4kHpKQMBifucWnbtwH72y+4fGhSFPYuOS0p6/qJjI0Oh6mYP6MYPskU1O5QLgiF7+IicIiQzyClu9pzk8RNee4VhNCAGntPn+T2VinGEEn+0quXxz53J/IDhL+E5apiZDSZL1LNHmwt7kHI4lNmCZZKlr+iBABWPjtgpgnJ62CVF5AR8hrBO1WWSKuYOfF6C6/neyo9d3C9vKQjkWK6fGBOkCOTdPfA/AR6wTVEDtp4vRu17U2CJfRen2ipB+tqxxOO4qIz4g0uAedIl93DTr+GjrINxuqzlK5JRd/3vnLb7/uqHbDeQLno8MqdKVvHbLetjP2klcabkUN70dAoZUahFVM4MWgTcglRu0hbeQNzVmXRXPjOzZM1hCvyJcgRcG2HtN3Giq/Y/+ilNe4zg33kem1cA5Vcz7CEH38abpl6W3tNjjrxWnfaSVrAmkY4Ua2LxodT/cTvXEUUyFMns3TXZvYV4A7BPasYffX+NVSwtGC0S9f76ecaWfVXcc3PvusUPNo2Yzx+bFDNbysTtFYL+RKWLDIRSivlVu6C1vAOHwuA5yXUfsasfxErsHvoZtOu4wDREr4eK6kmA0OAq43HfMewhC8z7gMKz0HAKoLjxA3hqjdHj84gADHcEvAl8VAaSXCPexJl7FfccpU9kuSSSuGTLJMGd+n+6yq+uySQKxSVwPicCg3MmjW/kj3oXyy/DnTeBn/1vinSnYslX3VTQ82RbJSav6EOKf7wiCjkJvegQIr45A8cFEh/fYNwHeOAcr3Al4DWT7MPfQ3czU21fLllNcnNxvITxwbn5iNV9vK/LjeKdquRCA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(38100700002)(36756003)(508600001)(2906002)(31686004)(8676002)(66476007)(66556008)(86362001)(956004)(2616005)(5660300002)(26005)(8936002)(6486002)(186003)(316002)(966005)(66946007)(54906003)(6916009)(16576012)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZENlbzdSN2diWHZRdzREcUNCTForZnhBdENzL3A5M3h6c0ZHbmp3aG9rSk5j?=
 =?utf-8?B?dVA4OENxT0orc2JFczE3UVpJL3dCenpJcUdTQXVTdkdVeFNRRlM2VGwzNTlq?=
 =?utf-8?B?SEFhamkxNGUyeEpXRTd2T2FOdzNDeGtaM2VlT0pUbVM3anBmYXlzUVRBMVY3?=
 =?utf-8?B?QjNKNFluWDJTZmxpdnh2Mmhyc3BtTTQ4c1ZhVmYySTFPWmJzam1oOWxlRldK?=
 =?utf-8?B?YlhmVHdaZ0w3UlMzOUVMc0tiMHR4ZVZyYUhhUW95MTZKMWxlUCsvTkRhSS80?=
 =?utf-8?B?V0htQVUvVlFkUVVhVzIwMVdmeW5MTWNTNWNOQ0ZHUG5HWDJIWFBDV0lDbWZp?=
 =?utf-8?B?dkVKRnZIT0J4ZVJxVzBjWHVwVVZwSW0wejJldGNxQ1JiSjBvUk9XWnBYeFpk?=
 =?utf-8?B?b0QrZTVhNHZPSW9pMnF0UEpGYjl2anp3VTJxZmtYWUtxQjArUWJTWklBazZJ?=
 =?utf-8?B?OTFILzJVcm00Z0J3VzRhMG16ZjA4VmkyVnF3bDBUcmkvbnVJUjNLc2RwWDlR?=
 =?utf-8?B?NjY0M0VCTVAvLytuekpyZzBzU3p2Q0cycVY1SnE2R2hhS1h0a3N1YS9VenhM?=
 =?utf-8?B?ZTFJNzNkd3Uwd2ZKNzJiMFpPN0FGcjNvMUNHS2ZZb1I0aldheE51dzhnSmtp?=
 =?utf-8?B?d2J3WFRQN21ibzZDQ090RExBV0E4bU42UEZ6RlZKR0lXUkl3TFBZbTRQRE1V?=
 =?utf-8?B?MCtHWTdXaU5ySEg0bkdmbnljazM1S3JOYWFSVTg0MnlrSDc3MUhuVDNpdVdr?=
 =?utf-8?B?bzB5SFl0Z0ZjYnRRN3k2bDFzaURGKzhYQmhaSEpBZ0M0Y1ZqSUNLdW8wMVZM?=
 =?utf-8?B?R2dDOTVlSFRMWFJlWFFCdnpUcVhVQS9VNWd1OG1CWERiWnpnb2JyeEFjM1Iy?=
 =?utf-8?B?NTFwNHliTHl3cFAzRnRGbEdYM2U1cFN1S3E5dngvbkNlN0MreVhGdjEzYlBT?=
 =?utf-8?B?bW5FdVJsbHJhWnpidzV2d2pzbC9pK3MzZS9hUWVTcmZ2eFFiVVdqWHpOWkMw?=
 =?utf-8?B?dFd4Sm5aUlZvWjZtRlJOMlJScml5UU9kUDJQWWk0WjUwU254S2o5SjdhNnRk?=
 =?utf-8?B?QllRWmxVWWFQdzM4dlpiUkVuajFCVWhVUDdvNXBhYjdhZmFQSTFVd2dZbG9i?=
 =?utf-8?B?SktJd1l0VnErV1Vhalp1MTVETG9zTzM1SW9KQmpKemlxZWw1SGNRNjlmWXRO?=
 =?utf-8?B?QTdObE5TbC94Rm9OSUNlZzl0M2RPenltY3ZQRk9GRERuQTFRRWdMS0N4U3ZM?=
 =?utf-8?B?KzNtT0JnVnBCRlhIYTJOQm5STzE5dEZMeklFYmlWdzZoZi95OHVnSkViQjBn?=
 =?utf-8?B?aWc5U05FcXg5bjFlR0tScUhlUGVVUGhZRmh5anZxckhUOWcwOElJcHk4cHg5?=
 =?utf-8?B?UEIyeXd1QTgvZnAyOGVvVVR6a1RuZVVrWFh4VEtuRlRzbGFPQzVQNGRWckl3?=
 =?utf-8?B?d1ExdnJkTFhRTVQrSGpHNTNtL1o4dEJ1NWVEV29VZjBiZXMyMHYxcXBBQXdp?=
 =?utf-8?B?aDlzbkpFQUxRcmtONlNwOHBBTU84L0RETUFzaWZYMVBmN1JLdzZPdm4rWXJR?=
 =?utf-8?B?WGFHbG96a3o0R1pFQUhVcFhsN2FtNUdsUUJld0lzZ3dCS3N3cGxqK3JxclVp?=
 =?utf-8?B?QnJKaCtmRm5FbmpLTy95ZzhpNFVuV1VOR0k0YkUvY254MEhLMmFxMVhXandQ?=
 =?utf-8?B?VW5RTXB5Z0JUY0hmR2NHOEhYRXBLODVQRnpGZkdmcmVKdHdaK2JPZkxnOExw?=
 =?utf-8?B?ajRiYnFVbWZXZ1ZWZ1JGZnBramlVK0hvY1k4cmdxQXI1SlI1cENqdTBJZTl0?=
 =?utf-8?B?amhSN0pEWWxkcDJaekVOMjVoZGQxUVhnN1h1bHEyN3MxN1BLNFBJd3lmcnF4?=
 =?utf-8?B?Sjl3cjdHd2VVT29YZGlWWjNDK3A1YmtLeDBNTFdFNk1ZNEg2c3NKYi9qOGxu?=
 =?utf-8?B?M2pQQWQ3NENwcUVsNysycldSTXBzZldvcWJCNlZQbEhSOWYwQnlSSi94emFO?=
 =?utf-8?B?WS82TFNMaU94OE01NEh1Yk85RDVTS3llcE5DdWMwQTdjNUg0cm81S3dxU3gr?=
 =?utf-8?B?VHMzTHduMVpGQURmTitIYjlNZlViYmlUWjdkd1NIbFBiL0tKdlhiSVp3NGFS?=
 =?utf-8?B?ekdCVERLVzYvWU9qNWk5TnpDclVoR0JTbkpBbGtaQzM4NzlrZVNtdE5jWmlp?=
 =?utf-8?Q?U8i0iChKSnhA6P0JVkZ5D3Y=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 793a95cd-4571-433f-1300-08d9ab46778b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 10:22:19.2528
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dH25xuGdz1U/svWoeddzKVBIS/sm3m3jNLulq4nz5gGIXo8rhYf+C5GtDpCA8pRz8PXZqwxYsT0tVYPcVMlsYg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2704

From: Lasse Collin <lasse.collin@tukaani.org>

With valid files, the safety margin described in lib/decompress_unxz.c
ensures that these buffers cannot overlap. But if the uncompressed size
of the input is larger than the caller thought, which is possible when
the input file is invalid/corrupt, the buffers can overlap. Obviously
the result will then be garbage (and usually the decoder will return
an error too) but no other harm will happen when such an over-run occurs.

This change only affects uncompressed LZMA2 chunks and so this
should have no effect on performance.

Link: https://lore.kernel.org/r/20211010213145.17462-2-xiang@kernel.org
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
[Linux commit: 83d3c4f22a36d005b55f44628f46cc0d319a75e8]
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/unxz.c
+++ b/xen/common/unxz.c
@@ -127,7 +127,7 @@
  * memeq and memzero are not used much and any remotely sane implementation
  * is fast enough. memcpy/memmove speed matters in multi-call mode, but
  * the kernel image is decompressed in single-call mode, in which only
- * memcpy speed can matter and only if there is a lot of uncompressible data
+ * memmove speed can matter and only if there is a lot of uncompressible data
  * (LZMA2 stores uncompressible chunks in uncompressed form). Thus, the
  * functions below should just be kept small; it's probably not worth
  * optimizing for speed.
--- a/xen/common/xz/dec_lzma2.c
+++ b/xen/common/xz/dec_lzma2.c
@@ -387,7 +387,14 @@ static void __init dict_uncompressed(str
 
 		*left -= copy_size;
 
-		memcpy(dict->buf + dict->pos, b->in + b->in_pos, copy_size);
+		/*
+		 * If doing in-place decompression in single-call mode and the
+		 * uncompressed size of the file is larger than the caller
+		 * thought (i.e. it is invalid input!), the buffers below may
+		 * overlap and cause undefined behavior with memcpy().
+		 * With valid inputs memcpy() would be fine here.
+		 */
+		memmove(dict->buf + dict->pos, b->in + b->in_pos, copy_size);
 		dict->pos += copy_size;
 
 		if (dict->full < dict->pos)
@@ -397,7 +404,11 @@ static void __init dict_uncompressed(str
 			if (dict->pos == dict->end)
 				dict->pos = 0;
 
-			memcpy(b->out + b->out_pos, b->in + b->in_pos,
+			/*
+			 * Like above but for multi-call mode: use memmove()
+			 * to avoid undefined behavior with invalid input.
+			 */
+			memmove(b->out + b->out_pos, b->in + b->in_pos,
 					copy_size);
 		}
 
@@ -421,6 +432,12 @@ static uint32_t __init dict_flush(struct
 		if (dict->pos == dict->end)
 			dict->pos = 0;
 
+		/*
+		 * These buffers cannot overlap even if doing in-place
+		 * decompression because in multi-call mode dict->buf
+		 * has been allocated by us in this file; it's not
+		 * provided by the caller like in single-call mode.
+		 */
 		memcpy(b->out + b->out_pos, dict->buf + dict->start,
 				copy_size);
 	}



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:22:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:22:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227736.394003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo12d-0004GZ-9L; Fri, 19 Nov 2021 10:22:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227736.394003; Fri, 19 Nov 2021 10:22:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo12d-0004GS-5F; Fri, 19 Nov 2021 10:22:47 +0000
Received: by outflank-mailman (input) for mailman id 227736;
 Fri, 19 Nov 2021 10:22:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo12c-0003FS-5V
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:22:46 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2e55cda-4922-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 11:22:45 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-18-WQAgmwXzNoOlNJ4ZFus9Iw-1; Fri, 19 Nov 2021 11:22:44 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5168.eurprd04.prod.outlook.com (2603:10a6:803:56::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 10:22:42 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 10:22:42 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR04CA0059.eurprd04.prod.outlook.com (2603:10a6:20b:46a::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Fri, 19 Nov 2021 10:22:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2e55cda-4922-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637317365;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=+YZ/RYh6HZJE7d4sF/mnmyPw4f+smxi+AYdlGT8UcGM=;
	b=OrxysEkAe9gTIlmpR8eJCEWQ1yF5u9++tp0NLlW3eYtTahxU/XHmk9NHEhec8twuRn8BMO
	D5r4j634AIOC7uTC+28zd9ZFsiLsPC5VfuNr+BKEvf7wwOgXox/Cwfp+iUk0uRnMyTX7D7
	OxsKJ1I5SizbNDhE79wAUSbatqggFtk=
X-MC-Unique: WQAgmwXzNoOlNJ4ZFus9Iw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZrEhwEPkLd/189ebi1bAm5dF3wwonPRUYdJDPN/rZDFQ4gAgCp0tbuHBpCm1I45OndffIpw7waLZVxwezzf3OaIg7vl9279Y4UOcWZfiDB36Zs2csRUTbviEkhMw/D4jNZW7NMI1N65mcbRY6pxwb5aIDPDG/q9KZWZxReTe4YtCFpykkwXlWIJdHPYzfZATAjnpgrJo2pEAlK3C8q23I8W5PoEERN8MEJ/BJxD133zjzrdgXtK0tNBIy2fnRtpHkpC+YNfBipWaoMW2z7ly8yyQspShMuBUi+FESIBzKaMWucP1YJCGD7ivT7s5n5Z2Ost6U/nclrTx3NIOF4+O0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+YZ/RYh6HZJE7d4sF/mnmyPw4f+smxi+AYdlGT8UcGM=;
 b=mKi5bKOMTvmAs3jypacP0i9/VX0ipRfDwak1R59ix1Kky9fNFi7YFWxEYv1VZ3qvz7Ib3eqZ22nNlis/ImgxfG+0/XbKjC9jwN1V2nZW32h+DyMtrEG3ajxnqvhM2wdHr0vfxCFFya98XqeeS8jWsYKWsuz07aF4Om+xMuIqcL7wkI7+yf1j1EQM8sxV0tQ3/AaZS0u8+Zi1vU+jsRgiZHnx7Dw1MocFvvaU2buhlr/F5k0VccY9809TNF6kDocdeLvCUuL1AAWaXd1aQSRpaG4O6Hhpk4KXV98OMOEjP1iMwxasbdZQU8YFG3EbcT4SmkqZj4Rmrf7kXmt4y/x96A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <3b6557c0-08ce-b4ae-87e5-ff550a07ec9f@suse.com>
Date: Fri, 19 Nov 2021 11:22:39 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 5/7] xz: fix spelling in comments
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
In-Reply-To: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR04CA0059.eurprd04.prod.outlook.com
 (2603:10a6:20b:46a::9) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 28b23aa6-b3ab-4535-9a28-08d9ab468525
X-MS-TrafficTypeDiagnostic: VI1PR04MB5168:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB51684A5EAA76D5B61C5701D9B39C9@VI1PR04MB5168.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jNiJC2DIds0oOOyRQOhc77xEXJHEP0YrMBD3bfDdi+03CmnXReqvRfFPNyR83B+3NubG+W2QC0zewEzIqug5sa0d+kBTL9TMP0iJK7hYcms+dfFmcuOrKI7GRYjYgadKlZ6wdYD9z36ybWXVfT3dvP9sFqrjQgS3pBYt0oyr5WaEcnIQPf+hiYdwhdo7i4rFMN+TMMIzSBuVkcDScjGr5+oTcIKy/gv33DmrjtNq8JYabsBzQ81el210C6zQH612//2AMMPJHYOndix1+YwAe97NlzCDuqd8M6NpwuDB3pHne9zVkG2tifFbK5mdfs3azCqFr2JMY5G2mNq8p/0C5YI4iQyfvzG7UScpw8RSqA/Kvda820hl6pa6IxbNHdlfywPObJkALx50j0uGQMjHBBkfVZjR10kmR8tTpQbyN+ax1H3UoqerXlPovB7Cf+e952yYGfwjunHoDzhnPq/QfaL108/5LHCOARZAqe1+pswPjW54UxWPJF1zK2RuyFpQSh1XZf5AIQDXYyr74AokMWwWHaLt1d41bP6qh+/b6ePRh0LeP1ANQy9MV3l5o42GkgSrIH9qTpkkQ31a2FwGTTAUZugr85Ev/lqmV8FKvC3ZeU9r9naU6nkgyQRYW1bXamOMYLZET9GQ34o2CepNSzQDxqWqqQyBWfnAxDmUETqRWnSp1YzaCvO8XEyn/kyRs9eBbaAQLjJjYxEOykAL5HMjiL/pwByQOT/Tqca2C/eQEUtZcEr15Tze7WBTDPquE3M87p5sTVmq432ky0gaN/VzPOsd49Q1Fgeuuvl3Dl42Zyj8URZSjCEZMlRXyAZy
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(38100700002)(66946007)(316002)(6486002)(16576012)(8676002)(966005)(86362001)(31696002)(2906002)(186003)(956004)(5660300002)(2616005)(4326008)(66556008)(54906003)(8936002)(26005)(66476007)(508600001)(31686004)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dFU0Q1E3elJDZGE3TktrbCs2SFRSdkhZbmtMRWhOSW0zRWxoNEdaUUJGMHNx?=
 =?utf-8?B?TlRxWmwycCs1R0JPOUZTbStIdkg0L1VNeEdhc2JGaDM4MGY1Ni9yalN3dTZx?=
 =?utf-8?B?U3EzbnVUeCtRMzNpajlPOVNIYUd4U08wcU80cjBJeTUzbEZCYTlGZ2tVQXhU?=
 =?utf-8?B?OENWZ05JUEhVbUR2azRoeHZKc3FWSTIwT1p2WTV2OXhnNE1acFpwQWI5OWR2?=
 =?utf-8?B?azBUdkozWFhHSUIwK2E4SURDYkJsdUk1clNXUHZTOEg5WitnS2FsbVh2MHhU?=
 =?utf-8?B?V2NlVXZxNms3SWxhdThneHZneUsxK2xoQ1ZvVUFlcjlkRzI1QmlaQVR5MUtr?=
 =?utf-8?B?cWVoUmZTYXorUDhYcWZXbUc2RW5KWjZPMjE4YTlUd2pYTVgxbXZqRFdlOFZE?=
 =?utf-8?B?WGpycG1yNFhBTDV2aDRDc0h4Y0tmWG93eXcrTDVkWGNnT2d2RCtWQnowZ3BX?=
 =?utf-8?B?ZngxN1ZzeUxxellRdStuL1NNc1RadU16d284aXVWY2dUZ0UwUW5wMmFIL3NE?=
 =?utf-8?B?RWFpTGYzWFNlNUJXYzlKWmNjcWg5ZUtqR3ZZOW43SENXSXUzeWhhRGJLL2xV?=
 =?utf-8?B?U0dZdjI1LytpVTFWNzB0RnJGdGJSVmhSbEpNM3FzRFlLelUyNldBK2s3REFk?=
 =?utf-8?B?dGV6WGZldmRpWHRocnB0NkhRVG42ejdXZkxOWExWZDBGTS9RNVdLUXliRnVs?=
 =?utf-8?B?OTRkcGozRVZ3TkJSUy8vSkpTc1hSZzBzc1g4ZUcrRkhSVDJsTEVqSXFoYWFk?=
 =?utf-8?B?LzdzcmFuUUltOHM0L0d6ZWY2REFKVUxuQWtJaWl3cVBldm9WSG5Eb21KWnpa?=
 =?utf-8?B?QUx3ZUV4WTB5SWdBa1pvbndKT3RDNEtSb1I1VkxERTBPRG1QU09JeTU3ZDJV?=
 =?utf-8?B?azNSTTRBV3ZLQkFNV0FLK2VCWDh1NG1VTk1KclY5ZWw3UHlyWi9yNUMzTXRX?=
 =?utf-8?B?blZlN3Z0SVVrS3F4U0kxdm94ZUhtcllKVVVwWWRtRUVodnJ1Um82MXNyVzBF?=
 =?utf-8?B?VUIzdWVDU0I5ci9ZdnhhR05LTnd0UnRMaGNXU0tuTzFvYzVoWVhxcEFZS2hl?=
 =?utf-8?B?L0tINENRRWplUjNoTGZJS3JzUTVBdDYxWVk0am1ndzNwbmV0R3B3TDRFMTdL?=
 =?utf-8?B?WXRZREN4VFd2SWlDSkk2bmREcHF5K3NVNXZoK0pJdzdCZWNEVVl3MGxqYzl5?=
 =?utf-8?B?Slk1UEwwY3AzUjAzWkwyenkrQUlaMmljdlB2dkN1YXRxWThpV25UVTZBNzdq?=
 =?utf-8?B?SFFERDBSYlM2U2tTK2lkbU9yaU9LalFJb1pjVWJjRC9iR0U2WFVZMFJIam1B?=
 =?utf-8?B?NkFPMVlYRzJHbDVnSFE4UW1sN0hwQmN1Q0dKemNheUJjRW1IaXIrNEJhWDhx?=
 =?utf-8?B?Q3hFQTZDYWM3dUVFWWxrSGNydGlIQnVCSklKVWU3S1h1L20rbzRRclRIemZj?=
 =?utf-8?B?dkZaZ0tQeVpCa3dJUjh1SlMyR29hNWU1Y2pKK3M0Q0pLaUgxU3MvZGhJMS83?=
 =?utf-8?B?WTFIQTlWWG8xVm1GV0xrRWdSaWM0UVErVGdmSVQ3RTlYVmY0QWZORU9zaHR6?=
 =?utf-8?B?bzYxV2hqNGVTaGgxVzUxTnFvMWF3SXRFd1hZczdoL0pwU0ZCRFhlVXVLRUVj?=
 =?utf-8?B?dVpTMTNKN2svUUd6V3ByOXRhVnFYSmova2U1NnYxWDNVRDU2aXMzcFkrMVlP?=
 =?utf-8?B?MnA5aDQ4S2NBSyt1bUZkUXJMQXFjYk9KT2ZrbGhPVHVPRFJ4NUswMnhtSk5p?=
 =?utf-8?B?V3REMUJLZkYvWUFuS1djV2Q0cE1yaEVTeFdBQVVPeTl0TVdHcVZWaUQrcENN?=
 =?utf-8?B?am50T1B1MmhkSXFiaWNhYjRSbFpMVTRvc0RHdkJ0ck8yZEkwa2lQSU92VmVV?=
 =?utf-8?B?dVhpWEZoQWVJMUViWFFnbk5PTFNHSFQ5N3h0T0NlR2Z3ZUxZRmp6Tlc3dGw5?=
 =?utf-8?B?QTlWUzBMQmFKc1hac1FhdGw4VjY3UmJpejcxbHZkdFdscDEzVlFodkdQSTJO?=
 =?utf-8?B?T3RVZ2RidDdIelIvaHZTNWp0RlhzWnV5MHd2Sk5DOE50Wk9xRTZVMEhtYVc0?=
 =?utf-8?B?bUxUMUF0QWxCK1Qzd1l6ODJiVDNGZkdFVkhlY1ZPYlVnMHNLLzR4MDRwREZu?=
 =?utf-8?B?SWNUZGpwcmxzMThnbGxDSy9TdHNEalg0R1RxU0hGQzFyVW9uUEREMWhoYjF4?=
 =?utf-8?Q?PHH+z3ron7rmLiQyptYS3C0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 28b23aa6-b3ab-4535-9a28-08d9ab468525
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 10:22:42.3118
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BIlacKb+4217UHvK2OWAe3bfYepRy1mrgDg8OPr6DKgeB7/EyUZfwgeQPJIzD79KjcWmSTPzQ1oFmrT587FYhw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5168

From: Lasse Collin <lasse.collin@tukaani.org>

uncompressible -> incompressible
non-splitted -> non-split

Link: https://lore.kernel.org/r/20211010213145.17462-6-xiang@kernel.org
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
[Linux commit: 0a434e0a2c9f4395e4560aac22677ef25ab4afd9]
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/unxz.c
+++ b/xen/common/unxz.c
@@ -20,8 +20,8 @@
  *
  * The worst case for in-place decompression is that the beginning of
  * the file is compressed extremely well, and the rest of the file is
- * uncompressible. Thus, we must look for worst-case expansion when the
- * compressor is encoding uncompressible data.
+ * incompressible. Thus, we must look for worst-case expansion when the
+ * compressor is encoding incompressible data.
  *
  * The structure of the .xz file in case of a compressed kernel is as follows.
  * Sizes (as bytes) of the fields are in parenthesis.
@@ -58,7 +58,7 @@
  * uncompressed size of the payload is in practice never less than the
  * payload size itself. The LZMA2 format would allow uncompressed size
  * to be less than the payload size, but no sane compressor creates such
- * files. LZMA2 supports storing uncompressible data in uncompressed form,
+ * files. LZMA2 supports storing incompressible data in uncompressed form,
  * so there's never a need to create payloads whose uncompressed size is
  * smaller than the compressed size.
  *
@@ -127,8 +127,8 @@
  * memeq and memzero are not used much and any remotely sane implementation
  * is fast enough. memcpy/memmove speed matters in multi-call mode, but
  * the kernel image is decompressed in single-call mode, in which only
- * memmove speed can matter and only if there is a lot of uncompressible data
- * (LZMA2 stores uncompressible chunks in uncompressed form). Thus, the
+ * memmove speed can matter and only if there is a lot of incompressible data
+ * (LZMA2 stores incompressible chunks in uncompressed form). Thus, the
  * functions below should just be kept small; it's probably not worth
  * optimizing for speed.
  */
--- a/xen/common/xz/dec_lzma2.c
+++ b/xen/common/xz/dec_lzma2.c
@@ -505,7 +505,7 @@ static always_inline void rc_normalize(s
  * functions so that the compiler is supposed to be able to more easily avoid
  * an extra branch. In this particular version of the LZMA decoder, this
  * doesn't seem to be a good idea (tested with GCC 3.3.6, 3.4.6, and 4.3.3
- * on x86). Using a non-splitted version results in nicer looking code too.
+ * on x86). Using a non-split version results in nicer looking code too.
  *
  * NOTE: This must return an int. Do not make it return a bool or the speed
  * of the code generated by GCC 3.x decreases 10-15 %. (GCC 4.3 doesn't care,



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:23:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:23:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227741.394014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo12x-0004p7-I3; Fri, 19 Nov 2021 10:23:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227741.394014; Fri, 19 Nov 2021 10:23:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo12x-0004p0-EN; Fri, 19 Nov 2021 10:23:07 +0000
Received: by outflank-mailman (input) for mailman id 227741;
 Fri, 19 Nov 2021 10:23:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo12w-0004k5-6H
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:23:06 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aec93a50-4922-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 11:23:05 +0100 (CET)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2055.outbound.protection.outlook.com [104.47.8.55]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-37-iWGrbT8jPouzRdHVT6wxsw-2; Fri, 19 Nov 2021 11:23:03 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5168.eurprd04.prod.outlook.com (2603:10a6:803:56::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 10:23:03 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 10:23:03 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P251CA0017.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Fri, 19 Nov 2021 10:23:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aec93a50-4922-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637317385;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=SFdBl4oly+v5EDzv1v3dC+TsVpDheb1hphiY7sT/fCc=;
	b=hXXqJR9cXAgsoMrY81CfjfTLdBbACqBSKOqY+JVarD4n/SxsaIBedd0eN+H+7tAzdL1/sF
	UFwRHm/6xalBIrEYEdGuQoCnXH3Ukv+QueD6OE22RVagXeR5uvrBCCYv0DU/6qLrGo7O2a
	ARpEw2KUgFa9ul45nl8ZVDz4Zd/IXK0=
X-MC-Unique: iWGrbT8jPouzRdHVT6wxsw-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dNemgzmkMLSJ/oACIcUgMxygPlisTFMU7uqhl2l3UArf+sfT6JwQaSKkL/82ThjkcTQpNteLC0+6jVn31IVTzF+X/7hPClkYwkUX+Q3zDJqdi0Bfb9BthWftILihR8O8bApPYxbvHadr0v1lberaD0Rh5mzNshCF97EqffpQvr5927a5AmyF0OnZ6srGUmieZa4wvk1NGqWNuQXAjyRrsiNMxKAduPddFlDNS5vQBbDD1zNUFAKaNBixo6OqF/Hx3S4xu9oApvv8ZNpAD35zUgabcf3nohyBC9Dg0ojwdaBsbsFQ6UEI9Io+b/2szFlisF+1aLSuXei8WnYn92hmAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SFdBl4oly+v5EDzv1v3dC+TsVpDheb1hphiY7sT/fCc=;
 b=mSL+a6A11WVESi64NgWk9HhsWhscKAoq2jIYgAmxGpR+hn2FF+faD31rWps0WStLSINnmnQ6P57G79xZSd/5GMEBB4K581LRIku8NfhtyQhG4OFVovRK5bQuWNWXpRc7ygCNWxArlVDm+xl++Ic5O3OT0znYOZ8ZgsmQ9zIE8AJ7lqLopUOLyAn8tUStXh1s94iPMur3BwSLJmb/pu07XgG2Q74ROM1Di7w4jDB+YHWsoU6RJrJkxB25naYSdKjsInt7on+JrEl8gH3b5vH3r9PayyisYIDAxOYErmRuqV1xgFT6g4YDAojMOGzs4w34mj3G2BZKphNgAzCDMHlkVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ae6be008-0097-3b7f-5895-ee88f47b5fa9@suse.com>
Date: Fri, 19 Nov 2021 11:23:02 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 6/7] xz: move s->lzma.len = 0 initialization to lzma_reset()
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
In-Reply-To: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P251CA0017.EURP251.PROD.OUTLOOK.COM
 (2603:10a6:20b:2f2::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 47676349-3ed7-4dd0-2313-08d9ab4691a8
X-MS-TrafficTypeDiagnostic: VI1PR04MB5168:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB51686ABBEBD1E2356DC4A244B39C9@VI1PR04MB5168.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:113;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	o6Ve08ZqwddAUZnt8LUF6/sDPpgDmdVgiI1iiGI9kh6WJPEgm6JDFxjBNESYevFRCKxd+orWtLs9WawITiilp0AVa3tVftd07QPj6C+q5AkNmfU56MPW1Vyn39In+kapCdk+Vrz3wJYoEYkqmwg9Ule4iys6QCDgBLalNuis/Dpkqgx0jYYAEmmCHK6/7q30Q2XbTO7mkOWpFn2YrhEIZ4jtzzM39Cj17Pz4dIJBXD2ruYCFCwZYH8yNxNBQX3+y8pVQtg2y2LkGUp8SSKw1Qqw/B9XFnUsq4QgkXreBdKAzsHyigXYzRYjy//mvDK2GV+vuDayQk+ZRDBiytFIIAkFdt3mjoCyJPwVxWM3JeteH9EEFKCj5kmpZIt952UCnZYv9T1KrBE4zBkHSVU6YCJX/QAwvMHFR83zYGcidvENkYU2bwrxIWiGq7riWwGORae6cJc3g7VzdhcNiqsn2x0i4OUOyunfR4mtv4+FF/wdzK7J8bIDX057PgItIYH/SHX6apZX4vsJToof/qHQwLoInurH+8b6ITVMblBcB1JlVyUU82OVma8mxDfpDBZ1GAFk6qeHNm/5t7MHlariLO7I2Z6vtCGe9X9jPkbK+s3630ZD5MSkcDkpjPe+SGr9DudNeGArk46khMsWxHT9TshdFG+xJbpIqFm66KawkNOCjqK3m1BZrJmWcOF3mqKlZpi7Is2REDk/e5vI0PMVMpG2Ts2CA1T+kvnRe061LhvUfoS/OCF1nZX+HSqt5EkdTGlbfQfC9oNn3owxQv4P7TwBQGCVyACnHmXubC3OqvdGo83es1yhz6TksaqpXiw7a
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4744005)(6916009)(38100700002)(66946007)(316002)(6486002)(16576012)(8676002)(966005)(86362001)(31696002)(2906002)(186003)(956004)(5660300002)(2616005)(4326008)(66556008)(54906003)(8936002)(26005)(66476007)(508600001)(31686004)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RlducmJaaXJSZWZVa21URVFUTjVqY2ozZXQ1RmVpTVRTQ3o5ZkpRSGZMRURu?=
 =?utf-8?B?U1htTHlSek00cTE2emRQREllTEp5cXBGdVFGVGV1UmNQL0dINTNyZGp6QVhq?=
 =?utf-8?B?ejBzdGo1TG51cmQ2NERrTjBuQ1RxTURvNVdiTGNaOThUeEhRYUJrSnBlMW1q?=
 =?utf-8?B?SVNIYnpNdCtvbHVDaGEyK0QxQ3ZPRjRsZndNYVFSYWtzRVFaVjIvdzY0YUwv?=
 =?utf-8?B?d2V4SjhFcHZYa0RRVjhPZGIwWWRmL1VCZXZCSXUxOHAwRG9xNmR6eThLZkJj?=
 =?utf-8?B?UnA3ZmJQMlBWSDFYSW5neWFpcXRnd3U1Y2dUQUJQZkRQZkVyVXBxMy9pSDVU?=
 =?utf-8?B?VFFYYnBSQWw3QlQ2dWI5MEp6dytCaUx1NHR4OU5UREY3bjVnN2pmY0x0Wmdy?=
 =?utf-8?B?aW1iYWZUUW5hSkEwNlYyTXdSQUFFNmZIaGo4aFJZR3lJcmNiQ2lJQVczOTZQ?=
 =?utf-8?B?ZzVPMUJRdkVRUEsraUxsNGFpdCtCWEMyVWlEVldxOHBpalFEYkM5SnA3Z2pJ?=
 =?utf-8?B?NGgvaDZ1SzZjMjZBZXpzWUo5bnNUaVh2bDVuQkdqTFdIdG43OEhHVE5RVnpF?=
 =?utf-8?B?M0JBSHZyMXBScHdKS3d5WU5NTXJPaWxsckpxM1puOTdVUlpyMUMvVC9RdUg4?=
 =?utf-8?B?UjRmNXNzc0lNQkJRZDdQc1dlaURscEpwTzJ5bFIvQStUZWV6bVlMalZwaEZh?=
 =?utf-8?B?M3JYcGthZC82V0NsN2VjTHVhWTR1U3RuZERleDl0Sy9NTUJEMmV0a2Naa0Jr?=
 =?utf-8?B?SXBuWVlYRGFHNWt0NzJVWTJQVjd5emVvSUlRQnNCZnJxMC9uWE4wR1EzdEZK?=
 =?utf-8?B?cUhEbVhEOURDNUp2cU9qQjBIVzF6Q2RHRWg5V2szSTJPTnFqbWtUcSs1a0Jl?=
 =?utf-8?B?bWJjTjgzVHhDQXpWUERoc2pTY1RoNTllR0Y0M3RGcU5YZDQ4QUh2Q1JDa2xH?=
 =?utf-8?B?OWVkNVAzN0R1L2ZSRGhLOURraVRHR2JSNEs4OXl0bEpKRlk1dStoakU4OFB4?=
 =?utf-8?B?c0MwMERDVHBoRmxuWUNoZVV5VjA4NE0xMXFBZVJoOGxBZGxNN1FzSG5FeXRJ?=
 =?utf-8?B?dVl6UlNXZncwOG04cXlMNHd3MXFBdXFDTE1UK2dtZmFzYy9ONktOcjZDQ1Y1?=
 =?utf-8?B?SHNSaVRXdVJxTTdhZjV6R1IvNWJUTy8wYnRMSFg5dFFHZlRIWHFyTlg5eHo0?=
 =?utf-8?B?bTdPSmRJRWI5R2FDYnZuVkUyRkFnZEFrUjVTbS9lUC9qWmEzdlVCZWZ0NTlS?=
 =?utf-8?B?M25aeG1sbDRwb2pJWGVVNWh6ZzVQbXhFUktrTWY1TWI2TG01a2xOR1N6OThP?=
 =?utf-8?B?UTdTbnNUTG5TVU9GQnBPbzRlY1U1czBhamFaU1FaUm5oeExlR21hYzA4dGU3?=
 =?utf-8?B?bFJvaGRFQ0hyQUgxNFU2YmJFZTg4OGNOUFBhSThZRmJYSXMycTd3RVRNTmlQ?=
 =?utf-8?B?Z3ZKMDBNT3Jtb0Q5UXB0U2x6dGhmNitLMit5MWhwMzlQK1o0eVFVNXk5ZTF5?=
 =?utf-8?B?MFhGV1VNbi9OVy8ycFRYWWd5aDNkTWNSKzJ5VFNvQW1OSzBLQ0xrd2pGMmxo?=
 =?utf-8?B?bk1rYm5oRUt0UmpWNjMyN1hISzRRWTZKM0xaQkw1bHc1THJOTE1KNUpzYU5K?=
 =?utf-8?B?enlmaDc1NndUZEFzQW9pU1NxNEg4cW1BczVwZGdMTHBXL2Fta29NZlhrVk1F?=
 =?utf-8?B?UmRhNUZLZjVsUDZtdm5BREFsVHIvKzZsOFBwK0JZdVpINUp3UVR0VEt1Mmp6?=
 =?utf-8?B?NHowUE00Yi82RXNqTC80R01IakNqUlprNDJyVnQ5aW1xWDM4d0U3bU1nZFdx?=
 =?utf-8?B?ZW9WVWNaeVFwZDZuajMycWVzSTFhSHRNdWF0VGxKRVZqYWJMeHorV1lldXhs?=
 =?utf-8?B?bmZTRkZmQTJRbzZIVitTQWN6V25mTjRQeGRsUUpUbG5rbi9lOUgzTXZPODg3?=
 =?utf-8?B?bGJ6RTJtRXJuQ2xidFZ0TndxUkwwQ1ZhNnU4UlZqT3FISFl5dHdyUWR4UTR6?=
 =?utf-8?B?SWluNUlKNzFXcituS1BxMFM2dzZLVHZlU0JWNDVYK04vYmU2UEFYM08vV0xU?=
 =?utf-8?B?Rk9mK2JtT1ZUOHJkRkliY0tURUNVTUM2djYvT2V6WEZwRnVCYUdoMFNub055?=
 =?utf-8?B?cUJOTjkyZUNEK1J4SXNid1ljN0lMbERpdW9IUTRIZDFLZTI5WlFhd20vcjBi?=
 =?utf-8?Q?NIdEwKLK3wuFVtKVgfWx/9I=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 47676349-3ed7-4dd0-2313-08d9ab4691a8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 10:23:03.0361
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SX5mjQOE9yUhkhMSa8ZLXZFWIQXMTi3AFJis4LzGHZIxqG1YKxCE5dzGUD/Kotr9ZWnur2XEmWuaWoLTrDdlYg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5168

From: Lasse Collin <lasse.collin@tukaani.org>

It's a more logical place even if the resetting needs to be done
only once per LZMA2 stream (if lzma_reset() called in the middle
of an LZMA2 stream, .len will already be 0).

Link: https://lore.kernel.org/r/20211010213145.17462-4-xiang@kernel.org
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
[Linux commit: a98a25408b0e9b0264abcc3dabfafd9ff2ea1046]
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/xz/dec_lzma2.c
+++ b/xen/common/xz/dec_lzma2.c
@@ -791,6 +791,7 @@ static void __init lzma_reset(struct xz_
 	s->lzma.rep1 = 0;
 	s->lzma.rep2 = 0;
 	s->lzma.rep3 = 0;
+	s->lzma.len = 0;
 
 	/*
 	 * All probabilities are initialized to the same value. This hack
@@ -1174,8 +1175,6 @@ XZ_EXTERN enum xz_ret __init xz_dec_lzma
 		}
 	}
 
-	s->lzma.len = 0;
-
 	s->lzma2.sequence = SEQ_CONTROL;
 	s->lzma2.need_dict_reset = true;
 



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:26:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:26:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227745.394025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo16c-0005gb-1V; Fri, 19 Nov 2021 10:26:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227745.394025; Fri, 19 Nov 2021 10:26:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo16b-0005gU-UW; Fri, 19 Nov 2021 10:26:53 +0000
Received: by outflank-mailman (input) for mailman id 227745;
 Fri, 19 Nov 2021 10:26:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo13P-0003FS-QB
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:23:35 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0845628-4922-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 11:23:35 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2111.outbound.protection.outlook.com [104.47.18.111]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-29-V064zvpUOR6KQK9OlhyBEw-1; Fri, 19 Nov 2021 11:23:33 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5168.eurprd04.prod.outlook.com (2603:10a6:803:56::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 10:23:33 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 10:23:32 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P189CA0016.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:31f::7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Fri, 19 Nov 2021 10:23:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0845628-4922-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637317414;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=s9lhd4h+5NCuGWKWiKjPu07VXVlsfujEz5D+3IHDPrs=;
	b=EhAPmzz8mYpSvpOxKtS1UdWNJ/Rx27Mtlv5fl3BcbV4xLOT4n82ZUn2Cd63NHXv9eCMPSV
	kKCmxqIaIlzgm/23SJ9JS3pw/lzEuPcgPK782+MP7fYFeqOIP0PZf+viEvdtF3tnK6CHR3
	cjiRrl+V6f9koA+039U4Q37yg5jNLPM=
X-MC-Unique: V064zvpUOR6KQK9OlhyBEw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gGFx1LVdpmNl+Jq2QE1XbnjByd6FLV+2KG8l93sLFRUiRSuY27yAzBNBziu4xj6chy3HcFtSSMljcR39DgpljkPsRLGnbcNvUZIezT6ebuj/2EsNF6gDsd22ROrLUrpHLHUtuTPXuM2A5f+7CfJjrDvbkQ9lWR9pfa67GsVvb6AFqEgJXuNFROSe0sGyb9DDwwdu5HVRPGZtNLihcMAJLKx++L1E946DCCeYn/STJp/QCu1mNrEGiStkti0iRWqPEpozjkTLzFwiuTA6kzuRFik7+ZyNbMYgccywCRwP1cHXv7SiwFVRlGLIbQc02HHZSwAfQAWigo5B5EcsXVbbgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s9lhd4h+5NCuGWKWiKjPu07VXVlsfujEz5D+3IHDPrs=;
 b=S/b4mYP2+fMjHu7DSlaNcX7nxPIL+UNBg+xkH1hnrNFHGXclmy1/kaqcpM0Wr+Jml2i+sGOsXLl0vgXeaTNMK7ehi5dvfOPGex4KTONl5hXaOUibaXs+G839ZEzUoOkI/Z7AoGT7Yh6Q72I4+myfNow0hmQl3PrH/20Y1xSAGY3ru3aG8HzsIdlw/KtnMLY8kdfXd9Pe/PNYRvLpPhDZG6nYKX9C7Of2erEYfUOFhCGVmHSavRl6B364q8ZtCpgTxA4PEKo0ADd6LmyoeuBj9AmpVqFizrATEgSO7VsmYPdk5Pdf7f1DesBJ/xAZ+UllQDaAAjdQ89iINln/GoEmpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <02555939-5720-af2d-6a0f-550709aab884@suse.com>
Date: Fri, 19 Nov 2021 11:23:31 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: [PATCH 7/7] xz: validate the value before assigning it to an enum
 variable
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
In-Reply-To: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P189CA0016.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:20b:31f::7) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ace4981e-2069-4511-42f4-08d9ab46a36d
X-MS-TrafficTypeDiagnostic: VI1PR04MB5168:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB516808FD6A30C45AC6DC9AD8B39C9@VI1PR04MB5168.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1NHDCqwSE2/ncGNNwjfICdVnUdUbqxGEtoE3ncgftQJmvyWlmKrGv3AHE4Zjrkg0IipN+JOydFOd+E61oRO5ouIW4UfVY78Uk1hTyXokABydLACpUv2Qn7ELkvD5fj5UW8HNxkE4n5dVPaJm2DIXX6yS+IAHqAiClgx6DeCAMtYWg+++xAmtM8/iHtC8u8sLaRKOaQnQT5apSWuUbv5lnPFwGGJZHaKjYHAEGjAay8DMA1XQqLUaca2G0g6ZdxgDhOFwW3xKQZvEoY+6dcc9Qw/+NVgapjj+5BmB/oRe0J3K5r5Iio+0B53IqraeYlzOLxl5hFzDUehuAnQYjpmecqhZcNJThIXAQqq4I+uzWm0xTom78LPKuXowhVAslD/rljWpFIyeMuygt+NcS4DfPSZkiPjmEmxvCBIEUsS2hqZ0g8itH34nE1oUFtsWSt7tcZEsTv5ISflrKPKDJ2v8P5CWYQrCNWM0skTkcQWDJ1gZzKIc9IFFqVka6npJNWKvUP0IN8BIfkdQQcJ2Qi0Oca5TU49hknF9XXUB22jpE7MpXbbF+kjsxFrHzLEEGTx7cg5UC+ZbjU2KoN8G1XBpUnPwxLglXooAUhi3020tZ3dZmwC48nGEhDsTWxxwDTtyTeQtEbz/ROROnr0zAmvEeEyWaa16EEcjMqhVUjpq7fhYV6UPzyGoXWpeUzUdF3Vl6fjFvfamkg04m7AgbqnkQnK4TqfEcRDb20Ya9oYI8ZnaG95hq0PbOpF5TQeDNAK5TZcC3GwQEPl9kqrPNabSxeaMbn8IGM5LJrTOAuxigYceEOzDzVGrMNRSwXgTh3PQ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(6916009)(38100700002)(66946007)(316002)(6486002)(16576012)(8676002)(966005)(86362001)(31696002)(2906002)(186003)(956004)(5660300002)(2616005)(15650500001)(4326008)(66556008)(54906003)(8936002)(26005)(66476007)(508600001)(31686004)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aTg4SVphREVmeUN6dXROaGRMMUU0Y2dGL2VNMVplL0JhZ2s1dnIwVW1mSjhW?=
 =?utf-8?B?V3h1RW16NzVGSWFKRDNzSGtFUWVHaGpLUndtNVBJZmVwdkRqUHhsQnBLaHh4?=
 =?utf-8?B?T1NRQTFOSjNoSVVLREs3SkwrS2ltdzJHYWJHTXFQbjRwZ2prZVVTS1RJdG1X?=
 =?utf-8?B?SjUyWEZrNTNFNi9HYWhzMVMxNFFMaDdKcFZWUUxqOVVaMEV4T3JaTkFNdDNa?=
 =?utf-8?B?L0ZXeGxMd3NuaXFxRDVCOXZiSVMwV2xQR0J6V1lDZDRZVTk0NS9MamgxMWli?=
 =?utf-8?B?ZlZWMTVLOWpiS3lYN2JINjIvWnJHdkNQdEZlNEVEYU5FMlJQS1ZZS1VMaEZC?=
 =?utf-8?B?U0pCSzV6cldGMTNRZjVkSWhMM2xUcGUrVEJtWGpya25pSFU0U1NRQ1U2S0pE?=
 =?utf-8?B?KzUyMEtQQnVmY05qVFBZazlUQ1Q1VU1KSHk5T2V2UTZOZno3MlNzWlk4OTNv?=
 =?utf-8?B?dDFoNkJLcjMzMFpTQk9jTTZVOTlIN2dCRUUrMkg3VDJoZkpmZzM1djNESElZ?=
 =?utf-8?B?TUk2SEkvdVNQa0ozYVQ3VXFET0JiWHJtQTdzYU5oSUkxZzRSeHpCQVVDSzBQ?=
 =?utf-8?B?TGtINmNKOXdrdWNHaVc4VE9NL1Z5TEEzVlAwM3ZrRk93UGxBV2I3ZmNBOGg1?=
 =?utf-8?B?TktoYzVyQ2thdklKaGpmUzN0V1JZRUFtc3Y1OFJlTGMwZnE4RlJORmZaT2p5?=
 =?utf-8?B?QjVBSmE3THhzaCtXMnFwU2R3Rkd1WTRZRDJ1RkxxdXBwcldtdlpSYWcrYUdi?=
 =?utf-8?B?MGI4bzhVRGt2Rmt0Z01BVnZBTjU3eTBqTEhxRFhxTHZnaHVRdTU0c1ZQbk5q?=
 =?utf-8?B?MURTd1FlZ3JYa1Z3RmhvSFlZMGRGS3VWUWpCMVRqeEhSQUNSNXNjSUZBMnNr?=
 =?utf-8?B?UjBFMS85UTV2UENuWjVad2N4SDljZXIrRXQvajF4YWhOcnAwVzBFK25wVEhB?=
 =?utf-8?B?MkxJWW9rSk9tWEJiUTRJUWYzWlF2K3llY09MYVM0N2RXY2xNRFZrRlNKTHNY?=
 =?utf-8?B?dzVLdjY5MEVUbmJZMlptTkJ6T3FaaExmNGZCeVdlQWFlRXFlQy9yVzlWZytE?=
 =?utf-8?B?WTVMZnZ5YW4wR3ZmNFhqVWpjY2tSNDNxa2c0Mm16UXZGVzRpRThrWVRQN1JH?=
 =?utf-8?B?RkhEUmRTZ3prSmtKTzhkNHlmWmduMXJoeDNJS05BTWREK282cWZPQllQWVRT?=
 =?utf-8?B?UmpLb3hGdGl5V3BYT0Eyb2VqVkxhVDBBRTJQL1lIVmlKNjQyVk9KYTFRdWVv?=
 =?utf-8?B?YTE2Vzkrc0c5YmxhaXQvYkJuY0xhWEszZzVJSkZIN1ljSjlsV2JzQk9QNzc0?=
 =?utf-8?B?MDdYU2trNGQ5WllHZkNMM3E4a0tvVkl3L1ZIR1hOVEtvbGdCeWxKSk5yeE9T?=
 =?utf-8?B?L3JhOUtRVnBoSWJLYW94a0VSR1kxRENIRzZ0cTJiNDFiM2FjMXdGWTNNczBB?=
 =?utf-8?B?MFZpVVJuZmhEcm5lSm5BcFVsV1NEd282QWNlR1Z4VmVqMjIrSmxaN3BzaER2?=
 =?utf-8?B?WFR4L2JzSE51WmJMNFp6M21iNWQwbzRsM00rbGMvOTVma2V3MEwxNWZvUGUw?=
 =?utf-8?B?L2NCeGw5TmNJbEwvQmFyUFYrR1h6SmlLMy9zUk1LOVErQmNSNTZvd0g5RkRz?=
 =?utf-8?B?UXFRVG4vTCtLN1Q4QWZLTldYQW5QNkdjS3BTWWlFZWNsYzhaTC9FWDkrVkE5?=
 =?utf-8?B?Uy9MVU96djlrRDJoWGY2UGRzQzJYTHI5TlQvVUFkREhscmlIanU5LzZMQ0wz?=
 =?utf-8?B?MldXMTVrZDdJRis2b3hLS0JyRG9GdkdRdzdrQmtrYUJEdCtsQWp3WjRtZkJm?=
 =?utf-8?B?MlkwYnhTbXhUUnB1Z3Y4WnhaVER0bjBNbk8xdFgyK2FmNlZLZTJkbnJYZ1Mz?=
 =?utf-8?B?N2ZlNlJHbTBWbFBRenpVdUhWN3g3WmFRVzV3VmxTM05XRkRlZ0xTS1FrNnZX?=
 =?utf-8?B?UUZRdFhnSEUzUk9hVU1vRFcwcXYwbEU3WnpLWlp1L2s0dE4wRzBPVjZuVkhz?=
 =?utf-8?B?MHdTQ1g2NzF6Nks3b2FFdllvKzVLaW41WWhOZ0xtVndrTjdHclJuTEgvdXRS?=
 =?utf-8?B?UXd2ckpMTzhGVndVNlNpUFdFWG1DV2pjY0R4bERFZzZ6dXF0RFd3ZDA3YU5M?=
 =?utf-8?B?aEJYTXdyRDhFWlNZQ05wSllFaWZ6dms3NzBXdGk2ZENCMVp0d0ZBeDdqU0hk?=
 =?utf-8?Q?+el0F70fc5HcwPsHN3j2ru8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ace4981e-2069-4511-42f4-08d9ab46a36d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 10:23:32.9372
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iEIpYqLH4tuD6vvJLV8yRUCkF4QIH6Dl2pBuqxh8Imw8u3lnvhlQcrt11UaHCRNYM2tQvZTp6D1DFmrr82O8Rw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5168

From: Lasse Collin <lasse.collin@tukaani.org>

This might matter, for example, if the underlying type of enum xz_check
was a signed char. In such a case the validation wouldn't have caught an
unsupported header. I don't know if this problem can occur in the kernel
on any arch but it's still good to fix it because some people might copy
the XZ code to their own projects from Linux instead of the upstream
XZ Embedded repository.

This change may increase the code size by a few bytes. An alternative
would have been to use an unsigned int instead of enum xz_check but
using an enumeration looks cleaner.

Link: https://lore.kernel.org/r/20211010213145.17462-3-xiang@kernel.org
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
[Linux commit: 4f8d7abaa413c34da9d751289849dbfb7c977d05]
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/xz/dec_stream.c
+++ b/xen/common/xz/dec_stream.c
@@ -402,12 +402,12 @@ static enum xz_ret __init dec_stream_hea
 	 * we will accept other check types too, but then the check won't
 	 * be verified and a warning (XZ_UNSUPPORTED_CHECK) will be given.
 	 */
+	if (s->temp.buf[HEADER_MAGIC_SIZE + 1] > XZ_CHECK_MAX)
+		return XZ_OPTIONS_ERROR;
+
 	s->check_type = s->temp.buf[HEADER_MAGIC_SIZE + 1];
 
 #ifdef XZ_DEC_ANY_CHECK
-	if (s->check_type > XZ_CHECK_MAX)
-		return XZ_OPTIONS_ERROR;
-
 	if (s->check_type > XZ_CHECK_CRC32)
 		return XZ_UNSUPPORTED_CHECK;
 #else



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:30:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227749.394036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo1A1-000752-Mh; Fri, 19 Nov 2021 10:30:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227749.394036; Fri, 19 Nov 2021 10:30:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo1A1-00074v-It; Fri, 19 Nov 2021 10:30:25 +0000
Received: by outflank-mailman (input) for mailman id 227749;
 Fri, 19 Nov 2021 10:30:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LEpL=QG=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mo19z-00074p-Ly
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:30:23 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b21f0dfb-4923-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 11:30:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b21f0dfb-4923-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637317821;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=mrEDCvLQp/TKMqvftLjGripCo8Tcgn3miH+kVAhxaAM=;
  b=QqCwgnleLBjr29dLyUqKcIg5+UovtfOuosrI6McD6Ar4oXrlhngypNvt
   8djeHCbD5nb98dPOU5w3hJyvPO7JQLFs88chvJfBkMGw6orxeJguTHOHH
   WOAe9RxYY6CPtHtI0QtMpnDLe3nXxydoyQmIqNrKbnlWNyhmepxHTZw8l
   s=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: z0fV9fMWN9D1/M+XOFyaBt9ZquxqyUQdOy7T0bX5wFzdVGJQtTFNpcntU/CeIMDPMBGUrAFWt4
 oexMMQ1AJaw/t969p4OEL8f34hseTUKUXbJk5drqCYLMF+sk28Zg2YT9ldXVNStrTpvWYhkGdB
 +41zboCMQ2/M8Z+a8aR9554kIqdX7cN1MWcAn1NStljBuCkrbEgoSgBVBmYDzezG/NSOB7J5OK
 ay3LYC9AEllGJ8j+nqWyBHASmMlfPkeYB3X6m+je16Or5EBuRceYmAoe5iJVkOCnFv0Mt0IE93
 SSMqjlKikGVuUAfrceVu9nsX
X-SBRS: 5.1
X-MesageID: 58594730
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:gcb3+av/JUrYkAr6HPru/R4BpOfnVLFZMUV32f8akzHdYApBsoF/q
 tZmKTvUMqrZamSjfdolbNiw8BsC6MPVmN8ySARrrChjQ3lB+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2InhWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplqI6KZhYHBpzwtLobYghCS35MF51J0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DNYUDunZm3HfBAOwvW5zrSKTW/95Imjw3g6iiGN6DN
 5dINWU0NHwsZTVQF1QvMY9lpNyZl37ubj1IgQ6opZoetj27IAtZj+G2bYu9lsaxbd9ShUyCo
 WXF+UzwAxcUM8eSwnyO9XfErvDLtTP2XsQVDrLQ3u5nhhify3IeDDUSVECnur+ph0imQdVdJ
 kcIvC00osAa9VOpZsnwWQWip3yJtQJaXMBfe9DW8ynUlPCSuVzAQDFZEHgRM7TKqfPaWxQ3x
 GWmjv3RNABD7rukWGjFqYW+nTybbH19wXA5WQcISg4M4t/GqY41jw7SQtsLLJNZnuEZChmrn
 WnU8XFWa6E7yJdSiv7lpQyvbyeE/8CRFmYIChPrsnVJB++TTKqsfMSW5FfS9p6sx67JHwDa7
 BDodyVzhd3i7K1hdgTRH43h/5nzvp5p1QEwZ3Y1QvHNEBz3pRaekXh4um0WGauQGp9slcXVS
 EHSoxhNw5RYIWGna6R6C6roVZ91l/a4RIS4C6CIBjarXnSXXFXalM2JTRTOt10BbWB2yf1vU
 XtlWZjE4Ykm5VRPk2PtGrZ1PU4DzSEi32LDLa0XPDz8uYdykEW9EO9fWHPXN7hRxPrd/G39r
 oYOX+PXmk43eLCvPUHqHXs7cAliwY4TXsut9aS6t4erf2JbJY3WI6OLnO56JdU6x/89eyWh1
 ijVZ3K0AWHX3RXvQThmoFg6NtsDhL5z8iA2OzICJ1Gt1yRxaIqj9v5HJZA2YaMm5KpoyvstF
 6sJfMCJA/JuTDXb+mtCMcmh/dI6LBn71xiTOyeFYSQke8IyTQL+5dK5LBDk8zMDD3TruJJm8
 aGgzA7SXbEKWx9mUJTNcPuqwl7o5Sodlet+UlHmON5WfEmwooFmJzao1q08It0WKAWFzTyfj
 l7EDRAdrOjLgok07NiW2vzU89b3S7NzRxMIEXPa4LC6MTjh0lCimYIQAvyVeT39VX/v/Pnwb
 +ti0PyhYuYMm0xHstQgHu8zn74+/dbmu5RT0h9gQCfQd12uB75tfiuG0M1IuvEfz7NVo1LrC
 EeG+90cMrSVIsL1VlUWIVN9POiE0PgVnBjU7Og0fxqmtHMmouLfXBUAJQSIhQxcMKBxYdEsz
 uoWscIL7xCy10gxOdGcgyEIr2mBIxTsiUn8Wk321GMztjcW9w==
IronPort-HdrOrdr: A9a23:63K3UqgqZuIc6V7Vkb2n3/w+/XBQXtAji2hC6mlwRA09TySZ//
 rAoB19726QtN9xYgBGpTnuAsi9qB/nmKKdgrNhX4tKPjOHhILAFugLhuHfKlXbaknDH4Vmu5
 uIHZITNDSJNykYsfrH
X-IronPort-AV: E=Sophos;i="5.87,247,1631592000"; 
   d="scan'208";a="58594730"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Ian Jackson <iwj@xenproject.org>, Anthony PERARD
	<anthony.perard@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Nick
 Rosbrook" <rosbrookn@ainfosec.com>, Wei Liu <wl@xen.org>
Subject: [XEN PATCH for-4.16] golang/xenlight: regen generated code
Date: Fri, 19 Nov 2021 10:29:48 +0000
Message-ID: <20211119102948.156887-1-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.33.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Fixes: 7379f9e10a3b ("gnttab: allow setting max version per-domain")
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 tools/golang/xenlight/helpers.gen.go | 4 ++++
 tools/golang/xenlight/types.gen.go   | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go
index 6e1b05431056..b746ff108131 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -323,6 +323,7 @@ x.CpuTime = uint64(xc.cpu_time)
 x.VcpuMaxId = uint32(xc.vcpu_max_id)
 x.VcpuOnline = uint32(xc.vcpu_online)
 x.Cpupool = uint32(xc.cpupool)
+x.GpaddrBits = byte(xc.gpaddr_bits)
 x.DomainType = DomainType(xc.domain_type)
 
  return nil}
@@ -355,6 +356,7 @@ xc.cpu_time = C.uint64_t(x.CpuTime)
 xc.vcpu_max_id = C.uint32_t(x.VcpuMaxId)
 xc.vcpu_online = C.uint32_t(x.VcpuOnline)
 xc.cpupool = C.uint32_t(x.Cpupool)
+xc.gpaddr_bits = C.uint8_t(x.GpaddrBits)
 xc.domain_type = C.libxl_domain_type(x.DomainType)
 
  return nil
@@ -1012,6 +1014,7 @@ return fmt.Errorf("converting field VnumaNodes: %v", err) }
 }
 x.MaxGrantFrames = uint32(xc.max_grant_frames)
 x.MaxMaptrackFrames = uint32(xc.max_maptrack_frames)
+x.MaxGrantVersion = int(xc.max_grant_version)
 x.DeviceModelVersion = DeviceModelVersion(xc.device_model_version)
 if err := x.DeviceModelStubdomain.fromC(&xc.device_model_stubdomain);err != nil {
 return fmt.Errorf("converting field DeviceModelStubdomain: %v", err)
@@ -1341,6 +1344,7 @@ return fmt.Errorf("converting field VnumaNodes: %v", err)
 }
 xc.max_grant_frames = C.uint32_t(x.MaxGrantFrames)
 xc.max_maptrack_frames = C.uint32_t(x.MaxMaptrackFrames)
+xc.max_grant_version = C.int(x.MaxGrantVersion)
 xc.device_model_version = C.libxl_device_model_version(x.DeviceModelVersion)
 if err := x.DeviceModelStubdomain.toC(&xc.device_model_stubdomain); err != nil {
 return fmt.Errorf("converting field DeviceModelStubdomain: %v", err)
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
index a0acfaacc3a8..b1e84d525843 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -316,6 +316,7 @@ CpuTime uint64
 VcpuMaxId uint32
 VcpuOnline uint32
 Cpupool uint32
+GpaddrBits byte
 DomainType DomainType
 }
 
@@ -479,6 +480,7 @@ BlkdevStart string
 VnumaNodes []VnodeInfo
 MaxGrantFrames uint32
 MaxMaptrackFrames uint32
+MaxGrantVersion int
 DeviceModelVersion DeviceModelVersion
 DeviceModelStubdomain Defbool
 StubdomainMemkb uint64
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:38:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:38:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227754.394046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo1Ha-0007mA-Ea; Fri, 19 Nov 2021 10:38:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227754.394046; Fri, 19 Nov 2021 10:38:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo1Ha-0007m3-Bf; Fri, 19 Nov 2021 10:38:14 +0000
Received: by outflank-mailman (input) for mailman id 227754;
 Fri, 19 Nov 2021 10:38:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Hp3=QG=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mo1HY-0007lw-EZ
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:38:12 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c96c4c57-4924-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 11:38:09 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:37512)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mo1HQ-000Ryq-oe (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 19 Nov 2021 10:38:04 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 7569E1FB23;
 Fri, 19 Nov 2021 10:38:04 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c96c4c57-4924-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <5c0fcc40-9ab1-daf7-7097-1d4968576497@srcf.net>
Date: Fri, 19 Nov 2021 10:38:04 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [XEN PATCH for-4.16] golang/xenlight: regen generated code
Content-Language: en-GB
To: Anthony PERARD <anthony.perard@citrix.com>, xen-devel@lists.xenproject.org
Cc: Ian Jackson <iwj@xenproject.org>, George Dunlap
 <george.dunlap@citrix.com>, Nick Rosbrook <rosbrookn@ainfosec.com>,
 Wei Liu <wl@xen.org>
References: <20211119102948.156887-1-anthony.perard@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <20211119102948.156887-1-anthony.perard@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19/11/2021 10:29, Anthony PERARD wrote:
> Fixes: 7379f9e10a3b ("gnttab: allow setting max version per-domain")
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>

Fixes: 1e6706b0d123 ("xen/arm: Introduce gpaddr_bits field to struct
xen_domctl_getdomaininfo")

as well, by the looks of things.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 10:50:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 10:50:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227760.394058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo1TR-0001WG-Hr; Fri, 19 Nov 2021 10:50:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227760.394058; Fri, 19 Nov 2021 10:50:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo1TR-0001W9-Et; Fri, 19 Nov 2021 10:50:29 +0000
Received: by outflank-mailman (input) for mailman id 227760;
 Fri, 19 Nov 2021 10:50:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LEpL=QG=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mo1TQ-0001W3-ER
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 10:50:28 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80120285-4926-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 11:50:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80120285-4926-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637319026;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=CM6FfYNlxwTTU76xGDZ2LXSZ3vKB60rt2UQqmw754/M=;
  b=R++efPjOpv67KnXWqzNWk+Pv5G6C1DH+w1u0prVtmROVbhO0k1UX+dkm
   P1yU1kUamjPeT4yZqQxQJkYD9/lmOwgprBtg1XqpDHytH/8caR+HWjCBd
   nHVbb6NewvWbx1GNCJr4Knvzpvl+1AUHBTAAIEQohpI4Y7myOKfd84j3w
   k=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: vsg1KsVAVgKBEOra1I6k0+qzjN5YXwiLAYI/sNSZn1XkhzaAoRJZurnDxUl2jvElG9suxjZ9Ki
 F/u63SXXiUYivrQhVFebO0ICR4Y8RTyxpH+awbLAR1ksCZg0j6TubIKFvys1iV07Ic7oRIGJtq
 ai4QdutWSi3GU92u5/yg3Dly02IqftEvNLx5ByYb1njh9/ABo7q+McNA1NcJ2gpQrwgE7ihM4L
 AauupRQEIZ/Ke7MkzK562rKDhpSYf4dl0uGb5uTfVRgqMhOHpJfUeCve0nA5KJxgpYjCcBLKYE
 Ga+xsoJdXvPsWa2LwVlRQjJe
X-SBRS: 5.1
X-MesageID: 58595877
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:rDPbq6g/oZ+n4io//gjTz0YoX161lxcKZh0ujC45NGQN5FlHY01je
 htvD2CEaKzcZGajfd1zYYjno0gEvpTczIdqGwA/pHs2ES4b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cx0IDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1WsIGyTCEwG5bmiec0dzB9SRlsL45ZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHiOp8fvXdxiynUF/88TbjIQrnQ5M8e1zA17ixLNauOO
 ptEOWUwBPjGSzlOGgZNF7UxoPf2tF/bQTt4pFOJn6VitgA/yyQuieOwYbI5YOeiX8JOlFyfo
 WHA1234BB8dL9GUjzGC9xqEmevnjS79HoUIG9WQ9+FoqE2ewHQJDx8bXkf9puO24ma3XtkOd
 WQP4CEg664/6CSDXtT7GhG1vnOAlhodQMZLVf037hmXzajZ6BrfAXILJgOtc/R/6pVwH2Zzk
 AbUwZW5XlSDrYF5V1qG86qWqBWrHBM/PGwrQQYhFzMX8fr89dRbYg30cv5vF6u8j9vQED72w
 iyXoCVWu4j/nfLnxI3gowmZ3mvESozhC1dsu16JBj7NAhZRPdb9P+SVBU7nAeGsxWpzZn2Ip
 zA6lseX94ji5rndxXXWEI3h8FxEjstp0QEwY3YzQPHNFBz3ohZPmLy8BhkkeS+F1e5eJ1fUj
 Lf741852XOqFCLCgVVLS4ywEd826qPrCM7oUPvZBvIXPMMuLlHfrXEzOB7Mt4wIrKTKuftiU
 Xt8WZzyZUv29Iw9lGbmLwvj+eFDKt8CKZP7GsmgkkXPPUu2b3+JU7YVWGZinchihJ5oVD79q
 o4FX+PTkk03eLSnPkH/rN5CRXhXfCNTLc2n9KRqmhurf1MO9JcJUKSKn9vMuuVNwsxoqws/1
 i3nBxIDlgOg3SavxMfjQikLVY4DlK1X9RoTVRHA937xhhDPuK6js/UScYUZZ74i+LAxxPJ4V
 aBdKc6BHu5OWnLM/DFENcvxq4lrdRKKgwOSPnX6PGhjLsA4HwGZqMX5egbP9TUVCnblv8UJv
 LD9hBjQRoAORlo+AZ+OOu6v1V64oVMUhPl2AxnTOtBWdUi1qNpqJiX9g+UZOcYJLRmflDKW2
 xzPWUUTpPXXop9z+97M3PjWo4CsGup4P0xbA2iEsurmaXiEpjKumNYSXvyJcDbRUHLP1J+jP
 egFnevhNPAnnUpRt9YuGbhc0q9jtcDkoKVXz1o4ESyTPUirEL5pPlKPwdJL6v9W3rZctAa7B
 hCP991dNenbMc/pCgdMdg8sb+DF3vAIgDjCq/8yJRyitiNw+bOGV2RUPgWN13MBfOckbtt9z
 LdzotMS5iy+lgEuY4SPgS1j/miRKmANDvc8vZYADY630gcmxzmuu3AH5vMaNH1XV+hxDw==
IronPort-HdrOrdr: A9a23:vnc2CaALgxfu0gDlHems55DYdb4zR+YMi2TC1yhKJyC9Vvbo8/
 xG/c5rsCMc5wx9ZJhNo7y90ey7MBThHP1OkOss1NWZPDUO0VHAROoJ0WKh+UyCJ8SXzJ866U
 4KSclD4bPLYmRHsQ==
X-IronPort-AV: E=Sophos;i="5.87,247,1631592000"; 
   d="scan'208";a="58595877"
Date: Fri, 19 Nov 2021 10:50:12 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Andrew Cooper <amc96@srcf.net>
CC: <xen-devel@lists.xenproject.org>, Ian Jackson <iwj@xenproject.org>,
	"George Dunlap" <george.dunlap@citrix.com>, Nick Rosbrook
	<rosbrookn@ainfosec.com>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH for-4.16] golang/xenlight: regen generated code
Message-ID: <YZeBZOEjVLhNReBW@perard>
References: <20211119102948.156887-1-anthony.perard@citrix.com>
 <5c0fcc40-9ab1-daf7-7097-1d4968576497@srcf.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <5c0fcc40-9ab1-daf7-7097-1d4968576497@srcf.net>

On Fri, Nov 19, 2021 at 10:38:04AM +0000, Andrew Cooper wrote:
> On 19/11/2021 10:29, Anthony PERARD wrote:
> > Fixes: 7379f9e10a3b ("gnttab: allow setting max version per-domain")
> > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> 
> Fixes: 1e6706b0d123 ("xen/arm: Introduce gpaddr_bits field to struct
> xen_domctl_getdomaininfo")
> 
> as well, by the looks of things.

Indeed, I miss that as I didn't look at the diff. But there is one
commit between those two which does update the *.gen.go files...

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 11:16:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 11:16:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227766.394069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo1sU-0003uO-Js; Fri, 19 Nov 2021 11:16:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227766.394069; Fri, 19 Nov 2021 11:16:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo1sU-0003uH-Gt; Fri, 19 Nov 2021 11:16:22 +0000
Received: by outflank-mailman (input) for mailman id 227766;
 Fri, 19 Nov 2021 11:16:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mo1sT-0003uB-H8
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 11:16:21 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mo1sK-0005tV-1W; Fri, 19 Nov 2021 11:16:12 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=[192.168.20.70]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mo1sJ-00040B-PZ; Fri, 19 Nov 2021 11:16:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=rIuYMytVBtKcJ2FEaAYjI4zadEJzMO79nM7z4J3NZHM=; b=v21LSpglYrh8ly90alSXGCWu+1
	MjIE7kMyHF1ygaN/EluuevJOnnSku2y36m0d6GKAqfeT0oXCBGypvHX+/1SHOQs6fSXfspyiS1lM3
	s+Cmlx3qq/40OkheaRBEoy5mLgVYsxY9l5NRxzpLvPkmqSXTZKmX0PiS9qMp8igY23is=;
Message-ID: <c0347d42-1b10-5bd0-0dd0-ab7ed70ccd7e@xen.org>
Date: Fri, 19 Nov 2021 11:16:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
To: Oleksandr <olekstysh@gmail.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Dario Faggioli
 <dfaggioli@suse.com>, David Scott <dave@recoil.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 Josh Whitehead <josh.whitehead@dornerworks.com>,
 Juergen Gross <jgross@suse.com>, Jun Nakajima <jun.nakajima@intel.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>,
 Nick Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>,
 Quan Xu <quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Shriram Rajagopalan <rshriram@cs.ubc.ca>,
 Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, Tim Deegan <tim@xen.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <CAPD2p-nb7u7om7zv5-KvfZTsmGis9uGfBkvwjEXrym_+4PN-RQ@mail.gmail.com>
 <YZaOgGWfbDkIq4Lq@Air-de-Roger>
 <d4f3d50d-9875-f7bf-2c82-83f8fedb8cfc@gmail.com>
 <YZdZZsgXjZv/rh66@Air-de-Roger>
 <41554b67-552b-3e44-9e5e-f7e493ebf615@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <41554b67-552b-3e44-9e5e-f7e493ebf615@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Oleksandr,

On 19/11/2021 09:34, Oleksandr wrote:
> 
> On 19.11.21 09:59, Roger Pau Monné wrote:
> 
> Hi Roger, all
> 
> 
>> On Thu, Nov 18, 2021 at 09:04:30PM +0200, Oleksandr wrote:
>>> On 18.11.21 19:33, Roger Pau Monné wrote:
>>>
>>> Hi Roger
>>>
>>>
>>>> On Thu, Nov 18, 2021 at 06:11:07PM +0200, Oleksandr Tyshchenko wrote:
>>>>> On Wed, Nov 17, 2021 at 11:54 AM Roger Pau Monne 
>>>>> <roger.pau@citrix.com>
>>>>> wrote:
>>>>>
>>>>> Hi Roger, all
>>>>>
>>>>> [Sorry for the possible format issues]
>>>>>
>>>>> Document some of the relevant changes during the 4.16 release cycle,
>>>>>> likely more entries are missing.
>>>>>>
>>>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>>>>> ---
>>>>>>    CHANGELOG.md | 11 +++++++++++
>>>>>>    1 file changed, 11 insertions(+)
>>>>>>
>>>>>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>>>>>> index ad1a8c2bc2..8b0bdd9cf0 100644
>>>>>> --- a/CHANGELOG.md
>>>>>> +++ b/CHANGELOG.md
>>>>>> @@ -21,6 +21,17 @@ The format is based on [Keep a Changelog](
>>>>>> https://keepachangelog.com/en/1.0.0/)
>>>>>>     - qemu-traditional based device models (both, qemu-traditional 
>>>>>> and
>>>>>> ioemu-stubdom) will
>>>>>>       no longer be built per default. In order to be able to use 
>>>>>> those,
>>>>>> configure needs to
>>>>>>       be called with "--enable-qemu-traditional" as parameter.
>>>>>> + - Fixes for credit2 scheduler stability in corner case conditions.
>>>>>> + - Ongoing improvements in the hypervisor build system.
>>>>>> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
>>>>>> + - 32bit PV guests only supported in shim mode.
>>>>>> + - Improved PVH dom0 debug key handling.
>>>>>> + - Fix booting on some Intel systems without a PIT (i8254).
>>>>>>
>>>>> I would add "Various fixes for OP-TEE mediator (Arm)" here and ...
>>>>>
>>>>>
>>>>>
>>>>>> +
>>>>>> +### Added
>>>>>> + - 32bit Arm builds to the automated tests.
>>>>>> + - New x86 pagetable APIs.
>>>>>> + - Arm vPMU support.
>>>>>>
>>>>> "Extended regions support, device tree only (Arm)" here.
>>>>>
>>>>> ...
>>>>> The extended regions are ranges of unused address space exposed to 
>>>>> domains
>>>>> as
>>>>> "safe to use" for special memory mappings.
>>>> I've worded this as:
>>>>
>>>> "Report unpopulated memory regions safe to use for foreign mappings,
>>>> Arm and device tree only."
>>>>
>>>> As "extended regions" was IMO too vague. Let me know if that's OK.
>>> I think, it is OK. Nit: maybe replace "foreign" with "foreign/grant"? I
>>> would be OK either way.
>> Maybe, I would consider grants as foreign mappings also, ie: the
>> memory is foreign to the domain, but I can see this being confusing as
>> we have a specific kind of mappings that are named foreign.
>>
>> Does replacing foreign with external seem better?
> 
> Fine with me, thank you.
> 
> 
> BTW, I noticed that "Support of generic DT IOMMU bindings for SMMU V2 
> (Arm)" is not mentioned. Looks like the support has reached upstream 
> during the 4.16 release cycle, so worth adding here.

You are right.

> 
> @Julien, @Stefano?

I agree we should mention it.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 11:58:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 11:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227804.394095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo2X2-0008FG-2h; Fri, 19 Nov 2021 11:58:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227804.394095; Fri, 19 Nov 2021 11:58:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo2X1-0008F9-W0; Fri, 19 Nov 2021 11:58:15 +0000
Received: by outflank-mailman (input) for mailman id 227804;
 Fri, 19 Nov 2021 11:58:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo2Wz-0008F0-JB
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 11:58:13 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f7734d6b-492f-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 12:58:10 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2056.outbound.protection.outlook.com [104.47.13.56]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-23-qPyhFUTfN9mAwBYlmQJL9Q-1; Fri, 19 Nov 2021 12:58:09 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3296.eurprd04.prod.outlook.com (2603:10a6:802:7::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 11:58:06 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 11:58:06 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P189CA0015.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:31f::11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Fri, 19 Nov 2021 11:58:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7734d6b-492f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637323090;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OnxwPg/++goKGzMmDDWyY9/y7Wpa8VYYcVLQy16C55g=;
	b=GP8hqNLzyuXzcYrN7VHj6bOU/B1y6SPt6CWxnsvXSei7Bj3mnhAPdf1dsjLT3L1+hxQtyH
	8O6owPcTGDk3JO+lYfseckmMvTK0ho3Tr7lCBwcN0SuctesZLxQBy/+qgqCNr+fty81NWt
	wZ049bq/Hd3OJ5iU7EyjL/8o4grIido=
X-MC-Unique: qPyhFUTfN9mAwBYlmQJL9Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FnXMVZWrtufPfNug0g16+bV5/CKB27VYfwP3w6KenuXWPj4pflNQK2Uss0IPNG7AhTVtpT6uexf+/zMB92agTipZyT6qlZSLYZ7AJW0rFodL5t3kbXM6bXTBe6qBJYqWgiPG5gufpGXHvMxgZIf7wmL//NHp9WRPKxo8FDU4qX0aQnguFb6RV+kB3A0cDWkYdEaOLEfbaf0u7qav3TT582sOMk9oO0+4CR1QYku4akxJ8Dg2JFPFT5vy0yq8lWB7LxfyqMg8WCDE3v26JmrGGAD/LyRGrMMPq4D2xbwIkZRj5y4Nc5KQCKMbI0d7Kdspyr1iawewoa6MUhV2mWt1kQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OnxwPg/++goKGzMmDDWyY9/y7Wpa8VYYcVLQy16C55g=;
 b=BRNGpmO8Bs7esjXpWy59Mx50VHuz6/RtS//6e32BcbQ0Fchiww+xf70+0M+PrFXj/M0+bYuHrWnlZdwJ+BYr4PP031uA9r4cua0tSdDJF89B4+bp9g+8/kIqImKFXl/tNFD/UH+bu5xzhkgf6y58k5lRv2rm8Lu0Fy/3t5vdh2Q1BPham6cZPbuousZL2dR8nMaBf2DNb0s2K8PRQFu8nuS1P4IfpazvD749DltgGw9Jb894yXWXssHUQx7G27o3e6wa6OKErX7Ha/Nr2Y3BMsibBNpR0Dbo1txXEyCh3Ve6Nrb0I+fnyt2f9vWNH0iVfcx1nuVsfd5/FuUewE3d/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
Date: Fri, 19 Nov 2021 12:58:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-6-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P189CA0015.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:20b:31f::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 55659dff-e5a1-4ad6-cf7d-08d9ab53d8ed
X-MS-TrafficTypeDiagnostic: VI1PR04MB3296:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB32967672C91160D9923944F0B39C9@VI1PR04MB3296.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	EmpCDg+OdKb18Qly9DzRroj/naSQzMtDwimm2rJytCyqj+qnz7HQNAqEwRSwJjjaOor2Exm0aLH/0yAdA7MDoh7aKE2cGWIdJ0zzv2wPhhmj1R4YppzghsLsjdu8kxxtOzvoUcbLl4MW/CUQ3ZuZmUxBBRkkDGCBYebMfGu8gJC1Apb3JYxbGb6GdTHRuZaCnvook6jm+gRmf5ROwKPcteC9Q4xD4s6+xILSUJO4ZXUN69RdDBF1y3/ZzqC9r8PV3i+eQ/zMixzirgZDIIOXNy+/Jpf1k71EEPZOzh6PgjsruWbdpuRDR9xdDwgTkm0o9QrEmz74BMvUFHyKZlrIaPQnJ9S3WmrW+nQ6O3gWoKq/PoAYX3GSZ7cmaxFIZ1d3Lfm51wz6ur56LnuDvrL47r1hEujGuc/K/qn8nbvZAOPva0GFE9ntWSom32Y7Ah2xi7Vf6qhei5xdCf7MVeZbxFA+Y5GKEk4KWvwAECxXYHhyPOPtnDwbbMTyLlxo0wqpUzStbA5Z5nnXBRX/gu2HEId3KIHSiO7KhLedd5YHgfoSRd5h51nlKacgCB9uVgr6ZpjhdbJgtr1rbEAfBohQ5gi2xKrWr9ts+4Ca1zlQUHlpeQ22srr3QRQvtBAwP8wT2PwJgGMZrkP+2+32k5u6Lj6l5NbgmrC4JQ8MOzsVBrdKRPNKUC9bztoqfHEKH4NcFSn36GyE0KuURZxwSk1AI/fo99xM4l5BChlCa4rz0VkBGXlYjS4Qq6PBMK1a2iw4
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(956004)(5660300002)(6916009)(66946007)(316002)(4326008)(16576012)(26005)(6486002)(8936002)(186003)(36756003)(508600001)(31696002)(38100700002)(66476007)(66556008)(83380400001)(86362001)(31686004)(8676002)(53546011)(7416002)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WG9IcHhSRmsxUXRQRnhUWkJkYkFWWEJiV2QzamNFVkRCQWYxaXNVNjNHNTFP?=
 =?utf-8?B?d3FKWjdUM2QvdlNUcjZKRWM1RmZOTEc1UGRwWW1lT2NKeUhvOUtUWjFHczAw?=
 =?utf-8?B?d0ZrUlBNL3lnYk9Db3R0aFI5QUNseGREbFJvdnZUVG1MdUYzY1RpSnZ0NCtv?=
 =?utf-8?B?OS8vaEZKSFFScDJQY0ZMZU9QbzlsQndqaSt1M1VIYXVZbmNsMTNmVXpLdm8z?=
 =?utf-8?B?c1YvLzl4VnBOdDl3QVNtb09aS0MyWWVUYkppUFB1QWF1RnBuMXkyTWh3L3dJ?=
 =?utf-8?B?K0N1eVB0aDlYaVNFbmduSktROEcvN3JuQzhmNnlQTzJSbVNnaThrdU1TMDMw?=
 =?utf-8?B?eUVlU044QWxYRXdsb1dFa0poMnZydSsrVHJpbFU0a0NJK0lhbDJlNmVjMUtS?=
 =?utf-8?B?NmNIcWhYRk1nQzFiMFRqU0wyQVMxK01sRS8zVS9NbTFNU1hMS0tjOGhacllk?=
 =?utf-8?B?bkZGcVAvRnhrcXRVeXZ1Rmg0TUg4Q1BrNXlrKy9YWXhzcDQzWHFvWld4RWdI?=
 =?utf-8?B?clJ2RWFkbXpOdnBKelUyWUFXSTRZKyswU0RralhsTXRtSTVzR0NOMUs3dzFn?=
 =?utf-8?B?SjliMGYyUW5TQTFSdlA1SEpJU1dpOHBDeVlLbHhEQ1hJdFZKVjdibWdCbzhP?=
 =?utf-8?B?dVo2cURpQlVnamU2dmt2WlBoMjhrVnlnSDlscjdieFRtRWdyTjMwUDVsaU9o?=
 =?utf-8?B?cHhIU0lIRlVhbkYxUjZsM3VlbFFpTXNmd3ArcnJXTEt5KzZYRFBES2JFL3dC?=
 =?utf-8?B?SC9iaWh5UzBVbkx5L255WU9nRnVQTC9XaGFLeFh2Ry9EYXozMXU5TTdFZk5T?=
 =?utf-8?B?QXQ3djBoQ1ZDa0hDU2lFNEgrbzVicnBJaE5wODNFeFhTN0ZxR1BpR3dVZVRI?=
 =?utf-8?B?dE5UYWR0bGkyem95WlJsY013WUM0cGF4MkEzQWl5QW8yZnNlSXVhSHFDeTF0?=
 =?utf-8?B?VjIrRmp0bFlXaW5QbWJRazdkTjhuRWFrdnY5aG5UYjhzclZ6eWtuWmFPSnFS?=
 =?utf-8?B?M1E3bWJDd245Qnc1MDBoVlUzWnY2dGIyVzVoUjJMd05LdFNNazBYdHNDY2Qw?=
 =?utf-8?B?RWg5WkZCSE9VWEtXZDZ1UTNiTnF5NGZiOEFNOTBFRlJDbTFUYjNPNmVKN2Zh?=
 =?utf-8?B?V2JsaHQwS2s4dlNjdG9DUnByQ1MrNU5qcjFjUHdHeEw5a0RNVmpBS295TnB1?=
 =?utf-8?B?ZTVmMFAwTXpnSzU1U2RDdVBja2o4dTBOV0c0ajl4UVc4RTdQR3JnbHRqQnd3?=
 =?utf-8?B?d3N2bXB1d2ExWEN0cVllYkZIdjlscGFpSzB0QmVVWlIyOGs0aG9ndGtxOHJ3?=
 =?utf-8?B?Z1k3U1NOWXRJWWVBNUVZNjVPdStJNmViOXp3UWlmZU1iWXR1MlZxSmVvWThh?=
 =?utf-8?B?ekkvTllZTnlyelBuNnRLaStTanU2SzZ4bG82VWUyN3lYOUhsUHg2UDNTZDF1?=
 =?utf-8?B?V1B0MFdHTU14ODJQc3NQejVrcnpCK0QzNytLSk1uZC9UWHBEZ0RLb0RzV1VU?=
 =?utf-8?B?VGd0QkhnTkdGZ2JLOHdyTG9jMm56bVJYaHB0MWQwZXA3dEJRZys4UlZselhY?=
 =?utf-8?B?T3RDWm5Sdno0M3c4UFFncjVzY1BFSlNkQnRxTmhXM0lQY0t4bFJSdm96WnE0?=
 =?utf-8?B?cVlINTVpZkdZMFNVNmVJa3hOR2JkQ0ZJNDU3SEQ3YXBod0FYY0loUlFXRy90?=
 =?utf-8?B?L3V1dTdOc2FkNGd3SjNNb0lSTDFVZVZyQUxlWHVDLzlDRG85MTlwb3FTKzVS?=
 =?utf-8?B?alRsWUk3R3lVWFg1S3pLdEFudThGRHNYQ2NleUVMYTczUHNxVkxzTUkwQlBa?=
 =?utf-8?B?a2Q4UThwYVdDcllvaCsyL0IxK1NrNVhjMDFCdzJiRytmWng5R2wxdEl5cXRi?=
 =?utf-8?B?OEZpRjNPZ20xZnZMUGZpYStLVUpKY0k0SzFxOTVFcDVtSXBXNy94L3JqUEZl?=
 =?utf-8?B?bUdrSWV3dE9zbm5RODZyWTI4dFpXMHZHTjB6RnlpRWdNYXpOejMvVE5mSjAw?=
 =?utf-8?B?bXMyeVBZQ05BWEliUmVnYWY3QlVBUDZHSVBIdTlYcUVMQXgxTk10ZDRTMVly?=
 =?utf-8?B?K3MrS1FCRTFjSnJycmpwdjZHU3hxUW8wby9USTNtbk5EMVIyMldkTU1rR3pj?=
 =?utf-8?B?QWFka3ZKMVZGQ0lHZUZ6djBiSWhrckFiTG9LNkRKbFRQeExoaVlCNW5YR1NB?=
 =?utf-8?Q?IHxD8zIaemzkC6c5dfz4jCg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 55659dff-e5a1-4ad6-cf7d-08d9ab53d8ed
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 11:58:06.1074
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: E1pkAPe7GZzDeu05zmdaqU50FLjKkgdpQVho0UWQSQ/EtHOpoZBNZ2TKA4vdyotS55ORLm1d1Th9pKYWrbpV7w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3296

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Add relevant vpci register handlers when assigning PCI device to a domain
> and remove those when de-assigning. This allows having different
> handlers for different domains, e.g. hwdom and other guests.
> 
> Emulate guest BAR register values: this allows creating a guest view
> of the registers and emulates size and properties probe as it is done
> during PCI device enumeration by the guest.
> 
> ROM BAR is only handled for the hardware domain and for guest domains
> there is a stub: at the moment PCI expansion ROM is x86 only, so it
> might not be used by other architectures without emulating x86. Other
> use-cases may include using that expansion ROM before Xen boots, hence
> no emulation is needed in Xen itself. Or when a guest wants to use the
> ROM code which seems to be rare.

At least in the initial days of EFI there was the concept of EFI byte
code, for ROM code to be compiled to such that it would be arch-
independent. While I don't mean this to be an argument against leaving
out ROM BAR handling for now, this may want mentioning here to avoid
giving the impression that it's only x86 which might be affected by
this deliberate omission.

> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -408,6 +408,48 @@ static void bar_write(const struct pci_dev *pdev, unsigned int reg,
>      pci_conf_write32(pdev->sbdf, reg, val);
>  }
>  
> +static void guest_bar_write(const struct pci_dev *pdev, unsigned int reg,
> +                            uint32_t val, void *data)
> +{
> +    struct vpci_bar *bar = data;
> +    bool hi = false;
> +
> +    if ( bar->type == VPCI_BAR_MEM64_HI )
> +    {
> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
> +        bar--;
> +        hi = true;
> +    }
> +    else
> +    {
> +        val &= PCI_BASE_ADDRESS_MEM_MASK;
> +        val |= bar->type == VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_TYPE_32
> +                                           : PCI_BASE_ADDRESS_MEM_TYPE_64;
> +        val |= bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
> +    }
> +
> +    bar->guest_addr &= ~(0xffffffffull << (hi ? 32 : 0));
> +    bar->guest_addr |= (uint64_t)val << (hi ? 32 : 0);
> +
> +    bar->guest_addr &= ~(bar->size - 1) | ~PCI_BASE_ADDRESS_MEM_MASK;
> +}
> +
> +static uint32_t guest_bar_read(const struct pci_dev *pdev, unsigned int reg,
> +                               void *data)
> +{
> +    const struct vpci_bar *bar = data;
> +    bool hi = false;
> +
> +    if ( bar->type == VPCI_BAR_MEM64_HI )
> +    {
> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
> +        bar--;
> +        hi = true;
> +    }
> +
> +    return bar->guest_addr >> (hi ? 32 : 0);

I'm afraid "guest_addr" then isn't the best name; maybe "guest_val"?
This would make more obvious that there is a meaningful difference
from "addr" besides the guest vs host aspect.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:06:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:06:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227810.394107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo2eb-0001K7-33; Fri, 19 Nov 2021 12:06:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227810.394107; Fri, 19 Nov 2021 12:06:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo2ea-0001K0-VI; Fri, 19 Nov 2021 12:06:04 +0000
Received: by outflank-mailman (input) for mailman id 227810;
 Fri, 19 Nov 2021 12:06:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo2ea-0001Ju-1O
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:06:04 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1097b20e-4931-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 13:06:03 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2056.outbound.protection.outlook.com [104.47.14.56]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-8-aHSY4e5rOFmthHmO4VdokA-1; Fri, 19 Nov 2021 13:06:00 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5469.eurprd04.prod.outlook.com (2603:10a6:803:cf::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Fri, 19 Nov
 2021 12:05:59 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:05:59 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR07CA0039.eurprd07.prod.outlook.com (2603:10a6:20b:459::8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.11 via Frontend Transport; Fri, 19 Nov 2021 12:05:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1097b20e-4931-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637323562;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=vWZb/CzzzkP7Q1+Ep5+MNMZa4AVpfxWfgN2cUSP7rUk=;
	b=SppVQCRq/TjTs7XSwN7d/csmTFI02uoV0nw+/UZSYzEFAjjrockv/jZwjv/VCvciGQ1CyM
	EYOxfXIvpEfSuQlkO/ElGnF5Y5Eq9U7vRWGSy8rja9UGEPi2GvyAIIWxzmVhkGeyAFWKP1
	GozaJk6AvZ9oFx1jD0TXksSY2B24028=
X-MC-Unique: aHSY4e5rOFmthHmO4VdokA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=egc8htBk53hkEZE7ITJe34F8QT9j/lt0jPiIwVmoiSplibjM2mSd/HDa3Xk1WwrAjfbS+jwQh2vbyQowyfY1gH+fuwW3wt0KuKAQjC0hXRRVLxb7DhnPERjaZ43I+3/aaW1c31s+aT8RlwQt9jG3uj7r4aqczIGo5vX8YRREmrZWAAWHorB2YVgjFuADVpc25x+MMcblmiEfbJpOhO7kulzC85L2KN37SW3Te0eswB21NM/jSxcfiBmNI7/DJM4FC7QeP4CEec2TaJ7ZL1c9fNEbXD2eyu89a0STAfbUm/1MBN1JOEzj+5scXc/AxRoXXyPUg2WYGxmvoey5uoV2+A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vWZb/CzzzkP7Q1+Ep5+MNMZa4AVpfxWfgN2cUSP7rUk=;
 b=bZea85eqzAc1Z+5o2J7ejbQLFsFHtOUafKDgj4XQp1NuTM7VW3yQZpV7e0XS0WJlDRoml4gd21Lkw/ZyrmP2koZ8+/YIsduwtPgTC8eaNqLU81rqIituj29+Rk33LO9WNWuxaja/c1rEYJvOpB93ESHOiA+kD6AwT2WhhK1DQgpC16XFMZ40e9Q3usy8XZdgySv6/uLkLson32iz7G6llK2JFnxLWpT/oUwH+ny/3KgkJth7ago4PptLQpeDylgiGUWi921oIzKJkessUL15wVFZhDfeqG5uwtcLk3reOgDFkEat/1ZNYgPvUTEI/8oJl1NpDEw/LTYSnbmyPJ0GEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9aec23b3-2269-39fe-9fc0-fb8cf7f9de44@suse.com>
Date: Fri, 19 Nov 2021 13:05:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-7-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR07CA0039.eurprd07.prod.outlook.com
 (2603:10a6:20b:459::8) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 77c9b394-ff94-4bed-8ba2-08d9ab54f31d
X-MS-TrafficTypeDiagnostic: VI1PR04MB5469:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5469A28C0AB58719391C5625B39C9@VI1PR04MB5469.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	0TR8+gAOO+T80GMtAQx7hroGi+jMGgjbn/HlnSYa1nQDbkfDguNmdC/Vv5681qQm15+L1dVarz/XjnSmU/qHfrgOviqTzV71dLNzzrodJ8HkRTk4LPUGmEn+KNs7AQilSYA2HmGm8rKC2bU+9dt1iCYIlAjVfqUbmVoHsFBI9aaM+bCUISJkoqceB0naSq6MkKmE0QowldREY6JdpMg6s9HAdSjy/3BAaoSRVuZP6g6+ND4kNtQjA80AD21z72z+qQDpre26QGk5UmGa5zz/DHNH8fZQfVqt1Dxkw+GgsmAVRDyevcv+kOH4vL4rC+vLFL50MP5Pfs51YATCrTsk6pEnMcY84Ep5yaMFQw+Eaum/ASE4KwCJ1GYBWALcGcpIr5eo1hLBwDREs8Mcd+dWfzOveiyPL/3b/xPRa6gTukqQv/HkdCnohsRpXTIrVoEo2jwtp1nENjBOlg8fbvBGaQ7gsqxWKO+t12LiPbn9zgDJxhHSpRVaExX53NFLSrPstu7H6xCn3Xd88VO8KEDVWCVKIBGDLmpHBcR2su0kwh8e4OVQoRSBUDLMzMVqiQxIVWsJn4iQ849vgrRsCpR58FTqWsJ6lkG65f0UbIW0lApLZfGyymTu6BEw6ASwe74Q6poGUvPgnb77IfeHIvsUjEvqBld39wTN7epJT59pkbgJc1w6ilqFqWHx3u++LqdyxczaVaenJZAEoKXJ9Yd1yW6+wGNLMUpWiRPEEhqlLVg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(4744005)(6666004)(36756003)(66946007)(31686004)(66476007)(5660300002)(66556008)(31696002)(26005)(7416002)(2616005)(956004)(8676002)(53546011)(6916009)(16576012)(86362001)(316002)(6486002)(2906002)(508600001)(186003)(4326008)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M3NWdFBvYlQwVUNucjIxdUV4WjlvcXpKY3hvbkFLdlhPcHlzeS91bWVlUGNJ?=
 =?utf-8?B?WTVvS3N0ZmhlbHFnZzRtZ3MxcHdvVzF3QTh6NEh6N005YzZsdHh0c2VtajBF?=
 =?utf-8?B?bDMzcFp6MGxrcUJiOTQ3S2dncXE3TEdBd2tQaERNUlRReUxsT1hkNlN2Q1lh?=
 =?utf-8?B?d1k4cC94RVY5R0llWTdWRUpyQitrOGZSTWlpVTEwMEZLNDhCeDZ1Vkp5emxx?=
 =?utf-8?B?UFhjOTFuMXhYdVE4QlZNREl1cUVFWDQyY0NMZ0xobktlUGFKSWtZcVJGTTZw?=
 =?utf-8?B?TGRsb2VQZWxKSVcxRHU0NTZiem9ZOXdiVUVvUE9lN25oQ1NYbWNwUVRoQ2ZW?=
 =?utf-8?B?RjFGOFU3R2pLZjZmY0tLMldSbWl5MXNaWVorQ3JHYm9ycTNRUWpLRDh0UzUy?=
 =?utf-8?B?L0cvSkE0dG94bFN4M3ZiMjQzWFdQMDY0cU44N28yZG13NjVSTUp6QVZ4RjVM?=
 =?utf-8?B?MytyaUxYSWpkL1p2MlRhanJ5MnU3TUtjVkZEczhzbnRxVWxNc2ptVHBuK0tS?=
 =?utf-8?B?NjY2ems3NFh2ZzhVWkZNc3QyYTF6WE9wQ0VUeDMwdGtJNGJ0MHB4cWRDVExU?=
 =?utf-8?B?T0Nza05rdXZpbHhsVk1mMlIvSnBvTVhrRk1mb1h6VUtIRWlCc1QzeVI4ZStT?=
 =?utf-8?B?bU8vZW1zL1NPeTJjZGxUSVdzZTlCZXNPZ0o4TjFCVnZaSjVnRGpMMVVxTWVT?=
 =?utf-8?B?L3R4L1FYdE9RTGRFREhrMW1nVEpyNWVRQ0RNU2UvMEtkUHFrUnp6T1pjdTdU?=
 =?utf-8?B?ZktsSkdTeC9TZytyOXBpZTVSSWlLVk1aZDhxVkNDZVNGQWd3dStocEF2OGQ0?=
 =?utf-8?B?WEFRUVlnd0tKM3hKcnp3UjB3Mi9jVWRFUjhIa0toZWYxOExlVmNBeWQwYnJu?=
 =?utf-8?B?MmlJZE1WL1pBTDFreHluRFdnVjFFOS9DVTFldkF4TW1PZGhLcXQ1eWlwSkE1?=
 =?utf-8?B?OWpHTCs2bEYrVWxueVVId1VWVXVuc0hDWFIvSklZb1RxUmRzY2JnNmcrSWNq?=
 =?utf-8?B?dnNGaTl1WFB1a0kxRmFQRE9GRjNPUTNxa2hZclAvV2pBTVgvSFNHb1RyczNx?=
 =?utf-8?B?Ym5yc1RIWTZxS3l6VVE4Z0VCOHIrSVoyWWlOeFZPZGc2K2FsWHNJN0FHUzlr?=
 =?utf-8?B?TFFBdk9KLzF4Vi9GZDA3czlpbWxkbE0zckk2a0FLQ3F3Q3VId25TVHdTSDdQ?=
 =?utf-8?B?anRPWmtOeFBBOXViWUpWNVFqS2h5RmFiamRJWElFYzRCUWU4M0EyWGw2ZVo5?=
 =?utf-8?B?OHZlaGdjdTFZcU1mYyt1VExxbG90TUxFbi8zNzdXQlVLTkhackd3ZzMwU0FZ?=
 =?utf-8?B?YjBZN05kek11NWdyTzFwN1A1UnpDa292aU9KREIrcVBpRnJZUEp5cFVEbGxv?=
 =?utf-8?B?ZU1kc3hSMmlvUnNUMzgyR3Y2S2hDSG1kZXZNalFzdkJhaUdwcEVlYUpIZlY1?=
 =?utf-8?B?THQ5WmNJR0lZYUpodmtXd0Z3ajFkUS93M3crWWxJNlM5cjMrU0Z3WGhkNEVs?=
 =?utf-8?B?QzB0Ni9leUNpOFM2cHFKVkhmeVRsVy9YdVg5VUd1RGozekdIbnk2UU1NSDZE?=
 =?utf-8?B?WlFNbUlQWmVoTjJySHNKaURUZFZQa0luOWVLVWViNmNVNEZ5elVxUjBBb0NL?=
 =?utf-8?B?WGR0Yzh3ZHAvZVA1bjhmUFI4YzkzMzIxTkl3RkpVOXVRZHpDTmRmZHN0dHRn?=
 =?utf-8?B?c2REUlk3MmxZV3dHczkzUXZGcHZiRHFVSGFVeDJDc2ZGTjNkNVNncHcvS3Jj?=
 =?utf-8?B?U29POUxUMEJmbUhlRGY1Y3dGdmhEWHlDeSsyYmdDdGVKUnZXeUtJRUFXWTBx?=
 =?utf-8?B?R2JBZ1NTT0hFbHJ2Q256SnFubUxEbzdSOXJoVGdnK2R4RWc4SVBpQk1NZktW?=
 =?utf-8?B?d2F2WWJCTkJwT2ZRNTJRU3FyYXB5cVBwNlRuNzNzT3dVSUlza3N6LzI3STNv?=
 =?utf-8?B?c21oQ0lpMksyaG13cHRyMWo1QmcyOFcxSHNKZmxReHBIa1dNRDhDRnpRQzlZ?=
 =?utf-8?B?cXdXeisxNC9ISmZwdFVidGtPVFdNbzZRcGlxTEp3WitwdXJ2emhCWlppWnA3?=
 =?utf-8?B?dSs4THZHcnVBcWZacU5nMWxZK1ZKNDh4Y3BrRHY3eCtzVDVBcVBoQVUvRVZO?=
 =?utf-8?B?VithUGJob0lNSnhnenNMQW9ZekxJd0JiQXBObTczQXF6QVVORTBlcmtHR3lV?=
 =?utf-8?Q?/LWINQIOznKS7VM0rU3ZWKo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 77c9b394-ff94-4bed-8ba2-08d9ab54f31d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 12:05:59.5287
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qRY83cZm4qQ7jnsUIr327QF/HxjWQDqbPiaqoBxkGCbwPyrNKEHYkInudTqSlmB17QFi009LSy4RiyqknKJVtw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5469

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Instead of handling a single range set, that contains all the memory
> regions of all the BARs and ROM, have them per BAR.

Iirc Roger did indicate agreement with the spitting. May I nevertheless
ask that for posterity you say a word here about the overhead, to make
clear this was a conscious decision?

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:10:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:10:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227815.394118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo2ij-0002hu-KQ; Fri, 19 Nov 2021 12:10:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227815.394118; Fri, 19 Nov 2021 12:10:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo2ij-0002hn-HI; Fri, 19 Nov 2021 12:10:21 +0000
Received: by outflank-mailman (input) for mailman id 227815;
 Fri, 19 Nov 2021 12:10:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo2ii-0002hh-8x
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:10:20 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a876553b-4931-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 13:10:18 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJBY9on005709;
 Fri, 19 Nov 2021 12:10:15 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ceb5k84fd-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 12:10:14 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB3873.eurprd03.prod.outlook.com (2603:10a6:208:6f::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 19 Nov
 2021 12:10:10 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:10:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a876553b-4931-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=McNE8Yons9Ytetjq2LKJR6xbScTV+HIoe7ZnaeS+8vQqiV/ueRgIcL3CaYNrKbcXUJeKlPJDU+KIlt14Hv00O/pVxcrnFGj0DGkLvkx9yu02qeJBaCZJnDqJoCPhYqIWDbFB/QllyLTeC20vBSNzvmmop/tX8/CHOAP/lRHjfkQrYPa4eowFJe2O5yMrxVob/8AgfwArwkwztOAzmuQ6DDT7t/ut3ir/2bRePe3vPu4dcC3p9JUTadXgieBJA2TJg+t5gOlLuLcwKB5KRz+NbbvqX40wdlimyWAAYXJhyBNCxZEyOfPH/UgohpPknHc587MYnSS8ozv+ZzwuL97/Fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5hRIIumfeYPKm92XBvOHtdIxTumG5d9pWi8llI0al7M=;
 b=bYU9bTQKQXHftqvhY4Vb7GviWIZfciCRUbTvcCbVb/bgku83Dzri2iu1jwnL7A9EST9UN1CMLVAruwAQGDGEcYmXXZR8ZsCi1RpMkuw6GZKyw5+5b482wpp1irYiFO4t1sDoyzedBA78v/sQUIOXrTndds5rt9maXH9ROZJdu5h1MGIfYxWd9TaTHcuiqiOANkT26pzB709FihochEH5W6J84HW1tVWqKH2lxpcamJvMA3PhaVsppWWKq6sJGcVzjenFUNxI6mYoeE3aPXXlITHmMq2EnRZMLPU+y72/dQNFmWl5X/xjPTnoMIL/8JLLbAQkvk4bBy3Ey2t3rehGxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5hRIIumfeYPKm92XBvOHtdIxTumG5d9pWi8llI0al7M=;
 b=b/i6Rkbq8PPxL5+bNgDOc11lGkZycH5UqJnOhP2/B8HyjJ9EocpynKIt5/UpU566qTZouW5lKpEyR9kvYRtQ59rQdS7Lx9CkGhOO2G07UL2qGA7eNvlE4Gw08UGNI5APb1HYrWLmVpS7+/yijxs8sEqb6DA4kiKpq9M++Q0CMaq1QrpdcAgu+fba4oKfzk3s77Cz1qxbiSSI9JB0T5niafZu8QFq4IFyJHt0uGSSryZs3htUG0LIMDdGyaejhUdI2tiPDCugjEn+MJOXiH/QbUEIvh8j/uY06Iu2TyhK7BY2oXdZYNmuYxXnZJyPAz6X6oXtIcxgIXxtF4SVLRirNA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Topic: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Index: AQHX0hJK3jTao+VT7Ua3mM5UrGfltKwK1UUAgAADYYA=
Date: Fri, 19 Nov 2021 12:10:10 +0000
Message-ID: <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
In-Reply-To: <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ad45b117-2fa4-454c-5e86-08d9ab5588c0
x-ms-traffictypediagnostic: AM0PR03MB3873:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB38734F50858B8444E9EE444BE79C9@AM0PR03MB3873.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 EZjkW0liyrJuRJ2ExU2BkLh3FAc1oZlZ0zSpq7a8pV5RAsRfYe+mUKihdrHC6BXpDa7MF6d57aDvr4tLnw86sYAxDj9E84rMv4s4b16inom1hh+43XTliLfCp3PdSLop3itAXfOlO0t3hqZA3s47ebt+mBpeDT8OgM2lp9hggMBjH3GN0hAsk3LKFXPbXunD3de/K8QOW2f8yzzjqPZ+RcRSFs/wxQsyE27GpGvkfIHP610sx7XRZUd3wDFyZ0uqP3jJ/F78r1tB6y1RZguP/IxKVuAtsuOdpH/OlACmskCPvRfWDpvj0MAg2X4eZAHhD5xIW7l0FzQmMd+3ITPGWDMs/4Og78AnE6n2IkDVqTyVoEeg4uoMPxtphzE0hSu7B/khNaKBkaTflVl3xhcAlRMowjd7nTvevd0RBD14+ef9uo1+b5jm8/BDDvt4/eUamDOMPF15gmnPAZreIDSq+8c5ZWKEB7N6fOZ14uD1JqUHJy6LakxRzJDwGdHqtxAPyqw8PzewMOyu7QHQGPlXfI5nhjrGRdKf7qjpCo3ugX3TDgN1dBQiJ5Wtq6ElVUbJltVVcgZ9lXRnFo4NYteog6PFT2n54P558BWeU+ReOKoTKoIC+p0cylHDybfO/4cVsBrGc85DGvrbooXmB6tKGgxpOu3BuPeOXOSlgNIQidS6uYA5PHqZoETHc8fVqFHYknqvGT1hs7iaZUqHHUBN0ZbncZKBWIb0GK1RM4IgrA8pVLObrpQpaKPA+PIc38nE
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(186003)(6486002)(26005)(6506007)(31696002)(66946007)(64756008)(66446008)(8676002)(8936002)(2616005)(91956017)(5660300002)(6916009)(508600001)(36756003)(54906003)(7416002)(66476007)(4326008)(53546011)(316002)(71200400001)(38070700005)(83380400001)(38100700002)(31686004)(2906002)(86362001)(122000001)(76116006)(66556008)(6512007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?RnhaQXBwdEVaUTFjRUIrUjJWa3Vua3Jzc25FcFhkTytDVE9IUGtqV0Yvc1dO?=
 =?utf-8?B?NWpLcHlKSzZhQU9tZnMvVDcrems1OUdQaWFRc1F6dytOcnlHWksweWdxZlRL?=
 =?utf-8?B?UVpUM3FuNGNrMmViQjNMNmpaRXVzb1pqZ3VXOTEvMjR5Ni9oS21mbVU5ZDZz?=
 =?utf-8?B?b2xxVmZoZWZwYnJhazNwWldTeU83cUVsb2ZIR29zbUtkNExLOXA2R0g1OFc3?=
 =?utf-8?B?UHZNVUF0WDdOY2dZdjhlTmpsRjV1YTRkWjhINStvWG5DN2FkTmZwa0xZNnEx?=
 =?utf-8?B?ZmZzbDFJbkdDWHVIWEpjNjZoK2lTNk9hVEZ5TGxNMGRqcmRXMEpUejZxWmNJ?=
 =?utf-8?B?UGs5ZHVoR092WE00QUVmeDZBT0JIVVdPS2xrMzNxdWhaeTgrUm8yQjdvZnJU?=
 =?utf-8?B?SlhraEJFN21XNHd2TkJFUDJoeFRtVUNEVXgwL1oyM09BekRrYjl3SnF1Vk5i?=
 =?utf-8?B?TDhVbEljV0xRVmExcnVYNG9TelFDRzNNL1dITVUwZ0c1WEtJbktKLzhYM1Z3?=
 =?utf-8?B?ekU2akFzM0RuM1dndUw3blVZSllBYzhJYk1BUFJRYkVSV0JXL2tRNVJjRkty?=
 =?utf-8?B?V1hFWEd5Uisya0Y3UXpYanJLRjNncGdEcERYOUlUdDJtN2Zkanp4bEd4NE9H?=
 =?utf-8?B?U1VDVkJiOTFpNk9yQUhZOFNBVjdBOHh6U1d0bUNBWVFhMjc1WDViNy9lazlk?=
 =?utf-8?B?K25sYnR3RXVQWkpBbFJWWWwyQlJEaXdqTTNQZEh1UTBRYzBJd216N3hyQlRS?=
 =?utf-8?B?RTYyVmJDTXdMc0xEMHNhWHZ6aXFVUlRwOGdEd0ZQSHJVc1p2TUhEQlh6NWd4?=
 =?utf-8?B?WHpaL2d1S1hkU1J0cGRSa2w1UXNFSlJNTXRWZjFHWGUzNjRINDFreFRTLzdj?=
 =?utf-8?B?TTFjOXgyQTUyUndPWGc4SkUxbVVVN3BYUUdsckVvK2NOSWlKVXM2RUtxaFV6?=
 =?utf-8?B?RXl5VUE4a3dCTzZsMllaa1c5b1cxczdjRFprV3Z5cmdKMXp0dXhhQks0amRu?=
 =?utf-8?B?VHBpUUUrMmYrVlFnSDdaR2pLWmlpYW1ZTHRQVUl4RUF4bTBYdm9BdkxHWjhY?=
 =?utf-8?B?OU8yQ3B0V2tkS2F4RG5tTis5L2tBTmRiSUxnSHQzUDMrTmE1NUtmckU4eWp5?=
 =?utf-8?B?MXovdFNseW1UNDJISUNBa3dGT2ZBZ2IySDBsS3dVbWtHSkNuS01aMUphb0Qv?=
 =?utf-8?B?ZFlxUk4vVWpUN2wzR0Ztb2FuSHMrR3lhK21pQjN4ZHp2R2ovd0FFQnJTRzRh?=
 =?utf-8?B?RWZ4MVBScUJMbk90akRyTmJZdTNFYXZ3ZXlYa01wa1RKOThPVkdKODB1SDF4?=
 =?utf-8?B?NlQ3cW8zOHVVR3pyWW91SGRqUFBjTFFXbzZRenN2S0x4WTg4bE9jNHg0QStk?=
 =?utf-8?B?MWswNG5ROGQ2K0JpV2ttaTFWenBLUUpMQzgySTd1VnY5Qm10NkxXTllhenNP?=
 =?utf-8?B?Mzl2bEdJdjFVTk5GOUthOTBxcStUQTA1aE1kaVpGdFgybE80VUtqT0hXampQ?=
 =?utf-8?B?VmZaUEhYL1hBWkVLTFhWM2JTOVdwMk91VjR2VWJvbkh4NGlCK3kvaTBFQ25a?=
 =?utf-8?B?aFVURUlUaG9MektyWU0remRaQ05CR0EybFdUenZORHQxRFlKczJ5dTBmTkNy?=
 =?utf-8?B?S2Z4eXZTekswam5MWGtwSGN2Z3A1aEsvaFdrcjNNVXB4QmppTDJpamRhZWlJ?=
 =?utf-8?B?QVJmWFpsVHBpaTFhbFpoY3BaTE8yclpBdThpajBXcjR6NGs2dDRpMW1tN0wr?=
 =?utf-8?B?SkVobnJhTVVrMzZvY0xGVVIwZ1NTTkVaeGJYWnRFN0Z3alp0Z1k2T1ZzZlhN?=
 =?utf-8?B?ZExkbUxoWnBmancwdjVOWXc1YUppVVFRUGo1eUQwMVBFTGVycDU4Y1Fqa1Ft?=
 =?utf-8?B?eVBLbFhKd011QmZDbnR6QlBtdWpHVFIvbFlGSzMwZ1h3emxkY1BTMjd5ZVA0?=
 =?utf-8?B?OGhUYzRUb1JIaUw0dHRBRU1IWjVkakovc3FpNE12Sy8rRkQ3Ri9qZVExWGFY?=
 =?utf-8?B?Q2JTT3NZUHk5dVpZcURlcmdxdEJCZi81M21PbEt2UTg0VWFLWHdyNlRpS094?=
 =?utf-8?B?Qm94a3JGUDNYR3VuSnQ1Y1lQcjl6a0h5V2tEdEQybVM0VWZ5TnRaYkQrcGp2?=
 =?utf-8?B?SkxpbjhQRnRTNm56b2FqYzdHS1duSDR2bGtTMWJPOGRGUGcrT1poK0JaMWs5?=
 =?utf-8?B?RC9TdldzNTBISTZQeCs4dXgrZng3bVRaV0hVUXRpa2oxTWhVaURLZFZWRDJ0?=
 =?utf-8?B?TlQxTmwyY0FtY2NRR1hzaXhiZmdIZnhxM1JrNHd1cDd3RktDSW94VDh5OVda?=
 =?utf-8?B?dHlLZkt6cXlWUHhXVzAxYytoYUVGYU10T1EyT05TcXpyQWZNNkU0UT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <13989D5C3018D44AB24B2C61E1F4A972@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ad45b117-2fa4-454c-5e86-08d9ab5588c0
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 12:10:10.3299
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: QTBqJ1Mf1B4/vjQyzegrzdS84a1gIV7eYNehwOfUzN1VJGPFicmpclw3/7WbvPRhX/6Z1rOiLb9MuLIP8NAvpZj1odLUZaFEvoPH9DIAkqPo0CfFc4koT16KEhH2GWGM
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB3873
X-Proofpoint-GUID: Ttfh-DcmMACREaajI8twGDc37tMuBTq4
X-Proofpoint-ORIG-GUID: Ttfh-DcmMACREaajI8twGDc37tMuBTq4
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0
 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 impostorscore=0
 mlxlogscore=965 suspectscore=0 mlxscore=0 adultscore=0 priorityscore=1501
 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190069

DQoNCk9uIDE5LjExLjIxIDEzOjU4LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gQWRkIHJlbGV2YW50IHZwY2kgcmVnaXN0ZXIgaGFuZGxlcnMgd2hlbiBhc3NpZ25pbmcgUENJ
IGRldmljZSB0byBhIGRvbWFpbg0KPj4gYW5kIHJlbW92ZSB0aG9zZSB3aGVuIGRlLWFzc2lnbmlu
Zy4gVGhpcyBhbGxvd3MgaGF2aW5nIGRpZmZlcmVudA0KPj4gaGFuZGxlcnMgZm9yIGRpZmZlcmVu
dCBkb21haW5zLCBlLmcuIGh3ZG9tIGFuZCBvdGhlciBndWVzdHMuDQo+Pg0KPj4gRW11bGF0ZSBn
dWVzdCBCQVIgcmVnaXN0ZXIgdmFsdWVzOiB0aGlzIGFsbG93cyBjcmVhdGluZyBhIGd1ZXN0IHZp
ZXcNCj4+IG9mIHRoZSByZWdpc3RlcnMgYW5kIGVtdWxhdGVzIHNpemUgYW5kIHByb3BlcnRpZXMg
cHJvYmUgYXMgaXQgaXMgZG9uZQ0KPj4gZHVyaW5nIFBDSSBkZXZpY2UgZW51bWVyYXRpb24gYnkg
dGhlIGd1ZXN0Lg0KPj4NCj4+IFJPTSBCQVIgaXMgb25seSBoYW5kbGVkIGZvciB0aGUgaGFyZHdh
cmUgZG9tYWluIGFuZCBmb3IgZ3Vlc3QgZG9tYWlucw0KPj4gdGhlcmUgaXMgYSBzdHViOiBhdCB0
aGUgbW9tZW50IFBDSSBleHBhbnNpb24gUk9NIGlzIHg4NiBvbmx5LCBzbyBpdA0KPj4gbWlnaHQg
bm90IGJlIHVzZWQgYnkgb3RoZXIgYXJjaGl0ZWN0dXJlcyB3aXRob3V0IGVtdWxhdGluZyB4ODYu
IE90aGVyDQo+PiB1c2UtY2FzZXMgbWF5IGluY2x1ZGUgdXNpbmcgdGhhdCBleHBhbnNpb24gUk9N
IGJlZm9yZSBYZW4gYm9vdHMsIGhlbmNlDQo+PiBubyBlbXVsYXRpb24gaXMgbmVlZGVkIGluIFhl
biBpdHNlbGYuIE9yIHdoZW4gYSBndWVzdCB3YW50cyB0byB1c2UgdGhlDQo+PiBST00gY29kZSB3
aGljaCBzZWVtcyB0byBiZSByYXJlLg0KPiBBdCBsZWFzdCBpbiB0aGUgaW5pdGlhbCBkYXlzIG9m
IEVGSSB0aGVyZSB3YXMgdGhlIGNvbmNlcHQgb2YgRUZJIGJ5dGUNCj4gY29kZSwgZm9yIFJPTSBj
b2RlIHRvIGJlIGNvbXBpbGVkIHRvIHN1Y2ggdGhhdCBpdCB3b3VsZCBiZSBhcmNoLQ0KPiBpbmRl
cGVuZGVudC4gV2hpbGUgSSBkb24ndCBtZWFuIHRoaXMgdG8gYmUgYW4gYXJndW1lbnQgYWdhaW5z
dCBsZWF2aW5nDQo+IG91dCBST00gQkFSIGhhbmRsaW5nIGZvciBub3csIHRoaXMgbWF5IHdhbnQg
bWVudGlvbmluZyBoZXJlIHRvIGF2b2lkDQo+IGdpdmluZyB0aGUgaW1wcmVzc2lvbiB0aGF0IGl0
J3Mgb25seSB4ODYgd2hpY2ggbWlnaHQgYmUgYWZmZWN0ZWQgYnkNCj4gdGhpcyBkZWxpYmVyYXRl
IG9taXNzaW9uLg0KSSBjYW4gcHV0Og0KYXQgdGhlIG1vbWVudCBQQ0kgZXhwYW5zaW9uIFJPTSBo
YW5kbGluZyBpcyBzdXBwb3J0ZWQgZm9yIHg4NiBvbmx5DQphbmQgaXQgbWlnaHQgbm90IGJlIHVz
ZWQgYnkgb3RoZXIgYXJjaGl0ZWN0dXJlcyB3aXRob3V0IGVtdWxhdGluZyB4ODYuDQo+DQo+PiAt
LS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNp
L2hlYWRlci5jDQo+PiBAQCAtNDA4LDYgKzQwOCw0OCBAQCBzdGF0aWMgdm9pZCBiYXJfd3JpdGUo
Y29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsDQo+PiAgICAgICBw
Y2lfY29uZl93cml0ZTMyKHBkZXYtPnNiZGYsIHJlZywgdmFsKTsNCj4+ICAgfQ0KPj4gICANCj4+
ICtzdGF0aWMgdm9pZCBndWVzdF9iYXJfd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYs
IHVuc2lnbmVkIGludCByZWcsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz
Ml90IHZhbCwgdm9pZCAqZGF0YSkNCj4+ICt7DQo+PiArICAgIHN0cnVjdCB2cGNpX2JhciAqYmFy
ID0gZGF0YTsNCj4+ICsgICAgYm9vbCBoaSA9IGZhbHNlOw0KPj4gKw0KPj4gKyAgICBpZiAoIGJh
ci0+dHlwZSA9PSBWUENJX0JBUl9NRU02NF9ISSApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIEFT
U0VSVChyZWcgPiBQQ0lfQkFTRV9BRERSRVNTXzApOw0KPj4gKyAgICAgICAgYmFyLS07DQo+PiAr
ICAgICAgICBoaSA9IHRydWU7DQo+PiArICAgIH0NCj4+ICsgICAgZWxzZQ0KPj4gKyAgICB7DQo+
PiArICAgICAgICB2YWwgJj0gUENJX0JBU0VfQUREUkVTU19NRU1fTUFTSzsNCj4+ICsgICAgICAg
IHZhbCB8PSBiYXItPnR5cGUgPT0gVlBDSV9CQVJfTUVNMzIgPyBQQ0lfQkFTRV9BRERSRVNTX01F
TV9UWVBFXzMyDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDogUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV82NDsNCj4+ICsgICAgICAgIHZhbCB8PSBiYXIt
PnByZWZldGNoYWJsZSA/IFBDSV9CQVNFX0FERFJFU1NfTUVNX1BSRUZFVENIIDogMDsNCj4+ICsg
ICAgfQ0KPj4gKw0KPj4gKyAgICBiYXItPmd1ZXN0X2FkZHIgJj0gfigweGZmZmZmZmZmdWxsIDw8
IChoaSA/IDMyIDogMCkpOw0KPj4gKyAgICBiYXItPmd1ZXN0X2FkZHIgfD0gKHVpbnQ2NF90KXZh
bCA8PCAoaGkgPyAzMiA6IDApOw0KPj4gKw0KPj4gKyAgICBiYXItPmd1ZXN0X2FkZHIgJj0gfihi
YXItPnNpemUgLSAxKSB8IH5QQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLOw0KPj4gK30NCj4+ICsN
Cj4+ICtzdGF0aWMgdWludDMyX3QgZ3Vlc3RfYmFyX3JlYWQoY29uc3Qgc3RydWN0IHBjaV9kZXYg
KnBkZXYsIHVuc2lnbmVkIGludCByZWcsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQgKmRhdGEpDQo+PiArew0KPj4gKyAgICBjb25zdCBzdHJ1Y3QgdnBjaV9iYXIgKmJh
ciA9IGRhdGE7DQo+PiArICAgIGJvb2wgaGkgPSBmYWxzZTsNCj4+ICsNCj4+ICsgICAgaWYgKCBi
YXItPnR5cGUgPT0gVlBDSV9CQVJfTUVNNjRfSEkgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBB
U1NFUlQocmVnID4gUENJX0JBU0VfQUREUkVTU18wKTsNCj4+ICsgICAgICAgIGJhci0tOw0KPj4g
KyAgICAgICAgaGkgPSB0cnVlOw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHJldHVybiBiYXIt
Pmd1ZXN0X2FkZHIgPj4gKGhpID8gMzIgOiAwKTsNCj4gSSdtIGFmcmFpZCAiZ3Vlc3RfYWRkciIg
dGhlbiBpc24ndCB0aGUgYmVzdCBuYW1lOyBtYXliZSAiZ3Vlc3RfdmFsIj8NCj4gVGhpcyB3b3Vs
ZCBtYWtlIG1vcmUgb2J2aW91cyB0aGF0IHRoZXJlIGlzIGEgbWVhbmluZ2Z1bCBkaWZmZXJlbmNl
DQo+IGZyb20gImFkZHIiIGJlc2lkZXMgdGhlIGd1ZXN0IHZzIGhvc3QgYXNwZWN0Lg0KSSBhbSBu
b3Qgc3VyZSBJIGNhbiBhZ3JlZSBoZXJlOg0KYmFyLT5hZGRyIGFuZCBiYXItPmd1ZXN0X2FkZHIg
bWFrZSBpdCBjbGVhciB3aGF0IGFyZSB0aGVzZSB3aGlsZQ0KYmFyLT5hZGRyIGFuZCBiYXItPmd1
ZXN0X3ZhbCB3b3VsZCBtYWtlIHNvbWVvbmUgZ28gbG9vayBmb3INCmFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24gYWJvdXQgd2hhdCB0aGF0IHZhbCBpcyBmb3IuDQo+DQo+IEphbg0KPg0KVGhhbmsgeW91
LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:13:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:13:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227821.394129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo2lY-0003LE-4G; Fri, 19 Nov 2021 12:13:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227821.394129; Fri, 19 Nov 2021 12:13:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo2lY-0003L7-0Y; Fri, 19 Nov 2021 12:13:16 +0000
Received: by outflank-mailman (input) for mailman id 227821;
 Fri, 19 Nov 2021 12:13:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo2lV-0003L0-Vp
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:13:13 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 109d9b9a-4932-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 13:13:12 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJC4dsK004508;
 Fri, 19 Nov 2021 12:13:10 GMT
Received: from eur01-db5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2059.outbound.protection.outlook.com [104.47.2.59])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cebkv8108-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 12:13:09 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3374.eurprd03.prod.outlook.com (2603:10a6:803:18::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Fri, 19 Nov
 2021 12:13:04 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:13:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 109d9b9a-4932-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MhZeUlM3JR01ERgyI0rvFacxfZKEOpNMgIkW2CnnwuZems6vsXzwNL3t2i9QF7ZYA9Gbb0DlfIQNeTFQ6tqLyT5V668oj+JiKOvORd4/wJyikrHgJDPMR88dWUa24cyMOFD0s6shZMgDir95biD3/NGenBF4dxOzSfJFWVqeM2qxNfb6ULdUGbw5Jq1c5Bq5hgkKQw0Vs1OGSisCKDzx3skWxD0P5Lmu7r6upP67MKayKxzbyB6Qmnd0TrRiTqXfmQvcsaBkN30yR0XHuJ0PLzObynDutcBTaKqy/BlhSKRdgN/l/qthvs66KX1rvi/jD2grgVPtfAmQQ8jfvarrOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RDBQ80/RC1YqUCquDDAgX3DzhscKRB3rTmwOkWc0igU=;
 b=QGwgfGyAWaWztcVBZzG65y2jD3YcUzORr4DS7ue7qd9GywWWvFrTt8dffiUWQWLx3IGIZcyrjB//lCxZ8lFnWu84sCt1koIjOHiLfyfpDocqLKSq1VVNCPCPAo2fFFw6NCMfAByHFOs7p09STApGTVC3gz601cqBLSaR3JazGYKdzpAkxrZIhbeQzvT8Soz3npnOqCytw5lt91DuuirxDYp0AFa6y2m4zR1VLdArEB5Iu57CAdIsmn0DtjOP7Kzu+2bUMYlOQ8PMiZS7Sq3jxWEuqOQ8x3WwAkHLZ/PvuLUZwwv8fO0mEEDky6JyhlbwMfkYdxlgWkCx/qy9i5Jrog==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RDBQ80/RC1YqUCquDDAgX3DzhscKRB3rTmwOkWc0igU=;
 b=sbKcUIKq1A1E+omzXbMCljkrwbyDwNX2c3uwV47blHwTYTZk8V+AplxkcSkq4G+N2NH/tqZbq/TjoYtHJaMI3OOsCTAB7vIGDTYZnM73QLBspCu++AgLLVpnLPUH5yt+BerAEO9uocDLD78Al+Qok5oroJ1BK/sUwf60OuWZGthS1glIdMAzySsOQQFdsCBoW+h8fTYNEqUnqeFbOoaiF+e2Sflz39Nuzg5pD08gyWW4tzwUofsCop/I8XASo43Yr/BxTCSFHbvc6r0Q8hd2W2J88Mnc+jP0Z6IPhruet2PE/JBYOUCso/FXPGku1y+C2QSJb3nuDxk6y5HF/N4qQw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Topic: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Index: AQHX0hJLwt+wJ2t1lka5jlbMIq7ZAqwK13MAgAACAoA=
Date: Fri, 19 Nov 2021 12:13:04 +0000
Message-ID: <1a380ef9-bdc9-bbfa-35b7-ec1c901e3019@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <9aec23b3-2269-39fe-9fc0-fb8cf7f9de44@suse.com>
In-Reply-To: <9aec23b3-2269-39fe-9fc0-fb8cf7f9de44@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 57e50c3a-8349-4bd7-b5cb-08d9ab55f093
x-ms-traffictypediagnostic: VI1PR0302MB3374:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB3374F9093D687C1DAFD81616E79C9@VI1PR0302MB3374.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 P+r8cPVDwLmYruEGztkUyLcEMpXZuw2oE4rd01ve+4IeJje3/qDxmXNhs0a7MhD3Kz1Wdw2pvJNIS2Pb2GgUzBdJgiF/BAoXZdMRA4w0QxtasPUSUscWIclOCCfkcuyvXnMmE7bOAyrbgCRElRmF0fxnCeoEVWg1eIfGqznVG//z8LNQyp7dWV9JuXPMRW6M0gucU9ataaPXPYkKuA73zzrjqULguew32Emyd42r9+f1WAUx6fgM7OKylP/6b5bVhvw3bTAQVlaupgT/oOqdpX/u3H6x5aoyqVjQM/H5gXwltw/QGe9VTcZPm/F4c+swoPI6WEbzx1+yTxRAGBT9c2CrHrxHVfuiOhWPJrWU2r3gNZcm3yh2NuEfii9/gSC54naRQJ1KFFJg15bx1WCMhHx139WCTKUGLkkRLiFjd6NKRtZo+rqGjEYf1NS3J/Vrag6F6Plw5gzrISZIdZshLFa/gyUrjDr/c/mCwXpswi/KKhKVT2dayOtbP8UqRvpzqX1feQzhAmD9u+IAD6xR3gL8rMjykzrewnvbTQlPUi15lccYK7XKZ0ZXYdVwJNJVFV6ZvDLbdFSKC+yScfCuvCz+barNYMhIdjouWMVv+je3BdJuCHYFiYYXja1LtjFr5C6hiOjdEbVKeLRc7S3xARe8iXTWKYUqGfRcIzluOfQRl2iUmsznCKPBMjSi6mr1V0S1spVyN+CA8MTCuHjwqyH338CFwKSL1IOV7q2D++hg2m+C6taq911/uqMbklAi
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4744005)(4326008)(2906002)(36756003)(31696002)(6486002)(6916009)(7416002)(66946007)(54906003)(508600001)(2616005)(122000001)(6512007)(8936002)(31686004)(6506007)(53546011)(86362001)(71200400001)(316002)(64756008)(38070700005)(8676002)(66476007)(5660300002)(186003)(26005)(91956017)(38100700002)(76116006)(66556008)(66446008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?eW1aTytTS09Oai94QnM2cXE5ZU1OOTVjSXVtMEYzZ0Z4YTVvbzk4bDBIcXhH?=
 =?utf-8?B?aW1BODlsb09zc2dsdUdNbUtwakp1UGU0RUNHNzVYUndRWWI3Q0srVHFLeUNs?=
 =?utf-8?B?bWhxb29QMUk3ZS9ZMzBWanN4RU5oSzRpc04zYUs1NHlCMERaaXpHSDNINFFp?=
 =?utf-8?B?ZmJLZzN5UXh4RXNhWXBzYXpyaWlBMG5GME16S2U0M2JndUVCUzJCdzlxVlJx?=
 =?utf-8?B?WUh6ZHdQcE11Qzg4UU5aYzRLS1FwQzlMTzhud2RmaWwrWGYwelFha1FUMDFM?=
 =?utf-8?B?ekNqTTFpTDAvMEZaWENmZ3E1TnZURkY2d0hJZWVrTGJxS1FnRFAwSTRYNWRN?=
 =?utf-8?B?ME16N2RrOEpBc2htMXdVUEU4MVdBSVlRenIvMzI2eGNuZW1KbHcycXUvTnh1?=
 =?utf-8?B?aHdQb1RCQXU3S1pSeVY5M2lFc1VtR01GaW5lTTVCZXBsSnJZVkNaNXd3Z2JY?=
 =?utf-8?B?WkIvWm41MW9BUDlFN3RaWWtkbG9nQTVwN3FiclU2VjY4aVR5K2ZsTFdkd25i?=
 =?utf-8?B?M20xcmQ0cW5WaUNzSU4rWmZMVGxRVGVqWHhSNU55V2dhT2RwcjFyaHFyaHNY?=
 =?utf-8?B?V1JGUVhmcjJKeVlTTzNKdDBzU0VNOGhBV3FiQlRtTHZRNG9ZZUo4VWEyNUZH?=
 =?utf-8?B?aTlCaFFtMy9GODYxWGpaQkJ3d09HNGxzVVBIVTBPWGxPTEg4UlhObkl4ZFpF?=
 =?utf-8?B?a1ZKQ1A1bDVPMk9MUWRzU3FkQUhjVC9heEkxSERXdk1RQUxFcW9UcHZzZFVC?=
 =?utf-8?B?b0F4QWZTeTlrLzhSSjVhYkpXbGF1anRUODhhcmh0bHpSaDRPRG04YUM4bHRC?=
 =?utf-8?B?cmVPdEpQOEdIaUxreUMwWllhcFVwby9DdjVNTGFFSURNdlNzdUp2NXVwdG1r?=
 =?utf-8?B?dDRpaXh5aUNXWGFab3BzWm10bi9VS2dlSW5BK042UHI3T3h5OTNCbnJOTUNj?=
 =?utf-8?B?aFdydHpsdC82ZlcrUGJXQXhXVkVGYWdIV1dlSzF1c0o5SWg0emQ3S3hxckR2?=
 =?utf-8?B?RHBIaTZHU3dCaVJWUFdXTFpWenQ4RnZ0UjBEekNxV21nbURMU2srbkY0NkVY?=
 =?utf-8?B?VzhydzFMUS9aa050cmZMZGxDY3lOWUpVUG1FNlpGNHJvSC9VcERHS3BnUktC?=
 =?utf-8?B?MkhyK0p2eWViN1gxdEhLcXk0OFVaKzIrcFRVTU9kSzVtNkRNR2xHTGVlcFNN?=
 =?utf-8?B?VkRLOWNWektRMUdncUpVUk1XSVZKdVhnMEZRYmZ1MmtiRHdBWklXNFRQVUUr?=
 =?utf-8?B?YVErRGErOVVHc09pci9ySCt3bkhmVENyQXB6K3lMSDhZQ1RsakNDaGNIVWVL?=
 =?utf-8?B?Ly9Nc0Y1SzZZemhLY3E0N2hRZHJoVytIaTQ3SG1UcUdFcHpQQmFNQUJOaHNt?=
 =?utf-8?B?MU5JUWMvK1dacGVia0Rkc1Q3OGJaRm9MY0xHSnlZUkNIOVk2V2NvTWR1OHp3?=
 =?utf-8?B?OWJhbDY3TUZ5SCtubW84NVFrM09RY0trKzFnTklUWG5KTGUvOU1Qc3NTbS9D?=
 =?utf-8?B?Y2ZjUUluU0xab0FOR0hVMHBES05JNUdNMlFueE5OREJpQVkzK1pKNWRlMWN1?=
 =?utf-8?B?ZGYydE9WaXhsV213a2JDaHQvOUYxeU1sV2FmTGRQa3I0dW1UMjdOWWZYV3NU?=
 =?utf-8?B?dFBFNEMwSHc1Y3dUNUpjQkVCS1ZVU3JDZkNlM1ltOTNwOHZqK0JEWEcraG0r?=
 =?utf-8?B?RGZGb3F3bTUxc0RwYXgxQnRyS1pjc3lrUlFacEM0Sk4ydkRjQkN6NXdvKytW?=
 =?utf-8?B?b05kbzR1K3krbGFHekR3a1doMFpMcW9kZUZ3K3k3ZTRSbzYzVXNGZXBURDM3?=
 =?utf-8?B?NGpqelU5cDl5U09UZXNSd0VxVjBpeE5ETWtrUGVMcDJidjl0RWdJR3R2ZVBm?=
 =?utf-8?B?YWpyRzZjcDZoQmFoNytBMVNYb2tNaVl4SVoycy9qYjJETmtuSnRyNUhjNDR2?=
 =?utf-8?B?OTJYNzlzeEdaWXcwRVVwVGhjK3h1UGhBbmFZbkg4ZmhYaXkvTitoZGFqWSt3?=
 =?utf-8?B?WjJMUElGbkFoMVRJWmNYRWd2TVVqN0dXQVJaL1ZQZitvOWQ1U2ZMajYyeWJl?=
 =?utf-8?B?dnlWR2x1T2RTUjFVd3JtakU4UUMrVkdSeUhGdGJXWmVrUFlNM053WStVcmRh?=
 =?utf-8?B?WTcrcmRxd1QvL1dsbFdiK2J2cTBQd0piNXk5UjV1L1pRbzVpUmxTRi9ZL1Z6?=
 =?utf-8?B?b0JSNUFtRUk2dVJZSUdveThIS3JyUFpLQ2FCVHdOTk1CelZUOFpDRC9KWTVy?=
 =?utf-8?B?aDRGVTJZamcxZ3F6UUoxYTJGOHNWdHF2WE10aW1QOENyVmlIMW1uSXdmeG0z?=
 =?utf-8?B?YUVVdXpGNml5blUyWHN5WEVlVHMxR1A2azdyNHMrS09kUHIwc2p6QT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A79C096B0DD70C49BBAD96E67455F1E5@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 57e50c3a-8349-4bd7-b5cb-08d9ab55f093
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 12:13:04.5591
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: nzbPTswmMO7LRZtzKfLImJ6NhHnS4zR9plLTjkTRNbN6lrNO6kZ18tfEhwiwp87IS2eVx+Q7G+5/TMHDH7dxwRbzo+W7YjrvJNTB81PvK8SF/8p2LPK3rW00ld7yxIz6
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3374
X-Proofpoint-GUID: 3erRKLj1AqiVLa3XAKpPuWDWmK0j-SlV
X-Proofpoint-ORIG-GUID: 3erRKLj1AqiVLa3XAKpPuWDWmK0j-SlV
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 adultscore=0 spamscore=0 malwarescore=0 impostorscore=0 bulkscore=0
 mlxlogscore=848 phishscore=0 mlxscore=0 suspectscore=0 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190069

DQoNCk9uIDE5LjExLjIxIDE0OjA1LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gSW5zdGVhZCBvZiBoYW5kbGluZyBhIHNpbmdsZSByYW5nZSBzZXQsIHRoYXQgY29udGFpbnMg
YWxsIHRoZSBtZW1vcnkNCj4+IHJlZ2lvbnMgb2YgYWxsIHRoZSBCQVJzIGFuZCBST00sIGhhdmUg
dGhlbSBwZXIgQkFSLg0KPiBJaXJjIFJvZ2VyIGRpZCBpbmRpY2F0ZSBhZ3JlZW1lbnQgd2l0aCB0
aGUgc3BpdHRpbmcuIE1heSBJIG5ldmVydGhlbGVzcw0KPiBhc2sgdGhhdCBmb3IgcG9zdGVyaXR5
IHlvdSBzYXkgYSB3b3JkIGhlcmUgYWJvdXQgdGhlIG92ZXJoZWFkLCB0byBtYWtlDQo+IGNsZWFy
IHRoaXMgd2FzIGEgY29uc2Npb3VzIGRlY2lzaW9uPw0KU3VyZSwgYnV0IGNvdWxkIHlvdSBwbGVh
c2UgaGVscCBtZSB3aXRoIHRoYXQgc2VudGVuY2UgdG8gcGxlYXNlIHlvdXINCmV5ZT8gSSBtZWFu
IHRoYXQgaXQgd2FzIHlvdSBzZWVpbmcgdGhlIG92ZXJoZWFkIHdoaWxlIEkgd2FzIG5vdCBhcw0K
dG8gaW1wbGVtZW50IHRoZSBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgYXMgcmFuZ2Ugc2V0cyBkbyBJ
IHN0aWxsIHRoaW5rIHdlJ2xsDQpkdXBsaWNhdGUgcmFuZ2Ugc2V0cyBhdCB0aGUgZW5kIG9mIHRo
ZSBkYXkuDQo+IEphbg0KPg0KVGhhbmsgeW91IGluIGFkdmFuY2UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:34:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:34:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227828.394139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo361-0005gb-1P; Fri, 19 Nov 2021 12:34:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227828.394139; Fri, 19 Nov 2021 12:34:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo360-0005gU-Uq; Fri, 19 Nov 2021 12:34:24 +0000
Received: by outflank-mailman (input) for mailman id 227828;
 Fri, 19 Nov 2021 12:34:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo35z-0005gO-QX
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:34:23 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0579bf76-4935-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 13:34:21 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2057.outbound.protection.outlook.com [104.47.12.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-36-FFIZtvazM-S-vvcxapHTjw-2; Fri, 19 Nov 2021 13:34:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 12:34:17 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:34:17 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0070.eurprd04.prod.outlook.com (2603:10a6:20b:313::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Fri, 19 Nov 2021 12:34:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0579bf76-4935-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637325261;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yQ4mYTWdI627UFE54cE0Y2ZnmHlgdUOswhx5HOMPLhM=;
	b=bnn+04pvYTP6n+BsxLXzPwuhUxIR9rtNEbjUKFmNQXMEuwNTq5jqAF2ANHhwWviuivtAME
	6i48mJhsnSuFBuD6fyPo6FP4fuWlRzQ3P6uPLgcHL7Rldf0L1+i/8xYKY+9OWdKd/Ji6Ta
	9T64fEAfUf0f3HD3kHIr6xcD58wwIyw=
X-MC-Unique: FFIZtvazM-S-vvcxapHTjw-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fAQ8tyjVFYScj75jscQrBcDf2u2z4S/ZBg3ct8Wy4tCyfxXct7ktObTlYH1pA8dg2YMfSbjl9kmTe5981f8bBl2rOM9OaMIT7d066m8X5UTKOlquax7jCJ1O0yrugVbo2k6TyxXYMM7qcB1AiJtm7g8o5kDD/qQUZFLJxCd8jWnmQ+qRHjahfCaxnkhfq0gzyHTaPxtsVty8KDMayLwHhiDie5S7CzidyVh/25brEJuRtYy3uAEXEF8kda7ADovlwGOnQluG1cgQ9ERhSequHqqanS+8//uigzOgeLG/HknDHB7C80kFWj67zWS+zb48JKrpFeJ02wthkPoRQD+gWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yQ4mYTWdI627UFE54cE0Y2ZnmHlgdUOswhx5HOMPLhM=;
 b=E2j+6glfQF4eZp2HwLk0eFk0iTe2gEWM/blzqGHY0HCT+aC8QrjhCDiGhXgCqm3glSEzQBjJnrd9q41ItN/fS8WrIiasWvH/voPbjPCUpA0dQNmyqqSMCAKpiHqorYpQxHOyF4cf/DRwAorFpH8jtLfEJaIav1rQgk3Sc4UGleBWvqm1RaRFlysS1UN+5aU8SfGhD7xAVwTssEupd/Irtvu2pebOhs5+rDVkM54NOlZyu4S0VYMXVBIKjhwUnqwwt+xgXof49CZDSkXL3gagd3LZQz00Cy3JJ9ZFQd5mZhn9TrNOuhfM1KwMNkKV6yMW5SSp2Aqf+tjbUENyEd07Hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e64d3e7b-a725-07aa-3a03-512868527221@suse.com>
Date: Fri, 19 Nov 2021 13:33:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 07/11] vpci/header: program p2m with guest BAR view
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-8-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-8-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0070.eurprd04.prod.outlook.com
 (2603:10a6:20b:313::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3e461f5c-e0ec-4169-5f09-08d9ab58e6f9
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB532519FDF69E81BDE021DC95B39C9@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4125;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ZTQpw5YCnXIXKXNKgaUrYQX4H7x8ptQpJRXMvsAuJXMqJ43ufCpci3TT4839oyio6/lf0Gs9+K5LdQuVxIVuofaZ7VLyV8VReQijm7D9c/zQ2uCVxZ8NqqqLgUSdLREBVBphs4Y8NkzOeXvYndpCccb5G/yO/pmBCODpwxhZBQ1YtuHTpP9v9AcsBUDeudyJc2MhsEZIatk0Mfa7Ql7G3kPocBNeEvcGUX3GhF5TAH274pQNy/d5goyu2n7KX/y5w0dmtNUdfKel09ckm2fw4Q3xY8x+xtEKxgYhhUtGUNYzt+cD/pZwjF3y3ve22GVKZti05L1nABZecRP6g+hri55BUpO4CwJeDdICObdLI2LUwfc8PXoGIKdAYTLun4SnTjoFahyYEeCennEU/HVBVYU9XDnUTiSPyojBYbphATlnmU9O4oAa7BU3E3QOYoFhCR+IRcuWpzN/Sej3Jp0mvqO89A3RdWaOCfdxD+B9Ob7FcgARy6QFHbm/soLwORI6pAVMAd8EP3eo+6a7l/lghim9VuFhVxBCQyDeqPQA5PYUwER3vh6lE+ySfsCBnQkRnvawPnZpghnB+5A7FCIxGcE0IXiiPg/TaNNwSP4RIzuRLc0md61UyqARZ91AEepxSQ0ZswU+459eHDfDWUqg7VClboNsV2LtbcOgk98pTl5dYikT9f1qruXlvqd9BdSeGbqr81X8DWM1YrwlAYFhIlT6QVlI3p3Fo4CjFrrkKVY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(6486002)(66476007)(66946007)(186003)(2906002)(6666004)(66556008)(86362001)(31696002)(2616005)(7416002)(8936002)(16576012)(508600001)(316002)(38100700002)(53546011)(5660300002)(4326008)(31686004)(26005)(8676002)(6916009)(36756003)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c3JpbDJuTWdsbUJnUlFnclEreXY2QUx0TkxSNlB3aWo0UXdLWFpSOC92SkJZ?=
 =?utf-8?B?RXI1MXJUOHk1MkJFOWdETHFaTmR4SmV0Y09UTXBZWWhTcHoxM0lybTFsaEM0?=
 =?utf-8?B?a3JZdTdLeGtXampoaXNZRjFWc001bmNHNG5OdCtySkhTVnFRQXBuekhhVDl0?=
 =?utf-8?B?VU9wMFhET09xMExoMDBTUExBOE5qMVltOFZPdi84ZW9OYkNCanVFaWl0TEwz?=
 =?utf-8?B?TzNHWEtsS0hVWDZkb3hzais4Z0pKL2Z3ZFFpZEVRdEVpRGF4Uzg2ZTF4UnAz?=
 =?utf-8?B?S2xSazRvdWdFdENtRTc5L0RUWVRBTmRidW15anM2azhBbWUxQjZUd1F4Wkt5?=
 =?utf-8?B?bGpOSTloM3Q1TldMZkovdlVmeWNEVEt3QzViQjRHUXFYUG54VUszMG8reXFn?=
 =?utf-8?B?cEhDUE9JRkdsVWlzU1hmUUw0VXNWcURZbWdnbytoUFVWQ3hXNGl4allFWVo4?=
 =?utf-8?B?eWE1ZFVVaEVGWXNvNlpReWs1NTAxNVNYemRFd3NRTWthbGU1U2t2cUFOZXhI?=
 =?utf-8?B?YUdwWCsweGpTV3BDeXJybzBQMTVlb2gzMHFoazVMY1VBYzkwekVRN3J2QTJz?=
 =?utf-8?B?V3lINGFBMytEMzMxVG1WbmVmdUJVMEFWbWFYOHNUTVk2WnNMQW1SYkowdGJV?=
 =?utf-8?B?L1l2MzZSaS9yVWowemM2UEJaYjhaUnR5TVl1V1pFUnN1VElCRUVmMVB5dXdq?=
 =?utf-8?B?ckUzWVByazBQL2JXN2tiOXdTb3NzeEJhbkVKY2dBaUYvNXd6d3MwNlEvKzA3?=
 =?utf-8?B?ZTJaUCtMd05LT3NhQXhIQVdJTGZqeDlRdUlmUlluVW5MaG9iQndGSG0wTXhO?=
 =?utf-8?B?Ulc2ZWdrK2xnUWRUVEFrQWtjT29NTHF3RnJRTkFlRkIvcGFjZ0R0NDQ0Snhr?=
 =?utf-8?B?Vjd5bHVHL1l4TlhmRm1EQWZvVHdMWStOd1F6ZHlhaVRlZm5kYWJ4NWxpT24v?=
 =?utf-8?B?VEREaDR5N2UzbGEzR2lPV2NZVWJscFZ3YkUvcGtLdzZmaDJkV3lCTEljWk5p?=
 =?utf-8?B?dGM5QjgzUk0zNDQwT1l1bzhSeEZoWkpVM2Ewckp0TW1SRld3YUh1Q0gramYz?=
 =?utf-8?B?RnJrcGY0V0RVOFFaL0FXUlRmTlpjWXRMMU5uMFdWYUFrY2wvTXZPWUhsSVhu?=
 =?utf-8?B?a3BEKy83NjNzaTJLeHJNcit4Lzk5Z2VzU0NKMVRpZmN1emNhUENNQWVSYTVU?=
 =?utf-8?B?RVFRZDFhM0VObHZhamNNcHA5TFM4d0xZV0pMbG9HM292ZHhSNmExSVVveWRD?=
 =?utf-8?B?eXFPTjhZaEM5R2hKK1FDWW1oU0NiNTBoYThITlBuN2NNVU40NmhMT3FGSDEw?=
 =?utf-8?B?L0NnSm9pMVV3Mld5ZklXSnlvbHo3SjkxUVdYM3N3VjVwVEdyU2dpaFExNlhP?=
 =?utf-8?B?MWJZY3M3dlFwZGl2M2FCaFdRaWllN3dxVmJ3SEI2RURmOHBMQjVZb2VYZFo4?=
 =?utf-8?B?K3ZyOHdmbDhUazVhdTBNL1lVWTc5VFkyc1VGSGJoai9PSG5OU2FiYm5zNnpl?=
 =?utf-8?B?VTl5SmZNbkFjdzBQK3Y5ZE1Ya1RwS3lWUjJTNWFsRThQL1dFRTg5M3RBcDJn?=
 =?utf-8?B?cWZyZUNkb3lmS3NNSnloek9DWFA1UW03ZFIwU1BEQy8xM0VuanBSOFQwRHdP?=
 =?utf-8?B?d0NldktLZTROVXFNbkYybVpRM2thSmdhdEU4VTY1VzlMWTFIZjRoeWRnS3FL?=
 =?utf-8?B?T1BnczBsSGNKTG0wVmY4SWtDZmlnbjkvQzl1VGRKZnFQam45cW0rQXRmVUZT?=
 =?utf-8?B?b0I4Q2p4YlpHRjAzR0tOUVB3c1lxSGptcWxtdGdvdHEycVNnVTFxVlY1b2Zi?=
 =?utf-8?B?cFVxbXk3eGsyVVRUYW9mM3k2NUNsMXlVam01aFU1ZXg2OUIyMElxdjRhc2s3?=
 =?utf-8?B?WHFHcnlvTHVlajZBR1NlNlVaaWJwbUlyd0pSTng0NVRVSzFKSTN5eEY5b2Vy?=
 =?utf-8?B?QUxyRVg3SjF0TjZ2bVpMa05PQVdacFZ3SkJxRk9vbmNZN3Q1OVlGZEIrdEg4?=
 =?utf-8?B?bzRkWGVCSE9LbDRFQTRlMGZOWlhQZStDY1MwbmJNZDVOdUdRZjgzT2tpVnpk?=
 =?utf-8?B?SzdFRzdKUTl2bG9xUTF0MGxFNTdYaVMvdS9wRjN4eUduT1NLMjAzNUFkbFJ0?=
 =?utf-8?B?WWx1WXpHOXE2SS8zbVd2a0lrUmd5ZCtMeGUySmNiYlRoTjYrT3FUb2txcHFW?=
 =?utf-8?Q?gv422ooG4mGWtrzM8Q+tNqc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e461f5c-e0ec-4169-5f09-08d9ab58e6f9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 12:34:17.5706
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kxCJZK48A1nd2aE6Rk7fDT49eH/un3BgOmKoKzzZPTq82KdheLjTDh+LRFQZ+ERfDB+GxCcFojOa3xlmJl/3eQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Take into account guest's BAR view and program its p2m accordingly:
> gfn is guest's view of the BAR and mfn is the physical BAR value as set
> up by the host bridge in the hardware domain.

I'm sorry to be picky, but I don't think host bridges set up BARs. What
I think you mean is "as set up by the PCI bus driver in the hardware
domain". Of course this then still leaves out the case of firmware
doing so, and hence the dom0less case.

> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -30,6 +30,10 @@
>  
>  struct map_data {
>      struct domain *d;
> +    /* Start address of the BAR as seen by the guest. */
> +    gfn_t start_gfn;
> +    /* Physical start address of the BAR. */
> +    mfn_t start_mfn;

As of the previous patch you process this on a per-BAR basis. Why don't
you simply put const struct vpci_bar * here? This would e.g. avoid the
need to keep in sync the identical expressions in vpci_process_pending()
and apply_map().

> @@ -37,12 +41,24 @@ static int map_range(unsigned long s, unsigned long e, void *data,
>                       unsigned long *c)
>  {
>      const struct map_data *map = data;
> +    gfn_t start_gfn;

Imo this wants to move into the more narrow scope, ...

>      int rc;
>  
>      for ( ; ; )
>      {
>          unsigned long size = e - s + 1;
>  
> +        /*
> +         * Ranges to be mapped don't always start at the BAR start address, as
> +         * there can be holes or partially consumed ranges. Account for the
> +         * offset of the current address from the BAR start.
> +         */
> +        start_gfn = gfn_add(map->start_gfn, s - mfn_x(map->start_mfn));

... allowing (in principle) for this to become its initializer.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:35:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:35:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227831.394151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo36a-0006Cx-BP; Fri, 19 Nov 2021 12:35:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227831.394151; Fri, 19 Nov 2021 12:35:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo36a-0006Cq-7H; Fri, 19 Nov 2021 12:35:00 +0000
Received: by outflank-mailman (input) for mailman id 227831;
 Fri, 19 Nov 2021 12:34:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo36Y-0006BL-SE
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:34:59 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 19f65ae2-4935-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 13:34:56 +0100 (CET)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJBi8pC026086;
 Fri, 19 Nov 2021 12:34:53 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2054.outbound.protection.outlook.com [104.47.13.54])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cebad0568-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 12:34:53 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB2832.eurprd03.prod.outlook.com (2603:10a6:800:e2::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Fri, 19 Nov
 2021 12:34:48 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:34:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19f65ae2-4935-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=d39SVbgekl35uyOcBtjYEdpAlxUau88CrKKU4Tr0qYJueoiBjQ6J1404HQy/e4HMCg3Rd1txWdfArIJ3xifJDGIZtPhRPAe8IlZ3DDRaWZu+4BY1eBsBq0tyA24Mr6oAch6Ok4hb5LDdSARFeaJ1OdnoKIcez8O7tvNbw4OZwAek/EVQ1SvxMn1j9Gv8a88uWDSNoddmhkng9RQ1vHrLibW+R7E0zahLwdgDHFL50isD6Ou9UbISh0YQHhOzQ/sQRwTwhzR/diarjhu4e+W0iRdPa9wtF5kqWKLrvUazSmgizP04im4wu9S+i4Zcm5fghFrqus3IHFhHxGKG+U+Mcg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wKIzsis8jzC6mlCkpVbSvwn8b751EzjXgVY6Pu1F7Vc=;
 b=CAa8K1F+GjYLdzT6KHil9YtUso2GYhH28Q9OwFYcxZKhOLMwzH4lRfA6DMe9Htf1sTpi91rKZs8MrLmknvryussKpAdCHz5ATFqIyMKsrhnMhY89+Bn3WwUuSHB4Y32ENSL3nQLopToXgOb3TMg0zL1IcKvOFYzPCzverYZmfNkh0dlCOryooF8JWKCHNmjk2CiSkugzh+aL5BSsRv2phECFbr812T9E//h5jUCSfh9o9fNE38SLXMUHHtSzk6cLyscnjYNDaVcYlS7NUYL7MzodsgG5pmFugmlsqj68tm+xq49CeW3ddo5rrQpZlqaOlq8rmA/FzeeRXGIUBUNmZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wKIzsis8jzC6mlCkpVbSvwn8b751EzjXgVY6Pu1F7Vc=;
 b=d0y7HHzCgM8Ov9AD3EVIJZtSLcBdWuBbQ6pqUL0TRA6vajvhOy4wXd+LzAGuvOOtkufRMaOkhGAXnzoH7UkUc1chfSg6H65GyfQTMxEFZfuU0zL9RmUAiXm0WoualFutZKaHHR6lX2bfR0qKsXTBKspaxOeYdZ2cWSTFgXec4b3ECyvsVp66hod7xUrJvINjcO8BNBYZ3X2t55ahAAryI9pMMvxIT4Dzy0ESN/0ASoUfAQkovNgFRTKMcGBPeNOsO9YQbOOTb2D6V1rVlvmJHkHhYgHaQY98cAcLdX8LqRkTdZUGy7dI+ltqWLB0UMlhJ5bWrp1twFsvqiYtQkSIBw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIAgAAFxACAAAoGAIAAAXMAgAABgYCAAAVtAIAAAX+AgAAB1wCAAVryAA==
Date: Fri, 19 Nov 2021 12:34:48 +0000
Message-ID: <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
In-Reply-To: <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c6195499-c03a-4d1f-fc08-08d9ab58f9e9
x-ms-traffictypediagnostic: VI1PR0302MB2832:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB283236A6049062149E15A35DE79C9@VI1PR0302MB2832.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 e8V6lOIAjvRcCrkWjHWnZKEgr9AQhns0jm3Szt7rRgNl2bkvaPaGlL/UICSQDGCNs+i8dQyAS3b/TECO7+PimiRqoOhuWmD6ORt17sD+QQRXjmnZx8n8N/SzLTFot7LhDgaoHoV4yHjITGR9/W+TRi8Ex5fHUoukEXUED5RAzCJuAeyl8GnOIUJ00J9opCMt9pQ77zGC4IQsYvKccQR5AGrnWWtJRdblB5m/EVvNFn7fMxqlALS8ksHtNvOwLcPOJM/Tx8S93X/FqVMChveL/XsOwUu5JJrrrm6Tb5POzCJKnS5w5OPA4AWqOgfV7Lcb9g6mP+ZLRYtK9CFIhMMoPRfQgvhwyqWYpiK4w7IBVoN74oxy7C2KUab4RIZSMQ99cdBSU7Eum4xaGSGjPxbuCewr0jz9bTwfQnkXiF0u7poyFFHPyPAbid1L7NgNG3sdv00VmcNwkWY/j2BJ5noXGVZYk1Rxw6U6hWSH/1TYVbI/qK2iW15IolYiah2y1v6tEyQh0aBOeEP8bY25ZDld6kHCmJwG0kseXpy1T8uT4WW22UaDs/He472yGmv+fnKBiPACggmtbtn6l3pDe0VEVCzd3jCadmK/PKQYUgKv3g9FmFTepyXiQDHkd1TEkS0VEdpHIjOHBjzijmfqnfReGX8fRzgXj3cJPZG/OBe9aglseO/DDo87xkVLpnhDVFjSjZVqVRfoCO9v82dvzwmgOdS8vlVRf4eGJVYOiyzjUKYvuF5MAM0VcGilXcXxGGPA
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(71200400001)(122000001)(2906002)(38070700005)(66556008)(66446008)(6486002)(38100700002)(508600001)(31686004)(8676002)(31696002)(2616005)(7416002)(186003)(5660300002)(64756008)(26005)(4326008)(91956017)(54906003)(76116006)(83380400001)(6512007)(86362001)(66946007)(53546011)(110136005)(8936002)(36756003)(66476007)(316002)(6506007)(107886003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?TnVWV0pJMnhvU1pvS3kzTkpDY1kzSmpsUTJFQkRDNXQ3WkhaUnBUT1BqNkJi?=
 =?utf-8?B?ZlB0d1FQdU95SVpobXVyRXhmUDFlUElFYUQxWThvaXkzdW1tamZXTUd3SVBD?=
 =?utf-8?B?S2ZKMkhXTnVhR3E5ZllGUXdkVFNQUjM0M1VLTHFnVXFSWU1IeHRNcEwyeTJh?=
 =?utf-8?B?SSsvNDh5TW1PMk9aRXJsZ3J3NDFQWFgvMEw3SVhWVkVaQ0FoWlRSUFVxdjlv?=
 =?utf-8?B?Ty9FVzF2TjdMNFY4dzhDaVRZcUpycjRkSnA3eFZjYWpJbDdOcXVhNlQ4RXl1?=
 =?utf-8?B?clFXWnhBeUlubkFzNCt1SjRWQW5PM3BLdWRrLzBKSVlDS0Vva0RrOXBCVmov?=
 =?utf-8?B?eWpnc1RteTIzdWxLbWEzc3kzYWFyMmpETWtINStMQlBjQ294VkV4bkxja2VC?=
 =?utf-8?B?TTBmT04yeHNDUzcxRmFGaW1CcERhSzhRTmlwa3Bxdm4ySDFvZnRWOWlmRXRS?=
 =?utf-8?B?MDlXdGkvckU5TzE1aE5VUDdyRkJtRlhOVTM3VEUxTUZzNnZmeFk0cXRYZTFw?=
 =?utf-8?B?cmJXOXJpVDZaS0VjMVIzYWtzdk93eFZwODI3L01jVjZYZkxtaEk0N1o0ejhB?=
 =?utf-8?B?QWtNVkUzaExyWGsvdllEb0x6R2pZeGx6aWRFcVJsS1RNRFZ0VXZBa1dKYnpK?=
 =?utf-8?B?VGsvZ0tSa0FOSmY5cWpJcUc3M05zS0Q2MEswQ0lOWTgyR2ZZM2pzaEd3S2lZ?=
 =?utf-8?B?dGo4emNUbVhSa21CZmFqTzdlUGI4S1RPUEg5eVBJOUdweFppcDNKSDZsK3dj?=
 =?utf-8?B?bE54WW5IdzJQRGNmQnR5N3l4TGZxSTlVWWlrYVB1cG12bGF2RHBuT0IvU0lB?=
 =?utf-8?B?cFpJTWxUZ0hTakV4YU9oSzNIVDJVM3kvSGhUdkc4dWtkNGpTVytOUUkzMExG?=
 =?utf-8?B?cFBUZjA0QmdoWEladnllYnVVaXNsblQrUjFId2JUdG91T3NXUHhvb0ovWnNn?=
 =?utf-8?B?QTI4TUhpZDBrQk9jbklxTkhqV3cwS09FNERWMlNuQ0w3OXcvdzg1dDdBb2Ra?=
 =?utf-8?B?OEhTYlIzZ1cwS3JNSGdTbVEwUlBKN2NuaWlISjhLM0pydW1SSHpFWU50Wkk4?=
 =?utf-8?B?Q04yNFNoY1pnMktZQTA5eGNJdjRSdGxwUkV1b3JKVCtJOHM1ZFhXV3BFRDdx?=
 =?utf-8?B?bEtiZVh2czdzZ2ZxdzRUKzFha0hoTmhXYTA1dFhuVmxGTHRtcUNFMnNBQUdw?=
 =?utf-8?B?SzRSWnYzd2E1TkY1V2xUU1ZEcDRldmtwWGpyNlBtdlRSRWlEcWkyd0dvbVJB?=
 =?utf-8?B?ZTN2amhtVjgxM0NZZ24vcjZzSnRNZ3hXbFQ2MFVUYWl3SmlzRndhVzlZcHhE?=
 =?utf-8?B?UmJKZmdVcXhjT2V1cXg2dXE1VkJHcVJ4QmxUbDlocWZNOEM4ajM5dUNTWHM1?=
 =?utf-8?B?MXlyYXNWNXpIQ0RIY01obGdySkdoU1M0dm5FZlg0V2J6YXVVdnRhTGpmZ29R?=
 =?utf-8?B?VVNkSUxHTUYrc2xRYVdZZWlnc2c2aGp2UXJHbWZtVU1KQll1c2I0ODVHcmxM?=
 =?utf-8?B?NTd3djNEcEJlVnRQcEtnYzNnRjJwb21pYU1LWmxROTl1azBaVFgxaC95NnR0?=
 =?utf-8?B?TllrM1FwZllGdGh4dUJIK1dtZXRHd29vL2gya2hGZm9oWVY3NVRtaTkyQWdy?=
 =?utf-8?B?dC8rZ3NaTzVNWjdJMk1XckdOWmlzdmxGVmd1Y1pON2NGczVSWmtYc2xzVFNw?=
 =?utf-8?B?ZkYyd2lTZEJvMCt4WjBNMnhaR3MySlZBNVpMeWx0UVgrM2s2TDVEY2FKVVBk?=
 =?utf-8?B?WlRzSWkvR1RtaFZxSXVyTTFYY1lzVmJMTDV3dS9Xelk3NURQVnpXV0FnTzMz?=
 =?utf-8?B?ZlV2bXlHaTNSdjRlVnlYRXNQUXdtV1ZyYlVncnBqR0NKbmxtTE1ST1V2UG96?=
 =?utf-8?B?WlBGWko2K3hkOU9TRElTMVdYMlJtRjZmT1RSb09qTmtpNkp3QldSaWs3YU5t?=
 =?utf-8?B?cmFWSjN3U1pqcUdOeElSUldFajhIM3hIMVhsUWRYNEpzMU41T2FiK2JGVmhB?=
 =?utf-8?B?dW9taDBtSGdlYWhBcytBeERmY3BnOVBxK0l6d1N6VktUNzB2WEhkckNLRXhZ?=
 =?utf-8?B?N2JSQThXcG54NnQ0ZllFWVQyVktGRXkvUFNaM2dPSGFhN3FJa3BVTjVCd1hB?=
 =?utf-8?B?YlBlaGNMRmNRZHd4cWE5WHludzhnRVVoeDJPM2JqbUsycnIyUzJBTElhdlMy?=
 =?utf-8?B?cFN2T0hNTlpGRjFVcUhuRlh1SjVnLzNpQlVTRy9QNURwSjEwY0tGcUVPTklk?=
 =?utf-8?B?b0FPNU5FbllhZEVKWTRYR0dQYS96V29lUktjQXVocUtZcnBOUHNIU3VrSmZZ?=
 =?utf-8?B?OGovWW8yVkU5Ty9xYlIxYTkxK042bW04bUhRSllCTjdEeEd5SjdzZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6CEE5BD38A36F34AAACE4E0ECFE2C095@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c6195499-c03a-4d1f-fc08-08d9ab58f9e9
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 12:34:48.6465
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: C+ortBaA3nJqQpVzDxmcJpFKwBLI//T096f1YbBpWXlm3xTT7KKYBV+giv3l0yL0REP5c3qiNco/hfbyvjMjx2x/Nh8fbqwJsUFFyYs0ELGCjffwYZj01TT13wi10Onx
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2832
X-Proofpoint-GUID: mxAqZ-jRAAuFiCeNNFnYiWbUNq1FF5fb
X-Proofpoint-ORIG-GUID: mxAqZ-jRAAuFiCeNNFnYiWbUNq1FF5fb
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015
 lowpriorityscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 malwarescore=0
 impostorscore=0 suspectscore=0 bulkscore=0 priorityscore=1501 spamscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190070

SGksIFJvZ2VyLCBKYW4hDQoNCk9uIDE4LjExLjIxIDE3OjUzLCBKYW4gQmV1bGljaCB3cm90ZToN
Cj4gT24gMTguMTEuMjAyMSAxNjo0NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+
PiBPbiAxOC4xMS4yMSAxNzo0MSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTguMTEuMjAy
MSAxNjoyMSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IE9uIDE4LjExLjIx
IDE3OjE2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+ICAgICBGb3IgdGhlIG1vbWVudCBJIGNh
bid0IGhlbHAgdGhpbmtpbmcgdGhhdCBkcmFpbmluZyB3b3VsZA0KPj4+Pj4gYmUgcHJlZmVyYWJs
ZSBvdmVyIGNhbmNlbGluZy4NCj4+Pj4gR2l2ZW4gdGhhdCBjYW5jZWxsYXRpb24gaXMgZ29pbmcg
dG8gaGFwcGVuIG9uIGVycm9yIHBhdGggb3INCj4+Pj4gb24gZGV2aWNlIGRlLWFzc2lnbi9yZW1v
dmUgSSB0aGluayB0aGlzIGNhbiBiZSBhY2NlcHRhYmxlLg0KPj4+PiBBbnkgcmVhc29uIHdoeSBu
b3Q/DQo+Pj4gSXQgd291bGQgc2VlbSB0byBtZSB0aGF0IHRoZSBjb3JyZWN0bmVzcyBvZiBhIGRy
YWluaW5nIGFwcHJvYWNoIGlzDQo+Pj4gZ29pbmcgdG8gYmUgZWFzaWVyIHRvIHByb3ZlIHRoYW4g
dGhhdCBvZiBhIGNhbmNlbGluZyBvbmUsIHdoZXJlIEkNCj4+PiBleHBlY3QgcmFjZXMgdG8gYmUg
YSBiaWdnZXIgcmlzay4gRXNwZWNpYWxseSBzb21ldGhpbmcgdGhhdCBnZXRzDQo+Pj4gZXhlY3V0
ZWQgaW5mcmVxdWVudGx5LCBpZiBldmVyIChlcnJvciBwYXRocyBpbiBwYXJ0aWN1bGFyKSwga25v
d2luZw0KPj4+IHRoaW5ncyBhcmUgd2VsbCBmcm9tIHRlc3RpbmcgaXNuJ3QgdHlwaWNhbGx5IHBv
c3NpYmxlLg0KPj4gQ291bGQgeW91IHBsZWFzZSB0aGVuIGdpdmUgbWUgYSBoaW50IGhvdyB0byBk
byB0aGF0Og0KPj4gMS4gV2UgaGF2ZSBzY2hlZHVsZWQgU09GVElSUSBvbiB2Q1BVMCBhbmQgaXQg
aXMgYWJvdXQgdG8gdG91Y2ggcGRldi0+dnBjaQ0KPj4gMi4gV2UgaGF2ZSBkZS1hc3NpZ24vcmVt
b3ZlIG9uIHZDUFUxDQo+Pg0KPj4gSG93IGRvIHdlIGRyYWluIHRoYXQ/IERvIHlvdSBtZWFuIHNv
bWUgYXRvbWljIHZhcmlhYmxlIHRvIGJlDQo+PiB1c2VkIGluIHZwY2lfcHJvY2Vzc19wZW5kaW5n
IHRvIGZsYWcgaXQgaXMgcnVubmluZyBhbmQgZGUtYXNzaWduL3JlbW92ZQ0KPj4gbmVlZHMgdG8g
d2FpdCBhbmQgc3Bpbm5pbmcgY2hlY2tpbmcgdGhhdD8NCj4gRmlyc3Qgb2YgYWxsIGxldCdzIHBs
ZWFzZSBrZWVwIHJlbW92ZSBhbmQgZGUtYXNzaWduIHNlcGFyYXRlLiBJIHRoaW5rIHdlDQo+IGhh
dmUgbGFyZ2VseSByZWFjaGVkIGFncmVlbWVudCB0aGF0IHJlbW92ZSBtYXkgbmVlZCBoYW5kbGlu
ZyBkaWZmZXJlbnRseSwNCj4gZm9yIGJlaW5nIGEgRG9tMC1vbmx5IG9wZXJhdGlvbi4NCj4NCj4g
QXMgdG8gZHJhaW5pbmcgZHVyaW5nIGRlLWFzc2lnbjogSSBkaWQgc3VnZ2VzdCBiZWZvcmUgdGhh
dCByZW1vdmluZyB0aGUNCj4gcmVnaXN0ZXIgaGFuZGxpbmcgaG9va3MgZmlyc3Qgd291bGQgZ3Vh
cmFudGVlIG5vIG5ldyByZXF1ZXN0cyB0byBhcHBlYXIuDQo+IFRoZW4gaXQgc2hvdWxkIGJlIG1l
cmVseSBhIG1hdHRlciBvZiB1c2luZyBoeXBlcmNhbGwgY29udGludWF0aW9ucyB1bnRpbA0KPiB0
aGUgcmVzcGVjdGl2ZSBkb21haW4gaGFzIG5vIHBlbmRpbmcgcmVxdWVzdHMgYW55bW9yZSBmb3Ig
dGhlIGRldmljZSBpbg0KPiBxdWVzdGlvbi4gU29tZSBsb2NraW5nIChvciBsb2NrIGJhcnJpZXIp
IG1heSBvZiBjb3Vyc2UgYmUgbmVlZGVkIHRvDQo+IG1ha2Ugc3VyZSBhbm90aGVyIENQVSBpc24n
dCBqdXN0IGFib3V0IHRvIHBlbmQgYSBuZXcgcmVxdWVzdC4NCj4NCj4gSmFuDQo+DQo+DQpUb28g
bG9uZywgYnV0IHBsZWFzZSByZWFkLg0KDQpUaGUgYmVsb3cgaXMgc29tZSBzaW1wbGlmaWVkIGFu
YWx5c2lzIG9mIHdoYXQgaXMgaGFwcGVuaW5nIHdpdGgNCnJlc3BlY3QgdG8gZGVmZXJyZWQgbWFw
cGluZy4gRmlyc3Qgd2Ugc3RhcnQgZnJvbSBsb29raW5nIGF0IHdoYXQNCmh5cGVyY2FscyBhcmUg
dXNlZCB3aGljaCBtYXkgcnVuIGluIHBhcmFsbGVsIHdpdGggdnBjaV9wcm9jZXNzX3BlbmRpbmcs
DQp3aGljaCBsb2NrIHRoZXkgaG9sZDoNCg0KMS4gZG9fcGh5c2Rldl9vcChQSFlTREVWT1BfcGNp
X2RldmljZV9hZGQpOiBmYWlsdXJlIGR1cmluZyBQSFlTREVWT1BfcGNpX2RldmljZV9hZGQNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCiDCoCBwY2lfcGh5c2Rldl9vcDogPC0gbm8gaHlwZXJjYWxs
X2NyZWF0ZV9jb250aW51YXRpb24NCiDCoMKgwqAgcGNpX2FkZF9kZXZpY2XCoCA8LSBwY2lkZXZz
X2xvY2soKQ0KIMKgwqDCoMKgwqAgdnBjaV9hZGRfaGFuZGxlcnMNCiDCoMKgwqDCoMKgwqDCoCBp
bml0X2JhcnMNCiDCoMKgwqDCoMKgwqDCoMKgwqAgY21kID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYt
PnNiZGYsIFBDSV9DT01NQU5EKTsNCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1vZGlmeV9iYXJz
IDwtIGlmIGNtZCAmIFBDSV9DT01NQU5EX01FTU9SWQ0KIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHN0cnVjdCByYW5nZXNldCAqbWVtID0gcmFuZ2VzZXRfbmV3KE5VTEwsIE5VTEwsIDApOw0K
DQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCBzeXN0ZW1fc3RhdGUgPCBTWVNfU1RB
VEVfYWN0aXZlICkgPC0gRG9tMCBpcyBiZWluZyBjcmVhdGVkDQogwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgcmV0dXJuIGFwcGx5X21hcChwZGV2LT5kb21haW4sIHBkZXYsIG1lbSwg
Y21kKTsNCg0KIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlZmVyX21hcChkZXYtPmRvbWFp
biwgZGV2LCBtZW0sIGNtZCwgcm9tX29ubHkpOyA8IERvbTAgaXMgcnVubmluZw0KIMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdXJyLT52cGNpLnBkZXYgPSBwZGV2Ow0KIMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdXJyLT52cGNpLm1lbSA9IG1lbTsNCg0KIMKgwqDCoMKg
wqAgcmV0ID0gaW9tbXVfYWRkX2RldmljZShwZGV2KTsgPC0gRkFJTA0KIMKgwqDCoMKgwqAgaWYg
KCByZXQgKQ0KIMKgwqDCoMKgwqDCoMKgwqDCoCB2cGNpX3JlbW92ZV9kZXZpY2UNCiDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHJlbW92ZSB2UENJIHJlZ2lzdGVyIGhhbmRsZXJzDQogwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCB4ZnJlZShwZGV2LT52cGNpKTsNCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHBkZXYtPnZwY2kgPSBOVUxMOyA8LSB0aGlzIHdpbGwgY3Jhc2ggdnBjaV9wcm9jZXNzX3BlbmRp
bmcgaWYgaXQgd2FzDQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNjaGVkdWxlZCBhbmQgeWV0IHRvIHJ1bg0KDQoyLiBk
b19waHlzZGV2X29wKFBIWVNERVZPUF9wY2lfZGV2aWNlX3JlbW92ZSkNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCiDCoCBwY2lfcGh5c2Rldl9vcDogPC0gbm8gaHlwZXJjYWxsX2NyZWF0ZV9jb250
aW51YXRpb24NCiDCoMKgwqAgcGNpX3JlbW92ZV9kZXZpY2UgPC0gcGNpZGV2c19sb2NrKCkNCiDC
oMKgwqDCoMKgIHZwY2lfcmVtb3ZlX2RldmljZQ0KIMKgwqDCoMKgwqDCoMKgIHBkZXYtPnZwY2kg
PSBOVUxMOyA8LSB0aGlzIHdpbGwgY3Jhc2ggdnBjaV9wcm9jZXNzX3BlbmRpbmcgaWYgaXQgd2Fz
DQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCBzY2hlZHVsZWQgYW5kIHlldCB0byBydW4NCg0KMy4gaW9tbXVfZG9fcGNpX2RvbWN0bChY
RU5fRE9NQ1RMX2Fzc2lnbl9kZXZpY2UpDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpjYXNlIFhF
Tl9ET01DVExfYXNzaWduX2RldmljZSA8LSBwY2lkZXZzX2xvY2soKTsNCiDCoCByZXQgPSBhc3Np
Z25fZGV2aWNlKGQsIHNlZywgYnVzLCBkZXZmbiwgZmxhZ3MpOw0KIMKgIGlmICggcmV0ID09IC1F
UkVTVEFSVCApDQogwqDCoMKgIHJldCA9IGh5cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKF9f
SFlQRVJWSVNPUl9kb21jdGwsICJoIiwgdV9kb21jdGwpOw0KDQoNCjQuIGlvbW11X2RvX3BjaV9k
b21jdGwoWEVOX0RPTUNUTF9kZWFzc2lnbl9kZXZpY2UpIDwtIHBjaWRldnNfbG9jaygpOw0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KY2FzZSBYRU5fRE9NQ1RMX2RlYXNzaWduX2RldmljZTogPC0g
bm8gaHlwZXJjYWxsX2NyZWF0ZV9jb250aW51YXRpb24NCiDCoCByZXQgPSBkZWFzc2lnbl9kZXZp
Y2UoZCwgc2VnLCBidXMsIGRldmZuKTsNCg0KDQo1LiB2UENJIE1NSU8gdHJhcCBmb3IgUENJX0NP
TU1BTkQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCnZwY2lfbW1pb197cmVhZHx3cml0ZX0NCiDC
oCB2cGNpX2VjYW1fe3JlYWR8d3JpdGV9DQogwqDCoMKgIHZwY2lfe3JlYWR8d3JpdGV9IDwtIE5P
IGxvY2tpbmcgeWV0DQogwqDCoMKgwqDCoCBwZGV2ID0gcGNpX2dldF9wZGV2X2J5X2RvbWFpbihk
LCBzYmRmLnNlZywgc2JkZi5idXMsIHNiZGYuZGV2Zm4pOw0KIMKgwqDCoMKgwqAgc3Bpbl9sb2Nr
KCZwZGV2LT52cGNpLT5sb2NrKTsNCiDCoMKgwqDCoMKgwqDCoCBjbWRfd3JpdGUNCiDCoMKgwqDC
oMKgwqDCoMKgwqAgbW9kaWZ5X2JhcnMNCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlZmVyX21h
cA0KDQo2LiBTb2Z0SVJRIHByb2Nlc3NpbmcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmh2bV9k
b19yZXN1bWUNCiDCoCB2Y3B1X2lvcmVxX2hhbmRsZV9jb21wbGV0aW9uDQogwqDCoMKgIHZwY2lf
cHJvY2Vzc19wZW5kaW5nDQogwqDCoMKgwqDCoCBpZiAoIHYtPnZwY2kubWVtICkNCiDCoMKgwqDC
oMKgwqDCoCByYyA9IHJhbmdlc2V0X2NvbnN1bWVfcmFuZ2VzKHYtPnZwY2kubWVtLCBtYXBfcmFu
Z2UsICZkYXRhKTsNCiDCoMKgwqDCoMKgwqDCoCBpZiAoIHJjID09IC1FUkVTVEFSVCApDQogwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gdHJ1ZTsgPC0gcmUtc2NoZWR1bGluZw0KDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQogwqDCoMKgwqDCoMKgwqAgc3Bpbl9sb2NrKCZ2LT52cGNpLnBkZXYtPnZw
Y2ktPmxvY2spOyA8LSB2LT52cGNpLnBkZXYtPnZwY2kgY2FuIGJlIE5VTEwNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCiDCoMKgwqDCoMKgwqDCoCBzcGluX3VubG9jaygmdi0+dnBjaS5wZGV2LT52cGNpLT5s
b2NrKTsNCiDCoMKgwqDCoMKgwqDCoCB2LT52cGNpLm1lbSA9IE5VTEw7DQogwqDCoMKgwqDCoCBp
ZiAoIHJjICkgPC0gcmMgaXMgZnJvbSByYW5nZXNldF9jb25zdW1lX3Jhbmdlcw0KIMKgwqDCoMKg
wqDCoMKgIHZwY2lfcmVtb3ZlX2RldmljZSA8LSB0aGlzIGlzIGEgQlVHIGFzIGl0IGlzIHBvdGVu
dGlhbGx5IHBvc3NpYmxlIHRoYXQNCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZwY2lfcHJvY2Vzc19wZW5kaW5nIGlzIHJ1bm5pbmcg
b24gb3RoZXIgdkNQVQ0KDQpTbywgZnJvbSB0aGUgYWJvdmUgaXQgaXMgY2xlYXJseSBzZWVuIHRo
YXQgaXQgbWlnaHQgYmUgdGhhdCB0aGVyZSBpcyBhDQpQQ0lfQ09NTUFORCdzIHdyaXRlIHRyaWdn
ZXJlZCBtYXBwaW5nIGlzIGhhcHBlbmluZyBvbiBvdGhlciB2Q1BVIGluIHBhcmFsbGVsDQp3aXRo
IGEgaHlwZXJjYWxsLg0KDQpTb21lIGFuYWx5c2lzIG9uIHRoZSBoeXBlcmNhbGxzIHdpdGggcmVz
cGVjdCB0byBkb21haW5zIHdoaWNoIGFyZSBlbGlnaWJsZSB0YXJnZXRzLg0KMS4gRG9tMCAoaGFy
ZHdhcmUgZG9tYWluKSBvbmx5OiBQSFlTREVWT1BfcGNpX2RldmljZV9hZGQsIFBIWVNERVZPUF9w
Y2lfZGV2aWNlX3JlbW92ZQ0KMi4gQW55IGRvbWFpbjogWEVOX0RPTUNUTF9hc3NpZ25fZGV2aWNl
LCBYRU5fRE9NQ1RMX2RlYXNzaWduX2RldmljZQ0KDQpQb3NzaWJsZSBjcmFzaCBwYXRocw0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KMS4gRmFpbHVyZSBpbiBQSFlTREVWT1BfcGNpX2RldmljZV9h
ZGQgYWZ0ZXIgZGVmZXJfbWFwIG1heSBtYWtlDQp2cGNpX3Byb2Nlc3NfcGVuZGluZyBjcmFzaCBi
ZWNhdXNlIG9mIHBkZXYtPnZwY2kgPT0gTlVMTA0KMi4gdnBjaV9wcm9jZXNzX3BlbmRpbmcgb24g
b3RoZXIgdkNQVSBtYXkgY3Jhc2ggaWYgcnVucyBpbiBwYXJhbGxlbCB3aXRoIGl0c2VsZg0KYmVj
YXVzZSBvZiB2cGNpX3JlbW92ZV9kZXZpY2UgbWF5IGJlIGNhbGxlZA0KMy4gQ3Jhc2ggaW4gdnBj
aV9tbWlvX3tyZWFkfHdyaXRlfSBhZnRlciBQSFlTREVWT1BfcGNpX2RldmljZV9yZW1vdmUNCnZw
Y2lfcmVtb3ZlX2RldmljZSBtYWtlcyBwZGV2LT52cGNpID09IE5VTEwNCjQuIEJvdGggWEVOX0RP
TUNUTF9hc3NpZ25fZGV2aWNlIGFuZCBYRU5fRE9NQ1RMX2RlYXNzaWduX2RldmljZSBzZWVtIHRv
IGJlDQp1bmFmZmVjdGVkLg0KDQpTeW5jaHJvbml6YXRpb24gaXMgbmVlZGVkIGJldHdlZW46DQog
wqAtIHZwY2lfcmVtb3ZlX2RldmljZQ0KIMKgLSB2cGNpX3Byb2Nlc3NfcGVuZGluZw0KIMKgLSB2
cGNpX21taW9fe3JlYWR8d3JpdGV9DQoNClBvc3NpYmxlIGxvY2tpbmcgYW5kIG90aGVyIHdvcmsg
bmVlZGVkOg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCjEuIHBj
aWRldnNfe2xvY2t8dW5sb2NrfSBpcyB0b28gaGVhdnkgYW5kIGlzIHBlci1ob3N0DQoyLiBwZGV2
LT52cGNpLT5sb2NrIGNhbm5vdCBiZSB1c2VkIGFzIHZwY2kgaXMgZnJlZWQgYnkgdnBjaV9yZW1v
dmVfZGV2aWNlDQozLiBXZSBtYXkgd2FudCBhIGRlZGljYXRlZCBwZXItZG9tYWluIHJ3IGxvY2sg
dG8gYmUgaW1wbGVtZW50ZWQ6DQoNCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQu
aCBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oDQppbmRleCAyODE0NmVlNDA0ZTYuLmViZjA3MTg5
M2IyMSAxMDA2NDQNCi0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oDQorKysgYi94ZW4vaW5j
bHVkZS94ZW4vc2NoZWQuaA0KQEAgLTQ0NCw2ICs0NDQsNyBAQCBzdHJ1Y3QgZG9tYWluDQoNCiDC
oCNpZmRlZiBDT05GSUdfSEFTX1BDSQ0KIMKgwqDCoMKgIHN0cnVjdCBsaXN0X2hlYWQgcGRldl9s
aXN0Ow0KK8KgwqDCoCByd2xvY2tfdCB2cGNpX3J3bG9jazsNCivCoMKgwqAgYm9vbCB2cGNpX3Rl
cm1pbmF0aW5nOyA8LSBhdG9taWM/DQogwqAjZW5kaWYNCnRoZW4gdnBjaV9yZW1vdmVfZGV2aWNl
IGlzIGEgd3JpdGVyIChjb2xkIHBhdGgpIGFuZCB2cGNpX3Byb2Nlc3NfcGVuZGluZyBhbmQNCnZw
Y2lfbW1pb197cmVhZHx3cml0ZX0gYXJlIHJlYWRlcnMgKGhvdCBwYXRoKS4NCg0KZG9fcGh5c2Rl
dl9vcChQSFlTREVWT1BfcGNpX2RldmljZV9yZW1vdmUpIHdpbGwgbmVlZCBoeXBlcmNhbGxfY3Jl
YXRlX2NvbnRpbnVhdGlvbg0KdG8gYmUgaW1wbGVtZW50ZWQsIHNvIHdoZW4gcmUtc3RhcnQgcmVt
b3ZhbCBpZiBuZWVkIGJlOg0KDQp2cGNpX3JlbW92ZV9kZXZpY2UoKQ0Kew0KIMKgIGQtPnZwY2lf
dGVybWluYXRpbmcgPSB0cnVlOw0KIMKgIHJlbW92ZSB2UENJIHJlZ2lzdGVyIGhhbmRsZXJzIDwt
IHRoaXMgd2lsbCBjdXQgb2ZmIFBDSV9DT01NQU5EIGVtdWxhdGlvbiBhbW9uZyBvdGhlcnMNCiDC
oCBpZiAoICF3cml0ZV90cnlsb2NrKGQtPnZwY2lfcndsb2NrKSApDQogwqDCoMKgIHJldHVybiAt
RVJFU1RBUlQ7DQogwqAgeGZyZWUocGRldi0+dnBjaSk7DQogwqAgcGRldi0+dnBjaSA9IE5VTEw7
DQp9DQoNClRoZW4gdGhpcyBkLT52cGNpX3J3bG9jayBiZWNvbWVzIGEgZGVkaWNhdGVkIHZwY2kg
cGVyLWRvbWFpbiBsb2NrIGZvcg0Kb3RoZXIgb3BlcmF0aW9ucyB3aGljaCBtYXkgcmVxdWlyZSBp
dCwgZS5nLiB2aXJ0dWFsIGJ1cyB0b3BvbG9neSBjYW4NCnVzZSBpdCB3aGVuIGFzc2lnbmluZyB2
U0JERiBldGMuDQoNCjQuIHZwY2lfcmVtb3ZlX2RldmljZSBuZWVkcyB0byBiZSByZW1vdmVkIGZy
b20gdnBjaV9wcm9jZXNzX3BlbmRpbmcNCmFuZCBkbyBub3RoaW5nIGZvciBEb20wIGFuZCBjcmFz
aCBEb21VIG90aGVyd2lzZToNCg0KaWYgKCByYyApDQp7DQogwqAgLyoNCiDCoMKgICogRklYTUU6
IGluIGNhc2Ugb2YgZmFpbHVyZSByZW1vdmUgdGhlIGRldmljZSBmcm9tIHRoZSBkb21haW4uDQog
wqDCoCAqIE5vdGUgdGhhdCB0aGVyZSBtaWdodCBzdGlsbCBiZSBsZWZ0b3ZlciBtYXBwaW5ncy4g
V2hpbGUgdGhpcyBpcw0KIMKgwqAgKiBzYWZlIGZvciBEb20wLCBmb3IgRG9tVXMgdGhlIGRvbWFp
biBuZWVkcyB0byBiZSBraWxsZWQgaW4gb3JkZXINCiDCoMKgICogdG8gYXZvaWQgbGVha2luZyBz
dGFsZSBwMm0gbWFwcGluZ3Mgb24gZmFpbHVyZS4NCiDCoMKgICovDQogwqAgaWYgKCAhaXNfaGFy
ZHdhcmVfZG9tYWluKHYtPmRvbWFpbikgKQ0KIMKgwqDCoCBkb21haW5fY3Jhc2godi0+ZG9tYWlu
KTsNCg0KSSBkbyBob3BlIHdlIGNhbiBmaW5hbGx5IGNvbWUgdXAgd2l0aCBzb21lIGRlY2lzaW9u
IHdoaWNoIEkgY2FuIGltcGxlbWVudC4uLg0KDQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:37:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:37:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227840.394162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo38v-0006yM-S0; Fri, 19 Nov 2021 12:37:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227840.394162; Fri, 19 Nov 2021 12:37:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo38v-0006yF-OC; Fri, 19 Nov 2021 12:37:25 +0000
Received: by outflank-mailman (input) for mailman id 227840;
 Fri, 19 Nov 2021 12:37:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo38u-0006y7-4K
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:37:24 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70f601cc-4935-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 13:37:22 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2055.outbound.protection.outlook.com [104.47.4.55]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-10-XhuVAolIPF6forP2NIyvTA-1; Fri, 19 Nov 2021 13:37:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2704.eurprd04.prod.outlook.com (2603:10a6:800:b5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 12:37:18 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:37:18 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR0P281CA0006.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.10 via Frontend Transport; Fri, 19 Nov 2021 12:37:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70f601cc-4935-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637325442;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=BXC1/GC/jA/j0M97kfJdHFpgJgEnLQOwgy1CPCLmSMQ=;
	b=OtgwN/1JjHXjvfhfumO3YvatZ9y2kxlX7eLI221VMy0GHbAv3qYYXJ8JccvttwyTiiSehQ
	Q2XRZxp47pL0fnMfImAsJ69U7gicBnfrdZM7y+BqZO2JO7X6lQV5i5LvEtPke+Tmt+HEYf
	jY4wfApTza9KLr/ETh1CeDvXGg+9TYs=
X-MC-Unique: XhuVAolIPF6forP2NIyvTA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cZ0eCTCZuOX+NFkPudbpSkzdJ/nJCAzNThDKEQnJAiUeDaFnMPSOdFEKPMrFlEx3fnjsucLE/PnAWt8lGV7jA9P73jW6w6Td2vJ6Ktx/DWSfcDWD2n53eQEPFoHdLqyhK+pCIGCwccdr9bSxBay3TfpifF3XYd63sFhoFwU1MXrdw4vASf+VWD+TONgn4eOTaab1ZX+CeIxVDtmS4DopviQO45dwsEeuNRssQlOFtzMr3b89H0q6sMA13KU2AXcnjR6g3xxW/wmFbGQQ+UCuR6hm2kYmLeUKk7W7JbveAxZexEmKG+c8Feb76CwNvkHUL0127mFeBjfLt7uIHcsUpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BXC1/GC/jA/j0M97kfJdHFpgJgEnLQOwgy1CPCLmSMQ=;
 b=HBFxbd2sguaZm6NCY4Oz41gRwQFG6ZM4Ex7hixBJrYtR0KLUPLm6fXCo+x1z4dOTWtjaR01g8NeKzOqifmpw0j8LfEQHBuh6Q2IHiALu48BS5x35mpWfmq0vhcEHGhJ4SsKYU/VBLlhznlgywaWYFLnp/eeXiaVFqDvGI47HOzp4sz9QVkW+3jSKRvb6jP3K9cEuqz75gqL891itS/JPr3iUyhbf7hLctBJYyByZQShRcBpoxK020UMFZnLXwt8xWK7j1l+E7u3A2qn2zNItjUgBI3h2O1XJbNsOR4lqoTsQcK28LP45CydOIB7pKP7hME3A76oc4/WtXfkFeZwcNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
Date: Fri, 19 Nov 2021 13:37:17 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
 <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0006.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:15::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5103f2ff-549c-4d56-3aea-08d9ab59532e
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2704:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2704971F8E0CFFA32F821EB8B39C9@VI1PR0402MB2704.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	J5CXhMZJWIsoGDyf/vMAly6bmJ2qn8Pr7R+45DCMi2dOrLTguTTd/R+wR7aCLbIbSi0aILhhKehxopMz4vg0cJxdJTJORW/1VXf6GCAHQwlIX36t+gsA3Jeb/71e2O49V1e2YeuOzG8l5KjeeMa5/vhDf4zNsqER1qK7GA7E2QFIZEv2AeoXwolpOdggXiQSczqEvPY/qUpDPVPMfG7Sl60bgiXiuyu3zSIsV4MV5UEGQA3OXQXuN7ZxMoa9ABXee8i/ptnKT3MAhJW3IXRRN4eKtmvxHbSV60OV7M8oUleUftD4Vm25x1PjQsTWhsMORS9xa7qDtsjrGJcTH5H4z4ssbLKHwZv10VYKOvG3Beygxtw6OCVbDLYgz2HJ8CQr9PxHS29YzorkTYbCSRyEwr0RyLRyKz+XkJcWtnoicfYo+n157PSYSq+5zsLAqjogKtALqA5YDDkzBlB1mPI3kCBDv7D1zJlAuSYJW8QD9wdUFqtZJ5hCNu1MCF1yu0AA76/ly+GziV2EITVjdpBXsZfNEtCaNYiJMdsJ2d/1Cqx2z7NoCZY9c/u9iy9DMu9BPtWL1iTH0AjW86sEJeQmEjEteYWVwxPiRUGaJoq8HgNh1+teDImmIJEEhq6iX4Al3hH07QfHLLztpa+ED+Hzxy0tILFBtpleo+lTgZ4PA9Yei/bKX3FSJMh/VrnlJOXQUmkOZ+l+2MFulEs5xJt7JNmwGJECF2PafJQDD1vYa5EW/+qODWgNxFon+SfxTEWM
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(956004)(4326008)(5660300002)(86362001)(54906003)(6916009)(316002)(7416002)(66946007)(16576012)(26005)(186003)(8936002)(6486002)(2906002)(31696002)(38100700002)(36756003)(66476007)(66556008)(8676002)(508600001)(53546011)(31686004)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TmVtbTZ6cXdTVnFDYnQrSGRWWS95cEdVbDJDcHY4d08xaVc1c21UZGkvZHNV?=
 =?utf-8?B?d2dkYlA2cTVaYXg4LzF5ZHFiOGpqWHgvUDluZW5vc3NpUVY4OVp3UWF1dHpu?=
 =?utf-8?B?R28vbllNc2xwTXhYdGtXd0hSakljVlI4SWVIZzRrR1Vqd2l4dUd3YjVMWU9w?=
 =?utf-8?B?bk5sYVE0eEtSYWs4dzBuanVKQkhzUVdLQWVxT3Y1UVVYcHUzdGE3elZ5b0Jv?=
 =?utf-8?B?MzZzSUViQmY4eGkvZS8zVUpqd2hMWm11SFFoYjQzQjFseEVSNkIvK3pLOHlo?=
 =?utf-8?B?L3daWFpzL2gycFU3eGNSSjR5RWMwNktUd3JzeVl0d0Z0aW8vdGVyTHNpQyt6?=
 =?utf-8?B?OFMxWHIxNFppZUs2VGZSSHlpeWdiR0VQZzh0bmVQQ1MrWGhoTkMxck81bW11?=
 =?utf-8?B?eVgvMTlISkR0NzFDaUFhL3hTMFAzTzBsMkU2VmVGTHg4L3E2cDREZlkxays4?=
 =?utf-8?B?enppRUEyYlltSk9yb1Nxem1pRmhlT1JsandISkpHdVhFT3RDN08wSFhIZytN?=
 =?utf-8?B?TkVXRWFyZGw4Y1VyZDFqbUpLVytxNm5OeVA0UDhWM1Fodk90T3paUG1hRkNB?=
 =?utf-8?B?a1BCS3daQ01WQXlHS21XYjNGV2N6UjBUTjQ5VVcxcldGMjN5am15bTgydkx0?=
 =?utf-8?B?VXFIQVFaWEpKamRFTVM2N0ZiVXJHSGZFNUJ5a1ZhMlBBQ2c3SlRpZk5TK3Fx?=
 =?utf-8?B?dDRlMUlhRkVpYmRXQ1d1MFpyRWxLZCs3QnZ2MHBMU2pKZ29yZ3REcFNIWGtP?=
 =?utf-8?B?aTYrMWdSZWR6cU90d1VhdUg4YlZhMFhObUFCRGdRVWtqQVVtNUpkQnVpN1hu?=
 =?utf-8?B?RHpYVnVpd2xKVzQ1Mml1Q1QyaGJoT0N5SHAxbWtkUWVwaWoxSDMvZnNiLzVU?=
 =?utf-8?B?MEJLbS9nNS9iMmxJZk5kVDN4OVAxZld4QUVVeHhEZnpPY0tNb1FNa0U1ajVS?=
 =?utf-8?B?SnFtNUxQb1oyeDJsd3ZOWlNSV3gzYmpXUFZvemd5TmVmaHNRMXg2NVd6K2Vh?=
 =?utf-8?B?b1NrYlNOMFcrSThIUFdpTk5LdmRFMzNiU1pIaUt5clltRE9uOThITHI5S0RZ?=
 =?utf-8?B?UjdzMStVTVdtRHB3dHR0MC9TZlluM0l2K1NFNFhmRHkrY3c0ejlsOW5uTVVQ?=
 =?utf-8?B?am1rTU11cU1VY1EzR1JEa2JvT1VGaHMvbTJnRmNqUlpveXdIRnUxOHh2T2Rv?=
 =?utf-8?B?bC9YdmorRVEvQUJRWjNZNHh2M0JxS3ZJTXZGQldYN1kxamlhSEp0aTYvVDI1?=
 =?utf-8?B?NE05OVZIVGZzQjNPRFJHMmdKbW9KU3ptVWNQYStUMUpzSXVGYnRZaWw3VldC?=
 =?utf-8?B?eXBtTjhrNWQzR0NWZGhOZWcvUGsxWlZlWCtaUUh0NDk3c0JvSjdJbE5zNGly?=
 =?utf-8?B?NldzZVFoaEtqMXNoZ3ZJTEF6UmNvYnFWNkVGa044RklVWjBuUGJPUk1DSFZX?=
 =?utf-8?B?a0lRTGZ2QzZVdHliWWJmU0JVWFBYL3h0SlJHdHhJamEzbGRXSWZVVXN1TGFZ?=
 =?utf-8?B?STBabHordVNySklxZ2tzbEZVbisreU5UdHlFeHdGc3YzNC92UTlaeUNIVWpI?=
 =?utf-8?B?US84NzZRL2RmanMxOXd5a3l2eXc4ZnMwVm1SU0FRRHJidW11dnZaVjV5MmJl?=
 =?utf-8?B?UVFnMWdaWEpYZ2N3V3d4OHVnQUFRa1h2WEc4QTBHSTNNRUxCMFY5L2h1Zi9r?=
 =?utf-8?B?WldPencyaVNkSytaUVM0Q3ZlSTl5MlprRithSU4xSEhpQXh1SDloT3B2VFFQ?=
 =?utf-8?B?a0w2bWFhd2hrRm1KOFdLS0FXSy9CbktpNWxleHk2RGJ6YXhwd1V3WlVtaDA3?=
 =?utf-8?B?Q3ovUnE3amtsOVlkMng5N0ljWFEvYWpDV2N0UDh5UEdkbURMVjhiR01uOVUy?=
 =?utf-8?B?SFhYUXZHWlhvWnJVdGs3MmFhRHo3bjI5Y2twV1ZiMHZBTzg1RHkxWjNjbkt3?=
 =?utf-8?B?VjBoWjRUbENIYkpqaUFLc1VwN0NScHFFNi9KaUIxUWdJektENEdTNEFIMURs?=
 =?utf-8?B?M1QvMDE5T0tobUxJZ0dTSFgvRWJ1c2ZraUtCQnkvT0VQdUtFQU91NU5FZU1v?=
 =?utf-8?B?RFR5M09GeE9zV1FVNVVPbTJJd0ZQVkRjamtDaTlZUFNWdmZjcDZHenptSWxD?=
 =?utf-8?B?V25kTkpMU0RBVnloMHNjWGE1a1hZTkNiSCtDTUg5czBCekgzVHc1VERBWmZM?=
 =?utf-8?Q?8LIGOMYUYwvsNF4/Ga3Koo8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5103f2ff-549c-4d56-3aea-08d9ab59532e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 12:37:18.6792
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: za421AeswuYTs8q3XDXd11MjgTl1uWJPkGoBBuAufknvwJHuNSS0mYPzD9F/2V1EL/yrik1BJdwOSZftIY0jBg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2704

On 19.11.2021 13:10, Oleksandr Andrushchenko wrote:
> On 19.11.21 13:58, Jan Beulich wrote:
>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> Add relevant vpci register handlers when assigning PCI device to a domain
>>> and remove those when de-assigning. This allows having different
>>> handlers for different domains, e.g. hwdom and other guests.
>>>
>>> Emulate guest BAR register values: this allows creating a guest view
>>> of the registers and emulates size and properties probe as it is done
>>> during PCI device enumeration by the guest.
>>>
>>> ROM BAR is only handled for the hardware domain and for guest domains
>>> there is a stub: at the moment PCI expansion ROM is x86 only, so it
>>> might not be used by other architectures without emulating x86. Other
>>> use-cases may include using that expansion ROM before Xen boots, hence
>>> no emulation is needed in Xen itself. Or when a guest wants to use the
>>> ROM code which seems to be rare.
>> At least in the initial days of EFI there was the concept of EFI byte
>> code, for ROM code to be compiled to such that it would be arch-
>> independent. While I don't mean this to be an argument against leaving
>> out ROM BAR handling for now, this may want mentioning here to avoid
>> giving the impression that it's only x86 which might be affected by
>> this deliberate omission.
> I can put:
> at the moment PCI expansion ROM handling is supported for x86 only
> and it might not be used by other architectures without emulating x86.

Sounds at least somewhat better to me.

>>> --- a/xen/drivers/vpci/header.c
>>> +++ b/xen/drivers/vpci/header.c
>>> @@ -408,6 +408,48 @@ static void bar_write(const struct pci_dev *pdev, unsigned int reg,
>>>       pci_conf_write32(pdev->sbdf, reg, val);
>>>   }
>>>   
>>> +static void guest_bar_write(const struct pci_dev *pdev, unsigned int reg,
>>> +                            uint32_t val, void *data)
>>> +{
>>> +    struct vpci_bar *bar = data;
>>> +    bool hi = false;
>>> +
>>> +    if ( bar->type == VPCI_BAR_MEM64_HI )
>>> +    {
>>> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
>>> +        bar--;
>>> +        hi = true;
>>> +    }
>>> +    else
>>> +    {
>>> +        val &= PCI_BASE_ADDRESS_MEM_MASK;
>>> +        val |= bar->type == VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_TYPE_32
>>> +                                           : PCI_BASE_ADDRESS_MEM_TYPE_64;
>>> +        val |= bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
>>> +    }
>>> +
>>> +    bar->guest_addr &= ~(0xffffffffull << (hi ? 32 : 0));
>>> +    bar->guest_addr |= (uint64_t)val << (hi ? 32 : 0);
>>> +
>>> +    bar->guest_addr &= ~(bar->size - 1) | ~PCI_BASE_ADDRESS_MEM_MASK;
>>> +}
>>> +
>>> +static uint32_t guest_bar_read(const struct pci_dev *pdev, unsigned int reg,
>>> +                               void *data)
>>> +{
>>> +    const struct vpci_bar *bar = data;
>>> +    bool hi = false;
>>> +
>>> +    if ( bar->type == VPCI_BAR_MEM64_HI )
>>> +    {
>>> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
>>> +        bar--;
>>> +        hi = true;
>>> +    }
>>> +
>>> +    return bar->guest_addr >> (hi ? 32 : 0);
>> I'm afraid "guest_addr" then isn't the best name; maybe "guest_val"?
>> This would make more obvious that there is a meaningful difference
>> from "addr" besides the guest vs host aspect.
> I am not sure I can agree here:
> bar->addr and bar->guest_addr make it clear what are these while
> bar->addr and bar->guest_val would make someone go look for
> additional information about what that val is for.

Feel free to replace "val" with something more suitable. "guest_bar"
maybe? The value definitely is not an address, so "addr" seems
inappropriate / misleading to me.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:44:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:44:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227845.394173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3G4-0008MW-JM; Fri, 19 Nov 2021 12:44:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227845.394173; Fri, 19 Nov 2021 12:44:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3G4-0008MP-GL; Fri, 19 Nov 2021 12:44:48 +0000
Received: by outflank-mailman (input) for mailman id 227845;
 Fri, 19 Nov 2021 12:44:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo3G2-0008Lz-UP; Fri, 19 Nov 2021 12:44:46 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo3G2-0007Sg-NL; Fri, 19 Nov 2021 12:44:46 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo3G2-0004in-B9; Fri, 19 Nov 2021 12:44:46 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mo3G2-0004oJ-AB; Fri, 19 Nov 2021 12:44:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=vmMZIu3esOwDRLNux5xcRkN+7Zula7dcRIDeboH9C+U=; b=dhkDinlxMnKCnWF7UrGEn0dzTd
	rFa1Kd5gcoKPvBW2zkkTAdMxLiAA+1pNofBxY4AH861CtFBed/pSaazcCdPvnamN8nELfJ0KRhQ8v
	DyVjf3Nifz65ROsuiqv5EmPOQPgtileQq2cJI6NRUwfwf5WY2NY2TgYBTDQosd1G5iRk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166189-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166189: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1cffc48f1e1f972daeec579c62de4bb24f3152fa
X-Osstest-Versions-That:
    xen=1cffc48f1e1f972daeec579c62de4bb24f3152fa
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 12:44:46 +0000

flight 166189 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166189/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166185
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166185
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166185
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166185
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166185
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166185
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166185
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166185
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166185
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166185
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166185
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166185
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1cffc48f1e1f972daeec579c62de4bb24f3152fa
baseline version:
 xen                  1cffc48f1e1f972daeec579c62de4bb24f3152fa

Last test of basis   166189  2021-11-19 02:37:56 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:44:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:44:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227847.394187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3GB-0000E5-38; Fri, 19 Nov 2021 12:44:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227847.394187; Fri, 19 Nov 2021 12:44:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3GA-0000Dw-Vz; Fri, 19 Nov 2021 12:44:54 +0000
Received: by outflank-mailman (input) for mailman id 227847;
 Fri, 19 Nov 2021 12:44:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo3G9-0000DF-Sg
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:44:53 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7cb73e2e-4936-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 13:44:52 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJC4fMX004555;
 Fri, 19 Nov 2021 12:44:50 GMT
Received: from eur02-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2050.outbound.protection.outlook.com [104.47.6.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cebkv84j2-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 12:44:49 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3374.eurprd03.prod.outlook.com (2603:10a6:803:18::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Fri, 19 Nov
 2021 12:44:44 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:44:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7cb73e2e-4936-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g/gslR0zJygztveIK+p8CosWObAorCZf01vwPgQLC+3kEOAWISOrt9ejXNqOVaVVm25+YUWs1facNU6Hifhm+lKZ6LANRpDaEOIVXcoAtKleRr1WD+bhaC7FkfB79htnrGT3wvzLiwXL/NkczLXNKoEYnov9Lwo76YzJUzxNKAL+R1+n95TjRg/mMo9ORs5aGMhHB0ePo6ofuUoKc+Qc9mEfjcW/uaaYJcmphLZqXzkWfIA/1WR9qWJSapDP4lCmgi6ALSV7ROP7saNREmAVVEFoBRblAwtb2IHyKf7FCBq4FI2EnGztv7Npx4MArQgAbyCDJV3RZoo8AwGNkpwAjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DH9qTMIG6Td3WekJv9Kf8c821Gtj4t5tegPnX2Rf3YQ=;
 b=KdiL3k3YtQSVtGFDM9uHal1kkAvCIwrRQoiNGJCFR52qivtKJXu32F7HY6Gs9o5FY8T/r/TA4tOoIRanKwNUa/0JTkOCKbTOE5VWw/1EPTOU8H9+q/bMxywTj+dPw9Xn5FFxihsaBDrjApl5PmZWuFl6qMw/w2UTeGZVOSTl9V7fVb9dbMFfA+PsCQcPcds0GIlWGjhcnJLSuu6TWygcHZ4Epbe9OkhmvkiZUcGBwvb079kcPebHXajlfuzr/e7ChUaG08ELpzXkkO0h5fCWEhtaHfE+t09+k+6DRwMYwe+XAOTd2ez4MgtGJQWtnLJLOsEFVPIrKjdaq51SI24+bw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DH9qTMIG6Td3WekJv9Kf8c821Gtj4t5tegPnX2Rf3YQ=;
 b=Plkj0qyKm4McweUrAuuOH5F+bfRRbcOSdX1Hx0B3YM8DM5Wg4FRCQoVe0b2LgZdYP2Kl4NMpYAIWKVfHYKcnEo4cly/L1FlpVaLV3OTydvQdGiYW9n/qwqz3I5Kr9NAJnksl1JOA3gRT5rFIxc6/bUxD7yk1gbMgPgoKRgGJMqvufwJf63z/4NackV4NrdH3SyfRj8YNU3Bu4PtYifoEt/RFBhKDt9Ks6V9gL07DFt/M/EE+Q2nMCYL2V7f0M44Q8DlxWiOVyKJWotUzIk8J6GquJMDJBxmdvm20XpZtnXWqEjol9lN/lrISSMa0OTPdtOwquj1tzHf4ZcSsGe4Efw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 07/11] vpci/header: program p2m with guest BAR view
Thread-Topic: [PATCH v4 07/11] vpci/header: program p2m with guest BAR view
Thread-Index: AQHX0hJLYbNons1z5kiEnkmparMbRqwK306AgAADAQA=
Date: Fri, 19 Nov 2021 12:44:44 +0000
Message-ID: <d12380fd-83de-3c56-99c5-c3f35c108291@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-8-andr2000@gmail.com>
 <e64d3e7b-a725-07aa-3a03-512868527221@suse.com>
In-Reply-To: <e64d3e7b-a725-07aa-3a03-512868527221@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9cb698df-e052-48bf-cc46-08d9ab5a5d2e
x-ms-traffictypediagnostic: VI1PR0302MB3374:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB33745EBAF8C054832C188C4BE79C9@VI1PR0302MB3374.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:3826;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 d/d6Eqic/j1gIqrzAJX1TEIe762mJn7XUuo+9pBKZlc7AEn2eG9svwlLsnR4Uwkux+CXHQ7ZOQ3yT/I2adRbzw9q2ZoJQVGoA24B5iDXWJ6TqA1FXARlqtDQHGoUd8OrI2FE71cQC9QEfucwvGFbVpR67mqGBZJQrIy8A6pcdm0CvYyeQbw0WH0E3w8bEymo+1wnhU3UYy5S0wTA2r1FNqwhUE59YO+n7V029ZlJDm+CnOiomMQVlGSAkjq6WVb6yeLKfCrzhU9Lxlm+d9VtI1MZpIZMk7hrTjAsFoJ/f/KpFPL+ePMLOkhJKEQ5X6QhNRmZk9HawYwT9WDecn3QW+3/9Qac6FINFMCyF78+bJ4lOE+J1Jmk7B7iurpPc2/h1ZT8hS49b9hXSaK1gtQP+cxzBZVp1AkfdrJGoN1qiAqaqbkbPDyueAcLuo4WHCcH0zAgZN5dVuoVDAKUJdyzfGGyGXLrWe44zs/4GeItsix5eMMX6k3WRw7CnQcb5SiFkQzpxNR0b06tVqxve6kVWkGrn+y9XpxZ7yRCrHoIEULQYmsgis+MPAHK+yXc1p3hA55b1kny0VE6cHEE+fDue59Jw0gBRwdS7Rzt3E1XqFAllFqsNmcXNoQsGN2GgHoPl8T50xeMo9dIcP8ZCqqTjB7m5nzlgGxdcu2Jae298e/xBc6btGug0IlgnAcuNauhW47QAXn5PcgAApou118duJJs8911OjOumrsV3KcROP0ERus3D/1gRreRgJoqKMwz
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(2906002)(36756003)(31696002)(6486002)(6916009)(7416002)(66946007)(54906003)(508600001)(2616005)(122000001)(6512007)(8936002)(31686004)(6506007)(53546011)(86362001)(71200400001)(83380400001)(316002)(64756008)(38070700005)(8676002)(66476007)(5660300002)(186003)(26005)(38100700002)(107886003)(91956017)(76116006)(66556008)(66446008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?YnM0UDNOak1WenFNTHBoekQyNjNnbXRFL3RFT0FTYkY2Rzg0NlRiMXczSU9E?=
 =?utf-8?B?NE1DN0MyY0V1YUdPa1BZT0x1YkUvOUF1QXdJMWYwSCswVHJzb3Y5Z3FkeXRL?=
 =?utf-8?B?TC9ScWRsQUE0eXF2WXdvcnJKS3RxU1pJaEhDKy91MW0rUFVMdEpDTFRSK0Ix?=
 =?utf-8?B?SVVmS2haMVMxNUUxSk9vQ09relA2Y2p1M1BuUG5JOUVyd0xyZHMvOE0vQi9Z?=
 =?utf-8?B?MlB6aHlVK25lK2pWVmt2WWtEWnV2dU1QR01GT3pHcmw1UFNmc3VRTW8zRndq?=
 =?utf-8?B?VFVaNXN6ZDNrMStUZUMycnNXTUVMUDdtK1dqMHFGSnd4WTg2SWhHbXZicXc2?=
 =?utf-8?B?cGUvaS9jUlZzZnI4WWJYUTRMOVZPM3dZVWxvYkNqclBWM3k5TXpSaEM2TEx5?=
 =?utf-8?B?WXM1QkwxeGM2ZDJPMmpMRllhQjdEeFFMSDB3YjRPZzV3VXI2Q0hCVmZWbGhU?=
 =?utf-8?B?VHlZaU52T0NqZWl0M3Y0ZHBBdUF6bUVwd1lCdmt2dld4alUreHluUUJ4SU1R?=
 =?utf-8?B?T2Z1RU10RHpNMll5UmQzc2U1cTNTUmdpZnhBMzFmbU4wY0lBS3pjaU5odVU5?=
 =?utf-8?B?RGhuTnlzOXJwb2xJbVl3dmNPaW40R3VLeVgwUUNhV2hpYklLSHMyZUY3U2M2?=
 =?utf-8?B?c3owd242VHpSUzZVQVVxS3JrMm05WjlET0tlcmxvOFJEaEdoUjl1SGRZd1hx?=
 =?utf-8?B?dWZ6NklaTTBmeC9XeU9hL2ljdlJ4MHlJZ2pmbmhzM2U4eVRJTlE5cUVKNjVu?=
 =?utf-8?B?MVV5cVNOVDBoRGgvQnJudEZyWEZBc1c0VE9IdHRYR1NGOTVLYXFkTHdBTmdG?=
 =?utf-8?B?U1A0OC9hbnVSS0VPMUVKVlh3bStmbXZxd1FhMU81NlcyOWRYR0RHV2JqRFBF?=
 =?utf-8?B?dmI1d0FqR2pia0Vnc2pNa2wzZVR2dGRYbUp0SDZuNGxncktCdEtQUzg0ek5u?=
 =?utf-8?B?YXN4cGFwY0pKUDdic09HL3h2T1V5L2tGK09TWVlMWWJ1R09wajNrK3lOUjVP?=
 =?utf-8?B?L2dBL1hLRjRDTmU1cFVDUlhlWUp0YjY5TTNSNTcrT3lkRjVGTkJDcWdUNFRB?=
 =?utf-8?B?QnMxQStHOFVuNEIyYnNJdkFKV1FtOEEwNlZlL1NTVDZ1OUtsMjBzQ0h6cE1I?=
 =?utf-8?B?OEJDb3FPSDYwZzVqYXZsWmtVejZFWGZBL0F5WjgzVVAremZmNzQwVGpPak53?=
 =?utf-8?B?b0w4Z2NPUStQT3RjL0RHQkpFMGJiQ1J5dmlZTXBVUVdvVUV6U2c3ZWhZcm43?=
 =?utf-8?B?M012czhjM0JPNkgwWFMyRERtdEE5RzNDT0dOblUyYWRreHBIN3dac2o3d3BG?=
 =?utf-8?B?cmQ5UWtDYUNVTGhpOGhmK1RncFFZVVpieFhXZDIvUXZiSEpSL2ViSUs5NVg0?=
 =?utf-8?B?L3NmdEdTQm5nbmF6NVJYdERldjVFTUhKQkR1QnJZZWxWWlBNSm91UkUwSy9z?=
 =?utf-8?B?dHJHQzZSU3VhcEhNSmU1cFJETlpSdm9MU2xnNzNWODNBWXBrUUNZMnV4RFk1?=
 =?utf-8?B?V3NoNW5EbGcremJ6K3czYXFwVkU4eXk1dUEyRWFsWE1qcFJLcHZ3cG83cU9T?=
 =?utf-8?B?SkJsQ3JrYnVxamVqWFI3ZHl4U3pYNW1sV1VkZFJaT2VBT0tNS24vOEQvMWkx?=
 =?utf-8?B?eU80NDBLZ01TYnQvdkFrcmVRV3BBSDMzSUdTOTZveDRBS08vYWRZaFYyaDIy?=
 =?utf-8?B?TEx1Z1c5dFVEaGRyclRrOW9mZnpnZFdlM3BOUlhFR3A5Z3YxSE8xQ2piOWpM?=
 =?utf-8?B?UEVnTlVkVC8zY1hSWERNRjJONGRhek5tU3hjcG9YcGVIdmJpKy9wY1dqOWV6?=
 =?utf-8?B?eHdjbFZFellQNEJCVmtOaE83MFI2QXJ1YnRVSEtsN3cvY1M3MkVLSzNxSWNJ?=
 =?utf-8?B?VnZPY2VGOUwwVFRDZEpTdi8vdVNDYkU2d0grWjBtdFBteFVya3UyWTBZZGZq?=
 =?utf-8?B?ejZXOE8xYzBqQWVlbGhNdXJrNjFKN3RkNXBUME9Kck80c09LeTlwNVptNTU2?=
 =?utf-8?B?N1dFK0tNUWo3SDdQcVRYMm1EOG9ONWljcWdYamliV1pOOWQwWnRPbHlYWUx0?=
 =?utf-8?B?a3o5SkJQak9ZRWJvall3OFZmTWY2Ym5acXd1ZTA2aE1QRjlvQkFwYTEyU0ov?=
 =?utf-8?B?aGhBY1dPOGtCeDJzTVdVUDdZbDQyTE01Zm5rUFpXRVprek9aWXJyUUxic1Nr?=
 =?utf-8?B?VUx5dkNsSzJLZStqdzFnclRSU2NpdE4vMDV4R001cGdxN1BpR0tGL2ovVkVR?=
 =?utf-8?B?cmZGU0xZNDhCK0N3czNqbEhrYXRDYmVhUkd1NXJ1aW5INm9VclRjZ3VJcUo5?=
 =?utf-8?B?dTlwQ013T0xteVIyTUswUUF1aTd0bVpxYlNlanRqaGxEaEtxTy9Idz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AB083E0047595F46B29FFDB40C1200D5@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9cb698df-e052-48bf-cc46-08d9ab5a5d2e
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 12:44:44.7494
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Embn6XJqYUQsv1GWVRZTf8N6prA9GafxSomtiXFhDhJ/+3890Xxb4inA3JAf3FcLpqFNCWKbfLYxATCU0bD5RXHr6ChLVQSm4XLSpXvtOsy9hds9090bqNnyUYTWu/Dg
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3374
X-Proofpoint-GUID: muRRpTA6q1SLGClipYYD2fYUEMH121sW
X-Proofpoint-ORIG-GUID: muRRpTA6q1SLGClipYYD2fYUEMH121sW
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 adultscore=0 spamscore=0 malwarescore=0 impostorscore=0 bulkscore=0
 mlxlogscore=999 phishscore=0 mlxscore=0 suspectscore=0 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190070

DQoNCk9uIDE5LjExLjIxIDE0OjMzLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gVGFrZSBpbnRvIGFjY291bnQgZ3Vlc3QncyBCQVIgdmlldyBhbmQgcHJvZ3JhbSBpdHMgcDJt
IGFjY29yZGluZ2x5Og0KPj4gZ2ZuIGlzIGd1ZXN0J3MgdmlldyBvZiB0aGUgQkFSIGFuZCBtZm4g
aXMgdGhlIHBoeXNpY2FsIEJBUiB2YWx1ZSBhcyBzZXQNCj4+IHVwIGJ5IHRoZSBob3N0IGJyaWRn
ZSBpbiB0aGUgaGFyZHdhcmUgZG9tYWluLg0KPiBJJ20gc29ycnkgdG8gYmUgcGlja3ksIGJ1dCBJ
IGRvbid0IHRoaW5rIGhvc3QgYnJpZGdlcyBzZXQgdXAgQkFScy4gV2hhdA0KPiBJIHRoaW5rIHlv
dSBtZWFuIGlzICJhcyBzZXQgdXAgYnkgdGhlIFBDSSBidXMgZHJpdmVyIGluIHRoZSBoYXJkd2Fy
ZQ0KPiBkb21haW4iLiBPZiBjb3Vyc2UgdGhpcyB0aGVuIHN0aWxsIGxlYXZlcyBvdXQgdGhlIGNh
c2Ugb2YgZmlybXdhcmUNCj4gZG9pbmcgc28sIGFuZCBoZW5jZSB0aGUgZG9tMGxlc3MgY2FzZS4N
ClNvdW5kcywgZ29vZCBJIHdpbGwgdXNlIHlvdXIgd29yZGluZywgdGhhbmtzDQo+DQo+PiAtLS0g
YS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL2hl
YWRlci5jDQo+PiBAQCAtMzAsNiArMzAsMTAgQEANCj4+ICAgDQo+PiAgIHN0cnVjdCBtYXBfZGF0
YSB7DQo+PiAgICAgICBzdHJ1Y3QgZG9tYWluICpkOw0KPj4gKyAgICAvKiBTdGFydCBhZGRyZXNz
IG9mIHRoZSBCQVIgYXMgc2VlbiBieSB0aGUgZ3Vlc3QuICovDQo+PiArICAgIGdmbl90IHN0YXJ0
X2dmbjsNCj4+ICsgICAgLyogUGh5c2ljYWwgc3RhcnQgYWRkcmVzcyBvZiB0aGUgQkFSLiAqLw0K
Pj4gKyAgICBtZm5fdCBzdGFydF9tZm47DQo+IEFzIG9mIHRoZSBwcmV2aW91cyBwYXRjaCB5b3Ug
cHJvY2VzcyB0aGlzIG9uIGEgcGVyLUJBUiBiYXNpcy4gV2h5IGRvbid0DQo+IHlvdSBzaW1wbHkg
cHV0IGNvbnN0IHN0cnVjdCB2cGNpX2JhciAqIGhlcmU/IFRoaXMgd291bGQgZS5nLiBhdm9pZCB0
aGUNCj4gbmVlZCB0byBrZWVwIGluIHN5bmMgdGhlIGlkZW50aWNhbCBleHByZXNzaW9ucyBpbiB2
cGNpX3Byb2Nlc3NfcGVuZGluZygpDQo+IGFuZCBhcHBseV9tYXAoKS4NCkFoYSwgeW91IG1lYW4g
dG8gbW92ZQ0KDQorICAgICAgICAgICAgZGF0YS5zdGFydF9nZm4gPQ0KKyAgICAgICAgICAgICAg
ICAgX2dmbihQRk5fRE9XTihpc19oYXJkd2FyZV9kb21haW4odi0+ZG9tYWluKQ0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA/IGJhci0+YWRkciA6IGJhci0+Z3Vlc3RfYWRkcikpOw0K
KyAgICAgICAgICAgIGRhdGEuc3RhcnRfbWZuID0gX21mbihQRk5fRE9XTihiYXItPmFkZHIpKTsN
Cg0KaW50byBtYXBfcmFuZ2UuIE1ha2VzIHNlbnNlLCBpdCBzZWVtcyBJIGNhbiBkbyB0aGF0DQoN
Cj4+IEBAIC0zNywxMiArNDEsMjQgQEAgc3RhdGljIGludCBtYXBfcmFuZ2UodW5zaWduZWQgbG9u
ZyBzLCB1bnNpZ25lZCBsb25nIGUsIHZvaWQgKmRhdGEsDQo+PiAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxvbmcgKmMpDQo+PiAgIHsNCj4+ICAgICAgIGNvbnN0IHN0cnVjdCBtYXBf
ZGF0YSAqbWFwID0gZGF0YTsNCj4+ICsgICAgZ2ZuX3Qgc3RhcnRfZ2ZuOw0KPiBJbW8gdGhpcyB3
YW50cyB0byBtb3ZlIGludG8gdGhlIG1vcmUgbmFycm93IHNjb3BlLCAuLi4NCj4NCj4+ICAgICAg
IGludCByYzsNCj4+ICAgDQo+PiAgICAgICBmb3IgKCA7IDsgKQ0KPj4gICAgICAgew0KPj4gICAg
ICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSA9IGUgLSBzICsgMTsNCj4+ICAgDQo+PiArICAgICAg
ICAvKg0KPj4gKyAgICAgICAgICogUmFuZ2VzIHRvIGJlIG1hcHBlZCBkb24ndCBhbHdheXMgc3Rh
cnQgYXQgdGhlIEJBUiBzdGFydCBhZGRyZXNzLCBhcw0KPj4gKyAgICAgICAgICogdGhlcmUgY2Fu
IGJlIGhvbGVzIG9yIHBhcnRpYWxseSBjb25zdW1lZCByYW5nZXMuIEFjY291bnQgZm9yIHRoZQ0K
Pj4gKyAgICAgICAgICogb2Zmc2V0IG9mIHRoZSBjdXJyZW50IGFkZHJlc3MgZnJvbSB0aGUgQkFS
IHN0YXJ0Lg0KPj4gKyAgICAgICAgICovDQo+PiArICAgICAgICBzdGFydF9nZm4gPSBnZm5fYWRk
KG1hcC0+c3RhcnRfZ2ZuLCBzIC0gbWZuX3gobWFwLT5zdGFydF9tZm4pKTsNCj4gLi4uIGFsbG93
aW5nIChpbiBwcmluY2lwbGUpIGZvciB0aGlzIHRvIGJlY29tZSBpdHMgaW5pdGlhbGl6ZXIuDQpZ
ZXMsIGdvb2QgaWRlYQ0KPg0KPiBKYW4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:46:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:46:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227856.394197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3HA-00017z-DV; Fri, 19 Nov 2021 12:45:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227856.394197; Fri, 19 Nov 2021 12:45:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3HA-00017s-AZ; Fri, 19 Nov 2021 12:45:56 +0000
Received: by outflank-mailman (input) for mailman id 227856;
 Fri, 19 Nov 2021 12:45:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo3H9-00017e-Hi
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:45:55 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2598604-4936-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 13:45:54 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2057.outbound.protection.outlook.com [104.47.6.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-38-JwAVNPjwOv2v-NOTLV4egA-1; Fri, 19 Nov 2021 13:45:53 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4192.eurprd04.prod.outlook.com (2603:10a6:803:4c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 12:45:50 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:45:50 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P189CA0001.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:31f::10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.22 via Frontend Transport; Fri, 19 Nov 2021 12:45:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2598604-4936-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637325954;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jgkxDi+g+yAZAflnhrwVtM0vlYcq/0qqjGv7gaV7P7Y=;
	b=OCx60+YcQRE5PALfJgTj5QxOlPIDNJflrcClXoq19QRjdDpDfXnNHBklAVhWRjyVGVOwYs
	bzf+8K90JqOdeozZ9VOOpqLVaVMZmluuLrmmYJ7y2wPu4eG7YQhlKznY8S4D+PcG3uvAu5
	ZOl5veIXIDUZt/BW41lGnJYrQl4l0I8=
X-MC-Unique: JwAVNPjwOv2v-NOTLV4egA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=P/dQP3IUfjpK0lKXLdmmYmhjJNWx/dnQzNTWWmDkTska+riwGLJ2MAq3tYc0n5lB/mfo+ebWXvJqT5AH9qeS93UPX8W4RKGFJfR0LPPlWKUafOFkaeFZIpudl0mT9fCYfdWVDp5MuPvir/XkY/z3zhiIdBO/YS0enUG8D9QC2LLjyiwOCFJkpbGHVqzXJO/1C/H/WFabhtdK0cqlxyARoEDedFN8XC3Kr3Is7s53auy93ZilBOzRiOwKchJzfVPX+4yOMo6FlS+iNAuoJ4bKieeKW071ZWUTLnHp2si9T5SMWCxbeZ/oJDJn0lAeq0TWZHAyrdWLj+hB65yo51j/HQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jgkxDi+g+yAZAflnhrwVtM0vlYcq/0qqjGv7gaV7P7Y=;
 b=lWa20ovA0ETsJvUV8pj78XoDfc4EllEZPQYzPbs0IE9MdBjI8nVpM+LxnsfyJRnsJrrlKHXP0CvsP1m1qjmGd2jJSsGoqCKh/4Mrnohn7gmoYTW+7SKfMLG1ZEzD4vbamu2HrKOFI9S7to7vHRmma2RO3eqvO4iUNb+Rtpu6qxzePTz+bsHVT+90QDrXMqWHdvlqUFaYjB2kbrdM3YUQ38hq0cv7/T41+/D4EWRs+XT8KUJI9kbhBKTw9BbzrjVSYYiHFRLL63DfZ5kAPax/cxHjMxt6KeJTVMBBpvz7haRSwIPUYQzLdVSChYWTBDlfi4AOE+7mN4GY3clNvBzR+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <76e929f9-2df1-951f-55bf-58caba80750c@suse.com>
Date: Fri, 19 Nov 2021 13:45:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <9aec23b3-2269-39fe-9fc0-fb8cf7f9de44@suse.com>
 <1a380ef9-bdc9-bbfa-35b7-ec1c901e3019@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <1a380ef9-bdc9-bbfa-35b7-ec1c901e3019@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P189CA0001.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:20b:31f::10) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b920f56a-47b6-43c4-6598-08d9ab5a845a
X-MS-TrafficTypeDiagnostic: VI1PR04MB4192:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4192267B7026171DFB827537B39C9@VI1PR04MB4192.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	bJBn8Bp8dBgU9esICAozFHagp3GhKr82BLbPLnFOf5AHnqraxIIcZ7WfVTIxwkwEJvY47TCxyFRFv06A0VilcR5g6e3vgCdly19gbemxBJZjRdG7bjkAFM2sRNO3r4uWau9k1rQrvFLNZVKWIJY10A69OlLEnaUs4LOBrrcZLcx7VL42k0RWCg3oFz0YXMolW1GxUiCJMfVN4cTvGHRAoxvYYmQYpW89WSW9uQllHSAe6RoSetQdeEnl8z9B1JzCJtp1WoE2YqE9k+1Up4SbB+OeH8xjSa88P0BOE/wp6Q8C0rljzT8b/5EQFN49+LN/7JxzWz1AOdmtpQIR26yrICMQNiAKOR2dmS9nHNhUU6ecniIj5bL3yJ6iFzF1qE8yg3KoDNkKXdRbdUgzby6cc1c1IzjQyqqVbWf+hgOrlrS65rb9dtUxrbO4W3hgk+MDM3dtS7ruxULeqPNRt77AuWmAy1ZEdjo/NOxcJL9lnyfKpynhZN/rbfkN93IqGfjPKAhUEHvJ7H3kq2TvUFOus9cpLT826VY3gEfUpYaGNlJ2JWwwGNjJjfdcWvHCBbaw0Tr7kq6hKWkDWsjywTBp6rVPg2Szb4HG7S7QhE3hCHKJgeJYQKlhN996A8ySvrSEDh1UKXQulBJr5f14ZQdStk/BfINCqZelAHWwgFxc3Lz61wQ9ICzuuF3JlsfQDGZpzcLk2smKq2coGdZPaMVE2pk3G0aHju/tOZZmDAHJJN0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(54906003)(956004)(6916009)(53546011)(31686004)(508600001)(2906002)(31696002)(7416002)(2616005)(16576012)(6666004)(38100700002)(5660300002)(86362001)(8936002)(36756003)(66946007)(6486002)(66476007)(66556008)(186003)(26005)(4326008)(8676002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UmJ1MlE2bFIrMFg0bEdMTHRtSjZid1ZaNnV1Z1VFS1VzSWJpSDB6YzlUUmJm?=
 =?utf-8?B?MFNlSDFEcjBLL2Z5Z3NIK2x3MTh6QmFSYWF1d2NhNmwyWHhEU0lHcU8rSzJR?=
 =?utf-8?B?NVFPeHk2OWZmdTcrQ3MzejhjdU93cnBzOURRbDlxblF0Ty9JN1o2R3p2aHc5?=
 =?utf-8?B?Y0hXa1NsL2dkYWhRM3I2NkFBRXB2MjZ5cjUxWG90YXRoMm5oSXlRRXhoN29U?=
 =?utf-8?B?NHI4YXJVTWlmNTl4OFZaWEZRS0dPRmZzOVQrcURFMzFKazNiUThRaWdxVGdV?=
 =?utf-8?B?RzNyVXFlZ2dQaGRNT3p5ZTJWa0EzYmIwMThpS0dlL21DU3pPY2xVejl6NmFw?=
 =?utf-8?B?OTZzM05rSlBNZWdvckU5ZzNBSU91dW1BNFkremxTZHQvdENhWDZQdGF1YlFv?=
 =?utf-8?B?emhBNnp5SENtRmd5RTNFdEZraHg0OVdmL0V5aHYzVmRoQWJWYm1JdkhsYzk1?=
 =?utf-8?B?TXgrWVMzQy8yL3FFS3VZVjQxNC9KRlNPT0Z6YVhteXU3R1pSL2FORGdVM0kx?=
 =?utf-8?B?Tlc4VE02OVhNNkNaREtiWE1mUm5Mc29EUkIvL0tNNG1rZUNMOEtFeDRMTGxJ?=
 =?utf-8?B?UDZUc1B4Z3VzRTBqbCtsdUxoamNZQjNMRHhlWHA3anJ6SjEzakFqUWtCZjNZ?=
 =?utf-8?B?VnpxU0x4QWhTak5aM1hhQzJmTmgyZTZmYkpUWkpQcVlWZGw3b09XeFJ5VXBK?=
 =?utf-8?B?d09uemI2Q3QxYVFDZ2NsajNqYmtlTVFBVHhQSFNlL3FpaHcxVEZtWmJxVWRo?=
 =?utf-8?B?THJIcVUxY3BSYXlyMWtWUUo1QkhyRUFab0JxcjVZSjhETng1MGprNHdjblJM?=
 =?utf-8?B?QTFBb080akxkWjhtTGVlWTZGQ0thS0hnLzlHOGdJTHU1NU1qS2I2NXJ5TFd0?=
 =?utf-8?B?KzBpcDJCUHdQUFBVQWJmL2k2THdyclh3SmNKaU9lK0JmYm5rb3NidVRjRkIv?=
 =?utf-8?B?QTRYeEtiVUFXVThFdld4d3diOElOMXJXQ1FlUVVaOFBtT0I1QURLZk0xcnU5?=
 =?utf-8?B?MVV0aDExVVp2WW1kZ2hqOE40UTVvVVhEbC9OeHlqckhmbmRlUHRtQVBOcGMy?=
 =?utf-8?B?dU5oWk1mV3RMOC8waU9TMWFZOTVEUnFtVVZGc2ZUcUdVOVFvcHB3K0lad0Jh?=
 =?utf-8?B?TjhBRklGdVR5ZzdzOWsxbHVvMDYxcHQ2MDJoRnNPSVpUYXJyWUIvUzF6Vm5k?=
 =?utf-8?B?R0c0NHMzbEIxNmJKcU9qMGRHZUxkRzlDdjREQWxaTWlNb2ZpSjk0Z1BiV2N3?=
 =?utf-8?B?M0liakJSN1hhVzVvVXo0UHkzSVllR0ZXWTdsV3JIam5hRTlGOVdPdlFla0Nu?=
 =?utf-8?B?YXppTTNWRGNTdGxnVXBHZUhkb1FhbzRMMjVIOFlZSFl0TENPL0YxV0N4ZjU2?=
 =?utf-8?B?YkxMaHcrS0U4OTA0SjJaVUVoek1QcHQvTnF5NmkvN1hSeXNVQUJmMHRTN2Fv?=
 =?utf-8?B?aTdNV0NWQUVTaFhxUTVkQ202RUxtVndERFUwcFB3Q1k0RW5CK0hYMVBjdThD?=
 =?utf-8?B?N3RnRnBvTnRlRzU2Wm1YWHpKL1BNNFJkaEhIeElyTEZJL2hIVXF2ZGoyM0F0?=
 =?utf-8?B?bUVBMndCM0xMdk45NWZNc3RhYUkvaXFJYUFUL21VTjc2c201OGtkTHppay9v?=
 =?utf-8?B?SDdmcXJRdVArTy9SWFlSdmlLZ2w5TXRrMTk5SUd2TFdwaUhLMXhuNDREcTYx?=
 =?utf-8?B?cTN0Sm9MTXJDa0JZNlZXVWhwRHZiaWh3ajVwMUJLbThPUS9tZEFNTmdZekxZ?=
 =?utf-8?B?aDdXREF2QUNORDFCM05OVVRySE1nZUtaNFVZN0ljRmdrbzVaSUtOUnVxUjM4?=
 =?utf-8?B?aGV1clhuY3hiSjFRNk9odi9Ic2thN2ZXckt1THp1YTlNczJBek1NeG9kbjRx?=
 =?utf-8?B?dkx1Wk5wZWt0bXJya0liU0hhTHNUb2dkSXNIRjZxckxwd0JqU0VuNEp6bEd3?=
 =?utf-8?B?NGlPRmJ3Q3ZDbXNMakdudXZBbDRmUUdXZWUxR1FnRzFuYnBVek9WeXdTay84?=
 =?utf-8?B?SVlzREYwczc4azExSWk5cmJEalpCenVySitIWTQxYmM5VVZRZVY5bnJRUDF6?=
 =?utf-8?B?RVNadmYrL2RnVTFTbXBaWFViY1JrZThUUEVScGI0K3ZJOUsxTHFLQkxWQUNQ?=
 =?utf-8?B?YTJiemhURnhGTHI2UmVZN0Z1ZnpYcm1nejlWNVJsV3RBODNwWE85VTJLenI1?=
 =?utf-8?Q?OhQjmkkflXqB8n0wFEsINSo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b920f56a-47b6-43c4-6598-08d9ab5a845a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 12:45:50.6788
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: t0I5Ib1jIbhw9d0f4Y+NPxmfkWVGQKrf+JDeoKOHqDvNlzfCbhB42yoxUT/iKbLE8y6urI1Wxu5dN/3FVOZdcA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4192

On 19.11.2021 13:13, Oleksandr Andrushchenko wrote:
> On 19.11.21 14:05, Jan Beulich wrote:
>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> Instead of handling a single range set, that contains all the memory
>>> regions of all the BARs and ROM, have them per BAR.
>> Iirc Roger did indicate agreement with the spitting. May I nevertheless
>> ask that for posterity you say a word here about the overhead, to make
>> clear this was a conscious decision?
> Sure, but could you please help me with that sentence to please your
> eye? I mean that it was you seeing the overhead while I was not as
> to implement the similar functionality as range sets do I still think we'll
> duplicate range sets at the end of the day.

"Note that rangesets were chosen here despite there being only up to
<N> separate ranges in each set (typically just 1)." Albeit that's
then still lacking a justification for the choice. Ease of
implementation?

As to overhead - did you compare sizeof(struct rangeset) + N *
sizeof(struct range) with just N * sizeof(unsigned long [2])?

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:46:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:46:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227861.394209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Hz-0001j1-NX; Fri, 19 Nov 2021 12:46:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227861.394209; Fri, 19 Nov 2021 12:46:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Hz-0001iu-Jt; Fri, 19 Nov 2021 12:46:47 +0000
Received: by outflank-mailman (input) for mailman id 227861;
 Fri, 19 Nov 2021 12:46:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo3Hx-0001Wg-Qf
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:46:46 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf99319f-4936-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 13:46:44 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJCRv3W007949;
 Fri, 19 Nov 2021 12:46:42 GMT
Received: from eur03-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2057.outbound.protection.outlook.com [104.47.9.57])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ceby2g253-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 12:46:41 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB2832.eurprd03.prod.outlook.com (2603:10a6:800:e2::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Fri, 19 Nov
 2021 12:46:32 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:46:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf99319f-4936-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JgZp1XTDpzll5S2EI7Kod1PBEJM1V1iFkPImg+wY7xMEtAFjITr2hnj3f6GbxUNYfWFS11ohWPHO7WtFyYCJHDdFHGKD+sVimleDEB0Wjmx6/uuNCkvSdlcIM2mMZ8pPe92K2MJ/7RhL2wCvp/DJL/uFIevZogguw2xQi8eFVfEK/w1kH0GEMmXa56PZc6kx2jAMl4qU55WILCCjlmSWXwqNWYwzed/EtzH3cDWDcPOvv5TLwyAGX/n87rNF4WMjnC/7gBcdOjBAVj/go+FWAoFTKAg1ZI+oV48sGh7M8j6JLYS/bZ8l0N7wuXSB7S9VCHspL7f5DQC1TrjyWY17iw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/wg1IACHB7nfHvmDTLTK6fVzpzT0Rk1+jqn8EzPEUQo=;
 b=UxrCH1e6kE1zEyirX8B0mPBanNGKkKczF1nEYJknmY7x9aj4wFLK+bFrQ5zbaqoy+kji1eHqdZvipIffcAsAw1m08DvGVJdOSW9X2KkO2RTgqLmDttfQjuiKxjZ3YoPNbq5HSVpWEhbCxR7etmDRoEK4zq57q/ZZgOAzNOMuM5DlAU/ytaxuw9KPOASWGX97kRXP4SeDFRsoD+lSyKEhZOLZPVnlaGrS4P1UdcJcDG04xlq2J/IlM++Wm2AKxPjBgsvgwJHtac+ble18VHPjhhRETEF9RmrtKrtvniOezGQPQG59JT7l1ohtyniAfuRxtdaT8ay2AASJTjq8haLdTg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/wg1IACHB7nfHvmDTLTK6fVzpzT0Rk1+jqn8EzPEUQo=;
 b=GQ1r0aNNkCJFtigG81EwW/2D73jEM61IhwM787YqhQhgIESlCd82Lbom1/eR7SPO2ai9nZbZyaVPk73m7x1p7lsq2rq2dJR6vPE21RrE6GPuzdqEF9Xmxtyr1lFC+LP5dSxgInLEnhYPyuueDXU6KxIGrLxhW6NAY1ji3B7cPC4Fxrl7OwjDgi3s6JBk7hxobbtBCyqnyTmNidG9rAerEGzCvlQy2brnVj3BbUXs7EC/k53ILDhAD16XdlV7k849O5JI3zksM6EvAzwwp1jAXMOAeqhHfL3Bsj2I2JfG2eDW1w+SlbWCIA/xjHDcHqgT94BwnzphID/UwOa41cE6Mw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Topic: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Index: AQHX0hJK3jTao+VT7Ua3mM5UrGfltKwK1UUAgAADYYCAAAeUgIAAApWA
Date: Fri, 19 Nov 2021 12:46:32 +0000
Message-ID: <6c61bd19-228a-fc12-eb64-00c8c5340292@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
 <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
 <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
In-Reply-To: <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d5221acf-5568-4638-b456-08d9ab5a9d55
x-ms-traffictypediagnostic: VI1PR0302MB2832:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB28325FE7C7F9749DE82D59D0E79C9@VI1PR0302MB2832.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 66w+3xhcJ7H7Y/BfvMcmWKm4cg29i+kCr9fImsk77zD2ttsvlPfGnqbTUW3gnzU9UNCqrT6IA4Sa8daJRqVwvipeAhmSiMyezgg4msPe3hqh+2JZ3h4yi+uPDqpiSLzQfxk3O1IlFWB5cPf2XKYdB/NqThLskcXYDQg1TNNtHF46Uh9xMj5mX/o630VAiSBYAzCBhvBc+8zku5DcoZ966f4wWrh+bj+KOOTuJX2J9BWvpivdnmzjoze0/Rnzxlofh6e0z5QaOakhq3suIW+VAUdca6DZDDALs2FG5x2uFF0FeiZ/9+yxcwViUBBzDz713/cnJ/CplwmhHpYgj/SVKXEVdeSiQnr6jIaPrO41d/9SlgEFIbDIckhfeD1vEPcta9R/cEDMJYGhgEobjxdsUDvH+P9gu4TvG4fW5eb3IZbK1AF1F70X5KfmujtIw7DQSBQOWZM/Q4xcGYRguK2zPERqv87DlIkpbLo6eklXGRe0mteYD9Ltlr0FYLUJs1+GdvaIVD/chOxMzaUhgaYTbGMS+sDMJkmSOMfWPJVwkeopCJ8MCRZt5scQlfOc6jQ4iafQSc2Nhq4G5ztnHu+HhR42HuP4jYlFzHV18IkQ22xo0KBzTWBOpTyMe1q+TMDPvq2UXjshEY+7Up7r963cXLH2dka8woJBbKa1apQ3JXnTJKjw0HzwJQ1uM+fWhkYAysMSZLOe1+rr56WQq9TqQs3DyaNgUpff1K3Pcskc8qfckV8EJbWF3MV9bKAj6RfR
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(76116006)(54906003)(83380400001)(6916009)(64756008)(91956017)(4326008)(26005)(8936002)(36756003)(6506007)(66476007)(316002)(86362001)(6512007)(53546011)(66946007)(38070700005)(2906002)(66446008)(6486002)(66556008)(71200400001)(122000001)(5660300002)(7416002)(186003)(2616005)(38100700002)(31686004)(8676002)(31696002)(508600001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?UEN5c1hSM2JJQ2ViR1dXZlNEcmRtb1p5VXluaUVyTDRSUUh1V2pxTWU4WS9p?=
 =?utf-8?B?bjlnRlhFTUV6ZkhCTDJaeU5HVFVBejVRZlB4Vnpvc2t2dFp2TnpqWmVUdXZZ?=
 =?utf-8?B?V05ITnZPdmVrVk8reDV2QW1PdE91ZkhmQnhPdzhmQUYzcjExcnJGZjN6bXdZ?=
 =?utf-8?B?bGVKZ0RrM2ZMMVdUSFEyQWthb1g5V1JQKzZrNXRCOVNtMDJQM3NkUEM1dXFP?=
 =?utf-8?B?Nk8zSFJiWlFsVE56ZUtlY3h3djZKZlJZZ21MaU44Z0wzTU12NjdNc2JjVG1o?=
 =?utf-8?B?amM1REQvU3FxMmlBRU83MldoY2FLdXhhbXlteEZoMFdROXNMc0RaTWZnNlhh?=
 =?utf-8?B?Y0lUZXdOL3RXMHJZMFFMVW91RnlWbG9TOHpUVXJhbDhYNmw4bnNnd0Q1YmJE?=
 =?utf-8?B?NFNpTGpZTmNvWWdpSjk4b0gwZ2wweVpIYURxQlZJTndsR2krODAreUtkTUo0?=
 =?utf-8?B?R3pPL2MwR3JZSzNNb0pDZFJnZjgxVEhCSXhGaHVHYkhwL0tYSEFMbUNkeC84?=
 =?utf-8?B?TW1JNi9KZzJUNHpFV1VBMzdhbGgrMHJvQjFXMWFkdnNBQ1F3Ly9TbUxBZERM?=
 =?utf-8?B?YXAzSUdCSWlsOFFudTMzd2g2U3pENnM1RXZkaEZVUHZTUytJL1p4U05SazNx?=
 =?utf-8?B?dGdINlpDVlNMenh1WFJGQk51ZmpqcjcxZGpRVkYwWDlWc3NIR1kvSEh6MG1M?=
 =?utf-8?B?WWh3bXUyem1YbTdyQnc0SmlWQ2V1WXVIYnBGaDZIelZnQkZyUHg3YU5WSTV4?=
 =?utf-8?B?dTFubmRBVmFYK2Z6WVAxdXphMThSWkJqWDVwdzVNVjduU3Ava05TMXRFNXlu?=
 =?utf-8?B?MmxhYzlKUVpjRm95akl6NElNOXlwdlhqOEtDcDlWb0ltOWVoNzI1OHZYKzJE?=
 =?utf-8?B?dnBLanJMbUdDYlFaY0xVckVCSkxNbkxrNFZtdFlXdFVZallwUjF3TlVGWmJ4?=
 =?utf-8?B?Qlh3dmF1eE1BVHU0RzlwZmpqWGk5aHd2eE14V3ppNTZqZFh1L0xLakJNblhF?=
 =?utf-8?B?aUlseVFpd29icmVjcG9xWTVnbUtOaHpaSFNNekh4WmVtSzJ1c2VweHpxNUlX?=
 =?utf-8?B?UjR4ZG5Eb2VXR3hneHBVZEZISXlCY3ViNkZiN0xLQUJGcW5acnZOemlVc1F4?=
 =?utf-8?B?Sm1Tblp1YXVnUFZ2NjVmbk1zaFk4amZ6N3FkL2F3eHIvYTdkM1NsNUd1Mitn?=
 =?utf-8?B?cEYrY0E1RVNrWld1UlV0c2k4eDU0N2FRMUVJWW1jSnhsOXljNFB6em9pU2Vv?=
 =?utf-8?B?YzRmRWtLbExuTzg0VnNlYmoxWFU5SGdXQVdtM1ZhZzN2MW05M0ovNzlNem80?=
 =?utf-8?B?R05RbjErUzM0akNEbTFvSWJ5R2NueHdKMFB0Zy84T0FvVXJ4VDE0dW1rVDVV?=
 =?utf-8?B?OVpFNlVuUGtxYlo5WVhsb1lWOWl4OGF6WUNseU9ncXZad05WMUZmWnI1SENo?=
 =?utf-8?B?bzRaa09HVkpleUs1cG1YQTFZbkJ3Qnh1NTVpWFJXY29NUzJqOWJkQnU0NHp0?=
 =?utf-8?B?bWFmUTNFb1NVUWNkOUJQYXlmdFRFSWQ2VElPc25RZ2RHa0V4eGZvT3pNR2Jx?=
 =?utf-8?B?MTRiNG5IQUJBL0NWU2RvNnZuNHV1a2s2TUNCZHJaRUxrcXJSYU9yOUwzRlNz?=
 =?utf-8?B?RmQvMXpMZVBscVJ5Y2d0WjZOZ2M0V3c0R2l2Vko2eUlwNDZydHhoWjUvZVVp?=
 =?utf-8?B?OWRmRmswdjlPZWo3SFdXRVl0bnU3Z3lNODV4ZjdaVm0xTEpUeEZEYVJlRGlm?=
 =?utf-8?B?b1IyNnVjS3lUcDFDU0xKeUtQQ2gwWUF2OGZyRkNnZmpjTEpCdGNxejFHWUJl?=
 =?utf-8?B?VmZySWROZ3BXS2hINllIVGZtWWtFcXYxaExqaDVzZkZlb200cFBvVkdOa01Q?=
 =?utf-8?B?VXl3NnkzV05rRDJjbTU1VkM3Z253YVdFcUlFM3RlOGlCd2ZGSGJCcGtTS1Jk?=
 =?utf-8?B?ejNpazhENTlPSm9Fa1g2eEdQbk13ZVA0akNJbVBKRGpwSzRCMmVNT2ZXQk1u?=
 =?utf-8?B?UXpWQVI1cmtSQ3FoTFNnTWU0dWp2Y2QyMmZZMmZpTlNnbXl3UVdtVmxQYUNj?=
 =?utf-8?B?ZzZyS1pzMEQ2YUFmMU1BVjJ3QmZtY3ZOS1puQVlJMWRIT1lZMGVBQXBpZXU5?=
 =?utf-8?B?UE5iTG13aWV0R0RrRHR6Q3ZzRml1dGxtek9qcUNjOEM0cG41U1UvMTg0a3By?=
 =?utf-8?B?ZnF4akEwNFBqTzJwdFhueXQyMXBTSkxhTW96bjl2bm90MmdxZ1FsZUpZdlR4?=
 =?utf-8?B?QmtqYkh3Zy81KzdRWHZRR0JxT3lBbnJ6SzFQR0NrdVZiRE51WVNKbXlKeDRL?=
 =?utf-8?B?WmdMRDQ2aVB1R2dFb3RqQ043SnFtWVBVQStKOXFVR29lNmZGdVBzQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DCE0874A39D7094D96B07D8208071E26@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d5221acf-5568-4638-b456-08d9ab5a9d55
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 12:46:32.3915
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EzudJwB4x7eiVXUbxrGX29mbyYpFGza2zzKehVnpC1NYgxtIm5XGFY6EaOEhu4t6XMPJd5AyrnnFAkURh8Mmf/R2mVk1z9+Gk971xv284zskRXJfoGUvA/6trQI+Jw1N
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2832
X-Proofpoint-GUID: _oo06QfxKy2eHHpBYma45ugBJEXGeofV
X-Proofpoint-ORIG-GUID: _oo06QfxKy2eHHpBYma45ugBJEXGeofV
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0
 adultscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 bulkscore=0
 mlxscore=0 impostorscore=0 mlxlogscore=999 phishscore=0 lowpriorityscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111190070

DQoNCk9uIDE5LjExLjIxIDE0OjM3LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxMzoxMCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOS4xMS4yMSAx
Mzo1OCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMDUuMTEuMjAyMSAwNzo1NiwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hl
bmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4NCj4+Pj4gQWRkIHJl
bGV2YW50IHZwY2kgcmVnaXN0ZXIgaGFuZGxlcnMgd2hlbiBhc3NpZ25pbmcgUENJIGRldmljZSB0
byBhIGRvbWFpbg0KPj4+PiBhbmQgcmVtb3ZlIHRob3NlIHdoZW4gZGUtYXNzaWduaW5nLiBUaGlz
IGFsbG93cyBoYXZpbmcgZGlmZmVyZW50DQo+Pj4+IGhhbmRsZXJzIGZvciBkaWZmZXJlbnQgZG9t
YWlucywgZS5nLiBod2RvbSBhbmQgb3RoZXIgZ3Vlc3RzLg0KPj4+Pg0KPj4+PiBFbXVsYXRlIGd1
ZXN0IEJBUiByZWdpc3RlciB2YWx1ZXM6IHRoaXMgYWxsb3dzIGNyZWF0aW5nIGEgZ3Vlc3Qgdmll
dw0KPj4+PiBvZiB0aGUgcmVnaXN0ZXJzIGFuZCBlbXVsYXRlcyBzaXplIGFuZCBwcm9wZXJ0aWVz
IHByb2JlIGFzIGl0IGlzIGRvbmUNCj4+Pj4gZHVyaW5nIFBDSSBkZXZpY2UgZW51bWVyYXRpb24g
YnkgdGhlIGd1ZXN0Lg0KPj4+Pg0KPj4+PiBST00gQkFSIGlzIG9ubHkgaGFuZGxlZCBmb3IgdGhl
IGhhcmR3YXJlIGRvbWFpbiBhbmQgZm9yIGd1ZXN0IGRvbWFpbnMNCj4+Pj4gdGhlcmUgaXMgYSBz
dHViOiBhdCB0aGUgbW9tZW50IFBDSSBleHBhbnNpb24gUk9NIGlzIHg4NiBvbmx5LCBzbyBpdA0K
Pj4+PiBtaWdodCBub3QgYmUgdXNlZCBieSBvdGhlciBhcmNoaXRlY3R1cmVzIHdpdGhvdXQgZW11
bGF0aW5nIHg4Ni4gT3RoZXINCj4+Pj4gdXNlLWNhc2VzIG1heSBpbmNsdWRlIHVzaW5nIHRoYXQg
ZXhwYW5zaW9uIFJPTSBiZWZvcmUgWGVuIGJvb3RzLCBoZW5jZQ0KPj4+PiBubyBlbXVsYXRpb24g
aXMgbmVlZGVkIGluIFhlbiBpdHNlbGYuIE9yIHdoZW4gYSBndWVzdCB3YW50cyB0byB1c2UgdGhl
DQo+Pj4+IFJPTSBjb2RlIHdoaWNoIHNlZW1zIHRvIGJlIHJhcmUuDQo+Pj4gQXQgbGVhc3QgaW4g
dGhlIGluaXRpYWwgZGF5cyBvZiBFRkkgdGhlcmUgd2FzIHRoZSBjb25jZXB0IG9mIEVGSSBieXRl
DQo+Pj4gY29kZSwgZm9yIFJPTSBjb2RlIHRvIGJlIGNvbXBpbGVkIHRvIHN1Y2ggdGhhdCBpdCB3
b3VsZCBiZSBhcmNoLQ0KPj4+IGluZGVwZW5kZW50LiBXaGlsZSBJIGRvbid0IG1lYW4gdGhpcyB0
byBiZSBhbiBhcmd1bWVudCBhZ2FpbnN0IGxlYXZpbmcNCj4+PiBvdXQgUk9NIEJBUiBoYW5kbGlu
ZyBmb3Igbm93LCB0aGlzIG1heSB3YW50IG1lbnRpb25pbmcgaGVyZSB0byBhdm9pZA0KPj4+IGdp
dmluZyB0aGUgaW1wcmVzc2lvbiB0aGF0IGl0J3Mgb25seSB4ODYgd2hpY2ggbWlnaHQgYmUgYWZm
ZWN0ZWQgYnkNCj4+PiB0aGlzIGRlbGliZXJhdGUgb21pc3Npb24uDQo+PiBJIGNhbiBwdXQ6DQo+
PiBhdCB0aGUgbW9tZW50IFBDSSBleHBhbnNpb24gUk9NIGhhbmRsaW5nIGlzIHN1cHBvcnRlZCBm
b3IgeDg2IG9ubHkNCj4+IGFuZCBpdCBtaWdodCBub3QgYmUgdXNlZCBieSBvdGhlciBhcmNoaXRl
Y3R1cmVzIHdpdGhvdXQgZW11bGF0aW5nIHg4Ni4NCj4gU291bmRzIGF0IGxlYXN0IHNvbWV3aGF0
IGJldHRlciB0byBtZS4NCj4NCj4+Pj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0K
Pj4+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+Pj4+IEBAIC00MDgsNiArNDA4
LDQ4IEBAIHN0YXRpYyB2b2lkIGJhcl93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwg
dW5zaWduZWQgaW50IHJlZywNCj4+Pj4gICAgICAgIHBjaV9jb25mX3dyaXRlMzIocGRldi0+c2Jk
ZiwgcmVnLCB2YWwpOw0KPj4+PiAgICB9DQo+Pj4+ICAgIA0KPj4+PiArc3RhdGljIHZvaWQgZ3Vl
c3RfYmFyX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVn
LA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZhbCwgdm9pZCAq
ZGF0YSkNCj4+Pj4gK3sNCj4+Pj4gKyAgICBzdHJ1Y3QgdnBjaV9iYXIgKmJhciA9IGRhdGE7DQo+
Pj4+ICsgICAgYm9vbCBoaSA9IGZhbHNlOw0KPj4+PiArDQo+Pj4+ICsgICAgaWYgKCBiYXItPnR5
cGUgPT0gVlBDSV9CQVJfTUVNNjRfSEkgKQ0KPj4+PiArICAgIHsNCj4+Pj4gKyAgICAgICAgQVNT
RVJUKHJlZyA+IFBDSV9CQVNFX0FERFJFU1NfMCk7DQo+Pj4+ICsgICAgICAgIGJhci0tOw0KPj4+
PiArICAgICAgICBoaSA9IHRydWU7DQo+Pj4+ICsgICAgfQ0KPj4+PiArICAgIGVsc2UNCj4+Pj4g
KyAgICB7DQo+Pj4+ICsgICAgICAgIHZhbCAmPSBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLOw0K
Pj4+PiArICAgICAgICB2YWwgfD0gYmFyLT50eXBlID09IFZQQ0lfQkFSX01FTTMyID8gUENJX0JB
U0VfQUREUkVTU19NRU1fVFlQRV8zMg0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDogUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV82NDsNCj4+Pj4gKyAg
ICAgICAgdmFsIHw9IGJhci0+cHJlZmV0Y2hhYmxlID8gUENJX0JBU0VfQUREUkVTU19NRU1fUFJF
RkVUQ0ggOiAwOw0KPj4+PiArICAgIH0NCj4+Pj4gKw0KPj4+PiArICAgIGJhci0+Z3Vlc3RfYWRk
ciAmPSB+KDB4ZmZmZmZmZmZ1bGwgPDwgKGhpID8gMzIgOiAwKSk7DQo+Pj4+ICsgICAgYmFyLT5n
dWVzdF9hZGRyIHw9ICh1aW50NjRfdCl2YWwgPDwgKGhpID8gMzIgOiAwKTsNCj4+Pj4gKw0KPj4+
PiArICAgIGJhci0+Z3Vlc3RfYWRkciAmPSB+KGJhci0+c2l6ZSAtIDEpIHwgflBDSV9CQVNFX0FE
RFJFU1NfTUVNX01BU0s7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3N0YXRpYyB1aW50MzJfdCBn
dWVzdF9iYXJfcmVhZChjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJl
ZywNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhKQ0KPj4+
PiArew0KPj4+PiArICAgIGNvbnN0IHN0cnVjdCB2cGNpX2JhciAqYmFyID0gZGF0YTsNCj4+Pj4g
KyAgICBib29sIGhpID0gZmFsc2U7DQo+Pj4+ICsNCj4+Pj4gKyAgICBpZiAoIGJhci0+dHlwZSA9
PSBWUENJX0JBUl9NRU02NF9ISSApDQo+Pj4+ICsgICAgew0KPj4+PiArICAgICAgICBBU1NFUlQo
cmVnID4gUENJX0JBU0VfQUREUkVTU18wKTsNCj4+Pj4gKyAgICAgICAgYmFyLS07DQo+Pj4+ICsg
ICAgICAgIGhpID0gdHJ1ZTsNCj4+Pj4gKyAgICB9DQo+Pj4+ICsNCj4+Pj4gKyAgICByZXR1cm4g
YmFyLT5ndWVzdF9hZGRyID4+IChoaSA/IDMyIDogMCk7DQo+Pj4gSSdtIGFmcmFpZCAiZ3Vlc3Rf
YWRkciIgdGhlbiBpc24ndCB0aGUgYmVzdCBuYW1lOyBtYXliZSAiZ3Vlc3RfdmFsIj8NCj4+PiBU
aGlzIHdvdWxkIG1ha2UgbW9yZSBvYnZpb3VzIHRoYXQgdGhlcmUgaXMgYSBtZWFuaW5nZnVsIGRp
ZmZlcmVuY2UNCj4+PiBmcm9tICJhZGRyIiBiZXNpZGVzIHRoZSBndWVzdCB2cyBob3N0IGFzcGVj
dC4NCj4+IEkgYW0gbm90IHN1cmUgSSBjYW4gYWdyZWUgaGVyZToNCj4+IGJhci0+YWRkciBhbmQg
YmFyLT5ndWVzdF9hZGRyIG1ha2UgaXQgY2xlYXIgd2hhdCBhcmUgdGhlc2Ugd2hpbGUNCj4+IGJh
ci0+YWRkciBhbmQgYmFyLT5ndWVzdF92YWwgd291bGQgbWFrZSBzb21lb25lIGdvIGxvb2sgZm9y
DQo+PiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgdGhhdCB2YWwgaXMgZm9yLg0K
PiBGZWVsIGZyZWUgdG8gcmVwbGFjZSAidmFsIiB3aXRoIHNvbWV0aGluZyBtb3JlIHN1aXRhYmxl
LiAiZ3Vlc3RfYmFyIg0KPiBtYXliZT8gVGhlIHZhbHVlIGRlZmluaXRlbHkgaXMgbm90IGFuIGFk
ZHJlc3MsIHNvICJhZGRyIiBzZWVtcw0KPiBpbmFwcHJvcHJpYXRlIC8gbWlzbGVhZGluZyB0byBt
ZS4NClRoaXMgaXMgYSBndWVzdCdzIHZpZXcgb24gdGhlIEJBUidzIGFkZHJlc3MuIFNvIHRvIG1l
IGl0IGlzIHN0aWxsIGd1ZXN0X2FkZHINCj4NCj4gSmFuDQo+DQpUaGFuayB5b3UsDQpPbGVrc2Fu
ZHI=


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:49:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:49:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227867.394220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Kd-0002UN-9j; Fri, 19 Nov 2021 12:49:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227867.394220; Fri, 19 Nov 2021 12:49:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Kd-0002UF-6W; Fri, 19 Nov 2021 12:49:31 +0000
Received: by outflank-mailman (input) for mailman id 227867;
 Fri, 19 Nov 2021 12:49:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo3Kc-0002U9-AG
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:49:30 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2268e6e7-4937-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 13:49:29 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2109.outbound.protection.outlook.com [104.47.17.109]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-14-DnNb-oR-NNWlSY-Mmeo72Q-1; Fri, 19 Nov 2021 13:49:27 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6382.eurprd04.prod.outlook.com (2603:10a6:803:122::31)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Fri, 19 Nov
 2021 12:49:25 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:49:25 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0368.eurprd06.prod.outlook.com (2603:10a6:20b:460::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Fri, 19 Nov 2021 12:49:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2268e6e7-4937-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637326169;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=L0aiZyQ893H87PplnJ/v5X2YUGgRMy1gS/lYW2dLN3c=;
	b=G8gqRgHRjfjSf1fFqhmg/09LPDhVgFc2JVwL0k98Y+nvWGX5ziGYQJbjvFr1wAbItxa3E5
	qg7tJPTR2n5ymosNNCmp9B0UafB8+yUpGOCPs1Ynos9DM6ashuwFlVlaVw29AIyxdZjYvl
	iyHGSpjktyRHldc/1r85WBCfrgGMy+U=
X-MC-Unique: DnNb-oR-NNWlSY-Mmeo72Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=L3iYza2fjmqFlakqYsQ6uImQMrxdZJyOQ4eZZKbkq9ZAkLqavYtT3JOq5Yxbho+iivFzF+Bokw1L0RuaEkQk5SJ//X6R3NL97uHnImtsqSrn8YAmUrm4m39douZybdkMK3uCoZEO0voDqn+tdaLeWxdNTh8giWvxTUwkmcGQbPyw8e8n2DSXd0V9gq+76u5wDQ+tGWHONOudYNHEMMAcoweH0BtJPLhR/0yjH5liHit/Si0TeZYadaIaVY1lIJWwvdxwKR9oZkr718blUNV/NF1puWwQv7rJK6ofwt+uZFIsBzWtbb8K79jDi6ZLlY3cl4KCRAsCSCwLnKHZLsnIvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L0aiZyQ893H87PplnJ/v5X2YUGgRMy1gS/lYW2dLN3c=;
 b=XiA4731hI2Ps+QGsKpQAQfw1VPnc4gQQi+VtJKyRxQILgw6RwR4KcHFesGJfL2zYzyom2MzUgIS+gy6hW1xl3eh/ROAcXhyGVFdHIgyy9U91R4avPd0TEIuenq6ynkCxuyT/RO8cvVvRp+zkJzOmenslsBt0XDRp9pKAZSNYR0OiBKvUDyQGunBnnRGIKSeDWRyNqtNGLNJEZ0KGtt5Vwfz2aZoVfnLYu1YFHzn4gAvcq1IVavqdG3m7XqLZjtoKNsYDwQXznBzrfeSn0UYVzudXcbDVnBL4xUV/OBUSQ5s2nZXiSIZp0O+TGsFaZBZjGdW5Us4cow8nzZzGW7kWDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ed2a6b5c-6e3a-07ca-a2f0-532a0de10329@suse.com>
Date: Fri, 19 Nov 2021 13:49:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
 <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
 <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
 <6c61bd19-228a-fc12-eb64-00c8c5340292@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <6c61bd19-228a-fc12-eb64-00c8c5340292@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0368.eurprd06.prod.outlook.com
 (2603:10a6:20b:460::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 30317d71-35b6-4c12-32d9-08d9ab5b045b
X-MS-TrafficTypeDiagnostic: VE1PR04MB6382:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6382ABB077502A8CC26C5F2EB39C9@VE1PR04MB6382.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	M9IoxhL/jZQ+fYl0RMQTMbwpBasCqafKwYSnbwhycmVZmsRrU9s6Ku7lJQtET6czVT35oR1kYWDVKbTfwwOSVIBim4yLbFY0Y3zs6UgfxTQBhe2k67Yi0jCrB9jXLSRNwAi8fzg1w5g760Ysnn7vNgVB0H7LJGQD4vvye5RO10kApY0BzKCedWWP8bpUGaY0tckZBxPxEeQK6IpHURMJBwHsuoyJS0mlJ2prVJeKkjRKB3vbtuuJvAkRTAdK0vFjo2rQ9L9wqaxYl0KEMykhm4sKeTSPi7LJqlRVeDosiY5s+cJg9Z01D9TEA95tjOKkFZlRrNhnhCHfeu9VvRpzqg6B7NfmVxRt7TrRI6arORbWglHEwNFJgZTvDE1FhOjruHUoCByc3syxzt95/e4JC5WItuAtyQw8Idl5ASo1kAgq6p9URd65e1BuuKrH4g68CdOQ1IFDHWU1yjItJJdWxFZCP45OHBla2HNF5F0pA1YSkW+01w1rzLrX31USYAL0pPmdkhpK+zm4MCyaM1ToxQo6trAhOaLShC92WvRN9mT9BtNMd3tyDwKk1QbmqWf7ZrhXwStzwBmsskv/xFs7+rbUDr7h3lcMF5Tg2mKLIs3sn1S04w9wqJ7oi/ZQAcpHWTLx0nV8L5ssdw2CuhKqALpwbe8vYsQSEhEvAK/fJ3KJqaYzrUdVBG8uR32Ajv51nmm/IpaOu03sx2elyxTFm67L4xNoUw2ej46qgRt57mI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6666004)(5660300002)(2616005)(8676002)(38100700002)(16576012)(6916009)(316002)(54906003)(4326008)(86362001)(26005)(53546011)(2906002)(508600001)(7416002)(66556008)(31686004)(66946007)(66476007)(186003)(31696002)(6486002)(8936002)(956004)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aERPVHYrZjB3STFQbk1lOXY4UktzdjF3MW1aMzc5VUpOZUMwNkgxUDNGMUVJ?=
 =?utf-8?B?cnMrVHBZeXpXZXBKTHRQS0dXeXlLS01lTVJ3VzlKWSt2U1VHNGtSYXYvbG84?=
 =?utf-8?B?Z1lUSXNVQ2Y2TERwY1dUVDRhTzJYRHErek9MUDFnZWlEL0dUS3BOL2NHYkd1?=
 =?utf-8?B?bXBJS0QyOWxXQjZkc3M4SlpSY0hXZkdUdE1OT0VvT2NoYUFyMUc2dFBuRCtq?=
 =?utf-8?B?Y3JqVzJpY0N3Znp0Wmp4ZTVSMDczNnM2K0wzcjM1Nk5WOFlFU1dUU1E4Z3A5?=
 =?utf-8?B?bXg1SURPVmtxOGdDQ05VNks3My94SVN1Yy8yZDlGRm1OQjdtSDJUMTRsUUxW?=
 =?utf-8?B?emtnV1dGUENQQVA2ZU9hZUx6TEJxSUJCYitpbFhHR3BrN2drNUpBUzNrd2VL?=
 =?utf-8?B?V1VhYlVubGVNQ3JGQkdZTW01OCtWSktEMWNMbXEyNElkVjFQVXVCVTJTellE?=
 =?utf-8?B?K0dDSWtnQ1lhTFViZkdTQVJKOWVlZnpZbU84WVdQbXkzV1ptTFBSdml5eFor?=
 =?utf-8?B?UlMrWit5Q1FDQnY3Ty9RMlJ5cDROemhJUW5QMlNkbGtqVTRFZm16S2tsNDk1?=
 =?utf-8?B?RWFQc24rT1JHeEkrdmVNeFZLMytwOGFESmJqSlRxbFRiamdPZTdpeWlGemI5?=
 =?utf-8?B?dVB1TGJqSy9JNEtmWmZxSTd3VTI3UmtmN3dlWmlJN0VuR3hoVVJ6cm13UDRm?=
 =?utf-8?B?VFFOekZqY3RZNWFORmNhemdValp3eHBJT0lJckk1MjVnZXlaeWY2Sk9BMExP?=
 =?utf-8?B?RVYzVXhJd2JFYzUwN2RmTXQyUFlXL0ttbXlYTURJa3hXUDZBb3hZdjVKazRL?=
 =?utf-8?B?SEhiZ3dPQTJYL1NESGI3c1JBUTNwUVluRW94QzZuSzV1RE8veDNMV2pDWktp?=
 =?utf-8?B?OTVvUGp6ZysyeTluYWQ3aURIeXJLd2w1TXJYN1I2R2w5RGRFMjN5dEVuaUNM?=
 =?utf-8?B?SEM1R2RkU3FGTkRHQmhyaXdMTkZybW9QT1dNcG1VaWE0dC9IMERZd2I0bTZ1?=
 =?utf-8?B?MmVRVGU1c2Izdzg3UHJ1ZlhscTlmWFptYUErcjd6R2ZjR3BGcmJNNXVXL1o2?=
 =?utf-8?B?WE11M0llWFZRRTBvZzl4OEZNSGhnUlRSaGRXRWpKaGsxYkx1SVRYOVA2N3hN?=
 =?utf-8?B?Zk9UVjFZbTY1MkFrajJTZk43YVp2aUJuVVlEMHFucnJ2YVhMc1NkL0VKbEZD?=
 =?utf-8?B?MTZBMzZZYmtsZXlTclA1SG9TMlhoVUxJaGJyN3pmaDdjdTl4WlQ3ZHhVT1or?=
 =?utf-8?B?WlAwQkR3Slp2YzNzRHlUbk1LMnZ3Vk5JOGN3dlFaNk9yS3lBUG9NbkR3RUwv?=
 =?utf-8?B?bW4xTlNOejFPbm45UWN0WVNsZFUwZnRxUkxnZ0NwYVE1SC9XVGFoZENaTSs1?=
 =?utf-8?B?VUltdjZ3R1J4RE1zT2cxcThLVnNsOVBXeHhiaGNLeVFZbklENGNCS0xZT3Bs?=
 =?utf-8?B?NWR2b2RTRUtscGViUk5CU09Lc0ZYMER0WlhQVDRRckRRakhVWnp4MHVWODNN?=
 =?utf-8?B?cDdvSVpxWEhqTzMyN0hZc2MyYWdUd2hzY21NQzhnakFHWGh3eFN1cTBiYWt5?=
 =?utf-8?B?OEhqcXRMQS9tZHV4ZldKU05PQjFIV3FhYkRRS2dRWEFmVjBQRFhxTmxjYWZx?=
 =?utf-8?B?UUYzczltYnRFVUF3eHN6NHBWcXBpQ1Z4aElod2VaL1BKZzRwUW05aXlvWkV0?=
 =?utf-8?B?aDErR2l6dDQxS0JuSm9HUXB1OXM1ZWNoTU1iK1Q3QnRWb0lhWVVsMkc1dVBr?=
 =?utf-8?B?b2RkRFlNeHRHR3BrNmc1MkdVMnBuVnBnUUJncnVqR0svNldFajREOVMwSWRQ?=
 =?utf-8?B?aDVMVXBHQ1greGpoelQ3dzMzaGtzMFAwQ2lUZkRENzdCMFpsbURXTzRlU3Nm?=
 =?utf-8?B?OCt3RWJacVlBWDU0ZDBvSFpSNGpuZCsvV2QyaHV6b1dOQTZZMlpkN1lxZmVu?=
 =?utf-8?B?VmJ3bnBSSCtXdkh1QTExUDBidmJ3VGs2OWxCSzJGeUdaSlJ2eEg0eXZDdGgv?=
 =?utf-8?B?ZW9HblVuM3dMakxtaHRPMVZTV2dQdDNQV014TURNdnhXSklISm55dlRyRC8w?=
 =?utf-8?B?NWNoeGdXM1RxUlpUVyszdSs1S3lKSklxVnNFUktDTEdGNXJuOVkzZHRQQ0Rs?=
 =?utf-8?B?M0o0QkVDZjd6WkJPUkhFcEErK1ZWR2dXSCsrWXF1eHdZMXRreEJCVko5Ri8x?=
 =?utf-8?Q?d22b/qoKF4P7ldEwOIsKnmI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 30317d71-35b6-4c12-32d9-08d9ab5b045b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 12:49:25.4154
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DeHcT/8E3T+fC/hM63m+My5n0tLtLKSie/p96i8OCcjsmbT3VlJm2hgAL/XWRUdWWA24pHX3EK6zD2hnpOEKxQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6382

On 19.11.2021 13:46, Oleksandr Andrushchenko wrote:
> On 19.11.21 14:37, Jan Beulich wrote:
>> On 19.11.2021 13:10, Oleksandr Andrushchenko wrote:
>>> On 19.11.21 13:58, Jan Beulich wrote:
>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>> --- a/xen/drivers/vpci/header.c
>>>>> +++ b/xen/drivers/vpci/header.c
>>>>> @@ -408,6 +408,48 @@ static void bar_write(const struct pci_dev *pdev, unsigned int reg,
>>>>>        pci_conf_write32(pdev->sbdf, reg, val);
>>>>>    }
>>>>>    
>>>>> +static void guest_bar_write(const struct pci_dev *pdev, unsigned int reg,
>>>>> +                            uint32_t val, void *data)
>>>>> +{
>>>>> +    struct vpci_bar *bar = data;
>>>>> +    bool hi = false;
>>>>> +
>>>>> +    if ( bar->type == VPCI_BAR_MEM64_HI )
>>>>> +    {
>>>>> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
>>>>> +        bar--;
>>>>> +        hi = true;
>>>>> +    }
>>>>> +    else
>>>>> +    {
>>>>> +        val &= PCI_BASE_ADDRESS_MEM_MASK;
>>>>> +        val |= bar->type == VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_TYPE_32
>>>>> +                                           : PCI_BASE_ADDRESS_MEM_TYPE_64;
>>>>> +        val |= bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
>>>>> +    }
>>>>> +
>>>>> +    bar->guest_addr &= ~(0xffffffffull << (hi ? 32 : 0));
>>>>> +    bar->guest_addr |= (uint64_t)val << (hi ? 32 : 0);
>>>>> +
>>>>> +    bar->guest_addr &= ~(bar->size - 1) | ~PCI_BASE_ADDRESS_MEM_MASK;
>>>>> +}
>>>>> +
>>>>> +static uint32_t guest_bar_read(const struct pci_dev *pdev, unsigned int reg,
>>>>> +                               void *data)
>>>>> +{
>>>>> +    const struct vpci_bar *bar = data;
>>>>> +    bool hi = false;
>>>>> +
>>>>> +    if ( bar->type == VPCI_BAR_MEM64_HI )
>>>>> +    {
>>>>> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
>>>>> +        bar--;
>>>>> +        hi = true;
>>>>> +    }
>>>>> +
>>>>> +    return bar->guest_addr >> (hi ? 32 : 0);
>>>> I'm afraid "guest_addr" then isn't the best name; maybe "guest_val"?
>>>> This would make more obvious that there is a meaningful difference
>>>> from "addr" besides the guest vs host aspect.
>>> I am not sure I can agree here:
>>> bar->addr and bar->guest_addr make it clear what are these while
>>> bar->addr and bar->guest_val would make someone go look for
>>> additional information about what that val is for.
>> Feel free to replace "val" with something more suitable. "guest_bar"
>> maybe? The value definitely is not an address, so "addr" seems
>> inappropriate / misleading to me.
> This is a guest's view on the BAR's address. So to me it is still guest_addr

It's a guest's view on the BAR, not just the address. Or else you couldn't
simply return the value here without folding in the correct low bits.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:51:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:51:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227871.394230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Lv-0003oF-KZ; Fri, 19 Nov 2021 12:50:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227871.394230; Fri, 19 Nov 2021 12:50:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Lv-0003o8-Hj; Fri, 19 Nov 2021 12:50:51 +0000
Received: by outflank-mailman (input) for mailman id 227871;
 Fri, 19 Nov 2021 12:50:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo3Lv-0003o2-0W
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:50:51 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51da04c3-4937-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 13:50:49 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJCRvS7007946;
 Fri, 19 Nov 2021 12:50:47 GMT
Received: from eur03-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2051.outbound.protection.outlook.com [104.47.9.51])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ceby2g2pf-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 12:50:47 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB6884.eurprd03.prod.outlook.com (2603:10a6:20b:2de::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Fri, 19 Nov
 2021 12:50:42 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:50:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51da04c3-4937-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iuK/g6c14aP2jpNiWq4vDWRavWF6oN404PthDReOj6D+z/ZHg/gexh02IbkZcEV7T9ukg50D152MGIkDYLPbnYjrFIkR8gZCrHNYvtEf64yo68XkRDkxV456/0HuK9AUtb5NWajm8TYRhLsuLzsN2yzk4TDJJVKiM24FaLdLolJx+CGr+RsgBcwuYlo1+uo6ASa/stgkh8DAiYPxZGWzHzQMX8/x5u+hT7KO8l16PbCKOf0z+qdmv98VIOnX8VO8X2sVfFiY3Rr2JEiIdehWzAC1dGgkNTgGynICoJratXX3mvRok24+jxppqr+moYzSiFjOcFCK7bA8doUOKOt5gw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Gucn4GoxjAnbDeafu2/ruyMlVydR6mo0GvKh1UJKVQA=;
 b=N2y9Jt01OmsP6WqPa2onY8D/TZpJeP1WyB0ey+C/RQ5u14jQ1cAG9SxxYKJ39hoIkFy3noNq9ZXi/+9tknERtM0MwDds5yu6etE2JqHLpPC8WhbDbvw7XQVnF32b0ETij/a+y1ScrgywkD8CfOiezm67+F6NwiwXSWw0lPGiLibNR1HAXoSwl+JLh6GMP5vhor8l+yHNgeYBlbezjj9NluBuBsc13JCysO2Jf9O24+ZYgJtuCkSw/pKjMrV4AX0Vsx+4AEJX/tPob4UlIVgn91Cp4BIvf9zpMPodvZU0rXuSW2Mki8dlGdf6vExXpqBV/bSVXoRjKwK36LnUTe5g4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Gucn4GoxjAnbDeafu2/ruyMlVydR6mo0GvKh1UJKVQA=;
 b=Da+1nhrMzQPzGofi6FrWOsdMf6/t+tsoZxp5RAqT8MUWmSYDxC/yPDDuM7MZuieesYWvxeuLhPQcs0emeu+l3qcpaV1xFkpRnWVd72PU7tF09B52ejokEhPCBXZb/UFJP5P6FysksIqN86YIp4vXjuTD+leDOQVNS2CHwC/dUJDE+31q6E68X58fE9yWBi/DuBkoo+N527QlJSX0ZZKj7YevJ8Jo4KA2M8H5SS1CarDzuUNX7dzYCYYjB7EiblumsKTZSIZ5ZbgTuwhyeN4sfyKadOgA94SIvaV7XjWsIyyxB9eOcye+asO/nzE0dz28udVSBUF9nf+tACldU73vvg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Topic: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Index: AQHX0hJLwt+wJ2t1lka5jlbMIq7ZAqwK13MAgAACAoCAAAkUAIAAAXCA
Date: Fri, 19 Nov 2021 12:50:42 +0000
Message-ID: <ea3e52f3-c844-d2a7-2f45-9d4e1bd04d5a@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <9aec23b3-2269-39fe-9fc0-fb8cf7f9de44@suse.com>
 <1a380ef9-bdc9-bbfa-35b7-ec1c901e3019@epam.com>
 <76e929f9-2df1-951f-55bf-58caba80750c@suse.com>
In-Reply-To: <76e929f9-2df1-951f-55bf-58caba80750c@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3a118117-7608-4e47-ac6e-08d9ab5b324f
x-ms-traffictypediagnostic: AM9PR03MB6884:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB6884F3DFE31290500D10BAD6E79C9@AM9PR03MB6884.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 tWxTw+e8GNhOh97615zGLxZRMkmyUt64lT5I7h1pRPxTRxkOgZ8IQ2IIHlf0YWQmJNXKg/fjhK3Lp7JszOp3AdhtSk3JragZX+5LHkJFebwaX/2F62kdq2w75FFxQRhiesRaMG0fjCgy5EwBxgBtskqmJPgOd1gL+4f5wqAAxb0wdd7y3Abc+8YxEML2py3FoNj0Z3ag/OFe8jaqEYqGgdPMc7JzXoMRnDkeDA6pasivok4EBGJoL7g6KCs/y5/qU9Zc1RE6k8V7Ln2KP00JQ1zjNJA7Ruqu8TGfxLNIO9QPmFjpeKA5uJvq+3Ntoy+ZA5i3XLhwfMaJUhh2fuHGHOSU5ScAGMRPSgvYfKHzhZJJ2Da9BCvAZBXxTUr03CJYPS02JJ6Zt+X/G4ZLbth1PfnURLae+X9TTaoGY4x3isynAPO06nV7679lxVsEiTEO0RxcSX9Dk/q3nVX+lVRL6P7+BMZvZNEqBuqJecbcGgc/foyoADN6Tn6+bfKvn1maNcHcS8KtAMOyWmpSOw4L87y6fhDljg1kPEuVtzBxxmvZndRKrIhcCx+3DpZo6h9bxhR8QWGFtV6re3n2OJ6dUnhvMVD5JHmA2fge09NnfRz3A2PlS1+hIDZVNYQ+3UvFQd0+aNguRImSzkSTcL17tNZEkocF80RbW9HKQ7R00vczxnsH3MeqHF7mKgzDkB2D/gw/8xqM+N7jTRjyGdb9ajnQaGV4zWI9kHa6bXRkfFYwQ1ljMTGA08G2Guip7pGh
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38070700005)(4326008)(8936002)(86362001)(316002)(186003)(5660300002)(2616005)(38100700002)(508600001)(71200400001)(2906002)(66946007)(91956017)(76116006)(66446008)(122000001)(6486002)(53546011)(8676002)(6512007)(31696002)(6506007)(64756008)(66556008)(66476007)(31686004)(7416002)(6916009)(26005)(36756003)(54906003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?SW1oSGdYVlN6Ny9TRXpLc2MxUHhzck8vajllTWlMdzRtOVo4Wkl1UnBNVWxZ?=
 =?utf-8?B?bEVvc0xkKy9BSlVITm93eWUwODZqOE03dFFidEJZYm96dVUwMkRTVVFKTWhB?=
 =?utf-8?B?V29iTXJIVk1hTU1FVWdHaUlOTFFUcndTNXNaWm1TQnZTamtFaml2K21GTnhu?=
 =?utf-8?B?ZzdqcDdvVUNpckRZZ3lFbmo5dW9pUXBmNVhUSExXMGlybHFJZEYvemFhWjY3?=
 =?utf-8?B?MHFWUWpmWVN0QlFSRFNzQkwvYUY0MlNWMitIUFRYY1NTVUk1Y0xxczZBM3lC?=
 =?utf-8?B?eDhOY3B5MUcxaCtNWU1KTEVPVlQ3SHpHYU5DZWQxQWZia00velJubTJaa2xu?=
 =?utf-8?B?VGxyV1ZBaVpGSmFrbE5BcGxmSnZlSlh0TDZmaXBRY1Vqdm9vMlhuQkJwdDJ1?=
 =?utf-8?B?MHhpcUNUSnNlazRXOTJTQTJvNVJoSDBrZHBPY0RpUUovcnVBSm5vRVlFV3ZM?=
 =?utf-8?B?S0dKTWR1eXdJTU02cGF6WHFXdDFNREt0dmpxdWlnQUhpWXlZakpNbEdINDAx?=
 =?utf-8?B?cy9IeVMvbEhrc01YRTM1MHgvQWd1M2ZNOWpBS1pOS0VYNGRBempRNGdKWVF0?=
 =?utf-8?B?L05qNHUrOXA3eUl3WGwyWmI3R1lXU29VSjc2NWxaQTE3SlBiYWE1OTh4L0JK?=
 =?utf-8?B?aDlkK0h0Nis3UDR0TzcwL1hramdhWU8xekFPbm1TRUxiYjQwbHY5QnBTQXpN?=
 =?utf-8?B?ZVNVUHVXQlBZcGJRaGZEVjR0MHdGeU9BMmFsbEJmNEJ4YmFjRzNocTllMjVT?=
 =?utf-8?B?TEVjZ3ltTjl0S01hdjBTNzNaVk82OGxWSHJ0VG0vTm9nT3dPMEdVV0x5UG9N?=
 =?utf-8?B?MitDOE4wWnpBdTNjNUc4SHA2ejE4Lyt5RFM0aUtpdEFkT1cxQUQ2SUdrZ0FT?=
 =?utf-8?B?UlA4aUJhQXJtUnJLKzJ6d1p4SUtCK2d0UTlQcnhYSEFsOUd0VU9rRHREcmZm?=
 =?utf-8?B?VDVwOTdWNXh3TUQ1aUNvY044NCsxd1VGc01FRTZiR1NMY1kvMDhaTnlOU1o4?=
 =?utf-8?B?dEZnUkYzYkxTWktUMk45cjN4Z3lyYmFZclQ3eXEvMytxclowMGh2S2JDL25w?=
 =?utf-8?B?UVFjVDJuZk1qL1loeU9FNXFuaitzam9qUGJXTHE2K1p2ZjViRHZ2ZnI1NW5w?=
 =?utf-8?B?OVhxYS9EaE5ZVzAxMVozc2JWcVVBSGxycEFaOTZWUjNMeTEwc0xyT2dsUS9S?=
 =?utf-8?B?YzRGWXNBcWNVQ3RGbzlWaTF0bEdxMkFpeHBTdkM1RmxiOXM3SlhVdFpabG9Y?=
 =?utf-8?B?RURYMFBnb2tTakwrNnhCZTNqRUZ4MElxS21KK1lFTGZwcVBKaWtaMktlazU5?=
 =?utf-8?B?OWJmNndsdC9pZ1RvNXcvb21haEdoUW9adXcxTW1lc0d5NDhqR3BjOWZyZjFO?=
 =?utf-8?B?MFVhRHBPcTdLOUNiTStYNFovTmdBS2NVOG5pV281QWxrYWZEYVVSbDhnRjhh?=
 =?utf-8?B?YWhUbGUzeTR4bUFpOWphY0U5aTYwODlLY2RLaUY1cCtIcmhQOW1BOW1JcFNj?=
 =?utf-8?B?WXByUyszdEFscVRzNzREMUZIOG1ZNG1rcXlmQ2hVVFFuVHhnVHpTTzVjbXZW?=
 =?utf-8?B?L1ZtYnIwelFUbnNkLytQZiszNVM3K0RTRGJWTUdVZWVQUk16Yng5QURHNms0?=
 =?utf-8?B?RTZaZm52S0Fvc2hzaXVCaHM2bkcwK0J0VzBJOFNRdGZQY0Z4YmR5WHZQK29I?=
 =?utf-8?B?cjErWWdhbjZVNGJrRktjUDNBb1BNTWRENTZSbnNDNTRseVBPQ1E4NzFlLy96?=
 =?utf-8?B?c2l2Y2g2amYvU1h5TUd5dUw1Ym5TUTJ2RXlzdFdQR2FwL3Jpb2txa3RNTzlo?=
 =?utf-8?B?djFocHY2VkdxOHBRS0xhOTdaYk9saFh4bzhsS05uMFFzdnFIRjRlOWpxWldt?=
 =?utf-8?B?QWR3WUJZZVNmYkE4bG1jN0c0MDFiL3ppdDdHeHV3VjMzNlduRnZOemdzUEdr?=
 =?utf-8?B?TTJHbTJaVkJhUmZkVFpXU3M4VDhhUStKYVlScHEwYUc5bys4cy83MUpETS8v?=
 =?utf-8?B?RzJBMzBlcTJxOE9IRXEzVE5odVZjTitpUGp3WXBFSkRNMks2THhCK3ZIbm1z?=
 =?utf-8?B?MitBdzMrcGtHR1gyS2hMUGMyNTBDRGtHdzMzK1ZBelA3REFrMzJLL0ZEN3Uv?=
 =?utf-8?B?a1MxSjk3RVRpRCtjRG5mcnpLZno4RC9VVXVHYUVIazJoaVFsMkJrQWZKS1lB?=
 =?utf-8?B?WkVwTjVNKytuU2hOL3BQa0phbjhhT21iR0tGeU9aWWlFeWttem5OSmZEWDBn?=
 =?utf-8?B?UzU3Q00zdit3NGkvbHcyV1EyRDk2OUNEVDZxaGxPSkJaZ2RjZWI1dU5hdG4v?=
 =?utf-8?B?WkRxaFhwTWRpQ05QMzFLTTk4YUZsTHUyMkcvQzJkQkVTVmtibXd0QT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CDEED55AB6B2724EAD803713EB1AAEB6@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3a118117-7608-4e47-ac6e-08d9ab5b324f
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 12:50:42.3006
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: rf+/o44Zg7hkN/I4L+71mI3ApuAPKvVhv+Lt/id5ytNmClK+A9bIpsgxVgAwxtEHlVOa2jrRA/YnBn6lU6qOdDP6cNV/kO1YbG6f8HUxourSs0DH6HpaFQxDbwli7x07
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6884
X-Proofpoint-GUID: P5xn_QqqG7H3xbuRuiSCRkBj5sm2HaDh
X-Proofpoint-ORIG-GUID: P5xn_QqqG7H3xbuRuiSCRkBj5sm2HaDh
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0
 adultscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 bulkscore=0
 mlxscore=0 impostorscore=0 mlxlogscore=999 phishscore=0 lowpriorityscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111190071

DQoNCk9uIDE5LjExLjIxIDE0OjQ1LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxMzoxMywgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOS4xMS4yMSAx
NDowNSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMDUuMTEuMjAyMSAwNzo1NiwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hl
bmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4NCj4+Pj4gSW5zdGVh
ZCBvZiBoYW5kbGluZyBhIHNpbmdsZSByYW5nZSBzZXQsIHRoYXQgY29udGFpbnMgYWxsIHRoZSBt
ZW1vcnkNCj4+Pj4gcmVnaW9ucyBvZiBhbGwgdGhlIEJBUnMgYW5kIFJPTSwgaGF2ZSB0aGVtIHBl
ciBCQVIuDQo+Pj4gSWlyYyBSb2dlciBkaWQgaW5kaWNhdGUgYWdyZWVtZW50IHdpdGggdGhlIHNw
aXR0aW5nLiBNYXkgSSBuZXZlcnRoZWxlc3MNCj4+PiBhc2sgdGhhdCBmb3IgcG9zdGVyaXR5IHlv
dSBzYXkgYSB3b3JkIGhlcmUgYWJvdXQgdGhlIG92ZXJoZWFkLCB0byBtYWtlDQo+Pj4gY2xlYXIg
dGhpcyB3YXMgYSBjb25zY2lvdXMgZGVjaXNpb24/DQo+PiBTdXJlLCBidXQgY291bGQgeW91IHBs
ZWFzZSBoZWxwIG1lIHdpdGggdGhhdCBzZW50ZW5jZSB0byBwbGVhc2UgeW91cg0KPj4gZXllPyBJ
IG1lYW4gdGhhdCBpdCB3YXMgeW91IHNlZWluZyB0aGUgb3ZlcmhlYWQgd2hpbGUgSSB3YXMgbm90
IGFzDQo+PiB0byBpbXBsZW1lbnQgdGhlIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBhcyByYW5nZSBz
ZXRzIGRvIEkgc3RpbGwgdGhpbmsgd2UnbGwNCj4+IGR1cGxpY2F0ZSByYW5nZSBzZXRzIGF0IHRo
ZSBlbmQgb2YgdGhlIGRheS4NCj4gIk5vdGUgdGhhdCByYW5nZXNldHMgd2VyZSBjaG9zZW4gaGVy
ZSBkZXNwaXRlIHRoZXJlIGJlaW5nIG9ubHkgdXAgdG8NCj4gPE4+IHNlcGFyYXRlIHJhbmdlcyBp
biBlYWNoIHNldCAodHlwaWNhbGx5IGp1c3QgMSkuIiBBbGJlaXQgdGhhdCdzDQo+IHRoZW4gc3Rp
bGwgbGFja2luZyBhIGp1c3RpZmljYXRpb24gZm9yIHRoZSBjaG9pY2UuIEVhc2Ugb2YNCj4gaW1w
bGVtZW50YXRpb24/DQpJIGd1ZXNzIHllcy4gSSdsbCBwdXQ6DQoNCiJOb3RlIHRoYXQgcmFuZ2Vz
ZXRzIHdlcmUgY2hvc2VuIGhlcmUgZGVzcGl0ZSB0aGVyZSBiZWluZyBvbmx5IHVwIHRvDQo8Tj4g
c2VwYXJhdGUgcmFuZ2VzIGluIGVhY2ggc2V0ICh0eXBpY2FsbHkganVzdCAxKS4gQnV0IHJhbmdl
c2V0IHBlciBCQVINCndhcyBjaG9zZW4gZm9yIHRoZSBlYXNlIG9mIGltcGxlbWVudGF0aW9uIGFu
ZCBleGlzdGluZyBjb2RlIHJlLXVzYWJpbGl0eS4iDQoNCj4NCj4gQXMgdG8gb3ZlcmhlYWQgLSBk
aWQgeW91IGNvbXBhcmUgc2l6ZW9mKHN0cnVjdCByYW5nZXNldCkgKyBOICoNCj4gc2l6ZW9mKHN0
cnVjdCByYW5nZSkgd2l0aCBqdXN0IE4gKiBzaXplb2YodW5zaWduZWQgbG9uZyBbMl0pPw0KSSB3
YXMgbm90IHRoaW5raW5nIGFib3V0IGRhdGEgbWVtb3J5IHNpemVzIGluIHRoZSBmaXJzdCBwbGFj
ZSwgYnV0IG5ldyBjb2RlDQppbnRyb2R1Y2VkIHRvIGhhbmRsZSB0aGF0LiBBbmQgdG8gYmUgbWFp
bnRhaW5lZC4NCj4NCj4gSmFuDQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 12:55:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 12:55:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227876.394242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Pq-0004Sm-6O; Fri, 19 Nov 2021 12:54:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227876.394242; Fri, 19 Nov 2021 12:54:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Pq-0004Sf-2Z; Fri, 19 Nov 2021 12:54:54 +0000
Received: by outflank-mailman (input) for mailman id 227876;
 Fri, 19 Nov 2021 12:54:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo3Po-0004SZ-HL
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 12:54:52 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1cd7bea-4937-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 13:54:51 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJCRv5F007949;
 Fri, 19 Nov 2021 12:54:49 GMT
Received: from eur04-db3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2050.outbound.protection.outlook.com [104.47.12.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ceby2g331-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 12:54:48 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Fri, 19 Nov
 2021 12:54:42 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 12:54:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1cd7bea-4937-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QbhOMpBiGq2uOpD14tIBveHhX8nyypeC57nju7jfgNhM18Qdj+Z0t4yOX2O8a6+NWSL02/cqVBEsOG5auBPLJgWws6rBV1lnLS7NGIFU14p17sOIHlDDujKrV7z2N9MhqN4gPftUV0Wbuw7HGjr8sagbHLj/Z9VxDTzI2/63RAFLoDeMZXQrPSgufebX3TVIK8Kxeudoj35M2WmHSQvhhE71BQdghC238WlVezRSAwCBhsTl1VNFySSWrexXuikpy7FGh4xd8Nvt80++3s6NY9AZY95GQBGH9mBYgJokJtZ4y53GawBMgU5oYLAbUi5rnMsgCOO88No1DpHLgm4yew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jsWMVxkl+QNKftYZsSb05NA1RqFxM5JXrMkFGJkPHIA=;
 b=gQqdXTJmDgOixA0CJ5WiTXK34wCOOOmkAyJUD376dwC/VMlPxPPkyjWXfme9SLq7uiAnFOMWM61l789Vbuh4CFAld5lEkk+0aRG/4OBf+d9Tw0E23KJNdjgSmIBn+WOqILnKTDXF1dGTrjRSYj3MW46LeL4Ru8lmCEEBbYw2Ia1ClOEAfYKn1dprqrVrUVsoYEWdVvS4cZizEMQXsPzDfkaHfZ0hYWreudK/SkoZ3HZDFXR/eMVS+82y41fuOdw1vi/qxZKHWNBYXO4zBibumVvsphCdvScisrAe15scFUYoPIxIHAczcoZw6Iy378nFWD+uo3yxv50UQlEwLdZ+tQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jsWMVxkl+QNKftYZsSb05NA1RqFxM5JXrMkFGJkPHIA=;
 b=EZCaaJSK7FouKGdO6wDaA2GTPGij76TSXLwPvar0AiShNDtDGAcKk1X4TLOfByXVcSDskplXu9vpqFTYQTxJuLsrv/So+j2D8ajecr6lgch3sTgvIsvzgryf+s/8luiSrLhg0FB2oIxvqLgHeFy2rQ0CNjVYFKdJCLE0IE4jnIC46ZaRV5wh/VnOlql0jsfmQJ40ClfWLVolg01QhMqrTMvfsMEAnbFDcGgaWLjE1Zu1BAdub4Necp1rQcIr8MoSKc4vHRRMm4pMfYBirSWpaX7HBuDPO2uF6kG3E7GNmMkIid0PqWY+1DgnuNARWRmWAGNIFSxuhKpGk44q4PB9oQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Topic: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Index: 
 AQHX0hJK3jTao+VT7Ua3mM5UrGfltKwK1UUAgAADYYCAAAeUgIAAApWAgAAAtgCAAAGSgA==
Date: Fri, 19 Nov 2021 12:54:42 +0000
Message-ID: <c3b58e3c-9644-6e74-5ca1-25df33028b71@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
 <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
 <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
 <6c61bd19-228a-fc12-eb64-00c8c5340292@epam.com>
 <ed2a6b5c-6e3a-07ca-a2f0-532a0de10329@suse.com>
In-Reply-To: <ed2a6b5c-6e3a-07ca-a2f0-532a0de10329@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3ccdff43-56de-44bd-17f7-08d9ab5bc14e
x-ms-traffictypediagnostic: AM0PR03MB6324:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB6324819B43A8B6F454C8EDAAE79C9@AM0PR03MB6324.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 0Cjz3JLFVmFo5TP470up1fagBvLgScnAUlIUgUI+sk8J74F7l2RXWcGzOQFEFK/hwY0gBQnOrLE5O2OJSYRV82eR6ChqcjopQiPLqch1U23o6nTpK48h9Mo548YPlA3SgKgNxNWsdCanxGfkGIlVQjewuT5YnGs+SeDenXP3BIp8CnXIXixreNxFMB9EGzFHczCn+hzRB9qqY3jMxnVDXaD0LQrP6flDPI0+BQ7AZPDVE3Xs088crLoHveQmsBsXRVbGyhVwVfhmI0+4HKrwkl7pSPaNrClKL7BCRikxv+Qo9+la3o7a0+HjlT54HJzNkGNt8+8oNyAY0OuCfAyQ1E7ONdzcmPJWU/2HPxUqmTFRNzLKaW4a1tB4nPfYZ40ZXJICRT7vdWSEJLMKmn42UKoFhPcH8VYke3qm0m5bZ32bxl6RwCHsDIplLaDC8qrkTylOYSgXCv8GIEmu/FlU037wlnlN9soiVy0bAtjFrtOY0GOCOuq1z0fB4wQHj2eYeEhXy6nizqIBd9pNloAlO7X+guPgidkMqdezwwZ7V/7klHpwdufOJ73Vb0mtH4P5p8sVysDzJzgWhtaLsSjnEKn+27JeID/EIRWJ8mLGNoSkSKrK7w8DLwHRuaRABBfUZEvUtYR/pY1n5mMrEWfS2RF3HNnz4MZTOgHEd20Qmvd3FpmwQfmj/GZcvOovlI2u+lt1OkbBQmTbaLsDXmLYSSqOppfJtbagaYlo93Q3/QIv5KGZ4kDh+yGuUUt63HjB
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38070700005)(6916009)(2616005)(8936002)(186003)(6486002)(7416002)(26005)(76116006)(31686004)(66446008)(66476007)(66556008)(64756008)(91956017)(8676002)(36756003)(53546011)(6506007)(54906003)(122000001)(71200400001)(6512007)(31696002)(38100700002)(4326008)(86362001)(66946007)(5660300002)(316002)(2906002)(508600001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?WnYrQTVRTnA5SllSTXlxMjV6ZnpnUzZvZURXaGR3YkwzeFZHUTRTdUxCMjVL?=
 =?utf-8?B?R09EbDdJR3FKUjBWdnlIS1lBbllkb1VhQVBxbHcwbU9GNTZzalNhbGlzWUNw?=
 =?utf-8?B?Ujh6WDZtcVlFK21uS1Y4bmo4R2Y3TzkrYlAwZU5IS1dHT3RIaWgxdjk5OVBD?=
 =?utf-8?B?QkgxcnhyOTNmKzh1TkNjVDRoMnhZTCtvajBOOHpWNkZHcDJVa0JtUmFldDRr?=
 =?utf-8?B?bHNiajNubGRTS2hCS2NzNCszRzBRdGdJZFd0TFd3OFNMb2ZXditMT1RvSWcr?=
 =?utf-8?B?cEw1RWFjaU9tSnJqZVJRVjlZdDdSc3JmQ1ZRQmt2NlJBbnpqYnRLR2hQd2J5?=
 =?utf-8?B?YlgrempjWGo4ZzA2MjN4d25nZkhzeTVWQUk0d1RSY0d2VEZaMitIdDBHUFM1?=
 =?utf-8?B?cEFxSThUVW5Obk1mazJvY3g3UG80WWxxVE5CWFRrSDduZWNnTEQwTjBOUGJG?=
 =?utf-8?B?SG4rbG1TVFJVSnI4SXRjMkNLVVliVGhJTVdHZldiOXhjY3Ztdm5QMFY1alN0?=
 =?utf-8?B?blNmQkEyekFYVHB3VXJqdCtsaWpBVWQ4citpTmpJa3Z0azBueWlTRjBMNkJz?=
 =?utf-8?B?emdtUVppTmdtd3doUG5mNi93L0JvN0ZvUUhiMDJ5dnl1ZXZuSG43eWtTYTlK?=
 =?utf-8?B?SjhYcjhPMTJ1YWpKYzU1NEpBK1NoNW53dzRUZFY1N0N2RTA3ZGNGOFl6R3Jx?=
 =?utf-8?B?ZStROXlUa1NWUmlDYlhwWG5abHNMM1lIcWs2Q2Vtb3Y0dWdCUGJrSHF2Ukdo?=
 =?utf-8?B?YXJiN2VZZFVsbnlPZUpnOTJGMnplbzEzQ24vWWo2RGlmcHNZZVhtc3R1MWZ5?=
 =?utf-8?B?enJ4bjFFQ2tNd21ieTZ4bFlUR3NzTDNFYzYwS2dZYS9vYlhHczdXR1daeFlN?=
 =?utf-8?B?MGl6RUxXMWcyK3FPSHFvNkR3TTlRNHZFaE9oWGRpc1l5K1BtYlR3SHlCZVhz?=
 =?utf-8?B?bVNWcG9OQVZnKzdnV2xlZjhvSjMvbHU3c243RG5zSVNRcjl6L2dPUFRSZFZ3?=
 =?utf-8?B?RUxsK0tUN3JwOW5ubFVhWnZwcytXdU45QjU5Zk1TRm4yb2VkMXZNOXBxNUlG?=
 =?utf-8?B?aU9XR2JKZzc4MVVDRC8yK1dqOGMvNmFsUGsvNFo0Y3FtYWJ4dmFxeUJLNGlV?=
 =?utf-8?B?cnNtNWdZbXBtTEttMjJqbGJJbWhqZ1UrSlRXR3lEeHozYU95SE9ZTzFGd2hJ?=
 =?utf-8?B?M2NQaWc4NllhNU1RbDRPdGpITHl5MTY3YjI1WkRxVWd0WjBPakZZQWhpQXNs?=
 =?utf-8?B?MWFiOUlJQTdDWEpHQk1CR1M5VE82TE9Yanh0RXVOWC9NMzdPRW0vb3NrNVR2?=
 =?utf-8?B?RWV1T3lSMi9KSjFUbjQ1c0pCT1lRa05xejJPWTBXUkRlYlpXQ0F4L0JOZ1U5?=
 =?utf-8?B?TWhGLzBhUVA5OXd6UitiaGgwZjlwUkErUWdUTWRBbHNtb1lpTjVjQTRsRG9Q?=
 =?utf-8?B?d2d6Rm1wZ0xjNERKL3R4UW5TRFoxcEhrc3hNT2hRV2Y0ektOOUFYbGVVSWQ5?=
 =?utf-8?B?MHNTZmxBN3dQM3pGVXVkUVVtT2JRRC9EUDF2UThncEhoNTRTcXd0bTdXZkxu?=
 =?utf-8?B?NXcrb2JkTEZhYU9HSU5paXVtK205UFV2Zy9aMGdOMnh2cm9RV1lhVm00TWFC?=
 =?utf-8?B?aWh4ZW5TOWVhS2NDYTY3N2tsQnVGMG9tWmsyRlBpOGk4QU0wUVk0bTNqVGds?=
 =?utf-8?B?cW4zM1ZRU29WNjNraDZ6QVY2Q1FtRnVDcHFyTXZtQzZnSGNraklMVXFybVVu?=
 =?utf-8?B?NjdCcmpNbTBrTmlUUWNLdGhYOGVOZVVGVTVIL1FudEhva1NZbXJFZGNyVHZt?=
 =?utf-8?B?Ukg4UDd4aisvNmd1eUtYUlNtVlJORlNvSHBQSTNCL0lydllwbFlSMmJtK3l2?=
 =?utf-8?B?dUhCRDUzcC9nS2w1U1FoV1lMYVJOb0FGdkIxUDZwS1UwM1JzaDNPYm1qdFg1?=
 =?utf-8?B?VU9kMURlVUl5dEMvT3NXUFdMVnd6K082SFU1U0VMaTN2MEZWMnBYSVNyVGQ0?=
 =?utf-8?B?ZXNpVndzSWNzdXgvN0NxL1NqRHNPWnhBbFlRVW16V3U2M054UXZEQk93bmwr?=
 =?utf-8?B?N0tVQXdKbWlZdDZFdEZRWWtsMkFUaUJZbklSbDR5VUlGd1lhUVg2TW9ESm5I?=
 =?utf-8?B?Zi9QSEdiRDBJVWFCaDJ4enZHNDRpUzhha3B6ZzVwYnNQNlhKZWM4SmwwRGZl?=
 =?utf-8?B?L2VrNVo4bm5hV3hKMzZKQnlHWDB4dzlqSFdYRXVRNjYzQm5pc25KUlgreEVO?=
 =?utf-8?B?aEdiM01kTjZPeEh0aHZpN0xZQjI2UU1lWjM0em9SZ2QzUTRZT1JCWE5UaW9I?=
 =?utf-8?B?dU9jRzhNS2Rzc1lXWDJabjgxZXpDL0pMTys4UDczd2diT1QwMXg2UT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6A62DD921309384C89C12E35917EB567@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ccdff43-56de-44bd-17f7-08d9ab5bc14e
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 12:54:42.1855
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: PGeKLTd4fvooHBFXUReE6Rh3LJTfSOCVrMlkhbyXaJ4TdsZ2seWASQq6lrZK3Di5r6qvm14rROpJMyjU57tl0wSaTOkxtyOPzUpQ+tpoG814kl4rA4DGpjwq5X6KjSEL
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6324
X-Proofpoint-GUID: _Zdv7ha4gaZT_AWtjVB2YvH58rnZLeMZ
X-Proofpoint-ORIG-GUID: _Zdv7ha4gaZT_AWtjVB2YvH58rnZLeMZ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0
 adultscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 bulkscore=0
 mlxscore=0 impostorscore=0 mlxlogscore=999 phishscore=0 lowpriorityscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111190071

DQoNCk9uIDE5LjExLjIxIDE0OjQ5LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxMzo0NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOS4xMS4yMSAx
NDozNywgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTkuMTEuMjAyMSAxMzoxMCwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IE9uIDE5LjExLjIxIDEzOjU4LCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIHdyb3RlOg0KPj4+Pj4+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+
Pj4+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+Pj4+Pj4gQEAgLTQwOCw2ICs0
MDgsNDggQEAgc3RhdGljIHZvaWQgYmFyX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2
LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4+Pj4+ICAgICAgICAgcGNpX2NvbmZfd3JpdGUzMihwZGV2
LT5zYmRmLCByZWcsIHZhbCk7DQo+Pj4+Pj4gICAgIH0NCj4+Pj4+PiAgICAgDQo+Pj4+Pj4gK3N0
YXRpYyB2b2lkIGd1ZXN0X2Jhcl93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5z
aWduZWQgaW50IHJlZywNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz
Ml90IHZhbCwgdm9pZCAqZGF0YSkNCj4+Pj4+PiArew0KPj4+Pj4+ICsgICAgc3RydWN0IHZwY2lf
YmFyICpiYXIgPSBkYXRhOw0KPj4+Pj4+ICsgICAgYm9vbCBoaSA9IGZhbHNlOw0KPj4+Pj4+ICsN
Cj4+Pj4+PiArICAgIGlmICggYmFyLT50eXBlID09IFZQQ0lfQkFSX01FTTY0X0hJICkNCj4+Pj4+
PiArICAgIHsNCj4+Pj4+PiArICAgICAgICBBU1NFUlQocmVnID4gUENJX0JBU0VfQUREUkVTU18w
KTsNCj4+Pj4+PiArICAgICAgICBiYXItLTsNCj4+Pj4+PiArICAgICAgICBoaSA9IHRydWU7DQo+
Pj4+Pj4gKyAgICB9DQo+Pj4+Pj4gKyAgICBlbHNlDQo+Pj4+Pj4gKyAgICB7DQo+Pj4+Pj4gKyAg
ICAgICAgdmFsICY9IFBDSV9CQVNFX0FERFJFU1NfTUVNX01BU0s7DQo+Pj4+Pj4gKyAgICAgICAg
dmFsIHw9IGJhci0+dHlwZSA9PSBWUENJX0JBUl9NRU0zMiA/IFBDSV9CQVNFX0FERFJFU1NfTUVN
X1RZUEVfMzINCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDogUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV82NDsNCj4+Pj4+PiArICAgICAgICB2YWwg
fD0gYmFyLT5wcmVmZXRjaGFibGUgPyBQQ0lfQkFTRV9BRERSRVNTX01FTV9QUkVGRVRDSCA6IDA7
DQo+Pj4+Pj4gKyAgICB9DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgYmFyLT5ndWVzdF9hZGRyICY9
IH4oMHhmZmZmZmZmZnVsbCA8PCAoaGkgPyAzMiA6IDApKTsNCj4+Pj4+PiArICAgIGJhci0+Z3Vl
c3RfYWRkciB8PSAodWludDY0X3QpdmFsIDw8IChoaSA/IDMyIDogMCk7DQo+Pj4+Pj4gKw0KPj4+
Pj4+ICsgICAgYmFyLT5ndWVzdF9hZGRyICY9IH4oYmFyLT5zaXplIC0gMSkgfCB+UENJX0JBU0Vf
QUREUkVTU19NRU1fTUFTSzsNCj4+Pj4+PiArfQ0KPj4+Pj4+ICsNCj4+Pj4+PiArc3RhdGljIHVp
bnQzMl90IGd1ZXN0X2Jhcl9yZWFkKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25l
ZCBpbnQgcmVnLA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAq
ZGF0YSkNCj4+Pj4+PiArew0KPj4+Pj4+ICsgICAgY29uc3Qgc3RydWN0IHZwY2lfYmFyICpiYXIg
PSBkYXRhOw0KPj4+Pj4+ICsgICAgYm9vbCBoaSA9IGZhbHNlOw0KPj4+Pj4+ICsNCj4+Pj4+PiAr
ICAgIGlmICggYmFyLT50eXBlID09IFZQQ0lfQkFSX01FTTY0X0hJICkNCj4+Pj4+PiArICAgIHsN
Cj4+Pj4+PiArICAgICAgICBBU1NFUlQocmVnID4gUENJX0JBU0VfQUREUkVTU18wKTsNCj4+Pj4+
PiArICAgICAgICBiYXItLTsNCj4+Pj4+PiArICAgICAgICBoaSA9IHRydWU7DQo+Pj4+Pj4gKyAg
ICB9DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgcmV0dXJuIGJhci0+Z3Vlc3RfYWRkciA+PiAoaGkg
PyAzMiA6IDApOw0KPj4+Pj4gSSdtIGFmcmFpZCAiZ3Vlc3RfYWRkciIgdGhlbiBpc24ndCB0aGUg
YmVzdCBuYW1lOyBtYXliZSAiZ3Vlc3RfdmFsIj8NCj4+Pj4+IFRoaXMgd291bGQgbWFrZSBtb3Jl
IG9idmlvdXMgdGhhdCB0aGVyZSBpcyBhIG1lYW5pbmdmdWwgZGlmZmVyZW5jZQ0KPj4+Pj4gZnJv
bSAiYWRkciIgYmVzaWRlcyB0aGUgZ3Vlc3QgdnMgaG9zdCBhc3BlY3QuDQo+Pj4+IEkgYW0gbm90
IHN1cmUgSSBjYW4gYWdyZWUgaGVyZToNCj4+Pj4gYmFyLT5hZGRyIGFuZCBiYXItPmd1ZXN0X2Fk
ZHIgbWFrZSBpdCBjbGVhciB3aGF0IGFyZSB0aGVzZSB3aGlsZQ0KPj4+PiBiYXItPmFkZHIgYW5k
IGJhci0+Z3Vlc3RfdmFsIHdvdWxkIG1ha2Ugc29tZW9uZSBnbyBsb29rIGZvcg0KPj4+PiBhZGRp
dGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgdGhhdCB2YWwgaXMgZm9yLg0KPj4+IEZlZWwg
ZnJlZSB0byByZXBsYWNlICJ2YWwiIHdpdGggc29tZXRoaW5nIG1vcmUgc3VpdGFibGUuICJndWVz
dF9iYXIiDQo+Pj4gbWF5YmU/IFRoZSB2YWx1ZSBkZWZpbml0ZWx5IGlzIG5vdCBhbiBhZGRyZXNz
LCBzbyAiYWRkciIgc2VlbXMNCj4+PiBpbmFwcHJvcHJpYXRlIC8gbWlzbGVhZGluZyB0byBtZS4N
Cj4+IFRoaXMgaXMgYSBndWVzdCdzIHZpZXcgb24gdGhlIEJBUidzIGFkZHJlc3MuIFNvIHRvIG1l
IGl0IGlzIHN0aWxsIGd1ZXN0X2FkZHINCj4gSXQncyBhIGd1ZXN0J3MgdmlldyBvbiB0aGUgQkFS
LCBub3QganVzdCB0aGUgYWRkcmVzcy4gT3IgZWxzZSB5b3UgY291bGRuJ3QNCj4gc2ltcGx5IHJl
dHVybiB0aGUgdmFsdWUgaGVyZSB3aXRob3V0IGZvbGRpbmcgaW4gdGhlIGNvcnJlY3QgbG93IGJp
dHMuDQpJIGFncmVlIHdpdGggdGhpcyB0aGlzIHJlc3BlY3QgYXMgaXQgaXMgaW5kZWVkIGFkZHJl
c3MgKyBsb3dlciBiaXRzLg0KSG93IGFib3V0IGd1ZXN0X2Jhcl92YWwgdGhlbj8gU28gaXQgcmVm
bGVjdHMgaXRzIG5hdHVyZSwgZS5nLiB0aGUgdmFsdWUNCm9mIHRoZSBCQVIgYXMgc2VlbiBieSB0
aGUgZ3Vlc3QuDQo+DQo+IEphbg0KPg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:01:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:01:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227883.394253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3WM-0005y2-0r; Fri, 19 Nov 2021 13:01:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227883.394253; Fri, 19 Nov 2021 13:01:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3WL-0005xv-Tw; Fri, 19 Nov 2021 13:01:37 +0000
Received: by outflank-mailman (input) for mailman id 227883;
 Fri, 19 Nov 2021 13:01:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo3WJ-0005xb-SI
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:01:36 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d1b4c749-4938-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 14:01:34 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2052.outbound.protection.outlook.com [104.47.10.52]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-23-KhUTFP3wMQG5p-uWI6enmA-1; Fri, 19 Nov 2021 14:01:31 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3934.eurprd04.prod.outlook.com (2603:10a6:803:1b::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 13:01:21 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:01:21 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0701CA0065.eurprd07.prod.outlook.com (2603:10a6:203:2::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.17 via Frontend
 Transport; Fri, 19 Nov 2021 13:01:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1b4c749-4938-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637326893;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=l3m3b2AtaHUE8ZHHHVdW19u+G4FZGg4/IgQcJjG71Y4=;
	b=Q8xH0bKKxGDWLQ9eNN0CJ5u3MW/0lUkBiRLmRsnHQZ98n9u7Tn6P0tEAcizJM1T30ElUwQ
	g4v65F3IspHngWzapMHlxLoFto7wDSD3LFeQdDgP46yUWgz/kIazE8dMB59d940AcVGEwf
	xkbPFzgxNY3b8S21kxcdEzfAvacZlcg=
X-MC-Unique: KhUTFP3wMQG5p-uWI6enmA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JD3jLjNp/E2LiIGIQOd5XcRPs7aqtyXcgiqTr1AO6zqdP8dNHm2O6snUxZmY2zia+5RXkSUOhrb1tqstayspYQRC1fJjamwHuwqqCGZGusZr0nSkrTbfnichoMtX5gIkrtZKnPy037wm1gyxRakhcsMiJNIwLlXbYJ/Eg0fd2UCTEx8KLOHm3yUWVDtDZeSchc2dvEl9eXbjBJjcCSjkXIMKxS5wJg4l7msb8TBytOCGW1dYuz/F7hRgx9nWnFTa4/IQZxTjd6mu72UZVzt0HfL4z5cUKvrd+HOYgKojTe/c4gmlhinDXiERljHZXGaM8lrcvFDCg5QKko5G1VB7NA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aoXtEWcat3ZJ0NsTKaaM5NBTp3WHS2TcIAermQB/Scw=;
 b=buGnLYl14sd0pBwkt07vsJBxXa/1Ojzy1jjOij/TdDr3iGiKfbpWNRDmcjeqtgcxj+EfScliCIvMprW6TMJLsnHdJk8VVejtd11FJuRcRR88WyUJWR3qp8ENQxZMfp8JR8BZeqfyuyRtQbFCZvPax02AotYdEqxhPAJexxudEQRqGpHFe/OnLndPraNnResBA0pJMILiZk+3cxi0YP+eC2wZr6p8jGFAyVoIcw/EkiiA9hHOJXwosbyd/ePb2Gl5qf/FSlJ9ldVuYRcUP0cBZkFjnLUZVedFtpZKuyc65JjMW2SonVxIuhIXUH6sAxuJ1ewzSjx+nzigoSW7Hbvgfw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
Date: Fri, 19 Nov 2021 14:00:57 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
 <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0701CA0065.eurprd07.prod.outlook.com
 (2603:10a6:203:2::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 10f1b639-41f0-4445-77ae-08d9ab5caec8
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3934:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3934BB13758989A1B2EB10A8B39C9@VI1PR0402MB3934.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/gQ5nKn1Ho8/1sY00tflZ14UdUXnbpcBxSaisXLloCc8rijBJQFrDQNUBLZFmkxLCVYwuLRSLSiynA34STS8+HjUuDNqkPaUoMOhXYi4uLCUl8N1+ib5Y3jx92NZjKH/HWYu+c5DDzDRIr8jNKjjzNoGZkIua7rADIIh4b+FCMONB3giCLGZobV8mo5wP1uonVTrbcNj/Xn6OdyluRj6VpR17PrJDYO91fMak19IEeigXQDcd+1qssYmQ/keK9MdAED9CuDhwQyI+9DKwgW1A6sSpcxgnP8D4/uh/KqinVzlAV3vNr+suL91zUfHCBMb72l058kphlB+6AVOU2ukU8UPKvI2Hy5uOfKne4Jjx69kYq1BaQ+FEjtDHM5yrAqdXIKSaX7prhV8P5edsuUB+PC/SEu0iXvo3sOtms4yFNL1akOsACC4vBc/8Xfa22kbItGc/kUXIZAJJP4X2k0k/Eu2z2/jC5SxpYV7vrlxNjNdkTRoz/p9Vtpq9733mHFBqGJqZ6VH2aAC6L4KawEln8pncedEjH8ERmnlHIH56zX2oRKK2kEOVGqmfiWN7Ga/vgcKBH8c+LTqIMXkY9FNISNPtBLLba34URK2qO1NN4hzAPXIiTyk894z//bdctonVmwdJIJ2VVOzSBjmbA0oJS3WDOTDzuXoalH9RnQOq16ualmXpjFMOFUkWkAw4Pcvbn/CU/VyERlSd1s8T7K2A6LR0qqnLQ2qumXd/MAoDWM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(66946007)(36756003)(8676002)(83380400001)(316002)(508600001)(53546011)(31686004)(2616005)(26005)(956004)(16576012)(5660300002)(66476007)(86362001)(8936002)(2906002)(38100700002)(6666004)(66556008)(7416002)(6486002)(4326008)(31696002)(54906003)(6916009)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ywET9dhD41dBK1Xmcn6G31QaOJrl5vWsbvZefnbADxQk8RDgSs4Mbbvi5YRZ?=
 =?us-ascii?Q?UnT3PtJPXnhRgnzBPuoUDEe8ex0FAQDeaLU6CAYBYDgzgkUtw6CD6LdjBbLm?=
 =?us-ascii?Q?uSJDqLxN3RK6HwMQzzNueJnDsLBJQFoVvXb0Fi9PSyrwAT+tndoOB93i0EHZ?=
 =?us-ascii?Q?Y1kef4vKFI7x9zdgh6D1jsUlKBrddQhuzcjoPote8N6KdEZ7dyE+f4SU4j3y?=
 =?us-ascii?Q?3XkvqcZwEGSu1KNjLt4lmaZEfCW+uHS92gvMzVWNwNUy8RQrQSOqhhZh07Pg?=
 =?us-ascii?Q?R1QkAbDwYbgTdDz8LyMX44Yga1utNvCsm+uO+d8TzXcZ1mB4jTGGDgYvg5oB?=
 =?us-ascii?Q?j93UlPh7fdT5gyyYwlhoO0PJULP9IVNqpQ/iL8YDm1brG1l0le4LkcwAtErN?=
 =?us-ascii?Q?eR6Qdq73ycHvHgdUsDdRMjJCcxVaQ0iwl5RvLlVgmnsq2q2YU5rNEHxMeLQw?=
 =?us-ascii?Q?kaOB3sb9kxYg2uuIh2+bHA7wL+DpHZ+ijcCsbRByQbl5QWaX8xRC/mtMAro1?=
 =?us-ascii?Q?FwzTVrJLKvT8uc278lO9gWk3BCXevJa2VVztI5SB1g06wuZlZcuGGg7kOtCP?=
 =?us-ascii?Q?Q5sK6DiHTs1DSm5+gj3T1oqcc65sDAoADoe8AsKFHUKzOm8tP3c5I07jG+un?=
 =?us-ascii?Q?LYM08On1BdTmERYv02QNYbf+o9PRifhDXw7VURJKekbg5RkRL7eJwPxbTDYn?=
 =?us-ascii?Q?XulXM8Hh1B5RqQ1IPzClX3x5AY7zct+n4nDNltuvAuMIW3yTyJXvLIVq58PR?=
 =?us-ascii?Q?MTMp1udSOdRRhJjC+RzVkvgtBZveI/lvm3lXrhT8/DCnDsU7h8gKCufvCNwp?=
 =?us-ascii?Q?GYfs0IG5td2mrtYeHScmErDjGubajjnf3BIO7gSab7Sxu6LUzn/2gYDZ2FS+?=
 =?us-ascii?Q?w0YWaGNgeQHtqElYm8GExraxihRQAWVhc+26NQmbIJwfadhPUkvITr7bb4sB?=
 =?us-ascii?Q?bMHKJZ2HRcIDhWwfyP4aFuHldnnyBGfYfazP9oUliXGTTwTjT7Az0WTortGz?=
 =?us-ascii?Q?UQPdfpAx2wQ29zSHNP0tXO7rLcgMBhxHrVuzlnuhS4ed6dZwDmImIGhmPAUB?=
 =?us-ascii?Q?UQAMynRWzsU4LXlKzMKyOahTNXOtgpeoqllU+GcLRWONB9FmyNxokEiqrFzS?=
 =?us-ascii?Q?649mnrCwG56A0l5Z0Qn/x10ztaeRq2wSs1iyjipkWkoP90pBTN+I5fTYHxDI?=
 =?us-ascii?Q?q23Bege/PqiQEmNByEYawAtwetHCm3AisgLs9RahReEZOdKBV7Q6YpSDr73N?=
 =?us-ascii?Q?QK8IOvFvWaXClFZX6IjYfUw/o0LymwBtGKPuUWoWkGdaDUCS40sxjrh42+/v?=
 =?us-ascii?Q?doYzq8qgKyiaoGsAzzo/RTizo945X8+dsZrTpRjl0EMOrp4XTGVtXm/K9VGj?=
 =?us-ascii?Q?i4M2saKXNzQ1mGPlHiik7G8854bbMjCzJ0sMqmJcVN/VM9NiE98f60+xXJC0?=
 =?us-ascii?Q?HU/VlwY6ton/1Lvt3VyEp0/igK7cbSFFqeYRlHsfdrhUp6hdaRnTY5FULbvi?=
 =?us-ascii?Q?GdUX5h+kmhV/AZfZJkRABZ9eqI9gEL28neEKpNVROE03Keg3hjJS9e6YCwfu?=
 =?us-ascii?Q?fw8cbaxzKbY4dkrEgXOZVClfZ8KF/dO1j8U+mVAfELuBCRs8lVJ9CqQMvqSj?=
 =?us-ascii?Q?uE8S8m5d0q5H6Cs1ZW0Dxbc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10f1b639-41f0-4445-77ae-08d9ab5caec8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 13:01:21.4985
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qvXBu3cUrav349wjp44TTpt9M2sCMkDJv5YAnOY+CzSAlZaPXuXgkB/N/vL1dyeS9rWEImSwFd6Zx/PgVOZ76w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3934

On 19.11.2021 13:34, Oleksandr Andrushchenko wrote:
> Possible locking and other work needed:
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>=20
> 1. pcidevs_{lock|unlock} is too heavy and is per-host
> 2. pdev->vpci->lock cannot be used as vpci is freed by vpci_remove_device
> 3. We may want a dedicated per-domain rw lock to be implemented:
>=20
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 28146ee404e6..ebf071893b21 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -444,6 +444,7 @@ struct domain
>=20
>  =C2=A0#ifdef CONFIG_HAS_PCI
>  =C2=A0=C2=A0=C2=A0=C2=A0 struct list_head pdev_list;
> +=C2=A0=C2=A0=C2=A0 rwlock_t vpci_rwlock;
> +=C2=A0=C2=A0=C2=A0 bool vpci_terminating; <- atomic?
>  =C2=A0#endif
> then vpci_remove_device is a writer (cold path) and vpci_process_pending =
and
> vpci_mmio_{read|write} are readers (hot path).

Right - you need such a lock for other purposes anyway, as per the
discussion with Julien.

> do_physdev_op(PHYSDEVOP_pci_device_remove) will need hypercall_create_con=
tinuation
> to be implemented, so when re-start removal if need be:
>=20
> vpci_remove_device()
> {
>  =C2=A0 d->vpci_terminating =3D true;
>  =C2=A0 remove vPCI register handlers <- this will cut off PCI_COMMAND em=
ulation among others
>  =C2=A0 if ( !write_trylock(d->vpci_rwlock) )
>  =C2=A0=C2=A0=C2=A0 return -ERESTART;
>  =C2=A0 xfree(pdev->vpci);
>  =C2=A0 pdev->vpci =3D NULL;
> }
>=20
> Then this d->vpci_rwlock becomes a dedicated vpci per-domain lock for
> other operations which may require it, e.g. virtual bus topology can
> use it when assigning vSBDF etc.
>=20
> 4. vpci_remove_device needs to be removed from vpci_process_pending
> and do nothing for Dom0 and crash DomU otherwise:

Why is this? I'm not outright opposed, but I don't immediately see why
trying to remove the problematic device wouldn't be a reasonable course
of action anymore. vpci_remove_device() may need to become more careful
as to not crashing, though.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:03:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:03:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227887.394263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Y3-0006Xo-CZ; Fri, 19 Nov 2021 13:03:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227887.394263; Fri, 19 Nov 2021 13:03:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3Y3-0006Xh-9g; Fri, 19 Nov 2021 13:03:23 +0000
Received: by outflank-mailman (input) for mailman id 227887;
 Fri, 19 Nov 2021 13:03:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo3Y2-0006XZ-GY
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:03:22 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 12458b5d-4939-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 14:03:21 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2057.outbound.protection.outlook.com [104.47.10.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-25-jQdgwPY-Mai29UJ2B-EqKg-1; Fri, 19 Nov 2021 14:03:19 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3934.eurprd04.prod.outlook.com (2603:10a6:803:1b::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 13:03:17 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:03:17 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0040.eurprd04.prod.outlook.com (2603:10a6:20b:312::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Fri, 19 Nov 2021 13:03:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12458b5d-4939-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637327000;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=mJqToq/iNd+HZMgDfiCtkXGL5gv8m3ek/alQSIVUjzM=;
	b=lpUhLBSy/g2jX5yjcZLvjxD7Nh6eyRWcCSCpsh8bP1U3EiIcbfSpkBwKN8ZjqBD1577bf7
	RrayOUv5AfT8/58Di2dn2q1UjaajcucOTG1n1ANkPdvTmR0mA4nOK/BS1Qq0dpOda3S8Ue
	e4XeXD5+yF2OPCDKbb72hfAj4ZJhJEU=
X-MC-Unique: jQdgwPY-Mai29UJ2B-EqKg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cl04OCGd5Hxe2vnyZn6vrCpk07x8kMF+nSonVcZobvyxxuIidqGksuyI34T3+ugn/dNqisam8u8RBZxrZVmnMAT+8U2/luE7sR5OhRFGfcX8CmRqQDfxLgZOOP1uCkWbw9XdEz0oLdKDg1DnObNYjMhC/wGEn6JZdW+L7SxhgHLwKq0SxrCvAKYy3qgRwc2fST5fbGPo6UF+pr1FcjzUHodMyYaGaQke40s4ZhX1HGRprXVELXbEs7vX1YrT2wg01n1mzx0egT1I7gr7mWxjl0gY3IYzB/JNdO9B34n6tq6sCtdaqKYgd7xSpJv6crF48beAzkhnfBA31+Ozx4hSMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mJqToq/iNd+HZMgDfiCtkXGL5gv8m3ek/alQSIVUjzM=;
 b=QWSgEfT8dx6d+0hIchGM3H8ygnnb4XT3wBiUdOn4CkdxOqJ3j8/kU4uWScOjtOLD6fmeUrUH+rGMaDuRFvuBDUzqO1LMAV9kaPY+D0hFH5KaL1ULrDkUcJP0dKuEmJaCvA7fyuGWDDvhBPTWA7CtIQLzo6s3ItAupoD2EeMJQtH+lF9ulQKXgRC/H57BqTWhMIzVPy4EzTd4H/SAUST2oC5K4XAvv+6Ja+7MsypTNWGRGA2IWyIxxIf8dcR6AMAU5d5GSJrq6X4mH11bmIfph/lIC+E8KL1wFbi6aL3ZE2Kd/M/bpjfkVrekrRQFUVtmH7s4TtfBMyb48//aebAvrw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bab431c0-c4b4-09e4-cc3e-32ec8b3f5c7e@suse.com>
Date: Fri, 19 Nov 2021 14:02:57 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
 <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
 <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
 <6c61bd19-228a-fc12-eb64-00c8c5340292@epam.com>
 <ed2a6b5c-6e3a-07ca-a2f0-532a0de10329@suse.com>
 <c3b58e3c-9644-6e74-5ca1-25df33028b71@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <c3b58e3c-9644-6e74-5ca1-25df33028b71@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0040.eurprd04.prod.outlook.com
 (2603:10a6:20b:312::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ab3c3571-908b-4134-2c8e-08d9ab5cf423
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3934:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3934C12C57010B19F6A24B18B39C9@VI1PR0402MB3934.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	K1s3UmNQ2znhUcsGjnmBfvS49zdyzOO31HQ9bP15yvlS8Wce+ooX7JpS9L0HTWEnPUlWvPkxEGtO4TYvjK2Tz/Cf1Xg+E16suidjlK6E07/g5oyXcQ+LXMMjZcYeMKyEvO6axeXm5EsnJ8fjZ9jAKbRs7vcCW6MTy68/w2HYxDdNxxR1o4Ip3+TWY//HAUl6RNhXRuXqFq5N8KnHvH9HIr3cqAq7ImJLNsONDfAU3J2QLJOlEfmEigdu61jNPvihPgvc4RbnrXkddJaRcj5pFsBOzW2B+191yenxG2qRbe3QB0bU5G5AKavR2CkLByzxBDBw7de44oy/LjHyTQI6LbNwjJaLIUMOzHkrFmJkKQkaHFt/6YrpsUOrBVv64NmBDfGdaUYJCNeBpybZurFYcHiXYsB4gvdaa3+bByRMLtn6dXcJmSVlHO4Y+/7aumj7eMGAvsTyrS7Ysdq9wjDc+fdu0yi68VBjUrxdR6zvWGqGUPpLzSMXPsMxPAS4RttnOthZvgISidRyVtQWRpeJYcz8Ffm8T+dxogB7KSR5BW876UOAdz6EPtDpPwrLzB+J8P8UJqRYHmf5j0MTlsf0Gn9kSaGbtp7/aKY4ucvfLjMo+AGiPVElLlje2vbP66gPrUQWHJ5UqZseP7qwyx+nzKnXlTuu1pj6IjDZ9hHkqiSCOSVK+FYWQl1DJVSOhkE07Ct9w9qjPd5jvfPlHrgp8f6lyrJ4oRPtoB1Bv0A+IMs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(66946007)(36756003)(8676002)(316002)(508600001)(53546011)(31686004)(2616005)(26005)(956004)(16576012)(5660300002)(66476007)(86362001)(8936002)(2906002)(38100700002)(6666004)(66556008)(7416002)(6486002)(4326008)(31696002)(54906003)(6916009)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bGpiMGJoTytOL2k2RWQxeC8vYmNGTngyNTJnRFVLd1o5d0xITHNKNlBnZFlJ?=
 =?utf-8?B?VFZVdmo0N3g2dFFWQytET0NSQS9lMHRBQ09IVzJ3Sk81MmFReFBCdUtYeWhK?=
 =?utf-8?B?enpRMzJHdkVkQlFNd3cxRU9KZHlUSXdFeFVCLzE3MWNhYk14SkZnelhIMmg5?=
 =?utf-8?B?SThMUGIwVWdUVEsvOWUxMWp6eW1UZ0hwY2RSMS84Vis5UFNwYzRxeW5SY1NH?=
 =?utf-8?B?VldzR3dmTmE1b01KR2phOUtwajBoSVFlNEtlTkU3TmtsR2YyaUFObG9CdTBW?=
 =?utf-8?B?bWp6cW1BSnZpV3p0RGJuN3QrMHNFcVJSYU02bWQ2ZXVBYTBpdzFSWlRocWM3?=
 =?utf-8?B?bC9UR0R4VjhxZHV4S1k3cExKdWZyQjZVWWFrZXpZUG0vRWJvaGtjM2s4aVdM?=
 =?utf-8?B?dnVQN2E3Y0pHRjlKVzUxTFFDNnNla3FsSnVGdEZOcW1YM3ZYS2VjeXBHWEs2?=
 =?utf-8?B?RS9zbHAxQ1liYzl1Unp0dmoyZlkvLzE1RTdaR3c0VWRhQ3NDS1VJOEdKL1VR?=
 =?utf-8?B?SHh4VjJtOHdiTnhKNXFTWmd6clhhYm9oL3ZEMXgvYlBLc2p0MTh5Z013UTF3?=
 =?utf-8?B?QVNIcHNCbmRINERaaEM1TVhEVlduOEwwV016ZzhwTXhpREVXMlQ4ZlAwOE1H?=
 =?utf-8?B?Vi9yWGFINm43ejMwTXkwWDVuZDFCYnhWWlFidjUxTW0wRGhZK3Fldk5OUzJG?=
 =?utf-8?B?c20rT003bEVtVTJGWjNWcEFLUEprOXFBQXA4cnBrTmtuM1c1Y0U0MTQzU0hs?=
 =?utf-8?B?QjVsb01QS0RUTnRCSWFvaGhGbFRxV0QxYlFRR2YrTDNSNHZZLzhBTTk0WFpB?=
 =?utf-8?B?S1UyMkkxZmRtcVFXZlBWM3NZa1liaE50R0FkMG16VTdDamdjby9GLzRhLzRN?=
 =?utf-8?B?Unk2ZlR1RklNZ3BCdnZFSjNBblE5NWZacHltRHRjVGxhcGc0VUlrT2VETGdP?=
 =?utf-8?B?YjhVejFSQlo1SzBCd0VWb1VraDRoU0JLdzJnWHludXF4OXVoYk5xbzJxa1Jv?=
 =?utf-8?B?bmthUkQrOGVxTHNKK29OQjUza3JQY0RWbkNGdjRmK1cxZ2NDMGZNcFQ3TkVC?=
 =?utf-8?B?N3pXTURCWVBFWUVkNVlCWTUxRnAxa0RNcHR4cUpkSmhac3dGQnFxSFZZMUtT?=
 =?utf-8?B?RVNGN3FoMTBaSW1QRmY4czJydkhRc3dWNXlsTHFORHMrdFhRL2dCYnl5L0Ix?=
 =?utf-8?B?V3FLV25WMC9BNU1QRlMyN0F3ZEluZDdKNGloUnI1eWVuL3d4WExCeU9NSWdP?=
 =?utf-8?B?M09XSXFRT2w4YUlEOWw3dTF6VVRnaWp3bkVOcis4cytBOFJSdURwV2FXVHM1?=
 =?utf-8?B?elRCVkJUanBHaG9hd0YwbVBsK1hLQTllb0hDWDFTelo2Z2FXcldNcXVwcUxZ?=
 =?utf-8?B?RmZQUENEdlBuTFdlSFMzaTZkYm5oRnM0N2dvU3UzRnBQYmRyNk9hdXZ4c0Ri?=
 =?utf-8?B?SlZQQjlSM2F5YzR5S1JMSVRqNUdNSEdCZEpXNVpINzd6d2toekpKb1Bhd0hZ?=
 =?utf-8?B?MzFyZWtZa0xMQ0tWcWIvRjYvdFVUaWcvankvZWNHdmUyR1hXV3h1VHZST00z?=
 =?utf-8?B?K1h4ajBQNEVVQXJMZ2FiSGRhcUFiblh4ZTV6dTJpbENrMSt0eGlhbUNIdkNN?=
 =?utf-8?B?b2JpdTJrTy9KYjI1WUJiWURFQ2lLZEhXa1lrK2s2bVBGQm9pUHo3ajhwbEFh?=
 =?utf-8?B?VFdEczdpc2ZNK2ZmTDY0OUNGUS9jQTF5SE4vWkk3aWl3UE01ZWtNd0xnUHpB?=
 =?utf-8?B?MWYrd3Y0NVVpSHlHRHdWSkk5MmlpVmJ2L2RhMEczakF4MmlzeXErSXk1elk1?=
 =?utf-8?B?cDFiVXpsemxleGNSMTZpS2xNdGo2ZmxTRDN6SERsOU1ycDRuRDdKazR2VW9D?=
 =?utf-8?B?N1oxem1nYUMwN1dQN1l0UDl3c2Jkdk9BdzNMVE0wbjcxVWNxRlNmUWwzektR?=
 =?utf-8?B?UzRFckZlaVJuVllIVTAxdEZudTJ5OXNYQ1JWTG53c1RkSlF3Z1Vxd1c3dzB2?=
 =?utf-8?B?cVZpZXpYeWFLZktaSEgzTkV5Q05hTUJXbmMxaUtqZ29HSDF1VVNlWXl3WWxJ?=
 =?utf-8?B?Q21WVkpKck5QaENVZlVCSFhFUmtkRzdwOVJNOGtXUExoaGt3VzE0dmdFRlZR?=
 =?utf-8?B?ZUx0a3BUWHlCMnN3WlIxUkZyYlFXR2kzL2xFMzZ5ZVVMYnpsL21tK3hocmR0?=
 =?utf-8?Q?JoVZoIPzU3CVKgORvgp/VA0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ab3c3571-908b-4134-2c8e-08d9ab5cf423
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 13:03:17.7828
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nYQC4rrBIsFMY8+KoB8fhLYDzPhdz9EKy+p5hWUwSI5CMLwU3zun3vMoZkwNnFbGmo+PhcltvHEFMVlLBvT8wA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3934

On 19.11.2021 13:54, Oleksandr Andrushchenko wrote:
> On 19.11.21 14:49, Jan Beulich wrote:
>> On 19.11.2021 13:46, Oleksandr Andrushchenko wrote:
>>> On 19.11.21 14:37, Jan Beulich wrote:
>>>> On 19.11.2021 13:10, Oleksandr Andrushchenko wrote:
>>>>> On 19.11.21 13:58, Jan Beulich wrote:
>>>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>>>> --- a/xen/drivers/vpci/header.c
>>>>>>> +++ b/xen/drivers/vpci/header.c
>>>>>>> @@ -408,6 +408,48 @@ static void bar_write(const struct pci_dev *pdev, unsigned int reg,
>>>>>>>         pci_conf_write32(pdev->sbdf, reg, val);
>>>>>>>     }
>>>>>>>     
>>>>>>> +static void guest_bar_write(const struct pci_dev *pdev, unsigned int reg,
>>>>>>> +                            uint32_t val, void *data)
>>>>>>> +{
>>>>>>> +    struct vpci_bar *bar = data;
>>>>>>> +    bool hi = false;
>>>>>>> +
>>>>>>> +    if ( bar->type == VPCI_BAR_MEM64_HI )
>>>>>>> +    {
>>>>>>> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
>>>>>>> +        bar--;
>>>>>>> +        hi = true;
>>>>>>> +    }
>>>>>>> +    else
>>>>>>> +    {
>>>>>>> +        val &= PCI_BASE_ADDRESS_MEM_MASK;
>>>>>>> +        val |= bar->type == VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_TYPE_32
>>>>>>> +                                           : PCI_BASE_ADDRESS_MEM_TYPE_64;
>>>>>>> +        val |= bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
>>>>>>> +    }
>>>>>>> +
>>>>>>> +    bar->guest_addr &= ~(0xffffffffull << (hi ? 32 : 0));
>>>>>>> +    bar->guest_addr |= (uint64_t)val << (hi ? 32 : 0);
>>>>>>> +
>>>>>>> +    bar->guest_addr &= ~(bar->size - 1) | ~PCI_BASE_ADDRESS_MEM_MASK;
>>>>>>> +}
>>>>>>> +
>>>>>>> +static uint32_t guest_bar_read(const struct pci_dev *pdev, unsigned int reg,
>>>>>>> +                               void *data)
>>>>>>> +{
>>>>>>> +    const struct vpci_bar *bar = data;
>>>>>>> +    bool hi = false;
>>>>>>> +
>>>>>>> +    if ( bar->type == VPCI_BAR_MEM64_HI )
>>>>>>> +    {
>>>>>>> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
>>>>>>> +        bar--;
>>>>>>> +        hi = true;
>>>>>>> +    }
>>>>>>> +
>>>>>>> +    return bar->guest_addr >> (hi ? 32 : 0);
>>>>>> I'm afraid "guest_addr" then isn't the best name; maybe "guest_val"?
>>>>>> This would make more obvious that there is a meaningful difference
>>>>>> from "addr" besides the guest vs host aspect.
>>>>> I am not sure I can agree here:
>>>>> bar->addr and bar->guest_addr make it clear what are these while
>>>>> bar->addr and bar->guest_val would make someone go look for
>>>>> additional information about what that val is for.
>>>> Feel free to replace "val" with something more suitable. "guest_bar"
>>>> maybe? The value definitely is not an address, so "addr" seems
>>>> inappropriate / misleading to me.
>>> This is a guest's view on the BAR's address. So to me it is still guest_addr
>> It's a guest's view on the BAR, not just the address. Or else you couldn't
>> simply return the value here without folding in the correct low bits.
> I agree with this this respect as it is indeed address + lower bits.
> How about guest_bar_val then? So it reflects its nature, e.g. the value
> of the BAR as seen by the guest.

Gets a little longish for my taste. I for one wouldn't mind it be just
"guest". In the end Roger has the final say here anyway.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:07:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:07:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227892.394275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3cA-0007D0-V4; Fri, 19 Nov 2021 13:07:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227892.394275; Fri, 19 Nov 2021 13:07:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3cA-0007Ct-S0; Fri, 19 Nov 2021 13:07:38 +0000
Received: by outflank-mailman (input) for mailman id 227892;
 Fri, 19 Nov 2021 13:07:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo3c9-0007Cn-UA
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:07:37 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa494113-4939-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 14:07:36 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2171.outbound.protection.outlook.com [104.47.17.171]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-28-ip1LzhOvPYGl2N9yNPImHA-1; Fri, 19 Nov 2021 14:07:35 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5597.eurprd04.prod.outlook.com (2603:10a6:803:dd::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Fri, 19 Nov
 2021 13:07:12 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:07:12 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0061.eurprd06.prod.outlook.com (2603:10a6:206::26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Fri, 19 Nov 2021 13:07:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa494113-4939-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637327256;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5WgGQXF5WMV06cM4EQgjw6fXp7dLn34IUF7aKWx5/8c=;
	b=e+in57OyfatkDePPhE8KbFajFm9JBpa3ecy+ai2ZdEd/AbPzUt0SIGW0LttVjRWv7OfN1s
	Y9ZzyNEwMrCWwafY5+NsxaniH2LZf4MJDMIzwk2QjqPoibjQxfeTwZ/UdJ+hrQLyOM4UKn
	X5b7HDgFFPnaDU3fn9Y2CgmTgKLMYSU=
X-MC-Unique: ip1LzhOvPYGl2N9yNPImHA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gVtsO0imUkfgCxL6MUVI778khN4B74LSFfdokOSPqNbHVdWmMYqQl8cE0yDemq+O573OzbtWK5X1OoEHITR3VoynCn/o8LeziDqGv4K4TIp5Fd73Z20jxGOQJfu8RKYa+0E/75NIKTSEt8okw55lTmJ/KZ8Ta+sZJ8lJFEmYnAF5XEd14ej7o7bc/m0m9U9OwvN65/Se9g8NV9+i6lvzF5heDz0Nq4fidKNQeB/ZvEU735pzR4KCc3kPg63WRaY8ohXe95X4zGJB7O73v5jQTiAVU6OrL2Cbfr2OUBETJGYqDlOoj7XXBJzUIsV02sccTtD2nDNW0h5RsBCbQGdYkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5WgGQXF5WMV06cM4EQgjw6fXp7dLn34IUF7aKWx5/8c=;
 b=dN6HOGgEuodh5aPSzjludm1ybkTViVi5idrl7vqBo+pMfNO866dEp8bPo0XFyar8rZZ7lgOKtETVuMSWZSr5krPdu5M3Ed1l+TxC6mtgUMsg6T0Z+ww31qWkguCjDIA1a9Xz6CABKGJ36tcr6YxQg15ROeJJ7ki4oJfEeScQnfPh5XoYbJ7h7uqMlKCukaHsXc2fFs7gzRxFr5asDRwizwdMNEMe8yQ4lc6vp1n+ykM/a6ww7FmC8CNPO54s99sAMKbKdbTJayBOErJLEKn3sR4lkSkSSmnIycAJTlVsl3TdF4u9KUyfbZLnGSJIATmY9VzOVxP8Drg3xsVi7Ef/Mg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a60f0837-3a01-4d87-7816-ae4a0a6a8413@suse.com>
Date: Fri, 19 Nov 2021 14:06:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <9aec23b3-2269-39fe-9fc0-fb8cf7f9de44@suse.com>
 <1a380ef9-bdc9-bbfa-35b7-ec1c901e3019@epam.com>
 <76e929f9-2df1-951f-55bf-58caba80750c@suse.com>
 <ea3e52f3-c844-d2a7-2f45-9d4e1bd04d5a@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <ea3e52f3-c844-d2a7-2f45-9d4e1bd04d5a@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0601CA0061.eurprd06.prod.outlook.com
 (2603:10a6:206::26) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3a3dad30-1919-48c1-3ff0-08d9ab5d800d
X-MS-TrafficTypeDiagnostic: VI1PR04MB5597:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5597967881442FAAC4D65167B39C9@VI1PR04MB5597.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	uUJTSC/Fq7fr191W8ft3/pg2rcQTdcmvQp7vzyN0f0I/tW4Q20t6EQyEooIoTBOuzzjhAFvdy3+EO3q7tk6404FgKdswi/mgNmz9c05ID090L7UbUTKvevGnPoGPUZUCJQTgI/7ipK5qW0C6v0zoSHbud/1jf8ma7YOVP3JbesnI0DthoWTNe/1+0xL2p86UBehsISYoG76dpZEIlRkMjuiC5t8htZcPpl7n53f8PMcUnw04UQidt/a5GSzO8xdlsZEABpcN29pf3zmLWvJiV8tNRMg1NbAWE6wjJEKk6xeKv13FxYRVtN/DknL5N6q/OGdlwV/faSoLmbtBytYVDeJEffyvukZgZW7VOlsslCvTSqDqzXZgee8yqhQiuz87/V3HXKKu7BOISVqSAmxMP6C0/6kd/Wp32PAL1nFfEVpM/olVq8V0GCeD4MnYHTTjTyuwUdxDHDus+/0jzD0FiePwUsIlTT++/S9PTq4Vd9HMmE2IU5WvdUBIG5kFBEAKRKkMB+lh1ZUVsnhiTvcHOyYLKzp6++iV9M0eYJsVvSF/B86kJ6s/PkHbtGOwfpZzfecuFCO3YeZxpAehOi7clBTP4FBERi9S+so08AH8Zi/8Z1WATTYlfi5jdEvLGwqU18orX/ECIU7W1qXAySP10sv7tvPC8mma4jCTYwuOCyDA9XH7U5rQ3yj5gbmyPE+WoUdANMdrHQC6+192NO849IT4aYCbe12HAntw233NFus=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(54906003)(16576012)(8676002)(7416002)(2906002)(6486002)(186003)(316002)(26005)(8936002)(6666004)(53546011)(508600001)(38100700002)(956004)(6916009)(2616005)(31696002)(66476007)(66556008)(86362001)(66946007)(31686004)(4326008)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QlVSdk5zS014K0IvSWJXL1g1SUgrTTJZSjcvcUZwQkpLMmlJNy94ME9zdG9F?=
 =?utf-8?B?dExlZlFMSU5ZMWlsRko0YzlnZmRZV2RneTAwSC9RbW9Wak1OK1ZLQkJ0UmFm?=
 =?utf-8?B?eXBHWWVDWWlVT25JRHRFVGY2OEJjUWYzSHV0d0pTbVZvajRhWEdRRUp3UWxr?=
 =?utf-8?B?N1Z5QnI0OUUwWExPd3VUWjRaUmpnUWd4SGhSZnEyekRmOGpKRWxxLzBVcnhl?=
 =?utf-8?B?cGlVN0VJc3QrY0dMaUdHZm91K3RyT2VPUDQ2L2Q3QitpVCtZTnVLaXpuVEZl?=
 =?utf-8?B?QVdsdGhmM0lTSFd3RGRMVmxyejRpRjQvbEI2elZWUjByTUNHUGVsa2VmNU5u?=
 =?utf-8?B?ZTBpNncybVIrS05EdVpBNG81cXB5Q3hRV2lXdzEzT0I1Zmh4L1BNOStLQ083?=
 =?utf-8?B?SDVIZUh6ZWxSQm1RMDhnQlhQdlhRamhnUG8wekJqYnVGTWxsUldKR3ZrRVpu?=
 =?utf-8?B?VzFkdXI2M3RvNm0rbDNCSGsxN3ZmRGdQb1cyVlpINzg4UE5HQjgwOURwcFkw?=
 =?utf-8?B?WGJ5TFJHRWxWUlNSL3hvSFpSMlo0K3RadEJoZ1RabjJvZHJYMnNZeUJyV1o0?=
 =?utf-8?B?Y3ZkSkE3YjBVaW5OK2xuaVFHdDl0N1h4MUd6SUNaNmFtK3VHdkZ2WVVMY2Zx?=
 =?utf-8?B?QXdDZ2hMUUJlR2h3UWZZK082MXhTVnRhWTFHOFRObUFIcjVLWU5xeHVxbUJF?=
 =?utf-8?B?cTBMSGZTNTJkTXhabGNZOHF6TU02Q044NWlxWGwyZ1RIb0VhMFRzS29pcU1J?=
 =?utf-8?B?Y2o4TFhDTjUwdWh0cmsrbEJlUkJWZG1FV05CY1laSEM0VkQyVjNxWTBMa3ll?=
 =?utf-8?B?K05adUJEZmcvR2tCUERia2M2TXF4N0h1M2pXck1lT2RaWGRnZnpGRnRtdTV1?=
 =?utf-8?B?dDFKVFljK1JFOGRCU2R5TGV3T2JCMktwczNxeDc3Q00zTUpFWGhGcTRnVzk2?=
 =?utf-8?B?SjByMFYyZDU4dFp4QTVyajduQ3VQbTU2blpZOXZUT0tFYUdKTVYrdU83dk5a?=
 =?utf-8?B?SFFnZVg0d293UGRsMDNDQmh0SlpnVkNqZzV1ZSswVEtvQnZybi9yaFJha1Rm?=
 =?utf-8?B?djFONUVsbDQ0TFNIeStoVmcyTUx0Mm9FWVFRUGY1VmJzcmdLY1VUVFphVDEw?=
 =?utf-8?B?dk10eVBPcXJLejFKZ2p1aklrY2R1VEp5dzNnak5WNDVJN3VVaUN4dlYxZUhL?=
 =?utf-8?B?dlIrWmF1S1V4NU5nYzZ1TGVkemZ6WTZsUHp1VlZiMXN4K0dOSnRDVzdPdm94?=
 =?utf-8?B?c09GckdJY2FYRjB6TkgwN2l6NXdtV21BemN5b2NTMHhCcG1WTHNtV055dE1F?=
 =?utf-8?B?S2ZQK3llbWd1ZEZ5QXFVSU5TNVArUXEvQkNBUGkyV1lVdEFiWjdwUmN6OHdV?=
 =?utf-8?B?aW1DQjRrUGxLYW9vNlJ5TE1PY0VOem5JR1NnTWRHRWs0OU03SUhua0cvVGM1?=
 =?utf-8?B?aDZHMVE5cVFOZ3RWRWJ1MW0vVTMzNHVEa09oRDBQYjV5NkNwdExLdEo5dzlF?=
 =?utf-8?B?OGVPSW4vSExsOUt2Y2UydVlzR0RYQkFxclNhdmY3eTBITUpSUWFPZytqbnVW?=
 =?utf-8?B?bUJ4R0lKdkJ6UXhQaEI5TGVsUm9VN25NVGNqMTlLam1MaTErbnVlQ21qM0s2?=
 =?utf-8?B?dnlOVnQ2aFBnYitKSXNiOXBNQ1AxOUR6WlQraWR4bVpSTExlZStFUkxjMnk4?=
 =?utf-8?B?SUxrazdVak1EWjY0TVFWUi9GeVd4c3cwd3N2NTJvN3lyV1FCanVGS1YvajZy?=
 =?utf-8?B?VjVtaEJYSXFyZnpOQWpEL0MzUDFvc1JXMi8yYjBIOTlYcWhiQVFGQUcwanFj?=
 =?utf-8?B?ekJFSGtDRjZtc2FRL1hsditVNU9Ba0pTbFk0WC9wajR0emJ1eWlOTlhtQncv?=
 =?utf-8?B?L3VOREx0OG5HUmVTQ1d1dVRleDZLalVBaEh4aGhWRTl3Q3ZqNFZ1UGlkZC9z?=
 =?utf-8?B?NzBsaGNKWUJYM09Rb242QVlNbkNucVhDYTRFclVKWFVXMlRqSDRaNm1pYzd1?=
 =?utf-8?B?VHJjaVVQYWdEK3ZzSjVJSkswUW8vMnRhK1FkRHI4bURJc0RhbjM4KzFtNm1S?=
 =?utf-8?B?QjExNGgyQkJGWEVuTk9HZVBqQUh0MWs3aEJRcmg5V01ia0lPcEV6citob21V?=
 =?utf-8?B?bm50M1ppRnhtZWljaTRqSldvdGdTWDVHSGxMc0tuL3NQSjJRbmg1S2ZmWFFM?=
 =?utf-8?Q?+q4gGqNgO6NnEjkb3vZk4j4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3a3dad30-1919-48c1-3ff0-08d9ab5d800d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 13:07:11.9485
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kHAwCYgO/kmq01cqX4q4s1EGhbatqtzZqDF9SUMBX14tSD+bJPxeBmqDT5oXBcMp1qde/8rxglynShttQZ77kA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5597

On 19.11.2021 13:50, Oleksandr Andrushchenko wrote:
> On 19.11.21 14:45, Jan Beulich wrote:
>> On 19.11.2021 13:13, Oleksandr Andrushchenko wrote:
>>> On 19.11.21 14:05, Jan Beulich wrote:
>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>
>>>>> Instead of handling a single range set, that contains all the memory
>>>>> regions of all the BARs and ROM, have them per BAR.
>>>> Iirc Roger did indicate agreement with the spitting. May I nevertheless
>>>> ask that for posterity you say a word here about the overhead, to make
>>>> clear this was a conscious decision?
>>> Sure, but could you please help me with that sentence to please your
>>> eye? I mean that it was you seeing the overhead while I was not as
>>> to implement the similar functionality as range sets do I still think we'll
>>> duplicate range sets at the end of the day.
>> "Note that rangesets were chosen here despite there being only up to
>> <N> separate ranges in each set (typically just 1)." Albeit that's
>> then still lacking a justification for the choice. Ease of
>> implementation?
> I guess yes. I'll put:
> 
> "Note that rangesets were chosen here despite there being only up to
> <N> separate ranges in each set (typically just 1). But rangeset per BAR
> was chosen for the ease of implementation and existing code re-usability."

FTAOD please don't forget to replace the <N> - I wasn't sure if it would
be 2 or 3. Also (nit) I don't think starting the 2nd sentence with "But
..." fits with the 1st sentence.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:17:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:17:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227899.394286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3lU-0000Gf-0n; Fri, 19 Nov 2021 13:17:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227899.394286; Fri, 19 Nov 2021 13:17:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3lT-0000GY-Sq; Fri, 19 Nov 2021 13:17:15 +0000
Received: by outflank-mailman (input) for mailman id 227899;
 Fri, 19 Nov 2021 13:17:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo3lS-0000GL-NB
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:17:14 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0208525f-493b-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 14:17:13 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2055.outbound.protection.outlook.com [104.47.6.55]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-40-Qzj-QfNhNkm5_Zd5VJvx-Q-1; Fri, 19 Nov 2021 14:17:11 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5470.eurprd04.prod.outlook.com (2603:10a6:803:d6::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Fri, 19 Nov
 2021 13:17:09 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:17:09 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P251CA0014.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::13) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Fri, 19 Nov 2021 13:16:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0208525f-493b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637327833;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=HBWMlAbJXX8nB3i1kv6nCtJbzI2EMPzyOPUbQf45WWU=;
	b=a3zXRkOM1SR/U/2Du9V9aHO+t1f4N4svzOr/8Mi4il1V3hLJ4P9MDtJ4i6OxmF9uHvWYfP
	k6qPDthxYt/BsWoXtisbNVdiCr/EdILfTPVzLA7vEYXiIb3qqopFjEARlqHvfFWAhyLU+F
	s/DegDGh5f2EjlTbUCAnCTT8St6rHbM=
X-MC-Unique: Qzj-QfNhNkm5_Zd5VJvx-Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VBknChNIYyG9tAHezXaL55IJEiK9VKie5f4sPDxWi0fUlvtPb8igwslDuP0Y7NWPEcnRrpE5K9UImgI3ambp/blWf7qhu7b9s10yXM3p4qg3Ch/vAzRjKtDgaj/CgMtTI2WvEACfIwNFJwoYwdmeleADVvMNaveSpPyO2YyPExr1FN+mnKhozoOy9mMSgJHGhZZm6iM5SmTi75vwO69OZ1jnfertPVsS/mmOw41EaDs/RZaRpLg+mHcjgiy91KkXR8oy03e0FW203dhW2//88ikOwG6+Udyb3tp6K+xMWBNf+p50gwSvy0rPsQ1aJWgyjeWlalH3qNT+wHUiWnHhIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HBWMlAbJXX8nB3i1kv6nCtJbzI2EMPzyOPUbQf45WWU=;
 b=inTnNbsz0S7UIHjepdf+I1jyqz7mwgnDHlK7L00SMPjdNDv5yJYDUxod0EYbnzsgjiDzDiJYcc2arECIpuOKSeTAHf7nbtOEbklyZB340Irj3DNgxB6IGisenw2OPnhkTsXqKXTJ+GZXxgDXlMna/aMHpKCGslmLTkolAwP0CZE4rhDqtY6sZqrjHwbP31vlgrMXG5wMDRE3bjJO5CLAx1OMqqHfkLR3zSSrGR1a2bNhyH0HQwyB0bpjYxA7NTslp5JJdvKpsAw2HwtQ+YZwWyD8O2PL+cPyZVc1a8ydl6Z/2xpITMSqgmkZFUa4cjJhHcBIpbZ4QJb7KPCsTVilyQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <3a7f4c3a-7162-8cd3-0879-2f87572f0225@suse.com>
Date: Fri, 19 Nov 2021 14:16:47 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-7-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8P251CA0014.EURP251.PROD.OUTLOOK.COM
 (2603:10a6:20b:2f2::13) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 39e04a88-8519-4db5-a159-08d9ab5ee45a
X-MS-TrafficTypeDiagnostic: VI1PR04MB5470:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB547067B29043897811F1D8FFB39C9@VI1PR04MB5470.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	r33ns/Fa6r7t05J+iL0SMoyjcD8GU1Y7Bck+3tW/65xN15PBP/5JOCL3Gwuibt4Hu5e70JvbKMk++uqFF8tN/mvFivFuubf4gVRJJuvzjwl0poe4iv3U3SVreITjjHda7n/j4695qAZ1Kxye8wCveT0P+K3Oy9XEO03rFHeFWBVsoK0YqmILaV+NcaD5KJLU3oweMHlpTtWSymLuVI0hJJQKXiK50KRDUQPF8afIU1GDv+jvF0hb8BrsCfrvZ7GoY82pQ+JES55/EB0FevG1VeRtVEMP5vUZ3fA2VQz9J/3PoedzkeYXVXHaaZiM39Y4Qn+pW0s91vjD9Jtm93ApGyvPcOchRGNrpvs0BkE+l30MKexvw+gwga5VpjK74N9Pa1CqDD9DfjtIt+fXrPlHQkow7zcTRj9mwPhAcFTYgpPLnfDRXLS0H1o0Cv8HBDDIx39gahVlh88DIbzMyLoDkAnnckooEYovU8rnUV7O2SRXbQ/2Ick2FXb1HhyFltt3WtlCKHcUVNBYO/WHhPQUj11+Njq2AxglBFChr7tA8t68h7JK6BzYpZGES4HMLvt6ifXLN5T4EVmJA1j/dgTdpDglNLfqa2qqVsZfDGOW8v2wn0DRGs6z8Z5Xjz6GsL/Y+11NMnvI42xfmr4xktIgHn62jTte4+3+9rdel7S05mi8dMtDx97UbZK3GKWXiE15ODD+DHzVcG+qKvhJzlWm052NWRjjLelGAWtNJ4xQbo4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6666004)(956004)(186003)(2616005)(7416002)(26005)(31686004)(8676002)(8936002)(38100700002)(36756003)(4744005)(86362001)(6916009)(508600001)(83380400001)(6486002)(16576012)(316002)(4326008)(31696002)(2906002)(66946007)(53546011)(66556008)(66476007)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SmkvSy9adThKN2tPNTg3bWZJZFNhaGM0d252b0pTTkE4OHNEbmpqQnFicFhv?=
 =?utf-8?B?ei9YSHZ2OHVkY1dJU1pSNFlldnBiTUl4aVNHdGVwY3MvZ05qYkxJai9ESklP?=
 =?utf-8?B?QWhURzJMYnBnekc5TWhhOThoRytqTkVGZGhyMEZTODlNTE9rYzdUTDFmR3Ny?=
 =?utf-8?B?UXRScktXcHVMbjBidTR6Yjd2MFJzUzRZZ1RBRVZPaVgvK2hOTTVVVU9zdHZE?=
 =?utf-8?B?TjRmYzNqVW9VOGFKc3Q3ZzRLSXV6Y0Y3M1FxVVdmd2NKQUdWeHN2dnlIWmpM?=
 =?utf-8?B?QlEvaXJOWXN3WjM5eTRhQllpdGxPVGhUODhJVE1HTVI3Z283U3FPR0dxMyt3?=
 =?utf-8?B?Q0xJdzNyVkU1NXV4WE1uaDh3WXlVUzg2czRDTGxKaU00OFo0WjNtMGRDWXNI?=
 =?utf-8?B?dWJkSG9DUDYyOVNPN3dRQUtvNTZoazFTRkxzOEswbDg1MEg4WTd5ckZZeWdN?=
 =?utf-8?B?VUdTV3BxUS9pcTh0WlloQmFhd01vTk5teDd2aW1jSm1ZdTB3R1NRcmpsc2Ft?=
 =?utf-8?B?ZEtnTnEzNFlRS20xMFRQZG9FK0RHYzBWdTFyTDhhNmpOczBGRXB4djdkUTRn?=
 =?utf-8?B?dEpGVDNxVklBZm1DSkg4M3dFemlJaC84bnVZOTZWWkJCNlRRa0ZOQTVEZytj?=
 =?utf-8?B?N2s3cjdmREJSTGl3ZFFtK1NwbXBLWlhPc00yczdxL1RsQnh2RFgvcGk3bTNC?=
 =?utf-8?B?ZGhyRFJNbjFTb3UvU0tnQUJKM080Uy9IRkp3TzYveUFyWmpRTnU3TWtCenhE?=
 =?utf-8?B?YWZreFpXdm9lTjMzanVFeklpMnZRVjl6Vk9WUFpjbEhWakptenhlVmlxRmp5?=
 =?utf-8?B?YUtYRnVaZHNkSFpzU3ZOZWlmZUFHQlJ0bFlsbTFOT2lWdEV5d1o0VzlyU1ll?=
 =?utf-8?B?Z3FCUUpLYzNGU0hlZlIwWkJxa3M5OUpOVTdZYkRRQVFnb1NHazRzUTlTM3Uy?=
 =?utf-8?B?cmY1NllmdVpiVDdRTThvcE9XOVlXa3BhS0o4TGZEQkNja1VnMldhRE8xZEo0?=
 =?utf-8?B?d1V4a2Y1eHF5MG5CcU40dTQ0OXFIMU9zN1loc09DdUJkNDY0SWkrT2w4eFI0?=
 =?utf-8?B?WXdMcXhZcHN0dXp6MHZHOElKS3c1SVB5WUorRVpsdUp0Qnlhd2Z3YmdYSGZF?=
 =?utf-8?B?UndMUEJkSXRaekpFT0VzbFRFQytvTmpUNWtLL3REMUpQWUJEUEljVmZIMS9y?=
 =?utf-8?B?dGlnOWhlRFA5Zk4yMFYxbHIyczZZbTRXOW1PTy9VQUl5YjFOVzgrY2JiTi9G?=
 =?utf-8?B?NFFoTXRSR25RWjh6QXVWNWk5bTRKd1J5Zm5KcEZkbEUzZ3dGOXc2YVV2L2s5?=
 =?utf-8?B?OFRvWE1jQzBRNTREMk5nY281NXhod0ZlZHk2RVlaZy9Gb25wbWcrRFNmSW12?=
 =?utf-8?B?Z2ZRNC9JQjJxczJVOUVlTlJ0WkUwM05mOHRwUmJsa24zaFZjZ1pPWGNCZzNq?=
 =?utf-8?B?bnRRS3hZaWxiaFBvdFFabEN2TUJicEVHZktIMmlqSERrTzZ6c3lIWUcyQUpk?=
 =?utf-8?B?NHQxc2lwbUtvSEJPbEx3VXlzbVdqOXQzeFZaZTNVMlFqdE9vNzZnV0VPNnVu?=
 =?utf-8?B?V2hHT2pZNTNuYWVTSXZldXNrZmtSeWlncmU1aDlmMkFpeSs0TlltT2VHa0oz?=
 =?utf-8?B?aVpGbk1FODNTNjRrV005N1BTc3NjVUcxSGN4eWNLSEtsajBTb1lYbDFicHd3?=
 =?utf-8?B?VHVWU3J5aXpsVk5qKzM5dVZYOW5yZnJURy82cGdWRUtSbHgzd2pKS0tlMUph?=
 =?utf-8?B?K2ZQaTQ4VVF0NzJjYVYrN3Y1VUpjY29ybWlPVnB1dGlUQ0pYMjVUaXZNNzZu?=
 =?utf-8?B?VXUwUWcyeXgrNlVRZzhidkIvWGZ1ZHV4UVRlbFVsQzRjbDlwOGN1MC9uK0w2?=
 =?utf-8?B?VDBLcU15R0RJSkRzd1ZMZVd6c1dLS2lIbER5Y0tCTVMvcXpQMjhSb2FWbnk2?=
 =?utf-8?B?Y1laZ1BpOE4yY2tQMU94azN2VFBBTVhNamtud1ltVmJyZ3RNbTJOcXNtcUhX?=
 =?utf-8?B?dDNZa3A1SkhDVU51dUpIZ0lWNFRwOHprcUxDN2FxK3VHaGxrK3J3Ym1WckFm?=
 =?utf-8?B?cTlmaitXS3N0OFlIUDJJRitpSVh0YnVCZGFZS2NlQS9FdG9QWXFWajVpRzB1?=
 =?utf-8?B?NWVBeHNJYWIxOXdnOHVTWGszaVZVRGFSWFRnenFCRDB0NnNTNy81OVVvV0Zp?=
 =?utf-8?Q?IqZeyClDZpdP0ICCnN9/GyY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 39e04a88-8519-4db5-a159-08d9ab5ee45a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 13:17:09.7535
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zXkMwGBN1/LAC2JkfUsIIrkTB34bdfL4esE4xD2tRqhPvMdbIoPajTcYy/+AKUEip06QP64pxNr8CiXHAUWxWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5470

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> @@ -95,10 +102,25 @@ int vpci_add_handlers(struct pci_dev *pdev)
>      INIT_LIST_HEAD(&pdev->vpci->handlers);
>      spin_lock_init(&pdev->vpci->lock);
>  
> +    header = &pdev->vpci->header;
> +    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> +    {
> +        struct vpci_bar *bar = &header->bars[i];
> +
> +        bar->mem = rangeset_new(NULL, NULL, 0);

I don't recall why an anonymous range set was chosen back at the time
when vPCI was first implemented, but I think this needs to be changed
now that DomU-s get supported. Whether you do so right here or in a
prereq patch is secondary to me. It may be desirable to exclude them
from rangeset_domain_printk() (which would likely require a new
RANGESETF_* flag), but I think such resources should be associated
with their domains.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:17:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:17:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227901.394297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3lo-0000hm-A0; Fri, 19 Nov 2021 13:17:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227901.394297; Fri, 19 Nov 2021 13:17:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3lo-0000hf-5T; Fri, 19 Nov 2021 13:17:36 +0000
Received: by outflank-mailman (input) for mailman id 227901;
 Fri, 19 Nov 2021 13:17:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo3lm-0000et-5Z
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:17:34 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d347ebc-493b-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 14:17:32 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJAxads008615;
 Fri, 19 Nov 2021 13:17:29 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3ceanc8gsy-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 13:17:26 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6243.eurprd03.prod.outlook.com (2603:10a6:20b:144::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Fri, 19 Nov
 2021 13:16:09 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:16:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d347ebc-493b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=A7fHcmVtZdVYLMTFibJZmGA5YIspP68z4iyvSOPYAA+pMS0BOq2kg7U/IaY4I3l0iq3ZnFNonTvwd2keqbOCLT6KhrNK/ii0ooikwOKQ7WutD2UZvIDyEVDcluMHxj39MltNMir2ai80wneTZ4PvS8DuNJoQMsxF0pJM0n+ceIg08hsyq91H/SlGS4juaE+00+RrhondzuuonHSNYipUs6CYiQhMusVoZD/5brZIm/O6lBNO6hbz6xJu+XpJ+l+eziDPKjp6JbJcDcOeRLMdGBRP0ghu04RNXyGRkkZPLe8XT21EF60M0bEjdo9tlYY9TFQ99txaQaPFwBQ4fu2DMw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xPQWGU7qPDNln0u34h2VZS/vtSsEAXSlCZS78ula56U=;
 b=c0uPXTG9xTtGSYxNrni4L2EgT3RDBBwHovrhBnZKPvUiXQkjLlaZaZz+c9rVrKe1m/vAic68fM6ujI1jm1AV+H8URjFd9wt6FoTb132/Nxw4UwEhdpUgfKOPmkuMVwaUZ4wNvi7fNg/aqN9z9UF6qTQ1ehTMG0gUjmbCtVG7mU9YhQQ1cgMZrBNdxZUDJJw1VcUdxaLN3+9PKwxbS1sBw8MP2oimBC0KWjNUudeTOGh/qCAO+y1AFyrA+lIuXR3WI3VO3oItVtGM73Bd6wzkgJ/+HFgsSvHlPAGH8jY6rsZ3Fdq54gOBvK8JjLB5Pi3nOjLPVJ4Wgm+w7csB4vApPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xPQWGU7qPDNln0u34h2VZS/vtSsEAXSlCZS78ula56U=;
 b=dot7WrgapwIxe1FBoReHDz2L0GbtnRcMmhci82rKf4nIOQD2BWSLyNiaJCzztP7BTQPghZcPh6Ey5BsCJk8DTeH0vhs1RGNvepV4pFY2lPFH+F/CHzUZiVGwpPG6VRwUo/IW345UBXrMIJueTcAhfevCj+2l/La34yOnh5iXkW5NRN04k9+7GgLKxprAahHIp53R5NpmqQ7P9jJHmLpy8NS6SI5TbbePsOO2tp2MCUO6xmkgEBi2FGolznULLZ6+v95qbzOjXvV+1ZKoj4a8Ty+dY6O0rzzDsgDhjYOfAqs42R2FYrsPBdT+MQHoEovtw3IgaJOs7SKSOaFXd6ugng==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        "julien@xen.org"
	<julien@xen.org>, Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Stefano
 Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIAgAAFxACAAAoGAIAAAXMAgAABgYCAAAVtAIAAAX+AgAAB1wCAAVryAIAAB06AgAAEPgA=
Date: Fri, 19 Nov 2021 13:16:09 +0000
Message-ID: <5baf1199-e12d-cc41-4520-e32ed29a0436@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-3-andr2000@gmail.com>
 <cf0d5566-5629-76f2-ec8d-a05e6ecb4248@suse.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
 <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
 <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
In-Reply-To: <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: fdcd9f90-9fc6-49c6-c25c-08d9ab5ec0b0
x-ms-traffictypediagnostic: AM0PR03MB6243:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB6243356771D943703492C14FE79C9@AM0PR03MB6243.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 eK0Q8i0PbGNXT7Tl7fbFf5F1Z2cLu7JwEoKLf3uoD0jmAG/XOWyiclQD7hyB3QPB5ACaTdYo3oiqWnxNOQEKtpMwe75p8dzTKNsC53f2DXMWt2EaZwdzQQ7YxZhSsVzMrodNZbbd2SFlHC4WvOqmKv7rOH6ECeYL5Sc+I6bHEDIyCiZoFunyr1hnfOqIgGiwD0Bd/J8yIDo/cGZik7Oi2hpSZv3lJ9os6Yj3/FcNcHfZ+nv9Bk6r8RTH23Gq2v/uTkJg7Q7v9NRTPtY6mVJxWBrGYLYjnEosP7BIol46Qk2p527k8wNs7P6NeP4RpbN9qmOUxHsxVAJEyWGKpzTM3kNe/JIoZUOR1cCOiPWIeC5QlImUPRU4JZPEtWArQmGYg0N8RwwGWBjQ2KcLghL12VZj0uuQ+CzOaphM9b8AZzM9Cm8IVBHumIw9YWqjUVT66HNhrHppfT42zWKKKQHyx2F/QkzdqPQThuN3pKXuTXxKwIvfiGqGQqt3/rcWSMfEhcSfpXne1SIOAMSWtnvPb9NRFpGASqfYd8kyB0aiu+xta4mEhr6dzf/GSDuagbdCEXX1mcWiIW3pZ0FCXSbEE405z/xFe5meXwHwFa47Vg7GSOngTEcd9Id45b5miUo1f1xjiICzwMwQO8Ma7qxcXZidU8XOpXfJ9PgQhVXS7zyg0MRjWfRSlDC3G/QxGWXcNZY+UnSgw4JQuV+yAuL+MnlgWdBeq3pCE/u5qUj/zotdtN1JuoNthAQgN1jOaCZL
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6486002)(86362001)(186003)(53546011)(6916009)(66946007)(4326008)(508600001)(66476007)(7416002)(26005)(31686004)(6506007)(54906003)(316002)(6512007)(31696002)(5660300002)(8676002)(2906002)(66446008)(2616005)(64756008)(76116006)(91956017)(122000001)(66556008)(38070700005)(71200400001)(83380400001)(8936002)(36756003)(38100700002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?cm5uSzlIV2lDRUE4WFl4RnpEMGRjL2Rna2RaKzN1T1ZkemhRdEIrOWNMOXNZ?=
 =?utf-8?B?amlHbkRrZzIrRXV1THlXeXRWN3FuemhtZWMybWFOYVpwdzV3SlpmUXZ0MmF3?=
 =?utf-8?B?MXd5NTQ4NDJBcm5RUmtMYzJiY2lnZGJUWkU2TFFyOSs3RHJQQTlnNERjUVNE?=
 =?utf-8?B?c1FGMlRTU0JHa0xld3RkQmRrcndZMUd6Z2F3WTB2c0d6OHJGMi9QNmtrQ2VQ?=
 =?utf-8?B?SEovMUdLZHBiRzA0ekpkZGFJK2VMMzZEbWw3U0d0eUp4QmFYUFoxeXYxdklz?=
 =?utf-8?B?T1dIeVhUTG5vRDVBKy9vMEJPYmMreDZZaHdKcUZtS3Q4b1ZpTzFacmdxelBN?=
 =?utf-8?B?SmMvclp1M1ljdm5lWlAwRG8rZEVtMCtHc2NWS2JLSG9RM0YrNllBOVVETUww?=
 =?utf-8?B?dStKTnRNMStnZW1NZEdOQXA5NUhKSitnOG5LaHpLZEQ0RkNYZXVoV1JNVWZw?=
 =?utf-8?B?L0hsSVcxU3RUN2x4L25jSjlUaGF2Mm5ENGRBT0tVWThQaUNSNkVla1RRM3Mw?=
 =?utf-8?B?TzVlTENtZmphM0c5WGRMeVVQUHRZVjY1VHlPakRoSjVmZVAydkljaEhBMi9y?=
 =?utf-8?B?OGdmZXVOM0VIY29PeFRYMDg5Y3BJLzJlelNndzRzN3VxMzdHK2ZVekFubzA2?=
 =?utf-8?B?YlcwM1o5ZTM2SHREQWo1WDlBbW93a2IrQ1pUT2lBSXNJWlN4ZldvNkE1OEhK?=
 =?utf-8?B?WHJoT3BPTHh1c0hSMmtROTNKTDhBM09nU1oybG9odlBXTXZVQ1VEb0tiTU5y?=
 =?utf-8?B?RG04UjF5TnR2UThPaGJ0OVM5VFBKNkFKbTdEWTk2V0ZPZ05aN1F6M2gwOWxj?=
 =?utf-8?B?Z0V1dytDcEl6VnZXamNKY0V5NndtMG9SZ3hSb2tDa3VzNXVwNHdKRUxWejIw?=
 =?utf-8?B?NHVXQnNjN3dFM25BZ002RlMxWmNOdnExY0tMRDJOeWZzNng2bjZOazdCWm5J?=
 =?utf-8?B?dWN5TDNpbU9WL252YWp5UlZlTzJ1dnMvdXQrRm1JNmorRUt2V0hDdytOQVlH?=
 =?utf-8?B?ZW1jWWF1T2paZzgydFFuYTF6dzJ2MFFIV0RkcUUwTjFUbGJZd25RQ2V3N21U?=
 =?utf-8?B?ZUdNQkJwK0FrM0UvamRKUXlUa1dTLzVtSDA4ZlNiUkgrRGtZMFZjWVRFbFkv?=
 =?utf-8?B?QUQ4VXhlcmFoU2FrNXV2VGJROFpJTENzTEJnSzBQTmt5OHYvN0JOR2Z2NThX?=
 =?utf-8?B?VjdhTDhyQTZMdmVpRmg4dFVCdmd2WXVMb0RyaDVVZU5uRFRJWmpGOWkxRXlo?=
 =?utf-8?B?bEdRdy9SZktxRnRsb1IweUFmL0E3WDQ2MTY3Zytlek8rSU1Jd3poZnFYLzBq?=
 =?utf-8?B?VzdKQWZIdEtYUW5qVFJxREwvcWY3M20vdUswSHpVMGIvTWljVXE4RitqUVdD?=
 =?utf-8?B?RDZMbVQxeDNnNnlONVhOOTI4d1lBWE9aMVI3VmxZanpLdmpoeHRTTFEzYWlr?=
 =?utf-8?B?R2VWRDh5bFB4MDBqejU3bnZoYmxnNXA4TXhQeXR6aCtaaER4U3VXUkd4ZERV?=
 =?utf-8?B?TkRnUTIxeVBhNzN0b0FOT0NyeHF5RURiK2pNa3l6S3hWUkFWQTFMcnoxOUVp?=
 =?utf-8?B?ekMxMmlFV081MWlCVWg4UnkwM0NkTU0xZGhzRzNlTE5PUG9HOElQRHAxVlg4?=
 =?utf-8?B?ejJvOGw0MXJJLzZmcVF0cEF4aEo0QnhxUEY1YnFVWEpZNXQrYytSTEI1ZVg0?=
 =?utf-8?B?OHBnOFZxbTljczU4cTcwRzVqaTNJY0ZlNjZiS0pCSEhmeEFxbmFsMTltTTE5?=
 =?utf-8?B?L2pKcnNwSHVZbTBUbGd3dFlOb0lZblY1SURpSHZIaXVtTzlQdDkzSnpyOGZj?=
 =?utf-8?B?Q0F0THVLL2drK0ZNNk9aMmg1eEZEcndMSHltQ0cybUdZNzFpV2dVYmwzK2NN?=
 =?utf-8?B?bmszWTU1dldYUU0vOFA4UGlwRllHQ0pUYkFYUmV4aHhOakhZZld1WUNLVjBr?=
 =?utf-8?B?cHpnbEJ0QkU3bTF2RWxUWmVpM2FOVjhhKzhkM3BHOXJhbm12a0F1UitHT0RE?=
 =?utf-8?B?UW9lZHBScWxTN2pLMTMzRXRDQzJLczZ3WnpRRjhsbnk4eUxoTTA5T3VNa0dW?=
 =?utf-8?B?OUhVc1E4dk9UU1hidVU5ZlorSkRZdHRkUWhKdkFYQ2RwckxzaWFReWdGWUt3?=
 =?utf-8?B?aHN2dFBraXQ4aDRXUnF2RlcxTHpnRXRFOUdsRDZzdEI0bWREb1NWY2h0R2lY?=
 =?utf-8?B?cjlFTjNoeUtTTmljQkNvczN2bmpKdC9Hai9RR1kxOTROQ0htSUZUTEc3TUNq?=
 =?utf-8?B?ai9EZ0NRTmx3M05IN3pIcHYrQzZ0eEorWHlSYTBWUXIxWTdpb3luRk9oQ09y?=
 =?utf-8?B?V2t2bFRXRzVmdkxKWXFsWDNHLzhKWC9rMktpNmJPck0wcWxaQ1Fhdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8AC77DBC3F90D946B8DEFCD14ACC4EB1@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fdcd9f90-9fc6-49c6-c25c-08d9ab5ec0b0
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 13:16:09.6585
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9eU7b4qzcAT1mxeNR957ykrUH5+5lhOJ7ACj6zEd1jaOY99FvswmTdfPFeZtYq5IJeeg7SSNKzg45nRYGU50XAGDDPB2jEFmxa0vIQZBz4Ca9zwBtfaHbWzEIiciNAQH
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6243
X-Proofpoint-ORIG-GUID: ja5GJwD51gLsHpD23ceB5JeFFaA5Qy4o
X-Proofpoint-GUID: ja5GJwD51gLsHpD23ceB5JeFFaA5Qy4o
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 bulkscore=0
 mlxlogscore=999 lowpriorityscore=0 malwarescore=0 clxscore=1015
 phishscore=0 spamscore=0 suspectscore=0 impostorscore=0 priorityscore=1501
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190074

DQoNCk9uIDE5LjExLjIxIDE1OjAwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxMzozNCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBQb3NzaWJsZSBsb2Nr
aW5nIGFuZCBvdGhlciB3b3JrIG5lZWRlZDoNCj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KPj4NCj4+IDEuIHBjaWRldnNfe2xvY2t8dW5sb2NrfSBpcyB0b28gaGVh
dnkgYW5kIGlzIHBlci1ob3N0DQo+PiAyLiBwZGV2LT52cGNpLT5sb2NrIGNhbm5vdCBiZSB1c2Vk
IGFzIHZwY2kgaXMgZnJlZWQgYnkgdnBjaV9yZW1vdmVfZGV2aWNlDQo+PiAzLiBXZSBtYXkgd2Fu
dCBhIGRlZGljYXRlZCBwZXItZG9tYWluIHJ3IGxvY2sgdG8gYmUgaW1wbGVtZW50ZWQ6DQo+Pg0K
Pj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIveGVuL2luY2x1ZGUveGVu
L3NjaGVkLmgNCj4+IGluZGV4IDI4MTQ2ZWU0MDRlNi4uZWJmMDcxODkzYjIxIDEwMDY0NA0KPj4g
LS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgNCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9z
Y2hlZC5oDQo+PiBAQCAtNDQ0LDYgKzQ0NCw3IEBAIHN0cnVjdCBkb21haW4NCj4+DQo+PiAgIMKg
I2lmZGVmIENPTkZJR19IQVNfUENJDQo+PiAgIMKgwqDCoMKgIHN0cnVjdCBsaXN0X2hlYWQgcGRl
dl9saXN0Ow0KPj4gK8KgwqDCoCByd2xvY2tfdCB2cGNpX3J3bG9jazsNCj4+ICvCoMKgwqAgYm9v
bCB2cGNpX3Rlcm1pbmF0aW5nOyA8LSBhdG9taWM/DQo+PiAgIMKgI2VuZGlmDQo+PiB0aGVuIHZw
Y2lfcmVtb3ZlX2RldmljZSBpcyBhIHdyaXRlciAoY29sZCBwYXRoKSBhbmQgdnBjaV9wcm9jZXNz
X3BlbmRpbmcgYW5kDQo+PiB2cGNpX21taW9fe3JlYWR8d3JpdGV9IGFyZSByZWFkZXJzIChob3Qg
cGF0aCkuDQo+IFJpZ2h0IC0geW91IG5lZWQgc3VjaCBhIGxvY2sgZm9yIG90aGVyIHB1cnBvc2Vz
IGFueXdheSwgYXMgcGVyIHRoZQ0KPiBkaXNjdXNzaW9uIHdpdGggSnVsaWVuLg0KV2hhdCBhYm91
dCBib29sIHZwY2lfdGVybWluYXRpbmc/IERvIHlvdSBzZWUgaXQgYXMgYW4gYXRvbWljIHR5cGUg
b3IganVzdCBib29sPw0KPg0KPj4gZG9fcGh5c2Rldl9vcChQSFlTREVWT1BfcGNpX2RldmljZV9y
ZW1vdmUpIHdpbGwgbmVlZCBoeXBlcmNhbGxfY3JlYXRlX2NvbnRpbnVhdGlvbg0KPj4gdG8gYmUg
aW1wbGVtZW50ZWQsIHNvIHdoZW4gcmUtc3RhcnQgcmVtb3ZhbCBpZiBuZWVkIGJlOg0KPj4NCj4+
IHZwY2lfcmVtb3ZlX2RldmljZSgpDQo+PiB7DQo+PiAgIMKgIGQtPnZwY2lfdGVybWluYXRpbmcg
PSB0cnVlOw0KPj4gICDCoCByZW1vdmUgdlBDSSByZWdpc3RlciBoYW5kbGVycyA8LSB0aGlzIHdp
bGwgY3V0IG9mZiBQQ0lfQ09NTUFORCBlbXVsYXRpb24gYW1vbmcgb3RoZXJzDQo+PiAgIMKgIGlm
ICggIXdyaXRlX3RyeWxvY2soZC0+dnBjaV9yd2xvY2spICkNCj4+ICAgwqDCoMKgIHJldHVybiAt
RVJFU1RBUlQ7DQo+PiAgIMKgIHhmcmVlKHBkZXYtPnZwY2kpOw0KPj4gICDCoCBwZGV2LT52cGNp
ID0gTlVMTDsNCj4+IH0NCj4+DQo+PiBUaGVuIHRoaXMgZC0+dnBjaV9yd2xvY2sgYmVjb21lcyBh
IGRlZGljYXRlZCB2cGNpIHBlci1kb21haW4gbG9jayBmb3INCj4+IG90aGVyIG9wZXJhdGlvbnMg
d2hpY2ggbWF5IHJlcXVpcmUgaXQsIGUuZy4gdmlydHVhbCBidXMgdG9wb2xvZ3kgY2FuDQo+PiB1
c2UgaXQgd2hlbiBhc3NpZ25pbmcgdlNCREYgZXRjLg0KPj4NCj4+IDQuIHZwY2lfcmVtb3ZlX2Rl
dmljZSBuZWVkcyB0byBiZSByZW1vdmVkIGZyb20gdnBjaV9wcm9jZXNzX3BlbmRpbmcNCj4+IGFu
ZCBkbyBub3RoaW5nIGZvciBEb20wIGFuZCBjcmFzaCBEb21VIG90aGVyd2lzZToNCj4gV2h5IGlz
IHRoaXM/IEknbSBub3Qgb3V0cmlnaHQgb3Bwb3NlZCwgYnV0IEkgZG9uJ3QgaW1tZWRpYXRlbHkg
c2VlIHdoeQ0KPiB0cnlpbmcgdG8gcmVtb3ZlIHRoZSBwcm9ibGVtYXRpYyBkZXZpY2Ugd291bGRu
J3QgYmUgYSByZWFzb25hYmxlIGNvdXJzZQ0KPiBvZiBhY3Rpb24gYW55bW9yZS4gdnBjaV9yZW1v
dmVfZGV2aWNlKCkgbWF5IG5lZWQgdG8gYmVjb21lIG1vcmUgY2FyZWZ1bA0KPiBhcyB0byBub3Qg
Y3Jhc2hpbmcsDQp2cGNpX3JlbW92ZV9kZXZpY2UgZG9lcyBub3QgY3Jhc2gsIHZwY2lfcHJvY2Vz
c19wZW5kaW5nIGRvZXMNCj4gICB0aG91Z2guDQpBc3N1bWUgd2UgYXJlIGluIGFuIGVycm9yIHN0
YXRlIGluIHZwY2lfcHJvY2Vzc19wZW5kaW5nICpvbiBvbmUgb2YgdGhlIHZDUFVzKg0KYW5kIHdl
IGNhbGwgdnBjaV9yZW1vdmVfZGV2aWNlLiB2cGNpX3JlbW92ZV9kZXZpY2UgdHJpZXMgdG8gYWNx
dWlyZSB0aGUNCmxvY2sgYW5kIGl0IGNhbid0IGp1c3QgYmVjYXVzZSB0aGVyZSBhcmUgc29tZSBv
dGhlciB2cGNpIGNvZGUgaXMgcnVubmluZyBvbiBvdGhlciB2Q1BVLg0KVGhlbiB3aGF0IGRvIHdl
IGRvIGhlcmU/IFdlIGFyZSBpbiBTb2Z0SVJRIGNvbnRleHQgbm93IGFuZCB3ZSBjYW4ndCBzcGlu
DQp0cnlpbmcgdG8gYWNxdWlyZSBkLT52cGNpX3J3bG9jayBmb3JldmVyLiBOZWl0aGVyIHdlIGNh
biBibGluZGx5IGZyZWUgdnBjaQ0Kc3RydWN0dXJlIGJlY2F1c2UgaXQgaXMgc2VlbiBieSBhbGwg
dkNQVXMgYW5kIG1heSBjcmFzaCB0aGVtLg0KDQpJZiB2cGNpX3JlbW92ZV9kZXZpY2UgaXMgaW4g
aHlwZXJjYWxsIGNvbnRleHQgaXQganVzdCByZXR1cm5zIC1FUkVTVEFSVCBhbmQNCmh5cGVyY2Fs
bCBjb250aW51YXRpb24gaGVscHMgaGVyZS4gQnV0IG5vdCBpbiBTb2Z0SVJRIGNvbnRleHQuDQoN
ClRodXMsIEkgdGhpbmsgd2UgbmVlZCB0byByZW1vdmUgdnBjaV9yZW1vdmVfZGV2aWNlIGNhbGwg
ZnJvbSB2cGNpX3Byb2Nlc3NfcGVuZGluZw0KYW5kIGNyYXNoIHRoZSBkb21haW4gaWYgaXQgaXMg
YSBndWVzdCBkb21haW4uIExlYXZlIHdpdGggcGFydGlhbGx5IGRvbmUgbWFwL3VubWFwIGlmDQpp
dCBpcyB0aGUgaGFyZHdhcmUgZG9tYWluIGFzIHBlciBSb2dlcidzIGNvbW1lbnQgaW4gdGhlIGNv
ZGUuDQo+DQo+IEphbg0KPg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:17:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:17:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227902.394303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3lo-0000ll-Lj; Fri, 19 Nov 2021 13:17:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227902.394303; Fri, 19 Nov 2021 13:17:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3lo-0000lH-G1; Fri, 19 Nov 2021 13:17:36 +0000
Received: by outflank-mailman (input) for mailman id 227902;
 Fri, 19 Nov 2021 13:17:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo3ln-0000GL-4t
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:17:35 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0d73a2ce-493b-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 14:17:33 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJBY9V8005703;
 Fri, 19 Nov 2021 13:17:30 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2108.outbound.protection.outlook.com [104.47.17.108])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ceb5k8ckp-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 13:17:30 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB2766.eurprd03.prod.outlook.com (2603:10a6:800:dd::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Fri, 19 Nov
 2021 13:17:23 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:17:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d73a2ce-493b-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VPuQFqbLo10LN8bWfUiVr/srTjHYnW0KQRQlADoD96GIYJNnVCcxYAnoppeuNCTgX9DiaKP0E/CaaSbWn62n7nJ4Qk8e8d7RCe58pASykSP0t20L0VPyTstYONt6b+vZrbBO2jsqkXENSCEpbuXAjWDDCpNV4cWb0bzJiLo97FcLcEn4yV7L4UzJw92OoZYLKHyXJ7YWeVLXJ4a/+ZUlzE344tEnJPX2OWRzrW+LF6ME4nu7K6fNn7h2g7PEoLSmpArSbBJlaUkXPcvwxA07r75h4ri6147lwuXnxdQndTgRrPWN6NeXXUpiWUM1AyB9Mi/YjO1vRg/rvlhKRorLoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m87jVKHMXLDGK3A+/s5Qm0sbPdy2PT3lufBlDM6Xr4I=;
 b=ns89OowdoqMDvRuS8ICtUth+xV7H4sM/W/YMyaS2o7UssUi/YzYjSqDOFzldvu4S+uI9o1Sl2wV4oMu+aSO6pF/UPRUzX7Zy5oUJoSMYwjoktkAiKxl2CEmLw5+QoSXh0LwRCMJgS+Pwh1MEhuHdGV79bXdQWNZcjOTPtd3xgmqsApbomuxpbmtPxQgoD5ytp/oRMvObutB7iH0xyEopUjBU5j8Gvmw4EvXQs31TZeTh/XQQar719XksABnHGGbTwOi6Z+YniYtum4ag2AIXncPaOmN+NBMjdgMIl9N7E4hXowaeNlA5SXJYoE8HGV3DxHwZSXBEfMOsf6xqfi/IJA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m87jVKHMXLDGK3A+/s5Qm0sbPdy2PT3lufBlDM6Xr4I=;
 b=isWWPZS1LwPkce+0CA5rugg3qLZGHszbGqG6XpXWEFIrXjyDFwygWd4T64Eg/hl3QEGgC7+o9kI7VNstsn9PJZLvy0RvgMz2djkO+NuCVETeMEF5TkRhMk2KbCIeSqlE+E5PPrcaxvyOiKfTp2vqh4gqlPYPyu/+kRE44s8eVd9YggzwuW2iKoyI3rX1aNVfJyaK39iPshJsnt2lxvL/1ehg5Uk4VPSeigXwddD9EFwittkSz9LjOir3hULCN13RfpcgiiD2WPUVlTqO3k2dGCJXbkoDfEPJEN55aX01VC4v8cH/WH3AKWhuXdVpDwVPwgAxbI0d+TUPi8s+X0Ei5g==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Topic: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Index: 
 AQHX0hJK3jTao+VT7Ua3mM5UrGfltKwK1UUAgAADYYCAAAeUgIAAApWAgAAAtgCAAAGSgIAAAk+AgAAEBwA=
Date: Fri, 19 Nov 2021 13:17:23 +0000
Message-ID: <b45969bb-4d44-4b01-bc40-e168c0391ab6@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
 <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
 <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
 <6c61bd19-228a-fc12-eb64-00c8c5340292@epam.com>
 <ed2a6b5c-6e3a-07ca-a2f0-532a0de10329@suse.com>
 <c3b58e3c-9644-6e74-5ca1-25df33028b71@epam.com>
 <bab431c0-c4b4-09e4-cc3e-32ec8b3f5c7e@suse.com>
In-Reply-To: <bab431c0-c4b4-09e4-cc3e-32ec8b3f5c7e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 08981d46-6e17-4542-13d9-08d9ab5eec71
x-ms-traffictypediagnostic: VI1PR0302MB2766:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB2766345E9B39975C63A3CBE4E79C9@VI1PR0302MB2766.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 ZL/rIGNmaSwX1L13gK2pl9JHNQNnCjbx/Qm6wkyE3Svf0nvle+VxMqNfBl65cJ/AeMvLbIxo/J8F62VgX2TPfOyY0256wVLJ42p3kVWc0bn41GuG0zsQoeZSuhGUBTgCJNOCQnclKvop2uVE5PMXSabQzZXdUm67jFGhwIMha2LuzrBcxBjwZZw8/V/r7iw76emXr6PbDD28Yr0pQtBVAPaiuIX9iAaOCKb6GuaUOmH6zD/7dexePjJh//Lwr77JYT7qg6+umYG4LVTzQF6jCaCCNhbyk5LKKZO7koFjJnlNqz4q3TLANTevjOxYWcBMAUGftD6RvoKSFEvoZtexzCvn73y9l+uwp+/kzDIIPlf5ptuExGCeUZ3kVinjPM1c+eOFJhp+eCnqz/ye7CV0B+R0n7KE1wLuP3kO4rWcR7DB5DfBcCQd9Os6m2/NaF+OpAJ5Wo/PuqHhkH7UYiJYvQzgkh+82Wjrka1gALzEucfEcZ2q0hSP3KnqFrdU/zO624ll4li4hnKLh0f5I6EVl7qZ3GCEa/bOp6Bxb5El0Zo/mjGQ6X1tRhE/h4U+LIuHd+lSNKSp7RMezwrm/G1+PcyZ/lgP0DIyK40jXDp8Kr8bpWlTyampOageH/waOjpZDVgoXyr6VBTpgTotVGSqhMhgjIoTHbcl3thHgENa0yIbo7Js8wTqQUM41gtJTb0UNARq6U+JahqIToMshLmU/DYI/m2tpx2B1vp25S23/7+372Mqs9GH+PJ01voo3jat
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(54906003)(2616005)(4326008)(66946007)(26005)(71200400001)(31696002)(38100700002)(6486002)(91956017)(31686004)(186003)(8936002)(66446008)(36756003)(66476007)(76116006)(2906002)(38070700005)(6916009)(6506007)(53546011)(86362001)(6512007)(122000001)(508600001)(64756008)(66556008)(7416002)(316002)(5660300002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?amQraWJHTFFNNEtpWTVTYkNCN2JmTWdjbDZIUGt1VGNidXpXNVdqY2dyaURj?=
 =?utf-8?B?Ni90ZzM4c0tqeFQ4N3huaXp2OFJWbGxJb3E5bHZuZWsxZVgzK09BL3dxV2dT?=
 =?utf-8?B?M1c2cUhaYXh6SkpJVTIyUGVIalRvU0FLdlJBNldKOU5lZExzSXJHUnc5UGZr?=
 =?utf-8?B?WktZaTNkNE02RGVCME1DcC92YWIwWDlweHUybzNHRDVjalBtMjJleGJYc3Yx?=
 =?utf-8?B?SmZnRjNTY3BrbWNrc1FTMXlBcWJtU3dkeXdyLzA0KzBLVTlaOUxGOG56TDJw?=
 =?utf-8?B?TUJ4ZzhESWk5QkpXMENUNUhMY1ZCY29DWDNRTEpWWlhlZmQvZ09CWmFYRy9K?=
 =?utf-8?B?QTgyQ3ZrY1NhU2ozUFgyUnR6V1ZHZ0xQRHFLamdaYWNvQTY4YnNmMW94U2Rt?=
 =?utf-8?B?R2Y0K3ZQTWY2b3VhVUdPVzdaZVA0WE5aalNLbUhFQ0t5VnRqS1RZU1dXTFUz?=
 =?utf-8?B?RGc0cnBGemJXYWxJd2MvSW1jZXhYOGRFUmg0NXlwaHg5dlFlcktzdW5qakNW?=
 =?utf-8?B?alVocGhMTFk0Y2FFeHMwbUkzYWRWVnYrQUdrcVd2WUVwdDdYcHpvVWZ6UnZB?=
 =?utf-8?B?MXdLLzNLY2wyUzE5R1FZTG13NjdyRXRaVEd2QjlxTzUydnRsdTRSdHdCalFQ?=
 =?utf-8?B?WEdyMmV4U0Z2Vzh4VXQvandMM0pXdEVPNVZSbjR4UjVicVNCYmJ6L1d3SlZi?=
 =?utf-8?B?NVVVS0xnNTBQRDdjY3lZK0poVDA1ZXpUcE9hazA0dzFyNUg2NTdkQmpodmgz?=
 =?utf-8?B?OGpLbzdYcUgwTXAraFRJMmx1Vk9BRkVrdTI0R2JkUzY1VE1CNlFjRkJuRlVN?=
 =?utf-8?B?YktRM3VyZFVZTFJWWnZDYkVBbjNQSzJWNng4NmgzbnFhUlFNdFF2YTdpTTMy?=
 =?utf-8?B?L25xMU8yZGllWEVESVJlS1lJaVJSaEUrRW84QVBqNFRZa3M2MHVUdzRzdklr?=
 =?utf-8?B?SE45VEY4UVZvd3NzUjhSbUZnUWtnaVJjTTBXWVdXZXlKVlIyWDZFN3dibFJ5?=
 =?utf-8?B?d0tQSHA1NUNrbDIyaXJNb045WnNEdS9RR3lFcmRwSm9ldi8zL3Q3LzdZdEt6?=
 =?utf-8?B?dU1wemZONVZpcVVMRFNGUExBSVlRclJNelduc3k5TWZsL1R5dmZVcWNTMnoz?=
 =?utf-8?B?QmFtM2RDTmdyb3pNZDZvNVRSemZSTmd1ZGU4eVVUVW5PdHFhaXlJb2czc3RO?=
 =?utf-8?B?bVZxSzNqZDRWMlZFMDhqUHdHVHRqWXNUWkl5ME53R1JVNFFsNXA1YytJQmg2?=
 =?utf-8?B?SkpDSFZ3djZYTmlsemJ3NzVHWTVKTURnRWhiRk1CQTNhdDZyTjB1NVhROGlk?=
 =?utf-8?B?VTlNY0VNdDhRS25RYURaNVljRzd3Q0xHemYwZWR1emFCc2ZJQTJ6RHBOTlU0?=
 =?utf-8?B?UHZsTzRwWWJENVZXNlJNTzk5eVAvOENhYWxxZHdKdTR2ZUxZaVIzdm00bmVU?=
 =?utf-8?B?MjVKNGZhcWtZVS9KV1NZVWwvcFJjK20zMlA5U09QWldtMzQ1WTRMTTBYZFQ3?=
 =?utf-8?B?ZnJJSzh3cVZ4bU9RQWpNQk5tcjRVSXgzSXJDYkVtQjl2S1p6ZDREVk93cGtX?=
 =?utf-8?B?Z3BKQlNhMS96ZFQyS2VrNkNNeklUOXRVYjB2eGVBeUxRS2FDUmo5WEtMclJU?=
 =?utf-8?B?Lys1VjhxQWZ6K3NNVnFFVkFzc1Y5aTM4NHJWRWEzRWIydXY1aFpCb3d1SzBD?=
 =?utf-8?B?TVhxTzVJalc2ZWc5UEhOcmt2Zk9WdUo4aUJVbzliamdLSk9ySjRIbWhEK3FY?=
 =?utf-8?B?QnJyWkVDQUZMWFlsR2RWNmx5WVBQclNoQ3R6b3V1b090Tit1QUNONXBocjUw?=
 =?utf-8?B?SDRoU1dWKy9SSE9vY1ZOL1JaVVpEODVRVjZsZWtoVkxPaVJxRjZIR3N2a2ZP?=
 =?utf-8?B?Vk0wbXdOd1htNk05ejNGMUZuSGRYQklpR1NOenVrTGRlU0pVc1c3UU51Qmhr?=
 =?utf-8?B?UU9FaUp3NHh2cEE3Z1o3R2JlNnhVRFYzOXkwNjN2bm9yUjh3YnRINWdqTXhC?=
 =?utf-8?B?SVZrRXJrdXZlQ29xQnZLU053UGpoSjY3Zll2TGpRdHNUNktmMlhWd1hlb1Rx?=
 =?utf-8?B?K0c0bmtEMVNkK09sbHU0VnlBaEZIZWRqbTU5TkhSVmdUV3o3ckN1OXQxK0RT?=
 =?utf-8?B?M1g4YXhrMEh3NllYb1hLSjUxRVdvTTRjeVpxQzVKL21mUDhRdGtxandybEh0?=
 =?utf-8?B?U01JczAzZEcwNC9xN3dwQlFTVHIxb2liQ2xmVFpndG4xc0VqZHNuQjVvYlQ0?=
 =?utf-8?B?cTNUTlBiK0tVbDVGUE1iSm93WHByUURkK3I1WVdBNjljUHNIREZiMHVTbXNX?=
 =?utf-8?B?T08vR3hlV0pxenIzVDhXZGJTZGhrMW5YVHlaaDBZSENOU2tBdEZ5QT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <78D6DA02F5A28C41AF1C1788C744B2F8@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 08981d46-6e17-4542-13d9-08d9ab5eec71
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 13:17:23.0361
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 8fspY6R4Svb2sRiBqIx1T/MIDo8Hj3aA5k4ZgP+4I5aWxllB6n2LMfUpPPmZ+8cY6DpjBp5r7/Rli/hxwlEC5ZFR83LDw3y8vuAjwbw6CLVDe1JS9V6uXLydbGSISGR4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2766
X-Proofpoint-GUID: vzW5OvJlZlT0IqKDB2tie6lYNN9X3MDn
X-Proofpoint-ORIG-GUID: vzW5OvJlZlT0IqKDB2tie6lYNN9X3MDn
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0
 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 impostorscore=0
 mlxlogscore=999 suspectscore=0 mlxscore=0 adultscore=0 priorityscore=1501
 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190074

DQoNCk9uIDE5LjExLjIxIDE1OjAyLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxMzo1NCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOS4xMS4yMSAx
NDo0OSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTkuMTEuMjAyMSAxMzo0NiwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IE9uIDE5LjExLjIxIDE0OjM3LCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4+IE9uIDE5LjExLjIwMjEgMTM6MTAsIE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIHdyb3RlOg0KPj4+Pj4+IE9uIDE5LjExLjIxIDEzOjU4LCBKYW4gQmV1bGljaCB3cm90
ZToNCj4+Pj4+Pj4gT24gMDUuMTEuMjAyMSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28g
d3JvdGU6DQo+Pj4+Pj4+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+Pj4+Pj4+
PiArKysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+Pj4+Pj4+PiBAQCAtNDA4LDYgKzQw
OCw0OCBAQCBzdGF0aWMgdm9pZCBiYXJfd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYs
IHVuc2lnbmVkIGludCByZWcsDQo+Pj4+Pj4+PiAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKHBk
ZXYtPnNiZGYsIHJlZywgdmFsKTsNCj4+Pj4+Pj4+ICAgICAgfQ0KPj4+Pj4+Pj4gICAgICANCj4+
Pj4+Pj4+ICtzdGF0aWMgdm9pZCBndWVzdF9iYXJfd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYg
KnBkZXYsIHVuc2lnbmVkIGludCByZWcsDQo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQzMl90IHZhbCwgdm9pZCAqZGF0YSkNCj4+Pj4+Pj4+ICt7DQo+Pj4+Pj4+PiAr
ICAgIHN0cnVjdCB2cGNpX2JhciAqYmFyID0gZGF0YTsNCj4+Pj4+Pj4+ICsgICAgYm9vbCBoaSA9
IGZhbHNlOw0KPj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4gKyAgICBpZiAoIGJhci0+dHlwZSA9PSBWUENJ
X0JBUl9NRU02NF9ISSApDQo+Pj4+Pj4+PiArICAgIHsNCj4+Pj4+Pj4+ICsgICAgICAgIEFTU0VS
VChyZWcgPiBQQ0lfQkFTRV9BRERSRVNTXzApOw0KPj4+Pj4+Pj4gKyAgICAgICAgYmFyLS07DQo+
Pj4+Pj4+PiArICAgICAgICBoaSA9IHRydWU7DQo+Pj4+Pj4+PiArICAgIH0NCj4+Pj4+Pj4+ICsg
ICAgZWxzZQ0KPj4+Pj4+Pj4gKyAgICB7DQo+Pj4+Pj4+PiArICAgICAgICB2YWwgJj0gUENJX0JB
U0VfQUREUkVTU19NRU1fTUFTSzsNCj4+Pj4+Pj4+ICsgICAgICAgIHZhbCB8PSBiYXItPnR5cGUg
PT0gVlBDSV9CQVJfTUVNMzIgPyBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBFXzMyDQo+Pj4+Pj4+
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUENJX0JBU0Vf
QUREUkVTU19NRU1fVFlQRV82NDsNCj4+Pj4+Pj4+ICsgICAgICAgIHZhbCB8PSBiYXItPnByZWZl
dGNoYWJsZSA/IFBDSV9CQVNFX0FERFJFU1NfTUVNX1BSRUZFVENIIDogMDsNCj4+Pj4+Pj4+ICsg
ICAgfQ0KPj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4gKyAgICBiYXItPmd1ZXN0X2FkZHIgJj0gfigweGZm
ZmZmZmZmdWxsIDw8IChoaSA/IDMyIDogMCkpOw0KPj4+Pj4+Pj4gKyAgICBiYXItPmd1ZXN0X2Fk
ZHIgfD0gKHVpbnQ2NF90KXZhbCA8PCAoaGkgPyAzMiA6IDApOw0KPj4+Pj4+Pj4gKw0KPj4+Pj4+
Pj4gKyAgICBiYXItPmd1ZXN0X2FkZHIgJj0gfihiYXItPnNpemUgLSAxKSB8IH5QQ0lfQkFTRV9B
RERSRVNTX01FTV9NQVNLOw0KPj4+Pj4+Pj4gK30NCj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+ICtzdGF0
aWMgdWludDMyX3QgZ3Vlc3RfYmFyX3JlYWQoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVu
c2lnbmVkIGludCByZWcsDQo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQgKmRhdGEpDQo+Pj4+Pj4+PiArew0KPj4+Pj4+Pj4gKyAgICBjb25zdCBzdHJ1Y3QgdnBj
aV9iYXIgKmJhciA9IGRhdGE7DQo+Pj4+Pj4+PiArICAgIGJvb2wgaGkgPSBmYWxzZTsNCj4+Pj4+
Pj4+ICsNCj4+Pj4+Pj4+ICsgICAgaWYgKCBiYXItPnR5cGUgPT0gVlBDSV9CQVJfTUVNNjRfSEkg
KQ0KPj4+Pj4+Pj4gKyAgICB7DQo+Pj4+Pj4+PiArICAgICAgICBBU1NFUlQocmVnID4gUENJX0JB
U0VfQUREUkVTU18wKTsNCj4+Pj4+Pj4+ICsgICAgICAgIGJhci0tOw0KPj4+Pj4+Pj4gKyAgICAg
ICAgaGkgPSB0cnVlOw0KPj4+Pj4+Pj4gKyAgICB9DQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArICAg
IHJldHVybiBiYXItPmd1ZXN0X2FkZHIgPj4gKGhpID8gMzIgOiAwKTsNCj4+Pj4+Pj4gSSdtIGFm
cmFpZCAiZ3Vlc3RfYWRkciIgdGhlbiBpc24ndCB0aGUgYmVzdCBuYW1lOyBtYXliZSAiZ3Vlc3Rf
dmFsIj8NCj4+Pj4+Pj4gVGhpcyB3b3VsZCBtYWtlIG1vcmUgb2J2aW91cyB0aGF0IHRoZXJlIGlz
IGEgbWVhbmluZ2Z1bCBkaWZmZXJlbmNlDQo+Pj4+Pj4+IGZyb20gImFkZHIiIGJlc2lkZXMgdGhl
IGd1ZXN0IHZzIGhvc3QgYXNwZWN0Lg0KPj4+Pj4+IEkgYW0gbm90IHN1cmUgSSBjYW4gYWdyZWUg
aGVyZToNCj4+Pj4+PiBiYXItPmFkZHIgYW5kIGJhci0+Z3Vlc3RfYWRkciBtYWtlIGl0IGNsZWFy
IHdoYXQgYXJlIHRoZXNlIHdoaWxlDQo+Pj4+Pj4gYmFyLT5hZGRyIGFuZCBiYXItPmd1ZXN0X3Zh
bCB3b3VsZCBtYWtlIHNvbWVvbmUgZ28gbG9vayBmb3INCj4+Pj4+PiBhZGRpdGlvbmFsIGluZm9y
bWF0aW9uIGFib3V0IHdoYXQgdGhhdCB2YWwgaXMgZm9yLg0KPj4+Pj4gRmVlbCBmcmVlIHRvIHJl
cGxhY2UgInZhbCIgd2l0aCBzb21ldGhpbmcgbW9yZSBzdWl0YWJsZS4gImd1ZXN0X2JhciINCj4+
Pj4+IG1heWJlPyBUaGUgdmFsdWUgZGVmaW5pdGVseSBpcyBub3QgYW4gYWRkcmVzcywgc28gImFk
ZHIiIHNlZW1zDQo+Pj4+PiBpbmFwcHJvcHJpYXRlIC8gbWlzbGVhZGluZyB0byBtZS4NCj4+Pj4g
VGhpcyBpcyBhIGd1ZXN0J3MgdmlldyBvbiB0aGUgQkFSJ3MgYWRkcmVzcy4gU28gdG8gbWUgaXQg
aXMgc3RpbGwgZ3Vlc3RfYWRkcg0KPj4+IEl0J3MgYSBndWVzdCdzIHZpZXcgb24gdGhlIEJBUiwg
bm90IGp1c3QgdGhlIGFkZHJlc3MuIE9yIGVsc2UgeW91IGNvdWxkbid0DQo+Pj4gc2ltcGx5IHJl
dHVybiB0aGUgdmFsdWUgaGVyZSB3aXRob3V0IGZvbGRpbmcgaW4gdGhlIGNvcnJlY3QgbG93IGJp
dHMuDQo+PiBJIGFncmVlIHdpdGggdGhpcyB0aGlzIHJlc3BlY3QgYXMgaXQgaXMgaW5kZWVkIGFk
ZHJlc3MgKyBsb3dlciBiaXRzLg0KPj4gSG93IGFib3V0IGd1ZXN0X2Jhcl92YWwgdGhlbj8gU28g
aXQgcmVmbGVjdHMgaXRzIG5hdHVyZSwgZS5nLiB0aGUgdmFsdWUNCj4+IG9mIHRoZSBCQVIgYXMg
c2VlbiBieSB0aGUgZ3Vlc3QuDQo+IEdldHMgYSBsaXR0bGUgbG9uZ2lzaCBmb3IgbXkgdGFzdGUu
IEkgZm9yIG9uZSB3b3VsZG4ndCBtaW5kIGl0IGJlIGp1c3QNCj4gImd1ZXN0Ii4gSW4gdGhlIGVu
ZCBSb2dlciBoYXMgdGhlIGZpbmFsIHNheSBoZXJlIGFueXdheS4NCk9rLCBzbyBsZXQgUm9nZXIg
Y2hvc2UgdGhlIG5hbWUgOykNCj4NCj4gSmFuDQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:19:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227914.394318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3nq-00026T-5D; Fri, 19 Nov 2021 13:19:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227914.394318; Fri, 19 Nov 2021 13:19:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3nq-00026M-28; Fri, 19 Nov 2021 13:19:42 +0000
Received: by outflank-mailman (input) for mailman id 227914;
 Fri, 19 Nov 2021 13:19:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo3np-00026C-3F
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:19:41 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 594ba673-493b-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 14:19:39 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJAxaeH008619;
 Fri, 19 Nov 2021 13:19:36 GMT
Received: from eur04-db3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2057.outbound.protection.outlook.com [104.47.12.57])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3ceanc8h2s-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 13:19:36 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB7427.eurprd03.prod.outlook.com (2603:10a6:20b:267::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Fri, 19 Nov
 2021 13:19:31 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:19:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 594ba673-493b-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CC5DTKD+4nS8nAr9ozNSfPPVsrGp+05zEVMq14Y9g7bBy1dFC8XpAT4jqanYOSmdrYdzdGNMmnvtR4uvuhu+UuOc3BbbOeWLTZZU1j4i1JMsCcIsw1EzeJNciM/ooocsgTWb8W+JRlSo64OlvnWGli1Rrk8SvYwcyipMDdZ+vMmvVH98zyngmmuP5qh4xG9HnVRDw9V/gNn7UL6Hxz/gG6COzBqMxebjEYxONXPwX2fXoXtv0+/oYOgnzqRUkgDs0BXBd+/gTiBKvNKeM/wlzOLivJGx8fldqLE4t7pwMc9rCqZEdehx3w6omCxcQW5MLlhOv1N9O1+oiI8m/gAQHg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WSE1iueei6cBrR3EW14x+V83LQOjv9OHA7qUyja6uRQ=;
 b=ByfaZodZEShbZHlEaeg9Re/ffzOVO4pz3U9qzl0f7ZcEzVskYnIXp1GTs7A5VIqbeBQEm0mKibJFbr/Y6X1o1Ymz8GdjD4Dl2lJ80/kU4c8sCichXkBOlvEmCy5rtUuPBLpEo0s9OzBg1kZVN6pNX7okz4x+FDSNOrhh7z9ieWp0EaPuFovUwJRvCWcijRua1fwPYkFi8DSjHp4UL2b9p8ep0TO15LhOTRG4y1N6FvO/N8ngPYMTlIMAOcyeJ2nQeuNBeFLoD/s8rZor2WQEU+IaOUWSBptgWF/j23c6q/A1IUb1cGlE3M6lNhZcGHAfCwLUjgHqONFsXWEjOvgTkw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WSE1iueei6cBrR3EW14x+V83LQOjv9OHA7qUyja6uRQ=;
 b=hj7RU/CO3zyMEhdzaU17NVxHyDCXipGL7y5M16H6IPrNlgWeULy+Pp9hyBqTpYcaV/TxftHqeABB1UM6WJ0Lku+MroNHFYphJjbd1vuetPLs7tPsO/0/hsIO6+XYJ9tsxAFUBnAEck++/lQg/LLCWw61mI5x/PlWdrJBgcj0Dxh6lLbYyARinfcudM+qPojb69jZkHZqqnxb29L6BRUE4eiVC2N0b95M4i8x9+Zj1wVg3G3JWRovxwyG5UXx+dQZ4mAfmOP9FtvepZGvvO0hWyMmTZU5fPV0LhhxV7wbaU+pFfO4kxrljFyx/MAJ3lXt1yGRkL9Vsme55rwE4twHIw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Topic: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Index: 
 AQHX0hJLwt+wJ2t1lka5jlbMIq7ZAqwK13MAgAACAoCAAAkUAIAAAXCAgAAEdQCAAAOYAA==
Date: Fri, 19 Nov 2021 13:19:31 +0000
Message-ID: <3cca175c-5b33-2c50-bf4d-34bbe844ab11@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <9aec23b3-2269-39fe-9fc0-fb8cf7f9de44@suse.com>
 <1a380ef9-bdc9-bbfa-35b7-ec1c901e3019@epam.com>
 <76e929f9-2df1-951f-55bf-58caba80750c@suse.com>
 <ea3e52f3-c844-d2a7-2f45-9d4e1bd04d5a@epam.com>
 <a60f0837-3a01-4d87-7816-ae4a0a6a8413@suse.com>
In-Reply-To: <a60f0837-3a01-4d87-7816-ae4a0a6a8413@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 685ed210-9f1a-4299-9166-08d9ab5f38bb
x-ms-traffictypediagnostic: AM9PR03MB7427:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB742796E5F700C926BBEFED36E79C9@AM9PR03MB7427.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 xzRpAlBAUw6nGlotyXQfKgYB4Qcn9MMKaKAmVmGS8XZRWSJwa0DV3bDM1ScJnqkyFFbaoJw1luUe10cpqkigCEjeCAq7J1fkGRJQoXlUQYD6NulJGv6sxoDtW8Aq3lxCGn33Xc4Qm+MUp659R+z/tf3bwqFNzti86RbrsLKjELc+2XURcfeATn5NEWq7AARe3GU3t0UvQ7I18jIEY2rLy03SFY7CeMZLSvl6NU8aDLwUkC0iV9bzh8J50sqgGt9jwOBR5e2YekmiROuQYzAiJ91BVthLHqrhQHvbZGUXXce7l8jwEVL+TzIXaX29Y0DGtAfdG6mSbNM9O0MQGlxlqNNTOv/qUEolsGB5A5wwzIVrkhJUfNItXWudJaQXtiMrdB6mc+U/eldwX2bW7dd4mfvTMa1OAwVYCdaOlta179eR7eWIDAOTPpITST+ehevDhFstsaF4D/Qk/q3vLN9wEg4CGarxvQznnDTc7QCBz+Y+/+SoWTY3rusdJsq8sEJwhFPtbYRwS+o6kHZi4/NEfM5476ki5FtHZhWas3W8pO5wkuybCAMPzRC1GuV1XiCp49F8A11X3Y8mYlBDlgV+PQIIzuIfWyeLoV++mGDTOOQOOK41kJ8grry9/HKVvZ0Fe1xd2sm3wdBLcgYDHqLPMkb56ve8PHtoz00rvlrXeFcAw8GzLof/EOhpoytlIalSs2x+Hrd/9PJqsTcE9McjiaBCna0tuywAFaXjndqJ6g9pBor6ISkcEv3QVmQB9E0Q
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(31696002)(122000001)(38100700002)(8936002)(2616005)(6506007)(66946007)(5660300002)(66556008)(8676002)(508600001)(64756008)(91956017)(31686004)(6916009)(26005)(66476007)(66446008)(53546011)(54906003)(4326008)(36756003)(186003)(6512007)(86362001)(7416002)(2906002)(76116006)(316002)(6486002)(71200400001)(38070700005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?OFVqU0N2UnAwVDZ3TEhaVHZZKzUvZ09VZlJaczZtZHN0UmtlZWNsenpsTmlU?=
 =?utf-8?B?QzlmVjJBSVhueXNpQVUrQmpkeHl6ZHZMRGR4MzQ1NjYrNStPZklJU1pXVjNn?=
 =?utf-8?B?cXg5UkY0SUE1ODkxckJlT29qbFNTL1B1SEcyMitFSllqSDRVYU9oUWxHY3Rs?=
 =?utf-8?B?bVA0VFNJanNsbGFuZlZGVzlwT0VRb3FTSUo2bjdsNmVYNlZpdjBoUnFocHhL?=
 =?utf-8?B?S3YrQzIzbS9CaGZ5TDVoYXJPRTJvMEx4VTY5VGtKQVAyTDFpditNKzNQQkds?=
 =?utf-8?B?SHRmVEd6emd3bVFaQWVydlFYNytOSXFmaDJPaWJsc0RiVUVHdUVkL05QVWpo?=
 =?utf-8?B?Ni9QODdjZjFsQjlKb1EwQWxZOVcxWGlWSEFXRnpxYWRueUZyUmZtRGo1dm1n?=
 =?utf-8?B?a1R1MVFscEI0ZFRXQ2R2YVlhSWw4bXZCMkhvbUszZXFKY0pScTJnRDNuYW1P?=
 =?utf-8?B?dlFucDFXbjNXZjA3VEJiNDJDWlE2eDMzMkd1K3BWcWpSbU1VcEFHTnBkTmRj?=
 =?utf-8?B?Skd0S2F1eHZ6N3ZwQm1XRWY1cUJsWXlWOVVVN3NzTmtScUc4N0dJdk12eWN4?=
 =?utf-8?B?V3R6bzltZ2pzdDJSREVWMFF6ZjBSb3BLMTNjV2lUTngvYnVGTUhMWlA3Wlc3?=
 =?utf-8?B?MStuMDVuS1BmckRzR25aT1pLUmJZMW5mNFlTR3lRTkdINEJ1d1Z1Wkk3MDhS?=
 =?utf-8?B?cWhXNzFOOWZRVlhCcmh0WC83eStjM3V0b25qQkpOZ0xjOWFMUGk1aUdCbWUv?=
 =?utf-8?B?dkQwMEJUL3VEbFFUUlI1OWlXeDA5cnptRGdtb3dEalRyRXpuT2FKYW96Ny81?=
 =?utf-8?B?elJjRXRhSGFqUUxTREhHWHRVS3poVVVpWGZtNXhoZzVsSHZvWFFtSzJaSUZn?=
 =?utf-8?B?dUZGZmhuYnl3eVB3dCtJWUptRGtTL1h5SDZITVoxV3dRTFNnZGFtNXNvNGVE?=
 =?utf-8?B?UFBzaVBEcXVDREZwbERBNEhOWG9BZFh4WXRHbnVtOE1YZlBIMmF1WjE2dXd4?=
 =?utf-8?B?YzljU2E4RDhSTVZHSlVJY3NJdytOWll0NEZtUTRpUmxkNXF6OHIvbTE3VXUw?=
 =?utf-8?B?QVR5eVduVHdmSGh3Si9vUlRHbkRZSTE3UzdyaUErcFlBdnVlSGdjQm80Vmhy?=
 =?utf-8?B?bldWUk5GV0I1SEJVVmdHUmtDalhkT1JTUCtIRlBIMDV5VGVtQjVQWWVuQ25K?=
 =?utf-8?B?cEVuUFlOdFdtbXVjQjQrVEJaajZ6THlENEY4Ny93OUJzeWl4NEJTTDQxSzVK?=
 =?utf-8?B?bkxFbFVYZjZaNlk3WW4xRW5Iak8vcTRXZmFRMmx3cXRoaEMxYzlqVmcveUts?=
 =?utf-8?B?WDUvc1RVSWR5RWgyMDEreXRLL3FGMnhYUVlZWC9uZWg5L1lxM29nZ25wb3NL?=
 =?utf-8?B?d2xBZGY5cC9tNmV2aitXcWtrdTYzbUh6MGVmbHVhYlJ4SmpCVGh6SG9uV1ZS?=
 =?utf-8?B?blNRVVoyWVE3OVk4Uy9WV2pnVTFxOWcrWXlHZTJFMTd3RVZDZ0RhT1dyaDdT?=
 =?utf-8?B?RVlNcjJRUUM5L1FXNE9VZFEzYWdwdWN5WDF2MmZVSnNyNFpjVXNYOEYzNVlC?=
 =?utf-8?B?Qm04MWVnMVE3WEY3djJCaEM5VWZqaDZnQ2cvbm1LR0F1a0lVajdMVUJoNlBQ?=
 =?utf-8?B?OXF4NVNIUE1HbmZCYUZJTC9kbWRWd0tnWnJJcXBNUDlTcDIrbHBsNUNXbTVo?=
 =?utf-8?B?UjhXMnVCdGtJNE1MQ0pZL0FiYkh6NW53K3Q4V00rNkhLa0d6MXRJb3UzdlMx?=
 =?utf-8?B?cTVPUEVKSUF2ZmJ4aDY5SFZBOFl4SWNKNUZ0Tm1oSEROeTd0UG90VDJxY2tr?=
 =?utf-8?B?dTdSaklOVk1IVElDZlQyM2xMZHR3Qk5UNDF5dFJiN1RxWVA5aWE0REVkdDFR?=
 =?utf-8?B?L0Q4aFQ0YlZLbTAzUXlMbS9qdVM0OXFsT3VoaU5UTHVkYm9rdTRPNFVkdjZu?=
 =?utf-8?B?cmV4dUNJeU9ZNmVnNzl5OFIrMlNVWWVkck1HczZCeGlyU3NUQ1lOS1NYNXdi?=
 =?utf-8?B?UFZWLzhTRTUzbnh0YnpqTlppUjZjcjhIcFVTeWJSaWtkZllRRlF5RlEvdEJR?=
 =?utf-8?B?cmxQbXFhK2NtbzRqVXcwWjgrWTZIZTdHK0I1bXJXS3ZrbTU2TE5hd3MvWWd3?=
 =?utf-8?B?UHQvekR4dS9TSUwxaXJacGZ3U21iV3pFRWQyY2Z0V2YwZ241VUUzdFRIbG9s?=
 =?utf-8?B?RW1PaDkzejVPbnpXdUxVa1BBZzM1UGk5U29xL1lIakNzYTJ2RFYyYU5YT21L?=
 =?utf-8?B?WGpkd1dKdUhnWmRWVUdVMDlCeWhxY3hKKzg1U3doV0FPUnJoSzhDblNpMWRD?=
 =?utf-8?B?cXUxS0VRNU4wV3U2RXdzSTBZMTg0Z04xQnFpdDdZa2RBTmxWaEhFZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <926891EFD45137499EC71BD093FB7FE3@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 685ed210-9f1a-4299-9166-08d9ab5f38bb
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 13:19:31.0669
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 1Prxv8UjQj5vurV2ys9LIbmpfRe0g8em4C1aAionPV2CpVceMsVNcS/wnM91hNWVF2e2/OYMmXK5B7qQa93/VEXtYlgWZcp8MIugcsyvNJ8KHKiGVOUJCFKf0iVokvjU
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7427
X-Proofpoint-ORIG-GUID: _gAeb3sGu74RkFIHFfnJtXIQcU0cNurv
X-Proofpoint-GUID: _gAeb3sGu74RkFIHFfnJtXIQcU0cNurv
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 bulkscore=0
 mlxlogscore=999 lowpriorityscore=0 malwarescore=0 clxscore=1015
 phishscore=0 spamscore=0 suspectscore=0 impostorscore=0 priorityscore=1501
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190074

DQoNCk9uIDE5LjExLjIxIDE1OjA2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxMzo1MCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOS4xMS4yMSAx
NDo0NSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTkuMTEuMjAyMSAxMzoxMywgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IE9uIDE5LjExLjIxIDE0OjA1LCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIHdyb3RlOg0KPj4+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVr
c2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4+Pg0KPj4+Pj4+IEluc3RlYWQgb2Yg
aGFuZGxpbmcgYSBzaW5nbGUgcmFuZ2Ugc2V0LCB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgbWVtb3J5
DQo+Pj4+Pj4gcmVnaW9ucyBvZiBhbGwgdGhlIEJBUnMgYW5kIFJPTSwgaGF2ZSB0aGVtIHBlciBC
QVIuDQo+Pj4+PiBJaXJjIFJvZ2VyIGRpZCBpbmRpY2F0ZSBhZ3JlZW1lbnQgd2l0aCB0aGUgc3Bp
dHRpbmcuIE1heSBJIG5ldmVydGhlbGVzcw0KPj4+Pj4gYXNrIHRoYXQgZm9yIHBvc3Rlcml0eSB5
b3Ugc2F5IGEgd29yZCBoZXJlIGFib3V0IHRoZSBvdmVyaGVhZCwgdG8gbWFrZQ0KPj4+Pj4gY2xl
YXIgdGhpcyB3YXMgYSBjb25zY2lvdXMgZGVjaXNpb24/DQo+Pj4+IFN1cmUsIGJ1dCBjb3VsZCB5
b3UgcGxlYXNlIGhlbHAgbWUgd2l0aCB0aGF0IHNlbnRlbmNlIHRvIHBsZWFzZSB5b3VyDQo+Pj4+
IGV5ZT8gSSBtZWFuIHRoYXQgaXQgd2FzIHlvdSBzZWVpbmcgdGhlIG92ZXJoZWFkIHdoaWxlIEkg
d2FzIG5vdCBhcw0KPj4+PiB0byBpbXBsZW1lbnQgdGhlIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBh
cyByYW5nZSBzZXRzIGRvIEkgc3RpbGwgdGhpbmsgd2UnbGwNCj4+Pj4gZHVwbGljYXRlIHJhbmdl
IHNldHMgYXQgdGhlIGVuZCBvZiB0aGUgZGF5Lg0KPj4+ICJOb3RlIHRoYXQgcmFuZ2VzZXRzIHdl
cmUgY2hvc2VuIGhlcmUgZGVzcGl0ZSB0aGVyZSBiZWluZyBvbmx5IHVwIHRvDQo+Pj4gPE4+IHNl
cGFyYXRlIHJhbmdlcyBpbiBlYWNoIHNldCAodHlwaWNhbGx5IGp1c3QgMSkuIiBBbGJlaXQgdGhh
dCdzDQo+Pj4gdGhlbiBzdGlsbCBsYWNraW5nIGEganVzdGlmaWNhdGlvbiBmb3IgdGhlIGNob2lj
ZS4gRWFzZSBvZg0KPj4+IGltcGxlbWVudGF0aW9uPw0KPj4gSSBndWVzcyB5ZXMuIEknbGwgcHV0
Og0KPj4NCj4+ICJOb3RlIHRoYXQgcmFuZ2VzZXRzIHdlcmUgY2hvc2VuIGhlcmUgZGVzcGl0ZSB0
aGVyZSBiZWluZyBvbmx5IHVwIHRvDQo+PiA8Tj4gc2VwYXJhdGUgcmFuZ2VzIGluIGVhY2ggc2V0
ICh0eXBpY2FsbHkganVzdCAxKS4gQnV0IHJhbmdlc2V0IHBlciBCQVINCj4+IHdhcyBjaG9zZW4g
Zm9yIHRoZSBlYXNlIG9mIGltcGxlbWVudGF0aW9uIGFuZCBleGlzdGluZyBjb2RlIHJlLXVzYWJp
bGl0eS4iDQo+IEZUQU9EIHBsZWFzZSBkb24ndCBmb3JnZXQgdG8gcmVwbGFjZSB0aGUgPE4+IC0g
SSB3YXNuJ3Qgc3VyZSBpZiBpdCB3b3VsZA0KPiBiZSAyIG9yIDMuDQpJdCBzZWVtcyB3ZSBjYW4n
dCBwdXQgdGhlIGV4YWN0IG51bWJlciBhcyBpdCBkZXBlbmRzIG9uIGhvdyBtYW55IE1TSS9NU0kt
WA0KaG9sZXMgYXJlIHRoZXJlIGFuZCB0aGF0IGRlcGVuZHMgb24gYW4gYXJiaXRyYXJ5IGRldmlj
ZSBwcm9wZXJ0aWVzLg0KPiAgIEFsc28gKG5pdCkgSSBkb24ndCB0aGluayBzdGFydGluZyB0aGUg
Mm5kIHNlbnRlbmNlIHdpdGggIkJ1dA0KPiAuLi4iIGZpdHMgd2l0aCB0aGUgMXN0IHNlbnRlbmNl
Lg0KU3VyZSwgSSB3aWxsIGNsZWFuIGl0IHVwDQo+DQo+IEphbg0KPg0KVGhhbmsgeW91LA0KT2xl
a3NhbmRy


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:25:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:25:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227919.394330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3tb-0003V9-QN; Fri, 19 Nov 2021 13:25:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227919.394330; Fri, 19 Nov 2021 13:25:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3tb-0003V2-N3; Fri, 19 Nov 2021 13:25:39 +0000
Received: by outflank-mailman (input) for mailman id 227919;
 Fri, 19 Nov 2021 13:25:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo3ta-0003Uw-MY
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:25:38 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2eb3afdb-493c-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 14:25:37 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2105.outbound.protection.outlook.com [104.47.18.105]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-14-knv5a8trPVyTsR2qnYquag-1; Fri, 19 Nov 2021 14:25:35 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6173.eurprd04.prod.outlook.com (2603:10a6:803:ff::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 13:25:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:25:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR04CA0049.eurprd04.prod.outlook.com (2603:10a6:20b:46a::34) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Fri, 19 Nov 2021 13:25:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2eb3afdb-493c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637328337;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7zW3qLcfzzAXVxDFhUZj6ytQ3UyEj2z83YS7hfAhML0=;
	b=kv+yUPeTSE2CtRuW4jI6QWZR8gWUbeW/TcoP1ttHarkKe0/SYMql+2cGoLz6HtnMv7qR8y
	jmt+M24rD6AGcaDvy/CFzwkZJgUTWbrdz+YD39ysTVy9nDiK1bYBxB0F7iSJ94JAfCN5e1
	z7M87rX3/4gZZYwbrdYx0ZBMQpZwpL8=
X-MC-Unique: knv5a8trPVyTsR2qnYquag-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MSZJJCNt1I66P88bqYmGpMCT7J/P/GPh9+D35QivG6mCQb18OToKwvUvTUhBR1yo0EdSZy8yKt4Xw9qv7LY55zZ2VNNynvE/EpGJU4GrH3DWTexOaaoB61zMORyfV4kjiLEg+tytfFP/OWe2SqCk/r7qY/1udn+Od0WIX0an4ZFb0V/5ylsAJ+TdEFmiCSHlyMzbRhY/+ltqjSwxQpNmpoLIRn2yGDsT/3YMzpdzqBd/Q+9hIH8renHCq+9kNT9kAQ/IxstnQj/mjoy2AWEgxaDF2rSzyOl3uCI6ZGAWE6JyPM2XLFfrZGDsOrnZTLSvG8CzORZayY8cqMQP6pRnxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8Anzg6xKa+MrZlMyg8UVUjQjS0oAGtXUcqbEBmuEWug=;
 b=kfHZ6zq/vPosgmQFppcnIGOrjFdrdXdyaa6ByrNVDYFTVtabhijmN4eVt0X5gL22KIV0bKImM2J45/D7OwIxCPXdxfA43vdq3+QCEULgeX2qzClpuPHUo1+p7wLgaVRyb8SzD2jGXsv56hR2eLKTfOkWVSeYb3k+DQ9HsEfjQE/ChJopKFrP5D8s6QtdY0YwtT2pYbIePgoAZVN10tHYMXSQcykvNvEsfEpYRADvd61MmPkTy49/bTjYvP4CVEcS0Z/+BCX2cEnVL79IO2g8iZ6ZilyELDSosa63wGhcdqfMNJg34XVOP4/z1pkefMkvvuncsni9NjvOTHclvlyefg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fbc8a807-ea73-760f-8c75-df0930a5139e@suse.com>
Date: Fri, 19 Nov 2021 14:25:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 "julien@xen.org" <julien@xen.org>, Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <e2e83bee-5191-761d-f38b-55605de51002@epam.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
 <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
 <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
 <5baf1199-e12d-cc41-4520-e32ed29a0436@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <5baf1199-e12d-cc41-4520-e32ed29a0436@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR04CA0049.eurprd04.prod.outlook.com
 (2603:10a6:20b:46a::34) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4c0edf75-2049-49c0-c293-08d9ab6010e8
X-MS-TrafficTypeDiagnostic: VI1PR04MB6173:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6173DC16778B84A071ED0A80B39C9@VI1PR04MB6173.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	+OZK0uDy5JHG1o9zJt7dFf3rGEOgAu1vurSiToumJjOxnTVAzJB5rvcRFJqxRi1p+kG1OPslfTaA19BTpSFY9bPju3URV6O6DwflmjF8VOg2WAc4dWyr8i9OrjyBp8lzJPj7kK0gmccvEqcegFqCGlYw7zu0kD+s1+L1N91llDfos/wq9e1mRZXxIUIYWhDaBki6vugSnrFU58tDnFPWohDOGNSArXhjRhlhbtx9u8IDeM77n3LJ9AqzSoQkTNtJHVzrfM4/skEw5mjVrSoZ1nhYXfnOuEMFiSwDNx1fVlCXBp4TMuDIRQ26khuk51gEX+eWyXx7uLOBNFYr0J6Pqs/ui35NytSp3dMChKqOqDvsTl8mBEFW3w/kVqINZkeOW5SWHDeIIctCaA1UIA7S4ujJLUCFPp29pQ6L0kwzqtdy5FMbggEhXx/b2H0LkaWb0Qy/Ni/nPWbDXyfBfcAp9pKVuqVIvg5lyj4P3+wAU8ojyqVylmE0MhcMCyvvd0XvatP6B3t9X+cN80zVniCH7i+Iprn/gwVG4wdCZ00HjONQRb9bvInzsBj5mvHoM2+33WU2Yt+x5rfXK4oQxtMN8HecfwDp2nFeiiXAhKd/mQrhdao0/ik4O20Fwd5vWlfHcIq9hdF7RzN4cYK1kpsJj92hdtur/YWcALsgC3UHDJkmwf7cp3edHFtmunEAsUxgCYEq/+iw2ALNwf0dmEv2sJ011KuRLhzYG/8kHSouCn4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(36756003)(16576012)(508600001)(8936002)(316002)(66556008)(6486002)(31696002)(66476007)(6916009)(31686004)(53546011)(83380400001)(4326008)(956004)(2906002)(2616005)(86362001)(38100700002)(7416002)(66946007)(8676002)(5660300002)(186003)(26005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?LnGl7nu7LDL3/Yz7ZCe/qCG5xjpaHVmzB38svdohAEWOpeYSx0Dip4BKiqLe?=
 =?us-ascii?Q?vHiFAaMkqlh3J6G7ZvQtZ2b7TC2aqlA1gdV9VOsNAne0rZ9C+xC6QJ2MOiHf?=
 =?us-ascii?Q?oLEtOTIEX/N/D/5o6QqZ1Flt6AU6GIEOEKljqEjhEHunzaO/0XzRNHFG3o+N?=
 =?us-ascii?Q?lRK4Aicmp55QnBDXC9Oea6x3i9jkBRYE37U3kYLNdrBw/PxiejH+wHXR5D7O?=
 =?us-ascii?Q?sA/PSXGvfUWdRvEqctG4e12EoBONIbMzmJKiaJHQ5QBdUEJA9piym9i2G1Rr?=
 =?us-ascii?Q?+HYp4NwFx3k9Nd149lwHpzEHx+QwWPZq47/0BrDUyJ+0NPinD+AL+APIoFRC?=
 =?us-ascii?Q?mO+Cm8tfJXyuCIme0JDFJyeo+i4eTE4gOW6ymwzUUT9xXeA+jOnNfZab84er?=
 =?us-ascii?Q?aUkylvOMkvEUe0cK6WVfCgis6TX6Zl0sTAtC29vDrdxIzqRk9pUyFkJfzdqo?=
 =?us-ascii?Q?gn/uCByFDYop44eKpx5Orlt3CfWsMfvtwifsow6fHQ4c7cmfrqFDJ8x4agnr?=
 =?us-ascii?Q?9P/E4ouAPtTD26UAaoFpgTPO8tQzND3NxAb8TPw0k3KhGZ09pzZUb0wAtoS7?=
 =?us-ascii?Q?KBSh9S1p2nkjtqGmSD7BUp37+hdiA2ZpPwhxYtC4lTWS0LTfBod/sM2vvnGK?=
 =?us-ascii?Q?4lhqjx7CjXm1qbDJ7npiuxLmNDWqs8eESXrBJjUrrd0v+Bc//PLQjjmpRZUO?=
 =?us-ascii?Q?nEF1aNHl8D0lj+lzZ5cTbjFusOpQwmZZGoAKIZgs6TNUwuB9PMcgImURHtOt?=
 =?us-ascii?Q?/Fsl7CQ7bBMMibPGLlrKHdjmxhZkAfVO9zKR7tfpqjfZCudLvuoXS4TnB8Oy?=
 =?us-ascii?Q?5HUsVXni9uR1Qo2Pj7tDIWiZAMPK1IzdrKBQJfgT32a7Nrr2s+krbE7wZRuH?=
 =?us-ascii?Q?WWCo2sZtz1f8wR0AuZY4pWmhQD6hdLgkQqZFVafEq5MKiCS6T0LaQ9Z6QnmN?=
 =?us-ascii?Q?fvjYDA/RhUhwaOr88OfbrALVEXIYR0T8cbnBFYBcZmQBRBBOmi7J4NLwRj7G?=
 =?us-ascii?Q?nBVb4+4b17eaXDh7T29O3sOw31mTgPIUemUYY1IYuTOG/TNlG8E34Ku9s95s?=
 =?us-ascii?Q?emivBnV3A0jDGlZuYfOqhQ6aDLQRfhT0a5TIHdyQWq1inkhWcJ9Z8lwra65r?=
 =?us-ascii?Q?hpAsOO6LHfeW+NIzWLJyQJG4OWauqDE8c+NW5HfV7qEOSG7mkgoednBlM2qd?=
 =?us-ascii?Q?5xKqTJ4b3dTlsq9/opuEYNo4P0zZ+JQfFjqODKk7KacjTHhk4K7P8l5lm/Uo?=
 =?us-ascii?Q?FBct9u3ts+uZMIH4VkjvnUsr2/8HMu08v4VeSPZo1pO7vDcxOYvqO14HXXEv?=
 =?us-ascii?Q?tVqFZ5plM8NlQvJW/+KwfH14jjz1NCPoQgizHduhzlODwQOI6Cz+O39Sz3/g?=
 =?us-ascii?Q?aWcPCrwMYkMHZpAU2yBZ5jcP1SD0hgZ6Qj2Xs9vtO7xN5jpMjpx8nNTS3bC2?=
 =?us-ascii?Q?M9HP+EheUtwrD1bPuh/UcjddbBoOKy1X18i9p08Z275U+Ta043SdBaFZZ9Gl?=
 =?us-ascii?Q?rIsMKZkttjkAnK2AebpkC7n6w886aUFHpb6T4XZuoQhZdGQBZ5C/vl3h5qpu?=
 =?us-ascii?Q?yZHW508JCqzjw4y4u6aQ6C6214vtV1emFQSzd3wlORprNtynUfK/1vN55gTE?=
 =?us-ascii?Q?SqLjSivv9K7Afl706vMZNyg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c0edf75-2049-49c0-c293-08d9ab6010e8
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 13:25:33.9714
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CCUsRXbwbtWfba/RsRrHsFgy50hPKet7ippZgALa0geegQcjS4mEMM1enVJ9bIjeM/KsMs72Qr/FYWoToyaAOw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6173

On 19.11.2021 14:16, Oleksandr Andrushchenko wrote:
> On 19.11.21 15:00, Jan Beulich wrote:
>> On 19.11.2021 13:34, Oleksandr Andrushchenko wrote:
>>> Possible locking and other work needed:
>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>
>>> 1. pcidevs_{lock|unlock} is too heavy and is per-host
>>> 2. pdev->vpci->lock cannot be used as vpci is freed by vpci_remove_devi=
ce
>>> 3. We may want a dedicated per-domain rw lock to be implemented:
>>>
>>> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
>>> index 28146ee404e6..ebf071893b21 100644
>>> --- a/xen/include/xen/sched.h
>>> +++ b/xen/include/xen/sched.h
>>> @@ -444,6 +444,7 @@ struct domain
>>>
>>>   =C2=A0#ifdef CONFIG_HAS_PCI
>>>   =C2=A0=C2=A0=C2=A0=C2=A0 struct list_head pdev_list;
>>> +=C2=A0=C2=A0=C2=A0 rwlock_t vpci_rwlock;
>>> +=C2=A0=C2=A0=C2=A0 bool vpci_terminating; <- atomic?
>>>   =C2=A0#endif
>>> then vpci_remove_device is a writer (cold path) and vpci_process_pendin=
g and
>>> vpci_mmio_{read|write} are readers (hot path).
>> Right - you need such a lock for other purposes anyway, as per the
>> discussion with Julien.
> What about bool vpci_terminating? Do you see it as an atomic type or just=
 bool?

Having seen only ...

>>> do_physdev_op(PHYSDEVOP_pci_device_remove) will need hypercall_create_c=
ontinuation
>>> to be implemented, so when re-start removal if need be:
>>>
>>> vpci_remove_device()
>>> {
>>>   =C2=A0 d->vpci_terminating =3D true;

... this use so far, I can't tell yet. But at a first glance a boolean
looks to be what you need.

>>>   =C2=A0 remove vPCI register handlers <- this will cut off PCI_COMMAND=
 emulation among others
>>>   =C2=A0 if ( !write_trylock(d->vpci_rwlock) )
>>>   =C2=A0=C2=A0=C2=A0 return -ERESTART;
>>>   =C2=A0 xfree(pdev->vpci);
>>>   =C2=A0 pdev->vpci =3D NULL;
>>> }
>>>
>>> Then this d->vpci_rwlock becomes a dedicated vpci per-domain lock for
>>> other operations which may require it, e.g. virtual bus topology can
>>> use it when assigning vSBDF etc.
>>>
>>> 4. vpci_remove_device needs to be removed from vpci_process_pending
>>> and do nothing for Dom0 and crash DomU otherwise:
>> Why is this? I'm not outright opposed, but I don't immediately see why
>> trying to remove the problematic device wouldn't be a reasonable course
>> of action anymore. vpci_remove_device() may need to become more careful
>> as to not crashing,
> vpci_remove_device does not crash, vpci_process_pending does
>>   though.
> Assume we are in an error state in vpci_process_pending *on one of the vC=
PUs*
> and we call vpci_remove_device. vpci_remove_device tries to acquire the
> lock and it can't just because there are some other vpci code is running =
on other vCPU.
> Then what do we do here? We are in SoftIRQ context now and we can't spin
> trying to acquire d->vpci_rwlock forever. Neither we can blindly free vpc=
i
> structure because it is seen by all vCPUs and may crash them.
>=20
> If vpci_remove_device is in hypercall context it just returns -ERESTART a=
nd
> hypercall continuation helps here. But not in SoftIRQ context.

Maybe then you want to invoke this cleanup from RCU context (whether
vpci_remove_device() itself or a suitable clone there of is TBD)? (I
will admit though that I didn't check whether that would satisfy all
constraints.)

Then again it also hasn't become clear to me why you use write_trylock()
there. The lock contention you describe doesn't, on the surface, look
any different from situations elsewhere.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:28:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:28:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227924.394341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3wA-00048j-8H; Fri, 19 Nov 2021 13:28:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227924.394341; Fri, 19 Nov 2021 13:28:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3wA-00048c-53; Fri, 19 Nov 2021 13:28:18 +0000
Received: by outflank-mailman (input) for mailman id 227924;
 Fri, 19 Nov 2021 13:28:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vbz8=QG=gmail.com=rosbrookn@srs-se1.protection.inumbo.net>)
 id 1mo3w8-00048W-F8
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:28:16 +0000
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com
 [2607:f8b0:4864:20::735])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8cb0a6f4-493c-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 14:28:15 +0100 (CET)
Received: by mail-qk1-x735.google.com with SMTP id t83so10106182qke.8
 for <xen-devel@lists.xenproject.org>; Fri, 19 Nov 2021 05:28:15 -0800 (PST)
Received: from six (c-73-89-138-5.hsd1.vt.comcast.net. [73.89.138.5])
 by smtp.gmail.com with ESMTPSA id b2sm1415682qtg.88.2021.11.19.05.28.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 19 Nov 2021 05:28:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8cb0a6f4-493c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:in-reply-to;
        bh=FHwVnoqUJeOtdMp9p83z0F3h/SF/Hbkc9tmIoRMfg7Q=;
        b=ZUw96n0oN1sKLm6g6M/jeI75iVAPQ/ES6CHqH6EzNrlS75K1nYo7tavZW1hnw55NsA
         IzBsPkGehSlhbzacY2CR62RZzY2GeQB+IeNJUR+6JMM2r2lb3O62kGTcRV0PC4b+Dnt2
         KafnphPqYr8ZOCWgPDSazv+N4JzM5eKOwu2BXO4CBkpVdBwJox0p9CELOXbbav3883UH
         e8pfN9ETTl9M0Jzc5juB/OjdcYfpGQiEcQGHl99kqrKtBocZ1CHzsiqNej/2pKrt6HGP
         oWjFPghoWS/loaUf7k0cJIb9dKilZhX4sUqROO4pNNHZFJWDj+ptkHwSoHNCu0MaXjYW
         dojA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=FHwVnoqUJeOtdMp9p83z0F3h/SF/Hbkc9tmIoRMfg7Q=;
        b=bnBh1QfRcInsa5gcovY+XJqbVxGXSZEIjd2ulzTRDoweVPq+IdjH6Qg9v7crG8/+sy
         cOtyQy38uUkk3XGiRK69ndBZ/ihLy0gMvTdcllukvH7b0go2+o3m/p9Eli5Un61GHd/z
         c6NBvGbYrd2HapSvWCe8oEfXZnbszJkfuB9ZHUWMXdYflXdA+7FDZ5Nu3vnDptYmaHWu
         CQZiuNIbebwUUTha3praAashOyKZK1dhqd1BIL5TvrlCRTgh1qegH6cL9U6jxYKDrnTB
         20mx0IVNwKjwsoNN9JcJIbbmwR3e9UhIwkkzJhy1CkLuN4oAKn7NpmzD96waWMcthqVr
         wmAg==
X-Gm-Message-State: AOAM531QqYgUieS4aobgK5HCnUg+sWWCBItXrWta+aNcq3OSzrXLgQkq
	+nAaoKoGtgA2yXGG68SgISsbrvix88c=
X-Google-Smtp-Source: ABdhPJwHKVQF/NOPspjOUPzpkGXQ2uflDGFK6VoAfeym+wxHgdozgid123JBYVJhjPs0i2W9/bPUZw==
X-Received: by 2002:a37:2e03:: with SMTP id u3mr28380446qkh.313.1637328494502;
        Fri, 19 Nov 2021 05:28:14 -0800 (PST)
Date: Fri, 19 Nov 2021 08:28:12 -0500
From: Nick Rosbrook <rosbrookn@gmail.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org, Ian Jackson <iwj@xenproject.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Nick Rosbrook <rosbrookn@ainfosec.com>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH for-4.16] golang/xenlight: regen generated code
Message-ID: <20211119132812.GA27119@six>
References: <20211119102948.156887-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211119102948.156887-1-anthony.perard@citrix.com>

On Fri, Nov 19, 2021 at 10:29:48AM +0000, Anthony PERARD wrote:
> Fixes: 7379f9e10a3b ("gnttab: allow setting max version per-domain")
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
>  tools/golang/xenlight/helpers.gen.go | 4 ++++
>  tools/golang/xenlight/types.gen.go   | 2 ++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go
> index 6e1b05431056..b746ff108131 100644
> --- a/tools/golang/xenlight/helpers.gen.go
> +++ b/tools/golang/xenlight/helpers.gen.go
> @@ -323,6 +323,7 @@ x.CpuTime = uint64(xc.cpu_time)
>  x.VcpuMaxId = uint32(xc.vcpu_max_id)
>  x.VcpuOnline = uint32(xc.vcpu_online)
>  x.Cpupool = uint32(xc.cpupool)
> +x.GpaddrBits = byte(xc.gpaddr_bits)
>  x.DomainType = DomainType(xc.domain_type)
>  
>   return nil}
> @@ -355,6 +356,7 @@ xc.cpu_time = C.uint64_t(x.CpuTime)
>  xc.vcpu_max_id = C.uint32_t(x.VcpuMaxId)
>  xc.vcpu_online = C.uint32_t(x.VcpuOnline)
>  xc.cpupool = C.uint32_t(x.Cpupool)
> +xc.gpaddr_bits = C.uint8_t(x.GpaddrBits)
>  xc.domain_type = C.libxl_domain_type(x.DomainType)
>  
>   return nil
> @@ -1012,6 +1014,7 @@ return fmt.Errorf("converting field VnumaNodes: %v", err) }
>  }
>  x.MaxGrantFrames = uint32(xc.max_grant_frames)
>  x.MaxMaptrackFrames = uint32(xc.max_maptrack_frames)
> +x.MaxGrantVersion = int(xc.max_grant_version)
>  x.DeviceModelVersion = DeviceModelVersion(xc.device_model_version)
>  if err := x.DeviceModelStubdomain.fromC(&xc.device_model_stubdomain);err != nil {
>  return fmt.Errorf("converting field DeviceModelStubdomain: %v", err)
> @@ -1341,6 +1344,7 @@ return fmt.Errorf("converting field VnumaNodes: %v", err)
>  }
>  xc.max_grant_frames = C.uint32_t(x.MaxGrantFrames)
>  xc.max_maptrack_frames = C.uint32_t(x.MaxMaptrackFrames)
> +xc.max_grant_version = C.int(x.MaxGrantVersion)
>  xc.device_model_version = C.libxl_device_model_version(x.DeviceModelVersion)
>  if err := x.DeviceModelStubdomain.toC(&xc.device_model_stubdomain); err != nil {
>  return fmt.Errorf("converting field DeviceModelStubdomain: %v", err)
> diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
> index a0acfaacc3a8..b1e84d525843 100644
> --- a/tools/golang/xenlight/types.gen.go
> +++ b/tools/golang/xenlight/types.gen.go
> @@ -316,6 +316,7 @@ CpuTime uint64
>  VcpuMaxId uint32
>  VcpuOnline uint32
>  Cpupool uint32
> +GpaddrBits byte
>  DomainType DomainType
>  }
>  
> @@ -479,6 +480,7 @@ BlkdevStart string
>  VnumaNodes []VnodeInfo
>  MaxGrantFrames uint32
>  MaxMaptrackFrames uint32
> +MaxGrantVersion int
>  DeviceModelVersion DeviceModelVersion
>  DeviceModelStubdomain Defbool
>  StubdomainMemkb uint64
> -- 
> Anthony PERARD
>
Acked-by: Nick Rosbrook <rosbrookn@ainfosec.com>

Thanks for catching that.

-NR


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:29:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:29:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227929.394352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3xB-0004m3-LU; Fri, 19 Nov 2021 13:29:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227929.394352; Fri, 19 Nov 2021 13:29:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo3xB-0004lw-IQ; Fri, 19 Nov 2021 13:29:21 +0000
Received: by outflank-mailman (input) for mailman id 227929;
 Fri, 19 Nov 2021 13:29:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo3xA-0004bz-20
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:29:20 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2ed0526-493c-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 14:29:19 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2054.outbound.protection.outlook.com [104.47.0.54]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-16-BL_4gu3kPm6Ms0E_kUTHpQ-2; Fri, 19 Nov 2021 14:29:17 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4445.eurprd04.prod.outlook.com (2603:10a6:803:6e::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Fri, 19 Nov
 2021 13:29:16 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:29:16 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0024.eurprd04.prod.outlook.com (2603:10a6:20b:310::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Fri, 19 Nov 2021 13:29:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2ed0526-493c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637328558;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=bC0l5inkLIxZfT55shA+ipt4o/14adaSq2lUaEBVqj4=;
	b=SK0nzutQ3r+UnBM2EkKaOOXRy7mAGCMxFV6v+7ZcpcV7X3+j1Fqxdt+su5YKmquNeGuhRr
	x2U/SYfbgCGpiBSGdcgtm/HFRN6BqR5cOJ/FzzwBXPoAdX9oEWW4lu+RaGh78FW53ef1Xi
	KdAnt6aeFc6/rFwNclq0WFs7tsAjIW4=
X-MC-Unique: BL_4gu3kPm6Ms0E_kUTHpQ-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AaJSmNPYfbtq4/+8/apOK5lyFthkiaXwdprEBJTnvmE/Kmcq3ZxjRwVobwQNYFYEQchxbhDl30aBtsPIs90Z+Vqj+YWmE9svc9y0rPFx2thK4c8QpLWS+zRYimvnX8jlqZ5Xg586nDCv30BtHG2c3xjgC2Ao2BmerTNu3/h3RbsjiAYqmeA6sJRfTNaTCvC4bwYbxzxlVwjufAtNFJ8BZxcNebO6gULrNGXiFYGK343nfiRlQoB0XuxO2gdfrWSoDDRYO/jNt2FFvDEteAUt/bCsdZh6ZqLELTu0ynAnWxfwsQPvondo3lg3om0XcYrV0LKWHq/xu4m8CVg6BQvMSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bC0l5inkLIxZfT55shA+ipt4o/14adaSq2lUaEBVqj4=;
 b=dk5vBsgm9vzA13woY/WgDh9P4R7OJ8IsWn7U+9vUqMkA9FXJP45FfcUY3BDDCFq10FCBPlMj9ttt/NocRt1gRYOR7HE50NXHXMpPnueKoQa+VwEZHiQTN+rKSFtJN1L2GqCfJXqPMrEBz5wsQq4/Kx9qnh+EJzpUcbZoj2HKIIL0jDv6Zh9fh74jm4jzap18M0EYLMCn2/Kv2CS/0EXpNgY4rDomqlm9EOWb+qoY+chYDFwGkXbEBz+g7iGqT2Vg+RNSwSNAcUTyWWl8Dh5yLa+1UhLzHa1rPoxA4+ZFp1oiEeEDmd7AZL9k1YPqsgntcB8sGc2+I2lfOkuCad9/0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <97515b30-ea6e-e497-dfe8-a38d8a28b05d@suse.com>
Date: Fri, 19 Nov 2021 14:29:07 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <9aec23b3-2269-39fe-9fc0-fb8cf7f9de44@suse.com>
 <1a380ef9-bdc9-bbfa-35b7-ec1c901e3019@epam.com>
 <76e929f9-2df1-951f-55bf-58caba80750c@suse.com>
 <ea3e52f3-c844-d2a7-2f45-9d4e1bd04d5a@epam.com>
 <a60f0837-3a01-4d87-7816-ae4a0a6a8413@suse.com>
 <3cca175c-5b33-2c50-bf4d-34bbe844ab11@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <3cca175c-5b33-2c50-bf4d-34bbe844ab11@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0024.eurprd04.prod.outlook.com
 (2603:10a6:20b:310::29) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f948e93a-5e79-4165-572b-08d9ab609507
X-MS-TrafficTypeDiagnostic: VI1PR04MB4445:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB444510FDEAFBD82D3A3B3998B39C9@VI1PR04MB4445.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	VtYgt/TQfWeCfn8PQK9MPcnmNzVriipUY/eg53pUda/upmE6gewOyc6szMUh+lwJQSamehjMFJlCHcSFxujWufH0jg8Onqf0SpczN8IZ4D2+tJieqPlM2Z0mnuGSSFlTk8j/UgOAv/zWSlb7HHYxZFm8S6PejzcifPEFNanBom6R3wLjT4k3NxZMcE/1e5ukvx+6ZBRZyzZj7jPGzQqTtZfzkPLor53Etv4jVMxQGfGMtGtuovxRQ3ufpaguWoLMJFZUxDsS68bZhMQEYuBbKwxL7QGbrBOLihJQgo0xBFezwOCTVFM8EdWaIhh3k1d0YyZDWpHSwLrcECsSyCYHiSVnGKd9NkcmDbJSuc3XCOf9jChK0PjQt9ztW4GrJO8SVryimQICKG0W1OPYwN7eSErWxjQLPXtvX15L1tey+Eu58Btb8E+K/ypLPomGW2iuTsTiwf2vc5vVI/pcCbq++U+C1SgFPdD3D3x+fGcrbrodKziyHl7Or0+OB3GEBhJ1Gdc33cC/1RrpOhklNDHPOJ28T+gxmWeYpSvkrOj4ZdjuT5ujPfy/JkQ7Q6wVpKLXAXi9YVT6QTTYua+yH15iSDPI+ZhODzRXoqwCie/lW3Mov4vDZwmJSgrNTv4o7bS5+4hfLB5nmZp595g0Rj2kltNb94Vs47SQgrptVW4btIxCkWqONE76KnrMdyEERz9s7QUpvPYThZ/qtUD9+KTOAJwun7ijBiEfgOnBvJqIvjw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(2906002)(186003)(4326008)(53546011)(2616005)(316002)(956004)(7416002)(5660300002)(66476007)(66556008)(6916009)(86362001)(31696002)(6486002)(8936002)(66946007)(6666004)(16576012)(508600001)(26005)(8676002)(31686004)(36756003)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SEp3NFp4bTZWS3dxVFFuTkJxVEZYZmIwaitHdmZleUFBQldkU1NiNTN3eTNM?=
 =?utf-8?B?UHgvQzBTeTNpV0JjZVh4OU95aWhxTjJDWVBuUzdLZ3J1TzYzcnhockRxY2dY?=
 =?utf-8?B?VWZ5b1Z1M0swcXQyYmRMSHhyY0RFcnhtbitWTjY4UDlTa2VhTkRENTdsM2lz?=
 =?utf-8?B?d3dLd25xTEQxcjVGQVprU3llMTZGeW9ORFpPcXV4WVc3Wlg5Rm9uTUk4UDZI?=
 =?utf-8?B?dDM2eEsvZXdUSG5LQ1NBc0JSQ2oyRGdwSjV3RlZqdXhHN3pNOE5zS2NKN3lB?=
 =?utf-8?B?ckh5TVc1aW1xVFhUbG40WnprLzJGOGVNQjJsSUNEZ0MyT2xEQUtsdndyeTAy?=
 =?utf-8?B?NHlJeFdnanJzT1orSFBVNkFMNG9jcHhJYzduNDhSZWZqb1NxcWlabUpnUFFa?=
 =?utf-8?B?bW5jMHBiekxwejU3WCt3OXBabllyZUpIdUcxOGpzYXF1bUVUQ0R1YkQ2WTIw?=
 =?utf-8?B?WWw4cWUxYUhyL2l1cTlaNStlcEdEMGcwMWNxSzhsSHNSNVFlamFZN2hnQ29G?=
 =?utf-8?B?RVdzLzU5ejAvdXlvcHJ1RUZSTEVpOEJhbnFWaG12UXNvblhXNWs3dmhycU5o?=
 =?utf-8?B?VDZpeG1JSDdtdkxaSmVwWE9pZHRhUzR1S2xvdTFMOFNEU3g4aHpockg2QTdT?=
 =?utf-8?B?MCtkc1FBK014Z0tHV29hbXgrd0k3Q2VYNWxlbHEvM2w4TFlybytWaHNHaysw?=
 =?utf-8?B?OGsvZFlmdEZhalJvYlJJcUxwUTRWRUM4NmJxbkJCaEhlM0dIbWt2ZE94WFhi?=
 =?utf-8?B?cFhnNDBoUytyZkk1OERQaTdQRGZNZ1BYcHZaRWJOMVRLeDAwL01DRVdObGd1?=
 =?utf-8?B?bXpteTJQbWR2WENZd0tsYXA1VHBjbStxUFlwdlMrbUVBQlp4c3I2b1VBMUJG?=
 =?utf-8?B?REpFREhiS003UDI3MGk4aTE0ZjcyNHcveW4zVVEyK21zdnJLQ1FPOWFwUS96?=
 =?utf-8?B?Yk5qdmlUWFg1UmtUaTBKZ1d0c2ZuRG1JUk1wWDZRMmxJVy9oblZURHlHeHNj?=
 =?utf-8?B?TjdIUTlyZnJ4VWxvaFlETXRBeFRSZ0V5NXhNaVY4WWRBVllTakZoVFF0MFh4?=
 =?utf-8?B?cGNBT1FtaW9kdEs2VkZjQUl0bjlOaEpEZ1YrRnJXbml0SGNFT1FlYk9ZTGVQ?=
 =?utf-8?B?TnpoRkR5QTVBeUFqem9FYTJibVBkRFFiNVgybW12V3dFdzhIQ3hXVy9rdGFy?=
 =?utf-8?B?bTdMOTg3ZEVLcmUwSFhvSjhyVlRGWkU3R3p1WXRGVE1CTXUvK2ZCc0ttbFlv?=
 =?utf-8?B?c3JOcStKc3EwbHE2WjZ1MUs5WVJMNEdWSzQ0dlpDbis4UzZIbXlmcFJteGNR?=
 =?utf-8?B?THBXdXJ3aWIxOFRlNUhkd3FHeUtaQ3NZeHMxYk54czJMTGpIYjZPVnJUY1Q3?=
 =?utf-8?B?Y2dRS2FscXgvWmd1VzU5WFd2MjJXZVg4UGtXa0hPQWdqWW82SnVVZ0x3ZTVP?=
 =?utf-8?B?T3FhV2l1OGE3K2EzZFVsRHpzSDIwWmpNdmhaK25pL2RpenZFQjRvOFJCZmdp?=
 =?utf-8?B?Ukg2WFplSmNFUU1LVG9uamdIb1QyQU5LREszQlAxQXhKVUdhVlV3SHd0NG4w?=
 =?utf-8?B?aTA0NlBTYXJkeUw1VS9uc25FZUYwYTB0bGdnZEtNZmUyUzBreXA5cjcxazVr?=
 =?utf-8?B?dDkzUzBZWHJGTkZ4eFlQdFNpUGFjdGc2ZXZCY2NsZ0UrTEZYSWxXSGZCV1VN?=
 =?utf-8?B?Zkt3NW1GMmhTSURkUFY5RlFNZ1JHWVZUa085Sm5ZWEhxMFBBczUyWGFUdXBM?=
 =?utf-8?B?ZFlOT0Q3SzV1dEUzVGlieUdiV0V3b1RjZkhlakVKM3ZXc1Npak01TmRMYmxR?=
 =?utf-8?B?UGR4dmZsaVVxeXEwWW1JWndoSUNwNWpqdmpkZDRYZHk0QjhoWWdTOVNvUjRS?=
 =?utf-8?B?LzIrRG4rZlNrd2ovWngyNk96eHYrN2NjWE03dUlUaWorenNTdE90VjhzMXhP?=
 =?utf-8?B?MVhORnRtUVFzblp0ZG4zNFhKSm5mdWhMbDhVT2JDNWF6VHdiUEtLT3c4VThh?=
 =?utf-8?B?Q29aV01iN3RmNWJ4SEtHaXZEamtPOUN5SlAzRlQ2elV3R0cwdyswOTU5UDlP?=
 =?utf-8?B?NFIrVmJ1RG1RNy9sZERXOGxxT0g4d2NpWGdKb0cwanBaUW9iL1ErZzM4WExH?=
 =?utf-8?B?cG5Vbi9QZXJNNERSb2w4QlNQNjBOUll0b2lVYUlBcm9MNGR2R3pzQXJ1SUVE?=
 =?utf-8?Q?BnjBFwX84Xq4TB/9IdKUsp8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f948e93a-5e79-4165-572b-08d9ab609507
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 13:29:15.9639
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zQxPZV543XWrXkCkNeBDgl+0nGwJHZWtpfqKpFhFqjvduDCQ638SJHVR6lC9e84PWpxxdS4PCb6gsr8I4XVzEg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4445

On 19.11.2021 14:19, Oleksandr Andrushchenko wrote:
> 
> 
> On 19.11.21 15:06, Jan Beulich wrote:
>> On 19.11.2021 13:50, Oleksandr Andrushchenko wrote:
>>> On 19.11.21 14:45, Jan Beulich wrote:
>>>> On 19.11.2021 13:13, Oleksandr Andrushchenko wrote:
>>>>> On 19.11.21 14:05, Jan Beulich wrote:
>>>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>>>
>>>>>>> Instead of handling a single range set, that contains all the memory
>>>>>>> regions of all the BARs and ROM, have them per BAR.
>>>>>> Iirc Roger did indicate agreement with the spitting. May I nevertheless
>>>>>> ask that for posterity you say a word here about the overhead, to make
>>>>>> clear this was a conscious decision?
>>>>> Sure, but could you please help me with that sentence to please your
>>>>> eye? I mean that it was you seeing the overhead while I was not as
>>>>> to implement the similar functionality as range sets do I still think we'll
>>>>> duplicate range sets at the end of the day.
>>>> "Note that rangesets were chosen here despite there being only up to
>>>> <N> separate ranges in each set (typically just 1)." Albeit that's
>>>> then still lacking a justification for the choice. Ease of
>>>> implementation?
>>> I guess yes. I'll put:
>>>
>>> "Note that rangesets were chosen here despite there being only up to
>>> <N> separate ranges in each set (typically just 1). But rangeset per BAR
>>> was chosen for the ease of implementation and existing code re-usability."
>> FTAOD please don't forget to replace the <N> - I wasn't sure if it would
>> be 2 or 3.
> It seems we can't put the exact number as it depends on how many MSI/MSI-X
> holes are there and that depends on an arbitrary device properties.

There aren't any MSI holes, and there can be at most 2 MSI-X holes iirc
(MSI-X table and PBA). What I don't recall is whether there are
constraints on these two, but istr them being fully independent. This
would make the upper bound 3 (both in one BAR, other BARs then all using
just a single range).

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:35:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:35:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227933.394363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo42e-0006Ac-A6; Fri, 19 Nov 2021 13:35:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227933.394363; Fri, 19 Nov 2021 13:35:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo42e-0006AV-6y; Fri, 19 Nov 2021 13:35:00 +0000
Received: by outflank-mailman (input) for mailman id 227933;
 Fri, 19 Nov 2021 13:34:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo42c-0006AP-V3
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:34:59 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c2b5eb2-493d-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 14:34:57 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJDJ3iV011266;
 Fri, 19 Nov 2021 13:34:53 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cecpu02p9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 13:34:53 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4308.eurprd03.prod.outlook.com (2603:10a6:208:ce::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 13:34:51 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:34:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c2b5eb2-493d-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MC8RoWj3XDHS8p31qySd/C54+xlMpgVIR/jALES40d13e6+lpJPBBjouWI+DUnL7iXiW5rYk/hexsouNACCgAYMMqbFfUCmvN9wzGNcxZG/Z5tvec4xnggyHFhPSGgVs3kf9hwq87WQYOWIS+/fcPSSxWrH9BdVEpL3F8ClrBJAEPubv5kkCBmlGAQbAqAN2hgHrmFzC2wmPMKeWkBRu4wr5Gt1DzlC/OvWwI99YkiCaYUihPkPnawQ8zKBaTXHSUgUCsefLNDhTS8bug7i3WQ/ni30tWNqPrDNA3r4WIlfNw+67v6BbPAurHyC+4NBWX6B7oALiMCN4gsAa2ldrFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rcw0J4GqCtUIz1RA1xN4GAXtWoX3iuBWZzMB9jOuM5U=;
 b=f/SFqDtzqmnLZt0DGsXmKayTXZ6hkdk3V0ceM/BnFAFDFU9SphyTd1YQopL/W6QpX13bltjmZDcp6KjVssQbC4MID9oi+xc5GxcJGwtvnQ3tRFCe5cMJOlpzQt56CzJS/hppTnQbiGQYRQU8wQD7eT52PV/OvHl2yll/kC5ijIRac2zVaqd9dEfFC/2yoTrvWE/kP1Y17QZnlJHLoZpzJJ2FAXMXA3awKS7VKHrLVnn92cEXqufUVsR+Mzg9K9rWJjHYV4t9r3T9YAj2+XbkqHo3a0WAde0dDLMe6XFm7/zrwSZAJD4cuv5Fedaq/n8ZsfOJNyX4moYPaW5bRTGPSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rcw0J4GqCtUIz1RA1xN4GAXtWoX3iuBWZzMB9jOuM5U=;
 b=bZHBgy0t7LRgsMsLBQ4k6SudBnW48cghy3a1Pyfned5KueAO0+Q1IG2tNBBy1s0Qizd6kCxMOn66kYxxSlGBva1wYKtDCUIcZlH59FO/9sN3aB9WBr6L3eeCRiNn+Ete7EoEjSTKelTy/r3She6blcof1IsN0aR6uOpsgW3xR/74SjU9oYO03eQYEzQzGsbogQGU8vBeMTaKsDuHyQeDE466yry06bG2x/6O97ek3Y1g3Hu0KZkKknzIh3yCsO3GK8USQLBV1FcStg6QlgKVWXMrA7YgMsR5QqMQEMby+r0uyWBlebq4ZUCgXwbeqi+LbXzPb8m+iTz2OG7hsfBckQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        "julien@xen.org"
	<julien@xen.org>, Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Stefano
 Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIAgAAFxACAAAoGAIAAAXMAgAABgYCAAAVtAIAAAX+AgAAB1wCAAVryAIAAB06AgAAEPgCAAAKhAIAAApkA
Date: Fri, 19 Nov 2021 13:34:51 +0000
Message-ID: <4e74d5e1-f54e-3888-ada2-a38545571744@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <d9620e9c-ef21-ea7b-0b25-16770fa47073@suse.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
 <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
 <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
 <5baf1199-e12d-cc41-4520-e32ed29a0436@epam.com>
 <fbc8a807-ea73-760f-8c75-df0930a5139e@suse.com>
In-Reply-To: <fbc8a807-ea73-760f-8c75-df0930a5139e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 79f80d4d-f0c8-40a6-9972-08d9ab615d2f
x-ms-traffictypediagnostic: AM0PR03MB4308:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB430847DB704A766C0F56F808E79C9@AM0PR03MB4308.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 ojtzpU8xX/ImOlMRTcAYh+6igb7V6XnUzKMusOTBUfwyOn++Qsm5QiBVqjhMoA7ey/s6nkWQF5re4Nz9CrQNT4ym61vNwSZuFYvx100kfrC64mGTJ0pAIpCW2h8hSU6DwgqludqMaVyGqgFcqMNiBZvPGmq1xez1j8Pazd5hLWP1ykOP54oWYaFbKTaCI51AxOcS/IDTqKsTQIhOuKyuzgb4rvR24Sv7GJ7ft27fxLBzeyd0+rBxAAwExGnrMbFD7eKb2ZXLSopeAw2TMOvIocFRGHtIdW9YD/pHcVyJWidKdkVIQYN2UHHlSCnqv6JpOWBcWMzsMSWVd3rEp74NjkRDnm28iZNSzN/nXJKjmKJS8p5cNblNu/3LuXROsROvQqHWhMS6M12GZFygRnmclZqMAXaDHoiNeNWf2Ck3OFgsdg8Zk7qGDVqRIJVEzcpVEnAbviaGSuXL1JCT+moE0wAnJJf9qFzj+WRc1PbQmq++yiMkRGpocRJX5P5ZCuz6GiF5e6jxg+PusSki7LKYoNgl0HbadJdoSsEY7s4LXzvanFMpHcfmYtw29u16p5rTFRpFvETJ4cKUK590BUbgzDSEZXXf/ME/gfD7dwUckLP5ldA7UAlVQnQx3Q6algFsqYefzhD/ElRxVXJAkJzqRSLQVOBDfWsAdp0veteqd+5SBAV9sGiDNKasXrDp/B2fs+03nQVREkdVoOJA2X2mrPvzOejZ7QYOLsP0trTQ58IhArArK5ET/iWZOMJL/fJd
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(31696002)(7416002)(5660300002)(36756003)(6512007)(4326008)(122000001)(508600001)(38100700002)(71200400001)(2906002)(66946007)(91956017)(83380400001)(6916009)(66476007)(64756008)(31686004)(2616005)(6486002)(66556008)(186003)(66446008)(8676002)(26005)(38070700005)(8936002)(76116006)(54906003)(316002)(53546011)(6506007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?YmVrWE5rWVFhMGhPSXVOZlNRZ0pIRXBpOUo0ZEFXL3BFcjY0Y2UvblFXNmxy?=
 =?utf-8?B?YmdRVm9XUVdjUXNTem5JbEo0YjJFbm5TN3grb2RGaHorZTdLV0NKdEdBTTBj?=
 =?utf-8?B?ZXZHd2NGS2JQK2wzR21lVnlsdDdwL0FPOWUxT25jcFBMTndMQ0E1ZXF4djJL?=
 =?utf-8?B?aTFyMmlRbXlyZ3RlYlgwRzF1S1VKRzlZQ1JxejBScTJ3bEZTZGdtdElKRVo2?=
 =?utf-8?B?cUhaWmRSc2NrRXd2OTU5SzRoSVJ6bWlIb21PQmZncS9QSTA5Qm44MjU5QkJR?=
 =?utf-8?B?NExNVlNZQkJTKzdiQUpMRktES21kamRqTythZUprc2pjbzZIcUorWjBjMHNP?=
 =?utf-8?B?RjVHZFRvbUxnNDUwalpiRHhxZUk2UXFPaytoS2ZQbVR5emdnTDVVSEZCaDcr?=
 =?utf-8?B?bWR6Y3BPb0RrVFN3WmVSUmlsTU42ckthMEdsb3YycjhMS2l1eldxeWs2T1FN?=
 =?utf-8?B?cU9TVDRKTDUxNm5uOEpJQVlaRnRQaEdpTGhVdW1iWXJEL2g4SHF0Z2VQaEU1?=
 =?utf-8?B?M1dvR0JvRmpVTXFyRkFoTHRKSXRzTm40SDlkdkJLUGo2N1RzU2ZJTTVxT0di?=
 =?utf-8?B?eU1FM1dqUTFJZDM1UzYzd1FPVmljdzEwT1lnZWk3RGdHTXMxYVlodHdLTFlT?=
 =?utf-8?B?SzBGMExrdlZNdlM3ZHdOOFdDUW41b3pMYzVhcVpXREFpSEpxVXEzcjB2d0ZM?=
 =?utf-8?B?UlgxeFQ4QjBVTVZlalIwaVhYdktkK3l5TDhINFFOTkx6czliUXNWYlFVR3k3?=
 =?utf-8?B?eXVoa2xSTVo2NUJoMFNDTzBmeVBJOEU0ZThmMDl2ZW9pTDN2cEdmdS9HK2tM?=
 =?utf-8?B?SXRpWUxjcWRmc0l3ZTY2WFhoRlAyLzhEeUdtYTU4ZmNib0FldXk5N2ZIaU52?=
 =?utf-8?B?QTUzd2JxaWlDNVRidmJRU09xMFFPNTBCV1Z1cEp3WEJKYWo1eHgvbU9pYkRm?=
 =?utf-8?B?U3FTUlo5ZVdjdklKK2xPcGRQYXIzQVRsS2Z5SlBpeGxaU0QzYWxkTVRpN3Np?=
 =?utf-8?B?THh0c0d2UWoyVStiZGM0QmFXMkxZN0UxQThKTWFiSzNsc2VPYVIybVNGU2Qw?=
 =?utf-8?B?Q1NKY2M1eXRwOHRrZDFzVlVOYithZEt3VXdXci83OVlDbFgwaHE0QVN4THJn?=
 =?utf-8?B?dlEvM1hsczRTN1NUbjFobldyUTFaYXcxU0VnVmJEMXQ2UEtSTnFiY3A0YTVx?=
 =?utf-8?B?MFIxVkcyQmRNYmQ0Q29XQnhVTzkzZVhSQUxKdVFTVGdYRG5EaUV2Ny9LVDNn?=
 =?utf-8?B?bitKNkFmUlAwV1JOMVkwcjh4YmVHWFNjdkEySzVZUHFiZldrYnIxZk9WNStt?=
 =?utf-8?B?N1ZLMWh6bXYveURNUW1QOUF6bGs5ZktkeW9jRkFEeGEzc0o1OFdVb21UcE0x?=
 =?utf-8?B?NFp3VUhMS2tpejg5RG02R0tGaFdHVUQrUnd1YWFGY3FpQW5CU1hCdjFBSmsx?=
 =?utf-8?B?cmRsampGblpCTGlqN0xHNWZuU3hDSVczcDB2VWhXUkpKS1NldjBhNkw2Tkts?=
 =?utf-8?B?NHI5emZKSGNta3V0TzZSMVNrN1I1SkRIR0xMOHJlbnhCSkNxSW9EYW50Q2wv?=
 =?utf-8?B?WTdnRjJIaXN3QU9aK05nVkZqazA2OEhwa0ppdXJoQnZONWZkR1hrT3QxcUw3?=
 =?utf-8?B?ZVJQUyt6Zjg0bmtDYXRUKzZIVEJjR1V2MkovUmg2MGJpako3MFJSK0xHOHlT?=
 =?utf-8?B?UmVsVEc0UDd5SHhsampVRWp0MHV6allweVc2b1BsaE0yZEtpbDEzc2dPVlRZ?=
 =?utf-8?B?WXYxWE12ZVFNUWZBSFdhMFQ2eEtlVkExT1dqSlFjYWIwNmV5c2lLV1JSVGNn?=
 =?utf-8?B?c2VvQnN2RlVZbnExUnFzcW1LMTJxdjEwekpOSW4vZHppSVRlZStXSjNvQUtG?=
 =?utf-8?B?MEdZYW1Rb1R5bnRidit2dXliTWY4MnZGWG1hNG1mZ211MVo4ckxxNEhLMGJC?=
 =?utf-8?B?R1QwVjJ5NWtEZmZ2NDYyczZGNExxYnJHVlZIU2ZBWk9jMzlISDhvaG42dHdR?=
 =?utf-8?B?MmkvcmhZYkMzV3JMK2ZMSWRXbFYvaFdlckYrNG9RTWI2dTIwZXhtWWsxQ1dC?=
 =?utf-8?B?bE1ER3VkcTUrTThweFpaSDY1eURDbk1jT0hPVHIxT25xT0xJMGliRjQ4c1Q5?=
 =?utf-8?B?aWhoeTBJTjRmbTVNcitxaWJKcnB3Sk94eVFJYkhZakJHQVM4RXRZZUFDMFNt?=
 =?utf-8?B?TXQ5dUM2S1l5SkNFYkkvM0FHYmozd3dsRkU2UFV4UzFCdFF1NUN1dUZucnkx?=
 =?utf-8?B?ZkhRektKWFM5MjdkdXArMWV1OTI1RHhUTGdrMyt0YnVNcG53L09zbGhKVUR0?=
 =?utf-8?B?ZmdnYmVrNUdvaTZpNVNSczNiSHU2bkFtLzFBbUxLaDBDMTZUMTZrdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DBEB874FC1B4A24AB35BE2F8FAFE628A@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 79f80d4d-f0c8-40a6-9972-08d9ab615d2f
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 13:34:51.1819
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Q7wYPg+pUsqtwDgrrkBaEENAPodC+T5vf0wf+ASW80wIt8E2qVyiaQ44MtI+KM2vELxbBaJoNxKyR+zh5ZRi7AiL4R037qd3hhU5Dtd0Zw8UToGPP9a2AgFDfKXThXpo
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4308
X-Proofpoint-ORIG-GUID: S95Uf8GOmRoVi4ewmDp2D8geRskGjUdI
X-Proofpoint-GUID: S95Uf8GOmRoVi4ewmDp2D8geRskGjUdI
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 mlxlogscore=999
 mlxscore=0 clxscore=1015 adultscore=0 spamscore=0 bulkscore=0
 priorityscore=1501 lowpriorityscore=0 malwarescore=0 impostorscore=0
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190076

DQoNCk9uIDE5LjExLjIxIDE1OjI1LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxNDoxNiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOS4xMS4yMSAx
NTowMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTkuMTEuMjAyMSAxMzozNCwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IFBvc3NpYmxlIGxvY2tpbmcgYW5kIG90aGVy
IHdvcmsgbmVlZGVkOg0KPj4+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCj4+Pj4NCj4+Pj4gMS4gcGNpZGV2c197bG9ja3x1bmxvY2t9IGlzIHRvbyBoZWF2eSBhbmQg
aXMgcGVyLWhvc3QNCj4+Pj4gMi4gcGRldi0+dnBjaS0+bG9jayBjYW5ub3QgYmUgdXNlZCBhcyB2
cGNpIGlzIGZyZWVkIGJ5IHZwY2lfcmVtb3ZlX2RldmljZQ0KPj4+PiAzLiBXZSBtYXkgd2FudCBh
IGRlZGljYXRlZCBwZXItZG9tYWluIHJ3IGxvY2sgdG8gYmUgaW1wbGVtZW50ZWQ6DQo+Pj4+DQo+
Pj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCBiL3hlbi9pbmNsdWRlL3hl
bi9zY2hlZC5oDQo+Pj4+IGluZGV4IDI4MTQ2ZWU0MDRlNi4uZWJmMDcxODkzYjIxIDEwMDY0NA0K
Pj4+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaA0KPj4+PiArKysgYi94ZW4vaW5jbHVk
ZS94ZW4vc2NoZWQuaA0KPj4+PiBAQCAtNDQ0LDYgKzQ0NCw3IEBAIHN0cnVjdCBkb21haW4NCj4+
Pj4NCj4+Pj4gICAgwqAjaWZkZWYgQ09ORklHX0hBU19QQ0kNCj4+Pj4gICAgwqDCoMKgwqAgc3Ry
dWN0IGxpc3RfaGVhZCBwZGV2X2xpc3Q7DQo+Pj4+ICvCoMKgwqAgcndsb2NrX3QgdnBjaV9yd2xv
Y2s7DQo+Pj4+ICvCoMKgwqAgYm9vbCB2cGNpX3Rlcm1pbmF0aW5nOyA8LSBhdG9taWM/DQo+Pj4+
ICAgIMKgI2VuZGlmDQo+Pj4+IHRoZW4gdnBjaV9yZW1vdmVfZGV2aWNlIGlzIGEgd3JpdGVyIChj
b2xkIHBhdGgpIGFuZCB2cGNpX3Byb2Nlc3NfcGVuZGluZyBhbmQNCj4+Pj4gdnBjaV9tbWlvX3ty
ZWFkfHdyaXRlfSBhcmUgcmVhZGVycyAoaG90IHBhdGgpLg0KPj4+IFJpZ2h0IC0geW91IG5lZWQg
c3VjaCBhIGxvY2sgZm9yIG90aGVyIHB1cnBvc2VzIGFueXdheSwgYXMgcGVyIHRoZQ0KPj4+IGRp
c2N1c3Npb24gd2l0aCBKdWxpZW4uDQo+PiBXaGF0IGFib3V0IGJvb2wgdnBjaV90ZXJtaW5hdGlu
Zz8gRG8geW91IHNlZSBpdCBhcyBhbiBhdG9taWMgdHlwZSBvciBqdXN0IGJvb2w/DQo+IEhhdmlu
ZyBzZWVuIG9ubHkgLi4uDQo+DQo+Pj4+IGRvX3BoeXNkZXZfb3AoUEhZU0RFVk9QX3BjaV9kZXZp
Y2VfcmVtb3ZlKSB3aWxsIG5lZWQgaHlwZXJjYWxsX2NyZWF0ZV9jb250aW51YXRpb24NCj4+Pj4g
dG8gYmUgaW1wbGVtZW50ZWQsIHNvIHdoZW4gcmUtc3RhcnQgcmVtb3ZhbCBpZiBuZWVkIGJlOg0K
Pj4+Pg0KPj4+PiB2cGNpX3JlbW92ZV9kZXZpY2UoKQ0KPj4+PiB7DQo+Pj4+ICAgIMKgIGQtPnZw
Y2lfdGVybWluYXRpbmcgPSB0cnVlOw0KPiAuLi4gdGhpcyB1c2Ugc28gZmFyLCBJIGNhbid0IHRl
bGwgeWV0LiBCdXQgYXQgYSBmaXJzdCBnbGFuY2UgYSBib29sZWFuDQo+IGxvb2tzIHRvIGJlIHdo
YXQgeW91IG5lZWQuDQo+DQo+Pj4+ICAgIMKgIHJlbW92ZSB2UENJIHJlZ2lzdGVyIGhhbmRsZXJz
IDwtIHRoaXMgd2lsbCBjdXQgb2ZmIFBDSV9DT01NQU5EIGVtdWxhdGlvbiBhbW9uZyBvdGhlcnMN
Cj4+Pj4gICAgwqAgaWYgKCAhd3JpdGVfdHJ5bG9jayhkLT52cGNpX3J3bG9jaykgKQ0KPj4+PiAg
ICDCoMKgwqAgcmV0dXJuIC1FUkVTVEFSVDsNCj4+Pj4gICAgwqAgeGZyZWUocGRldi0+dnBjaSk7
DQo+Pj4+ICAgIMKgIHBkZXYtPnZwY2kgPSBOVUxMOw0KPj4+PiB9DQo+Pj4+DQo+Pj4+IFRoZW4g
dGhpcyBkLT52cGNpX3J3bG9jayBiZWNvbWVzIGEgZGVkaWNhdGVkIHZwY2kgcGVyLWRvbWFpbiBs
b2NrIGZvcg0KPj4+PiBvdGhlciBvcGVyYXRpb25zIHdoaWNoIG1heSByZXF1aXJlIGl0LCBlLmcu
IHZpcnR1YWwgYnVzIHRvcG9sb2d5IGNhbg0KPj4+PiB1c2UgaXQgd2hlbiBhc3NpZ25pbmcgdlNC
REYgZXRjLg0KPj4+Pg0KPj4+PiA0LiB2cGNpX3JlbW92ZV9kZXZpY2UgbmVlZHMgdG8gYmUgcmVt
b3ZlZCBmcm9tIHZwY2lfcHJvY2Vzc19wZW5kaW5nDQo+Pj4+IGFuZCBkbyBub3RoaW5nIGZvciBE
b20wIGFuZCBjcmFzaCBEb21VIG90aGVyd2lzZToNCj4+PiBXaHkgaXMgdGhpcz8gSSdtIG5vdCBv
dXRyaWdodCBvcHBvc2VkLCBidXQgSSBkb24ndCBpbW1lZGlhdGVseSBzZWUgd2h5DQo+Pj4gdHJ5
aW5nIHRvIHJlbW92ZSB0aGUgcHJvYmxlbWF0aWMgZGV2aWNlIHdvdWxkbid0IGJlIGEgcmVhc29u
YWJsZSBjb3Vyc2UNCj4+PiBvZiBhY3Rpb24gYW55bW9yZS4gdnBjaV9yZW1vdmVfZGV2aWNlKCkg
bWF5IG5lZWQgdG8gYmVjb21lIG1vcmUgY2FyZWZ1bA0KPj4+IGFzIHRvIG5vdCBjcmFzaGluZywN
Cj4+IHZwY2lfcmVtb3ZlX2RldmljZSBkb2VzIG5vdCBjcmFzaCwgdnBjaV9wcm9jZXNzX3BlbmRp
bmcgZG9lcw0KPj4+ICAgIHRob3VnaC4NCj4+IEFzc3VtZSB3ZSBhcmUgaW4gYW4gZXJyb3Igc3Rh
dGUgaW4gdnBjaV9wcm9jZXNzX3BlbmRpbmcgKm9uIG9uZSBvZiB0aGUgdkNQVXMqDQo+PiBhbmQg
d2UgY2FsbCB2cGNpX3JlbW92ZV9kZXZpY2UuIHZwY2lfcmVtb3ZlX2RldmljZSB0cmllcyB0byBh
Y3F1aXJlIHRoZQ0KPj4gbG9jayBhbmQgaXQgY2FuJ3QganVzdCBiZWNhdXNlIHRoZXJlIGFyZSBz
b21lIG90aGVyIHZwY2kgY29kZSBpcyBydW5uaW5nIG9uIG90aGVyIHZDUFUuDQo+PiBUaGVuIHdo
YXQgZG8gd2UgZG8gaGVyZT8gV2UgYXJlIGluIFNvZnRJUlEgY29udGV4dCBub3cgYW5kIHdlIGNh
bid0IHNwaW4NCj4+IHRyeWluZyB0byBhY3F1aXJlIGQtPnZwY2lfcndsb2NrIGZvcmV2ZXIuIE5l
aXRoZXIgd2UgY2FuIGJsaW5kbHkgZnJlZSB2cGNpDQo+PiBzdHJ1Y3R1cmUgYmVjYXVzZSBpdCBp
cyBzZWVuIGJ5IGFsbCB2Q1BVcyBhbmQgbWF5IGNyYXNoIHRoZW0uDQo+Pg0KPj4gSWYgdnBjaV9y
ZW1vdmVfZGV2aWNlIGlzIGluIGh5cGVyY2FsbCBjb250ZXh0IGl0IGp1c3QgcmV0dXJucyAtRVJF
U1RBUlQgYW5kDQo+PiBoeXBlcmNhbGwgY29udGludWF0aW9uIGhlbHBzIGhlcmUuIEJ1dCBub3Qg
aW4gU29mdElSUSBjb250ZXh0Lg0KPiBNYXliZSB0aGVuIHlvdSB3YW50IHRvIGludm9rZSB0aGlz
IGNsZWFudXAgZnJvbSBSQ1UgY29udGV4dCAod2hldGhlcg0KPiB2cGNpX3JlbW92ZV9kZXZpY2Uo
KSBpdHNlbGYgb3IgYSBzdWl0YWJsZSBjbG9uZSB0aGVyZSBvZiBpcyBUQkQpPyAoSQ0KPiB3aWxs
IGFkbWl0IHRob3VnaCB0aGF0IEkgZGlkbid0IGNoZWNrIHdoZXRoZXIgdGhhdCB3b3VsZCBzYXRp
c2Z5IGFsbA0KPiBjb25zdHJhaW50cy4pDQo+DQo+IFRoZW4gYWdhaW4gaXQgYWxzbyBoYXNuJ3Qg
YmVjb21lIGNsZWFyIHRvIG1lIHdoeSB5b3UgdXNlIHdyaXRlX3RyeWxvY2soKQ0KPiB0aGVyZS4g
VGhlIGxvY2sgY29udGVudGlvbiB5b3UgZGVzY3JpYmUgZG9lc24ndCwgb24gdGhlIHN1cmZhY2Us
IGxvb2sNCj4gYW55IGRpZmZlcmVudCBmcm9tIHNpdHVhdGlvbnMgZWxzZXdoZXJlLg0KSSB1c2Ug
d3JpdGVfdHJ5bG9jayBpbiB2cGNpX3JlbW92ZV9kZXZpY2UgYmVjYXVzZSBpZiB3ZSBjYW4ndA0K
YWNxdWlyZSB0aGUgbG9jayB0aGVuIHdlIGRlZmVyIGRldmljZSByZW1vdmFsLiBUaGlzIHdvdWxk
IHdvcmsNCndlbGwgaWYgY2FsbGVkIGZyb20gYSBoeXBlcmNhbGwgd2hpY2ggd2lsbCBlbXBsb3kg
aHlwZXJjYWxsIGNvbnRpbnVhdGlvbi4NCkJ1dCBTb2Z0SVJRIGdldHRpbmcgLUVSRVNUQVJUIGlz
IHNvbWV0aGluZyB0aGF0IHdlIGNhbid0IHByb2JhYmx5DQpoYW5kbGUgYnkgcmVzdGFydGluZyBh
cyBoeXBlcmNhbGwgY2FuLCB0aHVzIEkgb25seSBzZWUgdGhhdCB2cGNpX3Byb2Nlc3NfcGVuZGlu
Zw0Kd2lsbCBuZWVkIHRvIHNwaW4gYW5kIHdhaXQgdW50aWwgdnBjaV9yZW1vdmVfZGV2aWNlIHN1
Y2NlZWRzLg0KPg0KPiBKYW4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:38:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:38:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227941.394374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo45i-0006se-VB; Fri, 19 Nov 2021 13:38:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227941.394374; Fri, 19 Nov 2021 13:38:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo45i-0006sX-RQ; Fri, 19 Nov 2021 13:38:10 +0000
Received: by outflank-mailman (input) for mailman id 227941;
 Fri, 19 Nov 2021 13:38:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo45h-0006sR-PN
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:38:09 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id edaf4934-493d-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 14:38:08 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJBYCsm005728;
 Fri, 19 Nov 2021 13:38:05 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2173.outbound.protection.outlook.com [104.47.17.173])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3ceb5k8fc8-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 13:38:05 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB2831.eurprd03.prod.outlook.com (2603:10a6:800:e4::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 13:38:02 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:38:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: edaf4934-493d-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=en1dSDzQS/EGrJgjVWJ2BLZSVCHPQlA1WHYaL7Z2dCQDhvV4iggSZInnrYFc3mfqneis17eaFNRCiuGaivrSVhBJklB8kNBiYaLJA86Se//TFVswMmLveIaMuN1e9N1seF6zJsPYKohc90urFPEHmUnyOxYn7u4q1/dnRvjKsIYSEcVhE6g+v5lgNB1Qbpm3wD7cXzIpMJKKwSuphCKM0ozvWmG5Skxv6ZYqVL3P8hNzqPNwGVEMZyhhgG5VFtHbSIeve+v9TU5w+3QeLfmUr8g5X8VLnv0o/CqQIi4SewPQ0XJ37E0WAQxFegBh3snpZ1LgoLEkxIPcdLdNcVoFww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jAtGxGIi003IPewgks8a5Qh5wNzc/sUGLNCDeZgVNPc=;
 b=nMLlPbbp6edf+F5svfV4GxjhSTLGw09r4w6gRKRAnD5ROuSimkW8BJT4Cm0z0W5XAGN54xe1v+KLkVZKu/JMQNpFzMA2o/fO26rgN2TyJ11Ty7IzEetewRazRiA8TGr+EDhBlBMgyI5CSF6Xiv+cc/bMlUiAGOK0aYUe4+Rk4zvSRwaNZgCIug3TKfco9NkhH/1KV1YkooGydnUV6us7e7SnN2galPLx5H53UK1nvJ/dYcXz6eZzs1jQy8hxPi4cjtqEbUmOmPrfMgJ2pK/EyCDAE9dAiAP5p+sSKJ9TKMqAhDT1yPoGTm+BDgczyTfr/S3x3GasP1Q7qV+z6sViJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jAtGxGIi003IPewgks8a5Qh5wNzc/sUGLNCDeZgVNPc=;
 b=mOo2ubC1slGAX3yWTl8jcjXrOA/m5bKHbmqVom+cm8gqJulRxI4Wm9buPWjrt6CdPY08TtHJbPvSggKiAdBnDLiMGhPQPt04a8EidV51VncTWNvTr9KQ9FHQGFtiw4X6gMzR+XTxsvzSdUU4qb3jAzb96Yx/cEfKnBeY7dRsRl/14zgFfcTevOeOmv9q1L+NBK0MFrjsRC3+IFvvCZsjbgKtxSeEzbGALwDz4YhWgBLuDIJDBWiDjRkhpabNYqmsIPQutVFRFQfl2BdS3utdymtKq20pG08gn52shBMPmeJSQieUR2GedRD8/5HpYPxi5aZCCa/FsBpw9iY04dzUDw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Topic: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Index: 
 AQHX0hJLwt+wJ2t1lka5jlbMIq7ZAqwK13MAgAACAoCAAAkUAIAAAXCAgAAEdQCAAAOYAIAAArCAgAACfIA=
Date: Fri, 19 Nov 2021 13:38:01 +0000
Message-ID: <d0455f1c-0789-3548-5499-4a1dbd477225@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <9aec23b3-2269-39fe-9fc0-fb8cf7f9de44@suse.com>
 <1a380ef9-bdc9-bbfa-35b7-ec1c901e3019@epam.com>
 <76e929f9-2df1-951f-55bf-58caba80750c@suse.com>
 <ea3e52f3-c844-d2a7-2f45-9d4e1bd04d5a@epam.com>
 <a60f0837-3a01-4d87-7816-ae4a0a6a8413@suse.com>
 <3cca175c-5b33-2c50-bf4d-34bbe844ab11@epam.com>
 <97515b30-ea6e-e497-dfe8-a38d8a28b05d@suse.com>
In-Reply-To: <97515b30-ea6e-e497-dfe8-a38d8a28b05d@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 01393a27-803a-4ba7-2d94-08d9ab61cedb
x-ms-traffictypediagnostic: VI1PR0302MB2831:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB2831F254789A5CD0C212D98CE79C9@VI1PR0302MB2831.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 2LSCLL0+KktEnHbQO5qnIMsNrBswbfm/kRQdcgrqXqdQIOe27+91/joZpMQqrJajLIqU/3vHa/7Ein8cRJfdr/ivug1t0l8J0tHc5PtYGU867p3oDhhKN0ngxuSf5ko3nOrPPbesdZEYlVyG2RBjfFd7LoR+q0vqSGEeWjLpJk/i+Vwe1dUxN6pmic0WO91MYUVD4oNxYtBgJ4MGUwR2tuLeR4omNiOk9pz+qlxaCuehmN7mF8dHUIHhaw+eM2Zskl4hXnAKXciK5Kh72g1Qv7cmvCKX3AHEnuAuaIN5wo6BoSIsTWv83BUH7ps3X3WuA8AOiLlWzFlU8bSdRkJA01e5joctb3vaYOR3FCZEQkTqWLWnYNOIRlZVpfvmiuJlH8bUVQ1VMLS0QWjj40YYlGcl+neZDA1GsMJ3xZ7+7srld+5K13FObk/oeauaSqp5vlG9cpuyiOfimKjJrN7qkIL/U2XNFDGhPZsXpSUhlTtJLjjk3k6MlZVmjftq/y3eJKjSDvUMVT8AnnUYdbrVl8PsjncjJrwqLR+47unUfI9zEYUyHE4GjGiWNLprtU4KkqhVzmnXcE9OPnCY7fLE6ZyIuM0qg8m1VDnM82iRVzKuWVkt3dOo8NlEOQ872coi85nxX+Oc7ccESWikY3/B4VVKZQybOkDn3ldMKKx1Lz84gL0CZxl+/TgIueXHeXUs7mET05HKiOxCUAVdkpV03meOSkTxTetqbJu5I5o+CCRgl7x8Rw7oUN4FPiU2f8rE
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38070700005)(316002)(2906002)(6486002)(71200400001)(66556008)(91956017)(66476007)(54906003)(31696002)(86362001)(6506007)(53546011)(31686004)(38100700002)(64756008)(26005)(6916009)(4326008)(5660300002)(8676002)(186003)(76116006)(122000001)(36756003)(66446008)(6512007)(2616005)(8936002)(7416002)(508600001)(66946007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?RmYwWnJycFRPWTFLMzJzVWhQTWNNRlNDNHpuNU1HWEpsT0pEclVmdFdDY1dv?=
 =?utf-8?B?U2J1VG03ejRqMGlRcUlSWHVoL0UwMGYzT2NxRmxkMUZiSkJqUWFQTXlvQWF5?=
 =?utf-8?B?Uis1bTl2cTlXZWRsdTNrcUovdm1sMjd6clFFU1dpa2NnOEt2dHR6NmxINjJK?=
 =?utf-8?B?ZXBIMjRNT1k5bHpzY29UTStHYXk1SENlSmx4c2ZLTmF2a3RhUTVLMXlZeEpB?=
 =?utf-8?B?QTBjMElFRFFaMmUxT3dSZVR5K2YrQ2hxQWVwSTVDSm96aXdFK0dCcm41THJP?=
 =?utf-8?B?WHFRMXIrdmJtM1o2Qzg2SEFod3ZiQlVzRWRPMnd2Z2grRmFqcjlHY0RHSzg2?=
 =?utf-8?B?UU9UMEZPK2JDakVuUWliV1dxbkYycFBlamh6Ty9RVUdLRUdFZ2VtY0VneWZj?=
 =?utf-8?B?TldjN1dEaHlLcDJhM2l6Y3JEUTlRYXVpWGp0YmFCVUpwWEQ1L3hMaTJJbGhV?=
 =?utf-8?B?eGdMd083TUlNL0NIdGJ5MElIR3Y2REZqOXlyMkJ6dThtdkRBb1dxeGQ2a1RB?=
 =?utf-8?B?ZE1xQ3F3aHN5OURpWjRyK3VHUnVEaXEyWnJoV2xJSHVDTUhObDJmR2U4TytP?=
 =?utf-8?B?cmo3TzQ5SG1TMndjL2JkNlI4ZVJLL3Z3bkwxWkpJWkJsanhkMGs4UkRDaGFW?=
 =?utf-8?B?cW1kMi84aEM5T0tRcDg0ZnEyQ1RHQnZiSmxlR3J5Y08yRnBzejBCcWZaZGFV?=
 =?utf-8?B?L1BWS1BYcGdvOEhYU2JCcENtSlFXc0lSeXJUQVp2TlVSTDd3UWU3a0Y1WXJm?=
 =?utf-8?B?cUZ4VXUrMkE0dFJOVzBWZGN3b2FTaW5OVmRxOE4wTCtIUDNPWHVUaEpyb3pk?=
 =?utf-8?B?ZWR1ZWdRV0RaWTg2ZUt0MitoNFJNUENBM3dHU0M0UjRKemM3cnZRQWVkT1Zw?=
 =?utf-8?B?cGs5NlF6ZmF4TkRJR1Q0azBFVHNicUNyMXF1amZoaEhFZCs4M040ZUVQbk9r?=
 =?utf-8?B?NGRBeHo0bjNOVFd3YWVCVVlRYkN1VzEzNnpmcFp4ZVJWTlB4SXpKamdxRjlN?=
 =?utf-8?B?bkNoQWpUdWVMTHd2eHlINkpqbkJ6VGhQbTIrN0gvbXlYMFMwakRaalFCUWFn?=
 =?utf-8?B?K2Yrc0tnblZ3Y3ZkK3NhRzQrcGJSV1NaMDRDMjBIWkNNcEVZenRDVTRCQWFs?=
 =?utf-8?B?bGVibVFtbGNVaXlyaEV0KzQ4aFBNcllaVWVjWU5BTnRJQ3JBVGVMT21YK0Ey?=
 =?utf-8?B?SEg5Ykcrd3lhVjBmUk1WMTBtNloyWk00WVpqK3QyOU5jby85LzN3SFBSWHEz?=
 =?utf-8?B?Y3ZsMzR1TVo0dVJDb1ZHRTE0VStzYzNEYzJnVEtVZzBSdVRlTmJWV0xYRlJX?=
 =?utf-8?B?Q2dEYk9Ga1R4ZkFJSS9hdTdab0NRVldyQVBFRzZiNXRZQmpmQzJ3V0MvVmlE?=
 =?utf-8?B?VWw3K0lxRkJUblF3UjhITXVEc0F6Q3BoOGI2TzNLMVBwUmlEYy9peFlBRVl5?=
 =?utf-8?B?NjNrTFRIMVRSeFo5Qk8ySzQ5WUpTUnh2ZEtNNzBtM2pFT21YcTF0bHBTVU5t?=
 =?utf-8?B?U01EemJoaHd0QVYvN25QMjI3emxNQVduZytEdXZWdGF0K01wTnh2U01TMnJD?=
 =?utf-8?B?T2tMSEtiV252TDRmOXFPMStrZmJ5cGNHV2ZkVGFIdnp6aGdyYzFUTE9wbHIv?=
 =?utf-8?B?cHdaaDBGbWhoMXFhZlV5T0o0cThGdFJnRzFyNURKVis3RnB1Ym9naGs2MjI3?=
 =?utf-8?B?RmNFMC9oWmhWSnZaUDBRQmo0blVaKzcwZU45TE90NjN6Y0RaSWtwRkZRWVlP?=
 =?utf-8?B?QTBEQldXemJkSkcyVWRTRm1HMVdmcFpaSHc1dUk2c3pDVmVtZ0xoNjJXVTBl?=
 =?utf-8?B?MzVVYlZBUENnZWdBaGhlUW1tUFhTZDFBQVZIUlYzVDJ2STZiQ1N6L2p5T1ZE?=
 =?utf-8?B?cHNGVUR3dGx4N0RheDRrL0ZnRTByWmt2T2FzaytuNmtnd29QMUVDU0FXSm5u?=
 =?utf-8?B?dmxlVUw3NWJ1NXdMalV5SDdaTmErNWVlY1gzNkhKNGRBTTZUSGxIMm9mWDFl?=
 =?utf-8?B?S3hkRmhtVjdHR1FTZEduOHo0dlBWeGZJQzU0dXB2aFNEbTF0U2ExbHA0V0hv?=
 =?utf-8?B?ZEFsNjNlUjA2RXg0N0xVTG5DNHRMSHdLM0wybU1OTm96ZzBULzFuMTNTbkQ0?=
 =?utf-8?B?a3RsWWtGYmlyVVZ1UGNNbUxhZ1B0aTFOdnltVWxONEwycVFsQm5iUStScUFO?=
 =?utf-8?B?c0p1L05MS2xmNzRYcG9aMnhTbVAzTGVqYzlrdlJuK3ZYWFk1amRzV0t1K3I0?=
 =?utf-8?B?bjVSLzc2cTl2SWMrWHloTmdZSy9JcHRwTENuWU16Q1Y3ajJJQ2R2WUFXMXJR?=
 =?utf-8?B?NjRxZ0pVaDlrT2Z5S29xOSs1SUFMVlg5TU5KRlRjakdUYW5neFFpQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <EF06333B8F425D4AB2DD9E6A0072FD83@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 01393a27-803a-4ba7-2d94-08d9ab61cedb
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 13:38:01.8650
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: H5UwAq2To1y2qADlLv1XJDYwq5/t0qRiID2HBTRm+VBHxzLnFGOW7gMYYCnQg4I7oOL1GHAPrJMmenKxvP4Pe4puNLb5UKXfwno2Bx7cAKRdONrdMeKYjpEHSN5UcvhR
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2831
X-Proofpoint-GUID: 8D9RgH6yaDi9Rr0vx5er4m5nirux0xgx
X-Proofpoint-ORIG-GUID: 8D9RgH6yaDi9Rr0vx5er4m5nirux0xgx
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0
 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 impostorscore=0
 mlxlogscore=999 suspectscore=0 mlxscore=0 adultscore=0 priorityscore=1501
 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190076

DQoNCk9uIDE5LjExLjIxIDE1OjI5LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxNDoxOSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMTkuMTEu
MjEgMTU6MDYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDE5LjExLjIwMjEgMTM6NTAsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAxOS4xMS4yMSAxNDo0NSwgSmFu
IEJldWxpY2ggd3JvdGU6DQo+Pj4+PiBPbiAxOS4xMS4yMDIxIDEzOjEzLCBPbGVrc2FuZHIgQW5k
cnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBPbiAxOS4xMS4yMSAxNDowNSwgSmFuIEJldWxpY2gg
d3JvdGU6DQo+Pj4+Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNoY2hl
bmtvIHdyb3RlOg0KPj4+Pj4+Pj4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtz
YW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IEluc3RlYWQg
b2YgaGFuZGxpbmcgYSBzaW5nbGUgcmFuZ2Ugc2V0LCB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgbWVt
b3J5DQo+Pj4+Pj4+PiByZWdpb25zIG9mIGFsbCB0aGUgQkFScyBhbmQgUk9NLCBoYXZlIHRoZW0g
cGVyIEJBUi4NCj4+Pj4+Pj4gSWlyYyBSb2dlciBkaWQgaW5kaWNhdGUgYWdyZWVtZW50IHdpdGgg
dGhlIHNwaXR0aW5nLiBNYXkgSSBuZXZlcnRoZWxlc3MNCj4+Pj4+Pj4gYXNrIHRoYXQgZm9yIHBv
c3Rlcml0eSB5b3Ugc2F5IGEgd29yZCBoZXJlIGFib3V0IHRoZSBvdmVyaGVhZCwgdG8gbWFrZQ0K
Pj4+Pj4+PiBjbGVhciB0aGlzIHdhcyBhIGNvbnNjaW91cyBkZWNpc2lvbj8NCj4+Pj4+PiBTdXJl
LCBidXQgY291bGQgeW91IHBsZWFzZSBoZWxwIG1lIHdpdGggdGhhdCBzZW50ZW5jZSB0byBwbGVh
c2UgeW91cg0KPj4+Pj4+IGV5ZT8gSSBtZWFuIHRoYXQgaXQgd2FzIHlvdSBzZWVpbmcgdGhlIG92
ZXJoZWFkIHdoaWxlIEkgd2FzIG5vdCBhcw0KPj4+Pj4+IHRvIGltcGxlbWVudCB0aGUgc2ltaWxh
ciBmdW5jdGlvbmFsaXR5IGFzIHJhbmdlIHNldHMgZG8gSSBzdGlsbCB0aGluayB3ZSdsbA0KPj4+
Pj4+IGR1cGxpY2F0ZSByYW5nZSBzZXRzIGF0IHRoZSBlbmQgb2YgdGhlIGRheS4NCj4+Pj4+ICJO
b3RlIHRoYXQgcmFuZ2VzZXRzIHdlcmUgY2hvc2VuIGhlcmUgZGVzcGl0ZSB0aGVyZSBiZWluZyBv
bmx5IHVwIHRvDQo+Pj4+PiA8Tj4gc2VwYXJhdGUgcmFuZ2VzIGluIGVhY2ggc2V0ICh0eXBpY2Fs
bHkganVzdCAxKS4iIEFsYmVpdCB0aGF0J3MNCj4+Pj4+IHRoZW4gc3RpbGwgbGFja2luZyBhIGp1
c3RpZmljYXRpb24gZm9yIHRoZSBjaG9pY2UuIEVhc2Ugb2YNCj4+Pj4+IGltcGxlbWVudGF0aW9u
Pw0KPj4+PiBJIGd1ZXNzIHllcy4gSSdsbCBwdXQ6DQo+Pj4+DQo+Pj4+ICJOb3RlIHRoYXQgcmFu
Z2VzZXRzIHdlcmUgY2hvc2VuIGhlcmUgZGVzcGl0ZSB0aGVyZSBiZWluZyBvbmx5IHVwIHRvDQo+
Pj4+IDxOPiBzZXBhcmF0ZSByYW5nZXMgaW4gZWFjaCBzZXQgKHR5cGljYWxseSBqdXN0IDEpLiBC
dXQgcmFuZ2VzZXQgcGVyIEJBUg0KPj4+PiB3YXMgY2hvc2VuIGZvciB0aGUgZWFzZSBvZiBpbXBs
ZW1lbnRhdGlvbiBhbmQgZXhpc3RpbmcgY29kZSByZS11c2FiaWxpdHkuIg0KPj4+IEZUQU9EIHBs
ZWFzZSBkb24ndCBmb3JnZXQgdG8gcmVwbGFjZSB0aGUgPE4+IC0gSSB3YXNuJ3Qgc3VyZSBpZiBp
dCB3b3VsZA0KPj4+IGJlIDIgb3IgMy4NCj4+IEl0IHNlZW1zIHdlIGNhbid0IHB1dCB0aGUgZXhh
Y3QgbnVtYmVyIGFzIGl0IGRlcGVuZHMgb24gaG93IG1hbnkgTVNJL01TSS1YDQo+PiBob2xlcyBh
cmUgdGhlcmUgYW5kIHRoYXQgZGVwZW5kcyBvbiBhbiBhcmJpdHJhcnkgZGV2aWNlIHByb3BlcnRp
ZXMuDQo+IFRoZXJlIGFyZW4ndCBhbnkgTVNJIGhvbGVzLCBhbmQgdGhlcmUgY2FuIGJlIGF0IG1v
c3QgMiBNU0ktWCBob2xlcyBpaXJjDQo+IChNU0ktWCB0YWJsZSBhbmQgUEJBKS4gV2hhdCBJIGRv
bid0IHJlY2FsbCBpcyB3aGV0aGVyIHRoZXJlIGFyZQ0KPiBjb25zdHJhaW50cyBvbiB0aGVzZSB0
d28sIGJ1dCBpc3RyIHRoZW0gYmVpbmcgZnVsbHkgaW5kZXBlbmRlbnQuIFRoaXMNCj4gd291bGQg
bWFrZSB0aGUgdXBwZXIgYm91bmQgMyAoYm90aCBpbiBvbmUgQkFSLCBvdGhlciBCQVJzIHRoZW4g
YWxsIHVzaW5nDQo+IGp1c3QgYSBzaW5nbGUgcmFuZ2UpLg0KU28gaWYgdGhleSBhcmUgYm90aCBp
biBhIHNpbmdsZSBCQVIgKHRoaXMgaXMgd2hhdCBJIHByb2JhYmx5IHNhdyB3aGlsZQ0KcnVubmlu
ZyBRRU1VIGZvciBQVkggRG9tMCB0ZXN0cyksIHRoZW4gd2UgbWF5IGhhdmUgdXAgdG8gMyByYW5n
ZQ0Kc2V0cyBwZXIgQkFSIGF0IG1heCwgc28gSSB3aWxsIHVzZSAzIGluc3RlYWQgb2YgTiBpbiBk
ZXNjcmlwdGlvbiBhbmQgd2lsbA0KcHJvYmFibHkgcHV0IHNvbWUgZGVzY3JpcHRpb24gaG93IHdl
IGNhbWUgdXAgd2l0aCBOID09IDMuDQo+DQo+IEphbg0KPg0KVGhhbmsgeW91ISENCk9sZWtzYW5k
cg==


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:41:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:41:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227946.394385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo48p-0008DG-EW; Fri, 19 Nov 2021 13:41:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227946.394385; Fri, 19 Nov 2021 13:41:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo48p-0008D9-Al; Fri, 19 Nov 2021 13:41:23 +0000
Received: by outflank-mailman (input) for mailman id 227946;
 Fri, 19 Nov 2021 13:41:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo48n-0008D3-Sd
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:41:21 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 600802b0-493e-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 14:41:20 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJDDq1i030927;
 Fri, 19 Nov 2021 13:41:16 GMT
Received: from eur02-am5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2050.outbound.protection.outlook.com [104.47.4.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cebkv8bf9-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 13:41:16 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB7122.eurprd03.prod.outlook.com (2603:10a6:20b:2d7::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 13:41:12 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:41:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 600802b0-493e-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OQJoyFCrE0xHuLF1S7gMmRN8WakALixnsUlMDjLXlr+TzjDxKt0NUgip7FvyNlg+qwrzoYleHJqbsbK0zR1UuJXPOXFktOhWUdq5dnc1xmKqyEqq3NRhpy/3TDAP74EnsvdtzA+m28W9WOyGw9kuKCBJwoVpSaeApHm4nWan1on9VTnBu5HedOKlnjbN11dy3OZmuckbdbRnSMW0oFyS+6ndYoQS/2/5KEg6DLIBk26chx9J/LdMyJ8vBrEz1kLW6pJGWQa6txbg+m8zi7gUHilyCRDH20ESWLRtGEaHjjxRDfF4a5IuqS46ZyobyBG2LReBISiGZo0FcAVGjDwUHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mdjUaUuvmkK2au7R7pSabC6xgXPInAR5bksrHymMn6g=;
 b=Qhr8Ihg7EIeyEgJ7KMJY8ltvof6Y0gB0v6PqXU2aUj6XXvmZTh8QKUt0sfmDXqpWyXC/mx5dq1l9P+nvb5D/1Z2KRI3gne1I0pz9JX4k4DhktFErGemJfuJhRj5uO1V4UdZa4PsHENanAM1LEoJUOr+HflTZoZiiPM71DQHxOiTAHQxTXnPiBmYrbrz14MtIWQfE2WCWnnvxuiFn1FPRP5jqEkET+/8umNaiwgqKzxS11howA69BAt7cNeczJWy4On6pbi7LdF7t7WFtEaApA1T5MvftgNSh4IhX4G19al4ySvVBA1gceNCf6lOdl051g1OTeQwQ8zFWA9TIzDW6MQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mdjUaUuvmkK2au7R7pSabC6xgXPInAR5bksrHymMn6g=;
 b=ToX0Pt6Agu5ndXELvj2m3pBE7QmJzB5PUSssbt7YZ35pjCgoUYpkGo9W5Hmw1i8aSJDr1+ZfM8d+nCM+U5Z/4NqNaK3/dChm00RjdGYH8EQCYzBWtkxyk3v7du+PDXuRkJGR85P9yLHEKF7c/TQ/4l8VE9mV9O/McTSOn0yGhwXMQkUHvwUSMMRoXr3lwKBAI/0LWXF+tnpxLk/7Tr04a6HRgxV7eWugwp7CyxY55fwX4rTh7LoEeg0Wvz/t8BCLIqeMgTlKQbKCLp6Wlp1+o0jLElpvPr+mHHPag0iSz3ge3QA9vZ6CvAJU8tPmyG0EjS6fSBcoM0NhqsvjeUC9Fw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        Oleksandr Andrushchenko
	<andr2000@gmail.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Topic: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Index: AQHX0hJLwt+wJ2t1lka5jlbMIq7ZAqwK60SAgAAG0YA=
Date: Fri, 19 Nov 2021 13:41:12 +0000
Message-ID: <6b2d4825-3b00-4034-2804-a44059de15a1@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <3a7f4c3a-7162-8cd3-0879-2f87572f0225@suse.com>
In-Reply-To: <3a7f4c3a-7162-8cd3-0879-2f87572f0225@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 50fa2a1e-0361-4d44-7e52-08d9ab62403d
x-ms-traffictypediagnostic: AM9PR03MB7122:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB7122C3D90317781E733A4C6DE79C9@AM9PR03MB7122.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 YU1GXa7GtscQSAxRPABRDHeUxvAY3v1kpFTPWLgCYECeHiI6nYVohxVyExFyJ4TiK9LThPkXRtcbDnfJ2MW8/j8rGVZTy2AAcoOxmEFAYE6oa6XiGhbmMZJx0n1SacMiodgFlaqAXnLRS47CSZqsmaccE8ed2UmeQwHsAKdKTSdqU5vSSgiMKbXeieOsJb1olwsSoOOAAxDVvjli/52UzxR4YymYrTY7Zfln7tyhX74Q3RwVNmZZh7LxR1UOSu7uxHyebc6bT1wacwAq6TU9YQRfdi6cKfhTue/c8nroXFfG0HxqUjl5/aJ41hWThhhvvSWCh+PKQnOd5ocmXXOqdG/DbV8OkBanJzdR1F0WriP5xq8tnbI6/GCwYipDM6s24pgBo/dP5uiM3XGKlizZLDuptSBJQB6CoJ3bZgnpYmx2ve5TY4fhjtdhN7ZP2yayi68dFwMKbhs5o2T8EI3VYT/CnC0cXw1s9U7z/gcnB+mICDYSv13XWVnT3/FLHdiNf84huwvyS7fsEOwZTT2AICuqCzjWhPBwWl1masc+0axbXbq14IbUOe+RG65x8m5Z9ArV9odDNALBewEOPRMFryDqqTNi4h78WEUYu5d5Q/Nfm+fWOP69yS6IaStMrQVSCkEMW7OycJm0XGZEpRryipqkxK5ToVHdhjhthTPSs25mUErcG6ISk3/Kh+O6XaR4gGVni7H3DH6dxTKbf3b/txaOfpfuR8XZLvXGvP96TCrLDr7WBITQ0JNDpbIu+H6h
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(36756003)(4326008)(2616005)(2906002)(122000001)(4744005)(38100700002)(31696002)(508600001)(38070700005)(7416002)(76116006)(26005)(53546011)(8676002)(5660300002)(6506007)(6512007)(91956017)(71200400001)(64756008)(54906003)(66446008)(316002)(66476007)(8936002)(83380400001)(110136005)(86362001)(66556008)(6486002)(31686004)(66946007)(186003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?Vy9wYys4ckZBTlhpVTB6Zlp0S3JHVVVleHo3aUVHZitNUTNsdmsxWGVPbnVJ?=
 =?utf-8?B?Q2tabEtXNnpCRHVZYlJXTDFTcVZLSXdmZVlUNXJ0SHNGbFFraEN6UTNERnFS?=
 =?utf-8?B?dUVpaFczUy9xUjIzM28zM0M4U1lvUWpvZUQ2bFdVaHN3MUN6enlzVXJSZS9G?=
 =?utf-8?B?OUF2b2V4ei9mcTVqV1BVZmpoRk5yS3B2MVhaaUNQRndEcjdtZ2hvcTNXd0xD?=
 =?utf-8?B?R2U1dFFwR0VhQlo3OGE4ZC8vM1pQLzE1UDR2L0l6dUphNG56NHdhZUx0YWh4?=
 =?utf-8?B?NW93NXdsL21EZWc2QXlNS01xNUc3RDhFczlzSmt1U0RIQjBTVmxKQWNIUTlN?=
 =?utf-8?B?N1h2YlZ2N3hCallxOVcvc0kzL0loRHRCaG1jdFIwZEllaUxPMWNXUHdlV1g4?=
 =?utf-8?B?a0o3REtlUnA4TlRSdCtiRHNVYzlaWWN2bHlraUtiaVZheENHSVUyRVF6QlVs?=
 =?utf-8?B?MVd3NG1WamVPcjQyeVJpa2dTb0RqNTZJSUdEUVM0ZjRLcHN5clBxeSt0VWpB?=
 =?utf-8?B?emJJRTc5eW8xVTc4NW0yWW81ZHFxOFdXeERMQ0I0d2N3SXh3SU9VSnlkZEZY?=
 =?utf-8?B?Q3RlT2thTU1mQTFrUHdBOEhlZVJaMGFMSTNSQkR2eHR3dlZRNEZPblFnMkNy?=
 =?utf-8?B?b0kzaUNGRUd4OTFZT1d2YkNiRDYzVlNhZ1Q3cGJ4cG50MjgzVmFlWXowUXNF?=
 =?utf-8?B?UWN5NTJjaTcwU0x3L0c5M0tTZlp5MG95WFh6S2NOUnh2V1IweVY1MTdwcUI0?=
 =?utf-8?B?eEovd0p3Tmt0QTFMa2hqUHpRUFo3NXkzd3lDVTRvVFBRTkJGK2srK3ZFckZy?=
 =?utf-8?B?a21zSk9kMmkvSkpSVHpOaFdDNjU2Q0locmhqSnhLemN2NWFsbmhUSVAyMUtt?=
 =?utf-8?B?NkN6eTVYQXFSbklCekxpSzZabCtaNFliU1B3cWd3QTVOTVE1RDYwYWsxMzNl?=
 =?utf-8?B?L3RkVitUV0U4aStNOW1sb2lPUmJyNnVjNFI5S3VXdUFBVTFOd29iSVJvdlU2?=
 =?utf-8?B?MVJHZlpaNW9Eb2txVGFvRXo0b3BTamFla2Z4OXN2OEw1eE4wRkRFU016V0dV?=
 =?utf-8?B?MkRCMC9KSVJRQTB5eTg3RW9MS3NkUnBMWVdMa3RZTTlMTi9FTElJMU11MEti?=
 =?utf-8?B?cjVKTklodmpkU01uOUUzRHl6ZjVyTnBwNFFkOXFCdkU3U1ZHV296eFoxd3BM?=
 =?utf-8?B?Ny81YVBBTEVCUFREZ3lWWHYrZFlxSjQrOGl6bjdxc1BNZWY5NkY1a0QzYXpm?=
 =?utf-8?B?SzZFVGtNOGxPY3k3bTdhVE1HZHBNd0krU0NWQlhSc2dzTGJVYTdKSldBclBP?=
 =?utf-8?B?U1hXWXJGYnJwRDJWa09QVnFKeWltampJQW9jWFYzand3c25MR1dVRUZnb3Vv?=
 =?utf-8?B?emtFdEV5ZUhrMC9oL0NkU2xpMyt3c3JoVE5LY2VVbS9hQWRQKzdPaUlRU2l1?=
 =?utf-8?B?NkU4UnBHanpBSnNQckxIVFFCM3k4VWZHcllNR0I5b01XOWhKUUpLTzU1cTB0?=
 =?utf-8?B?WHAzQ0J4TU5nbWphbFJuUFZ0ZzJUNUFMaUxnK1NZZEttSitTcnAvMjFBUHJ5?=
 =?utf-8?B?WHRxbUk4d21xcGs1M2ZzbnlJcGhWVUtOUmhhOE9UTHl5bVNKTUszTXEvY0Iy?=
 =?utf-8?B?OTdReXVaK1V3U1RzR25zMVpIa1pFbHhJb1BJNUtuQUxIUFZXWTlBQkl1Tzk0?=
 =?utf-8?B?QzJBcVo5Y1VuYzlLcXg0VWVCOEFpL3psNGFPMThudXNDeERpOUFSZEVuMTJD?=
 =?utf-8?B?emlJK3ZXVDRvYUxqNlhQc3IzWHJKQWpEOEkrNVRGdW52NkRYSHZ1Y29sanl4?=
 =?utf-8?B?Wko0cXVRUWxVa2JCU014ZTJjQVMyZERTWGpRR3Q1YzdtVEhONHcra1hmUTU5?=
 =?utf-8?B?WjBlRHVET0pEVmFIRXlXZGMvTDlzcXdnQ3BINnUreGJINEowNXN0eStxSGVY?=
 =?utf-8?B?b3V3S1VVNnBQRVpBSzlrVUFValpVcVFxQVpXMU1pRVlyVS9JelNNbWYxTTl4?=
 =?utf-8?B?d1ZJOTZaaVF3VnBNd2E4WGN2MW42M3VGM25abExMNUZxYmJ1MFdvdEVnODZV?=
 =?utf-8?B?T2xNU1JMZFBMNk9QOVFObG1tMlM3K3NpTXRzTXU3ZXlLbU0wK1BpZ0Y4cHp1?=
 =?utf-8?B?T2xRUDJKdEVmeXRLelU1bWRvSjg3ZE1KeHZXd0tNVFJTRzU0OWhGbll5Yjds?=
 =?utf-8?B?YmdIS3pKbDNEQUFOT2RNSG8wc3B2SnZZeXBjMmpPbDZyOGFrazNPN2tLSEY5?=
 =?utf-8?B?Tk5UUUJQL1l5ZGNiYUs4VW1OcUIvVzB3QlIrQjJ1Qjg1N04xS2lLNVdldGJD?=
 =?utf-8?B?bFdENDhGTmZmdTNMMW5JMEpzWGZOK0NMOU5uNlFLU1gvcGtXZlZQQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <74E9B5D73179A049ADFE4E0A2F7D615D@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 50fa2a1e-0361-4d44-7e52-08d9ab62403d
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 13:41:12.0859
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Lm7bJoBplKfQHaatbHpeKkGlpAf1zGu9AAH/7uQT5pTXFTrQQi7rXtOJrVhw/iAguQQDLFO1wZk2Bjsuov8Dy8taMzLPOgFaoxbn+WRyEcqdxq7OVdHwi9HaLjHEDG5z
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7122
X-Proofpoint-GUID: vIncJB3uf3H_L-GrG0_EW0aRmV2WAiE4
X-Proofpoint-ORIG-GUID: vIncJB3uf3H_L-GrG0_EW0aRmV2WAiE4
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 adultscore=0 spamscore=0 malwarescore=0 impostorscore=0 bulkscore=0
 mlxlogscore=853 phishscore=0 mlxscore=0 suspectscore=0 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190076

DQoNCk9uIDE5LjExLjIxIDE1OjE2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBAQCAtOTUsMTAgKzEw
MiwyNSBAQCBpbnQgdnBjaV9hZGRfaGFuZGxlcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiAg
ICAgICBJTklUX0xJU1RfSEVBRCgmcGRldi0+dnBjaS0+aGFuZGxlcnMpOw0KPj4gICAgICAgc3Bp
bl9sb2NrX2luaXQoJnBkZXYtPnZwY2ktPmxvY2spOw0KPj4gICANCj4+ICsgICAgaGVhZGVyID0g
JnBkZXYtPnZwY2ktPmhlYWRlcjsNCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpF
KGhlYWRlci0+YmFycyk7IGkrKyApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHN0cnVjdCB2cGNp
X2JhciAqYmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCj4+ICsNCj4+ICsgICAgICAgIGJhci0+bWVt
ID0gcmFuZ2VzZXRfbmV3KE5VTEwsIE5VTEwsIDApOw0KPiBJIGRvbid0IHJlY2FsbCB3aHkgYW4g
YW5vbnltb3VzIHJhbmdlIHNldCB3YXMgY2hvc2VuIGJhY2sgYXQgdGhlIHRpbWUNCj4gd2hlbiB2
UENJIHdhcyBmaXJzdCBpbXBsZW1lbnRlZCwgYnV0IEkgdGhpbmsgdGhpcyBuZWVkcyB0byBiZSBj
aGFuZ2VkDQo+IG5vdyB0aGF0IERvbVUtcyBnZXQgc3VwcG9ydGVkLiBXaGV0aGVyIHlvdSBkbyBz
byByaWdodCBoZXJlIG9yIGluIGENCj4gcHJlcmVxIHBhdGNoIGlzIHNlY29uZGFyeSB0byBtZS4g
SXQgbWF5IGJlIGRlc2lyYWJsZSB0byBleGNsdWRlIHRoZW0NCj4gZnJvbSByYW5nZXNldF9kb21h
aW5fcHJpbnRrKCkgKHdoaWNoIHdvdWxkIGxpa2VseSByZXF1aXJlIGEgbmV3DQo+IFJBTkdFU0VU
Rl8qIGZsYWcpLCBidXQgSSB0aGluayBzdWNoIHJlc291cmNlcyBzaG91bGQgYmUgYXNzb2NpYXRl
ZA0KPiB3aXRoIHRoZWlyIGRvbWFpbnMuDQpXaGF0IHdvdWxkIGJlIHRoZSBwcm9wZXIgbmFtZSBm
b3Igc3VjaCBhIHJhbmdlIHNldCB0aGVuPw0KInZwY2lfYmFyIj8NCj4gSmFuDQo+DQpUaGFuayB5
b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:44:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:44:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227951.394395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4Bq-0000Q5-SK; Fri, 19 Nov 2021 13:44:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227951.394395; Fri, 19 Nov 2021 13:44:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4Bq-0000Px-PI; Fri, 19 Nov 2021 13:44:30 +0000
Received: by outflank-mailman (input) for mailman id 227951;
 Fri, 19 Nov 2021 13:44:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kvWs=QG=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mo4Bp-0000Pm-Iz
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:44:29 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf75a8c5-493e-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 14:44:27 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf75a8c5-493e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637329467;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=8gzb+RjcBp+fvaX5Uw6nHwqjnmxvrj4+nHvVFlvmWQw=;
  b=HqKQDbON8Hhr/iH5NL6+jRnUJ7XH9GecNXuYI9URSCCY8a25K+bdCLTV
   BE7yxRBLUO9ayXbEr3EBjy91mAyc7Ja4lW5EVvb8ElqEOIjof/BOu7xLf
   vwUnbh9Yufx7T3k1Ud3gE8OrkPMr0+/rIlOf3LHzWi7yydvaYaMgC3mMn
   Y=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 7cMpZqhf7chRG0om382q0thZdl12EA2gqks17noy6+a1253QW8jdKqE/fjtv3L+f+D1tscSDYd
 bqIf6hmYKW0/j6DZzJ6SC5hkQfYqM+Ux0ufKOC2tUK2yA8QuZwofwQK9We+ENt2n+XN26id2W9
 jpcFIfkr9sxDQNNaweAiG2qW/xWexTEFvHysgmnXZXqN4Ek7gYG+EUPHupTAbR8tGt6xFc7V0K
 xYvzkQ1BrqDkttlR/V0bSpPtbJqV3HBjvRpN+UZ8sENqbkmBWkAEiepIggQhq6ZRURXojxhVyC
 fcmLhp3mld61zaZ9RCJsSvl8
X-SBRS: 5.1
X-MesageID: 60208877
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:KlaVLaOQ8IQebcjvrR1okMFynXyQoLVcMsEvi/4bfWQNrUp31DdTz
 mBJUWnSOf/eYDbxKt1xa4iz/UhSuJWDnIVrTwto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Esyw7dRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoyyVw9RJx
 exrjIW5FUAVb5PzgN0TUQYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgm9q3pAeQqm2i
 8wxUjddK03gPEB0B0pIJpACpsWOmUTkWmgNwL6SjfVuuDWCpOBr65DyNPLFd9rMQt9a9m66j
 G/b+2XyAjkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24nNSQPoGd
 RZSoHB36/Fvqgr7FbERQiFUvladokIYY9dpNdQj4V3K9vvq3B6gCGobG2sphMMdiOc6Qjkj1
 1msltzvBCByvLD9dU9x5ot4vhvpZ3FLcDZqiTssCFJcvoK9+N1bYgfnF447SMaIYsvJ9SYcK
 txghAw3nP0tgMECzM1XFniX0mv39vAlouPYjzg7v15JDCslO+ZJhKTysDA3CMqsyq7DEzFtW
 1BexaCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I9sPum8mdRc0b5ZYEdMMX
 KM1kVkMjHO0FCH0BZKbnqrrU5h6pUQePYqNug/ogipmPcEqKV7vENBGbk+MxWH9+HXAYolkU
 ap3hf2EVC5AYYw+lWLeb75EjdcDm3BvrUuOFMuT50n2jtKjiIu9FO5t3K2mNbtisstpYWz9r
 r5iCid940kFDbClPHCIqdV7wJJjBSFTOK0aYvd/LoarSjeK0kl7YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:JOQbKKOku3+HHsBcTs+jsMiBIKoaSvp037Eqv3oRdfUzSL3/qy
 nOpoV96faaskdzZJhNo7+90cq7MBfhHPxOkOss1N6ZNWGM0gbFEGgL1/qa/9SKIU3DH4Bmu5
 uIC5IObeHNMQ==
X-IronPort-AV: E=Sophos;i="5.87,247,1631592000"; 
   d="scan'208";a="60208877"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Jane Malalane
	<jane.malalane@citrix.com>
Subject: [PATCH] x86/dom0: Fix command line parsing issues with dom0_nodes=
Date: Fri, 19 Nov 2021 13:44:16 +0000
Message-ID: <20211119134416.1110-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

This is a simple comma separated list, so use the normal form.

 * Don't cease processing subsequent elements on an error
 * Do report -EINVAL for things like `dom0_nodes=4foo`
 * Don't opencode the cmdline_strcmp() helper

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Jane Malalane <jane.malalane@citrix.com>
---
 xen/arch/x86/dom0_build.c | 37 ++++++++++++++++++++++---------------
 1 file changed, 22 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index fe24e11b37fb..5a7441ed5b79 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -169,30 +169,37 @@ bool __initdata dom0_affinity_relaxed;
 
 static int __init parse_dom0_nodes(const char *s)
 {
+    const char *ss;
+    int rc = 0;
+
     do {
+        ss = strchr(s, ',');
+        if ( !ss )
+            ss = strchr(s, '\0');
+
         if ( isdigit(*s) )
         {
+            const char *endp;
+
             if ( dom0_nr_pxms >= ARRAY_SIZE(dom0_pxms) )
-                return -E2BIG;
-            dom0_pxms[dom0_nr_pxms] = simple_strtoul(s, &s, 0);
-            if ( !*s || *s == ',' )
-                ++dom0_nr_pxms;
+                rc = -E2BIG;
+            else if ( (dom0_pxms[dom0_nr_pxms] = simple_strtoul(s, &endp, 0),
+                       endp != ss) )
+                rc = -EINVAL;
+            else
+                dom0_nr_pxms++;
         }
-        else if ( !strncmp(s, "relaxed", 7) && (!s[7] || s[7] == ',') )
-        {
+        else if ( !cmdline_strcmp(s, "relaxed") )
             dom0_affinity_relaxed = true;
-            s += 7;
-        }
-        else if ( !strncmp(s, "strict", 6) && (!s[6] || s[6] == ',') )
-        {
+        else if ( !cmdline_strcmp(s, "strict") )
             dom0_affinity_relaxed = false;
-            s += 6;
-        }
         else
-            return -EINVAL;
-    } while ( *s++ == ',' );
+            rc = -EINVAL;
 
-    return s[-1] ? -EINVAL : 0;
+        s = ss + 1;
+    } while ( *ss );
+
+    return rc;
 }
 custom_param("dom0_nodes", parse_dom0_nodes);
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:56:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227957.394407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4NL-0001vt-4l; Fri, 19 Nov 2021 13:56:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227957.394407; Fri, 19 Nov 2021 13:56:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4NL-0001vm-0i; Fri, 19 Nov 2021 13:56:23 +0000
Received: by outflank-mailman (input) for mailman id 227957;
 Fri, 19 Nov 2021 13:56:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo4NJ-0001vg-Cs
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:56:21 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7881d1f3-4940-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 14:56:19 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2113.outbound.protection.outlook.com [104.47.18.113]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-39-chFN-VpxOi63mylV6c1PCw-1; Fri, 19 Nov 2021 14:56:17 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2333.eurprd04.prod.outlook.com (2603:10a6:800:28::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Fri, 19 Nov
 2021 13:56:15 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:56:15 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR04CA0042.eurprd04.prod.outlook.com (2603:10a6:20b:46a::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Fri, 19 Nov 2021 13:56:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7881d1f3-4940-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637330178;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Ww7DjeOjXT7M3/ugM3CtYXns9ejuTOCuAT/N7ojpj/4=;
	b=Ga4n/wwcSTFVC4wQuenpevGA5PfsrggQvaHuEeYtYbDtczxbKY4GqGM0VR0kl3GEXPMK5y
	zKHafZuLpCgNXyUVsKZ/6gDTLANsvQYbB0ZV3k55RfElv9CIMVOUpOBPyi4m8oWppEAinL
	Zz9ZynYlG8aR5I3SfVXdZ7yOz/cf4O0=
X-MC-Unique: chFN-VpxOi63mylV6c1PCw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K+GbAxfo9/57+hkbjQfIi5MvP5C+DSbOzsAg2pdTQdTmcUIA22hx8V1HYvI/2B4RwWXNYepalZt9l5FtDxnMB2ZRAJSZE8SPRjuwIxi4I5pvM4cKBSmtjoWo/QU0ORlPTcqXpVH528//VtDDokbQ+43aWa32mrEZvI4ND63Kb0+wm/xLHcE9fhB/HiwmsYQML5G7pYtOCWhkN/a3bW6FYzRUTocwg5lUZZOXGijGhX70yEK3fmxBjXXatuVo7fFw5dqYv6jyDdKOIJ57B35MBSIm4yjjvyKnOb4typbEZoMFpOcarazY43qP1PXxFiJxm+JlC5jXBp6ze3NExMJRdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ww7DjeOjXT7M3/ugM3CtYXns9ejuTOCuAT/N7ojpj/4=;
 b=nFQfBvt7CwVFFW/fUQY/2D907kzDuuyONe8Nh/b2GcVx1BZOoJBSbh0I9WMkA0NVljv9gyA9h5jOVIakQd2cnjcedmdhuzJiIOXmTiQbWNKcvSueaef8isGK9o0ss+P8A2HhtKp8+G1+9MYVUmc265K48zzXv4fj2+kiYgX60vRoYP0A2/MFbcm1RBjrZ5EO28C0DiOn8shkCcWL69FRrgl0bB2+lk9uH3tJJN5eZOSC4lDEU16z08U8WrTAixXzdsn+ZC7R9s3XDN5U3SizNag2UHY+MFFtwJvVDzdbL5tgjtQDJMhpaeyoBKN+9ZxCDAeOLDnV0k/lDuH2xE3JQw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
Date: Fri, 19 Nov 2021 14:56:12 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211105065629.940943-1-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR04CA0042.eurprd04.prod.outlook.com
 (2603:10a6:20b:46a::14) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fa9d9591-acf8-47ae-9de4-08d9ab645a76
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2333:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2333866591A1A99E97F8467BB39C9@VI1PR0401MB2333.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	E4JmcoG2zeHO3+w6M5ExgnxmMUhr8dvFBXqYQmR6Iqgw8+11gwPXxKlgv/S9T6IYlB67wc7djdH+hI5z6h1N4eYIF/cbOCnEIBQRO2gv6FDuZojoRHU03DfB1/k52z/gc0ysUPOyutusJjIfchnDehVJimO0YPkVEjE12J43xlZSgD33J//8yk9nl3jVdr2Hcq6jfSSAJvjMt+RvZeyD+QCctymty1WMqwI8kuk9VsjCC4TTttrfPZtP5SVGAOgGTROYX657iXU0XMySakH6bCFczdnJCVkZYyQtGU8FadzHuVPR8Lp0LwJTPoofoyI3VODCLh6A0sguSgi5TJ9DZJ+Z2Qmmj+ff2FqtjpvLQjylsou3aUm/QN+N78JoHfcriLziCnLE8yExFJ2oJDxXTtBHXJXDWoQ6z8gSBahls6WDbgELjEm5Pj5tz86A1VNGUsDX/rRySu7V4suYYFFwaRLtq6o3UUPDs51JDDWuk6IEMKUfS0aqAdNb5oeQV85WvBYiVuOEItsCAlSRPLtpqDmug30GRRZTeMQHSPUAjKqO4JmOtj0OhE038ReOtGBGTyMELPqLy1qtp+50aMSTxmqbHcTmQz3dANqbnkmLnMZYqA/nYJe1Y0ND+ss8oOGL4tKNvXnstAkwdqBsoFarOy4YMPLRUq4Y7L4vjhyp82bvNgJFJiF2opqq/690P3oE433CLWXjd2Fb4nHQ+/UXMmi/A4G9QpHLMbmMAiJBqUk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(186003)(508600001)(2616005)(7416002)(6916009)(956004)(66476007)(66946007)(66556008)(36756003)(86362001)(53546011)(6486002)(31696002)(83380400001)(38100700002)(5660300002)(4326008)(2906002)(316002)(16576012)(8936002)(8676002)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cHBaUnFoSmxIV3IwVWNiWjBDUWR3Vm5aREJPTzJNM3dtNnVkNmdBSVNaV0VI?=
 =?utf-8?B?WFBHNFgxa3ZmOGdxMi9pRmVWemFuK3JyaThHVnR0dUU0MGoyTlRtTm5saVBG?=
 =?utf-8?B?cG5pVUhDRmd2c0ZHc3pUKzZVLy9JejEralE4c3VPanBTZWorOEZZbEdIUkN1?=
 =?utf-8?B?QXNBK0tSaGpMeTlvUmp2bWRRRExVNnlLTXdURWFaTzhlTjBlb28yY0JaMmhl?=
 =?utf-8?B?R05Ldmlxb0cxMFlTK012SkVlR3ppNEw2VmNWWU5xMVJuazUzZTY1NnNLSk0r?=
 =?utf-8?B?Mm1QeXBPMmNPdWkzeTkvTGpMamZ1WkJkb0xSK3BkWDhSTVVRaG5IdXR6QU5h?=
 =?utf-8?B?aE5LcUxhRnIyOFp4Wk1sSjQybngrby92V1lUVWp4RjQ1cG5FZlJpcE9LSDJ6?=
 =?utf-8?B?TU1TYllONXpSRUpyR0grckhSeWx1UDRTeEpiZ1NVVDNaRnVTZmpteGdGaTFI?=
 =?utf-8?B?Q25LajhYbTdpUmQ1VmhoV0pwSjF1MzBBZTFubGltcE9LaDdKOFljMTNscHVw?=
 =?utf-8?B?bDc0aE43NHU3bzh1cWhjd3B0bVhBT2FobjB2TEJaQjduSHlhb3RWYmdtL1dT?=
 =?utf-8?B?VXM4RTI3cFFvK2xaR0RDL0lFZHd6VzVsT0tZd2Y5Y1RoVmQ3OHNzaE4yTnU1?=
 =?utf-8?B?d0dhb2k1UHR4N0RpOHhpTDd4cS9GdHhab1REVEpaL0ZRQkFRdGlrSTY4TnRu?=
 =?utf-8?B?dHdNdWE1ejFLUytKdUZyRHUvY1lRVmRpN2VvOSt0VFZaUHBIaWZVWDJWdXMv?=
 =?utf-8?B?ei9nQWZuM0wwdFZkaFUyR2hjSEJMM3FGNXl2WnFjMWxmSkFxdWxBRC8ySDdO?=
 =?utf-8?B?NHRETi9kUXJlSnFuRkkzT3k1RHU1bVdTdXorNlQ0eEhOQmdYNnR2SDc3YnBR?=
 =?utf-8?B?V3NTNEhjR3c5VDBZdVJ4Ly9YR1N1Ti9udzhVNCtzNmd2WnFFMWVWaksvaWlH?=
 =?utf-8?B?V1lxVjdOb3NGT3Fma3NLZCtmTjh2UjN6NTRZR2RhbG43dm1iRWFTUWdod2dk?=
 =?utf-8?B?bDBHUlN5MGxlamVuK3NZK3pLWVRNMDA1Q3VoQXFKa1J3Z0ZaWDhmWVhVTElu?=
 =?utf-8?B?RXd2cXlFMCtxcEp3RUdpUWVZdC9GcmFGdHlPdDdVeWp2WlJXZWFla0ViQ2kr?=
 =?utf-8?B?VDZsQ1Q2OTZhWXpWSU5NS3hVK2N6cTJUd1JZaWEydlQwVVFwcVl5SWFmY1BB?=
 =?utf-8?B?NnhIWHpmMCtHVEpMTWlJdnlXN0pxTG5SdXNQTEJibHlFL1NEdHVaYk1zNjJj?=
 =?utf-8?B?TlNQdVdibGN2NWVHYmlHUnRiTXgzdldZdHBzRmJHcGk1c0daSVMwcXpVcG92?=
 =?utf-8?B?UzRnZmhNU3R1SmZTRWROTHdhdHE3anNPNFhnR0M3ZGdQT2lYR3AzdFJucExx?=
 =?utf-8?B?ZzFxM2UvVTQxVGIrMTVDMDRwL0lvMHJ4Yk8wZEhHYnlldm9mVm01eXlrTkdK?=
 =?utf-8?B?bEt3STVodHMyUmw2ZXl0Q2g5WkR4WDdIOUZTRnZ0VmtuY3dmcmRoS3I2RWhH?=
 =?utf-8?B?c1dSRmtDNmJBdE1YeWlrS2ZadDVJb2M5ZTk2S1dkRnY5S3I4Q0NEaE9VS0d2?=
 =?utf-8?B?d29pZlJYcHE5dEd6L0l6WERqeXNMbk1LN21uOWRiNis4TGx5aTQyVHdyemg3?=
 =?utf-8?B?Z2pwMFMveWovd2FlTjdvcmdHUTVLK1UvTlBabFMvcjBxczZkdk1qcEg2UENQ?=
 =?utf-8?B?eFMzcTQwelM0cmxscS9hM0VSUE52cnMwK2xRNjhvYWYvYVc1R2hNeDJab0dj?=
 =?utf-8?B?UUlHdVcvN1hWUjgyQkZJbnE4Qkt2cjV1L0VCY3dMWDVHUkhjNXpTQ2o5RGpw?=
 =?utf-8?B?dW5lYkVQWmVmSHZwWkY4dmRzdi9vMjA0OUpzb1p0RHBrZy9ab2JMczNSemVI?=
 =?utf-8?B?ZCs0Vi9ZQjg0bXlCWWtlSHZXeGlqa1IzdkZVWks4VzJOcDNNQnlHQ1QwazJP?=
 =?utf-8?B?N0JOdEVZUHVpSkM1Y1l3Q2lBZTBEMnZrZEJraThRZ3ZUMUFDUmo5RXZGVVF3?=
 =?utf-8?B?VHF0WERWWjBKNVlSUkd5MmRUYjBSMS9NaFlsdk51NVY2bHlKTnB0a0N1THBi?=
 =?utf-8?B?L3c3Y2ZTT2oxbG0zOWhTSUlsZTFOOE9URkgvdkxWUDNMQVhrRXQrRnpQeHlj?=
 =?utf-8?B?TXRwZ3IyRFJIVFVuTm1KVHF5WmlBL3Qxby9YcmlpT0hacCtwZ0tBZ2NXNHh6?=
 =?utf-8?Q?7dRpdFBl4zaHAo6UHDBtygU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fa9d9591-acf8-47ae-9de4-08d9ab645a76
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 13:56:15.4417
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 77qhZdFSvRP7Iau2QlTimGIfe8WMAOub7LKpaLHAI+OI7UfdR+d9Z/8B9DIhIBZ3dGJ+JWnwqfEWY6w5nnpkqw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2333

On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Hi, all!
> 
> This patch series is focusing on vPCI and adds support for non-identity
> PCI BAR mappings which is required while passing through a PCI device to
> a guest. The highlights are:
> 
> - Add relevant vpci register handlers when assigning PCI device to a domain
>   and remove those when de-assigning. This allows having different
>   handlers for different domains, e.g. hwdom and other guests.
> 
> - Emulate guest BAR register values based on physical BAR values.
>   This allows creating a guest view of the registers and emulates
>   size and properties probe as it is done during PCI device enumeration by
>   the guest.
> 
> - Instead of handling a single range set, that contains all the memory
>   regions of all the BARs and ROM, have them per BAR.
> 
> - Take into account guest's BAR view and program its p2m accordingly:
>   gfn is guest's view of the BAR and mfn is the physical BAR value as set
>   up by the host bridge in the hardware domain.
>   This way hardware doamin sees physical BAR values and guest sees
>   emulated ones.
> 
> The series also adds support for virtual PCI bus topology for guests:
>  - We emulate a single host bridge for the guest, so segment is always 0.
>  - The implementation is limited to 32 devices which are allowed on
>    a single PCI bus.
>  - The virtual bus number is set to 0, so virtual devices are seen
>    as embedded endpoints behind the root complex.
> 
> The series was also tested on:
>  - x86 PVH Dom0 and doesn't break it.
>  - x86 HVM with PCI passthrough to DomU and doesn't break it.
> 
> Thank you,
> Oleksandr
> 
> Oleksandr Andrushchenko (11):
>   vpci: fix function attributes for vpci_process_pending
>   vpci: cancel pending map/unmap on vpci removal
>   vpci: make vpci registers removal a dedicated function
>   vpci: add hooks for PCI device assign/de-assign
>   vpci/header: implement guest BAR register handlers
>   vpci/header: handle p2m range sets per BAR
>   vpci/header: program p2m with guest BAR view
>   vpci/header: emulate PCI_COMMAND register for guests
>   vpci/header: reset the command register when adding devices
>   vpci: add initial support for virtual PCI bus topology
>   xen/arm: translate virtual PCI bus topology for guests

If I'm not mistaken by the end of this series a guest can access a
device handed to it. I couldn't find anything dealing with the
uses of vpci_{read,write}_hw() and vpci_hw_{read,write}*() to cover
config registers not covered by registered handlers. IMO this should
happen before patch 5: Before any handlers get registered the view a
guest would have would be all ones no matter which register it
accesses. Handler registration would then "punch holes" into this
"curtain", as opposed to Dom0, where handler registration hides
previously visible raw hardware registers.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 13:58:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 13:58:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227962.394418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4Ot-0002YW-FO; Fri, 19 Nov 2021 13:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227962.394418; Fri, 19 Nov 2021 13:57:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4Ot-0002YP-CB; Fri, 19 Nov 2021 13:57:59 +0000
Received: by outflank-mailman (input) for mailman id 227962;
 Fri, 19 Nov 2021 13:57:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo4Or-0002Y0-Cr
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 13:57:57 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b29768a2-4940-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 14:57:56 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2055.outbound.protection.outlook.com [104.47.6.55]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-35-RvNbStJlMZW1NYQ6D8rszw-1; Fri, 19 Nov 2021 14:57:55 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4191.eurprd04.prod.outlook.com (2603:10a6:803:45::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 13:57:53 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 13:57:53 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0064.eurprd04.prod.outlook.com (2603:10a6:20b:313::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.22 via Frontend Transport; Fri, 19 Nov 2021 13:57:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b29768a2-4940-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637330276;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=mIelfDHgW9Bl6uL3rurtp6p0J7AcKWD1v7olwfE/yn8=;
	b=AwtiPC8iHop+GOo2GdWa++aQNGA1TL8rtIMbSAEA8Eh+Eu2g6VVg5qmWyubtK4tTuxS4YJ
	5enyc/ulqKK1JldU7cqqJv/rZoQ6MwDtNKq+FyJWyYzZXSNP15bnajfCwURmgiYV+Qglcy
	WMSe5FVXObmxawDoue5RL1mJVjm2YJ0=
X-MC-Unique: RvNbStJlMZW1NYQ6D8rszw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ldtn4LlYmQdOdw4gkKp2953yfsfJsyRtfyhqmOq80LsCWzkLGJYtK4sefjIfCM4Xfu3fun0e9NyNY8r3lBtMIcpfYnmeoexi24sD7ABQDvvqUWKaNaFD6WEkksiv2dOFDKb5LmPgEv/VQYvsegif1AecwBJj1zwgZASRnyZuTBipyWojj7brSo4rNvZlnySr9MHnZX4QPCvY6EpHSGzpNwKXTF33cJayGHUhdC3ycdOmUpKjeJ64oYLef90kmqjAMC2lVMLOnheHy1v7ZFAX2/J98Fgw80H3YcpoJv1hA4fQr9phNytEmNGIUy8ZN7C3q0tMuFVckYQMP+odfsdPkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mIelfDHgW9Bl6uL3rurtp6p0J7AcKWD1v7olwfE/yn8=;
 b=KRrYRCPLMMdtRvxYpRwQXg23ADJJZ/CblxfA2a0wHPuL/ICkvEqwXrBX0YmkXJDK70C8wPEYVEYGld3INkD/LdoYyRxl56LMIFqQwuooaS3zPNloXOxTSmiIklWRN/7CPp9FPj0cUQM8NpNKdAcyIP7S8GW50CDXcBKgqmVFajmBSSPjDrItfW28pWb8Xzv6IAzS3Hmx7Xjvsul/fRjs5tN5yHZa7+6TlwlYFvMIiBq1hM1Q9CjJ5Zdoi+ZSzS+3hWpOzG20ERH9zvcBjKgckB2lC6UE5wcWOIBaheGdAzVvCI4cTx2hg6DFV+B2g5EVBwABnk7Y76GGa2ao+leAYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fb72cae2-1b7e-8d52-48d0-2967c68325ea@suse.com>
Date: Fri, 19 Nov 2021 14:57:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <3a7f4c3a-7162-8cd3-0879-2f87572f0225@suse.com>
 <6b2d4825-3b00-4034-2804-a44059de15a1@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <6b2d4825-3b00-4034-2804-a44059de15a1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0064.eurprd04.prod.outlook.com
 (2603:10a6:20b:313::9) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ca5909c4-4bb2-461b-a62d-08d9ab649509
X-MS-TrafficTypeDiagnostic: VI1PR04MB4191:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB41911B1B939FCD1580E65D20B39C9@VI1PR04MB4191.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	EoqIalisuFCLYpru3ZCrea7Tw1L865EJMk+4fymdJoKsaXp26OQYEfQQhcWjXLZlmN4M8/xR2tCqW/4nSaXIrSVe/7+9wqzxj0AaMOr5+9kwrd/zA3uiwlwm4C4W0uTC/VG6cAm1TksRde59Jf0dqzc3kTdUuBilmNvbN1hOiAZ7FJ/yL22Tt1WSlfqHhZJSPhMiwBpfvgQuGi+xN0oJSZr5o03xiSvIX+xoAkt/TCNlIBQxmlwb41+sGQtnxzsLUGlI7RTwIsRvhN4wUrhNJG1CJO0hui24Mwu0w5fDXl/s6VCb3LYS2eJDqY4YgGKipaCHYTGtPJTHu1Bg1GZDn2sGC/CcSF9H6dTWWHfgOFf7nIecPpE7iEu9X+2k7gCxkKdPpLAL9pZ63Fz3/vf/OZY5RIEDkc9geZW/v174X2/xryWLOPNZ3W2Vxe0GYXxD6I9blnhb1CBwAt1qi6WTPH/PZZlNBMdGW/1Rwj8clKwxBFgL31xTBtreQ8nGwAxtrJxjkggEHnZq+hOFOHfwmDvMIJQqP9fzQ7STStD0EUmfQ6Q/F0JJND3OeaKOOW5ic0vOg2a9Wiptru4aFgkTmT/8zn51Xb223UhXE2N8KgXlhh/5ibEym2OgQz6pCKHMzgYeQ7Z4rcyZFVSEb/tghXYXOZOGK8lNYIw2T/VGPlpqmFuHLViYier5c0klM4oqeZmYfBHt462+YEK0xUnYAA/BMSSgT0pKUIICLLvnV+Y=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(83380400001)(186003)(66946007)(2906002)(66476007)(31696002)(86362001)(7416002)(66556008)(8936002)(16576012)(38100700002)(53546011)(316002)(54906003)(110136005)(5660300002)(36756003)(31686004)(508600001)(26005)(8676002)(956004)(4326008)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VC9rZEZvQUo4RUxHVCtaOUl6YmVNUDUyV01vWFdkQk5vb2I1dXp6L3p5eHdC?=
 =?utf-8?B?Y0I4dVR6YTBUZGliWTBvZlBzb2pnaGJJcXJGV2owdjl3SUVpUDA1b1A5bWRT?=
 =?utf-8?B?QWxvN3I5dHF4a2ZvMXgvTW5kaEN5T1lmelpBd29CZUozeE94VGxJbmtzWXkx?=
 =?utf-8?B?MUlGMzJjamovNko4RjJBZWlFc1luRlJDbU42cHI3ajFxbHNRbm9rbFpkUFdh?=
 =?utf-8?B?Qi8xdDF1MFJOTWg2Tkc5TDJYYXVSTy9GYTh2SjN2ajVMODZLcUZWUTdaWEJV?=
 =?utf-8?B?T0RQaDdYNUVBc1FoSURNWXEvUVh4RWFQUW1QZFl5bnBieEJMaVRoUzNoR21K?=
 =?utf-8?B?WUhKakVGeGUxaXQ5QTJzVGxRL3g3alEzM2M3Vnd5ZU0yV3ZMMThTU1pVa0dF?=
 =?utf-8?B?MWI3Y3Z1YTFxcHEzTEJvbm5MWHN2b0ZUQWFRbFN0Tld1WGRsVmtGY2FyNVJa?=
 =?utf-8?B?N3QwT3pxZVpjRHNLczI3eFVkTDFDQ2ZiV0pTQ01QUi91dkY5bzBvT3dUNko3?=
 =?utf-8?B?c3RFMklzOTJyWTJzRkVFYjdDV082QTVFQ3dMUW4xcDBpSnlzcnhzVW02VHBi?=
 =?utf-8?B?cUR6UkpZN1pwVkpCaGR1NEhoSlk3T2NRTExhcTFtQkZwQTZNb3lHN1VkOW5o?=
 =?utf-8?B?SzVGQXJPUGxQajJ6NmhMajB6blltWlFqOG1oSXFwTm1tT1Bydm11bkZxNkl2?=
 =?utf-8?B?cGt5WmNBZ3MrY0lEbkhqMXBsVGNqUWt1cnRTdktzUjEvQnJ2bWpHR2piVHRk?=
 =?utf-8?B?NnROY21jNTE3M3ZhZjAxcnhkaFMzS1BjWEwrc3pFbjMvNHVaU1RjbVYzdjIr?=
 =?utf-8?B?clZ2RWNJb25KQWcwR0d2VWFBVmtHWkJBcUkxQmxDeTh4SWpCejVoM0Qxcmt3?=
 =?utf-8?B?bGNiYWl6a3RMeVkxZTlFb3ozY1NpTHNSdnFjUFpENjR6Umx5SUJXRHRlV01Y?=
 =?utf-8?B?d043U1lIcURKUG9WZW5rNC9ud2FrbFo5UzVBdERWUzQ4YnVOdjZhSTVyQUxZ?=
 =?utf-8?B?UnJzeW9hSDd2K2tmYXYzaXdyd2RVZE5Hd3VTaDlTankrYVZNc0FUV2t3c0Zz?=
 =?utf-8?B?MFQ4TW8yWXNXVWoxYU9JUGk2cHN1WENOaTVDWkt3UjE3RzBzUkxTeGhKOURn?=
 =?utf-8?B?SjJjMCs2Vm1JVC9Ea2pWek9GMHhyQXZiWUxOQTdyaXJrM1pJRzc2THlLSy9T?=
 =?utf-8?B?MCtuRTh4ZVdxdzJncXlubTZiZUtKbE9QRjZyY3hhOGJHU0tLam5xVE5NaE5r?=
 =?utf-8?B?RHFsWGFaRXRrMHU4VmVLcXlFc2s2TTVJUU15N09DNzJTb09uNHNQWnJjNUZh?=
 =?utf-8?B?dGhtTFFXNTZLcWh2NXJmbkNHV3YzRk9zWFJsMnp2b0VhMnU0SlVNc3VwaGZK?=
 =?utf-8?B?ZkV4bHIzNk9WT1FaMi9idkkzOXZwUk9tQ2Fadmd2cGpUdXYrM2FlOGRyaGc0?=
 =?utf-8?B?ZGEyanpVdTFabGhjc05JR3ovQ3VrN2Vqd2ZhUEpoaDRwcXRFc2RNL2RZb3Nx?=
 =?utf-8?B?YWFsTVJ5Z01jUjdLMHNZMk9LNGFRRWFSYnA1UHpMT0dtMy9udWI1aVQxNDRG?=
 =?utf-8?B?UUJzb3BnRW1udU84K2Z3MUo3UDlOVmVmN2NxVjlmRFRwVnhNa28xZ0lNeHlu?=
 =?utf-8?B?N1phQVdGODd4MTVmZFhPVERzOTBLVWZYT0ovZXVySFpsQXgyY0NDOS9hby9H?=
 =?utf-8?B?NmlINlJLY1FnTXJEN3J2aUgzNCtHVXpXeWl0WVhxLzNrVHZtZkNJdFRXb292?=
 =?utf-8?B?UzR1MG5BL2IxY2Q0Y1hkVUxXd0FhRmVGTDRYL2xUUW5WcmhpMDA2YVpHRlo5?=
 =?utf-8?B?OWszRVMwTDluQzFpZ0lKNTBXbXJZVFRhMHJMTWVRUGh3OFJGcE5Yc21PZWg1?=
 =?utf-8?B?T1RkekhqcWQ5Y0hUaVhRUFhYK0ZUTTVaaEM0emsvdnZlUis3SldOQ2IxVlJs?=
 =?utf-8?B?ZjluOEp2MmVGOS81TURxMHZwTW1UVGpabXZGS1BDeEw5aG1GQng4TThTRTJB?=
 =?utf-8?B?THkvUy9wcWh4MHJVWlNMSDd2TENYWlErd3JtK045S2VGeWwwL1FGVXYvSEtw?=
 =?utf-8?B?L05vb21KRzVFd3FvQmhqSWwrOUJCVUgrVTdYVnJjT3VVQklXZ204NFBXTFJu?=
 =?utf-8?B?OFVFMThhYnA4NGR6OEZBeU03bWtIME9IZEgvRndEZXFDVGJqcnA1dnVhVitN?=
 =?utf-8?Q?x4wnHu+LzQZ2iGC44YTr6+0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ca5909c4-4bb2-461b-a62d-08d9ab649509
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 13:57:53.6931
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gy6HEoMlwM41s5dvVJvj2CqJUB8s/T6zJ/GiUQel39LZbjSms0lM/+i1+ug//S1jQIYSEKMc2o6SHQFwJDs3ew==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4191

On 19.11.2021 14:41, Oleksandr Andrushchenko wrote:
> 
> 
> On 19.11.21 15:16, Jan Beulich wrote:
>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>> @@ -95,10 +102,25 @@ int vpci_add_handlers(struct pci_dev *pdev)
>>>       INIT_LIST_HEAD(&pdev->vpci->handlers);
>>>       spin_lock_init(&pdev->vpci->lock);
>>>   
>>> +    header = &pdev->vpci->header;
>>> +    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>>> +    {
>>> +        struct vpci_bar *bar = &header->bars[i];
>>> +
>>> +        bar->mem = rangeset_new(NULL, NULL, 0);
>> I don't recall why an anonymous range set was chosen back at the time
>> when vPCI was first implemented, but I think this needs to be changed
>> now that DomU-s get supported. Whether you do so right here or in a
>> prereq patch is secondary to me. It may be desirable to exclude them
>> from rangeset_domain_printk() (which would likely require a new
>> RANGESETF_* flag), but I think such resources should be associated
>> with their domains.
> What would be the proper name for such a range set then?
> "vpci_bar"?

E.g. bb:dd.f:BARn

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:01:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:01:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227966.394428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4Ry-0003zp-U6; Fri, 19 Nov 2021 14:01:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227966.394428; Fri, 19 Nov 2021 14:01:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4Ry-0003zi-R7; Fri, 19 Nov 2021 14:01:10 +0000
Received: by outflank-mailman (input) for mailman id 227966;
 Fri, 19 Nov 2021 14:01:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=v60N=QG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mo4Rx-0003zc-3J
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:01:09 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24b5f5b4-4941-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 15:01:08 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2054.outbound.protection.outlook.com [104.47.6.54]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-25-QRwT4SPKMOK3QMf52QLoKg-1; Fri, 19 Nov 2021 15:01:06 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4191.eurprd04.prod.outlook.com (2603:10a6:803:45::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 14:01:06 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 14:01:06 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0024.eurprd04.prod.outlook.com (2603:10a6:20b:310::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Fri, 19 Nov 2021 14:01:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24b5f5b4-4941-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637330467;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ZIa1giVcIsvklToGbz5V44TUB6pCg01+BpmrwmOPOoU=;
	b=hpkreI3ZtXbkphTDolqD4bKWb9ZJgPprUaWHjwbcpWKgZXCC00c7d1HiWy7SaGs4Xyzlj8
	rH/QhQZ5z9g6/ZtHHFwyQdxvEA/EYzptFTVYhKUK8K1ZroV9U+H7bIykU+eOexsJYpejdp
	90iDBYKFxgd/uyjtHrRboiHdnN3TkBc=
X-MC-Unique: QRwT4SPKMOK3QMf52QLoKg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MfwQPKPoyw8Fos+TUdoJ2nNNmXTyLgxhU5EEkPF6o0Kj1/+NIKHueGzogdnLFXuof6GOHLpFjIuOQCFCBPcjgH761tDRZrXS36RHTDcxA59+IroHW58y+a/3j4voAWNwPY9gnwPEbtQwpPpq67v+ZWgio1ODbX+NE391VSv2kcAE7b00DPh3Iq+ZkamdQjiASi2bOa6VIhNUyZmxk6tnd0aCxeE+Io1fbMGHuO/+gujAbAmWZgXtNOMCCRE+ve36NUyFG5mSYo9kRiX4v+8yysvSd+EIELLdVBnNTbbdyyDbDR3Yr+R8/TApsOB5YfSqtbIFd13tyQGX8Dwp88JD0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZIa1giVcIsvklToGbz5V44TUB6pCg01+BpmrwmOPOoU=;
 b=HtJAkvLOhsSTndLMjDApgx/AjvExYwFnxVzB1+klXR5gj79gx5MuTs3v6BQws9XjwXKIDkF/IjrPydqdW7yhYlOtu3zRJGCBRPYDObxlCvKEu+DckcdK2xqpGOD8VOh0j1CW3PWppO8W2qEe6/hq6DrQX9bvOv3Di805DYCe+gVeytWvWM4vKX3g7kTsPlS0XPexw9PBlW5f0nLr7rsXMVN7MFXVGuSTt3UDWqweussUyM/0GaARfZuZ2oaPB3T9+SMhCCv56+nI9LxMjgr7w/LMfgV24PNIDZjXCvQqsJ3UJnJP8U783MEymBUQDayj0mW2W+RNWtldoVQYcnbojw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b4be209f-c9e8-9e5b-a4ee-70d1a4f5c442@suse.com>
Date: Fri, 19 Nov 2021 15:01:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [PATCH] x86/dom0: Fix command line parsing issues with
 dom0_nodes=
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Jane Malalane <jane.malalane@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119134416.1110-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211119134416.1110-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0024.eurprd04.prod.outlook.com
 (2603:10a6:20b:310::29) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1cbddf40-d066-4d09-7f76-08d9ab6507b1
X-MS-TrafficTypeDiagnostic: VI1PR04MB4191:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB419179AEA48B68DF078866A5B39C9@VI1PR04MB4191.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1148;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Z4Q/k5sEEiWdM4lnS0oJ2aY3GvuL/jDhL+GPu7bLjstydGNTCMmyzM+lTUm1i85lLGZCH8uDgYGRlCR7VYzP4e6z13uVgl+4Cof1TN/XUUfV0knVGtSTstHZE5r9KZl3S1tbK5CLnG9Bshinqbkj6HL/Lmea3l37ExS4s/kBsWusMR3JqYHNCplpEtMCdjlOO3yRFmI/nxPCS/U+vdZ+/iETPRZIN4c9gDstiC3vUvusSD4BUDoReuu5LjBRk/bZUDSjGbWBCuXAD6L3WpOqxRo0fpPeTmbXERjf9QnHC7Etn29YAN993WzxDUFj/mno+YC9+NlQNdeIRKZxnSJcUbDO6jLiyEKBGXTnouy8U2gZMhm3CpY+UaMH2WAfDD+9/KdXIHXIeS5Y31wqz6lfVfbKGWrJdcefHxNsASdtbiebw5klQD+fwEtkBD7rODpvW6dbzpVtjuC3k58QCjckvz9upxbsRptdy1QBvrohXrNsSrWpFyoM05Zwvig77AKKIzRhONH2ObjzY6vxNAscxXw3bDD/nHu6IVwxwMoXYjELftpzCL5PfMUYdQ4Wcbrl4UUZzjjGLMy2B78Eu1dOlWKHKpCDN77BHExIUnGnXZxjWBvpbdP3hndeOIFiAZuSJdNY/Y6Sb4hBEbDZLVSNdg79OluSfiqtq42nUZTKfx3IjndXg1RiHUbq39pyc++mkI2vcJE8blnYDnl0/0tG9dqos5edpTrtvoWZUlPkW9s=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(186003)(66946007)(2906002)(66476007)(31696002)(86362001)(66556008)(8936002)(16576012)(38100700002)(53546011)(316002)(54906003)(5660300002)(36756003)(31686004)(4744005)(508600001)(26005)(8676002)(6916009)(956004)(4326008)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UE13VHZOclYraCtnZ3FEblFLUGp5dEJSdG9ld3h2eUxIL2VmSVpxbjdaZlFz?=
 =?utf-8?B?b0JyWlA1QzM5MTl6R1A2WnkvckFnK0I0ODJPUkxtTXdUdDN4YWFJRmdta2Zo?=
 =?utf-8?B?d3doUE9IeU4xZjJWTFZzb2YrbUhjaEFvN2s5UDZkRjVNYnpoaWljTW9MTmdI?=
 =?utf-8?B?QVBoNEZjTS9QMmJWWkVtTmJmRHFUVnZ1ZXdhc1IvTHpBa3ZjRWpITkdmckQ0?=
 =?utf-8?B?RVFoLzY5cjBCblFOUXhRUkVyMGV3UDk0Q01xVlZsWkxiTUtiME4rZlZHcFhS?=
 =?utf-8?B?Wnp0TjVtRGVMM2JuSG50R3p4OFk1RUNtUW5KT05RcHcvWUdQZDZPNXphWkhT?=
 =?utf-8?B?RmZ0NlhVQlExQlVDQWlrNXc3MzIxOFV2bDcvRE9NYTMzaERNaE03OVdsSmJE?=
 =?utf-8?B?ekppaUZSalIxLzJUeVI3VlpCWkxIeWNoVmhoNDVEbkw4L3lYRWowb29QMFhl?=
 =?utf-8?B?UFZ0TDU2ck9BQ1FnQnUzTjhmcXdQSUdjNkd6dWFGU29Id1ZvY215a1MzMTJX?=
 =?utf-8?B?cmV1L09odjZPekNJcjJrMkhMYTZ0MVlUaGxYc3UzeFlIeFdDRk5XU0xydkhv?=
 =?utf-8?B?TkpNLzI5TW9RMDl1aXc3YlVwcmk4dmxYeGJqTVNEeWc2NDY1aUFrclZCQ1FE?=
 =?utf-8?B?RTJSVmFGdSsyajNoQ1FVdU5FclhzK0l3bWN0c0p5eWRwQVRGdGR1NUg5Y3cr?=
 =?utf-8?B?TGp1RllsMTlIRzFkMjBBRkFtUFVxTnVzU1JQVHhLMzFpanhpa0pjQ2RlTXBL?=
 =?utf-8?B?cmFqMTBmVXVHSjY2eFAyMElqczgwM21PZFJYYU0vNm5nMVRoRFc1OEc1WXgx?=
 =?utf-8?B?emdFazNNY2VGZjRvQmFZa2xhUm1LTDNVV3FKTUZtUzdsVWRjQUJSZy8reUd0?=
 =?utf-8?B?cjJDbWEvb29QcHU4c0g0Vy9VWVJ4dDFpdXF0L2xqS09EUDJQYjVTYkN6SGNw?=
 =?utf-8?B?L2p6QUpKaEIwZ1Jta0lCWmdOWUdDWFJQTk9aMFpOSGpnclJoZEV6SStGcjQ4?=
 =?utf-8?B?R0dHdDlrQm04Nm51cTlJVDNpSmFOUkVpb1hWbnBDd0k0QUhHRmVPdmpvTXZR?=
 =?utf-8?B?akJFU3kzNTJwc0p4NWtmYmp5QXdMWmhrL0JjSW1OL2ZYNTg5TWM0Q0xUbUxT?=
 =?utf-8?B?RlVUbU05YzlscWlneXl1b0Z5Rld5dEFkd2loQXRIakJFamNYVkZLVFh0Vld3?=
 =?utf-8?B?aTZqM0U1Qm9pT2hZREQyd0VFUTRqdFJYV0ZEbENQdmhINnhHbXZQVVJjeVZ0?=
 =?utf-8?B?N3ZZbFhIRGMzQlU2WHBFby9Ma0hvMVdqbGZhTU5lKzdmVWJnRUU4RjByRERK?=
 =?utf-8?B?dVJ4S1phNnNzLzZnYVBoNHdUdmtPZjZicUNsRkJUa2ZMcGkyazY5a0UxT2NS?=
 =?utf-8?B?OW92Qnd2MThPQjdTTm9KQXp2ZVRCL1BEZDJvQmxqUHV6UWE4RnhPWnBacW1h?=
 =?utf-8?B?YWxxdEYycmxKczNTeWNxbld3TDhjaGZOeGpnUjVzeU1adytqUUZIMDlsSnUv?=
 =?utf-8?B?ZmkvNzBuT1JJdSsyUU9sUXJpTnJ0c25WaTF4K2I2UEsvNHRyTVJNWGNMT3NK?=
 =?utf-8?B?SmhtRXdnUjZlU3ovdTRyVHdKNC9CMFFOMzBJMkU0UjRCL2N4QlI3SlRDNXo3?=
 =?utf-8?B?bzVJL2srL1piZmh6cDVNaXB1dUZsYjFITDY2Q05UWkJqZm54U1g5aXMwNEwz?=
 =?utf-8?B?QUkxY0hmc2laZjhGRTZFNHY5d0ZiUkpvd0lWdlZIeC91UjgyakJjYUQ0RnZy?=
 =?utf-8?B?cWpKSThlNVhPWEFLbzQ3czlUSVNjTUZTdXpzbFd5WVgyZGc2V1dWSFpjNGQr?=
 =?utf-8?B?aU5Nc0xvSDlVL3l3K2g0b0JzV2RMbmc4dFdkSHAweFdsc1VqV245cUtvNHBj?=
 =?utf-8?B?VUd6bzNzSHVTaFI5a0pOMzhtU09DVE9SZWJjOW5ETGJOcDF0eVJvKy9qcldY?=
 =?utf-8?B?YmVNdytLbXJhditway9keFE3OFRzdFBLMjhiZ3Q1RlBOb1lBdVpsS1lETnd5?=
 =?utf-8?B?MGFBRzRMYis5Z0J6K1UwMitWVlJ6N29UQnJod0Y3aWdGZHkvd2pjK0FkSWNM?=
 =?utf-8?B?Y3dKMTc3dVFZOGNTU1Jzb0x3RjBjZVRkZi8xMm9BaXJJWWQ0NC9Rd1c1aitM?=
 =?utf-8?B?WlhLaEpNWEY4eHdPcHBadisyOTBXQUdQdFFHWE90ZXUwb1VBV1hYTlM2cDNm?=
 =?utf-8?Q?4fuzmQcOwDdy/8OX8q8Hi/E=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1cbddf40-d066-4d09-7f76-08d9ab6507b1
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 14:01:06.1014
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uL5Cv4No8UrDGbaRcGgn9+QHD4qU21Qmcz/IpHiIZYF6IDDUcearw0bj0iYxmcMCjWuw2EwsKM+lDFfd2C1twA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4191

On 19.11.2021 14:44, Andrew Cooper wrote:
> This is a simple comma separated list, so use the normal form.
> 
>  * Don't cease processing subsequent elements on an error
>  * Do report -EINVAL for things like `dom0_nodes=4foo`
>  * Don't opencode the cmdline_strcmp() helper
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

I guess you will want this backported?

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:06:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:06:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227973.394440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4X9-0004hm-Nx; Fri, 19 Nov 2021 14:06:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227973.394440; Fri, 19 Nov 2021 14:06:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4X9-0004hf-Jr; Fri, 19 Nov 2021 14:06:31 +0000
Received: by outflank-mailman (input) for mailman id 227973;
 Fri, 19 Nov 2021 14:06:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Hp3=QG=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mo4X8-0004hP-UH
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:06:30 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e395c821-4941-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 15:06:29 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:41406)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mo4X5-000qT7-2s (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 19 Nov 2021 14:06:27 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 9CCCC1FD9D;
 Fri, 19 Nov 2021 14:06:27 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e395c821-4941-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <66644716-dafa-f7de-c5b4-325ec5a49989@srcf.net>
Date: Fri, 19 Nov 2021 14:06:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH] x86/dom0: Fix command line parsing issues with
 dom0_nodes=
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Jane Malalane <jane.malalane@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119134416.1110-1-andrew.cooper3@citrix.com>
 <b4be209f-c9e8-9e5b-a4ee-70d1a4f5c442@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <b4be209f-c9e8-9e5b-a4ee-70d1a4f5c442@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19/11/2021 14:01, Jan Beulich wrote:
> On 19.11.2021 14:44, Andrew Cooper wrote:
>> This is a simple comma separated list, so use the normal form.
>>
>>  * Don't cease processing subsequent elements on an error
>>  * Do report -EINVAL for things like `dom0_nodes=4foo`
>>  * Don't opencode the cmdline_strcmp() helper
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>
> I guess you will want this backported?

In due course, probably.

For now, Jane is investigating why dom0_nodes=0 isn't working, and this
was a tiny bit I spotted on the side and just decided to fix.

I'm fairly confident there will be more bugfixes coming.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:07:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:07:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227977.394451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4Xn-0005H4-23; Fri, 19 Nov 2021 14:07:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227977.394451; Fri, 19 Nov 2021 14:07:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4Xm-0005Gx-UC; Fri, 19 Nov 2021 14:07:10 +0000
Received: by outflank-mailman (input) for mailman id 227977;
 Fri, 19 Nov 2021 14:07:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo4Xl-0005Dm-Ce
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:07:09 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa80b219-4941-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 15:07:08 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJDDsnQ031037;
 Fri, 19 Nov 2021 14:07:05 GMT
Received: from eur01-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2055.outbound.protection.outlook.com [104.47.1.55])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cebkv8eqb-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 14:07:05 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6068.eurprd03.prod.outlook.com (2603:10a6:208:166::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 14:06:43 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 14:06:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa80b219-4941-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=G7Ej0Iu0xrMn/KKNV+G435yaoB65zqxgRBxPSupIoNPRrgcjcLtOl7a1UgITPSy5BQTKdWBKwif87FsMIpgwPBtkWSunehjWh2kIYA4I+trFOWK3waUtItD+7AoZv4k25GHewV8T9T0uvz2u0DKezCuYBnFlkSSiB8C9qLWA41XovueVMENTlg2L6MqoIoTRz1bn8jePFK15RGx3uybdFwXdhXwCMW7b0qp8DQhvZWIu7HxsMTB4p645HgGd67ON+7t9h7GSJD3I84ETXq51UF//GO7/kUQf7ETdrpmqki89Jp0L8MNRWrfqYDDqxz7AQO3iY+jv60fK33GmR/63MA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lqIqsv1hEdIi/oXm2Y6f/3oyFSbARIkx5SOzI53L21U=;
 b=KM/LtRkVzx6XJGdflfGcQoc57lmIrgOEJRyDt5kv8S6DnJ3+uoYeGR4D9SabBNPS//8CAvorw6tgjSUqQdyiu91p0fcJbBSQjNAxbkVLk7iF33g6Jbehwhb0z2doBEFY7iYALrIQ16NW9+0WCwnsVr5OazESJiEDqZta0duLr8hrOEldrBh/O3xjPXpnqb0LXCF0GYFMaU/ZjXiYJZ8ZbGun3rClgoQ5yP9hf/+tANfWfwvVXpCaDE8TQsrnCZaZXDZ+hLMuEW9HSl0lLuFBhKs7TLcRFXXEtkr+icsOtFqXe0TrE7mXx0qmUswLe6VgWmn+aSPBAVaSZKfAncdvMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lqIqsv1hEdIi/oXm2Y6f/3oyFSbARIkx5SOzI53L21U=;
 b=Hdty/iJkLoVB/hLwFZeGDwALo14SJy8CD1oyk90A2/NyxvTSTA0NL07doxUgPUSS/kYCSoQ/3PczqPZ0+sNXzgj3qcqHjwW/XnX7KDweSWSFEwJDBCI7yRbQiWxa+c6mPNU9netF3FxS8IA5c3b4HQDdbXqqaRqPAFqoQv8A2h3SzwmCmi8pVMS1JQ/DuM6w/mJaBdoyF1WpRAUqama86E1coZKeeSWdrBvnYkeKwp1JhJgzf8X5+17pdZ8K9fQ1YWz8bhdp5V2Lw/W1R/M9e79bRRKRYimh7MjFy1wftzmJOPJ5ma1kRChq4ol4WAxZ9jVlwghoxKocvS3J0J7wJQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Thread-Topic: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Thread-Index: AQHX0hJHqVSXqEokpUi6WhDjT3q/RqwK9kcAgAAC7wA=
Date: Fri, 19 Nov 2021 14:06:43 +0000
Message-ID: <41803c92-2b41-76ea-7352-4c433e9d9766@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
In-Reply-To: <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 82abe51b-2df5-4552-aef4-08d9ab65d116
x-ms-traffictypediagnostic: AM0PR03MB6068:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB606864E7262911D64B56CA0EE79C9@AM0PR03MB6068.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 DFjoM6oqPzZRjZlgtwpaaa0xwUrZ3xuAL7fhghNZNf3HaG4qm62zuSa5ZCMTlrrCD40mrzpF+5YH3P2nATJiknwhbRHq01A35zAgQZfKszHQ26Z60WODku9UTVQYURI30uvOqb5SHZcFIkailW9RVoBW/jZUYwf42LQ/08lldWZOTMlf0/rG4nodQBMW/ahl9mKhQfeZGYTojxvbTZuJ7Qys5dpYHs7V160vaTSvH4q6G66j2XecO432wJRDTdRtCCDlqAN4y+vldzZuo3D3rZv+we86qDsonvBKQLXlhu670CdonwJBnxBrPelYtH2f5IW1RosZ0YW8oOmZjllecAELPsBOv5pO+/NWmGg7f5RFYPesy71uOO6sFNLfkiEUbwYPHdwKsOfCMQQYW9Lw8neVczoCT+/4Tkn/MLurIdI7TorXDtoqVOwFCCcyNp8BJ4MhZnRPt/aR6UHeT2eN2JfEANaTdXunp0ELkGMsIRslXoX7Dztkmgb/+sbspHDSDyXy0nZ9aQFQJLiOgTUjipoYxuWuAf3/XxCbNKIM/exyefRK14qh/cebV/vWLNDc6Gf1evBKlffzi8bfH3iMfXj7CQIytC853usAyhByI+JiIBemkzd/vuqVudfls1bhMcS2feYynB6ds3FxxF4jLvAuNDTyHR2OYXcEzrSDAQNjAg03H55D6JkSgtveaFxO6PTlQE/R2TYFx26OT0ELb6FAfhPuEvkR+xnOAri/+m15zEjtBJQh1bPTmjhyG0zh
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(91956017)(83380400001)(8936002)(86362001)(36756003)(66946007)(31686004)(8676002)(66556008)(66446008)(4326008)(71200400001)(316002)(64756008)(38070700005)(53546011)(76116006)(2906002)(6506007)(66476007)(2616005)(107886003)(31696002)(38100700002)(186003)(6916009)(5660300002)(122000001)(54906003)(6512007)(508600001)(7416002)(6486002)(26005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?TDdHVFBNNW9LdnBiMTJkN3BleitsQ05oRjIwQ3Aza21CbjJNUThiUmJVRlV3?=
 =?utf-8?B?LzJlbWlhTmNtOVAyY2RQdEJIM0dleExvZDdBWWJkS3JjRHV4ejRNSWM1RDUx?=
 =?utf-8?B?aDV1Y1IvamE2bm1wbXF0YWlRZ3RPcmtyMDJteHB6czhWM0hqMGhjSndEa3Ra?=
 =?utf-8?B?WFIzOGxsdzNmNXhsNEJ6eWFzOGRyVmxKZFBjVGVEMVBSQjd4QnBSbUtFWkdh?=
 =?utf-8?B?dDhFVEw5WHF3M1ZCdFd5T3pzd1ZDR0QvU0ZkR0dRVlN4dzJlNGZLNWxtdzZx?=
 =?utf-8?B?M2UvVld2WXE1N2E2RHpybVZuTS9McktKd3pDa08wSW9RMXVML01JeW1pcjZy?=
 =?utf-8?B?WTZVWE5YMVY4TUpTUVFqQWxmOHpPRFFUck1tYVFoaUdpOGptMjkwZENXTlRH?=
 =?utf-8?B?OTZKSzdwK09aQ2g2dWFwRHlvVEJwcSs0eG5wdFRYa0Z6TWhoVFVKTitiUnAy?=
 =?utf-8?B?MzVLL05xRkVYazkvODY1OGpIZ2wvVUV0RVlKOTFJa3lMTVZOVTBtaWU0TFh4?=
 =?utf-8?B?bUdCYmttVmlOczQvU05vWkhsNjNjL0wxMlFlbE1Gd2xqNEtrc1RSa0xvZDg0?=
 =?utf-8?B?R3hteUlubk1mK2NCUDB3WmZaZ1NKanc0K0s5QjBTdVowREJNVzZaMWJIYlpZ?=
 =?utf-8?B?UXFYckorQTJ1RDhZTmY4REhnTGlGaUYrc3pORHltOWdPWVVxTlJjNlNLUkgx?=
 =?utf-8?B?b2toZ3o1SldaNGRPSDRUaGIxc1VZeVdNT1J6ejBOSmxFS0tmVyt5bVdqUE1F?=
 =?utf-8?B?bzJEMDFoQk5wdXJSUVhzY2FLTFhwRVgyd0lpcnNZNk05L3FmOVc2MEVuL2Qz?=
 =?utf-8?B?MGM2NStpK1VFWm5zWFdVRU54d2FhOEIxL0dFeFFzMGZHNFBQTVRwZ3lKTTFz?=
 =?utf-8?B?WXdXcmFIaHFZUC9PWlEzRkpkM2VvejFjZlRDVE9xWlFwVC9ON0RabWxMYVpo?=
 =?utf-8?B?LzhTZ2pEa2xpZFpneDhkUisyT3Q1Nit4UllrQTl6dGkxKzFseG82MXp0QkNi?=
 =?utf-8?B?bzczOVdBb0o2NjJXYzJsSE94bGg5MllwQStYalB5UDJrSG5HNFBaS29lYlRr?=
 =?utf-8?B?UERlcCtPSnpJYnIzWUxuZjgwaWNuZUZrWDlqY2FHMTJndEt5bm9WOGlGUGho?=
 =?utf-8?B?c0ZQZWdVNnZHOEFRZEErRjhiYllQd3hsTW9mMHErc0VDeVhmd2MvMUt1TEZm?=
 =?utf-8?B?NVlkaFBZaTBGRUQvNWdYOXFlaTFWWUlHSHlsSUVIQnp5Y01JSlhwSTlzL2pM?=
 =?utf-8?B?M1lDTzlJU1B0QVU3ZVN0YkIxOVg1QlN1YnZZVUdLMEVpV2Y1Q3hTVTduSmdt?=
 =?utf-8?B?Y0lDWm41SmxMM2huUnBscmkvTE8wL1lieVZrUHkrdWJJSlYyOXlrNG9KTVNl?=
 =?utf-8?B?NGZHcTFiU1pOUWNkb3RMTnF0WExHSWFzcElZVWZDZWloRTF3WEMvVDJwOGJM?=
 =?utf-8?B?YzQxNzNENUd2ampPWXdTZ1FJV09qM3I4S1hZdys0Y29oblpvd2ZsMFM4eUdw?=
 =?utf-8?B?U25WcTBKVko5YmlqOHB3cUtUbDA4RUpKK1VKYlNxQ0dYVmFoSzZmNjhVTjNx?=
 =?utf-8?B?SzRTTVlGR24wcGcweXVWYklHa2k5NTBhcTJ6OXhMSEIySlRmNHh3MHFFdzJu?=
 =?utf-8?B?RDVRbjAvcEZiQ2JzOTdnY1NxWjc4ZDB5cHo2c3pLQ24zRnBJT0VzQ0tqWkMz?=
 =?utf-8?B?NXhvbTNXcUlTR3h4WWNjR0xvMVVKMUtwUHhMNzRYWXFPOVdtSXVuRk9zN29u?=
 =?utf-8?B?R0pHWHNENXNKRUlkVHhSQXBlMUVOMitRRCtydDFWQllXKzZsZFkwdXFMVHhL?=
 =?utf-8?B?SWdDK3lTajl0MFJ6S1J1Y2hrSDlGUHUycjRLYWdnQm95eVQzL1BYQnZNcG9s?=
 =?utf-8?B?SXFVd21EWWdzbzgwQno0cHFGOXJXemdoMmgvYzhDN3BKNzhlQVFQRFlZektn?=
 =?utf-8?B?eHdQYkszbVQrYmdYbnZkYVI5S3A4Q0JOaGtxV3lUQzJUaE9qSkdMSTFqeE5P?=
 =?utf-8?B?V1RRUCtPOUVhd2k0NGhJRkVUclA1TTc3bklia3oya2xnMTkvNEZOWk12ekcy?=
 =?utf-8?B?TGN6dWRvRWJQSzFpektleHFlb0dEOWNONUU0OEFyc2Rmb0haSzJHei91amow?=
 =?utf-8?B?RiswbHJuRE4ydW1SY3dBeUpwQi9YU0NSVHJWUS9SUmJ1anhScVNVaENha0lw?=
 =?utf-8?B?VnJ6UFhsdnFBRDNkTmI2RVEyNHNBK2dsZTFSczN3VUpURDNrU25mNDY4KzFM?=
 =?utf-8?B?MWZ5b2trdUc1NmNuUzhtbSttUlNBSTVIUlBuNTd1NWI3MERTcFgvRTVtRU52?=
 =?utf-8?B?ZGVvQ0FneU1HUTVaYUdZRTFoMkdMRlZpR3haNnl3R0ZvV1VqL1crdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9EFEB08E3BC653438184170DC62712A7@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 82abe51b-2df5-4552-aef4-08d9ab65d116
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 14:06:43.6422
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Y+OvxnZXD3lu6fJdfJlfYNp3jkn/qR3o/aXe/Lcq9Fj6donZwN0hI0S+wB1BEjvezfjoF5hcYkYJuSuYzV0+08GJQHXd8Y+CTYsOxcRC9V8Qgu/MBhRjyoKFgLktfkj6
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6068
X-Proofpoint-GUID: c_5bAq8lvzaHFo3WERzA5Oly7IESUZPU
X-Proofpoint-ORIG-GUID: c_5bAq8lvzaHFo3WERzA5Oly7IESUZPU
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 adultscore=0 spamscore=0 malwarescore=0 impostorscore=0 bulkscore=0
 mlxlogscore=735 phishscore=0 mlxscore=0 suspectscore=0 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190079

DQoNCk9uIDE5LjExLjIxIDE1OjU2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTEuMjAy
MSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gSGksIGFsbCENCj4+DQo+PiBUaGlzIHBhdGNoIHNlcmllcyBpcyBmb2N1c2luZyBvbiB2UENJ
IGFuZCBhZGRzIHN1cHBvcnQgZm9yIG5vbi1pZGVudGl0eQ0KPj4gUENJIEJBUiBtYXBwaW5ncyB3
aGljaCBpcyByZXF1aXJlZCB3aGlsZSBwYXNzaW5nIHRocm91Z2ggYSBQQ0kgZGV2aWNlIHRvDQo+
PiBhIGd1ZXN0LiBUaGUgaGlnaGxpZ2h0cyBhcmU6DQo+Pg0KPj4gLSBBZGQgcmVsZXZhbnQgdnBj
aSByZWdpc3RlciBoYW5kbGVycyB3aGVuIGFzc2lnbmluZyBQQ0kgZGV2aWNlIHRvIGEgZG9tYWlu
DQo+PiAgICBhbmQgcmVtb3ZlIHRob3NlIHdoZW4gZGUtYXNzaWduaW5nLiBUaGlzIGFsbG93cyBo
YXZpbmcgZGlmZmVyZW50DQo+PiAgICBoYW5kbGVycyBmb3IgZGlmZmVyZW50IGRvbWFpbnMsIGUu
Zy4gaHdkb20gYW5kIG90aGVyIGd1ZXN0cy4NCj4+DQo+PiAtIEVtdWxhdGUgZ3Vlc3QgQkFSIHJl
Z2lzdGVyIHZhbHVlcyBiYXNlZCBvbiBwaHlzaWNhbCBCQVIgdmFsdWVzLg0KPj4gICAgVGhpcyBh
bGxvd3MgY3JlYXRpbmcgYSBndWVzdCB2aWV3IG9mIHRoZSByZWdpc3RlcnMgYW5kIGVtdWxhdGVz
DQo+PiAgICBzaXplIGFuZCBwcm9wZXJ0aWVzIHByb2JlIGFzIGl0IGlzIGRvbmUgZHVyaW5nIFBD
SSBkZXZpY2UgZW51bWVyYXRpb24gYnkNCj4+ICAgIHRoZSBndWVzdC4NCj4+DQo+PiAtIEluc3Rl
YWQgb2YgaGFuZGxpbmcgYSBzaW5nbGUgcmFuZ2Ugc2V0LCB0aGF0IGNvbnRhaW5zIGFsbCB0aGUg
bWVtb3J5DQo+PiAgICByZWdpb25zIG9mIGFsbCB0aGUgQkFScyBhbmQgUk9NLCBoYXZlIHRoZW0g
cGVyIEJBUi4NCj4+DQo+PiAtIFRha2UgaW50byBhY2NvdW50IGd1ZXN0J3MgQkFSIHZpZXcgYW5k
IHByb2dyYW0gaXRzIHAybSBhY2NvcmRpbmdseToNCj4+ICAgIGdmbiBpcyBndWVzdCdzIHZpZXcg
b2YgdGhlIEJBUiBhbmQgbWZuIGlzIHRoZSBwaHlzaWNhbCBCQVIgdmFsdWUgYXMgc2V0DQo+PiAg
ICB1cCBieSB0aGUgaG9zdCBicmlkZ2UgaW4gdGhlIGhhcmR3YXJlIGRvbWFpbi4NCj4+ICAgIFRo
aXMgd2F5IGhhcmR3YXJlIGRvYW1pbiBzZWVzIHBoeXNpY2FsIEJBUiB2YWx1ZXMgYW5kIGd1ZXN0
IHNlZXMNCj4+ICAgIGVtdWxhdGVkIG9uZXMuDQo+Pg0KPj4gVGhlIHNlcmllcyBhbHNvIGFkZHMg
c3VwcG9ydCBmb3IgdmlydHVhbCBQQ0kgYnVzIHRvcG9sb2d5IGZvciBndWVzdHM6DQo+PiAgIC0g
V2UgZW11bGF0ZSBhIHNpbmdsZSBob3N0IGJyaWRnZSBmb3IgdGhlIGd1ZXN0LCBzbyBzZWdtZW50
IGlzIGFsd2F5cyAwLg0KPj4gICAtIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBsaW1pdGVkIHRvIDMy
IGRldmljZXMgd2hpY2ggYXJlIGFsbG93ZWQgb24NCj4+ICAgICBhIHNpbmdsZSBQQ0kgYnVzLg0K
Pj4gICAtIFRoZSB2aXJ0dWFsIGJ1cyBudW1iZXIgaXMgc2V0IHRvIDAsIHNvIHZpcnR1YWwgZGV2
aWNlcyBhcmUgc2Vlbg0KPj4gICAgIGFzIGVtYmVkZGVkIGVuZHBvaW50cyBiZWhpbmQgdGhlIHJv
b3QgY29tcGxleC4NCj4+DQo+PiBUaGUgc2VyaWVzIHdhcyBhbHNvIHRlc3RlZCBvbjoNCj4+ICAg
LSB4ODYgUFZIIERvbTAgYW5kIGRvZXNuJ3QgYnJlYWsgaXQuDQo+PiAgIC0geDg2IEhWTSB3aXRo
IFBDSSBwYXNzdGhyb3VnaCB0byBEb21VIGFuZCBkb2Vzbid0IGJyZWFrIGl0Lg0KPj4NCj4+IFRo
YW5rIHlvdSwNCj4+IE9sZWtzYW5kcg0KPj4NCj4+IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvICgx
MSk6DQo+PiAgICB2cGNpOiBmaXggZnVuY3Rpb24gYXR0cmlidXRlcyBmb3IgdnBjaV9wcm9jZXNz
X3BlbmRpbmcNCj4+ICAgIHZwY2k6IGNhbmNlbCBwZW5kaW5nIG1hcC91bm1hcCBvbiB2cGNpIHJl
bW92YWwNCj4+ICAgIHZwY2k6IG1ha2UgdnBjaSByZWdpc3RlcnMgcmVtb3ZhbCBhIGRlZGljYXRl
ZCBmdW5jdGlvbg0KPj4gICAgdnBjaTogYWRkIGhvb2tzIGZvciBQQ0kgZGV2aWNlIGFzc2lnbi9k
ZS1hc3NpZ24NCj4+ICAgIHZwY2kvaGVhZGVyOiBpbXBsZW1lbnQgZ3Vlc3QgQkFSIHJlZ2lzdGVy
IGhhbmRsZXJzDQo+PiAgICB2cGNpL2hlYWRlcjogaGFuZGxlIHAybSByYW5nZSBzZXRzIHBlciBC
QVINCj4+ICAgIHZwY2kvaGVhZGVyOiBwcm9ncmFtIHAybSB3aXRoIGd1ZXN0IEJBUiB2aWV3DQo+
PiAgICB2cGNpL2hlYWRlcjogZW11bGF0ZSBQQ0lfQ09NTUFORCByZWdpc3RlciBmb3IgZ3Vlc3Rz
DQo+PiAgICB2cGNpL2hlYWRlcjogcmVzZXQgdGhlIGNvbW1hbmQgcmVnaXN0ZXIgd2hlbiBhZGRp
bmcgZGV2aWNlcw0KPj4gICAgdnBjaTogYWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgdmlydHVhbCBQ
Q0kgYnVzIHRvcG9sb2d5DQo+PiAgICB4ZW4vYXJtOiB0cmFuc2xhdGUgdmlydHVhbCBQQ0kgYnVz
IHRvcG9sb2d5IGZvciBndWVzdHMNCj4gSWYgSSdtIG5vdCBtaXN0YWtlbiBieSB0aGUgZW5kIG9m
IHRoaXMgc2VyaWVzIGEgZ3Vlc3QgY2FuIGFjY2VzcyBhDQo+IGRldmljZSBoYW5kZWQgdG8gaXQu
IEkgY291bGRuJ3QgZmluZCBhbnl0aGluZyBkZWFsaW5nIHdpdGggdGhlDQo+IHVzZXMgb2YgdnBj
aV97cmVhZCx3cml0ZX1faHcoKSBhbmQgdnBjaV9od197cmVhZCx3cml0ZX0qKCkgdG8gY292ZXIN
Cj4gY29uZmlnIHJlZ2lzdGVycyBub3QgY292ZXJlZCBieSByZWdpc3RlcmVkIGhhbmRsZXJzLiBJ
TU8gdGhpcyBzaG91bGQNCj4gaGFwcGVuIGJlZm9yZSBwYXRjaCA1OiBCZWZvcmUgYW55IGhhbmRs
ZXJzIGdldCByZWdpc3RlcmVkIHRoZSB2aWV3IGENCj4gZ3Vlc3Qgd291bGQgaGF2ZSB3b3VsZCBi
ZSBhbGwgb25lcyBubyBtYXR0ZXIgd2hpY2ggcmVnaXN0ZXIgaXQNCj4gYWNjZXNzZXMuIEhhbmRs
ZXIgcmVnaXN0cmF0aW9uIHdvdWxkIHRoZW4gInB1bmNoIGhvbGVzIiBpbnRvIHRoaXMNCj4gImN1
cnRhaW4iLCBhcyBvcHBvc2VkIHRvIERvbTAsIHdoZXJlIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGhp
ZGVzDQo+IHByZXZpb3VzbHkgdmlzaWJsZSByYXcgaGFyZHdhcmUgcmVnaXN0ZXJzLg0KVGhpcyBp
cyAiYnkgZGVzaWduIiBub3cgd2hpY2ggaXMgbm90IGdvb2QsIEkga25vdy4gV2Ugb25seSBoYXZl
IHNvbWUNCnJlZ2lzdGVyIGhhbmRsZXJzIHNldCwgYnV0IHRoZSByZXN0IG9mIHRoZSBjb25maWd1
cmF0aW9uIHNwYWNlIGlzDQpzdGlsbCB2aXNpYmxlIHJhdyB0byB0aGUgZ3Vlc3Qgd2l0aG91dCBy
ZXN0cmljdGlvbnMuIE5vdCBsZXR0aW5nIHRoZQ0KZ3Vlc3QgYWNjZXNzIHRob3NlIGFuZCByZXR1
cm5pbmcgYWxsIG9uZXMgd2lsbCByZW5kZXIgdGhlIGRldmljZQ0KdW51c2FibGUgZm9yIHRoZSBn
dWVzdCBhcyBpdCBkb2VzIG5lZWQgYWNjZXNzIHRvIGFsbCBpdHMgY29uZmlndXJhdGlvbg0Kc3Bh
Y2UuIFRoaXMgbWVhbnMgdGhhdCB3ZSB3b3VsZCBuZWVkIHRvIGVtdWxhdGUgZXZlcnkgcG9zc2li
bGUNCnJlZ2lzdGVyIGZvciB0aGUgZ3Vlc3Qgd2hpY2ggc2VlbXMgdG8gYmUgb3V0IG9mIHRoZSBz
Y29wZSBvZiB0aGlzIHNlcmllcy4NCg0KQnV0IGRlZmluaXRlbHkgeW91IGFyZSByaWdodCB0aGF0
IHRoaXMgbmVlZHMgdG8gYmUgc29sdmVkIHNvbWVob3cuDQo+DQo+IEphbg0KPg0KVGhhbmsgeW91
LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:10:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:10:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227982.394462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4ag-0006fl-Gf; Fri, 19 Nov 2021 14:10:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227982.394462; Fri, 19 Nov 2021 14:10:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4ag-0006fe-DX; Fri, 19 Nov 2021 14:10:10 +0000
Received: by outflank-mailman (input) for mailman id 227982;
 Fri, 19 Nov 2021 14:10:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo4af-0006fY-9y
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:10:09 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 66125cca-4942-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 15:10:08 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJE2tbO029529;
 Fri, 19 Nov 2021 14:10:04 GMT
Received: from eur01-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2054.outbound.protection.outlook.com [104.47.1.54])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cecwvg3w9-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 14:10:03 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5011.eurprd03.prod.outlook.com (2603:10a6:208:101::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 14:09:56 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 14:09:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66125cca-4942-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dGsp4zy7uxyoweyjLMfv66CyjD81NwkXOngYFVWW7NIJNdg9EcjNE97QhbmPgYNXB4+ZrTjfssU1uCQ9ySDqHesHx3g8RUXhN4RTr3zKw7kNVtTfYYbE3ynZ7KbnkxKGIB9OmWdOvYmGtoi2ZDzGOZqwTX+rayOD5nqiZnEyc58Eg1ibvDRBgNeP/0Hz+aHtaf7F3d4VJj9NjkTXj+D30JWjy/4Zffkd6ryCZ6fzpFXthWXfDvMa7561H3sYFUTiSWDpYCoJQhOA2b9L8xH1xIdYCD5B7wlydqZifYVFMKSH7a/5E21+WcUm8q0574ijr/6CLFmd9QaTJNhAjyVvXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=enHaVuO1OJO5Oi5HKjymxZ+g0jN4HNM6XFe8TazavlE=;
 b=hbugRRcyD/uaQjuzMxUFschX8PuzQuRaSJ9GzXTMtBjtCNOBGL6fRVT4Ac6a6b04J2K9fS0gItRqH5umm8/mi23Q/PMmo8QBNwJfaGipzuUw3o+0jSvhlYwAEYLQakhCDyTmawTSpIilwN79Io3ErlQdF1qeHEjZGrdYBXyzDHeD8MIjzgmTrb6q2M2LNBwjaWca7qOxiMaXprsLEfDYTq8iqGjnLXJ34faMC5qpMgWEzSC00OGQVsJGPC6k+bkLVuakMzI/kVVlCK8h3esZhhIu7iOgOhaYsjjLlOZRvq3JLTUQeyun7ycU1LU3wyLSI3bklTNgzLyqIZCRHd926w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=enHaVuO1OJO5Oi5HKjymxZ+g0jN4HNM6XFe8TazavlE=;
 b=D0r6UAiyWTPH4SPHrTo6C5GfDsFgtn8bl7tqqMGbVuFC1hs0/HrGe5ZJ7b6U/GpBO1mDTr9mEE/uiIHyafrk0KPiNXgeqlN/zxT/heBX0Kg0SqSOt7Ph9SiKkzGKXvcKtNL2y303Vme7YzRTBwmSrzfWXR9Xm4cP+TwcSSqOsGO1mmLP6VJ+xx1OW0Uc8PpfQ8h95r9qIsGcrnj1xxjj5jMmlncDSNztLOw2TMoYQI7aHcMjWr9TzYt6iaFFuL3q4S+gqDb0FCa6BVckG62kXtUZaZR2Z0Qys3KJQbdfTBGrxvE4JrxOC12nyCjsUM/u+vy3tqRTpUYqT5Uxl/FOKA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Topic: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Index: AQHX0hJLwt+wJ2t1lka5jlbMIq7ZAqwK60SAgAAG0YCAAASpAIAAA16A
Date: Fri, 19 Nov 2021 14:09:56 +0000
Message-ID: <8bd7e778-6ebd-2f50-8e96-e21b3bf06a11@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <3a7f4c3a-7162-8cd3-0879-2f87572f0225@suse.com>
 <6b2d4825-3b00-4034-2804-a44059de15a1@epam.com>
 <fb72cae2-1b7e-8d52-48d0-2967c68325ea@suse.com>
In-Reply-To: <fb72cae2-1b7e-8d52-48d0-2967c68325ea@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2dfd123f-2510-482d-102c-08d9ab664406
x-ms-traffictypediagnostic: AM0PR03MB5011:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5011FFF1BE4FFDA11E4D153FE79C9@AM0PR03MB5011.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 EOX4eJcnIUazd45LolMUuCnLl9dP2VY23FhT19ii7bPnqQiSablOtgYfG+yOSSYQNFH6W4lXaf2Uh7FPcqLp+tmlwwz6CE6vWBT475/fHUe/h9aoDhS1tnwh9PEmm/vAtC/5H2++YBF8DWwg0kFmGgdOgnV2+GwMhvquE9Jq54lHitm8K2lNbntj7vVq8/HzuzpLStIl6sez8fUvhmcYQTUGQm0B+rW4SwC5tm/apGvV/ggxfPX7L/2fzTTXXl+InDYnFc4uNaix4Dodm4wUL3qAV+a0A4P+HAU/8C9xTTVJGJNqDU1XgqFqCw0Py6bBqlMtsJIazhO5LzgNJQg9EyyGukOG/R2o+GIlJCgW+af2KT4wHA/uKu2wNLSCTmSk5ceDoJDNSrJO8uDEUQTT9Ygik/pEFNloZyAkhpvmgcc3Vur8xAtLwO9t6QfjCuz193oQ4ehrfbKzLYPAOWd9HsVDoM2mat6cZcnsKeROqbsM/xJE5xbH1aUNRycEScuyHzisUdnNvEvL2oWgew7mB3Beww9XdVr4FY3gQd62qOFLeLp/gEMQWTzXf67rhPBJLfzuTWxpuX+odDWRnY8xzK/FgXhOJ5a+N/bxA4oUdQrK2t1SuHfyxS/BVAXg8i6TOOdHc9peaGEUrwD6Ys/aVKP1uX3bhcarPczNTfmmWGPxubwkgYCY451/A17Jsb7UPCC5PuZlJv63oC6RA7CmENMzX4dsiS0lGX/WKBxqVZPTGMM6x5Sz4CcRgv2QDLzU
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(122000001)(8676002)(2616005)(54906003)(71200400001)(66946007)(36756003)(107886003)(26005)(31696002)(2906002)(38100700002)(4326008)(76116006)(7416002)(508600001)(91956017)(86362001)(5660300002)(66476007)(6506007)(31686004)(6916009)(64756008)(53546011)(66556008)(6512007)(83380400001)(316002)(6486002)(8936002)(66446008)(38070700005)(186003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?Tng2SXhLM295MXpOV01Wd3lrdkJaa3VSMHhwNEtjUDBDcE1LTmpaNDd1c3lw?=
 =?utf-8?B?Mkd3QkhMZ2lBcXZFejBDNm02bEN1K1RORmlObFNxM0V4T09sNXdrVFJtUm8v?=
 =?utf-8?B?K0xWMEdkNS8vS0JvM0VPQjNDcnpQRXE3VGpVMC9WNWc1M2JsU2lzOHkvdkFI?=
 =?utf-8?B?WEpsU2JFeFNTSEJjcW5KaW1wMURQRmtDMjhMenFrcGxWeFk5TTAxRmduVGNw?=
 =?utf-8?B?YktCdEZyL0xuSXo3cE9nRHlLYWw0bjNYS1JnMUo2TkFxN1VsdzZzaGtHamQ0?=
 =?utf-8?B?UkJ6T294VmhEY2U2Qlg1THo4L2NjNTU0L0wyOUZYYWhOY1BJM2RMeUtScndW?=
 =?utf-8?B?cjlPd0l0c0kwTy9ubXNOcStKcTJLb1ZlR2pmTVVjTi81WGVOZFVDd1FxRFVY?=
 =?utf-8?B?TGFPNDRkWjFTMmF1dFZrMzM2QTRDL2M5NmNtcS91UEtPVEtEV3B5MmdQQnVl?=
 =?utf-8?B?ajg5RkxxbUZOMmJESm41TVZLUCtEWWxMR0F4QmZ6Mjc5NnUvMjYyVFU1bytI?=
 =?utf-8?B?eVozaGVmWlVoTU5WWlEwQzIvWHJ1KytyZlJBS3JBWmhoTTlqbVdMKzc1eDRX?=
 =?utf-8?B?OElWbWEvaXdCc2t0Vm5zUW1DcnQwWFY0MjJabWE0dGFrUDJjZE91dk95ZWNp?=
 =?utf-8?B?M0Fta1ZZbHFlcitzNGx5OTlGc1c5TFhHU1V1SGcvQmtuc1UrQVhIN2M1Q3ZV?=
 =?utf-8?B?RzhxSTZxdUYvck84UUIwS2JnbVhFeU9majNJTWEzeDlwMWpuUWxGSTlqalRw?=
 =?utf-8?B?bFpZVExBNEpOWGdsQWxydjNNd3crYXgrdjNyZG9YVUJqcGl0dnoyeVFaRC8r?=
 =?utf-8?B?SDRwc1BBaFRrUS9ta3BUWDFaNEpBTFpML3I2OCszQnozMG9KWld0RExBTEEy?=
 =?utf-8?B?R3QzaTU4M0ZLOHNOODFLUmhDMkhtUjBPU04wekZQeURvZjNjaHlPZVA2bDQv?=
 =?utf-8?B?VHNwYnRHa3d6cndyMnFuSTlsanBzb1hmWndXM3hRa3FYTFlRTnJ0eGZGeHFC?=
 =?utf-8?B?VjlGcU5lb2phdmVoQVZnaktLV2FYSWptZzZvR3lVN0xiZG5uTEdiRlNtbzFK?=
 =?utf-8?B?WEwvMS9LNkNRL2loTDNYRzVpMm1PdUhValVXUWdCQWhiakhQcDJIV1NaQy9R?=
 =?utf-8?B?RUsvakZQbjRQVEphdUZrUUJUdS9xdUxXaEFGNEdqVDBXeTF1YWRMMkc2cEg4?=
 =?utf-8?B?TWQyYjhrVWo0Tjh4ZndoTURSMUMrVDFJWUJHdFF2dTF5enN0aW9vYm83cCtV?=
 =?utf-8?B?U1NNeUdkbzhqemY3MzRGMytyK3k2d2NJMjZNdUpFalcvaGNibzhzcU5sYTNN?=
 =?utf-8?B?V0k2aVhTNXo4MUhjQ3VWVGVBSU5mOWhIR2JtM2hJWHQySVE0L29hd2ZsdkVx?=
 =?utf-8?B?SHgrWHpDTXFWZUk0VGVlTTNGckN3bGg2ZTVqT1J0dmROMEI3YUVsek1zdjNw?=
 =?utf-8?B?dTBmYUM4ZjMxdHFDUlUxTVJsVVl0RVZISCsxSWIrN1ovWFV0OG1oRnV5WU5m?=
 =?utf-8?B?Rkl3eXNLVHlqaVdkM01Ia3FGSllCbEdYMGRhTWRPUndKQmowZFRwd1YvdjRv?=
 =?utf-8?B?MVU0UXFEdlRFZ0RSSDhILzdTY2JKTGxqdkVzdUZ5ZGpPVnIySEh0Mm1zSUNs?=
 =?utf-8?B?S2VtWEo0M2RDcGxpekU0c2k3eFhaTityMVp5MzBSby9tZTVYUVJMWFdRaVI5?=
 =?utf-8?B?TnMwZVdVN0VEN0c5RnVvczR1ZkN4TG5lTjhENkdRRmx4SE5jYVZDcCtsdm9Y?=
 =?utf-8?B?Yko5ek9wamN3RjJ6VWdDTmVkSjdWVXE4alZRdjZiellpa2V2RHNQU3FMYW53?=
 =?utf-8?B?YlFKbEN3ZWpIdjVObjJTWkRBNHR3VnRmK28xOGxKWm44TG5LeE5GSWRLRkU3?=
 =?utf-8?B?aUU2ZE1ZRzg4ZkRxZmRqZnpXYlFzLzVwNG1qcVM0VXpVS0I1WDNGc0tzUmFm?=
 =?utf-8?B?NllsbkNVcUQvaWRmYkIvYlNVWFV3WEZVTEQ0N05uelpoeElHM0g5VWZiRk9I?=
 =?utf-8?B?UjdHU2h4V0FHUkVzZS90Vm5kbjRmYWUveXBNYVFqdGFuS2ovT21sUit3c1lG?=
 =?utf-8?B?NUh3YU1yMDd4Ym01NU1MaXNQMkdwdU1HRklhM0V3N2J4OTM3SWREWlEwMDVl?=
 =?utf-8?B?TlUxbUM5R1pubmdaTWQ5UzJNTXJlOEtKRlRHdzRkOWgzb0dJbEp3eEd5M2hm?=
 =?utf-8?B?THQyOStFM2N1bGtxelFmZzA1RXhyRWovcTV1bHovSGJrRUZPVlhyTEE1QWJw?=
 =?utf-8?B?OWJqdUMwNTZqVFRxYUxJTTVHWlpjYmxWa0ZuU1lGdzAzSWJCQ2trMGQ2MWRP?=
 =?utf-8?B?NFhUSFgxd1diVlZWblN1T1NQQ2s1ckdrM2R0MWN1Rmx4TDhOVjdNQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5FBA5A312804484C927996DA07175432@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2dfd123f-2510-482d-102c-08d9ab664406
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 14:09:56.4235
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: K0tnr74cyiIB70OS29tSiSC8bBDG5ZHu1kzIZeneAJJRHyr7gg3c3d9VwEOU1m2otl7UXNzntzXbKuwk4B8n+1KXld8lufC9RVt2Mi0umRCm8GCyCaIRlUhWcsTOWzrt
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5011
X-Proofpoint-GUID: 9_zIUECxBKnFT1_KscCXomstRsQZUMl0
X-Proofpoint-ORIG-GUID: 9_zIUECxBKnFT1_KscCXomstRsQZUMl0
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0
 spamscore=0 mlxscore=0 suspectscore=0 phishscore=0 lowpriorityscore=0
 bulkscore=0 priorityscore=1501 impostorscore=0 mlxlogscore=864
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190079

DQoNCk9uIDE5LjExLjIxIDE1OjU3LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxNDo0MSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMTkuMTEu
MjEgMTU6MTYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBAQCAtOTUsMTAgKzEwMiwyNSBAQCBp
bnQgdnBjaV9hZGRfaGFuZGxlcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+Pj4+ICAgICAgICBJ
TklUX0xJU1RfSEVBRCgmcGRldi0+dnBjaS0+aGFuZGxlcnMpOw0KPj4+PiAgICAgICAgc3Bpbl9s
b2NrX2luaXQoJnBkZXYtPnZwY2ktPmxvY2spOw0KPj4+PiAgICANCj4+Pj4gKyAgICBoZWFkZXIg
PSAmcGRldi0+dnBjaS0+aGVhZGVyOw0KPj4+PiArICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlf
U0laRShoZWFkZXItPmJhcnMpOyBpKysgKQ0KPj4+PiArICAgIHsNCj4+Pj4gKyAgICAgICAgc3Ry
dWN0IHZwY2lfYmFyICpiYXIgPSAmaGVhZGVyLT5iYXJzW2ldOw0KPj4+PiArDQo+Pj4+ICsgICAg
ICAgIGJhci0+bWVtID0gcmFuZ2VzZXRfbmV3KE5VTEwsIE5VTEwsIDApOw0KPj4+IEkgZG9uJ3Qg
cmVjYWxsIHdoeSBhbiBhbm9ueW1vdXMgcmFuZ2Ugc2V0IHdhcyBjaG9zZW4gYmFjayBhdCB0aGUg
dGltZQ0KPj4+IHdoZW4gdlBDSSB3YXMgZmlyc3QgaW1wbGVtZW50ZWQsIGJ1dCBJIHRoaW5rIHRo
aXMgbmVlZHMgdG8gYmUgY2hhbmdlZA0KPj4+IG5vdyB0aGF0IERvbVUtcyBnZXQgc3VwcG9ydGVk
LiBXaGV0aGVyIHlvdSBkbyBzbyByaWdodCBoZXJlIG9yIGluIGENCj4+PiBwcmVyZXEgcGF0Y2gg
aXMgc2Vjb25kYXJ5IHRvIG1lLiBJdCBtYXkgYmUgZGVzaXJhYmxlIHRvIGV4Y2x1ZGUgdGhlbQ0K
Pj4+IGZyb20gcmFuZ2VzZXRfZG9tYWluX3ByaW50aygpICh3aGljaCB3b3VsZCBsaWtlbHkgcmVx
dWlyZSBhIG5ldw0KPj4+IFJBTkdFU0VURl8qIGZsYWcpLCBidXQgSSB0aGluayBzdWNoIHJlc291
cmNlcyBzaG91bGQgYmUgYXNzb2NpYXRlZA0KPj4+IHdpdGggdGhlaXIgZG9tYWlucy4NCj4+IFdo
YXQgd291bGQgYmUgdGhlIHByb3BlciBuYW1lIGZvciBzdWNoIGEgcmFuZ2Ugc2V0IHRoZW4/DQo+
PiAidnBjaV9iYXIiPw0KPiBFLmcuIGJiOmRkLmY6QkFSbg0KSG0sIGluZGVlZA0KSSBjYW4gb25s
eSBzZWUgYSBzaW5nbGUgZmxhZyBSQU5HRVNFVEZfcHJldHR5cHJpbnRfaGV4IHdoaWNoIHRlbGxz
DQoqaG93KiB0byBwcmludCwgYnV0IEkgY2FuJ3Qgc2VlIGFueSBsaW1pdGF0aW9uIGluICp3aGF0
KiB0byBwcmludC4NClNvLCBkbyB5b3UgbWVhbiBJIHdhbnQgc29tZSBsb2dpYyB0byBiZSBpbXBs
ZW1lbnRlZCBpbg0KcmFuZ2VzZXRfZG9tYWluX3ByaW50ayBzbyBpdCBrbm93cyB0aGF0IHRoaXMg
ZW50cnkgbmVlZHMgdG8gYmUgc2tpcHBlZA0Kd2hpbGUgcHJpbnRpbmc/IFJBTkdFU0VURl9za2lw
X3ByaW50Pw0KPg0KPiBKYW4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:11:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:11:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.227989.394481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4bg-0007Mz-Br; Fri, 19 Nov 2021 14:11:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 227989.394481; Fri, 19 Nov 2021 14:11:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4bg-0007Mj-46; Fri, 19 Nov 2021 14:11:12 +0000
Received: by outflank-mailman (input) for mailman id 227989;
 Fri, 19 Nov 2021 14:11:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Uc+b=QG=xenbits.xen.org=iwj@srs-se1.protection.inumbo.net>)
 id 1mo4bf-0007IU-DE
 for xen-devel@lists.xen.org; Fri, 19 Nov 2021 14:11:11 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 875420c1-4942-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 15:11:05 +0100 (CET)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mo4bO-0000fv-SH; Fri, 19 Nov 2021 14:10:54 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mo4bO-0006a8-Pf; Fri, 19 Nov 2021 14:10:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 875420c1-4942-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=umEaDI8/hUmH+5yhUmlANGENfqJ8OeLb0pmTgj8hvss=; b=OEp38vmrfhW3Jlrh0MU+sVHTKw
	EcSoUTtlOsNS/jYmsPMdXKD35H7d5C2fiH0ZxZ3UcCNMNOt53q6ykM0A4gRyParMou61U4ydvDG6w
	7pFDUh/TSLsW+hARM9OIHqHNkySj6qklqKMClqE6XCnJGV0RHRIIWvdQMUmk9xEovzgo=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 390 v1 (CVE-2021-28710) - certain VT-d
 IOMMUs may not work in shared page table mode
Message-Id: <E1mo4bO-0006a8-Pf@xenbits.xenproject.org>
Date: Fri, 19 Nov 2021 14:10:54 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2021-28710 / XSA-390

      certain VT-d IOMMUs may not work in shared page table mode

ISSUE DESCRIPTION
=================

For efficiency reasons, address translation control structures (page
tables) may (and, on suitable hardware, by default will) be shared
between CPUs, for second-level translation (EPT), and IOMMUs.  These
page tables are presently set up to always be 4 levels deep.  However,
an IOMMU may require the use of just 3 page table levels.  In such a
configuration the lop level table needs to be stripped before
inserting the root table's address into the hardware pagetable base
register.  When sharing page tables, Xen erroneously skipped this
stripping.  Consequently, the guest is able to write to leaf page
table entries.

IMPACT
======

A malicious guest may be able to escalate its privileges to that of
the host.

VULNERABLE SYSTEMS
==================

Xen version 4.15 is vulnerable.  Xen versions 4.14 and earlier are not
vulnerable.

Only x86 Intel systems with IOMMU(s) in use are affected.  Arm
systems, non-Intel x86 systems, and x86 systems without IOMMU are not
affected.

Only HVM guests with passed-through PCI devices and configured to share
IOMMU and EPT page tables are able to leverage the vulnerability on
affected hardware.  Note that page table sharing is the default
configuration on capable hardware.

Systems are only affected if the IOMMU used for a passed through
device requires the use of page tables less than 4 levels deep.  We
are informed that this is the case for some at least Ivybridge and
earlier "client" chips; additionally it might be possible for such a
situation to arise when Xen is running nested under another
hypervisor, if an (emulated) Intel IOMMU is made available to Xen.

MITIGATION
==========

Suppressing the use of shared page tables avoids the vulnerability.
This can be achieved globally by passing "iommu=no-sharept" on the
hypervisor command line.  This can also be achieved on a per-guest basis
via the "passthrough=sync_pt" xl guest configuration file option.

RESOLUTION
==========

Applying the attached patch resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa390.patch           xen-unstable - Xen 4.15.x

$ sha256sum xsa390*
34d3b59a52c79bd7f9d963ca44ee5cfee08274d49961726e81c34eeff6e6cd37  xsa390.patch
$

CREDITS
=======

This issue was discovered by Jan Beulich of SUSE.

NOTE REGARDING LACK OF EMBARGO
==============================

This fix for issue was submitted in public before realizing the security
aspect.
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmGXsGUMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZiMkH/2t+q/yAO7srnKdt1yLhOcG/tok0pdSLe5b3ayES
ZktW69wnSlQ/TeH96A64pZKxXbQpRh3cDbjn2xedCDGIOyaKuObgPY7aYfuvtOxN
/6a3P3qUf2oxm5/nS0KG6kHX69gptXupvgCPwl2i1KWARi4uMEm76N7lCe3o8fFd
s8HNfLvJ0tX6pXtOQjeQEt73fDWQ/hwKGGJctFI1hrvy01erqHDdZrYiJAO6vp8z
c9LU1o8dIQSUg2dm5GSX5DCX6xEzOh6sT53CDQ7W5gTn+SnCGr7FT1iTeXYeTFSN
EaYZVynkaxQeCXsoJO0K2o7lwwKvUrQ6GNhqdd4iOR/annY=
=P/qb
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa390.patch"
Content-Disposition: attachment; filename="xsa390.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBmaXggcmVkdWNlZCBwYWdlIHRhYmxlIGxldmVscyBzdXBwb3J0
IHdoZW4gc2hhcmluZyB0YWJsZXMKCmRvbWFpbl9wZ2RfbWFkZHIoKSBjb250
YWlucyBsb2dpYyB0byBhZGp1c3QgdGhlIHJvb3QgYWRkcmVzcyB0byBiZSBw
dXQKaW4gdGhlIGNvbnRleHQgZW50cnkgaW4gY2FzZSA0LWxldmVsIHBhZ2Ug
dGFibGVzIGFyZW4ndCBzdXBwb3J0ZWQgYnkgYW4KSU9NTVUuIFRoaXMgbG9n
aWMgbWF5IG5vdCBiZSBieXBhc3NlZCB3aGVuIHNoYXJpbmcgcGFnZSB0YWJs
ZXMuCgpUaGlzIGlzIENWRS0yMDIxLTI4NzEwIC8gWFNBLTM5MC4KCkZpeGVz
OiAyNWNjZDA5MzQyNWMgKCJpb21tdTogcmVtb3ZlIHRoZSBzaGFyZV9wMm0g
b3BlcmF0aW9uIikKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4u
dGlhbkBpbnRlbC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92
dGQvaW9tbXUuYwpAQCAtMzQwLDE5ICszNDAsMjEgQEAgc3RhdGljIHVpbnQ2
NF90IGRvbWFpbl9wZ2RfbWFkZHIoc3RydWN0CiAgICAgewogICAgICAgICBw
YWdldGFibGVfdCBwZ3QgPSBwMm1fZ2V0X3BhZ2V0YWJsZShwMm1fZ2V0X2hv
c3RwMm0oZCkpOwogCi0gICAgICAgIHJldHVybiBwYWdldGFibGVfZ2V0X3Bh
ZGRyKHBndCk7CisgICAgICAgIHBnZF9tYWRkciA9IHBhZ2V0YWJsZV9nZXRf
cGFkZHIocGd0KTsKICAgICB9Ci0KLSAgICBpZiAoICFoZC0+YXJjaC52dGQu
cGdkX21hZGRyICkKKyAgICBlbHNlCiAgICAgewotICAgICAgICAvKiBFbnN1
cmUgd2UgaGF2ZSBwYWdldGFibGVzIGFsbG9jYXRlZCBkb3duIHRvIGxlYWYg
UFRFLiAqLwotICAgICAgICBhZGRyX3RvX2RtYV9wYWdlX21hZGRyKGQsIDAs
IDEpOwotCiAgICAgICAgIGlmICggIWhkLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIg
KQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQorICAgICAgICB7Cisg
ICAgICAgICAgICAvKiBFbnN1cmUgd2UgaGF2ZSBwYWdldGFibGVzIGFsbG9j
YXRlZCBkb3duIHRvIGxlYWYgUFRFLiAqLworICAgICAgICAgICAgYWRkcl90
b19kbWFfcGFnZV9tYWRkcihkLCAwLCAxKTsKIAotICAgIHBnZF9tYWRkciA9
IGhkLT5hcmNoLnZ0ZC5wZ2RfbWFkZHI7CisgICAgICAgICAgICBpZiAoICFo
ZC0+YXJjaC52dGQucGdkX21hZGRyICkKKyAgICAgICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIHBnZF9tYWRkciA9IGhkLT5h
cmNoLnZ0ZC5wZ2RfbWFkZHI7CisgICAgfQogCiAgICAgLyogU2tpcCB0b3Ag
bGV2ZWxzIG9mIHBhZ2UgdGFibGVzIGZvciAyLSBhbmQgMy1sZXZlbCBEUkhE
cy4gKi8KICAgICBmb3IgKCBhZ2F3ID0gbGV2ZWxfdG9fYWdhdyg0KTsK

--=separator--


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:23:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:23:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228049.394526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4nk-0002Vz-03; Fri, 19 Nov 2021 14:23:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228049.394526; Fri, 19 Nov 2021 14:23:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4nj-0002Vs-TE; Fri, 19 Nov 2021 14:23:39 +0000
Received: by outflank-mailman (input) for mailman id 228049;
 Fri, 19 Nov 2021 14:23:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/r4T=QG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mo4ni-0002Vm-84
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:23:38 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47539dcc-4944-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 15:23:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47539dcc-4944-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637331816;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=gSUYUeMqNuLL9/9LpxG+uMSrGCcNJ+QSDzlIZhGWLoU=;
  b=GBXYtNge8dedydVRgmF3Uo72AqOG2FpRUxDMAPKlcPrZ8u6Sa0DqtP1E
   pfBUii7ENaZGjUzqI3fZuK1um0tMQIsW7ou94sT5noNfz7Pvr+iJKw8Vi
   +JK3cNLnUNCfp+Bnhf5aBu+d+rlOa1UcqXVuSniH0QwKMTlblq5dbXHUB
   Y=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: yK6xOk72Juoqln+StRAVxW1RhQCTPp2MpzfiR6SGnfxV6lEBfXX0lwtJJ7OLdu8biRpC+mV2So
 37sDp9dvqatWROxIwsaohUS58QIaahzvCbBRvrjguBGLwIQGlrOZPSsTLnULW3f9IHZRSaxrgZ
 RhRNLWy9CwbmlLzf4nvAvOAB0/oJ6j1QsWc5AxkJLm+8szWxp794GpUNTeLOUFYLw2MkkNS95V
 Zsk8WTFzoShVOYdu1JIUDQyDdsFvlyZNVTwtUgGgOZBa5Oa7MPs3xeEYSzodyETQQUsbKeVT2f
 HXCYwS8TkC/k/jfw7PWx/7sK
X-SBRS: 5.1
X-MesageID: 58182591
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:NR+7va1c5FO137lke/bD5ep3kn2cJEfYwER7XKvMYLTBsI5bpzNRz
 GMaX2GEafzcM2Ghft4na47n9UxUsZPdx9AxTQRopC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wr9h2+aEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhuJchx
 uV1hIGLQhZwFJTiktsnTCZiDHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1EnMMsIdOtJIoCknph0SvYHbAtRpWrr6DiuI8BjG1t15km8fD2T
 cYpWwVLfkX7WgBiN00rArgOv/yKmSyqG9FfgA3M/vdmi4TJ9yR73aLxKtPTdpqPTN9Mg0eDj
 mvc+iLyBRRyHMSW1D6t4n+qwOjVkkvTcZgOGbiP0+9liVye2EQeEBQTE1C8pJGRmkO4Ht5SN
 UEQ0i4vtrQpslymSMHnWB+1q2LCuQQTM/JXF+A58wiLxrDj6gCVHHUfTjVBZdols+c7XTUvk
 FSOmrvBHzVvrbnTUnOb+be8pCm3fyMSKAcqZzIATAYDy8nupsc0lB2nZt9lHLTv1oWtMT71y
 jGO6iM5gt07j8QGyqG69lDvmC+3q97CSQtdzhvQWmWp/wZofrmvboaj6UXYxftYJYPfRV6E1
 FADn8Wd9+kIAYu6iD2WQO4NEbeq4N6IKDTZx1VoGvEJ7C+x8nSueYRR5jBWJ0pzNMsAPzjzb
 yfuVRh5vcEJeiHwNOkuPtz3W59CIbXc+crNcbeEYOp2U4VKfx7e1hhAb3GqwF/Xjx15+U0gA
 quzfcGpBHccLK1oyjuqWusQuYMWKjACKXD7Hs6ikUn+uVaKTDvMEOpebgPSBgwsxPrc+F29z
 jpJCyedJ/yzusXaazKfz4McJEtiwZMTVcGv8Jw/mgJuz2Nb9IAd5x35nexJl29Nxf09egL0E
 peVABIwJL3X3yOvFOlyQio/AI4DpL4mxZ7BAQQiPEyzx18oapu14aEUevMfJOd8q7Y9la8kE
 qRVJ61s58ijrBydplzxirGn8uRfmOmD31rSb0JJnhBhF3Kfe+A50oC9JVa+nMX/JiG2qdE/s
 9WdOvDzGvI+q/BZJJ+OMpqHlgrp1VBEwb4adxaYc7F7JRS3mKA3enOZsxPCC5xVQfk17mDBj
 Fj+7NZxjbSlnrLZB/GV3/3Z9NnwTLMldqeYdkGChYuL2eDh1jPL6adLUfqSfCCbU2Xx+a64Y
 v5Swe26O/oC9GumeaIle1qy5a5htdbpuZFAyQFoQCfCY1ixU+syKXiax8hf8KZKw+YB6wexX
 0uO/PhcOKmIZ5y5QAJAelJ9Y7TRz+wQlxnT8e8xfBfw6hho8efVSk5VJRSN1nBQdeMnLIM/z
 O49k8cK8Ajj2AEyO9OLg3kMpWSBJ3ANSYs9sZQeDNO5gwYn0AgaM5fdFjX38NeEbNAVahsmJ
 TqdhazjgbVAxxWdLypvRCaVhecE3MYAohFHylMGNm+loNudi69lxgBV/BQ2Uh9RkkdN3dVsN
 zU5LEZyP6iPoWtl3ZARQ2C2FghdLxSF4UitmUARnWjUQkT0BGzAKGoxZbSE8EwDqj8OezFa+
 PeTyXr/UCasd8b0h3NgVUlgov3lbNpw6gydx5z3Q5XbR8E3MWj/n6ujRWsUsB+2U8o+iXrOq
 fRu4OstO7bwMjQdovFjBoSXvVjKpMto+ICWrSldwZ40
IronPort-HdrOrdr: A9a23:a1fQgK9s4yW4rhDY73luk+E8db1zdoMgy1knxilNoENuHfBwxv
 rDoB1E73LJYVYqOU3Jmbi7Sc69qFfnhORICOgqTMyftWzd1ldAQ7sSj7cKrweQfhEWs9QtqJ
 uIEJIOduEYb2IK9PoSiTPQe71LoKjlgdGVbKXlvg9QpGlRGt5dBmxCe2Cm+yNNNW177c1TLu
 vh2iMLnUvqRV0nKuCAQlUVVenKoNPG0LrgfB49HhYirC2Dlymh5rLWGwWRmk52aUID/Z4StU
 z+1yDp7KSqtP+2jjfaym/o9pxT3P/s0MFKCsCggtUcbh/slgGrToJ8XKDqhkF+nMifrHIR1P
 XcqRYpOMp+r1vXY2GOuBPonzLt1T4/gkWSv2OwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze
 Ziw3+Zn4A/N2KPoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vFpLA
 BXNrCd2B9qSyLYU5iA1VMfguBEH05DUitue3Jy+/B8iFNt7TVEJ0hx/r1pop5PzuN4d3B+3Z
 W2Dk1frsA7ciYnV9MMOA4/e7rENoXse2OEDIvAGyWuKEk4U0i93qIfpo9Fo92XRA==
X-IronPort-AV: E=Sophos;i="5.87,247,1631592000"; 
   d="scan'208";a="58182591"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cwuyZ2PAXKJuXSfwb7d28rzSenscRyRKAWJv7NUzUlYYF8a0MSgOWZoYTWCNPOcrN08FR5H1m+NfSL1J5KFo3GSYaL/QzD5IGCgpBfmi/DzBUz3Q/LMwxzkz5jBX/FlJlNaTeCgyeB2fbGcv3NT7Hb3vn+VEuEFlnwML8P/QPuAZbHm1GYYWSEwvD6CAOXLtRdXyDK4J7V6KmOuGmfxprXZIPdXT1jhDh93pWeH4HXT6cTa8yNj8NvBa1as7pfHmUd5gdKk700RRFWAW5ykRd8NSDrpgW5AyLj/efHX9gmHF34ZA6p+3gPHeDGtG6y3of585ouymnZ6dt9gr40sSiA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MeklMwL1MzYLpBOSQucrFfty7Z2RRccaIAw5pIApugo=;
 b=Vwy26Dmjy0jsRD0ux5a/RjPgkz2tSKdHEn1y5cZp4Zk7lUx0aGKRJYXWEz+qiSPzK8kAg4DbjvOYM4GWPIjPn2Z35bCtgHsv9hL89QCDeiEkgc184HtxLerRXxQ0Onkjr+2vqT+Qlq+86dktB8FTkpBonFr4YmOLY2AQrWZ/3CcVdtzv+2HzGqs3smdz2Atcvl4yr7qptE0lC3b9q/S8+bsT6+hnyFKBjd1XIzWMkCMRGzE8x3X/OlQfi91/q3GDf/mQBtkBQWogW0WDSDp0zPRnqp6DKGrX4XnR+s8tC+kZDDQeIQdax7E3mDWHgYejQQ1X86rBFjXM8cQbEy3Saw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MeklMwL1MzYLpBOSQucrFfty7Z2RRccaIAw5pIApugo=;
 b=o2sUnf3F/M8nRvW/6syiUnMJ/v0ir80qSIb5FJXRoZhl56CNPp7uAPU41adXTYvA8ps0I5S4p+t1fxj25QVKrZTrvqhCEJ2IYh7re4/93zsr8Tos2cDWbr9sEoeA5uJVMoyN2ePxRuvcWEKoOusBZYNs+rHq9FKGO0p3oVllhiM=
Date: Fri, 19 Nov 2021 15:23:25 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Oleksandr Andrushchenko <andr2000@gmail.com>, <julien@xen.org>,
	<sstabellini@kernel.org>, <oleksandr_tyshchenko@epam.com>,
	<volodymyr_babchuk@epam.com>, <Artem_Mygaiev@epam.com>,
	<andrew.cooper3@citrix.com>, <george.dunlap@citrix.com>, <paul@xen.org>,
	<bertrand.marquis@arm.com>, <rahul.singh@arm.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Message-ID: <YZezXShKi1ofH5Aq@Air-de-Roger>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
X-ClientProxiedBy: PR3P251CA0026.EURP251.PROD.OUTLOOK.COM
 (2603:10a6:102:b5::30) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 19289efa-efa8-4b88-73a9-08d9ab6829b1
X-MS-TrafficTypeDiagnostic: DS7PR03MB5445:
X-Microsoft-Antispam-PRVS: <DS7PR03MB54452FE9230C13BAF8E4D5F48F9C9@DS7PR03MB5445.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: N4hdSWeV93ydTBA+hg2y3lvJQX1TYPqoBG/DrdyqGHlFmxiX8sxpXYgzRz+vAa0gK2hl1+m2vHcWjGHvjHHOIvtyKvSHFNSqZ6bGeLpsV/TSe7nTfVAAR94P+Bd0HUV8/LSvdq9xl0P50W0R/3hpjT3fYf4u2Pjf9u537b0xvPBhiv4FsfrtJqz4u0qmccnM8htxEC00b+R73T3cVt3LY+p7xDXplctCM4rAVloEqTsHS0ze9IFUvm/9nZiRke7Kd60wrfbZ0FvpIu22mcoWwCwRerrpegd79usO/5BxO7Nvpb3McAUKI0aQcHOatgmzRuuaWCj71WuCM1PHnN/VLGbR4jfqySVZQV+ByHJ5De/rFQjtpmlY3gBru5HKRyGMQdXOXAIevaMxgVUMniOW+v/lLUkxe9uj/nMk/36/paZ1Atu55PY50AYAQHIu2CgrQIQE1EEXtxPTroolS4hpFToH7kxik+pow+yLcKGVD4Bee97KPLuSp3E0I2kxOe5hxTvXm9/4BmC2Y4wiP+z1XKldFUmvZKYm5sH/s4hkf6tvcHY6FaGhEmMdBr+TQyAhOeAJ9dA7vtLaK76bSExyniFH8iwIkIfB9OujwT+HHG74fK5UwrY93MbRm0NuULQFSGDWVWHXt++E+RJjNvdXeZfINZhle36n6FwupZl+/Yuj/knPAu5gluBkTuN6tqhe+pKfyG2PYlVC0ZG15q7T4gP8qOpetnHQlNK8tZNc3nE=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(9686003)(6486002)(83380400001)(2906002)(85182001)(956004)(6916009)(38100700002)(86362001)(186003)(33716001)(82960400001)(508600001)(8936002)(966005)(66556008)(66946007)(66476007)(6666004)(54906003)(7416002)(4326008)(53546011)(26005)(5660300002)(316002)(6496006)(8676002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bDJpUmozL1pJcWpuZnpoRDRXNHY3ZXBXWXNWcG5mMGplQzVXQWcvVmdNdStz?=
 =?utf-8?B?NkpUa2FmTG90MG5DNUN0Szc0dy9nb2JLK3VhNGZsclJRVGgrYmtqVzY1dUlo?=
 =?utf-8?B?Z0J5Wm9RZHJ5b0wveU9kbDluNWRtY0QwWFJSZEpWYS82U1lETHg0OHdoNUR5?=
 =?utf-8?B?bklMQlhra09NakhGTkY1cFZHYVAxZk1YYTJaYzI2MktONTVnZVVqT2xpVTNx?=
 =?utf-8?B?Qk1NQ3F3eXE4NzlSUUpOUkJDN3pZZXFvblBiMk9zdjFCSWxFZzNyYjFDNDda?=
 =?utf-8?B?M0NDdkxIak9nM2F4ZGxieEo0NjVqZ1o3WWZ3eVg2R3pUazl1YWs3TTRMV212?=
 =?utf-8?B?ZllDS3drMGNaZk01dzFEc3lOVDlhQStVazFkQjNMWW1nbW9KVisxbWV2NERS?=
 =?utf-8?B?enY5SUxVOVhGVUJzeUE0UEYvd3JCaUhNOWxFeGdMOHdVOU1JaVNtT3hHVjhX?=
 =?utf-8?B?bWJmR285VDNKVXZ1c3NoZ1BtaHg3RU45emdqOVRaNkkrK3lYbGZpNEhLc2dp?=
 =?utf-8?B?S0M5UlBHR2YwRjEyVWZmRitXdTcwenB3S2hGYmdVc0Z3Wm4zNmpJNHFtQlcz?=
 =?utf-8?B?ZzRSTkUrYkFZcFR4VDlyQUVDeTRyem5OLzlKU2R1UmR2cW5CR3hLdG15Tlov?=
 =?utf-8?B?QW9KLzVKZWxubmdxSjN1TDdwdk5icEluWHByODNVTmhuQzFYcnY1Vjcxb1h1?=
 =?utf-8?B?SXpjQm8xeEpZNUxvV2pLTzJscUd1aFBTT044RUJXQ3l3R3JuSlNGSGU5a2o2?=
 =?utf-8?B?U29OWERWMk4ydEswUlpadzUydVdJRkhHdHJlN0hFa1pTT2FkdGpYR2JoY0JM?=
 =?utf-8?B?VzVNcU4yeU9OdUUxdFJkKzgvU0w3TnQ5UFI3c1ZkMWVtWmdETWxNM0MxUWcr?=
 =?utf-8?B?dGdiVTV4bmJwZEpabTJhcTBKbk9XOG9mZTdyYVhiYkZ5dmdYN0hWMWQxdVUw?=
 =?utf-8?B?cUE5dElweVdCbFNPQzQrYjBIWXRWYTJpUTJJRXoyWHVuOUFTVGd0RkZ0MlBK?=
 =?utf-8?B?N1RpWi9Mc0Q0M2RTM3VmVXJESk10ejBaOEZjRDRJZjNDSTdQd0Z1Y000VVJH?=
 =?utf-8?B?b280c04yMW9xZERJazhVbUxqUU16cDU2b1IvLzR2clBpOGxQUHl2cXFnMnJ5?=
 =?utf-8?B?Z0xUcU1YcGI0VjdnN3JGOWhOMDJ2MTB1ZThLRFBEZ3FHRXVwUnd6Si81WlZz?=
 =?utf-8?B?YUsyQWhhdFVPd05STmJ2Wkl0YjB1cFRBRDkvekxFUGkwV1BEMnhxbjRxUmo1?=
 =?utf-8?B?S2NFVjM3aTRCV3kzNDZTeEg0eVovS2JBOVBPeFpMK3JJUHhJbkhqb0s1NklR?=
 =?utf-8?B?eWx3NGUvRXdKYnU5cHdCQzdnY1NzTnZVaTlUa3hGS2VVYWRCU2MxK1lvd3Qr?=
 =?utf-8?B?b0dZdVdaQUJKWUhHeEdNNnNVbnhZbFAweVZwU3JrWXNEVmhhMjVTcjRuVEZn?=
 =?utf-8?B?cUFDdnhOSjQrbmlYTStUR3VYbFdrdVJNUm9leGlEZDdtUXpBcHFENVFLOGhJ?=
 =?utf-8?B?V1Y5di9rSXpLTFVuR1Uxd3N5Z0hzSWVpcjQ3YjQ1bkhVU0ZMV1oySWxONUZp?=
 =?utf-8?B?R3RXTzFnNTZqK2w2Q043bW9XNlJkWkdYT1RQRFZJVHdFenU1T1prMUVjQjIx?=
 =?utf-8?B?b08wazlxaGVlVk42VXBlMEtySmw2VTdISXlBUDMxaGpoTFVzblQvdGpjNldv?=
 =?utf-8?B?NStsNnM3SVBVTjR4dlp1MkU4QXhjbnpzNCtRMlU5OTBXUVpRS0pvUFlvbVN3?=
 =?utf-8?B?djNZMVdKU3lJeEtPdWR4ZjE3MmZGaDhMQzcybWM2cFlsQ0ZKa0l2cHQ0a1hK?=
 =?utf-8?B?OTJydmFyOHVmZjZxeldjVWI4S3ZMSlhrSy9qOHNaT0ZkZ1BzYkd3bHFPMWNV?=
 =?utf-8?B?TUczVDdEdTZzeldPa0ZEckpqNlRpUDlBTmZnQ2pQakJxSHpaS1k4UVA1bFB6?=
 =?utf-8?B?OFYxRHloa0RkM2hrNERJSVdwUEt1SjVEWk14VWx1b01HYlJCTkxETFF3ejdz?=
 =?utf-8?B?YWs2Z3N6RVJCSXV0NlZBNTBFenczbHdyeXJRZlBCZkhBdGlobnlnTlRwVVlW?=
 =?utf-8?B?elQ4c0NpTTNDYUFUNFhFTEVSTndlOEFlQnloN1VlQnFhbWxxQTZLUS9JLy9V?=
 =?utf-8?B?R1l5WmhYOG4yQmdOaGpocEFQdC9pdisycnB3RE1rV2xsVFBOaC84SmpibFlQ?=
 =?utf-8?Q?YRgXojLYBOfLggg36H5502s=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 19289efa-efa8-4b88-73a9-08d9ab6829b1
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 14:23:31.5443
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kXZGMS61FgAziwiBZszxs7otMgucdgfOuCBeimkEYcsGHyt/r+J4ElwXQFKUHwTNxgfaXxrSXP6L1WFFAyOLIQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5445
X-OriginatorOrg: citrix.com

On Fri, Nov 19, 2021 at 02:56:12PM +0100, Jan Beulich wrote:
> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> > From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> > 
> > Hi, all!
> > 
> > This patch series is focusing on vPCI and adds support for non-identity
> > PCI BAR mappings which is required while passing through a PCI device to
> > a guest. The highlights are:
> > 
> > - Add relevant vpci register handlers when assigning PCI device to a domain
> >   and remove those when de-assigning. This allows having different
> >   handlers for different domains, e.g. hwdom and other guests.
> > 
> > - Emulate guest BAR register values based on physical BAR values.
> >   This allows creating a guest view of the registers and emulates
> >   size and properties probe as it is done during PCI device enumeration by
> >   the guest.
> > 
> > - Instead of handling a single range set, that contains all the memory
> >   regions of all the BARs and ROM, have them per BAR.
> > 
> > - Take into account guest's BAR view and program its p2m accordingly:
> >   gfn is guest's view of the BAR and mfn is the physical BAR value as set
> >   up by the host bridge in the hardware domain.
> >   This way hardware doamin sees physical BAR values and guest sees
> >   emulated ones.
> > 
> > The series also adds support for virtual PCI bus topology for guests:
> >  - We emulate a single host bridge for the guest, so segment is always 0.
> >  - The implementation is limited to 32 devices which are allowed on
> >    a single PCI bus.
> >  - The virtual bus number is set to 0, so virtual devices are seen
> >    as embedded endpoints behind the root complex.
> > 
> > The series was also tested on:
> >  - x86 PVH Dom0 and doesn't break it.
> >  - x86 HVM with PCI passthrough to DomU and doesn't break it.
> > 
> > Thank you,
> > Oleksandr
> > 
> > Oleksandr Andrushchenko (11):
> >   vpci: fix function attributes for vpci_process_pending
> >   vpci: cancel pending map/unmap on vpci removal
> >   vpci: make vpci registers removal a dedicated function
> >   vpci: add hooks for PCI device assign/de-assign
> >   vpci/header: implement guest BAR register handlers
> >   vpci/header: handle p2m range sets per BAR
> >   vpci/header: program p2m with guest BAR view
> >   vpci/header: emulate PCI_COMMAND register for guests
> >   vpci/header: reset the command register when adding devices
> >   vpci: add initial support for virtual PCI bus topology
> >   xen/arm: translate virtual PCI bus topology for guests
> 
> If I'm not mistaken by the end of this series a guest can access a
> device handed to it. I couldn't find anything dealing with the
> uses of vpci_{read,write}_hw() and vpci_hw_{read,write}*() to cover
> config registers not covered by registered handlers. IMO this should
> happen before patch 5: Before any handlers get registered the view a
> guest would have would be all ones no matter which register it
> accesses. Handler registration would then "punch holes" into this
> "curtain", as opposed to Dom0, where handler registration hides
> previously visible raw hardware registers.

FWIW, I've also raised the same concern in a different thread:

https://lore.kernel.org/xen-devel/YYD7VmDGKJRkid4a@Air-de-Roger/

It seems like this is future work, but unless such a model is
implemented vPCI cannot be used for guest passthrough.

I'm fine with doing it in a separate series, but needs to be kept in
mind.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:24:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:24:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228050.394537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4o3-0002uf-8x; Fri, 19 Nov 2021 14:23:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228050.394537; Fri, 19 Nov 2021 14:23:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4o3-0002uY-5T; Fri, 19 Nov 2021 14:23:59 +0000
Received: by outflank-mailman (input) for mailman id 228050;
 Fri, 19 Nov 2021 14:23:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oyXj=QG=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mo4o2-0002Vm-H3
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:23:58 +0000
Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com
 [2607:f8b0:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54ae7daf-4944-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 15:23:57 +0100 (CET)
Received: by mail-pg1-x52a.google.com with SMTP id r5so8789149pgi.6
 for <xen-devel@lists.xenproject.org>; Fri, 19 Nov 2021 06:23:57 -0800 (PST)
Received: from ?IPV6:2404:f801:0:5:8000::50b? ([2404:f801:9000:1a:efea::50b])
 by smtp.gmail.com with ESMTPSA id
 l12sm3181520pfu.100.2021.11.19.06.23.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Nov 2021 06:23:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54ae7daf-4944-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:subject:content-language
         :from:to:cc:references:in-reply-to:content-transfer-encoding;
        bh=dvjMlZBI3ldb1jXqYwhDV7AWs1lj5LCSS81ZY56RgHg=;
        b=lD29CjzOk03sgDLP+GNvSpxJtgVkW5rJkK+91U6AQudAzMZxrwkaky9OEq6jf27Gw7
         +El3go4e6gBFGCWthIzBWcaH6MtynoVd2Asx0s8lF4AHh9KTCrYFWAivyI8ee0X1Vv36
         V2FQuAVabQQBAbOL0fIquaORLXE6V2pQuWoxP4p8Bdmk66ffMTRypmvZJws3ZQPoiG7R
         xBnlvWtgNAT1CZU5CVKw8D3+cafHZ/lwicgnA/RP75ZpQaa+0T4cnXOpdWgAZYBmS+Ds
         D+JWFTqNXrZl80kk+n0WgCyZhptSAvKOJXiZ1wT44+Ikfkw7mB3QMLEop9ypqPjQJy3c
         M8pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:from:to:cc:references:in-reply-to
         :content-transfer-encoding;
        bh=dvjMlZBI3ldb1jXqYwhDV7AWs1lj5LCSS81ZY56RgHg=;
        b=2csoTpcW3m/j66KpisCBNio7OFfTXZiqOch34DHcrIQ+SlwlzO9OIGI5QWT3YvcfxP
         8eudQwGFj76gkrWDztTWhnSC3DtOh/wtcsHK/HcmpY2aDSHbSloroc+DgfDMNfNs0Zb5
         syo9HP5h4KB+wSTZTrMMa7udqpBeA8K/egnxhsnDp7EOIWLYPsgmYNrX7xaGrm2vzbhp
         1x1FUFnYHQvSE0FjnwzLh8+aQsweN+CZGiGAGvvmd95TN6La4vH2jSlmNPsNmxcSH6N8
         yvvcf37/EAJYBAa2IJ4IzncBiqIKKF8C7ptOt2Pkv3cTuHSbtecpnn1t9WF+QpT7LQwS
         N+/Q==
X-Gm-Message-State: AOAM530ZiSk08MjlZLzIupjY4KqaMJpcYPnBw3Sl2JIWZ+XrdVhjq5vs
	TN3Wymu5m4gbP3zhHDnx5HY=
X-Google-Smtp-Source: ABdhPJzKRBXlcGt3waRWzaH9R47/6SD0/IgoWcAgajHv/fxOJufbEPJI6hNEQ9SuwB+/pum/5oX3UA==
X-Received: by 2002:a63:b54a:: with SMTP id u10mr17506905pgo.69.1637331836308;
        Fri, 19 Nov 2021 06:23:56 -0800 (PST)
Message-ID: <f7fcb4d5-fcdd-0d24-60ed-62c27ed8e2d9@gmail.com>
Date: Fri, 19 Nov 2021 22:23:45 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 3/5] hyperv/IOMMU: Enable swiotlb bounce buffer for
 Isolation VM
Content-Language: en-US
From: Tianyu Lan <ltykernel@gmail.com>
To: Christoph Hellwig <hch@lst.de>
Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org,
 tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org,
 hpa@zytor.com, jgross@suse.com, sstabellini@kernel.org,
 boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
 sthemmin@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
 joro@8bytes.org, will@kernel.org, davem@davemloft.net, kuba@kernel.org,
 jejb@linux.ibm.com, martin.petersen@oracle.com, m.szyprowski@samsung.com,
 robin.murphy@arm.com, xen-devel@lists.xenproject.org,
 michael.h.kelley@microsoft.com, Tianyu Lan <Tianyu.Lan@microsoft.com>,
 iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
 netdev@vger.kernel.org, vkuznets@redhat.com, brijesh.singh@amd.com,
 konrad.wilk@oracle.com, parri.andrea@gmail.com, thomas.lendacky@amd.com,
 dave.hansen@intel.com
References: <20211116153923.196763-1-ltykernel@gmail.com>
 <20211116153923.196763-4-ltykernel@gmail.com> <20211117100142.GB10330@lst.de>
 <c93bf3d4-75c1-bc3d-2789-1d65e7c19158@gmail.com>
In-Reply-To: <c93bf3d4-75c1-bc3d-2789-1d65e7c19158@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/17/2021 10:00 PM, Tianyu Lan wrote:
> On 11/17/2021 6:01 PM, Christoph Hellwig wrote:
>> This doesn't really have much to do with normal DMA mapping,
>> so why does this direct through the dma ops?
>>
> 
> According to the previous discussion, dma_alloc_noncontigous()
> and dma_vmap_noncontiguous() may be used to handle the noncontigous
> memory alloc/map in the netvsc driver. So add alloc/free and vmap/vunmap
> callbacks here to handle the case. The previous patch v4 & v5 handles
> the allocation and map in the netvsc driver. If this should not go 
> though dma ops, We also may make it as vmbus specific function and keep
> the function in the vmbus driver.
> 
> https://lkml.org/lkml/2021/9/28/51


Hi Christoph:
       Sorry to bother you. Could you have a look? Which solution do you
prefer? If we need to call dma_alloc/map_noncontigous() function in the
netvsc driver what patch 4 does. The Hyper-V specific implementation
needs to be hided in some callbacks and call these callback in the
dma_alloc/map_noncontigous(). I used dma ops here. If the allocation and
map operation should be Hyper-V specific function, we may put these
functions in the vmbus driver and other vmbus device drivers also may
reuse these functions if necessary.

Thanks.


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:25:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:25:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228059.394549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4pw-0003li-TG; Fri, 19 Nov 2021 14:25:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228059.394549; Fri, 19 Nov 2021 14:25:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4pw-0003lb-Ol; Fri, 19 Nov 2021 14:25:56 +0000
Received: by outflank-mailman (input) for mailman id 228059;
 Fri, 19 Nov 2021 14:25:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo4pv-0003lR-EE
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:25:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo4pv-0000xV-DW
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:25:55 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo4pv-0000ut-Ca
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:25:55 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mo4pr-0005eV-RG; Fri, 19 Nov 2021 14:25:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=KHW3S0IHaNV919e5kFrVOklnNu0dgoO9Q2dd+EFUpDs=; b=5o/yO5/OuiP153Hbs0ovejMc7U
	dfcLuFM5NERyF5tDRoIYNT3BVEaTMLAO6AfZnxi0YQBe/UJK2AUEeAtixxfSO8PeI7My7R4zy6HVx
	KJ38i/z4QNf8XARC4r//70tRs3UOwosjOf1jKGgxeVFAcDiJex5TTNuFl5XcZMEdDS0s=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24983.46063.379168.151942@mariner.uk.xensource.com>
Date: Fri, 19 Nov 2021 14:25:51 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Julien Grall <julien@xen.org>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH 0/7] (mainly) xz imports from Linux
In-Reply-To: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("[PATCH 0/7] (mainly) xz imports from Linux"):
> While going through their 5.15.3 log I did notice two changes, which made
> me go check what else we might be missing. The series here is the result.
> Linux has also updated zstd, but that includes a pretty large change which
> I'm not ready to deal with right now. Them moving closer to the upstream
> zstd sources is certainly a good thing, so I suppose sooner or later we
> will want to follow them in doing so.
> 
> 1: xz: add fall-through comments to a switch statement
> 2: xz: fix XZ_DYNALLOC to avoid useless memory reallocations
> 3: decompressors: fix spelling mistakes
> 4: xz: avoid overlapping memcpy() with invalid input with in-place decompression
> 5: xz: fix spelling in comments
> 6: xz: move s->lzma.len = 0 initialization to lzma_reset()
> 7: xz: validate the value before assigning it to an enum variable

FTAOD I think none of these are critical bug fixes for 4.16.
Please let me know if I'm wrong.

In theory 4 is UB but in practice the result is presumably just wrong
answers.

Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:26:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:26:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228063.394560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4qa-0004MB-80; Fri, 19 Nov 2021 14:26:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228063.394560; Fri, 19 Nov 2021 14:26:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4qa-0004M4-30; Fri, 19 Nov 2021 14:26:36 +0000
Received: by outflank-mailman (input) for mailman id 228063;
 Fri, 19 Nov 2021 14:26:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W8RP=QG=epam.com=prvs=19578d545c=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mo4qX-0004KH-T2
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:26:34 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b0d0dd9b-4944-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 15:26:32 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AJDY6l4008973;
 Fri, 19 Nov 2021 14:26:28 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cecwvg5wk-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Nov 2021 14:26:28 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB6963.eurprd03.prod.outlook.com (2603:10a6:20b:2d5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Fri, 19 Nov
 2021 14:26:21 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 14:26:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0d0dd9b-4944-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bI09sUs044c69kSVbqSq2hVqfYVUcoXzmD0sSCZ7vDjzzmxr4grbg39GIqkXQkxZVlo4NzrGtEj4qLHJx9iEDrUezvxt1Z5HXYIO3UunYWhM6XKyQ+/8tf993I+EYZED6U/3LtBjVpWDU1Mi9IKUQDVa6kjpuuxcHftoj7ap/KSCkv0RDcVuoM7bRXUmPDkBPE4nk3FMCCgnnXyMtQFi2hV8OWQBIVVEyLiOm+H6sa1RYlYj93EFByzgLguPBw7WpPfnhlcsfZidHWnABU/gws4LkEw7Esq34DKfQejBUGVUkg73gyc8H2uIPLs66Vk6c03ZgccfpWUVzXmovOmiRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=60NF2BieTyhpK8Bm9ETN3dsW1ZWkb6J7AwkP/4TvKLM=;
 b=RbhWHf4f7p8+44u39D4WpNgYUpFWPtLkRfP93mnZ+YSpl+MU+5/6o+4xUiTAzZINExemrlSg4MlM1ilvNYU7Dnkae+eD2NRmNKl2R7itcVok0Ijqo1Tsf7ngHZzTGDqj1/OUsNrtbNTFLAWhkgJdrJtvT2ccGmkOcCa7gn+YgdzufyTYAnE2wAlpLYYRYlxoPzYAAq82LfXYPsjxVRrYoobTpWmwQ0slYOAz3angS4dctNQN+QQ8xT4ez4k2+j5VvnJIE9//WUJJhvL3Fk95viDnbIIBpMb4Oc8rp/8PXQZVKme5PEosH+vxnpfaXNBivkIT/HhV06R+Pb4tn5Njeg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=60NF2BieTyhpK8Bm9ETN3dsW1ZWkb6J7AwkP/4TvKLM=;
 b=ba4O7aWA/De7euzNL7QTubx4wDZC/rdts/C4lgEUoII/VPYem1GQBs5olWocX5UWQU4cPTaG9QvQCyuivF4mCmkXqF6N63aCDOKvyK0kb1kQ810HX0b7q3W8ZhgIjVr63/vunTkylzFoLMc9X58wIt146sY89CMX6voGonAWTAw6c80bdDUm9jStMn0FIcqJTCZQbjG3kHUDBw96PkGF6bPnNgOHSgmKbCCzD93aV3b9/Nv7OWwxgpWz3hMczV6AAH+pq1a/jKKwsJ2HOi/1qNaoqijtRcDZ8ML7YDh3ydKYTCqALK0Z5BRJ2Ix8zcgM4gMHrBg3KIFDdZ/NNJYenQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        Jan Beulich
	<jbeulich@suse.com>
CC: Oleksandr Andrushchenko <andr2000@gmail.com>,
        "julien@xen.org"
	<julien@xen.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Thread-Topic: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Thread-Index: AQHX0hJHqVSXqEokpUi6WhDjT3q/RqwK9kcAgAAHm4CAAADSgA==
Date: Fri, 19 Nov 2021 14:26:21 +0000
Message-ID: <28ae380f-703d-e266-a30d-d4d59615f647@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
 <YZezXShKi1ofH5Aq@Air-de-Roger>
In-Reply-To: <YZezXShKi1ofH5Aq@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 4c7888ad-fd5a-4c6e-17d0-08d9ab688f45
x-ms-traffictypediagnostic: AM9PR03MB6963:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB696341AA7015208F249723B4E79C9@AM9PR03MB6963.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 ohm0KxX2WPxQjNPod1FQUlrRv0+Gl1nJkmp83+uMnaAGz4VaeAsUtWpslneGZIhnQB5+pZsdrkrkFHe4g7jZitjKP6Z4xIVr4zkx48V5gZ0wiDknw8FwuvFAJMzEhi/ooriiTQ3JwcfhsgRNTwFVsRUHYPnqgiDSsbl5rkvccyxyts7iWYroCFoCGqvOd96SBDvX2LSU5YiKnQzqJXuKSTozUxS6Cjc4S6UmpjPBswSLOjFKU8MS1RyY8gOzj7PdH/Gc3FIERjmP3h+LErTIqUHw2v7ixB/AYYAgJbrsS6gtCxzJ1msTlYWc9MGg+0Ei8H0oYIYPzrNDvAU/Z5/rxovL5mwiRJQFpq1Z2yY1HHF6fAThcZ8zUaS7kXaVJVcxt+eDR//JRqvzz0n0rj6ggVC1S72JtCOJPJl/8W24d4OWqwe8USGuQMgQvnqrstAEnbsYvCr7UDH9bMMqaaAjrGxj+x1JEj28vvFGSYcl5NqfRDDe2NGtPbzHel7APgK/iDtze66rzy3LhcpBrmBEbJ7T9VSNSbcBUZpbPvuDBHk6QfwFERE/D0IlX9btLqUb1iRANXShtE6Q9E4v5Wd+CuCB4hrgt+Cc7t2lR+VubvDoTpN8pTGwFV/XhgKzS78Oa+CUyl8wGd6w5qDu68tn9Fy/by3C0X1rUkHL89ec70NwA/vMHWh7F53ZWQUBMEuSgrdfjbJlVHOdltTE+U/xJlMMKDcPP7bpmBClp13vq1GcGsNLCcOdHpgWfdPWMaXcHRVI3CpOQOyCfGgloak1ugZYPPmwPD9I0QNsnPI29smabWjpT1Gq01sYKJvPmVmR4gfuWKTWVpgRCSmGhwSNcg==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(83380400001)(110136005)(66556008)(64756008)(2906002)(316002)(54906003)(36756003)(38070700005)(71200400001)(4326008)(66446008)(31696002)(6486002)(122000001)(8676002)(31686004)(186003)(508600001)(66946007)(2616005)(66476007)(91956017)(6506007)(53546011)(76116006)(26005)(7416002)(966005)(38100700002)(86362001)(6512007)(8936002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?ZnlXdUlvRExRZmlBcXlXN29HeGFsUm5yKzVRUlhIUzkycUcvSDI0S3ZjYnlZ?=
 =?utf-8?B?SWZUalVTQmNlN1MwUkdYanlJTDJkQjc0RVArUDIvaUlBNDFFcXc5eG5sdHZm?=
 =?utf-8?B?SGRsOC9nWmxtWjl4VEFKNWdtbWFJTFQ4eVVGeWlFUkxXWDFmek82c0YzOXRU?=
 =?utf-8?B?bDI2YjJiNnBzdkp3bDh2YVlSNWxxYnY3YUdUSk54ZHRoTDBLeGZ3bEtxREph?=
 =?utf-8?B?Vk1ZTjhNR1I5QUI4UUhRTWZsSS92a2lxMUlWK0RPY2JISkh2dzZ1RWtlK3J3?=
 =?utf-8?B?QXhyMytUNzk5SG43WG8wR3RPejlTaEFRSzZkNnY0R29jWldpWUtSUThQdHF4?=
 =?utf-8?B?K2xEL2xmT293cTYxU01TTUxweUc0TFNxOXpLdko1dFo0SDJFdG1sTUt1SmFB?=
 =?utf-8?B?L3pacGd1cnNzSmcveC9xRThqcTRVNm9VNlN6b1RNdHlycE9lem9FUnUyaFFG?=
 =?utf-8?B?MDRNQlFkNlIzdSs0VmppZUlTTll6dUI1YnVRdThXUG8zQm1jRnYrVEFiNFNv?=
 =?utf-8?B?bkRtS3lFSFQ1aU9Jb2NNZUw4bUZzYkVXUEFpSDBhbmNDYmgwOXRsWXd6bjQ5?=
 =?utf-8?B?M1ZPd1Iwa3dQL0dkbzVsV2hrSlBubEFwTnhFdnR3NWZ6VE13OVJ3MEs3WG03?=
 =?utf-8?B?clh3amFTQ2pFN3pYVkZldlpzY1ZQR0dQRHJNQ29EeVBqZGFRWFhMN01hMVpv?=
 =?utf-8?B?cnRGSjF0MHZBbDNvM2duc0UxcGwrUDJPSXRndkRwdFQxclRIMHZ1RCtuQXdC?=
 =?utf-8?B?S3NSYnY1cFpxcnRkVE9rMlV6UEtrcjJlOHJGMVpvU0dObmUyQ2xiV2JEejYv?=
 =?utf-8?B?d0NDSE85RDBhQWwvRW5vVW1DOFlPaWQ5RzVPVXBkYUU3bGQ2cDdWVDBHaDB4?=
 =?utf-8?B?ZEowbWdiY1pSZkFzWWhkMmtHdDdvTWYyVzdMZmt3MWJ0aGtra0ZtYUlreTFB?=
 =?utf-8?B?YnkyRkVkT0htUHdjRlZ1ZHA2M01SUFhickUvN2lERFBNb2hWeXNYVHIvT3dI?=
 =?utf-8?B?bjR1aldhQmZEenUwSWlReXhINU9iTjYwaEU1ZGU1RngreWJDaUJISzJ0N1F5?=
 =?utf-8?B?ZG41SEt5QVlZZ2tWeUsvMHF5dHpwSFc0SWYwN1VWclVJYlRpOFNZNjhoc29q?=
 =?utf-8?B?RnNmcE51NDhoRkJnV25QKys5SVBFclNET25Jc1ovek92RlovWjdCcjBxakFx?=
 =?utf-8?B?alF1dXAxQk5aUDcxSFhyS3B2S29Xc1ZmRUJVR1p1dmlJb2ZuV3N1U29TRHAr?=
 =?utf-8?B?enlabXBMalFoOFdwT2hlcVo5SlNKVG1rMkpoeHJVWjB4WFRnczRGTTdWNG5k?=
 =?utf-8?B?aXpZN09VRVNYN1orS0lRYzJjU0dRTStjRG9BNlcyelJEa1Q0TkIwRGVZaUZl?=
 =?utf-8?B?Y0w1TzV0Q29RUjVDYkNlNmZXZExOL0wwZ0hPaEdSSGo0V29RTkYrN1JsSmVp?=
 =?utf-8?B?NnlPQUtyVmthZk96NUVxaFZMQ2lSRzNpclZVa1AzY2QySnRzYnRFQ3AyTitl?=
 =?utf-8?B?dlV4cTIyczBISmc1cUFVeEFXQkhsMWxvTEhXUzVZSlBRRXlMTDlTV2dYOUR3?=
 =?utf-8?B?aG4vY04ySHFvWGlpOTBycTZvYmdPMzlnMUtXeElndWlCZFNocE1KZWVyZElZ?=
 =?utf-8?B?RHphZncxZW81bDdSVm5BbEdNb040RWV1cW1mWjRMSGNnSkkvdGlKRXdqelFk?=
 =?utf-8?B?NlVhNWJkUXdMT0dZNmpXRkFrWFlFdG5QaFk0dHR3UnZiVnZmUm5XVGZGcERH?=
 =?utf-8?B?N0NqOSs2T3BrTmZHbURxTTVvWmNObSsrWFRSbzhwVVRpVzUzNnF1eFMvU0RT?=
 =?utf-8?B?eG05TVRVOHRJblJzd0JWc0lZc1dRRUFEZEtBWmpuRjZpOERTNXBlT1hvenRI?=
 =?utf-8?B?Y0JrK0E3RmYrejRZVlN1YnlpckI4MnQxeGo5T0R2L0x2cDRRNElxaEJIUUFT?=
 =?utf-8?B?d1htQzc3Vzl6UEZTNkVOQThuUlV6VjlrV2VrUmdmUEErL1hzLzYxb2ZzNnVu?=
 =?utf-8?B?empsMVJoQmVud1g0TWxjYTZnUzJQS3NIdXE3bjlySzFoN3EvSWJFK2dBNnph?=
 =?utf-8?B?NW5HWVBkL0xDRWtpV2JxQ0pBUnBMM25jcjlITjcwSGRJandQbUJCTCtFeVl2?=
 =?utf-8?B?QWVLakVTWmNybkxJWUUrcWxaS2NxSGhSQmhrS2JZU296NWpCakdJOXJtclRq?=
 =?utf-8?B?Z3VrTVh3Nzd3d3VEWjEzdDJFNFlLeEdKUURGWldFdWNTV0NUOWpwVW0zTXFa?=
 =?utf-8?B?dXlnanNFQ1RRQWk1Nmg5dy9BbEJtbk9tYUlXYnRlbk94b2lZeENIWEcwelVw?=
 =?utf-8?B?emQxTHZJbHVwOUpwR0RoSW9TeW1kblJxQW1FOWc0NjJSYmttUTllQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C15940C801799D449DDC105194E61BA1@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c7888ad-fd5a-4c6e-17d0-08d9ab688f45
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 14:26:21.6511
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: sAmQJbIOHuqF9r8f4J4B8YCVDqUbpdMTIUCdWExm/jI/BdQhk34i1+v+IbwjfJeMnzrqNUFjxdepJVjwqQLSRXgJBG3QNvBBvkngvrQedaleW0Mjh4VRKUjFOG8dI/mv
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6963
X-Proofpoint-GUID: 5p_S3KcqK1dbBZAhukN6bH_X6Wx_Q5V6
X-Proofpoint-ORIG-GUID: 5p_S3KcqK1dbBZAhukN6bH_X6Wx_Q5V6
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-19_09,2021-11-17_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0
 spamscore=0 mlxscore=0 suspectscore=0 phishscore=0 lowpriorityscore=0
 bulkscore=0 priorityscore=1501 impostorscore=0 mlxlogscore=499
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111190080

DQoNCk9uIDE5LjExLjIxIDE2OjIzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBGcmks
IE5vdiAxOSwgMjAyMSBhdCAwMjo1NjoxMlBNICswMTAwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+
IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+
IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0Bl
cGFtLmNvbT4NCj4+Pg0KPj4+IEhpLCBhbGwhDQo+Pj4NCj4+PiBUaGlzIHBhdGNoIHNlcmllcyBp
cyBmb2N1c2luZyBvbiB2UENJIGFuZCBhZGRzIHN1cHBvcnQgZm9yIG5vbi1pZGVudGl0eQ0KPj4+
IFBDSSBCQVIgbWFwcGluZ3Mgd2hpY2ggaXMgcmVxdWlyZWQgd2hpbGUgcGFzc2luZyB0aHJvdWdo
IGEgUENJIGRldmljZSB0bw0KPj4+IGEgZ3Vlc3QuIFRoZSBoaWdobGlnaHRzIGFyZToNCj4+Pg0K
Pj4+IC0gQWRkIHJlbGV2YW50IHZwY2kgcmVnaXN0ZXIgaGFuZGxlcnMgd2hlbiBhc3NpZ25pbmcg
UENJIGRldmljZSB0byBhIGRvbWFpbg0KPj4+ICAgIGFuZCByZW1vdmUgdGhvc2Ugd2hlbiBkZS1h
c3NpZ25pbmcuIFRoaXMgYWxsb3dzIGhhdmluZyBkaWZmZXJlbnQNCj4+PiAgICBoYW5kbGVycyBm
b3IgZGlmZmVyZW50IGRvbWFpbnMsIGUuZy4gaHdkb20gYW5kIG90aGVyIGd1ZXN0cy4NCj4+Pg0K
Pj4+IC0gRW11bGF0ZSBndWVzdCBCQVIgcmVnaXN0ZXIgdmFsdWVzIGJhc2VkIG9uIHBoeXNpY2Fs
IEJBUiB2YWx1ZXMuDQo+Pj4gICAgVGhpcyBhbGxvd3MgY3JlYXRpbmcgYSBndWVzdCB2aWV3IG9m
IHRoZSByZWdpc3RlcnMgYW5kIGVtdWxhdGVzDQo+Pj4gICAgc2l6ZSBhbmQgcHJvcGVydGllcyBw
cm9iZSBhcyBpdCBpcyBkb25lIGR1cmluZyBQQ0kgZGV2aWNlIGVudW1lcmF0aW9uIGJ5DQo+Pj4g
ICAgdGhlIGd1ZXN0Lg0KPj4+DQo+Pj4gLSBJbnN0ZWFkIG9mIGhhbmRsaW5nIGEgc2luZ2xlIHJh
bmdlIHNldCwgdGhhdCBjb250YWlucyBhbGwgdGhlIG1lbW9yeQ0KPj4+ICAgIHJlZ2lvbnMgb2Yg
YWxsIHRoZSBCQVJzIGFuZCBST00sIGhhdmUgdGhlbSBwZXIgQkFSLg0KPj4+DQo+Pj4gLSBUYWtl
IGludG8gYWNjb3VudCBndWVzdCdzIEJBUiB2aWV3IGFuZCBwcm9ncmFtIGl0cyBwMm0gYWNjb3Jk
aW5nbHk6DQo+Pj4gICAgZ2ZuIGlzIGd1ZXN0J3MgdmlldyBvZiB0aGUgQkFSIGFuZCBtZm4gaXMg
dGhlIHBoeXNpY2FsIEJBUiB2YWx1ZSBhcyBzZXQNCj4+PiAgICB1cCBieSB0aGUgaG9zdCBicmlk
Z2UgaW4gdGhlIGhhcmR3YXJlIGRvbWFpbi4NCj4+PiAgICBUaGlzIHdheSBoYXJkd2FyZSBkb2Ft
aW4gc2VlcyBwaHlzaWNhbCBCQVIgdmFsdWVzIGFuZCBndWVzdCBzZWVzDQo+Pj4gICAgZW11bGF0
ZWQgb25lcy4NCj4+Pg0KPj4+IFRoZSBzZXJpZXMgYWxzbyBhZGRzIHN1cHBvcnQgZm9yIHZpcnR1
YWwgUENJIGJ1cyB0b3BvbG9neSBmb3IgZ3Vlc3RzOg0KPj4+ICAgLSBXZSBlbXVsYXRlIGEgc2lu
Z2xlIGhvc3QgYnJpZGdlIGZvciB0aGUgZ3Vlc3QsIHNvIHNlZ21lbnQgaXMgYWx3YXlzIDAuDQo+
Pj4gICAtIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBsaW1pdGVkIHRvIDMyIGRldmljZXMgd2hpY2gg
YXJlIGFsbG93ZWQgb24NCj4+PiAgICAgYSBzaW5nbGUgUENJIGJ1cy4NCj4+PiAgIC0gVGhlIHZp
cnR1YWwgYnVzIG51bWJlciBpcyBzZXQgdG8gMCwgc28gdmlydHVhbCBkZXZpY2VzIGFyZSBzZWVu
DQo+Pj4gICAgIGFzIGVtYmVkZGVkIGVuZHBvaW50cyBiZWhpbmQgdGhlIHJvb3QgY29tcGxleC4N
Cj4+Pg0KPj4+IFRoZSBzZXJpZXMgd2FzIGFsc28gdGVzdGVkIG9uOg0KPj4+ICAgLSB4ODYgUFZI
IERvbTAgYW5kIGRvZXNuJ3QgYnJlYWsgaXQuDQo+Pj4gICAtIHg4NiBIVk0gd2l0aCBQQ0kgcGFz
c3Rocm91Z2ggdG8gRG9tVSBhbmQgZG9lc24ndCBicmVhayBpdC4NCj4+Pg0KPj4+IFRoYW5rIHlv
dSwNCj4+PiBPbGVrc2FuZHINCj4+Pg0KPj4+IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvICgxMSk6
DQo+Pj4gICAgdnBjaTogZml4IGZ1bmN0aW9uIGF0dHJpYnV0ZXMgZm9yIHZwY2lfcHJvY2Vzc19w
ZW5kaW5nDQo+Pj4gICAgdnBjaTogY2FuY2VsIHBlbmRpbmcgbWFwL3VubWFwIG9uIHZwY2kgcmVt
b3ZhbA0KPj4+ICAgIHZwY2k6IG1ha2UgdnBjaSByZWdpc3RlcnMgcmVtb3ZhbCBhIGRlZGljYXRl
ZCBmdW5jdGlvbg0KPj4+ICAgIHZwY2k6IGFkZCBob29rcyBmb3IgUENJIGRldmljZSBhc3NpZ24v
ZGUtYXNzaWduDQo+Pj4gICAgdnBjaS9oZWFkZXI6IGltcGxlbWVudCBndWVzdCBCQVIgcmVnaXN0
ZXIgaGFuZGxlcnMNCj4+PiAgICB2cGNpL2hlYWRlcjogaGFuZGxlIHAybSByYW5nZSBzZXRzIHBl
ciBCQVINCj4+PiAgICB2cGNpL2hlYWRlcjogcHJvZ3JhbSBwMm0gd2l0aCBndWVzdCBCQVIgdmll
dw0KPj4+ICAgIHZwY2kvaGVhZGVyOiBlbXVsYXRlIFBDSV9DT01NQU5EIHJlZ2lzdGVyIGZvciBn
dWVzdHMNCj4+PiAgICB2cGNpL2hlYWRlcjogcmVzZXQgdGhlIGNvbW1hbmQgcmVnaXN0ZXIgd2hl
biBhZGRpbmcgZGV2aWNlcw0KPj4+ICAgIHZwY2k6IGFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIHZp
cnR1YWwgUENJIGJ1cyB0b3BvbG9neQ0KPj4+ICAgIHhlbi9hcm06IHRyYW5zbGF0ZSB2aXJ0dWFs
IFBDSSBidXMgdG9wb2xvZ3kgZm9yIGd1ZXN0cw0KPj4gSWYgSSdtIG5vdCBtaXN0YWtlbiBieSB0
aGUgZW5kIG9mIHRoaXMgc2VyaWVzIGEgZ3Vlc3QgY2FuIGFjY2VzcyBhDQo+PiBkZXZpY2UgaGFu
ZGVkIHRvIGl0LiBJIGNvdWxkbid0IGZpbmQgYW55dGhpbmcgZGVhbGluZyB3aXRoIHRoZQ0KPj4g
dXNlcyBvZiB2cGNpX3tyZWFkLHdyaXRlfV9odygpIGFuZCB2cGNpX2h3X3tyZWFkLHdyaXRlfSoo
KSB0byBjb3Zlcg0KPj4gY29uZmlnIHJlZ2lzdGVycyBub3QgY292ZXJlZCBieSByZWdpc3RlcmVk
IGhhbmRsZXJzLiBJTU8gdGhpcyBzaG91bGQNCj4+IGhhcHBlbiBiZWZvcmUgcGF0Y2ggNTogQmVm
b3JlIGFueSBoYW5kbGVycyBnZXQgcmVnaXN0ZXJlZCB0aGUgdmlldyBhDQo+PiBndWVzdCB3b3Vs
ZCBoYXZlIHdvdWxkIGJlIGFsbCBvbmVzIG5vIG1hdHRlciB3aGljaCByZWdpc3RlciBpdA0KPj4g
YWNjZXNzZXMuIEhhbmRsZXIgcmVnaXN0cmF0aW9uIHdvdWxkIHRoZW4gInB1bmNoIGhvbGVzIiBp
bnRvIHRoaXMNCj4+ICJjdXJ0YWluIiwgYXMgb3Bwb3NlZCB0byBEb20wLCB3aGVyZSBoYW5kbGVy
IHJlZ2lzdHJhdGlvbiBoaWRlcw0KPj4gcHJldmlvdXNseSB2aXNpYmxlIHJhdyBoYXJkd2FyZSBy
ZWdpc3RlcnMuDQo+IEZXSVcsIEkndmUgYWxzbyByYWlzZWQgdGhlIHNhbWUgY29uY2VybiBpbiBh
IGRpZmZlcmVudCB0aHJlYWQ6DQo+DQo+IGh0dHBzOi8vdXJsZGVmZW5zZS5jb20vdjMvX19odHRw
czovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvWVlEN1ZtREdLSlJraWQ0YUBBaXItZGUtUm9n
ZXIvX187ISFHRl8yOWRiY1FJVUJQQSFnaWhYNmMyTWc4N0FLU0RNbWgxeHJSblBqVFhaa2dSM2tx
UHhnLVdQZ2hBZGJZNTlnbUpLNU5na2Y0T0pGSzZOVTVJd0NTdFlBUSQgW2xvcmVbLl1rZXJuZWxb
Ll1vcmddDQo+DQo+IEl0IHNlZW1zIGxpa2UgdGhpcyBpcyBmdXR1cmUgd29yaywNClllcywgaXQg
dGFrZXMgcXVpdGUgc29tZSB0aW1lIHRvIGdldCBldmVuIHdoYXQgd2UgaGF2ZSBub3cuLi4NCj4g
ICBidXQgdW5sZXNzIHN1Y2ggYSBtb2RlbCBpcw0KPiBpbXBsZW1lbnRlZCB2UENJIGNhbm5vdCBi
ZSB1c2VkIGZvciBndWVzdCBwYXNzdGhyb3VnaC4NCkJ1dCBpdCBjYW4gYmUgYSB0ZWNoLXByZXZp
ZXcNCj4NCj4gSSdtIGZpbmUgd2l0aCBkb2luZyBpdCBpbiBhIHNlcGFyYXRlIHNlcmllcywgYnV0
IG5lZWRzIHRvIGJlIGtlcHQgaW4NCj4gbWluZC4NClN1cmUNCj4NCj4gUmVnYXJkcywgUm9nZXIu
DQo=


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 14:35:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 14:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228068.394571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4yy-0005q4-2K; Fri, 19 Nov 2021 14:35:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228068.394571; Fri, 19 Nov 2021 14:35:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo4yx-0005px-Uy; Fri, 19 Nov 2021 14:35:15 +0000
Received: by outflank-mailman (input) for mailman id 228068;
 Fri, 19 Nov 2021 14:35:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo4yx-0005pr-FY
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:35:15 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo4yx-00017r-Do
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:35:15 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo4yx-0001SE-Cl
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 14:35:15 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mo4ys-0005h9-BG; Fri, 19 Nov 2021 14:35:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=XcaHO3isCPEgSs12L9ZFTjVfPOxeilyzlKLNR9yQHy8=; b=DpLRG0B/ZUFA8IylKG5AukQf4n
	ljHhnvr0IILocKVUXY4iCvUwoXlYN5Nv34Z7Eh2WD/LvTV4dkwG90btMe4NzBpMIED4k5Tw6lfqJh
	KibCVb52T5m1WaJ/8l4+EySpiA8rFEwiWjC2SwcXb4q2CE9V1xh0Wb56wZlJzjg89SWI=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24983.46621.634534.598318@mariner.uk.xensource.com>
Date: Fri, 19 Nov 2021 14:35:09 +0000
To: Nick Rosbrook <rosbrookn@gmail.com>
Cc: Anthony PERARD <anthony.perard@citrix.com>,
    xen-devel@lists.xenproject.org,
    George Dunlap <george.dunlap@citrix.com>,
    Nick Rosbrook <rosbrookn@ainfosec.com>,
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH for-4.16] golang/xenlight: regen generated code
In-Reply-To: <20211119132812.GA27119@six>
References: <20211119102948.156887-1-anthony.perard@citrix.com>
	<20211119132812.GA27119@six>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Nick Rosbrook writes ("Re: [XEN PATCH for-4.16] golang/xenlight: regen generated code"):
> Acked-by: Nick Rosbrook <rosbrookn@ainfosec.com>

Thanks all.

Acked-by: Ian Jackson <iwj@xenproject.org>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>

and pushed.

Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 15:15:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 15:15:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228082.394586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo5bh-0001Zn-5k; Fri, 19 Nov 2021 15:15:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228082.394586; Fri, 19 Nov 2021 15:15:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo5bh-0001Zg-2O; Fri, 19 Nov 2021 15:15:17 +0000
Received: by outflank-mailman (input) for mailman id 228082;
 Fri, 19 Nov 2021 15:15:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo5bf-0001Za-R7
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 15:15:15 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo5bf-0001oC-Oc
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 15:15:15 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo5bf-0003r4-Nb
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 15:15:15 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mo5bd-0005oy-IF; Fri, 19 Nov 2021 15:15:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Subject:Cc:To:Date:Message-ID:
	Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=6ck8Tf7Jp++28hPZcAXcmxKfhcFCVzJaWKJlm2u1XrY=; b=Q5QVO/RTxTYDaqAjFeeMspb54K
	XatHO2AawXcIUF/KEXl0TiYf5G7+hFqnEu5925aqPdMqN+wb1DwmChOrVRc9xvLCORiW4Ien4ER5X
	Fyi8JEHcM3vhlNCFpx4EI3HNbQskYZ+S0XN5xXS4mhbJ4cA000Oz0+y5jQ2tB5otYo7o=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24983.49015.777430.780265@mariner.uk.xensource.com>
Date: Fri, 19 Nov 2021 15:15:03 +0000
To: xen-devel@lists.xenproject.org
Cc: committers@xenproject.org
Subject: Xen 4.16 development update - tree status

Tree status
===========

We are now in deep code freeze, during which we will try to discover
and eliminate serious bugs and regressions.

All patches other than documentation patches need a Release-Ack.
Fixes for serious bugs, and test improvements, will get such an ack.

I have decided to branch on Monday at the same time as cutting RC4.
I think the release is going reasonably well.


The current planned release schedule
====================================

    Friday 12th November                  Hard code freeze [*]

      Bugfixes for serious bugs (including regressions), and low-risk
      fixes only.
      (0.5 weeks)

    Monday 22nd November **planned**     Branch off staging-4.16

      xen-unstable open again - with caveats to avoid release disruption.
      (1.5 weeks)

    Friday 26th November **tentative**    Final commits (docs/prep only)
    Week of 29th November **tentative**   Release
      (probably Tuesday or Wednesday)


Open issues and potential blockers
==================================

Here is the list of issues I am aware of that might be blockers and/or
might need a release ack for fixes.  In general, please would people
explicitly note release-blocker issues to me, so that I can see that
they are sorted out.


I am aware of one outstanding fix that has not yet been committed:

* [PATCH for-4.16 v2] efi: fix alignment of function parameters in compat
  which is an UB bug spotted due to a build failure with recent clang
  http://beefy18.nyi.freebsd.org/data/main-amd64-default/p5718aa5f2a8f_s9b8eb1c5b6/logs/xen-kernel-4.15.0_1.log


I am aware of three issues for which I don't know the current
disposition:

* "x86/IOMMU: enabled / intremap handling"
  3/3 "AMD/IOMMU: iommu_enable vs iommu_intremap"
  Last I heard this was being reworked.

* I have a note "HPET regression".  There have been number of patches in
  this area.  Most recently,
  "x86/hpet: setup HPET even when disabled due to stopping in deep C states"

* "x86/viridian: EOI MSR should always happen in affected vCPU context"
  Jan mentioned this on IRC but I don't see any discussion of it in
  my mailbox.

The last two were mentioned in my last release update, but I don't
seem to find any definitive conclusion.  x86 maintainers, can you
please confirm ?



Issues dealt with
=================

ARM/VPCI: all relevant fixes seem to have been applied now.

I have carrioed out Pre-public-disclosure testing of embargoed XSAs
385 387 388 389, together with the today-released XSA-390.

I have run through those of the release checklist items which are to
be done before branching, notably library sonames.

We have reverted "xen/domctl: Introduce XEN_DOMCTL_CDF_vpci flag" as
discussed.


Patches applied to fix bugs
---------------------------

"x86/xstate: reset cached register values on resume"

"tools: disable building qemu-trad per default"

Fixes for FreeBSD build problems following "tools: disable building
qemu-trad per default".

"VT-d: misc (regression) fixes":
1/3 "VT-d: per-domain IOMMU bitmap needs to have dynamic size"
2/3 "VT-d: fix reduced page table levels support when sharing tables"

"xen/efi: Fix Grub2 boot on arm64"

"gnttab: allow setting max version per-domain" and fixes thereto

"tools/helpers: fix broken xenstore stubdom init"

"xen/arm: fix SBDF calculation for vPCI MMIO handlers"

"x86/IOMMU: enabled / intremap handling"
1/3 x86/IOMMU: mark IOMMU / intremap not in use when ACPI tables are missing
2/3 x86/APIC: avoid iommu_supports_x2apic() on error path

"x86/traps: Fix typo in do_entry_CP()"


Changes slated to be deferred to post-4.16
------------------------------------------

Discussion of the following issues and patches, since the last release
update, has resulted in me declining to give a release-ack:

* Revert "domctl: improve locking during domain destruction"

* "VT-d: misc (regression) fixes":
  3/3 "VT-d: don't needlessly engage the untrusted-MSI workaround"

* "x86/passthrough: Fix hvm_gsi_eoi() build with GCC 12"

* "arm/efi: Improve performance requesting filesystem handle"

* "qemu build failure on release tarball with python <= 3.5"
  (mail thread, no patch exists at this time)

* "x86/x2APIC: defer probe until after IOMMU ACPI table parsing"

* "arm/smmuv1,v2: Protect smmu master list with a lock"


Note on RM decisionmaking
=========================

Release management decisions are always subject to revision on the
basis of new information or new arguments, so the list of changes
slated to be deferred should not be taken to be necessarily final.

Release management decisions usually involve much uncertainty (even
guesswork), and sometimes involve a balance of interests.  If you
think I have made a mistake and have new points, new information, or
think you can demonstrate that I have made the wrong tradeoff, please
let me know.

However, this message reflects my current understanding.


--


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 15:24:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 15:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228087.394597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo5kW-00036R-5P; Fri, 19 Nov 2021 15:24:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228087.394597; Fri, 19 Nov 2021 15:24:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo5kW-00036K-2X; Fri, 19 Nov 2021 15:24:24 +0000
Received: by outflank-mailman (input) for mailman id 228087;
 Fri, 19 Nov 2021 15:24:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mo5kU-00036E-Cn
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 15:24:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mo5kU-0001xe-5j
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 15:24:22 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mo5kU-0004P8-4Z
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 15:24:22 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mo5kI-0005r3-Bm; Fri, 19 Nov 2021 15:24:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:Content-Type:
	MIME-Version:Message-Id:Date:Subject:Cc:To:From;
	bh=MeDObHg4WlpI4WwECEIFz0i5IyCX3lFHt4bSsUKE/WU=; b=584+YM4a0GK4hq4mYODPbk5txb
	SO0nmVvTLs2jYZRI+eqhFcdVAXwix83Dv1m5wfOj6nmbwPHqr02gRZ40wXMT73/iqtHIzu27xtab4
	wC3wj7B2PhHN2MX/y3dGRa2d9hQn695NM9oxuuPkadOMlruEB9m6gQcdf2xhkIrWZnqM=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: iwj@xenproject.org,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <amc96@srcf.net>
Subject: [PATCH for-4.16 v3] efi: fix alignment of function parameters in compat mode
Date: Fri, 19 Nov 2021 15:24:03 +0000
Message-Id: <20211119152403.12069-1-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Roger Pau Monne <roger.pau@citrix.com>

Currently the max_store_size, remain_store_size and max_size in
compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
13.0.0 complain with:

In file included from compat.c:30:
./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.max_store_size,
            ^
./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.remain_store_size,
            ^
./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.max_size);
            ^
Fix this by bouncing the variables on the stack in order for them to
be 8 byte aligned.

Note this could be done in a more selective manner to only apply to
compat code calls, but given the overhead of making an EFI call doing
an extra copy of 3 variables doesn't seem to warrant the special
casing.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
Reviewed-by: Ian Jackson <iwj@xenproject.org>
Signed-off-by: Ian Jackson <iwj@xenproject.org>

---
Changes since v2:
 - Adjust the commentary as per discussion.
Changes since v1:
 - Copy back the results.
---
 xen/common/efi/runtime.c | 31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)

diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index 375b94229e..089bb0eb1b 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
     break;
 
     case XEN_EFI_query_variable_info:
+    {
+        uint64_t max_store_size, remain_store_size, max_size;
+
         if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
             return -EINVAL;
 
@@ -638,16 +641,36 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
 
         if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
             return -EOPNOTSUPP;
+
+        /*
+         * Bounce the variables onto the stack to make them 8 byte aligned when
+         * called from the compat handler, as their placement in
+         * compat_pf_efi_runtime_call will make them 4 byte aligned instead and
+         * and compilers may validly complain.
+	 *
+	 * Note that while the function parameters are OUT only, copy the
+	 * values here anyway just in case. This is done regardless of whether
+	 * called from the compat handler or not, as it's not worth the extra
+	 * logic to differentiate.
+         */
+        max_store_size = op->u.query_variable_info.max_store_size;
+        remain_store_size = op->u.query_variable_info.remain_store_size;
+        max_size = op->u.query_variable_info.max_size;
+
         state = efi_rs_enter();
         if ( !state.cr3 )
             return -EOPNOTSUPP;
         status = efi_rs->QueryVariableInfo(
-            op->u.query_variable_info.attr,
-            &op->u.query_variable_info.max_store_size,
-            &op->u.query_variable_info.remain_store_size,
-            &op->u.query_variable_info.max_size);
+            op->u.query_variable_info.attr, &max_store_size, &remain_store_size,
+            &max_size);
         efi_rs_leave(&state);
+
+        op->u.query_variable_info.max_store_size = max_store_size;
+        op->u.query_variable_info.remain_store_size = remain_store_size;
+        op->u.query_variable_info.max_size = max_size;
+
         break;
+    }
 
     case XEN_EFI_query_capsule_capabilities:
     case XEN_EFI_update_capsule:
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 15:39:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 15:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228095.394608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo5yx-0004eP-GG; Fri, 19 Nov 2021 15:39:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228095.394608; Fri, 19 Nov 2021 15:39:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo5yx-0004eI-DD; Fri, 19 Nov 2021 15:39:19 +0000
Received: by outflank-mailman (input) for mailman id 228095;
 Fri, 19 Nov 2021 15:39:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Spps=QG=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mo5yv-0004e8-M3
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 15:39:17 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id da8fa134-494e-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 16:39:16 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 205451FD38;
 Fri, 19 Nov 2021 15:39:16 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C5A7C13B35;
 Fri, 19 Nov 2021 15:39:15 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id HM/1LiPFl2HIIwAAMHmgww
 (envelope-from <jgross@suse.com>); Fri, 19 Nov 2021 15:39:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da8fa134-494e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637336356; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=1j1MNeLLIwQNenVL0GJ3LtVT6hsmn8LBmDa9I+SCdEA=;
	b=RRukonH7VR6a1V4h76tfh3yTxEh1jKqtgW3gZCl02/vOmRZrwXpGtTKwN9imaZUi+HXqEh
	+3AhXsHfIbOUPR7338tVCJ+O6KlQsKvsvZ3//UbZE/rqgP+yDnySYUTcEXjPcVb8wLEnZW
	1pnMgHlMZF+e7t7xPwxtiE0zE/fh958=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	x86@kernel.org,
	linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	kernel test robot <lkp@intel.com>
Subject: [PATCH] xen/pvh: add missing prototype to header
Date: Fri, 19 Nov 2021 16:39:13 +0100
Message-Id: <20211119153913.21678-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The prototype of mem_map_via_hcall() is missing in its header, so add
it.

Reported-by: kernel test robot <lkp@intel.com>
Fixes: a43fb7da53007e67ad ("xen/pvh: Move Xen code for getting mem map via hcall out of common file")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/xen/hypervisor.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/include/asm/xen/hypervisor.h b/arch/x86/include/asm/xen/hypervisor.h
index 4957f59deb40..5adab895127e 100644
--- a/arch/x86/include/asm/xen/hypervisor.h
+++ b/arch/x86/include/asm/xen/hypervisor.h
@@ -64,6 +64,7 @@ void xen_arch_unregister_cpu(int num);
 
 #ifdef CONFIG_PVH
 void __init xen_pvh_init(struct boot_params *boot_params);
+void __init mem_map_via_hcall(struct boot_params *boot_params_p);
 #endif
 
 #endif /* _ASM_X86_XEN_HYPERVISOR_H */
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 15:40:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 15:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228099.394619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo5zX-0005BF-PU; Fri, 19 Nov 2021 15:39:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228099.394619; Fri, 19 Nov 2021 15:39:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo5zX-0005B8-Lo; Fri, 19 Nov 2021 15:39:55 +0000
Received: by outflank-mailman (input) for mailman id 228099;
 Fri, 19 Nov 2021 15:39:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Hp3=QG=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mo5zW-0004yy-Ib
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 15:39:54 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef0fa8ad-494e-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 16:39:53 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:60456)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mo5zS-000i9P-8f (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 19 Nov 2021 15:39:50 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 71F851FB23;
 Fri, 19 Nov 2021 15:39:50 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef0fa8ad-494e-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <099d9fdc-6ea5-d6ba-6ca9-62e724ec376f@srcf.net>
Date: Fri, 19 Nov 2021 15:39:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
Cc: committers@xenproject.org
References: <24983.49015.777430.780265@mariner.uk.xensource.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: Xen 4.16 development update - tree status
In-Reply-To: <24983.49015.777430.780265@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2021 15:15, Ian Jackson wrote:
> Open issues and potential blockers
> ==================================
>
> I am aware of three issues for which I don't know the current
> disposition:
>
> * "x86/IOMMU: enabled / intremap handling"
>   3/3 "AMD/IOMMU: iommu_enable vs iommu_intremap"
>   Last I heard this was being reworked.

Some of this has been committed, and has fixed the regression I reported.

One part is quite risky, and not a regression fix (Xen has been broken
for years and years here).  I suggest deferring that part to 4.17.

I'm not aware of further actions required on this task for 4.16.

> * I have a note "HPET regression".  There have been number of patches in
>   this area.  Most recently,
>   "x86/hpet: setup HPET even when disabled due to stopping in deep C states"

This regression has been fixed too.  The bugfix got in ahead of RC1.

> * "x86/viridian: EOI MSR should always happen in affected vCPU context"
>   Jan mentioned this on IRC but I don't see any discussion of it in
>   my mailbox.
>
> The last two were mentioned in my last release update, but I don't
> seem to find any definitive conclusion.  x86 maintainers, can you
> please confirm ?

There is not consensus on whether the change is correct, although I
admit it had fallen off my radar.

All it is doing is introducing two ASSERT_UNREACHABLE()'s.  It's not
critical for 4.16 at this point.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 16:04:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 16:04:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228105.394630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo6Mv-0000SU-NG; Fri, 19 Nov 2021 16:04:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228105.394630; Fri, 19 Nov 2021 16:04:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo6Mv-0000SN-Jb; Fri, 19 Nov 2021 16:04:05 +0000
Received: by outflank-mailman (input) for mailman id 228105;
 Fri, 19 Nov 2021 16:04:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+Hp3=QG=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mo6Mu-0000SH-I2
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 16:04:04 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f4f7597-4952-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 17:04:02 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:41448)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mo6Mq-000Y46-1t (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 19 Nov 2021 16:04:00 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 59C011FC31;
 Fri, 19 Nov 2021 16:04:00 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f4f7597-4952-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <40b1a70a-12ed-e059-3bbd-a93b85a96f1d@srcf.net>
Date: Fri, 19 Nov 2021 16:04:00 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16 v3] efi: fix alignment of function parameters in
 compat mode
Content-Language: en-GB
To: Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>, Jan Beulich <jbeulich@suse.com>
References: <20211119152403.12069-1-iwj@xenproject.org>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <20211119152403.12069-1-iwj@xenproject.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19/11/2021 15:24, Ian Jackson wrote:
> diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
> index 375b94229e..089bb0eb1b 100644
> --- a/xen/common/efi/runtime.c
> +++ b/xen/common/efi/runtime.c
> @@ -638,16 +641,36 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
>  
>          if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
>              return -EOPNOTSUPP;
> +
> +        /*
> +         * Bounce the variables onto the stack to make them 8 byte aligned when
> +         * called from the compat handler, as their placement in
> +         * compat_pf_efi_runtime_call will make them 4 byte aligned instead and
> +         * and compilers may validly complain.
> +	 *
> +	 * Note that while the function parameters are OUT only, copy the
> +	 * values here anyway just in case. This is done regardless of whether
> +	 * called from the compat handler or not, as it's not worth the extra
> +	 * logic to differentiate.
> +         */

Some hardtabs appear to have slipped in.

Jan gave a conditional R-by which permitted a change along these lines,
but he's left the office now too, so you'll have to take him up on that
offer if you want this committing before Monday.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 16:45:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 16:45:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228115.394641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo70L-0004Z0-Mz; Fri, 19 Nov 2021 16:44:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228115.394641; Fri, 19 Nov 2021 16:44:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo70L-0004Yt-Jy; Fri, 19 Nov 2021 16:44:49 +0000
Received: by outflank-mailman (input) for mailman id 228115;
 Fri, 19 Nov 2021 16:44:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo70K-0004Yj-U8; Fri, 19 Nov 2021 16:44:48 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo70K-0003ne-Mu; Fri, 19 Nov 2021 16:44:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo70K-0000pj-AO; Fri, 19 Nov 2021 16:44:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mo70K-000089-9s; Fri, 19 Nov 2021 16:44:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=20JV50hcLI10UvcpPUQH/Z24n+BNDqoVQ54+J6AQRiA=; b=ncQqdp+lOErGzlMch5zbj3dukc
	U59ntnOGo5A7+F5sFJjCtZNqoyaO0Vq4T6M/orChseGq9JuLvUZ2O8iQH53PBs/yX25a6xQMssXzE
	GKqTCmF6iTuqv+Qtc3TXeTfFR3cybjZD534AMGlobbnuVdLTROQSogXJ8rE9uQ32WHxI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166190-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166190: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=4c388a8e740d3235a194f330c8ef327deef710f6
X-Osstest-Versions-That:
    linux=e66435936756d9bce96433be183358a8994a0f0d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 16:44:48 +0000

flight 166190 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166190/

Failures :-/ but no regressions.

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds    18 guest-start/debian.repeat fail REGR. vs. 165976

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165976
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165976
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165976
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165976
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165976
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165976
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165976
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                4c388a8e740d3235a194f330c8ef327deef710f6
baseline version:
 linux                e66435936756d9bce96433be183358a8994a0f0d

Last test of basis   165976  2021-11-01 23:11:48 Z   17 days
Failing since        165992  2021-11-02 05:40:21 Z   17 days   27 attempts
Testing same since   166190  2021-11-19 03:23:04 Z    0 days    1 attempts

------------------------------------------------------------
2216 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   e66435936756..4c388a8e740d  4c388a8e740d3235a194f330c8ef327deef710f6 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 16:47:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 16:47:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228122.394655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo73P-0005IJ-Cw; Fri, 19 Nov 2021 16:47:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228122.394655; Fri, 19 Nov 2021 16:47:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo73P-0005IC-7x; Fri, 19 Nov 2021 16:47:59 +0000
Received: by outflank-mailman (input) for mailman id 228122;
 Fri, 19 Nov 2021 16:47:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zCG7=QG=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1mo73O-0005I6-6A
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 16:47:58 +0000
Received: from mga06.intel.com (mga06.intel.com [134.134.136.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 701cde7d-4958-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 17:47:55 +0100 (CET)
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 19 Nov 2021 08:47:52 -0800
Received: from vinaypr1-mobl.amr.corp.intel.com (HELO [10.252.140.143])
 ([10.252.140.143])
 by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 19 Nov 2021 08:47:51 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 701cde7d-4958-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10172"; a="295259872"
X-IronPort-AV: E=Sophos;i="5.87,248,1631602800"; 
   d="scan'208";a="295259872"
X-IronPort-AV: E=Sophos;i="5.87,248,1631602800"; 
   d="scan'208";a="594481895"
Subject: Re: [PATCH] xen/pvh: add missing prototype to header
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
 x86@kernel.org, linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, kernel test robot <lkp@intel.com>
References: <20211119153913.21678-1-jgross@suse.com>
From: Dave Hansen <dave.hansen@intel.com>
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzShEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gPGRhdmVAc3I3MS5uZXQ+wsF7BBMBAgAlAhsDBgsJCAcDAgYVCAIJ
 CgsEFgIDAQIeAQIXgAUCTo3k0QIZAQAKCRBoNZUwcMmSsMO2D/421Xg8pimb9mPzM5N7khT0
 2MCnaGssU1T59YPE25kYdx2HntwdO0JA27Wn9xx5zYijOe6B21ufrvsyv42auCO85+oFJWfE
 K2R/IpLle09GDx5tcEmMAHX6KSxpHmGuJmUPibHVbfep2aCh9lKaDqQR07gXXWK5/yU1Dx0r
 VVFRaHTasp9fZ9AmY4K9/BSA3VkQ8v3OrxNty3OdsrmTTzO91YszpdbjjEFZK53zXy6tUD2d
 e1i0kBBS6NLAAsqEtneplz88T/v7MpLmpY30N9gQU3QyRC50jJ7LU9RazMjUQY1WohVsR56d
 ORqFxS8ChhyJs7BI34vQusYHDTp6PnZHUppb9WIzjeWlC7Jc8lSBDlEWodmqQQgp5+6AfhTD
 kDv1a+W5+ncq+Uo63WHRiCPuyt4di4/0zo28RVcjtzlGBZtmz2EIC3vUfmoZbO/Gn6EKbYAn
 rzz3iU/JWV8DwQ+sZSGu0HmvYMt6t5SmqWQo/hyHtA7uF5Wxtu1lCgolSQw4t49ZuOyOnQi5
 f8R3nE7lpVCSF1TT+h8kMvFPv3VG7KunyjHr3sEptYxQs4VRxqeirSuyBv1TyxT+LdTm6j4a
 mulOWf+YtFRAgIYyyN5YOepDEBv4LUM8Tz98lZiNMlFyRMNrsLV6Pv6SxhrMxbT6TNVS5D+6
 UorTLotDZKp5+M7BTQRUY85qARAAsgMW71BIXRgxjYNCYQ3Xs8k3TfAvQRbHccky50h99TUY
 sqdULbsb3KhmY29raw1bgmyM0a4DGS1YKN7qazCDsdQlxIJp9t2YYdBKXVRzPCCsfWe1dK/q
 66UVhRPP8EGZ4CmFYuPTxqGY+dGRInxCeap/xzbKdvmPm01Iw3YFjAE4PQ4hTMr/H76KoDbD
 cq62U50oKC83ca/PRRh2QqEqACvIH4BR7jueAZSPEDnzwxvVgzyeuhwqHY05QRK/wsKuhq7s
 UuYtmN92Fasbxbw2tbVLZfoidklikvZAmotg0dwcFTjSRGEg0Gr3p/xBzJWNavFZZ95Rj7Et
 db0lCt0HDSY5q4GMR+SrFbH+jzUY/ZqfGdZCBqo0cdPPp58krVgtIGR+ja2Mkva6ah94/oQN
 lnCOw3udS+Eb/aRcM6detZr7XOngvxsWolBrhwTQFT9D2NH6ryAuvKd6yyAFt3/e7r+HHtkU
 kOy27D7IpjngqP+b4EumELI/NxPgIqT69PQmo9IZaI/oRaKorYnDaZrMXViqDrFdD37XELwQ
 gmLoSm2VfbOYY7fap/AhPOgOYOSqg3/Nxcapv71yoBzRRxOc4FxmZ65mn+q3rEM27yRztBW9
 AnCKIc66T2i92HqXCw6AgoBJRjBkI3QnEkPgohQkZdAb8o9WGVKpfmZKbYBo4pEAEQEAAcLB
 XwQYAQIACQUCVGPOagIbDAAKCRBoNZUwcMmSsJeCEACCh7P/aaOLKWQxcnw47p4phIVR6pVL
 e4IEdR7Jf7ZL00s3vKSNT+nRqdl1ugJx9Ymsp8kXKMk9GSfmZpuMQB9c6io1qZc6nW/3TtvK
 pNGz7KPPtaDzvKA4S5tfrWPnDr7n15AU5vsIZvgMjU42gkbemkjJwP0B1RkifIK60yQqAAlT
 YZ14P0dIPdIPIlfEPiAWcg5BtLQU4Wg3cNQdpWrCJ1E3m/RIlXy/2Y3YOVVohfSy+4kvvYU3
 lXUdPb04UPw4VWwjcVZPg7cgR7Izion61bGHqVqURgSALt2yvHl7cr68NYoFkzbNsGsye9ft
 M9ozM23JSgMkRylPSXTeh5JIK9pz2+etco3AfLCKtaRVysjvpysukmWMTrx8QnI5Nn5MOlJj
 1Ov4/50JY9pXzgIDVSrgy6LYSMc4vKZ3QfCY7ipLRORyalFDF3j5AGCMRENJjHPD6O7bl3Xo
 4DzMID+8eucbXxKiNEbs21IqBZbbKdY1GkcEGTE7AnkA3Y6YB7I/j9mQ3hCgm5muJuhM/2Fr
 OPsw5tV/LmQ5GXH0JQ/TZXWygyRFyyI2FqNTx4WHqUn3yFj8rwTAU1tluRUYyeLy0ayUlKBH
 ybj0N71vWO936MqP6haFERzuPAIpxj2ezwu0xb1GjTk4ynna6h5GjnKgdfOWoRtoWndMZxbA
 z5cecg==
Message-ID: <0c654659-b010-791f-78e7-769108934ce2@intel.com>
Date: Fri, 19 Nov 2021 08:47:49 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <20211119153913.21678-1-jgross@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

On 11/19/21 7:39 AM, Juergen Gross wrote:
> The prototype of mem_map_via_hcall() is missing in its header, so add
> it.
> 
> Reported-by: kernel test robot <lkp@intel.com>
> Fixes: a43fb7da53007e67ad ("xen/pvh: Move Xen code for getting mem map via hcall out of common file")
> Signed-off-by: Juergen Gross <jgross@suse.com>

$ git describe a43fb7da53007e67ad
v4.20-rc6-5-ga43fb7da5300

Better late than never, I guess.  I wonder what made 0day find this now.

I also guess the one mem_map_via_hcall() call site just used the __weak
definition so it didn't cause problems if there wasn't a declaration in
the header.


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 16:52:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 16:52:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228129.394665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo77n-0006fj-T2; Fri, 19 Nov 2021 16:52:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228129.394665; Fri, 19 Nov 2021 16:52:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo77n-0006fc-Q7; Fri, 19 Nov 2021 16:52:31 +0000
Received: by outflank-mailman (input) for mailman id 228129;
 Fri, 19 Nov 2021 16:52:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hxJH=QG=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mo77m-0006fW-BT
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 16:52:30 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20605.outbound.protection.outlook.com
 [2a01:111:f400:7eab::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14076754-4959-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 17:52:28 +0100 (CET)
Received: from SN6PR2101CA0015.namprd21.prod.outlook.com
 (2603:10b6:805:106::25) by SA2PR02MB7628.namprd02.prod.outlook.com
 (2603:10b6:806:136::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 19 Nov
 2021 16:52:24 +0000
Received: from SN1NAM02FT0015.eop-nam02.prod.protection.outlook.com
 (2603:10b6:805:106:cafe::d0) by SN6PR2101CA0015.outlook.office365.com
 (2603:10b6:805:106::25) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.11 via Frontend
 Transport; Fri, 19 Nov 2021 16:52:24 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 SN1NAM02FT0015.mail.protection.outlook.com (10.97.5.180) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4713.19 via Frontend Transport; Fri, 19 Nov 2021 16:52:23 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Fri, 19 Nov 2021 16:52:22 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Fri, 19 Nov 2021 16:52:22 +0000
Received: from [10.108.8.223] (port=42001 helo=xcbayankuma41x.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mo77S-0001bR-4n; Fri, 19 Nov 2021 16:52:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 14076754-4959-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VijbQ5In2bjagNkAJb26AQhEWFnebJvL17Cxx01mUOIwqwKgdvfWvzFjku6MQXhBkUkwkLNM8CX+Ng16rIZ7riQ1Y7gPv5UBeLCqcR8T4DGCN0775xB8Nolj0/Slv4OhFvmK4yM3W6TRgVZGOGW6BIEw44GlaZdf+mM8DCWznbmFEjEhzNuEcozmaBNBeISKzzIxUtXsddAUN1kg+seJOEFyk9bFc3m2eyMORAuK3wfFfVRvo8nd2A/JlKL1S3xklWSZPdvk7q5tzk+eS4W4Cd2Ed4RBAavGVMpzzpnC4PhgRaVSZR5ssShHpVS3J7fyaCfpohOMO7HyVCetr4Lgsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s7AFil2/NAILKTxKK9oRf8FnqF44xYUIO+RAbt3GnTU=;
 b=EqYEFiKZ3LDMXSJ1YUvOIqHlaeiI2cXq0E9tQhE1ZGLaKa23fgzaP1RVOhDWKsSnlKZBX8pD3fLh/uqief3FieT4mC27sXUwxJqnlrahkqjyTFRAhfdOUmaPLBdfUwUL9im+c+2v6wve4o1ih2gK4OyAtDBqamYUHOMPq/0vquYLGvC+7s7ME8IYisT96bK0+ITt18QthlQXCyuRlBIQCkKOvPzJMihO3x2Fa9QP5Ee4qIhqR7M02roF4Nhcr18oJ0jiZxOo+iE2d9wSiIEaDEPRC4ZQx7+Z0Gr0mSFXO0MKrm0yEvWCzzTBx4EHA6XMZz6CbnCx9SRCEY3/Ushv0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=s7AFil2/NAILKTxKK9oRf8FnqF44xYUIO+RAbt3GnTU=;
 b=plVWlqYNq8EARAk6vkZf/qCQz6WjZdhLgmEOlxasTYhjRl59BoVCSejwNK6vdNxdTLkd4JVdD9lQo3J71atHHgpRGWtmzMVWsUwIpg5qdYU3Z6V/EUu7wMoxekHSGxmjB5CHrb9fqIJAgNGfSQroqy5ykZ9MePmSBsjdDz5qP/U=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <stefano.stabellini@xilinx.com>,
	<julien@xen.org>, <Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<rahul.singh@arm.com>, <ayankuma@xilinx.com>
Subject: [RFC PATCH] Added the logic to decode 32 bit ldr/str post-indexing instructions
Date: Fri, 19 Nov 2021 16:52:02 +0000
Message-ID: <20211119165202.42442-1-ayankuma@xilinx.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6dc964f8-cacf-4309-c5c6-08d9ab7cf5d8
X-MS-TrafficTypeDiagnostic: SA2PR02MB7628:
X-Microsoft-Antispam-PRVS:
	<SA2PR02MB762817A4CA3AF1AC95F6CB60B29C9@SA2PR02MB7628.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	DQmWPXPxYavONw7py42DGNdVPmOoZgNMNIAZwGnSW2Fx7LuQBIdYl97HGepsXn6NBccciS7yj+zMrKH1xNuvKJp7M892jLkt0eHhA9ZHGPXt39e/YreuZRlA769o0Jo7YxNFdZeRQXk5yHBKTop+AH4KC++wOlN9GJ+2CeXhrP17LWbugAZtsZNpb0M/ZuSqH9MyPBXjawq2CICfUlVtTgH+cVkNw6Nuk9oWFZzrLRLV2hCfMELHpZkAdny17N/L806ER5prKeXtRSg1VrI4aXD5ue+qfWO6k/0XR2WQRQ0ed7DQNPZuv0/JewoZlvziEWlooZT4u6yz+pYN8aThYuv/U6Qf53eX5GgJfetL8J1cw/4nfGm46akUHdHw1C0Po1miz8TTjpBGsR88JgsYBaamQ4jETEVBNnqKAFeUlun1O7qVj6RypfPQ3Rs6VEOU+k34uFiFT/JE1PzSn+tMgKf5wmkSfmRSSYqawmgA9tPnKUy9eeQCQX9Y8atSD9X7Kn9odwVOx+dHOfsK6VTUChNIqdrK2mQgOCQJ+KFOBlietOt55Pfl0NzpULHCJWBFO2wdZE5mAbMl+C7HaH3em0Xc3D66wRAOv7JQUpVF8xkPHQaphH0ZkGBZN32QVDh+2mWRCdWO5Kn2x33BG6HcaZRZQsu2ZvF7uiz0a29D1mbLBsWTkAdmOCDBU86qNmACE5gX5711bDItkEr8ImL6QqaExqAxtQ4tn/Bg+c7ni+3JmbncYGMeZtwIbvememDnNlg5/FjbqR1r3XgybVSMN5yZH6dPme6wVXYjsNfbkiWSCJaZkwSt34Hx45peSRac
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(1076003)(316002)(36906005)(426003)(54906003)(186003)(336012)(36756003)(2906002)(2616005)(70206006)(36860700001)(6916009)(82310400003)(70586007)(107886003)(26005)(4326008)(9786002)(7696005)(8936002)(966005)(6666004)(5660300002)(508600001)(83380400001)(8676002)(7636003)(47076005)(356005)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 16:52:23.5755
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6dc964f8-cacf-4309-c5c6-08d9ab7cf5d8
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0015.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7628

At present, post indexing instructions are not emulated by Xen.
When Xen gets the exception, EL2_ESR.ISV bit not set. Thus as a
result, data abort is triggered.

Added the logic to decode ldr/str post indexing instructions.
With this, Xen can decode instructions like these:-
ldr w2, [x1], #4
Thus, domU can read ioreg with post indexing instructions.

Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
---
Note to reviewer:-
This patch is based on an issue discussed in 
https://lists.xenproject.org/archives/html/xen-devel/2021-11/msg00969.html
"Xen/ARM - Query about a data abort seen while reading GICD registers"


 xen/arch/arm/decode.c | 77 +++++++++++++++++++++++++++++++++++++++++++
 xen/arch/arm/io.c     | 14 ++++++--
 2 files changed, 88 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
index 792c2e92a7..7b60bedbc5 100644
--- a/xen/arch/arm/decode.c
+++ b/xen/arch/arm/decode.c
@@ -84,6 +84,80 @@ bad_thumb2:
     return 1;
 }
 
+static inline int32_t extract32(uint32_t value, int start, int length)
+{
+    int32_t ret;
+
+    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
+        return -EINVAL;
+
+    ret = (value >> start) & (~0U >> (32 - length));
+
+    return ret;
+}
+
+static int decode_64bit_loadstore_postindexing(register_t pc, struct hsr_dabt *dabt)
+{
+    uint32_t instr;
+    int size;
+    int v;
+    int opc;
+    int rt;
+    int imm9;
+
+    /* For details on decoding, refer to Armv8 Architecture reference manual
+     * Section - "Load/store register (immediate post-indexed)", Pg 318
+    */
+    if ( raw_copy_from_guest(&instr, (void * __user)pc, sizeof (instr)) )
+        return -EFAULT;
+
+    /* First, let's check for the fixed values */
+
+    /*  As per the "Encoding table for the Loads and Stores group", Pg 299
+     * op4 = 1 - Load/store register (immediate post-indexed)
+     */
+    if ( extract32(instr, 10, 2) != 1 )
+        goto bad_64bit_loadstore;
+
+    /* For the following, refer to "Load/store register (immediate post-indexed)"
+     * to get the fixed values at various bit positions.
+     */
+    if ( extract32(instr, 21, 1) != 0 )
+        goto bad_64bit_loadstore;
+
+    if ( extract32(instr, 24, 2) != 0 )
+        goto bad_64bit_loadstore;
+
+    if ( extract32(instr, 27, 3) != 7 )
+        goto bad_64bit_loadstore;
+
+    size = extract32(instr, 30, 2);
+    v = extract32(instr, 26, 1);
+    opc = extract32(instr, 22, 1);
+
+    /* At the moment, we support STR(immediate) - 32 bit variant and
+     * LDR(immediate) - 32 bit variant only.
+     */
+    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
+        goto bad_64bit_loadstore;
+
+    rt = extract32(instr, 0, 5);
+    imm9 = extract32(instr, 12, 9);
+
+    if ( imm9 < 0 )
+        update_dabt(dabt, rt, size, true);
+    else
+        update_dabt(dabt, rt, size, false);
+
+    dabt->valid = 1;
+
+
+    return 0;
+bad_64bit_loadstore:
+    gprintk(XENLOG_ERR, "unhandled 64bit instruction 0x%x\n", instr);
+    return 1;
+}
+
 static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
 {
     uint16_t instr;
@@ -155,6 +229,9 @@ int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt *dabt)
     if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
         return decode_thumb(regs->pc, dabt);
 
+    if ( is_64bit_domain(current->domain) )
+        return decode_64bit_loadstore_postindexing(regs->pc, dabt);
+
     /* TODO: Handle ARM instruction */
     gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
 
diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
index 729287e37c..49e80358c0 100644
--- a/xen/arch/arm/io.c
+++ b/xen/arch/arm/io.c
@@ -106,14 +106,13 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
         .gpa = gpa,
         .dabt = dabt
     };
+    int rc;
 
     ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
 
     handler = find_mmio_handler(v->domain, info.gpa);
     if ( !handler )
     {
-        int rc;
-
         rc = try_fwd_ioserv(regs, v, &info);
         if ( rc == IO_HANDLED )
             return handle_ioserv(regs, v);
@@ -123,7 +122,16 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
 
     /* All the instructions used on emulated MMIO region should be valid */
     if ( !dabt.valid )
-        return IO_ABORT;
+    {
+        /*
+         * Post indexing ldr/str instructions are not emulated by Xen. So, the
+         * ISS is invalid. In such a scenario, we try to manually decode the
+         * instruction from the program counter.
+         */
+        rc = decode_instruction(regs, &info.dabt);
+        if ( rc )
+            return IO_ABORT;
+    }
 
     /*
      * Erratum 766422: Thumb store translation fault to Hypervisor may
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 16:56:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 16:56:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228133.394677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo7BE-0007Hf-Du; Fri, 19 Nov 2021 16:56:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228133.394677; Fri, 19 Nov 2021 16:56:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo7BE-0007HY-AP; Fri, 19 Nov 2021 16:56:04 +0000
Received: by outflank-mailman (input) for mailman id 228133;
 Fri, 19 Nov 2021 16:56:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hxJH=QG=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mo7BD-0007HS-BA
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 16:56:03 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20617.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92a0c133-4959-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 17:56:01 +0100 (CET)
Received: from SA0PR11CA0158.namprd11.prod.outlook.com (2603:10b6:806:1bb::13)
 by MW2PR02MB3819.namprd02.prod.outlook.com (2603:10b6:907:3::32) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Fri, 19 Nov
 2021 16:55:58 +0000
Received: from SN1NAM02FT0033.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:1bb:cafe::2a) by SA0PR11CA0158.outlook.office365.com
 (2603:10b6:806:1bb::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26 via Frontend
 Transport; Fri, 19 Nov 2021 16:55:57 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (149.199.80.198) by
 SN1NAM02FT0033.mail.protection.outlook.com (10.97.5.40) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4713.19 via Frontend Transport; Fri, 19 Nov 2021 16:55:57 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Fri, 19 Nov 2021 16:55:56 +0000
Received: from smtp.xilinx.com (172.21.105.198) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Fri, 19 Nov 2021 16:55:56 +0000
Received: from [10.71.118.226] (port=57873)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mo7B3-0001uI-GI; Fri, 19 Nov 2021 16:55:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92a0c133-4959-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=P7YyjZghvNMT6KgPcNStKmTGQd5fALLkpzI9zFJNyTUWYK83svohI3Vu3GrEF771aXtkOVD0R+N0pcLtKh7uD8yFts9ZqfUgzx3V/1LVbTquPK0rf5AB3EahRq2e8ZggG9fRGgP3RI+0X+FUZCdrmRL5vUsRqFbPnAleOnvcTYjd7dadYjGdHjtIpdQkoL7EQyd64nGjQqDe6WQEXsJRGcq5b6I3/lIb8jGi/M7Uy4gBFrEtl951QY5C5E50e3pJ3aQwLcLxlGdWDDFX6GKQpze/+0Ew0OjHO6NRZauKlLNMvSMg//j1O87uyU+/+Xx2fwo37Ngxt22i32f9Pl8p+A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lPpJDle/FwP5aRVgESenpKYXejXjigrkBQrmbDvAqSI=;
 b=mCuNd7e7jbqJmAMC4kn9q60t63F7bq0kp5Aga6Dqv0GYUVb2ZOMepd/46RNxh8WGfWFthRxAjnMvaV73CdSY4YGrgYTA46gXbJJD8jqySeDvWbItyiTYU0Wm9Te0ukgk+Tj7J09wzk8IVym2wafM67gkjmPK8c/JmO2Bygvj/NtMgjXtogkPrFkYd6J0qBML3fQo3SzL2ABCwlBnf30D78n/T4tFJEYP/1TGwqeXms0cHA2kF+PpaL5FiomVQRVTWXlkTRQKXAs+ClozK4I68CAARZQSNY2zkE0ss0Uc9B/uYEqMYWymjJcMNk6zvhed0HQ+WqSC0XfMsjXq0yocBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=kernel.org smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lPpJDle/FwP5aRVgESenpKYXejXjigrkBQrmbDvAqSI=;
 b=qwnTItRHGevoPrJxjqP9QZSUwxcIXm60us4wx6wH2bML/m5H4NXf0TMCwWsVroykySbIRqYneLVF38Fm8mqK+FquatFbtfn4nGP2Wz0IzrAYHLaFMAv9Bjx6Ped4uT86IvkdxoXmfA2EnGrddbcKthzLz7gxGSAIXtvj8zm0p2Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch02.xlnx.xilinx.com;
Message-ID: <a336f337-c068-cf18-e949-57d8061f72b8@xilinx.com>
Date: Fri, 19 Nov 2021 16:55:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: Xen/ARM - Query about a data abort seen while reading GICD
 registers
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
CC: Bertrand Marquis <Bertrand.Marquis@arm.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
References: <1489a1b9-aefa-0ddf-8dba-4a566388cc6f@xilinx.com>
 <CED537AF-44AA-41B8-9458-17A5C43FBECC@arm.com>
 <f91fd718-040e-88a3-ca96-30d1efe9a689@xilinx.com>
 <0ACF6308-EDB0-4B98-A029-1C7B23820198@arm.com>
 <636b9fe8-4c10-45f5-da95-513c87e5939f@xilinx.com>
 <BA07700B-D025-492D-A376-513408927F68@arm.com>
 <c7bda1d6-355e-3240-1d09-59d7c13c4262@xen.org>
 <alpine.DEB.2.22.394.2111171701390.1412361@ubuntu-linux-20-04-desktop>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <alpine.DEB.2.22.394.2111171701390.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 05a25e78-74cf-4010-4c9a-08d9ab7d754c
X-MS-TrafficTypeDiagnostic: MW2PR02MB3819:
X-Microsoft-Antispam-PRVS:
	<MW2PR02MB3819D7E24F2CC185CD534C50B29C9@MW2PR02MB3819.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	tb6IpNrcEHEd0rc847/AuM9m33meWedRGDJp5eYl30g3tVBR75lx9dyMaP6EFtMRNp6norWHKR+GsoLf+eBasRHJBDooZ7fZJeUcN0aFKUrVXzG2giqv3mldec+DYjLVaaagJ8v9Bc46Fi5ZcgznXcSVzfZPTj4AH29INhYEw5dGMOfWLFJ/oAW7BoM43sq62P+tSNXKiTUmRxqo+LBBGcz4gjeRcmtRZbrNihuRl7ZcT4HYSz0Y3BHcYW3m4jr/K/+9kcxCksRei7IVR18gbK/IjLSACX2RXBqObQsuyHeGi61pPdGQhDMik54rdWFBdvsfUWCpSHlEu1MasUpiYVbSpfsZmHU03N+ES1Axh5j9bQBF5n9JOORwVZ7Gs3WaVaIyS8FwmZKnjn3W+Ceahqr7/CY9quhKiNI7i9Woi7xSiqk57SXy+SIDGH3spPQsfoduQ3+Zj4XnMJbm2kujenvsFfMUv+amBk5Ulgikmx4dckEod7LaKYXO3yuf+CvFDQeIFUN6IDj6fPI9xqDm6oF1ngW9VXxO1Y7ZsUm5Gj3EL3LtdLIcbZTYXZjJxKEz/jrEd9DUf9Zhd79//kU/FXyinZhkIUTzYsO5eoAzYIbDYOkb8+xwmGMRgDTR6kNdbgvhpTbwkZROCk7v4lCOq4JO+tzfUHxLWqsHzuavBiRce5sDFxhcrYngl/Zb+yGcZCSXu3XlLxrlGzPEEESyYRXBvJDy2Hk7ioM3068WQpunUI1WN5pmvfxI5htrkp9p4gWPCYFZVLLbO+2yrEO/kBbDo+40kqxKse39askuwt9GpWw7uO7O2//pzYf+8di65ChQgJ1ZH+twVZqZjyRRAg==
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch02.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(36906005)(426003)(82310400003)(336012)(4326008)(8676002)(31686004)(8936002)(26005)(186003)(316002)(9786002)(966005)(36860700001)(70206006)(31696002)(36756003)(356005)(7636003)(5660300002)(2616005)(508600001)(70586007)(83380400001)(53546011)(2906002)(47076005)(54906003)(110136005)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 16:55:57.4133
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 05a25e78-74cf-4010-4c9a-08d9ab7d754c
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0033.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR02MB3819

Hi Stefano/Julien/Bertrand,

Thanks a lot for your inputs.

On 18/11/2021 01:11, Stefano Stabellini wrote:
> On Wed, 17 Nov 2021, Julien Grall wrote:
>> I will combine my answers for this thread in one single e-mail.
>>
>> On 17/11/2021 16:35, Bertrand Marquis wrote:
>>>> On 17 Nov 2021, at 16:21, Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
>>>> wrote:
>>>>
>>>> Hi Bertrand,
>>>>
>>>> Many thanks for your response.
>>>>
>>>> On 17/11/2021 15:48, Bertrand Marquis wrote:
>>>>> Hi Ayan,
>>>>>> On 16 Nov 2021, at 16:24, Ayan Kumar Halder
>>>>>> <ayan.kumar.halder@xilinx.com> wrote:
>>>>>>
>>>>>> Hi Bertrand,
>>>>>>
>>>>>> Thanks for looking into it.
>>>>>>
>>>>>> On 16/11/2021 15:36, Bertrand Marquis wrote:
>>>>>>> Hi Ayan,
>>>>>>>> On 16 Nov 2021, at 15:27, Ayan Kumar Halder
>>>>>>>> <ayan.kumar.halder@xilinx.com> wrote:
>>>>>>>>
>>>>>>>> Hi Xen/Arm experts,
>>>>>>>>
>>>>>>>> I am facing a very strange issue while running a baremetal
>>>>>>>> application as a DomU guest on arm64 platform.
>>>>>>>>
>>>>>>>> The baremetal app tries to read the GICD register with post
>>>>>>>> indexing as follows :-
>>>>>>>> ldr x1, =0x3001000
>>>>>>>> ldr w2, [x1], #4 <<<------ PC = 0x40000ca8
>>>>>>> Increment on on load is not supported by the emulation layer.
>>>>>>
>>>>>> That is surprising. The reason being if I try to read the GICC
>>>>>> register (0x3002000) with post indexing then it works fine.
>>>>> When the ISV bit is not set, Xen would have to decode the instruction to
>>>>> actually emulate the access and properly modify the registers values as
>>>>> long as providing the “emulated” access value.
>>>>
>>>> This is very interesting. Is this being done for any of the other
>>>> instructions in Xen ?
>>>
>>> No Xen is not trying to decode any instructions.
>>
>> We actually decode some instructions (see arch/arm/decode.c). This was
>> necessary because early revision of Cortex-A15 would not properly fill
>> syndrome for Thumb instructions.
>>
>> decode_instruction() could be extended to handle the specific instruction if
>> needed.
>>
>>> If you look at Linux source code, this is the kind of stuff that the kernel
>>> is delegating to user application (qemu) to do as it can be quite complex.
>>>
>>>>> There is not such a decoder in Xen right now which means those kind of
>>>>> accesses are not supported for emulated mmio accesses.
>>>>
>>>> I am actually trying to understand where I will need to make the changes
>>>> if I have to add support for the decoder. The reason being this issue is
>>>> being faced by one of our customer application.
>>>> Besides changing the instruction to prevent post increment, is there any
>>>> other mitigation ?
>>>
>>> Not that I know of.
>>
>> Decoding the instruction is the only solution if you don't want to update the
>> baremetal app.
>>
>>>>
>>>> The reason being I don't see a way to instruct the compiler to not
>>>> generate the post indexing instructions.
>> In general, it is not safe to let the compiler decide for you how to access
>> the MMIO registers as it can do all sort of optimization behind your back.
>> That's why...
>>
>>>
>>> You can define io access functions instead of letting the compiler generate
>>> the read/write functions.
>>> Look at arch/arm64/include/asm-arm/io.h in linux for example.
>>
>> ... Linux provides io{read, write} helpers.
>>
>> @Ayan, is the code written in assembly or C? If the latter, how is it written?
> 
> I chatted with Ayan this morning and he will try to contact the original
> author and get a proper answer, but I am pretty sure that it is written
> in C. What makes it worse is that I believe the issue only started to
> appear recently due to updating compiler (hence new compiler
> optimizations.) Which means that this issue might become more common in
> the future in other environments too :-(
> 
> I believe this is the code (source [1]):
> 
>      XScuGic_WriteReg(BaseAddress, XSCUGIC_DIST_EN_OFFSET, 0UL);
> 
> which expands to:
> 
>      #define XScuGic_WriteReg(BaseAddress, RegOffset, Data) \
>      	(Xil_Out32(((BaseAddress) + (RegOffset)), ((u32)(Data))))
> 
> Which is:
> 
>      static INLINE void Xil_Out32(UINTPTR Addr, u32 Value)
>      {
>      	/* write 32 bit value to specified address */
>      #ifndef ENABLE_SAFETY
>      	volatile u32 *LocalAddr = (volatile u32 *)Addr;
>      	*LocalAddr = Value;
>      #else
>      	XStl_RegUpdate(Addr, Value);
>      #endif
>      }
> 
> [1] https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/scugic/examples/xscugic_low_level_example.c
> 
> 
> So it seems to be a pretty standard volatile write in a static inline
> function.
> 
> 
>> That said, the ldr writeback instructions should be safe to use. It happens
>> that we never had OS using them before.
> 
> Yeah I agree... My two cents is that if we can find a way to decode the
> instruction without a huge amount of code then it would be worth doing
> it.
> 
I have submitted a patch to decode the ldr/str post-indexing instructions.
"[RFC PATCH] Added the logic to decode 32 bit ldr/str post-indexing 
instructions"

Please have a look and let me know your thoughts.
- Ayan


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 17:09:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 17:09:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228141.394688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo7O4-0000Uu-QI; Fri, 19 Nov 2021 17:09:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228141.394688; Fri, 19 Nov 2021 17:09:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo7O4-0000Un-Me; Fri, 19 Nov 2021 17:09:20 +0000
Received: by outflank-mailman (input) for mailman id 228141;
 Fri, 19 Nov 2021 17:09:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo7O3-0000Uh-N6
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 17:09:19 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo7O3-0004Eb-B6
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 17:09:19 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo7O3-0006t0-A7
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 17:09:19 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mo7Nz-00069e-7w; Fri, 19 Nov 2021 17:09:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=3JWVt85Np0TdEmjHBmi3IIx6MA/D5qyyG6+ILg7S4JU=; b=E0z+yS0jCxF33/izfTykrExxnd
	hfRA6HUi0MOrT4po2JIvR91ugN3eexg4couLm094yFTq4rDUq0ue0XFPd+esk3+U9VXPUcwnNR99P
	8h823yS6yEdcWp4p/Vvzkkda3+p67eAaTPbbVX+a6YA7mAHo9zU/wiBpFYpd5AiS6QSs=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24983.55866.708476.70068@mariner.uk.xensource.com>
Date: Fri, 19 Nov 2021 17:09:14 +0000
To: Andrew Cooper <amc96@srcf.net>
Cc: xen-devel@lists.xenproject.org,
    Roger Pau Monne <roger.pau@citrix.com>,
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH for-4.16 v3] efi: fix alignment of function parameters in
 compat mode
In-Reply-To: <40b1a70a-12ed-e059-3bbd-a93b85a96f1d@srcf.net>
References: <20211119152403.12069-1-iwj@xenproject.org>
	<40b1a70a-12ed-e059-3bbd-a93b85a96f1d@srcf.net>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("Re: [PATCH for-4.16 v3] efi: fix alignment of function parameters in compat mode"):
> Some hardtabs appear to have slipped in.

Thanks.  Fixed.

> Jan gave a conditional R-by which permitted a change along these lines,
> but he's left the office now too, so you'll have to take him up on that
> offer if you want this committing before Monday.

Right.

FTAOD I think I have done what Jan approved, and Andy double checked
that.  So I am about to push this.  For the record, final version
below.

Ian.

>From be12fcca8b784e456df3adedbffe657d753c5ff9 Mon Sep 17 00:00:00 2001
From: Roger Pau Monne <roger.pau@citrix.com>
Date: Thu, 18 Nov 2021 09:28:06 +0100
Subject: [PATCH for-4.16 v3] efi: fix alignment of function parameters in
 compat mode
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Andrew Cooper <amc96@srcf.net>

Currently the max_store_size, remain_store_size and max_size in
compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
13.0.0 complain with:

In file included from compat.c:30:
./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.max_store_size,
            ^
./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.remain_store_size,
            ^
./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
            &op->u.query_variable_info.max_size);
            ^
Fix this by bouncing the variables on the stack in order for them to
be 8 byte aligned.

Note this could be done in a more selective manner to only apply to
compat code calls, but given the overhead of making an EFI call doing
an extra copy of 3 variables doesn't seem to warrant the special
casing.

Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
Reviewed-by: Ian Jackson <iwj@xenproject.org>
Signed-off-by: Ian Jackson <iwj@xenproject.org>
Reviewed-by: Jan Beulich <jbeulich@suse.com>

---
Changes since v3:
 - Remove hard tabs.  Apply Jan's r-b as authorised in email.
Changes since v2:
 - Adjust the commentary as per discussion.
Changes since v1:
 - Copy back the results.
---
 xen/common/efi/runtime.c | 31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)

diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index 375b94229e..d2fdc28df3 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
     break;
 
     case XEN_EFI_query_variable_info:
+    {
+        uint64_t max_store_size, remain_store_size, max_size;
+
         if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
             return -EINVAL;
 
@@ -638,16 +641,36 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
 
         if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
             return -EOPNOTSUPP;
+
+        /*
+         * Bounce the variables onto the stack to make them 8 byte aligned when
+         * called from the compat handler, as their placement in
+         * compat_pf_efi_runtime_call will make them 4 byte aligned instead and
+         * and compilers may validly complain.
+         *
+         * Note that while the function parameters are OUT only, copy the
+         * values here anyway just in case. This is done regardless of whether
+         * called from the compat handler or not, as it's not worth the extra
+         * logic to differentiate.
+         */
+        max_store_size = op->u.query_variable_info.max_store_size;
+        remain_store_size = op->u.query_variable_info.remain_store_size;
+        max_size = op->u.query_variable_info.max_size;
+
         state = efi_rs_enter();
         if ( !state.cr3 )
             return -EOPNOTSUPP;
         status = efi_rs->QueryVariableInfo(
-            op->u.query_variable_info.attr,
-            &op->u.query_variable_info.max_store_size,
-            &op->u.query_variable_info.remain_store_size,
-            &op->u.query_variable_info.max_size);
+            op->u.query_variable_info.attr, &max_store_size, &remain_store_size,
+            &max_size);
         efi_rs_leave(&state);
+
+        op->u.query_variable_info.max_store_size = max_store_size;
+        op->u.query_variable_info.remain_store_size = remain_store_size;
+        op->u.query_variable_info.max_size = max_size;
+
         break;
+    }
 
     case XEN_EFI_query_capsule_capabilities:
     case XEN_EFI_update_capsule:
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 17:11:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 17:11:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228147.394702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo7QX-0001tJ-8G; Fri, 19 Nov 2021 17:11:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228147.394702; Fri, 19 Nov 2021 17:11:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo7QX-0001tC-4u; Fri, 19 Nov 2021 17:11:53 +0000
Received: by outflank-mailman (input) for mailman id 228147;
 Fri, 19 Nov 2021 17:11:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo7QV-0001t6-8l
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 17:11:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo7QV-0004IX-7t
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 17:11:51 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mo7QV-0007DS-71
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 17:11:51 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mo7QR-0006AG-66; Fri, 19 Nov 2021 17:11:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=fBFketeRe1HeyMVskFP3UQlZf/6oaaluiuzUhsXlt/U=; b=4kIVc8ZFW7qRpAcdwtjyV9SDe3
	2cCtMg5D313OdZyqOk7/omZB0vXe3RTTj+n6szJs0xkdxM3M9x7pFY/HjoOeYiVxHkc72QrqHjlhD
	1r3cpz7JGTExqMCQfaoacUqhhB5svFaIVb8aHcQl+DzC1LG9Ke/SgZMXN7J29RFxQTfA=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24983.56018.616233.142494@mariner.uk.xensource.com>
Date: Fri, 19 Nov 2021 17:11:46 +0000
To: Andrew Cooper <amc96@srcf.net>
Cc: xen-devel@lists.xenproject.org,
    committers@xenproject.org
Subject: Re: Xen 4.16 development update - tree status
In-Reply-To: <099d9fdc-6ea5-d6ba-6ca9-62e724ec376f@srcf.net>
References: <24983.49015.777430.780265@mariner.uk.xensource.com>
	<099d9fdc-6ea5-d6ba-6ca9-62e724ec376f@srcf.net>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("Re: Xen 4.16 development update - tree status"):
> On 19/11/2021 15:15, Ian Jackson wrote:
> > Open issues and potential blockers
> > ==================================

Thanks, Andrew, for this helpful information.

> > I am aware of three issues for which I don't know the current
> > disposition:
> >
> > * "x86/IOMMU: enabled / intremap handling"
> >   3/3 "AMD/IOMMU: iommu_enable vs iommu_intremap"
> >   Last I heard this was being reworked.
> 
> Some of this has been committed, and has fixed the regression I reported.
> 
> One part is quite risky, and not a regression fix (Xen has been broken
> for years and years here). I suggest deferring that part to 4.17.

Right.  That's 3/.  1/ and 2/ have been committed already.

> > * I have a note "HPET regression".  There have been number of patches in
> >   this area.  Most recently,
> >   "x86/hpet: setup HPET even when disabled due to stopping in deep C states"
> 
> This regression has been fixed too. The bugfix got in ahead of RC1.

Oh, good, thanks.

> > * "x86/viridian: EOI MSR should always happen in affected vCPU context"
> >   Jan mentioned this on IRC but I don't see any discussion of it in
> >   my mailbox.
> >
> > The last two were mentioned in my last release update, but I don't
> > seem to find any definitive conclusion.  x86 maintainers, can you
> > please confirm ?
> 
> There is not consensus on whether the change is correct, although I
> admit it had fallen off my radar.
> 
> All it is doing is introducing two ASSERT_UNREACHABLE()'s. It's not
> critical for 4.16 at this point.

OK, thanks for the information.  It sounds like this might be debated.
So if anyone disagrees, and thinks I ought to have this on my 4.16
radar, please let me know.

Meanwhile I just committed the EFI alignment fix, which was the one
other outstanding item.  It's too quiet.  I'm expecting a monster to
jump out at any moment...

Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 17:27:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 17:27:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228153.394714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo7f2-0003R4-Gt; Fri, 19 Nov 2021 17:26:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228153.394714; Fri, 19 Nov 2021 17:26:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo7f2-0003Qx-Dc; Fri, 19 Nov 2021 17:26:52 +0000
Received: by outflank-mailman (input) for mailman id 228153;
 Fri, 19 Nov 2021 17:26:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mo7f0-0003QV-7f
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 17:26:50 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mo7ez-0004XS-Me; Fri, 19 Nov 2021 17:26:49 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=[192.168.20.70]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mo7ez-00082P-Fw; Fri, 19 Nov 2021 17:26:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=U5dnynHItuKNkRyATJgUnaJ9FKE9f4aAg4CAIDjAJao=; b=dYSbn9gAWTV5u3YqPIl8XYUs7S
	A2cYfp3c7HtoEFvyQ/MsR4jn5wGH21aiZysW7B31pxaCXXwETDu4smSSg7pIWhtRLJqYxD7Zug2wk
	KW914dJiPkX9TphOFeMys86lXSjaA83N7wrUUsgx+QA7MuGynBBqlBCKgxr/xSr/2Wuc=;
Message-ID: <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org>
Date: Fri, 19 Nov 2021 17:26:47 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, stefano.stabellini@xilinx.com,
 Volodymyr_Babchuk@epam.com, bertrand.marquis@arm.com, rahul.singh@arm.com,
 ayankuma@xilinx.com
References: <20211119165202.42442-1-ayankuma@xilinx.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211119165202.42442-1-ayankuma@xilinx.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 19/11/2021 16:52, Ayan Kumar Halder wrote:
> At present, post indexing instructions are not emulated by Xen.

Can you explain in the commit message why this is a problem?

> When Xen gets the exception, EL2_ESR.ISV bit not set. Thus as a
> result, data abort is triggered.
> 
> Added the logic to decode ldr/str post indexing instructions.
> With this, Xen can decode instructions like these:-
> ldr w2, [x1], #4
> Thus, domU can read ioreg with post indexing instructions.
Hmmm.... Don't you also need to update the register x1 after the 
instruction was emulated?

> 
> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
> ---
> Note to reviewer:-
> This patch is based on an issue discussed in
> https://lists.xenproject.org/archives/html/xen-devel/2021-11/msg00969.html
> "Xen/ARM - Query about a data abort seen while reading GICD registers"
> 
> 
>   xen/arch/arm/decode.c | 77 +++++++++++++++++++++++++++++++++++++++++++
>   xen/arch/arm/io.c     | 14 ++++++--
>   2 files changed, 88 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
> index 792c2e92a7..7b60bedbc5 100644
> --- a/xen/arch/arm/decode.c
> +++ b/xen/arch/arm/decode.c
> @@ -84,6 +84,80 @@ bad_thumb2:
>       return 1;
>   }
>   
> +static inline int32_t extract32(uint32_t value, int start, int length)

Any reason to have start and length signed?

> +{
> +    int32_t ret;
> +
> +    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
> +        return -EINVAL;
> +
> +    ret = (value >> start) & (~0U >> (32 - length));

This would be easier to read if you use GENMASK().

> +
> +    return ret;
> +}
> +
> +static int decode_64bit_loadstore_postindexing(register_t pc, struct hsr_dabt *dabt)
> +{
> +    uint32_t instr;
> +    int size;
> +    int v;
> +    int opc;
> +    int rt;
> +    int imm9;

Should all those variables need to be signed?

> +
> +    /* For details on decoding, refer to Armv8 Architecture reference manual
> +     * Section - "Load/store register (immediate post-indexed)", Pg 318
The page number varies between revision of the Armv8 spec. So can you 
specify which version you used?

> +    */

The coding style for comment in Xen is:

/*
  * Foo
  * Bar
  */

> +    if ( raw_copy_from_guest(&instr, (void * __user)pc, sizeof (instr)) )
> +        return -EFAULT;
> +
> +    /* First, let's check for the fixed values */
> +
> +    /*  As per the "Encoding table for the Loads and Stores group", Pg 299

Same question here about the version.

> +     * op4 = 1 - Load/store register (immediate post-indexed)
> +     */

Coding style.

> +    if ( extract32(instr, 10, 2) != 1 )
> +        goto bad_64bit_loadstore;
> +
> +    /* For the following, refer to "Load/store register (immediate post-indexed)"
> +     * to get the fixed values at various bit positions.
> +     */
> +    if ( extract32(instr, 21, 1) != 0 )
> +        goto bad_64bit_loadstore;
> +
> +    if ( extract32(instr, 24, 2) != 0 )
> +        goto bad_64bit_loadstore;
> +
> +    if ( extract32(instr, 27, 3) != 7 )
> +        goto bad_64bit_loadstore;
> +
> +    size = extract32(instr, 30, 2);
> +    v = extract32(instr, 26, 1);
> +    opc = extract32(instr, 22, 1);
> +
> +    /* At the moment, we support STR(immediate) - 32 bit variant and
> +     * LDR(immediate) - 32 bit variant only.
> +     */

Coding style.

> +    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
>

The coding style for this should be:

if ( !(( size == 2 ) && ( ... ) ... ) )

  +        goto bad_64bit_loadstore;
> +
> +    rt = extract32(instr, 0, 5);
> +    imm9 = extract32(instr, 12, 9);
> +
> +    if ( imm9 < 0 )
> +        update_dabt(dabt, rt, size, true);
> +    else
> +        update_dabt(dabt, rt, size, false);

This could be simplified with:

update_dabt(dabt, rt, size, imm9 < 0);

> +
> +    dabt->valid = 1;
> +
> +
> +    return 0;
> +bad_64bit_loadstore:
> +    gprintk(XENLOG_ERR, "unhandled 64bit instruction 0x%x\n", instr);
> +    return 1;
> +}
> +
>   static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>   {
>       uint16_t instr;
> @@ -155,6 +229,9 @@ int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt *dabt)
>       if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
>           return decode_thumb(regs->pc, dabt);
>   
> +    if ( is_64bit_domain(current->domain) )

You can still run 32-bit code in 64-bit domain. So I think you want to 
check the SPSR mode.

> +        return decode_64bit_loadstore_postindexing(regs->pc, dabt);
> +
>       /* TODO: Handle ARM instruction */
>       gprintk(XENLOG_ERR, "unhandled ARM instruction\n");

I think this comment should now be updated to "unhandled 32-bit ...".

>   
> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
> index 729287e37c..49e80358c0 100644
> --- a/xen/arch/arm/io.c
> +++ b/xen/arch/arm/io.c
> @@ -106,14 +106,13 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
>           .gpa = gpa,
>           .dabt = dabt
>       };
> +    int rc;
>   
>       ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
>   
>       handler = find_mmio_handler(v->domain, info.gpa);
>       if ( !handler )
>       {
> -        int rc;
> -
>           rc = try_fwd_ioserv(regs, v, &info);
>           if ( rc == IO_HANDLED )
>               return handle_ioserv(regs, v);
> @@ -123,7 +122,16 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
>   
>       /* All the instructions used on emulated MMIO region should be valid */
>       if ( !dabt.valid )
> -        return IO_ABORT;
> +    {
> +        /*
> +         * Post indexing ldr/str instructions are not emulated by Xen. So, the
> +         * ISS is invalid. In such a scenario, we try to manually decode the
> +         * instruction from the program counter.

I am afraid this is wrong. The problem here is the processor didn't 
provide a valid syndrom for post-indexing ldr/str instructions. So in 
order to support them, Xen must decode.

> +         */
> +        rc = decode_instruction(regs, &info.dabt);

I actually expect this to also be useful when forwarding the I/O to 
device-model. So I would move the decoding earlier in the code and the 
check of dabt.valid earlier.

> +        if ( rc )
> +            return IO_ABORT;
> +    }
>   
>       /*
>        * Erratum 766422: Thumb store translation fault to Hypervisor may
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:03:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:03:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228161.394725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8E2-0007dc-85; Fri, 19 Nov 2021 18:03:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228161.394725; Fri, 19 Nov 2021 18:03:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8E2-0007dV-54; Fri, 19 Nov 2021 18:03:02 +0000
Received: by outflank-mailman (input) for mailman id 228161;
 Fri, 19 Nov 2021 18:03:01 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mo8E1-0007dP-8j
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:03:01 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mo8E0-0005Bt-NP; Fri, 19 Nov 2021 18:03:00 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=[192.168.20.70]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mo8E0-0001wy-Gn; Fri, 19 Nov 2021 18:03:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=elKBqsSb9ooys+KbOZi0fuWZcG0TS9+OFsE8t0Ex5e8=; b=ELJqL6gSpWliOlhZ1HjlVtDy9G
	kPxyJwZaYujRV8VONmabeopLQubIH3WzekT4YtQar/VjAsSjCyyLnwY6Ldba7jjWHhVT8oDEgGIX2
	/RSewm29S2xxTpOrHFKYy9rY9oEXp6JSbc9ylGD640tRuwuftPCUon5Yi+DgMRw5/l3k=;
Message-ID: <17cd2c69-56cb-15b9-d381-f854aea55d27@xen.org>
Date: Fri, 19 Nov 2021 18:02:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Luca Fancellu <Luca.Fancellu@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 George Dunlap <george.dunlap@citrix.com>, Juergen Gross <jgross@suse.com>,
 Dario Faggioli <dfaggioli@suse.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
 <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
 <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
 <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
 <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 18/11/2021 02:19, Stefano Stabellini wrote:
> On Wed, 17 Nov 2021, Julien Grall wrote:
>>>>>> On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
>>>>>>
>>>>>> Hi Luca,
>>>>>>
>>>>>> On 17/11/2021 09:57, Luca Fancellu wrote:
>>>>>>> Currently Xen creates a default cpupool0 that contains all the cpu
>>>>>>> brought up
>>>>>>> during boot and it assumes that the platform has only one kind of
>>>>>>> CPU.
>>>>>>> This assumption does not hold on big.LITTLE platform, but putting
>>>>>>> different
>>>>>>> type of CPU in the same cpupool can result in instability and
>>>>>>> security issues
>>>>>>> for the domains running on the pool.
>>>>>>
>>>>>> I agree that you can't move a LITTLE vCPU to a big pCPU. However...
>>>>>>
>>>>>>> For this reason this serie introduces an architecture specific way
>>>>>>> to create
>>>>>>> different cpupool at boot time, this is particularly useful on ARM
>>>>>>> big.LITTLE
>>>>>>> platform where there might be the need to have different cpupools
>>>>>>> for each type
>>>>>>> of core, but also systems using NUMA can have different cpu pool for
>>>>>>> each node.
>>>>>>
>>>>>> ... from my understanding, all the vCPUs of a domain have to be in the
>>>>>> same cpupool. So with this approach it is not possible:
>>>>>>     1) to have a mix of LITTLE and big vCPUs in the domain
>>>>>>     2) to create a domain spanning across two NUMA nodes
>>>>>>
>>>>>> So I think we need to make sure that any solutions we go through will
>>>>>> not prevent us to implement those setups.
>>>>> The point of this patch is to make all cores available without breaking
>>>>> the current behaviour of existing system.
>>>>
>>>> I might be missing some context here. By breaking current behavior, do you
>>>> mean user that may want to add "hmp-unsafe" on the command line?
>>>
>>> Right, with hmp-unsafe the behaviour is now the same as without, only extra
>>> cores are parked in other cpupools.
>>>
>>> So you have a point in fact that behaviour is changed for someone who was
>>> using hmp-unsafe before if this is activated.
>>> The command line argument suggested by Jurgen definitely makes sense here.
>>>
>>> We could instead do the following:
>>> - when this is activated in the configuration, boot all cores and park them
>>> in different pools (depending on command line argument). Current behaviour
>>> not change if other pools are not used (but more cores will be on in xen)
>>
>>  From my understanding, it is possible to move a pCPU in/out a pool afterwards.
>> So the security concern with big.LITTLE is still present, even though it would
>> be difficult to hit it.
> 
> As far as I know moving a pCPU in/out of a pool is something that cannot
> happen automatically: it requires manual intervention to the user and it
> is uncommon. 
> We could print a warning or simply return error to prevent
> the action from happening. Or something like:
> 
> "This action might result in memory corruptions and invalid behavior. Do
> you want to continue? [Y/N]
> 
> 
>> I am also concerned that it would be more difficult to detect any
>> misconfiguration. So I think this option would still need to be turned on only
>> if hmp-unsafe are the new command line one are both on.
>>
>> If we want to enable it without hmp-unsafe on, we would need to at least lock
>> the pools.
> 
> Locking the pools is a good idea.
> 
> My preference is not to tie this feature to the hmp-unsafe command line,
> more on this below.

The only reason I suggested to tie with hmp-unsafe is if you (or anyone 
else) really wanted to use a version where the pool are unlocked.

If we are going to implement the lock, then I think the hmp-unsafe would 
not be necessary for such configuration.

> 
> 
>>> - when hmp-unsafe is on, this feature will be turned of (if activated in
>>> configuration) and all cores would be added in the same pool.
>>>
>>> What do you think ?
>>
>> I am split. On one hand, this is making easier for someone to try big.LITTLE
>> as you don't have manually pin vCPUs. On the other hand, this is handling a
>> single use-case and you would need to use hmp-unsafe and pinning if you want
>> to get more exotic setup (e.g. a domain with big.LITTLE).
>>
>> Another possible solution is to pin dom0 vCPUs (AFAIK they are just sticky by
>> default) and then create the pools from dom0 userspace. My assumption is for
>> dom0less we would want to use pinning instead.
>>
>> That said I would like to hear from Xilinx and EPAM as, IIRC, they are already
>> using hmp-unsafe in production.
> 
> This discussion has been very interesting, it is cool to hear new ideas
> like this one. I have a couple of thoughts to share.
> 
> First I think that the ability of creating cpupools at boot time is
> super important. It goes way beyond big.LITTLE. It would be incredibly
> useful to separate real-time (sched=null) and non-real-time
> (sched=credit2) workloads. I think it will only become more important
> going forward so I'd love to see an option to configure cpupools that
> works for dom0less. It could be based on device tree properties rather
> than kconfig options.
> 
> It is true that if we had the devicetree-based cpupool configuration I
> mentioned, then somebody could use it to create cpupools matching
> big.LITTLE. > So "in theory" it solves the problem. However, I think that
> for big.LITTLE it would be suboptimal. For big.LITTLE it would be best
> if Xen configured the cpupools automatically rather than based on the
> device tree configuration. 

This brings one question. How do Linux detect and use big.LITTLE? Is 
there a Device-Tree binding?

[...]

> So I think that it is a good idea to have a command line option (better
> than a kconfig option) to trigger the MIDR-based cpupool creation at
> boot time. The option could be called midr-cpupools=on/off or
> hw-cpupools=on/off for example.
> In terms of whether it should be the default or not, I don't feel
> strongly about it.

On by default means this will security supported and we need to be 
reasonably confident this cannot be broken.

In this case, I am not only referring to moving a pCPU between pool but 
also Xen doing the right thing (e.g. finding the minimum cache line size).


[...]

> - midr-cpupools alone
> cpupools created at boot, warning/errors on changing cpupools >
> - midr-cpupools + hmp-unsafe
> cpupools created at boot, changing cpupools is allowed (we could still
> warn but no errors)
> 
> - hmp-unsafe alone
> same as today with hmp-unsafe

I like better Juergen's version. But before agreeing on the command line 
, I would like to understand how Linux is dealing with big.LITTLE today 
(see my question above).

> 
> For the default as I said I don't have a strong preference. I think
> midr-cpupools could be "on" be default.

I think this should be off at the beginning until the feature is matured 
enough. We are soon opening the tree again for the next development 
cycle. So I think we have enough time to make sure everything work 
properly to have turned on by default before next release.


Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:15:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:15:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228169.394736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Pl-0000kj-Fe; Fri, 19 Nov 2021 18:15:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228169.394736; Fri, 19 Nov 2021 18:15:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Pl-0000kc-CO; Fri, 19 Nov 2021 18:15:09 +0000
Received: by outflank-mailman (input) for mailman id 228169;
 Fri, 19 Nov 2021 18:15:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo8Pk-0000kS-4d; Fri, 19 Nov 2021 18:15:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo8Pj-0005Ns-W6; Fri, 19 Nov 2021 18:15:07 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo8Pj-00052W-MQ; Fri, 19 Nov 2021 18:15:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mo8Pj-00026j-Lv; Fri, 19 Nov 2021 18:15:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NeLf4xrgtbbxupGOhOtba3FemU0WJtkebMRnLpD5b0k=; b=PJdk2BV3B+jaGpQVfliXCvLMXE
	ynXXYnqYPbusH73MX9mOC4ytbZAuQM2Xbb7ypuH09VQ/QvyVkc+qMaNUkrc9xhTGpc/268Fg4DP3t
	k3w9hM2ThybKuwKtHZj1A9RtZW5sgAh75JoRMv+u2M/CQH+INtFHuwMb5BTe+zqNYy4c=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166195-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166195: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=24d7cc416bba1f88da4c7b2649ac32486229b97b
X-Osstest-Versions-That:
    xen=1cffc48f1e1f972daeec579c62de4bb24f3152fa
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 18:15:07 +0000

flight 166195 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166195/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  24d7cc416bba1f88da4c7b2649ac32486229b97b
baseline version:
 xen                  1cffc48f1e1f972daeec579c62de4bb24f3152fa

Last test of basis   166176  2021-11-17 17:02:49 Z    2 days
Testing same since   166195  2021-11-19 15:02:50 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Anthony PERARD <anthony.perard@citrix.com>
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Nick Rosbrook <rosbrookn@ainfosec.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   1cffc48f1e..24d7cc416b  24d7cc416bba1f88da4c7b2649ac32486229b97b -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:18:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:18:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228174.394750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Sq-0001Qn-VA; Fri, 19 Nov 2021 18:18:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228174.394750; Fri, 19 Nov 2021 18:18:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Sq-0001Qg-S7; Fri, 19 Nov 2021 18:18:20 +0000
Received: by outflank-mailman (input) for mailman id 228174;
 Fri, 19 Nov 2021 18:18:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GMHT=QG=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mo8Sq-0001Qa-6R
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:18:20 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12313dd9-4965-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 19:18:18 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id y26so47001298lfa.11
 for <xen-devel@lists.xenproject.org>; Fri, 19 Nov 2021 10:18:18 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id o9sm54121lfi.182.2021.11.19.10.18.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Nov 2021 10:18:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12313dd9-4965-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=1Sj7cKDDHZ5tNz5j011GwrHTDVtsOHwByLu9tI/Ma5Y=;
        b=OCwTtys2U1rFvLbTOwzWz53eDKuRyTyoIcawZzXloJ2LGts0Ce7xPVigXAQjlYRpo+
         MBj8KpxKsGa7j0UFkiff6woQyMLsh83dHv2s9nnps6e8fLjJ0wejvvGdlkEZSNgmMf6P
         CLmG6uaU8vZfhHk4GTRLmRK6nOIcgq0JPaIaqNMF1F288Mu/Jo8imbjG57H3t3XXIjfS
         JRzFg2yCyLSzulmdkL5h8AQwav9+ttSipXppyI+TA9dvfLn4jyyC/2c2OvkNZI9KoHCV
         Gh8s3nvz0Lr5WY8FScnd3cPvJZ+mxcS4h6nDR7YFkN9wSSxMxvA8/tPwJXdTL/uJz8cv
         QAlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=1Sj7cKDDHZ5tNz5j011GwrHTDVtsOHwByLu9tI/Ma5Y=;
        b=L69Pky0vAvkPap7sFNi8Pnj1FgvLVHlXRaoNpty0nSOsIBhEIs+cM/J1FYHuZ6JYwC
         490PI7ozda8ljWEbIUdLEQReB6tW4Lu3s/CHx0/RtWLF7hB3szj9PmnOIlJEf/jCCMyJ
         cTLYO2vYsouR82nNWJY5YgLx6LcHqggnPDKOiheEeoJndjFRusn7M3W7xpDL5DIBDB5n
         58N4o9tym16bF4qR7OPUdH4jbHT4YZ6YBOccoJrC95XjeQUoZePW3Zeu2/1GvTc0DB7Q
         23QIXdu3UQO6OxURWZPA5IIIUforRoeeUat1xLFfCalxBZtXH48I5bQhlt21o3NSpMLm
         rkhw==
X-Gm-Message-State: AOAM530otoykEMp2fsOkta6A1iIMX4Osg3IyaknMPR1DMN2BgagLlFC7
	9T/AQnLZjNg6YgFMeGUc/L0=
X-Google-Smtp-Source: ABdhPJzNU/U6MP0A3QqSIot2eKCpw1CX41hseoDEmEZFC01ngF1P8puDg24K1Ae3o4nLIA7GrwUzOA==
X-Received: by 2002:a2e:b163:: with SMTP id a3mr28156520ljm.264.1637345898175;
        Fri, 19 Nov 2021 10:18:18 -0800 (PST)
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-4-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s>
 <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
 <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <f1f1025b-911d-3d27-f408-9c042bc4fca4@gmail.com>
Date: Fri, 19 Nov 2021 20:18:16 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US


On 19.11.21 02:59, Stefano Stabellini wrote:


Hi Stefano

> On Tue, 9 Nov 2021, Oleksandr wrote:
>> On 28.10.21 19:37, Stefano Stabellini wrote:
>>
>> Hi Stefano
>>
>> I am sorry for the late response.
>>
>>> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>
>>>> The main reason of this change is that unpopulated-alloc
>>>> code cannot be used in its current form on Arm, but there
>>>> is a desire to reuse it to avoid wasting real RAM pages
>>>> for the grant/foreign mappings.
>>>>
>>>> The problem is that system "iomem_resource" is used for
>>>> the address space allocation, but the really unallocated
>>>> space can't be figured out precisely by the domain on Arm
>>>> without hypervisor involvement. For example, not all device
>>>> I/O regions are known by the time domain starts creating
>>>> grant/foreign mappings. And following the advise from
>>>> "iomem_resource" we might end up reusing these regions by
>>>> a mistake. So, the hypervisor which maintains the P2M for
>>>> the domain is in the best position to provide unused regions
>>>> of guest physical address space which could be safely used
>>>> to create grant/foreign mappings.
>>>>
>>>> Introduce new helper arch_xen_unpopulated_init() which purpose
>>>> is to create specific Xen resource based on the memory regions
>>>> provided by the hypervisor to be used as unused space for Xen
>>>> scratch pages.
>>>>
>>>> If arch doesn't implement arch_xen_unpopulated_init() to
>>>> initialize Xen resource the default "iomem_resource" will be used.
>>>> So the behavior on x86 won't be changed.
>>>>
>>>> Also fall back to allocate xenballooned pages (steal real RAM
>>>> pages) if we do not have any suitable resource to work with and
>>>> as the result we won't be able to provide unpopulated pages.
>>>>
>>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>> ---
>>>> Changes RFC -> V2:
>>>>      - new patch, instead of
>>>>       "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide
>>>> unallocated space"
>>>> ---
>>>>    drivers/xen/unpopulated-alloc.c | 89
>>>> +++++++++++++++++++++++++++++++++++++++--
>>>>    include/xen/xen.h               |  2 +
>>>>    2 files changed, 88 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/xen/unpopulated-alloc.c
>>>> b/drivers/xen/unpopulated-alloc.c
>>>> index a03dc5b..1f1d8d8 100644
>>>> --- a/drivers/xen/unpopulated-alloc.c
>>>> +++ b/drivers/xen/unpopulated-alloc.c
>>>> @@ -8,6 +8,7 @@
>>>>      #include <asm/page.h>
>>>>    +#include <xen/balloon.h>
>>>>    #include <xen/page.h>
>>>>    #include <xen/xen.h>
>>>>    @@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_lock);
>>>>    static struct page *page_list;
>>>>    static unsigned int list_count;
>>>>    +static struct resource *target_resource;
>>>> +static struct resource xen_resource = {
>>>> +	.name = "Xen unused space",
>>>> +};
>>>> +
>>>> +/*
>>>> + * If arch is not happy with system "iomem_resource" being used for
>>>> + * the region allocation it can provide it's own view by initializing
>>>> + * "xen_resource" with unused regions of guest physical address space
>>>> + * provided by the hypervisor.
>>>> + */
>>>> +int __weak arch_xen_unpopulated_init(struct resource *res)
>>>> +{
>>>> +	return -ENOSYS;
>>>> +}
>>>> +
>>>>    static int fill_list(unsigned int nr_pages)
>>>>    {
>>>>    	struct dev_pagemap *pgmap;
>>>> -	struct resource *res;
>>>> +	struct resource *res, *tmp_res = NULL;
>>>>    	void *vaddr;
>>>>    	unsigned int i, alloc_pages = round_up(nr_pages, PAGES_PER_SECTION);
>>>> -	int ret = -ENOMEM;
>>>> +	int ret;
>>>>      	res = kzalloc(sizeof(*res), GFP_KERNEL);
>>>>    	if (!res)
>>>> @@ -30,7 +47,7 @@ static int fill_list(unsigned int nr_pages)
>>>>    	res->name = "Xen scratch";
>>>>    	res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
>>>>    -	ret = allocate_resource(&iomem_resource, res,
>>>> +	ret = allocate_resource(target_resource, res,
>>>>    				alloc_pages * PAGE_SIZE, 0, -1,
>>>>    				PAGES_PER_SECTION * PAGE_SIZE, NULL, NULL);
>>>>    	if (ret < 0) {
>>>> @@ -38,6 +55,31 @@ static int fill_list(unsigned int nr_pages)
>>>>    		goto err_resource;
>>>>    	}
>>>>    +	/*
>>>> +	 * Reserve the region previously allocated from Xen resource to avoid
>>>> +	 * re-using it by someone else.
>>>> +	 */
>>>> +	if (target_resource != &iomem_resource) {
>>>> +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>>>> +		if (!res) {
>>>> +			ret = -ENOMEM;
>>>> +			goto err_insert;
>>>> +		}
>>>> +
>>>> +		tmp_res->name = res->name;
>>>> +		tmp_res->start = res->start;
>>>> +		tmp_res->end = res->end;
>>>> +		tmp_res->flags = res->flags;
>>>> +
>>>> +		ret = insert_resource(&iomem_resource, tmp_res);
>>>> +		if (ret < 0) {
>>>> +			pr_err("Cannot insert IOMEM resource [%llx - %llx]\n",
>>>> +			       tmp_res->start, tmp_res->end);
>>>> +			kfree(tmp_res);
>>>> +			goto err_insert;
>>>> +		}
>>>> +	}
>>> I am a bit confused.. why do we need to do this? Who could be
>>> erroneously re-using the region? Are you saying that the next time
>>> allocate_resource is called it could find the same region again? It
>>> doesn't seem possible?
>>
>> No, as I understand the allocate_resource() being called for the same root
>> resource won't provide the same region... We only need to do this (insert the
>> region into "iomem_resource") if we allocated it from our *internal*
>> "xen_resource", as *global* "iomem_resource" (which is used everywhere) is not
>> aware of that region has been already allocated. So inserting a region here we
>> reserving it, otherwise it could be reused elsewhere.
> But elsewhere where?

I think, theoretically everywhere where 
allocate_resource(&iomem_resource, ...) is called.


> Let's say that allocate_resource allocates a range from xen_resource.
>  From reading the code, it doesn't look like iomem_resource would have
> that range because the extended regions described under /hypervisor are
> not added automatically to iomem_resource.
>
> So what if we don't call insert_resource? Nothing could allocate the
> same range because iomem_resource doesn't have it at all and
> xen_resource is not used anywhere if not here.
>
> What am I missing?


Below my understanding which, of course, might be wrong.

If we don't claim resource by calling insert_resource (or even 
request_resource) here then the same range could be allocated everywhere 
where allocate_resource(&iomem_resource, ...) is called.
I don't see what prevents the same range from being allocated. Why 
actually allocate_resource(&iomem_resource, ...) can't provide the same 
range if it is free (not-reserved-yet) from it's PoV? The comment above 
allocate_resource() says "allocate empty slot in the resource tree given 
range & alignment". So this "empty slot" could be exactly the same range.

I experimented with that a bit trying to call 
allocate_resource(&iomem_resource, ...) several times in another place 
to see what ranges it returns in both cases (w/ and w/o calling 
insert_resource here). So an experiment confirmed (of course, if I made 
it correctly) that the same range could be allocated if we didn't call 
insert_resource() here. And as I understand there is nothing strange 
here, as iomem_resource covers all address space initially (0, -1) and 
everything *not* inserted/requested (in other words, reserved) yet is 
considered as free and could be provided if fits constraints. Or I 
really missed something?

It feels to me that it would be better to call request_resource() 
instead of insert_resource(). It seems, that if no conflict happens both 
functions will behave in same way, but in case of conflict if the 
conflicting resource entirely fit the new resource the former will 
return an error. I think, this way we will be able to detect that a 
range we are trying to reserve is already present and bail out early.


>
> Or maybe it is the other way around: core Linux code assumes everything
> is described in iomem_resource so something under kernel/ or mm/ would
> crash if we start using a page pointing to an address missing from
> iomem_resource?
>   
>   
>>>>    	pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
>>>>    	if (!pgmap) {
>>>>    		ret = -ENOMEM;
>>>> @@ -95,12 +137,40 @@ static int fill_list(unsigned int nr_pages)
>>>>    err_memremap:
>>>>    	kfree(pgmap);
>>>>    err_pgmap:
>>>> +	if (tmp_res) {
>>>> +		release_resource(tmp_res);
>>>> +		kfree(tmp_res);
>>>> +	}
>>>> +err_insert:
>>>>    	release_resource(res);
>>>>    err_resource:
>>>>    	kfree(res);
>>>>    	return ret;
>>>>    }
>>>>    +static void unpopulated_init(void)
>>>> +{
>>>> +	static bool inited = false;
>>> initialized = false
>> ok.
>>
>>
>>>
>>>> +	int ret;
>>>> +
>>>> +	if (inited)
>>>> +		return;
>>>> +
>>>> +	/*
>>>> +	 * Try to initialize Xen resource the first and fall back to default
>>>> +	 * resource if arch doesn't offer one.
>>>> +	 */
>>>> +	ret = arch_xen_unpopulated_init(&xen_resource);
>>>> +	if (!ret)
>>>> +		target_resource = &xen_resource;
>>>> +	else if (ret == -ENOSYS)
>>>> +		target_resource = &iomem_resource;
>>>> +	else
>>>> +		pr_err("Cannot initialize Xen resource\n");
>>>> +
>>>> +	inited = true;
>>>> +}
>>> Would it make sense to call unpopulated_init from an init function,
>>> rather than every time xen_alloc_unpopulated_pages is called?
>> Good point, thank you. Will do. To be honest, I also don't like the current
>> approach much.
>>
>>
>>>
>>>>    /**
>>>>     * xen_alloc_unpopulated_pages - alloc unpopulated pages
>>>>     * @nr_pages: Number of pages
>>>> @@ -112,6 +182,16 @@ int xen_alloc_unpopulated_pages(unsigned int
>>>> nr_pages, struct page **pages)
>>>>    	unsigned int i;
>>>>    	int ret = 0;
>>>>    +	unpopulated_init();
>>>> +
>>>> +	/*
>>>> +	 * Fall back to default behavior if we do not have any suitable
>>>> resource
>>>> +	 * to allocate required region from and as the result we won't be able
>>>> to
>>>> +	 * construct pages.
>>>> +	 */
>>>> +	if (!target_resource)
>>>> +		return alloc_xenballooned_pages(nr_pages, pages);
>>> The commit message says that the behavior on x86 doesn't change but this
>>> seems to be a change that could impact x86?
>> I don't think, however I didn't tested on x86 and might be wrong, but
>> according to the current patch, on x86 the "target_resource" is always valid
>> and points to the "iomem_resource" as arch_xen_unpopulated_init() is not
>> implemented. So there won't be any fallback to use
>> alloc_(free)_xenballooned_pages() here and fill_list() will behave as usual.
>   
> If target_resource is always valid, then we don't need this special
> check. In fact, the condition should never be true.


The target_resource is always valid and points to the "iomem_resource" 
on x86 (this is equivalent to the behavior before this patch).
On Arm target_resource might be NULL if arch_xen_unpopulated_init() 
failed, for example, if no extended regions reported by the hypervisor.
We cannot use "iomem_resource" on Arm, only a resource constructed from 
extended regions. This is why I added that check (and fallback to 
xenballooned pages).
What I was thinking is that in case of using old Xen (although we would 
need to balloon out RAM pages) we still would be able to keep working, 
so no need to disable CONFIG_XEN_UNPOPULATED_ALLOC on such setups.


>
>
>> You raised a really good question, on Arm we need a fallback to balloon out
>> RAM pages again if hypervisor doesn't provide extended regions (we run on old
>> version, no unused regions with reasonable size, etc), so I decided to put a
>> fallback code here, an indicator of the failure is invalid "target_resource".
> I think it is unnecessary as we already assume today that
> &iomem_resource is always available.
>> I noticed the patch which is about to be upstreamed that removes
>> alloc_(free)xenballooned_pages API [1]. Right now I have no idea how/where
>> this fallback could be implemented as this is under build option control
>> (CONFIG_XEN_UNPOPULATED_ALLOC). So the API with the same name is either used
>> for unpopulated pages (if set) or ballooned pages (if not set). I would
>> appreciate suggestions regarding that. I am wondering would it be possible and
>> correctly to have both mechanisms (unpopulated and ballooned) enabled by
>> default and some init code to decide which one to use at runtime or some sort?
> I would keep it simple and remove the fallback from this patch. So:
>
> - if not CONFIG_XEN_UNPOPULATED_ALLOC, then balloon
> - if CONFIG_XEN_UNPOPULATED_ALLOC, then
>      - xen_resource if present
>      - otherwise iomem_resource

Unfortunately, we cannot use iomem_resource on Arm safely, either 
xen_resource or fail (if no fallback exists).


>
> The xen_resource/iomem_resource config can be done at init time using
> target_resource. At runtime, target_resource is always != NULL so we
> just go ahead and use it.


Thank you for the suggestion. OK, let's keep it simple and drop fallback 
attempts for now. With one remark:
We will make CONFIG_XEN_UNPOPULATED_ALLOC disabled by default on Arm in 
next patch. So by default everything will behave as usual on Arm 
(balloon out RAM pages),
if user knows for sure that Xen reports extended regions, he/she can 
enable the config. This way we won't break anything. What do you think?


[snip]


-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:21:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228181.394802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vx-0003ge-20; Fri, 19 Nov 2021 18:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228181.394802; Fri, 19 Nov 2021 18:21:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vw-0003ew-Ti; Fri, 19 Nov 2021 18:21:32 +0000
Received: by outflank-mailman (input) for mailman id 228181;
 Fri, 19 Nov 2021 18:21:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kvWs=QG=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mo8Vv-0002lj-Dd
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:21:31 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 83b4c0df-4965-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 19:21:29 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83b4c0df-4965-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637346089;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=D1PNIJekrzA7tdjjHayuQPdCkYtdkIDimV5spoCTqgk=;
  b=XxgDPK0AC5DDTLbv7OLcbV7SvDADvj2mWX6tQ3rGDV2nw1WPC1tcSisx
   cJFpKj91M1NqwRA4lgBjCRSz4NapuCaw4Bo4JElAuciT8XYpoeq5gWXFU
   m+gOt7xoZy9gPG8nwO4ngh3S5HRtme9/FdppFh+YvB9UywTHlJp5fIPEy
   0=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: qMld2SvXiIRPdIr3CV0jwAnEW4PIuW/e/LhANq/Cfn6daUuePlHzWJNyCdhDNOfJbYPBXmG5xg
 EwHKN/aCtbYxhsLN/r+zyGdO2WNkj3dsGq37x/sIE3pzBfD+e1e8Frm9pI2/ssKJ6SE6hHNUAn
 bhiFcFFL9iVzjwIqcSwvfVddW8YTl8xvKzFcrgxrlVaQkOt4Qxr4o1MPEKl6p8w/V2Ywj/33cY
 gf6T4O6GbTKt3eHcbRuz63kYFcHOmZfPnGn70O+oV0UsI6hk+ej3D4OOMdKisRHhjohnnIeBkI
 RhazLCT25h6ttJrm9cqPuzut
X-SBRS: 5.1
X-MesageID: 60237328
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:CLEM3qjOxkPp5twJ2vuK/XucX161rRcKZh0ujC45NGQN5FlHY01je
 htvDDyDO/zcZjD2eYtyPoiypkkG6sLUz4RmHANqpXhnQ3kb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cx0IDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1Eq62TbgA1OpT1xugmTV5WMnFkAvFZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNaiGP
 ZFGMmA/BPjGS0JyG3MvNJtvp8z23lvEaw9CrE3WvpNitgA/yyQuieOwYbI5YOeiWsF9jkue4
 GXc8AzRIDsXKdiewjqt6W+3i6nEmiaTcJIfEvi0++BnhHWXx3cPE1sGWF2ju/67h0WiHdVFJ
 CQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4GvMLyyaK1q7t2liVPXZDQB8RcuN6q5pjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swZX2AAcmV8/lqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybZxaIW65P
 RKD5Wu9AaO/2lPwMMebhKrrVawXIVXIT4y5Bpg4kPIQCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDlJI5fsLXkJIeSJRoxZybXF+
 G+TQEhdxAatjHHLM1zSOHtidKnuTdB0qndiZX4gOlOh2n4CZ4ez7fhAK8trLOd/rOEzn+RpS
 /QletmbBqgdQDrw5DlAP4L2q5ZvdUr3iFvWbTalejU2Y7VpWxfNpo3/ZgLq+SRXVni3uMIyr
 qeOzATeRZZfFQ1uANyPMKCkzk+rvGhbk+V3BhOaLt5WcUTq0Y5rNy2u0aNnf5BScU3On2LI2
 RyXDBEUofj2j7U0qNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVtH79h8HrJswf5s7tfjveYHnAFtHXGNZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQy2vb4vkCKUnn4DN6oeicWkJIMhjQ0CFQIdOZ6m/+L
 TvNbCLO1zGCtw==
IronPort-HdrOrdr: A9a23:EwUaCKDKcaahju/lHemi55DYdb4zR+YMi2TC1yhKKCC9Ffbo8f
 xG/c5rsiMc5wxhO03I9eruBEDiewK5yXcW2/hyAV7KZmCP0wHEQL2KhbGSugEIcBefygcy78
 ldmtBFebjNMWQ=
X-IronPort-AV: E=Sophos;i="5.87,248,1631592000"; 
   d="scan'208";a="60237328"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 0/5] x86/traps: Drop exception_table[]
Date: Fri, 19 Nov 2021 18:21:01 +0000
Message-ID: <20211119182106.14868-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Andrew Cooper (5):
  x86/traps: Collect PERFC_exceptions stats for IST vectors too
  x86/traps: Drop dummy_nmi_callback()
  x86/crash: Drop manual hooking of exception_table[]
  x86/traps: Drop exception_table[] and use if/else dispatching
  x86/traps: Clean up diagnostics

 xen/arch/x86/crash.c            | 15 +-------
 xen/arch/x86/extable.c          |  8 ++--
 xen/arch/x86/hvm/vmx/vmx.c      |  2 +-
 xen/arch/x86/pv/traps.c         |  6 +--
 xen/arch/x86/traps.c            | 83 +++++++++--------------------------------
 xen/arch/x86/x86_64/entry.S     | 74 ++++++++++++++++++++++++++++++++----
 xen/include/asm-x86/processor.h |  3 --
 xen/include/asm-x86/traps.h     |  2 +-
 8 files changed, 96 insertions(+), 97 deletions(-)

-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:21:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228180.394781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vv-00036W-Lt; Fri, 19 Nov 2021 18:21:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228180.394781; Fri, 19 Nov 2021 18:21:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vv-00034V-EX; Fri, 19 Nov 2021 18:21:31 +0000
Received: by outflank-mailman (input) for mailman id 228180;
 Fri, 19 Nov 2021 18:21:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kvWs=QG=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mo8Vu-0002li-GO
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:21:30 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83b28778-4965-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 19:21:29 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83b28778-4965-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637346089;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=oebDvExn3h5mZXwVNZR6XTnRXuwlDim+nPy+eMS01Lg=;
  b=VkzycAazMhCTwkI65PoYbauzlp5ulE/dFEQHlnrQzkkaRjy6YtmKvl00
   tb/fWQgST5OG6zzP8S3ZgBBI6fRPoJdLab8nOxWksjDkrUBRnIbvKyGUK
   88RWpFMaSdJPhnfREl+T/vVgMzklo2L4WpH6F+smUzr+Rcnft+Huoqelw
   s=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: jZf+f0pPJQRSo2c4Mz2E7Bj9mTPC3M1gwAObLxWEKg4jWn1MtQjj9rmotjgU7Frw7bXvsRvVwC
 PFLLCNQVDSokct9cvoFJxVY3q3ZIG8GSHXSBJ/+JDx1YsRZ66LCQuyQi00Qeu+VIaLlxFHNARN
 Kcs49bjDaCTLCB9R5P1bYjDS6/4eXjIDUD9jG6pN1CKLry6zCd+a/FxvWBl2paUXuMXl7wPKFy
 2kiq7Q1MUwssEIAmWfhcVA1UVxLaPBJucyFGRmsdhvOJq7XurPe/0RazBlC7tbgtt6QLa0xWmi
 LKxXrjgIk1R+KIScHwc5thst
X-SBRS: 5.1
X-MesageID: 58632251
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ohHziaNSSJUTYHrvrR1pkMFynXyQoLVcMsEvi/4bfWQNrUoq3jdRy
 GAcXmCBM/qMZjegeNwnPoywpBxQsZWHz9RmGQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Esyw7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozeYmNNWl
 85ria3zeCcrNL+LyLU7eTANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWdu3ZoUQK+2i
 8wxbR9QZhP6QEF2HloaOcwak8jxp2iuSmgNwL6SjfVuuDWCpOBr65DyNPLFd9rMQt9a9m66j
 G/b+2XyAjkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24nNSQPoGd
 RZSoHB36/Fvqgr7FbERQiFUvlaGrxkffIVLNdELqzCtyKDGpFbIIEItG2sphMMdiOc6Qjkj1
 1msltzvBCByvLD9dU9x5ot4vhvpZ3FLcDZqiTssCFJcvoK9+N1bYgfnF447SMaIYsvJ9SYcK
 txghAw3nP0tgMECzM1XFniX0mv39vAlouPYjzg7v15JDCslO+ZJhKTysDA3CMqsyq7DEzFtW
 1BexaCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I9sPum8mdRc0b5ZYEdMMX
 KM1kVkMjHO0FCH0BZKbnqrrU5h6pUQePYqNug/ogipmPcEqKV7vENBGbk+MxWH9+HXAYolkU
 ap3hf2EVC5AYYw+lWLeb75EjdcDm3BvrUuOFMuT50n2jtKjiIu9FO5t3K2mNbtisstpYWz9r
 r5iCid940kFDbClPHCIqdV7wJJjBSFTOK0aYvd/LoarSjeK0kl4U5c9GJstJN5ombp7jODN8
 i3vU0NU0gOn13bGNR+LejZob7a2BcRzqncyPCoNO1e02id8PdbzvflHL5ZnL6M68OFDzOJvS
 6VXccu3HfkSGC/M/C4QbMehodU6Jgirnw+HIwGsfCM7I8x7XwXM99K9Jlnv+SACAzCZr8w7p
 7H8hArXTYBaH1ZpDdrMaeLpxFS05CBPlOV3VkrOA99SZESzr9Q6d32v1qc6epheJw/Cyz2W0
 xetLS0Z/eSd8ZUo9NTphLyfq9v7GeVJAUcHTXLQ6qy7NHeG8zP7k5NASuuBYRvUSHjwpPe5f
 exQwvzxbK8HkVJNv9YuGrpn1/tjtd7mprscxQV4BnTbKV+sD+o4cHWB2MBOsIxLx6NY5lTqC
 h7epIECNOXbIt7hHX4QOBEhP7aK2vwjkzXP6eg4fRfh7yht8bvbCUhfMnFgUsCGwGeZ5G/9/
 dochQ==
IronPort-HdrOrdr: A9a23:zSaxeak4hzgM4y5HUGLiCNhV9+TpDfIU3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE8Qr5OUtQ/+xoV5PhfZqxz/JICMwqTNKftWrdyQyVxeNZnOjfKlTbckWUnINgPO
 VbAsxD4bXLfCBHZK3BgTVQfexO/DD+ytHLudvj
X-IronPort-AV: E=Sophos;i="5.87,248,1631592000"; 
   d="scan'208";a="58632251"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 5/5] x86/traps: Clean up diagnostics
Date: Fri, 19 Nov 2021 18:21:06 +0000
Message-ID: <20211119182106.14868-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211119182106.14868-1-andrew.cooper3@citrix.com>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

do{_reserved,}_trap() should use fatal_trap() rather than opencoding part of
it.  This lets the remote stack trace logic work in more fatal error
conditions.

With do_trap() converted, there is only one single user of trapstr()
remaining.  Tweak the formatting in pv_inject_event(), and remove trapstr()
entirely.

Take the opportunity of exporting vec_name() to improve the diagnostics in
stub_selftest().

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/extable.c      |  8 +++++---
 xen/arch/x86/pv/traps.c     |  6 +++---
 xen/arch/x86/traps.c        | 25 +++----------------------
 xen/include/asm-x86/traps.h |  2 +-
 4 files changed, 12 insertions(+), 29 deletions(-)

diff --git a/xen/arch/x86/extable.c b/xen/arch/x86/extable.c
index 109ab7da9811..3cb0352abe5f 100644
--- a/xen/arch/x86/extable.c
+++ b/xen/arch/x86/extable.c
@@ -124,6 +124,8 @@ search_exception_table(const struct cpu_user_regs *regs)
 }
 
 #ifndef NDEBUG
+#include <asm/traps.h>
+
 static int __init stub_selftest(void)
 {
     static const struct {
@@ -172,10 +174,10 @@ static int __init stub_selftest(void)
         if ( res.raw != tests[i].res.raw )
         {
             printk("Selftest %u failed: Opc %*ph "
-                   "expected %u[%04x], got %u[%04x]\n",
+                   "expected %s[%04x], got %s[%04x]\n",
                    i, (int)ARRAY_SIZE(tests[i].opc), tests[i].opc,
-                   tests[i].res.fields.trapnr, tests[i].res.fields.ec,
-                   res.fields.trapnr, res.fields.ec);
+                   vec_name(tests[i].res.fields.trapnr), tests[i].res.fields.ec,
+                   vec_name(res.fields.trapnr), res.fields.ec);
 
             fail = true;
         }
diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c
index 1e05a9f1cdad..1d1cb0784c98 100644
--- a/xen/arch/x86/pv/traps.c
+++ b/xen/arch/x86/pv/traps.c
@@ -89,9 +89,9 @@ void pv_inject_event(const struct x86_event *event)
 
     if ( unlikely(null_trap_bounce(curr, tb)) )
     {
-        gprintk(XENLOG_WARNING,
-                "Unhandled %s fault/trap [#%d, ec=%04x]\n",
-                trapstr(vector), vector, error_code);
+        gprintk(XENLOG_ERR,
+                "Unhandled: vec %u, %s[%04x]\n",
+                vector, vec_name(vector), error_code);
 
         if ( vector == TRAP_page_fault )
             show_page_walk(event->cr2);
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index e82ab007abcf..7a178f030c73 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -759,21 +759,7 @@ static int nmi_show_execution_state(const struct cpu_user_regs *regs, int cpu)
     return 1;
 }
 
-const char *trapstr(unsigned int trapnr)
-{
-    static const char * const strings[] = {
-        "divide error", "debug", "nmi", "bkpt", "overflow", "bounds",
-        "invalid opcode", "device not available", "double fault",
-        "coprocessor segment", "invalid tss", "segment not found",
-        "stack error", "general protection fault", "page fault",
-        "spurious interrupt", "coprocessor error", "alignment check",
-        "machine check", "simd error", "virtualisation exception"
-    };
-
-    return trapnr < ARRAY_SIZE(strings) ? strings[trapnr] : "???";
-}
-
-static const char *vec_name(unsigned int vec)
+const char *vec_name(unsigned int vec)
 {
     static const char names[][4] = {
 #define P(x) [X86_EXC_ ## x] = "#" #x
@@ -858,9 +844,7 @@ void do_unhandled_trap(struct cpu_user_regs *regs)
     if ( debugger_trap_fatal(trapnr, regs) )
         return;
 
-    show_execution_state(regs);
-    panic("FATAL RESERVED TRAP: vec %u, %s[%04x]\n",
-          trapnr, vec_name(trapnr), regs->error_code);
+    fatal_trap(regs, false);
 }
 
 static void fixup_exception_return(struct cpu_user_regs *regs,
@@ -970,10 +954,7 @@ void do_trap(struct cpu_user_regs *regs)
     if ( debugger_trap_fatal(trapnr, regs) )
         return;
 
-    show_execution_state(regs);
-    panic("FATAL TRAP: vector = %d (%s)\n"
-          "[error_code=%04x]\n",
-          trapnr, trapstr(trapnr), regs->error_code);
+    fatal_trap(regs, false);
 }
 
 int guest_rdmsr_xen(const struct vcpu *v, uint32_t idx, uint64_t *val)
diff --git a/xen/include/asm-x86/traps.h b/xen/include/asm-x86/traps.h
index ec23d3a70b36..3c5feac5e4b1 100644
--- a/xen/include/asm-x86/traps.h
+++ b/xen/include/asm-x86/traps.h
@@ -19,7 +19,7 @@
 #ifndef ASM_TRAP_H
 #define ASM_TRAP_H
 
-const char *trapstr(unsigned int trapnr);
+const char *vec_name(unsigned int vec);
 
 #endif /* ASM_TRAP_H */
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:21:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228177.394760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vu-0002m1-Cj; Fri, 19 Nov 2021 18:21:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228177.394760; Fri, 19 Nov 2021 18:21:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vu-0002lu-9o; Fri, 19 Nov 2021 18:21:30 +0000
Received: by outflank-mailman (input) for mailman id 228177;
 Fri, 19 Nov 2021 18:21:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kvWs=QG=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mo8Vt-0002li-J0
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:21:29 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 822ecc3b-4965-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 19:21:28 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 822ecc3b-4965-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637346088;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=4Tg1fkG/MNuvf6uaxrexDrCfGCJ7J9q3adQ48ksJAfI=;
  b=bCWByRz6/6eHompw/ii0YOFF/cCES2g0uw349hrqqEXXlDZ3k6fzMdP2
   4PdUCQg9+hSni/qAJG21vKve/0LazRPe4NCxDksZim+c2QKlCx57TPJS1
   sDoI6MfJYdleB2EBV+CyxI7K+Upp2IiLU0OD0FNP12H60oAEoGQykbn9X
   8=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 3VmWMg947YzY5kGf8XYQZf/XKFc6Yv/pXErvBuuwuw+HHSSsSEWlwOy+YkNFj8Io4O3wEC5I9x
 dmu+KgOFndklA3HHPwllgBill/nYupb39JDrMlNFZpf2BwT0UvvHBQySSt8hHp+uMi0J6DD8hS
 VRr4qPA5gx/xe7sJVKLQxl+Uaqi7ae99/glGw6OQJSvWzqEr3vj1oJ7aSvw4TUVA/qI9vHmbUR
 JhQ25fBRHLVz30mA4jFYrqFaKxH3YeUIw8/s5jnqr9izymuH26lxui3mZVv+2OGMV1ajK3Hkob
 2fs96KQPPR5uxlks824/ZUCT
X-SBRS: 5.1
X-MesageID: 58632249
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:lHmXsa9PN6Le/c0TirBiDrUDTXmTJUtcMsCJ2f8bNWPcYEJGY0x3z
 mtLDGGEOvbYNzCgL9t+bN+38kJQvJWGz4JqQFForSs8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdg09Yy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhz2
 dJOksOrbzsYfZzsmu4PFEkJNQtXaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp0eQ62EP
 ZZIAdZpRD7KPyNXZm40NI59zMqBnXWnbBYAi03A8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru3U70HxUbP9y30iee/zSngeqntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLpix
 1c8o3R06/JorQryE4e7D0bQTGO4UgA0WctXEMpl8yex++nlwwSTFC9UHxhrQYlz3CMpfgAC2
 liMltLvIDVgtryJVH6QnoupQSOO1Ts9djFbO3JdJecRy5y6+dxo0EqTJjp2OPft1oWdJN3m/
 9ydQMHSbZ03hNVD6ai09Euvb9mE9smQFV5dCuk6swuYAuJFiGyNO9PABbvzt68owGOlor+p5
 iVsdy+2tr5mMH11vHbRKNjh5Znwjxp/DBXSgER0A74q/Cm39niocOh4uW8lex03apdUJGK5P
 Cc/XD+9ArcJYRNGioctPeqM5zkCl/C8RbwJqNiKBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WiOHSKqtBKcghRRZX5bLivw/Fqmie4ClIOMAkc5zX5kNvNoqRpwPZYkPnm5
 Ha4VhMKwVbznySfew6LdmpiePXkWpMm9SA3OiklPFCJ3Xk/YNnwsPdDJsVvJbR3pvZ+yfNUT
 uUef5nSCPp4VTmaqS8WaoPwrdI+eU3z1x6OJSesfBM2Y4VkG17S4tbhcwa2rHsOAyO7uNEQu
 bql0g+HE5MPSx47VJTdae61zkP3tn8YwbogU0zNK9hVWUPt7Ik1dHCh0q5pe5kBcEyRyCGb2
 gCaBQYjidPM+4JlosPUga2krpuyF7csFERtAGSGv629MjPX/zT/zNYYAvqIZz3USEj95L6mO
 bdO1/j5PfAKwARKvo57H+o5xK4y/YKy9bpTzwAiF3TXdVW7TLhnJyDej8VIs6RMwJ5fuBe3B
 R3TqoULZ+3RNZO3CkMVKSokcv+HhKMdlTTl5PgoJFn3uX1s972dXEQOZxSBhUSx9leu3F/JF
 Qv5hPMr1g==
IronPort-HdrOrdr: A9a23:5+nQGaDmwKSu/DPlHemU55DYdb4zR+YMi2TC1yhKJyC9Ffbo7v
 xG/c5rsyMc5wxwZJhNo7y90ey7MBbhHP1OkO4s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpN
 9dmsNFaeEYY2IUsS+D2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,248,1631592000"; 
   d="scan'208";a="58632249"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 3/5] x86/crash: Drop manual hooking of exception_table[]
Date: Fri, 19 Nov 2021 18:21:04 +0000
Message-ID: <20211119182106.14868-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211119182106.14868-1-andrew.cooper3@citrix.com>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

NMI hooking in the crash path has undergone several revisions since its
introduction.  What we have now is not sufficiently different from the regular
nmi_callback() mechanism to warrant special casing.

Use set_nmi_callback() directly, and do away with patching a read-only data
structure via a read-write alias.  This also means that the
vmx_vmexit_handler() can and should call do_nmi() directly, rather than
indirecting through the exception table to pick up the crash path hook.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/crash.c       | 15 ++-------------
 xen/arch/x86/hvm/vmx/vmx.c |  2 +-
 xen/arch/x86/traps.c       |  5 +++++
 3 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/xen/arch/x86/crash.c b/xen/arch/x86/crash.c
index 0611b4fb9b09..f6264946a681 100644
--- a/xen/arch/x86/crash.c
+++ b/xen/arch/x86/crash.c
@@ -36,10 +36,8 @@ static unsigned int crashing_cpu;
 static DEFINE_PER_CPU_READ_MOSTLY(bool, crash_save_done);
 
 /* This becomes the NMI handler for non-crashing CPUs, when Xen is crashing. */
-static void noreturn do_nmi_crash(const struct cpu_user_regs *regs)
+static int noreturn do_nmi_crash(const struct cpu_user_regs *regs, int cpu)
 {
-    unsigned int cpu = smp_processor_id();
-
     stac();
 
     /* nmi_shootdown_cpus() should ensure that this assertion is correct. */
@@ -136,16 +134,7 @@ static void nmi_shootdown_cpus(void)
                     SYS_DESC_irq_gate, 0, &trap_nop);
     set_ist(&idt_tables[cpu][TRAP_machine_check], IST_NONE);
 
-    /*
-     * Ideally would be:
-     *   exception_table[TRAP_nmi] = &do_nmi_crash;
-     *
-     * but the exception_table is read only.  Access it via its directmap
-     * mappings.
-     */
-    write_atomic((unsigned long *)__va(__pa(&exception_table[TRAP_nmi])),
-                 (unsigned long)&do_nmi_crash);
-
+    set_nmi_callback(do_nmi_crash);
     smp_send_nmi_allbutself();
 
     msecs = 1000; /* Wait at most a second for the other cpus to stop */
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index d403e2d8060a..37c31c08b984 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -3887,7 +3887,7 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs)
              ((intr_info & INTR_INFO_INTR_TYPE_MASK) ==
               MASK_INSR(X86_EVENTTYPE_NMI, INTR_INFO_INTR_TYPE_MASK)) )
         {
-            exception_table[TRAP_nmi](regs);
+            do_nmi(regs);
             enable_nmis();
         }
         break;
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index f526298e997d..096a411fdf94 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1886,6 +1886,11 @@ void do_nmi(const struct cpu_user_regs *regs)
     this_cpu(nmi_count)++;
     nmi_enter();
 
+    /*
+     * Think carefully before putting any logic before this point.
+     * nmi_callback() might be the crash quiesce...
+     */
+
     callback = ACCESS_ONCE(nmi_callback);
     if ( unlikely(callback) && callback(regs, cpu) )
         goto out;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:21:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228178.394765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vu-0002oC-Oz; Fri, 19 Nov 2021 18:21:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228178.394765; Fri, 19 Nov 2021 18:21:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vu-0002nj-IJ; Fri, 19 Nov 2021 18:21:30 +0000
Received: by outflank-mailman (input) for mailman id 228178;
 Fri, 19 Nov 2021 18:21:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kvWs=QG=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mo8Vt-0002lj-LQ
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:21:29 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81c4d2c8-4965-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 19:21:27 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81c4d2c8-4965-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637346088;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=+dvslWpq2dfj5scGr7oA/OvN7mfOaLRx99JYp6UlUt0=;
  b=ASo7co4OpfWUPvgKWoU4eFjTFfoMJnGuOQHo8GLLd3iZwQs/cDzBmqMc
   YxRX5dSsHlaX1uc/mYPiZ7PCPbK8eRLRlttw/GLyvpF4I7Ee8BjlpzDOb
   p6Qh0DUt8hiMyg3UuK4s+j0RZucBvo0Iv5sMIdejcmUKBczoqqHzpQ6yS
   0=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 72tG7BfDNzaA6XSRNe7cV1TNzkGOKMkND5NzQ9V2M9KwjjH4r0ODrXNHbHdPgz3h5/cZi2j1AO
 hg96kqKgmDaBsOl8ZRB4rAaH6nqklZTButmlrKsu/smNX+B3BA9ckuWl3UpxawAkna0wMvfNuV
 1N1YDycTFX5ulbM5AWms2t5xInMhFUIsbUvDlt85rBCsXx1qGsGPGtc0s5Ba1zL5b8hp+Qml2t
 teTlEC79tgpr6i8evyYO8z5U+vR/Lfy1fmTx2sSLFQp2yz3EqSdpqDLXw9kkVlwtSFKQXue8m+
 iRqsuvI3eq4EZAl1BxUq3DI+
X-SBRS: 5.1
X-MesageID: 60237326
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ukfqI6lMinqNhevXEPxri9bo5gxMIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIXWz3XMqqPZjbzKI0iPtu2px4AupXRnYUwHAFtryAyFiMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29c52YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 NxThL+XThstB5SSlN8DFBd5QztBYbITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQ66EP
 JVCM2QHgBLoQhRIBnYbA6sFkMyHmGLjI20IjHCWuv9ii4TU5FMoi+W8WDbPQfSVQe1Fk0Deo
 XjJl0zbKBwHMN2UyRKe72mhwOTImEvTSI8UUbG16PNuqFmS3XAITg0bU0Ohpvu0gVL4XMhQQ
 3H44QJ38/J0rhbyCICgAVvo+xZooyLwRfJZDdwZzwaRzpPtvQqiGC8Kb25bV4A54ZpeqSMR6
 neFmNbgBDpKubKTSG6A+rr8kQ5eKRT5PkdZO3ZaEFJtD83L5dhq00mRFooL/Lud14WtQVnNL
 ya2QD/Sbln5peoCzO2F8F/OmFpATbCZH1dutm07so9Ihz6VhbJJhaT0tjA3Dt4ade51q2VtW
 lBexqByC8hUU/mweNSlGrllIV1Qz6/t3MfgqVBuBYI90D+m5mSue4tdiBknehw2aJhcKG+0P
 R+P0e+02HO1FCH3BUOQS9jvY/nGMIC6TYi1PhwqRoQmjmdNmP+vo3g1OB/4M5HFm0kwi6AvU
 ap3gu73ZUv2/Z9PlWLsL89EiOdD7nlnmQv7GMCqpzz6gOH2TCPEFt843K6mM7lRAFWs+16Or
 b6y9qKiln1ibQEJSnWNrNNIcwlVdSNT6FKfg5U/S9Nv6zFOQAkJY8I9C5t4E2C8t6gKxOrO4
 F+nXUpUlAj2iXHdcF3YYXF/crL/G514qCtjbyArOF+p3VklYJqus/hDJ8dmI+F/+bwx1+NwQ
 tkEZ96EXqZFRAPY9mlPdpL6toFjKkim3FrcIyq/bTEjVJd8XAiVqMT8dw7i+XBWXCq6vMczu
 ZO60QbfTcZRTghuFp+OOvmu00mwrT4Wn+crBxnEJdxaeUPN9ol2KnOu0q9rcp9UcRian2mUz
 QebBxsctNLhmY5t/Ymbn72AoqeoD/B6QhhQEV7E4OvkLiLd5Gein9NNCb7aYTDHWWro06y+f
 uEJnerkOfgKkVsW4YpxF7FnkfA369f1/uIIyw1lGDPAbkixC6MmKX6DhJEduqpIz75fmA23R
 kPQpYUKZeTXYJvoQAwLOQ4oTuWfzvVFyDDd4MM8LFj++CIqrqGMVl9fPkXUhSFQRFev3FjJH
 Qv1VBYq1jGC
IronPort-HdrOrdr: A9a23:oNTa2atlWoWcSGTg5N50Q4lK7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpGbJYVcqKRcdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyJMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,248,1631592000"; 
   d="scan'208";a="60237326"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 2/5] x86/traps: Drop dummy_nmi_callback()
Date: Fri, 19 Nov 2021 18:21:03 +0000
Message-ID: <20211119182106.14868-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211119182106.14868-1-andrew.cooper3@citrix.com>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The unconditional nmi_callback() call in do_nmi() calls dummy_nmi_callback()
in all cases other than for a few specific and rare tasks (alternative
patching, microcode loading, etc).

Indirect calls are expensive under retpoline, so rearrange the logic to use
NULL as the default, and skip the call entirely in the common case.

While rearranging the code, fold the exit paths.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/traps.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index d483aa91f2f1..f526298e997d 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1872,29 +1872,23 @@ static void unknown_nmi_error(const struct cpu_user_regs *regs,
     }
 }
 
-static int dummy_nmi_callback(const struct cpu_user_regs *regs, int cpu)
-{
-    return 0;
-}
-
-static nmi_callback_t *nmi_callback = dummy_nmi_callback;
+static nmi_callback_t *__read_mostly nmi_callback;
 
 DEFINE_PER_CPU(unsigned int, nmi_count);
 
 void do_nmi(const struct cpu_user_regs *regs)
 {
     unsigned int cpu = smp_processor_id();
+    nmi_callback_t *callback;
     unsigned char reason = 0;
     bool handle_unknown = false;
 
     this_cpu(nmi_count)++;
     nmi_enter();
 
-    if ( nmi_callback(regs, cpu) )
-    {
-        nmi_exit();
-        return;
-    }
+    callback = ACCESS_ONCE(nmi_callback);
+    if ( unlikely(callback) && callback(regs, cpu) )
+        goto out;
 
     /*
      * Accessing port 0x61 may trap to SMM which has been actually
@@ -1921,6 +1915,7 @@ void do_nmi(const struct cpu_user_regs *regs)
             unknown_nmi_error(regs, reason);
     }
 
+ out:
     nmi_exit();
 }
 
@@ -1935,7 +1930,7 @@ nmi_callback_t *set_nmi_callback(nmi_callback_t *callback)
 
 void unset_nmi_callback(void)
 {
-    nmi_callback = dummy_nmi_callback;
+    nmi_callback = NULL;
 }
 
 bool nmi_check_continuation(void)
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:21:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228179.394773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vv-00030S-8G; Fri, 19 Nov 2021 18:21:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228179.394773; Fri, 19 Nov 2021 18:21:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vv-0002wC-40; Fri, 19 Nov 2021 18:21:31 +0000
Received: by outflank-mailman (input) for mailman id 228179;
 Fri, 19 Nov 2021 18:21:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kvWs=QG=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mo8Vu-0002lj-DY
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:21:30 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 819f2f5b-4965-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 19:21:27 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 819f2f5b-4965-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637346087;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=e6Vpp1nFGSlUEaNAYW2skTKEUq4i4p9h+155eMsODFw=;
  b=esSrIo9w4eSbYEd+HkSCaNrS03/Rvh80XkTMIw1YS3lcywBNCLX2YCZG
   6Utrnu/en3MYMb6sNothiMhAo9qku7RGA5BZpbY0RElq7ScYZA1hQzaDF
   I2fq4g/h6SrTj0oguqYq4YCLc+f/5btCr0ulns+kg5H3kiJwyiMwG4qNQ
   s=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: eD/0pI9T+NW7zY5q+V3UeGmeC2/CofjBgRM0hFDsMkZFfS51lFi57VTFYBAS88+7OtecbD027R
 PbGEafFWYxClsqu2wKWlY7vHNT2bIG9cAMDGybsEOFazTsR1SpzAHJeEkkiKOg178yG73TBS54
 aLWmvvkYVhO6KoyZIi6SHxd3yKprX9xw3mc3/Qk2MHsQsFY+rZ/HvERBcy4LgA7l6ydDB7Iesw
 dLzm6HXGf4RSnOEnFYHPoRdhDNeEUTrLrpOiLnETlT4dQSV1+XYYduTxE2nV5LY4vr4aSpo35U
 GTSmsOc+lLFyLrU8vfb6KNrf
X-SBRS: 5.1
X-MesageID: 58204891
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:xHHOxqBXMMqsDBVW/+Tkw5YqxClBgxIJ4kV8jS/XYbTApD900jQHy
 jBMXW6Pa/6ONGejKtlzOdu0/EkHscXdyN5jQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540EM7wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/tXapr9BP8
 cx0v4WrcFt2BJPHwepeekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjG1o2pAfRJ4yY
 eI8UhdNUCqDPCRBFUkMBbY4wOL4pEvgJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tmSyq
 3/C/m/5KgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRt6Klc4sBc
 QpOoHNo9PVsshzwJjXgY/GmiEDHni4cZeNJKucj8zjRlZDq6F+XRUFRG1atd+canMMxQDUr0
 HqAkNXoGSFjvdWpdJ6NyluHhWjsYHZIdAfucQdBFFJYuIe7/OnfmzqWFo47eJNZmOEZDt0ZL
 9qiiCElz4segscQv0lQ1QCW2mn8znQlo+Nc2+k2Yo5Hxl8mDGJGT9bxgbQ+0RqmBNzEJrVml
 CJa8/VyFMhUUfmweNWlGY3h5o2B6fefKyH7ilVyBZQn/DnF0yf9Jt8KvmkvdBo0YppsldrVj
 Kn74145CHh7ZiXCUEOKS9jpV5RCIVbIS7wJqcw4nvIRO8MsJWdrDQllZFKK3nCFraTfufpXB
 HtvSu71VSxyIf0+lFKeHr5BuZd2lnFW7T6CHvjTkkX4uYdykVbIEN/pxnPVNbtnhE5FyS2Im
 +ti2zyil08CDbagO3aPqub+7zkidBAGOHw/kOQPHsbrH+asMDtJ5yb5zexzdop7sb5Sk+uUr
 HixVlUBkAj0hGHdKBXMYXdmMeu9UZF6pHM9HCotIVf3hCRzPdfxtP8SJ8ktYL0q1O1/1vooH
 fMLTNqNX6ZUQTPd9jVDMZSk9N5+dA6mjB6lNja+ZGRtZIZpQgHEo4e2fgbm+CQUIDCwsM8y/
 ++p2g/BGMJRTAV+FsfGLvmoygrp73QanetzWWrOI8VSJxqwoNQ7dXSpg6Zucc8WKBjFyj+L7
 CqsAE8V9bvXvos40NjVnqTY/Y2nJPRzQxhBFG7B4LfoaSSDpji/wZVNWfqjdCzGUD+m472rY
 OhYwq2uMPADm1oW4YNwH6wykPA77trr4bRb0h5lDDPAaFHyUuFsJXyP3M9usKxRx+AG5VvqC
 xzXotQKa6+UPM7FEUIKIFt3Z+uO4vgYhz3O4KlnO079/iJ2oOKKXEg608NgU8CBwG+Z6L8Y/
 No=
IronPort-HdrOrdr: A9a23:HqkgkK+vrsK11f3Y3mBuk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re5cjztCWE7gr5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtBD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,248,1631592000"; 
   d="scan'208";a="58204891"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 1/5] x86/traps: Collect PERFC_exceptions stats for IST vectors too
Date: Fri, 19 Nov 2021 18:21:02 +0000
Message-ID: <20211119182106.14868-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211119182106.14868-1-andrew.cooper3@citrix.com>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

This causes NMIs, #DB and #MC to be counted, rather than being reported as 0.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/x86_64/entry.S | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index d5998acf8806..3caa5654768d 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -1005,6 +1005,13 @@ handle_ist_exception:
 #endif
         movq  %rsp,%rdi
         movzbl UREGS_entry_vector(%rsp),%eax
+
+#ifdef CONFIG_PERF_COUNTERS
+        lea   per_cpu__perfcounters(%rip), %rcx
+        add   STACK_CPUINFO_FIELD(per_cpu_offset)(%r14), %rcx
+        incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)
+#endif
+
         leaq  exception_table(%rip),%rdx
         mov   (%rdx, %rax, 8), %rdx
         INDIRECT_CALL %rdx
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:21:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:21:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228182.394815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vy-00045y-Lu; Fri, 19 Nov 2021 18:21:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228182.394815; Fri, 19 Nov 2021 18:21:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Vy-00045P-A8; Fri, 19 Nov 2021 18:21:34 +0000
Received: by outflank-mailman (input) for mailman id 228182;
 Fri, 19 Nov 2021 18:21:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kvWs=QG=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mo8Vw-0002lj-Di
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:21:32 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 83ae3c8b-4965-11ec-9787-a32c541c8605;
 Fri, 19 Nov 2021 19:21:29 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83ae3c8b-4965-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637346089;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=7vzlAG4/8XA2/yA95Szl0X1Xge6hpLYeA3lSnn/oSps=;
  b=gan2s9ZlVMXkLV7ZI2jx709pcF1HqVW4TaF8Fz7vHJt//1bSyVT7SeiQ
   fmIbED+EV3tkMBGSYmkYH8w6tzP55nO5vqEeYtIQzK7XZhuKFzDFlRRA0
   XLUScDQ8wcZ7IZat+UmrDGK4EjiJ/0bC7ENJHvP7+dfA1sP9+oT6g4JI8
   g=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: SQRwZzHJffDlvilNT5NvYAsz3ZTjeh2Lt7ERYVPUXYlpOl96AEHLVzHBIkSMuJA+R9dUwsgg1f
 XbhAhKGgbImjPgzk+HTCgKhw4x5aO01IYEDWZiJeHP7vFKtiISRNH84ExsGNkeqgYSiN/1WS6a
 qRIXpgrakB/aKMvi+MlJZcsMBiSgN22Wz2BbTGsc8pM/t6/jI/7dXzdoJHHlpGa2bkhKaCj46/
 jP8kJLTshKr5EDTOvCcUM9fEr4YN20FP2dqZ2myT/gdSDbWxQkJDXDL3CqNZBY5BVWc82BtoI8
 CnIPbQGiO6/HllARb4Z97ukP
X-SBRS: 5.1
X-MesageID: 58204893
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:4ubKA6k8IGSEpChbyCrb8Dno5gxMIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIdDz3TPaqNNmv0fdFyOY63pkxXusLTz9ZmQAdk/380RSMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29c52YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 OsOlaywdz4wB6fVg91BDCNmGHhwfoQTrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQKaEP
 5ZJOGEHgBLobhd+GQtLGq4Hluq23UKhfiZahkifqv9ii4TU5FMoi+W8WDbPQfSVQe1Fk0Deo
 XjJl0zbKBwHMN2UyRKe72mhwOTImEvTSI8UUbG16PNuqFmS3XAITg0bU0Ohpvu0gVL4XMhQQ
 3H44QJ38/J0rhbyCICgAVvo+xZooyLwRfJuUM0K6D+005Pe+h2gWjc+cDUYZp8P4ZpeqSMR6
 neFmNbgBDpKubKTSG6A+rr8kQ5eKRT5PkdZO3ZaEFJtD83L5dhq00mRFooL/Lud14WtQVnNL
 ya2QD/Sbln5peoCzO2F8F/OmFpATbCZH1dutm07so9Ihz6VhbJJhaT0tjA3Dt4ade51q2VtW
 lBexqByC8hUU/mweNSlGrllIV1Qz6/t3MfgqVBuBYI90D+m5mSue4tdiBknehw2aJhcKG+0P
 R+P0e+02HO1FCH3BUOQS9jvY/nGMIC6TYi1PhwqRoQmjmdNmP+vo3g1OB/4M5HFm0kwi6AvU
 ap3gu73ZUv2/Z9PlWLsL89EiOdD7nlnmQv7GMCqpzz6gOH2TCPEFt843K6mM7lRAFWs+16Or
 b6y9qKiln1ibQEJSnWNrNNIcwlVdSNT6FKfg5U/S9Nv6zFOQAkJY8I9C5t7E2C8t6gKxOrO4
 F+nXUpUlAj2iXHdcF3YYXF/crL/G514qCtjbyArOF+p3VklYJqus/hDJ8dmI+F/+bwx1+NwQ
 tkEZ96EXqZFRAPY9mlPdpL6toFjKkim3FrcIyq/bTEjVJd8XAiVqMT8dw7i+XBWXCq6vMczu
 ZO60QbfTcZRTghuFp+OOvmu00mwrT4Wn+crBxnEJdxaeUPN9ol2KnOu0q9rcp9UcRian2mUz
 QebBxsctNLhmY5t/Ymbn72AoqeoD/B6QhhQEV7E4OvkLiLd5Gein9NNCb7aYTDHWWro06y+f
 uEJnerkOfgKkVsW4YpxF7FnkfA369f1/uIIyw1lGDPAbkixC6MmKX6DhJEduqpIz75fmA23R
 kPQpYUKZeTXYJvoQAwLOQ4oTuWfzvVFyDDd4MM8LFj++CIqrqGMVl9fPkXUhSFQRFev3FjJH
 Qv1VBYq1jGC
IronPort-HdrOrdr: A9a23:qOJJS61WLZPOYjWGPFz+ZwqjBIokLtp133Aq2lEZdPRUGvb3qy
 nIpoVj6faUskd2ZJhOo7C90cW7LU80sKQFhLX5Xo3SOzUO2lHYT72KhLGKq1aLdhEWtNQtsZ
 uIG5IOcOEYZmIasS+V2maF+q4bsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,248,1631592000"; 
   d="scan'208";a="58204893"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 4/5] x86/traps: Drop exception_table[] and use if/else dispatching
Date: Fri, 19 Nov 2021 18:21:05 +0000
Message-ID: <20211119182106.14868-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211119182106.14868-1-andrew.cooper3@citrix.com>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

There is also a lot of redundancy in the table.  8 vectors head to do_trap(),
3 are handled in the IST logic, and that only leaves 7 others not heading to
the do_reserved_trap() catch-all.  This also removes the fragility that any
accidental NULL entry in the table becomes a ticking timebomb.

Function pointers are expensive under retpoline, and different vectors have
wildly different frequences.  Drop the indirect call, and use an if/else chain
instead, which is a code layout technique used by profile-guided optimsiation.

Using Xen's own perfcounter infrastructure, we see the following frequences of
vectors measured from boot until I can SSH into dom0 and collect the stats:

  vec | CFL-R   | Milan   | Notes
  ----+---------+---------+
  NMI |     345 |    3768 | Watchdog.  Milan has many more CPUs.
  ----+---------+---------+
  #PF | 1233234 | 2006441 |
  #GP |   90054 |   96193 |
  #UD |     848 |     851 |
  #NM |       0 |     132 | Per-vendor lazy vs eager FPU policy.
  #DB |      67 |      67 | No clue, but it's something in userspace.

Bloat-o-meter (after some manual insertion of ELF metadata) reports:

  add/remove: 0/1 grow/shrink: 2/0 up/down: 102/-256 (-154)
  Function                                     old     new   delta
  handle_exception_saved                       148     226     +78
  handle_ist_exception                         453     477     +24
  exception_table                              256       -    -256

showing that the if/else chains are less than half the size that
exception_table[] was in the first place.

As part of this change, make two other minor changes.  do_reserved_trap() is
renamed to do_unhandled_trap() because it is the catchall, and already covers
things that aren't reserved any more (#VE/#VC/#HV/#SX).

Furthermore, don't forward #TS to guests.  #TS is specifically for errors
relating to the Task State Segment, which is a Xen-owned structure, not a
guest-owned structure.  Even in the 32bit days, we never let guests register
their own Task State Segments.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

Preliminary perf data says that there is no measurable difference with
bti-thunk=jmp.  bti-thunk=lfence shows up to a 3% improvement, and
bti-thunk=retpoline is expected to have a better improvement still.
---
 xen/arch/x86/traps.c            | 34 ++-------------------
 xen/arch/x86/x86_64/entry.S     | 67 ++++++++++++++++++++++++++++++++++++-----
 xen/include/asm-x86/processor.h |  3 --
 3 files changed, 62 insertions(+), 42 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 096a411fdf94..e82ab007abcf 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -135,36 +135,6 @@ const unsigned int nmi_cpu;
 #define stack_words_per_line 4
 #define ESP_BEFORE_EXCEPTION(regs) ((unsigned long *)regs->rsp)
 
-static void do_trap(struct cpu_user_regs *regs);
-static void do_reserved_trap(struct cpu_user_regs *regs);
-
-void (* const exception_table[TRAP_nr])(struct cpu_user_regs *regs) = {
-    [TRAP_divide_error]                 = do_trap,
-    [TRAP_debug]                        = do_debug,
-    [TRAP_nmi]                          = (void *)do_nmi,
-    [TRAP_int3]                         = do_int3,
-    [TRAP_overflow]                     = do_trap,
-    [TRAP_bounds]                       = do_trap,
-    [TRAP_invalid_op]                   = do_invalid_op,
-    [TRAP_no_device]                    = do_device_not_available,
-    [TRAP_double_fault]                 = do_reserved_trap,
-    [TRAP_copro_seg]                    = do_reserved_trap,
-    [TRAP_invalid_tss]                  = do_trap,
-    [TRAP_no_segment]                   = do_trap,
-    [TRAP_stack_error]                  = do_trap,
-    [TRAP_gp_fault]                     = do_general_protection,
-    [TRAP_page_fault]                   = do_page_fault,
-    [TRAP_spurious_int]                 = do_reserved_trap,
-    [TRAP_copro_error]                  = do_trap,
-    [TRAP_alignment_check]              = do_trap,
-    [TRAP_machine_check]                = (void *)do_machine_check,
-    [TRAP_simd_error]                   = do_trap,
-    [TRAP_virtualisation]               = do_reserved_trap,
-    [X86_EXC_CP]                        = do_entry_CP,
-    [X86_EXC_CP + 1 ...
-     (ARRAY_SIZE(exception_table) - 1)] = do_reserved_trap,
-};
-
 void show_code(const struct cpu_user_regs *regs)
 {
     unsigned char insns_before[8] = {}, insns_after[16] = {};
@@ -881,7 +851,7 @@ void fatal_trap(const struct cpu_user_regs *regs, bool show_remote)
           (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
 }
 
-static void do_reserved_trap(struct cpu_user_regs *regs)
+void do_unhandled_trap(struct cpu_user_regs *regs)
 {
     unsigned int trapnr = regs->entry_vector;
 
@@ -973,7 +943,7 @@ static bool extable_fixup(struct cpu_user_regs *regs, bool print)
     return true;
 }
 
-static void do_trap(struct cpu_user_regs *regs)
+void do_trap(struct cpu_user_regs *regs)
 {
     unsigned int trapnr = regs->entry_vector;
 
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 3caa5654768d..3eaf0e67b2b9 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -773,14 +773,48 @@ handle_exception_saved:
         sti
 1:      movq  %rsp,%rdi
         movzbl UREGS_entry_vector(%rsp),%eax
-        leaq  exception_table(%rip),%rdx
 #ifdef CONFIG_PERF_COUNTERS
         lea   per_cpu__perfcounters(%rip), %rcx
         add   STACK_CPUINFO_FIELD(per_cpu_offset)(%r14), %rcx
         incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)
 #endif
-        mov   (%rdx, %rax, 8), %rdx
-        INDIRECT_CALL %rdx
+
+        /*
+         * Dispatch to appropriate C handlers.
+         *
+         * The logic is implemented as an if/else chain.  DISPATCH() calls
+         * need be in frequency order for best performance.
+         */
+#define DISPATCH(vec, handler)         \
+        cmp   $vec, %al;               \
+        jne   .L_ ## vec ## _done;     \
+        call  handler;                 \
+        jmp   .L_exn_dispatch_done;    \
+.L_ ## vec ## _done:
+
+        DISPATCH(X86_EXC_PF, do_page_fault)
+        DISPATCH(X86_EXC_GP, do_general_protection)
+        DISPATCH(X86_EXC_UD, do_invalid_op)
+        DISPATCH(X86_EXC_NM, do_device_not_available)
+        DISPATCH(X86_EXC_BP, do_int3)
+
+        /* Logically "if ( (1 << vec) & MASK ) { do_trap(); }" */
+        mov   $(1 << X86_EXC_DE) | (1 << X86_EXC_OF) | (1 << X86_EXC_BR) |\
+               (1 << X86_EXC_NP) | (1 << X86_EXC_SS) | (1 << X86_EXC_MF) |\
+               (1 << X86_EXC_AC) | (1 << X86_EXC_XM), %edx
+        bt    %eax, %edx
+        jnc   .L_do_trap_done
+        call  do_trap
+        jmp   .L_exn_dispatch_done
+.L_do_trap_done:
+
+        DISPATCH(X86_EXC_CP, do_entry_CP)
+#undef DISPATCH
+
+        call  do_unhandled_trap
+        BUG   /* do_unhandled_trap() shouldn't return. */
+
+.L_exn_dispatch_done:
         mov   %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)
         mov   %r13b, STACK_CPUINFO_FIELD(use_pv_cr3)(%r14)
 #ifdef CONFIG_PV
@@ -1012,9 +1046,28 @@ handle_ist_exception:
         incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)
 #endif
 
-        leaq  exception_table(%rip),%rdx
-        mov   (%rdx, %rax, 8), %rdx
-        INDIRECT_CALL %rdx
+        /*
+         * Dispatch to appropriate C handlers.
+         *
+         * The logic is implemented as an if/else chain.  DISPATCH() calls
+         * need be in frequency order for best performance.
+         */
+#define DISPATCH(vec, handler)         \
+        cmp   $vec, %al;               \
+        jne   .L_ ## vec ## _done;     \
+        call  handler;                 \
+        jmp   .L_ist_dispatch_done;    \
+.L_ ## vec ## _done:
+
+        DISPATCH(X86_EXC_NMI, do_nmi)
+        DISPATCH(X86_EXC_DB,  do_debug)
+        DISPATCH(X86_EXC_MC,  do_machine_check)
+#undef DISPATCH
+
+        call  do_unhandled_trap
+        BUG   /* do_unhandled_trap() shouldn't return. */
+
+.L_ist_dispatch_done:
         mov   %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)
         mov   %bl, STACK_CPUINFO_FIELD(use_pv_cr3)(%r14)
         cmpb  $TRAP_nmi,UREGS_entry_vector(%rsp)
@@ -1088,7 +1141,7 @@ autogen_stubs: /* Automatically generated stubs. */
 
         entrypoint 1b
 
-        /* Reserved exceptions, heading towards do_reserved_trap(). */
+        /* Reserved exceptions, heading towards do_unhandled_trap(). */
         .elseif vec == X86_EXC_CSO || vec == X86_EXC_SPV || \
                 vec == X86_EXC_VE  || (vec > X86_EXC_CP && vec < TRAP_nr)
 
diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h
index bc4dc6925372..f031a050cba0 100644
--- a/xen/include/asm-x86/processor.h
+++ b/xen/include/asm-x86/processor.h
@@ -506,9 +506,6 @@ extern void mtrr_bp_init(void);
 
 void mcheck_init(struct cpuinfo_x86 *c, bool_t bsp);
 
-/* Dispatch table for exceptions */
-extern void (* const exception_table[TRAP_nr])(struct cpu_user_regs *regs);
-
 #define DECLARE_TRAP_HANDLER(_name)                    \
     void _name(void);                                  \
     void do_ ## _name(struct cpu_user_regs *regs)
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:25:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:25:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228197.394827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Zc-0006SS-AB; Fri, 19 Nov 2021 18:25:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228197.394827; Fri, 19 Nov 2021 18:25:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo8Zc-0006SL-76; Fri, 19 Nov 2021 18:25:20 +0000
Received: by outflank-mailman (input) for mailman id 228197;
 Fri, 19 Nov 2021 18:25:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GMHT=QG=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mo8Zb-0006SF-CN
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:25:19 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c254bb5-4966-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 19:25:18 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id bu18so47463241lfb.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Nov 2021 10:25:18 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id d22sm56050lfe.158.2021.11.19.10.25.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Nov 2021 10:25:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c254bb5-4966-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=dStovpyAqgT5U5ysBg+VG+BHTqF1d8vTbvMZkrKkCSc=;
        b=C1S78urN/PwZ2238ZZ8v0Yfq4JayJ9cmA9S71w0saJBJtUAqZJFJBwFF4VdQrsSVsV
         TI8AgZU7zRbtWw6G5Nxnv2W/wnlp6gi0Tc9kfQB+OOUXSmUJ4pum8dy5HgbifJoTdD4B
         LDoGO7xdDHlLFYOi+yTAjf8aoXEOco1gHgbPd6/wFbQ958xknUoiEccP9mCE2YYV5Vkr
         mzZrC+u+ZIHBb3CqHs1ZQhbRdW0RuQcPuIPds5MWRCr6anp5+Yx0W/y1hHbIhPSTAtKV
         Zvztg60giqnmeWQJ3dHgTBaUl+Q8kSZHuP4vckbijYAwpXCGn3Ia4P6B1A5mb0EAnPkZ
         l8lA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=dStovpyAqgT5U5ysBg+VG+BHTqF1d8vTbvMZkrKkCSc=;
        b=NNd/QYUSQ8kOTQY5MAm/L6M5TS3ihJfm+XjjHXn0HYTnYX7oPn9J2FdXDaPFo/k4P1
         YFFl3wYwdbwHWYRiJdVni2driu4KpYZl71akUJoF0oG5BBSE/DPWbYHbSfg47jpczk99
         KvYbN+Xab3rurSTpQARRBkc7t8RVgiwjtUXmR8RJ94UCmH3R4d6bw0CiBMfjB6u1Mr8j
         m54WeLOp+E9z2hSX/LsDQR7U3ePIOHXzNGgmVSgwgizp+5gKM76f6l56H/vHeLwnnF43
         CkU3TAHa5d5PBr8V8bIoLpNS3yvY2X7792sQ++OY7nmhkKIKExklLAsjxwVa1jBwbxJ9
         2yIQ==
X-Gm-Message-State: AOAM532FD9MtNQNjxN+W9jTzruvxgVlbuPKWgO9ZPAlE2SEm5OfgF86k
	ht2zLcguOMzcV9q3Z4AgdcU=
X-Google-Smtp-Source: ABdhPJwKxQTJ0weHanMCnalDEiro//ui7b8M59uWsvOwheX/+TMgUIAFnmvOt+T3fES5Uqade+NFNw==
X-Received: by 2002:a19:c102:: with SMTP id r2mr32754899lff.672.1637346317680;
        Fri, 19 Nov 2021 10:25:17 -0800 (PST)
Subject: Re: [PATCH V2 2/4] arm/xen: Switch to use
 gnttab_setup_auto_xlat_frames() for DT
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Russell King <linux@armlinux.org.uk>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-3-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110271754400.20134@sstabellini-ThinkPad-T480s>
 <60cc5b07-5935-aa26-8690-353c779bbab5@gmail.com>
 <alpine.DEB.2.22.394.2111181631020.1412361@ubuntu-linux-20-04-desktop>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <1c32b559-16f0-c993-eca3-86cf70f97132@gmail.com>
Date: Fri, 19 Nov 2021 20:25:16 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111181631020.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US


On 19.11.21 02:32, Stefano Stabellini wrote:

Hi Stefano

> On Thu, 11 Nov 2021, Oleksandr wrote:
>> On 28.10.21 04:28, Stefano Stabellini wrote:
>>
>> Hi Stefano
>>
>> I am sorry for the late response.
>>
>>> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>
>>>> Read the start address of the grant table space from DT
>>>> (region 0).
>>>>
>>>> This patch mostly restores behaviour before commit 3cf4095d7446
>>>> ("arm/xen: Use xen_xlate_map_ballooned_pages to setup grant table")
>>>> but trying not to break the ACPI support added after that commit.
>>>> So the patch touches DT part only and leaves the ACPI part with
>>>> xen_xlate_map_ballooned_pages().
>>>>
>>>> This is a preparation for using Xen extended region feature
>>>> where unused regions of guest physical address space (provided
>>>> by the hypervisor) will be used to create grant/foreign/whatever
>>>> mappings instead of wasting real RAM pages from the domain memory
>>>> for establishing these mappings.
>>>>
>>>> The immediate benefit of this change:
>>>> - Avoid superpage shattering in Xen P2M when establishing
>>>>     stage-2 mapping (GFN <-> MFN) for the grant table space
>>>> - Avoid wasting real RAM pages (reducing the amount of memory
>>>>     usuable) for mapping grant table space
>>>> - The grant table space is always mapped at the exact
>>>>     same place (region 0 is reserved for the grant table)
>>>>
>>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>> ---
>>>> Changes RFC -> V2:
>>>>      - new patch
>>>> ---
>>>>    arch/arm/xen/enlighten.c | 32 +++++++++++++++++++++++++-------
>>>>    1 file changed, 25 insertions(+), 7 deletions(-)
>>>>
>>>> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
>>>> index 7f1c106b..dea46ec 100644
>>>> --- a/arch/arm/xen/enlighten.c
>>>> +++ b/arch/arm/xen/enlighten.c
>>>> @@ -59,6 +59,9 @@ unsigned long xen_released_pages;
>>>>    struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS]
>>>> __initdata;
>>>>      static __read_mostly unsigned int xen_events_irq;
>>>> +static phys_addr_t xen_grant_frames;
>>> __read_mostly
>> ok
>>
>>
>>>
>>>> +#define GRANT_TABLE_INDEX   0
>>>>      uint32_t xen_start_flags;
>>>>    EXPORT_SYMBOL(xen_start_flags);
>>>> @@ -303,6 +306,7 @@ static void __init xen_acpi_guest_init(void)
>>>>    static void __init xen_dt_guest_init(void)
>>>>    {
>>>>    	struct device_node *xen_node;
>>>> +	struct resource res;
>>>>      	xen_node = of_find_compatible_node(NULL, NULL, "xen,xen");
>>>>    	if (!xen_node) {
>>>> @@ -310,6 +314,12 @@ static void __init xen_dt_guest_init(void)
>>>>    		return;
>>>>    	}
>>>>    +	if (of_address_to_resource(xen_node, GRANT_TABLE_INDEX, &res)) {
>>>> +		pr_err("Xen grant table region is not found\n");
>>>> +		return;
>>>> +	}
>>>> +	xen_grant_frames = res.start;
>>>> +
>>>>    	xen_events_irq = irq_of_parse_and_map(xen_node, 0);
>>>>    }
>>>>    @@ -317,16 +327,20 @@ static int __init xen_guest_init(void)
>>>>    {
>>>>    	struct xen_add_to_physmap xatp;
>>>>    	struct shared_info *shared_info_page = NULL;
>>>> -	int cpu;
>>>> +	int rc, cpu;
>>>>      	if (!xen_domain())
>>>>    		return 0;
>>>>      	if (!acpi_disabled)
>>>>    		xen_acpi_guest_init();
>>>> -	else
>>>> +	else {
>>>>    		xen_dt_guest_init();
>>>>    +		if (!xen_grant_frames)
>>>> +			return -ENODEV;
>>> maybe we can avoid this, see below
>>>
>>>
>>>> +	}
>>>> +
>>>>    	if (!xen_events_irq) {
>>>>    		pr_err("Xen event channel interrupt not found\n");
>>>>    		return -ENODEV;
>>>> @@ -370,12 +384,16 @@ static int __init xen_guest_init(void)
>>>>    	for_each_possible_cpu(cpu)
>>>>    		per_cpu(xen_vcpu_id, cpu) = cpu;
>>>>    -	xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
>>>> -	if (xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
>>>> -					  &xen_auto_xlat_grant_frames.vaddr,
>>>> -					  xen_auto_xlat_grant_frames.count)) {
>>>> +	if (!acpi_disabled) {
>>> To make the code more resilient couldn't we do:
>>>
>>> if (!acpi_disabled || !xen_grant_frames) {
>> I think, we can.
>>
>> On the one hand, indeed the code more resilient and less change.
>>  From the other hand if grant table region is not found then something weird
>> happened as region 0 is always present in reg property if hypervisor node is
>> exposed to the guest.
>> The behavior before commit 3cf4095d7446 ("arm/xen: Use
>> xen_xlate_map_ballooned_pages to setup grant table") was exactly the same in
>> the context of the failure if region wasn't found.
>>
>> ...
>>
>> Well, if we want to make code more resilient, I will update. But, looks like
>> we also need to switch actions in xen_dt_guest_init() in order to process
>> xen_events_irq before xen_grant_frames, otherwise we may return after failing
>> with region and end up not initializing xen_events_irq so xen_guest_init()
>> will fail earlier than reaches that check.
>> What do you think?
>   
> Yes, you are right. I was re-reading the patch to refresh my memory and
> I noticed immediately that xen_dt_guest_init also need to be changed so
> that xen_events_irq is set before xen_grant_frames.
>   
> I think it is a minor change that doesn't add complexity but make the
> code more robust so I think it is a good idea


Great, thank you. Will do in next version.


>
>   
>>>> +		xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
>>>> +		rc =
>>>> xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
>>>> +
>>>> &xen_auto_xlat_grant_frames.vaddr,
>>>> +
>>>> xen_auto_xlat_grant_frames.count);
>>>> +	} else
>>>> +		rc = gnttab_setup_auto_xlat_frames(xen_grant_frames);
>>>> +	if (rc) {
>>>>    		free_percpu(xen_vcpu_info);
>>>> -		return -ENOMEM;
>>>> +		return rc;
>>>>    	}
>>>>    	gnttab_init();

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 18:55:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 18:55:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228211.394838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo92u-0001Jz-QJ; Fri, 19 Nov 2021 18:55:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228211.394838; Fri, 19 Nov 2021 18:55:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo92u-0001Js-Ly; Fri, 19 Nov 2021 18:55:36 +0000
Received: by outflank-mailman (input) for mailman id 228211;
 Fri, 19 Nov 2021 18:55:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TVl8=QG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mo92s-0001Jh-IX
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 18:55:34 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4487bdd3-496a-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 19:55:32 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id B2BD761AA2;
 Fri, 19 Nov 2021 18:55:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4487bdd3-496a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637348130;
	bh=7+5c6ESX5WUZoGJmhyQOFIgVFAHdUcMLLqCv4dbEQdE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=A2VON8A4peZP/hIzmPKfdQJmdA7pVrf72yqaA971DkIo05RYNKAfF5BHHTSWOFvRu
	 w1M084Nn6QghOaszX1Je4zkO36xbzBoWamzmS33eKCEdFlmjSoML+TbM7kfOmDucSX
	 ng4gEW8zzgm+RFjJ2PyUAPrkr0sINY0yqNmPqT6GnG2PVhYx9i9mPldewPeAOsTzic
	 N4cBAucYd5CLCWVkUHx/mNtRI2u2LWHRvIp+aDOB2W5hv9Pwr1pxnESHzCTkpu0/tt
	 o/ELGO8/0v4+Trba2vNcimL6hR2n6OPgLalc2pLc4O7593wdjvwMj1/gZ1hYX05mZt
	 ibUQR6CvIdnpA==
Date: Fri, 19 Nov 2021 10:55:27 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Luca Fancellu <Luca.Fancellu@arm.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    George Dunlap <george.dunlap@citrix.com>, Juergen Gross <jgross@suse.com>, 
    Dario Faggioli <dfaggioli@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
In-Reply-To: <17cd2c69-56cb-15b9-d381-f854aea55d27@xen.org>
Message-ID: <alpine.DEB.2.22.394.2111191052050.1412361@ubuntu-linux-20-04-desktop>
References: <20211117095711.26596-1-luca.fancellu@arm.com> <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org> <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com> <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org> <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
 <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org> <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop> <17cd2c69-56cb-15b9-d381-f854aea55d27@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 19 Nov 2021, Julien Grall wrote:
> Hi Stefano,
> 
> On 18/11/2021 02:19, Stefano Stabellini wrote:
> > On Wed, 17 Nov 2021, Julien Grall wrote:
> > > > > > > On 17 Nov 2021, at 10:26, Julien Grall <julien@xen.org> wrote:
> > > > > > > 
> > > > > > > Hi Luca,
> > > > > > > 
> > > > > > > On 17/11/2021 09:57, Luca Fancellu wrote:
> > > > > > > > Currently Xen creates a default cpupool0 that contains all the
> > > > > > > > cpu
> > > > > > > > brought up
> > > > > > > > during boot and it assumes that the platform has only one kind
> > > > > > > > of
> > > > > > > > CPU.
> > > > > > > > This assumption does not hold on big.LITTLE platform, but
> > > > > > > > putting
> > > > > > > > different
> > > > > > > > type of CPU in the same cpupool can result in instability and
> > > > > > > > security issues
> > > > > > > > for the domains running on the pool.
> > > > > > > 
> > > > > > > I agree that you can't move a LITTLE vCPU to a big pCPU.
> > > > > > > However...
> > > > > > > 
> > > > > > > > For this reason this serie introduces an architecture specific
> > > > > > > > way
> > > > > > > > to create
> > > > > > > > different cpupool at boot time, this is particularly useful on
> > > > > > > > ARM
> > > > > > > > big.LITTLE
> > > > > > > > platform where there might be the need to have different
> > > > > > > > cpupools
> > > > > > > > for each type
> > > > > > > > of core, but also systems using NUMA can have different cpu pool
> > > > > > > > for
> > > > > > > > each node.
> > > > > > > 
> > > > > > > ... from my understanding, all the vCPUs of a domain have to be in
> > > > > > > the
> > > > > > > same cpupool. So with this approach it is not possible:
> > > > > > >     1) to have a mix of LITTLE and big vCPUs in the domain
> > > > > > >     2) to create a domain spanning across two NUMA nodes
> > > > > > > 
> > > > > > > So I think we need to make sure that any solutions we go through
> > > > > > > will
> > > > > > > not prevent us to implement those setups.
> > > > > > The point of this patch is to make all cores available without
> > > > > > breaking
> > > > > > the current behaviour of existing system.
> > > > > 
> > > > > I might be missing some context here. By breaking current behavior, do
> > > > > you
> > > > > mean user that may want to add "hmp-unsafe" on the command line?
> > > > 
> > > > Right, with hmp-unsafe the behaviour is now the same as without, only
> > > > extra
> > > > cores are parked in other cpupools.
> > > > 
> > > > So you have a point in fact that behaviour is changed for someone who
> > > > was
> > > > using hmp-unsafe before if this is activated.
> > > > The command line argument suggested by Jurgen definitely makes sense
> > > > here.
> > > > 
> > > > We could instead do the following:
> > > > - when this is activated in the configuration, boot all cores and park
> > > > them
> > > > in different pools (depending on command line argument). Current
> > > > behaviour
> > > > not change if other pools are not used (but more cores will be on in
> > > > xen)
> > > 
> > >  From my understanding, it is possible to move a pCPU in/out a pool
> > > afterwards.
> > > So the security concern with big.LITTLE is still present, even though it
> > > would
> > > be difficult to hit it.
> > 
> > As far as I know moving a pCPU in/out of a pool is something that cannot
> > happen automatically: it requires manual intervention to the user and it
> > is uncommon. We could print a warning or simply return error to prevent
> > the action from happening. Or something like:
> > 
> > "This action might result in memory corruptions and invalid behavior. Do
> > you want to continue? [Y/N]
> > 
> > 
> > > I am also concerned that it would be more difficult to detect any
> > > misconfiguration. So I think this option would still need to be turned on
> > > only
> > > if hmp-unsafe are the new command line one are both on.
> > > 
> > > If we want to enable it without hmp-unsafe on, we would need to at least
> > > lock
> > > the pools.
> > 
> > Locking the pools is a good idea.
> > 
> > My preference is not to tie this feature to the hmp-unsafe command line,
> > more on this below.
> 
> The only reason I suggested to tie with hmp-unsafe is if you (or anyone else)
> really wanted to use a version where the pool are unlocked.
> 
> If we are going to implement the lock, then I think the hmp-unsafe would not
> be necessary for such configuration.
> 
> > 
> > 
> > > > - when hmp-unsafe is on, this feature will be turned of (if activated in
> > > > configuration) and all cores would be added in the same pool.
> > > > 
> > > > What do you think ?
> > > 
> > > I am split. On one hand, this is making easier for someone to try
> > > big.LITTLE
> > > as you don't have manually pin vCPUs. On the other hand, this is handling
> > > a
> > > single use-case and you would need to use hmp-unsafe and pinning if you
> > > want
> > > to get more exotic setup (e.g. a domain with big.LITTLE).
> > > 
> > > Another possible solution is to pin dom0 vCPUs (AFAIK they are just sticky
> > > by
> > > default) and then create the pools from dom0 userspace. My assumption is
> > > for
> > > dom0less we would want to use pinning instead.
> > > 
> > > That said I would like to hear from Xilinx and EPAM as, IIRC, they are
> > > already
> > > using hmp-unsafe in production.
> > 
> > This discussion has been very interesting, it is cool to hear new ideas
> > like this one. I have a couple of thoughts to share.
> > 
> > First I think that the ability of creating cpupools at boot time is
> > super important. It goes way beyond big.LITTLE. It would be incredibly
> > useful to separate real-time (sched=null) and non-real-time
> > (sched=credit2) workloads. I think it will only become more important
> > going forward so I'd love to see an option to configure cpupools that
> > works for dom0less. It could be based on device tree properties rather
> > than kconfig options.
> > 
> > It is true that if we had the devicetree-based cpupool configuration I
> > mentioned, then somebody could use it to create cpupools matching
> > big.LITTLE. > So "in theory" it solves the problem. However, I think that
> > for big.LITTLE it would be suboptimal. For big.LITTLE it would be best
> > if Xen configured the cpupools automatically rather than based on the
> > device tree configuration. 
> 
> This brings one question. How do Linux detect and use big.LITTLE? Is there a
> Device-Tree binding?
> 
> [...]
> 
> > So I think that it is a good idea to have a command line option (better
> > than a kconfig option) to trigger the MIDR-based cpupool creation at
> > boot time. The option could be called midr-cpupools=on/off or
> > hw-cpupools=on/off for example.
> > In terms of whether it should be the default or not, I don't feel
> > strongly about it.
> 
> On by default means this will security supported and we need to be reasonably
> confident this cannot be broken.
> 
> In this case, I am not only referring to moving a pCPU between pool but also
> Xen doing the right thing (e.g. finding the minimum cache line size).
> 
> 
> [...]
> 
> > - midr-cpupools alone
> > cpupools created at boot, warning/errors on changing cpupools >
> > - midr-cpupools + hmp-unsafe
> > cpupools created at boot, changing cpupools is allowed (we could still
> > warn but no errors)
> > 
> > - hmp-unsafe alone
> > same as today with hmp-unsafe
> 
> I like better Juergen's version. But before agreeing on the command line , I
> would like to understand how Linux is dealing with big.LITTLE today (see my
> question above).

I also like Juergen's version better :-)

The device tree binding that covers big.LITTLE is the same that covers
cpus: Documentation/devicetree/bindings/arm/cpus.yaml

So basically, you can tell it is a big.LITTLE system because the
compatible strings differ between certain cpus, e.g.:

      cpu@0 {
        device_type = "cpu";
        compatible = "arm,cortex-a15";
        reg = <0x0>;
      };

      cpu@1 {
        device_type = "cpu";
        compatible = "arm,cortex-a15";
        reg = <0x1>;
      };

      cpu@100 {
        device_type = "cpu";
        compatible = "arm,cortex-a7";
        reg = <0x100>;
      };

      cpu@101 {
        device_type = "cpu";
        compatible = "arm,cortex-a7";
        reg = <0x101>;
      };


> > For the default as I said I don't have a strong preference. I think
> > midr-cpupools could be "on" be default.
> 
> I think this should be off at the beginning until the feature is matured
> enough. We are soon opening the tree again for the next development cycle. So
> I think we have enough time to make sure everything work properly to have
> turned on by default before next release.

That's fine


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 19:22:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 19:22:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228218.394849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo9S6-0004cH-Ss; Fri, 19 Nov 2021 19:21:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228218.394849; Fri, 19 Nov 2021 19:21:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mo9S6-0004cA-PN; Fri, 19 Nov 2021 19:21:38 +0000
Received: by outflank-mailman (input) for mailman id 228218;
 Fri, 19 Nov 2021 19:21:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo9S5-0004bw-TG; Fri, 19 Nov 2021 19:21:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo9S5-0006Xb-Ih; Fri, 19 Nov 2021 19:21:37 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mo9S5-0000Qg-5h; Fri, 19 Nov 2021 19:21:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mo9S5-00048U-59; Fri, 19 Nov 2021 19:21:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=iynsgco+Knsjcc+1JAbZB2O5a92SPKzHt08TFB37kWE=; b=amvqMiCN+dwT/a+srGQvonYsvS
	zzhRrH08ubGjBNRzFOKlyPWhgXtXoHFOv59GsGqBzXdIE+p1PTJEtN5W9EhB/5nPcovmbud9OFqYO
	PDBHSmjHz4tsFGfx/ToER0tRaGzqW8zAdpS1iQVAGBSyRj1sZ5GLcGq4cEmfAPzv48Es=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166192-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.15-testing test] 166192: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.15-testing:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=2a19ee2ba6fa2b36e4d9331f9dc40bda40f7358e
X-Osstest-Versions-That:
    xen=f90cea9c556b7e67b3527e39f9732fb4af2fc11a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 19:21:37 +0000

flight 166192 xen-4.15-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166192/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166169
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166169
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166169
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166169
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166169
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166169
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166169
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166169
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166169
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166169
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166169
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166169
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166169
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  2a19ee2ba6fa2b36e4d9331f9dc40bda40f7358e
baseline version:
 xen                  f90cea9c556b7e67b3527e39f9732fb4af2fc11a

Last test of basis   166169  2021-11-17 12:06:36 Z    2 days
Testing same since   166192  2021-11-19 08:40:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@citrix.com>
  Dongli Zhang <dongli.zhang@oracle.com>
  Jan Beulich <jbeulich@suse.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Stefano Stabellini <sstabellini@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   f90cea9c55..2a19ee2ba6  2a19ee2ba6fa2b36e4d9331f9dc40bda40f7358e -> stable-4.15


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 20:23:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 20:23:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228256.394916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moAPq-0002tk-3K; Fri, 19 Nov 2021 20:23:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228256.394916; Fri, 19 Nov 2021 20:23:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moAPp-0002td-Uf; Fri, 19 Nov 2021 20:23:21 +0000
Received: by outflank-mailman (input) for mailman id 228256;
 Fri, 19 Nov 2021 20:23:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GMHT=QG=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1moAPo-0002tX-42
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 20:23:20 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8850131d-4976-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 21:23:18 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id c32so48534009lfv.4
 for <xen-devel@lists.xenproject.org>; Fri, 19 Nov 2021 12:23:18 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id n7sm81729lft.309.2021.11.19.12.23.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Nov 2021 12:23:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8850131d-4976-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=17v+5CGlHuqosrFfRBA+FY4B7FJfBGNwBHYYIZ/2duU=;
        b=GCvWy7cIEjfEm0z6D/X9jTDtSOYSpH6ezswAl+FU/aIwBcoh5d8OK4tEzmn0aWkpX8
         pR5hedlmjwgdWQ3UJdBUyfxQnLWOoWBSf88DyubQJ0d3BOyEHEsAfjWXUY3pC6hXbvRZ
         pNbFsKq2Hf+rBNezvcrCcJeQXfiuHANKjnF8WOxsenHJKPtdX6I+u1ssHDKl4hj0FpIl
         3WoIE7hKGAYOgksARQdWSvU4xGfIhqCZu/ukU5XxG9/5QwYYTAB7Pg5WP9JqflFtNCwE
         JadUbMltf5+Bqsrs0eDehAhe8kQKHJ55hnNnlb1mwCBaPPzRjZQB8ZQyl/g5q2lyrAZ0
         qhNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=17v+5CGlHuqosrFfRBA+FY4B7FJfBGNwBHYYIZ/2duU=;
        b=VmsSDB+CRX3Ay7VM8QNOXdpVp+8d4PDiMq1kntyPQV5x0CIJdSZYZvWAiZcCGjigD+
         T4wW/XpH0rqNXkKL1jthymaHlZqTMY/ZZm4sZaM/CgeJ8YKihdv0MQjNoxWpzHu6mKEn
         WNzLStLuSndPOilEY/W/WYBA3sECMOvDwfJ84eGQMN7hdMtmRxS0AHkN/U0eTSRjt2Af
         P/lbDPdscaaEvjCcoFAVFJ66Z5GjN8c8/QKcMlyKsdVr/ZqIIIegOav/Fr1gbv9529aE
         JyH88lXbyvfmjKU70kkfpCtpXKuZy7AX1HoD3nFn6wc/FZ5KppbzYLlxhilW/TAw9TjL
         6jbw==
X-Gm-Message-State: AOAM532rox0rB4C7l0v5M80a4FJl/bfws2XWvzCYRf+7d/HjLZNeFDSZ
	KeCwhdvwn42Xjx/nVYQ/blw=
X-Google-Smtp-Source: ABdhPJx9tRvX912cnChGYFTG1khFE9zkoyVg4ohzEWRQaIxOmE6E67O6pE5ufRyM7l5Ha3fe15oMoA==
X-Received: by 2002:a05:6512:249:: with SMTP id b9mr36853881lfo.496.1637353397691;
        Fri, 19 Nov 2021 12:23:17 -0800 (PST)
Subject: Re: [PATCH V2 4/4] arm/xen: Read extended regions from DT and init
 Xen resource
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Russell King <linux@armlinux.org.uk>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-5-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110271803060.20134@sstabellini-ThinkPad-T480s>
 <237f832d-5175-5653-18ee-058a7d7fa7a6@gmail.com>
 <alpine.DEB.2.22.394.2111181701110.1412361@ubuntu-linux-20-04-desktop>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <ee5a226b-0e12-8823-0961-bf2fe0bd494e@gmail.com>
Date: Fri, 19 Nov 2021 22:23:16 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111181701110.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 19.11.21 03:19, Stefano Stabellini wrote:

Hi Stefano

> On Wed, 10 Nov 2021, Oleksandr wrote:
>> On 28.10.21 04:40, Stefano Stabellini wrote:
>>
>> Hi Stefano
>>
>> I am sorry for the late response.
>>
>>> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>
>>>> This patch implements arch_xen_unpopulated_init() on Arm where
>>>> the extended regions (if any) are gathered from DT and inserted
>>>> into passed Xen resource to be used as unused address space
>>>> for Xen scratch pages by unpopulated-alloc code.
>>>>
>>>> The extended region (safe range) is a region of guest physical
>>>> address space which is unused and could be safely used to create
>>>> grant/foreign mappings instead of wasting real RAM pages from
>>>> the domain memory for establishing these mappings.
>>>>
>>>> The extended regions are chosen by the hypervisor at the domain
>>>> creation time and advertised to it via "reg" property under
>>>> hypervisor node in the guest device-tree. As region 0 is reserved
>>>> for grant table space (always present), the indexes for extended
>>>> regions are 1...N.
>>>>
>>>> If arch_xen_unpopulated_init() fails for some reason the default
>>>> behaviour will be restored (allocate xenballooned pages).
>>>>
>>>> This patch also removes XEN_UNPOPULATED_ALLOC dependency on x86.
>>>>
>>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>> ---
>>>> Changes RFC -> V2:
>>>>      - new patch, instead of
>>>>       "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide
>>>> unallocated space"
>>>> ---
>>>>    arch/arm/xen/enlighten.c | 112
>>>> +++++++++++++++++++++++++++++++++++++++++++++++
>>>>    drivers/xen/Kconfig      |   2 +-
>>>>    2 files changed, 113 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
>>>> index dea46ec..1a1e0d3 100644
>>>> --- a/arch/arm/xen/enlighten.c
>>>> +++ b/arch/arm/xen/enlighten.c
>>>> @@ -62,6 +62,7 @@ static __read_mostly unsigned int xen_events_irq;
>>>>    static phys_addr_t xen_grant_frames;
>>>>      #define GRANT_TABLE_INDEX   0
>>>> +#define EXT_REGION_INDEX    1
>>>>      uint32_t xen_start_flags;
>>>>    EXPORT_SYMBOL(xen_start_flags);
>>>> @@ -303,6 +304,117 @@ static void __init xen_acpi_guest_init(void)
>>>>    #endif
>>>>    }
>>>>    +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>>>> +int arch_xen_unpopulated_init(struct resource *res)
>>>> +{
>>>> +	struct device_node *np;
>>>> +	struct resource *regs, *tmp_res;
>>>> +	uint64_t min_gpaddr = -1, max_gpaddr = 0;
>>>> +	unsigned int i, nr_reg = 0;
>>>> +	struct range mhp_range;
>>>> +	int rc;
>>>> +
>>>> +	if (!xen_domain())
>>>> +		return -ENODEV;
>>>> +
>>>> +	np = of_find_compatible_node(NULL, NULL, "xen,xen");
>>>> +	if (WARN_ON(!np))
>>>> +		return -ENODEV;
>>>> +
>>>> +	/* Skip region 0 which is reserved for grant table space */
>>>> +	while (of_get_address(np, nr_reg + EXT_REGION_INDEX, NULL, NULL))
>>>> +		nr_reg++;
>>>> +	if (!nr_reg) {
>>>> +		pr_err("No extended regions are found\n");
>>>> +		return -EINVAL;
>>>> +	}
>>>> +
>>>> +	regs = kcalloc(nr_reg, sizeof(*regs), GFP_KERNEL);
>>>> +	if (!regs)
>>>> +		return -ENOMEM;
>>>> +
>>>> +	/*
>>>> +	 * Create resource from extended regions provided by the hypervisor to
>>>> be
>>>> +	 * used as unused address space for Xen scratch pages.
>>>> +	 */
>>>> +	for (i = 0; i < nr_reg; i++) {
>>>> +		rc = of_address_to_resource(np, i + EXT_REGION_INDEX,
>>>> &regs[i]);
>>>> +		if (rc)
>>>> +			goto err;
>>>> +
>>>> +		if (max_gpaddr < regs[i].end)
>>>> +			max_gpaddr = regs[i].end;
>>>> +		if (min_gpaddr > regs[i].start)
>>>> +			min_gpaddr = regs[i].start;
>>>> +	}
>>>> +
>>>> +	/* Check whether the resource range is within the hotpluggable range
>>>> */
>>>> +	mhp_range = mhp_get_pluggable_range(true);
>>>> +	if (min_gpaddr < mhp_range.start)
>>>> +		min_gpaddr = mhp_range.start;
>>>> +	if (max_gpaddr > mhp_range.end)
>>>> +		max_gpaddr = mhp_range.end;
>>>> +
>>>> +	res->start = min_gpaddr;
>>>> +	res->end = max_gpaddr;
>>>> +
>>>> +	/*
>>>> +	 * Mark holes between extended regions as unavailable. The rest of
>>>> that
>>>> +	 * address space will be available for the allocation.
>>>> +	 */
>>>> +	for (i = 1; i < nr_reg; i++) {
>>>> +		resource_size_t start, end;
>>>> +
>>>> +		start = regs[i - 1].end + 1;
>>>> +		end = regs[i].start - 1;
>>>> +
>>>> +		if (start > (end + 1)) {
>>> Should this be:
>>>
>>> if (start >= end)
>>>
>>> ?
>> Yes, we can do this here (since the checks are equivalent) but ...
>>
>>>> +			rc = -EINVAL;
>>>> +			goto err;
>>>> +		}
>>>> +
>>>> +		/* There is no hole between regions */
>>>> +		if (start == (end + 1))
>>> Also here, shouldn't it be:
>>>
>>> if (start == end)
>>>
>>> ?
>>     ... not here.
>>
>> As
>>
>> "(start == (end + 1))" is equal to "(regs[i - 1].end + 1 == regs[i].start)"
>>
>> but
>>
>> "(start == end)" is equal to "(regs[i - 1].end + 1 == regs[i].start - 1)"
>   
> OK. But the check:
>
>    if (start >= end)
>
> Actually covers both cases so that's the only check we need?

Sorry, I don't entirely understand the question.
Is the question to use only a single check in that loop?

Paste the updated code which I have locally for the convenience.

  [snip]

     /*
      * Mark holes between extended regions as unavailable. The rest of that
      * address space will be available for the allocation.
      */
     for (i = 1; i < nr_reg; i++) {
         resource_size_t start, end;

         start = regs[i - 1].end + 1;
         end = regs[i].start - 1;

         if (start > (end + 1)) {
             rc = -EINVAL;
             goto err;
         }

         /* There is no hole between regions */
         if (start == (end + 1))
             continue;

         tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
         if (!tmp_res) {
             rc = -ENOMEM;
             goto err;
         }

         tmp_res->name = "Unavailable space";
         tmp_res->start = start;
         tmp_res->end = end;

         rc = insert_resource(&xen_resource, tmp_res);
         if (rc) {
             pr_err("Cannot insert resource %pR (%d)\n", tmp_res, rc);
             kfree(tmp_res);
             goto err;
         }
     }

[snip]


1. The first check is to detect an overlap (which is a wrong 
configuration, correct?) and bail out if true (for example, regX: 
0x81000000...0x82FFFFFF and regY: 0x82000000...0x83FFFFFF).
2. The second check is just to skip current iteration as there is no 
space/hole between regions (for example, regX: 0x81000000...0x82FFFFFF 
and regY: 0x83000000...0x83FFFFFF).
Therefore I think they should be distinguished.

Yes, both check could be transformed to a single one, but this way the 
overlaps will be ignored:
if (start >= (end + 1))
     continue;

Or I really missed something?


>
>
>>> I think I am missing again something in termination accounting :-)
>> If I understand correctly, we need to follow "end = start + size - 1" rule, so
>> the "end" is the last address inside a range, but not the "first" address
>> outside of a range))
> yeah
>   
>
>>>> +			continue;
>>>> +
>>>> +		/* Check whether the hole range is within the resource range
>>>> */
>>>> +		if (start < res->start || end > res->end) {
>>> By definition I don't think this check is necessary as either condition
>>> is impossible?
>>
>> This is a good question, let me please explain.
>> Not all extended regions provided by the hypervisor can be used here. This is
>> because the addressable physical memory range for which the linear mapping
>> could be created has limits on Arm, and maximum addressable range depends on
>> the VA space size (CONFIG_ARM64_VA_BITS_XXX). So we decided to not filter them
>> in hypervisor as this logic could be quite complex as different OS may have
>> different requirement, etc. This means that we need to make sure that regions
>> are within the hotpluggable range to avoid a failure later on when a region is
>> pre-validated by the memory hotplug path.
>>
>> The following code limits the resource range based on that:
>>
>> +    /* Check whether the resource range is within the hotpluggable range */
>> +    mhp_range = mhp_get_pluggable_range(true);
>> +    if (min_gpaddr < mhp_range.start)
>> +        min_gpaddr = mhp_range.start;
>> +    if (max_gpaddr > mhp_range.end)
>> +        max_gpaddr = mhp_range.end;
>> +
>> +    res->start = min_gpaddr;
>> +    res->end = max_gpaddr;
>>
>> In current loop (when calculating and inserting holes) we also need to make
>> sure that resulting hole range is within the resource range (and adjust/skip
>> it if not true) as regs[] used for the calculations contains raw regions as
>> they described in DT so not updated. Otherwise insert_resource() down the
>> function will return an error for the conflicting operations. Yes, I could
>> took a different route and update regs[] in advance to adjust/skip
>> non-suitable regions in front, but I decided to do it on the fly in the loop
>> here, I thought doing it in advance would add some overhead/complexity. What
>> do you think?
> I understand now.
>
>
>> So I am afraid this check is necessary here.
>>
>> For example in my environment the extended regions are:
>>
>> (XEN) Extended region 0: 0->0x8000000
>> (XEN) Extended region 1: 0xc000000->0x30000000
>> (XEN) Extended region 2: 0x40000000->0x47e00000
>> (XEN) Extended region 3: 0xd0000000->0xe6000000
>> (XEN) Extended region 4: 0xe7800000->0xec000000
>> (XEN) Extended region 5: 0xf1200000->0xfd000000
>> (XEN) Extended region 6: 0x100000000->0x500000000
>> (XEN) Extended region 7: 0x580000000->0x600000000
>> (XEN) Extended region 8: 0x680000000->0x700000000
>> (XEN) Extended region 9: 0x780000000->0x10000000000
>>
>> *With* the check the holes are:
>>
>> holes [47e00000 - cfffffff]
>> holes [e6000000 - e77fffff]
>> holes [ec000000 - f11fffff]
>> holes [fd000000 - ffffffff]
>> holes [500000000 - 57fffffff]
>> holes [600000000 - 67fffffff]
>> holes [700000000 - 77fffffff]
>>
>> And they seem to look correct, you can see that two possible holes between
>> extended regions 0-1 (8000000-bffffff) and 1-2 (30000000-3fffffff) were
>> skipped as they entirely located below res->start
>> which is 0x40000000 in my case (48-bit VA: 0x40000000 - 0x80003fffffff).
>>
>> *Without* the check these two holes won't be skipped and as the result
>> insert_resource() will fail.
>>
>>
>> **********
>>
>>
>> I have one idea how we can simplify filter logic, we can drop all checks here
>> (including confusing one) in Arm code and update common code a bit:
>>
>> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
>> index 1a1e0d3..ed5b855 100644
>> --- a/arch/arm/xen/enlighten.c
>> +++ b/arch/arm/xen/enlighten.c
>> @@ -311,7 +311,6 @@ int arch_xen_unpopulated_init(struct resource *res)
>>          struct resource *regs, *tmp_res;
>>          uint64_t min_gpaddr = -1, max_gpaddr = 0;
>>          unsigned int i, nr_reg = 0;
>> -       struct range mhp_range;
>>          int rc;
>>
>>          if (!xen_domain())
>> @@ -349,13 +348,6 @@ int arch_xen_unpopulated_init(struct resource *res)
>>                          min_gpaddr = regs[i].start;
>>          }
>>
>> -       /* Check whether the resource range is within the hotpluggable range
>> */
>> -       mhp_range = mhp_get_pluggable_range(true);
>> -       if (min_gpaddr < mhp_range.start)
>> -               min_gpaddr = mhp_range.start;
>> -       if (max_gpaddr > mhp_range.end)
>> -               max_gpaddr = mhp_range.end;
>> -
>>          res->start = min_gpaddr;
>>          res->end = max_gpaddr;
>>
>> @@ -378,17 +370,6 @@ int arch_xen_unpopulated_init(struct resource *res)
>>                  if (start == (end + 1))
>>                          continue;
>>
>> -               /* Check whether the hole range is within the resource range
>> */
>> -               if (start < res->start || end > res->end) {
>> -                       if (start < res->start)
>> -                               start = res->start;
>> -                       if (end > res->end)
>> -                               end = res->end;
>> -
>> -                       if (start >= (end + 1))
>> -                               continue;
>> -               }
>> -
>>                  tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>>                  if (!tmp_res) {
>>                          rc = -ENOMEM;
>> diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c
>> index 1f1d8d8..a5d3ebb 100644
>> --- a/drivers/xen/unpopulated-alloc.c
>> +++ b/drivers/xen/unpopulated-alloc.c
>> @@ -39,6 +39,7 @@ static int fill_list(unsigned int nr_pages)
>>          void *vaddr;
>>          unsigned int i, alloc_pages = round_up(nr_pages, PAGES_PER_SECTION);
>>          int ret;
>> +       struct range mhp_range;
>>
>>          res = kzalloc(sizeof(*res), GFP_KERNEL);
>>          if (!res)
>> @@ -47,8 +48,10 @@ static int fill_list(unsigned int nr_pages)
>>          res->name = "Xen scratch";
>>          res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
>>
>> +       mhp_range = mhp_get_pluggable_range(true);
>> +
>>          ret = allocate_resource(target_resource, res,
>> -                               alloc_pages * PAGE_SIZE, 0, -1,
>> +                               alloc_pages * PAGE_SIZE, mhp_range.start,
>> mhp_range.end,
>>                                  PAGES_PER_SECTION * PAGE_SIZE, NULL, NULL);
>>          if (ret < 0) {
>>                  pr_err("Cannot allocate new IOMEM resource\n");
>> (END)
>>
>> I believe, this will work on x86 as arch_get_mappable_range() is not
>> implemented there,
>> and the default option contains exactly what being used currently (0, -1).
>>
>> struct range __weak arch_get_mappable_range(void)
>> {
>>      struct range mhp_range = {
>>          .start = 0UL,
>>          .end = -1ULL,
>>      };
>>      return mhp_range;
>> }
>>
>> And this is going to be more generic and clear, what do you think?
> Yeah this is much better, good thinking!

Great, thank you. Will do in next version.


-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 20:30:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 20:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228260.394926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moAWN-0004Gb-PR; Fri, 19 Nov 2021 20:30:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228260.394926; Fri, 19 Nov 2021 20:30:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moAWN-0004GU-Lt; Fri, 19 Nov 2021 20:30:07 +0000
Received: by outflank-mailman (input) for mailman id 228260;
 Fri, 19 Nov 2021 20:30:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TVl8=QG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1moAWL-00044k-LK
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 20:30:05 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 76098ce3-4977-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 21:29:59 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 5D08761108;
 Fri, 19 Nov 2021 20:29:56 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76098ce3-4977-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637353796;
	bh=ToeTFTsoG8RQjmG78bJhuXqP6zSZHWT6qNk31D0MUoU=;
	h=From:To:Cc:Subject:Date:From;
	b=HY0Wc0K3QU2jjN81tsHd7ofj+cn8CV/0zrvORkAufQty7mgSC5HNLx5jH2utPuyqK
	 h1AgZo9MEqDHOPlWQ4Fk0NHudI/ZO67jSVP+0ZeIFY+fvBCdSYLjWyRy/3B4J9/DkO
	 XEldKjW38qyT8TNQiscbakt71vNHJxNaH4jXrGOtkyPEmStyMR0rWKSAUgLM4QwtyN
	 LdaKPCNa4n2T77M0QvxBUu9/5/gk0tS2+tvGwNEQKWIQ7Y2XWFX59lkdTzkO2qJ8vL
	 YbZzsrmxYctOuMNtFhv7qmdcxG/UIR7+AwJQMTL+7ixA1Lb1hDlG+lhL309Lm5rjfA
	 ak/Iv7GH6QuSw==
From: Stefano Stabellini <sstabellini@kernel.org>
To: jgross@suse.com
Cc: boris.ostrovsky@oracle.com,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	sstabellini@kernel.org,
	jbeulich@suse.com,
	Stefano Stabellini <stefano.stabellini@xilinx.com>,
	stable@vger.kernel.org
Subject: [PATCH v2] xen: detect uninitialized xenbus in xenbus_init
Date: Fri, 19 Nov 2021 12:29:51 -0800
Message-Id: <20211119202951.403525-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

If the xenstore page hasn't been allocated properly, reading the value
of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
error. Instead, it will succeed and return zero. Instead of attempting
to xen_remap a bad guest physical address, detect this condition and
return early.

Note that although a guest physical address of zero for
HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
and zero has never been validly used in that capacity.

Also recognize the invalid value of INVALID_PFN which is ULLONG_MAX.

For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
above ULONG_MAX should never be passed by the Xen tools to HVM guests
anyway, so check for this condition and return early.

Cc: stable@vger.kernel.org
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
Changes in v2:
- add check for ULLONG_MAX (unitialized)
- add check for ULONG_MAX #if BITS_PER_LONG == 32 (actual error)
- add pr_err error message

 drivers/xen/xenbus/xenbus_probe.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 94405bb3829e..c7472ff27a93 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -951,6 +951,20 @@ static int __init xenbus_init(void)
 		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
 		if (err)
 			goto out_error;
+		/* Uninitialized. */
+		if (v == 0 || v == ULLONG_MAX) {
+			err = -ENOENT;
+			goto out_error;
+		}
+		/* Avoid truncation on 32-bit. */
+#if BITS_PER_LONG == 32
+		if (v > ULONG_MAX) {
+			pr_err("%s: cannot handle HVM_PARAM_STORE_PFN=%llx > ULONG_MAX\n",
+			       __func__, v);
+			err = -EINVAL;
+			goto out_error;
+		}
+#endif
 		xen_store_gfn = (unsigned long)v;
 		xen_store_interface =
 			xen_remap(xen_store_gfn << XEN_PAGE_SHIFT,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 19 22:05:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 22:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228265.394936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moC0N-0004g2-Oy; Fri, 19 Nov 2021 22:05:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228265.394936; Fri, 19 Nov 2021 22:05:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moC0N-0004fv-M7; Fri, 19 Nov 2021 22:05:11 +0000
Received: by outflank-mailman (input) for mailman id 228265;
 Fri, 19 Nov 2021 22:05:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moC0L-0004fk-Jz; Fri, 19 Nov 2021 22:05:09 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moC0L-0000y7-D2; Fri, 19 Nov 2021 22:05:09 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moC0L-0002sc-2G; Fri, 19 Nov 2021 22:05:09 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moC0L-0008Fo-1W; Fri, 19 Nov 2021 22:05:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=/PotiMW8fZ5FgCoTTKUwudyyjxapfy7PAX3O5ICp+TU=; b=m0hbRuYrv+rU4mapptrKgSBnJi
	7edNsFZk9yGbejQgRsSP9JwCreL2RevMmEO5RBWlqKLgkfJ7O2RLvi/tv/5XbOs7grpVtT9L3Ve/n
	dQfz9+Lr7o8lmo2vzwVbk9koS4oObBw+pr2G32kCLIvrOjXjpov9SM9fkj3YKqPl7XBM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166197-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166197: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
X-Osstest-Versions-That:
    xen=24d7cc416bba1f88da4c7b2649ac32486229b97b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Nov 2021 22:05:09 +0000

flight 166197 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166197/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9
baseline version:
 xen                  24d7cc416bba1f88da4c7b2649ac32486229b97b

Last test of basis   166195  2021-11-19 15:02:50 Z    0 days
Testing same since   166197  2021-11-19 19:00:27 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   24d7cc416b..be12fcca8b  be12fcca8b784e456df3adedbffe657d753c5ff9 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Nov 19 22:26:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 22:26:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228271.394951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moCKf-00073i-HT; Fri, 19 Nov 2021 22:26:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228271.394951; Fri, 19 Nov 2021 22:26:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moCKf-00073b-ES; Fri, 19 Nov 2021 22:26:09 +0000
Received: by outflank-mailman (input) for mailman id 228271;
 Fri, 19 Nov 2021 22:26:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/ti+=QG=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1moCKe-00073V-8O
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 22:26:08 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac4b906c-4987-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 23:26:01 +0100 (CET)
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AJLJ25N007606; 
 Fri, 19 Nov 2021 22:25:42 GMT
Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cefpjhxcv-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 19 Nov 2021 22:25:42 +0000
Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1])
 by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AJMGrTj114244;
 Fri, 19 Nov 2021 22:25:41 GMT
Received: from nam10-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam10lp2107.outbound.protection.outlook.com [104.47.58.107])
 by aserp3020.oracle.com with ESMTP id 3ca56awx0y-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 19 Nov 2021 22:25:41 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB3759.namprd10.prod.outlook.com (2603:10b6:208:185::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Fri, 19 Nov
 2021 22:25:39 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 22:25:39 +0000
Received: from [10.74.108.53] (138.3.200.53) by
 SA9PR13CA0081.namprd13.prod.outlook.com (2603:10b6:806:23::26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.7 via Frontend Transport; Fri, 19 Nov 2021 22:25:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac4b906c-4987-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=XM2O/IPjWkQRwFoxAoLfyxSNWGPepbAgIb7R59dR8Yk=;
 b=cD4ypq/bvjPjrJ6ZC7CcEnn+UZAifmDYx22hbOcV1j4BBi+Z7/GL1hRJrKDOUYF3DNaV
 zWoDBDNYa1VjWzoEDq3SOKUYW81+rhrJTDyFTCUIs6oXiL52uHnkP5bbABW6So232aF0
 4Tf1hIqnfwj1mZ+YrunsUGKKr2SlRWrgjY+nTjYK6PrEUE83MhG9AyElflPRbxyhnzBB
 DbWY7FpNSXfuckY0RjCPyHm/osRf5w0g9XCPggU8K1xGFe1bPz4ymB3Letk1mEi94NVH
 V32zs94nrQyWfMLqdqdJ4LtfVadKD400fK+LfbzNrsr6kgSZd7W2NbqhqKzSmvqn2jo0 dA== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=d60Zl+45ezrkfUNJOj4CoWP8zE6DphMsNBsJz3dj63eld2SAGtxqgpQTBBXRT3DP67/onyXIGAdyUxPYpiUaqLMp/rT6NPls31/PjtLAwDnSmeZEGqvjquuDkb5vTvL27GhvIv3wxe92Qg27+qeoXSdVKKBO5LWTCN/koEvybqmKrRuSHdbxxWzSNPWWEUWDNtjpV13n3ZFjV4NAWcbnJ6iFEndd7e/AZZoi80o1EG0PUQo/39zm2JLb6wixrYlodPRBdPGTJXT6NZ1uS8FG8epkVdiCca4rxeou4wlZPUPc2xjbJ++ikLRNQkvUMKZPYWmxgX0PhPBYOkmg4hn0pA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XM2O/IPjWkQRwFoxAoLfyxSNWGPepbAgIb7R59dR8Yk=;
 b=JzkeoE+5JrIhIzWjuCo9RRKRd6S8SeSIOUoT0MikYN3D4a+B/Qj9udSUSKCWFfkt3WHpptJFRomujEbfZjy/OyASOy3junny6al1iVUw3eRAWGCn3HhYumdCy6J7tTQ5797ml5Dv7G4JGrMh/7VtSVjSUqIGLTQuvlKWSdlPBPyCqoAHxY+WWXmlf3UumSfM1IEQ8+WvdyLFKNssblMr+HCTqqTk83+lD0r4rSLn2zFpL4Nbd9vYkTmiWzBuAnuFiHjIHhNUF60gRvd6+pjIL5/v2NtLejYvY4aHQgTIn27NV+ViHWWIADgFj69KZ6U3m/Yot7TGPOiUd53ZVYlC8g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XM2O/IPjWkQRwFoxAoLfyxSNWGPepbAgIb7R59dR8Yk=;
 b=t8Pz0uU62hcZewMHtvk3TMMTc7ziyMaZW1YvhwLqH08kRr2LPQkg1LH+Nj1Q/Mtt0ZmRZtkaTv1QBrX7KYrD7LUL9khDoijjJclM7Ijp8C1kTT1Wx92bkss7eHH+wPUIEH2V6saF4dnRPiGTu4SAZwOPLY/07s0XgQYiSGIL11Q=
Message-ID: <43d1cf7a-73ff-22ac-95f2-b92017357a29@oracle.com>
Date: Fri, 19 Nov 2021 17:25:33 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH] xen/pvh: add missing prototype to header
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        x86@kernel.org, linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, kernel test robot <lkp@intel.com>
References: <20211119153913.21678-1-jgross@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211119153913.21678-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SA9PR13CA0081.namprd13.prod.outlook.com
 (2603:10b6:806:23::26) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9fe6eadf-bbe4-4e4d-7566-08d9abab841e
X-MS-TrafficTypeDiagnostic: MN2PR10MB3759:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB3759D11E79A661713C6076A68A9C9@MN2PR10MB3759.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:972;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	fWHCBDchvhRUA3wXmzQZslo73UGYqt24X0V8gel7PgA6MwjboyQXSEVR9g0ZFs2qSeUDz15vw7Cg+IqMDG9tzg6evKWG74gXY+RLPMhfrFrAYHV7XTEZV7+5PLccLAqV4lHKLKJfGGt1xoueGj6352fbprqIhFHAr0oQ84r0h3XgwKscE1rH6G/XdllmtDdefL8UPuHeKNKfQSvmO4lOkBWfC8KwqQ5Xpl/xDg715mNieZofkaSojkZK9VwgUg9lkybz9bEBMnGZ9A8oSDNT3jIcrN8FJNrEFZaNHp0iKai6ZT7M5pCPukJHhnFt4Mtz0xMwG5YVaoRJOH5u7gdWaj+nRUnu7iWH8zQM9fa60OCp9MuoOq2UPyYveIEhQ7SEMaAV0kHXJ4LKFgwOavSjQpK4NFy2vviT6hRQztXsDHyQVhiwiW7Hy9veAzOL2yZe3G/7f/P3ej9I6bD2S9H5JpVMsB09fN6SxHqUZV649JcwYkGAJkjTOymMrcCgR1pUJWqEJlZpTTicTxC+zOn9plbuRsG2nnba66z7+IZdrrPGsUgoIhQtWLWkBzqN2d3/410WYp02jEAJhIIhXzDLp7m0Ji+V/mBWwnLWHe0DfDK1dYU73HzlYXarWR2XLAwPvujX5eG4YIqLIZl1Yq2zuZTgs79BbHCvbHy/qmntGqaOKtNUCEyK7A7bz4aOmW3oNphFU959g2VQUYtuuN5LLcU9Tk8nzW5qwHER8IpXtDhG0F//rfYhuKrKnjz5zQ1i
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(66946007)(956004)(8676002)(4744005)(7416002)(2616005)(31696002)(4326008)(508600001)(186003)(66476007)(31686004)(6486002)(66556008)(86362001)(38100700002)(53546011)(44832011)(8936002)(2906002)(16576012)(54906003)(316002)(36756003)(6666004)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?OHZWMUNGQWs3M0RkZ1ZFcnFtdnBHd1llVmtqNFNmQ3gxQ1hKN3dlZmZ0b2VQ?=
 =?utf-8?B?SWpMeE9IZjkrWTVJYnBhL0Y5MHlHYTUrNVk5Y1g4QjFROVNhQysxWndEbGV4?=
 =?utf-8?B?M2pkUlpSTWRBdWJjOXc5akRIRVoyZDRWdjU5bVN2aWFOZUpaQWNGaEFFODlV?=
 =?utf-8?B?RDdDMlRmNkJ5TFFWaEdJL2tRVnZ1N1lQSmUrMmVmazFVeXdQRGE1eGQrTzlx?=
 =?utf-8?B?L3ZrWi93Y29CWW1EK0tDdUdwd0ZQWTJBczdDRU94OFo5aklrMjVXVE5FZVZV?=
 =?utf-8?B?MFJkM1BEQkJoejJqM2c1M1RYWGxDMm1hbnFvRTFNWjlRT1hMb2wzTDlvOUVm?=
 =?utf-8?B?OUZRMnV1Z25pRmtOWXlSVjN1WHV6SjZMRW9rU3JoWHB2eE1ESVlrSmlnTHZU?=
 =?utf-8?B?NkR5c2lac0xkdkUxcm1wZzdwZ3pKWktIT2tHT0JnMVZDOGw5aURSczZ2eFNL?=
 =?utf-8?B?WkNwRlVPYk1FRjh5SGowV201RTRmOUNqNnFhRWticURxTkZsZldoWjR6VUdh?=
 =?utf-8?B?c1hIdnIxUytYK0gwZTFBUE00VTNqYy9uWmVkWVMxTHE0MTdoV3hITjM5NWNx?=
 =?utf-8?B?bmxNVjBLUENXZkhMUWtWMkdXSzBTeDlVT1lOd3F4WGNITWFQWm41bmVEaENW?=
 =?utf-8?B?VjJKdTk3V081Z3lQSEt0ZnorYjgxbUQrQ3k0bExzQ0czMnV3a052K1VKSjZy?=
 =?utf-8?B?Tk1jdkQ5YTAyeWRzQngzN0RtQThkczJQTUJVMFFxbnRXQzRFTUozRmNEaE1N?=
 =?utf-8?B?LzY0VXZHZGg5SVRCWStxT05SSXYrVGxXSUkwOEt3c09acW9yUWk2eFVNNGNw?=
 =?utf-8?B?aTlySzh3bWhMWWhLL243N2hGRFNTVVJvTEVkL3dBQUtBODFZNElZWGdrb1B1?=
 =?utf-8?B?d1pwQlBNaTI1Sk9mb3k4UElIc29XbSsvQVlCTWV3RktMbUVYT1ovajZ1ZHRC?=
 =?utf-8?B?Q2lIelkvK3hMZFl5ODYvU0FCQy91TG9HUDBZaGh2SHlEYkZodUV5OTIwUnhm?=
 =?utf-8?B?aUEySjRidVY1dG5aVVM5ODM1ZTdJRm82R2pxeHloZ1lwMVdCQVJCM21selB5?=
 =?utf-8?B?N0xhYnd6VW1OclovR0IwOG5mNU1GcXczeHFyMmk2aGxOQmFXb2dselpZVyt2?=
 =?utf-8?B?TmxMVlY0SjNqVEZ6eGc3V2JMVW1YS1RSU1p1dlRyYzAvaWNnUTY1b3NwbnlY?=
 =?utf-8?B?UTE2TUowWkFoU2p0dDJ3SGswM0NycFo0UjZCRmlFVHB2bFZaWGVaWUtLYXN2?=
 =?utf-8?B?MlVVdjBYODhVRkFjK3VqTnBFR1RnWjRTR05PYTg5VVNyWXdZTTlwalNyWmVa?=
 =?utf-8?B?S3duWVlzdVNmUmhiQ3NucnVPUGZKbFg3elcrWGFMY0lGUGwwWlpVa1NqdlFi?=
 =?utf-8?B?S2Vzd2pRa1BNMEw1c0RuV05SNlFLTTNiUFYyU1lDZ2RXdHRhelpLcm5HYWI2?=
 =?utf-8?B?dExEdGpyRWczSDdzNVdZYktzZS85VjFXb3RtcHdqQTR1c3IzbkxXQnhCcDJB?=
 =?utf-8?B?RTdJc1JsZFlTdnlFaXpPWXh3UkVIdWtEY2dtWXNuNUlGZENheUJmeUI0UGJW?=
 =?utf-8?B?ZFdEblRJZXdsc3RDdDVUYWp6dE1WeVQ0RHRsMmtwQ3FkTmhZVEU0TFRSVHI4?=
 =?utf-8?B?bDZWSkEwUWQxSTNhNlhEL2ZNKzByLytKK0theC9CdUZEMG1EWGhZTHVFZHFI?=
 =?utf-8?B?eWNWbWJwcUJCUXpaRzlHaVdPRlJyeUJVeFArbW8xVVkrc1F6OVREQnYvamhC?=
 =?utf-8?B?bGZhUzRKclZ5TFlsbVBrS1hEVkVDeDhZd0FadDBVamVwUU5CYmhENEVFQi80?=
 =?utf-8?B?NW16QzRaODFudXBaRTlLVjZZQXlFeW5MLzliVmdHc1kvN1p5L3I4SzFBNXJ0?=
 =?utf-8?B?ckd2M3QzTzZXU3V6RisyMEZtdWpYcmFpZXNJcnhrd2N5T1M3RHVWT0lCSUhD?=
 =?utf-8?B?OFNha205ZFpYYlhoa3V1cktHc0sxQ2ZKekdSUHgzYVVsSjh3dXRISXpvY21C?=
 =?utf-8?B?aE9ETjNsOGwxVFp5bHFDdXd1czlTM0JpaDQ2QUFsaHVhMzZ2TkFoUzRZL2pX?=
 =?utf-8?B?a0o3QUNySGtDUVZhMzEwYzVjZUN4RXc5NHlKY2RuVGtuOUxBZUo5bTlrQzE0?=
 =?utf-8?B?a2QwZzlhRTFLWXRmSjN2ZFN4clZ6MmRYVW5LZW1PLzBCZm1DYkJsV1VPNEFL?=
 =?utf-8?B?ek05TWpiWEQ3eFhvRGdLVnZ3ZEQ2ZjhxM1V1ZFJQbk9nMVdQZzJsaVdhRlU1?=
 =?utf-8?B?b2cvWHRhZ25iZWtYNFFQQVcrRTl3PT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9fe6eadf-bbe4-4e4d-7566-08d9abab841e
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 22:25:39.5803
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gi8GBopsTtAnHkJ2vi/NQPe1xzm6gsLB9JDhCzciNvPmYggCX+/YKUqU5MZwEHVe/xk1aaZm04HuxB6LTEcfX10IIg9tpK3uy8NkTU1L+1g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3759
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10173 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 mlxscore=0
 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111190119
X-Proofpoint-ORIG-GUID: 88ov-w8zqo4X55JjxLUlOWwduQyjQbg7
X-Proofpoint-GUID: 88ov-w8zqo4X55JjxLUlOWwduQyjQbg7


On 11/19/21 10:39 AM, Juergen Gross wrote:
> The prototype of mem_map_via_hcall() is missing in its header, so add
> it.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Fixes: a43fb7da53007e67ad ("xen/pvh: Move Xen code for getting mem map via hcall out of common file")
> Signed-off-by: Juergen Gross <jgross@suse.com>


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>





From xen-devel-bounces@lists.xenproject.org Fri Nov 19 22:32:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Nov 2021 22:32:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228276.394962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moCQp-000084-BE; Fri, 19 Nov 2021 22:32:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228276.394962; Fri, 19 Nov 2021 22:32:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moCQp-00007x-8L; Fri, 19 Nov 2021 22:32:31 +0000
Received: by outflank-mailman (input) for mailman id 228276;
 Fri, 19 Nov 2021 22:32:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/ti+=QG=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1moCQn-00007r-Fa
 for xen-devel@lists.xenproject.org; Fri, 19 Nov 2021 22:32:29 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 92e991c3-4988-11ec-a9d2-d9f7a1cc8784;
 Fri, 19 Nov 2021 23:32:28 +0100 (CET)
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AJLZaJX027683; 
 Fri, 19 Nov 2021 22:32:25 GMT
Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cefpbhuny-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 19 Nov 2021 22:32:25 +0000
Received: from pps.filterd (userp3030.oracle.com [127.0.0.1])
 by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AJMGPkq011117;
 Fri, 19 Nov 2021 22:32:24 GMT
Received: from nam11-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam11lp2175.outbound.protection.outlook.com [104.47.58.175])
 by userp3030.oracle.com with ESMTP id 3ca2g2yxxb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 19 Nov 2021 22:32:24 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB4399.namprd10.prod.outlook.com (2603:10b6:208:1d9::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Fri, 19 Nov
 2021 22:32:22 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021
 22:32:22 +0000
Received: from [10.74.108.53] (138.3.200.53) by
 SN6PR01CA0011.prod.exchangelabs.com (2603:10b6:805:b6::24) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.20 via Frontend Transport; Fri, 19 Nov 2021 22:32:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92e991c3-4988-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=0mGO6sDq46Dad6LWRdq9afD/taMjgZUxDP273TaC1q4=;
 b=yLlaExdage+bN+tmkQ8XON4SIdb3d75WcSIBQl6qHd7EMGv8TDXFYlxQaTwkAcxi9sJv
 KDQFcJw+LHMBZ9+Q3NaeCg3yjHYgNTJG0Jz5+l0qELOoztNrs9ke4Lap5Y0gscUyJTFB
 0V0G8YQQDZPyIKnceoqxI0kcxoYkN7ReWgN+jwqwDaIQZTHjnTZR7BZqa9EAaQ3iFnoP
 iY46LGEoVk60132JdjHuh2CDs337z6DMDWxs7rWg4y3Ch5vyHtyaXBfNARhRd9p9et0z
 ItQO121I/yNYcvcNLEX43hzzBW/xNE9yk7dOv9hq6I7KiEIXIoPKZ2RPj19a+hZHoUUt Bw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=b960uU9c/B5BgAV8IXJFxmIMxx9URzYsKEBp1p85qL+2E9hXln4N6E737jrPpPHYG59R8Prxk+9HKrZXr+R+9ezn05gZxjMXyybROcsvQ12SjKCF/TRKT+ciuP36ZBc1YyYNpZny4wmlZicfv3gEWVr6KW484izBv3dMdxnWlUX39r7PkAli40Qyt6UTgwesnRT01REz3J8EYuskxWM1ml4SI1OOZsehpW1F/vpz5HOzJU33cEbHR2uK2vKb76DaRZy3egB79yMTIjfQlGvgLVbE+n7TSay9V/YCB2FW6qgD5P7m+BBCguZ6OLEQ5ZMX8+BtrKjK6zD4TYa2KKon+w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0mGO6sDq46Dad6LWRdq9afD/taMjgZUxDP273TaC1q4=;
 b=Q92SYGfkk5J319fEUKrK2f2CYDRINNIyJ5M7YROmKEk7ktSLIqqjB1AopzPpecLI41kXsfYbUdH20DBaottbEUd4yxSp8SAQ2W6SZc74mZi95VAL8uO78JiWAkU49m4VXH6c0ZsVRIMtQ12EQUt099rzdtJvO+mNoNzNzmrcGftTEp4M6vqPp9mFrsMvuK9RGK++Ch6Z3teQ6MFb95oZbyVo8+hwkRHs/oKUGCEHJj0osC1y22xEc0w7ZlKRt8Hjp0p4vSMSKmx74sfGy8Z03xj+1/HqqgGzPiFgUteq4LL97miK/HWr8ChyN1eDyUwjkIgSDB51riV+5uBBl/FXXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0mGO6sDq46Dad6LWRdq9afD/taMjgZUxDP273TaC1q4=;
 b=Xiez+KelmFgJmx8IcliWiOUbTm+NJFdmcxHhqn411g0wkBT0h3m9Y4kvsRzEAQR+elQvh7P2LlJnPyMl5QG2Vtbl2oP28lkq7wcLtsQSDpp+TGU2EGa+24APW7tYuqXyrPL1xctk2zewH7xN/XhrzAM7Gvi655RcLmy23ZA0xpY=
Message-ID: <6141d292-692d-9828-48c1-2d00e0285903@oracle.com>
Date: Fri, 19 Nov 2021 17:32:15 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v2] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>, jgross@suse.com
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
        jbeulich@suse.com, Stefano Stabellini <stefano.stabellini@xilinx.com>,
        stable@vger.kernel.org
References: <20211119202951.403525-1-sstabellini@kernel.org>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211119202951.403525-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SN6PR01CA0011.prod.exchangelabs.com (2603:10b6:805:b6::24)
 To BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f930b4c8-76f2-4324-47e0-08d9abac7428
X-MS-TrafficTypeDiagnostic: MN2PR10MB4399:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB439980F931811ACECE8D04BC8A9C9@MN2PR10MB4399.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	YKzm2dhk9GeL2wAjjLyk9zGtnreWHQz4FYPLrLY0HGq1mMwx4ZC5hqjqqLnqnidWiMYXBz3WAv0wh8/oqedSZDKDOnW7JcjTbYPGDZIENowZIWty3gvN6iFRo799RPGSCLSUha4kQBX8+tD2ynXYvPYtygF5kN8bcGjgNMRp+4FCdR8HIdG+6iPlk22ewDdpu/gQGzMvi9caDO4+GHFwAmyU2x7lnO56Lpk1mAc55QhFzvj46sAV2G2+iIE/zhjA+OYpDGWTuZcKwgcXvl/WwV2YW/6cKymgZ7DIqDtN7fIDCULiGbW6WGmWvsLJkkRt+DTaMHYAt6XNNanJ987HD9UVVxXRCh5R4pPnVXSePhmUchAEv4GVpwA8iRdGRev513Y59bR9mfUsQxU84JohfbUH8mQAIHaR2F7nOZxsEt5aZ41M1IhP3I5ZHou7BMpvW2UmKSSXmdChS+9NzAEgdKsaUQtBgp/RaZ1jgMREtdlZN0QC0RroWaDHdcM1wXNcgYBlOawVd87KM/uCy7dARefA3YiX9dxYUJDKjG+QE25hvKXRoyTvwqEQdjEBE6H4G3258cyXvDsU3B3g95Azr5YOnBJAHVByJBVgTeUl2gF23ped/KuosvXiZ1hs71LYyDbja0TijTxlFCqrpOmZPovH+u7OCQ9SeInWTpJsQloM+nLZo/0chXGkQyM0zTIiJZn7M7LleABa14YqvMzFqw==
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(4326008)(186003)(66946007)(508600001)(66476007)(16576012)(66556008)(31696002)(316002)(6486002)(2616005)(38100700002)(53546011)(31686004)(2906002)(5660300002)(26005)(8936002)(8676002)(956004)(6666004)(44832011)(83380400001)(36756003)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?YVJFbnNiTGEyRkFlQlQ0Q09tQ3hHa3RmbitOYmsva2J2NUJRS2Nqc0xuWVdq?=
 =?utf-8?B?Y3RnbkJGQ29xT2pmL3NMMDhrbk8vdnBCUzNON29kaGs5amZIL2NhQnBTMm4r?=
 =?utf-8?B?YW1oWmNUbjRNQVExT1N6VkRZUkZMUy9WT3ZjQklyNzVlRE4xTmlLc1ovTnJ1?=
 =?utf-8?B?VlJEcVhIM25ZSEZKbjU4Slo0aWV2cWVZVG05NFJmaC9lMkNBblVCTldnRjZJ?=
 =?utf-8?B?ZVMxbG1jai9Fc0JEeUJOcUFKc3pHY1A0Vk9zSW1vdThocEFjbmRQd0c3bzUx?=
 =?utf-8?B?R0R1RGozNmQ4Q2JreWEzRUxuMitDZE5hOU5GeXk5dnZBNElkN3ZNZk1LQkFK?=
 =?utf-8?B?MURvbm1SMk1Mc0JGWmJSVW84bEVjN0RybG4wWnRyTzBJZ0RpTVk5a3MydE9a?=
 =?utf-8?B?K2xQSnlCVzlQMThLS29aOFd0NEZBWDI3M3BxTE40MVNieFArVVV2aGc1S0or?=
 =?utf-8?B?UHFDT1N0TmwvUnJxUEVEZU0zK3JLS1FQeWZaWjJuR1BsaHdNUWVZOE5VVFdY?=
 =?utf-8?B?MXdQVHBobDYreGc0bWJxRUFsbG9SSG8yckVpaXoxZTBPcFVCU0tUUXJSejAv?=
 =?utf-8?B?VzBDV1I0YzAweHFlMUcrenJ5UW8zdWo4WGdHeng0NStOQjB4V1hJWG9rRnRB?=
 =?utf-8?B?WFlSOG1iaHpiWkxNcllkNXRRaUd0MHkxTTJFTzA3bE96YVNpbEpZOHMwQXVl?=
 =?utf-8?B?UFdGMFJaV3BaRWtxVDFsejl3Y1VXS2ZXQ2FWT2J0NHNKWU1DMUhKbzNFY3pQ?=
 =?utf-8?B?RkRIU0VGUHN0WHB2NG10Ni9ydDJhRWJDMXJsTnJNR2djZk1UdWRRWk1RN3Vw?=
 =?utf-8?B?dXA4b2ZjYnZZK2dsUCthYjlGczJ5WWFBQVQ2THJWZDcyUjd5ejdIU2I4QjA0?=
 =?utf-8?B?VENTUjdxQ3B2T2QvbWZzeDlxWFZLNDQ2NG5XMGVjS0RuNklPVFVtU2hvSUps?=
 =?utf-8?B?eDM1VVpxcng2Vlg2dEdQaEx5a2JaWVVGU0lHL2RoWVNpeVFEcjFMZ0ZOZktN?=
 =?utf-8?B?VDR1WVNyK3UzcVZ4UHRGbmpPY0xiRHRXMEw5YzAzWG5sR3pLWjdJTlpldFFM?=
 =?utf-8?B?RlBUVnFxRDZrNUNXS3lzYnlDTjk5TFFIYnNWUXFUMU9SSVhycENzejljeklj?=
 =?utf-8?B?V3hjR0luNGpvRnRsZmdVUDFxaGpST1ZoYXFneUYzc2I5QmNxNDdDaGRWcVBq?=
 =?utf-8?B?amVCVHc3UDNaWkpwYlZrR1VoaWpnS2FPRnY0N3BKc0NxOHl0ZkpaUEpQaXMv?=
 =?utf-8?B?QS9TRVFiSXNmY3FkL25sd3Q5azdzampXZUdPZ0ZTWU1sYzNybm1SZ2R3RHdh?=
 =?utf-8?B?UTYvNlFpVVRhSVgvQUVacm5wMFdoby9HNnRTY3pVeGxIUFhNMG5LMHJISHV1?=
 =?utf-8?B?a21ka1RTZ250aFExNWlWSytPWlRCU3dnN1FZS0c0NWtrWXE0UGtZTytqK1Qy?=
 =?utf-8?B?TVhpNktWWitSNlhnUHYrZGVRcTZ6SmlBWFc1Ym81NW1BNy8xNXRwcVVRWUsv?=
 =?utf-8?B?YkpMalVhWm9rVm01Y0RYdC9XL0l2VjhJMjhYY3ppSW5WaDUvSTdBMnY5NUpp?=
 =?utf-8?B?dUQza2s2Q3Mvdm83UWZma0k1TFRPVnFMQTBySW1vQ0ZoYld3RC9URHMxK2dE?=
 =?utf-8?B?QzNFVjRSSjl3OWNYdkN0OERaZTZqSk1LRnZScFB3dFhIQkxJSnp0SlFpTE1Z?=
 =?utf-8?B?YnFoc005TXJkYXZoNEUwbFF2Q1RxRGN4b2dBeXZpL0JEbjh6MjdDcFVJQ2VQ?=
 =?utf-8?B?dDdZVHNPV2ljdUpJTWptTS8yOThzUzJhNVlKR3h2THFzdDhZWjN5UHp2d1lG?=
 =?utf-8?B?QVNjUG54alNXTXMwSUV5RGVScy8ybldKeUlRWHhpWFZWcG9leC8xS3cvRTM4?=
 =?utf-8?B?T0VCcDJmMGxPQnpmeVB5WmxjbWd0VmtvRUtYUUhwdnNQUGhpc2Z2c2trc3Iv?=
 =?utf-8?B?dU4zaHpPNFVISXEySXA3MkU1dTA3Z2pLazRldDI4MDJTdHV5RjZHRHVvdXUz?=
 =?utf-8?B?dERkOEVHa01HdUQ4cEtiUnRvazYySmRrc25peFExRitDY3gyQkVzNXk2Tnlw?=
 =?utf-8?B?Y3pZMC9DWVQ1MWtXSmJwcEh4ZUhIYTROUk9lVnJxU0JraHpXMmZzZ2xYM2hY?=
 =?utf-8?B?WG81NEpkSHE1aFovRzFkU1M3QWJFWGxIWDRadXExT0tlZTc0Ym9FUVRKd3J3?=
 =?utf-8?B?QjR1MURMai9sLzM1R0RueWQ5TlMwM2VuUGtoQkFqZWhRMkhTOXpCRHgzT25W?=
 =?utf-8?B?ZEhqeW5oUll4UVY3Mk9VZnYzdGtRPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f930b4c8-76f2-4324-47e0-08d9abac7428
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2021 22:32:22.2620
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AeXXvCc0EWOIXhHo8rLxiyJipPG3DvNhsOtvyMD9nqrto5fEzgFre2hjSe+NY5QYcgtKp++/C+ksZ/LEbT8t5wvSwECCz6l6nlDSJUeFIP8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4399
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10173 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0
 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111190119
X-Proofpoint-ORIG-GUID: ySfO73lM1gujfqNh1XFZt3-0hrEXCg9u
X-Proofpoint-GUID: ySfO73lM1gujfqNh1XFZt3-0hrEXCg9u


On 11/19/21 3:29 PM, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>
> If the xenstore page hasn't been allocated properly, reading the value
> of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
> error. Instead, it will succeed and return zero. Instead of attempting
> to xen_remap a bad guest physical address, detect this condition and
> return early.
>
> Note that although a guest physical address of zero for
> HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
> and zero has never been validly used in that capacity.
>
> Also recognize the invalid value of INVALID_PFN which is ULLONG_MAX.
>
> For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
> above ULONG_MAX should never be passed by the Xen tools to HVM guests
> anyway, so check for this condition and return early.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>


Reviewed-by: Boris Ostrovsky <boris.ostrvsky@oracle.com>




From xen-devel-bounces@lists.xenproject.org Sat Nov 20 01:42:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 01:42:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228281.394973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moFO8-00035I-Ui; Sat, 20 Nov 2021 01:41:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228281.394973; Sat, 20 Nov 2021 01:41:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moFO8-00035B-R7; Sat, 20 Nov 2021 01:41:56 +0000
Received: by outflank-mailman (input) for mailman id 228281;
 Sat, 20 Nov 2021 01:41:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FAp4=QH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1moFO7-00034m-3X
 for xen-devel@lists.xenproject.org; Sat, 20 Nov 2021 01:41:55 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 088daeef-49a3-11ec-9787-a32c541c8605;
 Sat, 20 Nov 2021 02:41:52 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 8574C61AD2;
 Sat, 20 Nov 2021 01:41:50 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 088daeef-49a3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637372510;
	bh=T7rK7+MJP8qaRA4FiJNqZjUpbph/9PXqTGJpjSvPuG8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=XC2iU31BiwXhtuK8jryuZw/Tc6AofJbUagxqTF7TqNvn8oFsJgB3UqsKYYWe+16Np
	 27qFqM0i9J/IWEkMLrLPq0KFnJC7RBaUzPO6CTUqNQSX56bSmby6tfCQoNyyD+VxBp
	 atibpwCppTZqdLcqh/wtxDBW6I5KYgpRpR2VnF3464bepQA18CXmIBsh9tGeo+dgL0
	 zlyUawrzNjMUH1yeWsD6M7GlydAd6zsAb9QYTwEbaDXmYQ+kBz3l2N9QLtnvwE593j
	 8UCMCh1DJlAk4hgt4gVlg4gk0IYDbQ2mv1d+LdkSgI06JYrMzMb6f6oNptvhLV322e
	 EZpCQXYdoBSJA==
Date: Fri, 19 Nov 2021 17:41:48 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    stefano.stabellini@xilinx.com, julien@xen.org, Volodymyr_Babchuk@epam.com, 
    bertrand.marquis@arm.com, rahul.singh@arm.com, ayankuma@xilinx.com
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str post-indexing
 instructions
In-Reply-To: <20211119165202.42442-1-ayankuma@xilinx.com>
Message-ID: <alpine.DEB.2.22.394.2111191721000.1412361@ubuntu-linux-20-04-desktop>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 19 Nov 2021, Ayan Kumar Halder wrote:
> At present, post indexing instructions are not emulated by Xen.
> When Xen gets the exception, EL2_ESR.ISV bit not set. Thus as a
> result, data abort is triggered.
> 
> Added the logic to decode ldr/str post indexing instructions.
> With this, Xen can decode instructions like these:-
> ldr w2, [x1], #4
> Thus, domU can read ioreg with post indexing instructions.
> 
> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
> ---
> Note to reviewer:-
> This patch is based on an issue discussed in 
> https://lists.xenproject.org/archives/html/xen-devel/2021-11/msg00969.html
> "Xen/ARM - Query about a data abort seen while reading GICD registers"
> 
> 
>  xen/arch/arm/decode.c | 77 +++++++++++++++++++++++++++++++++++++++++++
>  xen/arch/arm/io.c     | 14 ++++++--
>  2 files changed, 88 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
> index 792c2e92a7..7b60bedbc5 100644
> --- a/xen/arch/arm/decode.c
> +++ b/xen/arch/arm/decode.c
> @@ -84,6 +84,80 @@ bad_thumb2:
>      return 1;
>  }
>  
> +static inline int32_t extract32(uint32_t value, int start, int length)
> +{
> +    int32_t ret;
> +
> +    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
> +        return -EINVAL;
> +
> +    ret = (value >> start) & (~0U >> (32 - length));
> +
> +    return ret;
> +}
> +
> +static int decode_64bit_loadstore_postindexing(register_t pc, struct hsr_dabt *dabt)
> +{
> +    uint32_t instr;
> +    int size;
> +    int v;
> +    int opc;
> +    int rt;
> +    int imm9;
> +
> +    /* For details on decoding, refer to Armv8 Architecture reference manual
> +     * Section - "Load/store register (immediate post-indexed)", Pg 318
> +    */
> +    if ( raw_copy_from_guest(&instr, (void * __user)pc, sizeof (instr)) )
> +        return -EFAULT;
> +
> +    /* First, let's check for the fixed values */
> +
> +    /*  As per the "Encoding table for the Loads and Stores group", Pg 299
> +     * op4 = 1 - Load/store register (immediate post-indexed)
> +     */
> +    if ( extract32(instr, 10, 2) != 1 )
> +        goto bad_64bit_loadstore;
> +
> +    /* For the following, refer to "Load/store register (immediate post-indexed)"
> +     * to get the fixed values at various bit positions.
> +     */
> +    if ( extract32(instr, 21, 1) != 0 )
> +        goto bad_64bit_loadstore;
> +
> +    if ( extract32(instr, 24, 2) != 0 )
> +        goto bad_64bit_loadstore;
> +
> +    if ( extract32(instr, 27, 3) != 7 )
> +        goto bad_64bit_loadstore;
> +
> +    size = extract32(instr, 30, 2);
> +    v = extract32(instr, 26, 1);
> +    opc = extract32(instr, 22, 1);
> +
> +    /* At the moment, we support STR(immediate) - 32 bit variant and
> +     * LDR(immediate) - 32 bit variant only.
> +     */
> +    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
> +        goto bad_64bit_loadstore;

The opc field is actually 2 bits, not 1. I think we should get both
bits for opc even if some of the configurations are not interesting.


> +    rt = extract32(instr, 0, 5);
> +    imm9 = extract32(instr, 12, 9);
> +
> +    if ( imm9 < 0 )
> +        update_dabt(dabt, rt, size, true);
> +    else
> +        update_dabt(dabt, rt, size, false);

It doesn't look like we are setting dabt->write anywhere.

Also, is info.gpa in try_handle_mmio already updated in the pre-index
case? If not, do we need to apply the offset manually here?

In the post-index case, we need to update the base address in the Rn
register?


> +    dabt->valid = 1;
> +
> +
> +    return 0;
> +bad_64bit_loadstore:
> +    gprintk(XENLOG_ERR, "unhandled 64bit instruction 0x%x\n", instr);
> +    return 1;
> +}
> +
>  static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>  {
>      uint16_t instr;
> @@ -155,6 +229,9 @@ int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt *dabt)
>      if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
>          return decode_thumb(regs->pc, dabt);
>  
> +    if ( is_64bit_domain(current->domain) )
> +        return decode_64bit_loadstore_postindexing(regs->pc, dabt);
> +
>      /* TODO: Handle ARM instruction */
>      gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
>  
> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
> index 729287e37c..49e80358c0 100644
> --- a/xen/arch/arm/io.c
> +++ b/xen/arch/arm/io.c
> @@ -106,14 +106,13 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
>          .gpa = gpa,
>          .dabt = dabt
>      };
> +    int rc;
>  
>      ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
>  
>      handler = find_mmio_handler(v->domain, info.gpa);
>      if ( !handler )
>      {
> -        int rc;
> -
>          rc = try_fwd_ioserv(regs, v, &info);
>          if ( rc == IO_HANDLED )
>              return handle_ioserv(regs, v);
> @@ -123,7 +122,16 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
>  
>      /* All the instructions used on emulated MMIO region should be valid */
>      if ( !dabt.valid )
> -        return IO_ABORT;
> +    {
> +        /*
> +         * Post indexing ldr/str instructions are not emulated by Xen. So, the
> +         * ISS is invalid. In such a scenario, we try to manually decode the
> +         * instruction from the program counter.
> +         */
> +        rc = decode_instruction(regs, &info.dabt);
> +        if ( rc )
> +            return IO_ABORT;
> +    }
>  
>      /*
>       * Erratum 766422: Thumb store translation fault to Hypervisor may
> -- 
> 2.17.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 02:10:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 02:10:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228286.394984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moFpF-0005pI-0Q; Sat, 20 Nov 2021 02:09:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228286.394984; Sat, 20 Nov 2021 02:09:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moFpE-0005pB-TD; Sat, 20 Nov 2021 02:09:56 +0000
Received: by outflank-mailman (input) for mailman id 228286;
 Sat, 20 Nov 2021 02:09:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moFpD-0005oi-Uk; Sat, 20 Nov 2021 02:09:55 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moFpD-0007WL-Oe; Sat, 20 Nov 2021 02:09:55 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moFpD-0008Hi-Bi; Sat, 20 Nov 2021 02:09:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moFpD-0004dH-9r; Sat, 20 Nov 2021 02:09:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=bVFarNYIrNwjR+gpUzipefI4QS5atpmCl3MmRVkm2J0=; b=G6BEQOxdTYl3O+T5LRE3TurIbs
	rdCO8HpgQqxYtogkBvXYdZPHPATrMeFzwWAnRh4NhqHIqR4ABmz86lpuPT6gyWnnFE+G3oMkEklxe
	nHCXgS2oVXCJfQIenDmtwkbtwjaGQmNwLzA4c31CI3uh0LogzbVr4PYIAQhxTSVg/oV0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166193-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.14-testing test] 166193: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.14-testing:test-amd64-i386-xl-qemuu-ws16-amd64:windows-install:fail:heisenbug
    xen-4.14-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=eb59f97eea86760e98e4f6a076f751939d2b8122
X-Osstest-Versions-That:
    xen=99cbe2031a6bba62819c8e8c2acffe7fe3486cb9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Nov 2021 02:09:55 +0000

flight 166193 xen-4.14-testing real [real]
flight 166202 xen-4.14-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166193/
http://logs.test-lab.xenproject.org/osstest/logs/166202/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-xl-qemuu-ws16-amd64 12 windows-install fail pass in 166202-retest

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop   fail in 166202 like 165520
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165520
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165520
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165520
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165520
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165520
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165520
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165520
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165520
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165520
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165520
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165520
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  eb59f97eea86760e98e4f6a076f751939d2b8122
baseline version:
 xen                  99cbe2031a6bba62819c8e8c2acffe7fe3486cb9

Last test of basis   165520  2021-10-15 09:38:50 Z   35 days
Testing same since   166193  2021-11-19 09:06:24 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@citrix.com>
  Dongli Zhang <dongli.zhang@oracle.com>
  Jan Beulich <jbeulich@suse.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Stefano Stabellini <sstabellini@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   99cbe2031a..eb59f97eea  eb59f97eea86760e98e4f6a076f751939d2b8122 -> stable-4.14


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 02:19:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 02:19:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228318.395045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moFyT-0007xD-JN; Sat, 20 Nov 2021 02:19:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228318.395045; Sat, 20 Nov 2021 02:19:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moFyT-0007x6-GJ; Sat, 20 Nov 2021 02:19:29 +0000
Received: by outflank-mailman (input) for mailman id 228318;
 Sat, 20 Nov 2021 02:19:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FAp4=QH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1moFyR-0007x0-LA
 for xen-devel@lists.xenproject.org; Sat, 20 Nov 2021 02:19:27 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46f1f7ff-49a8-11ec-9787-a32c541c8605;
 Sat, 20 Nov 2021 03:19:25 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id BB3C261AEC;
 Sat, 20 Nov 2021 02:19:22 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46f1f7ff-49a8-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637374763;
	bh=QJKN2D/08mxQzRd2c8JjOrwLljR8hoAVbzVGp60XGl0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=OVU7Lk3v5En6xqqLRhOoW2SyX0v+NYxSc9WTmdPcPCglcDZWvbKma+UMViAqJ9mgu
	 kztBvoL/y5ITn3IxjIiviFEM3yLfxLoI6vHz5IOzT0amL/6TGAUOJ6AbuMLGifwegc
	 VmyoBgAwLWG9wGq4IHMNGbFQ1uZMAyix2p4UObnsyIo2vkObPzrZZF61xtPYfT10nz
	 1mKyIshX1W/+b41e+44V3P/ASK9Z6BwPMMfu1Wa2P2dsrlgcGzMBk1zB8YarAhjCi+
	 /1lltwOns+fzMmbkJpL8ZhbFlXG/ouu3dXBeLgou/xxM3xJ+5f+XsVWvT/JiClbE2+
	 irTEUi8OLS0ew==
Date: Fri, 19 Nov 2021 18:19:21 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr <olekstysh@gmail.com>, jgross@suse.com
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    Julien Grall <julien@xen.org>
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
In-Reply-To: <f1f1025b-911d-3d27-f408-9c042bc4fca4@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111191809100.1412361@ubuntu-linux-20-04-desktop>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com> <1635264312-3796-4-git-send-email-olekstysh@gmail.com> <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s> <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
 <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop> <f1f1025b-911d-3d27-f408-9c042bc4fca4@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

Juergen please see the bottom of the email

On Fri, 19 Nov 2021, Oleksandr wrote:
> On 19.11.21 02:59, Stefano Stabellini wrote:
> > On Tue, 9 Nov 2021, Oleksandr wrote:
> > > On 28.10.21 19:37, Stefano Stabellini wrote:
> > > 
> > > Hi Stefano
> > > 
> > > I am sorry for the late response.
> > > 
> > > > On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
> > > > > From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > > > 
> > > > > The main reason of this change is that unpopulated-alloc
> > > > > code cannot be used in its current form on Arm, but there
> > > > > is a desire to reuse it to avoid wasting real RAM pages
> > > > > for the grant/foreign mappings.
> > > > > 
> > > > > The problem is that system "iomem_resource" is used for
> > > > > the address space allocation, but the really unallocated
> > > > > space can't be figured out precisely by the domain on Arm
> > > > > without hypervisor involvement. For example, not all device
> > > > > I/O regions are known by the time domain starts creating
> > > > > grant/foreign mappings. And following the advise from
> > > > > "iomem_resource" we might end up reusing these regions by
> > > > > a mistake. So, the hypervisor which maintains the P2M for
> > > > > the domain is in the best position to provide unused regions
> > > > > of guest physical address space which could be safely used
> > > > > to create grant/foreign mappings.
> > > > > 
> > > > > Introduce new helper arch_xen_unpopulated_init() which purpose
> > > > > is to create specific Xen resource based on the memory regions
> > > > > provided by the hypervisor to be used as unused space for Xen
> > > > > scratch pages.
> > > > > 
> > > > > If arch doesn't implement arch_xen_unpopulated_init() to
> > > > > initialize Xen resource the default "iomem_resource" will be used.
> > > > > So the behavior on x86 won't be changed.
> > > > > 
> > > > > Also fall back to allocate xenballooned pages (steal real RAM
> > > > > pages) if we do not have any suitable resource to work with and
> > > > > as the result we won't be able to provide unpopulated pages.
> > > > > 
> > > > > Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > > > ---
> > > > > Changes RFC -> V2:
> > > > >      - new patch, instead of
> > > > >       "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to
> > > > > provide
> > > > > unallocated space"
> > > > > ---
> > > > >    drivers/xen/unpopulated-alloc.c | 89
> > > > > +++++++++++++++++++++++++++++++++++++++--
> > > > >    include/xen/xen.h               |  2 +
> > > > >    2 files changed, 88 insertions(+), 3 deletions(-)
> > > > > 
> > > > > diff --git a/drivers/xen/unpopulated-alloc.c
> > > > > b/drivers/xen/unpopulated-alloc.c
> > > > > index a03dc5b..1f1d8d8 100644
> > > > > --- a/drivers/xen/unpopulated-alloc.c
> > > > > +++ b/drivers/xen/unpopulated-alloc.c
> > > > > @@ -8,6 +8,7 @@
> > > > >      #include <asm/page.h>
> > > > >    +#include <xen/balloon.h>
> > > > >    #include <xen/page.h>
> > > > >    #include <xen/xen.h>
> > > > >    @@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_lock);
> > > > >    static struct page *page_list;
> > > > >    static unsigned int list_count;
> > > > >    +static struct resource *target_resource;
> > > > > +static struct resource xen_resource = {
> > > > > +	.name = "Xen unused space",
> > > > > +};
> > > > > +
> > > > > +/*
> > > > > + * If arch is not happy with system "iomem_resource" being used for
> > > > > + * the region allocation it can provide it's own view by initializing
> > > > > + * "xen_resource" with unused regions of guest physical address space
> > > > > + * provided by the hypervisor.
> > > > > + */
> > > > > +int __weak arch_xen_unpopulated_init(struct resource *res)
> > > > > +{
> > > > > +	return -ENOSYS;
> > > > > +}
> > > > > +
> > > > >    static int fill_list(unsigned int nr_pages)
> > > > >    {
> > > > >    	struct dev_pagemap *pgmap;
> > > > > -	struct resource *res;
> > > > > +	struct resource *res, *tmp_res = NULL;
> > > > >    	void *vaddr;
> > > > >    	unsigned int i, alloc_pages = round_up(nr_pages,
> > > > > PAGES_PER_SECTION);
> > > > > -	int ret = -ENOMEM;
> > > > > +	int ret;
> > > > >      	res = kzalloc(sizeof(*res), GFP_KERNEL);
> > > > >    	if (!res)
> > > > > @@ -30,7 +47,7 @@ static int fill_list(unsigned int nr_pages)
> > > > >    	res->name = "Xen scratch";
> > > > >    	res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
> > > > >    -	ret = allocate_resource(&iomem_resource, res,
> > > > > +	ret = allocate_resource(target_resource, res,
> > > > >    				alloc_pages * PAGE_SIZE, 0, -1,
> > > > >    				PAGES_PER_SECTION * PAGE_SIZE, NULL,
> > > > > NULL);
> > > > >    	if (ret < 0) {
> > > > > @@ -38,6 +55,31 @@ static int fill_list(unsigned int nr_pages)
> > > > >    		goto err_resource;
> > > > >    	}
> > > > >    +	/*
> > > > > +	 * Reserve the region previously allocated from Xen resource
> > > > > to avoid
> > > > > +	 * re-using it by someone else.
> > > > > +	 */
> > > > > +	if (target_resource != &iomem_resource) {
> > > > > +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
> > > > > +		if (!res) {
> > > > > +			ret = -ENOMEM;
> > > > > +			goto err_insert;
> > > > > +		}
> > > > > +
> > > > > +		tmp_res->name = res->name;
> > > > > +		tmp_res->start = res->start;
> > > > > +		tmp_res->end = res->end;
> > > > > +		tmp_res->flags = res->flags;
> > > > > +
> > > > > +		ret = insert_resource(&iomem_resource, tmp_res);
> > > > > +		if (ret < 0) {
> > > > > +			pr_err("Cannot insert IOMEM resource [%llx -
> > > > > %llx]\n",
> > > > > +			       tmp_res->start, tmp_res->end);
> > > > > +			kfree(tmp_res);
> > > > > +			goto err_insert;
> > > > > +		}
> > > > > +	}
> > > > I am a bit confused.. why do we need to do this? Who could be
> > > > erroneously re-using the region? Are you saying that the next time
> > > > allocate_resource is called it could find the same region again? It
> > > > doesn't seem possible?
> > > 
> > > No, as I understand the allocate_resource() being called for the same root
> > > resource won't provide the same region... We only need to do this (insert
> > > the
> > > region into "iomem_resource") if we allocated it from our *internal*
> > > "xen_resource", as *global* "iomem_resource" (which is used everywhere) is
> > > not
> > > aware of that region has been already allocated. So inserting a region
> > > here we
> > > reserving it, otherwise it could be reused elsewhere.
> > But elsewhere where?
> 
> I think, theoretically everywhere where allocate_resource(&iomem_resource,
> ...) is called.
> 
> 
> > Let's say that allocate_resource allocates a range from xen_resource.
> >  From reading the code, it doesn't look like iomem_resource would have
> > that range because the extended regions described under /hypervisor are
> > not added automatically to iomem_resource.
> > 
> > So what if we don't call insert_resource? Nothing could allocate the
> > same range because iomem_resource doesn't have it at all and
> > xen_resource is not used anywhere if not here.
> > 
> > What am I missing?
> 
> 
> Below my understanding which, of course, might be wrong.
> 
> If we don't claim resource by calling insert_resource (or even
> request_resource) here then the same range could be allocated everywhere where
> allocate_resource(&iomem_resource, ...) is called.
> I don't see what prevents the same range from being allocated. Why actually
> allocate_resource(&iomem_resource, ...) can't provide the same range if it is
> free (not-reserved-yet) from it's PoV? The comment above allocate_resource()
> says "allocate empty slot in the resource tree given range & alignment". So
> this "empty slot" could be exactly the same range.
> 
> I experimented with that a bit trying to call
> allocate_resource(&iomem_resource, ...) several times in another place to see
> what ranges it returns in both cases (w/ and w/o calling insert_resource
> here). So an experiment confirmed (of course, if I made it correctly) that the
> same range could be allocated if we didn't call insert_resource() here. And as
> I understand there is nothing strange here, as iomem_resource covers all
> address space initially (0, -1) and everything *not* inserted/requested (in
> other words, reserved) yet is considered as free and could be provided if fits
> constraints. Or I really missed something?

Thanks for the explanation! It was me that didn't know that
iomem_resource covers all the address space initially. I thought it was
populated only with actual iomem ranges. Now it makes sense, thanks!


> It feels to me that it would be better to call request_resource() instead of
> insert_resource(). It seems, that if no conflict happens both functions will
> behave in same way, but in case of conflict if the conflicting resource
> entirely fit the new resource the former will return an error. I think, this
> way we will be able to detect that a range we are trying to reserve is already
> present and bail out early.
> 
> 
> > 
> > Or maybe it is the other way around: core Linux code assumes everything
> > is described in iomem_resource so something under kernel/ or mm/ would
> > crash if we start using a page pointing to an address missing from
> > iomem_resource?
> >     
> > > > >    	pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
> > > > >    	if (!pgmap) {
> > > > >    		ret = -ENOMEM;
> > > > > @@ -95,12 +137,40 @@ static int fill_list(unsigned int nr_pages)
> > > > >    err_memremap:
> > > > >    	kfree(pgmap);
> > > > >    err_pgmap:
> > > > > +	if (tmp_res) {
> > > > > +		release_resource(tmp_res);
> > > > > +		kfree(tmp_res);
> > > > > +	}
> > > > > +err_insert:
> > > > >    	release_resource(res);
> > > > >    err_resource:
> > > > >    	kfree(res);
> > > > >    	return ret;
> > > > >    }
> > > > >    +static void unpopulated_init(void)
> > > > > +{
> > > > > +	static bool inited = false;
> > > > initialized = false
> > > ok.
> > > 
> > > 
> > > > 
> > > > > +	int ret;
> > > > > +
> > > > > +	if (inited)
> > > > > +		return;
> > > > > +
> > > > > +	/*
> > > > > +	 * Try to initialize Xen resource the first and fall back to
> > > > > default
> > > > > +	 * resource if arch doesn't offer one.
> > > > > +	 */
> > > > > +	ret = arch_xen_unpopulated_init(&xen_resource);
> > > > > +	if (!ret)
> > > > > +		target_resource = &xen_resource;
> > > > > +	else if (ret == -ENOSYS)
> > > > > +		target_resource = &iomem_resource;
> > > > > +	else
> > > > > +		pr_err("Cannot initialize Xen resource\n");
> > > > > +
> > > > > +	inited = true;
> > > > > +}
> > > > Would it make sense to call unpopulated_init from an init function,
> > > > rather than every time xen_alloc_unpopulated_pages is called?
> > > Good point, thank you. Will do. To be honest, I also don't like the
> > > current
> > > approach much.
> > > 
> > > 
> > > > 
> > > > >    /**
> > > > >     * xen_alloc_unpopulated_pages - alloc unpopulated pages
> > > > >     * @nr_pages: Number of pages
> > > > > @@ -112,6 +182,16 @@ int xen_alloc_unpopulated_pages(unsigned int
> > > > > nr_pages, struct page **pages)
> > > > >    	unsigned int i;
> > > > >    	int ret = 0;
> > > > >    +	unpopulated_init();
> > > > > +
> > > > > +	/*
> > > > > +	 * Fall back to default behavior if we do not have any
> > > > > suitable
> > > > > resource
> > > > > +	 * to allocate required region from and as the result we won't
> > > > > be able
> > > > > to
> > > > > +	 * construct pages.
> > > > > +	 */
> > > > > +	if (!target_resource)
> > > > > +		return alloc_xenballooned_pages(nr_pages, pages);
> > > > The commit message says that the behavior on x86 doesn't change but this
> > > > seems to be a change that could impact x86?
> > > I don't think, however I didn't tested on x86 and might be wrong, but
> > > according to the current patch, on x86 the "target_resource" is always
> > > valid
> > > and points to the "iomem_resource" as arch_xen_unpopulated_init() is not
> > > implemented. So there won't be any fallback to use
> > > alloc_(free)_xenballooned_pages() here and fill_list() will behave as
> > > usual.
> >   If target_resource is always valid, then we don't need this special
> > check. In fact, the condition should never be true.
> 
> 
> The target_resource is always valid and points to the "iomem_resource" on x86
> (this is equivalent to the behavior before this patch).
> On Arm target_resource might be NULL if arch_xen_unpopulated_init() failed,
> for example, if no extended regions reported by the hypervisor.
> We cannot use "iomem_resource" on Arm, only a resource constructed from
> extended regions. This is why I added that check (and fallback to xenballooned
> pages).
> What I was thinking is that in case of using old Xen (although we would need
> to balloon out RAM pages) we still would be able to keep working, so no need
> to disable CONFIG_XEN_UNPOPULATED_ALLOC on such setups.
>  
>    
> > > You raised a really good question, on Arm we need a fallback to balloon
> > > out
> > > RAM pages again if hypervisor doesn't provide extended regions (we run on
> > > old
> > > version, no unused regions with reasonable size, etc), so I decided to put
> > > a
> > > fallback code here, an indicator of the failure is invalid
> > > "target_resource".
> > I think it is unnecessary as we already assume today that
> > &iomem_resource is always available.
> > > I noticed the patch which is about to be upstreamed that removes
> > > alloc_(free)xenballooned_pages API [1]. Right now I have no idea how/where
> > > this fallback could be implemented as this is under build option control
> > > (CONFIG_XEN_UNPOPULATED_ALLOC). So the API with the same name is either
> > > used
> > > for unpopulated pages (if set) or ballooned pages (if not set). I would
> > > appreciate suggestions regarding that. I am wondering would it be possible
> > > and
> > > correctly to have both mechanisms (unpopulated and ballooned) enabled by
> > > default and some init code to decide which one to use at runtime or some
> > > sort?
> > I would keep it simple and remove the fallback from this patch. So:
> > 
> > - if not CONFIG_XEN_UNPOPULATED_ALLOC, then balloon
> > - if CONFIG_XEN_UNPOPULATED_ALLOC, then
> >      - xen_resource if present
> >      - otherwise iomem_resource
> 
> Unfortunately, we cannot use iomem_resource on Arm safely, either xen_resource
> or fail (if no fallback exists).
> 
> 
> > 
> > The xen_resource/iomem_resource config can be done at init time using
> > target_resource. At runtime, target_resource is always != NULL so we
> > just go ahead and use it.
> 
> 
> Thank you for the suggestion. OK, let's keep it simple and drop fallback
> attempts for now. With one remark:
> We will make CONFIG_XEN_UNPOPULATED_ALLOC disabled by default on Arm in next
> patch. So by default everything will behave as usual on Arm (balloon out RAM
> pages),
> if user knows for sure that Xen reports extended regions, he/she can enable
> the config. This way we won't break anything. What do you think?

Actually after reading your replies and explanation I changed opinion: I
think we do need the fallback because Linux cannot really assume that
it is running on "new Xen" so it definitely needs to keep working if
CONFIG_XEN_UNPOPULATED_ALLOC is enabled and the extended regions are not
advertised.

I think we'll have to roll back some of the changes introduced by
121f2faca2c0a. That's because even if CONFIG_XEN_UNPOPULATED_ALLOC is
enabled we cannot know if we can use unpopulated-alloc or whether we
have to use alloc_xenballooned_pages until we parse the /hypervisor node
in device tree at runtime.

In short, we cannot switch between unpopulated-alloc and
alloc_xenballooned_pages at build time, we have to do it at runtime
(boot time).

Juergen, what do you think?


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 02:37:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 02:37:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228324.395057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moGF8-0001o6-4K; Sat, 20 Nov 2021 02:36:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228324.395057; Sat, 20 Nov 2021 02:36:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moGF8-0001nz-1Q; Sat, 20 Nov 2021 02:36:42 +0000
Received: by outflank-mailman (input) for mailman id 228324;
 Sat, 20 Nov 2021 02:36:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FAp4=QH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1moGF7-0001nt-DV
 for xen-devel@lists.xenproject.org; Sat, 20 Nov 2021 02:36:41 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b003d3ea-49aa-11ec-9787-a32c541c8605;
 Sat, 20 Nov 2021 03:36:39 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id D6A6161A38;
 Sat, 20 Nov 2021 02:36:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b003d3ea-49aa-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637375798;
	bh=UCystQLtnuRhjyd7uhfmMLfoucOCOaU357iQhWa2I8E=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TSa3eCbprLXEYi8p4EQqGSg7oZAjoEUHJ0rFRVUJ9VBl6gAMbE5uEbunw133Hvn2X
	 YyY8zamDrjZjsDMVHXU0g6mq3un7wtUaWyJ5otO3ITuNDZHMKQ+kKtVzFf3Pk+fJHA
	 j2egM0PD4FidzdI61K/qIho7UyBuVf4q1XG9qozPzv4Bb3H+EDEbGuKsQzqPOUXRWd
	 La1mxvI0FwOH2R2Mg/OHnP/Rzaz9Ex8sEok27kgMte2pNBO2Qzw1Wnkc7rK6cN5nUT
	 mGGKCihIOLesTWCK8TcMw2xJ5gtxvjgSJ360MEBtnTVvHJdZcitbkMRB+E3mE6nJQe
	 AZ5JA/gMIpk4Q==
Date: Fri, 19 Nov 2021 18:36:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr <olekstysh@gmail.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org, 
    linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Russell King <linux@armlinux.org.uk>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH V2 4/4] arm/xen: Read extended regions from DT and init
 Xen resource
In-Reply-To: <ee5a226b-0e12-8823-0961-bf2fe0bd494e@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111191820130.1412361@ubuntu-linux-20-04-desktop>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com> <1635264312-3796-5-git-send-email-olekstysh@gmail.com> <alpine.DEB.2.21.2110271803060.20134@sstabellini-ThinkPad-T480s> <237f832d-5175-5653-18ee-058a7d7fa7a6@gmail.com>
 <alpine.DEB.2.22.394.2111181701110.1412361@ubuntu-linux-20-04-desktop> <ee5a226b-0e12-8823-0961-bf2fe0bd494e@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-126447730-1637374814=:1412361"
Content-ID: <alpine.DEB.2.22.394.2111191821110.1412361@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-126447730-1637374814=:1412361
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2111191821111.1412361@ubuntu-linux-20-04-desktop>

On Fri, 19 Nov 2021, Oleksandr wrote:
> On 19.11.21 03:19, Stefano Stabellini wrote:
> > On Wed, 10 Nov 2021, Oleksandr wrote:
> > > On 28.10.21 04:40, Stefano Stabellini wrote:
> > > 
> > > Hi Stefano
> > > 
> > > I am sorry for the late response.
> > > 
> > > > On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
> > > > > From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > > > 
> > > > > This patch implements arch_xen_unpopulated_init() on Arm where
> > > > > the extended regions (if any) are gathered from DT and inserted
> > > > > into passed Xen resource to be used as unused address space
> > > > > for Xen scratch pages by unpopulated-alloc code.
> > > > > 
> > > > > The extended region (safe range) is a region of guest physical
> > > > > address space which is unused and could be safely used to create
> > > > > grant/foreign mappings instead of wasting real RAM pages from
> > > > > the domain memory for establishing these mappings.
> > > > > 
> > > > > The extended regions are chosen by the hypervisor at the domain
> > > > > creation time and advertised to it via "reg" property under
> > > > > hypervisor node in the guest device-tree. As region 0 is reserved
> > > > > for grant table space (always present), the indexes for extended
> > > > > regions are 1...N.
> > > > > 
> > > > > If arch_xen_unpopulated_init() fails for some reason the default
> > > > > behaviour will be restored (allocate xenballooned pages).
> > > > > 
> > > > > This patch also removes XEN_UNPOPULATED_ALLOC dependency on x86.
> > > > > 
> > > > > Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > > > ---
> > > > > Changes RFC -> V2:
> > > > >      - new patch, instead of
> > > > >       "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to
> > > > > provide
> > > > > unallocated space"
> > > > > ---
> > > > >    arch/arm/xen/enlighten.c | 112
> > > > > +++++++++++++++++++++++++++++++++++++++++++++++
> > > > >    drivers/xen/Kconfig      |   2 +-
> > > > >    2 files changed, 113 insertions(+), 1 deletion(-)
> > > > > 
> > > > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
> > > > > index dea46ec..1a1e0d3 100644
> > > > > --- a/arch/arm/xen/enlighten.c
> > > > > +++ b/arch/arm/xen/enlighten.c
> > > > > @@ -62,6 +62,7 @@ static __read_mostly unsigned int xen_events_irq;
> > > > >    static phys_addr_t xen_grant_frames;
> > > > >      #define GRANT_TABLE_INDEX   0
> > > > > +#define EXT_REGION_INDEX    1
> > > > >      uint32_t xen_start_flags;
> > > > >    EXPORT_SYMBOL(xen_start_flags);
> > > > > @@ -303,6 +304,117 @@ static void __init xen_acpi_guest_init(void)
> > > > >    #endif
> > > > >    }
> > > > >    +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
> > > > > +int arch_xen_unpopulated_init(struct resource *res)
> > > > > +{
> > > > > +	struct device_node *np;
> > > > > +	struct resource *regs, *tmp_res;
> > > > > +	uint64_t min_gpaddr = -1, max_gpaddr = 0;
> > > > > +	unsigned int i, nr_reg = 0;
> > > > > +	struct range mhp_range;
> > > > > +	int rc;
> > > > > +
> > > > > +	if (!xen_domain())
> > > > > +		return -ENODEV;
> > > > > +
> > > > > +	np = of_find_compatible_node(NULL, NULL, "xen,xen");
> > > > > +	if (WARN_ON(!np))
> > > > > +		return -ENODEV;
> > > > > +
> > > > > +	/* Skip region 0 which is reserved for grant table space */
> > > > > +	while (of_get_address(np, nr_reg + EXT_REGION_INDEX, NULL,
> > > > > NULL))
> > > > > +		nr_reg++;
> > > > > +	if (!nr_reg) {
> > > > > +		pr_err("No extended regions are found\n");
> > > > > +		return -EINVAL;
> > > > > +	}
> > > > > +
> > > > > +	regs = kcalloc(nr_reg, sizeof(*regs), GFP_KERNEL);
> > > > > +	if (!regs)
> > > > > +		return -ENOMEM;
> > > > > +
> > > > > +	/*
> > > > > +	 * Create resource from extended regions provided by the
> > > > > hypervisor to
> > > > > be
> > > > > +	 * used as unused address space for Xen scratch pages.
> > > > > +	 */
> > > > > +	for (i = 0; i < nr_reg; i++) {
> > > > > +		rc = of_address_to_resource(np, i + EXT_REGION_INDEX,
> > > > > &regs[i]);
> > > > > +		if (rc)
> > > > > +			goto err;
> > > > > +
> > > > > +		if (max_gpaddr < regs[i].end)
> > > > > +			max_gpaddr = regs[i].end;
> > > > > +		if (min_gpaddr > regs[i].start)
> > > > > +			min_gpaddr = regs[i].start;
> > > > > +	}
> > > > > +
> > > > > +	/* Check whether the resource range is within the hotpluggable
> > > > > range
> > > > > */
> > > > > +	mhp_range = mhp_get_pluggable_range(true);
> > > > > +	if (min_gpaddr < mhp_range.start)
> > > > > +		min_gpaddr = mhp_range.start;
> > > > > +	if (max_gpaddr > mhp_range.end)
> > > > > +		max_gpaddr = mhp_range.end;
> > > > > +
> > > > > +	res->start = min_gpaddr;
> > > > > +	res->end = max_gpaddr;
> > > > > +
> > > > > +	/*
> > > > > +	 * Mark holes between extended regions as unavailable. The
> > > > > rest of
> > > > > that
> > > > > +	 * address space will be available for the allocation.
> > > > > +	 */
> > > > > +	for (i = 1; i < nr_reg; i++) {
> > > > > +		resource_size_t start, end;
> > > > > +
> > > > > +		start = regs[i - 1].end + 1;
> > > > > +		end = regs[i].start - 1;
> > > > > +
> > > > > +		if (start > (end + 1)) {
> > > > Should this be:
> > > > 
> > > > if (start >= end)
> > > > 
> > > > ?
> > > Yes, we can do this here (since the checks are equivalent) but ...
> > > 
> > > > > +			rc = -EINVAL;
> > > > > +			goto err;
> > > > > +		}
> > > > > +
> > > > > +		/* There is no hole between regions */
> > > > > +		if (start == (end + 1))
> > > > Also here, shouldn't it be:
> > > > 
> > > > if (start == end)
> > > > 
> > > > ?
> > >     ... not here.
> > > 
> > > As
> > > 
> > > "(start == (end + 1))" is equal to "(regs[i - 1].end + 1 ==
> > > regs[i].start)"
> > > 
> > > but
> > > 
> > > "(start == end)" is equal to "(regs[i - 1].end + 1 == regs[i].start - 1)"
> >   OK. But the check:
> > 
> >    if (start >= end)
> > 
> > Actually covers both cases so that's the only check we need?
> 
> Sorry, I don't entirely understand the question.
> Is the question to use only a single check in that loop?
> 
> Paste the updated code which I have locally for the convenience.
> 
>  [snip]
> 
>     /*
>      * Mark holes between extended regions as unavailable. The rest of that
>      * address space will be available for the allocation.
>      */
>     for (i = 1; i < nr_reg; i++) {
>         resource_size_t start, end;
> 
>         start = regs[i - 1].end + 1;
>         end = regs[i].start - 1;
> 
>         if (start > (end + 1)) {
>             rc = -EINVAL;
>             goto err;
>         }
> 
>         /* There is no hole between regions */
>         if (start == (end + 1))
>             continue;
> 
>         tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>         if (!tmp_res) {
>             rc = -ENOMEM;
>             goto err;
>         }
> 
>         tmp_res->name = "Unavailable space";
>         tmp_res->start = start;
>         tmp_res->end = end;
> 
>         rc = insert_resource(&xen_resource, tmp_res);
>         if (rc) {
>             pr_err("Cannot insert resource %pR (%d)\n", tmp_res, rc);
>             kfree(tmp_res);
>             goto err;
>         }
>     }
> 
> [snip]
> 
> 
> 1. The first check is to detect an overlap (which is a wrong configuration,
> correct?) and bail out if true (for example, regX: 0x81000000...0x82FFFFFF and
> regY: 0x82000000...0x83FFFFFF).
> 2. The second check is just to skip current iteration as there is no
> space/hole between regions (for example, regX: 0x81000000...0x82FFFFFF and
> regY: 0x83000000...0x83FFFFFF).
> Therefore I think they should be distinguished.
> 
> Yes, both check could be transformed to a single one, but this way the
> overlaps will be ignored:
> if (start >= (end + 1))
>     continue;
> 
> Or I really missed something?

You are right it is better to distinguish the two cases. I suggest the
code below because I think it is a clearer, even if it might be slightly
less efficient. I don't feel too strongly about it though.

		resource_size_t start, end;

		/* There is no hole between regions */
		if ( regs[i - 1].end + 1 == regs[i].start )
			continue;

		if ( regs[i - 1].end + 1 > regs[i].start) {
			rc = -EINVAL;
			goto err;
		}

		start = regs[i - 1].end + 1;
		end = regs[i].start - 1;
--8323329-126447730-1637374814=:1412361--


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 05:02:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 05:02:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228328.395067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moIVa-0007QU-KV; Sat, 20 Nov 2021 05:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228328.395067; Sat, 20 Nov 2021 05:01:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moIVa-0007QN-HZ; Sat, 20 Nov 2021 05:01:50 +0000
Received: by outflank-mailman (input) for mailman id 228328;
 Sat, 20 Nov 2021 05:01:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moIVZ-0007QD-5v; Sat, 20 Nov 2021 05:01:49 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moIVY-0002P2-VX; Sat, 20 Nov 2021 05:01:49 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moIVY-0000it-Ko; Sat, 20 Nov 2021 05:01:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moIVY-0004nh-KI; Sat, 20 Nov 2021 05:01:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=o0oPF5KJ+93i0Nzw6G1+/H/sHdSBHQonjbOvRl1se+8=; b=v4fOD7LuhoQbCXzBBPUHx0xiVR
	lfNwF2iYqsQk+d0IynfDZzDnQVdFPqo6RC1/7RgjZOdjkirMFSImSoWfj45TEqq6r9BSszGnqgWAE
	KYb8rQtg7PYZMgberuFSRn8Eo39ZhgW0gPmr/jg/jPdRLGva0iuYcI9iBylrPrv28CqU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166194-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166194: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=3760a04c352f8d255b247211f6da07ac99f1630a
X-Osstest-Versions-That:
    qemuu=44a3aa0608f01274418487b655d42467c1d8334e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Nov 2021 05:01:48 +0000

flight 166194 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166194/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166188
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166188
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166188
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166188
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166188
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166188
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166188
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166188
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                3760a04c352f8d255b247211f6da07ac99f1630a
baseline version:
 qemuu                44a3aa0608f01274418487b655d42467c1d8334e

Last test of basis   166188  2021-11-19 02:04:55 Z    1 days
Testing same since   166194  2021-11-19 10:39:18 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jason Wang <jasowang@redhat.com>
  Prasad J Pandit <pjp@fedoraproject.org>
  Richard Henderson <richard.henderson@linaro.org>
  Zhang Chen <chen.zhang@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   44a3aa0608..3760a04c35  3760a04c352f8d255b247211f6da07ac99f1630a -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 05:37:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 05:37:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228322.395082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moJ3Z-0002EH-Gn; Sat, 20 Nov 2021 05:36:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228322.395082; Sat, 20 Nov 2021 05:36:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moJ3Z-0002EA-DY; Sat, 20 Nov 2021 05:36:57 +0000
Received: by outflank-mailman (input) for mailman id 228322;
 Sat, 20 Nov 2021 02:23:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KEuL=QH=intel.com=philip.li@srs-se1.protection.inumbo.net>)
 id 1moG2Q-0000tr-3O
 for xen-devel@lists.xenproject.org; Sat, 20 Nov 2021 02:23:34 +0000
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d948a555-49a8-11ec-9787-a32c541c8605;
 Sat, 20 Nov 2021 03:23:31 +0100 (CET)
Received: from orsmga008.jf.intel.com ([10.7.209.65])
 by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 19 Nov 2021 18:23:28 -0800
Received: from rli9-dbox.sh.intel.com (HELO rli9-dbox) ([10.239.159.142])
 by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 19 Nov 2021 18:23:24 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d948a555-49a8-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10173"; a="258320555"
X-IronPort-AV: E=Sophos;i="5.87,249,1631602800"; 
   d="scan'208";a="258320555"
X-IronPort-AV: E=Sophos;i="5.87,249,1631602800"; 
   d="scan'208";a="508141382"
Date: Sat, 20 Nov 2021 10:24:19 +0800
From: Philip Li <philip.li@intel.com>
To: Dave Hansen <dave.hansen@intel.com>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, kernel test robot <lkp@intel.com>
Subject: Re: [PATCH] xen/pvh: add missing prototype to header
Message-ID: <YZhcU3e0imdoKV7w@rli9-dbox>
References: <20211119153913.21678-1-jgross@suse.com>
 <0c654659-b010-791f-78e7-769108934ce2@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <0c654659-b010-791f-78e7-769108934ce2@intel.com>

On Fri, Nov 19, 2021 at 08:47:49AM -0800, Dave Hansen wrote:
> On 11/19/21 7:39 AM, Juergen Gross wrote:
> > The prototype of mem_map_via_hcall() is missing in its header, so add
> > it.
> > 
> > Reported-by: kernel test robot <lkp@intel.com>
> > Fixes: a43fb7da53007e67ad ("xen/pvh: Move Xen code for getting mem map via hcall out of common file")
> > Signed-off-by: Juergen Gross <jgross@suse.com>
> 
> $ git describe a43fb7da53007e67ad
> v4.20-rc6-5-ga43fb7da5300
> 
> Better late than never, I guess.  I wonder what made 0day find this now.
hi Dave, we recently find some unexpected failures for certain bisections,
with the fix, such failures are rerun to see whether we can successfully detect 
bad commits, which i think this resulted in extra but late finding on old
commit on mainline. We will keep scan our bisection process to further improve
it to reduce this kind late reporting.

> 
> I also guess the one mem_map_via_hcall() call site just used the __weak
> definition so it didn't cause problems if there wasn't a declaration in
> the header.


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 09:48:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 09:48:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228347.395093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moMym-00084D-Ed; Sat, 20 Nov 2021 09:48:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228347.395093; Sat, 20 Nov 2021 09:48:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moMym-000846-Ap; Sat, 20 Nov 2021 09:48:16 +0000
Received: by outflank-mailman (input) for mailman id 228347;
 Sat, 20 Nov 2021 09:48:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jW2u=QH=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1moMyl-000840-6D
 for xen-devel@lists.xenproject.org; Sat, 20 Nov 2021 09:48:15 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f8f15619-49e6-11ec-9787-a32c541c8605;
 Sat, 20 Nov 2021 10:48:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8f15619-49e6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637401692;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=c1wAg/KbnweCue2RhExb+omQUa/824rmtHlhGs0GQbI=;
  b=ByFA9dtuPA9px4IoZbk4hHaYgSYreN/KVdBnzCjqs/VBesvqwznR7S/f
   DAsZbnPwq7FTawNBS62Y0NunigFRhKxhpycJjcnYkbXUQTfjnrit1xD8k
   Ca7pyhyoAUZctqOCFBILs/hEBB2blHL5XJRXD74tR/cUyqD7kfipbh9Y2
   A=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: SSHWVwRKHeVi6UB/OFt+8/JZniYSBQ8zuglfn6PqsfJTRALRhLMKFWGo9DLrXWyfxBbpd3KXxH
 50BnURwoPC637d9DKqSB0yZJgsu4zQH4Zc1J1ICsFLaV1BsFeZYWoVFmw9xESG2DWdoUDa5f7X
 m55pvLGG5n8Q5uiYLLOEBZ9F0Xcm7hhb0bzlzQGOhZFqEIIq9GfyNI0qZRGDBFtbIB5+jvhoe+
 SetfI3GMVo8DNZtHwe7JTPI+t5I+vQ3POuDvkrelqe7wYL508DZOWe6xnSM8ZmXDpzb6B/yIaY
 GsIUbiw85a25wCyTY5td5rK2
X-SBRS: 5.1
X-MesageID: 58663106
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:VTB5EKonIkvIz59OtamUr6IUlTdeBmIhYxIvgKrLsJaIsI4StFCzt
 garIBnVPfncZWXxf4sjYNjioRgC7JbQx4VqSgI++Hw1EH4Wp5uZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2ILhW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnd/3FDUjMYvNoedHTwIfCw9xDbBP3oaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFJkYtXx6iynQEN4tQIzZQrWM7thdtNs1rp0eQ6iFP
 pJHAdZpRDDLZhdAC1kGM8kjk9qv23WlXiYFrV3A8MLb5ECMlVcsgdABKuH9YtWXQe1Fk0Deo
 XjJl0zQGA0XMeu62DWM83+yruLXlCa9U4UXfJWG8fptjEyW13YkIhQcXlumotG0kke7HdlYL
 iQ86ico6KQ/6kGvZt38RAGj5m6JuAYGXNhdGPF87xuCooLO6gaEAi4fTzhOaPQvrspwTjsvv
 neDksn1HzVpvPuQQGiE67aPhTqoPG4eKmpqTSYCQRFfu4G7iI42hxPLCN1kFcadjNf4BDXxy
 DCitzUlivMYistj/4K/8FPcijSgvK/gSAIv+x7XVWKo6AB+TIO9bonu4l/ehd5nKIuaVVCHs
 GIzp9mF7OsOAJeOkwSAWOwIWrqu4p6tKybAiFRiG50g8TWF+HO5e41UpjZkKy9BMNsAeDLvS
 F/ev0VW/pA7AZexRfYpOcTrUZ1slPW+U4S+PhzJUjZQSts2KT2N8wdvXE3Kw3uqiGYjobw2H
 67OJK5AEk0mIahgyTO3QcIU3rkq2j0yyAvveHzr8/i0+eHAPSDIEN/pJHPLN7lkt/3c/G055
 v4Gb5PSoyizRtESdcU+HWQ7CVkRZUY2CpntwyC8Xr7Se1E2cI3N5hK4/F/AR2CHt/gK/gsr1
 ivkMqO99LYZrSeZQeltQio9AI4Dpb4l8RoG0dUEZD5EIUQLb4e197s4fJAqZ7Qh/+EL5acqF
 KZeJ5rbX68VGmWvF9EhgX/V9tIKmPOD31zmAsZYSGJnI84Iq/LhpLcIgTcDBAFRV3Hq5KPSU
 pWr1x/BQIpreuiRJJ2+VR5b9Hvo5SJ1sLsrByPge4APEG2xoNkCA3Gg1ZcffpBTQSgvMxPHj
 m569z9D/rKTy2L0mfGU7Z25Q3CBT7EjQxEERjaDtt5b90DypwKe/GOJa87RFRj1X2Lo4qSyI
 +JTyvD3Kvocm1hW9YF7Ft5WIWgWuLMDfpdWkVZpGmvldVOuBu8yK3WKx5AX5KZM2qVYqU29X
 UfWootWPrCAOcXEFl8NJVV6MrTfhK9MwjSCv+4oJEja5TNs+ObVW0tlIBTR2jdWK6F4Md15z
 L556tIW8QG2ljEjLs2C0nJP722JI3FZC/cnu5gWDZXFkA0uzl0eM5XQBjWvuMOEaslWM1lsK
 TiR3fKQi7NZz0vEUnwyCXmSgrYN2cVQ4EhHlQZQKU6Il9zJgu4M8CdQqTlnHB5Iyhhn0v5oP
 jQ5PUNCOqjTrSxjg9JOXj7wFlgZVgGZ4EH413AAiHbdExuzTmXIIWAwZbSN8UQe/z4OdzRX5
 ujFmmPsUDKsd8DtxCoiH0VirqW7H9B28wTDnuGhHtiEQMZmMWa03Pf2aDpasQbjDOMwmFbD9
 Ltj8+tHYKHmMTId/v8gAI6A2LVMEB2JKQSumx26EH/lyY0ERAyP5A==
IronPort-HdrOrdr: A9a23:HNYE+K24W8Rm60uM2kewwgqjBShyeYIsimQD101hICG9Lfb2qy
 n+ppgmPEHP5Qr5OEtApTiBUJPwJk800aQFm7X5Wo3SITUO2VHYV72KiLGN/9SOIVydygcw79
 YET0E6MqyNMbEYt7eK3ODbKadY/DDvysnB7o2/vhQdPT2CKZsQlzuRYjzrbHGeLzM2Y6bReq
 Dsgvau8FGbCAsqh4mAdzM4dtmGg+eOuIPtYBYACRJiwA6SjQmw4Lq/NxSDxB8RXx5G3L9nqA
 H+4kDEz5Tml8v+5g7X1mfV4ZgTsNz9yuFbDMjJrsQOMD3jhiuheYwkcbyfuzIepv2p9T8R4Z
 TxiiZlG/42x2Laf2mzrxeo8w780Aw243un8lOciWuLm72xeBsKT+56wa5JeBrQ7EQt+Ptm1r
 hQ4m6fv51LSTvdgSXU/bHzJlBXv3vxhUBnvf8YjnRZX4dbQqRWt5Yj8ERcF4pFND7m6bogDP
 JlAKjnlbhrmGuhHjPkV1RUsZ6RtixZJGbCfqFCgL3b79FupgE486NCr/Zv2kvp9/oGOu95Dq
 r/Q+NVfYp1P70rhJRGdZA8qPuMex/wqC33QRevyHTcZek60iH22tXKCItc3pDfRHVP9up1pK
 j8
X-IronPort-AV: E=Sophos;i="5.87,250,1631592000"; 
   d="scan'208";a="58663106"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=leOMy/iUrehDiUQALjngrtENvjXkka2/Dj+GWk3f57iM6IhGMGK5YlflNKb4aW+RsB20xdQbiH1jsdiUk3oRyD0FaCt4RzZoJSstdGleSr+V0jV0nRsj3AosWBjLwg+TKUv70C8mM1tDCw06bsOIQwdrwJDs3at1dsGOrDdhICWdgfzrSLozdsJmFqatDeZDIRrmkGbdI9ShuYWiojSbsc3R/blA2tMXNbtO+ULOce5qkM7MgItHRNrTnaF854S8Gc2ufzXtUbPO6K9b1DPU7XixxYCvv4nJ5UWdV5xbNlHPhnBxwOYmsZWdyRYoNRj+2v5pxCX+d2AxHapnr6Pfnw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ehUyi/TGDlV1obCCjdzq8AHo0+nUUOz6fGvMROWkWDk=;
 b=imHRnwa9okjhCvc1nqWM2uqWNrM2Plgfs70T+oO4kDhiQs6yPAnH07MPNpYF976to2cJM5udjzthw2SJ7Xcwj3omnTEYtD5QRDYJEA+kGWNc4ieAxf63VtnPqAdoPcWrJvSu2h22mvKsvT25T8yQ8soouWrTbVdpop1pXyFstZuqZii7U8gVlwZSrrN/PtVvynEUDkNCOboKglptR90MMhOJd8yq9R4Ed0Lu7pyTH96j5O7NQ4+MWy/7SXbW2F95kI2v5XpPHP2ml8K1Et7UI3ZjPHBTV5p9OdYI7Uvj+euScS72Ya63opVazdjXHcjslRN2UIywWeo+WF8QNmtWNw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ehUyi/TGDlV1obCCjdzq8AHo0+nUUOz6fGvMROWkWDk=;
 b=HxKQQ2jEGDrf2bZa3tdfp7RECawtZqt59k7Vr5jM99Bf85BwYOrmU2oNPUdh2lHzG5cdkLVnNxaZMxvZKN5XJdJM+TN09ysckYzS+t5jX5kUAH9JyYGfIQbLHS2AeRZP1X2sPoFqTwRV/LPSpJV9+6MYvSJgDfmaDPDVIwoGOJA=
Date: Sat, 20 Nov 2021 10:47:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Jan Beulich <jbeulich@suse.com>, Oleksandr Andrushchenko
	<andr2000@gmail.com>, "julien@xen.org" <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"george.dunlap@citrix.com" <george.dunlap@citrix.com>, "paul@xen.org"
	<paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Message-ID: <YZjERu0rkTixjHeg@Air-de-Roger>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
 <YZezXShKi1ofH5Aq@Air-de-Roger>
 <28ae380f-703d-e266-a30d-d4d59615f647@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <28ae380f-703d-e266-a30d-d4d59615f647@epam.com>
X-ClientProxiedBy: PAZP264CA0140.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:1f8::7) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 34cc045e-2860-493c-3423-08d9ac0ad482
X-MS-TrafficTypeDiagnostic: DM6PR03MB3578:
X-Microsoft-Antispam-PRVS: <DM6PR03MB35782A41D8A8FBADD3A1760F8F9D9@DM6PR03MB3578.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Gmd/PMdjReW3TIBFmm3/TvsB8QwOnEhQjKW6rGT/8lJVjS40kHmO6fzIA7dddJdi1xebVN3Ou/57U2tBJnNRcJYmNmUBPLRQaYlfqcv4vfYpFn99NC/E89UtT4q/SVHdo5aGm+MyXKFJz8KDjvT0hbLiCm1V97Wt8IKW0H0QZO0oxObB4yw5oaCm766UTIO1qrKphABfhBgJ9HoL80BDDQygwdFFMP6m0gkIUJK8H6msuA+bj+pp6rcphUOXIpFMpJeYDEDzdb74F/mvNHe2qULdbhJ432K71Dq+xo/KEI5VX0p1/F1AxgEaQkxc65bDT7urHaCnNb6MvIOCaQUe0W/pw7lt+FQUzw6CnpH8pzaUb2Xu9bHkW7EVUMYvCbs1f1XDX6BZrfiRtibK2Wls/qrSS07Ej0CeLxAkiKyUiQLcvTQ00lDjESpZ3b6bGnosKkt+qEj20/OsoVHmHhyF0Og2sOtrl6hW6DlG0PFoO8nrK1dqXnLUz00Z3tg1nHYGH3R0/91DOloWPqHm90r4InF1yZzIaTuxW2qMZylFsY5nXUEfgoCmMM2AQK9ekh5HBvae1POCwP/AJSSLOBh5r7QZFlkwa8n5bIc8ZHyRa++jvXffNx49s8+P3mNFtnZqIoKhpOf3LChEHEzCKwzeS/zC+bqKwQIoILGWoUJ6vhBFbKW+j+FDSiRs9Y87sSq4z3bazPv7/Q1DDvMXg+qy2+qz5DLDWWcrBxOMfkwfHeM=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(966005)(2906002)(508600001)(6916009)(86362001)(8936002)(6486002)(6666004)(66476007)(6496006)(66946007)(66556008)(5660300002)(38100700002)(26005)(82960400001)(53546011)(4326008)(186003)(9686003)(83380400001)(54906003)(7416002)(316002)(956004)(8676002)(33716001)(85182001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?emh2cG9GVUlOQ0pPMXl2YUlIMUE1MVJ5L1F0dDU1VE90TkdhYTZPZWRtQUhi?=
 =?utf-8?B?RStNUVl5Ulc5T0l1RW5aczkrbitRWXdZYklCWDBKdk5JTGxaeEl6THIzTUc0?=
 =?utf-8?B?NjBTaUNVMytiUFhYTHJObUlUUm1NazBYc1hOM3VrNW9FZnM3MzNpdWw2NUk2?=
 =?utf-8?B?M3BZZUs1UlhBTVFnRzJxU0ZJMXNEWkNRWnJOdHhUUlp5OWhMUTJSaXF1TXd1?=
 =?utf-8?B?cTllOWliWm5ETmxwTmRSQVkxWDNVR2lXNHZSYjNqeFhyUWJUSU5IRVQ2QWZN?=
 =?utf-8?B?WXdrekRHSmgzVk1BSzNGZnVJdEZFMDQ5SGpUNm5CV25Fc25KTGE5R0g5VDgw?=
 =?utf-8?B?UTBYM3lGRjlJNDI4aldFTXZGSGtqRkY3M3FXckt6Tlk3Uno1dEVJU1FzalNy?=
 =?utf-8?B?MXhCNFNWM25KMVowZTZpVlNISkczY1JSMHlQbFNXN2JMU0tlbDVVRzNRc1hy?=
 =?utf-8?B?SnpjZ1g3NHplaWt2dWRqMkNBUU1XOTlBU3hLQjAvZERPUTNYMzhGU3NYeE0w?=
 =?utf-8?B?eHMxaFB1WTdtdHF6VmdkRFlBV2RUajZXZy9YekZGZ2xFNlpGemZ2UmNUc0Ew?=
 =?utf-8?B?ejhyVlNvN1NjZENWY3I4RGcvamw4VzVOTDlZdEhoZ1BmK2dNRmZLcFA4K2pP?=
 =?utf-8?B?bVppQ015amlWVVlZQ1BIZ25JSlp3ZXRoU21FNjBsU1pSMzcwYU10QlRhRXVm?=
 =?utf-8?B?dzZFdTU2VDNQOFNEWGFzN2V3UGwxMHZPN0x1b1g0dUdhcjFTMGwrSVZ0Mldo?=
 =?utf-8?B?ODF4Zzdsb0VObFdJVC84Q1hLYUxHUlkwbEZxSnRySWJlaXZhN1gra3BQOWQv?=
 =?utf-8?B?MWNGclFnTHhRV2YyTlVGMFRyaXdIMkpIUnB1UTVjcy9BS0VoeDhxSVlnYW1K?=
 =?utf-8?B?aDdxczhKV1BaUWx6NG1rNEVwTk9DQ1BKemJzM3p0M2EwbjhTalVRRUowN3pF?=
 =?utf-8?B?Yzcvbzg0dGNmZG9xb2l0T1poejdodnM1QmtQRm9LS0pOQXhGWStCOWcvb0tT?=
 =?utf-8?B?aGY1Q3FDb3QrbU0vMzhyQjg1MHdvZytCVmU0ME1rSGluY0l5QXpmdk9OSWFX?=
 =?utf-8?B?QXhmSEJZSVlPUVFZWGpacVVMTWhScitjajJBMERFZVYxT1N4UCtHS3ptYTky?=
 =?utf-8?B?MFdDNVhxTEdpaER5Q0tsK2lCa3NUd3p1TWhIdTRvK0t5cE5Hbi94RnBza21p?=
 =?utf-8?B?bHl5NDYxYjRSd2NzWEJRT09ZYnZnMXVackZ2UktwN0Z6NTJIL0hTTXZOQ3Bs?=
 =?utf-8?B?N0xPNEZNaFMvRnZOVk5WVEhmd21nVHA2ckl4clY3eEZCZS9HcEVSYWlDTmRI?=
 =?utf-8?B?NDh1S1lqeTJGUHBUOTJoT3g1SFNVbXR2aUdSU2tzN2VUSTBMd2dFb1R4Y3c3?=
 =?utf-8?B?dGtpYkVXL0tlLzlBNTBReGlQMWhYeGdBVVpaTzgxbHZscTZqS1ZBc0pSVjJ6?=
 =?utf-8?B?R1puWTlyaUNhSC9ucjFMTlBhcmppUS81UXdka2VpcFlNZmpQZTZ1dnNyMFRK?=
 =?utf-8?B?OGpLNnlKNityOEh0WDU1b1BaNEt5cmRsdGU4UGZ2OXd1NnY1SkVRUzJNZXR6?=
 =?utf-8?B?aEIzaElWb2RHOEovZ2g2eXVia1QwK3BFaDJ0anZCWVJha054YnRLTG5JL3Qz?=
 =?utf-8?B?MW1ncnNBbkwzM253eGJ6Y3BnQW5sMUFpMXJBclREMTJoTFI4MWZ3dWdHUEJB?=
 =?utf-8?B?bHZSWTRGS3VzeFpVbkI4aTFrUHJ1eU02QStRbXhlWWdqVUdobnFialBMUnpH?=
 =?utf-8?B?bVkxajNJdVpRRmZITHVOZHpCTXVzQnhlbEhnWlFCZWw0OFk1ZTFyRGpFNHQy?=
 =?utf-8?B?Y251T2tnbXU1eUN4SzEvSmtucFFoZlczMnZTbWNxWlFoYnNjcHlFWWJKSkYr?=
 =?utf-8?B?UDJuT3p6bTJtM1E0Zm5UT1dMQnI4dCt5MU50cTIveHovb3lOdWRuQ3dzelRE?=
 =?utf-8?B?UU50QlIxZmQ0M2x2VFRvS0dpdzdDTXZ6S0ZPWHlIQWcyUE9hTnlVRk8yV093?=
 =?utf-8?B?Zm5XaERnR2VRbWJUVUNXVFJPa2g1SWxaaVZyc1p2QnNmVjRsdjk5ZTRUcnZk?=
 =?utf-8?B?VkVjZnFBMjJaQS8zYUFWbUt4c1F6czI0MjYzeDk4M2lGWlo0QTl1SkRPUGpy?=
 =?utf-8?B?UldjTFdldEcyTmt0NUZkVFhmaEJUanhtK3FxYVdDeDhRMkZVMi9hcE96VGpu?=
 =?utf-8?Q?e6ah+6JeKrwCgtc7r0QsYms=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 34cc045e-2860-493c-3423-08d9ac0ad482
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2021 09:47:56.6450
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cf4bTn4Zl1TCtpQwJdMFJ2jH7Au4dVjvJm1eBqGVUhEe27G4xQEb/LL8j3IPgChXeH5O0U1GmD0I5TGtGZVA+g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3578
X-OriginatorOrg: citrix.com

On Fri, Nov 19, 2021 at 02:26:21PM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 19.11.21 16:23, Roger Pau Monné wrote:
> > On Fri, Nov 19, 2021 at 02:56:12PM +0100, Jan Beulich wrote:
> >> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> >>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> >>>
> >>> Hi, all!
> >>>
> >>> This patch series is focusing on vPCI and adds support for non-identity
> >>> PCI BAR mappings which is required while passing through a PCI device to
> >>> a guest. The highlights are:
> >>>
> >>> - Add relevant vpci register handlers when assigning PCI device to a domain
> >>>    and remove those when de-assigning. This allows having different
> >>>    handlers for different domains, e.g. hwdom and other guests.
> >>>
> >>> - Emulate guest BAR register values based on physical BAR values.
> >>>    This allows creating a guest view of the registers and emulates
> >>>    size and properties probe as it is done during PCI device enumeration by
> >>>    the guest.
> >>>
> >>> - Instead of handling a single range set, that contains all the memory
> >>>    regions of all the BARs and ROM, have them per BAR.
> >>>
> >>> - Take into account guest's BAR view and program its p2m accordingly:
> >>>    gfn is guest's view of the BAR and mfn is the physical BAR value as set
> >>>    up by the host bridge in the hardware domain.
> >>>    This way hardware doamin sees physical BAR values and guest sees
> >>>    emulated ones.
> >>>
> >>> The series also adds support for virtual PCI bus topology for guests:
> >>>   - We emulate a single host bridge for the guest, so segment is always 0.
> >>>   - The implementation is limited to 32 devices which are allowed on
> >>>     a single PCI bus.
> >>>   - The virtual bus number is set to 0, so virtual devices are seen
> >>>     as embedded endpoints behind the root complex.
> >>>
> >>> The series was also tested on:
> >>>   - x86 PVH Dom0 and doesn't break it.
> >>>   - x86 HVM with PCI passthrough to DomU and doesn't break it.
> >>>
> >>> Thank you,
> >>> Oleksandr
> >>>
> >>> Oleksandr Andrushchenko (11):
> >>>    vpci: fix function attributes for vpci_process_pending
> >>>    vpci: cancel pending map/unmap on vpci removal
> >>>    vpci: make vpci registers removal a dedicated function
> >>>    vpci: add hooks for PCI device assign/de-assign
> >>>    vpci/header: implement guest BAR register handlers
> >>>    vpci/header: handle p2m range sets per BAR
> >>>    vpci/header: program p2m with guest BAR view
> >>>    vpci/header: emulate PCI_COMMAND register for guests
> >>>    vpci/header: reset the command register when adding devices
> >>>    vpci: add initial support for virtual PCI bus topology
> >>>    xen/arm: translate virtual PCI bus topology for guests
> >> If I'm not mistaken by the end of this series a guest can access a
> >> device handed to it. I couldn't find anything dealing with the
> >> uses of vpci_{read,write}_hw() and vpci_hw_{read,write}*() to cover
> >> config registers not covered by registered handlers. IMO this should
> >> happen before patch 5: Before any handlers get registered the view a
> >> guest would have would be all ones no matter which register it
> >> accesses. Handler registration would then "punch holes" into this
> >> "curtain", as opposed to Dom0, where handler registration hides
> >> previously visible raw hardware registers.
> > FWIW, I've also raised the same concern in a different thread:
> >
> > https://urldefense.com/v3/__https://lore.kernel.org/xen-devel/YYD7VmDGKJRkid4a@Air-de-Roger/__;!!GF_29dbcQIUBPA!gihX6c2Mg87AKSDMmh1xrRnPjTXZkgR3kqPxg-WPghAdbY59gmJK5Ngkf4OJFK6NU5IwCStYAQ$ [lore[.]kernel[.]org]
> >
> > It seems like this is future work,
> Yes, it takes quite some time to get even what we have now...
> >   but unless such a model is
> > implemented vPCI cannot be used for guest passthrough.
> But it can be a tech-preview

I'm afraid 'Tech Preview' requires the feature to be functionally
complete, which I won't consider the case for vPCI unless the above is
solved. I think we could only label this as 'Experimental' until the
remaining work is done, but the limitations would need to be clearly
noted, as it would be completely insecure.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 10:03:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 10:03:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228357.395112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moNDM-00027L-V2; Sat, 20 Nov 2021 10:03:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228357.395112; Sat, 20 Nov 2021 10:03:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moNDM-00027E-Rn; Sat, 20 Nov 2021 10:03:20 +0000
Received: by outflank-mailman (input) for mailman id 228357;
 Sat, 20 Nov 2021 10:03:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moNDL-000274-Bb; Sat, 20 Nov 2021 10:03:19 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moNDL-0007uG-6p; Sat, 20 Nov 2021 10:03:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moNDK-0001go-Py; Sat, 20 Nov 2021 10:03:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moNDK-0006qI-PY; Sat, 20 Nov 2021 10:03:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=u6wWtPNISEZ/U5PL7hG1VM+kVl4e9GPMpxUbkP8KkHw=; b=ZnRb7WmHn8QRe5juLBTy9k1T54
	w2o7FkNvjrR/615DJ1clfOm7ZZ7yrutDssAbFdnlyDBQ9+EQLWV9MMOvAjeQGnZtI74q0J4v/E5VB
	QEn4scVHYmEuzY5blPDH1BgBHIsHcRQbYvQju0GzLRXoqoldfVA2Wbn7VGOB/Axl4eCk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166196-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166196: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=24d7cc416bba1f88da4c7b2649ac32486229b97b
X-Osstest-Versions-That:
    xen=1cffc48f1e1f972daeec579c62de4bb24f3152fa
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Nov 2021 10:03:18 +0000

flight 166196 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166196/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166189
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166189
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166189
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166189
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166189
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166189
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166189
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166189
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166189
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166189
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166189
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166189
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  24d7cc416bba1f88da4c7b2649ac32486229b97b
baseline version:
 xen                  1cffc48f1e1f972daeec579c62de4bb24f3152fa

Last test of basis   166189  2021-11-19 02:37:56 Z    1 days
Testing same since   166196  2021-11-19 18:39:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Anthony PERARD <anthony.perard@citrix.com>
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Nick Rosbrook <rosbrookn@ainfosec.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   1cffc48f1e..24d7cc416b  24d7cc416bba1f88da4c7b2649ac32486229b97b -> master


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 12:41:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 12:41:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228377.395126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moPfP-0008O1-W1; Sat, 20 Nov 2021 12:40:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228377.395126; Sat, 20 Nov 2021 12:40:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moPfP-0008Nu-Sc; Sat, 20 Nov 2021 12:40:27 +0000
Received: by outflank-mailman (input) for mailman id 228377;
 Sat, 20 Nov 2021 12:40:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moPfO-0008Nk-18; Sat, 20 Nov 2021 12:40:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moPfN-0001zi-Pp; Sat, 20 Nov 2021 12:40:25 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moPfN-0001Bv-Fe; Sat, 20 Nov 2021 12:40:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moPfN-0004x7-Em; Sat, 20 Nov 2021 12:40:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=wUargjUwhaGUNr2VvdySgkMv9SULrs5j7EVGynbb/Ec=; b=M+Wfkd2Z8t0VfrAUDko6zhwIvg
	cG9rMhQFpTkPTATfa+JYZzGw3WNJ02rLi9I7dHPwwju9uVIAJ8K1rnZ9nqOu+ZkiPSPeZjnrqERp/
	foS883LiXV/C2uxznsniMCZ/0QGx7g31/oMsKirBP7Mz2uFKR5iNrmd5OPdyjn6lDVGs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166198-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.15-testing test] 166198: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.15-testing:test-amd64-i386-libvirt-pair:guest-migrate/dst_host/src_host/debian.repeat:fail:heisenbug
    xen-4.15-testing:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=963ab606b1228788eac54c1c7ff70d04bb325733
X-Osstest-Versions-That:
    xen=2a19ee2ba6fa2b36e4d9331f9dc40bda40f7358e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Nov 2021 12:40:25 +0000

flight 166198 xen-4.15-testing real [real]
flight 166207 xen-4.15-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166198/
http://logs.test-lab.xenproject.org/osstest/logs/166207/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-libvirt-pair 28 guest-migrate/dst_host/src_host/debian.repeat fail pass in 166207-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166192
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166192
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166192
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166192
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166192
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166192
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166192
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166192
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166192
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166192
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166192
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166192
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166192
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  963ab606b1228788eac54c1c7ff70d04bb325733
baseline version:
 xen                  2a19ee2ba6fa2b36e4d9331f9dc40bda40f7358e

Last test of basis   166192  2021-11-19 08:40:29 Z    1 days
Testing same since   166198  2021-11-19 19:38:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 fail    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   2a19ee2ba6..963ab606b1  963ab606b1228788eac54c1c7ff70d04bb325733 -> stable-4.15


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 12:45:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 12:45:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228385.395144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moPji-0000fX-Ia; Sat, 20 Nov 2021 12:44:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228385.395144; Sat, 20 Nov 2021 12:44:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moPji-0000fQ-FW; Sat, 20 Nov 2021 12:44:54 +0000
Received: by outflank-mailman (input) for mailman id 228385;
 Sat, 20 Nov 2021 12:44:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moPjh-0000fG-8h; Sat, 20 Nov 2021 12:44:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moPjh-00024P-4e; Sat, 20 Nov 2021 12:44:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moPjg-0001Jg-U8; Sat, 20 Nov 2021 12:44:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moPjg-0007Vz-RC; Sat, 20 Nov 2021 12:44:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ALXZmqzJP5gf8HTxmIcP1dQlE/kMfqTx2EptA0EcyjM=; b=kaJaK6DR/O/0wRHh9jCvluNQwP
	8bWlrBk7BC8iTttQbCREQBgJm07qhr/6/8e8XbIlXAAOAg8EFMO17FHKNweWvJM9WVL5lJ0U+5oGy
	7SXU3Hm0MIKTGyJ2Mnn/2qSbx+baGDEzK523rSJuaIA2WjPdRijZdm2ESKTTfU/Jbw/k=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166199-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166199: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=9539ba4308ad5bdca6cb41c7b73cbb9f796dcdd7
X-Osstest-Versions-That:
    linux=4c388a8e740d3235a194f330c8ef327deef710f6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Nov 2021 12:44:52 +0000

flight 166199 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166199/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166190
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166190
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166190
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166190
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166190
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat    fail  like 166190
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166190
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166190
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166190
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                9539ba4308ad5bdca6cb41c7b73cbb9f796dcdd7
baseline version:
 linux                4c388a8e740d3235a194f330c8ef327deef710f6

Last test of basis   166190  2021-11-19 03:23:04 Z    1 days
Testing same since   166199  2021-11-19 20:09:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Eric W. Biederman" <ebiederm@xmission.com>
  Adrian Hunter <adrian.hunter@intel.com>
  Alex Deucher <alexander.deucher@amd.com>
  Amit Pundir <amit.pundir@linaro.org>
  Andreas Schwab <schwab@suse.de>
  Anup Patel <anup.patel@wdc.com>
  Bart Van Assche <bvanassche@acm.org>
  Bartosz Golaszewski <brgl@bgdev.pl>
  Bernard Zhao <bernard@vivo.com>
  Borislav Petkov <bp@suse.de>
  Bryan Tan <bryantan@vmware.com>
  Christian König <christian.koenig@amd.com>
  Dan Carpenter <dan.carpenter@oracle.com>
  Dave Airlie <airlied@redhat.com>
  Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
  Eric W. Biederman <ebiederm@xmission.com>
  Evan Quan <evan.quan@amd.com>
  Ewan D. Milne <emilne@redhat.com>
  Guchun Chen <guchun.chen@amd.com>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  hongao <hongao@uniontech.com>
  Ilya Trukhanov <lahvuun@gmail.com>
  Jack Wang <jinpu.wang@ionos.com>
  Jani Nikula <jani.nikula@intel.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Javier Martinez Canillas <javierm@redhat.com>
  Jernej Skrabec <jernej.skrabec@gmail.com>
  John Harrison <John.C.Harrison@Intel.com>
  Julian Braha <julianbraha@gmail.com>
  Karol Herbst <kherbst@redhat.com>
  Kees Cook <keescook@chromium.org>
  Kent Gibson <warthog618@gmail.com>
  Kyle Huey <khuey@kylehuey.com>
  Leon Romanovsky <leonro@nvidia.com>
  Li Zhijian <lizhijian@cn.fujitsu.com>
  Lijo Lazar <lijo.lazar@amd.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Luben Tuikov <luben.tuikov@amd.com>
  Martin K. Petersen <martin.petersen@oracle.com>
  Maxime Ripard <maxime@cerno.tech>
  Mike Christie <michael.christie@oracle.com>
  Nathan Chancellor <nathan@kernel.org>
  Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
  Palmer Dabbelt <palmer@rivosinc.com>
  Paul Cercueil <paul@crapouillou.net>
  Perry Yuan <Perry.Yuan@amd.com>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Peter Zijlstra <peterz@infradead.org>
  Randy Dunlap <rdunlap@infradead.org>
  Rob Clark <robdclark@chromium.org>
  Rodrigo Vivi <rodrigo.vivi@intel.com>
  Roman Li <Roman.Li@amd.com>
  Samuel Čavoj <samuel@cavoj.net>
  shaoyunl <shaoyun.liu@amd.com>
  Thomas Zimmermann <tzimmermann@suse.de>
  Vandita Kulkarni <vandita.kulkarni@intel.com>
  Viresh Kumar <viresh.kumar@linaro.org>
  Yang Li <yang.lee@linux.alibaba.com>
  Yassine Oudjana <y.oudjana@protonmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   4c388a8e740d..9539ba4308ad  9539ba4308ad5bdca6cb41c7b73cbb9f796dcdd7 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 13:39:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 13:39:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228393.395158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moQaA-0005iJ-Tb; Sat, 20 Nov 2021 13:39:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228393.395158; Sat, 20 Nov 2021 13:39:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moQaA-0005iC-QD; Sat, 20 Nov 2021 13:39:06 +0000
Received: by outflank-mailman (input) for mailman id 228393;
 Sat, 20 Nov 2021 13:39:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=afrA=QH=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1moQa8-0005i6-IF
 for xen-devel@lists.xenproject.org; Sat, 20 Nov 2021 13:39:04 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 385b6252-4a07-11ec-a9d2-d9f7a1cc8784;
 Sat, 20 Nov 2021 14:39:03 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id c32so57060899lfv.4
 for <xen-devel@lists.xenproject.org>; Sat, 20 Nov 2021 05:39:01 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id bd27sm229655ljb.127.2021.11.20.05.38.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 20 Nov 2021 05:39:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 385b6252-4a07-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=87cVwmsOyzRtODMfQvo3i1gOs01RxXi43XiAXYC9uZU=;
        b=EdqlKkn1SBMZl5J1aPqnuvHZl1J9QT6p0FJPPvguJNUNs8vipEmaQK1+1j2AYsWnHR
         JyYIfMoVMiyB8UluyhIldsEyuFYMheD5AkASUvwVPKsTJLQwutjvkTMWZ8jmNL3ASLdK
         S7Mol04GTg/RFBB00dksds2mAWgRVeVmDzvseKU65wvWXWaCYV9SBdf4MTBa/+b56bhQ
         iClZOq2tVLe/Mr9gQpC/p4hM0SP80loQm1sx6e2ZDehxSeMVmT1vQUqk2fIQVjpwtwFC
         3yW1CoYQmx+HTmJHYlRjb7WXdX8pEpaUocCRfVbTSboXJMlM/dPc8QJnwTi4m0DE2UQm
         e0ew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=87cVwmsOyzRtODMfQvo3i1gOs01RxXi43XiAXYC9uZU=;
        b=PeBD4WnEFNPvqbpP96dnOEIItVM6f9XHitNXtr9q/rhrKcBt6IDWZDgYnJuAIn+7kg
         /N6bME3uUOkZe2J/l75jE8+1bvsRDg1125stGlE7dr5YV5Ju5rd7+bFYsfziAYRHIVTH
         nvjKtQGo9AKmJfNPIbn2oXF97XyhWYqoGJQYAuph7OAd3sJLyzrsvFIlWo7fHuibvGbv
         w6HtK1kFbCh212TqclNZdnHEXeHjVIswOA23wH17MwiSUulYpvHdGvp/nPTmKBnriatt
         Q9SHhlpzTgBRf/MIardlaUb0Z2hvXSP+CLP9UBBhwzJJcjSP9nvlapZ4ULbVSi71gtaQ
         IyAw==
X-Gm-Message-State: AOAM530UbFHXo61v4f09pGSChaPvdkihc0TvB/nZjnoQjQpMbhkla1B8
	8uEv4cNKkRv/NE2AbCc+o4g=
X-Google-Smtp-Source: ABdhPJxOLTeL6kIUTEm12QQG2lBcTnCGLQfsvbJ+xjMD5gpYjA0x+qhdxLzHybe818jhpOAM2tAV8w==
X-Received: by 2002:a2e:9953:: with SMTP id r19mr33626907ljj.442.1637415540697;
        Sat, 20 Nov 2021 05:39:00 -0800 (PST)
Subject: Re: [PATCH V2 4/4] arm/xen: Read extended regions from DT and init
 Xen resource
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Russell King <linux@armlinux.org.uk>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-5-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110271803060.20134@sstabellini-ThinkPad-T480s>
 <237f832d-5175-5653-18ee-058a7d7fa7a6@gmail.com>
 <alpine.DEB.2.22.394.2111181701110.1412361@ubuntu-linux-20-04-desktop>
 <ee5a226b-0e12-8823-0961-bf2fe0bd494e@gmail.com>
 <alpine.DEB.2.22.394.2111191820130.1412361@ubuntu-linux-20-04-desktop>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <a7a5b5c1-15c0-df58-c0e5-67358f92d7d1@gmail.com>
Date: Sat, 20 Nov 2021 15:38:59 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111191820130.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 20.11.21 04:36, Stefano Stabellini wrote:


Hi Stefano

> On Fri, 19 Nov 2021, Oleksandr wrote:
>> On 19.11.21 03:19, Stefano Stabellini wrote:
>>> On Wed, 10 Nov 2021, Oleksandr wrote:
>>>> On 28.10.21 04:40, Stefano Stabellini wrote:
>>>>
>>>> Hi Stefano
>>>>
>>>> I am sorry for the late response.
>>>>
>>>>> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>>>>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>>>
>>>>>> This patch implements arch_xen_unpopulated_init() on Arm where
>>>>>> the extended regions (if any) are gathered from DT and inserted
>>>>>> into passed Xen resource to be used as unused address space
>>>>>> for Xen scratch pages by unpopulated-alloc code.
>>>>>>
>>>>>> The extended region (safe range) is a region of guest physical
>>>>>> address space which is unused and could be safely used to create
>>>>>> grant/foreign mappings instead of wasting real RAM pages from
>>>>>> the domain memory for establishing these mappings.
>>>>>>
>>>>>> The extended regions are chosen by the hypervisor at the domain
>>>>>> creation time and advertised to it via "reg" property under
>>>>>> hypervisor node in the guest device-tree. As region 0 is reserved
>>>>>> for grant table space (always present), the indexes for extended
>>>>>> regions are 1...N.
>>>>>>
>>>>>> If arch_xen_unpopulated_init() fails for some reason the default
>>>>>> behaviour will be restored (allocate xenballooned pages).
>>>>>>
>>>>>> This patch also removes XEN_UNPOPULATED_ALLOC dependency on x86.
>>>>>>
>>>>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>>> ---
>>>>>> Changes RFC -> V2:
>>>>>>       - new patch, instead of
>>>>>>        "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to
>>>>>> provide
>>>>>> unallocated space"
>>>>>> ---
>>>>>>     arch/arm/xen/enlighten.c | 112
>>>>>> +++++++++++++++++++++++++++++++++++++++++++++++
>>>>>>     drivers/xen/Kconfig      |   2 +-
>>>>>>     2 files changed, 113 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
>>>>>> index dea46ec..1a1e0d3 100644
>>>>>> --- a/arch/arm/xen/enlighten.c
>>>>>> +++ b/arch/arm/xen/enlighten.c
>>>>>> @@ -62,6 +62,7 @@ static __read_mostly unsigned int xen_events_irq;
>>>>>>     static phys_addr_t xen_grant_frames;
>>>>>>       #define GRANT_TABLE_INDEX   0
>>>>>> +#define EXT_REGION_INDEX    1
>>>>>>       uint32_t xen_start_flags;
>>>>>>     EXPORT_SYMBOL(xen_start_flags);
>>>>>> @@ -303,6 +304,117 @@ static void __init xen_acpi_guest_init(void)
>>>>>>     #endif
>>>>>>     }
>>>>>>     +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>>>>>> +int arch_xen_unpopulated_init(struct resource *res)
>>>>>> +{
>>>>>> +	struct device_node *np;
>>>>>> +	struct resource *regs, *tmp_res;
>>>>>> +	uint64_t min_gpaddr = -1, max_gpaddr = 0;
>>>>>> +	unsigned int i, nr_reg = 0;
>>>>>> +	struct range mhp_range;
>>>>>> +	int rc;
>>>>>> +
>>>>>> +	if (!xen_domain())
>>>>>> +		return -ENODEV;
>>>>>> +
>>>>>> +	np = of_find_compatible_node(NULL, NULL, "xen,xen");
>>>>>> +	if (WARN_ON(!np))
>>>>>> +		return -ENODEV;
>>>>>> +
>>>>>> +	/* Skip region 0 which is reserved for grant table space */
>>>>>> +	while (of_get_address(np, nr_reg + EXT_REGION_INDEX, NULL,
>>>>>> NULL))
>>>>>> +		nr_reg++;
>>>>>> +	if (!nr_reg) {
>>>>>> +		pr_err("No extended regions are found\n");
>>>>>> +		return -EINVAL;
>>>>>> +	}
>>>>>> +
>>>>>> +	regs = kcalloc(nr_reg, sizeof(*regs), GFP_KERNEL);
>>>>>> +	if (!regs)
>>>>>> +		return -ENOMEM;
>>>>>> +
>>>>>> +	/*
>>>>>> +	 * Create resource from extended regions provided by the
>>>>>> hypervisor to
>>>>>> be
>>>>>> +	 * used as unused address space for Xen scratch pages.
>>>>>> +	 */
>>>>>> +	for (i = 0; i < nr_reg; i++) {
>>>>>> +		rc = of_address_to_resource(np, i + EXT_REGION_INDEX,
>>>>>> &regs[i]);
>>>>>> +		if (rc)
>>>>>> +			goto err;
>>>>>> +
>>>>>> +		if (max_gpaddr < regs[i].end)
>>>>>> +			max_gpaddr = regs[i].end;
>>>>>> +		if (min_gpaddr > regs[i].start)
>>>>>> +			min_gpaddr = regs[i].start;
>>>>>> +	}
>>>>>> +
>>>>>> +	/* Check whether the resource range is within the hotpluggable
>>>>>> range
>>>>>> */
>>>>>> +	mhp_range = mhp_get_pluggable_range(true);
>>>>>> +	if (min_gpaddr < mhp_range.start)
>>>>>> +		min_gpaddr = mhp_range.start;
>>>>>> +	if (max_gpaddr > mhp_range.end)
>>>>>> +		max_gpaddr = mhp_range.end;
>>>>>> +
>>>>>> +	res->start = min_gpaddr;
>>>>>> +	res->end = max_gpaddr;
>>>>>> +
>>>>>> +	/*
>>>>>> +	 * Mark holes between extended regions as unavailable. The
>>>>>> rest of
>>>>>> that
>>>>>> +	 * address space will be available for the allocation.
>>>>>> +	 */
>>>>>> +	for (i = 1; i < nr_reg; i++) {
>>>>>> +		resource_size_t start, end;
>>>>>> +
>>>>>> +		start = regs[i - 1].end + 1;
>>>>>> +		end = regs[i].start - 1;
>>>>>> +
>>>>>> +		if (start > (end + 1)) {
>>>>> Should this be:
>>>>>
>>>>> if (start >= end)
>>>>>
>>>>> ?
>>>> Yes, we can do this here (since the checks are equivalent) but ...
>>>>
>>>>>> +			rc = -EINVAL;
>>>>>> +			goto err;
>>>>>> +		}
>>>>>> +
>>>>>> +		/* There is no hole between regions */
>>>>>> +		if (start == (end + 1))
>>>>> Also here, shouldn't it be:
>>>>>
>>>>> if (start == end)
>>>>>
>>>>> ?
>>>>      ... not here.
>>>>
>>>> As
>>>>
>>>> "(start == (end + 1))" is equal to "(regs[i - 1].end + 1 ==
>>>> regs[i].start)"
>>>>
>>>> but
>>>>
>>>> "(start == end)" is equal to "(regs[i - 1].end + 1 == regs[i].start - 1)"
>>>    OK. But the check:
>>>
>>>     if (start >= end)
>>>
>>> Actually covers both cases so that's the only check we need?
>> Sorry, I don't entirely understand the question.
>> Is the question to use only a single check in that loop?
>>
>> Paste the updated code which I have locally for the convenience.
>>
>>   [snip]
>>
>>      /*
>>       * Mark holes between extended regions as unavailable. The rest of that
>>       * address space will be available for the allocation.
>>       */
>>      for (i = 1; i < nr_reg; i++) {
>>          resource_size_t start, end;
>>
>>          start = regs[i - 1].end + 1;
>>          end = regs[i].start - 1;
>>
>>          if (start > (end + 1)) {
>>              rc = -EINVAL;
>>              goto err;
>>          }
>>
>>          /* There is no hole between regions */
>>          if (start == (end + 1))
>>              continue;
>>
>>          tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>>          if (!tmp_res) {
>>              rc = -ENOMEM;
>>              goto err;
>>          }
>>
>>          tmp_res->name = "Unavailable space";
>>          tmp_res->start = start;
>>          tmp_res->end = end;
>>
>>          rc = insert_resource(&xen_resource, tmp_res);
>>          if (rc) {
>>              pr_err("Cannot insert resource %pR (%d)\n", tmp_res, rc);
>>              kfree(tmp_res);
>>              goto err;
>>          }
>>      }
>>
>> [snip]
>>
>>
>> 1. The first check is to detect an overlap (which is a wrong configuration,
>> correct?) and bail out if true (for example, regX: 0x81000000...0x82FFFFFF and
>> regY: 0x82000000...0x83FFFFFF).
>> 2. The second check is just to skip current iteration as there is no
>> space/hole between regions (for example, regX: 0x81000000...0x82FFFFFF and
>> regY: 0x83000000...0x83FFFFFF).
>> Therefore I think they should be distinguished.
>>
>> Yes, both check could be transformed to a single one, but this way the
>> overlaps will be ignored:
>> if (start >= (end + 1))
>>      continue;
>>
>> Or I really missed something?
> You are right it is better to distinguish the two cases. I suggest the
> code below because I think it is a clearer, even if it might be slightly
> less efficient. I don't feel too strongly about it though.
>
> 		resource_size_t start, end;
>
> 		/* There is no hole between regions */
> 		if ( regs[i - 1].end + 1 == regs[i].start )
> 			continue;
>
> 		if ( regs[i - 1].end + 1 > regs[i].start) {
> 			rc = -EINVAL;
> 			goto err;
> 		}
>
> 		start = regs[i - 1].end + 1;
> 		end = regs[i].start - 1;

OK, let's make code clearer, will do.


-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Sat Nov 20 13:47:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 13:47:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228397.395169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moQhv-000792-OE; Sat, 20 Nov 2021 13:47:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228397.395169; Sat, 20 Nov 2021 13:47:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moQhv-00078v-Ks; Sat, 20 Nov 2021 13:47:07 +0000
Received: by outflank-mailman (input) for mailman id 228397;
 Sat, 20 Nov 2021 13:47:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moQhu-00078l-It; Sat, 20 Nov 2021 13:47:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moQhu-00036y-Ad; Sat, 20 Nov 2021 13:47:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moQhu-0004VP-2X; Sat, 20 Nov 2021 13:47:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moQhu-0000kZ-22; Sat, 20 Nov 2021 13:47:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HQoq4KzHinvGdad9fhlY9OwxRkeIIYjZY9lkeg3X0jo=; b=dIh6Mjmwc/fbB49+03ilPLnv1m
	Sw7//3Kmp0c9cWQi/ACk7Wz1CgJE+5A0vKUqD7UfORH49GeFeyGG3qDCM6UR9NIMN+MWIlS1tkEQG
	D+Df6L883AaEzvRFsHaPoijiQZWaeqbAhJcC/m1jlxjobHAIXUBEHS9FR1UvTTt5B2Dg=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166203-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166203: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=c7820f15091451f71e960337620e88e81dd3f2e2
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Nov 2021 13:47:06 +0000

flight 166203 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166203/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              c7820f15091451f71e960337620e88e81dd3f2e2
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  498 days
Failing since        151818  2020-07-11 04:18:52 Z  497 days  483 attempts
Testing same since   166203  2021-11-20 04:21:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Vasiliy Ulyanov <vulyanov@suse.de>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 84098 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 19:51:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 19:51:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228407.395183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moWNT-0006Vj-Fb; Sat, 20 Nov 2021 19:50:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228407.395183; Sat, 20 Nov 2021 19:50:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moWNT-0006Vc-Cj; Sat, 20 Nov 2021 19:50:23 +0000
Received: by outflank-mailman (input) for mailman id 228407;
 Sat, 20 Nov 2021 19:50:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moWNS-0006VS-DB; Sat, 20 Nov 2021 19:50:22 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moWNS-00019l-02; Sat, 20 Nov 2021 19:50:22 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moWNR-0006Ws-IE; Sat, 20 Nov 2021 19:50:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moWNR-0001RG-Hi; Sat, 20 Nov 2021 19:50:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=tQkMhxjfAU7Ui6b00dn/Zm7z+VfV/OAOsmyBUV65edw=; b=ZzIJav5aLsqkwYGp6EvpJ5z/uF
	gWqZo9xyQkXQhRQb4j8i1kskeLU0Kpi/T0VEkOaF54EhOLp1eVAlS4OcR7FXWuwPRc+fpKGPC0qI4
	3oCn8CLaCdJ9itGRst8H0HZjcKKHvfYhVU/90tq1nbgg3/SG6S32HllwAEOqo+az/LkE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166204-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166204: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=8627edfb3f1fca24a96a0954148885c3241c10f8
X-Osstest-Versions-That:
    qemuu=3760a04c352f8d255b247211f6da07ac99f1630a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Nov 2021 19:50:21 +0000

flight 166204 qemu-mainline real [real]
flight 166210 qemu-mainline real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166204/
http://logs.test-lab.xenproject.org/osstest/logs/166210/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166210-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166194
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166194
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166194
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166194
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166194
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166194
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166194
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166194
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                8627edfb3f1fca24a96a0954148885c3241c10f8
baseline version:
 qemuu                3760a04c352f8d255b247211f6da07ac99f1630a

Last test of basis   166194  2021-11-19 10:39:18 Z    1 days
Testing same since   166204  2021-11-20 05:05:11 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Brad Smith <brad@comstyle.com>
  Cédric Le Goater <clg@kaod.org>
  Daniil Tatianin <d-tatianin@yandex-team.ru>
  Hannes Reinecke <hare@suse.de>
  Klaus Jensen <k.jensen@samsung.com>
  Laurent Vivier <lvivier@redhat.com>
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  nia <nia@NetBSD.org>
  Nia Alarie <nia@NetBSD.org>
  Paolo Bonzini <pbonzini@redhat.com>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Stefan Weil <sw@weilnetz.de>
  Thomas Huth <thuth@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   3760a04c35..8627edfb3f  8627edfb3f1fca24a96a0954148885c3241c10f8 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Sat Nov 20 23:33:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Nov 2021 23:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228413.395197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moZqP-0000tT-Qv; Sat, 20 Nov 2021 23:32:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228413.395197; Sat, 20 Nov 2021 23:32:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moZqP-0000tM-Nx; Sat, 20 Nov 2021 23:32:29 +0000
Received: by outflank-mailman (input) for mailman id 228413;
 Sat, 20 Nov 2021 23:32:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moZqO-0000tC-EP; Sat, 20 Nov 2021 23:32:28 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moZqO-0004pW-4M; Sat, 20 Nov 2021 23:32:28 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moZqN-00084m-QA; Sat, 20 Nov 2021 23:32:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moZqN-0001y6-Ph; Sat, 20 Nov 2021 23:32:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NvQ7rOdRg3j1OxMFWn66EcS2N4jT9qRWnsLGEqLDVGA=; b=yS6AWFBkC6yXnGftgbynWvKBWT
	WRucDvA9kJYTjX3FETTJtfEG37lR64/c1QhOmV3BKUA7/C5X3mxO9J7SJppn1911zOjpCC+KNneHy
	RoAAqcoqlAPt5afpzVu/KMij8c38yGQXvQKr28Q+JxLnio/AyuscZ51rHKlrR13BWuBs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166206-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166206: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-examine:memdisk-try-append:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
X-Osstest-Versions-That:
    xen=24d7cc416bba1f88da4c7b2649ac32486229b97b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Nov 2021 23:32:27 +0000

flight 166206 xen-unstable real [real]
flight 166213 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166206/
http://logs.test-lab.xenproject.org/osstest/logs/166213/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-examine      4 memdisk-try-append       fail REGR. vs. 166196

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166196
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166196
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166196
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166196
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166196
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166196
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166196
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166196
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166196
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166196
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166196
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166196
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass

version targeted for testing:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9
baseline version:
 xen                  24d7cc416bba1f88da4c7b2649ac32486229b97b

Last test of basis   166196  2021-11-19 18:39:14 Z    1 days
Testing same since   166206  2021-11-20 10:06:49 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit be12fcca8b784e456df3adedbffe657d753c5ff9
Author: Roger Pau Monne <roger.pau@citrix.com>
Date:   Thu Nov 18 09:28:06 2021 +0100

    efi: fix alignment of function parameters in compat mode
    
    Currently the max_store_size, remain_store_size and max_size in
    compat_pf_efi_runtime_call are 4 byte aligned, which makes clang
    13.0.0 complain with:
    
    In file included from compat.c:30:
    ./runtime.c:646:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 2 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
                &op->u.query_variable_info.max_store_size,
                ^
    ./runtime.c:647:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 3 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
                &op->u.query_variable_info.remain_store_size,
                ^
    ./runtime.c:648:13: error: passing 4-byte aligned argument to 8-byte aligned parameter 4 of 'QueryVariableInfo' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
                &op->u.query_variable_info.max_size);
                ^
    Fix this by bouncing the variables on the stack in order for them to
    be 8 byte aligned.
    
    Note this could be done in a more selective manner to only apply to
    compat code calls, but given the overhead of making an EFI call doing
    an extra copy of 3 variables doesn't seem to warrant the special
    casing.
    
    Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
    Release-Acked-by: Ian Jackson <iwj@xenproject.org>
    Reviewed-by: Ian Jackson <iwj@xenproject.org>
    Signed-off-by: Ian Jackson <iwj@xenproject.org>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    
    ---
    Changes since v3:
     - Remove hard tabs.  Apply Jan's r-b as authorised in email.
    Changes since v2:
     - Adjust the commentary as per discussion.
    Changes since v1:
     - Copy back the results.
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Sun Nov 21 01:11:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Nov 2021 01:11:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228424.395222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mobO5-0004Kf-EJ; Sun, 21 Nov 2021 01:11:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228424.395222; Sun, 21 Nov 2021 01:11:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mobO5-0004KY-BU; Sun, 21 Nov 2021 01:11:21 +0000
Received: by outflank-mailman (input) for mailman id 228424;
 Sun, 21 Nov 2021 01:11:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mobO4-0004KO-ON; Sun, 21 Nov 2021 01:11:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mobO4-0000As-G6; Sun, 21 Nov 2021 01:11:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mobO4-0002hS-5Z; Sun, 21 Nov 2021 01:11:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mobO4-0007Zr-51; Sun, 21 Nov 2021 01:11:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=sziCGCRWvbLGTSU9htOyFs9yzTnPta+zMFQ+mLU+uuw=; b=NupVsbXzFj3Ao4mTCgDktf+T6g
	kclDSs2h8VJjA3Zja3OKuv+2NTJvxnsBqx3nMMozJNd1NsrZUPv3WAt9qS/bQYHh8RHV8pZ4Mi1gU
	r8zOaRYYEtYiKflyunOYjYCUkR8qxW92v746rjb9ImZ4V+rx9xXL1p90UdJ1x6EyIguU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166208-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166208: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=a90af8f15bdc9449ee2d24e1d73fa3f7e8633f81
X-Osstest-Versions-That:
    linux=9539ba4308ad5bdca6cb41c7b73cbb9f796dcdd7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Nov 2021 01:11:20 +0000

flight 166208 linux-linus real [real]
flight 166216 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166208/
http://logs.test-lab.xenproject.org/osstest/logs/166216/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166216-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166199
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166199
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166199
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166199
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166199
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat    fail  like 166199
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166199
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166199
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166199
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                a90af8f15bdc9449ee2d24e1d73fa3f7e8633f81
baseline version:
 linux                9539ba4308ad5bdca6cb41c7b73cbb9f796dcdd7

Last test of basis   166199  2021-11-19 20:09:51 Z    1 days
Testing same since   166208  2021-11-20 12:48:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Arnaldo Carvalho de Melo <acme@redhat.com>
  Athira Jajeev <atrajeev@linux.vnet.ibm.com>
  Damien Le Moal <damien.lemoal@opensource.wdc.com>
  German Gomez <german.gomez@arm.com>
  Ian Rogers <irogers@google.com>
  Kalesh Singh <kaleshsingh@google.com>
  Kees Cook <keescook@chromium.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Madhavan Srinivasan <maddy@linux.ibm.com>
  Mario Limonciello <mario.limonciello@amd.com>
  Matthew Perkowski <mgperkow@gmail.com>
  Namhyung Kim <namhyung@kernel.org>
  Nikita Yushchenko <nikita.yushchenko@virtuozzo.com>
  Sohaib Mohamed <sohaib.amhmd@gmail.com>
  Steven Rostedt (VMware) <rostedt@goodmis.org>
  Thomas Richter <tmricht@linux.ibm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   9539ba4308ad..a90af8f15bdc  a90af8f15bdc9449ee2d24e1d73fa3f7e8633f81 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sun Nov 21 07:59:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Nov 2021 07:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228494.395426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mohk9-0007J8-Tw; Sun, 21 Nov 2021 07:58:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228494.395426; Sun, 21 Nov 2021 07:58:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mohk9-0007J1-R2; Sun, 21 Nov 2021 07:58:33 +0000
Received: by outflank-mailman (input) for mailman id 228494;
 Sun, 21 Nov 2021 07:58:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mohk8-0007Ir-FW; Sun, 21 Nov 2021 07:58:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mohk8-0007iN-7J; Sun, 21 Nov 2021 07:58:32 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mohk7-00084s-TB; Sun, 21 Nov 2021 07:58:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mohk7-0005cP-Sf; Sun, 21 Nov 2021 07:58:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=28aaqZlc8G9EDZVRmc3XMqZQjriJJ3dlv6eZH6n0S0w=; b=vzDaSlWrdUdfg6arXQddlg5hD0
	Au57GdnS1+pbIz3kvwrJv3ZzZ0g+PCNa0hX5mGIhOfQN/d0SUQ6YGp++56eq5dvu0Vz8rh+kQEPXq
	ezC6x2+NqD86mOrRTHADP1x6esLMoa9zzGaNlgVv82v8VlEOJ5jdkcOP3Ui+v3pZdp0w=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166236-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166236: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=c7820f15091451f71e960337620e88e81dd3f2e2
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Nov 2021 07:58:31 +0000

flight 166236 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166236/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              c7820f15091451f71e960337620e88e81dd3f2e2
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  499 days
Failing since        151818  2020-07-11 04:18:52 Z  498 days  484 attempts
Testing same since   166203  2021-11-20 04:21:26 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Vasiliy Ulyanov <vulyanov@suse.de>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 84098 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Nov 21 09:08:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Nov 2021 09:08:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228513.395467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moipc-00066y-6M; Sun, 21 Nov 2021 09:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228513.395467; Sun, 21 Nov 2021 09:08:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moipc-00066r-34; Sun, 21 Nov 2021 09:08:16 +0000
Received: by outflank-mailman (input) for mailman id 228513;
 Sun, 21 Nov 2021 09:08:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moipa-00066h-Np; Sun, 21 Nov 2021 09:08:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moipa-0000xd-GD; Sun, 21 Nov 2021 09:08:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moipa-0002NR-5x; Sun, 21 Nov 2021 09:08:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moipa-0005WU-5P; Sun, 21 Nov 2021 09:08:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=f9xAylxQRe8VuJl7FrwmLvU1Ywo5aDi0+6CnqrwVrkI=; b=E/nOoJP0bq0pXyDRb9hhZQjexE
	/JVhKs5HpkrqVumU/OnUSKz0xRM50BSpm00aYPRAdc+6f5/REDbikn9+b77dSPn3A/2ulcdzVyUMv
	Yp/1K1UCB3Pb+hbfJ1BjyqMQG9xmJ9TRs/H48l2lxl8OsIEg5rG8OjZ6cGr1acGAQHNs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166214-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166214: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-examine:memdisk-try-append:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
X-Osstest-Versions-That:
    xen=24d7cc416bba1f88da4c7b2649ac32486229b97b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Nov 2021 09:08:14 +0000

flight 166214 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166214/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-examine    4 memdisk-try-append fail in 166206 pass in 166214
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166206

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166196
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166196
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166196
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166196
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166196
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166196
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166196
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166196
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166196
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166196
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166196
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166196
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass

version targeted for testing:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9
baseline version:
 xen                  24d7cc416bba1f88da4c7b2649ac32486229b97b

Last test of basis   166196  2021-11-19 18:39:14 Z    1 days
Testing same since   166206  2021-11-20 10:06:49 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   24d7cc416b..be12fcca8b  be12fcca8b784e456df3adedbffe657d753c5ff9 -> master


From xen-devel-bounces@lists.xenproject.org Sun Nov 21 10:19:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Nov 2021 10:19:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228522.395485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mojvn-0004Sn-JL; Sun, 21 Nov 2021 10:18:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228522.395485; Sun, 21 Nov 2021 10:18:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mojvn-0004Sg-Fz; Sun, 21 Nov 2021 10:18:43 +0000
Received: by outflank-mailman (input) for mailman id 228522;
 Sun, 21 Nov 2021 10:18:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mojvm-0004SW-0i; Sun, 21 Nov 2021 10:18:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mojvl-00029u-PK; Sun, 21 Nov 2021 10:18:41 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mojvl-00053d-GA; Sun, 21 Nov 2021 10:18:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mojvl-0003Q2-Fd; Sun, 21 Nov 2021 10:18:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=jHOL4otaHCKmc0RbPn9DhGlo3QEWFUqZMy0gaDf7QEI=; b=mKBRAX3wOXalk0EuxwRvQHBrrE
	T/wqODWJWJ8aowG35ta6/2WjH9iRkOMBZzBbB18lFu6cofRSd2NS4sNZnG5qOiwNvbtZdUp/yKEtq
	9hMZqhkGEcpCh0xta6DRqsU+KDgWM+vzTBGCr5rHzVQPousgGoQ1wg9NiovRLdysXPag=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166258-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-coverity test] 166258: all pass - PUSHED
X-Osstest-Versions-This:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
X-Osstest-Versions-That:
    xen=2d72d2784eb71d8532bfbd6462d261739c9e82e4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Nov 2021 10:18:41 +0000

flight 166258 xen-unstable-coverity real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166258/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9
baseline version:
 xen                  2d72d2784eb71d8532bfbd6462d261739c9e82e4

Last test of basis   166165  2021-11-17 09:18:30 Z    4 days
Testing same since   166258  2021-11-21 09:18:28 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@citrix.com>
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Nick Rosbrook <rosbrookn@ainfosec.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 coverity-amd64                                               pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   2d72d2784e..be12fcca8b  be12fcca8b784e456df3adedbffe657d753c5ff9 -> coverity-tested/smoke


From xen-devel-bounces@lists.xenproject.org Sun Nov 21 10:26:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Nov 2021 10:26:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228528.395498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mok2p-0005qu-BU; Sun, 21 Nov 2021 10:25:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228528.395498; Sun, 21 Nov 2021 10:25:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mok2p-0005qn-8T; Sun, 21 Nov 2021 10:25:59 +0000
Received: by outflank-mailman (input) for mailman id 228528;
 Sun, 21 Nov 2021 10:25:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mok2o-0005qd-Bh; Sun, 21 Nov 2021 10:25:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mok2n-0002GA-RQ; Sun, 21 Nov 2021 10:25:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mok2n-0005WA-JT; Sun, 21 Nov 2021 10:25:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mok2n-0000Ma-Iy; Sun, 21 Nov 2021 10:25:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ofgHnoZqMDfniC/cynHa8gzXfx2udQAoZPNUOKh1BlY=; b=QFUnVBixSGEV+6/gycH8vGUVD5
	0dHZjHFkE0E4OcFyAEVc0vBmegnaS7EZR4vY7DqiQ7mtwe++7dclYeTtxHOUs99+kAJtWLlAWbg8m
	ixvYAYTV/bcESKv/tkZArFEVFYrqTu8tmR512kC6AWUj1Gpyi95/jFGdT30e1gmu9QXc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166220-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166220: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=923dcc5eb0c111eccd51cc7ce1658537e3c38b25
X-Osstest-Versions-That:
    linux=a90af8f15bdc9449ee2d24e1d73fa3f7e8633f81
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Nov 2021 10:25:57 +0000

flight 166220 linux-linus real [real]
flight 166257 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166220/
http://logs.test-lab.xenproject.org/osstest/logs/166257/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-qcow2  8 xen-boot          fail pass in 166257-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail in 166257 like 166208
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check fail in 166257 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166208
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166208
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166208
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166208
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166208
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat    fail  like 166208
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166208
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166208
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                923dcc5eb0c111eccd51cc7ce1658537e3c38b25
baseline version:
 linux                a90af8f15bdc9449ee2d24e1d73fa3f7e8633f81

Last test of basis   166208  2021-11-20 12:48:59 Z    0 days
Testing same since   166220  2021-11-21 01:41:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alessandro Rubini <rubini@gnudd.com>
  Alexander Egorenkov <egorenar@linux.ibm.com>
  Alexander Mikhalitsyn <alexander.mikhalitsyn@virtuozzo.com>
  Alistair Delva <adelva@google.com>
  Andrew Morton <akpm@linux-foundation.org>
  Ard Biesheuvel <ardb@kernel.org>
  Arnd Bergmann <arnd@arndb.de>
  Baoquan He <bhe@redhat.com>
  Basavaraj Natikar <Basavaraj.Natikar@amd.com>
  Bjorn Andersson <bjorn.andersson@linaro.org>
  Brian Cain <bcain@codeaurora.org>
  Bui Quang Minh <minhquangbui99@gmail.com>
  Christian Borntraeger <borntraeger@linux.ibm.com>
  David Hildenbrand <david@redhat.com>
  Heiko Carstens <hca@linux.ibm.com>
  Jens Axboe <axboe@kernel.dk>
  Jonathan Corbet <corbet@lwn.net>
  Julian Braha <julianbraha@gmail.com>
  Kees Cook <keescook@chromium.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Luiz Angelo Daros de Luca <luizluca@gmail.com>
  Manfred Spraul <manfred@colorfullife.com>
  Marco Elver <elver@google.com>
  Mario Limonciello <mario.limonciello@amd.com>
  Masahiro Yamada <masahiroy@kernel.org>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Matthew Wilcox <willy@infradead.org>
  Mina Almasry <almasrymina@google.com>
  Ming Lei <ming.lei@redhat.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Nathan Chancellor <nathan@kernel.org>
  Paulo Alcantara (SUSE) <pc@cjr.nz>
  Paulo Alcantara <pc@cjr.nz>
  Prathamesh Shete <pshete@nvidia.com>
  Qing Wang <wangqing@vivo.com>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
  Rustam Kovhaev <rkovhaev@gmail.com>
  SeongJae Park <sj@kernel.org>
  Serge Hallyn <serge@hallyn.com>
  Sergio Paracuellos <sergio.paracuellos@gmail.com>
  Steev Klimaszewski <steev@kali.org>
  Stefan Haberland <sth@linux.ibm.com>
  Steve French <stfrench@microsoft.com>
  Steven Rostedt (VMware) <rostedt@goodmis.org>
  Sven Peter <sven@svenpeter.dev>
  Sven Schnelle <svens@linux.ibm.com>
  Tejun Heo <tj@kernel.org>
  Vasily Gorbik <gor@linux.ibm.com>
  Vineeth Vijayan <vneethv@linux.ibm.com>
  Vlastimil Babka <vbabka@suse.cz>
  Yu Kuai <yukuai3@huawei.com>
  Yunfeng Ye <yeyunfeng@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   a90af8f15bdc..923dcc5eb0c1  923dcc5eb0c111eccd51cc7ce1658537e3c38b25 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sun Nov 21 17:05:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Nov 2021 17:05:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228539.395514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moqH4-0007Xl-4D; Sun, 21 Nov 2021 17:05:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228539.395514; Sun, 21 Nov 2021 17:05:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moqH3-0007Xe-VM; Sun, 21 Nov 2021 17:05:05 +0000
Received: by outflank-mailman (input) for mailman id 228539;
 Sun, 21 Nov 2021 17:05:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moqH3-0007XU-8K; Sun, 21 Nov 2021 17:05:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moqH2-0000rP-R0; Sun, 21 Nov 2021 17:05:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moqH2-0003zu-Hw; Sun, 21 Nov 2021 17:05:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moqH2-0005DT-EV; Sun, 21 Nov 2021 17:05:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EeAg32gkX0f9poF5DdMC1ZTqLXSc1frvie+6SQYluB4=; b=CYQlw234M5t1EzJ9l0YSVEp7N2
	GNGBoUYZz10CSbmc/DTDLOV6LYYDQIv5Ge1Op6ZwWk2SVW6ZwPRBZbmrzIGK8tl7GSJ1jkLxSD7OZ
	+qQu/1YknPfY/DsW3j92dX/ufCqfaGawh1ky3Ir8Tf+6za53/UNSF6c8DDXSh3s/QxsQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166256-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166256: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Nov 2021 17:05:04 +0000

flight 166256 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166256/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166214
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166214
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166214
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166214
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166214
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166214
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166214
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166214
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166214
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166214
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166214
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166214
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass

version targeted for testing:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166256  2021-11-21 09:10:16 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 00:07:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 00:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228547.395527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mowrd-0002tn-Ro; Mon, 22 Nov 2021 00:07:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228547.395527; Mon, 22 Nov 2021 00:07:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mowrd-0002tP-Lm; Mon, 22 Nov 2021 00:07:17 +0000
Received: by outflank-mailman (input) for mailman id 228547;
 Mon, 22 Nov 2021 00:07:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mowrc-0002tF-9d; Mon, 22 Nov 2021 00:07:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mowrc-0008L3-34; Mon, 22 Nov 2021 00:07:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mowrb-0003Xu-Pj; Mon, 22 Nov 2021 00:07:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mowrb-0000Wt-PG; Mon, 22 Nov 2021 00:07:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0XidqMsmXRfL57yHj9ixnkOPh3z9D5OqpcNh37/WYv8=; b=OO/DHtdw23LqU+xJpDuRiFPelZ
	Eb06OyUOLtym/ANh+CQ8SSwcuTNmR1oJP5w3oM0QJDFgLGS5H0qFx63GHidgre/fcgpmEyxUQKtCO
	RRQ7dNx4VjphGds87RDkjhA30zvHfdEWqQVwPOOHeCgNZt7xXko0jXg8GEwBo06WwyuM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166259-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-5.4 test] 166259: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-5.4:test-amd64-amd64-examine:memdisk-try-append:fail:heisenbug
    linux-5.4:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:guest-start/debianhvm.repeat:fail:heisenbug
    linux-5.4:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5c088fba39aff97ae9175948356ef3292369671c
X-Osstest-Versions-That:
    linux=17efa1a44c7f615e9ec321f82138e7711690e7a1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Nov 2021 00:07:15 +0000

flight 166259 linux-5.4 real [real]
flight 166262 linux-5.4 real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166259/
http://logs.test-lab.xenproject.org/osstest/logs/166262/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-examine      4 memdisk-try-append  fail pass in 166262-retest
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166262-retest
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 18 guest-start/debianhvm.repeat fail pass in 166262-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166164
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166164
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166164
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166164
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166164
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166164
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166164
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166164
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166164
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166164
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166164
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166164
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                5c088fba39aff97ae9175948356ef3292369671c
baseline version:
 linux                17efa1a44c7f615e9ec321f82138e7711690e7a1

Last test of basis   166164  2021-11-17 09:13:13 Z    4 days
Testing same since   166259  2021-11-21 13:13:36 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adrian Hunter <adrian.hunter@intel.com>
  Dmitry Osipenko <digetx@gmail.com>
  Florian Fainelli <f.fainelli@gmail.com>
  Fox Chen <foxhlchen@gmail.com>
  Gao Xiang <hsiangkao@linux.alibaba.com>
  Gao Xiang <xiang@kernel.org>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guenter Roeck <linux@roeck-us.net>
  Helge Deller <deller@gmx.de>
  Jaegeuk Kim <jaegeuk@kernel.org>
  Kees Cook <keescook@chromium.org>
  Maciej W. Rozycki <macro@orcam.me.uk>
  Marc Zyngier <maz@kernel.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Matt Merhar <mattmerhar@protonmail.com> # Ouya T30
  Nick Desaulniers <ndesaulniers@google.com>
  Nicolas Chauvet <kwizart@gmail.com> # PAZ00 T20 and TK1 T124
  Orson Zhai <orson.zhai@unisoc.com>
  Peter Geis <pgwipeout@gmail.com> # Ouya T30
  Rudi Heitbaum <rudi@heitbaum.com>
  Rui Salvaterra <rsalvaterra@gmail.com>
  Scott Bruce <smbruce@gmail.com>
  Shaoying Xu <shaoyi@amazon.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Sven Schnelle <svens@stackframe.org>
  Theodore Ts'o <tytso@mit.edu>
  Thierry Reding <treding@nvidia.com>
  Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  Thomas Gleixner <tglx@linutronix.de>
  Yue Hu <huyue2@yulong.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            fail    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   17efa1a44c7f..5c088fba39af  5c088fba39aff97ae9175948356ef3292369671c -> tested/linux-5.4


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 01:07:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 01:07:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228554.395540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moxnO-0002F5-I6; Mon, 22 Nov 2021 01:06:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228554.395540; Mon, 22 Nov 2021 01:06:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1moxnO-0002Ey-F8; Mon, 22 Nov 2021 01:06:58 +0000
Received: by outflank-mailman (input) for mailman id 228554;
 Mon, 22 Nov 2021 01:06:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moxnM-0002Eo-S7; Mon, 22 Nov 2021 01:06:56 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moxnM-0002Rz-Hl; Mon, 22 Nov 2021 01:06:56 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1moxnM-0005Pm-4h; Mon, 22 Nov 2021 01:06:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1moxnM-0002Dk-4C; Mon, 22 Nov 2021 01:06:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=q1z9LlUeEWJYt7ycIsbjr8ee29rFcJ8xLv19SwkUdt4=; b=sgRPrryveGKsNL/2p6YzJ95flQ
	Rns5hItNPBYw1yjKn/MR3dTnbaHkjmTOYpidbhTg4wheR60rTFTV9u5IHDWMVmbzQr044cO7I0r+W
	g70UKaXWh+6xbk7eG0OQBuUJStVkqqZIR1PmNnU+ZxfH94ytfwXTv3LiQOHNWuaymDyw=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166260-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166260: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=c5fbdd60cf1fb52f01bdfe342b6fa65d5343e1b1
X-Osstest-Versions-That:
    qemuu=8627edfb3f1fca24a96a0954148885c3241c10f8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Nov 2021 01:06:56 +0000

flight 166260 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166260/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166204
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166204
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166204
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166204
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166204
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166204
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166204
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166204
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                c5fbdd60cf1fb52f01bdfe342b6fa65d5343e1b1
baseline version:
 qemuu                8627edfb3f1fca24a96a0954148885c3241c10f8

Last test of basis   166204  2021-11-20 05:05:11 Z    1 days
Testing same since   166260  2021-11-21 16:08:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   8627edfb3f..c5fbdd60cf  c5fbdd60cf1fb52f01bdfe342b6fa65d5343e1b1 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 06:18:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 06:18:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228560.395555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp2eT-0005Ly-MK; Mon, 22 Nov 2021 06:18:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228560.395555; Mon, 22 Nov 2021 06:18:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp2eT-0005Lr-IV; Mon, 22 Nov 2021 06:18:05 +0000
Received: by outflank-mailman (input) for mailman id 228560;
 Mon, 22 Nov 2021 06:18:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pHiU=QJ=arm.com=Wei.Chen@srs-se1.protection.inumbo.net>)
 id 1mp2eS-0005Ll-7M
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 06:18:04 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02on061c.outbound.protection.outlook.com
 [2a01:111:f400:fe07::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id efce2172-4b5b-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 07:18:01 +0100 (CET)
Received: from AS9PR05CA0049.eurprd05.prod.outlook.com (2603:10a6:20b:489::9)
 by AM7PR08MB5383.eurprd08.prod.outlook.com (2603:10a6:20b:102::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 06:17:55 +0000
Received: from AM5EUR03FT049.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:489:cafe::5c) by AS9PR05CA0049.outlook.office365.com
 (2603:10a6:20b:489::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Mon, 22 Nov 2021 06:17:55 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT049.mail.protection.outlook.com (10.152.17.130) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 06:17:54 +0000
Received: ("Tessian outbound dbb52aec1fa6:v110");
 Mon, 22 Nov 2021 06:17:54 +0000
Received: from 9757cb2f4bac.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 8589E4F5-153E-4D8C-BA14-3711E810DAAA.1; 
 Mon, 22 Nov 2021 06:17:48 +0000
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9757cb2f4bac.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 22 Nov 2021 06:17:48 +0000
Received: from AS8PR08MB6853.eurprd08.prod.outlook.com (2603:10a6:20b:39e::19)
 by AM5PR0802MB2484.eurprd08.prod.outlook.com (2603:10a6:203:a1::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 06:17:39 +0000
Received: from AS8PR08MB6853.eurprd08.prod.outlook.com
 ([fe80::653f:85ca:8df1:43ea]) by AS8PR08MB6853.eurprd08.prod.outlook.com
 ([fe80::653f:85ca:8df1:43ea%8]) with mapi id 15.20.4669.022; Mon, 22 Nov 2021
 06:17:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: efce2172-4b5b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RWtEHi1TYYJnQrO6Z9kmB231k4cmmji7H4nQiIQ07QA=;
 b=mmQUdA+LKM7cnDwGDXYOEvy4qHG3Dzyqb9u6LAxIyqsUpNX5ipYAbddQ5YGES+/DcjyU6DhEmXX4q4L0meLrEOvpuaZdcvS04CR3Y6LqdJ0vHncLZqsFQjNyiDjSZsKqu2g2jvn/RuKU/XJshLiPzhFGCUiDq2SYt+ViyDF7Xhk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RZ80Lqg9C4H6avbTOtSVKyLU/po3ANfAF/5iIPLHJt63nYXCr5zfXtbnn+bXbknGCyGXfhU7X6AhpTdXWbq56uI1fU/Uz8iH0v1zrzyFbSuwOBqcZIC4xZ3XGhsIdqcqzVkyMXOJKEr3+URXpMoK7Q17eVuX3wLB3Vstg2JA6uU9VgTun4+tLopGJq2533vx0LYC/ZeejWiq1Xmu5GYo3U4cToiGeycM1tCGkvl5l/Nw7n2Ba1FLrM4IGuJWDkepE7UF+vBUtpGddw05LlwyBCPSNpqwwuSCSMH6y8yglDr4CcoJjuIcSbWzZhZqx6D6K2LiU10BfqALIC/fBdtZlA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RWtEHi1TYYJnQrO6Z9kmB231k4cmmji7H4nQiIQ07QA=;
 b=Sr8pv7vhTPafbMEuqGW2+9/a12IEi397zZvYU59kOsCak9mQSc+X6MNC1iM7mTJ+yfdJgoJqv0T5VGdE9lAF3FDdwzCejQPICdabJJ1b/gmup/81QxhLa4CyfSoir6HL+UZR3G/9lAIm8pD5T2syemv6xDDnIrAAEnGLIvRrEjKeAsA4K8JzF1VmrJWn4eUgqwy9Co51UEQmCTQjE1TCyI0XUaBZU/s4j/qGstW49+ZSSwz1lEjmrmNnq2ya3U1dOfvTfCri7oVU/oe5wLa/aGib/evLArah2PpM1obdx+PS/dBV9pWdGSJelAZb+i2n097gi/M6XjqIHyE+PyQM5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RWtEHi1TYYJnQrO6Z9kmB231k4cmmji7H4nQiIQ07QA=;
 b=mmQUdA+LKM7cnDwGDXYOEvy4qHG3Dzyqb9u6LAxIyqsUpNX5ipYAbddQ5YGES+/DcjyU6DhEmXX4q4L0meLrEOvpuaZdcvS04CR3Y6LqdJ0vHncLZqsFQjNyiDjSZsKqu2g2jvn/RuKU/XJshLiPzhFGCUiDq2SYt+ViyDF7Xhk=
From: Wei Chen <Wei.Chen@arm.com>
To: Andrew Cooper <amc96@srcf.net>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH] xen/smp: Support NULL IPI function pointers
Thread-Topic: [PATCH] xen/smp: Support NULL IPI function pointers
Thread-Index: AQHX29MbtakJhW21+kadE2GfQer0SKwJDiCAgAAKIICABfsJwA==
Date: Mon, 22 Nov 2021 06:17:39 +0000
Message-ID:
 <AS8PR08MB6853ED0FC8A586AE211B76979E9F9@AS8PR08MB6853.eurprd08.prod.outlook.com>
References: <20211117164852.16394-1-andrew.cooper3@citrix.com>
 <c1dc1fed-8f07-5074-592e-b240f2bbdd44@suse.com>
 <9ce22608-a1ef-adbd-6455-8ae1af88b388@srcf.net>
In-Reply-To: <9ce22608-a1ef-adbd-6455-8ae1af88b388@srcf.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: E66CD8949DD29E468046A4A74C0D17EF.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 2299789e-bf97-4a8c-5691-08d9ad7fd20e
x-ms-traffictypediagnostic: AM5PR0802MB2484:|AM7PR08MB5383:
X-Microsoft-Antispam-PRVS:
	<AM7PR08MB5383F60BAE28512C296D27DA9E9F9@AM7PR08MB5383.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 wPGXZyNmjtTQ+8dxca0ryvDtEIjmhDOR9EoM40yUDIDz/2K2AeB1rcKIhWKoHLdYCT9ECwlMhEfhzcc30/dREZFEPHaNcBTVwMEIUW9kKUuPmcjypitVXBYV2fMQmh+V7w2d2iYVsxMhARUjocXGV2RGtmcppldHZuw19GBJFR0UucbWQvTkOHbCxz4Dzz4mOvatKfHWLlHRYrpwg21frTm7XNh/yGoZ51pNMXNJ23yz8gcveJHv3er1dUUEwLUvq9rJDv+R64D2ECk0fICx9qP7XWQihbQk76HDrqCB91j5Mn4Q6q5IbJv/nfphhT/xD25jOSl6EVVGvZOT4Ro5Zb6ufLH+2CG2UoMaCQoLchwOX008UtpLx71wuTg6hpFO3DhQP/0KPVlW4VBNS4+p9Wqp8vguatohhQs2kZWg4+iwGyHfGB1KWqE1OuyV1amYOyQMijW6HgrZvaRJHCuoMmPY76I0t7luLATmzjYcF9U/nENJt1cfjwUOZ8udzw3V7VsnZj5rJYL9ZHEJr0Z7Ckku5/INupAcUI5yzyQ5ddyd2hfbupr1QhNjmOBBZnPg3Cctvsne6V/eAJEhSKMsAvXV5TzDoTWAuoF0hNVOfq9xZLWYDegibrbIRzwQvjuqP4PZEoF2qQ5HzzcBO80jynZx1mlsnYLLaCO5CYeKcvXMGc3O8NwqLb2ejKsTvp67NzeKwGaETUZ90hCsTXUWBQ==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6853.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(55016002)(71200400001)(66946007)(66476007)(86362001)(5660300002)(8936002)(316002)(6506007)(53546011)(9686003)(54906003)(110136005)(33656002)(7696005)(186003)(83380400001)(38100700002)(122000001)(26005)(66446008)(64756008)(52536014)(66556008)(38070700005)(4326008)(508600001)(76116006)(2906002);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2484
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT049.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8b7f9895-568f-42e4-0019-08d9ad7fc917
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	XOCxHd4JAgMUsqnkBRscqLibLf/H6FrILyQJ53n9Hi9bfqAAfDel0kVDZTjQSkI75kqsM3og3pRnrr0q7cXfwOlCmeAP22ZO4r+PWaqCefgVZjk24kx+2vfRQ9SfenMp8MubczI13iNKghjCFAY7LbJaXU03EHYhYJSrExTl3svj5jYXJhy2dF+XGsRZz5B/ziPY4aHU0PE6o8TGo06pGJKUDv4C4ura6ly8Qv8edrCScXEoOUnG19lImEpAV4YlM3rncymnVXBGMIVw8SF0ZCwf1Y1K6EdjbGVi/1TxNJUikMO9n8YCjYeawM2mNRW1iZNjySxAK3qe3yRSeAUjqtx3U/xGAu7TDuHwUwEoMZw7ijbMvSC/J3WJVC5EzgGH5woezYeiCDvwpWqzYHhsYpDlASwdK92Hf7evGm47Dz4y2ZKfZaPOrSKKuSOg8QoMoEPJgmV07sPbPk/L3RYjj1yNyORWSxZX4Z70iaXA+BPuOUpkJoT2Mr2JAXzZyHzYWXWATuyg35UWaJ8rCvrFTB20Ow56441Ep6mzmnEXvzQcuKJ70ZWJiEnWYC3YIDYoRwWWDue7gGzLZA2wby7TyMe5VKUmRaBLU+X69i6U9wwBE5015ZMh7ESYPFTJ++zTs99sSmld97QZVNMbmotV/Mx9oK6wG66febCpzIgbtgg/vQcZb0n0Zpy83gjlmsGay4U/CZZfca87aGx2U9gNag==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(70206006)(33656002)(7696005)(81166007)(55016002)(26005)(83380400001)(8676002)(47076005)(508600001)(86362001)(110136005)(36860700001)(54906003)(6506007)(2906002)(336012)(356005)(82310400003)(186003)(53546011)(70586007)(4326008)(8936002)(52536014)(9686003)(5660300002)(316002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 06:17:54.5682
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2299789e-bf97-4a8c-5691-08d9ad7fd20e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT049.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5383

SGkgQW5kcmV3LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHJl
dyBDb29wZXIgPGFtYzk2QHNyY2YubmV0Pg0KPiBTZW50OiAyMDIx5bm0MTHmnIgxOOaXpSAxODoz
NQ0KPiBUbzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPjsgQW5kcmV3IENvb3Blcg0K
PiA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IFdlaSBDaGVuIDxXZWkuQ2hlbkBhcm0uY29t
Pg0KPiBDYzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+OyBXZWkgTGl1
IDx3bEB4ZW4ub3JnPjsgWGVuLQ0KPiBkZXZlbCA8eGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSB4ZW4vc21wOiBTdXBwb3J0IE5VTEwgSVBJIGZ1
bmN0aW9uIHBvaW50ZXJzDQo+IA0KPiBPbiAxOC8xMS8yMDIxIDA5OjU4LCBKYW4gQmV1bGljaCB3
cm90ZToNCj4gPiBPbiAxNy4xMS4yMDIxIDE3OjQ4LCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPiA+
PiBUaGVyZSBhcmUgc2V2ZXJhbCBjYXNlcyB3aGVyZSB0aGUgYWN0IG9mIGludGVycnVwdGluZyBh
IHJlbW90ZQ0KPiBwcm9jZXNzb3IgaGFzDQo+ID4+IHRoZSByZXF1aXJlZCBzaWRlIGVmZmVjdC4g
IEV4cGxpY2l0bHkgYWxsb3cgTlVMTCBmdW5jdGlvbiBwb2ludGVycyBzbw0KPiB0aGUNCj4gPj4g
Y2FsbGluZyBjb2RlIGRvZXNuJ3QgaGF2ZSB0byBwcm92aWRlIGEgc3R1YiBpbXBsZW1lbnRhdGlv
bi4NCj4gPj4NCj4gPj4gU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl
cjNAY2l0cml4LmNvbT4NCj4gPj4gLS0tDQo+ID4+IENDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hA
c3VzZS5jb20+DQo+ID4+IENDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNv
bT4NCj4gPj4gQ0M6IFdlaSBMaXUgPHdsQHhlbi5vcmc+DQo+ID4+DQo+ID4+IFRoZSB3YWl0IHBh
cmFtZXRlciBpcyBhIGxpdHRsZSB3ZWlyZC4gIEl0IHNlcnZlcyBkb3VibGUgZHV0eSBhbmQgd2ls
bA0KPiBjb25maXJtDQo+ID4+IHRoYXQgdGhlIElQSSBoYXMgYmVlbiB0YWtlbi4gIEFsbCBpdCBk
b2VzIGlzIGxldCB5b3UgY29udHJvbCB3aGV0aGVyDQo+IHlvdSBhbHNvDQo+ID4+IHdhaXQgZm9y
IHRoZSBoYW5kbGVyIHRvIGNvbXBsZXRlIGZpcnN0LiAgQXMgc3VjaCwgaXQgaXMgZWZmZWN0aXZl
bHkNCj4gdXNlbGVzcw0KPiA+PiB3aXRoIGEgc3R1YiBmdW5jdGlvbi4NCj4gPj4NCj4gPj4gSSBk
b24ndCBwYXJ0aWN1bGFybHkgbGlrZSBmb2xkaW5nIGludG8gdGhlIC53YWl0KCkgcGF0aCBsaWtl
IHRoYXQsIGJ1dA0KPiBJDQo+ID4+IGRpc2xpa2UgaXQgbGVzcyB0aGFuIGFuIGlmKCkvZWxzZSBp
ZigpIGFuZCBhZGRpbmcgYSAzcmQNCj4gY3B1bWFza19jbGVhcl9jcHUoKQ0KPiA+PiBpbnRvIHRo
ZSBjb25mdXNpb24gd2hpY2ggaXMgdGhpcyBsb2dpYy4NCj4gPiBJIGNhbiBhY2NlcHQgdGhpcywg
YWxiZWl0IHBlcnNvbmFsbHkgSSB3b3VsZCBoYXZlIHByZWZlcnJlZCB0aGUgZXh0cmENCj4gaWYo
KQ0KPiA+IG92ZXIgdGhlIGdvdG8uDQo+IA0KPiBKdXN0IHNvIGl0J3MgYmVlbiBwb3N0ZWQuwqAg
VGhpcyBpcyB3aGF0IHRoZSBpZi9lbHNlIGxvb2tzIGxpa2U6DQo+IA0KPiBkaWZmIC0tZ2l0IGEv
eGVuL2NvbW1vbi9zbXAuYyBiL3hlbi9jb21tb24vc21wLmMNCj4gaW5kZXggNzlmNGViZDE0NTAy
Li5mZjU2OWJiZTlkNTMgMTAwNjQ0DQo+IC0tLSBhL3hlbi9jb21tb24vc21wLmMNCj4gKysrIGIv
eGVuL2NvbW1vbi9zbXAuYw0KPiBAQCAtODcsNyArODcsMTEgQEAgdm9pZCBzbXBfY2FsbF9mdW5j
dGlvbl9pbnRlcnJ1cHQodm9pZCkNCj4gDQo+IMKgwqDCoMKgIGlycV9lbnRlcigpOw0KPiANCj4g
LcKgwqDCoCBpZiAoIGNhbGxfZGF0YS53YWl0ICkNCj4gK8KgwqDCoCBpZiAoIHVubGlrZWx5KCFm
dW5jKSApDQo+ICvCoMKgwqAgew0KPiArwqDCoMKgwqDCoMKgwqAgY3B1bWFza19jbGVhcl9jcHUo
Y3B1LCAmY2FsbF9kYXRhLnNlbGVjdGVkKTsNCj4gK8KgwqDCoCB9DQo+ICvCoMKgwqAgZWxzZSBp
ZiAoIGNhbGxfZGF0YS53YWl0ICkNCj4gwqDCoMKgwqAgew0KPiDCoMKgwqDCoMKgwqDCoMKgICgq
ZnVuYykoaW5mbyk7DQo+IMKgwqDCoMKgwqDCoMKgwqAgc21wX21iKCk7DQo+IA0KPiANCj4gR0ND
IGRvZXMgbWFuYWdlIHRvIGZvbGQgdGhpcyBpbnRvIHRoZSBnb3RvIHZlcnNpb24gcHJlc2VudGVk
IG9yaWdpbmFsbHkuDQo+IA0KPiBJZiBldmVyeW9uZSBlbHNlIHRoaW5rcyB0aGlzIHZlcnNpb24g
aXMgY2xlYXJlciB0byByZWFkIHRoZW4gSSdsbCBnbw0KPiB3aXRoIGl0Lg0KDQpUaGlzIHZlcnNp
b24gaXMgbXVjaCBjbGVhcmVyIHRvIHJlYWQuIEJ1dCBpZiB0aGVyZSB3aWxsIGJlIHNvbWUgY29k
ZQ0KY29tbWVudHMgaW4gZ290byB2ZXJzaW9uIHRvIG1ha2UgaXQgZWFzeSB0byByZWFkLiBJIGFt
IG9rIGZvciBlaXRoZXIuDQoNCj4gDQo+IH5BbmRyZXcNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 06:23:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 06:23:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228567.395566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp2j9-0006ms-Bo; Mon, 22 Nov 2021 06:22:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228567.395566; Mon, 22 Nov 2021 06:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp2j9-0006ml-8G; Mon, 22 Nov 2021 06:22:55 +0000
Received: by outflank-mailman (input) for mailman id 228567;
 Mon, 22 Nov 2021 06:22:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mp2j8-0006mb-7X; Mon, 22 Nov 2021 06:22:54 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mp2j8-0000aL-1s; Mon, 22 Nov 2021 06:22:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mp2j7-00086e-Kz; Mon, 22 Nov 2021 06:22:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mp2j7-00032W-KG; Mon, 22 Nov 2021 06:22:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=wYicw8bZZNV7Kc4kPPzv7utUemiuS3FamUXsTODOstY=; b=KPvgE0sOqTM7TXbUDADMCEuoxp
	t7ja0emNZUN9uJaiA6SaciObpoGisEXgoWwy6rjPldIAYG05FO2rTMx8BKbdENmz9qjbNCEs3OHju
	hBpOFrNdPqxllq59gcm0jMAQvLV3HE0oFWoW3QP2hNVIZx2KI/8ijPnCuXb5wXUXMgKo=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166261-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166261: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-xl-vhd:guest-start.2:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=40c93d7fff6ff05c1c4c9f9c01a067eac6a791b1
X-Osstest-Versions-That:
    linux=923dcc5eb0c111eccd51cc7ce1658537e3c38b25
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Nov 2021 06:22:53 +0000

flight 166261 linux-linus real [real]
flight 166265 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166261/
http://logs.test-lab.xenproject.org/osstest/logs/166265/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-xl-vhd      18 guest-start.2       fail pass in 166265-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail blocked in 166220
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166220
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166220
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166220
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166220
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166220
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166220
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166220
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                40c93d7fff6ff05c1c4c9f9c01a067eac6a791b1
baseline version:
 linux                923dcc5eb0c111eccd51cc7ce1658537e3c38b25

Last test of basis   166220  2021-11-21 01:41:52 Z    1 days
Testing same since   166261  2021-11-21 20:12:00 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexander Antonov <alexander.antonov@linux.intel.com>
  Alexey Kardashevskiy <aik@ozlabs.ru>
  Anjaneya Chagam <anjaneya.chagam@intel.com>
  Borislav Petkov <bp@suse.de>
  Christian Zigotzky <chzigotzky@xenosoft.de>
  Christophe Leroy <christophe.leroy@csgroup.eu>
  Cédric Le Goater <clg@kaod.org>
  Dave Hansen <dave.hansen@linux.intel.com>
  Geert Uytterhoeven <geert@linux-m68k.org>
  Greg Kurz <groug@kaod.org>
  Jarkko Sakkinen <jarkko@kernel.org>
  Kees Cook <keescook@chromium.org>
  Like Xu <likexu@tencent.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Marc Zyngier <maz@kernel.org>
  Masahiro Yamada <masahiroy@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Nicholas Piggin <npiggin@gmail.com>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Reinette Chatre <reinette.chatre@intel.com>
  Song Liu <songliubraving@fb.com>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   923dcc5eb0c1..40c93d7fff6f  40c93d7fff6ff05c1c4c9f9c01a067eac6a791b1 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 06:50:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 06:50:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228574.395580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp39g-0001Rq-AG; Mon, 22 Nov 2021 06:50:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228574.395580; Mon, 22 Nov 2021 06:50:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp39g-0001Rj-7I; Mon, 22 Nov 2021 06:50:20 +0000
Received: by outflank-mailman (input) for mailman id 228574;
 Mon, 22 Nov 2021 06:50:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pHiU=QJ=arm.com=Wei.Chen@srs-se1.protection.inumbo.net>)
 id 1mp39f-0001Rd-5z
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 06:50:19 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20610.outbound.protection.outlook.com
 [2a01:111:f400:7d00::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 733591e3-4b60-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 07:50:17 +0100 (CET)
Received: from AM5PR04CA0007.eurprd04.prod.outlook.com (2603:10a6:206:1::20)
 by DB6PR0802MB2277.eurprd08.prod.outlook.com (2603:10a6:4:82::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 06:50:13 +0000
Received: from VE1EUR03FT038.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:206:1:cafe::85) by AM5PR04CA0007.outlook.office365.com
 (2603:10a6:206:1::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Mon, 22 Nov 2021 06:50:13 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT038.mail.protection.outlook.com (10.152.19.112) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 06:50:12 +0000
Received: ("Tessian outbound f493ab4f1fb8:v110");
 Mon, 22 Nov 2021 06:50:11 +0000
Received: from dcc87c63711a.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 6D109366-0889-40E1-928C-215621443B1F.1; 
 Mon, 22 Nov 2021 06:50:01 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id dcc87c63711a.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 22 Nov 2021 06:50:01 +0000
Received: from AS8PR08MB6853.eurprd08.prod.outlook.com (2603:10a6:20b:39e::19)
 by AM6PR08MB3608.eurprd08.prod.outlook.com (2603:10a6:20b:51::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 06:49:58 +0000
Received: from AS8PR08MB6853.eurprd08.prod.outlook.com
 ([fe80::653f:85ca:8df1:43ea]) by AS8PR08MB6853.eurprd08.prod.outlook.com
 ([fe80::653f:85ca:8df1:43ea%8]) with mapi id 15.20.4669.022; Mon, 22 Nov 2021
 06:49:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 733591e3-4b60-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ti5sln/VG5sKrPazXFCoo/wNepcbMHImY9p/8jLnE/c=;
 b=W16XELSEhoFKRwEzdF4VLFAoSOeh3HR0WBisGG5lvGPZgpsjck+7TAuJs3tS62i9t2BTH4B7/WfzEbwRH9m1U4WhE9JQsDY2uXmyNloc6I62z0eAdzJ4hbBvy/F9CEJ9eZxP4NCQ64h9jlk+HqPzSqoF+gfy9Q1bXCzz6nmU+zc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YP79ZSfUs1JaC8SendGinyYZXpie/Gmq/9w5PB94Gt3+taXiJzXnF+KkJsm2CTMj40RRkjq3GaTiPRlA0CAkHKNkyEJzG1n4keDlHRUgiDzZsQjIHtG3XoH2SPnqtCF0X0lM94eszepVKFSMSwOxbYTABqwDeSWfmzF8Huj3JePE5MnTQin2FZh4zgFu0gGRHpkY81qkAIQw05zep/03dESzVAOLQKsQ1+mCQtCD/+Pm/kGG+RYALJWvGooSOLMPrykZRpIwmL4R0YGXQCIVd3p7yRNsce/RqSCUiNP+TCbWLJOqS/+E6s+kmQZXZQLUy1A/rARSy+JBI2Ynnti+lw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ti5sln/VG5sKrPazXFCoo/wNepcbMHImY9p/8jLnE/c=;
 b=YQQMtShakEeucps8hqJsqZqcmgjxWDaNwxXRNHmT1epcWgeMFiDoRwSbnaZxMCmw3TsTJwV2mI0je7RYsgyWyH9irsKtuWSeLajnUz6bnD7XHDtOYCko00crWhJnUVi8rABCrl++gEsk88a5nJoI8UJATdPsMNr49nXxa/HT+wIs+JdsOs2e0DhNUeh86xp4itCkk1ja+dfDc0Q44TLQsS8soRvF3mNuzyABYh8+643TiLi2n/pxy9d1/aRz3MiVQ+ruzLZXzB9JKoELe8Z5bHUZbJQybUtljDo9rlEXs+zx8DaPZRh5jz41KQUMRFP+5cKiXblBBILzRSRZS/YmmQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ti5sln/VG5sKrPazXFCoo/wNepcbMHImY9p/8jLnE/c=;
 b=W16XELSEhoFKRwEzdF4VLFAoSOeh3HR0WBisGG5lvGPZgpsjck+7TAuJs3tS62i9t2BTH4B7/WfzEbwRH9m1U4WhE9JQsDY2uXmyNloc6I62z0eAdzJ4hbBvy/F9CEJ9eZxP4NCQ64h9jlk+HqPzSqoF+gfy9Q1bXCzz6nmU+zc=
From: Wei Chen <Wei.Chen@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
	"stefano.stabellini@xilinx.com" <stefano.stabellini@xilinx.com>,
	"julien@xen.org" <julien@xen.org>, "Volodymyr_Babchuk@epam.com"
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Rahul Singh <Rahul.Singh@arm.com>, "ayankuma@xilinx.com"
	<ayankuma@xilinx.com>
Subject: RE: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Thread-Topic: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Thread-Index: AQHX3WXsk0YQ5vQljU+vQqG8YaxnEKwPGkxg
Date: Mon, 22 Nov 2021 06:49:58 +0000
Message-ID:
 <AS8PR08MB6853049F8F76B2CE2222AED39E9F9@AS8PR08MB6853.eurprd08.prod.outlook.com>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
In-Reply-To: <20211119165202.42442-1-ayankuma@xilinx.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: 458DAF5F9296B341A0B1D1B6440C30F6.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: fb4cb313-6734-4b57-313b-08d9ad84550e
x-ms-traffictypediagnostic: AM6PR08MB3608:|DB6PR0802MB2277:
X-Microsoft-Antispam-PRVS:
	<DB6PR0802MB2277DD85C9D950F1F49FED429E9F9@DB6PR0802MB2277.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 JFlqmqOvY8q+yTYmY5QZPlh+51P6WQPprAhIPaEtArqxOHF8Vk2c+wZaQ6PW1TBHxPtvDv1p0UxI62T+P+K9usNAa92qN9I2QR4UdcYfUfpxo7USoMwLZBy8mN4uZwtxM/a+jbjWgishcI784hJfqs+ubthjctxUud2JjhlQ3fhqyzTjgsgMmv4h0NC+9SbVDbjL/B9RqMxE/evPTfEU5zq/9w+NY5MsY7OoUTZi1t3anYxz3uULHn94isEOVmXqC8g9igxB7Ok1yzfUwo3Wh5YbFuI9qMas5kNqhTGeP+1bQakNnnR2iks4GzsYcfEZNYZa7RfIBWk+lfJtuRwB7y91Jc/78Lie+qOI9xKPlBNJGazPuXy44dDHXq5sb+CFr0CI2iIY+TyrUsWYNMiEmwGPFdf6orpIOR9rNL9VeaiM6YkV8woUE5NSPzRgB7Xjl9S6WHpy0TVZskGuxWBA/oNwlVji+KvZm9NDHFD6wkfJwJrajcq2SqG3ejjF4aXCSi1TW6TwLqWP/6pC3pmahmC5opiPdgl3siiRmT+vWLq1SRdgB4WM7mJYUx0CSQu1KBG0HsCXeJDPzm2/BREJpgln3tNg/sS0vBLyqRcR/534pkwgvH8V9cx/mfftxGO/zxYTVPSl4xi8cBXPyNewazxpqDgTCUP4lkvb0sEK6n+lpus06pwFvi2ls1FclBo4fPZONLiR72QldhCKzHDJQTL9XPdhpyz7KkQvTRTs0k/8hghyQ8zVF1pAmaEqhe5w5QkMnJ6Gev8PIIOd/u6E+zPNBDIaIrw7eJkjl58Cysc=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6853.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(122000001)(55016002)(66946007)(76116006)(8936002)(26005)(38070700005)(86362001)(966005)(54906003)(186003)(38100700002)(8676002)(52536014)(316002)(508600001)(9686003)(33656002)(2906002)(5660300002)(83380400001)(7696005)(4326008)(6506007)(53546011)(66476007)(66556008)(110136005)(71200400001)(64756008)(66446008);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3608
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT038.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	978b5122-a6ee-4c58-c1a8-08d9ad844ce2
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	zvNWv2MYJTihIHrowD3IZdVsbJHabGTudylzgDdHrr5zOTY9OjkzcTbmk8pHtttBWUa+86IKuQDKQ8kQXJQwMTwbZd7zTlaI7fiIsJ8hVzLfbUJNou7kwPY+oHyDzkr9KMeBfrVramT+OdMl61h2JsuGLJmNeV16IDsru8Vp0seTXmKrs7zfH+Jvimi+mg1pkeqmWXpVDPQkJXHX1BrV1J3qjf9tHJVOtLs2bl0k2qFVyqaC+z2MM3VaIEd6kt+yQEo6F56UqR87X+QTB/xNNAHllIDGrWK2iD00QLOQI6+N/9q1SdLGifgbIs9Ga4ily9rHQFtW/lbQDopWPOJExVIXjXhQzIS5KW4/rVNQ412bDGzQDuUtdoYtbep/5pMMIwdyhgc2+Q6Qy80/jwjau89o48BcMtIKWIgrp6ydUVadxiHSXpftl1UL9KusYo0whuJe5jhcp+DBSNVltmHQFE8WOSk2zeFozoOQGJLUTxeXADl1hfXmE2oqKWTi1jsSgkG9cRplwijqHTsa1gkCxck55YopvvDDj5SxaqWm5HVjkf78T9fXJLGX0BzY2xHUlFZz4ZIpKPHVPWyTm7Sde/ovgk6XaJgNcg8ChzE6q2WXgjorhal88GzU96pTJzrxAnGlV2+hD1ab+j0PTkNzc3eKTR3zBiWqIWTri0F9DewOhwxYef4JyvVYKCzLCAESZs4iJTHOHIzu0SYWS3riVLoxoITF/bkhBLzzc8q2pRcaP7Yfx9B2U0K2tKJ2WMsEqzev8eZJ0zpr+/70jVhTws5BDMF0fTM4RRZ1+AXx4CE=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(336012)(36860700001)(52536014)(82310400003)(966005)(107886003)(8936002)(4326008)(110136005)(26005)(186003)(54906003)(53546011)(8676002)(6506007)(316002)(33656002)(83380400001)(5660300002)(9686003)(70206006)(508600001)(86362001)(47076005)(55016002)(2906002)(81166007)(356005)(70586007)(7696005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 06:50:12.2588
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fb4cb313-6734-4b57-313b-08d9ad84550e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT038.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2277

SGkgQXlhbiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBYZW4tZGV2
ZWwgPHhlbi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPiBPbiBCZWhhbGYgT2Yg
QXlhbg0KPiBLdW1hciBIYWxkZXINCj4gU2VudDogMjAyMcTqMTHUwjIwyNUgMDo1Mg0KPiBUbzog
eGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBzc3RhYmVsbGluaUBrZXJuZWwu
b3JnOyBzdGVmYW5vLnN0YWJlbGxpbmlAeGlsaW54LmNvbTsganVsaWVuQHhlbi5vcmc7DQo+IFZv
bG9keW15cl9CYWJjaHVrQGVwYW0uY29tOyBCZXJ0cmFuZCBNYXJxdWlzIDxCZXJ0cmFuZC5NYXJx
dWlzQGFybS5jb20+Ow0KPiBSYWh1bCBTaW5naCA8UmFodWwuU2luZ2hAYXJtLmNvbT47IGF5YW5r
dW1hQHhpbGlueC5jb20NCj4gU3ViamVjdDogW1JGQyBQQVRDSF0gQWRkZWQgdGhlIGxvZ2ljIHRv
IGRlY29kZSAzMiBiaXQgbGRyL3N0ciBwb3N0LQ0KPiBpbmRleGluZyBpbnN0cnVjdGlvbnMNCj4g
DQo+IEF0IHByZXNlbnQsIHBvc3QgaW5kZXhpbmcgaW5zdHJ1Y3Rpb25zIGFyZSBub3QgZW11bGF0
ZWQgYnkgWGVuLg0KPiBXaGVuIFhlbiBnZXRzIHRoZSBleGNlcHRpb24sIEVMMl9FU1IuSVNWIGJp
dCBub3Qgc2V0LiBUaHVzIGFzIGENCj4gcmVzdWx0LCBkYXRhIGFib3J0IGlzIHRyaWdnZXJlZC4N
Cj4gDQo+IEFkZGVkIHRoZSBsb2dpYyB0byBkZWNvZGUgbGRyL3N0ciBwb3N0IGluZGV4aW5nIGlu
c3RydWN0aW9ucy4NCj4gV2l0aCB0aGlzLCBYZW4gY2FuIGRlY29kZSBpbnN0cnVjdGlvbnMgbGlr
ZSB0aGVzZTotDQo+IGxkciB3MiwgW3gxXSwgIzQNCj4gVGh1cywgZG9tVSBjYW4gcmVhZCBpb3Jl
ZyB3aXRoIHBvc3QgaW5kZXhpbmcgaW5zdHJ1Y3Rpb25zLg0KPiANCj4gU2lnbmVkLW9mZi1ieTog
QXlhbiBLdW1hciBIYWxkZXIgPGF5YW5rdW1hQHhpbGlueC5jb20+DQo+IC0tLQ0KPiBOb3RlIHRv
IHJldmlld2VyOi0NCj4gVGhpcyBwYXRjaCBpcyBiYXNlZCBvbiBhbiBpc3N1ZSBkaXNjdXNzZWQg
aW4NCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZl
bC8yMDIxLTExL21zZzAwOTY5Lmh0bWwNCj4gIlhlbi9BUk0gLSBRdWVyeSBhYm91dCBhIGRhdGEg
YWJvcnQgc2VlbiB3aGlsZSByZWFkaW5nIEdJQ0QgcmVnaXN0ZXJzIg0KPiANCj4gDQo+ICB4ZW4v
YXJjaC9hcm0vZGVjb2RlLmMgfCA3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrDQo+ICB4ZW4vYXJjaC9hcm0vaW8uYyAgICAgfCAxNCArKysrKystLQ0KPiAgMiBm
aWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kZWNvZGUuYyBiL3hlbi9hcmNoL2FybS9kZWNvZGUuYw0K
PiBpbmRleCA3OTJjMmU5MmE3Li43YjYwYmVkYmM1IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9h
cm0vZGVjb2RlLmMNCj4gKysrIGIveGVuL2FyY2gvYXJtL2RlY29kZS5jDQo+IEBAIC04NCw2ICs4
NCw4MCBAQCBiYWRfdGh1bWIyOg0KPiAgICAgIHJldHVybiAxOw0KPiAgfQ0KPiANCj4gK3N0YXRp
YyBpbmxpbmUgaW50MzJfdCBleHRyYWN0MzIodWludDMyX3QgdmFsdWUsIGludCBzdGFydCwgaW50
IGxlbmd0aCkNCj4gK3sNCj4gKyAgICBpbnQzMl90IHJldDsNCj4gKw0KPiArICAgIGlmICggIShz
dGFydCA+PSAwICYmIGxlbmd0aCA+IDAgJiYgbGVuZ3RoIDw9IDMyIC0gc3RhcnQpICkNCj4gKyAg
ICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKyAgICByZXQgPSAodmFsdWUgPj4gc3RhcnQp
ICYgKH4wVSA+PiAoMzIgLSBsZW5ndGgpKTsNCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9
DQo+ICsNCg0KVGhpcyBmdW5jdGlvbidzIGJlaGF2aW9yIGlzIHZlcnkgc2ltaWxhciB0byB0aGUg
aGVscHMgdnJlZ19yZWd4X2V4dHJhDQppbiB2cmVnLmguIElmIHdlIHdpbGwgaW50cm9kdWNlIG1v
cmUgcmVnIGJpdCBvcGVyYXRpb24gZnVuY3Rpb25zIGxpa2UNCmV4dHJhY3QzMi4gQ2FuIHdlIGNv
bnNpZGVyIHRvIHJldXNlIHRoZW0/DQoNCj4gK3N0YXRpYyBpbnQgZGVjb2RlXzY0Yml0X2xvYWRz
dG9yZV9wb3N0aW5kZXhpbmcocmVnaXN0ZXJfdCBwYywgc3RydWN0DQo+IGhzcl9kYWJ0ICpkYWJ0
KQ0KPiArew0KPiArICAgIHVpbnQzMl90IGluc3RyOw0KPiArICAgIGludCBzaXplOw0KPiArICAg
IGludCB2Ow0KPiArICAgIGludCBvcGM7DQo+ICsgICAgaW50IHJ0Ow0KPiArICAgIGludCBpbW05
Ow0KPiArDQo+ICsgICAgLyogRm9yIGRldGFpbHMgb24gZGVjb2RpbmcsIHJlZmVyIHRvIEFybXY4
IEFyY2hpdGVjdHVyZSByZWZlcmVuY2UNCj4gbWFudWFsDQo+ICsgICAgICogU2VjdGlvbiAtICJM
b2FkL3N0b3JlIHJlZ2lzdGVyIChpbW1lZGlhdGUgcG9zdC1pbmRleGVkKSIsIFBnIDMxOA0KPiAr
ICAgICovDQoNCkkgaGF2ZSBzZWVuIHR3byBzdHlsZXMgb2YgbXVsdGlwbGUgbGluZSBjb21tZW50
cyBpbiB0aGlzIHBhdGNoLg0KSSBjaGVja2VkIHRoZSBvcmlnaW5hbCBmaWxlIGFuZCBpdCBoYXMg
bm8gc3BlY2lhbCBjb21tZW50Lg0KU28gSSB0aGluayB5b3UgbWF5IG5lZWQgdG8gZm9sbG93IHRo
ZSBtdWx0aXBsZSBsaW5lIGNvbW1lbnRzIHlvdQ0KaGF2ZSBkb25lIGZvciBhcm0vaW8uYyBpbiB0
aGlzIHBhdGNoLiBBbmQgdGhlIHNhbWUgZm9yIHNvbWUgY29tbWVudHMgYmVsb3cuDQoNCj4gKyAg
ICBpZiAoIHJhd19jb3B5X2Zyb21fZ3Vlc3QoJmluc3RyLCAodm9pZCAqIF9fdXNlcilwYywgc2l6
ZW9mIChpbnN0cikpICkNCj4gKyAgICAgICAgcmV0dXJuIC1FRkFVTFQ7DQo+ICsNCj4gKyAgICAv
KiBGaXJzdCwgbGV0J3MgY2hlY2sgZm9yIHRoZSBmaXhlZCB2YWx1ZXMgKi8NCj4gKw0KPiArICAg
IC8qICBBcyBwZXIgdGhlICJFbmNvZGluZyB0YWJsZSBmb3IgdGhlIExvYWRzIGFuZCBTdG9yZXMg
Z3JvdXAiLCBQZw0KPiAyOTkNCj4gKyAgICAgKiBvcDQgPSAxIC0gTG9hZC9zdG9yZSByZWdpc3Rl
ciAoaW1tZWRpYXRlIHBvc3QtaW5kZXhlZCkNCj4gKyAgICAgKi8NCj4gKyAgICBpZiAoIGV4dHJh
Y3QzMihpbnN0ciwgMTAsIDIpICE9IDEgKQ0KPiArICAgICAgICBnb3RvIGJhZF82NGJpdF9sb2Fk
c3RvcmU7DQo+ICsNCj4gKyAgICAvKiBGb3IgdGhlIGZvbGxvd2luZywgcmVmZXIgdG8gIkxvYWQv
c3RvcmUgcmVnaXN0ZXIgKGltbWVkaWF0ZSBwb3N0LQ0KPiBpbmRleGVkKSINCj4gKyAgICAgKiB0
byBnZXQgdGhlIGZpeGVkIHZhbHVlcyBhdCB2YXJpb3VzIGJpdCBwb3NpdGlvbnMuDQo+ICsgICAg
ICovDQo+ICsgICAgaWYgKCBleHRyYWN0MzIoaW5zdHIsIDIxLCAxKSAhPSAwICkNCj4gKyAgICAg
ICAgZ290byBiYWRfNjRiaXRfbG9hZHN0b3JlOw0KPiArDQo+ICsgICAgaWYgKCBleHRyYWN0MzIo
aW5zdHIsIDI0LCAyKSAhPSAwICkNCj4gKyAgICAgICAgZ290byBiYWRfNjRiaXRfbG9hZHN0b3Jl
Ow0KPiArDQo+ICsgICAgaWYgKCBleHRyYWN0MzIoaW5zdHIsIDI3LCAzKSAhPSA3ICkNCj4gKyAg
ICAgICAgZ290byBiYWRfNjRiaXRfbG9hZHN0b3JlOw0KPiArDQoNCklmIHRoZSBjaGVjayBpcyBm
aXhlZCwgd2h5IHdlIGRvbid0IGRlZmluZSBhIFZBTElEX01BU0sgdG8gY2hlY2sgaXQsDQpzb21l
dGhpbmcgbGlrZToNCmlmICggaW5zdHIgJiBNQVNLX2Zvcl8yMV8yNF8yNyA9PSBWQUxJRF9GT1Jf
MjFfMjRfMjcgKQ0KDQoNCj4gKyAgICBzaXplID0gZXh0cmFjdDMyKGluc3RyLCAzMCwgMik7DQo+
ICsgICAgdiA9IGV4dHJhY3QzMihpbnN0ciwgMjYsIDEpOw0KPiArICAgIG9wYyA9IGV4dHJhY3Qz
MihpbnN0ciwgMjIsIDEpOw0KPiArDQo+ICsgICAgLyogQXQgdGhlIG1vbWVudCwgd2Ugc3VwcG9y
dCBTVFIoaW1tZWRpYXRlKSAtIDMyIGJpdCB2YXJpYW50IGFuZA0KPiArICAgICAqIExEUihpbW1l
ZGlhdGUpIC0gMzIgYml0IHZhcmlhbnQgb25seS4NCj4gKyAgICAgKi8NCj4gKyAgICBpZiAoISgo
c2l6ZT09MikgJiYgKHY9PTApICYmICgob3BjPT0wKSB8fCAob3BjPT0xKSkpKQ0KPiArICAgICAg
ICBnb3RvIGJhZF82NGJpdF9sb2Fkc3RvcmU7DQo+ICsNCj4gKyAgICBydCA9IGV4dHJhY3QzMihp
bnN0ciwgMCwgNSk7DQo+ICsgICAgaW1tOSA9IGV4dHJhY3QzMihpbnN0ciwgMTIsIDkpOw0KPiAr
DQo+ICsgICAgaWYgKCBpbW05IDwgMCApDQo+ICsgICAgICAgIHVwZGF0ZV9kYWJ0KGRhYnQsIHJ0
LCBzaXplLCB0cnVlKTsNCj4gKyAgICBlbHNlDQo+ICsgICAgICAgIHVwZGF0ZV9kYWJ0KGRhYnQs
IHJ0LCBzaXplLCBmYWxzZSk7DQo+ICsNCj4gKyAgICBkYWJ0LT52YWxpZCA9IDE7DQo+ICsNCj4g
Kw0KPiArICAgIHJldHVybiAwOw0KPiArYmFkXzY0Yml0X2xvYWRzdG9yZToNCj4gKyAgICBncHJp
bnRrKFhFTkxPR19FUlIsICJ1bmhhbmRsZWQgNjRiaXQgaW5zdHJ1Y3Rpb24gMHgleFxuIiwgaW5z
dHIpOw0KPiArICAgIHJldHVybiAxOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW50IGRlY29kZV90
aHVtYihyZWdpc3Rlcl90IHBjLCBzdHJ1Y3QgaHNyX2RhYnQgKmRhYnQpDQo+ICB7DQo+ICAgICAg
dWludDE2X3QgaW5zdHI7DQo+IEBAIC0xNTUsNiArMjI5LDkgQEAgaW50IGRlY29kZV9pbnN0cnVj
dGlvbihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncw0KPiAqcmVncywgc3RydWN0IGhzcl9kYWJ0
ICpkYWJ0KQ0KPiAgICAgIGlmICggaXNfMzJiaXRfZG9tYWluKGN1cnJlbnQtPmRvbWFpbikgJiYg
cmVncy0+Y3BzciAmIFBTUl9USFVNQiApDQo+ICAgICAgICAgIHJldHVybiBkZWNvZGVfdGh1bWIo
cmVncy0+cGMsIGRhYnQpOw0KPiANCj4gKyAgICBpZiAoIGlzXzY0Yml0X2RvbWFpbihjdXJyZW50
LT5kb21haW4pICkNCj4gKyAgICAgICAgcmV0dXJuIGRlY29kZV82NGJpdF9sb2Fkc3RvcmVfcG9z
dGluZGV4aW5nKHJlZ3MtPnBjLCBkYWJ0KTsNCj4gKw0KPiAgICAgIC8qIFRPRE86IEhhbmRsZSBB
Uk0gaW5zdHJ1Y3Rpb24gKi8NCj4gICAgICBncHJpbnRrKFhFTkxPR19FUlIsICJ1bmhhbmRsZWQg
QVJNIGluc3RydWN0aW9uXG4iKTsNCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW8u
YyBiL3hlbi9hcmNoL2FybS9pby5jDQo+IGluZGV4IDcyOTI4N2UzN2MuLjQ5ZTgwMzU4YzAgMTAw
NjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9pby5jDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9pby5j
DQo+IEBAIC0xMDYsMTQgKzEwNiwxMyBAQCBlbnVtIGlvX3N0YXRlIHRyeV9oYW5kbGVfbW1pbyhz
dHJ1Y3QgY3B1X3VzZXJfcmVncw0KPiAqcmVncywNCj4gICAgICAgICAgLmdwYSA9IGdwYSwNCj4g
ICAgICAgICAgLmRhYnQgPSBkYWJ0DQo+ICAgICAgfTsNCj4gKyAgICBpbnQgcmM7DQo+IA0KPiAg
ICAgIEFTU0VSVChoc3IuZWMgPT0gSFNSX0VDX0RBVEFfQUJPUlRfTE9XRVJfRUwpOw0KPiANCj4g
ICAgICBoYW5kbGVyID0gZmluZF9tbWlvX2hhbmRsZXIodi0+ZG9tYWluLCBpbmZvLmdwYSk7DQo+
ICAgICAgaWYgKCAhaGFuZGxlciApDQo+ICAgICAgew0KPiAtICAgICAgICBpbnQgcmM7DQo+IC0N
Cj4gICAgICAgICAgcmMgPSB0cnlfZndkX2lvc2VydihyZWdzLCB2LCAmaW5mbyk7DQo+ICAgICAg
ICAgIGlmICggcmMgPT0gSU9fSEFORExFRCApDQo+ICAgICAgICAgICAgICByZXR1cm4gaGFuZGxl
X2lvc2VydihyZWdzLCB2KTsNCj4gQEAgLTEyMyw3ICsxMjIsMTYgQEAgZW51bSBpb19zdGF0ZSB0
cnlfaGFuZGxlX21taW8oc3RydWN0IGNwdV91c2VyX3JlZ3MNCj4gKnJlZ3MsDQo+IA0KPiAgICAg
IC8qIEFsbCB0aGUgaW5zdHJ1Y3Rpb25zIHVzZWQgb24gZW11bGF0ZWQgTU1JTyByZWdpb24gc2hv
dWxkIGJlIHZhbGlkDQo+ICovDQo+ICAgICAgaWYgKCAhZGFidC52YWxpZCApDQo+IC0gICAgICAg
IHJldHVybiBJT19BQk9SVDsNCj4gKyAgICB7DQo+ICsgICAgICAgIC8qDQo+ICsgICAgICAgICAq
IFBvc3QgaW5kZXhpbmcgbGRyL3N0ciBpbnN0cnVjdGlvbnMgYXJlIG5vdCBlbXVsYXRlZCBieSBY
ZW4uIFNvLA0KPiB0aGUNCj4gKyAgICAgICAgICogSVNTIGlzIGludmFsaWQuIEluIHN1Y2ggYSBz
Y2VuYXJpbywgd2UgdHJ5IHRvIG1hbnVhbGx5IGRlY29kZQ0KPiB0aGUNCj4gKyAgICAgICAgICog
aW5zdHJ1Y3Rpb24gZnJvbSB0aGUgcHJvZ3JhbSBjb3VudGVyLg0KPiArICAgICAgICAgKi8NCj4g
KyAgICAgICAgcmMgPSBkZWNvZGVfaW5zdHJ1Y3Rpb24ocmVncywgJmluZm8uZGFidCk7DQo+ICsg
ICAgICAgIGlmICggcmMgKQ0KPiArICAgICAgICAgICAgcmV0dXJuIElPX0FCT1JUOw0KPiArICAg
IH0NCj4gDQo+ICAgICAgLyoNCj4gICAgICAgKiBFcnJhdHVtIDc2NjQyMjogVGh1bWIgc3RvcmUg
dHJhbnNsYXRpb24gZmF1bHQgdG8gSHlwZXJ2aXNvciBtYXkNCj4gLS0NCj4gMi4xNy4xDQo+IA0K
DQo=


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 07:10:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 07:10:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228581.395591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp3T7-0003rO-5D; Mon, 22 Nov 2021 07:10:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228581.395591; Mon, 22 Nov 2021 07:10:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp3T7-0003rH-1C; Mon, 22 Nov 2021 07:10:25 +0000
Received: by outflank-mailman (input) for mailman id 228581;
 Mon, 22 Nov 2021 07:10:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp3T5-0003rB-48
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 07:10:23 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 419eb5b5-4b63-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 08:10:21 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2112.outbound.protection.outlook.com [104.47.18.112]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-31-0gzQMYZsOZGacTl7YJeYjw-1; Mon, 22 Nov 2021 08:10:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3936.eurprd04.prod.outlook.com (2603:10a6:803:23::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 07:10:19 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 07:10:19 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM5PR0502CA0012.eurprd05.prod.outlook.com (2603:10a6:203:91::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20 via Frontend
 Transport; Mon, 22 Nov 2021 07:10:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 419eb5b5-4b63-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637565021;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=HdHcSsr8xwWxvSz1xnhn7H8HJUtphqQGBcmkiCpbgxM=;
	b=dchao+Z0ZJSjQ+0Zlp2MaZwdEBasEtuRbfHRLeaeJaj+jHt2Tm1UFLDHsGqbbD43ZOOY5s
	+AFtpJgeEawkQWdLIY16ekPwYND6ETwK+l+7QWALF5B5U3ZTnvdf1R4fYbpJLxnOVpg14I
	e2fJP+/gX6p2Kde0x8NmOEAuXEuJLrE=
X-MC-Unique: 0gzQMYZsOZGacTl7YJeYjw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TmApmlqg2RXDDaACtQMdFv29E4WAMwAvZ8Fls9VxPEzk4sogwa968p77tFO/EYroLq0hOq0AwQKnsXiSChhCdJPUBh3DACQ0lOkg04TiLTm2xiApKMq2AQ24KErgMpYg1meHTARzsJVsP1DdP6I2DBelDi3Q+Ea65t9hdAXnDFr8C/VN3LD11qn+WbFK33oMLTFEbaGS+kQBi4ZxSb6orQBzYTJG2Lw2NnmDjAhUv01x8zMze5tBzsBkLMG4zIekDa9ARDzM+ShP9cbNYd+7NQ9uAFVEYtF0eYmnxdQyeT2+NARl7dv28ebzmrkTtffrAyjSWKBZxMbmCHJV4WWp9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HdHcSsr8xwWxvSz1xnhn7H8HJUtphqQGBcmkiCpbgxM=;
 b=RseO/oT4LQdtn0zPuwKB/WAmPfDXZXPyniL/HCwS8R6nTs9HRBtmQY9MrfmGI8PA5tmAKUGhS9/fTBUPByYV0Fi+R0fGtrkF1pxDJK7TVo4RVs3KgHDMQyOxZAMJic4c/wJ1EXbDzc934kjtUIsr8gSyK2Ahg8n5FqHcSuHtl8qBLld6kQWWtdGw948L7L/Wrk/A6V2X5B9wKPt5fLlk/4bupASdyLH6/4zFiElLrNvvie8ScO492bS6CCKdX3GtXJp1IFl6AnfF+Y4qa3aYYDh4Fq1DOQNWNE4cl+52voOgoTDcCvlTP/JKBnCWH+TGI3LrkW/wLbiRsThjeSLJmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d354349d-0294-0830-5bb0-45eaa82e2a2d@suse.com>
Date: Mon, 22 Nov 2021 08:10:17 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 0/7] (mainly) xz imports from Linux
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <24983.46063.379168.151942@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24983.46063.379168.151942@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0502CA0012.eurprd05.prod.outlook.com
 (2603:10a6:203:91::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3cc382fe-6f8e-4707-5fbd-08d9ad872492
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3936:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3936C2FEDACC2438090FECA9B39F9@VI1PR0402MB3936.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	3czKs/8TadO/d1nyPZbt1okx0tmRIax3VNBY8tqK1z0Oli0JG/LbOaNaLLTFZUTmLQFz1uJMofQopLobSrWTw3b4KNLc7CvwcSDEHQqHRLPxFcNy4isRWeiK2mWWowBmQiv7fqBADNIrghBpDvrdZZcqkPaqUQU7OP8UKMVM96tCu5WnbTN+ZRyCynKwXMIaeEW3ycAXQVro4aIFXwCaTmzJquynbE0kQAISwMS+s4p/H1qXuplEgklFt1J8T19YP75eDX70yo0xKMiAKSYgeKDCNHEou2Y+whk58wgyx3WzsK5X5DUv4q1VI0MWkQCVy6NK4nIkpCNMXkZFqVetJeki9vJcEuMASIUndtK//2UYxlGMoti57Gof7FVZgKlmC/Fau89Bybq4kPuSmCqILP7w0tWcVdkdy6Ve+Upywh2aK1ZAFZQFlIL/wSOpnOqvKpjn5UAQfpWcQZZ2WyfQU0pfWNqf27rxN7ZgTKMKXbQ7+kUaIKll1LkfZKkOrFHc98DOCKdilwAfQYCLrZU82oddDmzV6vBHQNeFpXQOnbirh9SHhRG42DZdD7Xzo3D6jTnwln2yf0o57rPHE3k98v3acDNQnT+lNx+neHXeCH6L4vCz8CwUHYEf4ump8oJT2wevNFCo3g3hY9B/tTRPTYF8t2UZN0I+shgbD+sRTeCJwH2K/rqFx7wzOe/nuykGEJKpuqDH+0mqpliJw5quAQ5/uuSzNxv3RypLgLNkz4hplC7ysjimdRgT4fXXUrDS
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(31696002)(186003)(36756003)(6486002)(5660300002)(2616005)(38100700002)(54906003)(31686004)(4326008)(83380400001)(2906002)(53546011)(86362001)(8936002)(8676002)(66946007)(66476007)(66556008)(316002)(508600001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZE5aMjg1SnJlcm1rQ2hXMFBYc1ZHU3pYR0xOUm1TQmN2RnprRlUwNjJDOTV2?=
 =?utf-8?B?RjBpZWZPRWZpVy9nb3g0bTQrSWdkOWh4N1RVZC9iejV3WW1KM1o3VktEYVRX?=
 =?utf-8?B?VzBhOUFVNFZDTHNWNmlMVjZULzMzN1hKeVNQZDhud25UVVQxNEFQQVVzNlRw?=
 =?utf-8?B?cGNJZXJPMGhSWCt4QlNCYmhXbng5UUh4S2dKeHlxYWN2d3FhdVhCdlJmc094?=
 =?utf-8?B?VDYvTDkybTNXUlVTVGgvR1VQY0w3OW4zanV1Y1ZZT2NpVjNPT2lJa1g2dTJo?=
 =?utf-8?B?aHZ1SHVUKzRhNVNJRUtLQ21LV3hmSXdWTGNDekp4eDBGbW9hT0NyM293SzBW?=
 =?utf-8?B?MTgzY2JpQjRFK0JCak4wTUxKN01BTXp0R2xNMWtWT1kwZC9zc1hnaWR4ZFMr?=
 =?utf-8?B?T3N5U0YrQ1QxWk5GTkVMUWVyOWtKYmlTSzNBa05lOUp1Y2dkb1hRN3E3eENQ?=
 =?utf-8?B?MVVlT01yZXpmSndyeTlWVkZBRzAwbTVNSUlJNXlEWUJremxqcFJZQmJqYmhs?=
 =?utf-8?B?UUI2N0V3NVlWVWFmSlJRNC9YREtscDAya1ZRZVVPMVhBano5cTFWM2tmWEVx?=
 =?utf-8?B?MVk4azBpK3o1WGZMOTlWNW1zbEFXZGprcksvbFdHb0taN0orNzhFcHJTZHd0?=
 =?utf-8?B?RklzYjZVenp5TUlmVDVoYUp5d1kzdDRzTG5NcFJIa1JBVjJuYkdOcjMzR0FE?=
 =?utf-8?B?ZnFRMEc2RDlVZWM2WUhoUUUvenZGRWk4c3N2bUFDaU53QUpTRnNBU09FeFUw?=
 =?utf-8?B?SlNGV2pSaGYvalBoellkUGpHTUNFTzdJdEFVR01tTU41azZ1Qmp3V2d3WDlY?=
 =?utf-8?B?OWMvTEtFblYrUjVHL3JoMWVndTR5ZElOMXlYbjVUclF0M0hVM0dKT3VvbkVa?=
 =?utf-8?B?NG1IdWVsWERXS3Frdk5pTXdjVUhISDd0c0ppUzlpRmdKNmpMRjV5S3dBV0xJ?=
 =?utf-8?B?OWpSZEpCdUo0NGMxajB5OE9DTnJiWDd3Zmp2eHBSUXhKclZqY3VHN1ZMQmVW?=
 =?utf-8?B?eWl5QUpjSytLY0NrOW43K094Qys4T2c4NEdnOXFuZHBpb0pqMGtUalZBTzB4?=
 =?utf-8?B?Y1RudWhRL2tJTzVjRnlNWGRMYkNCQzZlcUN3ZHNGMldVV3ZHMURUbkcvclp1?=
 =?utf-8?B?U0Rkc3RBajc3UmFFbFhxRkZ2TFZBNDRhRENZYkFaT3ozR1pvM1hhMDhIUGp4?=
 =?utf-8?B?Ry9wK0MwVmZZeDQ1UGptK2gxQTMzdklsc1dVZXhsaVBkaHprR1I4WnhZR1Qv?=
 =?utf-8?B?dHZJZWtYUnE4bTJoaGYySWo3ek9HdnJLR29NREl6enB6Nzd2cHY2MVhHZytv?=
 =?utf-8?B?T2dmVml6SXN3YVQ4OVZkN0tiTys3a1d4L0tRc0ROQy9NblFkbThoeGtxMS80?=
 =?utf-8?B?TDJyanhDTGFJM2ltQnhPZGxqZmtMZkRvU3lLeE5oWjV4MWJQNHZKbFNUaGRi?=
 =?utf-8?B?YkQyU0VWUXVuaHNsNE03OWt2MzNIdXpROWlxRlpWWDBDZU5Odms3L0JueG1t?=
 =?utf-8?B?bmNOSW1vd3hqNTY5d0ZFU3ZtUzA5MFZyNjhHcUZRNnZFblZDRnFNTFpjMzJZ?=
 =?utf-8?B?VldrRk5VUlFuV3VBMlZYaHpVMkc5Z2J5b2EwVzh4bVpXdzA5ODcrSmxZc085?=
 =?utf-8?B?WEZ1VkFvT0JvZnR4eHJxUzJWbkRWRzRWazU2NHRGTFVoSVphSHA1bFl2WHpt?=
 =?utf-8?B?alNxeHR2ZFU5V0d4TG5HYTVlK2hDeVNoVllJcHhJdVNWWkFxQ2VOYXlLb1pW?=
 =?utf-8?B?VWxQbEtkaVNsTzFkbkx2UGUrNXpHUkNtSFNORFVaRGFHQ2JwRWdTc1gycGFz?=
 =?utf-8?B?bkNxQVRrZEwySHl4QURvNW9vdVFZc3owOVJiZDNpZzRIeEdNMzUrY09HRFBx?=
 =?utf-8?B?YkZpV3ZRRHJpZlhaVnhxbGx0UC91U3ZpTHBScW1sZkxtL0o0Qit5NDQvZXZP?=
 =?utf-8?B?VExvRDFzVjZHWXFWdU9WeTg0M3RaMEhGL1JXL3U5NTJ2aWErSTNQWDNUQy84?=
 =?utf-8?B?MUE3R2ZramFmL2l1bGRUMnZtWENWZ0dCaVdkTGx4K2FqR282bVZLWDBHQUlz?=
 =?utf-8?B?cVNxSlBRMTFtVmhnaGN4d1pvSXNlRWhHMWN2TGUyM2tlOG9TSGJHUFoyMHhs?=
 =?utf-8?B?ZHBEa3pCQ3JXWURCckpMeGhRREU2ZFJkTGkwWURmR0QxZ25rcW9pemdBc0RL?=
 =?utf-8?B?WlV3Tkl5SkJwRVZ3aFFFdGpNWHl1Nzd1ci8xZTlxZE5yL2dPMjNGNzNvNkZp?=
 =?utf-8?Q?WDrgieeuOkNqcQHoiuu/wXr7eJ0kBKkW7hNX0QFuLk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3cc382fe-6f8e-4707-5fbd-08d9ad872492
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 07:10:19.6837
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eWK4XnkGCHYIbxWBcBu0vblFUOjIA+OK2xDVQqUJpCI/ffMPCuLrNNO3yXUgkWpxBhtd+qiuKLq7L77ZLeJVjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3936

On 19.11.2021 15:25, Ian Jackson wrote:
> Jan Beulich writes ("[PATCH 0/7] (mainly) xz imports from Linux"):
>> While going through their 5.15.3 log I did notice two changes, which made
>> me go check what else we might be missing. The series here is the result.
>> Linux has also updated zstd, but that includes a pretty large change which
>> I'm not ready to deal with right now. Them moving closer to the upstream
>> zstd sources is certainly a good thing, so I suppose sooner or later we
>> will want to follow them in doing so.
>>
>> 1: xz: add fall-through comments to a switch statement
>> 2: xz: fix XZ_DYNALLOC to avoid useless memory reallocations
>> 3: decompressors: fix spelling mistakes
>> 4: xz: avoid overlapping memcpy() with invalid input with in-place decompression
>> 5: xz: fix spelling in comments
>> 6: xz: move s->lzma.len = 0 initialization to lzma_reset()
>> 7: xz: validate the value before assigning it to an enum variable
> 
> FTAOD I think none of these are critical bug fixes for 4.16.
> Please let me know if I'm wrong.

Indeed, you're not wrong, and I intentionally didn't tag them that way. All
I wanted is to get them out rather than sit on them.

> In theory 4 is UB but in practice the result is presumably just wrong
> answers.

Like Linux did, the plan is to backport that and perhaps 7. But there's no
urgency.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 07:58:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 07:58:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228587.395602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Cq-0007w2-Lr; Mon, 22 Nov 2021 07:57:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228587.395602; Mon, 22 Nov 2021 07:57:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Cq-0007vv-I5; Mon, 22 Nov 2021 07:57:40 +0000
Received: by outflank-mailman (input) for mailman id 228587;
 Mon, 22 Nov 2021 07:57:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp4Cp-0007vp-NL
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 07:57:39 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dbee18ea-4b69-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 08:57:37 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-32-zDR-jhd6N-OrsXoQf-f41w-1; Mon, 22 Nov 2021 08:57:36 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6383.eurprd04.prod.outlook.com (2603:10a6:803:11b::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20; Mon, 22 Nov
 2021 07:57:33 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 07:57:33 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AS8PR04CA0176.eurprd04.prod.outlook.com (2603:10a6:20b:331::31) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20 via Frontend
 Transport; Mon, 22 Nov 2021 07:57:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbee18ea-4b69-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637567857;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=dSrjxTO3Zk74IiA4WrlnuH/o0Q/G0RuOQGIcY/f0Tro=;
	b=AgOkzMsJAUUCdIJEUPiuK6TvvcsKqxBUTFVtGGoIcZHHR3LzhsoZBuh6riCkI1pXe2kU+J
	pklQQ7itIiCjck8JVFKxqr7nMAoG0e34VQwjS0Xt4PMk227P3UsY2d1P2gzUvmgyJg3QCc
	CXmUJt5kuJZeB4cn8htmHgY7RrePXWg=
X-MC-Unique: zDR-jhd6N-OrsXoQf-f41w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CqsjxoFRlLtJu4jSpKEgyWitRybWozri5RixnDRQ62E55Tsfz0uuWy6CiaRrdB4tcw/q+Ia9UYEqP7Rpvl7x+gy1NHxZx+hoZGja0+vaq7SosChP95eK36OYJ5mQnf+3YiUVItrFe/3tAZA6jHEVyX211Fw0ooFuLWbCEJBgqfHENVKyt4yU9S6m6EHy1UkGYJp6h6DQceYNKSD+9WyuGOV2j7AdErRrDPxoU3s9jlgX6KiMRy0TeFoNt2A7xFJiYQIwz8nLTpZXXR8EMaN1PxvuwFlhYO3oIT0EaqjLVkZxuhqLf8h3WkTmyyL/QPuZWiyLuxsUls/UExCe1/qFVA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dSrjxTO3Zk74IiA4WrlnuH/o0Q/G0RuOQGIcY/f0Tro=;
 b=jCgz70GQtqZuF1U3NHS6KNGkBpuCrTS8ZH+rCv5QU70tW6gDXVicrLh/pCaqxc1VkVfqIEjA/+cvctWlObpRNbdM0qg8rdBDexM78Q2bgQkzaeMFc9ji5mxDrRvj6JHdJMImSrJJoXlWfG3fvlXnx0e9MaBJX/7sZHBuVn/WhSqm2tl/Y5o+JBpZNNE8Myl5v/JFJjn+QCfNZMcjyWnKTe943B85UOP0iGtPnc6ruri3kRSM+gjyBSgCDsff1GS92OpJHcfztIRyaC4deatmfihXst+XgckBZZLrNJHfgIgZhxTlOz2onSF4hBN6U++FpBIcFUNWDfLmJmjOI3rXaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bc47bbe2-b330-7744-8d6b-869e3c7523e4@suse.com>
Date: Mon, 22 Nov 2021 08:57:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v2] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org,
 jgross@suse.com
References: <20211119202951.403525-1-sstabellini@kernel.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211119202951.403525-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0176.eurprd04.prod.outlook.com
 (2603:10a6:20b:331::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ce01e611-baa2-4c54-8d3e-08d9ad8dbdb4
X-MS-TrafficTypeDiagnostic: VE1PR04MB6383:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB63838CB521C558E8400D8CA9B39F9@VE1PR04MB6383.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jdmSD8ZE3t+1ES8WYmq1FxEkjGQOXMUfECDoc3DrxGKfq3A5ilfTzmZmYwJNrCRDd57Dy1Ms0FaDjEqHGvXtZrmvKfXmrBlRlhOWBnqf+K1vN5xdskHcLlIXdCR7ItfSLMjMCGrFMEeyO2ByhQBrXz12AWpxzI9CxrQdq5WIa8rn+Eajga9tGmSr5dXjsypZQMC9g8O3ix/vQ3IKRjp3ho7mdV1g1F5BbfWRERbhJrD8zbn0F3AvgYZCjZ/zs87N/7YoGDnsDN+48kal2FMTBrDWqxv3MqAeylINptqUSlBuDj5+F6Ldsu3bdHamfJDrruXFp8GhUT6NP4ZcGe9nuP6WxPw4mE77r/+ou4Q7HQrdb1VEl6+/gJ2s9VeG9xDGCZrEPpzdJNbH+/SrEQUD+CGiaczXxxuVGCpkvmJo2k/1EPLy89xh7RE8+/fbXebJ6cGPjcqEEy8Xc3sWdf4hHeKCzq3IovBMjtAH4DdRucuwJv8H1COgf1nndGS/FD7IfAE8f7sz1b9sZnBLIeJ3RO4NUwd8hI7JUXQa7PcechHK+v2cO2Rq+DrgRxYhl6RG3LLZTLexd8ua8gtgvUlr3Pjf0QmvudYspqVIadDNxsQLygEHM7bgoQndB+BhDP52V3p+gPLfazrV2POEPc5JjyTTwGXGvsmQFLwRbFh+eLX9yOa38aVGQAit6KI9qm5B4a2vHV+w5cwYlD0f+VaY/MzgiJAtS0CUn8gI05H1u9qwf6g2tFz4RHwxYSfnfFzu
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(2906002)(8676002)(5660300002)(107886003)(31696002)(66556008)(53546011)(38100700002)(36756003)(8936002)(316002)(6486002)(31686004)(2616005)(66946007)(66476007)(86362001)(83380400001)(6916009)(508600001)(4744005)(186003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U0pPRDJjV1NtcEdvUStnR1VWUi9jSnQvRVVkYkpEMU9UcEprU2kreWxFR080?=
 =?utf-8?B?c09ITk9MYmtmWnhBU3E3aWRXeWZIT3lPckMyM3R2akdZdEZxV3VsMWJ4TEFR?=
 =?utf-8?B?MDRtUHM0Y1RxTUxSbElDMEY3TU5CQ2dvanBiTGhSMzhOa3dDa2wweGZiVjVW?=
 =?utf-8?B?a3FIUmNMQmtKM3duMVVqa0tpNlIrbTV5cGd5MnFhSHBiYXRVSnN4djFLUHRv?=
 =?utf-8?B?eXV6ck12NXJxLzFkeGtuQlYrc3A2Q200aDhiSHdKNFNJWVhhL1VmNW9HMDVF?=
 =?utf-8?B?TngvODFQT0NuRVY1Ym9qUkZWM1M4Q0FCSTJoSHNTV1Jma0RpTmZmcEFEaTVH?=
 =?utf-8?B?NHYwQ0VRVjNEalFZd1ZiNWtGbk81S09LU0F4K1VyS2lPU2lQVm9yTktzT1dZ?=
 =?utf-8?B?azd0TjZzU051VTIyVkFnN2hSS1NrR3lNbHZHL0EwRUZxbVQ3alEzaTVDTXFG?=
 =?utf-8?B?Uy9qa0ptRHR4Y2V0dTNRNDdiQWhKWDVzbWdIOUdMRFV3ODB6YitoVzhCOEhR?=
 =?utf-8?B?RzU3cUQreXAvYTh4b1RYblBCRlYramkwQWc2T1cxMG5RQW1YVGpxYklMaHFC?=
 =?utf-8?B?UkljdnljcDV6Qi93aEh3VHlYUHZpOW9tY2xaSjJxZzNBeXdTU3ZVK2U0bGpj?=
 =?utf-8?B?UmFJZ3V0UWVXdFFFV282d3lPQmV4d1kya1dKcmIxSi9ha1B3MldOaEhwbHRL?=
 =?utf-8?B?amI2OE4rdnJiQ0xISFpNSTFrZ01vbWlhRGl4Ui90bmphSE1oM2ZDRFQ5MzVW?=
 =?utf-8?B?MS9pZVhubHlkK2sxVFJnYm0zdDRmYkZ6amxhMnJjS2xrQXpEZ3VKK3h4Q08y?=
 =?utf-8?B?TlRDM0l2RHB4d0dUMUdoUDVENlR0YldRWnhZQjFDVGRncmNKWjJheS9OMlJ4?=
 =?utf-8?B?N0JKeE81VjdZV25JYk1ONW5nTi8xQlFvTUdpTjE2MUZtTlVRQ0NLQ29qMmlh?=
 =?utf-8?B?ejFmalJuSzJBYkMzeVdVVWd2RUgwUHY5eHR1U2tJRU1HQ0dmajYwby9XU3lF?=
 =?utf-8?B?eEhGQnAzcWM4anYzUE83eVhvZmlxU3BEQWx1bjNjRXpTRW5xV05iTGh6aU5n?=
 =?utf-8?B?Y1dzS00waXhwTEtla0RXL09hNnJ0VTIzTG9hQk95VlZ1Wkc2SjJrUitMRnda?=
 =?utf-8?B?aEhnSlQ5Y09tWjVHclVvNXU4ZnhDMko3TDIvUG5kc2hiWitnMEV0VDVtdkF5?=
 =?utf-8?B?YmVENzBPdHNqY09HWG1xNUEzSTFGN1ducnJvVHF3M1g4cXEyQjRTVUVNMUFR?=
 =?utf-8?B?U2dHSEx4dDkrR0duMmZUOUpQUFJNSi9BT210Nm9uNElZZ3h4TTI3bDNKMGt6?=
 =?utf-8?B?NTBzUUtrTVpXcTd0YnEyWWM2aVFLK1N0TFJUR0dhRnROSmtOUmh0OTU4SU5J?=
 =?utf-8?B?NWZHR2pPVkJCT1hmUHo4MHVBMTBvc251UjMxUHdOeW45MTYxSWdxN0FkdHox?=
 =?utf-8?B?TGh2aDMyQmhXYTBqSEtvY3VsY1BWcjNVTy9CMEEvV1gvZlN3VnlBN2V2b3d4?=
 =?utf-8?B?SWpBQlZHTzNXYU8wenJhQTF3MlMyQnNKTmloOHkrNnpGbzFrMmtLK0JEZVlk?=
 =?utf-8?B?Y3Z1dU5TM0FhMitOWTFqcVF4V1JybkxMbVNXWWVzRWxldmtTM1ZwN2FuVGtF?=
 =?utf-8?B?bnN2eHRZVURRUW9IY0dGZkpNSExQTTg4L1Y1cUt1TVIvb2J4cit6dllJbUZw?=
 =?utf-8?B?R2FZU2FvaTdmd3pRNitDZ2poSEJKc1VIR1RxdXFlT1ArZHJzdm9jdUUyOWU2?=
 =?utf-8?B?N295Zmp2OUc5WHdFNXJNc1FHRC8xUzd4M0FJOXBBZWx3WlRFcVhaM2lCTjRj?=
 =?utf-8?B?L05pRmZFQlVSMnduZllhTWQ3YVV3UTllZGV0NFV3QTk4V0E0bzhZN2FhalNK?=
 =?utf-8?B?eG1KU2x3endZMHFkNHplNHMyS0piT2pVa1k1S3BlcGhZb3hlZ0FjMTN5eGti?=
 =?utf-8?B?YWkvWU9PZm43emhDZS9XaEg1WU5YdlhkUXo3Vm5ZaGJiN2hTM3V0UGhFNm8r?=
 =?utf-8?B?TmdKVmtZNDJ6dzN6T2VtZitIQklvMUFqelgxQWZtcjlwSk1uL2JuMUxCVFA3?=
 =?utf-8?B?WjNiRkJXUjhsd3NldGErbkdjMlRMSHhxdzlNVXZHbE1LaTNIdnJ4dWVLbVpl?=
 =?utf-8?B?OVR1Nmh0aG1YSEJYMGFsS0Q4Q2d6Vm01M0ZnSklOdFh2eTV5Y04vTW5WZlAz?=
 =?utf-8?B?OFB1Y1hXa3FDcDBvOFRPcEpmQmR5N2RzZEJSZ3cxVyt0STR2SUMzbWtpZjdm?=
 =?utf-8?Q?+bW+VYKM1pyhIAMulOQot91l2G5Hm7hw++A8hh9IPA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ce01e611-baa2-4c54-8d3e-08d9ad8dbdb4
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 07:57:33.5645
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: v/gh0m98UAzlJOFPJrVDp5mtE+RfoiXfJqOvLpObK2UujR/Zs69LlbbmmNo2187bwg8+M65CGWXjZ29EYblaug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6383

On 19.11.2021 21:29, Stefano Stabellini wrote:
> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -951,6 +951,20 @@ static int __init xenbus_init(void)
>  		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>  		if (err)
>  			goto out_error;
> +		/* Uninitialized. */
> +		if (v == 0 || v == ULLONG_MAX) {

Didn't you have a comment in v1 here regarding the check against 0? Or was that
just like now only in the description? IOW I think there ought to be a code
comment justifying the theoretically wrong check ...

Also, while I realize there are various other similar assumptions elsewhere, I
would generally recommend to avoid such: There's no guarantee that now and
forever unsigned long long and uint64_t are the same thing. And it's easy in
cases like this one:

		if (!v || !(v + 1)) {

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:00:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228597.395612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4FM-0001N3-94; Mon, 22 Nov 2021 08:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228597.395612; Mon, 22 Nov 2021 08:00:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4FM-0001Mw-6A; Mon, 22 Nov 2021 08:00:16 +0000
Received: by outflank-mailman (input) for mailman id 228597;
 Mon, 22 Nov 2021 08:00:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp4FK-00012V-VH
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:00:15 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 390ed250-4b6a-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 09:00:14 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2058.outbound.protection.outlook.com [104.47.12.58]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-40-6pXexYTeN3mdr2HmYQCuYA-1; Mon, 22 Nov 2021 09:00:12 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6175.eurprd04.prod.outlook.com (2603:10a6:803:fb::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 08:00:10 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:00:10 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM3PR04CA0131.eurprd04.prod.outlook.com (2603:10a6:207::15) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 08:00:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 390ed250-4b6a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637568013;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=uZ+8gqBAh4gz//9s10pBd6JlnLvZPx68jyw3ESdi6hE=;
	b=C5nAi4AwOY3yXPWJ7fWdZL9Y9C9kjgehCdmt8cApG8dbDMZLSqsPxInYnKkA3Gic1X70Pf
	0xjiS3CRpprcqU34YwnJXVTfPTBDIMwb5dffIZMIIf0oQM64N+7XEO71hvaVhHc16Qr+6K
	g5TMxZUD2G6XF8QBrbU8uUuYRisV8uU=
X-MC-Unique: 6pXexYTeN3mdr2HmYQCuYA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PB1x7K0ANVv5O1lqwS2Jb7H4QFTfhk+FzUY+reWsHLNE1MVDy8BE+I5vLOETF4yH/gyiD9XTHFT7R4m3782kkf5ezY3TnF1u1eWATMtYOVnMQqC/5Xqt03XBBpBDFBMoI4cIMmlsuYD5DHCFQ6Pi1653NamDR+O41cYBz+h7SjCKRj63mDjXNr69BXuDshnixmWlqIrUgSt/Eg73s4wdPQAL5kMS4KbJlWAq3Dca7DY6jJ6zVoQMKHDLJqtK3RYdmZxBfgl16T1jlzR7Ih2HnlGg6s5HHWCpsw41C1AXceBN3yn4M4k3YEH50FJXnPgSBrN+ELJbdPolkoiCqoDB7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uZ+8gqBAh4gz//9s10pBd6JlnLvZPx68jyw3ESdi6hE=;
 b=kLSrdf/G+84bqgB5fPZuztJHTeUz6ACDE1wR38jVpI8708it5gy82voRDNW2+sUf7FbhG6l07O67JCicVXUmJreg7+2KkZafTL0VDyDFFMYF6hanGjNAS9PJfy/AWv9lfoYpsxzYQd3vEt4NGBOMOLagrP57LlAJPKf5uxp3C/omXETsPqL1nqICwhmJ/+N8cyMvDKaol1xvnau1DfmDLZec1Dslppu9qiGMlKmlEpcqkTk7Nh39/R/ElQh+Z7hWWY1Lhi10iHvUCHeOQHH8P+AwsKwSoXC93JLv3z+xhDUpU9wDBPZimy/b9F0XE3mAL/qV6nP+l+GTFVrVwEJ3mA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <3f0b4fe2-b3c3-62fb-7713-8ee1da60b587@suse.com>
Date: Mon, 22 Nov 2021 09:00:08 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16 v3] efi: fix alignment of function parameters in
 compat mode
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Roger Pau Monne <roger.pau@citrix.com>,
 Andrew Cooper <amc96@srcf.net>
References: <20211119152403.12069-1-iwj@xenproject.org>
 <40b1a70a-12ed-e059-3bbd-a93b85a96f1d@srcf.net>
 <24983.55866.708476.70068@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24983.55866.708476.70068@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM3PR04CA0131.eurprd04.prod.outlook.com (2603:10a6:207::15)
 To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4a9f027d-7432-4136-8806-08d9ad8e1b08
X-MS-TrafficTypeDiagnostic: VI1PR04MB6175:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6175D651EF3D219E6C0A73BEB39F9@VI1PR04MB6175.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	66wrXyXcBhZM/CoEbjUQcnf+A9y6Zy5aOxuZZzY1jZVIE0QOXqX53xX94NWtI9+cBhbfcDGjvb5ezk9dNGF9APN6iuVek/ycGM0fHwrq+ywpI7Ex6AeM5AdsV44pmEFguy1X+VeEDE+hS4sxYT/6ZQ8+Ciu+QfAhejmZlnxOjsHMmWvrS3Aw2wWMD4o6HNfgTZx77nQHBQEsDCBsawqZ3X4ReQ95ux1td88lVWX0utJ6uSnUHpnGOuMXkg+Ypve/yK0LNx296v4ZamDnJkwlrjaD//z+oAMcZp8k9SPkL1GuqHPCuTAxjW8/gAHK9QcHQh0Ld8stok4Kde3WSI0nTP8DbaaiKlcx8eUmcY8aWJ0jto8DAUR8tBWQuHoCrzRqP0KOYqCFH8JTwSQOPq1vvvdsI3Q6yKb9tA4YvyVOejWjjYj3FwJ9hxep02fcq05ryN+kkosNkdYjI9ACuviK0vCMAVbHTKJjOlhDhnLLs93wnt5G3ePhG7hYRLJQK/q/kWR+S3EsqNLbcLmxChVnfBjJSVn01iv/voIIfjSA1uzKv+9N6cml2w7M6QfOPcnHFZEauKpIpL7XUvHLefdV7MnEKx+zWRxaFfINO4qXHn0+LsM2MK9sjV4Awq1Un1V9u6cd5K2QTn+zw5IF2w+OsVsDzUMcMyJN7O54oCZogR0YPGki1DItMvzRfAoYmbeFuKdGE6vXpZFG+1evHZ6Hkf+Jg9HKQNxOyrM/rMU9OjE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(4326008)(36756003)(8676002)(31686004)(316002)(53546011)(6486002)(31696002)(66946007)(66476007)(508600001)(2616005)(86362001)(6916009)(2906002)(54906003)(5660300002)(186003)(66556008)(8936002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N0pXaDlOclBvZUxiQWM5aHVocWFWRGlCa1VXMlFqMUg0aW1BRFRmMlgzT1oz?=
 =?utf-8?B?eU5nQ3B0YnVSUFlQQS9LTjBBamkrdVpPK3Q5STdDaWgzaDlHei9hMFAwMzMx?=
 =?utf-8?B?ZzhkdGdQWFRqSGl2OTVzYnd0RkE3SXBiWEw1a2Vqd0FtSExQMzZid1I1MzMr?=
 =?utf-8?B?bzd4VUd1YkV4Tk0xUmhLNzlwTTVlK1hQek9NdVl5bStlK0gvdGtVdm4yaEtP?=
 =?utf-8?B?MTI1Qi95WmIyb3UzS2hMRUkyTDN2SDNoQ2cvS1oydEs3bGNxZ0xHWEpsVytq?=
 =?utf-8?B?TDdwdmVoN2tvcVpRdlBhSWlnRXZNMGVGMGdUTFNSVVBCOVh6NndzdFN5bG5z?=
 =?utf-8?B?SFpkbDdCdUVmYzVZUytQcXRGOEVlQjEvNjFRc2FSM21NQjFRVmZkUEo2cXNY?=
 =?utf-8?B?alRjdCsxVnVab0kvNEIvbDVMQzlSd3VGRzVGbnU4eVY2WjZDYjV2MEZuVnds?=
 =?utf-8?B?MXpCcFhFclRYTFk0L2hIaEJYUjlIdVhjbnhYSWpCR0lPZGxXWEpRTkNuODBq?=
 =?utf-8?B?Z09PQlZRWCtGY0p3NXdrdmdTSUlOek1WNVZIc3FPNTc3U1hYbFREdW02a3Zu?=
 =?utf-8?B?UHpqMFJpVnlBWE9pMjNlR2tGd2tqVlJoSWhCUk5ISG0zV0pZMHBVMDRha2VZ?=
 =?utf-8?B?TWFWLzdJRmNTMzNud1oxWFhEOFF2SWp4R1AyWGxaNDl5elRvUm5Ja056QVRL?=
 =?utf-8?B?eEVLdkhOaXo1bCtJWS9YY0JkKzlodHF5N1N0aWRZUFNoRWJpVjZrazFOV1pq?=
 =?utf-8?B?eXkxdzRtME9XSE1sVU5iN29TSCt0MWI3Ym9tekx1aGZ5WC9oOG9VWXlORXNM?=
 =?utf-8?B?aXVkZEZKZTZHb2ljZ0tIZG5hY2VxN3hSOThnN0J1TGNReWpoUWZVaCt1c01C?=
 =?utf-8?B?T1JNcDRqTStvanN3SUNyQ0VzalVpNXVvMHQwYkNuTks4VXNGSlJGTk1TRCti?=
 =?utf-8?B?T0NoQisrNzErZGRTc2ZKTnZDYUlwOWQyVEk5YXZiSGZBUkNwVjNTUEJ5MHZv?=
 =?utf-8?B?VG9YRjZ6L3BQZjhaWGFjSmEweDZqMUw5Z2p4MG1nTFpXZmFYMW16UlMzbXo4?=
 =?utf-8?B?ZFhobHJoUU9rSm12d0xGUlVYQkxYS3ZabkIwcnExWGZ5cSttaUlibnkybjlr?=
 =?utf-8?B?S29GRjdHRnF4dzJSVEluQm9ia2JaS09VTHAwSDRXRGtrWHVxMmxITjlvR0Ux?=
 =?utf-8?B?WCtSZzFRbUNtSk9SSThzQ01LOHVMT1lkeVNsQlJUa3kzTlR5Q0NTVGJsZ29Q?=
 =?utf-8?B?bVkwUVNJNS9VanNSNThWcFRZK3B2UkxUdjVCQjdrTEVGcGk5UHJpcnFvUEVP?=
 =?utf-8?B?ZlUvdnF6VCtqZk1PVDdsU0t3dThaQzNEV0p2WHk4WnJ3Wmc1N1NLbnMxbTlM?=
 =?utf-8?B?S004UU12a0c5cEg2Zkx0SWtDOENKWXQ2ZEpWMmRPTjBEQm1FOG1jTXB5Wi9G?=
 =?utf-8?B?eGNlS0ZDUCtnRFBxSWh5MXRoQWhjajNrQkZzL3M4bEtoS1dQYm4vODBwK1Vi?=
 =?utf-8?B?ZC9jaXhIY0MxalZuMnZraENsT3AvYzA2ZnowblhhNktrWkJaT2Zka1ZFanlw?=
 =?utf-8?B?dk9WVFVJRDhXMXZDbkkvMFlwYXI0WnRIVVcxYVRSMGdXY1dndTBtbkpjV0gz?=
 =?utf-8?B?Y0tHR1AxSkxteVpwVlJ5Tm1MeXBDakxzeTRRQWJCTXRMeStDeW5uSCtsV3Bm?=
 =?utf-8?B?RWRZSWtaSGhCNjczT3V3Rms3S0FFVGFKMzlJcXJ4NGsyelg5MTIrdk5mdTNE?=
 =?utf-8?B?OVA3YXBScit6RkFuaWtjR1pWRkdkUk1SVFJ1R043T09CaklvQUxTYkpmTUEx?=
 =?utf-8?B?Vkp1R2N5UGhLMU9wVWtDaCtWNkgwYXd6cXFacUxlRUErYjF4VG1CdllQekVZ?=
 =?utf-8?B?QjRZcjVJd2FRR2pLTWpudE90V3RjWTlyK05ZSU14V0Q1RGpHUGpVdy9aekNu?=
 =?utf-8?B?bkdmSFkxUno4UEFQNTVFM3p3QzI0L2d3ZkQvZjB1bnFaQ21PQmFPckNlazR1?=
 =?utf-8?B?S0ZtdmQ5bjdISXlZSDduZzBPWGFrY1Jsbk1maTJkSm1YeU1qeGs4VXdwdkV4?=
 =?utf-8?B?MTBGOXYzMW0wZnFTNXF5WUhPSko1dGsrcExLV3NqSitJRjNhVlpOWTJaRE5K?=
 =?utf-8?B?YjhNT1d6UTNTTm54V0xnbnNSWGhhSGxmRlkzb3ZWRFMwc3FLT0hPRE92NC9F?=
 =?utf-8?B?M3A1REJpZlJ5cnVoMUVoMTRneVVGd3ZtS0RtVjlpNWRoL0tlNjUrc0tITG5s?=
 =?utf-8?Q?Z5Gw0E0LVI98EganyhmclumwaVQbmy/Xh5Pi5wvYuQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4a9f027d-7432-4136-8806-08d9ad8e1b08
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:00:10.1190
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KG5ATqAlGNMQEA8yxB8MCoV7aHFZM1o7+4drHIXoBeKSnfR/L+YL6tC46znL71Ys/I/Kt9u4COPCaXjxWRalyw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6175

On 19.11.2021 18:09, Ian Jackson wrote:
> Andrew Cooper writes ("Re: [PATCH for-4.16 v3] efi: fix alignment of function parameters in compat mode"):
>> Some hardtabs appear to have slipped in.
> 
> Thanks.  Fixed.
> 
>> Jan gave a conditional R-by which permitted a change along these lines,
>> but he's left the office now too, so you'll have to take him up on that
>> offer if you want this committing before Monday.
> 
> Right.
> 
> FTAOD I think I have done what Jan approved, and Andy double checked
> that.  So I am about to push this.  For the record, final version
> below.

Right, thanks. Nevertheless I think for 4.17 we will want to ...

> --- a/xen/common/efi/runtime.c
> +++ b/xen/common/efi/runtime.c
> @@ -607,6 +607,9 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
>      break;
>  
>      case XEN_EFI_query_variable_info:
> +    {
> +        uint64_t max_store_size, remain_store_size, max_size;
> +
>          if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT )
>              return -EINVAL;
>  
> @@ -638,16 +641,36 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
>  
>          if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 )
>              return -EOPNOTSUPP;
> +
> +        /*
> +         * Bounce the variables onto the stack to make them 8 byte aligned when
> +         * called from the compat handler, as their placement in
> +         * compat_pf_efi_runtime_call will make them 4 byte aligned instead and
> +         * and compilers may validly complain.
> +         *
> +         * Note that while the function parameters are OUT only, copy the
> +         * values here anyway just in case. This is done regardless of whether
> +         * called from the compat handler or not, as it's not worth the extra
> +         * logic to differentiate.
> +         */
> +        max_store_size = op->u.query_variable_info.max_store_size;
> +        remain_store_size = op->u.query_variable_info.remain_store_size;
> +        max_size = op->u.query_variable_info.max_size;

... eliminate these.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:09:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228604.395624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Ob-0002A1-BG; Mon, 22 Nov 2021 08:09:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228604.395624; Mon, 22 Nov 2021 08:09:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Ob-00029u-7d; Mon, 22 Nov 2021 08:09:49 +0000
Received: by outflank-mailman (input) for mailman id 228604;
 Mon, 22 Nov 2021 08:09:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp4OZ-00029o-GA
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:09:47 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e05f6f1-4b6b-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 09:09:46 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2059.outbound.protection.outlook.com [104.47.13.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-27-wZNV4UfJOT-cLK_yOQD66w-1; Mon, 22 Nov 2021 09:09:44 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6176.eurprd04.prod.outlook.com (2603:10a6:803:f6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 08:09:41 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:09:41 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM6PR0502CA0048.eurprd05.prod.outlook.com (2603:10a6:20b:56::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Mon, 22 Nov 2021 08:09:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e05f6f1-4b6b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637568585;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=dvlyTqJeCrv6l1qVRD5aGFi88tWPfO20qhQ4Pb3EkZI=;
	b=PRewFiH7ajn2Lzqgv0A28A5eiBQxEsDo77kRoHYs9MeqYL1MM/Evq+EJ1pJxDu+PripYPf
	doh4TXt3kg9quChooay4y9NvAVhN2Vtg4HsNpKPfv6fHlZ0tuSKtUMbs/x9+ER7gje18ja
	YqzR/JzcRC8iFmtM64Y/QIk619jqfiY=
X-MC-Unique: wZNV4UfJOT-cLK_yOQD66w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DgACxG9RNAaa6gkrMUO14/wWd3I74hiTMbSif4jJ3baMOosUYb6whIPgbTohf/uxa8jRDPtwAfbyuRtbGW0Xv+CO8eMfPbqRfgoSzgFJLsWXRe3WBCBIvdpCUa/XyT5JscwsOuWbe4QZdfsiOdzBvAmEy0O84yfHKapacw4XhhET9jdp7DnDb81FEsunzWQtedHT1b7LVJ4+LF4G8uVD+imV17rL3q9E5aUefh+lQHHJxnQuurpB7hDxx6WthywpmXef4iLcQLFidGJcb4nxKF2cNpECSDNU163M/qa7WCQbwMj0mfGX+um1346zcM2HZmkRc/ojoI4+lhhvFBQ5Ew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dvlyTqJeCrv6l1qVRD5aGFi88tWPfO20qhQ4Pb3EkZI=;
 b=Un2u3aKGzw3QVJyYIttPyj31WvmaaGGD/CeKdlZdNGWBaFK3P4pSjAFpIGKpU3CkcrK63zSU+TS3wac+ujLK1XkyUZbIgN1dmOzK2ozExbBMtlfROeSXR1+C5Iw5e0dWD7YPnOds0EqsJJVrtOlgdwDA1MnthKQhVq6AMhcovLireNei/HheG8qVzgD+QSW6XqFObdbfc7wSs8BXaOwf9WEvDElJjHmwIK1mEZZpTjfFuHQB5fq6GMCbxA6c/l+/IiZLl/HGLrTQQYItYBXUIG3UY3y7gfDzkEO4e3BYddFKgHz17nFGRm5gejV5OGBTvjMnJNsDLQA5KCF9Fzn/eA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <74e9ac33-0685-d1e6-6da1-36a6a113d6fe@suse.com>
Date: Mon, 22 Nov 2021 09:09:39 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>,
 Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Cc: xen-devel@lists.xenproject.org, stefano.stabellini@xilinx.com,
 julien@xen.org, Volodymyr_Babchuk@epam.com, bertrand.marquis@arm.com,
 rahul.singh@arm.com, ayankuma@xilinx.com
References: <20211119165202.42442-1-ayankuma@xilinx.com>
 <alpine.DEB.2.22.394.2111191721000.1412361@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <alpine.DEB.2.22.394.2111191721000.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR0502CA0048.eurprd05.prod.outlook.com
 (2603:10a6:20b:56::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c205a079-82ab-4d4e-b742-08d9ad8f6f70
X-MS-TrafficTypeDiagnostic: VI1PR04MB6176:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6176FBAAC6E132F494B3A3F6B39F9@VI1PR04MB6176.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	L0WpdJcKBBKUst+y/E+JZ7xdCKEhEBwCEpHEZ0QQ+Gpsj6Pf35KrQMdUdV0TVgHes6nI486Qn5/NISkDLwknV5oE3v03ds4rlKpmltSk78YLzEkH2FYi5mtaC3WZAq10tu52u9TZSBr0MhAkjycrdfVumQTCj7mki9uEL1+Ol1/FhPAlctljE/6nKyJXnXJzXFnyID4S7AA1ZnIQYq+5BD4N4lXcx/SA4l1J8cb+uHZpQXfFAgLeVRSxJIv9S2+wy2FLL5/irYG3JNOLAEWQMR0w/5UeORbrGd8HuekZDKzdEKhWh380bPqwDZQHUINBaQAu5M+HyQGchm8hVY9fzDZhhHozKCO7q+HefNhcvnjbe4v8PHEY/Mcb0hKQcCzYNyNrsC0nrA3UeQnLcEJaM+FY9OpSeUXIHjdj/JYMERBOPBYQyNfP8zDZ0bjNyMiE1JS3q/GVJkyncp/J92lBm+nxgRtrx5XUzudwMHlTpr+d6pcY1Rz0KMpzwM6XVbqk8e4tvjOlUe3gNhDQYutA/Jcp+9hHi7IgMwjg27NdqlNQGYUqjYUdO7XYYeMG2+WWxtbg+ZuV2ENHVQAqB1Mr9fxgRrgXRmeDSBDXPDIoVXB5WBYnikV7abKvpXnBppw3zsIcgJlOakNoPad7cWA1Prm7dMDQR+fVcUcccfRaKbDIxGG3jEnO9zt3BQsP56ZBZz21oqGGErKivb+cmD+wf77UHrL9voGVMeZnl2sZ+bk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(66556008)(31686004)(5660300002)(38100700002)(66476007)(2616005)(4326008)(316002)(8936002)(66946007)(186003)(86362001)(508600001)(36756003)(53546011)(6486002)(31696002)(2906002)(110136005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bkhaR1daVVZRRW5FeENRQWJUdnNZRUUvV3lla3NXUWZMU0FRMDFqcG41clI0?=
 =?utf-8?B?clQ4cVFNWW4vUnBSVktsNDN4Z2kvZHZiekZ0bk82MmNxek4yRWlsQzNLeTRX?=
 =?utf-8?B?UnJYRERWTGJhaFUxV2YzL3h6VFVRQUVKR3RtL3B2L1lLOGxVSmNrMldNNzBs?=
 =?utf-8?B?RTA4citmQzI1K1QrRWM1dzJjcy9BK3F0bjgwT3B5eithRE1iSTRLOGZKRjdJ?=
 =?utf-8?B?eXBHWk9xVWRXTk5BMDB4NDZVdFRjMUNQWkJZU25yWjRQd05IVDhreXc2RkNZ?=
 =?utf-8?B?UXhYTE1CUU1ZcHlhanpYbnU0VXVWcjdtbndlOEwwMmkvV1l5MmpKSUFsWE1x?=
 =?utf-8?B?bmdPZzhqNTdIcFFjWVhDSDBQUC9HZFM5My95SFBjdlFzSEVvR21CTVNvODAw?=
 =?utf-8?B?aDRTN1o0NzZuYUlVMkxqckdxQWM1aUlBaWFicitNRWFodHJqL3BBdHlYUE5n?=
 =?utf-8?B?NFRZelNkdmgwUTVGc3JqcVZmcGdPNTYzbjBQUWdmYmpIUGRVMFFpN0hMa2Mx?=
 =?utf-8?B?TjNRT01PMkJHL3BocFNCWDVRZEFTYmJDYy84Ykd3NXRCV2lSaUp1YTNNOXJW?=
 =?utf-8?B?c2VCM0F1QnVNTEQ5RDg5UmpyWVErZWxzakcraXJKQVhwTTV3Wkp2RWM1eW5U?=
 =?utf-8?B?YTAxL1V1UnkzMENzUjBQZ2Y0THJ4R0c1UGdFSGF1QjlpUFJ4ZTFDREh2ZlVQ?=
 =?utf-8?B?VEtMSDU3WHQ2N0dUcTFhTWF1MEx6S0R0N2x5NDFpNGlZYllUWXg5N0xVR3Fy?=
 =?utf-8?B?VmFoZXNJbG1VNzFXemJ1cEZ2VXU4bkV5emlXRjMraVk1c29iZGRFMDMxaElU?=
 =?utf-8?B?ZUxlNE5OcmZDRlZIWlhXUHJjOTFhMkFwRG92TzFlVVdMaEc0RnpjNmJBNDNn?=
 =?utf-8?B?YjRwQ21vTUs4RkhYRFBQZWNvWk5PYXpNdWQwbmlVcHFzRk8zRDhVVXBDd1V0?=
 =?utf-8?B?Q1prb2Q4QlBOWXBybUw3MmRGM2kzSFVYUVBQbEFXTGwwNGh6Q0ZxUmFCODVZ?=
 =?utf-8?B?dEhDS3JEenB3R2hQUGwxcjZVbkZFZi9JOVllZkhjZ09ORDZGVElqNjBYeFVX?=
 =?utf-8?B?Qk10Uks3M0dXVlhZZWVwTVFqc04zZ2t4OXNBTmh2Y0VpeCs0M0s1eUJMTGxz?=
 =?utf-8?B?SkVWOXNBR0Z2TVhDWkszLzVuTzVtUGNQamc3aXZ5UU1UUkZqWmQ2RXJIVi94?=
 =?utf-8?B?NU5Rb3FHYjBaQWFTWGJIcVNVanhsWUhIeDVlY0lkTXFoclcrOFhsbDd2czlz?=
 =?utf-8?B?dkxEcVI3ZEs5TS8vdUJZcTU0RXBIbDF3emxoYUdWWkVsOVR5dHl6aEsySGFs?=
 =?utf-8?B?cUlnSlNnZnhVZzRuaTR4V2o5NVhMQnp0S2tlbERWVmExbFFwOHFBN2pOZ2k3?=
 =?utf-8?B?TGJOdG51dmFuQmMvUlZGRTNrVnFxT3M1YjZCcWhqVlBPbmgyOGFLaWFVV1Vo?=
 =?utf-8?B?MVpZc3pXY1hrQUpXUTFRYkhTNzk4U2RVTU1tKzFQZStYNHNDdlFaeU1CY09R?=
 =?utf-8?B?UjhMMDRqdUU0UndrenNMKzdpbEZLbzVGOWtOcFBrb2hzM3dkTHpvcGM3d0dP?=
 =?utf-8?B?ZnpFUUZXREJrcld3a0hkNmN0VU9uemFmMTk0eGl4akM4WXdTbDAweVUwWnVj?=
 =?utf-8?B?VXp3NmVPcUNyazFCQ1UwQjlwWGVoazJlTk9BZ2l1WmJOTDYrMllkZ2lkaXdV?=
 =?utf-8?B?c0YvUXk0dUUxcEV3bFZidjZJalM0bUgwRUZ6MXlxa2piYWMvakZFblVoQWp0?=
 =?utf-8?B?MGozdTV6dkF5ZGVWNHdtTVlFanpWRGFDdWYwQzkzKzFCVmZNMGg3eGZjZ0cr?=
 =?utf-8?B?T2ZHeWZOT2dvb3RhckpvWmdCajR1VFZ3ZlpvK29nZkR0a0s4ZXdUcnE0UDN2?=
 =?utf-8?B?MjBiUTdBdmhoSFRTT3FTdWtmYW9zZmQ3SW1WYlRLV3BFdklWRW5yTjlTNVFl?=
 =?utf-8?B?VUxqeUw2SWYrV3dkK1lVK2Y1S28rajJCMktoQ3pWZTB2bjVRbDdVQ1JCZ0Ri?=
 =?utf-8?B?V2xvTFR5enI1SHZBNDhBeWpyTTRMLzJPR2dsZDZnSkNhczZpV2dnMGJNMGZF?=
 =?utf-8?B?SFd1R05yZzlTM25xVDFzVnhEWjdKN3kvQ0pzbE8rWlhIOXI0OGZSOGhhN3F3?=
 =?utf-8?B?VXBkc2d4Mm5vUUgwZ3VZWXF0a3ZhOGdGZk9veWlrL1hYM0NiVmQycEhkTjZy?=
 =?utf-8?B?TmpPSDl3T1ErRm5HZUU1SFNHTW5rUldIMzVCODJOSVBoNmNqcEQzRkI1Zmxm?=
 =?utf-8?Q?aO/307qe9b0XfzEg8fWKzpPA91HimBR1FtNfLa5JVU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c205a079-82ab-4d4e-b742-08d9ad8f6f70
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:09:41.2791
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GOKT7iQfDTh8W3PHytw7VH0aFHKx1i/gMjNfU3XBl6Rdgt4bp6QhfNOrzQ5ixnAVzIKbQssEsbxmtE/xrbWUng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6176

On 20.11.2021 02:41, Stefano Stabellini wrote:
> On Fri, 19 Nov 2021, Ayan Kumar Halder wrote:
>> +static int decode_64bit_loadstore_postindexing(register_t pc, struct hsr_dabt *dabt)
>> +{
>> +    uint32_t instr;
>> +    int size;
>> +    int v;
>> +    int opc;
>> +    int rt;
>> +    int imm9;
>> +
>> +    /* For details on decoding, refer to Armv8 Architecture reference manual
>> +     * Section - "Load/store register (immediate post-indexed)", Pg 318
>> +    */
>> +    if ( raw_copy_from_guest(&instr, (void * __user)pc, sizeof (instr)) )
>> +        return -EFAULT;
>> +
>> +    /* First, let's check for the fixed values */
>> +
>> +    /*  As per the "Encoding table for the Loads and Stores group", Pg 299
>> +     * op4 = 1 - Load/store register (immediate post-indexed)
>> +     */
>> +    if ( extract32(instr, 10, 2) != 1 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    /* For the following, refer to "Load/store register (immediate post-indexed)"
>> +     * to get the fixed values at various bit positions.
>> +     */
>> +    if ( extract32(instr, 21, 1) != 0 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    if ( extract32(instr, 24, 2) != 0 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    if ( extract32(instr, 27, 3) != 7 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    size = extract32(instr, 30, 2);
>> +    v = extract32(instr, 26, 1);
>> +    opc = extract32(instr, 22, 1);
>> +
>> +    /* At the moment, we support STR(immediate) - 32 bit variant and
>> +     * LDR(immediate) - 32 bit variant only.
>> +     */
>> +    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
>> +        goto bad_64bit_loadstore;
> 
> The opc field is actually 2 bits, not 1. I think we should get both
> bits for opc even if some of the configurations are not interesting.

Even more so that checking the value extracted from a 1-bit field
against both 0 and 1 is pointless.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:12:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:12:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228610.395634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Qt-0003WB-Nb; Mon, 22 Nov 2021 08:12:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228610.395634; Mon, 22 Nov 2021 08:12:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Qt-0003W4-KM; Mon, 22 Nov 2021 08:12:11 +0000
Received: by outflank-mailman (input) for mailman id 228610;
 Mon, 22 Nov 2021 08:12:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp4Qr-0003Vw-Iw
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:12:09 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e2da898e-4b6b-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 09:12:08 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2111.outbound.protection.outlook.com [104.47.18.111]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-7-b_6fewYDPiG-sHPdq8XvxQ-1; Mon, 22 Nov 2021 09:12:06 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5166.eurprd04.prod.outlook.com (2603:10a6:803:53::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 08:12:04 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:12:04 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AS9PR06CA0216.eurprd06.prod.outlook.com (2603:10a6:20b:45e::30) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Mon, 22 Nov 2021 08:12:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e2da898e-4b6b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637568728;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=mFkw2et8qdxmeLhhN6v/KQ5SW+Y1viEB5bxI7tM5hEo=;
	b=DFw3JKSMfarmPbTFuA8LRkFqfCrswnTHssIZ+Xdfbk0G4d2okDWLMC73ZDP47Y0mVpLfWc
	0D6kdliBLJITFEaqBDIjFVevnPwL3+nEpx/aD2ie/ktFFrYjnSYG1+pDB17M/eH0SGhZ8l
	kZR+MGpuVDSwx894/VS0Mg+KJrnzdFc=
X-MC-Unique: b_6fewYDPiG-sHPdq8XvxQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YDV1vJKJdZciZZSXoKkvsbWQlXUQF3S7nC+4cKY8QAMacFSsQlL/cWlboSjmr1xPmg9JSiW1c5NKGkOjzqHOjdu2mCteT1kDhHHPX7dcvhjeRBpX0cXR/jnysy9oY3EDBJz/t+60wWZQNFlTGQ/DY6FKs8UB/4USKX58s94THjgDPANgjvQzDT6e3l8rkKiUpk6/MiZM/cM+j4J62cRcseFsWopOjCMwr0YvYKxQtW53lvH1athnJqJ3dXH2xtKv7lE8d2ZxJoPV0/hAqVmY3CEngvxj8gTaiRu3LeK8nHwKzyTpB433XtqsiD/D9E6reM2DHGTTBhJ5QHyT19/M1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mFkw2et8qdxmeLhhN6v/KQ5SW+Y1viEB5bxI7tM5hEo=;
 b=frE9DUM1ukcPsnaK2c9LdeKbCtoBbVSGN5JMQChbh4Xjfji0vzNSO6ONX4XrPU1O0dnbB/9/hE+CElYIK4+qAjKFYeE28uvhyeQnbJNCdtKeQCx9A27rKmBVpG2iTwe+k44Mqi8/kZI0PO07kzg3Ys1g5z05EfiAkjTNSfqOdtT1eVXHiWe6UiCRSYK0JHlCTm5hvoru6hwmogBC756JARsYqgdFEHGwx5MXDjtg8LohevrJS3uVlth5CcuUTvXX2Ok62KzkcQdgl5T6r4XU21U/X7r27GToH0OXzIAqqmicckIq0fYTtal8sFUpDzOp0JHlQhcNgeHbSL2qEFiM3w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <25431a55-6103-3301-96c3-806689da327c@suse.com>
Date: Mon, 22 Nov 2021 09:12:02 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Content-Language: en-US
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Cc: sstabellini@kernel.org, stefano.stabellini@xilinx.com, julien@xen.org,
 Volodymyr_Babchuk@epam.com, bertrand.marquis@arm.com, rahul.singh@arm.com,
 ayankuma@xilinx.com, xen-devel@lists.xenproject.org
References: <20211119165202.42442-1-ayankuma@xilinx.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211119165202.42442-1-ayankuma@xilinx.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0216.eurprd06.prod.outlook.com
 (2603:10a6:20b:45e::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 67adb961-0754-4ac3-6a66-08d9ad8fc4b6
X-MS-TrafficTypeDiagnostic: VI1PR04MB5166:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5166AE0B857A14DAA8517E26B39F9@VI1PR04MB5166.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hodEfkZFrZqP5nDtiP5XIjN7wvrGXcbt0F4OhQuZiHffePjFIvBFM1evjNnjywevKwv2w7v2hUxp+s2UwecQXuGj+MrUw8C0Z7BQH7Yc45ghddC99dHNMtooJt/JoKTiSYuqwRwrZQktEmu5C5TBtphFQCthW3m+X005s7epo/aADLIhQTYqWfinFhbxzSTWQXPywUPDtQxdMbWGLX5ZrHLMmKv28xO8ioDqvmYtIBBT7eB1NCMohOG5kTwcgwmeHKyHE30F1fWrR55NS4Sui3glny20eNLCxPVzBC5nM6/PHCaUQvqSy4UZaYIdEQBRog6jG51dthhX3aTmuM78j8qYn/kw3qAOz1ruxzkLoGuzsKcoF436Q2+hdwv+aZ7qxxU9iDZFaPgNm+1WJieyh3izWw1jPniW5Ok2jZI4zzjptzGxU3iKRFEl2QDfKLxxDuEA6PV+yj7UrLfbWjvo7uYxxMGnWXeZL+2c1jredoRK+6HT8RRCPIDrpKtuucoPEmFCnmcOFowikq8jQdvMwlQDJBYUz4rQmhWUD/5LV/roenIDLuXRuuu5xt/bv+KZt0OUulzY+T3Notx6XiWiCySDx7AQbD0gmWLhw31PYYAe9rrdvLwiO1YIPBCvgYRFvZwFc4GxQR9X4aKDvd6MTHMLnAVmBLS12s22VPwFh3iZhO9kw+Y+90dbzn6xjNuDmSj6zS4AqgiqYXbT9PS07TKA6eL23jEokTyR13qClZpL/MzaNMGNo+/c/AS7Y4WY
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(53546011)(31696002)(2906002)(38100700002)(8936002)(508600001)(186003)(2616005)(5660300002)(66556008)(6916009)(66476007)(31686004)(66946007)(4326008)(316002)(8676002)(36756003)(6486002)(4744005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V0J4RWIzRVV1SGRPVm9uYmswU2VCMkErK1B6d2xpVG1aenFTTXlwN0hqV2xw?=
 =?utf-8?B?NXlGQ3YyWUUyRE9yQ2R4dEJSVE9LWUZWc3U1K01oUXhTU3lrWDV4UHFJNU02?=
 =?utf-8?B?cHArOERQZ0JGOUlTQXdBd1pmdGNLUkJGMDVXRUdVTFVLeXdkL3BkVjNKeEEy?=
 =?utf-8?B?NGd5SmxkaEsyWGRFamlaaHpQcG51WE9YcjYzQTFDZ1FRa3E4TVU5RzQ4ZDVT?=
 =?utf-8?B?aGtHZXJRVENFYnNvUjdSYlpCbForMk1WMUJMY1hBZVBUaXpJVkYxUDl1eERX?=
 =?utf-8?B?Zm5ML1hHRW10dmZFWk4vb1BTVTM2cE50NVN0R2JmV1ZycGZjQkhuMzYxc3oy?=
 =?utf-8?B?eE93NW9wUE9rUVhnYWw0TFRzdytUbkh6WUtjVE40ajBmMHBqZWVjUjUweDdJ?=
 =?utf-8?B?bHd0Ykk1THJHampTNHBTRDcrOW9WenY2V0c5TTJiblNmRlNRbVp0VkFhVDc4?=
 =?utf-8?B?ajdna0twOUtSeCtReXpFYm1heWcraTJuTTgzVHpUcVFJWHdDczc4cVo1VTlR?=
 =?utf-8?B?Q2xqakNKSFJ6WlE1UGFCWCtQUEFyVnN3TzVVaHBMcWROUzFVaUhaNmIrL2dX?=
 =?utf-8?B?SktFeWc2SjlwZDdIUHVHUzNuYlg0TURpNkhOcFAwWmJhMWdNWjIwdFBEamlH?=
 =?utf-8?B?Z2xOSDdFaE13N0NQMEl4SnRyQnQrWnR5Ti9TOVJuRHJ5NWRZaU9TemlHMGFu?=
 =?utf-8?B?SFFxYkFrSGdORXMxMnlIeXZZUy9jL2pWd2haRTREbFhyaUVKanlOQkxpMk1V?=
 =?utf-8?B?azNNQmhIQzhUNDhkYWpvMDlGTVJ3alBFSXZJQ1NNQ0RUS1FSUEcyc1lJeVFI?=
 =?utf-8?B?L3JTeUtPdVJ6NXlEcWR5RlNCTnhBT3BHdXF3a2h1L3RzV0JzKzROZHUvWVFo?=
 =?utf-8?B?d2d3bS9VSVY2MnBudzJnY25kdVJNYmNWRndTWVYwTi9OM2N0eWZQREd6cTlv?=
 =?utf-8?B?SDNwQU1JaDBIUDVHdWMyRmhLQWYvYTN1QjM3ZHo2ZmpDRzg0MEp5YzJRUkRo?=
 =?utf-8?B?NDZOSkV3dGdIMGZJT2hUaEQ4TVMxNUt6SVpvSUFSZjhCdFovWmJTVkFBVm1Q?=
 =?utf-8?B?NG5BcnVZQVpJaHVMMEppamxCYkxraWhXYWVSZDRzQ2RFWUxrNDQyelFsL2Jv?=
 =?utf-8?B?dU9yRWwwUjNoQUJ2WW1MYmhDOFJtTjhZNVd4M0N1K2FJYm5WYTcwSXYyOVU3?=
 =?utf-8?B?bWlUb0cxVHlhR3FtdmdIY0dGbUIrWk02aW1xKzY4MzFRc0FvMDhZQ1RDRnhv?=
 =?utf-8?B?M1dxN1JuTkdYbTV2R2hTRVdMUVZySkNqWG44M1RBMXVSc3Zjbjg2aTVyS052?=
 =?utf-8?B?MGJmUVppZXJGeFZhWGt4dGJkMDlNUjdxaFJvKzUxYmpTb3lBL1JtdksxT05n?=
 =?utf-8?B?YTdyQTRjRkFReHZYU2ZTbjlucjVuZ3NKODFnaHgwYkZHZEpqa1NrcmhoTXFK?=
 =?utf-8?B?c0dFMXZBSjJXS2hPKzB4cWllUmpxUHRIZytZT0dpNWJpcjJaTitRTjA0Q0NQ?=
 =?utf-8?B?YlV3MS8xTzlqbmx5L2p1M3NVeExscVN2Qy9sdEE0Z29vdnpveTBTT3lZWXhD?=
 =?utf-8?B?Sk9Oc3hOVkxCazd2dlRtSGhyNkRHT09iZ1FteEo5eFBOL1FTU1E2K3Z4Snhq?=
 =?utf-8?B?bEVVaDBGQUZwSHd3TmNaREtJR2hBK1N1clJudGR6M0xTcVpYSGU0c3dJZVNj?=
 =?utf-8?B?TmFnbTQzaXFkM1NSd3oycVlnbnN2UlMwa1Z4a3JjWjJ2TzBQa2o1R2hrd2xK?=
 =?utf-8?B?d3dlWm5OVm1sUlZ6ZUxsZkV1Y3U2eDJZZEVPSDJSczVqYVZwSmJjYkJPa2R3?=
 =?utf-8?B?QXJZN3pNNzZHRCs3YWJiRUR4a3I2MW9CZ2NwT0FxNFFUaFRKNXkrTWxqcEUw?=
 =?utf-8?B?VVREeEhzaEZOVkRiRTNZZVJkTVY2RUdqOEcwakYzQ2J6eG1sTG16L1ZEMi9R?=
 =?utf-8?B?SGNiV0I2dXZwc1hXdzhnY3owZkcrR1p0MVZ2QnpsL0JjZGx1SXNNNnZSMjdQ?=
 =?utf-8?B?ampybzNlbUNscWRYcGhNQjk0bEJteGpsYXZXRmp4UVlITkgxUmJ6MEtTQUwr?=
 =?utf-8?B?RmhhMWhnaU9zTE4xMHdSblpscFRKWFBqUGtpTkoxWnQ2Uno5VXo3cmQzaW1U?=
 =?utf-8?B?ZFMzbW9mTVEydkVoYmxUdE50L1dibnY2eDZUNzJnRTdrRjJKWmppcVFHR1lS?=
 =?utf-8?B?MGIxQm9MVjJsVkI0UTRVWnpTeUtjMlMyV0VPY2p4UitYVnB0NnNQNC9SM3lk?=
 =?utf-8?Q?e/VRqV78EKOdXlgmYFHD+MrLM6KD64cTg+e/RVzRgY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 67adb961-0754-4ac3-6a66-08d9ad8fc4b6
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:12:04.3182
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1cttQVNvKmFm5cSKmpfxZlHlYdKq5Kg23G36ppwCd7NUoWw9h3MVKnvd5P+8rHnzOvg6sKF0HwKTjnWoxkR//Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5166

On 19.11.2021 17:52, Ayan Kumar Halder wrote:
> --- a/xen/arch/arm/decode.c
> +++ b/xen/arch/arm/decode.c
> @@ -84,6 +84,80 @@ bad_thumb2:
>      return 1;
>  }
>  
> +static inline int32_t extract32(uint32_t value, int start, int length)
> +{
> +    int32_t ret;
> +
> +    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
> +        return -EINVAL;
> +
> +    ret = (value >> start) & (~0U >> (32 - length));
> +
> +    return ret;
> +}

In addition to Julien's comment regarding the function parameters - why
is the return type int32_t and not uint32_t? Plus as per ./CODING_STYLE
it really shouldn't be a fixed width type anyway, but e.g. unsigned int.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:19:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:19:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228615.395646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Xj-0004Bm-Gh; Mon, 22 Nov 2021 08:19:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228615.395646; Mon, 22 Nov 2021 08:19:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Xj-0004Bf-CP; Mon, 22 Nov 2021 08:19:15 +0000
Received: by outflank-mailman (input) for mailman id 228615;
 Mon, 22 Nov 2021 08:19:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp4Xi-0004BZ-Dz
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:19:14 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e0284d31-4b6c-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 09:19:13 +0100 (CET)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2051.outbound.protection.outlook.com [104.47.1.51]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-30-2-T0X5JWONiaPyncBsMOhA-1; Mon, 22 Nov 2021 09:19:12 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 08:19:10 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:19:10 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AS8PR04CA0172.eurprd04.prod.outlook.com (2603:10a6:20b:331::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Mon, 22 Nov 2021 08:19:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0284d31-4b6c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637569153;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=39/0g2SzU8HUJukvSuZg7AOZ8QyIF2Obt+fhEhbSBfg=;
	b=MCOI1pgDLXejvMq7MYpc0+sqv7fI+wLb974ukm/mzchE3woG4mEc6XeY0gNkrKrV1CXxv9
	ZUy2mQq9Eq0aOiLwRtbG0njYzeTSWDyuAL7lsPKL2HU1IprQTnTFcdTrdeX3QMcp4G0dkT
	NjFzamTbwuLaGRh/QRNwl9eZpG8VLtI=
X-MC-Unique: 2-T0X5JWONiaPyncBsMOhA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MoR62OLPOrhBTMWtqE13q/f+hRcFxzt06/DkecGukR5z39WHwhC9tY3qvo/D6Ec51N7aFJXmLF/ZNER0IKAQ5NgAki8nMuQzh5x9koL4EnM8WH/51bqFUfRLX5PIHL49tIshPhChxyz2H/hN5J3dE29MDjPfTaglReBqlg8SNiVTUyg6zeFEtPpwn3N7lg7PYdbj4JOcXNoubLJQvzq15CGlCrBH8Ca4eMWWslQy966AvC5RnkDB1GboOmOKziiP1UBuOym/o24yOvMgME7JmHhfiv71IPqFEdYNttpF9zmycoFodrDjp219ygoSMmZAHGw2LkAH9H2okHFl0InSjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=39/0g2SzU8HUJukvSuZg7AOZ8QyIF2Obt+fhEhbSBfg=;
 b=nKfb5rlLSCMwePYegfB7fy/bPlBYEOk4pz0YBxKc7RyKcHkLRuyaSUHWHS4Kmg1YrfoIDVAOjY+8B0OCN+ptMto9W6nVIRMARuE29KV1BgATC/xyqhpQ7esPFZtEUI/nWXUiH4k3M6b6tFmXU8Q6bhMGISlB2A2LnMZ8xlyC1LXNnYYCP9OCI7PcNe7dPyO5muRZSi6CiQAYnEt5wbESv8zv7/D5oBLZYxQqCVAqxDHUKjYVxAhpIRheYM4O1cGtQAOpK11XIIhue4iKEWurFTrwkBG9E8h8uulmCEUZcz5fCc+1Oxh2q14TzHeB/BzHiF2rw0POym+ljU9OInp6Gg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <45473e8c-4466-d847-3442-73aeb8250875@suse.com>
Date: Mon, 22 Nov 2021 09:19:08 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: Xen 4.16 development update - tree status
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>
Cc: committers@xenproject.org, xen-devel@lists.xenproject.org
References: <24983.49015.777430.780265@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24983.49015.777430.780265@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0172.eurprd04.prod.outlook.com
 (2603:10a6:20b:331::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9ac1b839-1b44-42bd-3655-08d9ad90c2c1
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5325D8379D1809B493AA4DE9B39F9@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	oosY3oTLPDDLihR7drBcdUE+qJAHFdJHusA+ySm5PruyjWJrAvBpn2Fvah2kju0eMpZOe5hLXP2+/4WWqN7rG6HpYTkyrOvYAFGBKFF/YOZ7pqUPeW/rlU5IxCGYoqnyR0/yh5BRNo9UeQWGwdPN6xqxLM6yCJ7/fwV8ouj7MlOyjTlubicy7ui/fin2o6/2dHQihOr09FOpqwET8y1lGen5+JuT4G6YkSKyWYl1Lh8fuw47xmXx/THawsPGbVgVvDDu8y81qBrOgB6Q133K3g3Hr0dv3SDODKBNxzp8raErA1W6Nwi5xlyN1y6QWpTgn5gb1XV1laoBXTp3sYf6U1ziD//HlUPWv6JtpK5m8XFNYuIYp/vcaY9PrBrCajEPCztEOUU9tgQC16Ce+wuxOQlbiyNzT+sr5hDSFZeAJT/SbhiVuXe5VuVy5FjWJELWgYz+prlGaZLHGHL+FXUaqDqW3MBljjgk48UIvx5zFZKYFJXMgZ457q3U7BFadtohizkks4aaE+lSbCKUES2z4/H2axQddJGsBSp9YRV/EZXW0vJiJgeYU9XgUOaV0xzRmbMSFAvthzJ7bOuxFVHPfiYVRs47+/dP1d9P6d/+h0ADHsOn3aLjCqoTvJkV9j3vUAc2RGaqa3G4gcf+o6fKkxuJ9nZ6MFQdV45RVqOdHQ3NtYrnLR1skQo5Da6m5tCYi0/sntKMHhZK4c+Fhd54b5+ug6Q6DOgjdu/WC8nDeB8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4744005)(86362001)(6916009)(66476007)(66946007)(53546011)(31686004)(4326008)(508600001)(316002)(2906002)(2616005)(36756003)(186003)(5660300002)(6486002)(8936002)(38100700002)(8676002)(66556008)(31696002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UzV5TnlnMW4rRFZhNWk1czBManl1QytVTU5EZlZFS01lWXRnUlFGNWJXNkNF?=
 =?utf-8?B?alNXSk5IamtjaWpmUXRHUjQwc0U2R3JHODRSUERJek14d1lXeURtWTVKWS9n?=
 =?utf-8?B?aWxPcldia2lDNmdDTXlndGhQZi9EYllDcUpHLzlFU1lyYlBjbGlLd0pTZldH?=
 =?utf-8?B?VHN4Mmk5OUQyc1lkY24zUW05aENWYkhEZTZJeXFLZldSaXkwRGYwZnJmdGRK?=
 =?utf-8?B?RHRvem4wdWJCZkFDRy9OVmhFNHc0Wm9nM3ZBSmExL0tRaXdYbmtYL3VmbEZr?=
 =?utf-8?B?Q3IySXlzUEx2SkpZZUM1U29ZWXMydW9oN3RqaXBUNCtscXRQVGUvY1ZvckdJ?=
 =?utf-8?B?ZkhuU2FBam9QajN3aHFLYmdoczhLdEtUcmVCZ0hwbDQrTDlDZEkvTTZ3UEd3?=
 =?utf-8?B?OHFUSXAvaHcwWmtJR2s5cHA4K3BUY2lqclE3MkV1bUJVZ2tBZGJ5TGFtTUlH?=
 =?utf-8?B?UDJYempjUnBDUU1MT1F0WEs0a3ppYmVaSFcvYVlWVzQ3bVNPemZXdFFGamhl?=
 =?utf-8?B?SlRrQmRFUkZad05RSXR6YVRRbkExQ1ozandZaElENzdkTytZTzFoWjI1dnQv?=
 =?utf-8?B?ZUJrcjdHYjAwbXJsZnNxTFJUK0RldUJGMFR2ZHZsMmRwYWhlV1FnZkxHZnBN?=
 =?utf-8?B?YXdIT0R2OVkxRDhFbVFndDcveURBL1hRMStqZGFjZ2tnMERnOXJMNFZQMGRQ?=
 =?utf-8?B?ZE1JL0hFUTlsSkFwU2IxSFdERDJNUVZ2bVBqZ0hzcFVOOWFQVnByalJkb0Yx?=
 =?utf-8?B?STlkYm50dmVVR0pnQmFRb3B0eFI4aXMwbkhWWW1oSlJaa215bUJxSXZWTG1l?=
 =?utf-8?B?K0x4TVVYeUpvekp0YWpPQTJseklRNWxCeUlrMmlSUDl1ckpJRENzNHNXOVds?=
 =?utf-8?B?VXViS2JuT2JobDAwa3RXS3ExWGMwTURBRmVUTXdGbTdRR0JWbWl5dDkyUHNa?=
 =?utf-8?B?N0FrY0hoeGtOQm53MUlmaDFZdVpNOGE3UndqNkI2bnhoOW1aUmFneTlCY2I0?=
 =?utf-8?B?N0hTb3U2L05ieDZMcGFPc3RNbTd2TmZpRE1tNFBMV0J2dG9JSDkzdW82R3ZJ?=
 =?utf-8?B?STk3U1BndVAraEtmK0MzQ2dNZUZxTTNLVFFXY2wzdVU5bml2cUNBSnV5WERz?=
 =?utf-8?B?a0xmT1psbkg0Q3RiWmNlalZaMXpncGJXRXRhZjBERWxvRG9OYmdzc3JoQnht?=
 =?utf-8?B?R0w4ZW4vQ1hpOVdEZXNZOFRVSWRpRkZydWdjVHN3QW9wNXV2Y0xKTUVxdGdI?=
 =?utf-8?B?akl2dysrK2NNc3g1RVU4TkhuM3BxNkFGNjhHVmFKVkhMYjRZcnBnb01IT1N5?=
 =?utf-8?B?YkVndmlsRnNsbEE3RFRpb0ZQazVZMllMOEZOcnR3U0tqWWE3dXVEZzRFSzEv?=
 =?utf-8?B?bEZOTEFIaGtmV3dRdDNId0lxc21QZ3R1MGZMcytVMEZtZmZkWERRMEhnaHB5?=
 =?utf-8?B?WjBIMGFtbW0vUFJLS1VIVVdjdDhZdm45TDFpSEVjMlFRZTJsRXRjQ1pIR1lT?=
 =?utf-8?B?VnpWRzRhL0Q1cTRkeWJpekhCU0krR0Nkb1RUUGp5bllIZXVReS9DeGNmVTdm?=
 =?utf-8?B?ell3eFd6MG9OVmswN1lOODN3V0lLYVR5ZXRZZFVJNE0yRXVZak1SM1U2TG1W?=
 =?utf-8?B?TjRhdWtYSzdLWFZOZURXUVVtdklqMmdoRkxxWlBSaXNPM1M2NmFVek5JS2ZW?=
 =?utf-8?B?ZFp1NW82MGdjMThuaHIyMlR0eHo5YkxaZmNEZ3dRWjRWeE9TTElOMS9ETCtW?=
 =?utf-8?B?UVhXV1B5OVR6SUJFTVhIK3lQS3M5UTA3MGRSM2ZpbTRsNU1SY0NzUkF1OWNU?=
 =?utf-8?B?dnRCZis1ZFNTU2E5K1JVOWE2ejhuTGQ3d0tmSUxpcGtmbWJkN3NSYWtKNG9V?=
 =?utf-8?B?MDVud3Y5VXdNL1g3eHZYTmx0c2g3b2RSeDdXUzZSdjcxNjhIREp6RTZIUGlQ?=
 =?utf-8?B?ZXNZSjYxdFhhekN6UmI1RDMxSE1tdUtrZEg1Lzkya3pHa2J6dFlWSzRJaW5J?=
 =?utf-8?B?djZUN2dRVmNXWGNGS3JYZmxqNjdkZ0pEdFcrZ3ZoajhFVmUxOFE3ZWNxNUJZ?=
 =?utf-8?B?b3JHTDRwNThpQVB4WUFNTjZmZGRtbE4xeFBPdExVN2RBUW11ZmlpSCtySGo2?=
 =?utf-8?B?SUFoQVllenUrRnpEb09sSlU0YXh2SnlIRlhIWnBHWUtDb0w2YkJPQkgrM2U4?=
 =?utf-8?B?S0xObHpFNllyc2xMemxUYms2TDhwZTkxZ05hUXgyRnBFakVLRTJEbjhjdmxV?=
 =?utf-8?Q?RKBypbGuyff+1VnL4KGBlWT1V65Ds8FpIokhW6fOaY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9ac1b839-1b44-42bd-3655-08d9ad90c2c1
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:19:10.5513
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qWBtXhdbZA3Nn7zvjGJGI5EIqVHJx9GF8o5dyiBpNsuZTO3JFRzav5JEAcPD1Mm6gQAyDRhYazmKh4Ewe96+LA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

On 19.11.2021 16:15, Ian Jackson wrote:
> Tree status
> ===========
> 
> We are now in deep code freeze, during which we will try to discover
> and eliminate serious bugs and regressions.
> 
> All patches other than documentation patches need a Release-Ack.
> Fixes for serious bugs, and test improvements, will get such an ack.
> 
> I have decided to branch on Monday at the same time as cutting RC4.

May I suggest to consider doing both branching and RC4 after the XSA
batch has got committed on Tuesday? Or perhaps you did consider and
found good reasons not to?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:20:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:20:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228620.395657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Z5-0005Y2-Vc; Mon, 22 Nov 2021 08:20:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228620.395657; Mon, 22 Nov 2021 08:20:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4Z5-0005Xt-RK; Mon, 22 Nov 2021 08:20:39 +0000
Received: by outflank-mailman (input) for mailman id 228620;
 Mon, 22 Nov 2021 08:20:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fXQY=QJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mp4Z4-0005Xj-29
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:20:38 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 11fd61a0-4b6d-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 09:20:37 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 5E06D212C9;
 Mon, 22 Nov 2021 08:20:36 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id F03F313ACC;
 Mon, 22 Nov 2021 08:20:35 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id Ye0DOdNSm2HEMQAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 22 Nov 2021 08:20:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11fd61a0-4b6d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637569236; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=Ff3sFJnwHj4g47uQQ2WaQKizkxdoi19uAVGPOc0LUYk=;
	b=iZuH8N02ke6VpWOFbNvwci86IpLj6WoPAcypg/xzyuEndH5+rn0W4QbabTkCYJtWYJ8Dfz
	3X32MQcKvBCvmgo02rIihHMrRKOrt6rbI0RLss5Mci8NdQoXldX6ee71bluqqXIbUh+Rw6
	1uSX+eEVIgasLIjLP2aITuWCi2w0vaM=
Subject: Re: [PATCH 0/5] xen: cleanup detection of non-essential pv devices
To: xen-devel@lists.xenproject.org, linux-input@vger.kernel.org,
 linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
 linux-fbdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Jiri Slaby <jirislaby@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
 Takashi Iwai <tiwai@suse.com>, alsa-devel@alsa-project.org
References: <20211022064800.14978-1-jgross@suse.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <bf5a4749-0216-53db-a022-ef4f84d823c5@suse.com>
Date: Mon, 22 Nov 2021 09:20:35 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211022064800.14978-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="XEaNfdRUT9nxGyjL4aqukte3olVamRRGk"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--XEaNfdRUT9nxGyjL4aqukte3olVamRRGk
Content-Type: multipart/mixed; boundary="OWjDMMJSeGZf17EglbIPG7kS4okiXpxXj";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org, linux-input@vger.kernel.org,
 linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
 linux-fbdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Jiri Slaby <jirislaby@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
 Takashi Iwai <tiwai@suse.com>, alsa-devel@alsa-project.org
Message-ID: <bf5a4749-0216-53db-a022-ef4f84d823c5@suse.com>
Subject: Re: [PATCH 0/5] xen: cleanup detection of non-essential pv devices
References: <20211022064800.14978-1-jgross@suse.com>
In-Reply-To: <20211022064800.14978-1-jgross@suse.com>

--OWjDMMJSeGZf17EglbIPG7kS4okiXpxXj
Content-Type: multipart/mixed;
 boundary="------------2CA7EB0B620BD414B5FABDC4"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------2CA7EB0B620BD414B5FABDC4
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 22.10.21 08:47, Juergen Gross wrote:
> Today the non-essential pv devices are hard coded in the xenbus driver
> and this list is lacking multiple entries.
>=20
> This series reworks the detection logic of non-essential devices by
> adding a flag for that purpose to struct xenbus_driver.
>=20
> Juergen Gross (5):
>    xen: add "not_essential" flag to struct xenbus_driver
>    xen: flag xen_drm_front to be not essential for system boot
>    xen: flag hvc_xen to be not essential for system boot
>    xen: flag pvcalls-front to be not essential for system boot
>    xen: flag xen_snd_front to be not essential for system boot
>=20
>   drivers/gpu/drm/xen/xen_drm_front.c        |  1 +
>   drivers/input/misc/xen-kbdfront.c          |  1 +
>   drivers/tty/hvc/hvc_xen.c                  |  1 +
>   drivers/video/fbdev/xen-fbfront.c          |  1 +
>   drivers/xen/pvcalls-front.c                |  1 +
>   drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
>   include/xen/xenbus.h                       |  1 +
>   sound/xen/xen_snd_front.c                  |  1 +
>   8 files changed, 10 insertions(+), 11 deletions(-)
>=20

Any further comments?


Juergen

--------------2CA7EB0B620BD414B5FABDC4
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------2CA7EB0B620BD414B5FABDC4--

--OWjDMMJSeGZf17EglbIPG7kS4okiXpxXj--

--XEaNfdRUT9nxGyjL4aqukte3olVamRRGk
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGbUtMFAwAAAAAACgkQsN6d1ii/Ey8C
1Qf/YfoBv1l6Tq2f0wMBQKsAOR+FYHvpwvebr7MgEpYdc2q31N7iFloujufNoVMHVVzMT1ALCHr6
cQEwSvk+X0mXidxvXBLYi/ZMMJ5F/fKtK8M151B9E6XJ7rBikW71qu/3QbVbhqrVEw/nx73zyk3v
OFc78wOoxCjYlkYffnub22qaVhnpYgrO3lka2nNEditpGCbIvKNcINTUp0exBLMTQxc3xZyvyNwR
ZllRNBQrQacpDXFKr6mrmdLY1EYIejtoPaauTMBi7c/RBJCiLoNE4sxmV5u473jVZ8T9003BQ8qr
9fWvu96QdIKHjAmdrdYobCzxRddVjj+QhYzqrDiFTQ==
=GTer
-----END PGP SIGNATURE-----

--XEaNfdRUT9nxGyjL4aqukte3olVamRRGk--


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:23:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:23:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228628.395668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4bI-0006Cc-CL; Mon, 22 Nov 2021 08:22:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228628.395668; Mon, 22 Nov 2021 08:22:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4bI-0006CV-8g; Mon, 22 Nov 2021 08:22:56 +0000
Received: by outflank-mailman (input) for mailman id 228628;
 Mon, 22 Nov 2021 08:22:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp4bG-0006CP-F1
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:22:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6343edcd-4b6d-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 09:22:53 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-4-WqWxDfYIO5aFcL0qvhAUbA-1; Mon, 22 Nov 2021 09:22:51 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6863.eurprd04.prod.outlook.com (2603:10a6:803:12f::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Mon, 22 Nov
 2021 08:22:49 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:22:49 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM6PR10CA0046.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 08:22:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6343edcd-4b6d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637569373;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=INHgGKvZ7J9BqoOIY2LizWK5P3dRIRX3ASzUaxhZbh8=;
	b=nGJJUHZnHLBW5a1XjwWAAYn6HhOM1AVjyLzuk0+cyZ+wL935/u65fl27yqpmKZbghwxv1v
	Ii6k1Fv7bFPkXY+zWt2QkUec8ir0Sxnb58KM6rdQuvKNXMxO1sal1XOdMbzow+7Dd41lB7
	LdUT/AnQLbACjyx+1K+a3kT4/0r7loQ=
X-MC-Unique: WqWxDfYIO5aFcL0qvhAUbA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FEt62aeM9TeXKzjrQrin8VYFspvhideG5GhftSN8e9KM3Uin86peGsoLhADNE2CCxIFevgUk7Zc26j4gNG9LH5wadBFlxCy1ky17BwuCx+Vi9p1BZDumW3AudJMejeY1EMVxuWN5lUcYhifOPPiFgbqLGL1uKoRfx50DD9GW4hsTwiP2+X71rGeYr8GZzARR+93a1GMICBmJEKkoOcIDJMJ6PoTUfqtGvsab+k8G5yZTsiJUYO3fvuRWSHXGrkSb/rLMkN3K3UWVpJeX9BS63S5PrCkctt2FD34KIQD/xPZ47U6mRAalWihXXH0m1lzp3qjzDNJLnWKrnmjk95pDBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zkls5gk1OntpBnh9GGUvdUQ/dDwH8A2O4xU39BjMyjs=;
 b=VLEri8R0XwLPxPLSGlVim2fHrDutp+mY8aLLZOs4/WZlavVrmLJBy1PvWCV0BJRK8A6ceQMuNS+8EySF4V8u0wLjA4a8x1ga/9xfH76GWPXZVTwP1khjSFbnfqKIEfVmQLjP5rsNVo+Ma15SuWRMax32lEORbHyZYy1Ql95Uk7yTmqOJjORMyTXmY2FvKwuFue0AoTOGZHrI/TOiK8XA++Zbga3dACtQ3oyO2E5KAdUzEW78BpPoL6dAPjJojyd9x6r0VGcFm6QtsT8+VUhc/b4lc0k5R7mLQoFasQvXb10faeWULqiqjCJ0ODCnrwVaYm7Eeg1qr93NoAqMEHqerA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <11c3903b-ac7d-47fe-159c-a960fc9998d8@suse.com>
Date: Mon, 22 Nov 2021 09:22:47 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
CC: Oleksandr Andrushchenko <andr2000@gmail.com>, julien@xen.org,
 sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com, xen-devel@lists.xenproject.org
References: <20211105065629.940943-1-andr2000@gmail.com>
 <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
 <YZezXShKi1ofH5Aq@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZezXShKi1ofH5Aq@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR10CA0046.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:80::23) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4bf35c7e-2c4a-474e-7d57-08d9ad914568
X-MS-TrafficTypeDiagnostic: VI1PR04MB6863:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6863C5C818CD7F505BFD46B7B39F9@VI1PR04MB6863.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	q80Zw5ikmas6FVBkazn9Gj0sEbKy19o9aOE+fWopalxr5sNZQNAOUn8gn0jjTs8dGhFjq7DHlKnKG5ujrfW04MLjB+jAZzbiRGHsyxBoc77w8bOyWFmkOL6rcgVNRVXvwJHE3UHyREQPAeYvaszXsm4K7TUzVVqv5Qu4XSD0eGzS1E2x9TBwCoHEkbNzntFDMjY/Dcj9EX8ChT6/SZDjq6DL7GP67sPH7p5Avi12JtwCl9ZxCDjvw8JL9DzJ+iev3tcJnsYciqXPOsBIhbeWMUM2eqx2qOyW6h0b2C1BU/rdHbHJc3RKt/5Cz6kdkHOha7mvRqMKPijSWetCUTI+ay1+TE1G9eectyeirIonPEgM38VekC+rjB3OiLNhp281pdJ0xVdqfAUoqucUCFRw49qdvkEBAb4C0VXi9UODU5XXBsNFZAZ+i0FYmDAMJlZ0Wygi9KiieTL7awAG5omhjKCXNYq2oxRQ90xlggQi1TJnjhe0XFVN1seiDgvuhgavmk/BtHHPUo3nBMVzq+XHsREYbd7UXOwmocj7fA+oURc38DBzFIKoBC0RPPyuNcozaEUWZBCDtHLLsA5HamDW6Hv5eSCP+y7t5vm6rwEmaDpu/8zMRXiNwsyoLB9L3DQCvwGQPgF0O8XCX1uXoLR44OiictJJ6K5DD97X+H9XDkZgAUKt4INCjTzqYJh6wwuFhQv5eSggFRMev5EcDyeRnEnZuNd0COGdaHnIrVb3La/1JDLqCDfAFxoknUfJep+66GkqNN8h7iimzxX27ozhTKUNBx7BV4Hdlzg6+b4YB3JatcbrmzxbcUDBVI7NWvQE
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(38100700002)(966005)(5660300002)(2906002)(36756003)(86362001)(31686004)(6486002)(31696002)(4326008)(2616005)(66476007)(66946007)(83380400001)(186003)(110136005)(7416002)(8676002)(8936002)(316002)(66556008)(53546011)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?1h8KjYE/KyIgciDaCbYpXWvJ9G71fYUpgmA3y8cM9DygiLI5qqjjBZkGQqSG?=
 =?us-ascii?Q?DEeiz/+lbNvPeGhYTPMD7QhMb9/7ejYixl1Hro6KMLqZ3euKfGETPUgE2Wzw?=
 =?us-ascii?Q?rPntIOdcu1ibXb4JSrvafRlZi3b8eE/dUQIFE9BBT1aimKpFzmSawazi/WUn?=
 =?us-ascii?Q?EBIe0yFVsZxMLq4FEVC4dF+W+w6WQWH8VWpVwk+K6S0Xy/BNH6fBxuc6aAbS?=
 =?us-ascii?Q?BpLCiX5uthwJK6cMZT/la+a/NjGEKdZF40vOaU79J9ycHTlVxbegh4ZtweLn?=
 =?us-ascii?Q?IGth8446DiNjPsZ7uugweRtkm9Ip0Lj1nbn1EF2X0xejvp2mM4LU4Lc1CV2f?=
 =?us-ascii?Q?08hJ+F39TiTVwC4HA4evxwgw+80AiCbnJB2MzCm2KggYtNEnj/aL7NUwKOEC?=
 =?us-ascii?Q?m9y6OAkeBvhSAlcEPkbQqUJv8BmPHejD25tphyKEnFiBpUJdwQKTtM6IDgGe?=
 =?us-ascii?Q?PmCzAa3D0LM6z1KVzpeaejWg7y8aaE3Yhep9wJXsRmoq0e2AMM2FSOsk79pe?=
 =?us-ascii?Q?2JgJlT2gHQW3xB9f3d3E8gdozwCfQJ4mTNDX/CLHSsuWtvHLi66IVOWPiedc?=
 =?us-ascii?Q?7Dp9otKb8XtQh9xuXy2ICcArE3NwvybovrY9G5m7KYXRPn1kzz9ty85lI1nj?=
 =?us-ascii?Q?SCc2yJLNrphr+pvaUP+IPqt5KqBF6m+2YxzT0tvPsf0yMIqdUPLNd4LBrRVB?=
 =?us-ascii?Q?A5PTy0yX1Yw57RRl7q3oJ1zGqt70Fa3LfXKBzxfu9HD1nHxY54wTtttAE61f?=
 =?us-ascii?Q?Ba9HmCGzsvAjDofSZcoRPlRs0SzWg5nCNWN5sYOvFJaxTqoogE4+muKR8JuM?=
 =?us-ascii?Q?WmmD9agUCZ1Y+L6LzyFHs6p8ak1KrC378V4G3QDM1Wo7FLEC63JiJOk7CyCG?=
 =?us-ascii?Q?Xb/oW+LadgDgm1sHWKGKKJONPM2EmayC9lryar4IPb0aiuaHyDUY8jR1C4Ga?=
 =?us-ascii?Q?XREP2PjP4aFmHWg8i9rONe9RtYWuRd02oTcJe0AbCmP9ukNQ1lKRxvYRIYO/?=
 =?us-ascii?Q?lD6ayH84bArjlFJEmokMI953Tcd+YsH1R/Gv9kwb5HW2TsfrfV02bmH432Jq?=
 =?us-ascii?Q?2daBNwILYkfljsaYcHBMFhwWCk/Y0nA/2AEDPxOMvbvBUnl178uoNS5BgKaD?=
 =?us-ascii?Q?lTMEKLqpcX+EbaONAGAdQgvUn53HJ+UAlu3srMkEcQUucH7hWEK2J83KMxW7?=
 =?us-ascii?Q?SYtFmbGu/kuzhReC0eqkocGaMX7mHT+1my91GnP1WQzkZh7Z5HYBUiqqphOO?=
 =?us-ascii?Q?Q7TXpaW9KZmGJeO24lZfZo++z6qrbWxaQu5pbhqKHpK9gBI385biccA4/rUo?=
 =?us-ascii?Q?1KSF9gQyWzI7kGayI2n6DH7CiL93656HGGQnu8AAWYj7UznSpCWbstvPZbS9?=
 =?us-ascii?Q?JgS4nwcPux+dCUxaZcy5/fUAiTQPYmdCiTWX9qoH2wyx6djj3ChQirRv879o?=
 =?us-ascii?Q?hKgH3+CHjWv08J3hLWKia3xnmi46A8Jyqrm2xtohxXGnCK35NCsRzog971t9?=
 =?us-ascii?Q?qbVrcQi+5ebpubn+c1zbSEZRSFVLPbMkS8g7FsFQFMI911oKOHJcXC/c6x1h?=
 =?us-ascii?Q?KdAAlkQAA0+XqfvlDu4A9ZRyXL7XYmtIAdqWrbKGZ6QR36dtUBg3uhgdfm7T?=
 =?us-ascii?Q?X6+TZi963sKWV6G6T3V0E8tsw9SORHRKTsywssV7HRbDfHzCgcnQaOPUCNOx?=
 =?us-ascii?Q?wd1xfi8EODEg1JJp4WGA2LnVqbY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4bf35c7e-2c4a-474e-7d57-08d9ad914568
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:22:49.7274
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X+HpbsmV3AVdPQ85rL4zjDJGqMRwDCpN2T2mVad0ix9WcTVDlDtl+JLbARvGHF+4TuppCgViX27alIK2xRwvQw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6863

On 19.11.2021 15:23, Roger Pau Monn=C3=A9 wrote:
> On Fri, Nov 19, 2021 at 02:56:12PM +0100, Jan Beulich wrote:
>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> Hi, all!
>>>
>>> This patch series is focusing on vPCI and adds support for non-identity
>>> PCI BAR mappings which is required while passing through a PCI device t=
o
>>> a guest. The highlights are:
>>>
>>> - Add relevant vpci register handlers when assigning PCI device to a do=
main
>>>   and remove those when de-assigning. This allows having different
>>>   handlers for different domains, e.g. hwdom and other guests.
>>>
>>> - Emulate guest BAR register values based on physical BAR values.
>>>   This allows creating a guest view of the registers and emulates
>>>   size and properties probe as it is done during PCI device enumeration=
 by
>>>   the guest.
>>>
>>> - Instead of handling a single range set, that contains all the memory
>>>   regions of all the BARs and ROM, have them per BAR.
>>>
>>> - Take into account guest's BAR view and program its p2m accordingly:
>>>   gfn is guest's view of the BAR and mfn is the physical BAR value as s=
et
>>>   up by the host bridge in the hardware domain.
>>>   This way hardware doamin sees physical BAR values and guest sees
>>>   emulated ones.
>>>
>>> The series also adds support for virtual PCI bus topology for guests:
>>>  - We emulate a single host bridge for the guest, so segment is always =
0.
>>>  - The implementation is limited to 32 devices which are allowed on
>>>    a single PCI bus.
>>>  - The virtual bus number is set to 0, so virtual devices are seen
>>>    as embedded endpoints behind the root complex.
>>>
>>> The series was also tested on:
>>>  - x86 PVH Dom0 and doesn't break it.
>>>  - x86 HVM with PCI passthrough to DomU and doesn't break it.
>>>
>>> Thank you,
>>> Oleksandr
>>>
>>> Oleksandr Andrushchenko (11):
>>>   vpci: fix function attributes for vpci_process_pending
>>>   vpci: cancel pending map/unmap on vpci removal
>>>   vpci: make vpci registers removal a dedicated function
>>>   vpci: add hooks for PCI device assign/de-assign
>>>   vpci/header: implement guest BAR register handlers
>>>   vpci/header: handle p2m range sets per BAR
>>>   vpci/header: program p2m with guest BAR view
>>>   vpci/header: emulate PCI_COMMAND register for guests
>>>   vpci/header: reset the command register when adding devices
>>>   vpci: add initial support for virtual PCI bus topology
>>>   xen/arm: translate virtual PCI bus topology for guests
>>
>> If I'm not mistaken by the end of this series a guest can access a
>> device handed to it. I couldn't find anything dealing with the
>> uses of vpci_{read,write}_hw() and vpci_hw_{read,write}*() to cover
>> config registers not covered by registered handlers. IMO this should
>> happen before patch 5: Before any handlers get registered the view a
>> guest would have would be all ones no matter which register it
>> accesses. Handler registration would then "punch holes" into this
>> "curtain", as opposed to Dom0, where handler registration hides
>> previously visible raw hardware registers.
>=20
> FWIW, I've also raised the same concern in a different thread:
>=20
> https://lore.kernel.org/xen-devel/YYD7VmDGKJRkid4a@Air-de-Roger/
>=20
> It seems like this is future work, but unless such a model is
> implemented vPCI cannot be used for guest passthrough.
>=20
> I'm fine with doing it in a separate series, but needs to be kept in
> mind.

Not just this - it also needs to be recorded in this cover letter and
imo also in a comment in the sources somewhere. Or else the question
will (validly) be raised again and again.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:24:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:24:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228633.395679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4cx-0006n6-NZ; Mon, 22 Nov 2021 08:24:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228633.395679; Mon, 22 Nov 2021 08:24:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4cx-0006mz-K8; Mon, 22 Nov 2021 08:24:39 +0000
Received: by outflank-mailman (input) for mailman id 228633;
 Mon, 22 Nov 2021 08:24:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp4cv-0006lu-M8
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:24:37 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a117f47d-4b6d-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 09:24:37 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2055.outbound.protection.outlook.com [104.47.4.55]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-1-oUI9CJbLMzWWBYA1CJhbOA-1; Mon, 22 Nov 2021 09:24:35 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3534.eurprd04.prod.outlook.com (2603:10a6:803:8::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 08:24:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:24:34 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM5PR0301CA0032.eurprd03.prod.outlook.com (2603:10a6:206:14::45) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Mon, 22 Nov 2021 08:24:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a117f47d-4b6d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637569476;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=NC9L90SsIa4Al+jIQi0Q07NsoSxvQ7lbRXvkNWuQXo8=;
	b=VYEWhQqi/qpvXfiz7nIUtOPKY6ZKq+jRU9nMpwf92n5Jm1HViVy2SRjoxvnHQxBSMOT54i
	q57z4CfITIAPRHYEXESTiGYqBwAqcQDCWeJCB6aCyFzz/kh4IZzXm2i4VhkHUGIByMao5L
	b/I+RUFXCLM1EVgbxTQyHlbnkBNaq88=
X-MC-Unique: oUI9CJbLMzWWBYA1CJhbOA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hPF4YFU6oscSAcyzJFa1c7m8ESe4SDLlhoWOMAd//kc/ABPiiqjoQ27UHJoaN+Bi+efI8IrabBYp4fYZ1Zg9acp1kYTw8JG8fyZBKHqy0ndAkPR60AcI9boImsytxTM51/qprt0XseILFgDdKScCm7MIaChI7UyYO8XQFjBCx7hIxC0VGpllvG2PAqQHT8ujKOYDcGgzirsUS9YnwLRgjZZYQmV1Z5fB7tXut7Pk74sK+WNoMtKvn0e6BgKFiQ2stTphcMTvdwGSBn3Te1XVNnc8sZLyeoAoq+R7nqREqZwTKO1tjfnzyJphWPDNLpaunH7dcP+6aVLNOe3kctwWPw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NC9L90SsIa4Al+jIQi0Q07NsoSxvQ7lbRXvkNWuQXo8=;
 b=EV8/a0sv6/l9TcQarZ0gfRp9eGffkjPAf2O1pbKp5LwoSdXph79mmzTfBNMbsLV2cTpZwKEDqQhCSvJO8/RTH5uCd38BDSqjxdm51EVvscPhhoCb3M5G+JHF/dA/qqfy0TySzQO9QtkMP5+zsrFSWuOqm+8vyb+uZTDoQ220kHZNI3RcRy3l4WSUKWALSSJxVr7uHTJeDJBuYN+h3goGe8rD223BCirAqo9Rwmhjk/U85OIXr5hD/PzXneRPD9s1pKypDxBOlDC6nikIEmY6xpmH8XvvKJUBN4npxBQL268e0nOjgymk+X7objHXpadTTv1gNHeTUOjN4w1uyNAH5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7a56d501-3e3c-5537-65ef-ddf08b47aa99@suse.com>
Date: Mon, 22 Nov 2021 09:24:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <3a7f4c3a-7162-8cd3-0879-2f87572f0225@suse.com>
 <6b2d4825-3b00-4034-2804-a44059de15a1@epam.com>
 <fb72cae2-1b7e-8d52-48d0-2967c68325ea@suse.com>
 <8bd7e778-6ebd-2f50-8e96-e21b3bf06a11@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <8bd7e778-6ebd-2f50-8e96-e21b3bf06a11@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0301CA0032.eurprd03.prod.outlook.com
 (2603:10a6:206:14::45) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 21493d96-46ba-4ea3-9ad8-08d9ad9183ba
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3534:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB35349FB76266738462E03E7BB39F9@VI1PR0402MB3534.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	TaXAtBoj3rw1uRavnKgbxuaep9UnAsFLWCqpGksH8up9R2NFkkC+4/qKOjuLatC5XCzSGCAI8J51NHOCKQlXgVSjfDXR4bt27/aSAfRAdO8ByMzsjMNGZmnk06KqKkahQCwfZhgLh0zx6L8RO/HuaYQTngaIoV8I85J/hdpY7CtZOYm4QKc3NF+MnD2GvhFfTRMDes6CUGZtTds4m8WxUmRKWLL9loQTLwro3FOgbeb54SB2vlgKzsOy/vsNfBo3wAFA/Ea4QwAzDTzg9V7EgwJwELvhqZBDwZK5izkONrfrqCv/4kZsR8ieczf/ca52KNdz+Yil/2uB6W/H0/NNF+4ux7DqUv8DcNVIAiwbeLzQn8Sio9RSPKQ2bjvv1uEtAgPDC1GqKddcjHkMLQs5kPWZiWugabjkFIkcEBBKQPvjdhVtX4VHvltamNwhJoyIQo/7wrFo0zWGQ/lkdjX2Zpi1JkEg5+Ez9RrrdlpHgM9bqoFAsb9G/EWtmCj57NNeyRbAOhGH0SrcwXwQzsH9wORckr8Pd4sp8pnOFiAtaYwzvJHs3EOKCBIH1WNjfsqdXP4g/O2h3m005Tm0gFz7a+CDfZK0p/gTYiuQ0IgdI4gAyV64NJHW8FVZa/nfUasDLyNNbcSt++z3AiRqjE7rtnfv+s5n2dia8Cmm25hM72lHjZEdxQwpV3lHTkodRvD340zLf98z03d4gFPF3OIENGmnexUsKtTO52ZArULSYzk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(66556008)(86362001)(66476007)(66946007)(6916009)(8936002)(7416002)(54906003)(31686004)(31696002)(186003)(5660300002)(36756003)(8676002)(316002)(53546011)(6486002)(2906002)(508600001)(4326008)(83380400001)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WFhvMWc5OTlOcTBHa0Rhc09WTVJySmg2dEVyS2h4b1M1Tlh1eUxiR2w4bDhD?=
 =?utf-8?B?K0Q3YVh0SGk0WXhYRmpmdlRENmZEZkRXWnM1dzhkcWErbFRYdUIyNmp3YSsy?=
 =?utf-8?B?bldtaTFpb2NTcU0rcHJYNUZjR2dJcld6QnF1MG5nb0tWNDlWdXlmeG1uVGtw?=
 =?utf-8?B?Qm10M2o4MHk0NEZLRWh2MTBlMkdOWVRjaDErdWtzSG9NM1pGbWF0S2FkYlFQ?=
 =?utf-8?B?ZUdwT3QvWGlsU2w2RC9JOHNkdG1iU2p2Q25RTmpsY2E0Tkx1Q1NlV1I3MThW?=
 =?utf-8?B?SWF3RnBNSzh2Qm5sWk1Ia2ltcEhPcFdpMGpuQTJsQ2xSTGxGamltSmZNVnN3?=
 =?utf-8?B?N1RRZERhS3A3RjhmVFpWYVJ0ZDJ0VExNQW85ZHA0dU5sZXdpRXUxUW1uamtQ?=
 =?utf-8?B?T1dqaDZia05TWHQ1ek5mb1lEZjU0QnExNHVaSjZqa0Qydnc0YVNXeE9IbmpJ?=
 =?utf-8?B?Lzhjbk90YVJuWElWcDdGNUtpdkRwanU5NGhWR3FSU0hRZkJ1Tjd5emNLK1Nq?=
 =?utf-8?B?QWhHRndpcDYvWVI1QkNWTDNGYk5GcVRHZ1dEb3JacGVaNk5QTTBuMzhaSEVv?=
 =?utf-8?B?ZWl6KzNRWFJqRjl5TlVqQ1Vwd2N3dGsyMFBSNm54MUZZcEZESjJKVE52dVE3?=
 =?utf-8?B?am1LQzdNV0o1NUlqUTlMTUYzSC9NVUJGVjd5YlBFYk5jSFg4YkRLSUUrOEto?=
 =?utf-8?B?a2VIN0pQdE40bklNS0pEK200L3VTUEU0V1J3bjFqWUh1MjVVNGZXMXJjRUth?=
 =?utf-8?B?dnRlaXFrdEtFTWhybU91a2lNcXVVbmE3dk1sbHVNWm5ENGpzbEpkZEhoeWUv?=
 =?utf-8?B?cEVsVE5DT0IrTnE0L2tlanhlTTQwQ3R1alMzaHVoS3NGOGpEaXZNMFQyY0NT?=
 =?utf-8?B?aW5BbWVvTkZYMkU4dk9wdUNLZFI3ZGRtWGRSSlR6MnhlQkJIQnpxbTN5L3J2?=
 =?utf-8?B?OWgra2o3NGh4c05Jb3JGaUYwK0ZZS2srVmp1SUlRUGRZUW1ySG5zYTNZYS9C?=
 =?utf-8?B?andVcjhEL2MwMVBtWW91TW9NaTBwWFZrcE56aFQrQjVITTRTdGx0bStaOXlG?=
 =?utf-8?B?S3A0L3JqRy9qaUxnSkpZSS9nLzRXYnNoUDNobytFM1dYeGsxSTV4OEJKR0JU?=
 =?utf-8?B?Ry9XTURjWTRkdm0zbkY4V3R4T2RTWkdFUGUxV29BazlONGx5NXNVZEk3RkZO?=
 =?utf-8?B?TENKeTFwam9oekVib0RoQXdSRWorR3M4TUI0NVphdDdoWXNJZi9FNEorazhD?=
 =?utf-8?B?eU1tWThDRE51MGtlRncvUVd2R0JUTjNMQWx2NXpDbndpa1g5OGxSU01qUGF0?=
 =?utf-8?B?bGtUV0FPVkhNb3QvY1dNbFY4bzlvY2VUOVVrV0VnSjdyRGJLc0FnWmhMQjRI?=
 =?utf-8?B?Vzk4VkdNU093QmhHVmZhTXBERFo3NHVlUVR4NldzVS9wellpNTFSUit5Qldo?=
 =?utf-8?B?K1J4a3l5ZVB4RFg5c2ZvWFVQa3hpTWZsbXRqTmNxYmdtTjlzNFNDSVp6ZVhn?=
 =?utf-8?B?UEFaTDFqWnpGZzNmOGFuK1NRRlNsODlqVVhiK1RMNlhabVlHOS9mMlloem9B?=
 =?utf-8?B?WGliSUcwZVlDbGY0RWRsMlhHczdqSWJiR0dIdGpqVis2Qkd3TUZ2UTQ1OHhm?=
 =?utf-8?B?RFlNeTFEU3gzeWpzd0w4eVJ1U2cxeXJwZ0p2eGJwNzRyby9iWE1NTU1rT1FJ?=
 =?utf-8?B?MUZrR0JGaUlTWU03QWlxNkZtZmRTd3o1QkVHUjBmcUgzdzZrODl3V3ZGMm5H?=
 =?utf-8?B?YnpuSG1teHQyeXhEQXpqejNNbXhNZnFIY1FNU2R4OWFFeVpPNHBGa3QzaUZM?=
 =?utf-8?B?emVZbWZ4anBneGZUelJ1NlNNdUdKYTczYmJkaGduaUhwYW03ZUdGYS81aThN?=
 =?utf-8?B?YUkyaWhkOHF5RFBPekM3bkdhZ0tKcHA4M1hXSmxLc0FWanpQNlVYU2tGTXZP?=
 =?utf-8?B?eWFCMkFndzk4cys0NDR6U1dVOGZxNnlodkRJZEtLN2ZjZi9RdmpmeDduY2VC?=
 =?utf-8?B?eG9tdGlsSFZSeDJiNENTakx4d0FXQi9DUFdDRng2TUpwYlJVeXRuT214dzVr?=
 =?utf-8?B?eUU1cE8yaXh6aFRUbzJaNHhHUHpWMEJZblFpSlRlL1NFeFdHOU1ac3JEYTJP?=
 =?utf-8?B?WjRpNld3RC9BY3BERyszZUNUTGs3UDdHam9ENGtLK3k0NkNrVlU2MnZUY2Fl?=
 =?utf-8?B?ZUQrdSs2WUJ5TkMybk9OTUJ1T3BiOFdRWVZYbzBxQXQxSlhRekJIUWVuQzVC?=
 =?utf-8?Q?f2nfTuFsItqqbaqWeAlLDnuM0vHooyS+EHsxbCoo+k=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 21493d96-46ba-4ea3-9ad8-08d9ad9183ba
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:24:34.2792
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6rFYeVpxXdGM+5qNeVI9nBRsR89aV2ZrI1LoPPYF3bIkTJoY7XXipIShq7Ps3ZNXvfmfpr5tnwWttwdztRg1jQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3534

On 19.11.2021 15:09, Oleksandr Andrushchenko wrote:
> On 19.11.21 15:57, Jan Beulich wrote:
>> On 19.11.2021 14:41, Oleksandr Andrushchenko wrote:
>>> On 19.11.21 15:16, Jan Beulich wrote:
>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>> @@ -95,10 +102,25 @@ int vpci_add_handlers(struct pci_dev *pdev)
>>>>>        INIT_LIST_HEAD(&pdev->vpci->handlers);
>>>>>        spin_lock_init(&pdev->vpci->lock);
>>>>>    
>>>>> +    header = &pdev->vpci->header;
>>>>> +    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>>>>> +    {
>>>>> +        struct vpci_bar *bar = &header->bars[i];
>>>>> +
>>>>> +        bar->mem = rangeset_new(NULL, NULL, 0);
>>>> I don't recall why an anonymous range set was chosen back at the time
>>>> when vPCI was first implemented, but I think this needs to be changed
>>>> now that DomU-s get supported. Whether you do so right here or in a
>>>> prereq patch is secondary to me. It may be desirable to exclude them
>>>> from rangeset_domain_printk() (which would likely require a new
>>>> RANGESETF_* flag), but I think such resources should be associated
>>>> with their domains.
>>> What would be the proper name for such a range set then?
>>> "vpci_bar"?
>> E.g. bb:dd.f:BARn
> Hm, indeed
> I can only see a single flag RANGESETF_prettyprint_hex which tells
> *how* to print, but I can't see any limitation in *what* to print.
> So, do you mean I want some logic to be implemented in
> rangeset_domain_printk so it knows that this entry needs to be skipped
> while printing? RANGESETF_skip_print?

Yes, albeit I'd call the flag e.g. RANGESETF_no_print.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:31:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:31:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228640.395689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4jh-0008HE-Hh; Mon, 22 Nov 2021 08:31:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228640.395689; Mon, 22 Nov 2021 08:31:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4jh-0008H7-EX; Mon, 22 Nov 2021 08:31:37 +0000
Received: by outflank-mailman (input) for mailman id 228640;
 Mon, 22 Nov 2021 08:31:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mp4jg-0008H1-EO
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:31:36 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98520cce-4b6e-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 09:31:32 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AM6vlPx018581;
 Mon, 22 Nov 2021 08:31:29 GMT
Received: from eur03-am5-obe.outbound.protection.outlook.com
 (mail-am5eur03lp2052.outbound.protection.outlook.com [104.47.8.52])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cg5w8rdt9-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 08:31:28 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com (2603:10a6:20b:13c::18)
 by AM6PR03MB5925.eurprd03.prod.outlook.com (2603:10a6:20b:ef::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 08:31:25 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445]) by AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445%3]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 08:31:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98520cce-4b6e-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hjqHsJ63hPJZw9BFqoAh55pHyIjbOcIPzhOhOGRIpponGOrsvPefut9R4vbI+17UFo+m4rqAHMr5SLl/3XqRcWSBVtnoBW1BQL2zvpUos1G6IOawWB1MktxjzDBwTSG1y1NUJeBkTX7Uz9aJ9EV6X+aMi4//RwDUQ6tJkgOYNOapFsM2nRyxFlGzXnTh/K8VLzlBoKttoxxqfc0PTGDRDKyN4XTInglOGh54GuRaBZ7G3tGOvP1TxeBgtprO4Wp2OThZNZX3dpqacO7GzPMQXRLu4+Y3SttrFt5pweCx51vmhndQm8CyC0xHk0ipOPYNGTS3GRbsgs1h80CBloxCOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Vlb9O0FZ+ezamRlJEaQGBYMlgxlo0aPY5iBpq1f2UDg=;
 b=G7AeStEDMq6P8RjnF6cQaJLTlQQ45LvpIhznKwf4xCuX5GaDYAbwi5Yeyl8vjeKTT1OdKSPfBffhP5YchOk6RVzyVjF7dwsWVZvYDEGzi7JKZ8qcawIuFFZ4aN2T1Z8LU4YvvgP5+01GBbGX9bCqjOMYkY+KnZdPrPVUURCTom1clHVIiwdhsx+N0ZSbWJFNnEU7T61uCLJdkTJL3xkueW+9qKWhA+MGpQeZJ8Iec5U+ZOiFrfcVXTpr5m9NblSmG+27ij9V9MlIGwwO65ghLVTNgeMIAdDo3uwwZhPDwGMcR66lnFtdBmqihAEFINOi6D+0hBTlKQMcYxyMcwDAxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vlb9O0FZ+ezamRlJEaQGBYMlgxlo0aPY5iBpq1f2UDg=;
 b=ciDNQrSMWXDo1KPLq3o3rneR0Kcy+Pq3wJu+A34klEIPYooKQY0zp0RfQGNTib4B11Wxw9031EDZZbujG+fmuFLNe/i4jFkqqKoBCKJ5moCl0uup2RPDiFnK+WoVIsJfRrAF+CcAcHI9sxVS23OZKZsXBzffIZc6XkzNQ2BDtAJzbA4RvTi3MsAy+N4IFFjzLTU2yFmdndiQibcGo9jILTzo5lNNIR1QP0YM3kmzMCa36Wq0E3WqmfnbeP6re0IRlk2+j4z6QkvOHjub9tE8NCGNGk4zoAdOFuq4pjoukIGphfi/XrF77e2BPDtxfFmmqloy0DplMJRRwIRlr7uqtw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Topic: [PATCH v4 06/11] vpci/header: handle p2m range sets per BAR
Thread-Index: 
 AQHX0hJLwt+wJ2t1lka5jlbMIq7ZAqwK60SAgAAG0YCAAASpAIAAA16AgARWfwCAAAHqgA==
Date: Mon, 22 Nov 2021 08:31:24 +0000
Message-ID: <77333e14-76f1-c262-c3f1-f596fc7a3aa2@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-7-andr2000@gmail.com>
 <3a7f4c3a-7162-8cd3-0879-2f87572f0225@suse.com>
 <6b2d4825-3b00-4034-2804-a44059de15a1@epam.com>
 <fb72cae2-1b7e-8d52-48d0-2967c68325ea@suse.com>
 <8bd7e778-6ebd-2f50-8e96-e21b3bf06a11@epam.com>
 <7a56d501-3e3c-5537-65ef-ddf08b47aa99@suse.com>
In-Reply-To: <7a56d501-3e3c-5537-65ef-ddf08b47aa99@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: df0d345e-202b-4864-7d4e-08d9ad927894
x-ms-traffictypediagnostic: AM6PR03MB5925:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM6PR03MB59252B2DBD1BAABE858312E1E79F9@AM6PR03MB5925.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 3myo9GBSgeJ5F7EQEVxp80r3lA21CeTpPKwny07H786nyRVj+rois11rYZ01s/zyycpXZ5mWvnRfkSLU7yUSpTloIc+9m3rma68CSu2DPW32zFrCHN8Nkbf8uAXD5F46VWR30qC9n1JzgL0m+2LLVSpoPzn0SjZkVRk7tukxDBaecPXmw8sFpwoel6hYLGZNV23aLKirjo9JZpZ1fQ3A+172ecc5tMgRBFFSnmCe9AF2RkNwmyQHor+xppbbtbXrblGkA+P48AWRzziLdN8pqy1T9d3KaTGK8Kx8r6DxXsADYTFZUoWoqMNZevW4yb26icugpm0axr1QozfbhouVLyHa+Kn6BjVZ20sJ0UaJ3zHQrzNgqy3VQQP6NW4QR3cSNAR+UfuVaolRY+ZYhRvyjpH2VdKNtH0lZQDQ4db5BB4T/ZyrUvKGErwpxn/XBSmXjrzSeYZZuuEaQYJKpuY/WCNuMuF/4wi1EGciZXwa/dzZmJomuNkCZi07Vj2UuxFKVYqTCOyNG4S1z2EYPqIeeOqQbGDyj1EaB17SL2xc+y8yuPlJBwws79TuoAHxcMkPEpGLO8m2Suz5FQZV36wrMvGMhfx5IsGhZ6VaXUYZMNCJObIuo9dDO+0LlrOEiZMxCZqDyEGUVju9PWC7HUYPXHO2SBipT/UwK7cUJnCSm0z/J7JYCgulBo+B71QCKti1tAQ32xTMesWbUjk/Hc8SXZzIF8/jsJIct//S/F6w48GmaWIWw4e3B81ei2ekS1Sd
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR03MB6325.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6512007)(6486002)(8936002)(54906003)(26005)(8676002)(2906002)(31686004)(38100700002)(316002)(55236004)(2616005)(5660300002)(4326008)(508600001)(6506007)(66946007)(38070700005)(186003)(76116006)(86362001)(71200400001)(31696002)(66446008)(64756008)(66556008)(66476007)(83380400001)(53546011)(36756003)(6916009)(122000001)(107886003)(7416002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?dkJmMlRGWmZSVDlTZEd1QXJxSVE2aEt3RkZOOXk2MzRvc1Z4NGd3ZGM1YVBj?=
 =?utf-8?B?SDlmRmxqS2RwSEFIbDNQNzBwc2FxdlhQY1ZxZEdMSWNnUFBvTG51ZC9FMWNj?=
 =?utf-8?B?VHc4WkF4YWZHUzdqTk5iclh6dWh2RUo5MGpUb0VEcXlVQ2lKSkRYb3h5UTJP?=
 =?utf-8?B?MU5vd25wai9XZFVTWHNQaS9XOTY3RUNSQVJBRVl4WEk3UVoyOSt0anlBMGwx?=
 =?utf-8?B?bitnMU9WQm1tUWxBT0pXM3BoeVNMTEhacDdRTC8vaitLdjQ0VUZlZmtFa1VZ?=
 =?utf-8?B?cUl4bVFnZkZVakVVTDVaQ09PWHh1ZEI0dmtwSFpZSnBrQjZ3MXI4bTFJVHY2?=
 =?utf-8?B?cmo2bG4vVHRkYy9YUDdnRlg0cys2VlF5Nm1MOWNnd01FUFFkMmhVdXFPcHhW?=
 =?utf-8?B?dVlEOURGWGR0WW14OTlLSzV3bkpVdGdTT016ZTFneTdVdUVPakFKYnIwUVdk?=
 =?utf-8?B?ckFzUFJLWk9NeEl3ZmxQSXJJcC9xQXRqNzhjNkFmSDBESUlkN0NsUytkVUk5?=
 =?utf-8?B?MFB4SzZqcS96blB3NDdKYjJUdHVHMzN0UUd6Ni9zcXlpYVEycE1IeUZRTE9N?=
 =?utf-8?B?VVZ6OHAwM0V5RHgvaWN3UDM5Y2tHNkNkYWJ0c0ltU0VxdnB2dkVua3BKU0dn?=
 =?utf-8?B?ZVRFVTlsM1VINm9LREx6YnBJRDVhL3VOZ0laTVc0d2o4dDdlM3JRSmFyUmFa?=
 =?utf-8?B?QnJEekpCa0NJZDh3ZHpzdlI4ZzR1ZldoQ0N6KzFtQ1ZNNHUvaFpUODRYcHI3?=
 =?utf-8?B?aExVRUVnb0V5TCs1cG5Dc2NIdVVNVFZhZE95OU9DaFM5YVM2OVRTMk1oZXNU?=
 =?utf-8?B?NVM1K3hvbUNuZXlCZ0Rja0FPQXl6dWdjWkhjVHJzVmNqSHFHckxOdDdsYU4v?=
 =?utf-8?B?RlczaTVEUWJxVEFXR0VLMGRtYmF0VUlxZmhncnYzcGdOc3RRbXk0UGZRWlBZ?=
 =?utf-8?B?SlRvcEFlRDEwSzhzcW51c2pBSEtsL3JFdUxHVEVuQXZ3OGFtTE81VWt6Vnhq?=
 =?utf-8?B?T3hDUXMzNmJvMjhBU2ZKVGhzZFQ5bElONGxjMTI1T0pnTFRlQ2VkNGRXeHYr?=
 =?utf-8?B?YUlTbjA0UVFuUm0wejJIQURNbnlMQ1ZVdjRWRUJQQWdHanhxeHFWUHloVUFO?=
 =?utf-8?B?aWJOS2xMdFdIWWVNT2NzSUpZQ0Q5akhqMlBIYUt5YlNzUHIvejdHVExaaGE5?=
 =?utf-8?B?cXUyNWU4eTNmdFRoR0pud2s1eDVRNGpoZk1TaHppQ1BLVTlEaDlDekJvbVRZ?=
 =?utf-8?B?R0dvVzI4cTY3c2orUlRwYVhsT0FDWkFhTmlCOWVDbzgxM2hwRE4zN2dHZGN1?=
 =?utf-8?B?SUZxZ2MvR3dDY0ZTZzJaNUhsNWhwTkdtY1JNV0YxT0Vrcjl5aGQ0MlVkMFhn?=
 =?utf-8?B?MjRIMmNKRUZocnlaOEl2OXBvdEtOU0NRNXQxYXlYazZNVU5Pd1Aya1ZRWUlz?=
 =?utf-8?B?RDQveWd2OXQ2c0JPZDJnZWhyYmw5eXlzYTlGN1djeTk1b1JjTTRTQlIyUE5x?=
 =?utf-8?B?SExBUUs5UEtOVW9adGZLU0tQdndPR0lBbGpzSndsN2VGMklnd3dER3FnOVJL?=
 =?utf-8?B?TmxDUU84cndqQnQrSXFsaGxvWjlDTkJkZjUvRXB3eTUvLzhHUHhXczJaWXBt?=
 =?utf-8?B?Lzdia0tCN2ZHY2Z4eEFZajVYUUh5WVBBcnJBRlF5YW1nRXZpUWIxZExZTld5?=
 =?utf-8?B?dkNjeG1IbGRTQkJJY3l2em1LVjkzOVIvUmRUYytMYUtFNnF3cnYzWlNwVUVC?=
 =?utf-8?B?cGptaDdLUlRpK3ZZYW9yU3ErbDZXMFd2cFBxQk5oTGNGbHdpeC8xdW13Mlh3?=
 =?utf-8?B?SklONjh3THZqbGRYR3N3MWhsQitIOVZPM3piNnd1Z1F2cWdjK29PM2lDS3Bm?=
 =?utf-8?B?REJGQm02NnlsbHhvMm1hMTdZSnBucVI3RE16d1dmQXdpTkdIMHd2cytCKzZi?=
 =?utf-8?B?MGtCelo0N0ZJYS9Qa0hlV1ExdkptdHV4dUpvcm1IeFhsd0ZCcVNnVWt0Z1Jh?=
 =?utf-8?B?bkJoeGExOVBHYmYrbHJLcERGcVFFT00wVUthVTQyMUlLcDdUNGVtdFBuaGZK?=
 =?utf-8?B?Q3NzakxwYUpSbkVWd1Azc1lWcTQzcGJ3U0dDNlIzZnJzK1pOU0hzK2VzejNH?=
 =?utf-8?B?U2VzdEQ4ck9kMUJKekJuTzNBRVRUcmtiU2hNYytKRmFJcWttand2TVRIRGJu?=
 =?utf-8?B?eTZGZlJldUJIeGtueXZTOHc2VXIrMUlSaERSRGVYSWRjamduMFJTYkEvMjlZ?=
 =?utf-8?B?SmFIdk1YRHJCcXFEZHdET2RTLzgxem9VNHBKWE93cmJZT3lzR2cwSit2MFB6?=
 =?utf-8?B?K2pHR0N1eWNqNk5LL0x6ZjhzQmxadkpKeVNScHdIUndSTDdzZ2RUUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A61D81A3A1789C42AE3C8DE7FA5C9366@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6325.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: df0d345e-202b-4864-7d4e-08d9ad927894
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 08:31:24.7910
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Uu2bzzXkdkcCE+o3/behbqEb04Fg5trbqw6u2PoNiFzeQZwUvCLVDbApv3pd+JH5gwMwTmLPniwMiyAIpAO1vun3VLeywW6I3+phFc3Q5fYW4x6iwgbUmZLVOS12REop
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB5925
X-Proofpoint-ORIG-GUID: YzQUyh5y2_Ddeu3kXf4scIGvqrmrkpIz
X-Proofpoint-GUID: YzQUyh5y2_Ddeu3kXf4scIGvqrmrkpIz
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_04,2021-11-22_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0
 priorityscore=1501 impostorscore=0 adultscore=0 suspectscore=0 bulkscore=0
 phishscore=0 mlxlogscore=850 mlxscore=0 lowpriorityscore=0 clxscore=1015
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111220043

DQoNCk9uIDIyLjExLjIxIDEwOjI0LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxNTowOSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOS4xMS4yMSAx
NTo1NywgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTkuMTEuMjAyMSAxNDo0MSwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IE9uIDE5LjExLjIxIDE1OjE2LCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIHdyb3RlOg0KPj4+Pj4+IEBAIC05NSwxMCArMTAyLDI1IEBAIGludCB2cGNpX2FkZF9o
YW5kbGVycyhzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+Pj4+PiAgICAgICAgIElOSVRfTElTVF9I
RUFEKCZwZGV2LT52cGNpLT5oYW5kbGVycyk7DQo+Pj4+Pj4gICAgICAgICBzcGluX2xvY2tfaW5p
dCgmcGRldi0+dnBjaS0+bG9jayk7DQo+Pj4+Pj4gICAgIA0KPj4+Pj4+ICsgICAgaGVhZGVyID0g
JnBkZXYtPnZwY2ktPmhlYWRlcjsNCj4+Pj4+PiArICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlf
U0laRShoZWFkZXItPmJhcnMpOyBpKysgKQ0KPj4+Pj4+ICsgICAgew0KPj4+Pj4+ICsgICAgICAg
IHN0cnVjdCB2cGNpX2JhciAqYmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCj4+Pj4+PiArDQo+Pj4+
Pj4gKyAgICAgICAgYmFyLT5tZW0gPSByYW5nZXNldF9uZXcoTlVMTCwgTlVMTCwgMCk7DQo+Pj4+
PiBJIGRvbid0IHJlY2FsbCB3aHkgYW4gYW5vbnltb3VzIHJhbmdlIHNldCB3YXMgY2hvc2VuIGJh
Y2sgYXQgdGhlIHRpbWUNCj4+Pj4+IHdoZW4gdlBDSSB3YXMgZmlyc3QgaW1wbGVtZW50ZWQsIGJ1
dCBJIHRoaW5rIHRoaXMgbmVlZHMgdG8gYmUgY2hhbmdlZA0KPj4+Pj4gbm93IHRoYXQgRG9tVS1z
IGdldCBzdXBwb3J0ZWQuIFdoZXRoZXIgeW91IGRvIHNvIHJpZ2h0IGhlcmUgb3IgaW4gYQ0KPj4+
Pj4gcHJlcmVxIHBhdGNoIGlzIHNlY29uZGFyeSB0byBtZS4gSXQgbWF5IGJlIGRlc2lyYWJsZSB0
byBleGNsdWRlIHRoZW0NCj4+Pj4+IGZyb20gcmFuZ2VzZXRfZG9tYWluX3ByaW50aygpICh3aGlj
aCB3b3VsZCBsaWtlbHkgcmVxdWlyZSBhIG5ldw0KPj4+Pj4gUkFOR0VTRVRGXyogZmxhZyksIGJ1
dCBJIHRoaW5rIHN1Y2ggcmVzb3VyY2VzIHNob3VsZCBiZSBhc3NvY2lhdGVkDQo+Pj4+PiB3aXRo
IHRoZWlyIGRvbWFpbnMuDQo+Pj4+IFdoYXQgd291bGQgYmUgdGhlIHByb3BlciBuYW1lIGZvciBz
dWNoIGEgcmFuZ2Ugc2V0IHRoZW4/DQo+Pj4+ICJ2cGNpX2JhciI/DQo+Pj4gRS5nLiBiYjpkZC5m
OkJBUm4NCj4+IEhtLCBpbmRlZWQNCj4+IEkgY2FuIG9ubHkgc2VlIGEgc2luZ2xlIGZsYWcgUkFO
R0VTRVRGX3ByZXR0eXByaW50X2hleCB3aGljaCB0ZWxscw0KPj4gKmhvdyogdG8gcHJpbnQsIGJ1
dCBJIGNhbid0IHNlZSBhbnkgbGltaXRhdGlvbiBpbiAqd2hhdCogdG8gcHJpbnQuDQo+PiBTbywg
ZG8geW91IG1lYW4gSSB3YW50IHNvbWUgbG9naWMgdG8gYmUgaW1wbGVtZW50ZWQgaW4NCj4+IHJh
bmdlc2V0X2RvbWFpbl9wcmludGsgc28gaXQga25vd3MgdGhhdCB0aGlzIGVudHJ5IG5lZWRzIHRv
IGJlIHNraXBwZWQNCj4+IHdoaWxlIHByaW50aW5nPyBSQU5HRVNFVEZfc2tpcF9wcmludD8NCj4g
WWVzLCBhbGJlaXQgSSdkIGNhbGwgdGhlIGZsYWcgZS5nLiBSQU5HRVNFVEZfbm9fcHJpbnQuDQpU
aGVuIEkgc2VlIHR3byBwYXRjaGVzIGhlcmU6IG9uZSB3aGljaCBpbnRyb2R1Y2VzIGEgZ2VuZXJp
YyBSQU5HRVNFVEZfbm9fcHJpbnQNCmZsYWcgYW5kIHRoZSBzZWNvbmQgb25lIGNvbnZlcnRpbmcg
YW5vbnltb3VzIHJhbmdlIHNldCB1c2VkIGJ5IHZQQ0kNCj4NCj4gSmFuDQo+DQpUaGFuayB5b3Us
DQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:34:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:34:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228646.395701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4ml-0000SK-18; Mon, 22 Nov 2021 08:34:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228646.395701; Mon, 22 Nov 2021 08:34:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4mk-0000SD-Ti; Mon, 22 Nov 2021 08:34:46 +0000
Received: by outflank-mailman (input) for mailman id 228646;
 Mon, 22 Nov 2021 08:34:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mp4mj-0000S4-T5
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:34:46 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ac517bf-4b6f-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 09:34:44 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AM6vsHW018680;
 Mon, 22 Nov 2021 08:34:41 GMT
Received: from eur03-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2057.outbound.protection.outlook.com [104.47.9.57])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cg5w8rebd-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 08:34:40 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com (2603:10a6:20b:13c::18)
 by AM6PR03MB3864.eurprd03.prod.outlook.com (2603:10a6:20b:1c::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Mon, 22 Nov
 2021 08:34:38 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445]) by AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445%3]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 08:34:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ac517bf-4b6f-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RaZwTeqBOTBpCpijIa2w2zQGkM6Fu0KLmLX/CgbDIjxCQxEcbd8m4KBcY35OmNEz0nqNg1nba58jUAE6wHuk2hfw95nbp7qOiqTMqgsmSjgwgfJccVwsY2Nz5tGldffMzN8mijdROi7Y+JBrY+P3+Hf2KG52LG2feZ2uxLZLyDVOF3JjcMsvQy1BObTkahMPIst083XIEenX457aB+1JOA45kDZAnhC3OSN2JVm0BUWPX6KUVjL+yfA8yO1paQ0dty/H1VWu6f1Ret76ShaIbh1oMNWhfNx3SlGVnJvhmOYzO5AkYtN9UduoUsoy5fSmzwb44TntLXkVKCAfj/cUGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+Vjpian0JO/vpODL6mxdgBW38L8PRByaTYz+7fwh+qU=;
 b=bSwFPTmTjskRWCdKxyhbecd+vKTXJqjJ8i/jWZdrUgd5ivyuFwhVR1E8XdtAWTe6jhIAzLH2rIXNjuILNsVEQgGVVxQRXznSO8v3yNwSmSWuP/JfNdXiJ08HRed+4qHuTQ91/V9kPseILPelH9MyDtDpb3NxdjQ0iBonqs7oViQecojBylu1rJW4ogXB/5qZzuk/+5noFlM/e0H6J3nV7l2PiUl7kAs/YX5yz2c5uZhXBoFq9+3ycuDWL8McccBgyuCj4b39PBftr4fmqvufgpru4WzXmnGqgocZxT1ELi0amDXLz4l8bTibSUcThhI6iwqQbXlvOHON/cjDd2ZFaQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+Vjpian0JO/vpODL6mxdgBW38L8PRByaTYz+7fwh+qU=;
 b=d0raAB2pwBkj4mVq+9SC1TuM8uCvBlLbchYLmqLdTJ0yO1GVExyrtwEyRjQwv5K4+D6kKPPjxd0TeatjgWDqgpcmUgOQt5riI6vP56y6agwcZqPZuSnV6bUuy+M0kEP4vetYrCRTqshHd8YOKYh8X0wpuMjxuD8Fbje2tdVyVy5DeeFSns/MYEUJ7R62a6/JiNkpAHisT4OVe24PwUfRAQcKsPuXQ7uFh10YV/iQBFoHi1Dn5Yd+NaQLFn3NqFE/oorC6p2W93XxALR8Ubjifx76ESFnuv+fubX/PmE/FxjfwwgdRO/wA3nEgIHvi7cLAAS3cX3cquzbNsJHnuN9kA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Thread-Topic: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Thread-Index: AQHX0hJHqVSXqEokpUi6WhDjT3q/RqwK9kcAgAAHm4CABFI8gIAAA08A
Date: Mon, 22 Nov 2021 08:34:38 +0000
Message-ID: <aa3b538b-86ea-020f-8069-8751fd581db2@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
 <YZezXShKi1ofH5Aq@Air-de-Roger>
 <11c3903b-ac7d-47fe-159c-a960fc9998d8@suse.com>
In-Reply-To: <11c3903b-ac7d-47fe-159c-a960fc9998d8@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: de201bc6-2639-480a-bbd6-08d9ad92ec0d
x-ms-traffictypediagnostic: AM6PR03MB3864:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM6PR03MB3864A3DE1573AC400F11E0D5E79F9@AM6PR03MB3864.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 hN3ndYTupKyMSCgg3u1h0TFZWv26fD37rnvS7u1hxKBBeYDUala7Eu4438JodDf8AQUgAiLhR8gGmdfUC9J/k5pv2sQHb5oEgh+TAg58pjm5BreD4bKysu97gJevG3gYBVxkM9xjm0OWODDBW08mOuR3W5+/NKYnbcN2fL5x+ANRq9qouic2S2/8ecKHPJa3cNWeM4SDIctmxLvwnSTqETonUiPoRA5O5xcINednAEwv92qAOTc4kLhTb9uhObgZHF7fL5EIpJ2K7fJg2ew9MoDyDtQD0NSntjGI5YBVRRS89VFIGGOT064z7TSt2+36+mglRGdD5je6BYzm4KCTovZvFIis6T3pi6cumUy4QesHibowN1QcAr4cGMeRgGVo1z2h8/BCnF6PESPOFw6+BI/mrp+jHnfap7EeFEuwwyOqoxI0stVtDznGcMZRtT8e04DwUz39JWxdrdeRH2UpFkm0+o4pet+VOO/GA3tYA2waESGuVRRjMxQedSq7MLEXL6c60AaMROBycq/mm1cWEE6XN3rcE3+s7mVOxhfk9J5kOXmtxM3Ci8o9dMqnC/eDPP/1PfIIs0hOjrjRZcHZyw7imDqEcVZA0jIi3x3gL5NoWfdHZUkGCFoFXc2S+83RvABNbeoBAcBZXylysHyFo3X714IDszDnwkFsePsLTpfvJfuAAjMk2kOZrRGvLFbqaZRUpO+hIFjATyhmSouyCokQqVFFXRWkIvln+SlG9mWu+JqaO080/Z3rETOEepolCmgUVrVT6ZAIlXYyP84k4bcyzZuETDJZliKw7D4XFJCPaPODmpUbwbMHUj63YL0o19SkdUF/msPl4gxi9s3RYQ==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR03MB6325.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(31686004)(6486002)(4326008)(110136005)(66476007)(83380400001)(26005)(38100700002)(36756003)(186003)(107886003)(38070700005)(66556008)(53546011)(966005)(66446008)(6506007)(6512007)(508600001)(2906002)(64756008)(71200400001)(7416002)(316002)(8676002)(5660300002)(2616005)(86362001)(66946007)(8936002)(31696002)(54906003)(76116006)(55236004)(122000001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?UXpwc0YzeE1GaGRXQXA0NjBPZElsZWN1WGM4MHlReGROZGZuaWNBcXBRUG54?=
 =?utf-8?B?MVdTMVowV0VuKzRNdFZSRnFXZkF2Q3BkNEZXdG8rcU9UNktBTkhOd29jdFhV?=
 =?utf-8?B?L0E1VlZCckZjRDNYa2lqWGFnQWlPZ0NuSnM3THZSSWYyN21reVRlRDA2cTFW?=
 =?utf-8?B?d3REUkdCck5YTHlEMVVjNUdWTFQwUWlBYnJGM05DOS82bldzZGJsUi9IcC85?=
 =?utf-8?B?TzRUMURZYTJCRDNpZlN2Nms3YUFGZnJieDZENzJ3MllIUjRoZkVYbSswT0dp?=
 =?utf-8?B?a2Z1ZW5PbHVhSGQ1VWhUUzljM0lYTnB6ZzlUay9RZElwYlJHWVdsTEZrZ3I5?=
 =?utf-8?B?L3ZIejc0TmtXWGIrV1U1T3d4SVNHdzQyZmFFSFczQ2JaK3JSdUpHOUtRNVZt?=
 =?utf-8?B?ckFPRnVsY0diK1ZLcGh1dlp0NGw0K2ZvR0g5azRSc1dlM3cxWDRHalVWcWRM?=
 =?utf-8?B?R2kwdGhhQWR4aGpIVUV3MHBZUE1BY2xwbE1xYVhTMkRtL1J6K3B3SlBQb0xV?=
 =?utf-8?B?THRBT2tac2poVVJzYWVoMDhvYnczVHlLZm1UZDJGdUYwQm9LMEc1ajJSWHBa?=
 =?utf-8?B?VUh1QWNZTmZNQzMyT2tuZms3NGdLYUhtbDI1K3FGQVVDNnIyNm9la0w4VEFT?=
 =?utf-8?B?OVpPSnJkRmk2bHdQcGtCa1ZlTTBmamUzd3phNDRoMlk3RXFhZjBCaWprNjR4?=
 =?utf-8?B?WTF5cXpOK2FlWE13RWdZcjFWOXpBNXl1MFpHMVZHaTRXb2JaNm1iNHZyQzBG?=
 =?utf-8?B?aDFHVS9zRE0zb0FtNGNBYktKTldBQXJ6MjFPdW1Lc0ZUSGdTVkduRGFaZ1M3?=
 =?utf-8?B?dTZHTEdud0ZjbVFYT2xmbzFWbzhKeXd6YUx3SzkzbVMvNW90Ly9jcWlQVzNF?=
 =?utf-8?B?V1Y0UURxaGZvM21JN2xQNnc0OWlhbFVRcXkzQzBkenZhYWg5dUtwTkkrL3BU?=
 =?utf-8?B?RkowcjVUQ1NQZHRqN25OTW9PcVBrSld1YUw0WGdwY28ycGM3cm8wOEswR04r?=
 =?utf-8?B?UHVGSWFlZmdqNHJFMW5JMkJ6YnZrV0k5dEkzWm1OWlRqTEdreStHN1d4cjhz?=
 =?utf-8?B?eFc1UXhDM2xkaXZXU05lMzQ2ZXJrUGJHamxxc1NhelVLRE1Xek9TVERMSGZi?=
 =?utf-8?B?TnNBb0JXSm9qa0NaVCs0QjFiZEFWazVycFZrUjlPek1iaSt2aDlqcjNUTSts?=
 =?utf-8?B?N2VyY3czM3VKY0lGa1ZHU3l6MjJ0ZGdJWWkwZktDNFdFcGRBNWs0K1BrMDdG?=
 =?utf-8?B?Nmh0cXNPdkZYVHQ0NldQdzRqSUZXTWh1RXVDdk1LNjVGOW81VEhKWVc5MnZj?=
 =?utf-8?B?cVE0ZlZtdUFtWCtMTjgxYjQ2RFZEVTBFaEVjcWQ2U25BcWc4dkIrRnJRem9G?=
 =?utf-8?B?Um5wdTMrNjZFTFdCMm4yQ2kya0w2Vmx6YW1FdWM1M2VTR3pGVzNaZ0t2Zkk2?=
 =?utf-8?B?ZTQxN3dBQ0VFWm9sdFlYMnRnV0MrUDg4cEFJYjhmc0UvR01sZWhjMDJrT1dX?=
 =?utf-8?B?SmxiUnV0dWlHSXhlSTVpbWxwVHFtWE9zNkI2cjdGeWgzWGNUR1NGTDhlUjlv?=
 =?utf-8?B?YzVQbUM3bFFLVnl6ZHdLbGRaYnA0bEcrZzlDZkVnOFhUVTllZlFQbmlDTkF2?=
 =?utf-8?B?cVBQNVV1a1dPTzBFdkdEMXBMYStoMG0yQWZudmJXdWFXZUxDZmU4Tms5cENi?=
 =?utf-8?B?QzFSOFFnSWFDT1gvOVVLYVF2TzZ0Q3U2aTRwQjFDaEZLbzEyTmM2L0M2Y1NX?=
 =?utf-8?B?elQzcFRjaEtpb1JBMTYxelZPZklST0hMOU96VmtYWDBjenFEc1pBU3pmRFBQ?=
 =?utf-8?B?bUM2aEQrWm9SK0Y4clA0Uk9SRE1QVDBxSlZMOUNDMWhkVlMxWWFkSDZ0NlE5?=
 =?utf-8?B?bUI1VGVLSHVLN3oyQk56QmQyNFVQTm10Ums4NmZGTVJzTm9HclpnZjlyTlZj?=
 =?utf-8?B?WUVNZWx5OXg2cGJPNHBNN2RueS9PNXBienptR3NGb0p0YWhVRXBuSWFaMDJU?=
 =?utf-8?B?eUIzRG9wcmphU3BldTRYTi9aVDMzL2FCMWlpVklaeEREMVdnSTFJS1pyRWVR?=
 =?utf-8?B?Y2NnaDZRdExRWUJOUjBnU3FHU2dLT3NNaklESCtZY2I1Z3o3aEl0eTc3Vncv?=
 =?utf-8?B?R0J5SjAwQXBTMEVBaTlTcmpTNE5zdndZT0Rud25tdEdBSGRxMGtXZHZMNXNN?=
 =?utf-8?B?SWlTTFM3RStvemQ5WW9BZnRRNWRHN0c4dStvUVdzakk2VWpGdWtOc21paExM?=
 =?utf-8?B?dG1HSE9Ba2dtL2QrbGR1aDV6ZTFyWEtTVjNya0FCLzdKaW1PZFpUb29YQVYr?=
 =?utf-8?B?ektsUzdMNFN3MXJ2bGxhZ0hNbWNWWDBMNWdSNHJKMGdoREFJcEVrdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3ADD3F707E9E884E8F22AF9F1D85B47C@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6325.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: de201bc6-2639-480a-bbd6-08d9ad92ec0d
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 08:34:38.5624
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ttk1dIP7WWzWoybKuHZ0mSl5OsfQuss1f0qp+K5t88v9E/QJfl6tNyxCJNdrvOm+YnSeUJo0V7X3F3aLMWKBhZeQvRrHQ896XZENtMGbJNCp7Cd2q6dLmV5tHwRovw8j
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB3864
X-Proofpoint-ORIG-GUID: wG4z7pCWYrF_2sC4SsF8XvArAFyXdNn7
X-Proofpoint-GUID: wG4z7pCWYrF_2sC4SsF8XvArAFyXdNn7
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_04,2021-11-22_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0
 priorityscore=1501 impostorscore=0 adultscore=0 suspectscore=0 bulkscore=0
 phishscore=0 mlxlogscore=754 mlxscore=0 lowpriorityscore=0 clxscore=1015
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111220043

DQoNCk9uIDIyLjExLjIxIDEwOjIyLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTkuMTEuMjAy
MSAxNToyMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+IE9uIEZyaSwgTm92IDE5LCAyMDIx
IGF0IDAyOjU2OjEyUE0gKzAxMDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDA1LjExLjIw
MjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBGcm9tOiBPbGVr
c2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+
Pj4+DQo+Pj4+IEhpLCBhbGwhDQo+Pj4+DQo+Pj4+IFRoaXMgcGF0Y2ggc2VyaWVzIGlzIGZvY3Vz
aW5nIG9uIHZQQ0kgYW5kIGFkZHMgc3VwcG9ydCBmb3Igbm9uLWlkZW50aXR5DQo+Pj4+IFBDSSBC
QVIgbWFwcGluZ3Mgd2hpY2ggaXMgcmVxdWlyZWQgd2hpbGUgcGFzc2luZyB0aHJvdWdoIGEgUENJ
IGRldmljZSB0bw0KPj4+PiBhIGd1ZXN0LiBUaGUgaGlnaGxpZ2h0cyBhcmU6DQo+Pj4+DQo+Pj4+
IC0gQWRkIHJlbGV2YW50IHZwY2kgcmVnaXN0ZXIgaGFuZGxlcnMgd2hlbiBhc3NpZ25pbmcgUENJ
IGRldmljZSB0byBhIGRvbWFpbg0KPj4+PiAgICBhbmQgcmVtb3ZlIHRob3NlIHdoZW4gZGUtYXNz
aWduaW5nLiBUaGlzIGFsbG93cyBoYXZpbmcgZGlmZmVyZW50DQo+Pj4+ICAgIGhhbmRsZXJzIGZv
ciBkaWZmZXJlbnQgZG9tYWlucywgZS5nLiBod2RvbSBhbmQgb3RoZXIgZ3Vlc3RzLg0KPj4+Pg0K
Pj4+PiAtIEVtdWxhdGUgZ3Vlc3QgQkFSIHJlZ2lzdGVyIHZhbHVlcyBiYXNlZCBvbiBwaHlzaWNh
bCBCQVIgdmFsdWVzLg0KPj4+PiAgICBUaGlzIGFsbG93cyBjcmVhdGluZyBhIGd1ZXN0IHZpZXcg
b2YgdGhlIHJlZ2lzdGVycyBhbmQgZW11bGF0ZXMNCj4+Pj4gICAgc2l6ZSBhbmQgcHJvcGVydGll
cyBwcm9iZSBhcyBpdCBpcyBkb25lIGR1cmluZyBQQ0kgZGV2aWNlIGVudW1lcmF0aW9uIGJ5DQo+
Pj4+ICAgIHRoZSBndWVzdC4NCj4+Pj4NCj4+Pj4gLSBJbnN0ZWFkIG9mIGhhbmRsaW5nIGEgc2lu
Z2xlIHJhbmdlIHNldCwgdGhhdCBjb250YWlucyBhbGwgdGhlIG1lbW9yeQ0KPj4+PiAgICByZWdp
b25zIG9mIGFsbCB0aGUgQkFScyBhbmQgUk9NLCBoYXZlIHRoZW0gcGVyIEJBUi4NCj4+Pj4NCj4+
Pj4gLSBUYWtlIGludG8gYWNjb3VudCBndWVzdCdzIEJBUiB2aWV3IGFuZCBwcm9ncmFtIGl0cyBw
Mm0gYWNjb3JkaW5nbHk6DQo+Pj4+ICAgIGdmbiBpcyBndWVzdCdzIHZpZXcgb2YgdGhlIEJBUiBh
bmQgbWZuIGlzIHRoZSBwaHlzaWNhbCBCQVIgdmFsdWUgYXMgc2V0DQo+Pj4+ICAgIHVwIGJ5IHRo
ZSBob3N0IGJyaWRnZSBpbiB0aGUgaGFyZHdhcmUgZG9tYWluLg0KPj4+PiAgICBUaGlzIHdheSBo
YXJkd2FyZSBkb2FtaW4gc2VlcyBwaHlzaWNhbCBCQVIgdmFsdWVzIGFuZCBndWVzdCBzZWVzDQo+
Pj4+ICAgIGVtdWxhdGVkIG9uZXMuDQo+Pj4+DQo+Pj4+IFRoZSBzZXJpZXMgYWxzbyBhZGRzIHN1
cHBvcnQgZm9yIHZpcnR1YWwgUENJIGJ1cyB0b3BvbG9neSBmb3IgZ3Vlc3RzOg0KPj4+PiAgIC0g
V2UgZW11bGF0ZSBhIHNpbmdsZSBob3N0IGJyaWRnZSBmb3IgdGhlIGd1ZXN0LCBzbyBzZWdtZW50
IGlzIGFsd2F5cyAwLg0KPj4+PiAgIC0gVGhlIGltcGxlbWVudGF0aW9uIGlzIGxpbWl0ZWQgdG8g
MzIgZGV2aWNlcyB3aGljaCBhcmUgYWxsb3dlZCBvbg0KPj4+PiAgICAgYSBzaW5nbGUgUENJIGJ1
cy4NCj4+Pj4gICAtIFRoZSB2aXJ0dWFsIGJ1cyBudW1iZXIgaXMgc2V0IHRvIDAsIHNvIHZpcnR1
YWwgZGV2aWNlcyBhcmUgc2Vlbg0KPj4+PiAgICAgYXMgZW1iZWRkZWQgZW5kcG9pbnRzIGJlaGlu
ZCB0aGUgcm9vdCBjb21wbGV4Lg0KPj4+Pg0KPj4+PiBUaGUgc2VyaWVzIHdhcyBhbHNvIHRlc3Rl
ZCBvbjoNCj4+Pj4gICAtIHg4NiBQVkggRG9tMCBhbmQgZG9lc24ndCBicmVhayBpdC4NCj4+Pj4g
ICAtIHg4NiBIVk0gd2l0aCBQQ0kgcGFzc3Rocm91Z2ggdG8gRG9tVSBhbmQgZG9lc24ndCBicmVh
ayBpdC4NCj4+Pj4NCj4+Pj4gVGhhbmsgeW91LA0KPj4+PiBPbGVrc2FuZHINCj4+Pj4NCj4+Pj4g
T2xla3NhbmRyIEFuZHJ1c2hjaGVua28gKDExKToNCj4+Pj4gICAgdnBjaTogZml4IGZ1bmN0aW9u
IGF0dHJpYnV0ZXMgZm9yIHZwY2lfcHJvY2Vzc19wZW5kaW5nDQo+Pj4+ICAgIHZwY2k6IGNhbmNl
bCBwZW5kaW5nIG1hcC91bm1hcCBvbiB2cGNpIHJlbW92YWwNCj4+Pj4gICAgdnBjaTogbWFrZSB2
cGNpIHJlZ2lzdGVycyByZW1vdmFsIGEgZGVkaWNhdGVkIGZ1bmN0aW9uDQo+Pj4+ICAgIHZwY2k6
IGFkZCBob29rcyBmb3IgUENJIGRldmljZSBhc3NpZ24vZGUtYXNzaWduDQo+Pj4+ICAgIHZwY2kv
aGVhZGVyOiBpbXBsZW1lbnQgZ3Vlc3QgQkFSIHJlZ2lzdGVyIGhhbmRsZXJzDQo+Pj4+ICAgIHZw
Y2kvaGVhZGVyOiBoYW5kbGUgcDJtIHJhbmdlIHNldHMgcGVyIEJBUg0KPj4+PiAgICB2cGNpL2hl
YWRlcjogcHJvZ3JhbSBwMm0gd2l0aCBndWVzdCBCQVIgdmlldw0KPj4+PiAgICB2cGNpL2hlYWRl
cjogZW11bGF0ZSBQQ0lfQ09NTUFORCByZWdpc3RlciBmb3IgZ3Vlc3RzDQo+Pj4+ICAgIHZwY2kv
aGVhZGVyOiByZXNldCB0aGUgY29tbWFuZCByZWdpc3RlciB3aGVuIGFkZGluZyBkZXZpY2VzDQo+
Pj4+ICAgIHZwY2k6IGFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIHZpcnR1YWwgUENJIGJ1cyB0b3Bv
bG9neQ0KPj4+PiAgICB4ZW4vYXJtOiB0cmFuc2xhdGUgdmlydHVhbCBQQ0kgYnVzIHRvcG9sb2d5
IGZvciBndWVzdHMNCj4+PiBJZiBJJ20gbm90IG1pc3Rha2VuIGJ5IHRoZSBlbmQgb2YgdGhpcyBz
ZXJpZXMgYSBndWVzdCBjYW4gYWNjZXNzIGENCj4+PiBkZXZpY2UgaGFuZGVkIHRvIGl0LiBJIGNv
dWxkbid0IGZpbmQgYW55dGhpbmcgZGVhbGluZyB3aXRoIHRoZQ0KPj4+IHVzZXMgb2YgdnBjaV97
cmVhZCx3cml0ZX1faHcoKSBhbmQgdnBjaV9od197cmVhZCx3cml0ZX0qKCkgdG8gY292ZXINCj4+
PiBjb25maWcgcmVnaXN0ZXJzIG5vdCBjb3ZlcmVkIGJ5IHJlZ2lzdGVyZWQgaGFuZGxlcnMuIElN
TyB0aGlzIHNob3VsZA0KPj4+IGhhcHBlbiBiZWZvcmUgcGF0Y2ggNTogQmVmb3JlIGFueSBoYW5k
bGVycyBnZXQgcmVnaXN0ZXJlZCB0aGUgdmlldyBhDQo+Pj4gZ3Vlc3Qgd291bGQgaGF2ZSB3b3Vs
ZCBiZSBhbGwgb25lcyBubyBtYXR0ZXIgd2hpY2ggcmVnaXN0ZXIgaXQNCj4+PiBhY2Nlc3Nlcy4g
SGFuZGxlciByZWdpc3RyYXRpb24gd291bGQgdGhlbiAicHVuY2ggaG9sZXMiIGludG8gdGhpcw0K
Pj4+ICJjdXJ0YWluIiwgYXMgb3Bwb3NlZCB0byBEb20wLCB3aGVyZSBoYW5kbGVyIHJlZ2lzdHJh
dGlvbiBoaWRlcw0KPj4+IHByZXZpb3VzbHkgdmlzaWJsZSByYXcgaGFyZHdhcmUgcmVnaXN0ZXJz
Lg0KPj4gRldJVywgSSd2ZSBhbHNvIHJhaXNlZCB0aGUgc2FtZSBjb25jZXJuIGluIGEgZGlmZmVy
ZW50IHRocmVhZDoNCj4+DQo+PiBodHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly9s
b3JlLmtlcm5lbC5vcmcveGVuLWRldmVsL1lZRDdWbURHS0pSa2lkNGFAQWlyLWRlLVJvZ2VyL19f
OyEhR0ZfMjlkYmNRSVVCUEEhbjM3WWlnOXBBQXlobzdmQjlrQy1xMFQtZ2pDX3V0cHpqdFF4TnY4
dWRNWDBkWEs1NFBXY0h3QnF0bXpIWFNjNWxUa3pLdTRYZlEkIFtsb3JlWy5da2VybmVsWy5db3Jn
XQ0KPj4NCj4+IEl0IHNlZW1zIGxpa2UgdGhpcyBpcyBmdXR1cmUgd29yaywgYnV0IHVubGVzcyBz
dWNoIGEgbW9kZWwgaXMNCj4+IGltcGxlbWVudGVkIHZQQ0kgY2Fubm90IGJlIHVzZWQgZm9yIGd1
ZXN0IHBhc3N0aHJvdWdoLg0KPj4NCj4+IEknbSBmaW5lIHdpdGggZG9pbmcgaXQgaW4gYSBzZXBh
cmF0ZSBzZXJpZXMsIGJ1dCBuZWVkcyB0byBiZSBrZXB0IGluDQo+PiBtaW5kLg0KPiBOb3QganVz
dCB0aGlzIC0gaXQgYWxzbyBuZWVkcyB0byBiZSByZWNvcmRlZCBpbiB0aGlzIGNvdmVyIGxldHRl
ciBhbmQNCj4gaW1vIGFsc28gaW4gYSBjb21tZW50IGluIHRoZSBzb3VyY2VzIHNvbWV3aGVyZS4g
T3IgZWxzZSB0aGUgcXVlc3Rpb24NCj4gd2lsbCAodmFsaWRseSkgYmUgcmFpc2VkIGFnYWluIGFu
ZCBhZ2Fpbi4NCkkgYW0gZmluZSBhZGRpbmcgc3VjaCBhIGNvbW1lbnQsIGJ1dCBhbSBub3Qgc3Vy
ZSB3aGVyZSB0byBwdXQgaXQuDQpXaGF0IHdvdWxkIGJlIHlvdXIgYmVzdCBiZXQgaWYgeW91IHdl
cmUgdG8gbG9vayBmb3IgdGhpcyBpbmZvcm1hdGlvbj8NCkkgdGhpbmsgd2UgY2FuIHB1dCB0aGF0
IGluIHhlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jIGF0IHRoZSB0b3AsIHJpZ2h0DQphZnRlciB0aGUg
bGljZW5zZSBpbiB0aGUgc2FtZSBjb21tZW50IGJsb2NrLg0KPg0KPiBKYW4NCj4NClRoYW5rIHlv
dSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:45:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:45:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228653.395712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4wi-0001xH-4b; Mon, 22 Nov 2021 08:45:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228653.395712; Mon, 22 Nov 2021 08:45:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp4wi-0001xA-0w; Mon, 22 Nov 2021 08:45:04 +0000
Received: by outflank-mailman (input) for mailman id 228653;
 Mon, 22 Nov 2021 08:45:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp4wg-0001x4-PY
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:45:02 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7aca8edf-4b70-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 09:45:01 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2051.outbound.protection.outlook.com [104.47.0.51]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-33-jZG-9usuMU-VfxBYL5g43w-1; Mon, 22 Nov 2021 09:44:59 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB2960.eurprd04.prod.outlook.com (2603:10a6:802:9::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 08:44:57 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:44:57 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM6PR10CA0088.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::29) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.22 via Frontend Transport; Mon, 22 Nov 2021 08:44:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7aca8edf-4b70-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637570700;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Axjzp1r9UhHaSKLNOwgPmzihdnqdQI2RRtfCX9eZHso=;
	b=W8sbMsFhSRG6SdXBgs+Lvi3mr84cRv5ZI5/DsJ3eE3VxHkFsEhxLfs9ClnAQ+5II/hmBBD
	RjFtjEP/mngDBpVTVjv0bVlTgQp4HjqIn8VIQkmimPsb9mKe+RtvnMhg6MGbmYVbzQjZH0
	QsO3Sy9q5EdBEtJBSaPSiM6k7ia/d28=
X-MC-Unique: jZG-9usuMU-VfxBYL5g43w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g2B6faS9LYiL0EpCutwJmW02owM58QTZLZzpyaWi8SUap+T9MPz2BsiGsk5W6y7T51srrWhdoukOpZ/qbMxxFZ1uu4v0J/R+aZo4ar6ZUmR9Yv5BOkPsDc4u3tZRVEhpLDZiCWdnR1aIzjO0+Nmy1YSVs0IF2UUYUMExQf2jgRJfTW/xolkhaE1kkbCAMI3r+35ZTi8EvlsuNh4t2KBsywh+Z8/vPTGDAd7g7u/lEaW527HEew4HrFFCGpyrb63rpkZFagn69glKJE89AaxlvnHWHjvJm5cLpbhmyVDFskpU0KZSbrcFWUu94g8GmBAvyyeZswcc7BkH9RtCUZ1p1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gWFH8u61ffaRjq24Whz6QdJ+P+jWD6oSHVLJQlBp3Q0=;
 b=Ma1Wa0eFahMVk6oi/7/JGNZ2vYklUQDJ2HBvZCg8z9wYaAVuWAFPsNywrH4AyXSkLM7OjDbEaYB1l0rhoHpSRNwH9e3gZtGkm62a//o18cQn+GRePJoSVONAM5iksYDhkusgM1t1QG84LBToI/mb7fZR2DlIUoTDcDZZ6vjNAGuG+HJJMh0ULbkwq8QsXQREVGs5ZX2m5LCAXkTfJnMWfvEQaZZzUIEUAcma4xr2/GYu+OjVtM22D6vy4yof7rYTT03oMvs6hCIGeFHPVDVWtlf4TSWS7rBNubNIyFnhzUJnqUPPwk/pYGAQCOAFwFKXzyM42TUZ4YNPuezNZmAfbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1d723de4-46fe-c62f-fcc9-ac1cc1d7de8b@suse.com>
Date: Mon, 22 Nov 2021 09:44:55 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v4 00/11] PCI devices passthrough on Arm, part 3
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "julien@xen.org" <julien@xen.org>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <f659a29e-f006-ddc5-53b4-236eb261e1ea@suse.com>
 <YZezXShKi1ofH5Aq@Air-de-Roger>
 <11c3903b-ac7d-47fe-159c-a960fc9998d8@suse.com>
 <aa3b538b-86ea-020f-8069-8751fd581db2@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <aa3b538b-86ea-020f-8069-8751fd581db2@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR10CA0088.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:8c::29) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 011cf678-1d81-4f5e-e310-08d9ad945cef
X-MS-TrafficTypeDiagnostic: VI1PR04MB2960:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB29600DEB1E92AB7321FA65AFB39F9@VI1PR04MB2960.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jQK+9WfFEmN7wvFjIAmcusxiQR/KByrzomEmYRnhH/x6zD6Q+YA7Gg9Iech51DbbYqUtB27v7LOWiy+P9GuILUsYPW+WFmSyJRwwHqASr30D/4Xv7vnSqpAS04aM5WYAXwIQUAkivHRMWKBQrwrrk+Lv2dhjIudNQAGpJdbjB8KMMJmwBmZtKV2/JzVqXBHyPwCM83Sj2/SPGu2nf/xlUAv1QVSpDEJtLxKD9vdadzYbZWekM6WHN+5Q8EXFJIbJu68Y1qMfY2a3+ve7M+NhuXYz7T487ioJJPmnagJX/Iq5whmj3j42oO4Ki/EnTl0W4DBva8QAxda7EiQDMwj7KtUWnO4Ih0Yh2ODoGKuaNGWibF74hjkYkoq8vWxHSnoAiGLRmHShuoc+oFwwtAPw++vCQD6VkIyGNITP4ScUazF0fh6fd9RB1YsrpbrLhmGorZUnwhsi2ihEQCUW2wbBb2Jcd7KXPCoyZTZar8QbWEwmzFUzu5twdlpwOaDtouOaWtv6/MLUmIE25bJ0guapcHoOkLm7CqXAK4UBhtaFkDr+ySQvT6/liDnVflTavvIO3LmAtSnPt8yeccKV7nNV6mTCgz0z1E6KNh0xIJyMoBW5y9iXYbkKwBjGqDe9D5ItQlq1LSVAClos6qC/Ro6oTRGrr+5znHGvnhfKoa86hYCYTBQJWPrMQy/P8EvWlgvd/tAQ1nvycBNi5xyIAzulvAxcGeYl8N2i6Ov15Vfe8KfeGto1oEARPNo2lSVw+KK79Jb9PY/ruY/F7qz2YKXRxsPhsFLeCmDpscQljBup3oW98qI/bVowsIMqZtGtHdEw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(966005)(31686004)(83380400001)(508600001)(6916009)(53546011)(36756003)(8676002)(38100700002)(7416002)(54906003)(8936002)(5660300002)(86362001)(31696002)(2906002)(66946007)(66476007)(66556008)(186003)(6486002)(2616005)(4326008)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?1x7dwnL1zRKK3hW+tVXFncj+8CSlZgd3DLEU8nAbNNuIby9EQEP+llATNuPO?=
 =?us-ascii?Q?BovFbYs+MwHoNvkwo7KfSqJfVUTs5R4i2/aZl06MaWhfQqbVTymiyzJLArHl?=
 =?us-ascii?Q?I+1yII1Vt/3rmOR/JHKdVQml/6BE3+os8ZmcvdNOx/hGFXfV6tUsYHEPztQo?=
 =?us-ascii?Q?BvVCmw1zJ6n7eGvf2ry899OrNvOb0QN0cRQwWpA2zFdOb37bwo2ctvIwuXI6?=
 =?us-ascii?Q?QQogl75BOd9GzZvd11oLq0VA0sRHeuEupTPV9F9yIZezW4Y2dCxFiOSgq3na?=
 =?us-ascii?Q?VTFUwuL9GTyS7h3Q5eC1u7J0CRRgoWBm+vhzfUU1rthMscwfDVpqm6nPgshf?=
 =?us-ascii?Q?gNuADqn3ucQRm7xk0EmBPEhllkSihqqQ+ttlZb+FHulrXi/PSxVjyFIrl7CS?=
 =?us-ascii?Q?W6EpR4rXyJsimyNt7EEKDV/o/MQPsvXmT0ZJvi896ZxN8FE8gZSQ1JFpw8fk?=
 =?us-ascii?Q?qKoXGOFg1fw6a9jqfKpaepbanNI9Q8egmR+ERCr8BJuKqjIDm2zn1RgN7ogW?=
 =?us-ascii?Q?pKUYBy3NKtTHmF3b8a86yWJglzpBeOLAMkyjGKEd7g8FSR/7ZlK4gHBuQzXZ?=
 =?us-ascii?Q?Q45IMIfu8aLgbQUwFSPPOmoVuEkd+rDNWygbZ96xCWuV9wiNY7m8l1dYNq/5?=
 =?us-ascii?Q?o4E4zCx0VK1U8cx9Xlmiyf1XHqMl+pMS4du5XBm6MYvZSRM4OUWY16JggniL?=
 =?us-ascii?Q?aZRs6+F8Gt6aGn1O4p5Fxd/XhwojV1GTcHXKMPmowCpN09kWMcBzLYVMqQb5?=
 =?us-ascii?Q?3dix4RsBJdPVeriejWrw2woSVt/BlJCDq5nmxMnFWlACEK+H4F2RhJFbFD2h?=
 =?us-ascii?Q?iO9J2qB5t/OxWUuOsvC57oMOUd/x0H783kfKeJ7lnHPW3J5zIM3Bje2xctOL?=
 =?us-ascii?Q?gnzkzQFoxRSxn/n3Q9YkEflMU5LyqwePPJIBvUZKLyvH2fG/9yElUwi2HzjD?=
 =?us-ascii?Q?Yn8OSz6hGZu75/UubpawMKd0yftGcThvxj3IN31uUXj7mDDhnaUvzn3p6R7A?=
 =?us-ascii?Q?DgH9iZZi81/HSQc1EZzyv1bAeC1v5TUHRvFU6+Rg8P5VS/xGLUzFxw4YM/Lv?=
 =?us-ascii?Q?scPPJyy2E6AH6kp153kR5ANdXQO1+faaMmFsji0cY1Dl9BISQiKrF62cbAsu?=
 =?us-ascii?Q?I7+SUkZwnP9zKZAPmLzzcziJ4HlD5S8g01Qb/rqXiY80fE+0k+64IxwDSPTj?=
 =?us-ascii?Q?dnAHFWW4cn+wcaiYstiUN1FJa3C+7TaLbbaol03eQx7NDNFq3282ArsIy9Fi?=
 =?us-ascii?Q?Xw8skTz0x/rh4BWVmqcGtXVseslMt7QeQ/QN6So/h3R2yrc3mTZ1JEuJjugk?=
 =?us-ascii?Q?Swmt3rr3q5UY0jJv9L3z2FccMydqw6j2h3zO039IgkGPqd1+cJhG+Fr5Bz0/?=
 =?us-ascii?Q?1kxSzIrWvfkfTZyNrGp99PsjCPA7Vm86KMDJpeWYyy3U+52HOeeiwSUlV72Q?=
 =?us-ascii?Q?NVjvWJ/1xid8QJ9iEkbHBYJPOQu5jS0jEGWfzAn60BUHH4uYfw55cdBS8aFZ?=
 =?us-ascii?Q?13WwP5R38+afR7yML4VN1XloZ7HZoXhZ8XIn6LZn/fD7lOgPSFM4I7QTz5qW?=
 =?us-ascii?Q?qdq3Tf5pKJSFTx3MMQH0z1W434PsvELHlLJwgg7yn477UsymRU7anmcDTO99?=
 =?us-ascii?Q?sRzSPyXULENvPoer+3nF10ILSAyzuG/HElOPVdqNXj5ORaMLYiN0f2UQH+tD?=
 =?us-ascii?Q?+4utsB4bK4lxT5RgbKPJZtotOFE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 011cf678-1d81-4f5e-e310-08d9ad945cef
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:44:57.6675
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: emfpI9NV5XhJiu4Uz3NwQr2ONIun5YbClV2qTwIJ2NmLnkwOBJsZHhm2b8yg8ewjoCWROgBLJNfsigwG87kfFg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2960

On 22.11.2021 09:34, Oleksandr Andrushchenko wrote:
> On 22.11.21 10:22, Jan Beulich wrote:
>> On 19.11.2021 15:23, Roger Pau Monn=C3=A9 wrote:
>>> On Fri, Nov 19, 2021 at 02:56:12PM +0100, Jan Beulich wrote:
>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>
>>>>> Hi, all!
>>>>>
>>>>> This patch series is focusing on vPCI and adds support for non-identi=
ty
>>>>> PCI BAR mappings which is required while passing through a PCI device=
 to
>>>>> a guest. The highlights are:
>>>>>
>>>>> - Add relevant vpci register handlers when assigning PCI device to a =
domain
>>>>>    and remove those when de-assigning. This allows having different
>>>>>    handlers for different domains, e.g. hwdom and other guests.
>>>>>
>>>>> - Emulate guest BAR register values based on physical BAR values.
>>>>>    This allows creating a guest view of the registers and emulates
>>>>>    size and properties probe as it is done during PCI device enumerat=
ion by
>>>>>    the guest.
>>>>>
>>>>> - Instead of handling a single range set, that contains all the memor=
y
>>>>>    regions of all the BARs and ROM, have them per BAR.
>>>>>
>>>>> - Take into account guest's BAR view and program its p2m accordingly:
>>>>>    gfn is guest's view of the BAR and mfn is the physical BAR value a=
s set
>>>>>    up by the host bridge in the hardware domain.
>>>>>    This way hardware doamin sees physical BAR values and guest sees
>>>>>    emulated ones.
>>>>>
>>>>> The series also adds support for virtual PCI bus topology for guests:
>>>>>   - We emulate a single host bridge for the guest, so segment is alwa=
ys 0.
>>>>>   - The implementation is limited to 32 devices which are allowed on
>>>>>     a single PCI bus.
>>>>>   - The virtual bus number is set to 0, so virtual devices are seen
>>>>>     as embedded endpoints behind the root complex.
>>>>>
>>>>> The series was also tested on:
>>>>>   - x86 PVH Dom0 and doesn't break it.
>>>>>   - x86 HVM with PCI passthrough to DomU and doesn't break it.
>>>>>
>>>>> Thank you,
>>>>> Oleksandr
>>>>>
>>>>> Oleksandr Andrushchenko (11):
>>>>>    vpci: fix function attributes for vpci_process_pending
>>>>>    vpci: cancel pending map/unmap on vpci removal
>>>>>    vpci: make vpci registers removal a dedicated function
>>>>>    vpci: add hooks for PCI device assign/de-assign
>>>>>    vpci/header: implement guest BAR register handlers
>>>>>    vpci/header: handle p2m range sets per BAR
>>>>>    vpci/header: program p2m with guest BAR view
>>>>>    vpci/header: emulate PCI_COMMAND register for guests
>>>>>    vpci/header: reset the command register when adding devices
>>>>>    vpci: add initial support for virtual PCI bus topology
>>>>>    xen/arm: translate virtual PCI bus topology for guests
>>>> If I'm not mistaken by the end of this series a guest can access a
>>>> device handed to it. I couldn't find anything dealing with the
>>>> uses of vpci_{read,write}_hw() and vpci_hw_{read,write}*() to cover
>>>> config registers not covered by registered handlers. IMO this should
>>>> happen before patch 5: Before any handlers get registered the view a
>>>> guest would have would be all ones no matter which register it
>>>> accesses. Handler registration would then "punch holes" into this
>>>> "curtain", as opposed to Dom0, where handler registration hides
>>>> previously visible raw hardware registers.
>>> FWIW, I've also raised the same concern in a different thread:
>>>
>>> https://urldefense.com/v3/__https://lore.kernel.org/xen-devel/YYD7VmDGK=
JRkid4a@Air-de-Roger/__;!!GF_29dbcQIUBPA!n37Yig9pAAyho7fB9kC-q0T-gjC_utpzjt=
QxNv8udMX0dXK54PWcHwBqtmzHXSc5lTkzKu4XfQ$ [lore[.]kernel[.]org]
>>>
>>> It seems like this is future work, but unless such a model is
>>> implemented vPCI cannot be used for guest passthrough.
>>>
>>> I'm fine with doing it in a separate series, but needs to be kept in
>>> mind.
>> Not just this - it also needs to be recorded in this cover letter and
>> imo also in a comment in the sources somewhere. Or else the question
>> will (validly) be raised again and again.
> I am fine adding such a comment, but am not sure where to put it.
> What would be your best bet if you were to look for this information?
> I think we can put that in xen/drivers/vpci/vpci.c at the top, right
> after the license in the same comment block.

I would put this e.g. next to the first call to vpci_read_hw() from
vpci_read(), making the wording general enough to express that this
applies to all such calls, including the write counterpart ones.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:50:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:50:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228660.395723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp51b-0003HN-Or; Mon, 22 Nov 2021 08:50:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228660.395723; Mon, 22 Nov 2021 08:50:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp51b-0003HG-LL; Mon, 22 Nov 2021 08:50:07 +0000
Received: by outflank-mailman (input) for mailman id 228660;
 Mon, 22 Nov 2021 08:50:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp51a-0003DA-JN
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:50:06 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 300a55d9-4b71-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 09:50:05 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2053.outbound.protection.outlook.com [104.47.10.53]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-24-MMOpLgeHPFaeFlExR5yLSw-1; Mon, 22 Nov 2021 09:50:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4351.eurprd04.prod.outlook.com (2603:10a6:803:49::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 08:50:02 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:50:02 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AS8PR04CA0037.eurprd04.prod.outlook.com (2603:10a6:20b:312::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Mon, 22 Nov 2021 08:50:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 300a55d9-4b71-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637571005;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=NLXDG116UV6WCFcGXVD88fa0nuwa1Bf9Q9aGqMySgco=;
	b=dwtCXBR0jHQBSZ7bo4OmLmaJAH3wiKaTKqn6Jz4esC8B5i5ydhpTq6BA8wAlElvBk8kl13
	QfKeqdYmT3v14mUWPmZt33QM1uCwNVJxVBYmBPW1o/d71CM3iYS73yorO0OXRtblkhyrOI
	w51nhgm5YLhtLV2SGVpuDbQ7TmvpNSo=
X-MC-Unique: MMOpLgeHPFaeFlExR5yLSw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AvSVnLZD7cIpJsCmV8lnbs1UNn3O7fZTaY2gUtU16Wpw6WfpDIvZpXMxExi/2Xk9mvBhGNZdjOF9d46Fo0GFU86hpJMEByNHDOdoO1kXmjROxOQzUnGspIOw4pfZTzg6U7/Z2wkG5bJqSpvcDWWDOaCBqzENhOtetHCoqzHSDysaSGMszdTjX0LHP7D5JGfskknHp97Nf5A1yVrAvypm+hg5JRkVk4iwPA24TDWQGjgPIrTEzWI/AIrYCwYGIUeDYoNNIPQqW0vgyNJ8SAV0wPJpywsxISmDhWLAC9WpNu1L7hu5rGBGgDyjkFehhAvODS4xukY/sPmTIdFN/V7Q9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NLXDG116UV6WCFcGXVD88fa0nuwa1Bf9Q9aGqMySgco=;
 b=gURK0C4rtYyntiJQX8aEAXDGD02fHyr8S6YdTU/AWXfskVQgpHkZ9M2jOgbJLrtKaMFiAGUSHU1QkVve3RB7lPomL/s7RYNP6eQbSX5M6zGa45wueCVg2UifYQWHzG1NONeS3pAqE+K2qjrqfOlG0zDysWm4tPlZXUF+da9kzmOH66aqJVeLrCl+W96djOamST+rTR7qyGvO8J/GGhqkqQ6cLvbfNyjhnQKXL9de33nthIEq3rxWV+xR6Ts7qCxkIfn/+glg/egqhB0jAgrv2w7Nj90F+gaWUl9cUNrH7Tw3o4Wb8DOqy3J6U3rquyeGpcR1izyrQEn7uOBZ4IlC5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8ccaf7ad-25b4-ff6e-7999-5c7838b4e77b@suse.com>
Date: Mon, 22 Nov 2021 09:50:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/5] x86/traps: Collect PERFC_exceptions stats for IST
 vectors too
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-2-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211119182106.14868-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0037.eurprd04.prod.outlook.com
 (2603:10a6:20b:312::12) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: fd565bc2-98da-4581-90a9-08d9ad951275
X-MS-TrafficTypeDiagnostic: VI1PR04MB4351:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB435140E01C1A8369A6A6449DB39F9@VI1PR04MB4351.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:765;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	mI9vbIqtlDhHuxgG82wGZni/KIZzRyVctT7LoJJ8mp0E0qIolgDbfxUeOICNi5kGW4Hhh6nBnVJDHgwEKBBLo3jaSsR/QWFdaK15OsDlrg4eP9GaqDQJyP1y7p0tARMnq64TKUBGPqmiouh3W66cj4K1lTNmb3ioRDaTWayFPE3bjhrxaNh1EELos2qTUcov1l67w1WLfzxgmCQ6q8oKrYx+NrMqvL4YXENuqf+S5YsztHDVHsfowPipgMgLcv91gXck6ILvCc7GItHIpRcB84mfdF52dgrUm6j0mAFpEu5UVmWN9iKzblyWj9eo0e63DoHyY03M37m4U8NsHk3Apj2gFe6WwMU1h6HN3sA1ukson5hpJlJ4Qu67KQVtPoBvJpMCAj7j0wD82QSeZ/JKWTJSWcrdn2BtxhP+Yu3YivKOp3diEGgYtGpYxD10v3fesHb9irW/eBN6I+egyOSD22gydJiNakblRtF0SpVGIU9WKuMh2zi2S3bZc4fyrlnA9VpAqSoCj0p7t2uRaLEmBC81ApVhxo/6FCpWjxeV8y2e/6pSutUaCB5YQHIw6GQVWXbTN+/BtSFoIre4fGS9efGvIyW1Obolz5GRnuUOqK6vjiMbgntjgQZeUO5sY6xYqza9a3+kgfiZxzv7bhRP8YPg08RiXv4oKbqYnP3sJPINCexZKzPNLVKexKAcBfv8kJXcAD536hRmo9/EqyTBt/dkKdHNSk8c7JWL2/z/8qA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(31696002)(8936002)(2906002)(6486002)(66556008)(31686004)(66946007)(66476007)(38100700002)(53546011)(5660300002)(2616005)(4326008)(186003)(6916009)(86362001)(8676002)(316002)(508600001)(36756003)(558084003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TlZZL28zTDU1ZVhNS3NmUmRyeW95b1RHWStUNkZOTHRxUFM0cE1jUW9xdjhU?=
 =?utf-8?B?ZERneDZLNWxmTytUZlJmQmlXU0V1eDQxcE13QVNLN0xsVEVBSUh1OWZ5RDYr?=
 =?utf-8?B?NXpxZWQwc2Vnc1A0NjFCcWJXeXpOaGo4L2d5VlRNai9xeDY4cW5ZUUxJWE5O?=
 =?utf-8?B?ZVppZnhnY1BmVHhwZndmcGxoUzFxdUk5MlREWFJlY2gxdVdWVnFCUjk2d0w0?=
 =?utf-8?B?SkE3MlpKNENJTU91bzB1NE0yelRDVUNzak9GZ081REJLRVVzV0wwMDlRRDdG?=
 =?utf-8?B?Rnl3dktPWnVKbEhNcVhKekRIcnFRQmxnV1FzdklpTWt1M3QzYXRGdy90TUpw?=
 =?utf-8?B?ZG5TN0hMQ05Ya1BNK3ViYUZBcVpOVXkrbWsveHlYSmUyZVBzZHFObHkvNDZa?=
 =?utf-8?B?ZnF2OU53aTJlbHhuclNXZHJobVV3QVlDVmJ0MytQNXlkYjR0SnJTUXp2WEpt?=
 =?utf-8?B?ZzU0UWVSazZQb2pXaGlvTWlMa21scnBuc2VJdlVQalFHdit4d1J6aS96cXRL?=
 =?utf-8?B?bThFSTcvSjRRZlFNOHE2dUVNTjhzL3A1M283OXVHZExmS1E5ZnBLVkRBM3pF?=
 =?utf-8?B?N05od2pneHdhNXlLQ21hMkh5VFF0SmUxM2xmQTBRbTNHdDFTNnNwRHdCMjZK?=
 =?utf-8?B?MzYySW90SmF3T3NaU3UrK21BdWRXZnkyTGd4djVucWVqQWFUYTlkN0paZlBN?=
 =?utf-8?B?MnlKYjRxOHFNRitNYUVkNG5FVFpNNHErYkFpWjZrMWNNM2NOUUNhaThYbDRH?=
 =?utf-8?B?Ni9FajE0YkRaK3hKTnRYMHlmbGpDQWNsMWlzYkl1QVgrNTR3ZXRXNUVDU0tz?=
 =?utf-8?B?bWFPQnJ4SFlmd0VYOXFaN1VvUzMwWVNNK2U3NVJ5KzU4OFFHTmx5Qmw1V2FT?=
 =?utf-8?B?ZlpNVyt2ZldyVHFWS1Y2Y0NMbS9yeEFZTDRGZVlMN1RKWnBhT0graGN6SFZL?=
 =?utf-8?B?b1NBSG5VQ3ZCNXZIeWVJSVl5REFoM2NOdTVvNlNMSEJJQTkzOFEyaDU5NnVN?=
 =?utf-8?B?RHJhU3R4M0tHUmYwVFRnWUtaUVBGTUpCNVRSVnpsYmtySVJzdGFJUHQ1VjBU?=
 =?utf-8?B?SjhMRjRZUFp2WHpxem1PajVvdmdMM255Mk83TDEyZkdnTmFRQTR4NmlsanNG?=
 =?utf-8?B?bGRrZzZJK05iUVFXMlR4cWVqaERuN3ZvNlZtalhXdlh5aUlHREVxNFVCOEcw?=
 =?utf-8?B?ZWRtYXVCdHFuTmpjT1ZpWThwVXZZakJ5VmdKU2toSm4zd200aGRIcFdYNVBL?=
 =?utf-8?B?UEVieDdwV0hSOUN3YnVob0dOVjlHcjkwaXdPd1FTUzViSXh5THdObkVvNk1V?=
 =?utf-8?B?UFpQWUN2ek93SU1sdjhoeGNFMlFScW84QzVzaXgxM3BvTVZSMVpjRGNFZ1dH?=
 =?utf-8?B?YkQ3aCtpUitxOENTSCtvdUQ2aGtlcjUzT2cza3FkMjhvVG8xU0p5WTErRjlm?=
 =?utf-8?B?U2wrYmNQKzlUWGR1aUNtZWZ0TGVSaXk4NDBPN3F5dW51TmJkYTI0ZHB4VkNF?=
 =?utf-8?B?TlhNaU05UmF6a3htc0ZaZzRjQzV6UkRIMGVya2FKUkRvM2xpRFJ1YlBIRVU3?=
 =?utf-8?B?UEFtdVNXMjRDS2dTMDBmSVR2Lzh0aTJzOHJIckhsNy8vTUZBVGJwR0w0ZzB3?=
 =?utf-8?B?MzhKcWludm9RUHE3NDgvT2lLSzZtdnZOUTFCdkdBd2ErWmhHUm5URzlIV0Ux?=
 =?utf-8?B?Sm5PY0pMYXJnZTZGTHlCd2NiWjhtenlnam9qTm9iQ3MyU1FvTVZDNzFUSnVN?=
 =?utf-8?B?SndzZ0g1Umt0R3V0VFpvMDJBQlE2VUVmTTVuQmljYlJ3VzQ2ZHUwWnQrK09G?=
 =?utf-8?B?VFR0Y3lDenN2Rkk5UlZPRjhHSkM1ZllzUXZ6dzk0T05tcVJwQ1hFL1VRdE5U?=
 =?utf-8?B?bFVHQmk2TnY5dFRaa0Rra21lSDlCYllyT0xIL2FSQmFnb00vYlRoMFJTcDdV?=
 =?utf-8?B?U2VqeFJTeHVrWkNISDhwOXo1Smg1RlR1RUhiRU9aODdhYUxyaTVScVZiZU1o?=
 =?utf-8?B?b3Iwd0ZnQUxnSW03ZWw3QXlFZ01PVDRGN0psTnY4OHhOT1h5RHZaaG45a3ZP?=
 =?utf-8?B?anlVSDRwL2duRmptUGdUdmo5TE03Vk5kUE9HcWcwbFJUVnlPN0Z5VnNmS29I?=
 =?utf-8?B?em9YYTY5aEdGSFhjbitHbXBGV2VMcjVIb05VMDhuNzF4V3hQYzVGRHY5dStZ?=
 =?utf-8?B?NGpaa2dOK3M0VExNUG1WMUtkZjhtVDNJUnRZT0ozcWhFejhoVmJXVVlxQk9u?=
 =?utf-8?Q?Hl/qDgyKiaShy2yEITsfZTAx2mD6R68khc9MPrW8ZI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd565bc2-98da-4581-90a9-08d9ad951275
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:50:02.2691
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iVh7yxXWRAbG2zBMUpbgy/xv9+S7P3Fr4uWaz/r6xnGu0PG1VOGX5mbV3O+D7jk5x8wZLpYgmDtOST/HJzYrog==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4351

On 19.11.2021 19:21, Andrew Cooper wrote:
> This causes NMIs, #DB and #MC to be counted, rather than being reported as 0.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:51:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:51:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228665.395734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp52o-0003v5-36; Mon, 22 Nov 2021 08:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228665.395734; Mon, 22 Nov 2021 08:51:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp52o-0003uy-01; Mon, 22 Nov 2021 08:51:22 +0000
Received: by outflank-mailman (input) for mailman id 228665;
 Mon, 22 Nov 2021 08:51:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp52n-0003um-DN
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:51:21 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5caf3646-4b71-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 09:51:20 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2108.outbound.protection.outlook.com [104.47.18.108]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-16-ci4DGV1rPBuwW1o4xuhBQA-1; Mon, 22 Nov 2021 09:51:19 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3535.eurprd04.prod.outlook.com (2603:10a6:803:11::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 08:51:18 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:51:18 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM6P191CA0018.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::31) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 08:51:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5caf3646-4b71-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637571080;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zi7GBd2KgxU0iOVPiuwxSI/ci+UPVqYQyZX14nPLrcM=;
	b=OS9xVs3De/7mS67W0YzpNFkcn3djj31FOlW0cRKN0WE1EqkN1fwGMbyUAnd68EMy326I+u
	/9lRtyikK2jUHWLg09qEdivC7/ZIoqbdi6h3545pn3Ue46NtlWvVBmdRkcACDfFYT9fhfD
	t3H1kEYSMouy/jsqy5XavY7XLA5lKPc=
X-MC-Unique: ci4DGV1rPBuwW1o4xuhBQA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KnKa/lsi1kh7iUPtWtG6P2GE5NSz6R1qUUQISJeSBmJY0XD80MEsfV/XI51djPooQC7f4YlzZXg+58NvSpBwUTCS7T9lcCmH09PrLnUf5BdMT4vvOR8D1vWd+G+iR+UdnV6AK+naO99eAUMk0mi9ceabQKMA7cO15UuHW6mee5K23fsf+HRIIriR49SGBWfDRDUzveS0Z72LeihAGCxotdYkyVd9MrSQER5hLBU2ZXQ3kMtV4FLblkSedUlsAhYxiSu6TQVCyzsz4Gj1i2EPXHYb6IoUUUPMTOmWKKswZ0yJYl3M/hCmtCZsS2j7uuxFWuEtsWLEv3SGnCZqwqEIPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zi7GBd2KgxU0iOVPiuwxSI/ci+UPVqYQyZX14nPLrcM=;
 b=YyyD49LLto4dXKefQlyTe+v6q022RroyXnVW4aYo89KlqpTY/j0pYjxRq1JqDJXXlco223kfKhGjfuDDYU11p11nN7zKNF5fUqLg1YY3a8nJaz92xGgkmiP3IX+GvqDbFROuYz094ezP94euqzGmehdljPaKTotPkzZWym6pbeBz4zYkQyasjdd6h1aMJESsgszzP+9l8rs2+H88GITiVgVrc6PjkKlatYw3gWLzaUKkHvvHCjkcN1JwOJd+YJMVmZfcXk7d7PIalT1kInH+z3wtCWSIpMyI9KsA0+xJrieRG2bVgmCxe1m51NSGzIJ1q8a/j41Chg8beufPEVVMXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bb0dcba1-71d1-faf5-fe01-46ea8e5896bd@suse.com>
Date: Mon, 22 Nov 2021 09:51:16 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 2/5] x86/traps: Drop dummy_nmi_callback()
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-3-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211119182106.14868-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P191CA0018.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:8b::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c4441fe2-298d-4b2b-27cb-08d9ad953fa1
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3535:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB35355EE04267930C5F5D515DB39F9@VI1PR0402MB3535.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1EhVbKfUh/PyGcuEf8PkeXVDqQ6nTf9m3XyTe1pkie5CSwp+ROlJzbbGQdldqD3pw8iD1CROwzq2pgHwKTntFZ84VuKRMNqQV/1bCi3aKYA0xCDJNUawTV05dhGfeoVIFZr1tsEIwxNKAGiK/m+V9YpP2SiPjQk6h4T9blODSwvm5Nk/fbY/Dw/+f2CgntftcR31kAKF8sWynO+TD6yt7DutWFL5uDPw18F76In0luYUumuf4s4wpz18FyQqSYsWeoJoNsA2GJMoiyFIs0IJDUeBUDJgJqyDUJHB0J9uP+KyrldHbWZXn+d+CKKU3Ews5Z4Aktft+LR3k/mIwLh+PybpB39sX97qp46WVZodXldzvMVF0/8HJCPlCrGY6R/zRZ87rnohe39TGiqSOn3cvI2Dl0H3WfiJWyxKtu90cpKgFaqIFWw3fenqgXV8auPj0gql2oK+CbYc1CGX0Xs1MWB2Q9cM7KMc32OBIXg5aflzFWIaKujK3g2BlYDnoVgAPrLY/xuAvbDJVCpT9ZFLH7QOgKLlXvh+YZAvJ2GtfQr9+aeyGGrEDY0azX1GzjtTe7GIYlVHhIpM7Z4NZKoHCHyCy47bvzcTYPfp9KwIHu6DZYU4mclX811LBaGyk3XxE7ZHO+7meq81pbCvXsighsvGMDlMbzvBAzJ6wwL7aQrn/XT43SzyxvKEdZ+9cACuVrcpCDoW8WK9KDD5QU8xAqXCghlN7GA+IBUbW4WY+VI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(508600001)(66946007)(2616005)(66476007)(4326008)(8936002)(53546011)(86362001)(54906003)(186003)(31686004)(8676002)(31696002)(2906002)(36756003)(5660300002)(6486002)(316002)(66556008)(4744005)(6916009)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NmxMUXRxYjc1cnlUUzVVSHFDdWw2YTlhbDg5MVMyZzd2SzZOSHVWakFKaHZM?=
 =?utf-8?B?Rm1pSzM0emdXV3Nhb0N3YXQ2QUg2TTVJSXlRNndiTk5hVVJSL3BzUGt4UVY0?=
 =?utf-8?B?T3lia0h6WnRVNnlFUGNnOXdvejF2dnNvU3ROMUZsQVNuMmFxUGx6blh6c0Z4?=
 =?utf-8?B?d212UTVlZHV2L0pqNStoc2pXeGtmWC9INWswdSt0akdjQWJXMnU0ZDJqbnVY?=
 =?utf-8?B?WE4yRGpaMDlKYko2UGQzRGdNMmRQQ2FWd2JkOE5FdkFra0wxdTdsNUZvT25z?=
 =?utf-8?B?dXVkTHBNdERVZWhtdUptZXpRKzBwSnplYU1VbTBFSnIvMUZxTTNvRTdFK2Fy?=
 =?utf-8?B?cHZ4VFZnbnppQ21weXNTa1NYVmttYzdKbTRHRHRwMExJRHVhemYwdU84NVJl?=
 =?utf-8?B?K0RmRU5FQ0tpVlJSSXVrNzcwdzdDK1IxZ1M2LzBrNmdKdFR5OEwyTlB3WWFV?=
 =?utf-8?B?UUU1SHFhcDVCS0YrYiswSU9zeFBreHpsSVcwR1MrM0lVYjZ3eExVZ29SU3Ew?=
 =?utf-8?B?b28xWXB3Tkw4S3lCMUtqTGFFbGp1Nm1uaGRKWklqb0VmVTNFYjkzcVQ2SGJv?=
 =?utf-8?B?NFFJZVpFbi94bDRBeW9EVzhONllPeGVwL3JhSGMwWnNJeS93WDdVLzA5aWF4?=
 =?utf-8?B?S20wQ2RuOXR2a0xKd0JQUU9DYjJ4MUUvRmNzQkg4NjdWaWhGN3RuMUxwVlp5?=
 =?utf-8?B?QVVTK0t2YjM1RzZqalhRdEtCR0dydWkxVmwwRGVPa1NtbVMxK1Z1QkZ6UWxn?=
 =?utf-8?B?Y1hxSVRqeS9EcGVQT0tyZXB1eTN2TGVTUURGaHJGc2hmZWMzK3lHNUNrbERR?=
 =?utf-8?B?OUpnVWhYbUQyK1VrSHpkNGxZWnVKNDQveVhjcmRXK3ZUYUZXQkhFazh1TVh1?=
 =?utf-8?B?MStRMDhFYmd4OVVDMDJCQnprMU1LODIyK2Q5ZnM0SjBFanpwcWdjSzFHTTBr?=
 =?utf-8?B?d3JGdkxZLzBCVDZPcG1QaVVna09LMDVkUWVSYURHeThGMXJyYjJDOWtCbDNi?=
 =?utf-8?B?TldROTJNTVNZSzBuODc0b29CcWZzQmM3dmI5NldEaDFYREorZ0d0UEIxaVZj?=
 =?utf-8?B?Z1ZxTm54MEs2NWxLVVYyR3FkUU9qVmFXUTlpUG9WaHV2dkdKTXVXT2lsdXpB?=
 =?utf-8?B?S2lIanZlK2lEdmJhVmt1MmRLUnFLdm9GNVVnbXpBeXZqbXFTeGlrTXcxVVlp?=
 =?utf-8?B?cFMvbmNheWQvRytYcmhsNml1QmZneGVwUzc2bnowd3k2VnNLWFQ4MWFjZGVM?=
 =?utf-8?B?MzdyOENKVU4wNy9WWXpJKzQwakk5WjNjQWVJY3NXN3JZcE5vRC9XM0phbDc5?=
 =?utf-8?B?ZStEaWJWZDNyUnlLY3AyTWM3VmtzNzMvMzl3U2ZHSGMwcWdSVTRZVEMycDFU?=
 =?utf-8?B?ek1WMlBUTkpodklSenQzZ09UNzhjenhucmVrOXU0Nk5ZK2lMRktpVjEyZFdi?=
 =?utf-8?B?SFBleVBCOHZ5enhoY1oxbjZMdUV1STFtUGZCRUdrcW9RRDZZYk02VXQ2aGR1?=
 =?utf-8?B?SnEveC9jc0dySlhvamRvMXZ5eGFzMzhpVXJWczR6dzB6MVkwOGdZc1IvZXQ4?=
 =?utf-8?B?VTJQbkVmWE5wRzJoc2c2bXc4aEhaallidUJ4RDJxSUY2eldHSmZobkdlRnpn?=
 =?utf-8?B?emU4Umh2R2dvUnRHQmh3ZUlON0xSL3FoMHZLR2FWeEdIa1FnOFU2ZFE0blN3?=
 =?utf-8?B?RmRocmgrd09uWmxoZFpML3JpL21RNXNyV2JFR1J2ajI1SitXQXBUWlhRbGQy?=
 =?utf-8?B?NW9vWWwrZ2VGV1l5aFNWWXl0Z0kyaE55alltclBUSk1jcFN4a29ZVWhvbjMx?=
 =?utf-8?B?TTZ6bXlnbEZiaEQ4NTRVQkxkajRrdWFWajNaTEFCRTd1a040dHhaclkvdWJG?=
 =?utf-8?B?NURDeGlVKzJScjZvSWR3ZWw0cDFjMFRnQ1dKMCtvcXBJclhqazBpZExkaEhP?=
 =?utf-8?B?d1JNZWpqTHhVYUxYSlFxLzUvQ2ZCMGgyUTlEUFZSRXllWHZpUmFRQ1VPNzh6?=
 =?utf-8?B?OEpwYmtyeng3TnFEWG5kN3hMcDg5S0w2TnM1UlQzdVpCbzQydzAwa1FIOWl3?=
 =?utf-8?B?dGkyQlFtcDgwRGM2TzhBYmgvVFNHNFlsdjZUK29vaTR4L1Y1ZVVrL2lTankw?=
 =?utf-8?B?L1NHVFJUM1dpN0dGTlZSUVlTQlNmYU9wZzQyS0c3R2xZZDk3aFRrWjBCdHE5?=
 =?utf-8?B?cE9jSStQZ0NsMUpzMkpyY0FIcU9RSEFLRFFSR0ZVU09jc05RZ2NGV2NnZ0pr?=
 =?utf-8?Q?MDkjYWxpgAdbaqY3ge3KBuw6Czt9RVMlTgB7LQ2ZAY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c4441fe2-298d-4b2b-27cb-08d9ad953fa1
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:51:18.0373
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: o8fphftz76mcBWlF7DYUXTzPjhR8wZsklMKEp1sENPx8FvUpA79nHKe5ogaGFvDWw2T//5o8HFJcnsd4nX2sNA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3535

On 19.11.2021 19:21, Andrew Cooper wrote:
> The unconditional nmi_callback() call in do_nmi() calls dummy_nmi_callback()
> in all cases other than for a few specific and rare tasks (alternative
> patching, microcode loading, etc).
> 
> Indirect calls are expensive under retpoline, so rearrange the logic to use
> NULL as the default, and skip the call entirely in the common case.
> 
> While rearranging the code, fold the exit paths.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 08:57:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 08:57:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228673.395745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp58l-0004gq-Uo; Mon, 22 Nov 2021 08:57:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228673.395745; Mon, 22 Nov 2021 08:57:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp58l-0004gj-Rp; Mon, 22 Nov 2021 08:57:31 +0000
Received: by outflank-mailman (input) for mailman id 228673;
 Mon, 22 Nov 2021 08:57:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp58k-0004gd-Tk
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 08:57:30 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38f8b401-4b72-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 09:57:29 +0100 (CET)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2055.outbound.protection.outlook.com [104.47.5.55]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-37-E74l1FcFPmqP0nwQ4S1RqA-1; Mon, 22 Nov 2021 09:57:28 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4847.eurprd04.prod.outlook.com (2603:10a6:803:54::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 08:57:26 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 08:57:25 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AS8PR04CA0172.eurprd04.prod.outlook.com (2603:10a6:20b:331::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Mon, 22 Nov 2021 08:57:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38f8b401-4b72-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637571449;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=gbs47Slrz91ow+m3n6nh5ZKNT8/8EVP0eOUPNRmnsP0=;
	b=apm4232SZEkje22bqVVQEJ8AU1r1hie+gYFlTGAM5p0Ct2OsmZFxXQL+LTKK1zieaFkV60
	nQ/i1UmODmTjyFCoXS2PXJIbRkKEPt1CTKkjZYHly+ILg4LTN+423XmarjOXfWWcV1V6GS
	CIBCN+T+3jXuiOL44H+YSCcQTKK6HWk=
X-MC-Unique: E74l1FcFPmqP0nwQ4S1RqA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GSFfjdKasNSkkxCxyD4ywsp7Xqq500I6Ck8F399jYnKTtYOHCcZ0SpwCfkeliG8K67ZMdCxRcYe0irFDKxflG7oYtJhu5n5+pOtVMo2aS5UE6fkGNzXqkkKPMqk8rlm682PerwQJJsceAW2AT3fC7jAj0ZeEKiBaI0yA8gsF9rTAXh9gftjP3kswRpKnQ3/hZpYfVmuCR3oc1gG/DQNkygxyNvtxNN+EJ+FiDYIgZ+vADG4Opj8eqFoQn47aMSHe8hRXGumbxzf4s/QT59mqwFuPCD0Re7N37zNvZw0m3gf8/d6VwBpJ+/4+fZtxe4FDGxctZT3ZJmAAyZczgIjsgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gbs47Slrz91ow+m3n6nh5ZKNT8/8EVP0eOUPNRmnsP0=;
 b=mECpqijHeaYkA5Uoz2Mjzt27oOwprG5K+G32T2PdnTNN0UO09HwPcGg/PponbTRMGQKWSO0PVyq6TStUgaeUcPgmo3SiDUNd4GbI7nNP5jYFGFD7Cyl7CecqINr4RIMH/SyPC89xLh7lis+xuwVqJEdWGOV60B/ichWYjNrsI7VmU310WEWGPkmqLAJY1ZOW0Nc0kmJ7lDAeFfNLq7qePKkLqJ65tUZJ3AXHdbQDfUb2Ab+fFdi9KPaUOVEDibirK49D2MyFXm+82APcHAcD2hLYdhP3lgTYYMuDNm8pU/exx7SMZZyNnomRk0YDXLBrMmeIyUSww97JSR/5iH657g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4cff0241-ee75-59f5-49ff-cd29964efcbe@suse.com>
Date: Mon, 22 Nov 2021 09:57:24 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 3/5] x86/crash: Drop manual hooking of exception_table[]
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-4-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211119182106.14868-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0172.eurprd04.prod.outlook.com
 (2603:10a6:20b:331::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a6348582-e1e2-4f0d-ef90-08d9ad961ae9
X-MS-TrafficTypeDiagnostic: VI1PR04MB4847:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB48473348BFC7969D9DB6DD19B39F9@VI1PR04MB4847.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3826;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/6cSZzBzmNgFa6vzq9TfAPsMbngDd6C7lYrB0dNtOF699b0vYl4SticTHjthhA8d8CuRc5N4oQOW8gSTMv+uhOpxpPyvoY1LYUlQ3annNS7d5gHedQQh2/avUAEuETHiCm0lnL4vA2ZRnw7UOm4XBQQ2X/iCNJPxxztKofGbP1+JDCiI1GsSu2n5ijTqan/ht5vv63LI0HNzgHgh2HqTFfFDqmKnd+PPZ04jQe6fFOePmXHppDlkqArh4lePHExda+zh+UMzuG+RWtagPvFkThKG39cwV2M+V0IBoXu42kFmIC/mvadPzh23fdcjrE7B1jgUaSmOnjWuwtLgrtY+HXK5vMldQZV+Lb6NqtFYJn1xlt/GgNTkdGHZrX0UN/4XoOpvZFneTbWKKyJdEixtnNT1wCHH2bky21IM+FYHJGwVa2LVVhWo9wUk7BLPNqHtjS4bYkQ0Sy+2m+QWWeJimSCyq9FfEWjqePb9hsBYGtRe6Kf2FmdKou4FZA2EL1zBdRF2e8FYRGMD+zfnu+O27anXBg4h80cutROng84MxSYEsx7zT7dwNg9EjAw6j9h/AZwFNrl3ypTOIX+1p+pfgSH5fSdy4jkiTszsTt58enU5bMl3BQswKV8tDLeTictAMmgUVEPCaVdrb4SGG9FBqRl1sEUEj4Qf+HAEGREQbug3cidcZU9AdL+HSEED/ceXceT7/yZdSOJD3qP502+HkzOqE6t780yt7hPmn0ZF8Jk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(2616005)(86362001)(6916009)(508600001)(6486002)(2906002)(316002)(31686004)(5660300002)(53546011)(8936002)(36756003)(8676002)(186003)(4326008)(66556008)(66476007)(31696002)(66946007)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U0FCNWx6TDF6RnJOSXpERzVaTmNHRWdiZG9sc1ludG1rQkovQkZ0Q0lzYVEr?=
 =?utf-8?B?U1hTUlo4Ym4yazBEM1dhL3puUGxSNFdzcjdpck1xUHRRV1VBSmx4MldUV3Vq?=
 =?utf-8?B?d0RGUUNQajNWWVhaTEpiWEZOOTBqQkdobzh2UTlUUE1RUU9pMlZXaExkalFS?=
 =?utf-8?B?MVFNK3czUllIQkd6Slk3RzNyZjJSVmFzVThEM1NheTdmLzZBNUlLY1RnN3ow?=
 =?utf-8?B?aXEwR2pJblRMZ3pQdHV4bVc5dlA0QnpkdHNjSkREUTVYb3k4SjIwKzhJb3Ux?=
 =?utf-8?B?a1JrUEF3dlZmNklHNmkycWxRUVBRSURjUHVzbzI4NGYwTTl0MHVRcGs4Zngz?=
 =?utf-8?B?T3lkckkycXhSZm1YQjZHNS9la1ovRi9WN2NrYTJFdDJZV2t1dHdiWms5Y3Vq?=
 =?utf-8?B?OW5hbGhEU3I5V2hJSHNiTGVwa0NxNE9HT2NDRzJtcHFFY0hrRHhzY0NiNXgw?=
 =?utf-8?B?c0oveXlSN1FGNTNhZEhsT1hlcHVGZzJQMDdpSCt0dzBpNXRWU3lEMjhHSWlV?=
 =?utf-8?B?Zmo4VFQwV0hSQVFzV2pmQzY2ZEJuaXpRZ29xNm9zNk9xRDhNN08vRXV5WTc1?=
 =?utf-8?B?WHdCRnBTZkJqVlRGZkhmbXczMEtzdi9ubGgwdGtja2RNcXg5MlNkdnpRc3I2?=
 =?utf-8?B?MzFUbjFFSCtnUUhIVkJhTFdJVVg0Y3VCNTlTVG1INWw4dUV2NWFVdHRab0Fh?=
 =?utf-8?B?Z1BtN2lYaWhQMGpSUU42ZGFMMTI3K2ErWnVzMzhndjlGbHA4cHBTa3dLb1RJ?=
 =?utf-8?B?QmZXUEozMnNhVkxNVHNadjIvOWRnWG5TUTd2TXZ6aFV1UlBSNmZGaWYwV01j?=
 =?utf-8?B?ZlBHMlA0OUlZeWVFYk84SjhmWnhkbzJib0tkWmUybzB6SU12djMwQ1ZwaW82?=
 =?utf-8?B?RlFOZ3ZVMHkyRFh1V01lNWVCSHJ1ZHFDN0dzY0kxditCeC93c1RRU2hzUkhU?=
 =?utf-8?B?M0VOZWxtNHRTOVFodHlBL0VNUlJpcDFkZEY4eDhCcG80MCtORE55bTI3c3Zs?=
 =?utf-8?B?VjVyRjdkRjIyWk4rMWxzbi9rU2dNbDJnNzBJdnJtVmpIcHJZYmFNUVZ5VTJr?=
 =?utf-8?B?cHF3QTJRN2lSZUVYSWQwMjNOSXNiVkp0eG5JMG14dUhRMm9SOFY3WG9YbTFx?=
 =?utf-8?B?bVZHejVYMlJ3SmMyMitYSXJhZHc3NksyWDN5U1BlNEljV1d6cTlYUWlTeTht?=
 =?utf-8?B?Qkw3Vk4wd1Z1aFlGUGV3SEczNkQ0N2JpY01HR0c2blg3aVZGQjlOREZLYzZ3?=
 =?utf-8?B?SjliSndGZ3dYTDgraEh0bERuODk0dDNnUmJnTkpFSTlVTGt2RFNCUVYxRVpE?=
 =?utf-8?B?cFRlSkF5RTBJL2tCSjd3WGVhR2VRR0hyMTU4eFFVVlhXY1lHTjNsZHdkWHJm?=
 =?utf-8?B?RUpUMDU2cXVYdkpGVE1wdGVKNUZwakpzaEo1VHNXUXdZY2JZUTlRdmgzTE5I?=
 =?utf-8?B?SEg4ZjVNUkV5Z3ZFSEdGTWRYZkovc1lIK2d0VkNXcTJMdnhERGdTNGEwa1V4?=
 =?utf-8?B?ZTZjNXZURXowTlNBUWEyTFByTmgzdGRLL2dBZ05lb0xPZmxtcjVUWHdheTZ1?=
 =?utf-8?B?TUh4TVZXVVZ0Zkg5ck5tRWdvRDBWQ0ZKKzFFeWRtUTRRTFQ5ZE1HamM3RFJH?=
 =?utf-8?B?eWlLaGR0cGdjUGxTZ0FyMEdpQ2plR1YyKzRxVUt3Rk5Lc2FzeGVXendRL3ho?=
 =?utf-8?B?TEtUQlJCekQzMVVubmFkU0FqSDFXenl4Ly9LYWhzWVBDT2JINmlpK3kwb2tB?=
 =?utf-8?B?MW5Xb2NZbnZuVVF3QnhZaXdNdDlqRkV4b2ptMXhrdDBFUTdmR0hsL3VIMzkz?=
 =?utf-8?B?dGM0eDd4UDFPNUVKT2lWcjVtVVdab3loVkxyK1d6YTVPMEQxRkdnN1dqMmll?=
 =?utf-8?B?YktZaHZKcU5zTFBrWUI5eFA3dFFpeW54bm9td2U3cG1RL1d5WjhvanRzUVV5?=
 =?utf-8?B?Y2xmcUpTU0dWWWFlMVZBa2VkSkpQZGkxMUhBYmdFYmVQazE3VExhUXZ3WUk5?=
 =?utf-8?B?YUd5Um95ajdObllYMXQ1OGVSOTVOblhURjBIcXR5Nzhuek1mdTNReEREV1Ba?=
 =?utf-8?B?T3c2bUNGRThlejNPb3o4dlZzVjlmMGJleDZwNTVMbWMzc1pnY1Y4US92V2lz?=
 =?utf-8?B?SUl0b1pSN1Q2cFphVjZTVzB1ZjgxUnNkTEFLK3Y1SXZ2dXpXYXVVa295T2Rz?=
 =?utf-8?B?U2kvMjloNEJZenUvWHNQd05McnZaMFMzL0NXRktLQXY2cjVwR2IzNi92dndI?=
 =?utf-8?Q?+QKHscpnBK4QlXnNr6YfU9LHt0H9Fot1ByNpMUs7gU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a6348582-e1e2-4f0d-ef90-08d9ad961ae9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 08:57:25.9083
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: K5HMVVKTiWvtf2X+KVIktfeA/tRfyr6HkQYC1SyA6pTCPn32y0H3UPiKcI0wlWS5yPLthc18xHw38fdR9kHRjw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4847

On 19.11.2021 19:21, Andrew Cooper wrote:
> NMI hooking in the crash path has undergone several revisions since its
> introduction.  What we have now is not sufficiently different from the regular
> nmi_callback() mechanism to warrant special casing.
> 
> Use set_nmi_callback() directly, and do away with patching a read-only data
> structure via a read-write alias.  This also means that the
> vmx_vmexit_handler() can and should call do_nmi() directly, rather than
> indirecting through the exception table to pick up the crash path hook.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one remark / concern:

> --- a/xen/arch/x86/crash.c
> +++ b/xen/arch/x86/crash.c
> @@ -36,10 +36,8 @@ static unsigned int crashing_cpu;
>  static DEFINE_PER_CPU_READ_MOSTLY(bool, crash_save_done);
>  
>  /* This becomes the NMI handler for non-crashing CPUs, when Xen is crashing. */
> -static void noreturn do_nmi_crash(const struct cpu_user_regs *regs)
> +static int noreturn do_nmi_crash(const struct cpu_user_regs *regs, int cpu)
>  {
> -    unsigned int cpu = smp_processor_id();
> -
>      stac();
>  
>      /* nmi_shootdown_cpus() should ensure that this assertion is correct. */

Looks like this is the first instance of a noreturn function returning non-void.
Are you sufficiently certain that (older) compilers won't complain about missing
return statements (with a value)?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 09:05:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 09:05:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228678.395756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5Fp-00066e-N9; Mon, 22 Nov 2021 09:04:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228678.395756; Mon, 22 Nov 2021 09:04:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5Fp-00066X-Ju; Mon, 22 Nov 2021 09:04:49 +0000
Received: by outflank-mailman (input) for mailman id 228678;
 Mon, 22 Nov 2021 09:04:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp5Fo-00066R-99
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 09:04:48 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d55f63c-4b73-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 10:04:46 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2058.outbound.protection.outlook.com [104.47.6.58]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-11-edMmerRZMBKpA__0iIB0vg-1; Mon, 22 Nov 2021 10:04:45 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3389.eurprd04.prod.outlook.com (2603:10a6:803:b::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 09:04:43 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 09:04:43 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM0PR04CA0003.eurprd04.prod.outlook.com (2603:10a6:208:122::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Mon, 22 Nov 2021 09:04:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d55f63c-4b73-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637571886;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=6mHnqFy04LrSUeub1I/f3giwVEwvA7mREPzi1UTTGa4=;
	b=B3RdXRAMg3dGebYQaKuNE7knivl4wpBcBPYNjYeJng/7qoTRc38rrQtEHRZK8D9oKg1bgv
	HGYsuW8Ie5vu22nKi92a22mBvWyHsgBj0RS5jGLvC4cCZ6Ds1Qwrd3fYHkiKxfs8oNycKD
	GFaOyqhdc1xqmKZuXuy92K/q8KnOO+A=
X-MC-Unique: edMmerRZMBKpA__0iIB0vg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eGk+Cn8t+yw+e/4d45+tEUgsI0/sdDgX9l2iqcvlMW3fKCGqUP7EJU6vSuKL4n9nPy1yKKfJJLPgiFI/xifh+t+O7UsC7RKBWpNK/S3q4gLC4PAgvm4pZassW6W5EljyIhsmbAyHap/E1CfptmKjPkonPmqjV7xSoSr9vReDG6/RC3ufpUKPxa+MVw9LwmHa0xsXsTyezlR2GSuigJlT+/7Pfehvh1OGBq52rYR0PQHf+Y02OIOSA5UnlvCc/LVnaa6QCb2VGSUsE8kD4/UpUAIsCw4RhMsGLo2KYs9Pris1WMr1v0oE/33f8ZiZRyU/KHCHxShsj/k7RAVGv6V+mQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6mHnqFy04LrSUeub1I/f3giwVEwvA7mREPzi1UTTGa4=;
 b=AmfyhmJcbIizTzJp4XgEGyfHh0hPljkLjwPZn+8fa9TKLGzvT4+gDPPgDcXsfNJ9JmiHMIf6gwSsnBvKu0uGbz+TpPqV56gGYp3XRVmrLqJ7vcsKxlqV3Wz/tRNpD03pY43BIWWuxooZxcd3biT0ZTvLHcTsyRVXLkRSlOUKZto/B0quIF/3J19qQBzlYubnhKN7cDHhYovAnfaGughCpwSWVZL2DD7MS37UFqQ1YurOk1b/oKMLJH+dKacbXXriJKdSldZG8RRxNyseINcE3f6DL+52DBk1r7Fexa/PT+thYd1qvY8sXNjTE9DLEEUFkQzqPT0U664Goh6LC2it7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8ac7cf1a-f235-a065-182f-3303aa9be5b7@suse.com>
Date: Mon, 22 Nov 2021 10:04:42 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 4/5] x86/traps: Drop exception_table[] and use if/else
 dispatching
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-5-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211119182106.14868-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM0PR04CA0003.eurprd04.prod.outlook.com
 (2603:10a6:208:122::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c66e14c2-9975-4c66-8d43-08d9ad971faf
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3389:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB338990DBE369DD432C49DECAB39F9@VI1PR0402MB3389.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	+lUA3siri0CNBleGZ8tdknu+x3rrHl2EoClHPnZkoNpwo7Sg2G3L2gjwzp0aPWo02Y8JSk7JUH1zixrUE54+M2zdPqvnxyV9/WEAVhWG63nElVyxoPvEyrT0si+wm4oulxxFiFY+JflrRctnhqe46/36Id47eoJkGaygkuUkKISWxHf2oJKG3vwbooBM7zybTzCpVoFq2qGk2Jm72ZkEAeEj4Pwl7Ks566cPZNN+8oKX3uEQGqb64mk06h9WBM187Imm82Z8aAWR5CM7tWriAcjTRPEJkiasDzQCafpgq47S+nOZzEuyusTWjPU4nCckG7Aqux3M4vxMi+tOvgepvDBkRLB+mSUBn91cqJr2AqVE3LruCZRCknj9FeymOfmyoOuqCZWFm/aeLQFBN8Zn8xDPkX/V4z34IfNnUYkP2kR1X+4wR+OgHibxueAHQvb2kN8TGcxYwa/dz2w4npKD9YcajAjQeMKkTJjlVflRcGALJVnClkjFxCXctisBSOfhX+VWAhUqMQnneqoQ0lJ1tq8gRg0RPtOH36uLmRO2X8+ngg12ZNVf4d5TPeKVSH4EHK0mstdyhdnkZME8a1C3rtXfpVWh3hDwM2pEbmxc5TtHw2HBgUzPd1ZbP5sLLEZcH1M+jJKB3+9XqR873YY30tOjPh21m6aDK/NtJ2BRgEaqi3zeUQSjfxvcDWumiWZK0lB6aiq0cg7asUZOnyFKlEZiCemP/YqyXjefOrUeLc4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(86362001)(31696002)(2616005)(31686004)(83380400001)(66946007)(66556008)(8676002)(6916009)(66476007)(38100700002)(5660300002)(508600001)(8936002)(53546011)(36756003)(6486002)(2906002)(316002)(4326008)(54906003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MUZ6WG9RQkZEYzhWbVJMN1FTckt2b3pld1l4enZUczVNTEVNSFQ4clgxUENP?=
 =?utf-8?B?YkNQTXRWWit4SVJFSFNTS281OGFtQWM4b3Fvbk1jRnVYdmRhellnZllOalh3?=
 =?utf-8?B?UVg4WDJOa3lIU2I5LzlpZE9tb2RxNUZEWTBWcHl5NzZURVNTcXN0ZlEzV1dx?=
 =?utf-8?B?SGhyYytZNDBXWmkrK0VBQVY2NG5xQmF6NjhVQ3p5WkJBSkZWbFQxcEFVN0hI?=
 =?utf-8?B?TnIrWHc3bEJnR2ZNWHRaNjNVOTJ5OXBwU2RoYldRbVpYbUh0MWFjNVlrbXY0?=
 =?utf-8?B?VVZUbE1JZVk4ZHlBdEd0bnZabVZDMzJaajhUTFVpYUVqb1M1THVHZUhlRU8r?=
 =?utf-8?B?SGR1L09VWHEwMEZpM2hrbWg3M2NIdmRTK1pqcTVDSjJYOGRkVk5ISERZd0Rs?=
 =?utf-8?B?Vm9LZmV0UnNqNzArckF0a00yRFlPcXBqTEVKbElobkFOa0RmUjFhWEpsRWNa?=
 =?utf-8?B?dUJ6V3l6VGRWcE5Jb2VUSUxMOUpYam9LS2F4ZkN5MkswUkdqbTRtWWVIbVZF?=
 =?utf-8?B?aWVZMUw4ZHM0YjlVcEdPbWdXZXczdC83OWNVQWMweDJvUGpuRmlSZGlXZFN2?=
 =?utf-8?B?UWdVU2oxWmEyRmNMTUtIYk9HZmt4ai9NeE95VGw2bzgzK0ZtM3MrNjRnbWRv?=
 =?utf-8?B?bFVQbmNod2NFZ0l2ZndIZHowS0xKazRQYUpOTW1vN1VQT0FvdHBpNkdGUGNI?=
 =?utf-8?B?Yjh2WUZqUS9xRHJCdWRhTnBHajMvbnhITnJWaXd1THp0SEpxSVBOQVdkN0Yw?=
 =?utf-8?B?NFJHOFBDbW5hNUNKQnJvU3BLOVMwT0FUTGZLb1pZTjJYZnhPeVhxWHhZYTJX?=
 =?utf-8?B?eXpOQU1MNWIzQXJrU09qazJwSWp4U0hmemdMbThqdGtSQlhXbkVkSG9pTmdM?=
 =?utf-8?B?WllXbU9STGo3d3lyWlhUZ0tKc0V4cXhNS014bXY5RUg3aEk0NWtwQ0trVDJQ?=
 =?utf-8?B?eXdJY243bWpQelAxN3lKVGhZMjBqR0dKMjVGaVJUSDBlU1laczZNOW8ySkNo?=
 =?utf-8?B?Y0kxSnh4TTNVYnRITG44Tm1CQUd3NDF2QjZ3ZGFIRHFoUWtwdTlWbHl3VkJo?=
 =?utf-8?B?dVZLUEdnRkFkRW0xaUgvc2JjVXZtMTNEQ2dKTnRFaDFVQ0xhQi9LcXMyYXM2?=
 =?utf-8?B?a3FGSEVrMW5QMTZBVXZreGJEdjN1NTRkaVNBMm93MDdoTCs0UlI2ZFIydm9C?=
 =?utf-8?B?L1FRTld1VE55L01ieTNTdW1yeXd0RW9Ia0xOSjdVdmJFS3BUQkJqVUlzQm9w?=
 =?utf-8?B?SmszaHFhclZRQk40TjUraDlxQnR0TlpXREYrakxNclBIbkZDWjBTWmt6RkJR?=
 =?utf-8?B?TDh6ZTZqTWV5cWZwZFFsQlhnMjQ1Yzk4WDhod2k3OUhSTHdZbUR5WHZGc0RC?=
 =?utf-8?B?alN2cGVOOGNqaFRCV2dpNHQvWEJwdXZlVkxkSHJMYWdRN2xwU0hEQkFzRlc0?=
 =?utf-8?B?YVlFRkJseHFodFZ3NzRhbm92bHN4cUcrNkIvODBTbWN5MjRmR0lKMVM3bng5?=
 =?utf-8?B?dldhaDRWelljS1JjV3lmRjdTay9iZnJta0NlcnZ2bUl0SVorRXBnTnVtbW8y?=
 =?utf-8?B?TUZ1L0hidW5tb0JybUhPc1A3UGE0TWtQdmlTNG5ZS2NPMlk3VGF2QlZUdzJR?=
 =?utf-8?B?WlRNQUdzSlJydjZVSWhwdlYvQ0E1Q0hjTUJUWU5XRjRmL2tFZzZWQTVYOWt4?=
 =?utf-8?B?WDQxYWlMNkVOcitIdVRzNDNYZUd3Ui9nOFJpcm5lYkFGVVEvTWMyWUJaWXRw?=
 =?utf-8?B?ZE5UZlBQZ2I4bWgwK3lRbndwTVB2S1JqWUtFSnJCMWFQbEtpUjI2SUI4RjlL?=
 =?utf-8?B?KytFVVNBeGtoOXRxQlNCbUc5dFlsNG1ENy9jL3VnSUFBOG9qckFwOWpRNkVF?=
 =?utf-8?B?NWJFN3lZY3pDS0VodUprUW1hOVM5R1ZTdnVYMkxISGtyK2hGQm5UeHNoeWVW?=
 =?utf-8?B?RFlJL0FhWjhVQUhkTy9SQ0FnRTRDTlUyY2x6Z0RGN3NFTm5LY0VwdnNERHlm?=
 =?utf-8?B?dlVSSjZHV244cEdFMGFWMnl6L3FLSFdGaU5hdm5ReGtBM1VjRFpRbmdGb09Q?=
 =?utf-8?B?ZndRTWZwVWdOQnI5T0JrNUlQSkMvTTh3S1pPMTNJOUUvUytJNGFQOUpaN0Fs?=
 =?utf-8?B?WDkxVDJ6WTZ5TG1DQ3FGWlNuQStJSC8vUGcwQmVtM05yZzM4YXlGLzhQcGVs?=
 =?utf-8?B?V2VQR3gzdFI0SC9ZcDdvRDFWUTduUHJIQXl4d0g5b2kwRHgzYmJGakhNZXN2?=
 =?utf-8?Q?jDR1IbhrIiTeO7O/ZvU8X46ed5wItLw9BwrA+Ce4+M=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c66e14c2-9975-4c66-8d43-08d9ad971faf
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 09:04:43.4410
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: o14wb7UIoSaO9Y31vW6lBGOd1XyDTsdpnFUu6liA+zxNlWnQXkds5dIRSfhydfeC5oplrGljboGdvnaxSB1zPg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3389

On 19.11.2021 19:21, Andrew Cooper wrote:
> --- a/xen/arch/x86/x86_64/entry.S
> +++ b/xen/arch/x86/x86_64/entry.S
> @@ -773,14 +773,48 @@ handle_exception_saved:
>          sti
>  1:      movq  %rsp,%rdi
>          movzbl UREGS_entry_vector(%rsp),%eax
> -        leaq  exception_table(%rip),%rdx
>  #ifdef CONFIG_PERF_COUNTERS
>          lea   per_cpu__perfcounters(%rip), %rcx
>          add   STACK_CPUINFO_FIELD(per_cpu_offset)(%r14), %rcx
>          incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)
>  #endif
> -        mov   (%rdx, %rax, 8), %rdx
> -        INDIRECT_CALL %rdx
> +
> +        /*
> +         * Dispatch to appropriate C handlers.
> +         *
> +         * The logic is implemented as an if/else chain.  DISPATCH() calls
> +         * need be in frequency order for best performance.
> +         */
> +#define DISPATCH(vec, handler)         \
> +        cmp   $vec, %al;               \
> +        jne   .L_ ## vec ## _done;     \
> +        call  handler;                 \
> +        jmp   .L_exn_dispatch_done;    \
> +.L_ ## vec ## _done:
> +
> +        DISPATCH(X86_EXC_PF, do_page_fault)
> +        DISPATCH(X86_EXC_GP, do_general_protection)
> +        DISPATCH(X86_EXC_UD, do_invalid_op)
> +        DISPATCH(X86_EXC_NM, do_device_not_available)
> +        DISPATCH(X86_EXC_BP, do_int3)
> +
> +        /* Logically "if ( (1 << vec) & MASK ) { do_trap(); }" */
> +        mov   $(1 << X86_EXC_DE) | (1 << X86_EXC_OF) | (1 << X86_EXC_BR) |\
> +               (1 << X86_EXC_NP) | (1 << X86_EXC_SS) | (1 << X86_EXC_MF) |\
> +               (1 << X86_EXC_AC) | (1 << X86_EXC_XM), %edx
> +        bt    %eax, %edx
> +        jnc   .L_do_trap_done
> +        call  do_trap
> +        jmp   .L_exn_dispatch_done
> +.L_do_trap_done:
> +
> +        DISPATCH(X86_EXC_CP, do_entry_CP)
> +#undef DISPATCH

The basis for the choice of ordering imo wants spelling out here. For example,
despite the data provided in the description I'm not really convinced #BP
wants handling ahead of everything going to do_trap().

> @@ -1012,9 +1046,28 @@ handle_ist_exception:
>          incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)
>  #endif
>  
> -        leaq  exception_table(%rip),%rdx
> -        mov   (%rdx, %rax, 8), %rdx
> -        INDIRECT_CALL %rdx
> +        /*
> +         * Dispatch to appropriate C handlers.
> +         *
> +         * The logic is implemented as an if/else chain.  DISPATCH() calls
> +         * need be in frequency order for best performance.
> +         */
> +#define DISPATCH(vec, handler)         \
> +        cmp   $vec, %al;               \
> +        jne   .L_ ## vec ## _done;     \
> +        call  handler;                 \
> +        jmp   .L_ist_dispatch_done;    \
> +.L_ ## vec ## _done:
> +
> +        DISPATCH(X86_EXC_NMI, do_nmi)
> +        DISPATCH(X86_EXC_DB,  do_debug)
> +        DISPATCH(X86_EXC_MC,  do_machine_check)
> +#undef DISPATCH
> +
> +        call  do_unhandled_trap
> +        BUG   /* do_unhandled_trap() shouldn't return. */

While I agree with putting BUG here, I don't see the need for the CALL.
Unlike in handle_exception there's no vector left unhandled by the
DISPATCH() invocations. The CALL being there give the (wrong) impression
there would / might be.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 09:08:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 09:08:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228683.395767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5JL-0006ia-8z; Mon, 22 Nov 2021 09:08:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228683.395767; Mon, 22 Nov 2021 09:08:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5JL-0006iT-4A; Mon, 22 Nov 2021 09:08:27 +0000
Received: by outflank-mailman (input) for mailman id 228683;
 Mon, 22 Nov 2021 09:08:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp5JK-0006iN-AR
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 09:08:26 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bfa629f6-4b73-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 10:08:25 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2055.outbound.protection.outlook.com [104.47.10.55]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-27-YLka_QGNMBimcLC7R-NX5w-1; Mon, 22 Nov 2021 10:08:23 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7038.eurprd04.prod.outlook.com (2603:10a6:800:12d::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 09:08:22 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 09:08:22 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 FR2P281CA0005.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::15) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.10 via Frontend Transport; Mon, 22 Nov 2021 09:08:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfa629f6-4b73-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637572104;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=taq/4FP63TvSgH0rGUpj6q6EkDRJb4mcJNZVC5nj74I=;
	b=ZOaZajDI7aifRRk92qxZNw//zQ+4saN0LpbfWdHdNge6AqNlwD50X4BNfWnYwETGo5BZgz
	CVWeiNDGAoYI4ydq/FuwfZAWD8PsZQ88sWSvaG1Y1vkLfmTjPCQTkSgf0pWE5mdvw4P/PM
	mKLDZUf2JRBmrx+DOC92b1Yb2+m3Abw=
X-MC-Unique: YLka_QGNMBimcLC7R-NX5w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WK75p3sLiVB5ysrEn2PCpph9AQz3sxQx1DfcI4Defrg1Si6HGNnTLjDjl8+slB+dCP3HkJsm0ycZJvGOUKmxZfVXsgWWMLQxDttD1qKFqiXDJVWqEGq8Pu8aMrWCJMa7ImUA+eAnoYz9kfdWva/Zru9WWER5DROLgvdULkIhGxiSbpAWOQuoKhWX7p6Ct+UlZbbBc60z98EH2JRZeSz7b1+bNJNWiX2tC6R8sGWJ9klhxh/FSeem/Jr1Q2p3HHx5FF3Zj3ENE2Qg9nANd9UZ/30cfMyaRczU4rHnLgpQzIiq/FyxpgZK6wGkI9MtBC0dLO//ZAkPYQwj3Mp7fMrR7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=taq/4FP63TvSgH0rGUpj6q6EkDRJb4mcJNZVC5nj74I=;
 b=TNvulYEEJVTjd3O/A7ezuHcreml5YXR3kn3Ul1hyG13EiWxetT88UQHOxloVdGHwEz2QHRDBZqUX15t49SFDyDGw2EkmQnWRLvaF031Ts/ZJFWSVs+wAQ+fkBnSdPoWnmfo2R0sAJ+IGjcdK+uyO8jofI0uuy4w/pJZnd5sBcyTCIOS+XeLKuH5VLLOfQ8/xwP0UPhHaf8khr5lbcWkNTXZUOAsGO7PMLa39UapCcyP0aEMvxEfQrGFeyPX8Rue8EH3jQWYEu5EUU0RkN1XsTK40nbBIX3XWCx0NnVyWrhedSYqsb15tHIJWJmN8b/cG2FdiRJ+I28lW3xWifGlzPg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fe2af9ad-36a7-40c9-8591-4b83831a3e87@suse.com>
Date: Mon, 22 Nov 2021 10:08:20 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 5/5] x86/traps: Clean up diagnostics
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-6-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211119182106.14868-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0005.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 26ae6f73-6da8-4f39-0a5f-08d9ad97a1f9
X-MS-TrafficTypeDiagnostic: VI1PR04MB7038:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7038C4E3CE6161731D0A7634B39F9@VI1PR04MB7038.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	gxfTkmD9YDnFBi3cubbjc7G7YH26f08qQfQiqHPRN/OvHhUDhPzGPB7vWlE0To3nNu0/rDR0iAHntEKA/EGFPMTkr6LaO/OyEEEddVD9toM1tnWDElrzV/btxrWLbl38JnrM8v/aQlJh4/GE7C+7keYfg3gpDhb8yLk6+XWWx0eGWo2q68ZcilqrFDC2EzEaACuSLTW+MgyeqdM26rAV0a6dQiWmtaRFJ88avwkF2xES6R6kXiAqy2G2QFVmiJEJ2R1kvi6nmyBbyxdnXn0GpRJ6+bgCSz307Ik7LDTJS7JBNhSTHO+D0l1LmbmhpgsmIr3Zua6/DHtqxgk5P79BIFC8SVSYy1eQhLaYz96elpxzNTA+03veikHETmsScMrpoWaQCmcWr1S/0oEPcsSW9DuUlN3ZiHEvEgjx82VubPa/xV6uoZN8NXVjr7EkfrcNu8zDGjMDR+ugnzxEs1Q0TDRo72vk2F4uGPRQc3LKqE62tfk1nc/Q9k8vUu5ku/abWNevZg/wSLGv8zszwn21cwP+tseR202Wu7WknVu+PrYXV12qoiL6FGLy4oMRHN0zU5Qdw1QyGnY0jRx2150eyMz6i0PGolLZ1/lZGT2Wzuyu2j2Pi2wn5icn7dFmmZ12UiYzmo9jeJoHVs0SFSJlE0/hEA9rrShcEw2aEY+3iE/wXTGgBQpuTcjTSPxzF5pYeu6l5Ik7eHO6Rc0NYYlE7Bsm7RgMXoSCL0UWXGPpeBM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(86362001)(53546011)(66556008)(4326008)(66476007)(31686004)(36756003)(38100700002)(508600001)(5660300002)(6916009)(8676002)(2906002)(2616005)(66946007)(6486002)(31696002)(54906003)(316002)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dWtrc0pyYXhiNENCRlZZWFVCdzdDRkw1ZExRRTdld0syNC9RaGZmQUxYQWFB?=
 =?utf-8?B?bmVXbkhLaHB3eFZaK1U3Y1h4TXF3c1d1YUlES1BSTTNWTzNueUxhMjE0a1J1?=
 =?utf-8?B?UURISkRCMDNTYnFucjNVMTdFNWdsWDZ5Y3Ayb2YwN0xwRlhKbnJURWNFUFJv?=
 =?utf-8?B?MG9QNG5sQ1NjTm1HRStwK0UrbldISVR6bUUwc2ZpN2J2MExQdlBmQS95S1Z5?=
 =?utf-8?B?QTI5aW5xcXlienlHS0UyZFMrNkhNNEYya3RqL2RONkx4MUI2c3poR25ZeFV1?=
 =?utf-8?B?eGRrb0pUMjZDdVFxdlVFZ2hxNytsVldiM0tEMkZlVTZ5QUpOTkZCSXBBQWtO?=
 =?utf-8?B?NCtLWG53a2pDMTJLV3BqTGNPUGlhYzBITzVrWVBMc3RsRElRNi82YTd4VUVN?=
 =?utf-8?B?UURJY3d4Ny9IZGZHNTJrZmViZTJGVWovUjJxa1BzUTJQL0xVUDdDcHVoMkZa?=
 =?utf-8?B?akxUbEV0Q0NHV3dZTytqTzdHVyt1SGhNOGR5QXpVOUowVHNCNzdLdmJXMGsw?=
 =?utf-8?B?WnN6SGdsbDgyZEk1blRRcURBNFRSaFJZUDJBZzBiT1hTbER5emZLQ0xIdzdQ?=
 =?utf-8?B?Y0NNL1JiMUtPVjBoeHQwbm0xeVE1L2VHdzJqOC9TQVhWYWViYk9FQlNNSjVB?=
 =?utf-8?B?UkFoTmMyck9mUURVc0RXMisxOTg3cnBLNW9HOHpPdllsVG4xWDBBVGVSa3VX?=
 =?utf-8?B?VnEvN3l3MzlDS09ZSDhtUkc2dHRhSnNNSThNcDdBV2ZIZGlXS1U1NDNyRGEz?=
 =?utf-8?B?K2xKSjh1Snd0bmdBZjRaTUYzKzZKU2xxcmQraHZKWVMvQnB4N1lKZnc4bnRZ?=
 =?utf-8?B?UEFIOW5oT09yN3RWY1BkTEVkNWVmUnNwQk1TQmhiOUJ1b3ZTVlpWYlJ5R2My?=
 =?utf-8?B?ZmFjNm1hOFllSlhBU3NWOTEwclVYWUphSTQ5WThGVHpTL0VGeVRNYjBLUWtL?=
 =?utf-8?B?RWlCMzdWNzJ4U0tFblJCMmRPaExZWXdEUnJaMXhZRnRZb3I2WkIrNlVJa3BR?=
 =?utf-8?B?UG1PaTVzRkZzL2UyK3hnbGRnRS9tbE1wS3FDa1ZhQjY5dzJtY3RLQlgvZ3VT?=
 =?utf-8?B?U2xjWEYwTzZEL3VpSlJxUytqVnFuUzdzYXY2UzcxbzVtVDR0aStnUVhNM3ly?=
 =?utf-8?B?UWpDV3RrRzRuUEVHUDdpdzl1b2dtdFRrQnhrOWVOeHdMWWNUc0tuYVNOZ0Y0?=
 =?utf-8?B?R21xYUF3bFpGbDBibGxaQWxENUh2OS9mek1Vd0hjVmhPNnRjK04xbnJiWjZG?=
 =?utf-8?B?SkpYclZjeUJ4Z3NzVUFITVQrZ1hlUE9xa2JrUWU3dUxwdEF3cGFsQUlvclhV?=
 =?utf-8?B?Z0hXMXBUWDNjQkZ5bHBZNHN5QzB6MHNMeGlWeUJvazB1RkZLd1VyNnMrcTZj?=
 =?utf-8?B?R3dRQ3JWRjcyU2hDYTQxQkx1cEJQQUYxakJnSWRoWWFOQmFVQTlva2gzTzFJ?=
 =?utf-8?B?TEVqdlhFdnZINnRXRVF4ZVFkL2lwU05kV3YwTkpUYlh6eU9YeEQ5ZU51THRU?=
 =?utf-8?B?aG02NjBTa1lzWWVWeWZNNldIdU1NWGdlc3pSc2pCQXZITkdSTVFZRVJZb0du?=
 =?utf-8?B?TEk2YWcvNGdHZUovMEduZkprU2dyY2JSOEdjcUY4RDl4RmsvajlXWmw4ZFZ6?=
 =?utf-8?B?akNKOXRLN25YTnJYN1ZOK1lnTmVGaVBQYmYvdlNiQi9Sb1FST0RPWjc5Q20w?=
 =?utf-8?B?TEpTRDBWRXJjWit6UnluU3BBbW90aHo2NTN6a3A0RmpISFIvMVpkZk9sN1BE?=
 =?utf-8?B?L1ZSNXhsZ2pWdTV5VnhYWjlrTUhWdEc1Lyt2MEUyRnlDZHZEU1ZxQmJvM2U3?=
 =?utf-8?B?OFF5bnl3OEc5dU44SEhvWHpDdTFKZlEzeTcxVnJYYVNlUlhqdEoxYlpRTFFE?=
 =?utf-8?B?SDdpdHpOQ2NWdWNlU2p5Qm8rdks5eG44bjVDVS8zZ0RDcEVQUFZQcDdlL3ZJ?=
 =?utf-8?B?K09XZ0NPRnZpVzJPOXVwWnVZK3liQlJFeE9hSm5Yb2x2TG1RQ3NMSG5mRTU0?=
 =?utf-8?B?dEI3ZDIxL0ovVVFHcEVwMnd1bzc5N2JaQ0NibWFBNVZMT0tDaEJWZHV4MHVD?=
 =?utf-8?B?LzBSNEZQM0wyakdJeWRZT0xRV1ZHd1Y3bCt4cHF5QmVFT3lWM0lsQTZCVE5X?=
 =?utf-8?B?UHI5Z2tiSGZQM0Y1NmJ1dWM5VkdYcUhOZ1RKa29nSjRsK1NuZjI0c1R2S0lP?=
 =?utf-8?B?NURaNW5QT3FGZWgvYjFNaHpJMDZvQzRFQTFuSUc0bm1YM1dOQUdRWTZadXdr?=
 =?utf-8?Q?Te+QyC7LOZ770jnqKz0VhQE8Tn8iYiGMyXP9ubXR7M=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 26ae6f73-6da8-4f39-0a5f-08d9ad97a1f9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 09:08:21.9705
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bi2OWDgsrmDZGesL/Ih54BeF0lHFD9IZlOEsKpmdOozzHCRSEqKBIGm4Sm6H3UMFaW9YsyOZ15YseMkSZYT88g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7038

On 19.11.2021 19:21, Andrew Cooper wrote:
> do{_reserved,}_trap() should use fatal_trap() rather than opencoding part of

Nit: That's do{_unhandled,}_trap() now.

> it.  This lets the remote stack trace logic work in more fatal error
> conditions.
> 
> With do_trap() converted, there is only one single user of trapstr()
> remaining.  Tweak the formatting in pv_inject_event(), and remove trapstr()
> entirely.
> 
> Take the opportunity of exporting vec_name() to improve the diagnostics in
> stub_selftest().
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
albeit with one further aspect to consider:

> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -759,21 +759,7 @@ static int nmi_show_execution_state(const struct cpu_user_regs *regs, int cpu)
>      return 1;
>  }
>  
> -const char *trapstr(unsigned int trapnr)
> -{
> -    static const char * const strings[] = {
> -        "divide error", "debug", "nmi", "bkpt", "overflow", "bounds",
> -        "invalid opcode", "device not available", "double fault",
> -        "coprocessor segment", "invalid tss", "segment not found",
> -        "stack error", "general protection fault", "page fault",
> -        "spurious interrupt", "coprocessor error", "alignment check",
> -        "machine check", "simd error", "virtualisation exception"
> -    };
> -
> -    return trapnr < ARRAY_SIZE(strings) ? strings[trapnr] : "???";
> -}
> -
> -static const char *vec_name(unsigned int vec)
> +const char *vec_name(unsigned int vec)

Is this perhaps too ambiguous a name for a non-static function? exn_vec_name()
at least, maybe?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 09:21:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 09:21:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228690.395777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5Vw-0000Zr-Fh; Mon, 22 Nov 2021 09:21:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228690.395777; Mon, 22 Nov 2021 09:21:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5Vw-0000Zk-CW; Mon, 22 Nov 2021 09:21:28 +0000
Received: by outflank-mailman (input) for mailman id 228690;
 Mon, 22 Nov 2021 09:21:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XeZD=QJ=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1mp5Vu-0000Ze-UW
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 09:21:27 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01on060f.outbound.protection.outlook.com
 [2a01:111:f400:fe02::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9059ca86-4b75-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 10:21:25 +0100 (CET)
Received: from AS8PR04CA0172.eurprd04.prod.outlook.com (2603:10a6:20b:331::27)
 by DB7PR08MB3481.eurprd08.prod.outlook.com (2603:10a6:10:4b::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.23; Mon, 22 Nov
 2021 09:21:23 +0000
Received: from VE1EUR03FT056.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:331:cafe::be) by AS8PR04CA0172.outlook.office365.com
 (2603:10a6:20b:331::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Mon, 22 Nov 2021 09:21:22 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT056.mail.protection.outlook.com (10.152.19.28) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 09:21:22 +0000
Received: ("Tessian outbound 1cd1a01725a6:v110");
 Mon, 22 Nov 2021 09:21:21 +0000
Received: from 9ac51e9feb3a.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 565EB4CE-70F0-4D7E-A3F3-05BB29B0813D.1; 
 Mon, 22 Nov 2021 09:21:15 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9ac51e9feb3a.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 22 Nov 2021 09:21:15 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com (2603:10a6:102:130::10)
 by PAXPR08MB7017.eurprd08.prod.outlook.com (2603:10a6:102:1df::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 09:21:14 +0000
Received: from PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::1d24:822b:651c:5eeb]) by PAXPR08MB6816.eurprd08.prod.outlook.com
 ([fe80::1d24:822b:651c:5eeb%6]) with mapi id 15.20.4690.015; Mon, 22 Nov 2021
 09:21:14 +0000
Received: from smtpclient.apple (82.8.129.65) by
 LO4P123CA0212.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1a5::19) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 09:21:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9059ca86-4b75-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ypy0E2zDODZ5qMPEXKzGJccxLsfBNu+Kogv5z5YM6fc=;
 b=7KgI3vufOiX83hz9/FeDJ0pO/byfbRSsZd7Kr6BouoG3xCZ/9pCQD2kNSG0pf1TYnpe3UjOtF6NhQFqA9Da1O2s0eQVQJ/KPLpxUTj5dp935YDgX8WZQq9mTyLOlcsK1qemADOHegcC+HJ3z0TcI9VLyTBVQ1nklbuFGQt5EjKI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: e13cb0202dbbe0f6
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=F66oIgP0Fwe9evaDEIV7iVLWVlHXvzlpmCS3wMN4wy+wdW9sYJpd2CgZ6b7gs/YL6A/wsqVYYpUGCwDxQrfh+tRO/VVI6HKhNuvj+tS7gKx03jFilLTMVT9EzMXltYm0AfQHJtfMbhadAy3+ck/9G2a0J+IuJSjja1CWLCo2Z1Tujh/Zf0CB1OI7ZcKscGzOP/e26rNeqrZAVkSzKQjYFhCd04MTX8JJzrE0ptN9LDSk6mS6FdAaXZLLGwZLFXcvx5S1vm9qbUELEz3J4LdS2KkM5ZILhJnoGvKJh8XKw//3cdl94xMgvWMgBhcc+CWIZIyT/isPqZeb2TPer6bfPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ypy0E2zDODZ5qMPEXKzGJccxLsfBNu+Kogv5z5YM6fc=;
 b=m2l5/iI4X7Wi1NR7oDz5N2u0LxWtTZrrFN9+Zw2M8bPL/xSdoxF7HenWS+y92MwDBLEELMgtHFx3R4upBiaP8QhT8YeTzIp8MhjsbXxVLbFyif6TkI0a8n19di7tjPl6gG9Sk37XRIE3FfroNjC1Jqa1m8gC2z1Q/Bqqy0x5jBx1utiiYySk+a2C0rQeV9zusUVlk7/lWWw3zA1YSQstYPjj5t0mE9BkbCPYQIm5UIcEcz/v/Gx8qZe/eokXe4g7nJ0d7Z/+JBLOKKjqBd7XfgicGUh72Aq2EBN1t2Hhc54HeMsQsl70Jx+soKx66l64uHTWK1oHvYLOKpteB1Wo4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ypy0E2zDODZ5qMPEXKzGJccxLsfBNu+Kogv5z5YM6fc=;
 b=7KgI3vufOiX83hz9/FeDJ0pO/byfbRSsZd7Kr6BouoG3xCZ/9pCQD2kNSG0pf1TYnpe3UjOtF6NhQFqA9Da1O2s0eQVQJ/KPLpxUTj5dp935YDgX8WZQq9mTyLOlcsK1qemADOHegcC+HJ3z0TcI9VLyTBVQ1nklbuFGQt5EjKI=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Content-Type: text/plain;
	charset=utf-8
Subject: Re: [PATCH] xen/smp: Support NULL IPI function pointers
From: Luca Fancellu <luca.fancellu@arm.com>
In-Reply-To: <9ce22608-a1ef-adbd-6455-8ae1af88b388@srcf.net>
Date: Mon, 22 Nov 2021 09:21:07 +0000
Cc: Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Chen <Wei.Chen@arm.com>,
 =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <310C7A35-DDEA-4413-9159-86C651242D2F@arm.com>
References: <20211117164852.16394-1-andrew.cooper3@citrix.com>
 <c1dc1fed-8f07-5074-592e-b240f2bbdd44@suse.com>
 <9ce22608-a1ef-adbd-6455-8ae1af88b388@srcf.net>
To: Andrew Cooper <amc96@srcf.net>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
X-ClientProxiedBy: LO4P123CA0212.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a5::19) To PAXPR08MB6816.eurprd08.prod.outlook.com
 (2603:10a6:102:130::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a486bf79-2352-45a0-5d18-08d9ad99732e
X-MS-TrafficTypeDiagnostic: PAXPR08MB7017:|DB7PR08MB3481:
X-Microsoft-Antispam-PRVS:
	<DB7PR08MB3481D31B5C358C4BE0F2C5C2E49F9@DB7PR08MB3481.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 TrjO+caeK01PUJ8UbR18DlZuUyY2HYnHNd2DQajosCM66G2WiYEWKfG+Vaa56FRLeAZiMxdiRcsGm22S/n0COsCRJ6LE4OMlBVi5403D9+RqmZCrRRMA7R8x4v1f1myFol5oZMBLmUKJr3fKoEuxLvKiQXwGbGjLvHjp1SDv1DHYrkyRNSZJ+uBvvwdZS5QVdKfLvJN51zUMqvZfrCHcSNV4/sVvr416Zy16t6q9XPGXps4o/AlPhvVzJHVmdBuIN2lFB/kEnww4OmI4lSnjZEeH6LNKQOIqbZcGSADkD/7ZfUZ3aU9t/id5DmZRLfFS+GzOlWFRX/nenjtsQ5dkijZsmkQC1e7GnXSjw6qtGZhaZlCsH+jeR9lXmSIMuwhSLF2vrO8c17AvYwjZUFyo6T0JKMIuTMMfjn6yZXg5xbNOz6lFBj99S5a8PafInd+Fpy2JRjwDNIZJhIkrfh7AGbpI52cC7zrv2exj0vbYXpinrWg57kUDEHrpSdtUmcki6+CuApF1rpVFwO2gz32JF7oi8krnPrPH0TUkNMl0TsbY6tp3JKUVkvWWPHGXVQY/Kv68u142mq1eBC6wrZaVidjRVwQrJTHco5L40/UyAPUWBF8ST0WiENBvUbjR7UstXhb/O/v4HUa2YkhSgRf3Gzb/XzmRgp8wM0+fqIprEGW6UpM+1V2UxyHDkZsZ+sLQ6D1ij0wmkOx2tLWzjfRApNAZqA9eK0unWM4A9llo4Xs=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6816.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(53546011)(6512007)(66476007)(38350700002)(38100700002)(66556008)(6506007)(2906002)(5660300002)(6486002)(2616005)(36756003)(66946007)(33656002)(8936002)(26005)(8676002)(508600001)(54906003)(83380400001)(6666004)(4326008)(956004)(6916009)(186003)(316002)(52116002)(44832011)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7017
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT056.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	79e1d864-8245-4a5a-83fd-08d9ad996e90
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Qx2DIpwhnUFaDITutoxp3BdKFz+O4XUhEpCTM5O2eMXcDtmq/tWSuQQw4svXhr61Q+i5ivW0oyx1uLSvWyvNhTYuSx35hWfcV8R98eIZDvVEpcCnIs9wgiYYPQkZ3r20AnvWw9FbJzCVaNwXy22oPh4qWO9MgiRjaMu2DPgOwJ+EB7KTcRl/j5sF9Ftc9GiZ/xC8UTq90p2pG48pZfWc+PbTo4d3Tf2MwsD6IeGjDBR1wi1Q79VzAA9o3c7lrqW5pjL0O8VLWcrs9x7gpSe09hEmHOPPy/6z9/0tVaA1d6AszTYhXGFUWC8AYAm9QKKzjsm5suk/cwVMcFIHIl+7L45U0d7iRRvc9CvsCoO+GEvzZdYWgK+OfVH/e+DcTDKjQGpxytTgXRCH6NFH82Na0Ni69xXhafpeEkIl5n/I8orzZ1RnsMTcMQ0gpm6+TcE0pMbho1hDyqj4cM2xRv7OnekvOC3cHd/pbHInQ4DvY1oBw5HCV0KxUmvNrTdG7WQGsnYZrSIqY9w+VL+1XwhLEK+vhq9Mfe7G7IsPGmymfUsbSeNEvN2/YGImDgrGcBUIUQs/V8MsjsNi/ffICLLEdKR2jTv3/2Jz9d2yE67+q26rnScvFxC2UuASI0P8ruJBhhxpQET0EJGZgRuJFxsCQo8cDHMIbp9QbVRTAyO3cgyNKsqChaL8trN88YBhN1LokFvAdTwo/opRgkf2+HjYxQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(6506007)(53546011)(6486002)(47076005)(356005)(6862004)(83380400001)(33656002)(81166007)(5660300002)(186003)(956004)(86362001)(2616005)(82310400003)(36860700001)(336012)(8676002)(44832011)(36756003)(4326008)(508600001)(316002)(6512007)(26005)(70586007)(54906003)(70206006)(8936002)(6666004)(2906002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 09:21:22.2526
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a486bf79-2352-45a0-5d18-08d9ad99732e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT056.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3481



> On 18 Nov 2021, at 10:35, Andrew Cooper <amc96@srcf.net> wrote:
>=20
> On 18/11/2021 09:58, Jan Beulich wrote:
>> On 17.11.2021 17:48, Andrew Cooper wrote:
>>> There are several cases where the act of interrupting a remote processo=
r has
>>> the required side effect.  Explicitly allow NULL function pointers so t=
he
>>> calling code doesn't have to provide a stub implementation.
>>>=20
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>>> CC: Wei Liu <wl@xen.org>
>>>=20
>>> The wait parameter is a little weird.  It serves double duty and will c=
onfirm
>>> that the IPI has been taken.  All it does is let you control whether yo=
u also
>>> wait for the handler to complete first.  As such, it is effectively use=
less
>>> with a stub function.
>>>=20
>>> I don't particularly like folding into the .wait() path like that, but =
I
>>> dislike it less than an if()/else if() and adding a 3rd cpumask_clear_c=
pu()
>>> into the confusion which is this logic.
>> I can accept this, albeit personally I would have preferred the extra if=
()
>> over the goto.
>=20
> Just so it's been posted.  This is what the if/else looks like:
>=20
> diff --git a/xen/common/smp.c b/xen/common/smp.c
> index 79f4ebd14502..ff569bbe9d53 100644
> --- a/xen/common/smp.c
> +++ b/xen/common/smp.c
> @@ -87,7 +87,11 @@ void smp_call_function_interrupt(void)
> =20
>      irq_enter();
> =20
> -    if ( call_data.wait )
> +    if ( unlikely(!func) )
> +    {
> +        cpumask_clear_cpu(cpu, &call_data.selected);
> +    }
> +    else if ( call_data.wait )
>      {
>          (*func)(info);
>          smp_mb();
>=20
>=20
> GCC does manage to fold this into the goto version presented originally.
>=20
> If everyone else thinks this version is clearer to read then I'll go
> with it.

Hi Andrew,

I would vote for the long version if it=E2=80=99s not a problem.

Cheers,
Luca

>=20
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 09:24:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 09:24:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228697.395789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5YD-0001Cc-Tn; Mon, 22 Nov 2021 09:23:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228697.395789; Mon, 22 Nov 2021 09:23:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5YD-0001CV-Pw; Mon, 22 Nov 2021 09:23:49 +0000
Received: by outflank-mailman (input) for mailman id 228697;
 Mon, 22 Nov 2021 09:23:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mp5YC-0001CL-Sc; Mon, 22 Nov 2021 09:23:48 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mp5YC-0004AI-N2; Mon, 22 Nov 2021 09:23:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mp5YC-0002l5-CG; Mon, 22 Nov 2021 09:23:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mp5YC-0002kw-Bl; Mon, 22 Nov 2021 09:23:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=iAIOFSm0ovXm777526W5zIjs0DDMhVplpYatzYtCKTU=; b=IRAsrsDkU206U/o9X4BtA2GBvQ
	U5/2QuxWNn+EWM8prtwOkgEh0mhlYl4zWCR8mBsGQpXMeo/AoAbecw9//G4g+7zS/rnHKRKHXlBBm
	ZrZThmeetp9hRXLdTqG1aYFYdRLAIzS4VP4dVXhe5Vv2PzodvHtizwuNzKe4Uo869esc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166264-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166264: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=c7820f15091451f71e960337620e88e81dd3f2e2
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Nov 2021 09:23:48 +0000

flight 166264 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166264/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              c7820f15091451f71e960337620e88e81dd3f2e2
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  500 days
Failing since        151818  2020-07-11 04:18:52 Z  499 days  485 attempts
Testing same since   166203  2021-11-20 04:21:26 Z    2 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Vasiliy Ulyanov <vulyanov@suse.de>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 84098 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 09:28:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 09:28:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228708.395814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5ck-00028Z-UU; Mon, 22 Nov 2021 09:28:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228708.395814; Mon, 22 Nov 2021 09:28:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5ck-00028O-Qf; Mon, 22 Nov 2021 09:28:30 +0000
Received: by outflank-mailman (input) for mailman id 228708;
 Mon, 22 Nov 2021 09:28:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UJ+P=QJ=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mp5cj-0001sQ-Li
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 09:28:29 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8d1eba2f-4b76-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 10:28:28 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id f18so77828877lfv.6
 for <xen-devel@lists.xenproject.org>; Mon, 22 Nov 2021 01:28:28 -0800 (PST)
Received: from localhost.localdomain (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id f14sm1040024lfv.180.2021.11.22.01.28.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Nov 2021 01:28:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d1eba2f-4b76-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=PxEeon2P6LCD+Co00Mq24LYfnu7Q7XWANBpcKw0CI/c=;
        b=XfgtjN+KuNzkPXLaAjPHsZmKN97TNq6Pt6ks3wDi4EokKJBglb2eXyXaX4MdyHgvo9
         ZL73iuFh7292TF9rOwxKuWyxYmko8brqSEzgKlrOqPhAD1Nimiz0Qms1QjV0Xg09R/NI
         ateystA8Dfy6uh+ueEoZKpj4oxg2c/BbjC9bHSOt84YVSQXMZ23FDEN3YMmhU7iHOqGH
         Yi10jSFpFkzb+PObzcttE4OAZwfznNu/JBivjGwYtlihIHwHovftVht9ua0PYlFvCLOB
         rT/FREl8pcnm2ajx22YJYMfKVh9hkp7PmVepc4fBJxg8GmtQNdQ8CZXhd2azBDBYYqwS
         4HRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=PxEeon2P6LCD+Co00Mq24LYfnu7Q7XWANBpcKw0CI/c=;
        b=Sgatlg2yAbUAufaKFoTCM8mkKSh5eE0VWctYmI4KHFCf7mIaCkD5UIX76FTN+DKd4J
         LsomHnsO0BipR1a2gJJBQqPK7zo7Z7rUsTrrhLxv7ddpLvuVWbVn0pu6ddniMtDsV7DA
         c1Buw5X1GivLy2vwbWjsx7htrn/p7HZEQi18eblDsbTGrHGsZb2LmT/C/ylgBcIeu7JZ
         Rl8Aljne2vGhXvXQYuFr/YM16Duc4PHmr/1VsqXaqTKzyPoyz7gafBppz4875VzVRgLQ
         8ic+WTcMaN+ooUCEf3gg8dbiDrC/dzHxZGbS6yMMD0RCbxIZ1NEGdRFJwozMQfSXSigf
         jOlg==
X-Gm-Message-State: AOAM530z/ByI8ZDxKj8o/Bg6fsO8TmTYD67qnrqQGbGo50dqBOI2DeTj
	QXy96qGbdWFE0Kk5vwVxSqVVUljF/QDqkQ==
X-Google-Smtp-Source: ABdhPJz84tBoAiwcAGKoRzgvOF9p8soczNM8fHTTMkXcAjZ/si9Lw1Ayth2JBrt03HMPbUgz9QtDew==
X-Received: by 2002:a05:6512:3195:: with SMTP id i21mr55844167lfe.50.1637573307971;
        Mon, 22 Nov 2021 01:28:27 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	jbeulich@suse.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH 2/2] vpci: use named rangeset for BARs
Date: Mon, 22 Nov 2021 11:28:25 +0200
Message-Id: <20211122092825.2502306-2-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211122092825.2502306-1-andr2000@gmail.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Use a named range set instead of an anonymous one, but do not print it
while dumping range sets for a domain.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 xen/drivers/vpci/header.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 40ff79c33f8f..82a3e50d6053 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -206,12 +206,16 @@ static void defer_map(struct domain *d, struct pci_dev *pdev,
 static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
 {
     struct vpci_header *header = &pdev->vpci->header;
-    struct rangeset *mem = rangeset_new(NULL, NULL, 0);
+    struct rangeset *mem;
+    char str[32];
     struct pci_dev *tmp, *dev = NULL;
     const struct vpci_msix *msix = pdev->vpci->msix;
     unsigned int i;
     int rc;
 
+    snprintf(str, sizeof(str), "%pp", &pdev->sbdf);
+    mem = rangeset_new(NULL, str, RANGESETF_no_print);
+
     if ( !mem )
         return -ENOMEM;
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 09:28:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 09:28:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228707.395803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5cj-0001sY-IJ; Mon, 22 Nov 2021 09:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228707.395803; Mon, 22 Nov 2021 09:28:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp5cj-0001sR-Ez; Mon, 22 Nov 2021 09:28:29 +0000
Received: by outflank-mailman (input) for mailman id 228707;
 Mon, 22 Nov 2021 09:28:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UJ+P=QJ=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mp5ci-0001sH-GW
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 09:28:28 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c5b7ded-4b76-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 10:28:27 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id k37so77889838lfv.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Nov 2021 01:28:27 -0800 (PST)
Received: from localhost.localdomain (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id f14sm1040024lfv.180.2021.11.22.01.28.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Nov 2021 01:28:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c5b7ded-4b76-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=zg3iZjdBhPM1qkPiUTQLoFjD2MnrQYA7FWoXHxq7Vsc=;
        b=gMx/OX1D2vWbGVChKeBF07TAJL/K6t3SsIh9tsJMrL6hQjYuxVLnWm/Y1sojH4A7ae
         WXJkV8PJ61NYCYYW5q+lPFBQgyog0Bv88EdQRjWeTTnjcqepKKU3Sg417UHL7uOVjVaY
         KrjnR4e3Bab+1tPFv0YeKDMVWcfS0zXKC+iSzY+bpthJXLS4viBKlpITfMs0HKgiwhT0
         CFtPEu9I0AXkEEBTEi4N4NacJi22Xu/ci4U/uJkt64umLuXn5fnEMVRLX5+cL8RGPNvD
         CeijPkrzpspE7n5/Pp5J6BcfmUNpmr5+GwBRr3z9QeO8OwsZ58rYNB4kp8CdwNCx8MwO
         xhjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=zg3iZjdBhPM1qkPiUTQLoFjD2MnrQYA7FWoXHxq7Vsc=;
        b=b8MQH3JGxo/lhVpSgDxTDp8by7oNkc7Y6+SE/g5KIwloCCss5/GN/91xnpDt+eMywT
         oc85yjLCEmP5KpSz1sAXMo+2H67fk0HH46CzFXk0GXY7q4MT6Fd9phbTlnKInEzkN6Ve
         6J/8S7+vjYNw6/4moD3JguyaCn9PviXp+1QpvlI3uKxa5lKpPRksGtSWT02Vp4CwiDND
         b7HgTsZ1D5zG/zBd2JYGiQVWeo53p8hN6X0ecM73BaK+PiEedgl52kfKaMTWRI2/QB2/
         zjCRRodWqM/xAKq+/4ew6HPmCnD2io5narCs45Nu5lOiwH/Sj/yFlipQoNzeTV1m91SM
         5utQ==
X-Gm-Message-State: AOAM530XVt51ggOiDL0lSwQ2dW336hNPIFzYKsk6LVL3kZhyUuA8pxZ6
	6xtTQ2e166BMGoJEjzWdmDH/vRCsMLgGCQ==
X-Google-Smtp-Source: ABdhPJxkpNrQE0DVLm7TlDxXIxfBbWfPGn47mLNIME9nDHZDqo/bHErYH1ynEHHJ085IbeCwGEL8ag==
X-Received: by 2002:a2e:a287:: with SMTP id k7mr49993229lja.295.1637573306891;
        Mon, 22 Nov 2021 01:28:26 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	jbeulich@suse.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH 1/2] rangeset: add RANGESETF_no_print flag
Date: Mon, 22 Nov 2021 11:28:24 +0200
Message-Id: <20211122092825.2502306-1-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There are range sets which should not be printed, so introduce a flag
which allows marking those as such. Implement relevant logic to skip
such entries while printing.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 xen/common/rangeset.c      | 3 +++
 xen/include/xen/rangeset.h | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/xen/common/rangeset.c b/xen/common/rangeset.c
index 885b6b15c229..939883a1d145 100644
--- a/xen/common/rangeset.c
+++ b/xen/common/rangeset.c
@@ -575,6 +575,9 @@ void rangeset_domain_printk(
 
     list_for_each_entry ( r, &d->rangesets, rangeset_list )
     {
+        if ( r->flags & RANGESETF_no_print )
+            continue;
+
         printk("    ");
         rangeset_printk(r);
         printk("\n");
diff --git a/xen/include/xen/rangeset.h b/xen/include/xen/rangeset.h
index 135f33f6066f..543540a88b6f 100644
--- a/xen/include/xen/rangeset.h
+++ b/xen/include/xen/rangeset.h
@@ -51,6 +51,9 @@ void rangeset_limit(
  /* Pretty-print range limits in hexadecimal. */
 #define _RANGESETF_prettyprint_hex 0
 #define RANGESETF_prettyprint_hex  (1U << _RANGESETF_prettyprint_hex)
+/* Do not print entries marked with this flag. */
+#define _RANGESETF_no_print 1
+#define RANGESETF_no_print  (1U << _RANGESETF_no_print)
 
 bool_t __must_check rangeset_is_empty(
     const struct rangeset *r);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:02:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:02:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228721.395824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp692-0006Wv-Db; Mon, 22 Nov 2021 10:01:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228721.395824; Mon, 22 Nov 2021 10:01:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp692-0006Wo-Ai; Mon, 22 Nov 2021 10:01:52 +0000
Received: by outflank-mailman (input) for mailman id 228721;
 Mon, 22 Nov 2021 10:01:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp690-0006Wc-Re
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:01:50 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35b7ce6a-4b7b-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 11:01:49 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2171.outbound.protection.outlook.com [104.47.17.171]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-33-U-G0LGWpM2m6bgRj7Kwmag-1; Mon, 22 Nov 2021 11:01:48 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6479.eurprd04.prod.outlook.com (2603:10a6:803:11c::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 10:01:46 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 10:01:46 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AS9PR0301CA0032.eurprd03.prod.outlook.com (2603:10a6:20b:469::30) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20 via Frontend
 Transport; Mon, 22 Nov 2021 10:01:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35b7ce6a-4b7b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637575309;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=d5WpBCEohQbPxxyYGbSVptHk8uzl3xXdjzUWdcobwFA=;
	b=QIv14VivJDbibUudSUqE9KufsQ1gnAj59781OC8CeuSy5WGB1cJm53LCPh+vTJmr30RfrP
	De327cqCQY+uEBuRW+niXJFeQVuOGxH+lF0L1jKSF2z7JfrotocZGvJImQCqlS9j9aFgyL
	kcX0/iUffemdJe4k5QvRiUV7WS9N4Qg=
X-MC-Unique: U-G0LGWpM2m6bgRj7Kwmag-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ehiu9dDRlxZFkfWRzkyWXAvjxet6rNInsdWDorXPlL2osBrPzPfXXbD1LOiwfQiDZGJ2rr2tsqIvL2hHMmd6CR9TiLw3Efx0mPlOF79gDiYQdLbGSzb8271bIOXxmeVAQIbUagpIC0pyP9m8/XpA5Jrowl7IhJI1m3n0T9ioc9+oKQN2nyFJ4zWRByuRt1S3XGj3BWi3BJyNEHQ4B3QDXCZTD84b0/wzZv2MZKn67G7PZfenGplkGExwzFO98VDj506ehxWT6jUy8JCnezBTLSwx6hy8rqPfWSIXpUwe58nb0k6sI9Oi3ikucdEtxgQLcIJfZnpBq0v9it3+RmulXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=d5WpBCEohQbPxxyYGbSVptHk8uzl3xXdjzUWdcobwFA=;
 b=CYuu6kpPr1Fg5ZRctACt35U3nJKzDeA349KDksdIuBzBArMWfvDwj5cv+vt+Z7SBqiljmdFZYYfTXDEF5sLgUAxrqEVB0t+OtoO3AIZcgTw1PNxJUrPWc7/VSb/giMD6slY5Xjl2zq+QC8El0zTPxV1NJ57UmT1JZiIymp6glAtcDD45lCGQhZPH/CXsE+DbDwEqZEXkELgkgXQEn9mw9p6P5UUiyB28MXgVE8S1UfCaYABvRLE6Ek+7HB/2ZbfG07mSh6oNUPQ9wgGSg58SrdhY0MwEor+hMvPbO3FOkhR7NnqEZXYmoinD/64FDWoORUUdappNtHKl7LgySiVhMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4a706149-aa70-5aa7-0611-2ab458921051@suse.com>
Date: Mon, 22 Nov 2021 11:01:44 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20210914123600.1626-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR0301CA0032.eurprd03.prod.outlook.com
 (2603:10a6:20b:469::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: eb6d0705-22c4-4342-1edd-08d9ad9f17a6
X-MS-TrafficTypeDiagnostic: VE1PR04MB6479:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB647951F16395762F5C6361A3B39F9@VE1PR04MB6479.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2089;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	rU+V5S6bQq0wsyrsqZm1zacGAJ/IReWa3ZVFPrPyaZ6ZV0MyOXder2skWfGjdkMPqTQljwVTDz4huD4XzCRMBJGU4LVT25QqljeOZiet9SANvgFkCfL31Sa/IdFEEULsyCm0/I27MQkoyq/Sb0eaf7BqSSxo1XfQtNlBkNjqOHx5u7vnjjURcTwsmpAJyJUBo4QqufScpi0SIaccFbWXImIm90Q6dqPi6asjdhcgUWlh0lSGMzHR80lmyWJyUSDHI58hv2bROwdmydPY0JNhYvhq+5EGiVdOArdHh2IzrHE4gs93ThE8TuzAHLiAN9w9gCqi3aDoxq7PlagEQ/ZirG6OtmGgjbBQMOcd9W6QAkJThW7bLHuO+zp0+R3t8aj6FUsCwlTjeT9e2/AdrmOEe1IkU284ejsSHEk06p8asJGTihftd4+V2PYAM3bnED03Y9UizNzhAPSCffoOuyfHbyDjCTuZ8rfU6JYMY8/l+YTOxG5ivguw/LbV86baED4H5fl62XlDiSFjbxB3AIl8lH878pEAQwroF7dLxGxWmLWITjRIwmAGEAEsBGCsDpSNFSU97Rkls4miOUmUUqcFRAoovou8nIsUZH+V0LZe+ovkZFUOdwr4B2xpHRGRx0z7zMYQBxUnrU11oleBTWqhqdjP/cflTiw0O/qUsMAdJVNJF3RoNJoGk33ZBana58kvZ2EKaV3pqh515MjXQzxON9M5OJLFfCS557KMR+VY25o=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(8676002)(83380400001)(31686004)(186003)(86362001)(508600001)(6862004)(66476007)(66946007)(6486002)(66556008)(31696002)(2616005)(6636002)(8936002)(316002)(54906003)(2906002)(53546011)(4744005)(4326008)(37006003)(36756003)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U3dTTFZSSG8zblVSWjRVa1UvcUt6UW9jNWJNbGxaKzNRYWwweHhmYTJGTEls?=
 =?utf-8?B?NFk3SFJPL29WM2o1Nno4OTVUV3liOFRlM2VVUDRKdjUxL04vM0wwSFV1QTU4?=
 =?utf-8?B?bFB0eVNOTkpJNzJOdjZwNHJ0a1dBRkIvclAwK2I3bm5BNlYwc2xCQWtRTkVF?=
 =?utf-8?B?cGJpOXZFNkR4SjBuaERsRDlIOFFWblljb2kzcm0vRk90TlVrclVoMVVnd1hw?=
 =?utf-8?B?M1Z0OWNlVHFQVEZHVW1YSHVBVU5FUmZXOHU3ZWd0VlhuNGJuemZweFA3Z3hJ?=
 =?utf-8?B?UWMreHFKeldaRFpzbkFSSWV3Ky9WU1UvVjRTaEJHd0dTWmFPZkZKUHU0VmJq?=
 =?utf-8?B?YlpaNXFTbEFXT29QQWhIS3g3S1dLY0s3ZHhuRmNqL3N1MmlRcW9lbXFWemFj?=
 =?utf-8?B?b25yOHRpQXpwQzcrYU1MN0NQZmdtTS8zWllJZDRBYkY3dWx0Ym9EVEdXcjdy?=
 =?utf-8?B?S1FWOWROZEJvSkRKZE9nbmRYcFduUEUrRmhZdWkwSFE1WHVvaW9vTG9yUklk?=
 =?utf-8?B?TEMwWWVibFA5Q0pqT3dtNlRWd3VUaWR2Y1BpWVhjTG0zbGxKQjRTcFZSRWRZ?=
 =?utf-8?B?ZjUrRFczMHZXaW9RNysrT2I5enBxb0pYaVY5TmRmNGdqNVpJdDdyQVI3N0hU?=
 =?utf-8?B?NS81ajR5TlYzZlZEVXUvL3ZxWlNHblFLVmdMZzFtUnBmYjIwYVRERGhTVEg4?=
 =?utf-8?B?dU5hL0ErSmo2aGNiVitWSGdwQ1pUTHJOQWhzRHJCMkVhNUpSOHJ4Wk1GQUd1?=
 =?utf-8?B?aGFBdW16MUovaEljY0ZWNkduK2Nld1A3MkY3M2dnd2FESmhvTWdvWFNUMks2?=
 =?utf-8?B?YW9ralNnNk4rTDhVZVBPSkpLN0lMMGtTRjdVeWl4MnlJVnlVQUxqSnJxTUxm?=
 =?utf-8?B?cDNPRElGRWs4UjZsREVKcTVRQ1lhL3ZvK0hoazA3NDFTS0M3SGhHTndzdkhu?=
 =?utf-8?B?cXJCYklLVFgyeDQ0clRZTWJ3RVAyWWswbXBRTzBuQnNLSzg0NnlMMjQ0a2wz?=
 =?utf-8?B?eGhTUHMyYXJtalBJMGxUVW1VOU1wQmllQlFLRUpjSytFZ2RnV0cyYm1ZakxD?=
 =?utf-8?B?UGtCOVZuWWxVR1V4bjBtWUtJUTJPQjJkVEVMR0pZTitUQ1NPZktmeWpEeG10?=
 =?utf-8?B?ZWRCamJZR25PV1diSUZ2WldKcXJGM09yOFRjQk1ib01hcnQwakIvaGx0b292?=
 =?utf-8?B?WHB3Mnc1c3BZWk9KU1JOa2VtZXZyQXJLWnJoOXBvMVIyN01qK25XdzkwMWV3?=
 =?utf-8?B?T0xSZHArdFFZMkplZDNwT3NSb1BTcDhvajNZOS9RcFJjSG00WnVqdzRIVHZU?=
 =?utf-8?B?cHhpTWJVNHhxRVRaM0dOeGVKY0JoTzc3Sk9JNGxxR2NSd2VmVE9CU29HTUhD?=
 =?utf-8?B?dS9MdHJzSVVyRU9HQ1phUWN5bUozZGhPcGoyVGt5ZTgrbVl4WTlna1NxUW9D?=
 =?utf-8?B?SVk2b2FhMDVkQjVXLzIrNHZSblRUNTZCYUI3ZnMvSzZ0TzZSV0o2WEhLOTBI?=
 =?utf-8?B?K3lnWWluSURmZXRtTXBjVm1mZHYxbmxqM1Jia0FzTE5lck1MeXRxLzkzdSs3?=
 =?utf-8?B?MWpMdm81dmdieTB6TWZXZm5mSkYwQjdXTFByYkF5L1gvNnY4RStzbER5b2ln?=
 =?utf-8?B?OGZQUUQ1MjZid2ZzUEJvamY0NnNLMnA3UVBhMGt2eVpSWS83dWhHdXZRb1Ar?=
 =?utf-8?B?Qi91bXhCMEdaNHJEVGtidEU5NW0vUXZuWnlLaVVXZE5BanhGWGpidUZ4N0NC?=
 =?utf-8?B?dDFmMlhmczNFQlBsSCtia3ZobkcrRGU2bFdrb1ZZZnl6eWJHYWl0REVPSUcy?=
 =?utf-8?B?VU5TbEN3WlJmS0YvYmplVytwRGpQTlorNE5qT2wwdXBZVXJJUTM0anZkY013?=
 =?utf-8?B?aXNXZ1lQdEtZUEhhU3lOOVRvMHNpTEZ1eW82c3BpSFZTa2xPbXVHN2EwTy83?=
 =?utf-8?B?b0o0OUVSWi91YURpWlBSNkpBNXRZTTdWVnZUQ3VRZ09DdWVJemgvN3JFaEtu?=
 =?utf-8?B?NnJJTFd5dHNySGFNR1h0aUowMTNTK25yRFo2KzFDWnVGV1VkeURPMTMyWDh4?=
 =?utf-8?B?c3FXdDFqUUY2RzdBa2dkM3NhRTcrUnJCU3p6Q2oza1FGTTJuaHg1TzRRUW1O?=
 =?utf-8?B?RlFJTWtVRzVubW1UdlljMHYyeUpTNkVmZVd3YjZESFowbm5HQ3ZkRW85ajZv?=
 =?utf-8?B?Unpkb1JUeVkrME01SDJ0UTZzSnR2aDZRb0JYVGlEdllTMzBxTTdQMlhVVzVO?=
 =?utf-8?Q?Oc1eUNUBgC6jKmyCR6T9iwaDaXUYK7kIptM/IPLeXM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eb6d0705-22c4-4342-1edd-08d9ad9f17a6
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 10:01:45.9153
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5O+h/cHyHLzjxCuAt3osAs67RfFpiA1DOy3fm7eJNf4uqVraAXlxR+FBYJSc6gj9uamg1/3mygHPX1v/fWLDLw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6479

On 14.09.2021 14:35, Juergen Gross wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -84,6 +84,9 @@ vcpu_info_t dummy_vcpu_info;
>  
>  bool __read_mostly vmtrace_available;
>  
> +/* Unique domain identifier, protected by domctl lock. */
> +static uint64_t unique_id;

Unless a reason was given for this to live here, I think it wants to move ...

> @@ -473,6 +476,18 @@ static void _domain_destroy(struct domain *d)
>      free_domain_struct(d);
>  }
>  
> +static uint64_t get_unique_id(void)
> +{

... here. Then
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:16:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:16:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228727.395836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6Mj-00081Z-Lk; Mon, 22 Nov 2021 10:16:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228727.395836; Mon, 22 Nov 2021 10:16:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6Mj-00081S-Ic; Mon, 22 Nov 2021 10:16:01 +0000
Received: by outflank-mailman (input) for mailman id 228727;
 Mon, 22 Nov 2021 10:16:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/AbN=QJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mp6Mh-00081M-Qj
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:16:00 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01on0601.outbound.protection.outlook.com
 [2a01:111:f400:fe02::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f51de12-4b7d-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 11:15:58 +0100 (CET)
Received: from AM6P193CA0133.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:85::38)
 by DBAPR08MB5638.eurprd08.prod.outlook.com (2603:10a6:10:1b2::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Mon, 22 Nov
 2021 10:15:51 +0000
Received: from AM5EUR03FT005.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:85:cafe::65) by AM6P193CA0133.outlook.office365.com
 (2603:10a6:209:85::38) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20 via Frontend
 Transport; Mon, 22 Nov 2021 10:15:51 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT005.mail.protection.outlook.com (10.152.16.146) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 10:15:50 +0000
Received: ("Tessian outbound 1cd1a01725a6:v110");
 Mon, 22 Nov 2021 10:15:50 +0000
Received: from be4a1811ada0.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 76295233-5245-4FC5-AAC2-3725A42E557D.1; 
 Mon, 22 Nov 2021 10:15:41 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id be4a1811ada0.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 22 Nov 2021 10:15:41 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB6408.eurprd08.prod.outlook.com (2603:10a6:20b:33a::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 10:15:34 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 10:15:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f51de12-4b7d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0o4+xeyFmEZI/Ved9Hf6dxrBKPg6vV7JwUGVugDy97w=;
 b=sCfbAmc0Uz0xchU5b9avXf2k8u1IOok5XLg7hp8KMhFDApQnn1PvFLYsdWRFxjaBxn/DX0fOCuWxwfWXosqvhVHm/gR5SrXnSyyelWsJk5Rds4k+EkoJFgfCY4yIgDFJ2ntkWNiy1YjIjhcsnluyc82siwC/sEzk4+u6OQ5ebmU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 2e2e6e4b9efe8506
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kNtABQ/zewU5jg095qDxKxq1eXIPpz6x6hkN4icuXzDKXZFYR79EDanvRuZg/gLnb7hXtYWHL6m5EkBHsQZVqAhXNtwjv2BsgWZK5DAUfA6drLjOYolxgLzKPypupCwonhpWFc0cGEPPB/RD6DfJPve26xzKZejspe7whHeh0fGk1UTc4YtonMmW+2Kr/y5JWqzXdGLXfttzrldv7+BAywMrBnsdsovn/+ZPoIwR7tsfC2fkf5jfpRHHNjjpvagtUECchXqmEOn6SsE6I+AsPyikyw9BiwCf3VwJY/mU/HFFIkcWSRLtSgyNKcA5DebSpigJ6q/SHIMpYEEuzh+ymA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0o4+xeyFmEZI/Ved9Hf6dxrBKPg6vV7JwUGVugDy97w=;
 b=QOu1hG3f1vY0LTGjuDejXhNgCpJxjif19kKqXzI7NfSMgRIg5aFnoGI4LIDofKqKSbgHSXsy+ifchGGE3Z1AFki9MvwBw0uxJcA/DG9GBWCHjoJ/0nXymhw13Jdq232ofTTexVHSTJt31NQ5mBfGpHi0tRifXYy/DqkxnVI1cSrEjd8X6DzQ8Eqcv5CFaJ+wgRBxhZz6+rpzmDJv8VNhldHq+kHGHqDjpcq2ZW2y1Z8GxHb+Iq86JoRcXs8fSdeTCH7ydifRCItbl+7N+zjS/7CFbfrp3GJ38PeTwEVTfF+aqN+oWeexw/+KU47gU0tU+zE9d/Vnj1qN//6bHLtQZg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0o4+xeyFmEZI/Ved9Hf6dxrBKPg6vV7JwUGVugDy97w=;
 b=sCfbAmc0Uz0xchU5b9avXf2k8u1IOok5XLg7hp8KMhFDApQnn1PvFLYsdWRFxjaBxn/DX0fOCuWxwfWXosqvhVHm/gR5SrXnSyyelWsJk5Rds4k+EkoJFgfCY4yIgDFJ2ntkWNiy1YjIjhcsnluyc82siwC/sEzk4+u6OQ5ebmU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Oleksandr <olekstysh@gmail.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel
	<xen-devel@lists.xenproject.org>, Alistair Francis
	<alistair.francis@wdc.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Ian
 Jackson <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Jun
 Nakajima <jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>, Konrad
 Rzeszutek Wilk <konrad.wilk@oracle.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, Nick
 Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Quan Xu
	<quan.xu0@gmail.com>, Rahul Singh <Rahul.Singh@arm.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Shriram Rajagopalan <rshriram@cs.ubc.ca>, Stewart Hildebrand
	<stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei
 Liu <wl@xen.org>, Community Manager <community.manager@xenproject.org>
Subject: Re: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Topic: [PATCH for-4.16 2/2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Thread-Index:
 AQHX25ke11bcLw+u/U2iOGdMJWqiNawJdpeAgAAXHgCAABlTAIAA2I0AgAAaeACABMKEAA==
Date: Mon, 22 Nov 2021 10:15:32 +0000
Message-ID: <90A25CDC-52F4-4520-A911-6B7381EF2FF0@arm.com>
References: <20211117095338.14947-1-roger.pau@citrix.com>
 <20211117095338.14947-3-roger.pau@citrix.com>
 <CAPD2p-nb7u7om7zv5-KvfZTsmGis9uGfBkvwjEXrym_+4PN-RQ@mail.gmail.com>
 <YZaOgGWfbDkIq4Lq@Air-de-Roger>
 <d4f3d50d-9875-f7bf-2c82-83f8fedb8cfc@gmail.com>
 <YZdZZsgXjZv/rh66@Air-de-Roger>
 <41554b67-552b-3e44-9e5e-f7e493ebf615@gmail.com>
In-Reply-To: <41554b67-552b-3e44-9e5e-f7e493ebf615@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: ffad191d-b769-4647-3466-08d9ada10f51
x-ms-traffictypediagnostic: AS8PR08MB6408:|DBAPR08MB5638:
X-Microsoft-Antispam-PRVS:
	<DBAPR08MB5638D86F7CF6539B0D21EF729D9F9@DBAPR08MB5638.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 trCB+ePrlyGS4568QR6LIwq54ZAxwLKZ6d1ed2wYloIYPE2DUgYpSHqI/EwWuLGYP+bBQ/fUT3GJEdugC1Y+T3yVA6WXBPDzFCBRK33eYnFsccgaZSgNL6ZfA7GpSYMfU+M0zu/SH90edH4pBnLLin/jGQmVMYBHO93a9C8Ot0gfCjIZ2gtx2jJzGTIFe90lHqypQwqfXiBWd1C8TagDhcuk+uCUgzI/8SyLna3xNoHKI47q6i7KFCzKqV2C4+qb74+eJ/AgffMF5Q61VO9xB186tk1Kpavhjfg/ZWuWyCqisE0ZJF+C6VF7sczkw77v6h0cvDzWLfeBdoKkVqTXokoFZYRQz3bv6ORjy5lgbYOVdI21w+6qNXV2RpLUwqwQjAUx7X7kYgMbqD9Ao6Nt8vpwupzN8vQ7YcaLWKAAFZhKYG39YrNxH9hH+LnDsRYRgbKGjWsA3nXhRtoFMnIfPri9Cm6M1FknkGgiJAdU9/pSiwSSb3vvk/fWNujUyVOu11hNtGSQFXVEu52G1RjOlZGAFxeVms4Cii7NDJO4ATaDfacpKaEx3SWI6SdUxr03IoPKFxfzGseh/ORM73085ysokZ6q1P9SK/ISv9LaBfdbhMpVKqZVvdEr6uqQAP5YnlfvIoLUb4aMZaSkUv/0RT9xOg/n4fXf3H8tu0OVbPqlN2vCdJA9Brfk0PukEJ9SZeCucDmx3Xg8nlQIRxyPi2tCXixUl6TLa79S74U8OZv6bGHAPeuUXhwIzeTKqJtpuhdjw25SYNlZN66UxAJSNlE2Q/Li1DYnxkSDpxqtw0ZzKN9IH0zNdo8pGiomaRFZCfrcxl0D2Ke840HehMdXr+oRm7hHINwAik+1eVKVeZlkW61WzD0E4J+yyyD2bzav
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(122000001)(8936002)(508600001)(5660300002)(966005)(66946007)(33656002)(2616005)(64756008)(38070700005)(54906003)(6512007)(76116006)(26005)(86362001)(186003)(2906002)(53546011)(38100700002)(6916009)(66446008)(7416002)(66556008)(83380400001)(36756003)(8676002)(66476007)(4326008)(316002)(7406005)(6506007)(71200400001)(6486002)(91956017)(219803003)(207903002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <1F5F92B16EEFD444AECECC433479DE95@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6408
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT005.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4a1dfa96-b00f-4034-d1e1-08d9ada104f3
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	C4SCHcpFWwK77pC2SqRt2kU9EIXdbxNtXWrELFXUxiiARyAcyLqTuk6vyQQgtqNPuqLVfEJ9yUYSOjmzbCotrqkjF87usezGds59OTweGIwtttRnzIdsqI4g4j5Hl0es3kjfHUPJ8hrsVgQ5wdCUfK/QJa6RtBw5pYRfMCBEV+eWFvCXHFzJpxI4IQ6e2loxSZyulKIAmsVzMekZaHFwF3RGgL93KOKIJZY6XMbp1czkrQ6uhte1MQIvXBrYHTbXNaKps9L+y+WAWDyn3TriKaVU0YRP/y6BiS2qWcOaSM9u6JJzzofvr95j/861XNsCBWktO7EuKD74TWjAmGBthynmkzml3E2Atw0Eh2oySan5eAK62uYpGHgMvQTQmYmXGCu73Z+Jm50y4iRtSSgOcKPaT4JMjfP85hXH6vjzH/NeTAG6VUh0tESjL9P0FOXWxngTqvEZEKqMghM6Wl6ngCC1uWfhg8tUEUNi1fV+/B0E64NPdLaA6N9Vv7prm2ILQaX5R2nOQZ6EGEjT4F+ZjeMQ/JNeVh5GuL+xzRjjPs3U5j0zamLFd93IAa0QLg0RziE63Mbw/C/EZjyFvaw7AOSfxsrOMfO1zcOB+6mQGJkYQv0rJyZIYnrGVSJ4gmGSL4npiN04BwXZWHDLQoxwmydyOY1gujBJVt80MT4la6sbJING5v/zikWm/6cnqQvOcsg/38M3OqR3XA/YgVAl+mg3lL3y2aKB/tpnT90szqGiYybHU8AKVa6cgA3v3thNvGWpARdOwmnY2mlSggKHqUhyMio9wlESpZdjunECqq9vp2M8xj//e2/dRGc3gNTNsTP4eHBDDKhyuZF+OxaEemeFMq98VDt1dCxMNoAM2KM=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(4326008)(54906003)(26005)(8676002)(70206006)(53546011)(70586007)(186003)(966005)(5660300002)(356005)(36860700001)(8936002)(82310400003)(2906002)(86362001)(6486002)(316002)(36756003)(83380400001)(336012)(6512007)(81166007)(33656002)(6506007)(508600001)(6862004)(47076005)(2616005)(207903002)(219803003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 10:15:50.7026
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ffad191d-b769-4647-3466-08d9ada10f51
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT005.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5638

SGksDQoNCj4gT24gMTkgTm92IDIwMjEsIGF0IDA5OjM0LCBPbGVrc2FuZHIgPG9sZWtzdHlzaEBn
bWFpbC5jb20+IHdyb3RlOg0KPiANCj4gDQo+IE9uIDE5LjExLjIxIDA5OjU5LCBSb2dlciBQYXUg
TW9ubsOpIHdyb3RlOg0KPiANCj4gSGkgUm9nZXIsIGFsbA0KPiANCj4gDQo+PiBPbiBUaHUsIE5v
diAxOCwgMjAyMSBhdCAwOTowNDozMFBNICswMjAwLCBPbGVrc2FuZHIgd3JvdGU6DQo+Pj4gT24g
MTguMTEuMjEgMTk6MzMsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4gDQo+Pj4gSGkgUm9n
ZXINCj4+PiANCj4+PiANCj4+Pj4gT24gVGh1LCBOb3YgMTgsIDIwMjEgYXQgMDY6MTE6MDdQTSAr
MDIwMCwgT2xla3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+Pj4+PiBPbiBXZWQsIE5vdiAxNywg
MjAyMSBhdCAxMTo1NCBBTSBSb2dlciBQYXUgTW9ubmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0K
Pj4+Pj4gd3JvdGU6DQo+Pj4+PiANCj4+Pj4+IEhpIFJvZ2VyLCBhbGwNCj4+Pj4+IA0KPj4+Pj4g
W1NvcnJ5IGZvciB0aGUgcG9zc2libGUgZm9ybWF0IGlzc3Vlc10NCj4+Pj4+IA0KPj4+Pj4gRG9j
dW1lbnQgc29tZSBvZiB0aGUgcmVsZXZhbnQgY2hhbmdlcyBkdXJpbmcgdGhlIDQuMTYgcmVsZWFz
ZSBjeWNsZSwNCj4+Pj4+PiBsaWtlbHkgbW9yZSBlbnRyaWVzIGFyZSBtaXNzaW5nLg0KPj4+Pj4+
IA0KPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRy
aXguY29tPg0KPj4+Pj4+IC0tLQ0KPj4+Pj4+ICAgQ0hBTkdFTE9HLm1kIHwgMTEgKysrKysrKysr
KysNCj4+Pj4+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspDQo+Pj4+Pj4gDQo+
Pj4+Pj4gZGlmZiAtLWdpdCBhL0NIQU5HRUxPRy5tZCBiL0NIQU5HRUxPRy5tZA0KPj4+Pj4+IGlu
ZGV4IGFkMWE4YzJiYzIuLjhiMGJkZDljZjAgMTAwNjQ0DQo+Pj4+Pj4gLS0tIGEvQ0hBTkdFTE9H
Lm1kDQo+Pj4+Pj4gKysrIGIvQ0hBTkdFTE9HLm1kDQo+Pj4+Pj4gQEAgLTIxLDYgKzIxLDE3IEBA
IFRoZSBmb3JtYXQgaXMgYmFzZWQgb24gW0tlZXAgYSBDaGFuZ2Vsb2ddKA0KPj4+Pj4+IGh0dHBz
Oi8va2VlcGFjaGFuZ2Vsb2cuY29tL2VuLzEuMC4wLykNCj4+Pj4+PiAgICAtIHFlbXUtdHJhZGl0
aW9uYWwgYmFzZWQgZGV2aWNlIG1vZGVscyAoYm90aCwgcWVtdS10cmFkaXRpb25hbCBhbmQNCj4+
Pj4+PiBpb2VtdS1zdHViZG9tKSB3aWxsDQo+Pj4+Pj4gICAgICBubyBsb25nZXIgYmUgYnVpbHQg
cGVyIGRlZmF1bHQuIEluIG9yZGVyIHRvIGJlIGFibGUgdG8gdXNlIHRob3NlLA0KPj4+Pj4+IGNv
bmZpZ3VyZSBuZWVkcyB0bw0KPj4+Pj4+ICAgICAgYmUgY2FsbGVkIHdpdGggIi0tZW5hYmxlLXFl
bXUtdHJhZGl0aW9uYWwiIGFzIHBhcmFtZXRlci4NCj4+Pj4+PiArIC0gRml4ZXMgZm9yIGNyZWRp
dDIgc2NoZWR1bGVyIHN0YWJpbGl0eSBpbiBjb3JuZXIgY2FzZSBjb25kaXRpb25zLg0KPj4+Pj4+
ICsgLSBPbmdvaW5nIGltcHJvdmVtZW50cyBpbiB0aGUgaHlwZXJ2aXNvciBidWlsZCBzeXN0ZW0u
DQo+Pj4+Pj4gKyAtIHZ0cG1tZ3IgbWlzY2VsbGFuZW91cyBmaXhlcyBpbiBwcmVwYXJhdGlvbiBm
b3IgVFBNIDIuMCBzdXBwb3J0Lg0KPj4+Pj4+ICsgLSAzMmJpdCBQViBndWVzdHMgb25seSBzdXBw
b3J0ZWQgaW4gc2hpbSBtb2RlLg0KPj4+Pj4+ICsgLSBJbXByb3ZlZCBQVkggZG9tMCBkZWJ1ZyBr
ZXkgaGFuZGxpbmcuDQo+Pj4+Pj4gKyAtIEZpeCBib290aW5nIG9uIHNvbWUgSW50ZWwgc3lzdGVt
cyB3aXRob3V0IGEgUElUIChpODI1NCkuDQo+Pj4+Pj4gDQo+Pj4+PiBJIHdvdWxkIGFkZCAiVmFy
aW91cyBmaXhlcyBmb3IgT1AtVEVFIG1lZGlhdG9yIChBcm0pIiBoZXJlIGFuZCAuLi4NCj4+Pj4+
IA0KPj4+Pj4gDQo+Pj4+PiANCj4+Pj4+PiArDQo+Pj4+Pj4gKyMjIyBBZGRlZA0KPj4+Pj4+ICsg
LSAzMmJpdCBBcm0gYnVpbGRzIHRvIHRoZSBhdXRvbWF0ZWQgdGVzdHMuDQo+Pj4+Pj4gKyAtIE5l
dyB4ODYgcGFnZXRhYmxlIEFQSXMuDQo+Pj4+Pj4gKyAtIEFybSB2UE1VIHN1cHBvcnQuDQo+Pj4+
Pj4gDQo+Pj4+PiAiRXh0ZW5kZWQgcmVnaW9ucyBzdXBwb3J0LCBkZXZpY2UgdHJlZSBvbmx5IChB
cm0pIiBoZXJlLg0KPj4+Pj4gDQo+Pj4+PiAuLi4NCj4+Pj4+IFRoZSBleHRlbmRlZCByZWdpb25z
IGFyZSByYW5nZXMgb2YgdW51c2VkIGFkZHJlc3Mgc3BhY2UgZXhwb3NlZCB0byBkb21haW5zDQo+
Pj4+PiBhcw0KPj4+Pj4gInNhZmUgdG8gdXNlIiBmb3Igc3BlY2lhbCBtZW1vcnkgbWFwcGluZ3Mu
DQo+Pj4+IEkndmUgd29yZGVkIHRoaXMgYXM6DQo+Pj4+IA0KPj4+PiAiUmVwb3J0IHVucG9wdWxh
dGVkIG1lbW9yeSByZWdpb25zIHNhZmUgdG8gdXNlIGZvciBmb3JlaWduIG1hcHBpbmdzLA0KPj4+
PiBBcm0gYW5kIGRldmljZSB0cmVlIG9ubHkuIg0KPj4+PiANCj4+Pj4gQXMgImV4dGVuZGVkIHJl
Z2lvbnMiIHdhcyBJTU8gdG9vIHZhZ3VlLiBMZXQgbWUga25vdyBpZiB0aGF0J3MgT0suDQo+Pj4g
SSB0aGluaywgaXQgaXMgT0suIE5pdDogbWF5YmUgcmVwbGFjZSAiZm9yZWlnbiIgd2l0aCAiZm9y
ZWlnbi9ncmFudCI/IEkNCj4+PiB3b3VsZCBiZSBPSyBlaXRoZXIgd2F5Lg0KPj4gTWF5YmUsIEkg
d291bGQgY29uc2lkZXIgZ3JhbnRzIGFzIGZvcmVpZ24gbWFwcGluZ3MgYWxzbywgaWU6IHRoZQ0K
Pj4gbWVtb3J5IGlzIGZvcmVpZ24gdG8gdGhlIGRvbWFpbiwgYnV0IEkgY2FuIHNlZSB0aGlzIGJl
aW5nIGNvbmZ1c2luZyBhcw0KPj4gd2UgaGF2ZSBhIHNwZWNpZmljIGtpbmQgb2YgbWFwcGluZ3Mg
dGhhdCBhcmUgbmFtZWQgZm9yZWlnbi4NCj4+IA0KPj4gRG9lcyByZXBsYWNpbmcgZm9yZWlnbiB3
aXRoIGV4dGVybmFsIHNlZW0gYmV0dGVyPw0KPiANCj4gRmluZSB3aXRoIG1lLCB0aGFuayB5b3Uu
DQo+IA0KPiANCj4gQlRXLCBJIG5vdGljZWQgdGhhdCAiU3VwcG9ydCBvZiBnZW5lcmljIERUIElP
TU1VIGJpbmRpbmdzIGZvciBTTU1VIFYyIChBcm0pIiBpcyBub3QgbWVudGlvbmVkLiBMb29rcyBs
aWtlIHRoZSBzdXBwb3J0IGhhcyByZWFjaGVkIHVwc3RyZWFtIGR1cmluZyB0aGUgNC4xNiByZWxl
YXNlIGN5Y2xlLCBzbyB3b3J0aCBhZGRpbmcgaGVyZS4NCg0KWWVzIHlvdSBhcmUgcmlnaHQgdGhp
cyBzaG91bGQgYmUgYWRkZWQuDQoNCkNoZWVycw0KQmVydHJhbmQNCg0KPiANCj4gQEp1bGllbiwg
QFN0ZWZhbm8/DQo+IA0KPiANCj4gDQo+IA0KPiANCj4+IA0KPj4gVGhhbmtzLCBSb2dlci4NCj4g
DQo+IC0tIA0KPiBSZWdhcmRzLA0KPiANCj4gT2xla3NhbmRyIFR5c2hjaGVua28NCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:28:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:28:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228734.395847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6Y6-00018k-VP; Mon, 22 Nov 2021 10:27:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228734.395847; Mon, 22 Nov 2021 10:27:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6Y6-00018d-SI; Mon, 22 Nov 2021 10:27:46 +0000
Received: by outflank-mailman (input) for mailman id 228734;
 Mon, 22 Nov 2021 10:27:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=smF8=QJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mp6Y6-00018X-Bi
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:27:46 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d37487e7-4b7e-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 11:27:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d37487e7-4b7e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637576864;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=FDZaJ9EAWt2OgQjeiHNFo+HsDFdoMHgiW7UX9EMOXR4=;
  b=HowklNIxvya0ShE19IWZMppilD0+pLYKczJgy5SbSdD10KKkhgdrQDMd
   VX2W24JWav/5u8CXQXUpDwXyup4VaJ0Ua52vxV5oICAxnf9fWzvo6FxRh
   vDZC+dmP/ffE2mUcWTx7F0WK1I4KR6+qmyszMla9xyzNDNGJ2XBa/Z4cN
   Q=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: snnKygqEmvtwD13lLsoaKOWQdRFMFm0mUxIW0+6fzcK8LagEInbEYKvcAAaatNE59G2Ld0C5Xr
 QZR+7mqnKqkzTkSTnj0LmAlvjctdFvo9yLxuWr9CM2TuU4+be9n9BDfevpmW8pmuN/KOqG9iC4
 HKX7mer/+KOk+eCODFTBUdVh9CbncKsfaDYWKfENz6gLhXSDFPHFakCaYVx+AV38NQipcqr3WQ
 q+eQU+ajq+SXugZPHLtqAWqVm/gukKujkCsDKOFhgcA++fziYZYqnWojG7iq6HnMhHF2N6HXoZ
 4VtQ/T6ySedjr3ju2DRdAPUq
X-SBRS: 5.1
X-MesageID: 58366002
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ZroW4a6yql5TAjS5BNpbHAxRtMTAchMFZxGqfqrLsTDasY5as4F+v
 jZKCzyBPvzbYTOhe95/O4Xj9R9Q68CHzoVgHgJl/Ck0Hi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NQw2LBVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z9
 9xS6byIWAkQN+6VlrVDDzB0GCNDBPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALNs7kMZlZonh95TrYEewnUdbIRKCiCdpwgWdr2J4WRay2i
 8wxcBl+TRiYYDB1KFoQLoIhnLir22nxSmgNwL6SjfVuuDWCpOBr65DvOtfIft2BRe1Og12V4
 GnB+gzRBRUXN8eWzzafxXuqivXShiPwWI8UF7qQ++ZjhRuYwWl7IBQQWUHh+aHhokG7UtNbb
 UcT/0IGvaU0sUCmUNT5dxm5u2Kf+A4RXcJKFO834x3LzbDbizt1HUBdEGQHMoZ/8pZrG3p6j
 Tdlgu8FGxRQuaLJaUqM+I6d7mq8aHZJBEMJZxI9GF5tD8bYnKk/iRfGT9BGGaGzj8HoFTyY/
 w1mvBTSlJ1I05dVivzTEUTvxmv1+8OXFlJdChD/Bzr9tmtEiJiZi5tEALQxxdJJN86nQ1aIp
 xDocODOvblVXflheMFgKdjh/Y1FBd7YaFUwYnY1RvHNEghBHFb5I+htDMlWfhsBDyr9UWaBj
 LXvkQ1Q/oRPG3ChcLV6ZYm8Y+xzk/O/SI69CqqINIcWCnSUSONg1HswDXN8Iki3yBR8+U3BE
 cnznTmQ4YYyVv08kWveqxY12r433CEurV4/trigpylLJYG2PSbPIZ9caQPmRrlgsMus/VWEm
 /4CZpDi40gOD4XDjtz/rNd7waYidiNgW/gbaqV/K4a+H+aRMD17VqKKn+p+I9cNcmY8vr6gw
 0xRk3RwkTLXrXbGNR+LejZkbrbuVox4tnU1IWonOlPA5pTpSd//hEvGX5doL7Qh6sJ5yvt4E
 6sMd8maW6wdQTXb4TUNK5L6qdU6JhisgAuPOQujYSQ+IME8F1CYpIe8c1u97jQKAwq2qdA6/
 ++q2DTETMdRXA9lFsvXNq6ilgvjoXgHletudELUOd0PKl70+Y1nJnWp3P86Ks0BMzvZwT6e2
 1rECBsUv7CV8YQ07MPIleaPqILwS7lyGU9THm/667eqNHaFojr/kNEYCOvRJGLTTmL5/qmmd
 N559fCkPa1VhktOvqp9D61vkfA06ezwquII1Q9jBnjKMQimU+syPnmc0MBTnaRR3bsF6xCuU
 0eC99QGa7WEPMTpTAwYKAY/N7nR0PgVnn/Z7OgvIVW87yhypeLVXUJXNhiKqSpcMLoqb991n
 bZ/4JYbu16llx4nEtealSQFpW2DI0sJX7gjqpxHUpTgjRAmyw0abJHRYsMsDEpjtzmY3pEWH
 wKp
IronPort-HdrOrdr: A9a23:oTU1b6tC6JRDCnkQnodg09Vo7skCkoMji2hC6mlwRA09TyXGra
 +TdaUguSMc1gx9ZJhBo7G90KnpewK6yXdQ2/hqAV7CZnichILMFu9fBOTZsl/d8kHFh4tgPO
 JbAtVD4b7LfCZHZKTBkXCF+r8bqbHtmsDY5pau854ud3ATV0gJ1XYHNu/xKDwReOApP+tcKH
 LKjfA32wZINE5nJfiTNz0gZazuttfLnJXpbVovAAMm0hCHiXeN5KThGxaV8x8CW3cXqI1SvF
 Ttokjc3OGOovu7whjT2yv66IlXosLozp9mCNaXgsYYBz3wgkKDZZhnWZeFoDcpydvfomoCoZ
 3pmVMNLs5z43TeciWcpgbs4RDp1HIU53rr2Taj8A3eiP28YAh/J9tKhIpffBecwVEnpstA3K
 VC2H/cn4ZLDDvb9R6NqeTgZlVPrA6ZsHAimekcgzh0So0FcoJcqoQZ4Qd8DIoAJiTn84oqed
 MeQ/003MwmMW9yUkqp/VWGmLeXLzYO91a9MwQ/U/WuonlrdCsT9Tpc+CQd9k1wg67VBaM0o9
 gsCZ4Y542mePVmGZ6VNN1xMfdfNVa9My4kEFjiaGgPR5t3c04klfbMkcAIDaeRCds18Kc=
X-IronPort-AV: E=Sophos;i="5.87,254,1631592000"; 
   d="scan'208";a="58366002"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=A2AaT/iAhPgRygMEAMyoR5PsfMWldD+0yBlloUUsD82B63JNZUeftbwU9ey4Bsgmh3sXoClIQApPDcGOsp3pD8GMuMDoLMFsW/xlg9/RIr9OQZjRMY0qhikJ7bekgZidSbeJvr1apbKE+IDPdpWCkKBaMx2yEDpPpMvonwKqBEPRC5mQeMCbGppGvcSfNtj6MPpXBNsF2OcRuK3KDtT5iRZpUKDLBeShR3pTqa42Z70MllhpsKgNiLV7jxSoztVKujgHMZm6RZiM3cDQygcg5JFNZpbcLQw1vhkgSXLlbsuxKA8BBfwGEPeQe41ChbMNFinC8bho+gcnyDpv/krirw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m/nvepAPp3RFIc7BRcUmfMMFIXAJf2aJx2Hgjj3ljZk=;
 b=h5WOMkY+YlQXphAXT4cthEdWAsCDTDRpX1pwZ/IEZTNgjfiKMbru+XZQL5jJS+EJfCMNGkDyeUxNiGw/5mmvuqKIW11KPBWXRsv7yJm4NFhSCvuDEhlfosWuAtEu5GLC/1oMNthXgnmXkqRKNDUdqagOQ8LahfwhMT99AwCJbt7bCDSsb0BomeQjjfzNykUP9p/qwJbieBYbNkxqiczIA1AE8hRbJTn/YqpV/IAAiyV5O92w4nyz+QjgLwPaL+Kw6tFyEJBbXJ7XUKtgG+uCBb+CSVWdy5PfUVz8qu2euGZsyr6WPoUUfUrshGHYfg19ho66Xlb7OEs8U1JxeObkkQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m/nvepAPp3RFIc7BRcUmfMMFIXAJf2aJx2Hgjj3ljZk=;
 b=Nnb8KHREkedL1KgpLtirF9h0E6hNMC4fJgNHinJ2G+Yq6thbF59dqQxszpXWN+Fs5Depm/B/I54O8DAAkR/Ja+0evdswfsfRk6DIBBScT9ZrL37oj7Ic6mSyAX6ULC5ZHNEslyESPjGNzcVkf108/v+Uo0LzLvv2Jf4pTavROrg=
Date: Mon, 22 Nov 2021 11:27:27 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>
CC: <xen-devel@lists.xenproject.org>, <jbeulich@suse.com>, Oleksandr
 Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: Re: [PATCH 2/2] vpci: use named rangeset for BARs
Message-ID: <YZtwj0OKrNaZ7s5X@Air-de-Roger>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <20211122092825.2502306-2-andr2000@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20211122092825.2502306-2-andr2000@gmail.com>
X-ClientProxiedBy: MR2P264CA0094.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::34) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e58c91c5-2387-4442-ec14-08d9ada2b198
X-MS-TrafficTypeDiagnostic: DM6PR03MB4844:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4844F81B11BB3F6502B741678F9F9@DM6PR03MB4844.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:605;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: lbeSTuAvbzLqLavtVHj6Z1hB56zs0oGvO5xK3lCYEdkKpiRe54lLO3SOLBlrpk8Pyb0/x+UmIoGRQYZwQwccHKBl1Ezw/G1r1aQSjZStfYdFiihyeaD8YuwTSEzaIyHGl9B/KkmDb9j0K0vUm2Q36jxXPuxseK/STACOOoC20JnXN2nLU3VmzHzyIh5NfAz4ynWlP4PoVuJgkStWtBu0xkgkDaWzMF170SiopJwltsrEp4g/fjalBG1zICUPgbFN0qVgDohP0+6SaKzC6avQvLPwpFYIT3wbAxrbl6P4bHW8Q8ixbPTjjG3hFhzbXxLYiDpG1kx0GdMZ0+x5Pu5rnA5AJzQX/OWkQDG3BxS8p6uDzs2AI+TuOtr5ygnMbPMJWo4KAEOzcT9RQ0mUREI/Dhy6M09hNpO5Lq+TmyJ8eKqN/y77i+aFP/+7EBGWJNGNz/NXfUuAoq18dDQGoI/xoU5mgWd3oL06i2adMbNXeonQ6Qq71Xsde4V8WSS6VTmjxY93lM81BHK7/bjfdLyOPXTE83JfsLUccUxNtN0SJyHUF3nuvgFZbsSChO55uzJVoUFcx4BrSAFtwSCbtsfPw0W8FHhHs/iI3NTuNZkPnhz3KsFTOOaSIZpcdxX+Lzs7xfwDJ/PlWgJC3lWPaeWDbQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(6666004)(6916009)(956004)(316002)(66476007)(6486002)(86362001)(9686003)(38100700002)(6496006)(186003)(8676002)(508600001)(66946007)(33716001)(5660300002)(66556008)(26005)(8936002)(4326008)(83380400001)(2906002)(85182001)(82960400001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?V3pPSktRcCsyeXlsVWNtV2ZFbzJNVTY3RmxYNVlOSDhMbFBoTkZodWtLRFBV?=
 =?utf-8?B?QUpvY1lid0k0cGZZR3VOd3RVZmhDcVY0d2FQQ2xaWEhOU2pwNStmSkZzbVI0?=
 =?utf-8?B?SlZiT0k3Nkg0cWl6a2lMamNjUnM1Q0x4UlBWL0pTUStPQVJ3UHpsbURnNUpH?=
 =?utf-8?B?SnZ1LzkwUTJuVjMxR2x5bEpQNDFoa3dmTC9va1NGT1NtSEV3K2U2dVhFWEVB?=
 =?utf-8?B?L2Z3UnpvK3oxTFdyM0lQOUJCcENkOUJWWWpvYzhtRlpxOTc1UWliUE9td1d5?=
 =?utf-8?B?a0pOZ1p5K1FPZFZ3OFlVMlQ1UngzMzcrOEhmVnl2T1d5TURSOFViVnlYSEly?=
 =?utf-8?B?a3FtUmViWVVtdWhUcktvZENVU3g4WXVXZllvLzlVYXArOWdRcjdwMUoxbmh0?=
 =?utf-8?B?aGZoUnJnaUZGMUF3V29SMmJPWkwrTTNwMHhVUDRhWURkaWVrWEg4T3NXZ01V?=
 =?utf-8?B?ZXhxZ2pYWHBhZytsakVpS0Z6T1lOUkhydGVxbFRZM1AzQmhoNFM1Y0NYaldH?=
 =?utf-8?B?TitPOTNHMUdBRE9HdVEycUpMS0lBU0Q2YU03SlNqR2IxYzNMYTBGSHUxSW1X?=
 =?utf-8?B?Y2pkMmhzczU4MldEL2Nsb1RBKzJNdDlGRGRLUUIwZXR3T3RpOFVnWlVYTnpN?=
 =?utf-8?B?ZUFvSlNCRXB3c2FqN0dIckU1WXhmaGdTaTBubllPRlpqT211U2ZpZGo1RWd0?=
 =?utf-8?B?S3VKQlNqNStwYWs4Z0o5RXEvSDBCZ2xSS0FhUkJpek8vWC9oUUxvem5Ca3hI?=
 =?utf-8?B?dWJVWmkwSzhmc2hPMG82anBadHQxeEhwREFSUXBxOXU1bDlTRS9Hd2FXeVlZ?=
 =?utf-8?B?cnlqS2ltZ3ZrRHRXNGxnZjZhRVlXMkhUU0xDQUpmVXZ1VVBSSUZYeXk3cTVw?=
 =?utf-8?B?eEVqOU16bDBCSFZZbTAzMWpTYjl5S242L0FCamE5ZWw1czcvU2NteE03ZFpG?=
 =?utf-8?B?TVVJUm44TlhrWW9zcm5sWHdpNXFodU8yd1A3ZG84WWtPRi9aYlo1Z0h3S1di?=
 =?utf-8?B?b25lYXhLWFFnZnFEZlJYZWN0d2RaY2x3TE5ZZ1pBM1RUbkV2RmpPLzZsVU5Q?=
 =?utf-8?B?Q1BRbTd6d2Foemlmam9mNitaYngwdHBuejR0Ri9sTG5RbFRkMEwzaXpjblJW?=
 =?utf-8?B?Z0FHdU4zS1dUbGNkdWxFai9TR3c2SmJlb1JFVzZqUmxZL3JvNXJvdGFMVTNK?=
 =?utf-8?B?YktjbjloaVpTN1E5WW53c3J3Z3pIQnpyZFRqejMzQUMway85Ty9NOVhVT2FC?=
 =?utf-8?B?NklmMXE1QlhXN2xSaDBaUGdNZ25GZWFMcmZyYlBhWFFiZnA2SkczUjdXZ0Mx?=
 =?utf-8?B?aHdYSTVFU0h6T2tKNys3QmpqY1hVeFp0cmhRSHJ2Um9FMjlrNWlMaVhoNVpJ?=
 =?utf-8?B?Q1U0T3RDY2dIWGN4Kys1YndRTFFiWXBoSTlIUDhla0duM20xcStyOXZaa3FC?=
 =?utf-8?B?dmRQcnF2UE45dFNGTG9RbGZIWDBNYVNENE9PSUY2dUZGMVcxendUV3hSUzQz?=
 =?utf-8?B?L2xsSDdDdjJzZDVTMkRub3VpN1N3M3IrR1Y2ZlVKN1QvbnhDK05yVWJCNnZw?=
 =?utf-8?B?MFMzQ1Q4a0MrUVVGaWc3SHRGSEE5YUsrS3g4d3o4anhoektaVFB5UHhTeUN0?=
 =?utf-8?B?MnRjdExOazlQb3Q2dE82WVpqYkJ6all0WjdlcFY4ZUxQQzBVV29SWmZBQ040?=
 =?utf-8?B?UUlUSG1aMFpvaGtCNU1VQ0pydWlVdWcrL2R0Vy9TVEpLaXB4Y1VtUk5XcUlo?=
 =?utf-8?B?dzZXNWFOV0RjeDZHSU9KS3cwWkFTS1R4eFBDeDNCK2wrNER1dklFRGNBakdV?=
 =?utf-8?B?bXNmbjA1SXhyTVRSMVFKQmxqVGNkR0ljMU1VRGdoRzA2dUNPMkI1THcyby9n?=
 =?utf-8?B?cTJ2VUxQQUZlaVBhSnRqVEtBeHZIUUNMd21JdklhZHNqUGtYa2pNN0pIc0tq?=
 =?utf-8?B?VXdZUnRobHRnZ1h1eXZKVENuTVlNSU5vbzYybXpVMW1CeHNyeTNTVzJhM0c4?=
 =?utf-8?B?SE9LSjUwRERDcmlIQUZwQ05tZ3NUeDlsR1FEU25qUU11clVHeUp5RmpaNGJO?=
 =?utf-8?B?MnZwNlVoSlBQd24xMTVhTEExdEx6VS9LTU1JTEV6WnVwSys3L2R2Ky85R2do?=
 =?utf-8?B?aGpTNU5ZK1RseEI5akFlSGtPemZpZStnM3YyenMwZ3A5Y2ZBbHJJSGZIZHlx?=
 =?utf-8?Q?2dxtQ3u8AWLiN7FxWDEtL8Y=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: e58c91c5-2387-4442-ec14-08d9ada2b198
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 10:27:32.7473
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AB8WwNgbQLY4Astgkgw+sd/x7S19pEH/6uhWiKNhRgnBBzqbrGQkO13LkkvL/ohi0hkjGgCGrncp5ujQDU6wIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4844
X-OriginatorOrg: citrix.com

On Mon, Nov 22, 2021 at 11:28:25AM +0200, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Use a named range set instead of an anonymous one, but do not print it
> while dumping range sets for a domain.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> ---
>  xen/drivers/vpci/header.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 40ff79c33f8f..82a3e50d6053 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -206,12 +206,16 @@ static void defer_map(struct domain *d, struct pci_dev *pdev,
>  static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>  {
>      struct vpci_header *header = &pdev->vpci->header;
> -    struct rangeset *mem = rangeset_new(NULL, NULL, 0);
> +    struct rangeset *mem;
> +    char str[32];
>      struct pci_dev *tmp, *dev = NULL;
>      const struct vpci_msix *msix = pdev->vpci->msix;
>      unsigned int i;
>      int rc;
>  
> +    snprintf(str, sizeof(str), "%pp", &pdev->sbdf);
> +    mem = rangeset_new(NULL, str, RANGESETF_no_print);

You are still not adding the rangeset to the domain list, as the first
parameter passed here in NULL instead of a domain struct.

Given the current short living of the rangesets I'm not sure it makes
much sense to link them to the domain ATM, but I guess this is kind of
a preparatory change as other patches you have will have the
rangesets permanent as long as the device is assigned to a domain.

Likely the above reasoning (or the appropriate one) should be added to
the commit message.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:40:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:40:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228741.395858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6kL-0003KF-4Y; Mon, 22 Nov 2021 10:40:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228741.395858; Mon, 22 Nov 2021 10:40:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6kL-0003K8-0m; Mon, 22 Nov 2021 10:40:25 +0000
Received: by outflank-mailman (input) for mailman id 228741;
 Mon, 22 Nov 2021 10:40:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=smF8=QJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mp6kJ-0003K2-DO
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:40:23 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96b15cd7-4b80-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 11:40:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96b15cd7-4b80-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637577621;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=PWnlmQAyqJANGP6mdsBrEbk9NfHx1x93qoMQ0d318Wg=;
  b=HA96FdnqKTUIHlNM2lMMwNekuIOmWW3VOVXYks231m+Q7zssLAMc84G6
   5lJ/DhUUUcJ+xMCbdi6lJbDr4rNC7HN3QDVvjRQuaOB/YvzEBA92aTsSi
   8o+P99/LWmMb8WP0nHn3Qrj+avCFFslh6mvY//uOkC7JL/ka0OZLdWxRJ
   0=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: RSJPEdZt3xWTDEpjut695opzrFULlV7qEvTSzznshOLmkNNTnLG8lVVQ+Q8JcLGMaXqpVe78jc
 ocH9wT+iPb/uv4zPpmGOwjxHdSsTnMH/KJ0oekrRjQUOTdv2GA/6FBpyg6c8to6s1Eb9VOSSYi
 RiNbSrfpKMcTcTPIGyn617Z356/l3N/JhKSXogMWEWPAn4TmrQc5V0USCkJJEo/JlL07sXuO5t
 lbjZ0bRQ2+u7q/8ry84G+3yN4kJF4TshM7f9swtw3rZOysDVEx70/QwDzO9mjU8pbxwyZUYa3J
 nfI21EXq1g4Jk3tw7OE4XQng
X-SBRS: 5.1
X-MesageID: 57865401
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:UplfzaxozdrXdFAWlPZ6t+cmwirEfRIJ4+MujC+fZmUNrF6WrkUBm
 zZNWD3TPPvbMDSgfosgYNuz8hkCup/RmoNgSgdt/yAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRj2tcAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt9lyx
 ZJjkaLpdSx3B6PNw/8NDR5cKQgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYIHjGlt2pgXdRrYT
 9ZJS2BETAbDWkZCEEUnDpYSnrj2g0CqJlW0r3rK/PFqsgA/1jdZyLHwNPLFd9rMQt9a9m6Co
 XnM5WP+ARcyPd2Zxz2e/3nqjejK9QvhUYIPEPuj9/hlgHWa3GlVAxoTPXOivPC/zF6jA/pQL
 kUV/mwlqq1a3E+sSMP0U1unoXqHlhkGUtFUHqsx7wTl4qnZ/QefQHQFRzhpado6uctwTjsvv
 neMktXmFSFHu7yOD2+F+7GS6z6+JEA9KGYYYCYeQAgt4t/9oZoyhBbCUtZiFqGuitT/Xzr3x
 liisCk7r6Uei4gMzarT1UzOhju3joTKSgMz6RTaWiSu6QYRTJGhT5yl7x7c9/koBJieSl6Nr
 X0Vgf+U5eoFDYyOvCGVSeBLF7asj96fKz3GgERmGrEq7HKw8XXldok4yCp3IVpkNoAYeT7ja
 VLXpStc4oQWOGqta+lweY3ZI982wLfpD8ijVvHQYtdEeJF3eCeL+ztoaFSP2Hruiw4nlqRXE
 YyAbc+mAHIeCKJm5Dm7XeEQ1fks3C9W7WHOQ9b9xheu07ubbVaUT6sINB2FaeVRxKmDqg/E/
 s1fM8aPwhN3X+j3Yy2R+okWRXgAIGInH5nwp4pSf/SaPwt9MGg7DrnaxrZJU4Bqk6lajO7g4
 mC2WkgezkH2w3LAN22iYXB5aajzWo5/oGh9ImonOV+y2FAsZI+u6OEUcJ5fVbIg8el+y/9oX
 r8AcsOJDflVYiTK/SwHapvwp5Akcw6k7SqeMizgbDUhcppIQw3S5sSibgbp7DMJDCe8qY05u
 bLI/grfQIEfTgV4SsjMYfSkzkiZonQW3ul1WiPgI8ZRUFXh9pBwLC78heNxJNsDQT3BwSCak
 RmWAAsVpeTEr6c598PPiLqbqJ2qCK11GU8yN2vR4KuyNCLa1nG+2oIGW+GNFRjfSWf19aOKd
 ehTifbmP5UvnllQtJFnO6121q947Nzqz5dWxxppNG/GZFOqDvVnOHbu9cVBv6JCx7hduCOtR
 1mCvNJdPN2hNcfoFldXOQQka/iY2O8dsj7I5P8xLQPx4yof1LGOS0lVMjGHgTZRK7YzO4Qgq
 drNo+ZPtVb50EBzdI/b0GYErAxgM0DsTY0utZxdLqvV0zYAlGhMYMfHGnHx5KumPoAk3lYRH
 heYg6/LhrJ5z0XEcmYuGXWl4dexlajiqzgRkgZceg3hds7tw6ZugUYPqWhfohF9l00fi4pO1
 n5X21qZzElk1xNhn4B9Um+lAGmt7zXJqxWqmzPleIA0JnREt1AhzkVgYY5hH2hDqgqwmwS3G
 5nClg7Yvc7CJp2Z48fLcRcNRwbfZdJw7Bbev8usAt6IGZI3CRK83PTxODBQ90G7W55p7KEim
 QWN1LwuAZAXyAZK+/FrY2Vk/ep4pO+4yJxqHqg6ofJh8ZD0czCuwzmeQ31diesWT8EmBXSQU
 pQ0TuoWDkzW/H/X8lgzWP5dS5cpzaVBzIdTJdvWyZsu7uL3QsxB68mLqEATRQYDHr1TrCrKA
 t+LKm/ZTDXP3SA8dq2khJAsB1dUqOIsPWXU9Ou07P8IB9QEtuRtels1yby6ozOeNw4Pwv5el
 Fmri3b+w7MwxIJysZHrF6kfVQy4JcmqDLaD8RypssQIZtTKaJ+cuwQQo1jhHgJXIbpOBIgny
 eXT6Ib6jBHfobI7c2HFgJ3dRaNH0tq/AbhMOcXtIXgEwSbbAJ3w4wEO8nyTIIBSlI8P/dGuQ
 ga1MZPiddMcV9pH6mdSbixST0QUB6jtN/+yriKhtfWcTBMa1FWfft+g8Hboa0BddzMJZMKiW
 lOl5a7264kB/opWBRICC/V3OLNCIQfuCfk8atn8lTiEFW300FmMjaTvyEg74jbRB3jaTMuju
 cDZRgLzfQiZsb3TyI0LqJR7uxAaASovgeQ0eU5Bqdd6hyrjUTwDJOUZd54HFotVgmr505ShP
 GPBa24rCCPcWzVYcEqjvIS/D1nHXuFeaM3kIjEJ/l+Pb3bkDYyNN7Jt6yN87iokYTDk1uymd
 YkT93CY0sJdGX21qTL/PsCGvNo=
IronPort-HdrOrdr: A9a23:GKRQmKBkovAatH3lHehLsceALOsnbusQ8zAXPh9KJyC9I/b2qy
 nxppgmPH/P6Ar4WBkb6Le90c67MA7hHP9OkPMs1NKZPTUO11HYVb2KgbGSpgEIeBeOiNK1t5
 0QC5SWYeeYZTMR4LeYkWvIYurIqOP3j5xA7t2uqUuFIzsaD52JuGxCe3qm+wBNNUN77d1TLu
 vo2uN34x6bPVgHZMWyAXcIG8DFut3wjZrjJToLHQQu5gWihS6hrOeSKWnV4j4uFxd0hZsy+2
 nMlAL0oo2lrvGA0xfZk0ve9Y5fltfNwsZKQOaMls8WADPxjRvAXvUtZ5Sy+BQO5M2/4lcjl9
 fB5z8mIsRI8nvUOlq4pBP8sjOQmQoG2jvH8xu1kHHjqcv2SHYREMxan79UdRPf9g4JoMx8+L
 gj5RPZi7NnSTf72Ajt7dnBUB9n0mCup2A5rOIVh3tDFaMDdb5qq5AF9k89KuZPIMvD0vFlLA
 BSNrCf2B4PGmnqKkwx/1Mfj+BEZ05DXitvGSM5y4ioOzs/pgEO86JX/r1Zop46zuNPd3Bz3Z
 WyDk1ZrsA/ciYoV9MOOA54e7rNNoXse2OFDIvAGyWtKEk4U0i936Ifpo9Fot2XRA==
X-IronPort-AV: E=Sophos;i="5.87,254,1631592000"; 
   d="scan'208";a="57865401"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mn+IKA+vWpVTkMQwqm40JHthSqyZn55acFr/3sZP64F92Hfb0KR3Tw7th6ocKuSSFhkFanj/iQQ5jmMCqHyIQgP1c05SHmGGpHT5EtGZNHLuGdyRZDb8lCxZpaZ06mFbogv5fWdEal3TtPj4ZtONWWiQaYWiD+9iyeDzZ2D7WYJxyiK5fTjZ+jsMMs5DAMTkUghSywJp3xKmk6H3bDp6MFPUPm80xmDSuQCafQ6jsXl0OpklwvJxzqeqSGCBYuIgX4m6jasNt4x2Am6mCexwLNJksdf8q7NtAGoBlUlqfvTTvVNOZ/vRTXP5usCPqHJ7qiL8ZCbnPeAU9XrWvrzN8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NnohVBjwm61/g4wclhhgeC3O/w7YIUdKUBYrErdDf4M=;
 b=ZSRtZPmiCTauCzh8v/Z5CFFRFqaDByzOMDIvcFSjjd+jxKNLlsWeaZaMN8lGw8FhnJrVQIdeIs3/9H1JzznrRkHWgoVYfIvxLcG15YzeK7w7sukoSf8l9Ee9VfKMvx+t4ted9Bsi5ZO2xFVQUiOpeD+jer+Q+rBeTiMcAJHRoEwQ5MzHjdkbX6g7wob/KYEj0Toqed7+9pLQOf0PLLOGVjWM0++LzZBj3f35ZgF6UTMixzl6VC8l+0ee5/spyg6LrdHqjFKa+pv1781A0wgmVgHXygHqN+241S/r0fkJ5JfedR/zwTzfDn76nYsKob/SlpZsGj+yP/+hu+UzLPJglw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NnohVBjwm61/g4wclhhgeC3O/w7YIUdKUBYrErdDf4M=;
 b=eHqocoDDGzitSrgjxGBqk8XoyFuRnry33r1ZJ5IIMSQdtysIStg3JCned/CR0eiY22NxKUfTJuTdc4cBlrZJXHmRl+jGzqfgE5cVDpTiNX/49co9277l6aCLMsicIgw+2vdvJxDZqds03v5u69CkVk+eQ5bKPmq5wLe0wjey1/o=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Community Manager
	<community.manager@xenproject.org>, Ian Jackson <iwj@xenproject.org>,
	Alistair Francis <alistair.francis@wdc.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Josh Whitehead
	<josh.whitehead@dornerworks.com>, Juergen Gross <jgross@suse.com>, Julien
 Grall <julien@xen.org>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, "Nick
 Rosbrook" <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Quan Xu
	<quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Shriram Rajagopalan <rshriram@cs.ubc.ca>, Stefano Stabellini
	<sstabellini@kernel.org>, Stewart Hildebrand
	<stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	"Wei Liu" <wl@xen.org>
Subject: [PATCH for-4.16 v2] CHANGELOG: add missing entries for work during the 4.16 release cycle
Date: Mon, 22 Nov 2021 11:40:05 +0100
Message-ID: <20211122104005.58897-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0050.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:31::14) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6b6fb7e1-e0c6-408b-7943-08d9ada47831
X-MS-TrafficTypeDiagnostic: DM6PR03MB4298:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB4298CB4FD5AB95CF152859B18F9F9@DM6PR03MB4298.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: npQKb6c4xjgv4YfjHBlHFEdSIlipJNUGSh5BRg06bUYyCU8bvXPk5OiVItqNFXcUzV6KBUD7oMDmrwLiCr17nsgsvsuQmPgkaQIMlo58E1DlHeiOUDAL4d6t16qBaH0bSEHJJW1FtiqGtLrCrlM07g2O3nwduYfyi+Rsc9/IFBhF/gC2/DDNimxmNvZ6fNPcLvUl7l5WTmdTxPls3kvGHZcFrqF08bhPdaEE0TtVxD5xlNEQj5+0w28XSz0+OksFX66XtwQxIUubZK2E0pIiKvNijphIC0SygynQjjRamDBlXS//7MD5imfU+8i18BkEJYMt4nqH0f0ATEqJANV3BBy4zcYfaxpuMRNhSmQy50gpvjAVTjvzRBD8HUzrhGSalMQR0CZP+W4r5qxGQ9ZwxIkEPzDuxqNBd0UZh+QhqIS3mzOB8cB98oTGUH9w7XB18AaC6w1bF0TpbOeDFbQ1GZOhGiNHKAI4HDzin268HHgce9Y4f3od5xKtMrsD6td0kGcV2F/TLbR1etHZzlJCM9NwpVLh8B8AwBqxwaVs37MNz7BXtj5lFJ9hkfOF1uQoHGDp+I/KIomvkriCdtTiVuC3TwxQxP4mEkmg9L9c/NCezYFoX5g0bri3HIXn52wHGQq5Yyp7iVIMUpnv1FBLrP49ntVOHBOYvd5T10uP78WTj41qSVg9zoJhg5JPjh/pH//bvYD8iK9v+QD9Ko7SVrFbeL8sEpexh4/rrXpGI+xriLTHTs7EsqCwpzgD5WdXRXusx/BAYE9+xdPwaTw27lY9OkXPSiGwYMFcmkE//x/ujntL4gr/IervWJcGI+tjIpjYz8xMS5azAZPiFVsOrDgZMgriABos7bZlhI4K42XWAVYLCJbzLWZOgB/CYOSH30ys7I6Hx4yOkL+v3HzjMw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(36756003)(66556008)(66476007)(66946007)(54906003)(6496006)(86362001)(83380400001)(1076003)(38100700002)(508600001)(6486002)(956004)(2616005)(7406005)(6916009)(7416002)(82960400001)(2906002)(186003)(316002)(8936002)(5660300002)(6666004)(8676002)(66574015)(4326008)(26005)(207903002)(219803003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dmtpbFc3Qit6SnpxUm1KeTN0aVl2bHVYVlR6MTFOeGUxckEvMGFOZitpcks4?=
 =?utf-8?B?NnNwTGtxVjE0N3NZYUxrTFNseERyNDE5U2tXMDJCK1JkMkZQMG9ldDFJWTlF?=
 =?utf-8?B?ckxFUW1zMHhQNEZpUkJHWVplb2xacGpNSXhuMUJFc2FCQlVac0lJQ2NvUWh5?=
 =?utf-8?B?Nlh3UUFNOHhqMlBiS1hJZ01XYkNVQ0p2bVErRmdONEsxM1REWE5IN2lNUWR2?=
 =?utf-8?B?N0U0TGVDam1WWVk3Z21qaHV0TFpUNHlDSFlhOWNLS0xwSExUQ1JFUk9td0NY?=
 =?utf-8?B?cDhhTXpYa3FUV3U0THAwbUNUOU83YzF0cmpmM2dmUnV5RHU3Qm8yNjBWSlhG?=
 =?utf-8?B?YWZmUExRdWMvNlMrbGVZeVNtemhBcHRjcy92MGhKWGpVUVVOK2I4UzRiSTNZ?=
 =?utf-8?B?OTZ3SzVnakFrVE8wbHE3QVJuZ3F4VFk1VFhTbDJnZ3BzS3RiS09xczJYZG9t?=
 =?utf-8?B?SnlUalU2UnBFYWV6UjBCenA3UVh1VFN3bjhHYkpmU3pVQjdoN3F1NVBUWGM0?=
 =?utf-8?B?MWR2NHFyeWg4bWFlZE42SVphR2ZyRVR6SXl6TlBaKzd2cHNRMHVvMVRjallw?=
 =?utf-8?B?QU5zaDhoNG9va29kYjdSUDFSQ3JYS2haN2grcS9XZ1N5V0gvb2piazVGU2dv?=
 =?utf-8?B?dlhRTXBBeE9nZHRhNksrUDZXbUx2NEwvdHV3cTcrbmF4WVFOenZXdnJ3TVY2?=
 =?utf-8?B?aWo0dUZlTjdPNThDUW8wRFNJNURRaHdQQUJCa3I0bGVGQkRNZDBDME1IT2Rk?=
 =?utf-8?B?NHM1dWhVdmJOL3RHREduNGxNdnBwWWtGMWRaK21SZ1FPaThmN0piREpxOGxt?=
 =?utf-8?B?RXQrRmtVQW1pS3FrTGlQaWorV001SHBqdmxiQSs5THJveGhQNDJHWldRVElD?=
 =?utf-8?B?NVcxSnEvTDVWcjRoV2ZDK1QzU1dCZWxTRW04SGN2TlVuZnNzZFdFdlVHZUNu?=
 =?utf-8?B?amY0ZFA1WlpGQW52WEdXekxrVTAvWG5yZmg1NExDenlEaitIOHVOVmpxeUVo?=
 =?utf-8?B?VGgvbVdqSW9oYmFxV1ZVa0Z6NVpDOXozVDRjelNxd21Sc0lhcG5PZm5jR0N3?=
 =?utf-8?B?M20zRUtUdk13a05aRDRDb2RXeHlXVEZ1VXRtazRYNjEvY3IyR2JweUFvYW43?=
 =?utf-8?B?WUc5dGtZblU0a3lmR1UzK3lYQlo5SG5ob0JIQW1ZM2lJNXZnaUpRUmFZVmNN?=
 =?utf-8?B?eTlYU2pOVmo2MkoyZnJBZWFZMTVoQXVPUTZRZnJycnhuS09SZzJ0cktudUIx?=
 =?utf-8?B?YWhxWFI1ZjY4eWhGcHVIZjZFL0xmbjRKaFZBSlhYdXlXUU1LdlZjVmFwV2Nm?=
 =?utf-8?B?TzJFbXEwYTJ5bnNvS1pNVVBoNWwrSmlCTXkwVmlJUzBpV1g2b2gzckxwTkV4?=
 =?utf-8?B?dEQ0N3FnUCtnaUhsbDdFVzlkRU5adG95TEtxbmRQYkxwdzh5RmV0STBWd2Yr?=
 =?utf-8?B?UVU2Y2VvbzlVU1NWWW5laUxVekhVL1JyUWxOSXkxMWp1aWl4a3FSZEowNE9v?=
 =?utf-8?B?TFNKcStrazFLaUthMmRTY1gvaURsOGdaSmt4MXkycDc2Tkg5V1hlandUd25m?=
 =?utf-8?B?OGt2M3VhWENtUHp2MjNWM3JxR3ZWK3pabW9BbnJ6NXd5SVBtWnhBL1c2T3NJ?=
 =?utf-8?B?YU1LRXpSRnhWV1ExSHRrbzJDOUdrYThja25NOVB6aEdtU2gyWkcwQUx3TzAr?=
 =?utf-8?B?d2dtRHlnUCtWaUNJdGdxNk1Edk5jdVlnb3BzcVdvUytGUFlLVkZkcFZiTjBW?=
 =?utf-8?B?REpkS3ZyTXJsWC9TK3VrY0JVTnQxKzF3TUxIUWFHSEZibjJNR0ZKdkE4Mm9J?=
 =?utf-8?B?Q24rSHlRMDNDOFlDNHJmbE04eHdIaGpwdEtoUXdHSENmUHF6YmZYa1lLZEpz?=
 =?utf-8?B?UnBZWmZpaENmZURGTnBEek0vYlNTS3NVY29KTFoyVnN0ZVJrUXNTckVxRFJF?=
 =?utf-8?B?ZzFvMzY1TGp6R0VuMTc2VWt3MWRSN1hYbURiYUozOWRmRnRDTG9ETXY2cmQv?=
 =?utf-8?B?ZUUwYVFJa0FTZkpOL2V5eldYcTlHRE5ESUZLd3lDR2EzVzBNVyt3THprcktC?=
 =?utf-8?B?SzNIR3p3SE82dGdmVnQrNEZiY2FieHl1V3Yza2hzbE1VYVhXY09PN2ZOcmZy?=
 =?utf-8?B?R2tuaDh0cHdnNHUzSG5qd3JzVjJZazRRazdYUi9rRys4ekEwSW9nL3RwZnQ5?=
 =?utf-8?Q?t59QrmrT6Igy3KanjD3nrJg=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b6fb7e1-e0c6-408b-7943-08d9ada47831
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 10:40:15.3729
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TkwX/Ebap4jcqfqoLaExAWxtZ6HqurUQS/PQ+maTSVQxcxjIuyU/BH+Nch3N+yIo0qlW8H1bnuKvrI1KeUpLig==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4298
X-OriginatorOrg: citrix.com

Document some of the relevant changes during the 4.16 release cycle.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
---
Changes since v1:
 - Add qemu-traditional and pvgrub notes.
 - Expand vPMU support to note it's limited.
 - xenstore library API changes.
 - xencall2L addition.
 - gitlab CI changes.
 - dom0less improvements.
 - vGIC fixes.
 - New Arm features.
 - OP-TEE fixes.
 - Arm64 heterogeneous CPU support.
---
Cc: Alistair Francis <alistair.francis@wdc.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@citrix.com>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: Bob Eshleman <bobbyeshleman@gmail.com>
Cc: Christian Lindig <christian.lindig@citrix.com>
Cc: Christopher Clark <christopher.w.clark@gmail.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Cc: Dario Faggioli <dfaggioli@suse.com>
Cc: David Scott <dave@recoil.org>
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Cc: George Dunlap <george.dunlap@citrix.com>
Cc: Ian Jackson <iwj@xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Josh Whitehead <josh.whitehead@dornerworks.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Jun Nakajima <jun.nakajima@intel.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Cc: Meng Xu <mengxu@cis.upenn.edu>
Cc: Nick Rosbrook <rosbrookn@ainfosec.com>
Cc: Paul Durrant <paul@xen.org>
Cc: Quan Xu <quan.xu0@gmail.com>
Cc: Rahul Singh <rahul.singh@arm.com>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Shriram Rajagopalan <rshriram@cs.ubc.ca>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
Cc: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Tim Deegan <tim@xen.org>
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Cc: Wei Liu <wl@xen.org>
---
 CHANGELOG.md | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad1a8c2bc2..4652ced650 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,32 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
  - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
    no longer be built per default. In order to be able to use those, configure needs to
    be called with "--enable-qemu-traditional" as parameter.
+ - Fixes for credit2 scheduler stability in corner case conditions.
+ - Ongoing improvements in the hypervisor build system.
+ - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
+ - 32bit PV guests only supported in shim mode.
+ - Improved PVH dom0 debug key handling.
+ - Fix booting on some Intel systems without a PIT (i8254).
+ - Do not build qemu-traditional or pvgrub by default.
+ - Cleanup of the xenstore library interface.
+ - Fix truncation of return value from xencall2 by introducing a new helper
+   that returns a long instead.
+ - Fix system register accesses on Arm to use the proper 32/64bit access size.
+ - Various fixes for Arm OP-TEE mediator.
+
+### Added
+ - 32bit Arm builds to the gitlab-ci automated tests.
+ - x86 full system tests to the gitlab-ci automated tests.
+ - New x86 pagetable APIs.
+ - Arm limited vPMU support for guests.
+ - Static physical memory allocation for dom0less on arm64.
+ - dom0less EFI support on arm64.
+ - GICD_ICPENDR register handling in vGIC emulation to support Zephyr OS.
+ - CPU feature leveling on arm64 platform with heterogeneous cores.
+ - Report unpopulated memory regions safe to use for external mappings, Arm and
+   device tree only.
+ - Support of generic DT IOMMU bindings for Arm SMMU v2.
+ - Limit grant table version on a per-domain basis.
 
 ## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2021-04-08
 
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:41:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:41:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228747.395868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6lh-0003yb-Hi; Mon, 22 Nov 2021 10:41:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228747.395868; Mon, 22 Nov 2021 10:41:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6lh-0003yU-Eb; Mon, 22 Nov 2021 10:41:49 +0000
Received: by outflank-mailman (input) for mailman id 228747;
 Mon, 22 Nov 2021 10:41:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp6lg-0003ql-5L
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:41:48 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cab77178-4b80-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 11:41:47 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2052.outbound.protection.outlook.com [104.47.0.52]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-39-hj2D4csqN4242BEsXaKC6g-1; Mon, 22 Nov 2021 11:41:45 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5743.eurprd04.prod.outlook.com (2603:10a6:803:e0::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 10:41:43 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 10:41:43 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM0PR04CA0089.eurprd04.prod.outlook.com (2603:10a6:208:be::30) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.22 via Frontend Transport; Mon, 22 Nov 2021 10:41:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cab77178-4b80-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637577706;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=903V5XqFxwppyZ+F1F1M2UDREa8nuIivWzixj+CU9Ic=;
	b=ZWhvuf5cz1b3hB8GpBWZMpofEAQC0fBUKFpALmO7vkPdElH3TKCTfGMD/V05OUkX+Hc9bO
	KqS4NaYEdSBPZydo0AZUe2itrSlvJxN+/bub1+qrtCmD5rp23KGj+5VpiEgDPfYkp5hAOq
	R9hHf5hENOnVg4YeeSperYgVTxUbZaI=
X-MC-Unique: hj2D4csqN4242BEsXaKC6g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KKCzgL1xlSSPYxBwD56BDKAwjYzUx1mqMtG5i/TEl5NmSuPnw4QPkCzNmzSoo+l2K3X+mr0so1UL9y2OHn0lxWXBml4DtkGtB+oB70aMqWuFRTcy6K4MQogGuX7awGN2hkWV+9shpdG0s8V0uFRGeecyFUscxgOv7SXdRZ4KqY8QTUz7kyY9sbqHGg7mHGM6uIc9IbuWdV6c2V1+rbV9d0s2UJHS6+1Ohw4P0TG2HHf8y91YzYu8x4Gswq02OsrrtGUXbkkeeVNm0VIpk4ZMss4GxsrytjRuGwIAR82Evz4TIM7UqZxFIY4gSMTSPyi81rxxP6RwN4DVHRvsEKqDVA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=903V5XqFxwppyZ+F1F1M2UDREa8nuIivWzixj+CU9Ic=;
 b=TZ5x6ut10FipeHCDajwSZLtA6po4EBLHjdwiYAtTz/wCBI8p+HjxAIuQiUwOx51E5iOfLGhZm6KAdJMAwgo82RG/0mgb2JoDpwseMgponhnPLC53EDhOi5wIxhRMdEiaBs1VuP3wT3s9JJ1fTfGlOzeJDHQV9n2BJdFiWzZdQ+/8tYHtVBpLThJ0BRIsqZxhdR+lIjYwguKAeLNNi33xoz8NC9ZzmlH9GPFjoYVxqhU1S3bVMq5f1Yq/RxptZXtiz1wBpvRjtiL+HrNSI58nZHzoSJi3QhOlwHkQpDDsK4eyz3isEnpC+pyqGfIoVEAhU7mKAdzA4CYaxgxmubZOOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <578438ad-dfb2-314c-6514-a2e72aeed091@suse.com>
Date: Mon, 22 Nov 2021 11:41:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 2/4] xen: add bitmap to indicate per-domain state
 changes
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-3-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20210914123600.1626-3-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM0PR04CA0089.eurprd04.prod.outlook.com
 (2603:10a6:208:be::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: db0b3e66-ac25-43c0-7aa3-08d9ada4aca3
X-MS-TrafficTypeDiagnostic: VI1PR04MB5743:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB57435A769D1DADD27FACC49CB39F9@VI1PR04MB5743.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	EB6k8NuVC6un1ogIVuZ28Ab0wQDH4OP7GpxUDsH2VnDN3+5xkE052gEGVHBV5uQACBdoOV7eemCBmgpFPuHVFzuNCc3X6agymZW3kM+cw7Q+wv3gmVveVdy0Wt+v/TV4KBjxRQXr1FKvVEb5v+27ICKR+tJ2JI8+rq0kzHpgUNAwYApZVHacgjA5oe/1jhMQ7BIFGzyl13rIw+LNYc7JsOEfYzi2IAfqwDbTJgCSUSlu8+MyfHIrNpcGm9GAjnZ90jPefT1YPyMtY29bz7GRJdIlhEjLFftezcsT3K5DC37TKxJWsluqf1TZMwRW1IR7/XoQdExOfgknhczUeU+HqtR4kotRCZOkJZ8mXToqw/ILKP/m09ulmRqkg6rqLVoSNaL9ybDU6eFoOJyAkYaR3jsFE+fbSTFeaJaOJ5yaQBkdxpk69geC1ZRswrIoSbyLvWg/oPBqj0kfQZMu1vLevRYbHJK0A1L4BkFFcGGiW1BEZmnuU8EcRgoVoqa8A6wlN4N39cd4Ol+y4/cA9FHigd6BdP4N168dc8cBWiEdEGNi7KZmMxEjC1Iink9UjLy70GMAZh2hxabxhCZb0hl3i8hgh5ovvZNVp3MYDP4xb+WncVnwePRuc8q6c+cISmGuLehPFppL6/dxIGLHBJFhokoR0wiqQ2pJFMS9e3q5xulYV8u/UuRIeoYjJTkA4v4urNNsf10iAmDErylSFOCC2tU9CoUkV9Ld6HVUuuN0BSurGk+3Apm5rTtnMBCNxO5t
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(53546011)(6486002)(31696002)(66946007)(2906002)(66556008)(66476007)(86362001)(5660300002)(38100700002)(37006003)(83380400001)(54906003)(6636002)(8936002)(2616005)(36756003)(508600001)(31686004)(186003)(316002)(6862004)(4326008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eGppZHV1Rnd4VUFvNXZaNkd6L3g0dGhBZTVQRDhxTnlLSjlMRHRrOXdiQ0c2?=
 =?utf-8?B?NTdoTDRLT2k5eUpkMlY2cnowcFkwS2dQT0pCZGs5ZFZubzA0bVVHRnA3bS9y?=
 =?utf-8?B?T3FIYXNPSHF0Q256NEVDbnNsOWU2NFpBUjhEVnZaNTgvSWVyQVF2MlFaa0lI?=
 =?utf-8?B?V2JQR0swUE5IWk1hbGJkM1o1TDV0VWI1aUY5QWNuYWJJaEdWOWsvRHU1T0hh?=
 =?utf-8?B?OVVvSUVaTmNuSHpEa1RpVFJsWXRYOVN4ZVcvUlc5aUlHT3dEOEhLZzdhd2Jl?=
 =?utf-8?B?MndZSWt4SkNJbVZGTkVlZ0w2eWNFQjk3eGUzTWYvOE9RU0FuRmNIOXpPS2FE?=
 =?utf-8?B?NklDVXVxbUtLRTd2eXlTb1ZscVVtTzhqVW1kVVpVU05UdWNZM0tEYVBsV25I?=
 =?utf-8?B?MGZKek5PMnB1clJkTE44bWFjNXliNkRXcTdhZXNmWkVsL0o2bFBNbDZTaGZR?=
 =?utf-8?B?WXZTSU1zbU9VNGc5bjNXK2E5djM3MCtLbFFwZzBocC9jWWlDbUVVK21SOWMy?=
 =?utf-8?B?UWdhK2JHeWJPa0tIbGhxMlJQVTJZWGpNVFRrZ3NBZVJpM3d2ZTVlcGdsRzlh?=
 =?utf-8?B?V094UHRmT3VjR0ZTZFpBU0pXamFraXU5K3lxdGQ5L0pGR1lsYy9qMVVOSlFV?=
 =?utf-8?B?RDhUZjdBUEhTVno5N01hMzZGVnB2d0JBMDR1RmdXd28yd21MWFRUNFZpZ3BX?=
 =?utf-8?B?NjUzbjJodWZLTkRVOUtlK3lSQVlIcUFHcW5rTEcvWlZBWVhwZGhQNzZXTnNF?=
 =?utf-8?B?dkUxU0h5N1Z0ZGF6ckVCazdzcHJ5K2FsaWVZQkFCOFBQZGN5QVkxSlFITDZY?=
 =?utf-8?B?MWZQeDZ6VlZoZ3d0V2xzMmwyczBTYWVKU0N0NDRJQ0phWmRJWjkvSm1WSkRT?=
 =?utf-8?B?WkpQcmtNWDZqSDVRM3JVWnFzd2NjQ0szYTVOUkU1RUVqS0twRXpQMlIvNVRJ?=
 =?utf-8?B?SGV4L3VnWHdZNWhMV2hYQ2hlMm93TTZFcU1SNzFybGJPNUw3b3hWb1ptU21s?=
 =?utf-8?B?ZmNRaCtOVzYvU1lqSkdEY1JUY2kvVS90REVlbWxpbTdZM04zL3N6NVowT2Zi?=
 =?utf-8?B?ajU4VXRiK3JPVU5nL2pWT21WMWRWT2FLMlRmU1ZmWUUxMVE0dG12c2NIQXVm?=
 =?utf-8?B?V1dyODZMMUtHK2F0YnQ3UW95R2dLby9ZUUFEaGZqSlJEM3ZKYnNkYm8zdG5K?=
 =?utf-8?B?ODV2dnNZT0ZtODRkaXFXWWVRdU9mZDBVYjBhTDhwNXVLdXRVeXdqMUdYd1ph?=
 =?utf-8?B?YjRzUG5FYytZSVIvUjhaK1E3dUN6endLa1R4VXI0S0plNnEwdDV1bTcyVkR3?=
 =?utf-8?B?NXdrSVRsMGI5b2JHRytYSG16bGdaQ3ArR1JiTWwrMisxR0RPckxNUHBVL01y?=
 =?utf-8?B?VURIK29hZTJzcWRpVHBvcktnMEZ4ZnEvTXBxUVhjNVJUcDBpaFNyaFhFZlV1?=
 =?utf-8?B?S0ZaSVVWYk5PK09VREhubjZpSW4vVzFqZmZkMVNmdTBmR25zbjNwNWJnemcy?=
 =?utf-8?B?ZzFJQnp3RFNQdTEyWkJYbGVCOHZiKzBqYWxJY2NBdXB6ajF4djlGci9BZ1BK?=
 =?utf-8?B?bGhGNHlFSThHTVltODBtL1BIMUJyOUZFWEFWUHpNeDVGSEtUdzFCd2QyQ2Nr?=
 =?utf-8?B?bGtCenB1dWtKL0JZWTdXR1krWkgzS3FKTnBuZDVzZWUzemw4dWl5bXFTaGVL?=
 =?utf-8?B?ZXdVWE92WEx6ZVRDQXNzdVRqRlU3aHExZTlncHJHc3lwdU1waDA1anVjSnll?=
 =?utf-8?B?aUxBeWZkLzFyckx2UFg0dUdLRTEyUkdNUktjWU0zVncwSit5NXNuM1UvQWh4?=
 =?utf-8?B?L2tVbjcvOWF5bm11R281MDUvbDdJSFVSZ0xyTjJVSW1nRTYweEFLTkNBTXZm?=
 =?utf-8?B?c1hYQXF0bFQvTWc2VHdZVmxlYWhTWW9lY3IxVGpOamdFTHViWlhaekIrcHhk?=
 =?utf-8?B?UTBWcTFrMENabWZpYVBubnFFWVE4UUgzL3MwR1pwSUE5aWhhQmlNeGhLQ0lo?=
 =?utf-8?B?QXo0SGxnTXRIbkxIUVZRNVlKdGFKbTNscHBjMlM3L2pUZFZTYTFDMklDWnR1?=
 =?utf-8?B?aC9tUm5xOTB6dW5IWUZ4T2ZuVVYxdFpwRnlvZDZXcUh1MnpkNytIaldYMUUv?=
 =?utf-8?B?OWpmdCtOcnpYNEF5Y2ZrekFzS2FHK2VJWVN5R2E5SUw3N2lNbjlkbmFMdm1H?=
 =?utf-8?B?NkZkbERISWRCdm56Wnh2ZXJYNjNBUmxWUHdkRzRQSXRGNUdxamo3bU90ODRX?=
 =?utf-8?Q?DVS8fnbg3c0Wt9bbS2ACpcScfGMv3eqNqBiyF/kCKQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: db0b3e66-ac25-43c0-7aa3-08d9ada4aca3
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 10:41:43.7689
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mKFwWVMtKPEiBvpRq1vgk0D9VrNPAIAPXemRTFk8IJnAEypBqkXFmqxsfHPDNNxV2u5LMVsMqXDRs+PNTAz6cQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5743

On 14.09.2021 14:35, Juergen Gross wrote:
> Add a bitmap with one bit per possible domid indicating the respective
> domain has changed its state (created, deleted, dying, crashed,
> shutdown).
> 
> Registering the VIRQ_DOM_EXC event will result in setting the bits for
> all existing domains and resetting all other bits.

Generally I view VIRQ_DOM_EXC as overly restrictive already - what if both
a xenstore domain and a control domain want respective notification? Hence
similarly I'm not convinced a single, global instance will do here. Which
in turn raises the question whether the approach chosen may not take us
far enough, and we wouldn't instead want a more precise notification model
(i.e. not just "something has changed").

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -87,6 +87,22 @@ bool __read_mostly vmtrace_available;
>  /* Unique domain identifier, protected by domctl lock. */
>  static uint64_t unique_id;
>  
> +static DECLARE_BITMAP(dom_state_changed, DOMID_MASK + 1);

While not really making a difference to the size of the bitmap, afaict up
to DOMID_FIRST_RESERVED would do. Neither system domains nor idle ones
will reach, in particular, the set_bit() in domain_create(). And none of
them can be subject to destruction.

Also I think this could do with a brief comment as to what causes bits
to be set. This would avoid readers having to go hunt down all the
set_bit() (or the commit introducing the bitmap).

> +void domain_reset_states(void)
> +{
> +    struct domain *d;
> +
> +    bitmap_zero(dom_state_changed, DOMID_MASK + 1);

While this looks to be fine with the present updates of the bitmap, I
still wonder about the non-atomicity here vs the atomic updates
everywhere else. It feels like there's some locking needed to be future
proof. Since you come here from VIRQ_DOM_EXC binding, it could be that
domain's per-domain lock.

> @@ -1141,6 +1161,8 @@ static void complete_domain_destroy(struct rcu_head *head)
>  
>      xfree(d->vcpu);
>  
> +    set_bit(d->domain_id, dom_state_changed);
> +
>      _domain_destroy(d);
>  
>      send_global_virq(VIRQ_DOM_EXC);

Wouldn't this better be in domain_destroy() immediately after the domain
has been taken off the list, and hence is no longer "discoverable"?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:43:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:43:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228753.395880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6nZ-0004by-UY; Mon, 22 Nov 2021 10:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228753.395880; Mon, 22 Nov 2021 10:43:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6nZ-0004br-RW; Mon, 22 Nov 2021 10:43:45 +0000
Received: by outflank-mailman (input) for mailman id 228753;
 Mon, 22 Nov 2021 10:43:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp6nX-0004bd-QL
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:43:43 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f9bd2bb-4b81-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 11:43:42 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2057.outbound.protection.outlook.com [104.47.13.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-28-ezdCsl9hPYy0UBZbS02Qog-1; Mon, 22 Nov 2021 11:43:41 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4845.eurprd04.prod.outlook.com (2603:10a6:803:51::30)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 10:43:39 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 10:43:39 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM6PR10CA0098.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 10:43:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f9bd2bb-4b81-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637577822;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zZcikmswW5I7Qqp6lISxfSraaS15PKiaAQrzP51iycM=;
	b=gJnsLSDk7vyEwek09RZIyJrLVNvCnSUXHuJv1p8urfLrZ9z1ew1E+Po2hJslnE35t1wxr1
	c7hrB4RAF7/Y+oWNKwFrAQeb8Iewl4ZnegskL16Ev1GZOxphu+LtYS8BY7cMdNIDLkdsEb
	TBlQCjKNYBFlHse2eJIhdMWuYg+pDPs=
X-MC-Unique: ezdCsl9hPYy0UBZbS02Qog-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KoB2dJLiOrVXCVNLUNckDhsoX4EoNIr1MVkpGJWx6VwldjJzrIjSkmCx1rV00TCBkQ1mK1LU1dIBzXdVH+ItkcPu5WRXw6WwynkpijvkMPsT4cGAV2UHJUGcExdfaXTGiwJOEQtikirvnFfk76KoodgkSaxHHrNb1wRjJYqkuw6FdQj3p8aPuVPcaStMPtI5kp7/djTNS5l/keaqGoz5UR6zJk5O05OOJzSsI/UZoqISaxfS7pCoXSoe0oRI5tXtPZgt1mmiLVQL6e1Cah8ZRHzOnsf3zR/zucHf4poPYErWS6ZwdMcj6jlMbfQVi3dARYoYJn2vm3M5sBJ0Qa+zkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MdAnDADdZvHAbA7rz9ndwQXvpVWPYHtTJsLbFz7+HYU=;
 b=PTTHtXp1UGvlPB5rX9FMNuSwiaYpZ9MkWkXbulQaQvBxbUufCGYOJHt88b6IDMjhMMACsynnaKJ4enPRpkJE2biKhnU2J49Gyh02nIEtg6zliDVfDN1n0iuOOAhvNB4W35gF8lCFUPLF7MroP4E8lH29Fm4mHOx7sY8NrgyNZM3YQcq+1tHYN0dLWr2RYf03AVmf4OuTUGFvXjTE0Jg8RrcHnAVI2+nLR88brZPvwaCrlFhmnnUlBCfgiKxDngxlUy8vuoI/QMC+L2mn0yKxzSMaNOHuLL4i/QNwBBTsBWoDQ7ktZ9nLpwnNz77kqjJziWh+DWGrr7kz69JatKUtgQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f1aaedc6-73c5-e4ac-91c1-323f44d83687@suse.com>
Date: Mon, 22 Nov 2021 11:43:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 2/2] vpci: use named rangeset for BARs
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Oleksandr Andrushchenko <andr2000@gmail.com>
CC: xen-devel@lists.xenproject.org,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <20211122092825.2502306-2-andr2000@gmail.com> <YZtwj0OKrNaZ7s5X@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZtwj0OKrNaZ7s5X@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR10CA0098.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:8c::39) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bfbb05d2-0957-4ee1-3984-08d9ada4f1df
X-MS-TrafficTypeDiagnostic: VI1PR04MB4845:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4845AD33B36DFA4ECCA5DC22B39F9@VI1PR04MB4845.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:364;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	KD6xVnwSfDggfDoplZoy52RG6stDKOeM52l+SCDb9i1F1vCoEE4nhzvs2rdLV0tR/5Vv2ILzk3+tWDCTbLFlxRxT4Jl/wY8f48F5fybzp+L6CaoJSZtv1mTK80xnIG9K5VeQuxs2aXL4BRsvgzxz7HU5eAZBTjoSbD/IJTg5BAFsHIwcGMHS1EYLsau+OFYxzqdjnrB7h24PmcJ2plZGqIURqeRIqVU5soYrKQAPtzRsbkVUbaxRiBbzzJRL11ve9WZLdF7QYfdSeQXMP7qMscPT8nR0iy4LkkAnaL22dCNoslXDJ80TTcqtv5IGMo73RNpK6SiIS3RRjCzNobuMmoSIopC/HqwpRsOwxeuxD7Bjcwbh6q7Yw/MQSzGxRGL9cGx+lQyg+BARX3pWwauCVgaKXupnm2276K8ccFbtvrheem5n3wYDblEKXKZL9miaux2JjO7eJIgUYNaN9OzMz5oUNPjGyuceGJcieBs+ckjMbGmvl5s7DvFyQAouKg8+eXUxlSgGmCZwCrzduDLiHZrm62YtMoTn9XuUn/LfEAfK2EICHHJZfb94Gym9hdGVQoFq4Exzj8fiZAHqBFYis55FfwLVjLldCxreEu7m6zZVVMKAmJXbiBjKSrMMGFj1vny/tEid+5dQ5IkHcaHH8vqJUZG8tXmGOFWbG/GwJ5XdoNngWNASiBYTF6dm1R9eU5qIgOhIozreR07jOpOJLhslj/GiQ4+SLc4LGbEJWkuUbgacCpLu0J1yykRjixNb
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(110136005)(316002)(66946007)(66476007)(66556008)(2616005)(31686004)(83380400001)(6486002)(8676002)(5660300002)(4326008)(31696002)(38100700002)(186003)(508600001)(53546011)(8936002)(2906002)(36756003)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?zuaQzbOBMns+Nz2J+GZBaRdW8isHxfXtAUHpJCxXO7FF2PHXO8L4GJfvZj8J?=
 =?us-ascii?Q?qoNr1L6Nzg6h53Lge7f3bXXLppR5Sfm90nGa4P85uKB559RQO+ue0r6UhhaY?=
 =?us-ascii?Q?SRv5X+Ir6YoqdcGvEbCXtR+wKi2gEKcoXRXfFt/y70B+E0SZpolRdJk1qLHD?=
 =?us-ascii?Q?C/pwqP91kR8EIJuI+GdTXJqMM2ob5YM+7Y5qg/vlqxp3dw4lnkexnNat/uTB?=
 =?us-ascii?Q?oYiZSO8Xhadb5gUw1JEHxtziHVMEonALihfpzC8Q+Jm4B9Z5B0qtqJVIckin?=
 =?us-ascii?Q?/J+G+z5gEs3m4nc7K9BD4nQ+r0vrjcT/UZeF69XZMfdULHQgsGlsIwQFQwqK?=
 =?us-ascii?Q?0q0TIgiAcAbWcEUgLOxHpYefm7Dh7wKZKvJ7M7aB58ETZtQybzCwnr9VKGdK?=
 =?us-ascii?Q?3j3i7CYo++OtzJoPtc3c1PQbBUl7q1+UWLSuo1wJ4kHYyRWmnphczY/zAQtZ?=
 =?us-ascii?Q?EkqcyxGljScCY1fnTelv6WsVXt/+0BFRTdcEcZo2NtygybKkWytTiZ0jqZRT?=
 =?us-ascii?Q?yIGyxkMuyzedcTpTFuxl0hz2eXAU/93N3nSQbnQU9g+gdq9Pj+w60+bhwIA5?=
 =?us-ascii?Q?e4+TVr/G+Dn9EtizHTQcAlNd3JJw9lEqHB8cvq484phUJ2EWnMWNJwE6+flZ?=
 =?us-ascii?Q?v5Ruz70oKmUWrEvQe7aKdyYf8kQjAQQHXSSccpWtdAL2g753STb+iJtODxd1?=
 =?us-ascii?Q?AszhMMolsQUOnllXo5Nkvw/MvQbG6oNrAsOqw5uh1QQj55c/Nx8fHLVnFeSl?=
 =?us-ascii?Q?IpSQTOuJKRXHE0xNjPKjIb+/IsHqxtCGpQJ4y04RBGTKXS0EYBPypUqK2/UC?=
 =?us-ascii?Q?1RfkdbPuMrRmtIMjLJzHjvMFfgUwscBjvXyqtWmgDMXL1PmbL4MQws3WhBIT?=
 =?us-ascii?Q?8NK9sQMOCQIAHhYZQgytlKNarryyFYmvD2Zfy5iuQjMiyWlYAfdsTmq5n+hp?=
 =?us-ascii?Q?mU3+D2WnVzNr8gfx+UmXiRoSYveu5Eymcp8HWjddZZFuQNArkKsd0Pox5pe8?=
 =?us-ascii?Q?lMInWmGsTDix9QCy9x3SDMaO5f4+cEGHZsEw5BTzZJmJQuhy4FbWxrWvWb+e?=
 =?us-ascii?Q?9umpOOQlx5G0LhY7TVHILSfSVlL4vqJ0Pej3gVDTgkUJQytH9j6t4PMMCfiK?=
 =?us-ascii?Q?B8eVtFb/J+IkM9ifnM5xp04ZWIwBXJnYx0ApsqF+UW53WNZivfxdj5uOx2r3?=
 =?us-ascii?Q?eNtt56x4iyRoSbt0ToN+sdDpD8l1itJQwX4TVBb/7TgdxlwMZXA2wvDQzVvg?=
 =?us-ascii?Q?SjGo+WouSv3wnY4cfcSfYbCqeaiN/DJoCuoes+puwRv1mNffNZrlfHsxjpTT?=
 =?us-ascii?Q?/q1QO4s4mHueveOnrk5RzzYJMUfUyrLLeJYMXDrpOy+VMBFhXSXQCMRH+hgz?=
 =?us-ascii?Q?EI2hE2a4ZOZYHY2qOe9T2IjVRXY7/+faUFeY752VmBF04jPgjvNyvi2J2/q9?=
 =?us-ascii?Q?J9t/UfrY39t+WwHoc682LZTmFkdmHYabYrUhuvPU2RPHk1kDJy62QaLWGZHE?=
 =?us-ascii?Q?pm22HaIYX5xkjJ0B2zW1QzbxY+yEKvqHAyMu0S3SLLXjawfelQU57geLuNaQ?=
 =?us-ascii?Q?QSYhh5IU6KXa/6x+oTg0GDaPIh7sCHCwNIHbF8tWnuIfstByE1uYjsksrM+/?=
 =?us-ascii?Q?rJC7jFS+wnkOMRPDQcuiYW1S8Qy6buKTQx+J0so5vjpLi1Vwxnn8JsiRnoDT?=
 =?us-ascii?Q?9Xy98Pjgnqo0Zo49d4l7aVcV/oA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bfbb05d2-0957-4ee1-3984-08d9ada4f1df
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 10:43:39.4805
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UVQOzdRl+GU2dE3l1u1v+qU8fO6ucDbU/XmeGo2HcTHTT1TbfIYC7hhpXnKxCJbX1HJ8gIFS85FULgXqnJN6qQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4845

On 22.11.2021 11:27, Roger Pau Monn=C3=A9 wrote:
> On Mon, Nov 22, 2021 at 11:28:25AM +0200, Oleksandr Andrushchenko wrote:
>> --- a/xen/drivers/vpci/header.c
>> +++ b/xen/drivers/vpci/header.c
>> @@ -206,12 +206,16 @@ static void defer_map(struct domain *d, struct pci=
_dev *pdev,
>>  static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool r=
om_only)
>>  {
>>      struct vpci_header *header =3D &pdev->vpci->header;
>> -    struct rangeset *mem =3D rangeset_new(NULL, NULL, 0);
>> +    struct rangeset *mem;
>> +    char str[32];
>>      struct pci_dev *tmp, *dev =3D NULL;
>>      const struct vpci_msix *msix =3D pdev->vpci->msix;
>>      unsigned int i;
>>      int rc;
>> =20
>> +    snprintf(str, sizeof(str), "%pp", &pdev->sbdf);
>> +    mem =3D rangeset_new(NULL, str, RANGESETF_no_print);
>=20
> You are still not adding the rangeset to the domain list, as the first
> parameter passed here in NULL instead of a domain struct.
>=20
> Given the current short living of the rangesets I'm not sure it makes
> much sense to link them to the domain ATM, but I guess this is kind of
> a preparatory change as other patches you have will have the
> rangesets permanent as long as the device is assigned to a domain.
>=20
> Likely the above reasoning (or the appropriate one) should be added to
> the commit message.

Or, as also suggested as an option, them getting accounted to the domain
could be folded into the patch making them long-lived.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:48:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:48:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228759.395891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6rx-0005GA-GF; Mon, 22 Nov 2021 10:48:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228759.395891; Mon, 22 Nov 2021 10:48:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6rx-0005G3-D8; Mon, 22 Nov 2021 10:48:17 +0000
Received: by outflank-mailman (input) for mailman id 228759;
 Mon, 22 Nov 2021 10:48:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mp6rw-0005Ft-JU; Mon, 22 Nov 2021 10:48:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mp6rw-0005gw-C9; Mon, 22 Nov 2021 10:48:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mp6rv-000678-W7; Mon, 22 Nov 2021 10:48:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mp6rv-0004T1-VZ; Mon, 22 Nov 2021 10:48:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=JZCtVChWWhoK61JEDa6j8FcJwIeQiHUT4GLNJomqO3k=; b=JMaJyna0MhwqHopICLDeN699zN
	s1nthRveG9bCtpCOCCIfQrM0Fr5v9AiY9JgOndQAIkU8fDqwdObrEFnbMfipWhz8CJyjVhrwXKCma
	Hv4VXkz4mYsL61zfuAez7mc2j9Uxp074W1KrpgY+xXDDckAj0eIJ/+GTITF/gxK5zmh0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166263-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166263: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Nov 2021 10:48:15 +0000

flight 166263 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166263/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166256

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166256
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166256
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166256
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166256
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166256
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166256
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166256
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166256
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166256
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166256
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166256
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166256
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass

version targeted for testing:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166263  2021-11-22 01:54:04 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:50:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228768.395904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6u3-0006e9-1g; Mon, 22 Nov 2021 10:50:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228768.395904; Mon, 22 Nov 2021 10:50:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6u2-0006e2-V3; Mon, 22 Nov 2021 10:50:26 +0000
Received: by outflank-mailman (input) for mailman id 228768;
 Mon, 22 Nov 2021 10:50:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mp6u1-0005ub-Nv
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:50:26 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fdfc8c69-4b81-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 11:50:24 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AMAiWa0026581;
 Mon, 22 Nov 2021 10:50:21 GMT
Received: from eur03-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2059.outbound.protection.outlook.com [104.47.9.59])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cg8wp09f3-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 10:50:21 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com (2603:10a6:20b:13c::18)
 by AS8PR03MB6760.eurprd03.prod.outlook.com (2603:10a6:20b:294::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 10:50:18 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445]) by AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445%3]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 10:50:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fdfc8c69-4b81-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Z8E9bRiHkTPwEgfJuINXtGGKAweugQ1gmqhq7BrZBJcy+wLba+6eUVMBNP6QckbQRwmucnX/x5VeBce7HskgkylEzdj53CQcAYIv6e3bNc6nBD2jP/q7cpaofCbs1Zj56O15IBd3AZG1RNzB82YVbHcvju9eZG2On+ktv+P+kELhDo+A9U/nIA6xXyomzuqxtRStMgPccXsAQlrZChyhlYwQXDSAXxOFL0G8/43QdoFpowU5fsWF4fdU51kl/EXavABRGhtl+es16G7832zmRY3PbXm3RAEGFci9AhJTKVqWZOYUGyiv7rOXpM+qcJvW+i8kMoyssDwrKcH6AEiGbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FHyszV21KgT8vUZvQXpGOKYFZONbos1H5oe672i0Q+w=;
 b=R9gfKitcASAfODiBVjHReAwcXFjj3HSDXSnbnCt3FXP8Z3KdlfFRxQW8516Pv4DF7ggO95zDbdRfE/ffESxqUMOJhlILztIPCixhhewpRaqB0rErDZhtsgbYsK0mYSIsF3E1uUjK1a1UqohWq/wfz90C9YKuat/DMOXb3udKJ5/Gu66hDwhB29c66Pr+qRmLKdYoI+j9x4FNY8ymcC086vqMDOEidXfNVX2lUWIY8TA4VDIFwcjwhWBv8TW+JrLqATYKTp4cuGUrbCtbcNrKbceLd+w7+mkVVnSH+yc5p9kET1RrShyowVeisAej4BIQ77BxQcfIs7keY7av5zSzhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FHyszV21KgT8vUZvQXpGOKYFZONbos1H5oe672i0Q+w=;
 b=dFNnSbs8AlcxDI+AcaHQuVEsbs7vSiXfS4hxOhDy/jCuCDBND6bo2B+KV2glBiix0c81+F5PLMQpgI4+5RaRbxpzFEMpgWkSCqqO5g7+D8KESdvLB6W/95sYppz3/ywlHaNNalv+PNKQk2bdB2T9kbCVeaGoE27dA05ZffE7w8DmeDZagEgn05KJuK8VUHNSYGv6/pN05uD4CobMwtpKPdnSU8TNzt+kNP2+7xafYv102hoZHmLxTZPgI+89ZU1E2cNfQF0NHwXwHZ2Fj2zD8wOPlOxum+DbaPrtCbjA5p1g8CLDXo9FoMnqpnlZfQ2LpecWkcgKx2XF5zXEjpMaaQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH 2/2] vpci: use named rangeset for BARs
Thread-Topic: [PATCH 2/2] vpci: use named rangeset for BARs
Thread-Index: AQHX34NSPeXhoB5iREudUJGr9f4eDKwPWBGAgAAEhQCAAAHcgA==
Date: Mon, 22 Nov 2021 10:50:18 +0000
Message-ID: <1d9d5540-5fe2-6897-1704-b296294afe6a@epam.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <20211122092825.2502306-2-andr2000@gmail.com> <YZtwj0OKrNaZ7s5X@Air-de-Roger>
 <f1aaedc6-73c5-e4ac-91c1-323f44d83687@suse.com>
In-Reply-To: <f1aaedc6-73c5-e4ac-91c1-323f44d83687@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: fdcc31a3-77d3-4e5f-a8b0-08d9ada5dfbb
x-ms-traffictypediagnostic: AS8PR03MB6760:
x-microsoft-antispam-prvs: 
 <AS8PR03MB676050BC184DDBBD06C1AFB1E79F9@AS8PR03MB6760.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:1850;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 3fsJok7/W9Ia99cdgyGFpGDtyizpZkOD46CpgxQ8nf7nRJkkDJd8H6Ph3Gk8qs7vnHanMU/FYGrrDfmeHY1wvZLs6rFCrElKxwWRDWrW6e2L5DdhZ3OSj9iZeTkAvKWioGesPzQ1gbsU3dsMIQw+wCpYAkeqmmbUMYVm2CcvOXPFSLR/sftZsT8hn26DEvPmmRm9DNNCssHqDyyCaAcotR+kGOmCkSdwidoC0d3MnEjauytn+IzHy2EBGNwAfz90oCBKmnsdR0T24ArM+yye932ObTEEDJ0I0llESWazlAGMgN+aeBfnqfArIQsT8b9H5bISbM6tnd5K6OTVsK17SvntTMJGftb1DaPpRqavQuAUvSi15BvoaU2v7cR8BcKZQHQOsKPsXSYRb9LygWE6uOwPJcmaRj6F+/ugQsb8bf1wVTSjwgK1kG8PxMtqy7TJkrBGoWZ8y9i10BuLc3e52pGkzICUayBQUI78KRAR8o/MqxSU5tmfDmJlDPTbGhP+XK1Yu/zgSIN4a9AvgIKjPryfSi3IsWIcUD6WUq2bUyQdFWyKVerYIeAOKywjOSCj2K3XOPy6jPKEXIuJsEXK8Yp/IMIJfmy6PH5aCni7TWgiljxLXxdzRG3Wn2tq+Yo0CHoXKWDVKNZh4t4uS+IHx1O+njhF1Sq4qC1ugSlsnHmVlL7b7x2jUjbygVjTWihAlx3gfN0U8sq9zz0gbpxKK06hQX0HSa5F4++SFAa+deCltdUCs/f8ziagdip55C5U
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR03MB6325.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(6512007)(186003)(53546011)(26005)(6486002)(316002)(38100700002)(122000001)(5660300002)(64756008)(36756003)(8936002)(66476007)(66556008)(66946007)(76116006)(2616005)(83380400001)(8676002)(2906002)(31696002)(38070700005)(31686004)(71200400001)(508600001)(107886003)(86362001)(66446008)(110136005)(54906003)(6506007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?YzlySk8zRVNyVE9tZm0xOUJTWEMxa054a1RkK2V0SzRnYmM3ZzlmK3BOM3lH?=
 =?utf-8?B?ZkE2dE9iVGo4VGNiTmtEWDRqOW40MWtCcDVUckVkRTFXM2o1RThhUFVTSlov?=
 =?utf-8?B?UkRCVHR6aUtZU2dmR2ZPbVBpeGFVdzVveDg4OFI2Z05wb3RIOE9PL3JvQkdw?=
 =?utf-8?B?T2xsVmJjOElIU001dkZDbmNYYVZiSnRWLzRsczhrdktWeGNLdWRyWlBnclRu?=
 =?utf-8?B?OFFRaklydG1EZEJTSmhZTXE2cGJwaUZOY0Q0VjR3UmNNNmp1akpscW5UUHI3?=
 =?utf-8?B?V0o3YkFHT3NTNk9XMjRIam1rSE1tTkdyZTZueVdMZDI0N1JzWFlTaERYQVY3?=
 =?utf-8?B?Unkvd2NrVTd5clBYYVZXZEU5am1iY3pHQ09FTUZJOVdTSjZEbERZMjBNdUhI?=
 =?utf-8?B?VjdHaEtGa3NxdXJ4MWQwNlNZc3M2azhxOXpMRE1sb1E2cVNZMy9WcjhUWjZP?=
 =?utf-8?B?dEgvdmcrNTE4SFJjK1FuRVIxdWpWcDAzOWVBUWhSM2IxZm8xeHV6NDRCZDEw?=
 =?utf-8?B?bEZ0cVkvbVI2NUhseFZMYWdFQXNFeXpMbVJ2TC94SDF3c3RTNmYxVWdDZ25C?=
 =?utf-8?B?SUNadlBheCt5OWxCRE1sVkJaUzdETHBmeEQ5eHZPL3BuZmFpN3N2TjQyWlAw?=
 =?utf-8?B?MWNvQm5mY2ZCYktza3VHaytGUTlaK1RnUHdzSkczU0R3YjMrZDU0ZTVXdFc0?=
 =?utf-8?B?bXczUTNzU0Uya3ZWc3YrYkF1dkZWaGZoYjN2a21WS0VkR2xwRExXbjRjRE52?=
 =?utf-8?B?UHgxU2Z5eFFHNXc4Wi90QjBpaTVmelJjbGZIRC9pamJIR2ZWTnY5RW1rM3p2?=
 =?utf-8?B?ZjNRQjB4OWtFT2tUUEs5RVNBVlpla3o0MmNscG03cXpYVnlpcE1oM2RVZGRQ?=
 =?utf-8?B?WDB1VUMrV0hQRVd5ZW04SlN3VytwVkVRdjhZTVlVcUMxdGJCdlIrUWFZSVJJ?=
 =?utf-8?B?a3VNWHFGSDdYcllTYUlkZ014cUR6VEtaRTdkcWhiSllQSkNSZDYxdTZGOUdw?=
 =?utf-8?B?bVpFcEFlbWdGcytSZG5zRGtoblArcXRzblZnRVBFTmV2QVdadk43RTkrbjcy?=
 =?utf-8?B?d3ZFVjErbFZabFI1TWpxdERTWWJia1hCRTBoUWlTWFNaMVg3QzNBS1FIaC9u?=
 =?utf-8?B?cjNDSTNOSHlmOTFxYVhWcFhya29RK09YWUNtOXM4aU5ja0tvdUEwY295TTE4?=
 =?utf-8?B?T2praGRzSlJNUE51TElsLzcvajFEQ0thRm5laCtra3lENXp5d2RFcS94NUVI?=
 =?utf-8?B?ck9DL3ZFalEzcTdxR09zUDlKTFNCeHZaK1QxU2twZXozVGM5cUNkR3hxeHlH?=
 =?utf-8?B?ZGpQTi8ybWNHTkVZWkt3bGM0UnlWNEQ3NktiS2t1b1ZKWERuL1ZRQzMwNUNU?=
 =?utf-8?B?VGFFOWFlUmdyWVBDdXRqanNTZy9vQmwzOThDNkNWYmE0NU93SXlYblpSNVdQ?=
 =?utf-8?B?Z3RYeWYzbHdjMVFXR1k0UUpaYzJyRG5jUTg1ditUekhkbThpRHBxeVZ5WnBM?=
 =?utf-8?B?VUFYQnZXMllpZEhSbXI5ZzhIeWwrUFdCMXpLSVdrQ0pOcWFLMDNwa1RCM2Z3?=
 =?utf-8?B?VzJ1RVBqZkJLSzZMSTFHN08yRGUxTVNnS2ZmVnhhVmR4UXpEOE1ETStDbGt1?=
 =?utf-8?B?bzRwOUlLbno2eDlzMUwremxIK1d4dkRYeDNLZGFReDREM1MrTzZ2dWxsZk0w?=
 =?utf-8?B?T2xES3JRbVhtOXVuek9rUjJ2c2FWYmo3YUxDNStpUFUzTkNQdU9uTGZsMnI1?=
 =?utf-8?B?Y2ZzVkh2R3Z1ZXJVdk50QXl5RllJbXA3RndQN2oxcjRYVWFPSWxqSVBhVDJi?=
 =?utf-8?B?N0dtZERxb2lvZ3lHWTZBSjN0N2V4RC9LYXBrMjBndVFoSGs2VjZLS1JzOGRz?=
 =?utf-8?B?aUdrdnNYYVh4NDBLaXhGYTczZm9tRFRjVzFIdmo5RC8zeEw4OHA4OW9xSjBM?=
 =?utf-8?B?Sk02Y1IyUTZzTHhzRWFYMGZQNzl0R0lHNk9aVEJoallnRDRWOGdRK1B0S282?=
 =?utf-8?B?TXhDanE4bjlPdVBHcTNFN0hvZDlrSWNCd3oxbm9ZeDN1ei9wclRheTFCVFJj?=
 =?utf-8?B?TkpFa2E5aGZGY3lic3A3QUNwNEJKaWhNVUo0VUtBNXZsSHZRcEpsTkZ2dkVD?=
 =?utf-8?B?TkVPVmZMaTg5U3RnQ1NBTnRWeE5uUUZOREhMNjVFVUFmVGFzdXZJMDlHSm5K?=
 =?utf-8?B?dWxaSUNpd21lcy9NbkhDQ1grS2VjcWxpSDR4bHZ1NjhJUFFxWk12U09OVnVi?=
 =?utf-8?B?NkU3WHBhbUc0ZE9nRWt6b2JMQmN6ZWRCNXl5OG11UGJ3MkRXMzFlNE1DMUZO?=
 =?utf-8?B?QW4zYzh3VVI4a001UE1qaTJhK0FpVkluNWI1UERQWVEwZTBHODcyZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <571A6881FDF659498752E6E71947C57E@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6325.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fdcc31a3-77d3-4e5f-a8b0-08d9ada5dfbb
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 10:50:18.3616
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: NL1eQYwl8Ftoe01ZeH5C0N8FrESToORlhLChLP6yR80RwBD5+NUHodgD3LLBsEedpjRxZr1svhoN9NRGRxYGGcTh0rZSPz6VZ1Gc3Gv0Lbe3QCGGCwy0VohxN/YcyXCc
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6760
X-Proofpoint-ORIG-GUID: n-QUKZtjSoWNx8U8HzVttZTYvxNd146G
X-Proofpoint-GUID: n-QUKZtjSoWNx8U8HzVttZTYvxNd146G
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_04,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0
 malwarescore=0 priorityscore=1501 phishscore=0 mlxlogscore=999 spamscore=0
 clxscore=1015 lowpriorityscore=0 impostorscore=0 bulkscore=0 adultscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111220056

DQoNCk9uIDIyLjExLjIxIDEyOjQzLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjIuMTEuMjAy
MSAxMToyNywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+IE9uIE1vbiwgTm92IDIyLCAyMDIx
IGF0IDExOjI4OjI1QU0gKzAyMDAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+
IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+PiArKysgYi94ZW4vZHJpdmVycy92
cGNpL2hlYWRlci5jDQo+Pj4gQEAgLTIwNiwxMiArMjA2LDE2IEBAIHN0YXRpYyB2b2lkIGRlZmVy
X21hcChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4+PiAgIHN0YXRp
YyBpbnQgbW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQxNl90IGNt
ZCwgYm9vbCByb21fb25seSkNCj4+PiAgIHsNCj4+PiAgICAgICBzdHJ1Y3QgdnBjaV9oZWFkZXIg
KmhlYWRlciA9ICZwZGV2LT52cGNpLT5oZWFkZXI7DQo+Pj4gLSAgICBzdHJ1Y3QgcmFuZ2VzZXQg
Km1lbSA9IHJhbmdlc2V0X25ldyhOVUxMLCBOVUxMLCAwKTsNCj4+PiArICAgIHN0cnVjdCByYW5n
ZXNldCAqbWVtOw0KPj4+ICsgICAgY2hhciBzdHJbMzJdOw0KPj4+ICAgICAgIHN0cnVjdCBwY2lf
ZGV2ICp0bXAsICpkZXYgPSBOVUxMOw0KPj4+ICAgICAgIGNvbnN0IHN0cnVjdCB2cGNpX21zaXgg
Km1zaXggPSBwZGV2LT52cGNpLT5tc2l4Ow0KPj4+ICAgICAgIHVuc2lnbmVkIGludCBpOw0KPj4+
ICAgICAgIGludCByYzsNCj4+PiAgIA0KPj4+ICsgICAgc25wcmludGYoc3RyLCBzaXplb2Yoc3Ry
KSwgIiVwcCIsICZwZGV2LT5zYmRmKTsNCj4+PiArICAgIG1lbSA9IHJhbmdlc2V0X25ldyhOVUxM
LCBzdHIsIFJBTkdFU0VURl9ub19wcmludCk7DQo+PiBZb3UgYXJlIHN0aWxsIG5vdCBhZGRpbmcg
dGhlIHJhbmdlc2V0IHRvIHRoZSBkb21haW4gbGlzdCwgYXMgdGhlIGZpcnN0DQo+PiBwYXJhbWV0
ZXIgcGFzc2VkIGhlcmUgaW4gTlVMTCBpbnN0ZWFkIG9mIGEgZG9tYWluIHN0cnVjdC4NCj4+DQo+
PiBHaXZlbiB0aGUgY3VycmVudCBzaG9ydCBsaXZpbmcgb2YgdGhlIHJhbmdlc2V0cyBJJ20gbm90
IHN1cmUgaXQgbWFrZXMNCj4+IG11Y2ggc2Vuc2UgdG8gbGluayB0aGVtIHRvIHRoZSBkb21haW4g
QVRNLCBidXQgSSBndWVzcyB0aGlzIGlzIGtpbmQgb2YNCj4+IGEgcHJlcGFyYXRvcnkgY2hhbmdl
IGFzIG90aGVyIHBhdGNoZXMgeW91IGhhdmUgd2lsbCBoYXZlIHRoZQ0KPj4gcmFuZ2VzZXRzIHBl
cm1hbmVudCBhcyBsb25nIGFzIHRoZSBkZXZpY2UgaXMgYXNzaWduZWQgdG8gYSBkb21haW4uDQo+
Pg0KPj4gTGlrZWx5IHRoZSBhYm92ZSByZWFzb25pbmcgKG9yIHRoZSBhcHByb3ByaWF0ZSBvbmUp
IHNob3VsZCBiZSBhZGRlZCB0bw0KPj4gdGhlIGNvbW1pdCBtZXNzYWdlLg0KSWYgSSBmb2xkIHRo
ZW4gdGhlcmUgaXMgbm8gcmVhc29uIHRvIGFkZCB0aGUgY29tbWVudCwgcmlnaHQ/DQo+IE9yLCBh
cyBhbHNvIHN1Z2dlc3RlZCBhcyBhbiBvcHRpb24sIHRoZW0gZ2V0dGluZyBhY2NvdW50ZWQgdG8g
dGhlIGRvbWFpbg0KPiBjb3VsZCBiZSBmb2xkZWQgaW50byB0aGUgcGF0Y2ggbWFraW5nIHRoZW0g
bG9uZy1saXZlZC4NCk9rLCBJIGNhbiBmb2xkIHRoaXMgcGF0Y2ggYW5kIGhhdmU6DQpAQCAtOTUs
MTAgKzEwMiwyNyBAQCBpbnQgdnBjaV9hZGRfaGFuZGxlcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYp
DQogwqDCoMKgwqAgSU5JVF9MSVNUX0hFQUQoJnBkZXYtPnZwY2ktPmhhbmRsZXJzKTsNCiDCoMKg
wqDCoCBzcGluX2xvY2tfaW5pdCgmcGRldi0+dnBjaS0+bG9jayk7DQoNCivCoMKgwqAgaGVhZGVy
ID0gJnBkZXYtPnZwY2ktPmhlYWRlcjsNCivCoMKgwqAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9T
SVpFKGhlYWRlci0+YmFycyk7IGkrKyApDQorwqDCoMKgIHsNCivCoMKgwqDCoMKgwqDCoCBzdHJ1
Y3QgdnBjaV9iYXIgKmJhciA9ICZoZWFkZXItPmJhcnNbaV07DQorwqDCoMKgwqDCoMKgwqAgY2hh
ciBzdHJbMzJdOw0KKw0KK8KgwqDCoMKgwqDCoMKgIHNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciks
ICIlcHA6QkFSJWQiLCAmcGRldi0+c2JkZiwgaSk7DQorwqDCoMKgwqDCoMKgwqAgYmFyLT5tZW0g
PSByYW5nZXNldF9uZXcocGRldi0+ZG9tYWluLCBzdHIsIFJBTkdFU0VURl9ub19wcmludCk7DQoN
Cj4NCj4gSmFuDQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:52:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:52:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228774.395916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6ve-0007J6-E1; Mon, 22 Nov 2021 10:52:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228774.395916; Mon, 22 Nov 2021 10:52:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6ve-0007Iz-Aw; Mon, 22 Nov 2021 10:52:06 +0000
Received: by outflank-mailman (input) for mailman id 228774;
 Mon, 22 Nov 2021 10:52:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp6vc-0007Ir-M9
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:52:04 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a1643c1-4b82-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 11:52:03 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2052.outbound.protection.outlook.com [104.47.0.52]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-6-DvCIhdW-MLCV5A67LcV9vQ-1; Mon, 22 Nov 2021 11:52:02 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5327.eurprd04.prod.outlook.com (2603:10a6:803:5c::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 10:52:01 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 10:52:00 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM0PR03CA0010.eurprd03.prod.outlook.com (2603:10a6:208:14::23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 10:52:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a1643c1-4b82-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637578323;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=b0+hMQazKjQAVHNoNABL+U6iR+6g5nLMY3pXN92DXVU=;
	b=TWgbEByc0O0dCJzgJOzW/7CV10y3+uanXo1nbfTZ2lyhzZ7Zp0QAH4wnzzqwGcFfscqgUL
	QLJYccg0EmXqDs0KZuPx/PTWBD05dkMSaclSdf07sLIGCQ1gHS14gE4FPtCvTPWWpi2yQQ
	dN4uHT+9kB137qMMuixYGyBxgHKrP+g=
X-MC-Unique: DvCIhdW-MLCV5A67LcV9vQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EsLeqF4nX40CpJgUKFnRQ/3iEd820pMw7xb1yIn/wKOwtbjh+jOEABT28cxKw+3LCsm6lcuWFIK3wb0XLqgj2cEqgtsaP8TkmyJ1GcY314J0u+vCh4Tj/VlSYGfyMUwyyhiLP0ZPa9v858+fE1xKn0kKMWnYsq/JKt5VA7c94WuuiC6AXIWekrOEp4c3jYaoyycLOVQngt/q+bS6B9pYhG/6U0e2N2jJuUGZ/f6t/py7NXPLIUKYUZiW4V1G6d8soBflkjLaNDaceoRbHxP6FMb6duDL2pZqUeCKNMUcYvHdrrh+XBRE0AGDK1T0vjc9fuB6ulWHFNtYOjdJ+3tR2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=b0+hMQazKjQAVHNoNABL+U6iR+6g5nLMY3pXN92DXVU=;
 b=BXDZ+ufZWciWtxDuGvvE6CmeixaFrRcQ7i2G0tFH2xHFPlFOSLSWj7nVi9EtBHk/mRecxIl9bbYCtPfZJIb54sXu47NblPIRbyfwRZzXyCjAa3+aZE6gF8RjeSELB5DujaH8L8fd7KT2v7oyDn/NQ5FNxR4RHH/vyd57x7jdEbEFo5WoNAfN+Ssc86clqV/+pGWjhvC5dQZe7itTwFuTxdfebu1En7ktpamynRKjxUZsH5XWOe0OUSWRX3O8wVlCa3jWgGay6329BQ+GAPkfPvj4eE9SnCFrzk5Vbm1igz+ZXJ4Og1VNLAOxay38LQ2ihgTiu/1FcF48yCBSXzKcnQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7f8fd875-a69b-1821-5abc-a8062a7a6242@suse.com>
Date: Mon, 22 Nov 2021 11:51:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16 v2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Community Manager <community.manager@xenproject.org>,
 Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211122104005.58897-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211122104005.58897-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM0PR03CA0010.eurprd03.prod.outlook.com
 (2603:10a6:208:14::23) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d814f213-9f6d-4359-b26d-08d9ada61cb7
X-MS-TrafficTypeDiagnostic: VI1PR04MB5327:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB532777E1C3CED886CCF76B9FB39F9@VI1PR04MB5327.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OkIjgbhi5E5NoTrNBuruPf6x3Eeu73iZwNDgCRnBINi8dy5l4fMQHDbXYHvTa2/O8NHmJAYpCuawn+P+r0GmQKteQBY8rMIe1pDkIMm5t8OJ3YuBbrlfzfa/2DdIKavp491ft8WvmUuxuGxsGIMn4ZygvUv9yjhOgJOvJshKr/8PUhbiMpc6fZUqtT5dSel2zfL1ngdLEsveWGKVcBWs1t6PGOrkeCoaTFd8ZmzrviBiByD6ow+c/C8kXpfOX31YHY7rN7MlzKeBR0qCzj4CS5ZGIcietSVXOLiwNztzgR2uWmdQCA+vckXzokbxszEARxOWApGqBocCPTgcY53/+n0UzoNq9L+6QkYFi+uDHqVcNgAg9UES2FcQqIKbJJ4kDYRMI55z+NMln1DloBL+6QZ45vsJrtG1VrbAa+++mV2TB3tlD8t1S0dcqO0EfYiXdbxseJSioOfsMioiOq9lrrBh6gtC/6TzTOul624bEBmrhERgDySpp3RbGTTXNhmmIx4yoTEWvrU9zX5Cvp4BHLQ+1nnYMJkI2xLk68JCzLNgYmaHaL2tUBq6t3i+Ign+K+14/3hkPg43oqko5gzKDE/itCfVYZ2ucfkLXVSYj4OrqgJl6MF7zMNGUcFI+JzOONrXDo5rAV4Ar9/53lGM2F0hzIZYY9iH3hIfzBQwItx0ZJKcJsx4oZzrkLxst+hiksK8IgDlq4Z4/7flkNvaD0aTW5uGrgWWClt4L8TpdZui5RD76CCz7Hx6orSNONcl6v0aGywBLXyImNYvJNKWEO1UMERgnNk9YaI8DjppBOzyCl838xwaQHX2y0lwal7ONSWaE9t5hsGBmcMFLgVx1XN8IwbUZleJATCArsoqlu7XlcqQX2fzQy5hyyE9PR/mZ7fpnUhY39wyCuiPSTGVJw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(4326008)(2906002)(6486002)(6916009)(38100700002)(316002)(2616005)(31686004)(66476007)(66946007)(83380400001)(53546011)(66556008)(36756003)(186003)(54906003)(31696002)(86362001)(5660300002)(8936002)(8676002)(59356011)(207903002)(219803003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cWdCdzVSUnZkMGppc1Y4aVZvVFptWmFtZjZiNk1NS2hDck4vUkRTd1VxSVlQ?=
 =?utf-8?B?WE50dGw3YVVqbnRLYzI4aStJeXppK05XdDg0V0JZbjhpdDlLVFdYTlVOWmVF?=
 =?utf-8?B?MGNGSWVLWmlFUElFZEIyREI5bDkvTTM3d0xCc3I4cDJBOTFlNUJyTERpMklN?=
 =?utf-8?B?TitmYlR1WTRwTFRpTXR2bGxIVzVaZTdETTh4cVhtWVVnWk1xa2dEV2JKRUcx?=
 =?utf-8?B?bmJJRzkwQlR6bkkzU1RUMmp3SmcvOFVDamVhNk9BUm43azVGVHJaNmNVYXE3?=
 =?utf-8?B?R0ZsY05TTHJrTVcydmlQS3dnKzNGWnNiRmhRQy9ISHh0d3lxa3FyeE4vMWV1?=
 =?utf-8?B?UFdTcFVTMmpySlRDZTdxTEdCL01oRU54RW9TQWhlQXhzcE9uVytBcHFrUDFO?=
 =?utf-8?B?WnZwckNyOFcybWx3M2xMTjNRUGdPazUrYnBkeUpheERUQmNDdmJRYyswQjBh?=
 =?utf-8?B?b09aTWtJSGpBengzVjkzQTdPZjE0dnZjelpZSFVabHpCcEh4MDRFb0c4THZm?=
 =?utf-8?B?dHZpWDFKYzEvdVk5dHVzYzdlQ2QvR2kxaUFkR1NKcE0yK0wzTkFQc3VFZWwz?=
 =?utf-8?B?bkJrUTJXZW45SDN1UU43ZFBjdXZUOUdDT0pIelBmK25jT202QVFmNy9kZFlO?=
 =?utf-8?B?M1dqZFY3a2FQRGp4SklkTTNQa3FuWVFGbVJhYjBGN3ZabG1FLzdTRXNuZWww?=
 =?utf-8?B?ZUNkMjNyczE2QlUybEdobWgxTzhzaC9GN040VGhZQmIweFlXYkI2VlRDRDZ3?=
 =?utf-8?B?L2hBNDBCMFNXRDRmSFkxR0ltS0FXOWNFcHI0aVloNFY1OStZL1hleExQRDhG?=
 =?utf-8?B?dzJvaC9wNE04bnhuRGhOc3dwcTRjRGQrRDRCZGFwQjk4UHlIOTVsRlUwTTJr?=
 =?utf-8?B?d2ZQZFZCN2d2eTQyQzdCR0NxMlppWTBNdlVnSkVWdU5XVWRoTVBtMEozTDEv?=
 =?utf-8?B?dndOU0NBNkNrSk9teDMybUtvNzNVT0tKdVNmbTB6eFpCeXVIN1RBWi95VVVr?=
 =?utf-8?B?bUhIcE9DeTFHdy9DdDlqR2RrRmVoN0FWcTkzajZnM09hVjdtSzZnZzlQTTFS?=
 =?utf-8?B?aTY2b0pUUld1MGMxYk5pZXZOMFlxYXRLZ24zRnEwYy9HaFcvY010VG1GN3JV?=
 =?utf-8?B?UW11b24rdzhTZGVrd1dBSXBoRTJwWStpbGJnbWRwSDducXpVWmduMlZQYXht?=
 =?utf-8?B?VTJKcXRHYWRUUE1LTCs5RktldERvVFU3SzlHcGY3dUtENnVUbGZ1ZUYzVkZk?=
 =?utf-8?B?TXJBRThJSU5RMmQ3eFQ4SlJpbmVvZXVpeElGUlZCMTZwb2tCUWhNSTRoUUdO?=
 =?utf-8?B?bEVEa2RJcjZ3ZGtwQ0tUYy9UcDRmcW85eU5TZG5jVUFhYitxd2xCL2lnRnBV?=
 =?utf-8?B?YTZKOWRWdzZEQllURytSbVY2R3NKRzZBckRwbDFwVGtZR2FhK3lnUUE2RGVM?=
 =?utf-8?B?SkV1Y2pEUndUL1U0Nkk2T0NXeTg0YnpNK2FabzI0K3BFTi9wUjhqSkVpUzdy?=
 =?utf-8?B?bU5NWTl6aFlQcTgydWNja2FGbm9YMStCd0xEZUZDMkU3akJ4d3hNejc0Yzda?=
 =?utf-8?B?Rm1Pamh2UnFkTW80TUxCYXV2bkdJZDlWWnJJOWpPZ2F2Q2pvSE5pTExwT1Ny?=
 =?utf-8?B?SFQ4TUg3MEZrUzk0TUFmemdsaXlnODh6cUlpekoxeUtFcmsyMEdKdXM4ZjAr?=
 =?utf-8?B?dFRIWEw3RThlSzN0TzEyUE5nZlRGd3BHZUJGd0dnMlUvOERQWEFoZVgzWmwy?=
 =?utf-8?B?K0d4aEJiY2dqdlFXVXJCV28vOWNQbEVLbEdTTS9HZGR2TVlCUExIRnVuTFNz?=
 =?utf-8?B?VDR2azhPV3pHT1ZqMm5TTGNYY1hEdkxrbk1NWnh1WUlxSkJFS3dYSURiSzZh?=
 =?utf-8?B?ZXVqdC9UMTdjcG02eEJZd2FDVDljbHdtWmJldmVNak1kOUt3T3hVMjNwV09Q?=
 =?utf-8?B?eS9oMHpodDVlZGlhUGxicXA2QjQ1YnlxYWp1bkJHZEl6cnBLYlFCbzJ5ZnN0?=
 =?utf-8?B?eDM4RmF5cGtGTHlsRDJFV0NuR0d2YUNEcCtId3RIMytZWVozUXlWSVlGRlFE?=
 =?utf-8?B?ZXZvL2VGNnhXcFF3ZkVVb3Erc1hyZEJYZHpFRE1JSXk2WmE4SE9oTEVpQVlv?=
 =?utf-8?B?YXBhQW1Bb1A4bVdSdDJ3bFRMOXNYNzVNYktHL3FhL3hBYVhuOFJLVmpoZG02?=
 =?utf-8?B?MCszdDYzM29pajdXK3p2VDF6K0FucmdIQTVrVVlQM1VzZERjMDFlRUhCOFhI?=
 =?utf-8?Q?Jt15Xt8evPLR9gdnybB3eN9uTxgXedHHIWrXvxgPg4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d814f213-9f6d-4359-b26d-08d9ada61cb7
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 10:52:00.8772
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kS4SyEc1vDf03mUXpWST6gfUJMZavw2T7fXZbxJHJUxx9rha/1Mb8CtJe9yBdSlCgwl9MmlbKBZ9E7KneOLBgA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5327

(reducing Cc list)

On 22.11.2021 11:40, Roger Pau Monne wrote:
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -21,6 +21,32 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
>     no longer be built per default. In order to be able to use those, configure needs to
>     be called with "--enable-qemu-traditional" as parameter.
> + - Fixes for credit2 scheduler stability in corner case conditions.
> + - Ongoing improvements in the hypervisor build system.
> + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> + - 32bit PV guests only supported in shim mode.
> + - Improved PVH dom0 debug key handling.
> + - Fix booting on some Intel systems without a PIT (i8254).
> + - Do not build qemu-traditional or pvgrub by default.
> + - Cleanup of the xenstore library interface.
> + - Fix truncation of return value from xencall2 by introducing a new helper
> +   that returns a long instead.

This has been backported, so it's not really new in that sense, I would say.
I don't necessarily mean to request removal from this list, but some indication
as to its availability in 4.15.1 may be helpful.

Then again I realize this also would apply to a few other items; this one is
just where the aspect first occurred to me.

> + - Fix system register accesses on Arm to use the proper 32/64bit access size.
> + - Various fixes for Arm OP-TEE mediator.
> +
> +### Added
> + - 32bit Arm builds to the gitlab-ci automated tests.
> + - x86 full system tests to the gitlab-ci automated tests.
> + - New x86 pagetable APIs.

May I ask what this is about?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:53:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:53:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228779.395927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6x6-0007tx-Qg; Mon, 22 Nov 2021 10:53:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228779.395927; Mon, 22 Nov 2021 10:53:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6x6-0007tq-ME; Mon, 22 Nov 2021 10:53:36 +0000
Received: by outflank-mailman (input) for mailman id 228779;
 Mon, 22 Nov 2021 10:53:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=smF8=QJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mp6x4-0007sy-Nc
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:53:34 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6eb5f71a-4b82-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 11:53:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6eb5f71a-4b82-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637578413;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=lVINQkzusIymJXSPS4DSgISj+a+dvId4yOUbMm6OilA=;
  b=AiT6Ob5b3VN5oOIFqQ9D63fu9S9NGJgikH90VfAmlnWl+ybSwAvGuqYM
   gRkThhqIDCwlOi1hj7hzxCJwSztZWF+4oqZgMIrJuaqIHhZFY08Pm3z4D
   I8afTGW3mDOoos6aHGAWJQP9I5gpk2SLZhmNE0BumwCVIiYws38QmpUVQ
   A=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: mutc6gOzyIWodEP8oGyiz/oKYCtIZ4DZTmX5axbw9f6l9AeRO9xiJvfXD3ZERNU+qQCIDyPrY6
 VPHyFrskEbkaC2DuLH/lyaySGXCrNDxP8e7Rh5bPnSDbuT1MVoMz25j9K3a4QP8cCaXKSx0ETr
 b7tI03dtnmKvXRIoOpP0W5EKmvZQ4onlBS3YZi3sXAwxoRW6mTZYZVw3MArkMpKg0QzWcC6JY1
 E4dV//pkHsAZL6+fpN9HeGTGVH9epgEHo6bNcG0QvB/ObK8lylIFHi5E0lBPFvSo9F5vOYFtvt
 L3Scs30lZiGr8TGS9R4igM+g
X-SBRS: 5.1
X-MesageID: 58367218
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:qqs78ajJSR1vJJJCni6r/fNAX161gRcKZh0ujC45NGQN5FlHY01je
 htvWWnVOPvZY2T0L94gaYux805SvJDTnd83HAE5/nxgQikb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy24Dga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /0droyJFgR2IpbSxr4CeTVyKBNlL4NJreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t1psQQqyHN
 6L1bxJ2Nj/mcixRHm4ICbI5n/+2jWLEKBRh/Qf9Sa0fvDGIkV0ZPKLWGMrYfJmGSNtYmm6cp
 3na5CLpDxcCLtudxDGZtHW2iYfnnyn2RYYTH72Q7eNxjRuYwWl7IDoSWFigqP+1kHmXXd5FN
 lcU8Sojq6s13EGzR9y7VBq9yENopTZFBYAWSbdjrljQlOyEuG51G1ToUBYRc8wf68xpWQc0i
 AWWtf/DPg50opOaHCf1GqivkRu+Pi0cLGknbCACTBcY79SLnLzfni4jXf44Tvfr04Sd9SXYh
 mnT8XNg3+l7Ydsjjv3jpTj6bySQSo8lp+LfziHeRSqb4wxwf+ZJjKT4uAGAvZ6swGt0J2RtX
 UToeeDDtIji7rnXzURhpdnh+5nzuZ643MX02wIHInXY323FF4SfVY5R+ipiA0xiL9wJfzTkC
 GeK51gOucULYCH2N/IvC25UNyjN5fK+fekJq9iONoYeCnSPXFHvEN5Sib64gDm2zRlEfVAXM
 paHa8e8ZUv2+ow8pAdas9w1iOdxrghnnDu7bcmik3yPjOrPDFbIGOxtGAbfMYgEAFas/Vy9H
 yB3bJDRlX2ykYTWP0HqzGLkBQxQcCVgW8mp85c/myzqClMOJVzNwsT5mNsJU4dkg75UhqHP+
 HS8UVVf013xmTvMLgDiV5ypQOqHsU9XoS1pMCoyE0yv3nR/M4+j4L1GL8k8fKU99fwlxvlxF
 qFXd8KFC/VJazLG5zVCMsWt8N08LEym1VCUIi6oQDkjZJo8FQbHzcDpI1n0/y4UAyvp6cZn+
 ++81hnWSIYoThh5CJqEc+qmyl685CBPmO97U0bSDMNUfUHgrNpjJyDr16dlKMAQMxTTgDCd0
 l/OUxsfoODMpa4z8cXI2v/Y/9v4TbMmExMDTWfB7LuwOS3LxUaZwNdNALSSYDTQdGLo46H+N
 +9b+O7xba8cl1FQvosiT7sylfAi58HirqNxxxh/GCmZdEyiD75tLyXU3cRLsaERlLZVtRHvB
 xCK89hef76IJNnkABgaIw98NraP0vQdmz/z6/UpIRqluH8rreTfCUgCbQORjCF9LaduNNJ3y
 Ogsj8ca9gijh0d4Kd2BlC1VqzyBI3Fov3/LbX3G7FsHUjYW92w=
IronPort-HdrOrdr: A9a23:c+3YfqEF6YHLCatipLqFcpHXdLJyesId70hD6qkvc3Nom52j+/
 xGws536faVslcssHFJo6HmBEClewKnyXcT2/htAV7CZnichILMFu9fBOTZsl/d8kHFh4tgPO
 JbAtRD4b7LfClHZKTBkXCF+r8bqbHtmsDY5pav854ud3ATV0gJ1XYGNu/xKDwReOApP+tcKH
 LKjfA32AZINE5nJPiTNz0gZazuttfLnJXpbVovAAMm0hCHiXeN5KThGxaV8x8CW3cXqI1SvV
 Ttokjc3OGOovu7whjT2yv66IlXosLozp9mCNaXgsYYBz3wgkKDZZhnWZeFoDcpydvfpWoCoZ
 3pmVMNLs5z43TeciWcpgbs4RDp1HIU53rr2Taj8DLeiP28YAh/J9tKhIpffBecwVEnpstA3K
 VC2H/cn4ZLDDvb9R6NpuTgZlVPrA6ZsHAimekcgzh0So0FcoJcqoQZ4Qd8DIoAJiTn84oqed
 MeQv003MwmMm9yUkqp/FWGmLeXLzEO91a9Mwc/U/WuonhrdCsT9Tpd+CQd9k1wgq7VBaM0oN
 gsCZ4Y5o2mePVmGp6VNN1xMvdfNVa9NC4kEFjiaWgPR5t3cE4klfbMkcEIDaeRCdo18Kc=
X-IronPort-AV: E=Sophos;i="5.87,254,1631592000"; 
   d="scan'208";a="58367218"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aNFXfYre0J9W2i2xi7u7x/aV6NNG7KeMUSTy59Z3CBXnbChXP8kHGzrUTBztRrJ7MhqmjinkrXl0sNDRmdgpukph8gt3KnFVntt4iT2SvJLX7Yi7zlIjinFHIMwG+ZN+iHFkJak1bbZSnMqiekSv/pXHlvtPIQrliqOQ84maR8BBSebACi6/w/2r24sOjoRAlVCC+hGFSbcdC2serFCvifa/rZI+AmdiCjb7MKkEEO6Rez8pptB0hjzYdUZhOMRDu+e4wXneAxKhpEYs/nFbpCa0ic5GX/lj90r9Q3UzsKdsoQTKiSZfX04phX8OmA2Nnc4uYOAaU8HsDdMKkiwJyA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XgojSifz+Dxy5dmpQDWrcVCvVJk+JWpdGITHIcC8Vj0=;
 b=aX+9RAD0rxIvXhEXyF8JdYp5P2lfiHqMF0PRKqgD52c26pmaAXAOlRwlrTpWGCGLKqAp+jPRlEOcWhUhuWIeIn0nxOalGqA0biSawplD4LkCqjzCeLpt16Lqbj9tpdc0egu/Ubiv4IYbZqdXW+QEAGbtXE7otR1BdOdA4i2Z0utITXsqJsM70WsxoQnSpXGAaUg+ITn2lU0IMzvJC6vUxZn3LDtYxPMUmwZPBUmO2JjtCTp2n6pmjoYSE1QbHHh7j4V+SUoknUDmTQACKLZk4wFQPvjsQT3ToZJdg1t8xPcrqyzGAv+ztHRhwAwI1lxr9CZ32C4CU3WtGZ0fKkmieA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XgojSifz+Dxy5dmpQDWrcVCvVJk+JWpdGITHIcC8Vj0=;
 b=gsCFHXs1voowtcsIeI4S8KxkkNQjM5NpGrbEY2/XCZYxhBKIyxVG4dCiD9Xpj/n4OD4TH8JzS2QGY5ohuaFE8+zI4hwCCw+RIliRfPjSPYk4VNWI6gcU+DNCQg2u0rM6Vi4r2IyYa8fgcxEbm/YsyC7zuH2AIDRbvBQ49erNX/Q=
Date: Mon, 22 Nov 2021 11:53:22 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/2] vpci: use named rangeset for BARs
Message-ID: <YZt2ov1o3gcn8/cs@Air-de-Roger>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <20211122092825.2502306-2-andr2000@gmail.com> <YZtwj0OKrNaZ7s5X@Air-de-Roger>
 <f1aaedc6-73c5-e4ac-91c1-323f44d83687@suse.com>
 <1d9d5540-5fe2-6897-1704-b296294afe6a@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1d9d5540-5fe2-6897-1704-b296294afe6a@epam.com>
X-ClientProxiedBy: MR2P264CA0006.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::18) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0a6adebc-45b3-4e63-f336-08d9ada65059
X-MS-TrafficTypeDiagnostic: DM5PR03MB3371:
X-Microsoft-Antispam-PRVS: <DM5PR03MB33717E37432ACCC56755A1128F9F9@DM5PR03MB3371.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: QoS1XZiWBb09kMs7VnZ7JGDD1xSx9qQaRqbvCbqpWA7Y9HMyniETAxcptdmV3ennxnyofWiznVKTVTtW0W0SZq+jbldH0XQ2wSIIdcz5veNJPAs67683AZY1t4rSMiVwyTPTYjtWIMDF/pTd7OExZ9kFiEqS0ijpPmsWcHYz4GdiEoPwiKXV75VVT0nuK6xXY4u5ippk6yFfcmJ0P+sYxXYlESJm75qTczOQSCdOr4BN4PVvz3leYxprziZQOJeaecZLEj6ljLI/TyVf7hTyC0SDL3F5p5/bFnSW7aRF/ToK4lrx7Bm7XyYAICm0SfAqSoqiF0CeVkNi++z/rC+Axs6ymgPHQ4iwi9HXXjPYcCFEGt9N7aqeXYVTfGXJjfJffjAbhHspeYaPrYb2z3GWJmsLiCqQUxGGIDBCuwyWzall2RP+ouESKluFZH991+YcszPBhrhDXAwMFxtnrhQGPEYvZXuoaXmtARE7L47MV2tRRIPW1kSz1YsNLc5HmX6HpJ40nSCUuRDFtR1kDqNPSx701OOZMLnAK9CMoaocnJf6hHaOo8/FkBt7pJ97d476MoFJ4BjMl8weRK1/taSm2vlyXbM9l09vaXI996Xm30hO6iojaTM7hbpaP2Y38q/YOGyE/yf2CrSzXctJoSokcg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(9686003)(5660300002)(956004)(2906002)(8936002)(316002)(8676002)(54906003)(6496006)(38100700002)(66476007)(66556008)(86362001)(6486002)(6916009)(83380400001)(66946007)(4326008)(6666004)(82960400001)(53546011)(33716001)(26005)(508600001)(85182001)(186003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bWxreCtJN1BBWWZnbms5Nk9CSlkwak5VdEIzQldoeWM3NVVJeXVjZGZsTkdQ?=
 =?utf-8?B?MVYveXNTaTBiZ2FYL3JkeVQ3K0VKbTVkbER6T1JDWUQydjdxb1YrNitLMjRG?=
 =?utf-8?B?SnA2ZG8xcXRqL1JUQjBWRTVBL3BESmJiSldIdk5FNlVJcStQME5pUjlzMXR5?=
 =?utf-8?B?OW1WN29iSmxPeC94U3BHakNLQ3dGMHVtSEQxMVB1Y1pkUFpzUnBCMUh6VjRu?=
 =?utf-8?B?bXVpTnV4Unk5Nm5ZZ1E4UDB0UHJ2c3BXd3pOcDNtRGVyVXNRVnAyV2VrSVpw?=
 =?utf-8?B?MlVQbGtmOVZ5RS9EOUhwQW9Xenp4TW1PUmlDUkc0bUd6dThzUGllRzIwOVRE?=
 =?utf-8?B?ai9yREZ5SGxZSG1UZ3VJVUpQdWIzVkRzc1ZoRk5LRXFHUFVoQ1ZMKzdVeDR6?=
 =?utf-8?B?TE9DcVd2dE10N3ZuRGNLVlVhREZrYS9YbUx6NUNvanNyc0xXdzZtQm9qUVdz?=
 =?utf-8?B?RDB1VlhBVWs0RGpMbXF5SjBoeXpmUDJpd3ByYzdnTXhMSEFoa3FXQ2xMZ2ho?=
 =?utf-8?B?dTdocWZDdWtVYlBjbW01L2RkWkRLT282MUxpNU9qM2JTcWZKa0FFTGt1dm1w?=
 =?utf-8?B?dCtSOGtwMlhvYnRDRFlXZXFvTmVGTm9XdU94N0tuNHk1K0pmei9tdVVrQzVD?=
 =?utf-8?B?U0lZaGpzYWFMdnMrS1hZUnY2YkZCYU0veUdoV1NQcmtnZmVlY21TSVdMeDBv?=
 =?utf-8?B?SHVlOHhoMlNlcjYrMHFTaHVIVElONXNmclgyMGkwRFFnRFkwU3N5UTZzeVlB?=
 =?utf-8?B?NnR2dzI0MkI5WUdIZzc5UWtzMkd6RmEyZXB2UDNaN2Y3blJleHdIVXRycFFL?=
 =?utf-8?B?MEZYRUV4bkZEQ3R3bGRHajRVNjBKcVl0VEtEQmpIZzJmZjdRV3N5eU91clFW?=
 =?utf-8?B?SHlRRGJTeDlvV2lkd1BlN3BZTVQvNUV3cElxMWtDdjdDVm13YSsybmQwbTZl?=
 =?utf-8?B?d3lSakhhdDk2dHZhaGpYanhobXNHWEJKK2ZhbGJwbjFjU05aZkpLRTNjQTkr?=
 =?utf-8?B?djBjcEt6SktlZStiL081bVc1djRmWWpxTEJmWWdWazlzRGtyZ0oxM1I5VzlU?=
 =?utf-8?B?RGs5L2F5SXUyRVFyYUdNUk10N3RBMXhISWNzeHRNSzZpYXVZRzBxTG00QmRw?=
 =?utf-8?B?MFI0Qmk2T3IvcVBsQjBNQmtsZkFhTkR0dVUveUJmRkxwL0JRMVNkU3hrQjZS?=
 =?utf-8?B?LzNNeGRlTlAySnpnakpmV0dablgvT3NJbks4TlVVdmx5cGg5dFBBOExQZ0FL?=
 =?utf-8?B?Y1pobldyV1haemVhZ24waDhZNjBybXMvSm5wOVV2cHcvOVVpT2M5TUwxY3Nk?=
 =?utf-8?B?Rmo2TktPTEFRVHJWbFQvcENVeXdiUFppNUVUcUUzU1BNRDB1dExtZG1IWmFI?=
 =?utf-8?B?TjVVOHlaa1M2N05JNE1IdGhGci9sNGdBbTVuM1podEhEb2RCazhZVVh6MTEx?=
 =?utf-8?B?cE1HSG1tZUJvb3lwLzVVaEFvS25iUUY5alFlK203QktNa1ZTTkZmSjg3NEpR?=
 =?utf-8?B?aXJEVlkzejAyRXBUbnd0U3A4TGdkd3pHSGtBZUpKU3VHUmw2YVZ4bGsyRFBl?=
 =?utf-8?B?d2xObDMrNkhPU3hNbXI2c2V0WlRWaGtUOEg5b1lWSUcxSXhzN0dNeGdYaDVK?=
 =?utf-8?B?NGVnZi9IRjhMS2VIQm12VGdNVngza3BtUWZXZUF6cG5tOCt4dGNDYkVQRGNX?=
 =?utf-8?B?WHpPZHJxRGlvaVpGZklGRXFlMHRxVjhkVGJNaUNRSjVCcFN2dktmb1pTT1pU?=
 =?utf-8?B?Z3JxNGVCZWNha01jZDBGR2VFVE1XcmJqNFVjYmJvaW9lOThFZWNhTEJ2RmRT?=
 =?utf-8?B?bmFqajlVRGVvVGhjNlNub0xOLzFtRFJVaHp1dlA3QkFTbHp6ejVSdWFhd2Ru?=
 =?utf-8?B?QzlDNmlXREM3VWtkak91Nml5MC90WDNMYW5tbmlNbU9va1JGY0h1WDlVVEpl?=
 =?utf-8?B?SGQzckQvNnpoM2lKN3ZaUDBaZzQ4NVBHbTE5MldIR0dvTGhQSnBFK3BaTFRV?=
 =?utf-8?B?dEpZNkszTGdyZTJFSjQrNzBNSnY1WGpLTXNjMERpNEw1ZmRjSzVGZCtIMUdO?=
 =?utf-8?B?SSs1bWNKMlg1NURFU1NaSUxQeGhrY1RkK2JzdDFSREl3eG9NSzBrNFlMaERz?=
 =?utf-8?B?K1hGWDBtYmQyaGp5MUNwd0JMdkV0SHVuTTB2anlSVE93L2psZFNSUVVZYXlu?=
 =?utf-8?Q?0EUlsa8NBtpLzPpkpIdzs2g=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a6adebc-45b3-4e63-f336-08d9ada65059
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 10:53:27.6054
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ODxgeb9Eov3dt1CILmhuQ/czE1TkKZIDJKiQ2msxYo1yAioybDGNyFIlituZwlGH1MVbA8Jiy1qdjvpKbmDcpQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3371
X-OriginatorOrg: citrix.com

On Mon, Nov 22, 2021 at 10:50:18AM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 22.11.21 12:43, Jan Beulich wrote:
> > On 22.11.2021 11:27, Roger Pau Monné wrote:
> >> On Mon, Nov 22, 2021 at 11:28:25AM +0200, Oleksandr Andrushchenko wrote:
> >>> --- a/xen/drivers/vpci/header.c
> >>> +++ b/xen/drivers/vpci/header.c
> >>> @@ -206,12 +206,16 @@ static void defer_map(struct domain *d, struct pci_dev *pdev,
> >>>   static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
> >>>   {
> >>>       struct vpci_header *header = &pdev->vpci->header;
> >>> -    struct rangeset *mem = rangeset_new(NULL, NULL, 0);
> >>> +    struct rangeset *mem;
> >>> +    char str[32];
> >>>       struct pci_dev *tmp, *dev = NULL;
> >>>       const struct vpci_msix *msix = pdev->vpci->msix;
> >>>       unsigned int i;
> >>>       int rc;
> >>>   
> >>> +    snprintf(str, sizeof(str), "%pp", &pdev->sbdf);
> >>> +    mem = rangeset_new(NULL, str, RANGESETF_no_print);
> >> You are still not adding the rangeset to the domain list, as the first
> >> parameter passed here in NULL instead of a domain struct.
> >>
> >> Given the current short living of the rangesets I'm not sure it makes
> >> much sense to link them to the domain ATM, but I guess this is kind of
> >> a preparatory change as other patches you have will have the
> >> rangesets permanent as long as the device is assigned to a domain.
> >>
> >> Likely the above reasoning (or the appropriate one) should be added to
> >> the commit message.
> If I fold then there is no reason to add the comment, right?

I find detailed log messages never hurt, so in the patch where you
squash the chunk below I would add that as part of making the
rangesets permanent they are also linked to the domain struct in order
to properly track them.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:54:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:54:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228784.395937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6yG-00006f-97; Mon, 22 Nov 2021 10:54:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228784.395937; Mon, 22 Nov 2021 10:54:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp6yG-00006Y-5e; Mon, 22 Nov 2021 10:54:48 +0000
Received: by outflank-mailman (input) for mailman id 228784;
 Mon, 22 Nov 2021 10:54:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp6yE-00006O-W4
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:54:46 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9af418c4-4b82-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 11:54:46 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2057.outbound.protection.outlook.com [104.47.13.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-31-kTEkZs-POLuvagiswBFE1Q-1; Mon, 22 Nov 2021 11:54:44 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6672.eurprd04.prod.outlook.com (2603:10a6:803:127::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 10:54:43 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 10:54:43 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM0PR06CA0077.eurprd06.prod.outlook.com (2603:10a6:208:fa::18) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 10:54:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9af418c4-4b82-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637578485;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=EOIX9oemLjHqM/R9APrgkScQByzdubnKKyLUM9yrkg8=;
	b=dlZY+xFciFmPawkQrGsBP36X0tmfcFQ0JWxM1ryz8OWldnve4WyyJs5nuezeh1cqsYN8yj
	jNEjsWb17mEQldaM1Ajgl7auv/Mn0XlMzAuaEY0bkV5OZcZqAy17xsdHfkHr8+6E8UgI1l
	7htlL3RM/iYKzljLbPJ2VB5Qxk1e2kQ=
X-MC-Unique: kTEkZs-POLuvagiswBFE1Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oD9ZXKlP6jnMiOM/s8FTWTX4plzKIMxi27f2WWJit6iXpVxvJMrDw6CS3bOMu20Wkf8YSs0aN4GQev78lg8EsneRUlMrxcLZNAsxKCX3MEnM99D8tbPYeiCJ1duuJli4VL9brdCIScxnUj1JKMuSX+/trH3FtlaOPbok04H18Tb/7YRsmYU1wvDq9o8yJrc9HRH3gkcc/izRMytaM27xqhyx7dK6sbB1NtYM5NaqWSJoKwr2yI7RFqF6e6Ko33MwzE/qEEpE4CcgjMXqGh6TwdRtbo06RS8jARDnWMukft41QX+x1z+MaN0Yff+bqgE9shK9ov6eozp0cNbyePg1PA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FnMc43omA2wJL5UaZtt2TJn3nJlsQwK/5Y8hRVd6rjU=;
 b=lMG+yVF8lLTTq0wOKW9Gtg8plACXQuI4h9DrL8aA5LpSeetNykT9KnPD/iGaczVU36VSNOqNmXKP52WkXorU76LVzMKhoCkZoBO5ladmC7d/mIQP5EcpNcOgRQguvT+V0gDx99AJvN67/0O4kWO9r5wvjYTp9EQYuALxBkkXbI3uiYQGBfajd+m6CDlKz/4tuBYbWT2gIz4Qj08uRsSsIvI+d5jGr31370LdmzPIUYYBuQ4eMq4Iqdwa52xwuZToO3NQtKTc+uCkbB1+N5UG2OpLZBt+eI81ZcgAgQp1CEbOJUhELyho45twP+2GVihC4OVKFdPvtIdqFjhJNJ3svQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a0345cce-5b44-6cdb-681f-002403893e31@suse.com>
Date: Mon, 22 Nov 2021 11:54:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 2/2] vpci: use named rangeset for BARs
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <20211122092825.2502306-2-andr2000@gmail.com> <YZtwj0OKrNaZ7s5X@Air-de-Roger>
 <f1aaedc6-73c5-e4ac-91c1-323f44d83687@suse.com>
 <1d9d5540-5fe2-6897-1704-b296294afe6a@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <1d9d5540-5fe2-6897-1704-b296294afe6a@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM0PR06CA0077.eurprd06.prod.outlook.com
 (2603:10a6:208:fa::18) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2515519a-f1cc-4b4f-e42d-08d9ada67d5b
X-MS-TrafficTypeDiagnostic: VE1PR04MB6672:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6672F8F5FEB073A52C8E751BB39F9@VE1PR04MB6672.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:407;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	TSwXud5nz3819AJp7fdVAM6Fa8BcJLnis8Li/Zzvpr/PBqymVApkhHriIR3WabZEx3c/6vbJzsBJy3R2wjQjxhpVAfz5phUBnpmQY5bS/bZUfEMlyhHiSK0ExmqZY3VeQnbn7N3smPKadoN54AlHn2UykBtQ7zMyXxpJpbvOqB0uNXnYKWpRDAx793kz1ZFudSTtqmXDQbYQ2tTqW+r7dgMm6Dm5Y4Nm+bIT+T8yddc6nZEiFOEZKn+CCKTmDKbnKZBWShmq9lX4QXkAtHoUzkubaahwM+AP8Gqo3POqeFvYR8UweT5DPT7c5Ba4SmiWD8k6uTqfX4UDzLCUJ8NFzGra+gfXtYngTDnjJW2y+hLl8ncA1aJRHkozFH0JTa8nj3mmalye3h+t1a3j1Z8LU5M8BLO6NChxEPjyzjLc4xAVkgvRL/s52ZIveYgIpdRt50iex+vFoj7JAi/Rh0iII4VfjVyJeZKsM/zepUuS/kDQBBn8HXUPpcjyA2uEhn9BRnpsS/WtjqjgQLhbitFAra1VXVimNNoOijEgfIzRSnAK4Kf8U48FOR+GZlL60Ywcmwi4c3zisF+rM6qWh2boB8ySvV+BKM6U4AG/4Stx1mchSO7ioHQ3tBspNGcXwYAGr2HSyu5b+6nY/xYi+Nc+IyUce1mk7KDZO07O+QWiJiC/PuTtcMfRxPGt2fHc0eyhf0LZfgFw6QlnreSr0dco4HPhkIdlvwPFXv4qmvapG/w=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(4326008)(36756003)(8676002)(31686004)(316002)(53546011)(6486002)(31696002)(86362001)(83380400001)(66946007)(66476007)(508600001)(2616005)(6916009)(54906003)(2906002)(5660300002)(186003)(66556008)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ocOaNRwmxMWxAGKtAXzAAM3jV/hXSXWSaZaIUJiNeuoIBnV5vpLIwfZzHLtO?=
 =?us-ascii?Q?SRrS1kciWPo6t08MC9PETuX2Z8a3VCafHqZaiTSfbYt7NMo7Ubo0ciT2dY7j?=
 =?us-ascii?Q?zTjdSn5wAMwFEF96QpwXhN6ge2dH8AEWdkBmtsUdeM3NEb0iq7fkUkXP1xN6?=
 =?us-ascii?Q?kWJLVdLPrZa2uizoB34Ax5Etp3N60/C3+scLj9/JuBcdtJEZxaug7+hVXyQb?=
 =?us-ascii?Q?0SvaZwIzZtJrnkx2uyyGghiKYfryagBvWwzxHyaTJA+XN/7cDluOL16586xl?=
 =?us-ascii?Q?4nIY5yd1goRvS0NwL1Q9o52Oq/uMmGuIpfAa4+q681cFuI7qsdi1JkmsFDWu?=
 =?us-ascii?Q?Q2keY6VHsXVb7nBToRb5BcEkH4ZdX4vu+XIGF1OlGXVoRmLW2cisGDX1jxoJ?=
 =?us-ascii?Q?jn7uoyfdy4PMLbwiAFUrNNTxpn+G1w78B2KRv87+jPjjl+X3faQWpxC8vMRV?=
 =?us-ascii?Q?cnfbXDQCqHKu96kL8lZ2zXxk/YsYxcwTcppUJYAs1QjfVJBn0oZMUC9gMRvA?=
 =?us-ascii?Q?GkULrfEKPyEDwb7DOaw2exJAnmyNUnYcf+ctyiu73MecfFL8Dzd/6Y3YovQ+?=
 =?us-ascii?Q?uq3wesVhiPexdw70RnUjnLHUlMS8xcx1qFxAN6g5ZJyD1UtPX7dEJJ3Avaci?=
 =?us-ascii?Q?ESjhMZ+l8eKJbvNGFYAbNIfLba3irOH4pX/FXsoh9HbkASnPRMCsYuyyCjnU?=
 =?us-ascii?Q?K32BCFtHSOp5dCgfIOBPT3d+mpxufpcH3LUMdi7vzIWrsBNqVpMumPlO6Nu1?=
 =?us-ascii?Q?ocPWbIR0Cv2kxyyMM7pHN8mfwph0Sw5QF5I/9LOlzHg1EbnM5urkxlXWT6ES?=
 =?us-ascii?Q?w3Uz+fuMa8iZPvDJXnC/fXHmHasKkeOFpG0cVWQdf7hfsrhVOHTigOLYiCch?=
 =?us-ascii?Q?Bv2OOfdas3Xo1DiYU9xKEQ/LQmbyUoM514oM78fijSGyivroPPP9TwMQxXkC?=
 =?us-ascii?Q?QPkuTDsBWryv924VHAp4W+j1bZfys4iavBuNP/PpVraMexFiRcby9aYzcqQJ?=
 =?us-ascii?Q?w4+Wb3Gv/7Y809wBG5x8Q+C3yTeqJry0yxh2AmUk9+yA50DmmXf082gWLXxo?=
 =?us-ascii?Q?p3cDqi6n0ogKu6Kx6U3nJhqlZVoOUFbYe0VHjArILvZ9AtzuDypJbdoo98SA?=
 =?us-ascii?Q?TVNzQcBmm6AQQ0MhQBEFD39mnV4Qo02EMn6BCtys5uXPDiPP8eAG6DNoGz/3?=
 =?us-ascii?Q?iDCBKdV7I7NiZNf8TOWvLmCaVzN8cWB2j6T0Iey6m9Of4RypzWYCseZ5od0g?=
 =?us-ascii?Q?Do7Exzpgy3HSKqrtBCQLxmWeDeqOqsDc5faOPqUAnhlbBO9vMAlrMuybcV6E?=
 =?us-ascii?Q?TbeP9vDmvGod+bsCH3oxLnqYohmPMAJQoq5PFMrK4fbLHvkkCJEA82bTnzpI?=
 =?us-ascii?Q?Xt9j9+XiX1zRA47uFx+mSrgDlMZu8Uc1L2lT8Rh+SQFHDEo8k4adv7sjtyKm?=
 =?us-ascii?Q?0t3poySLKwxoyVyGSqFdNbqJnTSVReUWOGVTA+DQJ2rxApr54QDzGubLPokE?=
 =?us-ascii?Q?KuFM+2/U0GfFfEsotF+IO4oC1nkMK8rixaA9z2xQewCxPpPgRY7gZpb21d5B?=
 =?us-ascii?Q?AytYjNGb+1rjqyP1MsWF6Pjv4qrMd8mhvCIU/mLnIU7Ev9rCwGoezUfb3md3?=
 =?us-ascii?Q?JLeX/mquN2kVwNyJkqGCr21UCVX9UXmvDxsUd84CQ8N/AFw+aI9o70PVMxKf?=
 =?us-ascii?Q?nHqrbX0fw/Xo5U6WXLPD6wihJVk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2515519a-f1cc-4b4f-e42d-08d9ada67d5b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 10:54:43.0035
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oZUM/o3wvB4ros4h9wbOwanVvbwRHQhq92OuLD55B/e1GLp5G4xI/YFEhvYwlviMUw4ZLMNPXIr48LxIQqxKzA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6672

On 22.11.2021 11:50, Oleksandr Andrushchenko wrote:
>=20
>=20
> On 22.11.21 12:43, Jan Beulich wrote:
>> On 22.11.2021 11:27, Roger Pau Monn=C3=A9 wrote:
>>> On Mon, Nov 22, 2021 at 11:28:25AM +0200, Oleksandr Andrushchenko wrote=
:
>>>> --- a/xen/drivers/vpci/header.c
>>>> +++ b/xen/drivers/vpci/header.c
>>>> @@ -206,12 +206,16 @@ static void defer_map(struct domain *d, struct p=
ci_dev *pdev,
>>>>   static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, boo=
l rom_only)
>>>>   {
>>>>       struct vpci_header *header =3D &pdev->vpci->header;
>>>> -    struct rangeset *mem =3D rangeset_new(NULL, NULL, 0);
>>>> +    struct rangeset *mem;
>>>> +    char str[32];
>>>>       struct pci_dev *tmp, *dev =3D NULL;
>>>>       const struct vpci_msix *msix =3D pdev->vpci->msix;
>>>>       unsigned int i;
>>>>       int rc;
>>>>  =20
>>>> +    snprintf(str, sizeof(str), "%pp", &pdev->sbdf);
>>>> +    mem =3D rangeset_new(NULL, str, RANGESETF_no_print);
>>> You are still not adding the rangeset to the domain list, as the first
>>> parameter passed here in NULL instead of a domain struct.
>>>
>>> Given the current short living of the rangesets I'm not sure it makes
>>> much sense to link them to the domain ATM, but I guess this is kind of
>>> a preparatory change as other patches you have will have the
>>> rangesets permanent as long as the device is assigned to a domain.
>>>
>>> Likely the above reasoning (or the appropriate one) should be added to
>>> the commit message.
> If I fold then there is no reason to add the comment, right?

I'd say you still want to justify the change from "anonymous" to "named and
accounted".

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 10:59:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 10:59:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228790.395949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp730-0000nh-SG; Mon, 22 Nov 2021 10:59:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228790.395949; Mon, 22 Nov 2021 10:59:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp730-0000na-Og; Mon, 22 Nov 2021 10:59:42 +0000
Received: by outflank-mailman (input) for mailman id 228790;
 Mon, 22 Nov 2021 10:59:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mp72z-0000nU-F6
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 10:59:41 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4922b6f9-4b83-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 11:59:39 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AMAsPuq021674;
 Mon, 22 Nov 2021 10:59:36 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2175.outbound.protection.outlook.com [104.47.17.175])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cg8hmrfee-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 10:59:36 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com (2603:10a6:20b:13c::18)
 by AM6PR03MB3608.eurprd03.prod.outlook.com (2603:10a6:209:38::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 10:59:33 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445]) by AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445%3]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 10:59:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4922b6f9-4b83-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WTaMGxODocEGpjjJfmqC45UaFgCHso1Po7XT8Y4pewu+SvSE8GJuHxjOwPBimbLQbQEjg1ssoHoScY5+aXq8GIsBgZhHF+slCk746rpUKKEXZsDFWctWg0hNF9XMb5Eui8MO5sELD7j+GJGI9SlWWpFC2qGB0J0a/J2SNEkDfX7ptbv8bd5JWh5Vf3cEi1CYpQNknvr6rRvoNSZlhn87Ccf0qbSUL3uOCxNbAS+V+oeIbGCydQ7iU6ydfBoUlUhCTi6F5yelMQEaX3I7I6fNiX1OGAq5afB5fpSKVPu8NzVl/QXRf6CYdkrNK7kWFXAz1A0KbvJUp2yB9bjQ78BQTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BBq+nZhvrgME/r1E16pAlev2cFaLl10SPqFI3WkmRfQ=;
 b=c1iPUvJCdFI7+OC4voxRMNyXryDmawNHxDVePJe0SDx1pCTR8oSA7YGKhLb254Zd5imIj9W1Z2qLovSUAIdgZXvfWJEhep/+N5dRrSEG6lDGZu1zNZ4UJw40FqtEITQ9/qVc5wu/RQmK2BNcpVjrdTTtCH58RJ62hotQw1xMSgw42C4NBT6QO5EL2YcqP9wT6q1Z8bdvb8nP6R6YRjTLfnadsPAPb2mPyeh+qlMxdCj/OO0xd/Iu4y5dWyR6dezQiETh8XYGcM9mGzHkg/L6S6MZeUeS1fE6SkIQfZ575KGG7stORti/NRncqtNsy8ACl/+OHPz5cmKwpq6mKiUaMQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BBq+nZhvrgME/r1E16pAlev2cFaLl10SPqFI3WkmRfQ=;
 b=p/fxDjAfZGTi9FHSV1rsHdua5pevr3jXpAGe4swYaatjpZ6hjeXVwBeiHdLGlL2wc2CjQNb7ALt9pjReTg1CCtt7XOH5g6m/mPsKDW18mrZfgBhNdQ/cSGB9gKi/PrwvnKsitESFHD9lr+LYoURj3rnXjsBH2iOGTlaNDWl3NXjbqvo5oHj4Qj91A0LP8i3vLIRRj5K+KsB7/IvWOnxxvBFHh03+x1dw9HyqlnSGjcQfaLDQzgxEr/WVP86CA6uVvzT9PwFgbEG39l3u42riN4ZO7MogC8Mj5H1qrOxI2rMRSRnjETRLZRzslQTdnlWRwREp5JA0F1NVQaULs1L3gQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH 2/2] vpci: use named rangeset for BARs
Thread-Topic: [PATCH 2/2] vpci: use named rangeset for BARs
Thread-Index: AQHX34NSPeXhoB5iREudUJGr9f4eDKwPWBGAgAAEhQCAAAHcgIAAATqAgAABWoA=
Date: Mon, 22 Nov 2021 10:59:33 +0000
Message-ID: <90fe8b04-4bc3-2d10-e94e-70e5e28c9780@epam.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <20211122092825.2502306-2-andr2000@gmail.com> <YZtwj0OKrNaZ7s5X@Air-de-Roger>
 <f1aaedc6-73c5-e4ac-91c1-323f44d83687@suse.com>
 <1d9d5540-5fe2-6897-1704-b296294afe6a@epam.com>
 <a0345cce-5b44-6cdb-681f-002403893e31@suse.com>
In-Reply-To: <a0345cce-5b44-6cdb-681f-002403893e31@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 933a72c7-3fcd-4de1-71cd-08d9ada72a5e
x-ms-traffictypediagnostic: AM6PR03MB3608:
x-microsoft-antispam-prvs: 
 <AM6PR03MB3608DFA581AF85EE1C29A1C9E79F9@AM6PR03MB3608.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:283;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 vvSmT/Wu9zImUQnSigs+v6ujiO/qYC1Kq2q4V3kEISRata4Sga6ApGzW0fvEJGhP4X/5XJ9E/cBiTGtePeK2bA8tjCRM+SMCQQpdKUT6baLWjUwdjFTiQ2oxSia31JliGxRh9SQNNfK7yXUcvHTh+Bt5o0wznoR/OIwLwD47SqJG2cevG8tqS7h8HVfGvYUCrwuFz4jOR5LyPHMs7Zp6cP6pfifP4hjJTJ4seisUpwIz+3yBoPB9Fmnu+mmSLVHaDrbwMEECd34QwY854ZUcDLKMJOZb/aHkTkmz+maQvAmvdu4LS8s99La5LGQm12xwHy8Mzso5gBvVHi37ZdnMUrLUW1VthbD0nO+IIw2ze8mIdi0kwAP5waHrYhoV4iywoV7kt5Mffbjrkq8Z1SyMZmG0M9V0mjN9sqtQPh9bdcIQXgeqQeVqzlIZNrJAHIWCv0xnMNaUz5cUOtSI0oh6KN3X1UBdbjAHsLy7puONB2CiGyHbuOpT/vNyKOZ3tIOlDg3rgnfpZgYapYeOD9H2ZS4Jwkm3YDZ8fSetaubKLjGfd9y15fUVfHwY/qrlon8KJMmDHiWIoIEPjp17sKmvxkMGTK0wqMq39FC/6gSSifv8d3XbcdjRlCysCldL8PlHaEn/H6cUf+rkjvI44820S3OoYMvkXALgDinwUMsnjqESt7cnPClPqTzEwKHyuj/7t50xO/VWyEvMYpv1eif8+FpS/lVeZR5ScXHiyWKix7GW+8ubZjShzJKwJjNAWuzv
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR03MB6325.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(6486002)(186003)(71200400001)(31696002)(36756003)(76116006)(4326008)(86362001)(53546011)(8676002)(31686004)(122000001)(5660300002)(66446008)(2906002)(26005)(6506007)(2616005)(6916009)(6512007)(316002)(66946007)(64756008)(66556008)(66476007)(38070700005)(107886003)(8936002)(54906003)(38100700002)(83380400001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?eEY5NFJiOWNJNFh0dmZROTVUclBtbHkrRU1GemtpcDRrNkZ5MW1jeCtUU01J?=
 =?utf-8?B?T2hNc3JhSFVpaWhLa0VCMGhtdXgxc29ocEJCNWtJK0NIOHl6SFVBQ1NEMEc5?=
 =?utf-8?B?QVZTLzZZczZNWWpWYytnK3d0RHpBN1JKTVQzRXFlcWV0YWt3QXhSRlFiaTlQ?=
 =?utf-8?B?cS9DY2JQdndMUkhHc3BNajZ4T2NMRW5UWjdsTVNrSWNaV242emZCdTN1TUVM?=
 =?utf-8?B?WXFaWVhoUXJldXJrTXBnL0Vlc0syTkRqWkRIc2NIMVlYYXV4cDRkOFpiWndX?=
 =?utf-8?B?Rldib043S1VEaTQ0dlZ3bzNZZmZWTXdvZlFuQVBzeldGdjRqVzRIQy9ZRll4?=
 =?utf-8?B?Z1FOdkd1b2ZPbVREeXBtRVBNK2ZxVHZyYzJSZ21aUEp0S3J5QmIzYTkxUmdJ?=
 =?utf-8?B?SFFnQnBtMjg1WTYweGNTWGdNWFpJVEw4dCs3QlU3d013RUEyVXIrTVIydHlD?=
 =?utf-8?B?bXVxeVVDcHdxYXRtM0MyMndPWXI4aEpkZHl1VUhscVpaSzRnbng1UnE3Y2N1?=
 =?utf-8?B?b09vMVRVZzltOUFRL0QvRzI4MzJWNG82Z0VjNUo5LzRETkl0UUNSWnhObW1U?=
 =?utf-8?B?dmdMY0ZIRjJOSjVzQ0Y4Wm9LT2dDL1F1c1ZuZkQzcUhOZVV3QVVCN3dyeXFP?=
 =?utf-8?B?eEpFZUlFZS94dnVnWDdMYXNaVzJMQ1EvS2x4TVdlckFjaGtrY1ZsWUM5Z0lX?=
 =?utf-8?B?S2hVL21kNVhqYlhvZWl1R3hwRGFjYTVXRW9qVUdZZXlQSDNJcjBZNkVBR0Jv?=
 =?utf-8?B?M2g1QVh2djFuc3M0LzNhc0M2Vi9WZ0FjZVJhNkFyZTIwa1NrbGRHQ0MxdHVW?=
 =?utf-8?B?OEtGMDNtN3VwOVVxWUFjRlEyWkJVcjh4R011Skk3UlJDYkc4cnhEbTVDSW05?=
 =?utf-8?B?eUhoNkVCU1o3Z2JiNkt2M1QxQThYTjJlRlh4cHFQaHREU0NCTkhtLzRqM1Bo?=
 =?utf-8?B?cTBNbUVQMGJUNG0vc3ZRTU9vUExKaEZlTkVJWDgyWU1kRDlkamFqZDEwYUp1?=
 =?utf-8?B?NnNscnJXWEQvckp4RDFpMjkvOXlkMi9hY2RtMWZUUDBrUno3R1ZnNWUzZnNp?=
 =?utf-8?B?Nml2eld1bmYvbmhpdTNRU0UzcU9ZUlRVR0ZnQWh4dFFybVEwSlpNSTNVdGVq?=
 =?utf-8?B?Z1UxVC9YUzRIVHZCMm13YUprSDZadlJvT1UzS2doZlRhVlROa3BNV1JqVVYy?=
 =?utf-8?B?bFhGY3ZmY1BMMC9NaWRXdUZTSDBrNDN5Q3ZIbmt3dVRmM2NqNGNnMHBDOEEr?=
 =?utf-8?B?NUJUM0lSMWIvdDFmWGdGcmpxNVVjTk1OL2hmY09aV2tYbHJkbE9qYTMxV3gy?=
 =?utf-8?B?MGRUZmF4VHp4amhxRlljQzEwcXNiWmZNUDlkeWt4UVk0cGloMUxScW5IRE1W?=
 =?utf-8?B?eVFYQVM0MjROT2tNaFFEV01OdUtCOUpzdnhtS1FBeUR5RzFMcWhsZEpoRlNr?=
 =?utf-8?B?VlpuWVE4ckpsdEhEUVJHSWdyS29zd3FYQXZVZi9KRlFNSlkxVERqZjAwa1N3?=
 =?utf-8?B?MEVOSlVSM1RzY3JaWC9BL3E1WUFIUnN5bGtFeDVVRWtkVzhGWmFKd2FydG1T?=
 =?utf-8?B?TW5rQjh3elhjSzdnaEFXRmdZTnNJWk1IcXNlZm5TRGd5dlljakJ1YjJRREtZ?=
 =?utf-8?B?cWNhSE9leGUxbWpTNzJQT0QreWtvRVd2SDB0bzJKZjFNZTFCd2tJcHpZdmsx?=
 =?utf-8?B?eU9SZXJKaVk2cWlQcnlvRzNrVW5NR2pLNHp1MEdBSEJJUnlZL2s0ZElDalRF?=
 =?utf-8?B?dFlOeVdVZ2o3NW13Q2xMd0ZZVmthM2hDSHJwNG91RURuTkNra016Wjc5QVU5?=
 =?utf-8?B?a0hQQTRaeGFRSlpLZTA4VjczVGZxTEIvU2FSak9WdXZUZ3JaY2ZGbzdBTndC?=
 =?utf-8?B?M295WEI5WFVaaTJWSVlqWlI0ZEYycm5pTU1lKzBaMGE5bHErcXM1d1g3WGJF?=
 =?utf-8?B?aEJkVE4zeHFtekVjVCs1NjI3b1RFeFNpdG5SSHcxdWNUdU9DSTN2aWRmS0xa?=
 =?utf-8?B?NkJpQnh3WWZma013QVJEZGFveGJKRUhzWCs4bDF5TEtLY2hieTJHbmpJWUQ1?=
 =?utf-8?B?dlQzZkNFdUtpT1Z4YnBiMkRQbG10RmFqc3ZoZS9YSzdtTnRUM0xkRXZHL0o0?=
 =?utf-8?B?VmFTbTBuSzEweXNUNXd2MzNkZG5jK2dWRTM3bTNXQkFHSVZqZ1VnVElQclU4?=
 =?utf-8?B?RlE0VXg1NHl2YVdndGNRZy84cXZZSVk0OWV0cG1PcFRKNWNxM3d0TkZEQklM?=
 =?utf-8?B?dTlBUm9iQ1lPZnIyMUNQT0Z2SEhtVnJVZkZLV0dzOHlubDc0bHhNd3ZKWG9U?=
 =?utf-8?B?aWlFQ29SeGxnbjdMc3ZxajJDSkdXaTV3eGN4dktnc0p4YVk4RjVwQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8AA05DEB3AABC443B53728AC6FFE0DCD@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6325.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 933a72c7-3fcd-4de1-71cd-08d9ada72a5e
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 10:59:33.0984
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 7/JsP5IDu7rgFb+iZ4+bjjlutPMpWoY4yzcTDaCp950blaw/ao9GLoz+Dc1Wdilz7bXtB0xTFjCI6OO89F+l3Oi5ZIPDESdKGukCucd9OzFD9h8RYaPjAhhE8mRKH8ws
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB3608
X-Proofpoint-GUID: pgPzPRvTKRBFAchmx1SflG8LdR_Sypeh
X-Proofpoint-ORIG-GUID: pgPzPRvTKRBFAchmx1SflG8LdR_Sypeh
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_04,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0
 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0
 impostorscore=0 priorityscore=1501 phishscore=0 mlxlogscore=999 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111220057

DQoNCk9uIDIyLjExLjIxIDEyOjU0LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjIuMTEuMjAy
MSAxMTo1MCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMjIuMTEu
MjEgMTI6NDMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDIyLjExLjIwMjEgMTE6MjcsIFJv
Z2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+IE9uIE1vbiwgTm92IDIyLCAyMDIxIGF0IDExOjI4
OjI1QU0gKzAyMDAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+Pj4gLS0tIGEv
eGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4+Pj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS9o
ZWFkZXIuYw0KPj4+Pj4gQEAgLTIwNiwxMiArMjA2LDE2IEBAIHN0YXRpYyB2b2lkIGRlZmVyX21h
cChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4+Pj4+ICAgIHN0YXRp
YyBpbnQgbW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQxNl90IGNt
ZCwgYm9vbCByb21fb25seSkNCj4+Pj4+ICAgIHsNCj4+Pj4+ICAgICAgICBzdHJ1Y3QgdnBjaV9o
ZWFkZXIgKmhlYWRlciA9ICZwZGV2LT52cGNpLT5oZWFkZXI7DQo+Pj4+PiAtICAgIHN0cnVjdCBy
YW5nZXNldCAqbWVtID0gcmFuZ2VzZXRfbmV3KE5VTEwsIE5VTEwsIDApOw0KPj4+Pj4gKyAgICBz
dHJ1Y3QgcmFuZ2VzZXQgKm1lbTsNCj4+Pj4+ICsgICAgY2hhciBzdHJbMzJdOw0KPj4+Pj4gICAg
ICAgIHN0cnVjdCBwY2lfZGV2ICp0bXAsICpkZXYgPSBOVUxMOw0KPj4+Pj4gICAgICAgIGNvbnN0
IHN0cnVjdCB2cGNpX21zaXggKm1zaXggPSBwZGV2LT52cGNpLT5tc2l4Ow0KPj4+Pj4gICAgICAg
IHVuc2lnbmVkIGludCBpOw0KPj4+Pj4gICAgICAgIGludCByYzsNCj4+Pj4+ICAgIA0KPj4+Pj4g
KyAgICBzbnByaW50ZihzdHIsIHNpemVvZihzdHIpLCAiJXBwIiwgJnBkZXYtPnNiZGYpOw0KPj4+
Pj4gKyAgICBtZW0gPSByYW5nZXNldF9uZXcoTlVMTCwgc3RyLCBSQU5HRVNFVEZfbm9fcHJpbnQp
Ow0KPj4+PiBZb3UgYXJlIHN0aWxsIG5vdCBhZGRpbmcgdGhlIHJhbmdlc2V0IHRvIHRoZSBkb21h
aW4gbGlzdCwgYXMgdGhlIGZpcnN0DQo+Pj4+IHBhcmFtZXRlciBwYXNzZWQgaGVyZSBpbiBOVUxM
IGluc3RlYWQgb2YgYSBkb21haW4gc3RydWN0Lg0KPj4+Pg0KPj4+PiBHaXZlbiB0aGUgY3VycmVu
dCBzaG9ydCBsaXZpbmcgb2YgdGhlIHJhbmdlc2V0cyBJJ20gbm90IHN1cmUgaXQgbWFrZXMNCj4+
Pj4gbXVjaCBzZW5zZSB0byBsaW5rIHRoZW0gdG8gdGhlIGRvbWFpbiBBVE0sIGJ1dCBJIGd1ZXNz
IHRoaXMgaXMga2luZCBvZg0KPj4+PiBhIHByZXBhcmF0b3J5IGNoYW5nZSBhcyBvdGhlciBwYXRj
aGVzIHlvdSBoYXZlIHdpbGwgaGF2ZSB0aGUNCj4+Pj4gcmFuZ2VzZXRzIHBlcm1hbmVudCBhcyBs
b25nIGFzIHRoZSBkZXZpY2UgaXMgYXNzaWduZWQgdG8gYSBkb21haW4uDQo+Pj4+DQo+Pj4+IExp
a2VseSB0aGUgYWJvdmUgcmVhc29uaW5nIChvciB0aGUgYXBwcm9wcmlhdGUgb25lKSBzaG91bGQg
YmUgYWRkZWQgdG8NCj4+Pj4gdGhlIGNvbW1pdCBtZXNzYWdlLg0KPj4gSWYgSSBmb2xkIHRoZW4g
dGhlcmUgaXMgbm8gcmVhc29uIHRvIGFkZCB0aGUgY29tbWVudCwgcmlnaHQ/DQo+IEknZCBzYXkg
eW91IHN0aWxsIHdhbnQgdG8ganVzdGlmeSB0aGUgY2hhbmdlIGZyb20gImFub255bW91cyIgdG8g
Im5hbWVkIGFuZA0KPiBhY2NvdW50ZWQiLg0KIk1ha2UgdGhlIHJhbmdlIHNldHMgcGVybWFuZW50
LCBlLmcuIGNyZWF0ZSB0aGVtIHdoZW4gYSBQQ0kgZGV2aWNlIGlzDQphZGRlZCBhbmQgZGVzdHJv
eSB3aGVuIGl0IGlzIHJlbW92ZWQuIEFsc28gbWFrZSB0aGUgcmFuZ2Ugc2V0cyBuYW1lZA0KYW5k
IGFjY291bnRlZC4iDQoNCldpbGwgdGhpcyB3b3JrIGluIHRoZSBjb21taXQgbWVzc2FnZT8NCj4N
Cj4gSmFuDQo+DQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 11:01:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 11:01:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228796.395960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp74H-00027L-6l; Mon, 22 Nov 2021 11:01:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228796.395960; Mon, 22 Nov 2021 11:01:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp74H-00027E-3A; Mon, 22 Nov 2021 11:01:01 +0000
Received: by outflank-mailman (input) for mailman id 228796;
 Mon, 22 Nov 2021 11:00:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=smF8=QJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mp74F-00026i-8X
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:00:59 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77ce4475-4b83-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 12:00:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77ce4475-4b83-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637578857;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=2JWT7tYp+/aj1Rqf2pO5lx6Y/dgAT5U0g/ga01MYsuk=;
  b=g9GK+1TqvhEw3TaClQgsKhF/t7gu9J/o40c+SciD8OjxtDDIMBegWu0l
   z4HAd8aNGWMIX1gFJ7gxv6SuGB5/TmAYIQj+++CXJaaubkBQ+SmE7mSzy
   3jK5E1BQRCXD5W2BNC8TNsAlwqcH+6oUlp4004p7vG2LYhBUsJQxny55c
   Q=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: DwlfENfOavzQFCaLity1I9kDUkjxKahqdaRteV3YUsxKgh4svNkyvnJ4UCwOSRAw1tJH5iuk8F
 vZNB7nDoeP0QI9Qp/HJEzbWOe8Igr2eDnQL5PUPvQt14A8Md8+kmLhvUUSMcFy4g1BK25lAmy4
 E4D5sWtkC16aNPcPt1TnQiWGkMT0WuMvkHY3z2x94bef8bOC5XP1z8GdhP2cKmlbIx2IJuPUGa
 gll9WrmF3ZDJ5iW+prywYuDdsCxvQm/CPhMY/1xTxJhohZS+KeKzaM4WM+R7Fv47OrIu/GUIrj
 56hPNfY6FBA0A2H6fMJTVVtS
X-SBRS: 5.1
X-MesageID: 58367631
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:/gEu46gJuDKALxfkb4UmgdiWX161nRcKZh0ujC45NGQN5FlHY01je
 htvWmuFOK3bazb2eYwjPtuwoRlSvp7UndMwGVBuqnpmFy0b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy24Dga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1jpNvzZxkSPJb2o8IsUT9+SCxOI45vreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t1psQQqiFP
 qL1bxJJcBCZcTwUfWslK54ak9qDj0vleTtX/Qf9Sa0fvDGIkV0ZPKLWGNvKePSaSMNNhEGaq
 2nauWPjDXkyJNGZjDaI7H+oruvOhj/gHpIfEqWi8fxni0HVwXYcYDUUX1ampfiyimalRslSb
 UcT/0IGpq838VGtT8XsGRixpneLswQ0S9dWC/c96gyG1uzT+QnxO4QfZmcfMpp87pZwHGF0k
 A/S9z/0OdBxmJOEDjGz6IyWlgmJHxkXC0lZaB8abiJQtrEPv7oPph7IS99iFou8gdv0BSz8z
 li2kcQuu1kApZVVjvvmpDgrlxrp/8GUFVBtum07S0r8tlshDLNJcbBE/rQyARxoCI+CBmeMs
 3Ef8yR1xLBfVMrd/MBhrQhkIV1I2xpnGGCE6bKMN8N4n9hIx5JEVdoOiAyS3G8zbq45lcbBO
 Sc/Qz956p5JJ2eNZqRqeY+3AMlC5fG+Tou4DKiINIYUP8AZmOq7EMZGPxD44owQuBJ0zfFX1
 WmzL65A8kr2+Yw4lWHrFo/xIJcgxzwkxHO7eHwI50/P7FZqX1bMEe1tGALXNogRtfrYyC2Io
 4c3H5bbkH13DbyhChQ7BKZOdDjm21BgXsuowyGWH8beSjdb9JYJV6WMnOh/ItM9xMy4VI7gp
 xmAZ6OR83Km7VXvIgSWcHFzLrTpWJd0t3UgOiIwe12v3hAejUyHtc/zrrM7Iusq8vJN1/lxQ
 6VXcsmMGK0XGD/G5y4cfd/2q4k7LEanggeHPiyEZjkjfsE/G1yVq4G8Jga/pjMTCieXtNclp
 +Hy3A3sXpdeFR9pC9zbaazzwgrp72Qdgu97Q2DBPsJXJBf36IFvJiGo1q03LsgAJA/t3Dyf0
 wrKUx4UqfOU+90+8cXThLDCpICsSrMsEk1fFmjdzLC3KSiFoTbznd4eCL6FJGmPWnn19aOuY
 fRu48v9aPBXzkxXt4dcEqpwyf5s7dXYuLIHnB9vG2/Gbgr3B+o4cGWGx8RGqoZE2qRd5VmtQ
 kuK99RXZeeJNcfiHAJDLQYpdL3eh/Qdmz2U5vUpOkTqoiRw+ePfA0lVOhCNjg1bLad0b9x5k
 btw5pZO5lztkAcuP/aHkjtQpjaFIXE3Wqk6so0XXd3wgQ0xx1AeOZHRB0caOn1Uhwmg5qXyH
 gKpuQ==
IronPort-HdrOrdr: A9a23:G5xCNaszI9NCKd3e135SkPdk7skCkoMji2hC6mlwRA09TyXGra
 +TdaUguSMc1gx9ZJhBo7G90KnpewK6yXdQ2/hqAV7CZnichILMFu9fBOTZsl/d8kHFh4tgPO
 JbAtVD4b7LfCZHZKTBkXCF+r8bqbHtmsDY5pau854ud3ATV0gJ1XYHNu/xKDwReOApP+tcKH
 LKjfA32wZINE5nJfiTNz0gZazuttfLnJXpbVovAAMm0hCHiXeN5KThGxaV8x8CW3cXqI1SvF
 Ttokjc3OGOovu7whjT2yv66IlXosLozp9mCNaXgsYYBz3wgkKDZZhnWZeFoDcpydvfomoCoZ
 3pmVMNLs5z43TeciWcpgbs4RDp1HIU53rr2Taj8A3eiP28YAh/J9tKhIpffBecwVEnpstA3K
 VC2H/cn4ZLDDvb9R6NqeTgZlVPrA6ZsHAimekcgzh0So0FcoJcqoQZ4Qd8DIoAJiTn84oqed
 MeQ/003MwmMW9yUkqp/VWGmLeXLzYO91a9MwQ/U/WuonlrdCsT9Tpc+CQd9k1wg67VBaM0o9
 gsCZ4Y542mePVmGZ6VNN1xMfdfNVa9My4kEFjiaGgPR5t3c04klfbMkcAIDaeRCds18Kc=
X-IronPort-AV: E=Sophos;i="5.87,254,1631592000"; 
   d="scan'208";a="58367631"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BWUBcHu+DFVBLNjx4XO7Pz/TrVYxeEV8g5IwlkH6sXWuWQMl/wS9GWxUjn9iaK8IBJa8cNSb4VptznyxR3TQH9k2Y7OG3PfLE0UU9y32e+LzchApYABZq1WcyYf6uUVRsuxMHTh/bg+bOWMUDM2PhxgPqU1GH8ecE6OM8C+IC/szbgt+5NmmKBFaWWFYlZKp3QbFq7OEAwC82eVvQ6qWrzD0Ojg2Pn8x1j18xm/oMKfVqvdzQNkVq6gtzLC5LbKx1m6YZVZaERn3PC+cdv7/4TUPH86VW6h5bi8/Ige6Auh9pIyvOBzKAproLcc+DNElIaWflOPtvpP271S769aFCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6qbLN8RgILPf02a+OrgIlXBuOT5Lo6ac1OQeWn+w24Y=;
 b=HbFlJWMRHc1etvgtoAP36wF2kH0sKBhqtwbGegOUFw9FhWBMTy3wILVtl5cCTM3CWdPA3m7N50g0tDU8AMkm08Sy2ioGOZYuhUC1Rgu7zloqI9NxAkq0gTtNzlqf9JGDZxuKJAGhbfE+cY2PHj7ll80GUvbnmySsal5hEqKg/ylU0CA5A7WvVzztyrAmO4m1CDIiEgU8WYhZYqaDtMQqlG0tfCz0rqetzgvdlPeczUFwgo6gCyk8fyXIIJ8M/t31rQ6s5+xT9RaPuG8l/2FPpIcC6WY5NBwGiX0AtFGK5THW0NSt9jSoX+9MQZMIDe30DWqIpxNy4XFAZLHZ1x1OoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6qbLN8RgILPf02a+OrgIlXBuOT5Lo6ac1OQeWn+w24Y=;
 b=ElZR/ymjzfSU0KdepqVfgH9r6pBCJMnilfZfPynNZ+O1V+b7+tSfKNQbEC5WffzdecHs55khoE3+2zZSB/rz9TuFxWpeIj6q9CUwhwScosdNZFGTEZ6oD8CepgLPbWCV5dMVMIJMa7vwYvIOogZVZESmmi8dK+yvrWhjLJoKNRQ=
Date: Mon, 22 Nov 2021 12:00:42 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Community Manager <community.manager@xenproject.org>, Ian Jackson
	<iwj@xenproject.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16 v2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Message-ID: <YZt4Wtr5uGeBVrZT@Air-de-Roger>
References: <20211122104005.58897-1-roger.pau@citrix.com>
 <7f8fd875-a69b-1821-5abc-a8062a7a6242@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <7f8fd875-a69b-1821-5abc-a8062a7a6242@suse.com>
X-ClientProxiedBy: MR1P264CA0115.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::33) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8bca3a12-e159-4d02-0eca-08d9ada7570d
X-MS-TrafficTypeDiagnostic: DM6PR03MB5067:
X-Microsoft-Antispam-PRVS: <DM6PR03MB5067505B89D2EB3F8762B10A8F9F9@DM6PR03MB5067.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 23gf22cha0ILwhI+WS1S0wwS5qzUW8fJqNc5qeY3NqiQMnh03qfDbiOSEFH1o/TDqOtu7f9PTzj7f7cCZBONPtXVbChOzy5E9jvCYwES4P29sgKxk0Dwfjvopvl7MhP8kmuF6WolEKQh1pq8EbdB5RprtaOiUBOmyLxw2wUP25v5zHTinVZpG8UM1rxrnWtm2EqO2u+RDhn29yN8lZHUoevoX5e1+RV+M/cJTQ10Z3nUVdrpruIX1030Arhp2WD38lgPqM2cBpsoDNKmeAP7jIXEx9SXNU47jAStuaK4aSbqyREhwdKls/hplOKJs+nrEqxb8pI2gkhnR0NFZFJzcWzuxnF7cizT8Bed2joGq7QB8LLb7Eatv3jETUdj7b6IACRSjgQ/HGJZRooT+U3nuG/SFsdjeQ8SSnhsrgVfhA8KhGoTeXcJEmn7ErdxGo7JzeEQdZs+WaVbKVXDDB2NGYLT35O5EWvJNvaO1QNO5FNj/EXTtQWsMtFgVKw4zFUwEm8ZIt3pwUj6Zxf/o7iwUt1ymq/zDc5wDUvXh7Scvda4O3SAWDKDPj26Ig5Y5qanFkubRdxKnQ7P1F4oli6gviLhrFL6Plh+Nl69mR7CHlxRwOe3aBW3WyRUEFPkAUEbeAJBDOGeFbJR+uELUkymm5Oufk7fl991JgYnN3qUvBXdCTcJi2us3QOyY5RZ1NDUG/BU6DxdhlZjN84OZCaZL4CigtAhdfrIU0GEdV6SAelxOVq1Vg8d11SdgWkS1mkI2kv2uFefcRytKEf3J9mCXxMScTiiw3n7f5oYU5sWMsTw2RsRD/tqeNQwJlOhu1tZe4HuwwbIYKs3vdBreoqHrbIVH4GfbM6MNA+UPCyK6ZptNBq1xAsmiu4aRcIlPjR4
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(66476007)(8676002)(86362001)(8936002)(186003)(956004)(82960400001)(53546011)(9686003)(2906002)(54906003)(38100700002)(66556008)(6916009)(33716001)(6666004)(83380400001)(26005)(316002)(85182001)(5660300002)(4326008)(508600001)(66946007)(6496006)(966005)(6486002)(59356011)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R0dhM3FCT3R0Ukc0ZVRNNDFnNk10OTFhR2hyZGN4VFROaVpLeHpEZkxxNUJE?=
 =?utf-8?B?RmtjakFyUWxjbUlCY2QxVVQ4R21mNnFLUzB4ZzNaZ0hia0xqKzBYTTFlOTF3?=
 =?utf-8?B?bGN6RE90Y1F4OTZSN1N4NUVLYnJEMXl0MG5FMSsrdUhVVVVjSzVyWWNIcDRP?=
 =?utf-8?B?Y01VcS9KMk8weitvWm92L1dWM2VkMFpxck1PSHNtTFNHeEpieUFwQWVzMEV1?=
 =?utf-8?B?d0gzbE9QU0tuTFFXZzVEeFQ3SGV0azVHcnVYTTNrMTk4dTkrTmdhc3N3bS8r?=
 =?utf-8?B?QUR2VUludW80aDIzMW01QXMySFAzWThHSk84ZTV2TVFlS0dKWFJwMG9MN0tp?=
 =?utf-8?B?RGppM2xsSXZmK0x6N0JzOHIxZEE2Q3VIL0xSZnNSUm5CMFBUZEFIV0doOXV2?=
 =?utf-8?B?NnFGM1pLL1ViNUNQb3RMSHJMVzQyY1lQNjFRTmM0aUp5YW1wYmRvK2J6bkts?=
 =?utf-8?B?NGR3ZVp5MzE1TUQzdzZNbFJLY2t0OW5CZU9wUUxKRUZxR0JXSFpVYkxCTlY0?=
 =?utf-8?B?QlZwMDhyZ2RNQ3hyelRzdklJN0NrRzlsLzBlQjF3UzBmQTRSMTExanNYdEQ4?=
 =?utf-8?B?dmNuVUh5MVN1ajVoTzZQVVF1K2pFRUZJNDJZNmVhTktQcVhoLy9KVkZaZGdS?=
 =?utf-8?B?YlJiaGN6djF5cUg4ZVdZUDZad29WTldmWERmbmUrWEI5N05BUU9PRTNydWsr?=
 =?utf-8?B?Z29aeFNqM2hUazNmRTRUZFByV0wyNTl1NHVhTHF4S2VCa0s0OHFpOTJhcGlt?=
 =?utf-8?B?N0dvR1VyY3RvdVNtNnRGUkdSem11UGhuZnZTVTBCK2hLM1FkeG1XRDdxa0xu?=
 =?utf-8?B?TUtzSEtEcCtoUksxVkpQc2dIS0lMUzhZYU9XVlQ0ZnB2Q0duRUlWUXI2R2tF?=
 =?utf-8?B?azJCbmtNbVVZV1FQc2hJREI4RitYMlVTYVhSOXNKWjZKb004dVoxTEhqUHdB?=
 =?utf-8?B?YnR3cWFFcm9OV0JQRlUxZFRKTWQrNi95eEZQZkpocy9GcUlvRTNxNmVPVjFK?=
 =?utf-8?B?WVhMNjZJL1lPS3BWb2RzZU5Xb2gwWHc4NlNrT01TTTdON01nNll4eEEvODcv?=
 =?utf-8?B?ZkxvQWUreEM1UUN4eVo3UERNM1ViZWpCUEp1UXowMUtueVM3SUlncmsvZG5i?=
 =?utf-8?B?YjMrMTJCdG5hdGg3TkYxYXg0MEt0UTQ0WWxjSk9QRERuOUdsV0dyWGJoQmlr?=
 =?utf-8?B?U0ZQbTN4eXFOL0V2Q0dkYnVwY1JFZDdvcmtGQUJLU2pxbGNQa3FWb2ZRNWpQ?=
 =?utf-8?B?VUdoVmJJb1dJTFAwb09GRUkyNG16ZkZBWFNwaER0eEtxdXVkNkZIRkJhVk4y?=
 =?utf-8?B?TnUzMmZZMXVwTnh6blJqNmlHZmlUb0NTZG44ZGZnL2JqeEU0TFlXT2VydHF3?=
 =?utf-8?B?YW9tOW5xRjdsM2J3bzdQYWRCdzlYMUYvTmt4cVpCS0JIOVBXc0Q2dW9hb2oz?=
 =?utf-8?B?UGprWWJobVlzalJxWXVXRTZwWUZmNWg3TEdWUkczYmlXdU1MT0p3OEpQeUgw?=
 =?utf-8?B?ZGtIV0hmRHRqeDQ1Z1VjL09GNThtUHdORkFKOUsyWUpOQmUzRHlHNVc5dGNt?=
 =?utf-8?B?SHM0TXVnaU9IamVrc25IL1daOUc5V2RiWmw2VHN3YnNrRkp2eEJsdDd2bmNj?=
 =?utf-8?B?cEhiTHU5cXVoTzcvM0NwaHVmVUdnUTNSdnBTRTUyeUF5YmRuRzlSR3VSQUkv?=
 =?utf-8?B?bitTZHMwTytGanU5WkhIVXJlMkZJNkdkOTY2ZmJTYVd0eDEyeVY2VDV6NWZW?=
 =?utf-8?B?U1ZILzZuUW1KenNzQkVRcWc5dGhiOVVqak0rNGY0VzlDZmRaUU5RMWt6YklP?=
 =?utf-8?B?ZU92RWwxZWtWNnd2elhGNjEvNTJVbVpIZ2d2S1hYZVlqcFBwbDEwTWp1UjNh?=
 =?utf-8?B?MzRmUzBMYWtxaU1NS2xOd2VoUDJkVWVqdm5jK2dPWmk1b3JBVEMwbFRlZHM1?=
 =?utf-8?B?NGtnNklDRk04QitmVUhnREVadFE0Z0dWMUc1YnRpR0JrTy9mTE1aVXlQU0xL?=
 =?utf-8?B?R0gyOGZCNjdQTmJlWW1mWUtWNUZtamN3L3gzRHVIOFhWNCtEcTR3NlpSZC9C?=
 =?utf-8?B?VGlWOE1xUVFkTFUvZmlVQmZ5dnVGcHNzOW05TUdwZ3lmTnRFQUNUQWhGZ3FC?=
 =?utf-8?B?RHNUallpak53V3RrdlpUZzVUbnVhQkRMRWpXMnhyTTNFZ3o2bEZ5akRTTU5K?=
 =?utf-8?Q?Pail2BMEellocs5b90uX3/I=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 8bca3a12-e159-4d02-0eca-08d9ada7570d
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 11:00:48.3523
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hMUC+shsvl9bRq9pjsF1h6jwMAwIccLq3VHPxdMBupRdr3xTTmYm2LMUj/pU86qvKfc1pe1ELEAakqnWXH5cHQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5067
X-OriginatorOrg: citrix.com

On Mon, Nov 22, 2021 at 11:51:59AM +0100, Jan Beulich wrote:
> (reducing Cc list)
> 
> On 22.11.2021 11:40, Roger Pau Monne wrote:
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -21,6 +21,32 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >   - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
> >     no longer be built per default. In order to be able to use those, configure needs to
> >     be called with "--enable-qemu-traditional" as parameter.
> > + - Fixes for credit2 scheduler stability in corner case conditions.
> > + - Ongoing improvements in the hypervisor build system.
> > + - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
> > + - 32bit PV guests only supported in shim mode.
> > + - Improved PVH dom0 debug key handling.
> > + - Fix booting on some Intel systems without a PIT (i8254).
> > + - Do not build qemu-traditional or pvgrub by default.
> > + - Cleanup of the xenstore library interface.
> > + - Fix truncation of return value from xencall2 by introducing a new helper
> > +   that returns a long instead.
> 
> This has been backported, so it's not really new in that sense, I would say.
> I don't necessarily mean to request removal from this list, but some indication
> as to its availability in 4.15.1 may be helpful.
> 
> Then again I realize this also would apply to a few other items; this one is
> just where the aspect first occurred to me.

I'm not sure how we could properly track backports, short of adding a
separate section for each minor version.

> > + - Fix system register accesses on Arm to use the proper 32/64bit access size.
> > + - Various fixes for Arm OP-TEE mediator.
> > +
> > +### Added
> > + - 32bit Arm builds to the gitlab-ci automated tests.
> > + - x86 full system tests to the gitlab-ci automated tests.
> > + - New x86 pagetable APIs.
> 
> May I ask what this is about?

It's related to:

https://lore.kernel.org/xen-devel/cover.1619014052.git.hongyxia@amazon.com/

But I realize I should have added "Switch to domheap for Xen page
tables" instead likely. Some patches in the series had "switch to new
APIs" and that made me write that entry.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 11:09:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 11:09:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228802.395971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7Bt-0002v6-5L; Mon, 22 Nov 2021 11:08:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228802.395971; Mon, 22 Nov 2021 11:08:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7Bt-0002uz-1J; Mon, 22 Nov 2021 11:08:53 +0000
Received: by outflank-mailman (input) for mailman id 228802;
 Mon, 22 Nov 2021 11:08:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp7Br-0002ut-E5
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:08:51 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9222233e-4b84-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 12:08:50 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2109.outbound.protection.outlook.com [104.47.17.109]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-20-4E-nAg9nPReY7P5fOY9trA-1; Mon, 22 Nov 2021 12:08:49 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7024.eurprd04.prod.outlook.com (2603:10a6:800:124::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 11:08:47 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 11:08:47 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM0PR10CA0106.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:e6::23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 11:08:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9222233e-4b84-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637579330;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=mMLW8+z5HHZOqnwplZ51EAucsTsBOHi17XgKnbqsjpw=;
	b=X7Bm8XEoy295QG3wKM60KZeF/jDkxJGxOoRd+RL8Wrvn3EknhJ91d4Zd425YI30owNZipr
	RfGOhnQzQsJYIomFz4sO0B3sjqoxZSC8LtlWMxR5ETjzMHOpqzcYd27tmtRqcLgaJQm2NW
	NzadIp2ltGa4Fn4Hu3hj7iFKA9PNMHI=
X-MC-Unique: 4E-nAg9nPReY7P5fOY9trA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=n6e9z3ZzjhhWTlBNrz6aIM2VN+nWmptmr6ViXSU3mXDiRZZahWNDxYCUdUUAhTkJH4+/Q8IwrlYoDXZ28rZkzpCjCA0OmVLt3sZD2Ts2NGq9u4BwZOKm1nmNfr4CiFo9fZ1sW2M7B2Rd5jlRvOBIWLFM9L2z1MUcOCgSvwTN+/COXcimHQkOYvBzWeVKqjAFTiTb+XGaZ4CRrniDBH/OWtj8VRWaD8qEp50sZEWu4oZQYad7/NTbH1D7uyeRNkC2Tim3GGg+q56Fv4xIjfOliiQqTt2wqRYi67pXgHqoCbVyQsKeswKVRbs1Ty9XC9d0I4MmCn40mKpxo+OPczgT6w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hj2qBNU4ZDhPcPoLzKBRk1i2q3LuM+GiyfwFUsOYV9A=;
 b=ZSxcr2eBzNCKWTNeuEXIoJUgXjSrOidg9fRmV9d+xIDzf5cCSCIZ229nn9luZu8DAcvAdJdJ/RY9JNwf5brT5zvthAliM2nAyxqB7kfMEmZ8oaaOSr5CzGzlZBMAzV1qjsG6olb/5kOdOEGTphfJrGoQWwu7Tsy2bcGAPhM40Wyg1Q74wD2QNBaVk4mlcxjZc0fD2nQvpRXiBGC3eLtC4CIrNRs88uB2LPTq2PflcGPmmERWJrrUZHYqpg/ABWTs1i6rhR9+iKUQ3gAcocYoSU6AWM9ZJ5gJpaJMTWfFgmi1DAcA2kbKmDt/Fccl7Fih4ZkOmRDslPHE1sZF2bl6yA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <44e5403f-bd76-dbd6-7af0-b1807a9c89bc@suse.com>
Date: Mon, 22 Nov 2021 12:08:45 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 2/2] vpci: use named rangeset for BARs
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <20211122092825.2502306-2-andr2000@gmail.com> <YZtwj0OKrNaZ7s5X@Air-de-Roger>
 <f1aaedc6-73c5-e4ac-91c1-323f44d83687@suse.com>
 <1d9d5540-5fe2-6897-1704-b296294afe6a@epam.com>
 <a0345cce-5b44-6cdb-681f-002403893e31@suse.com>
 <90fe8b04-4bc3-2d10-e94e-70e5e28c9780@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <90fe8b04-4bc3-2d10-e94e-70e5e28c9780@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM0PR10CA0106.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:208:e6::23) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e48a7f10-82f9-406d-55ca-08d9ada87467
X-MS-TrafficTypeDiagnostic: VI1PR04MB7024:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB70248C1E48B4E3856445BE26B39F9@VI1PR04MB7024.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:148;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/8bHm+mMUov3SwuBo+NUEguvYSic91cHgNnjgmNek7S63Klk8BQbMrxhFNttuhWmKpJd9SLWLGZ3N8BCtZaZyT+MqINBHIXYqcwEKWtIYDHqOPTEO6Xgqji6bRpnE+xbgujeTkzCZOabSjvJBdgoXkXjGYQEmqrnGrVFJnHzji0eSz93RclU9M/jwl2YMJCyzu1h2GXJqHf81ATKEheut7V7W46W5u/pXs+tTEDEzIwl95JTmPtTui61sm9PcA+2wOblLfUTap/MufIYlb3iSyb5Z1Iy49+ZO320NXEVZQzrZMmG2MZhWK+4EbUaOGjfmm31ZhgGaUBPT6y0OrTtTwY+mnrzFtOtH9MC49quplQLAJ6pHI4cFL872UVENBS/SzKQmBt54C9JPK460KzuSXm5TH6plXO9h0nka21cawQKiO/ZCrd3zgLqLmZM2pg/hkeCg3ElBiVx82ajJSmZvaNNBdlzlZsTtIP++QEjlf3cYJjrTTgtgeCvsU6NpT3TtRMJD9ef462h6O6Usr0H64LBMDTUvuDz04vvytQzJcQUoKyXk513iputVpj+raHKQKw1Aj4aohqIlhf4kah3enw7Mx8f9I3u+wEhxfB5SlN0+Ng2/voBrMNZDktHccX8YBjgw7CtytbE+bx+0Gh7vHxjKmN0gojIogqNTqyNeaMwh61G+8HbsvudhDbQaboLdz0KDvszQLQ0mA4idWY9S83U9C7sSzIQak8yxDvEx0s=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(8676002)(2616005)(2906002)(36756003)(31696002)(8936002)(508600001)(6916009)(38100700002)(53546011)(6486002)(54906003)(83380400001)(66946007)(66556008)(66476007)(5660300002)(4326008)(31686004)(186003)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?WoqkmGCQY9HuLg9iuSSmFfGwZO/qNPufoMyBBkCbnTRknA9baAM/PbqMCaiU?=
 =?us-ascii?Q?kqnZRGp//ZJZ2e3JOzMYpaWcf4j9voleSMxD0t/Go/aonrPcEjttsMV20xqn?=
 =?us-ascii?Q?JLCD/+saemuSam6G3m7s8dzro+zyfjvhUsgcNAcUKy68NGo8cwX6G/kEYVRc?=
 =?us-ascii?Q?cq5HHjOO7XGucWC0v5vpgaN51h9872T1F7KSn/IOSxdgkJM573cxy29Ak0Nu?=
 =?us-ascii?Q?aNaJ+/GZy6SRPA17aGKMguwVUY0km+gFqrWy+EdfDeEuiJzABpLW6twE8tul?=
 =?us-ascii?Q?CFD0GHP0o82rmft4gF945nKn3548ulEsZTwEHVvB2AnND6ZEgRC7DqyI4osi?=
 =?us-ascii?Q?WTJgNoJRIyF+aulbY0wYDmaFRrFggbBkKuzYaTe7jCwuiOEOy9arSDM58p9u?=
 =?us-ascii?Q?TjtKLREg+KvI2BnfziiPlfrmSLerXsqvxabwuKHfSatKsewkuYKt39jh+snr?=
 =?us-ascii?Q?HkHVm3wfnTVQOk/oS5MiwEIaiSdTW5N13HD5kX15c00NpZSvJMSuLrc51IhE?=
 =?us-ascii?Q?AAYZ9xymSOsGYd2dpHYMoQ4t6lGVYxWiGE0MCiJGP6FPvf6NENbQT7fcapdK?=
 =?us-ascii?Q?ATwynM+FzHQjZ/EnCDHeKzrpfCcjxZnUA9dLaolm5alUKNC8s9vzWzV9Uaa5?=
 =?us-ascii?Q?Nt4m8owkSAsmtpL+EsiOBUm5eLaBfxeAMiCaAJdyBi6NLwZfE7e4yVmgErbP?=
 =?us-ascii?Q?GKXUfgI9HrI43mGCzt63zzG5AQkFYUoKFpYN5rfaybv9RX7Cik1Tv9C1sKZj?=
 =?us-ascii?Q?l1UW2jCCDggbWCAPSdHZ67PEhbUsR9Be6apS0hy4NxJhjuKcNihIbemqhy+K?=
 =?us-ascii?Q?77ZSC33oOtLGlIaIlGNIHm60lAEXvTlUvrIicQBD+TLi7ls4zCcA39rZT3ao?=
 =?us-ascii?Q?dqOyVWAkqzpDzqirxbFlao1JDmRBwfWJqXdcqyTpzlbDwzbJWn/N1xPdeSzq?=
 =?us-ascii?Q?6odRNvMGXJwJIQEZCsyy6Tm93mB3YE4qGMM9ueZ6RBLahFImI7ABGmnsOGQM?=
 =?us-ascii?Q?IptWzDzZ2k7T43CXAfwUwGHMaJtZH6V2FGV5MxXyHrtchB6MKRoopcdVNAiu?=
 =?us-ascii?Q?Eofy1c/1beLn/nIZyr7msF6q6FLkufvb9rDhwjv/QGD2IgVlUL7DU3AdyydI?=
 =?us-ascii?Q?6wbr2GehtjSEt4orM83MMnT9s5jZHTK6XPc8Gr/2U3AstczHL8ONbYfHTMUU?=
 =?us-ascii?Q?iqh86si8/Y5De+uuJFYYZJe1ufsTQ9MCfEFMcBT4ufkE/cZ9EUjGZ2LOIxW7?=
 =?us-ascii?Q?mQBVOHiKvODAiE1X+hOA+etpkT+Y0Alf2LUn02HI8rgXxi+pKOL+jfGtnzvW?=
 =?us-ascii?Q?vGUt6KXGwSG2h+g//Qrhhq8yNbXdPDjw3/8ks4oYIvxg9OKfUUu1iBdMUHAZ?=
 =?us-ascii?Q?neh54Pdyk1m+O/+rZ3/8O6vQpsAQn8erXbn0JShCX2fzT6VNWNdutk5+Tmss?=
 =?us-ascii?Q?hz8O3mDN2nRlpqG23XrdFTm3Wvx/aSZrrju3DtKKILZKXERy2dC8WxL/GwPc?=
 =?us-ascii?Q?QlVsHj8wjmmDTNgbacHoJfD29n3H5V1aBcp2hyaSTBOBTXqyL/z0MgMhuxAB?=
 =?us-ascii?Q?LwzNYrpZCk1KOMimpLPdAK37ko0qLnKgwGsfWyt8yRZ8im0K0wlEXdn+V6/K?=
 =?us-ascii?Q?Xka1e6bhe09zjQTJ1GUUvEdXvs0WVGi4PKRFwU+xPQ/TTlZ6O1gT/Rr6O1+M?=
 =?us-ascii?Q?Wkt1Sth9mPcbTaU2FhLCAqT0QaQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e48a7f10-82f9-406d-55ca-08d9ada87467
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 11:08:47.0145
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 61jnGtvHbdBf0UshvoqqshzqHuyoT8OLXrTlh14oC78cqS7hd+AuAEufiQ/fz19g/JrOtVeqXv8YSZ3dHoMbsA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7024

On 22.11.2021 11:59, Oleksandr Andrushchenko wrote:
> On 22.11.21 12:54, Jan Beulich wrote:
>> On 22.11.2021 11:50, Oleksandr Andrushchenko wrote:
>>>
>>> On 22.11.21 12:43, Jan Beulich wrote:
>>>> On 22.11.2021 11:27, Roger Pau Monn=C3=A9 wrote:
>>>>> On Mon, Nov 22, 2021 at 11:28:25AM +0200, Oleksandr Andrushchenko wro=
te:
>>>>>> --- a/xen/drivers/vpci/header.c
>>>>>> +++ b/xen/drivers/vpci/header.c
>>>>>> @@ -206,12 +206,16 @@ static void defer_map(struct domain *d, struct=
 pci_dev *pdev,
>>>>>>    static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, =
bool rom_only)
>>>>>>    {
>>>>>>        struct vpci_header *header =3D &pdev->vpci->header;
>>>>>> -    struct rangeset *mem =3D rangeset_new(NULL, NULL, 0);
>>>>>> +    struct rangeset *mem;
>>>>>> +    char str[32];
>>>>>>        struct pci_dev *tmp, *dev =3D NULL;
>>>>>>        const struct vpci_msix *msix =3D pdev->vpci->msix;
>>>>>>        unsigned int i;
>>>>>>        int rc;
>>>>>>   =20
>>>>>> +    snprintf(str, sizeof(str), "%pp", &pdev->sbdf);
>>>>>> +    mem =3D rangeset_new(NULL, str, RANGESETF_no_print);
>>>>> You are still not adding the rangeset to the domain list, as the firs=
t
>>>>> parameter passed here in NULL instead of a domain struct.
>>>>>
>>>>> Given the current short living of the rangesets I'm not sure it makes
>>>>> much sense to link them to the domain ATM, but I guess this is kind o=
f
>>>>> a preparatory change as other patches you have will have the
>>>>> rangesets permanent as long as the device is assigned to a domain.
>>>>>
>>>>> Likely the above reasoning (or the appropriate one) should be added t=
o
>>>>> the commit message.
>>> If I fold then there is no reason to add the comment, right?
>> I'd say you still want to justify the change from "anonymous" to "named =
and
>> accounted".
> "Make the range sets permanent, e.g. create them when a PCI device is
> added and destroy when it is removed. Also make the range sets named
> and accounted."

Making them permanent is a requirement of your change iirc, so I'd start wi=
th
"Because the range sets now become permanent, make them ...".

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 11:10:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 11:10:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228807.395981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7DU-0004Dg-GX; Mon, 22 Nov 2021 11:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228807.395981; Mon, 22 Nov 2021 11:10:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7DU-0004DZ-DT; Mon, 22 Nov 2021 11:10:32 +0000
Received: by outflank-mailman (input) for mailman id 228807;
 Mon, 22 Nov 2021 11:10:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp7DT-0004DP-B4
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:10:31 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cdc966ff-4b84-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 12:10:30 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2059.outbound.protection.outlook.com [104.47.14.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-17-UwlgUN-LPt-MNeLlMt5ZOQ-1; Mon, 22 Nov 2021 12:10:29 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7152.eurprd04.prod.outlook.com (2603:10a6:800:12b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 11:10:27 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 11:10:27 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM4PR0701CA0014.eurprd07.prod.outlook.com (2603:10a6:200:42::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.18 via Frontend
 Transport; Mon, 22 Nov 2021 11:10:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cdc966ff-4b84-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637579430;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=CYxbTAjfQ++BKVI79TLlSSTbaoHOQzuiVm0U3g8puP0=;
	b=g7PLQelTrD0SbQf3eqxUehtPwt2JXuGO8ubxT7tzvc285tsLPkVz8hr/D4agL5B6N9mQG7
	Nes+F0n9ua+NQ92Kcqs/ZUGtRTebHLNmPBFHzdElllg4Oc3Q1D9jav/4Ct0pZ94MbsG9J5
	GwVK1y4IMUq7sCbEhqOUWqc4LBxRZII=
X-MC-Unique: UwlgUN-LPt-MNeLlMt5ZOQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hWuiHhGX24vkqtwjDJ/vmJgp6BTp61YiOORk/ggV5gJnCA72MFNOUK+ozqp96LeJy3ynSS6jfFMJOyoaBhVSlXRE1jaJ9KMSuCEbCJAHN9437mV4nYk+TykWVtkaO6ZaaOfVNJbjVHeSMI1UE+9OxYKogNemuQSe4Sf9QwFa8kQcrT+Va7vs2nvH85SKIofutuwNWjc7PyaRhzdXnsprrisTQPDNyCNSp3qP2BpyEwcfzGVIeaXXsifNvOjhm0ZfPCRCzzz8tvxLtVMpn1hZlR1nmsQgmx6SgfyMeBfJxUbpkiQCzKtQBbuEoyYlgoleNuRJDBmZrTrqNxotGR+VOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uACt18g6d1l4/ffA2fAj6Gp5l6rTw2DbUOLkfwievbQ=;
 b=kmhwLl6Ghzu1zVaWMOJVWEmZmO0dGOMsU1xH8T/iMBghJJoYTKO3L2Q3UiBA7Igf3SDvlA8SxTnobvhGEvU+VMMjKoSLeAKbQq18ZPCdrbw14YgmcRbzPMvmBvFQHnrCJvoGg8k3AmDEiCn6qvthHILgQBz8tzPCoaIlXvwE29BWCbBJCDDuCVwVjWI/4DroTeMToSFIDM6yu133blrfbZIHFOIWSgjRmnIDxJrRSPJ5JFaNL6sZuBOCB8rFJ5Kw7rrHpYs/n3Az/3AoH1MsgpCyB4Yi7NYrt8bE98PlQY97Tk71spT0Ii63hmrNto8IW4COmfa5kHRuFFwDDBqZVg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d1838c29-9a80-28d4-474a-b72daf7a5488@suse.com>
Date: Mon, 22 Nov 2021 12:10:25 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16 v2] CHANGELOG: add missing entries for work
 during the 4.16 release cycle
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Community Manager <community.manager@xenproject.org>,
 Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
References: <20211122104005.58897-1-roger.pau@citrix.com>
 <7f8fd875-a69b-1821-5abc-a8062a7a6242@suse.com>
 <YZt4Wtr5uGeBVrZT@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZt4Wtr5uGeBVrZT@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM4PR0701CA0014.eurprd07.prod.outlook.com
 (2603:10a6:200:42::24) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5170c5cf-a7e0-4be3-d7da-08d9ada8b032
X-MS-TrafficTypeDiagnostic: VI1PR04MB7152:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7152790B119264F4C0772F40B39F9@VI1PR04MB7152.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	phlW5hLN+EU97RACYpvrV4aMYI3jeUpZPqYqcm2xkLnJXyJkQmnU/5cKS3h14aE/GracGtSaP9sdLnT/WrRNvBlbg+dmuiWuhBAn6od8M7vB7im+GVYPN580wmCF3Wx0ZZY8Fv7gXrrljnuABFf4Q6glDxg681A91EGj0bxun5dAAX82Bc39MGABsELFphGDgp3VSsh1oCt/eAVtmrtZI8oztUnKCky5RaCF6cPlidsXV6BD1qqf/A9ZkDMyGmx9LcahYbggseZ+GEc2FGLcf27FszSyoBXwzHHXAG7u5kfCPesOZsRTzJyP5p6Cs4brQ4M4l7OAOgy/wVOqxT6NdpnkhQDCaE8O43Y/5Zn4hCaJcsr9FV43db+1TWc+CGQvzsbsgXUmgnTtubpkGhy2bWkwR5EFYfolKRQTbPqDb6h4+fG+auWzPfsSTn6enOpx+7LZCT6081zIj7VL+X2BfoLakdeThLy0DNunpy9lGLU4x7ewvX1qz6r5KrapmaEic++vj7XFU4OPHZFuzgWncSiKG0Duw/G0ylFSNj+y1oJMnrk6IR6nTyUR13Z4Uqjz08KWSEnSzLQI8gDYfv4bLOPLO+PJzWavouF9dV6v+H+Tl1UF/cec/SsXSMPMA0xQv63a23A4F6AtcvMnarfaaUGHLhQIpeUI88RPs32O9tpMxjs3o3m63MPcI4NJ4s58MDqcvKEJ4/77LXACwyV2LLQmM1yHx4HuPqXLkJmn9zdhISMWhtferZu3D/LjfrvF7sJT9kImpSFIVBtwhVZ+eEe13VB6nSyCu0r8TwtILbpoSqbm8DIlkCMnu/oEwvsCPtyiwvM+Gp0vc3jCrlJ8ieTZfkw8wi6NoecsFUyAZs3BW2XF8ktPlmAUOd5zqQb3uZE1wiB1X5YeO3T8OH+cLg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(86362001)(53546011)(66556008)(4744005)(4326008)(66476007)(31686004)(38100700002)(966005)(36756003)(508600001)(5660300002)(6916009)(8676002)(2906002)(2616005)(66946007)(6486002)(31696002)(54906003)(316002)(186003)(59356011)(219803003)(207903002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?2uIIgNmj9AkGi9LMKDflQqG+FN3Wn5kjXXANJv1V33mvrbbx7DUen4MCQAV8?=
 =?us-ascii?Q?A7KEJ3BHDfDd7LUz2cOKjOSuyFQudWr8l9sFXuXbYfKNZQ25DrkCaNx3sx/r?=
 =?us-ascii?Q?cJdFklhtTI1QhpNFO7SePHVE4BI141o+fC2e86+bJAb7BF60aiedeDTVWq/2?=
 =?us-ascii?Q?Pu1xN5PS814ANwZqFXvk1kRWBbENh4b1y9ZHGQCtiu2oZTaVr8qoPTDJACo1?=
 =?us-ascii?Q?OyQnko41hRn9k3afCrjQBZdh9AtrxVVjz+Z6yd/06LNmlMHasz6S4rx/EmH+?=
 =?us-ascii?Q?iMmIOp84901mtvzmB6z+fQgFY0u9YID60XMxBp+i/+ElXKel2fCnSZFbGz5b?=
 =?us-ascii?Q?ZcEqCl6lTQQ/LLfGYBXsau9Fw+lFCFdUV0skA9o+E/6I9xh6CTHm68NUxW0P?=
 =?us-ascii?Q?CixerI8YWJfcaxr6t2TWwWu+RPwDxHAzY+4gB+a9Bwssyhp1Tjat/RpkvEJ6?=
 =?us-ascii?Q?bA1FMkOuAiyrpCcGkxYTMEsmyJsq74RWaEY75ZpFWP/1pIABo4/qZHN75HLB?=
 =?us-ascii?Q?pRTIPhZnYQIfPXGmedHV5rzZtmrJoT63f2jz+FcTUEFzYkETOaQmtKPy0oNW?=
 =?us-ascii?Q?MLor2JVO8Eu3uRtokXkRy+knLt7SS4Ks2FsT3AYFf+RuvGcBunGDohU/y6Bi?=
 =?us-ascii?Q?9yjZjRtAjXtFX0B2GxXbp/iX5jZ0rLjdazPg4bdMUr3Scrj5ygTm4SoqJjSF?=
 =?us-ascii?Q?Nfcn+fcN26V/a6G/RfwclQEavgvPs1d7ciIOuGXjOvz3/76F2YTcmqpvJM28?=
 =?us-ascii?Q?SX2gn2VQ8WE26ID+H7Z4+xDqCoz4GFHz4Gw/Bnz7HiOJjX4PBXP9V3mEWqAv?=
 =?us-ascii?Q?2ExAPiYYkt5/Gwi6K7ph1VHtr856wxYnQ44cn7G4jdahQqtpX9JrL4pFgDA+?=
 =?us-ascii?Q?U9XW2VFtsxEY5H1CMfGiJZo6Thk0VoPe0hya0Knzovxf1DiokeQEHcu+dXiH?=
 =?us-ascii?Q?afGLmmRRnnJDwYeRksI0fc2q5caTRGQ6mcgfhckzzxj1dMKVA7XHd4+5k8mf?=
 =?us-ascii?Q?k+e7WTeM4/39Kmd61ndjGPVB6DrXK+MMUQL9NyKOv2XlRrnWU62OgVzoCpV4?=
 =?us-ascii?Q?rftDDu0Z467vy9XuZIyr9RYs7Tn/K7sctAmlc4FU4JBjpAUUUpZL4iB4Ki3I?=
 =?us-ascii?Q?+PgTsVO2+GgvpHR0r1uwd1A5S9X0eOFfKKUURftBkVomyYG6lt8EGkMGdDFw?=
 =?us-ascii?Q?ujjbJLb8ZNJ9SJXev6wzFFzb/zJ0MC1kI3DRcvImVv8UqPjOcFvHrOMXA1o6?=
 =?us-ascii?Q?tuz+8T7lie+GqL2czYjv3dOc5TLhtwkmDmoOOua5Zv5+shj8vTs433ZOOWmo?=
 =?us-ascii?Q?N8oyYju/tiTr5dusC2L0mdNwMUJ+IC6TORZGs0wDYhs9ZN8plmFraccoR036?=
 =?us-ascii?Q?pShuTte2d/DJBVDHNdwPA1Itevabpp5O+8N24KldhYfEKtrqOc73xPBr/jzz?=
 =?us-ascii?Q?0heR3kwIfpgps0NrBlLEe5FBM2T+9CX8K4yiq/gavbPFltIZyR6wIJnCiJ8s?=
 =?us-ascii?Q?96r5DwBlga8WSNpdeJ6jBQfjMXHFzTyhCLkg6eVc/67HPM5Dls1cXnjmRGH2?=
 =?us-ascii?Q?AxUtUFv8tSZd2vy7gDNZje6ETToMvF7tKS55y/+ciUNviqkLMhth9tfrevwi?=
 =?us-ascii?Q?MWNk5Vk8dyK4FLPQQO/w+HnlSQkvdut5OYZpZ8ZaE9o39SrKyBLv2Gozxkto?=
 =?us-ascii?Q?bGSi5toeU6HDay7zWFscglRYq30=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5170c5cf-a7e0-4be3-d7da-08d9ada8b032
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 11:10:27.3208
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: EMe2Q5h9kmamemgkqSSvS3P1JoBtGZsQdvMPITsgKzEVowNCcGmtNpV/o1UQqOOsYgB1igl9EmoIbJIEae9Fmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7152

On 22.11.2021 12:00, Roger Pau Monn=C3=A9 wrote:
> On Mon, Nov 22, 2021 at 11:51:59AM +0100, Jan Beulich wrote:
>> On 22.11.2021 11:40, Roger Pau Monne wrote:
>>> +### Added
>>> + - 32bit Arm builds to the gitlab-ci automated tests.
>>> + - x86 full system tests to the gitlab-ci automated tests.
>>> + - New x86 pagetable APIs.
>>
>> May I ask what this is about?
>=20
> It's related to:
>=20
> https://lore.kernel.org/xen-devel/cover.1619014052.git.hongyxia@amazon.co=
m/
>=20
> But I realize I should have added "Switch to domheap for Xen page
> tables" instead likely. Some patches in the series had "switch to new
> APIs" and that made me write that entry.

Oh, that's very much an implementation detail. But yes, if you want it
mentioned ...

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 11:14:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 11:14:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228814.395992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7HA-0004sX-15; Mon, 22 Nov 2021 11:14:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228814.395992; Mon, 22 Nov 2021 11:14:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7H9-0004sQ-U8; Mon, 22 Nov 2021 11:14:19 +0000
Received: by outflank-mailman (input) for mailman id 228814;
 Mon, 22 Nov 2021 11:14:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mp7H9-0004sK-3x
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:14:19 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54b1f205-4b85-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 12:14:17 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AMAwEtx021612;
 Mon, 22 Nov 2021 11:14:15 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cg8mt0h82-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 11:14:15 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com (2603:10a6:20b:13c::18)
 by AM7PR03MB6181.eurprd03.prod.outlook.com (2603:10a6:20b:142::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 11:14:11 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445]) by AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445%3]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 11:14:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54b1f205-4b85-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aBr036J/e4AlawXY891pGXfiFWr/caHOHF9Kz3Qn9Ox7uALWJ7b/XMKMY6II2w06Tv9kX9d0DGhr9werH8SsDFBxu8gB7XTFzVVCIeOfDWnf2GTEJtP3NiBVFG5anzHlOGKHG9zur40BosaZ3DiiPqncWGdN6vrU+cmQK3yoT7nywnOQFTXT6C4eYv7Lgzzo++Ei9K9wr2sF6ZBvJfJWW0PS80nqhXWTy/fQjQ4XbljktPZfJJUfU0FwjRmMwhUwy2QQwXsDPvnF/kB2nAM9zbaB/C69LRa6tSBBu+P/eL+EE3J4KLOfZ6Ou0XdvXQ9LD1AUXa3p8l9StF3BDbNvTg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=55NDRTyfekNmjQ+peTiPRW/tkm0QGbNwHcGG4EBK7jU=;
 b=Npg50x2YJm3FKqg0OGh2eP+T9ermdWC6ejwW0jlMt2W0R4xQLjEc57amdY4JQNScU0QlJheVeh/whZpIYX0nyvsBIjBQueXne+hHV99jXyTr661Teat84Tgj/pGpCLyDGAb5a8mXNcXf9Uqb3yP/KA2uGhg7vyLVCI/Gn99/zXoMPdrp7SSYaodqMF+ivfMV+NAn/Sl8d6iU0u0HZHVV3gazkylgsint0jL8oXK8Xm8JzIy0OaR/sPTSAdP3HRLuI+0DRkTI8/podBBnqrjd9pxKlWHuzpCKhSPLdyO2KktBI6zcxrFT4sIYEAN/MS7kaPm4zm4+Qsv7+6Tdgjtayw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=55NDRTyfekNmjQ+peTiPRW/tkm0QGbNwHcGG4EBK7jU=;
 b=lofxA3kTGjX6DemAhyLnOS9pbIn/O+RJIPusqoQQKLRO0YIh592gExpKHP2wkQ0qdOvdSsFdCOt2sLXZb7HBVZ22AEcEziKrmyyni1+0qYT9p0iTN8xTJM4pgREoJMSX7wp70Bx2YxJ7177nYn6XuQaD0C42qsCLcJhiqLHma5Zv0fJ6HCji9FXi6DXU+jwVenDaWYPq6AjQ/hBcAFw/opXA0b7Ue4VK/OZHvEC/XX+mZEWEe82QPj/j83eDr4tqV/gT+MYoKiejBPbudH892tam4e/ybZ810GYb5VjMJ7PvtWtVaj3q0f/MosOHMooIkxuIZ1e6P4UvaIB20O1VFQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH 2/2] vpci: use named rangeset for BARs
Thread-Topic: [PATCH 2/2] vpci: use named rangeset for BARs
Thread-Index: 
 AQHX34NSPeXhoB5iREudUJGr9f4eDKwPWBGAgAAEhQCAAAHcgIAAATqAgAABWoCAAAKVgIAAAYKA
Date: Mon, 22 Nov 2021 11:14:11 +0000
Message-ID: <e1476cab-e0dd-6415-4b23-11fc8d737cc1@epam.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <20211122092825.2502306-2-andr2000@gmail.com> <YZtwj0OKrNaZ7s5X@Air-de-Roger>
 <f1aaedc6-73c5-e4ac-91c1-323f44d83687@suse.com>
 <1d9d5540-5fe2-6897-1704-b296294afe6a@epam.com>
 <a0345cce-5b44-6cdb-681f-002403893e31@suse.com>
 <90fe8b04-4bc3-2d10-e94e-70e5e28c9780@epam.com>
 <44e5403f-bd76-dbd6-7af0-b1807a9c89bc@suse.com>
In-Reply-To: <44e5403f-bd76-dbd6-7af0-b1807a9c89bc@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 1b82d870-3d77-4053-f56c-08d9ada935bb
x-ms-traffictypediagnostic: AM7PR03MB6181:
x-microsoft-antispam-prvs: 
 <AM7PR03MB618168ED170F7C60689CF4DFE79F9@AM7PR03MB6181.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:197;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 /nHAC3qrKiVNVGoIum6halr/Yp3WLK9lqXo+hcHtokH9IdoPnyihVTlSCsbKdQ3hfvGaQm8Y3gfXqlQC2JHC+wq2z5y6rgOgr0RN0VjWmqp/2N/gTyflhV0G8w2tmUCv6VCqYwOF/TR9x062HMALnyWBKXQPZtbDlDN2uA8p9tVNrrZxOnC+zVokyD1ewFrZN5SHfJDiEFM9dqIwyxK688jxjOo6D6afMvyMpdYW+fwK1SsR51BLQGILAlEutACOb78AN7R2prQL7lO3ns2YaWsINlMT1b6HvzUDX8SJeEw0ojqkHs9O2r3q56XiMW3MZRYqVXHnqgmCBqq2hmgIfo8OTs+T4ijJktz3+inkDZmcnThbEJuvQgAcVGPPsS/WbF4n7ncjY6t4r4rNgl0JYETvJtLJI2v2nj8ahaghkr4kVTZ78cp9G7E7qDkYXGdtlr2Zl1IJLQb3Hg12w1SY92CGfRKHQ6yPM/ZHTd4mAkBUmtLgj/Mx8zp4jC/4fRz59zfrLPabfacnjqzby3Gh+r5uAKMVLMlE5LWFw12vvRrJjR9e49ARKnydGRGO2GuOA+Yt8wvG5T4dz+C+XWmfzYPc3w7KorqRpkWgs0AhrIR0kBmqmXFY44GUMm8PI/A/j8PPXEOW1SMAFPBUAI0ffKJxZCxL+UcGXBIaCRw7Y72mChHZeXExRqFh+sXLKm08UfL9Bp63YivmjjVUfr7GRDnDE2t7GZsMKmtoGnUQkuIfE/uliCGraPcezfIJTTby
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR03MB6325.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66946007)(38100700002)(186003)(2616005)(122000001)(86362001)(36756003)(71200400001)(508600001)(31686004)(6916009)(6512007)(31696002)(8676002)(2906002)(6486002)(8936002)(5660300002)(83380400001)(4326008)(66446008)(38070700005)(64756008)(107886003)(66476007)(66556008)(316002)(54906003)(6506007)(53546011)(26005)(76116006)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?NEZSUHVMaE1rUVdVRVBvdmpwRHczZ2lnbnpnV25hc0VieHZZSnk4cXFIYWE1?=
 =?utf-8?B?bktNbXEzRGttdExFU1MzbTFOcWxhTVUxeEtmbHlJSDdhYyt5OU85U3ZCMmph?=
 =?utf-8?B?bm1GV0diWHA2cjdQT2hnd2FCVVZWYjZrNlAvcW5adlIweWJ5elFPTTdlOHVP?=
 =?utf-8?B?ckp6dlZFcGJXSnRPTVFUcGVYSW9jQzlYWFRwRGRlbDFrbFhxL3hUS3dVelZX?=
 =?utf-8?B?bUFSMUZqb09UYjNKV2huOW1TdExRanBaR0VManNFcm0vOGFFVDdJMEI3czJ5?=
 =?utf-8?B?dXVhRDY5VEVQSm1NWlM2K3V4Y3RrZmxwOENGNDRRY3o5Wm9YOGtVTnJwa1JL?=
 =?utf-8?B?dVk1a3E3TEp6ems0a01EMFpuSXdSTU1WSmp0UE1NSlFxNExENkg3RTd6L3Np?=
 =?utf-8?B?NjhHTnRHaEZOVUQ2K0Z6ZXBxN2hvMUNpcUloM3ZBWlNQODdjd0NFcGFNNXND?=
 =?utf-8?B?ZW5GZzRaWmFTSmJDdGs5ZVptbUw3Z0VqV0V2cm9KWmdTZzhKWEd6SHVpSnEr?=
 =?utf-8?B?MXFuWFpmeW9iUEFFaUFLeHRUU2JPV3RIdEVIaHdrc0E2M1hpeGtJblh0ZHpw?=
 =?utf-8?B?YUV6UDFJWlJTVVZES3Q1QjlhZDZwV2xWaWRWZmpoSUw1Vko1ck9tWkVSYnUr?=
 =?utf-8?B?SjVxbEh6ZjhISnF2RDBvZUJ5S1hZeWVMdzN0UjBhVjFoS0FjQ05URVM5N012?=
 =?utf-8?B?ZU1pYnB5M3JNVmFzMGtaczUrbkQ2R0gzVEQ5RDJuMjdWWXk4cWgrUFgvY1pF?=
 =?utf-8?B?ck01Wk1LeTBvUklBS2FXS0hSdk9IZWdEV2RydUE0U0VJNFpTdklraXFKQmFv?=
 =?utf-8?B?SzNTYzE2VXNhVlMrVWhrTVFhTlBZbzVCUXRtT1pJMGp5ZVZuclNGY3ZNYzQ0?=
 =?utf-8?B?OVZ0eDJNUXNteHZvRWxzN1d0Z25xU2c5bS9mdmo2S2xETW5GdWZScC9udmJL?=
 =?utf-8?B?T0J0Y2FGSHhuYTBxcWVFRDBseGc0NTBzS0ZCUWlHU3crUkVmeU1YVk9GTmsw?=
 =?utf-8?B?bVExSGxseC83WEN5dG0xRjdOUkdyc2Z5VEMwL3VBK3hzdFVZNHc2TEtZMlFP?=
 =?utf-8?B?aXBwclhKVjY4UEJVZ2RzUG8vVWFDY2duelJwUnk3Um5hT1RlTVRRa1BIZkxy?=
 =?utf-8?B?dWl5OElpc0lrakZzQldMOHBuUkJ0NG9rVEhKdnZBM055L2tseGdaeHRVTktD?=
 =?utf-8?B?VnAyam90amVsbTBjWUFLU0xCNWFaSTFtVmVBR21GcFErUjI1dUtwOVBoNkkw?=
 =?utf-8?B?UE1ZNTdPelAwazlxanlOS2dVaDlTR1doQyswY0RqWTZIOHc3dXBTQml1TG1s?=
 =?utf-8?B?anJhUGlxRWl5MUZuWjZEeE9ONmtMN1U0N1prMjFTeGZtUVJpM0N2UUlaVzVO?=
 =?utf-8?B?ZGY0MEJtdVQ2djk1dGt2YjNwMkh1Tkg1RXJtYjdtNTMzTDRqN2lZeWs1elJQ?=
 =?utf-8?B?RTdHcnU0ZmNpZ3hzL0FtYU8wMnpTa2xMWU5qWWtFeDE3d0NRMVhZR0J2aHpI?=
 =?utf-8?B?dVp6bjZBZGZWbmJFYldwcXZ0YjNWa2V1QTF3Rmd4eDdzdDFyYkE3eFF6V3lT?=
 =?utf-8?B?cHB4NXdIZHA0Wk9rTmR3VFR2eDZGSlhzOEsyV3oyVlFNcGNBT2xyQWluZmJT?=
 =?utf-8?B?UytYS2Y1bER5aXZPNDhXMC9ML3hVQlZjOEpEQWs0M2MxYjhNTzl5a05qak0v?=
 =?utf-8?B?OWpwbTdPOFJxd2QrQVdHaG0yZk8vVFFqVVl5L2V6aTEyRDhWcDVCdDFtZkpQ?=
 =?utf-8?B?dncyRW5Ja1FKa1IxWnhWNThtdUpTZFZqWGJzb0luU3QxaS9RcldCdDU0dW8v?=
 =?utf-8?B?M1NIUlYwWm1SZGVDZHZab2lZOWtDN0tRQWxYS3MrZm1Uai9XcGo1bllINlg5?=
 =?utf-8?B?TWpYVTBtNW4rT283TVZZMGNzTWM4M3JxMEdKdFgzNmsxTjNZL0RVTkl3OWJq?=
 =?utf-8?B?TmZNejNCL1ZITXFHelphNGVsbm9jNEtRTUQ2ZUNUSFpoa1NrUWdnLzB4OXB3?=
 =?utf-8?B?S3diWnFDcFZTVFc5SDJpS0xldGV1cEsyZk5sc21CUVphV0tHbVVyNGxzWDMz?=
 =?utf-8?B?eWVNVGgxU3RnMCt2bFhxNGgraTErb3NvWU9EVzFQcElUdFlZbTdGWkJOYmtl?=
 =?utf-8?B?SlE3QUR2RjdyWFp4Um8zT01ZUVhXd0d2eXhQeS93OHhOWkZQOTBzT2FhVHBk?=
 =?utf-8?B?b0hLREJJdmVldmIyeHpFR3h6aUVDYWUxKzI1cGJ0NFQvbW9CNloxbDZYcVRh?=
 =?utf-8?B?TlhBRFdYL2MyQkZCTG13dEQycDZFN2FDQjVHczd0WFdnZVpqNXYrK0R6YkxU?=
 =?utf-8?B?NXc5eGFKcjEwU2psMG44QWZVbGhmMGdmVDgzWml3Z1FEbHlFcVUvQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <36DA7204CE055A4CB6E872D4E9736C6F@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6325.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b82d870-3d77-4053-f56c-08d9ada935bb
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 11:14:11.1338
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: S3CCPykB7wJLX9XfXpkFKVtCWptqvdcWcRKyaHUHg4BpjAtoABt7XE3SJPTmo9PBtZspDH+MzMug0FXv8OOuaYIsDDoQgY4K0k2jSw2lyDEIRzhVMOxEhipVr0Q4kwP/
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6181
X-Proofpoint-ORIG-GUID: gIJs0j3BiMTgx8RkF6siFuOAEz74rGCr
X-Proofpoint-GUID: gIJs0j3BiMTgx8RkF6siFuOAEz74rGCr
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_05,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0
 priorityscore=1501 clxscore=1015 spamscore=0 phishscore=0 adultscore=0
 lowpriorityscore=0 malwarescore=0 mlxlogscore=999 impostorscore=0
 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111220059

DQoNCk9uIDIyLjExLjIxIDEzOjA4LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjIuMTEuMjAy
MSAxMTo1OSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAyMi4xMS4yMSAx
Mjo1NCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMjIuMTEuMjAyMSAxMTo1MCwgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+IE9uIDIyLjExLjIxIDEyOjQzLCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4+IE9uIDIyLjExLjIwMjEgMTE6MjcsIFJvZ2VyIFBhdSBNb25uw6kg
d3JvdGU6DQo+Pj4+Pj4gT24gTW9uLCBOb3YgMjIsIDIwMjEgYXQgMTE6Mjg6MjVBTSArMDIwMCwg
T2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+Pj4+IC0tLSBhL3hlbi9kcml2ZXJz
L3ZwY2kvaGVhZGVyLmMNCj4+Pj4+Pj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0K
Pj4+Pj4+PiBAQCAtMjA2LDEyICsyMDYsMTYgQEAgc3RhdGljIHZvaWQgZGVmZXJfbWFwKHN0cnVj
dCBkb21haW4gKmQsIHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KPj4+Pj4+PiAgICAgc3RhdGljIGlu
dCBtb2RpZnlfYmFycyhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdWludDE2X3QgY21kLCBi
b29sIHJvbV9vbmx5KQ0KPj4+Pj4+PiAgICAgew0KPj4+Pj4+PiAgICAgICAgIHN0cnVjdCB2cGNp
X2hlYWRlciAqaGVhZGVyID0gJnBkZXYtPnZwY2ktPmhlYWRlcjsNCj4+Pj4+Pj4gLSAgICBzdHJ1
Y3QgcmFuZ2VzZXQgKm1lbSA9IHJhbmdlc2V0X25ldyhOVUxMLCBOVUxMLCAwKTsNCj4+Pj4+Pj4g
KyAgICBzdHJ1Y3QgcmFuZ2VzZXQgKm1lbTsNCj4+Pj4+Pj4gKyAgICBjaGFyIHN0clszMl07DQo+
Pj4+Pj4+ICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnRtcCwgKmRldiA9IE5VTEw7DQo+Pj4+Pj4+
ICAgICAgICAgY29uc3Qgc3RydWN0IHZwY2lfbXNpeCAqbXNpeCA9IHBkZXYtPnZwY2ktPm1zaXg7
DQo+Pj4+Pj4+ICAgICAgICAgdW5zaWduZWQgaW50IGk7DQo+Pj4+Pj4+ICAgICAgICAgaW50IHJj
Ow0KPj4+Pj4+PiAgICAgDQo+Pj4+Pj4+ICsgICAgc25wcmludGYoc3RyLCBzaXplb2Yoc3RyKSwg
IiVwcCIsICZwZGV2LT5zYmRmKTsNCj4+Pj4+Pj4gKyAgICBtZW0gPSByYW5nZXNldF9uZXcoTlVM
TCwgc3RyLCBSQU5HRVNFVEZfbm9fcHJpbnQpOw0KPj4+Pj4+IFlvdSBhcmUgc3RpbGwgbm90IGFk
ZGluZyB0aGUgcmFuZ2VzZXQgdG8gdGhlIGRvbWFpbiBsaXN0LCBhcyB0aGUgZmlyc3QNCj4+Pj4+
PiBwYXJhbWV0ZXIgcGFzc2VkIGhlcmUgaW4gTlVMTCBpbnN0ZWFkIG9mIGEgZG9tYWluIHN0cnVj
dC4NCj4+Pj4+Pg0KPj4+Pj4+IEdpdmVuIHRoZSBjdXJyZW50IHNob3J0IGxpdmluZyBvZiB0aGUg
cmFuZ2VzZXRzIEknbSBub3Qgc3VyZSBpdCBtYWtlcw0KPj4+Pj4+IG11Y2ggc2Vuc2UgdG8gbGlu
ayB0aGVtIHRvIHRoZSBkb21haW4gQVRNLCBidXQgSSBndWVzcyB0aGlzIGlzIGtpbmQgb2YNCj4+
Pj4+PiBhIHByZXBhcmF0b3J5IGNoYW5nZSBhcyBvdGhlciBwYXRjaGVzIHlvdSBoYXZlIHdpbGwg
aGF2ZSB0aGUNCj4+Pj4+PiByYW5nZXNldHMgcGVybWFuZW50IGFzIGxvbmcgYXMgdGhlIGRldmlj
ZSBpcyBhc3NpZ25lZCB0byBhIGRvbWFpbi4NCj4+Pj4+Pg0KPj4+Pj4+IExpa2VseSB0aGUgYWJv
dmUgcmVhc29uaW5nIChvciB0aGUgYXBwcm9wcmlhdGUgb25lKSBzaG91bGQgYmUgYWRkZWQgdG8N
Cj4+Pj4+PiB0aGUgY29tbWl0IG1lc3NhZ2UuDQo+Pj4+IElmIEkgZm9sZCB0aGVuIHRoZXJlIGlz
IG5vIHJlYXNvbiB0byBhZGQgdGhlIGNvbW1lbnQsIHJpZ2h0Pw0KPj4+IEknZCBzYXkgeW91IHN0
aWxsIHdhbnQgdG8ganVzdGlmeSB0aGUgY2hhbmdlIGZyb20gImFub255bW91cyIgdG8gIm5hbWVk
IGFuZA0KPj4+IGFjY291bnRlZCIuDQo+PiAiTWFrZSB0aGUgcmFuZ2Ugc2V0cyBwZXJtYW5lbnQs
IGUuZy4gY3JlYXRlIHRoZW0gd2hlbiBhIFBDSSBkZXZpY2UgaXMNCj4+IGFkZGVkIGFuZCBkZXN0
cm95IHdoZW4gaXQgaXMgcmVtb3ZlZC4gQWxzbyBtYWtlIHRoZSByYW5nZSBzZXRzIG5hbWVkDQo+
PiBhbmQgYWNjb3VudGVkLiINCj4gTWFraW5nIHRoZW0gcGVybWFuZW50IGlzIGEgcmVxdWlyZW1l
bnQgb2YgeW91ciBjaGFuZ2UgaWlyYywgc28gSSdkIHN0YXJ0IHdpdGgNCj4gIkJlY2F1c2UgdGhl
IHJhbmdlIHNldHMgbm93IGJlY29tZSBwZXJtYW5lbnQsIG1ha2UgdGhlbSAuLi4iLg0KIkFzIHRo
ZSByYW5nZSBzZXRzIGFyZSBub3cgY3JlYXRlZCB3aGVuIGEgUENJIGRldmljZSBpcyBhZGRlZCBh
bmQgZGVzdHJveWVkDQp3aGVuIGl0IGlzIHJlbW92ZWQgc28gbWFrZSB0aGVtIG5hbWVkIGFuZCBh
Y2NvdW50ZWQuIg0KPg0KPiBKYW4NCj4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 11:15:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 11:15:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228820.396004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7IZ-0005WQ-HW; Mon, 22 Nov 2021 11:15:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228820.396004; Mon, 22 Nov 2021 11:15:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7IZ-0005WJ-DB; Mon, 22 Nov 2021 11:15:47 +0000
Received: by outflank-mailman (input) for mailman id 228820;
 Mon, 22 Nov 2021 11:15:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mp7IX-0005WA-Ta
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:15:45 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mp7IX-0006D4-Rx
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:15:45 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mp7IX-00009q-Qp
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:15:45 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mp7IS-0008Tz-Ul; Mon, 22 Nov 2021 11:15:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=+Z1bjgAsuvNYJdm3q8aYLomc6qndLnUq1UluotOZZuQ=; b=HpRANv/M454tbw9LqMyQlE4al8
	v2SSYG2MV+Lzs2l00g0kb+wTF48P70us+jRm8iKVZHo9mas45CA2KT9qQ4H6RciiwNNingKzAX+3a
	KpWHzm2cSCfjaQdMuRHhmrieP8IqkvtN0F7EMRgCUJi0sqV/Pg3vgi18KwE4XySBte1U=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24987.31708.445602.503526@mariner.uk.xensource.com>
Date: Mon, 22 Nov 2021 11:15:40 +0000
To: committers@xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
    xen-devel@lists.xenproject.org
Subject: Commit Moratorium (was Re: Xen 4.16 development update - tree status)
In-Reply-To: <45473e8c-4466-d847-3442-73aeb8250875@suse.com>
References: <24983.49015.777430.780265@mariner.uk.xensource.com>
	<45473e8c-4466-d847-3442-73aeb8250875@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

tl;dr:

  Commit moratorium is now in force until further notice
  (which will be given tomorrow afternoon).

Jan Beulich writes ("Re: Xen 4.16 development update - tree status"):
> On 19.11.2021 16:15, Ian Jackson wrote:
> > Tree status
> > ===========
> > 
> > We are now in deep code freeze, during which we will try to discover
> > and eliminate serious bugs and regressions.
> > 
> > All patches other than documentation patches need a Release-Ack.
> > Fixes for serious bugs, and test improvements, will get such an ack.
> > 
> > I have decided to branch on Monday at the same time as cutting RC4.
> 
> May I suggest to consider doing both branching and RC4 after the XSA
> batch has got committed on Tuesday? Or perhaps you did consider and
> found good reasons not to?

No.  I didn't consider that option.  Obviously I should have done.
And I think, in fact, it would be better.  I'll do some more private
testing of what will become RC4.

In the meantime, please would no-one commit to staging.

Ian.


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 11:27:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 11:27:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228828.396014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7Tg-000719-Gy; Mon, 22 Nov 2021 11:27:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228828.396014; Mon, 22 Nov 2021 11:27:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7Tg-000712-E2; Mon, 22 Nov 2021 11:27:16 +0000
Received: by outflank-mailman (input) for mailman id 228828;
 Mon, 22 Nov 2021 11:27:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mp7Te-00070w-Sp
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:27:14 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2336fa4e-4b87-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 12:27:13 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AMBMTNj027650;
 Mon, 22 Nov 2021 11:27:11 GMT
Received: from eur02-he1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2053.outbound.protection.outlook.com [104.47.5.53])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cga9cg0kc-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 11:27:11 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com (2603:10a6:20b:13c::18)
 by AM6PR03MB5444.eurprd03.prod.outlook.com (2603:10a6:20b:cb::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 11:27:08 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445]) by AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445%3]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 11:27:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2336fa4e-4b87-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=efX9ff765zK9HPULJlJV+EFiiTZrZDvfvh7Y9B+p3YO/vYxBWeQmgTHlByYub5QJEtwsSUf8OeJW22xnltJlZ4NevnWGCT8vTkEYS78BvHiQjxVjkUwnbrCT/1PVMVLVRkiyO4h2donUqmAaEutgzbhU6cHhaANC6WUEiUG229i4LbhV4Mluvt7ATTst3+dU4ng7bU6FC1+wkJU2M5l8H4s+fxpgx8kDV332ioh7r/bhBYwxn1bo3iKJL1pAjfu6Eu5wGvmdPNo4FJ2DCgNdY2HuXbD4+Uv51v8YQgGIQSUX/OSD5MDYtEXemfwKq4VWl6NS4zlRvU3JyVMRqs52zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tEQY6jR2gOzNvayT3tUbzzm2GEqQpjyo1tu8DQC3CWY=;
 b=hwyEBDLYfrJDPOIq/sSKWkFwGiMIWmewl30YyIj+4RWHh6UMz5oQZfKKVpdAtHKHwVtFyE8wmTWWBPDdWw9jSylnplr3xdGoLpG8aWkePf7USA1arz7H81OqHXHuHs6sC3esRNwIGXMW5wgMg/vN6ILmrm20UNkm3/RomSK/Gov2k2ty7iVc8FuKOUBjG8lnc2+g8jOdaalAHun3mXexcTaDJSVKw3ou5nrCInULXdalfwAtejm3uJs3MzsB+JveMLnE5GPnCuMIF8wIIF8qJavaM7Tj91W3XqUT9/56fDceBzJvlzoyJuFLi5rnUjPraSj/BlNMohn9zSqV8+khIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tEQY6jR2gOzNvayT3tUbzzm2GEqQpjyo1tu8DQC3CWY=;
 b=T/sS/ubWtyWldtfiy2dtOYI0OBm38rTfYrFz1traTxaEqV9k3EOuH+NdEiHcz6KDp63QHOvBG6+o0f88qbW9FD4a0GOBM9Vh3eNv6n5m7zYkF+NVVZezdOOrpuw+uCEU6i6qOnQMx1MgpLb3Bdzvv7OHEN0ZJza3HOBKLggXvtXkQPtkNoq1TUqLV/8wI5rwYQHGGNEhzqTNBNIT882bJpDu05AqSC0apEzYAE39D3MCV/+afbAPtwH+x0A+QxY7Pwjjux7ViAU6skZLPvmCW3IsZGgWsJzUzVFj5I5nOZtSma83pbLRO2dWiYjWhRaCV4cFnVKfOnsHrJCZ06159g==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>
CC: "jbeulich@suse.com" <jbeulich@suse.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH 1/2] rangeset: add RANGESETF_no_print flag
Thread-Topic: [PATCH 1/2] rangeset: add RANGESETF_no_print flag
Thread-Index: AQHX34NQb/OdxzJcEUqRnDxd7565ZKwPaLyA
Date: Mon, 22 Nov 2021 11:27:08 +0000
Message-ID: <a42dae31-e1e4-ed13-a0b0-be7d66286ceb@epam.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
In-Reply-To: <20211122092825.2502306-1-andr2000@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 10364008-ffa0-4165-5767-08d9adab0510
x-ms-traffictypediagnostic: AM6PR03MB5444:
x-microsoft-antispam-prvs: 
 <AM6PR03MB5444613CF617319E5FD2E71DE79F9@AM6PR03MB5444.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7219;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 8b8QyO/9kdyy+hxfkEFRdZaAyj4JoUjT1bckJGEW/ds7aaC2bqU7f1iIdebOcfaAvOWdHAeVwynkDaaP0r3oliQFN0GaQ2plk5a6JBng0c28LUPknlbaA6iskbQcLUg9JBgugqayN5CHuYmD3fNcahuwiXR6Mpkh3XD43zGlq+UnCDt1Nmy4440ucjy39ZI+vXnQnIWYHnIi1RG4F//DRF+NQ7UnUleteIc/td3kMNpTNnO+inz/1R2HKPPkkJa2FKLjJcm6H3qnFpJw140MqXWjFYlPPTtUbvyfmD8/Uypau0z0kuUGWok4H0rJrGsnItu+/KeJX4D4+SJU9DAlucvrQxtGh6/1RRw3LfxEu7R2nftCkYe7oe6eb0Jc4L1BnJ4tvBQ1PYpZ2TVEssHUp8+lExxNUv1Fy1h+gewqIiaeK+8SszeBE6A40SqwTSk+mbLaba1qm3a1qD8x47flWefSRiNsRUkQ2XSJHAgZqnNtkjXgbc0GqjBCU56KAByh7nu6aABERaFLn210pCpr43iUuX0gIQDCTpVByjCxpf1Dn0gAaA2wFTrQdHbDGih4CusPYBTfy5bKEKBiNAz2pNy8EsT8T5QZk8AwJT2U3KC260ea870wO4t5CjqHQBHzhXxI/uSqEFlXo9Z+2AX379JhFL6FK3KCWJ2jfQyxt4dvLUuLueQsOsjqWmmOOmAj94j2IhC/8vrV3ijYl3lua2LGDh4uAB1RY3NNgBYAn+dupzDAMbjjmdoO9C9HWqyP
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR03MB6325.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(86362001)(5660300002)(107886003)(110136005)(31696002)(4326008)(36756003)(83380400001)(54906003)(316002)(53546011)(2616005)(6506007)(38070700005)(6512007)(6486002)(66946007)(76116006)(186003)(71200400001)(8676002)(508600001)(66446008)(2906002)(26005)(66476007)(66556008)(64756008)(38100700002)(122000001)(31686004)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?TUhoZFdTMW9QaGtXbGpHVWNsTVhLZDZPeWNTYzlVdmI0eDREWXNkZURGVkpl?=
 =?utf-8?B?cFA3UHlaQ3UwMDR4M3NaaUh0aFB0L3F1M3JvUFc0bC9iVzNCaDBVdElxTlRZ?=
 =?utf-8?B?VXpsenlIckY1cmZMMmZxTUN0RGNRalZianhveWIxSWJOZ21vT0dRMzBCdG5V?=
 =?utf-8?B?RnJmaTZCVHRzY1BzeHlwNStBSFJ1aVZnbzd5ZmNwd3pmSlZVYmRrbmlJeFJq?=
 =?utf-8?B?cmw1UmxPN1k4TGp5NlpMbDhhSTBsMEZkclJsMVlSRjFTcktuZ1dyZjZWWVNT?=
 =?utf-8?B?STQwL2VORHlEbnlidHFhdFlXcmpIZXB0OFF2dmxOMmdJN1kxMkdRU0dmeUVo?=
 =?utf-8?B?cnBzVjNlYmczb1M4MEhnenF5YjlPdFU4VHh6elNKY3VqdzUrNVhESkl6WU83?=
 =?utf-8?B?ZFFUVkpkTmJxZnFWaVNWWEZ4YU1BWU9UUEdMVGpoRjA4UTVLcE14S2JsYWhU?=
 =?utf-8?B?S3h5T290V0ROWWNpd0F4TGc2VWFvNkR5RnFHcG5oVXROWm4vcTVGbmxlamk2?=
 =?utf-8?B?TjdUZHRSYWdUZzk3Y252RDRnN29aTkxaWUtRVW5PbGlkNmNYcmNFTjgwbGdr?=
 =?utf-8?B?b1hiUFF5WTVTL3ZmVURIMDJZMUdFLzRuTTJpbmxtRnBTTzZIU25GeXp3a0ZS?=
 =?utf-8?B?YlUra3l4Y29OeFBxOGVmTGlWOVlZUzF4NEhJdUlrcVVwUjlKMHNYTi9BeUpJ?=
 =?utf-8?B?aDBHQVRVaVc3dnBpeFhsY1lpZnZpcTczZ3A5dmFUMVRDOFVTTEg4Qk9ReFlK?=
 =?utf-8?B?cGZEcmoxMDlvYW92dUd6TlhjVE84aHpoUFBxclNQbXVueDBtOWk1eEVLdi9u?=
 =?utf-8?B?d2NTdnh0MUlIQmZPd3AvMy9hRWx6MDBXY3RXcWJtRWVWMkEvZFRjdTlpRi9D?=
 =?utf-8?B?UmlQM21CVEVEN3ZyMlFDYlFHTitsR1Y5MmgwQzA2MG5KQU1pRGk2amdzcDZN?=
 =?utf-8?B?YlpzQnBXbCsyVEZzaENEeTA3RkdJRkxnSFlKUVUwZkJoWjJVOWh1V09GWGF0?=
 =?utf-8?B?d2gzQ0JWMjNsQ0tqczVlanJldkVsdlNoOXVGbWtmT1JDSFZvZzJlRUo4Wm80?=
 =?utf-8?B?aDgrNTF3V3RtTU9TdUdNWnNjcERzWWIvQmZraC9FalJhaXcxVXpxM2hXb1dN?=
 =?utf-8?B?eG50Q3RrNzdVSjJja3p4ZUd4ZktIVS9hcEZVcUlndDVETG5UQWQ2K2VjVzBp?=
 =?utf-8?B?NEsrUkVubkJ6ZUFWOVUzM1lWUlZROWxnMVZyVmtUUVdENE43VWdoOTNJMWVt?=
 =?utf-8?B?RG5EY25MYVIxajd4TXVzMmd6cHZpeXA4UWtGQ1hnNXVwQ3RMM3dQZEpmY0ty?=
 =?utf-8?B?VDlkKzJkVzQzZ00vSitRTE5udzEzZHJPY0FzaG5NTTQ1NzUyMWdwR2MrMWRn?=
 =?utf-8?B?S2xhVHlCWm1qNXo5NW9MZjJxOGQxcVdERng1dytnYzRFNUZNbS9nNkduRDE3?=
 =?utf-8?B?NUVSdXdXZjIrZ2xITmdWejVFNWFraXFkQ3hZZXhqMkVPeXdjdWFmc0tMeG5J?=
 =?utf-8?B?bUQwNnpPRlNyZUdVMno1akg4V1Y0aDZReHNuei9aeWE0QTFMYzlhQnlQak5o?=
 =?utf-8?B?aEpzMGx5TjVqYkxwdWt4MWxLK1BTbGE5b3ExMk9DTldzMlowUmVuVUU2VHl1?=
 =?utf-8?B?K0JpVWFmTWhPTGhzYTI4NDRLK0N1d01FZW82R01vdHV4TW1CTGhycXVBRkho?=
 =?utf-8?B?Zk1ZZFAzOE5MUUZyK21HTm1CMVRVQm52SlhwU05kekV6ZEIxNHMxWmFPaUR1?=
 =?utf-8?B?aitNOFpNUG80c0k5RTBpOHU0YUJhZ0NDQXpIVnBCTVJueXVROVZaaDVqZDM0?=
 =?utf-8?B?K29Vb1phT21VR0dvbC9MWXJFalM4NXJ5SjhydFZ1YUNCWWNHWDdzcENSR1RR?=
 =?utf-8?B?aUdZWFZoU2Q2VHcvUUNySFg5SE9qNFZvMlBqUGhaMGJsakdrWG44L3Z5T2xY?=
 =?utf-8?B?STVTZnBzdkZNNVNEUDZVRFQyWUdoSGFGTnZBZk90MnAxai9kZElpdzFWZVZB?=
 =?utf-8?B?bTFFN2t2Z1JNOE9icmw4UUc3UGFpLzBwVUZlYU1rUlVvajVKVWwvekx2SGt5?=
 =?utf-8?B?YmREV0VocFFQVFR5Si84Ti9uUDh5UW9KQ1h3UlpwVVBITXZRcVMycllhVnVJ?=
 =?utf-8?B?K3I5WkdHTnBTbXM5aEdIdDk5OHJiS2g0RDFIdXhDZ3Qyb0lrWWw4UlJ5a0Qv?=
 =?utf-8?B?M2prTEVIMmp5QUNrVnd6U1ByNDZXVTFUdStFYXh4Vi82ZVBSd3BGUmFTS3Jl?=
 =?utf-8?B?ZjhSeDNrVkRETitZc2JhWCtWV2ozWVNWdFowNjBXNnJicDVqV2ZzcWgwRFNE?=
 =?utf-8?B?V29ZbWp0SUlUbys4NEVqOGgzempSMk8vT2VHdUFYSEVPaUZ4ZnZXZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <09B504F4E7722242B5A11DDC8A78FA67@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6325.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10364008-ffa0-4165-5767-08d9adab0510
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 11:27:08.4739
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: VO7z4sOg55LPF8/pg3yIqKC2HzsdceUeb2E7Zf3kdXNMB69zmogoqd+jE1cK7wOOMak9NyELp6cr3ANTM4aDfLLl0nTFrlEZFTdQLrQ+pmXgeaPj/MeFu8jy/dUjY4Qo
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB5444
X-Proofpoint-GUID: n_7tq153qCmJfvXz6fK0973PZTnEnfGE
X-Proofpoint-ORIG-GUID: n_7tq153qCmJfvXz6fK0973PZTnEnfGE
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_05,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999
 suspectscore=0 spamscore=0 bulkscore=0 impostorscore=0 adultscore=0
 clxscore=1015 phishscore=0 mlxscore=0 priorityscore=1501
 lowpriorityscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2110150000 definitions=main-2111220059

DQoNCk9uIDIyLjExLjIxIDExOjI4LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4g
RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw
YW0uY29tPg0KPg0KPiBUaGVyZSBhcmUgcmFuZ2Ugc2V0cyB3aGljaCBzaG91bGQgbm90IGJlIHBy
aW50ZWQsIHNvIGludHJvZHVjZSBhIGZsYWcNCj4gd2hpY2ggYWxsb3dzIG1hcmtpbmcgdGhvc2Ug
YXMgc3VjaC4gSW1wbGVtZW50IHJlbGV2YW50IGxvZ2ljIHRvIHNraXANCj4gc3VjaCBlbnRyaWVz
IHdoaWxlIHByaW50aW5nLg0KPg0KPiBTdWdnZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9s
ZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPiAtLS0NCj4gICB4ZW4vY29tbW9uL3Jh
bmdlc2V0LmMgICAgICB8IDMgKysrDQo+ICAgeGVuL2luY2x1ZGUveGVuL3Jhbmdlc2V0LmggfCAz
ICsrKw0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspDQo+DQo+IGRpZmYgLS1n
aXQgYS94ZW4vY29tbW9uL3Jhbmdlc2V0LmMgYi94ZW4vY29tbW9uL3Jhbmdlc2V0LmMNCj4gaW5k
ZXggODg1YjZiMTVjMjI5Li45Mzk4ODNhMWQxNDUgMTAwNjQ0DQo+IC0tLSBhL3hlbi9jb21tb24v
cmFuZ2VzZXQuYw0KPiArKysgYi94ZW4vY29tbW9uL3Jhbmdlc2V0LmMNCj4gQEAgLTU3NSw2ICs1
NzUsOSBAQCB2b2lkIHJhbmdlc2V0X2RvbWFpbl9wcmludGsoDQo+ICAgDQo+ICAgICAgIGxpc3Rf
Zm9yX2VhY2hfZW50cnkgKCByLCAmZC0+cmFuZ2VzZXRzLCByYW5nZXNldF9saXN0ICkNCj4gICAg
ICAgew0KPiArICAgICAgICBpZiAoIHItPmZsYWdzICYgUkFOR0VTRVRGX25vX3ByaW50ICkNCj4g
KyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiArDQo+ICAgICAgICAgICBwcmludGsoIiAgICAiKTsN
Cj4gICAgICAgICAgIHJhbmdlc2V0X3ByaW50ayhyKTsNCj4gICAgICAgICAgIHByaW50aygiXG4i
KTsNCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9yYW5nZXNldC5oIGIveGVuL2luY2x1
ZGUveGVuL3Jhbmdlc2V0LmgNCj4gaW5kZXggMTM1ZjMzZjYwNjZmLi41NDM1NDBhODhiNmYgMTAw
NjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9yYW5nZXNldC5oDQo+ICsrKyBiL3hlbi9pbmNs
dWRlL3hlbi9yYW5nZXNldC5oDQo+IEBAIC01MSw2ICs1MSw5IEBAIHZvaWQgcmFuZ2VzZXRfbGlt
aXQoDQo+ICAgIC8qIFByZXR0eS1wcmludCByYW5nZSBsaW1pdHMgaW4gaGV4YWRlY2ltYWwuICov
DQo+ICAgI2RlZmluZSBfUkFOR0VTRVRGX3ByZXR0eXByaW50X2hleCAwDQo+ICAgI2RlZmluZSBS
QU5HRVNFVEZfcHJldHR5cHJpbnRfaGV4ICAoMVUgPDwgX1JBTkdFU0VURl9wcmV0dHlwcmludF9o
ZXgpDQo+ICsvKiBEbyBub3QgcHJpbnQgZW50cmllcyBtYXJrZWQgd2l0aCB0aGlzIGZsYWcuICov
DQo+ICsjZGVmaW5lIF9SQU5HRVNFVEZfbm9fcHJpbnQgMQ0KPiArI2RlZmluZSBSQU5HRVNFVEZf
bm9fcHJpbnQgICgxVSA8PCBfUkFOR0VTRVRGX25vX3ByaW50KQ0KPiAgIA0KPiAgIGJvb2xfdCBf
X211c3RfY2hlY2sgcmFuZ2VzZXRfaXNfZW1wdHkoDQo+ICAgICAgIGNvbnN0IHN0cnVjdCByYW5n
ZXNldCAqcik7DQpUaGlzIHdpbGwgYWxzbyByZXF1aXJlOg0KZGlmZiAtLWdpdCBhL3hlbi9jb21t
b24vcmFuZ2VzZXQuYyBiL3hlbi9jb21tb24vcmFuZ2VzZXQuYw0KaW5kZXggOTM5ODgzYTFkMTQ1
Li5lYTI3ZDY1MTcyM2IgMTAwNjQ0DQotLS0gYS94ZW4vY29tbW9uL3Jhbmdlc2V0LmMNCisrKyBi
L3hlbi9jb21tb24vcmFuZ2VzZXQuYw0KQEAgLTQzMyw3ICs0MzMsNyBAQCBzdHJ1Y3QgcmFuZ2Vz
ZXQgKnJhbmdlc2V0X25ldygNCiDCoMKgwqDCoCBJTklUX0xJU1RfSEVBRCgmci0+cmFuZ2VfbGlz
dCk7DQogwqDCoMKgwqAgci0+bnJfcmFuZ2VzID0gLTE7DQoNCi3CoMKgwqAgQlVHX09OKGZsYWdz
ICYgflJBTkdFU0VURl9wcmV0dHlwcmludF9oZXgpOw0KK8KgwqDCoCBCVUdfT04oZmxhZ3MgJiB+
KFJBTkdFU0VURl9wcmV0dHlwcmludF9oZXggfCBSQU5HRVNFVEZfbm9fcHJpbnQpKTsNCiDCoMKg
wqDCoCByLT5mbGFncyA9IGZsYWdzOw0KDQpPciB3ZSBqdXN0IHJlbW92ZSBCVUdfT04gbm93DQoN
ClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 11:42:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 11:42:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228835.396025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7i2-0000qT-SG; Mon, 22 Nov 2021 11:42:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228835.396025; Mon, 22 Nov 2021 11:42:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7i2-0000qM-P9; Mon, 22 Nov 2021 11:42:06 +0000
Received: by outflank-mailman (input) for mailman id 228835;
 Mon, 22 Nov 2021 11:42:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mp7i1-0000qG-Iq
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:42:05 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mp7i0-0006g0-5N; Mon, 22 Nov 2021 11:42:04 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.28.80]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mp7hz-0001at-VC; Mon, 22 Nov 2021 11:42:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=R0eY9AyT2sTIfNz3c9vjCGKxp+7caoprCrFviPHPEhM=; b=zsfwpM93XgQciwZP5bqipDKcgL
	ZR/NI7vx/EtJaVVNC9c3WAH9kwPIeu5evcTI9G89R1LQsuxvuINA4V/owg8I+e0smzTCSvA5jzamY
	gupoign+us3BHSlvzZTqBp3EJC0zg3+BZVJoUBWZImxuvUJqAp+BnTv/1h4ZUxaYBhH8=;
Message-ID: <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
Date: Mon, 22 Nov 2021 11:42:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20210914123600.1626-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 14/09/2021 13:35, Juergen Gross wrote:
> Xenstore is referencing domains by their domid, but reuse of a domid
> can lead to the situation that Xenstore can't tell whether a domain
> with that domid has been deleted and created again without Xenstore
> noticing the domain is a new one now.
> 
> Add a global domain creation unique id which is updated when creating
> a new domain, and store that value in struct domain of the new domain.
> The global unique id is initialized with the system time and updates
> are done via the xorshift algorithm which is used for pseudo random
> number generation, too (see https://en.wikipedia.org/wiki/Xorshift).
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>   xen/common/domain.c     | 16 ++++++++++++++++
>   xen/include/xen/sched.h |  3 +++
>   2 files changed, 19 insertions(+)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 6ee5d033b0..755349b93f 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -84,6 +84,9 @@ vcpu_info_t dummy_vcpu_info;
>   
>   bool __read_mostly vmtrace_available;
>   
> +/* Unique domain identifier, protected by domctl lock. */
> +static uint64_t unique_id;
> +
>   static void __domain_finalise_shutdown(struct domain *d)
>   {
>       struct vcpu *v;
> @@ -473,6 +476,18 @@ static void _domain_destroy(struct domain *d)
>       free_domain_struct(d);
>   }
>   
> +static uint64_t get_unique_id(void)

The implementation is assuming that domain cannot be created 
concurrently. The rest of domain_create() seems to be able to cope with 
concurrent call (even if domctl prevents this situation today).

So I think we would want to make this call safe as well. One possibility 
would be to (ab)use the domlist_update_lock (I think the uniq ID is only 
necessary for real domains).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 11:53:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 11:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228841.396037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7sR-0002Iu-TO; Mon, 22 Nov 2021 11:52:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228841.396037; Mon, 22 Nov 2021 11:52:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7sR-0002In-P9; Mon, 22 Nov 2021 11:52:51 +0000
Received: by outflank-mailman (input) for mailman id 228841;
 Mon, 22 Nov 2021 11:52:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mp7sQ-0002IY-VW
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:52:50 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mp7sQ-0006qj-SI
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:52:50 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mp7sQ-00022c-R8
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:52:50 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mp7sO-0000Fy-H3; Mon, 22 Nov 2021 11:52:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-Id:Date:Subject:Cc:To:From;
	bh=A8tQwTTMjTvXftLlpa9RUQgFc7HF0aVLNGVPoKDuv9Q=; b=Ml000PporhyZFXZwf8VZgLTqIl
	Qhyx/Lnw2UqVIu6lImr+A6Si+iyTVq3fjCnlSY6E1+zyBeI5Yd9IbtU66MJ5SBZ1heupnFPN1B+0u
	Ja8S3lTXNuYSjFf/SY6VzSRDYEN23czg19sWZwphEIq33p3+KY6woo0alwTzJtUNAEAc=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Ian Jackson <iwj@xenproject.org>
Subject: [OSSTEST PATCH 1/2] README.dev: Document to use updated osstest for commissioning
Date: Mon, 22 Nov 2021 11:52:38 +0000
Message-Id: <20211122115239.21743-1-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Ian Jackson <iwj@xenproject.org>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
---
 README.dev | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/README.dev b/README.dev
index 3d09b3c6b..132772fb4 100644
--- a/README.dev
+++ b/README.dev
@@ -108,6 +108,8 @@ Create the tftp directory (must be done after firmware is set):
 Run commissioning test flights
 ------------------------------
 
+(Update your osstest tree to the latest production.)
+
 Firstly, a basic "host examination" that checks that we can install
 and boot Xen:
 
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 11:53:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 11:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228842.396048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7sT-0002Yd-6Q; Mon, 22 Nov 2021 11:52:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228842.396048; Mon, 22 Nov 2021 11:52:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp7sT-0002YW-2O; Mon, 22 Nov 2021 11:52:53 +0000
Received: by outflank-mailman (input) for mailman id 228842;
 Mon, 22 Nov 2021 11:52:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mp7sR-0002Ie-88
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:52:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mp7sR-0006qn-7K
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:52:51 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mp7sR-00022o-6B
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 11:52:51 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mp7sO-0000Fy-RF; Mon, 22 Nov 2021 11:52:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:Content-Type:
	MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=FExyuulJuHXMdlWWBxDca7ZOXC5VKaY1YWmCJG9l4rE=; b=mXzkJ3WtTRW4aoU4APtXN+DDPO
	upk6n3aewIe32SP1/26srCgCesW422Uz5J4DJAb56f35SKyniYdXFonU8lm73Y9sHMf7QBXzlikCR
	RUvfpccF08HoPm4U9sqtnmoSJjiIt7hE6GYBhfs8TeFMQjlBC4Cv0j63R8StOm0aSH1o=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Ian Jackson <iwj@xenproject.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [OSSTEST PATCH 2/2] allow.all: Treat freeBSD memdisk-try-append failures as nonblocking
Date: Mon, 22 Nov 2021 11:52:39 +0000
Message-Id: <20211122115239.21743-2-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20211122115239.21743-1-iwj@xenproject.org>
References: <20211122115239.21743-1-iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In practice this currently fails on some of our hosts.  We don't seem
to have resources to investigate properly, and this will be blocking
recomissioning of hosts if we don't get it out of the way.

Signed-off-by: Ian Jackson <iwj@xenproject.org>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 allow.all | 1 +
 1 file changed, 1 insertion(+)

diff --git a/allow.all b/allow.all
index 7a34a809e..878c04ca5 100644
--- a/allow.all
+++ b/allow.all
@@ -3,3 +3,4 @@ build-@@                        logs-capture@@
 test-@@-pcipt@@
 test-@@-qemuu-@@		guest-localmigrate
 test-@@-win7-@@			guest-stop
+test-@@				memdisk-try-append
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 12:22:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 12:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228856.396059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp8LM-00067m-Le; Mon, 22 Nov 2021 12:22:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228856.396059; Mon, 22 Nov 2021 12:22:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp8LM-00067f-IP; Mon, 22 Nov 2021 12:22:44 +0000
Received: by outflank-mailman (input) for mailman id 228856;
 Mon, 22 Nov 2021 12:22:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=smF8=QJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mp8LK-00067Z-LG
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 12:22:42 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1d6b1ed-4b8e-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 13:22:40 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1d6b1ed-4b8e-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637583760;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=nBPwri5Pbg0JkKUx0377p6Kz9cOK8eP/1ma6eyjGdpw=;
  b=Lipuq5pFUFnwb3uM51SqEVWqqAcK1RDzb94iC/Fm3f3qO6oqAHAVTxV5
   9VipStPVtpL0XxbAvScTA8exo4NoeGk1ca37Gs169ty/YCQkxDSKRauzo
   xRPUm+ew+yi8t+VbK//+KoK5w1OPQfcVGvxxfyn7LOk5l4i22aqDdt0wz
   4=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: VQ+HVWJg/ODVyZ5JmZFV3N0IS2Mrgv2K5p7FVRhABP0cSNXwWvQpU7cGqmGzMQc+k4yKnzdYQ+
 UXOAgXBvIEzQeOViX7kx3+yuj/HVvgphP0MBd0gTMVsRUFFtGxg4DFsYY7lfJbOCucW2N7U2q3
 +BOYQ1zu/mlXFMEDlNYTQfORgvOFxj/FhaE2DWneZ9UVs7IRuKom6oG0oBAkO6rS35HeSIjLdr
 PYFNi/m8oAq3EQra+rbHPrFv/kwddmhEnLZVVyEgm4MqA7Khi1sZkNj9wzEs5gJUZm2POUjSyG
 nKOBimOb6zTnfThcPsGiGhzK
X-SBRS: 5.1
X-MesageID: 58311831
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:oEPIzqykY6Ak+DNj8Al6t+fxwSrEfRIJ4+MujC+fZmUNrF6WrkUDn
 TRKXm/UM/rcNGSne9tzPd+x90sA6JbUy9FjGgRrrSAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRj2tcAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt4hj1
 dYSuqSRczUCb4vTw7saTjNzLC4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYIIh25p1psXdRrYT
 +Q/eSAxNCzcXxNoAw8+N5EMzeaThkCqJlW0r3rK/PFqsgA/1jdZwLXrddbYZNGObcFUhVqD4
 HLL+XzjBRMXP8DZziCKmlqtme3njS79QJgVFrCz6rhtmlL7+4AIIERIDx3h+6D/0xPgHYIEQ
 6AJxsYwhfAg6U/0QeHcZS+T8Vib5UEbRvB7LOJvvWlh1ZHoywqeA2EFSBtIZ9onqNI6SFQW6
 7OZoz/6LWcx6ePIEBpx4p/R9GrvYnZNcQfucAddFVNdi+QPtr3fmf4mojxLNKeuxuP4Fjjrq
 9xhhHhv3u5D5SLnOkjSwLwmv95OjsWRJuLWzl+ONo5A0u+eTNT7D7FEEXCBsZ59wH+xFzFtR
 kQslcmE9/wpBpqQjiGLS+hlNOj3vKnYamWA2wI1QsFJG9GRF5mLJ9443d2DDB0xbpZslcHBP
 ic/Rj+9FLcMZSD3PMebkqq6CtgwzLiIKDgWfqu8Uza6WbAoLFXv1Hg3PSa4hjmx+GBxwfBXE
 crKKq6EUCdFYZmLORLrHo/xJ5dwnXtgrY4SLLimpymaPU22OCTIFOxbaQTWNYjULsqs+W3oz
 jqWDOPToz13W+zieCjHt4kVKFEBN38gAp7q7cdQc4a+zsBOQgnN0tfdnuEsfZJLhaNQmrua9
 32xQBYAmlH+mWfGOUOBbXU6MOHjWpN2rHQaOy0wPAn3hyh/MNj3tKpPJYEqebQH9fB4yaImR
 fcyZMjdUO9ETS7K+mpBYMCl/pBibhmimSmHIzGhPGokZ5dlSgGQoo3kcwLj+TMgFC2yscdi8
 bSs2hmCGcgIRhh4DdaQY/WqlgvjsX8YkeN0fk3JPtgMJxm8rNk0c3T816ZlLdsNJBPPwiqh+
 zyXWRpI9/PQp4IV8cXSgfzWpYmeDOYjTFFRGHPW7OjqOHCCrHaj24JJTM2BYSvZCDHv4Kyna
 OhYk6P8PfkAkAoYuoZwCe82n6c35t+prL5G1AV0Wn7Mag3zWL9nJ3CH2+hJt7FMmeAF6VfnB
 BrX94kII6iNNePkDEUVdVgsYem03P0JniXfsKYuK0Lg6S4rpLeKXC2+5fVXZPCx+FetDL4Y/
 A==
IronPort-HdrOrdr: A9a23:Q8GNIq4hM6QpsE89+APXwVKBI+orL9Y04lQ7vn2ZFiY7TiXIra
 yTdaoguCMc6AxxZJkh8erwX5VoZUmsj6KdhrNhQItKPTOWw1dASbsN0WKM+UyDJ8STzJ856U
 4kSdkDNDSSNykKsS+Z2njALz9I+rDum8rJ9ISuv0uFDzsaE52Ihz0JdDpzeXcGIjWua6BJcK
 Z1saF81kWdkDksH46GL0hAe9KGi8zAlZrgbxJDLxk76DOWhTftzLLhCRCX0joXTjsKmN4ZgC
 T4uj28wp/mn+Cwyxfa2WOWx5NKmOH5wt8GIMCXkMAaJhjllw7tToV8XL+puiwzvYiUmRsXue
 iJhy1lE9V46nvXcG3wiRzx2zP42DJr0HPmwU/wuwqrneXJABYBT+ZRj4NQdRXUr2A6ustn7a
 5N12WF87JKEBLphk3Glpn1fiAvsnDxjWspkOYVgXAae5AZcqVtoYsW+14QOIscHRj99JssHI
 BVfY/hDc5tABCnhk3izytSKITGZAV3Iv7GeDlMhiWt6UkXoJgjpHFogPD2nR87heQAotd/lq
 P5259T5cNzp/ktHNVA7dc6MLiK41P2MGfx2UKpUBza/fI8SjnwQ6Ce2sRA2AjtQu1P8KcP
X-IronPort-AV: E=Sophos;i="5.87,254,1631592000"; 
   d="scan'208";a="58311831"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dZ0/LomNfmU5oCJQGY3N/bnwnqS6ma1W3DJJ/sOZcbCzO3sJlQbCD3WNSoCymIic1P956PJPKGpy8Sw3U8u51jtDH5rsZXOyiNzhYAmCJG2rOOqXK+iMU5vgZ6XtXdOZOO+NKqvQ+9DifXvq3h8uwekR34QNROAD2mg0bSa8s20yIN6RK7oY4unSVuJizjCpI4EFXrD/ZL1I3JiuDVdhTeysUmz12bJhcL51gUlXhvBDXkzG3FpWQeT5ZmakI2aEstyQixG+0qEdk9tRS5nG7w+SK3sewdudixOI2ieNpu+sZ5vDTfPjZ8u30oUHXjDBPi8sJuRlbTxeyFfL+ZfvDA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PrciBsrvGuzzfcUacjBwgsXSlc0j6o6X84uGBD9NpiQ=;
 b=Kr8CW8dWGdxb5B96ty1dtik0q0huX3DMAvMmED4V9dcO2xvicWZ63GPAbFEbHvyWCrPa3Tcw9yy48pJPeB5agZY+fiWlDgxzGXEfcmFpDa7v86dpEvHWinjqoq0bjWgw9HJlwRv6z47BfgepZBTDss0LNQTUiH7gOyV8gV52mAjOHMprVuIU2YeDmyrGFVU6Izq3eCa4I4ftrE9DMmIiUMtYH2oPbdqptlROWMxobfTujfRZCREP0CP9hCnLQM8XfdMWGMjn8V2H/lnGlzBJlBnHNy++zfJZpU1M6iPdbJGe9GDKL9getNRDkix44FpYrLeOrH2gN/CdPi6fWF4z+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PrciBsrvGuzzfcUacjBwgsXSlc0j6o6X84uGBD9NpiQ=;
 b=OkSmLauG0xi8ReTbFjgle7sGHOrmfOEYlLmSMeZZ4ELnu8fZUlnDSaEkdHO8TfYKd7o9FZSvy9HejE8e/pI28V8+yQ7BSIhjbDST9Y95Vpy4pUH+6lYGeoy7YLNLim0zuzSrBAaqALJdGW6nnAuNe/Iz5a/Y1MjvMaj6z74PRV4=
Date: Mon, 22 Nov 2021 13:22:29 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ian Jackson <iwj@xenproject.org>
CC: <xen-devel@lists.xenproject.org>
Subject: Re: [OSSTEST PATCH 2/2] allow.all: Treat freeBSD memdisk-try-append
 failures as nonblocking
Message-ID: <YZuLhUi1THNMCx4T@Air-de-Roger>
References: <20211122115239.21743-1-iwj@xenproject.org>
 <20211122115239.21743-2-iwj@xenproject.org>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211122115239.21743-2-iwj@xenproject.org>
X-ClientProxiedBy: MR2P264CA0039.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500::27)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 005fef41-0fba-41ec-e96a-08d9adb2c39c
X-MS-TrafficTypeDiagnostic: DM6PR03MB4762:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4762BA0A130FEAC674AF57278F9F9@DM6PR03MB4762.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2733;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: sHtfYTYaaLz4bFmAV773sjxCU4BpSRD+dedWOh8xmv7ay+/eNfa53OOB+u8Jv9tI2F6NSIftowWlmmUl5yiYZwUuIx/RFzbkezQAWCX1d+dcCeLNR8KD6txLi1aemIUPFg18V/iWrXlqeN9nS7EjAOvkCH0AMCmhk+4RuZCjXmHSqRLncwPolFuyUuP0Dwt2K28uyz6J+nV296FmE0elKrC9OETl8s6Lv6GWOMnxtgr00AkUcLqnQ2CnH1OJkbVjUZzTYtAhNmtzAXKwyCqdngy7gLUnncQ3mALws0ZhSbeydSWZiySBmKbfvZ04B4oOUvu70nbs6PUO+H5FxEzBQXfjLTlnLb/HaACxkw6PWmHNACRKmVGp2ZaDR+4b5zVnoVPpH5qQ3YqKaahRHs2mu7ObKkZFf96l+IWKYHrygEEUmYdq2RL/YX1GBPQOLptTxBmxreLGXCAW1ZFCmvy5dKPfsKPEDbPCTTgGdBfNut7+bmb7PoPEzrN/iQK7/i8eRq+cC0AlUb3ZLyCbwtv0cMUfXkKDcnw7wYy5g5dB3b32dAz1/QFqD5SddxqKxg7QjisMrfh1In65siguKigqKo+a+P+nUNqsy6yEOZWeXA0SWob85dix4/J4kGmBYXO5uRJU5wm9mSrJcdQKACg1yQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(82960400001)(316002)(66556008)(66476007)(508600001)(4744005)(66946007)(83380400001)(26005)(8936002)(86362001)(6486002)(85182001)(8676002)(5660300002)(6916009)(2906002)(956004)(33716001)(186003)(6666004)(4326008)(9686003)(6496006)(38100700002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z3luWmYzdHZ1RzFVTUVKd2lnNmFjb1NsUFoxV0xnU0dlN3V2aFRqWFpzZ3VD?=
 =?utf-8?B?Q3Zoc2xiaWJmZC9uSmJlSHZZa3paSEpKZjAzNklsM1BtcjA2MXQxbkQ3dEs0?=
 =?utf-8?B?SXR1c0Q3M3V0Q1ZDTVZOLzloNGpZSS9hYTdEeHFJaTk1S3dzSXoreFpPUmlP?=
 =?utf-8?B?M1d1OFA4QUg2dW5FSDlpaDUreEVSYWJUKzMvSzFSOUszOTM0ZXUram4vQSt1?=
 =?utf-8?B?ZThWeURvb0RNcDBjc1VjMWlZcThjQnhzVlRBcWNGSVBObWMvTmVObkphR1Yy?=
 =?utf-8?B?UkhPYjBnZkdseTFJN0Z6OXY3dThUSFRwZ0k4b2R2TG9jQTNUUDVhMGlzRzF5?=
 =?utf-8?B?SEpFNUFDZEN0dGpWbjFvT0ViVEpPNjYyWnAwNGVWcndsME5ZSzZvbnovSEds?=
 =?utf-8?B?UkRlaHQrdFd6aWtjbU5mSUgxL3ZXTFNRbklyeFBtUFNGNjIrN1NrMkxQN0hm?=
 =?utf-8?B?WHJxYVZYNkNhSFR1WW5jOUpFM2hvZjAvMUNXLy90L09Fc0VWaCtvNGtjdjN3?=
 =?utf-8?B?L3JzTXViOG5oKzlDbGVzTFZsZmN2SDN1bTllT1VmVXp3R1hBSXFpUGtoWFFO?=
 =?utf-8?B?VnhleXpNOXo2bVlPTTZaVnNGanBNT0tNZFNjYVFrNVI2RGFzVGxwRC9aQVhn?=
 =?utf-8?B?SDQ4YmZEVU5tSDFVVU40R2s4aWZLQ2dORDFWekF6a3JoNERMYWZMQ3VuSHUy?=
 =?utf-8?B?cjdIclFnaGl2Q3BtS1N4UDh6c3o4bjZPNG5hOUlpVi9SWUVHeVRPcFY0TTcx?=
 =?utf-8?B?dU5xWHNrVzUrdDQzdS9nR0VDRGxFT3lJZ3ZRRDk2UlM5dWhSTWh2RlNHRGZV?=
 =?utf-8?B?QlliSW9XODkwY1FwWU5SNm85VVpSK2NEWFlaZXc3YmNDNUN6dEF0TzZGdzJC?=
 =?utf-8?B?NURtaE9JZlZ0OENwQkc4S3orNjZkMTVIdTlySVR2U09EZkxYTG44cCt4eUJp?=
 =?utf-8?B?dlp1eU5VTUZIR1RHV2RkR0tOaWNJdEI5ZWJ2Z1ZodHF6WWNhUHlsSVhrTTJW?=
 =?utf-8?B?TWZ1UlRGb3pKRzQra09sVTNVT014dnV0b1RJV0Q1TVdqRzZwN3pmSkFpQTNk?=
 =?utf-8?B?SGkxMEtNUkFFbTg3UWo0Q3VUanVzbUZWanhKNXA2YXpuWmdmZ1dGY01haTE1?=
 =?utf-8?B?SEVOaFdXZWNCUW9mZE4rN20wNVJqMWNzTlBKN21YWkZIVkphVm01UDJXTVZi?=
 =?utf-8?B?dEY1QXlQTFFtdTMweTFhWDFBYUxyRUdiTE94SzVnck1uSzBGazJGb1JUWVVV?=
 =?utf-8?B?Wnk1UlZHOEs4aCtBV1UvTnhjOWw3UjlPbmFDQ1J4SkN2RWRHZWk4ZXJvUW1a?=
 =?utf-8?B?R1pSN1pVSXJkbWp3Q0k2anBzTkV1N3FpZisyOUltTEF0UmVYZ2VPLzFLWTBO?=
 =?utf-8?B?aUMvNnpwdGFZY2RFVEZucEs4V3NzRDFsVVFrQi9hLzlTTkRGZWh2cWFWYmRL?=
 =?utf-8?B?UWMvUndRUmFTWHRPSXNsNDhHRTRUMkphSUh2bWNodmtZUE8wN2xFb01rWU1h?=
 =?utf-8?B?NW9ZdEh4RDJmQk5NaW5FTHNDUHAwQWJrTFBOVmdHM1o3bXphbWdza0FWeVBN?=
 =?utf-8?B?b0ZUWGRlSnpuZXUrR0MrSHgveSsvOXV4YWg2dDVmTXZKdnI4QnhoeWdyb1pK?=
 =?utf-8?B?V1pJbWppMlJucWF1QlNNdjJYT29GaEV5dTJzVXNXZmZ5Z1Zhc1lFb1J0VUFx?=
 =?utf-8?B?VkhONC9CS0N4TlRzVkxuaHZsY09hSDArLzAzRk1Vc3R3Z3FMbklpVEdxU09X?=
 =?utf-8?B?NHFYT0pFd25jWWNYWGhSdGY0QzV4TWxFV0I5NktOOUFBSjg2S2s1TXFQeWlB?=
 =?utf-8?B?NFBCaUt4M3pNL05Ic3FzNkIzR09WSkUwbGdvWXEvTGl1NnU0eTFibWJPTUhZ?=
 =?utf-8?B?cll5SkJYek1VdWdQL1pxNVA3ZUxDOXFmblVJbjFPQXJCcUFRRjNvQndqZXlr?=
 =?utf-8?B?MGswZU4ycjRWOEJEZHZHbzNCeHV5cmN4cXJkNnBsTWhjY29SRG14cDFDL2V2?=
 =?utf-8?B?c1NSQlN2a3JORGVtS29nOW1FcUE4SzBzdldZSm5FeGRHWnk4REN1V251NEpC?=
 =?utf-8?B?UTN2SHM1YnNVODJkTy8wSDJkYm9kOWRWakRITFJUVGJsQ2M4a1hwWWtEQjRs?=
 =?utf-8?B?SnBlVjhCZ1RkQ0lodHd2ckhzeGNJK0k5aTVIdUhNbXZLemRITFd2WVJ6U1p0?=
 =?utf-8?Q?FnioCEZJ6HcUOAIFcoAOGvQ=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 005fef41-0fba-41ec-e96a-08d9adb2c39c
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 12:22:34.8096
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LvQvQ854109QsX/tnpO6tldYBAXG8SZ13Io2XpqfLdloNiylWYrxOjbpv3V50Bu2o4xcW2bHw6HlfSQjYtqVtw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4762
X-OriginatorOrg: citrix.com

On Mon, Nov 22, 2021 at 11:52:39AM +0000, Ian Jackson wrote:
> In practice this currently fails on some of our hosts.  We don't seem
> to have resources to investigate properly, and this will be blocking
> recomissioning of hosts if we don't get it out of the way.
> 
> Signed-off-by: Ian Jackson <iwj@xenproject.org>
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> CC: Roger Pau Monné <roger.pau@citrix.com>

FTR, as I've replied on IRC:

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 12:46:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 12:46:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228863.396069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp8i0-0000Ao-Jh; Mon, 22 Nov 2021 12:46:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228863.396069; Mon, 22 Nov 2021 12:46:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp8i0-0000Ah-Gm; Mon, 22 Nov 2021 12:46:08 +0000
Received: by outflank-mailman (input) for mailman id 228863;
 Mon, 22 Nov 2021 12:46:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fXQY=QJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mp8i0-0000Aa-16
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 12:46:08 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 261572d6-4b92-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 13:46:02 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 90FB21FCA3;
 Mon, 22 Nov 2021 12:46:01 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 5A65413B44;
 Mon, 22 Nov 2021 12:46:01 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id R6TRFAmRm2GSQAAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 22 Nov 2021 12:46:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 261572d6-4b92-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637585161; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=iY4pIDoIqsZKILf62Hom/2rBYD4KllARaTuy3u+d2Nw=;
	b=bblxAREhZc69XZdVMQwpW81A70vf/0pPrVM2OkRMGu7FA8bV0KlD1Gjm92kE7ZUujSLBQm
	P4Nus6t1PgXTuwghHZTPV+7LIRD9qujqpa/jUFa2Fu4DVtv/Gwe6tvHizLPw71b9H0BHui
	G8G0fBklz6KI8IJRimt6jrsGQCGMQsM=
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-3-jgross@suse.com>
 <578438ad-dfb2-314c-6514-a2e72aeed091@suse.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH RFC 2/4] xen: add bitmap to indicate per-domain state
 changes
Message-ID: <e31fd752-a170-f169-5557-ec593b7a27e2@suse.com>
Date: Mon, 22 Nov 2021 13:46:00 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <578438ad-dfb2-314c-6514-a2e72aeed091@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="nxHRDCYKIDrTy2MKl9Zg6E7OTpYY7noEq"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--nxHRDCYKIDrTy2MKl9Zg6E7OTpYY7noEq
Content-Type: multipart/mixed; boundary="qw7Vf2twF69kUqhXRmgKToSaUL5IAdQTn";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
Message-ID: <e31fd752-a170-f169-5557-ec593b7a27e2@suse.com>
Subject: Re: [PATCH RFC 2/4] xen: add bitmap to indicate per-domain state
 changes
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-3-jgross@suse.com>
 <578438ad-dfb2-314c-6514-a2e72aeed091@suse.com>
In-Reply-To: <578438ad-dfb2-314c-6514-a2e72aeed091@suse.com>

--qw7Vf2twF69kUqhXRmgKToSaUL5IAdQTn
Content-Type: multipart/mixed;
 boundary="------------25F0B4CF8B552107F73EC8F0"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------25F0B4CF8B552107F73EC8F0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 22.11.21 11:41, Jan Beulich wrote:
> On 14.09.2021 14:35, Juergen Gross wrote:
>> Add a bitmap with one bit per possible domid indicating the respective=

>> domain has changed its state (created, deleted, dying, crashed,
>> shutdown).
>>
>> Registering the VIRQ_DOM_EXC event will result in setting the bits for=

>> all existing domains and resetting all other bits.
>=20
> Generally I view VIRQ_DOM_EXC as overly restrictive already - what if b=
oth
> a xenstore domain and a control domain want respective notification? He=
nce

The general idea was that in this case the control domain should
register a related Xenstore watch.

> similarly I'm not convinced a single, global instance will do here. Whi=
ch
> in turn raises the question whether the approach chosen may not take us=

> far enough, and we wouldn't instead want a more precise notification mo=
del
> (i.e. not just "something has changed").

Yes, that would be the job of Xenstore. It would provide the more
fine grained watches for that purpose.

>=20
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -87,6 +87,22 @@ bool __read_mostly vmtrace_available;
>>   /* Unique domain identifier, protected by domctl lock. */
>>   static uint64_t unique_id;
>>  =20
>> +static DECLARE_BITMAP(dom_state_changed, DOMID_MASK + 1);
>=20
> While not really making a difference to the size of the bitmap, afaict =
up
> to DOMID_FIRST_RESERVED would do. Neither system domains nor idle ones
> will reach, in particular, the set_bit() in domain_create(). And none o=
f
> them can be subject to destruction.

I'd be fine either way.

> Also I think this could do with a brief comment as to what causes bits
> to be set. This would avoid readers having to go hunt down all the
> set_bit() (or the commit introducing the bitmap).

Okay.

>=20
>> +void domain_reset_states(void)
>> +{
>> +    struct domain *d;
>> +
>> +    bitmap_zero(dom_state_changed, DOMID_MASK + 1);
>=20
> While this looks to be fine with the present updates of the bitmap, I
> still wonder about the non-atomicity here vs the atomic updates
> everywhere else. It feels like there's some locking needed to be future=

> proof. Since you come here from VIRQ_DOM_EXC binding, it could be that
> domain's per-domain lock.

Fine with me.

>=20
>> @@ -1141,6 +1161,8 @@ static void complete_domain_destroy(struct rcu_h=
ead *head)
>>  =20
>>       xfree(d->vcpu);
>>  =20
>> +    set_bit(d->domain_id, dom_state_changed);
>> +
>>       _domain_destroy(d);
>>  =20
>>       send_global_virq(VIRQ_DOM_EXC);
>=20
> Wouldn't this better be in domain_destroy() immediately after the domai=
n
> has been taken off the list, and hence is no longer "discoverable"?

In this case the call of send_global_virq() should be moved, too,
I guess?


Juergen

--------------25F0B4CF8B552107F73EC8F0
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------25F0B4CF8B552107F73EC8F0--

--qw7Vf2twF69kUqhXRmgKToSaUL5IAdQTn--

--nxHRDCYKIDrTy2MKl9Zg6E7OTpYY7noEq
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGbkQgFAwAAAAAACgkQsN6d1ii/Ey/C
qQf+PQuww7DLwmK5LQPIxAixnRuv5Bum50OwTqKQtu+xa1nQens2wCHPJDgH6DMZ53qFLswcWXIl
R97cIDY+M7cXg5mziPWZFzUHngQlvP9eDHouKV+pAjgEax8pkAFrCqhs9blT3bXhVRMdMY7P/5AO
EEmhc+O0RrwSXh04OpjPHplnU8SBNfErxUDRQ6th1XfqoCC3uVqA4yRcpLFEn0dAmQgq5+1NDuBC
uMxBtlJOpTfNTXYXm7e2oIA7rNETj0+0d/63AMN0m/TrhKTpF8K843ipc2V+t5Hd7ZWpuIj496Ka
dkLD2m9EzfxfiSa6t4vXHpgI0F82WpFaE79wZhl33Q==
=CxZq
-----END PGP SIGNATURE-----

--nxHRDCYKIDrTy2MKl9Zg6E7OTpYY7noEq--


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 12:48:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 12:48:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228870.396080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp8k2-0000nY-0L; Mon, 22 Nov 2021 12:48:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228870.396080; Mon, 22 Nov 2021 12:48:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp8k1-0000nR-TY; Mon, 22 Nov 2021 12:48:13 +0000
Received: by outflank-mailman (input) for mailman id 228870;
 Mon, 22 Nov 2021 12:48:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fXQY=QJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mp8k0-0000nJ-VA
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 12:48:12 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 739e9db9-4b92-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 13:48:12 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id C46E7218D5;
 Mon, 22 Nov 2021 12:48:11 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7EB9013C97;
 Mon, 22 Nov 2021 12:48:11 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id lxt4HYuRm2G3QQAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 22 Nov 2021 12:48:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 739e9db9-4b92-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637585291; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=9ZptZlGKV3D/4XErNWYghvHrQ3MiPu2tRLeMhHLnZqw=;
	b=IBSDVis6EgPVYBxw2aeSFvGDTxJhh+8rP7D+3bSFmYH77SWrR+Mg6ruVZqX2QQ4cGGPJC8
	JPjUi4U6T+Q9JktiKsK3lDr97DiwCBvph6Kb9WAj/aT2pCgJGI/2UragY8CUyWcPXn+Zjl
	a5n5/LsyYK75bbsgxrhILVe2CUXZnLE=
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
 <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
From: Juergen Gross <jgross@suse.com>
Message-ID: <fa778d46-0a4b-254c-0cde-d3df4e53ec4a@suse.com>
Date: Mon, 22 Nov 2021 13:48:10 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="PY07kKgbb0sNpEt4zNXSvyPZgP6nCqHF1"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--PY07kKgbb0sNpEt4zNXSvyPZgP6nCqHF1
Content-Type: multipart/mixed; boundary="2s09dzEWNYLugLPymPPV2MIPtZbEGxtrq";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Message-ID: <fa778d46-0a4b-254c-0cde-d3df4e53ec4a@suse.com>
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
 <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
In-Reply-To: <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>

--2s09dzEWNYLugLPymPPV2MIPtZbEGxtrq
Content-Type: multipart/mixed;
 boundary="------------56615774EB79005BAA89FB4C"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------56615774EB79005BAA89FB4C
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 22.11.21 12:42, Julien Grall wrote:
> Hi Juergen,
>=20
> On 14/09/2021 13:35, Juergen Gross wrote:
>> Xenstore is referencing domains by their domid, but reuse of a domid
>> can lead to the situation that Xenstore can't tell whether a domain
>> with that domid has been deleted and created again without Xenstore
>> noticing the domain is a new one now.
>>
>> Add a global domain creation unique id which is updated when creating
>> a new domain, and store that value in struct domain of the new domain.=

>> The global unique id is initialized with the system time and updates
>> are done via the xorshift algorithm which is used for pseudo random
>> number generation, too (see https://en.wikipedia.org/wiki/Xorshift).
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>> =C2=A0 xen/common/domain.c=C2=A0=C2=A0=C2=A0=C2=A0 | 16 ++++++++++++++=
++
>> =C2=A0 xen/include/xen/sched.h |=C2=A0 3 +++
>> =C2=A0 2 files changed, 19 insertions(+)
>>
>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>> index 6ee5d033b0..755349b93f 100644
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -84,6 +84,9 @@ vcpu_info_t dummy_vcpu_info;
>> =C2=A0 bool __read_mostly vmtrace_available;
>> +/* Unique domain identifier, protected by domctl lock. */
>> +static uint64_t unique_id;
>> +
>> =C2=A0 static void __domain_finalise_shutdown(struct domain *d)
>> =C2=A0 {
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct vcpu *v;
>> @@ -473,6 +476,18 @@ static void _domain_destroy(struct domain *d)
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free_domain_struct(d);
>> =C2=A0 }
>> +static uint64_t get_unique_id(void)
>=20
> The implementation is assuming that domain cannot be created=20
> concurrently. The rest of domain_create() seems to be able to cope with=
=20
> concurrent call (even if domctl prevents this situation today).
>=20
> So I think we would want to make this call safe as well. One possibilit=
y=20
> would be to (ab)use the domlist_update_lock (I think the uniq ID is onl=
y=20
> necessary for real domains).

In case this is thought to be needed, I'd rather use a cmpxchg operation
for updating unique_id.


Juergen

--------------56615774EB79005BAA89FB4C
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------56615774EB79005BAA89FB4C--

--2s09dzEWNYLugLPymPPV2MIPtZbEGxtrq--

--PY07kKgbb0sNpEt4zNXSvyPZgP6nCqHF1
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGbkYoFAwAAAAAACgkQsN6d1ii/Ey+T
KQf+L87nnM58J3FsNxVVXwfT89PocDv3nvDDi5iNdlKYg/gRhrCEQoPyxFg2etwF1++sASXigGCp
i/atg4mBHhGydP2CU8df5w3zgAnGQ3D1DYnnTFKPyBtCSCrp0VaXlK0jTanpe9o7k54VCkNo3h9w
Wh6NbWyodH9WPFYr1Qxe2nao+Bg+Ly1M729xNvD4htWIcVVpgPHDCWY7kSwwIkMkMaeHJvwKxYp0
XkxM9hJf4zccW4oOXgXvigRG01foD0jXMz146yEJWvgcOAXMQAY7KsH/wk36fuRzpprjXeUus9w+
akxQqVlVBZts1cfMlw9P57lj0csa6md9gsaAd5Styw==
=IiLi
-----END PGP SIGNATURE-----

--PY07kKgbb0sNpEt4zNXSvyPZgP6nCqHF1--


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 13:40:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 13:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228880.396091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp9Y3-0005kp-WD; Mon, 22 Nov 2021 13:39:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228880.396091; Mon, 22 Nov 2021 13:39:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp9Y3-0005ki-Si; Mon, 22 Nov 2021 13:39:55 +0000
Received: by outflank-mailman (input) for mailman id 228880;
 Mon, 22 Nov 2021 13:39:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mp9Y2-0005kc-0f
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 13:39:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aba26d87-4b99-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 14:39:52 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-29-Vp6QOr9iMmSDtARCqAMpdQ-1; Mon, 22 Nov 2021 14:39:51 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6383.eurprd04.prod.outlook.com (2603:10a6:803:11b::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20; Mon, 22 Nov
 2021 13:39:46 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 13:39:45 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.13 via Frontend Transport; Mon, 22 Nov 2021 13:39:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aba26d87-4b99-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637588392;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=CJDqWIOAnkp8AdqbabskQ33CEAxTCBaUXGUi5TwqvBo=;
	b=XJKeoYC0n/gqvvzzrI16vDmfWRkWeisjhphkPX7yPhkSBkYMMsFDtrGAZtfFRUK8k51xNN
	hCscNv9PNG3exBEouP89O5VzT0HnxIoKw4sTVw8akxgpl7dss1awDfeXJeo6tp4LbRA4VM
	oqeauh6vnLyH1c9b2+6qlsAETQf16tQ=
X-MC-Unique: Vp6QOr9iMmSDtARCqAMpdQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Uc5klzW9ofX5YaYLPJhqRB8ut5o/JJdRfGaMK+nJH2iN78G8d1NHlFU8t0D311IJ42fMnNouU1YkR9GrCgsMunjB7IV8og4M16+iQ5gLn2psOVyBw4FfRoXngfovqyO15ejWSci7tzajXh1gpi6KQWggRzisVlfeDEb6O3HIHSFzWhQ3cwdX9jw/PVh5i3Fwbm7v+SdCd57EjHiuqUsq8k6XOR4APemo/h/qckfO68n3XPZXy1TDpjjbkoCJdtFFW/Ahqs1kELYyhbddkyxw57Kqskasrt/wQAdhy9InUESJPudJ5WEqPBpko0V4ezY45/xqAarWRDfOmIeAi9dwIQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NdLh5QL2I942orzw8vED+ukwbVfREOpx+dAqvB7Bfuc=;
 b=WWAQ5Vs0BeVcCTRRguJDdh3t0b2awlGkbZMr9MV/BSFPHCAzBw2pmwy5pMJsBq+bAHostrkWcFPhkxJrhDwSgxPJ6wZHlxgSMKYXsOUuw8aofF3Zpe0ZY1HGdETmqMfBQXL+yqmkkB0iL6rtUKGy7zMLagCLmkFq/YDMdh6C3VozkBXP9Yh387O+StXsMkVe/W35ewlU5V3zLVKX0+jPCaFVBCNlX7ZMI087gL1usmmIlmxANeM3GYvCsVWcm9NafbTeRz1ik8JUofEiADMg3k6cZtzbRYZvi+lrIpao6rlkz57egKZsgJ3fG0SKlRi+Ksq7YVCSWtNe1saLcnc1DA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d7c09b1b-a34d-5352-a6f2-a444f1e27f98@suse.com>
Date: Mon, 22 Nov 2021 14:39:43 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 2/4] xen: add bitmap to indicate per-domain state
 changes
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-3-jgross@suse.com>
 <578438ad-dfb2-314c-6514-a2e72aeed091@suse.com>
 <e31fd752-a170-f169-5557-ec593b7a27e2@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <e31fd752-a170-f169-5557-ec593b7a27e2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com
 (2603:10a6:207:7::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c353c56b-cdff-4fdf-4098-08d9adbd8bbf
X-MS-TrafficTypeDiagnostic: VE1PR04MB6383:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6383614806E73D264074F7DBB39F9@VE1PR04MB6383.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	SzGT2c7xL4cd6Yh5D/5ShGpb6iDSWtDfhjqbqZjhQkwq8Uk/3iML9lF5NZJrFbC2u+tZ8qoLEykNM69Kbw/0Sj1lHzPWziq+ESDzyl7Z17EAZ7JElvSH1rEZ0ASVe0WmcXNJQyc1W7R2mm9vN3sTjeVjr5O7PXDpULo0Q4LgC/RnpRhKGx7cVcA4VOY35kNHhDuw6v1sFaq+PFfAN7ORlT7WDArVmlfhUiMFP8fIuM9MxPlUkx7Qc7OJF4jwPssbtagsTR+h+Zc3f0+ikH0pwKk0S3TkKashcI0SUJdCrC1PRqxNyj/xV7CHsQbsBY45/Gd7tC8BwlMImwcUFc+HA7g1RWZicSBGaxyOmj3x/0ZIYfNAOoSvmms5b/xRcHLSGsgE/mx7eA0k2vYsvVHS9Q4PaCjUftEqSL3VbSXpdSv6eCYH23d/ZJnjjBUpZ0sAviiHjPkESBWv6CBd0A7fk5S/ejpnV3YG+VtFlM8jXIAKU9VdN2EvJbBMCw5JrDeXnRnxB6i0s0qOhlhZCKQJyniLU7/y+/QT6UF2uzjRpifrbZSQmBYKXkm2W4HGY1CRK+gZqKV4RWkXaDNblV2L9xeOEjYC4ESp9RAldnGpWCCxs8h2dmug+h9E4YMq8Ke94AKPrLlCcmtweAMhpAZJrt5W5wEw21kI1YD/0b6hti9te+iYzTzxC2PRClJBo9nL5ZVWwh17NBLJoROBViR3UJ4hKPqfWO4CM4VEVlzbFtU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(31686004)(2616005)(66946007)(6636002)(6486002)(186003)(508600001)(66476007)(6862004)(54906003)(83380400001)(86362001)(31696002)(5660300002)(8676002)(2906002)(4326008)(36756003)(8936002)(37006003)(53546011)(38100700002)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?DH5JkyAYqct1AKy6iijPsTyFtiTlOnX5l9tW89ctNHTRUwFm9B21fxtiWGXl?=
 =?us-ascii?Q?xY93t0d7KKbFuB9orni7RioioHd6TePA/LU295Q9WIjCzs4U3NCwSdrqMMRW?=
 =?us-ascii?Q?HA3W7Yy3cH6+wSBCvLEW62Mvlp7oRwParkYuL496EG/L12dCfJMCW09vSAxA?=
 =?us-ascii?Q?OrmInCzNR/Y08qiToHuC3zwglnCGjn+Scr7c0Tk/bLS8u9gy4QCdTVrvc9hC?=
 =?us-ascii?Q?EjzrkLYa10o6HrF6x5ZKXIiHr9yslKbcDXEMzAMTInfvMKHSOvEzmDIh/bZI?=
 =?us-ascii?Q?3j0FhOeEgaOS4ke+ob51VqZTObQnWLKjp3IKIQNVIxmcGyXEgdSAtpy9qhzc?=
 =?us-ascii?Q?5u8zSnYxs3w8Z4y2Id1CXWftYEoOMpABqz1D408oMXkUJr3La1ATFJOgqTbx?=
 =?us-ascii?Q?/WtmaGsaWsHvRGEJASFhW1P+ieDIccqAWCNilLc7OFBdOXGj64iRnvKT8CX+?=
 =?us-ascii?Q?omuxoWaYu9yY+7YWTyxzQJagcW52W2cpQjD+LnqLEBZYAT/UGPkJkXAjyQQJ?=
 =?us-ascii?Q?dkv9Jau4pxpMZxIpAI3ndPZCF49FGhU5j+MnAVhfIowaw4qmf7qx+wUwYdPD?=
 =?us-ascii?Q?tI9e31A88XPMTwrTQC47RMRF56B9uGR4lDmRoxtRCvpPT5gGwelteBiaPa2R?=
 =?us-ascii?Q?0upobrmzQxaLT3Z45ZVkKTNnCG2vapq/doGmEsCQvn4uJ3/kFqfODeC5JEl/?=
 =?us-ascii?Q?etXPI06z9mrYVfYC5LtSCUo7BU3v1ZCD3IqVJw4xIiEKkX16QTEpZ2EpXCH/?=
 =?us-ascii?Q?ExKHey/Ty0QS758sP15fIHzD34aixTcDyhNPsSbKD2N+aCZTd0x+iFaVnpBQ?=
 =?us-ascii?Q?ry/DFcYMnbNGovBTS6gZFA2yoAtQTlp7UzJSJZQuuHm+3/9YvIGZUGlB6p7N?=
 =?us-ascii?Q?6qrDzWJwh0oXkzKJTdyeyk0ptUoF2M6heVXq1Nrsg0vg9dXqGOXa8tzrUf7P?=
 =?us-ascii?Q?nsuAbODLyO3wibZwwdwhruHanvHOBDuQ3DgQBeoL1w0Sn3F223tIRVX1ij5S?=
 =?us-ascii?Q?lYc5mzj8owBCb4fMads0+I7uKLjno3NTA053Ob8PdaJT4d+GHyEqN0yiwSj8?=
 =?us-ascii?Q?oXUOqd1VZf19TKjOptL3Wvf3DCEXjApx1F5Xc/ejizIKEvFWDQelBtZXb4iW?=
 =?us-ascii?Q?dpBg0D83/BShgdm4WvBEafSSU8MhxenZAwZm/MCggPI4M1A8/12dWvf6qgBK?=
 =?us-ascii?Q?ZQ4sYImbSz/5f5KqMnywy70VfjJVVNzmH7S7ot08nBEMRou7q8HznkV+IjT+?=
 =?us-ascii?Q?KoFPZWaGYMaqr4my2vTb3T66fK6sWKRIwKyUrs7EUsRjh6aBOd22HyFCwtBK?=
 =?us-ascii?Q?rI7axSrTyh3/cJwP19qEmo+xaSG1u+Vntf5ZftE1JecW982W54L3HCY7j9f5?=
 =?us-ascii?Q?kUIxof3lYpbJrftVYStv19RiHD8cMQjHaDKGi2pqBcPalH42YaSPVPWJw6Ba?=
 =?us-ascii?Q?t6IuILpTtvXVPtWl5dlS77Xa1PVDW3Nz8it2l4b+GODuSKo/AtVUMp2jYusq?=
 =?us-ascii?Q?VKLB0JRBZnQ0RvXhPZtje84MjYWXJ9hVQDWEv+e5JoOn7bgqXwYcFmxbYAIJ?=
 =?us-ascii?Q?+TzI6+OjVGrjC+UcjLUlURh0Kmx1Jd3/BOdDVighOSErXlst2GR+bL0smEeL?=
 =?us-ascii?Q?guF6aChSmJWXH/6HoHTA1aoeLBfqhXpU0AiNDWR1fpbSY3iv26ut4vlJ5ABP?=
 =?us-ascii?Q?xkUL7E8ohAYZ+I1yCWKI1DULT+s=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c353c56b-cdff-4fdf-4098-08d9adbd8bbf
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 13:39:45.7995
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8tAzYQDhrpwp54l/EAzNlAOqkuSjMjkzyFSoJ16+E1aBWjd9xMFH3xsm2rt3c+A1rGJQ3pP4i7f9XLKZd8plJw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6383

On 22.11.2021 13:46, Juergen Gross wrote:
> On 22.11.21 11:41, Jan Beulich wrote:
>> On 14.09.2021 14:35, Juergen Gross wrote:
>>> Add a bitmap with one bit per possible domid indicating the respective
>>> domain has changed its state (created, deleted, dying, crashed,
>>> shutdown).
>>>
>>> Registering the VIRQ_DOM_EXC event will result in setting the bits for
>>> all existing domains and resetting all other bits.
>>
>> Generally I view VIRQ_DOM_EXC as overly restrictive already - what if bo=
th
>> a xenstore domain and a control domain want respective notification? Hen=
ce
>=20
> The general idea was that in this case the control domain should
> register a related Xenstore watch.
>=20
>> similarly I'm not convinced a single, global instance will do here. Whic=
h
>> in turn raises the question whether the approach chosen may not take us
>> far enough, and we wouldn't instead want a more precise notification mod=
el
>> (i.e. not just "something has changed").
>=20
> Yes, that would be the job of Xenstore. It would provide the more
> fine grained watches for that purpose.

And the watch consumer still wouldn't have a way to distinguish two domain
instances using the same ID, would it?

>>> @@ -1141,6 +1161,8 @@ static void complete_domain_destroy(struct rcu_he=
ad *head)
>>> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 xfree(d->vcpu);
>>> =C2=A0 +=C2=A0=C2=A0=C2=A0 set_bit(d->domain_id, dom_state_changed);
>>> +
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 _domain_destroy(d);
>>> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 send_global_virq(VIRQ_DOM_EXC);
>>
>> Wouldn't this better be in domain_destroy() immediately after the domain
>> has been taken off the list, and hence is no longer "discoverable"?
>=20
> In this case the call of send_global_virq() should be moved, too,
> I guess?

Possibly, albeit I'd see this as a separate change to make. It doesn't
seem outright wrong for the vIRQ to be sent late. But I agree with the
idea of keeping sending and bit-setting together (ideally, even if this
was to stay here, the two would better sit truly side by side).

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 13:49:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 13:49:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228885.396102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp9ga-0007Ba-Qi; Mon, 22 Nov 2021 13:48:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228885.396102; Mon, 22 Nov 2021 13:48:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mp9ga-0007BT-Nq; Mon, 22 Nov 2021 13:48:44 +0000
Received: by outflank-mailman (input) for mailman id 228885;
 Mon, 22 Nov 2021 13:48:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=75Oo=QJ=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mp9gY-0007BN-Kf
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 13:48:42 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e656f299-4b9a-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 14:48:40 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:48634)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mp9gV-000xtQ-j1 (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 22 Nov 2021 13:48:39 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 917101FC53;
 Mon, 22 Nov 2021 13:48:39 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e656f299-4b9a-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <ecb4b299-5445-f3e7-5175-9422433061c0@srcf.net>
Date: Mon, 22 Nov 2021 13:48:38 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 3/5] x86/crash: Drop manual hooking of exception_table[]
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-4-andrew.cooper3@citrix.com>
 <4cff0241-ee75-59f5-49ff-cd29964efcbe@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <4cff0241-ee75-59f5-49ff-cd29964efcbe@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/11/2021 08:57, Jan Beulich wrote:
> On 19.11.2021 19:21, Andrew Cooper wrote:
>> --- a/xen/arch/x86/crash.c
>> +++ b/xen/arch/x86/crash.c
>> @@ -36,10 +36,8 @@ static unsigned int crashing_cpu;
>>  static DEFINE_PER_CPU_READ_MOSTLY(bool, crash_save_done);
>>  
>>  /* This becomes the NMI handler for non-crashing CPUs, when Xen is crashing. */
>> -static void noreturn do_nmi_crash(const struct cpu_user_regs *regs)
>> +static int noreturn do_nmi_crash(const struct cpu_user_regs *regs, int cpu)
>>  {
>> -    unsigned int cpu = smp_processor_id();
>> -
>>      stac();
>>  
>>      /* nmi_shootdown_cpus() should ensure that this assertion is correct. */
> Looks like this is the first instance of a noreturn function returning non-void.
> Are you sufficiently certain that (older) compilers won't complain about missing
> return statements (with a value)?

Yes.  https://godbolt.org/z/8a1efoh39

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:11:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228891.396114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpA2A-0001r3-Gi; Mon, 22 Nov 2021 14:11:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228891.396114; Mon, 22 Nov 2021 14:11:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpA2A-0001qw-DM; Mon, 22 Nov 2021 14:11:02 +0000
Received: by outflank-mailman (input) for mailman id 228891;
 Mon, 22 Nov 2021 14:11:01 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpA29-0001qq-Bs
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:11:01 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpA27-0000oh-Rz; Mon, 22 Nov 2021 14:10:59 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.28.80]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpA27-0002Ct-LE; Mon, 22 Nov 2021 14:10:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=BspgaZxnOgrU3vh6SLY1gDKnKCBzF3koiTRcXVyOYTg=; b=pOBeRce8T1tM3Vz1lHbiQ0gnj5
	DeMVzB5HOuRidfk5Iuv1CSRM95ktmis/NZJ6J18Y/fTeosyqnHN5lOAbEWKpV1kLNX3qTQYiB6Mno
	WIKZbxxKqg5a32a2iH0zSGssTF+RjuHpcCuW/s/nDh0pfXO+NBp3sUriqX+iI8gLJASE=;
Message-ID: <407a8f05-f16c-26bb-9ba1-044f62e3c0a0@xen.org>
Date: Mon, 22 Nov 2021 14:10:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
 <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
 <fa778d46-0a4b-254c-0cde-d3df4e53ec4a@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <fa778d46-0a4b-254c-0cde-d3df4e53ec4a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 22/11/2021 12:48, Juergen Gross wrote:
> On 22.11.21 12:42, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 14/09/2021 13:35, Juergen Gross wrote:
>>> Xenstore is referencing domains by their domid, but reuse of a domid
>>> can lead to the situation that Xenstore can't tell whether a domain
>>> with that domid has been deleted and created again without Xenstore
>>> noticing the domain is a new one now.
>>>
>>> Add a global domain creation unique id which is updated when creating
>>> a new domain, and store that value in struct domain of the new domain.
>>> The global unique id is initialized with the system time and updates
>>> are done via the xorshift algorithm which is used for pseudo random
>>> number generation, too (see https://en.wikipedia.org/wiki/Xorshift).
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> ---
>>>   xen/common/domain.c     | 16 ++++++++++++++++
>>>   xen/include/xen/sched.h |  3 +++
>>>   2 files changed, 19 insertions(+)
>>>
>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>>> index 6ee5d033b0..755349b93f 100644
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -84,6 +84,9 @@ vcpu_info_t dummy_vcpu_info;
>>>   bool __read_mostly vmtrace_available;
>>> +/* Unique domain identifier, protected by domctl lock. */
>>> +static uint64_t unique_id;
>>> +
>>>   static void __domain_finalise_shutdown(struct domain *d)
>>>   {
>>>       struct vcpu *v;
>>> @@ -473,6 +476,18 @@ static void _domain_destroy(struct domain *d)
>>>       free_domain_struct(d);
>>>   }
>>> +static uint64_t get_unique_id(void)
>>
>> The implementation is assuming that domain cannot be created 
>> concurrently. The rest of domain_create() seems to be able to cope 
>> with concurrent call (even if domctl prevents this situation today).
>>
>> So I think we would want to make this call safe as well. One 
>> possibility would be to (ab)use the domlist_update_lock (I think the 
>> uniq ID is only necessary for real domains).
> 
> In case this is thought to be needed, I'd rather use a cmpxchg operation
> for updating unique_id.
I would be OK with cmpxchg(). But I would like to avoid cmpxchg() loop 
if possible.

Reading the commit message (and cover letter) again, I understand that 
you want a unique ID but it is not clear to me why this needs to be 
pseudo-randomly generated. IOW, given the expected use, can you clarify 
what would be the concern to use an atomic_inc_return() instead of xorshift?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:18:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228897.396125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpA99-0002Yh-7d; Mon, 22 Nov 2021 14:18:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228897.396125; Mon, 22 Nov 2021 14:18:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpA99-0002Ya-4B; Mon, 22 Nov 2021 14:18:15 +0000
Received: by outflank-mailman (input) for mailman id 228897;
 Mon, 22 Nov 2021 14:18:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Zq3Z=QJ=dornerworks.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1mpA97-0002YT-GF
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:18:13 +0000
Received: from USG02-CY1-obe.outbound.protection.office365.us
 (mail-cy1usg02on0608.outbound.protection.office365.us
 [2001:489a:2202:d::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 032bc74d-4b9f-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 15:18:10 +0100 (CET)
Received: from BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:40b::16)
 by BN3P110MB0324.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:409::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.17; Mon, 22 Nov
 2021 14:18:04 +0000
Received: from BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM
 ([fe80::ac43:aa11:ae5e:da54]) by BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM
 ([fe80::ac43:aa11:ae5e:da54%6]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 14:18:04 +0000
Received: from ubuntu.localdomain (199.249.2.50) by
 PH2P110CA0004.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:127::17) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.22 via Frontend Transport; Mon, 22 Nov 2021 14:18:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 032bc74d-4b9f-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector5401; d=microsoft.com; cv=none;
 b=Tff+k1E8Qzt12yzg+o5Ty+QQPxwcXf5aBje8giDUwZZ5fY6YQd4SvRglkBlr3AJEFGipTpoJSqRcbn6h8U6R952za+ltSd0cC2TlIQoE88oz23HdosYROMJJ0hFAue+VdF4/BxDK4406FG/O65GI1xlJ18YHJryE20635h5S83ow69IulMXUOdXrxYnkfVI4LImeWzdOEERJTlRaeVF91MyA+4LlD6GuLLlQYEF/E8S9yTMR3Un2CajreJg6zo7GFMHNfu/OUim1pIQzlvDJ9fVRbiXC1UB14C1dA50aA+ai0s5XoSpvagEHu7txpfa/O7qJCC2Uo7Pwmx9bsB22Xg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector5401;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W+wwxSaM/p67+xzHXK1NFB4qBtEeoJZo0Pj3cb0rZgI=;
 b=TSDDeAZRSA2qGh7/XPaIBd95cdqVbhjuNuzMKdOdGqVNYLu/QhJGo0xMAHYwK+oFBJXTGsklsXxPCvlcSXy/nkLT6t+DZM6kI/8hlmtJKjkNvs+ZzwWCCqfSRlwHIF+/OTUcAWt/IONmBq1CR4Ih8aYQaZmsTHjs2nnhMcQRbvl2WFWww4VPsXcmaN05tmNJ+VhFhFZRXb289FEtewdnC1GwM78LNeKPbbNWIeT1beN6Qp4HJHl3hmp8n0+9QeGfVSXJGbPl4M3BwfuWzsk0MeD30I0qp7RVzDW3D7cOp9alOwLUZCR3pnAq21chBfqBgDVcT+5LeZWroI9xKKS9VA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=dornerworks.com; dmarc=pass action=none
 header.from=dornerworks.com; dkim=pass header.d=dornerworks.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dornerworks.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W+wwxSaM/p67+xzHXK1NFB4qBtEeoJZo0Pj3cb0rZgI=;
 b=fSA3uriLV4u6lc0GqlBTamCJaSS3blVStr8Omep07RAFy9TseCWa/jAOkmffmWY0w2SNrIFitqSaqVrL+ufl1vE1na65R/nV4KPXRebqf0BYe/TYH8EfovauN2xOB2VHTyV/pm9BpBFf/K0YEpe+I9tatmWsCSIMLVvzr+gZvKKkHV1Wm/ekPOEZX2bY7Yd+gH6r85fibp0qhhXyHSsfp2SvVApPYvS+GEeWO/pdB+rCaGFh1ZARE3U9E4cWNtkjDYbapB1m0/YV56zZ6HlgDNzdFp2NxrEr6fELEB/wKp6R+L0F86rJoFksuXn/VvExJ+R35yb/PXjb3ZMry3X/1A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=dornerworks.com;
From: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
To: xen-devel@lists.xenproject.org
Cc: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH] MAINTAINERS: remove Josh from ARINC 653 maintainers
Date: Mon, 22 Nov 2021 09:17:42 -0500
Message-Id: <20211122141742.3075-1-stewart.hildebrand@dornerworks.com>
X-Mailer: git-send-email 2.34.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: PH2P110CA0004.NAMP110.PROD.OUTLOOK.COM
 (2001:489a:200:127::17) To BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM
 (2001:489a:200:40b::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 39db825f-7ef6-4967-fb0f-08d9adc2e5a0
X-MS-TrafficTypeDiagnostic: BN3P110MB0324:
X-Microsoft-Antispam-PRVS:
	<BN3P110MB032464E5A87864B6577F44DA8C9F9@BN3P110MB0324.NAMP110.PROD.OUTLOOK.COM>
X-MS-Oob-TLC-OOBClassifiers: OLM:454;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	pJ6By+yHnsm6fukni5uio5gWQzcBSNgMBEmMmucqYJiod1Zh/5qR/NknagDzZitbmYJq2c6B47NNbcufamYs71m+qexiC3Cjf1xJU1kFaQN40DjiJ4CXGNdlxMoRc/we2h2YdEU1J/qxCTKpraPVOpiEebhwdfvoVn3buaTJBC9SMxf1QqfBxAsAMdkJSxp1OlFC8t4X13bnAkhpb+7zE4CxDnSkvW+zfq4gO9/+lKeMhLiAxzmBD2i1d07AuFJiqgj9jm01u9msTItLsjxY6kv4QZZ5yuiyvkwIAabWrrKD8CG988SBvpNsrZBhDAmckAKKlAq6Igkx7IwPDcTzhO4qcu4q+raVSIMwRTgDBmcQrHQ1x9q3LcjNMwmXzYCVI7A2DI7pFoSs6f8FBeHygSTN+W5PxI8oJhc49yENhWYyzdUK/TP7iFaH6eVi+Lj7hNEuYyRxWIVGTasBXhTX/mOPJffRR5O33ggc5RRrnzd/CHPMraTI7qGd9glSR0LjFci+pwc66ovOFNz1TWaVfCUCsk6lRZ+0bik9c7uohhPVRTZYMHH/CPc52uOyMS8NjiBbGNdq++fvxEWc7i1BhsW6IWj4EBMhz2pqZTGLlhLHCLd0Tb5W9mhgiXko2gp9
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(4636009)(366004)(346002)(39830400003)(396003)(136003)(376002)(4744005)(66946007)(2616005)(508600001)(956004)(66476007)(36756003)(5660300002)(6486002)(6916009)(316002)(66556008)(1076003)(54906003)(86362001)(52116002)(6512007)(38100700002)(83380400001)(38350700002)(8936002)(6666004)(186003)(2906002)(44832011)(26005)(6506007)(4326008)(8676002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	BXKV0KyLI5weT6JMiR+4C2B4RWagfw4VVYJYR03z872gOl+lvPSXg5T14UK53+P6wWZyTSNp3YJlV67gUSp6TZ6lr3FAOIJIiTxpF44aLgO9HmxL5G3AwrCi/gfrpnmv4pBAsnG5hr46dEfZP69bv1VjX5MuCtmfLSDuBzidlst9SGRUZWeBqk7DgYFZiqpdT0uX6e/wxoeaW/E5UpeJjWr+JfI9sirzSK73Yln78YO/B0aLKxFcgmOvwk9NPhYTQuK5/FX97JuoKHDQFIkBQ2WnBla1RJBuFlCOHJkBYyZnx6IphMWq1vF95eKGNP7QBCJxseOEWcztN/Vtif+kaGK1LHaoi89S+eC/g5lEJJX8TgmaFthsvsnk5hBYPkYPUS5iEX0DJURuQKKdLEd57FnatNsg1gsBb2aki87PevM78AyEms0hGQePtfpYI9GaWve2Z8EyULvFM7f7EEj2GaaZSWxBub/1JjCZWPN3VTknGk9aX4E2U7TolRvemNEQuJTn4J0dM2ixOw5ZdGTPmupornh3yYwvmWayfT+VhJLmhkrRWBELwK6fI/x7huV0B4iCrlSsqI8CSWNchxnKPzrTBteQ5rrBSVdIdpefCBDxpJtSbNr7KP+/0LWvIPB0qB8a5uYd6oF/LExFv3WhW9KyYOBeOm/wvBTsY3E0fA1jyUtj3FcObCYZx/UMk5iopiHO+NbrMt+jBU3CFn329w==
X-OriginatorOrg: dornerworks.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 39db825f-7ef6-4967-fb0f-08d9adc2e5a0
X-MS-Exchange-CrossTenant-AuthSource: BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 14:18:04.1787
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 097cf9aa-db69-4b12-aeab-ab5f513dbff9
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3P110MB0324

Josh works at another company now

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
---
 MAINTAINERS | 1 -
 1 file changed, 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 4956db1011..fc8b2c1169 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -221,7 +221,6 @@ F:	xen/include/xen/argo.h
 F:	xen/common/argo.c
 
 ARINC653 SCHEDULER
-M:	Josh Whitehead <josh.whitehead@dornerworks.com>
 M:	Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
 S:	Supported
 L:	xen-devel@dornerworks.com
-- 
2.34.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:19:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:19:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228901.396136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAAi-00037Q-Kk; Mon, 22 Nov 2021 14:19:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228901.396136; Mon, 22 Nov 2021 14:19:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAAi-00037J-GD; Mon, 22 Nov 2021 14:19:52 +0000
Received: by outflank-mailman (input) for mailman id 228901;
 Mon, 22 Nov 2021 14:19:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r3RN=QJ=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mpAAh-00036z-B6
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:19:51 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20602.outbound.protection.outlook.com
 [2a01:111:f400:7e8a::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3fb09997-4b9f-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 15:19:49 +0100 (CET)
Received: from BN6PR12CA0047.namprd12.prod.outlook.com (2603:10b6:405:70::33)
 by SA2PR02MB7577.namprd02.prod.outlook.com (2603:10b6:806:134::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 14:19:46 +0000
Received: from BN1NAM02FT015.eop-nam02.prod.protection.outlook.com
 (2603:10b6:405:70:cafe::40) by BN6PR12CA0047.outlook.office365.com
 (2603:10b6:405:70::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24 via Frontend
 Transport; Mon, 22 Nov 2021 14:19:45 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 BN1NAM02FT015.mail.protection.outlook.com (10.13.2.132) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 14:19:43 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 22 Nov 2021 14:19:42 +0000
Received: from smtp.xilinx.com (172.21.105.198) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 22 Nov 2021 14:19:42 +0000
Received: from [10.71.118.182] (port=49762)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mpAAX-0005Kk-Lz; Mon, 22 Nov 2021 14:19:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fb09997-4b9f-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K2qq7Q1t4oRLBHngVk6DnLXgF5bqtDAV8JiTrM/K4KkAxBotJSbvCE2f38DLutX9+EPkvtGYT+AWI1ED4yHpH4M3cjlQ9ikeXLNBLTOxL5/swESj77Go4fcJcUiWkKM6PcreZbN6oY8ndCv159vNGDkQKXmKqqot/y83GhnRdMVAlw0CDAPSisP6DKwf7Q6LXGIjK12dbbFQoS/7FkFtdtAnkA0tmbLO1Tljv0SScG6ZWsMop7BT1I2XKZw0dadwnmIKU9bGpHzdj6OFGK/qAMS74b90glg3LsL9oRLiC+jkEUOxOByyvtGqxOgV3edoXP9K5xnE7BEaaZTuYY/k5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bYL2Dlt4TbBTnT/juakRIf0jyz3Yh+XInVEk9Yj7yog=;
 b=aILtdGwH7KZ6MG3pq3qvgxvXc/GnRcY0WTXAA0S2uM6/zTizNnkgL79QbMwSytXAsMIdD+fx2AfuhTEnJE4lJVAy65GW3b5e/dtVDnfDodKC4MFvj3ZevYWl7qeqXgCBwNLZdd+onTnSnHA5CQZqjksTdaH/IBpb3NxFCQC3lrfun901TMpkcOXp1uTN+CLGwEo5xoW32ZxKmZ8gxz6/WarZEmIAu7cNTNw301XUiivCFxwkcunN23xTKAXKIkTyTMnnnlS5+MXmOguNTgyLcpYqvxZJ5KRHHQhbkB1B2WnquoGRR8OEOv8SZ7toEoK8rMmQRgh8Ea18oA7LwrcruA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=xen.org smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bYL2Dlt4TbBTnT/juakRIf0jyz3Yh+XInVEk9Yj7yog=;
 b=R4bWHnwl8JpUp/jRAqqkKI1ZRD0OLMwCO/nK/STetmcM4uedaortDOT2zi3GiQKd42In0KJyuOWh6yanPO7HVNmOQ8TuG0flDTruPJFk2kYwltWrJa7wuTRjnFW/UCiGR/WJfHispf9Ks5c2fCuK3bSttXani/a3G5ACQHikQbs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
Message-ID: <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com>
Date: Mon, 22 Nov 2021 14:19:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
To: Julien Grall <julien@xen.org>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>, <xen-devel@lists.xenproject.org>,
	<wei.chen@arm.com>, <stefano.stabellini@xilinx.com>,
	<sstabellini@kernel.org>, <jbeulich@suse.com>
CC: <Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<rahul.singh@arm.com>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
 <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8101f58c-a123-483a-6ee9-08d9adc3216d
X-MS-TrafficTypeDiagnostic: SA2PR02MB7577:
X-Microsoft-Antispam-PRVS:
	<SA2PR02MB75776CB9D68B8F6F9E61FA1EB29F9@SA2PR02MB7577.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/NvxwKiby+DwmgaFNQFwyRoBDg+9uua4hJ+itqidG4XJyS6IXKLZhFNsiX7iicR1h+yOASmZiabRJh3VMz1mvlNCm4ttHg6vDHTEj3VFj5TLciMyT5DjwByhsx3cIn0Ui94FjzlqMDdhM8LMzR+FLvTgRk/LbpwBP2wYkY6U9E9FZdWMX9aNOQ8fwdS3rQC68tb7fm0v1lIO01tSZQ1amby5omMu2OJX5+TDzxkxpqhxvm/85J8q7LyAiFJJQAgJDDAvfSrTcmheUCO91FJGslcrYHtHdUX4u9R2S9IuUSucyFvWn1VgHjPHtYi3+tTzv9xgnN52hFQ5tqpkGJJVrg9JUPrsyd2StYPktZZ4Fj731MWM/AbPJNIiy+mRISd4X/c2rS4sjli083suEPrw8YVSQvex2fenFAljwnlD2EqgvUZKzH6xyMI0RcF7XaTeRQu4ej8ebC1vntSwksUsmcPFgpwNY7STFfMJNgXadGp/h17hyf7hbS9GtZtuK1wwW2HgdbU5NTffsq+PWm7+OOemqvscun1xmo6D8ONjezI6kGJsrBmIEVqS+/JfHQFNRXM35Yv87HV+df0l9igu1aIFSubIGuAOY69KSnV3BfwB4+j3rLZ/qy1pDWhNpAD86bIo0QCUG9zyerEDWk62z+0iDTfJ9e+3SfhOIJm/KVLKfRkk+hcatLF4T/T3dg+N6WoDpUQyHgjeJK0qdzNCCvtVybbiPLjbNCRRYSB6cHchYjCy1kSEOqrWVqOuSrXsFEqLGVBrZLRj/71gxQeOzmmCdzQiUgjhLc1rK7nvA2ubITCM2Iu/TZANUVokJvsULcIbmO7iLatpzLE83m48XR9Of6mzdrgw8ErfIuS/d+3S4NX8rg417DQB7Hv6BuNTdn0x3P5SqAJW6KmD5ajlMQ==
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:ErrorRetry;CAT:NONE;SFS:(36840700001)(46966006)(83380400001)(47076005)(4326008)(2906002)(31696002)(9786002)(966005)(356005)(110136005)(316002)(81166007)(8676002)(2616005)(82310400003)(26005)(508600001)(54906003)(336012)(36860700001)(5660300002)(186003)(53546011)(31686004)(70206006)(8936002)(426003)(36756003)(70586007)(50156003)(2101003)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 14:19:43.9004
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8101f58c-a123-483a-6ee9-08d9adc3216d
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1NAM02FT015.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7577

Hi Julien/Stefano/Wei/Jan,

Many thanks for your review.

As some of the comments were inter-related, I have consolidated my 
response to all the comments below.

On 19/11/2021 17:26, Julien Grall wrote:
> Hi Ayan,
> 
> On 19/11/2021 16:52, Ayan Kumar Halder wrote:
>> At present, post indexing instructions are not emulated by Xen.
> 
> Can you explain in the commit message why this is a problem?

Yes, I will update the message as below :-
Armv8 hardware does not provide the correct syndrome for decoding post 
indexing ldr/str instructions. Thus any post indexing ldr/str 
instruction at EL1 results in a data abort with ISV=0. As a result, Xen 
needs to decode the instruction.

Thus, DomU will be able to read/write to ioreg space with post indexing 
instructions for 32 bit.

> 
>> When Xen gets the exception, EL2_ESR.ISV bit not set. Thus as a
>> result, data abort is triggered.
>>
>> Added the logic to decode ldr/str post indexing instructions.
>> With this, Xen can decode instructions like these:-
>> ldr w2, [x1], #4
>> Thus, domU can read ioreg with post indexing instructions.
> Hmmm.... Don't you also need to update the register x1 after the 
> instruction was emulated?

Yes, this is a mistake. X1 needs to be incremented by 4 after W2 is written.
> 
>>
>> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
>> ---
>> Note to reviewer:-
>> This patch is based on an issue discussed in
>> https://lists.xenproject.org/archives/html/xen-devel/2021-11/msg00969.html 
>>
>> "Xen/ARM - Query about a data abort seen while reading GICD registers"
>>
>>
>>   xen/arch/arm/decode.c | 77 +++++++++++++++++++++++++++++++++++++++++++
>>   xen/arch/arm/io.c     | 14 ++++++--
>>   2 files changed, 88 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
>> index 792c2e92a7..7b60bedbc5 100644
>> --- a/xen/arch/arm/decode.c
>> +++ b/xen/arch/arm/decode.c
>> @@ -84,6 +84,80 @@ bad_thumb2:
>>       return 1;
>>   }
>> +static inline int32_t extract32(uint32_t value, int start, int length)
> 
> Any reason to have start and length signed?

Again a mistake. There is no reason to use signed types here or in the 
other places.
As Jan Beulich has pointed out, I should be using unsigned int as per 
the CODING_STYLE.
> 
>> +{
>> +    int32_t ret;
>> +
>> +    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
>> +        return -EINVAL;
>> +
>> +    ret = (value >> start) & (~0U >> (32 - length));
> 
> This would be easier to read if you use GENMASK().

I see that GENMASK returns a register mask. In my scenario, I wish to 
compare the offsets 10, 21, 24 and 27 to some fixed value.

So, instead of using GENMASK four times, I can try the following
instr & MASK_for_10_21_24_27 == VALID_for_10_21_24_27 (Wei Chen's 
suggestion)


Also for size, v and opc, I can defined another bitmask to compare with 
VALID_for_32bit_LDR | VALID_for_32bit_STR.

Wei Chen, You had suggested using vreg_regx_extract(). However, I see 
that it is used to extract the complete u64 register value. In this 
case, I wish to compare certain offsets within a 32 bit register to some 
expected values. So, vreg_regx_extract() might not be appropriate and we 
can use the method mentioned before.

> 
>> +
>> +    return ret;
>> +}
>> +
>> +static int decode_64bit_loadstore_postindexing(register_t pc, struct 
>> hsr_dabt *dabt)
>> +{
>> +    uint32_t instr;
>> +    int size;
>> +    int v;
>> +    int opc;
>> +    int rt;
>> +    int imm9;
> 
> Should all those variables need to be signed?

A mistake. I will change them to unsigned int.
> 
>> +
>> +    /* For details on decoding, refer to Armv8 Architecture reference 
>> manual
>> +     * Section - "Load/store register (immediate post-indexed)", Pg 318
> The page number varies between revision of the Armv8 spec. So can you 
> specify which version you used?

Ack. I will mention the version.
> 
>> +    */
> 
> The coding style for comment in Xen is:
> 
> /*
>   * Foo
>   * Bar
>   */
Ack
> 
>> +    if ( raw_copy_from_guest(&instr, (void * __user)pc, sizeof 
>> (instr)) )
>> +        return -EFAULT;
>> +
>> +    /* First, let's check for the fixed values */
>> +
>> +    /*  As per the "Encoding table for the Loads and Stores group", 
>> Pg 299
> 
> Same question here about the version.
Ack, I will mention the version.

> 
>> +     * op4 = 1 - Load/store register (immediate post-indexed)
>> +     */
> 
> Coding style.
Ack

> 
>> +    if ( extract32(instr, 10, 2) != 1 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    /* For the following, refer to "Load/store register (immediate 
>> post-indexed)"
>> +     * to get the fixed values at various bit positions.
>> +     */
>> +    if ( extract32(instr, 21, 1) != 0 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    if ( extract32(instr, 24, 2) != 0 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    if ( extract32(instr, 27, 3) != 7 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    size = extract32(instr, 30, 2);
>> +    v = extract32(instr, 26, 1);
>> +    opc = extract32(instr, 22, 1);

Stefano:- Thanks for catching my mistake. opc is 2 bits (bits 22, 23). I 
will fix this.

>> +
>> +    /* At the moment, we support STR(immediate) - 32 bit variant and
>> +     * LDR(immediate) - 32 bit variant only.
>> +     */
> 
> Coding style.
Ack

> 
>> +    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
>>
> 
> The coding style for this should be:
> 
> if ( !(( size == 2 ) && ( ... ) ... ) )
Ack

> 
>   +        goto bad_64bit_loadstore;
>> +
>> +    rt = extract32(instr, 0, 5);
>> +    imm9 = extract32(instr, 12, 9);
>> +
>> +    if ( imm9 < 0 )
>> +        update_dabt(dabt, rt, size, true);
>> +    else
>> +        update_dabt(dabt, rt, size, false);
> 
> This could be simplified with:
> 
> update_dabt(dabt, rt, size, imm9 < 0);
Ack

> 
>> +
>> +    dabt->valid = 1;
>> +
>> +
>> +    return 0;
>> +bad_64bit_loadstore:
>> +    gprintk(XENLOG_ERR, "unhandled 64bit instruction 0x%x\n", instr);
>> +    return 1;
>> +}
>> +
>>   static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>>   {
>>       uint16_t instr;
>> @@ -155,6 +229,9 @@ int decode_instruction(const struct cpu_user_regs 
>> *regs, struct hsr_dabt *dabt)
>>       if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
>>           return decode_thumb(regs->pc, dabt);
>> +    if ( is_64bit_domain(current->domain) )
> 
> You can still run 32-bit code in 64-bit domain. So I think you want to 
> check the SPSR mode.

Do you mean the following check :-
if ( (is_64bit_domain(current->domain) && (!(regs->spsr & PSR_MODE_BIT)) )

> 
>> +        return decode_64bit_loadstore_postindexing(regs->pc, dabt);
>> +
>>       /* TODO: Handle ARM instruction */
>>       gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
> 
> I think this comment should now be updated to "unhandled 32-bit ...".

Ack
> 
>> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
>> index 729287e37c..49e80358c0 100644
>> --- a/xen/arch/arm/io.c
>> +++ b/xen/arch/arm/io.c
>> @@ -106,14 +106,13 @@ enum io_state try_handle_mmio(struct 
>> cpu_user_regs *regs,
>>           .gpa = gpa,
>>           .dabt = dabt
>>       };
>> +    int rc;
>>       ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
>>       handler = find_mmio_handler(v->domain, info.gpa);
>>       if ( !handler )
>>       {
>> -        int rc;
>> -
>>           rc = try_fwd_ioserv(regs, v, &info);
>>           if ( rc == IO_HANDLED )
>>               return handle_ioserv(regs, v);
>> @@ -123,7 +122,16 @@ enum io_state try_handle_mmio(struct 
>> cpu_user_regs *regs,
>>       /* All the instructions used on emulated MMIO region should be 
>> valid */
>>       if ( !dabt.valid )
>> -        return IO_ABORT;
>> +    {
>> +        /*
>> +         * Post indexing ldr/str instructions are not emulated by 
>> Xen. So, the
>> +         * ISS is invalid. In such a scenario, we try to manually 
>> decode the
>> +         * instruction from the program counter.
> 
> I am afraid this is wrong. The problem here is the processor didn't 
> provide a valid syndrom for post-indexing ldr/str instructions. So in 
> order to support them, Xen must decode.

Ack
> 
>> +         */
>> +        rc = decode_instruction(regs, &info.dabt);
> 
> I actually expect this to also be useful when forwarding the I/O to 
> device-model. So I would move the decoding earlier in the code and the 
> check of dabt.valid earlier.

You mean I will move decode_instruction() before find_mmio_handler() ?

Stefano > It doesn't look like we are setting dabt->write anywhere.

Ayan > Yes, this is a miss. Depending on the opc, this should be 
upadeted accordingly in decode_64bit_loadstore_postindexing().

Stefano > Also, is info.gpa in try_handle_mmio already updated in the 
pre-index
case? If not, do we need to apply the offset manually here?

Ayan > Sorry, I did not understand you. This patch is only related to 
the post indexing ldr/str issue. Why do we need to check for pre-indexing ?

Stefano > In the post-index case, we need to update the base address in 
the Rn
register?

Ayan > Yes this is a mistake, As Julien pointed out before, the register 
x1 ie Rn needs to the incremented.

Jan > In addition to Julien's comment regarding the function parameters 
- why
is the return type int32_t and not uint32_t? Plus as per ./CODING_STYLE
it really shouldn't be a fixed width type anyway, but e.g. unsigned int.

Ayan > Yes, this is a mistake. I will update int32_t to unsigned int in 
all the places.
However for extract32(), I don't think we need this function. Rather 
Wei's suggestion (ie instr & MASK_for_10_21_24_27 == 
VALID_for_10_21_24_27 ) makes the code simpler and shorter.

- Ayan

> 
>> +        if ( rc )
>> +            return IO_ABORT;
>> +    }
>>       /*
>>        * Erratum 766422: Thumb store translation fault to Hypervisor may
>>
> 
> Cheers,
> 


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:21:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:21:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228907.396146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpACL-0004WX-2s; Mon, 22 Nov 2021 14:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228907.396146; Mon, 22 Nov 2021 14:21:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpACK-0004WQ-W8; Mon, 22 Nov 2021 14:21:32 +0000
Received: by outflank-mailman (input) for mailman id 228907;
 Mon, 22 Nov 2021 14:21:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpACI-0004WK-S2
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:21:31 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b09d038-4b9f-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 15:21:29 +0100 (CET)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AMEE6e3014572;
 Mon, 22 Nov 2021 14:21:25 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2111.outbound.protection.outlook.com [104.47.18.111])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cgcsr01xp-4
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 14:21:24 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com (2603:10a6:20b:13c::18)
 by AM7PR03MB6628.eurprd03.prod.outlook.com (2603:10a6:20b:1bf::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 14:21:21 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445]) by AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445%3]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 14:21:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b09d038-4b9f-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mapywL4+N23b7V2hssKXcSKxUtPc7ozIjMP1idQ67i8duCa7J7dmD4o23ukIH+yj9Chm0PtoQiYH89Fjym+iyKxwcucpjKR8zVH10DlvNuiZQKx/Ytbns4ZI5cKaYb22nNYPnHAY6ToNXLvhuh3PkyiS7f1NZipsh11WVlV0MAAiA9wI/NT84KbzpbppGwzm4WViiRCOzhIwpaciDocH9glvopTQ1gvSObJ1AlUBNopoThv+5oFItpuCcIDKE2bEIuqrrpUdDEZSBUj5ZhpYuzAAuczdELyGZ0S1+WqrRhlxA/MfzbWEjL2CIb+Sa+pvk02NREVJNN0RY8cQhea7yg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+2zMdDTQEv0Kb5kQfc4rZktekv3DCmMIAh+w8ywkJmM=;
 b=dXhX3reD3KmyWtjLjNJFSjJIbA35V0wElhPqzg5ASkoEnxrz1vIK/6HwbwYxZOkBosIOhFHnZJRbalfzN9YkYNDyKToi1EV4MqXftLwl+Uarh/UGTsthu6TmbOKUL6WnFG83xn+8GDWIdjlMTd9WS7vdF7nazRjky5U0fZq7t+PG5eNgBtyDzFuCndUf/iJfu35nqnyPsSztzPSh2cVD0vYAVp2JKcwHRTSXWDcV7ZKbu/9x7bU8hbUdFl4nXZnzOUnbin6ayDndmzVYMM2nBQJcHmwEcadZQfg4cmdETsRELcwAFQxLLq/iCIl3SeZwgFjHkBTAvEPTNqajcrqX7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+2zMdDTQEv0Kb5kQfc4rZktekv3DCmMIAh+w8ywkJmM=;
 b=njgdbkEv0FpffXPc+xE6TJppt2IRsiMyB6N8jELNokJRC97z6JswKdB0YkutYt/3GBgakyNQcgGd2J05z85/bxivzT8dXfHg/l/SKowpMlVrGwmd8X8Q8dMztsRpH8NIQqnqrn/JMDbcgsCkP75nroJ9t1GxB8cPbtNrbf4SdDkNghBB/3vbUpgEgY5A7iDlkFOjntaN5DFqTgJG9hojIYC4aSzp+nVuxwHV56TtdBHJ1rokelA++z9sxyQhFDyO6vH+3rkwTGdlmd68GwnYx8Nz0Vyz6K7gWFU/yO65jFVDJmEoJ3E/eVsGUwI4qhfMdp1w/kSgciik9GrlDvSQgw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        "julien@xen.org" <julien@xen.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIAgAAFxACAAAoGAIAAAXMAgAABgYCAAAVtAIAAAX+AgAAB1wCAAVryAIAAB06AgAAEPgCAAAKhAIAAApkAgATD+4A=
Date: Mon, 22 Nov 2021 14:21:20 +0000
Message-ID: <6be4e6c0-5b54-606e-1278-e97e143e23af@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <e77ebf8d-0be2-7b4c-4169-db239bfa8e80@epam.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
 <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
 <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
 <5baf1199-e12d-cc41-4520-e32ed29a0436@epam.com>
 <fbc8a807-ea73-760f-8c75-df0930a5139e@suse.com>
 <4e74d5e1-f54e-3888-ada2-a38545571744@epam.com>
In-Reply-To: <4e74d5e1-f54e-3888-ada2-a38545571744@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 38114521-58ac-47a7-c23e-08d9adc35b20
x-ms-traffictypediagnostic: AM7PR03MB6628:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM7PR03MB66286A9B175167A6CECF780EE79F9@AM7PR03MB6628.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 yQS4SX7bj7vDTuaukcu8chFBE/ijmLAAHEF2pNeXHYmPVNrAyTngO31gqVU8v+vfNi5x4sGue6qjotNAZAihf3mwLOPp0pYJSxdbERAMxp/yq21+lVB7M2Rz75HwOUswE29nDKhO7+lId5Hn5IDtHpHln/VbZNm6TtPTB/iNQw/Q4+JjajRQReIKvEA+D+svCfcIQvAZ2xJeznYhEFr20NlduyHpExNTIfyOfQpIGOluOeeTMszgcCasoBtQbF+knpTQ+93xV3VpbdiMD7IWwEeaw4Td8rDvTyGtcBpgR52SAb40Pm3IDojwXBJZBXsLHAcfnDq1ohI3xGwuDa2X74X/Va+fWiXE2mVtfM8aAzyzrOEafK1t7ZN9BwTFidwOne3QuYqFcfyLPJBvPl0mmdAuX1+MntXogW/90zaPz/usDOj0FsUG1mY2hrgj2o62uFFtB9uDl6gWQLphOtuqs0tfwqpyX1jh6CKqwJ0iDViC+9u4fd8X5pXY0Fm7LfFjKK3wrrxNktDizD0rYBci8r7ImVy1l/h9Yd2vqK5CSblxBzi25afcocGw7mJG+Bnr98e1/8DtXY3b0JFFUpnl8ZydXO6sJJF5wP9/21Z8nIbXSsDsLMT71qqbk1uFSqlBFwsK/m1SX9eXiZpLjrgG/nvW0uQl3/jElATlJ8Hweb42+itX/Bf4SDxwXukKky0i1YUYSaqOBaJV5GpkNUFjobb4NT528QXOOkgdS/g1KRdgyLc16PL/RE65GHHoLB5x
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR03MB6325.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66946007)(6506007)(8676002)(71200400001)(2616005)(2906002)(76116006)(186003)(6512007)(31696002)(6486002)(110136005)(54906003)(316002)(26005)(64756008)(107886003)(38100700002)(66446008)(38070700005)(66556008)(8936002)(86362001)(53546011)(66476007)(4326008)(83380400001)(5660300002)(7416002)(31686004)(508600001)(122000001)(36756003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?VUMweTUra0l1WlVydkgzUTd3QjYrMUlVa1NGMkc4UWhhektFbFRuMjFVb2gv?=
 =?utf-8?B?Nklzb0xvRzJQYStSQllTTktDWmZYYTJmWFQraklMbGVtYkNkYVQ1eC8raDhH?=
 =?utf-8?B?STRGWitqcG5acldFVHpoWWhOZlppbWcvc1RpZVlWb1lTaWk2L3ZUVzBjMnR0?=
 =?utf-8?B?RmMzVmoyTlBWTXZ2VFdjdm94QjhWeHVtd3JuMTFaODV0bkpNTWNmb3ZTVWM0?=
 =?utf-8?B?N0pNSDZhMkRoRnlMNTBuMzlnSlI0S2J6ZUI2U0tyc0gwbkQ3dmV2RHMvQkRo?=
 =?utf-8?B?RVprNUlaU3pSNHZEV2w0TmlWUHEwamtqRnpOaWRiZU1YeW1SMlY2dGozYlhv?=
 =?utf-8?B?YUlxNkI0dUVRbkY4TnM4WmNCRGlZTnBMRS91MFpSYUtTTUZONllDV2lKOG9J?=
 =?utf-8?B?VjJJeHZheGFrdG9lQTR3d2VVMUR3dGFEeXUyN0NTSFE1SkVGTXRldmI0WGtI?=
 =?utf-8?B?VFNvUEVISlBRU0JzdVlQWm5OYVZtQUdLbWwxMnFtNUpwbTkvczU2UjNxdjRu?=
 =?utf-8?B?U1FOMGczbDF4b09CcG9jUFFVY1BDY2tpQXY1cDk4UU1LcVNuejdwMzlxVlFD?=
 =?utf-8?B?ZVFiK2p1QmFvTldvbUcraDNOQUdUVVlSV1ZZYldNb2lObkhjRm84S3lEOWxU?=
 =?utf-8?B?MnJoMWNMdm9TdVpQQVpZRm1qOTRQYlc4WC9jY001a0RlSStCOHVHei9ta3Zt?=
 =?utf-8?B?emYrV1ZpNERxVlRvMGZyOCtMYnRUZmR5NXZIdHVoR0wzSXNXdUd6OXZML2Fa?=
 =?utf-8?B?dG1rU1NFZ01nUVZnVzBBUlF4MWlQbkNRc0VTd2x4RW5IYjcreU1udUJVa2hX?=
 =?utf-8?B?b3YyWDNma3FVSmxCZ2NyT1JyaUd2aXRUWWVINEM2dXViRW5aQWNYV3dwRk9F?=
 =?utf-8?B?ZVJLeExZakRnUmR3YXJvWmNJOXp6a3JHc1hmb085YkFiUCtjb3hNTklWdFA0?=
 =?utf-8?B?dTRYVjMwdTl2eHZjUmM0eGttUHhzYVFWNmNHdnZnSUVYaERqZlBEbjVzMlFh?=
 =?utf-8?B?dVVpY1p6N2JKRkNDY0t2Sm0zWlNsaUI2NjYrMllGQUxQMWRBbHQ1S0lBTy8w?=
 =?utf-8?B?UC9JMjR5RHYxSW91MWFURHlYYzVkNEpRVTduN0QzTzZiNkJuMFMxdzJweDR5?=
 =?utf-8?B?eXR2N2lRUU1vVWtYRGJJL0FmVnlIWmtZSFpNazJQRTFSb2hTaEUrSWJsYWZE?=
 =?utf-8?B?amwzR3Vpa3BTNGpyL1F3R0pzamUrTXJCZ1N6RWlicnBHdTRyN2VwS01xZUli?=
 =?utf-8?B?dTBOSHZUNXE5czM3RHN3L2g4K2xxVmhUMTVIL3ozWDFGVVIvbUNLVExubnEz?=
 =?utf-8?B?aXhZVFlFaW1ScFpXeFdYSGRTb2NGWk9jbWZnOHFjWmlVdTBGY0RzZ3MrOFpy?=
 =?utf-8?B?YmZsTTR2UXpNeFdIR2dwTVNrczl0QTg4b3pjeldhempJNzJyMjZCK1RvZ0Z3?=
 =?utf-8?B?L3hnV2VJV2VMSVB5WmtyRnI5QURKb0FhS2QzRTNrOGs3RkZyVEd2TlQvVnU4?=
 =?utf-8?B?ajEwUHRxMzFmNkNPU1lDTy9xZFhwd2F2Q1pjNzlPL09TYjdOMmRxRjZ4STI3?=
 =?utf-8?B?QkVobkFFTGYvM1ZHNCt3RjJsbzhjSWxpZnVHWE5YREtZK0xJRThVRVdzZkdK?=
 =?utf-8?B?U3NjWWlQTUh0NUdiNERtQWJ5QU9PcUtsMEw1N0xwWHpuL3RaVWhZMmxWdWQ3?=
 =?utf-8?B?ZUdmSnFBbmd3dkFQZ3ZYMUR0VGVnRUptYU82ek1BV24vaHBwN1BSNnM2ZXd5?=
 =?utf-8?B?U2dIQjhEU1Vmdlozb1ZScnZVSGZsOHNmYURESjhYU0cyRld1UlpBbG5GUk9p?=
 =?utf-8?B?WXhFdjIvT2tKUUd0b3VCdy9JWS9hb2RyMG1od0dTaXlPL21PS2pGSHdFYmN3?=
 =?utf-8?B?ZFZwWHNKaXlVTVlIV2hkNGt3UEJ6R2VRVFE2RnNnREN1cUdNSTQvZjNodWto?=
 =?utf-8?B?UGR3WUEwU0dKTi96bHVqeDVzeHowcGZjV0R2UjJSMi9LTUJTSlpIc0Fsak8z?=
 =?utf-8?B?OEVRdGJDdFBIeFdBUmhzT2hwMFRORHpyT1NoYVIrdml1QjVabmRLU1JEV1lB?=
 =?utf-8?B?VzlCS2g3QXYzUXptTGRncTViazF1NHdUb0ZHb1B4RHlBSmJrT00zN1I2bnhx?=
 =?utf-8?B?MGdkNStKT2ljNWw3M3dldTV3Y1VyOWZreDc3c014bEFlV2JzR2RKR09UK21S?=
 =?utf-8?B?ekJSVnFuU1AzY3B1SFovbzR6VW9lQS9IMFpUSzVEOHd1NmdaZUJmNHFJR2RU?=
 =?utf-8?B?Y1RuVC8xVmJkT0ZrNnhiMXMxTkl5bjJJMXloZGlEWURXNVE3b1IrZWdiSDhC?=
 =?utf-8?B?YWwwTHpodm5PeExxZXNJKzA5SWhPM3VTejlpc1NRbmxRMkJiMHFzZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B20A3907DBD42643946968732783C602@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6325.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 38114521-58ac-47a7-c23e-08d9adc35b20
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 14:21:20.6895
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: lgBhJNIgj+6ZyxmlaPowjS77mXOa4/2rFsoTC+fMdmZrqcyHEqPSrgQ+UKimXaGK7UtephXrnxwtnsOGS3h4dYTPT6WE1CBRv6fxNBm+08mMptzNBpC+NWTqeKTQW3GI
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6628
X-Proofpoint-ORIG-GUID: cc2E5U_M_XzxTw_uahzmflv1G7ossJIN
X-Proofpoint-GUID: cc2E5U_M_XzxTw_uahzmflv1G7ossJIN
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_07,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0
 lowpriorityscore=0 clxscore=1015 malwarescore=0 phishscore=0 spamscore=0
 priorityscore=1501 mlxlogscore=999 bulkscore=0 impostorscore=0 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111220076

DQoNCk9uIDE5LjExLjIxIDE1OjM0LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4N
Cj4gT24gMTkuMTEuMjEgMTU6MjUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMTkuMTEuMjAy
MSAxNDoxNiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4gT24gMTkuMTEuMjEg
MTU6MDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+PiBPbiAxOS4xMS4yMDIxIDEzOjM0LCBPbGVr
c2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+IFBvc3NpYmxlIGxvY2tpbmcgYW5kIG90
aGVyIHdvcmsgbmVlZGVkOg0KPj4+Pj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQo+Pj4+Pg0KPj4+Pj4gMS4gcGNpZGV2c197bG9ja3x1bmxvY2t9IGlzIHRvbyBoZWF2
eSBhbmQgaXMgcGVyLWhvc3QNCj4+Pj4+IDIuIHBkZXYtPnZwY2ktPmxvY2sgY2Fubm90IGJlIHVz
ZWQgYXMgdnBjaSBpcyBmcmVlZCBieSB2cGNpX3JlbW92ZV9kZXZpY2UNCj4+Pj4+IDMuIFdlIG1h
eSB3YW50IGEgZGVkaWNhdGVkIHBlci1kb21haW4gcncgbG9jayB0byBiZSBpbXBsZW1lbnRlZDoN
Cj4+Pj4+DQo+Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4v
aW5jbHVkZS94ZW4vc2NoZWQuaA0KPj4+Pj4gaW5kZXggMjgxNDZlZTQwNGU2Li5lYmYwNzE4OTNi
MjEgMTAwNjQ0DQo+Pj4+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaA0KPj4+Pj4gKysr
IGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgNCj4+Pj4+IEBAIC00NDQsNiArNDQ0LDcgQEAgc3Ry
dWN0IGRvbWFpbg0KPj4+Pj4NCj4+Pj4+ICAgICDCoCNpZmRlZiBDT05GSUdfSEFTX1BDSQ0KPj4+
Pj4gICAgIMKgwqDCoMKgIHN0cnVjdCBsaXN0X2hlYWQgcGRldl9saXN0Ow0KPj4+Pj4gK8KgwqDC
oCByd2xvY2tfdCB2cGNpX3J3bG9jazsNCj4+Pj4+ICvCoMKgwqAgYm9vbCB2cGNpX3Rlcm1pbmF0
aW5nOyA8LSBhdG9taWM/DQo+Pj4+PiAgICAgwqAjZW5kaWYNCj4+Pj4+IHRoZW4gdnBjaV9yZW1v
dmVfZGV2aWNlIGlzIGEgd3JpdGVyIChjb2xkIHBhdGgpIGFuZCB2cGNpX3Byb2Nlc3NfcGVuZGlu
ZyBhbmQNCj4+Pj4+IHZwY2lfbW1pb197cmVhZHx3cml0ZX0gYXJlIHJlYWRlcnMgKGhvdCBwYXRo
KS4NCj4+Pj4gUmlnaHQgLSB5b3UgbmVlZCBzdWNoIGEgbG9jayBmb3Igb3RoZXIgcHVycG9zZXMg
YW55d2F5LCBhcyBwZXIgdGhlDQo+Pj4+IGRpc2N1c3Npb24gd2l0aCBKdWxpZW4uDQo+Pj4gV2hh
dCBhYm91dCBib29sIHZwY2lfdGVybWluYXRpbmc/IERvIHlvdSBzZWUgaXQgYXMgYW4gYXRvbWlj
IHR5cGUgb3IganVzdCBib29sPw0KPj4gSGF2aW5nIHNlZW4gb25seSAuLi4NCj4+DQo+Pj4+PiBk
b19waHlzZGV2X29wKFBIWVNERVZPUF9wY2lfZGV2aWNlX3JlbW92ZSkgd2lsbCBuZWVkIGh5cGVy
Y2FsbF9jcmVhdGVfY29udGludWF0aW9uDQo+Pj4+PiB0byBiZSBpbXBsZW1lbnRlZCwgc28gd2hl
biByZS1zdGFydCByZW1vdmFsIGlmIG5lZWQgYmU6DQo+Pj4+Pg0KPj4+Pj4gdnBjaV9yZW1vdmVf
ZGV2aWNlKCkNCj4+Pj4+IHsNCj4+Pj4+ICAgICDCoCBkLT52cGNpX3Rlcm1pbmF0aW5nID0gdHJ1
ZTsNCj4+IC4uLiB0aGlzIHVzZSBzbyBmYXIsIEkgY2FuJ3QgdGVsbCB5ZXQuIEJ1dCBhdCBhIGZp
cnN0IGdsYW5jZSBhIGJvb2xlYW4NCj4+IGxvb2tzIHRvIGJlIHdoYXQgeW91IG5lZWQuDQo+Pg0K
Pj4+Pj4gICAgIMKgIHJlbW92ZSB2UENJIHJlZ2lzdGVyIGhhbmRsZXJzIDwtIHRoaXMgd2lsbCBj
dXQgb2ZmIFBDSV9DT01NQU5EIGVtdWxhdGlvbiBhbW9uZyBvdGhlcnMNCj4+Pj4+ICAgICDCoCBp
ZiAoICF3cml0ZV90cnlsb2NrKGQtPnZwY2lfcndsb2NrKSApDQo+Pj4+PiAgICAgwqDCoMKgIHJl
dHVybiAtRVJFU1RBUlQ7DQo+Pj4+PiAgICAgwqAgeGZyZWUocGRldi0+dnBjaSk7DQo+Pj4+PiAg
ICAgwqAgcGRldi0+dnBjaSA9IE5VTEw7DQo+Pj4+PiB9DQo+Pj4+Pg0KPj4+Pj4gVGhlbiB0aGlz
IGQtPnZwY2lfcndsb2NrIGJlY29tZXMgYSBkZWRpY2F0ZWQgdnBjaSBwZXItZG9tYWluIGxvY2sg
Zm9yDQo+Pj4+PiBvdGhlciBvcGVyYXRpb25zIHdoaWNoIG1heSByZXF1aXJlIGl0LCBlLmcuIHZp
cnR1YWwgYnVzIHRvcG9sb2d5IGNhbg0KPj4+Pj4gdXNlIGl0IHdoZW4gYXNzaWduaW5nIHZTQkRG
IGV0Yy4NCj4+Pj4+DQo+Pj4+PiA0LiB2cGNpX3JlbW92ZV9kZXZpY2UgbmVlZHMgdG8gYmUgcmVt
b3ZlZCBmcm9tIHZwY2lfcHJvY2Vzc19wZW5kaW5nDQo+Pj4+PiBhbmQgZG8gbm90aGluZyBmb3Ig
RG9tMCBhbmQgY3Jhc2ggRG9tVSBvdGhlcndpc2U6DQo+Pj4+IFdoeSBpcyB0aGlzPyBJJ20gbm90
IG91dHJpZ2h0IG9wcG9zZWQsIGJ1dCBJIGRvbid0IGltbWVkaWF0ZWx5IHNlZSB3aHkNCj4+Pj4g
dHJ5aW5nIHRvIHJlbW92ZSB0aGUgcHJvYmxlbWF0aWMgZGV2aWNlIHdvdWxkbid0IGJlIGEgcmVh
c29uYWJsZSBjb3Vyc2UNCj4+Pj4gb2YgYWN0aW9uIGFueW1vcmUuIHZwY2lfcmVtb3ZlX2Rldmlj
ZSgpIG1heSBuZWVkIHRvIGJlY29tZSBtb3JlIGNhcmVmdWwNCj4+Pj4gYXMgdG8gbm90IGNyYXNo
aW5nLA0KPj4+IHZwY2lfcmVtb3ZlX2RldmljZSBkb2VzIG5vdCBjcmFzaCwgdnBjaV9wcm9jZXNz
X3BlbmRpbmcgZG9lcw0KPj4+PiAgICAgdGhvdWdoLg0KPj4+IEFzc3VtZSB3ZSBhcmUgaW4gYW4g
ZXJyb3Igc3RhdGUgaW4gdnBjaV9wcm9jZXNzX3BlbmRpbmcgKm9uIG9uZSBvZiB0aGUgdkNQVXMq
DQo+Pj4gYW5kIHdlIGNhbGwgdnBjaV9yZW1vdmVfZGV2aWNlLiB2cGNpX3JlbW92ZV9kZXZpY2Ug
dHJpZXMgdG8gYWNxdWlyZSB0aGUNCj4+PiBsb2NrIGFuZCBpdCBjYW4ndCBqdXN0IGJlY2F1c2Ug
dGhlcmUgYXJlIHNvbWUgb3RoZXIgdnBjaSBjb2RlIGlzIHJ1bm5pbmcgb24gb3RoZXIgdkNQVS4N
Cj4+PiBUaGVuIHdoYXQgZG8gd2UgZG8gaGVyZT8gV2UgYXJlIGluIFNvZnRJUlEgY29udGV4dCBu
b3cgYW5kIHdlIGNhbid0IHNwaW4NCj4+PiB0cnlpbmcgdG8gYWNxdWlyZSBkLT52cGNpX3J3bG9j
ayBmb3JldmVyLiBOZWl0aGVyIHdlIGNhbiBibGluZGx5IGZyZWUgdnBjaQ0KPj4+IHN0cnVjdHVy
ZSBiZWNhdXNlIGl0IGlzIHNlZW4gYnkgYWxsIHZDUFVzIGFuZCBtYXkgY3Jhc2ggdGhlbS4NCj4+
Pg0KPj4+IElmIHZwY2lfcmVtb3ZlX2RldmljZSBpcyBpbiBoeXBlcmNhbGwgY29udGV4dCBpdCBq
dXN0IHJldHVybnMgLUVSRVNUQVJUIGFuZA0KPj4+IGh5cGVyY2FsbCBjb250aW51YXRpb24gaGVs
cHMgaGVyZS4gQnV0IG5vdCBpbiBTb2Z0SVJRIGNvbnRleHQuDQo+PiBNYXliZSB0aGVuIHlvdSB3
YW50IHRvIGludm9rZSB0aGlzIGNsZWFudXAgZnJvbSBSQ1UgY29udGV4dCAod2hldGhlcg0KPj4g
dnBjaV9yZW1vdmVfZGV2aWNlKCkgaXRzZWxmIG9yIGEgc3VpdGFibGUgY2xvbmUgdGhlcmUgb2Yg
aXMgVEJEKT8gKEkNCj4+IHdpbGwgYWRtaXQgdGhvdWdoIHRoYXQgSSBkaWRuJ3QgY2hlY2sgd2hl
dGhlciB0aGF0IHdvdWxkIHNhdGlzZnkgYWxsDQo+PiBjb25zdHJhaW50cy4pDQo+Pg0KPj4gVGhl
biBhZ2FpbiBpdCBhbHNvIGhhc24ndCBiZWNvbWUgY2xlYXIgdG8gbWUgd2h5IHlvdSB1c2Ugd3Jp
dGVfdHJ5bG9jaygpDQo+PiB0aGVyZS4gVGhlIGxvY2sgY29udGVudGlvbiB5b3UgZGVzY3JpYmUg
ZG9lc24ndCwgb24gdGhlIHN1cmZhY2UsIGxvb2sNCj4+IGFueSBkaWZmZXJlbnQgZnJvbSBzaXR1
YXRpb25zIGVsc2V3aGVyZS4NCj4gSSB1c2Ugd3JpdGVfdHJ5bG9jayBpbiB2cGNpX3JlbW92ZV9k
ZXZpY2UgYmVjYXVzZSBpZiB3ZSBjYW4ndA0KPiBhY3F1aXJlIHRoZSBsb2NrIHRoZW4gd2UgZGVm
ZXIgZGV2aWNlIHJlbW92YWwuIFRoaXMgd291bGQgd29yaw0KPiB3ZWxsIGlmIGNhbGxlZCBmcm9t
IGEgaHlwZXJjYWxsIHdoaWNoIHdpbGwgZW1wbG95IGh5cGVyY2FsbCBjb250aW51YXRpb24uDQo+
IEJ1dCBTb2Z0SVJRIGdldHRpbmcgLUVSRVNUQVJUIGlzIHNvbWV0aGluZyB0aGF0IHdlIGNhbid0
IHByb2JhYmx5DQo+IGhhbmRsZSBieSByZXN0YXJ0aW5nIGFzIGh5cGVyY2FsbCBjYW4sIHRodXMg
SSBvbmx5IHNlZSB0aGF0IHZwY2lfcHJvY2Vzc19wZW5kaW5nDQo+IHdpbGwgbmVlZCB0byBzcGlu
IGFuZCB3YWl0IHVudGlsIHZwY2lfcmVtb3ZlX2RldmljZSBzdWNjZWVkcy4NCkRvZXMgYW55Ym9k
eSBoYXZlIGFueSBiZXR0ZXIgc29sdXRpb24gZm9yIHByZXZlbnRpbmcgU29mdElSUSBmcm9tDQpz
cGlubmluZyBvbiB2cGNpX3JlbW92ZV9kZXZpY2UgYW5kIC1FUkVTVEFSVD8NCj4+IEphbg0KPj4N
Cj4gVGhhbmsgeW91LA0KPiBPbGVrc2FuZHINClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:30:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:30:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228916.396157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAKG-0005Fc-V1; Mon, 22 Nov 2021 14:29:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228916.396157; Mon, 22 Nov 2021 14:29:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAKG-0005FU-Rc; Mon, 22 Nov 2021 14:29:44 +0000
Received: by outflank-mailman (input) for mailman id 228916;
 Mon, 22 Nov 2021 14:29:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fXQY=QJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mpAKF-0005FO-O1
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:29:43 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1c90e3d-4ba0-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 15:29:42 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 2204A1FD5A;
 Mon, 22 Nov 2021 14:29:42 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D3C6613B44;
 Mon, 22 Nov 2021 14:29:41 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id brHLMVWpm2FYdQAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 22 Nov 2021 14:29:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1c90e3d-4ba0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637591382; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=CVZNkfzdxBWj6/7kz5jwFuIe/dsNZU0DLlRmpWjFnPc=;
	b=XF8aqrnqwLRKK1Uz5AzpFuILa6xiPUgqLmfxq4oV2qOGnfKNeSfIjKxLgNvsJtGr/SaBJZ
	zOxCCRiy25Lv1n0ugQBuM7rCtDsxlBpi0tJlTZAHbHXW0DKCP4xrypvRPH76msV++R98E+
	e86h8e9upyqlG7mQsvvQcDdfpPJp+2E=
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
 <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
 <fa778d46-0a4b-254c-0cde-d3df4e53ec4a@suse.com>
 <407a8f05-f16c-26bb-9ba1-044f62e3c0a0@xen.org>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
Message-ID: <523bb99f-a37d-f3c4-c0a4-c2caa20485cd@suse.com>
Date: Mon, 22 Nov 2021 15:29:41 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <407a8f05-f16c-26bb-9ba1-044f62e3c0a0@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="NPRWPxxnywTBP3NLrjzf5VN76CSPLUgFw"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--NPRWPxxnywTBP3NLrjzf5VN76CSPLUgFw
Content-Type: multipart/mixed; boundary="9KUFrzRAEt390QGsHDjtiSmYcMEY5qO2J";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Message-ID: <523bb99f-a37d-f3c4-c0a4-c2caa20485cd@suse.com>
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
 <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
 <fa778d46-0a4b-254c-0cde-d3df4e53ec4a@suse.com>
 <407a8f05-f16c-26bb-9ba1-044f62e3c0a0@xen.org>
In-Reply-To: <407a8f05-f16c-26bb-9ba1-044f62e3c0a0@xen.org>

--9KUFrzRAEt390QGsHDjtiSmYcMEY5qO2J
Content-Type: multipart/mixed;
 boundary="------------9C758D455A2C8E537E462A50"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------9C758D455A2C8E537E462A50
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 22.11.21 15:10, Julien Grall wrote:
> Hi,
>=20
> On 22/11/2021 12:48, Juergen Gross wrote:
>> On 22.11.21 12:42, Julien Grall wrote:
>>> Hi Juergen,
>>>
>>> On 14/09/2021 13:35, Juergen Gross wrote:
>>>> Xenstore is referencing domains by their domid, but reuse of a domid=

>>>> can lead to the situation that Xenstore can't tell whether a domain
>>>> with that domid has been deleted and created again without Xenstore
>>>> noticing the domain is a new one now.
>>>>
>>>> Add a global domain creation unique id which is updated when creatin=
g
>>>> a new domain, and store that value in struct domain of the new domai=
n.
>>>> The global unique id is initialized with the system time and updates=

>>>> are done via the xorshift algorithm which is used for pseudo random
>>>> number generation, too (see https://en.wikipedia.org/wiki/Xorshift).=

>>>>
>>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>>> ---
>>>> =C2=A0 xen/common/domain.c=C2=A0=C2=A0=C2=A0=C2=A0 | 16 ++++++++++++=
++++
>>>> =C2=A0 xen/include/xen/sched.h |=C2=A0 3 +++
>>>> =C2=A0 2 files changed, 19 insertions(+)
>>>>
>>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>>>> index 6ee5d033b0..755349b93f 100644
>>>> --- a/xen/common/domain.c
>>>> +++ b/xen/common/domain.c
>>>> @@ -84,6 +84,9 @@ vcpu_info_t dummy_vcpu_info;
>>>> =C2=A0 bool __read_mostly vmtrace_available;
>>>> +/* Unique domain identifier, protected by domctl lock. */
>>>> +static uint64_t unique_id;
>>>> +
>>>> =C2=A0 static void __domain_finalise_shutdown(struct domain *d)
>>>> =C2=A0 {
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct vcpu *v;
>>>> @@ -473,6 +476,18 @@ static void _domain_destroy(struct domain *d)
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free_domain_struct(d);
>>>> =C2=A0 }
>>>> +static uint64_t get_unique_id(void)
>>>
>>> The implementation is assuming that domain cannot be created=20
>>> concurrently. The rest of domain_create() seems to be able to cope=20
>>> with concurrent call (even if domctl prevents this situation today).
>>>
>>> So I think we would want to make this call safe as well. One=20
>>> possibility would be to (ab)use the domlist_update_lock (I think the =

>>> uniq ID is only necessary for real domains).
>>
>> In case this is thought to be needed, I'd rather use a cmpxchg operati=
on
>> for updating unique_id.
> I would be OK with cmpxchg(). But I would like to avoid cmpxchg() loop =

> if possible.

The chances for that loop to be needed are zero today, as the domctl
lock is prohibiting concurrent use.

Another possibility would be to use an:

ASSERT(spin_is_locked(&domctl_lock));

which would need domctl_lock to be globally visible, though.

>=20
> Reading the commit message (and cover letter) again, I understand that =

> you want a unique ID but it is not clear to me why this needs to be=20
> pseudo-randomly generated. IOW, given the expected use, can you clarify=
=20
> what would be the concern to use an atomic_inc_return() instead of=20
> xorshift?

Jan had a concern regarding potential misuse of the unique id in case it
were kind of predictable.


Juergen

--------------9C758D455A2C8E537E462A50
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------9C758D455A2C8E537E462A50--

--9KUFrzRAEt390QGsHDjtiSmYcMEY5qO2J--

--NPRWPxxnywTBP3NLrjzf5VN76CSPLUgFw
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGbqVUFAwAAAAAACgkQsN6d1ii/Ey/x
CAf/Sgu2JO8YCJfJJ9PG3EIjbDmbeosA4shyxuuVoWbYqWyCSmVHzxUZB2KzhySfQSphF1OzDjxx
YHPbMk3YPZ19qOGHtoSBYh0T2oOKNol3pqjq4Pe2Hz4X8J39fCLqXeNKdeZqhnvJjDaNJZQqyepc
Q9v1inrqyTAKZhG0OFp1hVPzCrBrGlC/y4fdGwkoCQ55c0GKNQUw9VHXLKa1vCpoolvB9qeSyRy5
XpCODr7Caraf1B0CyjDAHS7G30nRWUzrHWkFjY/zvTMMK/RtbFe2xem2e3U/Pqv34cqSDCoGTK2O
agSA1L07G6wOBduQFjPTz1s34mC/HOelsdvDaBj/EQ==
=d5aV
-----END PGP SIGNATURE-----

--NPRWPxxnywTBP3NLrjzf5VN76CSPLUgFw--


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:37:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:37:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228922.396168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpARZ-0006jh-Q7; Mon, 22 Nov 2021 14:37:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228922.396168; Mon, 22 Nov 2021 14:37:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpARZ-0006ja-N9; Mon, 22 Nov 2021 14:37:17 +0000
Received: by outflank-mailman (input) for mailman id 228922;
 Mon, 22 Nov 2021 14:37:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpARY-0006jQ-VH
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:37:17 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id afede7ae-4ba1-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 15:37:15 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-34-BRikKsM1N7GRdJgRiPWD5g-1; Mon, 22 Nov 2021 15:37:14 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 14:37:11 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 14:37:11 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AS9PR06CA0061.eurprd06.prod.outlook.com (2603:10a6:20b:464::35) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Mon, 22 Nov 2021 14:37:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: afede7ae-4ba1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637591835;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IZQtEdeFnrRzKNK+jpUwnjJMd/3NzSthUqApZ6j8juI=;
	b=RP998RJsYn9LZ5qxIT156/o96pnX2oWl56nNAhACWwS5ivRl5ixzBni7fAlw14+AEP7Ta+
	VyoSfhyTo4qpRaC24rX+nijMveUs2aDyW6DlMgXtrslZ9+f9mbjf3nhYcac48tqa2IqrbX
	0XAzvrCmNZUNfV7PNjM24iYX29qBAgo=
X-MC-Unique: BRikKsM1N7GRdJgRiPWD5g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Skq8LwG2xzrB/fHOvQsqrHaYlPQP1yfuxUA+HnNXPvaR8yTmR+HoJhXqJ1Gw0iAUnJw7JpudFge8eCeVvxRThhf/TpFGAyIfcB2MMAJZdw/BwyjygC2m/xQCV2n3ALVco4bxQgiHFfrhKCbYHKTtA75cy1tMdJeLiU/ZVYZE02AiF7C8PelLYLQ3R+xXkahbaRvHmCIkB/0PaKCj6pujVY5ywr2ILfCYXxUUGz865aC5IysXrYQZZrAF1a5dkVJ2o6e2JZEOgobCSXvrYUQSmDNZQU7CUxBX7pSI0L0+Ya1vgQZk53tl4zHP+Hzgp0rNvB/+PtwM5RSw1egcqr6gpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R/ElNERL9/eNR4JIdUzQrfBw4It/aqNqcg11BYPz5JI=;
 b=Z+uSu9s7qUp0cRTpaNOLCcyGAz+Ypzh545KezpNvhal8f7UZJ7PYXpTFYYnJfWxW4M7Ob02DbJ4aMVOBLUt4qmZjmBBYlUfE+PdmuVX+SjUVD5fMaR9fT987WsQaYWE6346bk3EvWUSFzIUtMNsXswlu6oAQ5+ZQ5bmA1BT2GWr/ib3cPpbrpJTJjKEroHekBk5ySxE3K24zduj++EKGI1sr3gWM1pniwuXkIF/XIBFiawQvODC3wmaK83pbDbdsqfDi/Q7lleIwsPzna5mnbwmIyYGM7+ADiFVGPX5TZpRX7nuocJQhz1a5exYQ2IqHAg6XV0WHjY0jZgnYq2cW5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <2363af0e-6435-485e-8906-16a6fca7885c@suse.com>
Date: Mon, 22 Nov 2021 15:37:09 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 "julien@xen.org" <julien@xen.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <e17ee963-d498-00ef-a5c5-1fea73ed4898@suse.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
 <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
 <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
 <5baf1199-e12d-cc41-4520-e32ed29a0436@epam.com>
 <fbc8a807-ea73-760f-8c75-df0930a5139e@suse.com>
 <4e74d5e1-f54e-3888-ada2-a38545571744@epam.com>
 <6be4e6c0-5b54-606e-1278-e97e143e23af@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <6be4e6c0-5b54-606e-1278-e97e143e23af@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0061.eurprd06.prod.outlook.com
 (2603:10a6:20b:464::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b6cf1036-b3b2-41c3-d5df-08d9adc591a2
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5325BD31C7A8DA881F0A85B5B39F9@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NTrxG4g9+0upaqFbhLbXadJl6HZwtMQoVGxl5K9Krj50qvB/gbS7WcSzx4gkw6NMZmbul+uC+hyK1Hq/anApRVMT4vAMFXYKV9HAzkjPKx3ZIGlEGzBMER91X8n1sPUvGoDaUw0bMjeB6rageh1uIroPiyEDkrxN7JcqD7S9+xt9edbkw5dlXZybpt8YACZcGG/xEt/NGZj4p1uw/mtASS6dBSnFgj3hEz4m2RH6cT7UdVxODY8lZSrnxh+0VVfpoa7gwig71hFL7cZ20lmI3dqoSdgvtmocvQRM0GtiBaLpdOTY6Anxr+dyAzx63s9eQ4XqkCjNvo4T012YIfUSRdQaeBfAlDRZZRMEkQiBiX464R+QVdGUvJ/3TxGKZBq6RignaWNH6DBXWhM0oScTxo0C8PgfaKGrgN2/b9oYV56ZKoZ0tUhfFyS7e7OR0AXqUKDVa9FsEdqfjMH3o9mE/f705tB0ZvDZl0Mgd4wUhS9acL0Jdo3bKKuV8Hhp9CubBe/ke6CmwmTTgxh+wOnDXDjl5rfUhnFOKfTZ+6KWrEWCSz/nJqo52T+ncPwA8CAdXVbVvh4eyqABq+h/1e6FcnM54X/5dpx/JtWQ0QolsFSEgyBaXJOIkOtjlzGMSv5XeqVn9PtKRF+oxy+cxoZfcowha+LaP+DRlNJdPuG6b/fqTxl17J8/t75DWrTcob7y8or1E/KxMURxRE5JzAnFPDGFpeRcpGcELmDPbgy9NY4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(5660300002)(8936002)(7416002)(508600001)(66556008)(31696002)(38100700002)(8676002)(66946007)(53546011)(54906003)(6916009)(86362001)(36756003)(2906002)(2616005)(186003)(316002)(83380400001)(66476007)(4326008)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?8CTi9oa0CKhXcxnYzD4WGHh6zQwkpPMbCOsvvNVbhYSKNHMXB9wTuRBMVcXC?=
 =?us-ascii?Q?Q4IcBd2yHR7ApZIz5OctI5PebLvpAEG+HsRsaP62EXSsTNIWLNfC9LBi4hoM?=
 =?us-ascii?Q?2wYlW/7rmwaO5/GXH9YWYQjF9E50VwnU+YRDKaUZJOoqWoePGKCwlrEIblXf?=
 =?us-ascii?Q?BY7icasQc7jqltBqX/s/sb+aTS+Qmj+CFEKtAka4tRxyvfkgrOnc9Sd3+snP?=
 =?us-ascii?Q?Es6bYdFZVdd13dxNVQZKTvmrZAGAmqfTL2yl2VPMKPiCI5TKDbZ9JLbXDLLX?=
 =?us-ascii?Q?/oyPHvasg4RyWmyQApNWNUw6WdZDWHgKSgKr4WoPMZOJqBCs53m8Lg2ZrP5I?=
 =?us-ascii?Q?dTh7nAvVfiJkQo4F8R4cubwVLGXnLY8K8mMQ0yo34qS8ntpQoz8gKgrNoh3L?=
 =?us-ascii?Q?pRD20jMV8bmOPTpkfIeYGOwlRYDlTRe2BdvG+Z7jiOFUJklXcnVnjxNJA4JA?=
 =?us-ascii?Q?A7WsfFIQ+ozKATG/jvkGTlknLgEqCNTeLWxgx13dM+EzZgW1g4p2m2cenHJD?=
 =?us-ascii?Q?BgPN5cR+cjoLSdMa2moq6HoFrYJMmxpseTgceZC3jxyzkA/fyHq363DkmONO?=
 =?us-ascii?Q?avQDV83AkVfh+EAxPNhqPVRnqKc4K4mzP7fuTuPUjdHmoxTJKupppgTxYsOr?=
 =?us-ascii?Q?h9x8iSbfa12yTmrjyV5j0v9j60PkzXbg+SGp0vrOYALXgq54Iyk94itMRbNq?=
 =?us-ascii?Q?5vAGgY9AZ1BhiIXpH+c/rms4zJb/oLtKvsEdgpc1WvWyBULQpeXdmK+gQ+NG?=
 =?us-ascii?Q?A3MWIFwL6wAxSS7i+lItR3ZJKVHbwG2YulE/oQ3sGxgSsx+mXuVfl7JKiqlM?=
 =?us-ascii?Q?wK3WsgTOlw0jnp4dz9JTRO6sswct36FHhAf2+h2wfMT9XRGUOeHtU6hW35y4?=
 =?us-ascii?Q?x2jIS9RrznLrfQEu569XTZoOqM4qlFX7b7k69bDhu5FhFEmw0l13U7+oLNF+?=
 =?us-ascii?Q?YEAbreIArXKiCINdowquzEvPDdAkHtXzGWeXUAWIsEF7NmTDo3tPPknjLBRA?=
 =?us-ascii?Q?oq4v/mKWUDLTv5tMzNocOHXPyddsw6nLXqAaQjemLdlIwZFzIyLsa/n1xksn?=
 =?us-ascii?Q?YgM5EAVq45xDdQ0Wec40a6P43PP8IRKEKPE36KrMv/lheDzsHNjgfrLOsp3/?=
 =?us-ascii?Q?V27hBlfYzdxXe1LSW15rZlXYtOjHp/o5FJvFF1gtmW8EF1Yq0RaB2FwPiXA0?=
 =?us-ascii?Q?m3H05iHstx9h6gMRi0c2okzmT6CIXJNR60iycbpa2OlxvJjWIRsk6BjJRsl4?=
 =?us-ascii?Q?tWLetnlZkJqfLqu4EVTm8NJdSDKctWr24U5ZYhPT09I1kbESD+OzXDW+el/c?=
 =?us-ascii?Q?s4p9uD59xbf9CeibrIVvDCE3GIv8ddyVOkICrQqKm/FtOKsbyC2lYxLsrwCC?=
 =?us-ascii?Q?ps+q0ektBSjgT4+x8Jg/31P9gV/g1z4JF/BGGoIsjT7cqJXkrdbjwFYFu1L5?=
 =?us-ascii?Q?9zXDZ2xjR2REWrKJ1t5gxrObOeBKY/CaxhO3UCyindogaqAaB5171J5oljdf?=
 =?us-ascii?Q?lkS/VxBiXJ1it6CejS+Wx57IGLWEbnsdJl6Ntkx8yB2h1ilEKvl7Hqmk0eTT?=
 =?us-ascii?Q?i2OEl21zYM+b17/kZZEsFJtLRG7r5DKtYAF/o1Bf5AYIDo0t/qSUQGbXBkSg?=
 =?us-ascii?Q?dma+z1p/s0HNqfe3Z7E/qLGXPCgrewEc0TEu8FYxz1arADH44fRyds4fZgxt?=
 =?us-ascii?Q?FIMiRFhX3G2hrMDevpPpK7wx/uw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b6cf1036-b3b2-41c3-d5df-08d9adc591a2
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 14:37:11.4885
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Uz0BPwtYCgOINSCxigPGLTUXcJCuw68JqZuKBxy84Jm+zYx9bBi7CXPm3O6YaE4PFuz0qJ+tWApFkAGb13F7hQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

On 22.11.2021 15:21, Oleksandr Andrushchenko wrote:
> On 19.11.21 15:34, Oleksandr Andrushchenko wrote:
>> On 19.11.21 15:25, Jan Beulich wrote:
>>> On 19.11.2021 14:16, Oleksandr Andrushchenko wrote:
>>>> On 19.11.21 15:00, Jan Beulich wrote:
>>>>> On 19.11.2021 13:34, Oleksandr Andrushchenko wrote:
>>>>>> Possible locking and other work needed:
>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>
>>>>>> 1. pcidevs_{lock|unlock} is too heavy and is per-host
>>>>>> 2. pdev->vpci->lock cannot be used as vpci is freed by vpci_remove_d=
evice
>>>>>> 3. We may want a dedicated per-domain rw lock to be implemented:
>>>>>>
>>>>>> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
>>>>>> index 28146ee404e6..ebf071893b21 100644
>>>>>> --- a/xen/include/xen/sched.h
>>>>>> +++ b/xen/include/xen/sched.h
>>>>>> @@ -444,6 +444,7 @@ struct domain
>>>>>>
>>>>>>     =C2=A0#ifdef CONFIG_HAS_PCI
>>>>>>     =C2=A0=C2=A0=C2=A0=C2=A0 struct list_head pdev_list;
>>>>>> +=C2=A0=C2=A0=C2=A0 rwlock_t vpci_rwlock;
>>>>>> +=C2=A0=C2=A0=C2=A0 bool vpci_terminating; <- atomic?
>>>>>>     =C2=A0#endif
>>>>>> then vpci_remove_device is a writer (cold path) and vpci_process_pen=
ding and
>>>>>> vpci_mmio_{read|write} are readers (hot path).
>>>>> Right - you need such a lock for other purposes anyway, as per the
>>>>> discussion with Julien.
>>>> What about bool vpci_terminating? Do you see it as an atomic type or j=
ust bool?
>>> Having seen only ...
>>>
>>>>>> do_physdev_op(PHYSDEVOP_pci_device_remove) will need hypercall_creat=
e_continuation
>>>>>> to be implemented, so when re-start removal if need be:
>>>>>>
>>>>>> vpci_remove_device()
>>>>>> {
>>>>>>     =C2=A0 d->vpci_terminating =3D true;
>>> ... this use so far, I can't tell yet. But at a first glance a boolean
>>> looks to be what you need.
>>>
>>>>>>     =C2=A0 remove vPCI register handlers <- this will cut off PCI_CO=
MMAND emulation among others
>>>>>>     =C2=A0 if ( !write_trylock(d->vpci_rwlock) )
>>>>>>     =C2=A0=C2=A0=C2=A0 return -ERESTART;
>>>>>>     =C2=A0 xfree(pdev->vpci);
>>>>>>     =C2=A0 pdev->vpci =3D NULL;
>>>>>> }
>>>>>>
>>>>>> Then this d->vpci_rwlock becomes a dedicated vpci per-domain lock fo=
r
>>>>>> other operations which may require it, e.g. virtual bus topology can
>>>>>> use it when assigning vSBDF etc.
>>>>>>
>>>>>> 4. vpci_remove_device needs to be removed from vpci_process_pending
>>>>>> and do nothing for Dom0 and crash DomU otherwise:
>>>>> Why is this? I'm not outright opposed, but I don't immediately see wh=
y
>>>>> trying to remove the problematic device wouldn't be a reasonable cour=
se
>>>>> of action anymore. vpci_remove_device() may need to become more caref=
ul
>>>>> as to not crashing,
>>>> vpci_remove_device does not crash, vpci_process_pending does
>>>>>     though.
>>>> Assume we are in an error state in vpci_process_pending *on one of the=
 vCPUs*
>>>> and we call vpci_remove_device. vpci_remove_device tries to acquire th=
e
>>>> lock and it can't just because there are some other vpci code is runni=
ng on other vCPU.
>>>> Then what do we do here? We are in SoftIRQ context now and we can't sp=
in
>>>> trying to acquire d->vpci_rwlock forever. Neither we can blindly free =
vpci
>>>> structure because it is seen by all vCPUs and may crash them.
>>>>
>>>> If vpci_remove_device is in hypercall context it just returns -ERESTAR=
T and
>>>> hypercall continuation helps here. But not in SoftIRQ context.
>>> Maybe then you want to invoke this cleanup from RCU context (whether
>>> vpci_remove_device() itself or a suitable clone there of is TBD)? (I
>>> will admit though that I didn't check whether that would satisfy all
>>> constraints.)
>>>
>>> Then again it also hasn't become clear to me why you use write_trylock(=
)
>>> there. The lock contention you describe doesn't, on the surface, look
>>> any different from situations elsewhere.
>> I use write_trylock in vpci_remove_device because if we can't
>> acquire the lock then we defer device removal. This would work
>> well if called from a hypercall which will employ hypercall continuation=
.
>> But SoftIRQ getting -ERESTART is something that we can't probably
>> handle by restarting as hypercall can, thus I only see that vpci_process=
_pending
>> will need to spin and wait until vpci_remove_device succeeds.
> Does anybody have any better solution for preventing SoftIRQ from
> spinning on vpci_remove_device and -ERESTART?

Well, at this point I can suggest only a marginal improvement: Instead of
spinning inside the softirq handler, you want to re-raise the softirq and
exit the handler. That way at least higher "priority" softirqs won't be
starved.

Beyond that - maybe the guest (or just a vcpu of it) needs pausing in such
an event, with the work deferred to a tasklet?

Yet I don't think my earlier question regarding the use of write_trylock()
was really answered. What you said in reply doesn't explain (to me at
least) why write_lock() is not an option.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:37:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:37:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228924.396180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpARs-00077h-3h; Mon, 22 Nov 2021 14:37:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228924.396180; Mon, 22 Nov 2021 14:37:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpARs-00077Y-06; Mon, 22 Nov 2021 14:37:36 +0000
Received: by outflank-mailman (input) for mailman id 228924;
 Mon, 22 Nov 2021 14:37:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpARr-00077G-29
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:37:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpARq-0001Hi-9c; Mon, 22 Nov 2021 14:37:34 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.28.80]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpARq-0003eq-3A; Mon, 22 Nov 2021 14:37:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=MNQP04VD/xRBh2SQaPZxW/sZmElpY18gGNLg9gnBMMY=; b=0G1mJwo8oQDa33JL3s/bC+9s6u
	4lH3tm/a3XJMf5SLhgqgFm27aExSrbvlilCLmeaOUw1UL5neAw0DEGtJsXjUBqiZnpBK/sXGBwcK7
	PRAOJNzB2KtWh5S/Tzvm8R6zYeRS1iD8r6AKqZWI5Hw8+QZTyuJuXYjg4at+c/pu2rE8=;
Message-ID: <ecca9185-3dab-89dd-c2d0-a7b974d45e1d@xen.org>
Date: Mon, 22 Nov 2021 14:37:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
 <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
 <fa778d46-0a4b-254c-0cde-d3df4e53ec4a@suse.com>
 <407a8f05-f16c-26bb-9ba1-044f62e3c0a0@xen.org>
 <523bb99f-a37d-f3c4-c0a4-c2caa20485cd@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <523bb99f-a37d-f3c4-c0a4-c2caa20485cd@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 22/11/2021 14:29, Juergen Gross wrote:
> On 22.11.21 15:10, Julien Grall wrote:
>> Hi,

Hi,

>> On 22/11/2021 12:48, Juergen Gross wrote:
>>> On 22.11.21 12:42, Julien Grall wrote:
>>>> Hi Juergen,
>>>>
>>>> On 14/09/2021 13:35, Juergen Gross wrote:
>>>>> Xenstore is referencing domains by their domid, but reuse of a domid
>>>>> can lead to the situation that Xenstore can't tell whether a domain
>>>>> with that domid has been deleted and created again without Xenstore
>>>>> noticing the domain is a new one now.
>>>>>
>>>>> Add a global domain creation unique id which is updated when creating
>>>>> a new domain, and store that value in struct domain of the new domain.
>>>>> The global unique id is initialized with the system time and updates
>>>>> are done via the xorshift algorithm which is used for pseudo random
>>>>> number generation, too (see https://en.wikipedia.org/wiki/Xorshift).
>>>>>
>>>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>>>> ---
>>>>>   xen/common/domain.c     | 16 ++++++++++++++++
>>>>>   xen/include/xen/sched.h |  3 +++
>>>>>   2 files changed, 19 insertions(+)
>>>>>
>>>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>>>>> index 6ee5d033b0..755349b93f 100644
>>>>> --- a/xen/common/domain.c
>>>>> +++ b/xen/common/domain.c
>>>>> @@ -84,6 +84,9 @@ vcpu_info_t dummy_vcpu_info;
>>>>>   bool __read_mostly vmtrace_available;
>>>>> +/* Unique domain identifier, protected by domctl lock. */
>>>>> +static uint64_t unique_id;
>>>>> +
>>>>>   static void __domain_finalise_shutdown(struct domain *d)
>>>>>   {
>>>>>       struct vcpu *v;
>>>>> @@ -473,6 +476,18 @@ static void _domain_destroy(struct domain *d)
>>>>>       free_domain_struct(d);
>>>>>   }
>>>>> +static uint64_t get_unique_id(void)
>>>>
>>>> The implementation is assuming that domain cannot be created 
>>>> concurrently. The rest of domain_create() seems to be able to cope 
>>>> with concurrent call (even if domctl prevents this situation today).
>>>>
>>>> So I think we would want to make this call safe as well. One 
>>>> possibility would be to (ab)use the domlist_update_lock (I think the 
>>>> uniq ID is only necessary for real domains).
>>>
>>> In case this is thought to be needed, I'd rather use a cmpxchg operation
>>> for updating unique_id.
>> I would be OK with cmpxchg(). But I would like to avoid cmpxchg() loop 
>> if possible.
> 
> The chances for that loop to be needed are zero today, as the domctl
> lock is prohibiting concurrent use.

Well for domain created by the toolstack yes... For domain created by 
Xen no. Today, this is only happening at boot so you are safe (for now).

That said, I don't really see a reason to prevent concurrent 
domain_create() and as I wrote nothing in domain_create() seems to make 
this assumption. So I am not happy to build on that in this new helper.

> 
> Another possibility would be to use an:
> 
> ASSERT(spin_is_locked(&domctl_lock));

This ASSERT() would be incorrect as it could be hit for any domain 
created by Xen.

[...]

>> Reading the commit message (and cover letter) again, I understand that 
>> you want a unique ID but it is not clear to me why this needs to be 
>> pseudo-randomly generated. IOW, given the expected use, can you 
>> clarify what would be the concern to use an atomic_inc_return() 
>> instead of xorshift?
> 
> Jan had a concern regarding potential misuse of the unique id in case it
> were kind of predictable.

Fair enough. Can this be written down in the commit message?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:39:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:39:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228933.396191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpATR-0007tK-Fh; Mon, 22 Nov 2021 14:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228933.396191; Mon, 22 Nov 2021 14:39:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpATR-0007tD-CE; Mon, 22 Nov 2021 14:39:13 +0000
Received: by outflank-mailman (input) for mailman id 228933;
 Mon, 22 Nov 2021 14:39:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpATP-0007Xk-IS
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:39:11 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f48a46df-4ba1-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 15:39:10 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2057.outbound.protection.outlook.com [104.47.14.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-26-19tuF2gUMSWbH6YEjNxL0w-1; Mon, 22 Nov 2021 15:39:09 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 14:39:08 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 14:39:08 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM9P193CA0018.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:21e::23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.22 via Frontend Transport; Mon, 22 Nov 2021 14:39:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f48a46df-4ba1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637591950;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=+u3x/rpZAiizQnWagk6O63Y0oLGsfQ2Mro2KJRdj79E=;
	b=YwExNGMpo6C8Hsfhneo6AI7CDRXzb/iRALgrXwEA4FyOrTJdeZ07Sg7XGcNVjYn54VYGTu
	J+gp6Rlz4sq+WauZgIbCE1vyxjs4P+47nkulMSfziLw3e+YqAQI9vZoyyHLbSyiRMkXfjh
	XKbjllyqx4A7g6aCq3KSBgsqsiSP4aQ=
X-MC-Unique: 19tuF2gUMSWbH6YEjNxL0w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MJ/j6RgkXzuOcWQzW+qKX/132SRwTc+usGoLjw9PBn/QwIdIeiH/3wPUN/Sedw7+KsITNZfxatn5qBFqYOKe16GZG9WAuc7CmhwmUQh4DhvVfTht5EBYy4tEV+2OSCrC8JgeXD3zzG6uwBUTccrm9UorO+xSAOtIVFS/n9ko+6Otl+/IaAxe82V1K6gLfKL1MXehqrvjEtaRyOOtkiosgiIxXrczWwvAcOcBevpvMBYxd4APR9Ul8qJ6JHwg898Lbf3dsJCqHYgK++VQ2mBOAujwlOecbVbKsNaV2gmb/Dd1wo9jnjcd3bKZMd6uIfttY0myCa+FoDq1QSAIofOi9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+u3x/rpZAiizQnWagk6O63Y0oLGsfQ2Mro2KJRdj79E=;
 b=Xc3ME74PrXxaNMjU+n2kz1nnbtwOrd9Ph5El3WdLjCcdT+qCLxQNyn2of8omYqpKqC+euSrWyBXUwiixhZzvFt/Bq5tZJl9V6JTNd5kcPimQq6/JWaJLaFoXZuUKRXn4VVjMpVH29Yq1gsyO55Rd7XBUsUsDrVvjEKDjVgXZ7pCoPLKyfNWehCj/yRkMEklaAnGutInVgEuNQqlqTlJEKWIg4Dw3257dCDiGBjr3EZrynXR1AXjwLtnTmrHYkW7VoudFISqXwuz+Vx7cwLBrzAiLCrVVNU6wX/Niwj/rcEvg63WjNL1Wa/UCS7nbfSHO3zOe4ffo5+m4eeZo0vnQFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c0228394-2dfe-717d-e35e-7120621df27f@suse.com>
Date: Mon, 22 Nov 2021 15:39:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH] MAINTAINERS: remove Josh from ARINC 653 maintainers
Content-Language: en-US
To: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20211122141742.3075-1-stewart.hildebrand@dornerworks.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211122141742.3075-1-stewart.hildebrand@dornerworks.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM9P193CA0018.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:20b:21e::23) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2eef1cc8-cb89-4d8b-cdd1-08d9adc5d750
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5325CE54E3642555FD4951A1B39F9@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1303;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	A+FkOaZ3ACqe9o3aQ0mRici74Q/9VCYasV960zN/4Z5LmojIqu2hW+RynFVGm7ihXcg8MKRt3LZ9GOeqHP6L07tfLzr8GFA/uCFbigi+9nO+jG6fVoEKz2f4MFmcTsPw61vpcO6oMTT/oLOYbCa9ZlNLFqT/Byp84NLFngKv6vvbGWyJurwSZLa8BYkf2KrmhKj8VgcnaR5D2e/Lr0zDQC2h000OJZv9KG7WpqgQm2w3p7og/KShj6ZQqqvDX3+VnVNf1VWncbso3yJIQXOoas/oIvhb8JjUOgRcMC4X40rwmYvBmfFcxqp2A3cCfytLj4y5Tir0TRJjEq6pI1FdlPzAJEM/1iMJLn8qiEC22xlAPPNsnfDwkNGHE1yR/RNeWSwS5mX73Y9ccdggZ3V4tDqhVKVWdhxahFXF1GmsWAGvuRNL/PoTAfVHrO/irPEmqg/0gwo7h5O92v082HyK3Tu8zKQolH/1vl7TAQFCq/PX9ewbY38TIqog20qV0kZ62JFwjYKmzrbbw+vg8er4UTtc7dFbruGbQsYb6GNZk2Q6hkyZ5VlxIu/vfWB/u83H0or2eoedU5Qh6yzsJ3ETf128S/TBxyYQp6QdwOKBVJv5X90Bv2aMEU83FH1RFEWfLIPbuVBOHqSA/mdYKm2hoamX0geZEBByN0jHS6SaRMYpVqHSXsVpdfz54DnaSu4vmmTfakt7/WuhP9O49pFyhOZBpCcmlLhGmPM/+357iFM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(5660300002)(8936002)(508600001)(66556008)(31696002)(38100700002)(8676002)(66946007)(53546011)(54906003)(6916009)(4744005)(86362001)(36756003)(2906002)(2616005)(186003)(316002)(83380400001)(66476007)(4326008)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SjdNamlHbEhPR3k2bTE1Mnd0U1ZvZzJDNGovVDM1ODdRUTJlb0ZzV1ZiZGE1?=
 =?utf-8?B?VmhVd0xYdjQyS0F1ZXM0TGF1Q1hraHNrOUpydkpUQnovb2VWcWZXNlgyUzl4?=
 =?utf-8?B?VUg0U3RteHhiU1NnZVhvQ0Q5RFVocU83aHRldlc0cnVoNWZzVzhqdVArVElI?=
 =?utf-8?B?ZUJMeGN2emxYUXFPR2FlUTlCQkZWeVBsTEJyM0NCNlpmYk1RSm1UU3ZDZDZU?=
 =?utf-8?B?bUJGaXRhOHBSZkVoWnExaWp0UDlSMTBsblFaVVFOUUtDL1pxRjZza05QN29i?=
 =?utf-8?B?VHhVTUsrZVlWNGZoWG5hQzNiVC9JQmFPUUw3czFWQkxIdEhpNmtoaGlyL213?=
 =?utf-8?B?akZRK2h3V2ZwYjE5Ly9YVUdGM3l4Mzh4YUQ3N20rOHkyaEVwTjZBb1ZUTVJX?=
 =?utf-8?B?ZEx1MXdBbDFKMnBkZXhmYW1qdTZqTEIvL3dyUWd1QXNWRy8zSmRVVFJUVDg4?=
 =?utf-8?B?R3orQzUwaEtDZkF0U1JydjcrYlJtR0hPT2dJWVFFeXNlRTVyaHdIclBoNURo?=
 =?utf-8?B?TjVQa3lRczFrNUdSNUMxbXppL0NrTyt2NTY2WTdXL1FSeHJXZk1Qa2ZTQTdU?=
 =?utf-8?B?V3N5aFZmWnJBRmYvVndSV3JFR2ZlajlzaklNM0dSdEdWRk84clVSWTY2Nmlh?=
 =?utf-8?B?Qkw3aVQvMS9sakdVNTYvbGdmSG4wTEtxYmZLdFkxSnFyUUJOU0xOZkd5UmFq?=
 =?utf-8?B?QVUwVjl0Nk0xSlFmT1U0WHZlaGZGbGxmM3UxS3MraEJxaU83N1YzRFNKamhX?=
 =?utf-8?B?NWh6QVc5QWVyNTJtT2dEN1BNRkZQSFU1ZnVEVUp3WHJmYmpKQndxVzdHUXpL?=
 =?utf-8?B?ZVZaUC9iZlJNNHZ4cHRwWWxUVVFHTzFxdjI0QzNqd3REZ0VYbUdvY2xSd0NC?=
 =?utf-8?B?bjJkanVqUFA1ZFdDUHF4R2EySXBkc3ZRSjFQM0c3eU9MNy85UjJyVzhCZ3c0?=
 =?utf-8?B?YkN1VDFDcGlWaUJKbEsrWWR1cGFvWElhQzdKMTFHOWxjWHJTL3UybFlkQnhR?=
 =?utf-8?B?Q3huNWlZMnplTWYzbkJaanVxb2o5OS9UVjlLNzQ0eW42QWVwTDhoUmttWDlQ?=
 =?utf-8?B?akVraW1NZWdTSGNORmFZa05xSXR2SEZhVzc3cWROQVpoazB2N1hhcjNpVm84?=
 =?utf-8?B?aytyN0ovRWs1WHNEcW11eC9DZ3hlbmt0aXVKcEZZUlNQMGdtNjZiK05PQi9C?=
 =?utf-8?B?dXIzNldmSnVVbDQzVUs0TnpnRmJrNG9Ba1JzRDNWWENBNzZvSGNONnZ1ZjVW?=
 =?utf-8?B?WTNmQmxPdW5oV3JvYXlwT1VHeWk3Wkc1VFY1MlN1ZmFha3ZUR05KVlE3Skhr?=
 =?utf-8?B?TzlNY3V4dFZEb3hqeVlMa25MSlF6Nis2SjRQNGMxQm5CSUMrYWxKU2dOVWxW?=
 =?utf-8?B?VDRrU2J3VzdkREp1QzlTeHRsUFBVcnk0R1RZOFRvVGNFTTRrUFdFemt3alhQ?=
 =?utf-8?B?SXM3L3dJLzZBV25jSnhZcml5WDlRdEM1d3ZrcVdodW1kWXNHTjhpbGtyenJx?=
 =?utf-8?B?Q01zUkdJampsSHg4bVRJUHRDdHdCN2o4VjA1dmZ2N1lTWkh6MDl5MlVXMU0z?=
 =?utf-8?B?d2JvQ2NXSlVPYmtzSEJuZmFST0ZLd1I2WU9EdUFkUTBXK3dzbFZYOU5mSUkv?=
 =?utf-8?B?S3dLbzJVVWw1UjkrMFA4Q2FFUjNYMnU4b0x1dGw1YThlV1RhbHdQRWZuU0Fo?=
 =?utf-8?B?UXpFNk81UzVHOVRMUE5ibGxPRThzdlNsSzNIRjE0R2c0M1BtM2VkZ0Z0WUhq?=
 =?utf-8?B?NXlDT2o1RDRCWkRhVSsrN204MUlXNDB2QWhtU2U5V3VmTGJaa0NUWC90MEk4?=
 =?utf-8?B?OE9TVG5LT2hweU9UbGxybnBxb2YvOWl3d3BoSkJlcUsxdEsrM0taS20vVWlC?=
 =?utf-8?B?N0N5NmlZVEIvY3hEcHhzanpkQ0RRUzVjN1N4TktFY0dvUmRJNjg4elBhYVZh?=
 =?utf-8?B?bkF5Wlk4cWUwcHJydk9iN1dJQUtRYnFpbm9KWTNJajY5RkI2QnRtbEFYeVBL?=
 =?utf-8?B?T1VUejJBS29xaytkNXBtQ25mSTF3TGxLdVRDalR6RlU5aWlMNWVYZTY5ZFBy?=
 =?utf-8?B?KzJUNGlrUnpIQmVYNHJGK3VZWnYxRjR6NFJrcHJOZGlVb0RHSUZnZEJ0M0Fm?=
 =?utf-8?B?S3pnYkZnWHFHRUcxdlBxdVZFT0tkUWNtcDNrRjRDNUhjVXI5UGYyYkVQL3NN?=
 =?utf-8?B?RDErVjRCRUo1VkZhTDVxNDMxWEQ1a3A4NCtjYWhtcmpRZXd3OEhuWUNNVFY1?=
 =?utf-8?Q?cXG2B1Y0GF0a43XJXJ98x5CgEAtSxhm/ygqiZANml8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2eef1cc8-cb89-4d8b-cdd1-08d9adc5d750
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 14:39:08.3374
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X6pYVffuZlVDOXnfW0deExvvdCxnpxygX66QZ3pYbhvBe+lYIcIOcCmUV3IktTSwN6Ew/x5mGNioKHfn3+ulww==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

On 22.11.2021 15:17, Stewart Hildebrand wrote:
> Josh works at another company now

You don't happen to know his email there, do you? Else if would have been
good to Cc him so he could confirm.

Jan

> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
> ---
>  MAINTAINERS | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 4956db1011..fc8b2c1169 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -221,7 +221,6 @@ F:	xen/include/xen/argo.h
>  F:	xen/common/argo.c
>  
>  ARINC653 SCHEDULER
> -M:	Josh Whitehead <josh.whitehead@dornerworks.com>
>  M:	Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
>  S:	Supported
>  L:	xen-devel@dornerworks.com
> 



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:45:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:45:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228937.396201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAZd-0000vu-9F; Mon, 22 Nov 2021 14:45:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228937.396201; Mon, 22 Nov 2021 14:45:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAZd-0000vn-61; Mon, 22 Nov 2021 14:45:37 +0000
Received: by outflank-mailman (input) for mailman id 228937;
 Mon, 22 Nov 2021 14:45:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpAZc-0000vM-4B
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:45:36 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8cdb718-4ba2-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 15:45:34 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AMEi5AT016622;
 Mon, 22 Nov 2021 14:45:30 GMT
Received: from eur03-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2050.outbound.protection.outlook.com [104.47.9.50])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cgd7sg06u-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 14:45:30 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com (2603:10a6:20b:13c::18)
 by AM6PR0302MB3237.eurprd03.prod.outlook.com (2603:10a6:209:1e::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 14:45:27 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445]) by AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445%3]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 14:45:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8cdb718-4ba2-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CJdr4inmVe9z4p2rv/33Xq8+WVlCMnZEi3hK9M3I6R2xhugjJUwHHG0V94JDJsjA7pP3MeKMgwVvlGNVsvPXX8TYCAITBKYs1iR5rZbZEUFX6W3eLhLOLM1hjhPQqkoGt0CnRk9ZRmQl6rnz8yUkoRNc+LE8pe0HU1QXnPESLN/KyTLasLFyYbKI6WDE81z0+jwjClhN+mXT7rPcVsD7pyE7HlZN+PFKnN+mYqxzQZqJQxfTEpvkd9gVdwQMtOsavaD3RdQY8Bs5jEo5Yvhn5SkpnqrSP8hPR+ZhpNOxGk04JhLWHAbUq/+lppe9YAP1tBdFDqVGulYylcY5Hklcqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UhmmMzCHO1lGObZlagMptMusJBD+3LWdpoeDX28BPlg=;
 b=Vpmg3AZVbOAgM6FY5OWqI+wzkMeRVglnZB6I+YGtVUAyAvlC0MavTES0wDaRCjpGdnKa8K2W16TmNi2PNhYud6i/MejYwfhueXE0YGvx+Ud2EsR8bWTKjtxnp7Yp32QGjqviqfbkuzvRpGW2ukSrgDzZDt7ec44N5q8TQAaax7WjC93IUXhFW/n9CzzhRfXTKTaeFeJKu0MZtR3FQA9C3uggh8BNMoPMqXc6NmRNxTiG+dpyAG0JxyrSAiHmCIyVYJWlci/rL8i8P2R6jYQ7x1uoKjWoenlAIjeESkEb1655CR/BuwzKOIjPou4bSPc7mfmEwwyhVUD92WxF6dc1Zg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UhmmMzCHO1lGObZlagMptMusJBD+3LWdpoeDX28BPlg=;
 b=ZJmQnoKVq8Pg7+eCLtDwpWtfa9hexVTUifeMHZG5Ojhqj8IITel+w8SQqBKz5Bzur7yllWK1TO+pglAkL1smex/wUIBrSoPDtGvUGMkgZnmyYmab6o0FJUoIELDlOR/aTNlUbxiHDYLVs8z+n8GD6sPwDE1WeO8T3u20h6ITk67F5Ys0mvVSxjmwUeU5L1K2qRjEnDGB82fVBtDXWqaNOWtAwKVi1NyMgRHPUdCrKgpZODMRw+q/NewuMq5IC+R0ITlDRu4hokwA9fyMX6C7SBdHkIf9S30tbbRG5/KkZ3VyDfaUTqPWgQas6g0gTzrM3mCT9a2UzXANCG6iH9Fmig==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        "julien@xen.org" <julien@xen.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIAgAAFxACAAAoGAIAAAXMAgAABgYCAAAVtAIAAAX+AgAAB1wCAAVryAIAAB06AgAAEPgCAAAKhAIAAApkAgATD+4CAAARtgIAAAk+A
Date: Mon, 22 Nov 2021 14:45:26 +0000
Message-ID: <d8d6cbcb-478a-a5a7-4e93-036b0f75c6d0@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <d9692f93-a58d-1513-1f22-7d0cbc7b3b6e@epam.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
 <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
 <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
 <5baf1199-e12d-cc41-4520-e32ed29a0436@epam.com>
 <fbc8a807-ea73-760f-8c75-df0930a5139e@suse.com>
 <4e74d5e1-f54e-3888-ada2-a38545571744@epam.com>
 <6be4e6c0-5b54-606e-1278-e97e143e23af@epam.com>
 <2363af0e-6435-485e-8906-16a6fca7885c@suse.com>
In-Reply-To: <2363af0e-6435-485e-8906-16a6fca7885c@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ec1cba95-7650-41b6-6945-08d9adc6b92d
x-ms-traffictypediagnostic: AM6PR0302MB3237:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM6PR0302MB3237FE6BA9DCA13B42A6D89CE79F9@AM6PR0302MB3237.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 krlwj6F2QisSvvaKT3+DlYOEaxH5KoYOE7LSo173abrXBWdUJlj1GDNlq62eg8BqaSJnUdZiAMR+ojFrhOI+XU8eUhrw1ju8inLayt1iKys4W3TatD73HwOoGLrfYp6LPfdZLrGmNoFN7xTK/Q86i/xIgvtBlOfyLJtFIG7ELtFzasq54JGu4vJsYbNwVso/C07T5Bt2plrs8iW1U8Js0OF0Dqe2+CMWV+GOjoE7HnAlZ30f/MqlUKSnSLftqTa/UW84ilcpAzUwci8ZQBRuKuBJaaVELNYYNT4qeKgbhbTeTqyM69o68q4UY14+F9SoR0v7BhHCQO59cETdQnwPHZ4zkMc8hW3mrEfqaZZhJkNinZPzxqmVr4Xfbx2zSagxZrGu2uRQ3kCkI8CneEoQdN1fGs/6vNAmxn1OelkWEd6pGELy6ZcraL/MvmWYAaBCUJ1OMwuKDqYyQUIq1h7aS50yeUkMT6oG6QGgMJ3ss+RvgFnewuYxZBTbB/Gh6Td4cDUn4/bspiF0MaSp7c0CQEwf0nkoe20g23HkwzOir8GljtWv6zgBL06lCSRFMsTVZ+dPOuOPP3E50xMg+ZRtebo2VxbhRHgXCjwAhRC16X0MBU/CPhvVBr+fkEpdrvf4uvW7xWN8sF6HemxwnzIO0OVMnQE/JHhkOxftiWEKdjUlwtUgyuoGR4cZHdAOmtB1feErlm0ybwWEzsD158818D/yZzpJ8dZwsrOPfwyUrGcilvDP4q2czJP77g8G2tQ9
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR03MB6325.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(122000001)(2616005)(4326008)(6486002)(54906003)(7416002)(316002)(107886003)(38100700002)(71200400001)(31696002)(6506007)(53546011)(508600001)(2906002)(5660300002)(83380400001)(38070700005)(66476007)(66446008)(31686004)(8676002)(66946007)(26005)(8936002)(6916009)(36756003)(6512007)(66556008)(64756008)(186003)(76116006)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?czlCWkdGVThwRWdFM2c5YmZpamovVENFVktHbXMwQXgrZGZsMmV1SVFIbEFS?=
 =?utf-8?B?RjhBdUJlUW1yTjNCYVVlMmNPOGxKL2dQMlJuNTIzMW1CY2JMMlhLOE92NG00?=
 =?utf-8?B?a3BCSkZueHF6ZGhIR3BpVkJqYWN3empRMU5XTXh0RXFBUThTUjR4Uk5zSTli?=
 =?utf-8?B?bHVZQ0R5SG92aUMyeEo2dHZmaWxsMGkzUWQxU0hneDZNSjVCZ1kwYTNuVGMw?=
 =?utf-8?B?MHp2cHJnM1FidXFtNml4anZ3bFlyQ3VKTGFqNCt2dGNWOWhzZU8zZlZVSyts?=
 =?utf-8?B?SXJ2TDBMVEJ6OWR1MitoUGNHUnNGRkoyTDZadmhLMXcvc3AxR0oxQVZpTlBr?=
 =?utf-8?B?aktDazhUZ0d2Z2xoTXlaSkF3Y3BoYzZNbnAzaTFoS1V3Qmk1TGgwb0tBOGpV?=
 =?utf-8?B?NW10VnFJY1Q5OC9oZCtPblEraFZtbDJYTTBBeWNxcU9TaUtSaCtUZi8zWGdS?=
 =?utf-8?B?N3NaRUpLNzliL1hxMDE0OUNwQ0Jic1pDRTBMcFpPUmtrb2dNaHJtZGhmZkc3?=
 =?utf-8?B?SlVicFU2c3JkL2svbUFxV080QzIveHJKTzVFWjFRWW8zVjdmQXg0d3FORGFI?=
 =?utf-8?B?aTBOL2hFMzlFQm1RelpkQUh1L2ZZQzQvSnZXUUNLMnNQU25iUU9Bakl1QlVz?=
 =?utf-8?B?cnhyOXNES0U1RWZDc0RMTkY0N3p3bVdpOFR4cUZRRFFBL0t0UHFuWE5YRGR3?=
 =?utf-8?B?OHJ1SHhhOVZKc1VDa3g3SEZvWmF6Yk9DN29PMUYwcFE3Uk1sZVYxWGtsRmZZ?=
 =?utf-8?B?dXFVYk9GZWRBeGJSaDQ0MWFCbmdJMFBVRElvazZ2cVVWQzNWbEhNb1oxTG5W?=
 =?utf-8?B?dXdhaGdkUElOYU8xcWRYSUVieTdSQ1ByKzd6eHNqVTBpR0VqY2pEMDFxZ1FI?=
 =?utf-8?B?cGJDckVQcERtMmFDTW42QU5YMUpDOVJCQW5NdXFXT2RWUXpqTU92blN0aHZ2?=
 =?utf-8?B?djIzdkhBOURxZk5Kb2xNNEc5b0ZBMTlkWityemhoVzRrS1loZXVOQ3V4dGJO?=
 =?utf-8?B?VnBBY2NHTTd0QzROU2pOSjJSa1JBS3FsVDU0eWp2UlJBMmdHeGNVWEZkMk9D?=
 =?utf-8?B?RXJDVWhobnRmY1lpTnM4UUFVdGw2TEZudFcvVmlSeFhUT1BDK1JWcW5ERDZX?=
 =?utf-8?B?QmpOb2s3anByTFcvMVZESzlHQlZOd2UyUzk4V1lkNG9xL0JsbkhWV0llNy91?=
 =?utf-8?B?dE1kVExQbzRsWlNxVnM1bWtGWm1TM3pSRWFZaFJvUW9FK2QweEo1a0RVQy90?=
 =?utf-8?B?dE5CS25vM2E4UWVMcWlkdW8rS3F4czZoU1pPWGczUFlpdFBaNE8ya29PbWF0?=
 =?utf-8?B?RXVMZVd2azZ6b3VDcmZPMko2d01mYktXMGhtTzZBSlF4R3JCWktBNnIzdWRq?=
 =?utf-8?B?R3hQUitFUDIrRlNBVFo3cjdPUTNkUUViT0dac0hPU3I4SzhtaklLMUkxZTVk?=
 =?utf-8?B?Z0d0UnNDRDdjMEhCN3ZyMUdPd1o2ekNNaE5uelRkK2NDRmpGNXlGZk9QbmVj?=
 =?utf-8?B?V1B6YitoRGVpTlpRRVk2UDRWUWpGYkY5ekY5RXBxYXF1eFdaKzFPMWlzN3gv?=
 =?utf-8?B?L1BTOElMTHd5K2xmYUxlUGx4eVk4YXRUcFRGMjhnRWxLUHlneXVpbzdhKzJO?=
 =?utf-8?B?RlVnQk1Eb0ZEeTlMWmgyelFBZTBFMEF3c0NrbC95cTByZytDcHZuYzd3ZU1v?=
 =?utf-8?B?Rm5SNzRQZ3RUTy9IQnpXMkgxdFk2RmVyazJCNFZERDU2UnVaUkI1eHlUUE1T?=
 =?utf-8?B?K1RleW15SVNlQ283MGZaVzk5akdKamx6MU1IZlowWC91Y0Vhc0JjVVo3VXdn?=
 =?utf-8?B?Q0dIR0JMdi8vbUlidXdOYTRySDBtNDlNZFFVcFdKbjNCWFBrSG1raWU1VVN0?=
 =?utf-8?B?RTB5YjdWeTRLWmtWZ0svUGdBMHRBVmEvanBoamhnL3hhTktpbmRiOVIwWTgz?=
 =?utf-8?B?UmUyS0t4RFR5QnBSOFd2M2VpcjRZbTVxUDFWMzhlWEhBdWdIYXBLWFYvZjg1?=
 =?utf-8?B?ZEdGeTlxQkNXYTh6TEQ4TnZEbEJ2OXp4SnRBejllLzNxN0RMMjVTVmc1dlkz?=
 =?utf-8?B?QlE4R3VDc2FyMGNNaG56OU55TW1TRGo3TExhN2s0UTlRb09rWVhtOTFVZk1i?=
 =?utf-8?B?cmxjUkRZQ1ZYYi9hL0ZZR0pCa0N2YjVFb3NCTVM4TnRRTGtwdCsvZ280Ykxu?=
 =?utf-8?B?c0tKeG1XeGhiUCs3aXFWa1A2SWVkMDdiZ2cwSnFSRWhQeklHVU5Oczdyei83?=
 =?utf-8?B?Q1RvV1JVcWs3VFRxbXhGQW5qMU9DaWwycjREaFNuOFE1S2haQWNvL2YzUGo0?=
 =?utf-8?B?Q2hFV2RyelJTYlZQS2hkdmpQK0FoVklTbmRnOVg4K0l0QWxiTDhQZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A6F340F9EAB94D49BCE5BE33AEEC494F@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6325.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ec1cba95-7650-41b6-6945-08d9adc6b92d
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 14:45:26.9515
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: BRGZCXUV3lmbI2A9lngCMfc0l35B1VO+qvwHDVxdOkrGaW6sJlMx1JxJYaQ5aUmhqxBIxct5TsARlGCrFabH5Vdb7tsURxmQdfEk4LZk3T/dHn3JcahxQWQWMVQkyMkY
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR0302MB3237
X-Proofpoint-ORIG-GUID: _avlJeffkAWXZ3NsRin8pqvSRMyo27ZB
X-Proofpoint-GUID: _avlJeffkAWXZ3NsRin8pqvSRMyo27ZB
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_07,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0
 mlxlogscore=999 clxscore=1015 lowpriorityscore=0 mlxscore=0 suspectscore=0
 spamscore=0 phishscore=0 priorityscore=1501 adultscore=0 impostorscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111220078

DQoNCk9uIDIyLjExLjIxIDE2OjM3LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjIuMTEuMjAy
MSAxNToyMSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBPbiAxOS4xMS4yMSAx
NTozNCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4gT24gMTkuMTEuMjEgMTU6
MjUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+PiBPbiAxOS4xMS4yMDIxIDE0OjE2LCBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+IE9uIDE5LjExLjIxIDE1OjAwLCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4+PiBPbiAxOS4xMS4yMDIxIDEzOjM0LCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+Pj4+Pj4gUG9zc2libGUgbG9ja2luZyBhbmQgb3RoZXIgd29yayBu
ZWVkZWQ6DQo+Pj4+Pj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
Pj4+Pj4+Pg0KPj4+Pj4+PiAxLiBwY2lkZXZzX3tsb2NrfHVubG9ja30gaXMgdG9vIGhlYXZ5IGFu
ZCBpcyBwZXItaG9zdA0KPj4+Pj4+PiAyLiBwZGV2LT52cGNpLT5sb2NrIGNhbm5vdCBiZSB1c2Vk
IGFzIHZwY2kgaXMgZnJlZWQgYnkgdnBjaV9yZW1vdmVfZGV2aWNlDQo+Pj4+Pj4+IDMuIFdlIG1h
eSB3YW50IGEgZGVkaWNhdGVkIHBlci1kb21haW4gcncgbG9jayB0byBiZSBpbXBsZW1lbnRlZDoN
Cj4+Pj4+Pj4NCj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIv
eGVuL2luY2x1ZGUveGVuL3NjaGVkLmgNCj4+Pj4+Pj4gaW5kZXggMjgxNDZlZTQwNGU2Li5lYmYw
NzE4OTNiMjEgMTAwNjQ0DQo+Pj4+Pj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oDQo+
Pj4+Pj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oDQo+Pj4+Pj4+IEBAIC00NDQsNiAr
NDQ0LDcgQEAgc3RydWN0IGRvbWFpbg0KPj4+Pj4+Pg0KPj4+Pj4+PiAgICAgIMKgI2lmZGVmIENP
TkZJR19IQVNfUENJDQo+Pj4+Pj4+ICAgICAgwqDCoMKgwqAgc3RydWN0IGxpc3RfaGVhZCBwZGV2
X2xpc3Q7DQo+Pj4+Pj4+ICvCoMKgwqAgcndsb2NrX3QgdnBjaV9yd2xvY2s7DQo+Pj4+Pj4+ICvC
oMKgwqAgYm9vbCB2cGNpX3Rlcm1pbmF0aW5nOyA8LSBhdG9taWM/DQo+Pj4+Pj4+ICAgICAgwqAj
ZW5kaWYNCj4+Pj4+Pj4gdGhlbiB2cGNpX3JlbW92ZV9kZXZpY2UgaXMgYSB3cml0ZXIgKGNvbGQg
cGF0aCkgYW5kIHZwY2lfcHJvY2Vzc19wZW5kaW5nIGFuZA0KPj4+Pj4+PiB2cGNpX21taW9fe3Jl
YWR8d3JpdGV9IGFyZSByZWFkZXJzIChob3QgcGF0aCkuDQo+Pj4+Pj4gUmlnaHQgLSB5b3UgbmVl
ZCBzdWNoIGEgbG9jayBmb3Igb3RoZXIgcHVycG9zZXMgYW55d2F5LCBhcyBwZXIgdGhlDQo+Pj4+
Pj4gZGlzY3Vzc2lvbiB3aXRoIEp1bGllbi4NCj4+Pj4+IFdoYXQgYWJvdXQgYm9vbCB2cGNpX3Rl
cm1pbmF0aW5nPyBEbyB5b3Ugc2VlIGl0IGFzIGFuIGF0b21pYyB0eXBlIG9yIGp1c3QgYm9vbD8N
Cj4+Pj4gSGF2aW5nIHNlZW4gb25seSAuLi4NCj4+Pj4NCj4+Pj4+Pj4gZG9fcGh5c2Rldl9vcChQ
SFlTREVWT1BfcGNpX2RldmljZV9yZW1vdmUpIHdpbGwgbmVlZCBoeXBlcmNhbGxfY3JlYXRlX2Nv
bnRpbnVhdGlvbg0KPj4+Pj4+PiB0byBiZSBpbXBsZW1lbnRlZCwgc28gd2hlbiByZS1zdGFydCBy
ZW1vdmFsIGlmIG5lZWQgYmU6DQo+Pj4+Pj4+DQo+Pj4+Pj4+IHZwY2lfcmVtb3ZlX2RldmljZSgp
DQo+Pj4+Pj4+IHsNCj4+Pj4+Pj4gICAgICDCoCBkLT52cGNpX3Rlcm1pbmF0aW5nID0gdHJ1ZTsN
Cj4+Pj4gLi4uIHRoaXMgdXNlIHNvIGZhciwgSSBjYW4ndCB0ZWxsIHlldC4gQnV0IGF0IGEgZmly
c3QgZ2xhbmNlIGEgYm9vbGVhbg0KPj4+PiBsb29rcyB0byBiZSB3aGF0IHlvdSBuZWVkLg0KPj4+
Pg0KPj4+Pj4+PiAgICAgIMKgIHJlbW92ZSB2UENJIHJlZ2lzdGVyIGhhbmRsZXJzIDwtIHRoaXMg
d2lsbCBjdXQgb2ZmIFBDSV9DT01NQU5EIGVtdWxhdGlvbiBhbW9uZyBvdGhlcnMNCj4+Pj4+Pj4g
ICAgICDCoCBpZiAoICF3cml0ZV90cnlsb2NrKGQtPnZwY2lfcndsb2NrKSApDQo+Pj4+Pj4+ICAg
ICAgwqDCoMKgIHJldHVybiAtRVJFU1RBUlQ7DQo+Pj4+Pj4+ICAgICAgwqAgeGZyZWUocGRldi0+
dnBjaSk7DQo+Pj4+Pj4+ICAgICAgwqAgcGRldi0+dnBjaSA9IE5VTEw7DQo+Pj4+Pj4+IH0NCj4+
Pj4+Pj4NCj4+Pj4+Pj4gVGhlbiB0aGlzIGQtPnZwY2lfcndsb2NrIGJlY29tZXMgYSBkZWRpY2F0
ZWQgdnBjaSBwZXItZG9tYWluIGxvY2sgZm9yDQo+Pj4+Pj4+IG90aGVyIG9wZXJhdGlvbnMgd2hp
Y2ggbWF5IHJlcXVpcmUgaXQsIGUuZy4gdmlydHVhbCBidXMgdG9wb2xvZ3kgY2FuDQo+Pj4+Pj4+
IHVzZSBpdCB3aGVuIGFzc2lnbmluZyB2U0JERiBldGMuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IDQuIHZw
Y2lfcmVtb3ZlX2RldmljZSBuZWVkcyB0byBiZSByZW1vdmVkIGZyb20gdnBjaV9wcm9jZXNzX3Bl
bmRpbmcNCj4+Pj4+Pj4gYW5kIGRvIG5vdGhpbmcgZm9yIERvbTAgYW5kIGNyYXNoIERvbVUgb3Ro
ZXJ3aXNlOg0KPj4+Pj4+IFdoeSBpcyB0aGlzPyBJJ20gbm90IG91dHJpZ2h0IG9wcG9zZWQsIGJ1
dCBJIGRvbid0IGltbWVkaWF0ZWx5IHNlZSB3aHkNCj4+Pj4+PiB0cnlpbmcgdG8gcmVtb3ZlIHRo
ZSBwcm9ibGVtYXRpYyBkZXZpY2Ugd291bGRuJ3QgYmUgYSByZWFzb25hYmxlIGNvdXJzZQ0KPj4+
Pj4+IG9mIGFjdGlvbiBhbnltb3JlLiB2cGNpX3JlbW92ZV9kZXZpY2UoKSBtYXkgbmVlZCB0byBi
ZWNvbWUgbW9yZSBjYXJlZnVsDQo+Pj4+Pj4gYXMgdG8gbm90IGNyYXNoaW5nLA0KPj4+Pj4gdnBj
aV9yZW1vdmVfZGV2aWNlIGRvZXMgbm90IGNyYXNoLCB2cGNpX3Byb2Nlc3NfcGVuZGluZyBkb2Vz
DQo+Pj4+Pj4gICAgICB0aG91Z2guDQo+Pj4+PiBBc3N1bWUgd2UgYXJlIGluIGFuIGVycm9yIHN0
YXRlIGluIHZwY2lfcHJvY2Vzc19wZW5kaW5nICpvbiBvbmUgb2YgdGhlIHZDUFVzKg0KPj4+Pj4g
YW5kIHdlIGNhbGwgdnBjaV9yZW1vdmVfZGV2aWNlLiB2cGNpX3JlbW92ZV9kZXZpY2UgdHJpZXMg
dG8gYWNxdWlyZSB0aGUNCj4+Pj4+IGxvY2sgYW5kIGl0IGNhbid0IGp1c3QgYmVjYXVzZSB0aGVy
ZSBhcmUgc29tZSBvdGhlciB2cGNpIGNvZGUgaXMgcnVubmluZyBvbiBvdGhlciB2Q1BVLg0KPj4+
Pj4gVGhlbiB3aGF0IGRvIHdlIGRvIGhlcmU/IFdlIGFyZSBpbiBTb2Z0SVJRIGNvbnRleHQgbm93
IGFuZCB3ZSBjYW4ndCBzcGluDQo+Pj4+PiB0cnlpbmcgdG8gYWNxdWlyZSBkLT52cGNpX3J3bG9j
ayBmb3JldmVyLiBOZWl0aGVyIHdlIGNhbiBibGluZGx5IGZyZWUgdnBjaQ0KPj4+Pj4gc3RydWN0
dXJlIGJlY2F1c2UgaXQgaXMgc2VlbiBieSBhbGwgdkNQVXMgYW5kIG1heSBjcmFzaCB0aGVtLg0K
Pj4+Pj4NCj4+Pj4+IElmIHZwY2lfcmVtb3ZlX2RldmljZSBpcyBpbiBoeXBlcmNhbGwgY29udGV4
dCBpdCBqdXN0IHJldHVybnMgLUVSRVNUQVJUIGFuZA0KPj4+Pj4gaHlwZXJjYWxsIGNvbnRpbnVh
dGlvbiBoZWxwcyBoZXJlLiBCdXQgbm90IGluIFNvZnRJUlEgY29udGV4dC4NCj4+Pj4gTWF5YmUg
dGhlbiB5b3Ugd2FudCB0byBpbnZva2UgdGhpcyBjbGVhbnVwIGZyb20gUkNVIGNvbnRleHQgKHdo
ZXRoZXINCj4+Pj4gdnBjaV9yZW1vdmVfZGV2aWNlKCkgaXRzZWxmIG9yIGEgc3VpdGFibGUgY2xv
bmUgdGhlcmUgb2YgaXMgVEJEKT8gKEkNCj4+Pj4gd2lsbCBhZG1pdCB0aG91Z2ggdGhhdCBJIGRp
ZG4ndCBjaGVjayB3aGV0aGVyIHRoYXQgd291bGQgc2F0aXNmeSBhbGwNCj4+Pj4gY29uc3RyYWlu
dHMuKQ0KPj4+Pg0KPj4+PiBUaGVuIGFnYWluIGl0IGFsc28gaGFzbid0IGJlY29tZSBjbGVhciB0
byBtZSB3aHkgeW91IHVzZSB3cml0ZV90cnlsb2NrKCkNCj4+Pj4gdGhlcmUuIFRoZSBsb2NrIGNv
bnRlbnRpb24geW91IGRlc2NyaWJlIGRvZXNuJ3QsIG9uIHRoZSBzdXJmYWNlLCBsb29rDQo+Pj4+
IGFueSBkaWZmZXJlbnQgZnJvbSBzaXR1YXRpb25zIGVsc2V3aGVyZS4NCj4+PiBJIHVzZSB3cml0
ZV90cnlsb2NrIGluIHZwY2lfcmVtb3ZlX2RldmljZSBiZWNhdXNlIGlmIHdlIGNhbid0DQo+Pj4g
YWNxdWlyZSB0aGUgbG9jayB0aGVuIHdlIGRlZmVyIGRldmljZSByZW1vdmFsLiBUaGlzIHdvdWxk
IHdvcmsNCj4+PiB3ZWxsIGlmIGNhbGxlZCBmcm9tIGEgaHlwZXJjYWxsIHdoaWNoIHdpbGwgZW1w
bG95IGh5cGVyY2FsbCBjb250aW51YXRpb24uDQo+Pj4gQnV0IFNvZnRJUlEgZ2V0dGluZyAtRVJF
U1RBUlQgaXMgc29tZXRoaW5nIHRoYXQgd2UgY2FuJ3QgcHJvYmFibHkNCj4+PiBoYW5kbGUgYnkg
cmVzdGFydGluZyBhcyBoeXBlcmNhbGwgY2FuLCB0aHVzIEkgb25seSBzZWUgdGhhdCB2cGNpX3By
b2Nlc3NfcGVuZGluZw0KPj4+IHdpbGwgbmVlZCB0byBzcGluIGFuZCB3YWl0IHVudGlsIHZwY2lf
cmVtb3ZlX2RldmljZSBzdWNjZWVkcy4NCj4+IERvZXMgYW55Ym9keSBoYXZlIGFueSBiZXR0ZXIg
c29sdXRpb24gZm9yIHByZXZlbnRpbmcgU29mdElSUSBmcm9tDQo+PiBzcGlubmluZyBvbiB2cGNp
X3JlbW92ZV9kZXZpY2UgYW5kIC1FUkVTVEFSVD8NCj4gV2VsbCwgYXQgdGhpcyBwb2ludCBJIGNh
biBzdWdnZXN0IG9ubHkgYSBtYXJnaW5hbCBpbXByb3ZlbWVudDogSW5zdGVhZCBvZg0KPiBzcGlu
bmluZyBpbnNpZGUgdGhlIHNvZnRpcnEgaGFuZGxlciwgeW91IHdhbnQgdG8gcmUtcmFpc2UgdGhl
IHNvZnRpcnEgYW5kDQo+IGV4aXQgdGhlIGhhbmRsZXIuIFRoYXQgd2F5IGF0IGxlYXN0IGhpZ2hl
ciAicHJpb3JpdHkiIHNvZnRpcnFzIHdvbid0IGJlDQo+IHN0YXJ2ZWQuDQo+DQo+IEJleW9uZCB0
aGF0IC0gbWF5YmUgdGhlIGd1ZXN0IChvciBqdXN0IGEgdmNwdSBvZiBpdCkgbmVlZHMgcGF1c2lu
ZyBpbiBzdWNoDQo+IGFuIGV2ZW50LCB3aXRoIHRoZSB3b3JrIGRlZmVycmVkIHRvIGEgdGFza2xl
dD8NCj4NCj4gWWV0IEkgZG9uJ3QgdGhpbmsgbXkgZWFybGllciBxdWVzdGlvbiByZWdhcmRpbmcg
dGhlIHVzZSBvZiB3cml0ZV90cnlsb2NrKCkNCj4gd2FzIHJlYWxseSBhbnN3ZXJlZC4gV2hhdCB5
b3Ugc2FpZCBpbiByZXBseSBkb2Vzbid0IGV4cGxhaW4gKHRvIG1lIGF0DQo+IGxlYXN0KSB3aHkg
d3JpdGVfbG9jaygpIGlzIG5vdCBhbiBvcHRpb24uDQpJIHdhcyB0aGlua2luZyB0aGF0IHdlIGRv
IG5vdCB3YW50IHRvIGZyZWV6ZSBpbiBjYXNlIHdlIGFyZSBjYWxsaW5nIHZwY2lfcmVtb3ZlX2Rl
dmljZQ0KZnJvbSBTb2Z0SVJRIGNvbnRleHQsIHRodXMgd2UgdHJ5IHRvIGxvY2sgYW5kIGlmIHdl
IGNhbid0IHdlIHJldHVybiAtRVJFU1RBUlQNCmluZGljYXRpbmcgdGhhdCB0aGUgcmVtb3ZhbCBu
ZWVkcyB0byBiZSBkZWZlcnJlZC4gSWYgd2UgdXNlIHdyaXRlX2xvY2ssIHRoZW4NClNvZnRJUlEg
LT4gd3JpdGVfbG9jayB3aWxsIHNwaW4gdGhlcmUgd2FpdGluZyBmb3IgcmVhZGVycyB0byByZWxl
YXNlIHRoZSBsb2NrLg0KDQp3cml0ZV9sb2NrIGFjdHVhbGx5IG1ha2VzIHRoaW5ncyBhIGxvdCBl
YXNpZXIsIGJ1dCBJIGp1c3QgZG9uJ3Qga25vdyBpZiBpdA0KaXMgb2sgdG8gdXNlIGl0LiBJZiBz
bywgdGhlbiB2cGNpX3JlbW92ZV9kZXZpY2UgYmVjb21lcyBzeW5jaHJvbm91cyBhbmQNCnRoZXJl
IGlzIG5vIG5lZWQgaW4gaHlwZXJjYWxsIGNvbnRpbnVhdGlvbiBhbmQgb3RoZXIgaGVhdnkgbWFj
aGluZXJ5IGZvcg0KcmUtc2NoZWR1bGluZyBTb2Z0SVJRLi4uDQo+DQo+IEphbg0KPg0KVGhhbmsg
eW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:52:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:52:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228944.396213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAfm-0002Mf-WB; Mon, 22 Nov 2021 14:51:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228944.396213; Mon, 22 Nov 2021 14:51:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAfm-0002MY-T1; Mon, 22 Nov 2021 14:51:58 +0000
Received: by outflank-mailman (input) for mailman id 228944;
 Mon, 22 Nov 2021 14:51:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpAfl-0002MS-Hh
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:51:57 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bcde5124-4ba3-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 15:51:56 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2054.outbound.protection.outlook.com [104.47.0.54]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-19-p3O98vGKNW67PnUl-kvsWQ-1; Mon, 22 Nov 2021 15:51:55 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 14:51:53 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 14:51:53 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM8P191CA0016.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:21a::21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 14:51:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bcde5124-4ba3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637592716;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=VvEBhX5Y3HrBVugXQGcDQBrlex1IztOLf8VMF7bEo7w=;
	b=WrhZVzu/pKw/+zhwNg9MOg+NPXURh6SDGCVJ7wuzbT8nmoP8xQukEQ5R/z8YUKWwMn8BQ+
	H8exWm5nw7h2UN/9ODCLYaNPxSK2tc3BRIYd7VkQ6UEWI6MNAmeCcsFAmFvrEx7+R+lBpz
	vEYadzwYAYltvkKckgynW9vL14a+C+4=
X-MC-Unique: p3O98vGKNW67PnUl-kvsWQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YBDCSfdN3rRLk4Kihh+hMNUr+mlBustG0xiepDmbxnm+X7qchZnXaQqKW6mu3+Cy33L0o8xhSL62xk+V8Mm5qk0hyn3N3Go8YTowkI5WJyMNVSgAFZF/mAF3XxO++5klhPEnuTxhySwIm2vFfixgR3M2F4MeRpck70WyoyQyh7Zw4DDEwBL/mz3MXYZ7r1vbeARnsVoV4wxCYfPy6eb+NbhHjKTC+XvEWP7waE8LN/tF9Ag6bggX+b71EyXDWiNof1Fh9lfANyWZVqS6e9HK+YWxhXjN5gK1TMDSs1JiUqE/2sciDkHfyNortkSQwuL4p3X1hzwmw7TmP/8GhD6zcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xGEHzUyV9JyjwR6seaW3DR+9EKwH/I3dj3JRg7ulIEo=;
 b=ehcMhXvDG1d3nWKH0bcIOLNnGg8pXABTGQtayj7r0pK+hM01VH94VJF++DEtPwCuIvSYpLf/76dt0KkzO7cKoxrKFjI61sFE+DpSbPQ3m4up7QwA5lGf6di2CYxR+B6234ibAv593vxBHquxGBcfUpMmKQL1QvJc2Av3LtZizFnuRKp4rXKVpVbP9kmDd7nPxs9c/ZSvCUIYLefW/LEqH68nl59JohuKQrUZlg/D29CAGLbHb93HqUHhuj8Kn17wSi8qw93nNO3cDy5YRWRMdI/XFknVNEcxsh6Am81fHYBoOTtlrWwq1JO3csCNBYzuGrT1R1sEmOwgpRF8Yb4nVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <84d05063-851b-5f80-e334-47c96087fa81@suse.com>
Date: Mon, 22 Nov 2021 15:51:51 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 3/5] x86/crash: Drop manual hooking of exception_table[]
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-4-andrew.cooper3@citrix.com>
 <4cff0241-ee75-59f5-49ff-cd29964efcbe@suse.com>
 <ecb4b299-5445-f3e7-5175-9422433061c0@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <ecb4b299-5445-f3e7-5175-9422433061c0@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM8P191CA0016.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:20b:21a::21) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8a1618bf-9cf5-47fe-5da2-08d9adc79f44
X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB70371D8E8AA649A18CA772F7B39F9@VI1PR04MB7037.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3383;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	LgDvLcfVpqWCj43OqvNizxDTN5szYIQPQUecXoqp5ydNKxHZkMAOo24EN1gfEJv28W87i9u45MqbWEWQlci99tr26o0KaYdu1F13xLd245OVsKI+bXXJj4JDWpsE7RwuotfNr2X/LEhMnh7KdURKHynFEs5B/Q8xglgWiKuESWNipVSf2LL+HElotyDl/GMfyafXTxznkx71jICmrkmI+h7CMyHXIBG/rL66qwa9JEtmoi2oLIHzWjs8Q6jtDqsAMBTWUErsBs2foyNjgzU7jjqRWmERPDc7AhfHFoO5+Yk6geAXSlpclAxB+F8VkH3riQaDf41wMnasU0h6/VhZrt7k8cP+gPQBfXqDb+9DFRlvjedE28vHCixDdtjMegw0Bsff9bojNq7Rjp7JpOSPXtI2cJjNUzoaCsBLQOoF6HS6uwY6IMcSkqpYWDNlGwJ3hW/TuEHpYGfxo38MAHpKPX3AqaOuVzo85LJnSu+7IRSpw1p/xz+4cR1aVhuRM1wUwcyL3pSBQq2dLcpnhfM2z476LIhJWGH1zlbPn7fXUj6/EioOAmcv8cHB9O7uODuyVNVmxv0A0gEWQN/72hTL6bdgSZrHEutoFQiF3qugR3D0EMaMouo32puxXnnPgEJte4XvAU1o5Wqx2ytL0nW2+c6fHED6D/vWvhUov9eQ7rDCp4AeuDUq+Yn4TqB60nAo1EA2GCIGps1wTCRZKnCzcBK8VNaQucZb9joGfuhFcyF+NnTFaWNU12ymnMuWx7tqJ8LLI2m3s8WUpZESnYdHxtweZ3hPiBrIZ3LM3Fnz/6L9z+FZVLi2XxJvw97pRm94
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(31686004)(8676002)(8936002)(186003)(66476007)(2906002)(53546011)(6486002)(508600001)(316002)(110136005)(54906003)(36756003)(31696002)(4326008)(966005)(86362001)(38100700002)(66946007)(5660300002)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xYO0H8EnRJZ55mov+gsjNgUaAKwu/zWuhkTnqkn0EjB+ukebmdjphELrPOPo?=
 =?us-ascii?Q?3TWc6ngu1lq8AvOhHtC7mUFna1ZZXx8PzNHLcCWNSRvC63wY1sIXhmv1f/xd?=
 =?us-ascii?Q?xjk0nRk1zSnVKojCzuoVzfBCcYb9gIuA2A3/b0RllDm8St4t6jlJ9HJf0nrx?=
 =?us-ascii?Q?E1XW8yp7qlPIp7EwDjUAqzyNeZoQUsoa7oxT2NGgD3EtXXk3nhl9yQhX2Su1?=
 =?us-ascii?Q?mHzhfkeZT6SWEDcQh3AZEOD2n1E/wxI+gG6U0w6HhBiJXjPOJOktTufTTzWj?=
 =?us-ascii?Q?rEF/Tu9YVvYNoTluYGEFu3k5cEWNGIWcEPCBRBnqXD/wt2zte4y0eyxTeLrV?=
 =?us-ascii?Q?eHgUakyqcvTarzDFwRe27HI2Aaa8ej8ip11iouz5kvNaG2X4DECEsu8BWTaI?=
 =?us-ascii?Q?ho3ntjW2xjJsBLvGKqlEb3tfLl3Z17dwJAIEPFasslebnxw0yRetOdB4T/Ys?=
 =?us-ascii?Q?0p/z7AsxlHXUZ9+FBJzHEZt08ksKVE5obPl4wBcmLTfRF/VEPPXIbirToGWx?=
 =?us-ascii?Q?CHHFWhOUOazRjA1WdCfMUNW/mjzC+nirLA3cs5XlzrymxSIwE7JYmqQBkECL?=
 =?us-ascii?Q?vEGVGUlwKLb2l4k+ZFneNiXOT0CCuxarqm2EcKwXbwBJUJZU3z/N7vVMNWAJ?=
 =?us-ascii?Q?oBQTt2abuPwCEflrNp6RK5OxGWQaDWtTMZnSoeoSMUMtqddk3B9bLSGYDSCk?=
 =?us-ascii?Q?py80xo3xdSb7qn4Ti20pJ/b2tiK2ey0PUJf8wjuXqmsLHE9fCpPsTmZU/ddK?=
 =?us-ascii?Q?cf5x7my1BaRd4Qksef8Ekr3YbGHTm/Op4owZYT7dLjFsHKAdP5vl5GsEiBEU?=
 =?us-ascii?Q?vlRr2XAaY3owrFHK/9x6OipSbSjOdAltPXnP5MdihN+EgUY5W14gHJkxdefX?=
 =?us-ascii?Q?SSAurAhzgGedfdfRu37KH9ZLpswW9AXM/UEXAkZ+hkU3+gI1/YBr109oTHda?=
 =?us-ascii?Q?0i/VAqfVWuTIRdw2BLJDDM77xUwX5Y+5ZtdxjW7qSyOViEFuW/ZZgvhLF8L1?=
 =?us-ascii?Q?YbjutSVqDh+1rHYiyI6/pjKglbLvtnfIeu0cogLDmDrTHuIV6rjnvKKAyikn?=
 =?us-ascii?Q?eVMKo7KdFB5sPGUDIak2vEJSmS4bECNmt57f8hM4ZuxwarRlVaHgSHIHD34W?=
 =?us-ascii?Q?OQ7MW077ZFS0TeO8fcir3Vr6uihFJLpqvNdHEf2f7uKHYsD4Tb7ZV2tzTLak?=
 =?us-ascii?Q?SeY5nJ1YmkmVRdWqkzRTvHoV2pRCxqpeKeIXsah5sR2DMhzvC2ljWYIrtLhx?=
 =?us-ascii?Q?ynIiP+Tj1pz9aB2bEI/UTQsLFW2Qg9boWTZk4VsMMsPNDYGTn4r2MFWLM5ne?=
 =?us-ascii?Q?z44v3IX3yBefMm+Y4KxXWynnBOwlhSlfgo0TMeydEsG59sl5iMt/pl9LEO2S?=
 =?us-ascii?Q?No3cGeoT1kMmF9DiO7cHwWAnuesnBGrgSMXf1dZZplj4lpxZgku+TKT7Aw5H?=
 =?us-ascii?Q?Cw/wsJXjeESIEF93THkpTgMN0JoaD4WIDOq5pyEpwqosvBm59nYdnIiioUF8?=
 =?us-ascii?Q?myEGOjbFwuwby76cIe2ty2dm/GoKHI49XbHeZVJPBwd9QPt20jp9Cke3KhBF?=
 =?us-ascii?Q?iLwgc09qfspWgvWMT6VjZNqbTAYE2+10kg8MjwVNU1MCLRzB/KmtDbVO4Yr6?=
 =?us-ascii?Q?1OXK6JGBzTtMcObOWJA6+ZUHVaDV/TcWrlo+PkqqvXIDmHeLIiydj5OPXi8B?=
 =?us-ascii?Q?vi5LIUEw6LvYI51BO1lYhymJ/X8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a1618bf-9cf5-47fe-5da2-08d9adc79f44
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 14:51:53.3229
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: EUdb7qLVKWTJke0ALIsQJ6UsP1K3GjntSktn6DRz7oW7UYU81wUWwYfzFNV4xOhgmB55LSxGLkAT7vwvsjLPhw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037

On 22.11.2021 14:48, Andrew Cooper wrote:
> On 22/11/2021 08:57, Jan Beulich wrote:
>> On 19.11.2021 19:21, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/crash.c
>>> +++ b/xen/arch/x86/crash.c
>>> @@ -36,10 +36,8 @@ static unsigned int crashing_cpu;
>>>  static DEFINE_PER_CPU_READ_MOSTLY(bool, crash_save_done);
>>> =20
>>>  /* This becomes the NMI handler for non-crashing CPUs, when Xen is cra=
shing. */
>>> -static void noreturn do_nmi_crash(const struct cpu_user_regs *regs)
>>> +static int noreturn do_nmi_crash(const struct cpu_user_regs *regs, int=
 cpu)
>>>  {
>>> -    unsigned int cpu =3D smp_processor_id();
>>> -
>>>      stac();
>>> =20
>>>      /* nmi_shootdown_cpus() should ensure that this assertion is corre=
ct. */
>> Looks like this is the first instance of a noreturn function returning n=
on-void.
>> Are you sufficiently certain that (older) compilers won't complain about=
 missing
>> return statements (with a value)?
>=20
> Yes.=C2=A0 https://godbolt.org/z/8a1efoh39

Okay, thanks. That was with -O2 only, but adding -Wall didn't surface anyth=
ing either.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:54:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:54:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228952.396224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAiR-00031u-Ha; Mon, 22 Nov 2021 14:54:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228952.396224; Mon, 22 Nov 2021 14:54:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAiR-00031n-Dz; Mon, 22 Nov 2021 14:54:43 +0000
Received: by outflank-mailman (input) for mailman id 228952;
 Mon, 22 Nov 2021 14:54:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Zq3Z=QJ=dornerworks.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1mpAiP-00031d-Pn
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:54:41 +0000
Received: from USG02-BN3-obe.outbound.protection.office365.us
 (mail-bn3usg02on0604.outbound.protection.office365.us
 [2001:489a:2202:c::604])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d92e668-4ba4-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 15:54:40 +0100 (CET)
Received: from BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:40b::16)
 by BN3P110MB0498.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:40b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 14:54:36 +0000
Received: from BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM
 ([fe80::ac43:aa11:ae5e:da54]) by BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM
 ([fe80::ac43:aa11:ae5e:da54%6]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 14:54:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d92e668-4ba4-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector5401; d=microsoft.com; cv=none;
 b=CVoz8R0cRaB/HM9zeX8vZSB1bB0LXsUrfznrpUq0yAEjFL5ZdBRVMsOISjW8dkg0d0Cm/sOAiXRdlHNPrYX+j7baohRXWeDTGl0gnUvPIPxzz3FTik3IsbPT0YdWnJqG869WeuDg0yqTuWjJyYvRXhV9OlZw0LOaLf2mjJtiYoSddYumbPkg4jBVgpcjIuwkenSkMP5XnMtGkRlJNpGw2H+maE3RAaPms5qIc+Z8v9GFaBO6FJ8VPYRdzFXMUwtmZCkufV8kY88veOZ87lc6GYEJ/rTYWm7s4CbrvN2NVk4G2kpF+zcAbvUwQs3BS+l1FOOccKT7yVKqUr5aK9EMkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector5401; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=m0npmkhjOYDnSSNQCT8/EGwu+NihJtkLjwgge6dveg4=;
 b=lV7sMy7YURLrFcsl8/0reSglWj8w6cfY9JOZJMN+SNSb9WMcJmw9o9bwcLz9fsfJRdkzKREXO4Mie68kqEJiNhs+ITmP4JthMMBn7Ss7jdFFk18emRgQtaJy+igKwFcg1HrElksdUsZ4cNiJ9t8wC7NaMO+uPkBFc3SR3YrATn+Brqm3jbto2H7mdfYcRcP1t2NcA/2X64XU0GyPNHlDmxzKlrwOoVdSl8qmvjv0z6YMc6Xqnp2GY5vxACve04HlwvMzVnypxEXdmVBqBgB51YWQCOD7Cbrl4xoK9J9Hv0ocw5lLipq/a7tsVu6MzhaIA+a7VajjXIU1J3Li5DPRHw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=dornerworks.com; dmarc=pass action=none
 header.from=dornerworks.com; dkim=pass header.d=dornerworks.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dornerworks.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m0npmkhjOYDnSSNQCT8/EGwu+NihJtkLjwgge6dveg4=;
 b=Yn+BPnkmENcn6WY2UXga63iGjygjIsxqFlEWdK05KtdJ6qz/EkNI3i5f1cMKIazL6RAi+HBoWu7ejQNe+gWIlilV/H0024S+8ICFDDvCE+T3FYj4zrBt2CxQxDwHdjd2mCMH5r+dnTTxNRmWryAlSkix7NGwWPvif8yTcqTLvbO+Dmnpf/y9c8+WrQkwUE+Tg5NgJxyV9bR9wtM6GBaaT6Cvfv2yFNdyRWqi0MJGPQSSm67qk+xP4e9mZo9IHe6I37rGubo3JkeV2GiuSmyrz2/3rrpLEj+SagOVCqkFLQwKacUpE8tnfc1G+Wn8+B6rEspUMU11ns94YTKH10+kpg==
From: Stewart Hildebrand <Stewart.Hildebrand@dornerworks.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "joshua.c.whitehead@gmail.com"
	<joshua.c.whitehead@gmail.com>
Subject: RE: [PATCH] MAINTAINERS: remove Josh from ARINC 653 maintainers
Thread-Topic: [PATCH] MAINTAINERS: remove Josh from ARINC 653 maintainers
Thread-Index: AQHX36vD17guMUdgIUiaApgKD9n8y6wPng8AgAADJpA=
Date: Mon, 22 Nov 2021 14:54:36 +0000
Message-ID:
 <BN3P110MB0484716C62279B1525F351E88C9F9@BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM>
References: <20211122141742.3075-1-stewart.hildebrand@dornerworks.com>
 <c0228394-2dfe-717d-e35e-7120621df27f@suse.com>
In-Reply-To: <c0228394-2dfe-717d-e35e-7120621df27f@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=dornerworks.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 39fdcfb8-87f4-4381-1c2d-08d9adc800a1
x-ms-traffictypediagnostic: BN3P110MB0498:
x-microsoft-antispam-prvs:
 <BN3P110MB0498E00D8678BDE29AB21AE08C9F9@BN3P110MB0498.NAMP110.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:404;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 hCAFzqU/5xX4nPG9ujyEDYS9XwFsixgY/tcFIUF2frKQWdbgPxmjZLsu5LESt9TlMasWdqws57x797I/yoIQ/kqLgpHD0/sDhzP0htt1sbB+oJfcyLsbMwJ6JtJIKz3qKfYw6SNBo1NvhhK8oNWvgnnvREx7/n3mlobcVTGnGKX1vlrpeRFm+tLGkISSW4QdMSF3k9Uoqi3DNTG0k3Dh+ep2udmML5Xvll8CyVj1Poa0HoK+A67e4zRbWvDNPoa8vXnxCPGPdahgSKDY+euE6uP1G0wZlzurEQ6JuYwBM/gu7ytRodaHggsrwt5PBhAfXKbHSb6Btb+sf1+HU2wXSJGe6H0MloIWYBKDenekNRKIGWfDGngCEnH7UBu3qS1jbhHK/x7FRdKBMTnDAIwexRwoY/Du1OUy+rW9REA4F+5pkivOmwmXzp7MzoHiwfC3eayPWSb+nEyyXd0Ejke2Ma43ZzaIfiQF1KWpxKQNXNqkju4CB8fiIjwTY/OPSG46nw3QnpoBq5fAaXk+6DYlZxJZiE0Ux4XzBpA3Hmyq/lC3gn9rhGrf2O/7b8HpwpUQ2921aM2amkmx91BKXBMkkUysIZEIfT1UbJpXv2JziFwEnTd+XCpiCSun7zOEw9zs
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(4636009)(366004)(136003)(39830400003)(346002)(376002)(396003)(66446008)(5660300002)(38100700002)(122000001)(66476007)(54906003)(316002)(66946007)(2906002)(6506007)(6916009)(9686003)(76116006)(64756008)(66556008)(71200400001)(4744005)(86362001)(52536014)(55016002)(508600001)(4326008)(8676002)(38070700005)(186003)(7696005)(8936002)(83380400001)(33656002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 F5zR0/fEDI1H8tSDhiCo/1p7w4xovw0CvVbPwlUHKJ0AZiGSFyA3j1UqLy+7CmLTzJ46MfK+gNlZDukHskB8p5SFLahqVfa3TUoZx5popeEHGZfJZmXFRL3MxFcJQlknVtoLEZRvwxp0qbFwFd6E3QXXIrlTTd4eRFjjh5KI5BNR6EDcbUiyaW/MrrjAY546OHA6p+Vpax/uMvBJOHlRjzr7Frw2NXbfV8dY9hJRvio6ERiz/OsF6dJ4o9o2TBkMdPvqzejCKdd217APnGCUCuqZwklChS0RPe1AUnryES0OMk/6t9opNVqmxqwtW0OMWjJR1qRzHHsHxvSLfZ/b7RW3gpk9Zdtzr5v+/GA7xo7pxGbA4TvTnpO10XVOI83DLm1zx2s9xyPwr3g3SF8RUSNIgE/hnURC/iNP07H52wokustF1CG44GUMBgZrSmP/vK/JFpDnVuRclYtPt9mlADGn6hxzDzEbo09x1F99cUikmHgnoaRhNjL1Urncv8UesFHsnlng/jXZb47K6mM01eHuDQm8dRrJ/4GeE7X6jJfOKoDc8lppo2DYr6vLZ/AfwzPWEAtmL8hK8/upm89PTfirHCNbjUECLgCNvj2shS2E/lu4BGZl5HA3A38e+HSKIX+h0hQ5qx1IKNyEBaOzUwAXnqKzJIcviKA9kP8YuUhf6BV3XXop8APFINcFEOlj7VmqoTEKWMKkGu57SjezTEohSGKAn+1TxOeGb+nFjzvpb2PoS1enb8YXRJ4taZinzxo1frWRyfD0lkUaH/5qGzEpn5dqcyeHz8DUttws2jE=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: dornerworks.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN3P110MB0484.NAMP110.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 39fdcfb8-87f4-4381-1c2d-08d9adc800a1
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 14:54:36.4239
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 097cf9aa-db69-4b12-aeab-ab5f513dbff9
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3P110MB0498

T24gTW9uZGF5LCBOb3ZlbWJlciAyMiwgMjAyMSA5OjM5IEFNLCBGcm9tOiBKYW4gQmV1bGljaCB3
cm90ZToNCj5PbiAyMi4xMS4yMDIxIDE1OjE3LCBTdGV3YXJ0IEhpbGRlYnJhbmQgd3JvdGU6DQo+
PiBKb3NoIHdvcmtzIGF0IGFub3RoZXIgY29tcGFueSBub3cNCj4NCj5Zb3UgZG9uJ3QgaGFwcGVu
IHRvIGtub3cgaGlzIGVtYWlsIHRoZXJlLCBkbyB5b3U/IEVsc2UgaWYgd291bGQgaGF2ZSBiZWVu
DQo+Z29vZCB0byBDYyBoaW0gc28gaGUgY291bGQgY29uZmlybS4NCj4NCj5KYW4NCg0KSSBhZGRl
ZCBKb3NoIGluIENDLiBKb3NoIC0gd2lsbCB5b3UgY29uZmlybT8NCg0KU3Rldw0KDQo+DQo+PiBT
aWduZWQtb2ZmLWJ5OiBTdGV3YXJ0IEhpbGRlYnJhbmQgPHN0ZXdhcnQuaGlsZGVicmFuZEBkb3Ju
ZXJ3b3Jrcy5jb20+DQo+PiAtLS0NCj4+ICBNQUlOVEFJTkVSUyB8IDEgLQ0KPj4gIDEgZmlsZSBj
aGFuZ2VkLCAxIGRlbGV0aW9uKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIv
TUFJTlRBSU5FUlMNCj4+IGluZGV4IDQ5NTZkYjEwMTEuLmZjOGIyYzExNjkgMTAwNjQ0DQo+PiAt
LS0gYS9NQUlOVEFJTkVSUw0KPj4gKysrIGIvTUFJTlRBSU5FUlMNCj4+IEBAIC0yMjEsNyArMjIx
LDYgQEAgRjogICAgICAgIHhlbi9pbmNsdWRlL3hlbi9hcmdvLmgNCj4+ICBGOiAgIHhlbi9jb21t
b24vYXJnby5jDQo+Pg0KPj4gIEFSSU5DNjUzIFNDSEVEVUxFUg0KPj4gLU06ICAgSm9zaCBXaGl0
ZWhlYWQgPGpvc2gud2hpdGVoZWFkQGRvcm5lcndvcmtzLmNvbT4NCj4+ICBNOiAgIFN0ZXdhcnQg
SGlsZGVicmFuZCA8c3Rld2FydC5oaWxkZWJyYW5kQGRvcm5lcndvcmtzLmNvbT4NCj4+ICBTOiAg
IFN1cHBvcnRlZA0KPj4gIEw6ICAgeGVuLWRldmVsQGRvcm5lcndvcmtzLmNvbQ0KPj4NCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 14:57:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 14:57:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228957.396235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAlQ-0003ga-0L; Mon, 22 Nov 2021 14:57:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228957.396235; Mon, 22 Nov 2021 14:57:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAlP-0003gT-Sq; Mon, 22 Nov 2021 14:57:47 +0000
Received: by outflank-mailman (input) for mailman id 228957;
 Mon, 22 Nov 2021 14:57:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpAlO-0003gN-1O
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 14:57:46 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c90e11a-4ba4-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 15:57:44 +0100 (CET)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2059.outbound.protection.outlook.com [104.47.5.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-1-cX0-9oLyM_-S5Gjb7KEQfw-1; Mon, 22 Nov 2021 15:57:43 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4608.eurprd04.prod.outlook.com (2603:10a6:803:72::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 14:57:41 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 14:57:41 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AS8PR04CA0100.eurprd04.prod.outlook.com (2603:10a6:20b:31e::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24 via Frontend
 Transport; Mon, 22 Nov 2021 14:57:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c90e11a-4ba4-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637593064;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=mCuMnINf+hFNw9JlMORnIFWQGDlQBd68NSfo7RVj6fo=;
	b=mv40IKTLCYDLTHMlxu5Sr04c9lx2/RrS2P9VrUXv3/vcb9gPE0BRss6dgnGQE2qy7uET8t
	w6MswM8w2Y1ecMziSehifg4YbnmwygZn+I77Dyc7B1GT60pCp6+TAHJFX1Fe0bPl7bjOAu
	79hNju4UBIJuhU1GaudsuVAwtsRnZlM=
X-MC-Unique: cX0-9oLyM_-S5Gjb7KEQfw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NgtK0g+FSsUhe1SU2MvMA49daRRdytlI7680ihMrENCS4ysISWA6WQ00mJkNDvnYug23pRbY9oW/GHAPGdrrocxagAT8nC7y1ygd/dxdxxwFZCj1PMCReXiSzku7GKQW2Tzm6tXw+ZQBKY1y0jKwnUNL5Nc+stCrjswgILyRT1VTcvtr+7W7d4d6ToQ4n5TLMRO+dfuAh3Gsy3HN4L2JCepgoL8CyjVjAfCVelWnUmczHYRIRpcZcIUzepyWTOn0D0OFT7ZKKc5yQ32saMaRRHsV6tV6bxTafgIsH2s6oE1fQQvJ/nYTDkXhIPRElx5pdrSZrWUR4l2lsxF3afd5BQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rmSqdYAikkKtngjChwEUZFUQ6S80RBVi06F/K+kD5mU=;
 b=bAtrtmYqr97ePD4V8yQkTmDtjHqdwSF8kJmNl6iSUDZ6FXSccaY9IUvXC6F1QKRpobhW2E9dA/uIXIWkijiJ3oKK5Ha8FMY+TQFmwBoxLSPXfimvyYcdMoS7d9y+7ACFcoHIMYjslBXoHi2/yRgIpPlpC7YgvbTtpNZdCe3qj+1ctfxi1wmAvAdvSxPfVh1eSu5foBdx70+CusNhVNwdfd4ItRsrZ3nsPRUCQVn7300sD61QJBF0PJvK4ZDdp8lWa4uRLnmdswoBRww3RS4TOjpK4cDN+L+B6GDouPKF9Q84r6h6UOR8CnOYB+uaFCKTvpDhBMWnuMEUnljFaB+4iQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f16c70be-f5f6-5f80-54f1-7ba69adc114e@suse.com>
Date: Mon, 22 Nov 2021 15:57:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 "julien@xen.org" <julien@xen.org>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <b45c172d-ab51-a02a-8e29-3b31b6319f4d@suse.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
 <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
 <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
 <5baf1199-e12d-cc41-4520-e32ed29a0436@epam.com>
 <fbc8a807-ea73-760f-8c75-df0930a5139e@suse.com>
 <4e74d5e1-f54e-3888-ada2-a38545571744@epam.com>
 <6be4e6c0-5b54-606e-1278-e97e143e23af@epam.com>
 <2363af0e-6435-485e-8906-16a6fca7885c@suse.com>
 <d8d6cbcb-478a-a5a7-4e93-036b0f75c6d0@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <d8d6cbcb-478a-a5a7-4e93-036b0f75c6d0@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8PR04CA0100.eurprd04.prod.outlook.com
 (2603:10a6:20b:31e::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 615ffdc5-ecaa-487c-d5fc-08d9adc86e7c
X-MS-TrafficTypeDiagnostic: VI1PR04MB4608:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB46089D11451F3513B53A18D0B39F9@VI1PR04MB4608.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	VLBe/gvKW1KEka9ymW7UGeQV8eKNzVBrNOBV5AH2EZG+2v9eqfb4vJQz6DIJKXzjiEuDZVAA/hpU36tMWArTCzKpbLbW+el+XJhtxEXCZ1fr8oBUA+vt9R78LHGwDckTVmO+9EEl9ImNPFZid1oejlzndCQxKNWmE4b9p3yMOlrjVy7TBVsW/KIzKPCIoNoUqms1vyQkS8INCBYpFVfegRxqFS2eQqSYBHS28P/TIImC+24rCjzNhkNCT/ATdFjn3qREog/yH5jrkBhlncZKATQ0uX3RhDLYZQUKhRQzsHPsOTDAe1mPlZ1SavMj084TxTLFwztkiiZD7sc6+hSpbVyMgtYSE6stTy5pOuJfTNsO8J2kJkHsX763zy/ihK5RioTtvQL2bttFG9meVEhlvdrX9KX4/od4whvFI3BuRyLNfb+1H9xTR015EqxpVewoSxyJtsyAVox0giNM06HN+xDIMIE+ub3LtzcrcMbGPfpGaDJKTox3MiFKUOhsUUNdTBXvjheTrbQH8TybBV1PtmYN8kftO9TH37IdkrZ0jacyhwZEL3YneeG6yXpot31vOvugOW9q6iGwfQKKymH3Z3ysIW2xCKwmST/+Ullmi0+Jft7xZEwR6p6F2c8p9fRrHR6O5nxnMHvJ072+KunJsiR5IeEsTbA9GQNdujge3Q5U0I34dO1Y4SHgB25Y9ytH9/lUvDPMtCENn936HT3u6oWchgzcIvT0+/NfNaF/cqs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(8936002)(2616005)(86362001)(54906003)(83380400001)(5660300002)(4326008)(38100700002)(8676002)(186003)(7416002)(508600001)(6916009)(31696002)(66946007)(53546011)(66556008)(36756003)(316002)(66476007)(31686004)(6486002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?EKkW8ZpdfmrrSJ8Mj9fCfeQEJvU/fXCXE0Yml0ehlu4Bz2ai7lxjN4sRpoZM?=
 =?us-ascii?Q?H5BYc26jXB0dMbbpgrMuxWthX9qaxCJp2cCTTD8KNPwp1q0Lj1u8uHP8oNhA?=
 =?us-ascii?Q?dwElBcUqsXemzoqTuu4006wuWVANcDAjnJefktYoMSquiB23JqIGKziqAQu/?=
 =?us-ascii?Q?qhgNd5NIF6PL9lABwd1tfX+yXvyC3gcilyekixv6p4XgZIPO7l7ve7mbWgtu?=
 =?us-ascii?Q?XMZ2YYQAFuqv1hh7oUQSDHblbX2dFkO2QaeIKxfXsE5IdeEwTtvaSGrps/SR?=
 =?us-ascii?Q?p40pnEvwsFoSh39jOEl0bdX6OZr41xoL5MLav5/svArj189UtPy5d0sgaAqD?=
 =?us-ascii?Q?iHfWEJJscjnGfV7vngc1Q2NFzv4ELTYXE5lGNON+ICDAMhl0Lf+jKAnU/esN?=
 =?us-ascii?Q?jdpCwkGxYcj3QPQfuZdYEskTryh0/zx92+9Eu9FtKaU0hhi+Oq3JG1TrketE?=
 =?us-ascii?Q?3cHAZcl8XWL2egdObOzkHram5aolJtnhVx/q3iyn0gQJhf9M+dNNumd8Z2OO?=
 =?us-ascii?Q?OOX88+YxSsJOjiMv/I2SVo5zgfXYLUwvEqRmwnud9bJz8QzJqMPKH8gRwMlm?=
 =?us-ascii?Q?OzqRjc6xo64TJ9r+zKJkxqcvbgyhtL55Ll5462LqC62rahDhks6W6Mkc2/T2?=
 =?us-ascii?Q?m+wBjvYKyl/+sqmeK0OShoKP9ijH5Uuu1GOXKhqtgB82HgdGFn7DvG6+nxpU?=
 =?us-ascii?Q?Yfar41Qt1L7fDJ3/84iaBVc/XnLTb7rhmF+gF8pF7wce2LA4pECuZNkrFlSw?=
 =?us-ascii?Q?xFaMF1EyGzJyYOybWidO8HUvcZGo00z4oZxu0F4WclzCXZNW5AsP514OGYQi?=
 =?us-ascii?Q?Kxwqc9axHdhh9S0ii4RJEGTJMOPKoFHfKqvPp0GUTejfxDHIZ6/jPOXfAbI2?=
 =?us-ascii?Q?J99rXiGevcOlhALG4SBi8QkRa/HeIS7Qq4nPG0vFj+AArqxJ4DJrSXRVnWRj?=
 =?us-ascii?Q?oSK//1hXxAZOpqE3ZnL5bXmIsr6L3l7ugf+rtaBJT33FHE2nGh6XC2wemNex?=
 =?us-ascii?Q?3pTDRveJGQiZSau13dPkrXLtjHudoFE7lmZYMVmATJc9V5g9Dt2fy0UqJRw6?=
 =?us-ascii?Q?YtI7kkaVAYXzKxrznQuNgPdXmSy1t1XI2hEcTkDUeCZ/IC1rqyTTR847UR4d?=
 =?us-ascii?Q?tXfY/2mzjI9l0DiaVfU7vwo7JfPZt4BNKQ/2NBTLvCoz0T+pit8an5qAes87?=
 =?us-ascii?Q?QXCbpUkZ1xxyYx2ynPh1xpEIiL0sZEBzl8ZeokJdTkYk1JSWx3mArcY5BbmP?=
 =?us-ascii?Q?UlQ/Z3sKoCv4bJoRvMm7QDJn2UgXWZfMaUoTSyz0VJK68kweha3Em28n7H51?=
 =?us-ascii?Q?JkczQLjY/Hw2N1yFs1BTty28rNem7OfZZs5r1HwwLSZjAfSL1qVaZLyBtxha?=
 =?us-ascii?Q?Hua+oVQ/vuWyWAt+8fdQrv7E7VrOebOqKDfgzrOR8xGozTUkZbdJCKO1V4wf?=
 =?us-ascii?Q?kVIwHb8itg9Imp1jYVNuRwntwDaYc0RQm1mQRQBhlWX0gJlP05Hu4lYFbfjQ?=
 =?us-ascii?Q?WrQ5NluVfERKIk6gc19RSUzUzMvkjWxwi6eUD4/GGzhzvgd73Zt/ZjQqs00E?=
 =?us-ascii?Q?95+iz1LRpXtKND5YuMptL0aHr2f0mw1yQwLM591AA97Kw0EOLWVUe56pcfJ8?=
 =?us-ascii?Q?b1G1LANTZ4qvRyELjuukJ/JEZyR31f/UpzLJq3mpdfXOnz7+vbfV5JaYMgdf?=
 =?us-ascii?Q?BlP5qwgFJ8/3V77KSzGV0kBadG0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 615ffdc5-ecaa-487c-d5fc-08d9adc86e7c
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 14:57:40.9934
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7Qh3y6HEHhO12fQ5mu4opD8RYDK+ZFqdeZlXVCht+78v2uj8VBQcsOrl/nXAadBYWtSA1e/lJyYFOl3LSRHrCg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4608

On 22.11.2021 15:45, Oleksandr Andrushchenko wrote:
>=20
>=20
> On 22.11.21 16:37, Jan Beulich wrote:
>> On 22.11.2021 15:21, Oleksandr Andrushchenko wrote:
>>> On 19.11.21 15:34, Oleksandr Andrushchenko wrote:
>>>> On 19.11.21 15:25, Jan Beulich wrote:
>>>>> On 19.11.2021 14:16, Oleksandr Andrushchenko wrote:
>>>>>> On 19.11.21 15:00, Jan Beulich wrote:
>>>>>>> On 19.11.2021 13:34, Oleksandr Andrushchenko wrote:
>>>>>>>> Possible locking and other work needed:
>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>
>>>>>>>> 1. pcidevs_{lock|unlock} is too heavy and is per-host
>>>>>>>> 2. pdev->vpci->lock cannot be used as vpci is freed by vpci_remove=
_device
>>>>>>>> 3. We may want a dedicated per-domain rw lock to be implemented:
>>>>>>>>
>>>>>>>> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
>>>>>>>> index 28146ee404e6..ebf071893b21 100644
>>>>>>>> --- a/xen/include/xen/sched.h
>>>>>>>> +++ b/xen/include/xen/sched.h
>>>>>>>> @@ -444,6 +444,7 @@ struct domain
>>>>>>>>
>>>>>>>>      =C2=A0#ifdef CONFIG_HAS_PCI
>>>>>>>>      =C2=A0=C2=A0=C2=A0=C2=A0 struct list_head pdev_list;
>>>>>>>> +=C2=A0=C2=A0=C2=A0 rwlock_t vpci_rwlock;
>>>>>>>> +=C2=A0=C2=A0=C2=A0 bool vpci_terminating; <- atomic?
>>>>>>>>      =C2=A0#endif
>>>>>>>> then vpci_remove_device is a writer (cold path) and vpci_process_p=
ending and
>>>>>>>> vpci_mmio_{read|write} are readers (hot path).
>>>>>>> Right - you need such a lock for other purposes anyway, as per the
>>>>>>> discussion with Julien.
>>>>>> What about bool vpci_terminating? Do you see it as an atomic type or=
 just bool?
>>>>> Having seen only ...
>>>>>
>>>>>>>> do_physdev_op(PHYSDEVOP_pci_device_remove) will need hypercall_cre=
ate_continuation
>>>>>>>> to be implemented, so when re-start removal if need be:
>>>>>>>>
>>>>>>>> vpci_remove_device()
>>>>>>>> {
>>>>>>>>      =C2=A0 d->vpci_terminating =3D true;
>>>>> ... this use so far, I can't tell yet. But at a first glance a boolea=
n
>>>>> looks to be what you need.
>>>>>
>>>>>>>>      =C2=A0 remove vPCI register handlers <- this will cut off PCI=
_COMMAND emulation among others
>>>>>>>>      =C2=A0 if ( !write_trylock(d->vpci_rwlock) )
>>>>>>>>      =C2=A0=C2=A0=C2=A0 return -ERESTART;
>>>>>>>>      =C2=A0 xfree(pdev->vpci);
>>>>>>>>      =C2=A0 pdev->vpci =3D NULL;
>>>>>>>> }
>>>>>>>>
>>>>>>>> Then this d->vpci_rwlock becomes a dedicated vpci per-domain lock =
for
>>>>>>>> other operations which may require it, e.g. virtual bus topology c=
an
>>>>>>>> use it when assigning vSBDF etc.
>>>>>>>>
>>>>>>>> 4. vpci_remove_device needs to be removed from vpci_process_pendin=
g
>>>>>>>> and do nothing for Dom0 and crash DomU otherwise:
>>>>>>> Why is this? I'm not outright opposed, but I don't immediately see =
why
>>>>>>> trying to remove the problematic device wouldn't be a reasonable co=
urse
>>>>>>> of action anymore. vpci_remove_device() may need to become more car=
eful
>>>>>>> as to not crashing,
>>>>>> vpci_remove_device does not crash, vpci_process_pending does
>>>>>>>      though.
>>>>>> Assume we are in an error state in vpci_process_pending *on one of t=
he vCPUs*
>>>>>> and we call vpci_remove_device. vpci_remove_device tries to acquire =
the
>>>>>> lock and it can't just because there are some other vpci code is run=
ning on other vCPU.
>>>>>> Then what do we do here? We are in SoftIRQ context now and we can't =
spin
>>>>>> trying to acquire d->vpci_rwlock forever. Neither we can blindly fre=
e vpci
>>>>>> structure because it is seen by all vCPUs and may crash them.
>>>>>>
>>>>>> If vpci_remove_device is in hypercall context it just returns -EREST=
ART and
>>>>>> hypercall continuation helps here. But not in SoftIRQ context.
>>>>> Maybe then you want to invoke this cleanup from RCU context (whether
>>>>> vpci_remove_device() itself or a suitable clone there of is TBD)? (I
>>>>> will admit though that I didn't check whether that would satisfy all
>>>>> constraints.)
>>>>>
>>>>> Then again it also hasn't become clear to me why you use write_tryloc=
k()
>>>>> there. The lock contention you describe doesn't, on the surface, look
>>>>> any different from situations elsewhere.
>>>> I use write_trylock in vpci_remove_device because if we can't
>>>> acquire the lock then we defer device removal. This would work
>>>> well if called from a hypercall which will employ hypercall continuati=
on.
>>>> But SoftIRQ getting -ERESTART is something that we can't probably
>>>> handle by restarting as hypercall can, thus I only see that vpci_proce=
ss_pending
>>>> will need to spin and wait until vpci_remove_device succeeds.
>>> Does anybody have any better solution for preventing SoftIRQ from
>>> spinning on vpci_remove_device and -ERESTART?
>> Well, at this point I can suggest only a marginal improvement: Instead o=
f
>> spinning inside the softirq handler, you want to re-raise the softirq an=
d
>> exit the handler. That way at least higher "priority" softirqs won't be
>> starved.
>>
>> Beyond that - maybe the guest (or just a vcpu of it) needs pausing in su=
ch
>> an event, with the work deferred to a tasklet?
>>
>> Yet I don't think my earlier question regarding the use of write_trylock=
()
>> was really answered. What you said in reply doesn't explain (to me at
>> least) why write_lock() is not an option.
> I was thinking that we do not want to freeze in case we are calling vpci_=
remove_device
> from SoftIRQ context, thus we try to lock and if we can't we return -ERES=
TART
> indicating that the removal needs to be deferred. If we use write_lock, t=
hen
> SoftIRQ -> write_lock will spin there waiting for readers to release the =
lock.
>=20
> write_lock actually makes things a lot easier, but I just don't know if i=
t
> is ok to use it. If so, then vpci_remove_device becomes synchronous and
> there is no need in hypercall continuation and other heavy machinery for
> re-scheduling SoftIRQ...

I'm inclined to ask: If it wasn't okay to use here, then where would it be
okay to use? Of course I realize there are cases when long spinning times
can be a problem. But I expect there aren't going to be excessively long
lock holding regions for this lock, and I also would expect average
contention to not be overly bad. But in the end you know better the code
that you're writing (and which may lead to issues with the lock usage) than
I do ...

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 15:02:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 15:02:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228962.396246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAq0-00054t-Kt; Mon, 22 Nov 2021 15:02:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228962.396246; Mon, 22 Nov 2021 15:02:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpAq0-00054m-Fs; Mon, 22 Nov 2021 15:02:32 +0000
Received: by outflank-mailman (input) for mailman id 228962;
 Mon, 22 Nov 2021 15:02:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpApz-00054g-GT
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 15:02:31 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 35c76627-4ba5-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 16:02:29 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AMEXp3d020126;
 Mon, 22 Nov 2021 15:02:23 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2056.outbound.protection.outlook.com [104.47.14.56])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cgcge8dj5-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 15:02:20 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com (2603:10a6:20b:13c::18)
 by AM5PR0301MB2356.eurprd03.prod.outlook.com (2603:10a6:203:6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 15:02:15 +0000
Received: from AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445]) by AM7PR03MB6325.eurprd03.prod.outlook.com
 ([fe80::b121:f602:44b6:d445%3]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 15:02:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35c76627-4ba5-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WvP61Spoj1l4EwaQ93ZtDEmbb72Wpq9B3TGOz5PDkwhXNLe1Fm6f+ebYsrbw7XHOHVrD/D+6BXenGRcFDlzZuOMQEzbCrLS0sZR4lDPk6HRqV/qr5tzfkhGgvk5X3f3R39fzOb3PIw3GaXvpZ81/mzmUwkcr81yRHx8GXMjhFfTaCIrjqAZw4y4peKnNR1fY+Ip1Yad72/M/gLHJNWOYkI4iESS8MM3ElLTweKHJ7fEkMgwzexOy56Y6TNzk2Id3H8z4pKEL63ogsq+tJOsAYCmcdG2fMkIYiTiSIEKthP1LoIOB9WMPqJD8PDGjL4J6hKcnY6RSJLS/dUnwspmCeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bLVQnj3fVNlM3UfyJ1YZK1djM3gv8izuT/8SODHseKs=;
 b=ogNn11kb3Mg6pqUU+aLSkLHl6yHG7tHmeKzIiMAvEoD6laERacsM2dXIVdqkPYIMdAmeJQEe1SIyr/mfwcX+0x/noyjTgIfgIIQLau+wBUCdbARZLRvMRyETDQiCwAo8AT4xVYJon/xUUX+yOx1w6aU7PVdcMcXzwG0GSxldkrBa9C5gZeq4v/nmQChSMryFvRygHN64CNi+9vICVeuO2QPW6fSnceVKjPQR7Fw0nAdSISyU8psNAULvgnYGZ1GDirShV4IpG1RxTRHXdZRQBcIHpTDf2KOgY70TkYI5CXL2IUdBYtaYHUavOkUqi8UUFnjBewbMMC80OeMtTz1xvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bLVQnj3fVNlM3UfyJ1YZK1djM3gv8izuT/8SODHseKs=;
 b=Mr6D6cV5PAZPYv0PhZxTzpE+LD9QE1n4SkeOWs+DWKKA6XEwuWViwt2bP7Q9RjpVNsE7/fEwDLgDWrlVVrs3DCET3vv1gD68eF4yj9EpEC6Pa+vGKKfgIjRjd2DaCQEySS7IMsnzGYhf7AAtvaDwaxCXwPj5CNQ9QypFdq6/L3lJiYlfn2gx3RUwdPAep8ciCK32h+zKVC/Eb1fyLYpJbjbflDnmIBGptGm2ouz3armlmFQFvEG011rH4qYs4wMw1qjPNt8DooRiEDzaz+XUyLUivoYXIifurAONSK6VDUrfdlhg4oF/O4Ixu0c5GD7rX9pLBSbdpkVugL47HeyAog==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        "julien@xen.org" <julien@xen.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Topic: [PATCH v4 02/11] vpci: cancel pending map/unmap on vpci removal
Thread-Index: 
 AQHX0hJIYALl/D9fL0OD6N0XGDJh2awHdhMAgAGHTYCAAA1EAIAABOkAgAAF6YCAAATnAIAAQRQAgAAGPgCAAAR1gIAAAvIAgAAFxACAAAoGAIAAAXMAgAABgYCAAAVtAIAAAX+AgAAB1wCAAVryAIAAB06AgAAEPgCAAAKhAIAAApkAgATD+4CAAARtgIAAAk+AgAADagCAAAFJAA==
Date: Mon, 22 Nov 2021 15:02:15 +0000
Message-ID: <4fff5e18-f538-2a3d-c496-63c8e065abb5@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <17c7485a-2c44-63ec-553c-5caa9b8eb70c@epam.com>
 <YZZdU1oCaMt1HxTj@Air-de-Roger>
 <b7cb9ce7-fee9-f16d-572c-c39b3ff75d62@epam.com>
 <bf8f1c03-d872-094b-4a3c-3b15706babdf@suse.com>
 <816d3519-f007-80e2-e07f-ff285640926b@epam.com>
 <ecd83d8f-f290-295c-e073-583aa70a8c1e@suse.com>
 <2db325e9-0349-1cc3-1c4a-fefa048f181b@epam.com>
 <ac0cc710-05b9-bdae-c31c-d159b4de0105@suse.com>
 <00e78d11-8e7b-84d2-5aa0-0a7f82f13af6@epam.com>
 <7dd919b8-0e3d-30dc-302a-9964f9d94ad2@suse.com>
 <fec02ac4-1ecf-18e1-7ed6-3b1094d60890@epam.com>
 <126a2864-e7e3-b887-43ff-55b1e59151b4@suse.com>
 <5baf1199-e12d-cc41-4520-e32ed29a0436@epam.com>
 <fbc8a807-ea73-760f-8c75-df0930a5139e@suse.com>
 <4e74d5e1-f54e-3888-ada2-a38545571744@epam.com>
 <6be4e6c0-5b54-606e-1278-e97e143e23af@epam.com>
 <2363af0e-6435-485e-8906-16a6fca7885c@suse.com>
 <d8d6cbcb-478a-a5a7-4e93-036b0f75c6d0@epam.com>
 <f16c70be-f5f6-5f80-54f1-7ba69adc114e@suse.com>
In-Reply-To: <f16c70be-f5f6-5f80-54f1-7ba69adc114e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c53d8c10-cdff-4a39-0377-08d9adc9120e
x-ms-traffictypediagnostic: AM5PR0301MB2356:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM5PR0301MB23565FF040325507AAEC3A81E79F9@AM5PR0301MB2356.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 TEGFVRmE2vv6jG38vO6KKPAxievG+OZm7pYmRnw/elquhkgC9kyv8S+7T2hWRncMaT5wj2NLKAXT1bQjEyUezsiFftlwu3GRpH7K7bCbU3aYukvvXGERmVUu+3KslB5r4m4PLw4gPnzYg9kSMpsw+WnIWkE+GD45xVIE9gDOPbC/ZC2EXIMX0sbpMtkpb9yC/3XW4nYym+hmSmjcVhVGYroepz0zWqUBYuMdcR8l2gTa5o9o+n9hHLn5T12pMigAsrgzWJxcsvq6vnOZkcUsvCRl8M8kMD1oljQb+4LDXk6Tk+MKkJs7rXDhWznE/lbCAPAv0Ztl2INfoIsQfLRTZE74WYdUMkIprIS+zlpAMLNrFRnuF+U9zcFkhmGJffyhsoJV2yZikWIboYLUNob36NLqGdy974gHGFsCOSAWbHENuEceYKX4gwAr5Yz7F7olYMnOhV5Y60mXNMz1kPyd6AtQyZCXYx51nhJtxkDDi9Mxg7MyC+kaFCm6+TFvVX7389RDNA7U9nBYoga5zp5d8rckx9AnP0WmmnSDtk15m6QT9Mqw8DXwd/dCvTalNfI7+3ATUN8+pbAJf/zTfYSIJmJpyShlxNZvheyRR8vKVWicX9rFJwcf1c2uakEJ0oYvf1ynhqfttyWryilMI4MLXqgAWwHnXGc34gDTkE5ICXkZD8r6X3tqt6GRoxhk1ZqoUKo2ymAd7SK/hMtE1uuelqKlNib+NoS8rLyai8EUkCKOXkWWOYm805to+LZl1uYv
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR03MB6325.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(186003)(8936002)(508600001)(83380400001)(26005)(6916009)(71200400001)(38070700005)(122000001)(54906003)(5660300002)(38100700002)(6486002)(36756003)(316002)(53546011)(6506007)(2906002)(2616005)(64756008)(6512007)(7416002)(86362001)(8676002)(31686004)(66946007)(4326008)(76116006)(66476007)(66446008)(107886003)(31696002)(66556008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?TXorekYvU0dEblNvZmozT1JZNnloU2xqem9vdmRuYzRYMkErS1RhaG9TUHVr?=
 =?utf-8?B?aGxlYXBlcENSQmNYaEFiemtGelZQd2l4TjRKME1NNHdSUzVCTGpnYkN5c3p6?=
 =?utf-8?B?K3psZ1Yyc3pXWk9ISVZJNGx0emY4N2JiMDNPdmUvNWhOcFFZaEZ1TVRXS00r?=
 =?utf-8?B?dG5MSFl2ZEpES3NlUUI5RUdhc25ZTFIvUlQ2dmpoMllReWljQ3gwVkZaa2Zr?=
 =?utf-8?B?N2p3REJMWGp4RzFDUEcxR3Zkc0pwWTloc2gyZ1RPUFBBWEtmYU9wMUhXSk8w?=
 =?utf-8?B?QURheGJCRUxOY1dBZnh0Tzk5OWI3MHhZVllJWjhicWxiMU9OZGR2dEVhbFFH?=
 =?utf-8?B?ZTBzeHpwZjh0VHY5TC9tdDR6ZzFHM2MzK1hiVnpOZ0xCcXMzOU9sM25yUm85?=
 =?utf-8?B?TVQrQ0RmbStvaUl0V3lTRjB2dis0YTc3L0tvWGxXbDF2b1FSd3pPK2RBT2FV?=
 =?utf-8?B?cVJPMnJEa0tseDhxanplWllTdnZOOVFEcUp0ZWpsT0JLb29BeXVMQnlyUFNI?=
 =?utf-8?B?VTd1bFN6cFcyRjhoRTZFS2ZycVVFaHhWeWdsTk1odWx3eUlSenE3N1dpWllC?=
 =?utf-8?B?Z3NKSUV4TVJBOHN1R0JZbjc3TjRxS0FJbnFJQVlRVldRS3QwQUdaR3hLcXJx?=
 =?utf-8?B?a0xNUXllbGFQZi9MQXRoQzFuamp1MzMvT245T2J2dHgwcEoxd1diNkYrQ0I2?=
 =?utf-8?B?dXBQcXozWVlGc2pRK3lPU01MUW1HYTF1YW1JejF6TXZUUE95d3B6cXZvYXdw?=
 =?utf-8?B?Zm5SM29pcmpPbk8xT1JXT2JUUThPUDFGdWJxVVRESnNWVFNualBiQzdXVUI2?=
 =?utf-8?B?MzB0QkRhdmxtd3hCbEVqZVFRWHl6Y2kvUHRXMXhhSS94c3RiT09CZXczNHZ1?=
 =?utf-8?B?clk1cHJOUnNISCtZczdUa0F0Vkkwajh1M1YweDBacHVLNTRMRXVnWVlqNHl2?=
 =?utf-8?B?KzdFNGZNa3FROWd2bWlGWHlIeWI3QlVyY3FvZ0ZmWHBobnpKQWg4VjZaVnpR?=
 =?utf-8?B?RGpDWUNNaDc2aEpSOVoxc3J3VmVxMG5QYmNZK05wTXdtVzAxRmFpOXVqWENy?=
 =?utf-8?B?MVI4dzI3Vk5QZzkwZ01TdXhuaFRCU3RuNEFqcU5hMGxqV0F1VzZEUHNYdHB6?=
 =?utf-8?B?Vk9Bd2l0SE9sVzdrWmt2VTBsemtEVUZTOFdkbVBSUzBxOURRbjByT2swOWJy?=
 =?utf-8?B?dGUxU0JUNCtOMzJEcVZXT3JwVkZWdGxwa0s2eVZLUmNmWDNFSG02RkJET1E3?=
 =?utf-8?B?THFtbmRWbHhnckd4RHg4UktqZnJKbUZEWDQ4WXd5YnNmL3VTUUVubTZkNGkz?=
 =?utf-8?B?SXcyQ2I2aklaRWREdzE2dkRsRjAwdXJtZ0lVd3ZPSjQ5SjZKQnMzQ3RCODV2?=
 =?utf-8?B?M2Rzak9ROWtFZVprdTJvOTdQM3ZyRGdHTlpTY1kwZVNoK2VtcHU0Ym5wVXZH?=
 =?utf-8?B?QURoaTBsb3pPWVp1WDFqU0c2Vm5TNTBkUytSVXRPN2w3M3Z3OXlhY1laNHUr?=
 =?utf-8?B?RkNCMUhzckpmK3NtYmEwVnZVOXh1TEgzMEc1N05UVDBSZ0paZnJWTGcxaUZK?=
 =?utf-8?B?NFk4Z3Y4eFlJLzJraVFOMDFiSEx3c2x5LzBXZHZtV1RvYXRuRi9zby9udEhY?=
 =?utf-8?B?V3dHMWprek0zY0lCR2txaHlrQ2NHZm9jc3gxRjNyS0hKMDRCcTFDTU4vTUhS?=
 =?utf-8?B?SU5BaU11dm5Jd25KMWVWS1VQZ0phK3J2R09weGRuRkFaVVAvdGdKWlh6bUE3?=
 =?utf-8?B?aFRTS1JoMWM1RmpReW0zNEJjbXNaVUo2RVY2bWg0cHVDaDZ4R0Y0a2hOdVNH?=
 =?utf-8?B?dmdBUm9ISkRudmxYNmtiQVlyUHlodTN4VDBMalM5L0lCenhhWUtZZFJrVkhS?=
 =?utf-8?B?N1AwSGJuRWc3NkV1cEhhVFVXeG5mL2xpUlAraWlYTEx2T2FDQyt3SFFlNGRl?=
 =?utf-8?B?akpPZlJrYU1zRVBDOWRKWUJsdE1oN3pXQm9IRmNVcG93N0gxY01KM2FtRmZh?=
 =?utf-8?B?VExRYUJJRXVvcVVkd1BtUmwyeUlxbUVHRGppVXJIOC9aMFlIRU9TRnI4WEtj?=
 =?utf-8?B?dWxqRlBMSlRSOUtTOGRURmxoTURUV29uaHNSYjVQYUlIS0hlNDhWM2ZKb2tF?=
 =?utf-8?B?bDJIb3FCRHBaTFcvWVh0YUZ2eGJSVG1vVTM5UGVyZ29iWUFQN0d4clZWMWxL?=
 =?utf-8?B?MkhNdk55dzQ1KzNsenE5VSs2UTduOG55aEdwdWpnZ3FQZkxIQ05CaHhkTEFx?=
 =?utf-8?B?WGRSckd0empIT3haSUpvbDZteHVQSW1LOWtZTVVNN21DZUp4YUpIcUpkcjl3?=
 =?utf-8?B?QkRyWmZDdDZUeEpYZzVYS2tOTFFPdGJQcHVYeXp5cXdlV3NNMG1wdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2AA51456511A2C45B0158989EE98A56A@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6325.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c53d8c10-cdff-4a39-0377-08d9adc9120e
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 15:02:15.1201
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Nc+VqQoeFqn/yX2+58sTVkIFysy8ck58M2GqM7ur7zAYtdRGUrqI1BWjNhbx5E9+HIDZZ85oSMQGzINsIRcdL+AwmfXMKT6A+eUNnzIBduIH9BU7swj27ik0/S0cITye
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0301MB2356
X-Proofpoint-GUID: r3egOux2JMSL2cEd_mYY27Gh1UAfAxX8
X-Proofpoint-ORIG-GUID: r3egOux2JMSL2cEd_mYY27Gh1UAfAxX8
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_07,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 mlxlogscore=999 phishscore=0 malwarescore=0 adultscore=0 suspectscore=0
 mlxscore=0 impostorscore=0 spamscore=0 bulkscore=0 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111220079

DQoNCk9uIDIyLjExLjIxIDE2OjU3LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjIuMTEuMjAy
MSAxNTo0NSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMjIuMTEu
MjEgMTY6MzcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDIyLjExLjIwMjEgMTU6MjEsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAxOS4xMS4yMSAxNTozNCwgT2xl
a3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+PiBPbiAxOS4xMS4yMSAxNToyNSwgSmFu
IEJldWxpY2ggd3JvdGU6DQo+Pj4+Pj4gT24gMTkuMTEuMjAyMSAxNDoxNiwgT2xla3NhbmRyIEFu
ZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+Pj4+IE9uIDE5LjExLjIxIDE1OjAwLCBKYW4gQmV1bGlj
aCB3cm90ZToNCj4+Pj4+Pj4+IE9uIDE5LjExLjIwMjEgMTM6MzQsIE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIHdyb3RlOg0KPj4+Pj4+Pj4+IFBvc3NpYmxlIGxvY2tpbmcgYW5kIG90aGVyIHdvcmsg
bmVlZGVkOg0KPj4+Pj4+Pj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gMS4gcGNpZGV2c197bG9ja3x1bmxvY2t9IGlzIHRvbyBo
ZWF2eSBhbmQgaXMgcGVyLWhvc3QNCj4+Pj4+Pj4+PiAyLiBwZGV2LT52cGNpLT5sb2NrIGNhbm5v
dCBiZSB1c2VkIGFzIHZwY2kgaXMgZnJlZWQgYnkgdnBjaV9yZW1vdmVfZGV2aWNlDQo+Pj4+Pj4+
Pj4gMy4gV2UgbWF5IHdhbnQgYSBkZWRpY2F0ZWQgcGVyLWRvbWFpbiBydyBsb2NrIHRvIGJlIGlt
cGxlbWVudGVkOg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl
L3hlbi9zY2hlZC5oIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgNCj4+Pj4+Pj4+PiBpbmRleCAy
ODE0NmVlNDA0ZTYuLmViZjA3MTg5M2IyMSAxMDA2NDQNCj4+Pj4+Pj4+PiAtLS0gYS94ZW4vaW5j
bHVkZS94ZW4vc2NoZWQuaA0KPj4+Pj4+Pj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5o
DQo+Pj4+Pj4+Pj4gQEAgLTQ0NCw2ICs0NDQsNyBAQCBzdHJ1Y3QgZG9tYWluDQo+Pj4+Pj4+Pj4N
Cj4+Pj4+Pj4+PiAgICAgICDCoCNpZmRlZiBDT05GSUdfSEFTX1BDSQ0KPj4+Pj4+Pj4+ICAgICAg
IMKgwqDCoMKgIHN0cnVjdCBsaXN0X2hlYWQgcGRldl9saXN0Ow0KPj4+Pj4+Pj4+ICvCoMKgwqAg
cndsb2NrX3QgdnBjaV9yd2xvY2s7DQo+Pj4+Pj4+Pj4gK8KgwqDCoCBib29sIHZwY2lfdGVybWlu
YXRpbmc7IDwtIGF0b21pYz8NCj4+Pj4+Pj4+PiAgICAgICDCoCNlbmRpZg0KPj4+Pj4+Pj4+IHRo
ZW4gdnBjaV9yZW1vdmVfZGV2aWNlIGlzIGEgd3JpdGVyIChjb2xkIHBhdGgpIGFuZCB2cGNpX3By
b2Nlc3NfcGVuZGluZyBhbmQNCj4+Pj4+Pj4+PiB2cGNpX21taW9fe3JlYWR8d3JpdGV9IGFyZSBy
ZWFkZXJzIChob3QgcGF0aCkuDQo+Pj4+Pj4+PiBSaWdodCAtIHlvdSBuZWVkIHN1Y2ggYSBsb2Nr
IGZvciBvdGhlciBwdXJwb3NlcyBhbnl3YXksIGFzIHBlciB0aGUNCj4+Pj4+Pj4+IGRpc2N1c3Np
b24gd2l0aCBKdWxpZW4uDQo+Pj4+Pj4+IFdoYXQgYWJvdXQgYm9vbCB2cGNpX3Rlcm1pbmF0aW5n
PyBEbyB5b3Ugc2VlIGl0IGFzIGFuIGF0b21pYyB0eXBlIG9yIGp1c3QgYm9vbD8NCj4+Pj4+PiBI
YXZpbmcgc2VlbiBvbmx5IC4uLg0KPj4+Pj4+DQo+Pj4+Pj4+Pj4gZG9fcGh5c2Rldl9vcChQSFlT
REVWT1BfcGNpX2RldmljZV9yZW1vdmUpIHdpbGwgbmVlZCBoeXBlcmNhbGxfY3JlYXRlX2NvbnRp
bnVhdGlvbg0KPj4+Pj4+Pj4+IHRvIGJlIGltcGxlbWVudGVkLCBzbyB3aGVuIHJlLXN0YXJ0IHJl
bW92YWwgaWYgbmVlZCBiZToNCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IHZwY2lfcmVtb3ZlX2Rldmlj
ZSgpDQo+Pj4+Pj4+Pj4gew0KPj4+Pj4+Pj4+ICAgICAgIMKgIGQtPnZwY2lfdGVybWluYXRpbmcg
PSB0cnVlOw0KPj4+Pj4+IC4uLiB0aGlzIHVzZSBzbyBmYXIsIEkgY2FuJ3QgdGVsbCB5ZXQuIEJ1
dCBhdCBhIGZpcnN0IGdsYW5jZSBhIGJvb2xlYW4NCj4+Pj4+PiBsb29rcyB0byBiZSB3aGF0IHlv
dSBuZWVkLg0KPj4+Pj4+DQo+Pj4+Pj4+Pj4gICAgICAgwqAgcmVtb3ZlIHZQQ0kgcmVnaXN0ZXIg
aGFuZGxlcnMgPC0gdGhpcyB3aWxsIGN1dCBvZmYgUENJX0NPTU1BTkQgZW11bGF0aW9uIGFtb25n
IG90aGVycw0KPj4+Pj4+Pj4+ICAgICAgIMKgIGlmICggIXdyaXRlX3RyeWxvY2soZC0+dnBjaV9y
d2xvY2spICkNCj4+Pj4+Pj4+PiAgICAgICDCoMKgwqAgcmV0dXJuIC1FUkVTVEFSVDsNCj4+Pj4+
Pj4+PiAgICAgICDCoCB4ZnJlZShwZGV2LT52cGNpKTsNCj4+Pj4+Pj4+PiAgICAgICDCoCBwZGV2
LT52cGNpID0gTlVMTDsNCj4+Pj4+Pj4+PiB9DQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+PiBUaGVuIHRo
aXMgZC0+dnBjaV9yd2xvY2sgYmVjb21lcyBhIGRlZGljYXRlZCB2cGNpIHBlci1kb21haW4gbG9j
ayBmb3INCj4+Pj4+Pj4+PiBvdGhlciBvcGVyYXRpb25zIHdoaWNoIG1heSByZXF1aXJlIGl0LCBl
LmcuIHZpcnR1YWwgYnVzIHRvcG9sb2d5IGNhbg0KPj4+Pj4+Pj4+IHVzZSBpdCB3aGVuIGFzc2ln
bmluZyB2U0JERiBldGMuDQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+PiA0LiB2cGNpX3JlbW92ZV9kZXZp
Y2UgbmVlZHMgdG8gYmUgcmVtb3ZlZCBmcm9tIHZwY2lfcHJvY2Vzc19wZW5kaW5nDQo+Pj4+Pj4+
Pj4gYW5kIGRvIG5vdGhpbmcgZm9yIERvbTAgYW5kIGNyYXNoIERvbVUgb3RoZXJ3aXNlOg0KPj4+
Pj4+Pj4gV2h5IGlzIHRoaXM/IEknbSBub3Qgb3V0cmlnaHQgb3Bwb3NlZCwgYnV0IEkgZG9uJ3Qg
aW1tZWRpYXRlbHkgc2VlIHdoeQ0KPj4+Pj4+Pj4gdHJ5aW5nIHRvIHJlbW92ZSB0aGUgcHJvYmxl
bWF0aWMgZGV2aWNlIHdvdWxkbid0IGJlIGEgcmVhc29uYWJsZSBjb3Vyc2UNCj4+Pj4+Pj4+IG9m
IGFjdGlvbiBhbnltb3JlLiB2cGNpX3JlbW92ZV9kZXZpY2UoKSBtYXkgbmVlZCB0byBiZWNvbWUg
bW9yZSBjYXJlZnVsDQo+Pj4+Pj4+PiBhcyB0byBub3QgY3Jhc2hpbmcsDQo+Pj4+Pj4+IHZwY2lf
cmVtb3ZlX2RldmljZSBkb2VzIG5vdCBjcmFzaCwgdnBjaV9wcm9jZXNzX3BlbmRpbmcgZG9lcw0K
Pj4+Pj4+Pj4gICAgICAgdGhvdWdoLg0KPj4+Pj4+PiBBc3N1bWUgd2UgYXJlIGluIGFuIGVycm9y
IHN0YXRlIGluIHZwY2lfcHJvY2Vzc19wZW5kaW5nICpvbiBvbmUgb2YgdGhlIHZDUFVzKg0KPj4+
Pj4+PiBhbmQgd2UgY2FsbCB2cGNpX3JlbW92ZV9kZXZpY2UuIHZwY2lfcmVtb3ZlX2RldmljZSB0
cmllcyB0byBhY3F1aXJlIHRoZQ0KPj4+Pj4+PiBsb2NrIGFuZCBpdCBjYW4ndCBqdXN0IGJlY2F1
c2UgdGhlcmUgYXJlIHNvbWUgb3RoZXIgdnBjaSBjb2RlIGlzIHJ1bm5pbmcgb24gb3RoZXIgdkNQ
VS4NCj4+Pj4+Pj4gVGhlbiB3aGF0IGRvIHdlIGRvIGhlcmU/IFdlIGFyZSBpbiBTb2Z0SVJRIGNv
bnRleHQgbm93IGFuZCB3ZSBjYW4ndCBzcGluDQo+Pj4+Pj4+IHRyeWluZyB0byBhY3F1aXJlIGQt
PnZwY2lfcndsb2NrIGZvcmV2ZXIuIE5laXRoZXIgd2UgY2FuIGJsaW5kbHkgZnJlZSB2cGNpDQo+
Pj4+Pj4+IHN0cnVjdHVyZSBiZWNhdXNlIGl0IGlzIHNlZW4gYnkgYWxsIHZDUFVzIGFuZCBtYXkg
Y3Jhc2ggdGhlbS4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gSWYgdnBjaV9yZW1vdmVfZGV2aWNlIGlzIGlu
IGh5cGVyY2FsbCBjb250ZXh0IGl0IGp1c3QgcmV0dXJucyAtRVJFU1RBUlQgYW5kDQo+Pj4+Pj4+
IGh5cGVyY2FsbCBjb250aW51YXRpb24gaGVscHMgaGVyZS4gQnV0IG5vdCBpbiBTb2Z0SVJRIGNv
bnRleHQuDQo+Pj4+Pj4gTWF5YmUgdGhlbiB5b3Ugd2FudCB0byBpbnZva2UgdGhpcyBjbGVhbnVw
IGZyb20gUkNVIGNvbnRleHQgKHdoZXRoZXINCj4+Pj4+PiB2cGNpX3JlbW92ZV9kZXZpY2UoKSBp
dHNlbGYgb3IgYSBzdWl0YWJsZSBjbG9uZSB0aGVyZSBvZiBpcyBUQkQpPyAoSQ0KPj4+Pj4+IHdp
bGwgYWRtaXQgdGhvdWdoIHRoYXQgSSBkaWRuJ3QgY2hlY2sgd2hldGhlciB0aGF0IHdvdWxkIHNh
dGlzZnkgYWxsDQo+Pj4+Pj4gY29uc3RyYWludHMuKQ0KPj4+Pj4+DQo+Pj4+Pj4gVGhlbiBhZ2Fp
biBpdCBhbHNvIGhhc24ndCBiZWNvbWUgY2xlYXIgdG8gbWUgd2h5IHlvdSB1c2Ugd3JpdGVfdHJ5
bG9jaygpDQo+Pj4+Pj4gdGhlcmUuIFRoZSBsb2NrIGNvbnRlbnRpb24geW91IGRlc2NyaWJlIGRv
ZXNuJ3QsIG9uIHRoZSBzdXJmYWNlLCBsb29rDQo+Pj4+Pj4gYW55IGRpZmZlcmVudCBmcm9tIHNp
dHVhdGlvbnMgZWxzZXdoZXJlLg0KPj4+Pj4gSSB1c2Ugd3JpdGVfdHJ5bG9jayBpbiB2cGNpX3Jl
bW92ZV9kZXZpY2UgYmVjYXVzZSBpZiB3ZSBjYW4ndA0KPj4+Pj4gYWNxdWlyZSB0aGUgbG9jayB0
aGVuIHdlIGRlZmVyIGRldmljZSByZW1vdmFsLiBUaGlzIHdvdWxkIHdvcmsNCj4+Pj4+IHdlbGwg
aWYgY2FsbGVkIGZyb20gYSBoeXBlcmNhbGwgd2hpY2ggd2lsbCBlbXBsb3kgaHlwZXJjYWxsIGNv
bnRpbnVhdGlvbi4NCj4+Pj4+IEJ1dCBTb2Z0SVJRIGdldHRpbmcgLUVSRVNUQVJUIGlzIHNvbWV0
aGluZyB0aGF0IHdlIGNhbid0IHByb2JhYmx5DQo+Pj4+PiBoYW5kbGUgYnkgcmVzdGFydGluZyBh
cyBoeXBlcmNhbGwgY2FuLCB0aHVzIEkgb25seSBzZWUgdGhhdCB2cGNpX3Byb2Nlc3NfcGVuZGlu
Zw0KPj4+Pj4gd2lsbCBuZWVkIHRvIHNwaW4gYW5kIHdhaXQgdW50aWwgdnBjaV9yZW1vdmVfZGV2
aWNlIHN1Y2NlZWRzLg0KPj4+PiBEb2VzIGFueWJvZHkgaGF2ZSBhbnkgYmV0dGVyIHNvbHV0aW9u
IGZvciBwcmV2ZW50aW5nIFNvZnRJUlEgZnJvbQ0KPj4+PiBzcGlubmluZyBvbiB2cGNpX3JlbW92
ZV9kZXZpY2UgYW5kIC1FUkVTVEFSVD8NCj4+PiBXZWxsLCBhdCB0aGlzIHBvaW50IEkgY2FuIHN1
Z2dlc3Qgb25seSBhIG1hcmdpbmFsIGltcHJvdmVtZW50OiBJbnN0ZWFkIG9mDQo+Pj4gc3Bpbm5p
bmcgaW5zaWRlIHRoZSBzb2Z0aXJxIGhhbmRsZXIsIHlvdSB3YW50IHRvIHJlLXJhaXNlIHRoZSBz
b2Z0aXJxIGFuZA0KPj4+IGV4aXQgdGhlIGhhbmRsZXIuIFRoYXQgd2F5IGF0IGxlYXN0IGhpZ2hl
ciAicHJpb3JpdHkiIHNvZnRpcnFzIHdvbid0IGJlDQo+Pj4gc3RhcnZlZC4NCj4+Pg0KPj4+IEJl
eW9uZCB0aGF0IC0gbWF5YmUgdGhlIGd1ZXN0IChvciBqdXN0IGEgdmNwdSBvZiBpdCkgbmVlZHMg
cGF1c2luZyBpbiBzdWNoDQo+Pj4gYW4gZXZlbnQsIHdpdGggdGhlIHdvcmsgZGVmZXJyZWQgdG8g
YSB0YXNrbGV0Pw0KPj4+DQo+Pj4gWWV0IEkgZG9uJ3QgdGhpbmsgbXkgZWFybGllciBxdWVzdGlv
biByZWdhcmRpbmcgdGhlIHVzZSBvZiB3cml0ZV90cnlsb2NrKCkNCj4+PiB3YXMgcmVhbGx5IGFu
c3dlcmVkLiBXaGF0IHlvdSBzYWlkIGluIHJlcGx5IGRvZXNuJ3QgZXhwbGFpbiAodG8gbWUgYXQN
Cj4+PiBsZWFzdCkgd2h5IHdyaXRlX2xvY2soKSBpcyBub3QgYW4gb3B0aW9uLg0KPj4gSSB3YXMg
dGhpbmtpbmcgdGhhdCB3ZSBkbyBub3Qgd2FudCB0byBmcmVlemUgaW4gY2FzZSB3ZSBhcmUgY2Fs
bGluZyB2cGNpX3JlbW92ZV9kZXZpY2UNCj4+IGZyb20gU29mdElSUSBjb250ZXh0LCB0aHVzIHdl
IHRyeSB0byBsb2NrIGFuZCBpZiB3ZSBjYW4ndCB3ZSByZXR1cm4gLUVSRVNUQVJUDQo+PiBpbmRp
Y2F0aW5nIHRoYXQgdGhlIHJlbW92YWwgbmVlZHMgdG8gYmUgZGVmZXJyZWQuIElmIHdlIHVzZSB3
cml0ZV9sb2NrLCB0aGVuDQo+PiBTb2Z0SVJRIC0+IHdyaXRlX2xvY2sgd2lsbCBzcGluIHRoZXJl
IHdhaXRpbmcgZm9yIHJlYWRlcnMgdG8gcmVsZWFzZSB0aGUgbG9jay4NCj4+DQo+PiB3cml0ZV9s
b2NrIGFjdHVhbGx5IG1ha2VzIHRoaW5ncyBhIGxvdCBlYXNpZXIsIGJ1dCBJIGp1c3QgZG9uJ3Qg
a25vdyBpZiBpdA0KPj4gaXMgb2sgdG8gdXNlIGl0LiBJZiBzbywgdGhlbiB2cGNpX3JlbW92ZV9k
ZXZpY2UgYmVjb21lcyBzeW5jaHJvbm91cyBhbmQNCj4+IHRoZXJlIGlzIG5vIG5lZWQgaW4gaHlw
ZXJjYWxsIGNvbnRpbnVhdGlvbiBhbmQgb3RoZXIgaGVhdnkgbWFjaGluZXJ5IGZvcg0KPj4gcmUt
c2NoZWR1bGluZyBTb2Z0SVJRLi4uDQo+IEknbSBpbmNsaW5lZCB0byBhc2s6IElmIGl0IHdhc24n
dCBva2F5IHRvIHVzZSBoZXJlLCB0aGVuIHdoZXJlIHdvdWxkIGl0IGJlDQo+IG9rYXkgdG8gdXNl
PyBPZiBjb3Vyc2UgSSByZWFsaXplIHRoZXJlIGFyZSBjYXNlcyB3aGVuIGxvbmcgc3Bpbm5pbmcg
dGltZXMNCj4gY2FuIGJlIGEgcHJvYmxlbS4NCkkgY2FuJ3QgcHJvdmUsIGJ1dCBJIGhhdmUgYSBm
ZWVsaW5nIHRoYXQgd3JpdGVfbG9jayBjb3VsZCBiZSBsZXNzDQoiaGFybWZ1bCIgaW4gY2FzZSBv
ZiBhIGh5cGVyY2FsbCByYXRoZXIgdGhhbiBTb2Z0SVJRDQo+ICAgQnV0IEkgZXhwZWN0IHRoZXJl
IGFyZW4ndCBnb2luZyB0byBiZSBleGNlc3NpdmVseSBsb25nDQo+IGxvY2sgaG9sZGluZyByZWdp
b25zIGZvciB0aGlzIGxvY2ssIGFuZCBJIGFsc28gd291bGQgZXhwZWN0IGF2ZXJhZ2UNCj4gY29u
dGVudGlvbiB0byBub3QgYmUgb3Zlcmx5IGJhZC4NClllcywgdGhpcyBpcyBteSBpbXByZXNzaW9u
IGFzIHdlbGwNCj4gICBCdXQgaW4gdGhlIGVuZCB5b3Uga25vdyBiZXR0ZXIgdGhlIGNvZGUNCj4g
dGhhdCB5b3UncmUgd3JpdGluZyAoYW5kIHdoaWNoIG1heSBsZWFkIHRvIGlzc3VlcyB3aXRoIHRo
ZSBsb2NrIHVzYWdlKSB0aGFuDQo+IEkgZG8gLi4uDQpJIGFtIHByZXR0eSBtdWNoIG9rIHdpdGgg
d3JpdGVfbG9jayBhcyBpdCBkb2VzIG1ha2UgdGhpbmdzIHdheSBlYXNpZXIuDQpTbyBJJ2xsIGdv
dCB3aXRoIHdyaXRlX2xvY2sgdGhlbiBhbmQgaWYgd2Ugc3BvdCBncmVhdCBjb250ZW50aW9uIHRo
ZW4gd2UNCmNhbiBpbXByb3ZlIHRoYXQNCj4NCj4gSmFuDQo+DQpUaGFuayB5b3UhIQ0KT2xla3Nh
bmRy


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 15:20:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 15:20:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228972.396257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpB6r-0006iO-6z; Mon, 22 Nov 2021 15:19:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228972.396257; Mon, 22 Nov 2021 15:19:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpB6r-0006iH-3K; Mon, 22 Nov 2021 15:19:57 +0000
Received: by outflank-mailman (input) for mailman id 228972;
 Mon, 22 Nov 2021 15:19:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/AbN=QJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mpB6p-0006iB-Ao
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 15:19:55 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20619.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a40b564c-4ba7-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 16:19:53 +0100 (CET)
Received: from AM5PR04CA0017.eurprd04.prod.outlook.com (2603:10a6:206:1::30)
 by AM8PR08MB6434.eurprd08.prod.outlook.com (2603:10a6:20b:369::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Mon, 22 Nov
 2021 15:19:50 +0000
Received: from VE1EUR03FT008.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:206:1:cafe::f9) by AM5PR04CA0017.outlook.office365.com
 (2603:10a6:206:1::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Mon, 22 Nov 2021 15:19:50 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT008.mail.protection.outlook.com (10.152.18.75) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 15:19:49 +0000
Received: ("Tessian outbound a33f292be81b:v110");
 Mon, 22 Nov 2021 15:19:48 +0000
Received: from 21d213a1bd1d.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 3BAD1C1C-2F51-4FFF-8F4E-691FDA3E6E67.1; 
 Mon, 22 Nov 2021 15:19:38 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 21d213a1bd1d.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 22 Nov 2021 15:19:38 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM5PR0802MB2515.eurprd08.prod.outlook.com (2603:10a6:203:9f::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 15:19:35 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 15:19:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a40b564c-4ba7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=42344sngtbG94OAdW8CuncTwOHEpUf1J9q6GjCHxGHc=;
 b=X4bCSzX7ayC3IB20myoTW0zdiAyh7I1/ALa3lS/ROqO7i79AeiF2xBms/A6rYFOYZK0sYZYWNPpK/QH/0vpdRST0BWaBaBn5+bDqlJikiAfWlfe7oTsyiD7ksJIYNniCh6W0iXy9LVAdAB+3w+igHrqIZQE2bwZ8KAAg6j3egXg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: d404f9a2bdc2a215
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZzcvpdIf0KLJDir6Lqhu5ZJWiu8hiAyw2axZQO98lp4lv9JYEB9Zxz3RJnY87bSSnq+Seoqm4fhR9ZEOfxM8lWZDzaWkCUW1cVG81pODJffS/lqC9gOc6oEHTBbV4aglRS4Un1mtNAzLUtm6M3GdC4457m/DPG0aF+op3kvRqIIqJZTHbRCalFL+3efdlP4ba4Re+LU43a42N4UpCp6icyAmGrBTrV+eaBSNClmDaMq/u2cVzIy7FOWHyYwQEg56eHBUAM19tV8l6FsOo9qgt91AXtcWj7NLZGyuVxkFTx8A1ejEa4//YoYSfQqqwkBP5m8EgTKBswvVHjoKyGi/Cw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=42344sngtbG94OAdW8CuncTwOHEpUf1J9q6GjCHxGHc=;
 b=KOBHZPa3eH9MqNNrJNUX4FRmbcZAzC5XT/9xSbaoYC07N8XWkn4ko29Scz/0bNcfR79DTQiKv/VnQiMdbwF+QKjtXIWcNupT5+d3stwySL840GPkPOwAVRAyfNcA2jLA+uBRbihcV4s/bs1w1nKcnvCewXZB4DlTw1fiUMB+8DEwXdWcGt2imN8J2WnruzJBlAvcF8VuhW5pPuukFvWueJJQmxxm7zx8YdzqaXHwemE4XooTPpbtvXhv5xVBn7nUjh8OoOnSGblyBsGATrrLd8a5tzyp0pURSsxeFpPDWsQrVtWZV/65BYQTC6aTJ/ysxKvFcocra2ShWKVDW7KqOg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=42344sngtbG94OAdW8CuncTwOHEpUf1J9q6GjCHxGHc=;
 b=X4bCSzX7ayC3IB20myoTW0zdiAyh7I1/ALa3lS/ROqO7i79AeiF2xBms/A6rYFOYZK0sYZYWNPpK/QH/0vpdRST0BWaBaBn5+bDqlJikiAfWlfe7oTsyiD7ksJIYNniCh6W0iXy9LVAdAB+3w+igHrqIZQE2bwZ8KAAg6j3egXg=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
CC: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
	"stefano.stabellini@xilinx.com" <stefano.stabellini@xilinx.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, "jbeulich@suse.com"
	<jbeulich@suse.com>, "Volodymyr_Babchuk@epam.com"
	<Volodymyr_Babchuk@epam.com>, Rahul Singh <Rahul.Singh@arm.com>
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Thread-Topic: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Thread-Index: AQHX3WXgMxQOWtsAQkCagYrL+eVmYKwLGnaAgASCuICAABC7AA==
Date: Mon, 22 Nov 2021 15:19:35 +0000
Message-ID: <E4540315-A2A9-40A9-A4A7-E588A877999C@arm.com>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
 <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org>
 <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com>
In-Reply-To: <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 7fb1efb8-35ca-4938-ebfa-08d9adcb867c
x-ms-traffictypediagnostic: AM5PR0802MB2515:|AM8PR08MB6434:
X-Microsoft-Antispam-PRVS:
	<AM8PR08MB6434E6A43095B38A1056D2BC9D9F9@AM8PR08MB6434.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 kWe5cGjZ+y708roTZE6KtcBcar9gnR8k4sA96B6QGMCC2BFDL1vXd0/mLtbdPSkjFECyhJF12ElGV4cQ2jbI+CuKCZDv7ixyteE0AYrYCd5y3+M1FFW35V7HC7ZnuD/26E7bOwosN0ELyBpW7v5omFUqFU/frdHfBVS3/2XRZMEFpxds4K7OtqDaJ47bb53QqbO9uejqenV3TpDYxol+6junvJ43soOHQ5v2uqVZoyNpbYvKF/oNAfv4jszLXmpv5nqmhiY/oRQNeQHbD13W8Z6IRgruJbVXsVlD+CO/TPCLnIUI2tycvJZtJfzmEZBfYfbnBQdPxS+p5p8so4Zx0DbU0MON+d2qwl1CBunniFV32nTaOzalrUEHz8zq8vnXFOet1IApHNULBowKr3Ryxxdmq7Y1Rz8qiihewpplAPe+GaOPE3xQoVpwcL+PMatIhFelnh6BXxEVI2Uti+RYpKEtWye1DKZmHAJ2lWPgDkPCNxUBLamGIisN9X8tavrGWMnxEz3G2M/dRMpPqI23bEtlsEc4Qf+NwU/Y8j1LwZVvM8tic1yuugvQf9pqIPmSQ2Ne/z6nufArD4hUakmw+AkLNw5IFrK8dtonYneTCQmjg/c3WyyhuCZOGhECDHy9pkt0UZyTKjiJXTRrrtgo1djwRfZCj20rWH5logiyx+e1Ucw0aHxRCEstqyTKugs+m3ONV7TjgbXOfzAhxdOuGzyoG4BZu5sTrCYDa3/XTfAZ/3wqPAmx5dMhshdB1tH+OB+6W75zgRKWq8iZ5W4wL0uKfbQTkFgT62hcAY8NfpCb/CiH48hdKeI761lChLnw1BArVOmLI1EdzeMhUbzbhQ==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66476007)(91956017)(76116006)(66946007)(38070700005)(86362001)(966005)(2616005)(316002)(6916009)(66446008)(66556008)(33656002)(53546011)(64756008)(71200400001)(6486002)(38100700002)(8936002)(508600001)(6506007)(4326008)(54906003)(26005)(36756003)(122000001)(186003)(5660300002)(8676002)(6512007)(2906002)(83380400001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <4329B797BE9AB94B86B9C7542918D25A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2515
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT008.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	fc7679b9-a3c5-4458-ff4e-08d9adcb7e49
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Lakbc5UdkY8XSEpY9cBLhdMqE8sRw72RV4f3HM5LUXE+by6NLWD9KINDMWdqQ6uvc/KB/GiccQ7hSCT5eajM71lhyMZN9g1Tk5Gu8QF6dtCgK0BXqOMgX7A0HDuIUs+RuYakNcJrb62gpMkrel0kRpGXy4fyhvUAYbVsoASrwy1V8SejuAtdDMvEVlZvz49kx2GzBrK8BEebpz/ozLTvT0myRNN3hyKPZChhIDNyeRD1PR0luOC2+Hfg30jCD0OHV+SwSJ8+SofSot1TzXrgchKC7RtWZKNNkbAUm3ADjl+orEupEQU3cawRqOo0oWDWpULWTronlBM+nJ5ApuFhVctFk06Rhj5tbviStO/JTRPi/x4favY9mgIwu5LEhwAbsPSPwqRM/Z5+CQh2Y0zPdfQWZKZ20TPHiKBKiM7/MLx5pHVvJmOJgZCKhaYQFfmSR9ENINRsB5wEtHc7AkYCMRc+txPdmIl3wDmtcfOT2SdeMLUFJTZR/Ut2qQNwpDZ8TlFnwK/py6ChVtzdV1uBSCOH6B7kIJw7gGzYZZLvonoUAZLGUD3emRJiT+wjHmrhCPO2X8G6qUAYBCH6Jo4AbqQG75rBXlUAHCseQJRgqc/7HcnvYhF809AbVCTv9IYYKkl9vLpvJ0elL6Ph1azefjlIB88fDAnSHT80jEWbi3OXKS3rst5D35sPhQS+kg7Q7w2KAd0+ifcTMjaAeT6kQIG067+XDeCTFyNmpQ5az+6+nylZzDzIHiutr8aMrVYN+NiA0kRXaLucDWWyGnz7nuGQQQUW+hytMn81qieMOF8=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(6506007)(966005)(186003)(36756003)(316002)(6512007)(356005)(5660300002)(82310400003)(8936002)(83380400001)(2616005)(336012)(53546011)(33656002)(6862004)(86362001)(6486002)(8676002)(47076005)(70206006)(36860700001)(508600001)(2906002)(70586007)(26005)(54906003)(81166007)(4326008);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 15:19:49.4456
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7fb1efb8-35ca-4938-ebfa-08d9adcb867c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT008.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6434

SGkgQXlhbg0KDQo+IE9uIDIyIE5vdiAyMDIxLCBhdCAxNDoxOSwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW4ua3VtYXIuaGFsZGVyQHhpbGlueC5jb20+IHdyb3RlOg0KPiANCj4gSGkgSnVsaWVuL1N0
ZWZhbm8vV2VpL0phbiwNCj4gDQo+IE1hbnkgdGhhbmtzIGZvciB5b3VyIHJldmlldy4NCj4gDQo+
IEFzIHNvbWUgb2YgdGhlIGNvbW1lbnRzIHdlcmUgaW50ZXItcmVsYXRlZCwgSSBoYXZlIGNvbnNv
bGlkYXRlZCBteSByZXNwb25zZSB0byBhbGwgdGhlIGNvbW1lbnRzIGJlbG93Lg0KPiANCj4gT24g
MTkvMTEvMjAyMSAxNzoyNiwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4gSGkgQXlhbiwNCj4+IE9u
IDE5LzExLzIwMjEgMTY6NTIsIEF5YW4gS3VtYXIgSGFsZGVyIHdyb3RlOg0KPj4+IEF0IHByZXNl
bnQsIHBvc3QgaW5kZXhpbmcgaW5zdHJ1Y3Rpb25zIGFyZSBub3QgZW11bGF0ZWQgYnkgWGVuLg0K
Pj4gQ2FuIHlvdSBleHBsYWluIGluIHRoZSBjb21taXQgbWVzc2FnZSB3aHkgdGhpcyBpcyBhIHBy
b2JsZW0/DQo+IA0KPiBZZXMsIEkgd2lsbCB1cGRhdGUgdGhlIG1lc3NhZ2UgYXMgYmVsb3cgOi0N
Cj4gQXJtdjggaGFyZHdhcmUgZG9lcyBub3QgcHJvdmlkZSB0aGUgY29ycmVjdCBzeW5kcm9tZSBm
b3IgZGVjb2RpbmcgcG9zdCBpbmRleGluZyBsZHIvc3RyIGluc3RydWN0aW9ucy4gVGh1cyBhbnkg
cG9zdCBpbmRleGluZyBsZHIvc3RyIGluc3RydWN0aW9uIGF0IEVMMSByZXN1bHRzIGluIGEgZGF0
YSBhYm9ydCB3aXRoIElTVj0wLiBBcyBhIHJlc3VsdCwgWGVuIG5lZWRzIHRvIGRlY29kZSB0aGUg
aW5zdHJ1Y3Rpb24uDQo+IA0KPiBUaHVzLCBEb21VIHdpbGwgYmUgYWJsZSB0byByZWFkL3dyaXRl
IHRvIGlvcmVnIHNwYWNlIHdpdGggcG9zdCBpbmRleGluZyBpbnN0cnVjdGlvbnMgZm9yIDMyIGJp
dC4NCj4gDQo+Pj4gV2hlbiBYZW4gZ2V0cyB0aGUgZXhjZXB0aW9uLCBFTDJfRVNSLklTViBiaXQg
bm90IHNldC4gVGh1cyBhcyBhDQo+Pj4gcmVzdWx0LCBkYXRhIGFib3J0IGlzIHRyaWdnZXJlZC4N
Cj4+PiANCj4+PiBBZGRlZCB0aGUgbG9naWMgdG8gZGVjb2RlIGxkci9zdHIgcG9zdCBpbmRleGlu
ZyBpbnN0cnVjdGlvbnMuDQo+Pj4gV2l0aCB0aGlzLCBYZW4gY2FuIGRlY29kZSBpbnN0cnVjdGlv
bnMgbGlrZSB0aGVzZTotDQo+Pj4gbGRyIHcyLCBbeDFdLCAjNA0KPj4+IFRodXMsIGRvbVUgY2Fu
IHJlYWQgaW9yZWcgd2l0aCBwb3N0IGluZGV4aW5nIGluc3RydWN0aW9ucy4NCj4+IEhtbW0uLi4u
IERvbid0IHlvdSBhbHNvIG5lZWQgdG8gdXBkYXRlIHRoZSByZWdpc3RlciB4MSBhZnRlciB0aGUg
aW5zdHJ1Y3Rpb24gd2FzIGVtdWxhdGVkPw0KPiANCj4gWWVzLCB0aGlzIGlzIGEgbWlzdGFrZS4g
WDEgbmVlZHMgdG8gYmUgaW5jcmVtZW50ZWQgYnkgNCBhZnRlciBXMiBpcyB3cml0dGVuLg0KPj4+
IA0KPj4+IFNpZ25lZC1vZmYtYnk6IEF5YW4gS3VtYXIgSGFsZGVyIDxheWFua3VtYUB4aWxpbngu
Y29tPg0KPj4+IC0tLQ0KPj4+IE5vdGUgdG8gcmV2aWV3ZXI6LQ0KPj4+IFRoaXMgcGF0Y2ggaXMg
YmFzZWQgb24gYW4gaXNzdWUgZGlzY3Vzc2VkIGluDQo+Pj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDIxLTExL21zZzAwOTY5Lmh0bWwgDQo+
Pj4gIlhlbi9BUk0gLSBRdWVyeSBhYm91dCBhIGRhdGEgYWJvcnQgc2VlbiB3aGlsZSByZWFkaW5n
IEdJQ0QgcmVnaXN0ZXJzIg0KPj4+IA0KPj4+IA0KPj4+ICAgeGVuL2FyY2gvYXJtL2RlY29kZS5j
IHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4+ICAg
eGVuL2FyY2gvYXJtL2lvLmMgICAgIHwgMTQgKysrKysrLS0NCj4+PiAgIDIgZmlsZXMgY2hhbmdl
ZCwgODggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4+PiANCj4+PiBkaWZmIC0tZ2l0
IGEveGVuL2FyY2gvYXJtL2RlY29kZS5jIGIveGVuL2FyY2gvYXJtL2RlY29kZS5jDQo+Pj4gaW5k
ZXggNzkyYzJlOTJhNy4uN2I2MGJlZGJjNSAxMDA2NDQNCj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0v
ZGVjb2RlLmMNCj4+PiArKysgYi94ZW4vYXJjaC9hcm0vZGVjb2RlLmMNCj4+PiBAQCAtODQsNiAr
ODQsODAgQEAgYmFkX3RodW1iMjoNCj4+PiAgICAgICByZXR1cm4gMTsNCj4+PiAgIH0NCj4+PiAr
c3RhdGljIGlubGluZSBpbnQzMl90IGV4dHJhY3QzMih1aW50MzJfdCB2YWx1ZSwgaW50IHN0YXJ0
LCBpbnQgbGVuZ3RoKQ0KPj4gQW55IHJlYXNvbiB0byBoYXZlIHN0YXJ0IGFuZCBsZW5ndGggc2ln
bmVkPw0KPiANCj4gQWdhaW4gYSBtaXN0YWtlLiBUaGVyZSBpcyBubyByZWFzb24gdG8gdXNlIHNp
Z25lZCB0eXBlcyBoZXJlIG9yIGluIHRoZSBvdGhlciBwbGFjZXMuDQo+IEFzIEphbiBCZXVsaWNo
IGhhcyBwb2ludGVkIG91dCwgSSBzaG91bGQgYmUgdXNpbmcgdW5zaWduZWQgaW50IGFzIHBlciB0
aGUgQ09ESU5HX1NUWUxFLg0KPj4+ICt7DQo+Pj4gKyAgICBpbnQzMl90IHJldDsNCj4+PiArDQo+
Pj4gKyAgICBpZiAoICEoc3RhcnQgPj0gMCAmJiBsZW5ndGggPiAwICYmIGxlbmd0aCA8PSAzMiAt
IHN0YXJ0KSApDQo+Pj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4gKw0KPj4+ICsgICAg
cmV0ID0gKHZhbHVlID4+IHN0YXJ0KSAmICh+MFUgPj4gKDMyIC0gbGVuZ3RoKSk7DQo+PiBUaGlz
IHdvdWxkIGJlIGVhc2llciB0byByZWFkIGlmIHlvdSB1c2UgR0VOTUFTSygpLg0KPiANCj4gSSBz
ZWUgdGhhdCBHRU5NQVNLIHJldHVybnMgYSByZWdpc3RlciBtYXNrLiBJbiBteSBzY2VuYXJpbywg
SSB3aXNoIHRvIGNvbXBhcmUgdGhlIG9mZnNldHMgMTAsIDIxLCAyNCBhbmQgMjcgdG8gc29tZSBm
aXhlZCB2YWx1ZS4NCj4gDQo+IFNvLCBpbnN0ZWFkIG9mIHVzaW5nIEdFTk1BU0sgZm91ciB0aW1l
cywgSSBjYW4gdHJ5IHRoZSBmb2xsb3dpbmcNCj4gaW5zdHIgJiBNQVNLX2Zvcl8xMF8yMV8yNF8y
NyA9PSBWQUxJRF9mb3JfMTBfMjFfMjRfMjcgKFdlaSBDaGVuJ3Mgc3VnZ2VzdGlvbikNCj4gDQo+
IA0KPiBBbHNvIGZvciBzaXplLCB2IGFuZCBvcGMsIEkgY2FuIGRlZmluZWQgYW5vdGhlciBiaXRt
YXNrIHRvIGNvbXBhcmUgd2l0aCBWQUxJRF9mb3JfMzJiaXRfTERSIHwgVkFMSURfZm9yXzMyYml0
X1NUUi4NCj4gDQo+IFdlaSBDaGVuLCBZb3UgaGFkIHN1Z2dlc3RlZCB1c2luZyB2cmVnX3JlZ3hf
ZXh0cmFjdCgpLiBIb3dldmVyLCBJIHNlZSB0aGF0IGl0IGlzIHVzZWQgdG8gZXh0cmFjdCB0aGUg
Y29tcGxldGUgdTY0IHJlZ2lzdGVyIHZhbHVlLiBJbiB0aGlzIGNhc2UsIEkgd2lzaCB0byBjb21w
YXJlIGNlcnRhaW4gb2Zmc2V0cyB3aXRoaW4gYSAzMiBiaXQgcmVnaXN0ZXIgdG8gc29tZSBleHBl
Y3RlZCB2YWx1ZXMuIFNvLCB2cmVnX3JlZ3hfZXh0cmFjdCgpIG1pZ2h0IG5vdCBiZSBhcHByb3By
aWF0ZSBhbmQgd2UgY2FuIHVzZSB0aGUgbWV0aG9kIG1lbnRpb25lZCBiZWZvcmUuDQo+IA0KPj4+
ICsNCj4+PiArICAgIHJldHVybiByZXQ7DQo+Pj4gK30NCj4+PiArDQo+Pj4gK3N0YXRpYyBpbnQg
ZGVjb2RlXzY0Yml0X2xvYWRzdG9yZV9wb3N0aW5kZXhpbmcocmVnaXN0ZXJfdCBwYywgc3RydWN0
IGhzcl9kYWJ0ICpkYWJ0KQ0KPj4+ICt7DQo+Pj4gKyAgICB1aW50MzJfdCBpbnN0cjsNCj4+PiAr
ICAgIGludCBzaXplOw0KPj4+ICsgICAgaW50IHY7DQo+Pj4gKyAgICBpbnQgb3BjOw0KPj4+ICsg
ICAgaW50IHJ0Ow0KPj4+ICsgICAgaW50IGltbTk7DQo+PiBTaG91bGQgYWxsIHRob3NlIHZhcmlh
YmxlcyBuZWVkIHRvIGJlIHNpZ25lZD8NCj4gDQo+IEEgbWlzdGFrZS4gSSB3aWxsIGNoYW5nZSB0
aGVtIHRvIHVuc2lnbmVkIGludC4NCj4+PiArDQo+Pj4gKyAgICAvKiBGb3IgZGV0YWlscyBvbiBk
ZWNvZGluZywgcmVmZXIgdG8gQXJtdjggQXJjaGl0ZWN0dXJlIHJlZmVyZW5jZSBtYW51YWwNCj4+
PiArICAgICAqIFNlY3Rpb24gLSAiTG9hZC9zdG9yZSByZWdpc3RlciAoaW1tZWRpYXRlIHBvc3Qt
aW5kZXhlZCkiLCBQZyAzMTgNCj4+IFRoZSBwYWdlIG51bWJlciB2YXJpZXMgYmV0d2VlbiByZXZp
c2lvbiBvZiB0aGUgQXJtdjggc3BlYy4gU28gY2FuIHlvdSBzcGVjaWZ5IHdoaWNoIHZlcnNpb24g
eW91IHVzZWQ/DQo+IA0KPiBBY2suIEkgd2lsbCBtZW50aW9uIHRoZSB2ZXJzaW9uLg0KPj4+ICsg
ICAgKi8NCj4+IFRoZSBjb2Rpbmcgc3R5bGUgZm9yIGNvbW1lbnQgaW4gWGVuIGlzOg0KPj4gLyoN
Cj4+ICAqIEZvbw0KPj4gICogQmFyDQo+PiAgKi8NCj4gQWNrDQo+Pj4gKyAgICBpZiAoIHJhd19j
b3B5X2Zyb21fZ3Vlc3QoJmluc3RyLCAodm9pZCAqIF9fdXNlcilwYywgc2l6ZW9mIChpbnN0cikp
ICkNCj4+PiArICAgICAgICByZXR1cm4gLUVGQVVMVDsNCj4+PiArDQo+Pj4gKyAgICAvKiBGaXJz
dCwgbGV0J3MgY2hlY2sgZm9yIHRoZSBmaXhlZCB2YWx1ZXMgKi8NCj4+PiArDQo+Pj4gKyAgICAv
KiAgQXMgcGVyIHRoZSAiRW5jb2RpbmcgdGFibGUgZm9yIHRoZSBMb2FkcyBhbmQgU3RvcmVzIGdy
b3VwIiwgUGcgMjk5DQo+PiBTYW1lIHF1ZXN0aW9uIGhlcmUgYWJvdXQgdGhlIHZlcnNpb24uDQo+
IEFjaywgSSB3aWxsIG1lbnRpb24gdGhlIHZlcnNpb24uDQo+IA0KPj4+ICsgICAgICogb3A0ID0g
MSAtIExvYWQvc3RvcmUgcmVnaXN0ZXIgKGltbWVkaWF0ZSBwb3N0LWluZGV4ZWQpDQo+Pj4gKyAg
ICAgKi8NCj4+IENvZGluZyBzdHlsZS4NCj4gQWNrDQo+IA0KPj4+ICsgICAgaWYgKCBleHRyYWN0
MzIoaW5zdHIsIDEwLCAyKSAhPSAxICkNCj4+PiArICAgICAgICBnb3RvIGJhZF82NGJpdF9sb2Fk
c3RvcmU7DQo+Pj4gKw0KPj4+ICsgICAgLyogRm9yIHRoZSBmb2xsb3dpbmcsIHJlZmVyIHRvICJM
b2FkL3N0b3JlIHJlZ2lzdGVyIChpbW1lZGlhdGUgcG9zdC1pbmRleGVkKSINCj4+PiArICAgICAq
IHRvIGdldCB0aGUgZml4ZWQgdmFsdWVzIGF0IHZhcmlvdXMgYml0IHBvc2l0aW9ucy4NCj4+PiAr
ICAgICAqLw0KPj4+ICsgICAgaWYgKCBleHRyYWN0MzIoaW5zdHIsIDIxLCAxKSAhPSAwICkNCj4+
PiArICAgICAgICBnb3RvIGJhZF82NGJpdF9sb2Fkc3RvcmU7DQo+Pj4gKw0KPj4+ICsgICAgaWYg
KCBleHRyYWN0MzIoaW5zdHIsIDI0LCAyKSAhPSAwICkNCj4+PiArICAgICAgICBnb3RvIGJhZF82
NGJpdF9sb2Fkc3RvcmU7DQo+Pj4gKw0KPj4+ICsgICAgaWYgKCBleHRyYWN0MzIoaW5zdHIsIDI3
LCAzKSAhPSA3ICkNCj4+PiArICAgICAgICBnb3RvIGJhZF82NGJpdF9sb2Fkc3RvcmU7DQo+Pj4g
Kw0KPj4+ICsgICAgc2l6ZSA9IGV4dHJhY3QzMihpbnN0ciwgMzAsIDIpOw0KPj4+ICsgICAgdiA9
IGV4dHJhY3QzMihpbnN0ciwgMjYsIDEpOw0KPj4+ICsgICAgb3BjID0gZXh0cmFjdDMyKGluc3Ry
LCAyMiwgMSk7DQo+IA0KPiBTdGVmYW5vOi0gVGhhbmtzIGZvciBjYXRjaGluZyBteSBtaXN0YWtl
LiBvcGMgaXMgMiBiaXRzIChiaXRzIDIyLCAyMykuIEkgd2lsbCBmaXggdGhpcy4NCj4gDQo+Pj4g
Kw0KPj4+ICsgICAgLyogQXQgdGhlIG1vbWVudCwgd2Ugc3VwcG9ydCBTVFIoaW1tZWRpYXRlKSAt
IDMyIGJpdCB2YXJpYW50IGFuZA0KPj4+ICsgICAgICogTERSKGltbWVkaWF0ZSkgLSAzMiBiaXQg
dmFyaWFudCBvbmx5Lg0KPj4+ICsgICAgICovDQo+PiBDb2Rpbmcgc3R5bGUuDQo+IEFjaw0KPiAN
Cj4+PiArICAgIGlmICghKChzaXplPT0yKSAmJiAodj09MCkgJiYgKChvcGM9PTApIHx8IChvcGM9
PTEpKSkpDQo+Pj4gDQo+PiBUaGUgY29kaW5nIHN0eWxlIGZvciB0aGlzIHNob3VsZCBiZToNCj4+
IGlmICggISgoIHNpemUgPT0gMiApICYmICggLi4uICkgLi4uICkgKQ0KPiBBY2sNCj4gDQo+PiAg
KyAgICAgICAgZ290byBiYWRfNjRiaXRfbG9hZHN0b3JlOw0KPj4+ICsNCj4+PiArICAgIHJ0ID0g
ZXh0cmFjdDMyKGluc3RyLCAwLCA1KTsNCj4+PiArICAgIGltbTkgPSBleHRyYWN0MzIoaW5zdHIs
IDEyLCA5KTsNCj4+PiArDQo+Pj4gKyAgICBpZiAoIGltbTkgPCAwICkNCj4+PiArICAgICAgICB1
cGRhdGVfZGFidChkYWJ0LCBydCwgc2l6ZSwgdHJ1ZSk7DQo+Pj4gKyAgICBlbHNlDQo+Pj4gKyAg
ICAgICAgdXBkYXRlX2RhYnQoZGFidCwgcnQsIHNpemUsIGZhbHNlKTsNCj4+IFRoaXMgY291bGQg
YmUgc2ltcGxpZmllZCB3aXRoOg0KPj4gdXBkYXRlX2RhYnQoZGFidCwgcnQsIHNpemUsIGltbTkg
PCAwKTsNCj4gQWNrDQo+IA0KPj4+ICsNCj4+PiArICAgIGRhYnQtPnZhbGlkID0gMTsNCj4+PiAr
DQo+Pj4gKw0KPj4+ICsgICAgcmV0dXJuIDA7DQo+Pj4gK2JhZF82NGJpdF9sb2Fkc3RvcmU6DQo+
Pj4gKyAgICBncHJpbnRrKFhFTkxPR19FUlIsICJ1bmhhbmRsZWQgNjRiaXQgaW5zdHJ1Y3Rpb24g
MHgleFxuIiwgaW5zdHIpOw0KPj4+ICsgICAgcmV0dXJuIDE7DQo+Pj4gK30NCj4+PiArDQo+Pj4g
ICBzdGF0aWMgaW50IGRlY29kZV90aHVtYihyZWdpc3Rlcl90IHBjLCBzdHJ1Y3QgaHNyX2RhYnQg
KmRhYnQpDQo+Pj4gICB7DQo+Pj4gICAgICAgdWludDE2X3QgaW5zdHI7DQo+Pj4gQEAgLTE1NSw2
ICsyMjksOSBAQCBpbnQgZGVjb2RlX2luc3RydWN0aW9uKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9y
ZWdzICpyZWdzLCBzdHJ1Y3QgaHNyX2RhYnQgKmRhYnQpDQo+Pj4gICAgICAgaWYgKCBpc18zMmJp
dF9kb21haW4oY3VycmVudC0+ZG9tYWluKSAmJiByZWdzLT5jcHNyICYgUFNSX1RIVU1CICkNCj4+
PiAgICAgICAgICAgcmV0dXJuIGRlY29kZV90aHVtYihyZWdzLT5wYywgZGFidCk7DQo+Pj4gKyAg
ICBpZiAoIGlzXzY0Yml0X2RvbWFpbihjdXJyZW50LT5kb21haW4pICkNCj4+IFlvdSBjYW4gc3Rp
bGwgcnVuIDMyLWJpdCBjb2RlIGluIDY0LWJpdCBkb21haW4uIFNvIEkgdGhpbmsgeW91IHdhbnQg
dG8gY2hlY2sgdGhlIFNQU1IgbW9kZS4NCj4gDQo+IERvIHlvdSBtZWFuIHRoZSBmb2xsb3dpbmcg
Y2hlY2sgOi0NCj4gaWYgKCAoaXNfNjRiaXRfZG9tYWluKGN1cnJlbnQtPmRvbWFpbikgJiYgKCEo
cmVncy0+c3BzciAmIFBTUl9NT0RFX0JJVCkpICkNCj4gDQo+Pj4gKyAgICAgICAgcmV0dXJuIGRl
Y29kZV82NGJpdF9sb2Fkc3RvcmVfcG9zdGluZGV4aW5nKHJlZ3MtPnBjLCBkYWJ0KTsNCj4+PiAr
DQo+Pj4gICAgICAgLyogVE9ETzogSGFuZGxlIEFSTSBpbnN0cnVjdGlvbiAqLw0KPj4+ICAgICAg
IGdwcmludGsoWEVOTE9HX0VSUiwgInVuaGFuZGxlZCBBUk0gaW5zdHJ1Y3Rpb25cbiIpOw0KPj4g
SSB0aGluayB0aGlzIGNvbW1lbnQgc2hvdWxkIG5vdyBiZSB1cGRhdGVkIHRvICJ1bmhhbmRsZWQg
MzItYml0IC4uLiIuDQo+IA0KPiBBY2sNCj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2lv
LmMgYi94ZW4vYXJjaC9hcm0vaW8uYw0KPj4+IGluZGV4IDcyOTI4N2UzN2MuLjQ5ZTgwMzU4YzAg
MTAwNjQ0DQo+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2lvLmMNCj4+PiArKysgYi94ZW4vYXJjaC9h
cm0vaW8uYw0KPj4+IEBAIC0xMDYsMTQgKzEwNiwxMyBAQCBlbnVtIGlvX3N0YXRlIHRyeV9oYW5k
bGVfbW1pbyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywNCj4+PiAgICAgICAgICAgLmdwYSA9
IGdwYSwNCj4+PiAgICAgICAgICAgLmRhYnQgPSBkYWJ0DQo+Pj4gICAgICAgfTsNCj4+PiArICAg
IGludCByYzsNCj4+PiAgICAgICBBU1NFUlQoaHNyLmVjID09IEhTUl9FQ19EQVRBX0FCT1JUX0xP
V0VSX0VMKTsNCj4+PiAgICAgICBoYW5kbGVyID0gZmluZF9tbWlvX2hhbmRsZXIodi0+ZG9tYWlu
LCBpbmZvLmdwYSk7DQo+Pj4gICAgICAgaWYgKCAhaGFuZGxlciApDQo+Pj4gICAgICAgew0KPj4+
IC0gICAgICAgIGludCByYzsNCj4+PiAtDQo+Pj4gICAgICAgICAgIHJjID0gdHJ5X2Z3ZF9pb3Nl
cnYocmVncywgdiwgJmluZm8pOw0KPj4+ICAgICAgICAgICBpZiAoIHJjID09IElPX0hBTkRMRUQg
KQ0KPj4+ICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZV9pb3NlcnYocmVncywgdik7DQo+Pj4g
QEAgLTEyMyw3ICsxMjIsMTYgQEAgZW51bSBpb19zdGF0ZSB0cnlfaGFuZGxlX21taW8oc3RydWN0
IGNwdV91c2VyX3JlZ3MgKnJlZ3MsDQo+Pj4gICAgICAgLyogQWxsIHRoZSBpbnN0cnVjdGlvbnMg
dXNlZCBvbiBlbXVsYXRlZCBNTUlPIHJlZ2lvbiBzaG91bGQgYmUgdmFsaWQgKi8NCj4+PiAgICAg
ICBpZiAoICFkYWJ0LnZhbGlkICkNCj4+PiAtICAgICAgICByZXR1cm4gSU9fQUJPUlQ7DQo+Pj4g
KyAgICB7DQo+Pj4gKyAgICAgICAgLyoNCj4+PiArICAgICAgICAgKiBQb3N0IGluZGV4aW5nIGxk
ci9zdHIgaW5zdHJ1Y3Rpb25zIGFyZSBub3QgZW11bGF0ZWQgYnkgWGVuLiBTbywgdGhlDQo+Pj4g
KyAgICAgICAgICogSVNTIGlzIGludmFsaWQuIEluIHN1Y2ggYSBzY2VuYXJpbywgd2UgdHJ5IHRv
IG1hbnVhbGx5IGRlY29kZSB0aGUNCj4+PiArICAgICAgICAgKiBpbnN0cnVjdGlvbiBmcm9tIHRo
ZSBwcm9ncmFtIGNvdW50ZXIuDQo+PiBJIGFtIGFmcmFpZCB0aGlzIGlzIHdyb25nLiBUaGUgcHJv
YmxlbSBoZXJlIGlzIHRoZSBwcm9jZXNzb3IgZGlkbid0IHByb3ZpZGUgYSB2YWxpZCBzeW5kcm9t
IGZvciBwb3N0LWluZGV4aW5nIGxkci9zdHIgaW5zdHJ1Y3Rpb25zLiBTbyBpbiBvcmRlciB0byBz
dXBwb3J0IHRoZW0sIFhlbiBtdXN0IGRlY29kZS4NCj4gDQo+IEFjaw0KPj4+ICsgICAgICAgICAq
Lw0KPj4+ICsgICAgICAgIHJjID0gZGVjb2RlX2luc3RydWN0aW9uKHJlZ3MsICZpbmZvLmRhYnQp
Ow0KPj4gSSBhY3R1YWxseSBleHBlY3QgdGhpcyB0byBhbHNvIGJlIHVzZWZ1bCB3aGVuIGZvcndh
cmRpbmcgdGhlIEkvTyB0byBkZXZpY2UtbW9kZWwuIFNvIEkgd291bGQgbW92ZSB0aGUgZGVjb2Rp
bmcgZWFybGllciBpbiB0aGUgY29kZSBhbmQgdGhlIGNoZWNrIG9mIGRhYnQudmFsaWQgZWFybGll
ci4NCj4gDQo+IFlvdSBtZWFuIEkgd2lsbCBtb3ZlIGRlY29kZV9pbnN0cnVjdGlvbigpIGJlZm9y
ZSBmaW5kX21taW9faGFuZGxlcigpID8NCj4gDQo+IFN0ZWZhbm8gPiBJdCBkb2Vzbid0IGxvb2sg
bGlrZSB3ZSBhcmUgc2V0dGluZyBkYWJ0LT53cml0ZSBhbnl3aGVyZS4NCj4gDQo+IEF5YW4gPiBZ
ZXMsIHRoaXMgaXMgYSBtaXNzLiBEZXBlbmRpbmcgb24gdGhlIG9wYywgdGhpcyBzaG91bGQgYmUg
dXBhZGV0ZWQgYWNjb3JkaW5nbHkgaW4gZGVjb2RlXzY0Yml0X2xvYWRzdG9yZV9wb3N0aW5kZXhp
bmcoKS4NCj4gDQo+IFN0ZWZhbm8gPiBBbHNvLCBpcyBpbmZvLmdwYSBpbiB0cnlfaGFuZGxlX21t
aW8gYWxyZWFkeSB1cGRhdGVkIGluIHRoZSBwcmUtaW5kZXgNCj4gY2FzZT8gSWYgbm90LCBkbyB3
ZSBuZWVkIHRvIGFwcGx5IHRoZSBvZmZzZXQgbWFudWFsbHkgaGVyZT8NCj4gDQo+IEF5YW4gPiBT
b3JyeSwgSSBkaWQgbm90IHVuZGVyc3RhbmQgeW91LiBUaGlzIHBhdGNoIGlzIG9ubHkgcmVsYXRl
ZCB0byB0aGUgcG9zdCBpbmRleGluZyBsZHIvc3RyIGlzc3VlLiBXaHkgZG8gd2UgbmVlZCB0byBj
aGVjayBmb3IgcHJlLWluZGV4aW5nID8NCj4gDQo+IFN0ZWZhbm8gPiBJbiB0aGUgcG9zdC1pbmRl
eCBjYXNlLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgYmFzZSBhZGRyZXNzIGluIHRoZSBSbg0KPiBy
ZWdpc3Rlcj8NCj4gDQo+IEF5YW4gPiBZZXMgdGhpcyBpcyBhIG1pc3Rha2UsIEFzIEp1bGllbiBw
b2ludGVkIG91dCBiZWZvcmUsIHRoZSByZWdpc3RlciB4MSBpZSBSbiBuZWVkcyB0byB0aGUgaW5j
cmVtZW50ZWQuDQo+IA0KPiBKYW4gPiBJbiBhZGRpdGlvbiB0byBKdWxpZW4ncyBjb21tZW50IHJl
Z2FyZGluZyB0aGUgZnVuY3Rpb24gcGFyYW1ldGVycyAtIHdoeQ0KPiBpcyB0aGUgcmV0dXJuIHR5
cGUgaW50MzJfdCBhbmQgbm90IHVpbnQzMl90PyBQbHVzIGFzIHBlciAuL0NPRElOR19TVFlMRQ0K
PiBpdCByZWFsbHkgc2hvdWxkbid0IGJlIGEgZml4ZWQgd2lkdGggdHlwZSBhbnl3YXksIGJ1dCBl
LmcuIHVuc2lnbmVkIGludC4NCj4gDQo+IEF5YW4gPiBZZXMsIHRoaXMgaXMgYSBtaXN0YWtlLiBJ
IHdpbGwgdXBkYXRlIGludDMyX3QgdG8gdW5zaWduZWQgaW50IGluIGFsbCB0aGUgcGxhY2VzLg0K
PiBIb3dldmVyIGZvciBleHRyYWN0MzIoKSwgSSBkb24ndCB0aGluayB3ZSBuZWVkIHRoaXMgZnVu
Y3Rpb24uIFJhdGhlciBXZWkncyBzdWdnZXN0aW9uIChpZSBpbnN0ciAmIE1BU0tfZm9yXzEwXzIx
XzI0XzI3ID09IFZBTElEX2Zvcl8xMF8yMV8yNF8yNyApIG1ha2VzIHRoZSBjb2RlIHNpbXBsZXIg
YW5kIHNob3J0ZXIuDQoNCkluIGZhY3QgeW91IGNvdWxkIGFsc28gdXNlIGEgdW5pb24gYW5kIGRl
ZmluZSBpbiBhIHN0cnVjdHVyZSB3aGF0IHRoZSBiaXRzIGFyZS4NCg0KVW5pb24gaW5zdHIgew0K
CXVpbnQzMl90IHZhbHVlDQoJc3RydWN0IHsNCiAgICAgICAgICAgIOKApi4NCiAgICAgICAgICAg
IFVuc2lnbmVkIGludCBzaXplOjI7DQogICAgICAgIH0NCn0NCg0KVGhpcyBjb3VsZCBzaW1wbGlm
eSBzb21lIG9mIHlvdXIgY29kZS4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQoNCj4gDQo+IC0gQXlh
bg0KPiANCj4+PiArICAgICAgICBpZiAoIHJjICkNCj4+PiArICAgICAgICAgICAgcmV0dXJuIElP
X0FCT1JUOw0KPj4+ICsgICAgfQ0KPj4+ICAgICAgIC8qDQo+Pj4gICAgICAgICogRXJyYXR1bSA3
NjY0MjI6IFRodW1iIHN0b3JlIHRyYW5zbGF0aW9uIGZhdWx0IHRvIEh5cGVydmlzb3IgbWF5DQo+
Pj4gDQo+PiBDaGVlcnMsDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 15:25:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 15:25:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228977.396267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBC7-00085C-Qb; Mon, 22 Nov 2021 15:25:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228977.396267; Mon, 22 Nov 2021 15:25:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBC7-000855-Na; Mon, 22 Nov 2021 15:25:23 +0000
Received: by outflank-mailman (input) for mailman id 228977;
 Mon, 22 Nov 2021 15:25:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/AbN=QJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mpBC6-00084z-01
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 15:25:22 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20619.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 67835c4a-4ba8-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 16:25:21 +0100 (CET)
Received: from AS9PR06CA0362.eurprd06.prod.outlook.com (2603:10a6:20b:460::9)
 by AS8PR08MB6405.eurprd08.prod.outlook.com (2603:10a6:20b:332::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 15:25:10 +0000
Received: from VE1EUR03FT021.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:460:cafe::3e) by AS9PR06CA0362.outlook.office365.com
 (2603:10a6:20b:460::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Mon, 22 Nov 2021 15:25:10 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT021.mail.protection.outlook.com (10.152.18.117) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 15:25:09 +0000
Received: ("Tessian outbound de6049708a0a:v110");
 Mon, 22 Nov 2021 15:25:08 +0000
Received: from 0d6075d5e7bb.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 014CA201-BE8C-46B3-AD89-D1478980A1EA.1; 
 Mon, 22 Nov 2021 15:24:57 +0000
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0d6075d5e7bb.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 22 Nov 2021 15:24:57 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB3493.eurprd08.prod.outlook.com (2603:10a6:20b:4a::30)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 15:24:53 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 15:24:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67835c4a-4ba8-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=I/jeV2nVYiJlFJ2o4bq2JF21N2qE9VVCkWudOQCYdJQ=;
 b=c3gBcwBFCWxZvSZPzlC4aXOgGwiBeeCVixYSsXTra/ZBv2l3hLFEDAaiB+IoMhRhTB6PfUkXuMXKV9oWKQy4MPidBMKt+PBvyQjeRT9lxV+VYDvprEcf7CHZ+wh/DZSTz+4a9fUqSUuyVsOXoVYM8JHNESWHQdQEc50QmjGMOwk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 159cdd01445732b8
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ca3BYX8MzsTwmpOnWsOinFvKUHdR9fCvu/UkusytfI1DIbzNwvcIxCJoOljEU+Rc0x9EvXtf4+Mu9MFiVNR0qTxr1KUXiuM/4gYLnudO2E+7+GNu5GMJ+4dFqaq1/yGrhOVglfy+/S5afqaQdvKQM6yN5BDUShjqyMhx/YS1LXK0z+LVka1pfriYsztPNCVoXHfkb02P1i+Jinzr6pssB3xM0NKRLTe+dDFqk3bGrRdAkkQAc+GoSiBYgGJ2w8sWgAjOHGovxosRjQbFY5ykV0v2DioN4x+aVdQowc9PKuc7wNmPeaU/gpwzBdekjFozqEEGFtzBTy1vBaJ7vce+rQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I/jeV2nVYiJlFJ2o4bq2JF21N2qE9VVCkWudOQCYdJQ=;
 b=Il4M1tFYZtY+0wxqNLx9WlXlV1kPOhCerZ+RD6zfnNGcpotOCXv3xFFizhU/suTCn77itT6Z+IOwQ78t5J4oks2TzQI+EknQDWhQwlIYRLHfaTGd2fGgvOLjhAlmal8XkB361ywn33gx5SYgUtJp/uotov9DhMNa9r4qw2FCoWcSRyv0WmKdxljf1jft+TUnTsec80N1cXdiTXD8iIiGNQ+6IycM+Eb0V67TSVjbDCXPuaFjqk7YMG/TNl8Et9MqWvYmm0AiixM422/7oZdNhEzb2v2CqR/OGopTexiOvy0XNNaTT+i0wL8XZjzt4wOrsoVgcjtqk5ArcuMUUltpRA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=I/jeV2nVYiJlFJ2o4bq2JF21N2qE9VVCkWudOQCYdJQ=;
 b=c3gBcwBFCWxZvSZPzlC4aXOgGwiBeeCVixYSsXTra/ZBv2l3hLFEDAaiB+IoMhRhTB6PfUkXuMXKV9oWKQy4MPidBMKt+PBvyQjeRT9lxV+VYDvprEcf7CHZ+wh/DZSTz+4a9fUqSUuyVsOXoVYM8JHNESWHQdQEc50QmjGMOwk=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Penny Zheng <Penny.Zheng@arm.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, "julien@xen.org" <julien@xen.org>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH v3 10/10] xen/docs: Document how to do passthrough without
 IOMMU
Thread-Topic: [PATCH v3 10/10] xen/docs: Document how to do passthrough
 without IOMMU
Thread-Index: AQHX2rPE6jU0b09b40CkiSaHEA3wwKwPtMqA
Date: Mon, 22 Nov 2021 15:24:53 +0000
Message-ID: <A89A623B-BC2C-4150-A5E8-A8B72AA566D3@arm.com>
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-11-penny.zheng@arm.com>
In-Reply-To: <20211116063155.901183-11-penny.zheng@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 97283072-aab2-454b-0b97-08d9adcc454d
x-ms-traffictypediagnostic: AM6PR08MB3493:|AS8PR08MB6405:
X-Microsoft-Antispam-PRVS:
	<AS8PR08MB640510BA58F34644BCE4D61F9D9F9@AS8PR08MB6405.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:3276;OLM:3276;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 EP8hR+Gi/2WYp0vKDKB9TKam2D7oohcYKkTTIlCi6P01mwSP3VV7reXJ9NG7zls13AVfqBeNReHguUFZJHxMrznDBG7sfVnWU7X5+SpvdP3TOZAtU8JDHrP/I9g5ywKFFHFWLLrV8QzjctpkSzZqaKnUIcFFswfcEHavFjDlf4W7zDQjsgqpB2cCaFRLP6VUsJenLryP+WaBUE9HpzAqJFBH1fglMZjWdNm8Rge+AF12LVCURCZm87VvvOMYNiSVvyPYhp9vCGn+OT3bMRxXy0ybxeDuMcmKcX9ommgz7tQUWKDXB0P5hKOCxtTgJlgpsISGXi0Zy8AkdRyldtOPhNDwROgJEXE/tC85ERU9E0kqIl3J4nfERgFg5lWSL914TlV66yIXUsXEU3iaPa7imWpA1Hntt5SBlJiJUfrmmu66a3GWS/2HiLIq1oQGD7yZbcS6159W53nxmI/gKHyGsta51qp9mpyHmkyBfKObiYoN8k0fMdecY0UHwSGRFp/AgxZafqdGPaCvpchxRYP/eehzsc2MqHZSEA6XrxHKkrnBhVQq33gBtKMYtY+bc/binKvhhy+j0HuLM88oxUEBnSpaYrjYjoYZVVVmyf1+Rg+IJJe8sN3R84Q6hqkBWnRmnKAARCiLPMuBqLD7/dzMQW5AjyLY8Es2s5b5sF2us3Q7ir5pV1UEemuiL0FAGB1De8jEf/dcTd00LR99zAvY4Gam34VHa4Sbq00arxqTtB4uTlvKQDYf9eMs+fGQeUeB
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(38070700005)(86362001)(53546011)(66556008)(83380400001)(66476007)(4326008)(64756008)(66446008)(33656002)(38100700002)(36756003)(508600001)(122000001)(5660300002)(6862004)(2616005)(8676002)(2906002)(91956017)(76116006)(6506007)(6636002)(66946007)(37006003)(54906003)(6486002)(26005)(316002)(186003)(6512007)(71200400001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <3746683BE6DB904BA59977C7721E2A5E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3493
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT021.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4f17afa1-d688-4565-62d2-08d9adcc3bb6
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	iIqeEnmKuXTw/UjNmRkNMIkN7ufLY8j711Ppx4NrA8tHm3ApdIMQxxsJoM70Di4GyUQ/1WiMl/JLZF2HiO5WTB19mHttEGZSBuFvcDFT4LUZ34zRe4qG4p9EF8DP/WE6nHA7JH76hLZVAPVGzFHT62956fjnpKmQ+ABfvlrIHocrtOeiiZ6XbEcoKIG2FcSZAwwbqqSD5d08YRe8SAW8Qw4KRFLwE9zExpTxNs1hk4OLWgA5w45agnebusDN3wKAFYcgEQNeTfX0pGPud+R3pVPicN4tk1kbIT952Rbx0PW07F1q+HGtqkSLVhWo95cnopjL1J53GzY8je28wOG05St23G6s+fG+It1M1Dihn40SvEGnXNn2uw0S8pNjF1kRPB/4GC55/awHLju/qz3HO/tblGQwTMehfNdkbh8MXlwPjluf1A3h7YuJGw+jKd+1ysjnXZn2QU9gg/R30sxXsfHIgRm0NnykRnm6P0J0ubvZ3b024IDxzfyYqiZfiAATSpAJ8KD8t5hjZzQoMevzKOVDeLZRQaUL7MPGB9EMEwnZxYTbh3HnngUWvHqrBfoAja4mwgEzcDkjpL7MAZ6sZJNEWwlm3vcAqYZurU9l9z6J/zmmOFshxPINH2y2amoaAgQ/ns78krXVvNiRlDdbboE5a9u5RCO2bKq8CNSoSTdNszmIQdulkCqncg5rdyyFVKxT9jz0qGESyim4v2EfMQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(508600001)(6486002)(336012)(82310400003)(6862004)(37006003)(5660300002)(2616005)(316002)(36756003)(356005)(83380400001)(70206006)(81166007)(6506007)(186003)(26005)(33656002)(8676002)(8936002)(6636002)(4326008)(86362001)(53546011)(54906003)(2906002)(47076005)(36860700001)(6512007)(70586007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 15:25:09.6167
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 97283072-aab2-454b-0b97-08d9adcc454d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT021.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6405

Hi Penny,

> On 16 Nov 2021, at 06:31, Penny Zheng <penny.zheng@arm.com> wrote:
>=20
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>=20
> This commit creates a new doc to document how to do passthrough without I=
OMMU.
>=20
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> ---
> docs/misc/arm/passthrough-noiommu.txt | 52 +++++++++++++++++++++++++++
> 1 file changed, 52 insertions(+)
> create mode 100644 docs/misc/arm/passthrough-noiommu.txt
>=20
> diff --git a/docs/misc/arm/passthrough-noiommu.txt b/docs/misc/arm/passth=
rough-noiommu.txt
> new file mode 100644
> index 0000000000..3e2ef21ad7
> --- /dev/null
> +++ b/docs/misc/arm/passthrough-noiommu.txt
> @@ -0,0 +1,52 @@
> +Request Device Assignment without IOMMU support
> +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> +
> +*WARNING:
> +Users should be aware that it is not always secure to assign a device wi=
thout
> +IOMMU protection.
> +When the device is not protected by the IOMMU, the administrator should =
make
> +sure that:
> + 1. The device is assigned to a trusted guest.
> + 2. Users have additional security mechanism on the platform.
> +
> +This document assumes that the IOMMU is absent from the system or it is
> +disabled (status =3D "disabled" in device tree).
> +
> +Add xen,force-assign-without-iommu; to the device tree snippet:
> +
> +ethernet: ethernet@ff0e0000 {
> +	compatible =3D "cdns,zynqmp-gem";
> +	xen,path =3D "/amba/ethernet@ff0e0000";
> +	xen,reg =3D <0x0 0xff0e0000 0x1000 0x0 0xff0e0000>;
> +	xen,force-assign-without-iommu;
> +};
> +
> +Request 1:1 memory mapping for the domain on static allocation
> +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> +
> +Add a direct-map property under the appropriate /chosen/domU node which
> +is also statically allocated with physical memory ranges through
> +xen,static-mem property as its guest RAM.
> +
> +Below is an example on how to specify the 1:1 memory mapping for the dom=
ain
> +on static allocation in the device-tree:
> +
> +/ {
> +	chosen {
> +		domU1 {
> +			compatible =3D "xen,domain";
> +			#address-cells =3D <0x2>;
> +			#size-cells =3D <0x2>;
> +			cpus =3D <2>;
> +			memory =3D <0x0 0x80000>;
> +			#xen,static-mem-address-cells =3D <0x1>;
> +			#xen,static-mem-size-cells =3D <0x1>;
> +			xen,static-mem =3D <0x30000000 0x20000000>;
> +			direct-map;
> +			...
> +		};
> +	};
> +};
> +
> +Besides reserving a 512MB region starting at the host physical address
> +0x30000000 to DomU1, it also requests 1:1 memory mapping.

If the guest has some reserved-memory in the device tree, those will not be=
 handle by Xen for DomUs.
I think it could be a good idea in the documentation to mention that any re=
served-memory required must be assigned using static-mem to the DomU.

This could take the form of a comment or a warning in this document.

Regards
Bertrand

> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 15:30:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 15:30:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228982.396279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBGb-0000Qn-Gp; Mon, 22 Nov 2021 15:30:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228982.396279; Mon, 22 Nov 2021 15:30:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBGb-0000QU-Dd; Mon, 22 Nov 2021 15:30:01 +0000
Received: by outflank-mailman (input) for mailman id 228982;
 Mon, 22 Nov 2021 15:30:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpBGZ-0000NE-VT
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 15:29:59 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpBGZ-0002Bh-B6; Mon, 22 Nov 2021 15:29:59 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.28.80]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpBGZ-00074F-4e; Mon, 22 Nov 2021 15:29:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=IZf0stmIYv1jBexNNIJeDoDLkuE0ac+nl1hytrsodRQ=; b=ar0lif1u+Ih2PU2hOF+cjY+AGS
	9u7vbbP+gB91xQ21GXnZQR9kbj2e/p+QPqB87cmLVHnulzr5TcqM7oJBAwLVAuP25/cxCJnN1fM/6
	XzlmK+aYCOtHdHaLQjuaP2id/ZxuheLg37TAuJujcbUZU0BZCr4E8eL/RCRS0fClKhW4=;
Message-ID: <e66c4189-acdf-c32f-4b50-51c8aaab4efd@xen.org>
Date: Mon, 22 Nov 2021 15:29:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
 <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
 <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 18/11/2021 07:13, Oleksandr Andrushchenko wrote:
> Hi, Julien!

Hi Oleksandr,

> On 17.11.21 23:33, Julien Grall wrote:
>> Hi Oleksandr,
>>
>> On 17/11/2021 06:56, Oleksandr Andrushchenko wrote:
>>> Hi, Julien!
>>>
>>> On 16.11.21 20:48, Julien Grall wrote:
>>>> Hi Oleksander,
>>>>
>>>> On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>
>>>>> If a PCI host bridge device is present in the device tree, but is
>>>>> disabled, then its PCI host bridge driver was not instantiated.
>>>>> This results in the failure of the pci_get_host_bridge_segment()
>>>>> and the following panic during Xen start:
>>>>>
>>>>> (XEN) Device tree generation failed (-22).
>>>>> (XEN)
>>>>> (XEN) ****************************************
>>>>> (XEN) Panic on CPU 0:
>>>>> (XEN) Could not set up DOM0 guest OS
>>>>> (XEN) ****************************************
>>>>>
>>>>> Fix this by adding "linux,pci-domain" property for all device tree nodes
>>>>> which have "pci" device type, so we know which segments will be used by
>>>>> the guest for which bridges.
>>>>>
>>>>> Fixes: 4cfab4425d39 ("xen/arm: Add linux,pci-domain property for hwdom if not available.")
>>>>>
>>>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>>
>>>>> ---
>>>>> New in v6
>>>>> ---
>>>>>     xen/arch/arm/domain_build.c        | 15 ++++++++++++++-
>>>>>     xen/arch/arm/pci/pci-host-common.c |  2 +-
>>>>>     xen/include/asm-arm/pci.h          |  8 ++++++++
>>>>>     3 files changed, 23 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>>>> index 491f5e2c316e..f7fcb1400c19 100644
>>>>> --- a/xen/arch/arm/domain_build.c
>>>>> +++ b/xen/arch/arm/domain_build.c
>>>>> @@ -753,9 +753,22 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
>>>>>             {
>>>>>                 uint16_t segment;
>>>>>     +            /*
>>>>> +             * The node doesn't have "linux,pci-domain" property and it is
>>>>> +             * possible that:
>>>>> +             *  - Xen only has drivers for a part of the host bridges
>>>>> +             *  - some host bridges are disabled
>>>>> +             * Make sure we insert the correct "linux,pci-domain" property
>>>>> +             * in any case, so we know which segments will be used
>>>>> +             * by Linux for which bridges.
>>>>
>>>> The check above will check the node type is "pci". AFAICT, this would also cover PCI devices. I am not aware of any issue to add "linux,pci-domain" for them. However, this feels a bit odd.
>>>>
>>>>   From my understanding, a PCI device would always be described as a child of the hostbridges. So I would rework the 'if' to also check if the parent type is not "pci".
>>>>
>>> We may have "bridge -> bridge -> device" topology as well.
>>
>> Do you have an example of Device-Tree?
> No, I don't have at hand, but I can imagine this can relatively easy be done with QEMU > Even if not, do you assume this topology can never happen?

I think it is not possible to describe them in the Device-Tree because 
you wouldn't be able to translate the "regs" of the nested hostbridge to 
an actual MMIO address.

In fact, looking at dt_device_get_address(), I think Xen would reject 
such DT.

>>
>>> So, I prefer to have the check as it is.
>>
>> I don't really like the idea to spuriously add "linux,pci-domain" to PCI DT node. But if there are no other solution, then this should at least be mentionned in the commit message and code.
> I am fine with any solution here, I just want that to be defined and implemented.
> Please let me know the final decision on this and how we proceed

I would prefer to go with my way. This can be refined in the future if 
we find Device-Tree that matches what you wrote.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 15:40:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 15:40:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228987.396290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBQH-0001ow-Ew; Mon, 22 Nov 2021 15:40:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228987.396290; Mon, 22 Nov 2021 15:40:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBQH-0001op-As; Mon, 22 Nov 2021 15:40:01 +0000
Received: by outflank-mailman (input) for mailman id 228987;
 Mon, 22 Nov 2021 15:40:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpBQG-0001oj-Kj
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 15:40:00 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 72e0a7f8-4baa-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 16:39:58 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2111.outbound.protection.outlook.com [104.47.18.111]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-36-qR7qmFnMPgiu6zs4HkLpQA-2; Mon, 22 Nov 2021 16:39:57 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3773.eurprd04.prod.outlook.com (2603:10a6:803:1c::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Mon, 22 Nov
 2021 15:39:52 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 15:39:52 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM5PR1001CA0042.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Mon, 22 Nov 2021 15:39:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 72e0a7f8-4baa-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637595598;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=nA/WV77cXc/Qt4hmh824KuWrpgrzqOYrF87HGQUhCEo=;
	b=Uyp/TiYzgJSUMpocb5mPGJZ6HcZUGGXheim473ImhIoBZ38Xigw50DLzXZEts6W6AOXvVc
	WvXO6SZsC8niGQNte6W9YAPiWSpu4NePndNKdyH+b1+Ay6Yk1GgzDDRXXBWbeOBuc9KXXL
	w7U6vGpuqyd2upIP0J6xYKdBqjJ1Wfc=
X-MC-Unique: qR7qmFnMPgiu6zs4HkLpQA-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=d7VFEk47uE3LJi+k13Ly1f1Dy18q2HbENCrsiP0SateMlP/Jl32sV/+ifyo7T4ZIYMmejuy5iPtkiz9oZIIrM5LNSWygAbIr0QYW3LM9s+612sF4Q0+DtSCUm/HPZPK0dxqhs0wyh0vjBC4EwX9AMN68QwZ/u+V60Be0gQc8scOSP685dBGud689gJXaWvL+tYlnqNyvKiTaw7RowiUMXqCI+EU348nU7IEneNh+RciZolE7X/JI7qe5lYV75CPyhLw6SKDbtElfNKVQxOLQcxLJEiksDRDTVZlBJ0wl4jREmb1ss3QfHUZRtK3USzDz6uBwIRzwEY+iUb9IluPycw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nA/WV77cXc/Qt4hmh824KuWrpgrzqOYrF87HGQUhCEo=;
 b=eZ8upUDpnmPYgBlEPlrmMvT9WO7+PArHT4/t1lmpTfOKHE1XqIB+0EdEDNTN7JKY9//TWaWJWKvcjtwUKm66eJieRC8VfQzoGAngr/mw598/NHksQ7NxuARewpPUIdEQPL8NfMnrA9oSiqG5Hv/aayvqA0CaJUjDJTw/xhaTOITS/KQgXmq8zpQb48DDgUOy4e4NuH7Wfoaj1fD9zgrgPPcexFOjdXQB1cf/1HU1nYSwQQYFOsCRcYgWL+gYIVpYns+bq7+2kI2KAffLLMBSQ5aTSH/PKrqXqVpwu/en40QLOsWEDYJU4qoFdGOIzwK5jTTUwSsGx0gxdPB+Zkou5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
Date: Mon, 22 Nov 2021 16:39:50 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20210914123600.1626-4-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR1001CA0042.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::19) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e06a8327-cf44-4453-579e-08d9adce536e
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3773:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3773CACEE7F2D8C06F3C6874B39F9@VI1PR0402MB3773.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ZhyB/WK8sva4fCGlvo10mrqTfzNCR2B4WkZ3WlL3LDOvd46N3Y098VaoOcow6Voo6NvHfzj92JmthZP3QjvutSxp3RpzwtV1Cv6wWQcvdsay3cpWLbyD6O3xCUfJ7OtAUxIpx545OCskKVu7xU0jEszaojbvfbL6t999p6HItxHdYltHZnOVCj1otaK8vE4PM6bU6PLWHKOhU2jdc5psdKhSmKWwc+nYBDDZg061NT8n2Qx7XMYeAmnXV6N2X1aNPTV7mamJO7GfPmgPJ+OIoycVdCUXrEHoL/R518y17Nw8y6SdpOkW8aDXwos6YlhlyzzS/tBJRgjgJs7YNbaWa0BV7+W296LtK+cQ2HiddjbPtJpaOlh/TRvSBhv96Jm/LiAN/QMb4d7E+RDHN+qZifoD/QzSNYyBDrYLtSk4uR1OF+Fg8oI0L6UwLMOR2F4YRWIfC4sY28jI19Hf3RWeoMwISBJ4q/qHAXtsiolFnnMm2At8B/mQTaU3C7WOUDXmfJz37HaRSvqIkJ//dKfA5wHMSFwNawDI0mtA8GX3qZnVAYvBvAgm7TNZWcICTn56d6Y8M3NBcUOVTbozqnDffPY+B4LMucYRbVshj6e94rgWIRLDXQ8I1zzQ6IMpSx/O6b/SaxRw+z7F1aIVmgEn1BR08KsDQrxtIKO7YQcNs3W1oGSImSXeter9vE06cHq2PsE4eyIklO+KU6zmtl88383iuR3vk2pFQLxCIMfdDH0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(37006003)(8936002)(6636002)(86362001)(2616005)(54906003)(83380400001)(5660300002)(4326008)(8676002)(38100700002)(186003)(6862004)(508600001)(7416002)(53546011)(31696002)(66946007)(66556008)(36756003)(316002)(66476007)(31686004)(6486002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R0JrMnBIRXhtMDdvV1RWL3VYNkNJOENocEpaY01jcXlFaDdTUjdNeUV5SitP?=
 =?utf-8?B?aFlidGhLREFlVmtBMXNYNlBvUDFhL3FQejlJRjNLbm82WHhHelcyaDYvT3B5?=
 =?utf-8?B?c0psOVB0WDUwbEpYYlpYc2V1bVVPVFZUaTc1T3p3VHVGZFlnS3BWbnFlalJt?=
 =?utf-8?B?d1ZZQzlRSWt4UkdTbTdrZU5QU25SYzJGWGF4NitLbXFvWTgvbnF1Vm5RM0Zz?=
 =?utf-8?B?ZXd4SEthWTBmbWlpL3VtbjJlRG1JbmxXRGE1dFdSVHd1cHlyRzNCdkJSVHNa?=
 =?utf-8?B?SXloTzIvaDRPeUI1NGFxUUVlL3NPQUlVUW91V25aSFJnVWFOaUZyTWVuN0NN?=
 =?utf-8?B?dzJEMTJaemIyeDAxWlNUSzVVZ2VwOW9OOXNlVVRrMmdORWhpWk5YeTM1THZz?=
 =?utf-8?B?eUUzRFpuWGRneTNxeDdtdG9yTWFwTlJ1SXFxTVA4VzJYVEFKaGg0M3NrcEty?=
 =?utf-8?B?b0NGUk04ZmRYVjYyenpLOGo0d3BidUxnTktlc2dSV0F1bE9vSnNzVGo4TzJ1?=
 =?utf-8?B?K0p0OWZIWXlEVUNHTm5ySVZJaWpaUFRuQWtESDF4UnBoYmhmbG95c3doZk00?=
 =?utf-8?B?d2JnN21LUlptTXJCQ1lSY0VFZmtKa0xYZ2ZpZVhXQ3B5QUhYWmtRWjQ1eEsy?=
 =?utf-8?B?QXczeDB5aTVNRFZmT29KSFVGZlk5Vnc3eW5RYVhkTlVjcDNzUEU3c1I5Tzg2?=
 =?utf-8?B?WUY5YkYyS25LQXhtcVlxdmZCUVdmVm9iamUzQ2pRNzNLL0Z6L2V0NDIxb2Vw?=
 =?utf-8?B?WnI0SFRnMmJWcXhYRHJML1R6eG9QMGlRQlpEYmQvOTVvL2lLR1E2aTN0bmZM?=
 =?utf-8?B?bVJLOXlRN3NYaWNaRmVhbTh6ZkFiZVdQTkNzOUY2UDQxOVhmbWVJU0hJRm1v?=
 =?utf-8?B?RHlrcm5lQkhTc1NBQzc3NUpGR1lyRnlZbjBIMzdtYnpRdTQ4WlVqVUtkQzkw?=
 =?utf-8?B?VWgzS1A0dENVYlhwaHNBUWVtbmRsOWo2MllBbmI4UkxSWDdmZSt6OGNmOVdD?=
 =?utf-8?B?ZnZZc0htVUYrbjdxWUF4bGp5Q2lwUEdKOUpuOWwybDBqbUhnR1ovU0MvN0h6?=
 =?utf-8?B?Yi84RU9kY0I1NFh2WmZCREtVK2FJaHJXRlppMHNpaXp2TlU5ZWtLczA3WGZw?=
 =?utf-8?B?Q2hLSms0OVJ4dkxPd3RESlhjSkN3ajdrTU1VMG9EeUVKUTFFSFhFanFHdHQ4?=
 =?utf-8?B?bTJCVHhwaFZxUVUvdHh6c1VpdlFTclRxdEh5Zm80bWtKUzB1VGM2dEwxNU43?=
 =?utf-8?B?SXAzVkhKWU9MWVRjOWs3K0k3QTdlV0FFK1VERFBab01qU0IrUkNPaWRTVUs1?=
 =?utf-8?B?TEVERW1Wa1pTV3VScWs5NjAzZTBuWUczb1JqcFRWdEc5dUlrbGE0RHF5YzNI?=
 =?utf-8?B?N1Q4ODdHQUpkekJJYnVsSElmSFo1RXVsMXBZVzlmZUZhbVk0UE1nVjczd3FH?=
 =?utf-8?B?WjRraWdURUdhckJHT1hWOWhOdDJ6bG5DQndzVGdCTGt2T3YzNUdGK09aWSs5?=
 =?utf-8?B?K1NCdmxsdzVoM1ZscGpUcjJQeHVLVGEydUZYdVNHTjZVSjQwNDBaSmw2Mko5?=
 =?utf-8?B?NXM1NGNIcFp0RGpFcG1kWmJxWkQzTGwveW94NlRFS3o1RjdrQzIxTTBWTHRZ?=
 =?utf-8?B?RFBMbDQ5Qk9FNzBFVG0wUXNhSlNYUC82S2twZ21qQnR2THFjczJUZ0pGVEVF?=
 =?utf-8?B?eHE3eEwwWVNHU2ZPYjZyaXpsV3JoR3YrN2ZmWnp0ZWI3Sjc3cW9tWnVmTUpv?=
 =?utf-8?B?Z3FIUjN2WnNmWjB4a1FFOHl1MzJIZm9MVFhZSGxFSmRrcHFnZHEvSkxRaHZM?=
 =?utf-8?B?cU1aU055NjZhS1JLUHU1em5vVXpnaFZCTytHV29hdlBFdVU3bEdadzFDUTE5?=
 =?utf-8?B?aTM2ZmVqaU85VmtWSHRjUlI0WnNsVTI2czB0aGV3WDRzMks3aStyVlNyZWxv?=
 =?utf-8?B?TmZ5RXVUZ0VJazVKWHRkNndEV0FnMDlqd1ZVS2l6clZlcjVpK2JJRDFnay84?=
 =?utf-8?B?TGt4b3IvbGNPSmpLTDJuRTcwOVB3S0k1WEhxSUtONnQybEMwWEFJZUNiZ3or?=
 =?utf-8?B?a1k4Nzc2b3N1a3BhWW1iYmh5S2hDdzBvRTYzNGY3K0NaTzQwNGRXVzdKY0Fp?=
 =?utf-8?B?V05BSWpYLzB5eEt0aDByeS9nazQycEJkZzRXMW1BNHMzNjNsQ21qK3JIQzJE?=
 =?utf-8?B?bHdBZ2tjL04va1dFSkw0U2xqdm1KQnB3anVJQWY2cWJyV3I2UEVSMHVYWWVp?=
 =?utf-8?Q?dAM5meCzvOk/G4y3El40BLEgGFkB4Rbrn9hXnuxcu0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e06a8327-cf44-4453-579e-08d9adce536e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 15:39:52.5663
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: f+kOcXU3KpEXHPKbGnNORNKlJ9CsbhuDJQyXkB4z+8Id4V+tecQ+TqyvyBU9mjsQ3PF0IvYuHeOmI664M92qPw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3773

On 14.09.2021 14:35, Juergen Gross wrote:
> The sysctl and domctl hypercalls are not stable, so tools using those
> need to be in sync with the hypervisor.
> 
> In order to decouple (some) tools from the hypervisor add a new stable
> hypercall __HYPERVISOR_control_op

I'm not convinced we need a new hypercall. New sub-ops of the existing ones
can be declared stable (and be made bypass the interface version checks).
If we want/need a new one, "control" is too generic: There's a reason we
currently have separate domctl and sysctl, and I think if we want new
hypercalls rather than new sub-ops, then we'd again want a global and a
per-domain one (unless the new one had provisions to be able to serve
both purposes).

> with (for now) two sub-options:
> 
> - XEN_CONTROL_OP_get_version for retrieving the max version of the new
>   hypercall supported by the hypervisor
> - XEN_CONTROL_OP_get_state_changed_domain for retrieving some state
>   data of a domain which changed state (this is needed by Xenstore).
>   The returned state just contains the domid, the domain unique id,
>   and some flags (existing, shutdown, dying).

If we go with a new hypercall, I think you want to split its introduction
(with just the version sub-op) from the addition of get_state_changed_dom.

> --- /dev/null
> +++ b/xen/common/control.c
> @@ -0,0 +1,52 @@
> +/******************************************************************************
> + *
> + * control.c
> + *
> + * Entry point of the stable __HYPERVISOR_control_op hypercall.
> + */
> +#include <xen/err.h>
> +#include <xen/event.h>
> +#include <xen/guest_access.h>
> +#include <xen/hypercall.h>
> +#include <public/control.h>
> +
> +long do_control_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> +{
> +    int ret = 0;
> +
> +    if ( xsm_control_op(XSM_OTHER, cmd) )
> +        return -EPERM;
> +
> +    switch ( cmd )
> +    {
> +    case XEN_CONTROL_OP_get_version:
> +        if ( !guest_handle_is_null(arg) )
> +            return -EINVAL;
> +
> +        ret = XEN_CONTROL_VERSION;
> +        break;
> +
> +    case XEN_CONTROL_OP_get_state_changed_domain:
> +    {
> +        struct xen_control_changed_domain info = { };
> +
> +        if ( get_global_virq_handler(VIRQ_DOM_EXC) != current->domain )
> +            return -EPERM;

The function result is stale by the time it gets made use of here. If this
is deemed not to be a problem, then I guess it wants saying so in the
description.

> @@ -103,6 +104,43 @@ void domain_reset_states(void)
>      rcu_read_unlock(&domlist_read_lock);
>  }
>  
> +int domain_get_dom_state_changed(struct xen_control_changed_domain *info)
> +{
> +    unsigned int dom;
> +    struct domain *d;
> +
> +    while ( (dom = find_first_bit(dom_state_changed, DOMID_MASK + 1)) <
> +            DOMID_FIRST_RESERVED )

As per my comment on the earlier patch - the use of DOMID_MASK + 1 vs
is quite puzzling here.

> +    {
> +        d = rcu_lock_domain_by_id(dom);
> +
> +        if ( test_and_clear_bit(dom, dom_state_changed) )
> +        {
> +            info->domid = dom;
> +            if ( d )
> +            {
> +                info->state = XEN_CONTROL_CHANGEDDOM_STATE_EXIST;
> +                if ( d->is_shut_down )
> +                    info->state |= XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN;
> +                if ( d->is_dying == DOMDYING_dead )
> +                    info->state |= XEN_CONTROL_CHANGEDDOM_STATE_DYING;
> +                info->unique_id = d->unique_id;
> +
> +                rcu_unlock_domain(d);
> +            }
> +
> +            return 0;

With rapid creation of short lived domains, will the caller ever get to
see information on higher numbered domains (if, say, it gets "suitably"
preempted within its own environment)? IOW shouldn't there be a way for
the caller to specify a domid to start from?

> +        }
> +
> +        if ( d )
> +        {
> +            rcu_unlock_domain(d);
> +        }

Nit: Unnecessary braces.

> --- a/xen/common/event_channel.c
> +++ b/xen/common/event_channel.c
> @@ -894,11 +894,16 @@ static struct domain *global_virq_handlers[NR_VIRQS] __read_mostly;
>  
>  static DEFINE_SPINLOCK(global_virq_handlers_lock);
>  
> -void send_global_virq(uint32_t virq)
> +struct domain *get_global_virq_handler(uint32_t virq)
>  {
>      ASSERT(virq_is_global(virq));
>  
> -    send_guest_global_virq(global_virq_handlers[virq] ?: hardware_domain, virq);
> +    return global_virq_handlers[virq] ?: hardware_domain;
> +}
> +
> +void send_global_virq(uint32_t virq)
> +{
> +    send_guest_global_virq(get_global_virq_handler(virq), virq);
>  }

Following my comment further up, I think external exposure of this requires
to finally eliminate the (pre-existing) risk of race here. I think
get_knownalive_domain() is all it takes to at least prevent the domain
disappearing behind our backs, with the extra reference transferred to the
caller. Yet we may want to additionally be assured that the domain in
question continues to be the one handling the respective vIRQ ...

> --- /dev/null
> +++ b/xen/include/public/control.h
> @@ -0,0 +1,80 @@
> +/******************************************************************************
> + * Xen Control Hypercall
> + *
> + * Copyright (c) 2021, SUSE Software Solutions Germany GmbH
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a copy
> + * of this software and associated documentation files (the "Software"), to
> + * deal in the Software without restriction, including without limitation the
> + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
> + * sell copies of the Software, and to permit persons to whom the Software is
> + * furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice shall be included in
> + * all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> + * DEALINGS IN THE SOFTWARE.
> + *
> + */
> +
> +#ifndef __XEN_PUBLIC_CONTROL_H__
> +#define __XEN_PUBLIC_CONTROL_H__
> +
> +#include "xen.h"
> +
> +/*
> + * Definitions for the __HYPERVISOR_control_op hypercall.
> + */
> +
> +/* Highest version number of the control interface currently defined. */
> +#define XEN_CONTROL_VERSION      1
> +
> +/*
> + * Hypercall operations.
> + */
> +
> +/*
> + * XEN_CONTROL_OP_get_version
> + *
> + * Read highest interface version supported by the hypervisor.
> + *
> + * arg: NULL
> + *
> + * Possible return values:
> + * >0: highest supported interface version
> + * <0: negative Xen errno value
> + */
> +#define XEN_CONTROL_OP_get_version                  0

What would a caller use the returned value for? I guess this follows
XEN_HYPFS_OP_get_version, but I'm less certain of the utility here.
Incompatible extensions are easy to make use separate sub-ops, unlike
possible extensions there to struct xen_hypfs_dir{,list}entry.

> +/*
> + * XEN_CONTROL_OP_get_state_changed_domain
> + *
> + * Get information about a domain having changed state and reset the state
> + * change indicator for that domain. This function is usable only by a domain
> + * having registered the VIRQ_DOM_EXC event (normally Xenstore).
> + *
> + * arg: XEN_GUEST_HANDLE(struct xen_control_changed_domain)
> + *
> + * Possible return values:
> + * 0: success
> + * <0 : negative Xen errno value
> + */
> +#define XEN_CONTROL_OP_get_state_changed_domain     1
> +struct xen_control_changed_domain {
> +    domid_t domid;
> +    uint16_t state;
> +#define XEN_CONTROL_CHANGEDDOM_STATE_EXIST     0x0001  /* Domain is existing. */
> +#define XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN  0x0002  /* Shutdown finished. */
> +#define XEN_CONTROL_CHANGEDDOM_STATE_DYING     0x0004  /* Domain dying. */
> +    uint32_t pad1;           /* Returned as 0. */
> +    uint64_t unique_id;      /* Unique domain identifier. */
> +    uint64_t pad2[6];        /* Returned as 0. */

I think the padding fields have to be zero on input, not just on return.
Unless you mean to mandate them to be OUT only now and forever. I also
wonder how the trailing padding plays up with the version sub-op: Do we
really need such double precaution?

Also - should we use uint64_aligned_t here?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 15:47:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 15:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228993.396300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBXL-0003GN-6C; Mon, 22 Nov 2021 15:47:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228993.396300; Mon, 22 Nov 2021 15:47:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBXL-0003GG-3C; Mon, 22 Nov 2021 15:47:19 +0000
Received: by outflank-mailman (input) for mailman id 228993;
 Mon, 22 Nov 2021 15:47:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7iXZ=QJ=linutronix.de=bigeasy@srs-se1.protection.inumbo.net>)
 id 1mpBXK-0003GA-1U
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 15:47:18 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 77e3baa0-4bab-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 16:47:16 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77e3baa0-4bab-11ec-a9d2-d9f7a1cc8784
Date: Mon, 22 Nov 2021 16:47:14 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637596035;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type;
	bh=BEoYoKO1FJBa2ukBy23+bj3uF+7X+WvM0sv+jH9o6GY=;
	b=ZUGKHWh5Cws9FzM8WnZZFWuVIu10DS5k+RyUyJTEhFaLzhPDt5yVuREv+l1mAFo5M7/CEz
	9eDTJWLD6aqbgRfzOys8i6Mzlx6LiHKBTufdSTpRFiXd/qFi+rk0m7aHKUNgl+5CTgE9HI
	rPYlXwLn3O6kCXtmiBCJLh80NdbUqhNVIrnbGZWHZH1Ge8qSRma/zH4+kXdubMD26xHV1H
	3TZ9t7bmyf/7xRdSyObEd/20CemC56TGdkaLf7+Ubav8SH0fcT2KKCyeC5omjwpYBM644D
	/uVPDsWTQmuo1XUEeAL/uLFjyCblJ57kMDNx6JG0kZ8DJp0S/53eBMWD4TtULg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637596035;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type;
	bh=BEoYoKO1FJBa2ukBy23+bj3uF+7X+WvM0sv+jH9o6GY=;
	b=let+1knIfa2gh2XASxf6daDfL3UJiKCPCwp+ezq0bLm721yygvSfMZN5U8VWQPHhd/OyFg
	AV4vqOpn+gw4mXCg==
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)" <longpeng2@huawei.com>
Cc: linux-kernel@vger.kernel.org,
	"Gonglei (Arei)" <arei.gonglei@huawei.com>, x86@kernel.org,
	xen-devel@lists.xenproject.org,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	Valentin Schneider <valentin.schneider@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>
Subject: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
Message-ID: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

From: "Longpeng(Mike)" <longpeng2@huawei.com>

A CPU will not show up in virtualized environment which includes an
Enclave. The VM splits its resources into a primary VM and a Enclave
VM. While the Enclave is active, the hypervisor will ignore all requests
to bring up a CPU and this CPU will remain in CPU_UP_PREPARE state.
The kernel will wait up to ten seconds for CPU to show up
(do_boot_cpu()) and then rollback the hotplug state back to
CPUHP_OFFLINE leaving the CPU state in CPU_UP_PREPARE. The CPU state is
set back to CPUHP_TEARDOWN_CPU during the CPU_POST_DEAD stage.

After the Enclave VM terminates, the primary VM can bring up the CPU
again.

Allow to bring up the CPU if it is in the CPU_UP_PREPARE state.

[bigeasy: Rewrite commit description.]

Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Link: https://lore.kernel.org/r/20210901051143.2752-1-longpeng2@huawei.com
---

For XEN: this changes the behaviour as it allows to invoke
cpu_initialize_context() again should it have have earlier. I *think*
this is okay and would to bring up the CPU again should the memory
allocation in cpu_initialize_context() fail.

 kernel/smpboot.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/kernel/smpboot.c b/kernel/smpboot.c
index f6bc0bc8a2aab..34958d7fe2c1c 100644
--- a/kernel/smpboot.c
+++ b/kernel/smpboot.c
@@ -392,6 +392,13 @@ int cpu_check_up_prepare(int cpu)
 		 */
 		return -EAGAIN;
 
+	case CPU_UP_PREPARE:
+		/*
+		 * Timeout while waiting for the CPU to show up. Allow to try
+		 * again later.
+		 */
+		return 0;
+
 	default:
 
 		/* Should not happen.  Famous last words. */
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 16:17:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 16:17:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.228997.396312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBzu-00073s-Kv; Mon, 22 Nov 2021 16:16:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 228997.396312; Mon, 22 Nov 2021 16:16:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpBzu-00073l-Hz; Mon, 22 Nov 2021 16:16:50 +0000
Received: by outflank-mailman (input) for mailman id 228997;
 Mon, 22 Nov 2021 16:16:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=75Oo=QJ=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mpBzs-00073f-QC
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 16:16:48 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 96bbee4f-4baf-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 17:16:46 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:32788)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mpBzp-000r4X-9F (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 22 Nov 2021 16:16:45 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 6FA1D1FDB1;
 Mon, 22 Nov 2021 16:16:45 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96bbee4f-4baf-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <39e0fcf5-0665-1614-31d1-59f98551abdd@srcf.net>
Date: Mon, 22 Nov 2021 16:16:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-5-andrew.cooper3@citrix.com>
 <8ac7cf1a-f235-a065-182f-3303aa9be5b7@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 4/5] x86/traps: Drop exception_table[] and use if/else
 dispatching
In-Reply-To: <8ac7cf1a-f235-a065-182f-3303aa9be5b7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/11/2021 09:04, Jan Beulich wrote:
> On 19.11.2021 19:21, Andrew Cooper wrote:
>> --- a/xen/arch/x86/x86_64/entry.S
>> +++ b/xen/arch/x86/x86_64/entry.S
>> @@ -773,14 +773,48 @@ handle_exception_saved:
>>          sti
>>  1:      movq  %rsp,%rdi
>>          movzbl UREGS_entry_vector(%rsp),%eax
>> -        leaq  exception_table(%rip),%rdx
>>  #ifdef CONFIG_PERF_COUNTERS
>>          lea   per_cpu__perfcounters(%rip), %rcx
>>          add   STACK_CPUINFO_FIELD(per_cpu_offset)(%r14), %rcx
>>          incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)
>>  #endif
>> -        mov   (%rdx, %rax, 8), %rdx
>> -        INDIRECT_CALL %rdx
>> +
>> +        /*
>> +         * Dispatch to appropriate C handlers.
>> +         *
>> +         * The logic is implemented as an if/else chain.  DISPATCH() calls
>> +         * need be in frequency order for best performance.
>> +         */
>> +#define DISPATCH(vec, handler)         \
>> +        cmp   $vec, %al;               \
>> +        jne   .L_ ## vec ## _done;     \
>> +        call  handler;                 \
>> +        jmp   .L_exn_dispatch_done;    \
>> +.L_ ## vec ## _done:
>> +
>> +        DISPATCH(X86_EXC_PF, do_page_fault)
>> +        DISPATCH(X86_EXC_GP, do_general_protection)
>> +        DISPATCH(X86_EXC_UD, do_invalid_op)
>> +        DISPATCH(X86_EXC_NM, do_device_not_available)
>> +        DISPATCH(X86_EXC_BP, do_int3)
>> +
>> +        /* Logically "if ( (1 << vec) & MASK ) { do_trap(); }" */
>> +        mov   $(1 << X86_EXC_DE) | (1 << X86_EXC_OF) | (1 << X86_EXC_BR) |\
>> +               (1 << X86_EXC_NP) | (1 << X86_EXC_SS) | (1 << X86_EXC_MF) |\
>> +               (1 << X86_EXC_AC) | (1 << X86_EXC_XM), %edx
>> +        bt    %eax, %edx
>> +        jnc   .L_do_trap_done
>> +        call  do_trap
>> +        jmp   .L_exn_dispatch_done
>> +.L_do_trap_done:
>> +
>> +        DISPATCH(X86_EXC_CP, do_entry_CP)
>> +#undef DISPATCH
> The basis for the choice of ordering imo wants spelling out here. For example,
> despite the data provided in the description I'm not really convinced #BP
> wants handling ahead of everything going to do_trap().

Why?

Debugging might be rare, but #BP gets used in non-error cases. 
Everything heading towards do_trap() really got 0 hits, which is
entirely expected because they're all fatal signals by default.

This list is in proper frequency order.

>> @@ -1012,9 +1046,28 @@ handle_ist_exception:
>>          incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)
>>  #endif
>>  
>> -        leaq  exception_table(%rip),%rdx
>> -        mov   (%rdx, %rax, 8), %rdx
>> -        INDIRECT_CALL %rdx
>> +        /*
>> +         * Dispatch to appropriate C handlers.
>> +         *
>> +         * The logic is implemented as an if/else chain.  DISPATCH() calls
>> +         * need be in frequency order for best performance.
>> +         */
>> +#define DISPATCH(vec, handler)         \
>> +        cmp   $vec, %al;               \
>> +        jne   .L_ ## vec ## _done;     \
>> +        call  handler;                 \
>> +        jmp   .L_ist_dispatch_done;    \
>> +.L_ ## vec ## _done:
>> +
>> +        DISPATCH(X86_EXC_NMI, do_nmi)
>> +        DISPATCH(X86_EXC_DB,  do_debug)
>> +        DISPATCH(X86_EXC_MC,  do_machine_check)
>> +#undef DISPATCH
>> +
>> +        call  do_unhandled_trap
>> +        BUG   /* do_unhandled_trap() shouldn't return. */
> While I agree with putting BUG here, I don't see the need for the CALL.
> Unlike in handle_exception there's no vector left unhandled by the
> DISPATCH() invocations. The CALL being there give the (wrong) impression
> there would / might be.

I firmly disagree.

do_unhandled_trap() is a fatal error path both here and for the non IST
case, and is absolutely the appropriate thing to call in the dangling
else from this chain.

It is only unreachable if 15 things line up correctly in a very fragile
piece of code, where both you and I have made errors in the past.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 16:23:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 16:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229004.396323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpC69-0008Sb-BL; Mon, 22 Nov 2021 16:23:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229004.396323; Mon, 22 Nov 2021 16:23:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpC69-0008SU-7y; Mon, 22 Nov 2021 16:23:17 +0000
Received: by outflank-mailman (input) for mailman id 229004;
 Mon, 22 Nov 2021 16:23:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJrQ=QJ=epam.com=prvs=1960b635ba=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpC67-0008SO-CT
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 16:23:15 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7ce042bd-4bb0-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 17:23:13 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AMFQ7Ug022752;
 Mon, 22 Nov 2021 16:23:10 GMT
Received: from eur04-db3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2055.outbound.protection.outlook.com [104.47.12.55])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cgduc0827-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 22 Nov 2021 16:23:10 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB6883.eurprd03.prod.outlook.com (2603:10a6:20b:282::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Mon, 22 Nov
 2021 16:23:03 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.025; Mon, 22 Nov 2021
 16:23:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ce042bd-4bb0-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=a15eErSLFQrq9O6f7Yy5WDw0O9/MpwGS5iI0o7ze33AQn8KbflIQmFXtP1iN75f+9gTeboPb6+D25Dt6RLlgrT/ttKnTjkeSdAak5fy4xnSJUgK55o9KgcT1CARgFnLm+xd4qVaylAr6aeO7avB0tiokRyiwlZdu+zC1l4AIJz1zu71O+Vq4YJoQ7Fsrwa5Sx2VsCT5jIAaDlBRe3JpvEwBJAsBxFX4UbdYnBt6b15gkOc5bDtcvxcgpnKhl5pnUECxZlOfCKDk3DcOX+fGseoX65A95Zv//HggzQD+r19HgIWlYhApffi470s3jCOf1ek0J0ahLLuE0zb1zammzyA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r+7jXsLhrC7RlhB+hb3AwNvEoKkOZxEAN40KnKtNT68=;
 b=A0QK/JY6Hvdam48/5YEZqThe/89ySRSZzdfvwCfT2PohLLUB3p4YlU3gz9SMQoplraE1nz0B4nr7vchBo94y7475vKjMMreM9hWA8jxRnByS4WzJZhdqnGAj26ie4aVVFFudGjbOnm1CIB5EVwpttc+CmTD+guB3dnln1pUdICQUTV8216S+tjvj2+tDHJPCDrh1bq29R96ck9orFqPHqc9BNsNGc4x47MXn6Ivn2z9GAH/VkjUZpxeVSHd4ON/txnTh7AjgdHMinzfTrqYkwNdaEHTYYVCFP/hIPRiI6TU5/weDg4wOWvyZFpErL4bSA05bk3twTEZge0WJ0Fjy4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=r+7jXsLhrC7RlhB+hb3AwNvEoKkOZxEAN40KnKtNT68=;
 b=SFAmVgEe/qCZZUCfsyQLmJD8NI8blCOP7BhpDNc4lQc86Wrr+/wLEObETLqovrLQBtgvBrnQDPS1pWFoOPYDR1TZqDlAlOPkybS9U1NPUIdJX5euRTcRjd9lUr6WS/DB+gP8RXORsdAQil8lIssVfAL51tlCTLiq5oaVHx2TknTSiXWLgJOrVUX7TkoVfoyqOJU4Z4PNhzc9iW3RymQwOydvlIXPbhEQ86HcUrH+7tYUBc/FHQlsUvxa3aj6nPKjwT3K4KtJmYJiHKA9MVobV5zYuqcScDDPUAsyedjjD/JmOrg9afo2VwQOGnlUEnOucnLNWmY9bi3m4qYV92j46g==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Topic: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Index: 
 AQHX0g8QVTbfP59mVU+LM2unTUGOtawGkRQAgADLYgCAAPUEgIAAofWAgAbUDQCAAA7WAA==
Date: Mon, 22 Nov 2021 16:23:03 +0000
Message-ID: <315b1308-5adc-c4f3-6150-1060dbac5f4f@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
 <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
 <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
 <e66c4189-acdf-c32f-4b50-51c8aaab4efd@xen.org>
In-Reply-To: <e66c4189-acdf-c32f-4b50-51c8aaab4efd@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: af1bba23-8142-4539-b491-08d9add45bdd
x-ms-traffictypediagnostic: AM9PR03MB6883:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB688313049632F7275EFB33FCE79F9@AM9PR03MB6883.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 CWL1ytYfQhp/rj1luZKKIf7E/nWCl1rQ77I9sa9qTOTAvyRJO3avRpTAHkXOoE3S0GT8jxchXjRGzprcT1SP38rT/OsC84TKZUT8Z02hxmGHsUvBspLP9zZY325BhI4ZgF5+df6PhQlAHDQK3+FnOFO8tc2swgQsgLktMaYSpEaFwB+p90Txa+X7dAcSOEG64tKyJKkz307g6o72EXGUo6js+o5pmY0D6ck8TTxAxZ4bzTZVBa3gDltmLVoN2OeQdSgU/qrFSUDFaxwIWVRTOsK3ywL+1a64GyOwHXrYhwo4m0d+X3RTVlFAw0jigF/iLt54Zpuu31eJY79Mzy5qzFdfhA7LdFkLWd1ZkEjwmuP1Rbg5svZTZx0vFLzrj0FUIMLar3DmyoN9UygOTldczLcOFj48kiNoNG/ETrPv04E5SU2MQ0srrisdgRgU/B3HNNSjv8BOqnuN2bE4s+Gsx7pDD507P8FjIXuB9fTgk1jIfaqZgoU6Y13yO+DEKPuesyQjqNxLySGjmuDlFUdfJaWMOUmsOOGtnroBc16mLStpM5PfiTk/TwRcHLsukOQtZXckvpHX4tc4dm/i0QK8R226KoFNioPEPgd2h+oS0VDP0g0IXsjoC8wbxK6r8+3IMCAKDqXsiUifvO6BUptBVHyCeHwd7uQGTQbei1vTTbf9n2eZaMYLV+V1MUYUtWNP1m+5t9Vcrz4paaBRvm0EJBEdgoiIJyPibMxF96fnSl2cDLIPI4+maxatZbL1mUHX
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(31686004)(4326008)(2906002)(8936002)(5660300002)(8676002)(66476007)(64756008)(6512007)(2616005)(66446008)(66556008)(76116006)(54906003)(110136005)(86362001)(7416002)(66946007)(91956017)(122000001)(38100700002)(508600001)(6486002)(6506007)(316002)(53546011)(107886003)(38070700005)(186003)(36756003)(83380400001)(31696002)(71200400001)(26005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?ZUFBcVJMcWJNUzY3M2tNL21WYUZmQ1FyV3h1Yk4rbUFZc2JQWDlHOEtMNS94?=
 =?utf-8?B?eGgySjlwSC9WRngyMUh3ZnJTTUMyN0puYUJJNE1DTGsxZkNVRHVrYnRoUEJp?=
 =?utf-8?B?eTk0QVJsblo4TW1renNCaVdtOHNzeDVndVpjYTZKRjdVQVh2bE5saU9aaUMx?=
 =?utf-8?B?bFR0VmR4U3h1aThXSFl0Y1M1WldHMDFoVUVpcHdscFFjV1dtcFlkUDl3RUtL?=
 =?utf-8?B?Vlo5UzdqbDZzNDBtU0ZRN0NqNHBKeHlNZ1ZmV2xZbnM4eXNnRlEyc0tHb0Za?=
 =?utf-8?B?TUc0NXdkaTNWaHU5UHFsUmRPbkhhL09Ia0NYQTJyNWROKzlzQjFydzZKczNu?=
 =?utf-8?B?VC9QMHB6QnRYeEc1YndNaWJRRUx3RmdxcTlHdXhqaloySjc2RXpEbGF2NVlU?=
 =?utf-8?B?SVYvWHU2QVAzZjBqSWNHWVlDdm9GYVA5NHBvU1NiVFhwSTZ4aGZab05ZT29x?=
 =?utf-8?B?YnMzdFJrbXk3V0FEQy9FeDRKdld6QWJITGFiZm9wZkplV29kUk8vWHcrbm0y?=
 =?utf-8?B?TzZCU2J6OTJhTWZQUkgrSWY0ZWZVaXpybDRxOGI5ZStXVkUrendrWmlGMnlm?=
 =?utf-8?B?Z09DRkFRallPbHRrMGZ5ZTJhS0lSTHZMT2FUTXllWUJsS0JlK1pwNEk3Wmxs?=
 =?utf-8?B?b2Q5bEY2aGhBRDJKc1cyN3dsVG83RXUzVGd5TmkvSHk1TG5KaEE0SDFQSDJa?=
 =?utf-8?B?VEhzbTJRTUVHU1RLVnMzUCt5MlBZV0phWjhJZDNDRElXV0Y4YTAwK1BIMC9B?=
 =?utf-8?B?aEVhU1BqOUFMdGJYY0VCcm9QdzUrUlcyUmJmYUxQMzBBekdObmdEK3ZTN1JI?=
 =?utf-8?B?M1pzbTBSUDJtWUE0d3ZseU11amtKWFNyOUFRekNpVmdoL3BnTEVpeFlteGdZ?=
 =?utf-8?B?aG81M0s4NlBwbnJmOVhFRVd4S3RKejJld3V3a0Q1TFlkbHRZMTgxeEQzMDgr?=
 =?utf-8?B?Y0ZPT1FzY0t6Z1FGY3MvK2NudXVOZlR4VTM0SWlHc09SYzQ1QUtpUHBDZDBk?=
 =?utf-8?B?d1hTQU5pN0p5QytOTnA4S0VmN0Zqby9qRzFNOW1iWWdXMW9MMFN3NHY3cHEx?=
 =?utf-8?B?c3diVmJ6ZWlpOWYzbDJkZFRoaUZwVk1iWm9uSUM4alRIU0lCMUV6NTB2T2NW?=
 =?utf-8?B?cXJSYldsM1dpT0FNajdJMHdhcE1LMlJVRUtwa1oyQUtCUlltbGc2QVRXdm1S?=
 =?utf-8?B?djJDSjVhV1REYkpWTEhVLzM2WHRGZ0RicDhWTGVVdUFXL1BhTXBjeVV3OHBU?=
 =?utf-8?B?cTdad3JGaks5YnBubFY3R3pPdjVQTHh3UTJldnN6blZiMDVSS2VUWmlKQVFG?=
 =?utf-8?B?REMyUmI5SzQyRzR3emxkcHdncEE4b05UUkNTeGxDRTEzbVREcDdadVd6TVdt?=
 =?utf-8?B?ZThqRUl1NDZhRkY1TmVPcUpCcGEwS3lXK3B0WjBtdzBrZjlVZzI1TjlsaERv?=
 =?utf-8?B?UjI1cnFzWGltYytnbEEwMVN1c3BuV1hpVzYzb2J5Y2phcGdtbHJOcVc5NENx?=
 =?utf-8?B?ZHNiZmppaDdPcmI4djRhRmVtZVg3WVk0VW1sYXE5a1dvdFVLZllLWFNzVk9C?=
 =?utf-8?B?Q2N1M2tvZ1B3S0wzVUc5R2R3bGZUcDJXZGJxUXJ3V2tYNzcvbUlaYm84QXRW?=
 =?utf-8?B?TXo1eWZrZWVaelpjQUQvZ2Z0d1Zja1NHM1BJUk9yZjdDc1M0b2lyQm00VHAx?=
 =?utf-8?B?R0xGYldsQ3JsQ0dwTDFMVjlxcXIyZ2FYNVR1NzVleE45Z1BkdzA0SzdhVTVJ?=
 =?utf-8?B?d1lsUTNjUmt1UDFUaDZDaUhDZzlGejRCaU1WTTlTQzRRaDBlUmhlT2YzNnE2?=
 =?utf-8?B?eFpkSjZNUmsvR0dodkdzQVJ6WXErV2U1Q0Q5K2VQdEg2cTJJU1FudlFQQnBx?=
 =?utf-8?B?N1RTbUd6RDllYTNFY3RyMm9HZE9mWWdpY2FIa1F2NkpEb1AwUUdrRzhJcHFo?=
 =?utf-8?B?eFl1YUFpcU8zcFZ1c09wOGJVa0kreEx3eDdYY3k1c3ZDb2pEb3RCZldrRDFJ?=
 =?utf-8?B?TW1DYkxkV21ScVVmYlpYeTU0OEpmUW4wbjJYM2E0K0R2clZmOUdBcXlqRitt?=
 =?utf-8?B?SFB3eExYT0Nxd1VpL2szekR2UGZocHpKSElKSElrRU9GMzJMQ1puN0xTMm5y?=
 =?utf-8?B?T2NSOGJzZkpCQjdXMFc2dUNsT05XTUpGbVhlbmVWa2tlQmV1ZTREbmpvUlY5?=
 =?utf-8?B?VzUrVjNhZTYyV1pyQ1N1OHJlcjlsczM1di9IcUIzV3QvYjZUYXJuV2NudmNv?=
 =?utf-8?B?Nk5uUm9BcWtzbktNZjM1T1kvVlFGd0t0TU83czhOQ3hjVUVGQ3UwMXdhWjR0?=
 =?utf-8?B?VFBDWFlRalB0bGMrZnpsUWI3VW90MTN0bng1a1VrWXpaeXA2bXYrZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <68D6251A8FAB554B9DBCE6D75D93DB24@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: af1bba23-8142-4539-b491-08d9add45bdd
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2021 16:23:03.3871
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EnQQpupQHXgMOjfXiXpXYxCp3wHVPyHzSHiMyfQGMQlAW+Rtw8Simnmb59mcXaq42DG5TvIb1uff3m4ZpUzJ2c8KBqJOS/BxoPYoeGROWL6WBPQX0o1PvatKOyU85xfa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6883
X-Proofpoint-ORIG-GUID: F0s-OZH-L_DIu_Xnwcdt1qnONQIB1lVt
X-Proofpoint-GUID: F0s-OZH-L_DIu_Xnwcdt1qnONQIB1lVt
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-22_08,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 clxscore=1015 malwarescore=0 mlxlogscore=999 suspectscore=0 adultscore=0
 phishscore=0 bulkscore=0 impostorscore=0 mlxscore=0 spamscore=0
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111220083

DQoNCk9uIDIyLjExLjIxIDE3OjI5LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+DQo+DQo+IE9uIDE4
LzExLzIwMjEgMDc6MTMsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4gSGksIEp1
bGllbiENCj4NCj4gSGkgT2xla3NhbmRyLA0KPg0KPj4gT24gMTcuMTEuMjEgMjM6MzMsIEp1bGll
biBHcmFsbCB3cm90ZToNCj4+PiBIaSBPbGVrc2FuZHIsDQo+Pj4NCj4+PiBPbiAxNy8xMS8yMDIx
IDA2OjU2LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4gSGksIEp1bGllbiEN
Cj4+Pj4NCj4+Pj4gT24gMTYuMTEuMjEgMjA6NDgsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+Pj4+
IEhpIE9sZWtzYW5kZXIsDQo+Pj4+Pg0KPj4+Pj4gT24gMDUvMTEvMjAyMSAwNjozMywgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+Pj4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hj
aGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPj4+Pj4+DQo+Pj4+Pj4g
SWYgYSBQQ0kgaG9zdCBicmlkZ2UgZGV2aWNlIGlzIHByZXNlbnQgaW4gdGhlIGRldmljZSB0cmVl
LCBidXQgaXMNCj4+Pj4+PiBkaXNhYmxlZCwgdGhlbiBpdHMgUENJIGhvc3QgYnJpZGdlIGRyaXZl
ciB3YXMgbm90IGluc3RhbnRpYXRlZC4NCj4+Pj4+PiBUaGlzIHJlc3VsdHMgaW4gdGhlIGZhaWx1
cmUgb2YgdGhlIHBjaV9nZXRfaG9zdF9icmlkZ2Vfc2VnbWVudCgpDQo+Pj4+Pj4gYW5kIHRoZSBm
b2xsb3dpbmcgcGFuaWMgZHVyaW5nIFhlbiBzdGFydDoNCj4+Pj4+Pg0KPj4+Pj4+IChYRU4pIERl
dmljZSB0cmVlIGdlbmVyYXRpb24gZmFpbGVkICgtMjIpLg0KPj4+Pj4+IChYRU4pDQo+Pj4+Pj4g
KFhFTikgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPj4+Pj4+IChY
RU4pIFBhbmljIG9uIENQVSAwOg0KPj4+Pj4+IChYRU4pIENvdWxkIG5vdCBzZXQgdXAgRE9NMCBn
dWVzdCBPUw0KPj4+Pj4+IChYRU4pICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioNCj4+Pj4+Pg0KPj4+Pj4+IEZpeCB0aGlzIGJ5IGFkZGluZyAibGludXgscGNpLWRvbWFp
biIgcHJvcGVydHkgZm9yIGFsbCBkZXZpY2UgdHJlZSBub2Rlcw0KPj4+Pj4+IHdoaWNoIGhhdmUg
InBjaSIgZGV2aWNlIHR5cGUsIHNvIHdlIGtub3cgd2hpY2ggc2VnbWVudHMgd2lsbCBiZSB1c2Vk
IGJ5DQo+Pj4+Pj4gdGhlIGd1ZXN0IGZvciB3aGljaCBicmlkZ2VzLg0KPj4+Pj4+DQo+Pj4+Pj4g
Rml4ZXM6IDRjZmFiNDQyNWQzOSAoInhlbi9hcm06IEFkZCBsaW51eCxwY2ktZG9tYWluIHByb3Bl
cnR5IGZvciBod2RvbSBpZiBub3QgYXZhaWxhYmxlLiIpDQo+Pj4+Pj4NCj4+Pj4+PiBTaWduZWQt
b2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29A
ZXBhbS5jb20+DQo+Pj4+Pj4NCj4+Pj4+PiAtLS0NCj4+Pj4+PiBOZXcgaW4gdjYNCj4+Pj4+PiAt
LS0NCj4+Pj4+PiDCoMKgwqAgeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jwqDCoMKgwqDCoMKg
wqAgfCAxNSArKysrKysrKysrKysrKy0NCj4+Pj4+PiDCoMKgwqAgeGVuL2FyY2gvYXJtL3BjaS9w
Y2ktaG9zdC1jb21tb24uYyB8wqAgMiArLQ0KPj4+Pj4+IMKgwqDCoCB4ZW4vaW5jbHVkZS9hc20t
YXJtL3BjaS5owqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA4ICsrKysrKysrDQo+Pj4+Pj4gwqDCoMKg
IDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4+Pj4+
Pg0KPj4+Pj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4v
YXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+Pj4+PiBpbmRleCA0OTFmNWUyYzMxNmUuLmY3ZmNi
MTQwMGMxOSAxMDA2NDQNCj4+Pj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMN
Cj4+Pj4+PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+Pj4+PiBAQCAtNzUz
LDkgKzc1MywyMiBAQCBzdGF0aWMgaW50IF9faW5pdCB3cml0ZV9wcm9wZXJ0aWVzKHN0cnVjdCBk
b21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sDQo+Pj4+Pj4gwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCB7DQo+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVpbnQx
Nl90IHNlZ21lbnQ7DQo+Pj4+Pj4gwqDCoMKgICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qDQo+
Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIFRoZSBub2RlIGRvZXNuJ3QgaGF2ZSAi
bGludXgscGNpLWRvbWFpbiIgcHJvcGVydHkgYW5kIGl0IGlzDQo+Pj4+Pj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCAqIHBvc3NpYmxlIHRoYXQ6DQo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCAqwqAgLSBYZW4gb25seSBoYXMgZHJpdmVycyBmb3IgYSBwYXJ0IG9mIHRoZSBob3N0
IGJyaWRnZXMNCj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICrCoCAtIHNvbWUgaG9z
dCBicmlkZ2VzIGFyZSBkaXNhYmxlZA0KPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
KiBNYWtlIHN1cmUgd2UgaW5zZXJ0IHRoZSBjb3JyZWN0ICJsaW51eCxwY2ktZG9tYWluIiBwcm9w
ZXJ0eQ0KPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBpbiBhbnkgY2FzZSwgc28g
d2Uga25vdyB3aGljaCBzZWdtZW50cyB3aWxsIGJlIHVzZWQNCj4+Pj4+PiArwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgICogYnkgTGludXggZm9yIHdoaWNoIGJyaWRnZXMuDQo+Pj4+Pg0KPj4+Pj4g
VGhlIGNoZWNrIGFib3ZlIHdpbGwgY2hlY2sgdGhlIG5vZGUgdHlwZSBpcyAicGNpIi4gQUZBSUNU
LCB0aGlzIHdvdWxkIGFsc28gY292ZXIgUENJIGRldmljZXMuIEkgYW0gbm90IGF3YXJlIG9mIGFu
eSBpc3N1ZSB0byBhZGQgImxpbnV4LHBjaS1kb21haW4iIGZvciB0aGVtLiBIb3dldmVyLCB0aGlz
IGZlZWxzIGEgYml0IG9kZC4NCj4+Pj4+DQo+Pj4+PiDCoMKgRnJvbSBteSB1bmRlcnN0YW5kaW5n
LCBhIFBDSSBkZXZpY2Ugd291bGQgYWx3YXlzIGJlIGRlc2NyaWJlZCBhcyBhIGNoaWxkIG9mIHRo
ZSBob3N0YnJpZGdlcy4gU28gSSB3b3VsZCByZXdvcmsgdGhlICdpZicgdG8gYWxzbyBjaGVjayBp
ZiB0aGUgcGFyZW50IHR5cGUgaXMgbm90ICJwY2kiLg0KPj4+Pj4NCj4+Pj4gV2UgbWF5IGhhdmUg
ImJyaWRnZSAtPiBicmlkZ2UgLT4gZGV2aWNlIiB0b3BvbG9neSBhcyB3ZWxsLg0KPj4+DQo+Pj4g
RG8geW91IGhhdmUgYW4gZXhhbXBsZSBvZiBEZXZpY2UtVHJlZT8NCj4+IE5vLCBJIGRvbid0IGhh
dmUgYXQgaGFuZCwgYnV0IEkgY2FuIGltYWdpbmUgdGhpcyBjYW4gcmVsYXRpdmVseSBlYXN5IGJl
IGRvbmUgd2l0aCBRRU1VID4gRXZlbiBpZiBub3QsIGRvIHlvdSBhc3N1bWUgdGhpcyB0b3BvbG9n
eSBjYW4gbmV2ZXIgaGFwcGVuPw0KPg0KPiBJIHRoaW5rIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBk
ZXNjcmliZSB0aGVtIGluIHRoZSBEZXZpY2UtVHJlZSBiZWNhdXNlIHlvdSB3b3VsZG4ndCBiZSBh
YmxlIHRvIHRyYW5zbGF0ZSB0aGUgInJlZ3MiIG9mIHRoZSBuZXN0ZWQgaG9zdGJyaWRnZSB0byBh
biBhY3R1YWwgTU1JTyBhZGRyZXNzLg0KPg0KPiBJbiBmYWN0LCBsb29raW5nIGF0IGR0X2Rldmlj
ZV9nZXRfYWRkcmVzcygpLCBJIHRoaW5rIFhlbiB3b3VsZCByZWplY3Qgc3VjaCBEVC4NCj4NCj4+
Pg0KPj4+PiBTbywgSSBwcmVmZXIgdG8gaGF2ZSB0aGUgY2hlY2sgYXMgaXQgaXMuDQo+Pj4NCj4+
PiBJIGRvbid0IHJlYWxseSBsaWtlIHRoZSBpZGVhIHRvIHNwdXJpb3VzbHkgYWRkICJsaW51eCxw
Y2ktZG9tYWluIiB0byBQQ0kgRFQgbm9kZS4gQnV0IGlmIHRoZXJlIGFyZSBubyBvdGhlciBzb2x1
dGlvbiwgdGhlbiB0aGlzIHNob3VsZCBhdCBsZWFzdCBiZSBtZW50aW9ubmVkIGluIHRoZSBjb21t
aXQgbWVzc2FnZSBhbmQgY29kZS4NCj4+IEkgYW0gZmluZSB3aXRoIGFueSBzb2x1dGlvbiBoZXJl
LCBJIGp1c3Qgd2FudCB0aGF0IHRvIGJlIGRlZmluZWQgYW5kIGltcGxlbWVudGVkLg0KPj4gUGxl
YXNlIGxldCBtZSBrbm93IHRoZSBmaW5hbCBkZWNpc2lvbiBvbiB0aGlzIGFuZCBob3cgd2UgcHJv
Y2VlZA0KPg0KPiBJIHdvdWxkIHByZWZlciB0byBnbyB3aXRoIG15IHdheS4gVGhpcyBjYW4gYmUg
cmVmaW5lZCBpbiB0aGUgZnV0dXJlIGlmIHdlIGZpbmQgRGV2aWNlLVRyZWUgdGhhdCBtYXRjaGVz
IHdoYXQgeW91IHdyb3RlLg0KT2ssIHNvIGp1c3QgdG8gbWFrZSBpdCBjbGVhcjoNCiA+YSBQQ0kg
ZGV2aWNlIHdvdWxkIGFsd2F5cyBiZSBkZXNjcmliZWQgYXMgYSBjaGlsZCBvZiB0aGUgaG9zdGJy
aWRnZXMuIFNvIEkgd291bGQgcmV3b3JrIHRoZSAnaWYnIHRvIGFsc28gY2hlY2sgaWYgdGhlwqBw
YXJlbnTCoHR5cGXCoGlzwqBub3TCoCJwY2kiDQo+DQo+IENoZWVycywNCj4NClRoYW5rIHlvdSwN
Ck9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 16:27:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 16:27:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229010.396333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpC9f-0000g4-Rk; Mon, 22 Nov 2021 16:26:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229010.396333; Mon, 22 Nov 2021 16:26:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpC9f-0000fx-Oi; Mon, 22 Nov 2021 16:26:55 +0000
Received: by outflank-mailman (input) for mailman id 229010;
 Mon, 22 Nov 2021 16:26:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=75Oo=QJ=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mpC9e-0000fr-U5
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 16:26:54 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ffdfad27-4bb0-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 17:26:53 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:42006)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mpC9b-0001YF-2D (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 22 Nov 2021 16:26:51 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 273C61FC53;
 Mon, 22 Nov 2021 16:26:51 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffdfad27-4bb0-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <68c0d8b1-68de-fe4e-f3be-de70117a29fa@srcf.net>
Date: Mon, 22 Nov 2021 16:26:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-6-andrew.cooper3@citrix.com>
 <fe2af9ad-36a7-40c9-8591-4b83831a3e87@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 5/5] x86/traps: Clean up diagnostics
In-Reply-To: <fe2af9ad-36a7-40c9-8591-4b83831a3e87@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/11/2021 09:08, Jan Beulich wrote:
> On 19.11.2021 19:21, Andrew Cooper wrote:
>> do{_reserved,}_trap() should use fatal_trap() rather than opencoding part of
> Nit: That's do{_unhandled,}_trap() now.

Ah yes.  Will fix.

>> --- a/xen/arch/x86/traps.c
>> +++ b/xen/arch/x86/traps.c
>> @@ -759,21 +759,7 @@ static int nmi_show_execution_state(const struct cpu_user_regs *regs, int cpu)
>>      return 1;
>>  }
>>  
>> -const char *trapstr(unsigned int trapnr)
>> -{
>> -    static const char * const strings[] = {
>> -        "divide error", "debug", "nmi", "bkpt", "overflow", "bounds",
>> -        "invalid opcode", "device not available", "double fault",
>> -        "coprocessor segment", "invalid tss", "segment not found",
>> -        "stack error", "general protection fault", "page fault",
>> -        "spurious interrupt", "coprocessor error", "alignment check",
>> -        "machine check", "simd error", "virtualisation exception"
>> -    };
>> -
>> -    return trapnr < ARRAY_SIZE(strings) ? strings[trapnr] : "???";
>> -}
>> -
>> -static const char *vec_name(unsigned int vec)
>> +const char *vec_name(unsigned int vec)
> Is this perhaps too ambiguous a name for a non-static function? exn_vec_name()
> at least, maybe?

"exception" has the same problem that "trap" has.  It's actively
incorrect naming.

vec_name() is already less bad as a global than trapstr() was, so I
don't consider this an issue.  I could expand it to vector_name(), but
that would gain several more hunks in the patch.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 16:28:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 16:28:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229014.396345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpCAq-0001G7-6R; Mon, 22 Nov 2021 16:28:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229014.396345; Mon, 22 Nov 2021 16:28:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpCAq-0001Fy-2F; Mon, 22 Nov 2021 16:28:08 +0000
Received: by outflank-mailman (input) for mailman id 229014;
 Mon, 22 Nov 2021 16:28:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpCAo-0001Fs-VV
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 16:28:06 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2bb97143-4bb1-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 17:28:05 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2107.outbound.protection.outlook.com [104.47.17.107]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-3-5jWlLHXSOSG9MvnZE8JGeA-1; Mon, 22 Nov 2021 17:28:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5326.eurprd04.prod.outlook.com (2603:10a6:803:57::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 16:28:02 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 16:28:02 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AM0PR08CA0022.eurprd08.prod.outlook.com (2603:10a6:208:d2::35) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Mon, 22 Nov 2021 16:28:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2bb97143-4bb1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637598485;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=/I61sKAen1gq7loaUN2VSyaPouvanSJgP0jD3oREJAA=;
	b=AVquyqNBykSq00iGwrQqwvaDESPIfMcSLAiJ7y7BdO0qFKwSW632iZMRFsuOiwrK0uYSzu
	7j+ZeFYM6uFZLPfeVOK3z0gGRU41AZV/fRbKZgytKv9tUcwPVy0ILFwryQa+VlZQH2be0V
	lf24PPZKoqmJXzSAfOj5bvy3VCXwViI=
X-MC-Unique: 5jWlLHXSOSG9MvnZE8JGeA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aDSlPzwgM35D2Nlv1rYd4m01kLYRPtcqsR+yrqtyNn3xApwKXOq9Jh3kHutAWyxCmnjz7f57Xyg77f/3UMlIkH69fN8se5NfLML0g76C22Drx/5zXVICTO4tQB6dUBXdjx7MDPVX5QfKAvBj1FzmIhvLklP/xBhwVQlIooSeT9rC6PeOX+oV3MHC/6y0ABnOScKb2PmWnL8GRqFtMNi9yuEaSct2k/eahwxLB4+QPKJjK3XBQX6Zs7hl04QUJUMRvy87ok+sn/cAvUdLu6kWVpDUbuIJdPJd/oS/7X4FffR19+jJXc+LlwH2pRlbGttw7qeNcIEsYWBUVqhEU6PVPw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ev9ovb0ACNCcK0QgjdHFJek9FbaGu2/8z0Fwy90R+M0=;
 b=g9NNwuffoM232AAhE70yksmFLl4Gi9AqSCz1WyJu42+kMXauku8aUA8dCPQvZN2V3uV3jrkwYxrz5zWl+OXfrh/jSS4WXBVWJoAcCcODyAjd+c3lWxlLGuAfqWCxJC/9cgn1nxTlSeKuMrnPuYx/kL4a+KyNMwizfoeDIme34+9UOREr8s6rvptY10CmEH+jEncoT8FcOw6wKSiElHnG6hqKz/bqhwqcLusUlvgYYslDdqmwANdRMl3+e861WIH+ZA7ENbaOY7tuYdtXrPtMbGejgQxDWA3HmZO3BUack1a6H2b5AsFR5qKtAzBi0I77qLpN7ePiQhvQZSJ3YDQQ7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0884ce30-7cb9-2fe7-a7a4-fa5e7b962123@suse.com>
Date: Mon, 22 Nov 2021 17:28:01 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 4/5] x86/traps: Drop exception_table[] and use if/else
 dispatching
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-5-andrew.cooper3@citrix.com>
 <8ac7cf1a-f235-a065-182f-3303aa9be5b7@suse.com>
 <39e0fcf5-0665-1614-31d1-59f98551abdd@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <39e0fcf5-0665-1614-31d1-59f98551abdd@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM0PR08CA0022.eurprd08.prod.outlook.com
 (2603:10a6:208:d2::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b724bb4b-1f18-4438-b0cd-08d9add50ded
X-MS-TrafficTypeDiagnostic: VI1PR04MB5326:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5326A9FD55EA5269341E63ACB39F9@VI1PR04MB5326.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	7Hd9eMQQjDjzoCxpKsvFiO3GFMbW9FSsuAjuz3gaCoVW10AwhW4jxGj4t6BXHKKxav97yebtKnMyMXJ/ZuPm+tae3nMgob9gv8JtvYYUIEJLu2FajMGJg6UTq8Rv5BOKRqtRefY7BUNxYQ5JFZsQ7tXekDtyLlYwrSPv9xfUGFRQuAmIhEpSSTeF/gtMLRpgn/bQZTKsG5b8FmALJXgrGpzL6eaEVgBhfQ8bQ58+jtpWzi+mCW9eE3XQlJBae0LdwVpN6gwehXfmErO8wwJE4GTjFVZDUX2O7CGmMvODN7zDdSE+XAnaqFSEtSlLEc+43LFBpvPmsg1lOcpPKizOK0foCGr7YTKOWLyeVQbpjWqIfjc/cJHO8D7G73xEBmeQcKHE+vjutxxg5BKPYtSH2/YPRj85RZURkHSPLRGvY+Xj7U6gF/7HjfG0fJ/G4ZcNjJ+ETI62dGZe5nKUr/06BPSnc6sdqEk9YOY+idRg6x820nUelsC78scKRUNmVEbIxXpAJeqxfI0m36RvfudbIy3WyuRFkzHWSrsWkv2J/0zfwTWBW4mckGJ+FGRF+IxhOqizZi/WjF+gMeuQiYpq1skezOKx3oNNPAhbGkt8vbURvvMzLdleNu0fpxmGEgppdJ+ENVeQ0AYZvgpydGD4eRAbezckLCgjoydhrrxQbQWSWTNL9pHtHyHxNtWvoz5GN449HFdWfMf5A+AspOMApXH0nXvFPvL4WTYpA/qNpF8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(8676002)(2906002)(31696002)(66476007)(66946007)(66556008)(54906003)(5660300002)(8936002)(83380400001)(4326008)(38100700002)(6486002)(31686004)(508600001)(316002)(86362001)(186003)(110136005)(36756003)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?cn41Q5/wESzhMitaANJ4iTtiQwgYtbpfl/k1uUM8CD1Ay80faukTM5Yf1Ad7?=
 =?us-ascii?Q?OyM31U0riQI1qal5iGz/K9xA5lKL2L7O27u7V9sNetfq1+YvkIe/Z5U8aGfX?=
 =?us-ascii?Q?oc0emZldQfQASLsNyPR3QtWTDARkbWSxutJOoiNCsPrCqMoOSvnoIubh4L5s?=
 =?us-ascii?Q?5kTmEg0pb3Rp7hEt78RtZOLobhxNvcDbgGeunJrBCXpOWtweqVec+GjJpIU8?=
 =?us-ascii?Q?R9m6eW1/8tvJeokX+ZxXCTL24MB2wCN+4HJP7f8sfXoE/kXIDmN1YgfDEaDr?=
 =?us-ascii?Q?hmqsPdD6QGD9y2U6nsj+Zh+2jQ4dLr+6eiA5y/PVmQpjR1R35/kmqz6G9Nxv?=
 =?us-ascii?Q?vis6xTgKcDRxVB0Wc2Aj18KwXTxLQsXZNon7GoZntJ1qFWWGqLyPUoU+88Pf?=
 =?us-ascii?Q?PHTiGZyCNlsXU1HFE46gBHPGjQRs8s8OZNlErRuOq3o54yJ/1BjFlXULzwgK?=
 =?us-ascii?Q?bRlf3Q8kqR37dUw4QLcTtWjF+wJJyEUf2ePFUcVpTHy5m5p+slKiByBASXLQ?=
 =?us-ascii?Q?cPle4WKjLgGeAq6AoFlYCZ1ovHA1DUbRsij2NSy4ET2sOtmMaznxAN0ti7UN?=
 =?us-ascii?Q?GRY6tYe2/3j7nWEeGHmISHLJ/TxR9Iit+7IHYlmaJ/0/1jzGX/nfnz5qdhlh?=
 =?us-ascii?Q?ghjrnjqZM+Zii9cy/CNv0BRDpzc5dN+RpWHL5weBNUx+Hxlsvne7+pSHHbhO?=
 =?us-ascii?Q?8FDMIvlif1ylFeqj7gCSoNPDnbMUZZ/Xh0XE938w4UwyDslINvrfOb/m8HUA?=
 =?us-ascii?Q?SW8pDp80hVoG+drBRfyTFlLbOGu5kFGUDCMtkTB+IwifVxE7y00pnCMQ198c?=
 =?us-ascii?Q?wOkWSZ+YhiYTfp7g0E+FWCb+6+87LPq0QjajThfjltm43eKCOrhj7ix5qS52?=
 =?us-ascii?Q?ZcQ5/mWX3HiMCbXn3P6V0SL7A/OOAQ95GZs59hcCqFRfqrSoGcm8I52oQAa3?=
 =?us-ascii?Q?INGa1rr+CTPft0Z/OukdX+8bWyIhu1jpa6PaZn3bkl61cvQDbEevZAN+cs2+?=
 =?us-ascii?Q?YTR/L1B3bobzFVSGF9hj8V/okQF2GMdQU/WD8tgK/HYAmpCnkjJN3hJ4B3mW?=
 =?us-ascii?Q?DSkUmauf+de4TKt3GhKJVzTOCM2q9+LgNJJxrBapgNdUNAAWTpVPVfYDq1bV?=
 =?us-ascii?Q?ehS+c55RWl73Pl8AsFLPTvnJ2mSvk+7H2st72Th2Mh+ViJfRaXNipcRUKXDH?=
 =?us-ascii?Q?27hJpObGV+/nkfPKDupQrDeu9pjn/Ysn2LV6kDEh/h/wdwsPAfW9rEMtGEzx?=
 =?us-ascii?Q?Zn9/MNkZObGUtfqIkkZjR/nLn0EaV6n64obenzbP4ilsKZ2S7hYDkEXY9CzA?=
 =?us-ascii?Q?dIS9UmhwwDigMyy9I02uv0A0UGuEd8jaTzPpJA4NOFY+1ybkBqLRmrMnvkKk?=
 =?us-ascii?Q?m4P7SniWq7swUc4+GjbEMlt73Pq0G6wUwe44fBpsYC1GsA4wZiDJjut0SBrm?=
 =?us-ascii?Q?+UyR9ig5wpIvRdeY6rF629L0f1u5WrmuP3XLLpIZQWErVGB7ZgWXmcXJhq/2?=
 =?us-ascii?Q?LnEKa5XaD9IVamMnilus1tDK2w3T+Vwt4NAkltvG6Gm7brlpNeQc4JXuXBTw?=
 =?us-ascii?Q?CfLfpoJ44SLs+BtcQMBDv9mJgMUQo4tbrbww77ACp4Mpvv5ogQ//R4OiGEhI?=
 =?us-ascii?Q?Ke+COI5FZxT0yf1LFYbqaW9lO0fxd6EWZy5YtSwrDBKmoGS8IUx+GCo8NCXi?=
 =?us-ascii?Q?aSKYlZv5iZJMWeE8KHJJngrgINg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b724bb4b-1f18-4438-b0cd-08d9add50ded
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 16:28:02.4225
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 96aUgsuUMAGPqRdEXw9VYOdwEbqlJ7cOvmN0I5+DF41wmt5MlxttcwIAKbA2RpPJ0/xMUArHckfjLJ5nYC4qkA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5326

On 22.11.2021 17:16, Andrew Cooper wrote:
> On 22/11/2021 09:04, Jan Beulich wrote:
>> On 19.11.2021 19:21, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/x86_64/entry.S
>>> +++ b/xen/arch/x86/x86_64/entry.S
>>> @@ -773,14 +773,48 @@ handle_exception_saved:
>>>          sti
>>>  1:      movq  %rsp,%rdi
>>>          movzbl UREGS_entry_vector(%rsp),%eax
>>> -        leaq  exception_table(%rip),%rdx
>>>  #ifdef CONFIG_PERF_COUNTERS
>>>          lea   per_cpu__perfcounters(%rip), %rcx
>>>          add   STACK_CPUINFO_FIELD(per_cpu_offset)(%r14), %rcx
>>>          incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)
>>>  #endif
>>> -        mov   (%rdx, %rax, 8), %rdx
>>> -        INDIRECT_CALL %rdx
>>> +
>>> +        /*
>>> +         * Dispatch to appropriate C handlers.
>>> +         *
>>> +         * The logic is implemented as an if/else chain.  DISPATCH() c=
alls
>>> +         * need be in frequency order for best performance.
>>> +         */
>>> +#define DISPATCH(vec, handler)         \
>>> +        cmp   $vec, %al;               \
>>> +        jne   .L_ ## vec ## _done;     \
>>> +        call  handler;                 \
>>> +        jmp   .L_exn_dispatch_done;    \
>>> +.L_ ## vec ## _done:
>>> +
>>> +        DISPATCH(X86_EXC_PF, do_page_fault)
>>> +        DISPATCH(X86_EXC_GP, do_general_protection)
>>> +        DISPATCH(X86_EXC_UD, do_invalid_op)
>>> +        DISPATCH(X86_EXC_NM, do_device_not_available)
>>> +        DISPATCH(X86_EXC_BP, do_int3)
>>> +
>>> +        /* Logically "if ( (1 << vec) & MASK ) { do_trap(); }" */
>>> +        mov   $(1 << X86_EXC_DE) | (1 << X86_EXC_OF) | (1 << X86_EXC_B=
R) |\
>>> +               (1 << X86_EXC_NP) | (1 << X86_EXC_SS) | (1 << X86_EXC_M=
F) |\
>>> +               (1 << X86_EXC_AC) | (1 << X86_EXC_XM), %edx
>>> +        bt    %eax, %edx
>>> +        jnc   .L_do_trap_done
>>> +        call  do_trap
>>> +        jmp   .L_exn_dispatch_done
>>> +.L_do_trap_done:
>>> +
>>> +        DISPATCH(X86_EXC_CP, do_entry_CP)
>>> +#undef DISPATCH
>> The basis for the choice of ordering imo wants spelling out here. For ex=
ample,
>> despite the data provided in the description I'm not really convinced #B=
P
>> wants handling ahead of everything going to do_trap().
>=20
> Why?
>=20
> Debugging might be rare, but #BP gets used in non-error cases.=C2=A0
> Everything heading towards do_trap() really got 0 hits, which is
> entirely expected because they're all fatal signals by default.

#MF and #XM certainly aren't. For some of the others I agree with
"by default", but without extending this to "in general".

>>> @@ -1012,9 +1046,28 @@ handle_ist_exception:
>>>          incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)
>>>  #endif
>>> =20
>>> -        leaq  exception_table(%rip),%rdx
>>> -        mov   (%rdx, %rax, 8), %rdx
>>> -        INDIRECT_CALL %rdx
>>> +        /*
>>> +         * Dispatch to appropriate C handlers.
>>> +         *
>>> +         * The logic is implemented as an if/else chain.  DISPATCH() c=
alls
>>> +         * need be in frequency order for best performance.
>>> +         */
>>> +#define DISPATCH(vec, handler)         \
>>> +        cmp   $vec, %al;               \
>>> +        jne   .L_ ## vec ## _done;     \
>>> +        call  handler;                 \
>>> +        jmp   .L_ist_dispatch_done;    \
>>> +.L_ ## vec ## _done:
>>> +
>>> +        DISPATCH(X86_EXC_NMI, do_nmi)
>>> +        DISPATCH(X86_EXC_DB,  do_debug)
>>> +        DISPATCH(X86_EXC_MC,  do_machine_check)
>>> +#undef DISPATCH
>>> +
>>> +        call  do_unhandled_trap
>>> +        BUG   /* do_unhandled_trap() shouldn't return. */
>> While I agree with putting BUG here, I don't see the need for the CALL.
>> Unlike in handle_exception there's no vector left unhandled by the
>> DISPATCH() invocations. The CALL being there give the (wrong) impression
>> there would / might be.
>=20
> I firmly disagree.
>=20
> do_unhandled_trap() is a fatal error path both here and for the non IST
> case, and is absolutely the appropriate thing to call in the dangling
> else from this chain.
>=20
> It is only unreachable if 15 things line up correctly in a very fragile
> piece of code, where both you and I have made errors in the past.

The 15 things are: There may not be a new exception type vectored here
without updating the dispatch code. Failing to do so is quite fine to
be caught by the BUG alone. And adding new IST handlers requires care
in a number of other places anyway, so anyone doing so will surely
grep for all occurrences of the types presently handled here. That'll
make them spot the dispatch which needs updating alongside the several
other places.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 16:34:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 16:34:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229019.396356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpCH4-0002j5-0w; Mon, 22 Nov 2021 16:34:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229019.396356; Mon, 22 Nov 2021 16:34:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpCH3-0002iy-Tq; Mon, 22 Nov 2021 16:34:33 +0000
Received: by outflank-mailman (input) for mailman id 229019;
 Mon, 22 Nov 2021 16:34:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z7kF=QJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpCH2-0002is-Sv
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 16:34:32 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 11c6c982-4bb2-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 17:34:31 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-22-42BqV8KBNyqhSWblD6u6hQ-1; Mon, 22 Nov 2021 17:34:30 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4350.eurprd04.prod.outlook.com (2603:10a6:803:3e::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Mon, 22 Nov
 2021 16:34:29 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 16:34:29 +0000
Received: from [IPV6:2003:ca:b712:7ba9:201a:362a:8f72:2ea6]
 (2003:ca:b712:7ba9:201a:362a:8f72:2ea6) by
 AS9PR06CA0122.eurprd06.prod.outlook.com (2603:10a6:20b:467::8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Mon, 22 Nov 2021 16:34:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11c6c982-4bb2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637598871;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eWs0GYRaolvqvKBdWk/e0JT4PrZ+xyx1Dq3BOuRvsYs=;
	b=YYqeTMREzt2bwkWtEFXOXcfI7q9D+JArS92M1IfJpACpihKgVJtzZhCwshYnjtkC/oYyLA
	f/JNQSRHzk9r2WlpFCdDb9HNqP1e9GOh2kszbQfO3IxxbWGmRgd2hu7ZYpLEE+cPGAaLHI
	1JjBYmHgypXdNd7YNEdg1nXJNiXW5tE=
X-MC-Unique: 42BqV8KBNyqhSWblD6u6hQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JvON89sOBHX/IYOTW/TQ8UbMBGs5yhlcNfClTfeMMwHvtjYGRyhxqRO7injpgbWQLK9gfiUI+fNDcuWjG4ggK9pkJ6t3IxebGmAun5VM8xkTDCSp9uQ9ToEKg6ylVgUqbN9bl9y1F4oT0nkSlqZbEJD9vegIgZQv5nS8KrHfCJoTn3zc9wmzB4apLZAtQQZLJVHuy7qyMY2x3OH88XUkpgqkHBZ+zBr3WjvHkuqfCLUKRclspkYTtq4ficm2CYqHT2IxQLDUNmgTToC4Dl/K2NQWkmQY1EpdcQpxrjS6ux1ontpzT3e5GomD1o1lReRrIXpN5F8fZQ5ophHbG+i+mQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a9LF+fweeCQ3ndoYkCSk/u/MH/+mpJvAtWmcG73EPxc=;
 b=EODYhbVwYkWMhrVUEIsDpDEmFu5UfUlQva4uq4AFHnFpI8VVUMjPe1Hc4eknK/67ppr/ZcoanjMifWD7dT+vLbVtHmIvingW8G50Jps8D3+nbxBg/8H+ZZcKnFbuuePlXSG1YT21+XlsQ+6KHCrTvASoy+HOXWY0Yf1YJcQq6KquvrvTHJsydbt+GobBbDnrjhyTzDNOr/29NeCWO8+eTHis1NyLr2UM+DloaXCTOkRQVkIr4KHx3eFSqH7Ql9Bibl2/N9DAgXpD99jefManXIpCdi3dVRTb8++xaUjfniyCLYwvNxpAr3imHyGa/dZA7Vc1siKiAanC5YDLk77EMg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a1baace8-4fdb-bbe6-f421-050e1400a738@suse.com>
Date: Mon, 22 Nov 2021 17:34:27 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 5/5] x86/traps: Clean up diagnostics
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-6-andrew.cooper3@citrix.com>
 <fe2af9ad-36a7-40c9-8591-4b83831a3e87@suse.com>
 <68c0d8b1-68de-fe4e-f3be-de70117a29fa@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <68c0d8b1-68de-fe4e-f3be-de70117a29fa@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0122.eurprd06.prod.outlook.com
 (2603:10a6:20b:467::8) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d4e1d90f-b5af-43d4-5e54-08d9add5f467
X-MS-TrafficTypeDiagnostic: VI1PR04MB4350:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43500A102304CF70524B65C9B39F9@VI1PR04MB4350.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	nPItE4/SCV7UBSJ6xKhsVBU9dXSpvvPhwvAJSgpuqmb/HK59RhyKWUGuenmm6S8kgEMl6ZtTdbl+XkKmv8wZ0B5C1EVQ2wofBecRp5+OtOzIXdtQ922X+rimQE7Ezcr7JURNi7LXtMka2X1w2wDZLK+y32uEJuoXBvSIoSGR8jqt8tJ6DIl7Moosh64419g2bD1uVV4Wzzi9Ud9WlOPcP2sQCUpBM7ydvgMqMeL70z0/YYgE6+a2hFrL3Gmvqh9i56LTCYMa5w9MksAHklmtcZ2gUEsZ4wZC41rkva+Om2anJTmc97km7QpRIBQPIdFp33qz0BXQGpDlMJru1XcUxDInJovuDfRO2CYzLpqoZkg1VEhz2EviX8T56xmPaZd+PaQj+Z17OsOcV19NjYp4JNxQoZKlQRj66avpZXH/jw5nUEMNZ7lsFOxlyjVmP0sVZRS19EA1ivLryHSR1lHHL28uOcr1Xr+pFfC1e6BTKZZpQiJKCaOENx80WphzI1haAn2d1HLPCt/MaobO8oHWp8yhBgDgPQc4+PuzJgZjir+Sa5op6FJZ+lwr0mIr4uxzSIydIJMZHjQrLK4AG/UWF+xa5tpHGazTPnEbpMBYg055s4HL3r3ogHvtu8aiI9YwgirZehs6BZORgHgL9Mqu8ffyMmZfVBBpL4ANcVG/CiB6Aivw9YsfdiDdVkJngGejNQ5w0XKP20W1h91rZFmQ4dHyi+hALSG+yeQMN63Tqnc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(5660300002)(110136005)(54906003)(38100700002)(31686004)(4326008)(8676002)(316002)(6486002)(36756003)(2616005)(83380400001)(508600001)(186003)(31696002)(53546011)(66476007)(66556008)(2906002)(8936002)(86362001)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?9sP1inebEMF6pEqqCDCQd0VIc0erbvpp0+7jbQe8LftqFTwdOou+xP9eyf2X?=
 =?us-ascii?Q?rQMvl5x386XdvXw/WHN/4xyZT9x1XhMLf47huCB/c4SWgC1s1eoQiWIG8soX?=
 =?us-ascii?Q?XfMdU5EqrQoNqOGqtZdeJ42cuODK6NvByfKUr98p0ldGJSqM/MkTW5ZEa0MB?=
 =?us-ascii?Q?D9fFi2+kJHiet58Jw1EEx3PCmoM/3VeGjrt542U62q0sIESBDA0hATHydJOd?=
 =?us-ascii?Q?5UPpSHvlNVDM9oYOSK1+UiiHQJEZOWG5HSbaqcfiDWLDqBVY/nN/vEG87viP?=
 =?us-ascii?Q?nNNdHLlvqoU5hfeAThfmqYoAOw8brYKZCU1WTWbYHMkme0UvHIfMdSWez8Ab?=
 =?us-ascii?Q?+rsAxtoWNe4fTgBTY6ih8SuQayvBBV60+O6U2aWNsEpejZnQmHOUo6XaB/KI?=
 =?us-ascii?Q?uw/c9AiQ+XzViH7zgI8JwpLA+zB/qz73j83vFgSKz4sxcL8nE07a7hD7lDuS?=
 =?us-ascii?Q?hrBqSvNHwYJ91VVeRUE4Rvbm7Im6Hcs5hGywQ4CN80bjI6eEmrwNUS4xVP6b?=
 =?us-ascii?Q?1PqRvKxzN071TmPQ94SOe7NBBxOh5kD4nO84zLTmIqrSLJTlpcLpI3KymnHj?=
 =?us-ascii?Q?ODCv3T5QjG2OB2/qNX7qHZdl8Qfxalga1Pph/XMo220UULDsgK/A4E3E+QID?=
 =?us-ascii?Q?2bIqP1/ziiJ1DcTZJ0FrEaJObhM8C++oLM6hwC3EpXIsP47bOivnMJs/xWnD?=
 =?us-ascii?Q?li+rq1u0F4/7w7/o/u1yzpJCIazvEUVKGvzDConOupLqo2uAqZvQzjNuYc8M?=
 =?us-ascii?Q?y70S5RgoQxVGNb0aj28AVmBMlF3+VSxXSvX0WRT4HuNuj2d4tuM10fcpqmKN?=
 =?us-ascii?Q?l3MkShAVCKMqiR9Jb3OAfbAiLcRR32ZbSN+sloHThcs5btspXcBoGesxhYHd?=
 =?us-ascii?Q?f4sJ5IowHoAcGzbBWZypftX0kdtGcJkHl42q2Su8Jw8WY/ySEx+nT8yRzIKt?=
 =?us-ascii?Q?TPn015kwslcqfO7Rv54/iYtirmcwh4zsrEZe2u4W/0Wn6wqXkd7+N2FwkA17?=
 =?us-ascii?Q?qrDzQJ8MBNoyRPE/8V1WOq0toe6MCZuHMPiGZL3yjBiGoTce3KNrmYNKFjit?=
 =?us-ascii?Q?1aOv6zoTCKcixd48RDPvBLV/LVssh75g1hAgrTm3FBN6jHkZwaKBWTH34kV9?=
 =?us-ascii?Q?dwDIW1gXcymy9ZXxd/TJyP/1Bgnt9i0P79Vs+qcu7ncafUmUtc2gAb6K9LmM?=
 =?us-ascii?Q?TdPRUkbJ+4iyN8xpyJkcpP/VuaCLAtqOT9eJb8l1+modkTnvjzAZJqW3zIG3?=
 =?us-ascii?Q?Awsxolfby9H1rS5lmzdGP2AFTSrmGGbIQ7hpEIglbiM+iJ5aVPZaurFWnlwS?=
 =?us-ascii?Q?P1pP0QxZ80shAb4/Xu3NZ5fxIotkn0mky7d+ZKK2eS1PIWtHcD37iNoLmRDW?=
 =?us-ascii?Q?Ba7OS4oAqXPktxPnAW+CekFOqFhqEVIgCaEdG6aFeF1t8JhsJ8R87HJ45RaZ?=
 =?us-ascii?Q?5eScECNjlESXo1tyW555Aj83O+g3GZ5Q5NvKxK60vvabLqllEHi1aQPuLp1x?=
 =?us-ascii?Q?R53XjQzIvM7SdPB7K4grHyJJNohU3rhEzBhxTHKCzlo5KargNSMxkG1gbz6I?=
 =?us-ascii?Q?HacKd7RGXQmImhJuOX7dgov++n9GRvuXuANK6+1de24haubEQWlreGgcQe9y?=
 =?us-ascii?Q?2w2Jdb0UqCJ46Oe2nEAr8jZkmcOMUK0h98M/U6QOGs95KcYXcycGGk9PmstG?=
 =?us-ascii?Q?QI0g8gi8l2bw7NStUEZ53xMRBpw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d4e1d90f-b5af-43d4-5e54-08d9add5f467
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 16:34:29.1189
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: l0W3UG+ScNsOjLoS/Vk5N7BGCujFSpuYEJ/kDj++e3QpHD6uIFDwjIQyTvYDoiViBIvoUZCSBB4KJsiunrJ+WQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4350

On 22.11.2021 17:26, Andrew Cooper wrote:
> On 22/11/2021 09:08, Jan Beulich wrote:
>> On 19.11.2021 19:21, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/traps.c
>>> +++ b/xen/arch/x86/traps.c
>>> @@ -759,21 +759,7 @@ static int nmi_show_execution_state(const struct c=
pu_user_regs *regs, int cpu)
>>>      return 1;
>>>  }
>>> =20
>>> -const char *trapstr(unsigned int trapnr)
>>> -{
>>> -    static const char * const strings[] =3D {
>>> -        "divide error", "debug", "nmi", "bkpt", "overflow", "bounds",
>>> -        "invalid opcode", "device not available", "double fault",
>>> -        "coprocessor segment", "invalid tss", "segment not found",
>>> -        "stack error", "general protection fault", "page fault",
>>> -        "spurious interrupt", "coprocessor error", "alignment check",
>>> -        "machine check", "simd error", "virtualisation exception"
>>> -    };
>>> -
>>> -    return trapnr < ARRAY_SIZE(strings) ? strings[trapnr] : "???";
>>> -}
>>> -
>>> -static const char *vec_name(unsigned int vec)
>>> +const char *vec_name(unsigned int vec)
>> Is this perhaps too ambiguous a name for a non-static function? exn_vec_=
name()
>> at least, maybe?
>=20
> "exception" has the same problem that "trap" has.=C2=A0 It's actively
> incorrect naming.

Well, yes, "exception_or_interrupt_name" would be more correct but quite
a bit too long for my taste. In an earlier project I did work on we
used "interruption" to cover everything (including hardware interrupts),
but the abbreviation thereof wouldn't be distinguishable from
"interrupt"'s.

Bottom line - you have my R-b, and the name change was just an extra
consideration.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 17:17:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 17:17:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229026.396366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpCwE-0006tM-7Q; Mon, 22 Nov 2021 17:17:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229026.396366; Mon, 22 Nov 2021 17:17:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpCwE-0006tF-4M; Mon, 22 Nov 2021 17:17:06 +0000
Received: by outflank-mailman (input) for mailman id 229026;
 Mon, 22 Nov 2021 17:17:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpCwC-0006t9-H2
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 17:17:04 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpCwC-0004XA-15; Mon, 22 Nov 2021 17:17:04 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.28.80]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpCwB-0000Wj-Qm; Mon, 22 Nov 2021 17:17:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ZvcLHIKqXFA32CFJwsthtRKvG6Ih2xu2CaSQxZi1LYA=; b=foVl3zbfXARx+5FDPWq6VPH5nj
	SPB1r5/lSfRm3rCLndvnlXvSOtOiBfmZ/M7JusI2hB0VKkM50dmvMAmqfHBv3sU+T58D7tEdLksLK
	u+yaEoD9KSpdcJGJ0TeTIiCmHNuOS+KmERQTeaIzUA7rfAzU4V7KaM5597QXpBb/q4+o=;
Message-ID: <9f8e424d-ad1c-2d32-a470-68b275adf22c@xen.org>
Date: Mon, 22 Nov 2021 17:17:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
 <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
 <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
 <e66c4189-acdf-c32f-4b50-51c8aaab4efd@xen.org>
 <315b1308-5adc-c4f3-6150-1060dbac5f4f@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <315b1308-5adc-c4f3-6150-1060dbac5f4f@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 22/11/2021 16:23, Oleksandr Andrushchenko wrote:
> On 22.11.21 17:29, Julien Grall wrote:
>> I would prefer to go with my way. This can be refined in the future if we find Device-Tree that matches what you wrote.
> Ok, so just to make it clear:
>   >a PCI device would always be described as a child of the hostbridges. So I would rework the 'if' to also check if the parent type is not "pci"

That's correct. Thank you!

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 17:36:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 17:36:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229031.396378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpDEf-0000lL-RT; Mon, 22 Nov 2021 17:36:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229031.396378; Mon, 22 Nov 2021 17:36:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpDEf-0000lE-OF; Mon, 22 Nov 2021 17:36:09 +0000
Received: by outflank-mailman (input) for mailman id 229031;
 Mon, 22 Nov 2021 17:36:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpDEe-0000l8-Ch
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 17:36:08 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpDEd-0004pP-VK; Mon, 22 Nov 2021 17:36:07 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.28.80]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpDEd-0001Yb-Om; Mon, 22 Nov 2021 17:36:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=fCHLQ5q67Ao5Ulf9zTX/rVK+rh1NUdieK7oaoO4i7qY=; b=WXWtVh2r9+nWlHWMsAiJ3ZjCuv
	MeM09V7zWdQiqIsuvNEVzb6KOGfXfVeGLiSh/DHadE1T35H342FmT+kbeNzaHoLTQ13sRxgd5tML9
	GW+JqsldOnVKkPGNSpWQZ3KRuCD/NDVyEgYTdOfS642ZnGNDaY+F8OCFz8ocRszyFj6Q=;
Message-ID: <117a57d1-aa4f-8153-8bba-2db47c234b81@xen.org>
Date: Mon, 22 Nov 2021 17:36:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
 <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
 <2f414e8f-67d5-d513-74d4-cc21a3a9ed28@epam.com>
 <9f712f79-9660-865a-3002-713950518819@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9f712f79-9660-865a-3002-713950518819@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 18/11/2021 10:46, Oleksandr Andrushchenko wrote:
> On 18.11.21 09:27, Oleksandr Andrushchenko wrote:
>> Hi, Julien!
>>
>> On 16.11.21 21:12, Julien Grall wrote:
>>> Hi Oleksandr,
>>>
>>> On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>
>>>> In order for vPCI to work it needs to maintain guest and hardware
>>>> domain's views of the configuration space. For example, BARs and
>>>> COMMAND registers require emulation for guests and the guest view
>>>> of the registers needs to be in sync with the real contents of the
>>>> relevant registers. For that ECAM address space needs to also be
>>>> trapped for the hardware domain, so we need to implement PCI host
>>>> bridge specific callbacks to properly setup MMIO handlers for those
>>>> ranges depending on particular host bridge implementation.
>>>>
>>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>> ---
>>>> Since v5:
>>>> - add vpci_sbdf_from_gpa helper for gpa to SBDF translation
>>>> - take bridge's bus start into account while calculating SBDF
>>>> Since v4:
>>>> - unsigned int for functions working with count
>>>> - gate number of MMIO handlers needed for CONFIG_HAS_PCI_MSI
>>>>      and fix their number, e.g. single handler for PBA and
>>>>      MSI-X tables (Roger)
>>>> - re-work code for assigning MMIO handlers to be simpler
>>>>      and account on the fact that there could multiple host bridges
>>>>      exist for the hwdom
>>>> Since v3:
>>>> - fixed comment formatting
>>>> Since v2:
>>>> - removed unneeded assignment (count = 0)
>>>> - removed unneeded header inclusion
>>>> - update commit message
>>>> Since v1:
>>>>     - Dynamically calculate the number of MMIO handlers required for vPCI
>>>>       and update the total number accordingly
>>>>     - s/clb/cb
>>>>     - Do not introduce a new callback for MMIO handler setup
>>>> ---
>>>>     xen/arch/arm/domain.c              |  2 +
>>>>     xen/arch/arm/pci/pci-host-common.c | 27 ++++++++++++
>>>>     xen/arch/arm/vpci.c                | 66 ++++++++++++++++++++++++++----
>>>>     xen/arch/arm/vpci.h                |  6 +++
>>>>     xen/include/asm-arm/pci.h          |  5 +++
>>>>     5 files changed, 98 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>>>> index 96e1b235501d..92a6c509e5c5 100644
>>>> --- a/xen/arch/arm/domain.c
>>>> +++ b/xen/arch/arm/domain.c
>>>> @@ -739,6 +739,8 @@ int arch_domain_create(struct domain *d,
>>>>         if ( (rc = domain_vgic_register(d, &count)) != 0 )
>>>>             goto fail;
>>>>     +    count += domain_vpci_get_num_mmio_handlers(d);
>>>> +
>>>>         if ( (rc = domain_io_init(d, count + MAX_IO_HANDLER)) != 0 )
>>>>             goto fail;
>>>>     diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
>>>> index 47104b22b221..0d271a6e8881 100644
>>>> --- a/xen/arch/arm/pci/pci-host-common.c
>>>> +++ b/xen/arch/arm/pci/pci-host-common.c
>>>> @@ -289,6 +289,33 @@ int pci_get_host_bridge_segment(const struct dt_device_node *node,
>>>>         return -EINVAL;
>>>>     }
>>>>     +int pci_host_iterate_bridges(struct domain *d,
>>>> +                             int (*cb)(struct domain *d,
>>>> +                                       struct pci_host_bridge *bridge))
>>>> +{
>>>> +    struct pci_host_bridge *bridge;
>>>> +    int err;
>>>> +
>>>> +    list_for_each_entry( bridge, &pci_host_bridges, node )
>>>> +    {
>>>> +        err = cb(d, bridge);
>>>> +        if ( err )
>>>> +            return err;
>>>> +    }
>>>> +    return 0;
>>>> +}
>>>> +
>>>> +unsigned int pci_host_get_num_bridges(void)
>>>> +{
>>>> +    struct pci_host_bridge *bridge;
>>>> +    unsigned int count = 0;
>>> How about making this static and...
>>>
>>>> +
>>>> +    list_for_each_entry( bridge, &pci_host_bridges, node )
>>>> +        count++;
>>> ... only call list_for_each_entry() when count is -1? So we would only go through the list once.
>>>
>>> This should be fine given hostbridge can only be added during boot (we would need to protect pci_host_bridges with a lock otherwise).
>> Ok, I can do that
> I have re-worked the patch so that more code can be re-used:
> 
>       if ( is_hardware_domain(d) )
>       {
>           int count;
> 
>           count = pci_host_iterate_bridges_and_count(d,
> vpci_setup_mmio_handler_cb);
>           if ( count < 0 )
>               return count;
> 
>           return 0;
>       }
> 
>       register_mmio_handler(d, &vpci_mmio_handler,
>                             GUEST_VPCI_ECAM_BASE, GUEST_VPCI_ECAM_SIZE, NULL);
> 
> so pci_host_get_num_bridges goes away.

If this will be the only caller that needs to know the number 
hostbridges, then I am happy with this appropach. Otherwise, I would 
prefer to keep the helper pci_host_get_num_bridges().

>>>> +
>>>> +    return count;
>>>> +}
>>>> +
>>>>     /*
>>>>      * Local variables:
>>>>      * mode: C
>>>> diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
>>>> index 23f45386f4b3..5a6ebd8b9868 100644
>>>> --- a/xen/arch/arm/vpci.c
>>>> +++ b/xen/arch/arm/vpci.c
>>>> @@ -16,16 +16,31 @@
>>>>       #include <asm/mmio.h>
>>>>     +static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
>>>> +                                     paddr_t gpa)
>>>> +{
>>>> +    pci_sbdf_t sbdf;
>>>> +
>>>> +    if ( bridge )
>>>> +    {
>>>> +        sbdf.sbdf = VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
>>>> +        sbdf.seg = bridge->segment;
>>>> +        sbdf.bus += bridge->cfg->busn_start;
>>>> +    }
>>>> +    else
>>>> +        sbdf.sbdf = VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
>>>> +
>>>> +    return sbdf;
>>>> +}
>>>> +
>>>>     static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
>>>>                               register_t *r, void *p)
>>>>     {
>>>> -    pci_sbdf_t sbdf;
>>>> +    struct pci_host_bridge *bridge = p;
>>>> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
>>>>         /* data is needed to prevent a pointer cast on 32bit */
>>>>         unsigned long data;
>>>>     -    /* We ignore segment part and always handle segment 0 */
>>>> -    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
>>>> -
>>>>         if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
>>>>                             1U << info->dabt.size, &data) )
>>>>         {
>>>> @@ -41,10 +56,8 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
>>>>     static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
>>>>                                register_t r, void *p)
>>>>     {
>>>> -    pci_sbdf_t sbdf;
>>>> -
>>>> -    /* We ignore segment part and always handle segment 0 */
>>>> -    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
>>>> +    struct pci_host_bridge *bridge = p;
>>>> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
>>>>           return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
>>>>                                1U << info->dabt.size, r);
>>>> @@ -55,17 +68,54 @@ static const struct mmio_handler_ops vpci_mmio_handler = {
>>>>         .write = vpci_mmio_write,
>>>>     };
>>>>     +static int vpci_setup_mmio_handler_cb(struct domain *d,
>>>> +                                      struct pci_host_bridge *bridge)
>>>> +{
>>>> +    struct pci_config_window *cfg = bridge->cfg;
>>>> +
>>>> +    register_mmio_handler(d, &vpci_mmio_handler,
>>>> +                          cfg->phys_addr, cfg->size, bridge);
>>>> +    return 0;
>>>> +}
>>>> +
>>>>     int domain_vpci_init(struct domain *d)
>>>>     {
>>>>         if ( !has_vpci(d) )
>>>>             return 0;
>>>>     +    if ( is_hardware_domain(d) )
>>>> +        return pci_host_iterate_bridges(d, vpci_setup_mmio_handler_cb);
>>>> +
>>>> +    /* Guest domains use what is programmed in their device tree. */
>>> I would rather not make the assumption that the guest is using a Device-Tree. So how about:
>>>
>>> /*
>>>    * The hardware domain gets one virtual hostbridge by "real"
>>>    * hostbridges.
>>>    * Guests get the virtual platform layout (one virtual host bridge for
>>>    * now).
>>>    */
>>>
>>> The comment would have to be moved before if ( is_hardware_domain(d) ).
>> Sure, I can extend the comment
>       /*
>        * The hardware domain gets as many MMIOs as required by the
>        * physical host bridge.
>        * Guests get the virtual platform layout: one virtual host bridge for now.
>        */

LGTM.

> 
>>>>         register_mmio_handler(d, &vpci_mmio_handler,
>>>>                               GUEST_VPCI_ECAM_BASE, GUEST_VPCI_ECAM_SIZE, NULL);
>>>>           return 0;
>>>>     }
>>>>     +unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
>>> AFAICT, this function would also be called even if vPCI is not enabled for the domain. So we should add:
>>>
>>> if ( !has_vpci(d) )
>>>     return 0;
>>>
>> Good catch, will add
> Hm... but we have
> 
> static inline unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
> +{
> +    return 0;
> +}
> fir that case

This would only cover the case where Xen was built without vPCI support. 
When Xen is built with vPCI support, we only want to increase the number 
of regions for domain with vPCI enabled.

> 
>>>> +{
>>>> +    unsigned int count;
>>>> +
>>>> +    if ( is_hardware_domain(d) )
>>>> +        /* For each PCI host bridge's configuration space. */
>>>> +        count = pci_host_get_num_bridges();
>>> This first part makes sense to me. But...
>>>
>>>> +    else
>>> ... I don't understand how the else is related to this commit. Can you clarify it?
>>>
>>>> +        /*
>>>> +         * There's a single MSI-X MMIO handler that deals with both PBA
>>>> +         * and MSI-X tables per each PCI device being passed through.
>>>> +         * Maximum number of supported devices is 32 as virtual bus
>>>> +         * topology emulates the devices as embedded endpoints.
>>>> +         * +1 for a single emulated host bridge's configuration space.
>>>> +         */
>>>> +        count = 1;
>>>> +#ifdef CONFIG_HAS_PCI_MSI
>>>> +        count += 32;
>>> Surely, this is a decision that is based on other factor in the vPCI code. So can use a define and avoid hardcoding the number?
>> Well, in the later series [1] this is defined via PCI_SLOT(~0) + 1 and there is no dedicated
>> constant for that. I can use the same here, e.g. s/32/PCI_SLOT(~0) + 1

I would prefer if we introduce a new constant for that. This makes 
easier to update the code if we decide to increase the number of virtual 
devices.

However, I am still not sure how the 'else' part is related to this 
commit. Can you please clarify it?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 17:48:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 17:48:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229036.396389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpDQx-0002HB-00; Mon, 22 Nov 2021 17:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229036.396389; Mon, 22 Nov 2021 17:48:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpDQw-0002H4-Sm; Mon, 22 Nov 2021 17:48:50 +0000
Received: by outflank-mailman (input) for mailman id 229036;
 Mon, 22 Nov 2021 17:48:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpDQw-0002Gy-49
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 17:48:50 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpDQv-00052u-Cp; Mon, 22 Nov 2021 17:48:49 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.28.80]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpDQv-0002Qd-6W; Mon, 22 Nov 2021 17:48:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=AlbEhmM2yYFgMEFPVUP/VVBw4Xx3XEv8YI6D1/ti3nQ=; b=6WxTseR3xpe9W16YbeS1oehq0u
	a0+1Ujcp4HUP23GiVW0JkX8A85tsQbblTb2tWWEDzG1DjRqXIphkDkJlWUC1cCyUSgdHhcrNuV1s9
	cHHDBHx/jMa7wYsM6cYwtwizIniu8NZOJFy51ewB0stMJHj9JwTWLionSkyEVmtAhUa4=;
Message-ID: <252c38f5-3da9-e173-7932-d3601898c70c@xen.org>
Date: Mon, 22 Nov 2021 17:48:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 7/7] xen/arm: do not use void pointer in
 pci_host_common_probe
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-8-andr2000@gmail.com>
 <af9d192c-7445-1378-a81d-17101bad7245@xen.org>
 <aa6075bd-3bfc-f49e-e0b9-07ee131c315b@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <aa6075bd-3bfc-f49e-e0b9-07ee131c315b@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 18/11/2021 07:34, Oleksandr Andrushchenko wrote:
> Hi, Julien!

Hi,

> On 17.11.21 23:45, Julien Grall wrote:
>> Hi Oleksandr,
>>
>> On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> There is no reason to use void pointer while passing ECAM ops to the
>>> pci_host_common_probe function as it is anyway casted to struct pci_ecam_ops
>>> inside. For that reason remove the void pointer and pass struct pci_ecam_ops
>>> pointer as is.
>>>
>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>
>> I was going to ack and push the patch. But then I couldn't apply the patch...
>>
>>>
>>> ---
>>> New in v4
>>> ---
>>>    xen/arch/arm/pci/ecam.c            | 4 ++--
>>>    xen/arch/arm/pci/pci-host-common.c | 6 ++----
>>>    xen/include/asm-arm/pci.h          | 5 +++--
>>>    3 files changed, 7 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
>>> index 4f71b11c3057..6aeea12a68bf 100644
>>> --- a/xen/arch/arm/pci/ecam.c
>>> +++ b/xen/arch/arm/pci/ecam.c
>>> @@ -24,8 +24,8 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
>>>                                   pci_sbdf_t sbdf, uint32_t where)
>>>    {
>>>        const struct pci_config_window *cfg = bridge->cfg;
>>> -    struct pci_ecam_ops *ops =
>>> -        container_of(bridge->ops, struct pci_ecam_ops, pci_ops);
>>> +    const struct pci_ecam_ops *ops =
>>> +        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
>>>        unsigned int devfn_shift = ops->bus_shift - 8;
>>>        void __iomem *base;
>>>    diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
>>> index 6af845ab9d6c..1aad664b213e 100644
>>> --- a/xen/arch/arm/pci/pci-host-common.c
>>> +++ b/xen/arch/arm/pci/pci-host-common.c
>>> @@ -194,15 +194,13 @@ static int pci_bus_find_domain_nr(struct dt_device_node *dev)
>>>        return domain;
>>>    }
>>>    -int pci_host_common_probe(struct dt_device_node *dev, const void *data)
>>> +int pci_host_common_probe(struct dt_device_node *dev,
>>> +                          const struct pci_ecam_ops *ops)
>>>    {
>>>        struct pci_host_bridge *bridge;
>>>        struct pci_config_window *cfg;
>>> -    struct pci_ecam_ops *ops;
>>>        int err;
>>
>> ... in staging, the code has an two additional lines here:
>>
>>      if ( dt_device_for_passthrough(dev) )
>>          return 0;
>>
>> Is this series relying on patch that are not yet upstreamed?
> Yes, I mistakenly had a patch below that I didn't want to upstream with
> this series, so this is why. Sorry about that.
> Frankly, I didn't expect patches to be merged from this series now as
> 1) I expect v7

We tend to merge patches in a different order, if there are no 
dependencies and would make sense without the rest of the series. This 
help reducing the size of the series.

> 2) I thought we won't push until the release

For Arm, Stefano and I have been created for-next/XX.YY (for this 
release the branch is for-next/4.17) to queue patches until the tree is 
re-opened for several releases.

> 
> That being said: do you mind if I put your Acked-by in this patch, so
> it is ready for v7?

Sure. So long this is a simple rebase:

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

[1] 
https://xenbits.xen.org/gitweb/?p=people/julieng/xen-unstable.git;a=shortlog;h=refs/heads/for-next/4.17

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 19:32:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 19:32:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229046.396403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpF2L-0003rr-Q4; Mon, 22 Nov 2021 19:31:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229046.396403; Mon, 22 Nov 2021 19:31:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpF2L-0003rk-Mp; Mon, 22 Nov 2021 19:31:33 +0000
Received: by outflank-mailman (input) for mailman id 229046;
 Mon, 22 Nov 2021 19:31:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpF2L-0003re-4d
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 19:31:33 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpF2K-0006oV-DV; Mon, 22 Nov 2021 19:31:32 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=[192.168.28.80]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpF2K-0008B1-7e; Mon, 22 Nov 2021 19:31:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=4YiG/0XDor+knvJ2jOgEtX6royfi9TT5Ef9FSYGVdK0=; b=J4mMyx7ThHz313MI2rV2QBF7Bt
	910y1w4QlvYF9nSH0pXKKoJMr9iuDb3AEy/HOmaKgHCRvgvGcjyTQKi7hrFwseK+otATsdu9A5OZc
	ij4wnfA0VzoS+1KwPVvReTZ0Cz0ncH7HYqfpjW263U2l7wQ5+HZQOUk1OQ7w1GVjZQzA=;
Message-ID: <85923001-363c-277f-ead2-026cea88577c@xen.org>
Date: Mon, 22 Nov 2021 19:31:29 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 5/7] xen/arm: do not map IRQs and memory for disabled
 devices
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-6-andr2000@gmail.com>
 <997e2ad5-9b52-73b4-a02d-f255480684d9@xen.org>
 <ffaabc83-9ca7-1f41-23a9-bf2a1e3828ca@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <ffaabc83-9ca7-1f41-23a9-bf2a1e3828ca@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Oleksandr,

On 18/11/2021 06:59, Oleksandr Andrushchenko wrote:
> Hi, Julien!
> 
> On 16.11.21 21:22, Julien Grall wrote:
>> Hi Oleksandr,
>>
>> On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>
>>> Currently Xen maps all IRQs and memory ranges for all devices except
>>> those marked for passthrough, e.g. it doesn't pay attention to the
>>> "status" property of the node.
>>>
>>> According to the device tree specification [1]:
>>>    - "okay"     Indicates the device is operational.
>>>    - "disabled" Indicates that the device is not presently operational,
>>>                 but it might become operational in the future (for example,
>>>            something is not plugged in, or switched off).
>>>            Refer to the device binding for details on what disabled means
>>>            for a given device.
>>>
>>> So, "disabled" status is device dependent and mapping should be taken by
>>> case-by-case approach with that respect. Although in general Xen should map
>>> IRQs and memory ranges as the disabled devices might become operational
>>
>> Right, this change effectively prevent dom0 to use such device if it becomes operational in the future.
> Or doesn't, see below
>> So this sounds like a big regression.
>>
>> How do you plan to handle it?
> It depends if this is really a regression or is ok and "by design"

Quoting what you wrote in the commit message:

"Indicates that the device is not presently operational, but it might 
become operational in the future."

I read that as it might be possible to have a device turn on after boot.
In fact, looking at Linux, I can see some code allowing to change the 
state of a device after boot (see [4]). So I think we want to keep 
mapping the regions in dom0 at least for some devices.

Note, that other bits of the DT overlay would not work. This should be 
covered by the new series from Xilinx [5].

>>
>>> it
>>> makes it impossible for the other devices, which are not operational in
>>> any case, to skip the mappings.
>>
>> You wrote "makes it impossible for the other devices", but it is not clear to me what's would go wrong when we map a disabled device (Dom0 should not touch it). Do you have an example?
> Ok, here we go. In the SoC I am working with the PCIe controller may run in two modes:
> Root or Endpoint. Not configurable at run-time, so you configure it in the device tree.
> The are two device tree entries for that: for the root [1] and for the endpoint [2].
> So, when you want the controller to be a Root Complex then you put status = "disabled"
> for the Endpoint entry and vise versa.

Thank for the example. I think this is something that should be 
explained in the commit message.

> 
> If you take a look at the nodes they both define the same "reg" and "interrupts",
> effectively making it impossible for me in the patch [3] to actually trap MMIOs: > we skip the mappings for [1] and then, because we assume "disabled" is
> still valid for mappings, we add those for [2].

Technically, you would have the same issues if your device is sharing 
the interrupt or the MMIO page.

The former is fairly common, but IIUC you are not emulated the 
interrupts. Right?

For the latter, I have seen multiple UARTs in the same page (e.g. 
pine64) but not multiple PCI hostbridges. However, this is only with 4KB 
page granularity. We may have the issue arising with 16KB/64KB ones. So 
I would say we could ignore it for now.

> 
> So, this is probably why device tree documentation says about the disabled status
> to be device specific.

Correct. That said, until now, all the devices would have their 
MMIOsregions mapped to dom0. So the interpretation of "disabled" didn't 
matter too much.

> 
> Hope this describes a very valid use-case. At the same time you may argue that
> I just need to remove the offending entry from the device tree which may also be
> valid.

We need to be able to accept any *valid* Device-Tree without any 
modification. At the same time, we want to avoid break potential 
existing use-cases.

I think, you can handle the two gracefully by adding a else in 
pci_host_bridge_mappings() that would remove the P2M mapping if 
bridge->ops->need_p2m_hwdom_mapping() returns false.

This is not pretty but it should do the job for now. Long run, I think 
we should consider to create fake entries in the P2M for emulated regions.

The advantage is we could easily find clash and use them to ignore 
mapping when the region is emulated.

Cheers,

>>
>> Cheers,
>>
> Thank you,
> Oleksandr
> 
> [1] https://github.com/renesas-rcar/linux-bsp/blob/v5.10.41/rcar-5.1.3.rc6/arch/arm64/boot/dts/renesas/r8a779f0.dtsi#L843
> [2] https://github.com/renesas-rcar/linux-bsp/blob/v5.10.41/rcar-5.1.3.rc6/arch/arm64/boot/dts/renesas/r8a779f0.dtsi#L896
> [3] https://patchwork.kernel.org/project/xen-devel/patch/20211105063326.939843-5-andr2000@gmail.com/

[4] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/of/dynamic.c#n111
[5] 
https://lore.kernel.org/xen-devel/1636441347-133850-1-git-send-email-fnu.vikram@xilinx.com/


> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 19:59:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 19:59:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229052.396414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpFTd-0006GF-2u; Mon, 22 Nov 2021 19:59:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229052.396414; Mon, 22 Nov 2021 19:59:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpFTc-0006G8-Vh; Mon, 22 Nov 2021 19:59:44 +0000
Received: by outflank-mailman (input) for mailman id 229052;
 Mon, 22 Nov 2021 19:59:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5+cX=QJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mpFTb-0006G2-62
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 19:59:43 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9b871d5-4bce-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 20:59:40 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 70DBB60F70;
 Mon, 22 Nov 2021 19:59:38 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9b871d5-4bce-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637611178;
	bh=wm1tzJiEzZW/9Ix/qvj/CPYV5ys+QJiya+3Pex4Et98=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VTEeifsNRkjVlW6JxmgFs8RTEhtCQDYjNw3MgUaU8XIvthSB8jTaodvMuFGuYEFf4
	 c+MZvsYqfuMVmLH+Mao7hFEh5FIZpQexg1AfHHBfQ4AReOM5MJPYYyE5vV8UJ0W/Ym
	 tQ6eIRbcPaSxv+0sxDqefb0BiG8pPDc9ECAzwUqH99XvPGPq/jSoWvE+ZPzNm0CVnT
	 K8yxMp/rNPHyE04qyMDtA5MtUw/ybFh07pdeVddBZe7fyL6mfvphSIjLD5KA4mfnJr
	 87iNDH+ShNX/a1J2iiNbQRXzgLs54Ul5tNW4aLBFvkpOArptWsM30jdWb9RJojAn9y
	 RcLvFgPuixsog==
Date: Mon, 22 Nov 2021 11:59:37 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
cc: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org, 
    wei.chen@arm.com, stefano.stabellini@xilinx.com, sstabellini@kernel.org, 
    jbeulich@suse.com, Volodymyr_Babchuk@epam.com, bertrand.marquis@arm.com, 
    rahul.singh@arm.com
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str post-indexing
 instructions
In-Reply-To: <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com>
Message-ID: <alpine.DEB.2.22.394.2111221157050.1412361@ubuntu-linux-20-04-desktop>
References: <20211119165202.42442-1-ayankuma@xilinx.com> <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org> <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 22 Nov 2021, Ayan Kumar Halder wrote:
> Stefano > It doesn't look like we are setting dabt->write anywhere.
> 
> Ayan > Yes, this is a miss. Depending on the opc, this should be upadeted
> accordingly in decode_64bit_loadstore_postindexing().
> 
> Stefano > Also, is info.gpa in try_handle_mmio already updated in the
> pre-index
> case? If not, do we need to apply the offset manually here?
> 
> Ayan > Sorry, I did not understand you. This patch is only related to the post
> indexing ldr/str issue. Why do we need to check for pre-indexing ?

I thought you were trying to handle both post-indexing and pre-indexing.
It is OK if you intend to only handle post-indexing but considering that
most of the code is shared between the two, we might as well also make
pre-indexing work (unless it turns out it is more difficult).

In the pre-indexing case, I would imagine we need to update the base
address before taking any other actions.


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 20:30:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 20:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229058.396424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpFwz-0001it-HJ; Mon, 22 Nov 2021 20:30:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229058.396424; Mon, 22 Nov 2021 20:30:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpFwz-0001iI-Dk; Mon, 22 Nov 2021 20:30:05 +0000
Received: by outflank-mailman (input) for mailman id 229058;
 Mon, 22 Nov 2021 20:30:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K8Dp=QJ=gmail.com=julien.grall.oss@srs-se1.protection.inumbo.net>)
 id 1mpFwy-0001S2-3h
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 20:30:04 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f8a3a359-4bd2-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 21:30:03 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id r25so45387198edq.7
 for <xen-devel@lists.xenproject.org>; Mon, 22 Nov 2021 12:30:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8a3a359-4bd2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=IuCHejB/LG0IUCSJQwdJZM4SkthWJomzEmtTIRN4NFc=;
        b=E+JnS2gdyDogfcWIPncObWBbwDwIkofmax0PlT7Vw62ZNWW1pwI+NgVH9Cbyxmmu09
         oeg46Y+WTJgI/LXD+8RHDVa6rtoZ6fS3z8cL9RAD6aj03chlrn2HigrSxAcv5crvIIlJ
         2fNxWTEMXym5kO4QoK0AGYsSEIo9Nwj4wXvZYF1FCP90feyijasdAx0NuLCFQNv5IJql
         y6ybTsGdJ8OzJ2W0Py4FfpXrz9pZnj4l37FCqerpg6M9EqfX1Au+RH5c54nv8zbqu5W9
         DabSEDgJc3DfQuMgbERURRqmwLBqVUTEVlu5zzwoJEExYIX4KGfY+V9er/D6RZGL8AnL
         VW6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=IuCHejB/LG0IUCSJQwdJZM4SkthWJomzEmtTIRN4NFc=;
        b=EYtYZWmqclASUCZyShATae6i+NMDvvU2cbgA8yZVJvzgzxhPmR9ktT21Ub+4s4GnO7
         1RxRTHc1DGQt5Wt+X0992pfWIl51mCss+SP42AP7aPFNxS1GM55npX4/HFbbjKCrkc+E
         hKdjfecG3rzeykLQ6LmUqUASjk+wqqlSree9eNgWh83ZhMTysNaB/Zdb9k9jgS8U6g+p
         0fNJAnNswQ5aVrH4CMUwA951B3nP5ZKVTwevjaU2D7P+X7jjnZfEuS74kDsfCTWKzU42
         PvBcfwKK3c6p84FskvQNuJOjSVpvbITT4NjhHLC1JUQll7MJRk88c8tfq3D9OwCeOEIk
         iEGA==
X-Gm-Message-State: AOAM533HBOi/bGxt38aocSkPVR9xKZJvCGRCHGcVEMQcE0nLX346oAyR
	qIgzCAG24r+dw2J4NS0VWp3Ax3ZM/dVXds2qEpw=
X-Google-Smtp-Source: ABdhPJzcATdSFt6cH9YPoPwXFVMBhSk6bApxWasc6aKwRz45QXkbCm9tlZTG4SjxpTtKVFKivRHdeuiO2SKbTXQymb8=
X-Received: by 2002:a17:906:dff1:: with SMTP id lc17mr44091140ejc.215.1637613002677;
 Mon, 22 Nov 2021 12:30:02 -0800 (PST)
MIME-Version: 1.0
References: <20211119165202.42442-1-ayankuma@xilinx.com> <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org>
 <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com> <alpine.DEB.2.22.394.2111221157050.1412361@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2111221157050.1412361@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien.grall.oss@gmail.com>
Date: Mon, 22 Nov 2021 20:29:52 +0000
Message-ID: <CAJ=z9a1L5v2+wC7-aaA2PjV2FzrFXjT-5t_0ijznGKvwywvd5A@mail.gmail.com>
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>, 
	xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <wei.chen@arm.com>, 
	Stefano Stabellini <stefano.stabellini@xilinx.com>, Jan Beulich <jbeulich@suse.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Rahul Singh <rahul.singh@arm.com>
Content-Type: text/plain; charset="UTF-8"

Hi,

On Mon, 22 Nov 2021 at 19:59, Stefano Stabellini <sstabellini@kernel.org> wrote:
>
> On Mon, 22 Nov 2021, Ayan Kumar Halder wrote:
> > Stefano > It doesn't look like we are setting dabt->write anywhere.
> >
> > Ayan > Yes, this is a miss. Depending on the opc, this should be upadeted
> > accordingly in decode_64bit_loadstore_postindexing().
> >
> > Stefano > Also, is info.gpa in try_handle_mmio already updated in the
> > pre-index
> > case? If not, do we need to apply the offset manually here?
> >
> > Ayan > Sorry, I did not understand you. This patch is only related to the post
> > indexing ldr/str issue. Why do we need to check for pre-indexing ?
>
> I thought you were trying to handle both post-indexing and pre-indexing.
> It is OK if you intend to only handle post-indexing but considering that
> most of the code is shared between the two, we might as well also make
> pre-indexing work (unless it turns out it is more difficult).

Wouldn't this effectively be dead code?

>
> In the pre-indexing case, I would imagine we need to update the base
> address before taking any other actions.

>From my understanding, this would have already been performed by the
HW when the syndrome is valid. This may also be the case for
the non-valid case, but I haven't checked the Arm Arm.

Cheers,


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 20:52:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 20:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229064.396436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpGIM-00049y-9G; Mon, 22 Nov 2021 20:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229064.396436; Mon, 22 Nov 2021 20:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpGIM-00049r-5z; Mon, 22 Nov 2021 20:52:10 +0000
Received: by outflank-mailman (input) for mailman id 229064;
 Mon, 22 Nov 2021 20:52:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpGIK-00049h-Tk; Mon, 22 Nov 2021 20:52:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpGIK-0008T1-ME; Mon, 22 Nov 2021 20:52:08 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpGIK-0004Eo-CE; Mon, 22 Nov 2021 20:52:08 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpGIK-0001BJ-Bj; Mon, 22 Nov 2021 20:52:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=tph/y48OrS16D59t1rl0b/h220zdvXLAU90GmJMIRjU=; b=yMLoHQvfKQAuBRvBEfsGiK5aUD
	teGbqYlRBlb0EoSQwGjF15jPh9kD4YVKfj67A09evrVs8OYrJUcESfb+AhVkegpx0gVJcxKUC0Tgg
	YtPwPfHOJcCza4F8rv+QsuEd2uxDt64qDz0zQnVoolOV6lof7HiHisiTfs1Eo4cPLwaw=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166266-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166266: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-libvirt-raw:guest-start:fail:heisenbug
    linux-linus:test-amd64-amd64-examine:memdisk-try-append:fail:heisenbug
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=136057256686de39cc3a07c2e39ef6bc43003ff6
X-Osstest-Versions-That:
    linux=40c93d7fff6ff05c1c4c9f9c01a067eac6a791b1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Nov 2021 20:52:08 +0000

flight 166266 linux-linus real [real]
flight 166299 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166266/
http://logs.test-lab.xenproject.org/osstest/logs/166299/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-libvirt-raw 13 guest-start         fail pass in 166299-retest
 test-amd64-amd64-examine      4 memdisk-try-append  fail pass in 166299-retest

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-libvirt-raw 14 migrate-support-check fail in 166299 never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check fail in 166299 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166261
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166261
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166261
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166261
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166261
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166261
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166261
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166261
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                136057256686de39cc3a07c2e39ef6bc43003ff6
baseline version:
 linux                40c93d7fff6ff05c1c4c9f9c01a067eac6a791b1

Last test of basis   166261  2021-11-21 20:12:00 Z    1 days
Testing same since   166266  2021-11-22 06:26:56 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Linus Torvalds <torvalds@linux-foundation.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   40c93d7fff6f..136057256686  136057256686de39cc3a07c2e39ef6bc43003ff6 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 20:59:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 20:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229072.396450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpGPN-0004tn-5D; Mon, 22 Nov 2021 20:59:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229072.396450; Mon, 22 Nov 2021 20:59:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpGPN-0004tg-22; Mon, 22 Nov 2021 20:59:25 +0000
Received: by outflank-mailman (input) for mailman id 229072;
 Mon, 22 Nov 2021 20:59:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpGPL-0004tW-TW; Mon, 22 Nov 2021 20:59:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpGPL-00007y-Ku; Mon, 22 Nov 2021 20:59:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpGPL-0004oO-A7; Mon, 22 Nov 2021 20:59:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpGPL-0007Zj-9c; Mon, 22 Nov 2021 20:59:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=FMh/fqqAZ20mJqJX9otLYVm/RoPBUCxrTDP03kMUlRc=; b=Y4I2toH5pqAYo43ATocZfmctCy
	BqJ+yV1bXLmnqNz9DTeeqSATAhB6DJzmSAohy69YAA/w2ZzAYK7WW8IpQ47cVikjzwBOonmdPG5Yb
	SU9IkqVn+BlW78n4NRmvTDA1p3SiUPdpt9mgzgMF/Ke0AsIbtSHpjjn0gXxy4bLZkgBM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166267-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166267: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=edf1aa8d44d5070828ac10c5b82dbc6caf29e7d3
X-Osstest-Versions-That:
    qemuu=c5fbdd60cf1fb52f01bdfe342b6fa65d5343e1b1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Nov 2021 20:59:23 +0000

flight 166267 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166267/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166260
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166260
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166260
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166260
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166260
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166260
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166260
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166260
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                edf1aa8d44d5070828ac10c5b82dbc6caf29e7d3
baseline version:
 qemuu                c5fbdd60cf1fb52f01bdfe342b6fa65d5343e1b1

Last test of basis   166260  2021-11-21 16:08:04 Z    1 days
Testing same since   166267  2021-11-22 10:09:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alistair Francis <alistair.francis@wdc.com>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Thomas Huth <thuth@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   c5fbdd60cf..edf1aa8d44  edf1aa8d44d5070828ac10c5b82dbc6caf29e7d3 -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 22:04:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 22:04:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229079.396463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpHPy-0002zp-Vx; Mon, 22 Nov 2021 22:04:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229079.396463; Mon, 22 Nov 2021 22:04:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpHPy-0002zi-Sg; Mon, 22 Nov 2021 22:04:06 +0000
Received: by outflank-mailman (input) for mailman id 229079;
 Mon, 22 Nov 2021 22:04:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5+cX=QJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mpHPx-0002zc-GL
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 22:04:05 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1977e02c-4be0-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 23:04:03 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 9C179604D1;
 Mon, 22 Nov 2021 22:04:00 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1977e02c-4be0-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637618640;
	bh=jOZoDcdty3EVXoO97iBWXCdZc4YcdG2UrCIxg6yqsOI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KQaOQ/8mdKxeHcSN/IfNcXV6jpA9VIrYHF6zPGcF8oCo8ZsB+HdG1s79HpwcpkXwK
	 EizF31knhMnjWgkLiQ/fygn6B7qstlQTLnaZ+VDeyNONyG+AkQCaL9R2U0egM4OLw2
	 /2vOuxOlu4DjJ2SGbargP2zYoJlrVG4AnBfdDjxmlroI88ejdzqnpwd//fiGXxR4P5
	 YVfZkIEd6v16rEjd2axNhFX50BlePbMOwb8/LW5WmP8cPbLxx8TWF+nwEECadwxigJ
	 mMMvYj5kcXcJIpdMHmzzyCtmQY+hVo7cHOo9jrHwfILaejDnxYiXAUumTUH0lHpSYc
	 5jwCX2cblL/uw==
Date: Mon, 22 Nov 2021 14:03:59 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, boris.ostrovsky@oracle.com, 
    xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org, 
    jgross@suse.com
Subject: Re: [PATCH v2] xen: detect uninitialized xenbus in xenbus_init
In-Reply-To: <bc47bbe2-b330-7744-8d6b-869e3c7523e4@suse.com>
Message-ID: <alpine.DEB.2.22.394.2111221357081.1412361@ubuntu-linux-20-04-desktop>
References: <20211119202951.403525-1-sstabellini@kernel.org> <bc47bbe2-b330-7744-8d6b-869e3c7523e4@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 22 Nov 2021, Jan Beulich wrote:
> On 19.11.2021 21:29, Stefano Stabellini wrote:
> > --- a/drivers/xen/xenbus/xenbus_probe.c
> > +++ b/drivers/xen/xenbus/xenbus_probe.c
> > @@ -951,6 +951,20 @@ static int __init xenbus_init(void)
> >  		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
> >  		if (err)
> >  			goto out_error;
> > +		/* Uninitialized. */
> > +		if (v == 0 || v == ULLONG_MAX) {
> 
> Didn't you have a comment in v1 here regarding the check against 0? Or was that
> just like now only in the description? IOW I think there ought to be a code
> comment justifying the theoretically wrong check ...

Yeah, I added all the info in the commit message and shortened the
in-code comment this time. I am also happy to keep the details in the
in-code comment, e.g.:

/*
 * If the xenstore page hasn't been allocated properly, reading the
 * value of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually
 * return error. Instead, it will succeed and return zero. Instead of
 * attempting to xen_remap a bad guest physical address, detect this
 * condition and return early.
 *
 * Note that although a guest physical address of zero for
 * HVM_PARAM_STORE_PFN is theoretically possible, it is not a good
 * choice and zero has never been validly used in that capacity.
 *
 * Also recognize the invalid value of INVALID_PFN which is ULLONG_MAX.
 */


> Also, while I realize there are various other similar assumptions elsewhere, I
> would generally recommend to avoid such: There's no guarantee that now and
> forever unsigned long long and uint64_t are the same thing. And it's easy in
> cases like this one:
> 
> 		if (!v || !(v + 1)) {

I am happy to use this.


From xen-devel-bounces@lists.xenproject.org Mon Nov 22 22:04:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 22:04:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229082.396475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpHQR-0003Ta-7a; Mon, 22 Nov 2021 22:04:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229082.396475; Mon, 22 Nov 2021 22:04:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpHQR-0003TT-4a; Mon, 22 Nov 2021 22:04:35 +0000
Received: by outflank-mailman (input) for mailman id 229082;
 Mon, 22 Nov 2021 22:04:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fTyB=QJ=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mpHQP-0003Qi-Bt
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 22:04:33 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 29f83424-4be0-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 23:04:30 +0100 (CET)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AMKp8Or031836; 
 Mon, 22 Nov 2021 22:04:11 GMT
Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cg461d3pq-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 22 Nov 2021 22:04:11 +0000
Received: from pps.filterd (userp3030.oracle.com [127.0.0.1])
 by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AMM0Yh4007842;
 Mon, 22 Nov 2021 22:04:10 GMT
Received: from nam04-mw2-obe.outbound.protection.outlook.com
 (mail-mw2nam08lp2172.outbound.protection.outlook.com [104.47.73.172])
 by userp3030.oracle.com with ESMTP id 3cep4xcwc7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 22 Nov 2021 22:04:10 +0000
Received: from CH0PR10MB5020.namprd10.prod.outlook.com (2603:10b6:610:c0::22)
 by CH0PR10MB4956.namprd10.prod.outlook.com (2603:10b6:610:c9::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Mon, 22 Nov
 2021 22:04:08 +0000
Received: from CH0PR10MB5020.namprd10.prod.outlook.com
 ([fe80::8c5d:23d6:3381:fefe]) by CH0PR10MB5020.namprd10.prod.outlook.com
 ([fe80::8c5d:23d6:3381:fefe%5]) with mapi id 15.20.4713.024; Mon, 22 Nov 2021
 22:04:08 +0000
Received: from [10.74.108.248] (138.3.200.56) by
 SA0PR11CA0199.namprd11.prod.outlook.com (2603:10b6:806:1bc::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24 via Frontend
 Transport; Mon, 22 Nov 2021 22:04:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29f83424-4be0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=TZ6vik4grgqtOJgtAy8rPWATYXJh62sMicdI+zK2Hh8=;
 b=byen7eZLVTtiljgcYcer0w1Un0xEGE+646DAclhdQitah5CeZWb4Zwywnfnv9nGVi3H4
 aVIHYefFlfIajtgtlhYKvk83U33W7KoBnC685y2G/KDnIEaVj9OVeRbxDcIJNa+lH1cB
 f2814APMRHFvAJThJfCrBdR9nyfmZNV7LBEKN/pZFEO9jDRdd2hWe3GnRv2jcFz/Y9pV
 15lQeL9fiH74Sbx7PHow8RBcIGcJrgqqHWtRLIV3u/Tfkx/YDB36AP/vjhkzJJOZ80qV
 MDehTY4j8KCSzcRPnNfDarCwc0/SjFh1J75RJ3etxUpGEBrYT9+HIZR1d+CMQ3dd18/o cw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FJSFO+upYJIlSaRos2J+rVDtNGAJ2OOJQ8hSjfXjq475YbnIoVczEzsWXfX2wPL1RcsPejjVD6ej5DiZqbCw8PzZrNr7BrMGbw9RoPo8hpU74+U7x2kNVyu91rfutKMjoZQSO6tW/oDhrE+8T1vkDzyz5HWd1GtPKowTmaYqF0rqvF/ywblb366wj8mQF3ITsppq3H6OeOVSMIr2ukl7vUTTaMWL1+gZKmDVGGJFgt9h/8N1XKkYburRltNJKxO9j8L+oBy54D43SW8L27pBdCyQYLzNB1p47uyG6DPHcOmmV/uaWVsBFW5IcGfc6ypHNCRTONceiiV4V3wJA0YIcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TZ6vik4grgqtOJgtAy8rPWATYXJh62sMicdI+zK2Hh8=;
 b=SBA2JlpLL5ewEzo3Cmcn8sWENAghahBJpGm6oL2iEWnAkFusCdlSdcNyUcbCWKR68VxoYzONI4QfttbEQJXZbEeOEYmJlWeHMhrBN8kwzHM1VFRqXxryhXnVRvI57Z/5ZyPu6NfUIC2zUGuTLPJ5c+0KUhKoF22XbSLiwBYJz7GagNIu0SBELJXyZefKJHr37EhY0WeXsgka7EE5j3sK30l0ljAMUNni/IaQg2xwEa0rt0dXPnMuVWuFpg02G/97iiD8AJQOghoW1ZAiO/dJWjw6W0jCZohWZNzPStdDjI0ZS4YA+nnpN6otXiLdC+gHZ7daeo2nHKLZf8SZI79GIg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TZ6vik4grgqtOJgtAy8rPWATYXJh62sMicdI+zK2Hh8=;
 b=ghhTjjjbC268qN1Tk5GCWFhFsEKne8swcbxX7vDmGuJlp5aAZL6YBgWRH5Dz/4qSrqpqcMee7YQyzlJ+RfymGFppplKePUaH3MkqmO2S+AuiGqHjqfAFL5MjU4P9MPHKkcsP/fHUgKpL0pJrKNBio7d2d+4iOnur/CRfb89CFr8=
Message-ID: <550dcbd7-d48e-0b3f-4029-a887c84a72c5@oracle.com>
Date: Mon, 22 Nov 2021 17:04:01 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH] xen/pvh: add missing prototype to header
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        x86@kernel.org, linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, kernel test robot <lkp@intel.com>
References: <20211119153913.21678-1-jgross@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211119153913.21678-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SA0PR11CA0199.namprd11.prod.outlook.com
 (2603:10b6:806:1bc::24) To CH0PR10MB5020.namprd10.prod.outlook.com
 (2603:10b6:610:c0::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f28178ce-44ba-4509-958b-08d9ae040168
X-MS-TrafficTypeDiagnostic: CH0PR10MB4956:
X-Microsoft-Antispam-PRVS: 
	<CH0PR10MB4956E78E9C4989E82CCACD178A9F9@CH0PR10MB4956.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1247;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	+zyHqIwBbf/0XLiS9aKrTow0I2AukwmdmTr9IhPAcLHl3mUFgdoEwK6JN9dORb1PnRgXwFNyo2/HYDQh1gBx7HThM8N4v2Uuv0YIl/Z+KlUo/pONG6b3L2BFurGJk/d9wSvmy6BUB4HZg5+CDGhJYDWAM95/NPlBaJm2VEE3ESdU53WoLnFgFjXKj36vi8/5StWO3hY9yoTrUsel08ngkZrKlL4F11i0PVFpKWLY+j73X6VaYQ0dNYOzZjTOfdsS/eia/qKTiaeuPGCJVDZlGwKvr149basyKzvjVK3n3k0hByuHtgchiZXzRML9nETHR643L5pR7hjfltHKqfid9eOSmofi8IbLDgrR8iJOTHexY8GQZMwzLCZaWWsOmXcCU2iMHol8qn5gA4kTypQ8g3S8y1n6ZIIBYqAvv6JDYONOdK6KDi6QH0t7n6bjz5xs/7wQv+w7V/G4tQ6gxTP01P84L610Vl6TNSCNKNEKnzUDFWCsYISq1+zrpixLuAJZMPWz+tQh3WNXTtHo9jX8C9JnenALXY5K0FJIolOjR4qJh/Asb7g6r2vCoyKYUgKQ+MY8ueT0kL0kR7HnOaxeKChuc6N2vkCnGOuCBDUalWc3viJzn2aMMH3T4uvaG5fLyxYaUeRDgEnZ5mYPMldHidc3+zl/vLSoW52X/HqknW+E8JFq1n3NTciDIdc8xbWy4K3IdmWe9nXzSfi9E4DA1Cdx8fmRETzNq819PZdoE+E=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR10MB5020.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(44832011)(31696002)(54906003)(86362001)(36756003)(26005)(16576012)(316002)(4326008)(4744005)(38100700002)(53546011)(5660300002)(66556008)(7416002)(66476007)(186003)(6666004)(6486002)(2616005)(508600001)(31686004)(8676002)(956004)(2906002)(8936002)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?OThFd0dMbk1yQ3ZibzZKV2pFNHFHTUVSVGtmRU1kOVYzTnQ1RWdNenRvR1F0?=
 =?utf-8?B?NkgzL1gzMkYxM29aVWkxcWltOStORFdXM3l4cGx3ZDBBbGl6UDBvOWxaRFZi?=
 =?utf-8?B?YUlOYlg4THR0Z2d0R0xGa2QvYUZvOFB3SndsRTNjbXJ1Zk8rbXF4UlB3MjE4?=
 =?utf-8?B?aXRLb3BQZ0d1RzVCanpjQndoWnR4ZVBES21nVlFiTnlkMno4VHROZ1VUdU5q?=
 =?utf-8?B?eG1PT2llVjNnODhpcE9hUC9TeEFsK1FjN1dNOEtMZjA1ZUFtWnRnNERmdDlj?=
 =?utf-8?B?VWpZVXRobmJXa3FRelRtREJRSG1NYmw2L0ZKcFJXczRGeXQwdU04bFl6NVJI?=
 =?utf-8?B?KzRadEF3U1MzSENkVGkvSnJKQXFreDZTYTZJa2ZCVEJyMllIQ0k2bVU1MERY?=
 =?utf-8?B?K0k4TFBzd0V5L1ZSMlVURzRxbW5IVlY3ai9kRFNzZWQ3M2ZaMFl3YkkrS3Nw?=
 =?utf-8?B?RS9yR0NnSW9ha3hnSkpuYU40cEFrSnI5a25KbDdwcG1VZjhKMTVuYnhBdlhn?=
 =?utf-8?B?NVJ3QzUzVDF2Q2RmWVNiZEI0SUtqVWpzSzExT0xabXlqQk9rWHpGRk9zcjdn?=
 =?utf-8?B?aUcxZ1lVRWVEZy9JQ243MFlVa1dtVzdybndDdGZNMmI4UTdnempRVGdaZnFW?=
 =?utf-8?B?cVQ4dkN4VWQrc1U5cUtUem1HS3VBNkRGUDEvekNqNWhUckJnbFpZNnRuVi8z?=
 =?utf-8?B?Nzg0WDd5NWppbENFMER6SGpsZ3JEWVFLamsyUmZETGJoVFJ6VjFtUHFJZVFx?=
 =?utf-8?B?a1o0U2d1K0NKTXFBOVU5cjhjL3BBUGNZdHhRM1VaU3FFWWRjZWxqWmhzaER6?=
 =?utf-8?B?VWpWVzh1WkNjRWs3d01pREFLamtGQmRWb3JIdjloWlNFKzR1bWVVK3d2ODBB?=
 =?utf-8?B?L1FRa0wxUkpPVkRtTkdqMnNBZEZZaURRZmRsZlBsQ2k4Q212ZU5pb25DQ1Fm?=
 =?utf-8?B?VndzeWg3Z1BySEJZOTNKMmRhRGU0S1VlRHFYaWtYT1JDelVvOGlkb1h1SU1J?=
 =?utf-8?B?UER0Z3liYzNkL3FCMmRITGhxOFVXYkhHVnBNN2Z5ckFOQ1ZLWks5TWdCbjBl?=
 =?utf-8?B?bXVVeEM1dDJnSmN0U0tuaC9rS2x0bWlySGMvSDZxbUROYmtTMVN4ZXFpRFcv?=
 =?utf-8?B?bml1ZllzdEFrVG1yeTh6b1piZmJPaWFnbllWYzFPczl2OW5ibVJUUHZlQmw4?=
 =?utf-8?B?bGVwUVg0ZllXcWozam1YVDdYYTU5eER1bUEvbC9OdkJVUGJWeksyUldMdDNn?=
 =?utf-8?B?UDRkWmpVNk11UmpaazMwbHhjd0FYUXU3YzNQaFB5OFFwckdlUHY0SXpjd3RX?=
 =?utf-8?B?ZGdiYTM0SHp3ZTNLVWFTa21JbnJRd2dobHV4VzlTWXNNZjRDRVpEYXlQQVJO?=
 =?utf-8?B?QVAxSUtVTmR0NEZWMmh0ck1QOTZLbWoyNUE0NkdKbEJJVkZBMm9uTHpQK3FS?=
 =?utf-8?B?UEFKUzIxd21wYU82SHBXOVh4b0JmbXUwYlhnMFg1KzRZRDJES1RtSkwvWm5R?=
 =?utf-8?B?eHJmUXdQc1psaWNOMEdLQWVmbDR6OUhyNG9UVE8xK0FWcVgrM1N5NlArYzhr?=
 =?utf-8?B?NUNFazlTelBJTTFBVVd6cEhQM3gyMmlxZUVxTWN0Z3A4WmJ3T0hTYkpZNzFJ?=
 =?utf-8?B?aHQ2RW9YWnpxZzNPUDAwUHpxNTd6QzA4YmJRU0pWeWxlQ3RXSmNZcE9QUm9Y?=
 =?utf-8?B?TnBrWjF1TXlaa2FhcENlRTBWY0tyMXhBNWZHVWlmVEJPUVpDdmt1TnYwLzYr?=
 =?utf-8?B?cXdJUDkxUk91SU1zcnB6NlUxTGloVmg5TythUU96Q3RWSUdpRkF4ZmFJWWw5?=
 =?utf-8?B?ZVFvQ095Qy9rODBQbEh3Y1R3djIvbnFQa1Z5cXdKcVRTYTFGWWIveWRiYVFL?=
 =?utf-8?B?UFNRQ0ZZVkRaSk43NU9xK0E4bndDQ0VmbnYray85S1RLZUtNNk5KTHJYY3Fr?=
 =?utf-8?B?bS81S1Y1ZkkvZ1U2NXZpdzFGQkZEcGlJd09UWSs2S094alpKcU0vOERQRTRp?=
 =?utf-8?B?bFJ2WGg1VnRWQk91YnNrQkZtVUwzZGlhMm1id01HOUJGVXFzbEVXYlJhMGkv?=
 =?utf-8?B?cTlGbGlDSzd0L1k2Q3Q2N0F5dGo1dU1GVHZGUHRUTDhCVXZ1VGlMUUdxeWc4?=
 =?utf-8?B?V1UzeHJFdVZBSnliU1pyZmNEbGZGbWhwcjZFTlZxY0pZdUVQV0tDcnlXOWhN?=
 =?utf-8?B?aVByaTZRUzJxNlRwUmJBelE5VVZMTHZmYldmRFBYTUZUQjloYmF4dWlxZWxV?=
 =?utf-8?Q?0pNWNvcUkdootFb80tDS9FfVxannwQNhRRFbYdvvOk=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f28178ce-44ba-4509-958b-08d9ae040168
X-MS-Exchange-CrossTenant-AuthSource: CH0PR10MB5020.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2021 22:04:07.9565
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: n3naG5B1AGMqvwMauhooMFV+Z6UPJztU7q+EVM7KpQ9zbX+SizPo0CiLb9tuWLeU4LrfoA9QAL6BF7tkmhpAQBYxpX9tQUpxc1nan6F/gAU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB4956
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10176 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 malwarescore=0
 mlxlogscore=999 bulkscore=0 mlxscore=0 suspectscore=0 adultscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111220110
X-Proofpoint-GUID: DdGrCZAsQ_QH3Cn225y0FGjJmKHZvuyX
X-Proofpoint-ORIG-GUID: DdGrCZAsQ_QH3Cn225y0FGjJmKHZvuyX


On 11/19/21 10:39 AM, Juergen Gross wrote:
> The prototype of mem_map_via_hcall() is missing in its header, so add
> it.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Fixes: a43fb7da53007e67ad ("xen/pvh: Move Xen code for getting mem map via hcall out of common file")
> Signed-off-by: Juergen Gross <jgross@suse.com>



Applied to for-linus-5.16c


-boris



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 22:16:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 22:16:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229093.396486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpHc0-000569-Cs; Mon, 22 Nov 2021 22:16:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229093.396486; Mon, 22 Nov 2021 22:16:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpHc0-000562-9w; Mon, 22 Nov 2021 22:16:32 +0000
Received: by outflank-mailman (input) for mailman id 229093;
 Mon, 22 Nov 2021 22:16:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5+cX=QJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mpHbz-00055w-Rc
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 22:16:31 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7018849-4be1-11ec-9787-a32c541c8605;
 Mon, 22 Nov 2021 23:16:30 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 222B260FE6;
 Mon, 22 Nov 2021 22:16:28 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7018849-4be1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637619388;
	bh=kRlam7odlirF8W9djazKfCVOxAEG58oHirjbOnjelJI=;
	h=From:To:Cc:Subject:Date:From;
	b=oWsu7ISreFyJ3GjFm0Fsgen+xWF1YgeB24eOx63Y8aqGqj187MQBCbgP6l5BuzgBN
	 S5t2SsFvP8EBEm6Az9QyVWAwgOwrtFAMS5AEFNyE/MdDz68XaMfLY4r1UPkPNBWn0w
	 5kJDqgUoJ34/fMJnL6mui6AhttQnqMUeNd0j2C2hU7YPFYXRGaBgdE8SF1QkMymafi
	 U+tvXo1vIkEeU6wCKTK5ew7p3bEesfJTfzvHS6cBlynLJlhQ2eCE9jfdRM0mC4nBvy
	 TZL3SjoPbv86mtVd74JzTFa6TVqhvXLGK5DPZezsynAPvkidaf1YKP1Q5wS2vEScjv
	 R24zmreoizBww==
From: Stefano Stabellini <sstabellini@kernel.org>
To: jgross@suse.com
Cc: boris.ostrovsky@oracle.com,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	sstabellini@kernel.org,
	jbeulich@suse.com,
	Stefano Stabellini <stefano.stabellini@xilinx.com>,
	stable@vger.kernel.org
Subject: [PATCH v3] xen: detect uninitialized xenbus in xenbus_init
Date: Mon, 22 Nov 2021 14:16:25 -0800
Message-Id: <20211122221625.1473164-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

If the xenstore page hasn't been allocated properly, reading the value
of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
error. Instead, it will succeed and return zero. Instead of attempting
to xen_remap a bad guest physical address, detect this condition and
return early.

Note that although a guest physical address of zero for
HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
and zero has never been validly used in that capacity.

Also recognize the invalid value of INVALID_PFN which is ULLONG_MAX.

For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
above ULONG_MAX should never be passed by the Xen tools to HVM guests
anyway, so check for this condition and return early.

Cc: stable@vger.kernel.org
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
Changes in v3:
- improve in-code comment
- improve check

Changes in v2:
- add check for ULLONG_MAX (unitialized)
- add check for ULONG_MAX #if BITS_PER_LONG == 32 (actual error)
- add pr_err error message
---
 drivers/xen/xenbus/xenbus_probe.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 94405bb3829e..d3ca57d48a73 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -951,6 +951,30 @@ static int __init xenbus_init(void)
 		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
 		if (err)
 			goto out_error;
+		/*
+		 * Uninitialized hvm_params are zero and return no error.
+		 * Although it is theoretically possible to have
+		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
+		 * not zero when valid. If zero, it means that Xenstore hasn't
+		 * been properly initialized. Instead of attempting to map a
+		 * wrong guest physical address return error.
+		 *
+		 * Also recognize the invalid value of INVALID_PFN which is
+		 * ULLONG_MAX.
+		 */
+		if (!v || !(v + 1)) {
+			err = -ENOENT;
+			goto out_error;
+		}
+		/* Avoid truncation on 32-bit. */
+#if BITS_PER_LONG == 32
+		if (v > ULONG_MAX) {
+			pr_err("%s: cannot handle HVM_PARAM_STORE_PFN=%llx > ULONG_MAX\n",
+			       __func__, v);
+			err = -EINVAL;
+			goto out_error;
+		}
+#endif
 		xen_store_gfn = (unsigned long)v;
 		xen_store_interface =
 			xen_remap(xen_store_gfn << XEN_PAGE_SHIFT,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 22 22:17:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Nov 2021 22:17:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229098.396497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpHcz-0005hC-NM; Mon, 22 Nov 2021 22:17:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229098.396497; Mon, 22 Nov 2021 22:17:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpHcz-0005h5-Jq; Mon, 22 Nov 2021 22:17:33 +0000
Received: by outflank-mailman (input) for mailman id 229098;
 Mon, 22 Nov 2021 22:17:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5+cX=QJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mpHcz-0005ea-4A
 for xen-devel@lists.xenproject.org; Mon, 22 Nov 2021 22:17:33 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb842e1e-4be1-11ec-a9d2-d9f7a1cc8784;
 Mon, 22 Nov 2021 23:17:31 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 51EF360F48;
 Mon, 22 Nov 2021 22:17:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb842e1e-4be1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637619449;
	bh=paUeQDKxuqgxS3cWP4o2B5+4c+2ofxouw7SOj1gNCmU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=jlOqCm05HghCO+w5EHI7r6xMbKY2b2a3gjKV7oRlac4c/o3V1syZt+aWr9Jo8I3de
	 62qKYc7VbWc14f5e0YbtVrXyq5A9I5tphzUJ0O0LmmJ917puEHOV7eB04HLtZYZFyT
	 C6ajBBWPTAPFML5QM3Lu5bqQqZVB8iFaoR2w9JIgwLz73KNCfCJ+4vJsMUdiGwSFby
	 P8sRZFnuc2Lt4VWy0tOizYtUJN4cfmUdWvMAYNFCk9TJoD7juGhioCtRmlFNCP8bpO
	 CyqFBqmQLi521mZTIlzShUErMSsutWQOvdcSA34duI81fYpxRox+7GEmGhnGF6Sr2c
	 eAVb7IMBG5S3Q==
Date: Mon, 22 Nov 2021 14:17:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Jan Beulich <jbeulich@suse.com>, boris.ostrovsky@oracle.com, 
    xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org, 
    jgross@suse.com
Subject: Re: [PATCH v2] xen: detect uninitialized xenbus in xenbus_init
In-Reply-To: <alpine.DEB.2.22.394.2111221357081.1412361@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2111221416330.1412361@ubuntu-linux-20-04-desktop>
References: <20211119202951.403525-1-sstabellini@kernel.org> <bc47bbe2-b330-7744-8d6b-869e3c7523e4@suse.com> <alpine.DEB.2.22.394.2111221357081.1412361@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 22 Nov 2021, Stefano Stabellini wrote:
> On Mon, 22 Nov 2021, Jan Beulich wrote:
> > On 19.11.2021 21:29, Stefano Stabellini wrote:
> > > --- a/drivers/xen/xenbus/xenbus_probe.c
> > > +++ b/drivers/xen/xenbus/xenbus_probe.c
> > > @@ -951,6 +951,20 @@ static int __init xenbus_init(void)
> > >  		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
> > >  		if (err)
> > >  			goto out_error;
> > > +		/* Uninitialized. */
> > > +		if (v == 0 || v == ULLONG_MAX) {
> > 
> > Didn't you have a comment in v1 here regarding the check against 0? Or was that
> > just like now only in the description? IOW I think there ought to be a code
> > comment justifying the theoretically wrong check ...
> 
> Yeah, I added all the info in the commit message and shortened the
> in-code comment this time. I am also happy to keep the details in the
> in-code comment, e.g.:
> 
> /*
>  * If the xenstore page hasn't been allocated properly, reading the
>  * value of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually
>  * return error. Instead, it will succeed and return zero. Instead of
>  * attempting to xen_remap a bad guest physical address, detect this
>  * condition and return early.
>  *
>  * Note that although a guest physical address of zero for
>  * HVM_PARAM_STORE_PFN is theoretically possible, it is not a good
>  * choice and zero has never been validly used in that capacity.
>  *
>  * Also recognize the invalid value of INVALID_PFN which is ULLONG_MAX.
>  */

I sent a new version of the patch with the check below and slightly more
concise version of this comment.
 

> > Also, while I realize there are various other similar assumptions elsewhere, I
> > would generally recommend to avoid such: There's no guarantee that now and
> > forever unsigned long long and uint64_t are the same thing. And it's easy in
> > cases like this one:
> > 
> > 		if (!v || !(v + 1)) {
> 
> I am happy to use this.


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 02:23:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 02:23:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229106.396511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpLSo-0005LH-DV; Tue, 23 Nov 2021 02:23:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229106.396511; Tue, 23 Nov 2021 02:23:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpLSo-0005LA-97; Tue, 23 Nov 2021 02:23:18 +0000
Received: by outflank-mailman (input) for mailman id 229106;
 Tue, 23 Nov 2021 02:23:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=iQPh=QK=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1mpLSn-0005L4-Go
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 02:23:17 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ecd7d0b-4c04-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 03:23:14 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPS id 1AN2MuC9063958
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Mon, 22 Nov 2021 21:23:02 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.16.1/8.15.2/Submit) id 1AN2Mum2063957;
 Mon, 22 Nov 2021 18:22:56 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ecd7d0b-4c04-11ec-9787-a32c541c8605
Date: Mon, 22 Nov 2021 18:22:56 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Henry Wang <Henry.Wang@arm.com>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Message-ID: <YZxQgIKywpY5aCeY@mattapan.m5p.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <64e9208d-ecda-2e62-e10f-81750c0279fb@suse.com>
 <78aa1ec7-3d47-716d-c9d6-b74d66486e9e@xen.org>
 <f3c5087b-4eb2-8599-f68c-cc9dbd375767@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <f3c5087b-4eb2-8599-f68c-cc9dbd375767@suse.com>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=3.4.5
X-Spam-Checker-Version: SpamAssassin 3.4.5 (2021-03-20) on mattapan.m5p.com

On Tue, Nov 16, 2021 at 08:18:26AM +0100, Jan Beulich wrote:
> On 15.11.2021 20:09, Julien Grall wrote:
> > 
> > However, for Elliott's case, I am not sure this is going to sufficient. 
> > The Raspberry PI has some devices that can only DMA into the first 1GB 
> > of the RAM (the GPU seems to be one). So we need to make sure Xen is 
> > allocating enough memory for Dom0 below that limit.
> 
> Urgh.
> 
> > Do you have similar problem on x86? If so, how do you deal with it?
> 
> No, we don't have any such restrictions that I would be aware of.

x86 had *many* devices which were limited to the low 4GB, go back futher
and there might have been other devices with lower limits.  The oddity
here being devices with a 1GB limit on a board with aarch64 processors.

This simply needs effort to keep Xen out of low addresses (which has the
additional advantage of protection from DMA) and allocate more low
addresses to Domain 0.  Could also see value in preferring to load
Domain 0's kernel at higher addresses.

Last year I had been left with the impression full ACPI table support
was really a WIP and I should leave things alone.  Letting others push
the ACPI support forward, while I put effort into the piece which nobody
was putting significant effort into.

Yet again what has been typed leaves the impression full ACPI table
support on ARM is highly desired and likely very high value.  Just at the
incremental effort for per-device device-trees isn't that high, while the
full table support will initially be expensive.  Yet once that is done I
suspect there will be far lower per-device effort.

We seem to need a corporate entity to aggregate all the funding to get
ACPI into proper shape.  Then we could enjoy many more devices with much
lower per-device effort.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Tue Nov 23 04:14:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 04:14:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229113.396522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpNBd-0006w2-Ek; Tue, 23 Nov 2021 04:13:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229113.396522; Tue, 23 Nov 2021 04:13:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpNBd-0006vv-Ax; Tue, 23 Nov 2021 04:13:41 +0000
Received: by outflank-mailman (input) for mailman id 229113;
 Tue, 23 Nov 2021 04:13:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=T9bO=QK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mpNBb-0006vp-Rn
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 04:13:39 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb64cc9c-4c13-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 05:13:38 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 7E0CD61056;
 Tue, 23 Nov 2021 04:13:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb64cc9c-4c13-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637640816;
	bh=Ve01jzpnj8vwVW9CQ9UGVcsXQ2S3MX8ZrjLBcqNMJv4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=EYrwXAO9OnvvOIWKHm5M/hDv5S6Gumus7TY0ldR9X0opxFlCl4GAkumWu+RWBjlFN
	 5gC03BP4ymU5JMKWVg18BcZeLzIT++WN+BWljZS906XS5GPiK5Vq8g83j5slYJwchq
	 4k7qDdlUMS77Iv6zQ5n7opVGbglENF0I4XS5MMbogDAL0IWFCzPULHoJcF1dqDv36r
	 ckYw2o67aAVB38vStyHVQuqbjmEEYyfvgLC8tbd2T3YpYjxNs3Og+1iV/+X9syT8iQ
	 XixXesycfpOMbKJ02h12jaggRzZyobQ59w38Za9zxpbnHCK2pvrwUuBpTOgFtAcBM+
	 w/qJLoqpZWkpQ==
Date: Mon, 22 Nov 2021 20:13:34 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien.grall.oss@gmail.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>, 
    xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <wei.chen@arm.com>, 
    Stefano Stabellini <stefano.stabellini@xilinx.com>, 
    Jan Beulich <jbeulich@suse.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Rahul Singh <rahul.singh@arm.com>
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str post-indexing
 instructions
In-Reply-To: <CAJ=z9a1L5v2+wC7-aaA2PjV2FzrFXjT-5t_0ijznGKvwywvd5A@mail.gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111221241450.1412361@ubuntu-linux-20-04-desktop>
References: <20211119165202.42442-1-ayankuma@xilinx.com> <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org> <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com> <alpine.DEB.2.22.394.2111221157050.1412361@ubuntu-linux-20-04-desktop>
 <CAJ=z9a1L5v2+wC7-aaA2PjV2FzrFXjT-5t_0ijznGKvwywvd5A@mail.gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 22 Nov 2021, Julien Grall wrote:
> On Mon, 22 Nov 2021 at 19:59, Stefano Stabellini <sstabellini@kernel.org> wrote:
> >
> > On Mon, 22 Nov 2021, Ayan Kumar Halder wrote:
> > > Stefano > It doesn't look like we are setting dabt->write anywhere.
> > >
> > > Ayan > Yes, this is a miss. Depending on the opc, this should be upadeted
> > > accordingly in decode_64bit_loadstore_postindexing().
> > >
> > > Stefano > Also, is info.gpa in try_handle_mmio already updated in the
> > > pre-index
> > > case? If not, do we need to apply the offset manually here?
> > >
> > > Ayan > Sorry, I did not understand you. This patch is only related to the post
> > > indexing ldr/str issue. Why do we need to check for pre-indexing ?
> >
> > I thought you were trying to handle both post-indexing and pre-indexing.
> > It is OK if you intend to only handle post-indexing but considering that
> > most of the code is shared between the two, we might as well also make
> > pre-indexing work (unless it turns out it is more difficult).
> 
> Wouldn't this effectively be dead code?
> 
> >
> > In the pre-indexing case, I would imagine we need to update the base
> > address before taking any other actions.
> 
> >From my understanding, this would have already been performed by the
> HW when the syndrome is valid. This may also be the case for
> the non-valid case, but I haven't checked the Arm Arm.

It is not clear to me either, that's why I wrote "I would imagine"... I
was guessing that it is not done by the HW in the non-valid case but I
don't know.

Of course, if it is already done by the HW, that's all the better: no
need for us to do anything.


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 05:43:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 05:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229119.396532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpOZs-0007CE-RD; Tue, 23 Nov 2021 05:42:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229119.396532; Tue, 23 Nov 2021 05:42:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpOZs-0007C7-OM; Tue, 23 Nov 2021 05:42:48 +0000
Received: by outflank-mailman (input) for mailman id 229119;
 Tue, 23 Nov 2021 05:42:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Yj1i=QK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mpOZr-0007Bi-5b
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 05:42:47 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e76726d-4c20-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 06:42:45 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 169591FD5A;
 Tue, 23 Nov 2021 05:42:44 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id DEF6413CE1;
 Tue, 23 Nov 2021 05:42:43 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id mlQ/NVN/nGF/PgAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 23 Nov 2021 05:42:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e76726d-4c20-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637646164; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=WFfl91pRcKjqye/TMhEYh56wAOGqJAk6Y4WkR2sBiHI=;
	b=LFz7uY9myDNF/P+QQ6Hs6HK3+8yVcp3PQGdPWUU1dKi5MQHALG6WpCJc3uu0sEduunUbQw
	N575J4oAZyBCoU9KSPBDb2akvDy8+tXb1v8Ee0tTeUSkIeVOG+ld4QYOWM/VGh9ToSVatS
	ubhEyiuxRpsOGtthFZ8/rIswmXp9uak=
Subject: Re: [PATCH v3] xen: detect uninitialized xenbus in xenbus_init
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, jbeulich@suse.com,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org
References: <20211122221625.1473164-1-sstabellini@kernel.org>
From: Juergen Gross <jgross@suse.com>
Message-ID: <2533e721-a01b-6659-71fa-24a8d2896e84@suse.com>
Date: Tue, 23 Nov 2021 06:42:43 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211122221625.1473164-1-sstabellini@kernel.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="bn1VCEjXOAIElom9Rm33lM2aD0v2rQP0n"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--bn1VCEjXOAIElom9Rm33lM2aD0v2rQP0n
Content-Type: multipart/mixed; boundary="vgJhsb0FzDXqTZh0hVwNv70ek98hUO1L5";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, jbeulich@suse.com,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org
Message-ID: <2533e721-a01b-6659-71fa-24a8d2896e84@suse.com>
Subject: Re: [PATCH v3] xen: detect uninitialized xenbus in xenbus_init
References: <20211122221625.1473164-1-sstabellini@kernel.org>
In-Reply-To: <20211122221625.1473164-1-sstabellini@kernel.org>

--vgJhsb0FzDXqTZh0hVwNv70ek98hUO1L5
Content-Type: multipart/mixed;
 boundary="------------E19278278CC40697BA37CB60"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------E19278278CC40697BA37CB60
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 22.11.21 23:16, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>=20
> If the xenstore page hasn't been allocated properly, reading the value
> of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
> error. Instead, it will succeed and return zero. Instead of attempting
> to xen_remap a bad guest physical address, detect this condition and
> return early.
>=20
> Note that although a guest physical address of zero for
> HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
> and zero has never been validly used in that capacity.
>=20
> Also recognize the invalid value of INVALID_PFN which is ULLONG_MAX.
>=20
> For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
> above ULONG_MAX should never be passed by the Xen tools to HVM guests
> anyway, so check for this condition and return early.
>=20
> Cc: stable@vger.kernel.org
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> ---
> Changes in v3:
> - improve in-code comment
> - improve check
>=20
> Changes in v2:
> - add check for ULLONG_MAX (unitialized)
> - add check for ULONG_MAX #if BITS_PER_LONG =3D=3D 32 (actual error)
> - add pr_err error message
> ---
>   drivers/xen/xenbus/xenbus_probe.c | 24 ++++++++++++++++++++++++
>   1 file changed, 24 insertions(+)
>=20
> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xen=
bus_probe.c
> index 94405bb3829e..d3ca57d48a73 100644
> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -951,6 +951,30 @@ static int __init xenbus_init(void)
>   		err =3D hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>   		if (err)
>   			goto out_error;
> +		/*
> +		 * Uninitialized hvm_params are zero and return no error.
> +		 * Although it is theoretically possible to have
> +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
> +		 * not zero when valid. If zero, it means that Xenstore hasn't
> +		 * been properly initialized. Instead of attempting to map a
> +		 * wrong guest physical address return error.
> +		 *
> +		 * Also recognize the invalid value of INVALID_PFN which is
> +		 * ULLONG_MAX.

Adjust the comment, e.g. s/ULLONG_MAX/all bits set/ (in the commit
message, too)?

> +		 */
> +		if (!v || !(v + 1)) {

For me "if (!v || !~v)" would be more readable, but I don't really feel
strong here.


Juergen


--------------E19278278CC40697BA37CB60
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------E19278278CC40697BA37CB60--

--vgJhsb0FzDXqTZh0hVwNv70ek98hUO1L5--

--bn1VCEjXOAIElom9Rm33lM2aD0v2rQP0n
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGcf1MFAwAAAAAACgkQsN6d1ii/Ey/E
6gf+KBrFH8z6V/OHebwAaADAOQDzdnV62qyE7RJ5xrZWLABS3KFF3gm3vWYbXv6Eh53+bwHaFhZ2
OMCd97N/XLqB1YhADGgyv7K3XOJ+CadS01ZD63+yDQK3amdmoEbLMxVITaR3uWZPc8mJDb4f2zFa
Xwjx1WNcqHgZw4XzPTfQi0fMfmI2doLE8/D8k85iJRPaABAqwTzr30UZRjzzY/eIocj0Qk/LDzDt
UgB65qJBTrx24NJjC/JNInNXuXEbNhoxVKyRx/EkmJtnTVTLeHvF/f8w9AlF8XssFx5ahfHVY5T/
G9o/RxanNAtMk3l8Tf/r6rwfg6B0z8pi0GeKDBggow==
=RCUE
-----END PGP SIGNATURE-----

--bn1VCEjXOAIElom9Rm33lM2aD0v2rQP0n--


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 06:31:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 06:31:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229127.396543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpPL6-0003k4-Lh; Tue, 23 Nov 2021 06:31:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229127.396543; Tue, 23 Nov 2021 06:31:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpPL6-0003jx-Ih; Tue, 23 Nov 2021 06:31:36 +0000
Received: by outflank-mailman (input) for mailman id 229127;
 Tue, 23 Nov 2021 06:31:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRmA=QK=epam.com=prvs=19611c0f38=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpPL5-0003jp-PN
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 06:31:35 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fede887b-4c26-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 07:31:34 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AN6ScuD025373;
 Tue, 23 Nov 2021 06:31:25 GMT
Received: from eur03-ve1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2055.outbound.protection.outlook.com [104.47.9.55])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cgtck04v7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 23 Nov 2021 06:31:24 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5796.eurprd03.prod.outlook.com (2603:10a6:208:156::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 06:31:22 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 06:31:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fede887b-4c26-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fTAmGdUUQztJCWnz8MKQNqzA5fdXliYnJDidnbL+y62wWBg9D6+AumncKfb7j5t0emqFzH/GqLE/s+YgT6LsuEYrdtQ+8U4WUBILODbrs2CR4KkP9Bpv3IXcaLogP1gLlOHN+Ez86+KvKM0vpG6SiGSIFrGy6X8Q8fj4iNANIQYPjm9vdZDFIpA8L8zH1QCsU1ckAx/Wv4w68mQAoRygAjL9zH3NbGJ82oq7/b5UQ5+C7An82ICZh+0z6oikiweKP/0dQPjJG9PAMf6MC79suPyiEE8BI+PfIDFMszpZF9Hp4c2sFr1+DyIx26YGqCAyCtzTPnFhBd/NFMmiaM3Tug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9QZKKAAuuYqgyE0bopJIBTWg8TVr7KugEh4CsCa8GNM=;
 b=gb/MsEYJiNV/Hti1QqkZxhchSe9AOhpNWolk5mY5ojhyI35de6/f0Umkfp+ScJo4BeLi4qtGKtn8Y+Ozxb9U07F7lh1D1jS8UWgoFDGx7Updsex1fJXTCk9+HVPfxkJ9+4JdNxhoFri6cSAfzcOEITgfQtNw+/Ygu4t+FwVUZevQ/ZKKKt2z/l3gCugvLFvexgLbeiloataGlQ+m16QLDyt9XII+vLthAhhr/PSF2xvi8fIsIA5G0PMWwRz7ROLheB9KqNloE6OAuVR4GJxc75h/l90jyXaLJVInsXkuRFuqgEegMl7peojOaYJPiJ8HaCIHolUVqLvYD0tbaWnMVg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9QZKKAAuuYqgyE0bopJIBTWg8TVr7KugEh4CsCa8GNM=;
 b=rSSXk8dMBNnTyzBc6Ffd6R+ip3PH9Bw7YR+KPvqVnrOg28fR6at5EN4FpEI5nulZXpTsW+QOTvelfdzM6kwNbiTOB5YEvO6yx3xztmjlbjjM2Rwj+0LJMxyzJO3JIT/eiB6vevrnE+hka1FtvKyuOBGdCBb64oC/ZjQ4gbtjzJkFjxsH7Zby1WQbRNi3ZvjIAV6mGDNHoYZmwnWSWBbLVmoFwJ16wNpD1f6O6LjmcWI+inYHqfWJvEYHa9VMI4hkPUGLmqGeN0saTs+B7slRIQc7STyh8Cd4BnADDLgZytBmLRyb5ltH5bI9VJRLxkxte4iGdbEEntnx5hkm7BR4xA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Topic: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Index: 
 AQHX0g8QVTbfP59mVU+LM2unTUGOtawGkRQAgADLYgCAAPUEgIAAofWAgAbUDQCAAA7WAIAADxaAgADd7IA=
Date: Tue, 23 Nov 2021 06:31:21 +0000
Message-ID: <0aff1bbb-eaf8-4deb-0808-d7db5f1ba8f5@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
 <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
 <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
 <e66c4189-acdf-c32f-4b50-51c8aaab4efd@xen.org>
 <315b1308-5adc-c4f3-6150-1060dbac5f4f@epam.com>
 <9f8e424d-ad1c-2d32-a470-68b275adf22c@xen.org>
In-Reply-To: <9f8e424d-ad1c-2d32-a470-68b275adf22c@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a06cb7a1-7442-45df-3903-08d9ae4add9c
x-ms-traffictypediagnostic: AM0PR03MB5796:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5796939C5ED0E27C4A9776F0E7609@AM0PR03MB5796.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 EgqR0KePQrtr+oQu1C03r1Wz3RD58d0G8EiN626KuhhQ3seMv5d2s5CooridT8e0VGAz0krIyQfVRH714VCSa8eyCezXoYouzgWkttXipLGaBEkpOhFFaFjkJdFnJOccAYH9/PGaQo1tuDWCT4wyvE4rDVpmDEooFoKFChWGudNAVEyVXJGwMLrFJlyq0n6AB9Bobb1yVRlxKyqp/N5u0fiaLasXSlwsfw7eT+0Lf48YOC/rk2jsal3og56paSDSEJYacaaOr+B353jRM2PVxdW3oZCXwJiKINgFx69B/m4ITJ0EFGfZlo+t7iodwCqW7ojTKK2SS2nvIrtHMSfJc+GiTUIacrLXon3QdQVqk5kTKxI9cQRQoo/ON9ZsteCDc7IJXfgIeSdkiEVoRj3K74TyIbsT0sbtvhkGoSDdzOVUUgVvx9cTkEQ/zfubg+XqSPdaeZfbmbGH72xr4enXK9HXE2aM6umDU32EJWSEENJKeFsryXU0eOWQPcNKClO/AnIWppnMV7Cd/tg8YOXRgdeQNS7oLa7ZthCVNhbhK0K0hAHRxEIN/9qr+CGBC8IrOfNrRi4m16rlfzJLv9XluECFBuRUF/evkNTJkbjvLMXz7KfeaLm50FmUTealVUIe8c/q5gQDr0IkzrceHZf6FHSBz5efdSxI3A9JjTMDrVroqIVM0FMp5Ov5mEZTxgf1Rvo5izkERa6CgwBm2vea+CEEr8LgkUlEefRTPEhCyTpDoKjs1B082/G1JhOIC0N6
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(107886003)(7416002)(54906003)(2616005)(110136005)(8936002)(6506007)(122000001)(53546011)(6512007)(31686004)(8676002)(36756003)(64756008)(186003)(38070700005)(91956017)(71200400001)(4326008)(31696002)(38100700002)(316002)(86362001)(6486002)(2906002)(76116006)(66476007)(66556008)(66446008)(66946007)(26005)(4744005)(5660300002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?bTdiSWZHMVRMbmFjRWtaTm12ZmFOY25obkc4MGtEaTYrNkNJbitFU2VHT1Uw?=
 =?utf-8?B?L2F6YisxNklXZzFVQXI3TCtnTkIwVVdsUzRaUzVRVHNXRzBvMWRHTklRQksx?=
 =?utf-8?B?KzhrdUFXZDJTclR4M2MvSHZqZDl2ZW1FN1RyOTlDVDZ5bXNPNjhjbDBwSXFD?=
 =?utf-8?B?SWIzN2ZQSzc0U3E5bXdkTTFNRFQrNTViMS96cXhNMVhCY2RFUk9iVGliYkt1?=
 =?utf-8?B?R2pYS1I4c0RLMkZpTFRpNmYwRS9PNDc5WEdoMFBuRWp0MFFqbVhRbkFBQytG?=
 =?utf-8?B?TGE5TGRUcUdJUDlBbjB4QXlMWTgySVFNbnBRekkwVStJbjdHWGJNMUM1RFUv?=
 =?utf-8?B?SUk0SFFKR0ZscVZxc1RtejFGblpOOFZJOUR1MlB4bjd0YnJQOTZjd0JBVmp2?=
 =?utf-8?B?S2xJcGl3SVRRV1I1L3pNcTQ5MmNTOGZMb0xHYnBvaDdRbWZXZldLb3VyUHNp?=
 =?utf-8?B?dGEvQlRUaXR2M0VLTnFIbWk0cUJaTHZXNFk4ZXRPOUkxcXNCMU1ZZlVJYUhZ?=
 =?utf-8?B?bllDamliQ1MvVUtWL1RLakQwNkhVNXFkQUU0VkszOGZvTU82N1NuTnY3RDVC?=
 =?utf-8?B?OWI3anF3ZGpuVHZpM0F0V2VrZXJKSkFtNno2eDRKNUlad0tmOGNlZzVDczBy?=
 =?utf-8?B?TC8zOVNXRTE3RnZKWU05YW1zOTdCUXpRaFBoa2JNWmJMQ1Jnc1JGVXlmVWtw?=
 =?utf-8?B?SlhlQ1pVTUducWV2YS94NDREVnFrcm12N1BQdE1pZWxMYndSanRjZEF4YU1j?=
 =?utf-8?B?eTBHMm5rbGRJalpJU0Y4Y1p4NitYMGF4cU54RHgvcGJFRUtveDVvN1IrWVEy?=
 =?utf-8?B?MndxWHdBS05MUmtvM004dlVaNUM2bXNtR09xWVJCWHlxbkFaVW1YWWlYd0to?=
 =?utf-8?B?TEtCTmUwVG1hSVVvUkM3NWhoUEpTZlJGOWhON0M2Y1paNmlwdFphZmFyazdz?=
 =?utf-8?B?aVdubzRUMU83Uks5aEVDa1JVOERDdWFjTnJsbmdsaHJnT25ESXZza1hVZW40?=
 =?utf-8?B?dExjSi9mTitRQUMwOGRIa0xoNDh3cUpIWmg2T1lZL2Z5OFV2cFA4Qk16bW1z?=
 =?utf-8?B?TzRkWkVjS1lpMWxyaC80Z3ZxQWNTcndxdDg1a3BLejRGNFluWUYzSzhHOEtl?=
 =?utf-8?B?WEZ4aEp5WlFkRmxjTUdTMG1Pa2RFTUdyYkx1WjZMcERyZ0ZVbnM3VGd3d0Mr?=
 =?utf-8?B?QSt1cGdHRkVObkI3TkxDVzJ3bWdoY3NxeFNnbTZIUm1KeGpzd3d4VzlIVldS?=
 =?utf-8?B?clZGalFsSzhwNEN1U0ROcWhUVkdmeEhuOGdhNWprNHMvSU51eEtIelgwcFRU?=
 =?utf-8?B?T3RRb05YU1RGalFRcVhXT0RzMzZOampvWlFtK1k1YVprU1lUYlBvbExnYUFs?=
 =?utf-8?B?R2d1SG8rTG0xdVczVE96bVRqUnoydXdDbDJMZGhCaVlTNkZPeDhGRis4a2hi?=
 =?utf-8?B?RlVtdUt4NEYrY0JzT0cxZXk5Vll0TjVWUVRSL0pTdm50ZnFLa0Rac3JtRk91?=
 =?utf-8?B?UEF5SmQ4aUpWV3h4NnFLNy9MVGJyaSt6YmNVL2J1ZjZnTGxxT3dvcWIwVkxB?=
 =?utf-8?B?ZThRZlU0dkhhOVFVNk5DS0tTN3lMdUhDZkdwWCtvWGdzWkJDcmZqYWZBc25B?=
 =?utf-8?B?czBJM0pBR3JWODlKVlVzdVRPTEN4aldFSHVOZzVXSERnamV2Ky9DMU84R1do?=
 =?utf-8?B?aWNjY2xoVVEwcW0zeFc1Z0V1TnF3UXd5NC81YStyMU81a3FyOERNTzdXdUhu?=
 =?utf-8?B?T2tOU2xzcjF2aVo0UXFodGJiVGNkaWxjeGRyQTFoQ2MwQUl2T1M0aXJjbVdN?=
 =?utf-8?B?bTJvc3RoUExoOGw2NTRDalVLTHhPNnNTUkV2S1BLQnlObGsyYUFOczRsSUtR?=
 =?utf-8?B?RWxzSXRqVno1UVhqRmZBblJzSDZkaDJrMlRDWGJTNDgxclVORVVnelJwanI3?=
 =?utf-8?B?eXp6QnNWazFydTVDVFZWZGdLWmowQm1JWUdqVXBiRmJacFJOT2FTc0FHWkdN?=
 =?utf-8?B?ek52MThheGZUN0c4bm4vMzBUaDIvQjNUcVJPMkR1Sy95V1MyRWlVSXdISzVC?=
 =?utf-8?B?ZnF2ejdzTnhqWE5yQm1tZkVSa3NBcUJSMzhGZDh3d2xNR3NtZHFOL2JJKy9S?=
 =?utf-8?B?SVlUWjhOeDJ3RGVRdXFYSzVVbzdUTzI3eVlOUXB2V3RZMVB1Q3ZQZDNSMWJI?=
 =?utf-8?B?aVVjTHgybGNxeWJJY1lHQ05OYSt5MFBnR3FIdFBON2R5dlJrK01waXl0YzNo?=
 =?utf-8?B?VllFWUhRaUc3TVFUZHhmYWdIMFh0amIvSlBNZTh4RWFsN2hNNHU2MzhES3ZL?=
 =?utf-8?B?b3hjSDhPSm5qTzdSY1I1c3V2Rllsd0NlWVdtb2I5V3JmYWZ2c1pnZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3C8FEE47D69AF84BB1539FA77C88688A@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a06cb7a1-7442-45df-3903-08d9ae4add9c
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 06:31:21.4280
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: tExgzEB70M4DKpfkogNtdcNnhcQAr15qoVEg5IM07YOKcmcW5y08FdrbsdCbWLRqkLPRqZCVMZupIb4MnYKwHJjleJ/QqacnRnFy2H55b3xxiwZfEgtqiPzeLw7jPHBr
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5796
X-Proofpoint-GUID: D2-WdrkPZlSjsMr2YCdyVyMGy-Q7lbsh
X-Proofpoint-ORIG-GUID: D2-WdrkPZlSjsMr2YCdyVyMGy-Q7lbsh
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-23_02,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0
 lowpriorityscore=0 clxscore=1015 spamscore=0 priorityscore=1501
 phishscore=0 mlxscore=0 adultscore=0 bulkscore=0 impostorscore=0
 mlxlogscore=668 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111230030

DQoNCk9uIDIyLjExLjIxIDE5OjE3LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+IEhpLA0KPg0KPiBP
biAyMi8xMS8yMDIxIDE2OjIzLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+IE9u
IDIyLjExLjIxIDE3OjI5LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4gSSB3b3VsZCBwcmVmZXIg
dG8gZ28gd2l0aCBteSB3YXkuIFRoaXMgY2FuIGJlIHJlZmluZWQgaW4gdGhlIGZ1dHVyZSBpZiB3
ZSBmaW5kIERldmljZS1UcmVlIHRoYXQgbWF0Y2hlcyB3aGF0IHlvdSB3cm90ZS4NCj4+IE9rLCBz
byBqdXN0IHRvIG1ha2UgaXQgY2xlYXI6DQo+PiDCoCA+YSBQQ0kgZGV2aWNlIHdvdWxkIGFsd2F5
cyBiZSBkZXNjcmliZWQgYXMgYSBjaGlsZCBvZiB0aGUgaG9zdGJyaWRnZXMuIFNvIEkgd291bGQg
cmV3b3JrIHRoZSAnaWYnIHRvIGFsc28gY2hlY2sgaWYgdGhlwqBwYXJlbnTCoHR5cGXCoGlzwqBu
b3TCoCJwY2kiDQo+DQo+IFRoYXQncyBjb3JyZWN0LiBUaGFuayB5b3UhDQpPaywgc28gaG93IGFi
b3V0DQogwqDCoMKgIGlmICggaXNfcGNpX3Bhc3N0aHJvdWdoX2VuYWJsZWQoKSAmJiBkdF9kZXZp
Y2VfdHlwZV9pc19lcXVhbChub2RlLCAicGNpIikgKQ0KIMKgwqDCoCB7DQogwqDCoMKgwqDCoMKg
wqAgYm9vbCBza2lwID0gZmFsc2U7DQoNCiDCoMKgwqDCoMKgwqDCoCAvKg0KIMKgwqDCoMKgwqDC
oMKgwqAgKiBJZiB0aGUgcGFyZW50IGlzIGFsc28gYSAicGNpIiBkZXZpY2UsIHRoZW4gImxpbnV4
LHBjaS1kb21haW4iDQogwqDCoMKgwqDCoMKgwqDCoCAqIHNob3VsZCBhbHJlYWR5IGJlIHRoZXJl
LCBzbyBub3RoaW5nIHRvIGRvIHRoZW4uDQogwqDCoMKgwqDCoMKgwqDCoCAqLw0KIMKgwqDCoMKg
wqDCoMKgIGlmICggbm9kZS0+cGFyZW50ICYmIGR0X2RldmljZV90eXBlX2lzX2VxdWFsKG5vZGUt
PnBhcmVudCwgInBjaSIpICkNCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNraXAgPSB0cnVlOw0K
DQogwqDCoMKgwqDCoMKgwqAgaWYgKCAhc2tpcCAmJiAhZHRfZmluZF9wcm9wZXJ0eShub2RlLCAi
bGludXgscGNpLWRvbWFpbiIsIE5VTEwpICkNCiDCoMKgwqDCoMKgwqDCoCB7DQpJIHBsYXllZCB3
aXRoIGEgc2luZ2xlIGlmIGFuZCBpdCBsb29rcyBzY2FyeS4uLg0KPg0KPiBDaGVlcnMsDQo+DQpU
aGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 06:59:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 06:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229133.396555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpPlG-00066w-SI; Tue, 23 Nov 2021 06:58:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229133.396555; Tue, 23 Nov 2021 06:58:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpPlG-00066p-Oh; Tue, 23 Nov 2021 06:58:38 +0000
Received: by outflank-mailman (input) for mailman id 229133;
 Tue, 23 Nov 2021 06:58:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRmA=QK=epam.com=prvs=19611c0f38=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpPlF-00066j-Ie
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 06:58:37 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c61d3cd2-4c2a-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 07:58:35 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AN6dn49009805;
 Tue, 23 Nov 2021 06:58:32 GMT
Received: from eur04-db3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2053.outbound.protection.outlook.com [104.47.12.53])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cgu7fg1fn-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 23 Nov 2021 06:58:32 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB3715.eurprd03.prod.outlook.com (2603:10a6:208:43::31)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Tue, 23 Nov
 2021 06:58:26 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 06:58:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c61d3cd2-4c2a-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eI6SNpTbhxFZn/vLyzhqqbPj06GC3CXKUnqIZcldfz62a4r1yvI3EJvon9es7Xu5xV0dIbXAzfK9mTT4P0GrgMtdcIw33xvFYFJ/5u83/wiw+yEXFeyd5BuYgekjlInXQ/3C+bTxnP5JG2sJf23r91y0ivJ8h1LPUWqOfFJd2aqxBIjkPakzw98TTAoiWCoktEnza3Js+UNM8robLHPtFRvnmsiV0uqCJoM3Wgaj7Q49/C03KGLy/iYmGe3yWVe+MCb/CB4WEr9MnYYIX4+/HdFdD5h83TLlAPHU0l+J9Q9BfrDPNkeovyBR0jaqsJV/8efdaCN/9Be05958dc85BA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tAxohpOaH73QCmfH9HJQdbAHDAszBh6nPEm772mwgsg=;
 b=cxDzPV9amAITTXmz/bQm/nvVEI12oKVDBP3ePiyObl2OksttEqd4+nKaQya/V6TLfJtbOzPX17IuIYlF51A4LDSTQthrvlBUteQQmj6cL+K1TSPUeEBJPeZqqgnug8kbDuNS2JfHwW1CK62OWcEv2Q+TQbAYHA/IHVRCPfuQDLH9sLIiPC/Hx+m3kBSIg45xMqstRIRmixeEvJwgD9p2Bo1gQaJ779APsECH7qpJrWzzqNzCdbeMcg+RbX0Bed7ECVlf8oqjfVGYZHi2RtZLFh8nB6ias+zL1Z+dwxYcXnniQo4TOyc27S3XZ54kFVhpv/2+3S4CSAVI8tsccKidJw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tAxohpOaH73QCmfH9HJQdbAHDAszBh6nPEm772mwgsg=;
 b=oezDzL9n2rgoCGAmuI2l6U81ec+KrxU94MzlVvxrWL1zdUJRUYUbxqbgXzdEUExmjv05NZ3inwHqlV/pz3gRAGn+6YDDIuClVLRnv8ttqdLHR2Uof+KBIeKFmvBzYZNwALblISozQx8Z3wHdflRkAuTp753rY1k0Wp+tc0jZoDrMTLQu/mFv1WeJ1CTh5c/4phplnpGKC7cmU4U13r539BqVCD+z1ddzpcpAUdaEQt3/54Ra2wV3foYqFsbetmkuzAO8Eh0BBXvKjFvH0wO1RgaSHMdNznwoX652iIcYhQ0Qq4EnOAOhC4n1ndNkXyfyfOfyxDb9c/2SZOq6VK7KZQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Topic: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Index: AQHX0g8SPRoS2Ac9eEeTcWew1GI8x6wGl6aAgAJfuQCAADeUAIAGu8iAgADgLIA=
Date: Tue, 23 Nov 2021 06:58:26 +0000
Message-ID: <c6232073-b59a-609f-3852-ddcac0859c2c@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
 <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
 <2f414e8f-67d5-d513-74d4-cc21a3a9ed28@epam.com>
 <9f712f79-9660-865a-3002-713950518819@epam.com>
 <117a57d1-aa4f-8153-8bba-2db47c234b81@xen.org>
In-Reply-To: <117a57d1-aa4f-8153-8bba-2db47c234b81@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 66380115-4de0-4af1-f185-08d9ae4ea60e
x-ms-traffictypediagnostic: AM0PR03MB3715:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB371508C351BFAFF9CDEBCB7EE7609@AM0PR03MB3715.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 fsUB7NKBC91HXqhJEQ3cnEmKRq0jb5PX8j0h7bPbSonAMU83iphSHL97rKN6RBf7rVtO6lYnK/Tl7KabxxTdgfw2jfw/txgE0tedxF71wZ5XWrD5UAGNIcCV74qsTyUcVRUkJWkSBVTekQmHUZ3nAIDfzec+u8ylcAgpljIbGoCiyV8NgK43UWEkXGJfyK5jBSF0SYxuiJBWvhFsTpHv3oinz4JBIreaHPzQjWsqSexTcygudkD7SXckcDBmpZ157BdOKZ/h666YrxaYFRlm/MYpBh68Lr2eBHG9qVZIr2780mwPEx+1t+iBw5VWYCMMFCNOS8yxyOHjln3oCT3ynu1Mj08FKiCfbNRC4yqiVnbp5MbWJ3oJn+KzH9KR27X731ey1oRGFROXICHLrNyCvMXFYs5F/qBGL0LXf0c65YCVcOHl/B3sSV3UgKHm+PUyJYU2D91lLqvGCiCpP/RyW5gVniGguy/7AQWyh5MA+4icA1/z4YC9sIU7QVEAZIHGo+qrvUwAyS3vliaH1xzG3lIyjRItnCt4vDKiife4U3kU3/nDwAB9oJWJyJt8qQhJ1LUILOqQIOlMLDyavW5tuyaM2FiS5VNRhj6ZgTWZWXIbKbuCHMDqGPXRiGWErWl2APkYqk+t+F+srxxSF5vXJNBvuKhIWUEGPwP48pTXqgM84e9DMy5HZDVgfjDPb9dxTmvpTbwhPsewqcE1QupddacFhngoa6DtczdYIxt8bxhZoWKEopxXEc65h8OqvgRr
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38100700002)(4326008)(8676002)(31696002)(86362001)(7416002)(6506007)(107886003)(31686004)(53546011)(6512007)(38070700005)(508600001)(71200400001)(5660300002)(36756003)(122000001)(6486002)(316002)(54906003)(2616005)(2906002)(26005)(8936002)(110136005)(66946007)(186003)(91956017)(66476007)(76116006)(66446008)(30864003)(83380400001)(66556008)(64756008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?a0o4YnhyZ0N5UUZmalZodnBmenVCZ2NZQTQwRlpOUk4wVldUL3FBb0ljRHgz?=
 =?utf-8?B?VkhIVStHY3EzTnJrcTEyWkpueWloRjZSTXVRTjlsRjdCNWg0NHBsVkluMnhJ?=
 =?utf-8?B?d0VWdWF5ODRMcSsxaFpMdnlFMWVjSm1iR1JjeEg0TGtJUTFxeC8zUWVCMlN3?=
 =?utf-8?B?d2V1QWRlV0NOb1M2MWdsUGhiZlFtSDJOODIzQWNFT2pMQUovcnFUMVpaRUFG?=
 =?utf-8?B?VUJGTFl3YUx1aU1NOURzekFSZ1paWGdTa1dyNEU0Nit4YzB4bURaRWVzWDJv?=
 =?utf-8?B?TG5yNXZCaWR5NVZyTnloandIbUZVQ29TTnNzdUl2QzA4ckZVdTBLNnRzSmZ4?=
 =?utf-8?B?bFhHMnlFN1I3cWlJUmZpYkUwVUVqdXpaVWl1UXBqTnI0WjVtRXpQVzludDEy?=
 =?utf-8?B?bkNpY2wzZnJkRGdsRmthUVZNakZDVFVCOUlKcXY3SmNsclNBQksxdFhoSDJs?=
 =?utf-8?B?b3ZGMkRxbTVQaFVhN1plZTVhNnJxYnp6M25uRTVOVnc2TkFDcnVudFFOVXMx?=
 =?utf-8?B?dkJob08yY3VIRElaWmlsRCtsZmM2OEQ2ZUgrdGhUdXJNNTAwU2tERkQ3NE9M?=
 =?utf-8?B?ejBVUlEwTk55czE3YlgwQkoxM3JYclNvT0dvNzNUUTZGYTVLN1pDTnZmZlp0?=
 =?utf-8?B?d1R1eDY0bkZXU0JIUkx2aGFaZ1hlYXBGOWRGNEpTUTk1TncrK0FLOGtwejFk?=
 =?utf-8?B?Mjg4YnB3NkpoRUt2OE5maU9FU1RISTBtTnYrZHY3endnNWM5QStEUis2aGhV?=
 =?utf-8?B?YXhoYzdWY0h1cnZIKzNBOWU1aWtzR0QwRHJiQUFTWklwNEh3bEhCektJbDcw?=
 =?utf-8?B?c3cvTzhwVWJWUWRvdHBuc0tXQmNXcU5INjVTakRpaEFOUnZlbUtxM3RyNGNQ?=
 =?utf-8?B?UzQvbzNkU0ZCZk9qTERLMStNQ3JPYTNiNlY2bTlWQjF6alc3UndDZ2VLbjBi?=
 =?utf-8?B?aDE3RUNwS2MxZFdnelBFKy95OHFkTW4weWlHNExjRlVuRCtNc2laTUpqRExO?=
 =?utf-8?B?T2hLU1UrNnBsUlg0UlZUeWhNNEQwWFhXM2Jlb2cwUzVSSFhRSUZsV2x6NzUv?=
 =?utf-8?B?V2RHY1JmYlNJR0FYeG5XYk5Vc0RSWVQwU2lyVHk0QjkwcWRkVDh0eVJnZURP?=
 =?utf-8?B?Z2JxZzkvN3M4bWZRZml6bkdDTG94VUFmb0NxVmVhMDg2ZDh3TGJ4b0IzRW1F?=
 =?utf-8?B?MXZESnQzYUZrUFpJcndSa1ZKM2VWQWFoMGNyUHFDVnZzZ20zMUh3b1lMZUJi?=
 =?utf-8?B?Ykc5UnNGZXNZRDh1bVJiOEFuNm1PcU5DMGZOcmNaTVRWYnRTQUZtQjhpcmpw?=
 =?utf-8?B?M01VYnk3YTREZnUxMG10cWJ6V2lDLzByaURZWmNqUGRvU0hxUVRaaC9LSGJF?=
 =?utf-8?B?NmxZSUhUUFpVRElpaVEzNXY1UzVzOGRTUXFKSWczNGh5SWtReWxURlZUbU44?=
 =?utf-8?B?YkgvSTNJYWlQdmRtOS9QMHNnTGtmSkY5ZHJhMXN2ZytYL3BOWG5UN2NzV2Nr?=
 =?utf-8?B?eVBPRWREOUlCd0J5eFBjM3dNdC9FOUo0NG1ST0tobUl2NHduNisyaVl6Q3dS?=
 =?utf-8?B?SW8zTy9qK2dHYnF6elBaNVhMYlFsZnoya2NDNjBhRkZrVVNNaTk0a085OHBH?=
 =?utf-8?B?cXZBTExzaTZ5VXFNOUw4b0dVOU1ENDlZaklJR1RLbVV6YUR6YStiTTdQZmFH?=
 =?utf-8?B?Q1JwbldEMWdOZWw3cmZITnhhdWxUQmIwNGQvL2oxUjhuWEFLY0g0Z1NPcWxu?=
 =?utf-8?B?RDd0M09hbHpUalZlMDB5S1NSRGdGWncxNDI5SExhSGs3VEMzeWZ5UDJjYUpu?=
 =?utf-8?B?YlJrRldRWERuUndobWNoT0QxT2RGWTZnUC9DQWtsMHdTa1ZUVXh4YkVYb2VJ?=
 =?utf-8?B?VU4wYWxzNnRlZkxIL0tNUTU4VWtTNUllMW1KV0lxbnRReTBTY0VnbFBGbGdH?=
 =?utf-8?B?RzhFTkZrV2hsSjEwWWNoeTNLTXRjOTZEOVdDRDZTQzR0TEhEZFlaM0pWTDZJ?=
 =?utf-8?B?R3hubTFVU3FsZzFRMS9ZZFhYQ29xSWNabVdncmdETHJTVE1XODYxK2dXSEVz?=
 =?utf-8?B?eC9nTDM4U2dHMldHQ2JIcDlubmdlc0J3RTZHT1FsMmM0RVEzSEc1K2plWUhR?=
 =?utf-8?B?dGpOdHZMN3hYYXZhTXRlekNyejhTT1R1blVwczlmMkkvY0ZOWU5MWGZRVUVE?=
 =?utf-8?B?c0xFUFNxc0lvZWJBaWhoZzlMNFVMMFF3NkF5VEM3cjk0elEreEZzMkhyUVBy?=
 =?utf-8?B?K2l6aDVNOVlwTWNpeVQ3aEhFaWNuZTFmMTllbjczQ052bXFhYjd6SEx0ZnJi?=
 =?utf-8?B?Y3dqaWdaZ1RwWVFQVHd6M0Q3TUI0L2o5TTF2emgvQVoyZnBZN0dBdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <631D69A878BE1747B4F06A7BC09D1279@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 66380115-4de0-4af1-f185-08d9ae4ea60e
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 06:58:26.4114
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5kS9PI6f4iQCD2AE4qRgisOVOQtc64x8kDAMXsLyTpJe5HoIU+onUMS3dmfhxN7lcHt0SywESjkGjN0MDD5ATeovn+luvN8SAeqUThYBKlHrv10iBVW+BMQLqh0Yz1Yl
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB3715
X-Proofpoint-GUID: kOfrKe9swA2NPynf4D0on_e3q81oxrsz
X-Proofpoint-ORIG-GUID: kOfrKe9swA2NPynf4D0on_e3q81oxrsz
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-23_02,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 clxscore=1015 malwarescore=0 mlxlogscore=999 mlxscore=0 phishscore=0
 spamscore=0 bulkscore=0 impostorscore=0 priorityscore=1501 suspectscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111230033

SGksIEp1bGllbiENCg0KT24gMjIuMTEuMjEgMTk6MzYsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGksDQo+DQo+IE9uIDE4LzExLzIwMjEgMTA6NDYsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdy
b3RlOg0KPj4gT24gMTguMTEuMjEgMDk6MjcsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3Rl
Og0KPj4+IEhpLCBKdWxpZW4hDQo+Pj4NCj4+PiBPbiAxNi4xMS4yMSAyMToxMiwgSnVsaWVuIEdy
YWxsIHdyb3RlOg0KPj4+PiBIaSBPbGVrc2FuZHIsDQo+Pj4+DQo+Pj4+IE9uIDA1LzExLzIwMjEg
MDY6MzMsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+Pj4gRnJvbTogT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KPj4+
Pj4NCj4+Pj4+IEluIG9yZGVyIGZvciB2UENJIHRvIHdvcmsgaXQgbmVlZHMgdG8gbWFpbnRhaW4g
Z3Vlc3QgYW5kIGhhcmR3YXJlDQo+Pj4+PiBkb21haW4ncyB2aWV3cyBvZiB0aGUgY29uZmlndXJh
dGlvbiBzcGFjZS4gRm9yIGV4YW1wbGUsIEJBUnMgYW5kDQo+Pj4+PiBDT01NQU5EIHJlZ2lzdGVy
cyByZXF1aXJlIGVtdWxhdGlvbiBmb3IgZ3Vlc3RzIGFuZCB0aGUgZ3Vlc3Qgdmlldw0KPj4+Pj4g
b2YgdGhlIHJlZ2lzdGVycyBuZWVkcyB0byBiZSBpbiBzeW5jIHdpdGggdGhlIHJlYWwgY29udGVu
dHMgb2YgdGhlDQo+Pj4+PiByZWxldmFudCByZWdpc3RlcnMuIEZvciB0aGF0IEVDQU0gYWRkcmVz
cyBzcGFjZSBuZWVkcyB0byBhbHNvIGJlDQo+Pj4+PiB0cmFwcGVkIGZvciB0aGUgaGFyZHdhcmUg
ZG9tYWluLCBzbyB3ZSBuZWVkIHRvIGltcGxlbWVudCBQQ0kgaG9zdA0KPj4+Pj4gYnJpZGdlIHNw
ZWNpZmljIGNhbGxiYWNrcyB0byBwcm9wZXJseSBzZXR1cCBNTUlPIGhhbmRsZXJzIGZvciB0aG9z
ZQ0KPj4+Pj4gcmFuZ2VzIGRlcGVuZGluZyBvbiBwYXJ0aWN1bGFyIGhvc3QgYnJpZGdlIGltcGxl
bWVudGF0aW9uLg0KPj4+Pj4NCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4+IC0tLQ0KPj4+
Pj4gU2luY2UgdjU6DQo+Pj4+PiAtIGFkZCB2cGNpX3NiZGZfZnJvbV9ncGEgaGVscGVyIGZvciBn
cGEgdG8gU0JERiB0cmFuc2xhdGlvbg0KPj4+Pj4gLSB0YWtlIGJyaWRnZSdzIGJ1cyBzdGFydCBp
bnRvIGFjY291bnQgd2hpbGUgY2FsY3VsYXRpbmcgU0JERg0KPj4+Pj4gU2luY2UgdjQ6DQo+Pj4+
PiAtIHVuc2lnbmVkIGludCBmb3IgZnVuY3Rpb25zIHdvcmtpbmcgd2l0aCBjb3VudA0KPj4+Pj4g
LSBnYXRlIG51bWJlciBvZiBNTUlPIGhhbmRsZXJzIG5lZWRlZCBmb3IgQ09ORklHX0hBU19QQ0lf
TVNJDQo+Pj4+PiDCoCDCoMKgIGFuZCBmaXggdGhlaXIgbnVtYmVyLCBlLmcuIHNpbmdsZSBoYW5k
bGVyIGZvciBQQkEgYW5kDQo+Pj4+PiDCoCDCoMKgIE1TSS1YIHRhYmxlcyAoUm9nZXIpDQo+Pj4+
PiAtIHJlLXdvcmsgY29kZSBmb3IgYXNzaWduaW5nIE1NSU8gaGFuZGxlcnMgdG8gYmUgc2ltcGxl
cg0KPj4+Pj4gwqAgwqDCoCBhbmQgYWNjb3VudCBvbiB0aGUgZmFjdCB0aGF0IHRoZXJlIGNvdWxk
IG11bHRpcGxlIGhvc3QgYnJpZGdlcw0KPj4+Pj4gwqAgwqDCoCBleGlzdCBmb3IgdGhlIGh3ZG9t
DQo+Pj4+PiBTaW5jZSB2MzoNCj4+Pj4+IC0gZml4ZWQgY29tbWVudCBmb3JtYXR0aW5nDQo+Pj4+
PiBTaW5jZSB2MjoNCj4+Pj4+IC0gcmVtb3ZlZCB1bm5lZWRlZCBhc3NpZ25tZW50IChjb3VudCA9
IDApDQo+Pj4+PiAtIHJlbW92ZWQgdW5uZWVkZWQgaGVhZGVyIGluY2x1c2lvbg0KPj4+Pj4gLSB1
cGRhdGUgY29tbWl0IG1lc3NhZ2UNCj4+Pj4+IFNpbmNlIHYxOg0KPj4+Pj4gwqAgwqAgLSBEeW5h
bWljYWxseSBjYWxjdWxhdGUgdGhlIG51bWJlciBvZiBNTUlPIGhhbmRsZXJzIHJlcXVpcmVkIGZv
ciB2UENJDQo+Pj4+PiDCoCDCoMKgwqAgYW5kIHVwZGF0ZSB0aGUgdG90YWwgbnVtYmVyIGFjY29y
ZGluZ2x5DQo+Pj4+PiDCoCDCoCAtIHMvY2xiL2NiDQo+Pj4+PiDCoCDCoCAtIERvIG5vdCBpbnRy
b2R1Y2UgYSBuZXcgY2FsbGJhY2sgZm9yIE1NSU8gaGFuZGxlciBzZXR1cA0KPj4+Pj4gLS0tDQo+
Pj4+PiDCoCDCoCB4ZW4vYXJjaC9hcm0vZG9tYWluLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCB8wqAgMiArDQo+Pj4+PiDCoCDCoCB4ZW4vYXJjaC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5j
IHwgMjcgKysrKysrKysrKysrDQo+Pj4+PiDCoCDCoCB4ZW4vYXJjaC9hcm0vdnBjaS5jwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKyst
LS0tDQo+Pj4+PiDCoCDCoCB4ZW4vYXJjaC9hcm0vdnBjaS5owqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHzCoCA2ICsrKw0KPj4+Pj4gwqAgwqAgeGVuL2luY2x1ZGUvYXNtLWFybS9wY2ku
aMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNSArKysNCj4+Pj4+IMKgIMKgIDUgZmlsZXMgY2hhbmdl
ZCwgOTggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkNCj4+Pj4+DQo+Pj4+PiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbi5jDQo+Pj4+
PiBpbmRleCA5NmUxYjIzNTUwMWQuLjkyYTZjNTA5ZTVjNSAxMDA2NDQNCj4+Pj4+IC0tLSBhL3hl
bi9hcmNoL2FybS9kb21haW4uYw0KPj4+Pj4gKysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbi5jDQo+
Pj4+PiBAQCAtNzM5LDYgKzczOSw4IEBAIGludCBhcmNoX2RvbWFpbl9jcmVhdGUoc3RydWN0IGRv
bWFpbiAqZCwNCj4+Pj4+IMKgIMKgwqDCoMKgwqAgaWYgKCAocmMgPSBkb21haW5fdmdpY19yZWdp
c3RlcihkLCAmY291bnQpKSAhPSAwICkNCj4+Pj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBnb3Rv
IGZhaWw7DQo+Pj4+PiDCoCDCoCArwqDCoMKgIGNvdW50ICs9IGRvbWFpbl92cGNpX2dldF9udW1f
bW1pb19oYW5kbGVycyhkKTsNCj4+Pj4+ICsNCj4+Pj4+IMKgIMKgwqDCoMKgwqAgaWYgKCAocmMg
PSBkb21haW5faW9faW5pdChkLCBjb3VudCArIE1BWF9JT19IQU5ETEVSKSkgIT0gMCApDQo+Pj4+
PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBmYWlsOw0KPj4+Pj4gwqAgwqAgZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL2FybS9wY2kvcGNpLWhvc3QtY29tbW9uLmMgYi94ZW4vYXJjaC9hcm0vcGNp
L3BjaS1ob3N0LWNvbW1vbi5jDQo+Pj4+PiBpbmRleCA0NzEwNGIyMmIyMjEuLjBkMjcxYTZlODg4
MSAxMDA2NDQNCj4+Pj4+IC0tLSBhL3hlbi9hcmNoL2FybS9wY2kvcGNpLWhvc3QtY29tbW9uLmMN
Cj4+Pj4+ICsrKyBiL3hlbi9hcmNoL2FybS9wY2kvcGNpLWhvc3QtY29tbW9uLmMNCj4+Pj4+IEBA
IC0yODksNiArMjg5LDMzIEBAIGludCBwY2lfZ2V0X2hvc3RfYnJpZGdlX3NlZ21lbnQoY29uc3Qg
c3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlLA0KPj4+Pj4gwqAgwqDCoMKgwqDCoCByZXR1cm4g
LUVJTlZBTDsNCj4+Pj4+IMKgIMKgIH0NCj4+Pj4+IMKgIMKgICtpbnQgcGNpX2hvc3RfaXRlcmF0
ZV9icmlkZ2VzKHN0cnVjdCBkb21haW4gKmQsDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ICgqY2IpKHN0cnVjdCBkb21h
aW4gKmQsDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdl
ICpicmlkZ2UpKQ0KPj4+Pj4gK3sNCj4+Pj4+ICvCoMKgwqAgc3RydWN0IHBjaV9ob3N0X2JyaWRn
ZSAqYnJpZGdlOw0KPj4+Pj4gK8KgwqDCoCBpbnQgZXJyOw0KPj4+Pj4gKw0KPj4+Pj4gK8KgwqDC
oCBsaXN0X2Zvcl9lYWNoX2VudHJ5KCBicmlkZ2UsICZwY2lfaG9zdF9icmlkZ2VzLCBub2RlICkN
Cj4+Pj4+ICvCoMKgwqAgew0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGVyciA9IGNiKGQsIGJyaWRn
ZSk7DQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBlcnIgKQ0KPj4+Pj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgcmV0dXJuIGVycjsNCj4+Pj4+ICvCoMKgwqAgfQ0KPj4+Pj4gK8KgwqDCoCBy
ZXR1cm4gMDsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdW5zaWduZWQgaW50IHBjaV9ob3N0
X2dldF9udW1fYnJpZGdlcyh2b2lkKQ0KPj4+Pj4gK3sNCj4+Pj4+ICvCoMKgwqAgc3RydWN0IHBj
aV9ob3N0X2JyaWRnZSAqYnJpZGdlOw0KPj4+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgY291bnQg
PSAwOw0KPj4+PiBIb3cgYWJvdXQgbWFraW5nIHRoaXMgc3RhdGljIGFuZC4uLg0KPj4+Pg0KPj4+
Pj4gKw0KPj4+Pj4gK8KgwqDCoCBsaXN0X2Zvcl9lYWNoX2VudHJ5KCBicmlkZ2UsICZwY2lfaG9z
dF9icmlkZ2VzLCBub2RlICkNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjb3VudCsrOw0KPj4+PiAu
Li4gb25seSBjYWxsIGxpc3RfZm9yX2VhY2hfZW50cnkoKSB3aGVuIGNvdW50IGlzIC0xPyBTbyB3
ZSB3b3VsZCBvbmx5IGdvIHRocm91Z2ggdGhlIGxpc3Qgb25jZS4NCj4+Pj4NCj4+Pj4gVGhpcyBz
aG91bGQgYmUgZmluZSBnaXZlbiBob3N0YnJpZGdlIGNhbiBvbmx5IGJlIGFkZGVkIGR1cmluZyBi
b290ICh3ZSB3b3VsZCBuZWVkIHRvIHByb3RlY3QgcGNpX2hvc3RfYnJpZGdlcyB3aXRoIGEgbG9j
ayBvdGhlcndpc2UpLg0KPj4+IE9rLCBJIGNhbiBkbyB0aGF0DQo+PiBJIGhhdmUgcmUtd29ya2Vk
IHRoZSBwYXRjaCBzbyB0aGF0IG1vcmUgY29kZSBjYW4gYmUgcmUtdXNlZDoNCj4+DQo+PiDCoCDC
oMKgwqAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KPj4gwqAgwqDCoMKgIHsNCj4+IMKg
IMKgwqDCoMKgwqDCoMKgIGludCBjb3VudDsNCj4+DQo+PiDCoCDCoMKgwqDCoMKgwqDCoCBjb3Vu
dCA9IHBjaV9ob3N0X2l0ZXJhdGVfYnJpZGdlc19hbmRfY291bnQoZCwNCj4+IHZwY2lfc2V0dXBf
bW1pb19oYW5kbGVyX2NiKTsNCj4+IMKgIMKgwqDCoMKgwqDCoMKgIGlmICggY291bnQgPCAwICkN
Cj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGNvdW50Ow0KPj4NCj4+IMKgIMKg
wqDCoMKgwqDCoMKgIHJldHVybiAwOw0KPj4gwqAgwqDCoMKgIH0NCj4+DQo+PiDCoCDCoMKgwqAg
cmVnaXN0ZXJfbW1pb19oYW5kbGVyKGQsICZ2cGNpX21taW9faGFuZGxlciwNCj4+IMKgIMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEdVRVNUX1ZQQ0lf
RUNBTV9CQVNFLCBHVUVTVF9WUENJX0VDQU1fU0laRSwgTlVMTCk7DQo+Pg0KPj4gc28gcGNpX2hv
c3RfZ2V0X251bV9icmlkZ2VzIGdvZXMgYXdheS4NCj4NCj4gSWYgdGhpcyB3aWxsIGJlIHRoZSBv
bmx5IGNhbGxlciB0aGF0IG5lZWRzIHRvIGtub3cgdGhlIG51bWJlciBob3N0YnJpZGdlcywgdGhl
biBJIGFtIGhhcHB5IHdpdGggdGhpcyBhcHByb3BhY2guIE90aGVyd2lzZSwgSSB3b3VsZCBwcmVm
ZXIgdG8ga2VlcCB0aGUgaGVscGVyIHBjaV9ob3N0X2dldF9udW1fYnJpZGdlcygpLg0KcGNpX2hv
c3RfZ2V0X251bV9icmlkZ2VzIHdvbid0IGJlIG5lZWRlZCwgc28gaXQgaXMgb2sgdG8gbm90IGlu
dHJvZHVjZSBwY2lfaG9zdF9nZXRfbnVtX2JyaWRnZXMNCj4NCj4+Pj4+ICsNCj4+Pj4+ICvCoMKg
wqAgcmV0dXJuIGNvdW50Ow0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+IMKgIMKgIC8qDQo+Pj4+
PiDCoCDCoMKgICogTG9jYWwgdmFyaWFibGVzOg0KPj4+Pj4gwqAgwqDCoCAqIG1vZGU6IEMNCj4+
Pj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdnBjaS5jIGIveGVuL2FyY2gvYXJtL3ZwY2ku
Yw0KPj4+Pj4gaW5kZXggMjNmNDUzODZmNGIzLi41YTZlYmQ4Yjk4NjggMTAwNjQ0DQo+Pj4+PiAt
LS0gYS94ZW4vYXJjaC9hcm0vdnBjaS5jDQo+Pj4+PiArKysgYi94ZW4vYXJjaC9hcm0vdnBjaS5j
DQo+Pj4+PiBAQCAtMTYsMTYgKzE2LDMxIEBADQo+Pj4+PiDCoCDCoCDCoCAjaW5jbHVkZSA8YXNt
L21taW8uaD4NCj4+Pj4+IMKgIMKgICtzdGF0aWMgcGNpX3NiZGZfdCB2cGNpX3NiZGZfZnJvbV9n
cGEoY29uc3Qgc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlLA0KPj4+Pj4gK8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBwYWRkcl90IGdwYSkNCj4+Pj4+ICt7DQo+Pj4+PiArwqDCoMKgIHBjaV9zYmRmX3Qg
c2JkZjsNCj4+Pj4+ICsNCj4+Pj4+ICvCoMKgwqAgaWYgKCBicmlkZ2UgKQ0KPj4+Pj4gK8KgwqDC
oCB7DQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgc2JkZi5zYmRmID0gVlBDSV9FQ0FNX0JERihncGEg
LSBicmlkZ2UtPmNmZy0+cGh5c19hZGRyKTsNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBzYmRmLnNl
ZyA9IGJyaWRnZS0+c2VnbWVudDsNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBzYmRmLmJ1cyArPSBi
cmlkZ2UtPmNmZy0+YnVzbl9zdGFydDsNCj4+Pj4+ICvCoMKgwqAgfQ0KPj4+Pj4gK8KgwqDCoCBl
bHNlDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgc2JkZi5zYmRmID0gVlBDSV9FQ0FNX0JERihncGEg
LSBHVUVTVF9WUENJX0VDQU1fQkFTRSk7DQo+Pj4+PiArDQo+Pj4+PiArwqDCoMKgIHJldHVybiBz
YmRmOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+IMKgIMKgIHN0YXRpYyBpbnQgdnBjaV9tbWlv
X3JlYWQoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLA0KPj4+Pj4gwqAgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlZ2lzdGVy
X3QgKnIsIHZvaWQgKnApDQo+Pj4+PiDCoCDCoCB7DQo+Pj4+PiAtwqDCoMKgIHBjaV9zYmRmX3Qg
c2JkZjsNCj4+Pj4+ICvCoMKgwqAgc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlID0gcDsN
Cj4+Pj4+ICvCoMKgwqAgcGNpX3NiZGZfdCBzYmRmID0gdnBjaV9zYmRmX2Zyb21fZ3BhKGJyaWRn
ZSwgaW5mby0+Z3BhKTsNCj4+Pj4+IMKgIMKgwqDCoMKgwqAgLyogZGF0YSBpcyBuZWVkZWQgdG8g
cHJldmVudCBhIHBvaW50ZXIgY2FzdCBvbiAzMmJpdCAqLw0KPj4+Pj4gwqAgwqDCoMKgwqDCoCB1
bnNpZ25lZCBsb25nIGRhdGE7DQo+Pj4+PiDCoCDCoCAtwqDCoMKgIC8qIFdlIGlnbm9yZSBzZWdt
ZW50IHBhcnQgYW5kIGFsd2F5cyBoYW5kbGUgc2VnbWVudCAwICovDQo+Pj4+PiAtwqDCoMKgIHNi
ZGYuc2JkZiA9IFZQQ0lfRUNBTV9CREYoaW5mby0+Z3BhIC0gR1VFU1RfVlBDSV9FQ0FNX0JBU0Up
Ow0KPj4+Pj4gLQ0KPj4+Pj4gwqAgwqDCoMKgwqDCoCBpZiAoIHZwY2lfZWNhbV9yZWFkKHNiZGYs
IEVDQU1fUkVHX09GRlNFVChpbmZvLT5ncGEpLA0KPj4+Pj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMVUgPDwgaW5mby0+ZGFidC5zaXplLCAm
ZGF0YSkgKQ0KPj4+Pj4gwqAgwqDCoMKgwqDCoCB7DQo+Pj4+PiBAQCAtNDEsMTAgKzU2LDggQEAg
c3RhdGljIGludCB2cGNpX21taW9fcmVhZChzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmlu
Zm8sDQo+Pj4+PiDCoCDCoCBzdGF0aWMgaW50IHZwY2lfbW1pb193cml0ZShzdHJ1Y3QgdmNwdSAq
diwgbW1pb19pbmZvX3QgKmluZm8sDQo+Pj4+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWdpc3Rlcl90IHIsIHZvaWQgKnApDQo+
Pj4+PiDCoCDCoCB7DQo+Pj4+PiAtwqDCoMKgIHBjaV9zYmRmX3Qgc2JkZjsNCj4+Pj4+IC0NCj4+
Pj4+IC3CoMKgwqAgLyogV2UgaWdub3JlIHNlZ21lbnQgcGFydCBhbmQgYWx3YXlzIGhhbmRsZSBz
ZWdtZW50IDAgKi8NCj4+Pj4+IC3CoMKgwqAgc2JkZi5zYmRmID0gVlBDSV9FQ0FNX0JERihpbmZv
LT5ncGEgLSBHVUVTVF9WUENJX0VDQU1fQkFTRSk7DQo+Pj4+PiArwqDCoMKgIHN0cnVjdCBwY2lf
aG9zdF9icmlkZ2UgKmJyaWRnZSA9IHA7DQo+Pj4+PiArwqDCoMKgIHBjaV9zYmRmX3Qgc2JkZiA9
IHZwY2lfc2JkZl9mcm9tX2dwYShicmlkZ2UsIGluZm8tPmdwYSk7DQo+Pj4+PiDCoCDCoCDCoMKg
wqDCoMKgIHJldHVybiB2cGNpX2VjYW1fd3JpdGUoc2JkZiwgRUNBTV9SRUdfT0ZGU0VUKGluZm8t
PmdwYSksDQo+Pj4+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCAxVSA8PCBpbmZvLT5kYWJ0LnNpemUsIHIpOw0KPj4+Pj4gQEAgLTU1
LDE3ICs2OCw1NCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlcl9vcHMgdnBjaV9t
bWlvX2hhbmRsZXIgPSB7DQo+Pj4+PiDCoCDCoMKgwqDCoMKgIC53cml0ZSA9IHZwY2lfbW1pb193
cml0ZSwNCj4+Pj4+IMKgIMKgIH07DQo+Pj4+PiDCoCDCoCArc3RhdGljIGludCB2cGNpX3NldHVw
X21taW9faGFuZGxlcl9jYihzdHJ1Y3QgZG9tYWluICpkLA0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSkNCj4+Pj4+ICt7DQo+Pj4+PiArwqDC
oMKgIHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnID0gYnJpZGdlLT5jZmc7DQo+Pj4+PiAr
DQo+Pj4+PiArwqDCoMKgIHJlZ2lzdGVyX21taW9faGFuZGxlcihkLCAmdnBjaV9tbWlvX2hhbmRs
ZXIsDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgY2ZnLT5waHlzX2FkZHIsIGNmZy0+c2l6ZSwgYnJpZGdlKTsNCj4+Pj4+ICvCoMKgwqAg
cmV0dXJuIDA7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gwqAgwqAgaW50IGRvbWFpbl92cGNp
X2luaXQoc3RydWN0IGRvbWFpbiAqZCkNCj4+Pj4+IMKgIMKgIHsNCj4+Pj4+IMKgIMKgwqDCoMKg
wqAgaWYgKCAhaGFzX3ZwY2koZCkgKQ0KPj4+Pj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVy
biAwOw0KPj4+Pj4gwqAgwqAgK8KgwqDCoCBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApDQo+
Pj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHBjaV9ob3N0X2l0ZXJhdGVfYnJpZGdlcyhkLCB2
cGNpX3NldHVwX21taW9faGFuZGxlcl9jYik7DQo+Pj4+PiArDQo+Pj4+PiArwqDCoMKgIC8qIEd1
ZXN0IGRvbWFpbnMgdXNlIHdoYXQgaXMgcHJvZ3JhbW1lZCBpbiB0aGVpciBkZXZpY2UgdHJlZS4g
Ki8NCj4+Pj4gSSB3b3VsZCByYXRoZXIgbm90IG1ha2UgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUg
Z3Vlc3QgaXMgdXNpbmcgYSBEZXZpY2UtVHJlZS4gU28gaG93IGFib3V0Og0KPj4+Pg0KPj4+PiAv
Kg0KPj4+PiDCoCDCoCogVGhlIGhhcmR3YXJlIGRvbWFpbiBnZXRzIG9uZSB2aXJ0dWFsIGhvc3Ri
cmlkZ2UgYnkgInJlYWwiDQo+Pj4+IMKgIMKgKiBob3N0YnJpZGdlcy4NCj4+Pj4gwqAgwqAqIEd1
ZXN0cyBnZXQgdGhlIHZpcnR1YWwgcGxhdGZvcm0gbGF5b3V0IChvbmUgdmlydHVhbCBob3N0IGJy
aWRnZSBmb3INCj4+Pj4gwqAgwqAqIG5vdykuDQo+Pj4+IMKgIMKgKi8NCj4+Pj4NCj4+Pj4gVGhl
IGNvbW1lbnQgd291bGQgaGF2ZSB0byBiZSBtb3ZlZCBiZWZvcmUgaWYgKCBpc19oYXJkd2FyZV9k
b21haW4oZCkgKS4NCj4+PiBTdXJlLCBJIGNhbiBleHRlbmQgdGhlIGNvbW1lbnQNCj4+IMKgIMKg
wqDCoCAvKg0KPj4gwqAgwqDCoMKgwqAgKiBUaGUgaGFyZHdhcmUgZG9tYWluIGdldHMgYXMgbWFu
eSBNTUlPcyBhcyByZXF1aXJlZCBieSB0aGUNCj4+IMKgIMKgwqDCoMKgICogcGh5c2ljYWwgaG9z
dCBicmlkZ2UuDQo+PiDCoCDCoMKgwqDCoCAqIEd1ZXN0cyBnZXQgdGhlIHZpcnR1YWwgcGxhdGZv
cm0gbGF5b3V0OiBvbmUgdmlydHVhbCBob3N0IGJyaWRnZSBmb3Igbm93Lg0KPj4gwqAgwqDCoMKg
wqAgKi8NCj4NCj4gTEdUTS4NCj4NCj4+DQo+Pj4+PiDCoCDCoMKgwqDCoMKgIHJlZ2lzdGVyX21t
aW9faGFuZGxlcihkLCAmdnBjaV9tbWlvX2hhbmRsZXIsDQo+Pj4+PiDCoCDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgR1VFU1RfVlBDSV9FQ0FN
X0JBU0UsIEdVRVNUX1ZQQ0lfRUNBTV9TSVpFLCBOVUxMKTsNCj4+Pj4+IMKgIMKgIMKgwqDCoMKg
wqAgcmV0dXJuIDA7DQo+Pj4+PiDCoCDCoCB9DQo+Pj4+PiDCoCDCoCArdW5zaWduZWQgaW50IGRv
bWFpbl92cGNpX2dldF9udW1fbW1pb19oYW5kbGVycyhzdHJ1Y3QgZG9tYWluICpkKQ0KPj4+PiBB
RkFJQ1QsIHRoaXMgZnVuY3Rpb24gd291bGQgYWxzbyBiZSBjYWxsZWQgZXZlbiBpZiB2UENJIGlz
IG5vdCBlbmFibGVkIGZvciB0aGUgZG9tYWluLiBTbyB3ZSBzaG91bGQgYWRkOg0KPj4+Pg0KPj4+
PiBpZiAoICFoYXNfdnBjaShkKSApDQo+Pj4+IMKgIMKgIHJldHVybiAwOw0KPj4+Pg0KPj4+IEdv
b2QgY2F0Y2gsIHdpbGwgYWRkDQo+PiBIbS4uLiBidXQgd2UgaGF2ZQ0KPj4NCj4+IHN0YXRpYyBp
bmxpbmUgdW5zaWduZWQgaW50IGRvbWFpbl92cGNpX2dldF9udW1fbW1pb19oYW5kbGVycyhzdHJ1
Y3QgZG9tYWluICpkKQ0KPj4gK3sNCj4+ICvCoMKgwqAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gZmly
IHRoYXQgY2FzZQ0KPg0KPiBUaGlzIHdvdWxkIG9ubHkgY292ZXIgdGhlIGNhc2Ugd2hlcmUgWGVu
IHdhcyBidWlsdCB3aXRob3V0IHZQQ0kgc3VwcG9ydC4gV2hlbiBYZW4gaXMgYnVpbHQgd2l0aCB2
UENJIHN1cHBvcnQsIHdlIG9ubHkgd2FudCB0byBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIHJlZ2lv
bnMgZm9yIGRvbWFpbiB3aXRoIHZQQ0kgZW5hYmxlZC4NClllcywgeW91IGFyZSByaWdodCwgSSB3
aWxsIGFkZCB0aGUgY2hlY2sNCj4NCj4+DQo+Pj4+PiArew0KPj4+Pj4gK8KgwqDCoCB1bnNpZ25l
ZCBpbnQgY291bnQ7DQo+Pj4+PiArDQo+Pj4+PiArwqDCoMKgIGlmICggaXNfaGFyZHdhcmVfZG9t
YWluKGQpICkNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCAvKiBGb3IgZWFjaCBQQ0kgaG9zdCBicmlk
Z2UncyBjb25maWd1cmF0aW9uIHNwYWNlLiAqLw0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNvdW50
ID0gcGNpX2hvc3RfZ2V0X251bV9icmlkZ2VzKCk7DQo+Pj4+IFRoaXMgZmlyc3QgcGFydCBtYWtl
cyBzZW5zZSB0byBtZS4gQnV0Li4uDQo+Pj4+DQo+Pj4+PiArwqDCoMKgIGVsc2UNCj4+Pj4gLi4u
IEkgZG9uJ3QgdW5kZXJzdGFuZCBob3cgdGhlIGVsc2UgaXMgcmVsYXRlZCB0byB0aGlzIGNvbW1p
dC4gQ2FuIHlvdSBjbGFyaWZ5IGl0Pw0KPj4+Pg0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIC8qDQo+
Pj4+PiArwqDCoMKgwqDCoMKgwqDCoCAqIFRoZXJlJ3MgYSBzaW5nbGUgTVNJLVggTU1JTyBoYW5k
bGVyIHRoYXQgZGVhbHMgd2l0aCBib3RoIFBCQQ0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBh
bmQgTVNJLVggdGFibGVzIHBlciBlYWNoIFBDSSBkZXZpY2UgYmVpbmcgcGFzc2VkIHRocm91Z2gu
DQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoCAqIE1heGltdW0gbnVtYmVyIG9mIHN1cHBvcnRlZCBk
ZXZpY2VzIGlzIDMyIGFzIHZpcnR1YWwgYnVzDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoCAqIHRv
cG9sb2d5IGVtdWxhdGVzIHRoZSBkZXZpY2VzIGFzIGVtYmVkZGVkIGVuZHBvaW50cy4NCj4+Pj4+
ICvCoMKgwqDCoMKgwqDCoMKgICogKzEgZm9yIGEgc2luZ2xlIGVtdWxhdGVkIGhvc3QgYnJpZGdl
J3MgY29uZmlndXJhdGlvbiBzcGFjZS4NCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgICovDQo+Pj4+
PiArwqDCoMKgwqDCoMKgwqAgY291bnQgPSAxOw0KPj4+Pj4gKyNpZmRlZiBDT05GSUdfSEFTX1BD
SV9NU0kNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjb3VudCArPSAzMjsNCj4+Pj4gU3VyZWx5LCB0
aGlzIGlzIGEgZGVjaXNpb24gdGhhdCBpcyBiYXNlZCBvbiBvdGhlciBmYWN0b3IgaW4gdGhlIHZQ
Q0kgY29kZS4gU28gY2FuIHVzZSBhIGRlZmluZSBhbmQgYXZvaWQgaGFyZGNvZGluZyB0aGUgbnVt
YmVyPw0KPj4+IFdlbGwsIGluIHRoZSBsYXRlciBzZXJpZXMgWzFdIHRoaXMgaXMgZGVmaW5lZCB2
aWEgUENJX1NMT1QofjApICsgMSBhbmQgdGhlcmUgaXMgbm8gZGVkaWNhdGVkDQo+Pj4gY29uc3Rh
bnQgZm9yIHRoYXQuIEkgY2FuIHVzZSB0aGUgc2FtZSBoZXJlLCBlLmcuIHMvMzIvUENJX1NMT1Qo
fjApICsgMQ0KPg0KPiBJIHdvdWxkIHByZWZlciBpZiB3ZSBpbnRyb2R1Y2UgYSBuZXcgY29uc3Rh
bnQgZm9yIHRoYXQuIFRoaXMgbWFrZXMgZWFzaWVyIHRvIHVwZGF0ZSB0aGUgY29kZSBpZiB3ZSBk
ZWNpZGUgdG8gaW5jcmVhc2UgdGhlIG51bWJlciBvZiB2aXJ0dWFsIGRldmljZXMuDQo+DQo+IEhv
d2V2ZXIsIEkgYW0gc3RpbGwgbm90IHN1cmUgaG93IHRoZSAnZWxzZScgcGFydCBpcyByZWxhdGVk
IHRvIHRoaXMgY29tbWl0LiBDYW4geW91IHBsZWFzZSBjbGFyaWZ5IGl0Pw0KV2VsbCwgeWVzLCB0
aGlzIGlzIHRvbyBlYXJseSBmb3IgdGhpcyBwYXRjaCB0byBpbnRyb2R1Y2Ugc29tZSBmdXR1cmUg
a25vd2xlZGdlLCBzbyBJJ2xsIGluc3RlYWQgaGF2ZToNCg0KdW5zaWduZWQgaW50IGRvbWFpbl92
cGNpX2dldF9udW1fbW1pb19oYW5kbGVycyhzdHJ1Y3QgZG9tYWluICpkKQ0Kew0KIMKgwqDCoCBp
ZiAoICFoYXNfdnBjaShkKSApDQogwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7DQoNCiDCoMKgwqAg
aWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KIMKgwqDCoCB7DQogwqDCoMKgwqDCoMKgwqAg
aW50IHJldCA9IHBjaV9ob3N0X2l0ZXJhdGVfYnJpZGdlc19hbmRfY291bnQoZCwgdnBjaV9nZXRf
bnVtX2hhbmRsZXJzX2NiKTsNCg0KIMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQgPCAwID8gMCA6
IHJldDsNCiDCoMKgwqAgfQ0KDQogwqDCoMKgIC8qDQogwqDCoMKgwqAgKiBUaGlzIGlzIGEgZ3Vl
c3QgZG9tYWluOg0KIMKgwqDCoMKgICoNCiDCoMKgwqDCoCAqIDEgZm9yIGEgc2luZ2xlIGVtdWxh
dGVkIGhvc3QgYnJpZGdlJ3MgY29uZmlndXJhdGlvbiBzcGFjZS4NCiDCoMKgwqDCoCAqLw0KIMKg
wqDCoCByZXR1cm4gMTsNCn0NCg0KPg0KPiBDaGVlcnMsDQo+DQpUaGFuayB5b3UsDQpPbGVrc2Fu
ZHI=


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 07:23:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 07:23:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229141.396566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQ9L-0000sC-1n; Tue, 23 Nov 2021 07:23:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229141.396566; Tue, 23 Nov 2021 07:23:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQ9K-0000s5-Ud; Tue, 23 Nov 2021 07:23:30 +0000
Received: by outflank-mailman (input) for mailman id 229141;
 Tue, 23 Nov 2021 07:23:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRmA=QK=epam.com=prvs=19611c0f38=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpQ9J-0000rz-Fe
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 07:23:29 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f99e096-4c2e-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 08:23:27 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AN7EnN7028610;
 Tue, 23 Nov 2021 07:23:24 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2171.outbound.protection.outlook.com [104.47.17.171])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cguqyr0p0-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 23 Nov 2021 07:23:24 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM4PR0301MB2195.eurprd03.prod.outlook.com (2603:10a6:200:4f::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Tue, 23 Nov
 2021 07:23:19 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 07:23:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f99e096-4c2e-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GcWM2bvzMpY6fxiJh8ZfrDk7xhMfoYznwr48fTMhG3qNYoeJXYuC9lqb1NJiRZPZjhehru6G/HSY0ZjpxvXDT756PAyntLHMJ0w6a762dqhCi7EJxHfCyo4nCoqE9Rt8moeaYxfzubr3nO65y3MYDNl5wtp8YMcIzqyy5ZkKF3QezuIHTn8ZWa5qYElRI02CczuTRvS9yX4LSAKR2UyANyIUByxZLPEhLfRbcZGHfIIKb2DvSfF9vSqSTdCXsTvjqq6Ka2jWXRl1g0/67+mefJCQc+VKTfC+XFVE5/digpTdxWAmAr8gZ0vvnRs/nFtpD/wx3NUfyseAV6Od9TnTkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jWY0T8YJLb5TaLXTMpgWUV9nQsdlu/zO0J/UCvWb+EM=;
 b=Lun4tf7LZ20EwyVBS9Pm9EDoDm9WUpIyXR7mUf7Mowb6OKR/b3WHAMt7WxOQXm2JmGHbI+dl1JCmmcjWnUhWmF0Q8TV9dzhVik3CFNQMyAGY9eGi/IwA8RpE634H1msMaxNh7BPBmcyMyDUZm45c1s6kgQbK0E6ygBn25nlS8sA0uMsNHyCrkGrXhI+yyhEZFEN0xx3BkOfP/nWx4ppdTJUQ8fLyXa7KNNSz+euI/kcKLd570ah+QOpJ0mksT9XNWY1PQmZZ49O+u5aEV62i2nXjLj3dJcSpBLybRtejBFAN7CwwoQlUDE9SCEYvz/tNSE3XRVz+/7QR9y7h+3NJFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jWY0T8YJLb5TaLXTMpgWUV9nQsdlu/zO0J/UCvWb+EM=;
 b=dcs7TLmAAXQgx12gOdtwFVtiOAPPPttVcUErMYbRtUqGqCWFMzi2M6wev9Yx0tehg+upHyU5OKUnrCQ4CzsZJJpya9xWWGC4LiT4/2w+TBfEpe2LZvBt7X0YxiVec9VaFZR+d4CMETKxkopxdVdng2u0nF+DwsNGjyC3XyHZdC60ATTVej2bLyGss5p4beoeAXhinUZNHnwNOzH5fYo8qHA2jKHEPuVDj+E0lxz4seLGNAZNtXCEjvMtwiGhj+FgxD690YojiSNJt8l15Aqlne/BrAeF55I4d5473Sk6NB/Qy33PQJnNxj+hhBzMzxClr+7Vcq2jph9gJzdVSGJBbg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 5/7] xen/arm: do not map IRQs and memory for disabled
 devices
Thread-Topic: [PATCH v6 5/7] xen/arm: do not map IRQs and memory for disabled
 devices
Thread-Index: AQHX0g8TzX0nJtcMKUqFWH5LUHUR4awGmpkAgAJVCwCABxtVgIAAxuEA
Date: Tue, 23 Nov 2021 07:23:19 +0000
Message-ID: <0a200067-d6e6-9c55-aa29-8702da6510b3@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-6-andr2000@gmail.com>
 <997e2ad5-9b52-73b4-a02d-f255480684d9@xen.org>
 <ffaabc83-9ca7-1f41-23a9-bf2a1e3828ca@epam.com>
 <85923001-363c-277f-ead2-026cea88577c@xen.org>
In-Reply-To: <85923001-363c-277f-ead2-026cea88577c@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 87aa7fc9-4b13-473d-4308-08d9ae521ff7
x-ms-traffictypediagnostic: AM4PR0301MB2195:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM4PR0301MB21959E0EFDB81A0C5924CF31E7609@AM4PR0301MB2195.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 K0Jf+n1CbgVP++wj/SiSjr6GV1jjmsC9d5AOeTlvbz+qxqxyiHenEjg1NYIeBHrZ6IB9BNCgWFmB5pWo9Y/xV4XSTtcV1w3/Csz4tFi3OzvhFBNV3782jYxnvU9jfhwPrr3qe9/Vx52udbQ7j06gw0mILsP5nwiZFY/zW/0VfmG/cZuLlqz4jMHjWFYCUQWPxMZwrRCArEBTHQVRFU8bZCCHKqwIEd0Jbix5DfpCpj8JzicF0W7+j7ft4xlw88Is/9CcQr5c0/2NXRG42qSNiMNNcGzRCCrNn3hnlqE8qpJrpXwDYspaPK91xOFhMfe7jtHb6RDG/TfyfEVL3laUiOz0vxACmm0vt3t7d/Q4IQZpnCZoHbZGrAMZsnkudenJkcCEaS77Zp8jHDj0WhIuFbyK845p+KdAz0m9TjMPTj9kic92neyw7yC3XVdZyjg+5Lype/Mf46vqA4PevBXn4uCI/C0Q6QPph/lWpehZlf3pU58XaT4lXC91uajvWliTsOAHANw5OhrJk5I3IDlRL29JpVMQyHc5yPWXdcBfrKaFnEC7B7KlO9a4HcIkYDitQ4Cz0tACDuP/kPu+7RBqiV4AyqkESkrrWAwEYpL34roTdf7qOc8XzIpfDtPTdekVgjuXK1ggu6V+bbE5fluRTUB9dYQtmVMpgAzeuB9GQyp1RI0ce2MKr4XctBwK+IybzMjFNY307lLXhT0LGCS0fPxwznnVy/E2qBCLgXX4r65+PXqDtv/LDpPFgcZ0EEMoVsKEmb7jMEaW6dhoJ4dUPqro/qV4DtgbPy7OcCZIMrbazgzviBnHf+bpFBDECKRCVX64ZnO1AK12niNYXdzkWJEzVdfafjE36/gfVrjGU/0=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(26005)(4326008)(36756003)(186003)(508600001)(66446008)(38070700005)(53546011)(8936002)(83380400001)(7416002)(107886003)(2616005)(6486002)(6506007)(8676002)(6512007)(31686004)(2906002)(122000001)(54906003)(316002)(110136005)(71200400001)(86362001)(31696002)(38100700002)(966005)(66476007)(66556008)(66946007)(64756008)(76116006)(91956017)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?cUFMcmJiM2k3TjIrdDFoNEcwL0J1VHRCSUdyL1Rya3JwV3o4b0hOWlpXd1lQ?=
 =?utf-8?B?Y3lmVnkwVkEwdVdjbWJhSksrMFJUODkyVE81NDBCRVRzVFpYNXZpWTVlR2NY?=
 =?utf-8?B?Zk15T2VXVXBMaTdNeVV2dm9wSnloQTRNdStPV0pUQW8vWHFHNWVWWnRnMk9u?=
 =?utf-8?B?SFB5eWZiYitBSmFJanJzOU44UWk4WUtTVk5tU2N2eUxrK29JblZhRkc1c3dG?=
 =?utf-8?B?dTl2TlM4NE1oMFJpbFFxNjA1NVhEUTVSR0VEVnRVajB3RVhtQkRrUGZ0RzBI?=
 =?utf-8?B?ZkovQXM2U2ZyZUo3WFBmdll2NGtKU2JQQlh5SURLREFuT0IvdDJ3ZzJCTWRt?=
 =?utf-8?B?cjRDelBidlpFTTJ4M0xDTG9kbXNqeC9rb2tqUk1BdTVMTXhlajZnYU0yMWlu?=
 =?utf-8?B?QUNyMVBKK0dIY3pGRmlLY2wrQTh0RWgyRWUvanFmK0loSjlmNHNyT0xrUElv?=
 =?utf-8?B?bmFlTm9nYWk5ZkxBNUFkNGFvRHB3dFNLV045WU4xZ3FBbmh6eHUySHg4NGxy?=
 =?utf-8?B?L1djZUdKYTBrSDVaK2tlblU2QTNrNmF1QXppeVVZblFjMzg3M3U1alJoTzNF?=
 =?utf-8?B?NmVYeVgxRHJCckoxdVpBb2U1SVdSK2JBbnUzL0hQMmx5NnJEc1gzZGFBc1RW?=
 =?utf-8?B?dXdnNzVpaEd6OWFtdDVza0VUeDRYYnJPbUZjdzh6NG5rb0REQUZFYTRTVWhy?=
 =?utf-8?B?QWJWVUVVSmFWcjFWYkVDZzFHajl4S3JhTG5yZ1VKVGI0dlF3dnVScVNCak1j?=
 =?utf-8?B?UmFMQUJYWkdYMGxadVhEclNuMzArbUZZcVM0Qm9GR1ZJTEFTSVQyakJMWUdY?=
 =?utf-8?B?K1dTRHVlY2xDb3ZUVlFFNHhPNVZMVDJRMmRZNXNyYnBxbGY1UjRqNmh0MEZE?=
 =?utf-8?B?cC84ZXhIcEJidmRncTdVSlRsOGhxKzJjMXAzdTBrMnpHVTNrNmoyZzdtak1X?=
 =?utf-8?B?WDU4ck15UTdPWHY5NUJTTDl1cTNDSmxEb3hBKzdXWmQ2cURzdGtaRVRaaUZl?=
 =?utf-8?B?VnpLTnpuSUtMVlZsQzg2QXZvNkJHekZzY3dHNGRPOWt0S0NLeTRJZVI2ZzM3?=
 =?utf-8?B?eHUwMXJvSFYyYWo4YVJKTENEOGJIaHQ1cVBsUTUwUkoyUFBCWEY5alJNQ3E3?=
 =?utf-8?B?VUduYlR1cTF3dVIvTjFHN21VRkovbDI3Yk1PMHJCQzBUZmRjQ1dzSTJtTFV3?=
 =?utf-8?B?cXRzMDBtbTFWNTBsVEFvRlIzb2NuSVg2QkdXTVJsL0p2T3ZKdUp2YlF3cUYv?=
 =?utf-8?B?UXd3cTNDZ0ZVd1FnZW9uRytOSmJER1F6S2cxdmRNcWlyeWJpdm5iZFNlOE5S?=
 =?utf-8?B?d3hma3FqWEhBUjhtOHlvaWpSMVBLUmR5TGxUMS9uV1pUaXl0dEsxWjZ6WUdL?=
 =?utf-8?B?SXFLcFhGRFp2TjN6VnpjMjJ1dmdWUGZCUDRSR0VYa0krMkR3dlhybE15dlFL?=
 =?utf-8?B?WTM0NzNnTG4xeTRrNFB1em1zYUZCcVB1cG5DdnpFV2dNMDZpZGk1M0RjZjY3?=
 =?utf-8?B?cVZIb0VaNzRZNXZZMXFOVXBhUVQyYzMybDBMcFdzYjcrNTFnMkJqdTdJOGJE?=
 =?utf-8?B?aS9uajU5VGE2VC9iY2JOTHZsa0F3Ykw1TWtRQmJ2Z2lweFBVZWxGbFZpMlJX?=
 =?utf-8?B?a0VBclBnaEpKUkdCdzI4S09vRE9KYThrQTl0Z3BBZ1NpZHk2VEFvY3grbWc1?=
 =?utf-8?B?RVYzN0FuVlRxbEtKME1mZm5zVzVOdTFQV3JadHNUZWJ5bWJpK3FsU1V0NGJx?=
 =?utf-8?B?Ykl6cEFGM1JjcjRZeW85UXQzWE8rVFRYblgvT1N1Sk43QjJJQnlydUhIL3Ra?=
 =?utf-8?B?QXFYTDFCNU5PRno5c3k1Z3JpeVJRTDRWRGVpM3hFa3FaVllVUkcyRmZsVXRx?=
 =?utf-8?B?ZC9VVXo3NmxtTnRHenJQSEladU94OG1pOTZtYlNXaWR2S1ZxcnRybUVBeGRP?=
 =?utf-8?B?Tk1PeHhGbTVvRTRZZzBVSXR0YWRBYzlDYXZBQlNZQytFT21nU0JaS2pMc3hQ?=
 =?utf-8?B?TDRqd0dwZWZ4Vmk2eG1UeWU1N3dsbkRINGMzTGRSbEJKL1hxZGZaNG9qNU1p?=
 =?utf-8?B?eURabU1JYm4vNnlGMk81M0p3RWFmVjRBcWsxeENldEVTd0d2WTEycEQ4dHdX?=
 =?utf-8?B?QUYwdlNYSWp0SElvU3V2WlplMTZ6RUVnbEhZVTdQSEh0TGVuaWdkTXdmdC84?=
 =?utf-8?B?ZXc5MVROZlFYY1lnQ1Q5L3BiZWFpNENFNGRldlJyR0dWVEtrYVgrRXZwcFg5?=
 =?utf-8?B?eDYwMTZ2UFpZdGdLOTlhaWM0RStZcWFiNGllWk41UmFRL3pIM2M5OUoycWM3?=
 =?utf-8?B?TEI5emsxMXZoU1NsNXhENC9VVGlSUHFMVWVGcEtjcVErR3pDd00wdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <24245CD72E249B428D8B85628BED78F6@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 87aa7fc9-4b13-473d-4308-08d9ae521ff7
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 07:23:19.4932
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: XM9lvbfvSPV+Dlqd38FzAPojP3+PtFzZdu7UqdTFovN87Uw0OJe/+5O+suxm/JRLHYRGdfAvIesj56r2KRxTidz8tJvL1VQOlm2gGGazVR0d57IuKDwSF7BxNgXGmLyY
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0301MB2195
X-Proofpoint-GUID: hqkOJnKU00ZY3O6otCwnpxaxu3E3yL5d
X-Proofpoint-ORIG-GUID: hqkOJnKU00ZY3O6otCwnpxaxu3E3yL5d
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-23_02,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015
 lowpriorityscore=0 adultscore=0 suspectscore=0 priorityscore=1501
 impostorscore=0 malwarescore=0 bulkscore=0 phishscore=0 spamscore=0
 mlxlogscore=879 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111230036

SGksIEp1bGllbiENCg0KT24gMjIuMTEuMjEgMjE6MzEsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRyLA0KPg0KPiBPbiAxOC8xMS8yMDIxIDA2OjU5LCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+IEhpLCBKdWxpZW4hDQo+Pg0KPj4gT24gMTYuMTEuMjEgMjE6MjIs
IEp1bGllbiBHcmFsbCB3cm90ZToNCj4+PiBIaSBPbGVrc2FuZHIsDQo+Pj4NCj4+PiBPbiAwNS8x
MS8yMDIxIDA2OjMzLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4gRnJvbTog
T2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29t
Pg0KPj4+Pg0KPj4+PiBDdXJyZW50bHkgWGVuIG1hcHMgYWxsIElSUXMgYW5kIG1lbW9yeSByYW5n
ZXMgZm9yIGFsbCBkZXZpY2VzIGV4Y2VwdA0KPj4+PiB0aG9zZSBtYXJrZWQgZm9yIHBhc3N0aHJv
dWdoLCBlLmcuIGl0IGRvZXNuJ3QgcGF5IGF0dGVudGlvbiB0byB0aGUNCj4+Pj4gInN0YXR1cyIg
cHJvcGVydHkgb2YgdGhlIG5vZGUuDQo+Pj4+DQo+Pj4+IEFjY29yZGluZyB0byB0aGUgZGV2aWNl
IHRyZWUgc3BlY2lmaWNhdGlvbiBbMV06DQo+Pj4+IMKgwqAgLSAib2theSLCoMKgwqDCoCBJbmRp
Y2F0ZXMgdGhlIGRldmljZSBpcyBvcGVyYXRpb25hbC4NCj4+Pj4gwqDCoCAtICJkaXNhYmxlZCIg
SW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBpcyBub3QgcHJlc2VudGx5IG9wZXJhdGlvbmFsLA0K
Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnV0IGl0IG1pZ2h0IGJlY29tZSBv
cGVyYXRpb25hbCBpbiB0aGUgZnV0dXJlIChmb3IgZXhhbXBsZSwNCj4+Pj4gwqDCoMKgwqDCoMKg
wqDCoMKgwqAgc29tZXRoaW5nIGlzIG5vdCBwbHVnZ2VkIGluLCBvciBzd2l0Y2hlZCBvZmYpLg0K
Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBSZWZlciB0byB0aGUgZGV2aWNlIGJpbmRpbmcgZm9y
IGRldGFpbHMgb24gd2hhdCBkaXNhYmxlZCBtZWFucw0KPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBmb3IgYSBnaXZlbiBkZXZpY2UuDQo+Pj4+DQo+Pj4+IFNvLCAiZGlzYWJsZWQiIHN0YXR1cyBp
cyBkZXZpY2UgZGVwZW5kZW50IGFuZCBtYXBwaW5nIHNob3VsZCBiZSB0YWtlbiBieQ0KPj4+PiBj
YXNlLWJ5LWNhc2UgYXBwcm9hY2ggd2l0aCB0aGF0IHJlc3BlY3QuIEFsdGhvdWdoIGluIGdlbmVy
YWwgWGVuIHNob3VsZCBtYXANCj4+Pj4gSVJRcyBhbmQgbWVtb3J5IHJhbmdlcyBhcyB0aGUgZGlz
YWJsZWQgZGV2aWNlcyBtaWdodCBiZWNvbWUgb3BlcmF0aW9uYWwNCj4+Pg0KPj4+IFJpZ2h0LCB0
aGlzIGNoYW5nZSBlZmZlY3RpdmVseSBwcmV2ZW50IGRvbTAgdG8gdXNlIHN1Y2ggZGV2aWNlIGlm
IGl0IGJlY29tZXMgb3BlcmF0aW9uYWwgaW4gdGhlIGZ1dHVyZS4NCj4+IE9yIGRvZXNuJ3QsIHNl
ZSBiZWxvdw0KPj4+IFNvIHRoaXMgc291bmRzIGxpa2UgYSBiaWcgcmVncmVzc2lvbi4NCj4+Pg0K
Pj4+IEhvdyBkbyB5b3UgcGxhbiB0byBoYW5kbGUgaXQ/DQo+PiBJdCBkZXBlbmRzIGlmIHRoaXMg
aXMgcmVhbGx5IGEgcmVncmVzc2lvbiBvciBpcyBvayBhbmQgImJ5IGRlc2lnbiINCj4NCj4gUXVv
dGluZyB3aGF0IHlvdSB3cm90ZSBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6DQo+DQo+ICJJbmRpY2F0
ZXMgdGhhdCB0aGUgZGV2aWNlIGlzIG5vdCBwcmVzZW50bHkgb3BlcmF0aW9uYWwsIGJ1dCBpdCBt
aWdodCBiZWNvbWUgb3BlcmF0aW9uYWwgaW4gdGhlIGZ1dHVyZS4iDQo+DQo+IEkgcmVhZCB0aGF0
IGFzIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRvIGhhdmUgYSBkZXZpY2UgdHVybiBvbiBhZnRlciBi
b290Lg0KPiBJbiBmYWN0LCBsb29raW5nIGF0IExpbnV4LCBJIGNhbiBzZWUgc29tZSBjb2RlIGFs
bG93aW5nIHRvIGNoYW5nZSB0aGUgc3RhdGUgb2YgYSBkZXZpY2UgYWZ0ZXIgYm9vdCAoc2VlIFs0
XSkuIFNvIEkgdGhpbmsgd2Ugd2FudCB0byBrZWVwIG1hcHBpbmcgdGhlIHJlZ2lvbnMgaW4gZG9t
MCBhdCBsZWFzdCBmb3Igc29tZSBkZXZpY2VzLg0KPg0KPiBOb3RlLCB0aGF0IG90aGVyIGJpdHMg
b2YgdGhlIERUIG92ZXJsYXkgd291bGQgbm90IHdvcmsuIFRoaXMgc2hvdWxkIGJlIGNvdmVyZWQg
YnkgdGhlIG5ldyBzZXJpZXMgZnJvbSBYaWxpbnggWzVdLg0KPg0KPj4+DQo+Pj4+IGl0DQo+Pj4+
IG1ha2VzIGl0IGltcG9zc2libGUgZm9yIHRoZSBvdGhlciBkZXZpY2VzLCB3aGljaCBhcmUgbm90
IG9wZXJhdGlvbmFsIGluDQo+Pj4+IGFueSBjYXNlLCB0byBza2lwIHRoZSBtYXBwaW5ncy4NCj4+
Pg0KPj4+IFlvdSB3cm90ZSAibWFrZXMgaXQgaW1wb3NzaWJsZSBmb3IgdGhlIG90aGVyIGRldmlj
ZXMiLCBidXQgaXQgaXMgbm90IGNsZWFyIHRvIG1lIHdoYXQncyB3b3VsZCBnbyB3cm9uZyB3aGVu
IHdlIG1hcCBhIGRpc2FibGVkIGRldmljZSAoRG9tMCBzaG91bGQgbm90IHRvdWNoIGl0KS4gRG8g
eW91IGhhdmUgYW4gZXhhbXBsZT8NCj4+IE9rLCBoZXJlIHdlIGdvLiBJbiB0aGUgU29DIEkgYW0g
d29ya2luZyB3aXRoIHRoZSBQQ0llIGNvbnRyb2xsZXIgbWF5IHJ1biBpbiB0d28gbW9kZXM6DQo+
PiBSb290IG9yIEVuZHBvaW50LiBOb3QgY29uZmlndXJhYmxlIGF0IHJ1bi10aW1lLCBzbyB5b3Ug
Y29uZmlndXJlIGl0IGluIHRoZSBkZXZpY2UgdHJlZS4NCj4+IFRoZSBhcmUgdHdvIGRldmljZSB0
cmVlIGVudHJpZXMgZm9yIHRoYXQ6IGZvciB0aGUgcm9vdCBbMV0gYW5kIGZvciB0aGUgZW5kcG9p
bnQgWzJdLg0KPj4gU28sIHdoZW4geW91IHdhbnQgdGhlIGNvbnRyb2xsZXIgdG8gYmUgYSBSb290
IENvbXBsZXggdGhlbiB5b3UgcHV0IHN0YXR1cyA9ICJkaXNhYmxlZCINCj4+IGZvciB0aGUgRW5k
cG9pbnQgZW50cnkgYW5kIHZpc2UgdmVyc2EuDQo+DQo+IFRoYW5rIGZvciB0aGUgZXhhbXBsZS4g
SSB0aGluayB0aGlzIGlzIHNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBleHBsYWluZWQgaW4gdGhl
IGNvbW1pdCBtZXNzYWdlLg0KPg0KPj4NCj4+IElmIHlvdSB0YWtlIGEgbG9vayBhdCB0aGUgbm9k
ZXMgdGhleSBib3RoIGRlZmluZSB0aGUgc2FtZSAicmVnIiBhbmQgImludGVycnVwdHMiLA0KPj4g
ZWZmZWN0aXZlbHkgbWFraW5nIGl0IGltcG9zc2libGUgZm9yIG1lIGluIHRoZSBwYXRjaCBbM10g
dG8gYWN0dWFsbHkgdHJhcCBNTUlPczogPiB3ZSBza2lwIHRoZSBtYXBwaW5ncyBmb3IgWzFdIGFu
ZCB0aGVuLCBiZWNhdXNlIHdlIGFzc3VtZSAiZGlzYWJsZWQiIGlzDQo+PiBzdGlsbCB2YWxpZCBm
b3IgbWFwcGluZ3MsIHdlIGFkZCB0aG9zZSBmb3IgWzJdLg0KPg0KPiBUZWNobmljYWxseSwgeW91
IHdvdWxkIGhhdmUgdGhlIHNhbWUgaXNzdWVzIGlmIHlvdXIgZGV2aWNlIGlzIHNoYXJpbmcgdGhl
IGludGVycnVwdCBvciB0aGUgTU1JTyBwYWdlLg0KPg0KPiBUaGUgZm9ybWVyIGlzIGZhaXJseSBj
b21tb24sIGJ1dCBJSVVDIHlvdSBhcmUgbm90IGVtdWxhdGVkIHRoZSBpbnRlcnJ1cHRzLiBSaWdo
dD8NCj4NCj4gRm9yIHRoZSBsYXR0ZXIsIEkgaGF2ZSBzZWVuIG11bHRpcGxlIFVBUlRzIGluIHRo
ZSBzYW1lIHBhZ2UgKGUuZy4gcGluZTY0KSBidXQgbm90IG11bHRpcGxlIFBDSSBob3N0YnJpZGdl
cy4gSG93ZXZlciwgdGhpcyBpcyBvbmx5IHdpdGggNEtCIHBhZ2UgZ3JhbnVsYXJpdHkuIFdlIG1h
eSBoYXZlIHRoZSBpc3N1ZSBhcmlzaW5nIHdpdGggMTZLQi82NEtCIG9uZXMuIFNvIEkgd291bGQg
c2F5IHdlIGNvdWxkIGlnbm9yZSBpdCBmb3Igbm93Lg0KPg0KPj4NCj4+IFNvLCB0aGlzIGlzIHBy
b2JhYmx5IHdoeSBkZXZpY2UgdHJlZSBkb2N1bWVudGF0aW9uIHNheXMgYWJvdXQgdGhlIGRpc2Fi
bGVkIHN0YXR1cw0KPj4gdG8gYmUgZGV2aWNlIHNwZWNpZmljLg0KPg0KPiBDb3JyZWN0LiBUaGF0
IHNhaWQsIHVudGlsIG5vdywgYWxsIHRoZSBkZXZpY2VzIHdvdWxkIGhhdmUgdGhlaXIgTU1JT3Ny
ZWdpb25zIG1hcHBlZCB0byBkb20wLiBTbyB0aGUgaW50ZXJwcmV0YXRpb24gb2YgImRpc2FibGVk
IiBkaWRuJ3QgbWF0dGVyIHRvbyBtdWNoLg0KPg0KPj4NCj4+IEhvcGUgdGhpcyBkZXNjcmliZXMg
YSB2ZXJ5IHZhbGlkIHVzZS1jYXNlLiBBdCB0aGUgc2FtZSB0aW1lIHlvdSBtYXkgYXJndWUgdGhh
dA0KPj4gSSBqdXN0IG5lZWQgdG8gcmVtb3ZlIHRoZSBvZmZlbmRpbmcgZW50cnkgZnJvbSB0aGUg
ZGV2aWNlIHRyZWUgd2hpY2ggbWF5IGFsc28gYmUNCj4+IHZhbGlkLg0KPg0KPiBXZSBuZWVkIHRv
IGJlIGFibGUgdG8gYWNjZXB0IGFueSAqdmFsaWQqIERldmljZS1UcmVlIHdpdGhvdXQgYW55IG1v
ZGlmaWNhdGlvbi4gQXQgdGhlIHNhbWUgdGltZSwgd2Ugd2FudCB0byBhdm9pZCBicmVhayBwb3Rl
bnRpYWwgZXhpc3RpbmcgdXNlLWNhc2VzLg0KPg0KPiBJIHRoaW5rLCB5b3UgY2FuIGhhbmRsZSB0
aGUgdHdvIGdyYWNlZnVsbHkgYnkgYWRkaW5nIGEgZWxzZSBpbiBwY2lfaG9zdF9icmlkZ2VfbWFw
cGluZ3MoKSB0aGF0IHdvdWxkIHJlbW92ZSB0aGUgUDJNIG1hcHBpbmcgaWYgYnJpZGdlLT5vcHMt
Pm5lZWRfcDJtX2h3ZG9tX21hcHBpbmcoKSByZXR1cm5zIGZhbHNlLg0KPg0KPiBUaGlzIGlzIG5v
dCBwcmV0dHkgYnV0IGl0IHNob3VsZCBkbyB0aGUgam9iIGZvciBub3cuIExvbmcgcnVuLCBJIHRo
aW5rIHdlIHNob3VsZCBjb25zaWRlciB0byBjcmVhdGUgZmFrZSBlbnRyaWVzIGluIHRoZSBQMk0g
Zm9yIGVtdWxhdGVkIHJlZ2lvbnMuDQo+DQo+IFRoZSBhZHZhbnRhZ2UgaXMgd2UgY291bGQgZWFz
aWx5IGZpbmQgY2xhc2ggYW5kIHVzZSB0aGVtIHRvIGlnbm9yZSBtYXBwaW5nIHdoZW4gdGhlIHJl
Z2lvbiBpcyBlbXVsYXRlZC4NCkkgdGhpbmsgSSB3aWxsIGRyb3AgdGhpcyBwYXRjaCBmcm9tIHRo
ZSBzZXJpZXMgZm9yIG5vdzogYWx0aG91Z2ggaXQgaXMgZ29vZCB0byBoYXZlIHRoZSBkZXZpY2Ug
dHJlZQ0KdW5tb2RpZmllZCBJIHN0aWxsIHNlZSBpdCB3YXkgZWFzaWVyIHRvIGRvIHNvLiBJIHdp
bGwgZGVsZXRlIHRoZSBub2RlIGZyb20gdGhlIGRldmljZSB0cmVlIGFzIGluIG15DQpjYXNlIGl0
IGlzIGFueXdheXMgZGVjaWRlZCBhdCBjb21waWxlIHRpbWUgd2hpY2ggZnVuY3Rpb24gdGhlIFBD
SSBob3N0IGJyaWRnZSBpcyBhYm91dCB0byBiZS4NCklmIG5lZWQgYmUgSSdsbCByZS1pbnRyb2R1
Y2UgdGhpcyBwYXRjaCBpbiBzb21lIG90aGVyIGZvcm0uDQoNClRoYW5rIHlvdSwNCk9sZWtzYW5k
cg0KPg0KPiBDaGVlcnMsDQo+DQo+Pj4NCj4+PiBDaGVlcnMsDQo+Pj4NCj4+IFRoYW5rIHlvdSwN
Cj4+IE9sZWtzYW5kcg0KPj4NCj4+IFsxXSBodHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0
cHM6Ly9naXRodWIuY29tL3JlbmVzYXMtcmNhci9saW51eC1ic3AvYmxvYi92NS4xMC40MS9yY2Fy
LTUuMS4zLnJjNi9hcmNoL2FybTY0L2Jvb3QvZHRzL3JlbmVzYXMvcjhhNzc5ZjAuZHRzaSpMODQz
X187SXchIUdGXzI5ZGJjUUlVQlBBIWxlZExTREFYaTZnZ1Bsb29zLVd6MGZXUk0zSWxTa0pWWC1I
NFFyVEJTTTlybFd2Q0l0UTREOGh6TEtIZTdmQnRvVU9uSkRtTW9RJCBbZ2l0aHViWy5dY29tXQ0K
Pj4gWzJdIGh0dHBzOi8vdXJsZGVmZW5zZS5jb20vdjMvX19odHRwczovL2dpdGh1Yi5jb20vcmVu
ZXNhcy1yY2FyL2xpbnV4LWJzcC9ibG9iL3Y1LjEwLjQxL3JjYXItNS4xLjMucmM2L2FyY2gvYXJt
NjQvYm9vdC9kdHMvcmVuZXNhcy9yOGE3NzlmMC5kdHNpKkw4OTZfXztJdyEhR0ZfMjlkYmNRSVVC
UEEhbGVkTFNEQVhpNmdnUGxvb3MtV3owZldSTTNJbFNrSlZYLUg0UXJUQlNNOXJsV3ZDSXRRNEQ4
aHpMS0hlN2ZCdG9VUEc4dTJuZ1EkIFtnaXRodWJbLl1jb21dDQo+PiBbM10gaHR0cHM6Ly91cmxk
ZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC94ZW4t
ZGV2ZWwvcGF0Y2gvMjAyMTExMDUwNjMzMjYuOTM5ODQzLTUtYW5kcjIwMDBAZ21haWwuY29tL19f
OyEhR0ZfMjlkYmNRSVVCUEEhbGVkTFNEQVhpNmdnUGxvb3MtV3owZldSTTNJbFNrSlZYLUg0UXJU
QlNNOXJsV3ZDSXRRNEQ4aHpMS0hlN2ZCdG9VUFU3OUV0YUEkIFtwYXRjaHdvcmtbLl1rZXJuZWxb
Ll1vcmddDQo+DQo+IFs0XSBodHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly9naXQu
a2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0L3Ry
ZWUvZHJpdmVycy9vZi9keW5hbWljLmMqbjExMV9fO0l3ISFHRl8yOWRiY1FJVUJQQSFsZWRMU0RB
WGk2Z2dQbG9vcy1XejBmV1JNM0lsU2tKVlgtSDRRclRCU005cmxXdkNJdFE0RDhoekxLSGU3ZkJ0
b1VQUmcxelVVdyQgW2dpdFsuXWtlcm5lbFsuXW9yZ10NCj4gWzVdIGh0dHBzOi8vdXJsZGVmZW5z
ZS5jb20vdjMvX19odHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMTYzNjQ0MTM0Ny0x
MzM4NTAtMS1naXQtc2VuZC1lbWFpbC1mbnUudmlrcmFtQHhpbGlueC5jb20vX187ISFHRl8yOWRi
Y1FJVUJQQSFsZWRMU0RBWGk2Z2dQbG9vcy1XejBmV1JNM0lsU2tKVlgtSDRRclRCU005cmxXdkNJ
dFE0RDhoekxLSGU3ZkJ0b1VNZmdzMHNkQSQgW2xvcmVbLl1rZXJuZWxbLl1vcmddDQo+DQo+DQo+
Pg0KPg0K


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 07:39:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 07:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229147.396577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQOM-0002Pr-Bh; Tue, 23 Nov 2021 07:39:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229147.396577; Tue, 23 Nov 2021 07:39:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQOM-0002Pk-7g; Tue, 23 Nov 2021 07:39:02 +0000
Received: by outflank-mailman (input) for mailman id 229147;
 Tue, 23 Nov 2021 07:39:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dRhM=QK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpQOK-0002Pe-4e
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 07:39:00 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b4c4934-4c30-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 08:38:58 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2055.outbound.protection.outlook.com [104.47.0.55]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-38-Dp1IG8TYNT-_9QSyZeQf6A-1; Tue, 23 Nov 2021 08:38:57 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3296.eurprd04.prod.outlook.com (2603:10a6:802:7::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 07:38:54 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 07:38:54 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0097.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Tue, 23 Nov 2021 07:38:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b4c4934-4c30-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637653138;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=HHnV7MU7uIYAtUCZ4oASC2bkm3izyOi9lC5heFtHsEA=;
	b=f6JeEvi406lIQGCEt2CHbDmKtb+wux1I1qPUHcUhz9cl2V4fq0AdkmfYSdclVbuAdURFNc
	90PQZr5hHSAfxSCYBfPbmRUvHdeFNU0qzoUVXi0pWwmr/rCtGOoUrqCA96Ow5CFUCM0PfL
	ORHCK0H5msUvSvDJUCVo6IqT5iCK/gQ=
X-MC-Unique: Dp1IG8TYNT-_9QSyZeQf6A-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dTiXVKnRgBYetc3WFQkI5PhJM6tSksZRMXYJ96eyayvL3Yg8Vfdo65F1OTQGNBoovwqcydFFqQ79Jig+//P4Ro5wclDoV5MaeESoorMD5xjC14EpU/5YLY2l3q7iLMPN3aI6UNCqH1HW/+gXz1/8Vaza1/bi8ZsEPzlQ0b5WdQTVw7MWV9L9NxhOICrrsLWF7kBvn3B1DEDtHJ9OGsd6h1221dcHDw+/LWxaqi4bYldJgpwng1mZFuVOrJC+hf4dTVXZLY2TvEjLoqnbpjCN5EORBrbk45IkSlaNTynpBQBBTv0XuOdXcQVrGJlRXxgq/+gKjrCgXQiKPK3jR9JERw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HHnV7MU7uIYAtUCZ4oASC2bkm3izyOi9lC5heFtHsEA=;
 b=c2grFKi7e3GZPNaGt78Na+weQwZzuJhmm9YD85oRrrzdvxbpBHUZWA2DPi5WGKfG6O7LUV6OjpRtDJtaHe+6jlZ1drqLWOuN+9WzLiqtuWY5uuTvOiw29Qj4E2gQQdpG+no8yEsO3t4XfGUsgJzSur66mINHuhy/G1qByYWt5Bdes9MwPTKLf/N7/IzODdjWRl0JuD5i2ECKAWiQGtEEBJH5AgD9n7qF0FV9MSM7MacT8sfGS9ANYu/Fs0X3a/hK51zkK4pvn+udnACEs7oQhTa/40uH/JnR99FWyG5Z4JaWZ0Vq2VC8iBnlZ0Hmtgk92HYxiiThgtxfyICDrRWogw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d6b298a2-bc04-8845-eaea-09502e32dcf1@suse.com>
Date: Tue, 23 Nov 2021 08:38:56 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/2] rangeset: add RANGESETF_no_print flag
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: roger.pau@citrix.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211122092825.2502306-1-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211122092825.2502306-1-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0097.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:86::38) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9d03a67c-ea23-4737-4dc2-08d9ae544d0a
X-MS-TrafficTypeDiagnostic: VI1PR04MB3296:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3296371B7ABCC919F6CC917AB3609@VI1PR04MB3296.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	oMal6FPGg2JeTe5tCixJ3kFOjgk/WT00upNsH9T0UsBlWHyDS8H9uCEjLnngrdlyGyEYLqP6+I5l4Jr4ZwDWh7C5P9EoMqDYsRrKfisKp9+5VKGaBAVTy34Enl3AvIMY4ioci0w/zEmNrEnv07VisApf1tk5i6pauDyRjGPTR/iFD8kLApY7pM4L+ITdpmkJ+MupvNVz6kqSQ08K6OQIePIx6ZcCup8woc6J49WBVOAbcLIffml39rCwfuPSjAxIghvWrsQpeWl+ANb3Hj491IDa6jqt4elLGcNPv2TSn9JNoRFesgpKlzciR/gf+tH9Z5g0PrRqx+y72v+t1t8dBT19OszD9xVdu8Pn8zS7i8vcJ75n+QUamcQIq01G6Nbbe27e2cgvWyMjgjpfF0mWacBfQNltKOawVG6kxtHPP0HTetgE5Fk95l2mAs9tcJlLpSJm4CUPh9zq1PpBk37zp/LnEplf0QzQ1SOayIF8No7ErilivPeVe4HbHBBGIqdzIrUQ41VzuZKMoxX10ceHAj/mTLJlXn+AAWmfcUomsw93ipwBYebEgO6TFYKkFLdo0KSsAKr2GklbhtcEWtTHySH7EFM822FzrVWCBBuf5jgED/4oAroA1U9oIeUip1FzAtN8Ltb0+Mi1NGPFywAttoSXvSiTNn8bjhGa7UXOpy9K6nmWzqHtIqIxbBHS/PnBZn01Xf48A8TM3Y9xMTw3ApdI9CokUW8P3r8S3IRxMGA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(86362001)(66476007)(31696002)(66556008)(6486002)(66946007)(16576012)(83380400001)(2906002)(2616005)(956004)(4744005)(316002)(6916009)(4326008)(8936002)(508600001)(186003)(5660300002)(31686004)(38100700002)(26005)(8676002)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z05Ha1NhakJub3l6dTkydG1SRy9ZbGpCVXVwWldhUnM5Mm9CRXFTYlBMaEtl?=
 =?utf-8?B?aVBCbTRVRFJvaWZqR3JXcTdoVk1vSXVKTm9IRHdZKy95Z21oRE5vMkZGL1or?=
 =?utf-8?B?cVhxQkRnNkZEeDJjUjIvdWtFc3I0QjJmYjAxOWQzUGhOTWVMVmFrYkdDZTVa?=
 =?utf-8?B?SldzZW13TFBGNHVPTzgyTCtWRHBkcVVYQXVWeENaYjUxeDdFMVpMenZtQURo?=
 =?utf-8?B?MkNEZ3ZBUXc3VG1XNjQzd2NhYy9GSmErSWthSnlUU3BsMXhiMkNreWNuR05m?=
 =?utf-8?B?MGR5T2ZJZFB0bzk1c1dRMGdLaFNEMkhtdkFSbTIvdGd0TXhLMkNqRXA3RktK?=
 =?utf-8?B?UmgxWkxVRU43eHFDVkxlY3hteWVkN21zYWpmR2xqVmdsOFJvNEJYWGdVRXg0?=
 =?utf-8?B?UThtQXd4aFpmaU1udFpEN2wzR21hWnYrOVBGOUxvL1VEYkxkNXN5RVJpSHd0?=
 =?utf-8?B?WUgyczFMNUkwSmE3WXJaMEtGdUFGcm43LzI2MnpPSS8yTW5WZndWZkh4bFE0?=
 =?utf-8?B?dHRRQXRNUWQ1SkxTdkJWZC9LOEJwcEZZNkhWYVd3ZXJEdkhyUWZYUTJCeXZB?=
 =?utf-8?B?dG1GRHh1c2Z6UEk4RXhhTjdSMlF2TEM3aG5GdEs0SVZ0SHllSUdYenN5djNP?=
 =?utf-8?B?RE1ETEFKVnVlczk5TXFqZmZadEwyamRuMkhqNU4xb010bllsR29mTFR2Yitl?=
 =?utf-8?B?MDhUbnZLbEVBck9yNlNnS1gvUTkzTnhHcWpDVFNLY0owc2NnU1B3TGlXeDRY?=
 =?utf-8?B?dE4vRGtwM2EzK2p0S1l2ZU5RQUpiMWZLU1FVZTRMWDEwYXhrNG1DRC9hOEVv?=
 =?utf-8?B?eGY5czdIdTNkTHFDSmQwUmNLUGFoOWExd09taTZkMG0xWEM0Y2xSRDdnMjND?=
 =?utf-8?B?Ti9uUHVqS2ZCWmsza3FxUHFzRFJtby9mY2ZYT0xzZzFxek5uWlNyQ1d6VTkr?=
 =?utf-8?B?bXZHOU94VFpPN2xVVWthU0VwWEh5b1lyUm95K0trTmoyZzJtNlJCYlVZcEx3?=
 =?utf-8?B?Y1Q1QmtuKzJZMTBEbVMxSjY4WGs2T3IrRWJKV3JEMmVkOUhBUHVrMTIrMlNu?=
 =?utf-8?B?a0ZBUzV1S0YwOXFqc014Z1diM2hyN20zOEl6TjZmc2V5eHRmUkc5aXJBd3M1?=
 =?utf-8?B?S1NrTHpEUVU2VkI1MmVkbTlENi9HcnphU1dIQ2FDUnZ1L3g2YnQ3SGVoU0dX?=
 =?utf-8?B?bWhRRUhsTGNQSVRGRUllYlJqZ0o0WjZLUjN1U1RqWVFMUDZlbzRCLzM4Nnhp?=
 =?utf-8?B?a1VjVndmTHQ2VnRMRUJhTTNhVVMrNDBWWml3RnQ0ckx4UkRFd1FKeEZ1c3hZ?=
 =?utf-8?B?SzlGZjNCa296UkpZanhWaE1seEpxbnhjQUFpYzdTajRQeFhoeUpXSE43eHpn?=
 =?utf-8?B?bDlaOE9tL0hvTldtRk92WDc5WHJubHBzZGs4Syt3bzNTUDBGbXBJdmlJN25l?=
 =?utf-8?B?RUdEWmFMU2lSMVoxaXc5dXBURHBKTXIwVFg4RTBML2ZpQkw3ckhKNktzendj?=
 =?utf-8?B?aldpV3RwR0QyUDJxdk81NlE5Vkp0MWUydXhSVDBtUEtSWnBOWEordUpvQXJw?=
 =?utf-8?B?L3dQblNWWWdPR1VuazAwZm9qL1JueitNMVpCellGVDFHM2o0TzdDeThxY0pu?=
 =?utf-8?B?YWhBK1pzOXdKQ0syc2ZkM3l3SDVEUHU0am5OMm1WM0NPV1VrTEtnR2NGKzNu?=
 =?utf-8?B?Rmg2VFVLdzBwR3N5WEg0VEdLelErcXNOQjZnQUNKRVF1bWlocVBYUjNlRjNm?=
 =?utf-8?B?ZkxLY0xQUkMvNVRuUHFsSXp4SWErRlhTM1hTS3VRbGJyOXZrUnByalVXc3JV?=
 =?utf-8?B?M0MvM1pnT0UrLzJtRWg5YXo4ZlJFZjVJTmt5cURtVTBqalJSRWdEWmQxQktr?=
 =?utf-8?B?Tk95OE12V1RTNDVFSVQ0YTR0MkowaXV3elBQdGJnbURkcmxIeWpUNVNIdEpl?=
 =?utf-8?B?WkcwanYyYWJSUTRpM1RrbzlhUlBhSHlJTm44OHdPMzlWVzZ0eXpFYmZhQkJr?=
 =?utf-8?B?NUo2cHBXNDVXY1gzb1JINi9EUmFNeEZ5WHM1b2NOQnU4YTgyN1pZOTZ4cEN4?=
 =?utf-8?B?czJWTnNrMThQU1E3ZE9FeHlLUHFmQXpjY2c5b0Z3QUxiMURxNkg4UHJkVUQ0?=
 =?utf-8?B?Q3duaFREZThxY3dBazc4OHpZaFk5NzB5OHdLK2JKaHZMRnpYZURBdGhUajMw?=
 =?utf-8?Q?0hJz7sCPzksFSawlHPLf6N4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d03a67c-ea23-4737-4dc2-08d9ae544d0a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 07:38:54.4121
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uoNsJVVoY5j6JgBpJDkaJwb2YNrwRD96e7Go5CC7pY6yUpIb0VhBHInwzdZpVs6hWXxKN1qYLavGHh1yG1zTJA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3296

On 22.11.2021 10:28, Oleksandr Andrushchenko wrote:
> --- a/xen/include/xen/rangeset.h
> +++ b/xen/include/xen/rangeset.h
> @@ -51,6 +51,9 @@ void rangeset_limit(
>   /* Pretty-print range limits in hexadecimal. */
>  #define _RANGESETF_prettyprint_hex 0
>  #define RANGESETF_prettyprint_hex  (1U << _RANGESETF_prettyprint_hex)
> +/* Do not print entries marked with this flag. */
> +#define _RANGESETF_no_print 1

There's no need for this, so I'd like to ask that you add ...

> +#define RANGESETF_no_print  (1U << _RANGESETF_no_print)

... just this. In due course we should do away with
_RANGESETF_prettyprint_hex as well (unless you want to do so right
at this occasion).

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 07:50:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 07:50:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229154.396587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQZ2-0004JQ-HG; Tue, 23 Nov 2021 07:50:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229154.396587; Tue, 23 Nov 2021 07:50:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQZ2-0004Ij-E9; Tue, 23 Nov 2021 07:50:04 +0000
Received: by outflank-mailman (input) for mailman id 229154;
 Tue, 23 Nov 2021 07:50:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRmA=QK=epam.com=prvs=19611c0f38=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpQZ0-00040Y-Vk
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 07:50:03 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f53d75ca-4c31-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 08:50:01 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AN7j9Xg006392;
 Tue, 23 Nov 2021 07:49:58 GMT
Received: from eur04-db3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2054.outbound.protection.outlook.com [104.47.12.54])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cgv6700es-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 23 Nov 2021 07:49:58 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4883.eurprd03.prod.outlook.com (2603:10a6:208:103::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.20; Tue, 23 Nov
 2021 07:49:55 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 07:49:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f53d75ca-4c31-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RI84PnZq+D03By66BV+EshIRKHtB78YnblBywBa08E1qKrb5QGSCxyT1VRqmSFfy2p8duDJNsLbgLpv5xhIbk2pSnkye/2Z1wL2mwMYz4bKUeg4qyAkBq63w/NS42NtS/c/NaSxsXbW/I+7kVerG91nWWm+FjfnIoZZrZ9RLzi7EU9bJlqeyBdX4dJAHlweVW+jl3cqyjWGf/M2e6LP6hD7qnVuVXvPhQ+DgY8wgB9oTdULUs4aHCadlxztuUq0gRktCF8GRlXPRtBRHEtHw+K9C9Oui1LtVPv6BFE51Ejw7lvK8BVKL4+ux1QpHwvwi2eS0SPZ5GpXd8uYpdgcOOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q46ah8CYGUsvSqYFYPMvxGjTiEPNA4KXxq5xsnZDOVI=;
 b=PdgDJjpu2MY0ETNh3o0xFCaho7LQqzSNdbhHJIRaCS1WaRjzzHz5XGCeaDpvpQhvmYKjc90h61HU+6NS79uIkbUu7QddK0NhgrrEWwj6nIyjY/c+fYhudyQBIi/idDJZn5n5lxmfrNv/8ndkCo3bnerMBmzuRG/cDBOKrRE9jksNHRRfQUfYaBBJN06d7f1HlLUFBPTt83hZBJvsWmQKpm4F+pbTaajBQ/4D4NTGOEnHJ9mMHSlLUwvLDmjNWET8dBqJJWn1I2ar+sDHENWgoW4diINsfydKkJGMjUaZEm27jZUxIqQKvpVx2HseQPH7wgI+xlhw92dPJp8+A7+SoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=q46ah8CYGUsvSqYFYPMvxGjTiEPNA4KXxq5xsnZDOVI=;
 b=kV0rK/Wk68wjtX+2x2HE67htdw3RGTkGfZiReblcCy0IjRs5J8q69MCe/T5cv3p/j1t2WIIbAYiXqgQ5jeS4ZtgrwW4lzZsKpFvYIaTrZOYswICvf+KE/mrKqLTRVyluqtCCapPw0FmeWcJRCLvlBds7g0iCfEwZVmN1YVmhTpePnFKsTgsXbYgJ7couj0RLWVQ/VhdsVbLbNyFoIfLqXTKYLTvIV2x81il4De6xvFrvIB0PF5xY+KQVyWXZpb7HrVmpcD7hAbn3B46IBc1uUi1vkkE6h5jjtHWG7UPdTlZ8lm5/SfXM+SRn7nUbrXbrj9kNj2tQxyQXEW5D1nwsMg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH 1/2] rangeset: add RANGESETF_no_print flag
Thread-Topic: [PATCH 1/2] rangeset: add RANGESETF_no_print flag
Thread-Index: AQHX34NQb/OdxzJcEUqRnDxd7565ZKwQu1AAgAADEAA=
Date: Tue, 23 Nov 2021 07:49:55 +0000
Message-ID: <b3a0d4c1-8b18-5d63-c70a-8b3db7fd6c84@epam.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <d6b298a2-bc04-8845-eaea-09502e32dcf1@suse.com>
In-Reply-To: <d6b298a2-bc04-8845-eaea-09502e32dcf1@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9d028fc1-727b-4cb6-8b02-08d9ae55d704
x-ms-traffictypediagnostic: AM0PR03MB4883:
x-microsoft-antispam-prvs: 
 <AM0PR03MB4883DA15DD205AB1D22E987DE7609@AM0PR03MB4883.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6430;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 a2D6YX1UTByZpe/x93u6pe2P0qaAzEeeK2SkeD34LBSxQLRCiK8z8kgu03jPYbfOwUPdbSdxyZaK4PLFbZ+vf2jtTDAZtIFNYibGTx+z4ZlyftL+lox/JWjQpNtYmng8o+8ETExRrQXOpneP+4uc+X+egHPcca0+nm1hm6EkE3/U381eRkwlX1LqsDw1NCmzDLj2/5HumDskF+Nq2PnYc63aCeBWj1S5oXsqvn0ZjSMAB2X83KU9DlHGB1LZ/EJ8QUGxzU5URQY/iAGxlMd4tMcXkwfbDPsJ+rMwMUmS9ZG6I62nA1lTQG8OCppbWcsM2lhoeQvCEUwFK15kbaYAjpT6UPTjLklpiLCQkiB3maTXm7pX6hjAGXs5rl7aRcGvRIKHZWlb8I80Kr8XCiZdZVVhpDd93qMjwz76D+6HOJuOvyjR7TeEngLOorUzLg+fJ5N9VzBlOFpJWgxuEuenFeaCkOeYKn64ifyg0XZMtPZ4hiSnr93Ee4i48oRg2yYoPKfSvU3/RBAnpU1eg+/qaJDzSjWNj9gnSRVI+KAKsPLgqTQEoobsVTn1lYN4Rue8XppD3uHtW+9NDf7a8zPNHQBQDWiJqf5nnnCoJ1YkwBAJiBWmsaQy9GAfyzrRwdfoNuU2+c1vD3ft+1Q0rPdXnGSiUv8fRVu+ClRUwf1pj96If3ovqY8WV5t6vgaM40XzIQICmVZ3IEQ/+P6mKkQE4COhhntJGEbGayVDYKx2DL8=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(36756003)(8936002)(86362001)(6486002)(508600001)(54906003)(26005)(4326008)(83380400001)(2906002)(8676002)(6512007)(6506007)(53546011)(122000001)(5660300002)(107886003)(38100700002)(66476007)(66556008)(31696002)(64756008)(66946007)(91956017)(71200400001)(2616005)(38070700005)(76116006)(6916009)(316002)(66446008)(31686004)(186003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?MUlyVjQyaGUyTitGK1RoUC9aZDRualluVS9FYWcyYTY0eGFQWVdSbk81SS9R?=
 =?utf-8?B?MEx0VFNVWlgxYU51cEFWRTQ0bEsvcXdGc3kxak5MdGtIb2hjT3JmZTFWL3Np?=
 =?utf-8?B?dGhZOS9VTVFnQkJ2ZmxLRlEwRHYxT3JNeWh6UGc2RTlrUTlKQ1B2cnNrNjhK?=
 =?utf-8?B?cTVydlZpZG9iUDI2cWVHMVBFcXVFT2x5by9FaWY2ZWw1aUdFaUlIcThkRGZH?=
 =?utf-8?B?SDNCS29NSUM0R0hnNlByemJlRFRXQ1ZkZmRoS1BFWUs3Y0I1bXh6TnhvclNK?=
 =?utf-8?B?alZXSjZKS2FaRCtBVWxNMG5rM2dBSWc4YmE5VW1iUWZPVFVmQ2V0KzZHK0JF?=
 =?utf-8?B?VUNtNmx1K1dsaGpBR3J1RzlETVJDUklmZWlHZmpKUnlwamM1Zm5TZHl5WWNM?=
 =?utf-8?B?TUphZzEvUXpOcjdIOWcvVHl2bWlJWmlvempRNmhTbENNcllVRUpQNlM0SEpu?=
 =?utf-8?B?UWRRYXg4T2pMTHAraVBkVndRdHI1M2N2SzdLNWRObVo1KzF3UDE0QWIxYk5h?=
 =?utf-8?B?OGowTWg1MW5qTmpZb24zWUFyU3YvQU5ZOEo4WW4xcWJsY1krV1Z2R1lkU2U2?=
 =?utf-8?B?aUVCVk16MEpEcXpCSllwOUF1Sjk4bERlOGVxZGpOeURVRTRrUVdDNHBTWnhL?=
 =?utf-8?B?NG9lZE45WmhNczRFVU9zSWNBSGhDNm5sSXdaTTJsTnE5UVVMQWM2Z0dWdEtk?=
 =?utf-8?B?ei9HVFg1LzQyNDVSOWwvdnNwSDd6WlFkUjl2UVM2TWV5Y3lwenlEREVONDNq?=
 =?utf-8?B?cU1BMlI5WUplbGVKK3VSNWwzNUJFS0R3YXZEMkx2d3BUald6WFpHcEFOMTlI?=
 =?utf-8?B?NkpOaWtpaXh0Snl5ZytxQTdvMWdvZ2FhQXYzVkRwckpubDRKN1EyNWI4Sk5w?=
 =?utf-8?B?RERzZ2dpVHhtNGhaZXc1WFVSUk9CZ1c1SEZsc2xuV3B0Z1Z2eWdJQmtHMDJj?=
 =?utf-8?B?OERFbTM0dFNpYVZXUzNhVkg3VzhkZEVVV2R0WFpENUFuNXhEb0lPdDFtMWp5?=
 =?utf-8?B?d3ZBTzBuZkN3WEo3a3pob1hLRyt4c2ZSckVqVGhOR3F1dkR4SldCZWJ5eWlq?=
 =?utf-8?B?UWkwWFdyS0NaYWRjNXg4OXN1TGxPaXB2RE1ONkZjazJNUDVHRU1INCs1TURS?=
 =?utf-8?B?L2dOM0NLbnM2QkluWlhWU0hyQU4rNE1sRXhJMC9jOXNrKzY0cHlOeCtsWFly?=
 =?utf-8?B?N0F5QlJaaDJWMnRWVEQ0Y2xhZlVlMm5qa3pZZzJ1MnhRTlFkRVJHWXNpcERN?=
 =?utf-8?B?YWd0MTJzajZJeGlyUmxuU29PREhEY1ArM0IxbE5oRzQ1TlNjZVVMOWVUV1lr?=
 =?utf-8?B?bSt3ODQrQS9ZUjFpWFVVbGlhNzhCUFE0Ukk0ZThDVjlCU0tGWmxEdGRkeHRW?=
 =?utf-8?B?cTMwSktKa24xZ0ZtQkhqN0tKSHd6ekZmaGROK0hUUHI0TkQ3U0YwVUpOZ2tN?=
 =?utf-8?B?OFgyak9nbHVFK0toSysrWEFZak80cTVQb3VnRitkVTVlNDhKQ2lQQTJEZzV4?=
 =?utf-8?B?ajZUcThRS1duRmc1cFp1WmJxb29PTGlqTTlXRXFUSFFINlFsUzZIODl4ci9U?=
 =?utf-8?B?OEhXMWxEblR2ZnlJNDRJWm0wUTR3U3FKRHNpd3dTbGZ3bG5UNkZqNW5lTE85?=
 =?utf-8?B?SFEwbnhYUjMyTDZvR1h6N3FyZ1pHYkE0cThKRzJnWjBtRVgrOG81MHNWeTBs?=
 =?utf-8?B?MjFRREJCU2ZQMktRMmZNY2cxdVNEQ3IzdkZOWjR0cXltSkdmUE5ZYmJCQndP?=
 =?utf-8?B?QkFmWWxWcUdqbDlDdXdCOEhXcmFUR1BvWFc3ZGphNmIzY3JqVUp4VDA5TjdN?=
 =?utf-8?B?THV0R21ZMW11NUd1bTdzYW5xb0lQNkc5N2ZOSUFLQ3UyWlJkb0Rja3EyWXRF?=
 =?utf-8?B?ZWpXdSs2c1NqWlMwbDdSNUFneWwycmxIOGU3SzRaVW5oMWc5UzZGWVdEYTg1?=
 =?utf-8?B?aW5KdC82aVJLQjFqeEQ5ZDhGRElJL2pMalNlRFBac25qNHY1dmZ1N3NEK1FY?=
 =?utf-8?B?Z1FuVXoyQU5FMjI1blpnbEFPQlRZNkxxdm1Kby9TbUM5eTdWZXBPVVd1R0lz?=
 =?utf-8?B?WkVWOWVmMWV5NUlvRjVzd1hKWmFYQ0loSjdNT3ExMllFeGJqck1VZkgzU1RL?=
 =?utf-8?B?VlZUOXhBWkZ3aTJhL1lvRVg4bDFrK2ZpUE95Y2xPZTNmTlRyWFJYTGNTTXN4?=
 =?utf-8?B?TVdtRmFWamVuYUNtenM5N0l6YVMrdDBtbUZsQlh1Z2JtTlpsWWtzcUQ3QW1j?=
 =?utf-8?B?bitkSXhsdUZ3R3lrZUtxZGVGME9OQ041RjdDRlN1Nkk2d2VwL3k3Znlac0FO?=
 =?utf-8?B?ZWVvRHp3SEtjMDlkd2NxNnIrU2RaWnllb2ZjU2FWWWVhQU8zQmF4QT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D7F79D8ADAC85044A5E1A6D4F31448F8@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d028fc1-727b-4cb6-8b02-08d9ae55d704
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 07:49:55.1761
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: w1hyOEgjar1AgHrCQZQF9LHloWSrWu/bYYQZBhLx0QvHPT9/SQlWSUbPh4y8VdAhpEcxuTGeC53RhkEJouCM3IXl8VoF14H9QRYGWQ14wSudszEccrVSyysOE5b6DZ7g
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4883
X-Proofpoint-GUID: MXHGUzrRMmZV3zYHlBY_DwHKm78Uhm4R
X-Proofpoint-ORIG-GUID: MXHGUzrRMmZV3zYHlBY_DwHKm78Uhm4R
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-23_02,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0
 priorityscore=1501 mlxlogscore=701 malwarescore=0 impostorscore=0
 phishscore=0 adultscore=0 spamscore=0 suspectscore=0 mlxscore=0
 lowpriorityscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2110150000 definitions=main-2111230040

DQoNCk9uIDIzLjExLjIxIDA5OjM4LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjIuMTEuMjAy
MSAxMDoyOCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiAtLS0gYS94ZW4vaW5j
bHVkZS94ZW4vcmFuZ2VzZXQuaA0KPj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3Jhbmdlc2V0LmgN
Cj4+IEBAIC01MSw2ICs1MSw5IEBAIHZvaWQgcmFuZ2VzZXRfbGltaXQoDQo+PiAgICAvKiBQcmV0
dHktcHJpbnQgcmFuZ2UgbGltaXRzIGluIGhleGFkZWNpbWFsLiAqLw0KPj4gICAjZGVmaW5lIF9S
QU5HRVNFVEZfcHJldHR5cHJpbnRfaGV4IDANCj4+ICAgI2RlZmluZSBSQU5HRVNFVEZfcHJldHR5
cHJpbnRfaGV4ICAoMVUgPDwgX1JBTkdFU0VURl9wcmV0dHlwcmludF9oZXgpDQo+PiArLyogRG8g
bm90IHByaW50IGVudHJpZXMgbWFya2VkIHdpdGggdGhpcyBmbGFnLiAqLw0KPj4gKyNkZWZpbmUg
X1JBTkdFU0VURl9ub19wcmludCAxDQo+IFRoZXJlJ3Mgbm8gbmVlZCBmb3IgdGhpcywgc28gSSdk
IGxpa2UgdG8gYXNrIHRoYXQgeW91IGFkZCAuLi4NCj4NCj4+ICsjZGVmaW5lIFJBTkdFU0VURl9u
b19wcmludCAgKDFVIDw8IF9SQU5HRVNFVEZfbm9fcHJpbnQpDQo+IC4uLiBqdXN0IHRoaXMuIElu
IGR1ZSBjb3Vyc2Ugd2Ugc2hvdWxkIGRvIGF3YXkgd2l0aA0KPiBfUkFOR0VTRVRGX3ByZXR0eXBy
aW50X2hleCBhcyB3ZWxsICh1bmxlc3MgeW91IHdhbnQgdG8gZG8gc28gcmlnaHQNCj4gYXQgdGhp
cyBvY2Nhc2lvbikuDQpPaywgSSBjYW4gcmVtb3ZlICIjZGVmaW5lIF9SQU5HRVNFVEZfcHJldHR5
cHJpbnRfaGV4IDAiIGFzIHdlbGwNCmFuZCBoYXZlIGJvdGggZmxhZ3MgZGVmaW5lZCBhcw0KIMKg
LyogUHJldHR5LXByaW50IHJhbmdlIGxpbWl0cyBpbiBoZXhhZGVjaW1hbC4gKi8NCiNkZWZpbmUg
UkFOR0VTRVRGX3ByZXR0eXByaW50X2hleMKgICgxVSA8PCAwKQ0KLyogRG8gbm90IHByaW50IGVu
dHJpZXMgbWFya2VkIHdpdGggdGhpcyBmbGFnLiAqLw0KI2RlZmluZSBSQU5HRVNFVEZfbm9fcHJp
bnTCoMKgwqDCoMKgwqDCoMKgICgxVSA8PCAxKQ0KDQpPciB3ZSBjYW4gdXNlIEJJVCBtYWNybyBo
ZXJlOg0KDQovKiBQcmV0dHktcHJpbnQgcmFuZ2UgbGltaXRzIGluIGhleGFkZWNpbWFsLiAqLw0K
I2RlZmluZSBSQU5HRVNFVEZfcHJldHR5cHJpbnRfaGV4wqAgQklUKDAsIFUpDQovKiBEbyBub3Qg
cHJpbnQgZW50cmllcyBtYXJrZWQgd2l0aCB0aGlzIGZsYWcuICovDQojZGVmaW5lIFJBTkdFU0VU
Rl9ub19wcmludMKgwqDCoMKgwqDCoMKgwqAgQklUKDEsIFUpDQoNCldoYXQncyB5b3VyIHByZWZl
cmVuY2UgaGVyZT8NCj4NCj4gSmFuDQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 07:53:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 07:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229160.396599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQbo-0005H6-Vi; Tue, 23 Nov 2021 07:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229160.396599; Tue, 23 Nov 2021 07:52:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQbo-0005Gx-SR; Tue, 23 Nov 2021 07:52:56 +0000
Received: by outflank-mailman (input) for mailman id 229160;
 Tue, 23 Nov 2021 07:52:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpQbn-0005Gl-Ku; Tue, 23 Nov 2021 07:52:55 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpQbn-00061o-Ea; Tue, 23 Nov 2021 07:52:55 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpQbn-0007lv-2Q; Tue, 23 Nov 2021 07:52:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpQbn-00087t-1v; Tue, 23 Nov 2021 07:52:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=inSBXfRCReUZF0N6Lex2kBQLimJTtY7gHV/ohIQ/Pek=; b=4DbKYwvc83CGul5ocHmL03Fipt
	mSiLX9Gm6Pibhe4qhcd8Ho1tpBV752RDVyZ8hTja+G9xA5X0hYD6E4xPCIwxlhpFLd3OdTLyUKFhU
	7sjVxXth47fAFyz9Piu7/FKP3N9UCrg+34Xe7PboU8GpWLGVdrSW/uFOfR0GT86Tmynk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166305-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166305: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=d20ebdda28fe254727989102bd5522aafe42cc25
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Nov 2021 07:52:55 +0000

flight 166305 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166305/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              d20ebdda28fe254727989102bd5522aafe42cc25
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  501 days
Failing since        151818  2020-07-11 04:18:52 Z  500 days  486 attempts
Testing same since   166305  2021-11-23 04:20:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Vasiliy Ulyanov <vulyanov@suse.de>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 84232 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 08:01:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 08:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229176.396613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQjs-0007Fn-2j; Tue, 23 Nov 2021 08:01:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229176.396613; Tue, 23 Nov 2021 08:01:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQjr-0007Fg-Vb; Tue, 23 Nov 2021 08:01:15 +0000
Received: by outflank-mailman (input) for mailman id 229176;
 Tue, 23 Nov 2021 08:01:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dRhM=QK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpQjq-0007Fa-Tf
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 08:01:15 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 86c202bd-4c33-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 09:01:13 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-24-tLTPMaQfM5Sf8m1eXpGpUg-1; Tue, 23 Nov 2021 09:01:11 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2446.eurprd04.prod.outlook.com (2603:10a6:800:4e::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 08:01:10 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 08:01:10 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0008.eurprd05.prod.outlook.com (2603:10a6:20b:488::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24 via Frontend
 Transport; Tue, 23 Nov 2021 08:01:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86c202bd-4c33-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637654472;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=xVdz1ekQvTzDSvQElRSZRIm8nnj/hixX4fL6OVm7KYI=;
	b=GQFmIMjiykwm+2Bxfs4nmV/CCONTMj51+lo+Id2KRh3Q5usDMSgWnl+ZG+BzGU0pR/7R/t
	79q76a4QJER81uD5JvsA6s/FUd0l49SkR2NJSVzKu4z2qd6UXfW4Um24jH+oFZHnrIY3cy
	d6Yd+RLN8Pzj9ez4GISFOfJi3b8gZd8=
X-MC-Unique: tLTPMaQfM5Sf8m1eXpGpUg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hmbu0M3MEEJad6KWQW55Obwimjh30tUNbF3AMHKtNMdl+l3DvXat77Cv1dIZ4/3udpFJ4xRLXTG/GoDvNcej0rSidnX+41Ax5JhENKR7Aj1YaDT8matBbRNYoZnzW2v8g9BxVjjlpZPGWa067uCzoDmnNv+Y1QG9gar3k2Y/n+0nrPVHi4/Dq6XhokDZ2DW+vpiwNlhFCVN6zFAt+8mWPkyEobgW3KO+ZUR9gm2lWKs1hTWJuxDUl/MUDK5Mm/xVs5RNFrABBE82jQILuMn4HlJ4qCtF1qeyigG7EJqrNEtdNaNszfeLMSe2/8VZ+Tn4zl4DVh/u/TxS7p2mqnObjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qRwQ/ROP8pRe31KYLn9qVfE+jOFtGVV/Pp7Sku6bczM=;
 b=fKAUtSwShMQeNasPabOZXEawWwyZG03ra1D5gKLZw9nrzxoj0KOfjXmYBoPUBwxGfND2yDZz+ljgOceGc8f3Yu97OwCxE30tzkdwS0TLRZd63Fg1Uvm1Mb8UeoHtLxBk1JPhshAqIFP8f3c47q2R1r8qDnQ05+5er1F2A9Rcr2isQE/ZGpmCtevdqyjyuqa9Hod8i9/zpO08WmFnyxJ0ahOHWH5dY4QDdZNm4rfgYbDf14gZRKw0LuU6wz3CqEBmctXIu/0DdFRuDqBO2CTc10Xl+ZitSntri7x32KtT8mTpGRHK3qqksSNOUOh3xFN8f05zs1Sj2h+1TYODaZ6v6w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <31816ff1-987d-f78d-036d-a35bfd9f807d@suse.com>
Date: Tue, 23 Nov 2021 09:01:11 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/2] rangeset: add RANGESETF_no_print flag
Content-Language: en-US
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <d6b298a2-bc04-8845-eaea-09502e32dcf1@suse.com>
 <b3a0d4c1-8b18-5d63-c70a-8b3db7fd6c84@epam.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <b3a0d4c1-8b18-5d63-c70a-8b3db7fd6c84@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR05CA0008.eurprd05.prod.outlook.com
 (2603:10a6:20b:488::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 621c598a-3e40-49de-d5b5-08d9ae576930
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2446:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2446D065C11CB0675A59254CB3609@VI1PR0401MB2446.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	AyN0pQDyk0jktQEzmexGTYa0nhS/jpmX8Ti8SbEPzMOYN53bi6fvX2pqQKjV/mgynKOHXC1jFoyOy8/ivlxuoTngwRY4GVUb7PVDCbu5uoa/EcbzP678qE4R9+XHA0zg3CJbhTqeuv8c4YxvJQBey066qX4Kteae9/x2p3THxp94ELaDi4xwDtfbUHu7ARZf0I3Hv7gUdUnSihl5MpObnnMU1kZTtM7h/Ln3qlREl/NW0R7Mi1J3+/RZocDrNXn/X0jjbI0dK7Z6baS+ngDRKH6yCrJ16NUmgsi06ODbQR3gphq1nMWZCv7b/7njULD0UUlOkHZP2gH7EdJzxAs5n30XupxXaLqPpmEcRONdIZYb0csJMj5+f0eJRX0CAKwZfWT2K+JPx9KqGm/+7JdxXb0HeMPFVL/2YmTiLeUj78j7icbYWCqAbnF9EhDFNJdZNTFbuwTxfahj/H1pt74P/xLiYttXvqb4DhOHpdHiO7Sloisp45vfh2XJaFVb3SucCHOpLo1KSsEQ9ghEAbrZZ//bqD+fJumWvcbzwXSfWkpLFWZrOE2pNJB3PsDXQNuzbyU95Uwi2A/hp07DcUvoE0YtGrx6vM9n38AkiYhuMQplzyGbuB767vl+nwpVdeenkZ2G/PouaOx7ulxkCh+KKlPunIitav742HZ7xpcHcXkFzohpaIp5MNHQScRrfDJEK5h1/kMQU0QiDppaeNrQ4GDX2JVkOc3aE3WVCQAs2mw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(66946007)(6666004)(8936002)(66476007)(53546011)(8676002)(66556008)(186003)(26005)(6916009)(956004)(16576012)(86362001)(4326008)(5660300002)(54906003)(38100700002)(508600001)(316002)(2906002)(31696002)(31686004)(36756003)(2616005)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?LlKI51idA7xla5Dz0nQibLhdFxYaww6yzSZhyFJuW0+ZE1pL96jhUhMvQbXB?=
 =?us-ascii?Q?g6opuFrTlEpJebQwRaPpUNmRp+wNPY7EFiiT3JUklsVqJtLM/16Lk45fKbpm?=
 =?us-ascii?Q?I9rzZIUEczXl3BhMe4PgfH80+DsFY8ybSFl9SQXi7tjk5+sN1IFKPhA3RT+D?=
 =?us-ascii?Q?bMkVmQsa9ygRrNbTwvs7SGMqQ0TDL5b+WxVE3eVMqviyq2UI0CmlqxK6Q201?=
 =?us-ascii?Q?/25AkSaHzl5zqu1Y+uvTMbCybEPdRkAvyXZkN+HZ2iLj1zLZUz8DpU/FOHcA?=
 =?us-ascii?Q?oE86h3jrXxJWvIswgW/enWDe5gHgm8Sm7YR8chOB1Iyyqp477Fvdk/F6qfHr?=
 =?us-ascii?Q?Tk9n7+E5EvvCUDYghKEXwWwmFIOIaTjSGJWvvjTRy1EewuwCg0QZ8qv6ojsL?=
 =?us-ascii?Q?ebndmgVqA+bP4Bw4jCUq9uz9CIPcxxZHGzKtl2cTZd8LJtHQoIUhlis6Q+Ca?=
 =?us-ascii?Q?Re5Z0AHAtAkDDb2F0txXHFhu4N3vnZA92A38kr4v9QkRhQC0BrgU0dxbSCar?=
 =?us-ascii?Q?AdvZw24Sb8IvNXgCsYSuQ+7F3IcmPOSY926nKKBGjoynXQM8rlRuZYi8CvTU?=
 =?us-ascii?Q?bpxmT+ev9YyyZpw5C4kEtJiiOcM1m5jupTsc7nki114ZMPZ/uHb3qC9ZW+3E?=
 =?us-ascii?Q?+dqRhOfxurTu0awLoeCKhskwhmZ8LoJBFtjvEVdyA+oJfcGX2oJrlGmjImay?=
 =?us-ascii?Q?RIEGCZg6jqxr4pFT74C72Vb5RyFwhs0SSBWFHK+qvdbEcFjGyrJBfhDwIjjy?=
 =?us-ascii?Q?zZMqaDOOdtCZ5ZUGvrD/TQDdmr9u7kB3gYYgWTqg9E9aedej89iW/k2C89GU?=
 =?us-ascii?Q?nsrw0MUga4MGX5gWqupKIirTRugYn8JRC1OaUP5lGvSMW/ygYqxcgmLuo0KO?=
 =?us-ascii?Q?6CxWDKLtcYChFOrbxLUwdz5oDKp+EYOx7TXTo2QGUu8U2bjlulgeHgI1LlS2?=
 =?us-ascii?Q?gYN9oWuKI0hByRwUPqGhKPHPXbV446QN6jqPJqCgeBLhAKwy5M47iqnPQQTl?=
 =?us-ascii?Q?Mnj45Nw0m8/mPqBPhy4U8R2Gv23ipFQXiVs40DhsuBVrNN2TzT37rLSZD5J+?=
 =?us-ascii?Q?auDgTi0xPQnXfCkzS+XItE6Sd14A/R16X0c2NM66FN1Fx4JunqMXiewTPcxM?=
 =?us-ascii?Q?YauyqcBGj4ujstduZiP+7b5OaaORG8IPDtDhtdhH7iZ3s64OQ0pIruEs7v3B?=
 =?us-ascii?Q?XifdfoHfKeVTJzIEEJlCNLvH43szNX+NFKGkoXqsCXhqBSXS/w8dmF7z52FF?=
 =?us-ascii?Q?6jyTI/Bn7DNra4EGzzMjm7lyLt2b8UC79eHSZdmJusiBa3QA0+lAFV1WiWvP?=
 =?us-ascii?Q?YlxKpi6L9yNRnkL/TcHavofvfi5tKV9YYZj57ebsD2W0/+qgzT4+8T7e97Jl?=
 =?us-ascii?Q?92GOhiDCeeQRiDDbDqeUV9sIyzBQ1wu+6iOn8k4RM61bmIs86ONyQpQDOofl?=
 =?us-ascii?Q?AXQq4JOCzbjy68h1A9cbset1cyeUci9ENtuTy4qWutzsE8FEwAl9Yjq0sAC6?=
 =?us-ascii?Q?LRQ5dmXzkO8qTLRlZf1850+kqpEJe77P3mUbIi9Thl02WQgnNo3k9LX0opaE?=
 =?us-ascii?Q?jWZU+dIJqDFexCEyHXaBBINTX8RP6y3LGX8+sWS+Qr2syeEgUxW21j24FPxV?=
 =?us-ascii?Q?uZn/G57kecFM7cMqumYcNnY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 621c598a-3e40-49de-d5b5-08d9ae576930
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 08:01:10.1330
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iWi5xzf1v+y8Ko5wJBr4bNQYttYWKApdwUFR5j2IZAzCK3uPCGWRcCLMEUKbtSfui4Eeg8yPCjqhRT8XYEDZBA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2446

On 23.11.2021 08:49, Oleksandr Andrushchenko wrote:
>=20
>=20
> On 23.11.21 09:38, Jan Beulich wrote:
>> On 22.11.2021 10:28, Oleksandr Andrushchenko wrote:
>>> --- a/xen/include/xen/rangeset.h
>>> +++ b/xen/include/xen/rangeset.h
>>> @@ -51,6 +51,9 @@ void rangeset_limit(
>>>    /* Pretty-print range limits in hexadecimal. */
>>>   #define _RANGESETF_prettyprint_hex 0
>>>   #define RANGESETF_prettyprint_hex  (1U << _RANGESETF_prettyprint_hex)
>>> +/* Do not print entries marked with this flag. */
>>> +#define _RANGESETF_no_print 1
>> There's no need for this, so I'd like to ask that you add ...
>>
>>> +#define RANGESETF_no_print  (1U << _RANGESETF_no_print)
>> ... just this. In due course we should do away with
>> _RANGESETF_prettyprint_hex as well (unless you want to do so right
>> at this occasion).
> Ok, I can remove "#define _RANGESETF_prettyprint_hex 0" as well
> and have both flags defined as
>  =C2=A0/* Pretty-print range limits in hexadecimal. */
> #define RANGESETF_prettyprint_hex=C2=A0 (1U << 0)
> /* Do not print entries marked with this flag. */
> #define RANGESETF_no_print=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 (1U << 1)
>=20
> Or we can use BIT macro here:
>=20
> /* Pretty-print range limits in hexadecimal. */
> #define RANGESETF_prettyprint_hex=C2=A0 BIT(0, U)
> /* Do not print entries marked with this flag. */
> #define RANGESETF_no_print=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 BIT(1, U)
>=20
> What's your preference here?

Clearly the former. But this may not be everybody's view. I'm hesitant
towards further uses at least as long as its generalization, GENMASK(),
isn't ready for easy use. It was some time ago that we had a discussion
about that one, supporting my reservations voiced back at the time when
it was introduced into our code base. Iirc there was more than one
issue with it; the immediately obvious one is that it silently does the
wrong thing when the arguments get specified the wrong way round, when
it really would be relatively easy to support either ordering.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 08:04:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 08:04:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229184.396624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQmj-0007wd-K9; Tue, 23 Nov 2021 08:04:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229184.396624; Tue, 23 Nov 2021 08:04:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQmj-0007wW-H1; Tue, 23 Nov 2021 08:04:13 +0000
Received: by outflank-mailman (input) for mailman id 229184;
 Tue, 23 Nov 2021 08:04:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRmA=QK=epam.com=prvs=19611c0f38=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpQmi-0007wO-Gm
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 08:04:12 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f01daa53-4c33-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 09:04:11 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AN7j7P4006383;
 Tue, 23 Nov 2021 08:04:08 GMT
Received: from eur03-db5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2056.outbound.protection.outlook.com [104.47.10.56])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cgv67031k-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 23 Nov 2021 08:04:08 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR0302MB3281.eurprd03.prod.outlook.com (2603:10a6:208:a::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Tue, 23 Nov
 2021 08:04:02 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 08:04:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f01daa53-4c33-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lKeFOrHN/KEZDM1rb+dWnxmzw6umY/28iLxxCAQeILXM17D6tZTsMdWev+9+IaJE9go0QOZkEe+a5yaGcD1MpF0JyjbuV1uItXam8Aype1D3fVi5DLlSUgHfK9XmRJM9qNQGE2iN8J1ijCc20pr3uNZ6zbjplFIXPtI6Wz+gQw/BsrKq8aiGG0N0t6BHqEYxgtMKDnglpy7gQXlrcZ2ku49e+Fey/INedayyb9J7SreNo05f6zf7IrphUecn6V/Sh8lqx9NPb1rI+5nBuirZsQ3VFPI30QAlw2jOaJg9spctnyNAu/TxGhwHfLiycxSwJvTVkvM1+gYMCT/g8R10sQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WEmr4y0KxL+qd031VVKDNsaTVf0BU43exO5qqZFOFOE=;
 b=aY/H3aDwDOS3SP74e0hA3k1RkSvpypPvPP7kVnz9rQvZO2Uh7rAjaVlBY8+m4Bsx8sC0VeIyEmenggglqTMzjtDPTCEHewYzzU9I4vWCH8ExFcW0V6eP5TR8MlSfKKZD296P7KMvXyQS6+Sx5S9OBJoGpzpNAkx2mNsXJTxYvomWFC1VTqj95nSoZh7k0/SF6wtSPs0yZ0YtIP/eUnvYoeveEJVMIFuj/UvXuk7Y94FViuRZqaINng3CRYnk9RkSRiZoesHVoozbVv7bANnE1cSTpZCE0T1E20FjLv1XplfwpGin7yJDMmrRpFragdmDN/iomDz649QtrRv2lUiRgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WEmr4y0KxL+qd031VVKDNsaTVf0BU43exO5qqZFOFOE=;
 b=E2a8vFFRF3m2cdtFPpGGJxXzMEoPn8AMxpz0ThTts47Vf6E3EyshnmU9a8IMVHr5fR3sXXQCXndvIW9JaCPr+xv+hGJV1+yUoWigmKw4Ls1zfUzz6oq1LOg5N068nRroQ08Lqkc6koTleUIkMFwwZyQ78ZerdUjNK9PMdi1Axwl0jnqwzCUtD5GjIRr8h9xL6izWjHXkO/UvV1v+zE8MgeDsQ5V26V6wqvYNVg9V7nr8zQPK3pSfuOWHBxRoN45OmBdWkjR+dY6vBxoaG3I6JUXp2plbwmIK1h+BMe9bPG6t2+9pVQudOOQ88oPNKih9wgBhswpecJL0Wl4eyS8sdA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH 1/2] rangeset: add RANGESETF_no_print flag
Thread-Topic: [PATCH 1/2] rangeset: add RANGESETF_no_print flag
Thread-Index: AQHX34NQb/OdxzJcEUqRnDxd7565ZKwQu1AAgAADEACAAAMogIAAAMqA
Date: Tue, 23 Nov 2021 08:04:02 +0000
Message-ID: <f5c8c022-857e-aa1c-47be-49f4283a2223@epam.com>
References: <20211122092825.2502306-1-andr2000@gmail.com>
 <d6b298a2-bc04-8845-eaea-09502e32dcf1@suse.com>
 <b3a0d4c1-8b18-5d63-c70a-8b3db7fd6c84@epam.com>
 <31816ff1-987d-f78d-036d-a35bfd9f807d@suse.com>
In-Reply-To: <31816ff1-987d-f78d-036d-a35bfd9f807d@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c170d06d-7bd8-447a-bbd4-08d9ae57cfe1
x-ms-traffictypediagnostic: AM0PR0302MB3281:
x-microsoft-antispam-prvs: 
 <AM0PR0302MB32814E7CC3D86DC78935F88CE7609@AM0PR0302MB3281.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 JJ5hwQEPzOFVHyreeCwmI1+HICEcDn6aIiViSxT0oDvFEpxi9AFySJlnCCFQTAqAJKN2izdQ5phXX8UhpxtAhC+HqHTfBBkdxooHPreUEoI5FLW8SUXKWy2UTLTNCP2VAR/gS9l1pgHWRYYAFoHYU5ZhAuTwFgptUKtTPovMPJQmW+gvIQ8qKWa2RIp/D4BBK5EVz+ITi6jMheYUnBtrWGB1u+Kv9nxmMfx+sa+KjNng85YtuM50ZDxtSZpH9gasS2FpAEh4qSxS3nhNAiPxH/2IU0VPgjPagi/gRMlGbnv39s5gag1FlixsFqC9bq7n8IvQLrMJ9To4lJhukYs7P7g/fqvRzsQ770jFACbZj06UuYLDpLWYS52cDmzXd1vTnEDZgeaflRWeCSthKm0wuQbOyz2LkXww83ikZCID5Kz5UWmL/Vq63TPIlq1sbVXBsBr7nqcFgy9ZIguqDWfsJmcjai5QGfg/VlEd5p3CYXMh0tzu/Urc0N8ITg6d9TsiZsv3r0UMgmGt3WM4kOZU8/SM6AzXmaXl9S9CuniVpIF7Jb3H+faeZlxi+UUpiPjQ5PBqXS+MF+umZenBuM7eDB2RO1hMKyqmkH9NvdV73mGeNqcfzJtYFYjfrx+taPvjio3fPzEjrZhFq4DYUPwUY/EeQ73/CqP3d/nbzSdzmCrARu57M54OyxGTJ9oMmIPx8FwvQN5Cr7w6WmfTm+2iu2hx0xkHR2TY5cQF/Q1I6VI=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(64756008)(66446008)(2616005)(66556008)(76116006)(186003)(31696002)(83380400001)(2906002)(122000001)(38070700005)(91956017)(66476007)(86362001)(6486002)(66946007)(31686004)(4326008)(54906003)(107886003)(8936002)(71200400001)(6916009)(508600001)(38100700002)(36756003)(316002)(6506007)(8676002)(6512007)(26005)(53546011)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?b1hMKzZzK3FnaGhOeGNRS1NaRzR0blF2NzIrbG5JOCtuUHZTdVlaeE1HcEF1?=
 =?utf-8?B?ZzZ0S1F3bE81YU5QUFF4bnRBbVBXeG9qaUFYK0ZVVmZGc25RSjFaRG53Y3k0?=
 =?utf-8?B?dTkya3ZUcUozaHBXek52YlBiUDFPUk05b0h3dkJ1d012M1cvYWpaRVFZYW9w?=
 =?utf-8?B?RmdwZHpraThnU29GcjY0WG1MK3IyeGcxVUkrdm1kRDBMT2lQMW85MlJXWkdE?=
 =?utf-8?B?MFRDY2J1czI2a3plbHE0TVJ6bWNaZG8xcjVxdVlITEpqNXBkT3hEbng1bktK?=
 =?utf-8?B?OXFINm9XZDJtb2pmSnFxQkt2cmR2VHdIb0NZdjQyQTlKWUtXdDc3OWJHSTBt?=
 =?utf-8?B?eVkwV3FYRHFKSmZFdDVwNXZ1Qzd6RDhpc1c3Y3dCS1VEZEd2QU1zaVkvR2FT?=
 =?utf-8?B?ZDhwR2F2TXJtd0VGcHJtOHRCMWFKRjBJYWdQYUtUcmFYOFZPNDgwRGxKVnU5?=
 =?utf-8?B?NVorVHFqMmh5M3VySCt0YjRLdUg1VHF1NUEza05VbkVrMVJSSmxIaVd2aElp?=
 =?utf-8?B?RHl2UHIvdStHdjAyajQ4U3hwUGp4bDFEWmJMcFdsdlU3RU1wN3ZSV0MzSkVl?=
 =?utf-8?B?NENPbTN6MEFCVVk3N1lYQVRkNkNuVmZkZEQvVklCUUN4WWZzUml3N0hFL2dy?=
 =?utf-8?B?L0FCMUJ4STJNVkxBOGt4QnNhOWtxbjRPZ2cyT3YxdFFpQkFqK21nZG9ndm9q?=
 =?utf-8?B?cktlRmRQa1NKVnFZK014bGNSbE5hQUhLTVhtUTRtakNoWHg0c3N3RFdqUjVv?=
 =?utf-8?B?K2VQdTJ0dnc5cEx2ZjZkc2psYW1JV1dzWnlNL2t0M1ZFcVN2QmdXbTQvQjNy?=
 =?utf-8?B?YldFVE9STWloSWs2VUtES0crTnhZb2s1c2tlNE4zU3dnMmdJTWJnVndVWWJQ?=
 =?utf-8?B?YXlRSXY3c2l6N3VwMFVlb2NMYkhIenBnNGdLMDNXVmJQYUdoVTRkek1IOVJB?=
 =?utf-8?B?NkhMVVlXQTNGcE9MVlY0RFZ1bnRrazV4b0JOeEVsbVJPWlVVMk4wVlczN0Fi?=
 =?utf-8?B?aDF1d3JYSEZpUjlFQUtsd1R6SXM3TVRQNTVrTVBRcVdOa1RpVFZHNnZNNXh2?=
 =?utf-8?B?Z0I1Q0NmYnhPQ0pDZHJwaUtNenp2VkI4enVsU2lPYlVBQ3BIOVA5UG4wMkpS?=
 =?utf-8?B?VzFSOTNNdW85MEw1TzVZNi9PSWdQOFVocnE2ZjRZRHBUS0tnZGFjMS9WZFVL?=
 =?utf-8?B?SzhxM2xtaVhRaEdXS0c1Y1FabFFZeS9kdUcwWWFmU0tFbXBuajlWSm9QaEIx?=
 =?utf-8?B?SDg5TkdIUEpBV0FTWUZjRWJXNkk2dGlJUkFTbUhtbWc1elY4TzFCRkRjNis1?=
 =?utf-8?B?UFc5YnlNUUFwTHVJY1p4TUVyVE5mU2RzYlcyeXZZdXJwZVBOWmpLOVBDRDEx?=
 =?utf-8?B?RUJ2bkJHaWhHVWJBYkpRWk0wNXBBS2R6NWZHZTJXRHh3Z2x0VURoa0hlVS93?=
 =?utf-8?B?cjhKZUkrcWhGdmhGczVjL2tiUS9qTTRRU2FiU2FTakkxQy9VbDdLOHNZVzNx?=
 =?utf-8?B?SDhPa2tWV0NZNk9mL21Ma3JFZ0Jxd29qWHJtdkN0S0RFd0NKVW9JV0oxOFll?=
 =?utf-8?B?eGJRdGt3cTVSREJ0ejFzam0vR3VIcFpuV3pyV2xUbEZQQnpUUUZNcTdBQWts?=
 =?utf-8?B?ZlB2QmVsM0ljVUsrQ1B4MFI1dHdRY21uQmtxK2F5UlFHVzJGNzJEaUZSNTlu?=
 =?utf-8?B?RGRWZGVjZmdFbkdxS0FIOHVzQit5ZUxMK0NUamVOUWVKciszLzFibkF5MUR3?=
 =?utf-8?B?cE16dzh2OGVGdFh4MGhUQWxCblJnM0JBcFFkZUdNOFZ5cjRGdEJzYjJJVU90?=
 =?utf-8?B?eVVyNTJrNUZsb2JNcXo2SjdTQUQ2dnRNOUZ4SHFQNmxrd2hHZCtuR0J4ZDVn?=
 =?utf-8?B?aVFwdXE1OFRDUjR2Q0Nha3E4K1hWRGFJQ05MZVVnOUtybDZOR2djVXYxS29G?=
 =?utf-8?B?cFBOSjRWK1RVbURZRUpMbVJyR1Q2bzdjTDRFUHZKT2tJcE1zeDZBR1VWOVJ0?=
 =?utf-8?B?bGpWc1pyZ3R4bkVvSy9LUGQvVVU4dGJlbGIrQy94RStDN082VGwyUEIrbEdn?=
 =?utf-8?B?VkVZaFJ5ZlY0YW5oOTFyZnhONFE1ZTV1dmF4aDZZZHFLa0pIaEhGV29MczFR?=
 =?utf-8?B?bFJrOTh0c0E1L0VGVnJJbjUyWTdRVGZ0b21PMWpsRE9Ga2pTS1d6VFBvbmV3?=
 =?utf-8?B?d1FQZDFDZllERTh5SHdiTEhlUWM1QnlUc0NPWUdQaGpJeGdJb0svb0xwQm5L?=
 =?utf-8?B?eUNkeW1SRUVxL3lwVXN3YnlyUk8rUmVaaWRaUGdHTFZGdmxpczYyb2xyRnNW?=
 =?utf-8?B?YzNEQTFlN3Via0E1Lzg5OHI2OFZLd0h2T1pkMEIzeHVVMy9QSTZpdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B6C9E867EF63C84CB35162253722AF1D@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c170d06d-7bd8-447a-bbd4-08d9ae57cfe1
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 08:04:02.1705
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: aazp1F3p6uJQvej2I9/hKbkpen9QuAJO/Np+dKsLxJ9/R/1iA3rUMBfxyOnS1vvBjP0anmVpf4JbbwZBPS+VChPk0DHiz1AmqCR8Q9tAFW+EO/CC52zQ4NizDXUvOqU1
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0302MB3281
X-Proofpoint-GUID: dk93QZjDn_HjjYe35xtGkbzxCW-1Gt1i
X-Proofpoint-ORIG-GUID: dk93QZjDn_HjjYe35xtGkbzxCW-1Gt1i
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-23_02,2021-11-22_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0
 priorityscore=1501 mlxlogscore=770 malwarescore=0 impostorscore=0
 phishscore=0 adultscore=0 spamscore=0 suspectscore=0 mlxscore=0
 lowpriorityscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2110150000 definitions=main-2111230042

DQoNCk9uIDIzLjExLjIxIDEwOjAxLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjMuMTEuMjAy
MSAwODo0OSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4gT24gMjMuMTEu
MjEgMDk6MzgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDIyLjExLjIwMjEgMTA6MjgsIE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4v
cmFuZ2VzZXQuaA0KPj4+PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vcmFuZ2VzZXQuaA0KPj4+PiBA
QCAtNTEsNiArNTEsOSBAQCB2b2lkIHJhbmdlc2V0X2xpbWl0KA0KPj4+PiAgICAgLyogUHJldHR5
LXByaW50IHJhbmdlIGxpbWl0cyBpbiBoZXhhZGVjaW1hbC4gKi8NCj4+Pj4gICAgI2RlZmluZSBf
UkFOR0VTRVRGX3ByZXR0eXByaW50X2hleCAwDQo+Pj4+ICAgICNkZWZpbmUgUkFOR0VTRVRGX3By
ZXR0eXByaW50X2hleCAgKDFVIDw8IF9SQU5HRVNFVEZfcHJldHR5cHJpbnRfaGV4KQ0KPj4+PiAr
LyogRG8gbm90IHByaW50IGVudHJpZXMgbWFya2VkIHdpdGggdGhpcyBmbGFnLiAqLw0KPj4+PiAr
I2RlZmluZSBfUkFOR0VTRVRGX25vX3ByaW50IDENCj4+PiBUaGVyZSdzIG5vIG5lZWQgZm9yIHRo
aXMsIHNvIEknZCBsaWtlIHRvIGFzayB0aGF0IHlvdSBhZGQgLi4uDQo+Pj4NCj4+Pj4gKyNkZWZp
bmUgUkFOR0VTRVRGX25vX3ByaW50ICAoMVUgPDwgX1JBTkdFU0VURl9ub19wcmludCkNCj4+PiAu
Li4ganVzdCB0aGlzLiBJbiBkdWUgY291cnNlIHdlIHNob3VsZCBkbyBhd2F5IHdpdGgNCj4+PiBf
UkFOR0VTRVRGX3ByZXR0eXByaW50X2hleCBhcyB3ZWxsICh1bmxlc3MgeW91IHdhbnQgdG8gZG8g
c28gcmlnaHQNCj4+PiBhdCB0aGlzIG9jY2FzaW9uKS4NCj4+IE9rLCBJIGNhbiByZW1vdmUgIiNk
ZWZpbmUgX1JBTkdFU0VURl9wcmV0dHlwcmludF9oZXggMCIgYXMgd2VsbA0KPj4gYW5kIGhhdmUg
Ym90aCBmbGFncyBkZWZpbmVkIGFzDQo+PiAgIMKgLyogUHJldHR5LXByaW50IHJhbmdlIGxpbWl0
cyBpbiBoZXhhZGVjaW1hbC4gKi8NCj4+ICNkZWZpbmUgUkFOR0VTRVRGX3ByZXR0eXByaW50X2hl
eMKgICgxVSA8PCAwKQ0KPj4gLyogRG8gbm90IHByaW50IGVudHJpZXMgbWFya2VkIHdpdGggdGhp
cyBmbGFnLiAqLw0KPj4gI2RlZmluZSBSQU5HRVNFVEZfbm9fcHJpbnTCoMKgwqDCoMKgwqDCoMKg
ICgxVSA8PCAxKQ0KPj4NCj4+IE9yIHdlIGNhbiB1c2UgQklUIG1hY3JvIGhlcmU6DQo+Pg0KPj4g
LyogUHJldHR5LXByaW50IHJhbmdlIGxpbWl0cyBpbiBoZXhhZGVjaW1hbC4gKi8NCj4+ICNkZWZp
bmUgUkFOR0VTRVRGX3ByZXR0eXByaW50X2hleMKgIEJJVCgwLCBVKQ0KPj4gLyogRG8gbm90IHBy
aW50IGVudHJpZXMgbWFya2VkIHdpdGggdGhpcyBmbGFnLiAqLw0KPj4gI2RlZmluZSBSQU5HRVNF
VEZfbm9fcHJpbnTCoMKgwqDCoMKgwqDCoMKgIEJJVCgxLCBVKQ0KPj4NCj4+IFdoYXQncyB5b3Vy
IHByZWZlcmVuY2UgaGVyZT8NCj4gQ2xlYXJseSB0aGUgZm9ybWVyLg0KSSBhbSBmaW5lIHdpdGgg
dGhpcyB0b28sIHNvIEknbGwgdXNlIGl0DQo+ICAgQnV0IHRoaXMgbWF5IG5vdCBiZSBldmVyeWJv
ZHkncyB2aWV3LiBJJ20gaGVzaXRhbnQNCj4gdG93YXJkcyBmdXJ0aGVyIHVzZXMgYXQgbGVhc3Qg
YXMgbG9uZyBhcyBpdHMgZ2VuZXJhbGl6YXRpb24sIEdFTk1BU0soKSwNCj4gaXNuJ3QgcmVhZHkg
Zm9yIGVhc3kgdXNlLiBJdCB3YXMgc29tZSB0aW1lIGFnbyB0aGF0IHdlIGhhZCBhIGRpc2N1c3Np
b24NCj4gYWJvdXQgdGhhdCBvbmUsIHN1cHBvcnRpbmcgbXkgcmVzZXJ2YXRpb25zIHZvaWNlZCBi
YWNrIGF0IHRoZSB0aW1lIHdoZW4NCj4gaXQgd2FzIGludHJvZHVjZWQgaW50byBvdXIgY29kZSBi
YXNlLiBJaXJjIHRoZXJlIHdhcyBtb3JlIHRoYW4gb25lDQo+IGlzc3VlIHdpdGggaXQ7IHRoZSBp
bW1lZGlhdGVseSBvYnZpb3VzIG9uZSBpcyB0aGF0IGl0IHNpbGVudGx5IGRvZXMgdGhlDQo+IHdy
b25nIHRoaW5nIHdoZW4gdGhlIGFyZ3VtZW50cyBnZXQgc3BlY2lmaWVkIHRoZSB3cm9uZyB3YXkg
cm91bmQsIHdoZW4NCj4gaXQgcmVhbGx5IHdvdWxkIGJlIHJlbGF0aXZlbHkgZWFzeSB0byBzdXBw
b3J0IGVpdGhlciBvcmRlcmluZy4NCj4NCj4gSmFuDQo+DQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 08:07:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 08:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229192.396635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQqG-0000AM-4r; Tue, 23 Nov 2021 08:07:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229192.396635; Tue, 23 Nov 2021 08:07:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpQqG-0000AF-10; Tue, 23 Nov 2021 08:07:52 +0000
Received: by outflank-mailman (input) for mailman id 229192;
 Tue, 23 Nov 2021 08:07:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpQqE-00009s-Ev; Tue, 23 Nov 2021 08:07:50 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpQqE-0006qT-8a; Tue, 23 Nov 2021 08:07:50 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpQqE-0008H3-00; Tue, 23 Nov 2021 08:07:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpQqD-0001cJ-Vj; Tue, 23 Nov 2021 08:07:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=/YlI4xq1YpAojumTt8bB0Xx3Vgl0K7qOZWJ1NcB+NaU=; b=jNJb7/Bb8W6qWJeTd5G7QlC1QM
	3wv/ZyVEvaGbWEKdgSSHpd9STvrVaVn48Sx53euL6w+VtctsdnfMT+gGviP9i81xnREWAw9U15Ujh
	hvtnIaTy4Xb2ZRqgGh3AApmS6MMgg3eMV+ZKiLJMh1HAm5zeaju1CbDu7sB6Xrgjd4DA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166300-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166300: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-armhf-armhf-xl-credit2:host-ping-check-xen:fail:heisenbug
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=89d2f9e4c63799f7f03e9180c63b7dc45fc2a04a
X-Osstest-Versions-That:
    qemuu=edf1aa8d44d5070828ac10c5b82dbc6caf29e7d3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Nov 2021 08:07:49 +0000

flight 166300 qemu-mainline real [real]
flight 166306 qemu-mainline real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166300/
http://logs.test-lab.xenproject.org/osstest/logs/166306/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit2  10 host-ping-check-xen fail pass in 166306-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit2 15 migrate-support-check fail in 166306 never pass
 test-armhf-armhf-xl-credit2 16 saverestore-support-check fail in 166306 never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166267
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166267
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166267
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166267
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166267
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166267
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166267
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166267
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 qemuu                89d2f9e4c63799f7f03e9180c63b7dc45fc2a04a
baseline version:
 qemuu                edf1aa8d44d5070828ac10c5b82dbc6caf29e7d3

Last test of basis   166267  2021-11-22 10:09:13 Z    0 days
Testing same since   166300  2021-11-22 21:08:31 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexander Orzechowski <orzechowski.alexander@gmail.com>
  Dongwon Kim <dongwon.kim@intel.com>
  Gerd Hoffmann <kraxel@redhat.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Peter Maydell <peter.maydell@linaro.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Richard Henderson <richard.henderson@linaro.org>
  Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   edf1aa8d44..89d2f9e4c6  89d2f9e4c63799f7f03e9180c63b7dc45fc2a04a -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 08:20:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 08:20:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229200.396649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpR25-0002DI-EM; Tue, 23 Nov 2021 08:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229200.396649; Tue, 23 Nov 2021 08:20:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpR25-0002CZ-8x; Tue, 23 Nov 2021 08:20:05 +0000
Received: by outflank-mailman (input) for mailman id 229200;
 Tue, 23 Nov 2021 08:20:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dRhM=QK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpR23-0001tw-Ky
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 08:20:03 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 278b0301-4c36-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 09:20:02 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2050.outbound.protection.outlook.com [104.47.4.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-11-uDH_VCh7PnSod8g6bfowVQ-1; Tue, 23 Nov 2021 09:20:00 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5599.eurprd04.prod.outlook.com (2603:10a6:803:de::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Tue, 23 Nov
 2021 08:19:59 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 08:19:59 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0064.eurprd04.prod.outlook.com (2603:10a6:20b:f0::41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Tue, 23 Nov 2021 08:19:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 278b0301-4c36-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637655601;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=j3f3fItM/2EEtn6K4PEOh/kZmDblSi1Mgtv0uVR/tZ4=;
	b=cxacPyLsbVogtXpA+kVFTDQg15Wtxw/dOmzb3IPXgh7L6pSk8lEF8fwC5KPNfHd2SYQxfc
	Pz9WI+ojmpw1xtIY1mFxTLsZDThYe/yHz8HVwPtkcW5ffLvBBFuU9K3RLjmWlawL4AjqY0
	qk12IfJ1idKQWzIYfenmbEvd9Wq83b0=
X-MC-Unique: uDH_VCh7PnSod8g6bfowVQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HgSnmEbM84TZMSSLL4V4ntxWkzrvMurvT8QZvj7cjkymvxUJGMHnmcMzev1QuIABiajch2jW15SbqObPcpMoE3pIeAELol8UpVQAzA1CywvQDlL/2jfmwExhIsHqnKedzxOk9RQhw/p4/9RuDQKRHbkPT+YliYQw/5urfqdpxQuof7wOXCYN7A5PgierCGcN3Cf6gentux5nwKTLDTAqceve03jBZ5VNBYQKfoxGAkg+yb/OKlVcY1OrKrqgEBM/vYoHJPM24EasqBdznoKiiRkei7qdTeiIxqY5PbH73HKUTIIB8U0C/Vn5uOY4tQDeKkJgAv7ikGzJfBfQSYjFdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=j3f3fItM/2EEtn6K4PEOh/kZmDblSi1Mgtv0uVR/tZ4=;
 b=dTSctCp/7lGEMyIvbMAhzqKN///TGUu450LWcbzyfCntGz8Ou0D1sxQY6JVe7cWh9FKYel8bJgdz2VPAPZScxG3Lk0kj+0Xb1/api9zQnvn9F85vRzbILPRYHMP1M/Cc4aZ8z/GtOn6NoA0+0aV510qyiZQdx3FUQqzKuTSLyi5Y135vZJaSlnC7ZqfUlLZBCMSnoFZhdCTiCfetyBWPKjwqlm69rD6SXlUj163N9yn5aRY7Jmd8oOCQBVQLEk1ZgTOidMTUMpcxqHyQDXZDZ3qNtcODrchAFa+Ou2v7bOnp8TfFIydeFVuI3DpZFGKNmiSu8qTmJP7/8NqV0vO3zQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <799aea46-80de-972a-571a-b0d946178f4b@suse.com>
Date: Tue, 23 Nov 2021 09:20:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v3] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org
References: <20211122221625.1473164-1-sstabellini@kernel.org>
 <2533e721-a01b-6659-71fa-24a8d2896e84@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <2533e721-a01b-6659-71fa-24a8d2896e84@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR04CA0064.eurprd04.prod.outlook.com
 (2603:10a6:20b:f0::41) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bd2f6e95-cc70-4a9e-9320-08d9ae5a0a01
X-MS-TrafficTypeDiagnostic: VI1PR04MB5599:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5599F10DBEE4A2A9EF75F0EFB3609@VI1PR04MB5599.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	j0EaLnnShGJWbRQV9oYzEOtyp7zvj71q2lw6Ts9Pm13vQSXCDxF9z2KemuTjoO7FTO/Iw4mLHgBpU/0G8l6ocb5dfUuMvajPYxDIE033yCjG6u3aCT6c3atuSx80EEPwo/M+uI8rvm1WO3ixuh7KbjfHDaSlAbC5edu3jXr31+gKvOiFLEjF9P7uCBMFWiFc11/4IZ0Xco3UjxtUkMRWeAWkbAOnKqeKciaPamanyqtBX1vuZWaJOrbALfhmRqE+IaabEbFXOIgg66ndkVP6vchuK3jUaNHPrP9UOgrwFLRu+xrVwVmAqjqZECXHR5A8c+8vy9Kn4TLoVyNuZV9v8MQjYSE/XPoZa9r+uGTumuE7cIS42IT5gEm6s79S9tZR+vRPoUJHQtHeJBKO+rNt9CKm0Ej37oZoiL5S8XIaiZARexXCz+7keJIw7d/FyRnqHOTM0UOUk1vGW5w4Jz9fhiOMb3MHedoHLRkcWJsnRNShfxRE5B4qlvpAaHmFZBLuPFwVB2gQ8ctOLX92gTxxtsbZ7tx+Orx7QT2Ft28olcihnaPcRws0vUI7Buq/WChtKL/nZqSP6peW6A7fZRCDMRsZxvpb5trRMBbAPljQSRnxXfXpy93bH/47fG6MAkznyIl5Pc+IjpBnJz2Tz83oQl6zeKjNXhP6Qpy3/FBkkXcgEK0nQlR2/qXVUIsqbsNdqRbOJ44bBdA5MObBo+9FOF4o4cB9KyaJi4S+h/wbdPwvcouFjuekzWQcAtP6RkJD
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66946007)(6666004)(31686004)(110136005)(83380400001)(16576012)(4326008)(86362001)(38100700002)(31696002)(316002)(5660300002)(66556008)(66476007)(26005)(6486002)(956004)(53546011)(508600001)(8936002)(36756003)(2906002)(2616005)(8676002)(186003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T0lZeWFKMElIOWdlVTRWcUtwTDEwelBtdWNmR1VuWGd3eVF1NHE1eU1RZFcw?=
 =?utf-8?B?WEQ4UG5pWGFPc3pFZW1xYTI1RWRFWGwwOW9wNytHbnNtYU5zR0tnWTFGd21v?=
 =?utf-8?B?bitOY0Y0dFNjdGVRSjdSZWh0cnV5UGJBSG9pZU9zNVNjRzdtMURmcnJycnpL?=
 =?utf-8?B?Q3FzYloyWmJqMm5raVZUNDR5RGtlUmVpUnpESi8rcTZrd3hDcmJETzQ0NERp?=
 =?utf-8?B?SVlhQTUzcEFHUEtJZGRoZDNXdW9Jekpwa003bWdFVVlKMG51bEJhcTMyN0hC?=
 =?utf-8?B?eHFkYjlwYy91Z0tjWW05V3ltYk9CeUt2bEY4Qm5vVDBXNGhVWlJKWDlnVVZK?=
 =?utf-8?B?WjQ1Y1JvVHBvcnBIRFVOSWNIM05IckFNT2tJOTB1Y1NpamJma3MrQm1WUTZ3?=
 =?utf-8?B?OHFTYnNrTUdScWpoRGJqNDBZMVhSMW5sMXJpZG9telBHcnIxQVRxRzM4YWhK?=
 =?utf-8?B?TXV4Slh0OS91c2RGb2wyZjRaTTVmS0pWcWt1dElwTG9OL0thTmJLZVBFM0M2?=
 =?utf-8?B?aGlWY1IrRUlTQU9HMzVxMjJUQ2djcXdvd0xFWlRpTE54RGxxQ2E2TWxDanJn?=
 =?utf-8?B?TTQ1L29tOENVdDhacVNZOXpPb3RXN0hNa0g0b1JnN1lQemNNTnVYNlZPeXJm?=
 =?utf-8?B?cDR2ZEZFa2d4RHVZdUc1Vk9JenJ3Z2dXTDR2aENPd2VVUzhMaFFUT01oMkFY?=
 =?utf-8?B?d2FwVlpMbFZhQXFleFRqeHFxVE44R01hZ3ZUSlVJWlk0WHNRaFpWdUhPYVlv?=
 =?utf-8?B?T2o0T0ZwRENUalpDeDI2NHFoVTh3Sk1JYlVKVGt0eHhpNnUzWDREWkhGQytz?=
 =?utf-8?B?dGVwWXdFTzNmVnNPS0FMbFhMK1JMeGI1ejB1U01xazFkR044MlEwQVdsOGw1?=
 =?utf-8?B?QUhPWU5XUzlYMHU5RzUyZUR3Mjd3TWNnYXJmOGZhTUN5QVBYNE80UjdQbGJw?=
 =?utf-8?B?YlcwSEJIdnhuN1BBQVRCc3VObmhRWDlKR1BmeGZXbjgzeXVYSWxtMGxtU2R3?=
 =?utf-8?B?YmhPck9ydTEwdEdrY0JXQ3U0dTMwUVYvRHhTc0ltMXVtaHJlQUlybG80WStv?=
 =?utf-8?B?bkI3QlQ0bUMrM2JIQXNPbXhLekZTN21ta3BHek90YnM3alkxaFhDOXNNNFZI?=
 =?utf-8?B?czhWVTExM2dWV1NXVVppeHhLVjllQ2ZQNHUwc01wYkd3UjI2Qyt4QXEzcUN2?=
 =?utf-8?B?WHJqZVQ3SzZhQ3dDQ3V5djQ1a1dhTno5dWV6YTkvQWRNdXhLQitWdGJNWEc2?=
 =?utf-8?B?TW5iMk9UUjBGbW5DSE0rbTRGTWh6N3BzOXJaRXBSeXNBaEJyZm9OTmxWbVZN?=
 =?utf-8?B?ZlRwaWdpMExqb2czVHZqbDN1Y2hMVVRpcUUrbWlZKzczL2YwdkdyNUVlUDdk?=
 =?utf-8?B?TExXMUdIeXhmMXcwTm16RmgvdVRUTERsVDNNNVZUeDJTSWxyZ0hKcGMrS0Zv?=
 =?utf-8?B?MzZMZFFnQ2c4ekVteFBvOXU4TUxoUTY0b3FwWUFWaVBZWllmblVycmRla21u?=
 =?utf-8?B?cVZ3KzhESEJmV0Vvc2t0MDNIZVFUcUEybGR1U1MrUkxRK1JtQmphU0hIbXVr?=
 =?utf-8?B?alExS3kvTmJjaXlzNHV2Z1RYMk51Q2J4SER1REYvV2hDbUM5RndlWW5iQXhm?=
 =?utf-8?B?VXJ6SVRjM2xxUytWN1JzRU1ZSmlESXFmMkxLYkNyWldRUXR1V2RhZEFGdkR4?=
 =?utf-8?B?UGhKc1I2T3Ayd2hPb2hlV0F1YU5lZlRwbkEySXJyQzVYbVEzRVBJdmVyRk5Z?=
 =?utf-8?B?bmZUNi9XZDIrVFliTUlTRmFOd2ZhODNrWHJZUFNpTXlCN3NkQ0QwTmJVU1RN?=
 =?utf-8?B?N3RZTjZXeVVuRG1JNkNPaHVZMVRxbDRKbk9SNmVWS3FESk1rVldXSDgwazZ6?=
 =?utf-8?B?M01CSXlQYlhHeStiS0ZyN3RLekVic2YwaXBub0xVdlZQNHlVc1RYeE83REh1?=
 =?utf-8?B?RUEzSjBqQTFUNE1VWW9WQTVYRVI4S1VhTEtlS1dzK0tGYjFNbkZEVDdsSXNT?=
 =?utf-8?B?blphWU82a3J0ZnVKWDlMZjU1amZ3MEhaaTFJSUVWV0JWL2pkYmhHUitEOUts?=
 =?utf-8?B?WC90dkl0RTkzUnN0eG1aR2pSNStobk1mUEUwUUFwcFJYVmVtU3o1QkM4bXRv?=
 =?utf-8?B?NVQ2eEErdmRyVXZyL3ZibSszM1NraUdxUkozQjNWOFp6TXl4OS9TdXZLWTIr?=
 =?utf-8?Q?wJuOPdWVsm8rMTiOHlaf1jQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bd2f6e95-cc70-4a9e-9320-08d9ae5a0a01
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 08:19:58.9959
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zeeK/IwDme97fmBjBYcT1TVnX3Kq5hQIfUTcbZW49CrKYcHfTBoyFfxsnxA/zWWidsV18zpLw05faqCkwtEeQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5599

On 23.11.2021 06:42, Juergen Gross wrote:
> On 22.11.21 23:16, Stefano Stabellini wrote:
>> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>>
>> If the xenstore page hasn't been allocated properly, reading the value
>> of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
>> error. Instead, it will succeed and return zero. Instead of attempting
>> to xen_remap a bad guest physical address, detect this condition and
>> return early.
>>
>> Note that although a guest physical address of zero for
>> HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
>> and zero has never been validly used in that capacity.
>>
>> Also recognize the invalid value of INVALID_PFN which is ULLONG_MAX.
>>
>> For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
>> above ULONG_MAX should never be passed by the Xen tools to HVM guests
>> anyway, so check for this condition and return early.
>>
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
>> ---
>> Changes in v3:
>> - improve in-code comment
>> - improve check
>>
>> Changes in v2:
>> - add check for ULLONG_MAX (unitialized)
>> - add check for ULONG_MAX #if BITS_PER_LONG == 32 (actual error)
>> - add pr_err error message
>> ---
>>   drivers/xen/xenbus/xenbus_probe.c | 24 ++++++++++++++++++++++++
>>   1 file changed, 24 insertions(+)
>>
>> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
>> index 94405bb3829e..d3ca57d48a73 100644
>> --- a/drivers/xen/xenbus/xenbus_probe.c
>> +++ b/drivers/xen/xenbus/xenbus_probe.c
>> @@ -951,6 +951,30 @@ static int __init xenbus_init(void)
>>   		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
>>   		if (err)
>>   			goto out_error;
>> +		/*
>> +		 * Uninitialized hvm_params are zero and return no error.
>> +		 * Although it is theoretically possible to have
>> +		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
>> +		 * not zero when valid. If zero, it means that Xenstore hasn't
>> +		 * been properly initialized. Instead of attempting to map a
>> +		 * wrong guest physical address return error.
>> +		 *
>> +		 * Also recognize the invalid value of INVALID_PFN which is
>> +		 * ULLONG_MAX.
> 
> Adjust the comment, e.g. s/ULLONG_MAX/all bits set/ (in the commit
> message, too)?

I also don't think the reference to INVALID_PFN is appropriate here. Afaict
the two aren't the same on 32-bit. Plus I can't even find a constant named
this way in Linux'es include/.

>> +		 */
>> +		if (!v || !(v + 1)) {
> 
> For me "if (!v || !~v)" would be more readable, but I don't really feel
> strong here.

Oh, indeed.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 08:53:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 08:53:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229207.396660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpRYK-0005ax-24; Tue, 23 Nov 2021 08:53:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229207.396660; Tue, 23 Nov 2021 08:53:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpRYJ-0005aq-UM; Tue, 23 Nov 2021 08:53:23 +0000
Received: by outflank-mailman (input) for mailman id 229207;
 Tue, 23 Nov 2021 08:53:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r6oU=QK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mpRYJ-0005ak-1B
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 08:53:23 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on062f.outbound.protection.outlook.com
 [2a01:111:f400:fe0d::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf1be517-4c3a-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 09:53:21 +0100 (CET)
Received: from AM6P195CA0081.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::22)
 by DBBPR08MB5945.eurprd08.prod.outlook.com (2603:10a6:10:1f7::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 08:53:18 +0000
Received: from AM5EUR03FT055.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:86:cafe::a7) by AM6P195CA0081.outlook.office365.com
 (2603:10a6:209:86::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Tue, 23 Nov 2021 08:53:18 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT055.mail.protection.outlook.com (10.152.17.214) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Tue, 23 Nov 2021 08:53:18 +0000
Received: ("Tessian outbound de6049708a0a:v110");
 Tue, 23 Nov 2021 08:53:17 +0000
Received: from b811162de92c.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 6E09AACF-90E8-47A5-8FDE-210173A09C51.1; 
 Tue, 23 Nov 2021 08:53:06 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b811162de92c.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 23 Nov 2021 08:53:06 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM5PR0802MB2435.eurprd08.prod.outlook.com (2603:10a6:203:9e::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Tue, 23 Nov
 2021 08:53:03 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4713.025; Tue, 23 Nov 2021
 08:53:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf1be517-4c3a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rcfkK0b0W5U3kP5Zbi+Z4VsMn1l4pZtiGvv1C9QIwlg=;
 b=CV/H9md6pTxjpEawtzCjn9ESQHRqUMxz8ST2CAc/cHjr49J8UkVBPyx/Ylg84129RVzTCe/encX9jsiP5Vh0EDnrVSTvk7HyApj98hLhEUSP1fCeLLQo02eG7r3XbqmdkeOmgw0njyXo9JR2PseYkZNuKGsHujnBFOk3mizTZRw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: a1dab8ad0418b699
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CQKJKt1+MrpXcRa0ZDTrcfmaM3H+1+EdzFfsczrTo6wmEo1PNcpLXvHs52LdNoY+/kVHaIashigw9aH/IKGkZonHEixxnx7k2mJHGczo64ywIbToix0xTzSwEMMX/26C/lhjE8IWxtQkaD9yBK/YXi/vMHLtyE51MgeTc+ALM2c/HyVj/z19a2XBsKFCwI0iYL3BTsR/a7VOyr3Y8iaYYcLS2fFdlwWuyeH7oSwLeJtTvyi9GsxPuMrWqQNhjy4EjRAqm3Nc6n1bt/auHgvsqyYJYI9ZHfrhEMCk69kZFJ0HEJT6FjkVK6iaU6NMOppV5DSiM/lG3/FB6eVTEK4I9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rcfkK0b0W5U3kP5Zbi+Z4VsMn1l4pZtiGvv1C9QIwlg=;
 b=muk2ZDUt+Jq/fwzGjzaiIYjzMksUY6vPdzDLv37BZgl8ybqy8sB1X9C2J8Ax2C1Fg7CRGnlWoTKzbCKRyWKVjbwqTiOIDhNfaaH6zQbJaxzTU+0w6e9Ctic8o3nHYzh9knJBQSvAtHENPxY6zbOuUUSfPrPtqsRR5+DmH01wvt59UPbFsuD4wGO2celBOBqGGBKv2ozTWzKlZJZ6rVX9uQ/FmW1en2/NMEmkmmEhQlS8pK1sgdcD1B99CKrrmT6Szi4bjiCqeSUX7DaTO4TITJjr69P/auYgdxnX7NH0T8CtEUIICiEVbtddyBLdSkpKEybgz0fyr6n3N72WTNcLRw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rcfkK0b0W5U3kP5Zbi+Z4VsMn1l4pZtiGvv1C9QIwlg=;
 b=CV/H9md6pTxjpEawtzCjn9ESQHRqUMxz8ST2CAc/cHjr49J8UkVBPyx/Ylg84129RVzTCe/encX9jsiP5Vh0EDnrVSTvk7HyApj98hLhEUSP1fCeLLQo02eG7r3XbqmdkeOmgw0njyXo9JR2PseYkZNuKGsHujnBFOk3mizTZRw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien.grall.oss@gmail.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>, xen-devel <xen-devel@lists.xenproject.org>,
	Wei Chen <Wei.Chen@arm.com>, Stefano Stabellini
	<stefano.stabellini@xilinx.com>, Jan Beulich <jbeulich@suse.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Rahul Singh <Rahul.Singh@arm.com>
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Thread-Topic: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Thread-Index:
 AQHX3WXgMxQOWtsAQkCagYrL+eVmYKwLGnaAgASCuICAAF76gIAACHQAgACBjgCAAE4VAA==
Date: Tue, 23 Nov 2021 08:53:03 +0000
Message-ID: <B4D77172-9AD5-49CD-90E6-872AB2F13258@arm.com>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
 <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org>
 <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com>
 <alpine.DEB.2.22.394.2111221157050.1412361@ubuntu-linux-20-04-desktop>
 <CAJ=z9a1L5v2+wC7-aaA2PjV2FzrFXjT-5t_0ijznGKvwywvd5A@mail.gmail.com>
 <alpine.DEB.2.22.394.2111221241450.1412361@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2111221241450.1412361@ubuntu-linux-20-04-desktop>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 3262e31a-6238-48a9-198c-08d9ae5eb1cc
x-ms-traffictypediagnostic: AM5PR0802MB2435:|DBBPR08MB5945:
X-Microsoft-Antispam-PRVS:
	<DBBPR08MB5945C997A0D87FB31B4E54949D609@DBBPR08MB5945.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 GudLp9hZ4/oLNjiVRLK0NFlVMWUJZvuPKKcXCss+PJNLRqvkQQz0YuYJNjYr69e3ogRfMwN07mjBKEXS3Q8rxlO3Gdfvg0mBbo7AfpSFDN6/ACFvSAOrlVCd3S0GGEKGiMlbaC5vK5DqXn+2qVcmdInl3Sx/jqNNC7RtUiAkcaP0ZOpQ/iuPEW6PuUNuqFR2+X9dOCiLay1Pwb2D54v6Rk0FTFI9bo2N4RAaPhp+tSMnndOTBl2JKpTKj3EY1H8NkGsyLC8rZHnWtIYm0EjM2y7Wf519OTpzMSx3Ldd2Ad4TKuQcgROSKEZIKkIsw/HPj5k2erQPmAqTVHkp3VRyH4vu1VICx9YWVKmENh+F0O2+QZNXTfQiDWv/Xs3CtQ9A8lFv7gvq+dsBhrCHs5RlC9tr7Rn50UCVT2LYeHGbbTS5YIgAZkumBNbZWP3bFLnhYL6LbhgtQbSJxVjpvS57TJCsD7RIZqXoVFitUIOfj1M6A9mIzi8m8BtTrsHKl6O2kBMDOb0ZcZ+OVvuTNpyugSdBOChWTIuHB7uZe/puU+ox9ZDR4BBhAn0T831FZ5xgjvIf+iKzmn5i8usgadLUuCqx5E6u8Ys28ed3nCTBUEzMtCfJxkaPS84znxofYigNKixjdRIs4RD52siDrm4+EoDS4WytH3zu/XzpqOKORHZ0wgklXDQG0xRWXR4czgAKZbru0yl4jSIA/+8kQFq+9zAm7T66Hrk4jtrRy0WCrfg=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(316002)(2616005)(26005)(91956017)(5660300002)(86362001)(6512007)(53546011)(6506007)(38100700002)(122000001)(8676002)(8936002)(66946007)(4326008)(66476007)(54906003)(66446008)(6916009)(76116006)(33656002)(186003)(2906002)(36756003)(6486002)(508600001)(66556008)(71200400001)(83380400001)(38070700005)(64756008)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <A1F8B2D084A90744A22A33A5CC91D6E4@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2435
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT055.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	11e13512-15d2-4ffc-19f5-08d9ae5ea913
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	4GRfGq3/qXj6cuBYd2j5knKPSDFtkLqTXKKlZjDjPtyMvAWKqBtPxbr2Vi89+lP8taLkG0ouzXMguOOSyXvBhbmcEnrSAKSu6dgdmPoRHKTWE+BN2kjC9dwzoToelUgiU/cUCDIfdPaTCwYiXAosALtbQwZnql6MtUUlfjE7Xxcapewb/1xRDlSmrtlo1hOUzgGwnyjUXTt7J5Jj0S/m3slwU3BVr1Ni2BORsFczR6UBm5siVgqWI+mKXs14JgWvY9Xu/gvHvBnFWYyBf9buviqZ6iErV4yYTaDX/4SRc329Y7z7T/BCV8ipvJtxYrublt74PT9QgV7neqVsiOam5xbSg551YWreINobuNtfUfMuE96FKqlnEh5X1YWRIs/mp7KEa2p5+V8qo9gjPW/sUQOeSRDUM0xppHlYxIB7MFl+xbF0dAYzLqAturj8ji2wKdaMiWmVaCPMwZVQ/gDpF4Ghhiwd6haxSxSMWL8nM0RohKsp7QLJDGRSAMGC/jw3DE1U2rjZ+fBNl4UsqW1CmfFMtlUwZHUY9RbRvU5kfvLMz0d6kgB5CEiJRUjISefKkzeEXBj599D/+Pq22SB8J0qsaZIk3j7liySZoNtxLxVtg5FgcLPdURmoeC2AKidy2PyBwTShCxeeEhm/3BGhR1JCgCEdhprJf2Le+kdwMNuQjsX7QWh/cJkgxXqLqdNV9VcNfkZXaOYIZJ81rjASQQ==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(316002)(26005)(6486002)(8936002)(70586007)(53546011)(33656002)(54906003)(82310400004)(83380400001)(4326008)(2906002)(186003)(6506007)(47076005)(70206006)(508600001)(36756003)(5660300002)(6512007)(81166007)(8676002)(2616005)(356005)(86362001)(36860700001)(336012)(6862004);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 08:53:18.2078
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3262e31a-6238-48a9-198c-08d9ae5eb1cc
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT055.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB5945

Hi Stefano,

> On 23 Nov 2021, at 04:13, Stefano Stabellini <sstabellini@kernel.org> wro=
te:
>=20
> On Mon, 22 Nov 2021, Julien Grall wrote:
>> On Mon, 22 Nov 2021 at 19:59, Stefano Stabellini <sstabellini@kernel.org=
> wrote:
>>>=20
>>> On Mon, 22 Nov 2021, Ayan Kumar Halder wrote:
>>>> Stefano > It doesn't look like we are setting dabt->write anywhere.
>>>>=20
>>>> Ayan > Yes, this is a miss. Depending on the opc, this should be upade=
ted
>>>> accordingly in decode_64bit_loadstore_postindexing().
>>>>=20
>>>> Stefano > Also, is info.gpa in try_handle_mmio already updated in the
>>>> pre-index
>>>> case? If not, do we need to apply the offset manually here?
>>>>=20
>>>> Ayan > Sorry, I did not understand you. This patch is only related to =
the post
>>>> indexing ldr/str issue. Why do we need to check for pre-indexing ?
>>>=20
>>> I thought you were trying to handle both post-indexing and pre-indexing=
.
>>> It is OK if you intend to only handle post-indexing but considering tha=
t
>>> most of the code is shared between the two, we might as well also make
>>> pre-indexing work (unless it turns out it is more difficult).
>>=20
>> Wouldn't this effectively be dead code?

I agree this would be dead code. Pre-indexing is handled by the hardware, o=
nly post are not.

>>=20
>>>=20
>>> In the pre-indexing case, I would imagine we need to update the base
>>> address before taking any other actions.
>>=20
>>> From my understanding, this would have already been performed by the
>> HW when the syndrome is valid. This may also be the case for
>> the non-valid case, but I haven't checked the Arm Arm.
>=20
> It is not clear to me either, that's why I wrote "I would imagine"... I
> was guessing that it is not done by the HW in the non-valid case but I
> don't know.

This should be handled by the hardware here, so only post actions should
be handled here.

>=20
> Of course, if it is already done by the HW, that's all the better: no
> need for us to do anything.

I am wondering though if other types of accesses could not be handled here
without major modification of the code like other sizes then 32bit.

There are also post instructions with shifting but to be honest I do not th=
ink this is really needed.

Regards
Bertrand





From xen-devel-bounces@lists.xenproject.org Tue Nov 23 09:05:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 09:05:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229215.396671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpRkF-00076p-9d; Tue, 23 Nov 2021 09:05:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229215.396671; Tue, 23 Nov 2021 09:05:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpRkF-00076i-53; Tue, 23 Nov 2021 09:05:43 +0000
Received: by outflank-mailman (input) for mailman id 229215;
 Tue, 23 Nov 2021 09:05:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dRhM=QK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpRkD-00076c-Tz
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 09:05:42 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81747a07-4c3c-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 10:05:29 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-20-lJCnXF6INoWdWKa1AVnaoA-1; Tue, 23 Nov 2021 10:05:38 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5904.eurprd04.prod.outlook.com (2603:10a6:803:e6::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Tue, 23 Nov
 2021 09:05:33 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 09:05:33 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR0301CA0039.eurprd03.prod.outlook.com (2603:10a6:20b:469::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Tue, 23 Nov 2021 09:05:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81747a07-4c3c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637658339;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=gpGiIk7XQQ/Jt8tQH0bxR8zhEm0WXiioQrFa3PtnkYo=;
	b=buvfdAvB3Tre1vtL4D1A9MBhAPqUDL1i8movtoYmu39Q9EBACy0743DEE2cdLdbRrw4pLx
	EB77rswKScpY6qI1NO1LduXxRsP2qsl302KHhY0e8rC0ZBygNAG/K0RrCd9jzVVoXIdQwj
	nX3xYZw9VB08zF4jMQQV6zLu9b4VhFs=
X-MC-Unique: lJCnXF6INoWdWKa1AVnaoA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=La9Xh4v4HIoMRrdqY9IT3PUmsmWHWlmLHTBk7n7pDicxUQEICQ5WYvGvOYBbdOCMPM8nb+Ua58xo6TTs9bozvbZi9QYU7KL5ZoWCQmH0AKdfBqm1taHuGOWvMiYxxEpdEoXAtMEXy9v5C0q6o3KvjK0st0zZbS5vALgJTBJSWfiW9dmWUy15HXfB1L3JJUOUDbsDnadSCaDNDfzmO09OrmSAnuxjjqGipnzrd1Z1Ui8t56ZIqtbFz36wAdSdEgWTayFFktU1JYfzCe9FgiHeEjL6vMQNc8c8Lywtta90+U00AOTBFBa8FUo+LPFNUlI/Gb8XILDVG0LkxwwETK1erA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gpGiIk7XQQ/Jt8tQH0bxR8zhEm0WXiioQrFa3PtnkYo=;
 b=OWG+vSUFzOetl47xtdFAzoydCYkN5EZmmnXU3LH2RQi5gzs8WSYm31kHpfa0vuOZsf+E8v8Tb+/399kNzefdazXI6V1ZSyxInKl1U6WhCymzjM+tz5d3BW1QodDjIQYYb/9YMjwC2PMza2JCWURWF75drgfLQunsmiK6IB7Nd1Z/otp8b8bHbnxXYsCJ69KAF5lm3pWM4BtHJ3XzyPzkzekxZljXjLCi8mUjAj76FX/0a4DObevR+W+ZReU7pZBLd8uRso+hnAygUk+OINCIR4aRoLPEccnp1/UXPTaw/CoBYUSBpuO03Ekd4gceHaknRIVGQkfEZSC2ek0DNE/UTw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ef9fc5ee-9c91-6963-0cfe-35b7188974c8@suse.com>
Date: Tue, 23 Nov 2021 10:05:35 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 4/5] x86/traps: Drop exception_table[] and use if/else
 dispatching
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211119182106.14868-1-andrew.cooper3@citrix.com>
 <20211119182106.14868-5-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211119182106.14868-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR0301CA0039.eurprd03.prod.outlook.com
 (2603:10a6:20b:469::8) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b83dcd24-dee4-478e-face-08d9ae6067f1
X-MS-TrafficTypeDiagnostic: VI1PR04MB5904:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5904E267780326F68EE03BEDB3609@VI1PR04MB5904.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	dusxcx416AbWlGBRNlfkeaI3805kMKy9pB4+qMNoPdhYrieMSGeRVl2mzod3mHNzBN0s8wbij/n3x/WvoKx55mjCls8xNF8v0sEcPdl6ZmzTM2/AKodPb08WgAzcBZYRfXlmedecb6rDamaec4gy98bIvXsaGEzhOGdUR/Se5y+dRtNAO0fLxrKyUYGfJwXw3/laHEvy9POqHD2tMK8iF5B0EmsIUI1GARhT7S8vWlPejZdwk5Pocjqu37YOQcQgJt6MJEMnDG3ISelWFz6pVZ4K+9YbO0VJUpFlxdELiVgp+MP38bWTQ6JKhs5i03osPnDjqBb6cbtGabyenVp2oG4TKpFhAMa1aO4P7jbMSb3Qj0g68F3HYhnKoUEcm82jkMvD7/XW9WZIXT8Tv6b0KHUrsQkHeG6iek2OJuZLsO6cMvDed7hnYMVaEf1oCf9g3qW2yOzLK29ZZsky9OH5RzdLmeMcVG1YkdPb/mR3mdBOq80XZaYodXg88+gOpggcw6HLcp/1nwRLoTeVV0HzSTj5bBAtVvmgMAN7kAVsFsMF7MtOwLxtaZpYxqCXGnqvB5tgFSbEMadEwH85s0WvLs3oHcRjXTkN3J0KsXDB50qJkDmvsOFfGAuldkHtawY90EbJIbTQnPY09IDTFgZY/bQEM8KQd3rp6ygMlAs7Bt59HxetpMFHzFMYCVayjaV96UVWCGDS079ZZr+FxTXw3PGEOiX2cuJgq7/5FMdhiFw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(26005)(2616005)(956004)(31686004)(5660300002)(86362001)(6916009)(53546011)(38100700002)(31696002)(8936002)(66946007)(4326008)(66476007)(54906003)(8676002)(186003)(6486002)(508600001)(36756003)(66556008)(2906002)(16576012)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZS9CWDMzNHFCU0RSTmFYM1RXUDE2akd0dWQ1NXdQSC91bzJwY3JtUFhFcHVN?=
 =?utf-8?B?d09YbFJ4Z2QwWUNjbXFJTC9RenQwVFV6UU1qd2tmVG10ekNRYUR3aVBaV1E2?=
 =?utf-8?B?WnZVcll4b3d0Q3BlYnpaWVoxeGZLeUt0Yzd6OHhTQk5ic1RFc2Q2RTdwZkZY?=
 =?utf-8?B?S3FPN2NmRTgxZDlSMS9qTm5qUjBmNFZmZUJEK1FnbC81dW5ybktBc2FzTEo5?=
 =?utf-8?B?WkQrblhzdjdwR3BnVXJoc1lUNHN4WnBwb0VMS01mQkdpVUxhWGpnbFZVbXlT?=
 =?utf-8?B?VkRoTWdtU01VZlhZQllGTkhQL2lQTjgzcWtlamx4ZlBKdm5xTngxNnBzK0M0?=
 =?utf-8?B?ZU1HVUtQQ0VlZTd2d0sxY2Z6UW55ckFoMEhMSmcvalVkSUtSK1pkSWRTQitu?=
 =?utf-8?B?aGdvNVNiZnpKUFRrSURNaUJlaGx6M0cveTRBR3ZPL0xtSWxUczRUUzJEcExx?=
 =?utf-8?B?UjRpdFN4MlIyTHVrM2hxNjBxYmlzd2dKZXZiTytnR2t0M3dhaklQSlRDU01n?=
 =?utf-8?B?WW41OFNFaW5rc2MzZmMvWDNEZHpKYjhwS1puR004Q3phUyttZjJXRWdJdmMx?=
 =?utf-8?B?K09yc0RRdUpLZmswTzk3VmwvWEJyckQrZE5QQ1F0bDRkalJxZDdmNWh3N1VO?=
 =?utf-8?B?N25aT0Voa1M3Vy9zYnNwRHg2d2dMY2xSRTNVOEVBUjhFQkVURzgwWEl2b3BD?=
 =?utf-8?B?NStFelJyNm5DU1Yza3J5WmE0V1A5TUpwZ0ltVkMxc0hXUjNxN2xDU1NtRE5N?=
 =?utf-8?B?UlFtcXV1WGFwaGZUL3hXdldKVmtWYWtiVVJHVzVuc09DU0c2a1owRjlMSWhM?=
 =?utf-8?B?UG1LN1IwRmtsaVdJQ080NU5KOWxBSFlpUnZDUzJLS2kvSHNMWXZURTFaL2Rq?=
 =?utf-8?B?NzdSL0RreWVOeTZHdTE2L25QSWRlbDdTVVN2bCtTakNLcVhIWHArNW0yTU1h?=
 =?utf-8?B?c1N6ZzZkT3pNUHZGTzlkRmJkT1UyWUorcWtiblRTNDRVQkNMa0hvU0I3Vm1E?=
 =?utf-8?B?OWFvN1UwdHI0TmFxcUJPc3BTQjB4WE5RUXRJZ0diTExIdEpLZ252RSs4Yklu?=
 =?utf-8?B?cXJKeEZLOWtqa0VIc2FpK1ErYTZ4NGhqZUxXbEFHRk1EcVdnSU55RnFJYjVF?=
 =?utf-8?B?U3VhOC8rY1Z2Q0JOUDlLUW9TWnhhMEt5aUo1ZXhhTUVOamZ2MTV2TTNtTGp3?=
 =?utf-8?B?bDVHWWdyRWhmQTF2QTY3WlF4aVF2SmJDbFRlNTlXRzNuWmdQaDV2RHdxUVJk?=
 =?utf-8?B?cllDbWpzT2ZRMk1hWU1iWnhZSU1sQzBLelg0NmNMdU1ySDg3SmdvUVRsOTFt?=
 =?utf-8?B?NDM3SXFZMW9uRmRlVjNLQ0J2T3FjWTByanBsMnV0eUw4ZWhYQzMvYmlXMmZu?=
 =?utf-8?B?anJpZXhsajdwekNPT1FIODVQeE1WUmV5NEdrTWNzQnNiczdJYS9oZDljRllV?=
 =?utf-8?B?WUNaR3pMdExhZFVGSFpzeWk1M2diVUFScFYyOWVHaFZoS1l5ejFEeGlaODVH?=
 =?utf-8?B?N0FJbWlab21Jd1dxR2tZQ08ycVBGeWdQcWpUOUZGWEU0eG5oeEdmUGNQVjFE?=
 =?utf-8?B?aStRSXpiUEZtZSsvUTNrZTZDL3RmMlFiOFRsSnFvSlFDNHg1VkdiSnZLZEsr?=
 =?utf-8?B?WVZuRTdFWjJESTBwZzQ4eC9ZcU5vREVweXhmZHhqSWoxZGgzMDg5aXRCRFlv?=
 =?utf-8?B?SGp1WnR5MXBZT1FMWXZzL3BacXJIMnhPbGk2Z24wdTM0OU5VYzdXRFQxcGds?=
 =?utf-8?B?MGNUaGRnTFNLLzcvZkZka0YyWHpsMlNNdi91YmJIZEE2c2N0bGdUN0ZtODBY?=
 =?utf-8?B?dlZGYXZsRVpKWHJXTFU0Y2dvd2U0MURocGZ5RDZJU3lCN0Q0MjlWMEc1NG4y?=
 =?utf-8?B?UGRhMWhwSFBkOW84RlpqYWpiUy9EOEtkdTd0UitlbGVkWWdQckpQYURua3Ra?=
 =?utf-8?B?eUhScVVCSCtva2hkUWRhMmI2b0ZDRExjampHcjlKZG1QWHBSNEIvdWkwSXN3?=
 =?utf-8?B?MWtvelpIY1E2M0xOUzhDenlKSTJyT1VFTDVQR2dpdjhSTWMzUlRHZTU0aXJl?=
 =?utf-8?B?YmVrelJESk5GbHNDbUN1RkVxZlZjbE5SdHlGQ2NCcVdESnFYcTZERjRiMTJq?=
 =?utf-8?B?TEhkblh3czBzS24xa2VnR3BtSzdlVURqZDg1OWR1ekpYN3NCL3NRcmpnQ3Fq?=
 =?utf-8?Q?5p8BDvRaKq5qHhUYmRLVVck=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b83dcd24-dee4-478e-face-08d9ae6067f1
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 09:05:33.5250
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yLpPbix7PimnNTuNcZrFvL6SBCgXs96sPd+blc/0Sp7teOA3bnQk15u/ANxumO1PQRMNRTSK9kunyt53CvFAQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5904

On 19.11.2021 19:21, Andrew Cooper wrote:
> There is also a lot of redundancy in the table.  8 vectors head to do_trap(),
> 3 are handled in the IST logic, and that only leaves 7 others not heading to
> the do_reserved_trap() catch-all.  This also removes the fragility that any
> accidental NULL entry in the table becomes a ticking timebomb.
> 
> Function pointers are expensive under retpoline, and different vectors have
> wildly different frequences.  Drop the indirect call, and use an if/else chain
> instead, which is a code layout technique used by profile-guided optimsiation.
> 
> Using Xen's own perfcounter infrastructure, we see the following frequences of
> vectors measured from boot until I can SSH into dom0 and collect the stats:
> 
>   vec | CFL-R   | Milan   | Notes
>   ----+---------+---------+
>   NMI |     345 |    3768 | Watchdog.  Milan has many more CPUs.
>   ----+---------+---------+
>   #PF | 1233234 | 2006441 |
>   #GP |   90054 |   96193 |
>   #UD |     848 |     851 |
>   #NM |       0 |     132 | Per-vendor lazy vs eager FPU policy.
>   #DB |      67 |      67 | No clue, but it's something in userspace.
> 
> Bloat-o-meter (after some manual insertion of ELF metadata) reports:
> 
>   add/remove: 0/1 grow/shrink: 2/0 up/down: 102/-256 (-154)
>   Function                                     old     new   delta
>   handle_exception_saved                       148     226     +78
>   handle_ist_exception                         453     477     +24
>   exception_table                              256       -    -256
> 
> showing that the if/else chains are less than half the size that
> exception_table[] was in the first place.
> 
> As part of this change, make two other minor changes.  do_reserved_trap() is
> renamed to do_unhandled_trap() because it is the catchall, and already covers
> things that aren't reserved any more (#VE/#VC/#HV/#SX).
> 
> Furthermore, don't forward #TS to guests.  #TS is specifically for errors
> relating to the Task State Segment, which is a Xen-owned structure, not a
> guest-owned structure.  Even in the 32bit days, we never let guests register
> their own Task State Segments.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

As it feels like we won't be coming to an agreement here, despite
my reservations against the specific form of some of this and on
the basis that the code change itself is certainly an improvement:
Acked-by: Jan Beulich <jbeulich@suse.com>

I'd nevertheless be curious whether in five or ten years time you'd
still agree with your choice of basing a decision on not really
representative data (at least as far as what the description says).

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 09:19:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 09:19:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229223.396682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpRxu-0000FB-KA; Tue, 23 Nov 2021 09:19:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229223.396682; Tue, 23 Nov 2021 09:19:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpRxu-0000F4-H2; Tue, 23 Nov 2021 09:19:50 +0000
Received: by outflank-mailman (input) for mailman id 229223;
 Tue, 23 Nov 2021 09:19:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r6oU=QK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mpRxu-0000Ey-0d
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 09:19:50 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20627.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::627])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b460c22-4c3e-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 10:19:39 +0100 (CET)
Received: from AM0PR07CA0035.eurprd07.prod.outlook.com (2603:10a6:208:ac::48)
 by VI1PR0801MB2095.eurprd08.prod.outlook.com (2603:10a6:800:8c::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Tue, 23 Nov
 2021 09:19:45 +0000
Received: from VE1EUR03FT051.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:208:ac:cafe::22) by AM0PR07CA0035.outlook.office365.com
 (2603:10a6:208:ac::48) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.11 via Frontend
 Transport; Tue, 23 Nov 2021 09:19:45 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT051.mail.protection.outlook.com (10.152.19.75) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Tue, 23 Nov 2021 09:19:43 +0000
Received: ("Tessian outbound de6049708a0a:v110");
 Tue, 23 Nov 2021 09:19:42 +0000
Received: from 34afdb4bd97e.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 8A11E55E-172E-46C5-B495-B2D3B79FE7AF.1; 
 Tue, 23 Nov 2021 09:19:32 +0000
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 34afdb4bd97e.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 23 Nov 2021 09:19:32 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB2965.eurprd08.prod.outlook.com (2603:10a6:209:49::32)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 09:19:27 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4713.025; Tue, 23 Nov 2021
 09:19:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b460c22-4c3e-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DlYhhnkxV5+rn3Am7ZGdO/r2/K+pzQACH2qYqOI0kYE=;
 b=tNBL1tiD2tDIVXrYJQVcxBERltcQDc1pY4DM9quYpGrfDLi5ootRq9jnZ5jxLJTpGQFvFsLjUfNWYbNRi28xL3vN5BsAC5VuC0RIOqskuT7aDNEnPqcqA7lrZnI1aYvDEuSiZuFQELF49r8zvPPijwNhc3X2I9b8ETg0DkQIVYI=
X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is
 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=temperror action=none
 header.from=arm.com;
Received-SPF: TempError (protection.outlook.com: error in processing during
 lookup of arm.com: DNS Timeout)
X-CheckRecipientChecked: true
X-CR-MTA-CID: a63ce3238dad0468
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bL59AMrwCazS3PIenXaoybmhrElS2pbQ7yGA1GpAZQBc4snt+1Wbt/d9rCVkNR/u0n7PM7kfvrHPE9SZQwbtHAH8dKn0GEKmU/zZhOy5jUxBVzs7yGsdbFr6iu7R3mNxU5jKvi4LyrSKu859yGa+pwvLkGvsZX4jtj33Qe39VHsa4IjGuSdoaXzWaTnQoVHo0UTtvEReghr/R+NBFdzfBkfzt/Jm7P9Wec3rZVrVo73kvGcbb2zXZas5xisc5x7GhU0KAeiwdjeqP7B4ruLDHfncdkHsdUm4w4IXAb4NtCgL2rZmjB9xLDw73mFOBicJqJmRkMCjVLaPWSnaHhmPOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DlYhhnkxV5+rn3Am7ZGdO/r2/K+pzQACH2qYqOI0kYE=;
 b=guBXJ+7Z/1oEZgRM2gmG8n7RSkWDQMOftNh3793lr7PeTJENn2Jvt85IE8EpDy2mE5L1qQdWw3z3aGsQofrB8JwgIKMncq/QRt8gVaUVC2NOYkyijDxG68TNCS+qNUIgrGigEkXrZuMOgjwCrePKsuE58sJUPoFCVqpRmBeWauibefNRb2+T5A7Y/+busNSrDbylo/xVts74hRuhRN5+IGxKhxim3e7Y4enBOyeD9EvnFvUDPpLWpHTjnxZJ5QmfB4YWCL56UfOrPTglPjrxAMOgEN9mf/WuOtz0BpMOkbALd8l/D1UFN69K0jVsBd7dxBithc0DCrfHwLFTu6j4TA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DlYhhnkxV5+rn3Am7ZGdO/r2/K+pzQACH2qYqOI0kYE=;
 b=tNBL1tiD2tDIVXrYJQVcxBERltcQDc1pY4DM9quYpGrfDLi5ootRq9jnZ5jxLJTpGQFvFsLjUfNWYbNRi28xL3vN5BsAC5VuC0RIOqskuT7aDNEnPqcqA7lrZnI1aYvDEuSiZuFQELF49r8zvPPijwNhc3X2I9b8ETg0DkQIVYI=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien.grall.oss@gmail.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>, xen-devel <xen-devel@lists.xenproject.org>,
	Wei Chen <Wei.Chen@arm.com>, Stefano Stabellini
	<stefano.stabellini@xilinx.com>, Jan Beulich <jbeulich@suse.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Rahul Singh <Rahul.Singh@arm.com>
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Thread-Topic: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Thread-Index:
 AQHX3WXgMxQOWtsAQkCagYrL+eVmYKwLGnaAgASCuICAAF76gIAACHQAgACBjgCAAE4VAIAAB2AA
Date: Tue, 23 Nov 2021 09:19:27 +0000
Message-ID: <59260878-D0DC-441D-A039-FCCF683F2FD0@arm.com>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
 <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org>
 <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com>
 <alpine.DEB.2.22.394.2111221157050.1412361@ubuntu-linux-20-04-desktop>
 <CAJ=z9a1L5v2+wC7-aaA2PjV2FzrFXjT-5t_0ijznGKvwywvd5A@mail.gmail.com>
 <alpine.DEB.2.22.394.2111221241450.1412361@ubuntu-linux-20-04-desktop>
 <B4D77172-9AD5-49CD-90E6-872AB2F13258@arm.com>
In-Reply-To: <B4D77172-9AD5-49CD-90E6-872AB2F13258@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: d3f8ddbb-1deb-4341-184c-08d9ae6262bb
x-ms-traffictypediagnostic: AM6PR08MB2965:|VI1PR0801MB2095:
X-Microsoft-Antispam-PRVS:
	<VI1PR0801MB20950B1FEA872FCC4917D0969D609@VI1PR0801MB2095.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 8mpB9zBf0mhxNaTugRdAYNJN8+UscGplbkmZrSa8JfXuueL58gx6IrQpWUiY4CJWe/BjIeQxtFG07sUMy2vT4s3N8lr8NibEC6ACkiQLnXY05GOyAOzmhIR+deHFTLMOLHhZF2Ce1MjcvqGbZDYZVAIiZ4a/DiJMw1YCW1f5qzUu2yK10m+fL4qp1LXCC75Nw9S4xxwc6Mrggg4VSNFp2orRXWRk6M5H7H5sWq4xQeVbk5exSrIzE3KQG0d0joEdYuoiE/reVoHrsddhuXGi1fpb/LnOUxlHete3Gc0RuhFFbceolgIqdUvVwhrROeie3NAKG7ih75oj8MiQH81LziGeTFT2Fa7/TjwHVVxGVy6mplRqg9dFaHDUBerbkp382StRYeWwXIJjNGuQJEUlXHSTr63XbuaFdk9u8/x012N4ZaNf5DvPCuFgP4aOnupWYqig9uzuF88SFoqjEDoO4heHxMVKNhAeDs/Fdql6LKJeBUDd2BgvN5iSRPoQT78weQfPIytOwWu5o4n7gNT7QOp7ybxM+ZpMpYxw3anYr0+4EYgu8edpNIl3De6Kclr9J5BeApUkgjWVHKUJZYGQ/v1hBNMFGf5D+USSdiHSHL3oKemzWDhMVcH3GIT20XOQ49aoWieUzJRRyxC8J8sZPef6ix1SASIu/KM1zljdUa3Bjlck0tPKF7v2mOmDFHP5jdP+4CBBgyDzrBxcNjgg1XEvUGSJJXW56NSZPrwApZumxpiWkobzdugNGyS+j2Z4
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38070700005)(53546011)(71200400001)(38100700002)(33656002)(122000001)(6506007)(54906003)(5660300002)(8676002)(36756003)(2906002)(6916009)(86362001)(2616005)(4326008)(6512007)(76116006)(83380400001)(508600001)(64756008)(66446008)(66556008)(66476007)(91956017)(26005)(316002)(8936002)(186003)(6486002)(66946007)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <2427CE4214FF29468EB565812128CC97@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB2965
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT051.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b62806d7-8ebf-493d-9e52-08d9ae625933
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Rnj23b+zHR1xKdpNt8/ovm0Hh3LMPYdXOwNLLnn8xJk3ARC4f39cdR2AA8Ss2xXYIuK2hqnoD+HP63N8tV5P83IGnn51oa5eUb7yW03uyAGrg6ToXeSGhYVnFaJ1DAxYFFN5BQYA3JXZLZamH5BQpBT3hpMmHnLF3Ex1o+vHHZLeCmdlPkxm0j9VxVPeBJgo/NzsaOl3Dd/9FgX+RITBv3qNFWyQeoexlpeBURcdjYiHMuU0e9CLn8PQEKRO7ayDMrHVsj6tfhxaucPwRv9OEUcYIFekbQyzqI0pEi3h4D2CVDgnWIutlzdmGEwlCxkS23dPzOqpVNY56zDIwK6SOHG2PrJFHAeQcTqt5t5JAQ21gOXREVXgJ+Q2Tw+kgwzdFRaN9cRRxu7gHxsu4y/ikSRRiB4AWZ4swXAvZ5KttnlPl2D8vlKVEDY68bePonmjLofNDMOeV6exJXFXsAgXb1NLQlUHFwKVO/9NNxcbRTlNnKRmFcBOk4hiF+s+ey7EotDkssPiLZvd2zmzKhxLxTFh3Epnu5jHV5/cVH+/PWdENaHDYJM93L3UKyijdpy1MsBVYFRYMyoEnwsebsWK2Qe428EPCQ83lA83pcBiscLl165n/g8ZM3qKuE4cwANbwgG3MTChsoT0Gs6GhgczGnxbWETnWfpimkRFd1RczaBYPnn1ZblZcRiIfZHWkJCGtnIBuok7qxDSkOqt+eYW7kiu3NrH2+Bcdv5+GeD+2DE=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(316002)(82310400004)(54906003)(6512007)(6486002)(86362001)(36860700001)(6862004)(5660300002)(2616005)(83380400001)(8936002)(4326008)(70206006)(70586007)(356005)(8676002)(63370400001)(63350400001)(47076005)(186003)(81166007)(26005)(36756003)(6506007)(336012)(2906002)(53546011)(33656002)(508600001)(45980500001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 09:19:43.5019
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d3f8ddbb-1deb-4341-184c-08d9ae6262bb
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT051.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB2095

Hi,

> On 23 Nov 2021, at 08:53, Bertrand Marquis <bertrand.marquis@arm.com> wro=
te:
>=20
> Hi Stefano,
>=20
>> On 23 Nov 2021, at 04:13, Stefano Stabellini <sstabellini@kernel.org> wr=
ote:
>>=20
>> On Mon, 22 Nov 2021, Julien Grall wrote:
>>> On Mon, 22 Nov 2021 at 19:59, Stefano Stabellini <sstabellini@kernel.or=
g> wrote:
>>>>=20
>>>> On Mon, 22 Nov 2021, Ayan Kumar Halder wrote:
>>>>> Stefano > It doesn't look like we are setting dabt->write anywhere.
>>>>>=20
>>>>> Ayan > Yes, this is a miss. Depending on the opc, this should be upad=
eted
>>>>> accordingly in decode_64bit_loadstore_postindexing().
>>>>>=20
>>>>> Stefano > Also, is info.gpa in try_handle_mmio already updated in the
>>>>> pre-index
>>>>> case? If not, do we need to apply the offset manually here?
>>>>>=20
>>>>> Ayan > Sorry, I did not understand you. This patch is only related to=
 the post
>>>>> indexing ldr/str issue. Why do we need to check for pre-indexing ?
>>>>=20
>>>> I thought you were trying to handle both post-indexing and pre-indexin=
g.
>>>> It is OK if you intend to only handle post-indexing but considering th=
at
>>>> most of the code is shared between the two, we might as well also make
>>>> pre-indexing work (unless it turns out it is more difficult).
>>>=20
>>> Wouldn't this effectively be dead code?
>=20
> I agree this would be dead code. Pre-indexing is handled by the hardware,=
 only post are not.
>=20
>>>=20
>>>>=20
>>>> In the pre-indexing case, I would imagine we need to update the base
>>>> address before taking any other actions.
>>>=20
>>>> From my understanding, this would have already been performed by the
>>> HW when the syndrome is valid. This may also be the case for
>>> the non-valid case, but I haven't checked the Arm Arm.
>>=20
>> It is not clear to me either, that's why I wrote "I would imagine"... I
>> was guessing that it is not done by the HW in the non-valid case but I
>> don't know.
>=20
> This should be handled by the hardware here, so only post actions should
> be handled here.
>=20
>>=20
>> Of course, if it is already done by the HW, that's all the better: no
>> need for us to do anything.
>=20
> I am wondering though if other types of accesses could not be handled her=
e
> without major modification of the code like other sizes then 32bit.

I did some checks and I think the following cases could be handled:
    ldr x2, [x1], #4
    nop
    ldr w2, [x1], #-4
    nop
    ldrh w2, [x1], #8
    nop
    ldrb w2, [x1], #16
    nop
    str x2, [x1], #4
    nop
    str w2, [x1], #-4
    nop
    strh w2, [x1], #8
    nop
    strb w2, [x1], #16
    nop

Anything that I could have missed ?

>=20
> There are also post instructions with shifting but to be honest I do not =
think this is really needed.

Please ignore this, there is no post shifting.

Once this is done I can test and add a test to XTF on arm (on our side, ups=
treaming of this is in progress) to make sure this is maintained.

Regards
Bertrand



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 12:11:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 12:11:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229236.396692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUdF-0007oP-Fe; Tue, 23 Nov 2021 12:10:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229236.396692; Tue, 23 Nov 2021 12:10:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUdF-0007oI-Ce; Tue, 23 Nov 2021 12:10:41 +0000
Received: by outflank-mailman (input) for mailman id 229236;
 Tue, 23 Nov 2021 12:10:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpUdE-0007o8-Sa; Tue, 23 Nov 2021 12:10:40 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpUdE-0002S6-Kt; Tue, 23 Nov 2021 12:10:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpUdE-0004GN-7R; Tue, 23 Nov 2021 12:10:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpUdE-0007zO-6x; Tue, 23 Nov 2021 12:10:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=sl2P0nXXzoiga759V053zmklJX26Yipy2pHhXBVXRvU=; b=7Om6V5A1vir1DaRkvSMCneRkZo
	nI+P9GJA2ONKpIZ+qYGy0qf8Zw4FC/9/grQsGDzQmSiw8skO4KNqzY3FvhBcaOaGt1TAnCc+dxHYv
	IoDSkN6jPbFWdiEox88ymDSLf8ooz86iFxeBWgapIzqanxvdPgO9UmY5TaFGFxsiY5cU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166304-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166304: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Nov 2021 12:10:40 +0000

flight 166304 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166304/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166263
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166263
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166263
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166263
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166263
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166263
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166263
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166263
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166263
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166263
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166263
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166263
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass

version targeted for testing:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166304  2021-11-23 01:54:09 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 12:12:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 12:12:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229241.396720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUev-0000Ga-AB; Tue, 23 Nov 2021 12:12:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229241.396720; Tue, 23 Nov 2021 12:12:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUev-0000GT-6i; Tue, 23 Nov 2021 12:12:25 +0000
Received: by outflank-mailman (input) for mailman id 229241;
 Tue, 23 Nov 2021 12:12:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ayLh=QK=xenbits.xen.org=iwj@srs-se1.protection.inumbo.net>)
 id 1mpUer-0008MT-S2
 for xen-devel@lists.xen.org; Tue, 23 Nov 2021 12:12:24 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c4b1d2c-4c56-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 13:12:00 +0100 (CET)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mpUdm-0002TE-5M; Tue, 23 Nov 2021 12:11:14 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mpUdm-0004Vs-4E; Tue, 23 Nov 2021 12:11:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c4b1d2c-4c56-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=ztQrKzqJ+vewZDjPFkCb6Oy2jFYOOtZTzWA6OEgCWAw=; b=nIwu2YM4Vv4enxnzMjeAHryfrY
	Y9btjHpK1/+5UB+KO5q2hdEiIkyTsugO1APOdtxXbgMWCGwfUDUYeJpI7kQqvSYkXs66EBwfagb09
	kBiS64FzBjX2pp1EXjZQ7x8iOWrNuK9LsRpZ0Yh+vX9XU/79HsBafFSRPDiNSwzh2g9c=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 389 v3 (CVE-2021-28705,CVE-2021-28709) -
 issues with partially successful P2M updates on x86
Message-Id: <E1mpUdm-0004Vs-4E@xenbits.xenproject.org>
Date: Tue, 23 Nov 2021 12:11:14 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

     Xen Security Advisory CVE-2021-28705,CVE-2021-28709 / XSA-389
                               version 3

          issues with partially successful P2M updates on x86

UPDATES IN VERSION 3
====================

Add CVE numbers to patches.

Public release.

ISSUE DESCRIPTION
=================

x86 HVM and PVH guests may be started in populate-on-demand (PoD) mode,
to provide a way for them to later easily have more memory assigned.

Guests are permitted to control certain P2M aspects of individual
pages via hypercalls.  These hypercalls may act on ranges of pages
specified via page orders (resulting in a power-of-2 number of pages).
In some cases the hypervisor carries out the requests by splitting
them into smaller chunks.  Error handling in certain PoD cases has
been insufficient in that in particular partial success of some
operations was not properly accounted for.

There are two code paths affected - page removal (CVE-2021-28705) and
insertion of new pages (CVE-2021-28709).  (We provide one patch which
combines the fix to both issues.)

IMPACT
======

Malicious or buggy guest kernels may be able to mount a Denial of
Service (DoS) attack affecting the entire system.  Privilege escalation
and information leaks cannot be ruled out.

VULNERABLE SYSTEMS
==================

All Xen versions from 3.4 onwards are affected.  Xen versions 3.3 and
older are believed to not be affected.

Only x86 HVM and PVH guests started in populate-on-demand mode are
believed to be able to leverage the vulnerability.  Populate-on-demand
mode is activated when the guest's xl configuration file specifies a
"maxmem" value which is larger than the "memory" value.

MITIGATION
==========

Not starting x86 HVM or PVH guests in populate-on-demand mode is
believed to allow avoiding the vulnerability.

CREDITS
=======

This issue was discovered by Jan Beulich of SUSE.

RESOLUTION
==========

Applying the appropriate attached patch resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa389.patch           xen-unstable
xsa389-4.15.patch      Xen 4.15.x
xsa389-4.14.patch      Xen 4.14.x
xsa389-4.13.patch      Xen 4.13.x
xsa389-4.12.patch      Xen 4.12.x

$ sha256sum xsa389*
c00f5b07594a6459bdd6f7334acc373bc3b0c14a5b0e444ec624ac60f857fc6f  xsa389.patch
bf0d66623c3239e334a17332035be5d7c7e33cfdd7f04f9b385f70ce8fa92752  xsa389-4.12.patch
2737affcf1e0fae5d412067ea8c7fe1cc91a28fa22f3f7e97a502cbd032582cc  xsa389-4.13.patch
b243284679b32ab8c817a2e41562d8694d9781fa8096c268bb41b0cd91684baa  xsa389-4.14.patch
0a213e141089fe7808eae067b3c43beed6c7d5887fa4c901e8f9352618788e5a  xsa389-4.15.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches described above (or others which are
substantially similar) is permitted during the embargo, even on public-
facing systems with untrusted guest users and administrators.

HOWEVER, deployment of the mitigation described above is NOT permitted
during the embargo on public-facing systems with untrusted guest users
and administrators.  This is because such a configuration change is
recognizable by the affected guests.

AND: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmGc2jkMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZkOAIAInsof4UP5VTDcLtiwCvGskCXZT0SwbJ5OKbmxG7
RmPJg+R5sy89aHyJ4BP4eRfgrfbG35qBSCB5zLHy2FR3oioRmDz3y4KAFP3hXJRc
B0hSNM9Al9nEfdt0YQeVxt297X0Ouz/bihLoHXKOTZ2AqKcafu9GRIdK0Kcj1v49
azcW1ndfAkIEYDGvtcdZDXYT3CyjLusQme3pweohZGwcQW6UYg7DhRKl0KPQZP/L
paQZd60walNWgDcV7qfMnWit2jYxF4AptLW8c+KFig7qorLE5z9Xj7AIJ6kGriry
fnwy/DE2xRr4IxWk/FsJgDxeAS6mv3KQ2Mpgx2bRAD0jB6I=
=3P7k
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa389.patch"
Content-Disposition: attachment; filename="xsa389.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUDJNOiBkZWFsIHdpdGggcGFydGlhbCBzdWNjZXNzIG9mIHAybV9z
ZXRfZW50cnkoKQoKTTJQIGFuZCBQb0Qgc3RhdHMgbmVlZCB0byByZW1haW4g
aW4gc3luYyB3aXRoIFAyTTsgaWYgYW4gdXBkYXRlIHN1Y2NlZWRzCm9ubHkg
cGFydGlhbGx5LCByZXNwZWN0aXZlIGFkanVzdG1lbnRzIG5lZWQgdG8gYmUg
bWFkZS4gSWYgdXBkYXRlcyBnZXQKbWFkZSBiZWZvcmUgdGhlIGNhbGwsIHRo
ZXkgbWF5IGFsc28gbmVlZCB1bmRvaW5nIHVwb24gY29tcGxldGUgZmFpbHVy
ZQooaS5lLiBpbmNsdWRpbmcgdGhlIHNpbmdsZS1wYWdlIGNhc2UpLgoKTG9n
LWRpcnR5IHN0YXRlIHdvdWxkIGJldHRlciBhbHNvIGJlIGtlcHQgaW4gc3lu
Yy4KCk5vdGUgdGhhdCB0aGUgY2hhbmdlIHRvIHNldF90eXBlZF9wMm1fZW50
cnkoKSBtYXkgbm90IGJlIHN0cmljdGx5Cm5lY2Vzc2FyeSAoZHVlIHRvIHRo
ZSBvcmRlciByZXN0cmljdGlvbiBlbmZvcmNlZCBuZWFyIHRoZSB0b3Agb2Yg
dGhlCmZ1bmN0aW9uKSwgYnV0IGlzIGJlaW5nIGtlcHQgaGVyZSB0byBiZSBv
biB0aGUgc2FmZSBzaWRlLgoKVGhpcyBpcyBDVkUtMjAyMS0yODcwNSBhbmQg
Q1ZFLTIwMjEtMjg3MDkgLyBYU0EtMzg5LgoKU2lnbmVkLW9mZi1ieTogSmFu
IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUm9n
ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0tLQpJIHRo
aW5rIHRoZSBNMlAgYXNwZWN0ICh3cnQgd3JvbmdseSBhbGxvd2luZyBtdWx0
aXBsZSBHRk4gbWFwcGluZ3Mgb2YgYQpwYWdlIHRoYXQgbWF5IGxhdGVyIGdl
dCBmcmVlZCwgaS5lLiBwcmltYXJpbHkgdGhlIGdyYW50IHRhYmxlIHYyIHN0
YXR1cwpwYWdlcykgaXMgb25seSB0aGVvcmV0aWNhbCBhdCB0aGlzIHBvaW50
LiBUaGF0J3MgYmVjYXVzZSBhbnkgc3VjaApzcGVjaWFsIG1hcHBpbmdzIHdv
dWxkIG9ubHkgZXZlciBiZSA0ayBvbmVzLCBhbmQgcmVwbGFjaW5nIGV4aXN0
aW5nCnNtYWxsIG1hcHBpbmdzIGNhbid0IGZhaWwgd2l0aCAtRU5PTUVNIGZy
b20gaW50ZXJtZWRpYXRlIHBhZ2UgdGFibGUKYWxsb2NhdGlvbi4gQW5kIEkg
dGhpbmsgYWxsIG90aGVyIGVycm9yIHJldHVybnMgd291bGQsIGlmIGluIGZh
Y3QKcmVhY2hhYmxlLCByZXByZXNlbnQgKHByZXN1bWFibHkgc2VjdXJpdHkg
cmVsZXZhbnQpIGJ1Z3MgdGhlbXNlbHZlcywgc28KYWRkcmVzc2luZyB0aGlz
IHBhcnQgbWF5IGJlIG1lcmVseSBkZWZlbnNlLWluLWRlcHRoLgotLS0KdjQ6
IFJlLWJhc2UgYWhlYWQgb2YgIng4Ni9tbTogdXBkYXRlIGxvZy1kaXJ0eSBi
aXRtYXAgd2hlbiBtYW5pcHVsYXRpbmcKICAgIFAyTSIuCnYzOiBSZW1vdmUg
Ym9ndXMgc3BlY2lhbCBjYXNpbmcgb2Ygb3JkZXItMCBmcm9tIHAybV9yZW1v
dmVfcGFnZSgpIGFuZAogICAgZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoKS4g
QWRqdXN0IGRlc2NyaXB0aW9uIGFjY29yZGluZ2x5Lgp2MjogQ29ycmVjdCB1
bmRvIGNvbmRpdGlvbmFsIGluIHAybV9yZW1vdmVfcGFnZSgpLgoKLS0tIGEv
eGVuL2FyY2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9w
Mm0uYwpAQCAtNzk0LDYgKzc5NCw3IEBAIHAybV9yZW1vdmVfcGFnZShzdHJ1
Y3QgcDJtX2RvbWFpbiAqcDJtLAogICAgIHVuc2lnbmVkIGxvbmcgaTsKICAg
ICBwMm1fdHlwZV90IHQ7CiAgICAgcDJtX2FjY2Vzc190IGE7CisgICAgaW50
IHJjOwogCiAgICAgQVNTRVJUKGdmbl9sb2NrZWRfYnlfbWUocDJtLCBnZm4p
KTsKICAgICBQMk1fREVCVUcoInJlbW92aW5nIGdmbj0lI2x4IG1mbj0lI2x4
XG4iLCBnZm5feChnZm4pLCBtZm5feChtZm4pKTsKQEAgLTgyNSw4ICs4MjYs
MjcgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0s
CiAKICAgICBpb3JlcV9yZXF1ZXN0X21hcGNhY2hlX2ludmFsaWRhdGUocDJt
LT5kb21haW4pOwogCi0gICAgcmV0dXJuIHAybV9zZXRfZW50cnkocDJtLCBn
Zm4sIElOVkFMSURfTUZOLCBwYWdlX29yZGVyLCBwMm1faW52YWxpZCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBwMm0tPmRlZmF1bHRfYWNjZXNzKTsK
KyAgICByYyA9IHAybV9zZXRfZW50cnkocDJtLCBnZm4sIElOVkFMSURfTUZO
LCBwYWdlX29yZGVyLCBwMm1faW52YWxpZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgcDJtLT5kZWZhdWx0X2FjY2Vzcyk7CisgICAgaWYgKCBsaWtlbHko
IXJjKSB8fCAhbWZuX3ZhbGlkKG1mbikgKQorICAgICAgICByZXR1cm4gcmM7
CisKKyAgICAvKgorICAgICAqIFRoZSBvcGVyYXRpb24gbWF5IGhhdmUgcGFy
dGlhbGx5IHN1Y2NlZWRlZC4gRm9yIHRoZSBmYWlsZWQgcGFydCB3ZSBuZWVk
CisgICAgICogdG8gdW5kbyB0aGUgTTJQIHVwZGF0ZSBhbmQsIG91dCBvZiBw
cmVjYXV0aW9uLCBtYXJrIHRoZSBwYWdlcyBkaXJ0eQorICAgICAqIGFnYWlu
LgorICAgICAqLworICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdl
X29yZGVyKTsgKytpICkKKyAgICB7CisgICAgICAgIHAybS0+Z2V0X2VudHJ5
KHAybSwgZ2ZuX2FkZChnZm4sIGkpLCAmdCwgJmEsIDAsIE5VTEwsIE5VTEwp
OworICAgICAgICBpZiAoICFwMm1faXNfaG9sZSh0KSAmJiAhcDJtX2lzX3Nw
ZWNpYWwodCkgJiYgIXAybV9pc19zaGFyZWQodCkgKQorICAgICAgICB7Cisg
ICAgICAgICAgICBzZXRfZ3Bmbl9mcm9tX21mbihtZm5feChtZm4pICsgaSwg
Z2ZuX3goZ2ZuKSArIGkpOworICAgICAgICAgICAgcGFnaW5nX21hcmtfcGZu
X2RpcnR5KHAybS0+ZG9tYWluLCBfcGZuKGdmbl94KGdmbikgKyBpKSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmM7CiB9CiAKIGludApA
QCAtMTAyMiwxMyArMTA0Miw4IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5
KHN0cnVjdCBkb21haW4gKmQKIAogICAgIC8qIE5vdywgYWN0dWFsbHkgZG8g
dGhlIHR3by13YXkgbWFwcGluZyAqLwogICAgIHJjID0gcDJtX3NldF9lbnRy
eShwMm0sIGdmbiwgbWZuLCBwYWdlX29yZGVyLCB0LCBwMm0tPmRlZmF1bHRf
YWNjZXNzKTsKLSAgICBpZiAoIHJjID09IDAgKQorICAgIGlmICggbGlrZWx5
KCFyYykgKQogICAgIHsKLSAgICAgICAgcG9kX2xvY2socDJtKTsKLSAgICAg
ICAgcDJtLT5wb2QuZW50cnlfY291bnQgLT0gcG9kX2NvdW50OwotICAgICAg
ICBCVUdfT04ocDJtLT5wb2QuZW50cnlfY291bnQgPCAwKTsKLSAgICAgICAg
cG9kX3VubG9jayhwMm0pOwotCiAgICAgICAgIGlmICggIXAybV9pc19ncmFu
dCh0KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBp
IDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgaSsrICkKQEAgLTEwMzYsNiArMTA1
MSw0MiBAQCBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWlu
ICpkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3go
Z2ZuX2FkZChnZm4sIGkpKSk7CiAgICAgICAgIH0KICAgICB9CisgICAgZWxz
ZQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhlIG9wZXJhdGlv
biBtYXkgaGF2ZSBwYXJ0aWFsbHkgc3VjY2VlZGVkLiBGb3IgdGhlIHN1Y2Nl
c3NmdWwgcGFydAorICAgICAgICAgKiB3ZSBuZWVkIHRvIHVwZGF0ZSBNMlAg
YW5kIGRpcnR5IHN0YXRlLCB3aGlsZSBmb3IgdGhlIGZhaWxlZCBwYXJ0IHdl
CisgICAgICAgICAqIG1heSBuZWVkIHRvIGFkanVzdCBQb0Qgc3RhdHMgYXMg
d2VsbCBhcyB1bmRvIHRoZSBlYXJsaWVyIE0yUCB1cGRhdGUuCisgICAgICAg
ICAqLworICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9v
cmRlcik7ICsraSApCisgICAgICAgIHsKKyAgICAgICAgICAgIG9tZm4gPSBw
Mm0tPmdldF9lbnRyeShwMm0sIGdmbl9hZGQoZ2ZuLCBpKSwgJm90LCAmYSwg
MCwgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICBpZiAoIHAybV9pc19wb2Qo
b3QpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBCVUdfT04o
IXBvZF9jb3VudCk7CisgICAgICAgICAgICAgICAgLS1wb2RfY291bnQ7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICggbWZuX2VxKG9t
Zm4sIG1mbl9hZGQobWZuLCBpKSkgJiYgb3QgPT0gdCAmJgorICAgICAgICAg
ICAgICAgICAgICAgIGEgPT0gcDJtLT5kZWZhdWx0X2FjY2VzcyAmJiAhcDJt
X2lzX2dyYW50KHQpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBzZXRfZ3Bmbl9mcm9tX21mbihtZm5feChvbWZuKSwgZ2ZuX3goZ2ZuKSAr
IGkpOworICAgICAgICAgICAgICAgIHBhZ2luZ19tYXJrX3Bmbl9kaXJ0eShk
LCBfcGZuKGdmbl94KGdmbikgKyBpKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBlbHNlIGlmICggcDJtX2lzX3JhbShvdCkgJiYgIXAybV9pc19w
YWdlZChvdCkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEFT
U0VSVChtZm5fdmFsaWQob21mbikpOworICAgICAgICAgICAgICAgIHNldF9n
cGZuX2Zyb21fbWZuKG1mbl94KG9tZm4pLCBnZm5feChnZm4pICsgaSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIHBv
ZF9jb3VudCApCisgICAgeworICAgICAgICBwb2RfbG9jayhwMm0pOworICAg
ICAgICBwMm0tPnBvZC5lbnRyeV9jb3VudCAtPSBwb2RfY291bnQ7CisgICAg
ICAgIEJVR19PTihwMm0tPnBvZC5lbnRyeV9jb3VudCA8IDApOworICAgICAg
ICBwb2RfdW5sb2NrKHAybSk7CisgICAgfQogCiBvdXQ6CiAgICAgcDJtX3Vu
bG9jayhwMm0pOwpAQCAtMTMyNSw2ICsxMzc2LDQ5IEBAIHN0YXRpYyBpbnQg
c2V0X3R5cGVkX3AybV9lbnRyeShzdHJ1Y3QgZG8KICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CiAgICAgfQorCisgICAgUDJNX0RFQlVHKCJz
ZXQgJWQgJWx4ICVseFxuIiwgZ2ZuX3AybXQsIGdmbl9sLCBtZm5feChtZm4p
KTsKKyAgICByYyA9IHAybV9zZXRfZW50cnkocDJtLCBnZm4sIG1mbiwgb3Jk
ZXIsIGdmbl9wMm10LCBhY2Nlc3MpOworICAgIGlmICggdW5saWtlbHkocmMp
ICkKKyAgICB7CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJwMm1f
c2V0X2VudHJ5OiAlI2x4OiV1IC0+ICVkICgweCUiUFJJX21mbiIpXG4iLAor
ICAgICAgICAgICAgICAgICBnZm5fbCwgb3JkZXIsIHJjLCBtZm5feChtZm4p
KTsKKworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgb3BlcmF0aW9uIG1h
eSBoYXZlIHBhcnRpYWxseSBzdWNjZWVkZWQuIEZvciB0aGUgc3VjY2Vzc2Z1
bCBwYXJ0CisgICAgICAgICAqIHdlIG5lZWQgdG8gdXBkYXRlIFBvRCBzdGF0
cywgTTJQLCBhbmQgZGlydHkgc3RhdGUuCisgICAgICAgICAqLworICAgICAg
ICBpZiAoIG9yZGVyICE9IFBBR0VfT1JERVJfNEsgKQorICAgICAgICB7Cisg
ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGk7CisKKyAgICAgICAgICAgIGZv
ciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBvcmRlcik7ICsraSApCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgcDJtX3R5cGVfdCB0OworICAgICAg
ICAgICAgICAgIG1mbl90IGNtZm4gPSBwMm0tPmdldF9lbnRyeShwMm0sIGdm
bl9hZGQoZ2ZuLCBpKSwgJnQsICZhLCAwLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKworICAg
ICAgICAgICAgICAgIGlmICggIW1mbl9lcShjbWZuLCBtZm5fYWRkKG1mbiwg
aSkpIHx8IHQgIT0gZ2ZuX3AybXQgfHwKKyAgICAgICAgICAgICAgICAgICAg
IGEgIT0gYWNjZXNzICkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgICAgICAgICBpZiAoIHAybV9pc19yYW0ob3QpICkKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCht
Zm5fdmFsaWQobWZuX2FkZChvbWZuLCBpKSkpOworICAgICAgICAgICAgICAg
ICAgICBzZXRfZ3Bmbl9mcm9tX21mbihtZm5feChvbWZuKSArIGksIElOVkFM
SURfTTJQX0VOVFJZKTsKKworICAgICAgICAgICAgICAgICAgICBpb3JlcV9y
ZXF1ZXN0X21hcGNhY2hlX2ludmFsaWRhdGUoZCk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKCBwMm1faXNfcG9kKG90
KSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBw
b2RfbG9jayhwMm0pOworICAgICAgICAgICAgICAgICAgICBCVUdfT04oIXAy
bS0+cG9kLmVudHJ5X2NvdW50KTsKKyAgICAgICAgICAgICAgICAgICAgLS1w
Mm0tPnBvZC5lbnRyeV9jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgcG9k
X3VubG9jayhwMm0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KICAgICBlbHNlIGlmICggcDJtX2lzX3Jh
bShvdCkgKQogICAgIHsKICAgICAgICAgdW5zaWduZWQgbG9uZyBpOwpAQCAt
MTMzNywxMiArMTQzMSw2IEBAIHN0YXRpYyBpbnQgc2V0X3R5cGVkX3AybV9l
bnRyeShzdHJ1Y3QgZG8KIAogICAgICAgICBpb3JlcV9yZXF1ZXN0X21hcGNh
Y2hlX2ludmFsaWRhdGUoZCk7CiAgICAgfQotCi0gICAgUDJNX0RFQlVHKCJz
ZXQgJWQgJWx4ICVseFxuIiwgZ2ZuX3AybXQsIGdmbl9sLCBtZm5feChtZm4p
KTsKLSAgICByYyA9IHAybV9zZXRfZW50cnkocDJtLCBnZm4sIG1mbiwgb3Jk
ZXIsIGdmbl9wMm10LCBhY2Nlc3MpOwotICAgIGlmICggcmMgKQotICAgICAg
ICBnZHByaW50ayhYRU5MT0dfRVJSLCAicDJtX3NldF9lbnRyeTogJSNseDol
dSAtPiAlZCAoMHglIlBSSV9tZm4iKVxuIiwKLSAgICAgICAgICAgICAgICAg
Z2ZuX2wsIG9yZGVyLCByYywgbWZuX3gobWZuKSk7CiAgICAgZWxzZSBpZiAo
IHAybV9pc19wb2Qob3QpICkKICAgICB7CiAgICAgICAgIHBvZF9sb2NrKHAy
bSk7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa389-4.12.patch"
Content-Disposition: attachment; filename="xsa389-4.12.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUDJNOiBkZWFsIHdpdGggcGFydGlhbCBzdWNjZXNzIG9mIHAybV9z
ZXRfZW50cnkoKQoKTTJQIGFuZCBQb0Qgc3RhdHMgbmVlZCB0byByZW1haW4g
aW4gc3luYyB3aXRoIFAyTTsgaWYgYW4gdXBkYXRlIHN1Y2NlZWRzCm9ubHkg
cGFydGlhbGx5LCByZXNwZWN0aXZlIGFkanVzdG1lbnRzIG5lZWQgdG8gYmUg
bWFkZS4gSWYgdXBkYXRlcyBnZXQKbWFkZSBiZWZvcmUgdGhlIGNhbGwsIHRo
ZXkgbWF5IGFsc28gbmVlZCB1bmRvaW5nIHVwb24gY29tcGxldGUgZmFpbHVy
ZQooaS5lLiBpbmNsdWRpbmcgdGhlIHNpbmdsZS1wYWdlIGNhc2UpLgoKTG9n
LWRpcnR5IHN0YXRlIHdvdWxkIGJldHRlciBhbHNvIGJlIGtlcHQgaW4gc3lu
Yy4KCk5vdGUgdGhhdCB0aGUgY2hhbmdlIHRvIHNldF90eXBlZF9wMm1fZW50
cnkoKSBtYXkgbm90IGJlIHN0cmljdGx5Cm5lY2Vzc2FyeSAoZHVlIHRvIHRo
ZSBvcmRlciByZXN0cmljdGlvbiBlbmZvcmNlZCBuZWFyIHRoZSB0b3Agb2Yg
dGhlCmZ1bmN0aW9uKSwgYnV0IGlzIGJlaW5nIGtlcHQgaGVyZSB0byBiZSBv
biB0aGUgc2FmZSBzaWRlLgoKVGhpcyBpcyBDVkUtMjAyMS0yODcwNSBhbmQg
Q1ZFLTIwMjEtMjg3MDkgLyBYU0EtMzg5LgoKU2lnbmVkLW9mZi1ieTogSmFu
IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUm9n
ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94
ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3Ay
bS5jCkBAIC03ODAsNiArNzgwLDcgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVj
dCBwMm1fZG9tYWluICpwMm0sCiAgICAgZ2ZuX3QgZ2ZuID0gX2dmbihnZm5f
bCk7CiAgICAgcDJtX3R5cGVfdCB0OwogICAgIHAybV9hY2Nlc3NfdCBhOwor
ICAgIGludCByYzsKIAogICAgIC8qIElPTU1VIGZvciBQViBndWVzdHMgaXMg
aGFuZGxlZCBpbiBnZXRfcGFnZV90eXBlKCkgYW5kIHB1dF9wYWdlKCkuICov
CiAgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKHAybS0+ZG9tYWlu
KSApCkBAIC04MTEsOCArODEyLDI3IEBAIHAybV9yZW1vdmVfcGFnZShzdHJ1
Y3QgcDJtX2RvbWFpbiAqcDJtLAogICAgICAgICAgICAgICAgIHNldF9ncGZu
X2Zyb21fbWZuKG1mbitpLCBJTlZBTElEX00yUF9FTlRSWSk7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgcmV0dXJuIHAybV9zZXRfZW50cnkocDJtLCBnZm4s
IElOVkFMSURfTUZOLCBwYWdlX29yZGVyLCBwMm1faW52YWxpZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBwMm0tPmRlZmF1bHRfYWNjZXNzKTsKKyAg
ICByYyA9IHAybV9zZXRfZW50cnkocDJtLCBnZm4sIElOVkFMSURfTUZOLCBw
YWdlX29yZGVyLCBwMm1faW52YWxpZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgcDJtLT5kZWZhdWx0X2FjY2Vzcyk7CisgICAgaWYgKCBsaWtlbHkoIXJj
KSB8fCAhbWZuX3ZhbGlkKF9tZm4obWZuKSkgKQorICAgICAgICByZXR1cm4g
cmM7CisKKyAgICAvKgorICAgICAqIFRoZSBvcGVyYXRpb24gbWF5IGhhdmUg
cGFydGlhbGx5IHN1Y2NlZWRlZC4gRm9yIHRoZSBmYWlsZWQgcGFydCB3ZSBu
ZWVkCisgICAgICogdG8gdW5kbyB0aGUgTTJQIHVwZGF0ZSBhbmQsIG91dCBv
ZiBwcmVjYXV0aW9uLCBtYXJrIHRoZSBwYWdlcyBkaXJ0eQorICAgICAqIGFn
YWluLgorICAgICAqLworICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBw
YWdlX29yZGVyKTsgKytpICkKKyAgICB7CisgICAgICAgIHAybS0+Z2V0X2Vu
dHJ5KHAybSwgZ2ZuX2FkZChnZm4sIGkpLCAmdCwgJmEsIDAsIE5VTEwsIE5V
TEwpOworICAgICAgICBpZiAoICFwMm1faXNfaG9sZSh0KSAmJiAhcDJtX2lz
X3NwZWNpYWwodCkgJiYgIXAybV9pc19zaGFyZWQodCkgKQorICAgICAgICB7
CisgICAgICAgICAgICBzZXRfZ3Bmbl9mcm9tX21mbihtZm4gKyBpLCBnZm5f
bCArIGkpOworICAgICAgICAgICAgcGFnaW5nX21hcmtfcGZuX2RpcnR5KHAy
bS0+ZG9tYWluLCBfcGZuKGdmbl9sICsgaSkpOworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuIHJjOwogfQogCiBpbnQKQEAgLTk4MCwxNSArMTAw
MCw4IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVjdCBkb21haW4g
KmQKIAogICAgIC8qIE5vdywgYWN0dWFsbHkgZG8gdGhlIHR3by13YXkgbWFw
cGluZyAqLwogICAgIHJjID0gcDJtX3NldF9lbnRyeShwMm0sIGdmbiwgbWZu
LCBwYWdlX29yZGVyLCB0LCBwMm0tPmRlZmF1bHRfYWNjZXNzKTsKLSAgICBp
ZiAoIHJjID09IDAgKQorICAgIGlmICggbGlrZWx5KCFyYykgKQogICAgIHsK
LSNpZmRlZiBDT05GSUdfSFZNCi0gICAgICAgIHBvZF9sb2NrKHAybSk7Ci0g
ICAgICAgIHAybS0+cG9kLmVudHJ5X2NvdW50IC09IHBvZF9jb3VudDsKLSAg
ICAgICAgQlVHX09OKHAybS0+cG9kLmVudHJ5X2NvdW50IDwgMCk7Ci0gICAg
ICAgIHBvZF91bmxvY2socDJtKTsKLSNlbmRpZgotCiAgICAgICAgIGlmICgg
IXAybV9pc19ncmFudCh0KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGZv
ciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgaSsrICkKQEAg
LTk5Niw2ICsxMDA5LDQ0IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0
cnVjdCBkb21haW4gKmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnZm5feChnZm5fYWRkKGdmbiwgaSkpKTsKICAgICAgICAgfQogICAg
IH0KKyAgICBlbHNlCisgICAgeworICAgICAgICAvKgorICAgICAgICAgKiBU
aGUgb3BlcmF0aW9uIG1heSBoYXZlIHBhcnRpYWxseSBzdWNjZWVkZWQuIEZv
ciB0aGUgc3VjY2Vzc2Z1bCBwYXJ0CisgICAgICAgICAqIHdlIG5lZWQgdG8g
dXBkYXRlIE0yUCBhbmQgZGlydHkgc3RhdGUsIHdoaWxlIGZvciB0aGUgZmFp
bGVkIHBhcnQgd2UKKyAgICAgICAgICogbWF5IG5lZWQgdG8gYWRqdXN0IFBv
RCBzdGF0cyBhcyB3ZWxsIGFzIHVuZG8gdGhlIGVhcmxpZXIgTTJQIHVwZGF0
ZS4KKyAgICAgICAgICovCisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFV
TCA8PCBwYWdlX29yZGVyKTsgKytpICkKKyAgICAgICAgeworICAgICAgICAg
ICAgb21mbiA9IHAybS0+Z2V0X2VudHJ5KHAybSwgZ2ZuX2FkZChnZm4sIGkp
LCAmb3QsICZhLCAwLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIGlmICgg
cDJtX2lzX3BvZChvdCkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIEJVR19PTighcG9kX2NvdW50KTsKKyAgICAgICAgICAgICAgICAtLXBv
ZF9jb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYg
KCBtZm5fZXEob21mbiwgbWZuX2FkZChtZm4sIGkpKSAmJiBvdCA9PSB0ICYm
CisgICAgICAgICAgICAgICAgICAgICAgYSA9PSBwMm0tPmRlZmF1bHRfYWNj
ZXNzICYmICFwMm1faXNfZ3JhbnQodCkgKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIHNldF9ncGZuX2Zyb21fbWZuKG1mbl94KG9tZm4pLCBn
Zm5feChnZm4pICsgaSk7CisgICAgICAgICAgICAgICAgcGFnaW5nX21hcmtf
cGZuX2RpcnR5KGQsIF9wZm4oZ2ZuX3goZ2ZuKSArIGkpKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKCBwMm1faXNfcmFtKG90KSAm
JiAhcDJtX2lzX3BhZ2VkKG90KSApCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgQVNTRVJUKG1mbl92YWxpZChvbWZuKSk7CisgICAgICAgICAg
ICAgICAgc2V0X2dwZm5fZnJvbV9tZm4obWZuX3gob21mbiksIGdmbl94KGdm
bikgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwor
I2lmZGVmIENPTkZJR19IVk0KKyAgICBpZiAoIHBvZF9jb3VudCApCisgICAg
eworICAgICAgICBwb2RfbG9jayhwMm0pOworICAgICAgICBwMm0tPnBvZC5l
bnRyeV9jb3VudCAtPSBwb2RfY291bnQ7CisgICAgICAgIEJVR19PTihwMm0t
PnBvZC5lbnRyeV9jb3VudCA8IDApOworICAgICAgICBwb2RfdW5sb2NrKHAy
bSk7CisgICAgfQorI2VuZGlmCiAKICBvdXQ6CiAgICAgcDJtX3VubG9jayhw
Mm0pOwpAQCAtMTI3OCw2ICsxMzI5LDQ5IEBAIHN0YXRpYyBpbnQgc2V0X3R5
cGVkX3AybV9lbnRyeShzdHJ1Y3QgZG8KICAgICAgICAgZG9tYWluX2NyYXNo
KGQpOwogICAgICAgICByZXR1cm4gLUVQRVJNOwogICAgIH0KKworICAgIFAy
TV9ERUJVRygic2V0ICVkICVseCAlbHhcbiIsIGdmbl9wMm10LCBnZm5fbCwg
bWZuX3gobWZuKSk7CisgICAgcmMgPSBwMm1fc2V0X2VudHJ5KHAybSwgZ2Zu
LCBtZm4sIG9yZGVyLCBnZm5fcDJtdCwgYWNjZXNzKTsKKyAgICBpZiAoIHVu
bGlrZWx5KHJjKSApCisgICAgeworICAgICAgICBnZHByaW50ayhYRU5MT0df
RVJSLCAicDJtX3NldF9lbnRyeTogJSNseDoldSAtPiAlZCAoMHglIlBSSV9t
Zm4iKVxuIiwKKyAgICAgICAgICAgICAgICAgZ2ZuX2wsIG9yZGVyLCByYywg
bWZuX3gobWZuKSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhlIG9w
ZXJhdGlvbiBtYXkgaGF2ZSBwYXJ0aWFsbHkgc3VjY2VlZGVkLiBGb3IgdGhl
IHN1Y2Nlc3NmdWwgcGFydAorICAgICAgICAgKiB3ZSBuZWVkIHRvIHVwZGF0
ZSBQb0Qgc3RhdHMsIE0yUCwgYW5kIGRpcnR5IHN0YXRlLgorICAgICAgICAg
Ki8KKyAgICAgICAgaWYgKCBvcmRlciAhPSBQQUdFX09SREVSXzRLICkKKyAg
ICAgICAgeworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpOworCisgICAg
ICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgb3JkZXIpOyArK2kg
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHAybV90eXBlX3Qg
dDsKKyAgICAgICAgICAgICAgICBtZm5fdCBjbWZuID0gcDJtLT5nZXRfZW50
cnkocDJtLCBnZm5fYWRkKGdmbiwgaSksICZ0LCAmYSwgMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVM
TCk7CisKKyAgICAgICAgICAgICAgICBpZiAoICFtZm5fZXEoY21mbiwgbWZu
X2FkZChtZm4sIGkpKSB8fCB0ICE9IGdmbl9wMm10IHx8CisgICAgICAgICAg
ICAgICAgICAgICBhICE9IGFjY2VzcyApCisgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaWYgKCBwMm1faXNfcmFt
KG90KSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICBBU1NFUlQobWZuX3ZhbGlkKG1mbl9hZGQob21mbiwgaSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2V0X2dwZm5fZnJvbV9tZm4obWZuX3gob21mbikg
KyBpLCBJTlZBTElEX00yUF9FTlRSWSk7CisgICAgICAgICAgICAgICAgfQor
I2lmZGVmIENPTkZJR19IVk0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICgg
cDJtX2lzX3BvZChvdCkgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgcG9kX2xvY2socDJtKTsKKyAgICAgICAgICAgICAgICAg
ICAgQlVHX09OKCFwMm0tPnBvZC5lbnRyeV9jb3VudCk7CisgICAgICAgICAg
ICAgICAgICAgIC0tcDJtLT5wb2QuZW50cnlfY291bnQ7CisgICAgICAgICAg
ICAgICAgICAgIHBvZF91bmxvY2socDJtKTsKKyAgICAgICAgICAgICAgICB9
CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KICAg
ICBlbHNlIGlmICggcDJtX2lzX3JhbShvdCkgKQogICAgIHsKICAgICAgICAg
dW5zaWduZWQgbG9uZyBpOwpAQCAtMTI4OCwxMiArMTM4Miw2IEBAIHN0YXRp
YyBpbnQgc2V0X3R5cGVkX3AybV9lbnRyeShzdHJ1Y3QgZG8KICAgICAgICAg
ICAgIHNldF9ncGZuX2Zyb21fbWZuKG1mbl94KG9tZm4pICsgaSwgSU5WQUxJ
RF9NMlBfRU5UUlkpOwogICAgICAgICB9CiAgICAgfQotCi0gICAgUDJNX0RF
QlVHKCJzZXQgJWQgJWx4ICVseFxuIiwgZ2ZuX3AybXQsIGdmbl9sLCBtZm5f
eChtZm4pKTsKLSAgICByYyA9IHAybV9zZXRfZW50cnkocDJtLCBnZm4sIG1m
biwgb3JkZXIsIGdmbl9wMm10LCBhY2Nlc3MpOwotICAgIGlmICggcmMgKQot
ICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJSLCAicDJtX3NldF9lbnRyeTog
JSNseDoldSAtPiAlZCAoMHglIlBSSV9tZm4iKVxuIiwKLSAgICAgICAgICAg
ICAgICAgZ2ZuX2wsIG9yZGVyLCByYywgbWZuX3gobWZuKSk7CiAjaWZkZWYg
Q09ORklHX0hWTQogICAgIGVsc2UgaWYgKCBwMm1faXNfcG9kKG90KSApCiAg
ICAgewo=

--=separator
Content-Type: application/octet-stream; name="xsa389-4.13.patch"
Content-Disposition: attachment; filename="xsa389-4.13.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUDJNOiBkZWFsIHdpdGggcGFydGlhbCBzdWNjZXNzIG9mIHAybV9z
ZXRfZW50cnkoKQoKTTJQIGFuZCBQb0Qgc3RhdHMgbmVlZCB0byByZW1haW4g
aW4gc3luYyB3aXRoIFAyTTsgaWYgYW4gdXBkYXRlIHN1Y2NlZWRzCm9ubHkg
cGFydGlhbGx5LCByZXNwZWN0aXZlIGFkanVzdG1lbnRzIG5lZWQgdG8gYmUg
bWFkZS4gSWYgdXBkYXRlcyBnZXQKbWFkZSBiZWZvcmUgdGhlIGNhbGwsIHRo
ZXkgbWF5IGFsc28gbmVlZCB1bmRvaW5nIHVwb24gY29tcGxldGUgZmFpbHVy
ZQooaS5lLiBpbmNsdWRpbmcgdGhlIHNpbmdsZS1wYWdlIGNhc2UpLgoKTG9n
LWRpcnR5IHN0YXRlIHdvdWxkIGJldHRlciBhbHNvIGJlIGtlcHQgaW4gc3lu
Yy4KCk5vdGUgdGhhdCB0aGUgY2hhbmdlIHRvIHNldF90eXBlZF9wMm1fZW50
cnkoKSBtYXkgbm90IGJlIHN0cmljdGx5Cm5lY2Vzc2FyeSAoZHVlIHRvIHRo
ZSBvcmRlciByZXN0cmljdGlvbiBlbmZvcmNlZCBuZWFyIHRoZSB0b3Agb2Yg
dGhlCmZ1bmN0aW9uKSwgYnV0IGlzIGJlaW5nIGtlcHQgaGVyZSB0byBiZSBv
biB0aGUgc2FmZSBzaWRlLgoKVGhpcyBpcyBDVkUtMjAyMS0yODcwNSBhbmQg
Q1ZFLTIwMjEtMjg3MDkgLyBYU0EtMzg5LgoKU2lnbmVkLW9mZi1ieTogSmFu
IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUm9n
ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94
ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3Ay
bS5jCkBAIC03ODEsNiArNzgxLDcgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVj
dCBwMm1fZG9tYWluICpwMm0sCiAgICAgZ2ZuX3QgZ2ZuID0gX2dmbihnZm5f
bCk7CiAgICAgcDJtX3R5cGVfdCB0OwogICAgIHAybV9hY2Nlc3NfdCBhOwor
ICAgIGludCByYzsKIAogICAgIC8qIElPTU1VIGZvciBQViBndWVzdHMgaXMg
aGFuZGxlZCBpbiBnZXRfcGFnZV90eXBlKCkgYW5kIHB1dF9wYWdlKCkuICov
CiAgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKHAybS0+ZG9tYWlu
KSApCkBAIC04MTIsOCArODEzLDI3IEBAIHAybV9yZW1vdmVfcGFnZShzdHJ1
Y3QgcDJtX2RvbWFpbiAqcDJtLAogICAgICAgICAgICAgICAgIHNldF9ncGZu
X2Zyb21fbWZuKG1mbitpLCBJTlZBTElEX00yUF9FTlRSWSk7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgcmV0dXJuIHAybV9zZXRfZW50cnkocDJtLCBnZm4s
IElOVkFMSURfTUZOLCBwYWdlX29yZGVyLCBwMm1faW52YWxpZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBwMm0tPmRlZmF1bHRfYWNjZXNzKTsKKyAg
ICByYyA9IHAybV9zZXRfZW50cnkocDJtLCBnZm4sIElOVkFMSURfTUZOLCBw
YWdlX29yZGVyLCBwMm1faW52YWxpZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgcDJtLT5kZWZhdWx0X2FjY2Vzcyk7CisgICAgaWYgKCBsaWtlbHkoIXJj
KSB8fCAhbWZuX3ZhbGlkKF9tZm4obWZuKSkgKQorICAgICAgICByZXR1cm4g
cmM7CisKKyAgICAvKgorICAgICAqIFRoZSBvcGVyYXRpb24gbWF5IGhhdmUg
cGFydGlhbGx5IHN1Y2NlZWRlZC4gRm9yIHRoZSBmYWlsZWQgcGFydCB3ZSBu
ZWVkCisgICAgICogdG8gdW5kbyB0aGUgTTJQIHVwZGF0ZSBhbmQsIG91dCBv
ZiBwcmVjYXV0aW9uLCBtYXJrIHRoZSBwYWdlcyBkaXJ0eQorICAgICAqIGFn
YWluLgorICAgICAqLworICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBw
YWdlX29yZGVyKTsgKytpICkKKyAgICB7CisgICAgICAgIHAybS0+Z2V0X2Vu
dHJ5KHAybSwgZ2ZuX2FkZChnZm4sIGkpLCAmdCwgJmEsIDAsIE5VTEwsIE5V
TEwpOworICAgICAgICBpZiAoICFwMm1faXNfaG9sZSh0KSAmJiAhcDJtX2lz
X3NwZWNpYWwodCkgJiYgIXAybV9pc19zaGFyZWQodCkgKQorICAgICAgICB7
CisgICAgICAgICAgICBzZXRfZ3Bmbl9mcm9tX21mbihtZm4gKyBpLCBnZm5f
bCArIGkpOworICAgICAgICAgICAgcGFnaW5nX21hcmtfcGZuX2RpcnR5KHAy
bS0+ZG9tYWluLCBfcGZuKGdmbl9sICsgaSkpOworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuIHJjOwogfQogCiBpbnQKQEAgLTEwMDIsMTMgKzEw
MjIsOCBAQCBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWlu
ICpkCiAKICAgICAvKiBOb3csIGFjdHVhbGx5IGRvIHRoZSB0d28td2F5IG1h
cHBpbmcgKi8KICAgICByYyA9IHAybV9zZXRfZW50cnkocDJtLCBnZm4sIG1m
biwgcGFnZV9vcmRlciwgdCwgcDJtLT5kZWZhdWx0X2FjY2Vzcyk7Ci0gICAg
aWYgKCByYyA9PSAwICkKKyAgICBpZiAoIGxpa2VseSghcmMpICkKICAgICB7
Ci0gICAgICAgIHBvZF9sb2NrKHAybSk7Ci0gICAgICAgIHAybS0+cG9kLmVu
dHJ5X2NvdW50IC09IHBvZF9jb3VudDsKLSAgICAgICAgQlVHX09OKHAybS0+
cG9kLmVudHJ5X2NvdW50IDwgMCk7Ci0gICAgICAgIHBvZF91bmxvY2socDJt
KTsKLQogICAgICAgICBpZiAoICFwMm1faXNfZ3JhbnQodCkgKQogICAgICAg
ICB7CiAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFn
ZV9vcmRlcik7IGkrKyApCkBAIC0xMDE2LDYgKzEwMzEsNDIgQEAgZ3Vlc3Rf
cGh5c21hcF9hZGRfZW50cnkoc3RydWN0IGRvbWFpbiAqZAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl94KGdmbl9hZGQoZ2ZuLCBp
KSkpOwogICAgICAgICB9CiAgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAg
ICAgIC8qCisgICAgICAgICAqIFRoZSBvcGVyYXRpb24gbWF5IGhhdmUgcGFy
dGlhbGx5IHN1Y2NlZWRlZC4gRm9yIHRoZSBzdWNjZXNzZnVsIHBhcnQKKyAg
ICAgICAgICogd2UgbmVlZCB0byB1cGRhdGUgTTJQIGFuZCBkaXJ0eSBzdGF0
ZSwgd2hpbGUgZm9yIHRoZSBmYWlsZWQgcGFydCB3ZQorICAgICAgICAgKiBt
YXkgbmVlZCB0byBhZGp1c3QgUG9EIHN0YXRzIGFzIHdlbGwgYXMgdW5kbyB0
aGUgZWFybGllciBNMlAgdXBkYXRlLgorICAgICAgICAgKi8KKyAgICAgICAg
Zm9yICggaSA9IDA7IGkgPCAoMVVMIDw8IHBhZ2Vfb3JkZXIpOyArK2kgKQor
ICAgICAgICB7CisgICAgICAgICAgICBvbWZuID0gcDJtLT5nZXRfZW50cnko
cDJtLCBnZm5fYWRkKGdmbiwgaSksICZvdCwgJmEsIDAsIE5VTEwsIE5VTEwp
OworICAgICAgICAgICAgaWYgKCBwMm1faXNfcG9kKG90KSApCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgQlVHX09OKCFwb2RfY291bnQpOwor
ICAgICAgICAgICAgICAgIC0tcG9kX2NvdW50OworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgZWxzZSBpZiAoIG1mbl9lcShvbWZuLCBtZm5fYWRkKG1m
biwgaSkpICYmIG90ID09IHQgJiYKKyAgICAgICAgICAgICAgICAgICAgICBh
ID09IHAybS0+ZGVmYXVsdF9hY2Nlc3MgJiYgIXAybV9pc19ncmFudCh0KSAp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc2V0X2dwZm5fZnJv
bV9tZm4obWZuX3gob21mbiksIGdmbl94KGdmbikgKyBpKTsKKyAgICAgICAg
ICAgICAgICBwYWdpbmdfbWFya19wZm5fZGlydHkoZCwgX3BmbihnZm5feChn
Zm4pICsgaSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBp
ZiAoIHAybV9pc19yYW0ob3QpICYmICFwMm1faXNfcGFnZWQob3QpICkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQobWZuX3ZhbGlk
KG9tZm4pKTsKKyAgICAgICAgICAgICAgICBzZXRfZ3Bmbl9mcm9tX21mbiht
Zm5feChvbWZuKSwgZ2ZuX3goZ2ZuKSArIGkpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCBwb2RfY291bnQgKQorICAg
IHsKKyAgICAgICAgcG9kX2xvY2socDJtKTsKKyAgICAgICAgcDJtLT5wb2Qu
ZW50cnlfY291bnQgLT0gcG9kX2NvdW50OworICAgICAgICBCVUdfT04ocDJt
LT5wb2QuZW50cnlfY291bnQgPCAwKTsKKyAgICAgICAgcG9kX3VubG9jayhw
Mm0pOworICAgIH0KIAogIG91dDoKICAgICBwMm1fdW5sb2NrKHAybSk7CkBA
IC0xMzA3LDYgKzEzNTgsNDkgQEAgc3RhdGljIGludCBzZXRfdHlwZWRfcDJt
X2VudHJ5KHN0cnVjdCBkbwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAg
ICAgIH0KICAgICB9CisKKyAgICBQMk1fREVCVUcoInNldCAlZCAlbHggJWx4
XG4iLCBnZm5fcDJtdCwgZ2ZuX2wsIG1mbl94KG1mbikpOworICAgIHJjID0g
cDJtX3NldF9lbnRyeShwMm0sIGdmbiwgbWZuLCBvcmRlciwgZ2ZuX3AybXQs
IGFjY2Vzcyk7CisgICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgIHsKKyAg
ICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgInAybV9zZXRfZW50cnk6ICUj
bHg6JXUgLT4gJWQgKDB4JSJQUklfbWZuIilcbiIsCisgICAgICAgICAgICAg
ICAgIGdmbl9sLCBvcmRlciwgcmMsIG1mbl94KG1mbikpOworCisgICAgICAg
IC8qCisgICAgICAgICAqIFRoZSBvcGVyYXRpb24gbWF5IGhhdmUgcGFydGlh
bGx5IHN1Y2NlZWRlZC4gRm9yIHRoZSBzdWNjZXNzZnVsIHBhcnQKKyAgICAg
ICAgICogd2UgbmVlZCB0byB1cGRhdGUgUG9EIHN0YXRzLCBNMlAsIGFuZCBk
aXJ0eSBzdGF0ZS4KKyAgICAgICAgICovCisgICAgICAgIGlmICggb3JkZXIg
IT0gUEFHRV9PUkRFUl80SyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHVu
c2lnbmVkIGxvbmcgaTsKKworICAgICAgICAgICAgZm9yICggaSA9IDA7IGkg
PCAoMVVMIDw8IG9yZGVyKTsgKytpICkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBwMm1fdHlwZV90IHQ7CisgICAgICAgICAgICAgICAgbWZu
X3QgY21mbiA9IHAybS0+Z2V0X2VudHJ5KHAybSwgZ2ZuX2FkZChnZm4sIGkp
LCAmdCwgJmEsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworCisgICAgICAgICAgICAgICAg
aWYgKCAhbWZuX2VxKGNtZm4sIG1mbl9hZGQobWZuLCBpKSkgfHwgdCAhPSBn
Zm5fcDJtdCB8fAorICAgICAgICAgICAgICAgICAgICAgYSAhPSBhY2Nlc3Mg
KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAg
ICAgICAgIGlmICggcDJtX2lzX3JhbShvdCkgKQorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG1mbl92YWxpZChtZm5f
YWRkKG9tZm4sIGkpKSk7CisgICAgICAgICAgICAgICAgICAgIHNldF9ncGZu
X2Zyb21fbWZuKG1mbl94KG9tZm4pICsgaSwgSU5WQUxJRF9NMlBfRU5UUlkp
OworICAgICAgICAgICAgICAgIH0KKyNpZmRlZiBDT05GSUdfSFZNCisgICAg
ICAgICAgICAgICAgZWxzZSBpZiAoIHAybV9pc19wb2Qob3QpICkKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHBvZF9sb2NrKHAy
bSk7CisgICAgICAgICAgICAgICAgICAgIEJVR19PTighcDJtLT5wb2QuZW50
cnlfY291bnQpOworICAgICAgICAgICAgICAgICAgICAtLXAybS0+cG9kLmVu
dHJ5X2NvdW50OworICAgICAgICAgICAgICAgICAgICBwb2RfdW5sb2NrKHAy
bSk7CisgICAgICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CiAgICAgZWxzZSBpZiAoIHAybV9pc19yYW0o
b3QpICkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgaTsKQEAgLTEz
MTcsMTIgKzE0MTEsNiBAQCBzdGF0aWMgaW50IHNldF90eXBlZF9wMm1fZW50
cnkoc3RydWN0IGRvCiAgICAgICAgICAgICBzZXRfZ3Bmbl9mcm9tX21mbiht
Zm5feChvbWZuKSArIGksIElOVkFMSURfTTJQX0VOVFJZKTsKICAgICAgICAg
fQogICAgIH0KLQotICAgIFAyTV9ERUJVRygic2V0ICVkICVseCAlbHhcbiIs
IGdmbl9wMm10LCBnZm5fbCwgbWZuX3gobWZuKSk7Ci0gICAgcmMgPSBwMm1f
c2V0X2VudHJ5KHAybSwgZ2ZuLCBtZm4sIG9yZGVyLCBnZm5fcDJtdCwgYWNj
ZXNzKTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgZ2RwcmludGsoWEVOTE9H
X0VSUiwgInAybV9zZXRfZW50cnk6ICUjbHg6JXUgLT4gJWQgKDB4JSJQUklf
bWZuIilcbiIsCi0gICAgICAgICAgICAgICAgIGdmbl9sLCBvcmRlciwgcmMs
IG1mbl94KG1mbikpOwogI2lmZGVmIENPTkZJR19IVk0KICAgICBlbHNlIGlm
ICggcDJtX2lzX3BvZChvdCkgKQogICAgIHsK

--=separator
Content-Type: application/octet-stream; name="xsa389-4.14.patch"
Content-Disposition: attachment; filename="xsa389-4.14.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUDJNOiBkZWFsIHdpdGggcGFydGlhbCBzdWNjZXNzIG9mIHAybV9z
ZXRfZW50cnkoKQoKTTJQIGFuZCBQb0Qgc3RhdHMgbmVlZCB0byByZW1haW4g
aW4gc3luYyB3aXRoIFAyTTsgaWYgYW4gdXBkYXRlIHN1Y2NlZWRzCm9ubHkg
cGFydGlhbGx5LCByZXNwZWN0aXZlIGFkanVzdG1lbnRzIG5lZWQgdG8gYmUg
bWFkZS4gSWYgdXBkYXRlcyBnZXQKbWFkZSBiZWZvcmUgdGhlIGNhbGwsIHRo
ZXkgbWF5IGFsc28gbmVlZCB1bmRvaW5nIHVwb24gY29tcGxldGUgZmFpbHVy
ZQooaS5lLiBpbmNsdWRpbmcgdGhlIHNpbmdsZS1wYWdlIGNhc2UpLgoKTG9n
LWRpcnR5IHN0YXRlIHdvdWxkIGJldHRlciBhbHNvIGJlIGtlcHQgaW4gc3lu
Yy4KCk5vdGUgdGhhdCB0aGUgY2hhbmdlIHRvIHNldF90eXBlZF9wMm1fZW50
cnkoKSBtYXkgbm90IGJlIHN0cmljdGx5Cm5lY2Vzc2FyeSAoZHVlIHRvIHRo
ZSBvcmRlciByZXN0cmljdGlvbiBlbmZvcmNlZCBuZWFyIHRoZSB0b3Agb2Yg
dGhlCmZ1bmN0aW9uKSwgYnV0IGlzIGJlaW5nIGtlcHQgaGVyZSB0byBiZSBv
biB0aGUgc2FmZSBzaWRlLgoKVGhpcyBpcyBDVkUtMjAyMS0yODcwNSBhbmQg
Q1ZFLTIwMjEtMjg3MDkgLyBYU0EtMzg5LgoKU2lnbmVkLW9mZi1ieTogSmFu
IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUm9n
ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94
ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3Ay
bS5jCkBAIC03ODAsNiArNzgwLDcgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVj
dCBwMm1fZG9tYWluICpwMm0sCiAgICAgdW5zaWduZWQgbG9uZyBpOwogICAg
IHAybV90eXBlX3QgdDsKICAgICBwMm1fYWNjZXNzX3QgYTsKKyAgICBpbnQg
cmM7CiAKICAgICAvKiBJT01NVSBmb3IgUFYgZ3Vlc3RzIGlzIGhhbmRsZWQg
aW4gZ2V0X3BhZ2VfdHlwZSgpIGFuZCBwdXRfcGFnZSgpLiAqLwogICAgIGlm
ICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShwMm0tPmRvbWFpbikgKQpAQCAt
ODEzLDggKzgxNCwyNyBAQCBwMm1fcmVtb3ZlX3BhZ2Uoc3RydWN0IHAybV9k
b21haW4gKnAybSwKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBw
Mm1fc2V0X2VudHJ5KHAybSwgZ2ZuLCBJTlZBTElEX01GTiwgcGFnZV9vcmRl
ciwgcDJtX2ludmFsaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcDJt
LT5kZWZhdWx0X2FjY2Vzcyk7CisgICAgcmMgPSBwMm1fc2V0X2VudHJ5KHAy
bSwgZ2ZuLCBJTlZBTElEX01GTiwgcGFnZV9vcmRlciwgcDJtX2ludmFsaWQs
CisgICAgICAgICAgICAgICAgICAgICAgIHAybS0+ZGVmYXVsdF9hY2Nlc3Mp
OworICAgIGlmICggbGlrZWx5KCFyYykgfHwgIW1mbl92YWxpZChtZm4pICkK
KyAgICAgICAgcmV0dXJuIHJjOworCisgICAgLyoKKyAgICAgKiBUaGUgb3Bl
cmF0aW9uIG1heSBoYXZlIHBhcnRpYWxseSBzdWNjZWVkZWQuIEZvciB0aGUg
ZmFpbGVkIHBhcnQgd2UgbmVlZAorICAgICAqIHRvIHVuZG8gdGhlIE0yUCB1
cGRhdGUgYW5kLCBvdXQgb2YgcHJlY2F1dGlvbiwgbWFyayB0aGUgcGFnZXMg
ZGlydHkKKyAgICAgKiBhZ2Fpbi4KKyAgICAgKi8KKyAgICBmb3IgKCBpID0g
MDsgaSA8ICgxVUwgPDwgcGFnZV9vcmRlcik7ICsraSApCisgICAgeworICAg
ICAgICBwMm0tPmdldF9lbnRyeShwMm0sIGdmbl9hZGQoZ2ZuLCBpKSwgJnQs
ICZhLCAwLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgaWYgKCAhcDJtX2lzX2hv
bGUodCkgJiYgIXAybV9pc19zcGVjaWFsKHQpICYmICFwMm1faXNfc2hhcmVk
KHQpICkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0X2dwZm5fZnJvbV9t
Zm4obWZuX3gobWZuKSArIGksIGdmbl94KGdmbikgKyBpKTsKKyAgICAgICAg
ICAgIHBhZ2luZ19tYXJrX3Bmbl9kaXJ0eShwMm0tPmRvbWFpbiwgX3Bmbihn
Zm5feChnZm4pICsgaSkpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0
dXJuIHJjOwogfQogCiBpbnQKQEAgLTEwMDMsMTMgKzEwMjMsOCBAQCBndWVz
dF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWluICpkCiAKICAgICAv
KiBOb3csIGFjdHVhbGx5IGRvIHRoZSB0d28td2F5IG1hcHBpbmcgKi8KICAg
ICByYyA9IHAybV9zZXRfZW50cnkocDJtLCBnZm4sIG1mbiwgcGFnZV9vcmRl
ciwgdCwgcDJtLT5kZWZhdWx0X2FjY2Vzcyk7Ci0gICAgaWYgKCByYyA9PSAw
ICkKKyAgICBpZiAoIGxpa2VseSghcmMpICkKICAgICB7Ci0gICAgICAgIHBv
ZF9sb2NrKHAybSk7Ci0gICAgICAgIHAybS0+cG9kLmVudHJ5X2NvdW50IC09
IHBvZF9jb3VudDsKLSAgICAgICAgQlVHX09OKHAybS0+cG9kLmVudHJ5X2Nv
dW50IDwgMCk7Ci0gICAgICAgIHBvZF91bmxvY2socDJtKTsKLQogICAgICAg
ICBpZiAoICFwMm1faXNfZ3JhbnQodCkgKQogICAgICAgICB7CiAgICAgICAg
ICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9vcmRlcik7IGkr
KyApCkBAIC0xMDE3LDYgKzEwMzIsNDIgQEAgZ3Vlc3RfcGh5c21hcF9hZGRf
ZW50cnkoc3RydWN0IGRvbWFpbiAqZAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdmbl94KGdmbl9hZGQoZ2ZuLCBpKSkpOwogICAgICAg
ICB9CiAgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8qCisgICAg
ICAgICAqIFRoZSBvcGVyYXRpb24gbWF5IGhhdmUgcGFydGlhbGx5IHN1Y2Nl
ZWRlZC4gRm9yIHRoZSBzdWNjZXNzZnVsIHBhcnQKKyAgICAgICAgICogd2Ug
bmVlZCB0byB1cGRhdGUgTTJQIGFuZCBkaXJ0eSBzdGF0ZSwgd2hpbGUgZm9y
IHRoZSBmYWlsZWQgcGFydCB3ZQorICAgICAgICAgKiBtYXkgbmVlZCB0byBh
ZGp1c3QgUG9EIHN0YXRzIGFzIHdlbGwgYXMgdW5kbyB0aGUgZWFybGllciBN
MlAgdXBkYXRlLgorICAgICAgICAgKi8KKyAgICAgICAgZm9yICggaSA9IDA7
IGkgPCAoMVVMIDw8IHBhZ2Vfb3JkZXIpOyArK2kgKQorICAgICAgICB7Cisg
ICAgICAgICAgICBvbWZuID0gcDJtLT5nZXRfZW50cnkocDJtLCBnZm5fYWRk
KGdmbiwgaSksICZvdCwgJmEsIDAsIE5VTEwsIE5VTEwpOworICAgICAgICAg
ICAgaWYgKCBwMm1faXNfcG9kKG90KSApCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgQlVHX09OKCFwb2RfY291bnQpOworICAgICAgICAgICAg
ICAgIC0tcG9kX2NvdW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAg
ZWxzZSBpZiAoIG1mbl9lcShvbWZuLCBtZm5fYWRkKG1mbiwgaSkpICYmIG90
ID09IHQgJiYKKyAgICAgICAgICAgICAgICAgICAgICBhID09IHAybS0+ZGVm
YXVsdF9hY2Nlc3MgJiYgIXAybV9pc19ncmFudCh0KSApCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgc2V0X2dwZm5fZnJvbV9tZm4obWZuX3go
b21mbiksIGdmbl94KGdmbikgKyBpKTsKKyAgICAgICAgICAgICAgICBwYWdp
bmdfbWFya19wZm5fZGlydHkoZCwgX3BmbihnZm5feChnZm4pICsgaSkpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoIHAybV9pc19y
YW0ob3QpICYmICFwMm1faXNfcGFnZWQob3QpICkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKG9tZm4pKTsKKyAg
ICAgICAgICAgICAgICBzZXRfZ3Bmbl9mcm9tX21mbihtZm5feChvbWZuKSwg
Z2ZuX3goZ2ZuKSArIGkpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKCBwb2RfY291bnQgKQorICAgIHsKKyAgICAgICAg
cG9kX2xvY2socDJtKTsKKyAgICAgICAgcDJtLT5wb2QuZW50cnlfY291bnQg
LT0gcG9kX2NvdW50OworICAgICAgICBCVUdfT04ocDJtLT5wb2QuZW50cnlf
Y291bnQgPCAwKTsKKyAgICAgICAgcG9kX3VubG9jayhwMm0pOworICAgIH0K
IAogb3V0OgogICAgIHAybV91bmxvY2socDJtKTsKQEAgLTEzMDgsNiArMTM1
OSw0OSBAQCBzdGF0aWMgaW50IHNldF90eXBlZF9wMm1fZW50cnkoc3RydWN0
IGRvCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0K
KworICAgIFAyTV9ERUJVRygic2V0ICVkICVseCAlbHhcbiIsIGdmbl9wMm10
LCBnZm5fbCwgbWZuX3gobWZuKSk7CisgICAgcmMgPSBwMm1fc2V0X2VudHJ5
KHAybSwgZ2ZuLCBtZm4sIG9yZGVyLCBnZm5fcDJtdCwgYWNjZXNzKTsKKyAg
ICBpZiAoIHVubGlrZWx5KHJjKSApCisgICAgeworICAgICAgICBnZHByaW50
ayhYRU5MT0dfRVJSLCAicDJtX3NldF9lbnRyeTogJSNseDoldSAtPiAlZCAo
MHglIlBSSV9tZm4iKVxuIiwKKyAgICAgICAgICAgICAgICAgZ2ZuX2wsIG9y
ZGVyLCByYywgbWZuX3gobWZuKSk7CisKKyAgICAgICAgLyoKKyAgICAgICAg
ICogVGhlIG9wZXJhdGlvbiBtYXkgaGF2ZSBwYXJ0aWFsbHkgc3VjY2VlZGVk
LiBGb3IgdGhlIHN1Y2Nlc3NmdWwgcGFydAorICAgICAgICAgKiB3ZSBuZWVk
IHRvIHVwZGF0ZSBQb0Qgc3RhdHMsIE0yUCwgYW5kIGRpcnR5IHN0YXRlLgor
ICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBvcmRlciAhPSBQQUdFX09SREVS
XzRLICkKKyAgICAgICAgeworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBp
OworCisgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgb3Jk
ZXIpOyArK2kgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHAy
bV90eXBlX3QgdDsKKyAgICAgICAgICAgICAgICBtZm5fdCBjbWZuID0gcDJt
LT5nZXRfZW50cnkocDJtLCBnZm5fYWRkKGdmbiwgaSksICZ0LCAmYSwgMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TlVMTCwgTlVMTCk7CisKKyAgICAgICAgICAgICAgICBpZiAoICFtZm5fZXEo
Y21mbiwgbWZuX2FkZChtZm4sIGkpKSB8fCB0ICE9IGdmbl9wMm10IHx8Cisg
ICAgICAgICAgICAgICAgICAgICBhICE9IGFjY2VzcyApCisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaWYgKCBw
Mm1faXNfcmFtKG90KSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKG1mbl9hZGQob21mbiwgaSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0X2dwZm5fZnJvbV9tZm4obWZu
X3gob21mbikgKyBpLCBJTlZBTElEX00yUF9FTlRSWSk7CisgICAgICAgICAg
ICAgICAgfQorI2lmZGVmIENPTkZJR19IVk0KKyAgICAgICAgICAgICAgICBl
bHNlIGlmICggcDJtX2lzX3BvZChvdCkgKQorICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgcG9kX2xvY2socDJtKTsKKyAgICAgICAg
ICAgICAgICAgICAgQlVHX09OKCFwMm0tPnBvZC5lbnRyeV9jb3VudCk7Cisg
ICAgICAgICAgICAgICAgICAgIC0tcDJtLT5wb2QuZW50cnlfY291bnQ7Cisg
ICAgICAgICAgICAgICAgICAgIHBvZF91bmxvY2socDJtKTsKKyAgICAgICAg
ICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KICAgICBlbHNlIGlmICggcDJtX2lzX3JhbShvdCkgKQogICAgIHsK
ICAgICAgICAgdW5zaWduZWQgbG9uZyBpOwpAQCAtMTMxOCwxMiArMTQxMiw2
IEBAIHN0YXRpYyBpbnQgc2V0X3R5cGVkX3AybV9lbnRyeShzdHJ1Y3QgZG8K
ICAgICAgICAgICAgIHNldF9ncGZuX2Zyb21fbWZuKG1mbl94KG9tZm4pICsg
aSwgSU5WQUxJRF9NMlBfRU5UUlkpOwogICAgICAgICB9CiAgICAgfQotCi0g
ICAgUDJNX0RFQlVHKCJzZXQgJWQgJWx4ICVseFxuIiwgZ2ZuX3AybXQsIGdm
bl9sLCBtZm5feChtZm4pKTsKLSAgICByYyA9IHAybV9zZXRfZW50cnkocDJt
LCBnZm4sIG1mbiwgb3JkZXIsIGdmbl9wMm10LCBhY2Nlc3MpOwotICAgIGlm
ICggcmMgKQotICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJSLCAicDJtX3Nl
dF9lbnRyeTogJSNseDoldSAtPiAlZCAoMHglIlBSSV9tZm4iKVxuIiwKLSAg
ICAgICAgICAgICAgICAgZ2ZuX2wsIG9yZGVyLCByYywgbWZuX3gobWZuKSk7
CiAjaWZkZWYgQ09ORklHX0hWTQogICAgIGVsc2UgaWYgKCBwMm1faXNfcG9k
KG90KSApCiAgICAgewo=

--=separator
Content-Type: application/octet-stream; name="xsa389-4.15.patch"
Content-Disposition: attachment; filename="xsa389-4.15.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUDJNOiBkZWFsIHdpdGggcGFydGlhbCBzdWNjZXNzIG9mIHAybV9z
ZXRfZW50cnkoKQoKTTJQIGFuZCBQb0Qgc3RhdHMgbmVlZCB0byByZW1haW4g
aW4gc3luYyB3aXRoIFAyTTsgaWYgYW4gdXBkYXRlIHN1Y2NlZWRzCm9ubHkg
cGFydGlhbGx5LCByZXNwZWN0aXZlIGFkanVzdG1lbnRzIG5lZWQgdG8gYmUg
bWFkZS4gSWYgdXBkYXRlcyBnZXQKbWFkZSBiZWZvcmUgdGhlIGNhbGwsIHRo
ZXkgbWF5IGFsc28gbmVlZCB1bmRvaW5nIHVwb24gY29tcGxldGUgZmFpbHVy
ZQooaS5lLiBpbmNsdWRpbmcgdGhlIHNpbmdsZS1wYWdlIGNhc2UpLgoKTG9n
LWRpcnR5IHN0YXRlIHdvdWxkIGJldHRlciBhbHNvIGJlIGtlcHQgaW4gc3lu
Yy4KCk5vdGUgdGhhdCB0aGUgY2hhbmdlIHRvIHNldF90eXBlZF9wMm1fZW50
cnkoKSBtYXkgbm90IGJlIHN0cmljdGx5Cm5lY2Vzc2FyeSAoZHVlIHRvIHRo
ZSBvcmRlciByZXN0cmljdGlvbiBlbmZvcmNlZCBuZWFyIHRoZSB0b3Agb2Yg
dGhlCmZ1bmN0aW9uKSwgYnV0IGlzIGJlaW5nIGtlcHQgaGVyZSB0byBiZSBv
biB0aGUgc2FmZSBzaWRlLgoKVGhpcyBpcyBDVkUtMjAyMS0yODcwNSBhbmQg
Q1ZFLTIwMjEtMjg3MDkgLyBYU0EtMzg5LgoKU2lnbmVkLW9mZi1ieTogSmFu
IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUm9n
ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94
ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3Ay
bS5jCkBAIC03ODQsNiArNzg0LDcgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVj
dCBwMm1fZG9tYWluICpwMm0sCiAgICAgdW5zaWduZWQgbG9uZyBpOwogICAg
IHAybV90eXBlX3QgdDsKICAgICBwMm1fYWNjZXNzX3QgYTsKKyAgICBpbnQg
cmM7CiAKICAgICAvKiBJT01NVSBmb3IgUFYgZ3Vlc3RzIGlzIGhhbmRsZWQg
aW4gZ2V0X3BhZ2VfdHlwZSgpIGFuZCBwdXRfcGFnZSgpLiAqLwogICAgIGlm
ICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShwMm0tPmRvbWFpbikgKQpAQCAt
ODE5LDggKzgyMCwyNyBAQCBwMm1fcmVtb3ZlX3BhZ2Uoc3RydWN0IHAybV9k
b21haW4gKnAybSwKIAogICAgIGlvcmVxX3JlcXVlc3RfbWFwY2FjaGVfaW52
YWxpZGF0ZShwMm0tPmRvbWFpbik7CiAKLSAgICByZXR1cm4gcDJtX3NldF9l
bnRyeShwMm0sIGdmbiwgSU5WQUxJRF9NRk4sIHBhZ2Vfb3JkZXIsIHAybV9p
bnZhbGlkLAotICAgICAgICAgICAgICAgICAgICAgICAgIHAybS0+ZGVmYXVs
dF9hY2Nlc3MpOworICAgIHJjID0gcDJtX3NldF9lbnRyeShwMm0sIGdmbiwg
SU5WQUxJRF9NRk4sIHBhZ2Vfb3JkZXIsIHAybV9pbnZhbGlkLAorICAgICAg
ICAgICAgICAgICAgICAgICBwMm0tPmRlZmF1bHRfYWNjZXNzKTsKKyAgICBp
ZiAoIGxpa2VseSghcmMpIHx8ICFtZm5fdmFsaWQobWZuKSApCisgICAgICAg
IHJldHVybiByYzsKKworICAgIC8qCisgICAgICogVGhlIG9wZXJhdGlvbiBt
YXkgaGF2ZSBwYXJ0aWFsbHkgc3VjY2VlZGVkLiBGb3IgdGhlIGZhaWxlZCBw
YXJ0IHdlIG5lZWQKKyAgICAgKiB0byB1bmRvIHRoZSBNMlAgdXBkYXRlIGFu
ZCwgb3V0IG9mIHByZWNhdXRpb24sIG1hcmsgdGhlIHBhZ2VzIGRpcnR5Cisg
ICAgICogYWdhaW4uCisgICAgICovCisgICAgZm9yICggaSA9IDA7IGkgPCAo
MVVMIDw8IHBhZ2Vfb3JkZXIpOyArK2kgKQorICAgIHsKKyAgICAgICAgcDJt
LT5nZXRfZW50cnkocDJtLCBnZm5fYWRkKGdmbiwgaSksICZ0LCAmYSwgMCwg
TlVMTCwgTlVMTCk7CisgICAgICAgIGlmICggIXAybV9pc19ob2xlKHQpICYm
ICFwMm1faXNfc3BlY2lhbCh0KSAmJiAhcDJtX2lzX3NoYXJlZCh0KSApCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHNldF9ncGZuX2Zyb21fbWZuKG1mbl94
KG1mbikgKyBpLCBnZm5feChnZm4pICsgaSk7CisgICAgICAgICAgICBwYWdp
bmdfbWFya19wZm5fZGlydHkocDJtLT5kb21haW4sIF9wZm4oZ2ZuX3goZ2Zu
KSArIGkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByYzsK
IH0KIAogaW50CkBAIC0xMDA5LDEzICsxMDI5LDggQEAgZ3Vlc3RfcGh5c21h
cF9hZGRfZW50cnkoc3RydWN0IGRvbWFpbiAqZAogCiAgICAgLyogTm93LCBh
Y3R1YWxseSBkbyB0aGUgdHdvLXdheSBtYXBwaW5nICovCiAgICAgcmMgPSBw
Mm1fc2V0X2VudHJ5KHAybSwgZ2ZuLCBtZm4sIHBhZ2Vfb3JkZXIsIHQsIHAy
bS0+ZGVmYXVsdF9hY2Nlc3MpOwotICAgIGlmICggcmMgPT0gMCApCisgICAg
aWYgKCBsaWtlbHkoIXJjKSApCiAgICAgewotICAgICAgICBwb2RfbG9jayhw
Mm0pOwotICAgICAgICBwMm0tPnBvZC5lbnRyeV9jb3VudCAtPSBwb2RfY291
bnQ7Ci0gICAgICAgIEJVR19PTihwMm0tPnBvZC5lbnRyeV9jb3VudCA8IDAp
OwotICAgICAgICBwb2RfdW5sb2NrKHAybSk7Ci0KICAgICAgICAgaWYgKCAh
cDJtX2lzX2dyYW50KHQpICkKICAgICAgICAgewogICAgICAgICAgICAgZm9y
ICggaSA9IDA7IGkgPCAoMVVMIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQpAQCAt
MTAyMyw2ICsxMDM4LDQyIEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0
cnVjdCBkb21haW4gKmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnZm5feChnZm5fYWRkKGdmbiwgaSkpKTsKICAgICAgICAgfQogICAg
IH0KKyAgICBlbHNlCisgICAgeworICAgICAgICAvKgorICAgICAgICAgKiBU
aGUgb3BlcmF0aW9uIG1heSBoYXZlIHBhcnRpYWxseSBzdWNjZWVkZWQuIEZv
ciB0aGUgc3VjY2Vzc2Z1bCBwYXJ0CisgICAgICAgICAqIHdlIG5lZWQgdG8g
dXBkYXRlIE0yUCBhbmQgZGlydHkgc3RhdGUsIHdoaWxlIGZvciB0aGUgZmFp
bGVkIHBhcnQgd2UKKyAgICAgICAgICogbWF5IG5lZWQgdG8gYWRqdXN0IFBv
RCBzdGF0cyBhcyB3ZWxsIGFzIHVuZG8gdGhlIGVhcmxpZXIgTTJQIHVwZGF0
ZS4KKyAgICAgICAgICovCisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFV
TCA8PCBwYWdlX29yZGVyKTsgKytpICkKKyAgICAgICAgeworICAgICAgICAg
ICAgb21mbiA9IHAybS0+Z2V0X2VudHJ5KHAybSwgZ2ZuX2FkZChnZm4sIGkp
LCAmb3QsICZhLCAwLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIGlmICgg
cDJtX2lzX3BvZChvdCkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIEJVR19PTighcG9kX2NvdW50KTsKKyAgICAgICAgICAgICAgICAtLXBv
ZF9jb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYg
KCBtZm5fZXEob21mbiwgbWZuX2FkZChtZm4sIGkpKSAmJiBvdCA9PSB0ICYm
CisgICAgICAgICAgICAgICAgICAgICAgYSA9PSBwMm0tPmRlZmF1bHRfYWNj
ZXNzICYmICFwMm1faXNfZ3JhbnQodCkgKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIHNldF9ncGZuX2Zyb21fbWZuKG1mbl94KG9tZm4pLCBn
Zm5feChnZm4pICsgaSk7CisgICAgICAgICAgICAgICAgcGFnaW5nX21hcmtf
cGZuX2RpcnR5KGQsIF9wZm4oZ2ZuX3goZ2ZuKSArIGkpKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKCBwMm1faXNfcmFtKG90KSAm
JiAhcDJtX2lzX3BhZ2VkKG90KSApCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgQVNTRVJUKG1mbl92YWxpZChvbWZuKSk7CisgICAgICAgICAg
ICAgICAgc2V0X2dwZm5fZnJvbV9tZm4obWZuX3gob21mbiksIGdmbl94KGdm
bikgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmICggcG9kX2NvdW50ICkKKyAgICB7CisgICAgICAgIHBvZF9sb2Nr
KHAybSk7CisgICAgICAgIHAybS0+cG9kLmVudHJ5X2NvdW50IC09IHBvZF9j
b3VudDsKKyAgICAgICAgQlVHX09OKHAybS0+cG9kLmVudHJ5X2NvdW50IDwg
MCk7CisgICAgICAgIHBvZF91bmxvY2socDJtKTsKKyAgICB9CiAKIG91dDoK
ICAgICBwMm1fdW5sb2NrKHAybSk7CkBAIC0xMzE0LDYgKzEzNjUsNTEgQEAg
c3RhdGljIGludCBzZXRfdHlwZWRfcDJtX2VudHJ5KHN0cnVjdCBkbwogICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9CisKKyAgICBQ
Mk1fREVCVUcoInNldCAlZCAlbHggJWx4XG4iLCBnZm5fcDJtdCwgZ2ZuX2ws
IG1mbl94KG1mbikpOworICAgIHJjID0gcDJtX3NldF9lbnRyeShwMm0sIGdm
biwgbWZuLCBvcmRlciwgZ2ZuX3AybXQsIGFjY2Vzcyk7CisgICAgaWYgKCB1
bmxpa2VseShyYykgKQorICAgIHsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9H
X0VSUiwgInAybV9zZXRfZW50cnk6ICUjbHg6JXUgLT4gJWQgKDB4JSJQUklf
bWZuIilcbiIsCisgICAgICAgICAgICAgICAgIGdmbl9sLCBvcmRlciwgcmMs
IG1mbl94KG1mbikpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRoZSBv
cGVyYXRpb24gbWF5IGhhdmUgcGFydGlhbGx5IHN1Y2NlZWRlZC4gRm9yIHRo
ZSBzdWNjZXNzZnVsIHBhcnQKKyAgICAgICAgICogd2UgbmVlZCB0byB1cGRh
dGUgUG9EIHN0YXRzLCBNMlAsIGFuZCBkaXJ0eSBzdGF0ZS4KKyAgICAgICAg
ICovCisgICAgICAgIGlmICggb3JkZXIgIT0gUEFHRV9PUkRFUl80SyApCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaTsKKworICAg
ICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8IG9yZGVyKTsgKytp
ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwMm1fdHlwZV90
IHQ7CisgICAgICAgICAgICAgICAgbWZuX3QgY21mbiA9IHAybS0+Z2V0X2Vu
dHJ5KHAybSwgZ2ZuX2FkZChnZm4sIGkpLCAmdCwgJmEsIDAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5V
TEwpOworCisgICAgICAgICAgICAgICAgaWYgKCAhbWZuX2VxKGNtZm4sIG1m
bl9hZGQobWZuLCBpKSkgfHwgdCAhPSBnZm5fcDJtdCB8fAorICAgICAgICAg
ICAgICAgICAgICAgYSAhPSBhY2Nlc3MgKQorICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGlmICggcDJtX2lzX3Jh
bShvdCkgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKG1mbl92YWxpZChtZm5fYWRkKG9tZm4sIGkpKSk7CisgICAg
ICAgICAgICAgICAgICAgIHNldF9ncGZuX2Zyb21fbWZuKG1mbl94KG9tZm4p
ICsgaSwgSU5WQUxJRF9NMlBfRU5UUlkpOworCisgICAgICAgICAgICAgICAg
ICAgIGlvcmVxX3JlcXVlc3RfbWFwY2FjaGVfaW52YWxpZGF0ZShkKTsKKyAg
ICAgICAgICAgICAgICB9CisjaWZkZWYgQ09ORklHX0hWTQorICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKCBwMm1faXNfcG9kKG90KSApCisgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICBwb2RfbG9jayhwMm0pOwor
ICAgICAgICAgICAgICAgICAgICBCVUdfT04oIXAybS0+cG9kLmVudHJ5X2Nv
dW50KTsKKyAgICAgICAgICAgICAgICAgICAgLS1wMm0tPnBvZC5lbnRyeV9j
b3VudDsKKyAgICAgICAgICAgICAgICAgICAgcG9kX3VubG9jayhwMm0pOwor
ICAgICAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQogICAgIGVsc2UgaWYgKCBwMm1faXNfcmFtKG90KSAp
CiAgICAgewogICAgICAgICB1bnNpZ25lZCBsb25nIGk7CkBAIC0xMzI2LDEy
ICsxNDIyLDYgQEAgc3RhdGljIGludCBzZXRfdHlwZWRfcDJtX2VudHJ5KHN0
cnVjdCBkbwogCiAgICAgICAgIGlvcmVxX3JlcXVlc3RfbWFwY2FjaGVfaW52
YWxpZGF0ZShkKTsKICAgICB9Ci0KLSAgICBQMk1fREVCVUcoInNldCAlZCAl
bHggJWx4XG4iLCBnZm5fcDJtdCwgZ2ZuX2wsIG1mbl94KG1mbikpOwotICAg
IHJjID0gcDJtX3NldF9lbnRyeShwMm0sIGdmbiwgbWZuLCBvcmRlciwgZ2Zu
X3AybXQsIGFjY2Vzcyk7Ci0gICAgaWYgKCByYyApCi0gICAgICAgIGdkcHJp
bnRrKFhFTkxPR19FUlIsICJwMm1fc2V0X2VudHJ5OiAlI2x4OiV1IC0+ICVk
ICgweCUiUFJJX21mbiIpXG4iLAotICAgICAgICAgICAgICAgICBnZm5fbCwg
b3JkZXIsIHJjLCBtZm5feChtZm4pKTsKICNpZmRlZiBDT05GSUdfSFZNCiAg
ICAgZWxzZSBpZiAoIHAybV9pc19wb2Qob3QpICkKICAgICB7Cg==

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 12:12:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 12:12:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229246.396768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUez-0001FC-0r; Tue, 23 Nov 2021 12:12:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229246.396768; Tue, 23 Nov 2021 12:12:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUey-0001EO-OC; Tue, 23 Nov 2021 12:12:28 +0000
Received: by outflank-mailman (input) for mailman id 229246;
 Tue, 23 Nov 2021 12:12:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ayLh=QK=xenbits.xen.org=iwj@srs-se1.protection.inumbo.net>)
 id 1mpUew-0008MT-OS
 for xen-devel@lists.xen.org; Tue, 23 Nov 2021 12:12:26 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87884040-4c56-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 13:12:22 +0100 (CET)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mpUe8-0002WR-Qw; Tue, 23 Nov 2021 12:11:36 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mpUe8-0004X3-Q0; Tue, 23 Nov 2021 12:11:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87884040-4c56-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=q2HCCmRA4eyGBtlwL+LNVG30xiN/OakaIW2lLeVdN2E=; b=JTuizbbtWZk8XJEe1kYE1c8utZ
	fJ4p3XTcPB1Do3cF5H0FHnjqMwN5GlIu9Ld/CseW4EZh5XaNpAYVQD89tGRgCWTdTENS41PskXuco
	zazicsphTovKT/1CxD3niTkJhPjVoJ/gRebdKdEZiOPBMT8Nxf0gJgtKLxq0XVONuPFI=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 387 v2 (CVE-2021-28703) - grant table v2
 status pages may remain accessible after de-allocation (take two)
Message-Id: <E1mpUe8-0004X3-Q0@xenbits.xenproject.org>
Date: Tue, 23 Nov 2021 12:11:36 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2021-28703 / XSA-387
                               version 2

 grant table v2 status pages may remain accessible after de-allocation (take two)

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

Guest get permitted access to certain Xen-owned pages of memory.  The
majority of such pages remain allocated / associated with a guest for
its entire lifetime.  Grant table v2 status pages, however, get
de-allocated when a guest switched (back) from v2 to v1.  The freeing
of such pages requires that the hypervisor know where in the guest
these pages were mapped.  The hypervisor tracks only one use within
guest space, but racing requests from the guest to insert mappings of
these pages may result in any of them to become mapped in multiple
locations.  Upon switching back from v2 to v1, the guest would then
retain access to a page that was freed and perhaps re-used for other
purposes.

This bug was fortuitously fixed by code cleanup in Xen 4.14, and
backported to security-supported Xen branches as a prerequisite of the
fix for XSA-378.

IMPACT
======

A malicious guest may be able to elevate its privileges to that of the
host, cause host or guest Denial of Service (DoS), or cause information
leaks.

VULNERABLE SYSTEMS
==================

All Xen branches up to and including 4.13 are vulnerable,
but only if the patches for XSA-378 have not been applied.

Xen versions 4.13.4, 4.14.x and 4.15.x are not affected.

Only x86 HMV and PVH guests permitted to use grant table version 2
interfaces can leverage this vulnerability.  x86 PV guests cannot
leverage this vulnerability.  On Arm, grant table v2 use is explicitly
unsupported.

MITIGATION
==========

Running only PV guests will avoid this vulnerability.

Suppressing use of grant table v2 interfaces for HVM or PVH guests will
also avoid this vulnerability.

CREDITS
=======

This issue was discovered by Patryk Balicki and Julien Grall of Amazon.

RESOLUTION
==========

Applying the following patch resolves the issue:
  x86/p2m: don't assert that the passed in MFN matches for a remove

This patch was supplied with XSA-378, as one of 378's prerequisites.
The fix has already been applied to Xen stable branches as follows:

c65ea16dbcafbe4fe21693b18f8c2a3c5d14600e   in Xen 4.14.x, 4.15.x
f50fbddbae81fcccae56d27317bd71cc0e678ba2   in Xen 4.13.4
d44643199c96ac22491ae002d3bcd1c989b95ea4   in xen.git#stable-4.12
66f400c71d12fe8adfb895984b14f2941e8cb6ce   in xen.git#stable-4.11

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmGc2jgMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZlWUIAJ4bU9n2q9A4sqhiW0xJOCI4MIdwV2ym6xziP9iN
e5sg0u3gdp94M1vLf//8h7julxLXgdJd10HWWpJkfRQcsfz3E1ul1O+mAsoHxJwI
/qGl1Xis7AkDFjrPXthJUKh/DNgi8F1Rok7XDbfFznk34v4g6anh4JDfqJIUwIFQ
l2s6qIOc2PjvmrJMXEboT1wEUADZNtChIqOL7Ibre9Zz6/mdr0FjPfPvLAqfvf9m
aLaMElJMRx5iTEUG7qCYXUn8oKLbWNTv88yceudE7QZl3/zv/UnEL8nvBZWs/Gkx
UbrC6wkNFUSpF/ngexvzsSE/SrfMYYaUPfIciyuxvuosGJY=
=DmKh
-----END PGP SIGNATURE-----

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 12:12:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 12:12:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229249.396787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUf0-0001dh-Nb; Tue, 23 Nov 2021 12:12:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229249.396787; Tue, 23 Nov 2021 12:12:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUf0-0001bO-7C; Tue, 23 Nov 2021 12:12:30 +0000
Received: by outflank-mailman (input) for mailman id 229249;
 Tue, 23 Nov 2021 12:12:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ayLh=QK=xenbits.xen.org=iwj@srs-se1.protection.inumbo.net>)
 id 1mpUey-0008EP-0z
 for xen-devel@lists.xen.org; Tue, 23 Nov 2021 12:12:28 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 775fe9eb-4c56-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 13:12:16 +0100 (CET)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mpUdk-0002Sq-Ah; Tue, 23 Nov 2021 12:11:12 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mpUdk-0004TE-9S; Tue, 23 Nov 2021 12:11:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 775fe9eb-4c56-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=CWZ3s2wQ2GbyrtnX/367/JrTLXQ16T38Nv8RMy9Ibuo=; b=YUjTfMgav5JkdOE3pzd35yHMXB
	g02lNH/rGoO3ncHSBiAGO9QuItbiZezKGlGt+DWkHUtXjjbUqJfs2WM4tGBco+QUlKhfCGsK7iOOo
	h+jyq0lC8qaGSL3XGS04Y1mquxc2STd+461OJDz3pLklkRsb9G7q+Hk7j6OsGf+yHaSA=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 385 v2 (CVE-2021-28706) - guests may exceed
 their designated memory limit
Message-Id: <E1mpUdk-0004TE-9S@xenbits.xenproject.org>
Date: Tue, 23 Nov 2021 12:11:12 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2021-28706 / XSA-385
                               version 2

             guests may exceed their designated memory limit

UPDATES IN VERSION 2
====================

Add CVE numbers to patches.

Public release.

ISSUE DESCRIPTION
=================

When a guest is permitted to have close to 16TiB of memory, it may be
able to issue hypercalls to increase its memory allocation beyond the
administrator established limit.  This is a result of a calculation
done with 32-bit precision, which may overflow.  It would then only
be the overflowed (and hence small) number which gets compared against
the established upper bound.

IMPACT
======

A guest may be able too allocate unbounded amounts of memory to itself.
This may result in a Denial of Service (DoS) affecting the entire host.

VULNERABLE SYSTEMS
==================

All Xen versions from at least 3.2 onwards are affected.

On x86, only Xen builds with the BIGMEM configuration option enabled are
affected.  (This option is off by default.)

Only hosts with more than 16 TiB of memory are affected.

MITIGATION
==========

Setting the maximum amount of memory a guest may allocate to strictly
less than 1023 GiB will avoid the vulnerability.

CREDITS
=======

This issue was discovered by Julien Grall of Amazon.

RESOLUTION
==========

Applying the appropriate first attached patch resolves this specific
issue.  The second patch in addition documents altered support status of
Xen on huge memory systems.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa385-?.patch           xen-unstable
xsa385-4.15.patch        Xen 4.15.x - 4.14.x
xsa385-4.13.patch        Xen 4.13.x
xsa385-4.12.patch        Xen 4.12.x

$ sha256sum xsa385*
b278902e293730a117605200910180bb842cf95db4bdedfd54b42b7314041d8c  xsa385-1.patch
46a5ccfbb763b857f6cd0df46a9b7eed155b9de399ca4c68c9925faf4d1d9adb  xsa385-2.patch
69ebe63dc7dca71f74260af19205a6387be56c7dc67b97fa7695ab1acd3c4da4  xsa385-4.12.patch
858eaad715e7cc62c4ab9784360f4ec77df70b2636b0755afe780d5c618cf9b4  xsa385-4.13.patch
831e86c3adfec532b1a48a0b967b7c58c37db3733aee8d78216eb9d535b34f12  xsa385-4.15.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches described above (or others which are
substantially similar) is permitted during the embargo, even on public-
facing systems with untrusted guest users and administrators.

HOWEVER, deployment of the mitigation described above is NOT permitted
during the embargo on public-facing systems with untrusted guest users
and administrators.  This is because such a configuration change is
recognizable by the affected guests.

AND: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmGc2jYMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZEd4IAMwrHHAqFvSHgZ8Uw+DzMeT54db9nowudP9i/kYy
+KobbVlGkxwLAU3mvh5lRkOLYzoIonrcA99cajZQNIcOKt3Mfi/8qzGGUN+hWZvh
6EZo3m7+7vx9mhtAeDBUbjkcZBLiVyxRAWALMS67ScBEX9lZTvbyj9nGkdQJmmfR
pKt98z2Da2uR9YF521KWobuPYC0AFXujYBoavaTQpU/M8SiM+Wp1A2Fc6ZG+9ZKo
frMeqFbHvwj94Hbqpn6CoLu2d/XnykMvttuLlqCKTccQc3puHXdQRz14W8IxxGYx
gqYaIShZCFw/bUCu8mYHroDUlELJI3PIWQ1nJxy02bd5+N0=
=7E6A
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa385-1.patch"
Content-Disposition: attachment; filename="xsa385-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4KU3ViamVj
dDogeGVuL3BhZ2VfYWxsb2M6IEhhcmRlbiBhc3NpZ25fcGFnZXMoKQoKZG9t
YWluX3RvdF9wYWdlcygpIGFuZCBkLT5tYXhfcGFnZXMgYXJlIDMyLWJpdCB2
YWx1ZXMuIFdoaWxlIHRoZSBvcmRlcgpzaG91bGQgYWx3YXlzIGJlIHF1aXRl
IHNtYWxsLCBpdCB3b3VsZCBzdGlsbCBiZSBwb3NzaWJsZSB0byBvdmVyZmxv
dwppZiBkb21haW5fdG90X3BhZ2VzKCkgaXMgbmVhciB0byAoMl4zMiAtIDEp
LgoKQXMgdGhpcyBjb2RlIG1heSBiZSBjYWxsZWQgYnkgYSBndWVzdCB2aWEg
WEVOTUVNX2luY3JlYXNlX3Jlc2VydmF0aW9uCmFuZCBYRU5NRU1fcG9wdWxh
dGVfcGh5c21hcCwgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhlIGd1ZXN0IGlz
IG5vdCBnb2luZwp0byBiZSBhYmxlIHRvIGFsbG9jYXRlIG1vcmUgdGhhbiBp
dCBpcyBhbGxvd2VkLgoKUmV3b3JrIHRoZSBhbGxvY2F0aW9uIGNoZWNrIHRv
IGF2b2lkIGFueSBwb3NzaWJsZSBvdmVyZmxvdy4gV2hpbGUgdGhlCmNoZWNr
IGRvbWFpbl90b3RfcGFnZXMoKSA8IGQtPm1heF9wYWdlcyBzaG91bGQgdGVj
aG5pY2FsbHkgbm90IGJlCm5lY2Vzc2FyeSwgaXQgaXMgcHJvYmFibHkgYmVz
dCB0byBoYXZlIGl0IHRvIGNhdGNoIGFueSBwb3NzaWJsZQppbmNvbnNpc3Rl
bmNpZXMgaW4gdGhlIGZ1dHVyZS4KClRoaXMgaXMgQ1ZFLTIwMjEtMjg3MDYg
LyBwYXJ0IG9mIFhTQS0zODUuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3Jh
bGwgPGpncmFsbEBhbWF6b24uY29tPgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBSb2dlciBQ
YXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0tCnYzOiBSZS1i
YXNlLgp2MjogTGltaXQgdG8ganVzdCB0aGUgc2VjdXJpdHkgcmVsZXZhbnQg
cGFydC4gVXNlIHRvdF9wYWdlcyAobm90CiAgICBkLT50b3RfcGFnZXMpIGFz
IG5lY2Vzc2FyeS4gQWxzbyBhY2NvdW50IGZvciBvdmVyZmxvdyBmcm9tIFBH
Q19leHRyYQogICAgYWxsb2NhdGlvbnMuIFVzZSBkaXN0aW5jdCBlcnJvciBj
b2RlcyBmb3IgdGhlIHR3byBjYXNlcy4gQXZvaWQKICAgIGxvZ2dpbmcgYSBi
b2d1cyAod3JhcHBlZCkgdmVyeSBzbWFsbCB2YWx1ZS4gQWxzbyBhZGp1c3QK
ICAgIGdudHRhYl90cmFuc2ZlcigpLgotLS0KVGhlcmUncyB5ZXQgYW5vdGhl
ciBzaW1pbGFyIGNhc2UgaW4gbWVtLXNoYXJpbmcsIGJ1dCB0aGF0J3Mgbm90
IHNlY3VyaXR5CnN1cHBvcnRlZCwgc28gZG9lc24ndCBnZXQgYWRqdXN0ZWQg
aGVyZS4KCi0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysgYi94
ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKQEAgLTIzMjQsNyArMjMyNCw4IEBA
IGdudHRhYl90cmFuc2ZlcigKICAgICAgICAgICogcGFnZXMgd2hlbiBpdCBp
cyBkeWluZy4KICAgICAgICAgICovCiAgICAgICAgIGlmICggdW5saWtlbHko
ZS0+aXNfZHlpbmcpIHx8Ci0gICAgICAgICAgICAgdW5saWtlbHkoZG9tYWlu
X3RvdF9wYWdlcyhlKSA+PSBlLT5tYXhfcGFnZXMpICkKKyAgICAgICAgICAg
ICB1bmxpa2VseShkb21haW5fdG90X3BhZ2VzKGUpID49IGUtPm1heF9wYWdl
cykgfHwKKyAgICAgICAgICAgICB1bmxpa2VseSghKGUtPnRvdF9wYWdlcyAr
IDEpKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZl
LT5wYWdlX2FsbG9jX2xvY2spOwogCkBAIC0yMzMzLDggKzIzMzQsOCBAQCBn
bnR0YWJfdHJhbnNmZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgZS0+
ZG9tYWluX2lkKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBnZHByaW50ayhYRU5MT0dfSU5GTywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAiVHJhbnNmZXJlZSBkJWQgaGFzIG5vIGhlYWRyb29tICh0b3QgJXUs
IG1heCAldSlcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZS0+ZG9t
YWluX2lkLCBkb21haW5fdG90X3BhZ2VzKGUpLCBlLT5tYXhfcGFnZXMpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICJUcmFuc2ZlcmVlICVwZCBoYXMg
bm8gaGVhZHJvb20gKHRvdCAldSwgbWF4ICV1LCBleCAldSlcbiIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgZSwgZG9tYWluX3RvdF9wYWdlcyhlKSwg
ZS0+bWF4X3BhZ2VzLCBlLT5leHRyYV9wYWdlcyk7CiAKICAgICAgICAgICAg
IGdvcC5zdGF0dXMgPSBHTlRTVF9nZW5lcmFsX2Vycm9yOwogICAgICAgICAg
ICAgZ290byB1bmxvY2tfYW5kX2NvcHliYWNrOwotLS0gYS94ZW4vY29tbW9u
L3BhZ2VfYWxsb2MuYworKysgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpA
QCAtMjMwNSwyMCArMjMwNSw0MSBAQCBpbnQgYXNzaWduX3BhZ2VzKAogICAg
IH0KICAgICBlbHNlIGlmICggIShtZW1mbGFncyAmIE1FTUZfbm9fcmVmY291
bnQpICkKICAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGludCB0b3RfcGFnZXMg
PSBkb21haW5fdG90X3BhZ2VzKGQpICsgbnI7CisgICAgICAgIHVuc2lnbmVk
IGludCB0b3RfcGFnZXMgPSBkb21haW5fdG90X3BhZ2VzKGQpOwogCiAgICAg
ICAgIGlmICggdW5saWtlbHkodG90X3BhZ2VzID4gZC0+bWF4X3BhZ2VzKSAp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX0lORk8s
ICJPdmVyLWFsbG9jYXRpb24gZm9yIGRvbWFpbiAldTogIgotICAgICAgICAg
ICAgICAgICAgICAiJXUgPiAldVxuIiwgZC0+ZG9tYWluX2lkLCB0b3RfcGFn
ZXMsIGQtPm1heF9wYWdlcyk7CisgICAgICAgICAgICBncHJpbnRrKFhFTkxP
R19JTkZPLCAiSW5jb25zaXN0ZW50IGFsbG9jYXRpb24gZm9yICVwZDogJXUg
PiAldVxuIiwKKyAgICAgICAgICAgICAgICAgICAgZCwgdG90X3BhZ2VzLCBk
LT5tYXhfcGFnZXMpOworICAgICAgICAgICAgcmMgPSAtRVBFUk07CisgICAg
ICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgg
dW5saWtlbHkobnIgPiBkLT5tYXhfcGFnZXMgLSB0b3RfcGFnZXMpICkKKyAg
ICAgICAgeworICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfSU5GTywgIk92
ZXItYWxsb2NhdGlvbiBmb3IgJXBkOiAlTHUgPiAldVxuIiwKKyAgICAgICAg
ICAgICAgICAgICAgZCwgdG90X3BhZ2VzICsgMHVsbCArIG5yLCBkLT5tYXhf
cGFnZXMpOwogICAgICAgICAgICAgcmMgPSAtRTJCSUc7CiAgICAgICAgICAg
ICBnb3RvIG91dDsKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICggISht
ZW1mbGFncyAmIE1FTUZfbm9fcmVmY291bnQpICYmCi0gICAgICAgICB1bmxp
a2VseShkb21haW5fYWRqdXN0X3RvdF9wYWdlcyhkLCBucikgPT0gbnIpICkK
LSAgICAgICAgZ2V0X2tub3duYWxpdmVfZG9tYWluKGQpOworICAgIGlmICgg
IShtZW1mbGFncyAmIE1FTUZfbm9fcmVmY291bnQpICkKKyAgICB7CisgICAg
ICAgIGlmICggdW5saWtlbHkoZC0+dG90X3BhZ2VzICsgbnIgPCBucikgKQor
ICAgICAgICB7CisgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19JTkZPLAor
ICAgICAgICAgICAgICAgICAgICAiRXhjZXNzIGFsbG9jYXRpb24gZm9yICVw
ZDogJUx1ICgldSBleHRyYSlcbiIsCisgICAgICAgICAgICAgICAgICAgIGQs
IGQtPnRvdF9wYWdlcyArIDB1bGwgKyBuciwgZC0+ZXh0cmFfcGFnZXMpOwor
ICAgICAgICAgICAgaWYgKCBwZ1swXS5jb3VudF9pbmZvICYgUEdDX2V4dHJh
ICkKKyAgICAgICAgICAgICAgICBkLT5leHRyYV9wYWdlcyAtPSBucjsKKyAg
ICAgICAgICAgIHJjID0gLUUyQklHOworICAgICAgICAgICAgZ290byBvdXQ7
CisgICAgICAgIH0KKworICAgICAgICBpZiAoIHVubGlrZWx5KGRvbWFpbl9h
ZGp1c3RfdG90X3BhZ2VzKGQsIG5yKSA9PSBucikgKQorICAgICAgICAgICAg
Z2V0X2tub3duYWxpdmVfZG9tYWluKGQpOworICAgIH0KIAogICAgIGZvciAo
IGkgPSAwOyBpIDwgbnI7IGkrKyApCiAgICAgewo=

--=separator
Content-Type: application/octet-stream; name="xsa385-2.patch"
Content-Disposition: attachment; filename="xsa385-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBTVVBQT1JULm1kOiBsaW1pdCBzZWN1cml0eSBzdXBwb3J0IGZvciBob3N0
cyB3aXRoIHZlcnkgbXVjaCBtZW1vcnkKClN1ZmZpY2llbnQgYW5kIGluIHBh
cnRpY3VsYXIgcmVndWxhciB0ZXN0aW5nIG9uIHZlcnkgbGFyZ2UgaG9zdHMg
Y2Fubm90CmN1cnJlbnRseSBiZSBndWFyYW50ZWVkLiBBbnlvbmUgd2FudGlu
ZyB1cyB0byBzdXBwb3J0IGxhcmdlciBob3N0cyBpcwpmcmVlIHRvIHByb3Bv
c2Ugc28sIGJ1dCB3aWxsIG5lZWQgdG8gc3VwcGx5IG5vdCBvbmx5IHRlc3Qg
cmVzdWx0cywgYnV0CmFsc28gYSB0ZXN0IHBsYW4uCgpUaGlzIGlzIHBhcnQg
b2YgWFNBLTM4NS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1
bGljaEBzdXNlLmNvbT4KCi0tLSBhL1NVUFBPUlQubWQKKysrIGIvU1VQUE9S
VC5tZApAQCAtNDgsNiArNDgsMTIgQEAgRm9yIHRoZSBDb3J0ZXggQTU3IHIw
cDAgLSByMXAxLCBzZWUgRXJyYQogCiAgICAgU3RhdHVzLCB4ODY6IFN1cHBv
cnRlZAogCisjIyMgUGh5c2ljYWwgTWVtb3J5CisKKyAgICBTdGF0dXM6IFN1
cHBvcnRlZCB1cCB0byA4IFRpQgorCitIb3N0cyB3aXRoIG1vcmUgbWVtb3J5
IGFyZSBzdXBwb3J0ZWQsIGJ1dCBub3Qgc2VjdXJpdHkgc3VwcG9ydGVkLgor
CiAjIyMgUGh5c2ljYWwgTWVtb3J5IEhvdHBsdWcKIAogICAgIFN0YXR1cywg
eDg2OiBTdXBwb3J0ZWQK

--=separator
Content-Type: application/octet-stream; name="xsa385-4.12.patch"
Content-Disposition: attachment; filename="xsa385-4.12.patch"
Content-Transfer-Encoding: base64

RnJvbTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4KU3ViamVj
dDogeGVuL3BhZ2VfYWxsb2M6IEhhcmRlbiBhc3NpZ25fcGFnZXMoKQoKZG9t
YWluX3RvdF9wYWdlcygpIGFuZCBkLT5tYXhfcGFnZXMgYXJlIDMyLWJpdCB2
YWx1ZXMuIFdoaWxlIHRoZSBvcmRlcgpzaG91bGQgYWx3YXlzIGJlIHF1aXRl
IHNtYWxsLCBpdCB3b3VsZCBzdGlsbCBiZSBwb3NzaWJsZSB0byBvdmVyZmxv
dwppZiBkb21haW5fdG90X3BhZ2VzKCkgaXMgbmVhciB0byAoMl4zMiAtIDEp
LgoKQXMgdGhpcyBjb2RlIG1heSBiZSBjYWxsZWQgYnkgYSBndWVzdCB2aWEg
WEVOTUVNX2luY3JlYXNlX3Jlc2VydmF0aW9uCmFuZCBYRU5NRU1fcG9wdWxh
dGVfcGh5c21hcCwgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhlIGd1ZXN0IGlz
IG5vdCBnb2luZwp0byBiZSBhYmxlIHRvIGFsbG9jYXRlIG1vcmUgdGhhbiBp
dCBpcyBhbGxvd2VkLgoKUmV3b3JrIHRoZSBhbGxvY2F0aW9uIGNoZWNrIHRv
IGF2b2lkIGFueSBwb3NzaWJsZSBvdmVyZmxvdy4gV2hpbGUgdGhlCmNoZWNr
IGRvbWFpbl90b3RfcGFnZXMoKSA8IGQtPm1heF9wYWdlcyBzaG91bGQgdGVj
aG5pY2FsbHkgbm90IGJlCm5lY2Vzc2FyeSwgaXQgaXMgcHJvYmFibHkgYmVz
dCB0byBoYXZlIGl0IHRvIGNhdGNoIGFueSBwb3NzaWJsZQppbmNvbnNpc3Rl
bmNpZXMgaW4gdGhlIGZ1dHVyZS4KClRoaXMgaXMgQ1ZFLTIwMjEtMjg3MDYg
LyBYU0EtMzg1LgoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxqZ3Jh
bGxAYW1hem9uLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7D
qSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94ZW4vY29tbW9uL2dy
YW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBA
IC0yMjM5LDcgKzIyMzksOCBAQCBnbnR0YWJfdHJhbnNmZXIoCiAgICAgICAg
ICAqIHBhZ2VzIHdoZW4gaXQgaXMgZHlpbmcuCiAgICAgICAgICAqLwogICAg
ICAgICBpZiAoIHVubGlrZWx5KGUtPmlzX2R5aW5nKSB8fAotICAgICAgICAg
ICAgIHVubGlrZWx5KGUtPnRvdF9wYWdlcyA+PSBlLT5tYXhfcGFnZXMpICkK
KyAgICAgICAgICAgICB1bmxpa2VseShlLT50b3RfcGFnZXMgPj0gZS0+bWF4
X3BhZ2VzKSB8fAorICAgICAgICAgICAgIHVubGlrZWx5KCEoZS0+dG90X3Bh
Z2VzICsgMSkpICkKICAgICAgICAgewogICAgICAgICAgICAgc3Bpbl91bmxv
Y2soJmUtPnBhZ2VfYWxsb2NfbG9jayk7CiAKQEAgLTIyNDgsOCArMjI0OSw4
IEBAIGdudHRhYl90cmFuc2ZlcigKICAgICAgICAgICAgICAgICAgICAgICAg
ICBlLT5kb21haW5faWQpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgIGdkcHJpbnRrKFhFTkxPR19JTkZPLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICJUcmFuc2ZlcmVlIGQlZCBoYXMgbm8gaGVhZHJvb20gKHRv
dCAldSwgbWF4ICV1KVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBl
LT5kb21haW5faWQsIGUtPnRvdF9wYWdlcywgZS0+bWF4X3BhZ2VzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAiVHJhbnNmZXJlZSAlcGQgaGFzIG5v
IGhlYWRyb29tICh0b3QgJXUsIG1heCAldSlcbiIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgZSwgZS0+dG90X3BhZ2VzLCBlLT5tYXhfcGFnZXMpOwog
CiAgICAgICAgICAgICBnb3Auc3RhdHVzID0gR05UU1RfZ2VuZXJhbF9lcnJv
cjsKICAgICAgICAgICAgIGdvdG8gdW5sb2NrX2FuZF9jb3B5YmFjazsKLS0t
IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9w
YWdlX2FsbG9jLmMKQEAgLTIyNzgsMTcgKzIyNzgsMjYgQEAgaW50IGFzc2ln
bl9wYWdlcygKIAogICAgIGlmICggIShtZW1mbGFncyAmIE1FTUZfbm9fcmVm
Y291bnQpICkKICAgICB7Ci0gICAgICAgIGlmICggdW5saWtlbHkoKGQtPnRv
dF9wYWdlcyArICgxIDw8IG9yZGVyKSkgPiBkLT5tYXhfcGFnZXMpICkKKyAg
ICAgICAgdW5zaWduZWQgaW50IG5yID0gMXUgPDwgb3JkZXI7CisKKyAgICAg
ICAgaWYgKCB1bmxpa2VseShkLT50b3RfcGFnZXMgPiBkLT5tYXhfcGFnZXMp
ICkKKyAgICAgICAgeworICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfSU5G
TywgIkluY29uc2lzdGVudCBhbGxvY2F0aW9uIGZvciAlcGQ6ICV1ID4gJXVc
biIsCisgICAgICAgICAgICAgICAgICAgIGQsIGQtPnRvdF9wYWdlcywgZC0+
bWF4X3BhZ2VzKTsKKyAgICAgICAgICAgIHJjID0gLUVQRVJNOworICAgICAg
ICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIHVu
bGlrZWx5KG5yID4gZC0+bWF4X3BhZ2VzIC0gZC0+dG90X3BhZ2VzKSApCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICggIXRtZW1fZW5hYmxlZCgpIHx8
IG9yZGVyICE9IDAgfHwgZC0+dG90X3BhZ2VzICE9IGQtPm1heF9wYWdlcyAp
Ci0gICAgICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfSU5GTywgIk92ZXIt
YWxsb2NhdGlvbiBmb3IgZG9tYWluICV1OiAiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAiJXUgPiAldVxuIiwgZC0+ZG9tYWluX2lkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgZC0+dG90X3BhZ2VzICsgKDEgPDwgb3JkZXIpLCBk
LT5tYXhfcGFnZXMpOworICAgICAgICAgICAgICAgIGdwcmludGsoWEVOTE9H
X0lORk8sICJPdmVyLWFsbG9jYXRpb24gZm9yICVwZDogJUx1ID4gJXVcbiIs
CisgICAgICAgICAgICAgICAgICAgICAgICBkLCBkLT50b3RfcGFnZXMgKyAw
dWxsICsgbnIsIGQtPm1heF9wYWdlcyk7CiAgICAgICAgICAgICByYyA9IC1F
MkJJRzsKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAKLSAg
ICAgICAgaWYgKCB1bmxpa2VseShkb21haW5fYWRqdXN0X3RvdF9wYWdlcyhk
LCAxIDw8IG9yZGVyKSA9PSAoMSA8PCBvcmRlcikpICkKKyAgICAgICAgaWYg
KCB1bmxpa2VseShkb21haW5fYWRqdXN0X3RvdF9wYWdlcyhkLCBucikgPT0g
bnIpICkKICAgICAgICAgICAgIGdldF9rbm93bmFsaXZlX2RvbWFpbihkKTsK
ICAgICB9CiAK

--=separator
Content-Type: application/octet-stream; name="xsa385-4.13.patch"
Content-Disposition: attachment; filename="xsa385-4.13.patch"
Content-Transfer-Encoding: base64

RnJvbTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4KU3ViamVj
dDogeGVuL3BhZ2VfYWxsb2M6IEhhcmRlbiBhc3NpZ25fcGFnZXMoKQoKZG9t
YWluX3RvdF9wYWdlcygpIGFuZCBkLT5tYXhfcGFnZXMgYXJlIDMyLWJpdCB2
YWx1ZXMuIFdoaWxlIHRoZSBvcmRlcgpzaG91bGQgYWx3YXlzIGJlIHF1aXRl
IHNtYWxsLCBpdCB3b3VsZCBzdGlsbCBiZSBwb3NzaWJsZSB0byBvdmVyZmxv
dwppZiBkb21haW5fdG90X3BhZ2VzKCkgaXMgbmVhciB0byAoMl4zMiAtIDEp
LgoKQXMgdGhpcyBjb2RlIG1heSBiZSBjYWxsZWQgYnkgYSBndWVzdCB2aWEg
WEVOTUVNX2luY3JlYXNlX3Jlc2VydmF0aW9uCmFuZCBYRU5NRU1fcG9wdWxh
dGVfcGh5c21hcCwgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhlIGd1ZXN0IGlz
IG5vdCBnb2luZwp0byBiZSBhYmxlIHRvIGFsbG9jYXRlIG1vcmUgdGhhbiBp
dCBpcyBhbGxvd2VkLgoKUmV3b3JrIHRoZSBhbGxvY2F0aW9uIGNoZWNrIHRv
IGF2b2lkIGFueSBwb3NzaWJsZSBvdmVyZmxvdy4gV2hpbGUgdGhlCmNoZWNr
IGRvbWFpbl90b3RfcGFnZXMoKSA8IGQtPm1heF9wYWdlcyBzaG91bGQgdGVj
aG5pY2FsbHkgbm90IGJlCm5lY2Vzc2FyeSwgaXQgaXMgcHJvYmFibHkgYmVz
dCB0byBoYXZlIGl0IHRvIGNhdGNoIGFueSBwb3NzaWJsZQppbmNvbnNpc3Rl
bmNpZXMgaW4gdGhlIGZ1dHVyZS4KClRoaXMgaXMgQ1ZFLTIwMjEtMjg3MDYg
LyBYU0EtMzg1LgoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxqZ3Jh
bGxAYW1hem9uLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7D
qSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94ZW4vY29tbW9uL2dy
YW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBA
IC0yMjg2LDcgKzIyODYsOCBAQCBnbnR0YWJfdHJhbnNmZXIoCiAgICAgICAg
ICAqIHBhZ2VzIHdoZW4gaXQgaXMgZHlpbmcuCiAgICAgICAgICAqLwogICAg
ICAgICBpZiAoIHVubGlrZWx5KGUtPmlzX2R5aW5nKSB8fAotICAgICAgICAg
ICAgIHVubGlrZWx5KGUtPnRvdF9wYWdlcyA+PSBlLT5tYXhfcGFnZXMpICkK
KyAgICAgICAgICAgICB1bmxpa2VseShlLT50b3RfcGFnZXMgPj0gZS0+bWF4
X3BhZ2VzKSB8fAorICAgICAgICAgICAgIHVubGlrZWx5KCEoZS0+dG90X3Bh
Z2VzICsgMSkpICkKICAgICAgICAgewogICAgICAgICAgICAgc3Bpbl91bmxv
Y2soJmUtPnBhZ2VfYWxsb2NfbG9jayk7CiAKQEAgLTIyOTUsOCArMjI5Niw4
IEBAIGdudHRhYl90cmFuc2ZlcigKICAgICAgICAgICAgICAgICAgICAgICAg
ICBlLT5kb21haW5faWQpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgIGdkcHJpbnRrKFhFTkxPR19JTkZPLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICJUcmFuc2ZlcmVlIGQlZCBoYXMgbm8gaGVhZHJvb20gKHRv
dCAldSwgbWF4ICV1KVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBl
LT5kb21haW5faWQsIGUtPnRvdF9wYWdlcywgZS0+bWF4X3BhZ2VzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAiVHJhbnNmZXJlZSAlcGQgaGFzIG5v
IGhlYWRyb29tICh0b3QgJXUsIG1heCAldSlcbiIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgZSwgZS0+dG90X3BhZ2VzLCBlLT5tYXhfcGFnZXMpOwog
CiAgICAgICAgICAgICBnb3Auc3RhdHVzID0gR05UU1RfZ2VuZXJhbF9lcnJv
cjsKICAgICAgICAgICAgIGdvdG8gdW5sb2NrX2FuZF9jb3B5YmFjazsKLS0t
IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9w
YWdlX2FsbG9jLmMKQEAgLTIyNzYsMTYgKzIyNzYsMjUgQEAgaW50IGFzc2ln
bl9wYWdlcygKIAogICAgIGlmICggIShtZW1mbGFncyAmIE1FTUZfbm9fcmVm
Y291bnQpICkKICAgICB7Ci0gICAgICAgIGlmICggdW5saWtlbHkoKGQtPnRv
dF9wYWdlcyArICgxIDw8IG9yZGVyKSkgPiBkLT5tYXhfcGFnZXMpICkKKyAg
ICAgICAgdW5zaWduZWQgaW50IG5yID0gMXUgPDwgb3JkZXI7CisKKyAgICAg
ICAgaWYgKCB1bmxpa2VseShkLT50b3RfcGFnZXMgPiBkLT5tYXhfcGFnZXMp
ICkKKyAgICAgICAgeworICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfSU5G
TywgIkluY29uc2lzdGVudCBhbGxvY2F0aW9uIGZvciAlcGQ6ICV1ID4gJXVc
biIsCisgICAgICAgICAgICAgICAgICAgIGQsIGQtPnRvdF9wYWdlcywgZC0+
bWF4X3BhZ2VzKTsKKyAgICAgICAgICAgIHJjID0gLUVQRVJNOworICAgICAg
ICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIHVu
bGlrZWx5KG5yID4gZC0+bWF4X3BhZ2VzIC0gZC0+dG90X3BhZ2VzKSApCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX0lORk8sICJP
dmVyLWFsbG9jYXRpb24gZm9yIGRvbWFpbiAldTogIgotICAgICAgICAgICAg
ICAgICAgICAiJXUgPiAldVxuIiwgZC0+ZG9tYWluX2lkLAotICAgICAgICAg
ICAgICAgICAgICBkLT50b3RfcGFnZXMgKyAoMSA8PCBvcmRlciksIGQtPm1h
eF9wYWdlcyk7CisgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19JTkZPLCAi
T3Zlci1hbGxvY2F0aW9uIGZvciAlcGQ6ICVMdSA+ICV1XG4iLAorICAgICAg
ICAgICAgICAgICAgICBkLCBkLT50b3RfcGFnZXMgKyAwdWxsICsgbnIsIGQt
Pm1heF9wYWdlcyk7CiAgICAgICAgICAgICByYyA9IC1FMkJJRzsKICAgICAg
ICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCB1
bmxpa2VseShkb21haW5fYWRqdXN0X3RvdF9wYWdlcyhkLCAxIDw8IG9yZGVy
KSA9PSAoMSA8PCBvcmRlcikpICkKKyAgICAgICAgaWYgKCB1bmxpa2VseShk
b21haW5fYWRqdXN0X3RvdF9wYWdlcyhkLCBucikgPT0gbnIpICkKICAgICAg
ICAgICAgIGdldF9rbm93bmFsaXZlX2RvbWFpbihkKTsKICAgICB9CiAK

--=separator
Content-Type: application/octet-stream; name="xsa385-4.15.patch"
Content-Disposition: attachment; filename="xsa385-4.15.patch"
Content-Transfer-Encoding: base64

RnJvbTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4KU3ViamVj
dDogeGVuL3BhZ2VfYWxsb2M6IEhhcmRlbiBhc3NpZ25fcGFnZXMoKQoKZG9t
YWluX3RvdF9wYWdlcygpIGFuZCBkLT5tYXhfcGFnZXMgYXJlIDMyLWJpdCB2
YWx1ZXMuIFdoaWxlIHRoZSBvcmRlcgpzaG91bGQgYWx3YXlzIGJlIHF1aXRl
IHNtYWxsLCBpdCB3b3VsZCBzdGlsbCBiZSBwb3NzaWJsZSB0byBvdmVyZmxv
dwppZiBkb21haW5fdG90X3BhZ2VzKCkgaXMgbmVhciB0byAoMl4zMiAtIDEp
LgoKQXMgdGhpcyBjb2RlIG1heSBiZSBjYWxsZWQgYnkgYSBndWVzdCB2aWEg
WEVOTUVNX2luY3JlYXNlX3Jlc2VydmF0aW9uCmFuZCBYRU5NRU1fcG9wdWxh
dGVfcGh5c21hcCwgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhlIGd1ZXN0IGlz
IG5vdCBnb2luZwp0byBiZSBhYmxlIHRvIGFsbG9jYXRlIG1vcmUgdGhhbiBp
dCBpcyBhbGxvd2VkLgoKUmV3b3JrIHRoZSBhbGxvY2F0aW9uIGNoZWNrIHRv
IGF2b2lkIGFueSBwb3NzaWJsZSBvdmVyZmxvdy4gV2hpbGUgdGhlCmNoZWNr
IGRvbWFpbl90b3RfcGFnZXMoKSA8IGQtPm1heF9wYWdlcyBzaG91bGQgdGVj
aG5pY2FsbHkgbm90IGJlCm5lY2Vzc2FyeSwgaXQgaXMgcHJvYmFibHkgYmVz
dCB0byBoYXZlIGl0IHRvIGNhdGNoIGFueSBwb3NzaWJsZQppbmNvbnNpc3Rl
bmNpZXMgaW4gdGhlIGZ1dHVyZS4KClRoaXMgaXMgQ1ZFLTIwMjEtMjg3MDYg
LyBYU0EtMzg1LgoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxqZ3Jh
bGxAYW1hem9uLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgoKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJs
ZS5jCisrKyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtMjMzNiw3
ICsyMzM2LDggQEAgZ250dGFiX3RyYW5zZmVyKAogICAgICAgICAgKiBwYWdl
cyB3aGVuIGl0IGlzIGR5aW5nLgogICAgICAgICAgKi8KICAgICAgICAgaWYg
KCB1bmxpa2VseShlLT5pc19keWluZykgfHwKLSAgICAgICAgICAgICB1bmxp
a2VseShkb21haW5fdG90X3BhZ2VzKGUpID49IGUtPm1heF9wYWdlcykgKQor
ICAgICAgICAgICAgIHVubGlrZWx5KGRvbWFpbl90b3RfcGFnZXMoZSkgPj0g
ZS0+bWF4X3BhZ2VzKSB8fAorICAgICAgICAgICAgIHVubGlrZWx5KCEoZS0+
dG90X3BhZ2VzICsgMSkpICkKICAgICAgICAgewogICAgICAgICAgICAgc3Bp
bl91bmxvY2soJmUtPnBhZ2VfYWxsb2NfbG9jayk7CiAKQEAgLTIzNDUsOCAr
MjM0Niw4IEBAIGdudHRhYl90cmFuc2ZlcigKICAgICAgICAgICAgICAgICAg
ICAgICAgICBlLT5kb21haW5faWQpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19JTkZPLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICJUcmFuc2ZlcmVlIGQlZCBoYXMgbm8gaGVhZHJv
b20gKHRvdCAldSwgbWF4ICV1KVxuIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBlLT5kb21haW5faWQsIGRvbWFpbl90b3RfcGFnZXMoZSksIGUtPm1h
eF9wYWdlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIlRyYW5zZmVy
ZWUgJXBkIGhhcyBubyBoZWFkcm9vbSAodG90ICV1LCBtYXggJXUsIGV4ICV1
KVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBlLCBkb21haW5fdG90
X3BhZ2VzKGUpLCBlLT5tYXhfcGFnZXMsIGUtPmV4dHJhX3BhZ2VzKTsKIAog
ICAgICAgICAgICAgZ29wLnN0YXR1cyA9IEdOVFNUX2dlbmVyYWxfZXJyb3I7
CiAgICAgICAgICAgICBnb3RvIHVubG9ja19hbmRfY29weWJhY2s7Ci0tLSBh
L3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCisrKyBiL3hlbi9jb21tb24vcGFn
ZV9hbGxvYy5jCkBAIC0yMjk4LDIwICsyMjk4LDQzIEBAIGludCBhc3NpZ25f
cGFnZXMoCiAgICAgfQogICAgIGVsc2UgaWYgKCAhKG1lbWZsYWdzICYgTUVN
Rl9ub19yZWZjb3VudCkgKQogICAgIHsKLSAgICAgICAgdW5zaWduZWQgaW50
IHRvdF9wYWdlcyA9IGRvbWFpbl90b3RfcGFnZXMoZCkgKyAoMSA8PCBvcmRl
cik7CisgICAgICAgIHVuc2lnbmVkIGludCB0b3RfcGFnZXMgPSBkb21haW5f
dG90X3BhZ2VzKGQpLCBuciA9IDF1IDw8IG9yZGVyOwogCiAgICAgICAgIGlm
ICggdW5saWtlbHkodG90X3BhZ2VzID4gZC0+bWF4X3BhZ2VzKSApCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX0lORk8sICJPdmVy
LWFsbG9jYXRpb24gZm9yIGRvbWFpbiAldTogIgotICAgICAgICAgICAgICAg
ICAgICAiJXUgPiAldVxuIiwgZC0+ZG9tYWluX2lkLCB0b3RfcGFnZXMsIGQt
Pm1heF9wYWdlcyk7CisgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19JTkZP
LCAiSW5jb25zaXN0ZW50IGFsbG9jYXRpb24gZm9yICVwZDogJXUgPiAldVxu
IiwKKyAgICAgICAgICAgICAgICAgICAgZCwgdG90X3BhZ2VzLCBkLT5tYXhf
cGFnZXMpOworICAgICAgICAgICAgcmMgPSAtRVBFUk07CisgICAgICAgICAg
ICBnb3RvIG91dDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggdW5saWtl
bHkobnIgPiBkLT5tYXhfcGFnZXMgLSB0b3RfcGFnZXMpICkKKyAgICAgICAg
eworICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfSU5GTywgIk92ZXItYWxs
b2NhdGlvbiBmb3IgJXBkOiAlTHUgPiAldVxuIiwKKyAgICAgICAgICAgICAg
ICAgICAgZCwgdG90X3BhZ2VzICsgMHVsbCArIG5yLCBkLT5tYXhfcGFnZXMp
OwogICAgICAgICAgICAgcmMgPSAtRTJCSUc7CiAgICAgICAgICAgICBnb3Rv
IG91dDsKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICggIShtZW1mbGFn
cyAmIE1FTUZfbm9fcmVmY291bnQpICYmCi0gICAgICAgICB1bmxpa2VseShk
b21haW5fYWRqdXN0X3RvdF9wYWdlcyhkLCAxIDw8IG9yZGVyKSA9PSAoMSA8
PCBvcmRlcikpICkKLSAgICAgICAgZ2V0X2tub3duYWxpdmVfZG9tYWluKGQp
OworICAgIGlmICggIShtZW1mbGFncyAmIE1FTUZfbm9fcmVmY291bnQpICkK
KyAgICB7CisgICAgICAgIHVuc2lnbmVkIGludCBuciA9IDF1IDw8IG9yZGVy
OworCisgICAgICAgIGlmICggdW5saWtlbHkoZC0+dG90X3BhZ2VzICsgbnIg
PCBucikgKQorICAgICAgICB7CisgICAgICAgICAgICBncHJpbnRrKFhFTkxP
R19JTkZPLAorICAgICAgICAgICAgICAgICAgICAiRXhjZXNzIGFsbG9jYXRp
b24gZm9yICVwZDogJUx1ICgldSBleHRyYSlcbiIsCisgICAgICAgICAgICAg
ICAgICAgIGQsIGQtPnRvdF9wYWdlcyArIDB1bGwgKyBuciwgZC0+ZXh0cmFf
cGFnZXMpOworICAgICAgICAgICAgaWYgKCBwZ1swXS5jb3VudF9pbmZvICYg
UEdDX2V4dHJhICkKKyAgICAgICAgICAgICAgICBkLT5leHRyYV9wYWdlcyAt
PSBucjsKKyAgICAgICAgICAgIHJjID0gLUUyQklHOworICAgICAgICAgICAg
Z290byBvdXQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIHVubGlrZWx5
KGRvbWFpbl9hZGp1c3RfdG90X3BhZ2VzKGQsIG5yKSA9PSBucikgKQorICAg
ICAgICAgICAgZ2V0X2tub3duYWxpdmVfZG9tYWluKGQpOworICAgIH0KIAog
ICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIpOyBpKysgKQogICAg
IHsK

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 12:13:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 12:13:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229255.396858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUf8-0003XO-R5; Tue, 23 Nov 2021 12:12:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229255.396858; Tue, 23 Nov 2021 12:12:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUf7-0003U6-TH; Tue, 23 Nov 2021 12:12:37 +0000
Received: by outflank-mailman (input) for mailman id 229255;
 Tue, 23 Nov 2021 12:12:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ayLh=QK=xenbits.xen.org=iwj@srs-se1.protection.inumbo.net>)
 id 1mpUf2-0008EP-1k
 for xen-devel@lists.xen.org; Tue, 23 Nov 2021 12:12:32 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a09bd5b-4c56-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 13:12:16 +0100 (CET)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mpUdl-0002Sy-C8; Tue, 23 Nov 2021 12:11:13 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1mpUdl-0004Ug-Aw; Tue, 23 Nov 2021 12:11:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a09bd5b-4c56-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=+XbWv5c1idsAXWtJad7tat3++/kYkbLaYNOJLiB0hIw=; b=42DXLkRR/6tow4p9o2YbQ1xF1j
	QmO9D4p5qRQltZDmt3TIXnkviLI1qCkRoYvPLWVdvy9kQ1j+N6pSuYk6BiStISiBhV6oJVXxN4RNq
	ecA4qLm5WthT+LRtZSOq9rOHlcs+LntXiFLxodjnaqkw4SEe5xCv/I3iMa2iqMB3zVog=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 388 v3 (CVE-2021-28704,CVE-2021-28707,CVE-2021-28708)
 - PoD operations on misaligned GFNs
Message-Id: <E1mpUdl-0004Ug-Aw@xenbits.xenproject.org>
Date: Tue, 23 Nov 2021 12:11:13 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

 Xen Security Advisory CVE-2021-28704,CVE-2021-28707,CVE-2021-28708 / XSA-388
                                   version 3

                   PoD operations on misaligned GFNs

UPDATES IN VERSION 3
====================

Correct affected versions range.

Add CVE numbers to patches.

Public release.

ISSUE DESCRIPTION
=================

x86 HVM and PVH guests may be started in populate-on-demand (PoD) mode,
to provide a way for them to later easily have more memory assigned.

Guests are permitted to control certain P2M aspects of individual
pages via hypercalls.  These hypercalls may act on ranges of pages
specified via page orders (resulting in a power-of-2 number of pages).
The implementation of some of these hypercalls for PoD does not
enforce the base page frame number to be suitably aligned for the
specified order, yet some code involved in PoD handling actually makes
such an assumption.

These operations are XENMEM_decrease_reservation (CVE-2021-28704) and
XENMEM_populate_physmap (CVE-2021-28707), the latter usable only by
domains controlling the guest, i.e. a de-privileged qemu or a stub
domain.  (Patch 1, combining the fix to both these two issues.)

In addition handling of XENMEM_decrease_reservation can also trigger a
host crash when the specified page order is neither 4k nor 2M nor 1G
(CVE-2021-28708, patch 2).

IMPACT
======

Malicious or buggy guest kernels may be able to mount a Denial of
Service (DoS) attack affecting the entire system.  Privilege escalation
and information leaks cannot be ruled out.

VULNERABLE SYSTEMS
==================

All Xen versions from 4.7 onwards are affected.  Xen versions 4.6 and
older are not affected.

Only x86 HVM and PVH guests started in populate-on-demand mode can
leverage the vulnerability.  Populate-on-demand mode is activated
when the guest's xl configuration file specifies a "maxmem" value which
is larger than the "memory" value.

MITIGATION
==========

Not starting x86 HVM or PVH guests in populate-on-demand mode will avoid
the vulnerability.

CREDITS
=======

This issue was discovered by Jan Beulich of SUSE.

RESOLUTION
==========

Applying the appropriate pair if attached patches resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa388-?.patch           xen-unstable
xsa388-4.15-?.patch      Xen 4.15.x
xsa388-4.14-?.patch      Xen 4.14.x - 4.12.x

$ sha256sum xsa388*
43f6647e9f7d28d22eeb98680e116b301b0e29ef63ea65c9839a5aaebd449bc4  xsa388-1.patch
64b27a8c7c02036528e00a3070e27e873762d68f4ea1504e906aaf2ddc1c06be  xsa388-2.patch
6917267482101a3f8f1d13905e14994344a0af81370c7a2b92275fb176b321a0  xsa388-4.14-1.patch
d5886e046c69f34f98f7e1fc6ffcc36d92f8fc79242b9dc88412c39aa79b4ac3  xsa388-4.14-2.patch
fbe6af409447edc2318940d7c4bc0861a236d40db037166608fc09fa57ef54b1  xsa388-4.15-1.patch
c828d735aaa3f430ccef314bf27519cd6a5f4daaa79e1c493dc47e42ab09ec9f  xsa388-4.15-2.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches described above (or others which are
substantially similar) is permitted during the embargo, even on public-
facing systems with untrusted guest users and administrators.

HOWEVER, deployment of the mitigation described above is NOT permitted
during the embargo on public-facing systems with untrusted guest users
and administrators.  This is because such a configuration change is
recognizable by the affected guests.

AND: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmGc2jkMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZROMIALJsptV0nV8H5/nCLUWld3mKjAeb/+N20ul9NEwn
rUwIGGGzyrKZQdAljno+9y9o5pM8+BC+aTBwYhmxEWsHm1kodTD+YnJYf8uNW/CW
uhTJp/ZB5EsWhTFHF7YoKbPG0on4KIsy0TgoUug7bv+l2zEny9gfknsj8jdp3qCy
aFv1Bb2PzRh462qVHI3f27Ee8bn7GfErouuLppmDpCva19D3bhUXQ5PhxFB+oqsI
bww4VKUo0nxZftYhpbInWm34dajEIXK7jy5Z/CUPgCj2sTOHHBv7+5JJdw0umn/A
lJ2Ta1u03sdC9JWbat4qjvdVgK9L9vT+jWsfcwk02qq+XSU=
=uSRt
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa388-1.patch"
Content-Disposition: attachment; filename="xsa388-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUG9EOiBkZWFsIHdpdGggbWlzYWxpZ25lZCBHRk5zCgpVc2VycyBv
ZiBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24gYW5kIFhFTk1FTV9wb3B1
bGF0ZV9waHlzbWFwIGFyZW4ndApyZXF1aXJlZCB0byBwYXNzIGluIG9yZGVy
LWFsaWduZWQgR0ZOIHZhbHVlcy4gKFdoaWxlIEkgY29uc2lkZXIgdGhpcwpi
b2d1cywgSSBkb24ndCB0aGluayB3ZSBjYW4gZml4IHRoaXMgdGhlcmUsIGFz
IHRoYXQgbWlnaHQgYnJlYWsgZXhpc3RpbmcKY29kZSwgZS5nIExpbnV4J2Vz
IHN3aW90bGIsIHdoaWNoIC0gd2hpbGUgYWZmZWN0aW5nIFBWIG9ubHkgLSB1
bnRpbApyZWNlbnRseSBoYWQgYmVlbiBlbmZvcmNpbmcgb25seSBwYWdlIGFs
aWdubWVudCBvbiB0aGUgb3JpZ2luYWwKYWxsb2NhdGlvbi4pIE9ubHkgbm9u
LVBvRCBjb2RlIHBhdGhzIChndWVzdF9waHlzbWFwX3thZGQscmVtb3ZlfV9w
YWdlKCksCnAybV9zZXRfZW50cnkoKSkgbG9vayB0byBiZSBkZWFsaW5nIHdp
dGggdGhpcyBwcm9wZXJseSAoaW4gcGFydCBieSBiZWluZwppbXBsZW1lbnRl
ZCBpbmVmZmljaWVudGx5LCBoYW5kbGluZyBldmVyeSA0ayBwYWdlIHNlcGFy
YXRlbHkpLgoKSW50cm9kdWNlIHdyYXBwZXJzIHRha2luZyBjYXJlIG9mIHNw
bGl0dGluZyB0aGUgaW5jb21pbmcgcmVxdWVzdCBpbnRvCmFsaWduZWQgY2h1
bmtzLCB3aXRob3V0IHB1dHRpbmcgbXVjaCBlZmZvcnQgaW4gdHJ5aW5nIHRv
IGRldGVybWluZSB0aGUKbGFyZ2VzdCBwb3NzaWJsZSBjaHVuayBhdCBldmVy
eSBpdGVyYXRpb24uCgpBbHNvICJoYW5kbGUiIHAybV9zZXRfZW50cnkoKSBm
YWlsdXJlIGZvciBub24tb3JkZXItMCByZXF1ZXN0cyBieQpjcmFzaGluZyB0
aGUgZG9tYWluIGluIG9uZSBtb3JlIHBsYWNlLiBBbG9uZ3NpZGUgcHV0dGlu
ZyBhIGxvZyBtZXNzYWdlCnRoZXJlLCBhbHNvIGFkZCBvbmUgdG8gdGhlIG90
aGVyIHNpbWlsYXIgcGF0aC4KCk5vdGUgcmVnYXJkaW5nIGxvY2tpbmc6IFRo
aXMgaXMgbGVmdCBpbiB0aGUgYWN0dWFsIHdvcmtlciBmdW5jdGlvbnMgb24K
dGhlIGFzc3VtcHRpb24gdGhhdCBjYWxsZXJzIGFyZW4ndCBndWFyYW50ZWVk
IGF0b21pY2l0eSB3cnQgYWN0aW5nIG9uCm11bHRpcGxlIHBhZ2VzIGF0IGEg
dGltZS4gRm9yIG1pcy1hbGlnbmVkIEdGTnMgZ2ZuX2xvY2soKSB3b3VsZG4n
dCBoYXZlCmxvY2tlZCB0aGUgY29ycmVjdCBHRk4gcmFuZ2UgYW55d2F5LCBp
ZiBpdCBkaWRuJ3Qgc2ltcGx5IHJlc29sdmUgdG8KcDJtX2xvY2soKSwgYW5k
IGZvciB3ZWxsLWJlaGF2ZWQgY2FsbGVycyB0aGVyZSBjb250aW51ZXMgdG8g
YmUgb25seSBhCnNpbmdsZSBpdGVyYXRpb24sIGkuZS4gYmVoYXZpb3IgaXMg
dW5jaGFuZ2VkIGZvciB0aGVtLiAoRlRBT0QgcHVsbGluZwpvdXQganVzdCBw
b2RfbG9jaygpIGludG8gcDJtX3BvZF9kZWNyZWFzZV9yZXNlcnZhdGlvbigp
IHdvdWxkIHJlc3VsdCBpbgphIGxvY2sgb3JkZXIgdmlvbGF0aW9uLikKClRo
aXMgaXMgQ1ZFLTIwMjEtMjg3MDQgYW5kIENWRS0yMDIxLTI4NzA3IC8gcGFy
dCBvZiBYU0EtMzg4LgoKRml4ZXM6IDNjMzUyMDExYzBkMyAoIng4Ni9Qb0Q6
IHNob3J0ZW4gY2VydGFpbiBvcGVyYXRpb25zIG9uIGhpZ2hlciBvcmRlciBy
YW5nZXMiKQpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hA
c3VzZS5jb20+ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dl
ci5wYXVAY2l0cml4LmNvbT4KLS0tClRoZSBzZWN1cml0eSBhc3BlY3QgaGVy
ZSBzdGVtcyBmcm9tIHRoZSB2YXJpb3VzIEJVR19PTigpcyB3ZSBoYXZlCmNo
ZWNraW5nCi0gcDJtLT5wb2QuZW50cnlfY291bnQsCi0gdGhlIGFsaWdubWVu
dCBvZiB0aGUgTUZOIHAybV9wb2RfY2FjaGVfZ2V0KCkgcmV0dXJucy4KLS0t
CnYzOiBSZS1kbyB1c2luZyB3cmFwcGVycy4KdjI6IFByZWZpeCBkb21haW5f
Y3Jhc2goKSBieSBwcmludGsoWEVOTE9HX0dfRVJSIC4uLikgKGluY2x1ZGlu
ZyB0aGUKICAgIHByZS1leGlzdGluZyBzaW1pbGFyIG9uZSkuCgotLS0gYS94
ZW4vYXJjaC94ODYvbW0vcDJtLXBvZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9t
bS9wMm0tcG9kLmMKQEAgLTUwNCw3ICs1MDQsNyBAQCBzdGF0aWMgdm9pZCBw
b2RfdW5sb2NrX2FuZF9mbHVzaChzdHJ1Y3QKIH0KIAogLyoKLSAqIFRoaXMg
ZnVuY3Rpb24gaXMgbmVlZGVkIGZvciB0d28gcmVhc29uczoKKyAqIFRoaXMg
cGFpciBvZiBmdW5jdGlvbnMgaXMgbmVlZGVkIGZvciB0d28gcmVhc29uczoK
ICAqICsgVG8gcHJvcGVybHkgaGFuZGxlIGNsZWFyaW5nIG9mIFBvRCBlbnRy
aWVzCiAgKiArIFRvICJzdGVhbCBiYWNrIiBtZW1vcnkgYmVpbmcgZnJlZWQg
Zm9yIHRoZSBQb0QgY2FjaGUsIHJhdGhlciB0aGFuCiAgKiAgIHJlbGVhc2lu
ZyBpdC4KQEAgLTUxMiw4ICs1MTIsOCBAQCBzdGF0aWMgdm9pZCBwb2RfdW5s
b2NrX2FuZF9mbHVzaChzdHJ1Y3QKICAqIE9uY2UgYm90aCBvZiB0aGVzZSBm
dW5jdGlvbnMgaGF2ZSBiZWVuIGNvbXBsZXRlZCwgd2UgY2FuIHJldHVybiBh
bmQKICAqIGFsbG93IGRlY3JlYXNlX3Jlc2VydmF0aW9uKCkgdG8gaGFuZGxl
IGV2ZXJ5dGhpbmcgZWxzZS4KICAqLwotdW5zaWduZWQgbG9uZwotcDJtX3Bv
ZF9kZWNyZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5f
dCBnZm4sIHVuc2lnbmVkIGludCBvcmRlcikKK3N0YXRpYyB1bnNpZ25lZCBs
b25nCitkZWNyZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZG9tYWluICpkLCBn
Zm5fdCBnZm4sIHVuc2lnbmVkIGludCBvcmRlcikKIHsKICAgICB1bnNpZ25l
ZCBsb25nIHJldCA9IDAsIGksIG47CiAgICAgc3RydWN0IHAybV9kb21haW4g
KnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKQEAgLTU2MSw4ICs1NjEsMTAg
QEAgcDJtX3BvZF9kZWNyZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZG9tYQog
ICAgICAgICAgKiBBbGwgUG9EOiBNYXJrIHRoZSB3aG9sZSByZWdpb24gaW52
YWxpZCBhbmQgdGVsbCBjYWxsZXIKICAgICAgICAgICogd2UncmUgZG9uZS4K
ICAgICAgICAgICovCi0gICAgICAgIGlmICggcDJtX3NldF9lbnRyeShwMm0s
IGdmbiwgSU5WQUxJRF9NRk4sIG9yZGVyLCBwMm1faW52YWxpZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHAybS0+ZGVmYXVsdF9hY2Nlc3MpICkK
KyAgICAgICAgaW50IHJjID0gcDJtX3NldF9lbnRyeShwMm0sIGdmbiwgSU5W
QUxJRF9NRk4sIG9yZGVyLCBwMm1faW52YWxpZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwMm0tPmRlZmF1bHRfYWNjZXNzKTsKKworICAg
ICAgICBpZiAoIHJjICkKICAgICAgICAgewogICAgICAgICAgICAgLyoKICAg
ICAgICAgICAgICAqIElmIHRoaXMgZmFpbHMsIHdlIGNhbid0IHRlbGwgaG93
IG11Y2ggb2YgdGhlIHJhbmdlIHdhcyBjaGFuZ2VkLgpAQCAtNTcwLDcgKzU3
MiwxMiBAQCBwMm1fcG9kX2RlY3JlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBk
b21hCiAgICAgICAgICAgICAgKiBpbXBvc3NpYmxlLgogICAgICAgICAgICAg
ICovCiAgICAgICAgICAgICBpZiAoIG9yZGVyICE9IDAgKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIKKyAg
ICAgICAgICAgICAgICAgICAgICAgIiVwZDogbWFya2luZyBHRk4gJSNseCAo
b3JkZXIgJXUpIGFzIG5vbi1Qb0QgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgZCwgZ2ZuX3goZ2ZuKSwgb3JkZXIsIHJjKTsKICAg
ICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0ID0gMVVMIDw8IG9yZGVyOwpAQCAtNjc5LDYgKzY4NiwyMiBA
QCBvdXRfdW5sb2NrOgogICAgIHJldHVybiByZXQ7CiB9CiAKK3Vuc2lnbmVk
IGxvbmcKK3AybV9wb2RfZGVjcmVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRv
bWFpbiAqZCwgZ2ZuX3QgZ2ZuLCB1bnNpZ25lZCBpbnQgb3JkZXIpCit7Cisg
ICAgdW5zaWduZWQgbG9uZyBsZWZ0ID0gMVVMIDw8IG9yZGVyLCByZXQgPSAw
OworICAgIHVuc2lnbmVkIGludCBjaHVua19vcmRlciA9IGZpbmRfZmlyc3Rf
c2V0X2JpdChnZm5feChnZm4pIHwgbGVmdCk7CisKKyAgICBkbyB7CisgICAg
ICAgIHJldCArPSBkZWNyZWFzZV9yZXNlcnZhdGlvbihkLCBnZm4sIGNodW5r
X29yZGVyKTsKKworICAgICAgICBsZWZ0IC09IDFVTCA8PCBjaHVua19vcmRl
cjsKKyAgICAgICAgZ2ZuID0gZ2ZuX2FkZChnZm4sIDFVTCA8PCBjaHVua19v
cmRlcik7CisgICAgfSB3aGlsZSAoIGxlZnQgKTsKKworICAgIHJldHVybiBy
ZXQ7Cit9CisKIHZvaWQgcDJtX3BvZF9kdW1wX2RhdGEoc3RydWN0IGRvbWFp
biAqZCkKIHsKICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gcDJtX2dl
dF9ob3N0cDJtKGQpOwpAQCAtMTI4OSwxOSArMTMxMiwxNSBAQCByZW1hcF9h
bmRfcmV0cnk6CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLQotaW50Ci1ndWVz
dF9waHlzbWFwX21hcmtfcG9wdWxhdGVfb25fZGVtYW5kKHN0cnVjdCBkb21h
aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcikKK3N0
YXRpYyBpbnQKK21hcmtfcG9wdWxhdGVfb25fZGVtYW5kKHN0cnVjdCBkb21h
aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsCisgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpCiB7CiAgICAgc3RydWN0IHAy
bV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKICAgICBnZm5f
dCBnZm4gPSBfZ2ZuKGdmbl9sKTsKICAgICB1bnNpZ25lZCBsb25nIGksIG4s
IHBvZF9jb3VudCA9IDA7CiAgICAgaW50IHJjID0gMDsKIAotICAgIGlmICgg
IXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCi0gICAgICAgIHJldHVybiAt
RUlOVkFMOwotCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIG9yZGVyKTsKIAog
ICAgIFAyTV9ERUJVRygibWFyayBwb2QgZ2ZuPSUjbHhcbiIsIGdmbl9sKTsK
QEAgLTEzNDEsMTIgKzEzNjAsNDQgQEAgZ3Vlc3RfcGh5c21hcF9tYXJrX3Bv
cHVsYXRlX29uX2RlbWFuZChzdAogCiAgICAgICAgIGlvcmVxX3JlcXVlc3Rf
bWFwY2FjaGVfaW52YWxpZGF0ZShkKTsKICAgICB9CisgICAgZWxzZSBpZiAo
IG9yZGVyICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIElmIHRo
aXMgZmFpbGVkLCB3ZSBjYW4ndCB0ZWxsIGhvdyBtdWNoIG9mIHRoZSByYW5n
ZSB3YXMgY2hhbmdlZC4KKyAgICAgICAgICogQmVzdCB0byBjcmFzaCB0aGUg
ZG9tYWluLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpbnRrKFhFTkxPR19H
X0VSUgorICAgICAgICAgICAgICAgIiVwZDogbWFya2luZyBHRk4gJSNseCAo
b3JkZXIgJXUpIGFzIFBvRCBmYWlsZWQ6ICVkXG4iLAorICAgICAgICAgICAg
ICAgZCwgZ2ZuX2wsIG9yZGVyLCByYyk7CisgICAgICAgIGRvbWFpbl9jcmFz
aChkKTsKKyAgICB9CiAKIG91dDoKICAgICBnZm5fdW5sb2NrKHAybSwgZ2Zu
LCBvcmRlcik7CiAKICAgICByZXR1cm4gcmM7CiB9CisKK2ludAorZ3Vlc3Rf
cGh5c21hcF9tYXJrX3BvcHVsYXRlX29uX2RlbWFuZChzdHJ1Y3QgZG9tYWlu
ICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVyKQoreworICAg
IHVuc2lnbmVkIGxvbmcgbGVmdCA9IDFVTCA8PCBvcmRlcjsKKyAgICB1bnNp
Z25lZCBpbnQgY2h1bmtfb3JkZXIgPSBmaW5kX2ZpcnN0X3NldF9iaXQoZ2Zu
IHwgbGVmdCk7CisgICAgaW50IHJjOworCisgICAgaWYgKCAhcGFnaW5nX21v
ZGVfdHJhbnNsYXRlKGQpICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisK
KyAgICBkbyB7CisgICAgICAgIHJjID0gbWFya19wb3B1bGF0ZV9vbl9kZW1h
bmQoZCwgZ2ZuLCBjaHVua19vcmRlcik7CisKKyAgICAgICAgbGVmdCAtPSAx
VUwgPDwgY2h1bmtfb3JkZXI7CisgICAgICAgIGdmbiArPSAxVUwgPDwgY2h1
bmtfb3JkZXI7CisgICAgfSB3aGlsZSAoICFyYyAmJiBsZWZ0ICk7CisKKyAg
ICByZXR1cm4gcmM7Cit9CiAKIHZvaWQgcDJtX3BvZF9pbml0KHN0cnVjdCBw
Mm1fZG9tYWluICpwMm0pCiB7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa388-2.patch"
Content-Disposition: attachment; filename="xsa388-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUG9EOiBoYW5kbGUgaW50ZXJtZWRpYXRlIHBhZ2Ugb3JkZXJzIGlu
IHAybV9wb2RfY2FjaGVfYWRkKCkKCnAybV9wb2RfZGVjcmVhc2VfcmVzZXJ2
YXRpb24oKSBtYXkgcGFzcyBwYWdlcyB0byB0aGUgZnVuY3Rpb24gd2hpY2gK
YXJlbid0IDRrLCAyTSwgb3IgMUcuIEhhbmRsZSBhbGwgaW50ZXJtZWRpYXRl
IG9yZGVycyBhcyB3ZWxsLCB0byBhdm9pZApoaXR0aW5nIHRoZSBCVUcoKSBh
dCB0aGUgc3dpdGNoKCkgc3RhdGVtZW50J3MgImRlZmF1bHQiIGNhc2UuCgpU
aGlzIGlzIENWRS0yMDIxLTI4NzA4IC8gcGFydCBvZiBYU0EtMzg4LgoKRml4
ZXM6IDNjMzUyMDExYzBkMyAoIng4Ni9Qb0Q6IHNob3J0ZW4gY2VydGFpbiBv
cGVyYXRpb25zIG9uIGhpZ2hlciBvcmRlciByYW5nZXMiKQpTaWduZWQtb2Zm
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk
LWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMKKysrIGIveGVuL2Fy
Y2gveDg2L21tL3AybS1wb2QuYwpAQCAtMTE0LDE1ICsxMTQsMTMgQEAgcDJt
X3BvZF9jYWNoZV9hZGQoc3RydWN0IHAybV9kb21haW4gKnAybQogICAgIC8q
IFRoZW4gYWRkIHRvIHRoZSBhcHByb3ByaWF0ZSBwb3B1bGF0ZS1vbi1kZW1h
bmQgbGlzdC4gKi8KICAgICBzd2l0Y2ggKCBvcmRlciApCiAgICAgewotICAg
IGNhc2UgUEFHRV9PUkRFUl8xRzoKLSAgICAgICAgZm9yICggaSA9IDA7IGkg
PCAoMVVMIDw8IFBBR0VfT1JERVJfMUcpOyBpICs9IDFVTCA8PCBQQUdFX09S
REVSXzJNICkKKyAgICBjYXNlIFBBR0VfT1JERVJfMk0gLi4uIFBBR0VfT1JE
RVJfMUc6CisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBvcmRl
cik7IGkgKz0gMVVMIDw8IFBBR0VfT1JERVJfMk0gKQogICAgICAgICAgICAg
cGFnZV9saXN0X2FkZF90YWlsKHBhZ2UgKyBpLCAmcDJtLT5wb2Quc3VwZXIp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBBR0VfT1JERVJfMk06Ci0g
ICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlLCAmcDJtLT5wb2Quc3Vw
ZXIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBBR0VfT1JERVJfNEs6
Ci0gICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlLCAmcDJtLT5wb2Qu
c2luZ2xlKTsKKyAgICBjYXNlIFBBR0VfT1JERVJfNEsgLi4uIFBBR0VfT1JE
RVJfMk0gLSAxOgorICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwg
b3JkZXIpOyBpICs9IDFVTCA8PCBQQUdFX09SREVSXzRLICkKKyAgICAgICAg
ICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlICsgaSwgJnAybS0+cG9kLnNp
bmdsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IEJVRygpOwo=

--=separator
Content-Type: application/octet-stream; name="xsa388-4.14-1.patch"
Content-Disposition: attachment; filename="xsa388-4.14-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUG9EOiBkZWFsIHdpdGggbWlzYWxpZ25lZCBHRk5zCgpVc2VycyBv
ZiBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24gYW5kIFhFTk1FTV9wb3B1
bGF0ZV9waHlzbWFwIGFyZW4ndApyZXF1aXJlZCB0byBwYXNzIGluIG9yZGVy
LWFsaWduZWQgR0ZOIHZhbHVlcy4gKFdoaWxlIEkgY29uc2lkZXIgdGhpcwpi
b2d1cywgSSBkb24ndCB0aGluayB3ZSBjYW4gZml4IHRoaXMgdGhlcmUsIGFz
IHRoYXQgbWlnaHQgYnJlYWsgZXhpc3RpbmcKY29kZSwgZS5nIExpbnV4J2Vz
IHN3aW90bGIsIHdoaWNoIC0gd2hpbGUgYWZmZWN0aW5nIFBWIG9ubHkgLSB1
bnRpbApyZWNlbnRseSBoYWQgYmVlbiBlbmZvcmNpbmcgb25seSBwYWdlIGFs
aWdubWVudCBvbiB0aGUgb3JpZ2luYWwKYWxsb2NhdGlvbi4pIE9ubHkgbm9u
LVBvRCBjb2RlIHBhdGhzIChndWVzdF9waHlzbWFwX3thZGQscmVtb3ZlfV9w
YWdlKCksCnAybV9zZXRfZW50cnkoKSkgbG9vayB0byBiZSBkZWFsaW5nIHdp
dGggdGhpcyBwcm9wZXJseSAoaW4gcGFydCBieSBiZWluZwppbXBsZW1lbnRl
ZCBpbmVmZmljaWVudGx5LCBoYW5kbGluZyBldmVyeSA0ayBwYWdlIHNlcGFy
YXRlbHkpLgoKSW50cm9kdWNlIHdyYXBwZXJzIHRha2luZyBjYXJlIG9mIHNw
bGl0dGluZyB0aGUgaW5jb21pbmcgcmVxdWVzdCBpbnRvCmFsaWduZWQgY2h1
bmtzLCB3aXRob3V0IHB1dHRpbmcgbXVjaCBlZmZvcnQgaW4gdHJ5aW5nIHRv
IGRldGVybWluZSB0aGUKbGFyZ2VzdCBwb3NzaWJsZSBjaHVuayBhdCBldmVy
eSBpdGVyYXRpb24uCgpBbHNvICJoYW5kbGUiIHAybV9zZXRfZW50cnkoKSBm
YWlsdXJlIGZvciBub24tb3JkZXItMCByZXF1ZXN0cyBieQpjcmFzaGluZyB0
aGUgZG9tYWluIGluIG9uZSBtb3JlIHBsYWNlLiBBbG9uZ3NpZGUgcHV0dGlu
ZyBhIGxvZyBtZXNzYWdlCnRoZXJlLCBhbHNvIGFkZCBvbmUgdG8gdGhlIG90
aGVyIHNpbWlsYXIgcGF0aC4KCk5vdGUgcmVnYXJkaW5nIGxvY2tpbmc6IFRo
aXMgaXMgbGVmdCBpbiB0aGUgYWN0dWFsIHdvcmtlciBmdW5jdGlvbnMgb24K
dGhlIGFzc3VtcHRpb24gdGhhdCBjYWxsZXJzIGFyZW4ndCBndWFyYW50ZWVk
IGF0b21pY2l0eSB3cnQgYWN0aW5nIG9uCm11bHRpcGxlIHBhZ2VzIGF0IGEg
dGltZS4gRm9yIG1pcy1hbGlnbmVkIEdGTnMgZ2ZuX2xvY2soKSB3b3VsZG4n
dCBoYXZlCmxvY2tlZCB0aGUgY29ycmVjdCBHRk4gcmFuZ2UgYW55d2F5LCBp
ZiBpdCBkaWRuJ3Qgc2ltcGx5IHJlc29sdmUgdG8KcDJtX2xvY2soKSwgYW5k
IGZvciB3ZWxsLWJlaGF2ZWQgY2FsbGVycyB0aGVyZSBjb250aW51ZXMgdG8g
YmUgb25seSBhCnNpbmdsZSBpdGVyYXRpb24sIGkuZS4gYmVoYXZpb3IgaXMg
dW5jaGFuZ2VkIGZvciB0aGVtLiAoRlRBT0QgcHVsbGluZwpvdXQganVzdCBw
b2RfbG9jaygpIGludG8gcDJtX3BvZF9kZWNyZWFzZV9yZXNlcnZhdGlvbigp
IHdvdWxkIHJlc3VsdCBpbgphIGxvY2sgb3JkZXIgdmlvbGF0aW9uLikKClRo
aXMgaXMgQ1ZFLTIwMjEtMjg3MDQgYW5kIENWRS0yMDIxLTI4NzA3IC8gcGFy
dCBvZiBYU0EtMzg4LgoKRml4ZXM6IDNjMzUyMDExYzBkMyAoIng4Ni9Qb0Q6
IHNob3J0ZW4gY2VydGFpbiBvcGVyYXRpb25zIG9uIGhpZ2hlciBvcmRlciBy
YW5nZXMiKQpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hA
c3VzZS5jb20+ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dl
ci5wYXVAY2l0cml4LmNvbT4KCi0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0t
cG9kLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wb2QuYwpAQCAtNDk1
LDcgKzQ5NSw3IEBAIHAybV9wb2RfemVyb19jaGVja19zdXBlcnBhZ2Uoc3Ry
dWN0IHAybV8KIAogCiAvKgotICogVGhpcyBmdW5jdGlvbiBpcyBuZWVkZWQg
Zm9yIHR3byByZWFzb25zOgorICogVGhpcyBwYWlyIG9mIGZ1bmN0aW9ucyBp
cyBuZWVkZWQgZm9yIHR3byByZWFzb25zOgogICogKyBUbyBwcm9wZXJseSBo
YW5kbGUgY2xlYXJpbmcgb2YgUG9EIGVudHJpZXMKICAqICsgVG8gInN0ZWFs
IGJhY2siIG1lbW9yeSBiZWluZyBmcmVlZCBmb3IgdGhlIFBvRCBjYWNoZSwg
cmF0aGVyIHRoYW4KICAqICAgcmVsZWFzaW5nIGl0LgpAQCAtNTAzLDggKzUw
Myw4IEBAIHAybV9wb2RfemVyb19jaGVja19zdXBlcnBhZ2Uoc3RydWN0IHAy
bV8KICAqIE9uY2UgYm90aCBvZiB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBiZWVu
IGNvbXBsZXRlZCwgd2UgY2FuIHJldHVybiBhbmQKICAqIGFsbG93IGRlY3Jl
YXNlX3Jlc2VydmF0aW9uKCkgdG8gaGFuZGxlIGV2ZXJ5dGhpbmcgZWxzZS4K
ICAqLwotdW5zaWduZWQgbG9uZwotcDJtX3BvZF9kZWNyZWFzZV9yZXNlcnZh
dGlvbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIHVuc2lnbmVkIGlu
dCBvcmRlcikKK3N0YXRpYyB1bnNpZ25lZCBsb25nCitkZWNyZWFzZV9yZXNl
cnZhdGlvbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIHVuc2lnbmVk
IGludCBvcmRlcikKIHsKICAgICB1bnNpZ25lZCBsb25nIHJldCA9IDAsIGks
IG47CiAgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9z
dHAybShkKTsKQEAgLTU1MSw4ICs1NTEsMTAgQEAgcDJtX3BvZF9kZWNyZWFz
ZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZG9tYQogICAgICAgICAgKiBBbGwgUG9E
OiBNYXJrIHRoZSB3aG9sZSByZWdpb24gaW52YWxpZCBhbmQgdGVsbCBjYWxs
ZXIKICAgICAgICAgICogd2UncmUgZG9uZS4KICAgICAgICAgICovCi0gICAg
ICAgIGlmICggcDJtX3NldF9lbnRyeShwMm0sIGdmbiwgSU5WQUxJRF9NRk4s
IG9yZGVyLCBwMm1faW52YWxpZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHAybS0+ZGVmYXVsdF9hY2Nlc3MpICkKKyAgICAgICAgaW50IHJjID0g
cDJtX3NldF9lbnRyeShwMm0sIGdmbiwgSU5WQUxJRF9NRk4sIG9yZGVyLCBw
Mm1faW52YWxpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
Mm0tPmRlZmF1bHRfYWNjZXNzKTsKKworICAgICAgICBpZiAoIHJjICkKICAg
ICAgICAgewogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIElmIHRo
aXMgZmFpbHMsIHdlIGNhbid0IHRlbGwgaG93IG11Y2ggb2YgdGhlIHJhbmdl
IHdhcyBjaGFuZ2VkLgpAQCAtNTYwLDcgKzU2MiwxMiBAQCBwMm1fcG9kX2Rl
Y3JlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBkb21hCiAgICAgICAgICAgICAg
KiBpbXBvc3NpYmxlLgogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBp
ZiAoIG9yZGVyICE9IDAgKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIHByaW50ayhYRU5MT0dfR19FUlIKKyAgICAgICAgICAgICAgICAgICAg
ICAgIiVwZDogbWFya2luZyBHRk4gJSNseCAob3JkZXIgJXUpIGFzIG5vbi1Q
b0QgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZCwg
Z2ZuX3goZ2ZuKSwgb3JkZXIsIHJjKTsKICAgICAgICAgICAgICAgICBkb21h
aW5fY3Jhc2goZCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBnb3Rv
IG91dF91bmxvY2s7CiAgICAgICAgIH0KICAgICAgICAgcmV0ID0gMVVMIDw8
IG9yZGVyOwpAQCAtNjY3LDYgKzY3NCwyMiBAQCBvdXRfdW5sb2NrOgogICAg
IHJldHVybiByZXQ7CiB9CiAKK3Vuc2lnbmVkIGxvbmcKK3AybV9wb2RfZGVj
cmVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2Zu
LCB1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisgICAgdW5zaWduZWQgbG9uZyBs
ZWZ0ID0gMVVMIDw8IG9yZGVyLCByZXQgPSAwOworICAgIHVuc2lnbmVkIGlu
dCBjaHVua19vcmRlciA9IGZpbmRfZmlyc3Rfc2V0X2JpdChnZm5feChnZm4p
IHwgbGVmdCk7CisKKyAgICBkbyB7CisgICAgICAgIHJldCArPSBkZWNyZWFz
ZV9yZXNlcnZhdGlvbihkLCBnZm4sIGNodW5rX29yZGVyKTsKKworICAgICAg
ICBsZWZ0IC09IDFVTCA8PCBjaHVua19vcmRlcjsKKyAgICAgICAgZ2ZuID0g
Z2ZuX2FkZChnZm4sIDFVTCA8PCBjaHVua19vcmRlcik7CisgICAgfSB3aGls
ZSAoIGxlZnQgKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKIHZvaWQgcDJt
X3BvZF9kdW1wX2RhdGEoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBzdHJ1
Y3QgcDJtX2RvbWFpbiAqcDJtID0gcDJtX2dldF9ob3N0cDJtKGQpOwpAQCAt
MTI2NiwxOSArMTI4OSwxNSBAQCByZW1hcF9hbmRfcmV0cnk6CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLQotaW50Ci1ndWVzdF9waHlzbWFwX21hcmtfcG9w
dWxhdGVfb25fZGVtYW5kKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxv
bmcgZ2ZuX2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBvcmRlcikKK3N0YXRpYyBpbnQKK21hcmtfcG9w
dWxhdGVfb25fZGVtYW5kKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxv
bmcgZ2ZuX2wsCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgb3JkZXIpCiB7CiAgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAy
bV9nZXRfaG9zdHAybShkKTsKICAgICBnZm5fdCBnZm4gPSBfZ2ZuKGdmbl9s
KTsKICAgICB1bnNpZ25lZCBsb25nIGksIG4sIHBvZF9jb3VudCA9IDA7CiAg
ICAgaW50IHJjID0gMDsKIAotICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5z
bGF0ZShkKSApCi0gICAgICAgIHJldHVybiAtRUlOVkFMOwotCiAgICAgZ2Zu
X2xvY2socDJtLCBnZm4sIG9yZGVyKTsKIAogICAgIFAyTV9ERUJVRygibWFy
ayBwb2QgZ2ZuPSUjbHhcbiIsIGdmbl9sKTsKQEAgLTEzMTYsMTIgKzEzMzUs
NDQgQEAgZ3Vlc3RfcGh5c21hcF9tYXJrX3BvcHVsYXRlX29uX2RlbWFuZChz
dAogICAgICAgICBCVUdfT04ocDJtLT5wb2QuZW50cnlfY291bnQgPCAwKTsK
ICAgICAgICAgcG9kX3VubG9jayhwMm0pOwogICAgIH0KKyAgICBlbHNlIGlm
ICggb3JkZXIgKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogSWYg
dGhpcyBmYWlsZWQsIHdlIGNhbid0IHRlbGwgaG93IG11Y2ggb2YgdGhlIHJh
bmdlIHdhcyBjaGFuZ2VkLgorICAgICAgICAgKiBCZXN0IHRvIGNyYXNoIHRo
ZSBkb21haW4uCisgICAgICAgICAqLworICAgICAgICBwcmludGsoWEVOTE9H
X0dfRVJSCisgICAgICAgICAgICAgICAiJXBkOiBtYXJraW5nIEdGTiAlI2x4
IChvcmRlciAldSkgYXMgUG9EIGZhaWxlZDogJWRcbiIsCisgICAgICAgICAg
ICAgICBkLCBnZm5fbCwgb3JkZXIsIHJjKTsKKyAgICAgICAgZG9tYWluX2Ny
YXNoKGQpOworICAgIH0KIAogb3V0OgogICAgIGdmbl91bmxvY2socDJtLCBn
Zm4sIG9yZGVyKTsKIAogICAgIHJldHVybiByYzsKIH0KKworaW50CitndWVz
dF9waHlzbWFwX21hcmtfcG9wdWxhdGVfb25fZGVtYW5kKHN0cnVjdCBkb21h
aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpCit7Cisg
ICAgdW5zaWduZWQgbG9uZyBsZWZ0ID0gMVVMIDw8IG9yZGVyOworICAgIHVu
c2lnbmVkIGludCBjaHVua19vcmRlciA9IGZpbmRfZmlyc3Rfc2V0X2JpdChn
Zm4gfCBsZWZ0KTsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoICFwYWdpbmdf
bW9kZV90cmFuc2xhdGUoZCkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsK
KworICAgIGRvIHsKKyAgICAgICAgcmMgPSBtYXJrX3BvcHVsYXRlX29uX2Rl
bWFuZChkLCBnZm4sIGNodW5rX29yZGVyKTsKKworICAgICAgICBsZWZ0IC09
IDFVTCA8PCBjaHVua19vcmRlcjsKKyAgICAgICAgZ2ZuICs9IDFVTCA8PCBj
aHVua19vcmRlcjsKKyAgICB9IHdoaWxlICggIXJjICYmIGxlZnQgKTsKKwor
ICAgIHJldHVybiByYzsKK30KIAogdm9pZCBwMm1fcG9kX2luaXQoc3RydWN0
IHAybV9kb21haW4gKnAybSkKIHsK

--=separator
Content-Type: application/octet-stream; name="xsa388-4.14-2.patch"
Content-Disposition: attachment; filename="xsa388-4.14-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUG9EOiBoYW5kbGUgaW50ZXJtZWRpYXRlIHBhZ2Ugb3JkZXJzIGlu
IHAybV9wb2RfY2FjaGVfYWRkKCkKCnAybV9wb2RfZGVjcmVhc2VfcmVzZXJ2
YXRpb24oKSBtYXkgcGFzcyBwYWdlcyB0byB0aGUgZnVuY3Rpb24gd2hpY2gK
YXJlbid0IDRrLCAyTSwgb3IgMUcuIEhhbmRsZSBhbGwgaW50ZXJtZWRpYXRl
IG9yZGVycyBhcyB3ZWxsLCB0byBhdm9pZApoaXR0aW5nIHRoZSBCVUcoKSBh
dCB0aGUgc3dpdGNoKCkgc3RhdGVtZW50J3MgImRlZmF1bHQiIGNhc2UuCgpU
aGlzIGlzIENWRS0yMDIxLTI4NzA4IC8gcGFydCBvZiBYU0EtMzg4LgoKRml4
ZXM6IDNjMzUyMDExYzBkMyAoIng4Ni9Qb0Q6IHNob3J0ZW4gY2VydGFpbiBv
cGVyYXRpb25zIG9uIGhpZ2hlciBvcmRlciByYW5nZXMiKQpTaWduZWQtb2Zm
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk
LWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMKKysrIGIveGVuL2Fy
Y2gveDg2L21tL3AybS1wb2QuYwpAQCAtMTExLDE1ICsxMTEsMTMgQEAgcDJt
X3BvZF9jYWNoZV9hZGQoc3RydWN0IHAybV9kb21haW4gKnAybQogICAgIC8q
IFRoZW4gYWRkIHRvIHRoZSBhcHByb3ByaWF0ZSBwb3B1bGF0ZS1vbi1kZW1h
bmQgbGlzdC4gKi8KICAgICBzd2l0Y2ggKCBvcmRlciApCiAgICAgewotICAg
IGNhc2UgUEFHRV9PUkRFUl8xRzoKLSAgICAgICAgZm9yICggaSA9IDA7IGkg
PCAoMVVMIDw8IFBBR0VfT1JERVJfMUcpOyBpICs9IDFVTCA8PCBQQUdFX09S
REVSXzJNICkKKyAgICBjYXNlIFBBR0VfT1JERVJfMk0gLi4uIFBBR0VfT1JE
RVJfMUc6CisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBvcmRl
cik7IGkgKz0gMVVMIDw8IFBBR0VfT1JERVJfMk0gKQogICAgICAgICAgICAg
cGFnZV9saXN0X2FkZF90YWlsKHBhZ2UgKyBpLCAmcDJtLT5wb2Quc3VwZXIp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBBR0VfT1JERVJfMk06Ci0g
ICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlLCAmcDJtLT5wb2Quc3Vw
ZXIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBBR0VfT1JERVJfNEs6
Ci0gICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlLCAmcDJtLT5wb2Qu
c2luZ2xlKTsKKyAgICBjYXNlIFBBR0VfT1JERVJfNEsgLi4uIFBBR0VfT1JE
RVJfMk0gLSAxOgorICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwg
b3JkZXIpOyBpICs9IDFVTCA8PCBQQUdFX09SREVSXzRLICkKKyAgICAgICAg
ICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlICsgaSwgJnAybS0+cG9kLnNp
bmdsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IEJVRygpOwo=

--=separator
Content-Type: application/octet-stream; name="xsa388-4.15-1.patch"
Content-Disposition: attachment; filename="xsa388-4.15-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUG9EOiBkZWFsIHdpdGggbWlzYWxpZ25lZCBHRk5zCgpVc2VycyBv
ZiBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24gYW5kIFhFTk1FTV9wb3B1
bGF0ZV9waHlzbWFwIGFyZW4ndApyZXF1aXJlZCB0byBwYXNzIGluIG9yZGVy
LWFsaWduZWQgR0ZOIHZhbHVlcy4gKFdoaWxlIEkgY29uc2lkZXIgdGhpcwpi
b2d1cywgSSBkb24ndCB0aGluayB3ZSBjYW4gZml4IHRoaXMgdGhlcmUsIGFz
IHRoYXQgbWlnaHQgYnJlYWsgZXhpc3RpbmcKY29kZSwgZS5nIExpbnV4J2Vz
IHN3aW90bGIsIHdoaWNoIC0gd2hpbGUgYWZmZWN0aW5nIFBWIG9ubHkgLSB1
bnRpbApyZWNlbnRseSBoYWQgYmVlbiBlbmZvcmNpbmcgb25seSBwYWdlIGFs
aWdubWVudCBvbiB0aGUgb3JpZ2luYWwKYWxsb2NhdGlvbi4pIE9ubHkgbm9u
LVBvRCBjb2RlIHBhdGhzIChndWVzdF9waHlzbWFwX3thZGQscmVtb3ZlfV9w
YWdlKCksCnAybV9zZXRfZW50cnkoKSkgbG9vayB0byBiZSBkZWFsaW5nIHdp
dGggdGhpcyBwcm9wZXJseSAoaW4gcGFydCBieSBiZWluZwppbXBsZW1lbnRl
ZCBpbmVmZmljaWVudGx5LCBoYW5kbGluZyBldmVyeSA0ayBwYWdlIHNlcGFy
YXRlbHkpLgoKSW50cm9kdWNlIHdyYXBwZXJzIHRha2luZyBjYXJlIG9mIHNw
bGl0dGluZyB0aGUgaW5jb21pbmcgcmVxdWVzdCBpbnRvCmFsaWduZWQgY2h1
bmtzLCB3aXRob3V0IHB1dHRpbmcgbXVjaCBlZmZvcnQgaW4gdHJ5aW5nIHRv
IGRldGVybWluZSB0aGUKbGFyZ2VzdCBwb3NzaWJsZSBjaHVuayBhdCBldmVy
eSBpdGVyYXRpb24uCgpBbHNvICJoYW5kbGUiIHAybV9zZXRfZW50cnkoKSBm
YWlsdXJlIGZvciBub24tb3JkZXItMCByZXF1ZXN0cyBieQpjcmFzaGluZyB0
aGUgZG9tYWluIGluIG9uZSBtb3JlIHBsYWNlLiBBbG9uZ3NpZGUgcHV0dGlu
ZyBhIGxvZyBtZXNzYWdlCnRoZXJlLCBhbHNvIGFkZCBvbmUgdG8gdGhlIG90
aGVyIHNpbWlsYXIgcGF0aC4KCk5vdGUgcmVnYXJkaW5nIGxvY2tpbmc6IFRo
aXMgaXMgbGVmdCBpbiB0aGUgYWN0dWFsIHdvcmtlciBmdW5jdGlvbnMgb24K
dGhlIGFzc3VtcHRpb24gdGhhdCBjYWxsZXJzIGFyZW4ndCBndWFyYW50ZWVk
IGF0b21pY2l0eSB3cnQgYWN0aW5nIG9uCm11bHRpcGxlIHBhZ2VzIGF0IGEg
dGltZS4gRm9yIG1pcy1hbGlnbmVkIEdGTnMgZ2ZuX2xvY2soKSB3b3VsZG4n
dCBoYXZlCmxvY2tlZCB0aGUgY29ycmVjdCBHRk4gcmFuZ2UgYW55d2F5LCBp
ZiBpdCBkaWRuJ3Qgc2ltcGx5IHJlc29sdmUgdG8KcDJtX2xvY2soKSwgYW5k
IGZvciB3ZWxsLWJlaGF2ZWQgY2FsbGVycyB0aGVyZSBjb250aW51ZXMgdG8g
YmUgb25seSBhCnNpbmdsZSBpdGVyYXRpb24sIGkuZS4gYmVoYXZpb3IgaXMg
dW5jaGFuZ2VkIGZvciB0aGVtLiAoRlRBT0QgcHVsbGluZwpvdXQganVzdCBw
b2RfbG9jaygpIGludG8gcDJtX3BvZF9kZWNyZWFzZV9yZXNlcnZhdGlvbigp
IHdvdWxkIHJlc3VsdCBpbgphIGxvY2sgb3JkZXIgdmlvbGF0aW9uLikKClRo
aXMgaXMgQ1ZFLTIwMjEtMjg3MDQgYW5kIENWRS0yMDIxLTI4NzA3IC8gcGFy
dCBvZiBYU0EtMzg4LgoKRml4ZXM6IDNjMzUyMDExYzBkMyAoIng4Ni9Qb0Q6
IHNob3J0ZW4gY2VydGFpbiBvcGVyYXRpb25zIG9uIGhpZ2hlciBvcmRlciBy
YW5nZXMiKQpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hA
c3VzZS5jb20+ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dl
ci5wYXVAY2l0cml4LmNvbT4KCi0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0t
cG9kLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wb2QuYwpAQCAtNDk2
LDcgKzQ5Niw3IEBAIHAybV9wb2RfemVyb19jaGVja19zdXBlcnBhZ2Uoc3Ry
dWN0IHAybV8KIAogCiAvKgotICogVGhpcyBmdW5jdGlvbiBpcyBuZWVkZWQg
Zm9yIHR3byByZWFzb25zOgorICogVGhpcyBwYWlyIG9mIGZ1bmN0aW9ucyBp
cyBuZWVkZWQgZm9yIHR3byByZWFzb25zOgogICogKyBUbyBwcm9wZXJseSBo
YW5kbGUgY2xlYXJpbmcgb2YgUG9EIGVudHJpZXMKICAqICsgVG8gInN0ZWFs
IGJhY2siIG1lbW9yeSBiZWluZyBmcmVlZCBmb3IgdGhlIFBvRCBjYWNoZSwg
cmF0aGVyIHRoYW4KICAqICAgcmVsZWFzaW5nIGl0LgpAQCAtNTA0LDggKzUw
NCw4IEBAIHAybV9wb2RfemVyb19jaGVja19zdXBlcnBhZ2Uoc3RydWN0IHAy
bV8KICAqIE9uY2UgYm90aCBvZiB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBiZWVu
IGNvbXBsZXRlZCwgd2UgY2FuIHJldHVybiBhbmQKICAqIGFsbG93IGRlY3Jl
YXNlX3Jlc2VydmF0aW9uKCkgdG8gaGFuZGxlIGV2ZXJ5dGhpbmcgZWxzZS4K
ICAqLwotdW5zaWduZWQgbG9uZwotcDJtX3BvZF9kZWNyZWFzZV9yZXNlcnZh
dGlvbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIHVuc2lnbmVkIGlu
dCBvcmRlcikKK3N0YXRpYyB1bnNpZ25lZCBsb25nCitkZWNyZWFzZV9yZXNl
cnZhdGlvbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIHVuc2lnbmVk
IGludCBvcmRlcikKIHsKICAgICB1bnNpZ25lZCBsb25nIHJldCA9IDAsIGks
IG47CiAgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9z
dHAybShkKTsKQEAgLTU1Miw4ICs1NTIsMTAgQEAgcDJtX3BvZF9kZWNyZWFz
ZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZG9tYQogICAgICAgICAgKiBBbGwgUG9E
OiBNYXJrIHRoZSB3aG9sZSByZWdpb24gaW52YWxpZCBhbmQgdGVsbCBjYWxs
ZXIKICAgICAgICAgICogd2UncmUgZG9uZS4KICAgICAgICAgICovCi0gICAg
ICAgIGlmICggcDJtX3NldF9lbnRyeShwMm0sIGdmbiwgSU5WQUxJRF9NRk4s
IG9yZGVyLCBwMm1faW52YWxpZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHAybS0+ZGVmYXVsdF9hY2Nlc3MpICkKKyAgICAgICAgaW50IHJjID0g
cDJtX3NldF9lbnRyeShwMm0sIGdmbiwgSU5WQUxJRF9NRk4sIG9yZGVyLCBw
Mm1faW52YWxpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
Mm0tPmRlZmF1bHRfYWNjZXNzKTsKKworICAgICAgICBpZiAoIHJjICkKICAg
ICAgICAgewogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIElmIHRo
aXMgZmFpbHMsIHdlIGNhbid0IHRlbGwgaG93IG11Y2ggb2YgdGhlIHJhbmdl
IHdhcyBjaGFuZ2VkLgpAQCAtNTYxLDcgKzU2MywxMiBAQCBwMm1fcG9kX2Rl
Y3JlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBkb21hCiAgICAgICAgICAgICAg
KiBpbXBvc3NpYmxlLgogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBp
ZiAoIG9yZGVyICE9IDAgKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIHByaW50ayhYRU5MT0dfR19FUlIKKyAgICAgICAgICAgICAgICAgICAg
ICAgIiVwZDogbWFya2luZyBHRk4gJSNseCAob3JkZXIgJXUpIGFzIG5vbi1Q
b0QgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZCwg
Z2ZuX3goZ2ZuKSwgb3JkZXIsIHJjKTsKICAgICAgICAgICAgICAgICBkb21h
aW5fY3Jhc2goZCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBnb3Rv
IG91dF91bmxvY2s7CiAgICAgICAgIH0KICAgICAgICAgcmV0ID0gMVVMIDw8
IG9yZGVyOwpAQCAtNjcwLDYgKzY3NywyMiBAQCBvdXRfdW5sb2NrOgogICAg
IHJldHVybiByZXQ7CiB9CiAKK3Vuc2lnbmVkIGxvbmcKK3AybV9wb2RfZGVj
cmVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2Zu
LCB1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisgICAgdW5zaWduZWQgbG9uZyBs
ZWZ0ID0gMVVMIDw8IG9yZGVyLCByZXQgPSAwOworICAgIHVuc2lnbmVkIGlu
dCBjaHVua19vcmRlciA9IGZpbmRfZmlyc3Rfc2V0X2JpdChnZm5feChnZm4p
IHwgbGVmdCk7CisKKyAgICBkbyB7CisgICAgICAgIHJldCArPSBkZWNyZWFz
ZV9yZXNlcnZhdGlvbihkLCBnZm4sIGNodW5rX29yZGVyKTsKKworICAgICAg
ICBsZWZ0IC09IDFVTCA8PCBjaHVua19vcmRlcjsKKyAgICAgICAgZ2ZuID0g
Z2ZuX2FkZChnZm4sIDFVTCA8PCBjaHVua19vcmRlcik7CisgICAgfSB3aGls
ZSAoIGxlZnQgKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKIHZvaWQgcDJt
X3BvZF9kdW1wX2RhdGEoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBzdHJ1
Y3QgcDJtX2RvbWFpbiAqcDJtID0gcDJtX2dldF9ob3N0cDJtKGQpOwpAQCAt
MTI3MywxOSArMTI5NiwxNSBAQCByZW1hcF9hbmRfcmV0cnk6CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLQotaW50Ci1ndWVzdF9waHlzbWFwX21hcmtfcG9w
dWxhdGVfb25fZGVtYW5kKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxv
bmcgZ2ZuX2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBvcmRlcikKK3N0YXRpYyBpbnQKK21hcmtfcG9w
dWxhdGVfb25fZGVtYW5kKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxv
bmcgZ2ZuX2wsCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgb3JkZXIpCiB7CiAgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAy
bV9nZXRfaG9zdHAybShkKTsKICAgICBnZm5fdCBnZm4gPSBfZ2ZuKGdmbl9s
KTsKICAgICB1bnNpZ25lZCBsb25nIGksIG4sIHBvZF9jb3VudCA9IDA7CiAg
ICAgaW50IHJjID0gMDsKIAotICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5z
bGF0ZShkKSApCi0gICAgICAgIHJldHVybiAtRUlOVkFMOwotCiAgICAgZ2Zu
X2xvY2socDJtLCBnZm4sIG9yZGVyKTsKIAogICAgIFAyTV9ERUJVRygibWFy
ayBwb2QgZ2ZuPSUjbHhcbiIsIGdmbl9sKTsKQEAgLTEzMjUsMTIgKzEzNDQs
NDQgQEAgZ3Vlc3RfcGh5c21hcF9tYXJrX3BvcHVsYXRlX29uX2RlbWFuZChz
dAogCiAgICAgICAgIGlvcmVxX3JlcXVlc3RfbWFwY2FjaGVfaW52YWxpZGF0
ZShkKTsKICAgICB9CisgICAgZWxzZSBpZiAoIG9yZGVyICkKKyAgICB7Cisg
ICAgICAgIC8qCisgICAgICAgICAqIElmIHRoaXMgZmFpbGVkLCB3ZSBjYW4n
dCB0ZWxsIGhvdyBtdWNoIG9mIHRoZSByYW5nZSB3YXMgY2hhbmdlZC4KKyAg
ICAgICAgICogQmVzdCB0byBjcmFzaCB0aGUgZG9tYWluLgorICAgICAgICAg
Ki8KKyAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUgorICAgICAgICAgICAg
ICAgIiVwZDogbWFya2luZyBHRk4gJSNseCAob3JkZXIgJXUpIGFzIFBvRCBm
YWlsZWQ6ICVkXG4iLAorICAgICAgICAgICAgICAgZCwgZ2ZuX2wsIG9yZGVy
LCByYyk7CisgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKKyAgICB9CiAKIG91
dDoKICAgICBnZm5fdW5sb2NrKHAybSwgZ2ZuLCBvcmRlcik7CiAKICAgICBy
ZXR1cm4gcmM7CiB9CisKK2ludAorZ3Vlc3RfcGh5c21hcF9tYXJrX3BvcHVs
YXRlX29uX2RlbWFuZChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n
IGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgaW50IG9yZGVyKQoreworICAgIHVuc2lnbmVkIGxvbmcgbGVm
dCA9IDFVTCA8PCBvcmRlcjsKKyAgICB1bnNpZ25lZCBpbnQgY2h1bmtfb3Jk
ZXIgPSBmaW5kX2ZpcnN0X3NldF9iaXQoZ2ZuIHwgbGVmdCk7CisgICAgaW50
IHJjOworCisgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkK
KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBkbyB7CisgICAgICAg
IHJjID0gbWFya19wb3B1bGF0ZV9vbl9kZW1hbmQoZCwgZ2ZuLCBjaHVua19v
cmRlcik7CisKKyAgICAgICAgbGVmdCAtPSAxVUwgPDwgY2h1bmtfb3JkZXI7
CisgICAgICAgIGdmbiArPSAxVUwgPDwgY2h1bmtfb3JkZXI7CisgICAgfSB3
aGlsZSAoICFyYyAmJiBsZWZ0ICk7CisKKyAgICByZXR1cm4gcmM7Cit9CiAK
IHZvaWQgcDJtX3BvZF9pbml0KHN0cnVjdCBwMm1fZG9tYWluICpwMm0pCiB7
Cg==

--=separator
Content-Type: application/octet-stream; name="xsa388-4.15-2.patch"
Content-Disposition: attachment; filename="xsa388-4.15-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvUG9EOiBoYW5kbGUgaW50ZXJtZWRpYXRlIHBhZ2Ugb3JkZXJzIGlu
IHAybV9wb2RfY2FjaGVfYWRkKCkKCnAybV9wb2RfZGVjcmVhc2VfcmVzZXJ2
YXRpb24oKSBtYXkgcGFzcyBwYWdlcyB0byB0aGUgZnVuY3Rpb24gd2hpY2gK
YXJlbid0IDRrLCAyTSwgb3IgMUcuIEhhbmRsZSBhbGwgaW50ZXJtZWRpYXRl
IG9yZGVycyBhcyB3ZWxsLCB0byBhdm9pZApoaXR0aW5nIHRoZSBCVUcoKSBh
dCB0aGUgc3dpdGNoKCkgc3RhdGVtZW50J3MgImRlZmF1bHQiIGNhc2UuCgpU
aGlzIGlzIENWRS0yMDIxLTI4NzA4IC8gcGFydCBvZiBYU0EtMzg4LgoKRml4
ZXM6IDNjMzUyMDExYzBkMyAoIng4Ni9Qb0Q6IHNob3J0ZW4gY2VydGFpbiBv
cGVyYXRpb25zIG9uIGhpZ2hlciBvcmRlciByYW5nZXMiKQpTaWduZWQtb2Zm
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk
LWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMKKysrIGIveGVuL2Fy
Y2gveDg2L21tL3AybS1wb2QuYwpAQCAtMTEyLDE1ICsxMTIsMTMgQEAgcDJt
X3BvZF9jYWNoZV9hZGQoc3RydWN0IHAybV9kb21haW4gKnAybQogICAgIC8q
IFRoZW4gYWRkIHRvIHRoZSBhcHByb3ByaWF0ZSBwb3B1bGF0ZS1vbi1kZW1h
bmQgbGlzdC4gKi8KICAgICBzd2l0Y2ggKCBvcmRlciApCiAgICAgewotICAg
IGNhc2UgUEFHRV9PUkRFUl8xRzoKLSAgICAgICAgZm9yICggaSA9IDA7IGkg
PCAoMVVMIDw8IFBBR0VfT1JERVJfMUcpOyBpICs9IDFVTCA8PCBQQUdFX09S
REVSXzJNICkKKyAgICBjYXNlIFBBR0VfT1JERVJfMk0gLi4uIFBBR0VfT1JE
RVJfMUc6CisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBvcmRl
cik7IGkgKz0gMVVMIDw8IFBBR0VfT1JERVJfMk0gKQogICAgICAgICAgICAg
cGFnZV9saXN0X2FkZF90YWlsKHBhZ2UgKyBpLCAmcDJtLT5wb2Quc3VwZXIp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBBR0VfT1JERVJfMk06Ci0g
ICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlLCAmcDJtLT5wb2Quc3Vw
ZXIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBBR0VfT1JERVJfNEs6
Ci0gICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlLCAmcDJtLT5wb2Qu
c2luZ2xlKTsKKyAgICBjYXNlIFBBR0VfT1JERVJfNEsgLi4uIFBBR0VfT1JE
RVJfMk0gLSAxOgorICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwg
b3JkZXIpOyBpICs9IDFVTCA8PCBQQUdFX09SREVSXzRLICkKKyAgICAgICAg
ICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlICsgaSwgJnAybS0+cG9kLnNp
bmdsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IEJVRygpOwo=

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 12:20:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 12:20:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229510.396891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUmq-0003RD-7q; Tue, 23 Nov 2021 12:20:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229510.396891; Tue, 23 Nov 2021 12:20:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpUmq-0003R6-4k; Tue, 23 Nov 2021 12:20:36 +0000
Received: by outflank-mailman (input) for mailman id 229510;
 Tue, 23 Nov 2021 12:20:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRmA=QK=epam.com=prvs=19611c0f38=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpUmo-0003Qv-7z
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 12:20:34 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bfc9c9aa-4c57-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 13:20:31 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1ANCI9PX022668;
 Tue, 23 Nov 2021 12:20:28 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2173.outbound.protection.outlook.com [104.47.17.173])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cgyymr1td-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 23 Nov 2021 12:20:27 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB7427.eurprd03.prod.outlook.com (2603:10a6:20b:267::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Tue, 23 Nov
 2021 12:20:23 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 12:20:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfc9c9aa-4c57-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Qc44fBfrxR+VvaeLskA3Wfvm1zvnaYoQCExg/g1AkKVFmJgGwCPFuvt3vKzkLADiD5szcOhfHhmW8P9e7jlpeMPVMrXF82xslAEwu8dQya1qTiy1gP/73Vb/AAniUfDVwm0eNuvdD5omQWvWGseaLRXLfWQ+34/+eFs1exchiq9bb9kC2PBttK3ybMGTVN8RM+S2ab2kUI60kaDA83++X37t+dvMFVdAN2kL/TorTGEixZSjlQJl3cW3qTZftJq5PH8vVCr1Aa+c/Qfr2FnUqs3dJ/P9gt6QShqGHtsZiMW3+C7/jR9oZvJPxgwxLvXFfwmwFOYjoWI900ojYjY5eQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UBSMjnFcFZr2p6zNOv3NTMXpp31RCC3mcaHqGDH9Fo4=;
 b=fVkN8W+NG3QJR3Mwst4Blq6KqnBPW8AEw0IWD8JocHaJjR1EZj1JBkN9X3fetr6YqiDvATkMTZYpY4ou32BxmZZ6Jlri+IZ1ptGjrRAK1yHcww9nh0wPtOzzeIvqtEk4bDKhV9hrKqRWZZkuiOAMAmel88jXFWrcmK2q0KKBe4MRhS3wbCbAcuKpXIczZRUma/oWHWk8pBcJ6knzycKPfzvHreFat+GUyvR1RcBykYgnUnUivC1IJy15cFjQB5p+THa+JNhV0v+ZEmHlV4ZbLiG96gPPtUVzHPKBwdm4F8ydPRUiR5Z5C/C3f9hKm5YH9u+FrerodxEOLVV4Jytlbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UBSMjnFcFZr2p6zNOv3NTMXpp31RCC3mcaHqGDH9Fo4=;
 b=CQZiE+yQNwrgma4526tyB7iPSuFlnfIb8jLcA6DbR1HGaCBfqho+j5SKFvpmpFR+q98NiamrfjvGVZL3N0/VzTuVEYZ1FUu1p1kawX0uQtA9UbGqN5MTWYTYt6I+U8U9Yzx8Ijgv4LEOZHEPQ7h7M5i0HRJXKMdJYc9bQ+p7G/nhgZwhmE0tH3k+tnriwl7szgBmf1tl1fk0rJSsFJxikpiNvZeM6JXcPJlq8KcnzHwwbY/hMfnDFGvINO4zCUyUHucO8G7+qY7Q14hPAkrimFTfOuHhMfJDVjpAbFiOhrGcG5Wd73kFwalHgZsHazWxotCLOZVoNvibHl1F9riskA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Roger Pau Monne <roger.pau@citrix.com>, Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Julien
 Grall <julien@xen.org>, Rahul Singh <rahul.singh@arm.com>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>
Subject: Re: [PATCH 01/10] vpci: move lock
Thread-Topic: [PATCH 01/10] vpci: move lock
Thread-Index: AQHX4GR93wxoK3G33kaa3AZPy223cw==
Date: Tue, 23 Nov 2021 12:20:23 +0000
Message-ID: <23ba89b3-4131-7063-1a87-f78da8bc16f0@epam.com>
References: <20180620144234.51783-1-roger.pau@citrix.com>
 <20180620144234.51783-2-roger.pau@citrix.com>
In-Reply-To: <20180620144234.51783-2-roger.pau@citrix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5b0e6349-b682-49e4-7156-08d9ae7ba00c
x-ms-traffictypediagnostic: AM9PR03MB7427:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB7427D5F9AEEFF836C1F536C7E7609@AM9PR03MB7427.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 na5YJ2gJB4v32TPFJFwjAf8nVgTOwGp96dN+3ySeCpAssUE7ebhPSz+NyTQHompDAVv6zj8O29a9W69VqOge7UxCAUiFilf/ZjgdH5Twu1FtKNlnYdai2w7oE3ThUhSm1Paeqa5lGVw8gxKUHudformNTi2ztPoLhnaG21P7mx6PRdmmsfXSUjpI5Z8F9zFiYs3Fe4zitYxnhZPuudv2QLtCHwxJkisLDs7JO9/4ebEqf+Nk2uCxWLKbtYBBmjyP5Hv5aHSOTBy5NYZeHVXAuOqlfkIQrbjnDnQUYhw4xORBUn06Y96ueTViQyw7duXHgyr3WrxqRxJP0n3iC14XrXxWe0/Gd78o72Sruqvfhu3hY6ZyDDfDMtz29vSfOWD77l9/e3HlWTbmbIAI/VOustCQjUq6mxB1HEMoIXlijU/S6D/Y1tHRC/Ju3mY7MEFiXRpSf6duqZlygWoa517HYDTkrX/hqN6lU8AAskG98hXhhp/6WsA0JSTAFWGdY5GiWGHOXbN2psrXLA7K/8CLY/OZTGOLKFP6kDbqSfAiJDO7zWAjNb4DFtwGPecCf1WBjaZz/M4JVUceG/c2rwYjuJqKBcu56zuO1LdO2AIePa2qGXogHRm29hMe/aj4Kn0DfPm1xhNaVWlMgB5Js0kilgD1E88EqscWEKRcmv912hUG7aS99VeyMrHwFHIuI8v9xTKQ1elIyzKa3IKcRPG1hPvgai06G3f8ZHVpytu8csA+2txhCkhLdhi9Rb5d6XZs9vP+eWp29Fi5+ygog1BgtE2gOYZM/5Ns2OGUC1xt5kWOjb8KckRNF3zzAM4l32m1
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66946007)(76116006)(107886003)(83380400001)(54906003)(91956017)(31686004)(38100700002)(110136005)(38070700005)(64756008)(71200400001)(6512007)(86362001)(4326008)(316002)(31696002)(30864003)(5660300002)(66446008)(66476007)(66556008)(186003)(2616005)(8676002)(966005)(508600001)(6506007)(53546011)(8936002)(6486002)(36756003)(122000001)(2906002)(26005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?S3JSMzQ4NTFUVVBpaGUxcVJnMFNqWEVQZHhMOXd3WU1xLzJtSi9YMWRLZzZD?=
 =?utf-8?B?NE5SZ1NMaCtCVUNyRGhIOTU0anhoc0JrKy9rVUFFbkdFelB1b3NiMFdHc0Iw?=
 =?utf-8?B?aWVMNnVqc2JJMTNXaHV2V3dvKzZWeTlhQ3lyTGpiWVUxOXRSeFVGT3d0M2tY?=
 =?utf-8?B?WXVuYW5rbWtyaGFBNXA5ZVZCZXBZL2Jzd2pydFBqZVpheUcvU004SmF5MjZP?=
 =?utf-8?B?ZGZLTVhpZUtTeHFxQiszaU9ieDJXRkx1Z09ReFZvcU92K3V3YWdPcUxPbWdy?=
 =?utf-8?B?WEk2Q21GVithRUtudVFyV2Ixd3lhN2FsS2VXWHd1QTcralRjVG5WeWZYclRN?=
 =?utf-8?B?MDRObjZkTjNLNFJLZHU4NXdNY2xHNndzSXdOVzlNMzNKaGFVaGdMRUN3cytn?=
 =?utf-8?B?eC9IL0RnYUhzMVV1MzV0Y0hsdFhXUDZuOVF2WU90UjVmekQ2N05BN0RLKzZJ?=
 =?utf-8?B?d3NqaFNCYlNWQXFDS2JFUDN2djlBRHBVN2kwZ0dFdVB0MnpLWFF1Zk5XbWpY?=
 =?utf-8?B?ZVpveHVTaDF0RUxCdFM1OU9VbGYvZVBpdUEySmdGcnhIVlJaWUdpeERhM1JI?=
 =?utf-8?B?Uk9yc3lra1NyRjI4MDYrR3dNU0YwOG9hRDdKa2tCRVd0RGdmc2wyTlJ6enBp?=
 =?utf-8?B?eXIwWG5kMXZLR2llMFNIMzJCRFBqMERMajVQd0RlYm9XOS8rVXRpTnRJRnE4?=
 =?utf-8?B?dWpJRGxVdU1waDJYYUpzODlTaHdyVUNWOGd0eUp1RHY1TDF4Y3R1am55NUpy?=
 =?utf-8?B?VzJ5Y3d4VFVscXhqTkhZRzQ5eE1zSlkxWDBiNTQrSGRMclBDOHBoNnZGR0py?=
 =?utf-8?B?ZzVlekxQWURla1NIVndzTEswa2lZVTdzR2dZSC9LeEQ4SytJdDIyeHNwcmFP?=
 =?utf-8?B?bWtMdXFhcTRQd2NqU0s1OE1PTWJSc2wyM2dhZWxkN3JwWC83Wnc2S0hRVy8v?=
 =?utf-8?B?SVFIVnJMYlF0NTRzK29SbkhSOVdadWUwaEdmZWg4cjkvL0Y0Ykt3TjJiNzZO?=
 =?utf-8?B?TGJuQ0p3UHJadGJONGVHNDhpSzBRL1FsZVlOa3lPdHZUT3NLeExjVGJMTmh1?=
 =?utf-8?B?eWRldEVkM0tlVVRsSkkwbUJGR3VnNktBVGdqMWhNQzhwcWlNbCt5VTBkVDFu?=
 =?utf-8?B?STFWOUNvemlmSHZoSEhEbUd6RkdHMTUwbThkSzVBOEszSnNkZ1NPRUtGYUpp?=
 =?utf-8?B?WUR3ZXNvcy80eUpQSW5qMnMwNHNKckx1dEdpVEtpemp6RksyVmFCZjZUMXpW?=
 =?utf-8?B?R250c2tYc3FGT1hmL3F5eUtuMEdNdzI5dlJleE1IVDZCWWZoYkI4VU1uUkUx?=
 =?utf-8?B?T1RGcEoyalJFSUhoZzZqWjE5K1Jjelg3VGt6Q2p2T1VCOHE5OGEyUVBOaGJ6?=
 =?utf-8?B?K1lZUE5mL0Nua1BYNmVDZS9CYm1RREUvQmVnaWo3dWRvazRkK2RKUU14SURO?=
 =?utf-8?B?dGlEY1VCbE5kM0FzWGlMbkR0M2M5b1RNbGdyVVI5T01SU28xNURvdm9rbEN4?=
 =?utf-8?B?eG1PVWJlVVJkdHRWMm5xQlN1TVYyV2dsREREZktvV2pqZk5ERHZ3TDlldG1Q?=
 =?utf-8?B?djZjTnlWRjlzYUF0MkEzNUVhOVdQNVhZcnkrc29qcDZKOHN1alN1aU1XdmJZ?=
 =?utf-8?B?RWdlYmdpR2wya2loUTVpZTExK0dZY0krem0vZU5PWWxKb3dMSWx2eTVVRE5J?=
 =?utf-8?B?ejRnaFQwUVgwenozR0llR0hKSS9jM253U1VQY3BQSi9qQTFiVTYrdXNPMlBU?=
 =?utf-8?B?SmZDSy9OUjFwYnZkNmlJc0pSNTVuTUZGTjdBY25GMDlBMnAvM014QnBtbmMw?=
 =?utf-8?B?Y2l5UFNBNFJIMVMycWF0WDVqZUprUlE2Mzh4QkovdGZUcFRvc05kK1B3OGVu?=
 =?utf-8?B?ZTN0S2pFb1hVaFFNM0Z5UE0wTXoxWjJjcWRkM1hTamUrZEpuN1diRWl6aEhB?=
 =?utf-8?B?cEU4MGVmd0JKMHA4bk1qR1kzS0ZyTUljMjhIRHllNmVWNmN6dWQyQjd3ckxZ?=
 =?utf-8?B?MlRPTUdvc25RL3M1RldwRlRRTWptcmovNTN0UjBXdjFvVUFQaGhxcWFYK050?=
 =?utf-8?B?MHZJeGdMeDN3U081dG5aWHJVNmVMVFNpT0k5dTZ6bDlLWjlpQXdBeTBQeEhJ?=
 =?utf-8?B?SE9RUml3OUNYc25zS0FRMnNsbHh5SklwR3NaaEFMcWgwWW9mT1VxdjRwZjhk?=
 =?utf-8?B?K3c1dzNpUjJBUW1qaEI3U3BJSGJkc3JGYW1tNjVuQURpQkR3TUIyczlGbmcx?=
 =?utf-8?B?R2hDa0xqTnZCRmM3aUlYVHBldWJOeCtvS255TndXL1NIenNXRE1NYUdnY0Fl?=
 =?utf-8?B?ZGhpMy9tckJVbUl0Y1ZSNUl1TjBrZVdLbGdLTHJsY3ZxK1IrR3dTZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B6DA865F6132CB4B818E5BF49111D4C4@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b0e6349-b682-49e4-7156-08d9ae7ba00c
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 12:20:23.7731
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0f6VD+pkE3VgffRRoc0YcnBZ3qu70YTyI4xYsPt3bhB8m4UssfMKAefVP5Jy1MDI+jTYx/nygWNZyLsq42/SytUSPhT06BKVwXXXGaEYAIu4rA5hSPUV/MAwKX4LPp+3
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7427
X-Proofpoint-GUID: 9qZjJb4e2bDqzMbqcjdDXjpj7EHEPEuh
X-Proofpoint-ORIG-GUID: 9qZjJb4e2bDqzMbqcjdDXjpj7EHEPEuh
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-23_04,2021-11-23_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0
 mlxlogscore=999 spamscore=0 clxscore=1015 phishscore=0 priorityscore=1501
 bulkscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111230069

SGksIFJvZ2VyLCBKYW4hDQoNCkkgdGhpbmsgdGhlIGJlbG93IHdvcmsgd2lsbCBoZWxwIHdpdGgg
c29sdmluZyBpc3N1ZXMgYnJvdWdodCB1cCBieSBbMV0uDQoNClNvLCBhZnRlciB0aGlua2luZyBh
IGJpdCBtb3JlIEkgY29uY2x1ZGVkIHRoYXQgaW5kZWVkIHdlIGRvIG5vdCBhY3R1YWxseQ0KbmVl
ZCBhIHBlci1kb21haW4gdlBDSSBsb2NrLCBidXQgaW5zdGVhZCB3ZSBqdXN0IHdhbnQgdG8gcHJv
dGVjdCBwZGV2LT52cGNpDQp3aGljaCBpcyBkb25lIGluIHRoaXMgcGF0Y2guDQoNCkF0IHRoZSBt
b21lbnQgSSBzZWUgZm91ciBlbnRpdGllcyB3aGljaCBtYXkgcnVuIGNvbmN1cnJlbnRseSBhbmQg
dG91Y2ggdnBjaToNCjEuIGh5cGVyY2FsbHMgUEhZU0RFVk9QX3BjaV9kZXZpY2Vfe2FkZHxyZW1v
dmV9IC0gZm9yIERvbTAgb25seQ0KMi4gaHlwZXJjYWxscyBYRU5fRE9NQ1RMX3tkZXx9YXNzaWdu
X2RldmljZSAtIGFueSBkb21haW4NCjMuIE1NSU8gdHJhcCBoYW5kbGVycyB2cGNpX3tyZWFkfHdy
aXRlfQ0KNC4gdnBjaV9wcm9jZXNzX3BlbmRpbmcNCg0KIEZyb20gdGhlIGFib3ZlICMxIHdpbGwg
dXBkYXRlIHBkZXYtPnZwY2kgYW5kICM0IG1heSByZW1vdmUgcGRldi0+dnBjaQ0Kd2l0aCB2cGNp
X3JlbW92ZV9kZXZpY2Ugb24gZXJyb3IgcGF0aCBmb3IgRG9tMC4gIzIgYW5kICMzIHNlZW0gdG8g
YmUNCnJlYWRlcnMgb25seS4gU28sIGl0IGlzIHBvc3NpYmxlIHRvIGltcHJvdmUgdGhpcyBwYXRj
aCB0byBub3Qgb25seSB0YWtlDQpwZGV2LT52cGNpLT5sb2NrIG91dCBvZiBzdHJ1Y3QgdnBjaSwg
YnV0IGFsc28gdG8gY29udmVydCBpdCBpbnRvIFJXIGxvY2suDQoNCkhvcGUgdGhpcyBpcyB3aGF0
IGlzIG5lZWRlZCBpbiBjb250ZXh0IG9mIHZwY2kgYW5kIGxvY2tpbmcuDQoNClRoYW5rIHlvdSwN
Ck9sZWtzYW5kcg0KDQpPbiAyMC4wNi4xOCAxNzo0MiwgUm9nZXIgUGF1IE1vbm5lIHdyb3RlOg0K
PiBUbyB0aGUgb3V0c2lkZSBvZiB0aGUgdnBjaSBzdHJ1Y3QuIFRoaXMgd2F5IHRoZSBsb2NrIGNh
biBiZSB1c2VkIHRvDQo+IGNoZWNrIHdoZXRoZXIgdnBjaSBpcyBwcmVzZW50LCBhbmQgcmVtb3Zh
bCBjYW4gYmUgcGVyZm9ybWVkIHdoaWxlDQo+IGhvbGRpbmcgdGhlIGxvY2ssIGluIG9yZGVyIHRv
IG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gYWNjZXNzZXMgdG8gdGhlDQo+IGNvbnRlbnRzIG9mIHRo
ZSB2cGNpIHN0cnVjdC4gUHJldmlvdXNseSByZW1vdmFsIGNvdWxkIHJhY2Ugd2l0aA0KPiB2cGNp
X3JlYWQgZm9yIGV4YW1wbGUsIHNpbmNlIHRoZSBsb2cgd2FzIGRyb3BwZWQgcHJpb3IgdG8gZnJl
ZWluZw0KPiBwZGV2LT52cGNpLg0KPg0KPiBTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOp
IDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4gLS0tDQo+IENjOiBBbmRyZXcgQ29vcGVyIDxhbmRy
ZXcuY29vcGVyM0BjaXRyaXguY29tPg0KPiBDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxh
cEBldS5jaXRyaXguY29tPg0KPiBDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJp
eC5jb20+DQo+IENjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IENjOiBKdWxp
ZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPg0KPiBDYzogS29ucmFkIFJ6ZXN6dXRlayBX
aWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPg0KPiBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxz
c3RhYmVsbGluaUBrZXJuZWwub3JnPg0KPiBDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+DQo+
IENjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPg0KPiAtLS0NCj4gICB0b29scy90ZXN0
cy92cGNpL2VtdWwuaCAgICAgICB8ICA1ICsrLS0NCj4gICB0b29scy90ZXN0cy92cGNpL21haW4u
YyAgICAgICB8ICA0ICstLQ0KPiAgIHhlbi9hcmNoL3g4Ni9odm0vdm1zaS5jICAgICAgIHwgIDgg
KysrLS0tDQo+ICAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgfCAgMSArDQo+ICAgeGVu
L2RyaXZlcnMvdnBjaS9oZWFkZXIuYyAgICAgfCAxOSArKysrKysrKystLS0tDQo+ICAgeGVuL2Ry
aXZlcnMvdnBjaS9tc2kuYyAgICAgICAgfCAxMSArKysrKy0tLQ0KPiAgIHhlbi9kcml2ZXJzL3Zw
Y2kvbXNpeC5jICAgICAgIHwgIDggKysrLS0tDQo+ICAgeGVuL2RyaXZlcnMvdnBjaS92cGNpLmMg
ICAgICAgfCA1MSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KPiAgIHhlbi9p
bmNsdWRlL3hlbi9wY2kuaCAgICAgICAgIHwgIDEgKw0KPiAgIHhlbi9pbmNsdWRlL3hlbi92cGNp
LmggICAgICAgIHwgIDMgKy0tDQo+ICAgMTAgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygr
KSwgNDEgZGVsZXRpb25zKC0pDQo+DQo+IGRpZmYgLS1naXQgYS90b29scy90ZXN0cy92cGNpL2Vt
dWwuaCBiL3Rvb2xzL3Rlc3RzL3ZwY2kvZW11bC5oDQo+IGluZGV4IDVkNDc1NDRiZjcuLmQzNDRl
ZjcxYzkgMTAwNjQ0DQo+IC0tLSBhL3Rvb2xzL3Rlc3RzL3ZwY2kvZW11bC5oDQo+ICsrKyBiL3Rv
b2xzL3Rlc3RzL3ZwY2kvZW11bC5oDQo+IEBAIC00NCw2ICs0NCw3IEBAIHN0cnVjdCBkb21haW4g
ew0KPiAgIH07DQo+ICAgDQo+ICAgc3RydWN0IHBjaV9kZXYgew0KPiArICAgIGJvb2wgdnBjaV9s
b2NrOw0KPiAgICAgICBzdHJ1Y3QgdnBjaSAqdnBjaTsNCj4gICB9Ow0KPiAgIA0KPiBAQCAtNTMs
MTAgKzU0LDggQEAgc3RydWN0IHZjcHUNCj4gICB9Ow0KPiAgIA0KPiAgIGV4dGVybiBjb25zdCBz
dHJ1Y3QgdmNwdSAqY3VycmVudDsNCj4gLWV4dGVybiBjb25zdCBzdHJ1Y3QgcGNpX2RldiB0ZXN0
X3BkZXY7DQo+ICtleHRlcm4gc3RydWN0IHBjaV9kZXYgdGVzdF9wZGV2Ow0KPiAgIA0KPiAtdHlw
ZWRlZiBib29sIHNwaW5sb2NrX3Q7DQo+IC0jZGVmaW5lIHNwaW5fbG9ja19pbml0KGwpICgqKGwp
ID0gZmFsc2UpDQo+ICAgI2RlZmluZSBzcGluX2xvY2sobCkgKCoobCkgPSB0cnVlKQ0KPiAgICNk
ZWZpbmUgc3Bpbl91bmxvY2sobCkgKCoobCkgPSBmYWxzZSkNCj4gICANCj4gZGlmZiAtLWdpdCBh
L3Rvb2xzL3Rlc3RzL3ZwY2kvbWFpbi5jIGIvdG9vbHMvdGVzdHMvdnBjaS9tYWluLmMNCj4gaW5k
ZXggYjlhMGE2MDA2Yi4uMjZjOTViMDhiNiAxMDA2NDQNCj4gLS0tIGEvdG9vbHMvdGVzdHMvdnBj
aS9tYWluLmMNCj4gKysrIGIvdG9vbHMvdGVzdHMvdnBjaS9tYWluLmMNCj4gQEAgLTIzLDcgKzIz
LDggQEAgc3RhdGljIHN0cnVjdCB2cGNpIHZwY2k7DQo+ICAgDQo+ICAgY29uc3Qgc3RhdGljIHN0
cnVjdCBkb21haW4gZDsNCj4gICANCj4gLWNvbnN0IHN0cnVjdCBwY2lfZGV2IHRlc3RfcGRldiA9
IHsNCj4gK3N0cnVjdCBwY2lfZGV2IHRlc3RfcGRldiA9IHsNCj4gKyAgICAudnBjaV9sb2NrID0g
ZmFsc2UsDQo+ICAgICAgIC52cGNpID0gJnZwY2ksDQo+ICAgfTsNCj4gICANCj4gQEAgLTE1OCw3
ICsxNTksNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gICAgICAgaW50IHJjOw0K
PiAgIA0KPiAgICAgICBJTklUX0xJU1RfSEVBRCgmdnBjaS5oYW5kbGVycyk7DQo+IC0gICAgc3Bp
bl9sb2NrX2luaXQoJnZwY2kubG9jayk7DQo+ICAgDQo+ICAgICAgIFZQQ0lfQUREX1JFRyh2cGNp
X3JlYWQzMiwgdnBjaV93cml0ZTMyLCAwLCA0LCByMCk7DQo+ICAgICAgIFZQQ0lfUkVBRF9DSEVD
SygwLCA0LCByMCk7DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYyBiL3hl
bi9hcmNoL3g4Ni9odm0vdm1zaS5jDQo+IGluZGV4IDMwMDFkNWM0ODguLjk0NTUwY2I4YzQgMTAw
NjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm1zaS5jDQo+ICsrKyBiL3hlbi9hcmNoL3g4
Ni9odm0vdm1zaS5jDQo+IEBAIC04OTMsMTQgKzg5MywxNCBAQCBpbnQgdnBjaV9tc2l4X2FyY2hf
cHJpbnQoY29uc3Qgc3RydWN0IHZwY2lfbXNpeCAqbXNpeCkNCj4gICAgICAgICAgIHsNCj4gICAg
ICAgICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IG1zaXgtPnBkZXY7DQo+ICAgDQo+IC0g
ICAgICAgICAgICBzcGluX3VubG9jaygmbXNpeC0+cGRldi0+dnBjaS0+bG9jayk7DQo+ICsgICAg
ICAgICAgICBzcGluX3VubG9jaygmbXNpeC0+cGRldi0+dnBjaV9sb2NrKTsNCj4gICAgICAgICAg
ICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMoKTsNCj4gICAgICAgICAgICAgICAvKiBOQjog
d2UgYXNzdW1lIHRoYXQgcGRldiBjYW5ub3QgZ28gYXdheSBmb3IgYW4gYWxpdmUgZG9tYWluLiAq
Lw0KPiAtICAgICAgICAgICAgaWYgKCAhcGRldi0+dnBjaSB8fCAhc3Bpbl90cnlsb2NrKCZwZGV2
LT52cGNpLT5sb2NrKSApDQo+ICsgICAgICAgICAgICBpZiAoICFzcGluX3RyeWxvY2soJnBkZXYt
PnZwY2lfbG9jaykgKQ0KPiAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOw0KPiAtICAg
ICAgICAgICAgaWYgKCBwZGV2LT52cGNpLT5tc2l4ICE9IG1zaXggKQ0KPiArICAgICAgICAgICAg
aWYgKCAhcGRldi0+dnBjaSB8fCBwZGV2LT52cGNpLT5tc2l4ICE9IG1zaXggKQ0KPiAgICAgICAg
ICAgICAgIHsNCj4gLSAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmcGRldi0+dnBjaS0+bG9j
ayk7DQo+ICsgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2lfbG9jayk7DQo+
ICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUFHQUlOOw0KPiAgICAgICAgICAgICAgIH0NCj4g
ICAgICAgICAgIH0NCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5j
IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMNCj4gaW5kZXggYzQ4OTBhNDI5NS4uYTVk
NTliODNiNyAxMDA2NDQNCj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMNCj4g
KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMNCj4gQEAgLTMxNSw2ICszMTUsNyBA
QCBzdGF0aWMgc3RydWN0IHBjaV9kZXYgKmFsbG9jX3BkZXYoc3RydWN0IHBjaV9zZWcgKnBzZWcs
IHU4IGJ1cywgdTggZGV2Zm4pDQo+ICAgICAgICooKHU4KikgJnBkZXYtPmRldmZuKSA9IGRldmZu
Ow0KPiAgICAgICBwZGV2LT5kb21haW4gPSBOVUxMOw0KPiAgICAgICBJTklUX0xJU1RfSEVBRCgm
cGRldi0+bXNpX2xpc3QpOw0KPiArICAgIHNwaW5fbG9ja19pbml0KCZwZGV2LT52cGNpX2xvY2sp
Ow0KPiAgIA0KPiAgICAgICBpZiAoIHBjaV9maW5kX2NhcF9vZmZzZXQocHNlZy0+bnIsIGJ1cywg
UENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksDQo+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQQ0lfQ0FQX0lEX01TSVgpICkNCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJz
L3ZwY2kvaGVhZGVyLmMgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+IGluZGV4IDBlYzRj
MDgyYTYuLjlkNTYwN2Q1ZjggMTAwNjQ0DQo+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVy
LmMNCj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPiBAQCAtMTMxLDExICsxMzEs
MTIgQEAgYm9vbCB2cGNpX3Byb2Nlc3NfcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdikNCj4gICAgICAg
ICAgIGlmICggcmMgPT0gLUVSRVNUQVJUICkNCj4gICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsN
Cj4gICANCj4gLSAgICAgICAgc3Bpbl9sb2NrKCZ2LT52cGNpLnBkZXYtPnZwY2ktPmxvY2spOw0K
PiAtICAgICAgICAvKiBEaXNhYmxlIG1lbW9yeSBkZWNvZGluZyB1bmNvbmRpdGlvbmFsbHkgb24g
ZmFpbHVyZS4gKi8NCj4gLSAgICAgICAgbW9kaWZ5X2RlY29kaW5nKHYtPnZwY2kucGRldiwgIXJj
ICYmIHYtPnZwY2kubWFwLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIXJjICYmIHYtPnZw
Y2kucm9tX29ubHkpOw0KPiAtICAgICAgICBzcGluX3VubG9jaygmdi0+dnBjaS5wZGV2LT52cGNp
LT5sb2NrKTsNCj4gKyAgICAgICAgc3Bpbl9sb2NrKCZ2LT52cGNpLnBkZXYtPnZwY2lfbG9jayk7
DQo+ICsgICAgICAgIGlmICggdi0+dnBjaS5wZGV2LT52cGNpICkNCj4gKyAgICAgICAgICAgIC8q
IERpc2FibGUgbWVtb3J5IGRlY29kaW5nIHVuY29uZGl0aW9uYWxseSBvbiBmYWlsdXJlLiAqLw0K
PiArICAgICAgICAgICAgbW9kaWZ5X2RlY29kaW5nKHYtPnZwY2kucGRldiwgIXJjICYmIHYtPnZw
Y2kubWFwLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICFyYyAmJiB2LT52cGNpLnJv
bV9vbmx5KTsNCj4gKyAgICAgICAgc3Bpbl91bmxvY2soJnYtPnZwY2kucGRldi0+dnBjaV9sb2Nr
KTsNCj4gICANCj4gICAgICAgICAgIHJhbmdlc2V0X2Rlc3Ryb3kodi0+dnBjaS5tZW0pOw0KPiAg
ICAgICAgICAgdi0+dnBjaS5tZW0gPSBOVUxMOw0KPiBAQCAtMjY3LDYgKzI2OCwxMiBAQCBzdGF0
aWMgaW50IG1vZGlmeV9iYXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBib29sIG1hcCwg
Ym9vbCByb21fb25seSkNCj4gICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ICAgICAgICAg
ICB9DQo+ICAgDQo+ICsgICAgICAgIHNwaW5fbG9jaygmdG1wLT52cGNpX2xvY2spOw0KPiArICAg
ICAgICBpZiAoICF0bXAtPnZwY2kgKQ0KPiArICAgICAgICB7DQo+ICsgICAgICAgICAgICBzcGlu
X3VubG9jaygmdG1wLT52cGNpX2xvY2spOw0KPiArICAgICAgICAgICAgY29udGludWU7DQo+ICsg
ICAgICAgIH0NCj4gICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0bXAtPnZw
Y2ktPmhlYWRlci5iYXJzKTsgaSsrICkNCj4gICAgICAgICAgIHsNCj4gICAgICAgICAgICAgICBj
b25zdCBzdHJ1Y3QgdnBjaV9iYXIgKmJhciA9ICZ0bXAtPnZwY2ktPmhlYWRlci5iYXJzW2ldOw0K
PiBAQCAtMjg1LDEyICsyOTIsMTQgQEAgc3RhdGljIGludCBtb2RpZnlfYmFycyhjb25zdCBzdHJ1
Y3QgcGNpX2RldiAqcGRldiwgYm9vbCBtYXAsIGJvb2wgcm9tX29ubHkpDQo+ICAgICAgICAgICAg
ICAgcmMgPSByYW5nZXNldF9yZW1vdmVfcmFuZ2UobWVtLCBzdGFydCwgZW5kKTsNCj4gICAgICAg
ICAgICAgICBpZiAoIHJjICkNCj4gICAgICAgICAgICAgICB7DQo+ICsgICAgICAgICAgICAgICAg
c3Bpbl91bmxvY2soJnRtcC0+dnBjaV9sb2NrKTsNCj4gICAgICAgICAgICAgICAgICAgcHJpbnRr
KFhFTkxPR19HX1dBUk5JTkcgIkZhaWxlZCB0byByZW1vdmUgWyVseCwgJWx4XTogJWRcbiIsDQo+
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgZW5kLCByYyk7DQo+ICAgICAgICAgICAg
ICAgICAgIHJhbmdlc2V0X2Rlc3Ryb3kobWVtKTsNCj4gICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJjOw0KPiAgICAgICAgICAgICAgIH0NCj4gICAgICAgICAgIH0NCj4gKyAgICAgICAgc3Bpbl91
bmxvY2soJnRtcC0+dnBjaV9sb2NrKTsNCj4gICAgICAgfQ0KPiAgIA0KPiAgICAgICBBU1NFUlQo
ZGV2KTsNCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNpLmMgYi94ZW4vZHJpdmVy
cy92cGNpL21zaS5jDQo+IGluZGV4IDhmMTVhZDdiZjIuLjEwOGU4NzFkMWMgMTAwNjQ0DQo+IC0t
LSBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNpLmMNCj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS9tc2ku
Yw0KPiBAQCAtMjc1LDcgKzI3NSw3IEBAIHZvaWQgdnBjaV9kdW1wX21zaSh2b2lkKQ0KPiAgICAg
ICByY3VfcmVhZF9sb2NrKCZkb21saXN0X3JlYWRfbG9jayk7DQo+ICAgICAgIGZvcl9lYWNoX2Rv
bWFpbiAoIGQgKQ0KPiAgICAgICB7DQo+IC0gICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpw
ZGV2Ow0KPiArICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldjsNCj4gICANCj4gICAgICAgICAg
IGlmICggIWhhc192cGNpKGQpICkNCj4gICAgICAgICAgICAgICBjb250aW51ZTsNCj4gQEAgLTI4
Nyw4ICsyODcsMTMgQEAgdm9pZCB2cGNpX2R1bXBfbXNpKHZvaWQpDQo+ICAgICAgICAgICAgICAg
Y29uc3Qgc3RydWN0IHZwY2lfbXNpICptc2k7DQo+ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0
IHZwY2lfbXNpeCAqbXNpeDsNCj4gICANCj4gLSAgICAgICAgICAgIGlmICggIXBkZXYtPnZwY2kg
fHwgIXNwaW5fdHJ5bG9jaygmcGRldi0+dnBjaS0+bG9jaykgKQ0KPiArICAgICAgICAgICAgaWYg
KCAhc3Bpbl90cnlsb2NrKCZwZGV2LT52cGNpX2xvY2spICkNCj4gICAgICAgICAgICAgICAgICAg
Y29udGludWU7DQo+ICsgICAgICAgICAgICBpZiAoICFwZGV2LT52cGNpICkNCj4gKyAgICAgICAg
ICAgIHsNCj4gKyAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmcGRldi0+dnBjaV9sb2NrKTsN
Cj4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gKyAgICAgICAgICAgIH0NCj4gICANCj4g
ICAgICAgICAgICAgICBtc2kgPSBwZGV2LT52cGNpLT5tc2k7DQo+ICAgICAgICAgICAgICAgaWYg
KCBtc2kgJiYgbXNpLT5lbmFibGVkICkNCj4gQEAgLTMzMCw3ICszMzUsNyBAQCB2b2lkIHZwY2lf
ZHVtcF9tc2kodm9pZCkNCj4gICAgICAgICAgICAgICAgICAgfQ0KPiAgICAgICAgICAgICAgIH0N
Cj4gICANCj4gLSAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZwZGV2LT52cGNpLT5sb2NrKTsNCj4g
KyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZwZGV2LT52cGNpX2xvY2spOw0KPiAgICAgICAgICAg
ICAgIHByb2Nlc3NfcGVuZGluZ19zb2Z0aXJxcygpOw0KPiAgICAgICAgICAgfQ0KPiAgICAgICB9
DQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL21zaXguYyBiL3hlbi9kcml2ZXJzL3Zw
Y2kvbXNpeC5jDQo+IGluZGV4IGJjZjYzMjU2ZjYuLmUyODA5NjMyOWQgMTAwNjQ0DQo+IC0tLSBh
L3hlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvbXNpeC5j
DQo+IEBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIGludCBtc2l4X3JlYWQoc3RydWN0IHZjcHUg
KnYsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgaW50IGxlbiwNCj4gICAgICAgICAgIHJl
dHVybiBYODZFTVVMX09LQVk7DQo+ICAgICAgIH0NCj4gICANCj4gLSAgICBzcGluX2xvY2soJm1z
aXgtPnBkZXYtPnZwY2ktPmxvY2spOw0KPiArICAgIHNwaW5fbG9jaygmbXNpeC0+cGRldi0+dnBj
aV9sb2NrKTsNCj4gICAgICAgZW50cnkgPSBnZXRfZW50cnkobXNpeCwgYWRkcik7DQo+ICAgICAg
IG9mZnNldCA9IGFkZHIgJiAoUENJX01TSVhfRU5UUllfU0laRSAtIDEpOw0KPiAgIA0KPiBAQCAt
MjY1LDcgKzI2NSw3IEBAIHN0YXRpYyBpbnQgbXNpeF9yZWFkKHN0cnVjdCB2Y3B1ICp2LCB1bnNp
Z25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGludCBsZW4sDQo+ICAgICAgICAgICBBU1NFUlRfVU5S
RUFDSEFCTEUoKTsNCj4gICAgICAgICAgIGJyZWFrOw0KPiAgICAgICB9DQo+IC0gICAgc3Bpbl91
bmxvY2soJm1zaXgtPnBkZXYtPnZwY2ktPmxvY2spOw0KPiArICAgIHNwaW5fdW5sb2NrKCZtc2l4
LT5wZGV2LT52cGNpX2xvY2spOw0KPiAgIA0KPiAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOw0K
PiAgIH0NCj4gQEAgLTMwOCw3ICszMDgsNyBAQCBzdGF0aWMgaW50IG1zaXhfd3JpdGUoc3RydWN0
IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgaW50IGxlbiwNCj4gICAgICAg
ICAgIHJldHVybiBYODZFTVVMX09LQVk7DQo+ICAgICAgIH0NCj4gICANCj4gLSAgICBzcGluX2xv
Y2soJm1zaXgtPnBkZXYtPnZwY2ktPmxvY2spOw0KPiArICAgIHNwaW5fbG9jaygmbXNpeC0+cGRl
di0+dnBjaV9sb2NrKTsNCj4gICAgICAgZW50cnkgPSBnZXRfZW50cnkobXNpeCwgYWRkcik7DQo+
ICAgICAgIG9mZnNldCA9IGFkZHIgJiAoUENJX01TSVhfRU5UUllfU0laRSAtIDEpOw0KPiAgIA0K
PiBAQCAtMzg0LDcgKzM4NCw3IEBAIHN0YXRpYyBpbnQgbXNpeF93cml0ZShzdHJ1Y3QgdmNwdSAq
diwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBpbnQgbGVuLA0KPiAgICAgICAgICAgQVNT
RVJUX1VOUkVBQ0hBQkxFKCk7DQo+ICAgICAgICAgICBicmVhazsNCj4gICAgICAgfQ0KPiAtICAg
IHNwaW5fdW5sb2NrKCZtc2l4LT5wZGV2LT52cGNpLT5sb2NrKTsNCj4gKyAgICBzcGluX3VubG9j
aygmbXNpeC0+cGRldi0+dnBjaV9sb2NrKTsNCj4gICANCj4gICAgICAgcmV0dXJuIFg4NkVNVUxf
T0tBWTsNCj4gICB9DQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYyBiL3hl
bi9kcml2ZXJzL3ZwY2kvdnBjaS5jDQo+IGluZGV4IDgyNjA3YmRiOWEuLjdkNTJiY2Y4ZDAgMTAw
NjQ0DQo+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jDQo+ICsrKyBiL3hlbi9kcml2ZXJz
L3ZwY2kvdnBjaS5jDQo+IEBAIC0zNSw5ICszNSw4IEBAIGV4dGVybiB2cGNpX3JlZ2lzdGVyX2lu
aXRfdCAqY29uc3QgX19zdGFydF92cGNpX2FycmF5W107DQo+ICAgZXh0ZXJuIHZwY2lfcmVnaXN0
ZXJfaW5pdF90ICpjb25zdCBfX2VuZF92cGNpX2FycmF5W107DQo+ICAgI2RlZmluZSBOVU1fVlBD
SV9JTklUIChfX2VuZF92cGNpX2FycmF5IC0gX19zdGFydF92cGNpX2FycmF5KQ0KPiAgIA0KPiAt
dm9pZCB2cGNpX3JlbW92ZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+ICtzdGF0aWMg
dm9pZCB2cGNpX3JlbW92ZV9kZXZpY2VfbG9ja2VkKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPiAg
IHsNCj4gLSAgICBzcGluX2xvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0KPiAgICAgICB3aGlsZSAo
ICFsaXN0X2VtcHR5KCZwZGV2LT52cGNpLT5oYW5kbGVycykgKQ0KPiAgICAgICB7DQo+ICAgICAg
ICAgICBzdHJ1Y3QgdnBjaV9yZWdpc3RlciAqciA9IGxpc3RfZmlyc3RfZW50cnkoJnBkZXYtPnZw
Y2ktPmhhbmRsZXJzLA0KPiBAQCAtNDcsMTMgKzQ2LDIwIEBAIHZvaWQgdnBjaV9yZW1vdmVfZGV2
aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPiAgICAgICAgICAgbGlzdF9kZWwoJnItPm5vZGUp
Ow0KPiAgICAgICAgICAgeGZyZWUocik7DQo+ICAgICAgIH0NCj4gLSAgICBzcGluX3VubG9jaygm
cGRldi0+dnBjaS0+bG9jayk7DQo+ICAgICAgIHhmcmVlKHBkZXYtPnZwY2ktPm1zaXgpOw0KPiAg
ICAgICB4ZnJlZShwZGV2LT52cGNpLT5tc2kpOw0KPiAgICAgICB4ZnJlZShwZGV2LT52cGNpKTsN
Cj4gICAgICAgcGRldi0+dnBjaSA9IE5VTEw7DQo+ICAgfQ0KPiAgIA0KPiArdm9pZCB2cGNpX3Jl
bW92ZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+ICt7DQo+ICsgICAgc3Bpbl9sb2Nr
KCZwZGV2LT52cGNpX2xvY2spOw0KPiArICAgIHZwY2lfcmVtb3ZlX2RldmljZV9sb2NrZWQocGRl
dik7DQo+ICsgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2lfbG9jayk7DQo+ICt9DQo+ICsNCj4g
Kw0KPiAgIGludCBfX2h3ZG9tX2luaXQgdnBjaV9hZGRfaGFuZGxlcnMoc3RydWN0IHBjaV9kZXYg
KnBkZXYpDQo+ICAgew0KPiAgICAgICB1bnNpZ25lZCBpbnQgaTsNCj4gQEAgLTYyLDEyICs2OCwx
NSBAQCBpbnQgX19od2RvbV9pbml0IHZwY2lfYWRkX2hhbmRsZXJzKHN0cnVjdCBwY2lfZGV2ICpw
ZGV2KQ0KPiAgICAgICBpZiAoICFoYXNfdnBjaShwZGV2LT5kb21haW4pICkNCj4gICAgICAgICAg
IHJldHVybiAwOw0KPiAgIA0KPiArICAgIHNwaW5fbG9jaygmcGRldi0+dnBjaV9sb2NrKTsNCj4g
ICAgICAgcGRldi0+dnBjaSA9IHh6YWxsb2Moc3RydWN0IHZwY2kpOw0KPiAgICAgICBpZiAoICFw
ZGV2LT52cGNpICkNCj4gKyAgICB7DQo+ICsgICAgICAgIHNwaW5fdW5sb2NrKCZwZGV2LT52cGNp
X2xvY2spOw0KPiAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ICsgICAgfQ0KPiAgIA0KPiAg
ICAgICBJTklUX0xJU1RfSEVBRCgmcGRldi0+dnBjaS0+aGFuZGxlcnMpOw0KPiAtICAgIHNwaW5f
bG9ja19pbml0KCZwZGV2LT52cGNpLT5sb2NrKTsNCj4gICANCj4gICAgICAgZm9yICggaSA9IDA7
IGkgPCBOVU1fVlBDSV9JTklUOyBpKysgKQ0KPiAgICAgICB7DQo+IEBAIC03Nyw3ICs4Niw4IEBA
IGludCBfX2h3ZG9tX2luaXQgdnBjaV9hZGRfaGFuZGxlcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYp
DQo+ICAgICAgIH0NCj4gICANCj4gICAgICAgaWYgKCByYyApDQo+IC0gICAgICAgIHZwY2lfcmVt
b3ZlX2RldmljZShwZGV2KTsNCj4gKyAgICAgICAgdnBjaV9yZW1vdmVfZGV2aWNlX2xvY2tlZChw
ZGV2KTsNCj4gKyAgICBzcGluX3VubG9jaygmcGRldi0+dnBjaV9sb2NrKTsNCj4gICANCj4gICAg
ICAgcmV0dXJuIHJjOw0KPiAgIH0NCj4gQEAgLTE0OCw4ICsxNTgsNiBAQCBpbnQgdnBjaV9hZGRf
cmVnaXN0ZXIoc3RydWN0IHZwY2kgKnZwY2ksIHZwY2lfcmVhZF90ICpyZWFkX2hhbmRsZXIsDQo+
ICAgICAgIHItPm9mZnNldCA9IG9mZnNldDsNCj4gICAgICAgci0+cHJpdmF0ZSA9IGRhdGE7DQo+
ICAgDQo+IC0gICAgc3Bpbl9sb2NrKCZ2cGNpLT5sb2NrKTsNCj4gLQ0KPiAgICAgICAvKiBUaGUg
bGlzdCBvZiBoYW5kbGVycyBtdXN0IGJlIGtlcHQgc29ydGVkIGF0IGFsbCB0aW1lcy4gKi8NCj4g
ICAgICAgbGlzdF9mb3JfZWFjaCAoIHByZXYsICZ2cGNpLT5oYW5kbGVycyApDQo+ICAgICAgIHsN
Cj4gQEAgLTE2MSwxNCArMTY5LDEyIEBAIGludCB2cGNpX2FkZF9yZWdpc3RlcihzdHJ1Y3QgdnBj
aSAqdnBjaSwgdnBjaV9yZWFkX3QgKnJlYWRfaGFuZGxlciwNCj4gICAgICAgICAgICAgICBicmVh
azsNCj4gICAgICAgICAgIGlmICggY21wID09IDAgKQ0KPiAgICAgICAgICAgew0KPiAtICAgICAg
ICAgICAgc3Bpbl91bmxvY2soJnZwY2ktPmxvY2spOw0KPiAgICAgICAgICAgICAgIHhmcmVlKHIp
Ow0KPiAgICAgICAgICAgICAgIHJldHVybiAtRUVYSVNUOw0KPiAgICAgICAgICAgfQ0KPiAgICAg
ICB9DQo+ICAgDQo+ICAgICAgIGxpc3RfYWRkX3RhaWwoJnItPm5vZGUsIHByZXYpOw0KPiAtICAg
IHNwaW5fdW5sb2NrKCZ2cGNpLT5sb2NrKTsNCj4gICANCj4gICAgICAgcmV0dXJuIDA7DQo+ICAg
fQ0KPiBAQCAtMTc5LDcgKzE4NSw2IEBAIGludCB2cGNpX3JlbW92ZV9yZWdpc3RlcihzdHJ1Y3Qg
dnBjaSAqdnBjaSwgdW5zaWduZWQgaW50IG9mZnNldCwNCj4gICAgICAgY29uc3Qgc3RydWN0IHZw
Y2lfcmVnaXN0ZXIgciA9IHsgLm9mZnNldCA9IG9mZnNldCwgLnNpemUgPSBzaXplIH07DQo+ICAg
ICAgIHN0cnVjdCB2cGNpX3JlZ2lzdGVyICpybTsNCj4gICANCj4gLSAgICBzcGluX2xvY2soJnZw
Y2ktPmxvY2spOw0KPiAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcm0sICZ2cGNpLT5oYW5k
bGVycywgbm9kZSApDQo+ICAgICAgIHsNCj4gICAgICAgICAgIGludCBjbXAgPSB2cGNpX3JlZ2lz
dGVyX2NtcCgmciwgcm0pOw0KPiBAQCAtMTkxLDE0ICsxOTYsMTIgQEAgaW50IHZwY2lfcmVtb3Zl
X3JlZ2lzdGVyKHN0cnVjdCB2cGNpICp2cGNpLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LA0KPiAgICAg
ICAgICAgaWYgKCAhY21wICYmIHJtLT5vZmZzZXQgPT0gb2Zmc2V0ICYmIHJtLT5zaXplID09IHNp
emUgKQ0KPiAgICAgICAgICAgew0KPiAgICAgICAgICAgICAgIGxpc3RfZGVsKCZybS0+bm9kZSk7
DQo+IC0gICAgICAgICAgICBzcGluX3VubG9jaygmdnBjaS0+bG9jayk7DQo+ICAgICAgICAgICAg
ICAgeGZyZWUocm0pOw0KPiAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiAgICAgICAgICAgfQ0K
PiAgICAgICAgICAgaWYgKCBjbXAgPD0gMCApDQo+ICAgICAgICAgICAgICAgYnJlYWs7DQo+ICAg
ICAgIH0NCj4gLSAgICBzcGluX3VubG9jaygmdnBjaS0+bG9jayk7DQo+ICAgDQo+ICAgICAgIHJl
dHVybiAtRU5PRU5UOw0KPiAgIH0NCj4gQEAgLTMxNSw3ICszMTgsNyBAQCBzdGF0aWMgdWludDMy
X3QgbWVyZ2VfcmVzdWx0KHVpbnQzMl90IGRhdGEsIHVpbnQzMl90IG5ldywgdW5zaWduZWQgaW50
IHNpemUsDQo+ICAgdWludDMyX3QgdnBjaV9yZWFkKHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQg
aW50IHJlZywgdW5zaWduZWQgaW50IHNpemUpDQo+ICAgew0KPiAgICAgICBjb25zdCBzdHJ1Y3Qg
ZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOw0KPiAtICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2
ICpwZGV2Ow0KPiArICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2Ow0KPiAgICAgICBjb25zdCBzdHJ1
Y3QgdnBjaV9yZWdpc3RlciAqcjsNCj4gICAgICAgdW5zaWduZWQgaW50IGRhdGFfb2Zmc2V0ID0g
MDsNCj4gICAgICAgdWludDMyX3QgZGF0YSA9IH4odWludDMyX3QpMDsNCj4gQEAgLTMzMSw3ICsz
MzQsMTIgQEAgdWludDMyX3QgdnBjaV9yZWFkKHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQgaW50
IHJlZywgdW5zaWduZWQgaW50IHNpemUpDQo+ICAgICAgIGlmICggIXBkZXYgKQ0KPiAgICAgICAg
ICAgcmV0dXJuIHZwY2lfcmVhZF9odyhzYmRmLCByZWcsIHNpemUpOw0KPiAgIA0KPiAtICAgIHNw
aW5fbG9jaygmcGRldi0+dnBjaS0+bG9jayk7DQo+ICsgICAgc3Bpbl9sb2NrKCZwZGV2LT52cGNp
X2xvY2spOw0KPiArICAgIGlmICggIXBkZXYtPnZwY2kgKQ0KPiArICAgIHsNCj4gKyAgICAgICAg
c3Bpbl91bmxvY2soJnBkZXYtPnZwY2lfbG9jayk7DQo+ICsgICAgICAgIHJldHVybiB2cGNpX3Jl
YWRfaHcoc2JkZiwgcmVnLCBzaXplKTsNCj4gKyAgICB9DQo+ICAgDQo+ICAgICAgIC8qIFJlYWQg
ZnJvbSB0aGUgaGFyZHdhcmUgb3IgdGhlIGVtdWxhdGVkIHJlZ2lzdGVyIGhhbmRsZXJzLiAqLw0K
PiAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggciwgJnBkZXYtPnZwY2ktPmhhbmRsZXJzLCBu
b2RlICkNCj4gQEAgLTM4Myw3ICszOTEsNyBAQCB1aW50MzJfdCB2cGNpX3JlYWQocGNpX3NiZGZf
dCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgc2l6ZSkNCj4gICANCj4gICAg
ICAgICAgIGRhdGEgPSBtZXJnZV9yZXN1bHQoZGF0YSwgdG1wX2RhdGEsIHNpemUgLSBkYXRhX29m
ZnNldCwgZGF0YV9vZmZzZXQpOw0KPiAgICAgICB9DQo+IC0gICAgc3Bpbl91bmxvY2soJnBkZXYt
PnZwY2ktPmxvY2spOw0KPiArICAgIHNwaW5fdW5sb2NrKCZwZGV2LT52cGNpX2xvY2spOw0KPiAg
IA0KPiAgICAgICByZXR1cm4gZGF0YSAmICgweGZmZmZmZmZmID4+ICgzMiAtIDggKiBzaXplKSk7
DQo+ICAgfQ0KPiBAQCAtNDE4LDcgKzQyNiw3IEBAIHZvaWQgdnBjaV93cml0ZShwY2lfc2JkZl90
IHNiZGYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCBzaXplLA0KPiAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCBkYXRhKQ0KPiAgIHsNCj4gICAgICAgY29uc3Qgc3RydWN0IGRvbWFp
biAqZCA9IGN1cnJlbnQtPmRvbWFpbjsNCj4gLSAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRl
djsNCj4gKyAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldjsNCj4gICAgICAgY29uc3Qgc3RydWN0IHZw
Y2lfcmVnaXN0ZXIgKnI7DQo+ICAgICAgIHVuc2lnbmVkIGludCBkYXRhX29mZnNldCA9IDA7DQo+
ICAgDQo+IEBAIC00MzksNyArNDQ3LDE0IEBAIHZvaWQgdnBjaV93cml0ZShwY2lfc2JkZl90IHNi
ZGYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCBzaXplLA0KPiAgICAgICAgICAgcmV0
dXJuOw0KPiAgICAgICB9DQo+ICAgDQo+IC0gICAgc3Bpbl9sb2NrKCZwZGV2LT52cGNpLT5sb2Nr
KTsNCj4gKyAgICBzcGluX2xvY2soJnBkZXYtPnZwY2lfbG9jayk7DQo+ICsgICAgaWYgKCAhcGRl
di0+dnBjaSApDQo+ICsgICAgew0KPiArICAgICAgICBzcGluX3VubG9jaygmcGRldi0+dnBjaV9s
b2NrKTsNCj4gKyAgICAgICAgdnBjaV93cml0ZV9odyhzYmRmLCByZWcsIHNpemUsIGRhdGEpOw0K
PiArICAgICAgICByZXR1cm47DQo+ICsgICAgfQ0KPiArDQo+ICAgDQo+ICAgICAgIC8qIFdyaXRl
IHRoZSB2YWx1ZSB0byB0aGUgaGFyZHdhcmUgb3IgZW11bGF0ZWQgcmVnaXN0ZXJzLiAqLw0KPiAg
ICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggciwgJnBkZXYtPnZwY2ktPmhhbmRsZXJzLCBub2Rl
ICkNCj4gQEAgLTQ4MCw3ICs0OTUsNyBAQCB2b2lkIHZwY2lfd3JpdGUocGNpX3NiZGZfdCBzYmRm
LCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgc2l6ZSwNCj4gICAgICAgICAgIHZwY2lf
d3JpdGVfaHcoc2JkZiwgcmVnICsgZGF0YV9vZmZzZXQsIHNpemUgLSBkYXRhX29mZnNldCwNCj4g
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA+PiAoZGF0YV9vZmZzZXQgKiA4KSk7DQo+ICAg
DQo+IC0gICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0KPiArICAgIHNwaW5fdW5s
b2NrKCZwZGV2LT52cGNpX2xvY2spOw0KPiAgIH0NCj4gICANCj4gICAvKg0KPiBkaWZmIC0tZ2l0
IGEveGVuL2luY2x1ZGUveGVuL3BjaS5oIGIveGVuL2luY2x1ZGUveGVuL3BjaS5oDQo+IGluZGV4
IDRjZmE3NzQ2MTUuLmU1NTRjMTRiMmYgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9w
Y2kuaA0KPiArKysgYi94ZW4vaW5jbHVkZS94ZW4vcGNpLmgNCj4gQEAgLTExNCw2ICsxMTQsNyBA
QCBzdHJ1Y3QgcGNpX2RldiB7DQo+ICAgICAgIHU2NCB2Zl9ybGVuWzZdOw0KPiAgIA0KPiAgICAg
ICAvKiBEYXRhIGZvciB2UENJLiAqLw0KPiArICAgIHNwaW5sb2NrX3QgdnBjaV9sb2NrOw0KPiAg
ICAgICBzdHJ1Y3QgdnBjaSAqdnBjaTsNCj4gICB9Ow0KPiAgIA0KPiBkaWZmIC0tZ2l0IGEveGVu
L2luY2x1ZGUveGVuL3ZwY2kuaCBiL3hlbi9pbmNsdWRlL3hlbi92cGNpLmgNCj4gaW5kZXggYWYy
Yjg1ODBlZS4uOTg1NTZkMzFlZCAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL3ZwY2ku
aA0KPiArKysgYi94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQo+IEBAIC0yOSw3ICsyOSw3IEBAIGlu
dCBfX211c3RfY2hlY2sgdnBjaV9hZGRfaGFuZGxlcnMoc3RydWN0IHBjaV9kZXYgKmRldik7DQo+
ICAgLyogUmVtb3ZlIGFsbCBoYW5kbGVycyBhbmQgZnJlZSB2cGNpIHJlbGF0ZWQgc3RydWN0dXJl
cy4gKi8NCj4gICB2b2lkIHZwY2lfcmVtb3ZlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7
DQo+ICAgDQo+IC0vKiBBZGQvcmVtb3ZlIGEgcmVnaXN0ZXIgaGFuZGxlci4gKi8NCj4gKy8qIEFk
ZC9yZW1vdmUgYSByZWdpc3RlciBoYW5kbGVyLiBNdXN0IGJlIGNhbGxlZCBob2xkaW5nIHRoZSB2
cGNpX2xvY2suICovDQo+ICAgaW50IF9fbXVzdF9jaGVjayB2cGNpX2FkZF9yZWdpc3RlcihzdHJ1
Y3QgdnBjaSAqdnBjaSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZw
Y2lfcmVhZF90ICpyZWFkX2hhbmRsZXIsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2cGNpX3dyaXRlX3QgKndyaXRlX2hhbmRsZXIsDQo+IEBAIC01OCw3ICs1OCw2IEBA
IGJvb2wgX19tdXN0X2NoZWNrIHZwY2lfcHJvY2Vzc19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2KTsN
Cj4gICBzdHJ1Y3QgdnBjaSB7DQo+ICAgICAgIC8qIExpc3Qgb2YgdlBDSSBoYW5kbGVycyBmb3Ig
YSBkZXZpY2UuICovDQo+ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgaGFuZGxlcnM7DQo+IC0gICAg
c3BpbmxvY2tfdCBsb2NrOw0KPiAgIA0KPiAgICNpZmRlZiBfX1hFTl9fDQo+ICAgICAgIC8qIEhp
ZGUgdGhlIHJlc3Qgb2YgdGhlIHZwY2kgc3RydWN0IGZyb20gdGhlIHVzZXItc3BhY2UgdGVzdCBo
YXJuZXNzLiAqLw0KWzFdIGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC94ZW4t
ZGV2ZWwvcGF0Y2gvMjAyMTExMDUwNjU2MjkuOTQwOTQzLTMtYW5kcjIwMDBAZ21haWwuY29tLw==


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 12:58:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 12:58:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229571.396981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVNc-0007tO-69; Tue, 23 Nov 2021 12:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229571.396981; Tue, 23 Nov 2021 12:58:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVNc-0007tH-3I; Tue, 23 Nov 2021 12:58:36 +0000
Received: by outflank-mailman (input) for mailman id 229571;
 Tue, 23 Nov 2021 12:58:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpVNa-0007tB-PA
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 12:58:34 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpVNa-0003OT-71; Tue, 23 Nov 2021 12:58:34 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.23.209]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpVNa-000181-0H; Tue, 23 Nov 2021 12:58:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=koEqnxBikLAKnsC7JPZwZQ+fiif860KFdH4w2SGyVCU=; b=zUR9M0ZgKVm0UmWvnYexeZMUCZ
	gIrbubGZMFyJKCX0e+tpoQr7SjyKUnX/YvS3pWqo85Gb+o97rmn3UmLee9ypNoZM0BS6aSnobzwXe
	3ndwVv01z1dh4BrMYMjlSkpRtR3lVbjlFh54FbPMTanxDajfbl9A0U/o31KQe5WV3sm4=;
Message-ID: <dd437d5f-05b5-1809-6803-20c1ddb82e52@xen.org>
Date: Tue, 23 Nov 2021 12:58:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>,
 xen-devel@lists.xenproject.org, wei.chen@arm.com,
 stefano.stabellini@xilinx.com, sstabellini@kernel.org, jbeulich@suse.com
Cc: Volodymyr_Babchuk@epam.com, bertrand.marquis@arm.com, rahul.singh@arm.com
References: <20211119165202.42442-1-ayankuma@xilinx.com>
 <647a76f8-fea9-57b3-eb64-82a67adba1fb@xen.org>
 <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <5a2f681a-c6ef-bc3a-ed09-e378dc6abc90@xilinx.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 22/11/2021 14:19, Ayan Kumar Halder wrote:
> Hi Julien/Stefano/Wei/Jan,

Hi,

> As some of the comments were inter-related, I have consolidated my 
> response to all the comments below.
> 
> On 19/11/2021 17:26, Julien Grall wrote:
>> Hi Ayan,
>>
>> On 19/11/2021 16:52, Ayan Kumar Halder wrote:
>>> At present, post indexing instructions are not emulated by Xen.
>>
>> Can you explain in the commit message why this is a problem?
> 
> Yes, I will update the message as below :-
> Armv8 hardware does not provide the correct syndrome for decoding post 
> indexing ldr/str instructions. 

This statement implies that the issue happens on both AArch32 and 
AArch64 state. I am OK if we only handle the latter for now. But I would 
clarify it in the commit message.

> Thus any post indexing ldr/str 
> instruction at EL1 results in a data abort with ISV=0. 

Instruction from EL0 may also trap in Xen. So I would prefer if you just 
say "instruction executed by a domain results ...".

> As a result, Xen 
> needs to decode the instruction.

Can you give some information on the domain used. Something like:

"this was discovered with XXX which let the compiler deciding which 
instruction to use."

> 
> Thus, DomU will be able to read/write to ioreg space with post indexing 

I would say "domain" rather "domU" because all the domains are affected.

> instructions for 32 bit.

How about the following commit message:

"
xen/arm64: io: Decode 32-bit ldr/str post-indexing instructions

At the moment, Xen is only handling data abort with valid syndrome (i.e.
ISV=0). Unfortunately, this doesn't cover all the instructions a domain
could use to access MMIO regions.

For instance, Xilinx baremetal OS will use:

         volatile u32 *LocalAddr = (volatile u32 *)Addr;
         *LocalAddr = Value;

This leave the compiler to decide which store instructions to use. This
may be a post-index store instruction where the HW will not provide a
valid syndrome.

In order to handle post-indexing store/load instructions,
Xen will need to fetch and decode the instruction.

This patch only cover post-index store/load instructions from AArch64 
mode. For now, this is left unimplemented for trap from AArch32 mode.
"

>>> +{
>>> +    int32_t ret;
>>> +
>>> +    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
>>> +        return -EINVAL;
>>> +
>>> +    ret = (value >> start) & (~0U >> (32 - length));
>>
>> This would be easier to read if you use GENMASK().
> 
> I see that GENMASK returns a register mask. In my scenario, I wish to 
> compare the offsets 10, 21, 24 and 27 to some fixed value.
> 
> So, instead of using GENMASK four times, I can try the following
> instr & MASK_for_10_21_24_27 == VALID_for_10_21_24_27 (Wei Chen's 
> suggestion)

That would be OK with me. Alternatively, you could use the union 
approach suggested by Bertrand.

> 
> 
> Also for size, v and opc, I can defined another bitmask to compare with 
> VALID_for_32bit_LDR | VALID_for_32bit_STR.
> 
> Wei Chen, You had suggested using vreg_regx_extract(). However, I see 
> that it is used to extract the complete u64 register value. In this 
> case, I wish to compare certain offsets within a 32 bit register to some 
> expected values. So, vreg_regx_extract() might not be appropriate and we 
> can use the method mentioned before.

vreg_reg*_extract() are meant to work on a register. So I think they are 
not appropriate here as you don't deal with registers.

[...]

>>> +
>>> +    /* At the moment, we support STR(immediate) - 32 bit variant and
>>> +     * LDR(immediate) - 32 bit variant only.
>>> +     */
>>
>> Coding style.
> Ack
> 
>>
>>> +    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
>>>
>>
>> The coding style for this should be:
>>
>> if ( !(( size == 2 ) && ( ... ) ... ) )
> Ack
> 
>>
>>   +        goto bad_64bit_loadstore;
>>> +
>>> +    rt = extract32(instr, 0, 5);
>>> +    imm9 = extract32(instr, 12, 9);
>>> +
>>> +    if ( imm9 < 0 )
>>> +        update_dabt(dabt, rt, size, true);
>>> +    else
>>> +        update_dabt(dabt, rt, size, false);
>>
>> This could be simplified with:
>>
>> update_dabt(dabt, rt, size, imm9 < 0);
> Ack
> 
>>
>>> +
>>> +    dabt->valid = 1;
>>> +
>>> +
>>> +    return 0;
>>> +bad_64bit_loadstore:
>>> +    gprintk(XENLOG_ERR, "unhandled 64bit instruction 0x%x\n", instr);
>>> +    return 1;
>>> +}
>>> +
>>>   static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>>>   {
>>>       uint16_t instr;
>>> @@ -155,6 +229,9 @@ int decode_instruction(const struct cpu_user_regs 
>>> *regs, struct hsr_dabt *dabt)
>>>       if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
>>>           return decode_thumb(regs->pc, dabt);
>>> +    if ( is_64bit_domain(current->domain) )
>>
>> You can still run 32-bit code in 64-bit domain. So I think you want to 
>> check the SPSR mode.
> 
> Do you mean the following check :-
> if ( (is_64bit_domain(current->domain) && (!(regs->spsr & PSR_MODE_BIT)) )

This should work, but I think you can simplify to use:

!psr_mode_is_32bit()

>>> +         */
>>> +        rc = decode_instruction(regs, &info.dabt);
>>
>> I actually expect this to also be useful when forwarding the I/O to 
>> device-model. So I would move the decoding earlier in the code and the 
>> check of dabt.valid earlier.
> 
> You mean I will move decode_instruction() before find_mmio_handler() ?

Yes.

Cheers,

--
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 13:21:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 13:21:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229580.396993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVjB-0002YE-Tn; Tue, 23 Nov 2021 13:20:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229580.396993; Tue, 23 Nov 2021 13:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVjB-0002Y7-Qo; Tue, 23 Nov 2021 13:20:53 +0000
Received: by outflank-mailman (input) for mailman id 229580;
 Tue, 23 Nov 2021 13:20:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Yj1i=QK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mpVjA-0002Xw-KR
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 13:20:52 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2daee996-4c60-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 14:20:51 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id A120821940;
 Tue, 23 Nov 2021 13:20:50 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6A6D213DE9;
 Tue, 23 Nov 2021 13:20:50 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id fPTAGLLqnGH9CgAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 23 Nov 2021 13:20:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2daee996-4c60-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637673650; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=7MFKZbNAVdl2EUgQeeUJA5/cSNPz9947JBoucY3tvZA=;
	b=ldzEZ69g0Qwal/zZhhM52f60Z7cvvWSVyAQPpYuh4bnOgmRkEkBQMMgmvQpcCNp3uGWvuK
	IV21m8dRP++wTEM9SyEP5tRDzQOY+uxBfjVpPueU9loJR9cb2w5WB9URqB/nOK1EOs5A0I
	WS4DFXMVoH6UQuEFad+LbeUJ4ySoVjo=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH v7 0/3] xen, usb: support pvUSB frontend driver
Date: Tue, 23 Nov 2021 14:20:45 +0100
Message-Id: <20211123132048.5335-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series adds XEN guest pvUSB support. With pvUSB it is possible to
use physical USB devices from a XEN domain.

Since V4 a lot of time (several years) has passed. This is a revived
attempt to get the frontend into the kernel.

The support consists of a frontend in form of a virtual hcd driver in
the unprivileged domU passing I/O-requests to the backend in a driver
domain (usually Dom0). The backend is not part of this patch series,
as it is supported via qemu.

The code is taken (and adapted) from the original pvUSB implementation
done for Linux 2.6 in 2008 by Fujitsu.

Normal operation of USB devices by adding and removing them dynamically
to/from a domain has been tested using various USB devices (USB 1.1,
2.0 and 3.0) using the qemu based backend.

Changes in V7:
- use SPDX header in usbif.h

Changes in V6:
- add SPDX line to driver

Changes in V5:
- added interface documentation to patch 1
- frontend no longer trusts backend to return only sane values

Changes in V4:
- remove sysfs file from frontend, as it violated the "one value per file"
  rule and didn't serve any real purpose.

Changes in V3:
- move frontend to drivers/usb/host and rename it to xen-hcd.
- changed name prefixes in patch 1 to "xenusb" as requested by Greg
- use __u<n> types rather than uint<n>_t as requested by Greg

Changes in V2:
- removed backend, as it can be implemented in user land
- added some access macros and definitions to the pvUSB interface
  description to make it independant from linux kernel USB internals
- adapted frontend to newer kernel version and use new pvUSB
  interface macros
- set port status in one chunk as suggested by Oliver Neukum

Juergen Gross (3):
  usb: Add Xen pvUSB protocol description
  usb: Introduce Xen pvUSB frontend (xen hcd)
  xen: add Xen pvUSB maintainer

 MAINTAINERS                      |    8 +
 drivers/usb/host/Kconfig         |   11 +
 drivers/usb/host/Makefile        |    1 +
 drivers/usb/host/xen-hcd.c       | 1606 ++++++++++++++++++++++++++++++
 include/xen/interface/io/usbif.h |  405 ++++++++
 5 files changed, 2031 insertions(+)
 create mode 100644 drivers/usb/host/xen-hcd.c
 create mode 100644 include/xen/interface/io/usbif.h

-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 13:21:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 13:21:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229582.397015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVjE-00033m-Dz; Tue, 23 Nov 2021 13:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229582.397015; Tue, 23 Nov 2021 13:20:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVjE-00033f-A8; Tue, 23 Nov 2021 13:20:56 +0000
Received: by outflank-mailman (input) for mailman id 229582;
 Tue, 23 Nov 2021 13:20:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Yj1i=QK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mpVjC-0002Xw-D2
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 13:20:54 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2dc28a32-4c60-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 14:20:51 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id D8F801FD58;
 Tue, 23 Nov 2021 13:20:50 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A211213E08;
 Tue, 23 Nov 2021 13:20:50 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 6GVZJrLqnGH9CgAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 23 Nov 2021 13:20:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2dc28a32-4c60-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637673650; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ieEEwCqF83XsavfVRgMrEJimWYSiFfUd5VpcSLoCdEY=;
	b=sRIC4z1bRM5m/QVgrHY+BZjnUKUpq8jXkjUg04ElhpOK69xFQMY+rob1P3ExyxOzyqhA1H
	RXiMny/8xF059C43OxWMetDQYHdaO8LUFUzPW1FJgSm7fVZRNrV2YqEjw6ZjIlU45hOXGA
	F6AfYXem5fqlJ749mMsy3vyoUwxhVLg=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH v7 1/3] usb: Add Xen pvUSB protocol description
Date: Tue, 23 Nov 2021 14:20:46 +0100
Message-Id: <20211123132048.5335-2-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211123132048.5335-1-jgross@suse.com>
References: <20211123132048.5335-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add the definition of pvUSB protocol used between the pvUSB frontend in
a Xen domU and the pvUSB backend in a Xen driver domain (usually Dom0).

This header was originally provided by Fujitsu for Xen based on Linux
2.6.18.

Changes are:
- adapt to Linux kernel style guide
- use Xen namespace
- add lots of comments
- don't use kernel internal defines

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
---
 include/xen/interface/io/usbif.h | 405 +++++++++++++++++++++++++++++++
 1 file changed, 405 insertions(+)
 create mode 100644 include/xen/interface/io/usbif.h

diff --git a/include/xen/interface/io/usbif.h b/include/xen/interface/io/usbif.h
new file mode 100644
index 000000000000..a70e0b93178b
--- /dev/null
+++ b/include/xen/interface/io/usbif.h
@@ -0,0 +1,405 @@
+/* SPDX-License-Identifier: MIT */
+
+/*
+ * usbif.h
+ *
+ * USB I/O interface for Xen guest OSes.
+ *
+ * Copyright (C) 2009, FUJITSU LABORATORIES LTD.
+ * Author: Noboru Iwamatsu <n_iwamatsu@jp.fujitsu.com>
+ */
+
+#ifndef __XEN_PUBLIC_IO_USBIF_H__
+#define __XEN_PUBLIC_IO_USBIF_H__
+
+#include "ring.h"
+#include "../grant_table.h"
+
+/*
+ * Detailed Interface Description
+ * ==============================
+ * The pvUSB interface is using a split driver design: a frontend driver in
+ * the guest and a backend driver in a driver domain (normally dom0) having
+ * access to the physical USB device(s) being passed to the guest.
+ *
+ * The frontend and backend drivers use XenStore to initiate the connection
+ * between them, the I/O activity is handled via two shared ring pages and an
+ * event channel. As the interface between frontend and backend is at the USB
+ * host connector level, multiple (up to 31) physical USB devices can be
+ * handled by a single connection.
+ *
+ * The Xen pvUSB device name is "qusb", so the frontend's XenStore entries are
+ * to be found under "device/qusb", while the backend's XenStore entries are
+ * under "backend/<guest-dom-id>/qusb".
+ *
+ * When a new pvUSB connection is established, the frontend needs to setup the
+ * two shared ring pages for communication and the event channel. The ring
+ * pages need to be made available to the backend via the grant table
+ * interface.
+ *
+ * One of the shared ring pages is used by the backend to inform the frontend
+ * about USB device plug events (device to be added or removed). This is the
+ * "conn-ring".
+ *
+ * The other ring page is used for USB I/O communication (requests and
+ * responses). This is the "urb-ring".
+ *
+ * Feature and Parameter Negotiation
+ * =================================
+ * The two halves of a Xen pvUSB driver utilize nodes within the XenStore to
+ * communicate capabilities and to negotiate operating parameters. This
+ * section enumerates these nodes which reside in the respective front and
+ * backend portions of the XenStore, following the XenBus convention.
+ *
+ * Any specified default value is in effect if the corresponding XenBus node
+ * is not present in the XenStore.
+ *
+ * XenStore nodes in sections marked "PRIVATE" are solely for use by the
+ * driver side whose XenBus tree contains them.
+ *
+ *****************************************************************************
+ *                            Backend XenBus Nodes
+ *****************************************************************************
+ *
+ *------------------ Backend Device Identification (PRIVATE) ------------------
+ *
+ * num-ports
+ *      Values:         unsigned [1...31]
+ *
+ *      Number of ports for this (virtual) USB host connector.
+ *
+ * usb-ver
+ *      Values:         unsigned [1...2]
+ *
+ *      USB version of this host connector: 1 = USB 1.1, 2 = USB 2.0.
+ *
+ * port/[1...31]
+ *      Values:         string
+ *
+ *      Physical USB device connected to the given port, e.g. "3-1.5".
+ *
+ *****************************************************************************
+ *                            Frontend XenBus Nodes
+ *****************************************************************************
+ *
+ *----------------------- Request Transport Parameters -----------------------
+ *
+ * event-channel
+ *      Values:         unsigned
+ *
+ *      The identifier of the Xen event channel used to signal activity
+ *      in the ring buffer.
+ *
+ * urb-ring-ref
+ *      Values:         unsigned
+ *
+ *      The Xen grant reference granting permission for the backend to map
+ *      the sole page in a single page sized ring buffer. This is the ring
+ *      buffer for urb requests.
+ *
+ * conn-ring-ref
+ *      Values:         unsigned
+ *
+ *      The Xen grant reference granting permission for the backend to map
+ *      the sole page in a single page sized ring buffer. This is the ring
+ *      buffer for connection/disconnection requests.
+ *
+ * protocol
+ *      Values:         string (XEN_IO_PROTO_ABI_*)
+ *      Default Value:  XEN_IO_PROTO_ABI_NATIVE
+ *
+ *      The machine ABI rules governing the format of all ring request and
+ *      response structures.
+ *
+ * Protocol Description
+ * ====================
+ *
+ *-------------------------- USB device plug events --------------------------
+ *
+ * USB device plug events are send via the "conn-ring" shared page. As only
+ * events are being sent, the respective requests from the frontend to the
+ * backend are just dummy ones.
+ * The events sent to the frontend have the following layout:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |    portnum     |     speed      | 4
+ * +----------------+----------------+----------------+----------------+
+ *   id - uint16_t, event id (taken from the actual frontend dummy request)
+ *   portnum - uint8_t, port number (1 ... 31)
+ *   speed - uint8_t, device XENUSB_SPEED_*, XENUSB_SPEED_NONE == unplug
+ *
+ * The dummy request:
+ *         0                1        octet
+ * +----------------+----------------+
+ * |               id                | 2
+ * +----------------+----------------+
+ *   id - uint16_t, guest supplied value (no need for being unique)
+ *
+ *-------------------------- USB I/O request ---------------------------------
+ *
+ * A single USB I/O request on the "urb-ring" has the following layout:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |         nr_buffer_segs          | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                               pipe                                | 8
+ * +----------------+----------------+----------------+----------------+
+ * |         transfer_flags          |          buffer_length          | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                       request type specific                       | 16
+ * |                               data                                | 20
+ * +----------------+----------------+----------------+----------------+
+ * |                              seg[0]                               | 24
+ * |                               data                                | 28
+ * +----------------+----------------+----------------+----------------+
+ * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
+ * +----------------+----------------+----------------+----------------+
+ * |             seg[XENUSB_MAX_SEGMENTS_PER_REQUEST - 1]              | 144
+ * |                               data                                | 148
+ * +----------------+----------------+----------------+----------------+
+ * Bit field bit number 0 is always least significant bit, undefined bits must
+ * be zero.
+ *   id - uint16_t, guest supplied value
+ *   nr_buffer_segs - uint16_t, number of segment entries in seg[] array
+ *   pipe - uint32_t, bit field with multiple information:
+ *     bits 0-4: port request to send to
+ *     bit 5: unlink request with specified id (cancel I/O) if set (see below)
+ *     bit 7: direction (1 = read from device)
+ *     bits 8-14: device number on port
+ *     bits 15-18: endpoint of device
+ *     bits 30-31: request type: 00 = isochronous, 01 = interrupt,
+ *                               10 = control, 11 = bulk
+ *   transfer_flags - uint16_t, bit field with processing flags:
+ *     bit 0: less data than specified allowed
+ *   buffer_length - uint16_t, total length of data
+ *   request type specific data - 8 bytes, see below
+ *   seg[] - array with 8 byte elements, see below
+ *
+ * Request type specific data for isochronous request:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |            interval             |           start_frame           | 4
+ * +----------------+----------------+----------------+----------------+
+ * |       number_of_packets         |       nr_frame_desc_segs        | 8
+ * +----------------+----------------+----------------+----------------+
+ *   interval - uint16_t, time interval in msecs between frames
+ *   start_frame - uint16_t, start frame number
+ *   number_of_packets - uint16_t, number of packets to transfer
+ *   nr_frame_desc_segs - uint16_t number of seg[] frame descriptors elements
+ *
+ * Request type specific data for interrupt request:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |            interval             |                0                | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                                 0                                 | 8
+ * +----------------+----------------+----------------+----------------+
+ *   interval - uint16_t, time in msecs until interruption
+ *
+ * Request type specific data for control request:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |                      data of setup packet                         | 4
+ * |                                                                   | 8
+ * +----------------+----------------+----------------+----------------+
+ *
+ * Request type specific data for bulk request:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |                                 0                                 | 4
+ * |                                 0                                 | 8
+ * +----------------+----------------+----------------+----------------+
+ *
+ * Request type specific data for unlink request:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |           unlink_id             |                0                | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                                 0                                 | 8
+ * +----------------+----------------+----------------+----------------+
+ *   unlink_id - uint16_t, request id of request to terminate
+ *
+ * seg[] array element layout:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |                               gref                                | 4
+ * +----------------+----------------+----------------+----------------+
+ * |             offset              |             length              | 8
+ * +----------------+----------------+----------------+----------------+
+ *   gref - uint32_t, grant reference of buffer page
+ *   offset - uint16_t, offset of buffer start in page
+ *   length - uint16_t, length of buffer in page
+ *
+ *-------------------------- USB I/O response --------------------------------
+ *
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |          start_frame            | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                              status                               | 8
+ * +----------------+----------------+----------------+----------------+
+ * |                          actual_length                            | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                           error_count                             | 16
+ * +----------------+----------------+----------------+----------------+
+ *   id - uint16_t, id of the request this response belongs to
+ *   start_frame - uint16_t, start_frame this response (iso requests only)
+ *   status - int32_t, XENUSB_STATUS_* (non-iso requests)
+ *   actual_length - uint32_t, actual size of data transferred
+ *   error_count - uint32_t, number of errors (iso requests)
+ */
+
+enum xenusb_spec_version {
+	XENUSB_VER_UNKNOWN = 0,
+	XENUSB_VER_USB11,
+	XENUSB_VER_USB20,
+	XENUSB_VER_USB30,	/* not supported yet */
+};
+
+/*
+ *  USB pipe in xenusb_request
+ *
+ *  - port number:      bits 0-4
+ *                              (USB_MAXCHILDREN is 31)
+ *
+ *  - operation flag:   bit 5
+ *                              (0 = submit urb,
+ *                               1 = unlink urb)
+ *
+ *  - direction:        bit 7
+ *                              (0 = Host-to-Device [Out]
+ *                               1 = Device-to-Host [In])
+ *
+ *  - device address:   bits 8-14
+ *
+ *  - endpoint:         bits 15-18
+ *
+ *  - pipe type:        bits 30-31
+ *                              (00 = isochronous, 01 = interrupt,
+ *                               10 = control, 11 = bulk)
+ */
+
+#define XENUSB_PIPE_PORT_MASK	0x0000001f
+#define XENUSB_PIPE_UNLINK	0x00000020
+#define XENUSB_PIPE_DIR		0x00000080
+#define XENUSB_PIPE_DEV_MASK	0x0000007f
+#define XENUSB_PIPE_DEV_SHIFT	8
+#define XENUSB_PIPE_EP_MASK	0x0000000f
+#define XENUSB_PIPE_EP_SHIFT	15
+#define XENUSB_PIPE_TYPE_MASK	0x00000003
+#define XENUSB_PIPE_TYPE_SHIFT	30
+#define XENUSB_PIPE_TYPE_ISOC	0
+#define XENUSB_PIPE_TYPE_INT	1
+#define XENUSB_PIPE_TYPE_CTRL	2
+#define XENUSB_PIPE_TYPE_BULK	3
+
+#define xenusb_pipeportnum(pipe)		((pipe) & XENUSB_PIPE_PORT_MASK)
+#define xenusb_setportnum_pipe(pipe, portnum)	((pipe) | (portnum))
+
+#define xenusb_pipeunlink(pipe)			((pipe) & XENUSB_PIPE_UNLINK)
+#define xenusb_pipesubmit(pipe)			(!xenusb_pipeunlink(pipe))
+#define xenusb_setunlink_pipe(pipe)		((pipe) | XENUSB_PIPE_UNLINK)
+
+#define xenusb_pipein(pipe)			((pipe) & XENUSB_PIPE_DIR)
+#define xenusb_pipeout(pipe)			(!xenusb_pipein(pipe))
+
+#define xenusb_pipedevice(pipe)			\
+	(((pipe) >> XENUSB_PIPE_DEV_SHIFT) & XENUSB_PIPE_DEV_MASK)
+
+#define xenusb_pipeendpoint(pipe)		\
+	(((pipe) >> XENUSB_PIPE_EP_SHIFT) & XENUSB_PIPE_EP_MASK)
+
+#define xenusb_pipetype(pipe)			\
+	(((pipe) >> XENUSB_PIPE_TYPE_SHIFT) & XENUSB_PIPE_TYPE_MASK)
+#define xenusb_pipeisoc(pipe)	(xenusb_pipetype(pipe) == XENUSB_PIPE_TYPE_ISOC)
+#define xenusb_pipeint(pipe)	(xenusb_pipetype(pipe) == XENUSB_PIPE_TYPE_INT)
+#define xenusb_pipectrl(pipe)	(xenusb_pipetype(pipe) == XENUSB_PIPE_TYPE_CTRL)
+#define xenusb_pipebulk(pipe)	(xenusb_pipetype(pipe) == XENUSB_PIPE_TYPE_BULK)
+
+#define XENUSB_MAX_SEGMENTS_PER_REQUEST (16)
+#define XENUSB_MAX_PORTNR		31
+#define XENUSB_RING_SIZE		4096
+
+/*
+ * RING for transferring urbs.
+ */
+struct xenusb_request_segment {
+	grant_ref_t gref;
+	uint16_t offset;
+	uint16_t length;
+};
+
+struct xenusb_urb_request {
+	uint16_t id;			/* request id */
+	uint16_t nr_buffer_segs;	/* number of urb->transfer_buffer segments */
+
+	/* basic urb parameter */
+	uint32_t pipe;
+	uint16_t transfer_flags;
+#define XENUSB_SHORT_NOT_OK	0x0001
+	uint16_t buffer_length;
+	union {
+		uint8_t ctrl[8];	/* setup_packet (Ctrl) */
+
+		struct {
+			uint16_t interval;	/* maximum (1024*8) in usb core */
+			uint16_t start_frame;	/* start frame */
+			uint16_t number_of_packets;	/* number of ISO packet */
+			uint16_t nr_frame_desc_segs;	/* number of iso_frame_desc segments */
+		} isoc;
+
+		struct {
+			uint16_t interval;	/* maximum (1024*8) in usb core */
+			uint16_t pad[3];
+		} intr;
+
+		struct {
+			uint16_t unlink_id;	/* unlink request id */
+			uint16_t pad[3];
+		} unlink;
+
+	} u;
+
+	/* urb data segments */
+	struct xenusb_request_segment seg[XENUSB_MAX_SEGMENTS_PER_REQUEST];
+};
+
+struct xenusb_urb_response {
+	uint16_t id;		/* request id */
+	uint16_t start_frame;	/* start frame (ISO) */
+	int32_t status;		/* status (non-ISO) */
+#define XENUSB_STATUS_OK	0
+#define XENUSB_STATUS_NODEV	(-19)
+#define XENUSB_STATUS_INVAL	(-22)
+#define XENUSB_STATUS_STALL	(-32)
+#define XENUSB_STATUS_IOERROR	(-71)
+#define XENUSB_STATUS_BABBLE	(-75)
+#define XENUSB_STATUS_SHUTDOWN	(-108)
+	int32_t actual_length;	/* actual transfer length */
+	int32_t error_count;	/* number of ISO errors */
+};
+
+DEFINE_RING_TYPES(xenusb_urb, struct xenusb_urb_request, struct xenusb_urb_response);
+#define XENUSB_URB_RING_SIZE __CONST_RING_SIZE(xenusb_urb, XENUSB_RING_SIZE)
+
+/*
+ * RING for notifying connect/disconnect events to frontend
+ */
+struct xenusb_conn_request {
+	uint16_t id;
+};
+
+struct xenusb_conn_response {
+	uint16_t id;		/* request id */
+	uint8_t portnum;	/* port number */
+	uint8_t speed;		/* usb_device_speed */
+#define XENUSB_SPEED_NONE	0
+#define XENUSB_SPEED_LOW	1
+#define XENUSB_SPEED_FULL	2
+#define XENUSB_SPEED_HIGH	3
+};
+
+DEFINE_RING_TYPES(xenusb_conn, struct xenusb_conn_request, struct xenusb_conn_response);
+#define XENUSB_CONN_RING_SIZE __CONST_RING_SIZE(xenusb_conn, XENUSB_RING_SIZE)
+
+#endif /* __XEN_PUBLIC_IO_USBIF_H__ */
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 13:21:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 13:21:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229581.397004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVjD-0002nx-5W; Tue, 23 Nov 2021 13:20:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229581.397004; Tue, 23 Nov 2021 13:20:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVjD-0002nq-1q; Tue, 23 Nov 2021 13:20:55 +0000
Received: by outflank-mailman (input) for mailman id 229581;
 Tue, 23 Nov 2021 13:20:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Yj1i=QK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mpVjB-0002Xw-Cx
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 13:20:53 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e06a899-4c60-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 14:20:51 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 4E28321954;
 Tue, 23 Nov 2021 13:20:51 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2401413E08;
 Tue, 23 Nov 2021 13:20:51 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 8J6vB7PqnGH9CgAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 23 Nov 2021 13:20:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e06a899-4c60-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637673651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ydq29op3Uut8kGUc+uMZHwfZgLUyDFkJcJa0BA/hp2o=;
	b=aE2lIQcvn8yWSfbm78fERFlbWdgumlWSpB0YoGZ7L/CIcN/LI4T9kEzzbVgNcrqrqvpWZx
	w1nQqngyJ2tp7D8IOWuMF6PnxBMO4Q66+jAZhkS673UjP59gjXs0HGzPMrHRHQc9dfy6IP
	rxr/pcv+pVL9A9WYShqOMfI28e3/hNU=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Konrad Rzeszutek Wilk <Konrad.wilk@oracle.com>
Subject: [PATCH v7 3/3] xen: add Xen pvUSB maintainer
Date: Tue, 23 Nov 2021 14:20:48 +0100
Message-Id: <20211123132048.5335-4-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211123132048.5335-1-jgross@suse.com>
References: <20211123132048.5335-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add myself as maintainer for the Xen pvUSB stuff.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@oracle.com>
---
 MAINTAINERS | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 5250298d2817..da7fd3d32dc4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -20831,6 +20831,14 @@ F:	drivers/scsi/xen-scsifront.c
 F:	drivers/xen/xen-scsiback.c
 F:	include/xen/interface/io/vscsiif.h
 
+XEN PVUSB DRIVER
+M:	Juergen Gross <jgross@suse.com>
+L:	xen-devel@lists.xenproject.org (moderated for non-subscribers)
+L:	linux-usb@vger.kernel.org
+S:	Supported
+F:	divers/usb/host/xen*
+F:	include/xen/interface/io/usbif.h
+
 XEN SOUND FRONTEND DRIVER
 M:	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
 L:	xen-devel@lists.xenproject.org (moderated for non-subscribers)
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 13:21:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 13:21:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229583.397021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVjE-0003Au-Up; Tue, 23 Nov 2021 13:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229583.397021; Tue, 23 Nov 2021 13:20:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpVjE-00039l-Qc; Tue, 23 Nov 2021 13:20:56 +0000
Received: by outflank-mailman (input) for mailman id 229583;
 Tue, 23 Nov 2021 13:20:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Yj1i=QK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mpVjD-0002Xw-D9
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 13:20:55 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2dec7e17-4c60-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 14:20:51 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 1F55321941;
 Tue, 23 Nov 2021 13:20:51 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id E1A3E13DE9;
 Tue, 23 Nov 2021 13:20:50 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id gL70NbLqnGH9CgAAMHmgww
 (envelope-from <jgross@suse.com>); Tue, 23 Nov 2021 13:20:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2dec7e17-4c60-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637673651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=owJuxZKWJugJfZXS+nM0bWvS5UDcs7WZjS9gLkzp2rI=;
	b=R182SVf8qA+Ls4TYuv6LCygnNvuWkDmdF7pypy+AGb4peOYTQ6inBafL3E6zrrES/RItzu
	pGjWRVcPRibjmot5tLbrmWSgN/ZBMhLAbru4NpxjO4rGrNVRaU2LPHatcDOM+45eWbpmsm
	YjvZ9m7Y8LMAvxphvmC02XEduxnPH98=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH v7 2/3] usb: Introduce Xen pvUSB frontend (xen hcd)
Date: Tue, 23 Nov 2021 14:20:47 +0100
Message-Id: <20211123132048.5335-3-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211123132048.5335-1-jgross@suse.com>
References: <20211123132048.5335-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduces the Xen pvUSB frontend. With pvUSB it is possible for a Xen
domU to communicate with a USB device assigned to that domU. The
communication is all done via the pvUSB backend in a driver domain
(usually Dom0) which is owner of the physical device.

The pvUSB frontend is a USB hcd for a virtual USB host connector.

The code is taken from the pvUSB implementation in Xen done by Fujitsu
based on Linux kernel 2.6.18.

Changes from the original version are:
- port to upstream kernel
- put all code in just one source file
- move module to appropriate location in kernel tree
- adapt to Linux style guide
- minor code modifications to increase readability

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/usb/host/Kconfig   |   11 +
 drivers/usb/host/Makefile  |    1 +
 drivers/usb/host/xen-hcd.c | 1606 ++++++++++++++++++++++++++++++++++++
 3 files changed, 1618 insertions(+)
 create mode 100644 drivers/usb/host/xen-hcd.c

diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index d1d926f8f9c2..57ca5f97a3dc 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -772,3 +772,14 @@ config USB_HCD_TEST_MODE
 	  This option is of interest only to developers who need to validate
 	  their USB hardware designs.  It is not needed for normal use.  If
 	  unsure, say N.
+
+config USB_XEN_HCD
+	tristate "Xen usb virtual host driver"
+	depends on XEN
+	select XEN_XENBUS_FRONTEND
+	help
+	  The Xen usb virtual host driver serves as a frontend driver enabling
+	  a Xen guest system to access USB Devices passed through to the guest
+	  by the Xen host (usually Dom0).
+	  Only needed if the kernel is running in a Xen guest and generic
+	  access to a USB device is needed.
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 171de4df50bd..2948983618fb 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -85,3 +85,4 @@ obj-$(CONFIG_USB_HCD_BCMA)	+= bcma-hcd.o
 obj-$(CONFIG_USB_HCD_SSB)	+= ssb-hcd.o
 obj-$(CONFIG_USB_FOTG210_HCD)	+= fotg210-hcd.o
 obj-$(CONFIG_USB_MAX3421_HCD)	+= max3421-hcd.o
+obj-$(CONFIG_USB_XEN_HCD)	+= xen-hcd.o
diff --git a/drivers/usb/host/xen-hcd.c b/drivers/usb/host/xen-hcd.c
new file mode 100644
index 000000000000..7801dde6f5ee
--- /dev/null
+++ b/drivers/usb/host/xen-hcd.c
@@ -0,0 +1,1606 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * xen-hcd.c
+ *
+ * Xen USB Virtual Host Controller driver
+ *
+ * Copyright (C) 2009, FUJITSU LABORATORIES LTD.
+ * Author: Noboru Iwamatsu <n_iwamatsu@jp.fujitsu.com>
+ */
+
+#include <linux/module.h>
+#include <linux/usb.h>
+#include <linux/list.h>
+#include <linux/usb/hcd.h>
+#include <linux/io.h>
+
+#include <xen/xen.h>
+#include <xen/xenbus.h>
+#include <xen/grant_table.h>
+#include <xen/events.h>
+#include <xen/page.h>
+
+#include <xen/interface/io/usbif.h>
+
+/* Private per-URB data */
+struct urb_priv {
+	struct list_head list;
+	struct urb *urb;
+	int req_id;		/* RING_REQUEST id for submitting */
+	int unlink_req_id;	/* RING_REQUEST id for unlinking */
+	int status;
+	bool unlinked;		/* dequeued marker */
+};
+
+/* virtual roothub port status */
+struct rhport_status {
+	__u32 status;
+	bool resuming;		/* in resuming */
+	bool c_connection;	/* connection changed */
+	unsigned long timeout;
+};
+
+/* status of attached device */
+struct vdevice_status {
+	int devnum;
+	enum usb_device_state status;
+	enum usb_device_speed speed;
+};
+
+/* RING request shadow */
+struct usb_shadow {
+	struct xenusb_urb_request req;
+	struct urb *urb;
+};
+
+struct xenhcd_info {
+	/* Virtual Host Controller has 4 urb queues */
+	struct list_head pending_submit_list;
+	struct list_head pending_unlink_list;
+	struct list_head in_progress_list;
+	struct list_head giveback_waiting_list;
+
+	spinlock_t lock;
+
+	/* timer that kick pending and giveback waiting urbs */
+	struct timer_list watchdog;
+	unsigned long actions;
+
+	/* virtual root hub */
+	int rh_numports;
+	struct rhport_status ports[XENUSB_MAX_PORTNR];
+	struct vdevice_status devices[XENUSB_MAX_PORTNR];
+
+	/* Xen related staff */
+	struct xenbus_device *xbdev;
+	int urb_ring_ref;
+	int conn_ring_ref;
+	struct xenusb_urb_front_ring urb_ring;
+	struct xenusb_conn_front_ring conn_ring;
+
+	unsigned int evtchn;
+	unsigned int irq;
+	struct usb_shadow shadow[XENUSB_URB_RING_SIZE];
+	unsigned int shadow_free;
+
+	bool error;
+};
+
+#define GRANT_INVALID_REF 0
+
+#define XENHCD_RING_JIFFIES (HZ/200)
+#define XENHCD_SCAN_JIFFIES 1
+
+enum xenhcd_timer_action {
+	TIMER_RING_WATCHDOG,
+	TIMER_SCAN_PENDING_URBS,
+};
+
+static struct kmem_cache *xenhcd_urbp_cachep;
+
+static inline struct xenhcd_info *xenhcd_hcd_to_info(struct usb_hcd *hcd)
+{
+	return (struct xenhcd_info *)hcd->hcd_priv;
+}
+
+static inline struct usb_hcd *xenhcd_info_to_hcd(struct xenhcd_info *info)
+{
+	return container_of((void *)info, struct usb_hcd, hcd_priv);
+}
+
+static void xenhcd_set_error(struct xenhcd_info *info, const char *msg)
+{
+	info->error = true;
+
+	pr_alert("xen-hcd: protocol error: %s!\n", msg);
+}
+
+static inline void xenhcd_timer_action_done(struct xenhcd_info *info,
+					    enum xenhcd_timer_action action)
+{
+	clear_bit(action, &info->actions);
+}
+
+static void xenhcd_timer_action(struct xenhcd_info *info,
+				enum xenhcd_timer_action action)
+{
+	if (timer_pending(&info->watchdog) &&
+	    test_bit(TIMER_SCAN_PENDING_URBS, &info->actions))
+		return;
+
+	if (!test_and_set_bit(action, &info->actions)) {
+		unsigned long t;
+
+		switch (action) {
+		case TIMER_RING_WATCHDOG:
+			t = XENHCD_RING_JIFFIES;
+			break;
+		default:
+			t = XENHCD_SCAN_JIFFIES;
+			break;
+		}
+		mod_timer(&info->watchdog, t + jiffies);
+	}
+}
+
+/*
+ * set virtual port connection status
+ */
+static void xenhcd_set_connect_state(struct xenhcd_info *info, int portnum)
+{
+	int port;
+
+	port = portnum - 1;
+	if (info->ports[port].status & USB_PORT_STAT_POWER) {
+		switch (info->devices[port].speed) {
+		case XENUSB_SPEED_NONE:
+			info->ports[port].status &=
+				~(USB_PORT_STAT_CONNECTION |
+				  USB_PORT_STAT_ENABLE |
+				  USB_PORT_STAT_LOW_SPEED |
+				  USB_PORT_STAT_HIGH_SPEED |
+				  USB_PORT_STAT_SUSPEND);
+			break;
+		case XENUSB_SPEED_LOW:
+			info->ports[port].status |= USB_PORT_STAT_CONNECTION;
+			info->ports[port].status |= USB_PORT_STAT_LOW_SPEED;
+			break;
+		case XENUSB_SPEED_FULL:
+			info->ports[port].status |= USB_PORT_STAT_CONNECTION;
+			break;
+		case XENUSB_SPEED_HIGH:
+			info->ports[port].status |= USB_PORT_STAT_CONNECTION;
+			info->ports[port].status |= USB_PORT_STAT_HIGH_SPEED;
+			break;
+		default: /* error */
+			return;
+		}
+		info->ports[port].status |= (USB_PORT_STAT_C_CONNECTION << 16);
+	}
+}
+
+/*
+ * set virtual device connection status
+ */
+static int xenhcd_rhport_connect(struct xenhcd_info *info, __u8 portnum,
+				 __u8 speed)
+{
+	int port;
+
+	if (portnum < 1 || portnum > info->rh_numports)
+		return -EINVAL; /* invalid port number */
+
+	port = portnum - 1;
+	if (info->devices[port].speed != speed) {
+		switch (speed) {
+		case XENUSB_SPEED_NONE: /* disconnect */
+			info->devices[port].status = USB_STATE_NOTATTACHED;
+			break;
+		case XENUSB_SPEED_LOW:
+		case XENUSB_SPEED_FULL:
+		case XENUSB_SPEED_HIGH:
+			info->devices[port].status = USB_STATE_ATTACHED;
+			break;
+		default: /* error */
+			return -EINVAL;
+		}
+		info->devices[port].speed = speed;
+		info->ports[port].c_connection = true;
+
+		xenhcd_set_connect_state(info, portnum);
+	}
+
+	return 0;
+}
+
+/*
+ * SetPortFeature(PORT_SUSPENDED)
+ */
+static void xenhcd_rhport_suspend(struct xenhcd_info *info, int portnum)
+{
+	int port;
+
+	port = portnum - 1;
+	info->ports[port].status |= USB_PORT_STAT_SUSPEND;
+	info->devices[port].status = USB_STATE_SUSPENDED;
+}
+
+/*
+ * ClearPortFeature(PORT_SUSPENDED)
+ */
+static void xenhcd_rhport_resume(struct xenhcd_info *info, int portnum)
+{
+	int port;
+
+	port = portnum - 1;
+	if (info->ports[port].status & USB_PORT_STAT_SUSPEND) {
+		info->ports[port].resuming = true;
+		info->ports[port].timeout = jiffies + msecs_to_jiffies(20);
+	}
+}
+
+/*
+ * SetPortFeature(PORT_POWER)
+ */
+static void xenhcd_rhport_power_on(struct xenhcd_info *info, int portnum)
+{
+	int port;
+
+	port = portnum - 1;
+	if ((info->ports[port].status & USB_PORT_STAT_POWER) == 0) {
+		info->ports[port].status |= USB_PORT_STAT_POWER;
+		if (info->devices[port].status != USB_STATE_NOTATTACHED)
+			info->devices[port].status = USB_STATE_POWERED;
+		if (info->ports[port].c_connection)
+			xenhcd_set_connect_state(info, portnum);
+	}
+}
+
+/*
+ * ClearPortFeature(PORT_POWER)
+ * SetConfiguration(non-zero)
+ * Power_Source_Off
+ * Over-current
+ */
+static void xenhcd_rhport_power_off(struct xenhcd_info *info, int portnum)
+{
+	int port;
+
+	port = portnum - 1;
+	if (info->ports[port].status & USB_PORT_STAT_POWER) {
+		info->ports[port].status = 0;
+		if (info->devices[port].status != USB_STATE_NOTATTACHED)
+			info->devices[port].status = USB_STATE_ATTACHED;
+	}
+}
+
+/*
+ * ClearPortFeature(PORT_ENABLE)
+ */
+static void xenhcd_rhport_disable(struct xenhcd_info *info, int portnum)
+{
+	int port;
+
+	port = portnum - 1;
+	info->ports[port].status &= ~USB_PORT_STAT_ENABLE;
+	info->ports[port].status &= ~USB_PORT_STAT_SUSPEND;
+	info->ports[port].resuming = false;
+	if (info->devices[port].status != USB_STATE_NOTATTACHED)
+		info->devices[port].status = USB_STATE_POWERED;
+}
+
+/*
+ * SetPortFeature(PORT_RESET)
+ */
+static void xenhcd_rhport_reset(struct xenhcd_info *info, int portnum)
+{
+	int port;
+
+	port = portnum - 1;
+	info->ports[port].status &= ~(USB_PORT_STAT_ENABLE |
+				      USB_PORT_STAT_LOW_SPEED |
+				      USB_PORT_STAT_HIGH_SPEED);
+	info->ports[port].status |= USB_PORT_STAT_RESET;
+
+	if (info->devices[port].status != USB_STATE_NOTATTACHED)
+		info->devices[port].status = USB_STATE_ATTACHED;
+
+	/* 10msec reset signaling */
+	info->ports[port].timeout = jiffies + msecs_to_jiffies(10);
+}
+
+#ifdef CONFIG_PM
+static int xenhcd_bus_suspend(struct usb_hcd *hcd)
+{
+	struct xenhcd_info *info = xenhcd_hcd_to_info(hcd);
+	int ret = 0;
+	int i, ports;
+
+	ports = info->rh_numports;
+
+	spin_lock_irq(&info->lock);
+	if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)) {
+		ret = -ESHUTDOWN;
+	} else {
+		/* suspend any active ports*/
+		for (i = 1; i <= ports; i++)
+			xenhcd_rhport_suspend(info, i);
+	}
+	spin_unlock_irq(&info->lock);
+
+	del_timer_sync(&info->watchdog);
+
+	return ret;
+}
+
+static int xenhcd_bus_resume(struct usb_hcd *hcd)
+{
+	struct xenhcd_info *info = xenhcd_hcd_to_info(hcd);
+	int ret = 0;
+	int i, ports;
+
+	ports = info->rh_numports;
+
+	spin_lock_irq(&info->lock);
+	if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)) {
+		ret = -ESHUTDOWN;
+	} else {
+		/* resume any suspended ports*/
+		for (i = 1; i <= ports; i++)
+			xenhcd_rhport_resume(info, i);
+	}
+	spin_unlock_irq(&info->lock);
+
+	return ret;
+}
+#endif
+
+static void xenhcd_hub_descriptor(struct xenhcd_info *info,
+				  struct usb_hub_descriptor *desc)
+{
+	__u16 temp;
+	int ports = info->rh_numports;
+
+	desc->bDescriptorType = 0x29;
+	desc->bPwrOn2PwrGood = 10; /* EHCI says 20ms max */
+	desc->bHubContrCurrent = 0;
+	desc->bNbrPorts = ports;
+
+	/* size of DeviceRemovable and PortPwrCtrlMask fields */
+	temp = 1 + (ports / 8);
+	desc->bDescLength = 7 + 2 * temp;
+
+	/* bitmaps for DeviceRemovable and PortPwrCtrlMask */
+	memset(&desc->u.hs.DeviceRemovable[0], 0, temp);
+	memset(&desc->u.hs.DeviceRemovable[temp], 0xff, temp);
+
+	/* per-port over current reporting and no power switching */
+	temp = 0x000a;
+	desc->wHubCharacteristics = cpu_to_le16(temp);
+}
+
+/* port status change mask for hub_status_data */
+#define PORT_C_MASK	((USB_PORT_STAT_C_CONNECTION |		\
+			  USB_PORT_STAT_C_ENABLE |		\
+			  USB_PORT_STAT_C_SUSPEND |		\
+			  USB_PORT_STAT_C_OVERCURRENT |		\
+			  USB_PORT_STAT_C_RESET) << 16)
+
+/*
+ * See USB 2.0 Spec, 11.12.4 Hub and Port Status Change Bitmap.
+ * If port status changed, writes the bitmap to buf and return
+ * that length(number of bytes).
+ * If Nothing changed, return 0.
+ */
+static int xenhcd_hub_status_data(struct usb_hcd *hcd, char *buf)
+{
+	struct xenhcd_info *info = xenhcd_hcd_to_info(hcd);
+	int ports;
+	int i;
+	unsigned long flags;
+	int ret;
+	int changed = 0;
+
+	/* initialize the status to no-changes */
+	ports = info->rh_numports;
+	ret = 1 + (ports / 8);
+	memset(buf, 0, ret);
+
+	spin_lock_irqsave(&info->lock, flags);
+
+	for (i = 0; i < ports; i++) {
+		/* check status for each port */
+		if (info->ports[i].status & PORT_C_MASK) {
+			buf[(i + 1) / 8] |= 1 << (i + 1) % 8;
+			changed = 1;
+		}
+	}
+
+	if ((hcd->state == HC_STATE_SUSPENDED) && (changed == 1))
+		usb_hcd_resume_root_hub(hcd);
+
+	spin_unlock_irqrestore(&info->lock, flags);
+
+	return changed ? ret : 0;
+}
+
+static int xenhcd_hub_control(struct usb_hcd *hcd, __u16 typeReq, __u16 wValue,
+			      __u16 wIndex, char *buf, __u16 wLength)
+{
+	struct xenhcd_info *info = xenhcd_hcd_to_info(hcd);
+	int ports = info->rh_numports;
+	unsigned long flags;
+	int ret = 0;
+	int i;
+	int changed = 0;
+
+	spin_lock_irqsave(&info->lock, flags);
+	switch (typeReq) {
+	case ClearHubFeature:
+		/* ignore this request */
+		break;
+	case ClearPortFeature:
+		if (!wIndex || wIndex > ports)
+			goto error;
+
+		switch (wValue) {
+		case USB_PORT_FEAT_SUSPEND:
+			xenhcd_rhport_resume(info, wIndex);
+			break;
+		case USB_PORT_FEAT_POWER:
+			xenhcd_rhport_power_off(info, wIndex);
+			break;
+		case USB_PORT_FEAT_ENABLE:
+			xenhcd_rhport_disable(info, wIndex);
+			break;
+		case USB_PORT_FEAT_C_CONNECTION:
+			info->ports[wIndex - 1].c_connection = false;
+			fallthrough;
+		default:
+			info->ports[wIndex - 1].status &= ~(1 << wValue);
+			break;
+		}
+		break;
+	case GetHubDescriptor:
+		xenhcd_hub_descriptor(info, (struct usb_hub_descriptor *)buf);
+		break;
+	case GetHubStatus:
+		/* always local power supply good and no over-current exists. */
+		*(__le32 *)buf = cpu_to_le32(0);
+		break;
+	case GetPortStatus:
+		if (!wIndex || wIndex > ports)
+			goto error;
+
+		wIndex--;
+
+		/* resume completion */
+		if (info->ports[wIndex].resuming &&
+		    time_after_eq(jiffies, info->ports[wIndex].timeout)) {
+			info->ports[wIndex].status |=
+				USB_PORT_STAT_C_SUSPEND << 16;
+			info->ports[wIndex].status &= ~USB_PORT_STAT_SUSPEND;
+		}
+
+		/* reset completion */
+		if ((info->ports[wIndex].status & USB_PORT_STAT_RESET) != 0 &&
+		    time_after_eq(jiffies, info->ports[wIndex].timeout)) {
+			info->ports[wIndex].status |=
+				USB_PORT_STAT_C_RESET << 16;
+			info->ports[wIndex].status &= ~USB_PORT_STAT_RESET;
+
+			if (info->devices[wIndex].status !=
+			    USB_STATE_NOTATTACHED) {
+				info->ports[wIndex].status |=
+					USB_PORT_STAT_ENABLE;
+				info->devices[wIndex].status =
+					USB_STATE_DEFAULT;
+			}
+
+			switch (info->devices[wIndex].speed) {
+			case XENUSB_SPEED_LOW:
+				info->ports[wIndex].status |=
+					USB_PORT_STAT_LOW_SPEED;
+				break;
+			case XENUSB_SPEED_HIGH:
+				info->ports[wIndex].status |=
+					USB_PORT_STAT_HIGH_SPEED;
+				break;
+			default:
+				break;
+			}
+		}
+
+		*(__le32 *)buf = cpu_to_le32(info->ports[wIndex].status);
+		break;
+	case SetPortFeature:
+		if (!wIndex || wIndex > ports)
+			goto error;
+
+		switch (wValue) {
+		case USB_PORT_FEAT_POWER:
+			xenhcd_rhport_power_on(info, wIndex);
+			break;
+		case USB_PORT_FEAT_RESET:
+			xenhcd_rhport_reset(info, wIndex);
+			break;
+		case USB_PORT_FEAT_SUSPEND:
+			xenhcd_rhport_suspend(info, wIndex);
+			break;
+		default:
+			if (info->ports[wIndex-1].status & USB_PORT_STAT_POWER)
+				info->ports[wIndex-1].status |= (1 << wValue);
+		}
+		break;
+
+	case SetHubFeature:
+		/* not supported */
+	default:
+error:
+		ret = -EPIPE;
+	}
+	spin_unlock_irqrestore(&info->lock, flags);
+
+	/* check status for each port */
+	for (i = 0; i < ports; i++) {
+		if (info->ports[i].status & PORT_C_MASK)
+			changed = 1;
+	}
+	if (changed)
+		usb_hcd_poll_rh_status(hcd);
+
+	return ret;
+}
+
+static void xenhcd_free_urb_priv(struct urb_priv *urbp)
+{
+	urbp->urb->hcpriv = NULL;
+	kmem_cache_free(xenhcd_urbp_cachep, urbp);
+}
+
+static inline unsigned int xenhcd_get_id_from_freelist(struct xenhcd_info *info)
+{
+	unsigned int free;
+
+	free = info->shadow_free;
+	info->shadow_free = info->shadow[free].req.id;
+	info->shadow[free].req.id = 0x0fff; /* debug */
+	return free;
+}
+
+static inline void xenhcd_add_id_to_freelist(struct xenhcd_info *info,
+					     unsigned int id)
+{
+	info->shadow[id].req.id	= info->shadow_free;
+	info->shadow[id].urb = NULL;
+	info->shadow_free = id;
+}
+
+static inline int xenhcd_count_pages(void *addr, int length)
+{
+	unsigned long vaddr = (unsigned long)addr;
+
+	return PFN_UP(vaddr + length) - PFN_DOWN(vaddr);
+}
+
+static void xenhcd_gnttab_map(struct xenhcd_info *info, void *addr, int length,
+			      grant_ref_t *gref_head,
+			      struct xenusb_request_segment *seg,
+			      int nr_pages, int flags)
+{
+	grant_ref_t ref;
+	unsigned long buffer_mfn;
+	unsigned int offset;
+	unsigned int len = length;
+	unsigned int bytes;
+	int i;
+
+	for (i = 0; i < nr_pages; i++) {
+		buffer_mfn = PFN_DOWN(arbitrary_virt_to_machine(addr).maddr);
+		offset = offset_in_page(addr);
+
+		bytes = PAGE_SIZE - offset;
+		if (bytes > len)
+			bytes = len;
+
+		ref = gnttab_claim_grant_reference(gref_head);
+		gnttab_grant_foreign_access_ref(ref, info->xbdev->otherend_id,
+						buffer_mfn, flags);
+		seg[i].gref = ref;
+		seg[i].offset = (__u16)offset;
+		seg[i].length = (__u16)bytes;
+
+		addr += bytes;
+		len -= bytes;
+	}
+}
+
+static __u32 xenhcd_pipe_urb_to_xenusb(__u32 urb_pipe, __u8 port)
+{
+	static __u32 pipe;
+
+	pipe = usb_pipedevice(urb_pipe) << XENUSB_PIPE_DEV_SHIFT;
+	pipe |= usb_pipeendpoint(urb_pipe) << XENUSB_PIPE_EP_SHIFT;
+	if (usb_pipein(urb_pipe))
+		pipe |= XENUSB_PIPE_DIR;
+	switch (usb_pipetype(urb_pipe)) {
+	case PIPE_ISOCHRONOUS:
+		pipe |= XENUSB_PIPE_TYPE_ISOC << XENUSB_PIPE_TYPE_SHIFT;
+		break;
+	case PIPE_INTERRUPT:
+		pipe |= XENUSB_PIPE_TYPE_INT << XENUSB_PIPE_TYPE_SHIFT;
+		break;
+	case PIPE_CONTROL:
+		pipe |= XENUSB_PIPE_TYPE_CTRL << XENUSB_PIPE_TYPE_SHIFT;
+		break;
+	case PIPE_BULK:
+		pipe |= XENUSB_PIPE_TYPE_BULK << XENUSB_PIPE_TYPE_SHIFT;
+		break;
+	}
+	pipe = xenusb_setportnum_pipe(pipe, port);
+
+	return pipe;
+}
+
+static int xenhcd_map_urb_for_request(struct xenhcd_info *info, struct urb *urb,
+				      struct xenusb_urb_request *req)
+{
+	grant_ref_t gref_head;
+	int nr_buff_pages = 0;
+	int nr_isodesc_pages = 0;
+	int nr_grants = 0;
+
+	if (urb->transfer_buffer_length) {
+		nr_buff_pages = xenhcd_count_pages(urb->transfer_buffer,
+						urb->transfer_buffer_length);
+
+		if (usb_pipeisoc(urb->pipe))
+			nr_isodesc_pages = xenhcd_count_pages(
+				&urb->iso_frame_desc[0],
+				sizeof(struct usb_iso_packet_descriptor) *
+				urb->number_of_packets);
+
+		nr_grants = nr_buff_pages + nr_isodesc_pages;
+		if (nr_grants > XENUSB_MAX_SEGMENTS_PER_REQUEST) {
+			pr_err("xenhcd: error: %d grants\n", nr_grants);
+			return -E2BIG;
+		}
+
+		if (gnttab_alloc_grant_references(nr_grants, &gref_head)) {
+			pr_err("xenhcd: gnttab_alloc_grant_references() error\n");
+			return -ENOMEM;
+		}
+
+		xenhcd_gnttab_map(info, urb->transfer_buffer,
+				  urb->transfer_buffer_length, &gref_head,
+				  &req->seg[0], nr_buff_pages,
+				  usb_pipein(urb->pipe) ? 0 : GTF_readonly);
+	}
+
+	req->pipe = xenhcd_pipe_urb_to_xenusb(urb->pipe, urb->dev->portnum);
+	req->transfer_flags = 0;
+	if (urb->transfer_flags & URB_SHORT_NOT_OK)
+		req->transfer_flags |= XENUSB_SHORT_NOT_OK;
+	req->buffer_length = urb->transfer_buffer_length;
+	req->nr_buffer_segs = nr_buff_pages;
+
+	switch (usb_pipetype(urb->pipe)) {
+	case PIPE_ISOCHRONOUS:
+		req->u.isoc.interval = urb->interval;
+		req->u.isoc.start_frame = urb->start_frame;
+		req->u.isoc.number_of_packets = urb->number_of_packets;
+		req->u.isoc.nr_frame_desc_segs = nr_isodesc_pages;
+
+		xenhcd_gnttab_map(info, &urb->iso_frame_desc[0],
+				  sizeof(struct usb_iso_packet_descriptor) *
+				  urb->number_of_packets,
+				  &gref_head, &req->seg[nr_buff_pages],
+				  nr_isodesc_pages, 0);
+		break;
+	case PIPE_INTERRUPT:
+		req->u.intr.interval = urb->interval;
+		break;
+	case PIPE_CONTROL:
+		if (urb->setup_packet)
+			memcpy(req->u.ctrl, urb->setup_packet, 8);
+		break;
+	case PIPE_BULK:
+		break;
+	default:
+		break;
+	}
+
+	if (nr_grants)
+		gnttab_free_grant_references(gref_head);
+
+	return 0;
+}
+
+static void xenhcd_gnttab_done(struct usb_shadow *shadow)
+{
+	int nr_segs = 0;
+	int i;
+
+	nr_segs = shadow->req.nr_buffer_segs;
+
+	if (xenusb_pipeisoc(shadow->req.pipe))
+		nr_segs += shadow->req.u.isoc.nr_frame_desc_segs;
+
+	for (i = 0; i < nr_segs; i++)
+		gnttab_end_foreign_access(shadow->req.seg[i].gref, 0, 0UL);
+
+	shadow->req.nr_buffer_segs = 0;
+	shadow->req.u.isoc.nr_frame_desc_segs = 0;
+}
+
+static int xenhcd_translate_status(int status)
+{
+	switch (status) {
+	case XENUSB_STATUS_OK:
+		return 0;
+	case XENUSB_STATUS_NODEV:
+		return -ENODEV;
+	case XENUSB_STATUS_INVAL:
+		return -EINVAL;
+	case XENUSB_STATUS_STALL:
+		return -EPIPE;
+	case XENUSB_STATUS_IOERROR:
+		return -EPROTO;
+	case XENUSB_STATUS_BABBLE:
+		return -EOVERFLOW;
+	default:
+		return -ESHUTDOWN;
+	}
+}
+
+static void xenhcd_giveback_urb(struct xenhcd_info *info, struct urb *urb,
+				int status)
+{
+	struct urb_priv *urbp = (struct urb_priv *)urb->hcpriv;
+	int priv_status = urbp->status;
+
+	list_del_init(&urbp->list);
+	xenhcd_free_urb_priv(urbp);
+
+	if (urb->status == -EINPROGRESS)
+		urb->status = xenhcd_translate_status(status);
+
+	spin_unlock(&info->lock);
+	usb_hcd_giveback_urb(xenhcd_info_to_hcd(info), urb,
+			     priv_status <= 0 ? priv_status : urb->status);
+	spin_lock(&info->lock);
+}
+
+static int xenhcd_do_request(struct xenhcd_info *info, struct urb_priv *urbp)
+{
+	struct xenusb_urb_request *req;
+	struct urb *urb = urbp->urb;
+	unsigned int id;
+	int notify;
+	int ret;
+
+	id = xenhcd_get_id_from_freelist(info);
+	req = &info->shadow[id].req;
+	req->id = id;
+
+	if (unlikely(urbp->unlinked)) {
+		req->u.unlink.unlink_id = urbp->req_id;
+		req->pipe = xenusb_setunlink_pipe(xenhcd_pipe_urb_to_xenusb(
+						 urb->pipe, urb->dev->portnum));
+		urbp->unlink_req_id = id;
+	} else {
+		ret = xenhcd_map_urb_for_request(info, urb, req);
+		if (ret) {
+			xenhcd_add_id_to_freelist(info, id);
+			return ret;
+		}
+		urbp->req_id = id;
+	}
+
+	req = RING_GET_REQUEST(&info->urb_ring, info->urb_ring.req_prod_pvt);
+	*req = info->shadow[id].req;
+
+	info->urb_ring.req_prod_pvt++;
+	info->shadow[id].urb = urb;
+
+	RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(&info->urb_ring, notify);
+	if (notify)
+		notify_remote_via_irq(info->irq);
+
+	return 0;
+}
+
+static void xenhcd_kick_pending_urbs(struct xenhcd_info *info)
+{
+	struct urb_priv *urbp;
+
+	while (!list_empty(&info->pending_submit_list)) {
+		if (RING_FULL(&info->urb_ring)) {
+			xenhcd_timer_action(info, TIMER_RING_WATCHDOG);
+			return;
+		}
+
+		urbp = list_entry(info->pending_submit_list.next,
+				  struct urb_priv, list);
+		if (!xenhcd_do_request(info, urbp))
+			list_move_tail(&urbp->list, &info->in_progress_list);
+		else
+			xenhcd_giveback_urb(info, urbp->urb, -ESHUTDOWN);
+	}
+	xenhcd_timer_action_done(info, TIMER_SCAN_PENDING_URBS);
+}
+
+/*
+ * caller must lock info->lock
+ */
+static void xenhcd_cancel_all_enqueued_urbs(struct xenhcd_info *info)
+{
+	struct urb_priv *urbp, *tmp;
+	int req_id;
+
+	list_for_each_entry_safe(urbp, tmp, &info->in_progress_list, list) {
+		req_id = urbp->req_id;
+		if (!urbp->unlinked) {
+			xenhcd_gnttab_done(&info->shadow[req_id]);
+			if (urbp->urb->status == -EINPROGRESS)
+				/* not dequeued */
+				xenhcd_giveback_urb(info, urbp->urb,
+						    -ESHUTDOWN);
+			else	/* dequeued */
+				xenhcd_giveback_urb(info, urbp->urb,
+						    urbp->urb->status);
+		}
+		info->shadow[req_id].urb = NULL;
+	}
+
+	list_for_each_entry_safe(urbp, tmp, &info->pending_submit_list, list)
+		xenhcd_giveback_urb(info, urbp->urb, -ESHUTDOWN);
+}
+
+/*
+ * caller must lock info->lock
+ */
+static void xenhcd_giveback_unlinked_urbs(struct xenhcd_info *info)
+{
+	struct urb_priv *urbp, *tmp;
+
+	list_for_each_entry_safe(urbp, tmp, &info->giveback_waiting_list, list)
+		xenhcd_giveback_urb(info, urbp->urb, urbp->urb->status);
+}
+
+static int xenhcd_submit_urb(struct xenhcd_info *info, struct urb_priv *urbp)
+{
+	int ret;
+
+	if (RING_FULL(&info->urb_ring)) {
+		list_add_tail(&urbp->list, &info->pending_submit_list);
+		xenhcd_timer_action(info, TIMER_RING_WATCHDOG);
+		return 0;
+	}
+
+	if (!list_empty(&info->pending_submit_list)) {
+		list_add_tail(&urbp->list, &info->pending_submit_list);
+		xenhcd_timer_action(info, TIMER_SCAN_PENDING_URBS);
+		return 0;
+	}
+
+	ret = xenhcd_do_request(info, urbp);
+	if (ret == 0)
+		list_add_tail(&urbp->list, &info->in_progress_list);
+
+	return ret;
+}
+
+static int xenhcd_unlink_urb(struct xenhcd_info *info, struct urb_priv *urbp)
+{
+	int ret;
+
+	/* already unlinked? */
+	if (urbp->unlinked)
+		return -EBUSY;
+
+	urbp->unlinked = true;
+
+	/* the urb is still in pending_submit queue */
+	if (urbp->req_id == ~0) {
+		list_move_tail(&urbp->list, &info->giveback_waiting_list);
+		xenhcd_timer_action(info, TIMER_SCAN_PENDING_URBS);
+		return 0;
+	}
+
+	/* send unlink request to backend */
+	if (RING_FULL(&info->urb_ring)) {
+		list_move_tail(&urbp->list, &info->pending_unlink_list);
+		xenhcd_timer_action(info, TIMER_RING_WATCHDOG);
+		return 0;
+	}
+
+	if (!list_empty(&info->pending_unlink_list)) {
+		list_move_tail(&urbp->list, &info->pending_unlink_list);
+		xenhcd_timer_action(info, TIMER_SCAN_PENDING_URBS);
+		return 0;
+	}
+
+	ret = xenhcd_do_request(info, urbp);
+	if (ret == 0)
+		list_move_tail(&urbp->list, &info->in_progress_list);
+
+	return ret;
+}
+
+static int xenhcd_urb_request_done(struct xenhcd_info *info)
+{
+	struct xenusb_urb_response res;
+	struct urb *urb;
+	RING_IDX i, rp;
+	__u16 id;
+	int more_to_do = 0;
+	unsigned long flags;
+
+	spin_lock_irqsave(&info->lock, flags);
+
+	rp = info->urb_ring.sring->rsp_prod;
+	if (RING_RESPONSE_PROD_OVERFLOW(&info->urb_ring, rp)) {
+		xenhcd_set_error(info, "Illegal index on urb-ring");
+		return 0;
+	}
+	rmb(); /* ensure we see queued responses up to "rp" */
+
+	for (i = info->urb_ring.rsp_cons; i != rp; i++) {
+		RING_COPY_RESPONSE(&info->urb_ring, i, &res);
+		id = res.id;
+		if (id >= XENUSB_URB_RING_SIZE) {
+			xenhcd_set_error(info, "Illegal data on urb-ring");
+			continue;
+		}
+
+		if (likely(xenusb_pipesubmit(info->shadow[id].req.pipe))) {
+			xenhcd_gnttab_done(&info->shadow[id]);
+			urb = info->shadow[id].urb;
+			if (likely(urb)) {
+				urb->actual_length = res.actual_length;
+				urb->error_count = res.error_count;
+				urb->start_frame = res.start_frame;
+				xenhcd_giveback_urb(info, urb, res.status);
+			}
+		}
+
+		xenhcd_add_id_to_freelist(info, id);
+	}
+	info->urb_ring.rsp_cons = i;
+
+	if (i != info->urb_ring.req_prod_pvt)
+		RING_FINAL_CHECK_FOR_RESPONSES(&info->urb_ring, more_to_do);
+	else
+		info->urb_ring.sring->rsp_event = i + 1;
+
+	spin_unlock_irqrestore(&info->lock, flags);
+
+	return more_to_do;
+}
+
+static int xenhcd_conn_notify(struct xenhcd_info *info)
+{
+	struct xenusb_conn_response res;
+	struct xenusb_conn_request *req;
+	RING_IDX rc, rp;
+	__u16 id;
+	__u8 portnum, speed;
+	int more_to_do = 0;
+	int notify;
+	int port_changed = 0;
+	unsigned long flags;
+
+	spin_lock_irqsave(&info->lock, flags);
+
+	rc = info->conn_ring.rsp_cons;
+	rp = info->conn_ring.sring->rsp_prod;
+	if (RING_RESPONSE_PROD_OVERFLOW(&info->conn_ring, rp)) {
+		xenhcd_set_error(info, "Illegal index on conn-ring");
+		return 0;
+	}
+	rmb(); /* ensure we see queued responses up to "rp" */
+
+	while (rc != rp) {
+		RING_COPY_RESPONSE(&info->conn_ring, rc, &res);
+		id = res.id;
+		portnum = res.portnum;
+		speed = res.speed;
+		info->conn_ring.rsp_cons = ++rc;
+
+		if (xenhcd_rhport_connect(info, portnum, speed)) {
+			xenhcd_set_error(info, "Illegal data on conn-ring");
+			return 0;
+		}
+
+		if (info->ports[portnum - 1].c_connection)
+			port_changed = 1;
+
+		barrier();
+
+		req = RING_GET_REQUEST(&info->conn_ring,
+				       info->conn_ring.req_prod_pvt);
+		req->id = id;
+		info->conn_ring.req_prod_pvt++;
+	}
+
+	if (rc != info->conn_ring.req_prod_pvt)
+		RING_FINAL_CHECK_FOR_RESPONSES(&info->conn_ring, more_to_do);
+	else
+		info->conn_ring.sring->rsp_event = rc + 1;
+
+	RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(&info->conn_ring, notify);
+	if (notify)
+		notify_remote_via_irq(info->irq);
+
+	spin_unlock_irqrestore(&info->lock, flags);
+
+	if (port_changed)
+		usb_hcd_poll_rh_status(xenhcd_info_to_hcd(info));
+
+	return more_to_do;
+}
+
+static irqreturn_t xenhcd_int(int irq, void *dev_id)
+{
+	struct xenhcd_info *info = (struct xenhcd_info *)dev_id;
+
+	if (unlikely(info->error))
+		return IRQ_HANDLED;
+
+	while (xenhcd_urb_request_done(info) | xenhcd_conn_notify(info))
+		/* Yield point for this unbounded loop. */
+		cond_resched();
+
+	return IRQ_HANDLED;
+}
+
+static void xenhcd_destroy_rings(struct xenhcd_info *info)
+{
+	if (info->irq)
+		unbind_from_irqhandler(info->irq, info);
+	info->irq = 0;
+
+	if (info->urb_ring_ref != GRANT_INVALID_REF) {
+		gnttab_end_foreign_access(info->urb_ring_ref, 0,
+					  (unsigned long)info->urb_ring.sring);
+		info->urb_ring_ref = GRANT_INVALID_REF;
+	}
+	info->urb_ring.sring = NULL;
+
+	if (info->conn_ring_ref != GRANT_INVALID_REF) {
+		gnttab_end_foreign_access(info->conn_ring_ref, 0,
+					  (unsigned long)info->conn_ring.sring);
+		info->conn_ring_ref = GRANT_INVALID_REF;
+	}
+	info->conn_ring.sring = NULL;
+}
+
+static int xenhcd_setup_rings(struct xenbus_device *dev,
+			      struct xenhcd_info *info)
+{
+	struct xenusb_urb_sring *urb_sring;
+	struct xenusb_conn_sring *conn_sring;
+	grant_ref_t gref;
+	int err;
+
+	info->urb_ring_ref = GRANT_INVALID_REF;
+	info->conn_ring_ref = GRANT_INVALID_REF;
+
+	urb_sring = (struct xenusb_urb_sring *)get_zeroed_page(
+							GFP_NOIO | __GFP_HIGH);
+	if (!urb_sring) {
+		xenbus_dev_fatal(dev, -ENOMEM, "allocating urb ring");
+		return -ENOMEM;
+	}
+	SHARED_RING_INIT(urb_sring);
+	FRONT_RING_INIT(&info->urb_ring, urb_sring, PAGE_SIZE);
+
+	err = xenbus_grant_ring(dev, urb_sring, 1, &gref);
+	if (err < 0) {
+		free_page((unsigned long)urb_sring);
+		info->urb_ring.sring = NULL;
+		goto fail;
+	}
+	info->urb_ring_ref = gref;
+
+	conn_sring = (struct xenusb_conn_sring *)get_zeroed_page(
+							GFP_NOIO | __GFP_HIGH);
+	if (!conn_sring) {
+		xenbus_dev_fatal(dev, -ENOMEM, "allocating conn ring");
+		err = -ENOMEM;
+		goto fail;
+	}
+	SHARED_RING_INIT(conn_sring);
+	FRONT_RING_INIT(&info->conn_ring, conn_sring, PAGE_SIZE);
+
+	err = xenbus_grant_ring(dev, conn_sring, 1, &gref);
+	if (err < 0) {
+		free_page((unsigned long)conn_sring);
+		info->conn_ring.sring = NULL;
+		goto fail;
+	}
+	info->conn_ring_ref = gref;
+
+	err = xenbus_alloc_evtchn(dev, &info->evtchn);
+	if (err) {
+		xenbus_dev_fatal(dev, err, "xenbus_alloc_evtchn");
+		goto fail;
+	}
+
+	err = bind_evtchn_to_irq(info->evtchn);
+	if (err <= 0) {
+		xenbus_dev_fatal(dev, err, "bind_evtchn_to_irq");
+		goto fail;
+	}
+
+	info->irq = err;
+
+	err = request_threaded_irq(info->irq, NULL, xenhcd_int,
+				   IRQF_ONESHOT, "xenhcd", info);
+	if (err) {
+		xenbus_dev_fatal(dev, err, "request_threaded_irq");
+		goto free_irq;
+	}
+
+	return 0;
+
+free_irq:
+	unbind_from_irqhandler(info->irq, info);
+fail:
+	xenhcd_destroy_rings(info);
+	return err;
+}
+
+static int xenhcd_talk_to_backend(struct xenbus_device *dev,
+				  struct xenhcd_info *info)
+{
+	const char *message;
+	struct xenbus_transaction xbt;
+	int err;
+
+	err = xenhcd_setup_rings(dev, info);
+	if (err)
+		return err;
+
+again:
+	err = xenbus_transaction_start(&xbt);
+	if (err) {
+		xenbus_dev_fatal(dev, err, "starting transaction");
+		goto destroy_ring;
+	}
+
+	err = xenbus_printf(xbt, dev->nodename, "urb-ring-ref", "%u",
+			    info->urb_ring_ref);
+	if (err) {
+		message = "writing urb-ring-ref";
+		goto abort_transaction;
+	}
+
+	err = xenbus_printf(xbt, dev->nodename, "conn-ring-ref", "%u",
+			    info->conn_ring_ref);
+	if (err) {
+		message = "writing conn-ring-ref";
+		goto abort_transaction;
+	}
+
+	err = xenbus_printf(xbt, dev->nodename, "event-channel", "%u",
+			    info->evtchn);
+	if (err) {
+		message = "writing event-channel";
+		goto abort_transaction;
+	}
+
+	err = xenbus_transaction_end(xbt, 0);
+	if (err) {
+		if (err == -EAGAIN)
+			goto again;
+		xenbus_dev_fatal(dev, err, "completing transaction");
+		goto destroy_ring;
+	}
+
+	return 0;
+
+abort_transaction:
+	xenbus_transaction_end(xbt, 1);
+	xenbus_dev_fatal(dev, err, "%s", message);
+
+destroy_ring:
+	xenhcd_destroy_rings(info);
+
+	return err;
+}
+
+static int xenhcd_connect(struct xenbus_device *dev)
+{
+	struct xenhcd_info *info = dev_get_drvdata(&dev->dev);
+	struct xenusb_conn_request *req;
+	int idx, err;
+	int notify;
+	char name[TASK_COMM_LEN];
+	struct usb_hcd *hcd;
+
+	hcd = xenhcd_info_to_hcd(info);
+	snprintf(name, TASK_COMM_LEN, "xenhcd.%d", hcd->self.busnum);
+
+	err = xenhcd_talk_to_backend(dev, info);
+	if (err)
+		return err;
+
+	/* prepare ring for hotplug notification */
+	for (idx = 0; idx < XENUSB_CONN_RING_SIZE; idx++) {
+		req = RING_GET_REQUEST(&info->conn_ring, idx);
+		req->id = idx;
+	}
+	info->conn_ring.req_prod_pvt = idx;
+
+	RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(&info->conn_ring, notify);
+	if (notify)
+		notify_remote_via_irq(info->irq);
+
+	return 0;
+}
+
+static void xenhcd_disconnect(struct xenbus_device *dev)
+{
+	struct xenhcd_info *info = dev_get_drvdata(&dev->dev);
+	struct usb_hcd *hcd = xenhcd_info_to_hcd(info);
+
+	usb_remove_hcd(hcd);
+	xenbus_frontend_closed(dev);
+}
+
+static void xenhcd_watchdog(struct timer_list *timer)
+{
+	struct xenhcd_info *info = from_timer(info, timer, watchdog);
+	unsigned long flags;
+
+	spin_lock_irqsave(&info->lock, flags);
+	if (likely(HC_IS_RUNNING(xenhcd_info_to_hcd(info)->state))) {
+		xenhcd_timer_action_done(info, TIMER_RING_WATCHDOG);
+		xenhcd_giveback_unlinked_urbs(info);
+		xenhcd_kick_pending_urbs(info);
+	}
+	spin_unlock_irqrestore(&info->lock, flags);
+}
+
+/*
+ * one-time HC init
+ */
+static int xenhcd_setup(struct usb_hcd *hcd)
+{
+	struct xenhcd_info *info = xenhcd_hcd_to_info(hcd);
+
+	spin_lock_init(&info->lock);
+	INIT_LIST_HEAD(&info->pending_submit_list);
+	INIT_LIST_HEAD(&info->pending_unlink_list);
+	INIT_LIST_HEAD(&info->in_progress_list);
+	INIT_LIST_HEAD(&info->giveback_waiting_list);
+	timer_setup(&info->watchdog, xenhcd_watchdog, 0);
+
+	hcd->has_tt = (hcd->driver->flags & HCD_MASK) != HCD_USB11;
+
+	return 0;
+}
+
+/*
+ * start HC running
+ */
+static int xenhcd_run(struct usb_hcd *hcd)
+{
+	hcd->uses_new_polling = 1;
+	clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
+	hcd->state = HC_STATE_RUNNING;
+	return 0;
+}
+
+/*
+ * stop running HC
+ */
+static void xenhcd_stop(struct usb_hcd *hcd)
+{
+	struct xenhcd_info *info = xenhcd_hcd_to_info(hcd);
+
+	del_timer_sync(&info->watchdog);
+	spin_lock_irq(&info->lock);
+	/* cancel all urbs */
+	hcd->state = HC_STATE_HALT;
+	xenhcd_cancel_all_enqueued_urbs(info);
+	xenhcd_giveback_unlinked_urbs(info);
+	spin_unlock_irq(&info->lock);
+}
+
+/*
+ * called as .urb_enqueue()
+ * non-error returns are promise to giveback the urb later
+ */
+static int xenhcd_urb_enqueue(struct usb_hcd *hcd, struct urb *urb,
+			      gfp_t mem_flags)
+{
+	struct xenhcd_info *info = xenhcd_hcd_to_info(hcd);
+	struct urb_priv *urbp;
+	unsigned long flags;
+	int ret;
+
+	if (unlikely(info->error))
+		return -ESHUTDOWN;
+
+	urbp = kmem_cache_zalloc(xenhcd_urbp_cachep, mem_flags);
+	if (!urbp)
+		return -ENOMEM;
+
+	spin_lock_irqsave(&info->lock, flags);
+
+	urbp->urb = urb;
+	urb->hcpriv = urbp;
+	urbp->req_id = ~0;
+	urbp->unlink_req_id = ~0;
+	INIT_LIST_HEAD(&urbp->list);
+	urbp->status = 1;
+	urb->unlinked = false;
+
+	ret = xenhcd_submit_urb(info, urbp);
+
+	if (ret)
+		xenhcd_free_urb_priv(urbp);
+
+	spin_unlock_irqrestore(&info->lock, flags);
+
+	return ret;
+}
+
+/*
+ * called as .urb_dequeue()
+ */
+static int xenhcd_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
+{
+	struct xenhcd_info *info = xenhcd_hcd_to_info(hcd);
+	struct urb_priv *urbp;
+	unsigned long flags;
+	int ret = 0;
+
+	spin_lock_irqsave(&info->lock, flags);
+
+	urbp = urb->hcpriv;
+	if (urbp) {
+		urbp->status = status;
+		ret = xenhcd_unlink_urb(info, urbp);
+	}
+
+	spin_unlock_irqrestore(&info->lock, flags);
+
+	return ret;
+}
+
+/*
+ * called from usb_get_current_frame_number(),
+ * but, almost all drivers not use such function.
+ */
+static int xenhcd_get_frame(struct usb_hcd *hcd)
+{
+	/* it means error, but probably no problem :-) */
+	return 0;
+}
+
+static struct hc_driver xenhcd_usb20_hc_driver = {
+	.description = "xen-hcd",
+	.product_desc = "Xen USB2.0 Virtual Host Controller",
+	.hcd_priv_size = sizeof(struct xenhcd_info),
+	.flags = HCD_USB2,
+
+	/* basic HC lifecycle operations */
+	.reset = xenhcd_setup,
+	.start = xenhcd_run,
+	.stop = xenhcd_stop,
+
+	/* managing urb I/O */
+	.urb_enqueue = xenhcd_urb_enqueue,
+	.urb_dequeue = xenhcd_urb_dequeue,
+	.get_frame_number = xenhcd_get_frame,
+
+	/* root hub operations */
+	.hub_status_data = xenhcd_hub_status_data,
+	.hub_control = xenhcd_hub_control,
+#ifdef CONFIG_PM
+	.bus_suspend = xenhcd_bus_suspend,
+	.bus_resume = xenhcd_bus_resume,
+#endif
+};
+
+static struct hc_driver xenhcd_usb11_hc_driver = {
+	.description = "xen-hcd",
+	.product_desc = "Xen USB1.1 Virtual Host Controller",
+	.hcd_priv_size = sizeof(struct xenhcd_info),
+	.flags = HCD_USB11,
+
+	/* basic HC lifecycle operations */
+	.reset = xenhcd_setup,
+	.start = xenhcd_run,
+	.stop = xenhcd_stop,
+
+	/* managing urb I/O */
+	.urb_enqueue = xenhcd_urb_enqueue,
+	.urb_dequeue = xenhcd_urb_dequeue,
+	.get_frame_number = xenhcd_get_frame,
+
+	/* root hub operations */
+	.hub_status_data = xenhcd_hub_status_data,
+	.hub_control = xenhcd_hub_control,
+#ifdef CONFIG_PM
+	.bus_suspend = xenhcd_bus_suspend,
+	.bus_resume = xenhcd_bus_resume,
+#endif
+};
+
+static struct usb_hcd *xenhcd_create_hcd(struct xenbus_device *dev)
+{
+	int i;
+	int err = 0;
+	int num_ports;
+	int usb_ver;
+	struct usb_hcd *hcd = NULL;
+	struct xenhcd_info *info;
+
+	err = xenbus_scanf(XBT_NIL, dev->otherend, "num-ports", "%d",
+			   &num_ports);
+	if (err != 1) {
+		xenbus_dev_fatal(dev, err, "reading num-ports");
+		return ERR_PTR(-EINVAL);
+	}
+	if (num_ports < 1 || num_ports > XENUSB_MAX_PORTNR) {
+		xenbus_dev_fatal(dev, err, "invalid num-ports");
+		return ERR_PTR(-EINVAL);
+	}
+
+	err = xenbus_scanf(XBT_NIL, dev->otherend, "usb-ver", "%d", &usb_ver);
+	if (err != 1) {
+		xenbus_dev_fatal(dev, err, "reading usb-ver");
+		return ERR_PTR(-EINVAL);
+	}
+	switch (usb_ver) {
+	case XENUSB_VER_USB11:
+		hcd = usb_create_hcd(&xenhcd_usb11_hc_driver, &dev->dev,
+				     dev_name(&dev->dev));
+		break;
+	case XENUSB_VER_USB20:
+		hcd = usb_create_hcd(&xenhcd_usb20_hc_driver, &dev->dev,
+				     dev_name(&dev->dev));
+		break;
+	default:
+		xenbus_dev_fatal(dev, err, "invalid usb-ver");
+		return ERR_PTR(-EINVAL);
+	}
+	if (!hcd) {
+		xenbus_dev_fatal(dev, err,
+				 "fail to allocate USB host controller");
+		return ERR_PTR(-ENOMEM);
+	}
+
+	info = xenhcd_hcd_to_info(hcd);
+	info->xbdev = dev;
+	info->rh_numports = num_ports;
+
+	for (i = 0; i < XENUSB_URB_RING_SIZE; i++) {
+		info->shadow[i].req.id = i + 1;
+		info->shadow[i].urb = NULL;
+	}
+	info->shadow[XENUSB_URB_RING_SIZE - 1].req.id = 0x0fff;
+
+	return hcd;
+}
+
+static void xenhcd_backend_changed(struct xenbus_device *dev,
+				   enum xenbus_state backend_state)
+{
+	switch (backend_state) {
+	case XenbusStateInitialising:
+	case XenbusStateReconfiguring:
+	case XenbusStateReconfigured:
+	case XenbusStateUnknown:
+		break;
+
+	case XenbusStateInitWait:
+	case XenbusStateInitialised:
+	case XenbusStateConnected:
+		if (dev->state != XenbusStateInitialising)
+			break;
+		if (!xenhcd_connect(dev))
+			xenbus_switch_state(dev, XenbusStateConnected);
+		break;
+
+	case XenbusStateClosed:
+		if (dev->state == XenbusStateClosed)
+			break;
+		fallthrough;	/* Missed the backend's Closing state. */
+	case XenbusStateClosing:
+		xenhcd_disconnect(dev);
+		break;
+
+	default:
+		xenbus_dev_fatal(dev, -EINVAL, "saw state %d at frontend",
+				 backend_state);
+		break;
+	}
+}
+
+static int xenhcd_remove(struct xenbus_device *dev)
+{
+	struct xenhcd_info *info = dev_get_drvdata(&dev->dev);
+	struct usb_hcd *hcd = xenhcd_info_to_hcd(info);
+
+	xenhcd_destroy_rings(info);
+	usb_put_hcd(hcd);
+
+	return 0;
+}
+
+static int xenhcd_probe(struct xenbus_device *dev,
+			const struct xenbus_device_id *id)
+{
+	int err;
+	struct usb_hcd *hcd;
+	struct xenhcd_info *info;
+
+	if (usb_disabled())
+		return -ENODEV;
+
+	hcd = xenhcd_create_hcd(dev);
+	if (IS_ERR(hcd)) {
+		err = PTR_ERR(hcd);
+		xenbus_dev_fatal(dev, err,
+				 "fail to create usb host controller");
+		return err;
+	}
+
+	info = xenhcd_hcd_to_info(hcd);
+	dev_set_drvdata(&dev->dev, info);
+
+	err = usb_add_hcd(hcd, 0, 0);
+	if (err) {
+		xenbus_dev_fatal(dev, err, "fail to add USB host controller");
+		usb_put_hcd(hcd);
+		dev_set_drvdata(&dev->dev, NULL);
+	}
+
+	return err;
+}
+
+static const struct xenbus_device_id xenhcd_ids[] = {
+	{ "vusb" },
+	{ "" },
+};
+
+static struct xenbus_driver xenhcd_driver = {
+	.ids			= xenhcd_ids,
+	.probe			= xenhcd_probe,
+	.otherend_changed	= xenhcd_backend_changed,
+	.remove			= xenhcd_remove,
+};
+
+static int __init xenhcd_init(void)
+{
+	if (!xen_domain())
+		return -ENODEV;
+
+	xenhcd_urbp_cachep = kmem_cache_create("xenhcd_urb_priv",
+					sizeof(struct urb_priv), 0, 0, NULL);
+	if (!xenhcd_urbp_cachep) {
+		pr_err("xenhcd failed to create kmem cache\n");
+		return -ENOMEM;
+	}
+
+	return xenbus_register_frontend(&xenhcd_driver);
+}
+module_init(xenhcd_init);
+
+static void __exit xenhcd_exit(void)
+{
+	kmem_cache_destroy(xenhcd_urbp_cachep);
+	xenbus_unregister_driver(&xenhcd_driver);
+}
+module_exit(xenhcd_exit);
+
+MODULE_ALIAS("xen:vusb");
+MODULE_AUTHOR("Juergen Gross <jgross@suse.com>");
+MODULE_DESCRIPTION("Xen USB Virtual Host Controller driver (xen-hcd)");
+MODULE_LICENSE("Dual BSD/GPL");
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 13:39:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 13:39:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229601.397036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpW0j-000600-Iw; Tue, 23 Nov 2021 13:39:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229601.397036; Tue, 23 Nov 2021 13:39:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpW0j-0005zt-G5; Tue, 23 Nov 2021 13:39:01 +0000
Received: by outflank-mailman (input) for mailman id 229601;
 Tue, 23 Nov 2021 13:39:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dRhM=QK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpW0h-0005zm-VG
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 13:38:59 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5d8fa44-4c62-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 14:38:58 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2052.outbound.protection.outlook.com [104.47.6.52]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-5-myyWeEvmPUedwNXvR-SHEA-1; Tue, 23 Nov 2021 14:38:57 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 13:38:55 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 13:38:55 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR03CA0019.eurprd03.prod.outlook.com (2603:10a6:20b:130::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Tue, 23 Nov 2021 13:38:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5d8fa44-4c62-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637674738;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=G8kYQyS6pVo8D9mWsDVVuAw5dww1IukbEx6tDtxm1kU=;
	b=S3higBUoFGSjw4XAb4GJl0xcKz+RBc5OzPa9JDVjyi7F+RufTIaQHuLbOHrqBuBsvh2gF6
	7otduiy5UpLL8GMg9rVi9WxAAejMDURJPFkAoFEZRBzyHBoMnvUf112SbaCbBL8VOW+aaM
	kp5x3FSD9F/jXkeXRWLcyxRYO8f3V6c=
X-MC-Unique: myyWeEvmPUedwNXvR-SHEA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ePjKaTlKKnmx6n7tHb7x0Dk9OoJw3mtwRJoSyWEoH5jwClaca/k1CHWShiMpt29zj1iXyyQ86Vy7OaI0ABiDFi7aXWXj5wwxm0fPCrzyjEUTtTfd8jFmL+mFTJYmBNY0w3rtVYHnBc3I4nLqkxSseQ2WrMLwZdFOCDtOXHUigKBrdSqbkN/YIz70BqpLLQ2YStPSTaCuxjwedDMhL84jly0piwJ3tDtWuFIidnv+OiJftfN51DGf08hh4Nfne4NpEyKCRqRP26+n4MkqnSQgN00cbLQM+oYTyRAjvJRtQFiFRN3hw7yFBQAn7ND5h6VKJdx6XjbyX+fZHnvf/yD17g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=G8kYQyS6pVo8D9mWsDVVuAw5dww1IukbEx6tDtxm1kU=;
 b=GBLHlQFynVvWfZovl/8F+KS63oT0CUYytmQKghHw6ajKVv4GLRLgFaEH4QrRUCuV1TlDEL9Uee2CE96fHai8RVFN+uLEZ3oUUG3ByhTOB0eQNihcv/hTxcm9CneIJfKAR+M9Sys3VeS9B3z0DFEziowXiAzQv5HZARO5/g4AJErkS47u5gWA+1fl3+5oS5sSlyPqb0rl07GDNZB9c3pdiB57D6WF8xZyM+WpcZRFzNmaHhU5q/hhfIznf6evs4vZd+DOaptJAn7awMhIR/4htEdtC8eNTE6UlChlgaM/HfPgFP+FGhtIzF1NYLduTFBm/FcRCK1JPgrOtefdJrl+Ww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
Date: Tue, 23 Nov 2021 14:38:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/3] VT-d: further small corrections
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM7PR03CA0019.eurprd03.prod.outlook.com
 (2603:10a6:20b:130::29) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1a9151d6-0a03-4180-1edf-08d9ae86980a
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB532560D672B7B1F947F7E676B3609@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1247;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	SrNbP6XV14q04ombJRiBj7rU5xLAW4ZYPuV1zmnpv8DpUhiziyCxoFsR0mhC3dPv00+TCuivQwt2rgP50caGFnrcplHitgtXDdFAI7qxA4/vc9cMJbV/Dt+kxwDzJqnv+eEBPZ0d++alQbOjwYYD9jt7ittu58mStQn2rBHABdJqd6OQqLtJxFRW7Sl46e3dmof1Nft2mNW/11L8zR3dz9rhUWHo/MDQbRUgfBZIJ8DfneGwB5eNu94VPIkmTFOjtRj3r7b/3oNOeh3BiGuamQ3WPcZWAOX7PXPs5Lul1UZffuf22+iLLB60sWFwWGpAjoKhsZOW6IwD0XKYbXRf9xmPMRav88gbh7G0v+LSqk+I0Z8wcwl/gKVeBtJsC3QVoDjGz/5rImyJSHIIpuAst7MqE6Zdc4AeGlSFmYphx5cRlGcP8o7xZSWlwtHHFG+jQb+59+GI3T1bD39kIObsC6fMnbmPD0MABbAHOYCCgfHbp+yR3wgFwZIUJ3u4T2QkpS7To3fhqPwLBt1DgcJd250TyoU5NkfrZMkty61c7Ist6Jwh7aa7i0+kYnzeE61JpZ8Nghc2V5NyBWe5tmWveYNbbWIv651VwG/6n1x1kuksX2468abU7fZaWCtXzJbkNAxvAqbQLfVZpChuwM9RK9CfD/xSMks/zyo4bmMzC1mVgWiPseVbS4QvQ4o8I6CZce2t+UkIy2jLL5AjZvFZdNSyzZY6afFAGCl6kW0/Lhk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(2616005)(66476007)(4326008)(2906002)(6916009)(558084003)(36756003)(316002)(66946007)(6486002)(186003)(16576012)(31696002)(5660300002)(508600001)(8936002)(38100700002)(26005)(8676002)(66556008)(31686004)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c2NFQUJoc2lYNlMvK01iMEpXRmZUNFdheXIvNGZFZmxDcEoyWTNHbVNCTldD?=
 =?utf-8?B?c0xOeXdqb0Zwa1l3dnQxMUVFNTJTTUdMVklCekU1NnpDNWtieHF6ZzhDUnVM?=
 =?utf-8?B?Q3FqWFhTV3JXWjBITHArSm4raGRwUW1TUTUwdXhhajJ4Rjd2cUpJNWhJRXNm?=
 =?utf-8?B?N2p5dUZ6cWtHL2NSVUI2bmUwM3lJYjRQVWhEblB3OVFURnpjZFhNaVhtNWxB?=
 =?utf-8?B?UTZQWHpEMVVpeWJPdldNV3ZlbldhWlpvTjFjOEVRV3BvOStsOW9vbndsaWhH?=
 =?utf-8?B?Tm96YTlObmZsYzJjNnE4Qmh6NndpdGVVRCsrSUtXRXI1UlFWTm11UytobGt0?=
 =?utf-8?B?SVFyejg5N3pBN2hLOVU5bmVGQkduMmZSQmtvaTB6TjYwd3JJNjcxNmdCMWY4?=
 =?utf-8?B?MFladkpFa2J1ZGZnYTlZcTRWK1ExaW5ydldDSThNUDUzWFhycmpLSUc0ZEJk?=
 =?utf-8?B?cjkvT29UeXJTcWdySjMxSThZTW9wOTNScTVGZHBrSElEVG43ZGxPZW9ST1R0?=
 =?utf-8?B?Ym5ITno4OUFHMWd1ZkZxM3dUdmZoNHRsbmVnR1lsNWtndTUvbWFjd1Axb3hZ?=
 =?utf-8?B?UWRzMkZOTWVLWldQeHBuRm9qUHJ0YXFnQ1dEbXlJTkthWW5zVnozazY3d3du?=
 =?utf-8?B?U1ZrcWQ0L0ZTaXVIa3RaTk9RSUwvSW9YQzNNMVRjVGhMcVlTU2F1ZEtUb3dS?=
 =?utf-8?B?bUREa1NVK21vc3llN0w2MllFbDBIOFU1TERFZEZLYUlOZjB3K01FbGExamFt?=
 =?utf-8?B?a1pQRjhhZ2g1S2l4ajdKTUZNeGxnUEtWQ0swUklsbmZiTE9XeXJpNmtxQjJG?=
 =?utf-8?B?akxSYlM5Z3d2OG1EZkdOQ3Y4d2ttM2owZTFZV1Q2N2tkaHZJMnkwQ3ZnVisx?=
 =?utf-8?B?RGpWOVpDV21WVXZZRnl0eHRTTEFTdnpCckc3dDJVaTFWR0pPd05RK1lhUGtC?=
 =?utf-8?B?MVZtYzRKcGZadzRiNnIvMXBsSkVoN2drUUNnOUhUVUlYcjdWVWFjT21Pam4y?=
 =?utf-8?B?dm9ZWm1KWmxqT2QvSzRyV0NVR0xOb2hPRnlTOHYwQ2xpSHdYbjRPNCtrWHIv?=
 =?utf-8?B?MzJIamxUQUF2OXR3aUlSWkIvbm1oMWdRKzc3ZHdZNGVudjNDQzFwTkhCTGhB?=
 =?utf-8?B?WFNlaDB0UVJuc0MreERXV3MrL3NVK0dkNGhYTmNuTlhXVU9lUk1zamQwd1ZN?=
 =?utf-8?B?TUNwd0xONDNXS3A5MWJMdzJSM0lRS1NwU0tTQ2RJTnlSY1JRZi90eUtRcjhP?=
 =?utf-8?B?c0RrUzR5bDk3T09xU0lGandtdEx1a2JLeHVHd05reEJPZ2hVanFmVWRVak04?=
 =?utf-8?B?VzRwU3BnRGptSUtkM25HRE9ESEhyVWdGbnhBV1I2ZHBTSEcycUt4c2YyWmt6?=
 =?utf-8?B?YnY2bGdnT3h4N2xXYS9IMlpBaFlSOHZsb3RwVENjVDF1b0NXdjBiWDZPY1l5?=
 =?utf-8?B?ZmNNZEloc25FcmxVR3QyRU53czdHTHovT0srS2FmcjJwVEs5eUt1b2htSU9u?=
 =?utf-8?B?ekJERlFjazhvSFZ1VUFSUmIxWHZvc0FBemxhdXVYenhobmFxTFJPbnRPWTFt?=
 =?utf-8?B?TDVrTjdDeUszaWJHbEdXajlPdUFjcmF5MC9ZUWZHaXFnNXJ4NThycWJyWE5w?=
 =?utf-8?B?TkMxM2lTTXM1Q3NnU0JhV3ZKREgvUHNHL1FacFdsazBHUFYzL0wvTTQ3bWhF?=
 =?utf-8?B?VE1nOTVLN2p6SnVBMFZkYUh5cEhFLzdYcHpqMm9MajBENVdCOHF1L1o2S2g0?=
 =?utf-8?B?eUU1QmU3WGx1Wm1mcktERG1nbXdDRkY2bUJrd2ZwYXpXazN2djJxWEpQS2dM?=
 =?utf-8?B?OEt6VGczbTJ1RzE0WWxyRnp6UkFENk85RkpJWkZHWWcvZFVZYzdpRlZoNk5G?=
 =?utf-8?B?S1lhdG44V05vM2lRVmUvUjZ6NFZmNVVLV0RDVVp0TS9RemkydTN4WUlzY0lq?=
 =?utf-8?B?SGlVK0R5Mkl2V1dpQjVtOG95OUZMeXZuS2FEemcwZVA0b0VTYWFRRkRSdld2?=
 =?utf-8?B?dFdONCs0emhsTDhzeTVxc2NNeWhHZ0l6NEtaRDczV0hWSnluV1VGbTViMVV4?=
 =?utf-8?B?Mk9xbmFBVW5XZkw5VGRHMThYQVI2QTJJdU1nZVF3SzN5SHFzb3orSlhoNGVI?=
 =?utf-8?B?YVZjQlIyMXE1c3ZZRUYxRXFMajd5bm9JNDQrSGNwRDVHY2VWVDZUV0pFZjRB?=
 =?utf-8?Q?G6e0aoFSCaXZ8OA+Pir0wFg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a9151d6-0a03-4180-1edf-08d9ae86980a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 13:38:55.0815
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FFXXGI7HZb2bPoTkE0cECK9FOZmaIFNTrrV02TTDk8LNpEr22sEI7GPKV8FpkYMow7rdyHWKstgK9CQ+QQUw7w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

1: prune SAGAW recognition
2: correct off-by-1 in fault register range check
3: conditionalize IOTLB register offset check

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 13:39:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 13:39:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229605.397048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpW1Q-0006Wj-Vr; Tue, 23 Nov 2021 13:39:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229605.397048; Tue, 23 Nov 2021 13:39:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpW1Q-0006Wc-RD; Tue, 23 Nov 2021 13:39:44 +0000
Received: by outflank-mailman (input) for mailman id 229605;
 Tue, 23 Nov 2021 13:39:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dRhM=QK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpW1O-0005zm-Tu
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 13:39:43 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cfeb60e2-4c62-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 14:39:42 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2057.outbound.protection.outlook.com [104.47.6.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-37-q3U3v-FHOwame6kRf4RtIA-1; Tue, 23 Nov 2021 14:39:40 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 13:39:39 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 13:39:39 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR03CA0028.eurprd03.prod.outlook.com (2603:10a6:20b:130::38) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Tue, 23 Nov 2021 13:39:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cfeb60e2-4c62-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637674781;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=kTVWcpgaN5RHhZXfVu5ub8/JYsiP0odQFTntwSRApa0=;
	b=CyebUsNnAxyqypaB3P+Q8DfK2Jf1OrGLSjcV/5iStJD99epD8dHXAOfzAYa6qv5TOd8lvS
	Ksdaio6NO/5XmsethlD/kmedL3xppZeUcBYZggdo01PbIqmk0RQz3WsfrLmgX/8Q6hkW2O
	EQnIEF6SkdBh00q1ANsq49kdUYtco5k=
X-MC-Unique: q3U3v-FHOwame6kRf4RtIA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=B8j9p7I8Wx84jFOj2U8bcWWNLUrr6LbvIXfypckMNEFZ78qZ665pHshKVYxAjRHOv3gDqbxRXyFQzgPf0QEkhFGPHhXvKb4KsQ6JxNxVZUGJ6bzH3n49QJwbWI8UCSnyRyG9WNgbeEtDajYsTwi5MumdqSBxvz3/PAXV4cmmQfIaPKeSf3FoA1UGWEOrlXgsIySwc/A3Xwc4l3ztKW7BcSdDLqih6+Gu7lI8oXNTj0KwXEGG1TXAzXeoOKvc58CzotFOGgb3AXUZHYM8mgTyIJP3YLVEPtbBl2X7WNQEFaM4iOCjPl7xOkUjFj5YqJPP63uhvKu8o1fhQM0KttnK3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kTVWcpgaN5RHhZXfVu5ub8/JYsiP0odQFTntwSRApa0=;
 b=IH2cVGt8Tg6wVdbEgiHhvCcoRCIj5CWZXMUHKO88cXXx96vTEiyAFaQI4p5iv6naNNOM66uALAYz+i9YWQgdZzGFvzCNPiW9rcQEb75Eby0iK4VZ8IGzYKrQjwYmfDv59uOqU5k0Qig1HXRxbC43wrnx2ttY8n54dHPUtXYwR+wzMCKM7sNYZK2mjnsmTrzfekdrvheJqVyWaJNNnJnq8gqZol5aIfSj8ejwSgExEYeisWy2cqrMMuPuiAdOv3rel5OheVfLaugTAqe2gvb5EYHkM57YzqCGO/HDmzLjbsnHh93Y2FPpEmaW0XZo8pmvaZNRMaPt0HSxQ57AGC4ZbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4e801190-ad7e-32da-da87-985e1b6a76bd@suse.com>
Date: Tue, 23 Nov 2021 14:39:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: [PATCH 1/3] VT-d: prune SAGAW recognition
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
References: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
In-Reply-To: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM7PR03CA0028.eurprd03.prod.outlook.com
 (2603:10a6:20b:130::38) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 40a898b2-9ed7-432e-4bb8-08d9ae86b2c0
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5325EA307318B096A068F453B3609@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qYlONdBEQGCbDEHbWLxKS9q0SbDY3xIIzOCwuinob+PlpJ/FNGIbj3RcquBdgvEnbbjeVFeqPiBMANTQxpzkKVGhIQ/rOfEcHR3n/Hh16tmpMAzD8KF+qnspIsy9avSiICaqI4z/AzoH4DWnzFasXECaxzOJTsX50hgsjmhTgsV8Eq6ap3GENgTWAUsMknRa3MXWzwAl3seGeIk9z3LBhDSl6BuVfZBJonBbjgEFxW/DQ/gckIFKNHa4ERnRx84NiMtR5K1NDnAkgHYtROEvNEDsgRqr+wjfqCM7A1q8sH7FhuFOKj3r8mpMneaBz+yKfJk9UdI7hds+9WFhnPuDTYrSg0amGcn8FqH9a6wHIrZHgCbBPAN+WNOCv5lVUYbD+3fGS3mvJm3LCpS+8ThtaJ0dQZWhcuvH+WYiJN5aS3ZdVnUaWWGScQMnf6C7Xod75UR1yWGhQQM4ZIMEEscj6knh8vWyeiUZcmJDXhmbHTjl1ajGb8dzS/ShCWJRmq1BDtiHaNhglPFacOzS3VNXRtn43/o/o+m3QihOJsIMvthngX3ytjJxIlrFmzzjZMxsjwE4lpkJxSEyY3/XTar0QIOHhRvnnnpwGw/+ZVYTSdaHaC5p3NtDsRpILApHBrp0sWezkZJmRkRh/EYU1rDmuqCxXOiS+9Mto9EnBnTfcfFWqWCWNQUC53MMuuim37aaKVW/vVHnBZlb8V5Pvg9UMEMM8t4jf4UKhZbUQabcLBk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(2616005)(66476007)(4326008)(2906002)(6916009)(36756003)(316002)(66946007)(6486002)(186003)(16576012)(31696002)(5660300002)(508600001)(8936002)(38100700002)(26005)(8676002)(66556008)(31686004)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aWxrQVp2MHZaKzRxMHRaK0FJdFVuRHI4bUp4T3JTY1pFYmpjaXlmQWh3SitM?=
 =?utf-8?B?N3h2MXgyT0VxU0RuV3U5NmNKQVlQR21FbEhWV2x4bnRMZEdML0I3dFNkSzlW?=
 =?utf-8?B?TWlUYk50Y000bFk1U3Z6OWRxTDRQcGIvYnl5SjIySVRiRzd0NjJUT2tOQURp?=
 =?utf-8?B?aFUwZmRsUStiQVJqRWJJTk9aVTA3YTlGY3U0N2Vrb1hlQXo5UTZQRWh0WlJZ?=
 =?utf-8?B?WS8wZlQ2ME9zdmZYQmltZEUwU3NwNnFOa3d3cnlKWTZ1dXBsVVpZay9VeGxs?=
 =?utf-8?B?VEE2Z2thTHVlZkZVWDAvVjkzQ3pjNGN0VkZlR0dQZURKNytTQ1NVWHpacmp2?=
 =?utf-8?B?S2tiNlUycXpneDg3bU0rSERiRDBBSElxUTRVWjc3clNTZkVlcFVmNGdOK3B0?=
 =?utf-8?B?ZUpIVWczcGpkVmdyTDE3OWQ3NmpuUHBDS2diRVJRd2hRYjQrMkZSdStvZUJy?=
 =?utf-8?B?bklOMVRTeW5EVjFsSzRtQXE5Wjk3UW8xWFgyNmdyTTc1Szd2cFpsQTBkeUE1?=
 =?utf-8?B?QmJYZExhZzZlNXZUSFlPd2h0VVlCQkw2d25QemU2UmFrNHVES3BxUW9ORkly?=
 =?utf-8?B?MU16U0JyWjMxMnZkS0k3YllkUDlvdFJ3dmxBV25YM1FuUnc4R0ZORVE2RnEx?=
 =?utf-8?B?SGZJNzNVejRMaUVlZ0NRT2JpRDZHVnpvVW5jOHNwOXJFdmhOWHBzQWQyeDFX?=
 =?utf-8?B?a0cwZ3M5dEk3YUtzMTBFRjUrWjlFR2hyRmhleVZ0Z0xlQnliU3hubms4TmZV?=
 =?utf-8?B?bDJrcnlhNXM0TDVKblc0V1BBaWlOKzZOVlBCM0V1NW0xcC92ZnMrRG0vVVZw?=
 =?utf-8?B?RXZUY2liaEMyU2o5eGJ0TEtjdkp0QWhvbjRSbkVHOWlzek4zSnVBbndHV0pG?=
 =?utf-8?B?b01pZXFEZGsxaTY3UEJKZzd3c2JQNE42aGtwU0p1cGg0NFozNTNPKzZ2TGxB?=
 =?utf-8?B?Q2Yxc0oxSkJvUlppTzhPMmRZby85Ymd3dys3UkFTZXc3REEvbGNDcU5HTW5i?=
 =?utf-8?B?QVVSUmx2L2tVOXlYVUFUOEdaWDI5MVpoRkVFYUd0YnJsUGpiOUdKNDdCUmYz?=
 =?utf-8?B?eVpLUHM3dTYyT1REQjJmT01Reks3OFFvdk1CZlhOZTZleS9QY0hmS1BndEVV?=
 =?utf-8?B?bk04UEJHWnQyVWRxbFpFZ296eVF3dDZQNnU4NVVYdXVocTFacE10d1dIUitU?=
 =?utf-8?B?MXVoZHFvTXR4eTRKekY1UVNWUE10ZUdVSDEzUjR6MUF1MjBNV0ZYWmkzdm56?=
 =?utf-8?B?ay8zdTlFbGUxYytiTnRZeHNCR3BXeERLTUowWWk3cTVqTXU2TjNBNlRFSWN6?=
 =?utf-8?B?eG8yaDR3TnY4eGI3TWxnQnpyaTNPTVNxTWVZQ1lVRTc4K0cvQVM2MUlLbjlL?=
 =?utf-8?B?cFhLVG05NE1MallmSE40QmZFZ3lEbHdWeXBBUDlJYjZ1MmM2KzNNbTA0Z3BV?=
 =?utf-8?B?Z0NndFdzNVQ4Z0h5WTJJSElWNmlIaWpHQ1NUK1ZpR1BsSXV1dmE1cU1NMnNJ?=
 =?utf-8?B?MGdqYmdBclBvaFZSNC9vMXRXZ2dRUThZVTNIZi9MUHdlVm8vUzBLWC9oYS96?=
 =?utf-8?B?WUZvc0tPYzZ0VHlqZVBoTm90eERzNlJVakFkU0NQK1Q1TUVua1JFY2w5RHg4?=
 =?utf-8?B?UGlhL29YVUdRRk5YNVVQWlp6SzA3OHhKVnJSZEVaazNmNEUvZWZqTlJxd3Zu?=
 =?utf-8?B?VDl5WW1DdVNDRU9vTlJNbklMcHNwMzJKa21RZXhPUFUrZVdUVWlvTTMvK1lt?=
 =?utf-8?B?Wm4vS1cwOVZZdU5RREE0Q25aZGN2QUN2UkdWdk9LUjN0ZVg0TFBPSzIvTnBG?=
 =?utf-8?B?VUIzVkpyQ1VoY2ZUdUxMeTNrMk9HREQvNXBwdkczdU5rUjl6UTBNYXI1eVRK?=
 =?utf-8?B?U3ZZeCt0WkdLeFpSMDZ0QkdkUnhTdGRhMkp5am4wd2N3K0FFQ1lwdENZVExh?=
 =?utf-8?B?Ly90NXhleCtzZ24wdnZPUW5kbDhFdmkyaTJOQ1hQUDZsT0dndkdCNXpIUUVj?=
 =?utf-8?B?ek5JTFJwZElncVZOWnk0RnN1Zjhkc1VxaG8zV1NTRnArSis0K3BvMi9YV29y?=
 =?utf-8?B?alpTTDJQTSsrOU04NjY2RU11eFRPTEZIYnh3YTBpdHdTZjFDU1J3ZlRFQWJN?=
 =?utf-8?B?NTFyemVrczhoNEdESnBlRnIyM1BWcldoeE9uVjVoVFAzNGFocEdqZ0pOQmw1?=
 =?utf-8?Q?Bwy3Wj6vPtdH9wW0EKefhWU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40a898b2-9ed7-432e-4bb8-08d9ae86b2c0
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 13:39:39.8232
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1KV8phmLh3izguW8uSKD7vJOR8vqIlb3ij7/ZC3BwL2/8XjprNGwtzK1Ec8yEYCDbyrCB8Ynmrm0UGvBlxiyJQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

Bit 0 of the capability register field has become reserved at or before
spec version 2.2. Treat it as such. Replace the effective open-coding of
find_first_set_bit(). Adjust local variable types.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Strictly speaking IOMMUs supporting only 3-level tables ought to result
in guests seeing a suitably reduced physical address width in CPUID.
And then the same would apply to restrictions resulting from MGAW.

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -356,7 +356,7 @@ static uint64_t domain_pgd_maddr(struct
         pgd_maddr = hd->arch.vtd.pgd_maddr;
     }
 
-    /* Skip top levels of page tables for 2- and 3-level DRHDs. */
+    /* Skip top level(s) of page tables for less-than-maximum level DRHDs. */
     for ( agaw = level_to_agaw(4);
           agaw != level_to_agaw(nr_pt_levels);
           agaw-- )
@@ -1183,8 +1183,7 @@ static int __init iommu_set_interrupt(st
 int __init iommu_alloc(struct acpi_drhd_unit *drhd)
 {
     struct vtd_iommu *iommu;
-    unsigned long sagaw, nr_dom;
-    int agaw;
+    unsigned int sagaw, agaw = 0, nr_dom;
 
     iommu = xzalloc(struct vtd_iommu);
     if ( iommu == NULL )
@@ -1237,14 +1236,13 @@ int __init iommu_alloc(struct acpi_drhd_
         return -ENODEV;
     }
 
-    /* Calculate number of pagetable levels: between 2 and 4. */
+    /* Calculate number of pagetable levels: 3 or 4. */
     sagaw = cap_sagaw(iommu->cap);
-    for ( agaw = level_to_agaw(4); agaw >= 0; agaw-- )
-        if ( test_bit(agaw, &sagaw) )
-            break;
-    if ( agaw < 0 )
+    if ( sagaw & 6 )
+        agaw = find_first_set_bit(sagaw & 6);
+    if ( !agaw )
     {
-        printk(XENLOG_ERR VTDPREFIX "IOMMU: unsupported sagaw %lx\n", sagaw);
+        printk(XENLOG_ERR VTDPREFIX "IOMMU: unsupported sagaw %x\n", sagaw);
         print_iommu_regs(drhd);
         return -ENODEV;
     }



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 13:40:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 13:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229609.397059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpW1q-0007lr-9o; Tue, 23 Nov 2021 13:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229609.397059; Tue, 23 Nov 2021 13:40:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpW1q-0007lk-5D; Tue, 23 Nov 2021 13:40:10 +0000
Received: by outflank-mailman (input) for mailman id 229609;
 Tue, 23 Nov 2021 13:40:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dRhM=QK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpW1p-0006K2-24
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 13:40:09 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df5d4ee1-4c62-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 14:40:08 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2050.outbound.protection.outlook.com [104.47.2.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-22-BSAAXH1QNjONoB3pIxpIdg-1; Tue, 23 Nov 2021 14:40:06 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 13:40:05 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 13:40:05 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0020.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::33) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Tue, 23 Nov 2021 13:40:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df5d4ee1-4c62-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637674807;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7UpnXoNN4OOD8dNV51znqRmM214jyttiYXA4qdhkm0s=;
	b=dAni9xxVsWcVuWebXbNYrplFK40Mp2MfgnzKFCu++hvtuyzZXZ7V+YknUzmVuPYUSPHa0K
	gQ1ePoeL7qm5QV2hQthewxUggqXjtnL2V7uW8JGYEORIYyrohld69/uhyr3uVMLLu45/c3
	Vvzc8Xo6m4k9b1cFSC0PMAsEmUJOdYQ=
X-MC-Unique: BSAAXH1QNjONoB3pIxpIdg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Kbs2bI/JfnKfMCpQwEF4YQg4k4MW4uhLmnEkb7zVXApJRQHOnx0qQ6Ewht0kuJuxabtbLXp8xZLI40Bm5DEJxzK1iCmCV+ficfoffhjgrwqJHIYRFec5HM84gW+Q2v0ddNoW9/nBID1x21EBw2E8iEIzKOfVsuXNBCa+mjIBcaNlg1fiOHSHi+WOaMJb1SqJO36wAgRDKOxEDqzAGpGDG7xcdRfg7a03Q8bhVP+JmZme+feHde1P3HaDwm1hDjizgqjm7rnIUi3K/Jwv1yXHgGCIEyh842czyTBOuBIUZhJoo3SP69h/SULxCsJoXin7SkHXoRzWT+KKTH0PspM5eA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7UpnXoNN4OOD8dNV51znqRmM214jyttiYXA4qdhkm0s=;
 b=aPV6ZGQDmhBwY73MeCiBIdoC4qL4PYKtsBFnEO/ClZTM80w1wsBmKQz9tLOpXf3R9ZAwiaYNm1M9x1yGBkpMocKOBMxCNyaJbpnnKG3OgVgQJJ8u24fAfBMsI2F6HikQQytB29iowopvErJO39hIxGhb4PbxvUWJkcJ/jkoqfq6KI1c2lIlQV7wP4zXRVqU8EuOjxb/Bc+8PSxdL088y21/KO+jx1y0SE6b0LJqOSfdbU+5JOP+ZFWjTLEchq3nGkTy7Z83L797hOX0MK2RXEmYysLJLotv69E0D81NnkPnlL/YEETv5bmNk2sP9U4uKxQV38kJwg2s24aOEj5ePkQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c3627c85-916a-40eb-9601-9aba87eaf8ad@suse.com>
Date: Tue, 23 Nov 2021 14:40:03 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: [PATCH 2/3] VT-d: correct off-by-1 in fault register range check
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
References: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
In-Reply-To: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P194CA0020.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:90::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 10cc8ec8-4365-4cf9-493f-08d9ae86c206
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5325FBFD9205EBBC32990BBCB3609@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Wq4TDOz9ITbJYDbXN6cnU9heRTePoDQpA+YgGwqb5V0Kbgopb1ofVQV680mJbfcqO0xjDXAQaEXVnQuREUruh1GrphMbLjSESopBN/1gKoKEMCIMz/PBRwirn8mYNi8cuEvuA5BYLkBAyfqGg2uJsHg5bNeQFAQyIqn2UObBPUllQVIHNpuflVTlA1s4aiwSs7FyeJQMiQ1oxR5/9eGAODolCsiKWnzv+jVkl/hhmVvnzr+UR4MzjjiiKagsVkV6IS67Vh2L6/vnVX9DSRIhu8ojcDzagE/l6Cpd2Oi5QQ+uOa/TaP+I2Z4aXQBcXmG52ncKlS534TGEf1f8tgeWOirK0zs+GxHTO0pcgl5M8eXbKfiUwGzGx0v9iSP1/YopJ6jUiGCuRP+6iqHG/hi0XrlodX9xVLn/QgeW0ISXboDCrWKmoVI7MrP+sw+of4fIW3dvwLueQK0p76ILM68AnkXetZZOj/rxe6BKIIf8NJHlBmkDUKqEk3yOOemrF3jO7AtB/xRDvm7+6lG/tFVasD9nDgGNBGl1ZGnxhmyzy9I4hLEpF1MXmCBtulZFmXEQQwC9DyjGqpjBAVX+BvTpzHQG797rdI/iLYVbbTQ3T/dX/5TLY5FaY0maAUFlx59PECdF4RYaHP10SArL3JtInh5KlqZdQUuWo+aP0BxtpnC5+4ZKZAetN0OuDHnl2YQg381DrUEkaRdo+6iySzC/ETuxD8TNyxX08hSxRh1uHO8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(2616005)(4744005)(66476007)(4326008)(2906002)(6916009)(36756003)(316002)(66946007)(6486002)(186003)(16576012)(31696002)(5660300002)(508600001)(8936002)(38100700002)(26005)(8676002)(66556008)(31686004)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MnpaU3A5WTZ6c0FKT0t2WUkyQWcvR1BQR1lwaXRDUW84RFBlYkdua2p0eUFU?=
 =?utf-8?B?OEJzREIyMmVZZkp5SVZOUmYzM2w1L3Q4bWszN2tnQStyeWFLU1h6Z0g0bDBC?=
 =?utf-8?B?Mitqd0xUQnFUaENXTFRORnE1SmlRbFRzUzFEUGtxNGpuV1pKc1A4V3UyODBr?=
 =?utf-8?B?cy9RNG41Zk9abzBQVEE2VkovMWlDR0I1YmNTY0RJbU5XV2tnWHppbTJEN1E0?=
 =?utf-8?B?VVl3QmI4czJiUEFGcjB5TVQzVHhnNXVXMVdRdzJrRjc4VHNNdXBTVkhWU1o4?=
 =?utf-8?B?MkdxNkFaODlZbkFNSlNmK2hIb2FaYTJ2cWZScW9wVGsyaTlXNGphcjFPZDRP?=
 =?utf-8?B?NXU2bmZyWW1hVWhvVXZ6YWs5OEV6VE9qNHpkNEx1cjdwaG9FOGhrRGtyVVVa?=
 =?utf-8?B?OXRUQXplWjFEaFA3QS9Kc0RGUk5sVWRQcGRTTTJmaDV4dzF2Z3k2S3d5TFZD?=
 =?utf-8?B?VFc1NmdvcGhPQjQwZXFFWW9ZYnkwcEcxWkNWMmVibmRZWnd3T1JTeW5TU3Bz?=
 =?utf-8?B?S0FITWljMjI2Z1FCSVVuSGFUbkJwbGhpbDd6enRRQVlWcHNya2h6aUdrNlVr?=
 =?utf-8?B?ejZyVUVqcXNvMzVOOXRZSmtyZ1U0UmpOZktrN0lpSzgrU1hnR1c1UmR2L0xH?=
 =?utf-8?B?RWp4YURGRS9SMnNlakdPTkFSNUkyTW4wcUc0OFNGT1UyS20zVTBaWDdzemlR?=
 =?utf-8?B?a043OGNkcUljbFpwMjJmK01qeGhMejJzUU5hSmdaZXJucS9VdU5ZMEswY0t3?=
 =?utf-8?B?a0RMZklFYUx1TWxSRjRoU2ZlL2VJWER0eE43Wjd6S0M1QW51RTN3NjV3UHho?=
 =?utf-8?B?Q1haMSt2VzV3c2d0SG05RUpWOFNENzNMblZoYjBQb3NYVjlFcUJqbEY0MmRo?=
 =?utf-8?B?dmcwcUhMTHdSSmZ6WmgxdDE4VHRHbzMxZUUyOWk5M1c3VEtlcDd2aTM0MmM4?=
 =?utf-8?B?R3U4MTBTcEFyTnJGUHd4dDNXU0IxN28za0tua215L2ZRQjI2MTh1NElCakdH?=
 =?utf-8?B?MTFwUUVVQUxHeUVjbEFZN2NHNTF0Mit1ckFVY3pXekxJaVNmU0xGK0FHUEto?=
 =?utf-8?B?QmxQVERaSUQrY3pIN3l5YjlJVWFuelRnZ2JKcHVQSm83bDZER0xTdVNHZlJT?=
 =?utf-8?B?L0pibXBLd3pBQ0tsT1pFSHUycVNiTWJLN3pVSmt2QUUzQWJwMzlIQ0tJM0pE?=
 =?utf-8?B?T2phWE0wUnNTSythZkl6U2pmUkgyb2RzZ3orblgwZWUvcEF4c1FDVFZjL1Qx?=
 =?utf-8?B?VDB1USt0cVczSUp4RWh6NXU2TEIzQm5ybVlVVlVEOFNPZWpkN0d5Y3p3K2NX?=
 =?utf-8?B?ZTEwZWpFTFkvVElVams2bHlySWZuaUhuc3IwWWJYZkpLMjc1eFB4L3RwWkcr?=
 =?utf-8?B?Yk90Z2lUL3htWkFoTTNQTGdySVZBMCtPbHZWMkk0cjBtcE1NdmFvQXFEN0s5?=
 =?utf-8?B?bkE1RGpsOG9HdE13MDJmNERxZ3diL01DVCtZYVZlZUVCWXZwemFhOHBXWHdB?=
 =?utf-8?B?UjdxczlQKzlYaGNiVFZpUGFxZS9xRG94UFE2MGkxRlZYMUxSNlNjZmd1Ry80?=
 =?utf-8?B?ZjcvWGU1UGdWdG52b0lpK0wyWTdYelBtbTJ6NzBtc2U1dkFQZytCdkw0L3FX?=
 =?utf-8?B?cUZyZUtQMUVteWFYbldQbTQ3QkprY2hvczAvM2VUK1BzZldYTjYyanhLbytP?=
 =?utf-8?B?b25rVndzRDcvcHBDQ0VGRmlQa28zTGZpYXF3c3Z0NXRRQUllYXhkakpnKzJp?=
 =?utf-8?B?UFQ3UGc3QTIvN2dOUnZJejJMVSs4TStoUndLNldocEtmMEgrMGdLUkdCV3Uy?=
 =?utf-8?B?S0Y0WHlLU0hYMHRzMEFGRHQxNGNpNXNQdkNHT0M0Zzk2b3BhWWV2N3VST1k5?=
 =?utf-8?B?SlNvK01CaEZCVmMwK0FOdE5vbmREYndnaUpGdTVnOFZoOWx5YjdRd0kyQ1dV?=
 =?utf-8?B?K0ZNZXBSSk1CTHJZN1JHZ0RRWEtBVmFQRW9FOTd6ajd1ZGQ3QmZPTXRXWHhS?=
 =?utf-8?B?eGNONXFwVGR0ZjhGODBIZlZkdk0wTTl0QUluWmxScDV3U0dhTU54UlFKbGFQ?=
 =?utf-8?B?UEE4ckNwcGhLTjhYZmcxZG50dndZWklselFzNkZ0bkhsQjdCT0tJdnZSVlIv?=
 =?utf-8?B?V2lvbjcwbWdnOXJxME05TERVNlBaTm9SK3B1RFJCcnQwZmE1Rkk2d3YvZXZQ?=
 =?utf-8?Q?XzxFe/MMmq/DX8Sn73PQ/Pw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10cc8ec8-4365-4cf9-493f-08d9ae86c206
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 13:40:05.4477
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PMaa9gcJ4vcKR4TExIcAq5j5eySrab3SoeocB9lKRROFEYeMo1RGzLYa/kjd4gK5uU1TGLiy5n5o0aJWRroD2g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

All our present implementation requires is that the range fully fits
in a single page. No need to exclude the case of the last register
extending right to the end of that page.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1229,7 +1229,7 @@ int __init iommu_alloc(struct acpi_drhd_
     quirk_iommu_caps(iommu);
 
     if ( cap_fault_reg_offset(iommu->cap) +
-         cap_num_fault_regs(iommu->cap) * PRIMARY_FAULT_REG_LEN >= PAGE_SIZE ||
+         cap_num_fault_regs(iommu->cap) * PRIMARY_FAULT_REG_LEN > PAGE_SIZE ||
          ecap_iotlb_offset(iommu->ecap) >= PAGE_SIZE )
     {
         printk(XENLOG_ERR VTDPREFIX "IOMMU: unsupported\n");



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 13:40:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 13:40:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229611.397070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpW27-0008IJ-Lm; Tue, 23 Nov 2021 13:40:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229611.397070; Tue, 23 Nov 2021 13:40:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpW27-0008IC-HZ; Tue, 23 Nov 2021 13:40:27 +0000
Received: by outflank-mailman (input) for mailman id 229611;
 Tue, 23 Nov 2021 13:40:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dRhM=QK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpW26-0006K2-5g
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 13:40:26 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9be069d-4c62-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 14:40:25 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2054.outbound.protection.outlook.com [104.47.6.54]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-31-UhAEPmoZM3e6cHHxmmDjGg-1; Tue, 23 Nov 2021 14:40:24 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 13:40:23 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 13:40:23 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0301CA0004.eurprd03.prod.outlook.com (2603:10a6:206:14::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Tue, 23 Nov 2021 13:40:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9be069d-4c62-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637674825;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GlPYVPHHKY0fQf4fXHxR88XAwYQ3msowxF+8PXwpKEI=;
	b=CuVWfBMBTuC27D+2bhQdClmbLCZXg8qZF31ywejirw2oESN5GvYAXMvu7hkMuDEbUGOshu
	EyDp+TtCBIqLFY4gqOv/fU4ZXYqPJsfbKYpHMGzWcl2UfJS6wifhwmLPUtZU+7lV065umf
	IPEnzRtD2en4gFL6fMwpXyz1zzInpso=
X-MC-Unique: UhAEPmoZM3e6cHHxmmDjGg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=e3OXwlBXBA1tw7vEgUymdKuo1o5wqWQciBxJjY/2bke63RZqF7BUb5CjoR3nQlAIPxjWBYEmG+R8U1ValllOgy6iK1zEhDd4Wah8SmdnjkLmrDZHxlEWxhAPvU6BXCI4sg89daJilebanLB3wsnl52jhIp1CK/3HrQ8KQMXjFL0mcCc8xrzchRMOTUcQ5VHAjKICM3IItBfykZ3HoW7jNcp/duiIgAzw9DVTCRrDL2Dtb85IcMzDCmY5B78J/9+NimK4D2IJNMXbDQ8BH8vi1NijgXRUzQPkhC4tu2ChO260dneEwZjbUjTNjUUebhM61b7EsAUuAPWVZjg9ofq0ig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GlPYVPHHKY0fQf4fXHxR88XAwYQ3msowxF+8PXwpKEI=;
 b=krGXBSTXg6qwRPtca0mBQdDsmCbspKtZskIEUMfzOcF3I+8A+tQm2AeTfVSj55zoyCBSyj0kSwd8JF1y343PxzZQT8pgJ2763x7XSTeILvJl7EpHy8YCB6vClsZnr0R6VBHb48meKN2OfqXG6oH6kOfUYKmEpf8SIl+/HYZS3oqQqQO+FCCvDjcnWUaFAtnRKkwelMV6x9OMSo42RSDxh6zgQFYahlbvWQpkoW5qMsdox3i9/rSISvrezXmbW4VA76Hhp6AR5VvvtR/8jJGbNyOavBGKvhbrLu3e/94bCfYyqccr6ME0bDsFBZTsSgFvYLM7YRuRcfr3FVezKxMHGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <63da915f-03dc-f846-3c6b-e90890d1f8fc@suse.com>
Date: Tue, 23 Nov 2021 14:40:22 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: [PATCH 3/3] VT-d: conditionalize IOTLB register offset check
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Kevin Tian <kevin.tian@intel.com>
References: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
In-Reply-To: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0301CA0004.eurprd03.prod.outlook.com
 (2603:10a6:206:14::17) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4b5376d2-ca02-4e53-a250-08d9ae86cccf
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB532552ABF1124674D029219DB3609@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	H4dRqMBCOdhQ4C4FIxDcFqJruA1RgqcaI59PQ++3TskKjPxP9C4rkKM5//Q/ChJ5isgXpc+LWe27vXNRBCa3qcv3Kd6jJfpMwiUPOzu1BMn+fM4DleJW+VrXgZhsw/B4DeHTiftufsbGXARsy57prF8wIs9ETA5bFQYsi041+v1j+2uYD4JKCcvmbOVKLwJE7hIkgBYxb2+GeR688+GUmuxHxwD2Rc/ajEdMvqHIEdHvmzhrvwVgTHlm4tYmMap/eQX0MvNTOSe+xWMogi3Pf1k/1FQAlzBT8/nfXxDOb36N/24ciVw+GzRNJlpsT0Ibd6f3FluPw6PkpkJlLuD3ChsEoXqtIJonohX5Xan/F4p87XNgq/zIg8hS5T/bFs8mvEhB18asoS8WU2YLkDTDYDo8zrkRwmTVy0jSdrbZ/B1KJXMxeXI7JeNDQgUN+Wx0IUhAKbAR7dEZtA/uC1KpcRb7woe1XESaJiLUKFxg64ycBPgJlVgw47GN9hmw1KZIbinz0gFKreRZTm+PCgFYyd7YLAhL+/vpBAUP7nBJom5Z3FX/iixIb7EhTISxC7xBdkpHsxRk+KMGO1untwE2rkCZN056Ymfu2bgcaP43gm1gCcKYfBLLi6WyEnJO2KTu7aWDYami356U6vv5NI3cFnqYg6zn1HrpLlR83S5DVgwrrlSq+v3kJbwxqT3s0Zo0w9KPH2VqP9U5G1iDiReZN5GouG3s5BtJREPgkzaBm4A=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(2616005)(4744005)(83380400001)(66476007)(4326008)(2906002)(6916009)(36756003)(316002)(66946007)(6486002)(186003)(16576012)(31696002)(5660300002)(508600001)(8936002)(38100700002)(26005)(8676002)(66556008)(31686004)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QktXYnk3UFpWbE9mYm9kZStFQ0FtQXpsU2hpOHVWRzQrWUdVa3BVRDIyY3lN?=
 =?utf-8?B?MUFrUG5vUVhONnE2eEk2ek9DL0tqWWZxcGg1OWdpbW9yVlI3WmJyRENZZGhY?=
 =?utf-8?B?dldMRkVkSHVTU1h4NmVNMzJUdlFzUEVwdlNRbnptV2haeXRhd05VZnArUkFo?=
 =?utf-8?B?eFNwdW52UkhEMkJjZkF4UWxRUFJ1elE3SG14eHh1N3J6SEwrMXJLYW13UXU1?=
 =?utf-8?B?ZmhZeUhHSDVKa2dCa0ZuU2lMclBNdVpJVURxVGZjRHBHWElpYTdTbWNxdXBT?=
 =?utf-8?B?QnhpbEtZMWpiWEx1ZnFEN2srTzdYZjkzUEY0dmEzVTQwYWtOWnEyWGZYWEFw?=
 =?utf-8?B?eThLeUdyd3JWNDg2S1Y3RHUraXU1RElMdndjak9xQ1VsNWpvNVJGY3J3YWtO?=
 =?utf-8?B?VnhzL1gyTzdac29teTliV1lCZnR0cEtodmRGRHZieS82Q3lKcFJDcU8rb3RV?=
 =?utf-8?B?b1FabzdIK0h0STFCd3N2NmNBUnNSNEVCUHU4dnl0VEx5enc1UHg3Ris4NVNL?=
 =?utf-8?B?S0hnNG91SGZ1a2Z6dmZJNDZ1d1FFM0hTNEpneHYxYnh6bXBiTjZSY29sUUhI?=
 =?utf-8?B?MC9HMm91MGNCdEdhSEhPWWk5citBanNhZno2byszbmtYMUw0cE9VaDFxOXlm?=
 =?utf-8?B?S3B0ZTA2ZFZkSC95ZDBTa0NYc1Y5QjNjMDFyMjliK3dhQ1ZCa2M2RGl2cVVW?=
 =?utf-8?B?UXNyd1hlYzlVbXBRRFhPTG1JWTJpK09nTjk5VGlud1hTQXF4MVYvWm5nYXdS?=
 =?utf-8?B?dmZpQ3pudkNsOXlUdGhzTDdFdzlGUUR5TWdRaXdSQThyVmV0YUJQMXNnL2tD?=
 =?utf-8?B?N3VvcFY2T2xmcjBUQ2lpVS95R1hXZUZIbWNyTXBPNmtXWTVrTCtSTDUzcW5y?=
 =?utf-8?B?QXo4YnA5b29GMWpDcHlrM0hMK2swZGhFbzkxWDFFNGJSR2xTTDdaWFY3Uk0y?=
 =?utf-8?B?cmdOandlSWhHcXZjR1dpWGIzSXdrNHJEZVh2ZndNVW9sL3JLelFmS3VqUXpr?=
 =?utf-8?B?WHdnbUYxdVRzWHU2djg4Snd5b0U4RUZVQTBLVTVwRVpkNmxlNWlubEFpRTRs?=
 =?utf-8?B?eXhzYW96SGw5cEtTdlZOOG5UZzJ0L1dOc01FRTcxQlFBWFhqRVZscmRVUXJi?=
 =?utf-8?B?dmQwemZuSEt6eHdHZ1JvREJ2Z1F6VFZFZWFFVDZyRWhVR2ZwQXBqbFgwRkpu?=
 =?utf-8?B?ZkJza0wzTllwS1hUUS9EVXFraTdCVjZDMSt5TDJEelV4eExFbXdqcEd1ZTVh?=
 =?utf-8?B?NnhhUHF1YnJpZTZZVVlQRkxwdnJ6OXkwVnNqWTEvbFk2WVB4UE5yN2lwNEw0?=
 =?utf-8?B?Q1RXd0w3RXg2d2Z6NUkrODNHakh0ajgvb09WQjBsT2lPU3hGbEVMd0w0ZlFL?=
 =?utf-8?B?ZmNxNnkwRHFuM2d3MHBUbFNxd01UT0oyVDVTRUt1N01NRmN0bUNTeTkxWTFD?=
 =?utf-8?B?d1ZSd1hmbWVwSldGVlRVajNsRERSNFdkZGxENG1uaGZuR3JURTczQTBQRGls?=
 =?utf-8?B?SXpKK2xPRUNuSnNYbzdOd3ZGaVZFaXJZNkJVL01HSVNzc2JBTVllWW84OHhB?=
 =?utf-8?B?UytlWU1qaHQ1eXJvbncrRUVoY0lxU3dqcGlrelY4K2M3blFienppNjBRRXpJ?=
 =?utf-8?B?a21ST0taRWFmN1FnL1QwYzNFbXk4eWFEbXNYRnp2ZUZ5djRSUUE5THdQakVN?=
 =?utf-8?B?aFNUY0tUdWM0d3V5bnVvcDRCUmdERDhMM2g4NzRraDFQd2tVWlhxYnRBam9n?=
 =?utf-8?B?TTJSc05CWEpFOWVxY3VPZ05QNHMwcFhrb3lqMEM1TXVPMGd4Z1lXVlhPRmF6?=
 =?utf-8?B?QTU4N3pMcm9oWHlDOVIrSjE4UnNnVUxDWEJVN1dCNTZ3Q0N1TW9FMDU3c1FE?=
 =?utf-8?B?c1RQQTRuQlN4bndIV09zV0dseXhUMjBibUEvci9mYlRYMHA4NlJvYWx6ZW10?=
 =?utf-8?B?TS9yTXoxcW5lMXpFaXdZS1FTbXlPUW1nUjdjTkxWVzBmKzNibHRLK3JTaENG?=
 =?utf-8?B?REVlcDZYbnIvT1ZlZ2lsQWJpQ29HdUtrOGtoR1ZVeGtWams5bklEUXpYL1Iv?=
 =?utf-8?B?b2tPeEV0bVUreWtnWFBwSlcvV21Ydk83VjhIV2JMRWgyM3NuVEh2L1Y1RURN?=
 =?utf-8?B?K1hnVkhGWGI3YVI5YnNXWmI4d1ZxVmNlU3o0SCtEa1B4Z3dkWCthZHhkZ29v?=
 =?utf-8?Q?hsonfecHDxmWObJz1M2MZgE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b5376d2-ca02-4e53-a250-08d9ae86cccf
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 13:40:23.5595
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ylcz26brxDMbB7XWxwU3kUyJnLnKak7guYHVZiKElvlknl6DhMQ5YaSJMEbSyWbGOAJYSlUMIaGuAZTKznYbQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

As of commit 6773b1a7584a ("VT-d: Don't assume register-based
invalidation is always supported") we don't (try to) use register based
invalidation anymore when that's not supported by hardware. Hence
there's also no point in the respective check, avoiding pointless IOMMU
initialization failure. After all the spec (version 3.3 at the time of
writing) doesn't say what the respective Extended Capability Register
field would contain in such a case.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1228,7 +1228,8 @@ int __init iommu_alloc(struct acpi_drhd_
 
     if ( cap_fault_reg_offset(iommu->cap) +
          cap_num_fault_regs(iommu->cap) * PRIMARY_FAULT_REG_LEN > PAGE_SIZE ||
-         ecap_iotlb_offset(iommu->ecap) >= PAGE_SIZE )
+         (has_register_based_invalidation(iommu) &&
+          ecap_iotlb_offset(iommu->ecap) >= PAGE_SIZE) )
     {
         printk(XENLOG_ERR VTDPREFIX "IOMMU: unsupported\n");
         print_iommu_regs(drhd);



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 13:54:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 13:54:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229625.397081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWFT-0001eQ-Sj; Tue, 23 Nov 2021 13:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229625.397081; Tue, 23 Nov 2021 13:54:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWFT-0001eJ-PY; Tue, 23 Nov 2021 13:54:15 +0000
Received: by outflank-mailman (input) for mailman id 229625;
 Tue, 23 Nov 2021 13:54:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpWFS-0001eD-5M
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 13:54:14 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpWFR-0004LT-E7; Tue, 23 Nov 2021 13:54:13 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.23.209]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpWFR-00052l-6A; Tue, 23 Nov 2021 13:54:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ZmSw9u3OOsJ+I97X7lbdAt3rQqnXNo2l41mXDilUtkc=; b=sl2SMweF5ExptBx3k9Y2t2ME+k
	8/WNl64jtJdbOx3+HByydYGeOA9jm9rlDfgE4IsvWtTMp9xKmAWiRf50IY/sCAEoZr7H86ye2NwOB
	8PhXQKgiT3LsLvQ0QVBTqfyyjI+8/K+MQvB5FUcNwnClapmTw9HASw0TYShTvElbC7yo=;
Message-ID: <d1139023-6788-2c58-5873-327e0917f868@xen.org>
Date: Tue, 23 Nov 2021 13:54:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Luca Fancellu <Luca.Fancellu@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 George Dunlap <george.dunlap@citrix.com>, Juergen Gross <jgross@suse.com>,
 Dario Faggioli <dfaggioli@suse.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
 <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
 <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
 <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
 <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop>
 <17cd2c69-56cb-15b9-d381-f854aea55d27@xen.org>
 <alpine.DEB.2.22.394.2111191052050.1412361@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2111191052050.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 19/11/2021 18:55, Stefano Stabellini wrote:
> On Fri, 19 Nov 2021, Julien Grall wrote:
>> I like better Juergen's version. But before agreeing on the command line , I
>> would like to understand how Linux is dealing with big.LITTLE today (see my
>> question above).
> 
> I also like Juergen's version better :-)
> 
> The device tree binding that covers big.LITTLE is the same that covers
> cpus: Documentation/devicetree/bindings/arm/cpus.yaml

Are you sure? I found 
Documentation/devicetree/bindings/arm/cpu-capacity.txt.

> 
> So basically, you can tell it is a big.LITTLE system because the
> compatible strings differ between certain cpus, e.g.:
> 
>        cpu@0 {
>          device_type = "cpu";
>          compatible = "arm,cortex-a15";
>          reg = <0x0>;
>        };
> 
>        cpu@1 {
>          device_type = "cpu";
>          compatible = "arm,cortex-a15";
>          reg = <0x1>;
>        };
> 
>        cpu@100 {
>          device_type = "cpu";
>          compatible = "arm,cortex-a7";
>          reg = <0x100>;
>        };
> 
>        cpu@101 {
>          device_type = "cpu";
>          compatible = "arm,cortex-a7";
>          reg = <0x101>;
>        };

I have not found any code in Linux using the compatible. Instead, they 
all seem to use the cpu-map (see drivers/base/arch_topology.c).

Anyway, to me it would be better to parse the Device-Tree over using the 
MIDR. The advantage is we can cover a wide range of cases (you may have 
processor with the same MIDR but different frequency). For now, we could 
create a cpupool per cluster.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 14:31:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 14:31:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229639.397092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWoo-0005jq-Mi; Tue, 23 Nov 2021 14:30:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229639.397092; Tue, 23 Nov 2021 14:30:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWoo-0005jj-JS; Tue, 23 Nov 2021 14:30:46 +0000
Received: by outflank-mailman (input) for mailman id 229639;
 Tue, 23 Nov 2021 14:30:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PpN+=QK=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mpWom-0005jd-IC
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 14:30:44 +0000
Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com
 [2607:f8b0:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f014fdc1-4c69-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 15:30:43 +0100 (CET)
Received: by mail-pl1-x631.google.com with SMTP id u17so17217717plg.9
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 06:30:43 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:1:af65:c3d4:6df:5a8b])
 by smtp.gmail.com with ESMTPSA id j13sm11926127pfc.151.2021.11.23.06.30.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 06:30:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f014fdc1-4c69-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=6bsx4hw5NbHCVF2W/NeRmzNghpOYrhv8l8EVf1kn67w=;
        b=cvvJrI1QX3F1CXlrV/8eUkgWUDHfoWCFWFkSOpXBjzB6SsWy2BUpETC33HUCl3JzTF
         kIURt3zkpyvrRd5BJrEeSEm/UeNRI0jzQJP0m2xbAh8qArEft0zYP0V+cQBtcAs7BgXe
         hubXmlepTZ1/aixT1F0M57MbeLtKiw9eZqaaKWVLz4jMeIT5j4lV5bD107ayuaXbeECP
         rtuzlbe5kcIN2LU3rSq94rECq16TEjPrQ9ly9dNq7guAar0qlH4KasIVmcb4DLprmlVi
         Ps4+1+L6gpTnOxtdD/M0ImoIgHwuJ6I7ONj72SCZBB3ifD4OS0vdnWkEqF1QPkouSXf+
         SJFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=6bsx4hw5NbHCVF2W/NeRmzNghpOYrhv8l8EVf1kn67w=;
        b=Br2kphf3IN8rwLIqFMl+AHilDlLkjbGrBxZ3+IXqbHkYZRK5XVbtOTc0sgjyqDDZus
         SUhFVZOanbLkX5Plr1NGvOC6sG92JYhK8oD6c2eSJJ/zlAD6kvk6ERaOj51OYZEP2oyM
         PSYxFLrAOmYXD+d89DEWzs+3n9ojfg7arfMMdoZ70RRniNkvVbLWyMxeEBJJPA1Mb++9
         XD4phQNftxWgPlwj+S0fMQzxbzq3TlZ1CTHtONogmwGPOVtfp8d3ceQYi6HaMXzsQMT3
         NBRb06PqkHBUg23s+wv+o4dqPHRrAixPD0oYtPb60FI6EoslEeDi+Ze63baU1WPuHfs0
         mgxQ==
X-Gm-Message-State: AOAM532Z8xELtoTiGpqvdRxsTmD+tFGUqEZaNzdKU1rpexR2KquusHoo
	h6C18KozM7Z7dDSp/83zzE0=
X-Google-Smtp-Source: ABdhPJynwRwiHm1UVLqQsERKisSlFY0WvQFTxlH3IfWaqqHV5AmDuFLcHWKC+Om+8FB9dQD/WFJFWg==
X-Received: by 2002:a17:902:a60b:b0:142:7621:be0b with SMTP id u11-20020a170902a60b00b001427621be0bmr7298513plq.58.1637677841802;
        Tue, 23 Nov 2021 06:30:41 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	peterz@infradead.org,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	Tianyu.Lan@microsoft.com,
	thomas.lendacky@amd.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	dave.hansen@intel.com
Subject: [PATCH V2 0/6] x86/Hyper-V: Add Hyper-V Isolation VM support(Second part)
Date: Tue, 23 Nov 2021 09:30:31 -0500
Message-Id: <20211123143039.331929-1-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

Hyper-V provides two kinds of Isolation VMs. VBS(Virtualization-based
security) and AMD SEV-SNP unenlightened Isolation VMs. This patchset
is to add support for these Isolation VM support in Linux.

The memory of these vms are encrypted and host can't access guest
memory directly. Hyper-V provides new host visibility hvcall and
the guest needs to call new hvcall to mark memory visible to host
before sharing memory with host. For security, all network/storage
stack memory should not be shared with host and so there is bounce
buffer requests.

Vmbus channel ring buffer already plays bounce buffer role because
all data from/to host needs to copy from/to between the ring buffer
and IO stack memory. So mark vmbus channel ring buffer visible.

For SNP isolation VM, guest needs to access the shared memory via
extra address space which is specified by Hyper-V CPUID HYPERV_CPUID_
ISOLATION_CONFIG. The access physical address of the shared memory
should be bounce buffer memory GPA plus with shared_gpa_boundary
reported by CPUID.

This patchset is to enable swiotlb bounce buffer for netvsc/storvsc
in Isolation VM. Add Hyper-V dma ops and provide dma_alloc/free_
noncontiguous and vmap/vunmap_noncontiguous callback. Allocate
rx/tx ring via dma_alloc_noncontiguous() and map them into extra
address space via dma_vmap_noncontiguous().

Change since v1:
     * Add Hyper-V Isolation support check in the cc_platform_has()
       and return true for guest memory encrypt attr.
     * Remove hv isolation check in the sev_setup_arch()

Tianyu Lan (6):
  Swiotlb: Add Swiotlb bounce buffer remap function for HV IVM
  dma-mapping: Add vmap/vunmap_noncontiguous() callback in dma ops
  x86/hyper-v: Add hyperv Isolation VM check in the cc_platform_has()
  hyperv/IOMMU: Enable swiotlb bounce buffer for Isolation VM
  net: netvsc: Add Isolation VM support for netvsc driver
  scsi: storvsc: Add Isolation VM support for storvsc driver

 arch/x86/kernel/cc_platform.c     |  15 +++
 arch/x86/mm/mem_encrypt.c         |   1 +
 arch/x86/xen/pci-swiotlb-xen.c    |   3 +-
 drivers/hv/Kconfig                |   1 +
 drivers/hv/vmbus_drv.c            |   6 +
 drivers/iommu/hyperv-iommu.c      | 164 +++++++++++++++++++++++++
 drivers/net/hyperv/hyperv_net.h   |   5 +
 drivers/net/hyperv/netvsc.c       | 192 +++++++++++++++++++++++++++---
 drivers/net/hyperv/rndis_filter.c |   2 +
 drivers/scsi/storvsc_drv.c        |  37 +++---
 include/linux/dma-map-ops.h       |   3 +
 include/linux/hyperv.h            |  17 +++
 include/linux/swiotlb.h           |   6 +
 kernel/dma/mapping.c              |  18 ++-
 kernel/dma/swiotlb.c              |  53 ++++++++-
 15 files changed, 482 insertions(+), 41 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 14:37:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 14:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229645.397114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWuq-0006gI-Po; Tue, 23 Nov 2021 14:37:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229645.397114; Tue, 23 Nov 2021 14:37:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWuq-0006g9-Lz; Tue, 23 Nov 2021 14:37:00 +0000
Received: by outflank-mailman (input) for mailman id 229645;
 Tue, 23 Nov 2021 14:36:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PpN+=QK=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mpWup-0006Ps-88
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 14:36:59 +0000
Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com
 [2607:f8b0:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cfb13703-4c6a-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 15:36:58 +0100 (CET)
Received: by mail-pl1-x62e.google.com with SMTP id u11so17250882plf.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 06:36:58 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:1:af65:c3d4:6df:5a8b])
 by smtp.gmail.com with ESMTPSA id j13sm11926127pfc.151.2021.11.23.06.36.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 06:36:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cfb13703-4c6a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=QpP/dVmOy5UI+0bbwin5PnSriAWO01VAYDyEmLKe5Fk=;
        b=Tns3ImBlGwbXQEnuXBDpy3hfX/I57KzAQqzM3rfc/vmFboVTSl/I6VWtckE0lrNt9f
         9o0hG/IsvIqRXsVDJbm9KcQ491JrNXQNp5gLdD/ePiEHl32ytjY9MFvU/nXa0CKrfIL9
         NhvqWfjcpDbShn56ZLrJVZd0maDUipkSoZtT8lZpz0DsD5IlZB4rsMuH6DkT7kLsWa2T
         qnZHRJS1wKCoPc+cxZhcwYsqCV4QcXrRxBLsG67ibI0aEf+xl101z94jp0ZDHru7b+mC
         LjCXAjCKBarnhztxXaod+KRBPc77VtIyPBL3hDRuKpWjn9GSug0LMVfy7qo5aZN7XV/W
         bC3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=QpP/dVmOy5UI+0bbwin5PnSriAWO01VAYDyEmLKe5Fk=;
        b=tbEVRfoWR99EV2O1TiTe/twQ3PkNI6C3vzjV9c5AR3+OQZxma+0sP1XER91MgKmvcw
         a5ZisU3Y/Jt57HAWytOySi0Z0nYMSuqiGDW6H1rMkABOUj9fFVvHt7zSMy3iTLK18otN
         VrVaaPC2+jL9d/L8phHacvg9ji+qgTjvhxRuOMyheOHgGrErWIrdA49QzW5Rc2252Rr3
         at6Fr+XUa0WWIxsS/jfW+t8+31EgHac7NNDYca/o1n5ivvy3mZDwqs/rffn0TO0vRrjq
         gHF+yqIyFwSYRufhziTAxbqtoEnvT4niMhhPRvhMd8RwD3rTIJoFY/Pm3Gk01fuTLYlL
         6tMw==
X-Gm-Message-State: AOAM530pdBf1mkQtt3F8N+9wHR9/xrod1FRUGhLdEDaq2Kd9mGpoL2aQ
	8nJTbUsw1ZcPHUz4XjEQJD0=
X-Google-Smtp-Source: ABdhPJwD/E686Op6vkRlhXfD+ipZl5W4QS/7JsYfB5j69XU4jttPeJXYmrrgxGuPk3lE+qDj7Iz0QA==
X-Received: by 2002:a17:90a:7086:: with SMTP id g6mr3595594pjk.34.1637678217055;
        Tue, 23 Nov 2021 06:36:57 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	peterz@infradead.org,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	Tianyu.Lan@microsoft.com,
	thomas.lendacky@amd.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	dave.hansen@intel.com
Subject: [PATCH V2 2/6] dma-mapping: Add vmap/vunmap_noncontiguous() callback in dma ops
Date: Tue, 23 Nov 2021 09:30:33 -0500
Message-Id: <20211123143039.331929-3-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211123143039.331929-1-ltykernel@gmail.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

Hyper-V netvsc driver needs to allocate noncontiguous DMA memory and
remap it into unencrypted address space before sharing with host. Add
vmap/vunmap_noncontiguous() callback and handle the remap in the Hyper-V
dma ops callback.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
 include/linux/dma-map-ops.h |  3 +++
 kernel/dma/mapping.c        | 18 ++++++++++++++----
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h
index 0d5b06b3a4a6..f7b9958ca20a 100644
--- a/include/linux/dma-map-ops.h
+++ b/include/linux/dma-map-ops.h
@@ -27,6 +27,9 @@ struct dma_map_ops {
 			unsigned long attrs);
 	void (*free_noncontiguous)(struct device *dev, size_t size,
 			struct sg_table *sgt, enum dma_data_direction dir);
+	void *(*vmap_noncontiguous)(struct device *dev, size_t size,
+			struct sg_table *sgt);
+	void (*vunmap_noncontiguous)(struct device *dev, void *addr);
 	int (*mmap)(struct device *, struct vm_area_struct *,
 			void *, dma_addr_t, size_t, unsigned long attrs);
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 9478eccd1c8e..7fd751d866cc 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -674,8 +674,14 @@ void *dma_vmap_noncontiguous(struct device *dev, size_t size,
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 	unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT;
 
-	if (ops && ops->alloc_noncontiguous)
-		return vmap(sgt_handle(sgt)->pages, count, VM_MAP, PAGE_KERNEL);
+	if (ops) {
+		if (ops->vmap_noncontiguous)
+			return ops->vmap_noncontiguous(dev, size, sgt);
+		else if (ops->alloc_noncontiguous)
+			return vmap(sgt_handle(sgt)->pages, count, VM_MAP,
+				    PAGE_KERNEL);
+	}
+
 	return page_address(sg_page(sgt->sgl));
 }
 EXPORT_SYMBOL_GPL(dma_vmap_noncontiguous);
@@ -684,8 +690,12 @@ void dma_vunmap_noncontiguous(struct device *dev, void *vaddr)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 
-	if (ops && ops->alloc_noncontiguous)
-		vunmap(vaddr);
+	if (ops) {
+		if (ops->vunmap_noncontiguous)
+			ops->vunmap_noncontiguous(dev, vaddr);
+		else if (ops->alloc_noncontiguous)
+			vunmap(vaddr);
+	}
 }
 EXPORT_SYMBOL_GPL(dma_vunmap_noncontiguous);
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 14:37:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 14:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229646.397125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWus-0006wv-2z; Tue, 23 Nov 2021 14:37:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229646.397125; Tue, 23 Nov 2021 14:37:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWur-0006wm-W6; Tue, 23 Nov 2021 14:37:01 +0000
Received: by outflank-mailman (input) for mailman id 229646;
 Tue, 23 Nov 2021 14:37:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PpN+=QK=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mpWuq-0006bF-Ez
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 14:37:00 +0000
Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com
 [2607:f8b0:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0463d8a-4c6a-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 15:36:59 +0100 (CET)
Received: by mail-pl1-x633.google.com with SMTP id u11so17250915plf.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 06:36:59 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:1:af65:c3d4:6df:5a8b])
 by smtp.gmail.com with ESMTPSA id j13sm11926127pfc.151.2021.11.23.06.36.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 06:36:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0463d8a-4c6a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=i+xUpMEUxrmLaLZETYGitNsZhfrMVhJB1Bk6Yp08byU=;
        b=AlKcv7Y4VFkVezS6aJXAds/NWYnLHTHgFDawHsIGURkEQw1ZQprC+xxgttepVcIQUM
         5T5M0RL+DPFTteQFgNGSjajmwgRX1J2Y5QsSwTqvWdVg1A+EWhpdaWNqmbKB24YbhnwY
         VTf6iEPD2bD9xmmRrEK7FLp6gAd4SMfhDEAaTdaySH6ygkl9daOZYS/EkqwnTKSZglAK
         egCsNvtL8/Q16NYzGtBDx6YW50D+dp/CauiDtizCo8lfzW3y900HzjaUttJ2TmSaJV4N
         ShJbzW4YSovU0kpEhKAaY2ps0ZKmQFzKQmxGR0raTUS1hPCogFjcj1BjeQYlXNYc4eIF
         EFgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=i+xUpMEUxrmLaLZETYGitNsZhfrMVhJB1Bk6Yp08byU=;
        b=FLpIHuiMV997eP8l38CWvgiOR1RBihGoBwZz/dqkEpHHMdyqnUmjSMGGMXUswfFuet
         1RzJOHjOn7GNPECT6Xo7carJSU7p8EVEOyOAGpFzm0m5O1x9ekUcMZI5bOmRyYeKsq+w
         pp226Wo1YpULuSsSWXoJG0meExopUyZfd5fNaLDhYgudY5Spt0/iZxDnn48Yi+SpOCRo
         bUYobx1B+zU752zxYEQ01sl4HV9c9dznmG206+9JfrCL+0Psp8kok0e9x29neW51y2T+
         2OmLU/KQJsv6mtzyOEfR9ZDrcdP/qNY//aZBAH2cCWl5ppp1uEfZX9H0KVSX8aHaufBA
         ygUA==
X-Gm-Message-State: AOAM533SL8YznwinhBbSvwU1ylH+RuCXtd+Lqt8QmnwD8dkpo9Ms/SnV
	KDVifgAmb9ui7e/kPlvqhvsVWKQeTah5ug==
X-Google-Smtp-Source: ABdhPJwRbhdcFhTlrcl5ARyO8E5M5xT/1VQMfqX2FgiEinsxJqYW1NtlXEltffF5Oag+q0rt470N+g==
X-Received: by 2002:a17:90b:180b:: with SMTP id lw11mr3650766pjb.108.1637678218159;
        Tue, 23 Nov 2021 06:36:58 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	peterz@infradead.org,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	Tianyu.Lan@microsoft.com,
	thomas.lendacky@amd.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	dave.hansen@intel.com
Subject: [PATCH V2 3/6] x86/hyper-v: Add hyperv Isolation VM check in the cc_platform_has()
Date: Tue, 23 Nov 2021 09:30:34 -0500
Message-Id: <20211123143039.331929-4-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211123143039.331929-1-ltykernel@gmail.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

Hyper-V provides Isolation VM which has memory encrypt support. Add
hyperv_cc_platform_has() and return true for check of GUEST_MEM_ENCRYPT
attribute.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
 arch/x86/kernel/cc_platform.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/arch/x86/kernel/cc_platform.c b/arch/x86/kernel/cc_platform.c
index 03bb2f343ddb..f3bb0431f5c5 100644
--- a/arch/x86/kernel/cc_platform.c
+++ b/arch/x86/kernel/cc_platform.c
@@ -11,6 +11,7 @@
 #include <linux/cc_platform.h>
 #include <linux/mem_encrypt.h>
 
+#include <asm/mshyperv.h>
 #include <asm/processor.h>
 
 static bool __maybe_unused intel_cc_platform_has(enum cc_attr attr)
@@ -58,9 +59,23 @@ static bool amd_cc_platform_has(enum cc_attr attr)
 #endif
 }
 
+static bool hyperv_cc_platform_has(enum cc_attr attr)
+{
+#ifdef CONFIG_HYPERV
+	if (attr == CC_ATTR_GUEST_MEM_ENCRYPT)
+		return true;
+	else
+		return false;
+#else
+	return false;
+#endif
+}
 
 bool cc_platform_has(enum cc_attr attr)
 {
+	if (hv_is_isolation_supported())
+		return hyperv_cc_platform_has(attr);
+
 	if (sme_me_mask)
 		return amd_cc_platform_has(attr);
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 14:37:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 14:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229644.397103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWup-0006Q5-Dg; Tue, 23 Nov 2021 14:36:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229644.397103; Tue, 23 Nov 2021 14:36:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWup-0006Py-9J; Tue, 23 Nov 2021 14:36:59 +0000
Received: by outflank-mailman (input) for mailman id 229644;
 Tue, 23 Nov 2021 14:36:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PpN+=QK=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mpWuo-0006Ps-Hf
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 14:36:58 +0000
Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com
 [2607:f8b0:4864:20::1034])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cebade1c-4c6a-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 15:36:57 +0100 (CET)
Received: by mail-pj1-x1034.google.com with SMTP id
 o6-20020a17090a0a0600b001a64b9a11aeso3070064pjo.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 06:36:56 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:1:af65:c3d4:6df:5a8b])
 by smtp.gmail.com with ESMTPSA id j13sm11926127pfc.151.2021.11.23.06.36.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 06:36:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cebade1c-4c6a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=ZLZVOIJvkNfO78QMd8KmGxzLi6165uI7/yB2dxT/Ykk=;
        b=gqnaX3y9BYxnolIAz6ohPiMx1+uWA+HB/7pfL/hta47mhZY1SESuVh6AyO6OrBvHl4
         /npGN7awBKNSRQFcgIEBAnGQLe1TLQvX5fWEjykeGyOCPelkp+IbfbQTIgCNlY5OeAD+
         eVdYJFoj6/DSB36poZtkhDU8kI/BioBEeklOVgEjpy6HVmrGKC3iurU9Am5/L4pKcVQo
         9HwmXweKaCVV+o0dnMKeqaMyEJBq/18jyvil0UQJaUHJwzq84trc9n7cG5YlBsDNaByO
         nmFEsY5HrfMbnqBJoHTKUUSzYWMoT5zH1nz7N3YVt/hbwdgqDBDxMpSC2gh1veDdQaDJ
         hKnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=ZLZVOIJvkNfO78QMd8KmGxzLi6165uI7/yB2dxT/Ykk=;
        b=7157d1xwgLv4SRta0oZGgSQa+TpWRxxD7Id6tYkKTprEUz/PRchAahRGfIlbNSwvNl
         evFPLTpLcvyiWe4qem4hcN6Apy0c2OgIut1o+mlz26h2d5HH3+1/PqFHQkMqCvdyegJE
         sb3I+YeNDxZ7LYGZra7nd+HrD6rB+GJyXnUxlGiFjteQnkLFULQxZyByrZAHYPHKzPbt
         kvudXW3SZBLAQMngwsaFpG+PPrzw6l9VC5DS3aETHyxqkeVzlIgRP8iNqPEQc1bbzorM
         OvcLieWkawHFRzoqZZI3Wt3LZ0zesNDgSlokBv9iEEbhIoV3X/xQieT28VJht5jfW0HK
         xJkA==
X-Gm-Message-State: AOAM5338TKw4eVRzoFZLWVINaL2ki9FSYMOLGHX9dQ7WGL4/eEr/fgga
	xutqazVj7LyIlMjaDEyshPA=
X-Google-Smtp-Source: ABdhPJw6FmBtePaEKtdoENI4y3Ha3Tjj5xx6DbA0cDTOhxNZa7Gb4JErBed6/HhU6blkX6qlJforYg==
X-Received: by 2002:a17:90b:4d92:: with SMTP id oj18mr3481484pjb.188.1637678215409;
        Tue, 23 Nov 2021 06:36:55 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	peterz@infradead.org,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	Tianyu.Lan@microsoft.com,
	thomas.lendacky@amd.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	dave.hansen@intel.com
Subject: [PATCH V2 1/6] Swiotlb: Add Swiotlb bounce buffer remap function for HV IVM
Date: Tue, 23 Nov 2021 09:30:32 -0500
Message-Id: <20211123143039.331929-2-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211123143039.331929-1-ltykernel@gmail.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

In Isolation VM with AMD SEV, bounce buffer needs to be accessed via
extra address space which is above shared_gpa_boundary (E.G 39 bit
address line) reported by Hyper-V CPUID ISOLATION_CONFIG. The access
physical address will be original physical address + shared_gpa_boundary.
The shared_gpa_boundary in the AMD SEV SNP spec is called virtual top of
memory(vTOM). Memory addresses below vTOM are automatically treated as
private while memory above vTOM is treated as shared.

Expose swiotlb_unencrypted_base for platforms to set unencrypted
memory base offset and platform calls swiotlb_update_mem_attributes()
to remap swiotlb mem to unencrypted address space. memremap() can
not be called in the early stage and so put remapping code into
swiotlb_update_mem_attributes(). Store remap address and use it to copy
data from/to swiotlb bounce buffer.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
Change since v1:
	* Rework comment in the swiotlb_init_io_tlb_mem()
	* Make swiotlb_init_io_tlb_mem() back to return void.
---
 include/linux/swiotlb.h |  6 +++++
 kernel/dma/swiotlb.c    | 53 +++++++++++++++++++++++++++++++++++++----
 2 files changed, 54 insertions(+), 5 deletions(-)

diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
index 569272871375..f6c3638255d5 100644
--- a/include/linux/swiotlb.h
+++ b/include/linux/swiotlb.h
@@ -73,6 +73,9 @@ extern enum swiotlb_force swiotlb_force;
  * @end:	The end address of the swiotlb memory pool. Used to do a quick
  *		range check to see if the memory was in fact allocated by this
  *		API.
+ * @vaddr:	The vaddr of the swiotlb memory pool. The swiotlb memory pool
+ *		may be remapped in the memory encrypted case and store virtual
+ *		address for bounce buffer operation.
  * @nslabs:	The number of IO TLB blocks (in groups of 64) between @start and
  *		@end. For default swiotlb, this is command line adjustable via
  *		setup_io_tlb_npages.
@@ -92,6 +95,7 @@ extern enum swiotlb_force swiotlb_force;
 struct io_tlb_mem {
 	phys_addr_t start;
 	phys_addr_t end;
+	void *vaddr;
 	unsigned long nslabs;
 	unsigned long used;
 	unsigned int index;
@@ -186,4 +190,6 @@ static inline bool is_swiotlb_for_alloc(struct device *dev)
 }
 #endif /* CONFIG_DMA_RESTRICTED_POOL */
 
+extern phys_addr_t swiotlb_unencrypted_base;
+
 #endif /* __LINUX_SWIOTLB_H */
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
index 8e840fbbed7c..c303fdeba82f 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -50,6 +50,7 @@
 #include <asm/io.h>
 #include <asm/dma.h>
 
+#include <linux/io.h>
 #include <linux/init.h>
 #include <linux/memblock.h>
 #include <linux/iommu-helper.h>
@@ -72,6 +73,8 @@ enum swiotlb_force swiotlb_force;
 
 struct io_tlb_mem io_tlb_default_mem;
 
+phys_addr_t swiotlb_unencrypted_base;
+
 /*
  * Max segment that we can provide which (if pages are contingous) will
  * not be bounced (unless SWIOTLB_FORCE is set).
@@ -155,6 +158,31 @@ static inline unsigned long nr_slots(u64 val)
 	return DIV_ROUND_UP(val, IO_TLB_SIZE);
 }
 
+/*
+ * Remap swioltb memory in the unencrypted physical address space
+ * when swiotlb_unencrypted_base is set. (e.g. for Hyper-V AMD SEV-SNP
+ * Isolation VMs).
+ */
+void *swiotlb_mem_remap(struct io_tlb_mem *mem, unsigned long bytes)
+{
+	void *vaddr;
+
+	if (swiotlb_unencrypted_base) {
+		phys_addr_t paddr = mem->start + swiotlb_unencrypted_base;
+
+		vaddr = memremap(paddr, bytes, MEMREMAP_WB);
+		if (!vaddr) {
+			pr_err("Failed to map the unencrypted memory %llx size %lx.\n",
+			       paddr, bytes);
+			return NULL;
+		}
+
+		return vaddr;
+	}
+
+	return phys_to_virt(mem->start);
+}
+
 /*
  * Early SWIOTLB allocation may be too early to allow an architecture to
  * perform the desired operations.  This function allows the architecture to
@@ -172,7 +200,14 @@ void __init swiotlb_update_mem_attributes(void)
 	vaddr = phys_to_virt(mem->start);
 	bytes = PAGE_ALIGN(mem->nslabs << IO_TLB_SHIFT);
 	set_memory_decrypted((unsigned long)vaddr, bytes >> PAGE_SHIFT);
-	memset(vaddr, 0, bytes);
+
+	mem->vaddr = swiotlb_mem_remap(mem, bytes);
+	if (!mem->vaddr) {
+		pr_err("Fail to remap swiotlb mem.\n");
+		return;
+	}
+
+	memset(mem->vaddr, 0, bytes);
 }
 
 static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
@@ -196,7 +231,18 @@ static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
 		mem->slots[i].orig_addr = INVALID_PHYS_ADDR;
 		mem->slots[i].alloc_size = 0;
 	}
+
+	/*
+	 * If swiotlb_unencrypted_base is set, the bounce buffer memory will
+	 * be remapped and cleared in swiotlb_update_mem_attributes.
+	 */
+	if (swiotlb_unencrypted_base)
+		return;
+
+	set_memory_decrypted((unsigned long)vaddr, bytes >> PAGE_SHIFT);
 	memset(vaddr, 0, bytes);
+	mem->vaddr = vaddr;
+	return;
 }
 
 int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose)
@@ -318,7 +364,6 @@ swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs)
 	if (!mem->slots)
 		return -ENOMEM;
 
-	set_memory_decrypted((unsigned long)tlb, bytes >> PAGE_SHIFT);
 	swiotlb_init_io_tlb_mem(mem, virt_to_phys(tlb), nslabs, true);
 
 	swiotlb_print_info();
@@ -371,7 +416,7 @@ static void swiotlb_bounce(struct device *dev, phys_addr_t tlb_addr, size_t size
 	phys_addr_t orig_addr = mem->slots[index].orig_addr;
 	size_t alloc_size = mem->slots[index].alloc_size;
 	unsigned long pfn = PFN_DOWN(orig_addr);
-	unsigned char *vaddr = phys_to_virt(tlb_addr);
+	unsigned char *vaddr = mem->vaddr + tlb_addr - mem->start;
 	unsigned int tlb_offset, orig_addr_offset;
 
 	if (orig_addr == INVALID_PHYS_ADDR)
@@ -806,8 +851,6 @@ static int rmem_swiotlb_device_init(struct reserved_mem *rmem,
 			return -ENOMEM;
 		}
 
-		set_memory_decrypted((unsigned long)phys_to_virt(rmem->base),
-				     rmem->size >> PAGE_SHIFT);
 		swiotlb_init_io_tlb_mem(mem, rmem->base, nslabs, false);
 		mem->force_bounce = true;
 		mem->for_alloc = true;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 14:37:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 14:37:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229647.397135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWuu-0007Gl-B0; Tue, 23 Nov 2021 14:37:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229647.397135; Tue, 23 Nov 2021 14:37:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWuu-0007GT-7b; Tue, 23 Nov 2021 14:37:04 +0000
Received: by outflank-mailman (input) for mailman id 229647;
 Tue, 23 Nov 2021 14:37:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PpN+=QK=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mpWus-0006Ps-0W
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 14:37:02 +0000
Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com
 [2607:f8b0:4864:20::1035])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d11e3309-4c6a-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 15:37:00 +0100 (CET)
Received: by mail-pj1-x1035.google.com with SMTP id np3so16766160pjb.4
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 06:37:00 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:1:af65:c3d4:6df:5a8b])
 by smtp.gmail.com with ESMTPSA id j13sm11926127pfc.151.2021.11.23.06.36.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 06:36:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d11e3309-4c6a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=AdBAxc/3LXP8YWhzmIb2SnuIKCxbwTfsQGFXzfobc4o=;
        b=XnUoHbWpSwYk5kFBJ/DiTYTTNinPEcFFxNehQ/NE8dCnkpc+sk9KROtwTTPo5AZUlD
         KGFX0XE5xcl5jyD2u8K/drsQWazKXhDlRTGeS7gqiKSeUp2UwrolTFVy1IM6bHyhszQ1
         9OeS/NTKP70Q3dmlOpA8Dqdb6TH6OnBcSQJSIq5PmKRbi4w0P70ZukJtymjsVmLzpzLO
         xMQ96t6PnqCt8wqpzN4kjOaDyWHsDCGbfc2/0HWq0LkxTp9bAjMbQmC1GTD8Lp6yCwpV
         Ud7gCs4BiwxJmizIddhvqn9IqPDPFDNh1/UEqHeit1jWOhPoS5bGB/SxVaovdMIjM7OO
         ySSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=AdBAxc/3LXP8YWhzmIb2SnuIKCxbwTfsQGFXzfobc4o=;
        b=wmbzh6oCYTivCp4pzSjnaLjUr3QkSG/rL9etmO6RMhoNAmx4ZMDxckOU9UENbqrRn8
         Ql5BrblZ0XwYSXvNk3YOjlMGe0/XbowPuPkZTng58fEK3+pKtJWoFZfUqr43Pz4AooNq
         o8tCq/2MUGyhZCNjblZ4OkdYhLQtFtp0Ojaa29LCCj+jLuN79TNVCLtmKwkw3o9M9L0Z
         D2FT9NzyZ+rKwXzpyk5HHAVy8lX6XprRYl1gX+f25ZrtlQGktbzOCwo8QYnJY0MB0deg
         ky5FlTtC+esMG55xrZrTbytG4G2Z0z5k+UXcL9me/zpFrVYV3ULpTK0b8bYLM2rhEa1m
         UcxA==
X-Gm-Message-State: AOAM5300SN8L0VqRoLDIFpHqt/dgTAuYa5w3lAiRguljzg2Whm/appzp
	2bjUY8iSvQXfEwoLlDyHAOI=
X-Google-Smtp-Source: ABdhPJxMfWW29WaiL3j7bKuP57MP7f389+tDMfhLQdJn1uZ+fZJgqSGVd07YIzZXQYtpg2/rCt6SHA==
X-Received: by 2002:a17:90b:1e07:: with SMTP id pg7mr3423978pjb.93.1637678219409;
        Tue, 23 Nov 2021 06:36:59 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	peterz@infradead.org,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	Tianyu.Lan@microsoft.com,
	thomas.lendacky@amd.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	dave.hansen@intel.com
Subject: [PATCH V2 4/6] hyperv/IOMMU: Enable swiotlb bounce buffer for Isolation VM
Date: Tue, 23 Nov 2021 09:30:35 -0500
Message-Id: <20211123143039.331929-5-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211123143039.331929-1-ltykernel@gmail.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

hyperv Isolation VM requires bounce buffer support to copy
data from/to encrypted memory and so enable swiotlb force
mode to use swiotlb bounce buffer for DMA transaction.

In Isolation VM with AMD SEV, the bounce buffer needs to be
accessed via extra address space which is above shared_gpa_boundary
(E.G 39 bit address line) reported by Hyper-V CPUID ISOLATION_CONFIG.
The access physical address will be original physical address +
shared_gpa_boundary. The shared_gpa_boundary in the AMD SEV SNP
spec is called virtual top of memory(vTOM). Memory addresses below
vTOM are automatically treated as private while memory above
vTOM is treated as shared.

Hyper-V initalizes swiotlb bounce buffer and default swiotlb
needs to be disabled. pci_swiotlb_detect_override() and
pci_swiotlb_detect_4gb() enable the default one. To override
the setting, hyperv_swiotlb_detect() needs to run before
these detect functions which depends on the pci_xen_swiotlb_
init(). Make pci_xen_swiotlb_init() depends on the hyperv_swiotlb
_detect() to keep the order.

Swiotlb bounce buffer code calls set_memory_decrypted()
to mark bounce buffer visible to host and map it in extra
address space via memremap. Populate the shared_gpa_boundary
(vTOM) via swiotlb_unencrypted_base variable.

The map function memremap() can't work in the early place
hyperv_iommu_swiotlb_init() and so call swiotlb_update_mem_attributes()
in the hyperv_iommu_swiotlb_later_init().

Add Hyper-V dma ops and provide alloc/free and vmap/vunmap noncontiguous
callback to handle request of  allocating and mapping noncontiguous dma
memory in vmbus device driver. Netvsc driver will use this. Set dma_ops_
bypass flag for hv device to use dma direct functions during mapping/unmapping
dma page.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
Change since v1:
	* Remove hv isolation check in the sev_setup_arch()

 arch/x86/mm/mem_encrypt.c      |   1 +
 arch/x86/xen/pci-swiotlb-xen.c |   3 +-
 drivers/hv/Kconfig             |   1 +
 drivers/hv/vmbus_drv.c         |   6 ++
 drivers/iommu/hyperv-iommu.c   | 164 +++++++++++++++++++++++++++++++++
 include/linux/hyperv.h         |  10 ++
 6 files changed, 184 insertions(+), 1 deletion(-)

diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
index 35487305d8af..e48c73b3dd41 100644
--- a/arch/x86/mm/mem_encrypt.c
+++ b/arch/x86/mm/mem_encrypt.c
@@ -31,6 +31,7 @@
 #include <asm/processor-flags.h>
 #include <asm/msr.h>
 #include <asm/cmdline.h>
+#include <asm/mshyperv.h>
 
 #include "mm_internal.h"
 
diff --git a/arch/x86/xen/pci-swiotlb-xen.c b/arch/x86/xen/pci-swiotlb-xen.c
index 46df59aeaa06..30fd0600b008 100644
--- a/arch/x86/xen/pci-swiotlb-xen.c
+++ b/arch/x86/xen/pci-swiotlb-xen.c
@@ -4,6 +4,7 @@
 
 #include <linux/dma-map-ops.h>
 #include <linux/pci.h>
+#include <linux/hyperv.h>
 #include <xen/swiotlb-xen.h>
 
 #include <asm/xen/hypervisor.h>
@@ -91,6 +92,6 @@ int pci_xen_swiotlb_init_late(void)
 EXPORT_SYMBOL_GPL(pci_xen_swiotlb_init_late);
 
 IOMMU_INIT_FINISH(pci_xen_swiotlb_detect,
-		  NULL,
+		  hyperv_swiotlb_detect,
 		  pci_xen_swiotlb_init,
 		  NULL);
diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
index dd12af20e467..d43b4cd88f57 100644
--- a/drivers/hv/Kconfig
+++ b/drivers/hv/Kconfig
@@ -9,6 +9,7 @@ config HYPERV
 	select PARAVIRT
 	select X86_HV_CALLBACK_VECTOR if X86
 	select VMAP_PFN
+	select DMA_OPS_BYPASS
 	help
 	  Select this option to run Linux as a Hyper-V client operating
 	  system.
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 392c1ac4f819..32dc193e31cd 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -33,6 +33,7 @@
 #include <linux/random.h>
 #include <linux/kernel.h>
 #include <linux/syscore_ops.h>
+#include <linux/dma-map-ops.h>
 #include <clocksource/hyperv_timer.h>
 #include "hyperv_vmbus.h"
 
@@ -2078,6 +2079,7 @@ struct hv_device *vmbus_device_create(const guid_t *type,
 	return child_device_obj;
 }
 
+static u64 vmbus_dma_mask = DMA_BIT_MASK(64);
 /*
  * vmbus_device_register - Register the child device
  */
@@ -2118,6 +2120,10 @@ int vmbus_device_register(struct hv_device *child_device_obj)
 	}
 	hv_debug_add_dev_dir(child_device_obj);
 
+	child_device_obj->device.dma_ops_bypass = true;
+	child_device_obj->device.dma_ops = &hyperv_iommu_dma_ops;
+	child_device_obj->device.dma_mask = &vmbus_dma_mask;
+	child_device_obj->device.dma_parms = &child_device_obj->dma_parms;
 	return 0;
 
 err_kset_unregister:
diff --git a/drivers/iommu/hyperv-iommu.c b/drivers/iommu/hyperv-iommu.c
index e285a220c913..ebcb628e7e8f 100644
--- a/drivers/iommu/hyperv-iommu.c
+++ b/drivers/iommu/hyperv-iommu.c
@@ -13,14 +13,21 @@
 #include <linux/irq.h>
 #include <linux/iommu.h>
 #include <linux/module.h>
+#include <linux/hyperv.h>
+#include <linux/io.h>
 
 #include <asm/apic.h>
 #include <asm/cpu.h>
 #include <asm/hw_irq.h>
 #include <asm/io_apic.h>
+#include <asm/iommu.h>
+#include <asm/iommu_table.h>
 #include <asm/irq_remapping.h>
 #include <asm/hypervisor.h>
 #include <asm/mshyperv.h>
+#include <asm/swiotlb.h>
+#include <linux/dma-map-ops.h>
+#include <linux/dma-direct.h>
 
 #include "irq_remapping.h"
 
@@ -337,4 +344,161 @@ static const struct irq_domain_ops hyperv_root_ir_domain_ops = {
 	.free = hyperv_root_irq_remapping_free,
 };
 
+static void __init hyperv_iommu_swiotlb_init(void)
+{
+	unsigned long hyperv_io_tlb_size;
+	void *hyperv_io_tlb_start;
+
+	/*
+	 * Allocate Hyper-V swiotlb bounce buffer at early place
+	 * to reserve large contiguous memory.
+	 */
+	hyperv_io_tlb_size = swiotlb_size_or_default();
+	hyperv_io_tlb_start = memblock_alloc(hyperv_io_tlb_size, PAGE_SIZE);
+
+	if (!hyperv_io_tlb_start)
+		pr_warn("Fail to allocate Hyper-V swiotlb buffer.\n");
+
+	swiotlb_init_with_tbl(hyperv_io_tlb_start,
+			      hyperv_io_tlb_size >> IO_TLB_SHIFT, true);
+}
+
+int __init hyperv_swiotlb_detect(void)
+{
+	if (!hypervisor_is_type(X86_HYPER_MS_HYPERV))
+		return 0;
+
+	if (!hv_is_isolation_supported())
+		return 0;
+
+	/*
+	 * Enable swiotlb force mode in Isolation VM to
+	 * use swiotlb bounce buffer for dma transaction.
+	 */
+	if (hv_isolation_type_snp())
+		swiotlb_unencrypted_base = ms_hyperv.shared_gpa_boundary;
+	swiotlb_force = SWIOTLB_FORCE;
+	return 1;
+}
+
+static void __init hyperv_iommu_swiotlb_later_init(void)
+{
+	/*
+	 * Swiotlb bounce buffer needs to be mapped in extra address
+	 * space. Map function doesn't work in the early place and so
+	 * call swiotlb_update_mem_attributes() here.
+	 */
+	swiotlb_update_mem_attributes();
+}
+
+IOMMU_INIT_FINISH(hyperv_swiotlb_detect,
+		  NULL, hyperv_iommu_swiotlb_init,
+		  hyperv_iommu_swiotlb_later_init);
+
+static struct sg_table *hyperv_dma_alloc_noncontiguous(struct device *dev,
+		size_t size, enum dma_data_direction dir, gfp_t gfp,
+		unsigned long attrs)
+{
+	struct dma_sgt_handle *sh;
+	struct page **pages;
+	int num_pages = size >> PAGE_SHIFT;
+	void *vaddr, *ptr;
+	int rc, i;
+
+	if (!hv_isolation_type_snp())
+		return NULL;
+
+	sh = kmalloc(sizeof(*sh), gfp);
+	if (!sh)
+		return NULL;
+
+	vaddr = vmalloc(size);
+	if (!vaddr)
+		goto free_sgt;
+
+	pages = kvmalloc_array(num_pages, sizeof(struct page *),
+				    GFP_KERNEL | __GFP_ZERO);
+	if (!pages)
+		goto free_mem;
+
+	for (i = 0, ptr = vaddr; i < num_pages; ++i, ptr += PAGE_SIZE)
+		pages[i] = vmalloc_to_page(ptr);
+
+	rc = sg_alloc_table_from_pages(&sh->sgt, pages, num_pages, 0, size, GFP_KERNEL);
+	if (rc)
+		goto free_pages;
+
+	sh->sgt.sgl->dma_address = (dma_addr_t)vaddr;
+	sh->sgt.sgl->dma_length = size;
+	sh->pages = pages;
+
+	return &sh->sgt;
+
+free_pages:
+	kvfree(pages);
+free_mem:
+	vfree(vaddr);
+free_sgt:
+	kfree(sh);
+	return NULL;
+}
+
+static void hyperv_dma_free_noncontiguous(struct device *dev, size_t size,
+		struct sg_table *sgt, enum dma_data_direction dir)
+{
+	struct dma_sgt_handle *sh = sgt_handle(sgt);
+
+	if (!hv_isolation_type_snp())
+		return;
+
+	vfree((void *)sh->sgt.sgl->dma_address);
+	sg_free_table(&sh->sgt);
+	kvfree(sh->pages);
+	kfree(sh);
+}
+
+static void *hyperv_dma_vmap_noncontiguous(struct device *dev, size_t size,
+			struct sg_table *sgt)
+{
+	int pg_count = size >> PAGE_SHIFT;
+	unsigned long *pfns;
+	struct page **pages = sgt_handle(sgt)->pages;
+	void *vaddr = NULL;
+	int i;
+
+	if (!hv_isolation_type_snp())
+		return NULL;
+
+	if (!pages)
+		return NULL;
+
+	pfns = kcalloc(pg_count, sizeof(*pfns), GFP_KERNEL);
+	if (!pfns)
+		return NULL;
+
+	for (i = 0; i < pg_count; i++)
+		pfns[i] = page_to_pfn(pages[i]) +
+			(ms_hyperv.shared_gpa_boundary >> PAGE_SHIFT);
+
+	vaddr = vmap_pfn(pfns, pg_count, PAGE_KERNEL);
+	kfree(pfns);
+	return vaddr;
+
+}
+
+static void hyperv_dma_vunmap_noncontiguous(struct device *dev, void *addr)
+{
+	if (!hv_isolation_type_snp())
+		return;
+	vunmap(addr);
+}
+
+const struct dma_map_ops hyperv_iommu_dma_ops = {
+		.alloc_noncontiguous = hyperv_dma_alloc_noncontiguous,
+		.free_noncontiguous = hyperv_dma_free_noncontiguous,
+		.vmap_noncontiguous = hyperv_dma_vmap_noncontiguous,
+		.vunmap_noncontiguous = hyperv_dma_vunmap_noncontiguous,
+};
+EXPORT_SYMBOL_GPL(hyperv_iommu_dma_ops);
+
 #endif
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index b823311eac79..4d44fb3b3f1c 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -1726,6 +1726,16 @@ int hyperv_write_cfg_blk(struct pci_dev *dev, void *buf, unsigned int len,
 int hyperv_reg_block_invalidate(struct pci_dev *dev, void *context,
 				void (*block_invalidate)(void *context,
 							 u64 block_mask));
+#ifdef CONFIG_HYPERV
+int __init hyperv_swiotlb_detect(void);
+#else
+static inline int __init hyperv_swiotlb_detect(void)
+{
+	return 0;
+}
+#endif
+
+extern const struct dma_map_ops hyperv_iommu_dma_ops;
 
 struct hyperv_pci_block_ops {
 	int (*read_block)(struct pci_dev *dev, void *buf, unsigned int buf_len,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 14:37:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 14:37:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229648.397147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWuv-0007YC-NY; Tue, 23 Nov 2021 14:37:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229648.397147; Tue, 23 Nov 2021 14:37:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWuv-0007XL-Hi; Tue, 23 Nov 2021 14:37:05 +0000
Received: by outflank-mailman (input) for mailman id 229648;
 Tue, 23 Nov 2021 14:37:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PpN+=QK=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mpWuu-0006Ps-4e
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 14:37:04 +0000
Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com
 [2607:f8b0:4864:20::102a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d288dc8e-4c6a-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 15:37:03 +0100 (CET)
Received: by mail-pj1-x102a.google.com with SMTP id
 gf14-20020a17090ac7ce00b001a7a2a0b5c3so2240929pjb.5
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 06:37:03 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:1:af65:c3d4:6df:5a8b])
 by smtp.gmail.com with ESMTPSA id j13sm11926127pfc.151.2021.11.23.06.37.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 06:37:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d288dc8e-4c6a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=Ak926pCUpNKs+47FmVVMlYhwNY9vAunl0LxYrKNKSNw=;
        b=QxxMavfWDAJAz7jNhCS3lNTNa0flyv5hNihdQPccb5eNCjHF55hQpWrnsEQkCVJghc
         7GPdcT9HSD5QViryH0UX4Aun2WA+mGBa3Amr3ad9iSXIuSGQC24/bMpDjGgiFb4k/a9a
         ZAYNXQoeZmxJm3HiW7hj+JkREkiGe8NUYb/+S8lBQGh4bi3TU+N+GfremM9Ba5JS8SPD
         8wNuTIzD34QP1Pzt5TU42nLmCmWJm3r5yxYzZS/tIc11jyeaKntaaRsqcB2DjiSxqBe2
         zqVd2p6oiNp4mOxg/CZiswjoXfCt/DOMgeHrMN9AL4KvPtBfL8X+QWcwzsFyPSdJLLkC
         5TOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=Ak926pCUpNKs+47FmVVMlYhwNY9vAunl0LxYrKNKSNw=;
        b=ibionB6bE/cKw69bsKymXtsaW2Nlqhangc7hbl+PPZsXonrrGkTiWFBw4tRmbv9GnL
         r03UHg+JeUZYoVNgwh1qdRqfaTHBdDeNJDQNhXSGGK1Hrv3g19qqIsU5jwBBOnK9oRAr
         rdjNg3idWZ02fjnxEF8yXubI+RQ8ORe6Ii31bmn/fL0QQir1YG50lBHlt33kmDN2gbfW
         D8SO1AmpeykO9RhGiYRx7R/GwTjunbsQANy0pi2/3Y6jRfsYCB831OzE02jS/FS3m5g/
         31hVwrAtMFGHViV9NlnHyFkqHTLiomA30Li1JJU6qfjRlVE1LjionG+1pHjDiAuYQG3R
         ZdIA==
X-Gm-Message-State: AOAM530q5buvUzL3tC87rFwcvzNQM5hDYvrvY+zq3VmcgH1itcO4DWbe
	R5eW5tG1RJyhtj7BPyvGqus=
X-Google-Smtp-Source: ABdhPJxTU1w0vUGn7mvy7jQu/10DsjPZwfyCqNOGRf+62qAFrRBW+AJvObLD7wd2mtZecQ+9K9O66g==
X-Received: by 2002:a17:90b:1e4e:: with SMTP id pi14mr3462656pjb.161.1637678221896;
        Tue, 23 Nov 2021 06:37:01 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	peterz@infradead.org,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	Tianyu.Lan@microsoft.com,
	thomas.lendacky@amd.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	dave.hansen@intel.com
Subject: [PATCH V2 6/6] scsi: storvsc: Add Isolation VM support for storvsc driver
Date: Tue, 23 Nov 2021 09:30:37 -0500
Message-Id: <20211123143039.331929-7-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211123143039.331929-1-ltykernel@gmail.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

In Isolation VM, all shared memory with host needs to mark visible
to host via hvcall. vmbus_establish_gpadl() has already done it for
storvsc rx/tx ring buffer. The page buffer used by vmbus_sendpacket_
mpb_desc() still needs to be handled. Use DMA API(scsi_dma_map/unmap)
to map these memory during sending/receiving packet and return swiotlb
bounce buffer dma address. In Isolation VM, swiotlb  bounce buffer is
marked to be visible to host and the swiotlb force mode is enabled.

Set device's dma min align mask to HV_HYP_PAGE_SIZE - 1 in order to
keep the original data offset in the bounce buffer.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
 drivers/scsi/storvsc_drv.c | 37 +++++++++++++++++++++----------------
 include/linux/hyperv.h     |  1 +
 2 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index 20595c0ba0ae..ae293600d799 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -21,6 +21,8 @@
 #include <linux/device.h>
 #include <linux/hyperv.h>
 #include <linux/blkdev.h>
+#include <linux/dma-mapping.h>
+
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
 #include <scsi/scsi_host.h>
@@ -1336,6 +1338,7 @@ static void storvsc_on_channel_callback(void *context)
 					continue;
 				}
 				request = (struct storvsc_cmd_request *)scsi_cmd_priv(scmnd);
+				scsi_dma_unmap(scmnd);
 			}
 
 			storvsc_on_receive(stor_device, packet, request);
@@ -1749,7 +1752,6 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
 	struct hv_host_device *host_dev = shost_priv(host);
 	struct hv_device *dev = host_dev->dev;
 	struct storvsc_cmd_request *cmd_request = scsi_cmd_priv(scmnd);
-	int i;
 	struct scatterlist *sgl;
 	unsigned int sg_count;
 	struct vmscsi_request *vm_srb;
@@ -1831,10 +1833,11 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
 	payload_sz = sizeof(cmd_request->mpb);
 
 	if (sg_count) {
-		unsigned int hvpgoff, hvpfns_to_add;
 		unsigned long offset_in_hvpg = offset_in_hvpage(sgl->offset);
 		unsigned int hvpg_count = HVPFN_UP(offset_in_hvpg + length);
-		u64 hvpfn;
+		struct scatterlist *sg;
+		unsigned long hvpfn, hvpfns_to_add;
+		int j, i = 0;
 
 		if (hvpg_count > MAX_PAGE_BUFFER_COUNT) {
 
@@ -1848,21 +1851,22 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
 		payload->range.len = length;
 		payload->range.offset = offset_in_hvpg;
 
+		sg_count = scsi_dma_map(scmnd);
+		if (sg_count < 0)
+			return SCSI_MLQUEUE_DEVICE_BUSY;
 
-		for (i = 0; sgl != NULL; sgl = sg_next(sgl)) {
+		for_each_sg(sgl, sg, sg_count, j) {
 			/*
-			 * Init values for the current sgl entry. hvpgoff
-			 * and hvpfns_to_add are in units of Hyper-V size
-			 * pages. Handling the PAGE_SIZE != HV_HYP_PAGE_SIZE
-			 * case also handles values of sgl->offset that are
-			 * larger than PAGE_SIZE. Such offsets are handled
-			 * even on other than the first sgl entry, provided
-			 * they are a multiple of PAGE_SIZE.
+			 * Init values for the current sgl entry. hvpfns_to_add
+			 * is in units of Hyper-V size pages. Handling the
+			 * PAGE_SIZE != HV_HYP_PAGE_SIZE case also handles
+			 * values of sgl->offset that are larger than PAGE_SIZE.
+			 * Such offsets are handled even on other than the first
+			 * sgl entry, provided they are a multiple of PAGE_SIZE.
 			 */
-			hvpgoff = HVPFN_DOWN(sgl->offset);
-			hvpfn = page_to_hvpfn(sg_page(sgl)) + hvpgoff;
-			hvpfns_to_add =	HVPFN_UP(sgl->offset + sgl->length) -
-						hvpgoff;
+			hvpfn = HVPFN_DOWN(sg_dma_address(sg));
+			hvpfns_to_add = HVPFN_UP(sg_dma_address(sg) +
+						 sg_dma_len(sg)) - hvpfn;
 
 			/*
 			 * Fill the next portion of the PFN array with
@@ -1872,7 +1876,7 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
 			 * the PFN array is filled.
 			 */
 			while (hvpfns_to_add--)
-				payload->range.pfn_array[i++] =	hvpfn++;
+				payload->range.pfn_array[i++] = hvpfn++;
 		}
 	}
 
@@ -2016,6 +2020,7 @@ static int storvsc_probe(struct hv_device *device,
 	stor_device->vmscsi_size_delta = sizeof(struct vmscsi_win8_extension);
 	spin_lock_init(&stor_device->lock);
 	hv_set_drvdata(device, stor_device);
+	dma_set_min_align_mask(&device->device, HV_HYP_PAGE_SIZE - 1);
 
 	stor_device->port_number = host->host_no;
 	ret = storvsc_connect_to_vsp(device, storvsc_ringbuffer_size, is_fc);
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 8882e46d1070..2840e51ee5c5 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -1262,6 +1262,7 @@ struct hv_device {
 
 	struct vmbus_channel *channel;
 	struct kset	     *channels_kset;
+	struct device_dma_parameters dma_parms;
 
 	/* place holder to keep track of the dir for hv device in debugfs */
 	struct dentry *debug_dir;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 14:37:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 14:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229649.397158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWux-0007t8-5m; Tue, 23 Nov 2021 14:37:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229649.397158; Tue, 23 Nov 2021 14:37:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpWux-0007sf-1Z; Tue, 23 Nov 2021 14:37:07 +0000
Received: by outflank-mailman (input) for mailman id 229649;
 Tue, 23 Nov 2021 14:37:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PpN+=QK=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mpWuv-0006Ps-4x
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 14:37:05 +0000
Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com
 [2607:f8b0:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1e3c9d3-4c6a-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 15:37:03 +0100 (CET)
Received: by mail-pf1-x429.google.com with SMTP id g19so19644319pfb.8
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 06:37:03 -0800 (PST)
Received: from ubuntu-Virtual-Machine.corp.microsoft.com
 ([2001:4898:80e8:1:af65:c3d4:6df:5a8b])
 by smtp.gmail.com with ESMTPSA id j13sm11926127pfc.151.2021.11.23.06.36.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 06:37:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1e3c9d3-4c6a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=JY7pElcL7BP9H4psSINWD9PF2/JWAEjs+L3UP6LQB6Q=;
        b=oQ83HmoHFD085agRy/yeSEpNrdiXveNtgrkgLlTJ1AMwBzBStPW+er+NxwGaxnjyvt
         WHsUBBcynmKBNjPBpC43h5dqEDpOktT5czz5EWgsqD1rThQtKYa98t341JDknF9C7A/q
         McbOW8ICcIRyyZIj8CIq4rakCYysnIvAp9//MQghkqFKZ+JrdXcNma2RJFmDr/BCudOJ
         jruLBSJn/lixdkyAroEamsINDHEDJw8SWIOJvrlJf3QP/wkDK4Z5RG9f03c9R1YM2biV
         pZ02GrdWfDup5tdyieZazgjcdzuIp2ZhGGHCsawB384nfBKev0cvxwNB3dfrMB9/rPI4
         SNoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=JY7pElcL7BP9H4psSINWD9PF2/JWAEjs+L3UP6LQB6Q=;
        b=q8L9C0r0TaE4QJrVysc9IZoVLKkSfmvU2CzfEZDJXBsa3H0jQKwn284eXq0cSPJwev
         0w9nXU/cXLgtJESTnqJjzwtxbBOYoe/zREpLNQTPHzpct/L+77jPDL3RTA9wl6q8Zca9
         5fbNpETptveZrWlZO9+fKovgepqiVMA+l0gxTuN0RGdGZvNmYf6zSiHG23/tDH31sxBZ
         u7BeGGbWQrV66BdGadbxb965lsmufTQFhEm+szP757JUea3rHN+0ZLt/AtEjYlQuEEsM
         zhjOPr6Vq8rToJ1CiFjSlA/H0FINZ0FtWZSTictF+IDKDvSCE0ZomKrxNSJ0stvTSzKQ
         kv0g==
X-Gm-Message-State: AOAM53285OO1KdpyfGGc+UgyW7ATXO74dH8C5hJxDHczCBitCM/SAC9p
	BZpdXWcIaiAoxsPv0MVSZHo=
X-Google-Smtp-Source: ABdhPJx5ENbC602il693O1d//w8VCd0w5BvdKcn8pIWg+EC4X/avZhuFZM6oB2wl60kqZ+KHOtIsww==
X-Received: by 2002:a65:6a47:: with SMTP id o7mr3999207pgu.439.1637678220735;
        Tue, 23 Nov 2021 06:37:00 -0800 (PST)
From: Tianyu Lan <ltykernel@gmail.com>
To: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	peterz@infradead.org,
	jgross@suse.com,
	sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	kys@microsoft.com,
	haiyangz@microsoft.com,
	sthemmin@microsoft.com,
	wei.liu@kernel.org,
	decui@microsoft.com,
	joro@8bytes.org,
	will@kernel.org,
	davem@davemloft.net,
	kuba@kernel.org,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	Tianyu.Lan@microsoft.com,
	thomas.lendacky@amd.com,
	xen-devel@lists.xenproject.org,
	michael.h.kelley@microsoft.com
Cc: iommu@lists.linux-foundation.org,
	linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org,
	vkuznets@redhat.com,
	brijesh.singh@amd.com,
	konrad.wilk@oracle.com,
	parri.andrea@gmail.com,
	dave.hansen@intel.com
Subject: [PATCH V2 5/6] net: netvsc: Add Isolation VM support for netvsc driver
Date: Tue, 23 Nov 2021 09:30:36 -0500
Message-Id: <20211123143039.331929-6-ltykernel@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211123143039.331929-1-ltykernel@gmail.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Tianyu Lan <Tianyu.Lan@microsoft.com>

In Isolation VM, all shared memory with host needs to mark visible
to host via hvcall. vmbus_establish_gpadl() has already done it for
netvsc rx/tx ring buffer. The page buffer used by vmbus_sendpacket_
pagebuffer() stills need to be handled. Use DMA API to map/umap
these memory during sending/receiving packet and Hyper-V swiotlb
bounce buffer dma address will be returned. The swiotlb bounce buffer
has been masked to be visible to host during boot up.

Allocate rx/tx ring buffer via dma_alloc_noncontiguous() in Isolation
VM. After calling vmbus_establish_gpadl() which marks these pages visible
to host, map these pages unencrypted addes space via dma_vmap_noncontiguous().

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
---
 drivers/net/hyperv/hyperv_net.h   |   5 +
 drivers/net/hyperv/netvsc.c       | 192 +++++++++++++++++++++++++++---
 drivers/net/hyperv/rndis_filter.c |   2 +
 include/linux/hyperv.h            |   6 +
 4 files changed, 190 insertions(+), 15 deletions(-)

diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
index 315278a7cf88..31c77a00d01e 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -164,6 +164,7 @@ struct hv_netvsc_packet {
 	u32 total_bytes;
 	u32 send_buf_index;
 	u32 total_data_buflen;
+	struct hv_dma_range *dma_range;
 };
 
 #define NETVSC_HASH_KEYLEN 40
@@ -1074,6 +1075,7 @@ struct netvsc_device {
 
 	/* Receive buffer allocated by us but manages by NetVSP */
 	void *recv_buf;
+	struct sg_table *recv_sgt;
 	u32 recv_buf_size; /* allocated bytes */
 	struct vmbus_gpadl recv_buf_gpadl_handle;
 	u32 recv_section_cnt;
@@ -1082,6 +1084,7 @@ struct netvsc_device {
 
 	/* Send buffer allocated by us */
 	void *send_buf;
+	struct sg_table *send_sgt;
 	u32 send_buf_size;
 	struct vmbus_gpadl send_buf_gpadl_handle;
 	u32 send_section_cnt;
@@ -1731,4 +1734,6 @@ struct rndis_message {
 #define RETRY_US_HI	10000
 #define RETRY_MAX	2000	/* >10 sec */
 
+void netvsc_dma_unmap(struct hv_device *hv_dev,
+		      struct hv_netvsc_packet *packet);
 #endif /* _HYPERV_NET_H */
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 396bc1c204e6..9cdc71930830 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -20,6 +20,7 @@
 #include <linux/vmalloc.h>
 #include <linux/rtnetlink.h>
 #include <linux/prefetch.h>
+#include <linux/gfp.h>
 
 #include <asm/sync_bitops.h>
 #include <asm/mshyperv.h>
@@ -146,15 +147,39 @@ static struct netvsc_device *alloc_net_device(void)
 	return net_device;
 }
 
+static struct hv_device *netvsc_channel_to_device(struct vmbus_channel *channel)
+{
+	struct vmbus_channel *primary = channel->primary_channel;
+
+	return primary ? primary->device_obj : channel->device_obj;
+}
+
 static void free_netvsc_device(struct rcu_head *head)
 {
 	struct netvsc_device *nvdev
 		= container_of(head, struct netvsc_device, rcu);
+	struct hv_device *dev =
+		netvsc_channel_to_device(nvdev->chan_table[0].channel);
 	int i;
 
 	kfree(nvdev->extension);
-	vfree(nvdev->recv_buf);
-	vfree(nvdev->send_buf);
+
+	if (nvdev->recv_sgt) {
+		dma_vunmap_noncontiguous(&dev->device, nvdev->recv_buf);
+		dma_free_noncontiguous(&dev->device, nvdev->recv_buf_size,
+				       nvdev->recv_sgt, DMA_FROM_DEVICE);
+	} else {
+		vfree(nvdev->recv_buf);
+	}
+
+	if (nvdev->send_sgt) {
+		dma_vunmap_noncontiguous(&dev->device, nvdev->send_buf);
+		dma_free_noncontiguous(&dev->device, nvdev->send_buf_size,
+				       nvdev->send_sgt, DMA_TO_DEVICE);
+	} else {
+		vfree(nvdev->send_buf);
+	}
+
 	kfree(nvdev->send_section_map);
 
 	for (i = 0; i < VRSS_CHANNEL_MAX; i++) {
@@ -348,7 +373,21 @@ static int netvsc_init_buf(struct hv_device *device,
 		buf_size = min_t(unsigned int, buf_size,
 				 NETVSC_RECEIVE_BUFFER_SIZE_LEGACY);
 
-	net_device->recv_buf = vzalloc(buf_size);
+	if (hv_isolation_type_snp()) {
+		net_device->recv_sgt =
+			dma_alloc_noncontiguous(&device->device, buf_size,
+						DMA_FROM_DEVICE, GFP_KERNEL, 0);
+		if (!net_device->recv_sgt) {
+			pr_err("Fail to allocate recv buffer buf_size %d.\n.", buf_size);
+			ret = -ENOMEM;
+			goto cleanup;
+		}
+
+		net_device->recv_buf = (void *)net_device->recv_sgt->sgl->dma_address;
+	} else {
+		net_device->recv_buf = vzalloc(buf_size);
+	}
+
 	if (!net_device->recv_buf) {
 		netdev_err(ndev,
 			   "unable to allocate receive buffer of size %u\n",
@@ -357,8 +396,6 @@ static int netvsc_init_buf(struct hv_device *device,
 		goto cleanup;
 	}
 
-	net_device->recv_buf_size = buf_size;
-
 	/*
 	 * Establish the gpadl handle for this buffer on this
 	 * channel.  Note: This call uses the vmbus connection rather
@@ -373,6 +410,19 @@ static int netvsc_init_buf(struct hv_device *device,
 		goto cleanup;
 	}
 
+	if (net_device->recv_sgt) {
+		net_device->recv_buf =
+			dma_vmap_noncontiguous(&device->device, buf_size,
+					       net_device->recv_sgt);
+		if (!net_device->recv_buf) {
+			pr_err("Fail to vmap recv buffer.\n");
+			ret = -ENOMEM;
+			goto cleanup;
+		}
+	}
+
+	net_device->recv_buf_size = buf_size;
+
 	/* Notify the NetVsp of the gpadl handle */
 	init_packet = &net_device->channel_init_pkt;
 	memset(init_packet, 0, sizeof(struct nvsp_message));
@@ -454,14 +504,27 @@ static int netvsc_init_buf(struct hv_device *device,
 	buf_size = device_info->send_sections * device_info->send_section_size;
 	buf_size = round_up(buf_size, PAGE_SIZE);
 
-	net_device->send_buf = vzalloc(buf_size);
+	if (hv_isolation_type_snp()) {
+		net_device->send_sgt =
+			dma_alloc_noncontiguous(&device->device, buf_size,
+						DMA_TO_DEVICE, GFP_KERNEL, 0);
+		if (!net_device->send_sgt) {
+			pr_err("Fail to allocate send buffer buf_size %d.\n.", buf_size);
+			ret = -ENOMEM;
+			goto cleanup;
+		}
+
+		net_device->send_buf = (void *)net_device->send_sgt->sgl->dma_address;
+	} else {
+		net_device->send_buf = vzalloc(buf_size);
+	}
+
 	if (!net_device->send_buf) {
 		netdev_err(ndev, "unable to allocate send buffer of size %u\n",
 			   buf_size);
 		ret = -ENOMEM;
 		goto cleanup;
 	}
-	net_device->send_buf_size = buf_size;
 
 	/* Establish the gpadl handle for this buffer on this
 	 * channel.  Note: This call uses the vmbus connection rather
@@ -476,6 +539,19 @@ static int netvsc_init_buf(struct hv_device *device,
 		goto cleanup;
 	}
 
+	if (net_device->send_sgt) {
+		net_device->send_buf =
+			dma_vmap_noncontiguous(&device->device, buf_size,
+					       net_device->send_sgt);
+		if (!net_device->send_buf) {
+			pr_err("Fail to vmap send buffer.\n");
+			ret = -ENOMEM;
+			goto cleanup;
+		}
+	}
+
+	net_device->send_buf_size = buf_size;
+
 	/* Notify the NetVsp of the gpadl handle */
 	init_packet = &net_device->channel_init_pkt;
 	memset(init_packet, 0, sizeof(struct nvsp_message));
@@ -766,7 +842,7 @@ static void netvsc_send_tx_complete(struct net_device *ndev,
 
 	/* Notify the layer above us */
 	if (likely(skb)) {
-		const struct hv_netvsc_packet *packet
+		struct hv_netvsc_packet *packet
 			= (struct hv_netvsc_packet *)skb->cb;
 		u32 send_index = packet->send_buf_index;
 		struct netvsc_stats *tx_stats;
@@ -782,6 +858,7 @@ static void netvsc_send_tx_complete(struct net_device *ndev,
 		tx_stats->bytes += packet->total_bytes;
 		u64_stats_update_end(&tx_stats->syncp);
 
+		netvsc_dma_unmap(ndev_ctx->device_ctx, packet);
 		napi_consume_skb(skb, budget);
 	}
 
@@ -946,6 +1023,87 @@ static void netvsc_copy_to_send_buf(struct netvsc_device *net_device,
 		memset(dest, 0, padding);
 }
 
+void netvsc_dma_unmap(struct hv_device *hv_dev,
+		      struct hv_netvsc_packet *packet)
+{
+	u32 page_count = packet->cp_partial ?
+		packet->page_buf_cnt - packet->rmsg_pgcnt :
+		packet->page_buf_cnt;
+	int i;
+
+	if (!hv_is_isolation_supported())
+		return;
+
+	if (!packet->dma_range)
+		return;
+
+	for (i = 0; i < page_count; i++)
+		dma_unmap_single(&hv_dev->device, packet->dma_range[i].dma,
+				 packet->dma_range[i].mapping_size,
+				 DMA_TO_DEVICE);
+
+	kfree(packet->dma_range);
+}
+
+/* netvsc_dma_map - Map swiotlb bounce buffer with data page of
+ * packet sent by vmbus_sendpacket_pagebuffer() in the Isolation
+ * VM.
+ *
+ * In isolation VM, netvsc send buffer has been marked visible to
+ * host and so the data copied to send buffer doesn't need to use
+ * bounce buffer. The data pages handled by vmbus_sendpacket_pagebuffer()
+ * may not be copied to send buffer and so these pages need to be
+ * mapped with swiotlb bounce buffer. netvsc_dma_map() is to do
+ * that. The pfns in the struct hv_page_buffer need to be converted
+ * to bounce buffer's pfn. The loop here is necessary because the
+ * entries in the page buffer array are not necessarily full
+ * pages of data.  Each entry in the array has a separate offset and
+ * len that may be non-zero, even for entries in the middle of the
+ * array.  And the entries are not physically contiguous.  So each
+ * entry must be individually mapped rather than as a contiguous unit.
+ * So not use dma_map_sg() here.
+ */
+static int netvsc_dma_map(struct hv_device *hv_dev,
+			  struct hv_netvsc_packet *packet,
+			  struct hv_page_buffer *pb)
+{
+	u32 page_count =  packet->cp_partial ?
+		packet->page_buf_cnt - packet->rmsg_pgcnt :
+		packet->page_buf_cnt;
+	dma_addr_t dma;
+	int i;
+
+	if (!hv_is_isolation_supported())
+		return 0;
+
+	packet->dma_range = kcalloc(page_count,
+				    sizeof(*packet->dma_range),
+				    GFP_KERNEL);
+	if (!packet->dma_range)
+		return -ENOMEM;
+
+	for (i = 0; i < page_count; i++) {
+		char *src = phys_to_virt((pb[i].pfn << HV_HYP_PAGE_SHIFT)
+					 + pb[i].offset);
+		u32 len = pb[i].len;
+
+		dma = dma_map_single(&hv_dev->device, src, len,
+				     DMA_TO_DEVICE);
+		if (dma_mapping_error(&hv_dev->device, dma)) {
+			kfree(packet->dma_range);
+			return -ENOMEM;
+		}
+
+		packet->dma_range[i].dma = dma;
+		packet->dma_range[i].mapping_size = len;
+		pb[i].pfn = dma >> HV_HYP_PAGE_SHIFT;
+		pb[i].offset = offset_in_hvpage(dma);
+		pb[i].len = len;
+	}
+
+	return 0;
+}
+
 static inline int netvsc_send_pkt(
 	struct hv_device *device,
 	struct hv_netvsc_packet *packet,
@@ -986,14 +1144,24 @@ static inline int netvsc_send_pkt(
 
 	trace_nvsp_send_pkt(ndev, out_channel, rpkt);
 
+	packet->dma_range = NULL;
 	if (packet->page_buf_cnt) {
 		if (packet->cp_partial)
 			pb += packet->rmsg_pgcnt;
 
+		ret = netvsc_dma_map(ndev_ctx->device_ctx, packet, pb);
+		if (ret) {
+			ret = -EAGAIN;
+			goto exit;
+		}
+
 		ret = vmbus_sendpacket_pagebuffer(out_channel,
 						  pb, packet->page_buf_cnt,
 						  &nvmsg, sizeof(nvmsg),
 						  req_id);
+
+		if (ret)
+			netvsc_dma_unmap(ndev_ctx->device_ctx, packet);
 	} else {
 		ret = vmbus_sendpacket(out_channel,
 				       &nvmsg, sizeof(nvmsg),
@@ -1001,6 +1169,7 @@ static inline int netvsc_send_pkt(
 				       VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
 	}
 
+exit:
 	if (ret == 0) {
 		atomic_inc_return(&nvchan->queue_sends);
 
@@ -1515,13 +1684,6 @@ static int netvsc_process_raw_pkt(struct hv_device *device,
 	return 0;
 }
 
-static struct hv_device *netvsc_channel_to_device(struct vmbus_channel *channel)
-{
-	struct vmbus_channel *primary = channel->primary_channel;
-
-	return primary ? primary->device_obj : channel->device_obj;
-}
-
 /* Network processing softirq
  * Process data in incoming ring buffer from host
  * Stops when ring is empty or budget is met or exceeded.
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index f6c9c2a670f9..448fcc325ed7 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -361,6 +361,8 @@ static void rndis_filter_receive_response(struct net_device *ndev,
 			}
 		}
 
+		netvsc_dma_unmap(((struct net_device_context *)
+			netdev_priv(ndev))->device_ctx, &request->pkt);
 		complete(&request->wait_event);
 	} else {
 		netdev_err(ndev,
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 4d44fb3b3f1c..8882e46d1070 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -25,6 +25,7 @@
 #include <linux/interrupt.h>
 #include <linux/reciprocal_div.h>
 #include <asm/hyperv-tlfs.h>
+#include <linux/dma-map-ops.h>
 
 #define MAX_PAGE_BUFFER_COUNT				32
 #define MAX_MULTIPAGE_BUFFER_COUNT			32 /* 128K */
@@ -1583,6 +1584,11 @@ struct hyperv_service_callback {
 	void (*callback)(void *context);
 };
 
+struct hv_dma_range {
+	dma_addr_t dma;
+	u32 mapping_size;
+};
+
 #define MAX_SRV_VER	0x7ffffff
 extern bool vmbus_prep_negotiate_resp(struct icmsg_hdr *icmsghdrp, u8 *buf, u32 buflen,
 				const int *fw_version, int fw_vercnt,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 14:45:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 14:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229668.397168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpX3E-0002Rr-4e; Tue, 23 Nov 2021 14:45:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229668.397168; Tue, 23 Nov 2021 14:45:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpX3E-0002Rk-1S; Tue, 23 Nov 2021 14:45:40 +0000
Received: by outflank-mailman (input) for mailman id 229668;
 Tue, 23 Nov 2021 14:45:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r6oU=QK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mpX3B-0002RU-Fm
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 14:45:38 +0000
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02on060b.outbound.protection.outlook.com
 [2a01:111:f400:fe07::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0475581c-4c6c-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 15:45:36 +0100 (CET)
Received: from AM6P191CA0049.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::26)
 by AM0PR08MB4403.eurprd08.prod.outlook.com (2603:10a6:208:141::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Tue, 23 Nov
 2021 14:45:32 +0000
Received: from AM5EUR03FT005.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:7f:cafe::ca) by AM6P191CA0049.outlook.office365.com
 (2603:10a6:209:7f::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend
 Transport; Tue, 23 Nov 2021 14:45:32 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT005.mail.protection.outlook.com (10.152.16.146) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Tue, 23 Nov 2021 14:45:32 +0000
Received: ("Tessian outbound dbb52aec1fa6:v110");
 Tue, 23 Nov 2021 14:45:32 +0000
Received: from d764d2ed4d3f.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 B81F37D7-280A-4DA8-BE04-9937953CE072.1; 
 Tue, 23 Nov 2021 14:45:20 +0000
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d764d2ed4d3f.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 23 Nov 2021 14:45:20 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM6PR08MB3367.eurprd08.prod.outlook.com (2603:10a6:20b:44::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Tue, 23 Nov
 2021 14:45:16 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4713.025; Tue, 23 Nov 2021
 14:45:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0475581c-4c6c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KDPhrhNp8c4RyScvZPAQiS28zsf54b2antgvUA/wqDY=;
 b=K6ZWsyl6R9irEqxGr3XGqPFjHRKvrlmCykBotNVVoNZ+i+HPnZIExEEDZDTIXmXKxtXyXCNd7CusRHVzNP3UqBoK9ZHJrctBGOJCHNiCpYmz5kFz/I/0YahnwqVZ3nglCEVnPmiK4hp5WtM6YZv0W4Qhib48T54qHMjORteJfEc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: f013f2b427da65a4
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GqF79gkG+P/2bMMq81uOoODLscnDrmgjCmXXXbqyaaOrvvJ8SqiVTls+3CZWMiUYjVWFA5/Z7SJNeyrze7qAcIlzhaIC+rrtCArX/BkQJ5ZA8hGKzWbgHogyzxwMuVMpZaxX2p5eN/LYolHMQ0BGWKyOkfJLWZG/243rum+JjfJO2AGek6hofpW5HmX2g+4OlNjUgERhnu3ALHHIq+URrDDTzHAR7aEOkufaBef2nNigB361kRkBT90Jk8DVworanPJqlQ4tyrdKJcPbUUjLJ0XU+pLd1uuU5vUc86/RupldyJyuWHSAWbVIhrR6ePagKIHiYtLyvrYBcG3Aoto0Zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KDPhrhNp8c4RyScvZPAQiS28zsf54b2antgvUA/wqDY=;
 b=YuW90gdT5QAKd2JXHIJENpa4pKSThTtsuUNur06TqaDoQ9e0nkTDbeObnbN07qPxRTDmQQBFa46297NP2+ZBdWqTjiS+okwSRMl8EADiY8BPNo0fM2Plq2jbkIATA30Uwtf363idJSY0M99FMeMf/gL9fUgPO90E6I5yDnw2w6QQ1zqmVApJ/TK7Nm9V6u3QEqEoWJWj/q2RzpYtYhC761y7GaRb2zfMvtvz9AWE04a4JsyW7nltq5lrCIeaZt8yY2PXGbT9cmRyJR+wAKaSJoBUmolCs2D2fDvDRELsdmSNfAbc0UStP4vxvhNBLXBLErQ0fARnujWXyxnSwrD9YQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KDPhrhNp8c4RyScvZPAQiS28zsf54b2antgvUA/wqDY=;
 b=K6ZWsyl6R9irEqxGr3XGqPFjHRKvrlmCykBotNVVoNZ+i+HPnZIExEEDZDTIXmXKxtXyXCNd7CusRHVzNP3UqBoK9ZHJrctBGOJCHNiCpYmz5kFz/I/0YahnwqVZ3nglCEVnPmiK4hp5WtM6YZv0W4Qhib48T54qHMjORteJfEc=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Luca Fancellu <Luca.Fancellu@arm.com>,
	Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, George Dunlap
	<george.dunlap@citrix.com>, Juergen Gross <jgross@suse.com>, Dario Faggioli
	<dfaggioli@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
Thread-Topic: [RFC PATCH 0/2] Boot time cpupools
Thread-Index:
 AQHX25mOHH0z58pAdkqC6AziO7R1GqwHg+AAgAAN94CAAAkVgIAABTgAgAB2SICAAHfeAIACmeEAgAAOqoCABfUlAIAADkaA
Date: Tue, 23 Nov 2021 14:45:16 +0000
Message-ID: <75B06FD4-B2EC-4C93-95B1-8E3C9A181913@arm.com>
References: <20211117095711.26596-1-luca.fancellu@arm.com>
 <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org>
 <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com>
 <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org>
 <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
 <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org>
 <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop>
 <17cd2c69-56cb-15b9-d381-f854aea55d27@xen.org>
 <alpine.DEB.2.22.394.2111191052050.1412361@ubuntu-linux-20-04-desktop>
 <d1139023-6788-2c58-5873-327e0917f868@xen.org>
In-Reply-To: <d1139023-6788-2c58-5873-327e0917f868@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: a038824d-49c6-41bf-6ad6-08d9ae8fe6ca
x-ms-traffictypediagnostic: AM6PR08MB3367:|AM0PR08MB4403:
X-Microsoft-Antispam-PRVS:
	<AM0PR08MB440316BBF1D3537EB33AA6349D609@AM0PR08MB4403.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 zhewgHgrYHrlgM21QZA5OvGin/iay3equIGUyiMgyGVgDql5R5K+CNmL1QwEFn14n3W4WZVrMNS2hqwS5eshtXOk/3b759Ml3Tmn2fr8wJavqmLT7l1mmxELkGvMMFS2gpAWjzAr8pbpC5q2eO/eBXHM74K0UmDA0bX33WoUq0n9b8eSN8c8P9/WoyJvk7OuerPSls157pW7J5S4jRK6JHHOk3BVKllDK2w8Tg7ma/urBXr5QCOIUOEXlwaciLzwoCaQffxfPHA0/inia1F46i+zP8QwZY+FZGRAGH4JWx1YlWq/6BSZsT+n6pLlsU1Ik9u7ilYgTOc4Rw7875mlcIiAFuozZuOpETN5C/Pht4cpufnhkYbx1nbruWCuVNT22vgNiESmKLoi3kRLzEOig67or/XXw/YLYkBcrrMxMjN+Rv74iepBOrtcNKsOwuCw1sh/JHMnYG37BMBiiriSvAJ4/nRXevovxhVru9PROkila4OrzuOPa0tjWF8knL+iBkqVnDgxj5KW6JZHImJ1KT7kXZzRi1NfWq9FfI2tDJ7Betze1l8zadJOzqDOsOlyOY7D31l/u9ZfgYkJ+X5hqAByhNiMQnkQsu+wXcBGZv8iTC3ZsIVb14ARrajKi8CcdgZu2bJMkixPjjZBfCJ+WmYtDqFpegSqwkPkBcHZml6hvG/3UCAZ3pPT2AA/dyMOTCZp8dyJxpeebLvPDmRfhqxHmPMQ9RoSQuGn9QFqChWBRiblklRC25r/9Qge9K2m
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(36756003)(186003)(86362001)(26005)(2906002)(2616005)(76116006)(38070700005)(91956017)(6916009)(8936002)(71200400001)(66446008)(64756008)(66556008)(66476007)(54906003)(66946007)(508600001)(316002)(5660300002)(6486002)(8676002)(53546011)(6512007)(6506007)(122000001)(38100700002)(33656002)(4326008)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <E6787D72FCAB7740902413998A0D7865@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3367
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT005.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	26f2d739-107a-4ffe-ed6a-08d9ae8fdd56
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	sdqcJiPxR1jRaI+EKarlMfF/WGpBjeUosL5e/lPGETrGaXerWocoWFiIJ0fTI4I+wjLS8Rr5jYUNiGHyXqPhDUcE51Gf7dH0qTQP48pT1FPJg7vDHIiHNAjz5j/ECXWZSlwHUEbqbkWuTNup7tiQzg6K+aueriSuRHnZFtJE5lSJ7s5m97q0tunogBKjiCD4kapCYikeQrqdiIFX1vrmcaCCs4cAC6Y4Yaz8Tc9HmRcGTISO+9WJowaRBJNLnPNRNtoaJeaL6UhDTLK/1uMaKYRjb+dApmou52iWtYfAUi6+vHZ/v9Q5E2SykuHhaoN658eOcC4TlX71gJxk04VfJ57Jh0wwqpxaneOyrJEIGjP6bPgY3kINleqANDJVDnFz5A9Iod32MdCCJxr9IOJeDQUEgjdUDTr4agep4X9jkGNoqFNEZkgouh3am6SOJMNgkM0dggDoOgstIre2CKRjwPD6F4xUQhb/cqiPJ644+U+eNYHxLNNwhy8eeKJPOjixYH2OlDtDWT6ZNFOb3JXSoYaDJSPPhzU1tlSMl/NG52yQ0K1vhdKAFIqzdUNLcVTJZ/S77WiEH+jHsYg1IpCd7+0m1bYEMHiVHHveCebokSgayw0X4z/eusjBmmHSTXWrvKA1OOlqQ3xqEx7ofcvEHz/YqJjNQoI2YeoxCue2RGFgfb7qPLMmFK8mJ9fcSn8ZQcm5PJMaO5G3A4YIBKvRBA==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(6512007)(86362001)(356005)(26005)(508600001)(107886003)(186003)(47076005)(6862004)(316002)(33656002)(6506007)(8936002)(82310400004)(53546011)(6486002)(4326008)(70206006)(81166007)(36756003)(5660300002)(36860700001)(2906002)(70586007)(54906003)(8676002)(336012)(2616005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 14:45:32.4617
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a038824d-49c6-41bf-6ad6-08d9ae8fe6ca
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT005.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4403

Hi Julien,

> On 23 Nov 2021, at 13:54, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Stefano,
>=20
> On 19/11/2021 18:55, Stefano Stabellini wrote:
>> On Fri, 19 Nov 2021, Julien Grall wrote:
>>> I like better Juergen's version. But before agreeing on the command lin=
e , I
>>> would like to understand how Linux is dealing with big.LITTLE today (se=
e my
>>> question above).
>> I also like Juergen's version better :-)
>> The device tree binding that covers big.LITTLE is the same that covers
>> cpus: Documentation/devicetree/bindings/arm/cpus.yaml
>=20
> Are you sure? I found Documentation/devicetree/bindings/arm/cpu-capacity.=
txt.
>=20
>> So basically, you can tell it is a big.LITTLE system because the
>> compatible strings differ between certain cpus, e.g.:
>>       cpu@0 {
>>         device_type =3D "cpu";
>>         compatible =3D "arm,cortex-a15";
>>         reg =3D <0x0>;
>>       };
>>       cpu@1 {
>>         device_type =3D "cpu";
>>         compatible =3D "arm,cortex-a15";
>>         reg =3D <0x1>;
>>       };
>>       cpu@100 {
>>         device_type =3D "cpu";
>>         compatible =3D "arm,cortex-a7";
>>         reg =3D <0x100>;
>>       };
>>       cpu@101 {
>>         device_type =3D "cpu";
>>         compatible =3D "arm,cortex-a7";
>>         reg =3D <0x101>;
>>       };
>=20
> I have not found any code in Linux using the compatible. Instead, they al=
l seem to use the cpu-map (see drivers/base/arch_topology.c).
>=20
> Anyway, to me it would be better to parse the Device-Tree over using the =
MIDR. The advantage is we can cover a wide range of cases (you may have pro=
cessor with the same MIDR but different frequency). For now, we could creat=
e a cpupool per cluster.

This is a really good idea as this could also work for NUMA systems.

So reg & ~0xff would give the cluster number ?

We will probably end up splitting cores into different cpupools even if the=
y are all the same as there are several CPUs having several clusters but th=
e same cores (I recall some NXP boards being like that).

Some device tree also have a cpu-map definition:
        cpu-map {
            cluster0 {
                core0 {
                    cpu =3D <&A57_0>;
                };
                core1 {
                    cpu =3D <&A57_1>;
                };
            };

            cluster1 {
                core0 {
                    cpu =3D <&A53_0>;
                };
                core1 {
                    cpu =3D <&A53_1>;
                };
                core2 {
                    cpu =3D <&A53_2>;
                };
                core3 {
                    cpu =3D <&A53_3>;
                };
            };
        };

@stefano: is the cpu-map something standard ? Lots of device trees do have =
it in Linux now but I do not recall seeing that on older device trees.

Maybe using cpu-map could be a solution, we could say that device tree with=
out a cpu-map are not supported.

Cheers
Bertrand



>=20
> Cheers,
>=20
> --=20
> Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 15:14:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 15:14:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229685.397180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpXVG-0005jA-LV; Tue, 23 Nov 2021 15:14:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229685.397180; Tue, 23 Nov 2021 15:14:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpXVG-0005j3-Hr; Tue, 23 Nov 2021 15:14:38 +0000
Received: by outflank-mailman (input) for mailman id 229685;
 Tue, 23 Nov 2021 15:14:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRmA=QK=epam.com=prvs=19611c0f38=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpXVF-0005iw-Gi
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 15:14:37 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10f6d42f-4c70-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 16:14:35 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1ANFDC51032101;
 Tue, 23 Nov 2021 15:14:32 GMT
Received: from eur01-he1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2052.outbound.protection.outlook.com [104.47.0.52])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cgyymrsh1-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 23 Nov 2021 15:14:31 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB4577.eurprd03.prod.outlook.com (2603:10a6:208:c1::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 15:14:27 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 15:14:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10f6d42f-4c70-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=np9hz3rxY2sfSYFOyiO44Ff7ZJvGw4gvoHTBL+kroVH3d0xfxZGETjj6xzFofcCKnEGd1fjN51M1kIxQ+98eg+QfjqhjeimqdS+p7zprvttkPTJiei3y71Z1ooDfxUOXcfXLK3JpNlDuW8LvANLYX8PPMjzhBqSW0QdjVYdpWg4UvnSkaLYskmFnyUUoMkeRWLftXEhWyny9NrZ4zRxAz5HABXETiY3lmzR1YhqpraHF255VOdocZMprPnudr56pykr0ods31V78mwpHcr2EPalOH+j81HGdayO+1sch2dYOPGy6NTbu8OUmKQhS/oCUl6sPtqzkmVZ9BQx3IxXWqQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WqRcsiHQaZOX+OGslcrYzfz+7HO+tAOOjbS+UMeeGkU=;
 b=EIOTLeoxf/RdOZK1M6SX3yxNyxj/ZHhzeBs+x31MxLY09eWCIyUh0QIGycuuDq2MftBcT5oxmwIIbaP44HSa3oa9bMr3u5vkzIRUzKvU6Q6ssVh/yUVNIXDkFRyFY8X8HQ9Qnhot/O61oqy9qB/I+k48lGtdJ23mqh0fJ5jASO0IhD3DFig+Y26UIl3SVEDDOgkEA77NYynudh0wOk5+w8ND0nAYXwpooyUfeVjRgi0JZm3NXbd1ojRhEZiYjgrjAIXUOceYavdXhRpjzvoRps33V2a8cHq0Ve3hjdH0Hdk2zjojFOwlNMUQIfg82TLhcdZgusdySIV65swIoLy7iQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WqRcsiHQaZOX+OGslcrYzfz+7HO+tAOOjbS+UMeeGkU=;
 b=LtsG2Xl75Vv7zKV+/HFrlsMjpjZddTzF4pHd7XEJ6V2u3JFyEv7G3laBqXGuvEDvvjAHIK0Jv8iGpxdvs/fJdxFjgcEWTEMO7QjRjdunku6OdNcxAIqh6xWpiJaBAzOuU80X3AWwB/g03hzbdSxx8faxq3x0ha1H/IZljcNvgOtrzTClyEiZrjxjqtM3IBz4ixTuhHQJWvwD1Cj4+i6DA79JBho3ZwzxRMat5FbfpRbj23wPQw12nbmuxPA9WjhFf+B1UdZ2OBAqpViR4kE4iKCRb5aXx+Lq3dgXc8a2OrCn9ElvTP/4dOF1iLTPX08g6+EMAvfU36nUUgA4e/JjXQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: "roger.pau@citrix.com" <roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Topic: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Index: 
 AQHX0hJK3jTao+VT7Ua3mM5UrGfltKwK1UUAgAADYYCAAAeUgIAAApWAgAAAtgCAAAGSgIAAAk+AgAZuEAA=
Date: Tue, 23 Nov 2021 15:14:27 +0000
Message-ID: <3192ef9d-c014-df72-91c9-13386bb584e7@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
 <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
 <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
 <6c61bd19-228a-fc12-eb64-00c8c5340292@epam.com>
 <ed2a6b5c-6e3a-07ca-a2f0-532a0de10329@suse.com>
 <c3b58e3c-9644-6e74-5ca1-25df33028b71@epam.com>
 <bab431c0-c4b4-09e4-cc3e-32ec8b3f5c7e@suse.com>
In-Reply-To: <bab431c0-c4b4-09e4-cc3e-32ec8b3f5c7e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 25b2657f-8cbe-469b-f7fb-08d9ae93f100
x-ms-traffictypediagnostic: AM0PR03MB4577:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB4577EF6B824F72D0200A551FE7609@AM0PR03MB4577.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 6aa+3ZIDVID1SRZf2DuLkdACOG/hUf7f0wTptxQ+IBZ9HoDQC4xlXkEY6YmQwwZBHUkb0tzW4bwKYBSYlII2sb4O4QHnxpgq776HI12aywr9IR21bhMPrqjuuZcS7vtg1eIPMyTaliBVHmzWZ0X6avD6KGPMR83s8DNJXXhDioLwxQdq3u3yYZ2iIgA7uXeeEYVRcTiKMaND/cgq6vwz2zFwuS92cjlsBvu/AfzYJM/TdrenO74DwrLo+d1K/j0ucrIA8ZdxI8N4VuNeOLQwbqpgzWB6sWmZjChhNf5vkllOQfWjMZ+ETEWrwrea/4Al4sQyg4sEmqk4T+XgdfnEpWgVTfJuRSlPhx/DCaBCCVKnls9rETx82Hyfq+RvvS2aTfrXIeNFVN6ro/tu/YVPGg7KzN+VJREEkuk+h8ybafjHTqkEIpGTtTSVFRqEfVQpD5X0I9J5lp2zHJBtVb7mLwINWrkE1sJlzaP38oyFNllTRPFUOXLUhpHQwWFXV5g7QthOcjJmYfT+A8Ovn1HMyGEsaA/3x3Sh/YD5UXRSmGUV9G4WMsKTAiFQ5N9rBGhbTwZqgC/esCI0W3+oqzNW96un3bacIYEw1Yxux5veQRCjQY6tesUDJep+YkQv2AHZ/B12ikGAk+i+wwpgmcEdd5H7L3MzxsZVD1TcWMCm1RgcfDgLt+UU05nMFwPFn+xOoFT75dp6E0sxSd1lWF6mKv7xKsNXCqaOpjv0JXitV3K8GM87PekFwWwa2uqNqQHr
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(2906002)(6512007)(53546011)(6506007)(6486002)(86362001)(36756003)(316002)(4326008)(38070700005)(5660300002)(8676002)(76116006)(66476007)(71200400001)(8936002)(54906003)(31686004)(508600001)(186003)(122000001)(91956017)(31696002)(6916009)(64756008)(66556008)(7416002)(38100700002)(66946007)(2616005)(66446008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?SCtYeWpxR2RIMVhqWVdUTGt2bEgyZFk1Y0p1azFURGkvWlI2QnI4YVEvVEFG?=
 =?utf-8?B?L3ZJcW8wZm0yNWEzMzlJRnRJUDlVNm1uNnVtOHlQTHBhbXhzTWhWM2pUbGxj?=
 =?utf-8?B?SWJ1TFVQVW9zaDEwZjZOTlFQczBKUlNoOElJV1VLeE9JbWV2STlCR3UvOUdk?=
 =?utf-8?B?YUI3V3dKN3lBRm5wcjEzdENzSVNTeDhTNmtxbmRpbVhJZUVvcCtFcmtQaGtn?=
 =?utf-8?B?aEp5YVhPYnMxSWNzTFhxcUp0MkUwNTRJWFV3WVd1Ui9LSG5RV3hzeFp1OHJl?=
 =?utf-8?B?R0JGUWxRRTd5c0ZKbWdscS85b21XdUZ5UU0rWDc2SWN1VnlKdkFCbTNpUmNH?=
 =?utf-8?B?NGszaURTKzVzUVp1ZmN1czVGaGpQSmwvb240MGphVEc0cGtRNnlVRTFmNnFY?=
 =?utf-8?B?L0tLU2hBS3RRNEo4b3pQYjgyRSt4a2dKc2JzUDRJWVFkYytPYms0N0tPVm05?=
 =?utf-8?B?cHR4LzUxSkQ3UllIL2dqSis1Q250dG9kNXZIWXpWRjV4NGJxMUJ2N1NOd2JS?=
 =?utf-8?B?bFFnaXhabUJOUHBwTHRuS3RSL2JsRXg5WTNab0ZjaE4wNjk0aTNLWnYxK1RV?=
 =?utf-8?B?OGxuUk1DeHZXQStSODgzRktWeWNUWmV3L0hENlFvOTZlMm1Sc0pZMzlFN3hN?=
 =?utf-8?B?ZVJJY2k1djN5Y09wYTdXcTNPclc1aWFjVlJrR3Fjakx1a3ZTUXlwNUdZMnpM?=
 =?utf-8?B?WlZ3dDdjNDJsYWdTMmthL0lSSGNZaStPUi8yOVd4cjBDb01MTUFXNldyNUcr?=
 =?utf-8?B?c0U3Rkl3d2FXc085SkxkU2MwTEpOeUJkOVVBVTJzaUZ2N080a2dKZHJQMmg0?=
 =?utf-8?B?UGRVNG5SL3ArbkdaeFJaREpTNnJ0UG9yNnA0YWVBRnN4UkNRL3B1bnlGTmlv?=
 =?utf-8?B?dS9EUFhMNUxVVUxqRXpNSUdmQnJPaHZIYVd4Uzg1bDNaa2NaNTh4b1lDZ3Zv?=
 =?utf-8?B?U09KS3p0aVk0QkhPanpUY1U2dnhVbzdrWkxzbXpWODRKRGJOUElNcTNUMU0y?=
 =?utf-8?B?eUNVeGtqVzNhc2ZzVXBVUDQyNjNqWTlJak1BeWg2R0ZYMTJHQmFNZFppZWJT?=
 =?utf-8?B?cU1jWGxEcmhmaDdVeGNFNFRGUFdRZkh0RCtmYU5tWU5OWll3bGtZbnFVQnBi?=
 =?utf-8?B?VmNIU2J6eUxaRGxISEFnS2Y1bzBhNFdpNFRlTkc0YmczdlR4MG82dVJMckhK?=
 =?utf-8?B?Y21WYjBaZUliSkk1WDI1V0EyQW51azJhSklvdEgyYWtLWnJhNGRmV2ZCN0VG?=
 =?utf-8?B?M2JyaU9RVUJOWUxDemlNdU5URVVIdFptdUdaZnZhNWVxY2MwSWhrQWYwWU8z?=
 =?utf-8?B?QnJLbFpVOGw3dnNITnQyY0hWQ3ZySGlxMUJiK2pFMjA4dVl0ckdOV1VLc2xO?=
 =?utf-8?B?eW5uU2lvdjdGdnl2ZUNRT2I0Ui9NZDZpamJONTdDczg2d1pqbkNydG01d2Zz?=
 =?utf-8?B?MHZoYUFVNm5NMEtqRCtsTVFlaTZvejdRQTNzcTFob1NJNVMyZStpWGhsK2gx?=
 =?utf-8?B?eWZRczhtakVEendlczVPNGJTN25mTnVpWktBMnNwYThiMUNYQUIvUENBQ3cz?=
 =?utf-8?B?VnlsbmF5Ums4NzBReDZ0MXJyTVBnN3RsY3k2bWFCRU4xRTNOdjQzRStHczZB?=
 =?utf-8?B?bDdBbVorQ082eFRvMVpCbWdjVmRTT0ZkeEdqOG5LblNsTGc3dEE3aWpNajdj?=
 =?utf-8?B?d1RRSzVrbjNtT3dlMUZldjdsVGo4Y2o3OUhOc3lBM2FGb2xCa0FUWUxLbmhG?=
 =?utf-8?B?cm91ZnMvMTZPSGZlU2NFLzEwci9vR29UY1UyWUhnc0gvOTl0SnU3YVM2UFds?=
 =?utf-8?B?WEdWdjJEK21uSXNCVWF1MzFCL01hVThGWmpITmljMFVDZTIxWUdwY2gvbVJL?=
 =?utf-8?B?eS9vcHFOUmlLMEdJV01WZHRFeExoYmtNMDdZaGNYak1oWU0ydll5TzhtRFZZ?=
 =?utf-8?B?SUxnRjZwWll2UTBHdXljdCtENFdLL09kdVNrb0hSZnFmSUVsVUxaSnhNRFUx?=
 =?utf-8?B?VWlCSzJjY0RPUWZzUjVsQzBwUDMzSXoyQUVZZWovc2U5dHVPWTVLcmZFYUlS?=
 =?utf-8?B?K0FBUDFKUXdJdGY3dlFZYTdmMkxLY0F2UDgyUURzMjluS2RSaE92U1JBcnJS?=
 =?utf-8?B?RlhtdE9sd0E3NUpKYVBkWE4yOUVGbStleEhGcTNqTEVlUTVHQ1VZd0d3VmN3?=
 =?utf-8?B?TmpIcVppVCtpK3VaZnB3Uk5yZ05JQmZhZzBsMkhpNzZJYnlqYmlOOUpEN1ZT?=
 =?utf-8?B?RWFHeG5Ha3J5cVRnZWlDKzRpOHNtSWZWcVF5S251aG9yWmQ4Z2EySUlOcXND?=
 =?utf-8?B?T1o5VERxaHJPdC9VZ3pGWVY0ZGljc05hdnZ2UGlSNDJnMWtZQmMvdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1960D9A437968F4F9B2D347C76D8733B@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 25b2657f-8cbe-469b-f7fb-08d9ae93f100
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 15:14:27.5508
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: WYrXGpAdgcDkho3foKrQlZ1sT2U4fW95DMSLvSjHYp2kafSmMOUeDEdzU49ANNOFi1kLQ0bueJtjnd0nGeXATGCBJ2vXyS7Px0UOTovaeHmPNfdNWHs23Gez3BSKHj/K
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB4577
X-Proofpoint-GUID: nU7JKuEwsqc3NO0yAPzlgshzdXH0GWag
X-Proofpoint-ORIG-GUID: nU7JKuEwsqc3NO0yAPzlgshzdXH0GWag
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-23_05,2021-11-23_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0
 mlxlogscore=999 spamscore=0 clxscore=1015 phishscore=0 priorityscore=1501
 bulkscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111230080

SGksIFJvZ2VyIQ0KDQpPbiAxOS4xMS4yMSAxNTowMiwgSmFuIEJldWxpY2ggd3JvdGU6DQo+IE9u
IDE5LjExLjIwMjEgMTM6NTQsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4gT24g
MTkuMTEuMjEgMTQ6NDksIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDE5LjExLjIwMjEgMTM6
NDYsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAxOS4xMS4yMSAxNDoz
NywgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+PiBPbiAxOS4xMS4yMDIxIDEzOjEwLCBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4+PiBPbiAxOS4xMS4yMSAxMzo1OCwgSmFuIEJl
dWxpY2ggd3JvdGU6DQo+Pj4+Pj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRy
dXNoY2hlbmtvIHdyb3RlOg0KPj4+Pj4+Pj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIu
Yw0KPj4+Pj4+Pj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4+Pj4+Pj4gQEAg
LTQwOCw2ICs0MDgsNDggQEAgc3RhdGljIHZvaWQgYmFyX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lf
ZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4+Pj4+Pj4gICAgICAgICAgcGNpX2NvbmZf
d3JpdGUzMihwZGV2LT5zYmRmLCByZWcsIHZhbCk7DQo+Pj4+Pj4+PiAgICAgIH0NCj4+Pj4+Pj4+
ICAgICAgDQo+Pj4+Pj4+PiArc3RhdGljIHZvaWQgZ3Vlc3RfYmFyX3dyaXRlKGNvbnN0IHN0cnVj
dCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4+Pj4+Pj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWwsIHZvaWQgKmRhdGEpDQo+Pj4+Pj4+PiArew0K
Pj4+Pj4+Pj4gKyAgICBzdHJ1Y3QgdnBjaV9iYXIgKmJhciA9IGRhdGE7DQo+Pj4+Pj4+PiArICAg
IGJvb2wgaGkgPSBmYWxzZTsNCj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+ICsgICAgaWYgKCBiYXItPnR5
cGUgPT0gVlBDSV9CQVJfTUVNNjRfSEkgKQ0KPj4+Pj4+Pj4gKyAgICB7DQo+Pj4+Pj4+PiArICAg
ICAgICBBU1NFUlQocmVnID4gUENJX0JBU0VfQUREUkVTU18wKTsNCj4+Pj4+Pj4+ICsgICAgICAg
IGJhci0tOw0KPj4+Pj4+Pj4gKyAgICAgICAgaGkgPSB0cnVlOw0KPj4+Pj4+Pj4gKyAgICB9DQo+
Pj4+Pj4+PiArICAgIGVsc2UNCj4+Pj4+Pj4+ICsgICAgew0KPj4+Pj4+Pj4gKyAgICAgICAgdmFs
ICY9IFBDSV9CQVNFX0FERFJFU1NfTUVNX01BU0s7DQo+Pj4+Pj4+PiArICAgICAgICB2YWwgfD0g
YmFyLT50eXBlID09IFZQQ0lfQkFSX01FTTMyID8gUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV8z
Mg0KPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6
IFBDSV9CQVNFX0FERFJFU1NfTUVNX1RZUEVfNjQ7DQo+Pj4+Pj4+PiArICAgICAgICB2YWwgfD0g
YmFyLT5wcmVmZXRjaGFibGUgPyBQQ0lfQkFTRV9BRERSRVNTX01FTV9QUkVGRVRDSCA6IDA7DQo+
Pj4+Pj4+PiArICAgIH0NCj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+ICsgICAgYmFyLT5ndWVzdF9hZGRy
ICY9IH4oMHhmZmZmZmZmZnVsbCA8PCAoaGkgPyAzMiA6IDApKTsNCj4+Pj4+Pj4+ICsgICAgYmFy
LT5ndWVzdF9hZGRyIHw9ICh1aW50NjRfdCl2YWwgPDwgKGhpID8gMzIgOiAwKTsNCj4+Pj4+Pj4+
ICsNCj4+Pj4+Pj4+ICsgICAgYmFyLT5ndWVzdF9hZGRyICY9IH4oYmFyLT5zaXplIC0gMSkgfCB+
UENJX0JBU0VfQUREUkVTU19NRU1fTUFTSzsNCj4+Pj4+Pj4+ICt9DQo+Pj4+Pj4+PiArDQo+Pj4+
Pj4+PiArc3RhdGljIHVpbnQzMl90IGd1ZXN0X2Jhcl9yZWFkKGNvbnN0IHN0cnVjdCBwY2lfZGV2
ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2b2lkICpkYXRhKQ0KPj4+Pj4+Pj4gK3sNCj4+Pj4+Pj4+ICsgICAgY29uc3Qg
c3RydWN0IHZwY2lfYmFyICpiYXIgPSBkYXRhOw0KPj4+Pj4+Pj4gKyAgICBib29sIGhpID0gZmFs
c2U7DQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArICAgIGlmICggYmFyLT50eXBlID09IFZQQ0lfQkFS
X01FTTY0X0hJICkNCj4+Pj4+Pj4+ICsgICAgew0KPj4+Pj4+Pj4gKyAgICAgICAgQVNTRVJUKHJl
ZyA+IFBDSV9CQVNFX0FERFJFU1NfMCk7DQo+Pj4+Pj4+PiArICAgICAgICBiYXItLTsNCj4+Pj4+
Pj4+ICsgICAgICAgIGhpID0gdHJ1ZTsNCj4+Pj4+Pj4+ICsgICAgfQ0KPj4+Pj4+Pj4gKw0KPj4+
Pj4+Pj4gKyAgICByZXR1cm4gYmFyLT5ndWVzdF9hZGRyID4+IChoaSA/IDMyIDogMCk7DQo+Pj4+
Pj4+IEknbSBhZnJhaWQgImd1ZXN0X2FkZHIiIHRoZW4gaXNuJ3QgdGhlIGJlc3QgbmFtZTsgbWF5
YmUgImd1ZXN0X3ZhbCI/DQo+Pj4+Pj4+IFRoaXMgd291bGQgbWFrZSBtb3JlIG9idmlvdXMgdGhh
dCB0aGVyZSBpcyBhIG1lYW5pbmdmdWwgZGlmZmVyZW5jZQ0KPj4+Pj4+PiBmcm9tICJhZGRyIiBi
ZXNpZGVzIHRoZSBndWVzdCB2cyBob3N0IGFzcGVjdC4NCj4+Pj4+PiBJIGFtIG5vdCBzdXJlIEkg
Y2FuIGFncmVlIGhlcmU6DQo+Pj4+Pj4gYmFyLT5hZGRyIGFuZCBiYXItPmd1ZXN0X2FkZHIgbWFr
ZSBpdCBjbGVhciB3aGF0IGFyZSB0aGVzZSB3aGlsZQ0KPj4+Pj4+IGJhci0+YWRkciBhbmQgYmFy
LT5ndWVzdF92YWwgd291bGQgbWFrZSBzb21lb25lIGdvIGxvb2sgZm9yDQo+Pj4+Pj4gYWRkaXRp
b25hbCBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHRoYXQgdmFsIGlzIGZvci4NCj4+Pj4+IEZlZWwg
ZnJlZSB0byByZXBsYWNlICJ2YWwiIHdpdGggc29tZXRoaW5nIG1vcmUgc3VpdGFibGUuICJndWVz
dF9iYXIiDQo+Pj4+PiBtYXliZT8gVGhlIHZhbHVlIGRlZmluaXRlbHkgaXMgbm90IGFuIGFkZHJl
c3MsIHNvICJhZGRyIiBzZWVtcw0KPj4+Pj4gaW5hcHByb3ByaWF0ZSAvIG1pc2xlYWRpbmcgdG8g
bWUuDQo+Pj4+IFRoaXMgaXMgYSBndWVzdCdzIHZpZXcgb24gdGhlIEJBUidzIGFkZHJlc3MuIFNv
IHRvIG1lIGl0IGlzIHN0aWxsIGd1ZXN0X2FkZHINCj4+PiBJdCdzIGEgZ3Vlc3QncyB2aWV3IG9u
IHRoZSBCQVIsIG5vdCBqdXN0IHRoZSBhZGRyZXNzLiBPciBlbHNlIHlvdSBjb3VsZG4ndA0KPj4+
IHNpbXBseSByZXR1cm4gdGhlIHZhbHVlIGhlcmUgd2l0aG91dCBmb2xkaW5nIGluIHRoZSBjb3Jy
ZWN0IGxvdyBiaXRzLg0KPj4gSSBhZ3JlZSB3aXRoIHRoaXMgdGhpcyByZXNwZWN0IGFzIGl0IGlz
IGluZGVlZCBhZGRyZXNzICsgbG93ZXIgYml0cy4NCj4+IEhvdyBhYm91dCBndWVzdF9iYXJfdmFs
IHRoZW4/IFNvIGl0IHJlZmxlY3RzIGl0cyBuYXR1cmUsIGUuZy4gdGhlIHZhbHVlDQo+PiBvZiB0
aGUgQkFSIGFzIHNlZW4gYnkgdGhlIGd1ZXN0Lg0KPiBHZXRzIGEgbGl0dGxlIGxvbmdpc2ggZm9y
IG15IHRhc3RlLiBJIGZvciBvbmUgd291bGRuJ3QgbWluZCBpdCBiZSBqdXN0DQo+ICJndWVzdCIu
IEluIHRoZSBlbmQgUm9nZXIgaGFzIHRoZSBmaW5hbCBzYXkgaGVyZSBhbnl3YXkuDQpXaGF0IGlz
IHlvdXIgcHJlZmVyZW5jZSBvbiBuYW1pbmcgaGVyZT8NCjEuIGd1ZXN0X2FkZHINCjIuIGd1ZXN0
X3ZhbA0KMy4gZ3Vlc3RfYmFyX3ZhbA0KNC4gZ3Vlc3QNCj4NCj4gSmFuDQo+DQpUaGFuayB5b3Ug
aW4gYWR2YW5jZSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:05:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:05:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229697.397191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYIA-0002jI-FI; Tue, 23 Nov 2021 16:05:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229697.397191; Tue, 23 Nov 2021 16:05:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYIA-0002jB-CH; Tue, 23 Nov 2021 16:05:10 +0000
Received: by outflank-mailman (input) for mailman id 229697;
 Tue, 23 Nov 2021 16:05:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpYI8-0002j5-Pi
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:05:08 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpYI8-0007AI-4v; Tue, 23 Nov 2021 16:05:08 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.23.209]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpYI7-00053C-Uq; Tue, 23 Nov 2021 16:05:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ta+jm+Gt497MPN/DO+peTWliyQ5fQsqw6lMXU8+fSLE=; b=BRRZwOZcfZO4we510ZjAUZB0Qf
	TvMVifu4T1Xh5T2K/aOdqZYc3ynXIsny24SBQbAOkK78ekjAMFaha5wu8I7YpGoY5F/f+OdYlNF+N
	VuD3EZ9kl6flgO0MzSWRs5nZKU0Vh1F/4IBN+tbXkmIXuogG+HaA6xXbcW1gETrjOC9o=;
Message-ID: <ab73f2e5-11d1-7cb4-89ab-74ef5eb1d32d@xen.org>
Date: Tue, 23 Nov 2021 16:05:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
 <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
 <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
 <e66c4189-acdf-c32f-4b50-51c8aaab4efd@xen.org>
 <315b1308-5adc-c4f3-6150-1060dbac5f4f@epam.com>
 <9f8e424d-ad1c-2d32-a470-68b275adf22c@xen.org>
 <0aff1bbb-eaf8-4deb-0808-d7db5f1ba8f5@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0aff1bbb-eaf8-4deb-0808-d7db5f1ba8f5@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Oleksandr,

On 23/11/2021 06:31, Oleksandr Andrushchenko wrote:
> 
> 
> On 22.11.21 19:17, Julien Grall wrote:
>> Hi,
>>
>> On 22/11/2021 16:23, Oleksandr Andrushchenko wrote:
>>> On 22.11.21 17:29, Julien Grall wrote:
>>>> I would prefer to go with my way. This can be refined in the future if we find Device-Tree that matches what you wrote.
>>> Ok, so just to make it clear:
>>>    >a PCI device would always be described as a child of the hostbridges. So I would rework the 'if' to also check if the parent type is not "pci"
>>
>> That's correct. Thank you!
> Ok, so how about
>       if ( is_pci_passthrough_enabled() && dt_device_type_is_equal(node, "pci") )
>       {
>           bool skip = false;
> 
>           /*
>            * If the parent is also a "pci" device, then "linux,pci-domain"
>            * should already be there, so nothing to do then.
>            */

This comment is a bit confusing. I think what matter if the parent is a 
"pci" device, then the current node must not be a hostbridge. So we can 
skip it. However...

>           if ( node->parent && dt_device_type_is_equal(node->parent, "pci") )
>               skip = true;
> 
>           if ( !skip && !dt_find_property(node, "linux,pci-domain", NULL) )
>           {
> I played with a single if and it looks scary...

... how about introducing an helper that will return true if this node 
is likely an hostbridge?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:12:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:12:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229704.397201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYOv-00049p-6m; Tue, 23 Nov 2021 16:12:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229704.397201; Tue, 23 Nov 2021 16:12:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYOv-00049i-3X; Tue, 23 Nov 2021 16:12:09 +0000
Received: by outflank-mailman (input) for mailman id 229704;
 Tue, 23 Nov 2021 16:12:07 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpYOt-00049c-J9
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:12:07 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpYOt-0007IW-28; Tue, 23 Nov 2021 16:12:07 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.23.209]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpYOs-0005WD-S9; Tue, 23 Nov 2021 16:12:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=/ovm3QopKui8465+wSHBv0vWMc0nPMpTN3/YflDPBpU=; b=1u4vHZbCP7yFWvP2Pbe9eGWhWP
	UNTKg4KqibYk4LLRJxYun+PNOZWV3qPeUvOIZgrbHHqiX/NKEWtqnIPPiOhyvQmKmCa8bryjwu5ZE
	5/tnRAPTzwyg29LU6GOSYgXqdfC3zqZaB/P+vzUwUh5GK4X+XhEOF28Mdx3LU05QG2fw=;
Message-ID: <ef17fbe6-9768-9978-fa8f-6be757034234@xen.org>
Date: Tue, 23 Nov 2021 16:12:03 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
 <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
 <2f414e8f-67d5-d513-74d4-cc21a3a9ed28@epam.com>
 <9f712f79-9660-865a-3002-713950518819@epam.com>
 <117a57d1-aa4f-8153-8bba-2db47c234b81@xen.org>
 <c6232073-b59a-609f-3852-ddcac0859c2c@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c6232073-b59a-609f-3852-ddcac0859c2c@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 23/11/2021 06:58, Oleksandr Andrushchenko wrote:
> Hi, Julien!

Hi Oleksandr,

> On 22.11.21 19:36, Julien Grall wrote:
>> On 18/11/2021 10:46, Oleksandr Andrushchenko wrote:
>>> On 18.11.21 09:27, Oleksandr Andrushchenko wrote:
>>>>>> +    unsigned int count;
>>>>>> +
>>>>>> +    if ( is_hardware_domain(d) )
>>>>>> +        /* For each PCI host bridge's configuration space. */
>>>>>> +        count = pci_host_get_num_bridges();
>>>>> This first part makes sense to me. But...
>>>>>
>>>>>> +    else
>>>>> ... I don't understand how the else is related to this commit. Can you clarify it?
>>>>>
>>>>>> +        /*
>>>>>> +         * There's a single MSI-X MMIO handler that deals with both PBA
>>>>>> +         * and MSI-X tables per each PCI device being passed through.
>>>>>> +         * Maximum number of supported devices is 32 as virtual bus
>>>>>> +         * topology emulates the devices as embedded endpoints.
>>>>>> +         * +1 for a single emulated host bridge's configuration space.
>>>>>> +         */
>>>>>> +        count = 1;
>>>>>> +#ifdef CONFIG_HAS_PCI_MSI
>>>>>> +        count += 32;
>>>>> Surely, this is a decision that is based on other factor in the vPCI code. So can use a define and avoid hardcoding the number?
>>>> Well, in the later series [1] this is defined via PCI_SLOT(~0) + 1 and there is no dedicated
>>>> constant for that. I can use the same here, e.g. s/32/PCI_SLOT(~0) + 1
>>
>> I would prefer if we introduce a new constant for that. This makes easier to update the code if we decide to increase the number of virtual devices.
>>
>> However, I am still not sure how the 'else' part is related to this commit. Can you please clarify it?
> Well, yes, this is too early for this patch to introduce some future knowledge, so I'll instead have:
> 
> unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
> {
>       if ( !has_vpci(d) )
>           return 0;
> 
>       if ( is_hardware_domain(d) )
>       {
>           int ret = pci_host_iterate_bridges_and_count(d, vpci_get_num_handlers_cb);
> 
>           return ret < 0 ? 0 : ret;
>       }
> 
>       /*
>        * This is a guest domain:
>        *
>        * 1 for a single emulated host bridge's configuration space.
>        */
>       return 1;

I am afraid that my question stands even with this approach. This patch 
is only meant to handle the hardware domain, therefore the change seems 
to be out of context.

I would prefer if this change is done separately.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:21:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:21:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229711.397227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYY2-0005uY-FH; Tue, 23 Nov 2021 16:21:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229711.397227; Tue, 23 Nov 2021 16:21:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYY2-0005uR-9w; Tue, 23 Nov 2021 16:21:34 +0000
Received: by outflank-mailman (input) for mailman id 229711;
 Tue, 23 Nov 2021 16:21:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpYY1-0005kB-Hn
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:21:33 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpYY1-0007SF-Gv
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:21:33 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpYY1-0005q5-FD
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:21:33 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mpYXx-0006Oo-KR; Tue, 23 Nov 2021 16:21:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Subject:CC:To:Date:Message-ID:
	Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=nYkTcaFp7raOo29VUM27G7kF5hG5+Ja34tfnmoQX9sg=; b=3Yx7bfdmZvFISNpZOzr6b6+BHK
	6Q4W815SjVOWpR6FLnQgG9zLKpgkInfkz3p4eU7YjDVwiJIUMDzL23PoPvZaDCZjvjmTSp7fwdKsu
	nrmy4j1oXLAVp8TyzNVR7nfWdwOafs+qHUaqksxSZh8+7LlK6ijm9w1NOUejpX7svyKc=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24989.5385.105735.243965@mariner.uk.xensource.com>
Date: Tue, 23 Nov 2021 16:21:29 +0000
To: xen-announce@lists.xenproject.org
CC: xen-devel@lists.xenproject.org
Subject: Xen 4.16 RC4

Xen 4.16 RC4 is now available.

It is available from git:
  git clone https://xenbits.xenproject.org/git-http/xen.git -b 4.16.0-rc4

For your convenience a tarball is available:
  https://downloads.xenproject.org/release/xen/4.16.0-rc4/xen-4.16.0-rc4.tar.gz
  https://downloads.xenproject.org/release/xen/4.16.0-rc4/xen-4.16.0-rc4.tar.gz.sig

This may be the last RC before release.

Ian.
Xen 4.16 Release Manager


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:22:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:22:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229729.397237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYZB-0006rc-TR; Tue, 23 Nov 2021 16:22:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229729.397237; Tue, 23 Nov 2021 16:22:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYZB-0006rT-Pz; Tue, 23 Nov 2021 16:22:45 +0000
Received: by outflank-mailman (input) for mailman id 229729;
 Tue, 23 Nov 2021 16:22:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xsi5=QK=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mpYZA-0006RI-7f
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:22:44 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 94f6b9c8-4c79-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 17:22:43 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94f6b9c8-4c79-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637684563;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=bdCFgC4VsmA6Y60Jj+c5NxkNjUDcy+5vjQghbqi/Jso=;
  b=Mtwsr+EUmzOCfXrn/Si9nnnjxdxh5WuH/JHXk3q8RN8IB3DnX2EoCf/t
   4ctYRyfbcq4npKzOOLDLC2nOEYiapd23JgH7cTT0NA9MgS9BRxS9+LJoE
   7ReO8IbKraVwWF3jS7ZXSQU9emgo7/9ktfzQdX101IGLo/ihZrBhz5X7j
   o=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: F455lNHkRNZflwOiQsuSnsQMwe2i88vXa/7luDdljiMskFvOxotrISFzBjmMPjjN59PS+jnxml
 0jQENPBLFvaXhe8oOKSlp/+A6txOlybv6dM2RECe9oiA29K3KxGh2Fz5rfweVJbTa4FQW0iyuY
 mDCbWL2lT8VBFy0D1TiBm+2nqnyacVE7UsiZrl2+ZSGz3w6zyhgSsgR8emM/Gxup7dtMmPnLlG
 inXzJHX2ZHCxu+pIV8B7fxBwzrJLV0KMD2AsN29Q3zm38iqXCDjfpx0/dKYYyunVYgKr4kTWvh
 H6OFCkCWzomijun6fU8UshwD
X-SBRS: 5.1
X-MesageID: 58466136
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:5T4Jaq4UztcDDbqnWZ9YnQxRtB3DchMFZxGqfqrLsTDasY5as4F+v
 mtOCjqAbqnZa2Chft8gaIm2p0sD6pfQxtIxQFc+q3s2Hi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NUw2rBVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z4
 /NDkaCTRTYVEpb2xPQWeB0JLiNxFPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALNs7kMZlZonh95TrYEewnUdbIRKCiCdpwgWds2J4XRqi2i
 8wxUxBqVUTwchF1YGw1UJw8sca02mjPSmgNwL6SjfVuuDWCpOBr65DhOcTYUsaHTsJUmgCfv
 G2u12/wGB0dOfSUwCCJ9X/qjejK9Qv3V44fG6ex3uJ7i12UgGoIAVsZUkXTifW3g0GxWtVbK
 mQP5zEj66M18SSDTN7mX1unoH+Ysx4RUtZ4H+og7gyX1a3O4B3fDW8BJhZDZ8Yhr9QeXiEx2
 xmCmNaBLTFrvbucD2+T97KItj6sMAASN2YJYSJCRgwAi/HhqowuihPETv54DbW4yNbyHFnYy
 DePqTU4hqkCy8sC0ay08Ervkz+qvoLOTAM++kPQRG3NxgJmZqa1aoqw81/Z4P1caoGDQTGpo
 3wsi8WYqucUAvmlljGJQegLNKGk4bCCKjK0qVRoFZMw+i+t/3OmdIZ47zR3JUMvOcEBERfiY
 FXSoh9W/J9eJj21K6RzapiyI8svxKnkU9/iU5j8Z95PeYR4dRXB8jtnY0WRxEjynENqmqY6U
 b+RfNywF38cBeJixSCvWuYG+bYxw2Y1wma7bZLmyVKh2LmXZn+QQJ8ENkeDaqYy66bsiB/O8
 8xeLcKP4x5EFvD0aW/c+OY7NksWJHI2AZT3rc1/deOZJAdiXmY7BJf527ohZogjhKVTmefg9
 2u4HERfzTLXnnTCNAiOLGxjabnmQJJjhX89JmkoLFGunX85bu6H8KYaX4s6e/8g7uML5e55S
 bwJdtuNBtxLSy/b4HINYJ/ltotgeR+3wwWUMEKNeyQyYJd6W0rJ+9vocwH1/S8CJiawr80zu
 aKnzADAB5EEQmxKEM/TYemH01C1sH4Sie92GUDPJ7F7e0Lq6oFmbTPwivwfJNsFIhHOgDCd0
 m6+BB4CoODXrowd8d/XhLuFpYOkD+t/GEVBG2DRq72xMEHy4G2nxoNRVfeSSjrUXmj05aaKa
 P1cyrf3N/hvtFVHrYt6VapqxKQW5t3zqrscxQNhdF3TZkmvIqNtJD+Bx8YnnrRQz7kfqRbuc
 k2K89hef76OPavNFVMXKxo4Ru+CzrcJgjTU67I4LFiSzDVw57CdVkJROTGFiSpTK6B4O8Uux
 uJJhSINw1Xh0FxwaI/A130KsTTXRpAdb0k5nro8DqvXqQYa9n15W8DMAQTysayNZPwZZyHGP
 QSorKbFgr1dwG/LfHwyCWXB0IJhuHgehPxZ5ARcfgrUw7IpktdyhUQMqmpvEmy52z0ei7orU
 lWHIXGZMklnE91AoMFYF16hFAhabPFy0hygkgBZ/IE1oqTBa4AsEIHfEbrdlKz62zgFFtS+w
 F1+4Dy9OdoNVJuvthbeoWY/95TeoSVZr2UuYvyPEcWfBIUdajH4mKKobmdgg0K5Wpxv3BOa+
 LU1p7sYhUjH2cg4+fVT526yj+p4dfx5DDYaHaEJEF0hQwkwhw1eKRDRchvsK6uh1tTB8FOiC
 twGGy68f0/W6cp6lRhCXfRkC+YtxJYBvYNeEpu2dT9um+bO9VJB7cOPnhUScUd2Gr2CZ+5mc
 diPH99De0TN7UZpd5jl8JMZZzHmOIZcP2URHomdqY00Kn7Ki8k1GWka2bqopXSFdgxh+hOfp
 gTYYKHKiedlzOxRc0HES82v3i24doH+Uvqm6ge2v4gcZN/DK56W5QgUtkPmL0JdOr5IA4Z7k
 rGEsdjW2kLZvelpDzCFysfZT6QZt9+vWOd3M97sKCUIlyW1R8KxsQAI/Hq1KMIVnYoFtNWnX
 QaxdOC5acURB4VG3HRQZiUHS0QdBq37Y73OvyS4q/jQWBER3RaedIGs9GPzbHEdfSgNYsWsB
 gjxsveox9ZZsIUTW0NUW6A4W8d1eQaxV7Enetv9sSijIlOp2l7S6KH/kRcA6C3QDiXWGsjN/
 p+YFAP1cw6/uf+UwYgB4ZBypBAeEF10nfI0IhAG49dzhj23UDwGIOAaPclUA51YiHWvhpTxZ
 TWLZ2o+EyTtGz9DdEykstjkWw6eAM0IO8v4eWN1rx/FNX/uCdPSGqZl+wdh/2xyK2nqw+yQI
 N0D/mH9Y0qqyZZzSOdPvvG2jI+LHB8BKq7kLawlr/HPPg==
IronPort-HdrOrdr: A9a23:4xJZIaPx4gzJlcBcT1v155DYdb4zR+YMi2TDiHofdfUFSKClfp
 6V8cjztSWUtN4QMEtQ/uxoHJPwO080kqQFnLX5XI3SJzUO3VHHEGgM1/qB/9SNIVyaygcZ79
 YdT0EcMqyAMbEZt7eC3ODQKb9Jq7PmgcPY9ds2jU0dNT2CA5sQkTuRYTzrdHGeKjM2YabQQ/
 Gnl7V6TnebCD4qR/X+IkNAc/nIptXNmp6jSRkaByQ/4A3LqT+z8rb1HzWRwx9bClp0sPsf2F
 mAtza8yrSosvm9xBOZ/2jP765OkN+k7tdYHsSDhuUcNz2poAe1Y4ZKXaGEoVkO0aySwWdvtO
 OJjwYrPsx15X+UVmapoSH10w2l6zoq42+K8y7QvVLT5ejCAB4qActIgoxUNjHD7VA7gd162K
 VXm0qEqpt+F3r77WXAzumNcysvulu/oHIkn+JWpWdYS5EiZLhYqpFa1F9JEa0HADnx5OkcYa
 dT5fnnlbVrmG6hHjLkVjEF+q3oYp1zJGbIfqE6gL3U79AM90oJi3fxx6Qk7wE9HdwGOt55Dt
 //Q9ZVfYd1P7grhJJGdZQ8qPSMexnwqDL3QSqvyAfcZeo600ykke+C3Fxy3pDtRKA1
X-IronPort-AV: E=Sophos;i="5.87,258,1631592000"; 
   d="scan'208";a="58466136"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mRUSBmVAF0/MJssUd+xXOK6lTScYPxQeIXcbLXOFZNaAXwahqTnJoTcboP/6UxbNLTX0JsyhU8wsE08wIsXzgrkWNkNs6n7AOgE+AfUfLow5MieCG1Dfxt7cvz96jd1IursvuGR8bsWnMwIXc7k1IwNE+FrxEvlAqJmgnT3/J1ZjSctMmnQSpxLr5HBMZ/3xM07FJEp6pgVK5zf3akgUa0FbVbEApFLwKPtPKBClxkz1H+V6A8hJl4Bwt7aF8WJlHsUDKosFActHgbcDeQoqCleIE51ToUT0Ffqrea1awzrmbxI3pVxmaHDN3E+Mio6ln/Ygk4syU6YDg7ywWTfe1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=h5cSvHwx5mRuoUuZYmyA3IWwqycmpxyoNT0Z7Sj1WLg=;
 b=NcxGbzHul6lTuXiZesveeoiS4bL5nF0ImX26TKo2rWmlm+J/Y86GhbuK+HI2mv1iMScqdFNQolMtPNftGL4oHl8yzXeuTkRnYDMCa3/QLCDO89m/6A+9JsGddI1OFlappzhmfPqtksw3H9UD4rmQkgR6KPKLGhqbw77UKG/DZ8G+bCmyZX+iGJ/DP6HdDm6D0WylMc2TGNeMH0VXsmoD7qiv84lPG/A0QLatIIffWTo+0SACDTEu3/rW30HHYqvu10rtwkixmBNjNXE4m3SFddg5NMNJyT+4Z4kBrei4oGuvfQ3ITANjmzYR/nWeP3HecH7gfceyIviAtoJLWs1HyA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h5cSvHwx5mRuoUuZYmyA3IWwqycmpxyoNT0Z7Sj1WLg=;
 b=rYXFzI1pZfcBUhiJy7ukBesKJZ8T/VAbU6XHvwFu5iHigRXiI3GFDIg2u6PTCY06wfYPz2NwSYKE04Xo/dR6N7cDrp59zusp/O9Rf7jtDoadeL7wzAXu+kBUDwphC2AC8ap4xSTu2XLOtuBHwi+DcJVfamCQRDso+6HgnlYXA/Q=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Community Manager
	<community.manager@xenproject.org>, Ian Jackson <iwj@xenproject.org>,
	Alistair Francis <alistair.francis@wdc.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Jan
 Beulich <jbeulich@suse.com>, Josh Whitehead <josh.whitehead@dornerworks.com>,
	Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>, Jun Nakajima
	<jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>, Konrad Rzeszutek
 Wilk <konrad.wilk@oracle.com>, =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, Nick
 Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Quan Xu
	<quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Shriram Rajagopalan <rshriram@cs.ubc.ca>, Stefano Stabellini
	<sstabellini@kernel.org>, Stewart Hildebrand
	<stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei
 Liu <wl@xen.org>
Subject: [PATCH for-4.16 v3] CHANGELOG: add missing entries for work during the 4.16 release cycle
Date: Tue, 23 Nov 2021 17:22:27 +0100
Message-ID: <20211123162227.74606-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0045.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500::33)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 11db1529-0b5d-4fdc-8901-08d9ae9d7515
X-MS-TrafficTypeDiagnostic: DM5PR03MB2780:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM5PR03MB2780BADAC5866033D360A9C68F609@DM5PR03MB2780.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: L6TByioMx7z+hVCovdgfwpIzbf4fQ9y36Gf6aODG5FSlGfgboPVBxZMTe7N1tcPPV3uU8pX30S3a9xW+cZxQvcMWH66ANCThBHA1AeQjPdoa8VvBbMqo4cpQph5cy9gzLJWybKEzIF0VtdpTM9kA6GP3FZ8EnSJwYhEjK6UCI7NQUKjGAA6maWyLDbdtuxvDH03FdBN6YrsJdh7vA0sen/yi/diA9yDa4E+0Q7boInzsW0Wx9FWVlRZBpUFR3E9vR6nrQNptJFWD/wKyYrxgeWNG7JhdrrJwz+DMo9uJDZ9qS6u2r941Sj5ui+ZNHCvHL9nvDP8JQm4sjaRE71n5WeLTRoTfY4wjiqY+saZZ7CuM8ychv/TKsngrnFJ02VEwl7wtGQzEqQqPrVcHpCkMEsOtYsfcEKVqRFAmRiPgyeQl4GKi/yoDR/+WnyP+MmOvt/oXcpj/ez++MeLqoKYKuzeP7oe6opMnQhvnliFXC7HbB6LkNeFfonoSDEfbfuFVnDTwyCe4d4q/f79gId5HW4lprLFc9ZTF8fIypnJtYjDcDWkGojxeaGvMKGWykOKysIUXT2d1FOnDgR4JhAzG5ZjtmG/f4e+LSs8xxpaa2VQHz4YYiMijRwA4ST/zWmbvseKiucE17YpIyQSfwEBTdcsJ16lCTpIqMiFfukdWVPn5Ot6mvBkR+F0pWHet9t7ytO10D/inuvrLI+qgbHiomcRWp2YiupGC7EuyiFZGGMvcFc3QTzlUArPQonZwYLLLp/C552RdD5DzDFTr5aNW2EZ/z2xjAbjJMGuFZSBn6PyskIYFSWH+vG2lfvwtLZSEaLXR2+yqamn9E7AQucURM5JyLVdAGYj6Tvr44POb9Jg=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38100700002)(36756003)(4326008)(508600001)(26005)(186003)(66574015)(2616005)(956004)(7406005)(7416002)(83380400001)(2906002)(316002)(86362001)(54906003)(66556008)(66476007)(66946007)(6496006)(8936002)(8676002)(6666004)(82960400001)(6486002)(5660300002)(6916009)(1076003)(219803003)(207903002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aDVkSFhJNDkyZ3k3NmNtOTQ4K0lXeno1b1loU1RIK29GMFlsN0M2b3BkWnJE?=
 =?utf-8?B?Tkc3VzNpRUR0eGV1TFMvbnpiY0xxVURCQlRzSlBnWmVxVVNqZm1RM2ZnNWVt?=
 =?utf-8?B?TEV4VXdoOHFTcjhzNVRZeW9MYy9TQ0J2eG9GSCs2UjI4YVplNjFxMFNnT0lv?=
 =?utf-8?B?TTlaQnUvWCtyL0p2VHl0UWVmbmkva3A1MnN3SVNHd2g5MS9lZ3k1TXZ2OWVp?=
 =?utf-8?B?d2w5ZkxVUHkvU1Jkb1J4MEVCSWt2Y3ZWSWUweldqSEZxT3EreDNxTHdaQis0?=
 =?utf-8?B?QXNnc204Uk5XaVdvc1Y5NGZ1eVVpN09RYm9FSzhITUZLdHZtN1B0TGhYUWdE?=
 =?utf-8?B?R2VUL1BhRkdzYWVweGdCUFF6NXB2bnh4UWlhTmNranRSaW40NDNmcnM2MS9t?=
 =?utf-8?B?R3J3SVMzS3BOV2JZL3RzUm5idU9zaUJGckNrZTRYeUVIQ3c0VkVQZzIxNk41?=
 =?utf-8?B?K1hkUFp1VThqQmpKZHdUY1FEMkdZSjhHRk1YZ3o1UW1aRjFWRElwY1FUMFJI?=
 =?utf-8?B?dHZZc0J1T0JMeUdJSGFjNkllUEVBR3JyV3lCRVo5QnFRd0paSmZBT3dpWDVa?=
 =?utf-8?B?RTFFbEM1Q1ZyOU5DV2YyWVQ4SXVuTXVtR1FrY1hlb21UcCtxYi9rSFhRVC90?=
 =?utf-8?B?amxKYWJodjlnRy8vRG9BOW95RTRBNDNRMUxzWjBzY0NRTk8zRVJLTEpKWlYw?=
 =?utf-8?B?ZE1tRzQyKysvZ0ErTStjNmtJZHFWQkRtcG5lQjd1QzFGYjRxTDR0YVJUdllq?=
 =?utf-8?B?TlpvK1F6WVQ5UzQxSFVwemRpcWhtNHJwYjRKdE5zTWo1WjIyb2IvZGgraWZk?=
 =?utf-8?B?L3pQWGpTRVZndm5VRWpmTjQvVGVNVjlhWHh2empBSmNBb0l4Smg3bmxDejlq?=
 =?utf-8?B?MWIwR0NmbStscWlWcDlJUUw0bVJPWGZ0WVN5T05OSnVaWnl0V3ZPc0orV0R2?=
 =?utf-8?B?OHJTeFFyN1dkRFk2QnJIcHREVTFkc1Rlb1VXSWVMV2ZVQlluVTNmUmQ0Q0NN?=
 =?utf-8?B?L0EwUHlCdVA5M3BJSkxHTTNnR0NiSnd2MWhKOVh5MnZsTFp4SERTZFQ5WmVy?=
 =?utf-8?B?djhuVDZyTXRKUkkzRmt0dnRhYll3NFZPb2h3TnJwMGt1dDdBQUg1a3ROa0pl?=
 =?utf-8?B?ZW1NRGlMK3plQkFvd1lidUlvOGVuNzJxaW9OSGhCbEloOXk0cmg1MENaQlp6?=
 =?utf-8?B?Nko4Vi9IWmNpL1FQRzRRZ3E3K1FFUzViOWpnS0E3SmJKbzhkSHRMODdFcDZI?=
 =?utf-8?B?YU1YaUlocm5tZGRXanFGazVhMk1vL3U5VVl1ZDRvZkkraUJVYkRQZzBUaWU1?=
 =?utf-8?B?Rmowc2M5ekJ5WEtEaVZENkRtVDVGdkZKb0daTzJmS1R4NGdHdVphbllidFJv?=
 =?utf-8?B?MytRK1VGRERIVWV3T2pUQStUYzRiaTJmNGRnZTFxV2dpS2d4K0gxMVBVUnF2?=
 =?utf-8?B?bCtlL0hWNTNIKzFqV21HaVFXbjlkT2dlUjJMK1podG1DV1A5SzZtb2VTRklM?=
 =?utf-8?B?TW1pSkIvOHBFV0hFbE13YThBQWZtaDNPL3c2MGMxUjJFME5EYUZhNy9rUkx6?=
 =?utf-8?B?dmRSNU5JdHA4QUd4OHhWN3dSZTVzV0hDdi9xZjNwdmcrTlFWQXJoYVBzZHJY?=
 =?utf-8?B?UHU1bDdZOXI3Yk90VXVyUFlYTzhLZ0huYm1DVkFHcUdQeHU4MWNrL2d5K1dp?=
 =?utf-8?B?WGFldGdhbmdhTHE4T0pKUVJPcWhjMnZmY0NEMzF6MklIWjI4SHIxbU1IekM5?=
 =?utf-8?B?ZjFDd3VKM1FPMzhwTXNVejVpUjNNQzJiVllhOWRhTGxOQU4zbTc3bWJZbXNw?=
 =?utf-8?B?cU9YYjhFeWhOcEQxaElWTlR5N0pGdHdtWHgxYWJKU1ZMSFFBQ1U2WG91YkFM?=
 =?utf-8?B?NVZPVnRnNFFYckNkV2ZseVAySDl5UG1sMmhtQVYxQVpsQkN2RU10dnlkUTkx?=
 =?utf-8?B?Mit0NEZ0em15VUVETEdpTDBIVDAxeGN0c0tVSVBuUGplVnptSld2bG43b1J3?=
 =?utf-8?B?eUlLamg1QUgzSmtDY1pEUnRXaldXcG1seXFnMU5vQWVTbGtRZFU1YzhteGtC?=
 =?utf-8?B?V3FEOU1vdUt0Ylk5VWxQTHdDWFRvaDRtdVMvVC9IekQ4cDVoeC9jemlEOXlR?=
 =?utf-8?B?UngrWHhUVVZOeE5RSGhnTUYxR0ROTC94UGNTQVZTaXNic1pnUlFCSXEzcnZZ?=
 =?utf-8?Q?U9zjnyKN15eVNtiYg7W3o48=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 11db1529-0b5d-4fdc-8901-08d9ae9d7515
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 16:22:34.8702
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ewWhTXPaqtYEYlM3qjSm0J2IGdQjBpfXmW2OdGkBDhGS2HmekYhJP1ttVvjMHCEvMxiJHeJujwPJjcC2k/TA/Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2780
X-OriginatorOrg: citrix.com

Document some of the relevant changes during the 4.16 release cycle.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
---
Changes since v2:
 - Reword the x86 page table API change.

Changes since v1:
 - Add qemu-traditional and pvgrub notes.
 - Expand vPMU support to note it's limited.
 - xenstore library API changes.
 - xencall2L addition.
 - gitlab CI changes.
 - dom0less improvements.
 - vGIC fixes.
 - New Arm features.
 - OP-TEE fixes.
 - Arm64 heterogeneous CPU support.
---
Cc: Alistair Francis <alistair.francis@wdc.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@citrix.com>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: Bob Eshleman <bobbyeshleman@gmail.com>
Cc: Christian Lindig <christian.lindig@citrix.com>
Cc: Christopher Clark <christopher.w.clark@gmail.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Cc: Dario Faggioli <dfaggioli@suse.com>
Cc: David Scott <dave@recoil.org>
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Cc: George Dunlap <george.dunlap@citrix.com>
Cc: Ian Jackson <iwj@xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Josh Whitehead <josh.whitehead@dornerworks.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Jun Nakajima <jun.nakajima@intel.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Cc: Meng Xu <mengxu@cis.upenn.edu>
Cc: Nick Rosbrook <rosbrookn@ainfosec.com>
Cc: Paul Durrant <paul@xen.org>
Cc: Quan Xu <quan.xu0@gmail.com>
Cc: Rahul Singh <rahul.singh@arm.com>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Shriram Rajagopalan <rshriram@cs.ubc.ca>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
Cc: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Tim Deegan <tim@xen.org>
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Cc: Wei Liu <wl@xen.org>
---
 CHANGELOG.md | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad1a8c2bc2..d312ddf627 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,32 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
  - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
    no longer be built per default. In order to be able to use those, configure needs to
    be called with "--enable-qemu-traditional" as parameter.
+ - Fixes for credit2 scheduler stability in corner case conditions.
+ - Ongoing improvements in the hypervisor build system.
+ - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
+ - 32bit PV guests only supported in shim mode.
+ - Improved PVH dom0 debug key handling.
+ - Fix booting on some Intel systems without a PIT (i8254).
+ - Do not build qemu-traditional or pvgrub by default.
+ - Cleanup of the xenstore library interface.
+ - Fix truncation of return value from xencall2 by introducing a new helper
+   that returns a long instead.
+ - Fix system register accesses on Arm to use the proper 32/64bit access size.
+ - Various fixes for Arm OP-TEE mediator.
+ - Switch to domheap for Xen page tables.
+
+### Added
+ - 32bit Arm builds to the gitlab-ci automated tests.
+ - x86 full system tests to the gitlab-ci automated tests.
+ - Arm limited vPMU support for guests.
+ - Static physical memory allocation for dom0less on arm64.
+ - dom0less EFI support on arm64.
+ - GICD_ICPENDR register handling in vGIC emulation to support Zephyr OS.
+ - CPU feature leveling on arm64 platform with heterogeneous cores.
+ - Report unpopulated memory regions safe to use for external mappings, Arm and
+   device tree only.
+ - Support of generic DT IOMMU bindings for Arm SMMU v2.
+ - Limit grant table version on a per-domain basis.
 
 ## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2021-04-08
 
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:42:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:42:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229755.397249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYrd-000148-Ge; Tue, 23 Nov 2021 16:41:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229755.397249; Tue, 23 Nov 2021 16:41:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYrd-000141-DH; Tue, 23 Nov 2021 16:41:49 +0000
Received: by outflank-mailman (input) for mailman id 229755;
 Tue, 23 Nov 2021 16:41:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRmA=QK=epam.com=prvs=19611c0f38=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpYrc-00013t-05
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:41:48 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3ed5d1e1-4c7c-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 17:41:46 +0100 (CET)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1ANFDF44020298;
 Tue, 23 Nov 2021 16:41:42 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2113.outbound.protection.outlook.com [104.47.17.113])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cgy2phck7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 23 Nov 2021 16:41:42 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB3876.eurprd03.prod.outlook.com (2603:10a6:208:73::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 16:41:40 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 16:41:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ed5d1e1-4c7c-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ekY9br1HpICNgEb/p4WRtWJiiwT5ebrSJ+BNrk9GBjdxg/i87+0KCT0LeFfZL9eM9CauJ+peTsWZ++OjJWtSxy/RzRJ2FBTK5nw2TYhJbvi6qtbGyRQGS9sJN9pz3VknPfkC1cxPRUXIHvz6187pt3tJJEf+Jdbf12ZeA6HEriCIJoOAKC5TWLxnsVp11sqN2Ny/XgnRcZG8151wBgHwcR/HM2w8MbzBt3CSWD2/s/qmBIdHPQTCyFoYX0amc5+iNeih1rAsQH7mxfbmQTuZMX3lXj9JolLsFUh5TpOzJh316/i9KC4TI3GuWkPkXTCJ7GCmqN6dzGMQkaJMpmSEnQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=thSS4oU9iGpSNNbAd5ns9uo2k7RlCPuK+psrTPeVUPI=;
 b=I9TWAFA7WIxiagoOgjCU7vtqD5M+LVJSAsH/lnyZvIvSTxlC6+jwOv7Xz8hU3/umS+rKMkpRsdiadVYnXR4j86l6b5OivSF+uPCspm9xhbbRh4RUmavjmtqn3OSRrsoRlmXv5fnMBm62Ay8PyUoeZ/jF32Kpt1d+tVIx8SdOo5cMSofw/fGQ8jkMloal9bmfIMRxIY6MKO/6r7JtCiJkph4Mb2fILYRBR8hgZD1dU63QwwjykVCImnsYjNcRK6u8N4WbINrZLuO/fhxjIt/S2W2sur/SIGjlyF7hBIB+4tyu4PhjtCiUuqCjTlm45VbUzMF95c3tYa+D38XVZwXS+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=thSS4oU9iGpSNNbAd5ns9uo2k7RlCPuK+psrTPeVUPI=;
 b=G7S19Ko2o7oNxetrvMeLfbeDx+wazwxxOMkub1/FkCksXxjc6WCX/ZPkiI0MqTrn9qlI+IzS0uw3DECkjhNe67mB7waAVhwpcmbzC7jCDCYWHfBvTCLaedNCBGdfeI2AlHI1S5nIR/5TrFkX5lw1Nwas1Cu/HwPKRVUHZjzYVGKOPVPfxCujjaY1nC0H4FRXb1pG1ev70dR6giipctPsVXt9clvaCUJao86T3SArJ2vDqtqeJM2ok5xqhS8IYBPKLtkr+0Rldu4Q1AL3bxCPBj0Q/+NsiD6xbzcJRtD+WXr29vuJoO5kuB5pXiJHQxtteUNJPeOPgZCeJC3ufMvafA==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Topic: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Index: 
 AQHX0g8SPRoS2Ac9eEeTcWew1GI8x6wGl6aAgAJfuQCAADeUAIAGu8iAgADgLICAAJqvgIAACEQA
Date: Tue, 23 Nov 2021 16:41:39 +0000
Message-ID: <442c853a-5554-9be0-80e4-b1f34cd6adeb@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
 <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
 <2f414e8f-67d5-d513-74d4-cc21a3a9ed28@epam.com>
 <9f712f79-9660-865a-3002-713950518819@epam.com>
 <117a57d1-aa4f-8153-8bba-2db47c234b81@xen.org>
 <c6232073-b59a-609f-3852-ddcac0859c2c@epam.com>
 <ef17fbe6-9768-9978-fa8f-6be757034234@xen.org>
In-Reply-To: <ef17fbe6-9768-9978-fa8f-6be757034234@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 41e6d8de-96b9-4df6-f7dd-08d9aea01fdb
x-ms-traffictypediagnostic: AM0PR03MB3876:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB3876B02BA2EF91CC8296BC21E7609@AM0PR03MB3876.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 9MCAFphM8QZ2muD3DVykCosCN1wfWjlH1YicaAjdM1uJqOj5D3vlyuIgK76bv1zcOe2YS7vkGMm13iOFkun/BiR51ML4Gb20XsndvY/q6xUvDvuEK2UxDh1HYVL3PGO7MXMnzhCk62X9l9I+2v8E/iCjSxnZLoWYXQCpvWoSw72JSOzUIy+uvwVC4hZesrrVnbQA+hO1G5KGFeNr5RvRr0TDqbjso19zR7y86d2zFH9XR3ITrhQMSjiNKrQ4x5duMM5sUaqJK+riO1CGnNnImPaOwtATG2PzyYIGiwvMs95EL8Tzo/XNm7emNblBHz/wnMsvgCVLgmQcyr8hxqIrNHCK1Xc1IhZR70fY1L48DeMWELXD8qqjF4czW8qihDYh359MmXVXskP71vdP91il+1Vj8rbwdjS5xcPABVXtai7GbAv3yQWm302NvZx4xiWZmoYkGmJcjTvDf7FmGKWnQL8MfA4MhmYbpm9hd28MkxPMxxy59d7hP0+FMmFPx1ZT12cPY8mvA0871QT3eyYABzenTN+PQ7zLDhJ4FjGD0kTLVYlGXSVMrju6PS5Tif3X0AWve+AtqQxjTHH8TVhhHJBPKwvnFFlzapi2pBWWXIm4VS/EeQVzW1sOH6jysx9kC45yzBudU0DYL+amC86nCx82pcT+lzKFsQjRMVLRajf448PE2CRWFyQ7AubKRqelyHkUW4uE1AeY/1JQsq6hLj5CeiKJVYFYBXDHElVq42VBStiEqqEO201YNTsEM9L1
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(8936002)(54906003)(110136005)(5660300002)(6486002)(71200400001)(66446008)(4326008)(66476007)(38100700002)(64756008)(66556008)(508600001)(86362001)(6506007)(53546011)(2616005)(7416002)(2906002)(107886003)(38070700005)(31686004)(6512007)(66946007)(316002)(8676002)(91956017)(83380400001)(76116006)(36756003)(122000001)(31696002)(186003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?QWdkbC9xNUY2elRyb0pUeFFhWlBRSURrWi9DdGJHczZLeVh0TklGbnI2S0tv?=
 =?utf-8?B?b0p3U1cxNTE2MjRGL2ExTWlLbmRUMloyNGtkRm1jOExPNE50RTN5UmplYjQ4?=
 =?utf-8?B?eXVrTkY5UUhUMjk4bFBiMWxqdjRsZHNrejVNS3h1djFwaVhNMUZ5Z3BGaVVM?=
 =?utf-8?B?TEFmS1U4YUs4YXUwbC9LcllmaWt3UklkRlRqREhQUEpnQkI0ekQwUzNiUHpE?=
 =?utf-8?B?ZVdqT3pJYlRWVER4SXcyUlRXRE5XSXhGQ0JzMi9zRDBOSG0rRTVmVGoycy9D?=
 =?utf-8?B?ejdlK3ZWYkFacEtoZHo1ZlR3L3luR3RrOUJuMi94dm9YZW5MRSttb296YjRW?=
 =?utf-8?B?dkVNREUrZFpFYUpoejdQQ21kNlhMR0xzZXU0SElFWFg0OFVuZURDeTdlR2J3?=
 =?utf-8?B?bngvK1ZvUVltRDhkZXd4QTdlcm9xK1kvV2ZzU2ZCdzFyamliZnB1NDJGRW9O?=
 =?utf-8?B?MndwS2hNenpVZW9ZSnp0dzRGL1A4bE9NN1JabHN5QzZHL0VlVGlBK3g2eVBQ?=
 =?utf-8?B?Sjg5T0FZQlN4ZjRZMno0YUFhTUx5RVRES3hqWGdvL2o4Vm1DTzZBYXA5WFhJ?=
 =?utf-8?B?NjFXZjFXU0llNWpaZEZMWEhydHROUzlvRTg2R0FUYkFGQXNxMTVodys2dFRD?=
 =?utf-8?B?NUtlQWpsb09FN1BqbnpCS3NxVmVQeWllMDYra1VQbDhtN0FEK0pNd0ZDOXpH?=
 =?utf-8?B?QkVwQ0x1RTJ0SFEzK3RwSW16SGw5WnNpdVhWV2NjdmZhTmtnTkVtYk85blN3?=
 =?utf-8?B?QVlSL0ZiSGcyMEo5dmhFQlBkMS9oZzdnQmNLSVI1TXdUdDhib3FxREpscXVt?=
 =?utf-8?B?eFNMaVVwL2JCWXB1OFNZcXNHR0o3QU84NlZHb3ZrZkhvc3BJK0NMK3hwbW9S?=
 =?utf-8?B?Mm85YklqMENRODQ3UXB4R2xjeklmcmk0QnhrMUNhRVE0ZHE5T2VTZEUzbHYv?=
 =?utf-8?B?YTVZbUxmTWhiRDFMdjhKbUpiTGM4bDZDeWZ0SjRmK21YVlQ5K0tKTDNLSlVU?=
 =?utf-8?B?aVNScVF5aGd4YVdqWTFmYzlVMEJhSlNYOEVLd2Q4RzU4SlIrV29MYXhDczJV?=
 =?utf-8?B?b1hTd3pUcmE2Q0VWSHA3TGluZ040R2p0MG0xZXZZdWN3NSszcFdDT3VxYlMr?=
 =?utf-8?B?MkxPZjZjRTlJa1pFRlBWWnZVbmZQZ2piSXo0ZzVIWElBTjBLdzRDUVNVQVBx?=
 =?utf-8?B?Slh3WDZmSGYzdWZYY2RjS0tJOTV3dWw3eGJpQkN2OXFMdjBNeWRld2Fob3U3?=
 =?utf-8?B?c0xTc201NGdSRHJmQjNVQjVSdjFXUm9yNi9BV0xGOVI1MDZTQ2NjMHNZZmZX?=
 =?utf-8?B?djIzbFNLalB2cnUwd2VJYkREM0NSWHp3SUpKcHNabGlVQ3JlWHR6aWl4SUdi?=
 =?utf-8?B?bThpWEpkbHAyNmU0MWllOU5jZWZQVXhaVlpVWWR1NWpDZk03SEc1RXN1ZUlE?=
 =?utf-8?B?T3NmeEtXblVtZ3NHRkpBSmRmSEVmSlZPZS94YVczV0EyYWtRTVdheFh0ZExR?=
 =?utf-8?B?SHVmeWVqanZSYmJ3andFUVZDNTFRZ05idHhEb01Kb0k4Z1IxM1VxSGtPM1pi?=
 =?utf-8?B?ZzJTRVkzY1VKdDdmcVF1b0pYZHJsTE90aFJyUU5yVkh5YUh1Z2RJUUJyWjNk?=
 =?utf-8?B?bWJjalVjTU1ZUG9lY0RSajNiWkEyaEJFdXg3Q3MybldORW0xMkFVZitjMGdK?=
 =?utf-8?B?MHhiWjdrUGUzNlFVMmJhUlRNVDhUNTUxZ0tFYy9KdzhoYzdCdktTR1Yrbjh2?=
 =?utf-8?B?RGphb1BNU1J2bFhnQmtiY3hhZmNWRDdVSjM1bTd5OENZNVdjSnc5STVqRExJ?=
 =?utf-8?B?djA3ODBHQzllaE1MMkZqTnowSlpNNzkzSmh6SDBqT1ZLajhVWmJ0NmpsOFpa?=
 =?utf-8?B?NzFYVm9wNDFLMWYzNURUd1NjcmZ2YUxoM2hncnd2cVhpMUUzTkIrTU1oYnR6?=
 =?utf-8?B?SGFHSkRIWnl6cEN2dW1QazNvbzB3Mjh6di9RVnRFSTNDeGtQYlNJQUkrZk1m?=
 =?utf-8?B?aG83QnkwZVFOS3Y3QkNQamVoY29haFJ3Vy9ySDBVR0NnTklIRVQzT1paR0Y1?=
 =?utf-8?B?TGNYUUFyVUJnbGQ2QStwNmVKTnJBSGd5M01FbTdXZk9sWFFzR1hRLzNzQTJm?=
 =?utf-8?B?d2UreGtKN3NQZjc1VGVka3FuVHIzeTZzc3JoeEFybHc5WXVRVHFRVVQ1WW1F?=
 =?utf-8?B?eWJTYitQZTB1bjZTalFLQ2JDaERwRGhWZm5yTjltMkw5anJyaGJTZ1poamg1?=
 =?utf-8?B?Q3doVFRhUklGRWRWMkNBN1BCVUJ6blYzc2piSEpYamlBbEpGd0pOVC8ybEpY?=
 =?utf-8?B?Z0xwbVBCeTZORGVoaHkrdkZ5dVZzRzhQN0VmZmNicFdnVzBvZW9jZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9E6E39B31F93C4498E288410C70F9241@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 41e6d8de-96b9-4df6-f7dd-08d9aea01fdb
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 16:41:40.0612
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xLlh58zMTfWzyaC6PHQBlWxTK3hDE6nG/6MjgD0Fo+a2nMVGdtVbL8fBn3MFp8a1W5vOsQ2/ggTkvyjmpX9m4QuKQQ7wgp9wWWFL/vtVZmpjuyPdQvbNML4b/RSzK4DH
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB3876
X-Proofpoint-ORIG-GUID: Y_K2YXv9XAqwYxPsUuZtmaNEyyVRixUJ
X-Proofpoint-GUID: Y_K2YXv9XAqwYxPsUuZtmaNEyyVRixUJ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-23_06,2021-11-23_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501
 phishscore=0 clxscore=1015 bulkscore=0 mlxlogscore=999 lowpriorityscore=0
 malwarescore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0
 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111230084

SGksIEp1bGllbiENCg0KT24gMjMuMTEuMjEgMTg6MTIsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4N
Cj4NCj4gT24gMjMvMTEvMjAyMSAwNjo1OCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6
DQo+PiBIaSwgSnVsaWVuIQ0KPg0KPiBIaSBPbGVrc2FuZHIsDQo+DQo+PiBPbiAyMi4xMS4yMSAx
OTozNiwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4+IE9uIDE4LzExLzIwMjEgMTA6NDYsIE9sZWtz
YW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAxOC4xMS4yMSAwOToyNywgT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+Pj4+ICvCoMKgwqAgdW5zaWduZWQgaW50IGNv
dW50Ow0KPj4+Pj4+PiArDQo+Pj4+Pj4+ICvCoMKgwqAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4o
ZCkgKQ0KPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgLyogRm9yIGVhY2ggUENJIGhvc3QgYnJpZGdl
J3MgY29uZmlndXJhdGlvbiBzcGFjZS4gKi8NCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNvdW50
ID0gcGNpX2hvc3RfZ2V0X251bV9icmlkZ2VzKCk7DQo+Pj4+Pj4gVGhpcyBmaXJzdCBwYXJ0IG1h
a2VzIHNlbnNlIHRvIG1lLiBCdXQuLi4NCj4+Pj4+Pg0KPj4+Pj4+PiArwqDCoMKgIGVsc2UNCj4+
Pj4+PiAuLi4gSSBkb24ndCB1bmRlcnN0YW5kIGhvdyB0aGUgZWxzZSBpcyByZWxhdGVkIHRvIHRo
aXMgY29tbWl0LiBDYW4geW91IGNsYXJpZnkgaXQ/DQo+Pj4+Pj4NCj4+Pj4+Pj4gK8KgwqDCoMKg
wqDCoMKgIC8qDQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgICogVGhlcmUncyBhIHNpbmdsZSBN
U0ktWCBNTUlPIGhhbmRsZXIgdGhhdCBkZWFscyB3aXRoIGJvdGggUEJBDQo+Pj4+Pj4+ICvCoMKg
wqDCoMKgwqDCoMKgICogYW5kIE1TSS1YIHRhYmxlcyBwZXIgZWFjaCBQQ0kgZGV2aWNlIGJlaW5n
IHBhc3NlZCB0aHJvdWdoLg0KPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoCAqIE1heGltdW0gbnVt
YmVyIG9mIHN1cHBvcnRlZCBkZXZpY2VzIGlzIDMyIGFzIHZpcnR1YWwgYnVzDQo+Pj4+Pj4+ICvC
oMKgwqDCoMKgwqDCoMKgICogdG9wb2xvZ3kgZW11bGF0ZXMgdGhlIGRldmljZXMgYXMgZW1iZWRk
ZWQgZW5kcG9pbnRzLg0KPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoCAqICsxIGZvciBhIHNpbmds
ZSBlbXVsYXRlZCBob3N0IGJyaWRnZSdzIGNvbmZpZ3VyYXRpb24gc3BhY2UuDQo+Pj4+Pj4+ICvC
oMKgwqDCoMKgwqDCoMKgICovDQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjb3VudCA9IDE7DQo+
Pj4+Pj4+ICsjaWZkZWYgQ09ORklHX0hBU19QQ0lfTVNJDQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDC
oCBjb3VudCArPSAzMjsNCj4+Pj4+PiBTdXJlbHksIHRoaXMgaXMgYSBkZWNpc2lvbiB0aGF0IGlz
IGJhc2VkIG9uIG90aGVyIGZhY3RvciBpbiB0aGUgdlBDSSBjb2RlLiBTbyBjYW4gdXNlIGEgZGVm
aW5lIGFuZCBhdm9pZCBoYXJkY29kaW5nIHRoZSBudW1iZXI/DQo+Pj4+PiBXZWxsLCBpbiB0aGUg
bGF0ZXIgc2VyaWVzIFsxXSB0aGlzIGlzIGRlZmluZWQgdmlhIFBDSV9TTE9UKH4wKSArIDEgYW5k
IHRoZXJlIGlzIG5vIGRlZGljYXRlZA0KPj4+Pj4gY29uc3RhbnQgZm9yIHRoYXQuIEkgY2FuIHVz
ZSB0aGUgc2FtZSBoZXJlLCBlLmcuIHMvMzIvUENJX1NMT1QofjApICsgMQ0KPj4+DQo+Pj4gSSB3
b3VsZCBwcmVmZXIgaWYgd2UgaW50cm9kdWNlIGEgbmV3IGNvbnN0YW50IGZvciB0aGF0LiBUaGlz
IG1ha2VzIGVhc2llciB0byB1cGRhdGUgdGhlIGNvZGUgaWYgd2UgZGVjaWRlIHRvIGluY3JlYXNl
IHRoZSBudW1iZXIgb2YgdmlydHVhbCBkZXZpY2VzLg0KPj4+DQo+Pj4gSG93ZXZlciwgSSBhbSBz
dGlsbCBub3Qgc3VyZSBob3cgdGhlICdlbHNlJyBwYXJ0IGlzIHJlbGF0ZWQgdG8gdGhpcyBjb21t
aXQuIENhbiB5b3UgcGxlYXNlIGNsYXJpZnkgaXQ/DQo+PiBXZWxsLCB5ZXMsIHRoaXMgaXMgdG9v
IGVhcmx5IGZvciB0aGlzIHBhdGNoIHRvIGludHJvZHVjZSBzb21lIGZ1dHVyZSBrbm93bGVkZ2Us
IHNvIEknbGwgaW5zdGVhZCBoYXZlOg0KPj4NCj4+IHVuc2lnbmVkIGludCBkb21haW5fdnBjaV9n
ZXRfbnVtX21taW9faGFuZGxlcnMoc3RydWN0IGRvbWFpbiAqZCkNCj4+IHsNCj4+IMKgIMKgwqDC
oCBpZiAoICFoYXNfdnBjaShkKSApDQo+PiDCoCDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+
DQo+PiDCoCDCoMKgwqAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KPj4gwqAgwqDCoMKg
IHsNCj4+IMKgIMKgwqDCoMKgwqDCoMKgIGludCByZXQgPSBwY2lfaG9zdF9pdGVyYXRlX2JyaWRn
ZXNfYW5kX2NvdW50KGQsIHZwY2lfZ2V0X251bV9oYW5kbGVyc19jYik7DQo+Pg0KPj4gwqAgwqDC
oMKgwqDCoMKgwqAgcmV0dXJuIHJldCA8IDAgPyAwIDogcmV0Ow0KPj4gwqAgwqDCoMKgIH0NCj4+
DQo+PiDCoCDCoMKgwqAgLyoNCj4+IMKgIMKgwqDCoMKgICogVGhpcyBpcyBhIGd1ZXN0IGRvbWFp
bjoNCj4+IMKgIMKgwqDCoMKgICoNCj4+IMKgIMKgwqDCoMKgICogMSBmb3IgYSBzaW5nbGUgZW11
bGF0ZWQgaG9zdCBicmlkZ2UncyBjb25maWd1cmF0aW9uIHNwYWNlLg0KPj4gwqAgwqDCoMKgwqAg
Ki8NCj4+IMKgIMKgwqDCoCByZXR1cm4gMTsNCj4NCj4gSSBhbSBhZnJhaWQgdGhhdCBteSBxdWVz
dGlvbiBzdGFuZHMgZXZlbiB3aXRoIHRoaXMgYXBwcm9hY2guIFRoaXMgcGF0Y2ggaXMgb25seSBt
ZWFudCB0byBoYW5kbGUgdGhlIGhhcmR3YXJlIGRvbWFpbiwgdGhlcmVmb3JlIHRoZSBjaGFuZ2Ug
c2VlbXMgdG8gYmUgb3V0IG9mIGNvbnRleHQuDQo+DQo+IEkgd291bGQgcHJlZmVyIGlmIHRoaXMg
Y2hhbmdlIGlzIGRvbmUgc2VwYXJhdGVseS4NCldoaWxlIEkgZG8gYWdyZWUgdGhhdCBNU0kgcGFy
dCBhbmQgdmlydHVhbCBidXMgdG9wb2xvZ3kgYXJlIG5vdCBiZWxvbmdpbmcgdG8gdGhpcw0KcGF0
Y2ggSSBjYW4ndCBhZ3JlZSB3aXRoIHRoZSByZXN0OiB3ZSBhbHJlYWR5IGhhdmUgTU1JTyBoYW5k
bGVycyBmb3IgZ3Vlc3QgZG9tYWlucw0KYW5kIHdlIGludHJvZHVjZSBkb21haW5fdnBjaV9nZXRf
bnVtX21taW9faGFuZGxlcnMgd2hpY2ggbXVzdCBhbHNvIGFjY291bnQNCm9uIGd1ZXN0cyBhbmQg
c3RheSBjb25zaXN0ZW50Lg0KU28sIGRlc3BpdGUgdGhlIHBhdGNoIGhhcyAiaGFyZHdhcmUgZG9t
YWluIiBpbiBpdHMgbmFtZSBpdCBkb2Vzbid0IG1lYW4gd2Ugc2hvdWxkDQpicmVhayBndWVzdHMg
aGVyZS4NClRodXMgSSBkbyB0aGluayB0aGUgYWJvdmUgaXMgc3RpbGwgY29ycmVjdCB3cnQgdGhp
cyBwYXRjaC4NCj4NCj4gQ2hlZXJzLA0KPg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:42:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:42:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229759.397260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYs1-0001Xr-Tw; Tue, 23 Nov 2021 16:42:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229759.397260; Tue, 23 Nov 2021 16:42:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYs1-0001Xk-Pr; Tue, 23 Nov 2021 16:42:13 +0000
Received: by outflank-mailman (input) for mailman id 229759;
 Tue, 23 Nov 2021 16:42:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpYs0-0001WL-D3
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:42:12 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpYrz-0007q8-Cy; Tue, 23 Nov 2021 16:42:11 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.23.209]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpYrz-0007DH-2O; Tue, 23 Nov 2021 16:42:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=oxE6JfBlfe9dus2Rs6m+mGxwNZm2yVtDyllyYybSj08=; b=FjCpBCzKImyxZp0EryFFaehHwa
	qHh9xn/6zYOR+moNxBBGp9GQdlUNLXqf9bmMYBi8rRmYumkR56EpTIVrlm2RuLNDSc/ispYQ1TQEA
	/zgnPM/DbDd3p87r32SWzmKBSE8tTCGECGY5tDsFggTwZNn73h7u0NpvFY7Utneb2v8E=;
Message-ID: <b85a3e6c-e48e-dd11-5488-f71c9d2422a7@xen.org>
Date: Tue, 23 Nov 2021 16:42:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 4/7] xen/arm: do not map PCI ECAM and MMIO space to
 Domain-0's p2m
To: Oleksandr Andrushchenko <andr2000@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 jbeulich@suse.com, andrew.cooper3@citrix.com, george.dunlap@citrix.com,
 paul@xen.org, bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-5-andr2000@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211105063326.939843-5-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

On 05/11/2021 06:33, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> PCI host bridges are special devices in terms of implementing PCI
> passthrough. According to [1] the current implementation depends on
> Domain-0 to perform the initialization of the relevant PCI host
> bridge hardware and perform PCI device enumeration. In order to
> achieve that one of the required changes is to not map all the memory
> ranges in map_range_to_domain as we traverse the device tree on startup
> and perform some additional checks if the range needs to be mapped to
> Domain-0.
> 
> The generic PCI host controller device tree binding says [2]:
> - ranges: As described in IEEE Std 1275-1994, but must provide
>            at least a definition of non-prefetchable memory. One
>            or both of prefetchable Memory and IO Space may also
>            be provided.
> 
> - reg   : The Configuration Space base address and size, as accessed
>            from the parent bus.  The base address corresponds to
>            the first bus in the "bus-range" property.  If no
>            "bus-range" is specified, this will be bus 0 (the default).
> 
>  From the above none of the memory ranges from the "ranges" property
> needs to be mapped to Domain-0 at startup as MMIO mapping is going to
> be handled dynamically by vPCI as we assign PCI devices, e.g. each
> device assigned to Domain-0/guest will have its MMIOs mapped/unmapped
> as needed by Xen.
> 
> The "reg" property covers not only ECAM space, but may also have other
> then the configuration memory ranges described, for example [3]:
> - reg: Should contain rc_dbi, config registers location and length.
> - reg-names: Must include the following entries:
>     "rc_dbi": controller configuration registers;
>     "config": PCIe configuration space registers.
> 
> This patch makes it possible to not map all the ranges from the
> "ranges" property and also ECAM from the "reg". All the rest from the
> "reg" property still needs to be mapped to Domain-0, so the PCI
> host bridge remains functional in Domain-0.

The commit message is explaining the problematic quite well (thanks for 
that). I think it also wants to explain the approach taken (the fact 
that we are deferring the mapping for hostbridges).

> 
> [1] https://lists.xenproject.org/archives/html/xen-devel/2020-07/msg00777.html
> [2] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/host-generic-pci.txt
> [3] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/hisilicon-pcie.txt
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> ---
> Since v5:
> - remove some need_mapping local variables
> - use own_device in handle_device
> - add __init for pci_ecam_need_p2m_hwdom_mapping
> - make pci_host_bridge_mappings use p2m_mmio_direct_dev directly
> Since v4:
> - update skip_mapping comment
> - add comment why we need to map interrupts to Dom0
> Since v3:
>   - pass struct map_range_data to map_dt_irq_to_domain
>   - remove redundant check from map_range_to_domain
>   - fix handle_device's .skip_mapping
> Since v2:
>   - removed check in map_range_to_domain for PCI_DEV
>     and moved it to handle_device, so the code is
>     simpler
>   - s/map_pci_bridge/skip_mapping
>   - extended comment in pci_host_bridge_mappings
>   - minor code restructure in construct_dom0
>   - s/.need_p2m_mapping/.need_p2m_hwdom_mapping and related
>     callbacks
>   - unsigned int i; in pci_host_bridge_mappings
> Since v1:
>   - Added better description of why and what needs to be mapped into
>     Domain-0's p2m and what doesn't
>   - Do not do any mappings for PCI devices while traversing the DT
>   - Walk all the bridges and make required mappings in one go
> ---
>   xen/arch/arm/domain_build.c        | 67 +++++++++++++++++-------------
>   xen/arch/arm/pci/ecam.c            | 14 +++++++
>   xen/arch/arm/pci/pci-host-common.c | 50 ++++++++++++++++++++++
>   xen/arch/arm/pci/pci-host-zynqmp.c |  1 +
>   xen/include/asm-arm/pci.h          | 10 +++++
>   xen/include/asm-arm/setup.h        | 13 ++++++
>   6 files changed, 126 insertions(+), 29 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index f7fcb1400c19..c7d992456ca7 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -10,7 +10,6 @@
>   #include <asm/regs.h>
>   #include <xen/errno.h>
>   #include <xen/err.h>
> -#include <xen/device_tree.h>

You are still using helpers defined by this header. So I would keep the 
include even if it may have been included by another one.

>   #include <xen/libfdt/libfdt.h>
>   #include <xen/guest_access.h>
>   #include <xen/iocap.h>
> @@ -51,12 +50,6 @@ static int __init parse_dom0_mem(const char *s)
>   }
>   custom_param("dom0_mem", parse_dom0_mem);
>   
> -struct map_range_data
> -{
> -    struct domain *d;
> -    p2m_type_t p2mt;
> -};
> -
>   /* Override macros from asm/page.h to make them work with mfn_t */
>   #undef virt_to_mfn
>   #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
> @@ -1676,10 +1669,10 @@ static int __init map_dt_irq_to_domain(const struct dt_device_node *dev,
>                                          const struct dt_irq *dt_irq,
>                                          void *data)
>   {
> -    struct domain *d = data;
> +    struct map_range_data *mr_data = data;
> +    struct domain *d = mr_data->d;
>       unsigned int irq = dt_irq->irq;
>       int res;
> -    bool need_mapping = !dt_device_for_passthrough(dev);
>   
>       if ( irq < NR_LOCAL_IRQS )
>       {
> @@ -1698,18 +1691,16 @@ static int __init map_dt_irq_to_domain(const struct dt_device_node *dev,
>           return res;
>       }
>   
> -    res = map_irq_to_domain(d, irq, need_mapping, dt_node_name(dev));
> +    res = map_irq_to_domain(d, irq, !mr_data->skip_mapping, dt_node_name(dev));
>   
>       return 0;
>   }
>   
> -static int __init map_range_to_domain(const struct dt_device_node *dev,
> -                                      u64 addr, u64 len,
> -                                      void *data)
> +int __init map_range_to_domain(const struct dt_device_node *dev,
> +                               u64 addr, u64 len, void *data)
>   {
>       struct map_range_data *mr_data = data;
>       struct domain *d = mr_data->d;
> -    bool need_mapping = !dt_device_for_passthrough(dev);
>       int res;
>   
>       res = iomem_permit_access(d, paddr_to_pfn(addr),
> @@ -1723,7 +1714,7 @@ static int __init map_range_to_domain(const struct dt_device_node *dev,
>           return res;
>       }
>   
> -    if ( need_mapping )
> +    if ( !mr_data->skip_mapping )
>       {
>           res = map_regions_p2mt(d,
>                                  gaddr_to_gfn(addr),
> @@ -1752,23 +1743,21 @@ static int __init map_range_to_domain(const struct dt_device_node *dev,
>    * then we may need to perform additional mappings in order to make
>    * the child resources available to domain 0.
>    */
> -static int __init map_device_children(struct domain *d,
> -                                      const struct dt_device_node *dev,
> -                                      p2m_type_t p2mt)
> +static int __init map_device_children(const struct dt_device_node *dev,
> +                                      struct map_range_data *mr_data)
>   {
> -    struct map_range_data mr_data = { .d = d, .p2mt = p2mt };
> -    int ret;
> -
>       if ( dt_device_type_is_equal(dev, "pci") )
>       {
> +        int ret;
> +
>           dt_dprintk("Mapping children of %s to guest\n",
>                      dt_node_full_name(dev));
>   
> -        ret = dt_for_each_irq_map(dev, &map_dt_irq_to_domain, d);
> +        ret = dt_for_each_irq_map(dev, &map_dt_irq_to_domain, mr_data);
>           if ( ret < 0 )
>               return ret;
>   
> -        ret = dt_for_each_range(dev, &map_range_to_domain, &mr_data);
> +        ret = dt_for_each_range(dev, &map_range_to_domain, mr_data);
>           if ( ret < 0 )
>               return ret;
>       }
> @@ -1848,14 +1837,28 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
>       unsigned int i;
>       int res;
>       u64 addr, size;
> -    bool need_mapping = !dt_device_for_passthrough(dev);
> +    bool own_device = !dt_device_for_passthrough(dev);
> +    /*
> +     * For PCI passthrough we only need to remap to Dom0 the interrupts
> +     * and memory ranges from "reg" property which cover controller's
> +     * configuration registers and such. PCIe configuration space registers
> +     * of the PCIe Root Complex and PCIe aperture should not be mapped
> +     * automatically to Dom0.
> +     */

I would clarify in this comment (and the commit message) that this only 
cover hostbridge that are been shared between dom0 and Xen.

But I find the comment confusing because I would expect to explain this...

> +    struct map_range_data mr_data = {
> +        .d = d,
> +        .p2mt = p2mt,
> +        .skip_mapping = !own_device ||
> +                        (is_pci_passthrough_enabled() &&
> +                        (device_get_class(dev) == DEVICE_PCI_HOSTBRIDGE))

... line. Instead, it explains the global behavior. I would rework the 
comment to something like:

/*
  * We want to avoid mappings the MMIO in dom0 for the following cases:
  *   - The device is owned by dom0 (i.e. it has been flagged for
  *     passthrough).
  *   - PCI hostbridges with driver in Xen. They will later on by
  *     pci_host_bridge_mappings().
  */

> +    };
>   
>       naddr = dt_number_of_address(dev);
>   
>       dt_dprintk("%s passthrough = %d naddr = %u\n",
> -               dt_node_full_name(dev), need_mapping, naddr);
> +               dt_node_full_name(dev), own_device, naddr);
>   
> -    if ( need_mapping )
> +    if ( own_device )
>       {
>           dt_dprintk("Check if %s is behind the IOMMU and add it\n",
>                      dt_node_full_name(dev));
> @@ -1881,14 +1884,13 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
>           }
>       }
>   
> -    res = handle_device_interrupts(d, dev, need_mapping);
> +    res = handle_device_interrupts(d, dev, own_device);
>       if ( res < 0 )
>           return res;
>   
>       /* Give permission and map MMIOs */
>       for ( i = 0; i < naddr; i++ )
>       {
> -        struct map_range_data mr_data = { .d = d, .p2mt = p2mt };
>           res = dt_device_get_address(dev, i, &addr, &size);
>           if ( res )
>           {
> @@ -1902,7 +1904,7 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
>               return res;
>       }
>   
> -    res = map_device_children(d, dev, p2mt);
> +    res = map_device_children(dev, &mr_data);
>       if ( res )
>           return res;
>   
> @@ -3060,7 +3062,14 @@ static int __init construct_dom0(struct domain *d)
>           return rc;
>   
>       if ( acpi_disabled )
> +    {
>           rc = prepare_dtb_hwdom(d, &kinfo);
> +        if ( rc < 0 )
> +            return rc;
> +#ifdef CONFIG_HAS_PCI
> +        rc = pci_host_bridge_mappings(d);
> +#endif
> +    }
>       else
>           rc = prepare_acpi(d, &kinfo);
>   
> diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
> index 602d00799c8d..4f71b11c3057 100644
> --- a/xen/arch/arm/pci/ecam.c
> +++ b/xen/arch/arm/pci/ecam.c
> @@ -40,6 +40,19 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
>       return base + (PCI_DEVFN2(sbdf.bdf) << devfn_shift) + where;
>   }
>   
> +bool __init pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
> +                                            struct pci_host_bridge *bridge,
> +                                            uint64_t addr)
> +{
> +    struct pci_config_window *cfg = bridge->cfg;
> +
> +    /*
> +     * We do not want ECAM address space to be mapped in Domain-0's p2m,
> +     * so we can trap access to it.
> +     */
> +    return cfg->phys_addr != addr;
> +}
> +
>   /* ECAM ops */
>   const struct pci_ecam_ops pci_generic_ecam_ops = {
>       .bus_shift  = 20,
> @@ -47,6 +60,7 @@ const struct pci_ecam_ops pci_generic_ecam_ops = {
>           .map_bus                = pci_ecam_map_bus,
>           .read                   = pci_generic_config_read,
>           .write                  = pci_generic_config_write,
> +        .need_p2m_hwdom_mapping = pci_ecam_need_p2m_hwdom_mapping,
>       }
>   };
>   
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
> index 0d271a6e8881..6af845ab9d6c 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -22,6 +22,8 @@
>   #include <xen/sched.h>
>   #include <xen/vmap.h>
>   
> +#include <asm/setup.h>
> +
>   /*
>    * List for all the pci host bridges.
>    */
> @@ -316,6 +318,54 @@ unsigned int pci_host_get_num_bridges(void)
>       return count;
>   }
>   
> +int __init pci_host_bridge_mappings(struct domain *d)
> +{
> +    struct pci_host_bridge *bridge;
> +    struct map_range_data mr_data = {
> +        .d = d,
> +        .p2mt = p2m_mmio_direct_dev,
> +        .skip_mapping = false
> +    };
> +
> +    /*
> +     * For each PCI host bridge we need to only map those ranges
> +     * which are used by Domain-0 to properly initialize the bridge,
> +     * e.g. we do not want to map ECAM configuration space which lives in
> +     * "reg" device tree property, but we want to map other regions of
> +     * the host bridge. The PCI aperture defined by the "ranges" device
> +     * tree property should also be skipped.
> +     */

This seems to explain the purpose of the function. So I would move the 
commment on top of pci_host_bridge_mappings().

> +    list_for_each_entry( bridge, &pci_host_bridges, node )
> +    {
> +        const struct dt_device_node *dev = bridge->dt_node;
> +        unsigned int i;
> +
> +        for ( i = 0; i < dt_number_of_address(dev); i++ )
> +        {
> +            uint64_t addr, size;
> +            int err;
> +
> +            err = dt_device_get_address(dev, i, &addr, &size);
> +            if ( err )
> +            {
> +                printk(XENLOG_ERR
> +                       "Unable to retrieve address range index=%u for %s\n",
> +                       i, dt_node_full_name(dev));
> +                return err;
> +            }
> +
> +            if ( bridge->ops->need_p2m_hwdom_mapping(d, bridge, addr) )
> +            {
> +                err = map_range_to_domain(dev, addr, size, &mr_data);
> +                if ( err )
> +                    return err;
> +            }
> +        }
> +    }
> +
> +    return 0;
> +}
> +
>   /*
>    * Local variables:
>    * mode: C
> diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host-zynqmp.c
> index 516982bca833..101edb8593c1 100644
> --- a/xen/arch/arm/pci/pci-host-zynqmp.c
> +++ b/xen/arch/arm/pci/pci-host-zynqmp.c
> @@ -34,6 +34,7 @@ const struct pci_ecam_ops nwl_pcie_ops = {
>           .map_bus                = pci_ecam_map_bus,
>           .read                   = pci_generic_config_read,
>           .write                  = pci_generic_config_write,
> +        .need_p2m_hwdom_mapping = pci_ecam_need_p2m_hwdom_mapping,
>       }
>   };
>   
> diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
> index 969333043431..3d706fdd1d88 100644
> --- a/xen/include/asm-arm/pci.h
> +++ b/xen/include/asm-arm/pci.h
> @@ -17,6 +17,8 @@
>   
>   #ifdef CONFIG_HAS_PCI
>   
> +#include <asm/p2m.h>
> +
>   #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
>   
>   extern bool pci_passthrough_enabled;
> @@ -73,6 +75,9 @@ struct pci_ops {
>                   uint32_t reg, uint32_t len, uint32_t *value);
>       int (*write)(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                    uint32_t reg, uint32_t len, uint32_t value);
> +    bool (*need_p2m_hwdom_mapping)(struct domain *d,
> +                                   struct pci_host_bridge *bridge,
> +                                   uint64_t addr);
>   };
>   
>   /*
> @@ -96,6 +101,9 @@ int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                                uint32_t reg, uint32_t len, uint32_t value);
>   void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
>                                  pci_sbdf_t sbdf, uint32_t where);
> +bool pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
> +                                     struct pci_host_bridge *bridge,
> +                                     uint64_t addr);
>   struct pci_host_bridge *pci_find_host_bridge(uint16_t segment, uint8_t bus);
>   struct dt_device_node *pci_find_host_bridge_node(struct device *dev);
>   int pci_get_host_bridge_segment(const struct dt_device_node *node,
> @@ -115,6 +123,8 @@ int pci_host_iterate_bridges(struct domain *d,
>                                           struct pci_host_bridge *bridge));
>   unsigned int pci_host_get_num_bridges(void);
>   
> +int pci_host_bridge_mappings(struct domain *d);
> +
>   #else   /*!CONFIG_HAS_PCI*/
>   
>   struct arch_pci_dev { };
> diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
> index 95da0b7ab9cd..88d9673db817 100644
> --- a/xen/include/asm-arm/setup.h
> +++ b/xen/include/asm-arm/setup.h
> @@ -2,6 +2,8 @@
>   #define __ARM_SETUP_H_
>   
>   #include <public/version.h>
> +#include <asm/p2m.h>
> +#include <xen/device_tree.h>
>   
>   #define MIN_FDT_ALIGN 8
>   #define MAX_FDT_SIZE SZ_2M
> @@ -77,6 +79,14 @@ struct bootinfo {
>   #endif
>   };
>   
> +struct map_range_data
> +{
> +    struct domain *d;
> +    p2m_type_t p2mt;
> +    /* Set if mapping of the memory ranges must be skipped. */
> +    bool skip_mapping;
> +};
> +
>   extern struct bootinfo bootinfo;
>   
>   extern domid_t max_init_domid;
> @@ -124,6 +134,9 @@ void device_tree_get_reg(const __be32 **cell, u32 address_cells,
>   u32 device_tree_get_u32(const void *fdt, int node,
>                           const char *prop_name, u32 dflt);
>   
> +int map_range_to_domain(const struct dt_device_node *dev,
> +                        u64 addr, u64 len, void *data);
> +
>   #endif
>   /*
>    * Local variables:
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:44:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:44:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229772.397271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYuR-0002KO-Cg; Tue, 23 Nov 2021 16:44:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229772.397271; Tue, 23 Nov 2021 16:44:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYuR-0002KH-9Z; Tue, 23 Nov 2021 16:44:43 +0000
Received: by outflank-mailman (input) for mailman id 229772;
 Tue, 23 Nov 2021 16:44:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRmA=QK=epam.com=prvs=19611c0f38=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpYuQ-0002KB-1U
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:44:42 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a6e1017f-4c7c-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 17:44:40 +0100 (CET)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1ANFDF4g020298;
 Tue, 23 Nov 2021 16:44:37 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2113.outbound.protection.outlook.com [104.47.18.113])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cgy2phcwp-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 23 Nov 2021 16:44:37 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6068.eurprd03.prod.outlook.com (2603:10a6:208:166::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 16:44:33 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 16:44:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6e1017f-4c7c-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EShTJGM7q7Y8ZWXq3bwiTO8JxQz3l/AYLEF1CiPu5R7B7xeNRv7iOqD1lGVjfAytCDM6rdJ9RrBlcaqAh7j7X7Qy1JoSR2qne4uKpDMIhrec17RzZetr4DJIKMeNx6Q5N3laxzbHKsnHt7zSChdj4OilScPnplHbq0sFcNHokd0r/lKWaZ5IjjrkhqyqgyxLKp9xca5nFuiYlaxZnU5yWkG9MvBA33/rhnR4S5Ix5rLpxYpHWe+rPnDibkJR1nsBwCFibz9vF95B2Be5FiqsYTk+oiAm3ToZYs31sO6o6ZqvVB9lznuT1H+XlFYaF3ux5u8O3EiRAsxMps28TSR50g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q+/gV1yzbKWHlXm9d6UM4DKOw3Z7lrkKkJYWhzrEFmA=;
 b=DhMY9QX7DJNAf+M8hS0H4ZXCTUi7SjLBgxN6/yUZK8C8WMs6nLwDZTkOk2fwlzNMUDZOh27I700aoD+/KOFEb2J09Hh76H+OqZ7fq8Mc/KDcdRkPZsmltru4Ok9jv+FxTq8NGyulnj+ulZKXriimcuYW1/nn8P90eOb4UMq5lOXX7KyGNIAB2MIyhTff4ulBTy6TYLPwswSPOmfrYVrvymo7l/jrhHMboeh5BXRiGHHitqXpugp/h0LPBcNl8voy1Fq9JzG0JiRLJ2gaCoPDiaakjoWisI9JaR82ExPzD5vAqO+CPMEbGBH8dGN1/DGLtCyiyjdULR0CYYmTXMqNaA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Q+/gV1yzbKWHlXm9d6UM4DKOw3Z7lrkKkJYWhzrEFmA=;
 b=jR7941Fqm3WVynNUZMquuRm3T57FGIoepq9pJVFvTOJqKutHf2i3xmo2sIHPZRPdNxiKrO2VudZ3jSxKauPg3PlrsSH/TC6ac/j8p4HKn6LGej/dL6yEjM46wtXkxIhdLpEQUncPGc0NY9V+w6DP9eJfcpH0HEoh2yIN377pQReXlKuAtPA/gkNiRpM7u9Ker4lYpecFUUvX7mFB8snZp4/eyULQIcszFCuMKEigEWTtbeFjzhOHC1LcqBQFQ5k5GgeRFzxHmtF3T6cP7Rkspdo4q1usmE5sESRH0GjrI9y+PPcD9jev8D3vlDmo+67EYaLKGl58XzJhMMeAZHoidw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Topic: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Index: 
 AQHX0g8QVTbfP59mVU+LM2unTUGOtawGkRQAgADLYgCAAPUEgIAAofWAgAbUDQCAAA7WAIAADxaAgADd7ICAAKBPgIAACwWA
Date: Tue, 23 Nov 2021 16:44:32 +0000
Message-ID: <bfd5d305-b315-2f6d-455d-dd3ba071d0b2@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
 <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
 <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
 <e66c4189-acdf-c32f-4b50-51c8aaab4efd@xen.org>
 <315b1308-5adc-c4f3-6150-1060dbac5f4f@epam.com>
 <9f8e424d-ad1c-2d32-a470-68b275adf22c@xen.org>
 <0aff1bbb-eaf8-4deb-0808-d7db5f1ba8f5@epam.com>
 <ab73f2e5-11d1-7cb4-89ab-74ef5eb1d32d@xen.org>
In-Reply-To: <ab73f2e5-11d1-7cb4-89ab-74ef5eb1d32d@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 6d202f75-0042-4f04-e354-08d9aea086dc
x-ms-traffictypediagnostic: AM0PR03MB6068:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB60684AFC7B60F2D27D3C7E15E7609@AM0PR03MB6068.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 QKn3eGnCl4OOuuCBvrD1I0xm861HnfPNRCiaL2o5iUzH2g/CoUklb0lTnHuLxjyigpRxI+qLgfJ0ACknf32en2F6/syCqhtX2x+xkrS7ET/c06Z/dSDs+2Bjc/ByGArW+WyOnyKJLs/X5ztvVZcyNrwBFiLmDDarMQshrwodX/jfvnDgEaS6fiyZeyfS7GdFlEXOYvbEos4mNO70r/ZIhebFgjeIkP85Ml4xaCxOyTN+9XFqIoeBaDjsSi/5Tr2Q6ASlayS5aqZNzNTaiGXO1WLSixwf/BGmCQqXPNAJbwUTD1T7/JnEiBiZtdjwyp8BUgHFpEqqFuLhvFkk0hYM6/S0Q7vT584pH26+mZOTE56WKH1S7x9OHBpNFCdQDDnuENkOaEoXsPvogeQUW59HlpymsYFHBiIeSsi4HnFx2PV592ZZ8WCOKGxLhiMTu+6EA7kljF3a3pT0oDQ2p8qEo64hTB4OCcx+WwwGnN9O3oRHyVkPgHnrIpFjo3etsg8SDBqazSeUBgMnjWm5weNpY+W4qPmOTZNSsB+FOfQa0gvnFnqXzGZHEehEUythjSxg5cqeQYgiW3xvOF7cv3L1UaEiZ9/5dBWonvVY6achM0/z7OpUPpdeLxvl+Q9XdqEzFgCOavrema/2IvyuZMsAHtJd55CNpUcjwzFRt+bxzUrdH9Avd4fnTPaSBY3zsSbFwPn5liHvz6Ji4xNE25rcDVshFNDUZI7CpuudNS1QjFgUtStE6T/psmxI3+UKcmMe
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(71200400001)(66446008)(110136005)(6486002)(5660300002)(91956017)(83380400001)(2906002)(122000001)(64756008)(66556008)(66476007)(66946007)(31686004)(107886003)(6512007)(6506007)(38100700002)(31696002)(86362001)(316002)(186003)(53546011)(8936002)(8676002)(38070700005)(508600001)(36756003)(4326008)(76116006)(54906003)(26005)(7416002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?QXhZN0FsZ2dHTWZ0anVUalMxZDJHaU9SMkR0QXFzSnI0Q0ZHdThYU2dpNGV3?=
 =?utf-8?B?UnVjV3NzM3JiSWtnQW5HdUZDVUp1YVdTTWY5S2xsb0hkaXZQYW9zZ3NzR2tT?=
 =?utf-8?B?RmVHVW5kNTFHTmJzWTRMaDdTTG04enNLM2tOL2xKRnE1T1NnV3RWQlM5TjRL?=
 =?utf-8?B?OTdBY3h6dmg3cXlCdnVQU0ZQQ0s4VDRCMzd3Q1BVcThlaVB5ZHZTeFRiRC9h?=
 =?utf-8?B?QzQ5SUQyaW9JL3JHYThxZlBRZXJ2YmJSVW5HRDllaTR0MzlYV0lRQ0tJUzkw?=
 =?utf-8?B?RnpRa0tVYWxoeXNSSUFkMkJiNUhDOGhZWExEUG5BV0FsdnB4ZkdwS1IrcjdN?=
 =?utf-8?B?QkF2di94Q3R2ZFIxR1VFMzZkUGpuWEQvRWVLbEM3NHZoM1FRU3hwMm9Cbnlm?=
 =?utf-8?B?dWtndEhaY2ljdEZBbE02NjU4U0hwSjFnNFN0bWtKTVNpV1BadTFCRC92UlQy?=
 =?utf-8?B?b0tCakw2dmF5V0xiNnl5cmx2T3BheFViVUhac0svVjY5Rmp3YzY5LzNoOHhj?=
 =?utf-8?B?QnFKaUdZYk5uNmhTbmJaSXQ4OG91RVNwZFp1R21kV0pkUmlBV3NtU0R6R2tL?=
 =?utf-8?B?V2J5bVdwcmwvcVFjckE3YnIvMWtUTVY2WC9wMW9GcEVyM0hhNzV2d0x0Nml4?=
 =?utf-8?B?bHVkVW5YVmpUNXVnM0dDRVZCV2pnSjJWMjBjRmgzcC9JanQxZU8rdmFPUEdG?=
 =?utf-8?B?d3Z6NkJLWm9qQWd0QXRLWkFCQm9HK0llQksvTVZUcmwyZUorSm0zQTNGQjN1?=
 =?utf-8?B?OXZOQmRjdGpNT0dMeHhNUFpVenRucjl2M3VVRGZrR1c4NHAwSmxKUEJFUkJy?=
 =?utf-8?B?ak8wN2dwV2xKNEYrWU53eGhQSWhqbzFJTkNReHkwbTB2eTA4T21xNUxLRjZ1?=
 =?utf-8?B?Wnc4YjVzTS9wNU00RUNkTnJIVVpsYzlBcW5wRWdkQVRqcTJuUndmRWp2RnVI?=
 =?utf-8?B?cDNtSkRYZ1FyR2lpOG1JaU1TcjN5WUFGZndBVitDZTV0NkZZVUM5aU50Zk9U?=
 =?utf-8?B?Z0JORTVoUEhVaitQbEdGajZ3WVh4N2VkK1VSTlZXd1FqMXI1cWM4NkxZSURP?=
 =?utf-8?B?MFNuWDcvRU12VmhpRHFybzlBVUxEZXF5ODU0bkZpYkFMMW82aGVzV3UrNU5l?=
 =?utf-8?B?WkpOOVNYMCsvSmJGRnhMaFl2L3RHZ25pYVAyd2syT3c2T2hnN1p5SWpacm4v?=
 =?utf-8?B?THNqSWtXcklySGdmNFdZellCV1pnU2wwV1loeVJZU00xTzlpam1IWllBM3Fj?=
 =?utf-8?B?TlAyb0RIQkpuVU82UkNzWHRqOUhaVThHYjVKenNrMGZpQ1pGWEtTNFE3ZE4v?=
 =?utf-8?B?cXMxenJQYTNkZHpRYjZyMitvMUV0WmkwbEVRSDhObFI5aWhPYi9SbzFOb3VB?=
 =?utf-8?B?QmlDNjNhSVdZUklxam11R3pYQzd5RWdtVVVxNG9zVlJHTUppckJaMUlYRTRu?=
 =?utf-8?B?Qk44NkhXUjZ3eEZuQklkWTJXRzlYeWsyYUpaMWFPZmZad05MWjdMSWxxK1NC?=
 =?utf-8?B?eCtnN3hVckJEb0JQOW5SSjBTVXlLWWNFcUIwb29rcUJXRWhodDhhSjVHNVhL?=
 =?utf-8?B?eWxreHVkMDF3elJadkE1dzRLZ2U5SVZjRm9RWE45ZEQvSGtWREdlZDlLY1gr?=
 =?utf-8?B?akhqWWZINS94eUd4dytxeGE4M3ljUk1QcFg5enRRajR0SlBkMGoyamFaZXdt?=
 =?utf-8?B?cWlRaGs2eWNSeVFEQ2pJNnFlL2NKMGJWQy90a2JRTUZ2V0UzdVl1Q0RSM0Fj?=
 =?utf-8?B?M1AwLytma2c5bnlCamMyQzlrSVRjWHBGZGN2ckdhR0h2VWF3N1BPOFlQSU53?=
 =?utf-8?B?NzlsR2lkd1BvNDJCTDhtQTIxQ1R2NC9oNHlHcGpOcGE3U2NleHVMMjladS9r?=
 =?utf-8?B?aHZaVm5qa1RFbjExaGZXRUR6bFV0cU1UNnd3d2dXTTQ5K3J0Zk9mdWZ1TDAz?=
 =?utf-8?B?MXRGc2JvM3AyeHlRS1NyTU9EWkh6SWRQRnJTeWh1bjN1OUF4THR3VU9hN0tu?=
 =?utf-8?B?TzVGcGJBV3BiN0ZYVHdBWERFbllKenJMUGRRVnh2TnAzdzNWcVhqT29jamI3?=
 =?utf-8?B?UXFFcGdzanlqRlUvcStXc05NZzdjLytWRUkyVmRLbk9zVFNPTFJuK1J4a3pJ?=
 =?utf-8?B?SGVPNTJhbUk1SE0rbUV2N2EzMC9SV2QvWEFKZVY0OTdBdWxnVjMvU1VhMmU0?=
 =?utf-8?B?Rk5jckhBYllzS2dOMUJ1QVZqN1cxL3BEOG1tSFI1bktRTUkvanJoejgwdTIy?=
 =?utf-8?B?YlJHaEZTT0VKUmFzd0VxemVlWWZpSWFvTjltN2owbkFZNFBqdzhGemkyeGVD?=
 =?utf-8?B?T0kzbjZWZ1NHM3FUMHRtYXMwSmpCNWlOUWh0TG42STQ2eTA2bHVmdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2CDC51D6F28D374587380E699ED8727E@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d202f75-0042-4f04-e354-08d9aea086dc
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 16:44:32.8307
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: P/qqzNInQUFJwspZsfDM0ApiTIwIrhmH+EZBTzTmhu1YgKll23ot8au+MZlGDBSTj4OHVD3nBelbFsmcjSj2KkpWUT7Cpub/zDVGxg0/sJhqbLiHjZjXVKWMKF46k36r
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6068
X-Proofpoint-ORIG-GUID: FGdKwCUtuSgDqhb-N7TMULlAUaBAFOH8
X-Proofpoint-GUID: FGdKwCUtuSgDqhb-N7TMULlAUaBAFOH8
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-23_06,2021-11-23_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501
 phishscore=0 clxscore=1015 bulkscore=0 mlxlogscore=679 lowpriorityscore=0
 malwarescore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0
 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111230085

SGksIEp1bGllbiENCg0KT24gMjMuMTEuMjEgMTg6MDUsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRyLA0KPg0KPiBPbiAyMy8xMS8yMDIxIDA2OjMxLCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+DQo+Pg0KPj4gT24gMjIuMTEuMjEgMTk6MTcsIEp1bGllbiBHcmFs
bCB3cm90ZToNCj4+PiBIaSwNCj4+Pg0KPj4+IE9uIDIyLzExLzIwMjEgMTY6MjMsIE9sZWtzYW5k
ciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+PiBPbiAyMi4xMS4yMSAxNzoyOSwgSnVsaWVuIEdy
YWxsIHdyb3RlOg0KPj4+Pj4gSSB3b3VsZCBwcmVmZXIgdG8gZ28gd2l0aCBteSB3YXkuIFRoaXMg
Y2FuIGJlIHJlZmluZWQgaW4gdGhlIGZ1dHVyZSBpZiB3ZSBmaW5kIERldmljZS1UcmVlIHRoYXQg
bWF0Y2hlcyB3aGF0IHlvdSB3cm90ZS4NCj4+Pj4gT2ssIHNvIGp1c3QgdG8gbWFrZSBpdCBjbGVh
cjoNCj4+Pj4gwqDCoCA+YSBQQ0kgZGV2aWNlIHdvdWxkIGFsd2F5cyBiZSBkZXNjcmliZWQgYXMg
YSBjaGlsZCBvZiB0aGUgaG9zdGJyaWRnZXMuIFNvIEkgd291bGQgcmV3b3JrIHRoZSAnaWYnIHRv
IGFsc28gY2hlY2sgaWYgdGhlwqBwYXJlbnTCoHR5cGXCoGlzwqBub3TCoCJwY2kiDQo+Pj4NCj4+
PiBUaGF0J3MgY29ycmVjdC4gVGhhbmsgeW91IQ0KPj4gT2ssIHNvIGhvdyBhYm91dA0KPj4gwqAg
wqDCoMKgIGlmICggaXNfcGNpX3Bhc3N0aHJvdWdoX2VuYWJsZWQoKSAmJiBkdF9kZXZpY2VfdHlw
ZV9pc19lcXVhbChub2RlLCAicGNpIikgKQ0KPj4gwqAgwqDCoMKgIHsNCj4+IMKgIMKgwqDCoMKg
wqDCoMKgIGJvb2wgc2tpcCA9IGZhbHNlOw0KPj4NCj4+IMKgIMKgwqDCoMKgwqDCoMKgIC8qDQo+
PiDCoCDCoMKgwqDCoMKgwqDCoMKgICogSWYgdGhlIHBhcmVudCBpcyBhbHNvIGEgInBjaSIgZGV2
aWNlLCB0aGVuICJsaW51eCxwY2ktZG9tYWluIg0KPj4gwqAgwqDCoMKgwqDCoMKgwqDCoCAqIHNo
b3VsZCBhbHJlYWR5IGJlIHRoZXJlLCBzbyBub3RoaW5nIHRvIGRvIHRoZW4uDQo+PiDCoCDCoMKg
wqDCoMKgwqDCoMKgICovDQo+DQo+IFRoaXMgY29tbWVudCBpcyBhIGJpdCBjb25mdXNpbmcuDQpE
byB5b3UgaGF2ZSBzb21ldGhpbmcgb24geW91ciBtaW5kPw0KPiBJIHRoaW5rIHdoYXQgbWF0dGVy
IGlmIHRoZSBwYXJlbnQgaXMgYSAicGNpIiBkZXZpY2UsIHRoZW4gdGhlIGN1cnJlbnQgbm9kZSBt
dXN0IG5vdCBiZSBhIGhvc3RicmlkZ2UuIFNvIHdlIGNhbiBza2lwIGl0Lg0KQnkgc2tpcHBpbmcg
eW91IG9ubHkgbWVhbiB3ZSBkbyBub3QgbmVlZCB0byBhZGQvYXNzaWduICJsaW51eCxwY2ktZG9t
YWluIiwgcmlnaHQ/DQo+IEhvd2V2ZXIuLi4NCj4NCj4+IMKgIMKgwqDCoMKgwqDCoMKgIGlmICgg
bm9kZS0+cGFyZW50ICYmIGR0X2RldmljZV90eXBlX2lzX2VxdWFsKG5vZGUtPnBhcmVudCwgInBj
aSIpICkNCj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2tpcCA9IHRydWU7DQo+Pg0KPj4g
wqAgwqDCoMKgwqDCoMKgwqAgaWYgKCAhc2tpcCAmJiAhZHRfZmluZF9wcm9wZXJ0eShub2RlLCAi
bGludXgscGNpLWRvbWFpbiIsIE5VTEwpICkNCj4+IMKgIMKgwqDCoMKgwqDCoMKgIHsNCj4+IEkg
cGxheWVkIHdpdGggYSBzaW5nbGUgaWYgYW5kIGl0IGxvb2tzIHNjYXJ5Li4uDQo+DQo+IC4uLiBo
b3cgYWJvdXQgaW50cm9kdWNpbmcgYW4gaGVscGVyIHRoYXQgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0
aGlzIG5vZGUgaXMgbGlrZWx5IGFuIGhvc3RicmlkZ2U/DQpUaGlzIGlzIHlldCBhIHNpbmdsZSB1
c2Ugb2Ygc3VjaCBhIGNoZWNrOiB3aHkgd291bGQgd2UgbmVlZCBhIGhlbHBlciBhbmQgd2hhdCB3
b3VsZCB0aGF0DQpoZWxwZXIgZG8/DQo+DQo+IENoZWVycywNCj4NClRoYW5rIHlvdSwNCk9sZWtz
YW5kcg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:46:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:46:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229780.397282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYwB-0002zJ-SQ; Tue, 23 Nov 2021 16:46:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229780.397282; Tue, 23 Nov 2021 16:46:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpYwB-0002zC-PE; Tue, 23 Nov 2021 16:46:31 +0000
Received: by outflank-mailman (input) for mailman id 229780;
 Tue, 23 Nov 2021 16:46:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IZo3=QK=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpYwA-0002z4-Hb
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:46:30 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7833a3b-4c7c-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 17:46:28 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id t5so95179796edd.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 08:46:28 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id hd15sm5782961ejc.69.2021.11.23.08.46.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Nov 2021 08:46:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7833a3b-4c7c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=YYCG1Aq+fhWF5Zatko4LyF8TxGDWbc6pgSnyKGakjLA=;
        b=Pecn0LQk7pLV7vEF34B7fFT6PLTAZ5wI9cWkyC298OB9kO1VBv86+Vd6/fl2tQA6D4
         6iPsRg0T8dXadXh4nNwJc1oP8NNqokfjWidAz4bYxXLMbzHR6l1wsKhk5h+lBrbQT88s
         qdSdyAXQ0f1zY5xf7PiL0Dr8ZkXca0nuhneSpSimB1VwJRRgNy5iQrbVuKU130AAnntp
         NJb+2wCra7CzrjOnrLNOHXm8ImYHG/pggJinNCHJd05egAIH02RGp6f3Ue1fytGoFXDk
         lG+7b7jArUf+Xo8NdiXUHNuEO+QAynDywnc6xJ5XkPupWmjdY1Ojqm0m5AtoVYzAtN3I
         y9Rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=YYCG1Aq+fhWF5Zatko4LyF8TxGDWbc6pgSnyKGakjLA=;
        b=hqCjU5GquID+K1gMeiKKtLEU6neu0t+VvZzUSD4UPudRYYZugfY/YaI6SxNVYP+qu7
         SrdWtZq/Y31ec38Bg/u6KqXB0ThTvuwUx9Ee3hltrokCfQCILzlkiNssTO/rYbtBI/xs
         YpWNtfxAOK/dR/mYBi2vqHSI8S3uGUFiGZ8bz8WR/bWWCxQP97bw3JnP4FI7WNGoXS/7
         6pg6OKzg8xHSGXJiprFm9f43HUYDRZ50prNR29SBWbkM7kO+XiNAuxQ7Woe/08fZ2qeJ
         0DdmHdsu2+oEm3CK2QbBat6FSfRhOYSygBESaBhLi7xn6Z08iDw9i+K2Ar4CPtmm4ij/
         ygSA==
X-Gm-Message-State: AOAM532k08YprdWSiCQoPxAtqkVa1/5BRF91Ko3BMrXqVcz9MKJVcb/Q
	anIAGSfDDk4GUVc6ej9Z+SI=
X-Google-Smtp-Source: ABdhPJwhvoz71Em4f53Zj7Q2z4DsefzjOEwnXn0XnWroOh34skVwNpgmuxj1i3vLFZv+zA6S659Tnw==
X-Received: by 2002:a05:6402:350a:: with SMTP id b10mr11635529edd.184.1637685988089;
        Tue, 23 Nov 2021 08:46:28 -0800 (PST)
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
To: Stefano Stabellini <sstabellini@kernel.org>, jgross@suse.com
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-4-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s>
 <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
 <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop>
 <f1f1025b-911d-3d27-f408-9c042bc4fca4@gmail.com>
 <alpine.DEB.2.22.394.2111191809100.1412361@ubuntu-linux-20-04-desktop>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <76163855-c5eb-05db-2f39-3c6bfee46345@gmail.com>
Date: Tue, 23 Nov 2021 18:46:26 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111191809100.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 20.11.21 04:19, Stefano Stabellini wrote:

Hi Stefano, Juergen, all


> Juergen please see the bottom of the email
>
> On Fri, 19 Nov 2021, Oleksandr wrote:
>> On 19.11.21 02:59, Stefano Stabellini wrote:
>>> On Tue, 9 Nov 2021, Oleksandr wrote:
>>>> On 28.10.21 19:37, Stefano Stabellini wrote:
>>>>
>>>> Hi Stefano
>>>>
>>>> I am sorry for the late response.
>>>>
>>>>> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>>>>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>>>
>>>>>> The main reason of this change is that unpopulated-alloc
>>>>>> code cannot be used in its current form on Arm, but there
>>>>>> is a desire to reuse it to avoid wasting real RAM pages
>>>>>> for the grant/foreign mappings.
>>>>>>
>>>>>> The problem is that system "iomem_resource" is used for
>>>>>> the address space allocation, but the really unallocated
>>>>>> space can't be figured out precisely by the domain on Arm
>>>>>> without hypervisor involvement. For example, not all device
>>>>>> I/O regions are known by the time domain starts creating
>>>>>> grant/foreign mappings. And following the advise from
>>>>>> "iomem_resource" we might end up reusing these regions by
>>>>>> a mistake. So, the hypervisor which maintains the P2M for
>>>>>> the domain is in the best position to provide unused regions
>>>>>> of guest physical address space which could be safely used
>>>>>> to create grant/foreign mappings.
>>>>>>
>>>>>> Introduce new helper arch_xen_unpopulated_init() which purpose
>>>>>> is to create specific Xen resource based on the memory regions
>>>>>> provided by the hypervisor to be used as unused space for Xen
>>>>>> scratch pages.
>>>>>>
>>>>>> If arch doesn't implement arch_xen_unpopulated_init() to
>>>>>> initialize Xen resource the default "iomem_resource" will be used.
>>>>>> So the behavior on x86 won't be changed.
>>>>>>
>>>>>> Also fall back to allocate xenballooned pages (steal real RAM
>>>>>> pages) if we do not have any suitable resource to work with and
>>>>>> as the result we won't be able to provide unpopulated pages.
>>>>>>
>>>>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>>> ---
>>>>>> Changes RFC -> V2:
>>>>>>       - new patch, instead of
>>>>>>        "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to
>>>>>> provide
>>>>>> unallocated space"
>>>>>> ---
>>>>>>     drivers/xen/unpopulated-alloc.c | 89
>>>>>> +++++++++++++++++++++++++++++++++++++++--
>>>>>>     include/xen/xen.h               |  2 +
>>>>>>     2 files changed, 88 insertions(+), 3 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/xen/unpopulated-alloc.c
>>>>>> b/drivers/xen/unpopulated-alloc.c
>>>>>> index a03dc5b..1f1d8d8 100644
>>>>>> --- a/drivers/xen/unpopulated-alloc.c
>>>>>> +++ b/drivers/xen/unpopulated-alloc.c
>>>>>> @@ -8,6 +8,7 @@
>>>>>>       #include <asm/page.h>
>>>>>>     +#include <xen/balloon.h>
>>>>>>     #include <xen/page.h>
>>>>>>     #include <xen/xen.h>
>>>>>>     @@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_lock);
>>>>>>     static struct page *page_list;
>>>>>>     static unsigned int list_count;
>>>>>>     +static struct resource *target_resource;
>>>>>> +static struct resource xen_resource = {
>>>>>> +	.name = "Xen unused space",
>>>>>> +};
>>>>>> +
>>>>>> +/*
>>>>>> + * If arch is not happy with system "iomem_resource" being used for
>>>>>> + * the region allocation it can provide it's own view by initializing
>>>>>> + * "xen_resource" with unused regions of guest physical address space
>>>>>> + * provided by the hypervisor.
>>>>>> + */
>>>>>> +int __weak arch_xen_unpopulated_init(struct resource *res)
>>>>>> +{
>>>>>> +	return -ENOSYS;
>>>>>> +}
>>>>>> +
>>>>>>     static int fill_list(unsigned int nr_pages)
>>>>>>     {
>>>>>>     	struct dev_pagemap *pgmap;
>>>>>> -	struct resource *res;
>>>>>> +	struct resource *res, *tmp_res = NULL;
>>>>>>     	void *vaddr;
>>>>>>     	unsigned int i, alloc_pages = round_up(nr_pages,
>>>>>> PAGES_PER_SECTION);
>>>>>> -	int ret = -ENOMEM;
>>>>>> +	int ret;
>>>>>>       	res = kzalloc(sizeof(*res), GFP_KERNEL);
>>>>>>     	if (!res)
>>>>>> @@ -30,7 +47,7 @@ static int fill_list(unsigned int nr_pages)
>>>>>>     	res->name = "Xen scratch";
>>>>>>     	res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
>>>>>>     -	ret = allocate_resource(&iomem_resource, res,
>>>>>> +	ret = allocate_resource(target_resource, res,
>>>>>>     				alloc_pages * PAGE_SIZE, 0, -1,
>>>>>>     				PAGES_PER_SECTION * PAGE_SIZE, NULL,
>>>>>> NULL);
>>>>>>     	if (ret < 0) {
>>>>>> @@ -38,6 +55,31 @@ static int fill_list(unsigned int nr_pages)
>>>>>>     		goto err_resource;
>>>>>>     	}
>>>>>>     +	/*
>>>>>> +	 * Reserve the region previously allocated from Xen resource
>>>>>> to avoid
>>>>>> +	 * re-using it by someone else.
>>>>>> +	 */
>>>>>> +	if (target_resource != &iomem_resource) {
>>>>>> +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>>>>>> +		if (!res) {
>>>>>> +			ret = -ENOMEM;
>>>>>> +			goto err_insert;
>>>>>> +		}
>>>>>> +
>>>>>> +		tmp_res->name = res->name;
>>>>>> +		tmp_res->start = res->start;
>>>>>> +		tmp_res->end = res->end;
>>>>>> +		tmp_res->flags = res->flags;
>>>>>> +
>>>>>> +		ret = insert_resource(&iomem_resource, tmp_res);
>>>>>> +		if (ret < 0) {
>>>>>> +			pr_err("Cannot insert IOMEM resource [%llx -
>>>>>> %llx]\n",
>>>>>> +			       tmp_res->start, tmp_res->end);
>>>>>> +			kfree(tmp_res);
>>>>>> +			goto err_insert;
>>>>>> +		}
>>>>>> +	}
>>>>> I am a bit confused.. why do we need to do this? Who could be
>>>>> erroneously re-using the region? Are you saying that the next time
>>>>> allocate_resource is called it could find the same region again? It
>>>>> doesn't seem possible?
>>>> No, as I understand the allocate_resource() being called for the same root
>>>> resource won't provide the same region... We only need to do this (insert
>>>> the
>>>> region into "iomem_resource") if we allocated it from our *internal*
>>>> "xen_resource", as *global* "iomem_resource" (which is used everywhere) is
>>>> not
>>>> aware of that region has been already allocated. So inserting a region
>>>> here we
>>>> reserving it, otherwise it could be reused elsewhere.
>>> But elsewhere where?
>> I think, theoretically everywhere where allocate_resource(&iomem_resource,
>> ...) is called.
>>
>>
>>> Let's say that allocate_resource allocates a range from xen_resource.
>>>   From reading the code, it doesn't look like iomem_resource would have
>>> that range because the extended regions described under /hypervisor are
>>> not added automatically to iomem_resource.
>>>
>>> So what if we don't call insert_resource? Nothing could allocate the
>>> same range because iomem_resource doesn't have it at all and
>>> xen_resource is not used anywhere if not here.
>>>
>>> What am I missing?
>>
>> Below my understanding which, of course, might be wrong.
>>
>> If we don't claim resource by calling insert_resource (or even
>> request_resource) here then the same range could be allocated everywhere where
>> allocate_resource(&iomem_resource, ...) is called.
>> I don't see what prevents the same range from being allocated. Why actually
>> allocate_resource(&iomem_resource, ...) can't provide the same range if it is
>> free (not-reserved-yet) from it's PoV? The comment above allocate_resource()
>> says "allocate empty slot in the resource tree given range & alignment". So
>> this "empty slot" could be exactly the same range.
>>
>> I experimented with that a bit trying to call
>> allocate_resource(&iomem_resource, ...) several times in another place to see
>> what ranges it returns in both cases (w/ and w/o calling insert_resource
>> here). So an experiment confirmed (of course, if I made it correctly) that the
>> same range could be allocated if we didn't call insert_resource() here. And as
>> I understand there is nothing strange here, as iomem_resource covers all
>> address space initially (0, -1) and everything *not* inserted/requested (in
>> other words, reserved) yet is considered as free and could be provided if fits
>> constraints. Or I really missed something?
> Thanks for the explanation! It was me that didn't know that
> iomem_resource covers all the address space initially. I thought it was
> populated only with actual iomem ranges. Now it makes sense, thanks!
>
>
>> It feels to me that it would be better to call request_resource() instead of
>> insert_resource(). It seems, that if no conflict happens both functions will
>> behave in same way, but in case of conflict if the conflicting resource
>> entirely fit the new resource the former will return an error. I think, this
>> way we will be able to detect that a range we are trying to reserve is already
>> present and bail out early.
>>
>>
>>> Or maybe it is the other way around: core Linux code assumes everything
>>> is described in iomem_resource so something under kernel/ or mm/ would
>>> crash if we start using a page pointing to an address missing from
>>> iomem_resource?
>>>      
>>>>>>     	pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
>>>>>>     	if (!pgmap) {
>>>>>>     		ret = -ENOMEM;
>>>>>> @@ -95,12 +137,40 @@ static int fill_list(unsigned int nr_pages)
>>>>>>     err_memremap:
>>>>>>     	kfree(pgmap);
>>>>>>     err_pgmap:
>>>>>> +	if (tmp_res) {
>>>>>> +		release_resource(tmp_res);
>>>>>> +		kfree(tmp_res);
>>>>>> +	}
>>>>>> +err_insert:
>>>>>>     	release_resource(res);
>>>>>>     err_resource:
>>>>>>     	kfree(res);
>>>>>>     	return ret;
>>>>>>     }
>>>>>>     +static void unpopulated_init(void)
>>>>>> +{
>>>>>> +	static bool inited = false;
>>>>> initialized = false
>>>> ok.
>>>>
>>>>
>>>>>> +	int ret;
>>>>>> +
>>>>>> +	if (inited)
>>>>>> +		return;
>>>>>> +
>>>>>> +	/*
>>>>>> +	 * Try to initialize Xen resource the first and fall back to
>>>>>> default
>>>>>> +	 * resource if arch doesn't offer one.
>>>>>> +	 */
>>>>>> +	ret = arch_xen_unpopulated_init(&xen_resource);
>>>>>> +	if (!ret)
>>>>>> +		target_resource = &xen_resource;
>>>>>> +	else if (ret == -ENOSYS)
>>>>>> +		target_resource = &iomem_resource;
>>>>>> +	else
>>>>>> +		pr_err("Cannot initialize Xen resource\n");
>>>>>> +
>>>>>> +	inited = true;
>>>>>> +}
>>>>> Would it make sense to call unpopulated_init from an init function,
>>>>> rather than every time xen_alloc_unpopulated_pages is called?
>>>> Good point, thank you. Will do. To be honest, I also don't like the
>>>> current
>>>> approach much.
>>>>
>>>>
>>>>>>     /**
>>>>>>      * xen_alloc_unpopulated_pages - alloc unpopulated pages
>>>>>>      * @nr_pages: Number of pages
>>>>>> @@ -112,6 +182,16 @@ int xen_alloc_unpopulated_pages(unsigned int
>>>>>> nr_pages, struct page **pages)
>>>>>>     	unsigned int i;
>>>>>>     	int ret = 0;
>>>>>>     +	unpopulated_init();
>>>>>> +
>>>>>> +	/*
>>>>>> +	 * Fall back to default behavior if we do not have any
>>>>>> suitable
>>>>>> resource
>>>>>> +	 * to allocate required region from and as the result we won't
>>>>>> be able
>>>>>> to
>>>>>> +	 * construct pages.
>>>>>> +	 */
>>>>>> +	if (!target_resource)
>>>>>> +		return alloc_xenballooned_pages(nr_pages, pages);
>>>>> The commit message says that the behavior on x86 doesn't change but this
>>>>> seems to be a change that could impact x86?
>>>> I don't think, however I didn't tested on x86 and might be wrong, but
>>>> according to the current patch, on x86 the "target_resource" is always
>>>> valid
>>>> and points to the "iomem_resource" as arch_xen_unpopulated_init() is not
>>>> implemented. So there won't be any fallback to use
>>>> alloc_(free)_xenballooned_pages() here and fill_list() will behave as
>>>> usual.
>>>    If target_resource is always valid, then we don't need this special
>>> check. In fact, the condition should never be true.
>>
>> The target_resource is always valid and points to the "iomem_resource" on x86
>> (this is equivalent to the behavior before this patch).
>> On Arm target_resource might be NULL if arch_xen_unpopulated_init() failed,
>> for example, if no extended regions reported by the hypervisor.
>> We cannot use "iomem_resource" on Arm, only a resource constructed from
>> extended regions. This is why I added that check (and fallback to xenballooned
>> pages).
>> What I was thinking is that in case of using old Xen (although we would need
>> to balloon out RAM pages) we still would be able to keep working, so no need
>> to disable CONFIG_XEN_UNPOPULATED_ALLOC on such setups.
>>   
>>     
>>>> You raised a really good question, on Arm we need a fallback to balloon
>>>> out
>>>> RAM pages again if hypervisor doesn't provide extended regions (we run on
>>>> old
>>>> version, no unused regions with reasonable size, etc), so I decided to put
>>>> a
>>>> fallback code here, an indicator of the failure is invalid
>>>> "target_resource".
>>> I think it is unnecessary as we already assume today that
>>> &iomem_resource is always available.
>>>> I noticed the patch which is about to be upstreamed that removes
>>>> alloc_(free)xenballooned_pages API [1]. Right now I have no idea how/where
>>>> this fallback could be implemented as this is under build option control
>>>> (CONFIG_XEN_UNPOPULATED_ALLOC). So the API with the same name is either
>>>> used
>>>> for unpopulated pages (if set) or ballooned pages (if not set). I would
>>>> appreciate suggestions regarding that. I am wondering would it be possible
>>>> and
>>>> correctly to have both mechanisms (unpopulated and ballooned) enabled by
>>>> default and some init code to decide which one to use at runtime or some
>>>> sort?
>>> I would keep it simple and remove the fallback from this patch. So:
>>>
>>> - if not CONFIG_XEN_UNPOPULATED_ALLOC, then balloon
>>> - if CONFIG_XEN_UNPOPULATED_ALLOC, then
>>>       - xen_resource if present
>>>       - otherwise iomem_resource
>> Unfortunately, we cannot use iomem_resource on Arm safely, either xen_resource
>> or fail (if no fallback exists).
>>
>>
>>> The xen_resource/iomem_resource config can be done at init time using
>>> target_resource. At runtime, target_resource is always != NULL so we
>>> just go ahead and use it.
>>
>> Thank you for the suggestion. OK, let's keep it simple and drop fallback
>> attempts for now. With one remark:
>> We will make CONFIG_XEN_UNPOPULATED_ALLOC disabled by default on Arm in next
>> patch. So by default everything will behave as usual on Arm (balloon out RAM
>> pages),
>> if user knows for sure that Xen reports extended regions, he/she can enable
>> the config. This way we won't break anything. What do you think?
> Actually after reading your replies and explanation I changed opinion: I
> think we do need the fallback because Linux cannot really assume that
> it is running on "new Xen" so it definitely needs to keep working if
> CONFIG_XEN_UNPOPULATED_ALLOC is enabled and the extended regions are not
> advertised.
>
> I think we'll have to roll back some of the changes introduced by
> 121f2faca2c0a. That's because even if CONFIG_XEN_UNPOPULATED_ALLOC is
> enabled we cannot know if we can use unpopulated-alloc or whether we
> have to use alloc_xenballooned_pages until we parse the /hypervisor node
> in device tree at runtime.

Exactly!


>
> In short, we cannot switch between unpopulated-alloc and
> alloc_xenballooned_pages at build time, we have to do it at runtime
> (boot time).

+1


I created a patch to partially revert 121f2faca2c0a "xen/balloon: rename 
alloc/free_xenballooned_pages".

If there is no objections I will add it to V3 (which is almost ready, 
except the fallback bits). Could you please tell me what do you think?


 From dc79bcd425358596d95e715a8bd8b81deaaeb703 Mon Sep 17 00:00:00 2001
From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Date: Tue, 23 Nov 2021 18:14:41 +0200
Subject: [PATCH] xen/balloon: Bring alloc(free)_xenballooned_pages helpers
  back

This patch rolls back some of the changes introduced by commit
121f2faca2c0a "xen/balloon: rename alloc/free_xenballooned_pages"
in order to make possible to still allocate xenballooned pages
if CONFIG_XEN_UNPOPULATED_ALLOC is enabled.

On Arm the unpopulated pages will be allocated on top of extended
regions provided by Xen via device-tree (the subsequent patches
will add required bits to support unpopulated-alloc feature on Arm).
The problem is that extended regions feature has been introduced
into Xen quite recently (during 4.16 release cycle). So this
effectively means that Linux must only use unpopulated-alloc on Arm
if it is running on "new Xen" which advertises these regions.
But, it will only be known after parsing the "hypervisor" node
at boot time, so before doing that we cannot assume anything.

In order to keep working if CONFIG_XEN_UNPOPULATED_ALLOC is enabled
and the extended regions are not advertised (Linux is running on
"old Xen", etc) we need the fallback to alloc_xenballooned_pages().

This way we wouldn't reduce the amount of memory usable (wasting
RAM pages) for any of the external mappings anymore (and eliminate
XSA-300) with "new Xen", but would be still functional ballooning
out RAM pages with "old Xen".

Also rename alloc(free)_xenballooned_pages to 
xen_alloc(free)_ballooned_pages.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
  drivers/xen/balloon.c | 20 +++++++++-----------
  include/xen/balloon.h |  3 +++
  include/xen/xen.h     |  6 ++++++
  3 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index ba2ea11..a2c4fc49 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -581,7 +581,6 @@ void balloon_set_new_target(unsigned long target)
  }
  EXPORT_SYMBOL_GPL(balloon_set_new_target);

-#ifndef CONFIG_XEN_UNPOPULATED_ALLOC
  static int add_ballooned_pages(unsigned int nr_pages)
  {
      enum bp_state st;
@@ -610,12 +609,12 @@ static int add_ballooned_pages(unsigned int nr_pages)
  }

  /**
- * xen_alloc_unpopulated_pages - get pages that have been ballooned out
+ * xen_alloc_ballooned_pages - get pages that have been ballooned out
   * @nr_pages: Number of pages to get
   * @pages: pages returned
   * @return 0 on success, error otherwise
   */
-int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
+int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages)
  {
      unsigned int pgno = 0;
      struct page *page;
@@ -652,23 +651,23 @@ int xen_alloc_unpopulated_pages(unsigned int 
nr_pages, struct page **pages)
      return 0;
   out_undo:
      mutex_unlock(&balloon_mutex);
-    xen_free_unpopulated_pages(pgno, pages);
+    xen_free_ballooned_pages(pgno, pages);
      /*
-     * NB: free_xenballooned_pages will only subtract pgno pages, but since
+     * NB: xen_free_ballooned_pages will only subtract pgno pages, but 
since
       * target_unpopulated is incremented with nr_pages at the start we 
need
       * to remove the remaining ones also, or accounting will be screwed.
       */
      balloon_stats.target_unpopulated -= nr_pages - pgno;
      return ret;
  }
-EXPORT_SYMBOL(xen_alloc_unpopulated_pages);
+EXPORT_SYMBOL(xen_alloc_ballooned_pages);

  /**
- * xen_free_unpopulated_pages - return pages retrieved with 
get_ballooned_pages
+ * xen_free_ballooned_pages - return pages retrieved with 
get_ballooned_pages
   * @nr_pages: Number of pages
   * @pages: pages to return
   */
-void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
+void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages)
  {
      unsigned int i;

@@ -687,9 +686,9 @@ void xen_free_unpopulated_pages(unsigned int 
nr_pages, struct page **pages)

      mutex_unlock(&balloon_mutex);
  }
-EXPORT_SYMBOL(xen_free_unpopulated_pages);
+EXPORT_SYMBOL(xen_free_ballooned_pages);

-#if defined(CONFIG_XEN_PV)
+#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
  static void __init balloon_add_region(unsigned long start_pfn,
                        unsigned long pages)
  {
@@ -712,7 +711,6 @@ static void __init balloon_add_region(unsigned long 
start_pfn,
      balloon_stats.total_pages += extra_pfn_end - start_pfn;
  }
  #endif
-#endif

  static int __init balloon_init(void)
  {
diff --git a/include/xen/balloon.h b/include/xen/balloon.h
index e93d4f0..f78a6cc 100644
--- a/include/xen/balloon.h
+++ b/include/xen/balloon.h
@@ -26,6 +26,9 @@ extern struct balloon_stats balloon_stats;

  void balloon_set_new_target(unsigned long target);

+int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages);
+void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages);
+
  #ifdef CONFIG_XEN_BALLOON
  void xen_balloon_init(void);
  #else
diff --git a/include/xen/xen.h b/include/xen/xen.h
index 9f031b5..410e3e4 100644
--- a/include/xen/xen.h
+++ b/include/xen/xen.h
@@ -52,7 +52,13 @@ bool xen_biovec_phys_mergeable(const struct bio_vec 
*vec1,
  extern u64 xen_saved_max_mem_size;
  #endif

+#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
  int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page 
**pages);
  void xen_free_unpopulated_pages(unsigned int nr_pages, struct page 
**pages);
+#else
+#define xen_alloc_unpopulated_pages xen_alloc_ballooned_pages
+#define xen_free_unpopulated_pages xen_free_ballooned_pages
+#include <xen/balloon.h>
+#endif

  #endif    /* _XEN_XEN_H */
-- 
2.7.4



>
> Juergen, what do you think?


-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:51:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:51:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229785.397297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ0T-0004R1-QI; Tue, 23 Nov 2021 16:50:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229785.397297; Tue, 23 Nov 2021 16:50:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ0T-0004QF-Ka; Tue, 23 Nov 2021 16:50:57 +0000
Received: by outflank-mailman (input) for mailman id 229785;
 Tue, 23 Nov 2021 16:50:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0S-0004O2-1H
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:56 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0S-0007yy-0P
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:56 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0R-0000Rv-Va
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:55 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mpZ0P-00073B-Ng; Tue, 23 Nov 2021 16:50:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=eHsV/RneBYh6dTunU90nMqBrHD9YuZKeEe6t7vIHjHg=; b=QKG6cCDX51Hxeg9ABWUs+kxZos
	mDKhBYjYAoIgMUgjDBRvZq7XUf3O9ftqwhrdB/0norQnVUiM1dJIE3GDqUjeJ3k6ruXnqdgPuMeCM
	el5NGYRFppvZCxBqM4dJd2RoYC93wVb8rVQO7lYxXhGRU0NA5ulXbrYs0ay4bRm4Mid0=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: iwj@xenproject.org,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.16 1/3] Config.mk: switch to named tags (for stable branch)
Date: Tue, 23 Nov 2021 16:50:42 +0000
Message-Id: <20211123165044.29546-2-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20211123165044.29546-1-iwj@xenproject.org>
References: <20211123165044.29546-1-iwj@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 Config.mk | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/Config.mk b/Config.mk
index 6be010c7ce..b32a185efc 100644
--- a/Config.mk
+++ b/Config.mk
@@ -239,17 +239,15 @@ SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
 MINIOS_UPSTREAM_URL ?= git://xenbits.xen.org/mini-os.git
 endif
 OVMF_UPSTREAM_REVISION ?= 7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5
-QEMU_UPSTREAM_REVISION ?= b6e539830bf45e2d7a6bd86ddfdf003088b173b0
-MINIOS_UPSTREAM_REVISION ?= 9f09744aa3e5982a083ecf8e9cd2123f477081f9
+QEMU_UPSTREAM_REVISION ?= qemu-xen-4.16.0-rc4
+MINIOS_UPSTREAM_REVISION ?= xen-4.16.0-rc4
 
 SEABIOS_UPSTREAM_REVISION ?= rel-1.14.0
 
 ETHERBOOT_NICS ?= rtl8139 8086100e
 
 
-QEMU_TRADITIONAL_REVISION ?= 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764
-# Wed Jul 15 10:01:40 2020 +0100
-# qemu-trad: remove Xen path dependencies
+QEMU_TRADITIONAL_REVISION ?= xen-4.16.0-rc4
 
 # Specify which qemu-dm to use. This may be `ioemu' to use the old
 # Mercurial in-tree version, or a local directory, or a git URL.
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:51:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:51:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229784.397292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ0T-0004OS-F8; Tue, 23 Nov 2021 16:50:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229784.397292; Tue, 23 Nov 2021 16:50:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ0T-0004OL-Bw; Tue, 23 Nov 2021 16:50:57 +0000
Received: by outflank-mailman (input) for mailman id 229784;
 Tue, 23 Nov 2021 16:50:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0R-0004Nw-JO
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0R-0007yu-Gs
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:55 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0R-0000Re-Fg
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:55 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mpZ0P-00073B-CK; Tue, 23 Nov 2021 16:50:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-Id:Date:Subject:Cc:To:From;
	bh=KITrTSK7PkaAEwbfEZCFh3Db1KPpHJ0nM4gGWg26FJg=; b=RIpEdYU1CHswjsNth/4cMWn2Tk
	bENIibk8C+vZIee6D9oCo3JW2g+aOIkgTJDNCkrYlGPjWbzaE03imxYzpd7xNDq9nbnUhcqKFAxjM
	8KLwgfMBsGMrbsN5rPtvH2IixK5XAcJbA/foejLIfk+Ou3LDW4dINQ8g6aOxykeWQTIg=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: iwj@xenproject.org,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.16 0/3] Changes from release technician checklist
Date: Tue, 23 Nov 2021 16:50:41 +0000
Message-Id: <20211123165044.29546-1-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

I am about to push these to xen.git#staging-4.16.

Roger, I have not messed with the furniture in CHANGELOG.md on either
staging-4.16 or staging.

Ian.

Ian Jackson (3):
  Config.mk: switch to named tags (for stable branch)
  SUPPORT.md: Set Release Notes link
  Turn off debug by default

 Config.mk         | 8 +++-----
 SUPPORT.md        | 4 ++--
 tools/Rules.mk    | 2 +-
 xen/Kconfig.debug | 2 +-
 4 files changed, 7 insertions(+), 9 deletions(-)

-- 
2.20.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:51:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:51:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229787.397313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ0U-0004kA-N4; Tue, 23 Nov 2021 16:50:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229787.397313; Tue, 23 Nov 2021 16:50:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ0U-0004iK-Eg; Tue, 23 Nov 2021 16:50:58 +0000
Received: by outflank-mailman (input) for mailman id 229787;
 Tue, 23 Nov 2021 16:50:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0S-0004O9-Or
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:56 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0S-0007z2-O5
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:56 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0S-0000Sp-Me
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:56 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mpZ0Q-00073B-6g; Tue, 23 Nov 2021 16:50:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=a+220sNw/iXmKHTJi7clWGP7YO3dOLIRBoh7wrJHBXQ=; b=hQzb3CNocZMH1qs5EHmLN7YQz2
	UlpIl9Xxh8rDtOvAJ/Z/oPagqmKNPGeJwjaDJsVhiazKf6DkaS8lD8GGvR5SzD6XLmGtW2F0kMxdz
	NsnUDzJMZ74QSQCzFnhyFhmfgK2nXoti/d4MqPgYuDCDSWn8qMUKKrU2WhhuXp4cSjDA=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: iwj@xenproject.org,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.16 2/3] SUPPORT.md: Set Release Notes link
Date: Tue, 23 Nov 2021 16:50:43 +0000
Message-Id: <20211123165044.29546-3-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20211123165044.29546-1-iwj@xenproject.org>
References: <20211123165044.29546-1-iwj@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 SUPPORT.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 3a34933c89..b1367e2b22 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -9,13 +9,13 @@ for the definitions of the support status levels etc.
 
 # Release Support
 
-    Xen-Version: unstable
+    Xen-Version: 4.16
     Initial-Release: n/a
     Supported-Until: TBD
     Security-Support-Until: Unreleased - not yet security-supported
 
 Release Notes
-: <a href="https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes">RN</a>
+: <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.16_Release_Notes">RN</a>
 
 # Feature Support
 
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:51:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:51:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229786.397306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ0U-0004e9-AH; Tue, 23 Nov 2021 16:50:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229786.397306; Tue, 23 Nov 2021 16:50:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ0U-0004bU-49; Tue, 23 Nov 2021 16:50:58 +0000
Received: by outflank-mailman (input) for mailman id 229786;
 Tue, 23 Nov 2021 16:50:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0S-0004O8-Od
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:56 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0S-0007z3-Ns
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:56 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ0S-0000Sq-N1
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:50:56 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mpZ0Q-00073B-Gv; Tue, 23 Nov 2021 16:50:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=rlvLukjkFVL40SLFbuzBKIkeb1Z7lDPlWJjNT4Csb3o=; b=QWkTYdTxniXidq+KBb1ut2MXiv
	edbNL6gXgQWwxBxZd+qc2LQZPL7O4mJUN5V/eaf29HvzM6DJxm2tYizBJzt6YsyiOED1SzE7yrBJh
	p/bimNG4YKs2KS5tNU9XCm6RNl+wIKPAcHEulxQmGoPmN6mbw4UMWlX4sDwlObB8w5Kw=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: iwj@xenproject.org,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.16 3/3] Turn off debug by default
Date: Tue, 23 Nov 2021 16:50:44 +0000
Message-Id: <20211123165044.29546-4-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20211123165044.29546-1-iwj@xenproject.org>
References: <20211123165044.29546-1-iwj@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 tools/Rules.mk    | 2 +-
 xen/Kconfig.debug | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/Rules.mk b/tools/Rules.mk
index b022da3336..051a5d3555 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -25,7 +25,7 @@ CFLAGS_xeninclude = -I$(XEN_INCLUDE)
 XENSTORE_XENSTORED ?= y
 
 # A debug build of tools?
-debug ?= y
+debug ?= n
 debug_symbols ?= $(debug)
 
 XEN_GOCODE_URL    = golang.xenproject.org
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index fad3050d4f..4419030235 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -3,7 +3,7 @@ menu "Debugging Options"
 
 config DEBUG
 	bool "Developer Checks"
-	default y
+	default n
 	---help---
 	  If you say Y here this will enable developer checks such as asserts
 	  and extra printks. This option is intended for development purposes
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:56:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:56:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229812.397371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ5x-0007XR-Tn; Tue, 23 Nov 2021 16:56:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229812.397371; Tue, 23 Nov 2021 16:56:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ5x-0007XI-NH; Tue, 23 Nov 2021 16:56:37 +0000
Received: by outflank-mailman (input) for mailman id 229812;
 Tue, 23 Nov 2021 16:56:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ5w-00070t-3J
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:56:36 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ5w-000871-2U
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:56:36 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ5w-0004PC-1Y
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:56:36 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mpZ5t-00075W-PG; Tue, 23 Nov 2021 16:56:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=V88mUN3QixRTZN6rj7qJv/LmAVhGuBeU9l0wJu4j/VM=; b=rzHRuIpBGXSvq94BKfB9l9fCvP
	dEtR8zl1TnpcBGwQUtgR5wEC3CLcJ7iYY8AzohYqeCo2EdeyOK9cvVEiVTpGEIQ+HgnacRiOwcOnv
	VUhVjgrU8ecCEm7NpnAEx8F/DZmcMsL7xlsRNC2Yu9qXxj79SK8/CtIx9th/UeI6d5dE=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: iwj@xenproject.org
Subject: [PATCH for-4.17 3/3] Set version to 4.17: rerun autogen.sh
Date: Tue, 23 Nov 2021 16:56:25 +0000
Message-Id: <20211123165625.1023-3-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20211123165625.1023-1-iwj@xenproject.org>
References: <20211123165625.1023-1-iwj@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 configure         | 18 +++++++++---------
 docs/configure    | 18 +++++++++---------
 stubdom/configure | 18 +++++++++---------
 tools/configure   | 18 +++++++++---------
 4 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/configure b/configure
index 62f6c2d47a..502273b263 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Xen Hypervisor 4.16.
+# Generated by GNU Autoconf 2.69 for Xen Hypervisor 4.17.
 #
 # Report bugs to <xen-devel@lists.xen.org>.
 #
@@ -579,8 +579,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='Xen Hypervisor'
 PACKAGE_TARNAME='xen'
-PACKAGE_VERSION='4.16'
-PACKAGE_STRING='Xen Hypervisor 4.16'
+PACKAGE_VERSION='4.17'
+PACKAGE_STRING='Xen Hypervisor 4.17'
 PACKAGE_BUGREPORT='xen-devel@lists.xen.org'
 PACKAGE_URL='https://www.xen.org/'
 
@@ -1236,7 +1236,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Xen Hypervisor 4.16 to adapt to many kinds of systems.
+\`configure' configures Xen Hypervisor 4.17 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1302,7 +1302,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Xen Hypervisor 4.16:";;
+     short | recursive ) echo "Configuration of Xen Hypervisor 4.17:";;
    esac
   cat <<\_ACEOF
 
@@ -1403,7 +1403,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Xen Hypervisor configure 4.16
+Xen Hypervisor configure 4.17
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1420,7 +1420,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Xen Hypervisor $as_me 4.16, which was
+It was created by Xen Hypervisor $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2868,7 +2868,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Xen Hypervisor $as_me 4.16, which was
+This file was extended by Xen Hypervisor $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -2922,7 +2922,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Xen Hypervisor config.status 4.16
+Xen Hypervisor config.status 4.17
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/docs/configure b/docs/configure
index 569bd4c2ff..f93d086e9a 100755
--- a/docs/configure
+++ b/docs/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Xen Hypervisor Documentation 4.16.
+# Generated by GNU Autoconf 2.69 for Xen Hypervisor Documentation 4.17.
 #
 # Report bugs to <xen-devel@lists.xen.org>.
 #
@@ -579,8 +579,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='Xen Hypervisor Documentation'
 PACKAGE_TARNAME='xen'
-PACKAGE_VERSION='4.16'
-PACKAGE_STRING='Xen Hypervisor Documentation 4.16'
+PACKAGE_VERSION='4.17'
+PACKAGE_STRING='Xen Hypervisor Documentation 4.17'
 PACKAGE_BUGREPORT='xen-devel@lists.xen.org'
 PACKAGE_URL='https://www.xen.org/'
 
@@ -1224,7 +1224,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Xen Hypervisor Documentation 4.16 to adapt to many kinds of systems.
+\`configure' configures Xen Hypervisor Documentation 4.17 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1286,7 +1286,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Xen Hypervisor Documentation 4.16:";;
+     short | recursive ) echo "Configuration of Xen Hypervisor Documentation 4.17:";;
    esac
   cat <<\_ACEOF
 
@@ -1387,7 +1387,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Xen Hypervisor Documentation configure 4.16
+Xen Hypervisor Documentation configure 4.17
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1404,7 +1404,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Xen Hypervisor Documentation $as_me 4.16, which was
+It was created by Xen Hypervisor Documentation $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2821,7 +2821,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Xen Hypervisor Documentation $as_me 4.16, which was
+This file was extended by Xen Hypervisor Documentation $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -2875,7 +2875,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Xen Hypervisor Documentation config.status 4.16
+Xen Hypervisor Documentation config.status 4.17
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/stubdom/configure b/stubdom/configure
index 07b709f998..5b265b5369 100755
--- a/stubdom/configure
+++ b/stubdom/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Xen Hypervisor Stub Domains 4.16.
+# Generated by GNU Autoconf 2.69 for Xen Hypervisor Stub Domains 4.17.
 #
 # Report bugs to <xen-devel@lists.xen.org>.
 #
@@ -579,8 +579,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='Xen Hypervisor Stub Domains'
 PACKAGE_TARNAME='xen'
-PACKAGE_VERSION='4.16'
-PACKAGE_STRING='Xen Hypervisor Stub Domains 4.16'
+PACKAGE_VERSION='4.17'
+PACKAGE_STRING='Xen Hypervisor Stub Domains 4.17'
 PACKAGE_BUGREPORT='xen-devel@lists.xen.org'
 PACKAGE_URL='https://www.xen.org/'
 
@@ -1265,7 +1265,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Xen Hypervisor Stub Domains 4.16 to adapt to many kinds of systems.
+\`configure' configures Xen Hypervisor Stub Domains 4.17 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1331,7 +1331,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Xen Hypervisor Stub Domains 4.16:";;
+     short | recursive ) echo "Configuration of Xen Hypervisor Stub Domains 4.17:";;
    esac
   cat <<\_ACEOF
 
@@ -1444,7 +1444,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Xen Hypervisor Stub Domains configure 4.16
+Xen Hypervisor Stub Domains configure 4.17
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1499,7 +1499,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Xen Hypervisor Stub Domains $as_me 4.16, which was
+It was created by Xen Hypervisor Stub Domains $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4283,7 +4283,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Xen Hypervisor Stub Domains $as_me 4.16, which was
+This file was extended by Xen Hypervisor Stub Domains $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -4337,7 +4337,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Xen Hypervisor Stub Domains config.status 4.16
+Xen Hypervisor Stub Domains config.status 4.17
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/tools/configure b/tools/configure
index 40f970b14b..21e3a83795 100755
--- a/tools/configure
+++ b/tools/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Xen Hypervisor Tools 4.16.
+# Generated by GNU Autoconf 2.69 for Xen Hypervisor Tools 4.17.
 #
 # Report bugs to <xen-devel@lists.xen.org>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='Xen Hypervisor Tools'
 PACKAGE_TARNAME='xen'
-PACKAGE_VERSION='4.16'
-PACKAGE_STRING='Xen Hypervisor Tools 4.16'
+PACKAGE_VERSION='4.17'
+PACKAGE_STRING='Xen Hypervisor Tools 4.17'
 PACKAGE_BUGREPORT='xen-devel@lists.xen.org'
 PACKAGE_URL='https://www.xen.org/'
 
@@ -1415,7 +1415,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Xen Hypervisor Tools 4.16 to adapt to many kinds of systems.
+\`configure' configures Xen Hypervisor Tools 4.17 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1481,7 +1481,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Xen Hypervisor Tools 4.16:";;
+     short | recursive ) echo "Configuration of Xen Hypervisor Tools 4.17:";;
    esac
   cat <<\_ACEOF
 
@@ -1689,7 +1689,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Xen Hypervisor Tools configure 4.16
+Xen Hypervisor Tools configure 4.17
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2104,7 +2104,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Xen Hypervisor Tools $as_me 4.16, which was
+It was created by Xen Hypervisor Tools $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -10685,7 +10685,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Xen Hypervisor Tools $as_me 4.16, which was
+This file was extended by Xen Hypervisor Tools $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -10748,7 +10748,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Xen Hypervisor Tools config.status 4.16
+Xen Hypervisor Tools config.status 4.17
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:56:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:56:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229810.397348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ5w-000716-Bi; Tue, 23 Nov 2021 16:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229810.397348; Tue, 23 Nov 2021 16:56:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ5w-00070y-8o; Tue, 23 Nov 2021 16:56:36 +0000
Received: by outflank-mailman (input) for mailman id 229810;
 Tue, 23 Nov 2021 16:56:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ5v-00070h-I5
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:56:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ5v-000868-Dr
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:56:35 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ5v-0004Or-Ct
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:56:35 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mpZ5t-00075W-7I; Tue, 23 Nov 2021 16:56:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-Id:Date:Subject:Cc:To:From;
	bh=Igfoa3K6shqP/kuB/2xLDcPaW0pX0f1Li+I0arh792M=; b=xT4mXrHe7oENKEvPjFn64QaMkY
	D24RW0L327dP91lsgj5skeYjOjwX2KnkYJ8Xd0Tw+zi/HJcn8HyWNePYCBbK7lym3oKzX72YMaFE+
	oRgCGvyaJINWOpndcLThppz3CBGWjcibEZwv+O4OXnhUQBiO1Y7VIpN4AvD6m2Yn1Rdk=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: iwj@xenproject.org
Subject: [PATCH for-4.17 1/3] Revert "Config.mk: pin QEMU_UPSTREAM_REVISION (prep for Xen 4.16 RC1)"
Date: Tue, 23 Nov 2021 16:56:23 +0000
Message-Id: <20211123165625.1023-1-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This branch is unstable again now.

This reverts commit c9ce6afbf2d7772f47fc572bb7fc9555724927ed.
---
 Config.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Config.mk b/Config.mk
index 6be010c7ce..6587c7d626 100644
--- a/Config.mk
+++ b/Config.mk
@@ -239,7 +239,7 @@ SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
 MINIOS_UPSTREAM_URL ?= git://xenbits.xen.org/mini-os.git
 endif
 OVMF_UPSTREAM_REVISION ?= 7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5
-QEMU_UPSTREAM_REVISION ?= b6e539830bf45e2d7a6bd86ddfdf003088b173b0
+QEMU_UPSTREAM_REVISION ?= master
 MINIOS_UPSTREAM_REVISION ?= 9f09744aa3e5982a083ecf8e9cd2123f477081f9
 
 SEABIOS_UPSTREAM_REVISION ?= rel-1.14.0
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:56:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:56:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229811.397354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ5w-00073M-Kc; Tue, 23 Nov 2021 16:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229811.397354; Tue, 23 Nov 2021 16:56:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ5w-00072i-FW; Tue, 23 Nov 2021 16:56:36 +0000
Received: by outflank-mailman (input) for mailman id 229811;
 Tue, 23 Nov 2021 16:56:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ5v-00070m-MU
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:56:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ5v-00086x-Lk
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:56:35 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mpZ5v-0004Ox-Kw
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:56:35 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mpZ5t-00075W-HH; Tue, 23 Nov 2021 16:56:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=hO0oTc+a7utMhGBX2wvxTXkVwGBGpfZrGujo7r5zEP4=; b=GmECEyMgzpgI8Lgia9eZZdBAyX
	T+vxJfcu1sqNvutJfbM2XlCLR5OdgswtBmbZk19eOQ/WJ7rXOK5G/3KVrrDv4yA95gJ0ugllVSoDq
	GNMaeGf71X4L2bcJd6QOOT/xiWgT2/k5UsfngncoHaUqdJHhAk5LB/WEaz1IuI8MxWhQ=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: iwj@xenproject.org
Subject: [PATCH for-4.17 2/3] Set version to 4.17; 4.16 has branched
Date: Tue, 23 Nov 2021 16:56:24 +0000
Message-Id: <20211123165625.1023-2-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20211123165625.1023-1-iwj@xenproject.org>
References: <20211123165625.1023-1-iwj@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 README       | 10 +++++-----
 xen/Makefile |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/README b/README
index a626e56436..562b808080 100644
--- a/README
+++ b/README
@@ -1,9 +1,9 @@
 ############################################################
-__  __            _  _    _  __
-\ \/ /___ _ __   | || |  / |/ /_        _ __ ___
- \  // _ \ '_ \  | || |_ | | '_ \ _____| '__/ __|
- /  \  __/ | | | |__   _|| | (_) |_____| | | (__
-/_/\_\___|_| |_|    |_|(_)_|\___/      |_|  \___|
+__  __                                _        _     _
+\ \/ /___ _ __        _   _ _ __  ___| |_ __ _| |__ | | ___
+ \  // _ \ '_ \ _____| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
+ /  \  __/ | | |_____| |_| | | | \__ \ || (_| | |_) | |  __/
+/_/\_\___|_| |_|      \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
 
 ############################################################
 
diff --git a/xen/Makefile b/xen/Makefile
index 2fc83f266b..1fd48af7ae 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -1,8 +1,8 @@
 # This is the correct place to edit the build version.
 # All other places this is stored (eg. compile.h) should be autogenerated.
 export XEN_VERSION       = 4
-export XEN_SUBVERSION    = 16
-export XEN_EXTRAVERSION ?= -rc$(XEN_VENDORVERSION)
+export XEN_SUBVERSION    = 17
+export XEN_EXTRAVERSION ?= -unstable$(XEN_VENDORVERSION)
 export XEN_FULLVERSION   = $(XEN_VERSION).$(XEN_SUBVERSION)$(XEN_EXTRAVERSION)
 -include xen-version
 
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 16:59:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 16:59:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229825.397382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ8B-0000Ou-7q; Tue, 23 Nov 2021 16:58:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229825.397382; Tue, 23 Nov 2021 16:58:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZ8B-0000On-4F; Tue, 23 Nov 2021 16:58:55 +0000
Received: by outflank-mailman (input) for mailman id 229825;
 Tue, 23 Nov 2021 16:58:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpZ89-0000OO-Hf
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 16:58:53 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpZ88-0008Ae-Uc; Tue, 23 Nov 2021 16:58:52 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.23.209]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpZ88-0004Vy-OV; Tue, 23 Nov 2021 16:58:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Kz4KxcnwlxT+iYz9RZvmA7qgbZq8uJw8gkLkSOB/aro=; b=hJENmxBdzQy2o42E6D4jzas89H
	7QBK9bJKRdAqAMDKhCU4+LQEKiA4vYodBFo0TKw9Gum79W9DWJ3NJRHFPOIh9rOJK1cAbBb85+eJm
	4ihrKR05dCjDDJJLYyuVNR0f5T2Nq8pnZycK5cXLiLhmW1YNk3emyYt/TA5EHu5aMbmA=;
Message-ID: <12447bb3-e3b4-c1f3-17f7-09704fd8b847@xen.org>
Date: Tue, 23 Nov 2021 16:58:49 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
 <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
 <2f414e8f-67d5-d513-74d4-cc21a3a9ed28@epam.com>
 <9f712f79-9660-865a-3002-713950518819@epam.com>
 <117a57d1-aa4f-8153-8bba-2db47c234b81@xen.org>
 <c6232073-b59a-609f-3852-ddcac0859c2c@epam.com>
 <ef17fbe6-9768-9978-fa8f-6be757034234@xen.org>
 <442c853a-5554-9be0-80e4-b1f34cd6adeb@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <442c853a-5554-9be0-80e4-b1f34cd6adeb@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 23/11/2021 16:41, Oleksandr Andrushchenko wrote:
> On 23.11.21 18:12, Julien Grall wrote:
>> On 23/11/2021 06:58, Oleksandr Andrushchenko wrote:
>>> unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
>>> {
>>>        if ( !has_vpci(d) )
>>>            return 0;
>>>
>>>        if ( is_hardware_domain(d) )
>>>        {
>>>            int ret = pci_host_iterate_bridges_and_count(d, vpci_get_num_handlers_cb);
>>>
>>>            return ret < 0 ? 0 : ret;
>>>        }
>>>
>>>        /*
>>>         * This is a guest domain:
>>>         *
>>>         * 1 for a single emulated host bridge's configuration space.
>>>         */
>>>        return 1;
>>
>> I am afraid that my question stands even with this approach. This patch is only meant to handle the hardware domain, therefore the change seems to be out of context.
>>
>> I would prefer if this change is done separately.
> While I do agree that MSI part and virtual bus topology are not belonging to this
> patch I can't agree with the rest: we already have MMIO handlers for guest domains
> and we introduce domain_vpci_get_num_mmio_handlers which must also account
> on guests and stay consistent.
> So, despite the patch has "hardware domain" in its name it doesn't mean we should
> break guests here.

We were already registering the handler for guest domain before your 
patch. So this is nothing new.

At the moment, we always allocate an extra 16 slot for IO handlers (see 
MAX_IO_HANDLER). So we are not breaking anything. Instead, this is 
simply a latent bug.

> Thus I do think the above is still correct wrt this patch.

The idea of splitting patch is to separate bug fix from new code. This 
helps backporting and review.

In this case, we don't care about backport (PCI passthrough is no 
supported) and the fix a simple enough. So I am not going to insist on 
splitting to a separate patch.

However, this change *must* be explained in the commit message.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 17:13:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 17:13:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229841.397405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZMD-0002uk-Sn; Tue, 23 Nov 2021 17:13:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229841.397405; Tue, 23 Nov 2021 17:13:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZMD-0002ud-OX; Tue, 23 Nov 2021 17:13:25 +0000
Received: by outflank-mailman (input) for mailman id 229841;
 Tue, 23 Nov 2021 17:13:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpZMC-0002uX-LS
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:13:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpZMC-0008TY-Ke
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:13:24 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpZMC-0005g3-Jt
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:13:24 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mpZM9-0007AS-3O; Tue, 23 Nov 2021 17:13:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Subject:CC:To:Date:Message-ID:
	Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=4aLvdCzTmQzSE4LTI0WyPKNiDgAGbwzuPVA78RxzTn4=; b=ytVSlCuUyzpZ3J4W5IBXHriIB4
	eqj3a3Hh+QoXssgIb+KeS8v4mwSfAX1iBuz9+ewJYssmMPyJGUbKiIxLBg1ObGiGXqNWMRwHr3dxv
	yAbrJVWy823xMlbHqwQ10s5h+PCr+U1lrdb47x59BfR/qHhFMvzzMFvOXpbcCxzO68dc=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24989.8493.377201.854234@mariner.uk.xensource.com>
Date: Tue, 23 Nov 2021 17:13:17 +0000
To: committers@xenproject.org,
CC: xen-devel@lists.xenproject.org
Subject: Xen 4.16 branched, commit moratorium lifted, freeze still in force

Xen 4.16 has now branched.  The staging-4.16 branch et al exists.

The commit moratorium is lifted.  However:

* 4.16 is in deep freeze now.  Nothing should be committed without
  a release ack.  Roger, you have a blanket release ack for your
  CHANGELOG update(s).

* Until 4.16 is released, please avoid significant restructuring or
  other changes which would hinder fixes being back- or forward-
  ported between 4.16 and unstable.

I am hoping to release early of the week of 29th November.
This means *all* non-release-administrative tree changes need to be
committed by the end of this coming Friday, the 26th of November.

If a significant bug is discovered between now and then, we will have
to slip the release.

Ian.


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 17:15:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 17:15:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229843.397416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZNg-0003T0-7o; Tue, 23 Nov 2021 17:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229843.397416; Tue, 23 Nov 2021 17:14:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZNg-0003St-3G; Tue, 23 Nov 2021 17:14:56 +0000
Received: by outflank-mailman (input) for mailman id 229843;
 Tue, 23 Nov 2021 17:14:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpZNf-0003Sj-72; Tue, 23 Nov 2021 17:14:55 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpZNf-0008VA-2L; Tue, 23 Nov 2021 17:14:55 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpZNe-0000XS-Od; Tue, 23 Nov 2021 17:14:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpZNe-0004kZ-O7; Tue, 23 Nov 2021 17:14:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=rR0riRMpHe3ZSCJ87De4Y863kjRerB6C/jhy0Xy9D8A=; b=S/kQnaKGC+hAio99iuX43b105e
	iC6OoR1mkFRqvQeHclCpUPtZbJ96vHyOHjQCdfPvlLPE9tF3/SGL5Z7PqZH/DBhEFIrBAzptRs323
	ILMvocx/yeJdUxYPGNMNusL72EH3HWpcjq2/LTw45PqVZ0q9Lq9/aEwCsLQ/CG9pxYtQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166307-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166307: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-credit2:debian-install:fail:regression
    qemu-mainline:test-amd64-amd64-libvirt-xsm:debian-install:fail:regression
    qemu-mainline:test-armhf-armhf-xl-credit2:xen-boot:fail:heisenbug
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=3c87012e3887e8a904a3494283c4acfa7ef777dc
X-Osstest-Versions-That:
    qemuu=89d2f9e4c63799f7f03e9180c63b7dc45fc2a04a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Nov 2021 17:14:54 +0000

flight 166307 qemu-mainline real [real]
flight 166316 qemu-mainline real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166307/
http://logs.test-lab.xenproject.org/osstest/logs/166316/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-credit2  12 debian-install           fail REGR. vs. 166300
 test-amd64-amd64-libvirt-xsm 12 debian-install           fail REGR. vs. 166300

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit2   8 xen-boot            fail pass in 166316-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit2 15 migrate-support-check fail in 166316 never pass
 test-armhf-armhf-xl-credit2 16 saverestore-support-check fail in 166316 never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166300
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166300
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166300
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166300
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166300
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166300
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166300
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166300
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 qemuu                3c87012e3887e8a904a3494283c4acfa7ef777dc
baseline version:
 qemuu                89d2f9e4c63799f7f03e9180c63b7dc45fc2a04a

Last test of basis   166300  2021-11-22 21:08:31 Z    0 days
Testing same since   166307  2021-11-23 08:11:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Eric Blake <eblake@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Lei Rao <lei.rao@intel.com>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Rao, Lei <lei.rao@intel.com>
  Richard Henderson <richard.henderson@linaro.org>
  Stefan Weil <sw@weilnetz.de>
  Thomas Huth <thuth@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 fail    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  fail    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 3c87012e3887e8a904a3494283c4acfa7ef777dc
Merge: d8a6311dab c5ba621954
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Mon Nov 22 23:21:28 2021 +0100

    Merge tag 'pull-request-2021-11-22' of https://gitlab.com/thuth/qemu into staging
    
    * Documentation updates
    
    # gpg: Signature made Mon 22 Nov 2021 03:05:39 PM CET
    # gpg:                using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5
    # gpg:                issuer "thuth@redhat.com"
    # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full]
    # gpg:                 aka "Thomas Huth <thuth@redhat.com>" [full]
    # gpg:                 aka "Thomas Huth <th.huth@posteo.de>" [unknown]
    # gpg:                 aka "Thomas Huth <huth@tuxfamily.org>" [full]
    
    * tag 'pull-request-2021-11-22' of https://gitlab.com/thuth/qemu:
      docs: Render binary names as monospaced text
      docs: Use double quotes instead of single quotes for COLO
      docs: Drop deprecated 'props' from object-add
      Fix some typos in documentation (found by codespell)
      docs: List more commit-message tags in "submitting-a-patch"
      docs: Fix botched rST conversion of 'submitting-a-patch.rst'
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

commit d8a6311dabe62b7d3553915511e9d61fc3556eb6
Merge: 89d2f9e4c6 e35574226a
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Mon Nov 22 19:15:05 2021 +0100

    Merge tag 'pull-nbd-2021-11-22' of https://repo.or.cz/qemu/ericb into staging
    
    nbd patches for 2021-11-22
    
    - Eric Blake: Avoid uninitialized memory on client hard disconnect
    - Eric Blake: Take advantage of block layer 64-bit zero/trim
    
    # gpg: Signature made Mon 22 Nov 2021 02:55:07 PM CET
    # gpg:                using RSA key 71C2CC22B1C4602927D2F3AAA7A16B4A2527436A
    # gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full]
    # gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full]
    # gpg:                 aka "[jpeg image of size 6874]" [full]
    
    * tag 'pull-nbd-2021-11-22' of https://repo.or.cz/qemu/ericb:
      nbd/server: Simplify zero and trim
      nbd/server: Don't complain on certain client disconnects
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

commit c5ba62195427d65a44472901cff3dddffc14b3b3
Author: Philippe Mathieu-Daudé <philmd@redhat.com>
Date:   Thu Nov 18 20:27:44 2021 +0100

    docs: Render binary names as monospaced text
    
    Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
    Message-Id: <20211118192744.64325-1-philmd@redhat.com>
    Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
    Signed-off-by: Thomas Huth <thuth@redhat.com>

commit eff708a876b40fe71bedb792d084972d7a52166a
Author: Rao, Lei <lei.rao@intel.com>
Date:   Mon Nov 22 15:49:47 2021 +0800

    docs: Use double quotes instead of single quotes for COLO
    
    Signed-off-by: Lei Rao <lei.rao@intel.com>
    Message-Id: <1637567387-28250-2-git-send-email-lei.rao@intel.com>
    Reviewed-by: Markus Armbruster <armbru@redhat.com>
    Signed-off-by: Thomas Huth <thuth@redhat.com>

commit 8f75cae2dda8a55eb3a6c712bd22b18a90c0a5ac
Author: Rao, Lei <lei.rao@intel.com>
Date:   Mon Nov 22 15:49:46 2021 +0800

    docs: Drop deprecated 'props' from object-add
    
    In commit 5024340745 "qapi/qom: Drop deprecated 'props' from
    object-add" (v6.0.0), we also should update documents.
    
    Signed-off-by: Lei Rao <lei.rao@intel.com>
    Message-Id: <1637567387-28250-1-git-send-email-lei.rao@intel.com>
    Reviewed-by: Markus Armbruster <armbru@redhat.com>
    Signed-off-by: Thomas Huth <thuth@redhat.com>

commit b980c1aec63908074040e5cab135728e3b5db117
Author: Stefan Weil <sw@weilnetz.de>
Date:   Wed Nov 17 22:07:02 2021 +0100

    Fix some typos in documentation (found by codespell)
    
    Signed-off-by: Stefan Weil <sw@weilnetz.de>
    Message-Id: <20211117210702.1393570-1-sw@weilnetz.de>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
    [thuth: "what's" --> "what is" as suggested by philmd]
    Signed-off-by: Thomas Huth <thuth@redhat.com>

commit 93e86b1664951f02fceed9ac312576f60232d503
Author: Kashyap Chamarthy <kchamart@redhat.com>
Date:   Fri Nov 19 20:31:18 2021 +0100

    docs: List more commit-message tags in "submitting-a-patch"
    
    Add some more examples of commonly used commit-message tags.
    
    (Thanks: Alex Bennée)
    
    Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
    Message-Id: <20211119193118.949698-3-kchamart@redhat.com>
    Reviewed-by: Eric Blake <eblake@redhat.com>
    Signed-off-by: Thomas Huth <thuth@redhat.com>

commit cd6b1674d61120a77823b99516d27486c4f4f883
Author: Kashyap Chamarthy <kchamart@redhat.com>
Date:   Fri Nov 19 20:31:17 2021 +0100

    docs: Fix botched rST conversion of 'submitting-a-patch.rst'
    
    I completely botched up the merged[0] rST conversion of this document by
    accidentally dropping entire hunks (!) of text. :-(  I made it very hard
    for reviewers to spot it, as the omitted text was buried deep in the
    document.  To fix my hatchet job, I reconverted the "SubmitAPatch"
    wiki[1] page from scratch and replaced the existing rST with it, while
    making sure I incorporated previous feedback.
    
    In summary, in this reconverted edition:
    
    - I did a careful (to the extent my eyes allowed) para-by-para
      comparison of the wiki and the rST to make sure I didn't omit
      anything accidentally.
    
    - I made sure to work in the cosmetic feedback[2] that Thomas Huth
      pointed out in the merged (and botched) edition:
    
       - fix the hyperlinks in "Split up long patches"
    
       - replace ".". with "does not end with a dot" (in "Write a meaningful
         commit message" section)
    
       - replace "---" with ``---`` so that it doesn't render as an em-dash
         (there were two other occurrences; I fixed those too)
    
    - Use "QEMU" spelling consistently in prose usage
    
    - Add a consistent "refer to git-config" link where appropriate
    
    Thanks to Thomas Huth and Alex Bennée for noticing it on IRC.  And sorry
    for my sloppiness.
    
    Fixes: 9f73de8df033 ("docs: rSTify the "SubmitAPatch" wiki")
    
    [0] https://gitlab.com/qemu-project/qemu/-/commit/9f73de8df033
    [1] https://wiki.qemu.org/index.php?title=Contribute/SubmitAPatch&oldid=10387
    [2] https://lists.nongnu.org/archive/html/qemu-devel/2021-11/msg03600.html
    
    Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
    Message-Id: <20211119193118.949698-2-kchamart@redhat.com>
    Reviewed-by: Eric Blake <eblake@redhat.com>
    [thuth: Some more cosmetical changes, fixed links from external to internal]
    Signed-off-by: Thomas Huth <thuth@redhat.com>

commit e35574226a63f29e32eda8da5cc14832f19850e2
Author: Eric Blake <eblake@redhat.com>
Date:   Wed Nov 17 11:02:30 2021 -0600

    nbd/server: Simplify zero and trim
    
    Now that the block layer supports 64-bit operations (see commit
    2800637a and friends, new to v6.2), we no longer have to self-fragment
    requests larger than 2G, reverting the workaround added in 890cbccb08
    ("nbd: Fix large trim/zero requests", v5.1.0).
    
    Signed-off-by: Eric Blake <eblake@redhat.com>
    Message-Id: <20211117170230.1128262-3-eblake@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

commit 1644cccea5c71b02b9cf8f78b780e7069a29b189
Author: Eric Blake <eblake@redhat.com>
Date:   Wed Nov 17 11:02:29 2021 -0600

    nbd/server: Don't complain on certain client disconnects
    
    When a client disconnects abruptly, but did not have any pending
    requests (for example, when using nbdsh without calling h.shutdown),
    we used to output the following message:
    
    $ qemu-nbd -f raw file
    $ nbdsh -u 'nbd://localhost:10809' -c 'h.trim(1,0)'
    qemu-nbd: Disconnect client, due to: Failed to read request: Unexpected end-of-file before all bytes were read
    
    Then in commit f148ae7, we refactored nbd_receive_request() to use
    nbd_read_eof(); when this returns 0, we regressed into tracing
    uninitialized memory (if tracing is enabled) and reporting a
    less-specific:
    
    qemu-nbd: Disconnect client, due to: Request handling failed in intermediate state
    
    Note that with Unix sockets, we have yet another error message,
    unchanged by the 6.0 regression:
    
    $ qemu-nbd -k /tmp/sock -f raw file
    $ nbdsh -u 'nbd+unix:///?socket=/tmp/sock' -c 'h.trim(1,0)'
    qemu-nbd: Disconnect client, due to: Failed to send reply: Unable to write to socket: Broken pipe
    
    But in all cases, the error message goes away if the client performs a
    soft shutdown by using NBD_CMD_DISC, rather than a hard shutdown by
    abrupt disconnect:
    
    $ nbdsh -u 'nbd://localhost:10809' -c 'h.trim(1,0)' -c 'h.shutdown()'
    
    This patch fixes things to avoid uninitialized memory, and in general
    avoids warning about a client that does a hard shutdown when not in
    the middle of a packet.  A client that aborts mid-request, or which
    does not read the full server's reply, can still result in warnings,
    but those are indeed much more unusual situations.
    
    CC: qemu-stable@nongnu.org
    Fixes: f148ae7d36 ("nbd/server: Quiesce coroutines on context switch", v6.0.0)
    Signed-off-by: Eric Blake <eblake@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
    [eblake: defer unrelated typo fixes to later patch]
    Message-Id: <20211117170230.1128262-2-eblake@redhat.com>
    Signed-off-by: Eric Blake <eblake@redhat.com>


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 17:15:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 17:15:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229848.397430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZNw-0003tj-Rw; Tue, 23 Nov 2021 17:15:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229848.397430; Tue, 23 Nov 2021 17:15:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZNw-0003tc-Ok; Tue, 23 Nov 2021 17:15:12 +0000
Received: by outflank-mailman (input) for mailman id 229848;
 Tue, 23 Nov 2021 17:15:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=M1Mo=QK=microsoft.com=mikelley@srs-se1.protection.inumbo.net>)
 id 1mpZNv-0003qz-KK
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:15:11 +0000
Received: from na01-obe.outbound.protection.outlook.com
 (mail-cusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c111::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e86c8503-4c80-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 18:15:09 +0100 (CET)
Received: from MWHPR21MB1593.namprd21.prod.outlook.com (2603:10b6:301:7c::11)
 by MW4PR21MB1971.namprd21.prod.outlook.com (2603:10b6:303:7d::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.2; Tue, 23 Nov
 2021 17:15:05 +0000
Received: from MWHPR21MB1593.namprd21.prod.outlook.com
 ([fe80::9401:9c8b:c334:4336]) by MWHPR21MB1593.namprd21.prod.outlook.com
 ([fe80::9401:9c8b:c334:4336%2]) with mapi id 15.20.4755.001; Tue, 23 Nov 2021
 17:15:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e86c8503-4c80-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ofeO3IbaEIXYKeT1TsuF9vyBcAiDKIr63Pl2J/XmdOCi1FIpB/mi2WUn0I50trgVBsDltAsalGa8wL3WcpDTqdbVwHO5yQ2egWCpC8h2vQSmQSVaf65CpBAEiR0ZRvBhnheWyxBvFROViLj01G7vRBBsWlW1zdypPDmZYcE7VxbedfICMhAit54G5jNJIgngIGYtDeP6btB2Cl4qbP21aDbpfqe1NPDo5cQaDzzx33Qch2L1SDiO9DExoUVFnyNkBiRVnzeTkKyiGWq7so9piqGLjrfJTOUABVYEDyCPsvJGjkBtsNXfka4+MR16M0lhTdaDRwHuJJQFahuh33jWNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=P/AgrRAsE3e8DwVFyZb8mhen++/8s7P4Fv34JlkvGGY=;
 b=VzXLSexfFuAhvdqPvnPnrCNAa5dbJi3hJbMyMb5OG/NvlTeOKpW37ZnTJ21aFz4dCHjQLgYf0CVaAR+OUXl7cbYeaGHRItM8Yjz4JysfCh1UZy1lQcwdntQmRHhpl59ROVlA2AFPM7t7UG6mdONlh/Lhxyqqfcqr8C7WZO8hKRyiGHoz8V1zU66Jewo0nHle/DhZQNw9Sg30cqKebxYCMBaHXyv9UVJi+U9JFcnFMZpDJO5pgWdk66Au1en/gqXbvrky8iLIHpC2XurwygspZEd9twJhDZorX+nnSXL0xiJeG0iHwJZhi/mdX1bFyNyl+L619KaqhlIFViQIYMPtDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microsoft.com; dmarc=pass action=none
 header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=P/AgrRAsE3e8DwVFyZb8mhen++/8s7P4Fv34JlkvGGY=;
 b=LRbON/l4Wn4pQbkGozGRsjGU4x/WFNw2ml93FZI5b39xp+wBEipFK6g5tZ91ZMrIIy3Udqq+AdtEdOzOvVoPflvUvq7/8PsIp9ZYnKa+P3n7ABQ54NVu9A7RIh4Q+a9eSRAJan6wEVG4SIW+3Y5rP4OSurHxJwx9RQZ+y1dJIBU=
From: "Michael Kelley (LINUX)" <mikelley@microsoft.com>
To: Tianyu Lan <ltykernel@gmail.com>, "tglx@linutronix.de"
	<tglx@linutronix.de>, "mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de"
	<bp@alien8.de>, "dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"x86@kernel.org" <x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>,
	"luto@kernel.org" <luto@kernel.org>, "peterz@infradead.org"
	<peterz@infradead.org>, "jgross@suse.com" <jgross@suse.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>, KY Srinivasan
	<kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Stephen
 Hemminger <sthemmin@microsoft.com>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, "joro@8bytes.org"
	<joro@8bytes.org>, "will@kernel.org" <will@kernel.org>, "davem@davemloft.net"
	<davem@davemloft.net>, "kuba@kernel.org" <kuba@kernel.org>,
	"jejb@linux.ibm.com" <jejb@linux.ibm.com>, "martin.petersen@oracle.com"
	<martin.petersen@oracle.com>, "hch@lst.de" <hch@lst.de>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>, "robin.murphy@arm.com"
	<robin.murphy@arm.com>, Tianyu Lan <Tianyu.Lan@microsoft.com>,
	"thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "iommu@lists.linux-foundation.org" <iommu@lists.linux-foundation.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>, vkuznets
	<vkuznets@redhat.com>, "brijesh.singh@amd.com" <brijesh.singh@amd.com>,
	"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>, "parri.andrea@gmail.com"
	<parri.andrea@gmail.com>, "dave.hansen@intel.com" <dave.hansen@intel.com>
Subject: RE: [PATCH V2 1/6] Swiotlb: Add Swiotlb bounce buffer remap function
 for HV IVM
Thread-Topic: [PATCH V2 1/6] Swiotlb: Add Swiotlb bounce buffer remap function
 for HV IVM
Thread-Index: AQHX4HeSpdu4+UVN+0mZE44Ng5xByawRUlog
Date: Tue, 23 Nov 2021 17:15:05 +0000
Message-ID:
 <MWHPR21MB1593169593AD833A91DF553FD7609@MWHPR21MB1593.namprd21.prod.outlook.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
 <20211123143039.331929-2-ltykernel@gmail.com>
In-Reply-To: <20211123143039.331929-2-ltykernel@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=20ac84dd-6068-4158-8f23-31c48ca2fb69;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-11-23T16:46:20Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 53492aa7-ed12-4d2a-c4a9-08d9aea4cb26
x-ms-traffictypediagnostic: MW4PR21MB1971:
x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr
x-microsoft-antispam-prvs:
 <MW4PR21MB1971D59BCDA7CB082BD583D7D7609@MW4PR21MB1971.namprd21.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:33;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 BXFhhPGWjUIhW86hag+IGKX2AN6z4EyarBn7Qc4McNDeHg6TSwJhkEjOVl8neYr5gw9gmvUkK1he8hJEL3RWGJsKBFuqMf3HkP7+mTGE9QuDCeYxkhVU4QbTsfmsmlN7I1of0apRzOR1MU6r5/BETidQkc9iakKkJOGZ5kOZrjKvUX3TXesk3f73eY+jMw4/A0cKuiHdFWFeLZSkinZFfAIOzrN1xYY4uEHVnsSqNMHSAGoEYhN9B2J2oCLrZYm+Fgi/Y7s3ZQtCiMPpV1ogEsvAo7fUOQD43miXe4pebQDEMcs66JTHcmrhH0PsWQNVtIpLWefxaLx8YzV7EFWX40GVIe5pu5LGpgkYcWLU5BDZkYfYQjKGJ/kBfxgKuQGtobD2h372cW4tciiAQV/zy9xkl1tlCM6fs+CGcp5E/LOtiq8gRbjL7PF04j/AWMT+ej4t8H2O2yikWNwCLVqVuQIs3PQwOhL/jHKj22tOxni5Tw8FuxPHsRdgieyc9GuhzWRgvDS+1nejLoQhVh1RrbKjX+/vq0PCWfWi1hESEYNDj/Fzjqe/BfJKlqEHEx+B8/tnjZ0uJxT6ZB7D7waL8jOpXr/jPuaLzP4WE8+9rHPNnm9Rgsh/3qM4zRwUwIOLkim3ZXr35Bt12VhdJmmF9JCgx7faa57NTRxZhNAK4r1jVafXdzO4vKiNS+CJ+/Ahfs2XYQoShEK2Tg8X3+LKL9dc5nJe6Kck1npvgPoBsuemdGLEIGRjR5Junx2rxLFo10+zmiXhtlCN8Kbeoa4d6Q==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR21MB1593.namprd21.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(10290500003)(8676002)(52536014)(122000001)(86362001)(66446008)(38100700002)(4326008)(55016003)(316002)(64756008)(2906002)(83380400001)(66946007)(33656002)(66556008)(9686003)(76116006)(8936002)(110136005)(921005)(66476007)(38070700005)(54906003)(82960400001)(508600001)(8990500004)(7406005)(7416002)(5660300002)(7696005)(71200400001)(6506007)(26005)(186003)(82950400001)(20210929001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?qISMY46OkQlgn6H3Q+Fooujnc0qtjjsuFvjmlGqNjADwI/t3dApfBKnJQqAi?=
 =?us-ascii?Q?LhSqbZ4AxJDpwRrzc7u1RpQ+vm19FSk54j0IGjA8EZf8YBnEsZSd2lkcZsCu?=
 =?us-ascii?Q?dUigtnQaRzHbRlHnnmL2EiIcpunEfZORCYU54REGEKHCxXkqgUwBpD2Kg/8T?=
 =?us-ascii?Q?4Uc6D6hKnsxUKvmul/pGVPO4nOwPWI8QHnq7DiBTEspZ7W63uncbzodNk/+H?=
 =?us-ascii?Q?E+D1J1aoZbS76vHWva0rutqG5Aj1fH71UabpZuNyVafpvdZwlDkOT5kMAL3M?=
 =?us-ascii?Q?KZuQS/IJvggbG69rmEjXMWg0QllMCme3BuGdlo6TSGNeBfBjHFeDAdGEmSMl?=
 =?us-ascii?Q?+Ge9bM5HUeB/GW6BUpQ5tMN1nmAIMBIZY81yYLq+79Ve+T98OnkevqKHZVKw?=
 =?us-ascii?Q?c3+igq9hp1gJnF6JRWIX8iXQA5TgmA4ebDCQ8i4bP6LKlOUTj8CgaVXMsC+j?=
 =?us-ascii?Q?T99OJbyIB8tnxcfSDJlFGs0V67X5E5tvT7Ee+F4uGkUDUrOhsCeZSflUgKTZ?=
 =?us-ascii?Q?XbVxwt9u62qbLoS8za9VMuXovi96lh9D71Fz4gEd8P0+o/r2OrtUq3LMF9aa?=
 =?us-ascii?Q?W8yXsrbbwrm5l7ji8eiEby+c5cinyfcLDIuBN/ir6xnpdUmzk3a+f9Ell675?=
 =?us-ascii?Q?Ae+rZDIVmaabImPhIDmR6iXXBVt9SB05GwplFjiKhd3iQbTKd/DrZQQ3pVHf?=
 =?us-ascii?Q?+8oFJtp3TqPekFbovgX251rIwdV/p9/I352mSFPyL0pAQw1ifSgqRhYtSMPa?=
 =?us-ascii?Q?A2vrcrwD72Wk0ibEmkHXfxe6Wr8ynV7TqUIqwnfBizNH639fD0R6b/488Dab?=
 =?us-ascii?Q?b1VWosuelySMOZ5zuNTEl2Ea9p2V1VHUYQrrhS6AzP0YNnh26TRhuPKGJJzz?=
 =?us-ascii?Q?chOkU2DW9ZEHoTrO+D/JLqb6YwXee0/Q6IOkIqyjo5deCmHB2iVbCKZlLL6/?=
 =?us-ascii?Q?QueJUgp2TMBWdT8KkG4eNBIXiuk3UzHadn3fJ6JChhgpwRRI+kLVG8vn8IO/?=
 =?us-ascii?Q?hG0Zw5+QM48RQfjF0p0KH461iCBThm5eFtz1DDPPcmNQZV1xY9NGll81QafF?=
 =?us-ascii?Q?bmVYddjSjStF2l27QNQKz6i9oowIcmmIFpMuToGaHbFw+D9375NzjntEYuk4?=
 =?us-ascii?Q?XBpD/oArQTrL2dQFXirXMkkolf8YgunNxPSGM7vzVNf5opxyOb77/XCpsQ6w?=
 =?us-ascii?Q?qQjXjav1pCVM4H2KedC3HZUFnhElwJRaUWuTU0yGtUZwk6055N28FKWHs+mG?=
 =?us-ascii?Q?gwmrF0h7fL+0hpQwqsz+HNAf3Xb7NWgm0fvUk7868SZ+kGfvVd2zM8F7/rJ3?=
 =?us-ascii?Q?dp/I0NkxJjnp77x11byGMidgQMmO3bDc2bvSZ39R2q7fKDYvwx79zMz/btYV?=
 =?us-ascii?Q?rzomLqrftvhqjFRRqnjI92Nq3FiWvQd9hKaYVLbuhG0sah3NjLL1c1JtUT7t?=
 =?us-ascii?Q?yEoPliQvo13G9VVGtpHkoFcImQGKS5j5MzGGQ3Cw6s9gc0Xl5H6+aZQq0+EX?=
 =?us-ascii?Q?+CGBAaxcQq5P0MNzzJKQb95OhpNbia3wRecfEWqRarcgzZWZKAAn7T4kfwOK?=
 =?us-ascii?Q?pqedMNb2NTnq/RJlpwcJnIRsZv3vCGVip+jzRUNco/pGQDBteTSfEmoTLqG4?=
 =?us-ascii?Q?nR4tYLXJh6KcBCwvTUjlBDjJGXLrVctJqC6VX7bGJ2FfXRBidEDIPihqIswO?=
 =?us-ascii?Q?u6uoCQ=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MWHPR21MB1593.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 53492aa7-ed12-4d2a-c4a9-08d9aea4cb26
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 17:15:05.4451
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: qOra8OzZ1qzl4uDv+Uqevz5sK8v2xfxSnG8vFqHfIOM0Oy922aI0mTzsdUUVDZVH/Wnt8KuFdM80KvCyac4asMKfi1SHXugr+JXT1telu3Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR21MB1971

From: Tianyu Lan <ltykernel@gmail.com> Sent: Tuesday, November 23, 2021 6:3=
1 AM
>=20
> In Isolation VM with AMD SEV, bounce buffer needs to be accessed via
> extra address space which is above shared_gpa_boundary (E.G 39 bit
> address line) reported by Hyper-V CPUID ISOLATION_CONFIG. The access
> physical address will be original physical address + shared_gpa_boundary.
> The shared_gpa_boundary in the AMD SEV SNP spec is called virtual top of
> memory(vTOM). Memory addresses below vTOM are automatically treated as
> private while memory above vTOM is treated as shared.
>=20
> Expose swiotlb_unencrypted_base for platforms to set unencrypted
> memory base offset and platform calls swiotlb_update_mem_attributes()
> to remap swiotlb mem to unencrypted address space. memremap() can
> not be called in the early stage and so put remapping code into
> swiotlb_update_mem_attributes(). Store remap address and use it to copy
> data from/to swiotlb bounce buffer.
>=20
> Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
> ---
> Change since v1:
> 	* Rework comment in the swiotlb_init_io_tlb_mem()
> 	* Make swiotlb_init_io_tlb_mem() back to return void.
> ---
>  include/linux/swiotlb.h |  6 +++++
>  kernel/dma/swiotlb.c    | 53 +++++++++++++++++++++++++++++++++++++----
>  2 files changed, 54 insertions(+), 5 deletions(-)
>=20
> diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
> index 569272871375..f6c3638255d5 100644
> --- a/include/linux/swiotlb.h
> +++ b/include/linux/swiotlb.h
> @@ -73,6 +73,9 @@ extern enum swiotlb_force swiotlb_force;
>   * @end:	The end address of the swiotlb memory pool. Used to do a quick
>   *		range check to see if the memory was in fact allocated by this
>   *		API.
> + * @vaddr:	The vaddr of the swiotlb memory pool. The swiotlb memory pool
> + *		may be remapped in the memory encrypted case and store virtual
> + *		address for bounce buffer operation.
>   * @nslabs:	The number of IO TLB blocks (in groups of 64) between @start=
 and
>   *		@end. For default swiotlb, this is command line adjustable via
>   *		setup_io_tlb_npages.
> @@ -92,6 +95,7 @@ extern enum swiotlb_force swiotlb_force;
>  struct io_tlb_mem {
>  	phys_addr_t start;
>  	phys_addr_t end;
> +	void *vaddr;
>  	unsigned long nslabs;
>  	unsigned long used;
>  	unsigned int index;
> @@ -186,4 +190,6 @@ static inline bool is_swiotlb_for_alloc(struct device=
 *dev)
>  }
>  #endif /* CONFIG_DMA_RESTRICTED_POOL */
>=20
> +extern phys_addr_t swiotlb_unencrypted_base;
> +
>  #endif /* __LINUX_SWIOTLB_H */
> diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
> index 8e840fbbed7c..c303fdeba82f 100644
> --- a/kernel/dma/swiotlb.c
> +++ b/kernel/dma/swiotlb.c
> @@ -50,6 +50,7 @@
>  #include <asm/io.h>
>  #include <asm/dma.h>
>=20
> +#include <linux/io.h>
>  #include <linux/init.h>
>  #include <linux/memblock.h>
>  #include <linux/iommu-helper.h>
> @@ -72,6 +73,8 @@ enum swiotlb_force swiotlb_force;
>=20
>  struct io_tlb_mem io_tlb_default_mem;
>=20
> +phys_addr_t swiotlb_unencrypted_base;
> +
>  /*
>   * Max segment that we can provide which (if pages are contingous) will
>   * not be bounced (unless SWIOTLB_FORCE is set).
> @@ -155,6 +158,31 @@ static inline unsigned long nr_slots(u64 val)
>  	return DIV_ROUND_UP(val, IO_TLB_SIZE);
>  }
>=20
> +/*
> + * Remap swioltb memory in the unencrypted physical address space
> + * when swiotlb_unencrypted_base is set. (e.g. for Hyper-V AMD SEV-SNP
> + * Isolation VMs).
> + */
> +void *swiotlb_mem_remap(struct io_tlb_mem *mem, unsigned long bytes)
> +{
> +	void *vaddr;
> +
> +	if (swiotlb_unencrypted_base) {
> +		phys_addr_t paddr =3D mem->start + swiotlb_unencrypted_base;
> +
> +		vaddr =3D memremap(paddr, bytes, MEMREMAP_WB);
> +		if (!vaddr) {
> +			pr_err("Failed to map the unencrypted memory %llx size %lx.\n",
> +			       paddr, bytes);
> +			return NULL;
> +		}
> +
> +		return vaddr;
> +	}
> +
> +	return phys_to_virt(mem->start);
> +}
> +
>  /*
>   * Early SWIOTLB allocation may be too early to allow an architecture to
>   * perform the desired operations.  This function allows the architectur=
e to
> @@ -172,7 +200,14 @@ void __init swiotlb_update_mem_attributes(void)
>  	vaddr =3D phys_to_virt(mem->start);
>  	bytes =3D PAGE_ALIGN(mem->nslabs << IO_TLB_SHIFT);
>  	set_memory_decrypted((unsigned long)vaddr, bytes >> PAGE_SHIFT);
> -	memset(vaddr, 0, bytes);
> +
> +	mem->vaddr =3D swiotlb_mem_remap(mem, bytes);
> +	if (!mem->vaddr) {
> +		pr_err("Fail to remap swiotlb mem.\n");
> +		return;
> +	}
> +
> +	memset(mem->vaddr, 0, bytes);
>  }

In the error case, do you want to leave mem->vaddr as NULL?  Or is it
better to leave it as the virtual address of mem-start?  Your code leaves i=
t
as NULL.

The interaction between swiotlb_update_mem_attributes() and the helper
function swiotlb_memo_remap() seems kind of clunky.  phys_to_virt() gets ca=
lled
twice, for example, and two error messages are printed.  The code would be
more straightforward by just putting the helper function inline:

mem->vaddr =3D phys_to_virt(mem->start);
bytes =3D PAGE_ALIGN(mem->nslabs << IO_TLB_SHIFT);
set_memory_decrypted((unsigned long)(mem->vaddr), bytes >> PAGE_SHIFT);

if (swiotlb_unencrypted_base) {
	phys_addr_t paddr =3D mem->start + swiotlb_unencrypted_base;

	mem->vaddr =3D memremap(paddr, bytes, MEMREMAP_WB);
	if (!mem->vaddr) {
		pr_err("Failed to map the unencrypted memory %llx size %lx.\n",
			       paddr, bytes);
		return;
	}
}

memset(mem->vaddr, 0, bytes);

(This version also leaves mem->vaddr as NULL in the error case.)

>=20
>  static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t =
start,
> @@ -196,7 +231,18 @@ static void swiotlb_init_io_tlb_mem(struct io_tlb_me=
m *mem, phys_addr_t start,
>  		mem->slots[i].orig_addr =3D INVALID_PHYS_ADDR;
>  		mem->slots[i].alloc_size =3D 0;
>  	}
> +
> +	/*
> +	 * If swiotlb_unencrypted_base is set, the bounce buffer memory will
> +	 * be remapped and cleared in swiotlb_update_mem_attributes.
> +	 */
> +	if (swiotlb_unencrypted_base)
> +		return;
> +
> +	set_memory_decrypted((unsigned long)vaddr, bytes >> PAGE_SHIFT);

Prior to this patch, and here in the new version as well, the return value =
from
set_memory_decrypted() is ignored in several places in this file.  As previ=
ously
discussed, swiotlb_init_io_tlb_mem() is a void function, so there's no plac=
e to
return an error. Is that OK?

>  	memset(vaddr, 0, bytes);
> +	mem->vaddr =3D vaddr;
> +	return;
>  }
>=20
>  int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int ve=
rbose)
> @@ -318,7 +364,6 @@ swiotlb_late_init_with_tbl(char *tlb, unsigned long n=
slabs)
>  	if (!mem->slots)
>  		return -ENOMEM;
>=20
> -	set_memory_decrypted((unsigned long)tlb, bytes >> PAGE_SHIFT);
>  	swiotlb_init_io_tlb_mem(mem, virt_to_phys(tlb), nslabs, true);
>=20
>  	swiotlb_print_info();
> @@ -371,7 +416,7 @@ static void swiotlb_bounce(struct device *dev, phys_a=
ddr_t tlb_addr, size_t size
>  	phys_addr_t orig_addr =3D mem->slots[index].orig_addr;
>  	size_t alloc_size =3D mem->slots[index].alloc_size;
>  	unsigned long pfn =3D PFN_DOWN(orig_addr);
> -	unsigned char *vaddr =3D phys_to_virt(tlb_addr);
> +	unsigned char *vaddr =3D mem->vaddr + tlb_addr - mem->start;
>  	unsigned int tlb_offset, orig_addr_offset;
>=20
>  	if (orig_addr =3D=3D INVALID_PHYS_ADDR)
> @@ -806,8 +851,6 @@ static int rmem_swiotlb_device_init(struct reserved_m=
em *rmem,
>  			return -ENOMEM;
>  		}
>=20
> -		set_memory_decrypted((unsigned long)phys_to_virt(rmem->base),
> -				     rmem->size >> PAGE_SHIFT);
>  		swiotlb_init_io_tlb_mem(mem, rmem->base, nslabs, false);
>  		mem->force_bounce =3D true;
>  		mem->for_alloc =3D true;
> --
> 2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 17:15:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 17:15:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229850.397441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZO5-0004JL-5N; Tue, 23 Nov 2021 17:15:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229850.397441; Tue, 23 Nov 2021 17:15:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZO5-0004J7-1z; Tue, 23 Nov 2021 17:15:21 +0000
Received: by outflank-mailman (input) for mailman id 229850;
 Tue, 23 Nov 2021 17:15:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpZO4-0004Gw-5e
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:15:20 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpZO3-0008WA-LT; Tue, 23 Nov 2021 17:15:19 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.23.209]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpZO3-0005iM-Ej; Tue, 23 Nov 2021 17:15:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=aCmJPDOay+dWe6SAPUu21G4TJUIxyLHk9AWXSFPDk5s=; b=JaEqhrjs/Wvpj09k2001eoWf60
	1zwfhS+pcPKyBI8zg98sWWmVH5MSIjcwrEpuRqZC6PbF4rkFuF+uA/8EyX15cAIoeDI3u5put139R
	bCzLke5pNJLRk6ewGlyd+wyf1Q3CT9KyNZM2teGvRxlI/LJ2fDjWEK8SmzTf9XYKSwOY=;
Message-ID: <7192e606-eae2-e11f-9746-ec88afd1dd25@xen.org>
Date: Tue, 23 Nov 2021 17:15:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "sstabellini@kernel.org" <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Artem Mygaiev <Artem_Mygaiev@epam.com>,
 "roger.pau@citrix.com" <roger.pau@citrix.com>,
 "jbeulich@suse.com" <jbeulich@suse.com>,
 "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
 "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
 "paul@xen.org" <paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
 <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
 <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
 <e66c4189-acdf-c32f-4b50-51c8aaab4efd@xen.org>
 <315b1308-5adc-c4f3-6150-1060dbac5f4f@epam.com>
 <9f8e424d-ad1c-2d32-a470-68b275adf22c@xen.org>
 <0aff1bbb-eaf8-4deb-0808-d7db5f1ba8f5@epam.com>
 <ab73f2e5-11d1-7cb4-89ab-74ef5eb1d32d@xen.org>
 <bfd5d305-b315-2f6d-455d-dd3ba071d0b2@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <bfd5d305-b315-2f6d-455d-dd3ba071d0b2@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 23/11/2021 16:44, Oleksandr Andrushchenko wrote:
> On 23.11.21 18:05, Julien Grall wrote:
>> Hi Oleksandr,
>>
>> On 23/11/2021 06:31, Oleksandr Andrushchenko wrote:
>>>
>>>
>>> On 22.11.21 19:17, Julien Grall wrote:
>>>> Hi,
>>>>
>>>> On 22/11/2021 16:23, Oleksandr Andrushchenko wrote:
>>>>> On 22.11.21 17:29, Julien Grall wrote:
>>>>>> I would prefer to go with my way. This can be refined in the future if we find Device-Tree that matches what you wrote.
>>>>> Ok, so just to make it clear:
>>>>>     >a PCI device would always be described as a child of the hostbridges. So I would rework the 'if' to also check if the parent type is not "pci"
>>>>
>>>> That's correct. Thank you!
>>> Ok, so how about
>>>        if ( is_pci_passthrough_enabled() && dt_device_type_is_equal(node, "pci") )
>>>        {
>>>            bool skip = false;
>>>
>>>            /*
>>>             * If the parent is also a "pci" device, then "linux,pci-domain"
>>>             * should already be there, so nothing to do then.
>>>             */
>>
>> This comment is a bit confusing.
> Do you have something on your mind?

Yes, explain that we only want to cover hostbridge (see my reply on the 
previous answer).

>> I think what matter if the parent is a "pci" device, then the current node must not be a hostbridge. So we can skip it.
> By skipping you only mean we do not need to add/assign "linux,pci-domain", right?

Yes.

>> However...
>>
>>>            if ( node->parent && dt_device_type_is_equal(node->parent, "pci") )
>>>                skip = true;
>>>
>>>            if ( !skip && !dt_find_property(node, "linux,pci-domain", NULL) )
>>>            {
>>> I played with a single if and it looks scary...
>>
>> ... how about introducing an helper that will return true if this node is likely an hostbridge?
> This is yet a single use of such a check: why would we need a helper and what would that
> helper do?

I like splitting code in multiple functions even if they are only called 
once because this:
   1) keeps the functions line count small
   2) easier to understand what is the purpose of the check

In fact, I would actually move the handling for "linux,pci-domain" in a 
separate helper. Something like:

/*
  * When PCI passthrough is available we want to keep the
  * "linux,pci-domain" in sync for every hostbridge.
  *
  * Xen may not have a driver for all the hostbridges. So we have
  * to write an heuristic to detect whether a device node describes
  * an hostbridge.
  *
  * The current heuristic assumes that a device is an hostbridge
  * if the type is "pci" and then parent type is not "pci".
  */
static int handle_linux_pci_domain(struct dt_device *node)
{
         if ( !is_pci_passthrough_enabled() )
           return 0;

	if ( !dt_device_type_is_equal(node, "pci") )
           return 0;

         if ( node->parent && dt_device_type_is_equal(node->parent) )
           return 0;

         if ( dt_find_property(node, "linux,pci-domain", NULL )
           return 0;

         /* Allocate and create the linux,pci-domain */
}

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 17:22:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 17:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229864.397452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZVH-0006Cw-Uq; Tue, 23 Nov 2021 17:22:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229864.397452; Tue, 23 Nov 2021 17:22:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZVH-0006Cp-Rn; Tue, 23 Nov 2021 17:22:47 +0000
Received: by outflank-mailman (input) for mailman id 229864;
 Tue, 23 Nov 2021 17:22:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpZVG-0006Cj-NB
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:22:46 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpZVG-0000EG-HL; Tue, 23 Nov 2021 17:22:46 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.23.209]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpZVG-0006CK-Bo; Tue, 23 Nov 2021 17:22:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=iFugpV/WWGBKAjlRelrhnehAEC7SoYluZXY7vtts0WU=; b=LqjQp+dVdPlWvoIfu14Pr0sz18
	QXmTeAph9S9LgjDzMBjsK0fuzGhW99LVFL3L/d2ERHk0WmEstmOB7FPqqudt7fZATMWy5V7Fz734L
	g7NC4pSnyEr2NMvDxGkjr6pkxNb7uKyAnNOQnbGTi+DIvNKelj7eiXqmsXeqgJl6+HiM=;
Message-ID: <8cc2756b-3781-4c21-6cff-19e348bdbba2@xen.org>
Date: Tue, 23 Nov 2021 17:22:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v3 02/10] xen/arm: avoid setting XEN_DOMCTL_CDF_iommu when
 IOMMU off
To: Penny Zheng <penny.zheng@arm.com>, xen-devel@lists.xenproject.org,
 sstabellini@kernel.org
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-3-penny.zheng@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211116063155.901183-3-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Penny,

On 16/11/2021 06:31, Penny Zheng wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> This commit avoids setting XEN_DOMCTL_CDF_iommu when the IOMMU is
> absent/disabled, otherwise xen will fail later when handling
> device assignment.

I would explain briefly in the commit message why you want to do device 
assignment without PCI passthrough.

Other than that, the change below is fine with me.

> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> ---
> v3 changes:
> - new commit, split from the original "[PATCH v2 2/6] xen/arm: introduce
> direct-map for domUs"
> ---
>   xen/arch/arm/domain_build.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 664c88ebe4..7a063f62fe 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2996,7 +2996,8 @@ void __init create_domUs(void)
>               panic("Missing property 'cpus' for domain %s\n",
>                     dt_node_name(node));
>   
> -        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
> +        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") &&
> +             iommu_enabled )
>               d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>   
>           if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 17:29:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 17:29:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229872.397462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZbV-0006tQ-IM; Tue, 23 Nov 2021 17:29:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229872.397462; Tue, 23 Nov 2021 17:29:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZbV-0006tJ-FT; Tue, 23 Nov 2021 17:29:13 +0000
Received: by outflank-mailman (input) for mailman id 229872;
 Tue, 23 Nov 2021 17:29:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpZbT-0006tD-Sp
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:29:11 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpZbT-0000Kf-KN; Tue, 23 Nov 2021 17:29:11 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.23.209]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpZbT-0006RU-Df; Tue, 23 Nov 2021 17:29:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=CBFv2Bp2OU2+W3vAWQifjM1fpqfhreWE5CNCSHKUI5k=; b=obLbbZH4/Jd1zYWAOyaAc3LUuA
	tWAgZiO1qdS+F9g4HW4doKKoGCpHE67QE7BRwJQ9/1VRFILd+KxMBnOfmPeMDt1ECe0Hf+1C1jreR
	26mqw28x8JZFWf9pqhNH3PRdC3S5O5jF0FA0QmAdq/F5MKkbUccXPmVkd6oCrkP61i6c=;
Message-ID: <ab241d33-89bf-c429-9022-b6185c34a16c@xen.org>
Date: Tue, 23 Nov 2021 17:29:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v3 03/10] xen/arm: introduce new helper
 parse_static_mem_prop and acquire_static_memory_bank
To: Penny Zheng <penny.zheng@arm.com>, xen-devel@lists.xenproject.org,
 sstabellini@kernel.org
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-4-penny.zheng@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211116063155.901183-4-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Penny,

On 16/11/2021 06:31, Penny Zheng wrote:
> Later, we will introduce allocate_static_memory_11 for allocating static
> memory for direct-map domains, and it will share a lot common codes with
> the existing allocate_static_memory.
> 
> In order not to bring a lot of duplicate codes, and also to make the whole
> code more readable, this commit extracts common codes into two new helpers
> parse_static_mem_prop and acquire_static_memory_bank.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> ---
> v3 changes:
> - new commit to move the split off of the code outside in a separate patch
> ---
>   xen/arch/arm/domain_build.c | 100 +++++++++++++++++++++++-------------
>   1 file changed, 64 insertions(+), 36 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 7a063f62fe..1dc728e848 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -515,12 +515,69 @@ static bool __init append_static_memory_to_bank(struct domain *d,
>       return true;
>   }
>   
> +static mfn_t __init acquire_static_memory_bank(struct domain *d,
> +                                             const __be32 **cell,
> +                                             u32 addr_cells, u32 size_cells,
> +                                             paddr_t *pbase, paddr_t *psize)
> +{
> +    mfn_t smfn;
> +    int res;
> +
> +    device_tree_get_reg(cell, addr_cells, size_cells, pbase, psize);
> +    ASSERT(IS_ALIGNED(*pbase, PAGE_SIZE) && IS_ALIGNED(*psize, PAGE_SIZE));
> +    if ( PFN_DOWN(*psize) > UINT_MAX )
> +    {
> +        printk(XENLOG_ERR "%pd: static memory size too large: %#"PRIpaddr,
> +               d, *psize);
> +        return INVALID_MFN;
> +    }
> +
> +    smfn = maddr_to_mfn(*pbase);
> +    res = acquire_domstatic_pages(d, smfn, PFN_DOWN(*psize), 0);
> +    if ( res )
> +    {
> +        printk(XENLOG_ERR
> +               "%pd: failed to acquire static memory: %d.\n", d, res);
> +        return INVALID_MFN;
> +    }
> +
> +    return smfn;
> +}
> +
> +static int __init parse_static_mem_prop(const struct dt_device_node *node,
> +                                        u32 *addr_cells, u32 *size_cells,
> +                                        int *length, const __be32 **cell)
> +{
> +    const struct dt_property *prop;
> +
> +    prop = dt_find_property(node, "xen,static-mem", NULL);
> +    if ( !dt_property_read_u32(node, "#xen,static-mem-address-cells",
> +                               addr_cells) )
> +    {
> +        printk(XENLOG_ERR
> +               "failed to read \"#xen,static-mem-address-cells\".\n");
> +        return -EINVAL;
> +    }
> +
> +    if ( !dt_property_read_u32(node, "#xen,static-mem-size-cells",
> +                               size_cells) )
> +    {
> +        printk(XENLOG_ERR
> +               "failed to read \"#xen,static-mem-size-cells\".\n");
> +        return -EINVAL;
> +    }
> +
> +    *cell = (const __be32 *)prop->value;
> +    *length = prop->length;
> +
> +    return 0;
> +}
> +
>   /* Allocate memory from static memory as RAM for one specific domain d. */
>   static void __init allocate_static_memory(struct domain *d,
>                                             struct kernel_info *kinfo,
>                                             const struct dt_device_node *node)
>   {
> -    const struct dt_property *prop;
>       u32 addr_cells, size_cells, reg_cells;
>       unsigned int nr_banks, gbank, bank = 0;
>       const uint64_t rambase[] = GUEST_RAM_BANK_BASES;
> @@ -529,24 +586,10 @@ static void __init allocate_static_memory(struct domain *d,
>       u64 tot_size = 0;
>       paddr_t pbase, psize, gsize;
>       mfn_t smfn;
> -    int res;
> -
> -    prop = dt_find_property(node, "xen,static-mem", NULL);
> -    if ( !dt_property_read_u32(node, "#xen,static-mem-address-cells",
> -                               &addr_cells) )
> -    {
> -        printk(XENLOG_ERR
> -               "%pd: failed to read \"#xen,static-mem-address-cells\".\n", d);
> -        goto fail;
> -    }
> +    int length;
>   
> -    if ( !dt_property_read_u32(node, "#xen,static-mem-size-cells",
> -                               &size_cells) )
> -    {
> -        printk(XENLOG_ERR
> -               "%pd: failed to read \"#xen,static-mem-size-cells\".\n", d);
> +    if ( parse_static_mem_prop(node, &addr_cells, &size_cells, &length, &cell) )
>           goto fail;
> -    }
>       reg_cells = addr_cells + size_cells;
>   
>       /*
> @@ -557,29 +600,14 @@ static void __init allocate_static_memory(struct domain *d,
>       gbank = 0;
>       gsize = ramsize[gbank];
>       kinfo->mem.bank[gbank].start = rambase[gbank];
> -
> -    cell = (const __be32 *)prop->value;
> -    nr_banks = (prop->length) / (reg_cells * sizeof (u32));
> +    nr_banks = length / (reg_cells * sizeof (u32));
>   
>       for ( ; bank < nr_banks; bank++ )
>       {
> -        device_tree_get_reg(&cell, addr_cells, size_cells, &pbase, &psize);
> -        ASSERT(IS_ALIGNED(pbase, PAGE_SIZE) && IS_ALIGNED(psize, PAGE_SIZE));
> -
> -        if ( PFN_DOWN(psize) > UINT_MAX )
> -        {
> -            printk(XENLOG_ERR "%pd: static memory size too large: %#"PRIpaddr,
> -                   d, psize);
> +        smfn = acquire_static_memory_bank(d, &cell, addr_cells, size_cells,
> +                                          &pbase, &psize);
> +        if ( !mfn_valid(smfn) )

I would use mfn_eq(mfn, INVALID_MFN) because this is the only value used 
to indicate there is an error and this is more lightweight than mfn_valid().

>               goto fail;
> -        }
> -        smfn = maddr_to_mfn(pbase);
> -        res = acquire_domstatic_pages(d, smfn, PFN_DOWN(psize), 0);
> -        if ( res )
> -        {
> -            printk(XENLOG_ERR
> -                   "%pd: failed to acquire static memory: %d.\n", d, res);
> -            goto fail;
> -        }
>   
>           printk(XENLOG_INFO "%pd: STATIC BANK[%u] %#"PRIpaddr"-%#"PRIpaddr"\n",
>                  d, bank, pbase, pbase + psize);
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 17:33:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 17:33:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229878.397477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZf3-0008LE-9x; Tue, 23 Nov 2021 17:32:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229878.397477; Tue, 23 Nov 2021 17:32:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZf3-0008L7-63; Tue, 23 Nov 2021 17:32:53 +0000
Received: by outflank-mailman (input) for mailman id 229878;
 Tue, 23 Nov 2021 17:32:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpZf2-0008Kx-Cv; Tue, 23 Nov 2021 17:32:52 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpZf2-0000PM-7i; Tue, 23 Nov 2021 17:32:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpZf1-0001Up-Ss; Tue, 23 Nov 2021 17:32:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpZf1-0003Bo-SP; Tue, 23 Nov 2021 17:32:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=f7AGINUS/FkMKRkMmFr+vprH8f7st9wlklTpTCmgOMQ=; b=UaCEEaAqOzlsnVulIt+WDv/Kvb
	B+zRquiw6lNCEfAC20scJGqi1IdhvAYIll9py3qdoxFAF0W2mgEBPj82F3oO2yt5HosJDdJVYnKEv
	Xtwl8QY6RxWvb6X3fpN3JrJVQE4vzvq4OoV4rnORZHRVlPCCMdjvc5UAZzHTLzHPZX4k=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166312-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166312: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=74a11c43fd7e074b1f77631b446dd2115eacb9e8
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Nov 2021 17:32:51 +0000

flight 166312 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166312/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  74a11c43fd7e074b1f77631b446dd2115eacb9e8
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166197  2021-11-19 19:00:27 Z    3 days
Testing same since   166312  2021-11-23 13:00:27 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   be12fcca8b..74a11c43fd  74a11c43fd7e074b1f77631b446dd2115eacb9e8 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 17:45:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 17:45:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229890.397493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZr9-0001PU-Cv; Tue, 23 Nov 2021 17:45:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229890.397493; Tue, 23 Nov 2021 17:45:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpZr9-0001PN-8I; Tue, 23 Nov 2021 17:45:23 +0000
Received: by outflank-mailman (input) for mailman id 229890;
 Tue, 23 Nov 2021 17:45:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=M1Mo=QK=microsoft.com=mikelley@srs-se1.protection.inumbo.net>)
 id 1mpZr8-0001PH-Jo
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:45:22 +0000
Received: from na01-obe.outbound.protection.outlook.com
 (mail-cusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c111::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1fe77557-4c85-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 18:45:20 +0100 (CET)
Received: from MWHPR21MB1593.namprd21.prod.outlook.com (2603:10b6:301:7c::11)
 by MWHPR21MB0766.namprd21.prod.outlook.com (2603:10b6:300:76::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.5; Tue, 23 Nov
 2021 17:44:56 +0000
Received: from MWHPR21MB1593.namprd21.prod.outlook.com
 ([fe80::9401:9c8b:c334:4336]) by MWHPR21MB1593.namprd21.prod.outlook.com
 ([fe80::9401:9c8b:c334:4336%2]) with mapi id 15.20.4755.001; Tue, 23 Nov 2021
 17:44:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fe77557-4c85-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PwGWpAsN4JPTDyabFy5CC/qEaL/7R8XiI3wfS0zU6v+txO+ZpKtf9i83JsXwVs6hb48dk1wEi2lukMOyLOn3Ozl0/Hlxb/++tuI0Xjy7s595RFZmmGw+ug7BIhntNBxmp6YlunRPY0C3LslcvUBh1wWyQ7d+efuO2rBnMWGbDRhHEcvICMcRYuxYJWyegfnMrGTjJuLH9SUn4Y85BDKAeaDhVU7kr26Byz4t9mfiMBU2zoNQ3UC/pjTURAukFo24HVM+gxKadT7YXOIJCCEW8+wfOq85XACrsqh0ieBEI63QuL6ec0hWFQFFEVpTfkmflu/jK+XokQIb9qsaRqOa6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IoeEDz8RJcg9PZleLooYwnpY2A5G19CQR2Rx90ECbAY=;
 b=kNAVUkNm0AtUfwCCTkpYyE1HMAbAIUs1sZhQZbR67VN+jc1J8zDxoGiNA/FYPQ8cz+JCaHS+x6KfTZBzMWLujnQSDIcABmWOfrLNLJjjEpQu8xMNOkM+cavkRiomyQlUmJnHoCIxLfCRq7F6ZszH/247uKo7EOlexYRTMI7M3xxz3TwxBAdS81wpFEbj9n/VVJ46i4H4YL8vXwl+8MKL3wftC93qeTLSWbfa4GIeGuEgdhJjPGK/h7OFLKXO469MDImlusV6AkJxF1uwWCqgZfHmXl6C7f86TrTAz/XV/9/lb2hr4/4IBaYO2b5pH+OBKEz0J+1BvvOZvuQfCSeQDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microsoft.com; dmarc=pass action=none
 header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IoeEDz8RJcg9PZleLooYwnpY2A5G19CQR2Rx90ECbAY=;
 b=ax1SdL7QWQEs3Mm4figypoTN+iYMls4K6NtKCmy2s2Sa0pEqF1AHgtYDGuGQE+hKYmzZAIurTaDUbMVwTZ/+8S46c6pVHTbi1xuPiCWbK60EYZ5wwr/XX6Mj4xtrJExEVzsHG8lpgNoVwrzrgLmFPEyWnCS5IAyhEaE23mzzeYg=
From: "Michael Kelley (LINUX)" <mikelley@microsoft.com>
To: Tianyu Lan <ltykernel@gmail.com>, "tglx@linutronix.de"
	<tglx@linutronix.de>, "mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de"
	<bp@alien8.de>, "dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"x86@kernel.org" <x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>,
	"luto@kernel.org" <luto@kernel.org>, "peterz@infradead.org"
	<peterz@infradead.org>, "jgross@suse.com" <jgross@suse.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>, KY Srinivasan
	<kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Stephen
 Hemminger <sthemmin@microsoft.com>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, "joro@8bytes.org"
	<joro@8bytes.org>, "will@kernel.org" <will@kernel.org>, "davem@davemloft.net"
	<davem@davemloft.net>, "kuba@kernel.org" <kuba@kernel.org>,
	"jejb@linux.ibm.com" <jejb@linux.ibm.com>, "martin.petersen@oracle.com"
	<martin.petersen@oracle.com>, "hch@lst.de" <hch@lst.de>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>, "robin.murphy@arm.com"
	<robin.murphy@arm.com>, Tianyu Lan <Tianyu.Lan@microsoft.com>,
	"thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "iommu@lists.linux-foundation.org" <iommu@lists.linux-foundation.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>, vkuznets
	<vkuznets@redhat.com>, "brijesh.singh@amd.com" <brijesh.singh@amd.com>,
	"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>, "parri.andrea@gmail.com"
	<parri.andrea@gmail.com>, "dave.hansen@intel.com" <dave.hansen@intel.com>
Subject: RE: [PATCH V2 4/6] hyperv/IOMMU: Enable swiotlb bounce buffer for
 Isolation VM
Thread-Topic: [PATCH V2 4/6] hyperv/IOMMU: Enable swiotlb bounce buffer for
 Isolation VM
Thread-Index: AQHX4HeZTePwP1ztSUyjgsbuNOQDvKwRXCXw
Date: Tue, 23 Nov 2021 17:44:56 +0000
Message-ID:
 <MWHPR21MB15939F017D1D6B8F62B90A8DD7609@MWHPR21MB1593.namprd21.prod.outlook.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
 <20211123143039.331929-5-ltykernel@gmail.com>
In-Reply-To: <20211123143039.331929-5-ltykernel@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=01595679-7835-4908-9946-56a7173067a5;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-11-23T17:21:24Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ad468222-e641-4222-cfca-08d9aea8f6d0
x-ms-traffictypediagnostic: MWHPR21MB0766:
x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr
x-microsoft-antispam-prvs:
 <MWHPR21MB0766610FE18BE30DC3AFF026D7609@MWHPR21MB0766.namprd21.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:107;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 PQHX+WfrutwZHoDw2EkkZhgKmBDUKUwwh01GlsdycqRch95JfJRX8eCkvSFLdsij5F9tLZm44zX6wJIXlqx13PrE9Ufjev6une7Q72Qdqx75zkoeLmLctuQHR3hI+sjlsLElf1e3th/pEPm6IqntCRbXvY9+/SOU794BhVBlUQkpxsPHhQF+ddmlYt19Zxr77BbzIQa6PLokR9enhRrFublaYYhWvTuumUDK5hoZP/kY7jBVKYTHoO4DcNh0v6nqNSs98UpdPaU0pKQ61vWrte9PiCh3q21YhIcJ/oqBo+rs0z3e71QulSNwG9vfKWAjvPPC99a3hxxc7/eMij4rLb6OLfXsY5Ra09NUlweOlPIjBiBDTPktUyo+CuDDVS1r0mfnjMtsMKM0Eu/0TtpbFawuKMFc03WemUm8kW/3UcjDwQVw6ApDuzIWbIe9fTD7rAcYK3mz8VtrpdfmvB2Hch2oZm78s6em6gtpBOR1kbuPIe2dGHC2B6gss36SZ0NyTQJsG18qTrJfOYR70KcMSKbrOjZSVxt+z45N9yNC9ATN1t5rv52K0qV5PtXTDGbNutHncSBF2uP0gw08j9C8ZGpkJ8VlTStTZYrlddeamxD4K7Vl02hrVeOVv3LiQhlrWDpLWWLkrfqsjRufETy0vgx64b9NZcbdWGa+lIHqzd2xJ2u4GdEquM+973P78lXiTva4DZ5Uo+ACScYqKaV2KxtG/Zq4uNCyU7ju8f7vgcFxRbaTsikBJ9izamquQhpPmSdMvJ7rbitWq3PGkpkfCA==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR21MB1593.namprd21.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(2906002)(316002)(10290500003)(86362001)(508600001)(8676002)(110136005)(7416002)(76116006)(33656002)(5660300002)(8936002)(82950400001)(55016003)(82960400001)(38100700002)(4326008)(64756008)(66556008)(66476007)(66446008)(71200400001)(9686003)(7406005)(122000001)(54906003)(52536014)(6506007)(8990500004)(186003)(26005)(66946007)(38070700005)(921005)(30864003)(83380400001)(7696005)(20210929001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?oIiCGN/JDykGgKkdoKHpmIRN6x2zdYFhZJMciGoQK7qYSAPf5VAbJ9QfLd41?=
 =?us-ascii?Q?5tQfMI5c73cZl/bolu159YkWLHYN0w1JjXXrWaHbeuaxBZoaKWTZmS7pLJqi?=
 =?us-ascii?Q?m0VEqrLg0C4KAZVuORIFGHBZWfvJ18dIAt/SHbXPDgk92j7a3njSUnhJJ8fB?=
 =?us-ascii?Q?P0ZSfGEUKbcQkybBiw4fgTq16rEQVil3QShxjcaPevuOLBOIefFKUDbrADNP?=
 =?us-ascii?Q?4E5s6ZNyLwI7m7Ue8ogTsUfCMdazI9KdMEePA2KvEXlDuIG0NoaA86zXC5Wm?=
 =?us-ascii?Q?bkirtbt0rrzStyjvsssrXXh88ncLahYuU6nr02c81ydnn0m7NIaJRXVaG4Gd?=
 =?us-ascii?Q?vVIQBbaOThPglQ6xpKPadlMOoQSq+Ifu4NY+yHRrwRdORmH/ZJA9VxG5Kh6b?=
 =?us-ascii?Q?z9RiDJj8wNN/lwVwF9x8njslgH3drJ4hqJ+jR9WYRLH/Z3VErRPuHx1tpjP8?=
 =?us-ascii?Q?vmGLKk+00KRN8pjGtaiMd9xbvzx5LFZqjY+g1liwz2seucjVWEgjk499TE4G?=
 =?us-ascii?Q?YcDnLH/ofvTtWxePn3C2qyULcT0C8J1nXegBzellqJZRMQtFxnNJCXB/upSV?=
 =?us-ascii?Q?iUwxgOtSc32/GTK11G69JVTGJB0gX9zodUm9Fop8l8Ylb7dfssMPpAo9vNI3?=
 =?us-ascii?Q?JQtyvrLI/Gwd/uSsGtoXa8hyrpuE18FAWxYBcCdfclNq8sSOApQ9E2ySGPtt?=
 =?us-ascii?Q?PIdhqP9gC0sDzJyVokdKp3NiHL2yedqoFq/Zm8r+kPbpsiCr6FQnGxKOipke?=
 =?us-ascii?Q?ABbT+/h+vl+6cPlEYkrWi8W9ZY2yJ9rhAYbre76Q4ceRByPnWpqYL0t08Mfa?=
 =?us-ascii?Q?24x36G4YXZB0UAuy5EeBoFN6ScbD+ETwURdOARma+5d+mN7y/fuzdtZYzAey?=
 =?us-ascii?Q?iFd82Fj6SFNznrKbaL6LSqywxtI8CUwFoQeGDuRwa4cYUB1uFj45r40c1F4+?=
 =?us-ascii?Q?vQ0TJceAko2E4bADiT5AQBJVnDtvZ6VAf34iuivgnRGSqn2hVi+cV8qHd+G9?=
 =?us-ascii?Q?ZumGAlyHYUU7T0mxe/fUH2Fzfh3cgkACRr4IAT9OghB10mGVHKtScu1Hwq27?=
 =?us-ascii?Q?PDafH2A4OMS8rs4Bcj4UGNsN5I6DPEBUAroRjHMNiVoEPLkXrakF3wXGNvxi?=
 =?us-ascii?Q?B6U1fW+TGINwBFpkMhzkY8Twz3V3f3ZlWhQt+sDx1sHr3qYagVHWWNlHPI2g?=
 =?us-ascii?Q?8C3e87ZMT4HC0F4ULjTcbkRy7SrdUvGiU/yWOK7PyDsPEbBWpraWPEr+W+Ux?=
 =?us-ascii?Q?fNP9O3dVbrTsR/UH6ddGRrKzaAwgleAQzairEH02q7g/LjymghxNgjmXptoj?=
 =?us-ascii?Q?ph+lmB6cBlXDQJy3T35hycTp+ByrOHuLPnmO265NqGRDJJjBzlr/oVihQllM?=
 =?us-ascii?Q?k3RVEw8A+yFCqunPC8dnUeFKQ71S2ML15jpGCMAJDyWfjI1Q8lnTIVOCSqE7?=
 =?us-ascii?Q?kJj1X8qiZnUghjaAlN5SPmCH+D2a01Vm8Wg+agdHeCpvPUmndfBfECBJHOr3?=
 =?us-ascii?Q?HoQWDqIBwSYV5BlnwR0a8ummJNEHVdeosYQVoNqumDL3GeWG5jlj8S2SFfwy?=
 =?us-ascii?Q?qwiptrGVmFGJyJQKxzc5RoKJW7T0wMSpR6HqGdsPchnVKMiIAqVHXYcEpyNG?=
 =?us-ascii?Q?RfFrG3X2hroXxZDSeJWoTDJwGKPakLbHBtVR1yN0B3OlQaNXiOZWs3lacXic?=
 =?us-ascii?Q?w1kILA=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MWHPR21MB1593.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ad468222-e641-4222-cfca-08d9aea8f6d0
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 17:44:56.7534
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: HirjXOPg7516nskoSMI97AYHuXPmpOv+pekjcHQb3yVj0UpmdpoXFSIXzfn1ke2EQgmVMviyGziOTTZbgPMktc/jVGi9keZlONzsu1GkfDM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0766

From: Tianyu Lan <ltykernel@gmail.com> Sent: Tuesday, November 23, 2021 6:3=
1 AM
>=20
> hyperv Isolation VM requires bounce buffer support to copy
> data from/to encrypted memory and so enable swiotlb force
> mode to use swiotlb bounce buffer for DMA transaction.
>=20
> In Isolation VM with AMD SEV, the bounce buffer needs to be
> accessed via extra address space which is above shared_gpa_boundary
> (E.G 39 bit address line) reported by Hyper-V CPUID ISOLATION_CONFIG.
> The access physical address will be original physical address +
> shared_gpa_boundary. The shared_gpa_boundary in the AMD SEV SNP
> spec is called virtual top of memory(vTOM). Memory addresses below
> vTOM are automatically treated as private while memory above
> vTOM is treated as shared.
>=20
> Hyper-V initalizes swiotlb bounce buffer and default swiotlb
> needs to be disabled. pci_swiotlb_detect_override() and
> pci_swiotlb_detect_4gb() enable the default one. To override
> the setting, hyperv_swiotlb_detect() needs to run before
> these detect functions which depends on the pci_xen_swiotlb_
> init(). Make pci_xen_swiotlb_init() depends on the hyperv_swiotlb
> _detect() to keep the order.
>=20
> Swiotlb bounce buffer code calls set_memory_decrypted()
> to mark bounce buffer visible to host and map it in extra
> address space via memremap. Populate the shared_gpa_boundary
> (vTOM) via swiotlb_unencrypted_base variable.
>=20
> The map function memremap() can't work in the early place
> hyperv_iommu_swiotlb_init() and so call swiotlb_update_mem_attributes()
> in the hyperv_iommu_swiotlb_later_init().
>=20
> Add Hyper-V dma ops and provide alloc/free and vmap/vunmap noncontiguous
> callback to handle request of  allocating and mapping noncontiguous dma
> memory in vmbus device driver. Netvsc driver will use this. Set dma_ops_
> bypass flag for hv device to use dma direct functions during mapping/unma=
pping
> dma page.
>=20
> Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
> ---
> Change since v1:
> 	* Remove hv isolation check in the sev_setup_arch()
>=20
>  arch/x86/mm/mem_encrypt.c      |   1 +
>  arch/x86/xen/pci-swiotlb-xen.c |   3 +-
>  drivers/hv/Kconfig             |   1 +
>  drivers/hv/vmbus_drv.c         |   6 ++
>  drivers/iommu/hyperv-iommu.c   | 164 +++++++++++++++++++++++++++++++++
>  include/linux/hyperv.h         |  10 ++
>  6 files changed, 184 insertions(+), 1 deletion(-)
>=20
> diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
> index 35487305d8af..e48c73b3dd41 100644
> --- a/arch/x86/mm/mem_encrypt.c
> +++ b/arch/x86/mm/mem_encrypt.c
> @@ -31,6 +31,7 @@
>  #include <asm/processor-flags.h>
>  #include <asm/msr.h>
>  #include <asm/cmdline.h>
> +#include <asm/mshyperv.h>

There is no longer any need to add this #include since code changes to this
file in a previous version of the patch are now gone.

>=20
>  #include "mm_internal.h"
>=20
> diff --git a/arch/x86/xen/pci-swiotlb-xen.c b/arch/x86/xen/pci-swiotlb-xe=
n.c
> index 46df59aeaa06..30fd0600b008 100644
> --- a/arch/x86/xen/pci-swiotlb-xen.c
> +++ b/arch/x86/xen/pci-swiotlb-xen.c
> @@ -4,6 +4,7 @@
>=20
>  #include <linux/dma-map-ops.h>
>  #include <linux/pci.h>
> +#include <linux/hyperv.h>
>  #include <xen/swiotlb-xen.h>
>=20
>  #include <asm/xen/hypervisor.h>
> @@ -91,6 +92,6 @@ int pci_xen_swiotlb_init_late(void)
>  EXPORT_SYMBOL_GPL(pci_xen_swiotlb_init_late);
>=20
>  IOMMU_INIT_FINISH(pci_xen_swiotlb_detect,
> -		  NULL,
> +		  hyperv_swiotlb_detect,
>  		  pci_xen_swiotlb_init,
>  		  NULL);
> diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
> index dd12af20e467..d43b4cd88f57 100644
> --- a/drivers/hv/Kconfig
> +++ b/drivers/hv/Kconfig
> @@ -9,6 +9,7 @@ config HYPERV
>  	select PARAVIRT
>  	select X86_HV_CALLBACK_VECTOR if X86
>  	select VMAP_PFN
> +	select DMA_OPS_BYPASS
>  	help
>  	  Select this option to run Linux as a Hyper-V client operating
>  	  system.
> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> index 392c1ac4f819..32dc193e31cd 100644
> --- a/drivers/hv/vmbus_drv.c
> +++ b/drivers/hv/vmbus_drv.c
> @@ -33,6 +33,7 @@
>  #include <linux/random.h>
>  #include <linux/kernel.h>
>  #include <linux/syscore_ops.h>
> +#include <linux/dma-map-ops.h>
>  #include <clocksource/hyperv_timer.h>
>  #include "hyperv_vmbus.h"
>=20
> @@ -2078,6 +2079,7 @@ struct hv_device *vmbus_device_create(const guid_t =
*type,
>  	return child_device_obj;
>  }
>=20
> +static u64 vmbus_dma_mask =3D DMA_BIT_MASK(64);
>  /*
>   * vmbus_device_register - Register the child device
>   */
> @@ -2118,6 +2120,10 @@ int vmbus_device_register(struct hv_device *child_=
device_obj)
>  	}
>  	hv_debug_add_dev_dir(child_device_obj);
>=20
> +	child_device_obj->device.dma_ops_bypass =3D true;
> +	child_device_obj->device.dma_ops =3D &hyperv_iommu_dma_ops;
> +	child_device_obj->device.dma_mask =3D &vmbus_dma_mask;
> +	child_device_obj->device.dma_parms =3D &child_device_obj->dma_parms;
>  	return 0;
>=20
>  err_kset_unregister:
> diff --git a/drivers/iommu/hyperv-iommu.c b/drivers/iommu/hyperv-iommu.c
> index e285a220c913..ebcb628e7e8f 100644
> --- a/drivers/iommu/hyperv-iommu.c
> +++ b/drivers/iommu/hyperv-iommu.c
> @@ -13,14 +13,21 @@
>  #include <linux/irq.h>
>  #include <linux/iommu.h>
>  #include <linux/module.h>
> +#include <linux/hyperv.h>
> +#include <linux/io.h>
>=20
>  #include <asm/apic.h>
>  #include <asm/cpu.h>
>  #include <asm/hw_irq.h>
>  #include <asm/io_apic.h>
> +#include <asm/iommu.h>
> +#include <asm/iommu_table.h>
>  #include <asm/irq_remapping.h>
>  #include <asm/hypervisor.h>
>  #include <asm/mshyperv.h>
> +#include <asm/swiotlb.h>
> +#include <linux/dma-map-ops.h>
> +#include <linux/dma-direct.h>
>=20
>  #include "irq_remapping.h"
>=20
> @@ -337,4 +344,161 @@ static const struct irq_domain_ops hyperv_root_ir_d=
omain_ops =3D {
>  	.free =3D hyperv_root_irq_remapping_free,
>  };
>=20
> +static void __init hyperv_iommu_swiotlb_init(void)
> +{
> +	unsigned long hyperv_io_tlb_size;
> +	void *hyperv_io_tlb_start;
> +
> +	/*
> +	 * Allocate Hyper-V swiotlb bounce buffer at early place
> +	 * to reserve large contiguous memory.
> +	 */
> +	hyperv_io_tlb_size =3D swiotlb_size_or_default();
> +	hyperv_io_tlb_start =3D memblock_alloc(hyperv_io_tlb_size, PAGE_SIZE);
> +
> +	if (!hyperv_io_tlb_start)
> +		pr_warn("Fail to allocate Hyper-V swiotlb buffer.\n");
> +
> +	swiotlb_init_with_tbl(hyperv_io_tlb_start,
> +			      hyperv_io_tlb_size >> IO_TLB_SHIFT, true);
> +}
> +
> +int __init hyperv_swiotlb_detect(void)
> +{
> +	if (!hypervisor_is_type(X86_HYPER_MS_HYPERV))
> +		return 0;
> +
> +	if (!hv_is_isolation_supported())
> +		return 0;
> +
> +	/*
> +	 * Enable swiotlb force mode in Isolation VM to
> +	 * use swiotlb bounce buffer for dma transaction.
> +	 */
> +	if (hv_isolation_type_snp())
> +		swiotlb_unencrypted_base =3D ms_hyperv.shared_gpa_boundary;
> +	swiotlb_force =3D SWIOTLB_FORCE;
> +	return 1;
> +}
> +
> +static void __init hyperv_iommu_swiotlb_later_init(void)
> +{
> +	/*
> +	 * Swiotlb bounce buffer needs to be mapped in extra address
> +	 * space. Map function doesn't work in the early place and so
> +	 * call swiotlb_update_mem_attributes() here.
> +	 */
> +	swiotlb_update_mem_attributes();
> +}
> +
> +IOMMU_INIT_FINISH(hyperv_swiotlb_detect,
> +		  NULL, hyperv_iommu_swiotlb_init,
> +		  hyperv_iommu_swiotlb_later_init);
> +
> +static struct sg_table *hyperv_dma_alloc_noncontiguous(struct device *de=
v,
> +		size_t size, enum dma_data_direction dir, gfp_t gfp,
> +		unsigned long attrs)
> +{
> +	struct dma_sgt_handle *sh;
> +	struct page **pages;
> +	int num_pages =3D size >> PAGE_SHIFT;

This assumes "size" is a multiple of PAGE_SIZE.  Probably should round
up for safety.

> +	void *vaddr, *ptr;
> +	int rc, i;
> +
> +	if (!hv_isolation_type_snp())
> +		return NULL;
> +
> +	sh =3D kmalloc(sizeof(*sh), gfp);
> +	if (!sh)
> +		return NULL;
> +
> +	vaddr =3D vmalloc(size);
> +	if (!vaddr)
> +		goto free_sgt;
> +
> +	pages =3D kvmalloc_array(num_pages, sizeof(struct page *),
> +				    GFP_KERNEL | __GFP_ZERO);
> +	if (!pages)
> +		goto free_mem;
> +
> +	for (i =3D 0, ptr =3D vaddr; i < num_pages; ++i, ptr +=3D PAGE_SIZE)
> +		pages[i] =3D vmalloc_to_page(ptr);
> +
> +	rc =3D sg_alloc_table_from_pages(&sh->sgt, pages, num_pages, 0, size, G=
FP_KERNEL);
> +	if (rc)
> +		goto free_pages;
> +
> +	sh->sgt.sgl->dma_address =3D (dma_addr_t)vaddr;
> +	sh->sgt.sgl->dma_length =3D size;

include/linux/scatterlist.h defines macros sg_dma_address() and
sg_dma_len() for accessing these two fields.   It's probably best to use th=
em.

> +	sh->pages =3D pages;
> +
> +	return &sh->sgt;
> +
> +free_pages:
> +	kvfree(pages);
> +free_mem:
> +	vfree(vaddr);
> +free_sgt:
> +	kfree(sh);
> +	return NULL;
> +}
> +
> +static void hyperv_dma_free_noncontiguous(struct device *dev, size_t siz=
e,
> +		struct sg_table *sgt, enum dma_data_direction dir)
> +{
> +	struct dma_sgt_handle *sh =3D sgt_handle(sgt);
> +
> +	if (!hv_isolation_type_snp())
> +		return;
> +
> +	vfree((void *)sh->sgt.sgl->dma_address);

Use sg_dma_address()

> +	sg_free_table(&sh->sgt);
> +	kvfree(sh->pages);
> +	kfree(sh);
> +}
> +
> +static void *hyperv_dma_vmap_noncontiguous(struct device *dev, size_t si=
ze,
> +			struct sg_table *sgt)
> +{
> +	int pg_count =3D size >> PAGE_SHIFT;

Round up so don't assume size is a multiple of PAGE_SIZE?

> +	unsigned long *pfns;
> +	struct page **pages =3D sgt_handle(sgt)->pages;
> +	void *vaddr =3D NULL;
> +	int i;
> +
> +	if (!hv_isolation_type_snp())
> +		return NULL;
> +
> +	if (!pages)
> +		return NULL;
> +
> +	pfns =3D kcalloc(pg_count, sizeof(*pfns), GFP_KERNEL);
> +	if (!pfns)
> +		return NULL;
> +
> +	for (i =3D 0; i < pg_count; i++)
> +		pfns[i] =3D page_to_pfn(pages[i]) +
> +			(ms_hyperv.shared_gpa_boundary >> PAGE_SHIFT);
> +
> +	vaddr =3D vmap_pfn(pfns, pg_count, PAGE_KERNEL);
> +	kfree(pfns);
> +	return vaddr;
> +
> +}
> +
> +static void hyperv_dma_vunmap_noncontiguous(struct device *dev, void *ad=
dr)
> +{
> +	if (!hv_isolation_type_snp())
> +		return;
> +	vunmap(addr);
> +}
> +
> +const struct dma_map_ops hyperv_iommu_dma_ops =3D {
> +		.alloc_noncontiguous =3D hyperv_dma_alloc_noncontiguous,
> +		.free_noncontiguous =3D hyperv_dma_free_noncontiguous,
> +		.vmap_noncontiguous =3D hyperv_dma_vmap_noncontiguous,
> +		.vunmap_noncontiguous =3D hyperv_dma_vunmap_noncontiguous,
> +};
> +EXPORT_SYMBOL_GPL(hyperv_iommu_dma_ops);
> +
>  #endif
> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
> index b823311eac79..4d44fb3b3f1c 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -1726,6 +1726,16 @@ int hyperv_write_cfg_blk(struct pci_dev *dev, void=
 *buf, unsigned int len,
>  int hyperv_reg_block_invalidate(struct pci_dev *dev, void *context,
>  				void (*block_invalidate)(void *context,
>  							 u64 block_mask));
> +#ifdef CONFIG_HYPERV
> +int __init hyperv_swiotlb_detect(void);
> +#else
> +static inline int __init hyperv_swiotlb_detect(void)
> +{
> +	return 0;
> +}
> +#endif
> +
> +extern const struct dma_map_ops hyperv_iommu_dma_ops;
>=20
>  struct hyperv_pci_block_ops {
>  	int (*read_block)(struct pci_dev *dev, void *buf, unsigned int buf_len,
> --
> 2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 17:56:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 17:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229895.397504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpa1Q-0002tv-Aq; Tue, 23 Nov 2021 17:56:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229895.397504; Tue, 23 Nov 2021 17:56:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpa1Q-0002to-7Y; Tue, 23 Nov 2021 17:56:00 +0000
Received: by outflank-mailman (input) for mailman id 229895;
 Tue, 23 Nov 2021 17:55:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=M1Mo=QK=microsoft.com=mikelley@srs-se1.protection.inumbo.net>)
 id 1mpa1P-0002ti-85
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:55:59 +0000
Received: from na01-obe.outbound.protection.outlook.com
 (mail-cusazlp170100000.outbound.protection.outlook.com
 [2a01:111:f403:c111::])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b322195-4c86-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 18:55:57 +0100 (CET)
Received: from MWHPR21MB1593.namprd21.prod.outlook.com (2603:10b6:301:7c::11)
 by MWHPR21MB0765.namprd21.prod.outlook.com (2603:10b6:300:76::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.5; Tue, 23 Nov
 2021 17:55:51 +0000
Received: from MWHPR21MB1593.namprd21.prod.outlook.com
 ([fe80::9401:9c8b:c334:4336]) by MWHPR21MB1593.namprd21.prod.outlook.com
 ([fe80::9401:9c8b:c334:4336%2]) with mapi id 15.20.4755.001; Tue, 23 Nov 2021
 17:55:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b322195-4c86-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GwG4/SFffNQkdljJgKDFCtBVrtn/YvjVX7GMAe4nYBx1vM6PE/tPN//KBfKdpPK7d2At/cjoEvUjyj7Biq9HlyUPOcexltbg83U7+02YuxuUM+jOtZjeNnEbNRHoSu+wuXodsn17DzymjlkaliQaCH2+LBBuVqmtzkNPkXt0UIB5lJ1y/ZCxnZ9z4TzQsaZrS8M5+ceH7uxxko3Y/YsOlKYpGlar0C+kXLK0n7AelbPvz2d2gWD/A6qamiFs/ibWasn+e2jXIuUmbQ+W032mbb5pDejRdF6z/UfWu+ztxvms8O7u3DPYZvif1vFBeVlwvGmkLqNeN8u2j5AqNYYh0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TbaHwqX0avxNS6HNpAIGUAI2NHTK78YDNolrUCewJk4=;
 b=nWAhJHciwZa0MCxLhCaoARzPGTir7g9Pg7gSQgPC39JnyLaRefU5V84cQ6cNX9i4LufTwhuIA7r616cN4srCkbJ/l6rN9jgR0xlqZBtxqkNvnETwHdrCpfk65ayj9JjIRkkdTwau9FbkI2zqYEtcRryMrMNJTE2SWbMHRkVrR6Qmp+to5FYOcc0Bz4gnZ9kPFMkWK8PdOevuaJhtWWTUCcezRYU+BMQrgliUtl/hHhWcgqtB0VhuBdQwwg1Y6Z21KSRD7TbeUHazrSHazzfUj2uCIwn++y9YBdaAOcUpJhMW/q8ja/Nuhjx7X0h4iUzXBMny62QhMMV1T0bsbsiGbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microsoft.com; dmarc=pass action=none
 header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TbaHwqX0avxNS6HNpAIGUAI2NHTK78YDNolrUCewJk4=;
 b=QGfmY/jzR6gNK3OcPJlEyFn4xuRncqxInnk07VbUAP0xJgdu6X2LI9UvT2Wi+NG8rPugNX2G2YDmFmtGQ0SG6iNewBf/7xGxKPierTHAOu3LBWgbSKqDRJeqFKtTCwxodhFslf1ApTxN5YifBlm+8K1u4XOolxAexGnGPAMFbcg=
From: "Michael Kelley (LINUX)" <mikelley@microsoft.com>
To: Tianyu Lan <ltykernel@gmail.com>, "tglx@linutronix.de"
	<tglx@linutronix.de>, "mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de"
	<bp@alien8.de>, "dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"x86@kernel.org" <x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>,
	"luto@kernel.org" <luto@kernel.org>, "peterz@infradead.org"
	<peterz@infradead.org>, "jgross@suse.com" <jgross@suse.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>, KY Srinivasan
	<kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Stephen
 Hemminger <sthemmin@microsoft.com>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, "joro@8bytes.org"
	<joro@8bytes.org>, "will@kernel.org" <will@kernel.org>, "davem@davemloft.net"
	<davem@davemloft.net>, "kuba@kernel.org" <kuba@kernel.org>,
	"jejb@linux.ibm.com" <jejb@linux.ibm.com>, "martin.petersen@oracle.com"
	<martin.petersen@oracle.com>, "hch@lst.de" <hch@lst.de>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>, "robin.murphy@arm.com"
	<robin.murphy@arm.com>, Tianyu Lan <Tianyu.Lan@microsoft.com>,
	"thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "iommu@lists.linux-foundation.org" <iommu@lists.linux-foundation.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>, vkuznets
	<vkuznets@redhat.com>, "brijesh.singh@amd.com" <brijesh.singh@amd.com>,
	"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>, "parri.andrea@gmail.com"
	<parri.andrea@gmail.com>, "dave.hansen@intel.com" <dave.hansen@intel.com>
Subject: RE: [PATCH V2 5/6] net: netvsc: Add Isolation VM support for netvsc
 driver
Thread-Topic: [PATCH V2 5/6] net: netvsc: Add Isolation VM support for netvsc
 driver
Thread-Index: AQHX4HeYtAEila+YgkS3X1o35FDXYawRY0/A
Date: Tue, 23 Nov 2021 17:55:51 +0000
Message-ID:
 <MWHPR21MB1593FF92E42C1FD3C2755A51D7609@MWHPR21MB1593.namprd21.prod.outlook.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
 <20211123143039.331929-6-ltykernel@gmail.com>
In-Reply-To: <20211123143039.331929-6-ltykernel@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=8c587921-095f-437c-878b-5459b0780a1b;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-11-23T17:47:02Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ff17ca19-2b73-421c-fb36-08d9aeaa7cf8
x-ms-traffictypediagnostic: MWHPR21MB0765:
x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr
x-microsoft-antispam-prvs:
 <MWHPR21MB0765E5743852AA26495F1037D7609@MWHPR21MB0765.namprd21.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:49;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 6MLiwjMXjDImKq1Tdkn2A7C4ntEWBKASZwiXxpgmRfPRqio3qJHUfRl8pVA5kWV97Lx+7B+p1xP1c22I0E5uz4YRkf+6tu1LV28RysARM1Qn2FL/I/SWCmRrdi3gAQXY71rU+7WbDAgDJYVax1ornuvXdH+ZPTciYOjs/a1L7yjenZkrJZUW+WSl2XdHiEQYI37o1bB/muPbzMYpS499wJuOKbwJ90y9Q+BiaDXhK49fnYVfEwRUZGp1Seri7nVa4pTgn9/mwYFU3kMqjbXrVuMidSUq7mWpxd1Cj+MYLAzpu/N+LArjrJ3Ae+NyuCKTUwgTpA70Rn3lR3MH/QPsFc/eu2NgQ5A3WGdPSgP2qhjK1HAgcHTaMsfzAiUP3lYZesD3OA3enUuLah4qcYrA3dQxBGy7p5bvHxJP0YyDUmIAIgdi0Kp7hKRuhgydHVLDkFPrFXgyJRHu+hd6eR4/JEZOfXPzzgAVtrv14q81Q2Z9LKon+nfSWS1yt9DwaQEhjP3LWzERyqUKVqhwteJhNhrKgOXYUosO49BCuQN4BGoK4gU8s1msQOJtRNlmv1JhaQaRxSSbLXMKXQFrsdJyFbMMYJJhhdfOFK0MGcv+zS86eIb/UkCDTbydIgxjykx5oig7evYoJXiAhCbl5B1e4xD+D+0jaLQnY+FoOBukwVOzckb5CxNlhEF4EVdF9/hmwC025VFe3t90Mdf7Q5o+WnsfZ3YTXbGhT4rwqtYOibDMyWZOx1JYNkGb7F9suDkPJyM0xqrkPU09pH8apcpWcw==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR21MB1593.namprd21.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(66946007)(9686003)(76116006)(10290500003)(83380400001)(6506007)(86362001)(66476007)(33656002)(71200400001)(82960400001)(122000001)(8936002)(508600001)(82950400001)(5660300002)(54906003)(66556008)(110136005)(7406005)(316002)(66446008)(4326008)(64756008)(52536014)(7696005)(55016003)(8676002)(30864003)(7416002)(26005)(921005)(2906002)(186003)(8990500004)(38070700005)(38100700002)(20210929001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?/OsyLH6Ky6hjl6tVEfesjr8Gg8NZvRYJeTnmLoquMniwyRFP47ad2nIReqnv?=
 =?us-ascii?Q?hEUImw5afN2QKZiwW3kPBbJb147u5j9Eor4rLCYzMRzlwgiF8ih7xnZyks1i?=
 =?us-ascii?Q?BtS+eFsI2dXa4nM2Wd2vcCjmXAN6+WTK8hOTlmqzw9y8Z5U+BhrN0KjXCcKa?=
 =?us-ascii?Q?M6/snITqCb5QMtXabj9L9uwwkFjb56CpXX6c+gzFqzhnpc36hYzSe6NEbtb8?=
 =?us-ascii?Q?bU4/EEU1OHWVKv0kPjX4/Sajpr79DPDSjYrAO75Ya4HSIYH7TVz8VN9LBEgV?=
 =?us-ascii?Q?PnVYqyPELR4OWh6JQ1bPsK4kj6rR9sTXVKtcsx5l5mfpLInBTM49T7m95iY3?=
 =?us-ascii?Q?yr4yUfT0pPaE5hvX2ooRFWNCwOjuf3HAYeRDNDxg+cs5ZjqhOTjU/E+jJBdg?=
 =?us-ascii?Q?fJJaIbOgApi9/Kp4KIMES25bm9b8mLCF0HgSPJTuIZnHchOYDpQIegwOWZgm?=
 =?us-ascii?Q?xF5pZbSVl3rUfOQDW6HDxfvNrze/S8bngSTTS0K36o8z/HvAp6tbaQ87NCwI?=
 =?us-ascii?Q?8uc5KCnVa0OAAJwjm24H/w5afEq6498S1ld95NNZtMJcXxVseS1eczWDPfy0?=
 =?us-ascii?Q?bQO9BQtU/kDKwbPPISouqdxYkAb/PTHANFBbtJBhPFsVWtDTDE08IGyFxSeQ?=
 =?us-ascii?Q?j7Vg4eZl1HNhaRqha7SXs6oEx9VYYO3+qLfpHloog6/+Jvye6mFJ3NjUaSkI?=
 =?us-ascii?Q?gg/5z/feAzB/4Cv9t1EXEY9aVC+6YxcTJFnoyl+xu3kaAIUCtn3+x5EwSxSh?=
 =?us-ascii?Q?rUvqZuES+Cib7ku6321gzh9J9Ls7n/TxmC+ouil8jRzNNALY/QabISg3xWi6?=
 =?us-ascii?Q?UG/+2a9QpnQOGwRxW2+oHudHoLgJM5JfYbwPYJuC6LQrfVFlAZ3uvBPdOP0j?=
 =?us-ascii?Q?e8jTDHItSqCUxzrQFaPPb5/dd8cIulxZHKtuGzQy8Dhv6n0Jb4R3MU0Hhxsf?=
 =?us-ascii?Q?mTbjENjL93KTdgMkEAZJjlSjZfuCLwhZCLOnEyTLJ7jbK3G9I8+GjvsvACPc?=
 =?us-ascii?Q?W/OR2QrpocuTm6ElpH/uYtn03J6tgr87M1XWB8Akv057U/jyHydJh3/Qdv8h?=
 =?us-ascii?Q?vISQmm+jwYcRVO41ihFZv3YQeakicq3XB5GShwNi6ZDJRfCJHy3emho/Loaj?=
 =?us-ascii?Q?TMGe4+qrdgvEpU1nu1y9lQIrZAyt8CNDHyouHYYdktHxhYaN7AsB6pEgpTOF?=
 =?us-ascii?Q?mCZmOlDVG1pO/0AL7mhOmuGKv8l2pDK3zUoxG+a45U2aiSEkcI94SXAUfjlg?=
 =?us-ascii?Q?16ZNjwlMOj9QDxw+lE0ULJNYtTsAhqUhlmyHnjgJQqM6qm7ZFXnvCKYNVf7a?=
 =?us-ascii?Q?sS6CJ5QbjFZNPUL/CVM6n2ZBr/XAMQT8NViLqeBEQLtp26lYqyj9mHajwpRK?=
 =?us-ascii?Q?rVj30q5SD1xCN4iFdvh2TS9dRRoAAwWyQYKObfvJmOpsX6ndteAt0XfK5502?=
 =?us-ascii?Q?GuQcrak/P65SrsPfS9bweGuBe6U7eRt9uwROrVZD1d/s8y3xHoKLwT9hfChh?=
 =?us-ascii?Q?ji2yMpmDkB/CKltZgmFAuO9I+bfShyCM3KxRJnwQDREjvs8/F9dXATAiHzDu?=
 =?us-ascii?Q?762R3OOlZa8SxRwdRSUz8zEKCyW/AEo2H5gJQ3oAg2RGOer8NT+O2s4VsOTU?=
 =?us-ascii?Q?AK7XsHqOaegFiS1sl2vd7yEozgmsgDA318zKJ5QZ4iqcBXJoBEty98Iosh7z?=
 =?us-ascii?Q?lsX6Wg=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MWHPR21MB1593.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ff17ca19-2b73-421c-fb36-08d9aeaa7cf8
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 17:55:51.2821
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: PuCxbiXSUPbQr2heZYAk+MiZ8yTShrrK0gL9Ud6n513pPB0u+WOIFgfV/NuAwR+gOOVgd2Ns0lQC/JhQn+zxH++s/lS/XF5fHfoibKUKrGc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0765

From: Tianyu Lan <ltykernel@gmail.com> Sent: Tuesday, November 23, 2021 6:3=
1 AM
>=20
> In Isolation VM, all shared memory with host needs to mark visible
> to host via hvcall. vmbus_establish_gpadl() has already done it for
> netvsc rx/tx ring buffer. The page buffer used by vmbus_sendpacket_
> pagebuffer() stills need to be handled. Use DMA API to map/umap
> these memory during sending/receiving packet and Hyper-V swiotlb
> bounce buffer dma address will be returned. The swiotlb bounce buffer
> has been masked to be visible to host during boot up.
>=20
> Allocate rx/tx ring buffer via dma_alloc_noncontiguous() in Isolation
> VM. After calling vmbus_establish_gpadl() which marks these pages visible
> to host, map these pages unencrypted addes space via dma_vmap_noncontiguo=
us().
>=20
> Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
> ---
>  drivers/net/hyperv/hyperv_net.h   |   5 +
>  drivers/net/hyperv/netvsc.c       | 192 +++++++++++++++++++++++++++---
>  drivers/net/hyperv/rndis_filter.c |   2 +
>  include/linux/hyperv.h            |   6 +
>  4 files changed, 190 insertions(+), 15 deletions(-)
>=20
> diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_=
net.h
> index 315278a7cf88..31c77a00d01e 100644
> --- a/drivers/net/hyperv/hyperv_net.h
> +++ b/drivers/net/hyperv/hyperv_net.h
> @@ -164,6 +164,7 @@ struct hv_netvsc_packet {
>  	u32 total_bytes;
>  	u32 send_buf_index;
>  	u32 total_data_buflen;
> +	struct hv_dma_range *dma_range;
>  };
>=20
>  #define NETVSC_HASH_KEYLEN 40
> @@ -1074,6 +1075,7 @@ struct netvsc_device {
>=20
>  	/* Receive buffer allocated by us but manages by NetVSP */
>  	void *recv_buf;
> +	struct sg_table *recv_sgt;
>  	u32 recv_buf_size; /* allocated bytes */
>  	struct vmbus_gpadl recv_buf_gpadl_handle;
>  	u32 recv_section_cnt;
> @@ -1082,6 +1084,7 @@ struct netvsc_device {
>=20
>  	/* Send buffer allocated by us */
>  	void *send_buf;
> +	struct sg_table *send_sgt;
>  	u32 send_buf_size;
>  	struct vmbus_gpadl send_buf_gpadl_handle;
>  	u32 send_section_cnt;
> @@ -1731,4 +1734,6 @@ struct rndis_message {
>  #define RETRY_US_HI	10000
>  #define RETRY_MAX	2000	/* >10 sec */
>=20
> +void netvsc_dma_unmap(struct hv_device *hv_dev,
> +		      struct hv_netvsc_packet *packet);
>  #endif /* _HYPERV_NET_H */
> diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
> index 396bc1c204e6..9cdc71930830 100644
> --- a/drivers/net/hyperv/netvsc.c
> +++ b/drivers/net/hyperv/netvsc.c
> @@ -20,6 +20,7 @@
>  #include <linux/vmalloc.h>
>  #include <linux/rtnetlink.h>
>  #include <linux/prefetch.h>
> +#include <linux/gfp.h>
>=20
>  #include <asm/sync_bitops.h>
>  #include <asm/mshyperv.h>
> @@ -146,15 +147,39 @@ static struct netvsc_device *alloc_net_device(void)
>  	return net_device;
>  }
>=20
> +static struct hv_device *netvsc_channel_to_device(struct vmbus_channel *=
channel)
> +{
> +	struct vmbus_channel *primary =3D channel->primary_channel;
> +
> +	return primary ? primary->device_obj : channel->device_obj;
> +}
> +
>  static void free_netvsc_device(struct rcu_head *head)
>  {
>  	struct netvsc_device *nvdev
>  		=3D container_of(head, struct netvsc_device, rcu);
> +	struct hv_device *dev =3D
> +		netvsc_channel_to_device(nvdev->chan_table[0].channel);
>  	int i;
>=20
>  	kfree(nvdev->extension);
> -	vfree(nvdev->recv_buf);
> -	vfree(nvdev->send_buf);
> +
> +	if (nvdev->recv_sgt) {
> +		dma_vunmap_noncontiguous(&dev->device, nvdev->recv_buf);
> +		dma_free_noncontiguous(&dev->device, nvdev->recv_buf_size,
> +				       nvdev->recv_sgt, DMA_FROM_DEVICE);
> +	} else {
> +		vfree(nvdev->recv_buf);
> +	}
> +
> +	if (nvdev->send_sgt) {
> +		dma_vunmap_noncontiguous(&dev->device, nvdev->send_buf);
> +		dma_free_noncontiguous(&dev->device, nvdev->send_buf_size,
> +				       nvdev->send_sgt, DMA_TO_DEVICE);
> +	} else {
> +		vfree(nvdev->send_buf);
> +	}
> +
>  	kfree(nvdev->send_section_map);
>=20
>  	for (i =3D 0; i < VRSS_CHANNEL_MAX; i++) {
> @@ -348,7 +373,21 @@ static int netvsc_init_buf(struct hv_device *device,
>  		buf_size =3D min_t(unsigned int, buf_size,
>  				 NETVSC_RECEIVE_BUFFER_SIZE_LEGACY);
>=20
> -	net_device->recv_buf =3D vzalloc(buf_size);
> +	if (hv_isolation_type_snp()) {
> +		net_device->recv_sgt =3D
> +			dma_alloc_noncontiguous(&device->device, buf_size,
> +						DMA_FROM_DEVICE, GFP_KERNEL, 0);
> +		if (!net_device->recv_sgt) {
> +			pr_err("Fail to allocate recv buffer buf_size %d.\n.", buf_size);
> +			ret =3D -ENOMEM;
> +			goto cleanup;
> +		}
> +
> +		net_device->recv_buf =3D (void *)net_device->recv_sgt->sgl->dma_addres=
s;

Use sg_dma_address() macro.

> +	} else {
> +		net_device->recv_buf =3D vzalloc(buf_size);
> +	}
> +
>  	if (!net_device->recv_buf) {
>  		netdev_err(ndev,
>  			   "unable to allocate receive buffer of size %u\n",
> @@ -357,8 +396,6 @@ static int netvsc_init_buf(struct hv_device *device,
>  		goto cleanup;
>  	}
>=20
> -	net_device->recv_buf_size =3D buf_size;
> -
>  	/*
>  	 * Establish the gpadl handle for this buffer on this
>  	 * channel.  Note: This call uses the vmbus connection rather
> @@ -373,6 +410,19 @@ static int netvsc_init_buf(struct hv_device *device,
>  		goto cleanup;
>  	}
>=20
> +	if (net_device->recv_sgt) {
> +		net_device->recv_buf =3D
> +			dma_vmap_noncontiguous(&device->device, buf_size,
> +					       net_device->recv_sgt);
> +		if (!net_device->recv_buf) {
> +			pr_err("Fail to vmap recv buffer.\n");
> +			ret =3D -ENOMEM;
> +			goto cleanup;
> +		}
> +	}
> +
> +	net_device->recv_buf_size =3D buf_size;
> +
>  	/* Notify the NetVsp of the gpadl handle */
>  	init_packet =3D &net_device->channel_init_pkt;
>  	memset(init_packet, 0, sizeof(struct nvsp_message));
> @@ -454,14 +504,27 @@ static int netvsc_init_buf(struct hv_device *device=
,
>  	buf_size =3D device_info->send_sections * device_info->send_section_siz=
e;
>  	buf_size =3D round_up(buf_size, PAGE_SIZE);
>=20
> -	net_device->send_buf =3D vzalloc(buf_size);
> +	if (hv_isolation_type_snp()) {
> +		net_device->send_sgt =3D
> +			dma_alloc_noncontiguous(&device->device, buf_size,
> +						DMA_TO_DEVICE, GFP_KERNEL, 0);
> +		if (!net_device->send_sgt) {
> +			pr_err("Fail to allocate send buffer buf_size %d.\n.", buf_size);
> +			ret =3D -ENOMEM;
> +			goto cleanup;
> +		}
> +
> +		net_device->send_buf =3D (void *)net_device->send_sgt->sgl->dma_addres=
s;

Use sg_dma_address() macro.

> +	} else {
> +		net_device->send_buf =3D vzalloc(buf_size);
> +	}
> +
>  	if (!net_device->send_buf) {
>  		netdev_err(ndev, "unable to allocate send buffer of size %u\n",
>  			   buf_size);
>  		ret =3D -ENOMEM;
>  		goto cleanup;
>  	}
> -	net_device->send_buf_size =3D buf_size;
>=20
>  	/* Establish the gpadl handle for this buffer on this
>  	 * channel.  Note: This call uses the vmbus connection rather
> @@ -476,6 +539,19 @@ static int netvsc_init_buf(struct hv_device *device,
>  		goto cleanup;
>  	}
>=20
> +	if (net_device->send_sgt) {
> +		net_device->send_buf =3D
> +			dma_vmap_noncontiguous(&device->device, buf_size,
> +					       net_device->send_sgt);
> +		if (!net_device->send_buf) {
> +			pr_err("Fail to vmap send buffer.\n");
> +			ret =3D -ENOMEM;
> +			goto cleanup;
> +		}
> +	}
> +
> +	net_device->send_buf_size =3D buf_size;
> +
>  	/* Notify the NetVsp of the gpadl handle */
>  	init_packet =3D &net_device->channel_init_pkt;
>  	memset(init_packet, 0, sizeof(struct nvsp_message));
> @@ -766,7 +842,7 @@ static void netvsc_send_tx_complete(struct net_device=
 *ndev,
>=20
>  	/* Notify the layer above us */
>  	if (likely(skb)) {
> -		const struct hv_netvsc_packet *packet
> +		struct hv_netvsc_packet *packet
>  			=3D (struct hv_netvsc_packet *)skb->cb;
>  		u32 send_index =3D packet->send_buf_index;
>  		struct netvsc_stats *tx_stats;
> @@ -782,6 +858,7 @@ static void netvsc_send_tx_complete(struct net_device=
 *ndev,
>  		tx_stats->bytes +=3D packet->total_bytes;
>  		u64_stats_update_end(&tx_stats->syncp);
>=20
> +		netvsc_dma_unmap(ndev_ctx->device_ctx, packet);
>  		napi_consume_skb(skb, budget);
>  	}
>=20
> @@ -946,6 +1023,87 @@ static void netvsc_copy_to_send_buf(struct netvsc_d=
evice *net_device,
>  		memset(dest, 0, padding);
>  }
>=20
> +void netvsc_dma_unmap(struct hv_device *hv_dev,
> +		      struct hv_netvsc_packet *packet)
> +{
> +	u32 page_count =3D packet->cp_partial ?
> +		packet->page_buf_cnt - packet->rmsg_pgcnt :
> +		packet->page_buf_cnt;
> +	int i;
> +
> +	if (!hv_is_isolation_supported())
> +		return;
> +
> +	if (!packet->dma_range)
> +		return;
> +
> +	for (i =3D 0; i < page_count; i++)
> +		dma_unmap_single(&hv_dev->device, packet->dma_range[i].dma,
> +				 packet->dma_range[i].mapping_size,
> +				 DMA_TO_DEVICE);
> +
> +	kfree(packet->dma_range);
> +}
> +
> +/* netvsc_dma_map - Map swiotlb bounce buffer with data page of
> + * packet sent by vmbus_sendpacket_pagebuffer() in the Isolation
> + * VM.
> + *
> + * In isolation VM, netvsc send buffer has been marked visible to
> + * host and so the data copied to send buffer doesn't need to use
> + * bounce buffer. The data pages handled by vmbus_sendpacket_pagebuffer(=
)
> + * may not be copied to send buffer and so these pages need to be
> + * mapped with swiotlb bounce buffer. netvsc_dma_map() is to do
> + * that. The pfns in the struct hv_page_buffer need to be converted
> + * to bounce buffer's pfn. The loop here is necessary because the
> + * entries in the page buffer array are not necessarily full
> + * pages of data.  Each entry in the array has a separate offset and
> + * len that may be non-zero, even for entries in the middle of the
> + * array.  And the entries are not physically contiguous.  So each
> + * entry must be individually mapped rather than as a contiguous unit.
> + * So not use dma_map_sg() here.
> + */
> +static int netvsc_dma_map(struct hv_device *hv_dev,
> +			  struct hv_netvsc_packet *packet,
> +			  struct hv_page_buffer *pb)
> +{
> +	u32 page_count =3D  packet->cp_partial ?
> +		packet->page_buf_cnt - packet->rmsg_pgcnt :
> +		packet->page_buf_cnt;
> +	dma_addr_t dma;
> +	int i;
> +
> +	if (!hv_is_isolation_supported())
> +		return 0;
> +
> +	packet->dma_range =3D kcalloc(page_count,
> +				    sizeof(*packet->dma_range),
> +				    GFP_KERNEL);
> +	if (!packet->dma_range)
> +		return -ENOMEM;
> +
> +	for (i =3D 0; i < page_count; i++) {
> +		char *src =3D phys_to_virt((pb[i].pfn << HV_HYP_PAGE_SHIFT)
> +					 + pb[i].offset);
> +		u32 len =3D pb[i].len;
> +
> +		dma =3D dma_map_single(&hv_dev->device, src, len,
> +				     DMA_TO_DEVICE);
> +		if (dma_mapping_error(&hv_dev->device, dma)) {
> +			kfree(packet->dma_range);
> +			return -ENOMEM;
> +		}
> +
> +		packet->dma_range[i].dma =3D dma;
> +		packet->dma_range[i].mapping_size =3D len;
> +		pb[i].pfn =3D dma >> HV_HYP_PAGE_SHIFT;
> +		pb[i].offset =3D offset_in_hvpage(dma);
> +		pb[i].len =3D len;

As noted in comments on an earlier version of this patch, the
pb[i].len and .offset fields should not be changed by doing
dma_map_single().  So there's no need to set them again here.  Adding
a comment to that effect might be good.

> +	}
> +
> +	return 0;
> +}
> +
>  static inline int netvsc_send_pkt(
>  	struct hv_device *device,
>  	struct hv_netvsc_packet *packet,
> @@ -986,14 +1144,24 @@ static inline int netvsc_send_pkt(
>=20
>  	trace_nvsp_send_pkt(ndev, out_channel, rpkt);
>=20
> +	packet->dma_range =3D NULL;
>  	if (packet->page_buf_cnt) {
>  		if (packet->cp_partial)
>  			pb +=3D packet->rmsg_pgcnt;
>=20
> +		ret =3D netvsc_dma_map(ndev_ctx->device_ctx, packet, pb);
> +		if (ret) {
> +			ret =3D -EAGAIN;
> +			goto exit;
> +		}
> +
>  		ret =3D vmbus_sendpacket_pagebuffer(out_channel,
>  						  pb, packet->page_buf_cnt,
>  						  &nvmsg, sizeof(nvmsg),
>  						  req_id);
> +
> +		if (ret)
> +			netvsc_dma_unmap(ndev_ctx->device_ctx, packet);
>  	} else {
>  		ret =3D vmbus_sendpacket(out_channel,
>  				       &nvmsg, sizeof(nvmsg),
> @@ -1001,6 +1169,7 @@ static inline int netvsc_send_pkt(
>  				       VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
>  	}
>=20
> +exit:
>  	if (ret =3D=3D 0) {
>  		atomic_inc_return(&nvchan->queue_sends);
>=20
> @@ -1515,13 +1684,6 @@ static int netvsc_process_raw_pkt(struct hv_device=
 *device,
>  	return 0;
>  }
>=20
> -static struct hv_device *netvsc_channel_to_device(struct vmbus_channel *=
channel)
> -{
> -	struct vmbus_channel *primary =3D channel->primary_channel;
> -
> -	return primary ? primary->device_obj : channel->device_obj;
> -}
> -
>  /* Network processing softirq
>   * Process data in incoming ring buffer from host
>   * Stops when ring is empty or budget is met or exceeded.
> diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis=
_filter.c
> index f6c9c2a670f9..448fcc325ed7 100644
> --- a/drivers/net/hyperv/rndis_filter.c
> +++ b/drivers/net/hyperv/rndis_filter.c
> @@ -361,6 +361,8 @@ static void rndis_filter_receive_response(struct net_=
device *ndev,
>  			}
>  		}
>=20
> +		netvsc_dma_unmap(((struct net_device_context *)
> +			netdev_priv(ndev))->device_ctx, &request->pkt);
>  		complete(&request->wait_event);
>  	} else {
>  		netdev_err(ndev,
> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
> index 4d44fb3b3f1c..8882e46d1070 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -25,6 +25,7 @@
>  #include <linux/interrupt.h>
>  #include <linux/reciprocal_div.h>
>  #include <asm/hyperv-tlfs.h>
> +#include <linux/dma-map-ops.h>
>=20
>  #define MAX_PAGE_BUFFER_COUNT				32
>  #define MAX_MULTIPAGE_BUFFER_COUNT			32 /* 128K */
> @@ -1583,6 +1584,11 @@ struct hyperv_service_callback {
>  	void (*callback)(void *context);
>  };
>=20
> +struct hv_dma_range {
> +	dma_addr_t dma;
> +	u32 mapping_size;
> +};
> +
>  #define MAX_SRV_VER	0x7ffffff
>  extern bool vmbus_prep_negotiate_resp(struct icmsg_hdr *icmsghdrp, u8 *b=
uf, u32 buflen,
>  				const int *fw_version, int fw_vercnt,
> --
> 2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 20:40:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 20:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229939.397532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpcaT-0002mn-TH; Tue, 23 Nov 2021 20:40:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229939.397532; Tue, 23 Nov 2021 20:40:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpcaT-0002mg-Pv; Tue, 23 Nov 2021 20:40:21 +0000
Received: by outflank-mailman (input) for mailman id 229939;
 Tue, 23 Nov 2021 20:40:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vuhE=QK=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mpcaS-0002ma-Tg
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 20:40:21 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9146d1c8-4c9d-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 21:40:18 +0100 (CET)
Received: from pps.filterd (m0246629.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1ANJXv93004389; 
 Tue, 23 Nov 2021 20:39:50 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cg305bs3s-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 23 Nov 2021 20:39:50 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1ANKQmJ1148028;
 Tue, 23 Nov 2021 20:39:48 GMT
Received: from nam11-co1-obe.outbound.protection.outlook.com
 (mail-co1nam11lp2172.outbound.protection.outlook.com [104.47.56.172])
 by aserp3030.oracle.com with ESMTP id 3ceq2evfq2-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 23 Nov 2021 20:39:48 +0000
Received: from BN0PR10MB5014.namprd10.prod.outlook.com (2603:10b6:408:115::5)
 by BN0PR10MB5302.namprd10.prod.outlook.com (2603:10b6:408:117::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 20:39:46 +0000
Received: from BN0PR10MB5014.namprd10.prod.outlook.com
 ([fe80::40b1:8e73:d851:6dc9]) by BN0PR10MB5014.namprd10.prod.outlook.com
 ([fe80::40b1:8e73:d851:6dc9%3]) with mapi id 15.20.4713.025; Tue, 23 Nov 2021
 20:39:46 +0000
Received: from [10.74.107.95] (138.3.200.31) by
 SA0PR11CA0037.namprd11.prod.outlook.com (2603:10b6:806:d0::12) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.24 via Frontend Transport; Tue, 23 Nov 2021 20:39:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9146d1c8-4c9d-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=wbd07SskJyfq9lGZee2wDVPsRPNPFK9VMcymRcUeS1I=;
 b=K1tlQYrkFD9/betcFf2F7XhCmGfWOhrp+5+IW3RdP+rjMAc0Ri6kwy/WFI5D7QB+9+Wy
 2/l8QAdbc3qlZ14ZPdTc2XquanS8XJvbyXUUhvVacqpNan23SWU7OtRpV4sBH4NwEfwt
 62tyPO7RmScTBc5VifE3QKYXVh+sfK4CPDdMz83EWi1q/8IeBoWb47hWqPiIRKLy/JTh
 cJWXK2KAGA/FbUzsYg0f4DS6JXYNvilnRskNN+4if/LgwOnWp4Y5EcCd7tVMopulVlJJ
 dttlugqKMvaFur8cmtuhC0RDuqfsJT2NZgwpAqm7JJ+bf0BcfwzpcaPeFXrCDNCBEU2e 8Q== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dD3ZFd0TBCOWTFh+5hDRtp47hRvAlZXrzOdUp7JFhKBnmBU6qduCI2f0az3LWn7P/TMlKqimXSnlbg55c6ntNp+WIEvNMI/pRaALwxEwpUd8J3WoUlXcw3Z5rXHomFAZ3E5qmXFhCYxJULskKrJxRPkkr9n5Bz3Ma8DIm/1z6hs+V/odVBNJZvXGVg8mZaF2Wd6YLDYddvvGuXyUTON+1XHlNitscjKmaqivMW9infmzS1ioZ2lJMW4o0bN2dRnFG2mUrVDAr0VtXS34tpWD7gvJlgxNRMivv+xWG8I/9DAcdZ9YyWeLs3NMrN9NkZu2pvdHWweYbKVqNgc1AwbLng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wbd07SskJyfq9lGZee2wDVPsRPNPFK9VMcymRcUeS1I=;
 b=CdO+vuSYsRZh42bNQLBkLdim2O/p07rVuP2VQPimf1ZZ7yxVRMeno1J5gt7LGJpEsDhN3fA3/L42WyxFq/Xh100FYfkB2XrVG3z3DVEy+SjIFtXcO87QzHRHK72IrrtNYgD2VreziJ5To6YXN770SomzQ+CZOlsBK2ef54Qy88aGjaVWWdx84OYdmIDn1uRIRNU6WwHhA0PdcEGcxtKusXz9DgbWH2FjERhRhn1i3yoQDf4jlrDx7d8pJhE4AmCoqkk4WQSH9qExkI7dvUfRO7uRnjBM/lDATnulmUQ8UKt4l2IsBYSZFpuut42VOA7G264ZNSQy82PoSkXOPY9OqQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wbd07SskJyfq9lGZee2wDVPsRPNPFK9VMcymRcUeS1I=;
 b=AkbGmKktl4DLOxSvUWl16L0FRGwUfsmQZFtUyyHIpgU7j56zNzWLVfO4wxp0meW+iain0+Dk0DwhJV1wa1VgqWWJbr3yyD5YYA9w3T6X6j2TgEtBEFau5FTC3W14yKLmXHDjjN98R4RVcXAxptmUG0mINTzRg+et75JDnSBFu/g=
Message-ID: <07b650a8-7ede-3716-2e35-b0d4f94802cd@oracle.com>
Date: Tue, 23 Nov 2021 15:39:39 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH 0/5] xen: cleanup detection of non-essential pv devices
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
        dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org,
        linuxppc-dev@lists.ozlabs.org
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
        David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Jiri Slaby <jirislaby@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
        Takashi Iwai <tiwai@suse.com>, alsa-devel@alsa-project.org
References: <20211022064800.14978-1-jgross@suse.com>
 <bf5a4749-0216-53db-a022-ef4f84d823c5@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <bf5a4749-0216-53db-a022-ef4f84d823c5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SA0PR11CA0037.namprd11.prod.outlook.com
 (2603:10b6:806:d0::12) To BN0PR10MB5014.namprd10.prod.outlook.com
 (2603:10b6:408:115::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c079e34f-f15a-41dc-7975-08d9aec16307
X-MS-TrafficTypeDiagnostic: BN0PR10MB5302:
X-Microsoft-Antispam-PRVS: 
	<BN0PR10MB530297E3D1AC49C4C7BAD6E38A609@BN0PR10MB5302.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4941;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	UtmrreEWfLEixJIs71qdTO9z8BuD+G78109jS2832F+Igll9XQqsssMeM/AJbjeEX/Daxv60kjR219VSuvTJjSFmV6p5pKKE3Kt8bs1FsOX+SVEKJt35mGhIgXV7XHmM3ByST+f3xxJeyTBP6Wwnd3AQcJ9vby1CKP502LkopHtubkSjSO3LaRetTaKYMPxzYlDzgqMQomnIqLh38Yb3zFOD0LfLAYQrmCai3fWXWCWWLUk/eeALl+HArgnFphjW6Eomcj+UKnAiMVo95i84XBobgalkFzc7lWh1MPkpbK1QECbRop8DqiJ3LEE0HB5feg4laPemv8MUU/+LfwYBoNgdpeDIOnT2leakZpiS0rrqKK11DnnMaQEArvc0LQoIxdeX8z4N2xZVwW4YIxv5grTD4Zh4+2uHZxACyKmwRz5/fJVjozbCWEqo7CIWw54TOaIOxD60Sz22FMRPOAh319eYg/lV86mbIVWsWd7kJ48S0K0hNcDb5CU+5Fu4Izyz5QIaNfNSA5gyAmKT+2m5JMr68cLJ0PPxmyX7ggc63TAE2JQ1Q4jNxv97rulEBGeF8a4POAdyQuQS2kFq42AqWoz8ftsgQh4UfSTiRAo4t3MERHPEFubW0rnHYz80WgFZ4WRkGhKZSw2RqR0fFnfQ1a1fx8gi4W2ZEHN+6RgsK87pCawo93FTogQP/fQcbhSFwvWe93RRNiC6XkZbaVJHs2rw0LEqgAtD5zE9xMwM6/E=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR10MB5014.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(54906003)(16576012)(2906002)(316002)(26005)(38100700002)(7416002)(2616005)(66556008)(83380400001)(66946007)(66476007)(956004)(44832011)(6666004)(8936002)(6486002)(508600001)(4326008)(8676002)(31686004)(53546011)(5660300002)(31696002)(86362001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?WjNHdUVucE95NFVFcFlUYm1wNncwbis4c2hXSngweGF4UlNwd0ZxRzRxaVJ6?=
 =?utf-8?B?MzZlQWxaVU11ZU5wN1JONnVkNnVTYUlQMEUvanhFYVFZNW81Rkd3ZHJxdzdv?=
 =?utf-8?B?d2pHSmZEV2s4aHBxYWkzUFVrQXN0SkcreU9HRmNETTZ6bnpDVlVpNXZ4bHBa?=
 =?utf-8?B?VllsWWZFdk5aTEtyamo1TnNOQk5wZStiTHVSaE1GRElJMWcwT2IyakxzaUtn?=
 =?utf-8?B?OTRNTHJ0RG0zMWh5eWRta2RHSEczbUw2ZThHenZYUTQrZWp6WEVKcEZpV1Zo?=
 =?utf-8?B?eFV6c0pLV211UXBzQUlNSlFaR09JS05aL0Q0ZkFpMmVoQXk5a2NqYVRjNm1s?=
 =?utf-8?B?Yi9HMERpNHorT2REL284b0ZwS0FhQ25maHRtci9UN0NCY0dnSUswem9pNW5T?=
 =?utf-8?B?amVJRlpqYXdNYitTQmNnYlhwZnNTNVgvUHhTcXNTRzRjOTJEdlQ5Rnh6L0F3?=
 =?utf-8?B?SjM3VzlkaGFmTlRHTlVpaThEMUtFVGNkK2NEUEN6RGh3QmhBbzVYY1NabEQ3?=
 =?utf-8?B?eUJFRjAyL0pkMnYzMW9RR0x3SCtIRmpxVVI1MHg2ZDllNW5mTndqMzQrNVgx?=
 =?utf-8?B?bGZmdWhiVFo3dVRKcmtKcmJndlFkWW9aOEhYWEFHYzh5d0hoVFNOUjNhWVNq?=
 =?utf-8?B?b3E1eWc4TElKcFdpbDFDZXppSGM3L29PSy9qa0YwcmEzV2h4RlVmK3ptYk1I?=
 =?utf-8?B?YldsVmlMVTZWZVBvL0RUZHdtMmJYUndQS0tibEpraGR0YVlpYWw2bGloTlNo?=
 =?utf-8?B?WFhRTnVMdlJYNnNlT1dOTDludmp5cDV3RDc1cmo4emF2ZVRISnp5VFp5d1cz?=
 =?utf-8?B?d2hkQzVDVG1PeUN5Q3RtMnJkenVpcEN5RUVlWHZIQ1VoaVAyNTZWeDJyWkEw?=
 =?utf-8?B?Qkg5YkJPL3Y2ODg0YXdLVW1NTFdGZlJkMW16LzhScjZPTjhPbHpQUW50NVE5?=
 =?utf-8?B?aXZiUnpHUktnQWM4YzZOMGZ2cUdpQVhhQ2VoaEoyaExjQkdYRnFnVFp1ZnVG?=
 =?utf-8?B?dkh6S0c1WnpBSCs5MDBlTlZUbjNhRG9paXlFOGF0dWdWcHlZWHpHeEJOVEZF?=
 =?utf-8?B?UGVsTTZjOGptK3MvNSt1WU9pb2MraTQvMnltem54NThFbGlhcWZ2cW9OTTg5?=
 =?utf-8?B?TUtEaTVXUUJHWTBvc0ZEMmZqNUxDSGJuSzVVekVLek9zajMwTnQrYWk4S2ZQ?=
 =?utf-8?B?cjY5YmEwRVlHS3hyQStkd00reEc1WEFMMlFnT0lpRFZGdVVpS2hsMEtRUG5l?=
 =?utf-8?B?RlNuZ05qdE9SUUQ0Yi9hUmdEcTJNNUFKMzRuT05YRDRmM3lqV0pwdVcybnM2?=
 =?utf-8?B?OFRYbEl0Vit3anE5YjV3R3Myb0tNOE9ZM2YwK3FvTS9UWGVtZFRUZmQyb3Fh?=
 =?utf-8?B?MFVnV0RaRHpyb0xCQTBaY1hYeFFQNGpiNGg5dGlneFYzWUsreTk4QjZYRG1k?=
 =?utf-8?B?ZUVIcVFsZFNJN2NzcFBPcGcxUmdLbGNEdDg4eDVMNkU3Q2JiM0dtNkxCbXpS?=
 =?utf-8?B?d2o3ZFRIeDVlZkpHSFpjZEZZSjJJbXFEd1NMdXV1ZTZhNHdlRWEwcFhKMWw4?=
 =?utf-8?B?U04zSDRtQ0pKd2QzbzQzalNiVlFZNVlIRFdkNDd5ZFBzdHN6QmJtR2Y3RHht?=
 =?utf-8?B?UXhpbk02YlFoTFQ5RiszS3dHbEdYQkVCMmc0OUZPMVRJZXV5R3FFVzMzV2pt?=
 =?utf-8?B?bjd6SnR3dWsyOVZYYjcxdjFIZHIyNVV0V2kyL01SblZDeUNZYW1jcit2eng2?=
 =?utf-8?B?SVlnNWx2U1NhUTRmNkxTUmxHOG1BUDdaTG1Tcml5TDBmYy9rcmtMMGE3UnVF?=
 =?utf-8?B?RGsxanM0QWtlejZja0lsMWJFT3YxOU9zQjVtNW1IU2h0S3ZhYmREV2xOd2VQ?=
 =?utf-8?B?ZUFqUERTQkxIV0NmNmpsdEhjTjh2ZGl1V2RJVVBmRkFjS0VweVpNNnhTOW1X?=
 =?utf-8?B?UTBSUXcvOXpoM1I5YzRVV25CRUY5b2I5ZUNaVFppN1ZsMGNJV2Npay9MajVO?=
 =?utf-8?B?SjFZVldjV3dySnRjbmJuVW9wWUxudy9LWHhBNmxmKzIrT0VEMTJuc3EwWmFh?=
 =?utf-8?B?SHM3RlNJcHNVN2x1QlU3OEkzcXdTWkgxWG9GMGNpNjBxaVNFOWtzRFJpdE5r?=
 =?utf-8?B?b0dQSE91UnRuMmlNa1RONmQwRWc4SlcrSG4vVWNURHREWWtxZk9EdTQ1d1ND?=
 =?utf-8?B?NDNFcHE1dmxBOG4zZFFMK2p2S1ZxcjRIb1oyamgvcHF6dEZlVXh6Ry9oWlRz?=
 =?utf-8?Q?nLoQy1p7XsikijXTikqBhZh0ix9pP9keS0lztnCP2k=3D?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c079e34f-f15a-41dc-7975-08d9aec16307
X-MS-Exchange-CrossTenant-AuthSource: BN0PR10MB5014.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 20:39:46.6037
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xdBIO6cmWfp7QEOOqKSVjSaq4WkOJ27h7FylC2afgUY6xufGZ3ti3zya2xSQMeXCV5juS43RqHnADupJqUdEZfUTyWsCvggnL52dFzVcfUc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB5302
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10177 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 spamscore=0
 bulkscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111230100
X-Proofpoint-GUID: 0KfI6w_OY80QNNxMKpeQKcEIe64cjXie
X-Proofpoint-ORIG-GUID: 0KfI6w_OY80QNNxMKpeQKcEIe64cjXie


On 11/22/21 3:20 AM, Juergen Gross wrote:
> On 22.10.21 08:47, Juergen Gross wrote:
>> Today the non-essential pv devices are hard coded in the xenbus driver
>> and this list is lacking multiple entries.
>>
>> This series reworks the detection logic of non-essential devices by
>> adding a flag for that purpose to struct xenbus_driver.
>>
>> Juergen Gross (5):
>>    xen: add "not_essential" flag to struct xenbus_driver
>>    xen: flag xen_drm_front to be not essential for system boot
>>    xen: flag hvc_xen to be not essential for system boot
>>    xen: flag pvcalls-front to be not essential for system boot
>>    xen: flag xen_snd_front to be not essential for system boot
>>
>>   drivers/gpu/drm/xen/xen_drm_front.c        |  1 +
>>   drivers/input/misc/xen-kbdfront.c          |  1 +
>>   drivers/tty/hvc/hvc_xen.c                  |  1 +
>>   drivers/video/fbdev/xen-fbfront.c          |  1 +
>>   drivers/xen/pvcalls-front.c                |  1 +
>>   drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
>>   include/xen/xenbus.h                       |  1 +
>>   sound/xen/xen_snd_front.c                  |  1 +
>>   8 files changed, 10 insertions(+), 11 deletions(-)
>>
>
> Any further comments?
>

Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>


(I'll fix the semicolon typo in the last patch, no need to resend)



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 21:08:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 21:08:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229944.397544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpd1C-0005Ez-2h; Tue, 23 Nov 2021 21:07:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229944.397544; Tue, 23 Nov 2021 21:07:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpd1B-0005Es-Ud; Tue, 23 Nov 2021 21:07:57 +0000
Received: by outflank-mailman (input) for mailman id 229944;
 Tue, 23 Nov 2021 21:07:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=T9bO=QK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mpd1A-0005EW-89
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 21:07:56 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6baa330c-4ca1-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 22:07:54 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 6925D6023D;
 Tue, 23 Nov 2021 21:07:51 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6baa330c-4ca1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637701671;
	bh=fmNL3u7OnTxHOXgiEAfETI2VUP4gGL2FJ5fr15s9qbA=;
	h=From:To:Cc:Subject:Date:From;
	b=Rxsf9g172XeXrnTMElnISWoUxpvJaJP4/7s1u7MpinNCISK6oeUbHJW/lpgH8JGsB
	 puD4+oFyzmduElLopaiyTeolLisu1Xf48UOOd4Un7crdq7xpFMv57i1F0JviSNa/cZ
	 jcXfA0lzTIp+uyHcrihkikmb99s425RVXRl7DVQhONTi4A8d606fnVMK1Xr1srsjUQ
	 24+5RmfZXbOsHUaWs7Wi/yKoWYF0eePtcIGng1H8cU3Hgm+STQZLefqQwQUOisJ3Ro
	 PVh6ejIW8QkefCdwF19gP37QgiNPsfHFGc7TIbjDvT5LESWy4QMWr6vgzF/whZ+9pK
	 xlFCgZB5syF1Q==
From: Stefano Stabellini <sstabellini@kernel.org>
To: jgross@suse.com
Cc: boris.ostrovsky@oracle.com,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	sstabellini@kernel.org,
	jbeulich@suse.com,
	Stefano Stabellini <stefano.stabellini@xilinx.com>,
	stable@vger.kernel.org
Subject: [PATCH v4] xen: detect uninitialized xenbus in xenbus_init
Date: Tue, 23 Nov 2021 13:07:48 -0800
Message-Id: <20211123210748.1910236-1-sstabellini@kernel.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Stefano Stabellini <stefano.stabellini@xilinx.com>

If the xenstore page hasn't been allocated properly, reading the value
of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
error. Instead, it will succeed and return zero. Instead of attempting
to xen_remap a bad guest physical address, detect this condition and
return early.

Note that although a guest physical address of zero for
HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
and zero has never been validly used in that capacity.

Also recognize all bits set as an invalid value.

For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
above ULONG_MAX should never be passed by the Xen tools to HVM guests
anyway, so check for this condition and return early.

Cc: stable@vger.kernel.org
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
Changes in v4:
- say "all bits set" instead of INVALID_PFN
- improve check

Changes in v3:
- improve in-code comment
- improve check

Changes in v2:
- add check for ULLONG_MAX (unitialized)
- add check for ULONG_MAX #if BITS_PER_LONG == 32 (actual error)
- add pr_err error message

 drivers/xen/xenbus/xenbus_probe.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 94405bb3829e..251b26439733 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -951,6 +951,29 @@ static int __init xenbus_init(void)
 		err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
 		if (err)
 			goto out_error;
+		/*
+		 * Uninitialized hvm_params are zero and return no error.
+		 * Although it is theoretically possible to have
+		 * HVM_PARAM_STORE_PFN set to zero on purpose, in reality it is
+		 * not zero when valid. If zero, it means that Xenstore hasn't
+		 * been properly initialized. Instead of attempting to map a
+		 * wrong guest physical address return error.
+		 *
+		 * Also recognize all bits set as an invalid value.
+		 */
+		if (!v || !~v) {
+			err = -ENOENT;
+			goto out_error;
+		}
+		/* Avoid truncation on 32-bit. */
+#if BITS_PER_LONG == 32
+		if (v > ULONG_MAX) {
+			pr_err("%s: cannot handle HVM_PARAM_STORE_PFN=%llx > ULONG_MAX\n",
+			       __func__, v);
+			err = -EINVAL;
+			goto out_error;
+		}
+#endif
 		xen_store_gfn = (unsigned long)v;
 		xen_store_interface =
 			xen_remap(xen_store_gfn << XEN_PAGE_SHIFT,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 23 21:22:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 21:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229949.397555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpdFA-0007TV-AI; Tue, 23 Nov 2021 21:22:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229949.397555; Tue, 23 Nov 2021 21:22:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpdFA-0007TO-72; Tue, 23 Nov 2021 21:22:24 +0000
Received: by outflank-mailman (input) for mailman id 229949;
 Tue, 23 Nov 2021 21:22:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=umBG=QK=oracle.com=dongli.zhang@srs-se1.protection.inumbo.net>)
 id 1mpdF8-0007TI-VX
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 21:22:23 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7125fb73-4ca3-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 22:22:21 +0100 (CET)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1ANL0W5g026068; 
 Tue, 23 Nov 2021 21:21:56 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cg461m44m-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 23 Nov 2021 21:21:56 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1ANLAnRO133215;
 Tue, 23 Nov 2021 21:21:55 GMT
Received: from nam11-co1-obe.outbound.protection.outlook.com
 (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168])
 by aserp3030.oracle.com with ESMTP id 3ceq2ex0a2-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 23 Nov 2021 21:21:55 +0000
Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20)
 by BY5PR10MB3809.namprd10.prod.outlook.com (2603:10b6:a03:1fe::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Tue, 23 Nov
 2021 21:21:53 +0000
Received: from BYAPR10MB2663.namprd10.prod.outlook.com
 ([fe80::2848:63dc:b87:8021]) by BYAPR10MB2663.namprd10.prod.outlook.com
 ([fe80::2848:63dc:b87:8021%7]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 21:21:53 +0000
Received: from [IPv6:2606:b400:400:7444:8000::2e3] (2606:b400:8301:1010::16aa)
 by SN6PR05CA0017.namprd05.prod.outlook.com (2603:10b6:805:de::30) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.11 via Frontend
 Transport; Tue, 23 Nov 2021 21:21:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7125fb73-4ca3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc :
 references : from : message-id : date : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=LIceq5WzRvgQqKjbc37h3tDgHMOgW/UzY9hH6JfbNj8=;
 b=G4HW0jxPI4vix5nLyHinDleI2TV6r4ll7S9i+TYGeUHh3Z8AEno2mXn9DBrC08IuaFo+
 yG77N3FJ3smnNyB2Qg7+t4WRy5KkaHdLxxqJwehuCInqKFgi7yhfpf83zH9DMob1nBcP
 Pp5UcD0mKbHPQomoij+rlh2BPakMqJsNyo/I1VxV2APrx2jjhhj5mcOT3FFOo/f6CMyk
 a3biwTAlSiGYuB3oUZhm+iL8R7cSpF5T3xrntS8ODt1rmJKl5ucEY4DIX07E1DrViB4Z
 5HwHewIjg3a7ekIiiErXCegavNLWFSL2rNmct59CXujXkazeSA7jQzqCEazBSKDbg3so Mw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dWucHVsh6poSNmHpgUcklKYiMWZvvP13HJatw7Vsip1/iwX29QMXqc+vbBZ4gg4FxRz5B6U+izg2VDXJpKffRDIVQsirfvYJLZnKID4uRzL+HN8ZRaQoO3yKUs/8g7nujjzCCDDxZXaEFJ5aREqzlV+OnX9/WsteBPW5FypgONL1uCPR1zbbM3eTKaVy2ALjVMMp/6ephAQSaWkPo+DQqi4CHGdRxxLMuvef2N4PIPg78gvIr0bLcJNqri6LSOLWZ40oI6L3P+gEySYgPPtDGPfZXDHh0Fvnb+PIRcosV9egZrWgJIGFUuIuttG5kZUKYZmrBRQxCaO8grL9baDKRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LIceq5WzRvgQqKjbc37h3tDgHMOgW/UzY9hH6JfbNj8=;
 b=C0iMsMZUHgu1FWFZ5iGlmud43aRu8NNV4Lw6UGG3MPZnq9jtuaUTRa7Go0Af/FaKMdA8C/u7rQMadzQ+I+OOr0kSsie5vd9pBlwPoKJ2J7bu6p6D6XLhn7SVI6tkU4gHdQqufhYkLnI3JqnKQb8NQ5mccjny3UeYqSMNM2KCr98FyJ/rfahk9vlmkrz0nzYtlchAGssC3sX0pFK9t5zRv9OV2yRQzojM2Cx7wia6btgZYUK7x80n0Hp5pPxW3LiwrHzuJgaJmyYzAjjVUJ1Z0UAZx6eX5T3D5R7oXnv2LjznSNMqYViGoXaW43WIIxyHN6D8TtbdPwJg8Ri8LZ298w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LIceq5WzRvgQqKjbc37h3tDgHMOgW/UzY9hH6JfbNj8=;
 b=wJnxShs1IGEQSugjDgblY8uzvlnORVlzzSGGo37oh03DlAR5M/tI8AfemNOwXYpCi6Q6Pi2UdgfM+3LHCyXDhb9VrKWCpmsdziAbuLq5iPjmtxrdESJQwflhY86fhuKKFzb9VDT6N9PiAe7YhkVhW65HMliF9bEtQckYIgrt+3w=
Subject: Re: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
        "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)"
 <longpeng2@huawei.com>
Cc: linux-kernel@vger.kernel.org, "Gonglei (Arei)" <arei.gonglei@huawei.com>,
        x86@kernel.org, xen-devel@lists.xenproject.org,
        Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@kernel.org>,
        Valentin Schneider <valentin.schneider@arm.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Juergen Gross
 <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>
References: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
From: Dongli Zhang <dongli.zhang@oracle.com>
Message-ID: <d5f43af4-f91f-ef9f-9c33-8d349f59b23c@oracle.com>
Date: Tue, 23 Nov 2021 13:21:48 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.6.1
In-Reply-To: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SN6PR05CA0017.namprd05.prod.outlook.com
 (2603:10b6:805:de::30) To BYAPR10MB2663.namprd10.prod.outlook.com
 (2603:10b6:a02:a9::20)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c5bc3b28-98b1-49dc-b262-08d9aec744ae
X-MS-TrafficTypeDiagnostic: BY5PR10MB3809:
X-Microsoft-Antispam-PRVS: 
	<BY5PR10MB380905605FB57164501AF3AAF0609@BY5PR10MB3809.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4714;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	yRsZy3xww3ZNXANble0tNzG6NMM3BzyYTcJDr/qwFUMIs47MRKf1nwDX+53d31lCEXsJCm69Oh9hSybP/5RBM+Ml0BoB9Pcg5DAPDM6J9KL85SZLtFXiqJGLzsPFz6Vv8J/ATQnTGjSFFilJywl7yJqbgzPmVctKjdRnHUhYJgl9hH3N7BlV5OBxMR7I6de9HSoxLAGZgvW4VMk2orOGpIbzAhB+09hisuROhIPJhqI0O4Vb0rFn6mQOg3gLsOmWU0goYQ5IyfJey8Q5LY8B9g1ut8UHuZNCuMqtXsM9CKrfCvRvML59ySqdHmh/hNS7kW1vQn401/FAFjovOv7vYaHgYUhOS4Fw/HsLQCFPRStiBT47ybatnEoL79SMKemT4b6uEuuK0nY9RbbOskhaQqcfIPaTfF78FDWn4E7Md5n/NiPNtQV2f4Xkh4KvICQngulrzHFQjCnbRFwGteu/H6RMTQGmPMohHEKlskJLHBbp5DOJpuZ3/aHHfoA/E1zlZN5hgBs029Fy+BxekY0YuScczikY2RgjuDCNicKG8StPCnCAH//YMtgzFWASmx1l5cWImvujFgw2p2CGYPLAKtWfqcLsNAqw8O7UhlHB71Knb3zF7refWZUSrOxUfPGfTzR6vQlDrYJIUoZAoihJ0AnS3C0lERhvh4/3HZIJGzlIcPfZgOn8LArKqLSCk6cl7zAh76sMgXelgiKvKIZxtzsN1CLVOFzn7Jo2t7PEx9zw6EUCO0kunEfvxTugyD1mvNynMJqroMyWh4Os7tgkG3hFv3iIj+ZscR2cOS8zXFLP2o/8HxLW7IBgYsoNYWBXMkUyLCJPnV5WyoudPTJJLQ==
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB2663.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(31696002)(6486002)(4326008)(186003)(66946007)(83380400001)(316002)(66556008)(31686004)(38100700002)(8936002)(966005)(110136005)(36756003)(66476007)(44832011)(8676002)(86362001)(7416002)(53546011)(508600001)(54906003)(2616005)(5660300002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?Vk1RU3BESklSS3lGZkk0SlRuWUhEc2RxdG1Hb3puanIzSzg2QnBXeUEzcnc5?=
 =?utf-8?B?M0FPYTZqejJyS08raTBhVDA2c240Q0VJSzAxNUtIaWtBdTFBbUJraGx3aFhx?=
 =?utf-8?B?TnlzVDEza2dmQUNab0ZuYWJxRDBDaXZXTFJkT2JJMzhwSDN6MzYwTEthRmZL?=
 =?utf-8?B?dDJUb293L2RzUlhzRFNzRWRGcVpJY0Z6Z3RpTFhOSVYwWUI4ZWF3VzFEZkN4?=
 =?utf-8?B?aThBTjE5cGFrODB1STNjaWVENGwyWktpZG5BbjF3ckJRY1R6ZS90L0ttY01K?=
 =?utf-8?B?VTNPWnVOZktFQzZ2OFVhMkxlK1RrWS9VWElYdmxuZXpNOWI1N08zODExTUxv?=
 =?utf-8?B?RnFtVncwcEtXekhCbXZNYUhkb1FuZVhKZEdRK20wTWZPeDN1OHZKZThJNjAr?=
 =?utf-8?B?TVVSTjNJOU05QXlIZFd4eVJMbkl3ekVVUGhtVDN0SUpvZmJtcEFXcTdRb0hi?=
 =?utf-8?B?YXoyTWlIMWJLRnZuQU9Sd2VhZlBsVmdvcmsrU2J6UjRiRkRyalRnZlFCZTk1?=
 =?utf-8?B?L0hoeUh6bnE0UHNWWUF4LzNiZDNoOUpKRjF5NHgzQlU0R0NYVHRzQ1pTd1lI?=
 =?utf-8?B?T3JhdWZRbmU5MzdETUZDcTBNUWI1eHJoTGdmYWhkZXBBSHVhcE02TFRqNU9N?=
 =?utf-8?B?Z2lSZzVkMDNGME01b0dTSU9WQnNUV05tN1gvWGZxc3dweFB3MTBnZTdWWU5E?=
 =?utf-8?B?bFBNTmJZdk1BcXRmUEtteVBHWUhIR0NqNHBlQ1pUT0RFd0N4K3ByWXlvRzcw?=
 =?utf-8?B?TEc1WFhNYTdRR2RXMGpwcW56RTVKZzMzU3U0cTZPL3VhbkdDbFhMMW5ZR052?=
 =?utf-8?B?MHpEV1BXcy9CNUZrcDFqenQ1TWZ4N2gyR2hRR3JEbnV1NVRsQWtIS3gwT01N?=
 =?utf-8?B?ckRWNnNjY2xPUzJnWXVtdHMrZ3pKcTZGaVJGTldqNUlaYllwYm9xdmFDNGpt?=
 =?utf-8?B?UHpDYWdDM1VvRWJWcGRRS1ZTWW5pclRpWGhiY2hWYjR3WHYwSlRIY3ZUQkZy?=
 =?utf-8?B?aVA2Rk9MM0pVSUpheVNLV3dFQVZORktBMWdWbXppZ01aT1k2WmoyeGl6eHUz?=
 =?utf-8?B?OVQvNW1LYzdHdjVuWGFNRXlFWDFIVXZGbDlLbFlKR3laQ01IYkZ3SFVrVGgz?=
 =?utf-8?B?a3lsS3hBOVk5ZlNGaVlzN296bXY2SndrRmovZkNRN21ZNFNVVHpGbnpJcWE2?=
 =?utf-8?B?RDVDVjN5bTBORGxVQVF5d3c4TGNqQ2wzT2tVb0F2YzdKdlhaMnRmODBQR1Jl?=
 =?utf-8?B?UFVXS2ZBMG83MGtwbE9yUDltTTB2QkNnUHhFWjM4QVZvN3phSGRLaGhpTisx?=
 =?utf-8?B?eDNoMTdHWXY3YWpQbTl0NEdrb1NlYThPajViWkJSR0p2S0c1WitYVFF2ckhp?=
 =?utf-8?B?OUlDNEtoUXRaS3h3QVNuZ3J4VTBYVm5BMGhkbTgwTkVlMm95YVl5MnhvbDJP?=
 =?utf-8?B?M1dYV2JpZStBY2pEM2Z5dHh3Ym5ubGJaSnhVZHJpeVY4aXBVQXVkcVRwYkdv?=
 =?utf-8?B?OHU4dWlua094QXR0RXdmYVJibWVQRG9JMUZydGdrelFlUGFqSjk2anExMXRj?=
 =?utf-8?B?ZW5TOGlGdlNnREVEbUZ3T0dvU2hQOXZmdytucFJxN1NpUnpqYW1MK0RHSHd5?=
 =?utf-8?B?ZnZHYUZUWFFwZFFCR1kyM0xEZGRLa2ZmVytaeUpxenhIMzhMcCtoUFdoZWxM?=
 =?utf-8?B?STZpb1ZhS1hvNlh3RDc5V0lvMXN0V0o1eEtkOUxwSEtDN1lHRjFzNGp4bFM5?=
 =?utf-8?B?RG5GU2JrcjRiTW9JQTFCdGhZR2pKcGM0Qm5oOFRGRlh0dHo3NmJLUXBXMDVw?=
 =?utf-8?B?Qkc5YXJNa05yOXIrbGpUa2kyT1JIQ3llTkw1VHVQTkVpN2krWGdxWUc4cFJ3?=
 =?utf-8?B?cmltT0JtbW9FUkdWYXNEa01FT2s4Y2JKQW0zOFM2YWNHUjkyejJJaUNJZ3oy?=
 =?utf-8?B?bkZFL0pId1BLQ1YzSkM5eHVvZkJIQ1pNcWRYKzZRSytNOXB3ajBxaGZkQVNq?=
 =?utf-8?B?VGd6VXJ1U1RoUlJrTWxDRWp2TEpmY1lOQUlZWk5pUFhKMk5nNVNtQk5udDcv?=
 =?utf-8?B?YnM0TlB6RUVPZ2ZOaE54RXZvL251WkN0dVVYR21acVp6Q3hGNmtqSUx1SytX?=
 =?utf-8?B?eE1jcDNIZ1o5M09CeXV3ZXdoUDJKYU96OGgrdm1FUy9ScE9vR1d2UHpRY3pK?=
 =?utf-8?B?UFNoeGJLc3hoODdFMGZMOFUzMTdndUJkbWZyclFxTlU2dFV4Z2ZneFM5a3Az?=
 =?utf-8?B?d2dHZGd2UklCcGJZU2FnUmx0VUZnPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c5bc3b28-98b1-49dc-b262-08d9aec744ae
X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2021 21:21:52.9576
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CKw89JwUu6u3pGylkQF1WjRRY5DQErLoI4RhG8zYH+wmUKXpMfr92CxJvufLHm2/yh4WPRDAf5ay0/AdTjNpZQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB3809
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10177 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 spamscore=0
 bulkscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111230103
X-Proofpoint-GUID: sp0GUbpNiPEKC7yCNsMBV4Jbs65_oaRY
X-Proofpoint-ORIG-GUID: sp0GUbpNiPEKC7yCNsMBV4Jbs65_oaRY

Tested-by: Dongli Zhang <dongli.zhang@oracle.com>


The bug fixed by commit 53fafdbb8b21 ("KVM: x86: switch KVMCLOCK base to
monotonic raw clock") may leave the cpu_hotplug_state at CPU_UP_PREPARE. As a
result, to online this CPU again (even after removal) is always failed.

I have tested that this patch works well to workaround the issue, by introducing
either a mdeley(11000) or while(1); to start_secondary(). That is, to online the
same CPU again is successful even after initial do_boot_cpu() failure.

1. add mdelay(11000) or while(1); to the start_secondary().

2. to online CPU is failed at do_boot_cpu().

3. to online CPU again is failed without this patch.

# echo 1 > /sys/devices/system/cpu/cpu4/online
-su: echo: write error: Input/output error

4. to online CPU again is successful with this patch.

Thank you very much!

Dongli Zhang

On 11/22/21 7:47 AM, Sebastian Andrzej Siewior wrote:
> From: "Longpeng(Mike)" <longpeng2@huawei.com>
> 
> A CPU will not show up in virtualized environment which includes an
> Enclave. The VM splits its resources into a primary VM and a Enclave
> VM. While the Enclave is active, the hypervisor will ignore all requests
> to bring up a CPU and this CPU will remain in CPU_UP_PREPARE state.
> The kernel will wait up to ten seconds for CPU to show up
> (do_boot_cpu()) and then rollback the hotplug state back to
> CPUHP_OFFLINE leaving the CPU state in CPU_UP_PREPARE. The CPU state is
> set back to CPUHP_TEARDOWN_CPU during the CPU_POST_DEAD stage.
> 
> After the Enclave VM terminates, the primary VM can bring up the CPU
> again.
> 
> Allow to bring up the CPU if it is in the CPU_UP_PREPARE state.
> 
> [bigeasy: Rewrite commit description.]
> 
> Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> Link: https://urldefense.com/v3/__https://lore.kernel.org/r/20210901051143.2752-1-longpeng2@huawei.com__;!!ACWV5N9M2RV99hQ!d4sCCXMQV7ekFwpd21vo1_9K-m5h4VZ-gE8Z62PLL58DT4VJ6StH57TR_KpBdbwhBE0$ 
> ---
> 
> For XEN: this changes the behaviour as it allows to invoke
> cpu_initialize_context() again should it have have earlier. I *think*
> this is okay and would to bring up the CPU again should the memory
> allocation in cpu_initialize_context() fail.
> 
>  kernel/smpboot.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/kernel/smpboot.c b/kernel/smpboot.c
> index f6bc0bc8a2aab..34958d7fe2c1c 100644
> --- a/kernel/smpboot.c
> +++ b/kernel/smpboot.c
> @@ -392,6 +392,13 @@ int cpu_check_up_prepare(int cpu)
>  		 */
>  		return -EAGAIN;
>  
> +	case CPU_UP_PREPARE:
> +		/*
> +		 * Timeout while waiting for the CPU to show up. Allow to try
> +		 * again later.
> +		 */
> +		return 0;
> +
>  	default:
>  
>  		/* Should not happen.  Famous last words. */
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 21:25:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 21:25:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229954.397566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpdHv-00088z-U5; Tue, 23 Nov 2021 21:25:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229954.397566; Tue, 23 Nov 2021 21:25:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpdHv-00088s-PG; Tue, 23 Nov 2021 21:25:15 +0000
Received: by outflank-mailman (input) for mailman id 229954;
 Tue, 23 Nov 2021 21:25:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=T9bO=QK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mpdHv-00088m-76
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 21:25:15 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d749b550-4ca3-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 22:25:13 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id DCB2E60E0B;
 Tue, 23 Nov 2021 21:25:10 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d749b550-4ca3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637702711;
	bh=qbvAP9FEgnrCIjTIXsp/tmPWIt0MQ0Xlnn794203bys=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cPd4cv7SryyQd8LTmLauUibsHQ5D8afBo8uXkhfOYPOgrgvySkD774taLKN48DNXe
	 W6e3jzyS3F9HP3Vwr4fcVrY+vdkotS6q6XGdp4IFbEvFfWMi8+I+E0f5i3iTo6Et9D
	 RNAyk6dVRDQxVUd/oV0muVrutlyRiPRzbbgRRdD0pnVObQCHOiI9AyfxMTW+QU+dUd
	 VUBhKB5aEbpY6IZQIb8PhmUQ1tnRFhNCpiXdqc0Wm/rRPc/YMwxcFkCv3xBpOLg7L0
	 8E17AtMBB1mBB+tETB8KrjOBM+wsXDbC9yE0z7P67gZsGcQXIVyELSakyuVNlln3jw
	 wLDADqvF058zQ==
Date: Tue, 23 Nov 2021 13:25:09 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr <olekstysh@gmail.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, jgross@suse.com, 
    xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    Julien Grall <julien@xen.org>
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
In-Reply-To: <76163855-c5eb-05db-2f39-3c6bfee46345@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111231312310.1412361@ubuntu-linux-20-04-desktop>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com> <1635264312-3796-4-git-send-email-olekstysh@gmail.com> <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s> <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
 <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop> <f1f1025b-911d-3d27-f408-9c042bc4fca4@gmail.com> <alpine.DEB.2.22.394.2111191809100.1412361@ubuntu-linux-20-04-desktop> <76163855-c5eb-05db-2f39-3c6bfee46345@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1418725751-1637702267=:1412361"
Content-ID: <alpine.DEB.2.22.394.2111231325040.1412361@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1418725751-1637702267=:1412361
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2111231325041.1412361@ubuntu-linux-20-04-desktop>

On Tue, 23 Nov 2021, Oleksandr wrote:
> > Actually after reading your replies and explanation I changed opinion: I
> > think we do need the fallback because Linux cannot really assume that
> > it is running on "new Xen" so it definitely needs to keep working if
> > CONFIG_XEN_UNPOPULATED_ALLOC is enabled and the extended regions are not
> > advertised.
> > 
> > I think we'll have to roll back some of the changes introduced by
> > 121f2faca2c0a. That's because even if CONFIG_XEN_UNPOPULATED_ALLOC is
> > enabled we cannot know if we can use unpopulated-alloc or whether we
> > have to use alloc_xenballooned_pages until we parse the /hypervisor node
> > in device tree at runtime.
> 
> Exactly!
> 
> 
> > 
> > In short, we cannot switch between unpopulated-alloc and
> > alloc_xenballooned_pages at build time, we have to do it at runtime
> > (boot time).
> 
> +1
> 
> 
> I created a patch to partially revert 121f2faca2c0a "xen/balloon: rename
> alloc/free_xenballooned_pages".
> 
> If there is no objections I will add it to V3 (which is almost ready, except
> the fallback bits). Could you please tell me what do you think?
 
It makes sense to me. You can add my Reviewed-by.

 
> From dc79bcd425358596d95e715a8bd8b81deaaeb703 Mon Sep 17 00:00:00 2001
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Date: Tue, 23 Nov 2021 18:14:41 +0200
> Subject: [PATCH] xen/balloon: Bring alloc(free)_xenballooned_pages helpers
>  back
> 
> This patch rolls back some of the changes introduced by commit
> 121f2faca2c0a "xen/balloon: rename alloc/free_xenballooned_pages"
> in order to make possible to still allocate xenballooned pages
> if CONFIG_XEN_UNPOPULATED_ALLOC is enabled.
> 
> On Arm the unpopulated pages will be allocated on top of extended
> regions provided by Xen via device-tree (the subsequent patches
> will add required bits to support unpopulated-alloc feature on Arm).
> The problem is that extended regions feature has been introduced
> into Xen quite recently (during 4.16 release cycle). So this
> effectively means that Linux must only use unpopulated-alloc on Arm
> if it is running on "new Xen" which advertises these regions.
> But, it will only be known after parsing the "hypervisor" node
> at boot time, so before doing that we cannot assume anything.
> 
> In order to keep working if CONFIG_XEN_UNPOPULATED_ALLOC is enabled
> and the extended regions are not advertised (Linux is running on
> "old Xen", etc) we need the fallback to alloc_xenballooned_pages().
> 
> This way we wouldn't reduce the amount of memory usable (wasting
> RAM pages) for any of the external mappings anymore (and eliminate
> XSA-300) with "new Xen", but would be still functional ballooning
> out RAM pages with "old Xen".
> 
> Also rename alloc(free)_xenballooned_pages to xen_alloc(free)_ballooned_pages.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
>  drivers/xen/balloon.c | 20 +++++++++-----------
>  include/xen/balloon.h |  3 +++
>  include/xen/xen.h     |  6 ++++++
>  3 files changed, 18 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
> index ba2ea11..a2c4fc49 100644
> --- a/drivers/xen/balloon.c
> +++ b/drivers/xen/balloon.c
> @@ -581,7 +581,6 @@ void balloon_set_new_target(unsigned long target)
>  }
>  EXPORT_SYMBOL_GPL(balloon_set_new_target);
> 
> -#ifndef CONFIG_XEN_UNPOPULATED_ALLOC
>  static int add_ballooned_pages(unsigned int nr_pages)
>  {
>      enum bp_state st;
> @@ -610,12 +609,12 @@ static int add_ballooned_pages(unsigned int nr_pages)
>  }
> 
>  /**
> - * xen_alloc_unpopulated_pages - get pages that have been ballooned out
> + * xen_alloc_ballooned_pages - get pages that have been ballooned out
>   * @nr_pages: Number of pages to get
>   * @pages: pages returned
>   * @return 0 on success, error otherwise
>   */
> -int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages)
>  {
>      unsigned int pgno = 0;
>      struct page *page;
> @@ -652,23 +651,23 @@ int xen_alloc_unpopulated_pages(unsigned int nr_pages,
> struct page **pages)
>      return 0;
>   out_undo:
>      mutex_unlock(&balloon_mutex);
> -    xen_free_unpopulated_pages(pgno, pages);
> +    xen_free_ballooned_pages(pgno, pages);
>      /*
> -     * NB: free_xenballooned_pages will only subtract pgno pages, but since
> +     * NB: xen_free_ballooned_pages will only subtract pgno pages, but since
>       * target_unpopulated is incremented with nr_pages at the start we need
>       * to remove the remaining ones also, or accounting will be screwed.
>       */
>      balloon_stats.target_unpopulated -= nr_pages - pgno;
>      return ret;
>  }
> -EXPORT_SYMBOL(xen_alloc_unpopulated_pages);
> +EXPORT_SYMBOL(xen_alloc_ballooned_pages);
> 
>  /**
> - * xen_free_unpopulated_pages - return pages retrieved with
> get_ballooned_pages
> + * xen_free_ballooned_pages - return pages retrieved with get_ballooned_pages
>   * @nr_pages: Number of pages
>   * @pages: pages to return
>   */
> -void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages)
>  {
>      unsigned int i;
> 
> @@ -687,9 +686,9 @@ void xen_free_unpopulated_pages(unsigned int nr_pages,
> struct page **pages)
> 
>      mutex_unlock(&balloon_mutex);
>  }
> -EXPORT_SYMBOL(xen_free_unpopulated_pages);
> +EXPORT_SYMBOL(xen_free_ballooned_pages);
> 
> -#if defined(CONFIG_XEN_PV)
> +#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
>  static void __init balloon_add_region(unsigned long start_pfn,
>                        unsigned long pages)
>  {
> @@ -712,7 +711,6 @@ static void __init balloon_add_region(unsigned long
> start_pfn,
>      balloon_stats.total_pages += extra_pfn_end - start_pfn;
>  }
>  #endif
> -#endif
> 
>  static int __init balloon_init(void)
>  {
> diff --git a/include/xen/balloon.h b/include/xen/balloon.h
> index e93d4f0..f78a6cc 100644
> --- a/include/xen/balloon.h
> +++ b/include/xen/balloon.h
> @@ -26,6 +26,9 @@ extern struct balloon_stats balloon_stats;
> 
>  void balloon_set_new_target(unsigned long target);
> 
> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages);
> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages);
> +
>  #ifdef CONFIG_XEN_BALLOON
>  void xen_balloon_init(void);
>  #else
> diff --git a/include/xen/xen.h b/include/xen/xen.h
> index 9f031b5..410e3e4 100644
> --- a/include/xen/xen.h
> +++ b/include/xen/xen.h
> @@ -52,7 +52,13 @@ bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
>  extern u64 xen_saved_max_mem_size;
>  #endif
> 
> +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>  int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
>  void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
> +#else
> +#define xen_alloc_unpopulated_pages xen_alloc_ballooned_pages
> +#define xen_free_unpopulated_pages xen_free_ballooned_pages
> +#include <xen/balloon.h>
> +#endif
> 
>  #endif    /* _XEN_XEN_H */
--8323329-1418725751-1637702267=:1412361--


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 22:01:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 22:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229959.397577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpdqm-0003k7-Ll; Tue, 23 Nov 2021 22:01:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229959.397577; Tue, 23 Nov 2021 22:01:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpdqm-0003k0-Ia; Tue, 23 Nov 2021 22:01:16 +0000
Received: by outflank-mailman (input) for mailman id 229959;
 Tue, 23 Nov 2021 22:01:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=T9bO=QK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mpdql-0003ju-DF
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 22:01:15 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dde6c303-4ca8-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 23:01:13 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 6638760F50;
 Tue, 23 Nov 2021 22:01:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dde6c303-4ca8-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637704869;
	bh=HGfGWCxuK9DIawT+rUDvDMSCooy9oKsJBObWZ2+jCRA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LuO9imbrv0n2pc9yWxt2zPqH/TVN7XLOgjVyHQITsp1nhQnYLrRyt+aDW8GkpzEIh
	 Qnp3VSAxfE3dIKSK//AyM+JAA65v4qr4duuPtj/Z1P+8aiImfcGaZcyqd/CNLFUevC
	 3ZGbuAkcPtArRfCaB7WFE4+jjIykToT3NxvtqS4cs+iJTZ3AH0zz6rzEf117ATuuPP
	 Y+MA8CscI0XPFZh6PfIdPngpQOmfkAElaN0VPeshMGdmqESRVFC0omCLG2OdlF6Oc0
	 nejlyauclSFqDwbAMHm83qtfZ+5g7cJqkfmoj3sgyR2pqnAemPFef0zNpklgx6na2G
	 cvTAfaJD7Tq/g==
Date: Tue, 23 Nov 2021 14:01:07 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
cc: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Luca Fancellu <Luca.Fancellu@arm.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, Wei Chen <Wei.Chen@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    George Dunlap <george.dunlap@citrix.com>, Juergen Gross <jgross@suse.com>, 
    Dario Faggioli <dfaggioli@suse.com>
Subject: Re: [RFC PATCH 0/2] Boot time cpupools
In-Reply-To: <75B06FD4-B2EC-4C93-95B1-8E3C9A181913@arm.com>
Message-ID: <alpine.DEB.2.22.394.2111231334470.1412361@ubuntu-linux-20-04-desktop>
References: <20211117095711.26596-1-luca.fancellu@arm.com> <26c01edc-46a9-47eb-0c9d-986b92e02158@xen.org> <B20FC780-3E2D-4B4A-BF1D-CF34763D237E@arm.com> <d42781c4-b01b-9064-4c90-ff99d960958b@xen.org> <1941B2BF-6451-4665-8591-DB14739121A9@arm.com>
 <f744c406-9801-a001-fb8e-90680cebb0c9@xen.org> <alpine.DEB.2.22.394.2111171724330.1412361@ubuntu-linux-20-04-desktop> <17cd2c69-56cb-15b9-d381-f854aea55d27@xen.org> <alpine.DEB.2.22.394.2111191052050.1412361@ubuntu-linux-20-04-desktop>
 <d1139023-6788-2c58-5873-327e0917f868@xen.org> <75B06FD4-B2EC-4C93-95B1-8E3C9A181913@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 23 Nov 2021, Bertrand Marquis wrote:
> Hi Julien,
> 
> > On 23 Nov 2021, at 13:54, Julien Grall <julien@xen.org> wrote:
> > 
> > Hi Stefano,
> > 
> > On 19/11/2021 18:55, Stefano Stabellini wrote:
> >> On Fri, 19 Nov 2021, Julien Grall wrote:
> >>> I like better Juergen's version. But before agreeing on the command line , I
> >>> would like to understand how Linux is dealing with big.LITTLE today (see my
> >>> question above).
> >> I also like Juergen's version better :-)
> >> The device tree binding that covers big.LITTLE is the same that covers
> >> cpus: Documentation/devicetree/bindings/arm/cpus.yaml
> > 
> > Are you sure? I found Documentation/devicetree/bindings/arm/cpu-capacity.txt.
> > 
> >> So basically, you can tell it is a big.LITTLE system because the
> >> compatible strings differ between certain cpus, e.g.:
> >>       cpu@0 {
> >>         device_type = "cpu";
> >>         compatible = "arm,cortex-a15";
> >>         reg = <0x0>;
> >>       };
> >>       cpu@1 {
> >>         device_type = "cpu";
> >>         compatible = "arm,cortex-a15";
> >>         reg = <0x1>;
> >>       };
> >>       cpu@100 {
> >>         device_type = "cpu";
> >>         compatible = "arm,cortex-a7";
> >>         reg = <0x100>;
> >>       };
> >>       cpu@101 {
> >>         device_type = "cpu";
> >>         compatible = "arm,cortex-a7";
> >>         reg = <0x101>;
> >>       };
> > 
> > I have not found any code in Linux using the compatible. Instead, they all seem to use the cpu-map (see drivers/base/arch_topology.c).
> > 
> > Anyway, to me it would be better to parse the Device-Tree over using the MIDR. The advantage is we can cover a wide range of cases (you may have processor with the same MIDR but different frequency). For now, we could create a cpupool per cluster.
> 
> This is a really good idea as this could also work for NUMA systems.
> 
> So reg & ~0xff would give the cluster number ?
> 
> We will probably end up splitting cores into different cpupools even if they are all the same as there are several CPUs having several clusters but the same cores (I recall some NXP boards being like that).
> 
> Some device tree also have a cpu-map definition:
>         cpu-map {
>             cluster0 {
>                 core0 {
>                     cpu = <&A57_0>;
>                 };
>                 core1 {
>                     cpu = <&A57_1>;
>                 };
>             };
> 
>             cluster1 {
>                 core0 {
>                     cpu = <&A53_0>;
>                 };
>                 core1 {
>                     cpu = <&A53_1>;
>                 };
>                 core2 {
>                     cpu = <&A53_2>;
>                 };
>                 core3 {
>                     cpu = <&A53_3>;
>                 };
>             };
>         };
> 
> @stefano: is the cpu-map something standard ? Lots of device trees do have it in Linux now but I do not recall seeing that on older device trees.
> Maybe using cpu-map could be a solution, we could say that device tree without a cpu-map are not supported.


cpu-map is newer than big.LITTLE support in Linux. See for instance
commit 4ab328f06. Before cpu-map was introduced, Linux used mostly the
MPIDR or sometimes the *machine* compatible string. I did find one
example of a board where the cpu compatible string is the same for both
big and LITTLE CPUs: arch/arm64/boot/dts/rockchip/rk3368.dtsi. That
could be the reason why the cpu compatible string is not used for
detecting big.LITTLE. Sorry about that, my earlier suggestion was wrong.

Yes I think using cpu-map would be fine. It seems to be widely used by
different vendors. (Even if something as generic as cpu-map should
really be under the devicetree.org spec, not under Linux, but anyway.)

Only one note: you mentioned NUMA. As you can see from
Documentation/devicetree/bindings/numa.txt, NUMA doesn't use cpu-map.
Instead, it uses numa-node-id and distance-map.


From xen-devel-bounces@lists.xenproject.org Tue Nov 23 23:16:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Nov 2021 23:16:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229964.397588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpf1C-00022J-06; Tue, 23 Nov 2021 23:16:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229964.397588; Tue, 23 Nov 2021 23:16:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpf1B-00022C-TG; Tue, 23 Nov 2021 23:16:05 +0000
Received: by outflank-mailman (input) for mailman id 229964;
 Tue, 23 Nov 2021 23:16:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpf1B-000222-32; Tue, 23 Nov 2021 23:16:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpf1A-0006Ct-Sr; Tue, 23 Nov 2021 23:16:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpf1A-0003C0-IT; Tue, 23 Nov 2021 23:16:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpf1A-0003RC-Hr; Tue, 23 Nov 2021 23:16:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=PQj0bqQ5uuvsdM4RSTOkDAsg30cL+ZvQ19XU9x2FvME=; b=2N031P70Xdsr81vlAIgonIqg15
	a0XtpVjfUGJ9ZDqJBAfJwq2/aJUmkllGAEgGxLC57pM54iZ2MI0vhRNnjwpBu7Xg9WVXlOTbnlorl
	/w6CijzJvzo1dew07Q5qaEATiK9CsYzY8qt3WnpeWc/Kf1+vVVLoIRuXV7v0nDdSzje0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166326-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166326: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a5706b80f42e028c5153fc50734a1e86a99ff9d2
X-Osstest-Versions-That:
    xen=74a11c43fd7e074b1f77631b446dd2115eacb9e8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Nov 2021 23:16:04 +0000

flight 166326 xen-unstable-smoke real [real]
flight 166330 xen-unstable-smoke real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166326/
http://logs.test-lab.xenproject.org/osstest/logs/166330/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 166312

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a5706b80f42e028c5153fc50734a1e86a99ff9d2
baseline version:
 xen                  74a11c43fd7e074b1f77631b446dd2115eacb9e8

Last test of basis   166312  2021-11-23 13:00:27 Z    0 days
Testing same since   166326  2021-11-23 18:01:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit a5706b80f42e028c5153fc50734a1e86a99ff9d2
Author: Ian Jackson <iwj@xenproject.org>
Date:   Tue Nov 23 16:55:32 2021 +0000

    Set version to 4.17: rerun autogen.sh
    
    Signed-off-by: Ian Jackson <iwj@xenproject.org>

commit 8579d208ab78486717d396cb297f06526fe6b492
Author: Ian Jackson <iwj@xenproject.org>
Date:   Tue Nov 23 16:54:08 2021 +0000

    Set version to 4.17; 4.16 has branched
    
    Signed-off-by: Ian Jackson <iwj@xenproject.org>

commit 4fe6e73a8cc8f3fa93a7c6a52a9a03b24e51ea18
Author: Ian Jackson <iwj@xenproject.org>
Date:   Tue Nov 23 16:51:47 2021 +0000

    Revert "Config.mk: pin QEMU_UPSTREAM_REVISION (prep for Xen 4.16 RC1)"
    
    This branch is unstable again now.
    
    This reverts commit c9ce6afbf2d7772f47fc572bb7fc9555724927ed.
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 01:23:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 01:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229977.397611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpgzr-000837-4V; Wed, 24 Nov 2021 01:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229977.397611; Wed, 24 Nov 2021 01:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpgzr-000830-1I; Wed, 24 Nov 2021 01:22:51 +0000
Received: by outflank-mailman (input) for mailman id 229977;
 Wed, 24 Nov 2021 01:22:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/oH=QL=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mpgzq-00082u-Au
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 01:22:50 +0000
Received: from mga06.intel.com (mga06.intel.com [134.134.136.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 069815ee-4cc5-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 02:22:46 +0100 (CET)
Received: from orsmga004.jf.intel.com ([10.7.209.38])
 by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Nov 2021 17:22:43 -0800
Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84])
 by orsmga004.jf.intel.com with ESMTP; 23 Nov 2021 17:22:43 -0800
Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by
 fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 23 Nov 2021 17:22:42 -0800
Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by
 fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Tue, 23 Nov 2021 17:22:42 -0800
Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.175)
 by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Tue, 23 Nov 2021 17:22:42 -0800
Received: from BL1PR11MB5429.namprd11.prod.outlook.com (2603:10b6:208:30b::13)
 by MN2PR11MB4400.namprd11.prod.outlook.com (2603:10b6:208:18c::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Wed, 24 Nov
 2021 01:22:41 +0000
Received: from BL1PR11MB5429.namprd11.prod.outlook.com
 ([fe80::9061:212b:2fb5:41d0]) by BL1PR11MB5429.namprd11.prod.outlook.com
 ([fe80::9061:212b:2fb5:41d0%9]) with mapi id 15.20.4690.030; Wed, 24 Nov 2021
 01:22:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 069815ee-4cc5-11ec-a9d2-d9f7a1cc8784
X-IronPort-AV: E=McAfee;i="6200,9189,10177"; a="295981719"
X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; 
   d="scan'208";a="295981719"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; 
   d="scan'208";a="607025899"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UXMnf1A7r+WaCbR7avGzdsSpXiVq5BYLEJnv900UHpeDBOUIxPOOT3PfNRRqCmcA5XgQJaqY1fD9nKZ2egYj/3jvPgLQTLK84u+9Donr0AH8cmm22vGfqtvhCL0mnSy30JLqjs/4K4hD9eYFezTLHaCZ7LWdy7PPNsQ6B1njG0dGZYB1toTKqCx4E+VxslGKzYEGYJL16JAHd2W493Ni1PjJz7B7eT2XSS2ARx8E8Bxeu7MaC0ut3/CIM6JHER8NtOGsguzZDI+PMTx/Z0Uw4tCnaZNwjBtt8Hp7F8Ui241Cb9Ygf8MaoeiME4IFeg1jXd2wxEAHf1hfcrHsjBEeUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TFir4j92i/Nsc8T5Q8EMFHZu+Je/aFWRCFgEtUNMpbA=;
 b=GDdSWX078UfmXOi0BPq06QGU0MRcMDKUvvpz7RwiAsN8SyRl3Jbx2u4OBNlad+468JkRHCNbwB0rcfwxwXaB7vb48yz+bQLoP1/7hZ35Jq9zFzUHhfOIfok8GyflrFZIm09NovEYdi3Rp35jIj5SsRA7U+d0R2UE7i4V7ZZWs7GJguh9zenpCVq0clHbmWIJk7iM2R1hQ/EB1Qxfda/DF6KHoarpBL3jSKvgoz1tHtJjtEtCnHgGTC8G4ejrH1DJ4+QYxyx2qqWIgGNdT3Kvo4hLrFXy/Tb3QwzU5mmNylBeoWZ/RInNcg7DKk6cydZWR9fclxQaSk7XDlk9WxWaZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TFir4j92i/Nsc8T5Q8EMFHZu+Je/aFWRCFgEtUNMpbA=;
 b=oLXNoBuFcX4Mox5kwpeKsxHs+1TzJCXJz1bXCZxA6vcc2cOJBgXH4290UezoH4886VXpQqjmbJUx4HOgDzEPWvciWRw8QeWJftUpAuD6TDuQMKk777UXp7pvTIZ7UdkMmQqpCArzuEX5JLAnIXgcIRtRhghD2pFXd2/Woqh/Ko4=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 1/3] VT-d: prune SAGAW recognition
Thread-Topic: [PATCH 1/3] VT-d: prune SAGAW recognition
Thread-Index: AQHX4G+bK+NNsWCPc0+Q5rkWpgerr6wR4b8Q
Date: Wed, 24 Nov 2021 01:22:41 +0000
Message-ID: <BL1PR11MB5429877092DD0AF8A8C478DF8C619@BL1PR11MB5429.namprd11.prod.outlook.com>
References: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
 <4e801190-ad7e-32da-da87-985e1b6a76bd@suse.com>
In-Reply-To: <4e801190-ad7e-32da-da87-985e1b6a76bd@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 44e535c6-36ec-4746-bea7-08d9aee8e91b
x-ms-traffictypediagnostic: MN2PR11MB4400:
x-microsoft-antispam-prvs: <MN2PR11MB4400724898D6974263E891BB8C619@MN2PR11MB4400.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 1f5uDhaiyQh7Zk9nmwjpF4PcMe7215f8a9zWX/uRx2gQSOPUbtCTmO4qaLmffAlfn1JQFz8oCI0uxzdnOEc7jfEvcmCbkBTBCUwpVn1ednScmBlbRb0Q8kjwbkrQXSqF/zb9t/sa/kyI9VI7yH41xda9/rV7eVWsyDM9GSJ3JtBFS0ShYXj2PBem1SBcczULeXXyJX+C3luedaBHglG2md1t+7J19iwQdJWmsP7bbq5Jvly4kO9CfEsBailqfPMMOTCcRfcIdG4rg0YYE+H4aucL7OBSC4dzNeHX1M7mYRiqsm6noYt2itgOfo5ZfVAa14/NDgkEDEBFdYlh8mgWo18xL5ZAczKkmXYohtqGBPL4JHkB2x3LBjuSnDq5M/NYwrhUgFpjY9roc3O3y1MBHxCdsLr4f2qLmA5hFDn/V/I65AZiOg0j0nAo5HpzSAw86bAWwrHbKN9Wax+Utz29VA+ItSp1vhT31yHsPvjQ/zsIEOYJra72thwWIBky6Ah50h8WiA2z+fMm4C+5YStx69sYs9rkwNkuuz3q2WnsDpz3kPq28oGMmt35xbKF8KdSsIrEUpDwz1b6q6ByeO4IZVqbx1CvHrYyhMel5DrgqaX0+6ZafwdHuKziVg3PSVsn1k0WNw3knFHn89zmjjz6CPNNxdXBZseAPsmbonoaqwkcLkYeemwbMu6PBeg8TMoQw36WarLfgag8v8nIxw5Wpg==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5429.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(7696005)(38070700005)(8676002)(26005)(8936002)(110136005)(33656002)(86362001)(6506007)(82960400001)(186003)(38100700002)(64756008)(66556008)(66476007)(2906002)(9686003)(71200400001)(316002)(55016003)(66946007)(122000001)(66446008)(508600001)(5660300002)(76116006)(52536014);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?V09aWUhDVTRZa05xT1hSV2xCazhDa2p0RXRKcGVBd2JDVHBIa3hTRjV2WEdF?=
 =?utf-8?B?M2lXdUpSRkdLMFQ0VU84YzdmWHkvUW5lZXRtc1pobVQxNlk0eXlmUkU0MHda?=
 =?utf-8?B?bXFOV25mRG54VHFEL3lTN2krWXM2NHI4bEhXSDBuT1BzVjZaWWhpVTZTcmRR?=
 =?utf-8?B?YWM1aDhYUGFlS0YvQ3haOHo0bnlIbXoxRFo3TWh2RFU0NStRalptcmxqNmM3?=
 =?utf-8?B?aGFBTXBObjN3UThqUzBuOTdtZ3RRV0ljUlNVNFExY0cvRE5GNzZCWkFQZUhm?=
 =?utf-8?B?Vm8ydHIvNTFFSEY3QlAwanRTTklDRWFTeTFiQVEyaElwWjRIZHRlRWRab01E?=
 =?utf-8?B?aWtEZUY0dS9TeTlMM3pkVkh6OHFmcWN0eW0wdXRyU05zbWYwdCsvaHJwYngy?=
 =?utf-8?B?OWhYOVBlelVjb1VZbTJzWTZHVFdiWnpJL29Tc2hNbDMxS2pPNmd0dnV3Zjdi?=
 =?utf-8?B?RzdwZzZXNWsrc3p1MEJUSlZFZXQyY1VRa3dIZTgwcXdRS2dOS1k3Qnl1b25u?=
 =?utf-8?B?ZHR4TVF1Y0dFMXdvaWwrNzB3OERTVGhaOFBsa2tjQWpRV0ozRGZBMGRMSFdw?=
 =?utf-8?B?L0xqZ3lVQ3MwOVhaVXIwWi9Kd1FNM3AzRHRjcUk5TnorT081a0xqMEIxOXRT?=
 =?utf-8?B?NEw1Qk9ZcWhTMWI3ZHd4ZjBkTzBLSUNhdjJpV1Y0TmU2cGdsdE9lWnYzd1hq?=
 =?utf-8?B?bjlIUXZMYzYzcEtZajQwSUxJaUFDMVFEU3IyTWxySUF2M25zbCtaNUJaNXVT?=
 =?utf-8?B?S3NUVE41L3ArdFc2SFZ6UHVTY1pheE5LT3VCbTJIcmF0RXNERTVWSkRmZEdm?=
 =?utf-8?B?QnhRL0J1cStSNnJVTHR5UlREajRadlY5MGxhMVRhV243dWxhYnk0aWIxRE9Y?=
 =?utf-8?B?RTlkTlZOMEdXOVRvNzZucDR0blVnZjNDNGdRcTN4ZjVraGR3OU43NzBQTVE3?=
 =?utf-8?B?ZzNSWWhMcUlITlNGTE82N1UvZGtuSWxicllKcnJsbXNsZG51NzNTaExqL1B3?=
 =?utf-8?B?czdxWFJVTmlsQmE4YWJxZ3lSeHhjZGdsdFRJVThCVjdMS1Z5bFlhVVhKZFhx?=
 =?utf-8?B?RGNjRisyb3lGdHJUdGtSM2Vaa2J5L0NpTXhvRm5HZi83MHR4K2U3VVd2MmVk?=
 =?utf-8?B?VkVicmUweEhrVDNLelFzZ0F1a2NjMTF0MXVtVEVmdmp6elBBdUZQU1IvTUpu?=
 =?utf-8?B?WXQ2V2hnSjlCVW1PZHlaU3FsM0lSelZ0S0gwaUMwV1kxYnBLb2kyaW1BNnlz?=
 =?utf-8?B?WDd3ZXJRRVZMaGk4REwzNk42WEt0VnpoNTN1MklRdmdObGpMRk0zbFNBNDZi?=
 =?utf-8?B?VGg1SHMwQkZDYUxJWDFQTVpoQSs5cHhVMHo4Q2RqSkNzNEt4YmxMbW5NL291?=
 =?utf-8?B?VXJoQkJJbkpNeDhZU2pyZU54TnlzWm80QmdVMy9Mc0M1UjFpenhzWXYxRXJm?=
 =?utf-8?B?b0hTbUNwL2NFakFTK3VrQk0rdUsrcGVKZmM0MlpTc3JEcURhWHN1TTNaQlhI?=
 =?utf-8?B?ZUhqelByRjhRcWk2SWc0K0dyNXFXL2RUb2dQSjd1THZxUGRCOW4rT1pjNEh6?=
 =?utf-8?B?Ykx0T2tsU2NxOUhCU0JlNVpSUXRNREp5bHBwaVBRQkc1ckNiQmlvSTVpNnVQ?=
 =?utf-8?B?RmVIR2VVUlpPQXhaYkVPZ3BmVm5IbnR4SlhGNEdiZzdHY1RQYjFFeU1GMldS?=
 =?utf-8?B?b1lSTmpqVlVYTW9YcUYwbDJWc2IzY1phK2t1dGFhVHZ6TlhNZjNKR1FaWHdI?=
 =?utf-8?B?dXhnUTM2aVBrK0hRSDY0QUc2T09MRWVad1dBem5pMnZiZGhIeVBtZmJZM3Ns?=
 =?utf-8?B?MjF4eXhUdjNUZWRnTS9oTUdZakQwSWxDbXV0MWFhNGZNd0EyMEQzQzdoc0FO?=
 =?utf-8?B?S3NDWllFZjUrY2Z4MDhZbi9GcERqRFdBNE85ZVVkTWptVytIU1VDNU92OUh4?=
 =?utf-8?B?NHd5U1EvSmhkVUppTXZ1YzcwekZHNERFL3pQd2NTb2Q1V3dYa1BTWkxkWTBa?=
 =?utf-8?B?NzQ2dk5hOGd5aklmZWF1ZllKZ25wMFJnTVJUVkUyMlNnUE1NcUR5U3lWa1BI?=
 =?utf-8?B?VStiRUx0RFRscDdJY3BiTjNVdkZjdGRhZDBsSUViVTRTOTJ0Rnh0Q0p4ZUhC?=
 =?utf-8?B?SXhKTDF2SXVlb0ZCS2UyTVdwbXRUYWVLdnVpOTZZVEcvZWdjeTVXcTJIcWxy?=
 =?utf-8?Q?KsfHDOGsgL05rpp7VhAJb1g=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5429.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 44e535c6-36ec-4746-bea7-08d9aee8e91b
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 01:22:41.4637
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: om50SAgWzy4ycuXiMzelmNnijFVjHLesxEf4qhYm2neX8euxsJIiuiqtLSvOt/FpK3VFid6DfaooDpSP7EDjMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4400
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXks
IE5vdmVtYmVyIDIzLCAyMDIxIDk6NDAgUE0NCj4gDQo+IEJpdCAwIG9mIHRoZSBjYXBhYmlsaXR5
IHJlZ2lzdGVyIGZpZWxkIGhhcyBiZWNvbWUgcmVzZXJ2ZWQgYXQgb3IgYmVmb3JlDQoNCkJpdCAw
IG9mICdTQUdBVycgaW4gdGhlIGNhcGFiaWxpdHkgcmVnaXN0ZXIgLi4uDQoNCj4gc3BlYyB2ZXJz
aW9uIDIuMi4gVHJlYXQgaXQgYXMgc3VjaC4gUmVwbGFjZSB0aGUgZWZmZWN0aXZlIG9wZW4tY29k
aW5nIG9mDQo+IGZpbmRfZmlyc3Rfc2V0X2JpdCgpLiBBZGp1c3QgbG9jYWwgdmFyaWFibGUgdHlw
ZXMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+
DQo+IC0tLQ0KPiBTdHJpY3RseSBzcGVha2luZyBJT01NVXMgc3VwcG9ydGluZyBvbmx5IDMtbGV2
ZWwgdGFibGVzIG91Z2h0IHRvIHJlc3VsdA0KPiBpbiBndWVzdHMgc2VlaW5nIGEgc3VpdGFibHkg
cmVkdWNlZCBwaHlzaWNhbCBhZGRyZXNzIHdpZHRoIGluIENQVUlELg0KPiBBbmQgdGhlbiB0aGUg
c2FtZSB3b3VsZCBhcHBseSB0byByZXN0cmljdGlvbnMgcmVzdWx0aW5nIGZyb20gTUdBVy4NCg0K
WWVzLiBJIHJlbWVtYmVyIHRoZXJlIHdhcyBzb21lIG9sZCBkaXNjdXNzaW9uIGluIFFlbXUgY29t
bXVuaXR5DQpmb3Igd2hldGhlciBndWVzdCBwaHlzaWNhbCBhZGRyIHdpZHRoIHNob3VsZCBiZSBi
YXNlZCBvbiBJT01NVQ0KY29uc3RyYWludHMgd2hlbiBwYXNzdGhyb3VnaCBkZXZpY2UgaXMgdXNl
ZC4gQnV0IGl0IGRpZG4ndCBnbyBhbnl3aGVyZQ0KKGFuZCBJIGNhbm5vdCBmaW5kIHRoZSBsaW5r
Li4uKQ0KDQphbnl3YXkgd2l0aCBhYm92ZSBjb21tZW50IGZpeGVkOg0KDQoJUmV2aWV3ZWQtYnk6
IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPg0KDQo+IA0KPiAtLS0gYS94ZW4vZHJp
dmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYw0KPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy
b3VnaC92dGQvaW9tbXUuYw0KPiBAQCAtMzU2LDcgKzM1Niw3IEBAIHN0YXRpYyB1aW50NjRfdCBk
b21haW5fcGdkX21hZGRyKHN0cnVjdA0KPiAgICAgICAgICBwZ2RfbWFkZHIgPSBoZC0+YXJjaC52
dGQucGdkX21hZGRyOw0KPiAgICAgIH0NCj4gDQo+IC0gICAgLyogU2tpcCB0b3AgbGV2ZWxzIG9m
IHBhZ2UgdGFibGVzIGZvciAyLSBhbmQgMy1sZXZlbCBEUkhEcy4gKi8NCj4gKyAgICAvKiBTa2lw
IHRvcCBsZXZlbChzKSBvZiBwYWdlIHRhYmxlcyBmb3IgbGVzcy10aGFuLW1heGltdW0gbGV2ZWwg
RFJIRHMuICovDQo+ICAgICAgZm9yICggYWdhdyA9IGxldmVsX3RvX2FnYXcoNCk7DQo+ICAgICAg
ICAgICAgYWdhdyAhPSBsZXZlbF90b19hZ2F3KG5yX3B0X2xldmVscyk7DQo+ICAgICAgICAgICAg
YWdhdy0tICkNCj4gQEAgLTExODMsOCArMTE4Myw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGlvbW11
X3NldF9pbnRlcnJ1cHQoc3QNCj4gIGludCBfX2luaXQgaW9tbXVfYWxsb2Moc3RydWN0IGFjcGlf
ZHJoZF91bml0ICpkcmhkKQ0KPiAgew0KPiAgICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11Ow0K
PiAtICAgIHVuc2lnbmVkIGxvbmcgc2FnYXcsIG5yX2RvbTsNCj4gLSAgICBpbnQgYWdhdzsNCj4g
KyAgICB1bnNpZ25lZCBpbnQgc2FnYXcsIGFnYXcgPSAwLCBucl9kb207DQo+IA0KPiAgICAgIGlv
bW11ID0geHphbGxvYyhzdHJ1Y3QgdnRkX2lvbW11KTsNCj4gICAgICBpZiAoIGlvbW11ID09IE5V
TEwgKQ0KPiBAQCAtMTIzNywxNCArMTIzNiwxMyBAQCBpbnQgX19pbml0IGlvbW11X2FsbG9jKHN0
cnVjdCBhY3BpX2RyaGRfDQo+ICAgICAgICAgIHJldHVybiAtRU5PREVWOw0KPiAgICAgIH0NCj4g
DQo+IC0gICAgLyogQ2FsY3VsYXRlIG51bWJlciBvZiBwYWdldGFibGUgbGV2ZWxzOiBiZXR3ZWVu
IDIgYW5kIDQuICovDQo+ICsgICAgLyogQ2FsY3VsYXRlIG51bWJlciBvZiBwYWdldGFibGUgbGV2
ZWxzOiAzIG9yIDQuICovDQo+ICAgICAgc2FnYXcgPSBjYXBfc2FnYXcoaW9tbXUtPmNhcCk7DQo+
IC0gICAgZm9yICggYWdhdyA9IGxldmVsX3RvX2FnYXcoNCk7IGFnYXcgPj0gMDsgYWdhdy0tICkN
Cj4gLSAgICAgICAgaWYgKCB0ZXN0X2JpdChhZ2F3LCAmc2FnYXcpICkNCj4gLSAgICAgICAgICAg
IGJyZWFrOw0KPiAtICAgIGlmICggYWdhdyA8IDAgKQ0KPiArICAgIGlmICggc2FnYXcgJiA2ICkN
Cj4gKyAgICAgICAgYWdhdyA9IGZpbmRfZmlyc3Rfc2V0X2JpdChzYWdhdyAmIDYpOw0KPiArICAg
IGlmICggIWFnYXcgKQ0KPiAgICAgIHsNCj4gLSAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgVlRE
UFJFRklYICJJT01NVTogdW5zdXBwb3J0ZWQgc2FnYXcgJWx4XG4iLA0KPiBzYWdhdyk7DQo+ICsg
ICAgICAgIHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWCAiSU9NTVU6IHVuc3VwcG9ydGVkIHNh
Z2F3ICV4XG4iLA0KPiBzYWdhdyk7DQo+ICAgICAgICAgIHByaW50X2lvbW11X3JlZ3MoZHJoZCk7
DQo+ICAgICAgICAgIHJldHVybiAtRU5PREVWOw0KPiAgICAgIH0NCg0K


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 01:24:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 01:24:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229984.397622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mph0k-0000BR-Ib; Wed, 24 Nov 2021 01:23:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229984.397622; Wed, 24 Nov 2021 01:23:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mph0k-0000BK-EL; Wed, 24 Nov 2021 01:23:46 +0000
Received: by outflank-mailman (input) for mailman id 229984;
 Wed, 24 Nov 2021 01:23:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/oH=QL=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mph0i-00082u-SO
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 01:23:44 +0000
Received: from mga09.intel.com (mga09.intel.com [134.134.136.24])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 282375ab-4cc5-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 02:23:43 +0100 (CET)
Received: from fmsmga008.fm.intel.com ([10.253.24.58])
 by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Nov 2021 17:23:40 -0800
Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85])
 by fmsmga008.fm.intel.com with ESMTP; 23 Nov 2021 17:23:40 -0800
Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by
 fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 23 Nov 2021 17:23:39 -0800
Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by
 fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Tue, 23 Nov 2021 17:23:39 -0800
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168)
 by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Tue, 23 Nov 2021 17:23:33 -0800
Received: from BL1PR11MB5429.namprd11.prod.outlook.com (2603:10b6:208:30b::13)
 by MN2PR11MB4400.namprd11.prod.outlook.com (2603:10b6:208:18c::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Wed, 24 Nov
 2021 01:23:32 +0000
Received: from BL1PR11MB5429.namprd11.prod.outlook.com
 ([fe80::9061:212b:2fb5:41d0]) by BL1PR11MB5429.namprd11.prod.outlook.com
 ([fe80::9061:212b:2fb5:41d0%9]) with mapi id 15.20.4690.030; Wed, 24 Nov 2021
 01:23:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 282375ab-4cc5-11ec-a9d2-d9f7a1cc8784
X-IronPort-AV: E=McAfee;i="6200,9189,10177"; a="234997316"
X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; 
   d="scan'208";a="234997316"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; 
   d="scan'208";a="553635846"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=avMY7VpRYXsNqzLEl92zzMMGT9PMW9si5shQNSrXa/mvVnr1EcRtrGDRFPj7UntS5FxkGGSn1gk5XhCDNIyuHBctncEq9GRvjm1m3fiQNeMGQT5qedkKVMEcN/Jb1DWqdYGA54GZghVF3aWrggftHY8EIhjUCbY2Wu8pKorN7pWzdyZI3jtoa27agcUQkpK31cn/15yOTJ/ZC1S73GP4tq6lMwi+yMcFwWIqLLytOjanKJblAbfJ4V10W2saY1HZ/mRm2JQtmtDqCG2IBYq+OnKOYEAHlUxNQ+T7R0cAQ02lfZHc5oLhR6/D7UDq0e7rqwCflZrTJUI/SV+5gZslig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DnGpOOW9MY3UKObvDa0TpCDhi/memOjYMSQ/gF8TW3c=;
 b=CWyM3+ND56oli6CYJLlNulVtmmLm3FN2I53DzuD2qQzMvj+VnlekSqtNQ13WGmtPa24bpbnhOZFgVnpeJKmfFjHifs/yQY1SRdTrM6Ru9HPNfEafKAwr3Lzp5zg3II6/JOx2TrSZJG1YsTbQZ5XhqEIPV6MbMLFFUBHC3Ly+3ervvlWWC7M14LLPjL3DMo4eNxl0615y9Vb02HQstqKtKpV5siodrWT41gdxR69jeCJHwwOCc9AKXJrkyEVaKizjJKR2XqHhxwhwALY5EeUCZYRYSadK5rAYohzL8epB6J8ibQgnmJgU7LStChOuLkRAEB4OEcxwVHsTaj2vfdnPsQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DnGpOOW9MY3UKObvDa0TpCDhi/memOjYMSQ/gF8TW3c=;
 b=fxoyS2iMvzhUNnA/THIcZ0f0mUOEu470tFpR9rjpwrIF6t3eba4geYVXB5DWPy41pP84jzTK3eF/e1GQJA2gs0idLyla/eYEDIMMPGJsY+X8V83LVUbPAH8OgzGB1Bv+AW9xtqCeiD7/uUG2U8g2OcRqgSrBNGSShhgUJrYxKMQ=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 2/3] VT-d: correct off-by-1 in fault register range check
Thread-Topic: [PATCH 2/3] VT-d: correct off-by-1 in fault register range check
Thread-Index: AQHX4G+tcPZ6n1ych0OjZ1PkPCH9PKwR4tgQ
Date: Wed, 24 Nov 2021 01:23:32 +0000
Message-ID: <BL1PR11MB54291EC9078C0D7CB486FA4E8C619@BL1PR11MB5429.namprd11.prod.outlook.com>
References: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
 <c3627c85-916a-40eb-9601-9aba87eaf8ad@suse.com>
In-Reply-To: <c3627c85-916a-40eb-9601-9aba87eaf8ad@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: af190403-64a6-4a68-95a8-08d9aee907b5
x-ms-traffictypediagnostic: MN2PR11MB4400:
x-microsoft-antispam-prvs: <MN2PR11MB440060A6A7A80F07230548178C619@MN2PR11MB4400.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5516;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: BKWCYxeoKvLnlfeSAgAQvL60CUc4i0yBXEvqNemT7svKrF/q9pAqn7gtDOr+kLOjidE9No/pnY90whW1uh8LD9lPVB5ld38w/dIv2FAGnQSHKelJgyKRjoElsc15T/duN1k3pm+WoZgKtVZx/I+KF7oNgrXR944saMSKABzvzaO4THSzsVXpRvawxPQZrQ14LgXWifHWHxvCWV44EsO+Edksa4QOPWWGfONvOZ14XjLfPcZghnp7jXeaLQidmlQQtbfuZM16Qr0wDs0lHOFQg2BlznE5OlpkMNipmVprGxEj77uoZyO4FL29scnun8xWuAj7DOrE7DciTti6uuKXrZoqO3wCtysziOqlo/3BKyUB2P1rFdyWLN7hssaZg5efji2V6RpPBIg2VqLIgFUuoZjYEGzMz8sPMmZYrvHnuNLF3Zj0kc7MBOfq+vXWFC3kSxlU7O34l7Fdw7k10UYixFGLIc7KAjDYdOfHmFmntUVGi0ECDcEI64wuDC21Zyp43EhGI9um1pXbgPpYFmTiCu7KWejFVkvAKypLSczwjbuTAPtRkRNNg6xqUC0rLTv2jBcYbl2VkbRGuXVLFLqHiuyp6a40J3cMyVjRoVPEyvUWKZx+eha6A3Z/GyV4jCL2I2jzA0kJ2IgRHfUvw1YJr3vKWrPSIz/eyrG/Qjr6YUCYPQyFBddkjiJ/wekkGYxkdU2h2IvqaYtdbe0TE8d/lg==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5429.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(7696005)(38070700005)(8676002)(26005)(8936002)(110136005)(33656002)(86362001)(6506007)(82960400001)(186003)(38100700002)(64756008)(66556008)(66476007)(2906002)(9686003)(71200400001)(316002)(55016003)(66946007)(122000001)(66446008)(508600001)(4744005)(5660300002)(76116006)(52536014);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MFVZdVpwcFZ3cFdRa25zdXlLbUVzRHphMWNwUUVxNHo2VTVKaTd1alBsWFFv?=
 =?utf-8?B?KytYMGE4RklwdjllbGphVHFpYWlSblFIem1QblcwMzVCRjUyYm1yZTdlQlBi?=
 =?utf-8?B?cTlHVEUwNm8wTDJFUUgxYmNiN3R5TWRtTWZYYXR3UlVvSnArUE1mNnQwTWQx?=
 =?utf-8?B?eFlJU1gvdDFVM2MvbnBBUWZuc1lOb3VwbTMyRUJqNjV4aU1uY0lndjFETVRW?=
 =?utf-8?B?eldEWDBqK0ZzRTBlRWJDa3dYakhxVHA5eVBobE9jc1RScW5QVTBoUXRJMVpm?=
 =?utf-8?B?V1BEcG9XUlA1aXduSThyNmg5dVY3ME1yMEdnSGEweGVHejJ1L1FTa1pPZVdI?=
 =?utf-8?B?c1dtNU81OG9hSk9saTJJMHdFMG93K0VtUGN4VmU2THZOakpzbThMTStRS0tO?=
 =?utf-8?B?N0RVRmloNjFNdjBuR21mRjJ1UUJwdklnRTlsQ2R2bHpnbHQ5TmFlbnFRNVlv?=
 =?utf-8?B?aVhFMXR4Zks2QkJRQUhST29taU9sWVhObVgrVXZqYU4xT0JzUCtLYnR5RDJX?=
 =?utf-8?B?ZnlTU0VMWCtjb3E2TmNOVm5YVDE0NEgvdGdBaE1Pa2JwUVJEK1paVnAxaS9i?=
 =?utf-8?B?MCtoVnFEbWhsb3F3Z09PWnRxZHJRb2FPcm5HTCtnTlJLUUIzT29rZFZUK0o1?=
 =?utf-8?B?VkJqK1ZqeFZqYnhGbVRDUjFWUGZxSWdVSmw3WVNFWVhGN0pFdE50UU9SbDRC?=
 =?utf-8?B?c2xlZFRhQ3hqdHp3NCtMYmNyYlJ3UWFPUW1tcjVjZk9ZVkxmUlBvNXZzb0oz?=
 =?utf-8?B?bUNFYjZPc3pwa2V5S251TjQ1UWsrbmhZUmtmOVlORCsxdGdqc25abnloVWZa?=
 =?utf-8?B?V1hPSm5BNkl1NnZIT1djdXEwbVlXSG9PRlpCWm5CQjltNWRBMS9NQ3V6RUJh?=
 =?utf-8?B?MWV3L0dtWDJXYkRSeE03VlpxajJTQzdWL0p2a2ZiZTkrcytjRHR2ZUVqZE8x?=
 =?utf-8?B?YytEVmM1SXlYaDFERG1ZeGdHWUg3U2JVcFgxWCsxYnZQZWNRWmMwQVpmQ3I3?=
 =?utf-8?B?cENTdW5LNFRlZzRRb0gwWnA1VUIwS3dHRU1BeFRhTmIyL3ZBR0p1cm43eTBt?=
 =?utf-8?B?b1RCekdLazUxZHBocGxyZzhFKzZ2Yk1mVE5Hc3lQL3ordmplR3pGeE0wZmV3?=
 =?utf-8?B?RDVHRmpOMGRScmNsOW85QmhPNUEvYm1EWCtsM3RkUVEzcUVCc0tQanlyQnAx?=
 =?utf-8?B?azVaN0pBNWx3SGpVekEzZ2NTa3VGcURmcUNIVmd4K0UyL0FVTlVyMVZuZnpN?=
 =?utf-8?B?VjBXSm5oMGk5dXNvTkVmRlhMT2FSemtPaldrQjFMWVhkUDYyWGJkUlQ4Mjkv?=
 =?utf-8?B?aFhxSDZUYUxzcmdLZG1VaThpNUZMQU5EeThRVVNPTVIrNkhxanNSUGQvREpQ?=
 =?utf-8?B?V0oxU3Vzck9pY3pkVy9JMFdzanhGUW1uYnowR1lUbGd3YkZFdlJackJlUDhW?=
 =?utf-8?B?MG5JcUhpdFh1WEpVVkwrQnFxcWxuckdzc1hLVmdjcE82QTRPQlZ3U1RlTkRH?=
 =?utf-8?B?TUV2cGtka09Dc0JGYkxqbExJOUVlbVZYS1kzZk9rRXFhL0dhSWNNQUVEaDBB?=
 =?utf-8?B?enhUZDBoZkZBRzZ6d1ExYWFFNG5Id3Y2MzFKeXg0cytTM3N1TGZuK3VUVksz?=
 =?utf-8?B?NHE4L0xBRWNMb1ZrUnNKS0t6TE4zNk9oVkllMlBoK3NxeVlaS3NBak4xeVlW?=
 =?utf-8?B?TDRwZXk1RHcrcFkrd0d3N0xzRjQ3UnJPajhaMjU0NC9NSUd1cys1ZVM4N1h6?=
 =?utf-8?B?bWxkdTdXUkVnRDFUVE53NlVkQW9MT21HOFVHOGlQQ0pzSFVLNkNJa0g1WEFw?=
 =?utf-8?B?ZTRPU1kzWHNhRERhZlliSnJCSVFWSXFtWkUrREwvNktsRG5zM1dZSlJwdmF0?=
 =?utf-8?B?VmgvdndwRTBmOU1QZ3FuM0t4aG8zYk8zOFdiZktpUWhIQjZlWDE1OTFVOVJR?=
 =?utf-8?B?M3VpL3BwOWQ4WmNka1RpYnVkV2pTZzF5ZXFvb3E3Mng5ZkQ2LzFMWjdpMlZE?=
 =?utf-8?B?Q2QxTTQwVTRDUHd6TnhBOU9Cem43bXFXb2FjTlBRU0hFZ0s1U0p1S2dBT0lN?=
 =?utf-8?B?ZmwzcVAzTm9PRkNNN1EyRStPdkF5Ti9uNE0yL09LRlNDV2dFUWgvQnpodUNy?=
 =?utf-8?B?M1owWTNSZXN2dlhrbmtnUmhvMHk0WGgraHdkSzdibkYxWmh0cWZpM29kNnVB?=
 =?utf-8?Q?Cew1SnST6VDPXQBZZiz/UFA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5429.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: af190403-64a6-4a68-95a8-08d9aee907b5
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 01:23:32.8235
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 55Xjpa+qVEmQDe0NYL+MZicrmIL0OlXVpw/UdK/uvc3a+LSDuDt8uxjt/j/u137654CZjSsoplixw0XEwWGYGQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4400
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXks
IE5vdmVtYmVyIDIzLCAyMDIxIDk6NDAgUE0NCj4gDQo+IEFsbCBvdXIgcHJlc2VudCBpbXBsZW1l
bnRhdGlvbiByZXF1aXJlcyBpcyB0aGF0IHRoZSByYW5nZSBmdWxseSBmaXRzDQo+IGluIGEgc2lu
Z2xlIHBhZ2UuIE5vIG5lZWQgdG8gZXhjbHVkZSB0aGUgY2FzZSBvZiB0aGUgbGFzdCByZWdpc3Rl
cg0KPiBleHRlbmRpbmcgcmlnaHQgdG8gdGhlIGVuZCBvZiB0aGF0IHBhZ2UuDQo+IA0KPiBTaWdu
ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQoNClJldmlld2VkLWJ5
OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4NCg0KPiANCj4gLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMNCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro
cm91Z2gvdnRkL2lvbW11LmMNCj4gQEAgLTEyMjksNyArMTIyOSw3IEBAIGludCBfX2luaXQgaW9t
bXVfYWxsb2Moc3RydWN0IGFjcGlfZHJoZF8NCj4gICAgICBxdWlya19pb21tdV9jYXBzKGlvbW11
KTsNCj4gDQo+ICAgICAgaWYgKCBjYXBfZmF1bHRfcmVnX29mZnNldChpb21tdS0+Y2FwKSArDQo+
IC0gICAgICAgICBjYXBfbnVtX2ZhdWx0X3JlZ3MoaW9tbXUtPmNhcCkgKiBQUklNQVJZX0ZBVUxU
X1JFR19MRU4gPj0NCj4gUEFHRV9TSVpFIHx8DQo+ICsgICAgICAgICBjYXBfbnVtX2ZhdWx0X3Jl
Z3MoaW9tbXUtPmNhcCkgKiBQUklNQVJZX0ZBVUxUX1JFR19MRU4gPg0KPiBQQUdFX1NJWkUgfHwN
Cj4gICAgICAgICAgIGVjYXBfaW90bGJfb2Zmc2V0KGlvbW11LT5lY2FwKSA+PSBQQUdFX1NJWkUg
KQ0KPiAgICAgIHsNCj4gICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYICJJT01N
VTogdW5zdXBwb3J0ZWRcbiIpOw0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 01:25:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 01:25:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229995.397632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mph2r-0000rR-U9; Wed, 24 Nov 2021 01:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229995.397632; Wed, 24 Nov 2021 01:25:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mph2r-0000rK-Qt; Wed, 24 Nov 2021 01:25:57 +0000
Received: by outflank-mailman (input) for mailman id 229995;
 Wed, 24 Nov 2021 01:25:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/oH=QL=intel.com=kevin.tian@srs-se1.protection.inumbo.net>)
 id 1mph2q-0000rA-8d
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 01:25:56 +0000
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 769a0b47-4cc5-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 02:25:53 +0100 (CET)
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Nov 2021 17:25:51 -0800
Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86])
 by orsmga005.jf.intel.com with ESMTP; 23 Nov 2021 17:25:51 -0800
Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by
 fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 23 Nov 2021 17:25:51 -0800
Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by
 fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Tue, 23 Nov 2021 17:25:51 -0800
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168)
 by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Tue, 23 Nov 2021 17:25:50 -0800
Received: from BL1PR11MB5429.namprd11.prod.outlook.com (13.101.93.109) by
 MN2PR11MB4509.namprd11.prod.outlook.com (52.135.39.90) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.27; Wed, 24 Nov 2021 01:25:48 +0000
Received: from BL1PR11MB5429.namprd11.prod.outlook.com
 ([fe80::9061:212b:2fb5:41d0]) by BL1PR11MB5429.namprd11.prod.outlook.com
 ([fe80::9061:212b:2fb5:41d0%9]) with mapi id 15.20.4690.030; Wed, 24 Nov 2021
 01:25:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 769a0b47-4cc5-11ec-9787-a32c541c8605
X-IronPort-AV: E=McAfee;i="6200,9189,10177"; a="259058080"
X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; 
   d="scan'208";a="259058080"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; 
   d="scan'208";a="674690612"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=V24IkZn+bR7FjFGfHfxqjTbB6F2zoj99qyAKQYRYPcIyJCPv8Tqo4Ts42CHudrkEraL5mxTmf66GhWnsPkksNrOxhSbIKNU15kbWeNp2+2YdUazqNSp3sdcC9w367nPvxUBZ9205/eCKfChTTfsbb91oK/O9rn7CToJbi3Ni5DtVa+wObQ/RYVbGZjquQGUgQT94DFYoIpPrCNAAm7tms4fX05B2UNhb23j0tTypXauVK1tIe+Oy9f0TNQAJjTqLXdzGDAwMdPWnVsXoQEUnxuyjmCmcTV/oJqJooTDU0GiVxzq3ei+LoRTq5sA3cf4Ri/pBSaQQVBsz6RIfYT+kTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yTA9SFOXWewWt75ThHnKxE0AefTksWmZKDLROtq//R4=;
 b=ElH9EG+Wg5DALwtHhf/QIv5QDKBauqbGQuBnROWG6SNKpEB++2j9Fa69eljo45eRJ559UJFfV1CB500Bins2QKy11ywOeyQRtOdcVBgZIM10U7uXIFkn/5oUXhhiKwqoSF1YsxOguhJo8IqGXQ8FQO1t1oHnUyJN1Ojd5Pdm9B3tyo6orb28R5giU6rHGJvHQI4rTSrYLbTXJJqpVCcfE/sB+8t3gLRFrcFQazgHCwYR9jYWsWXSqVfju/253EJ49qjsxlOjiPiXiY2qh8fXMI5o7dwti0kA3QMGiDoVHjXbWc6nfQICBcqZOCJdEi87vJAYRAm4a19nfcqthahFfw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yTA9SFOXWewWt75ThHnKxE0AefTksWmZKDLROtq//R4=;
 b=ZUCrezDNiZPgte77xYjrnc3mcHhqYsj0FpLVbFD5XKdPa6INrkdja7rsf8bCZnJknY1JPJw/tskvdwgr3Oj3SwGxgekrgopDVsvaxNp9VlhEQc61Ro5oxqBJLA9Tap02UY+94kIK7ZlYQDg7IPKHsI1hCI42OQgO6PvwrJzw6fU=
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 3/3] VT-d: conditionalize IOTLB register offset check
Thread-Topic: [PATCH 3/3] VT-d: conditionalize IOTLB register offset check
Thread-Index: AQHX4G+5FQV+mmRGK0Oi07D8aTZRP6wR4u0Q
Date: Wed, 24 Nov 2021 01:25:48 +0000
Message-ID: <BL1PR11MB5429DA6FC5B711B6E9775D7F8C619@BL1PR11MB5429.namprd11.prod.outlook.com>
References: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
 <63da915f-03dc-f846-3c6b-e90890d1f8fc@suse.com>
In-Reply-To: <63da915f-03dc-f846-3c6b-e90890d1f8fc@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 24f4f984-5a6a-4479-5264-08d9aee95864
x-ms-traffictypediagnostic: MN2PR11MB4509:
x-microsoft-antispam-prvs: <MN2PR11MB45096FA64650ED5DF2CA76EB8C619@MN2PR11MB4509.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: q0epxPNoObWp3EuyEgFQdHk+vwwmxZ3ptConwJE21pE6taDUsrRVvsw1/pNlcc7F4LYSY0Crntn/a0up/Leo0dhqBdt8Fk6hQbZ7hKn32zGC+M8dBI4EZi12LONXfT8NwklwTYpuv7qZNLLGJJhS3pS127BMflFsnCSan3+telyUfecjEFpVeO46V9/PtnNZ1wj9ZvqXgFlc1N9OSFLpXJZbTg2xs8cUE1SGTgNUMYqHEaX42VfqrWkhOh7n2ykJ1cjqKbtoOvt/ijspvtcGttdL1T1Re5AjSxqnjvzNekfaNlVYUMNHLBQTmmoRI9fJnfICC+XqItNK3GA6w8czBdn1aC/bpdnQICjfwEYi2Z8ELoeyH2KJapN2gma2LzDHN06zJxqUFv9bMSoj4ce5uECpaSdXxGbSKjxCrl03WIexIkrdJqjBs8dUV3TtYUeIAx2OXPFBdGgmfw836jIHBqVNf6jkfdW/e58DDtcwfaejszTdOY+vzzdvMSMCshHqeCgGs5e+y3Fhn0gkuEj2weknwIZldBgWY5uPBlfnct3caCq18KsAMYF0Ml42Hz5hrqBXuVQvXQsFDd44besj80OZXm9xIU6czam3Z2TOOytjGr+/85JhKBOV7x/KShtO0quI2K7XCgwUBwI34NTCNM4L5jatH+2bi2LH8cw7gZ85FWuMliataAtu11ZHIdRdoPFpSSdZfWnAzKWrexi6cQ==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5429.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(76116006)(82960400001)(66556008)(508600001)(26005)(8676002)(66446008)(2906002)(38070700005)(52536014)(6506007)(66946007)(83380400001)(86362001)(66476007)(33656002)(316002)(64756008)(9686003)(5660300002)(55016003)(7696005)(71200400001)(110136005)(38100700002)(8936002)(122000001)(186003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eW1vcDBRNjRESGtOWVFsN1dEVXY3ZTZxRURXUHZJYXFVSHpRbU9Vanl1WEhL?=
 =?utf-8?B?NHlQYlRvOUFsZDIwemowR1FHT0UxbEhseFphc0l2WmpvY1lsTjN6bkNVMU9S?=
 =?utf-8?B?Ni93N00wRnBiWUlSc0NFWjRpdllZMXR5Nm9RMzkvKzVwM29RVDE4NDRkK1ll?=
 =?utf-8?B?a3RGRWoxTGdwNkhvYUFEU0FEcjEySm9pQlRaamprenA4K0NNQ2lxMHlVV0hu?=
 =?utf-8?B?UjFWNVFkdmx0ZkV4dGpCZHJET3FQb0xtemFpUjZ6WkJJVmpEdXJ5TjJkdnFv?=
 =?utf-8?B?U3NWRnhibWxITzFGUmk3eGZpWVBQREZoSm0wS1BOU2tCNnhJdGg4MjlLaE5w?=
 =?utf-8?B?Y2QvMmk2SWZHZm9XRXF4ejYyV0lkNmNFTCsvOU5mVmc0RGROSHBwT1ZVeTU5?=
 =?utf-8?B?SkQvN0EvSUl2QVdNUmNzQUNxeElGQmpSMG85VThaNlBTeFFRdThVNWpNbVlt?=
 =?utf-8?B?bnlOMUdodXkvOVFuWVNobHJXNzVOVThGTWIrbjJVVGFobEhHQWlCWDVhNnVK?=
 =?utf-8?B?SHhsV0ZaaXBlT1p5NVRlVVdOTjU0UUJzUGlOWjg4aWExVU9uMUNLeVZpTENU?=
 =?utf-8?B?VEFzaVIyaHFOVk10V3ZOS3ZkUFdISmg1QXJIMmJWNnZONWlOelQwaGFrelFj?=
 =?utf-8?B?ZUs0a2ExTlRUdktYTVhFVEh1MTJmME5OV2E4SnNLRmNCRDh6bjFVK0gwa0tU?=
 =?utf-8?B?YnFBTlpyL3dqVnhtVWcraHlEblhhb25jWlJqTnh0VWVWblVvTU92N1RsZ0FN?=
 =?utf-8?B?Qi9Fb0ZibmRjRlhBRWNnOHRQTytDS2pEeVppTTl1Z3FsakVkdHNhMHVhTVYx?=
 =?utf-8?B?YVQzY21wdXVaVGE2U3lleVkvWXpZdDlvQlZqUUhUa1J1Vlh5S0FGNGRTRURU?=
 =?utf-8?B?Nkh6eWRvV0wzTzdRc1cvdFgyVmdST0NmUXczR0hHZWJzYVVIL044S3JGYlNH?=
 =?utf-8?B?TUxpMldOSHlhTW1sYmRwSVh6aUJoRVdtUXhkT0xYN1RCVG1DVGJlcDJjZXNs?=
 =?utf-8?B?bjRSOWNSbkhPRExnWjc5dXJaVXpvaGNUeElMcDdTNHMvYVFkTVJydTZ2NGky?=
 =?utf-8?B?ZGd4b25EbUFXaDFLV0h5cG9jL0RhcFJyWHlQTm5YSzFJblJVcDdxN1BxYzd6?=
 =?utf-8?B?NHdxRW55TWh4eURGODc2OGlkVXczV1JhS3M0emxJd3VIdVB6cGwxdit0Z3Bk?=
 =?utf-8?B?QVIxcnFDRG9xa3ZzMFdwdERIb0V6R0xYYktPWHl5OEdjZGo2dG12Q0p0UmVt?=
 =?utf-8?B?eHdLdGg3M09wcmdKbFYxd3l3SE9jbTNLTUVpSnZzdXc1elh3WTBEQVFtTEow?=
 =?utf-8?B?a2hWbTRmV0gzK2IxWDRoK2lFYTlUM3ZYQ04rZUhMZHI3aTkyTXFxL01pYVNU?=
 =?utf-8?B?b2F1MWNrdjFWRkVzNU1nYUFWbDNDS253K2RTZldSSVluTDR1c1NMZm5OY2M5?=
 =?utf-8?B?MFNmMGhhRm5HR2tJdERyVHpWQ2hHaWZXSkdSdnhJZVpvMmN6VFo5UlVYU21M?=
 =?utf-8?B?TWpyMDh2ZWp3c2M5QXdlN0duWUNrY05SR2FoNDJKSDRNRUtRZ3ZtdU10SVVG?=
 =?utf-8?B?ZXRIbm5OMDZzbzN0dEFnbXBXTDFmVDNYZXV3V1FaTVpZSCtSVUw2TTlWUnpl?=
 =?utf-8?B?VWtKcDFMbUJxb1ZPb2NLSkJlNUVSemk5V0F3eHljRlRwQmg3cXkzY1BJdU1u?=
 =?utf-8?B?Uk5TYUIzZ2Fld3FHN0oyaVVNZTNZYy81U21wa1pENGkxT3VBejdMVlZ5YUdp?=
 =?utf-8?B?aVpjZDJUTktuUkF4YVFiUVRqbG8vcDZNcTJzVExqQWNhSGFmVlROTGl0K2l5?=
 =?utf-8?B?TlVsdmFjOElQY0Rwc0dQajk2cW1FN1Z4WC9mcHoya0FQRDVOQUk0RHMwazNR?=
 =?utf-8?B?YUhzRXZvblcvL282NnA0V2dqR0draVpWd2ZXNUI5RUl4dHpaSFpDVnVJR2pz?=
 =?utf-8?B?bVZrRmZXREtzajgvenBRZGlIMkhjMDkzMWhXaDhYb1hrRFBRM1lUT0NJbTRj?=
 =?utf-8?B?bllmdzE1L0FWaGFqdW15a1NQb1ZjUVZmZld5RUtRWUMwTXJPTWIvUHJHQmg5?=
 =?utf-8?B?V3MzcW9HMmNxUXJwTUpQWW1JYkdHL095RnkzWVZYME1uZ0FHKyt2ZmlYM2Zy?=
 =?utf-8?B?allJa0RaR0xYbHNYejdzalBoSnYxWUxIczMwSStTQ1Bud244aFRMZjd1UzFB?=
 =?utf-8?Q?FVkgTjKE7vgZkVrVgzvGhWk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5429.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 24f4f984-5a6a-4479-5264-08d9aee95864
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 01:25:48.1814
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: tm7aAbU3riyB6BNVA9x4cUAVnjp4Lrq8idUTEwuJAtUhdsAaikUA3/sfswQARLLSRCRQAG2VbjrEzu/fdfGKIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4509
X-OriginatorOrg: intel.com

PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXks
IE5vdmVtYmVyIDIzLCAyMDIxIDk6NDAgUE0NCj4gDQo+IEFzIG9mIGNvbW1pdCA2NzczYjFhNzU4
NGEgKCJWVC1kOiBEb24ndCBhc3N1bWUgcmVnaXN0ZXItYmFzZWQNCj4gaW52YWxpZGF0aW9uIGlz
IGFsd2F5cyBzdXBwb3J0ZWQiKSB3ZSBkb24ndCAodHJ5IHRvKSB1c2UgcmVnaXN0ZXIgYmFzZWQN
Cj4gaW52YWxpZGF0aW9uIGFueW1vcmUgd2hlbiB0aGF0J3Mgbm90IHN1cHBvcnRlZCBieSBoYXJk
d2FyZS4gSGVuY2UNCj4gdGhlcmUncyBhbHNvIG5vIHBvaW50IGluIHRoZSByZXNwZWN0aXZlIGNo
ZWNrLCBhdm9pZGluZyBwb2ludGxlc3MgSU9NTVUNCj4gaW5pdGlhbGl6YXRpb24gZmFpbHVyZS4g
QWZ0ZXIgYWxsIHRoZSBzcGVjICh2ZXJzaW9uIDMuMyBhdCB0aGUgdGltZSBvZg0KPiB3cml0aW5n
KSBkb2Vzbid0IHNheSB3aGF0IHRoZSByZXNwZWN0aXZlIEV4dGVuZGVkIENhcGFiaWxpdHkgUmVn
aXN0ZXINCj4gZmllbGQgd291bGQgY29udGFpbiBpbiBzdWNoIGEgY2FzZS4NCj4gDQo+IFNpZ25l
ZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCg0KUmV2aWV3ZWQtYnk6
IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPg0KDQo+IA0KPiAtLS0gYS94ZW4vZHJp
dmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYw0KPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy
b3VnaC92dGQvaW9tbXUuYw0KPiBAQCAtMTIyOCw3ICsxMjI4LDggQEAgaW50IF9faW5pdCBpb21t
dV9hbGxvYyhzdHJ1Y3QgYWNwaV9kcmhkXw0KPiANCj4gICAgICBpZiAoIGNhcF9mYXVsdF9yZWdf
b2Zmc2V0KGlvbW11LT5jYXApICsNCj4gICAgICAgICAgIGNhcF9udW1fZmF1bHRfcmVncyhpb21t
dS0+Y2FwKSAqIFBSSU1BUllfRkFVTFRfUkVHX0xFTiA+DQo+IFBBR0VfU0laRSB8fA0KPiAtICAg
ICAgICAgZWNhcF9pb3RsYl9vZmZzZXQoaW9tbXUtPmVjYXApID49IFBBR0VfU0laRSApDQo+ICsg
ICAgICAgICAoaGFzX3JlZ2lzdGVyX2Jhc2VkX2ludmFsaWRhdGlvbihpb21tdSkgJiYNCj4gKyAg
ICAgICAgICBlY2FwX2lvdGxiX29mZnNldChpb21tdS0+ZWNhcCkgPj0gUEFHRV9TSVpFKSApDQo+
ICAgICAgew0KPiAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVggIklPTU1VOiB1
bnN1cHBvcnRlZFxuIik7DQo+ICAgICAgICAgIHByaW50X2lvbW11X3JlZ3MoZHJoZCk7DQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 01:26:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 01:26:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229996.397644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mph30-0001C0-6k; Wed, 24 Nov 2021 01:26:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229996.397644; Wed, 24 Nov 2021 01:26:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mph30-0001Bt-2d; Wed, 24 Nov 2021 01:26:06 +0000
Received: by outflank-mailman (input) for mailman id 229996;
 Wed, 24 Nov 2021 01:26:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mph2y-0001Ak-Qm; Wed, 24 Nov 2021 01:26:04 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mph2y-00025h-Gv; Wed, 24 Nov 2021 01:26:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mph2y-0004Nv-6M; Wed, 24 Nov 2021 01:26:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mph2y-0005Qb-5o; Wed, 24 Nov 2021 01:26:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ysKwqtAI+qVvwPpBrIz5XnAH1froXQTGrdi3qyufNDY=; b=IASWCprodO2BvdN7bXJ/N2iPtK
	/HC7Q60G0wam4bIbWnka5xevSDrxpFfDA6ckdXV9PZjl3y4RbdSX0F6lxA57rbp0z9DfbBDegx/7j
	2/tLj3oiDtpgZBXSgNvqE0aAkfD+OLl5qsRwYsLjlUKONQAI2XxldG6Yw8k5NpOKAVLE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166322-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.16-testing baseline test] 166322: FAIL
X-Osstest-Failures:
    xen-4.16-testing:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:syslog-server:running:regression
    xen-4.16-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:syslog-server:running:regression
    xen-4.16-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:STARTING:running:regression
    xen-4.16-testing:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:guest-start/debianhvm.repeat:running:regression
    xen-4.16-testing:test-amd64-i386-xl-qemut-win7-amd64:windows-install:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64:xen-install:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:debian-hvm-install:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-shadow:debian-install:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-xsm:debian-install:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-freebsd10-amd64:freebsd-install:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-freebsd10-i386:freebsd-install:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-qemut-rhel6hvm-intel:redhat-install:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemuu-win7-amd64:windows-install:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemut-ws16-amd64:windows-install:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl:guest-start.2:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:xen-boot:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Nov 2021 01:26:04 +0000

"Old" tested version had not actually been tested; therefore in this
flight we test it, rather than a new candidate.  The baseline, if
any, is the most recent actually tested revision.

flight 166322 xen-4.16-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166322/

Failures and problems with tests :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm  4 syslog-server running
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm  4 syslog-server     running
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 STARTING          running
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 20 guest-start/debianhvm.repeat running

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemut-win7-amd64 12 windows-install  fail baseline untested
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 7 xen-install fail baseline untested
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 12 debian-hvm-install fail baseline untested
 test-amd64-amd64-xl-shadow   12 debian-install          fail baseline untested
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail baseline untested
 test-amd64-i386-xl-xsm       12 debian-install          fail baseline untested
 test-amd64-i386-freebsd10-amd64 12 freebsd-install      fail baseline untested
 test-amd64-i386-freebsd10-i386 12 freebsd-install       fail baseline untested
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail baseline untested
 test-amd64-i386-qemut-rhel6hvm-intel 12 redhat-install  fail baseline untested
 test-amd64-i386-xl-qemuu-win7-amd64 12 windows-install  fail baseline untested
 test-amd64-i386-xl-qemut-ws16-amd64 12 windows-install  fail baseline untested
 test-amd64-amd64-xl          23 guest-start.2           fail baseline untested
 test-armhf-armhf-xl-arndale   8 xen-boot                fail baseline untested
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop      fail baseline untested
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop      fail baseline untested
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop      fail baseline untested
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail baseline untested
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail baseline untested
 test-armhf-armhf-libvirt   16 saverestore-support-check fail baseline untested
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop      fail baseline untested
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail baseline untested
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail baseline untested
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop       fail baseline untested
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166322  2021-11-23 17:05:15 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            fail    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              fail    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         fail    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   fail    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 02:00:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 02:00:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230011.397658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpha8-0005tV-U6; Wed, 24 Nov 2021 02:00:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230011.397658; Wed, 24 Nov 2021 02:00:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpha8-0005tO-R9; Wed, 24 Nov 2021 02:00:20 +0000
Received: by outflank-mailman (input) for mailman id 230011;
 Wed, 24 Nov 2021 02:00:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpha8-0005tE-3W; Wed, 24 Nov 2021 02:00:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpha7-00037f-Ra; Wed, 24 Nov 2021 02:00:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpha7-0006u4-HN; Wed, 24 Nov 2021 02:00:19 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpha7-0001Au-Gr; Wed, 24 Nov 2021 02:00:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=9ihq4BTqaTrT8g+QR4jE2fc0+6VYZhLDUNvZAbtXvxI=; b=rS8/sm/h+KA5OTFB5PkziBbiKZ
	2Xwru1o3BOgS2B+apeSEv+vTBc3p7oPOr1m3r4iExL4KitZFr5mt9XBOA2omBK1CG0Q0HBrXOk6Oe
	goYUKVUMRVrzgqPgz16SogUyg7yA3ChC49Ws5m9lMAkRc7bYuO7LXg/P521aqFVy9iRc=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166311-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.15-testing test] 166311: regressions - FAIL
X-Osstest-Failures:
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl:debian-install:fail:regression
    xen-4.15-testing:test-amd64-amd64-xl-credit2:debian-install:fail:regression
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-ovmf-amd64:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:guest-start/debianhvm.repeat:fail:regression
    xen-4.15-testing:test-amd64-i386-xl-qemut-debianhvm-amd64:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ovmf-amd64:debian-hvm-install:running:regression
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ovmf-amd64:syslog-server:running:regression
    xen-4.15-testing:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=544e547a63175ac6ef7cc29c4f5bda88da024f69
X-Osstest-Versions-That:
    xen=963ab606b1228788eac54c1c7ff70d04bb325733
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Nov 2021 02:00:19 +0000

flight 166311 xen-4.15-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166311/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl           12 debian-install           fail REGR. vs. 166198
 test-amd64-amd64-xl-credit2  12 debian-install           fail REGR. vs. 166198
 test-amd64-amd64-xl-qemuu-ovmf-amd64 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 14 guest-start/debianhvm.repeat fail REGR. vs. 166198
 test-amd64-i386-xl-qemut-debianhvm-amd64 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl-qemuu-ovmf-amd64 12 debian-hvm-install           running
 test-amd64-i386-xl-qemuu-ovmf-amd64  4 syslog-server                running

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166198
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166198
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166198
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166198
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166198
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166198
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166198
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166198
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166198
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166198
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166198
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166198
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166198
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  544e547a63175ac6ef7cc29c4f5bda88da024f69
baseline version:
 xen                  963ab606b1228788eac54c1c7ff70d04bb325733

Last test of basis   166198  2021-11-19 19:38:51 Z    4 days
Testing same since   166311  2021-11-23 12:38:47 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           fail    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  fail    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         fail    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          fail    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  fail    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         fail    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              fail    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 544e547a63175ac6ef7cc29c4f5bda88da024f69
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:26:29 2021 +0100

    x86/P2M: deal with partial success of p2m_set_entry()
    
    M2P and PoD stats need to remain in sync with P2M; if an update succeeds
    only partially, respective adjustments need to be made. If updates get
    made before the call, they may also need undoing upon complete failure
    (i.e. including the single-page case).
    
    Log-dirty state would better also be kept in sync.
    
    Note that the change to set_typed_p2m_entry() may not be strictly
    necessary (due to the order restriction enforced near the top of the
    function), but is being kept here to be on the safe side.
    
    This is CVE-2021-28705 and CVE-2021-28709 / XSA-389.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 74a11c43fd7e074b1f77631b446dd2115eacb9e8
    master date: 2021-11-22 12:27:30 +0000

commit 4429ca0b29f481a2abfcc81990c5ac1f96276cb2
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:26:22 2021 +0100

    x86/PoD: handle intermediate page orders in p2m_pod_cache_add()
    
    p2m_pod_decrease_reservation() may pass pages to the function which
    aren't 4k, 2M, or 1G. Handle all intermediate orders as well, to avoid
    hitting the BUG() at the switch() statement's "default" case.
    
    This is CVE-2021-28708 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 8ec13f68e0b026863d23e7f44f252d06478bc809
    master date: 2021-11-22 12:27:30 +0000

commit 1da54becd5de7e55b2b66665bedc2f30964dbd33
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:26:12 2021 +0100

    x86/PoD: deal with misaligned GFNs
    
    Users of XENMEM_decrease_reservation and XENMEM_populate_physmap aren't
    required to pass in order-aligned GFN values. (While I consider this
    bogus, I don't think we can fix this there, as that might break existing
    code, e.g Linux'es swiotlb, which - while affecting PV only - until
    recently had been enforcing only page alignment on the original
    allocation.) Only non-PoD code paths (guest_physmap_{add,remove}_page(),
    p2m_set_entry()) look to be dealing with this properly (in part by being
    implemented inefficiently, handling every 4k page separately).
    
    Introduce wrappers taking care of splitting the incoming request into
    aligned chunks, without putting much effort in trying to determine the
    largest possible chunk at every iteration.
    
    Also "handle" p2m_set_entry() failure for non-order-0 requests by
    crashing the domain in one more place. Alongside putting a log message
    there, also add one to the other similar path.
    
    Note regarding locking: This is left in the actual worker functions on
    the assumption that callers aren't guaranteed atomicity wrt acting on
    multiple pages at a time. For mis-aligned GFNs gfn_lock() wouldn't have
    locked the correct GFN range anyway, if it didn't simply resolve to
    p2m_lock(), and for well-behaved callers there continues to be only a
    single iteration, i.e. behavior is unchanged for them. (FTAOD pulling
    out just pod_lock() into p2m_pod_decrease_reservation() would result in
    a lock order violation.)
    
    This is CVE-2021-28704 and CVE-2021-28707 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 182c737b9ba540ebceb1433f3940fbed6eac4ea9
    master date: 2021-11-22 12:27:30 +0000

commit d02631a21530918501f7e11320667dde7829cbb5
Author: Julien Grall <jgrall@amazon.com>
Date:   Tue Nov 23 13:25:50 2021 +0100

    xen/page_alloc: Harden assign_pages()
    
    domain_tot_pages() and d->max_pages are 32-bit values. While the order
    should always be quite small, it would still be possible to overflow
    if domain_tot_pages() is near to (2^32 - 1).
    
    As this code may be called by a guest via XENMEM_increase_reservation
    and XENMEM_populate_physmap, we want to make sure the guest is not going
    to be able to allocate more than it is allowed.
    
    Rework the allocation check to avoid any possible overflow. While the
    check domain_tot_pages() < d->max_pages should technically not be
    necessary, it is probably best to have it to catch any possible
    inconsistencies in the future.
    
    This is CVE-2021-28706 / part of XSA-385.
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 143501861d48e1bfef495849fd68584baac05849
    master date: 2021-11-22 11:11:05 +0000
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 03:34:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 03:34:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230019.397678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpj2v-0005uc-SH; Wed, 24 Nov 2021 03:34:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230019.397678; Wed, 24 Nov 2021 03:34:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpj2v-0005uV-P5; Wed, 24 Nov 2021 03:34:09 +0000
Received: by outflank-mailman (input) for mailman id 230019;
 Wed, 24 Nov 2021 03:34:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpj2u-0005uL-F9; Wed, 24 Nov 2021 03:34:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpj2u-0004cQ-9d; Wed, 24 Nov 2021 03:34:08 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpj2u-00048L-2o; Wed, 24 Nov 2021 03:34:08 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpj2u-0001h0-23; Wed, 24 Nov 2021 03:34:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=aVbMkg2XqlY3ZBY9+b8NoGtRZqzcDH97fChzUcyXkuM=; b=iZ1y3ts4xqUTTbRWjsky09YMO1
	6sknXspiS7WQrtKIPKnpFp9BzUQntB5jQv+bNzqqiElyaSni2+00EnzMpoE1R18+isQcCR6sSlPbw
	61vv5uVtiaIKcK/6Flrj1CC6AsedpqLcWx/z4mJARhnv3feFHI91BbZ++2HDL+snmLrw=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166332-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166332: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a5706b80f42e028c5153fc50734a1e86a99ff9d2
X-Osstest-Versions-That:
    xen=74a11c43fd7e074b1f77631b446dd2115eacb9e8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Nov 2021 03:34:08 +0000

flight 166332 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166332/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a5706b80f42e028c5153fc50734a1e86a99ff9d2
baseline version:
 xen                  74a11c43fd7e074b1f77631b446dd2115eacb9e8

Last test of basis   166312  2021-11-23 13:00:27 Z    0 days
Testing same since   166326  2021-11-23 18:01:44 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   74a11c43fd..a5706b80f4  a5706b80f42e028c5153fc50734a1e86a99ff9d2 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 05:07:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 05:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229973.397709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkVV-0006p8-Un; Wed, 24 Nov 2021 05:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229973.397709; Wed, 24 Nov 2021 05:07:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkVV-0006mZ-Pd; Wed, 24 Nov 2021 05:07:45 +0000
Received: by outflank-mailman (input) for mailman id 229973;
 Wed, 24 Nov 2021 00:19:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=j+06=QL=huawei.com=longpeng2@srs-se1.protection.inumbo.net>)
 id 1mpg0a-0008Tp-UM
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 00:19:33 +0000
Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e6caec0-4cbc-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 01:19:28 +0100 (CET)
Received: from dggpemm500020.china.huawei.com (unknown [172.30.72.56])
 by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4HzM4y7539z1DJTY;
 Wed, 24 Nov 2021 08:16:50 +0800 (CST)
Received: from dggpemm500007.china.huawei.com (7.185.36.183) by
 dggpemm500020.china.huawei.com (7.185.36.49) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.20; Wed, 24 Nov 2021 08:19:22 +0800
Received: from dggpeml100016.china.huawei.com (7.185.36.216) by
 dggpemm500007.china.huawei.com (7.185.36.183) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.20; Wed, 24 Nov 2021 08:19:22 +0800
Received: from dggpeml100016.china.huawei.com ([7.185.36.216]) by
 dggpeml100016.china.huawei.com ([7.185.36.216]) with mapi id 15.01.2308.020;
 Wed, 24 Nov 2021 08:19:22 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e6caec0-4cbc-11ec-a9d2-d9f7a1cc8784
From: "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)"
	<longpeng2@huawei.com>
To: Valentin Schneider <valentin.schneider@arm.com>, Sebastian Andrzej Siewior
	<bigeasy@linutronix.de>
CC: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Gonglei
 (Arei)" <arei.gonglei@huawei.com>, "x86@kernel.org" <x86@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Peter
 Zijlstra" <peterz@infradead.org>, Ingo Molnar <mingo@kernel.org>, "Boris
 Ostrovsky" <boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Thomas Gleixner
	<tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin"
	<hpa@zytor.com>
Subject: RE: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
Thread-Topic: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
Thread-Index: AQHX37hRU5zyn85RmkiAPYCSmtUPkawQ5hYAgADlkmA=
Date: Wed, 24 Nov 2021 00:19:22 +0000
Message-ID: <408748bfefde4a1b963382d372792661@huawei.com>
References: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
 <87r1b6d9kl.mognet@arm.com>
In-Reply-To: <87r1b6d9kl.mognet@arm.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.174.148.223]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected



> -----Original Message-----
> From: Valentin Schneider [mailto:valentin.schneider@arm.com]
> Sent: Wednesday, November 24, 2021 2:14 AM
> To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>; Longpeng (Mike, Cl=
oud
> Infrastructure Service Product Dept.) <longpeng2@huawei.com>
> Cc: linux-kernel@vger.kernel.org; Gonglei (Arei) <arei.gonglei@huawei.com=
>;
> x86@kernel.org; xen-devel@lists.xenproject.org; Peter Zijlstra
> <peterz@infradead.org>; Ingo Molnar <mingo@kernel.org>; Boris Ostrovsky
> <boris.ostrovsky@oracle.com>; Juergen Gross <jgross@suse.com>; Stefano
> Stabellini <sstabellini@kernel.org>; Thomas Gleixner <tglx@linutronix.de>=
;
> Ingo Molnar <mingo@redhat.com>; Borislav Petkov <bp@alien8.de>; Dave Hans=
en
> <dave.hansen@linux.intel.com>; H. Peter Anvin <hpa@zytor.com>
> Subject: Re: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state t=
o be
> brought up again.
>=20
> On 22/11/21 16:47, Sebastian Andrzej Siewior wrote:
> > From: "Longpeng(Mike)" <longpeng2@huawei.com>
> >
> > A CPU will not show up in virtualized environment which includes an
> > Enclave. The VM splits its resources into a primary VM and a Enclave
> > VM. While the Enclave is active, the hypervisor will ignore all request=
s
> > to bring up a CPU and this CPU will remain in CPU_UP_PREPARE state.
> > The kernel will wait up to ten seconds for CPU to show up
> > (do_boot_cpu()) and then rollback the hotplug state back to
> > CPUHP_OFFLINE leaving the CPU state in CPU_UP_PREPARE. The CPU state is
> > set back to CPUHP_TEARDOWN_CPU during the CPU_POST_DEAD stage.
> >
>=20
> For my own education, this is talking about *host* CPU hotplug, right?
>=20

It's about the *guest* CPU hotplug.

1. Users in Primary VM:
Split out vcpuX (offline from Primary VM) for Enclave VM

2. Hypervisor:
Set a flag for vcpuX, all requests from Primary VM to bring up vcpuX
will be ignore.

3. Users in Primary VM:
echo 1 > .../vcpuX/online would fail and leave the CPU state of vcpuX
in CPU_UP_PREPARE.

4. Users in Primary VM terminate the Enclave VM:
Hypervisor should clear the flag (set in step 2) of vcpuX, so the vcpuX
can continue to receive requests.

5. Users in Primary VM:
Try to online the vcpuX again (expect success), but it's always failed.


> > After the Enclave VM terminates, the primary VM can bring up the CPU
> > again.
> >
> > Allow to bring up the CPU if it is in the CPU_UP_PREPARE state.
> >
> > [bigeasy: Rewrite commit description.]
> >
> > Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> > Link: https://lore.kernel.org/r/20210901051143.2752-1-longpeng2@huawei.=
com
> > ---
> >
> > For XEN: this changes the behaviour as it allows to invoke
> > cpu_initialize_context() again should it have have earlier. I *think*
> > this is okay and would to bring up the CPU again should the memory
> > allocation in cpu_initialize_context() fail.
>=20
> Virt stuff notwithstanding, that looks OK to me.
> Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
>=20
> That said, AFAICT only powerpc makes actual use of the state being set to
> CPU_UP_PREPARE, it looks to be needless bookkeeping for everyone else (an=
d
> there's archs that seem happy using only CPU_DEAD / CPU_POST_DEAD).
>=20
> >
> >  kernel/smpboot.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/kernel/smpboot.c b/kernel/smpboot.c
> > index f6bc0bc8a2aab..34958d7fe2c1c 100644
> > --- a/kernel/smpboot.c
> > +++ b/kernel/smpboot.c
> > @@ -392,6 +392,13 @@ int cpu_check_up_prepare(int cpu)
> >                */
> >               return -EAGAIN;
> >
> > +	case CPU_UP_PREPARE:
> > +		/*
> > +		 * Timeout while waiting for the CPU to show up. Allow to try
> > +		 * again later.
> > +		 */
> > +		return 0;
> > +
> >       default:
> >
> >               /* Should not happen.  Famous last words. */
> > --
> > 2.33.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 05:07:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 05:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229845.397691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkVU-0006Wd-VR; Wed, 24 Nov 2021 05:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229845.397691; Wed, 24 Nov 2021 05:07:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkVU-0006WW-SB; Wed, 24 Nov 2021 05:07:44 +0000
Received: by outflank-mailman (input) for mailman id 229845;
 Tue, 23 Nov 2021 17:15:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VsJ3=QK=hotmail.com=yanluyi2010@srs-se1.protection.inumbo.net>)
 id 1mpZNp-0003nz-N7
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 17:15:06 +0000
Received: from JPN01-OS0-obe.outbound.protection.outlook.com
 (mail-os0jpn01olkn20804.outbound.protection.outlook.com
 [2a01:111:f403:700c::804])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4cd7967-4c80-11ec-a9d2-d9f7a1cc8784;
 Tue, 23 Nov 2021 18:15:04 +0100 (CET)
Received: from OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:1a2::6)
 by OS3P286MB2216.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:19e::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Tue, 23 Nov
 2021 17:14:59 +0000
Received: from OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
 ([fe80::9c31:6396:f5d2:35e6]) by OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
 ([fe80::9c31:6396:f5d2:35e6%9]) with mapi id 15.20.4713.026; Tue, 23 Nov 2021
 17:14:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4cd7967-4c80-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lLfHUfHDDYpqtGOQPllFxRtuSpWT6WLRsNIAhCIYm65iX2SUHH3TWmQpbjtQfP0ql+0zQZBOc/doJe23dp3Pn+07uQMTEcm39fVYNpAPptA7rnvcLo6uuKiPKFrkl7DnXp8kSMgtMHhWUEpKvSVV5p1un3ZUIsLLQI22YHUd1Q4Ivs9Qn8WF6DxsAI9lmjzs116qJiNjImAiLYtgLcoLfFy9HK/QDzxJU1AyZbSwF2rq470tVnW1ooop0lPkSpLKM9CTAzMg/SpJaP1XjprquTVrRgdiR5Kr4axbz22KJKGpSjV2IfjaA5s21Bv6dCyX9kaRd73Ie1m7GC09x5vSAg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZPu+n1MCAiGH80dsmwp7Eg014lgaHobIuWXt39a25pw=;
 b=BSnFXGFflMNHU+tKMmhGZ9h0gv408cYF0DM9xMKkUmPtulzjobgR4wgUzaNhGmbUYeky3vAtaMO1JP6aAQME2SPTd7wagX038qHn8JPd5qEWoEF+M6/83Mpz8YPYeM1++UVQRrbGRIXEpfahz8zmlKLOGl2A/WgGKuk4VfHp5Cy5KxtoFZ6jfv5Gr15RlfvClS6H4lMG1JaGKfrJJ5PAC5dO2gFZWZzGitNhwdgMwaWB0Ffbgr9+8K1kl+GpZFin5xapG09J6KowDORPOghygiNbUn8sdQQRmbQR6V2MJ8YdhVzmPckHd0owCTuOCyggGoYL8k5fDDxsqE42/mGN5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZPu+n1MCAiGH80dsmwp7Eg014lgaHobIuWXt39a25pw=;
 b=SqAOwP46LsxcrZt/Tn8lLOl3k7a8X7ZMWdBXZ8OyV8mdju439bbzYBl7Szb33dAiW5z+QrHNfk8B0UWkPt+q15yBUt2FR7RgT8pA+0mcUZNNjKtwHnK9XiIuRWLCDWaqfKSO1A3ABsvQaf8m/8XcGsyN6F3bqE/TmcIpUeoZLAWj1CQW9CgUf96WtDc++9A0qgohEdupSyn8mY23nohFKhiWKEdLoLiomSkLoaSsgvtq9X6XbcXUkHgzLrU4mh/vAsGTj/F/qvj1hG79IGnqm8N8XGYVPKZ5GGVmsC5kBsI8gEM5b7C8xz5XZXV/qriiheASaarjV+OWmmWQLQ4rew==
From: YAN Untitled <yanluyi2010@hotmail.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "tamas@tklengyel.com" <tamas@tklengyel.com>, "aisaila@bitdefender.com"
	<aisaila@bitdefender.com>, "ppircalabu@bitdefender.com"
	<ppircalabu@bitdefender.com>
Subject: About support for memory event on AMD CPUs
Thread-Topic: About support for memory event on AMD CPUs
Thread-Index: AQHX4Ivyto+Oc0SSQ0aRZryw/8JAGw==
Date: Tue, 23 Nov 2021 17:14:59 +0000
Message-ID:
 <OS3P286MB1995471B56ADDC423A4EDC9FB3609@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
suggested_attachment_session_id: 82a30604-7731-0f07-d47c-a7cc38443806
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [3bhbTluaqpWQN9JFW4AqGh52yTUcYKoJKBMuSJUqdxY=]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9239ae34-f881-449a-df2f-08d9aea4c7a0
x-ms-traffictypediagnostic: OS3P286MB2216:
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 bP0Ah2FFXQ7r18WMCzTUzIGSoWdloz2cDLgDOfsA1NB631GwFPzurB0KkNFJLIGEf7vqlnQ3r/lTmyXGIUeUHGjbeESnxkp9xs6ZrwA5jAUv11u5XrUid8OoEruwVbMXhwhjQkDLD9QNuBEYCd3maf/eKjsVCdl5nr90RxPBImPZC8roaY2iV02qmgQsy5puBzvIJiv+dG7Smb6UtJ4Vp9D7quVhrfg4ZhG+CoND1RcQ+IEGbmXl5ufCzJ/60BPgF/GAdqkBXAZlifLvsPyzuv8qQQxd2yJD9N6b9So1wZmtQGjc9ujQNmI6EeqvAOSAlDhJuFn2gYQTXA+aYI53+dCMsemlffmY4Sn8/OEh7SlMMG57jDWzwj1fnSPEw9w79wFZvio8A4LO+VewQWCnIx4tyHIywWSwsbr5q+JxgypFe1XTotcpUv4jFNsfRndR4isv4KVwizXjPkf+sVYAuTHdJeJeg+FEOxzbXjcH5WchToA9aW2yZAGHJMO82TSlfhAQRbhNRA+dqPULaBrLML7J6hLZBwJcLw0D7/KiGcgpCtiTUJDm9bcfnJ2k3GzJ7IIYAxrdjCRz9cJ41pU6tYiKGcrGXvxhLqEWKvQ2+d4iQsRGakDBnlHKYVLuLGmy
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 UNUenQ9KUbgPFXhNtn4R+U5dAN7274UXuyD1cqmwYoL8/L6neazYmS6x/TlPAxx9MEud7re6U+w8xPvpDZDnDMsRBhw2aZXtVcOlWsRqkdi4wg60RohDIsfshhVnG+IWmHdMnI8+7uZni39QYFKslhrwLPS5KDqPvznmuHP8Sjz+Dy2FSD97eottXauwokC6hb3bbxzywq1/ACzKjWnGoB/ypJqzT2I5jS7oDOA0ywQWpo1aKEZtCkAaOM1Flokq5We0yhBdD6C6ei7EMV607X4Z7BPxsCLf7EEm73WHpy6IGSnfilTPrj04HK+1q9l5UDGG+SDzdlBfoGUcptg3qXwvxxPEeO6XKQb3hPGct0aRkgRNfjlgraNSlGS4yhUfyXrnU1jY0zHF/xGzJVbmaC+ki/By/E6+u9QYVqWx58+gURJeqLEtSGubCzCS1ehpQqcq5ZHiuaa1jfTuPx3uhlo2WCqf5JWMWba3WfhHPJLVW4YIMnCeaUiJNd6nD0U6tZIL4og3SyQFLmLtv1N530/U7Y6shXoO91Wib0LVvo+zTRFrfxA8tqhrEaupO1FphEro2DCeMDQnJAdMLdDOaXWiC4K5Z8Mk18eTtqAmruqT7EMdvzl0//+a4LzsuQWY3ZZQoFygor36OuOJagPSkg4vk4kJMIqUY0UOPflkoxrHMh70fHRHL4WhEczCFW66R6Cdg2jUhAY5XuWtGrcQvQ==
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-18f16.templateTenant
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 9239ae34-f881-449a-df2f-08d9aea4c7a0
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 17:14:59.5828
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3P286MB2216

RGVhciBkZXZlbG9wZXJzLAoKU2hvcnQgdmVyc2lvbjogaXMgbWVtb3J5IGV2ZW50IHN1cHBvcnRl
ZCBvbiBBTUQgQ1BVcyBvciBpcyBpdCBnb2luZyB0byBiZQpzdXBwb3J0ZWQ/CgpMb25nIHZlcnNp
b246CgpFbnZpcm9ubWVudDogTGliVk1JIDAuMTUuMCArIFhlbiA0LjE0LjMgb24gYW4gKipBTUQg
Q1BVKiogKDU5NTB4KSwgNjQtYml0CkRlYmlhbiAxMSBEb20wLgoKV2hhdCBJIGFtIHRyeWluZyB0
byBhY2NvbXBsaXNoOiByZWdpc3RlciBhICoqbWVtb3J5IGV2ZW50KiogaGFuZGxlciwgc28gdGhh
dApJIGNhbiBjYXB0dXJlIGFsbCBtZW1vcnkgYWNjZXNzZXMgd2l0aGluIGEgc3BlY2lmaWMgcmFu
Z2UgaXNzdWVkIGJ5IGFueSB0aHJlYWQsCm9yIGFsbCBtZW1vcnkgYWNjZXNzZXMgd2l0aGluIGFu
eSByYW5nZSBpc3N1ZWQgYnkgYSBzcGVjaWZpYyB0aHJlYWQuCgpXaGF0IEkgZ290IGluc3RlYWQ6
IGFuIGVycm9yIGZyb20gTGliVk1JIHNheWluZwoieGNfaHZtX3NldF9tZW1fYWNjZXNzIGZhaWxl
ZCB3aXRoIGNvZGU6IC0xIi4KClNvbWUgaW52ZXN0aWdhdGlvbjogYnkgaW5zcGVjdGluZyB0aGUg
c291cmNlIGNvZGUgb2YgTGliVk1JLCBJIGZpbmQgdGhlIGRpcmVjdApjYXVzZSBpcyBvbmUgb2Yg
dGhlIGxpYnhjIGZ1bmN0aW9ucywgMSkgeGNfc2V0X21lbV9hY2Nlc3Mgb3IKMikgeGNfYWx0cDJt
X3NldF9tZW1fYWNjZXNzLCByZXR1cm5lZCBlcnJvciBjb2RlIC0xLgoKQWZ0ZXIgc29tZSBzZWFy
Y2hpbmcsIEkgZm91bmQgc29tZW9uZSBlbHNlIGhhdmluZyBhIHNpbWlsYXIgcHJvYmxlbSBbMV0u
IEkgYWxzbwpub3RlZCBMaWJWTUkgc2F5czoKCj4gQ3VycmVudGx5IG9ubHkgdGhlIFhlbiBIeXBl
cnZpc29yIHByb3ZpZGVzIHRoZXNlIGZlYXR1cmVzLAo+IGFuZCBzb21lIG9mIHRoZXNlIGFyZSBz
cGVjaWZpY2FsbHkgb25seSBhdmFpbGFibGUgb24gSW50ZWwgQ1BVcwoKSG93ZXZlciwgSSBjYW4n
dCBmaW5kIHRoZSBleGFjdCBjb25maXJtYXRpb24gZm9yIHRoZSBhdmFpbGFiaWxpdHkgb2YgbWVt
b3J5CmV2ZW50IG9uIEFNRCBDUFVzIGZyb20gaHR0cHM6Ly93aWtpLnhlbnByb2plY3Qub3JnLgoK
QW55IHN1Z2dlc3Rpb24/CgooU29ycnkgSSB3YXMgc2VuZGluZyB0aGlzIGVtYWlsIHRvIHRoZSB3
cm9uZyBwbGFjZSkKClsxXSBodHRwczovL2dpdGh1Yi5jb20vbGlidm1pL2xpYnZtaS9wdWxsLzcw
OSNkaXNjdXNzaW9uX3IzNTM3Mjk3NzcKCgpVbnRpdGxlZCBZQU4=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 05:07:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 05:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229903.397698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkVV-0006a8-A3; Wed, 24 Nov 2021 05:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229903.397698; Wed, 24 Nov 2021 05:07:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkVV-0006Zh-53; Wed, 24 Nov 2021 05:07:45 +0000
Received: by outflank-mailman (input) for mailman id 229903;
 Tue, 23 Nov 2021 18:13:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+X5i=QK=arm.com=valentin.schneider@srs-se1.protection.inumbo.net>)
 id 1mpaIW-0005KS-Sd
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 18:13:40 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 14a584a7-4c89-11ec-9787-a32c541c8605;
 Tue, 23 Nov 2021 19:13:39 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BC8E71FB;
 Tue, 23 Nov 2021 10:13:37 -0800 (PST)
Received: from e113632-lin (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7F59E3F5A1;
 Tue, 23 Nov 2021 10:13:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 14a584a7-4c89-11ec-9787-a32c541c8605
From: Valentin Schneider <valentin.schneider@arm.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>, "Longpeng \(Mike\, Cloud Infrastructure Service Product Dept.\)" <longpeng2@huawei.com>
Cc: linux-kernel@vger.kernel.org, "Gonglei \(Arei\)" <arei.gonglei@huawei.com>, x86@kernel.org, xen-devel@lists.xenproject.org, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@kernel.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be brought up again.
In-Reply-To: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
References: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
Date: Tue, 23 Nov 2021 18:13:30 +0000
Message-ID: <87r1b6d9kl.mognet@arm.com>
MIME-Version: 1.0
Content-Type: text/plain

On 22/11/21 16:47, Sebastian Andrzej Siewior wrote:
> From: "Longpeng(Mike)" <longpeng2@huawei.com>
>
> A CPU will not show up in virtualized environment which includes an
> Enclave. The VM splits its resources into a primary VM and a Enclave
> VM. While the Enclave is active, the hypervisor will ignore all requests
> to bring up a CPU and this CPU will remain in CPU_UP_PREPARE state.
> The kernel will wait up to ten seconds for CPU to show up
> (do_boot_cpu()) and then rollback the hotplug state back to
> CPUHP_OFFLINE leaving the CPU state in CPU_UP_PREPARE. The CPU state is
> set back to CPUHP_TEARDOWN_CPU during the CPU_POST_DEAD stage.
>

For my own education, this is talking about *host* CPU hotplug, right?

> After the Enclave VM terminates, the primary VM can bring up the CPU
> again.
>
> Allow to bring up the CPU if it is in the CPU_UP_PREPARE state.
>
> [bigeasy: Rewrite commit description.]
>
> Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> Link: https://lore.kernel.org/r/20210901051143.2752-1-longpeng2@huawei.com
> ---
>
> For XEN: this changes the behaviour as it allows to invoke
> cpu_initialize_context() again should it have have earlier. I *think*
> this is okay and would to bring up the CPU again should the memory
> allocation in cpu_initialize_context() fail.

Virt stuff notwithstanding, that looks OK to me.
Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>

That said, AFAICT only powerpc makes actual use of the state being set to
CPU_UP_PREPARE, it looks to be needless bookkeeping for everyone else (and
there's archs that seem happy using only CPU_DEAD / CPU_POST_DEAD).

>
>  kernel/smpboot.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/kernel/smpboot.c b/kernel/smpboot.c
> index f6bc0bc8a2aab..34958d7fe2c1c 100644
> --- a/kernel/smpboot.c
> +++ b/kernel/smpboot.c
> @@ -392,6 +392,13 @@ int cpu_check_up_prepare(int cpu)
>                */
>               return -EAGAIN;
>
> +	case CPU_UP_PREPARE:
> +		/*
> +		 * Timeout while waiting for the CPU to show up. Allow to try
> +		 * again later.
> +		 */
> +		return 0;
> +
>       default:
>
>               /* Should not happen.  Famous last words. */
> --
> 2.33.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 05:07:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 05:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.229971.397703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkVV-0006gG-K6; Wed, 24 Nov 2021 05:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 229971.397703; Wed, 24 Nov 2021 05:07:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkVV-0006dU-DJ; Wed, 24 Nov 2021 05:07:45 +0000
Received: by outflank-mailman (input) for mailman id 229971;
 Tue, 23 Nov 2021 23:50:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SYLV=QK=huawei.com=longpeng2@srs-se1.protection.inumbo.net>)
 id 1mpfYk-000612-7n
 for xen-devel@lists.xenproject.org; Tue, 23 Nov 2021 23:50:46 +0000
Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a1fbb4a-4cb8-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 00:50:43 +0100 (CET)
Received: from dggpemm500022.china.huawei.com (unknown [172.30.72.54])
 by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4HzLVD0D1Sz9159;
 Wed, 24 Nov 2021 07:50:12 +0800 (CST)
Received: from dggpemm500007.china.huawei.com (7.185.36.183) by
 dggpemm500022.china.huawei.com (7.185.36.162) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.20; Wed, 24 Nov 2021 07:50:38 +0800
Received: from dggpeml100016.china.huawei.com (7.185.36.216) by
 dggpemm500007.china.huawei.com (7.185.36.183) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.20; Wed, 24 Nov 2021 07:50:38 +0800
Received: from dggpeml100016.china.huawei.com ([7.185.36.216]) by
 dggpeml100016.china.huawei.com ([7.185.36.216]) with mapi id 15.01.2308.020;
 Wed, 24 Nov 2021 07:50:38 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a1fbb4a-4cb8-11ec-9787-a32c541c8605
From: "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)"
	<longpeng2@huawei.com>
To: Dongli Zhang <dongli.zhang@oracle.com>, Sebastian Andrzej Siewior
	<bigeasy@linutronix.de>
CC: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Gonglei
 (Arei)" <arei.gonglei@huawei.com>, "x86@kernel.org" <x86@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Peter
 Zijlstra" <peterz@infradead.org>, Ingo Molnar <mingo@kernel.org>, "Valentin
 Schneider" <valentin.schneider@arm.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>
Subject: RE: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
Thread-Topic: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
Thread-Index: AQHX37hRU5zyn85RmkiAPYCSmtUPkawRGrIAgACu5kA=
Date: Tue, 23 Nov 2021 23:50:37 +0000
Message-ID: <46f7dbb8c0cb42228ed028ed89af1282@huawei.com>
References: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
 <d5f43af4-f91f-ef9f-9c33-8d349f59b23c@oracle.com>
In-Reply-To: <d5f43af4-f91f-ef9f-9c33-8d349f59b23c@oracle.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.174.148.223]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRG9uZ2xpIFpoYW5nIFtt
YWlsdG86ZG9uZ2xpLnpoYW5nQG9yYWNsZS5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1i
ZXIgMjQsIDIwMjEgNToyMiBBTQ0KPiBUbzogU2ViYXN0aWFuIEFuZHJ6ZWogU2lld2lvciA8Ymln
ZWFzeUBsaW51dHJvbml4LmRlPjsgTG9uZ3BlbmcgKE1pa2UsIENsb3VkDQo+IEluZnJhc3RydWN0
dXJlIFNlcnZpY2UgUHJvZHVjdCBEZXB0LikgPGxvbmdwZW5nMkBodWF3ZWkuY29tPg0KPiBDYzog
bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgR29uZ2xlaSAoQXJlaSkgPGFyZWkuZ29uZ2xl
aUBodWF3ZWkuY29tPjsNCj4geDg2QGtlcm5lbC5vcmc7IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZzsgUGV0ZXIgWmlqbHN0cmENCj4gPHBldGVyekBpbmZyYWRlYWQub3JnPjsgSW5nbyBN
b2xuYXIgPG1pbmdvQGtlcm5lbC5vcmc+OyBWYWxlbnRpbiBTY2huZWlkZXINCj4gPHZhbGVudGlu
LnNjaG5laWRlckBhcm0uY29tPjsgQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3Jh
Y2xlLmNvbT47DQo+IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT47IFN0ZWZhbm8gU3Rh
YmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47DQo+IFRob21hcyBHbGVpeG5lciA8dGds
eEBsaW51dHJvbml4LmRlPjsgSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+OyBCb3Jpc2xh
dg0KPiBQZXRrb3YgPGJwQGFsaWVuOC5kZT47IERhdmUgSGFuc2VuIDxkYXZlLmhhbnNlbkBsaW51
eC5pbnRlbC5jb20+OyBILiBQZXRlcg0KPiBBbnZpbiA8aHBhQHp5dG9yLmNvbT4NCj4gU3ViamVj
dDogUmU6IFtQQVRDSF0gY3B1L2hvdHBsdWc6IEFsbG93IHRoZSBDUFUgaW4gQ1BVX1VQX1BSRVBB
UkUgc3RhdGUgdG8gYmUNCj4gYnJvdWdodCB1cCBhZ2Fpbi4NCj4gDQo+IFRlc3RlZC1ieTogRG9u
Z2xpIFpoYW5nIDxkb25nbGkuemhhbmdAb3JhY2xlLmNvbT4NCj4gDQo+IA0KPiBUaGUgYnVnIGZp
eGVkIGJ5IGNvbW1pdCA1M2ZhZmRiYjhiMjEgKCJLVk06IHg4Njogc3dpdGNoIEtWTUNMT0NLIGJh
c2UgdG8NCj4gbW9ub3RvbmljIHJhdyBjbG9jayIpIG1heSBsZWF2ZSB0aGUgY3B1X2hvdHBsdWdf
c3RhdGUgYXQgQ1BVX1VQX1BSRVBBUkUuIEFzIGENCj4gcmVzdWx0LCB0byBvbmxpbmUgdGhpcyBD
UFUgYWdhaW4gKGV2ZW4gYWZ0ZXIgcmVtb3ZhbCkgaXMgYWx3YXlzIGZhaWxlZC4NCj4gDQo+IEkg
aGF2ZSB0ZXN0ZWQgdGhhdCB0aGlzIHBhdGNoIHdvcmtzIHdlbGwgdG8gd29ya2Fyb3VuZCB0aGUg
aXNzdWUsIGJ5IGludHJvZHVjaW5nDQo+IGVpdGhlciBhIG1kZWxleSgxMTAwMCkgb3Igd2hpbGUo
MSk7IHRvIHN0YXJ0X3NlY29uZGFyeSgpLiBUaGF0IGlzLCB0byBvbmxpbmUNCj4gdGhlDQo+IHNh
bWUgQ1BVIGFnYWluIGlzIHN1Y2Nlc3NmdWwgZXZlbiBhZnRlciBpbml0aWFsIGRvX2Jvb3RfY3B1
KCkgZmFpbHVyZS4NCj4gDQo+IDEuIGFkZCBtZGVsYXkoMTEwMDApIG9yIHdoaWxlKDEpOyB0byB0
aGUgc3RhcnRfc2Vjb25kYXJ5KCkuDQo+IA0KPiAyLiB0byBvbmxpbmUgQ1BVIGlzIGZhaWxlZCBh
dCBkb19ib290X2NwdSgpLg0KPiANCg0KVGhhbmtzIGZvciB5b3VyIHRlc3RpbmcgOikNCg0KRG9l
cyB0aGUgY3B1NCBzcGluIGluIHdhaXRfZm9yX21hc3Rlcl9jcHUoKSBpbiB5b3VyIGNhc2UgPw0K
DQo+IDMuIHRvIG9ubGluZSBDUFUgYWdhaW4gaXMgZmFpbGVkIHdpdGhvdXQgdGhpcyBwYXRjaC4N
Cj4gDQo+ICMgZWNobyAxID4gL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1NC9vbmxpbmUNCj4g
LXN1OiBlY2hvOiB3cml0ZSBlcnJvcjogSW5wdXQvb3V0cHV0IGVycm9yDQo+IA0KPiA0LiB0byBv
bmxpbmUgQ1BVIGFnYWluIGlzIHN1Y2Nlc3NmdWwgd2l0aCB0aGlzIHBhdGNoLg0KPiANCj4gVGhh
bmsgeW91IHZlcnkgbXVjaCENCj4gDQo+IERvbmdsaSBaaGFuZw0KPiANCj4gT24gMTEvMjIvMjEg
Nzo0NyBBTSwgU2ViYXN0aWFuIEFuZHJ6ZWogU2lld2lvciB3cm90ZToNCj4gPiBGcm9tOiAiTG9u
Z3BlbmcoTWlrZSkiIDxsb25ncGVuZzJAaHVhd2VpLmNvbT4NCj4gPg0KPiA+IEEgQ1BVIHdpbGwg
bm90IHNob3cgdXAgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgd2hpY2ggaW5jbHVkZXMgYW4N
Cj4gPiBFbmNsYXZlLiBUaGUgVk0gc3BsaXRzIGl0cyByZXNvdXJjZXMgaW50byBhIHByaW1hcnkg
Vk0gYW5kIGEgRW5jbGF2ZQ0KPiA+IFZNLiBXaGlsZSB0aGUgRW5jbGF2ZSBpcyBhY3RpdmUsIHRo
ZSBoeXBlcnZpc29yIHdpbGwgaWdub3JlIGFsbCByZXF1ZXN0cw0KPiA+IHRvIGJyaW5nIHVwIGEg
Q1BVIGFuZCB0aGlzIENQVSB3aWxsIHJlbWFpbiBpbiBDUFVfVVBfUFJFUEFSRSBzdGF0ZS4NCj4g
PiBUaGUga2VybmVsIHdpbGwgd2FpdCB1cCB0byB0ZW4gc2Vjb25kcyBmb3IgQ1BVIHRvIHNob3cg
dXANCj4gPiAoZG9fYm9vdF9jcHUoKSkgYW5kIHRoZW4gcm9sbGJhY2sgdGhlIGhvdHBsdWcgc3Rh
dGUgYmFjayB0bw0KPiA+IENQVUhQX09GRkxJTkUgbGVhdmluZyB0aGUgQ1BVIHN0YXRlIGluIENQ
VV9VUF9QUkVQQVJFLiBUaGUgQ1BVIHN0YXRlIGlzDQo+ID4gc2V0IGJhY2sgdG8gQ1BVSFBfVEVB
UkRPV05fQ1BVIGR1cmluZyB0aGUgQ1BVX1BPU1RfREVBRCBzdGFnZS4NCj4gPg0KPiA+IEFmdGVy
IHRoZSBFbmNsYXZlIFZNIHRlcm1pbmF0ZXMsIHRoZSBwcmltYXJ5IFZNIGNhbiBicmluZyB1cCB0
aGUgQ1BVDQo+ID4gYWdhaW4uDQo+ID4NCj4gPiBBbGxvdyB0byBicmluZyB1cCB0aGUgQ1BVIGlm
IGl0IGlzIGluIHRoZSBDUFVfVVBfUFJFUEFSRSBzdGF0ZS4NCj4gPg0KPiA+IFtiaWdlYXN5OiBS
ZXdyaXRlIGNvbW1pdCBkZXNjcmlwdGlvbi5dDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBMb25n
cGVuZyhNaWtlKSA8bG9uZ3BlbmcyQGh1YXdlaS5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogU2Vi
YXN0aWFuIEFuZHJ6ZWogU2lld2lvciA8YmlnZWFzeUBsaW51dHJvbml4LmRlPg0KPiA+IExpbms6
DQo+IGh0dHBzOi8vdXJsZGVmZW5zZS5jb20vdjMvX19odHRwczovL2xvcmUua2VybmVsLm9yZy9y
LzIwMjEwOTAxMDUxMTQzLjI3NTItMQ0KPiAtbG9uZ3BlbmcyQGh1YXdlaS5jb21fXzshIUFDV1Y1
TjlNMlJWOTloUSFkNHNDQ1hNUVY3ZWtGd3BkMjF2bzFfOUstbTVoNFZaLWcNCj4gRThaNjJQTEw1
OERUNFZKNlN0SDU3VFJfS3BCZGJ3aEJFMCQNCj4gPiAtLS0NCj4gPg0KPiA+IEZvciBYRU46IHRo
aXMgY2hhbmdlcyB0aGUgYmVoYXZpb3VyIGFzIGl0IGFsbG93cyB0byBpbnZva2UNCj4gPiBjcHVf
aW5pdGlhbGl6ZV9jb250ZXh0KCkgYWdhaW4gc2hvdWxkIGl0IGhhdmUgaGF2ZSBlYXJsaWVyLiBJ
ICp0aGluayoNCj4gPiB0aGlzIGlzIG9rYXkgYW5kIHdvdWxkIHRvIGJyaW5nIHVwIHRoZSBDUFUg
YWdhaW4gc2hvdWxkIHRoZSBtZW1vcnkNCj4gPiBhbGxvY2F0aW9uIGluIGNwdV9pbml0aWFsaXpl
X2NvbnRleHQoKSBmYWlsLg0KPiA+DQo+ID4gIGtlcm5lbC9zbXBib290LmMgfCA3ICsrKysrKysN
Cj4gPiAgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQ0KPiA+DQo+ID4gZGlmZiAtLWdp
dCBhL2tlcm5lbC9zbXBib290LmMgYi9rZXJuZWwvc21wYm9vdC5jDQo+ID4gaW5kZXggZjZiYzBi
YzhhMmFhYi4uMzQ5NThkN2ZlMmMxYyAxMDA2NDQNCj4gPiAtLS0gYS9rZXJuZWwvc21wYm9vdC5j
DQo+ID4gKysrIGIva2VybmVsL3NtcGJvb3QuYw0KPiA+IEBAIC0zOTIsNiArMzkyLDEzIEBAIGlu
dCBjcHVfY2hlY2tfdXBfcHJlcGFyZShpbnQgY3B1KQ0KPiA+ICAJCSAqLw0KPiA+ICAJCXJldHVy
biAtRUFHQUlOOw0KPiA+DQo+ID4gKwljYXNlIENQVV9VUF9QUkVQQVJFOg0KPiA+ICsJCS8qDQo+
ID4gKwkJICogVGltZW91dCB3aGlsZSB3YWl0aW5nIGZvciB0aGUgQ1BVIHRvIHNob3cgdXAuIEFs
bG93IHRvIHRyeQ0KPiA+ICsJCSAqIGFnYWluIGxhdGVyLg0KPiA+ICsJCSAqLw0KPiA+ICsJCXJl
dHVybiAwOw0KPiA+ICsNCj4gPiAgCWRlZmF1bHQ6DQo+ID4NCj4gPiAgCQkvKiBTaG91bGQgbm90
IGhhcHBlbi4gIEZhbW91cyBsYXN0IHdvcmRzLiAqLw0KPiA+DQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 05:11:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 05:11:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230040.397736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkZM-0001Hk-Lm; Wed, 24 Nov 2021 05:11:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230040.397736; Wed, 24 Nov 2021 05:11:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkZM-0001Hd-Ia; Wed, 24 Nov 2021 05:11:44 +0000
Received: by outflank-mailman (input) for mailman id 230040;
 Wed, 24 Nov 2021 05:11:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=iQO5=QL=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mpkZL-0001HX-KC
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 05:11:43 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 028981f2-4ce5-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 06:11:42 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 640F41FD37;
 Wed, 24 Nov 2021 05:11:41 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2C9CE13EC2;
 Wed, 24 Nov 2021 05:11:41 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id hwtCCY3JnWF4ZQAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 24 Nov 2021 05:11:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 028981f2-4ce5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637730701; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=4bewt07Nn8devyRr1m4C78ZgxUFTlBUyZDqP1VULo3s=;
	b=RY8s+KIIzuLwSFlUORNHPsA/U6zRSyBTrYRRuFIavzy4nq/FyvYoOjtNEhmJ6N80xRS8R5
	BXAmHlrKnBVWSBDw68jHcVir91CrvWGSs83Pi3nWo557s+EVPbvYadr6gbJ8JP9UC5mGjb
	Jh6nVEF/G1lBXVsUSwnshrDqW+PP6OA=
Subject: Re: [PATCH v4] xen: detect uninitialized xenbus in xenbus_init
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, jbeulich@suse.com,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org
References: <20211123210748.1910236-1-sstabellini@kernel.org>
From: Juergen Gross <jgross@suse.com>
Message-ID: <b7e7ea7f-f08a-61b4-8980-757470d50b55@suse.com>
Date: Wed, 24 Nov 2021 06:11:40 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211123210748.1910236-1-sstabellini@kernel.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="aJA5RZ5toJwqVz2G9rOvSw0xcuhrcHCY1"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--aJA5RZ5toJwqVz2G9rOvSw0xcuhrcHCY1
Content-Type: multipart/mixed; boundary="Ns8snLW1kN0xBnRuYJOXOP7mLlTcLo22F";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, jbeulich@suse.com,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org
Message-ID: <b7e7ea7f-f08a-61b4-8980-757470d50b55@suse.com>
Subject: Re: [PATCH v4] xen: detect uninitialized xenbus in xenbus_init
References: <20211123210748.1910236-1-sstabellini@kernel.org>
In-Reply-To: <20211123210748.1910236-1-sstabellini@kernel.org>

--Ns8snLW1kN0xBnRuYJOXOP7mLlTcLo22F
Content-Type: multipart/mixed;
 boundary="------------061B0C4405AEAC3907F4670A"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------061B0C4405AEAC3907F4670A
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 23.11.21 22:07, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>=20
> If the xenstore page hasn't been allocated properly, reading the value
> of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
> error. Instead, it will succeed and return zero. Instead of attempting
> to xen_remap a bad guest physical address, detect this condition and
> return early.
>=20
> Note that although a guest physical address of zero for
> HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
> and zero has never been validly used in that capacity.
>=20
> Also recognize all bits set as an invalid value.
>=20
> For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
> above ULONG_MAX should never be passed by the Xen tools to HVM guests
> anyway, so check for this condition and return early.
>=20
> Cc: stable@vger.kernel.org
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen

--------------061B0C4405AEAC3907F4670A
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------061B0C4405AEAC3907F4670A--

--Ns8snLW1kN0xBnRuYJOXOP7mLlTcLo22F--

--aJA5RZ5toJwqVz2G9rOvSw0xcuhrcHCY1
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGdyYwFAwAAAAAACgkQsN6d1ii/Ey9t
9Af7BryVncllwJue+nkoKn5NECVjU0Z44G781fGbdEHgIB7/eYJMt6NDHSb8XWunirVHpM/LV/+G
gkH10AtqDxFl8SCTiMNbMLMkhawOQ7StJyWestPcY8f5OD0wsdBHlfz6RwzeGMQIcpDtIcmhBxKu
bJ8CkZTqs5ufX54QRt5ft9CpDpwEyoZ5fvcsYkGE7XMkjpT80Dk5UN7OzWJ8XGA8nGsU6/NQHuOw
NA6A5GGHbx6A6dbOs0hHMA/b6FcO4PGL3CoxP5OYrfGvDJIDRrlxxBSd9J2R1V2JtaiP1CtFG+Mm
Md2QNnTzS6tbvVgwFhI0Iy04Ak6btVckua45ur/Y3w==
=sr4U
-----END PGP SIGNATURE-----

--aJA5RZ5toJwqVz2G9rOvSw0xcuhrcHCY1--


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 05:16:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 05:16:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230045.397747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkdd-0001tt-9U; Wed, 24 Nov 2021 05:16:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230045.397747; Wed, 24 Nov 2021 05:16:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkdd-0001tm-5P; Wed, 24 Nov 2021 05:16:09 +0000
Received: by outflank-mailman (input) for mailman id 230045;
 Wed, 24 Nov 2021 05:16:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=iQO5=QL=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mpkdc-0001tg-9j
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 05:16:08 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a01e3110-4ce5-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 06:16:06 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id C76431FD37;
 Wed, 24 Nov 2021 05:16:05 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 52F5B13EC2;
 Wed, 24 Nov 2021 05:16:05 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id QP/zEZXKnWHjZgAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 24 Nov 2021 05:16:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a01e3110-4ce5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637730965; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=KXLbVTFQswpcW1T0zr6kJg00Md2ajNbGOAaNQSLRhvU=;
	b=nD8rzJ3o9h1MQnzxOkIILIgvd3xpbzs/DGZ/e1XmtI11TA3eDEGv7bqAOeaSSJpihRogAE
	Sy6/bhbc2ymt6WNfOPOsdouPM5si1ThlhAoFrfTYrt0TeDhHWlE5IW6G3+ORdMBMtdKJed
	paWt6a/NE8Ap2SNSFSuXTlNct0EbvVM=
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
To: Oleksandr <olekstysh@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-4-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s>
 <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
 <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop>
 <f1f1025b-911d-3d27-f408-9c042bc4fca4@gmail.com>
 <alpine.DEB.2.22.394.2111191809100.1412361@ubuntu-linux-20-04-desktop>
 <76163855-c5eb-05db-2f39-3c6bfee46345@gmail.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <d0b851a5-6546-3958-7d4c-9436f574d62e@suse.com>
Date: Wed, 24 Nov 2021 06:16:04 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <76163855-c5eb-05db-2f39-3c6bfee46345@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="0zbYD8Udb611Ee1FeeRnGZCxfY94x1rLa"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--0zbYD8Udb611Ee1FeeRnGZCxfY94x1rLa
Content-Type: multipart/mixed; boundary="vYRbg6aD15TTF9AEtbMSp4LSwBRmT1vYD";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Oleksandr <olekstysh@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Julien Grall <julien@xen.org>
Message-ID: <d0b851a5-6546-3958-7d4c-9436f574d62e@suse.com>
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-4-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s>
 <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
 <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop>
 <f1f1025b-911d-3d27-f408-9c042bc4fca4@gmail.com>
 <alpine.DEB.2.22.394.2111191809100.1412361@ubuntu-linux-20-04-desktop>
 <76163855-c5eb-05db-2f39-3c6bfee46345@gmail.com>
In-Reply-To: <76163855-c5eb-05db-2f39-3c6bfee46345@gmail.com>

--vYRbg6aD15TTF9AEtbMSp4LSwBRmT1vYD
Content-Type: multipart/mixed;
 boundary="------------D91E9B4B1E22D8AFFDA252EE"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------D91E9B4B1E22D8AFFDA252EE
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 23.11.21 17:46, Oleksandr wrote:
>=20
> On 20.11.21 04:19, Stefano Stabellini wrote:
>=20
> Hi Stefano, Juergen, all
>=20
>=20
>> Juergen please see the bottom of the email
>>
>> On Fri, 19 Nov 2021, Oleksandr wrote:
>>> On 19.11.21 02:59, Stefano Stabellini wrote:
>>>> On Tue, 9 Nov 2021, Oleksandr wrote:
>>>>> On 28.10.21 19:37, Stefano Stabellini wrote:
>>>>>
>>>>> Hi Stefano
>>>>>
>>>>> I am sorry for the late response.
>>>>>
>>>>>> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>>>>>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>>>>
>>>>>>> The main reason of this change is that unpopulated-alloc
>>>>>>> code cannot be used in its current form on Arm, but there
>>>>>>> is a desire to reuse it to avoid wasting real RAM pages
>>>>>>> for the grant/foreign mappings.
>>>>>>>
>>>>>>> The problem is that system "iomem_resource" is used for
>>>>>>> the address space allocation, but the really unallocated
>>>>>>> space can't be figured out precisely by the domain on Arm
>>>>>>> without hypervisor involvement. For example, not all device
>>>>>>> I/O regions are known by the time domain starts creating
>>>>>>> grant/foreign mappings. And following the advise from
>>>>>>> "iomem_resource" we might end up reusing these regions by
>>>>>>> a mistake. So, the hypervisor which maintains the P2M for
>>>>>>> the domain is in the best position to provide unused regions
>>>>>>> of guest physical address space which could be safely used
>>>>>>> to create grant/foreign mappings.
>>>>>>>
>>>>>>> Introduce new helper arch_xen_unpopulated_init() which purpose
>>>>>>> is to create specific Xen resource based on the memory regions
>>>>>>> provided by the hypervisor to be used as unused space for Xen
>>>>>>> scratch pages.
>>>>>>>
>>>>>>> If arch doesn't implement arch_xen_unpopulated_init() to
>>>>>>> initialize Xen resource the default "iomem_resource" will be used=
=2E
>>>>>>> So the behavior on x86 won't be changed.
>>>>>>>
>>>>>>> Also fall back to allocate xenballooned pages (steal real RAM
>>>>>>> pages) if we do not have any suitable resource to work with and
>>>>>>> as the result we won't be able to provide unpopulated pages.
>>>>>>>
>>>>>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.co=
m>
>>>>>>> ---
>>>>>>> Changes RFC -> V2:
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - new patch, instead of
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "[RFC PATCH 2/2] xen/unpopul=
ated-alloc: Query hypervisor to
>>>>>>> provide
>>>>>>> unallocated space"
>>>>>>> ---
>>>>>>> =C2=A0=C2=A0=C2=A0 drivers/xen/unpopulated-alloc.c | 89
>>>>>>> +++++++++++++++++++++++++++++++++++++++--
>>>>>>> =C2=A0=C2=A0=C2=A0 include/xen/xen.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 2 +
>>>>>>> =C2=A0=C2=A0=C2=A0 2 files changed, 88 insertions(+), 3 deletions=
(-)
>>>>>>>
>>>>>>> diff --git a/drivers/xen/unpopulated-alloc.c
>>>>>>> b/drivers/xen/unpopulated-alloc.c
>>>>>>> index a03dc5b..1f1d8d8 100644
>>>>>>> --- a/drivers/xen/unpopulated-alloc.c
>>>>>>> +++ b/drivers/xen/unpopulated-alloc.c
>>>>>>> @@ -8,6 +8,7 @@
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #include <asm/page.h>
>>>>>>> =C2=A0=C2=A0=C2=A0 +#include <xen/balloon.h>
>>>>>>> =C2=A0=C2=A0=C2=A0 #include <xen/page.h>
>>>>>>> =C2=A0=C2=A0=C2=A0 #include <xen/xen.h>
>>>>>>> =C2=A0=C2=A0=C2=A0 @@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_l=
ock);
>>>>>>> =C2=A0=C2=A0=C2=A0 static struct page *page_list;
>>>>>>> =C2=A0=C2=A0=C2=A0 static unsigned int list_count;
>>>>>>> =C2=A0=C2=A0=C2=A0 +static struct resource *target_resource;
>>>>>>> +static struct resource xen_resource =3D {
>>>>>>> +=C2=A0=C2=A0=C2=A0 .name =3D "Xen unused space",
>>>>>>> +};
>>>>>>> +
>>>>>>> +/*
>>>>>>> + * If arch is not happy with system "iomem_resource" being used =
for
>>>>>>> + * the region allocation it can provide it's own view by=20
>>>>>>> initializing
>>>>>>> + * "xen_resource" with unused regions of guest physical address =

>>>>>>> space
>>>>>>> + * provided by the hypervisor.
>>>>>>> + */
>>>>>>> +int __weak arch_xen_unpopulated_init(struct resource *res)
>>>>>>> +{
>>>>>>> +=C2=A0=C2=A0=C2=A0 return -ENOSYS;
>>>>>>> +}
>>>>>>> +
>>>>>>> =C2=A0=C2=A0=C2=A0 static int fill_list(unsigned int nr_pages)
>>>>>>> =C2=A0=C2=A0=C2=A0 {
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct dev_pagemap *pg=
map;
>>>>>>> -=C2=A0=C2=A0=C2=A0 struct resource *res;
>>>>>>> +=C2=A0=C2=A0=C2=A0 struct resource *res, *tmp_res =3D NULL;
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 void *vaddr;
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned int i, alloc_=
pages =3D round_up(nr_pages,
>>>>>>> PAGES_PER_SECTION);
>>>>>>> -=C2=A0=C2=A0=C2=A0 int ret =3D -ENOMEM;
>>>>>>> +=C2=A0=C2=A0=C2=A0 int ret;
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 res =3D kz=
alloc(sizeof(*res), GFP_KERNEL);
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (!res)
>>>>>>> @@ -30,7 +47,7 @@ static int fill_list(unsigned int nr_pages)
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 res->name =3D "Xen scr=
atch";
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 res->flags =3D IORESOU=
RCE_MEM | IORESOURCE_BUSY;
>>>>>>> =C2=A0=C2=A0=C2=A0 -=C2=A0=C2=A0=C2=A0 ret =3D allocate_resource(=
&iomem_resource, res,
>>>>>>> +=C2=A0=C2=A0=C2=A0 ret =3D allocate_resource(target_resource, re=
s,
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 alloc_pages * PAGE_SIZE,=
 0, -1,
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PAGES_PER_SECTION * PAGE=
_SIZE, NULL,
>>>>>>> NULL);
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (ret < 0) {
>>>>>>> @@ -38,6 +55,31 @@ static int fill_list(unsigned int nr_pages)
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 goto err_resource;
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>>>>>>> =C2=A0=C2=A0=C2=A0 +=C2=A0=C2=A0=C2=A0 /*
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 * Reserve the region previously allocat=
ed from Xen resource
>>>>>>> to avoid
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 * re-using it by someone else.
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 */
>>>>>>> +=C2=A0=C2=A0=C2=A0 if (target_resource !=3D &iomem_resource) {
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tmp_res =3D kzalloc(s=
izeof(*tmp_res), GFP_KERNEL);
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (!res) {
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 ret =3D -ENOMEM;
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 goto err_insert;
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>>>>>>> +
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tmp_res->name =3D res=
->name;
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tmp_res->start =3D re=
s->start;
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tmp_res->end =3D res-=
>end;
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tmp_res->flags =3D re=
s->flags;
>>>>>>> +
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D insert_resour=
ce(&iomem_resource, tmp_res);
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (ret < 0) {
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 pr_err("Cannot insert IOMEM resource [%llx -
>>>>>>> %llx]\n",
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tmp_res->start, tmp_res->end);=

>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 kfree(tmp_res);
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 goto err_insert;
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>>>>>>> +=C2=A0=C2=A0=C2=A0 }
>>>>>> I am a bit confused.. why do we need to do this? Who could be
>>>>>> erroneously re-using the region? Are you saying that the next time=

>>>>>> allocate_resource is called it could find the same region again? I=
t
>>>>>> doesn't seem possible?
>>>>> No, as I understand the allocate_resource() being called for the=20
>>>>> same root
>>>>> resource won't provide the same region... We only need to do this=20
>>>>> (insert
>>>>> the
>>>>> region into "iomem_resource") if we allocated it from our *internal=
*
>>>>> "xen_resource", as *global* "iomem_resource" (which is used=20
>>>>> everywhere) is
>>>>> not
>>>>> aware of that region has been already allocated. So inserting a reg=
ion
>>>>> here we
>>>>> reserving it, otherwise it could be reused elsewhere.
>>>> But elsewhere where?
>>> I think, theoretically everywhere where=20
>>> allocate_resource(&iomem_resource,
>>> ...) is called.
>>>
>>>
>>>> Let's say that allocate_resource allocates a range from xen_resource=
=2E
>>>> =C2=A0 From reading the code, it doesn't look like iomem_resource wo=
uld have
>>>> that range because the extended regions described under /hypervisor =
are
>>>> not added automatically to iomem_resource.
>>>>
>>>> So what if we don't call insert_resource? Nothing could allocate the=

>>>> same range because iomem_resource doesn't have it at all and
>>>> xen_resource is not used anywhere if not here.
>>>>
>>>> What am I missing?
>>>
>>> Below my understanding which, of course, might be wrong.
>>>
>>> If we don't claim resource by calling insert_resource (or even
>>> request_resource) here then the same range could be allocated=20
>>> everywhere where
>>> allocate_resource(&iomem_resource, ...) is called.
>>> I don't see what prevents the same range from being allocated. Why=20
>>> actually
>>> allocate_resource(&iomem_resource, ...) can't provide the same range =

>>> if it is
>>> free (not-reserved-yet) from it's PoV? The comment above=20
>>> allocate_resource()
>>> says "allocate empty slot in the resource tree given range &=20
>>> alignment". So
>>> this "empty slot" could be exactly the same range.
>>>
>>> I experimented with that a bit trying to call
>>> allocate_resource(&iomem_resource, ...) several times in another=20
>>> place to see
>>> what ranges it returns in both cases (w/ and w/o calling insert_resou=
rce
>>> here). So an experiment confirmed (of course, if I made it correctly)=
=20
>>> that the
>>> same range could be allocated if we didn't call insert_resource()=20
>>> here. And as
>>> I understand there is nothing strange here, as iomem_resource covers =
all
>>> address space initially (0, -1) and everything *not*=20
>>> inserted/requested (in
>>> other words, reserved) yet is considered as free and could be=20
>>> provided if fits
>>> constraints. Or I really missed something?
>> Thanks for the explanation! It was me that didn't know that
>> iomem_resource covers all the address space initially. I thought it wa=
s
>> populated only with actual iomem ranges. Now it makes sense, thanks!
>>
>>
>>> It feels to me that it would be better to call request_resource()=20
>>> instead of
>>> insert_resource(). It seems, that if no conflict happens both=20
>>> functions will
>>> behave in same way, but in case of conflict if the conflicting resour=
ce
>>> entirely fit the new resource the former will return an error. I=20
>>> think, this
>>> way we will be able to detect that a range we are trying to reserve=20
>>> is already
>>> present and bail out early.
>>>
>>>
>>>> Or maybe it is the other way around: core Linux code assumes everyth=
ing
>>>> is described in iomem_resource so something under kernel/ or mm/ wou=
ld
>>>> crash if we start using a page pointing to an address missing from
>>>> iomem_resource?
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pgmap =3D kzalloc(size=
of(*pgmap), GFP_KERNEL);
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (!pgmap) {
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 ret =3D -ENOMEM;
>>>>>>> @@ -95,12 +137,40 @@ static int fill_list(unsigned int nr_pages)
>>>>>>> =C2=A0=C2=A0=C2=A0 err_memremap:
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kfree(pgmap);
>>>>>>> =C2=A0=C2=A0=C2=A0 err_pgmap:
>>>>>>> +=C2=A0=C2=A0=C2=A0 if (tmp_res) {
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 release_resource(tmp_=
res);
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kfree(tmp_res);
>>>>>>> +=C2=A0=C2=A0=C2=A0 }
>>>>>>> +err_insert:
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 release_resource(res);=

>>>>>>> =C2=A0=C2=A0=C2=A0 err_resource:
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kfree(res);
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return ret;
>>>>>>> =C2=A0=C2=A0=C2=A0 }
>>>>>>> =C2=A0=C2=A0=C2=A0 +static void unpopulated_init(void)
>>>>>>> +{
>>>>>>> +=C2=A0=C2=A0=C2=A0 static bool inited =3D false;
>>>>>> initialized =3D false
>>>>> ok.
>>>>>
>>>>>
>>>>>>> +=C2=A0=C2=A0=C2=A0 int ret;
>>>>>>> +
>>>>>>> +=C2=A0=C2=A0=C2=A0 if (inited)
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return;
>>>>>>> +
>>>>>>> +=C2=A0=C2=A0=C2=A0 /*
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 * Try to initialize Xen resource the fi=
rst and fall back to
>>>>>>> default
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 * resource if arch doesn't offer one.
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 */
>>>>>>> +=C2=A0=C2=A0=C2=A0 ret =3D arch_xen_unpopulated_init(&xen_resour=
ce);
>>>>>>> +=C2=A0=C2=A0=C2=A0 if (!ret)
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 target_resource =3D &=
xen_resource;
>>>>>>> +=C2=A0=C2=A0=C2=A0 else if (ret =3D=3D -ENOSYS)
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 target_resource =3D &=
iomem_resource;
>>>>>>> +=C2=A0=C2=A0=C2=A0 else
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pr_err("Cannot initia=
lize Xen resource\n");
>>>>>>> +
>>>>>>> +=C2=A0=C2=A0=C2=A0 inited =3D true;
>>>>>>> +}
>>>>>> Would it make sense to call unpopulated_init from an init function=
,
>>>>>> rather than every time xen_alloc_unpopulated_pages is called?
>>>>> Good point, thank you. Will do. To be honest, I also don't like the=

>>>>> current
>>>>> approach much.
>>>>>
>>>>>
>>>>>>> =C2=A0=C2=A0=C2=A0 /**
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0 * xen_alloc_unpopulated_pages - alloc un=
populated pages
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0 * @nr_pages: Number of pages
>>>>>>> @@ -112,6 +182,16 @@ int xen_alloc_unpopulated_pages(unsigned int=

>>>>>>> nr_pages, struct page **pages)
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned int i;
>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int ret =3D 0;
>>>>>>> =C2=A0=C2=A0=C2=A0 +=C2=A0=C2=A0=C2=A0 unpopulated_init();
>>>>>>> +
>>>>>>> +=C2=A0=C2=A0=C2=A0 /*
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 * Fall back to default behavior if we d=
o not have any
>>>>>>> suitable
>>>>>>> resource
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 * to allocate required region from and =
as the result we won't
>>>>>>> be able
>>>>>>> to
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 * construct pages.
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0 */
>>>>>>> +=C2=A0=C2=A0=C2=A0 if (!target_resource)
>>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return alloc_xenballo=
oned_pages(nr_pages, pages);
>>>>>> The commit message says that the behavior on x86 doesn't change=20
>>>>>> but this
>>>>>> seems to be a change that could impact x86?
>>>>> I don't think, however I didn't tested on x86 and might be wrong, b=
ut
>>>>> according to the current patch, on x86 the "target_resource" is alw=
ays
>>>>> valid
>>>>> and points to the "iomem_resource" as arch_xen_unpopulated_init()=20
>>>>> is not
>>>>> implemented. So there won't be any fallback to use
>>>>> alloc_(free)_xenballooned_pages() here and fill_list() will behave =
as
>>>>> usual.
>>>> =C2=A0=C2=A0 If target_resource is always valid, then we don't need =
this special
>>>> check. In fact, the condition should never be true.
>>>
>>> The target_resource is always valid and points to the=20
>>> "iomem_resource" on x86
>>> (this is equivalent to the behavior before this patch).
>>> On Arm target_resource might be NULL if arch_xen_unpopulated_init()=20
>>> failed,
>>> for example, if no extended regions reported by the hypervisor.
>>> We cannot use "iomem_resource" on Arm, only a resource constructed fr=
om
>>> extended regions. This is why I added that check (and fallback to=20
>>> xenballooned
>>> pages).
>>> What I was thinking is that in case of using old Xen (although we=20
>>> would need
>>> to balloon out RAM pages) we still would be able to keep working, so =

>>> no need
>>> to disable CONFIG_XEN_UNPOPULATED_ALLOC on such setups.
>>>>> You raised a really good question, on Arm we need a fallback to=20
>>>>> balloon
>>>>> out
>>>>> RAM pages again if hypervisor doesn't provide extended regions (we =

>>>>> run on
>>>>> old
>>>>> version, no unused regions with reasonable size, etc), so I decided=
=20
>>>>> to put
>>>>> a
>>>>> fallback code here, an indicator of the failure is invalid
>>>>> "target_resource".
>>>> I think it is unnecessary as we already assume today that
>>>> &iomem_resource is always available.
>>>>> I noticed the patch which is about to be upstreamed that removes
>>>>> alloc_(free)xenballooned_pages API [1]. Right now I have no idea=20
>>>>> how/where
>>>>> this fallback could be implemented as this is under build option=20
>>>>> control
>>>>> (CONFIG_XEN_UNPOPULATED_ALLOC). So the API with the same name is=20
>>>>> either
>>>>> used
>>>>> for unpopulated pages (if set) or ballooned pages (if not set). I=20
>>>>> would
>>>>> appreciate suggestions regarding that. I am wondering would it be=20
>>>>> possible
>>>>> and
>>>>> correctly to have both mechanisms (unpopulated and ballooned)=20
>>>>> enabled by
>>>>> default and some init code to decide which one to use at runtime or=
=20
>>>>> some
>>>>> sort?
>>>> I would keep it simple and remove the fallback from this patch. So:
>>>>
>>>> - if not CONFIG_XEN_UNPOPULATED_ALLOC, then balloon
>>>> - if CONFIG_XEN_UNPOPULATED_ALLOC, then
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - xen_resource if present
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - otherwise iomem_resource
>>> Unfortunately, we cannot use iomem_resource on Arm safely, either=20
>>> xen_resource
>>> or fail (if no fallback exists).
>>>
>>>
>>>> The xen_resource/iomem_resource config can be done at init time usin=
g
>>>> target_resource. At runtime, target_resource is always !=3D NULL so =
we
>>>> just go ahead and use it.
>>>
>>> Thank you for the suggestion. OK, let's keep it simple and drop fallb=
ack
>>> attempts for now. With one remark:
>>> We will make CONFIG_XEN_UNPOPULATED_ALLOC disabled by default on Arm =

>>> in next
>>> patch. So by default everything will behave as usual on Arm (balloon =

>>> out RAM
>>> pages),
>>> if user knows for sure that Xen reports extended regions, he/she can =

>>> enable
>>> the config. This way we won't break anything. What do you think?
>> Actually after reading your replies and explanation I changed opinion:=
 I
>> think we do need the fallback because Linux cannot really assume that
>> it is running on "new Xen" so it definitely needs to keep working if
>> CONFIG_XEN_UNPOPULATED_ALLOC is enabled and the extended regions are n=
ot
>> advertised.
>>
>> I think we'll have to roll back some of the changes introduced by
>> 121f2faca2c0a. That's because even if CONFIG_XEN_UNPOPULATED_ALLOC is
>> enabled we cannot know if we can use unpopulated-alloc or whether we
>> have to use alloc_xenballooned_pages until we parse the /hypervisor no=
de
>> in device tree at runtime.
>=20
> Exactly!
>=20
>=20
>>
>> In short, we cannot switch between unpopulated-alloc and
>> alloc_xenballooned_pages at build time, we have to do it at runtime
>> (boot time).
>=20
> +1
>=20
>=20
> I created a patch to partially revert 121f2faca2c0a "xen/balloon: renam=
e=20
> alloc/free_xenballooned_pages".
>=20
> If there is no objections I will add it to V3 (which is almost ready,=20
> except the fallback bits). Could you please tell me what do you think?
>=20
>=20
>  From dc79bcd425358596d95e715a8bd8b81deaaeb703 Mon Sep 17 00:00:00 2001=

> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Date: Tue, 23 Nov 2021 18:14:41 +0200
> Subject: [PATCH] xen/balloon: Bring alloc(free)_xenballooned_pages help=
ers
>  =C2=A0back
>=20
> This patch rolls back some of the changes introduced by commit
> 121f2faca2c0a "xen/balloon: rename alloc/free_xenballooned_pages"
> in order to make possible to still allocate xenballooned pages
> if CONFIG_XEN_UNPOPULATED_ALLOC is enabled.
>=20
> On Arm the unpopulated pages will be allocated on top of extended
> regions provided by Xen via device-tree (the subsequent patches
> will add required bits to support unpopulated-alloc feature on Arm).
> The problem is that extended regions feature has been introduced
> into Xen quite recently (during 4.16 release cycle). So this
> effectively means that Linux must only use unpopulated-alloc on Arm
> if it is running on "new Xen" which advertises these regions.
> But, it will only be known after parsing the "hypervisor" node
> at boot time, so before doing that we cannot assume anything.
>=20
> In order to keep working if CONFIG_XEN_UNPOPULATED_ALLOC is enabled
> and the extended regions are not advertised (Linux is running on
> "old Xen", etc) we need the fallback to alloc_xenballooned_pages().
>=20
> This way we wouldn't reduce the amount of memory usable (wasting
> RAM pages) for any of the external mappings anymore (and eliminate
> XSA-300) with "new Xen", but would be still functional ballooning
> out RAM pages with "old Xen".
>=20
> Also rename alloc(free)_xenballooned_pages to=20
> xen_alloc(free)_ballooned_pages.
>=20
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
>  =C2=A0drivers/xen/balloon.c | 20 +++++++++-----------
>  =C2=A0include/xen/balloon.h |=C2=A0 3 +++
>  =C2=A0include/xen/xen.h=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 6 ++++++
>  =C2=A03 files changed, 18 insertions(+), 11 deletions(-)
>=20
> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
> index ba2ea11..a2c4fc49 100644
> --- a/drivers/xen/balloon.c
> +++ b/drivers/xen/balloon.c
> @@ -581,7 +581,6 @@ void balloon_set_new_target(unsigned long target)
>  =C2=A0}
>  =C2=A0EXPORT_SYMBOL_GPL(balloon_set_new_target);
>=20
> -#ifndef CONFIG_XEN_UNPOPULATED_ALLOC
>  =C2=A0static int add_ballooned_pages(unsigned int nr_pages)
>  =C2=A0{
>  =C2=A0=C2=A0=C2=A0=C2=A0 enum bp_state st;
> @@ -610,12 +609,12 @@ static int add_ballooned_pages(unsigned int nr_pa=
ges)
>  =C2=A0}
>=20
>  =C2=A0/**
> - * xen_alloc_unpopulated_pages - get pages that have been ballooned ou=
t
> + * xen_alloc_ballooned_pages - get pages that have been ballooned out
>  =C2=A0 * @nr_pages: Number of pages to get
>  =C2=A0 * @pages: pages returned
>  =C2=A0 * @return 0 on success, error otherwise
>  =C2=A0 */
> -int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page=20
> **pages)
> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pag=
es)
>  =C2=A0{
>  =C2=A0=C2=A0=C2=A0=C2=A0 unsigned int pgno =3D 0;
>  =C2=A0=C2=A0=C2=A0=C2=A0 struct page *page;
> @@ -652,23 +651,23 @@ int xen_alloc_unpopulated_pages(unsigned int=20
> nr_pages, struct page **pages)
>  =C2=A0=C2=A0=C2=A0=C2=A0 return 0;
>  =C2=A0 out_undo:
>  =C2=A0=C2=A0=C2=A0=C2=A0 mutex_unlock(&balloon_mutex);
> -=C2=A0=C2=A0=C2=A0 xen_free_unpopulated_pages(pgno, pages);
> +=C2=A0=C2=A0=C2=A0 xen_free_ballooned_pages(pgno, pages);
>  =C2=A0=C2=A0=C2=A0=C2=A0 /*
> -=C2=A0=C2=A0=C2=A0 =C2=A0* NB: free_xenballooned_pages will only subtr=
act pgno pages, but=20
> since
> +=C2=A0=C2=A0=C2=A0 =C2=A0* NB: xen_free_ballooned_pages will only subt=
ract pgno pages, but=20
> since
>  =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0* target_unpopulated is incremented wit=
h nr_pages at the start we=20
> need
>  =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0* to remove the remaining ones also, or=
 accounting will be screwed.
>  =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0*/
>  =C2=A0=C2=A0=C2=A0=C2=A0 balloon_stats.target_unpopulated -=3D nr_page=
s - pgno;
>  =C2=A0=C2=A0=C2=A0=C2=A0 return ret;
>  =C2=A0}
> -EXPORT_SYMBOL(xen_alloc_unpopulated_pages);
> +EXPORT_SYMBOL(xen_alloc_ballooned_pages);
>=20
>  =C2=A0/**
> - * xen_free_unpopulated_pages - return pages retrieved with=20
> get_ballooned_pages
> + * xen_free_ballooned_pages - return pages retrieved with=20
> get_ballooned_pages
>  =C2=A0 * @nr_pages: Number of pages
>  =C2=A0 * @pages: pages to return
>  =C2=A0 */
> -void xen_free_unpopulated_pages(unsigned int nr_pages, struct page=20
> **pages)
> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pag=
es)
>  =C2=A0{
>  =C2=A0=C2=A0=C2=A0=C2=A0 unsigned int i;
>=20
> @@ -687,9 +686,9 @@ void xen_free_unpopulated_pages(unsigned int=20
> nr_pages, struct page **pages)
>=20
>  =C2=A0=C2=A0=C2=A0=C2=A0 mutex_unlock(&balloon_mutex);
>  =C2=A0}
> -EXPORT_SYMBOL(xen_free_unpopulated_pages);
> +EXPORT_SYMBOL(xen_free_ballooned_pages);
>=20
> -#if defined(CONFIG_XEN_PV)
> +#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
>  =C2=A0static void __init balloon_add_region(unsigned long start_pfn,
>  =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned long pages)
>  =C2=A0{
> @@ -712,7 +711,6 @@ static void __init balloon_add_region(unsigned long=
=20
> start_pfn,
>  =C2=A0=C2=A0=C2=A0=C2=A0 balloon_stats.total_pages +=3D extra_pfn_end =
- start_pfn;
>  =C2=A0}
>  =C2=A0#endif
> -#endif
>=20
>  =C2=A0static int __init balloon_init(void)
>  =C2=A0{
> diff --git a/include/xen/balloon.h b/include/xen/balloon.h
> index e93d4f0..f78a6cc 100644
> --- a/include/xen/balloon.h
> +++ b/include/xen/balloon.h
> @@ -26,6 +26,9 @@ extern struct balloon_stats balloon_stats;
>=20
>  =C2=A0void balloon_set_new_target(unsigned long target);
>=20
> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pag=
es);
> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pag=
es);
> +
>  =C2=A0#ifdef CONFIG_XEN_BALLOON
>  =C2=A0void xen_balloon_init(void);
>  =C2=A0#else
> diff --git a/include/xen/xen.h b/include/xen/xen.h
> index 9f031b5..410e3e4 100644
> --- a/include/xen/xen.h
> +++ b/include/xen/xen.h
> @@ -52,7 +52,13 @@ bool xen_biovec_phys_mergeable(const struct bio_vec =

> *vec1,
>  =C2=A0extern u64 xen_saved_max_mem_size;
>  =C2=A0#endif
>=20
> +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>  =C2=A0int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct pa=
ge=20
> **pages);
>  =C2=A0void xen_free_unpopulated_pages(unsigned int nr_pages, struct pa=
ge=20
> **pages);
> +#else
> +#define xen_alloc_unpopulated_pages xen_alloc_ballooned_pages
> +#define xen_free_unpopulated_pages xen_free_ballooned_pages

Could you please make those inline functions instead?

Other than that I'm fine with the approach.


Juergen

--------------D91E9B4B1E22D8AFFDA252EE
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------D91E9B4B1E22D8AFFDA252EE--

--vYRbg6aD15TTF9AEtbMSp4LSwBRmT1vYD--

--0zbYD8Udb611Ee1FeeRnGZCxfY94x1rLa
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGdypQFAwAAAAAACgkQsN6d1ii/Ey+U
qggAleg7TZwcLaoxNn8cgsaI7Dk9x/Tu4CkWNictgNZuvQjKxZkoDYCi04MJXI3ooPP3bzMCTgYy
7cxbyYrIH7k47ditG2eovbAb72SNGLtBDfDwqBpMwfSj9RRhIOSgD2Ju0yTXHb8qFxQw3GeStJ5y
aZNPCfXqqQb7d8oXXbmqUlTVVoqwhH+AvSAHnZPChxo+Epjytm8K2zoTlsq+h+ZL3EIfUsuMXQei
10Y2xyDkRxmhw/5DsIAzfAtuRqvT6wQlG5hRMgnvn/sDUy+LWme/KbuRZqkxJVx+IFfwc653XufN
f8LGf/IDya6PVaFYT+A+ejS2cAstBRO1IFEiL4sUEQ==
=24n9
-----END PGP SIGNATURE-----

--0zbYD8Udb611Ee1FeeRnGZCxfY94x1rLa--


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 05:25:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 05:25:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230051.397758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkmP-0003Po-AQ; Wed, 24 Nov 2021 05:25:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230051.397758; Wed, 24 Nov 2021 05:25:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpkmP-0003Ph-7K; Wed, 24 Nov 2021 05:25:13 +0000
Received: by outflank-mailman (input) for mailman id 230051;
 Wed, 24 Nov 2021 05:25:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZRI3=QL=oracle.com=dongli.zhang@srs-se1.protection.inumbo.net>)
 id 1mpkmN-0003Pb-I9
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 05:25:11 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e3811d86-4ce6-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 06:25:09 +0100 (CET)
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AO4TIU3021511; 
 Wed, 24 Nov 2021 05:24:39 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3cg69mprj2-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 24 Nov 2021 05:24:39 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AO5LV6p109571;
 Wed, 24 Nov 2021 05:24:38 GMT
Received: from nam04-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam08lp2048.outbound.protection.outlook.com [104.47.73.48])
 by userp3020.oracle.com with ESMTP id 3ch5tgq59m-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 24 Nov 2021 05:24:37 +0000
Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20)
 by BYAPR10MB2453.namprd10.prod.outlook.com (2603:10b6:a02:b0::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Wed, 24 Nov
 2021 05:24:35 +0000
Received: from BYAPR10MB2663.namprd10.prod.outlook.com
 ([fe80::2848:63dc:b87:8021]) by BYAPR10MB2663.namprd10.prod.outlook.com
 ([fe80::2848:63dc:b87:8021%7]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 05:24:35 +0000
Received: from [IPv6:2606:b400:400:7444:8000::2e3] (2606:b400:8301:1010::16aa)
 by SJ0PR05CA0155.namprd05.prod.outlook.com (2603:10b6:a03:339::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.13 via Frontend
 Transport; Wed, 24 Nov 2021 05:24:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3811d86-4ce6-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc :
 references : from : message-id : date : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=m0y6mT4qyVR8XNUGc8DkKZTyZcBHqTyMWV7agwWQghk=;
 b=v50xQpJ8m7PDJ6lWq9awTk5jqEZSIJdUZ/sLK9LPh4P6r8s4Hmv7Rbm15fED6s958GCB
 2cvHtBYB4zy6EhPV4YFIhGwc7X6J7GdkR6vmxdzp78awbAPI/X1kzN83P9G08K/ZXkrg
 uGej99uZ9H6cnUsgoe18f6MFmrCzJHckDxTbXsrQKvFzxH2l8jRAkmw87WNnRcHzAi8G
 ORBjh8z4QTcQAv/s1+3S4Xbq0m/HT6DOYKQAd2goKPmy2CxEEtS1Yiozu8SAx+vBG6sT
 LXamz6aMuOlbNd+dlXnqU8MKzP5BOrhGhe2ylGgr+mtDUuzJ5nLghPZvKSBSwnKAh3qJ 8w== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mzAr5G4MmvDo6i0T1MsjnPi0g5bvKSuQ5hKTdoYoxFRpJWQ35vhbtlfqG/LQwRxoZauSmoXsZ8rWHNoddGHBpHeArdoc5nT9QUke1fUSOk8UmdSmBYh8jS6HeXZlLRjyewuTupHKanAzyTAeAVI8inLanmU+pO2Bw0opa0Kl3HqohRhtadSjyCDpnDTaSQGMcXm6C+RD5TQaD9L6v9o61xOg9sPJZpzFTjFeN0g2xcl27/mdCCFwpdn/YcgQXZMUYVT+1nYdvzNrXHXh7fO6DAJtsJJzlYDUEnZpqqIFlgguZTQOD61UaJFRVk7I8oHU35E2KrvaPfNgw4ox2mG6Kw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m0y6mT4qyVR8XNUGc8DkKZTyZcBHqTyMWV7agwWQghk=;
 b=HMKJYU0wDAnCD5ofJLJBFAInrzGPuBeXdWRxyiLWWWHALfhgTAPP9H9XUrRJOoynokEayZFDe5sT0gbTVgOkJ+MLqRodp4zugq/UBS03BULtWEXTy8cjqBSIOL6rjwffY5ubIVmih3nqm/utEMYbN9GwOcAVIjEuX4IrTIpQYIR+o2aNlZbbep6zPPGHPU5B/uxoHbf42YN4tN3x0Q5B4TjxhZ2OsjAfqlfkpmIQwH9hRZtKpzaslNP9HWk47+Ky/V6iMKuxohYhEzsfvhXKMwHxov1VfrBKxwXRe9ChoU1f/3Y7Vwnu7x0ZamaJhePS3MjGd0v3EoH/5DdnU0hQAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m0y6mT4qyVR8XNUGc8DkKZTyZcBHqTyMWV7agwWQghk=;
 b=BnOZPJFsmJ4bvIc4ozgOTA45HqGGGgR9dFZZOdoywAzbTg2iAC5fX3Yzclugg9jBkRN0vfM4BOhKiH6IhpwDkcKoZggLLLgzTs0UwdTg+13kjkvx7qV4nlng3ubSD2TQPJQiEuFPmcKUL5UWPnQTUFvfNkOGmNZTqsXMw1VJZLQ=
Subject: Re: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
To: "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)"
 <longpeng2@huawei.com>,
        Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
        "Gonglei (Arei)" <arei.gonglei@huawei.com>,
        "x86@kernel.org"
 <x86@kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@kernel.org>,
        Valentin Schneider <valentin.schneider@arm.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Juergen Gross
 <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>
References: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
 <d5f43af4-f91f-ef9f-9c33-8d349f59b23c@oracle.com>
 <46f7dbb8c0cb42228ed028ed89af1282@huawei.com>
From: Dongli Zhang <dongli.zhang@oracle.com>
Message-ID: <5c0b2ab4-7e97-b9a9-e1fa-d93323f23c1f@oracle.com>
Date: Tue, 23 Nov 2021 21:24:32 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.6.1
In-Reply-To: <46f7dbb8c0cb42228ed028ed89af1282@huawei.com>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR05CA0155.namprd05.prod.outlook.com
 (2603:10b6:a03:339::10) To BYAPR10MB2663.namprd10.prod.outlook.com
 (2603:10b6:a02:a9::20)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e662cf9b-db85-4d65-418d-08d9af0ab38f
X-MS-TrafficTypeDiagnostic: BYAPR10MB2453:
X-Microsoft-Antispam-PRVS: 
	<BYAPR10MB2453CCF805548488970C3F5FF0619@BYAPR10MB2453.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	szMdH1rPzsIpGTKSJbktML5fuzfyoVXarW6AqdOi2Sd7iP6kebeUGKoA9WI/PSyfe1ddZxvjBWKEW+Zkpu67gIlrnNjXjQRd/zLTcOsOBSjsUMsk2JsW8T6CErW+ilR3d4Jpy8lCqJlqp2yT0jwjJidF4ypqi0aDbb/wiGreimsj0RNVrn0a+R4abjFpk8Ns29EOxa7/oKoyzvypWbdQC4WWyNUN+Z89UwvdRs+s7N+MgO682LjmcE626VMog9cO8ki0taRP6JC5MNz50eFnrGE/6NDgFa10qVoB1JkWuCMLCX60FUMq1leozoLj1RnqSw8Mw5TKSG/cJ8WRjN99N0GRpJip7WR5hSzuXQCPS3IGV+nExyOq5bpxhuxBHbve2N0VGNYr+yDKSemkusrqkwI9S09vezUVUqY4zxclJOfDAtHMONBajpjt9iv19U3SIW2UNIsI7ev9feWVvH1kWR3o4Eu1jM0RvwazwyNZim5+yrEGqhM00bHzRXnbaFrZpA3fyJX1HWaDGbLpu/ry0swAFRNhOX/TybIvyIjMwp5cyDOFVBxXfqWvrT1BTyUbvxY7ck8cVpU0dz4oKQcy6LIIUIl6TZJL8s57krcNgPaXJBEFlU2nRxvKSiSZNgNIUDumfkHFaKFDUrPxMqxXLRXDpJNcB1q1VssGfw1qIiHMgt2FwKvtk38sVj3zRQWHFudWdcQhYub89x55gBDWCZeJxrtSmv4efGIEslrtsJcelJlvJXLhnFWo+/RgeHouJpY44g3OAAAQlsR98dvfS3YJij/xQAMiVErnfveQF9rBqNC2uSVaV0Twn1oS0zkkpCTMb38/jw+4l848UHHnXA==
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB2663.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(110136005)(31686004)(7416002)(8936002)(4326008)(66946007)(54906003)(6486002)(44832011)(36756003)(31696002)(966005)(508600001)(86362001)(53546011)(8676002)(316002)(2906002)(38100700002)(186003)(66476007)(66556008)(2616005)(5660300002)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?T0ZYdU9TVGZkeWZ6UVh4MTZBVzErdnFZYlhxYkdkb0JYNkl5N2J4RlRoTTBM?=
 =?utf-8?B?N1ZjYWxJcEZ1UERKZVBlUHZwQndMOFpUZy9uRXdLR2Z5ZTk1WlQ1Sk1FejdC?=
 =?utf-8?B?QmNKeFV6UHd0cW1qZjVMeDliM2VQbnF1UjYvY3V4dlprcitmQzFvL29zdnZ1?=
 =?utf-8?B?b3drMlFMc25LSW42R1ZDV3pNUSswc3FMUTJpYkxndDRVd2FVM3pFRmpwMWRa?=
 =?utf-8?B?eXk3bmwvbE8zek5oVVNhOTRYRUlSN2w2blBCcDBXOTdPbDBZWTRnNXFaRlMy?=
 =?utf-8?B?ZCtlWXJSODBqT1NlMG9GMHp5M3VTSVRoZnlyak9qb2JWWmp6S1g5QmlNZHJF?=
 =?utf-8?B?TjlJd3h3bWhhWFZDMGNvaXcvZURLK0gveHlaSm5iZ2ZjWjdRU0grNUZqKzls?=
 =?utf-8?B?N3FEbWVpaU0vRE5aZ1BlVHRzOVhFSzBERlNBRTZUeWlPM3R3ZzVUNTJkUkJ0?=
 =?utf-8?B?QzZOb2IvZFBwMHlqS1Z5SW9DeHVsQUNsWmo4ak5wSEtiVUR1UFhSa1k0Q0x5?=
 =?utf-8?B?T0x5cXJBdDc1MmliV3NRVEZhTTNIdC90dFFjUUhudVJ0a3lmc3owWkl4WFhj?=
 =?utf-8?B?U0xZK2kwZks1UTlsS1FuVDdaR3pkb0JlOEw3WHhUNVdxeS9YT3E5dGMydzBx?=
 =?utf-8?B?ejdrQXRVcE8weGZta1FHNTJnYS9vK3NwQXkzSmJUMmpVdXFwYjBYUnpPa3Jq?=
 =?utf-8?B?WE5QN1JKM05nbkwwNGNuMEVsNGEzSnU0cHhXYlRRVTR4SVJxcmxaZmxsajJm?=
 =?utf-8?B?TzJYNnQyb1l0blhzYlJuQW1FQWNYTG1IR1cwZXJjbEpMSnJENG5QK0lrS0Nn?=
 =?utf-8?B?UW9ReUovckZscHk0endTb3hWMWN2S3JvSWFFSzFMdm1zemVMMW5sZi9iL01T?=
 =?utf-8?B?WVRpaldPMzRzRDdUUHdIN00zVmdSTTlIanU0U0FxRE1RMlk3VnFGY095bTBV?=
 =?utf-8?B?cjBVNTM3YnJxNG5IelZUOVRwUVE1L0NoYWwzOWdoQ0VJalYrWUZXOHBKMi93?=
 =?utf-8?B?aGZKdDFSdE5FNEpLR3lJdlFhbG84cGcvMldpNEMyMU15YlNrMk83TUVyVTBo?=
 =?utf-8?B?UmlHRHhwWmJyM2tHTlNBY1crUU85UFgvNFBCL0ptMVlsUTNrZnhWVkJwYXg3?=
 =?utf-8?B?UndLb1hnYVgweEY0WVpHclJUZW44YTZRZ1RrWDJlY1JXSkdiUDNWOVEwNkNk?=
 =?utf-8?B?ckVqOGNKcDlzVEtGM1k5eXMwaFpMQlhVT2JNSnB6TEdjREtTY1RkWUU1S3Y4?=
 =?utf-8?B?RjlSVmVVQlJxUWdzRUZUSWh1YktkcERwOWc5Q1hTSHQxdkpWZVQveTBhV0VW?=
 =?utf-8?B?WFNGMXhvU0FWWUR4dCtYWjRKNytkNXAxOWF4UzFWRGJ5SWtwcDVDQWxLbXBz?=
 =?utf-8?B?MTJvTis3bUZ4N05Cd0hJR0taaWU5VDlYdE9OSTlaM2dHYk1HakRod1VCdlFB?=
 =?utf-8?B?YnNTWVM1MHFzdklyOU9TQXJjdnNGRUE5Vis2Zm1zZVRMMjhpNEdLKzNWY2FK?=
 =?utf-8?B?ZEQrdWtjODYzNmcvSjZsejBLZVZQK0ZsYjNwckNSdCtFZjVNLzNnVkVkL1ZO?=
 =?utf-8?B?K1NyMUlmbyt3amJQL3dZUy9iOG53aFo3N0RSN1RJKzh0SzF0MmVnVUpkb3Iy?=
 =?utf-8?B?QktRcHN0VFJJdWFMVGp4ZHhwY3ZjWkphV1hyTXBPUXJXdVpkUlo1NXQxNDJJ?=
 =?utf-8?B?Nnc1cXlWazNVOEpRRmxQRjBWaHJ3TXVwWHNYREJ2Q3dFMjlEbmRaTmVKWXB5?=
 =?utf-8?B?SEgwalNWcjBTamRtcFF3VzR3eng0dGNWSFIvV0V4dlVuRExMNW00NWVlSVFR?=
 =?utf-8?B?UjhxTGNlYzZaRUhyb0tIVjZIa1BoYncvVkJndWttbExJTnJJUmpKV285dFox?=
 =?utf-8?B?ZFFQM3FQb0x4SzV1aURmeEpjaFlKVXphUFlFZEJmM3dBTC8wT0MwUkVxQUNF?=
 =?utf-8?B?ckpqTEhESDJkZm9DUGtNM1VjbDlMa2RkRitCME8yV0xqYUNaTzBDNll3aU1T?=
 =?utf-8?B?SFIvVksySzhYQWNjUjkxU2IvN2d5SHk0dFBZSi9lZmNGR05URjIrL0UxdnI2?=
 =?utf-8?B?V0FmMThpc1hVelEvK3lPTGFNQlhsTC9CdThFYm0yVEpsVmxYZCs4V281UDJJ?=
 =?utf-8?B?Y0s1TG94T3Q3U3djT3l5Zno2U082UnlqWTVMTGVtN1phOGtvWkxqeUlEYnF6?=
 =?utf-8?B?WURIVXhaVE5ORTlpZkdqNlh3MVBmS2tmWFBQSExSTjVITnRHSkNLdVFza05I?=
 =?utf-8?B?TTNETTRuWm1FSjlJVW9pdnhGb1VBPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e662cf9b-db85-4d65-418d-08d9af0ab38f
X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 05:24:35.0957
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: d8Rk8MR8pRYN0Y3ve4zUSA8F6cZWwPgZG19ikA3RXz8OwgGIskDcCdo0GMiBY+OefRi5RQVPNVitxz3DgEgRbA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2453
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10177 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 spamscore=0
 phishscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111240031
X-Proofpoint-GUID: fv6VGFIi2_PgJ8_BgZ_h_a-sdFFimo7F
X-Proofpoint-ORIG-GUID: fv6VGFIi2_PgJ8_BgZ_h_a-sdFFimo7F



On 11/23/21 3:50 PM, Longpeng (Mike, Cloud Infrastructure Service Product Dept.)
wrote:
> 
> 
>> -----Original Message-----
>> From: Dongli Zhang [mailto:dongli.zhang@oracle.com]
>> Sent: Wednesday, November 24, 2021 5:22 AM
>> To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>; Longpeng (Mike, Cloud
>> Infrastructure Service Product Dept.) <longpeng2@huawei.com>
>> Cc: linux-kernel@vger.kernel.org; Gonglei (Arei) <arei.gonglei@huawei.com>;
>> x86@kernel.org; xen-devel@lists.xenproject.org; Peter Zijlstra
>> <peterz@infradead.org>; Ingo Molnar <mingo@kernel.org>; Valentin Schneider
>> <valentin.schneider@arm.com>; Boris Ostrovsky <boris.ostrovsky@oracle.com>;
>> Juergen Gross <jgross@suse.com>; Stefano Stabellini <sstabellini@kernel.org>;
>> Thomas Gleixner <tglx@linutronix.de>; Ingo Molnar <mingo@redhat.com>; Borislav
>> Petkov <bp@alien8.de>; Dave Hansen <dave.hansen@linux.intel.com>; H. Peter
>> Anvin <hpa@zytor.com>
>> Subject: Re: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
>> brought up again.
>>
>> Tested-by: Dongli Zhang <dongli.zhang@oracle.com>
>>
>>
>> The bug fixed by commit 53fafdbb8b21 ("KVM: x86: switch KVMCLOCK base to
>> monotonic raw clock") may leave the cpu_hotplug_state at CPU_UP_PREPARE. As a
>> result, to online this CPU again (even after removal) is always failed.
>>
>> I have tested that this patch works well to workaround the issue, by introducing
>> either a mdeley(11000) or while(1); to start_secondary(). That is, to online
>> the
>> same CPU again is successful even after initial do_boot_cpu() failure.
>>
>> 1. add mdelay(11000) or while(1); to the start_secondary().
>>
>> 2. to online CPU is failed at do_boot_cpu().
>>
> 
> Thanks for your testing :)
> 
> Does the cpu4 spin in wait_for_master_cpu() in your case ?

I did two tests.

TEST 1.

I added "mdelay(11000);" as the first line in start_secondary(). Once the issue
was encountered, the RIP of CPU=4 was ffffffff8c242021 (from QEMU's "info
registers -a") which was in the range of wait_for_master_cpu().

# cat /proc/kallsyms | grep ffffffff8c2420
ffffffff8c242010 t wait_for_master_cpu
ffffffff8c242030 T load_fixmap_gdt
ffffffff8c242060 T native_write_cr4
ffffffff8c2420c0 T cr4_init


TEST 2.

I added "while(true);" as the first line in start_secondary(). Once the issue
was encountered, the RIP of CPU=4 was ffffffff91654c0a (from QEMU's "info
registers -a") which was in the range of start_secondary().

# cat /proc/kallsyms | grep ffffffff91654c0
ffffffff91654c00 t start_secondary

Dongli Zhang


> 
>> 3. to online CPU again is failed without this patch.
>>
>> # echo 1 > /sys/devices/system/cpu/cpu4/online
>> -su: echo: write error: Input/output error
>>
>> 4. to online CPU again is successful with this patch.
>>
>> Thank you very much!
>>
>> Dongli Zhang
>>
>> On 11/22/21 7:47 AM, Sebastian Andrzej Siewior wrote:
>>> From: "Longpeng(Mike)" <longpeng2@huawei.com>
>>>
>>> A CPU will not show up in virtualized environment which includes an
>>> Enclave. The VM splits its resources into a primary VM and a Enclave
>>> VM. While the Enclave is active, the hypervisor will ignore all requests
>>> to bring up a CPU and this CPU will remain in CPU_UP_PREPARE state.
>>> The kernel will wait up to ten seconds for CPU to show up
>>> (do_boot_cpu()) and then rollback the hotplug state back to
>>> CPUHP_OFFLINE leaving the CPU state in CPU_UP_PREPARE. The CPU state is
>>> set back to CPUHP_TEARDOWN_CPU during the CPU_POST_DEAD stage.
>>>
>>> After the Enclave VM terminates, the primary VM can bring up the CPU
>>> again.
>>>
>>> Allow to bring up the CPU if it is in the CPU_UP_PREPARE state.
>>>
>>> [bigeasy: Rewrite commit description.]
>>>
>>> Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
>>> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
>>> Link:
>> https://urldefense.com/v3/__https://lore.kernel.org/r/20210901051143.2752-1
>> -longpeng2@huawei.com__;!!ACWV5N9M2RV99hQ!d4sCCXMQV7ekFwpd21vo1_9K-m5h4VZ-g
>> E8Z62PLL58DT4VJ6StH57TR_KpBdbwhBE0$
>>> ---
>>>
>>> For XEN: this changes the behaviour as it allows to invoke
>>> cpu_initialize_context() again should it have have earlier. I *think*
>>> this is okay and would to bring up the CPU again should the memory
>>> allocation in cpu_initialize_context() fail.
>>>
>>>  kernel/smpboot.c | 7 +++++++
>>>  1 file changed, 7 insertions(+)
>>>
>>> diff --git a/kernel/smpboot.c b/kernel/smpboot.c
>>> index f6bc0bc8a2aab..34958d7fe2c1c 100644
>>> --- a/kernel/smpboot.c
>>> +++ b/kernel/smpboot.c
>>> @@ -392,6 +392,13 @@ int cpu_check_up_prepare(int cpu)
>>>  		 */
>>>  		return -EAGAIN;
>>>
>>> +	case CPU_UP_PREPARE:
>>> +		/*
>>> +		 * Timeout while waiting for the CPU to show up. Allow to try
>>> +		 * again later.
>>> +		 */
>>> +		return 0;
>>> +
>>>  	default:
>>>
>>>  		/* Should not happen.  Famous last words. */
>>>


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 05:47:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 05:47:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230056.397769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpl7K-0005lU-2f; Wed, 24 Nov 2021 05:46:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230056.397769; Wed, 24 Nov 2021 05:46:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpl7J-0005lN-Vl; Wed, 24 Nov 2021 05:46:49 +0000
Received: by outflank-mailman (input) for mailman id 230056;
 Wed, 24 Nov 2021 05:46:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PfMc=QL=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1mpl7H-0005lH-Lv
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 05:46:47 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01on0612.outbound.protection.outlook.com
 [2a01:111:f400:fe02::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e740bea4-4ce9-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 06:46:44 +0100 (CET)
Received: from AM7PR03CA0023.eurprd03.prod.outlook.com (2603:10a6:20b:130::33)
 by AM5PR0801MB1779.eurprd08.prod.outlook.com (2603:10a6:203:2f::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 05:46:38 +0000
Received: from AM5EUR03FT049.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:130:cafe::f6) by AM7PR03CA0023.outlook.office365.com
 (2603:10a6:20b:130::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Wed, 24 Nov 2021 05:46:38 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT049.mail.protection.outlook.com (10.152.17.130) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Wed, 24 Nov 2021 05:46:37 +0000
Received: ("Tessian outbound a33f292be81b:v110");
 Wed, 24 Nov 2021 05:46:37 +0000
Received: from bfdcd5859eaf.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F73AC2D3-F70C-4730-9259-283D443C0704.1; 
 Wed, 24 Nov 2021 05:46:26 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id bfdcd5859eaf.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 24 Nov 2021 05:46:26 +0000
Received: from PA4PR08MB6253.eurprd08.prod.outlook.com (2603:10a6:102:e4::8)
 by PA4PR08MB6207.eurprd08.prod.outlook.com (2603:10a6:102:f2::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Wed, 24 Nov
 2021 05:46:24 +0000
Received: from PA4PR08MB6253.eurprd08.prod.outlook.com
 ([fe80::99cd:3d3b:4670:7413]) by PA4PR08MB6253.eurprd08.prod.outlook.com
 ([fe80::99cd:3d3b:4670:7413%5]) with mapi id 15.20.4713.025; Wed, 24 Nov 2021
 05:46:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e740bea4-4ce9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6gW+3P/vQ5x9Q8Xt4GgCYZmBVuMi9sojU6FxOzJpjNg=;
 b=c86RXWb9l8IisU806BgBBsPk6sD73D8YDZ1lwReW3akHzT5JkyalIOjUOw2iRuUPtNAmXlC2GsdIjvxjOga7YCe8f1EINWVMrPx8eCnOgoWB0UlkQUihR6IunhJYZQuGRqtsNdgM15GIaskVaYumgLC/5h0pMBlh0APad8wjtXA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IgMo963PVpBFLC17Dk31fffY77nhgB6xpZj+fc+wAGI+zsBaNbgvD2Po10SnHsoMv4xpMEt9FRvUmggYer9vXzm1zdLku/rc4LKAirs0pNC4PUyi4Ey47oh8/wewFPTu7ZZhoe1Fi1lC/rBcNEAPfKdZX3Ja3D4xVtmHi/pFPOwmSTJiKY9COgGZTNX53p7zDahOufD9QLm0qwA5tS3a9zGLLtMnDzxjM/3XXxu27itdCP483mPEmUG49xuKMEWVQ8HqXlnCnbLoCCpozK3vOYDY37bkE3Vk8meY/b02rdQhAqJq6+zbDfpvl594gYY1+p+3+b7O9/vXwhnszlXS1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6gW+3P/vQ5x9Q8Xt4GgCYZmBVuMi9sojU6FxOzJpjNg=;
 b=UW7ce0dEf4GOQTxt9Mvxok1pg19phcGI6AYMZm3+MQfjr+ERmunGp+6hj7KI0rhFKOhXp050Ug4MXxG50DdbyJfb25BLtR2zUgc7sgsorheH3Qcx7R+6SrxViDew1qtxx/cnOAjUwqXr/VxQDVzBtzDRGRknZpPOvRHcoInk6L5o/jOcxcGujAMKDzc1m4MMap0UltpUMfep6VcyVzmu9Dfg1YIcs0A1lySR8V3B02CzVcJ0DMZtCpiwmy5JxEZroeBlKIyNPrVO309ExoGdFgwP4karMreqHqnbSEgGt1Tl+qHqOzA1LT5gsYLSFbmO9thly0OX6t8dTCJSkoc0Hg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6gW+3P/vQ5x9Q8Xt4GgCYZmBVuMi9sojU6FxOzJpjNg=;
 b=c86RXWb9l8IisU806BgBBsPk6sD73D8YDZ1lwReW3akHzT5JkyalIOjUOw2iRuUPtNAmXlC2GsdIjvxjOga7YCe8f1EINWVMrPx8eCnOgoWB0UlkQUihR6IunhJYZQuGRqtsNdgM15GIaskVaYumgLC/5h0pMBlh0APad8wjtXA=
From: Henry Wang <Henry.Wang@arm.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>, "Longpeng (Mike, Cloud
 Infrastructure Service Product Dept.)" <longpeng2@huawei.com>
CC: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Gonglei
 (Arei)" <arei.gonglei@huawei.com>, "x86@kernel.org" <x86@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Peter
 Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@kernel.org>, Valentin
 Schneider <Valentin.Schneider@arm.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>
Subject: RE: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
Thread-Topic: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
Thread-Index: AQHX37hKGtzzqQcms0GH3edF0vl/xqwSLU/Q
Date: Wed, 24 Nov 2021 05:46:23 +0000
Message-ID:
 <PA4PR08MB6253478CA634E39607799B4292619@PA4PR08MB6253.eurprd08.prod.outlook.com>
References: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
In-Reply-To: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: 342304AF31CB7A44A51D8ACA47F62A30.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 716d0928-6a88-41a1-185e-08d9af0dc855
x-ms-traffictypediagnostic: PA4PR08MB6207:|AM5PR0801MB1779:
X-Microsoft-Antispam-PRVS:
	<AM5PR0801MB17793DB1FA5D5B9DC4B332BC92619@AM5PR0801MB1779.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:6790;OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 QiFMezQaBiOB9lKmwqh4Hod6ALUSYYFVK1/aGGqR+wqU1R+6lRqxF0jq2e/iwMhblHxxSjKbrKmRMXIXb4vFEcRp9O4IQPHB4okgVAkxBFaueyW2Kl5U0/aQykL6zF4Q/mCVxK8PuPUtjBDSP90izjNuJvkLhe+kYmGUhMy50qaN1NlgnPIzZ5BkyahOCl9sSAeFu6BgCBYKMm5pttzg8Db6v7bKc+HpqC4ZMd5gVMeim1dqK1/VhKOND2xn/fYbcwvjxwJOQiKzj6g+QZZKfAOTeYCQfitlr3MVB10ZPro3kaPdZu46cEXNEMnTQuorObeRUPlB1K7EQ54yykznLtcmSpdqGpytvJyiBXnYCV1JO7dCEzUQWODwk4IW586PCk3fbstPO5/VNzeWUO8L0DmIapCBVknnCd0kiKBBIvatvHuIfiC4qcicbg7/zBQ2nFIeEI0bN7SORXLKr1448dkA132DnM/ugxSewK/Tx4uwzhySmN3J3UuW1vfCeP/xt8S5lRk7F05TzXuxYWXoFsLTzS8zPOYeBncaW3xQAgp/FeW5TG0Al7vDdlOtYEULfwytQiwLHTtE9MaD74SbcL6BO5kDVIcFZkQr0zrz0hFgC30KsNKyvQCSKgt1ihPq6nqSd9VrMvlrpkaVuXwkDilSk5fRCk2+FOUOUFgKohVfvuaXD3CuHWv/JYCpwsuFL8cIxoos03oVAFmO/KH8ooURTJOt7GleGAqXeAZa/qNvmrdvnW4oEXs1IlY1dgQ/erAaJCt4c5v01UZq7246pfagsHPMabzFMEf1qkhQLnw=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR08MB6253.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(508600001)(53546011)(316002)(7416002)(5660300002)(86362001)(6506007)(52536014)(54906003)(7696005)(110136005)(9686003)(83380400001)(966005)(26005)(71200400001)(55016003)(33656002)(2906002)(76116006)(186003)(8676002)(4326008)(122000001)(8936002)(66476007)(66946007)(66446008)(64756008)(66556008)(38100700002)(38070700005);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6207
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT049.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2ec1a6c5-d07f-4577-fb7c-08d9af0dbfae
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	U75dJsnfrrQawVG7FhZDnL76cFKRBsHEL7tkZS+9PdKGQOAm0FNctEFY6KYdSZkPzaAVv3aoa5s1WWMC1L7vVVzKLrDiiJoG1BGWz/Sb8kR+0vxMpLWlK3zA9OXPCcvE/LQQFuFqU0YWwPl7ATkD7n8CtJu3U50iT+MuDFcIFW4UEs8RYbSvzVw74StdlnEtD/2gZxQdupfQPbDTHLsUCqX4VS8s87cokYNMybvdFjQYNUJ28OShxq5rfNXhmoXx9Cffavapo3FmcKATJvsjxPx242TWprCAna9OAnu5KZTe8Xov6xQwTJlJHi94StQaVpX434J5God0EVmzMAAD7XHk4SMZGROD+knS+Q7yB57y/63qbQ1fKAjNQcjWtMGZgbKL6x0RNlsuZHQw2jhU7fZe5x9yFlgD+mtlwfw+xsiqQzeN1kK8lUyWlPMYy7xC9+IKLfOTjN1TzNVFRThXrtLidedhT59sZRpUr6vLPaszPB+1D/MVf4/z8iVVnN4O59SSy0XULIkyl/KgxAhiYg/xH6fwW6cAJ4yM6HOIrWzVyma1Kcu5M+ROYiKV4BaH9qwwGDmNvVeoCFfGsaMxFeOE4cFJj+idPAeC38tMcZID6Nc3/2fB8me3qFTDYLJ+P9fCLhUKtZZdxOgSV7HhHS+nBB5dFa7d301gGzbU1W7i2EP3P3gAzjlmUeKUUO7gfmZ0u0i6Fy137KFaaV2gSFQdtMDOB3f578yujIEEZYWNiAz4cMmeiG+vrW4x6xWhE6RS1vy0yzbmX90DLpX62olU8vTWaOz6veYQIF1R29k=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(5660300002)(316002)(36860700001)(83380400001)(70206006)(70586007)(26005)(55016003)(82310400004)(86362001)(7696005)(9686003)(4326008)(2906002)(8936002)(966005)(107886003)(47076005)(33656002)(6506007)(356005)(186003)(336012)(508600001)(8676002)(110136005)(81166007)(53546011)(52536014)(54906003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 05:46:37.9531
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 716d0928-6a88-41a1-185e-08d9af0dc855
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT049.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1779

SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWGVuLWRldmVsIDx4
ZW4tZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZz4gT24gQmVoYWxmIE9mDQo+IFNl
YmFzdGlhbiBBbmRyemVqIFNpZXdpb3INCj4gU2VudDogTW9uZGF5LCBOb3ZlbWJlciAyMiwgMjAy
MSAxMTo0NyBQTQ0KPiBUbzogTG9uZ3BlbmcgKE1pa2UsIENsb3VkIEluZnJhc3RydWN0dXJlIFNl
cnZpY2UgUHJvZHVjdCBEZXB0LikNCj4gPGxvbmdwZW5nMkBodWF3ZWkuY29tPg0KPiBDYzogbGlu
dXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgR29uZ2xlaSAoQXJlaSkgPGFyZWkuZ29uZ2xlaUBo
dWF3ZWkuY29tPjsNCj4geDg2QGtlcm5lbC5vcmc7IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZzsgUGV0ZXIgWmlqbHN0cmENCj4gPHBldGVyekBpbmZyYWRlYWQub3JnPjsgSW5nbyBNb2xu
YXIgPG1pbmdvQGtlcm5lbC5vcmc+OyBWYWxlbnRpbg0KPiBTY2huZWlkZXIgPFZhbGVudGluLlNj
aG5laWRlckBhcm0uY29tPjsgQm9yaXMgT3N0cm92c2t5DQo+IDxib3Jpcy5vc3Ryb3Zza3lAb3Jh
Y2xlLmNvbT47IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT47IFN0ZWZhbm8NCj4gU3Rh
YmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IFRob21hcyBHbGVpeG5lciA8dGdseEBs
aW51dHJvbml4LmRlPjsNCj4gSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+OyBCb3Jpc2xh
diBQZXRrb3YgPGJwQGFsaWVuOC5kZT47IERhdmUNCj4gSGFuc2VuIDxkYXZlLmhhbnNlbkBsaW51
eC5pbnRlbC5jb20+OyBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4NCj4gU3ViamVjdDog
W1BBVENIXSBjcHUvaG90cGx1ZzogQWxsb3cgdGhlIENQVSBpbiBDUFVfVVBfUFJFUEFSRSBzdGF0
ZSB0byBiZQ0KPiBicm91Z2h0IHVwIGFnYWluLg0KPiANCj4gRnJvbTogIkxvbmdwZW5nKE1pa2Up
IiA8bG9uZ3BlbmcyQGh1YXdlaS5jb20+DQo+IA0KPiBBIENQVSB3aWxsIG5vdCBzaG93IHVwIGlu
IHZpcnR1YWxpemVkIGVudmlyb25tZW50IHdoaWNoIGluY2x1ZGVzIGFuDQo+IEVuY2xhdmUuIFRo
ZSBWTSBzcGxpdHMgaXRzIHJlc291cmNlcyBpbnRvIGEgcHJpbWFyeSBWTSBhbmQgYSBFbmNsYXZl
DQo+IFZNLiBXaGlsZSB0aGUgRW5jbGF2ZSBpcyBhY3RpdmUsIHRoZSBoeXBlcnZpc29yIHdpbGwg
aWdub3JlIGFsbCByZXF1ZXN0cw0KPiB0byBicmluZyB1cCBhIENQVSBhbmQgdGhpcyBDUFUgd2ls
bCByZW1haW4gaW4gQ1BVX1VQX1BSRVBBUkUgc3RhdGUuDQo+IFRoZSBrZXJuZWwgd2lsbCB3YWl0
IHVwIHRvIHRlbiBzZWNvbmRzIGZvciBDUFUgdG8gc2hvdyB1cA0KPiAoZG9fYm9vdF9jcHUoKSkg
YW5kIHRoZW4gcm9sbGJhY2sgdGhlIGhvdHBsdWcgc3RhdGUgYmFjayB0bw0KPiBDUFVIUF9PRkZM
SU5FIGxlYXZpbmcgdGhlIENQVSBzdGF0ZSBpbiBDUFVfVVBfUFJFUEFSRS4gVGhlIENQVSBzdGF0
ZSBpcw0KPiBzZXQgYmFjayB0byBDUFVIUF9URUFSRE9XTl9DUFUgZHVyaW5nIHRoZSBDUFVfUE9T
VF9ERUFEIHN0YWdlLg0KPiANCj4gQWZ0ZXIgdGhlIEVuY2xhdmUgVk0gdGVybWluYXRlcywgdGhl
IHByaW1hcnkgVk0gY2FuIGJyaW5nIHVwIHRoZSBDUFUNCj4gYWdhaW4uDQo+IA0KPiBBbGxvdyB0
byBicmluZyB1cCB0aGUgQ1BVIGlmIGl0IGlzIGluIHRoZSBDUFVfVVBfUFJFUEFSRSBzdGF0ZS4N
Cj4gDQo+IFtiaWdlYXN5OiBSZXdyaXRlIGNvbW1pdCBkZXNjcmlwdGlvbi5dDQo+IA0KPiBTaWdu
ZWQtb2ZmLWJ5OiBMb25ncGVuZyhNaWtlKSA8bG9uZ3BlbmcyQGh1YXdlaS5jb20+DQo+IFNpZ25l
ZC1vZmYtYnk6IFNlYmFzdGlhbiBBbmRyemVqIFNpZXdpb3IgPGJpZ2Vhc3lAbGludXRyb25peC5k
ZT4NCj4gTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDIxMDkwMTA1MTE0My4yNzUy
LTEtDQo+IGxvbmdwZW5nMkBodWF3ZWkuY29tDQo+IC0tLQ0KPiANCj4gRm9yIFhFTjogdGhpcyBj
aGFuZ2VzIHRoZSBiZWhhdmlvdXIgYXMgaXQgYWxsb3dzIHRvIGludm9rZQ0KPiBjcHVfaW5pdGlh
bGl6ZV9jb250ZXh0KCkgYWdhaW4gc2hvdWxkIGl0IGhhdmUgaGF2ZSBlYXJsaWVyLiBJICp0aGlu
ayoNCj4gdGhpcyBpcyBva2F5IGFuZCB3b3VsZCB0byBicmluZyB1cCB0aGUgQ1BVIGFnYWluIHNo
b3VsZCB0aGUgbWVtb3J5DQo+IGFsbG9jYXRpb24gaW4gY3B1X2luaXRpYWxpemVfY29udGV4dCgp
IGZhaWwuDQo+IA0KPiAga2VybmVsL3NtcGJvb3QuYyB8IDcgKysrKysrKw0KPiAgMSBmaWxlIGNo
YW5nZWQsIDcgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9zbXBib290
LmMgYi9rZXJuZWwvc21wYm9vdC5jDQo+IGluZGV4IGY2YmMwYmM4YTJhYWIuLjM0OTU4ZDdmZTJj
MWMgMTAwNjQ0DQo+IC0tLSBhL2tlcm5lbC9zbXBib290LmMNCj4gKysrIGIva2VybmVsL3NtcGJv
b3QuYw0KPiBAQCAtMzkyLDYgKzM5MiwxMyBAQCBpbnQgY3B1X2NoZWNrX3VwX3ByZXBhcmUoaW50
IGNwdSkNCj4gIAkJICovDQo+ICAJCXJldHVybiAtRUFHQUlOOw0KPiANCj4gKwljYXNlIENQVV9V
UF9QUkVQQVJFOg0KPiArCQkvKg0KPiArCQkgKiBUaW1lb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHRo
ZSBDUFUgdG8gc2hvdyB1cC4gQWxsb3cgdG8gdHJ5DQo+ICsJCSAqIGFnYWluIGxhdGVyLg0KPiAr
CQkgKi8NCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gIAlkZWZhdWx0Og0KPiANCj4gIAkJLyogU2hv
dWxkIG5vdCBoYXBwZW4uICBGYW1vdXMgbGFzdCB3b3Jkcy4gKi8NCj4gLS0NCj4gMi4zMy4xDQo+
IA0KDQpSZXZpZXdlZC1ieTogSGVucnkgV2FuZyA8SGVucnkuV2FuZ0Bhcm0uY29tPg0KDQpLaW5k
IHJlZ2FyZHMsDQoNCkhlbnJ5DQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 06:54:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 06:54:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230062.397779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmAW-00046d-S4; Wed, 24 Nov 2021 06:54:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230062.397779; Wed, 24 Nov 2021 06:54:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmAW-00046W-P5; Wed, 24 Nov 2021 06:54:12 +0000
Received: by outflank-mailman (input) for mailman id 230062;
 Wed, 24 Nov 2021 06:54:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gGpx=QL=epam.com=prvs=1962e93d75=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpmAU-00046Q-Pb
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 06:54:11 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 50be48fa-4cf3-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 07:54:07 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AO6cYad026032;
 Wed, 24 Nov 2021 06:54:03 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cheu6gafc-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 24 Nov 2021 06:54:03 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB3472.eurprd03.prod.outlook.com (2603:10a6:803:25::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Wed, 24 Nov
 2021 06:54:00 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 06:54:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50be48fa-4cf3-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Ux14PG5hT/RXDbHzyR4Ti+ERj5wiSioFqpLZDqcx3dBP2MEBNk+AKIVXYdAcACDEA+P/pzAjV5R8wWfZy3e5pvSsC/7wv1KyuTjPlz3Rbqxsl3CAGwiLffjXP6qtu+nTV1cP6SPyFJAIJUuFqMPL1qHxiSAf43K3oP/87FEWXwNoHd2SyL0EBD1xMNQcLcQiOtUXcUWKhnF/dhwQ6/fPie6vRRqQXMC48nbwRZ2utQ5psOtm/U6miUXIsATYN5DBO2SLiJmx0SjDkToYAA1vUhtK/ld8jedkTpxiTSvqPmg2mk8qG3QxFiR2G5g7n70kipxxTpbxoLPv/C9XSE6amg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3DLMtKomp2uXVBt+nUZFJgplJl+twfo3xmjpIJtqYso=;
 b=I60AWrV40b09F/uMI4RK8ZmET4UJWpBYw+2OUqkOcVKZBu6BEH4xUYHWgtrEnNMBYduxMbLX6/XcDRw4r6ZQ9ovpi3jkm2JfoI5SXAxW4u+KlhEApAN+/oiLSLniD6QOjEa2rFLu7lLF95mk4tcI1xyy4z+VnZAI4Y1fpzMQALSopAsbcm3D6fjfkvG0NXOWaMFYThHH5cQyeDk+yglX6szPw24GsBlM4uwhpix72RIEshwLWHoPeouYY4xdL5L43JwyJdYG7aI7EMJit0mFihVIj6Ax+dJPrToRBN6/fBSG3rH96ACYb/kaWR04AyB76gEmoj2cbs9scvHMtyL35Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3DLMtKomp2uXVBt+nUZFJgplJl+twfo3xmjpIJtqYso=;
 b=jVjk8cqdb/TZY71XawPJ6h3JFVelAkkx8n9hmDjn5AdDo94Fo+cs1DZOc0Pm+IgAtyJPhnVmfx86X7/K8ILKlrf62cl+CrIdrZ91kdaXyYtzQrWs3ikwAC4M/qGW/tMIX0bWEEBtaB4imPNQLkn9+X7YL0i1yRRpg9gKTOSzmoPmV9OLA3Qjf7eoVqeiqeLh8PIrFxLf62Lh8vBXsTo31nBXHvQOFzupBeIffEk9wvsURE2ZXw52dDaksQ/nkfVB/3KvnhhwdTiZbV5yFvfkSm0UqKHmAwNwvrlPsXYql4htXAaTC2/5W6vfedNJCxpbkedLfMVIBmWk3dWHUOIXzQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>
Subject: Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Topic: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Thread-Index: 
 AQHX0g8QVTbfP59mVU+LM2unTUGOtawGkRQAgADLYgCAAPUEgIAAofWAgAbUDQCAAA7WAIAADxaAgADd7ICAAKBPgIAACwWAgAAIlwCAAOS/gA==
Date: Wed, 24 Nov 2021 06:54:00 +0000
Message-ID: <0d79bb2b-ae54-0875-e2f6-c3c4a0b1f1c7@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-3-andr2000@gmail.com>
 <86cabc8a-cbf2-84d4-4162-7d5591d127c5@xen.org>
 <de155886-d039-4c45-0407-47f38f8cd75d@epam.com>
 <ab95fc39-d1b2-be80-8245-85161a8271e1@xen.org>
 <072848c8-54da-cb73-3b8a-0c35826cc812@epam.com>
 <e66c4189-acdf-c32f-4b50-51c8aaab4efd@xen.org>
 <315b1308-5adc-c4f3-6150-1060dbac5f4f@epam.com>
 <9f8e424d-ad1c-2d32-a470-68b275adf22c@xen.org>
 <0aff1bbb-eaf8-4deb-0808-d7db5f1ba8f5@epam.com>
 <ab73f2e5-11d1-7cb4-89ab-74ef5eb1d32d@xen.org>
 <bfd5d305-b315-2f6d-455d-dd3ba071d0b2@epam.com>
 <7192e606-eae2-e11f-9746-ec88afd1dd25@xen.org>
In-Reply-To: <7192e606-eae2-e11f-9746-ec88afd1dd25@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: db7a7467-df04-4809-1ae6-08d9af1731d4
x-ms-traffictypediagnostic: VI1PR0302MB3472:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB34720359E010C8F57ED7217CE7619@VI1PR0302MB3472.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 vHwm/8wGknXGP9DpF068rV/OB13dLrhfer7hVUR4gnE2aVERZdxW6dVsJ9Dro0H+UN7+rvYW6z6K5+rZSb+xMhfdpRcvDxnC42xmGQTN47Oxl27hxWqOKa5eldWO0i6QNJUIWnL7WMPAP6QuOOMA3K1OY4f9wyJYjZn/xHOJ/cAY6sNdwB2xich4YPqOcjZ8UI4OrHfLf/tItjjIda3AwtpSVyk2sCo/DJMgRDwxqZjfmVIK8UkT9Qt/6ewnXwmPf2KCH7Ykx02A5OfFAv8VUqjbt2oeNZksLOOGkLtfFSXZp0EYyCFvJbNZpR25RaX/wzRprf0SJUgIpWCEX8csmCaVEOGtak6vPtT6K4UxgTemcB/564SJnt9chxku5i+rxUzrGM6L8e7wJ0/s+RZzLGvUXP5zWy+zjfT/EV7K0ug9x2Xr/nrqVHpEpIhiWlojpDHZJeNliZ48GMiVDKk8+9S8J8dLGxn4v7qdAr4DDHOAGtl8fCRkpJNEaoKx8szWb8P/MtFEXtLkr3hfLONfnzEKdcBgDU/GFraW+e/t2LkGlk52K83N6rqSfyyU72QhUDWvDXHZ4wDGiW5wkznx2Fqb6+e2l9zseH2U+oAGYpLEUeW/G1k14v3v93XEki3Q0fdpe9wss0bC8W0Iu+d3wUoASbd5PHW3l57AoJso6ZV9Z0H63osxBL4SsQvWxYJIP7Kz5gLrMwhkGTJUy5oSYXZf3wvXRAoUinTtEaETPhUI211e0P+W8l6xvgdOJeJW
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(5660300002)(38100700002)(7416002)(6506007)(8936002)(91956017)(31686004)(110136005)(31696002)(2906002)(71200400001)(36756003)(83380400001)(122000001)(186003)(66946007)(54906003)(2616005)(76116006)(508600001)(316002)(6486002)(4326008)(86362001)(66556008)(66446008)(53546011)(26005)(6512007)(38070700005)(66476007)(64756008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?QUhYVWRXS3JMVDkxY05ERjhLMnJta1RqQTFjaDMvRGdzc3M1VDVVRHh5LzNZ?=
 =?utf-8?B?Zkl4Wm1WWmRPYkpiUFY1aUx3b0p3NTZpY1BEYWd5aU41SkVBY2ZWa01aZ1hv?=
 =?utf-8?B?YlQ5Wmx2Y2RFVTRRcWpsUlo4NkQ1NW15Y3VoM2JnNVdRL000cll3ZW1MOUtq?=
 =?utf-8?B?aGwzNVl0bHNjbDFCNzIzOVRFRWJ4ZUhZZk1zcUgxZXdkckZKRkZaZVZHQWpF?=
 =?utf-8?B?djNGbkNKMGVtRzRuY2xRczF6TEdmOUdJUy90Z3VQa1JLODB2Qjg1UGdiZ2o2?=
 =?utf-8?B?ODBndWR5bGw4MmxKVzVlcmRjbXRoVG1ZNVVxYTNXQnFLcTNya2NWZVllblJX?=
 =?utf-8?B?amhVcmlldjZWSTA1ZFZjek03eFhVWG5pR2VnZFRmenR1R3kzcjY4amN3SUhM?=
 =?utf-8?B?MXJ6VVdhSzFPcjVLZzFLOE9mVU55MGdxTFlpSzJPQjJMUldQZG50TkVRL3I0?=
 =?utf-8?B?NjZpSmgxTENVQzVuZmNtZE53NkZ5VnNsM2MzL1NoRGlFSnUxSS92RDN0WWxi?=
 =?utf-8?B?QVJqOGNCcFdSWHV4MWdZdUN5N050clQ3aWtOUnd1cHlsQlJVZHowOTJpbzZJ?=
 =?utf-8?B?UEl4UTJveDdzSm9uem1sZXFCMm5JVUE2bEk5TnBkcGF4d1VsMGlpS3ZvYjUz?=
 =?utf-8?B?S3IrM2tBQzJ5TjJiR0FhWTBoeFZGNERFdDN4aDZHRE5lekxwd3JUVnZtTHZN?=
 =?utf-8?B?b2VabmNadnVWNHQzQ05tQVJaejlFakk0djN1eW0rV2Y2V1lUY2hpWmliL3NM?=
 =?utf-8?B?NERsSWs3NFJ3ZGJ2cEdadTFCTmg3NWtOejR4a1MvczIrOEY0RnpEcTVqdTZ3?=
 =?utf-8?B?bFowSUNZbGxMSHBwV2tiZSsxNG4rYWxvK2dqdSs0LzhnWUVsSmM2QWloSVdH?=
 =?utf-8?B?RlFlUk11bDBIMkxhYkI2N0hKSHRWczJZNXZFS0c3ZC9lWktmUUdHbTVNMXNF?=
 =?utf-8?B?RnR1THRPMHpFb1ErU3lFYm0rNXdJS1hPMkY0QlFOcEgyOWFVRUpPQzBtNks5?=
 =?utf-8?B?WjBCb29WRm9wYy9BWHhqUWY0MjVmZldQZFVQTDB6MXJOK3cxZVowTGk2M1U2?=
 =?utf-8?B?TVhNUHBoYjRHOGhHZmpKUDR1clEzQXJHUk5VSWk3TzZIeCtFaG1hKzNWRUtt?=
 =?utf-8?B?TSt2emluU29Ba2tpUWp6SW5lTFU0YzkvOTlhVC9WQUlxUGxIWmZTQ2czN1BM?=
 =?utf-8?B?aGFwdEFsS0gya0JJOEpFK05RckxQbDVkT05YOVVQYmZWbHI4UnVxQkJnOXl5?=
 =?utf-8?B?WVVRVEU3UDFyN0dqRmNsTnZuTjl4djV2V3Q1NDlRUHVRMHY4WGJxN296bS9v?=
 =?utf-8?B?UTI0Wk9oSmFLYVpjcWdFT0xUa3dHME1HM3Y3dUxnUWRpMDB3MDJtRUd2UWEr?=
 =?utf-8?B?QktTc0FmL1orRkZvVzZoZWNNall0ZlJZeDdhNEhIV2RUN01scjl1ZlhyUEFO?=
 =?utf-8?B?K2YxNG9KMGxiWU50d2d1SE55MnJsMEdCaFRSNzJhN0paZjVkMC9QVWNRb0tY?=
 =?utf-8?B?Z0J6QldsQWR5VlZwaGlDSjh2U0RwQWpKTDloL1FTdmJ5dTZtMEJnd2dQb0t1?=
 =?utf-8?B?dnVDbnk0QTFGaFB4ZzI1RmNVRXhIc0xPaVhQQkZGOFo0WEJ2TW5ZUnZaN250?=
 =?utf-8?B?MHErMmdXRFNxRldBME5GRnFOK29BL2VBV2Zob3RmK0tTVU40MUYvMlRYUGpk?=
 =?utf-8?B?K1N4WWpLZkJKSkgyVUFDUlNQZDM0a1ZqRmtMS2s1dzJHOWtDamlodEpyWkhD?=
 =?utf-8?B?d3ZBRExiYUpRUjN4SGdJUTZFVktNZzdZbGNGUU1FUHRrNlV1WUlyTG9JbFk1?=
 =?utf-8?B?cERHQVdidE4zcmZLcWY1b1phL1VzWXEwZFloSXUxUFhyNUVNVk4yVmhxaDd3?=
 =?utf-8?B?TkZyV0ptRWUreUQvL1NCOWgrQThZSzZBb1A4cDBmcVpGcUFMeC9vSXZTby9U?=
 =?utf-8?B?T1F1d1dIQnI2UzNqYW85QzVxN2NvamZxNE5MZ2NZT09HZzdzcmcybFl1U3JC?=
 =?utf-8?B?akFjVmdySC9laTZhVnRhY2JkbXRDTG9DTHJCRGU2bHFvUEhxbnBxTWNKQS8w?=
 =?utf-8?B?TnpTeEZlT0VwY05oYk9wQnpWZFZhc2EwSkhsRnY1Zm1TUzY0TVJoeHEwTTBW?=
 =?utf-8?B?MUR6QXBZY1FkSlViek1IRTlGY1grM0JwYTBqU0JjV1VrTVc1Y1BPTmJWaXRL?=
 =?utf-8?B?Z1hWSVJwU3BBM2xKNS83OVZhQWkvNFBNUTk4ZlM2Z1A1V0U5V0hjS25GaU52?=
 =?utf-8?B?SWxHdmd0VFBqTUxkSllvYWRranduYkpiU1c3RWVHRjl1OER5eXdCWGpsTitJ?=
 =?utf-8?B?TmRKTlViZGVkRWNsWjNsVkp1S0V1UXpzWElTdHI1TTU3L2NtY1FVZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0B0AA03D88BBBF419158D1531844AC36@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: db7a7467-df04-4809-1ae6-08d9af1731d4
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 06:54:00.4111
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GCXG+9Xf8FAg/TjWpea+Qu27+yzYgrnp/tElEKdT9Jzsp8lx72FQwjQLz58+N4KMPHQSb5kBMBch77WKNQfdszSG1810nc+JdrvJucoaSfXCkERsulm5tNvFOnpuNsu9
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB3472
X-Proofpoint-GUID: cOE44abuMQxD_FMYokOADSsk3UvD2eAM
X-Proofpoint-ORIG-GUID: cOE44abuMQxD_FMYokOADSsk3UvD2eAM
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-24_02,2021-11-23_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0
 suspectscore=0 bulkscore=0 adultscore=0 clxscore=1015 mlxscore=0
 mlxlogscore=687 spamscore=0 phishscore=0 lowpriorityscore=0
 priorityscore=1501 malwarescore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2110150000 definitions=main-2111240039

SGksIEp1bGllbiENCg0KT24gMjMuMTEuMjEgMTk6MTUsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGksDQo+DQo+IE9uIDIzLzExLzIwMjEgMTY6NDQsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdy
b3RlOg0KPj4gT24gMjMuMTEuMjEgMTg6MDUsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+PiBIaSBP
bGVrc2FuZHIsDQo+Pj4NCj4+PiBPbiAyMy8xMS8yMDIxIDA2OjMxLCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+Pj4NCj4+Pj4NCj4+Pj4gT24gMjIuMTEuMjEgMTk6MTcsIEp1bGll
biBHcmFsbCB3cm90ZToNCj4+Pj4+IEhpLA0KPj4+Pj4NCj4+Pj4+IE9uIDIyLzExLzIwMjEgMTY6
MjMsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+Pj4+IE9uIDIyLjExLjIxIDE3
OjI5LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4+Pj4+IEkgd291bGQgcHJlZmVyIHRvIGdvIHdp
dGggbXkgd2F5LiBUaGlzIGNhbiBiZSByZWZpbmVkIGluIHRoZSBmdXR1cmUgaWYgd2UgZmluZCBE
ZXZpY2UtVHJlZSB0aGF0IG1hdGNoZXMgd2hhdCB5b3Ugd3JvdGUuDQo+Pj4+Pj4gT2ssIHNvIGp1
c3QgdG8gbWFrZSBpdCBjbGVhcjoNCj4+Pj4+PiDCoMKgwqAgPmEgUENJIGRldmljZSB3b3VsZCBh
bHdheXMgYmUgZGVzY3JpYmVkIGFzIGEgY2hpbGQgb2YgdGhlIGhvc3RicmlkZ2VzLiBTbyBJIHdv
dWxkIHJld29yayB0aGUgJ2lmJyB0byBhbHNvIGNoZWNrIGlmIHRoZcKgcGFyZW50wqB0eXBlwqBp
c8Kgbm90wqAicGNpIg0KPj4+Pj4NCj4+Pj4+IFRoYXQncyBjb3JyZWN0LiBUaGFuayB5b3UhDQo+
Pj4+IE9rLCBzbyBob3cgYWJvdXQNCj4+Pj4gwqDCoCDCoMKgwqAgaWYgKCBpc19wY2lfcGFzc3Ro
cm91Z2hfZW5hYmxlZCgpICYmIGR0X2RldmljZV90eXBlX2lzX2VxdWFsKG5vZGUsICJwY2kiKSAp
DQo+Pj4+IMKgwqAgwqDCoMKgIHsNCj4+Pj4gwqDCoCDCoMKgwqDCoMKgwqDCoCBib29sIHNraXAg
PSBmYWxzZTsNCj4+Pj4NCj4+Pj4gwqDCoCDCoMKgwqDCoMKgwqDCoCAvKg0KPj4+PiDCoMKgIMKg
wqDCoMKgwqDCoMKgwqAgKiBJZiB0aGUgcGFyZW50IGlzIGFsc28gYSAicGNpIiBkZXZpY2UsIHRo
ZW4gImxpbnV4LHBjaS1kb21haW4iDQo+Pj4+IMKgwqAgwqDCoMKgwqDCoMKgwqDCoCAqIHNob3Vs
ZCBhbHJlYWR5IGJlIHRoZXJlLCBzbyBub3RoaW5nIHRvIGRvIHRoZW4uDQo+Pj4+IMKgwqAgwqDC
oMKgwqDCoMKgwqDCoCAqLw0KPj4+DQo+Pj4gVGhpcyBjb21tZW50IGlzIGEgYml0IGNvbmZ1c2lu
Zy4NCj4+IERvIHlvdSBoYXZlIHNvbWV0aGluZyBvbiB5b3VyIG1pbmQ/DQo+DQo+IFllcywgZXhw
bGFpbiB0aGF0IHdlIG9ubHkgd2FudCB0byBjb3ZlciBob3N0YnJpZGdlIChzZWUgbXkgcmVwbHkg
b24gdGhlIHByZXZpb3VzIGFuc3dlcikuDQpJIGd1ZXNzIHRoaXMgd2lsbCBiZSBleHBsYWluZWQg
YnkgdGhlIGNvbW1lbnQgdG8gaGFuZGxlX2xpbnV4X3BjaV9kb21haW4gYmVsb3cNCj4NCj4+PiBJ
IHRoaW5rIHdoYXQgbWF0dGVyIGlmIHRoZSBwYXJlbnQgaXMgYSAicGNpIiBkZXZpY2UsIHRoZW4g
dGhlIGN1cnJlbnQgbm9kZSBtdXN0IG5vdCBiZSBhIGhvc3RicmlkZ2UuIFNvIHdlIGNhbiBza2lw
IGl0Lg0KPj4gQnkgc2tpcHBpbmcgeW91IG9ubHkgbWVhbiB3ZSBkbyBub3QgbmVlZCB0byBhZGQv
YXNzaWduICJsaW51eCxwY2ktZG9tYWluIiwgcmlnaHQ/DQo+DQo+IFllcy4NCj4NCj4+PiBIb3dl
dmVyLi4uDQo+Pj4NCj4+Pj4gwqDCoCDCoMKgwqDCoMKgwqDCoCBpZiAoIG5vZGUtPnBhcmVudCAm
JiBkdF9kZXZpY2VfdHlwZV9pc19lcXVhbChub2RlLT5wYXJlbnQsICJwY2kiKSApDQo+Pj4+IMKg
wqAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBza2lwID0gdHJ1ZTsNCj4+Pj4NCj4+Pj4gwqDCoCDC
oMKgwqDCoMKgwqDCoCBpZiAoICFza2lwICYmICFkdF9maW5kX3Byb3BlcnR5KG5vZGUsICJsaW51
eCxwY2ktZG9tYWluIiwgTlVMTCkgKQ0KPj4+PiDCoMKgIMKgwqDCoMKgwqDCoMKgIHsNCj4+Pj4g
SSBwbGF5ZWQgd2l0aCBhIHNpbmdsZSBpZiBhbmQgaXQgbG9va3Mgc2NhcnkuLi4NCj4+Pg0KPj4+
IC4uLiBob3cgYWJvdXQgaW50cm9kdWNpbmcgYW4gaGVscGVyIHRoYXQgd2lsbCByZXR1cm4gdHJ1
ZSBpZiB0aGlzIG5vZGUgaXMgbGlrZWx5IGFuIGhvc3RicmlkZ2U/DQo+PiBUaGlzIGlzIHlldCBh
IHNpbmdsZSB1c2Ugb2Ygc3VjaCBhIGNoZWNrOiB3aHkgd291bGQgd2UgbmVlZCBhIGhlbHBlciBh
bmQgd2hhdCB3b3VsZCB0aGF0DQo+PiBoZWxwZXIgZG8/DQo+DQo+IEkgbGlrZSBzcGxpdHRpbmcg
Y29kZSBpbiBtdWx0aXBsZSBmdW5jdGlvbnMgZXZlbiBpZiB0aGV5IGFyZSBvbmx5IGNhbGxlZCBv
bmNlIGJlY2F1c2UgdGhpczoNCj4gwqAgMSkga2VlcHMgdGhlIGZ1bmN0aW9ucyBsaW5lIGNvdW50
IHNtYWxsDQo+IMKgIDIpIGVhc2llciB0byB1bmRlcnN0YW5kIHdoYXQgaXMgdGhlIHB1cnBvc2Ug
b2YgdGhlIGNoZWNrDQo+DQo+IEluIGZhY3QsIEkgd291bGQgYWN0dWFsbHkgbW92ZSB0aGUgaGFu
ZGxpbmcgZm9yICJsaW51eCxwY2ktZG9tYWluIiBpbiBhIHNlcGFyYXRlIGhlbHBlci4gU29tZXRo
aW5nIGxpa2U6DQo+DQo+IC8qDQo+IMKgKiBXaGVuIFBDSSBwYXNzdGhyb3VnaCBpcyBhdmFpbGFi
bGUgd2Ugd2FudCB0byBrZWVwIHRoZQ0KPiDCoCogImxpbnV4LHBjaS1kb21haW4iIGluIHN5bmMg
Zm9yIGV2ZXJ5IGhvc3RicmlkZ2UuDQo+IMKgKg0KPiDCoCogWGVuIG1heSBub3QgaGF2ZSBhIGRy
aXZlciBmb3IgYWxsIHRoZSBob3N0YnJpZGdlcy4gU28gd2UgaGF2ZQ0KPiDCoCogdG8gd3JpdGUg
YW4gaGV1cmlzdGljIHRvIGRldGVjdCB3aGV0aGVyIGEgZGV2aWNlIG5vZGUgZGVzY3JpYmVzDQo+
IMKgKiBhbiBob3N0YnJpZGdlLg0KPiDCoCoNCj4gwqAqIFRoZSBjdXJyZW50IGhldXJpc3RpYyBh
c3N1bWVzIHRoYXQgYSBkZXZpY2UgaXMgYW4gaG9zdGJyaWRnZQ0KPiDCoCogaWYgdGhlIHR5cGUg
aXMgInBjaSIgYW5kIHRoZW4gcGFyZW50IHR5cGUgaXMgbm90ICJwY2kiLg0KPiDCoCovDQo+IHN0
YXRpYyBpbnQgaGFuZGxlX2xpbnV4X3BjaV9kb21haW4oc3RydWN0IGR0X2RldmljZSAqbm9kZSkN
Cj4gew0KPiDCoMKgwqDCoMKgwqDCoCBpZiAoICFpc19wY2lfcGFzc3Rocm91Z2hfZW5hYmxlZCgp
ICkNCj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAwOw0KPg0KPiDCoMKgwqDCoGlmICggIWR0
X2RldmljZV90eXBlX2lzX2VxdWFsKG5vZGUsICJwY2kiKSApDQo+IMKgwqDCoMKgwqDCoMKgwqDC
oCByZXR1cm4gMDsNCj4NCj4gwqDCoMKgwqDCoMKgwqAgaWYgKCBub2RlLT5wYXJlbnQgJiYgZHRf
ZGV2aWNlX3R5cGVfaXNfZXF1YWwobm9kZS0+cGFyZW50KSApDQo+IMKgwqDCoMKgwqDCoMKgwqDC
oCByZXR1cm4gMDsNCj4NCj4gwqDCoMKgwqDCoMKgwqAgaWYgKCBkdF9maW5kX3Byb3BlcnR5KG5v
ZGUsICJsaW51eCxwY2ktZG9tYWluIiwgTlVMTCApDQo+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1
cm4gMDsNCj4NCj4gwqDCoMKgwqDCoMKgwqAgLyogQWxsb2NhdGUgYW5kIGNyZWF0ZSB0aGUgbGlu
dXgscGNpLWRvbWFpbiAqLw0KPiB9DQo+DQpJJ20gZmluZSB3aXRoIHRoaXMsIHdpbGwgbW92ZSwg
dGhhbmtzDQo+IENoZWVycywNCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:01:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:01:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230079.397795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmH8-0005cI-P0; Wed, 24 Nov 2021 07:01:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230079.397795; Wed, 24 Nov 2021 07:01:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmH8-0005cB-L9; Wed, 24 Nov 2021 07:01:02 +0000
Received: by outflank-mailman (input) for mailman id 230079;
 Wed, 24 Nov 2021 07:01:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=iQO5=QL=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mpmH6-0005YU-VC
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:01:01 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 45f40cf3-4cf4-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:00:58 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id C9F842195D;
 Wed, 24 Nov 2021 07:00:56 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 953EF13240;
 Wed, 24 Nov 2021 07:00:56 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id QinaIijjnWHdCAAAMHmgww
 (envelope-from <jgross@suse.com>); Wed, 24 Nov 2021 07:00:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45f40cf3-4cf4-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637737256; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=CwiRND9sUmIgpLpyZ+X1paDgsGd1UAbnBN7Tro+bIjg=;
	b=adVOxqqoivBQ6u91xCkV/oqFHK21Lg3Qmyyy7ggvyQOW23BYT7RNib0l4zmVNZnQCt7aiY
	K6kTKJOuADUvQi0RT/ovQih1O4IcRc1rs83eoOAFST3pjjxjoMAcLUA3vnxagT6YWhXC1X
	QhD+CbdQ+3IjxzqTU8hMDLTIq1WhkkM=
Subject: Re: [PATCH v4] xenbus: support large messages
To: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org, wl@xen.org
References: <20211004094000.29868-1-jgross@suse.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <244e6bc7-9158-7c52-13ab-d25daafbc2c8@suse.com>
Date: Wed, 24 Nov 2021 08:00:55 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211004094000.29868-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="Y181P6BFv7tgthqU2tAOS3T9XmO1q283n"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--Y181P6BFv7tgthqU2tAOS3T9XmO1q283n
Content-Type: multipart/mixed; boundary="dJ65ISaETfggy1VefxjzJAcoxxz0j18yK";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org, wl@xen.org
Message-ID: <244e6bc7-9158-7c52-13ab-d25daafbc2c8@suse.com>
Subject: Re: [PATCH v4] xenbus: support large messages
References: <20211004094000.29868-1-jgross@suse.com>
In-Reply-To: <20211004094000.29868-1-jgross@suse.com>

--dJ65ISaETfggy1VefxjzJAcoxxz0j18yK
Content-Type: multipart/mixed;
 boundary="------------6E2ADA8ABB96A4523042F315"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------6E2ADA8ABB96A4523042F315
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Ping?

On 04.10.21 11:40, Juergen Gross wrote:
> Today the implementation of the xenbus protocol in Mini-OS will only
> allow to transfer the complete message to or from the ring page buffer.=

> This is limiting the maximum message size to lower values as the xenbus=

> protocol normally would allow.
>=20
> Change that by allowing to transfer the xenbus message in chunks as
> soon as they are available.
>=20
> Avoid crashing Mini-OS in case of illegal data read from the ring
> buffer.
>=20
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - drop redundant if (Samuel Thibault)
> - move rmb() (Samuel Thibault)
> V3:
> - correct notification test (Samuel Thibault)
> V4:
> - more memory barriers (Samuel Thibault)
> ---
>   xenbus/xenbus.c | 210 ++++++++++++++++++++++++++++-------------------=
-
>   1 file changed, 122 insertions(+), 88 deletions(-)
>=20
> diff --git a/xenbus/xenbus.c b/xenbus/xenbus.c
> index 23de61e..b687678 100644
> --- a/xenbus/xenbus.c
> +++ b/xenbus/xenbus.c
> @@ -29,6 +29,7 @@
>   #include <xen/hvm/params.h>
>   #include <mini-os/spinlock.h>
>   #include <mini-os/xmalloc.h>
> +#include <mini-os/semaphore.h>
>  =20
>   #define min(x,y) ({                       \
>           typeof(x) tmpx =3D (x);                 \
> @@ -46,6 +47,7 @@
>   static struct xenstore_domain_interface *xenstore_buf;
>   static DECLARE_WAIT_QUEUE_HEAD(xb_waitq);
>   DECLARE_WAIT_QUEUE_HEAD(xenbus_watch_queue);
> +static __DECLARE_SEMAPHORE_GENERIC(xb_write_sem, 1);
>  =20
>   xenbus_event_queue xenbus_events;
>   static struct watch {
> @@ -231,75 +233,103 @@ char *xenbus_wait_for_state_change(const char* p=
ath, XenbusState *state, xenbus_
>   }
>  =20
>  =20
> +static void xenbus_read_data(char *buf, unsigned int len)
> +{
> +    unsigned int off =3D 0;
> +    unsigned int prod, cons;
> +    unsigned int size;
> +
> +    while (off !=3D len)
> +    {
> +        wait_event(xb_waitq, xenstore_buf->rsp_prod !=3D xenstore_buf-=
>rsp_cons);
> +
> +        prod =3D xenstore_buf->rsp_prod;
> +        cons =3D xenstore_buf->rsp_cons;
> +        DEBUG("Rsp_cons %d, rsp_prod %d.\n", cons, prod);
> +        size =3D min(len - off, prod - cons);
> +
> +        rmb();   /* Make sure data read from ring is ordered with rsp_=
prod. */
> +        memcpy_from_ring(xenstore_buf->rsp, buf + off,
> +                         MASK_XENSTORE_IDX(cons), size);
> +        off +=3D size;
> +        mb();    /* memcpy() and rsp_cons update must not be reordered=
=2E */
> +        xenstore_buf->rsp_cons +=3D size;
> +        mb();    /* rsp_cons must be visible before we look at rsp_pro=
d. */
> +        if (xenstore_buf->rsp_prod - cons >=3D XENSTORE_RING_SIZE)
> +            notify_remote_via_evtchn(xenbus_evtchn);
> +    }
> +}
> +
>   static void xenbus_thread_func(void *ign)
>   {
>       struct xsd_sockmsg msg;
> -    unsigned prod =3D xenstore_buf->rsp_prod;
> +    char *data;
>  =20
>       for (;;) {
> -        wait_event(xb_waitq, prod !=3D xenstore_buf->rsp_prod);
> -        while (1) {
> -            prod =3D xenstore_buf->rsp_prod;
> -            DEBUG("Rsp_cons %d, rsp_prod %d.\n", xenstore_buf->rsp_con=
s,
> -                  xenstore_buf->rsp_prod);
> -            if (xenstore_buf->rsp_prod - xenstore_buf->rsp_cons < size=
of(msg))
> -                break;
> -            rmb();
> -            memcpy_from_ring(xenstore_buf->rsp, &msg,
> -                             MASK_XENSTORE_IDX(xenstore_buf->rsp_cons)=
,
> -                             sizeof(msg));
> -            DEBUG("Msg len %d, %d avail, id %d.\n", msg.len + sizeof(m=
sg),
> -                  xenstore_buf->rsp_prod - xenstore_buf->rsp_cons, msg=
=2Ereq_id);
> -
> -            if (xenstore_buf->rsp_prod - xenstore_buf->rsp_cons <
> -                sizeof(msg) + msg.len)
> -                break;
> -
> -            DEBUG("Message is good.\n");
> -
> -            if (msg.type =3D=3D XS_WATCH_EVENT) {
> -                struct xenbus_event *event =3D malloc(sizeof(*event) +=
 msg.len);
> -                xenbus_event_queue *events =3D NULL;
> -                char *data =3D (char*)event + sizeof(*event);
> -                struct watch *watch;
> -
> -                memcpy_from_ring(xenstore_buf->rsp, data,
> -                    MASK_XENSTORE_IDX(xenstore_buf->rsp_cons + sizeof(=
msg)),
> -                    msg.len);
> -
> -                event->path =3D data;
> -                event->token =3D event->path + strlen(event->path) + 1=
;
> -
> -                mb();
> -                xenstore_buf->rsp_cons +=3D msg.len + sizeof(msg);
> -
> -                for (watch =3D watches; watch; watch =3D watch->next)
> -                    if (!strcmp(watch->token, event->token)) {
> -                        events =3D watch->events;
> -                        break;
> -                    }
> -
> -                if (events) {
> -                    event->next =3D *events;
> -                    *events =3D event;
> -                    wake_up(&xenbus_watch_queue);
> -                } else {
> -                    printk("unexpected watch token %s\n", event->token=
);
> -                    free(event);
> +        xenbus_read_data((char *)&msg, sizeof(msg));
> +        DEBUG("Msg len %d, %d avail, id %d.\n", msg.len + sizeof(msg),=

> +              xenstore_buf->rsp_prod - xenstore_buf->rsp_cons, msg.req=
_id);
> +
> +        if (msg.len > XENSTORE_PAYLOAD_MAX) {
> +            printk("Xenstore violates protocol, message longer than al=
lowed.\n");
> +            return;
> +        }
> +
> +        if (msg.type =3D=3D XS_WATCH_EVENT) {
> +            struct xenbus_event *event =3D malloc(sizeof(*event) + msg=
=2Elen);
> +            xenbus_event_queue *events =3D NULL;
> +            struct watch *watch;
> +            char *c;
> +            int zeroes =3D 0;
> +
> +            data =3D (char*)event + sizeof(*event);
> +            xenbus_read_data(data, msg.len);
> +
> +            for (c =3D data; c < data + msg.len; c++)
> +                if (!*c)
> +                    zeroes++;
> +            if (zeroes !=3D 2) {
> +                printk("Xenstore: illegal watch event data\n");
> +                free(event);
> +                continue;
> +            }
> +
> +            event->path =3D data;
> +            event->token =3D event->path + strlen(event->path) + 1;
> +
> +            for (watch =3D watches; watch; watch =3D watch->next)
> +                if (!strcmp(watch->token, event->token)) {
> +                    events =3D watch->events;
> +                    break;
>                   }
> +
> +            if (events) {
> +                event->next =3D *events;
> +                *events =3D event;
> +                wake_up(&xenbus_watch_queue);
>               } else {
> -                req_info[msg.req_id].reply =3D malloc(sizeof(msg) + ms=
g.len);
> -                memcpy_from_ring(xenstore_buf->rsp, req_info[msg.req_i=
d].reply,
> -                                 MASK_XENSTORE_IDX(xenstore_buf->rsp_c=
ons),
> -                                 msg.len + sizeof(msg));
> -                mb();
> -                xenstore_buf->rsp_cons +=3D msg.len + sizeof(msg);
> -                wake_up(&req_info[msg.req_id].waitq);
> +                printk("Xenstore: unexpected watch token %s\n", event-=
>token);
> +                free(event);
>               }
>  =20
> -            wmb();
> -            notify_remote_via_evtchn(xenbus_evtchn);
> +            continue;
>           }
> +
> +        data =3D malloc(sizeof(msg) + msg.len);
> +        memcpy(data, &msg, sizeof(msg));
> +        xenbus_read_data(data + sizeof(msg), msg.len);
> +
> +        if (msg.req_id >=3D NR_REQS || !req_info[msg.req_id].in_use) {=

> +            printk("Xenstore: illegal request id %d\n", msg.req_id);
> +            free(data);
> +            continue;
> +        }
> +
> +        DEBUG("Message is good.\n");
> +
> +        req_info[msg.req_id].reply =3D data;
> +
> +        wake_up(&req_info[msg.req_id].waitq);
>       }
>   }
>  =20
> @@ -451,36 +481,40 @@ static void xb_write(int type, int req_id, xenbus=
_transaction_t trans_id,
>  =20
>       cur_req =3D &header_req;
>  =20
> -    BUG_ON(len > XENSTORE_RING_SIZE);
> -    /* Wait for the ring to drain to the point where we can send the
> -       message. */
> -    prod =3D xenstore_buf->req_prod;
> -    if (prod + len - xenstore_buf->req_cons > XENSTORE_RING_SIZE)
> -    {
> -        /* Wait for there to be space on the ring */
> -        DEBUG("prod %d, len %d, cons %d, size %d; waiting.\n",
> -                prod, len, xenstore_buf->req_cons, XENSTORE_RING_SIZE)=
;
> -        wait_event(xb_waitq,
> -                xenstore_buf->req_prod + len - xenstore_buf->req_cons =
<=3D
> -                XENSTORE_RING_SIZE);
> -        DEBUG("Back from wait.\n");
> -        prod =3D xenstore_buf->req_prod;
> -    }
> +    BUG_ON(len > XENSTORE_PAYLOAD_MAX);
> +
> +    /* Make sure we are the only thread trying to write. */
> +    down(&xb_write_sem);
>  =20
> -    /* We're now guaranteed to be able to send the message without
> -       overflowing the ring.  Do so. */
> +    /* Send the message in chunks using free ring space when available=
=2E */
>       total_off =3D 0;
>       req_off =3D 0;
> -    while (total_off < len)
> +    while (total_off < len)
>       {
> +        prod =3D xenstore_buf->req_prod;
> +        if (prod - xenstore_buf->req_cons >=3D XENSTORE_RING_SIZE)
> +        {
> +            /* Send evtchn to notify remote */
> +            notify_remote_via_evtchn(xenbus_evtchn);
> +
> +            /* Wait for there to be space on the ring */
> +            DEBUG("prod %d, len %d, cons %d, size %d; waiting.\n", pro=
d,
> +                  len - total_off, xenstore_buf->req_cons, XENSTORE_RI=
NG_SIZE);
> +            wait_event(xb_waitq,
> +                       prod - xenstore_buf->req_cons < XENSTORE_RING_S=
IZE);
> +            DEBUG("Back from wait.\n");
> +        }
> +
>           this_chunk =3D min(cur_req->len - req_off,
> -                XENSTORE_RING_SIZE - MASK_XENSTORE_IDX(prod));
> +                         XENSTORE_RING_SIZE - MASK_XENSTORE_IDX(prod))=
;
> +        this_chunk =3D min(this_chunk,
> +                         xenstore_buf->req_cons + XENSTORE_RING_SIZE -=
 prod);
>           memcpy((char *)xenstore_buf->req + MASK_XENSTORE_IDX(prod),
> -                (char *)cur_req->data + req_off, this_chunk);
> +               (char *)cur_req->data + req_off, this_chunk);
>           prod +=3D this_chunk;
>           req_off +=3D this_chunk;
>           total_off +=3D this_chunk;
> -        if (req_off =3D=3D cur_req->len)
> +        if (req_off =3D=3D cur_req->len)
>           {
>               req_off =3D 0;
>               if (cur_req =3D=3D &header_req)
> @@ -488,20 +522,20 @@ static void xb_write(int type, int req_id, xenbus=
_transaction_t trans_id,
>               else
>                   cur_req++;
>           }
> +
> +        /* Remote must see entire message before updating indexes */
> +        wmb();
> +        xenstore_buf->req_prod =3D prod;
>       }
>  =20
> +    /* Send evtchn to notify remote */
> +    notify_remote_via_evtchn(xenbus_evtchn);
> +
>       DEBUG("Complete main loop of xb_write.\n");
>       BUG_ON(req_off !=3D 0);
>       BUG_ON(total_off !=3D len);
> -    BUG_ON(prod > xenstore_buf->req_cons + XENSTORE_RING_SIZE);
>  =20
> -    /* Remote must see entire message before updating indexes */
> -    wmb();
> -
> -    xenstore_buf->req_prod +=3D len;
> -
> -    /* Send evtchn to notify remote */
> -    notify_remote_via_evtchn(xenbus_evtchn);
> +    up(&xb_write_sem);
>   }
>  =20
>   /* Send a mesasge to xenbus, in the same fashion as xb_write, and
>=20


--------------6E2ADA8ABB96A4523042F315
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------6E2ADA8ABB96A4523042F315--

--dJ65ISaETfggy1VefxjzJAcoxxz0j18yK--

--Y181P6BFv7tgthqU2tAOS3T9XmO1q283n
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGd4ycFAwAAAAAACgkQsN6d1ii/Ey8r
/gf/d+UjYEoQh9p/TToGUFUQ3mxUMT+FCS89F5+2W0aHiHQ1E/8xi6N8caTBtw79TUSJdxcibWYb
joLIAK9li+92dkgUunJ0cxu/v+x2BNEDAIq/65wPUotunS/8f+ketntkc7W+OS/DMW7p4jB2XHEe
jwBMVTD69oT33eRpbLa18Vbc2M0s/jxk/iVbzuvp4GvKHqR2O4XeP0S5hSjwUxCn2+1sJAWfqxz5
j7166+x3oHaSVmP03gsZ8IM1Fw7+gbsw3HSci3b5O7BruJfcTxmT2ybRiVhtkdLuBr7Y1BclJGLw
BLpugvf7IZ255XdD6pg91vvxcoi5pEEDRtvGL4fbxA==
=8G1s
-----END PGP SIGNATURE-----

--Y181P6BFv7tgthqU2tAOS3T9XmO1q283n--


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:22:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:22:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230099.397805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmbE-00085u-LH; Wed, 24 Nov 2021 07:21:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230099.397805; Wed, 24 Nov 2021 07:21:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmbE-00085n-Hi; Wed, 24 Nov 2021 07:21:48 +0000
Received: by outflank-mailman (input) for mailman id 230099;
 Wed, 24 Nov 2021 07:21:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mG44=QL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpmbD-00085h-He
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:21:47 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e2de90d-4cf7-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:21:46 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2056.outbound.protection.outlook.com [104.47.13.56]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-31-uHtkhGcyMLuKadbw4kZIHw-1; Wed, 24 Nov 2021 08:21:44 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5470.eurprd04.prod.outlook.com (2603:10a6:803:d6::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 07:21:41 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 07:21:41 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0008.eurprd04.prod.outlook.com (2603:10a6:20b:92::21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Wed, 24 Nov 2021 07:21:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e2de90d-4cf7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637738505;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yFqVnAENQDllBUSyGSfZlLcMsiVQyNCRqsfLcJZhe/w=;
	b=OVD4P9Kb+70hHiVCyor6mL3k8H+eIBIkjvWJYnyGrsG8L2NPcJobtrviZfZQO+Yrds90Rx
	v6QRZD8V6tPYbVxR7hG9iubn2Wo8HqtgwTOlg5A9ZK27kdQYuc03lTR0y3hvwbc2M3Kic9
	cxWKTqM/v4Z+Cc7nQSIBqq1GvmfWxeY=
X-MC-Unique: uHtkhGcyMLuKadbw4kZIHw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Oq3ZVjOOrNbsNTWcnzx8mPoIK8XCiPpOxzkrRM+u6ODQpIzTsQinl/HEacFBdKarChSOd6PmzgDqAgh4odrD6BA+CzsSYB0+MFu6aoJG8i9DX6H9Q8yydeSt3OTCdLmcPYbhUhXTDz4+Qaif2MLe8cPYpTyZ3JLJV6e821SP16HXfVyTbVQGw1ndPY8tLmZ28p6JjnrWcC3LZN+XYAweMCATACe/TzfmjFx7/bf3Di50fHao4G2J++2t/wIHIgf2Ka5+V+QT8LfS6E6WRdQKMb1+ju1jhAb1dyqQUEA5umzLQInZ07vGUimpmlN0xICbhqg58tdP+xUphIFK69eXew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yFqVnAENQDllBUSyGSfZlLcMsiVQyNCRqsfLcJZhe/w=;
 b=b2/f7bWq9KduJF4WPO1j5Ph657Mp5E24IXJKmoDGq9TfsqiX6uWRTjSPOVHjCAZJwO6+btjlvrdriT0HqbPh1rDa74IQZ92Wb+E80l7GEIvBQ6tGdhQibPnpACMm5+1GnHtzq43l0o7yXyFjwCSxQDwGMT/Mb9RSwfEg9tx6STRQFDp2906nPo6v9lgMbm0Lzi/XAaYD7B4FPKG68XailSW/f3YTiTMoJtlYzFLVt2EWMXNYk2pxQBuEWPqma4yYgdKVP8lYgieouJkKqL/6apUstFD5aT0Es6d3nwAnrA8cTNtsQDspBM2neMrVi70NFb6OnWTDQrvxTYcv8BMSXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <984703cb-37f1-c418-679d-d4cb6cc01ed5@suse.com>
Date: Wed, 24 Nov 2021 08:21:40 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/3] VT-d: prune SAGAW recognition
Content-Language: en-US
To: "Tian, Kevin" <kevin.tian@intel.com>
References: <54e38a20-5281-2ab3-8513-3506ab66dbe8@suse.com>
 <4e801190-ad7e-32da-da87-985e1b6a76bd@suse.com>
 <BL1PR11MB5429877092DD0AF8A8C478DF8C619@BL1PR11MB5429.namprd11.prod.outlook.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <BL1PR11MB5429877092DD0AF8A8C478DF8C619@BL1PR11MB5429.namprd11.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR04CA0008.eurprd04.prod.outlook.com
 (2603:10a6:20b:92::21) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5ec0fa5a-eb34-4aa0-8c12-08d9af1b0fd5
X-MS-TrafficTypeDiagnostic: VI1PR04MB5470:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB54706DDE8A30758822AB80FAB3619@VI1PR04MB5470.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	TLnruiRUZtGBJQzR4Vo9+tOmpFkh5jrUAEcCnDpDrYFq3gTu/yqibAJ7vsIpMuDZuj2gtzBvCdPTz33Ctx9K2fIH5mI09vqJ/32uXZfFZDG3h0bCBJGFopQS/WYdeGadW8zRPq5qbIYk8+9auvTI7bAVFmRBw4YmUv0YviEEbSmt9VF+n8T9+6xMDYIfbY24pO6ivuUuSsHKbLnkJembXlF7M5Wu/BxjVlfIuBJ38ubXOai1jppHoswwixvfXDs4JMJVNDa+IkDzEGQ57lBtuY19AGXOggG3jAJseuS+R0T7FH4jNMVShebeCCv9itlF5dI6SoivFn2USJ7OkCl/TnmV783YvCTgFfpsKh3uQ+zVB8EyJvR1m2V/SG+7QolqYmu1fKc0hv1kYpzfUGRPX4X1kWeic94VvmgxRVFhPXLtevj4IUuTEoq3H9g2LgoCk7cEvdfrrViLhuHM/0HIzymgl8jH+c4g1TS+hAgAWJB7dCSr+DqGV1d27uoRdr9M6sgPaOnDKjYKdsZNXjCQaHlR5KumwPDUyf5Y5ceStaR72yZnjJkZYPRkucbl8LwVEcE7a3k1ZFprGhWRbvscFKrTbqjEjCq9EuZ+ZfEWgsxbt1Lemo+8+FRo0qGp2in/vAMez+CrblQU6nu0mw8sOkiZhacoZ/GplU8cqFTetW8Sbxh26fx/sLH0u4JCH9TFg/XnskyD5k6tJfqw8svHrrhebcaaP+2MIfrYWIEzKfE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(508600001)(4326008)(956004)(53546011)(186003)(316002)(38100700002)(16576012)(26005)(8676002)(31686004)(36756003)(5660300002)(66476007)(66946007)(6486002)(66556008)(2906002)(31696002)(6916009)(86362001)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OCtZRSs4Y3o1N3RxMlliM1dYUzJRSVBsazh5U0ZGUjFpbEVHRXY1alJRYkJ6?=
 =?utf-8?B?RE9ZWXpYRWs3NFpCa2JadlZCQlU2ZVZTRlJPUUg1YVM5QlhzcmlvNW9kTGh5?=
 =?utf-8?B?eUgzTzg1cnJWREZOYXZaM2dvTlB6bjFSc0JCY1dxVzFjS3R1UzZPSmVOS2p2?=
 =?utf-8?B?eC8ranVNd1g2V0JlaWllQURaUWJ4anY1UnBJSlZQTlRPcUF0cmhvMTVWenZI?=
 =?utf-8?B?ajBJMlU0c2RESytTN1Y5R0lsWlZ6ZEFwSVZuazR0U3RQUGFGOGJ5a0dIRFBV?=
 =?utf-8?B?TlVxSThNdFY5YnRObm5nbTI3NjBLU1Byek5mY1JPYzJ5dHIvMGNtUkRUNVdD?=
 =?utf-8?B?ejU2RVlPMUxuY21yK1BSbi81dU5OOEo3dHZ3WFRvaGc3V2VQaXo1YjhDNjdn?=
 =?utf-8?B?LzQyTEZLZU85MEZWTUhjMEhHNUVNWUJxS0ZZVUYrdzhiQ09FeDRIalZ1aTUw?=
 =?utf-8?B?bXlYSzRWZWYwNldZUmpKWmRWazMrNHBHa3c5SFVvdDIyWWo3ZWRMU0xZa2ZX?=
 =?utf-8?B?eWNVQW5zS2MrVnc1b2EvbGxqWEVPQjQ5VS8rYmR5VXhqK0hqS2xJWmdNL2JB?=
 =?utf-8?B?SWlFWFAxS1k1VWV4SGYwK2l5eC9GaktFU0ZNNGtHUUZud2Q1VjhPYWoreUpX?=
 =?utf-8?B?cTJPOGJNamNlaE1WSXBYazI4RFZHck5JUEsvc09ldVA1eEcyb2ZWbE5FYnFn?=
 =?utf-8?B?bXhVOFozdDNtbXczd1pybkFKMjk3NEZCUTZ0Z1drS1RhcHJzT0xSVUhPUk1q?=
 =?utf-8?B?UHIrMmdVUkdqSWVCQTdiL0RGZTk2eGZuQ0w1VzUvRW5KZ3BRTENJM1Y2MnUv?=
 =?utf-8?B?TXZZZjRYYS9oR2wwWi9XSGdjck52aUY4YUpITlA1VldoazdQYkhnWTBaOXp2?=
 =?utf-8?B?aTU1R1ZUa3F4cU1MTFdXSUlKNVZsWmg3c3BQdUEzWHlReVdkdjlpVEVQWGVX?=
 =?utf-8?B?djFVd2VNZCtlOHZWUE1naVRhdWlwQzdVNktpU2hpQ24vNndCV2poNTM5VjRN?=
 =?utf-8?B?WldGbEtIdmFleDMwOHdveUlRSWhiWDBoSC9zTThGMHZILzA1TE1rQU9iZncx?=
 =?utf-8?B?NFN5MVBoOVAwZFN4Z1hkZFpJVmlicDF0TWdoWWdCSEM2OThMSXR1RFpKakFV?=
 =?utf-8?B?QUV3dFlQRk9paU91M2pKVGlJellGVEQyTTBEV3pUYk8xQVlBODc0d3FHbjNM?=
 =?utf-8?B?c3MyejJWVFBaaHRPNGkrejNNNFN0ODA0cmZmWmJzMUJwaWtqV0ErTFV2U1Ur?=
 =?utf-8?B?dUN0VDh6V2E4dmxGMlYvSkM0bjR0UDFkRC9CS3I3NnZ1NlRlandTemZwbFdt?=
 =?utf-8?B?V2kvcVlJcTVkZndNcXlNb0xyOFZoZ2R2VEd4dTRMbnk0WStUajZYV2l1U3gw?=
 =?utf-8?B?STFETnVtcFBjZGtJYU9PZExzUGwxdndWem1kR1BQUnlRVCtIR1E4MEJITXJw?=
 =?utf-8?B?SUpFYldhYkhmdnViMmJiMUJhQzZkaFhFZE1QRnFnK3pGQkZaN3dJZnMwZmpH?=
 =?utf-8?B?VkhCK0VXL0hmdmlMajF6VThUcFhZcmpkUGtPQ3R6dENkYW1MQWxTWHo1cWJ5?=
 =?utf-8?B?TGlZTk0xU2kyMUE0Z0dPSm8vVHlydnYxblZGR1huYlBYNXJCM2owbjZEY01Q?=
 =?utf-8?B?eEFXUXdPUEtyRE1IUmZPb2hnYUlqSmNyNDJ1T3k4TTJuMHAvWWhERmprU0lu?=
 =?utf-8?B?b2xieDA0eGpoemR5VUdVSVorcTR2V21JMFFFMXpCMUlzTk1ueUhPK0F4VDE5?=
 =?utf-8?B?TnhHYnhzM1N2a2xua095OVFBT3JKZldkSGJTV1A5d1BzN2wzcVFmQlNvODlB?=
 =?utf-8?B?cG05NTBjbG1qU2kwbk40L0hHNXJhVWhNY3dHd3VpcWlKbCszY2dYTDF6cGp6?=
 =?utf-8?B?ZlVnTHprMUQ5eUJRa1pJU0lvSm1GdzhzSUExc0xwZm5RVHh0NXA1Yy9QU0Jl?=
 =?utf-8?B?TmhpY292VnhLU0hDcjRvczE0eXBXb0FqclRzRmhiOXdROTBwSk83TENFU1dG?=
 =?utf-8?B?Y2UxbldjUC9BcmhGQUZyS3REWXBhN3FnYndsMHFRZk9yQVZVR05mWjAzWlZT?=
 =?utf-8?B?ZVV0NU1SNWh4Sk5sakpKeTRuV1RCdmNnazdpdVo2V2s4UURCaUdPaFZyUlZE?=
 =?utf-8?B?Q3EyU05hRDZscVB4WDczTUVBZXk1eFdJbHdTWEs3dkdtTTRzZTVLbklqa09i?=
 =?utf-8?Q?G4CaBMWK5zPE/L+kHTRbGjg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ec0fa5a-eb34-4aa0-8c12-08d9af1b0fd5
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 07:21:41.5856
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: h/EUTR8D5mzs50Zz8ms2W/KK95CttWLI9pCpTpK0YhkQ/dTAOiP48gn5lOjzuy23o7Ofckjy+N0bFD5JkcTzAQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5470

On 24.11.2021 02:22, Tian, Kevin wrote:
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Tuesday, November 23, 2021 9:40 PM
>>
>> Bit 0 of the capability register field has become reserved at or before
> 
> Bit 0 of 'SAGAW' in the capability register ...

I've changed it, but I thought the use of "field" in the sentence
together with the title would be entirely unambiguous.

>> spec version 2.2. Treat it as such. Replace the effective open-coding of
>> find_first_set_bit(). Adjust local variable types.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Strictly speaking IOMMUs supporting only 3-level tables ought to result
>> in guests seeing a suitably reduced physical address width in CPUID.
>> And then the same would apply to restrictions resulting from MGAW.
> 
> Yes. I remember there was some old discussion in Qemu community
> for whether guest physical addr width should be based on IOMMU
> constraints when passthrough device is used. But it didn't go anywhere
> (and I cannot find the link...)

I've added an item to my todo list.

> anyway with above comment fixed:
> 
> 	Reviewed-by: Kevin Tian <kevin.tian@intel.com>

Thanks.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:22:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:22:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230103.397816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmbw-0000Bp-Tu; Wed, 24 Nov 2021 07:22:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230103.397816; Wed, 24 Nov 2021 07:22:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmbw-0000Bi-Qe; Wed, 24 Nov 2021 07:22:32 +0000
Received: by outflank-mailman (input) for mailman id 230103;
 Wed, 24 Nov 2021 07:22:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gGpx=QL=epam.com=prvs=1962e93d75=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpmbv-0000AT-Ih
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:22:31 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48297d5a-4cf7-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:22:30 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AO78qlm004720;
 Wed, 24 Nov 2021 07:22:28 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2108.outbound.protection.outlook.com [104.47.18.108])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cheu6gddv-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 24 Nov 2021 07:22:27 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB3874.eurprd03.prod.outlook.com (2603:10a6:208:6c::25)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 07:22:21 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 07:22:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48297d5a-4cf7-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TnLLMhw8c4vPilnR03ui3OgqAWc3T76f2E47q2gteuNroL6DW7wlFRQNnMwgGj8MJXLvOVA2lNZei9PhPh5LDloRk2a73wVZ4gQVSiJH5M3gGkyMPXB2yBNU8Gn65xtx7Mkoso3w6Hn26UmHOdoCHgh6jgRqNwghB+k1yzT8a7l/u1Azsn/pwrbq14wVEL/pO611rerf+2iwIgtEyZQJLaDEZ35ivXZh+iuvcbPzTqPghBdEgG/VGIfHb2VjbVILfMoHhHKbUOJdjDjSibyRX7lDWBCqeod/PFVKUze6SMKr+4LIsHZuom3mAAK5h6MI34E2lR67jHVDPjhN6SZdxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=asvoNZzxpeUVpG979IR6hLaidMY/KzWCfMLeXntLDM4=;
 b=nzkwTuwP7iK5SbSA+7kkmVVD3xEH/O7rGEm6P9xc5+bZdnBh9UmnDMAhRfq1tL6Bef7k91i1zmC3Q5mKdIrSxjhp+5mjuSbbeIjOA4P+0D8bZw7EqxhtrcxFrTgfHZiRpMCy36mHLFTb0WfDfap+6HyZml0mUTYMxGut4R2kEx0fKv7v1FV5MrWVKwbSaJCqLgR+FSK/9aRuYTk+WhPNSMUoLUU0S9X5WKU4h1CBZYLIa1NCxYIXmAI4/kilB9vTS5cr0qnMZpN0SIsglBTkHVptwHojZz/m29RDSNBHdRzvY+XaK4QzwD+XSIDGwHVvyLdnmYSQizpbWE38qjgP1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=asvoNZzxpeUVpG979IR6hLaidMY/KzWCfMLeXntLDM4=;
 b=cVUlUwf+DRQIupBtnqJSiO6255W0WezvVZNtwh05m5ihExPzDY3KYMYRva+WFwC/lKdzIHZ/PrGPmYwAFG00UbGyvsiTqtf7FM4eT4TKv+a4379qZ8ovrkSbIe9H/R/cSM8mEDicCJtn6Ep9YfkijXtW4HFDVXI4SAdQACWEAlqaVZy2sIWzkC/d7zM948OXY02bI88+0zUt9WLXNHEjNc8YqLD4TDL0k4c+qyrjNkntIst06B1fh8rGoUVL1qeI9XOahRvu2R6PZrW9cUp3im0yGgPqHKSOkDA+aRQypDsf1xqAg7mwKl6vCuZamvdd8Ld/zGD0FZIUtmVD+joHZw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>
Subject: Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Topic: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for
 hardware domain
Thread-Index: 
 AQHX0g8SPRoS2Ac9eEeTcWew1GI8x6wGl6aAgAJfuQCAADeUAIAGu8iAgADgLICAAJqvgIAACEQAgAAEzYCAAPFBAA==
Date: Wed, 24 Nov 2021 07:22:20 +0000
Message-ID: <997b74fc-0a74-80b3-1fa7-dbf38ebddfbd@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-4-andr2000@gmail.com>
 <2eb6b4e8-95e1-9566-3209-c28964b0d643@xen.org>
 <2f414e8f-67d5-d513-74d4-cc21a3a9ed28@epam.com>
 <9f712f79-9660-865a-3002-713950518819@epam.com>
 <117a57d1-aa4f-8153-8bba-2db47c234b81@xen.org>
 <c6232073-b59a-609f-3852-ddcac0859c2c@epam.com>
 <ef17fbe6-9768-9978-fa8f-6be757034234@xen.org>
 <442c853a-5554-9be0-80e4-b1f34cd6adeb@epam.com>
 <12447bb3-e3b4-c1f3-17f7-09704fd8b847@xen.org>
In-Reply-To: <12447bb3-e3b4-c1f3-17f7-09704fd8b847@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 20152213-4727-448a-7a2d-08d9af1b2786
x-ms-traffictypediagnostic: AM0PR03MB3874:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB38745E172E902BD244D17150E7619@AM0PR03MB3874.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 +r17xmTxZ/l4qZivhOMZSNHj54ktMpyiQLd+6sw6YvZjyeWROGbzN3IV3FNhcVdqruWl0eRw0arJWgYsN20aa/VH/6jHdbuUfkBWI+/fSIwhZ8ccG4+m/NwN+8Y/CPUP4kVu6ow2JLrZYvjJfNGRRDqtKaQHCB1ebDy8X8ORJ8UfT4KSOgwFX6Ztag/uTcqdxd8/nZbU6SleN7nSudk3TvB8GAOEutucmx2X/ZfJvOY3ynqJ3WQGETqbWIygfn4vPAaAyh0CFQtOORy/AC2+V3XB+yRp8oeoQKKz0wnzXSLLs6QdG4Sr2nMNq8Kszg5sVFQCa/Ou/Nh1HNMGTVBAm5K19GDOq+j2/wt45nDyA1BfMtk7yPxFgPZPk9iZPaWgKyYt6rYv6lwUmyhc8xJfgOXwxDJvy0DPunuVGqJW/qncYkOEctfhw6OEYJ0NB18CFCgeHicDKFGhmlv+b83iWUPryNNj+K1GM7pOH/fdDwBTAeD/UZHdX1vvV0eiEAMa3F5hBxkqykqxqf3kfIhkTedJnhXpPSIXHuV3wLHmrP+NvGedskHtaSR2OPvheoD3yXWEnyQcP5+gnUobclpiaZYbV/rvZ+1yxQnCu1Km2kMoHg9fEyhWFgKzgavvJnGFTaY21DXivXFFQX/MJY9rTqque8IPJvgW5dKJHrdxO/RwfcvSQiISmYmb9AtrdXmtkZEEBqQCNSjCtFT9aNnMQw638pXGs86uAVJdeNBb3Khf/m6y2Zo1TbuXKt1Y5an/
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(91956017)(6506007)(38070700005)(31686004)(4326008)(186003)(31696002)(8676002)(2616005)(86362001)(508600001)(76116006)(122000001)(53546011)(66446008)(8936002)(110136005)(316002)(66556008)(38100700002)(64756008)(66946007)(5660300002)(6486002)(66476007)(2906002)(26005)(36756003)(7416002)(6512007)(71200400001)(54906003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?M2t1MHltYUkrNDZ1azZTbXpwUmErTG5IYmZLZCthd1krYVAwTzF5Z3VKVjdY?=
 =?utf-8?B?cm8wYXIwVGZkTGF6MCs3MVZYREt3T24xZnlNT2lWZVZOM2p3bGZhV1JyenRx?=
 =?utf-8?B?elFlbXlPZXZqR3lMRmM2OWVQeWtzSXVWbEhHdmdIYk9OS1dkWEEycHI1ektY?=
 =?utf-8?B?eXltZGxSRDNIRWN0VW1hak41aGlTZzNJUVBUSkFRQWNXYlVXdFQrTVdzckkx?=
 =?utf-8?B?MnpCQ2QwRGJiOEc4bzJnaWdZalREUW9HRUdmQTlKSkVsOTNJVytTd29WQmRZ?=
 =?utf-8?B?VXFlTDdZWlhOa0RYTzlUUmhEcnp6ZFFKTlFEOGV6cEhnZTNSYnhqNm5KcmY2?=
 =?utf-8?B?b2RuM1RzZ054cVRTbnNlbGw3RXBiWDNJeUFCMUxqb1h5Q1h1Ykl0RnpDMnJx?=
 =?utf-8?B?TnpWVldKS205dStHUzJ5QkhCNHJCbm5POHk2a3RPNlF0L05zREhlTldPd1pv?=
 =?utf-8?B?U2pNMXR6NHZCdVlhaWdQNUVJcVQvdm9qU0tyRzVBV1BkNklOUlNGb29GamJl?=
 =?utf-8?B?K3dmZXlwWmdESHdxem9TNnVKV1J6a1JQVXpVNm1qWTVScGFPb2NNdGtNTnFI?=
 =?utf-8?B?d2tCbDRIbzdhSSt5Q00wYjhVZW9pbzZtLzR5V095REpYK3JlWUJaOUZ5azRa?=
 =?utf-8?B?WjRETGVpTHZTaW1haHdnbUlsZWtVTWFsZ0dTZzlzWXVoSlhrZXVTaEpQNXFp?=
 =?utf-8?B?Z3BudXBUT1FQVUh6cmlacFU5NnR0dWNHQ1VGV2xLTVN0YlNNUjJQRmwzTnB2?=
 =?utf-8?B?djNNQjFESXZFdWtjK2U0R2N1K2lrK09JR1R4ZGRLQzA5OHZWZXZscUNEYUZQ?=
 =?utf-8?B?NlN5WUphWnIyNTZMcmNXUUJXamlSTWJQMU1mV0FVZG5wdmNTQWV1emtWMUJr?=
 =?utf-8?B?NVh3aC93SFRCWDVyYi9qTnpwa2tMMkU4UkZLQW1MT0pxSkZUUVJ0NlJYdWxF?=
 =?utf-8?B?R0RQNThIbENyQVc2dDd6RHJHa3RoeU04SlhCK2tQYU5wV2ExTFI3MDdCc3VG?=
 =?utf-8?B?Wk9wQU9ueUNManhpU3ZyOTduWDB0cVAzMXdDcmliYjlNdXEyakZFbHRGb1Ur?=
 =?utf-8?B?ZjA3Z0xIR1VHUi91QnJrZDVuK1dkWkpKY2ZHU0hpRWlvNFIyR0N6VEJWbUcv?=
 =?utf-8?B?OG50SjlpY2hTNE1MWmx6QXlBK1lvTmY1V1FsZzlDWDJPeUczRElTZk9iMW9Q?=
 =?utf-8?B?VHB3QVQyNGdHMWNaWnFYcUN4K01zV011N3kyejdGSFlOWm42Rms1cVFhSkZm?=
 =?utf-8?B?YTZBTm1HL1oyaHJYWlhBWUZiZW50ZHhWZE54RUpVbEkrbFRZNjYwWHJwME9Y?=
 =?utf-8?B?VCtYL1BheVBkWHhSRTBzNlFBNjhidk4rZDlTK2tKZkFlVHJzUUpqQURkeWFa?=
 =?utf-8?B?Nkd1bDRQZnFmTmtiNFFxcjcrYU1sVk9vSENkRDBoMk90R01QSFBHWU92M21q?=
 =?utf-8?B?SkNFTU1mWks4SHF5bGQvWHhuQkt0UDhPVTJtV1NxZFR6VGluRFh2OEovQ3Y3?=
 =?utf-8?B?c1lnMUFMU09oZUxjOXlXTEUzUWk0TDZSQnA2T1NCSnNSY2xxZ2YvRU54REh5?=
 =?utf-8?B?SHJ3d2c1V29hVm8yZlJ0Y21McDB2MVhIbHhrSDVpT2hTRXYrbUJ6SkhvMmJt?=
 =?utf-8?B?a1phYTNnUDV3YWdCL2pMV0EvVEd0amh5UEh3VVhLbTVXMGQ0cFpvRm1xK3Rs?=
 =?utf-8?B?V1pPN3cyTmxkZ05OMm9DUzlUMEd6M0RPTXB3YTZsRUtvTnVFb2djK3p6bEZo?=
 =?utf-8?B?NVNSaXVZb3hoRkNtempsTWlJaFBXOVJ0YmlqOVNTNG85bDY0aHNwODBwL1Iv?=
 =?utf-8?B?V0xIMk1KN3dJZHg2NUhNMmZMQmxxVWVXUjhNMFpBZ2tkS1pnUWtGNlVhTk1E?=
 =?utf-8?B?OTF3RHprWkFRWkloZUVmN2xhRWhxV3pvdGtwRVZWRER1MzZqenJCOFhjUnFn?=
 =?utf-8?B?azRCc3hrNFlpM0ZyRHFjQ0xQUUc5eFdJYVpNc2VJMFB0WE9IZHJzMzNhc3Nq?=
 =?utf-8?B?b2NIdHBVeGRkTGIyYWRzVFYvWTNwTjhRQTc4eDB6d2o1WXNSQXo2VlpsRTE3?=
 =?utf-8?B?YUxyZGVyakd5a2V4aENpbS9heE1hZ1VWTlFQQVVJMjJuT1JmUXpmTXRtZHNG?=
 =?utf-8?B?WkZXTmk3YmFoOHJ6aTVteXdkYy83V3ptNzc4Tm8yUUJsMEVlcG81T2ZBUTNO?=
 =?utf-8?B?UldkWWc2L0xweW9IcCtFeDUydzU4WkoxUHZpSHhIR3A0SU15V1g1TkRZWjhQ?=
 =?utf-8?B?VUlPa3NQZ0NCRVQyU2x1YzNtOSsydWVjMkFVdzdydDlOQ3Y1Z1RpMDBXRWpG?=
 =?utf-8?B?MzRLalZKUFowM1pwaVJDZ3VhZ1g1ZkxRdjdDZG9ZbzlNeGdwUmdPUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <754563D90EFBBC47B529694DA7CF1495@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 20152213-4727-448a-7a2d-08d9af1b2786
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 07:22:21.0055
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: mZnVtD05HfcxkPNmGyoUXTUSdF4aE7cBcRIKO88y//d1fJ9ILLfs579b4iFBK8YBgzD9EFj6lU8Uj9HxcwZ1mJofmHmUOjvH5gjJ7yGYJU2iFvmKPi6YKAouDSrhl4ov
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB3874
X-Proofpoint-GUID: tiM5aNjO800xPyKMaylDxXWbLdFu5ZrV
X-Proofpoint-ORIG-GUID: tiM5aNjO800xPyKMaylDxXWbLdFu5ZrV
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-24_02,2021-11-23_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0
 suspectscore=0 bulkscore=0 adultscore=0 clxscore=1015 mlxscore=0
 mlxlogscore=999 spamscore=0 phishscore=0 lowpriorityscore=0
 priorityscore=1501 malwarescore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2110150000 definitions=main-2111240041

SGksIEp1bGllbiENCg0KT24gMjMuMTEuMjEgMTg6NTgsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGksDQo+DQo+IE9uIDIzLzExLzIwMjEgMTY6NDEsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdy
b3RlOg0KPj4gT24gMjMuMTEuMjEgMTg6MTIsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+PiBPbiAy
My8xMS8yMDIxIDA2OjU4LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+Pj4gdW5z
aWduZWQgaW50IGRvbWFpbl92cGNpX2dldF9udW1fbW1pb19oYW5kbGVycyhzdHJ1Y3QgZG9tYWlu
ICpkKQ0KPj4+PiB7DQo+Pj4+IMKgwqAgwqDCoMKgIGlmICggIWhhc192cGNpKGQpICkNCj4+Pj4g
wqDCoCDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+Pj4NCj4+Pj4gwqDCoCDCoMKgwqAgaWYg
KCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KPj4+PiDCoMKgIMKgwqDCoCB7DQo+Pj4+IMKgwqAg
wqDCoMKgwqDCoMKgwqAgaW50IHJldCA9IHBjaV9ob3N0X2l0ZXJhdGVfYnJpZGdlc19hbmRfY291
bnQoZCwgdnBjaV9nZXRfbnVtX2hhbmRsZXJzX2NiKTsNCj4+Pj4NCj4+Pj4gwqDCoCDCoMKgwqDC
oMKgwqDCoCByZXR1cm4gcmV0IDwgMCA/IDAgOiByZXQ7DQo+Pj4+IMKgwqAgwqDCoMKgIH0NCj4+
Pj4NCj4+Pj4gwqDCoCDCoMKgwqAgLyoNCj4+Pj4gwqDCoCDCoMKgwqDCoCAqIFRoaXMgaXMgYSBn
dWVzdCBkb21haW46DQo+Pj4+IMKgwqAgwqDCoMKgwqAgKg0KPj4+PiDCoMKgIMKgwqDCoMKgICog
MSBmb3IgYSBzaW5nbGUgZW11bGF0ZWQgaG9zdCBicmlkZ2UncyBjb25maWd1cmF0aW9uIHNwYWNl
Lg0KPj4+PiDCoMKgIMKgwqDCoMKgICovDQo+Pj4+IMKgwqAgwqDCoMKgIHJldHVybiAxOw0KPj4+
DQo+Pj4gSSBhbSBhZnJhaWQgdGhhdCBteSBxdWVzdGlvbiBzdGFuZHMgZXZlbiB3aXRoIHRoaXMg
YXBwcm9hY2guIFRoaXMgcGF0Y2ggaXMgb25seSBtZWFudCB0byBoYW5kbGUgdGhlIGhhcmR3YXJl
IGRvbWFpbiwgdGhlcmVmb3JlIHRoZSBjaGFuZ2Ugc2VlbXMgdG8gYmUgb3V0IG9mIGNvbnRleHQu
DQo+Pj4NCj4+PiBJIHdvdWxkIHByZWZlciBpZiB0aGlzIGNoYW5nZSBpcyBkb25lIHNlcGFyYXRl
bHkuDQo+PiBXaGlsZSBJIGRvIGFncmVlIHRoYXQgTVNJIHBhcnQgYW5kIHZpcnR1YWwgYnVzIHRv
cG9sb2d5IGFyZSBub3QgYmVsb25naW5nIHRvIHRoaXMNCj4+IHBhdGNoIEkgY2FuJ3QgYWdyZWUg
d2l0aCB0aGUgcmVzdDogd2UgYWxyZWFkeSBoYXZlIE1NSU8gaGFuZGxlcnMgZm9yIGd1ZXN0IGRv
bWFpbnMNCj4+IGFuZCB3ZSBpbnRyb2R1Y2UgZG9tYWluX3ZwY2lfZ2V0X251bV9tbWlvX2hhbmRs
ZXJzIHdoaWNoIG11c3QgYWxzbyBhY2NvdW50DQo+PiBvbiBndWVzdHMgYW5kIHN0YXkgY29uc2lz
dGVudC4NCj4+IFNvLCBkZXNwaXRlIHRoZSBwYXRjaCBoYXMgImhhcmR3YXJlIGRvbWFpbiIgaW4g
aXRzIG5hbWUgaXQgZG9lc24ndCBtZWFuIHdlIHNob3VsZA0KPj4gYnJlYWsgZ3Vlc3RzIGhlcmUu
DQo+DQo+IFdlIHdlcmUgYWxyZWFkeSByZWdpc3RlcmluZyB0aGUgaGFuZGxlciBmb3IgZ3Vlc3Qg
ZG9tYWluIGJlZm9yZSB5b3VyIHBhdGNoLiBTbyB0aGlzIGlzIG5vdGhpbmcgbmV3Lg0KPg0KPiBB
dCB0aGUgbW9tZW50LCB3ZSBhbHdheXMgYWxsb2NhdGUgYW4gZXh0cmEgMTYgc2xvdCBmb3IgSU8g
aGFuZGxlcnMgKHNlZSBNQVhfSU9fSEFORExFUikuIFNvIHdlIGFyZSBub3QgYnJlYWtpbmcgYW55
dGhpbmcuIEluc3RlYWQsIHRoaXMgaXMgc2ltcGx5IGEgbGF0ZW50IGJ1Zy4NCkFncmVlDQo+DQo+
PiBUaHVzIEkgZG8gdGhpbmsgdGhlIGFib3ZlIGlzIHN0aWxsIGNvcnJlY3Qgd3J0IHRoaXMgcGF0
Y2guDQo+DQo+IFRoZSBpZGVhIG9mIHNwbGl0dGluZyBwYXRjaCBpcyB0byBzZXBhcmF0ZSBidWcg
Zml4IGZyb20gbmV3IGNvZGUuIFRoaXMgaGVscHMgYmFja3BvcnRpbmcgYW5kIHJldmlldy4NCj4N
Cj4gSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCBjYXJlIGFib3V0IGJhY2twb3J0IChQQ0kgcGFzc3Ro
cm91Z2ggaXMgbm8gc3VwcG9ydGVkKSBhbmQgdGhlIGZpeCBhIHNpbXBsZSBlbm91Z2guIFNvIEkg
YW0gbm90IGdvaW5nIHRvIGluc2lzdCBvbiBzcGxpdHRpbmcgdG8gYSBzZXBhcmF0ZSBwYXRjaC4N
Cj4NCj4gSG93ZXZlciwgdGhpcyBjaGFuZ2UgKm11c3QqIGJlIGV4cGxhaW5lZCBpbiB0aGUgY29t
bWl0IG1lc3NhZ2UuDQpJIHdpbGwgYWRkIGEgZGVkaWNhdGVkIHBhdGNoIHRvIGZpeCB0aGF0DQo+
DQo+IENoZWVycywNCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:33:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:33:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230111.397828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmmB-0001iQ-SE; Wed, 24 Nov 2021 07:33:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230111.397828; Wed, 24 Nov 2021 07:33:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmmB-0001iJ-OT; Wed, 24 Nov 2021 07:33:07 +0000
Received: by outflank-mailman (input) for mailman id 230111;
 Wed, 24 Nov 2021 07:33:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mG44=QL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpmmB-0001iD-4P
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:33:07 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c38a26ac-4cf8-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:33:06 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-28-IaJaG3v5PQKWOXMM8w21Xg-1; Wed, 24 Nov 2021 08:33:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7038.eurprd04.prod.outlook.com (2603:10a6:800:12d::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 24 Nov
 2021 07:33:02 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 07:33:02 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0015.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::28) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.19 via Frontend Transport; Wed, 24 Nov 2021 07:33:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c38a26ac-4cf8-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637739185;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=/gta5DZArVhcL3E/yTesEapUc4qE/6mmL65q1KJqu70=;
	b=VejlyyXkbkWsCJP/DQBQWSwpC6mfjqBdNSXtJF0fKwLKOVWUTdDsk831nPHKkQc0X/gx6E
	yP8F8MgqEN8W5wAmugKMAY6dz1qZWuPnHW10GGIhPeUjW4gHuq/WK0uptkHPfjucObfekw
	NN67tqGgbGrpwVj7x/lh/Jaq9rypPPg=
X-MC-Unique: IaJaG3v5PQKWOXMM8w21Xg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=e+HOdRowXh8cUc7s1MCcXI+TKCfMpEXVAIfaN2ty60BNS+Vpn/jkHvuONRFhU14KHEOBH+b+5Aru8xo3AW3Q8qJEnXXrCJF52xR6AswObucOumrwa8XC5l3BCfD5cQJo30ommwcXMQwQAP2v8Vrwdvlcpz/V6TwjbwKwjoNgNqm6VG5B/sAHAouwqjX1Y3kVIFcoMJ57O0UEOog7aUniorXXMgV5Q4YK7qAqAmqt7qmdSAuU2+gNSOuCQPjcT+j0H/Szo7KoNGp79ZvgQNJEScgp8Z8z752yyqibBabJZZg++r5yoKMCukA5vmF6/TZOp9sZjo9ExNDLxFfKPDwiRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/gta5DZArVhcL3E/yTesEapUc4qE/6mmL65q1KJqu70=;
 b=inp+SiGAEqjvD32SCxJsQDh6z1ADOwmeFvcr6aSaP76iJJPI1/hK+tUlu/5uKUCdEpcxV0Uc3EvaGZauStQKScp2IU3/yL7cfe7t3VDXXE5J9+gZF89rm+bF5pMVneVg508vyoyHlTtUndcFgM71dgjDMlzYokZtViqf4A6AF7rlj5tkO3odJXA4KxkEwH92yDFUOtuOi/gaelKxktZ/YLdY/cQY1eoGiRxQ4LfQjK5GqmQ3jWcCCL2m+s0DOPvPC9EIAJe6IRb+3W4eiH0nV9XXJBsYXuk3PbNjsQ/Pw1qJkgx1T2zMHLbj4Hgm4LQHEBiR512Pc862eAEo/F9rgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9d2b7ee7-4498-da49-bd74-5da0dc38d1de@suse.com>
Date: Wed, 24 Nov 2021 08:33:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v4] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@xilinx.com>, stable@vger.kernel.org,
 jgross@suse.com
References: <20211123210748.1910236-1-sstabellini@kernel.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211123210748.1910236-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0015.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:89::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e7168824-a29d-49fc-727b-08d9af1ca568
X-MS-TrafficTypeDiagnostic: VI1PR04MB7038:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB703840C5017CBE7C6DD4D012B3619@VI1PR04MB7038.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	rvuohZJVzOuN+2+WaJctRyTpKbzmFLzoSQyRu2fRZg2i4HpyYg+xTBOfyZkah+tg3+9Kal0xCfdgMcxwqsnFN/Tfv+bkewIRw47SLT5n+MfEigjuiHHehkx0RFF6x94IhuIWcaYRVJH/BUy5rKdUFigGamUmiCX80h0RTWQSTR+og+rj9xuQUx+D1fGV4RjI3sYJloIbhaUBfLQAwp3eE/nEuOHYaRKlnoveD3QnZ+tc6Ux+oXTzl4v0ziwMHKNLk7gQXiFpr7V8ctVtb9tWL1wxCR4sZczN4s59w5tsIp/RIRcFm9xudwZqPSsEu0QdTVlrWwpjHrlTsCeAR95ipWfoDRNq4/EGMf/BQEIZmBhRYqarRyanQ+JywaDRBJxumdI5iqiY8Dh0fzGCR3n/QHBw5cLNij/UF4Pw7ZItQAAKOKK4JvlJ3oiX8FDa47Lij+41s/6TqtblFfo6nZDc8SFrtIGCc+lOnk8nJltqsmpR3L7ABn3AqHBcQKURkZO7DyzQfeg9AyJrb6kHBRQwUhmO8RULdrs6CFph2CDVHp7QNXcrS/sJ84yBXv5udMV4SF6NbI6wmHprkD/OHhh5K/pUfLzpamjej9cOujQWcQPKehT1Pi+8WeLw3mkheLnsXtA/VlQ5dg6y0FT0DadCVRDkMVODUqH4iCM1EVW7bFAHgs9jh8G0lZnSB6dgHME8aBVfMgFfWkyc4x69O2tXSnrEoNaGJHpNOHUpteOfXoE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(2616005)(86362001)(6486002)(956004)(508600001)(8676002)(53546011)(26005)(8936002)(4326008)(31686004)(316002)(6916009)(36756003)(16576012)(186003)(107886003)(38100700002)(5660300002)(4744005)(31696002)(66556008)(66946007)(66476007)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S1ZxSTJSWDhOTFhPNy8wUm1LdkttYmVtUXYyVmlqR1IrcVBsVDE4azRVeFdU?=
 =?utf-8?B?UjdqdWU0ZGxxV0k4VDQ2TzgvV1k1L3BMNlJ3UG16UTBkemhlUW9keUVFK0J6?=
 =?utf-8?B?NHd5SXZwdFhnTVVKdWgyK1laVHJ6MW9yZ0gzbU1VVzFjbDZzT3IrUlFZOGk0?=
 =?utf-8?B?WkJMVXBpWWQrL0ZTS09VWERkL3QzNDNPS2cvazU0WGxLd3kwaFRLTGQ0SWNp?=
 =?utf-8?B?S041RWxwOUw2QzA2TFZXZ1NCcW9oVy9GTHZkZHV5bjJ4YzZyRk9YTFFGYk9S?=
 =?utf-8?B?VlpVQmREcjBYT3NPenV4TmQ1Yi9ROEk5ejMxYXgwUGtYOHhmeTNONEdPeTFP?=
 =?utf-8?B?WEd2cEE2cFpXZVp1WUI5NXk1QnB0RXFMUDM3MWRDR3FBWjZEZStSclYzbm5z?=
 =?utf-8?B?aFlpS0NPWkVrYWNZVjNJUDJqTC94ak9wYzQvdHFkZFdiM2tqUThzL2ZnMkFx?=
 =?utf-8?B?RitqNjQ1YlFHWnF5VGtxalFMTkFuM2pIeXUyaFFleHdUZW5xQklQby9yU3RB?=
 =?utf-8?B?SE0zcmtJaXI2UVNVRHp1eGEvOEZPUWJmRHhpRUVYSmgxTUZBQ1IyZTBQUWpG?=
 =?utf-8?B?UitIdTU3RGJ2bGk0ZHNZYzVNdDlWdThXcFhoYW9rbkFTQzI4MXRVaktEZldU?=
 =?utf-8?B?TzNhTGw4Y2E1U0pPMkdEYTgxelVGYlJVMkhqNmZraEJibjdwU1Q4M1VsOEcr?=
 =?utf-8?B?bkVQM0lqK0dLV2JPSHJuUERWUTBoVGZ3SDAySnJ5S0JoellFOWhsc2NWYVZq?=
 =?utf-8?B?RWdmdkJ3UVBpNnIyL0orU3NNTVJZcFVvMUtHZk92NlBVRTE2YjM2eWtDYW1M?=
 =?utf-8?B?WUlNa0VDTmFtQmpmTXlKaVhNNDlZaEhxV1RTUDJYWnNqZFdMQXFLZjJCZzd3?=
 =?utf-8?B?MUIwMnZpdXEyakRjOWRjcUFGUHdZZ25YNUI0WDdnTWRLeXowTGF5Y3oxRlJn?=
 =?utf-8?B?Q3BTN1VWNHZFSjdDMWE5amE1bm43V28zcXJwU2JKWkRSRFNiWXhKUzNhMU9O?=
 =?utf-8?B?RW44TUVQUmRmcVBsNDk5RDQ5ZFBzQktza0FIQkkyazYzZmhkZTFtNnBLV3Ns?=
 =?utf-8?B?NDc2R2xJMHhVQ0tSbTFtZUVWckxmaHo4SXIxVGFBR0N4a2xEVjZxNDQ0T0RV?=
 =?utf-8?B?bVg5Tk5PUkRqZWpQWWdlQ0hNbzFGZ0xVNFljZ0ROS1FGUDk2RnJ6UDgwTFJi?=
 =?utf-8?B?YnlCU3haTS82ak14aHNwZjlWcnVVYmxCLzExaWlVaWd0bDMyVmk4NmU5cXhu?=
 =?utf-8?B?MWI2ZDVmaWVaNlV2aDBKUXR1RHJXcnVqT0pIeTZFdXJsWHFGVDJGK3oyOXAv?=
 =?utf-8?B?WnBuODJkRHhIYUdWUHlqejY2RzlPeW8yQnBBOFZwT0NNSTYrSm5iam9HaUxa?=
 =?utf-8?B?bjY5YUQwQ0RWelhVVktRQVMxeWoyUHpvaG5keU4zNmZMSzhpTG5XZEhZY1JJ?=
 =?utf-8?B?UmVJQ0xmWHY4Y1Q2ZnNnK2lWeTNhUU5RUEFsVEZJRTVlVXhyZGZDZERmNm1X?=
 =?utf-8?B?UEN4Wk4xZmJtV2Ntb2h4Vis0cWptN3pKWWQralFYbm5ydStCMEFKbFMzKzJJ?=
 =?utf-8?B?c1N3VWMreXVYdHFvZnYwaEJEeURDeWVUZzlEclQzL3cvYWF1QS9ZVExJL2pI?=
 =?utf-8?B?VE5XeU04MVNDRmdCOFhMc2RaT0pPZmxlaU8vNHhITEpHM3NibGF2ZkZrTURr?=
 =?utf-8?B?ZFRLRHRoandOWjVuazZRdUpWSFNiYTFhQUpZYkVySmoreXhuaXFyQUtWQkF5?=
 =?utf-8?B?ZDFZcHdLcDNnTThzeGdCZG5CMlBRTkNIRmN5QnJsNUw0YmhmR3RvRm9KcHpT?=
 =?utf-8?B?amd6Kzd5RTR4TXg0WU5PVTgycnFrdFJET0FrRGdKODZkc1R1eFRmdjhWMHUx?=
 =?utf-8?B?RWg5U2lBSHB3USt1ZHNadU80VExDUTltRVNkYmtqNTY2ZDVoQml0RVpaTW13?=
 =?utf-8?B?TFdmZC9ySmYyWXBwY2I5RmMvNTY0YjFhaHo5U3dkbGNqbnpxdFlnVDByZnBu?=
 =?utf-8?B?OG1MVkpraEpldkdGWE5ma3FkSnROeE5EZ0locHVyR1A1dVhObitoSmFESmRI?=
 =?utf-8?B?NExtaVcxUFJqWVJvL3pnTXpnNXNCWjBQdDg1N25YSmR6RXJIRkZWRDQwUWxJ?=
 =?utf-8?B?UWVjSjJQREpRTkVpVmgwUFJ0NTNtdGVyZEgzTEpSZEs2THgvOGplQ3l3TXRJ?=
 =?utf-8?Q?039yiT6+ZWeeodVEWrwa5AQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e7168824-a29d-49fc-727b-08d9af1ca568
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 07:33:01.9795
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9KqD0pfn0oJuJR3EroIt6CLBVN7MVqBop63hZg1y/oU3C6HrAAnGu+2ijGsW3bf8TrfhEeCioDYPbYDKAOvrXg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7038

On 23.11.2021 22:07, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> If the xenstore page hasn't been allocated properly, reading the value
> of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
> error. Instead, it will succeed and return zero. Instead of attempting
> to xen_remap a bad guest physical address, detect this condition and
> return early.
> 
> Note that although a guest physical address of zero for
> HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
> and zero has never been validly used in that capacity.
> 
> Also recognize all bits set as an invalid value.
> 
> For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
> above ULONG_MAX should never be passed by the Xen tools to HVM guests
> anyway, so check for this condition and return early.
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:39:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:39:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230119.397839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmrr-0002Re-KU; Wed, 24 Nov 2021 07:38:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230119.397839; Wed, 24 Nov 2021 07:38:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmrr-0002RX-Ge; Wed, 24 Nov 2021 07:38:59 +0000
Received: by outflank-mailman (input) for mailman id 230119;
 Wed, 24 Nov 2021 07:38:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mG44=QL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpmrq-0002RR-HS
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:38:58 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94a46302-4cf9-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:38:56 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2053.outbound.protection.outlook.com [104.47.6.53]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-3-cv4PGdCIPTCFbLLCCLRP6w-1; Wed, 24 Nov 2021 08:38:55 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2448.eurprd04.prod.outlook.com (2603:10a6:800:52::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 07:38:54 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 07:38:54 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0081.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:8f::22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.20 via Frontend Transport; Wed, 24 Nov 2021 07:38:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94a46302-4cf9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637739536;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yyToAZuHKoSK8clEkRbqHeXOBcEdIhjOgeG277rSuSo=;
	b=JAP1n2TLJ21DciAIrR+Y5ISEZ8Nshv6+SKDg3Qp2jyVWInEs4h5/nc6Q/T9i0FMxiS7wkq
	CeGmzehvK+2WIhwk2trE0mPEos1TjsoqYCNUCR4vCjn9ixJb34FiLCeRgmHtHHSGP6UCs3
	2y2tTHgRGXXzjn8eRTELZS92dn1NUsQ=
X-MC-Unique: cv4PGdCIPTCFbLLCCLRP6w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WJAuQzuD2SAlMtGnOJnt+tK+plBjd/+gLqv+vblRrD0A5bmOrEGNs/oEK1nR5V/BJvf9M8tKsprCTmVk44mwlmaMJU+Ejs1TkQrmxpb8wvp6mUlc6aMBZl5PBy8XInBdVgJdlf6ZBCzTFbjwZ6hLvGlr4HszDiF2z8XcJV38KI9TkKzzgP1kbEPKAEuHbSVzVbJYECoFlRLDB5OUCQwWYR6hAgmINlrTxJbYA76BkGoHBWXsuIB52AEKUsyg21pEJa6CRNoPMCoNmtpgvm2qFrIdiJ3QZ4fPPbBAQTT6Mk6TVlNp8yWRJ9kC8hrwwgROgyC3a/8p+9jRFtk/eamQuA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=e27qbQP9IoApuB5rpyhx3qjOfVYoDI7MkssJ6e93mg4=;
 b=mEvHpcfnQx3cFSLbuHPa2yYokUTaf6ETlz4Bptt29y95NgACSO3cT+L9W6wrc64Rw29Wy6DIn9KU3CCghoJyUvfLqR/MIybnZcfoNlu4awINVsKT7xHgXyQyDrBAglGcfbtZZLzABc5rGN1d4ssBuAt7Ef4oJB+RFgYnY7bFJRTCHl2+9Ylr9DZXW1WB9VRoEjrjQM0rPpbGV5QVFYr3rAUSmP20pUcx9CabGto/lO/bd8YDqX+/wV9lh9Q7buOeePoq38kMvayikj91iWn66a+8NoOeUkJMevSeNWY0wNk3cnzUhl9yCcCb5O2cd5sEjuf5K1xPs6paGG4MR87Ogg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b3e1b1d6-9dc0-9692-d08d-64553f723666@suse.com>
Date: Wed, 24 Nov 2021 08:38:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [xen-4.15-testing test] 166311: regressions - FAIL
Content-Language: en-US
To: osstest service owner <osstest-admin@xenproject.org>
References: <osstest-166311-mainreport@xen.org>
CC: xen-devel@lists.xenproject.org
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <osstest-166311-mainreport@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P194CA0081.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:8f::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 6e13a908-2949-4143-df35-08d9af1d7745
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2448:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB24484CE0749F111B302FA096B3619@VI1PR0401MB2448.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	N0cP95hEmdb16tQ5gvKfoy9nuYnqxc4s7Frndo53A76d+qn/VKuephnR7RTEJNnefcWSTRij2YnK+jaCFsV9xDhtVSe6iE58pKADs+ICkNrcOHEzZpOJLpOiQPFYFQeJ7d7GVOlHtyutWdrmR39vksI9+nmpiMXQFKxSkhWXuJpx3O9IeK8tcgstrzH/+aSkTCBfOOqfCTj4u/mkdReSNKfRROhe8Ir5C1gEPrvAJk5GJYz2W7GJaGRDBLrkx3zzbLw0Mo5as7lU/eSsNq673tbHYwemc2LSo+IWkiVZKJZlRZdcjItAW8daf1LoAFgw4i4xxhjmF0h9o8/qXlysFmldxWSjEvPaC8os3E5BJhMgo+1tpOoPs9XkeTBAo4+JMLS9eB7CgSl3h0L8uBRPwU75aQVhwFO9uAUFnZoyLVvUZ5sVYUhfJsJSun/XZXjtTUtDmIP1s+RuonciHwPDlJTPf5uwq1hZPh4zAV35D/JZPrhcKTDLClssOZ1wBSkUxg7ONAWZOhKMaeH2HoU65lHIktwYuqQP+V7HmlKfja4mP7dZKr+Q02WkubiG+z3KGreOUpSA1+HIk0Z4R9P6OiiV5EEVprrJH0/ZWS7Ob0BQ9kTtcqBkWrKQK3pI57MvYqJ2cDvjyuWhkR09u5BdPCvoE/zsBMzPCsIiqfq+aqbWavqWkIEbu2n85yCqhRM9vEFAurVpN51Dqk3qHyzX0fAB49VBrJEu9nOAZzquEDp7LjKSms+P2UPYjzi/eR5iGn6Vz5GHcgNXpXPizoeuXAxX6iygYK62aEWMrXXot+RE1g0qXRKOiOtWh2+AHihT2MlOZ4ktyAjPzwIICttk3pw/r3MwRrbEI0CSG4aOY4E=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(4001150100001)(31696002)(2906002)(83380400001)(966005)(508600001)(26005)(31686004)(66476007)(8936002)(66556008)(5660300002)(6916009)(8676002)(4326008)(6486002)(30864003)(956004)(316002)(16576012)(66946007)(86362001)(53546011)(36756003)(2616005)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Z9GI/i9x1sHd11mK30GkvW92AgzjXNLM135nfoOoIEOm/K449jFfbsinR3II?=
 =?us-ascii?Q?ja3qjZx/nOAih+9SZpQXV8O6rK0iwr+jE1+mMaA09Q1yFyFpUfwZeG7JVYu6?=
 =?us-ascii?Q?uNr0Ong5A0HTUPxO9ojmU6DB2YbR/p9qSmZyAyCe2/PwO96rrRo6d8rxQiIE?=
 =?us-ascii?Q?cUxo+sdsUycc+ZU6Lx+hNzxkZjtMikDwtN5p/hk9r/S23TgxRfEMJ5QMXFEw?=
 =?us-ascii?Q?+pIE/BeOkxhifuCvN1ijzGL6RYHaGep9BfaIcIzOf6Bfp3GP9soJcn1EA/vG?=
 =?us-ascii?Q?upZXLsJrLPatZjYM0Z5InYhpV8r0xSz4Y4m/+M4NxU6kKXcTwW1AWLlCPj1O?=
 =?us-ascii?Q?4Ls3qrkJZ2Og+gyauyE/8IOodLkysqQ/bCr6hlF2/VEQf1ibrZoV+1XtW0G8?=
 =?us-ascii?Q?SEoOfSyXNS1pxMM/mn5OTBWvdvalU6OPjhQ58Js5Xd/KGkTuuFL9kgKy4Wcl?=
 =?us-ascii?Q?i3BTJ13EBgUwvHzRk11iDbX3k62NN/yJW5zxlxKLFu3zMDFkm2ZDKj939HJb?=
 =?us-ascii?Q?y2SFEEGSFd9K6vRQFtSTE/DjBo9s5nSrkOP0ftvw6J9CLm5AP5d2wKOmgLJZ?=
 =?us-ascii?Q?IwxoIaLg838b08wx8bWO+dC/zNI47qWYWpUAeM111ukqBsPiJRd63q/UKlvA?=
 =?us-ascii?Q?YjXAmhdc0fOa/8AGinJe1RgZ2PsLO0++BOOHc1SieAu0lZyM2Uq8C0SBodfA?=
 =?us-ascii?Q?B+ME1n+M8Dppv1Ry4vaG/8PezMpJI5W8uX+SBw62wdZkIm1Ow/fjTckg1h44?=
 =?us-ascii?Q?9iN9q4ykkP+nNoYy6KOOb0gayhCh99qvZUPFnZ5y8v6oOR3qtYiPQYzgM+jI?=
 =?us-ascii?Q?UK7VDzJCjinvaTk+D+0G6ElHhL+dZML3/AsVGtYuPWNtxDZeORX3nnZtaQ66?=
 =?us-ascii?Q?G30y3GvgCZLnhJqdVbQM2Q2eRHi+P8NdHVLaSFdj3Vo3XQ75QrctG1l2/9Ce?=
 =?us-ascii?Q?4RO72l3wrQX5j+bIGTLnfenuZQLs+IOGf0n3uO71KhWoK2GWbL0Hjfa8C2uQ?=
 =?us-ascii?Q?llnLUcIc54al9p0pwW4yd1GVTeGHe7VaHS112/DUSwsfkKP/UuJbPRGF1l+t?=
 =?us-ascii?Q?tVC1As2K8xEaHCN6YzORftIhR5LP4a8LeUdQqCoKE/RZd69nYcITOj69X+ZH?=
 =?us-ascii?Q?h+IOcSx2yQmw5YTZMpoBI1S8lNvAUv50w1cI/ixDrg4WBfW7NpbCDPERua3S?=
 =?us-ascii?Q?vrpT3Ia4D1uwVpuF/rn1ZihfpbsMHPcY4OlP/A8V7BfSHkdMho8zJX7luYjD?=
 =?us-ascii?Q?if3FTi+v1f1vxDdgkMATicjXpn0T+DYmCH7loasKOrXBIvk8j163Ab0oPTkL?=
 =?us-ascii?Q?2LC59xLsk1AVthWcs3jvTRW2QkD9vpa82gfTpKC64dqldGiwIMLExmNKcRyT?=
 =?us-ascii?Q?Mp8WTu4iHv76bnHGXWN2D3hfzzJ5p1PJrIopoxcgvNdoj7MSFvup7jOFmZcy?=
 =?us-ascii?Q?iBifoIH/KJ5+Bn6e8PT+K4b5uhWFhIYwTBFab2M0fZqGgUrF6F8u9sI+nYFT?=
 =?us-ascii?Q?eQ8TVbalRadQC+EWQg55ccfk+GP92M5rRd/N804XWoYL2AaQxSiRUlkaqQ0w?=
 =?us-ascii?Q?PXEMqvbkgHqXNhkxZGnzDQ4lLzlcYGKWpC672fjNabiNtLiu/Twtj890B8nt?=
 =?us-ascii?Q?jpwWwpC3GZI9SojG1HdWrRM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e13a908-2949-4143-df35-08d9af1d7745
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 07:38:54.1015
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Cz65i08Ic9akGXH8L9aQZIcBmoyP1JlpHgCfm07rrlLliKe24h5eiU5cTnP3E6+mYA5Wyw7ED9pEupBWv+IU9g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2448

On 24.11.2021 03:00, osstest service owner wrote:
> flight 166311 xen-4.15-testing real [real]
> http://logs.test-lab.xenproject.org/osstest/logs/166311/
>=20
> Regressions :-(
>=20
> Tests which did not succeed and are blocking,
> including tests which could not be run:
>  test-amd64-amd64-xl-qemuu-debianhvm-amd64 12 debian-hvm-install fail REG=
R. vs. 166198

At the example of this, I find:

Err:1 http://ftp.debian.org/debian buster/main amd64 genisoimage amd64 9:1.=
1.11-3+b2
  Could not connect to cache:3143 (172.16.148.6). - connect (113: No route =
to host)
Err:2 http://ftp.debian.org/debian buster/main amd64 rsync amd64 3.1.3-6
  Unable to connect to cache:3143:
E: Failed to fetch http://ftp.debian.org/debian/pool/main/c/cdrkit/genisoim=
age_1.1.11-3+b2_amd64.deb  Could not connect to cache:3143 (172.16.148.6). =
- connect (113: No route to host)
E: Failed to fetch http://ftp.debian.org/debian/pool/main/r/rsync/rsync_3.1=
.3-6_amd64.deb  Unable to connect to cache:3143:
E: Unable to fetch some archives, maybe run apt-get update or try with --fi=
x-missing?

Network issue (hopefully just a transient one)?

Jan

>  test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install fa=
il REGR. vs. 166198
>  test-amd64-i386-xl           12 debian-install           fail REGR. vs. =
166198
>  test-amd64-amd64-xl-credit2  12 debian-install           fail REGR. vs. =
166198
>  test-amd64-amd64-xl-qemuu-ovmf-amd64 12 debian-hvm-install fail REGR. vs=
. 166198
>  test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install f=
ail REGR. vs. 166198
>  test-amd64-i386-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail R=
EGR. vs. 166198
>  test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-insta=
ll fail REGR. vs. 166198
>  test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 14 guest-start/debi=
anhvm.repeat fail REGR. vs. 166198
>  test-amd64-i386-xl-qemut-debianhvm-amd64 12 debian-hvm-install fail REGR=
. vs. 166198
>  test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail =
REGR. vs. 166198
>  test-amd64-i386-xl-qemuu-ovmf-amd64 12 debian-hvm-install           runn=
ing
>  test-amd64-i386-xl-qemuu-ovmf-amd64  4 syslog-server                runn=
ing
>=20
> Tests which did not succeed, but are not blocking:
>  test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like =
166198
>  test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like =
166198
>  test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like =
166198
>  test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like =
166198
>  test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like =
166198
>  test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like =
166198
>  test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like =
166198
>  test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like =
166198
>  test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like =
166198
>  test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like =
166198
>  test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like =
166198
>  test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like =
166198
>  test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like =
166198
>  test-amd64-amd64-libvirt     15 migrate-support-check        fail   neve=
r pass
>  test-amd64-i386-libvirt      15 migrate-support-check        fail   neve=
r pass
>  test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-xl          15 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-xl          16 saverestore-support-check    fail   neve=
r pass
>  test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   neve=
r pass
>  test-amd64-i386-xl-pvshim    14 guest-start                  fail   neve=
r pass
>  test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   neve=
r pass
>  test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-che=
ck fail never pass
>  test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   neve=
r pass
>  test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   neve=
r pass
>  test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   neve=
r pass
>  test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   neve=
r pass
>  test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   neve=
r pass
>  test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   neve=
r pass
>  test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   neve=
r pass
>  test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   neve=
r pass
>  test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-ch=
eck fail never pass
>  test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  neve=
r pass
>  test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  neve=
r pass
>  test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   neve=
r pass
>  test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   neve=
r pass
>  test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   neve=
r pass
>  test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   neve=
r pass
>  test-armhf-armhf-xl          15 migrate-support-check        fail   neve=
r pass
>  test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   neve=
r pass
>  test-armhf-armhf-xl          16 saverestore-support-check    fail   neve=
r pass
>  test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   neve=
r pass
>  test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   neve=
r pass
>  test-armhf-armhf-libvirt     15 migrate-support-check        fail   neve=
r pass
>  test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   neve=
r pass
>  test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   neve=
r pass
>  test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail neve=
r pass
>  test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail neve=
r pass
>  test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   neve=
r pass
>  test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   neve=
r pass
>  test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   neve=
r pass
>  test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail neve=
r pass
>=20
> version targeted for testing:
>  xen                  544e547a63175ac6ef7cc29c4f5bda88da024f69
> baseline version:
>  xen                  963ab606b1228788eac54c1c7ff70d04bb325733
>=20
> Last test of basis   166198  2021-11-19 19:38:51 Z    4 days
> Testing same since   166311  2021-11-23 12:38:47 Z    0 days    1 attempt=
s
>=20
> ------------------------------------------------------------
> People who touched revisions under test:
>   Jan Beulich <jbeulich@suse.com>
>   Julien Grall <jgrall@amazon.com>
>=20
> jobs:
>  build-amd64-xsm                                              pass   =20
>  build-arm64-xsm                                              pass   =20
>  build-i386-xsm                                               pass   =20
>  build-amd64-xtf                                              pass   =20
>  build-amd64                                                  pass   =20
>  build-arm64                                                  pass   =20
>  build-armhf                                                  pass   =20
>  build-i386                                                   pass   =20
>  build-amd64-libvirt                                          pass   =20
>  build-arm64-libvirt                                          pass   =20
>  build-armhf-libvirt                                          pass   =20
>  build-i386-libvirt                                           pass   =20
>  build-amd64-prev                                             pass   =20
>  build-i386-prev                                              pass   =20
>  build-amd64-pvops                                            pass   =20
>  build-arm64-pvops                                            pass   =20
>  build-armhf-pvops                                            pass   =20
>  build-i386-pvops                                             pass   =20
>  test-xtf-amd64-amd64-1                                       pass   =20
>  test-xtf-amd64-amd64-2                                       pass   =20
>  test-xtf-amd64-amd64-3                                       pass   =20
>  test-xtf-amd64-amd64-4                                       pass   =20
>  test-xtf-amd64-amd64-5                                       pass   =20
>  test-amd64-amd64-xl                                          pass   =20
>  test-amd64-coresched-amd64-xl                                pass   =20
>  test-arm64-arm64-xl                                          pass   =20
>  test-armhf-armhf-xl                                          pass   =20
>  test-amd64-i386-xl                                           fail   =20
>  test-amd64-coresched-i386-xl                                 pass   =20
>  test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass   =20
>  test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass   =20
>  test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass   =20
>  test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail   =20
>  test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass   =20
>  test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass   =20
>  test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail   =20
>  test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  fail   =20
>  test-amd64-amd64-libvirt-xsm                                 pass   =20
>  test-arm64-arm64-libvirt-xsm                                 pass   =20
>  test-amd64-i386-libvirt-xsm                                  pass   =20
>  test-amd64-amd64-xl-xsm                                      pass   =20
>  test-arm64-arm64-xl-xsm                                      pass   =20
>  test-amd64-i386-xl-xsm                                       pass   =20
>  test-amd64-amd64-qemuu-nested-amd                            fail   =20
>  test-amd64-amd64-xl-pvhv2-amd                                pass   =20
>  test-amd64-i386-qemut-rhel6hvm-amd                           pass   =20
>  test-amd64-i386-qemuu-rhel6hvm-amd                           pass   =20
>  test-amd64-amd64-dom0pvh-xl-amd                              pass   =20
>  test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass   =20
>  test-amd64-i386-xl-qemut-debianhvm-amd64                     fail   =20
>  test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail   =20
>  test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass   =20
>  test-amd64-i386-freebsd10-amd64                              pass   =20
>  test-amd64-amd64-qemuu-freebsd11-amd64                       pass   =20
>  test-amd64-amd64-qemuu-freebsd12-amd64                       pass   =20
>  test-amd64-amd64-xl-qemuu-ovmf-amd64                         fail   =20
>  test-amd64-i386-xl-qemuu-ovmf-amd64                          fail   =20
>  test-amd64-amd64-xl-qemut-win7-amd64                         fail   =20
>  test-amd64-i386-xl-qemut-win7-amd64                          fail   =20
>  test-amd64-amd64-xl-qemuu-win7-amd64                         fail   =20
>  test-amd64-i386-xl-qemuu-win7-amd64                          fail   =20
>  test-amd64-amd64-xl-qemut-ws16-amd64                         fail   =20
>  test-amd64-i386-xl-qemut-ws16-amd64                          fail   =20
>  test-amd64-amd64-xl-qemuu-ws16-amd64                         fail   =20
>  test-amd64-i386-xl-qemuu-ws16-amd64                          fail   =20
>  test-armhf-armhf-xl-arndale                                  pass   =20
>  test-amd64-amd64-xl-credit1                                  pass   =20
>  test-arm64-arm64-xl-credit1                                  pass   =20
>  test-armhf-armhf-xl-credit1                                  pass   =20
>  test-amd64-amd64-xl-credit2                                  fail   =20
>  test-arm64-arm64-xl-credit2                                  pass   =20
>  test-armhf-armhf-xl-credit2                                  pass   =20
>  test-armhf-armhf-xl-cubietruck                               pass   =20
>  test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass   =20
>  test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         fail   =20
>  test-amd64-i386-freebsd10-i386                               pass   =20
>  test-amd64-amd64-qemuu-nested-intel                          pass   =20
>  test-amd64-amd64-xl-pvhv2-intel                              pass   =20
>  test-amd64-i386-qemut-rhel6hvm-intel                         pass   =20
>  test-amd64-i386-qemuu-rhel6hvm-intel                         pass   =20
>  test-amd64-amd64-dom0pvh-xl-intel                            pass   =20
>  test-amd64-amd64-libvirt                                     pass   =20
>  test-armhf-armhf-libvirt                                     pass   =20
>  test-amd64-i386-libvirt                                      pass   =20
>  test-amd64-amd64-livepatch                                   pass   =20
>  test-amd64-i386-livepatch                                    pass   =20
>  test-amd64-amd64-migrupgrade                                 pass   =20
>  test-amd64-i386-migrupgrade                                  pass   =20
>  test-amd64-amd64-xl-multivcpu                                pass   =20
>  test-armhf-armhf-xl-multivcpu                                pass   =20
>  test-amd64-amd64-pair                                        pass   =20
>  test-amd64-i386-pair                                         pass   =20
>  test-amd64-amd64-libvirt-pair                                pass   =20
>  test-amd64-i386-libvirt-pair                                 pass   =20
>  test-amd64-amd64-xl-pvshim                                   pass   =20
>  test-amd64-i386-xl-pvshim                                    fail   =20
>  test-amd64-amd64-pygrub                                      pass   =20
>  test-armhf-armhf-libvirt-qcow2                               pass   =20
>  test-amd64-amd64-xl-qcow2                                    pass   =20
>  test-arm64-arm64-libvirt-raw                                 pass   =20
>  test-armhf-armhf-libvirt-raw                                 pass   =20
>  test-amd64-i386-libvirt-raw                                  pass   =20
>  test-amd64-amd64-xl-rtds                                     fail   =20
>  test-armhf-armhf-xl-rtds                                     pass   =20
>  test-arm64-arm64-xl-seattle                                  pass   =20
>  test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             fail   =20
>  test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              fail   =20
>  test-amd64-amd64-xl-shadow                                   pass   =20
>  test-amd64-i386-xl-shadow                                    pass   =20
>  test-arm64-arm64-xl-thunderx                                 pass   =20
>  test-amd64-amd64-libvirt-vhd                                 pass   =20
>  test-arm64-arm64-xl-vhd                                      pass   =20
>  test-armhf-armhf-xl-vhd                                      pass   =20
>  test-amd64-i386-xl-vhd                                       pass   =20
>=20
>=20
> ------------------------------------------------------------
> sg-report-flight on osstest.test-lab.xenproject.org
> logs: /home/logs/logs
> images: /home/logs/images
>=20
> Logs, config files, etc. are available at
>     http://logs.test-lab.xenproject.org/osstest/logs
>=20
> Explanation of these reports, and of osstest in general, is at
>     http://xenbits.xen.org/gitweb/?p=3Dosstest.git;a=3Dblob;f=3DREADME.em=
ail;hb=3Dmaster
>     http://xenbits.xen.org/gitweb/?p=3Dosstest.git;a=3Dblob;f=3DREADME;hb=
=3Dmaster
>=20
> Test harness code can be found at
>     http://xenbits.xen.org/gitweb?p=3Dosstest.git;a=3Dsummary
>=20
>=20
> Not pushing.
>=20
> ------------------------------------------------------------
> commit 544e547a63175ac6ef7cc29c4f5bda88da024f69
> Author: Jan Beulich <jbeulich@suse.com>
> Date:   Tue Nov 23 13:26:29 2021 +0100
>=20
>     x86/P2M: deal with partial success of p2m_set_entry()
>    =20
>     M2P and PoD stats need to remain in sync with P2M; if an update succe=
eds
>     only partially, respective adjustments need to be made. If updates ge=
t
>     made before the call, they may also need undoing upon complete failur=
e
>     (i.e. including the single-page case).
>    =20
>     Log-dirty state would better also be kept in sync.
>    =20
>     Note that the change to set_typed_p2m_entry() may not be strictly
>     necessary (due to the order restriction enforced near the top of the
>     function), but is being kept here to be on the safe side.
>    =20
>     This is CVE-2021-28705 and CVE-2021-28709 / XSA-389.
>    =20
>     Signed-off-by: Jan Beulich <jbeulich@suse.com>
>     Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>     master commit: 74a11c43fd7e074b1f77631b446dd2115eacb9e8
>     master date: 2021-11-22 12:27:30 +0000
>=20
> commit 4429ca0b29f481a2abfcc81990c5ac1f96276cb2
> Author: Jan Beulich <jbeulich@suse.com>
> Date:   Tue Nov 23 13:26:22 2021 +0100
>=20
>     x86/PoD: handle intermediate page orders in p2m_pod_cache_add()
>    =20
>     p2m_pod_decrease_reservation() may pass pages to the function which
>     aren't 4k, 2M, or 1G. Handle all intermediate orders as well, to avoi=
d
>     hitting the BUG() at the switch() statement's "default" case.
>    =20
>     This is CVE-2021-28708 / part of XSA-388.
>    =20
>     Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher o=
rder ranges")
>     Signed-off-by: Jan Beulich <jbeulich@suse.com>
>     Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>     master commit: 8ec13f68e0b026863d23e7f44f252d06478bc809
>     master date: 2021-11-22 12:27:30 +0000
>=20
> commit 1da54becd5de7e55b2b66665bedc2f30964dbd33
> Author: Jan Beulich <jbeulich@suse.com>
> Date:   Tue Nov 23 13:26:12 2021 +0100
>=20
>     x86/PoD: deal with misaligned GFNs
>    =20
>     Users of XENMEM_decrease_reservation and XENMEM_populate_physmap aren=
't
>     required to pass in order-aligned GFN values. (While I consider this
>     bogus, I don't think we can fix this there, as that might break exist=
ing
>     code, e.g Linux'es swiotlb, which - while affecting PV only - until
>     recently had been enforcing only page alignment on the original
>     allocation.) Only non-PoD code paths (guest_physmap_{add,remove}_page=
(),
>     p2m_set_entry()) look to be dealing with this properly (in part by be=
ing
>     implemented inefficiently, handling every 4k page separately).
>    =20
>     Introduce wrappers taking care of splitting the incoming request into
>     aligned chunks, without putting much effort in trying to determine th=
e
>     largest possible chunk at every iteration.
>    =20
>     Also "handle" p2m_set_entry() failure for non-order-0 requests by
>     crashing the domain in one more place. Alongside putting a log messag=
e
>     there, also add one to the other similar path.
>    =20
>     Note regarding locking: This is left in the actual worker functions o=
n
>     the assumption that callers aren't guaranteed atomicity wrt acting on
>     multiple pages at a time. For mis-aligned GFNs gfn_lock() wouldn't ha=
ve
>     locked the correct GFN range anyway, if it didn't simply resolve to
>     p2m_lock(), and for well-behaved callers there continues to be only a
>     single iteration, i.e. behavior is unchanged for them. (FTAOD pulling
>     out just pod_lock() into p2m_pod_decrease_reservation() would result =
in
>     a lock order violation.)
>    =20
>     This is CVE-2021-28704 and CVE-2021-28707 / part of XSA-388.
>    =20
>     Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher o=
rder ranges")
>     Signed-off-by: Jan Beulich <jbeulich@suse.com>
>     Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>     master commit: 182c737b9ba540ebceb1433f3940fbed6eac4ea9
>     master date: 2021-11-22 12:27:30 +0000
>=20
> commit d02631a21530918501f7e11320667dde7829cbb5
> Author: Julien Grall <jgrall@amazon.com>
> Date:   Tue Nov 23 13:25:50 2021 +0100
>=20
>     xen/page_alloc: Harden assign_pages()
>    =20
>     domain_tot_pages() and d->max_pages are 32-bit values. While the orde=
r
>     should always be quite small, it would still be possible to overflow
>     if domain_tot_pages() is near to (2^32 - 1).
>    =20
>     As this code may be called by a guest via XENMEM_increase_reservation
>     and XENMEM_populate_physmap, we want to make sure the guest is not go=
ing
>     to be able to allocate more than it is allowed.
>    =20
>     Rework the allocation check to avoid any possible overflow. While the
>     check domain_tot_pages() < d->max_pages should technically not be
>     necessary, it is probably best to have it to catch any possible
>     inconsistencies in the future.
>    =20
>     This is CVE-2021-28706 / part of XSA-385.
>    =20
>     Signed-off-by: Julien Grall <jgrall@amazon.com>
>     Signed-off-by: Jan Beulich <jbeulich@suse.com>
>     Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>     master commit: 143501861d48e1bfef495849fd68584baac05849
>     master date: 2021-11-22 11:11:05 +0000
> (qemu changes not included)
>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:42:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:42:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230129.397850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmuz-0003sI-7k; Wed, 24 Nov 2021 07:42:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230129.397850; Wed, 24 Nov 2021 07:42:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpmuz-0003sB-2i; Wed, 24 Nov 2021 07:42:13 +0000
Received: by outflank-mailman (input) for mailman id 230129;
 Wed, 24 Nov 2021 07:42:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gGpx=QL=epam.com=prvs=1962e93d75=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpmux-0003s5-MN
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:42:11 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 070e17a2-4cfa-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:42:09 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AO7PBVf008644;
 Wed, 24 Nov 2021 07:42:05 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2110.outbound.protection.outlook.com [104.47.17.110])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3chh04g217-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 24 Nov 2021 07:42:05 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Wed, 24 Nov
 2021 07:42:03 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 07:42:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 070e17a2-4cfa-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JD5i2Srpd+rvP4wwBVgrV3ekTUppIN+iEgIs/dODPTo8fwIdd2KQubky/Qm4HhTTD2D3M4kXQOeCz6s7pfgJh2tzhQRdZzqLCvSXJSsItt/J9U4vpxoN4xvQ4A4A8t7d/bWs6uiUj7lOtZJGUeKgpZMLQJpyj07FH8oJgcuIgtiJmBQFBp9G2Gh2jCg5B5d/fd1EIFgISeE4ro48Jz2JOCI2GlSe+KhT/gVMNL80eJwPqFxQ+AL0zGqXrTq4BEhINwZbrf7N6DVMuK4mnQ825vW0Aop8jV0pTP7vXIl/EO6cSDlkEwDzW2zM2Fed2ANgFq/oI63H8uDBElFbjwc3SA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=o0shCi9PvvBK7++irRnu+3XzE6jZhudn+j0TqLxp0Qs=;
 b=CSfGwaNE+7wEX5CUgSfN9YqDFlMWrsea3CKGpZEZAD0gdW28Et6PoXdMeBP8OV5yzAIB/Xb0SP1zTUtQH0ySya9IH2d1J6sOHW0QekMflCYfvfGR8158CyYbFL0jxGKeZ7YGpL/wBSCRAsgHMe4YCybnVTuqrprSMjJ9VeiSH8iiOzGOhDYiLuAIl5zKtuV4KCqqPqEWrWrJRSJRgdulUruW7Lnn2gKPzpSgDfOyK7k/vmXc1/76T7vv6irOrbpG0RazHHDbi8oxWB0w8HoXzTmn5dRarpZF2XehAH4U/bnARhyRyKCLaj6PNA9PI/h29rqUwClrWQVjqqv3c+5c2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o0shCi9PvvBK7++irRnu+3XzE6jZhudn+j0TqLxp0Qs=;
 b=M0QHkUHhXdZJ5jv9eFtjfx2SprQHNF2O9xj4CE5oiavzrKje6L5TPITpgnHP53HLSrLu58dKaVTD0nuxrkjQVxzGIHq8/SSMeQSnZ4BfGu6yBYE384vxMNdcx30dU4NpFQ93MftSee9ziNjQpRBRSXG3WckmTlyx/068oWHzt48V8FgSTs90yK1EA5+r5VNB4obMGLoZ4hO+CsWQHzcdwtQKUyop8mmK+0xyVWWLN2i1I27TuEGuO26alCRmBTRzNKZ2VZ+ypin2GSazBVrEjvTErSOv4NTPKVEsbqpyt7X1MwSSKVRbVmLuMiogY89N9M2nsa9rNxu4dWKBBk99JQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Julien Grall <julien@xen.org>,
        Oleksandr Andrushchenko
	<andr2000@gmail.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "jbeulich@suse.com"
	<jbeulich@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>
Subject: Re: [PATCH v6 4/7] xen/arm: do not map PCI ECAM and MMIO space to
 Domain-0's p2m
Thread-Topic: [PATCH v6 4/7] xen/arm: do not map PCI ECAM and MMIO space to
 Domain-0's p2m
Thread-Index: AQHX0g8RG1dq/wi4G0+WRSJzntGF/KwRbf0AgAD7bgA=
Date: Wed, 24 Nov 2021 07:42:03 +0000
Message-ID: <1f44b6d2-e48e-de80-27cb-e4eb2f16dec9@epam.com>
References: <20211105063326.939843-1-andr2000@gmail.com>
 <20211105063326.939843-5-andr2000@gmail.com>
 <b85a3e6c-e48e-dd11-5488-f71c9d2422a7@xen.org>
In-Reply-To: <b85a3e6c-e48e-dd11-5488-f71c9d2422a7@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 256a9279-cc46-4481-c58b-08d9af1de829
x-ms-traffictypediagnostic: AM0PR03MB6324:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB632498C7C1CDB943106083BEE7619@AM0PR03MB6324.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:4714;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 7lYEdTpeGst3XtZXj8NJM9PWRtJ5DfDu6hs/Mp7ca7T9nR76/Wr1cbZ1S1j8kiixJ3nxeTUiKS6l5jpFXbETNNXf6HdsPYqd7kN+P08BNJ1l0D9jEReohR85lzYD3HkNkwxqael8xUegMZ1wyZBDiEVjfZxrV9ABClzPAiC1253O41PQ3C9hj/I2hItT7Fp3KHJCwnmjoLEL6MSfnuYQcs8D6BiyC2YnUVqnKDKShp6W06+6OLt+7Wa9dRCknyvLJeaHFKIVns5InOBG4vJRyqQq/1kbJNZMHIiFLoZNGpugYoQ4CqGdz14gxy8qDHm4DwvB7zjD/79fos0dgSHFRsLeS+IxqoSaxYG632TeQxFKBvhjR6ByOIf0egQ2l0ElqgR3o4mk5ZX/0HGlNnWr4iKY4Dlz/nSTIUnnsO4OE25FsYbh0AiqWN19T+CcRZ5mNUtFTV7dqLt5UER2tQmytxwLWMeHFyH2kRjzkkukIEKSQDVEadRybhvOhUUb4o3Z328b5M+yoG5zxt9UEpLsIS6qf3A0rBaDAJwx1Hy26EMnGqry7CZyEx929p0fSn5mmsWShCikJq9ZdbHZnMvPe7MihR93y+8GdFed3dxvFeGjx+yJp371yof1EHnRTxcwogBFjXm1UPOTVIkSpahaOnd8Ijo2pyPWjldz3OjTYFrcY4NZEa4qU+Iaol5Hce2wBn/1bbs2G2SQt6Rk3qrequHiS1yqZrzCzkrqWpvpODzrD1njwm68HSGyxgyhFju3Qb3XNH1dTBIHm7qTEh/AKsGjHTJyKx3oOqTR6oehgXGI5dT1FZdINymoTzJXKWvGsLuDIvZ340QeCqa6ONmA8CjWVWWC+nf8/sWZVOdsBNo=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(71200400001)(30864003)(26005)(2616005)(83380400001)(38100700002)(6506007)(76116006)(53546011)(54906003)(110136005)(508600001)(8676002)(36756003)(186003)(966005)(6486002)(91956017)(64756008)(5660300002)(38070700005)(8936002)(122000001)(66556008)(31686004)(66946007)(7416002)(2906002)(4326008)(6512007)(66476007)(316002)(31696002)(66446008)(39920500001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?NHM1TTQvT1UwMm9IVXV2d0d4NW5ScGV3cWJQRFlHSUxwWHpFUkY4SzBxbXBv?=
 =?utf-8?B?bTJ1dXhhVlRjT1dkeGszU1J4VkE3b3hwZ1JtQXR3cUdZTVdMV3hZZTVJS3A0?=
 =?utf-8?B?QmpJV0o4MVFhTEdEQ2piQmhFaEJtM3NVSW5hU2lEVndQUiswL0d4NEthN3BU?=
 =?utf-8?B?TTlPTUVuaFd2QXZFeHpJelFIUGVDNHI4WlhNcGtwQ0N0Y1BwNjRVOHFqWHF2?=
 =?utf-8?B?d1Juc2J0bTZXV1VSS0JYZnQ4L05yV1pkNENRSE1XSytrOHJJZEwwd2J0N25Z?=
 =?utf-8?B?Z0loc1BSVW5vUWJsNEJnVGxnc1l3TzlLWmtmTk1JNGZGanBuc0JhNE1NMUJt?=
 =?utf-8?B?UnR2ZUgzaTQ2QWZPaVUzdW82YzFoWnNETnBQMVZYb3U2SDhnQmxRMjl2OVlM?=
 =?utf-8?B?QVQ3Vkw0WjZGZDdodmJkNElwaEhLZkd3b2NKRlBIVGNkTTI4Y2JMYmE5TmR4?=
 =?utf-8?B?RW9jMS9wSnlOYURlKzhtZWxvSXQyanNVdmpKTTBnbWlUWWovOEROY3hKOW14?=
 =?utf-8?B?Q2pQNU9FL05FdG96Ylp3bHJoT2x3OTR3UFp1Qno5NFVNODZxbnRkSTNXalFo?=
 =?utf-8?B?NllIbktxTGlVZ1VSRFZGREhYZWZHeUF0SWpwc0tENUNkRW5wRTZkcjg0VjB0?=
 =?utf-8?B?SEZVWkxkL2FadXhkTkFueG1DRklzem8wWHRpQ21iZmE0YklVNVJEYUJZMm15?=
 =?utf-8?B?VW5UNTNtNjVvbGpIazdESVg0cGNNdVkvV3dyY0ErNXg4WWRkd0cvVTg5aHMy?=
 =?utf-8?B?dlQxbWdSUmpLTUYwOEFQSEw5bUNwZnpIaDgrdm5NbWhnVkx5SkQ5SUxwdWlW?=
 =?utf-8?B?VHdoSG5OQm14cnJLeHNlMTBRbVBsc1gyMHVmNndkaG5pWGp1SXMwMmxEUWpt?=
 =?utf-8?B?OW9vT2ZobmZLVnNKS3R2dHhkN095QzUyZkJtNDlpdXFvVmJadStPZ3dTTjUw?=
 =?utf-8?B?aHhRMm5MMVdKY0s1NUtMUjV6dXJUWHk5RE5qRmx3cGgyVjR4Z2VyRE16eGtK?=
 =?utf-8?B?OFhKWVduQnUrcjJPQWVRZnlTQWxQMzVPUm1FaGtOT1c4cFJzMFlWT2wwMEFO?=
 =?utf-8?B?Q25SdkpsZW4ydndPV1hXeHNDc3hYNE5zWmdhRmRUUFZ3S0hpcXU3YUJoSVpY?=
 =?utf-8?B?d3NqeWFOM3FmMFRPRlhSdWJuU2k4MWJWNnRLbWp5OTE1c08vOEQ5Rng5Y1pB?=
 =?utf-8?B?UElzWFhKN01RVlN5UGxWYUdqZ00vVnE0MkJpZGlRbkJ4cXpkZGtNUlhZTlNI?=
 =?utf-8?B?VFhsb2xDR2tsVEs0ZHZQYmQzTW5YaVpWVVhqNWdKRU92aTNVUjVQOXRXenAy?=
 =?utf-8?B?bmRKMjRBa1puTHNUVUxPUjBiS1VpL3RaSWlVcEJVM1RtRlU2UjFlMzJBOGU3?=
 =?utf-8?B?YlRna294WUFZUzg1NHJtb1hrM2toVzdEZnZOWkh5K1cyRGRVZzh3clM0UEth?=
 =?utf-8?B?MEJtWjdEZ1NURU50Nld6SDgvc0l3L01ISXNTdHpaV1hYbnYyTStNZWhBL0tU?=
 =?utf-8?B?bUlyV3ZmV1h5eUNwUXo3WEhRVkkxQUQxUjRMNUVoZWo3NUpkeE5RWG5mUFJV?=
 =?utf-8?B?NmVsb2NlK016blhEYUgveVhkemttMEFsVEduNytKdzVDMUZZUmpWckltblda?=
 =?utf-8?B?b2ZGYUUxcXdDWDBySHgvS3FSdmh2NjQ2MDhhZ0JlR2NnaFZnSnV1Wi93NE1z?=
 =?utf-8?B?VHBZbVpxQzVUdGNXYzVYaExWVy9Ea1Bqa3l1OVBqWmhyMUtzditmR0ZLekhq?=
 =?utf-8?B?KzZoRXhwY0RwSTAwMGJWY1lmRFprUWNrejVPZjFEanFpQWlTcUdsTEdaZU45?=
 =?utf-8?B?ZEJIZzRYMmR1dVczUEJia3A0OHNUdzFsOE9KRjdpY0E3b2FIMjdDd281RTlD?=
 =?utf-8?B?K20wT3g0dE9VK2RZTDlBUGkwcTU2NWFmTkVjVGNGQUd4VGZBdmp0V3d3OXda?=
 =?utf-8?B?Ujk5WE10bldFWTJ6SitnTFF6alNaVndaZlNEbDE5SlhvcmdtdHk5cmFSa0Zw?=
 =?utf-8?B?NkNDaUxwaFlNOVFoU3ZrQ2M4bjJFT2lrVGx5b2VWVEd1Vld3SE50MXIzMmxP?=
 =?utf-8?B?YmxmWU5mWWNENkhXSEhZeUs1UDFNdnZwTDc3SytTcnRHNk1MZmlHa3FwTWlW?=
 =?utf-8?B?QkpYTDVCelE4N2lDVWk5VlV4MktLL1VwUC94ZVhicVlQMjdBUkVZNEU0M2c4?=
 =?utf-8?B?WkF6dDZUZVFSQUxxWFJDSjV6RWxuMUF6MEEwQXdEWWJaVVJBc0gxalp5Nzdo?=
 =?utf-8?B?MmpsTDBiOGg0Vyt6UHdBcG1QeUJJSURvcHdoRTd4UFF1YzdydjE3TWlGVWdz?=
 =?utf-8?B?dTFhekhHTlBIdlZwNk4rYkdudHpkZ0pxWk5ZY2VMQ1BoS0toT3pPdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <99ED4BDDA860D640A66130AA48447763@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 256a9279-cc46-4481-c58b-08d9af1de829
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 07:42:03.1827
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /agIul6AjnPn1sc4vE/W+MKsIyYT2Hh4ZIjV19zavaJ/ZR8xng4SaAGGk9HZFuR3cDIHBpO69p5eNln8IDH9RCmTb0GVg/TT2lPuHjFaLaoSPBTAEaGofYqzclKfhgD3
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6324
X-Proofpoint-GUID: 1v3s_uEFyqJPEaql_tGg5LeFGumE9KB-
X-Proofpoint-ORIG-GUID: 1v3s_uEFyqJPEaql_tGg5LeFGumE9KB-
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-24_02,2021-11-23_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501
 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0
 clxscore=1015 impostorscore=0 mlxscore=0 adultscore=0 mlxlogscore=999
 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111240043

SGksIEp1bGllbiENCg0KT24gMjMuMTEuMjEgMTg6NDIsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4g
SGkgT2xla3NhbmRyLA0KPg0KPiBPbiAwNS8xMS8yMDIxIDA2OjMzLCBPbGVrc2FuZHIgQW5kcnVz
aGNoZW5rbyB3cm90ZToNCj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2Fu
ZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+DQo+PiBQQ0kgaG9zdCBicmlkZ2VzIGFyZSBz
cGVjaWFsIGRldmljZXMgaW4gdGVybXMgb2YgaW1wbGVtZW50aW5nIFBDSQ0KPj4gcGFzc3Rocm91
Z2guIEFjY29yZGluZyB0byBbMV0gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZGVwZW5kcyBv
bg0KPj4gRG9tYWluLTAgdG8gcGVyZm9ybSB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHJlbGV2
YW50IFBDSSBob3N0DQo+PiBicmlkZ2UgaGFyZHdhcmUgYW5kIHBlcmZvcm0gUENJIGRldmljZSBl
bnVtZXJhdGlvbi4gSW4gb3JkZXIgdG8NCj4+IGFjaGlldmUgdGhhdCBvbmUgb2YgdGhlIHJlcXVp
cmVkIGNoYW5nZXMgaXMgdG8gbm90IG1hcCBhbGwgdGhlIG1lbW9yeQ0KPj4gcmFuZ2VzIGluIG1h
cF9yYW5nZV90b19kb21haW4gYXMgd2UgdHJhdmVyc2UgdGhlIGRldmljZSB0cmVlIG9uIHN0YXJ0
dXANCj4+IGFuZCBwZXJmb3JtIHNvbWUgYWRkaXRpb25hbCBjaGVja3MgaWYgdGhlIHJhbmdlIG5l
ZWRzIHRvIGJlIG1hcHBlZCB0bw0KPj4gRG9tYWluLTAuDQo+Pg0KPj4gVGhlIGdlbmVyaWMgUENJ
IGhvc3QgY29udHJvbGxlciBkZXZpY2UgdHJlZSBiaW5kaW5nIHNheXMgWzJdOg0KPj4gLSByYW5n
ZXM6IEFzIGRlc2NyaWJlZCBpbiBJRUVFIFN0ZCAxMjc1LTE5OTQsIGJ1dCBtdXN0IHByb3ZpZGUN
Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF0IGxlYXN0IGEgZGVmaW5pdGlvbiBvZiBub24tcHJl
ZmV0Y2hhYmxlIG1lbW9yeS4gT25lDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvciBib3RoIG9m
IHByZWZldGNoYWJsZSBNZW1vcnkgYW5kIElPIFNwYWNlIG1heSBhbHNvDQo+PiDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBiZSBwcm92aWRlZC4NCj4+DQo+PiAtIHJlZ8KgwqAgOiBUaGUgQ29uZmlndXJh
dGlvbiBTcGFjZSBiYXNlIGFkZHJlc3MgYW5kIHNpemUsIGFzIGFjY2Vzc2VkDQo+PiDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBmcm9tIHRoZSBwYXJlbnQgYnVzLsKgIFRoZSBiYXNlIGFkZHJlc3MgY29y
cmVzcG9uZHMgdG8NCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRoZSBmaXJzdCBidXMgaW4gdGhl
ICJidXMtcmFuZ2UiIHByb3BlcnR5LsKgIElmIG5vDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCAi
YnVzLXJhbmdlIiBpcyBzcGVjaWZpZWQsIHRoaXMgd2lsbCBiZSBidXMgMCAodGhlIGRlZmF1bHQp
Lg0KPj4NCj4+IMKgRnJvbSB0aGUgYWJvdmUgbm9uZSBvZiB0aGUgbWVtb3J5IHJhbmdlcyBmcm9t
IHRoZSAicmFuZ2VzIiBwcm9wZXJ0eQ0KPj4gbmVlZHMgdG8gYmUgbWFwcGVkIHRvIERvbWFpbi0w
IGF0IHN0YXJ0dXAgYXMgTU1JTyBtYXBwaW5nIGlzIGdvaW5nIHRvDQo+PiBiZSBoYW5kbGVkIGR5
bmFtaWNhbGx5IGJ5IHZQQ0kgYXMgd2UgYXNzaWduIFBDSSBkZXZpY2VzLCBlLmcuIGVhY2gNCj4+
IGRldmljZSBhc3NpZ25lZCB0byBEb21haW4tMC9ndWVzdCB3aWxsIGhhdmUgaXRzIE1NSU9zIG1h
cHBlZC91bm1hcHBlZA0KPj4gYXMgbmVlZGVkIGJ5IFhlbi4NCj4+DQo+PiBUaGUgInJlZyIgcHJv
cGVydHkgY292ZXJzIG5vdCBvbmx5IEVDQU0gc3BhY2UsIGJ1dCBtYXkgYWxzbyBoYXZlIG90aGVy
DQo+PiB0aGVuIHRoZSBjb25maWd1cmF0aW9uIG1lbW9yeSByYW5nZXMgZGVzY3JpYmVkLCBmb3Ig
ZXhhbXBsZSBbM106DQo+PiAtIHJlZzogU2hvdWxkIGNvbnRhaW4gcmNfZGJpLCBjb25maWcgcmVn
aXN0ZXJzIGxvY2F0aW9uIGFuZCBsZW5ndGguDQo+PiAtIHJlZy1uYW1lczogTXVzdCBpbmNsdWRl
IHRoZSBmb2xsb3dpbmcgZW50cmllczoNCj4+IMKgwqDCoCAicmNfZGJpIjogY29udHJvbGxlciBj
b25maWd1cmF0aW9uIHJlZ2lzdGVyczsNCj4+IMKgwqDCoCAiY29uZmlnIjogUENJZSBjb25maWd1
cmF0aW9uIHNwYWNlIHJlZ2lzdGVycy4NCj4+DQo+PiBUaGlzIHBhdGNoIG1ha2VzIGl0IHBvc3Np
YmxlIHRvIG5vdCBtYXAgYWxsIHRoZSByYW5nZXMgZnJvbSB0aGUNCj4+ICJyYW5nZXMiIHByb3Bl
cnR5IGFuZCBhbHNvIEVDQU0gZnJvbSB0aGUgInJlZyIuIEFsbCB0aGUgcmVzdCBmcm9tIHRoZQ0K
Pj4gInJlZyIgcHJvcGVydHkgc3RpbGwgbmVlZHMgdG8gYmUgbWFwcGVkIHRvIERvbWFpbi0wLCBz
byB0aGUgUENJDQo+PiBob3N0IGJyaWRnZSByZW1haW5zIGZ1bmN0aW9uYWwgaW4gRG9tYWluLTAu
DQo+DQo+IFRoZSBjb21taXQgbWVzc2FnZSBpcyBleHBsYWluaW5nIHRoZSBwcm9ibGVtYXRpYyBx
dWl0ZSB3ZWxsICh0aGFua3MgZm9yIHRoYXQpLiBJIHRoaW5rIGl0IGFsc28gd2FudHMgdG8gZXhw
bGFpbiB0aGUgYXBwcm9hY2ggdGFrZW4gKHRoZSBmYWN0IHRoYXQgd2UgYXJlIGRlZmVycmluZyB0
aGUgbWFwcGluZyBmb3IgaG9zdGJyaWRnZXMpLg0KV2lsbCBhZGQNCj4NCj4+DQo+PiBbMV0gaHR0
cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJj
aGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAyMC0wNy9tc2cwMDc3Ny5odG1sX187ISFHRl8yOWRiY1FJ
VUJQQSFtZEtsZFJERE1jNjJabHIzekhQZElYZVhqSE5JMkg2cEdFN1pITnZiSzN4aXpDTmUwbWhW
N2pNRjVXTEdaN2JBNUI0N3RLNHpGQSQgW2xpc3RzWy5deGVucHJvamVjdFsuXW9yZ10NCj4+IFsy
XSBodHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2Mv
RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9ob3N0LWdlbmVyaWMtcGNpLnR4
dF9fOyEhR0ZfMjlkYmNRSVVCUEEhbWRLbGRSRERNYzYyWmxyM3pIUGRJWGVYakhOSTJINnBHRTda
SE52YkszeGl6Q05lMG1oVjdqTUY1V0xHWjdiQTVCN1V3U0tTd3ckIFtrZXJuZWxbLl1vcmddDQo+
PiBbM10gaHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vd3d3Lmtlcm5lbC5vcmcv
ZG9jL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvaGlzaWxpY29uLXBjaWUu
dHh0X187ISFHRl8yOWRiY1FJVUJQQSFtZEtsZFJERE1jNjJabHIzekhQZElYZVhqSE5JMkg2cEdF
N1pITnZiSzN4aXpDTmUwbWhWN2pNRjVXTEdaN2JBNUI2Tml6c05YUSQgW2tlcm5lbFsuXW9yZ10N
Cj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRy
X2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+PiAtLS0NCj4+IFNpbmNlIHY1Og0KPj4gLSByZW1v
dmUgc29tZSBuZWVkX21hcHBpbmcgbG9jYWwgdmFyaWFibGVzDQo+PiAtIHVzZSBvd25fZGV2aWNl
IGluIGhhbmRsZV9kZXZpY2UNCj4+IC0gYWRkIF9faW5pdCBmb3IgcGNpX2VjYW1fbmVlZF9wMm1f
aHdkb21fbWFwcGluZw0KPj4gLSBtYWtlIHBjaV9ob3N0X2JyaWRnZV9tYXBwaW5ncyB1c2UgcDJt
X21taW9fZGlyZWN0X2RldiBkaXJlY3RseQ0KPj4gU2luY2UgdjQ6DQo+PiAtIHVwZGF0ZSBza2lw
X21hcHBpbmcgY29tbWVudA0KPj4gLSBhZGQgY29tbWVudCB3aHkgd2UgbmVlZCB0byBtYXAgaW50
ZXJydXB0cyB0byBEb20wDQo+PiBTaW5jZSB2MzoNCj4+IMKgIC0gcGFzcyBzdHJ1Y3QgbWFwX3Jh
bmdlX2RhdGEgdG8gbWFwX2R0X2lycV90b19kb21haW4NCj4+IMKgIC0gcmVtb3ZlIHJlZHVuZGFu
dCBjaGVjayBmcm9tIG1hcF9yYW5nZV90b19kb21haW4NCj4+IMKgIC0gZml4IGhhbmRsZV9kZXZp
Y2UncyAuc2tpcF9tYXBwaW5nDQo+PiBTaW5jZSB2MjoNCj4+IMKgIC0gcmVtb3ZlZCBjaGVjayBp
biBtYXBfcmFuZ2VfdG9fZG9tYWluIGZvciBQQ0lfREVWDQo+PiDCoMKgwqAgYW5kIG1vdmVkIGl0
IHRvIGhhbmRsZV9kZXZpY2UsIHNvIHRoZSBjb2RlIGlzDQo+PiDCoMKgwqAgc2ltcGxlcg0KPj4g
wqAgLSBzL21hcF9wY2lfYnJpZGdlL3NraXBfbWFwcGluZw0KPj4gwqAgLSBleHRlbmRlZCBjb21t
ZW50IGluIHBjaV9ob3N0X2JyaWRnZV9tYXBwaW5ncw0KPj4gwqAgLSBtaW5vciBjb2RlIHJlc3Ry
dWN0dXJlIGluIGNvbnN0cnVjdF9kb20wDQo+PiDCoCAtIHMvLm5lZWRfcDJtX21hcHBpbmcvLm5l
ZWRfcDJtX2h3ZG9tX21hcHBpbmcgYW5kIHJlbGF0ZWQNCj4+IMKgwqDCoCBjYWxsYmFja3MNCj4+
IMKgIC0gdW5zaWduZWQgaW50IGk7IGluIHBjaV9ob3N0X2JyaWRnZV9tYXBwaW5ncw0KPj4gU2lu
Y2UgdjE6DQo+PiDCoCAtIEFkZGVkIGJldHRlciBkZXNjcmlwdGlvbiBvZiB3aHkgYW5kIHdoYXQg
bmVlZHMgdG8gYmUgbWFwcGVkIGludG8NCj4+IMKgwqDCoCBEb21haW4tMCdzIHAybSBhbmQgd2hh
dCBkb2Vzbid0DQo+PiDCoCAtIERvIG5vdCBkbyBhbnkgbWFwcGluZ3MgZm9yIFBDSSBkZXZpY2Vz
IHdoaWxlIHRyYXZlcnNpbmcgdGhlIERUDQo+PiDCoCAtIFdhbGsgYWxsIHRoZSBicmlkZ2VzIGFu
ZCBtYWtlIHJlcXVpcmVkIG1hcHBpbmdzIGluIG9uZSBnbw0KPj4gLS0tDQo+PiDCoCB4ZW4vYXJj
aC9hcm0vZG9tYWluX2J1aWxkLmPCoMKgwqDCoMKgwqDCoCB8IDY3ICsrKysrKysrKysrKysrKysr
LS0tLS0tLS0tLS0tLQ0KPj4gwqAgeGVuL2FyY2gvYXJtL3BjaS9lY2FtLmPCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHwgMTQgKysrKysrKw0KPj4gwqAgeGVuL2FyY2gvYXJtL3BjaS9wY2ktaG9zdC1j
b21tb24uYyB8IDUwICsrKysrKysrKysrKysrKysrKysrKysNCj4+IMKgIHhlbi9hcmNoL2FybS9w
Y2kvcGNpLWhvc3QtenlucW1wLmMgfMKgIDEgKw0KPj4gwqAgeGVuL2luY2x1ZGUvYXNtLWFybS9w
Y2kuaMKgwqDCoMKgwqDCoMKgwqDCoCB8IDEwICsrKysrDQo+PiDCoCB4ZW4vaW5jbHVkZS9hc20t
YXJtL3NldHVwLmjCoMKgwqDCoMKgwqDCoCB8IDEzICsrKysrKw0KPj4gwqAgNiBmaWxlcyBjaGFu
Z2VkLCAxMjYgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVp
bGQuYw0KPj4gaW5kZXggZjdmY2IxNDAwYzE5Li5jN2Q5OTI0NTZjYTcgMTAwNjQ0DQo+PiAtLS0g
YS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9kb21h
aW5fYnVpbGQuYw0KPj4gQEAgLTEwLDcgKzEwLDYgQEANCj4+IMKgICNpbmNsdWRlIDxhc20vcmVn
cy5oPg0KPj4gwqAgI2luY2x1ZGUgPHhlbi9lcnJuby5oPg0KPj4gwqAgI2luY2x1ZGUgPHhlbi9l
cnIuaD4NCj4+IC0jaW5jbHVkZSA8eGVuL2RldmljZV90cmVlLmg+DQo+DQo+IFlvdSBhcmUgc3Rp
bGwgdXNpbmcgaGVscGVycyBkZWZpbmVkIGJ5IHRoaXMgaGVhZGVyLiBTbyBJIHdvdWxkIGtlZXAg
dGhlIGluY2x1ZGUgZXZlbiBpZiBpdCBtYXkgaGF2ZSBiZWVuIGluY2x1ZGVkIGJ5IGFub3RoZXIg
b25lLg0KU3VyZSwgd2lsbCByZW1vdmUgdGhpcyBjaGFuZ2UNCj4NCj4+IMKgICNpbmNsdWRlIDx4
ZW4vbGliZmR0L2xpYmZkdC5oPg0KPj4gwqAgI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4N
Cj4+IMKgICNpbmNsdWRlIDx4ZW4vaW9jYXAuaD4NCj4+IEBAIC01MSwxMiArNTAsNiBAQCBzdGF0
aWMgaW50IF9faW5pdCBwYXJzZV9kb20wX21lbShjb25zdCBjaGFyICpzKQ0KPj4gwqAgfQ0KPj4g
wqAgY3VzdG9tX3BhcmFtKCJkb20wX21lbSIsIHBhcnNlX2RvbTBfbWVtKTsNCj4+IMKgIC1zdHJ1
Y3QgbWFwX3JhbmdlX2RhdGENCj4+IC17DQo+PiAtwqDCoMKgIHN0cnVjdCBkb21haW4gKmQ7DQo+
PiAtwqDCoMKgIHAybV90eXBlX3QgcDJtdDsNCj4+IC19Ow0KPj4gLQ0KPj4gwqAgLyogT3ZlcnJp
ZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICov
DQo+PiDCoCAjdW5kZWYgdmlydF90b19tZm4NCj4+IMKgICNkZWZpbmUgdmlydF90b19tZm4odmEp
IF9tZm4oX192aXJ0X3RvX21mbih2YSkpDQo+PiBAQCAtMTY3NiwxMCArMTY2OSwxMCBAQCBzdGF0
aWMgaW50IF9faW5pdCBtYXBfZHRfaXJxX3RvX2RvbWFpbihjb25zdCBzdHJ1Y3QgZHRfZGV2aWNl
X25vZGUgKmRldiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCBkdF9p
cnEgKmR0X2lycSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgKmRhdGEpDQo+PiDC
oCB7DQo+PiAtwqDCoMKgIHN0cnVjdCBkb21haW4gKmQgPSBkYXRhOw0KPj4gK8KgwqDCoCBzdHJ1
Y3QgbWFwX3JhbmdlX2RhdGEgKm1yX2RhdGEgPSBkYXRhOw0KPj4gK8KgwqDCoCBzdHJ1Y3QgZG9t
YWluICpkID0gbXJfZGF0YS0+ZDsNCj4+IMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IGlycSA9IGR0
X2lycS0+aXJxOw0KPj4gwqDCoMKgwqDCoCBpbnQgcmVzOw0KPj4gLcKgwqDCoCBib29sIG5lZWRf
bWFwcGluZyA9ICFkdF9kZXZpY2VfZm9yX3Bhc3N0aHJvdWdoKGRldik7DQo+PiDCoCDCoMKgwqDC
oMKgIGlmICggaXJxIDwgTlJfTE9DQUxfSVJRUyApDQo+PiDCoMKgwqDCoMKgIHsNCj4+IEBAIC0x
Njk4LDE4ICsxNjkxLDE2IEBAIHN0YXRpYyBpbnQgX19pbml0IG1hcF9kdF9pcnFfdG9fZG9tYWlu
KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqZGV2LA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKg
IHJldHVybiByZXM7DQo+PiDCoMKgwqDCoMKgIH0NCj4+IMKgIC3CoMKgwqAgcmVzID0gbWFwX2ly
cV90b19kb21haW4oZCwgaXJxLCBuZWVkX21hcHBpbmcsIGR0X25vZGVfbmFtZShkZXYpKTsNCj4+
ICvCoMKgwqAgcmVzID0gbWFwX2lycV90b19kb21haW4oZCwgaXJxLCAhbXJfZGF0YS0+c2tpcF9t
YXBwaW5nLCBkdF9ub2RlX25hbWUoZGV2KSk7DQo+PiDCoCDCoMKgwqDCoMKgIHJldHVybiAwOw0K
Pj4gwqAgfQ0KPj4gwqAgLXN0YXRpYyBpbnQgX19pbml0IG1hcF9yYW5nZV90b19kb21haW4oY29u
c3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYsDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0
IGFkZHIsIHU2NCBsZW4sDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdm9pZCAqZGF0YSkNCj4+ICtp
bnQgX19pbml0IG1hcF9yYW5nZV90b19kb21haW4oY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2Rl
ICpkZXYsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHU2NCBhZGRyLCB1NjQgbGVuLCB2b2lkICpkYXRhKQ0KPj4gwqAgew0K
Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgbWFwX3JhbmdlX2RhdGEgKm1yX2RhdGEgPSBkYXRhOw0KPj4g
wqDCoMKgwqDCoCBzdHJ1Y3QgZG9tYWluICpkID0gbXJfZGF0YS0+ZDsNCj4+IC3CoMKgwqAgYm9v
bCBuZWVkX21hcHBpbmcgPSAhZHRfZGV2aWNlX2Zvcl9wYXNzdGhyb3VnaChkZXYpOw0KPj4gwqDC
oMKgwqDCoCBpbnQgcmVzOw0KPj4gwqAgwqDCoMKgwqDCoCByZXMgPSBpb21lbV9wZXJtaXRfYWNj
ZXNzKGQsIHBhZGRyX3RvX3BmbihhZGRyKSwNCj4+IEBAIC0xNzIzLDcgKzE3MTQsNyBAQCBzdGF0
aWMgaW50IF9faW5pdCBtYXBfcmFuZ2VfdG9fZG9tYWluKGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vf
bm9kZSAqZGV2LA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXM7DQo+PiDCoMKgwqDC
oMKgIH0NCj4+IMKgIC3CoMKgwqAgaWYgKCBuZWVkX21hcHBpbmcgKQ0KPj4gK8KgwqDCoCBpZiAo
ICFtcl9kYXRhLT5za2lwX21hcHBpbmcgKQ0KPj4gwqDCoMKgwqDCoCB7DQo+PiDCoMKgwqDCoMKg
wqDCoMKgwqAgcmVzID0gbWFwX3JlZ2lvbnNfcDJtdChkLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnYWRkcl90b19n
Zm4oYWRkciksDQo+PiBAQCAtMTc1MiwyMyArMTc0MywyMSBAQCBzdGF0aWMgaW50IF9faW5pdCBt
YXBfcmFuZ2VfdG9fZG9tYWluKGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqZGV2LA0KPj4g
wqDCoCAqIHRoZW4gd2UgbWF5IG5lZWQgdG8gcGVyZm9ybSBhZGRpdGlvbmFsIG1hcHBpbmdzIGlu
IG9yZGVyIHRvIG1ha2UNCj4+IMKgwqAgKiB0aGUgY2hpbGQgcmVzb3VyY2VzIGF2YWlsYWJsZSB0
byBkb21haW4gMC4NCj4+IMKgwqAgKi8NCj4+IC1zdGF0aWMgaW50IF9faW5pdCBtYXBfZGV2aWNl
X2NoaWxkcmVuKHN0cnVjdCBkb21haW4gKmQsDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qg
c3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYsDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcDJtX3R5
cGVfdCBwMm10KQ0KPj4gK3N0YXRpYyBpbnQgX19pbml0IG1hcF9kZXZpY2VfY2hpbGRyZW4oY29u
c3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ry
dWN0IG1hcF9yYW5nZV9kYXRhICptcl9kYXRhKQ0KPj4gwqAgew0KPj4gLcKgwqDCoCBzdHJ1Y3Qg
bWFwX3JhbmdlX2RhdGEgbXJfZGF0YSA9IHsgLmQgPSBkLCAucDJtdCA9IHAybXQgfTsNCj4+IC3C
oMKgwqAgaW50IHJldDsNCj4+IC0NCj4+IMKgwqDCoMKgwqAgaWYgKCBkdF9kZXZpY2VfdHlwZV9p
c19lcXVhbChkZXYsICJwY2kiKSApDQo+PiDCoMKgwqDCoMKgIHsNCj4+ICvCoMKgwqDCoMKgwqDC
oCBpbnQgcmV0Ow0KPj4gKw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGR0X2RwcmludGsoIk1hcHBp
bmcgY2hpbGRyZW4gb2YgJXMgdG8gZ3Vlc3RcbiIsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIGR0X25vZGVfZnVsbF9uYW1lKGRldikpOw0KPj4gwqAgLcKgwqDC
oMKgwqDCoMKgIHJldCA9IGR0X2Zvcl9lYWNoX2lycV9tYXAoZGV2LCAmbWFwX2R0X2lycV90b19k
b21haW4sIGQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHJldCA9IGR0X2Zvcl9lYWNoX2lycV9tYXAo
ZGV2LCAmbWFwX2R0X2lycV90b19kb21haW4sIG1yX2RhdGEpOw0KPj4gwqDCoMKgwqDCoMKgwqDC
oMKgIGlmICggcmV0IDwgMCApDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g
cmV0Ow0KPj4gwqAgLcKgwqDCoMKgwqDCoMKgIHJldCA9IGR0X2Zvcl9lYWNoX3JhbmdlKGRldiwg
Jm1hcF9yYW5nZV90b19kb21haW4sICZtcl9kYXRhKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXQg
PSBkdF9mb3JfZWFjaF9yYW5nZShkZXYsICZtYXBfcmFuZ2VfdG9fZG9tYWluLCBtcl9kYXRhKTsN
Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIHJldCA8IDAgKQ0KPj4gwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgcmV0dXJuIHJldDsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gQEAgLTE4NDgsMTQg
KzE4MzcsMjggQEAgc3RhdGljIGludCBfX2luaXQgaGFuZGxlX2RldmljZShzdHJ1Y3QgZG9tYWlu
ICpkLCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldiwNCj4+IMKgwqDCoMKgwqAgdW5zaWduZWQg
aW50IGk7DQo+PiDCoMKgwqDCoMKgIGludCByZXM7DQo+PiDCoMKgwqDCoMKgIHU2NCBhZGRyLCBz
aXplOw0KPj4gLcKgwqDCoCBib29sIG5lZWRfbWFwcGluZyA9ICFkdF9kZXZpY2VfZm9yX3Bhc3N0
aHJvdWdoKGRldik7DQo+PiArwqDCoMKgIGJvb2wgb3duX2RldmljZSA9ICFkdF9kZXZpY2VfZm9y
X3Bhc3N0aHJvdWdoKGRldik7DQo+PiArwqDCoMKgIC8qDQo+PiArwqDCoMKgwqAgKiBGb3IgUENJ
IHBhc3N0aHJvdWdoIHdlIG9ubHkgbmVlZCB0byByZW1hcCB0byBEb20wIHRoZSBpbnRlcnJ1cHRz
DQo+PiArwqDCoMKgwqAgKiBhbmQgbWVtb3J5IHJhbmdlcyBmcm9tICJyZWciIHByb3BlcnR5IHdo
aWNoIGNvdmVyIGNvbnRyb2xsZXIncw0KPj4gK8KgwqDCoMKgICogY29uZmlndXJhdGlvbiByZWdp
c3RlcnMgYW5kIHN1Y2guIFBDSWUgY29uZmlndXJhdGlvbiBzcGFjZSByZWdpc3RlcnMNCj4+ICvC
oMKgwqDCoCAqIG9mIHRoZSBQQ0llIFJvb3QgQ29tcGxleCBhbmQgUENJZSBhcGVydHVyZSBzaG91
bGQgbm90IGJlIG1hcHBlZA0KPj4gK8KgwqDCoMKgICogYXV0b21hdGljYWxseSB0byBEb20wLg0K
Pj4gK8KgwqDCoMKgICovDQo+DQo+IEkgd291bGQgY2xhcmlmeSBpbiB0aGlzIGNvbW1lbnQgKGFu
ZCB0aGUgY29tbWl0IG1lc3NhZ2UpIHRoYXQgdGhpcyBvbmx5IGNvdmVyIGhvc3RicmlkZ2UgdGhh
dCBhcmUgYmVlbiBzaGFyZWQgYmV0d2VlbiBkb20wIGFuZCBYZW4uDQo+DQo+IEJ1dCBJIGZpbmQg
dGhlIGNvbW1lbnQgY29uZnVzaW5nIGJlY2F1c2UgSSB3b3VsZCBleHBlY3QgdG8gZXhwbGFpbiB0
aGlzLi4uDQo+DQo+PiArwqDCoMKgIHN0cnVjdCBtYXBfcmFuZ2VfZGF0YSBtcl9kYXRhID0gew0K
Pj4gK8KgwqDCoMKgwqDCoMKgIC5kID0gZCwNCj4+ICvCoMKgwqDCoMKgwqDCoCAucDJtdCA9IHAy
bXQsDQo+PiArwqDCoMKgwqDCoMKgwqAgLnNraXBfbWFwcGluZyA9ICFvd25fZGV2aWNlIHx8DQo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaXNfcGNp
X3Bhc3N0aHJvdWdoX2VuYWJsZWQoKSAmJg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgKGRldmljZV9nZXRfY2xhc3MoZGV2KSA9PSBERVZJQ0VfUENJ
X0hPU1RCUklER0UpKQ0KPg0KPiAuLi4gbGluZS4gSW5zdGVhZCwgaXQgZXhwbGFpbnMgdGhlIGds
b2JhbCBiZWhhdmlvci4gSSB3b3VsZCByZXdvcmsgdGhlIGNvbW1lbnQgdG8gc29tZXRoaW5nIGxp
a2U6DQo+DQo+IC8qDQo+IMKgKiBXZSB3YW50IHRvIGF2b2lkIG1hcHBpbmdzIHRoZSBNTUlPIGlu
IGRvbTAgZm9yIHRoZSBmb2xsb3dpbmcgY2FzZXM6DQo+IMKgKsKgwqAgLSBUaGUgZGV2aWNlIGlz
IG93bmVkIGJ5IGRvbTAgKGkuZS4gaXQgaGFzIGJlZW4gZmxhZ2dlZCBmb3INCj4gwqAqwqDCoMKg
wqAgcGFzc3Rocm91Z2gpLg0KPiDCoCrCoMKgIC0gUENJIGhvc3RicmlkZ2VzIHdpdGggZHJpdmVy
IGluIFhlbi4gVGhleSB3aWxsIGxhdGVyIG9uIGJ5DQo+IMKgKsKgwqDCoMKgIHBjaV9ob3N0X2Jy
aWRnZV9tYXBwaW5ncygpLg0KPiDCoCovDQpPaywgc291bmRzIGdvb2QNCj4NCj4+ICvCoMKgwqAg
fTsNCj4+IMKgIMKgwqDCoMKgwqAgbmFkZHIgPSBkdF9udW1iZXJfb2ZfYWRkcmVzcyhkZXYpOw0K
Pj4gwqAgwqDCoMKgwqDCoCBkdF9kcHJpbnRrKCIlcyBwYXNzdGhyb3VnaCA9ICVkIG5hZGRyID0g
JXVcbiIsDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkdF9ub2RlX2Z1bGxfbmFt
ZShkZXYpLCBuZWVkX21hcHBpbmcsIG5hZGRyKTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIGR0X25vZGVfZnVsbF9uYW1lKGRldiksIG93bl9kZXZpY2UsIG5hZGRyKTsNCj4+IMKg
IC3CoMKgwqAgaWYgKCBuZWVkX21hcHBpbmcgKQ0KPj4gK8KgwqDCoCBpZiAoIG93bl9kZXZpY2Ug
KQ0KPj4gwqDCoMKgwqDCoCB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZHRfZHByaW50aygiQ2hl
Y2sgaWYgJXMgaXMgYmVoaW5kIHRoZSBJT01NVSBhbmQgYWRkIGl0XG4iLA0KPj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkdF9ub2RlX2Z1bGxfbmFtZShkZXYpKTsN
Cj4+IEBAIC0xODgxLDE0ICsxODg0LDEzIEBAIHN0YXRpYyBpbnQgX19pbml0IGhhbmRsZV9kZXZp
Y2Uoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYsDQo+PiDCoMKg
wqDCoMKgwqDCoMKgwqAgfQ0KPj4gwqDCoMKgwqDCoCB9DQo+PiDCoCAtwqDCoMKgIHJlcyA9IGhh
bmRsZV9kZXZpY2VfaW50ZXJydXB0cyhkLCBkZXYsIG5lZWRfbWFwcGluZyk7DQo+PiArwqDCoMKg
IHJlcyA9IGhhbmRsZV9kZXZpY2VfaW50ZXJydXB0cyhkLCBkZXYsIG93bl9kZXZpY2UpOw0KPj4g
wqDCoMKgwqDCoCBpZiAoIHJlcyA8IDAgKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBy
ZXM7DQo+PiDCoCDCoMKgwqDCoMKgIC8qIEdpdmUgcGVybWlzc2lvbiBhbmQgbWFwIE1NSU9zICov
DQo+PiDCoMKgwqDCoMKgIGZvciAoIGkgPSAwOyBpIDwgbmFkZHI7IGkrKyApDQo+PiDCoMKgwqDC
oMKgIHsNCj4+IC3CoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgbWFwX3JhbmdlX2RhdGEgbXJfZGF0YSA9
IHsgLmQgPSBkLCAucDJtdCA9IHAybXQgfTsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXMgPSBk
dF9kZXZpY2VfZ2V0X2FkZHJlc3MoZGV2LCBpLCAmYWRkciwgJnNpemUpOw0KPj4gwqDCoMKgwqDC
oMKgwqDCoMKgIGlmICggcmVzICkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB7DQo+PiBAQCAtMTkw
Miw3ICsxOTA0LDcgQEAgc3RhdGljIGludCBfX2luaXQgaGFuZGxlX2RldmljZShzdHJ1Y3QgZG9t
YWluICpkLCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHJldHVybiByZXM7DQo+PiDCoMKgwqDCoMKgIH0NCj4+IMKgIC3CoMKgwqAgcmVz
ID0gbWFwX2RldmljZV9jaGlsZHJlbihkLCBkZXYsIHAybXQpOw0KPj4gK8KgwqDCoCByZXMgPSBt
YXBfZGV2aWNlX2NoaWxkcmVuKGRldiwgJm1yX2RhdGEpOw0KPj4gwqDCoMKgwqDCoCBpZiAoIHJl
cyApDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJlczsNCj4+IMKgIEBAIC0zMDYwLDcg
KzMwNjIsMTQgQEAgc3RhdGljIGludCBfX2luaXQgY29uc3RydWN0X2RvbTAoc3RydWN0IGRvbWFp
biAqZCkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmM7DQo+PiDCoCDCoMKgwqDCoMKg
IGlmICggYWNwaV9kaXNhYmxlZCApDQo+PiArwqDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDC
oCByYyA9IHByZXBhcmVfZHRiX2h3ZG9tKGQsICZraW5mbyk7DQo+PiArwqDCoMKgwqDCoMKgwqAg
aWYgKCByYyA8IDAgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJjOw0KPj4g
KyNpZmRlZiBDT05GSUdfSEFTX1BDSQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHJjID0gcGNpX2hvc3Rf
YnJpZGdlX21hcHBpbmdzKGQpOw0KPj4gKyNlbmRpZg0KPj4gK8KgwqDCoCB9DQo+PiDCoMKgwqDC
oMKgIGVsc2UNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByYyA9IHByZXBhcmVfYWNwaShkLCAma2lu
Zm8pOw0KPj4gwqAgZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wY2kvZWNhbS5jIGIveGVuL2Fy
Y2gvYXJtL3BjaS9lY2FtLmMNCj4+IGluZGV4IDYwMmQwMDc5OWM4ZC4uNGY3MWIxMWMzMDU3IDEw
MDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3BjaS9lY2FtLmMNCj4+ICsrKyBiL3hlbi9hcmNo
L2FybS9wY2kvZWNhbS5jDQo+PiBAQCAtNDAsNiArNDAsMTkgQEAgdm9pZCBfX2lvbWVtICpwY2lf
ZWNhbV9tYXBfYnVzKHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSwNCj4+IMKgwqDCoMKg
wqAgcmV0dXJuIGJhc2UgKyAoUENJX0RFVkZOMihzYmRmLmJkZikgPDwgZGV2Zm5fc2hpZnQpICsg
d2hlcmU7DQo+PiDCoCB9DQo+PiDCoCArYm9vbCBfX2luaXQgcGNpX2VjYW1fbmVlZF9wMm1faHdk
b21fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSwNCj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCB1aW50NjRfdCBhZGRyKQ0KPj4gK3sNCj4+ICvCoMKgwqAgc3RydWN0
IHBjaV9jb25maWdfd2luZG93ICpjZmcgPSBicmlkZ2UtPmNmZzsNCj4+ICsNCj4+ICvCoMKgwqAg
LyoNCj4+ICvCoMKgwqDCoCAqIFdlIGRvIG5vdCB3YW50IEVDQU0gYWRkcmVzcyBzcGFjZSB0byBi
ZSBtYXBwZWQgaW4gRG9tYWluLTAncyBwMm0sDQo+PiArwqDCoMKgwqAgKiBzbyB3ZSBjYW4gdHJh
cCBhY2Nlc3MgdG8gaXQuDQo+PiArwqDCoMKgwqAgKi8NCj4+ICvCoMKgwqAgcmV0dXJuIGNmZy0+
cGh5c19hZGRyICE9IGFkZHI7DQo+PiArfQ0KPj4gKw0KPj4gwqAgLyogRUNBTSBvcHMgKi8NCj4+
IMKgIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNpX2dlbmVyaWNfZWNhbV9vcHMgPSB7DQo+
PiDCoMKgwqDCoMKgIC5idXNfc2hpZnTCoCA9IDIwLA0KPj4gQEAgLTQ3LDYgKzYwLDcgQEAgY29u
c3Qgc3RydWN0IHBjaV9lY2FtX29wcyBwY2lfZ2VuZXJpY19lY2FtX29wcyA9IHsNCj4+IMKgwqDC
oMKgwqDCoMKgwqDCoCAubWFwX2J1c8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA9IHBj
aV9lY2FtX21hcF9idXMsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLnJlYWTCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPSBwY2lfZ2VuZXJpY19jb25maWdfcmVhZCwNCj4+IMKg
wqDCoMKgwqDCoMKgwqDCoCAud3JpdGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
ID0gcGNpX2dlbmVyaWNfY29uZmlnX3dyaXRlLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5uZWVkX3Ay
bV9od2RvbV9tYXBwaW5nID0gcGNpX2VjYW1fbmVlZF9wMm1faHdkb21fbWFwcGluZywNCj4+IMKg
wqDCoMKgwqAgfQ0KPj4gwqAgfTsNCj4+IMKgIGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vcGNp
L3BjaS1ob3N0LWNvbW1vbi5jIGIveGVuL2FyY2gvYXJtL3BjaS9wY2ktaG9zdC1jb21tb24uYw0K
Pj4gaW5kZXggMGQyNzFhNmU4ODgxLi42YWY4NDVhYjlkNmMgMTAwNjQ0DQo+PiAtLS0gYS94ZW4v
YXJjaC9hcm0vcGNpL3BjaS1ob3N0LWNvbW1vbi5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vcGNp
L3BjaS1ob3N0LWNvbW1vbi5jDQo+PiBAQCAtMjIsNiArMjIsOCBAQA0KPj4gwqAgI2luY2x1ZGUg
PHhlbi9zY2hlZC5oPg0KPj4gwqAgI2luY2x1ZGUgPHhlbi92bWFwLmg+DQo+PiDCoCArI2luY2x1
ZGUgPGFzbS9zZXR1cC5oPg0KPj4gKw0KPj4gwqAgLyoNCj4+IMKgwqAgKiBMaXN0IGZvciBhbGwg
dGhlIHBjaSBob3N0IGJyaWRnZXMuDQo+PiDCoMKgICovDQo+PiBAQCAtMzE2LDYgKzMxOCw1NCBA
QCB1bnNpZ25lZCBpbnQgcGNpX2hvc3RfZ2V0X251bV9icmlkZ2VzKHZvaWQpDQo+PiDCoMKgwqDC
oMKgIHJldHVybiBjb3VudDsNCj4+IMKgIH0NCj4+IMKgICtpbnQgX19pbml0IHBjaV9ob3N0X2Jy
aWRnZV9tYXBwaW5ncyhzdHJ1Y3QgZG9tYWluICpkKQ0KPj4gK3sNCj4+ICvCoMKgwqAgc3RydWN0
IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlOw0KPj4gK8KgwqDCoCBzdHJ1Y3QgbWFwX3JhbmdlX2Rh
dGEgbXJfZGF0YSA9IHsNCj4+ICvCoMKgwqDCoMKgwqDCoCAuZCA9IGQsDQo+PiArwqDCoMKgwqDC
oMKgwqAgLnAybXQgPSBwMm1fbW1pb19kaXJlY3RfZGV2LA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5z
a2lwX21hcHBpbmcgPSBmYWxzZQ0KPj4gK8KgwqDCoCB9Ow0KPj4gKw0KPj4gK8KgwqDCoCAvKg0K
Pj4gK8KgwqDCoMKgICogRm9yIGVhY2ggUENJIGhvc3QgYnJpZGdlIHdlIG5lZWQgdG8gb25seSBt
YXAgdGhvc2UgcmFuZ2VzDQo+PiArwqDCoMKgwqAgKiB3aGljaCBhcmUgdXNlZCBieSBEb21haW4t
MCB0byBwcm9wZXJseSBpbml0aWFsaXplIHRoZSBicmlkZ2UsDQo+PiArwqDCoMKgwqAgKiBlLmcu
IHdlIGRvIG5vdCB3YW50IHRvIG1hcCBFQ0FNIGNvbmZpZ3VyYXRpb24gc3BhY2Ugd2hpY2ggbGl2
ZXMgaW4NCj4+ICvCoMKgwqDCoCAqICJyZWciIGRldmljZSB0cmVlIHByb3BlcnR5LCBidXQgd2Ug
d2FudCB0byBtYXAgb3RoZXIgcmVnaW9ucyBvZg0KPj4gK8KgwqDCoMKgICogdGhlIGhvc3QgYnJp
ZGdlLiBUaGUgUENJIGFwZXJ0dXJlIGRlZmluZWQgYnkgdGhlICJyYW5nZXMiIGRldmljZQ0KPj4g
K8KgwqDCoMKgICogdHJlZSBwcm9wZXJ0eSBzaG91bGQgYWxzbyBiZSBza2lwcGVkLg0KPj4gK8Kg
wqDCoMKgICovDQo+DQo+IFRoaXMgc2VlbXMgdG8gZXhwbGFpbiB0aGUgcHVycG9zZSBvZiB0aGUg
ZnVuY3Rpb24uIFNvIEkgd291bGQgbW92ZSB0aGUgY29tbW1lbnQgb24gdG9wIG9mIHBjaV9ob3N0
X2JyaWRnZV9tYXBwaW5ncygpLg0KTWFrZXMgc2Vuc2UNCj4NCj4+ICvCoMKgwqAgbGlzdF9mb3Jf
ZWFjaF9lbnRyeSggYnJpZGdlLCAmcGNpX2hvc3RfYnJpZGdlcywgbm9kZSApDQo+PiArwqDCoMKg
IHsNCj4+ICvCoMKgwqDCoMKgwqDCoCBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldiA9
IGJyaWRnZS0+ZHRfbm9kZTsNCj4+ICvCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgaTsNCj4+
ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCBmb3IgKCBpID0gMDsgaSA8IGR0X251bWJlcl9vZl9hZGRy
ZXNzKGRldik7IGkrKyApDQo+PiArwqDCoMKgwqDCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgdWludDY0X3QgYWRkciwgc2l6ZTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IGludCBlcnI7DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlcnIgPSBkdF9kZXZp
Y2VfZ2V0X2FkZHJlc3MoZGV2LCBpLCAmYWRkciwgJnNpemUpOw0KPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgaWYgKCBlcnIgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgew0KPj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcmludGsoWEVOTE9HX0VSUg0KPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJVbmFibGUgdG8gcmV0cmll
dmUgYWRkcmVzcyByYW5nZSBpbmRleD0ldSBmb3IgJXNcbiIsDQo+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaSwgZHRfbm9kZV9mdWxsX25hbWUoZGV2KSk7
DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7DQo+PiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCB9DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp
ZiAoIGJyaWRnZS0+b3BzLT5uZWVkX3AybV9od2RvbV9tYXBwaW5nKGQsIGJyaWRnZSwgYWRkcikg
KQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBlcnIgPSBtYXBfcmFuZ2VfdG9fZG9tYWluKGRldiwgYWRkciwgc2l6ZSwgJm1y
X2RhdGEpOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIGVyciApDQo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGVycjsNCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+PiArwqDC
oMKgIH0NCj4+ICsNCj4+ICvCoMKgwqAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gwqAgLyoN
Cj4+IMKgwqAgKiBMb2NhbCB2YXJpYWJsZXM6DQo+PiDCoMKgICogbW9kZTogQw0KPj4gZGlmZiAt
LWdpdCBhL3hlbi9hcmNoL2FybS9wY2kvcGNpLWhvc3QtenlucW1wLmMgYi94ZW4vYXJjaC9hcm0v
cGNpL3BjaS1ob3N0LXp5bnFtcC5jDQo+PiBpbmRleCA1MTY5ODJiY2E4MzMuLjEwMWVkYjg1OTNj
MSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9wY2kvcGNpLWhvc3QtenlucW1wLmMNCj4+
ICsrKyBiL3hlbi9hcmNoL2FybS9wY2kvcGNpLWhvc3QtenlucW1wLmMNCj4+IEBAIC0zNCw2ICsz
NCw3IEBAIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgbndsX3BjaWVfb3BzID0gew0KPj4gwqDC
oMKgwqDCoMKgwqDCoMKgIC5tYXBfYnVzwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgID0g
cGNpX2VjYW1fbWFwX2J1cywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAucmVhZMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA9IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkLA0KPj4g
wqDCoMKgwqDCoMKgwqDCoMKgIC53cml0ZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgPSBwY2lfZ2VuZXJpY19jb25maWdfd3JpdGUsDQo+PiArwqDCoMKgwqDCoMKgwqAgLm5lZWRf
cDJtX2h3ZG9tX21hcHBpbmcgPSBwY2lfZWNhbV9uZWVkX3AybV9od2RvbV9tYXBwaW5nLA0KPj4g
wqDCoMKgwqDCoCB9DQo+PiDCoCB9Ow0KPj4gwqAgZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz
bS1hcm0vcGNpLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BjaS5oDQo+PiBpbmRleCA5NjkzMzMw
NDM0MzEuLjNkNzA2ZmRkMWQ4OCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0v
cGNpLmgNCj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcGNpLmgNCj4+IEBAIC0xNyw2ICsx
Nyw4IEBADQo+PiDCoCDCoCAjaWZkZWYgQ09ORklHX0hBU19QQ0kNCj4+IMKgICsjaW5jbHVkZSA8
YXNtL3AybS5oPg0KPj4gKw0KPj4gwqAgI2RlZmluZSBwY2lfdG9fZGV2KHBjaWRldikgKCYocGNp
ZGV2KS0+YXJjaC5kZXYpDQo+PiDCoCDCoCBleHRlcm4gYm9vbCBwY2lfcGFzc3Rocm91Z2hfZW5h
YmxlZDsNCj4+IEBAIC03Myw2ICs3NSw5IEBAIHN0cnVjdCBwY2lfb3BzIHsNCj4+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdWludDMyX3QgcmVnLCB1aW50MzJfdCBsZW4sIHVp
bnQzMl90ICp2YWx1ZSk7DQo+PiDCoMKgwqDCoMKgIGludCAoKndyaXRlKShzdHJ1Y3QgcGNpX2hv
c3RfYnJpZGdlICpicmlkZ2UsIHBjaV9zYmRmX3Qgc2JkZiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50MzJfdCByZWcsIHVpbnQzMl90IGxlbiwgdWludDMyX3Qg
dmFsdWUpOw0KPj4gK8KgwqDCoCBib29sICgqbmVlZF9wMm1faHdkb21fbWFwcGluZykoc3RydWN0
IGRvbWFpbiAqZCwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlk
Z2UsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgdWludDY0X3QgYWRkcik7DQo+PiDCoCB9Ow0KPj4gwqAgwqAg
LyoNCj4+IEBAIC05Niw2ICsxMDEsOSBAQCBpbnQgcGNpX2dlbmVyaWNfY29uZmlnX3dyaXRlKHN0
cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSwgcGNpX3NiZGZfdCBzYmRmLA0KPj4gwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVp
bnQzMl90IHJlZywgdWludDMyX3QgbGVuLCB1aW50MzJfdCB2YWx1ZSk7DQo+PiDCoCB2b2lkIF9f
aW9tZW0gKnBjaV9lY2FtX21hcF9idXMoc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlLA0K
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBwY2lfc2JkZl90IHNiZGYsIHVpbnQzMl90IHdoZXJlKTsNCj4+ICtib29sIHBj
aV9lY2FtX25lZWRfcDJtX2h3ZG9tX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCwNCj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlLA0KPj4gK8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCB1aW50NjRfdCBhZGRyKTsNCj4+IMKgIHN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKnBj
aV9maW5kX2hvc3RfYnJpZGdlKHVpbnQxNl90IHNlZ21lbnQsIHVpbnQ4X3QgYnVzKTsNCj4+IMKg
IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqcGNpX2ZpbmRfaG9zdF9icmlkZ2Vfbm9kZShzdHJ1Y3Qg
ZGV2aWNlICpkZXYpOw0KPj4gwqAgaW50IHBjaV9nZXRfaG9zdF9icmlkZ2Vfc2VnbWVudChjb25z
dCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUsDQo+PiBAQCAtMTE1LDYgKzEyMyw4IEBAIGlu
dCBwY2lfaG9zdF9pdGVyYXRlX2JyaWRnZXMoc3RydWN0IGRvbWFpbiAqZCwNCj4+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlKSk7DQo+PiDC
oCB1bnNpZ25lZCBpbnQgcGNpX2hvc3RfZ2V0X251bV9icmlkZ2VzKHZvaWQpOw0KPj4gwqAgK2lu
dCBwY2lfaG9zdF9icmlkZ2VfbWFwcGluZ3Moc3RydWN0IGRvbWFpbiAqZCk7DQo+PiArDQo+PiDC
oCAjZWxzZcKgwqAgLyohQ09ORklHX0hBU19QQ0kqLw0KPj4gwqAgwqAgc3RydWN0IGFyY2hfcGNp
X2RldiB7IH07DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oIGIv
eGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oDQo+PiBpbmRleCA5NWRhMGI3YWI5Y2QuLjg4ZDk2
NzNkYjgxNyAxMDA2NDQNCj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vc2V0dXAuaA0KPj4g
KysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oDQo+PiBAQCAtMiw2ICsyLDggQEANCj4+
IMKgICNkZWZpbmUgX19BUk1fU0VUVVBfSF8NCj4+IMKgIMKgICNpbmNsdWRlIDxwdWJsaWMvdmVy
c2lvbi5oPg0KPj4gKyNpbmNsdWRlIDxhc20vcDJtLmg+DQo+PiArI2luY2x1ZGUgPHhlbi9kZXZp
Y2VfdHJlZS5oPg0KPj4gwqAgwqAgI2RlZmluZSBNSU5fRkRUX0FMSUdOIDgNCj4+IMKgICNkZWZp
bmUgTUFYX0ZEVF9TSVpFIFNaXzJNDQo+PiBAQCAtNzcsNiArNzksMTQgQEAgc3RydWN0IGJvb3Rp
bmZvIHsNCj4+IMKgICNlbmRpZg0KPj4gwqAgfTsNCj4+IMKgICtzdHJ1Y3QgbWFwX3JhbmdlX2Rh
dGENCj4+ICt7DQo+PiArwqDCoMKgIHN0cnVjdCBkb21haW4gKmQ7DQo+PiArwqDCoMKgIHAybV90
eXBlX3QgcDJtdDsNCj4+ICvCoMKgwqAgLyogU2V0IGlmIG1hcHBpbmcgb2YgdGhlIG1lbW9yeSBy
YW5nZXMgbXVzdCBiZSBza2lwcGVkLiAqLw0KPj4gK8KgwqDCoCBib29sIHNraXBfbWFwcGluZzsN
Cj4+ICt9Ow0KPj4gKw0KPj4gwqAgZXh0ZXJuIHN0cnVjdCBib290aW5mbyBib290aW5mbzsNCj4+
IMKgIMKgIGV4dGVybiBkb21pZF90IG1heF9pbml0X2RvbWlkOw0KPj4gQEAgLTEyNCw2ICsxMzQs
OSBAQCB2b2lkIGRldmljZV90cmVlX2dldF9yZWcoY29uc3QgX19iZTMyICoqY2VsbCwgdTMyIGFk
ZHJlc3NfY2VsbHMsDQo+PiDCoCB1MzIgZGV2aWNlX3RyZWVfZ2V0X3UzMihjb25zdCB2b2lkICpm
ZHQsIGludCBub2RlLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgY29uc3QgY2hhciAqcHJvcF9uYW1lLCB1MzIgZGZsdCk7DQo+PiDCoCAraW50
IG1hcF9yYW5nZV90b19kb21haW4oY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYsDQo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1NjQgYWRk
ciwgdTY0IGxlbiwgdm9pZCAqZGF0YSk7DQo+PiArDQo+PiDCoCAjZW5kaWYNCj4+IMKgIC8qDQo+
PiDCoMKgICogTG9jYWwgdmFyaWFibGVzOg0KPj4NCj4NCj4gQ2hlZXJzLA0KPg0KVGhhbmsgeW91
LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:54:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:54:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230137.397860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpn6Z-0005P7-CU; Wed, 24 Nov 2021 07:54:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230137.397860; Wed, 24 Nov 2021 07:54:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpn6Z-0005P0-8s; Wed, 24 Nov 2021 07:54:11 +0000
Received: by outflank-mailman (input) for mailman id 230137;
 Wed, 24 Nov 2021 07:54:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mG44=QL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpn6Y-0005Ou-4G
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:54:10 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b40800d9-4cfb-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:54:08 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2108.outbound.protection.outlook.com [104.47.18.108]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-9-94vEMOxfNHO6aBXPyTQIfw-1; Wed, 24 Nov 2021 08:54:07 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2445.eurprd04.prod.outlook.com (2603:10a6:800:55::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Wed, 24 Nov
 2021 07:54:05 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 07:54:05 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR07CA0026.eurprd07.prod.outlook.com (2603:10a6:20b:451::35) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.15 via Frontend
 Transport; Wed, 24 Nov 2021 07:54:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b40800d9-4cfb-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637740448;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=V+13BCXAyNHYs2Ox/WODnL1ZpDDuEqkFxsUTr0ND1E8=;
	b=Bth6w7AGg2H9g1NOdOgTsPGSnG39bSnHXVeHnWh66n+eWbZTse5luyPfDdEo4kOddSWXY9
	DZZQd2nDGgKOab3ZLbdPB3etMTdpSaeGqtLShM4+7px5DxBOErf1LsW9ot3YN2Xb97bE9W
	GiEldEmT/yLUggnktQ5fdozyjju+O6c=
X-MC-Unique: 94vEMOxfNHO6aBXPyTQIfw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dmpDw1D94v9Jq5nX4M8nsu6kWDso/Gglh2k1ijGfa+rgGMEmxfZNISKv1OBKEf3BjphZx2OX1psPTbNJa3pT11wHDDXiBKErUrHrPekifXuiP4RSRqRCaPR52Yi+mRDelyOuKNyQRSqRweePNILc7ZPEI5NhFuZ4U1UM+qlwE/tYfu3tkk2Ug1f0lQB+y7bPvgTtIHXdv8ISKWk1IIDQ0c2EoFKG1/6sUUSlxzURr/q+eaWSSeygeDIPCHY5LIe5suAVY5mbvQOyKJl0fmb44LyL8gp3KHVZJxGgQDA/pGADxRUxTo0asWZsONmXikO/q7obsH1QQkyl/I0MxhWh9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V+13BCXAyNHYs2Ox/WODnL1ZpDDuEqkFxsUTr0ND1E8=;
 b=UfyX8ZIYHC50yVEcRP9QnG//9AbfnR7UzOdULi8YYmPVw+AjfMr8q8vJD3x9S1SF1OC5cZh2WIq+bmUunOcv0P+fbqphQyerBkS/Stji2IvQwiZLxckJKqUD3ipcZd+Pvn4CRzB7Pmc9qB6qofBl3EvHAdYwNdETsS23T3aOh7EAHGZ2sz8iY769vKnKTFDn8QS2wk0aOtNpRFDEVm4t5G/5AYsm3aCdqaKxeIHThslGqYTlQbLEJpFFL1Ts/IpasNM93WMdlFOnoEFNuMObp+LEHhg/TGY2d/SYR1SnRYN3N6hA0zl6gYAl1XFpQuDNWgTL7XLiKRcsl5MhwSSE1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ad9abcb1-0a17-644b-5338-8c305e9ce4b4@suse.com>
Date: Wed, 24 Nov 2021 08:54:03 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: About support for memory event on AMD CPUs
Content-Language: en-US
To: YAN Untitled <yanluyi2010@hotmail.com>
Cc: "tamas@tklengyel.com" <tamas@tklengyel.com>,
 "aisaila@bitdefender.com" <aisaila@bitdefender.com>,
 "ppircalabu@bitdefender.com" <ppircalabu@bitdefender.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <OS3P286MB1995471B56ADDC423A4EDC9FB3609@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <OS3P286MB1995471B56ADDC423A4EDC9FB3609@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR07CA0026.eurprd07.prod.outlook.com
 (2603:10a6:20b:451::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2948a0ce-bee3-4ee2-9196-08d9af1f968d
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2445:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2445397A649252E937DED3D3B3619@VI1PR0401MB2445.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	9GB0hkKLVTvaCeIdg45Drtzkwkn4SQArPqh+99lnuspZFX0FI2y/DRY14qyryNqeg9t/RZOg1Laji+n+qfpJ7LvNiNZgYiXMibXWvUS28ZG0vfUI4fHQbrz3gYo8PsJ1uezLAcFoG26WvImIDmvGriepJF/0ZgNF8KEAMY8+m3Jl8xNbbd2paCAUzs9enHyb4qDxMVWJsRSqSrQ8HJ8izpR8lWt8F1WCVi4a24LVAL5HGsBYq1wUZ1565uj2e7LVx1JRzN5UIDiTCsAhy91Kchfumo9oVPJztvaVqzWbczi6ZkvETZoHwhYht06kJFqbaRmc0IZ8uvBuZGC18Pa0b71VqcmRCTtTsIdWbSAhrRpj4lsqMZWtcb1HhY5sHNjLwpnAOvyvVQKOdYIGC/hxqYdnNJAo3n6ebAWsjPVawe9k0oyKJYhOc+sYUL6N0kq/Zy4VfJoMDd9DEY3ymkgQAAScIptRllcP5xyiWBB9P1FOrvtPIRTK1Ipu9EfP8ufxw4E6m49E9UBS05WYf3kgpWWW2afUaQqBAyuB2jdvdZODaM8uBUQ1sA4wW2dg0m2Al2bbZcwsEwVw7VKitqYgk/vIa5WH3JMOXOqfAi1TINmdi98N2bV9uc5UGZ9ooo39CTxZasXom6ffWAHSpBlbJ6Jz+EovJ/5NJ99pwj47wHqGYdOREhHMBdRIWTqrWlOtLurJdkaIHK4FiQDghqTluwY1hUbRHNXkfzyBDu4RIU04gJw1r0IrsyFKLuCQZ3aKEr33DMTVZZ8y1TyvEFoqZru4qB5HhyVCIDA/jcufyAq5yh+kC+PpXI1wardCorUZKs5nVSTsC6PBosDP4ZIyKw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(26005)(5660300002)(8936002)(38100700002)(54906003)(186003)(6486002)(16576012)(36756003)(316002)(4326008)(956004)(8676002)(31686004)(66946007)(66476007)(66556008)(2906002)(508600001)(6916009)(86362001)(53546011)(83380400001)(966005)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UDA5Q3dXRkhOK3RKRFkrOE54a3dYZGFpa09WcVlXWW5Ma0hJcEFIclhVSVhW?=
 =?utf-8?B?UXptQWFzbkdITzI1VW8wK29UQlMyTGpsWnZteEdKeWNpN0ZtTGUwTklmdFlX?=
 =?utf-8?B?VE5HTUtQTnRhbm5SMGpBSkxKWDZiKzZZSm1RVlNCTlF5bWVlYUIwUkJZcWNI?=
 =?utf-8?B?UTl3YmswS2o3dlhDQlp0TGpKaXp5RGsvVUpndmtKd0lEdm5Ka25EVTd0Z2lr?=
 =?utf-8?B?eHJiQlhEM0c4YTUrb2h1MXN0bFB0YzhrOHQ1SVFha1F2djNOYlBwR2xiWEJW?=
 =?utf-8?B?MXBud3dQeDlLTXBtaDVWM0djWG5yVXc4QUFpb2YwN3p4amZlVXFlZUdEa0N1?=
 =?utf-8?B?MU1SUm9iSlhEcmFHRWJVOTFCSWZTYWljZlVEYXJnMG9WWnJtZGRvTGM1VVBM?=
 =?utf-8?B?UGhvYS94VlFpbjlBWGt6M2dWWVk4OGpYNGtITDUrOXFuTWZwTWcxWlprQ2dS?=
 =?utf-8?B?Q3owZVNjbWZ1YzVhUGNLUmNmS1U1c3lHc01ROHVuY0p3VGZEM3A1YzlSTnhV?=
 =?utf-8?B?ZzlDQlp6VndYNjZTSko2bGR1ZDJ4dC9vT1JkVUlDemJOSDV0NnM4QkpHd1Qw?=
 =?utf-8?B?ZkFsZGdKblRNQUI5OHQ2WGJsQ2VzcER4NDBuNG9KenhiNTJTbFM2OTF5d25B?=
 =?utf-8?B?a3lIdUdTeCt1alBYeHlCSDhTMTA0SitVQit4UFJvVWYvNHRaaUd1dGpaODll?=
 =?utf-8?B?R2FpcGV6RTRwY0EvMjc3VnlzZHBJUStSWkRuWXZKQ3VvL0xoZkZsQXVoVnY5?=
 =?utf-8?B?L0ljaExMNEpUU1lXNmdhdjB0aHhDZVU5c2w5bXpqeGUwWlY3eGFxTWRJNW9C?=
 =?utf-8?B?K2hKamdqemE3b1E2VStxQXZLMzZNVjdwcUFCaTljaUJiRXNVamJZMUtYaDM3?=
 =?utf-8?B?TWdBSFY1SXFuYmlDenpWdFFRbmxoZzB3SCt4Mm9aaDQ5TXUrY3FBUXJNRFlK?=
 =?utf-8?B?RXp4YkxuMnBuVDRtQ21ZLzdxaFpYU090Q1lya3JiZkdqOHZCTlcvQ0t5amNH?=
 =?utf-8?B?Ly82WWVWUWh1TG9NWnM5dUZwUjk4TzFPOGtLOUN2Y1luOFp4TmdSRnJILzBP?=
 =?utf-8?B?eVgzQmYwcnN3U01YSkVLZ1Q0TnZxRk5MbVE3MmRzZ1dvaWxEREdxYnBQZTRt?=
 =?utf-8?B?bUJiMHRHdFdiM3IyamlNczFqN0tHc2FLbTZhcW5DV216THF5OUNrT09jMm5w?=
 =?utf-8?B?alpuWjM3RzJCZ1l6VVBPTFdoam1jVkJCZmFiYkJKbEp4WlgxNXlWd091czZD?=
 =?utf-8?B?VDNEN24xQk5NOGhZVHBVNEFmQ0NRNTJ3YmlGUFlpMHFYMytvMXdPMlQ5OVpt?=
 =?utf-8?B?ZkQ2b25JczJ6eWRtaEF1N1BhYjBoSUhLOFNtNnFMM2xSSkRhY0hTaE1FNTMy?=
 =?utf-8?B?aHRZNE5ZRXY0OWs4M1ZoTnhKRjZXZ0srSUJzOWd2WldQby9HanNnWVV6cTVw?=
 =?utf-8?B?MWkzR1VCQ3NZblEvd2dEM2svSmVoVnJRMmlKUVpQRnd1ZDlkUXhrb0tyZXIw?=
 =?utf-8?B?Yyt4L2V3cFdVVzg2K2lZUEp0V0EySTk2ZjNsby9OMHJGRG9zcTVTUUdVKzJH?=
 =?utf-8?B?aFlUK1RKeUp4NjBoMVlOREFOZGgzb0xLSjlNOWJsYkJEbUM4S1FOenhKNmZS?=
 =?utf-8?B?d00rSUl6ZWNPdlk5RDUwaU15UCtlMVFPZldnWnNaZUxFRW9NTUhUOEtjcXhY?=
 =?utf-8?B?STNFRi9aSVZqeTRuSTE0SzFIV0ZRR2p4djBXckNRZi9WeGI0U1VBTmlkWkVu?=
 =?utf-8?B?UzFmRFI2K2l0TU5QVlBoQzNVKy9vdzZLbXBtMVZzTnJnNTNZcHZ1V2V2emlG?=
 =?utf-8?B?Y0piS2p2WDNKN2ZEMFVMN3ZEQ2tuREIwd1A5U2RkVy9GNDB6eUp2MzhpMTRn?=
 =?utf-8?B?Z2dmVHdiekZsVjZKaXcvbjJibnpXMGZqdStIaEJBdHZNNG9tWXNDcnc1TXlS?=
 =?utf-8?B?bHY0Qk5TS2dYWEFjL0lQR0E5UHVDY0FEMmtOQVVYQkRQTmpoeFlSM1JYODRO?=
 =?utf-8?B?L3VKK2xraVpNVmlKdTEwNTBoaFljNGROQk9wWGVXRWZYcG5FY2gzZWhVSGta?=
 =?utf-8?B?S0EzSTlxcWphU2RXajNidDRsRE85K1VHRHoraGlpQzBTRVd1T3BsMjVBWkhO?=
 =?utf-8?B?WnUrZFQyUGMvOGdocXc3Q3lwdW9yRG5Uc1VkOWhIeGFqVWZnWEF5azFlM0FO?=
 =?utf-8?Q?ALgnkepZMXlYG2LAtgR0E2g=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2948a0ce-bee3-4ee2-9196-08d9af1f968d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 07:54:05.5532
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: E/72FGdJqWZ4JySSL9YC9At3cFbrjEznGdxoJywszMZqPmHWmlqlmCuT7V1KyGsmNLijd9JgzPm335saG9kppQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2445

On 23.11.2021 18:14, YAN Untitled wrote:
> Dear developers,
> 
> Short version: is memory event supported on AMD CPUs or is it going to be
> supported?
> 
> Long version:
> 
> Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), 64-bit
> Debian 11 Dom0.
> 
> What I am trying to accomplish: register a **memory event** handler, so that
> I can capture all memory accesses within a specific range issued by any thread,
> or all memory accesses within any range issued by a specific thread.
> 
> What I got instead: an error from LibVMI saying
> "xc_hvm_set_mem_access failed with code: -1".
> 
> Some investigation: by inspecting the source code of LibVMI, I find the direct
> cause is one of the libxc functions, 1) xc_set_mem_access or
> 2) xc_altp2m_set_mem_access, returned error code -1.
> 
> After some searching, I found someone else having a similar problem [1]. I also
> noted LibVMI says:
> 
>> Currently only the Xen Hypervisor provides these features,
>> and some of these are specifically only available on Intel CPUs
> 
> However, I can't find the exact confirmation for the availability of memory
> event on AMD CPUs from https://wiki.xenproject.org.

Aiui underlying what you want is altp2m, which presently depends (in
the hypervisor) on EPT being available (and in use for the guest in
question).

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:59:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:59:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230147.397910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC5-0006yd-H4; Wed, 24 Nov 2021 07:59:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230147.397910; Wed, 24 Nov 2021 07:59:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC5-0006xc-9Z; Wed, 24 Nov 2021 07:59:53 +0000
Received: by outflank-mailman (input) for mailman id 230147;
 Wed, 24 Nov 2021 07:59:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CYi7=QL=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mpnC3-0006a3-JY
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:59:51 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f257fce-4cfc-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 08:59:49 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id c32so4982386lfv.4
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 23:59:49 -0800 (PST)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id i24sm1750358ljm.135.2021.11.23.23.59.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 23:59:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f257fce-4cfc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=TEnw6Tbi8uyQhbNNHVX1/5nrpb6E6EbDTdN5JDsqHGk=;
        b=by2F/bIANGRUvvStIBUaqd7BodO++zeMWWnZlFlu5DUN6M6rH6qCLWRUxBZKz4/AXG
         RsTr4I1VVYaMM/xaXP/07o54/b2a6PjkBSbJKqJgBpamfkKJm9zReQlQFfNwe51SvNOL
         dPbEflhZbm5VgqImC488kclu9yfnt1gO9KelDXDaAPcEgh65uSSKAg83qGdVcXUvHIgy
         AsagpG2j6GVS7C4KDeoA8CtEl9Ud+dZOmscgwTKNKyMBHKWDIz5nxmgrsUiGWRYbZMn3
         k2PC+uIpnR9Lp9zSo+SlgsFJ7a4EOt27NjEiBuPtbqGPOcgWRXnxJe7JGgVXaqZXexJy
         lgtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=TEnw6Tbi8uyQhbNNHVX1/5nrpb6E6EbDTdN5JDsqHGk=;
        b=w8Dxv0/tO+/H3H5TJINUfC5DxA/lIdCTVuRAoVp2ZwBtxb8MLPqiMM+WwYIY7Gusor
         6G1EkjxT9lyNZHp6blDBHhw02BxsPYFbqPye2Nxjgp4zwvQYf2Ap54PlkHwoDRpxnnQ7
         NOHc0jsMnwx1iwKAtumuZQTrQOweQZU4yKkkSjarHB4zto0w7k/VEQjVPGSFCCCUtOzU
         v8Oq8fF9RlgDB1frQvPDvKSlhgtT95ZdnncecVnLFLhTMLkx0W3TWBLfzdLiz1J1wGhk
         yPuH2w4naSS+D3y1sZSDaOpyjyJ7tM0vr1NY4970H8T26L8rCEKWYrQbkcbcal2KhH7H
         7gQg==
X-Gm-Message-State: AOAM531SKjyFg09uh1f7rUQSsm1fUXwh8A4Se9bN5RGxWppk6c4NHX3g
	YpcYj4eIdQzEki0lNuefowmSc6bv6dVimA==
X-Google-Smtp-Source: ABdhPJy+GvMQW9KqqejEYd/gYEIrhD225h+RXwB+gNhrTl1r8Gx0oPe/QnhW/ua+Q2LUKzW+ypYgKw==
X-Received: by 2002:a05:6512:3056:: with SMTP id b22mr12540254lfb.316.1637740788381;
        Tue, 23 Nov 2021 23:59:48 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v7 3/7] xen/arm: setup MMIO range trap handlers for hardware domain
Date: Wed, 24 Nov 2021 09:59:38 +0200
Message-Id: <20211124075942.2645445-4-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211124075942.2645445-1-andr2000@gmail.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

In order for vPCI to work it needs to maintain guest and hardware
domain's views of the configuration space. For example, BARs and
COMMAND registers require emulation for guests and the guest view
of the registers needs to be in sync with the real contents of the
relevant registers. For that ECAM address space needs to also be
trapped for the hardware domain, so we need to implement PCI host
bridge specific callbacks to properly setup MMIO handlers for those
ranges depending on particular host bridge implementation.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v6:
- eliminate pci_host_get_num_bridges and make pci_host_iterate_bridges
  return the count
- extend comment in domain_vpci_init
- remove not yet relevant code for num MMIOs and virtual bus topology
- add extra check for has_vpci in domain_vpci_get_num_mmio_handlers
- remove code that fixes num MMIOs for guest domain as it doesn't belong
  to this patch
Since v5:
- add vpci_sbdf_from_gpa helper for gpa to SBDF translation
- take bridge's bus start into account while calculating SBDF
Since v4:
- unsigned int for functions working with count
- gate number of MMIO handlers needed for CONFIG_HAS_PCI_MSI
  and fix their number, e.g. single handler for PBA and
  MSI-X tables (Roger)
- re-work code for assigning MMIO handlers to be simpler
  and account on the fact that there could multiple host bridges
  exist for the hwdom
Since v3:
- fixed comment formatting
Since v2:
- removed unneeded assignment (count = 0)
- removed unneeded header inclusion
- update commit message
Since v1:
 - Dynamically calculate the number of MMIO handlers required for vPCI
   and update the total number accordingly
 - s/clb/cb
 - Do not introduce a new callback for MMIO handler setup
---
 xen/arch/arm/domain.c              |  2 +
 xen/arch/arm/pci/pci-host-common.c | 17 +++++++
 xen/arch/arm/vpci.c                | 79 +++++++++++++++++++++++++++---
 xen/arch/arm/vpci.h                |  6 +++
 xen/include/asm-arm/pci.h          |  4 ++
 5 files changed, 100 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 96e1b235501d..92a6c509e5c5 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -739,6 +739,8 @@ int arch_domain_create(struct domain *d,
     if ( (rc = domain_vgic_register(d, &count)) != 0 )
         goto fail;
 
+    count += domain_vpci_get_num_mmio_handlers(d);
+
     if ( (rc = domain_io_init(d, count + MAX_IO_HANDLER)) != 0 )
         goto fail;
 
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
index 9653b92b5b2e..18b09d5e6f10 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -296,6 +296,23 @@ int pci_get_host_bridge_segment(const struct dt_device_node *node,
     return -EINVAL;
 }
 
+int pci_host_iterate_bridges_and_count(struct domain *d,
+                                       int (*cb)(struct domain *d,
+                                                 struct pci_host_bridge *bridge))
+{
+    struct pci_host_bridge *bridge;
+    int err, count = 0;
+
+    list_for_each_entry( bridge, &pci_host_bridges, node )
+    {
+        err = cb(d, bridge);
+        if ( err )
+            return err;
+        count += err;
+    }
+    return count;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 23f45386f4b3..ccd998d8dba2 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -16,16 +16,31 @@
 
 #include <asm/mmio.h>
 
+static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
+                                     paddr_t gpa)
+{
+    pci_sbdf_t sbdf;
+
+    if ( bridge )
+    {
+        sbdf.sbdf = VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
+        sbdf.seg = bridge->segment;
+        sbdf.bus += bridge->cfg->busn_start;
+    }
+    else
+        sbdf.sbdf = VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
+
+    return sbdf;
+}
+
 static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
                           register_t *r, void *p)
 {
-    pci_sbdf_t sbdf;
+    struct pci_host_bridge *bridge = p;
+    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
     /* data is needed to prevent a pointer cast on 32bit */
     unsigned long data;
 
-    /* We ignore segment part and always handle segment 0 */
-    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
-
     if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
                         1U << info->dabt.size, &data) )
     {
@@ -41,10 +56,8 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
 static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
                            register_t r, void *p)
 {
-    pci_sbdf_t sbdf;
-
-    /* We ignore segment part and always handle segment 0 */
-    sbdf.sbdf = VPCI_ECAM_BDF(info->gpa - GUEST_VPCI_ECAM_BASE);
+    struct pci_host_bridge *bridge = p;
+    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
 
     return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                            1U << info->dabt.size, r);
@@ -55,17 +68,67 @@ static const struct mmio_handler_ops vpci_mmio_handler = {
     .write = vpci_mmio_write,
 };
 
+static int vpci_setup_mmio_handler_cb(struct domain *d,
+                                      struct pci_host_bridge *bridge)
+{
+    struct pci_config_window *cfg = bridge->cfg;
+
+    register_mmio_handler(d, &vpci_mmio_handler,
+                          cfg->phys_addr, cfg->size, bridge);
+
+    /* We have registered a single MMIO handler. */
+    return 1;
+}
+
 int domain_vpci_init(struct domain *d)
 {
     if ( !has_vpci(d) )
         return 0;
 
+    /*
+     * The hardware domain gets as many MMIOs as required by the
+     * physical host bridge.
+     * Guests get the virtual platform layout: one virtual host bridge for now.
+     */
+    if ( is_hardware_domain(d) )
+    {
+        int count;
+
+        count = pci_host_iterate_bridges_and_count(d, vpci_setup_mmio_handler_cb);
+        if ( count < 0 )
+            return count;
+
+        return 0;
+    }
+
     register_mmio_handler(d, &vpci_mmio_handler,
                           GUEST_VPCI_ECAM_BASE, GUEST_VPCI_ECAM_SIZE, NULL);
 
     return 0;
 }
 
+static int vpci_get_num_handlers_cb(struct domain *d,
+                                    struct pci_host_bridge *bridge)
+{
+    /* Each bridge has a single MMIO handler for the configuration space. */
+    return 1;
+}
+
+unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
+{
+    if ( !has_vpci(d) )
+        return 0;
+
+    if ( is_hardware_domain(d) )
+    {
+        int ret = pci_host_iterate_bridges_and_count(d, vpci_get_num_handlers_cb);
+
+        return ret < 0 ? 0 : ret;
+    }
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/vpci.h b/xen/arch/arm/vpci.h
index d8a7b0e3e802..3c713f3fcdb5 100644
--- a/xen/arch/arm/vpci.h
+++ b/xen/arch/arm/vpci.h
@@ -17,11 +17,17 @@
 
 #ifdef CONFIG_HAS_VPCI
 int domain_vpci_init(struct domain *d);
+unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d);
 #else
 static inline int domain_vpci_init(struct domain *d)
 {
     return 0;
 }
+
+static inline unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
+{
+    return 0;
+}
 #endif
 
 #endif /* __ARCH_ARM_VPCI_H__ */
diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
index c20eba643d86..4278d66e5eb9 100644
--- a/xen/include/asm-arm/pci.h
+++ b/xen/include/asm-arm/pci.h
@@ -110,6 +110,10 @@ void arch_pci_init_pdev(struct pci_dev *pdev);
 
 int pci_get_new_domain_nr(void);
 
+int pci_host_iterate_bridges_and_count(struct domain *d,
+                                       int (*cb)(struct domain *d,
+                                                 struct pci_host_bridge *bridge));
+
 #else   /*!CONFIG_HAS_PCI*/
 
 struct arch_pci_dev { };
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:59:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:59:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230148.397917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC6-00072v-3n; Wed, 24 Nov 2021 07:59:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230148.397917; Wed, 24 Nov 2021 07:59:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC5-000715-Jc; Wed, 24 Nov 2021 07:59:53 +0000
Received: by outflank-mailman (input) for mailman id 230148;
 Wed, 24 Nov 2021 07:59:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CYi7=QL=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mpnC4-000641-CN
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:59:52 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 805dce8a-4cfc-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:59:51 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id t26so4895732lfk.9
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 23:59:51 -0800 (PST)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id i24sm1750358ljm.135.2021.11.23.23.59.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 23:59:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 805dce8a-4cfc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=UTFAcfDVj5boS18sBATp/O7+L/F9qrCvn3jbQ1Onsrg=;
        b=hbTmKJcmSNf2UsvgYlzNV1mjKdhPBVzXW1CrogUsjsWBMICC7Fi/4mQYdZOS3JTPG/
         XE4TRnyWh4FSvLxJfVXVsWPdP96vCCnUfKrAVq09yr0hj2vZmw5nifMTUZkyoqcBly66
         qurp2dcHVvM90bDKkC3498zBqG52cmJyzZ0rOBZTkcg9znwq4zfETr1gw/aaeb0KdCHw
         0tMJKd64qPIqD0vLizHamJ937jMh3ISQdN1AJsk+KaERJsJyZ0BOceSl6gPO0d1KQJ/F
         zUSWVmdZB8o393VlXOw/DsWxr9zirsLuMSPkUEj5woVW+ymGBC7Pxpg1OErytHTIaD06
         tQhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=UTFAcfDVj5boS18sBATp/O7+L/F9qrCvn3jbQ1Onsrg=;
        b=IO9So4/WXDiXT/e56lSwgrU2m96IZ+tWtv4ph50nkXpCVGCNSZv9kSKP5Sli5cy2g+
         YtHNhydxwJDsJHo3ks/aEgCXqz9LPKnXQW8rZa4LzYESBHSRkog/NOHWDIRB5RDwaYZY
         sn8V1xNXwzNBavMuitAoqEQeXDCmzU5HyPk8BGM6IQ+SwbFDfJp2vB4y1oTTzEEyb1n3
         ptY3afqsVv6+Yi0JUiBkY9nz6Rm1NtLCMAJLcFzE/Aj5tbZoMmpRm0A9Gcmh/wqCBkIp
         KfQY33iJsGVE1SBpl5mfYGJqZ2y79Z0s+Euejw/hgyHdeSHplJYIDw1Blu+j53bLeMCH
         fGzg==
X-Gm-Message-State: AOAM5325iUJFTk8SV2UTHkrwt304krYV3uoojymy1GrMOFnWDRNjksEy
	DhnUZFifjHKhMlpymuyR3evesnO9ZpLgeQ==
X-Google-Smtp-Source: ABdhPJzeqEo/7ODLalZpn/uWhQuf+BtXcg5hOYe6wx3UTVLwqgqziXEf+6k13p0TWzdhk0aoZkvNeg==
X-Received: by 2002:a05:6512:2101:: with SMTP id q1mr12118307lfr.663.1637740790512;
        Tue, 23 Nov 2021 23:59:50 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v7 5/7] xen/arm: do not map PCI ECAM and MMIO space to Domain-0's p2m
Date: Wed, 24 Nov 2021 09:59:40 +0200
Message-Id: <20211124075942.2645445-6-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211124075942.2645445-1-andr2000@gmail.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

PCI host bridges are special devices in terms of implementing PCI
passthrough. According to [1] the current implementation depends on
Domain-0 to perform the initialization of the relevant PCI host
bridge hardware and perform PCI device enumeration. In order to
achieve that one of the required changes is to not map all the memory
ranges in map_range_to_domain as we traverse the device tree on startup
and perform some additional checks if the range needs to be mapped to
Domain-0.

The generic PCI host controller device tree binding says [2]:
- ranges: As described in IEEE Std 1275-1994, but must provide
          at least a definition of non-prefetchable memory. One
          or both of prefetchable Memory and IO Space may also
          be provided.

- reg   : The Configuration Space base address and size, as accessed
          from the parent bus.  The base address corresponds to
          the first bus in the "bus-range" property.  If no
          "bus-range" is specified, this will be bus 0 (the default).

>From the above none of the memory ranges from the "ranges" property
needs to be mapped to Domain-0 at startup as MMIO mapping is going to
be handled dynamically by vPCI as we assign PCI devices, e.g. each
device assigned to Domain-0/guest will have its MMIOs mapped/unmapped
as needed by Xen.

The "reg" property covers not only ECAM space, but may also have other
then the configuration memory ranges described, for example [3]:
- reg: Should contain rc_dbi, config registers location and length.
- reg-names: Must include the following entries:
   "rc_dbi": controller configuration registers;
   "config": PCIe configuration space registers.

This patch makes it possible to not map all the ranges from the
"ranges" property and also ECAM from the "reg". All the rest from the
"reg" property still needs to be mapped to Domain-0, so the PCI
host bridge remains functional in Domain-0. This is done by first
skipping the mappings while traversing the device tree as it is done for
usual devices and then by calling a dedicated pci_host_bridge_mappings
function which only maps MMIOs required by the host bridges leaving the
regions, needed for vPCI traps, unmapped.

[1] https://lists.xenproject.org/archives/html/xen-devel/2020-07/msg00777.html
[2] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/host-generic-pci.txt
[3] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/hisilicon-pcie.txt

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v7:
- updates in comments and commit message
Since v5:
- remove some need_mapping local variables
- use own_device in handle_device
- add __init for pci_ecam_need_p2m_hwdom_mapping
- make pci_host_bridge_mappings use p2m_mmio_direct_dev directly
Since v4:
- update skip_mapping comment
- add comment why we need to map interrupts to Dom0
Since v3:
 - pass struct map_range_data to map_dt_irq_to_domain
 - remove redundant check from map_range_to_domain
 - fix handle_device's .skip_mapping
Since v2:
 - removed check in map_range_to_domain for PCI_DEV
   and moved it to handle_device, so the code is
   simpler
 - s/map_pci_bridge/skip_mapping
 - extended comment in pci_host_bridge_mappings
 - minor code restructure in construct_dom0
 - s/.need_p2m_mapping/.need_p2m_hwdom_mapping and related
   callbacks
 - unsigned int i; in pci_host_bridge_mappings
Since v1:
 - Added better description of why and what needs to be mapped into
   Domain-0's p2m and what doesn't
 - Do not do any mappings for PCI devices while traversing the DT
 - Walk all the bridges and make required mappings in one go
---
 xen/arch/arm/domain_build.c        | 66 +++++++++++++++++-------------
 xen/arch/arm/pci/ecam.c            | 14 +++++++
 xen/arch/arm/pci/pci-host-common.c | 50 ++++++++++++++++++++++
 xen/arch/arm/pci/pci-host-zynqmp.c |  1 +
 xen/include/asm-arm/pci.h          | 10 +++++
 xen/include/asm-arm/setup.h        | 13 ++++++
 6 files changed, 126 insertions(+), 28 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index c83c02ab8ac6..47c884cca2c3 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -51,12 +51,6 @@ static int __init parse_dom0_mem(const char *s)
 }
 custom_param("dom0_mem", parse_dom0_mem);
 
-struct map_range_data
-{
-    struct domain *d;
-    p2m_type_t p2mt;
-};
-
 /* Override macros from asm/page.h to make them work with mfn_t */
 #undef virt_to_mfn
 #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
@@ -1720,10 +1714,10 @@ static int __init map_dt_irq_to_domain(const struct dt_device_node *dev,
                                        const struct dt_irq *dt_irq,
                                        void *data)
 {
-    struct domain *d = data;
+    struct map_range_data *mr_data = data;
+    struct domain *d = mr_data->d;
     unsigned int irq = dt_irq->irq;
     int res;
-    bool need_mapping = !dt_device_for_passthrough(dev);
 
     if ( irq < NR_LOCAL_IRQS )
     {
@@ -1742,18 +1736,16 @@ static int __init map_dt_irq_to_domain(const struct dt_device_node *dev,
         return res;
     }
 
-    res = map_irq_to_domain(d, irq, need_mapping, dt_node_name(dev));
+    res = map_irq_to_domain(d, irq, !mr_data->skip_mapping, dt_node_name(dev));
 
     return 0;
 }
 
-static int __init map_range_to_domain(const struct dt_device_node *dev,
-                                      u64 addr, u64 len,
-                                      void *data)
+int __init map_range_to_domain(const struct dt_device_node *dev,
+                               u64 addr, u64 len, void *data)
 {
     struct map_range_data *mr_data = data;
     struct domain *d = mr_data->d;
-    bool need_mapping = !dt_device_for_passthrough(dev);
     int res;
 
     res = iomem_permit_access(d, paddr_to_pfn(addr),
@@ -1767,7 +1759,7 @@ static int __init map_range_to_domain(const struct dt_device_node *dev,
         return res;
     }
 
-    if ( need_mapping )
+    if ( !mr_data->skip_mapping )
     {
         res = map_regions_p2mt(d,
                                gaddr_to_gfn(addr),
@@ -1796,23 +1788,21 @@ static int __init map_range_to_domain(const struct dt_device_node *dev,
  * then we may need to perform additional mappings in order to make
  * the child resources available to domain 0.
  */
-static int __init map_device_children(struct domain *d,
-                                      const struct dt_device_node *dev,
-                                      p2m_type_t p2mt)
+static int __init map_device_children(const struct dt_device_node *dev,
+                                      struct map_range_data *mr_data)
 {
-    struct map_range_data mr_data = { .d = d, .p2mt = p2mt };
-    int ret;
-
     if ( dt_device_type_is_equal(dev, "pci") )
     {
+        int ret;
+
         dt_dprintk("Mapping children of %s to guest\n",
                    dt_node_full_name(dev));
 
-        ret = dt_for_each_irq_map(dev, &map_dt_irq_to_domain, d);
+        ret = dt_for_each_irq_map(dev, &map_dt_irq_to_domain, mr_data);
         if ( ret < 0 )
             return ret;
 
-        ret = dt_for_each_range(dev, &map_range_to_domain, &mr_data);
+        ret = dt_for_each_range(dev, &map_range_to_domain, mr_data);
         if ( ret < 0 )
             return ret;
     }
@@ -1892,14 +1882,28 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
     unsigned int i;
     int res;
     u64 addr, size;
-    bool need_mapping = !dt_device_for_passthrough(dev);
+    bool own_device = !dt_device_for_passthrough(dev);
+    /*
+     * We want to avoid mapping the MMIO in dom0 for the following cases:
+     *   - The device is owned by dom0 (i.e. it has been flagged for
+     *     passthrough).
+     *   - PCI host bridges with driver in Xen. They will later be mapped by
+     *     pci_host_bridge_mappings().
+     */
+    struct map_range_data mr_data = {
+        .d = d,
+        .p2mt = p2mt,
+        .skip_mapping = !own_device ||
+                        (is_pci_passthrough_enabled() &&
+                        (device_get_class(dev) == DEVICE_PCI_HOSTBRIDGE))
+    };
 
     naddr = dt_number_of_address(dev);
 
     dt_dprintk("%s passthrough = %d naddr = %u\n",
-               dt_node_full_name(dev), need_mapping, naddr);
+               dt_node_full_name(dev), own_device, naddr);
 
-    if ( need_mapping )
+    if ( own_device )
     {
         dt_dprintk("Check if %s is behind the IOMMU and add it\n",
                    dt_node_full_name(dev));
@@ -1925,14 +1929,13 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
         }
     }
 
-    res = handle_device_interrupts(d, dev, need_mapping);
+    res = handle_device_interrupts(d, dev, own_device);
     if ( res < 0 )
         return res;
 
     /* Give permission and map MMIOs */
     for ( i = 0; i < naddr; i++ )
     {
-        struct map_range_data mr_data = { .d = d, .p2mt = p2mt };
         res = dt_device_get_address(dev, i, &addr, &size);
         if ( res )
         {
@@ -1946,7 +1949,7 @@ static int __init handle_device(struct domain *d, struct dt_device_node *dev,
             return res;
     }
 
-    res = map_device_children(d, dev, p2mt);
+    res = map_device_children(dev, &mr_data);
     if ( res )
         return res;
 
@@ -3105,7 +3108,14 @@ static int __init construct_dom0(struct domain *d)
         return rc;
 
     if ( acpi_disabled )
+    {
         rc = prepare_dtb_hwdom(d, &kinfo);
+        if ( rc < 0 )
+            return rc;
+#ifdef CONFIG_HAS_PCI
+        rc = pci_host_bridge_mappings(d);
+#endif
+    }
     else
         rc = prepare_acpi(d, &kinfo);
 
diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
index 602d00799c8d..4f71b11c3057 100644
--- a/xen/arch/arm/pci/ecam.c
+++ b/xen/arch/arm/pci/ecam.c
@@ -40,6 +40,19 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
     return base + (PCI_DEVFN2(sbdf.bdf) << devfn_shift) + where;
 }
 
+bool __init pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
+                                            struct pci_host_bridge *bridge,
+                                            uint64_t addr)
+{
+    struct pci_config_window *cfg = bridge->cfg;
+
+    /*
+     * We do not want ECAM address space to be mapped in Domain-0's p2m,
+     * so we can trap access to it.
+     */
+    return cfg->phys_addr != addr;
+}
+
 /* ECAM ops */
 const struct pci_ecam_ops pci_generic_ecam_ops = {
     .bus_shift  = 20,
@@ -47,6 +60,7 @@ const struct pci_ecam_ops pci_generic_ecam_ops = {
         .map_bus                = pci_ecam_map_bus,
         .read                   = pci_generic_config_read,
         .write                  = pci_generic_config_write,
+        .need_p2m_hwdom_mapping = pci_ecam_need_p2m_hwdom_mapping,
     }
 };
 
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
index 18b09d5e6f10..1b18480adf02 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -22,6 +22,8 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/setup.h>
+
 /*
  * List for all the pci host bridges.
  */
@@ -313,6 +315,54 @@ int pci_host_iterate_bridges_and_count(struct domain *d,
     return count;
 }
 
+/*
+ * For each PCI host bridge we need to only map those ranges
+ * which are used by Domain-0 to properly initialize the bridge,
+ * e.g. we do not want to map ECAM configuration space which lives in
+ * "reg" device tree property, but we want to map other regions of
+ * the host bridge. The PCI aperture defined by the "ranges" device
+ * tree property should also be skipped.
+ */
+int __init pci_host_bridge_mappings(struct domain *d)
+{
+    struct pci_host_bridge *bridge;
+    struct map_range_data mr_data = {
+        .d = d,
+        .p2mt = p2m_mmio_direct_dev,
+        .skip_mapping = false
+    };
+
+    list_for_each_entry( bridge, &pci_host_bridges, node )
+    {
+        const struct dt_device_node *dev = bridge->dt_node;
+        unsigned int i;
+
+        for ( i = 0; i < dt_number_of_address(dev); i++ )
+        {
+            uint64_t addr, size;
+            int err;
+
+            err = dt_device_get_address(dev, i, &addr, &size);
+            if ( err )
+            {
+                printk(XENLOG_ERR
+                       "Unable to retrieve address range index=%u for %s\n",
+                       i, dt_node_full_name(dev));
+                return err;
+            }
+
+            if ( bridge->ops->need_p2m_hwdom_mapping(d, bridge, addr) )
+            {
+                err = map_range_to_domain(dev, addr, size, &mr_data);
+                if ( err )
+                    return err;
+            }
+        }
+    }
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host-zynqmp.c
index 516982bca833..101edb8593c1 100644
--- a/xen/arch/arm/pci/pci-host-zynqmp.c
+++ b/xen/arch/arm/pci/pci-host-zynqmp.c
@@ -34,6 +34,7 @@ const struct pci_ecam_ops nwl_pcie_ops = {
         .map_bus                = pci_ecam_map_bus,
         .read                   = pci_generic_config_read,
         .write                  = pci_generic_config_write,
+        .need_p2m_hwdom_mapping = pci_ecam_need_p2m_hwdom_mapping,
     }
 };
 
diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
index 4278d66e5eb9..679fc83f713b 100644
--- a/xen/include/asm-arm/pci.h
+++ b/xen/include/asm-arm/pci.h
@@ -17,6 +17,8 @@
 
 #ifdef CONFIG_HAS_PCI
 
+#include <asm/p2m.h>
+
 #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
 
 extern bool pci_passthrough_enabled;
@@ -73,6 +75,9 @@ struct pci_ops {
                 uint32_t reg, uint32_t len, uint32_t *value);
     int (*write)(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
                  uint32_t reg, uint32_t len, uint32_t value);
+    bool (*need_p2m_hwdom_mapping)(struct domain *d,
+                                   struct pci_host_bridge *bridge,
+                                   uint64_t addr);
 };
 
 /*
@@ -96,6 +101,9 @@ int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
                              uint32_t reg, uint32_t len, uint32_t value);
 void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
                                pci_sbdf_t sbdf, uint32_t where);
+bool pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
+                                     struct pci_host_bridge *bridge,
+                                     uint64_t addr);
 struct pci_host_bridge *pci_find_host_bridge(uint16_t segment, uint8_t bus);
 struct dt_device_node *pci_find_host_bridge_node(struct device *dev);
 int pci_get_host_bridge_segment(const struct dt_device_node *node,
@@ -114,6 +122,8 @@ int pci_host_iterate_bridges_and_count(struct domain *d,
                                        int (*cb)(struct domain *d,
                                                  struct pci_host_bridge *bridge));
 
+int pci_host_bridge_mappings(struct domain *d);
+
 #else   /*!CONFIG_HAS_PCI*/
 
 struct arch_pci_dev { };
diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
index 95da0b7ab9cd..88d9673db817 100644
--- a/xen/include/asm-arm/setup.h
+++ b/xen/include/asm-arm/setup.h
@@ -2,6 +2,8 @@
 #define __ARM_SETUP_H_
 
 #include <public/version.h>
+#include <asm/p2m.h>
+#include <xen/device_tree.h>
 
 #define MIN_FDT_ALIGN 8
 #define MAX_FDT_SIZE SZ_2M
@@ -77,6 +79,14 @@ struct bootinfo {
 #endif
 };
 
+struct map_range_data
+{
+    struct domain *d;
+    p2m_type_t p2mt;
+    /* Set if mapping of the memory ranges must be skipped. */
+    bool skip_mapping;
+};
+
 extern struct bootinfo bootinfo;
 
 extern domid_t max_init_domid;
@@ -124,6 +134,9 @@ void device_tree_get_reg(const __be32 **cell, u32 address_cells,
 u32 device_tree_get_u32(const void *fdt, int node,
                         const char *prop_name, u32 dflt);
 
+int map_range_to_domain(const struct dt_device_node *dev,
+                        u64 addr, u64 len, void *data);
+
 #endif
 /*
  * Local variables:
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:59:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:59:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230146.397905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC4-0006uK-WE; Wed, 24 Nov 2021 07:59:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230146.397905; Wed, 24 Nov 2021 07:59:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC4-0006u7-So; Wed, 24 Nov 2021 07:59:52 +0000
Received: by outflank-mailman (input) for mailman id 230146;
 Wed, 24 Nov 2021 07:59:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CYi7=QL=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mpnC2-0006a3-Qy
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:59:50 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7fabd428-4cfc-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 08:59:50 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id c32so4982497lfv.4
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 23:59:49 -0800 (PST)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id i24sm1750358ljm.135.2021.11.23.23.59.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 23:59:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fabd428-4cfc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=NtLazSat9apxux+5yyxbOkPmv89tR4XWYJTOoTreBMc=;
        b=MbPbydd08IszozKtXB23iEi80MXIftRDzIuvnQIitsp27FmVYxqB1d+gnQDZePIqLE
         FIgXdx/u1BXkOHDbLQUol2vYaerLrB56zRhlsyBQXdOHuRV/I5KgEjFfM9M2KFzyoH7A
         as6pVIjYNBcEkQ5jYHjFqdEXHZjt9kR+WD4PLSd6KIm/bYYIIfJOVyCiaFe04slbFTOj
         asCWuOS0KLjiQ9cUpD8dEpnuMJh/dQzxyha7JJ/PaYFEjE0/s7Vx8uM0c/PDsIIfZbOy
         1mIwuRWh4KZo1dA3NqXczSQYCSGfbYGcMv6EF0+BZAlphnT5XAX91UyUmCqWyQMa5S3p
         CgCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=NtLazSat9apxux+5yyxbOkPmv89tR4XWYJTOoTreBMc=;
        b=LvY9f09Y0MiplaIq5rxOZ3q2smcpkkYMvTgPiuuFs8dboY5TyRjDhz3d0+Ixd3v9oH
         zuzWydWw11oEXZxjA2fGv5L5t/McUYBlEtfKPiohbV1CaDzqaFt3NBYPga5/C8Aouk4z
         sSlJiO2k6WJtZTUQOK79cUHjXQ31483CunzRojOLNmh+TfTMljDBZwC4UFxxnOAtq9G4
         sbZt2LcIV8gZ8NwdoVLamqKfZN+8bIrMkbIoWOhY/5vlf8EQ5ee6TKLELpIRsuFz5UWE
         MB16S5XZbz1YI+lcqj4Gh7Wnrp31WnXfFU+Hfo+7EIHi7TFLR1sXIcWW1R5xQLMbJSzW
         3Mcw==
X-Gm-Message-State: AOAM530OuLuyOtWsr2wZ8046xVSpjoshe/NSPyyMtqo/z2H45HlN6waG
	J2HGv5KDtyfLjOdQn3Ns0rHScOmmK4kOxg==
X-Google-Smtp-Source: ABdhPJxJvBRGULlAB79krxpx2pd/sSPt0RtA66daRKicCVK9MHazHG557XsZg0SUYIuzBhUCn/HNGw==
X-Received: by 2002:a05:6512:ac9:: with SMTP id n9mr12022679lfu.59.1637740789446;
        Tue, 23 Nov 2021 23:59:49 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v7 4/7] xen/arm: account IO handler for emulated PCI host bridge
Date: Wed, 24 Nov 2021 09:59:39 +0200
Message-Id: <20211124075942.2645445-5-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211124075942.2645445-1-andr2000@gmail.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

At the moment, we always allocate an extra 16 slots for IO handlers
(see MAX_IO_HANDLER). So while adding an IO trap handler for the emulated
PCI host bridge we are not breaking anything, but we have a latent bug
as the maximum number of IOs may be exceeded.
Fix this by explicitly telling that we have an additional IO handler, so it is
accounted.

Fixes: d59168dc05a5 ("xen/arm: Enable the existing x86 virtual PCI support for ARM")

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
New in v7
---
 xen/arch/arm/vpci.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index ccd998d8dba2..8e801f275879 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -126,7 +126,8 @@ unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
         return ret < 0 ? 0 : ret;
     }
 
-    return 0;
+    /* For a single emulated host bridge's configuration space. */
+    return 1;
 }
 
 /*
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:59:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:59:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230145.397894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC2-0006aD-Jk; Wed, 24 Nov 2021 07:59:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230145.397894; Wed, 24 Nov 2021 07:59:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC2-0006a4-EY; Wed, 24 Nov 2021 07:59:50 +0000
Received: by outflank-mailman (input) for mailman id 230145;
 Wed, 24 Nov 2021 07:59:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CYi7=QL=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mpnC0-000641-Mm
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:59:48 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e5b02be-4cfc-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:59:47 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id k23so3673807lje.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 23:59:47 -0800 (PST)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id i24sm1750358ljm.135.2021.11.23.23.59.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 23:59:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e5b02be-4cfc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=KkHhYh1NWjHxEjAv0HXlf2QneLzqhRUOgxfD/xwWw+c=;
        b=bzykV/sO60cjghsFXeouZeeZQ2FfzEexc7UGsAx2Ekc2ogaKJgY8/Dty5JjDxgb2IE
         oVEi9IvxGBkmhMCOjZbPRp0WK8/Yazp0wqiNmonSwZBrRzi3YOO2+lw7MvzvgpdmqWRV
         JplXAXJ24uWJ1y6m8Ojw36irTyiLdwrLI1EHG9eFDvBLO3kvvjZD+9TM3daq9B69nZ01
         b+DvDVJvEk1palt7/m9Xw5eE6ujvvGFDFBCApkI6R6urJrd2qPY5Aic2PuXlX7M+mDHw
         eK2AeXE7JvIbf1jYQz53QHEAtLlsR0lm3NfPzijHgKevo6WTvF9DnHsq1Ld4e7hYXeye
         qMaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=KkHhYh1NWjHxEjAv0HXlf2QneLzqhRUOgxfD/xwWw+c=;
        b=Vrjg6N2vszq1K6Gc63horJJlCfirwYZx370qIEi839DsM9/3PV3FF2HVOlE3MuTuy3
         D/CPi7vZ1IcH4Fs/Up5v2csfegOihGDZf/vv93h3pHHNbq3elF0s7WzQ4rfAcvZAWhuv
         RFQ/Mgot35t6us0n1ENmkWufrFPDHtcuKdyXZuROyMkv1HrscH/AsHNzlRv87qdXQTWn
         jj/1BxP7cokRiJ3ITj78Dz/Nsh6ppKbtQZUlcvYyQLA6IdxDHBg7QPAUIuFg/q6t5oBn
         LAoWrAEVkJmwOBEzPs+zvRvfhlSh/KpheBCoYIJv+JXwbUUXG1K5IlUzZOlO71+ludBO
         V+fw==
X-Gm-Message-State: AOAM533spHxbXQFLOlU4L7/DJKgha/SbHCbCD2+06yTAiFunWGgDTKnA
	28qp5uxRfTYfdvDxLsuTYxhmJXVR+o0vAw==
X-Google-Smtp-Source: ABdhPJx9nN49TFsQ5xzG50EnhxC+e1pVOXpjLxq1E6VNokclR+ruBOUEqt3ZGSMOkA3LaBsYV1UyIg==
X-Received: by 2002:a05:651c:514:: with SMTP id o20mr13414786ljp.393.1637740787221;
        Tue, 23 Nov 2021 23:59:47 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v7 2/7] xen/arm: add pci-domain for disabled devices
Date: Wed, 24 Nov 2021 09:59:37 +0200
Message-Id: <20211124075942.2645445-3-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211124075942.2645445-1-andr2000@gmail.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

If a PCI host bridge device is present in the device tree, but is
disabled, then its PCI host bridge driver was not instantiated.
This results in the failure of the pci_get_host_bridge_segment()
and the following panic during Xen start:

(XEN) Device tree generation failed (-22).
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Could not set up DOM0 guest OS
(XEN) ****************************************

Fix this by adding "linux,pci-domain" property for all device tree nodes
which have "pci" device type, so we know which segments will be used by
the guest for which bridges.

Fixes: 4cfab4425d39 ("xen/arm: Add linux,pci-domain property for hwdom if not available.")

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Since v6:
- use use_dt_domains in pci_get_new_domain_nr and return -1 if set
- do not set "linux,pci-domain" if parent device is "pci"
- move the code to a new helper handle_linux_pci_domain (Julien)
New in v6
---
 xen/arch/arm/domain_build.c        | 66 +++++++++++++++++++++++-------
 xen/arch/arm/pci/pci-host-common.c |  8 +++-
 xen/include/asm-arm/pci.h          |  8 ++++
 3 files changed, 66 insertions(+), 16 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index e76cee3caccf..c83c02ab8ac6 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -654,6 +654,55 @@ static void __init allocate_static_memory(struct domain *d,
 }
 #endif
 
+/*
+ * When PCI passthrough is available we want to keep the
+ * "linux,pci-domain" in sync for every host bridge.
+ *
+ * Xen may not have a driver for all the host bridges. So we have
+ * to write an heuristic to detect whether a device node describes
+ * a host bridge.
+ *
+ * The current heuristic assumes that a device is a host bridge
+ * if the type is "pci" and then parent type is not "pci".
+ */
+static int handle_linux_pci_domain(struct kernel_info *kinfo,
+                                   const struct dt_device_node *node)
+{
+    uint16_t segment;
+    int res;
+
+    if ( !is_pci_passthrough_enabled() )
+        return 0;
+
+    if ( !dt_device_type_is_equal(node, "pci") )
+        return 0;
+
+    if ( node->parent && dt_device_type_is_equal(node->parent, "pci") )
+        return 0;
+
+    if ( dt_find_property(node, "linux,pci-domain", NULL) )
+        return 0;
+
+    /* Allocate and create the linux,pci-domain */
+    res = pci_get_host_bridge_segment(node, &segment);
+    if ( res < 0 )
+    {
+        res = pci_get_new_domain_nr();
+        if ( res < 0 )
+        {
+            printk(XENLOG_DEBUG "Can't assign PCI segment to %s\n",
+                   node->full_name);
+            return -FDT_ERR_NOTFOUND;
+        }
+
+        segment = res;
+        printk(XENLOG_DEBUG "Assigned segment %d to %s\n",
+               segment, node->full_name);
+    }
+
+    return fdt_property_cell(kinfo->fdt, "linux,pci-domain", segment);
+}
+
 static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
                                    const struct dt_device_node *node)
 {
@@ -755,21 +804,10 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
             return res;
     }
 
-    if ( is_pci_passthrough_enabled() && dt_device_type_is_equal(node, "pci") )
-    {
-        if ( !dt_find_property(node, "linux,pci-domain", NULL) )
-        {
-            uint16_t segment;
-
-            res = pci_get_host_bridge_segment(node, &segment);
-            if ( res < 0 )
-                return res;
+    res = handle_linux_pci_domain(kinfo, node);
 
-            res = fdt_property_cell(kinfo->fdt, "linux,pci-domain", segment);
-            if ( res )
-                return res;
-        }
-    }
+    if ( res )
+        return res;
 
     /*
      * Override the property "status" to disable the device when it's
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
index cdeb3a283a77..9653b92b5b2e 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -30,6 +30,8 @@ static LIST_HEAD(pci_host_bridges);
 
 static atomic_t domain_nr = ATOMIC_INIT(-1);
 
+static int use_dt_domains = -1;
+
 static inline void __iomem *pci_remap_cfgspace(paddr_t start, size_t len)
 {
     return ioremap_nocache(start, len);
@@ -137,14 +139,16 @@ void pci_add_host_bridge(struct pci_host_bridge *bridge)
     list_add_tail(&bridge->node, &pci_host_bridges);
 }
 
-static int pci_get_new_domain_nr(void)
+int pci_get_new_domain_nr(void)
 {
+    if ( use_dt_domains )
+        return -1;
+
     return atomic_inc_return(&domain_nr);
 }
 
 static int pci_bus_find_domain_nr(struct dt_device_node *dev)
 {
-    static int use_dt_domains = -1;
     int domain;
 
     domain = dt_get_pci_domain_nr(dev);
diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
index 81273e0d87ac..c20eba643d86 100644
--- a/xen/include/asm-arm/pci.h
+++ b/xen/include/asm-arm/pci.h
@@ -108,6 +108,8 @@ static always_inline bool is_pci_passthrough_enabled(void)
 
 void arch_pci_init_pdev(struct pci_dev *pdev);
 
+int pci_get_new_domain_nr(void);
+
 #else   /*!CONFIG_HAS_PCI*/
 
 struct arch_pci_dev { };
@@ -128,5 +130,11 @@ static inline int pci_get_host_bridge_segment(const struct dt_device_node *node,
     return -EINVAL;
 }
 
+static inline int pci_get_new_domain_nr(void)
+{
+    ASSERT_UNREACHABLE();
+    return -1;
+}
+
 #endif  /*!CONFIG_HAS_PCI*/
 #endif /* __ARM_PCI_H__ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:59:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:59:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230149.397922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC6-0007Ex-OK; Wed, 24 Nov 2021 07:59:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230149.397922; Wed, 24 Nov 2021 07:59:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC6-0007B5-F0; Wed, 24 Nov 2021 07:59:54 +0000
Received: by outflank-mailman (input) for mailman id 230149;
 Wed, 24 Nov 2021 07:59:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CYi7=QL=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mpnC5-0006a3-0s
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:59:53 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 80fc7e82-4cfc-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 08:59:52 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id 207so3571506ljf.10
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 23:59:52 -0800 (PST)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id i24sm1750358ljm.135.2021.11.23.23.59.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 23:59:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80fc7e82-4cfc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=bjFZpW48zi8kzMV1Qalht/WLcDbP0OlhtteqBSVp5Go=;
        b=o9w9CKOl5vt2YPplpPGhxiD6QtvA0G30Yn3IsLXwoPEBfB2WV9r7Ec8mEVY3vJDMFB
         UUinnnxrNOOZ+baitvt4EWvoHFtqz9KQ3ob8Ak7lRGjpGTQTcvzVJRPSRO2/SwADczE0
         zlLCk+f4el2PplaQ/PvHY6GNm812jti1cwjCd7+P/z6Ifi/9N5IPzP9mRbbKmCxehh30
         IC2061KUkFdYApXcMf0Ffsj0KOEUqnrFHsg/nKsEiNTyQq7zQ7KBnnfV1O4Fx03A6KEc
         5z59SqTLN4YuF/7OOWI0UfohgXgSubDs2Z5Z0kLLxF8zVjFCdvEw1tWHB0gFCMknY77/
         PMIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=bjFZpW48zi8kzMV1Qalht/WLcDbP0OlhtteqBSVp5Go=;
        b=fa5BdvbFxDFgOoUCnxDMvGbSlRY1Ku7LDHyjI/YHlPUpkXvRhyg6RL87ZmCEO78uhM
         17f71EAxLyaJbAu0CsZufw/i8K349Ca2y7rVFVIjGx3vxDWNB+uAVgxhNeh+4mwfy9vE
         cqdDsyz/SeMmNwLp3ROLr6xrjxiW+PbYjiK1r/6UXzWW+DgJMZvGD068ASBNuysR2aDD
         g7nHt44iLoKUBeQoWV2WvwS/hW791D/EgbdqaAbz+GZTX7+OcPpEK3FLBlg5YdGak37L
         QlAyInPh/0HfMuEyMab+StsIJ9dhXdDtGXPP5grzQWHsKvR8f6gu0R1RI5LnTFkZQT/7
         ZGzg==
X-Gm-Message-State: AOAM5304qVxvSC0TKWLUCby19eoFYbylt2BL+C918houulNJtTwijkpe
	39JI+H3ks/oTDOfY6c/I61NtlR9puQ+elw==
X-Google-Smtp-Source: ABdhPJyX2l/icfyS9QZFeP5bbqeK5COGfFR6aGciFju2+RQ8jtec3iR+467q9jAbwxflHePDSqKNJQ==
X-Received: by 2002:a2e:870b:: with SMTP id m11mr12691327lji.20.1637740791614;
        Tue, 23 Nov 2021 23:59:51 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v7 6/7] xen/arm: process pending vPCI map/unmap operations
Date: Wed, 24 Nov 2021 09:59:41 +0200
Message-Id: <20211124075942.2645445-7-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211124075942.2645445-1-andr2000@gmail.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

vPCI may map and unmap PCI device memory (BARs) being passed through which
may take a lot of time. For this those operations may be deferred to be
performed later, so that they can be safely preempted.

Currently this deferred processing is happening in common IOREQ code
which doesn't seem to be the right place for x86 and is even more
doubtful because IOREQ may not be enabled for Arm at all.
So, for Arm the pending vPCI work may have no chance to be executed
if the processing is left as is in the common IOREQ code only.
For that reason make vPCI processing happen in arch specific code.

Please be aware that there are a few outstanding TODOs affecting this
code path, see xen/drivers/vpci/header.c:map_range and
xen/drivers/vpci/header.c:vpci_process_pending.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
[x86 part]
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Paul Durrant <paul@xen.org>

Since v5:
 - check_for_vcpu_work: vPCI addition is moved before the
   vcpu_ioreq__handle_completion(v). This is to avoid differences
   with the x86 version. (Julien)
Since v2:
 - update commit message with more insight on x86, IOREQ and Arm
 - restored order of invocation for IOREQ and vPCI processing (Jan)
Since v1:
 - Moved the check for pending vpci work from the common IOREQ code
   to hvm_do_resume on x86
 - Re-worked the code for Arm to ensure we don't miss pending vPCI work
---
 xen/arch/arm/traps.c   | 13 +++++++++++++
 xen/arch/x86/hvm/hvm.c |  6 ++++++
 xen/common/ioreq.c     |  9 ---------
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 219ab3c3fbde..8757210a798b 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -34,6 +34,7 @@
 #include <xen/symbols.h>
 #include <xen/version.h>
 #include <xen/virtual_region.h>
+#include <xen/vpci.h>
 
 #include <public/sched.h>
 #include <public/xen.h>
@@ -2290,6 +2291,18 @@ static bool check_for_vcpu_work(void)
 {
     struct vcpu *v = current;
 
+    if ( has_vpci(v->domain) )
+    {
+        bool pending;
+
+        local_irq_enable();
+        pending = vpci_process_pending(v);
+        local_irq_disable();
+
+        if ( pending )
+            return true;
+    }
+
 #ifdef CONFIG_IOREQ_SERVER
     if ( domain_has_ioreq_server(v->domain) )
     {
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index eee365711d63..096a61b7ea02 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -546,6 +546,12 @@ void hvm_do_resume(struct vcpu *v)
 
     pt_restore_timer(v);
 
+    if ( has_vpci(v->domain) && vpci_process_pending(v) )
+    {
+        raise_softirq(SCHEDULE_SOFTIRQ);
+        return;
+    }
+
     if ( !vcpu_ioreq_handle_completion(v) )
         return;
 
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index d732dc045df9..689d256544c8 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -25,9 +25,7 @@
 #include <xen/lib.h>
 #include <xen/paging.h>
 #include <xen/sched.h>
-#include <xen/softirq.h>
 #include <xen/trace.h>
-#include <xen/vpci.h>
 
 #include <asm/guest_atomics.h>
 #include <asm/ioreq.h>
@@ -212,19 +210,12 @@ static bool wait_for_io(struct ioreq_vcpu *sv, ioreq_t *p)
 
 bool vcpu_ioreq_handle_completion(struct vcpu *v)
 {
-    struct domain *d = v->domain;
     struct vcpu_io *vio = &v->io;
     struct ioreq_server *s;
     struct ioreq_vcpu *sv;
     enum vio_completion completion;
     bool res = true;
 
-    if ( has_vpci(d) && vpci_process_pending(v) )
-    {
-        raise_softirq(SCHEDULE_SOFTIRQ);
-        return false;
-    }
-
     while ( (sv = get_pending_vcpu(v, &s)) != NULL )
         if ( !wait_for_io(sv, get_ioreq(s, v)) )
             return false;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:59:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230143.397871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC0-00064I-1Y; Wed, 24 Nov 2021 07:59:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230143.397871; Wed, 24 Nov 2021 07:59:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnBz-00064B-U2; Wed, 24 Nov 2021 07:59:47 +0000
Received: by outflank-mailman (input) for mailman id 230143;
 Wed, 24 Nov 2021 07:59:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CYi7=QL=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mpnBy-000641-Jr
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:59:46 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7d1a34e9-4cfc-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:59:45 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id t11so3622209ljh.6
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 23:59:45 -0800 (PST)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id i24sm1750358ljm.135.2021.11.23.23.59.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 23:59:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d1a34e9-4cfc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=Ey/iEZjdG4Lke2qF+bL5ScgZc5iePgpWDmMUJiz2lTA=;
        b=eujJ2bAxgjH4iTCs6zjyA9ZJvawIzJMSLvsELa/tF/5MaaZU4/y+e1/3b5ZZYnABVg
         d2FCkztTw4qVJEOr2BgkqsZUspoKSM68mlq3pmBray+pvlDd/4Z/t7uTChalvEhZBI41
         Oud1GGIuDpYCxoEhgwGAPZ8OcWIIGiza9hyA8M8rE1xsRKwolRvElLv/sHNKd5FztnnM
         lVmT+XLSwWbjBvvAM8QhqrSb37x4HnnzDHyRu8exRUN/oDDnill5azf6chRnYJxyYVtr
         g1B3zehI8s8xzB9bEkAY+9O99P8Up+zcymEgkHCuGZFtGDVtHWZVh6Qiqa407yq5RHqH
         JB5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=Ey/iEZjdG4Lke2qF+bL5ScgZc5iePgpWDmMUJiz2lTA=;
        b=qfXYkcVuP3IrxiiPXzS2ZXxL/APbDVleLx1OjgIVZQHiBf/wWVybO7enY+XStUEGiH
         sFA7VZETFrD+6aAnqUBXsWv9tYIalUl6sprC999Douz226qhKDp58cHD6XVmPmrUQZWA
         gqTTUOZGr4ZMP108B1alTSZT23T6w8zDg/lwmpi8oYkq+UhALTcYHavpzZPb2HS1ZgMw
         5OJtVIGoAB4YJQ8xW6d7xnMn78laezecVO/+n5J+vqEI5kCpJgphSh/WQFU3icXWlYY7
         txMzbGbMALIX4f+K44VAqIj+3ikJRr2tGv1rabW8ytDlPkcVrT1NjFpHIsg2OEcmEKlb
         pCJg==
X-Gm-Message-State: AOAM530oDbtCYw53zsL70yB44FRk3kS1xz0gyIQmmvMIWJW+Q5zkmqEm
	aF4iJQ1zjntKbeZu4IPohmfOLzZPz4PZ+Q==
X-Google-Smtp-Source: ABdhPJxY1BTk6/60XMVdQAY3sadfqBCqk+53e/NR27fRMpmfcnzFflyANLDgiUyCiNAESBdq+uXgog==
X-Received: by 2002:a2e:a688:: with SMTP id q8mr13268512lje.349.1637740785027;
        Tue, 23 Nov 2021 23:59:45 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v7 0/7] PCI devices passthrough on Arm, part 2
Date: Wed, 24 Nov 2021 09:59:35 +0200
Message-Id: <20211124075942.2645445-1-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Hi, all!

This is an assorted series of patches which aim is to make some further
basis for PCI passthrough on Arm support. The series continues the work
published earlier by Arm [1] and adds new helpers and clears the way for
vPCI changes which will follow.

RFC is at [2], [3]. Design presentation can be found at [4].

I have removed patch
[PATCH v6 5/7] xen/arm: do not map IRQs and memory for disabled devices
as it seems that this needs more time for decision on how to achive
that.

I have also added a new patch
[PATCH v7 4/7] xen/arm: account IO handler for emulated PCI host bridge
with a tiny latent bug fix.

Thank you,
Oleksandr

[1] https://patchwork.kernel.org/project/xen-devel/list/?series=558681
[2] https://lists.xenproject.org/archives/html/xen-devel/2020-07/msg01184.html
[3] https://lists.xenproject.org/archives/html/xen-devel/2020-07/threads.html#01184
[4] https://static.sched.com/hosted_files/xen2021/e4/PCI_Device_Passthrough_On_Arm.pdf

Oleksandr Andrushchenko (7):
  xen/arm: rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE
  xen/arm: add pci-domain for disabled devices
  xen/arm: setup MMIO range trap handlers for hardware domain
  xen/arm: account IO handler for emulated PCI host bridge
  xen/arm: do not map PCI ECAM and MMIO space to Domain-0's p2m
  xen/arm: process pending vPCI map/unmap operations
  xen/arm: do not use void pointer in pci_host_common_probe

 xen/arch/arm/domain.c               |   2 +
 xen/arch/arm/domain_build.c         | 132 +++++++++++++++++++---------
 xen/arch/arm/pci/ecam.c             |  18 +++-
 xen/arch/arm/pci/pci-host-common.c  |  81 +++++++++++++++--
 xen/arch/arm/pci/pci-host-generic.c |   2 +-
 xen/arch/arm/pci/pci-host-zynqmp.c  |   3 +-
 xen/arch/arm/pci/pci.c              |   2 +-
 xen/arch/arm/traps.c                |  13 +++
 xen/arch/arm/vpci.c                 |  80 +++++++++++++++--
 xen/arch/arm/vpci.h                 |   6 ++
 xen/arch/x86/hvm/hvm.c              |   6 ++
 xen/common/ioreq.c                  |   9 --
 xen/include/asm-arm/device.h        |   2 +-
 xen/include/asm-arm/pci.h           |  27 +++++-
 xen/include/asm-arm/setup.h         |  13 +++
 15 files changed, 323 insertions(+), 73 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:59:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230150.397940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC8-0007hc-6x; Wed, 24 Nov 2021 07:59:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230150.397940; Wed, 24 Nov 2021 07:59:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC7-0007g9-ST; Wed, 24 Nov 2021 07:59:55 +0000
Received: by outflank-mailman (input) for mailman id 230150;
 Wed, 24 Nov 2021 07:59:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CYi7=QL=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mpnC5-000641-To
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:59:54 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8199097e-4cfc-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:59:53 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id l22so4951015lfg.7
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 23:59:53 -0800 (PST)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id i24sm1750358ljm.135.2021.11.23.23.59.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 23:59:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8199097e-4cfc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=MOZs5e3kpEpL+b+deAV/zwFnsBBkhNnhQEIpK1qMuJ0=;
        b=RIJUOX3nHwSi2SR6buZMi5SQHDAQreoujMtCVvw4wVMs5Oc/LmzuHHJhOGAM0sfwwG
         7X9RXZhD/MEsLRjSkiZM16h17sG6FnVWrvw+Rtlv0sBZOAkj9uPa1VZ17riqXoT8u0Wh
         ki4KPsEPLTtLthMTZzZ/sXpNmz/wb5vhHgYlYbp6wDW2RU5FxIDK86y9YDWBmcsp4q5M
         42p6bJNsdWhFZxX72dDLH5KyYs+g+/7CU3+rPTPjDE0DJ6oFY4fC0URsrvpCRtRa/kxw
         /9pFL/SiB39tlqQnm54ecZSC5u5KePTqlTDFmVkuES4qJjXZW66c905CDlhLZbUcy8YL
         EmCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=MOZs5e3kpEpL+b+deAV/zwFnsBBkhNnhQEIpK1qMuJ0=;
        b=Ritzh5t+FgpLKvcarBSHzCsuoRZp5NMpfe8AIqvMKqQLJS0xopYJ7P5j2VFaxa+Uyq
         y9cXnseZtC9jr+IfgjdqFyglgb5htf6+0E8+69XXQ+m2im7dZ0y3pure1urmRfC3OcK/
         Loypq2CGn+QEaVn9TTOhoLR6cMY2WOPyVWiD1xec05cch/4WiSAsPz7fsB737UROMVHQ
         8sWOwYO6/bvN8Bdv7ltXJbgjdeVb+D5IxpVaTVcgnKwbmYwCwYQXf8j3CCcieuojY8a4
         1KP9PxOdx5KFKRNDPB4M2Ma35mAqiW3rR8262mr9bXsJXochpVH3dc+1Syt9cQ466tTm
         yMkQ==
X-Gm-Message-State: AOAM530OJ47mkyIJKhwRnkOsgijdQAoiTHFxU57v7U6bMmma+e/RZ5+U
	SaAvh67tzA2ef/N8pRomK40i7RbM3g9dxg==
X-Google-Smtp-Source: ABdhPJx+u46xX+7n/0n6dnGmme9l1Kx67ttIOWgvMxAk+0FuvAplKaRIkj3mbLKrtDkacbpLOzy3TQ==
X-Received: by 2002:a19:3844:: with SMTP id d4mr11647104lfj.64.1637740792674;
        Tue, 23 Nov 2021 23:59:52 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v7 7/7] xen/arm: do not use void pointer in pci_host_common_probe
Date: Wed, 24 Nov 2021 09:59:42 +0200
Message-Id: <20211124075942.2645445-8-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211124075942.2645445-1-andr2000@gmail.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There is no reason to use void pointer while passing ECAM ops to the
pci_host_common_probe function as it is anyway casted to struct pci_ecam_ops
inside. For that reason remove the void pointer and pass struct pci_ecam_ops
pointer as is.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
New in v4
---
 xen/arch/arm/pci/ecam.c            | 4 ++--
 xen/arch/arm/pci/pci-host-common.c | 6 ++----
 xen/include/asm-arm/pci.h          | 5 +++--
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
index 4f71b11c3057..6aeea12a68bf 100644
--- a/xen/arch/arm/pci/ecam.c
+++ b/xen/arch/arm/pci/ecam.c
@@ -24,8 +24,8 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
                                pci_sbdf_t sbdf, uint32_t where)
 {
     const struct pci_config_window *cfg = bridge->cfg;
-    struct pci_ecam_ops *ops =
-        container_of(bridge->ops, struct pci_ecam_ops, pci_ops);
+    const struct pci_ecam_ops *ops =
+        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
     unsigned int devfn_shift = ops->bus_shift - 8;
     void __iomem *base;
 
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
index 1b18480adf02..b1a26eb840ab 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -198,18 +198,16 @@ static int pci_bus_find_domain_nr(struct dt_device_node *dev)
     return domain;
 }
 
-int pci_host_common_probe(struct dt_device_node *dev, const void *data)
+int pci_host_common_probe(struct dt_device_node *dev,
+                          const struct pci_ecam_ops *ops)
 {
     struct pci_host_bridge *bridge;
     struct pci_config_window *cfg;
-    struct pci_ecam_ops *ops;
     int err;
 
     if ( dt_device_for_passthrough(dev) )
         return 0;
 
-    ops = (struct pci_ecam_ops *) data;
-
     bridge = pci_alloc_host_bridge();
     if ( !bridge )
         return -ENOMEM;
diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
index 679fc83f713b..7c7449d64fca 100644
--- a/xen/include/asm-arm/pci.h
+++ b/xen/include/asm-arm/pci.h
@@ -65,7 +65,7 @@ struct pci_host_bridge {
     struct list_head node;           /* Node in list of host bridges */
     uint16_t segment;                /* Segment number */
     struct pci_config_window* cfg;   /* Pointer to the bridge config window */
-    struct pci_ops *ops;
+    const struct pci_ops *ops;
 };
 
 struct pci_ops {
@@ -94,7 +94,8 @@ struct pci_ecam_ops {
 /* Default ECAM ops */
 extern const struct pci_ecam_ops pci_generic_ecam_ops;
 
-int pci_host_common_probe(struct dt_device_node *dev, const void *data);
+int pci_host_common_probe(struct dt_device_node *dev,
+                          const struct pci_ecam_ops *ops);
 int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
                             uint32_t reg, uint32_t len, uint32_t *value);
 int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 07:59:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 07:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230144.397883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC1-0006K0-AA; Wed, 24 Nov 2021 07:59:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230144.397883; Wed, 24 Nov 2021 07:59:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpnC1-0006Jt-6G; Wed, 24 Nov 2021 07:59:49 +0000
Received: by outflank-mailman (input) for mailman id 230144;
 Wed, 24 Nov 2021 07:59:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CYi7=QL=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mpnBz-000641-MT
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 07:59:47 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7dcc7a3a-4cfc-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 08:59:46 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id t26so4895181lfk.9
 for <xen-devel@lists.xenproject.org>; Tue, 23 Nov 2021 23:59:46 -0800 (PST)
Received: from localhost.localdomain ([185.199.97.5])
 by smtp.gmail.com with ESMTPSA id i24sm1750358ljm.135.2021.11.23.23.59.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Nov 2021 23:59:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7dcc7a3a-4cfc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=rH0iLPl/lC8zdfMkSvOZAn1ZGtgBTiLGnIq2zauCwpU=;
        b=CvHAJ1xE04NRPrR9uFUw3/zuzpPFg3u9wujjKFYXCAW/WtikFS4AZMgWnoVUWp0YU0
         WghuxtO9EsC8Apr/X1cAc5gCPxm5sVb7+XgBZRz9IvgQS3XEnRxHo0/9okx8EMxAxI9q
         ItCDsuuiPjULzGue5LgYRctAbEAl/Nk2rLP5k9OnTJGB0VQJMxKHtAb1AbVe+H2VFqhd
         XdorHPa8OrhdN58sPA3/4UtEGA4vrK6FHYfSctMS8eDq9LxvMX6ZPeYfN7vE+KrgzyW4
         YZ9ww4dByLm2snpsOm/G6MlIVwWOOWMdY1fzGUQWbcAmHikUQGkDXlUH9AMQ440cYec3
         /nag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=rH0iLPl/lC8zdfMkSvOZAn1ZGtgBTiLGnIq2zauCwpU=;
        b=GtoXhd+ipb4Dm19umfnOknFJwXOHTd+mQPO7iqCDfVh3gevf0+YOrEYyXpZSGFX+CJ
         4k6ZzY/TN3xeBIhRhLwjXeymHWjzJ/PlUyFDTptpMlt45t0ompBaKKfVvBKOZ5n/O0uc
         T0lJid0lKMTXOy/Q3AFaZ4U0hUU2hAgkzVn53Lh7rIaerrWPU4Z8lBq7NUYsOl55wwWI
         IprGJpv/BrdYNqnA6ufashwes92rna3ontsYZjERRx4w44lHll+7EeCNd8MBQRfbdriS
         jBFkpBPHIgYBGY2mQbnVmAQiXio0JVY2VB4hBFG5aq297rFfqlhkHpEBzc85fdkUVzLg
         nx8g==
X-Gm-Message-State: AOAM532BB0BPNGCEE0bE5BI42m4lJeE57KlubL6vbbx4Ev2wIFbqXRPn
	KrV8v8nKKUbhnhqaxFs9ZIoz5Pbg7ynSMQ==
X-Google-Smtp-Source: ABdhPJwaEXhquUg9pSW7bS6CfvB2jhMl4knsYLQ7J3g/8mUX/NuU13lGyedBYurgkmEk6JZwO9+UtQ==
X-Received: by 2002:a05:6512:15a2:: with SMTP id bp34mr12389295lfb.65.1637740786174;
        Tue, 23 Nov 2021 23:59:46 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v7 1/7] xen/arm: rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE
Date: Wed, 24 Nov 2021 09:59:36 +0200
Message-Id: <20211124075942.2645445-2-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211124075942.2645445-1-andr2000@gmail.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

To better reflect the nature of the device type and not to make any
confusion rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE which it
really is.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
---
New in v6
---
 xen/arch/arm/pci/pci-host-generic.c | 2 +-
 xen/arch/arm/pci/pci-host-zynqmp.c  | 2 +-
 xen/arch/arm/pci/pci.c              | 2 +-
 xen/include/asm-arm/device.h        | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-host-generic.c
index 33457fbe9615..46de6e43cc72 100644
--- a/xen/arch/arm/pci/pci-host-generic.c
+++ b/xen/arch/arm/pci/pci-host-generic.c
@@ -32,7 +32,7 @@ static int __init pci_host_generic_probe(struct dt_device_node *dev,
     return pci_host_common_probe(dev, &pci_generic_ecam_ops);
 }
 
-DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI)
+DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
 .dt_match = gen_pci_dt_match,
 .init = pci_host_generic_probe,
 DT_DEVICE_END
diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host-zynqmp.c
index 61a9807d3d58..516982bca833 100644
--- a/xen/arch/arm/pci/pci-host-zynqmp.c
+++ b/xen/arch/arm/pci/pci-host-zynqmp.c
@@ -49,7 +49,7 @@ static int __init pci_host_generic_probe(struct dt_device_node *dev,
     return pci_host_common_probe(dev, &nwl_pcie_ops);
 }
 
-DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI)
+DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
 .dt_match = nwl_pcie_dt_match,
 .init = pci_host_generic_probe,
 DT_DEVICE_END
diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index 082c14e127a8..78b97beaef12 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -46,7 +46,7 @@ static int __init dt_pci_init(void)
 
     dt_for_each_device_node(dt_host, np)
     {
-        rc = device_init(np, DEVICE_PCI, NULL);
+        rc = device_init(np, DEVICE_PCI_HOSTBRIDGE, NULL);
         /*
          * Ignore the following error codes:
          *   - EBADF: Indicate the current device is not a pci device.
diff --git a/xen/include/asm-arm/device.h b/xen/include/asm-arm/device.h
index 3782660751b6..086dde13eb6b 100644
--- a/xen/include/asm-arm/device.h
+++ b/xen/include/asm-arm/device.h
@@ -37,7 +37,7 @@ enum device_class
     DEVICE_SERIAL,
     DEVICE_IOMMU,
     DEVICE_GIC,
-    DEVICE_PCI,
+    DEVICE_PCI_HOSTBRIDGE,
     /* Use for error */
     DEVICE_UNKNOWN,
 };
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 08:52:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 08:52:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230199.397959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpo0W-0008A9-CZ; Wed, 24 Nov 2021 08:52:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230199.397959; Wed, 24 Nov 2021 08:52:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpo0W-0008A2-9I; Wed, 24 Nov 2021 08:52:00 +0000
Received: by outflank-mailman (input) for mailman id 230199;
 Wed, 24 Nov 2021 08:51:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpo0V-00089s-2b; Wed, 24 Nov 2021 08:51:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpo0U-0002fX-Q4; Wed, 24 Nov 2021 08:51:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpo0U-0006l8-Gg; Wed, 24 Nov 2021 08:51:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpo0U-0000CX-G0; Wed, 24 Nov 2021 08:51:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=zMp9YFt7onc658zQ1wUlPh5F3fztVh/cOLkxRpGG6gQ=; b=18A19VjGAFAOs9C+FhW/BtA0PO
	Y4K8PFYrWF2SHknAMcHTPvKKfyBPhl+r25mJh/7kn/vW+h/vW2viqN60rmVsXvAPFoLiCui6DfLRm
	SjiM9GxEMDVjX6p2TwyAmFIuDj9Ffoe5YHRAhisCug8mmNm5YxG868k93ppxonAgW8BM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166309-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.13-testing test] 166309: regressions - FAIL
X-Osstest-Failures:
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-ovmf-amd64:debian-hvm-install:fail:regression
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow:debian-hvm-install:fail:regression
    xen-4.13-testing:test-amd64-amd64-xl:debian-install:fail:regression
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64:debian-hvm-install:fail:regression
    xen-4.13-testing:test-amd64-i386-xl-shadow:debian-install:fail:regression
    xen-4.13-testing:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:debian-hvm-install:fail:regression
    xen-4.13-testing:test-amd64-i386-libvirt:debian-install:fail:regression
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:host-ping-check-xen:fail:heisenbug
    xen-4.13-testing:test-armhf-armhf-xl-rtds:guest-start:fail:allowable
    xen-4.13-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d3c2319ea1657f31ae3899713afc23789b771c10
X-Osstest-Versions-That:
    xen=b4bb02d5999a56c93f0733b589b717e7cece9c09
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Nov 2021 08:51:58 +0000

flight 166309 xen-4.13-testing real [real]
flight 166343 xen-4.13-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166309/
http://logs.test-lab.xenproject.org/osstest/logs/166343/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-ovmf-amd64 12 debian-hvm-install fail REGR. vs. 165401
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install fail REGR. vs. 165401
 test-amd64-amd64-xl          12 debian-install           fail REGR. vs. 165401
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 12 debian-hvm-install fail REGR. vs. 165401
 test-amd64-i386-xl-shadow    12 debian-install           fail REGR. vs. 165401
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 12 debian-hvm-install fail REGR. vs. 165401
 test-amd64-i386-libvirt      12 debian-install           fail REGR. vs. 165401

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 10 host-ping-check-xen fail pass in 166343-retest

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds     14 guest-start              fail REGR. vs. 165401

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165401
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165401
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165401
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165401
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165401
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165401
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165401
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165401
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165401
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165401
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165401
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165401
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  d3c2319ea1657f31ae3899713afc23789b771c10
baseline version:
 xen                  b4bb02d5999a56c93f0733b589b717e7cece9c09

Last test of basis   165401  2021-10-06 17:29:26 Z   48 days
Testing same since   166309  2021-11-23 12:38:48 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         fail    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         fail    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      fail    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    fail    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit d3c2319ea1657f31ae3899713afc23789b771c10
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:33:33 2021 +0100

    x86/P2M: deal with partial success of p2m_set_entry()
    
    M2P and PoD stats need to remain in sync with P2M; if an update succeeds
    only partially, respective adjustments need to be made. If updates get
    made before the call, they may also need undoing upon complete failure
    (i.e. including the single-page case).
    
    Log-dirty state would better also be kept in sync.
    
    Note that the change to set_typed_p2m_entry() may not be strictly
    necessary (due to the order restriction enforced near the top of the
    function), but is being kept here to be on the safe side.
    
    This is CVE-2021-28705 and CVE-2021-28709 / XSA-389.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 74a11c43fd7e074b1f77631b446dd2115eacb9e8
    master date: 2021-11-22 12:27:30 +0000

commit d3cfb4b3a680d3e2ddd36f18201d48441f36aea0
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:33:14 2021 +0100

    x86/PoD: handle intermediate page orders in p2m_pod_cache_add()
    
    p2m_pod_decrease_reservation() may pass pages to the function which
    aren't 4k, 2M, or 1G. Handle all intermediate orders as well, to avoid
    hitting the BUG() at the switch() statement's "default" case.
    
    This is CVE-2021-28708 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 8ec13f68e0b026863d23e7f44f252d06478bc809
    master date: 2021-11-22 12:27:30 +0000

commit d94d006ed36084914c2931641b724ae262e3fb80
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:32:54 2021 +0100

    x86/PoD: deal with misaligned GFNs
    
    Users of XENMEM_decrease_reservation and XENMEM_populate_physmap aren't
    required to pass in order-aligned GFN values. (While I consider this
    bogus, I don't think we can fix this there, as that might break existing
    code, e.g Linux'es swiotlb, which - while affecting PV only - until
    recently had been enforcing only page alignment on the original
    allocation.) Only non-PoD code paths (guest_physmap_{add,remove}_page(),
    p2m_set_entry()) look to be dealing with this properly (in part by being
    implemented inefficiently, handling every 4k page separately).
    
    Introduce wrappers taking care of splitting the incoming request into
    aligned chunks, without putting much effort in trying to determine the
    largest possible chunk at every iteration.
    
    Also "handle" p2m_set_entry() failure for non-order-0 requests by
    crashing the domain in one more place. Alongside putting a log message
    there, also add one to the other similar path.
    
    Note regarding locking: This is left in the actual worker functions on
    the assumption that callers aren't guaranteed atomicity wrt acting on
    multiple pages at a time. For mis-aligned GFNs gfn_lock() wouldn't have
    locked the correct GFN range anyway, if it didn't simply resolve to
    p2m_lock(), and for well-behaved callers there continues to be only a
    single iteration, i.e. behavior is unchanged for them. (FTAOD pulling
    out just pod_lock() into p2m_pod_decrease_reservation() would result in
    a lock order violation.)
    
    This is CVE-2021-28704 and CVE-2021-28707 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 182c737b9ba540ebceb1433f3940fbed6eac4ea9
    master date: 2021-11-22 12:27:30 +0000

commit 0b28069aa7c26288376040e6ee9ca145245db39e
Author: Julien Grall <jgrall@amazon.com>
Date:   Tue Nov 23 13:32:26 2021 +0100

    xen/page_alloc: Harden assign_pages()
    
    domain_tot_pages() and d->max_pages are 32-bit values. While the order
    should always be quite small, it would still be possible to overflow
    if domain_tot_pages() is near to (2^32 - 1).
    
    As this code may be called by a guest via XENMEM_increase_reservation
    and XENMEM_populate_physmap, we want to make sure the guest is not going
    to be able to allocate more than it is allowed.
    
    Rework the allocation check to avoid any possible overflow. While the
    check domain_tot_pages() < d->max_pages should technically not be
    necessary, it is probably best to have it to catch any possible
    inconsistencies in the future.
    
    This is CVE-2021-28706 / part of XSA-385.
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 143501861d48e1bfef495849fd68584baac05849
    master date: 2021-11-22 11:11:05 +0000
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 09:19:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 09:19:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230210.397977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoQG-0002GO-O9; Wed, 24 Nov 2021 09:18:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230210.397977; Wed, 24 Nov 2021 09:18:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoQG-0002GH-L3; Wed, 24 Nov 2021 09:18:36 +0000
Received: by outflank-mailman (input) for mailman id 230210;
 Wed, 24 Nov 2021 09:18:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PI+J=QL=arm.com=Jiamei.Xie@srs-se1.protection.inumbo.net>)
 id 1mpoQF-0002GB-Fa
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 09:18:35 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on061c.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e955cad-4d07-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 10:18:33 +0100 (CET)
Received: from AS8P251CA0003.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::23)
 by PAXPR08MB7171.eurprd08.prod.outlook.com (2603:10a6:102:209::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 09:18:29 +0000
Received: from AM5EUR03FT050.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:2f2:cafe::3e) by AS8P251CA0003.outlook.office365.com
 (2603:10a6:20b:2f2::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Wed, 24 Nov 2021 09:18:29 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT050.mail.protection.outlook.com (10.152.17.47) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Wed, 24 Nov 2021 09:18:29 +0000
Received: ("Tessian outbound a33f292be81b:v110");
 Wed, 24 Nov 2021 09:18:28 +0000
Received: from c3ac5a2797fd.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 29A0365C-5614-4E69-9A4B-D9CFEB794076.1; 
 Wed, 24 Nov 2021 09:18:19 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c3ac5a2797fd.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 24 Nov 2021 09:18:19 +0000
Received: from VI1PR08MB3056.eurprd08.prod.outlook.com (2603:10a6:803:3d::28)
 by VI1PR0802MB2350.eurprd08.prod.outlook.com (2603:10a6:800:99::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 09:18:14 +0000
Received: from VI1PR08MB3056.eurprd08.prod.outlook.com
 ([fe80::8124:9971:1db2:b704]) by VI1PR08MB3056.eurprd08.prod.outlook.com
 ([fe80::8124:9971:1db2:b704%7]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 09:18:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e955cad-4d07-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qb5urJYlBso7KqbUc04sq/uKwMh56HtYHB/URJ0O/VM=;
 b=AyqdPHs7HDJmflLSSBMNPXmtVxH+zLi2n8sw3OPmcXhlucQqjiuzVNLjBTk2DUn84AOqzxiTIwC4iYM3xlgxld5Sni920VZQ+0KM3GrfesGH0M7h57neMNFyIS27vRBOe2NY9PEaM8Spp5kQGMkd09jaB3nebMq+YrvxlF6pMDY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eBtBM2vkdndbrKgo83v4gMBSLqL6Wu1LMu9T5MObYM7XOCSetDkNtcLbPvfW1Ld3TQhUes/AbcUYOgGZtAoUdO5zWfamUGi+Ms7tx8uLkd9cO+0ocrQU9hkke2FUxHS1n2QqdK+jiThnd4EgsESxZotHtSABn85r5ninfq7DreJxSZ9DRKmHAW8PgbsOV4CjYblavyuR3rKUM4vdVoZMmaT7Jj3Uf4r+gZvOQSERQIi6inDS+GXPidBy25mDKEQzFejE4xvs1fHo+f6UV8bHrW5JPjBbIQMoHsINnIqSHlMzuts12Ar3DmX19vBMWxgutYBiQRwLkNKBelGOfERblQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qb5urJYlBso7KqbUc04sq/uKwMh56HtYHB/URJ0O/VM=;
 b=Xdh2PUW/izQGaTzJnMe/y71guqsEJAVOjeyG5UVM55wUrwEBUXfDZchUu2MaLH16A29yixPZnScvsq6jjVtzednh+lF5m+WaMo+MB/6sttOCAqhxzzpBocm23/m5CcfCfEvt0THx7ZvFZ3vDeAkHrGxgBJJP/ycZorfRTUOhuJhaseB8AaG+2yHmRkW1n/8R4+0es/wZBn0DR++7RAnvZ5+Ymk1UPeAzQ/GxuG8O8lo23WkHOt6yYTDdgGmgjyY7ETjvJsA6l1OUJ7DuPuLnX0J2FKLu+Hf/dLG79pBWJ9sJYsxxaOER8RwsyPAh/BjxUslRTztytGWuzYrNe8iBHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qb5urJYlBso7KqbUc04sq/uKwMh56HtYHB/URJ0O/VM=;
 b=AyqdPHs7HDJmflLSSBMNPXmtVxH+zLi2n8sw3OPmcXhlucQqjiuzVNLjBTk2DUn84AOqzxiTIwC4iYM3xlgxld5Sni920VZQ+0KM3GrfesGH0M7h57neMNFyIS27vRBOe2NY9PEaM8Spp5kQGMkd09jaB3nebMq+YrvxlF6pMDY=
From: Jiamei Xie <Jiamei.Xie@arm.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "julien@xen.org" <julien@xen.org>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, "oleksandr_tyshchenko@epam.com"
	<oleksandr_tyshchenko@epam.com>, "volodymyr_babchuk@epam.com"
	<volodymyr_babchuk@epam.com>, "Artem_Mygaiev@epam.com"
	<Artem_Mygaiev@epam.com>, "roger.pau@citrix.com" <roger.pau@citrix.com>,
	"jbeulich@suse.com" <jbeulich@suse.com>, "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>, "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>, "paul@xen.org" <paul@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Rahul Singh <Rahul.Singh@arm.com>, Oleksandr
 Andrushchenko <oleksandr_andrushchenko@epam.com>, Julien Grall
	<jgrall@amazon.com>
Subject: RE: [PATCH v7 1/7] xen/arm: rename DEVICE_PCI to
 DEVICE_PCI_HOSTBRIDGE
Thread-Topic: [PATCH v7 1/7] xen/arm: rename DEVICE_PCI to
 DEVICE_PCI_HOSTBRIDGE
Thread-Index: AQHX4QlXsLfLgNpRV0eaX68wxlPhzKwSZXzw
Date: Wed, 24 Nov 2021 09:18:13 +0000
Message-ID:
 <VI1PR08MB3056E1C96D436E4D9993D3EF92619@VI1PR08MB3056.eurprd08.prod.outlook.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
 <20211124075942.2645445-2-andr2000@gmail.com>
In-Reply-To: <20211124075942.2645445-2-andr2000@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: 6902A91DB1EEFD48890A2029D3DCE7EC.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 02dd4a94-7821-45b1-b2a2-08d9af2b60c6
x-ms-traffictypediagnostic: VI1PR0802MB2350:|PAXPR08MB7171:
X-Microsoft-Antispam-PRVS:
	<PAXPR08MB71715C89001B021D71286B9D92619@PAXPR08MB7171.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:5797;OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 6Af7l7jd4/N5j/IstgeEjjJaY5le1yVOnqbDiFJNu1JM+rVb8z5LW6a1mZClWdlu9AOtHWWd9vJahC15SI6T3ZBrQWJmfyHuoFMRymAIqC/Zl+y8x/d5OXgPpL/8Kj/2GBaxnlx33BX1pFtFOM2HEoiiChECSp9iJ0ewdxY4f75m+5Le1Wn0hLeiswwllE3nwSpJtPjVIZ7e+SVkHBhCMJtH9M5sTFfgCVi++NW4+HzMg9kTTCjuTgMY60I8567LeKNct85/eEu0OvOtf0a/0hosak+qQIKuw4IX6kl2qKauOW2JQ2v+mj2UmhyQbiNBX+VKfGkPiFPiVsjuiIjDuhMC2xw5aCnxUZOOLJyj01GTtaDOmVaehIV//9D5BXdT3VOzWdAVEpObugMkI6KaQPMToyQGVGGAir0X8KPkthDw51I7Xx3RYqGUC1gIIAT+zMoDiWEbRJLDEnHSvaTO7SfscfFkLUWO36z6PwwZhJUK5nmeE2PlxzoT4WT65Y4ldnYfQg+/FW6tCPPLmkGdFPxwfN1BpTnYgTrnFlLAF3i7h8sOhszFHs7pq86ULL928OCtgKKhcq1teuzrjFJcTLXgZUH76q6SHAJZ8+O01BLXQcHQt99EB5JUKguFGmZH19IQcbUI3GMmdWq3Z0zK1VlrLatFFtRTAZwuNpIANpvZ/0dKm8IuCSRJO4sAQXGZ5Q9XzQAdgzCRdgB4/R26Rg==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB3056.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(71200400001)(7416002)(5660300002)(8936002)(316002)(33656002)(38070700005)(53546011)(66446008)(110136005)(66476007)(66556008)(64756008)(54906003)(6506007)(4326008)(26005)(2906002)(122000001)(66946007)(7696005)(86362001)(38100700002)(76116006)(186003)(55016003)(52536014)(9686003)(83380400001)(8676002)(508600001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2350
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT050.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0007220e-bd75-4953-ac6b-08d9af2b5774
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	x2A2TMoESDfJYDsfCFtwf/mKE560vt/g40egnlWYtWhkeNfAfrS2Tw0nyjJyzN59TJBEBKSnqF/qrbudpj5SOc7zBDNodrLjvnvvdrSnDhPWai1e87GzyD6tKBjVw1AcdMuUG2qAqwtEYA/d+AYZREqacj0CndP/VjCDr0RjbCT7Msn2AaW0kHXLozA6jo0T6cneovqjFbjq55n4F2diJPjC/CEkGsNfOorr8ytGj4mPjrvEq+rwEfje3q7/PNTbtIqJ11DBwPiGmYPr/BvdepOGcXS72MVKCSJ/8vn1IFrWVipgjrPDy8mYxZweK0SX4GuYDkfbHRCJu38pGcsveyjNhIrKUtgG6Kp7W8qsW8csjFEFgeivYI40JygsPmzaCHkvnHGJamBR5WcJYlcRIWWotJEBmrvq6k9/rRL2SWSkzmudZ7l/5xJ76gmbyYMRnJeQdir+O/t+hSJ5pTZzMO1t7Jju6vkLj32eUJF03iQ9bF0dPaVxK1Ei94pi4HygYTCamRpazZDOLLSQOAfLNiPHEvH7FVhi+GRLASWnCKgT5cI2CR2sIVo33PGaZU6vBOFIRy1CZ54pwYO+YKy5MNhVuBAg6bXaAAWv4lPVCB8JtxEpavJ0N3Rkqo76E8k1rrVNKWjtOIIfZ0c8X0TwbcYMr4xgPw/iWJEKjxOZ3EsEiMuh+tZ1spgnVlgKucIDv3h6Zi6INqlDSYIUy1yraw==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(186003)(356005)(47076005)(83380400001)(7696005)(55016003)(81166007)(36860700001)(70206006)(82310400004)(54906003)(4326008)(8676002)(6506007)(52536014)(336012)(26005)(53546011)(8936002)(508600001)(9686003)(316002)(70586007)(2906002)(33656002)(107886003)(5660300002)(110136005)(86362001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 09:18:29.1136
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 02dd4a94-7821-45b1-b2a2-08d9af2b60c6
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT050.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7171



> -----Original Message-----
> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
> Oleksandr Andrushchenko
> Sent: 2021=1B$BG/=1B(B11=1B$B7n=1B(B24=1B$BF|=1B(B 16:00
> To: xen-devel@lists.xenproject.org
> Cc: julien@xen.org; sstabellini@kernel.org;
> oleksandr_tyshchenko@epam.com; volodymyr_babchuk@epam.com;
> Artem_Mygaiev@epam.com; roger.pau@citrix.com; jbeulich@suse.com;
> andrew.cooper3@citrix.com; george.dunlap@citrix.com; paul@xen.org;
> Bertrand Marquis <Bertrand.Marquis@arm.com>; Rahul Singh
> <Rahul.Singh@arm.com>; Oleksandr Andrushchenko
> <oleksandr_andrushchenko@epam.com>; Julien Grall <jgrall@amazon.com>
> Subject: [PATCH v7 1/7] xen/arm: rename DEVICE_PCI to
> DEVICE_PCI_HOSTBRIDGE
>=20
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>=20
> To better reflect the nature of the device type and not to make any
> confusion rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE which it
> really is.
>=20
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Oleksandr Andrushchenko
> <oleksandr_andrushchenko@epam.com>
> Reviewed-by: Julien Grall <jgrall@amazon.com>
> ---
> New in v6
> ---
>  xen/arch/arm/pci/pci-host-generic.c | 2 +-
>  xen/arch/arm/pci/pci-host-zynqmp.c  | 2 +-
>  xen/arch/arm/pci/pci.c              | 2 +-
>  xen/include/asm-arm/device.h        | 2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)
>=20
> diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-
> host-generic.c
> index 33457fbe9615..46de6e43cc72 100644
> --- a/xen/arch/arm/pci/pci-host-generic.c
> +++ b/xen/arch/arm/pci/pci-host-generic.c
> @@ -32,7 +32,7 @@ static int __init pci_host_generic_probe(struct
> dt_device_node *dev,
>      return pci_host_common_probe(dev, &pci_generic_ecam_ops);
>  }
>=20
> -DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI)
> +DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
>  .dt_match =3D gen_pci_dt_match,
>  .init =3D pci_host_generic_probe,
>  DT_DEVICE_END
> diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-
> host-zynqmp.c
> index 61a9807d3d58..516982bca833 100644
> --- a/xen/arch/arm/pci/pci-host-zynqmp.c
> +++ b/xen/arch/arm/pci/pci-host-zynqmp.c
> @@ -49,7 +49,7 @@ static int __init pci_host_generic_probe(struct
> dt_device_node *dev,
>      return pci_host_common_probe(dev, &nwl_pcie_ops);
>  }
>=20
> -DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI)
> +DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
>  .dt_match =3D nwl_pcie_dt_match,
>  .init =3D pci_host_generic_probe,
>  DT_DEVICE_END
> diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
> index 082c14e127a8..78b97beaef12 100644
> --- a/xen/arch/arm/pci/pci.c
> +++ b/xen/arch/arm/pci/pci.c
> @@ -46,7 +46,7 @@ static int __init dt_pci_init(void)
>=20
>      dt_for_each_device_node(dt_host, np)
>      {
> -        rc =3D device_init(np, DEVICE_PCI, NULL);
> +        rc =3D device_init(np, DEVICE_PCI_HOSTBRIDGE, NULL);
>          /*
>           * Ignore the following error codes:
>           *   - EBADF: Indicate the current device is not a pci device.
> diff --git a/xen/include/asm-arm/device.h b/xen/include/asm-arm/device.h
> index 3782660751b6..086dde13eb6b 100644
> --- a/xen/include/asm-arm/device.h
> +++ b/xen/include/asm-arm/device.h
> @@ -37,7 +37,7 @@ enum device_class
>      DEVICE_SERIAL,
>      DEVICE_IOMMU,
>      DEVICE_GIC,
> -    DEVICE_PCI,
> +    DEVICE_PCI_HOSTBRIDGE,
>      /* Use for error */
>      DEVICE_UNKNOWN,
>  };
> --
> 2.25.1
>=20

[Jiamei Xie]=20
LGTM.
Reviewed-by: Jiamei xie <jiamei.xie@arm.com>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 09:23:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 09:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230216.397988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoUn-0003de-AK; Wed, 24 Nov 2021 09:23:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230216.397988; Wed, 24 Nov 2021 09:23:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoUn-0003dX-6y; Wed, 24 Nov 2021 09:23:17 +0000
Received: by outflank-mailman (input) for mailman id 230216;
 Wed, 24 Nov 2021 09:23:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XpRf=QL=hotmail.com=yanluyi2010@srs-se1.protection.inumbo.net>)
 id 1mpoUl-0003dR-90
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 09:23:15 +0000
Received: from JPN01-TYC-obe.outbound.protection.outlook.com
 (mail-tycjpn01olkn2082e.outbound.protection.outlook.com
 [2a01:111:f403:7010::82e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25437f84-4d08-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 10:23:14 +0100 (CET)
Received: from OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:1a2::6)
 by OSZP286MB2256.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:18e::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Wed, 24 Nov
 2021 09:23:09 +0000
Received: from OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
 ([fe80::9c31:6396:f5d2:35e6]) by OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
 ([fe80::9c31:6396:f5d2:35e6%9]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 09:23:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25437f84-4d08-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QxcrPwFddSuJqrIPvEOaZt/E/PVMenhlzjhANFmpDKgZTM34svKU5kLXKfCpVaZFL5/O2NOAHUxfUpNTBdwy2pFlKGGYF/75uQ8cZ8S+nLXhE8BPs+usSJXOSdVOU+5NN1E6RIfEajlRwGmI4LqLj1pmi4mrH9cgw6O0hcCKtR8fciJrPT8O2j1zUFnxZG1MKPLQ3AcwlydhYaj3Iy5stF3YSmBmzTA0XceEUO8BxngGQUtNgxppHaRQIibYbnma+fYV4HtJzGxKSynAEuZBLOIJ3MERmoDaASYwTgpkL5ECRS9npgZ0bmKDl/H4ANZNL3VVtZYnDfwTx5FUxcr+bw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uf2tDABW1rdquG0aLJXpTc7bgtZyPWkuOIxWkxUro+o=;
 b=ORb/9qE5ToeZ7xY7NPPXjZQOqXSav2GnSnNOMtOm3GPlxzkfPYGHg+H1EKIDgNv7ZXA9VYvwk/zRcAEuZn209+JgtbSJBNdO72dpfkl+I50ptpsR8U6ynVUUOiWb2XTB1tvaiV+paMJnIIWsEq8hJWdMLhFy5w/HNT2T+eZDvbss1Wt+foJBDDmbIQVsMRFkU1Kw/mmt6iSYvL6KxMoxnU7nQda7la9JM3cnNGLJriQCYch+J81AAugDIbjKz98jL55W3gz297ugsKI34oCS61JZV3HNwQwmi168SEXDWOf+omNuK5DisGWyUkfWC1S9pta6y1n0mD/A5wMlCLruoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uf2tDABW1rdquG0aLJXpTc7bgtZyPWkuOIxWkxUro+o=;
 b=E58kPkEGbLnXxG8VLj19ftSY8favkXcYTa62FT0+vKmiMjDd/ze7Pa06+AhCOHolbn5RqXeYweHXhjpw+mkY3Jv/p8QvmveO0WzDX77KWIUCjZurNGGGTRWOO38G1tHPdJB/kj5BGUMhFOIZmcwRkyGW9OyuhWBJH3TG8RYL2LjwE8PNbX14j4Ve1ao6+U0QGl1rDYMiFGkhf0JQgfTEVWjjcM3MxflQmnZfM3kiCPDe6J1HbG+KB0BcB4CdkMHr/PiIEzdPHAORnx4Cu+nWfKL9NkWsmmViqiDEoskmonKR8TOo66eeGJgyPcyaYn9fLS0uWuJ1NTNCNYPuFNauVA==
From: Untitled YAN <yanluyi2010@hotmail.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "tamas@tklengyel.com" <tamas@tklengyel.com>, "aisaila@bitdefender.com"
	<aisaila@bitdefender.com>, "ppircalabu@bitdefender.com"
	<ppircalabu@bitdefender.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: About support for memory event on AMD CPUs
Thread-Topic: About support for memory event on AMD CPUs
Thread-Index: AQHX4Ivyto+Oc0SSQ0aRZryw/8JAG6wST82AgAAO3bA=
Date: Wed, 24 Nov 2021 09:23:09 +0000
Message-ID:
 <OS3P286MB19953CFD3B3D4B2B71261DD9B3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
References:
 <OS3P286MB1995471B56ADDC423A4EDC9FB3609@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
 <ad9abcb1-0a17-644b-5338-8c305e9ce4b4@suse.com>
In-Reply-To: <ad9abcb1-0a17-644b-5338-8c305e9ce4b4@suse.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
suggested_attachment_session_id: 385db734-82bf-2611-7953-fd7021148395
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [2i3AlY3af0QBCzZVf5ubxMio01LaUn2wE4YA6hkioB4=]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5af1e031-7161-48d3-2d9f-08d9af2c07ef
x-ms-traffictypediagnostic: OSZP286MB2256:
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 YgGh3/Lv7/ce8eS1hKhaoW0fx7fCczdm/nwVD+Ltb1OvVUh5rXqc84Tma38vqMx4AnZtxd8yOI5ZtZgaOsMHjrYI4TXeG3p/uu3MW1e+W1ehMNAY1+M5D4/QK/fo1s0hwA3Ty1MjqHcu8L6vP+6VKtX8Fk66/hL7thLH9S/sWFXpJqi7ypkursmOeU8WRiCqTb6wTPriwyD0F+7NRMECx221rQJz82Q2FD1LqyvwRLurQmF7EJfhh2xMHt5TCtYajIzYlJ3GCiIy25gAjkSKavq+Po0RyhA63nLNHGszM4QHSbjq0+UCw0ERNPYVjKBPczuDsQHUP0fuYz6Q5QmR6Ej7PwbuEJSImR+DXQ7cvNU6DGyhz4+7TP8gbbqY598513pqiNeHWh2I/L1i3cJBPLACW19s2RD94wIjjQJwMHzq0x73uthZZpyxsnbLATOv9EUqQi9RrDoOy5P3zpnPGk1PCGAocH/4KZNkHopUVFLyJaCd52Pw34JdYYooVO8PsZO9CmFG6wq7NtSRQlIQ97AiobWbc1D6m5RF7CAhfcGlQ9lU/UoJtP6s1mbzehMjsUR+/tnwwdZiY0KcYTB8j9ccpgb+Xcx43F2wI8swKYkPkYkvS7+xo5jXyY6n9t1T
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 r9rcywUXY0jQODybHVFXo1FKt/+RMOEpN2mFM3yodxNscpS2xt3C78ZxioKsyvPndlqCc/GLdCfjdPPQHaOqogG2WRU/LQ7u4v4hshyB3Lq/bUSAavVJu2DIP4oX8+GEyhABUXJhOJoyvqV9+k58p2MSDqC6CxqG7IMrlagUzedyDgc91O6n7yS10KqUIejRNLs/J72KinB1m22WlltymWVaMDU/EV4vonv52JNaJIOxrDxC7TcKFDnoa5FnzacnoosLWolT4M/OyThkcqw5aVhVd7cYr0+XwdxlD2JMTcIE8geR0fwudOuzYtqZ0saxNCD2wU1ZbZsCebURchrbml3RGG8U7zeo6J14UeWJGVCJwwCaSP5WV7B7FofqeDn7HP6kcoDs/dMOCf477hreszXrHxiyxw8HAhpHzciIL4oBVmrBdw12vvg+WYn3i2hgX1TySMNkli60AB2+fX8msX4qxywkPl43OyAUwCu8Ag3VXqmMfv9S/LKY6u75L3MlTPiJMk5kUHZ+TxmA/Mw+Zh/ThI3aOjYBEFHTL2ALVHkF0XW8nK7XC0ddFWk4BUTUQn1XxjOPzRP8/qbIaWY+yVwLZjYj0FmxbfE7kc6/yjbjooe07PKtCHdpzyS5ES6wRWqxfOswwAvzFcIwv/npmRSeu21RyoROJUcDIzARQDdjUe6E9kZMzJo0eba7bCCbJX6sapspzloEuGZdiccVXw==
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-18f16.templateTenant
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 5af1e031-7161-48d3-2d9f-08d9af2c07ef
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 09:23:09.4938
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZP286MB2256

Original email:=0A=
=0A=
From: Jan Beulich <jbeulich@suse.com>=0A=
Sent: Wednesday, November 24, 2021 15:54=0A=
To: YAN Untitled <yanluyi2010@hotmail.com>=0A=
Cc: tamas@tklengyel.com <tamas@tklengyel.com>; aisaila@bitdefender.com <ais=
aila@bitdefender.com>; ppircalabu@bitdefender.com <ppircalabu@bitdefender.c=
om>; xen-devel@lists.xenproject.org <xen-devel@lists.xenproject.org>=0A=
Subject: Re: About support for memory event on AMD CPUs =0A=
=A0=0A=
> On 23.11.2021 18:14, YAN Untitled wrote:=0A=
> > Dear developers,=0A=
> > =0A=
> > Short version: is memory event supported on AMD CPUs or is it going to =
be=0A=
> > supported?=0A=
> > =0A=
> > Long version:=0A=
> > =0A=
> > Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), 64-b=
it=0A=
> > Debian 11 Dom0.=0A=
> > =0A=
> > What I am trying to accomplish: register a **memory event** handler, so=
 that=0A=
> > I can capture all memory accesses within a specific range issued by any=
 thread,=0A=
> > or all memory accesses within any range issued by a specific thread.=0A=
> > =0A=
> > What I got instead: an error from LibVMI saying=0A=
> > "xc_hvm_set_mem_access failed with code: -1".=0A=
> > =0A=
> > Some investigation: by inspecting the source code of LibVMI, I find the=
 direct=0A=
> > cause is one of the libxc functions, 1) xc_set_mem_access or=0A=
> > 2) xc_altp2m_set_mem_access, returned error code -1.=0A=
> > =0A=
> > After some searching, I found someone else having a similar problem [1]=
. I also=0A=
> > noted LibVMI says:=0A=
> > =0A=
> >> Currently only the Xen Hypervisor provides these features,=0A=
> >> and some of these are specifically only available on Intel CPUs=0A=
> > =0A=
> > However, I can't find the exact confirmation for the availability of me=
mory=0A=
> > event on AMD CPUs from https://wiki.xenproject.org.=0A=
> =0A=
> Aiui underlying what you want is altp2m, which presently depends (in=0A=
> the hypervisor) on EPT being available (and in use for the guest in=0A=
> question).=0A=
> =0A=
> Jan=0A=
=0A=
Dear Jan,=0A=
=0A=
Thanks for your reply. I really appreciate the information. After some=0A=
searching with the keyword "EPT" I found [1]. So I checked on dom0 with=0A=
"xl dmesg | grep HAP", which says:=0A=
=0A=
> (XEN) HVM: Hardware Assisted Paging (HAP) detected=0A=
> (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB=0A=
=0A=
And the guest is an HVM guest running Debian 10 with kernel v4.16 built fro=
m=0A=
source. Most of the configuration of the guest is generated by virt-manager=
.=0A=
The "xl list -l" shows that there is no explicit configuration for EPT, RVI=
 or=0A=
HAP, but it does say the "type" is "hvm". So I am still quite confusing:=0A=
=0A=
1. Is memory event feature for AMD's RVI is even implemented?=0A=
2. If memory event should be working on AMD CPUs with RVI enabled, am I mis=
sing=0A=
   any essential step to make it work?=0A=
=0A=
[1] https://groups.google.com/g/vmitools/c/JRN11E64BNY=0A=
=0A=
=0A=
Untitled YAN=0A=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 09:28:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 09:28:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230223.397999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoZQ-0004IZ-Td; Wed, 24 Nov 2021 09:28:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230223.397999; Wed, 24 Nov 2021 09:28:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoZQ-0004IS-Qf; Wed, 24 Nov 2021 09:28:04 +0000
Received: by outflank-mailman (input) for mailman id 230223;
 Wed, 24 Nov 2021 09:28:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mG44=QL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mpoZP-0004IM-GP
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 09:28:03 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d1fe62f1-4d08-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 10:28:02 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2054.outbound.protection.outlook.com [104.47.14.54]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-28-j3zuJ-KEPi60R3r7-J1pBg-1; Wed, 24 Nov 2021 10:28:00 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5325.eurprd04.prod.outlook.com (2603:10a6:803:60::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 09:27:59 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 09:27:59 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0071.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::48) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Wed, 24 Nov 2021 09:27:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1fe62f1-4d08-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637746081;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=KL49A7fFJT8RK70sCHBQGjra/68N5jzRNYZF6Trmi8g=;
	b=bA7YTgnwTBVx02er3Mt+p5ILwU44+5U/C9mM744ivhmyhSxgDmbQrfpWCYnI3rReU8dbLH
	0MyXf5Cddl8aWgQpYlZNdclczfp/m6BlIdfd5DgmJq7zsisIpBm8mbaIaY2IN42C3I7oKS
	WHNyynjbjmXVn/sdhbUsY6hJ95y4UrQ=
X-MC-Unique: j3zuJ-KEPi60R3r7-J1pBg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=F+/o1zue2L2qOxbsQHCI7JoA4UCAQjsfbWN6OJ1MxmRH71UChPLenJ5eCwK1EonxkorJhJgl0v/f7DYY0wab+T2hSem5ZYOoa+b6iAPi8Q4EQWkcwzOHLHhiHjcw7JioJDskYhmpWm3QjwetASTTbv9zpPYV5TCB8MXgQ3CNTSeeFQuQbMgllkUJ0QC6FZsD0Ep1YlFr3QvjKWuQbnEQGL39sa2A16ZDuzzIzGmUU8p0asotD4JaiB7UooXuq9c8t0XYzDE7qJ56KaEgUlBstu6DzFZ59Vzj7FEkGn3a2eK4V4EUSzqjttI5uOS/6ut4AJdiUEFwIrQDf/bS7aqbhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=k2fUj0CDdS/oldh4HviG8X4hWIFMDRKJv4Fua3//H5s=;
 b=cTW7QRLNdcn/mbXreIWuinB1WfAoQwNdBk2e4rZKmr9PBqYbhIxAPUNjOSuHU/0lmaIi2+LltoBACl8Pq2dZ6IWiWSnJCVQ6FaI3I+uG7420JB/QZIQ6HiQhz0GyDTJvOqinGntrup1qNls5FyeATL8OpEeHnz9ECa4eie97fpiU3YeJ/o+v2kUYv9hkZ6vr5RVVPkY/iplYMNckMmkLmX26keHgrkVCOm2EwK74nWMpHlqXAicCk9zqQDWYINEAG+q/6YG1MiQj+q+YmdBwsclTx+7Ncmzl7HIXixA/3Ac3YsJqs8yVqF3/ZZj8Gt1C+a/lsysmr5uGmluNpHKCtA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1b6ae1da-a9be-2e37-e993-05f1bb095f80@suse.com>
Date: Wed, 24 Nov 2021 10:27:58 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: About support for memory event on AMD CPUs
Content-Language: en-US
To: Untitled YAN <yanluyi2010@hotmail.com>
CC: "tamas@tklengyel.com" <tamas@tklengyel.com>,
 "aisaila@bitdefender.com" <aisaila@bitdefender.com>,
 "ppircalabu@bitdefender.com" <ppircalabu@bitdefender.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <OS3P286MB1995471B56ADDC423A4EDC9FB3609@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
 <ad9abcb1-0a17-644b-5338-8c305e9ce4b4@suse.com>
 <OS3P286MB19953CFD3B3D4B2B71261DD9B3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <OS3P286MB19953CFD3B3D4B2B71261DD9B3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P191CA0071.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:7f::48) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 385b4c53-4864-4e38-d8a7-08d9af2cb4bc
X-MS-TrafficTypeDiagnostic: VI1PR04MB5325:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB53256A8C70A0325A968CFAB5B3619@VI1PR04MB5325.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	wTApM5bc93TBsnaH31liQGoCQ9p9ogCys4Xi+XosD1Z44rzZQ3nSCXh5PkbU5LoLnAfG5tL2N0oxLsGEhhg6pYXnxQ3UnRNQR40zfh+95e/+WrGl2ItRgvMIBW4HqzAChEMfmd2ddVyHAKT6N9IhBGuaHEkH7Inwv4vQ1UIwvXKPNgxn63uedyljvC7ZQs3iasVPDnmk/Ek7C1/IG2qRHWTfXeGeJq7UV8JugFbVui0f6NfbodXeysMFvDaaoBNRKxNQrhfTqVAvJE1n4PpZ6wVfxVd+3xqYE6LGm+HXYxrMnkQydviXMO0qKVtsfuI39KAYaz6ABYpFjJiozKPcUkx8agqlpacQTicsP4FwrIWBu6U1kfJxP003Xajk///OakotA6VK5Vxe2dcY75ojbiBLTeAxvr9aKt/Nm/Iop8myJBe2s+sjBrXshKaAKADMxKVjbYOH0vvuq3n2Bj2jpENtV2/HUuSC/EcG1H/8/H3YUMwEMlU+KBhH/mepPMJvQyYSIfqRbiEhwFth2PZy6hWnpBth/742tpDjYMw/YVV5DEDr4vqmhzWEoCekRb4lX5tPOA62GL9SBlLyyh4+CrLi3Hzd+5zpIUWlppuOwbHptuSZdXsa2JAPIv1qAiAQfcPj4HZiLMDWwkAWLTaiGpCKWUqqQmrT5BWiWHEND22DU12wh8yLVDzDb/jvN0GnMyMyzW6NrTPA79IZpoOfaPw99gc0QZx0dN9vCR7+hbxVFwlDigtbfSS5kvUFQ5zcyKsLo+GI5fH1Rz4KD2lb9rB0xeaJP13L+9uSSqSnM6kfhDX7PK8+C1KOaQx2tLvZ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(16576012)(6486002)(508600001)(36756003)(31696002)(5660300002)(53546011)(8676002)(8936002)(2906002)(316002)(26005)(54906003)(6916009)(66556008)(66946007)(38100700002)(31686004)(966005)(86362001)(956004)(2616005)(83380400001)(66476007)(45080400002)(4326008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Rwoa070tG7ACnFVntN9bTBhmrb/qrPXF+IAZ8gRFswT5im5qr9R6ZLG/o/i4?=
 =?us-ascii?Q?akRMOWdLP6D0mnDz5BbAXnz4QBEm3chNQ3vcvzvJqsl+Wf2AxiLZEP/ZuMBf?=
 =?us-ascii?Q?24D9tGuhhD85tdOmHlbMoEZkP8y7vSdWKBFjrWAzGziyJ5Znsr6FJL6M8oi6?=
 =?us-ascii?Q?RqsCaR2EQ+5dULmtG3JiLINdnIQzu6Ra1p9wPBfbuyKtHv+dKIgxel6L+5P6?=
 =?us-ascii?Q?BrzfaEeOEVwhAsj2rDIAxITHxYBQ6eHFy0TvO3DQ33vUovN5ivwxDnlJ/jEp?=
 =?us-ascii?Q?ixhLDUN5lk60ARMlxnz9uiHnOh6BSIM0+oqG6qDRhi8d2GjeK3iMw54kl2kX?=
 =?us-ascii?Q?ZnamKvwjrh8ZuR4Mw5nQCIHw5XFzQxz5rEpgom76/OOb53J9qTF+IRXF2M+9?=
 =?us-ascii?Q?jgJWvegh1aca15+Ui+2FZfATUjm2CJCPvgXIENSM0asvB0+vurEjcX5/gp3E?=
 =?us-ascii?Q?cs//bOEal8/rCjlqVc0NhX5vV3DwfmF9bWbuDqrcYREXyBktpKzRFDWyk99x?=
 =?us-ascii?Q?pyIUs4zyljL4VJwMVkNt7wp8TdDJp0qL30ZHNygMKstU/HgafC5URgicroGp?=
 =?us-ascii?Q?qDyr0e+xdDWoUc6wQjPb6lklO4T2E61wZk/yiKT5jfqJmaalTVUHM8db2+/2?=
 =?us-ascii?Q?EvhcDpaqUsumrr1w6cxMDLq7y4ludOgmwVmjm+2nIe41jX2q/Jvep3C6ADo6?=
 =?us-ascii?Q?HRmD3LKKczlGb/AA9B8kEErnSJCLtUH03WkozoImF7xRdNenzNSZngIknx1V?=
 =?us-ascii?Q?YHyYw/AX7tltzF+E1Ly2+aUPSEjdUlAXGB3nchRzde4LlVn1oZaF2rQpov5w?=
 =?us-ascii?Q?nTFML+UyHJRaU9Vgw+wx7wy1HB8AmDtDW+BmQm5Z9JAMHlgudXZa41uGfbuQ?=
 =?us-ascii?Q?wT7AUj7SLKvCIyt2ct2p/ZwArAEQvSbnDTkJXL1qyZZAXTgKo2r/TEncSTxE?=
 =?us-ascii?Q?a5+8bexJgiqrmqQnY7LBx2/9R+H6K7f2ktDzXWaciedpEXuuTt5MBFqFT3ao?=
 =?us-ascii?Q?K7F/VzA8rHkRShnsv5PkHTfuu6gO4DmwCiQi+IPvtbv4EU1d4fXfIuiPYzI7?=
 =?us-ascii?Q?U1CjegXX+fVKh/JHxODJWEtNnvty/dxcXP8300paPnXLZ3duVn4eEUdf33M+?=
 =?us-ascii?Q?IHL6zHKmWSywwdIsfJk+4O8UqOEkEPZVTUJNo3vVie8Gxvjss4sxLdcCvE5n?=
 =?us-ascii?Q?KkBVSegdpW4dH4+V0uokyAxAVkCT0Z/E0zj4ZMcbqHWMwSnuYbl/hBvsxq9b?=
 =?us-ascii?Q?OJPI39F6IcMnNiFlMGK0etSEQAhH3QoAlqFY6rdRetxL0vKAW9E+dxgC7jcd?=
 =?us-ascii?Q?Qq702CSXkrSrTiyKwk8CJIkCsQFLqX32UotV85vABk+TCnh08gjKivo3TecT?=
 =?us-ascii?Q?n5uXlLRMHjOPh9YsvJ1Yy+3tQfG0Q5eXIrgmTOuk419/Kyfykkx+RNYy7cIB?=
 =?us-ascii?Q?7HVPJDNuiHrd/9o0rQugsLaUONSys1FJHO1qZE8LjlYZEB1HoI5wNjpRHKvY?=
 =?us-ascii?Q?ZOf6NJAc5rolcE/7LgbvOIMXSKztwVCDkaGSVVRnVKibAM2KHvwj60OVtXWk?=
 =?us-ascii?Q?kCEkBkQMEIsoQ05uDUtZ+pvZXODN8itsO+cE/c1ujz5B6fOB9N5i1/I+ZTps?=
 =?us-ascii?Q?pHFOVsaPA7cOLAtklWYne0Y=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 385b4c53-4864-4e38-d8a7-08d9af2cb4bc
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 09:27:59.6492
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HxapN59GNPoCjANz3BpBgRxrigLwvheHmgvIytSF+5k4DXEJwz8cWtgY0AM6IC+yVgA5McYp77ymGlRlep3bWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5325

On 24.11.2021 10:23, Untitled YAN wrote:
> Original email:
>=20
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Wednesday, November 24, 2021 15:54
> To: YAN Untitled <yanluyi2010@hotmail.com>
> Cc: tamas@tklengyel.com <tamas@tklengyel.com>; aisaila@bitdefender.com <a=
isaila@bitdefender.com>; ppircalabu@bitdefender.com <ppircalabu@bitdefender=
.com>; xen-devel@lists.xenproject.org <xen-devel@lists.xenproject.org>
> Subject: Re: About support for memory event on AMD CPUs=20
> =C2=A0
>> On 23.11.2021 18:14, YAN Untitled wrote:
>>> Dear developers,
>>>
>>> Short version: is memory event supported on AMD CPUs or is it going to =
be
>>> supported?
>>>
>>> Long version:
>>>
>>> Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), 64-b=
it
>>> Debian 11 Dom0.
>>>
>>> What I am trying to accomplish: register a **memory event** handler, so=
 that
>>> I can capture all memory accesses within a specific range issued by any=
 thread,
>>> or all memory accesses within any range issued by a specific thread.
>>>
>>> What I got instead: an error from LibVMI saying
>>> "xc_hvm_set_mem_access failed with code: -1".
>>>
>>> Some investigation: by inspecting the source code of LibVMI, I find the=
 direct
>>> cause is one of the libxc functions, 1) xc_set_mem_access or
>>> 2) xc_altp2m_set_mem_access, returned error code -1.
>>>
>>> After some searching, I found someone else having a similar problem [1]=
. I also
>>> noted LibVMI says:
>>>
>>>> Currently only the Xen Hypervisor provides these features,
>>>> and some of these are specifically only available on Intel CPUs
>>>
>>> However, I can't find the exact confirmation for the availability of me=
mory
>>> event on AMD CPUs from https://wiki.xenproject.org.
>>
>> Aiui underlying what you want is altp2m, which presently depends (in
>> the hypervisor) on EPT being available (and in use for the guest in
>> question).
>>
>> Jan
>=20
> Dear Jan,
>=20
> Thanks for your reply. I really appreciate the information. After some
> searching with the keyword "EPT" I found [1]. So I checked on dom0 with
> "xl dmesg | grep HAP", which says:
>=20
>> (XEN) HVM: Hardware Assisted Paging (HAP) detected
>> (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
>=20
> And the guest is an HVM guest running Debian 10 with kernel v4.16 built f=
rom
> source. Most of the configuration of the guest is generated by virt-manag=
er.
> The "xl list -l" shows that there is no explicit configuration for EPT, R=
VI or
> HAP, but it does say the "type" is "hvm".

HAP is the term covering EPT on the Intel side and NPT for AMD.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 09:28:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 09:28:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230229.398010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoa8-0004se-AF; Wed, 24 Nov 2021 09:28:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230229.398010; Wed, 24 Nov 2021 09:28:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoa8-0004sX-6O; Wed, 24 Nov 2021 09:28:48 +0000
Received: by outflank-mailman (input) for mailman id 230229;
 Wed, 24 Nov 2021 09:28:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpoa6-0004sN-Mi; Wed, 24 Nov 2021 09:28:46 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpoa6-0003I7-IY; Wed, 24 Nov 2021 09:28:46 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpoa6-0008Kb-7I; Wed, 24 Nov 2021 09:28:46 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpoa6-0003o5-6m; Wed, 24 Nov 2021 09:28:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=XG1kzRho+jQGf4Wnnn7Fu8zfZFRx2WK6dDpiXlUcdlg=; b=DkF5yt3PbyZh0R4cMphkSyta0x
	fEVvVAa/Y3yJv8ZURWuOcB7VhXk4fm7LHbsRAOTjmUkY0kpntMIHNmnk+u172NCsis55AsujnaNio
	hjW09meZdDXQ1P1FvZ9k7jFYVVGJJ2mEfyhiwCUBdgqwpsJOsDzSas4RT1rUIU7JoKtQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166310-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.14-testing test] 166310: regressions - FAIL
X-Osstest-Failures:
    xen-4.14-testing:test-amd64-amd64-qemuu-freebsd11-amd64:freebsd-install:fail:regression
    xen-4.14-testing:test-amd64-amd64-xl-qemut-debianhvm-amd64:debian-hvm-install:fail:regression
    xen-4.14-testing:test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict:debian-hvm-install:fail:regression
    xen-4.14-testing:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:debian-hvm-install:fail:regression
    xen-4.14-testing:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:host-ping-check-native:fail:heisenbug
    xen-4.14-testing:test-armhf-armhf-xl-arndale:guest-start/debian.repeat:fail:heisenbug
    xen-4.14-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9de3671772d5019dab2ba7be7ad1032ad3c9e0f2
X-Osstest-Versions-That:
    xen=eb59f97eea86760e98e4f6a076f751939d2b8122
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Nov 2021 09:28:46 +0000

flight 166310 xen-4.14-testing real [real]
flight 166342 xen-4.14-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166310/
http://logs.test-lab.xenproject.org/osstest/logs/166342/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-qemuu-freebsd11-amd64 12 freebsd-install fail REGR. vs. 166193
 test-amd64-amd64-xl-qemut-debianhvm-amd64 12 debian-hvm-install fail REGR. vs. 166193
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict 12 debian-hvm-install fail REGR. vs. 166193
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 12 debian-hvm-install fail REGR. vs. 166193

Tests which are failing intermittently (not blocking):
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 6 host-ping-check-native fail pass in 166342-retest
 test-armhf-armhf-xl-arndale 18 guest-start/debian.repeat fail pass in 166342-retest

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop       fail blocked in 166193
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166193
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166193
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166193
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166193
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166193
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166193
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166193
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166193
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166193
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166193
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166193
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9de3671772d5019dab2ba7be7ad1032ad3c9e0f2
baseline version:
 xen                  eb59f97eea86760e98e4f6a076f751939d2b8122

Last test of basis   166193  2021-11-19 09:06:24 Z    5 days
Testing same since   166310  2021-11-23 12:38:48 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    fail    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       fail    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        fail    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         fail    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 9de3671772d5019dab2ba7be7ad1032ad3c9e0f2
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:30:09 2021 +0100

    x86/P2M: deal with partial success of p2m_set_entry()
    
    M2P and PoD stats need to remain in sync with P2M; if an update succeeds
    only partially, respective adjustments need to be made. If updates get
    made before the call, they may also need undoing upon complete failure
    (i.e. including the single-page case).
    
    Log-dirty state would better also be kept in sync.
    
    Note that the change to set_typed_p2m_entry() may not be strictly
    necessary (due to the order restriction enforced near the top of the
    function), but is being kept here to be on the safe side.
    
    This is CVE-2021-28705 and CVE-2021-28709 / XSA-389.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 74a11c43fd7e074b1f77631b446dd2115eacb9e8
    master date: 2021-11-22 12:27:30 +0000

commit 3ae94651cf0b08f86f1aba012f6bdd42c449c68b
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:29:54 2021 +0100

    x86/PoD: handle intermediate page orders in p2m_pod_cache_add()
    
    p2m_pod_decrease_reservation() may pass pages to the function which
    aren't 4k, 2M, or 1G. Handle all intermediate orders as well, to avoid
    hitting the BUG() at the switch() statement's "default" case.
    
    This is CVE-2021-28708 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 8ec13f68e0b026863d23e7f44f252d06478bc809
    master date: 2021-11-22 12:27:30 +0000

commit 7f654ea88ee6100f5948f383a38254be8c28a255
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:29:41 2021 +0100

    x86/PoD: deal with misaligned GFNs
    
    Users of XENMEM_decrease_reservation and XENMEM_populate_physmap aren't
    required to pass in order-aligned GFN values. (While I consider this
    bogus, I don't think we can fix this there, as that might break existing
    code, e.g Linux'es swiotlb, which - while affecting PV only - until
    recently had been enforcing only page alignment on the original
    allocation.) Only non-PoD code paths (guest_physmap_{add,remove}_page(),
    p2m_set_entry()) look to be dealing with this properly (in part by being
    implemented inefficiently, handling every 4k page separately).
    
    Introduce wrappers taking care of splitting the incoming request into
    aligned chunks, without putting much effort in trying to determine the
    largest possible chunk at every iteration.
    
    Also "handle" p2m_set_entry() failure for non-order-0 requests by
    crashing the domain in one more place. Alongside putting a log message
    there, also add one to the other similar path.
    
    Note regarding locking: This is left in the actual worker functions on
    the assumption that callers aren't guaranteed atomicity wrt acting on
    multiple pages at a time. For mis-aligned GFNs gfn_lock() wouldn't have
    locked the correct GFN range anyway, if it didn't simply resolve to
    p2m_lock(), and for well-behaved callers there continues to be only a
    single iteration, i.e. behavior is unchanged for them. (FTAOD pulling
    out just pod_lock() into p2m_pod_decrease_reservation() would result in
    a lock order violation.)
    
    This is CVE-2021-28704 and CVE-2021-28707 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 182c737b9ba540ebceb1433f3940fbed6eac4ea9
    master date: 2021-11-22 12:27:30 +0000

commit 497bd4aadf0c1a3fa2876352e25999c5803c512d
Author: Julien Grall <jgrall@amazon.com>
Date:   Tue Nov 23 13:29:09 2021 +0100

    xen/page_alloc: Harden assign_pages()
    
    domain_tot_pages() and d->max_pages are 32-bit values. While the order
    should always be quite small, it would still be possible to overflow
    if domain_tot_pages() is near to (2^32 - 1).
    
    As this code may be called by a guest via XENMEM_increase_reservation
    and XENMEM_populate_physmap, we want to make sure the guest is not going
    to be able to allocate more than it is allowed.
    
    Rework the allocation check to avoid any possible overflow. While the
    check domain_tot_pages() < d->max_pages should technically not be
    necessary, it is probably best to have it to catch any possible
    inconsistencies in the future.
    
    This is CVE-2021-28706 / part of XSA-385.
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 143501861d48e1bfef495849fd68584baac05849
    master date: 2021-11-22 11:11:05 +0000
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 09:33:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 09:33:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230237.398024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoej-0006KK-UB; Wed, 24 Nov 2021 09:33:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230237.398024; Wed, 24 Nov 2021 09:33:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoej-0006KD-R0; Wed, 24 Nov 2021 09:33:33 +0000
Received: by outflank-mailman (input) for mailman id 230237;
 Wed, 24 Nov 2021 09:33:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vMcq=QL=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpoei-0006K7-3j
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 09:33:32 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96045850-4d09-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 10:33:31 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id t5so7704170edd.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 01:33:31 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id v3sm7791278edc.69.2021.11.24.01.33.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Nov 2021 01:33:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96045850-4d09-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=cSNNRcieP5ju9aQgWK0zyOFIYILsPgHyWBzWie+ehYs=;
        b=hVpOt6SB+ssOWSxwaqcmhruUrd4GuNleWu1/GgDkh2yvPkXB05eakDJAZK8GmypjnH
         VPLIBqIxYeQ1lwzKf3TUDnQaVU1o3Vmgi1oO3ahT5aJe/bjgbFiFjdq3+vlCkbp2tb5z
         0/svEpIaR03VpWLWVnR2mGVpsPREAVWmIGipMJSQYVB5/ADAWiVfLcqHAq11JXgXRnVw
         4ValZQVSsDnO01rDPedxxRl8e334Z2G+pY5QWe+bi4qs8BAGO97a149+GyUuUh4e7NGt
         xb1MS0/wMd7cPulhd5obfP+ljbgG3wDupTPB1WURhrwwDTQnK9SQBFAQzwN1nUcWe2nc
         X6LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=cSNNRcieP5ju9aQgWK0zyOFIYILsPgHyWBzWie+ehYs=;
        b=H2O+gK+9besTZaKwRI4mvT4zb/9aSZUg2lYQ3DfkfRs0owqssH4bzCsW5qrLmpt4PT
         ptZlw8VII70bIVwUpB/wiD85LYANAo6ZGz6w56tLpzMypOakaooD9DJrBdDJhvsbBjjc
         +DAqvUM8UIKsJejRVt9QkPxOEZUIEyus0J/Ss57ddWKQohiVFZw8dlAGRZp/8dXVx8ac
         N/0AknoyzbPSKdSFmcZl6SKvkwarsLgptFJQxngFEvWbqiS4zqBOm5mvGQXcC8uw69Qo
         jLtmsan/6skcHLoLFZeW64y0lGfi+fKOt3/bIzHUYxlCXhCC3TNO2ju+pspBPfKrAw4L
         N4OA==
X-Gm-Message-State: AOAM530uoC55v4AQ28Z/Vmf/hyOkQsz2OVQA0gW15Oef2KXyh2xqs5N1
	x3VqPELEd+P/naf15jrizHE=
X-Google-Smtp-Source: ABdhPJw6pkTZDxbys2xLzDoGwiiUe7wMUw+BIsIv/bL3/BCYNJYdQbDef7wSSu/XwhlJX8EZWGvjvg==
X-Received: by 2002:aa7:cada:: with SMTP id l26mr22409901edt.376.1637746410555;
        Wed, 24 Nov 2021 01:33:30 -0800 (PST)
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: jgross@suse.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-4-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s>
 <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
 <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop>
 <f1f1025b-911d-3d27-f408-9c042bc4fca4@gmail.com>
 <alpine.DEB.2.22.394.2111191809100.1412361@ubuntu-linux-20-04-desktop>
 <76163855-c5eb-05db-2f39-3c6bfee46345@gmail.com>
 <alpine.DEB.2.22.394.2111231312310.1412361@ubuntu-linux-20-04-desktop>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <32521815-d932-7ba6-bfab-a47596d23713@gmail.com>
Date: Wed, 24 Nov 2021 11:33:29 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111231312310.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 23.11.21 23:25, Stefano Stabellini wrote:

Hi Stefano

> On Tue, 23 Nov 2021, Oleksandr wrote:
>>> Actually after reading your replies and explanation I changed opinion: I
>>> think we do need the fallback because Linux cannot really assume that
>>> it is running on "new Xen" so it definitely needs to keep working if
>>> CONFIG_XEN_UNPOPULATED_ALLOC is enabled and the extended regions are not
>>> advertised.
>>>
>>> I think we'll have to roll back some of the changes introduced by
>>> 121f2faca2c0a. That's because even if CONFIG_XEN_UNPOPULATED_ALLOC is
>>> enabled we cannot know if we can use unpopulated-alloc or whether we
>>> have to use alloc_xenballooned_pages until we parse the /hypervisor node
>>> in device tree at runtime.
>> Exactly!
>>
>>
>>> In short, we cannot switch between unpopulated-alloc and
>>> alloc_xenballooned_pages at build time, we have to do it at runtime
>>> (boot time).
>> +1
>>
>>
>> I created a patch to partially revert 121f2faca2c0a "xen/balloon: rename
>> alloc/free_xenballooned_pages".
>>
>> If there is no objections I will add it to V3 (which is almost ready, except
>> the fallback bits). Could you please tell me what do you think?
>   
> It makes sense to me. You can add my Reviewed-by.

Great, thank you!


>
>   
>>  From dc79bcd425358596d95e715a8bd8b81deaaeb703 Mon Sep 17 00:00:00 2001
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> Date: Tue, 23 Nov 2021 18:14:41 +0200
>> Subject: [PATCH] xen/balloon: Bring alloc(free)_xenballooned_pages helpers
>>   back
>>
>> This patch rolls back some of the changes introduced by commit
>> 121f2faca2c0a "xen/balloon: rename alloc/free_xenballooned_pages"
>> in order to make possible to still allocate xenballooned pages
>> if CONFIG_XEN_UNPOPULATED_ALLOC is enabled.
>>
>> On Arm the unpopulated pages will be allocated on top of extended
>> regions provided by Xen via device-tree (the subsequent patches
>> will add required bits to support unpopulated-alloc feature on Arm).
>> The problem is that extended regions feature has been introduced
>> into Xen quite recently (during 4.16 release cycle). So this
>> effectively means that Linux must only use unpopulated-alloc on Arm
>> if it is running on "new Xen" which advertises these regions.
>> But, it will only be known after parsing the "hypervisor" node
>> at boot time, so before doing that we cannot assume anything.
>>
>> In order to keep working if CONFIG_XEN_UNPOPULATED_ALLOC is enabled
>> and the extended regions are not advertised (Linux is running on
>> "old Xen", etc) we need the fallback to alloc_xenballooned_pages().
>>
>> This way we wouldn't reduce the amount of memory usable (wasting
>> RAM pages) for any of the external mappings anymore (and eliminate
>> XSA-300) with "new Xen", but would be still functional ballooning
>> out RAM pages with "old Xen".
>>
>> Also rename alloc(free)_xenballooned_pages to xen_alloc(free)_ballooned_pages.
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>>   drivers/xen/balloon.c | 20 +++++++++-----------
>>   include/xen/balloon.h |  3 +++
>>   include/xen/xen.h     |  6 ++++++
>>   3 files changed, 18 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
>> index ba2ea11..a2c4fc49 100644
>> --- a/drivers/xen/balloon.c
>> +++ b/drivers/xen/balloon.c
>> @@ -581,7 +581,6 @@ void balloon_set_new_target(unsigned long target)
>>   }
>>   EXPORT_SYMBOL_GPL(balloon_set_new_target);
>>
>> -#ifndef CONFIG_XEN_UNPOPULATED_ALLOC
>>   static int add_ballooned_pages(unsigned int nr_pages)
>>   {
>>       enum bp_state st;
>> @@ -610,12 +609,12 @@ static int add_ballooned_pages(unsigned int nr_pages)
>>   }
>>
>>   /**
>> - * xen_alloc_unpopulated_pages - get pages that have been ballooned out
>> + * xen_alloc_ballooned_pages - get pages that have been ballooned out
>>    * @nr_pages: Number of pages to get
>>    * @pages: pages returned
>>    * @return 0 on success, error otherwise
>>    */
>> -int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages)
>>   {
>>       unsigned int pgno = 0;
>>       struct page *page;
>> @@ -652,23 +651,23 @@ int xen_alloc_unpopulated_pages(unsigned int nr_pages,
>> struct page **pages)
>>       return 0;
>>    out_undo:
>>       mutex_unlock(&balloon_mutex);
>> -    xen_free_unpopulated_pages(pgno, pages);
>> +    xen_free_ballooned_pages(pgno, pages);
>>       /*
>> -     * NB: free_xenballooned_pages will only subtract pgno pages, but since
>> +     * NB: xen_free_ballooned_pages will only subtract pgno pages, but since
>>        * target_unpopulated is incremented with nr_pages at the start we need
>>        * to remove the remaining ones also, or accounting will be screwed.
>>        */
>>       balloon_stats.target_unpopulated -= nr_pages - pgno;
>>       return ret;
>>   }
>> -EXPORT_SYMBOL(xen_alloc_unpopulated_pages);
>> +EXPORT_SYMBOL(xen_alloc_ballooned_pages);
>>
>>   /**
>> - * xen_free_unpopulated_pages - return pages retrieved with
>> get_ballooned_pages
>> + * xen_free_ballooned_pages - return pages retrieved with get_ballooned_pages
>>    * @nr_pages: Number of pages
>>    * @pages: pages to return
>>    */
>> -void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages)
>>   {
>>       unsigned int i;
>>
>> @@ -687,9 +686,9 @@ void xen_free_unpopulated_pages(unsigned int nr_pages,
>> struct page **pages)
>>
>>       mutex_unlock(&balloon_mutex);
>>   }
>> -EXPORT_SYMBOL(xen_free_unpopulated_pages);
>> +EXPORT_SYMBOL(xen_free_ballooned_pages);
>>
>> -#if defined(CONFIG_XEN_PV)
>> +#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
>>   static void __init balloon_add_region(unsigned long start_pfn,
>>                         unsigned long pages)
>>   {
>> @@ -712,7 +711,6 @@ static void __init balloon_add_region(unsigned long
>> start_pfn,
>>       balloon_stats.total_pages += extra_pfn_end - start_pfn;
>>   }
>>   #endif
>> -#endif
>>
>>   static int __init balloon_init(void)
>>   {
>> diff --git a/include/xen/balloon.h b/include/xen/balloon.h
>> index e93d4f0..f78a6cc 100644
>> --- a/include/xen/balloon.h
>> +++ b/include/xen/balloon.h
>> @@ -26,6 +26,9 @@ extern struct balloon_stats balloon_stats;
>>
>>   void balloon_set_new_target(unsigned long target);
>>
>> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages);
>> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages);
>> +
>>   #ifdef CONFIG_XEN_BALLOON
>>   void xen_balloon_init(void);
>>   #else
>> diff --git a/include/xen/xen.h b/include/xen/xen.h
>> index 9f031b5..410e3e4 100644
>> --- a/include/xen/xen.h
>> +++ b/include/xen/xen.h
>> @@ -52,7 +52,13 @@ bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
>>   extern u64 xen_saved_max_mem_size;
>>   #endif
>>
>> +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>>   int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
>>   void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
>> +#else
>> +#define xen_alloc_unpopulated_pages xen_alloc_ballooned_pages
>> +#define xen_free_unpopulated_pages xen_free_ballooned_pages
>> +#include <xen/balloon.h>
>> +#endif
>>
>>   #endif    /* _XEN_XEN_H */

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 09:37:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 09:37:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230245.398035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoiC-00074V-Ht; Wed, 24 Nov 2021 09:37:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230245.398035; Wed, 24 Nov 2021 09:37:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoiC-00074O-EX; Wed, 24 Nov 2021 09:37:08 +0000
Received: by outflank-mailman (input) for mailman id 230245;
 Wed, 24 Nov 2021 09:37:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vMcq=QL=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpoiA-00074H-R6
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 09:37:06 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 159025ce-4d0a-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 10:37:05 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id r25so7513490edq.7
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 01:37:04 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id gn16sm6607235ejc.67.2021.11.24.01.37.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Nov 2021 01:37:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 159025ce-4d0a-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=LLsVfz2xkbVPHDb84dKuTA3CwlaBQFpehIHi1Zr5R0Q=;
        b=ZbyrQva0VrcsjKblyf76l9JraOi8y4+WxsI8wvaFZOiSCWYGktp62tkcF9yw8LKwoA
         J+v0IbD48bUQ5bfuSh9Ql638U0A106v+yLdzE2zDQzXAHIVIxorIPK5vjl3bNLS7s+Kc
         2gHecZzhN78Hf2C8lCHrfYizFabhqlgMrhqP1QvyyFGJmQxHn2HzkDLDUQs0MlwIlAIx
         WupMc+U5u8xRBVB6wEqvRxMtMxsrkEG2ypTlwhWyr4LsXeBb6MHxSk/ISSzsdx4pqZPQ
         L1zsw+eF02YYGWyaKM6EQuytLUfP5MIwLi1eDg3NjySsDp77L1J+gxZpriRxHWHHExOn
         LhJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=LLsVfz2xkbVPHDb84dKuTA3CwlaBQFpehIHi1Zr5R0Q=;
        b=icJr3e4fggaRNJRvd7p/HfZWM3ROXPwbT9qkGmxmZSpsTCml8w4LkJyMLdZEOSQ/lx
         72M+yULthMWMApHHReLnbijq4UfWiLCe1YLXxH1P1SmjHJX9guOrJF4NqeWzqD9btohO
         4J/0qboPgDcMnzHazLiF/cKOossdK6g1/jAszmfRw4ZZZk4LkjWvAfuyDo+Te9+TnxmI
         /hqJdC2rnbz52HlW2obsbg2ugiFnDnfCfUKbBuL0nDrViY8ehr9JTe3wA/CqjG8LLPHf
         zat5OGk7uzaVc7otqsWuBvBvXWnSuknFpUtuiOuBWlITpFOlNWbvnedJPTOlaau5ANFI
         wlzw==
X-Gm-Message-State: AOAM533ISgvN3vcF7MOTyR6e+U4LqPW+7hPhPRDtQLzUe0gBRnlpSeL4
	kSPQwUGTIRiKdabAcziXbDo6QStfdv+aNA==
X-Google-Smtp-Source: ABdhPJzjPOcr9hn6QajFZRQC0lV9ke1gNzpP/dT9k94n/HrEMrDj0wtrJihV4XeVbWHNGZLHaP082Q==
X-Received: by 2002:a05:6402:51c7:: with SMTP id r7mr22010474edd.359.1637746623898;
        Wed, 24 Nov 2021 01:37:03 -0800 (PST)
Subject: Re: [PATCH V2 3/4] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
To: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Julien Grall <julien@xen.org>
References: <1635264312-3796-1-git-send-email-olekstysh@gmail.com>
 <1635264312-3796-4-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.21.2110280920110.20134@sstabellini-ThinkPad-T480s>
 <1d122e60-df9c-2ac6-8148-f6a836b9e51d@gmail.com>
 <alpine.DEB.2.22.394.2111181642340.1412361@ubuntu-linux-20-04-desktop>
 <f1f1025b-911d-3d27-f408-9c042bc4fca4@gmail.com>
 <alpine.DEB.2.22.394.2111191809100.1412361@ubuntu-linux-20-04-desktop>
 <76163855-c5eb-05db-2f39-3c6bfee46345@gmail.com>
 <d0b851a5-6546-3958-7d4c-9436f574d62e@suse.com>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <600c9307-2717-3223-5bd0-fa0530e9e5af@gmail.com>
Date: Wed, 24 Nov 2021 11:37:02 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <d0b851a5-6546-3958-7d4c-9436f574d62e@suse.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 24.11.21 07:16, Juergen Gross wrote:

Hi Juergen

> On 23.11.21 17:46, Oleksandr wrote:
>>
>> On 20.11.21 04:19, Stefano Stabellini wrote:
>>
>> Hi Stefano, Juergen, all
>>
>>
>>> Juergen please see the bottom of the email
>>>
>>> On Fri, 19 Nov 2021, Oleksandr wrote:
>>>> On 19.11.21 02:59, Stefano Stabellini wrote:
>>>>> On Tue, 9 Nov 2021, Oleksandr wrote:
>>>>>> On 28.10.21 19:37, Stefano Stabellini wrote:
>>>>>>
>>>>>> Hi Stefano
>>>>>>
>>>>>> I am sorry for the late response.
>>>>>>
>>>>>>> On Tue, 26 Oct 2021, Oleksandr Tyshchenko wrote:
>>>>>>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>>>>>
>>>>>>>> The main reason of this change is that unpopulated-alloc
>>>>>>>> code cannot be used in its current form on Arm, but there
>>>>>>>> is a desire to reuse it to avoid wasting real RAM pages
>>>>>>>> for the grant/foreign mappings.
>>>>>>>>
>>>>>>>> The problem is that system "iomem_resource" is used for
>>>>>>>> the address space allocation, but the really unallocated
>>>>>>>> space can't be figured out precisely by the domain on Arm
>>>>>>>> without hypervisor involvement. For example, not all device
>>>>>>>> I/O regions are known by the time domain starts creating
>>>>>>>> grant/foreign mappings. And following the advise from
>>>>>>>> "iomem_resource" we might end up reusing these regions by
>>>>>>>> a mistake. So, the hypervisor which maintains the P2M for
>>>>>>>> the domain is in the best position to provide unused regions
>>>>>>>> of guest physical address space which could be safely used
>>>>>>>> to create grant/foreign mappings.
>>>>>>>>
>>>>>>>> Introduce new helper arch_xen_unpopulated_init() which purpose
>>>>>>>> is to create specific Xen resource based on the memory regions
>>>>>>>> provided by the hypervisor to be used as unused space for Xen
>>>>>>>> scratch pages.
>>>>>>>>
>>>>>>>> If arch doesn't implement arch_xen_unpopulated_init() to
>>>>>>>> initialize Xen resource the default "iomem_resource" will be used.
>>>>>>>> So the behavior on x86 won't be changed.
>>>>>>>>
>>>>>>>> Also fall back to allocate xenballooned pages (steal real RAM
>>>>>>>> pages) if we do not have any suitable resource to work with and
>>>>>>>> as the result we won't be able to provide unpopulated pages.
>>>>>>>>
>>>>>>>> Signed-off-by: Oleksandr Tyshchenko 
>>>>>>>> <oleksandr_tyshchenko@epam.com>
>>>>>>>> ---
>>>>>>>> Changes RFC -> V2:
>>>>>>>>       - new patch, instead of
>>>>>>>>        "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to
>>>>>>>> provide
>>>>>>>> unallocated space"
>>>>>>>> ---
>>>>>>>>     drivers/xen/unpopulated-alloc.c | 89
>>>>>>>> +++++++++++++++++++++++++++++++++++++++--
>>>>>>>>     include/xen/xen.h               |  2 +
>>>>>>>>     2 files changed, 88 insertions(+), 3 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/drivers/xen/unpopulated-alloc.c
>>>>>>>> b/drivers/xen/unpopulated-alloc.c
>>>>>>>> index a03dc5b..1f1d8d8 100644
>>>>>>>> --- a/drivers/xen/unpopulated-alloc.c
>>>>>>>> +++ b/drivers/xen/unpopulated-alloc.c
>>>>>>>> @@ -8,6 +8,7 @@
>>>>>>>>       #include <asm/page.h>
>>>>>>>>     +#include <xen/balloon.h>
>>>>>>>>     #include <xen/page.h>
>>>>>>>>     #include <xen/xen.h>
>>>>>>>>     @@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_lock);
>>>>>>>>     static struct page *page_list;
>>>>>>>>     static unsigned int list_count;
>>>>>>>>     +static struct resource *target_resource;
>>>>>>>> +static struct resource xen_resource = {
>>>>>>>> +    .name = "Xen unused space",
>>>>>>>> +};
>>>>>>>> +
>>>>>>>> +/*
>>>>>>>> + * If arch is not happy with system "iomem_resource" being 
>>>>>>>> used for
>>>>>>>> + * the region allocation it can provide it's own view by 
>>>>>>>> initializing
>>>>>>>> + * "xen_resource" with unused regions of guest physical 
>>>>>>>> address space
>>>>>>>> + * provided by the hypervisor.
>>>>>>>> + */
>>>>>>>> +int __weak arch_xen_unpopulated_init(struct resource *res)
>>>>>>>> +{
>>>>>>>> +    return -ENOSYS;
>>>>>>>> +}
>>>>>>>> +
>>>>>>>>     static int fill_list(unsigned int nr_pages)
>>>>>>>>     {
>>>>>>>>         struct dev_pagemap *pgmap;
>>>>>>>> -    struct resource *res;
>>>>>>>> +    struct resource *res, *tmp_res = NULL;
>>>>>>>>         void *vaddr;
>>>>>>>>         unsigned int i, alloc_pages = round_up(nr_pages,
>>>>>>>> PAGES_PER_SECTION);
>>>>>>>> -    int ret = -ENOMEM;
>>>>>>>> +    int ret;
>>>>>>>>           res = kzalloc(sizeof(*res), GFP_KERNEL);
>>>>>>>>         if (!res)
>>>>>>>> @@ -30,7 +47,7 @@ static int fill_list(unsigned int nr_pages)
>>>>>>>>         res->name = "Xen scratch";
>>>>>>>>         res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
>>>>>>>>     -    ret = allocate_resource(&iomem_resource, res,
>>>>>>>> +    ret = allocate_resource(target_resource, res,
>>>>>>>>                     alloc_pages * PAGE_SIZE, 0, -1,
>>>>>>>>                     PAGES_PER_SECTION * PAGE_SIZE, NULL,
>>>>>>>> NULL);
>>>>>>>>         if (ret < 0) {
>>>>>>>> @@ -38,6 +55,31 @@ static int fill_list(unsigned int nr_pages)
>>>>>>>>             goto err_resource;
>>>>>>>>         }
>>>>>>>>     +    /*
>>>>>>>> +     * Reserve the region previously allocated from Xen resource
>>>>>>>> to avoid
>>>>>>>> +     * re-using it by someone else.
>>>>>>>> +     */
>>>>>>>> +    if (target_resource != &iomem_resource) {
>>>>>>>> +        tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>>>>>>>> +        if (!res) {
>>>>>>>> +            ret = -ENOMEM;
>>>>>>>> +            goto err_insert;
>>>>>>>> +        }
>>>>>>>> +
>>>>>>>> +        tmp_res->name = res->name;
>>>>>>>> +        tmp_res->start = res->start;
>>>>>>>> +        tmp_res->end = res->end;
>>>>>>>> +        tmp_res->flags = res->flags;
>>>>>>>> +
>>>>>>>> +        ret = insert_resource(&iomem_resource, tmp_res);
>>>>>>>> +        if (ret < 0) {
>>>>>>>> +            pr_err("Cannot insert IOMEM resource [%llx -
>>>>>>>> %llx]\n",
>>>>>>>> +                   tmp_res->start, tmp_res->end);
>>>>>>>> +            kfree(tmp_res);
>>>>>>>> +            goto err_insert;
>>>>>>>> +        }
>>>>>>>> +    }
>>>>>>> I am a bit confused.. why do we need to do this? Who could be
>>>>>>> erroneously re-using the region? Are you saying that the next time
>>>>>>> allocate_resource is called it could find the same region again? It
>>>>>>> doesn't seem possible?
>>>>>> No, as I understand the allocate_resource() being called for the 
>>>>>> same root
>>>>>> resource won't provide the same region... We only need to do this 
>>>>>> (insert
>>>>>> the
>>>>>> region into "iomem_resource") if we allocated it from our *internal*
>>>>>> "xen_resource", as *global* "iomem_resource" (which is used 
>>>>>> everywhere) is
>>>>>> not
>>>>>> aware of that region has been already allocated. So inserting a 
>>>>>> region
>>>>>> here we
>>>>>> reserving it, otherwise it could be reused elsewhere.
>>>>> But elsewhere where?
>>>> I think, theoretically everywhere where 
>>>> allocate_resource(&iomem_resource,
>>>> ...) is called.
>>>>
>>>>
>>>>> Let's say that allocate_resource allocates a range from xen_resource.
>>>>>   From reading the code, it doesn't look like iomem_resource would 
>>>>> have
>>>>> that range because the extended regions described under 
>>>>> /hypervisor are
>>>>> not added automatically to iomem_resource.
>>>>>
>>>>> So what if we don't call insert_resource? Nothing could allocate the
>>>>> same range because iomem_resource doesn't have it at all and
>>>>> xen_resource is not used anywhere if not here.
>>>>>
>>>>> What am I missing?
>>>>
>>>> Below my understanding which, of course, might be wrong.
>>>>
>>>> If we don't claim resource by calling insert_resource (or even
>>>> request_resource) here then the same range could be allocated 
>>>> everywhere where
>>>> allocate_resource(&iomem_resource, ...) is called.
>>>> I don't see what prevents the same range from being allocated. Why 
>>>> actually
>>>> allocate_resource(&iomem_resource, ...) can't provide the same 
>>>> range if it is
>>>> free (not-reserved-yet) from it's PoV? The comment above 
>>>> allocate_resource()
>>>> says "allocate empty slot in the resource tree given range & 
>>>> alignment". So
>>>> this "empty slot" could be exactly the same range.
>>>>
>>>> I experimented with that a bit trying to call
>>>> allocate_resource(&iomem_resource, ...) several times in another 
>>>> place to see
>>>> what ranges it returns in both cases (w/ and w/o calling 
>>>> insert_resource
>>>> here). So an experiment confirmed (of course, if I made it 
>>>> correctly) that the
>>>> same range could be allocated if we didn't call insert_resource() 
>>>> here. And as
>>>> I understand there is nothing strange here, as iomem_resource 
>>>> covers all
>>>> address space initially (0, -1) and everything *not* 
>>>> inserted/requested (in
>>>> other words, reserved) yet is considered as free and could be 
>>>> provided if fits
>>>> constraints. Or I really missed something?
>>> Thanks for the explanation! It was me that didn't know that
>>> iomem_resource covers all the address space initially. I thought it was
>>> populated only with actual iomem ranges. Now it makes sense, thanks!
>>>
>>>
>>>> It feels to me that it would be better to call request_resource() 
>>>> instead of
>>>> insert_resource(). It seems, that if no conflict happens both 
>>>> functions will
>>>> behave in same way, but in case of conflict if the conflicting 
>>>> resource
>>>> entirely fit the new resource the former will return an error. I 
>>>> think, this
>>>> way we will be able to detect that a range we are trying to reserve 
>>>> is already
>>>> present and bail out early.
>>>>
>>>>
>>>>> Or maybe it is the other way around: core Linux code assumes 
>>>>> everything
>>>>> is described in iomem_resource so something under kernel/ or mm/ 
>>>>> would
>>>>> crash if we start using a page pointing to an address missing from
>>>>> iomem_resource?
>>>>>>>>         pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
>>>>>>>>         if (!pgmap) {
>>>>>>>>             ret = -ENOMEM;
>>>>>>>> @@ -95,12 +137,40 @@ static int fill_list(unsigned int nr_pages)
>>>>>>>>     err_memremap:
>>>>>>>>         kfree(pgmap);
>>>>>>>>     err_pgmap:
>>>>>>>> +    if (tmp_res) {
>>>>>>>> +        release_resource(tmp_res);
>>>>>>>> +        kfree(tmp_res);
>>>>>>>> +    }
>>>>>>>> +err_insert:
>>>>>>>>         release_resource(res);
>>>>>>>>     err_resource:
>>>>>>>>         kfree(res);
>>>>>>>>         return ret;
>>>>>>>>     }
>>>>>>>>     +static void unpopulated_init(void)
>>>>>>>> +{
>>>>>>>> +    static bool inited = false;
>>>>>>> initialized = false
>>>>>> ok.
>>>>>>
>>>>>>
>>>>>>>> +    int ret;
>>>>>>>> +
>>>>>>>> +    if (inited)
>>>>>>>> +        return;
>>>>>>>> +
>>>>>>>> +    /*
>>>>>>>> +     * Try to initialize Xen resource the first and fall back to
>>>>>>>> default
>>>>>>>> +     * resource if arch doesn't offer one.
>>>>>>>> +     */
>>>>>>>> +    ret = arch_xen_unpopulated_init(&xen_resource);
>>>>>>>> +    if (!ret)
>>>>>>>> +        target_resource = &xen_resource;
>>>>>>>> +    else if (ret == -ENOSYS)
>>>>>>>> +        target_resource = &iomem_resource;
>>>>>>>> +    else
>>>>>>>> +        pr_err("Cannot initialize Xen resource\n");
>>>>>>>> +
>>>>>>>> +    inited = true;
>>>>>>>> +}
>>>>>>> Would it make sense to call unpopulated_init from an init function,
>>>>>>> rather than every time xen_alloc_unpopulated_pages is called?
>>>>>> Good point, thank you. Will do. To be honest, I also don't like the
>>>>>> current
>>>>>> approach much.
>>>>>>
>>>>>>
>>>>>>>>     /**
>>>>>>>>      * xen_alloc_unpopulated_pages - alloc unpopulated pages
>>>>>>>>      * @nr_pages: Number of pages
>>>>>>>> @@ -112,6 +182,16 @@ int xen_alloc_unpopulated_pages(unsigned int
>>>>>>>> nr_pages, struct page **pages)
>>>>>>>>         unsigned int i;
>>>>>>>>         int ret = 0;
>>>>>>>>     +    unpopulated_init();
>>>>>>>> +
>>>>>>>> +    /*
>>>>>>>> +     * Fall back to default behavior if we do not have any
>>>>>>>> suitable
>>>>>>>> resource
>>>>>>>> +     * to allocate required region from and as the result we 
>>>>>>>> won't
>>>>>>>> be able
>>>>>>>> to
>>>>>>>> +     * construct pages.
>>>>>>>> +     */
>>>>>>>> +    if (!target_resource)
>>>>>>>> +        return alloc_xenballooned_pages(nr_pages, pages);
>>>>>>> The commit message says that the behavior on x86 doesn't change 
>>>>>>> but this
>>>>>>> seems to be a change that could impact x86?
>>>>>> I don't think, however I didn't tested on x86 and might be wrong, 
>>>>>> but
>>>>>> according to the current patch, on x86 the "target_resource" is 
>>>>>> always
>>>>>> valid
>>>>>> and points to the "iomem_resource" as arch_xen_unpopulated_init() 
>>>>>> is not
>>>>>> implemented. So there won't be any fallback to use
>>>>>> alloc_(free)_xenballooned_pages() here and fill_list() will 
>>>>>> behave as
>>>>>> usual.
>>>>>    If target_resource is always valid, then we don't need this 
>>>>> special
>>>>> check. In fact, the condition should never be true.
>>>>
>>>> The target_resource is always valid and points to the 
>>>> "iomem_resource" on x86
>>>> (this is equivalent to the behavior before this patch).
>>>> On Arm target_resource might be NULL if arch_xen_unpopulated_init() 
>>>> failed,
>>>> for example, if no extended regions reported by the hypervisor.
>>>> We cannot use "iomem_resource" on Arm, only a resource constructed 
>>>> from
>>>> extended regions. This is why I added that check (and fallback to 
>>>> xenballooned
>>>> pages).
>>>> What I was thinking is that in case of using old Xen (although we 
>>>> would need
>>>> to balloon out RAM pages) we still would be able to keep working, 
>>>> so no need
>>>> to disable CONFIG_XEN_UNPOPULATED_ALLOC on such setups.
>>>>>> You raised a really good question, on Arm we need a fallback to 
>>>>>> balloon
>>>>>> out
>>>>>> RAM pages again if hypervisor doesn't provide extended regions 
>>>>>> (we run on
>>>>>> old
>>>>>> version, no unused regions with reasonable size, etc), so I 
>>>>>> decided to put
>>>>>> a
>>>>>> fallback code here, an indicator of the failure is invalid
>>>>>> "target_resource".
>>>>> I think it is unnecessary as we already assume today that
>>>>> &iomem_resource is always available.
>>>>>> I noticed the patch which is about to be upstreamed that removes
>>>>>> alloc_(free)xenballooned_pages API [1]. Right now I have no idea 
>>>>>> how/where
>>>>>> this fallback could be implemented as this is under build option 
>>>>>> control
>>>>>> (CONFIG_XEN_UNPOPULATED_ALLOC). So the API with the same name is 
>>>>>> either
>>>>>> used
>>>>>> for unpopulated pages (if set) or ballooned pages (if not set). I 
>>>>>> would
>>>>>> appreciate suggestions regarding that. I am wondering would it be 
>>>>>> possible
>>>>>> and
>>>>>> correctly to have both mechanisms (unpopulated and ballooned) 
>>>>>> enabled by
>>>>>> default and some init code to decide which one to use at runtime 
>>>>>> or some
>>>>>> sort?
>>>>> I would keep it simple and remove the fallback from this patch. So:
>>>>>
>>>>> - if not CONFIG_XEN_UNPOPULATED_ALLOC, then balloon
>>>>> - if CONFIG_XEN_UNPOPULATED_ALLOC, then
>>>>>       - xen_resource if present
>>>>>       - otherwise iomem_resource
>>>> Unfortunately, we cannot use iomem_resource on Arm safely, either 
>>>> xen_resource
>>>> or fail (if no fallback exists).
>>>>
>>>>
>>>>> The xen_resource/iomem_resource config can be done at init time using
>>>>> target_resource. At runtime, target_resource is always != NULL so we
>>>>> just go ahead and use it.
>>>>
>>>> Thank you for the suggestion. OK, let's keep it simple and drop 
>>>> fallback
>>>> attempts for now. With one remark:
>>>> We will make CONFIG_XEN_UNPOPULATED_ALLOC disabled by default on 
>>>> Arm in next
>>>> patch. So by default everything will behave as usual on Arm 
>>>> (balloon out RAM
>>>> pages),
>>>> if user knows for sure that Xen reports extended regions, he/she 
>>>> can enable
>>>> the config. This way we won't break anything. What do you think?
>>> Actually after reading your replies and explanation I changed 
>>> opinion: I
>>> think we do need the fallback because Linux cannot really assume that
>>> it is running on "new Xen" so it definitely needs to keep working if
>>> CONFIG_XEN_UNPOPULATED_ALLOC is enabled and the extended regions are 
>>> not
>>> advertised.
>>>
>>> I think we'll have to roll back some of the changes introduced by
>>> 121f2faca2c0a. That's because even if CONFIG_XEN_UNPOPULATED_ALLOC is
>>> enabled we cannot know if we can use unpopulated-alloc or whether we
>>> have to use alloc_xenballooned_pages until we parse the /hypervisor 
>>> node
>>> in device tree at runtime.
>>
>> Exactly!
>>
>>
>>>
>>> In short, we cannot switch between unpopulated-alloc and
>>> alloc_xenballooned_pages at build time, we have to do it at runtime
>>> (boot time).
>>
>> +1
>>
>>
>> I created a patch to partially revert 121f2faca2c0a "xen/balloon: 
>> rename alloc/free_xenballooned_pages".
>>
>> If there is no objections I will add it to V3 (which is almost ready, 
>> except the fallback bits). Could you please tell me what do you think?
>>
>>
>>  From dc79bcd425358596d95e715a8bd8b81deaaeb703 Mon Sep 17 00:00:00 2001
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> Date: Tue, 23 Nov 2021 18:14:41 +0200
>> Subject: [PATCH] xen/balloon: Bring alloc(free)_xenballooned_pages 
>> helpers
>>   back
>>
>> This patch rolls back some of the changes introduced by commit
>> 121f2faca2c0a "xen/balloon: rename alloc/free_xenballooned_pages"
>> in order to make possible to still allocate xenballooned pages
>> if CONFIG_XEN_UNPOPULATED_ALLOC is enabled.
>>
>> On Arm the unpopulated pages will be allocated on top of extended
>> regions provided by Xen via device-tree (the subsequent patches
>> will add required bits to support unpopulated-alloc feature on Arm).
>> The problem is that extended regions feature has been introduced
>> into Xen quite recently (during 4.16 release cycle). So this
>> effectively means that Linux must only use unpopulated-alloc on Arm
>> if it is running on "new Xen" which advertises these regions.
>> But, it will only be known after parsing the "hypervisor" node
>> at boot time, so before doing that we cannot assume anything.
>>
>> In order to keep working if CONFIG_XEN_UNPOPULATED_ALLOC is enabled
>> and the extended regions are not advertised (Linux is running on
>> "old Xen", etc) we need the fallback to alloc_xenballooned_pages().
>>
>> This way we wouldn't reduce the amount of memory usable (wasting
>> RAM pages) for any of the external mappings anymore (and eliminate
>> XSA-300) with "new Xen", but would be still functional ballooning
>> out RAM pages with "old Xen".
>>
>> Also rename alloc(free)_xenballooned_pages to 
>> xen_alloc(free)_ballooned_pages.
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>>   drivers/xen/balloon.c | 20 +++++++++-----------
>>   include/xen/balloon.h |  3 +++
>>   include/xen/xen.h     |  6 ++++++
>>   3 files changed, 18 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
>> index ba2ea11..a2c4fc49 100644
>> --- a/drivers/xen/balloon.c
>> +++ b/drivers/xen/balloon.c
>> @@ -581,7 +581,6 @@ void balloon_set_new_target(unsigned long target)
>>   }
>>   EXPORT_SYMBOL_GPL(balloon_set_new_target);
>>
>> -#ifndef CONFIG_XEN_UNPOPULATED_ALLOC
>>   static int add_ballooned_pages(unsigned int nr_pages)
>>   {
>>       enum bp_state st;
>> @@ -610,12 +609,12 @@ static int add_ballooned_pages(unsigned int 
>> nr_pages)
>>   }
>>
>>   /**
>> - * xen_alloc_unpopulated_pages - get pages that have been ballooned out
>> + * xen_alloc_ballooned_pages - get pages that have been ballooned out
>>    * @nr_pages: Number of pages to get
>>    * @pages: pages returned
>>    * @return 0 on success, error otherwise
>>    */
>> -int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page 
>> **pages)
>> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page 
>> **pages)
>>   {
>>       unsigned int pgno = 0;
>>       struct page *page;
>> @@ -652,23 +651,23 @@ int xen_alloc_unpopulated_pages(unsigned int 
>> nr_pages, struct page **pages)
>>       return 0;
>>    out_undo:
>>       mutex_unlock(&balloon_mutex);
>> -    xen_free_unpopulated_pages(pgno, pages);
>> +    xen_free_ballooned_pages(pgno, pages);
>>       /*
>> -     * NB: free_xenballooned_pages will only subtract pgno pages, 
>> but since
>> +     * NB: xen_free_ballooned_pages will only subtract pgno pages, 
>> but since
>>        * target_unpopulated is incremented with nr_pages at the start 
>> we need
>>        * to remove the remaining ones also, or accounting will be 
>> screwed.
>>        */
>>       balloon_stats.target_unpopulated -= nr_pages - pgno;
>>       return ret;
>>   }
>> -EXPORT_SYMBOL(xen_alloc_unpopulated_pages);
>> +EXPORT_SYMBOL(xen_alloc_ballooned_pages);
>>
>>   /**
>> - * xen_free_unpopulated_pages - return pages retrieved with 
>> get_ballooned_pages
>> + * xen_free_ballooned_pages - return pages retrieved with 
>> get_ballooned_pages
>>    * @nr_pages: Number of pages
>>    * @pages: pages to return
>>    */
>> -void xen_free_unpopulated_pages(unsigned int nr_pages, struct page 
>> **pages)
>> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page 
>> **pages)
>>   {
>>       unsigned int i;
>>
>> @@ -687,9 +686,9 @@ void xen_free_unpopulated_pages(unsigned int 
>> nr_pages, struct page **pages)
>>
>>       mutex_unlock(&balloon_mutex);
>>   }
>> -EXPORT_SYMBOL(xen_free_unpopulated_pages);
>> +EXPORT_SYMBOL(xen_free_ballooned_pages);
>>
>> -#if defined(CONFIG_XEN_PV)
>> +#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
>>   static void __init balloon_add_region(unsigned long start_pfn,
>>                         unsigned long pages)
>>   {
>> @@ -712,7 +711,6 @@ static void __init balloon_add_region(unsigned 
>> long start_pfn,
>>       balloon_stats.total_pages += extra_pfn_end - start_pfn;
>>   }
>>   #endif
>> -#endif
>>
>>   static int __init balloon_init(void)
>>   {
>> diff --git a/include/xen/balloon.h b/include/xen/balloon.h
>> index e93d4f0..f78a6cc 100644
>> --- a/include/xen/balloon.h
>> +++ b/include/xen/balloon.h
>> @@ -26,6 +26,9 @@ extern struct balloon_stats balloon_stats;
>>
>>   void balloon_set_new_target(unsigned long target);
>>
>> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page 
>> **pages);
>> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page 
>> **pages);
>> +
>>   #ifdef CONFIG_XEN_BALLOON
>>   void xen_balloon_init(void);
>>   #else
>> diff --git a/include/xen/xen.h b/include/xen/xen.h
>> index 9f031b5..410e3e4 100644
>> --- a/include/xen/xen.h
>> +++ b/include/xen/xen.h
>> @@ -52,7 +52,13 @@ bool xen_biovec_phys_mergeable(const struct 
>> bio_vec *vec1,
>>   extern u64 xen_saved_max_mem_size;
>>   #endif
>>
>> +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>>   int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page 
>> **pages);
>>   void xen_free_unpopulated_pages(unsigned int nr_pages, struct page 
>> **pages);
>> +#else
>> +#define xen_alloc_unpopulated_pages xen_alloc_ballooned_pages
>> +#define xen_free_unpopulated_pages xen_free_ballooned_pages
>
> Could you please make those inline functions instead?

Sure, will make.


>
>
> Other than that I'm fine with the approach.

Great, thank you!


>
>
> Juergen

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 09:46:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 09:46:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230252.398052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoqd-0008U8-HB; Wed, 24 Nov 2021 09:45:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230252.398052; Wed, 24 Nov 2021 09:45:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpoqd-0008U1-Cv; Wed, 24 Nov 2021 09:45:51 +0000
Received: by outflank-mailman (input) for mailman id 230252;
 Wed, 24 Nov 2021 09:45:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XpRf=QL=hotmail.com=yanluyi2010@srs-se1.protection.inumbo.net>)
 id 1mpoqa-0008TT-5J
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 09:45:50 +0000
Received: from JPN01-OS0-obe.outbound.protection.outlook.com
 (mail-os0jpn01olkn2081e.outbound.protection.outlook.com
 [2a01:111:f403:700c::81e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 29e78ec8-4d0b-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 10:44:50 +0100 (CET)
Received: from OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:1a2::6)
 by OS3P286MB1936.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:175::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Wed, 24 Nov
 2021 09:44:45 +0000
Received: from OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
 ([fe80::9c31:6396:f5d2:35e6]) by OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
 ([fe80::9c31:6396:f5d2:35e6%9]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 09:44:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29e78ec8-4d0b-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KDTTQGsTQ/bdVKj3lGg61nvP6+9oV6V+5EVMYc3jKXi3G4z2ijAwk3/BA9wMMyDzfjTFjx1RctKLNNbj5aIwDNCy/Mgqhdp9JCTWso/fMuDg9uBrrWQ0embmoAMz0K1GHHoixYh8D/ALSFGmEn+nLpZJQwTrOpnrG69Yl77tS8AaxGWXXxYYHXtUj+Kvj3tFtZKbn/1RnXrVpbRbARp4x/nbWm5mQMXF3LjInuiJb53QcO+RN4yyQbDRtjcFVwbs+JrP0qCW5TaznH7Rt94AD8ihMYb5Cjpi9VSc2kOqbzTSMdBiajOERGrhmIzH8bjyCnafZUPoU+BFWxyOiPz1Kg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=P6ZzSX0jwpua5Q5qnlesaYgkWmfuOxdrhjkJ6biGcp4=;
 b=B8SeYrykvuOWJ+uWaVDPAb/xqmI/CC04IXJv6J452ll2QLQYHiv0eBtsdXlC6XNg3UyT1hS6HoEWr/+ZJWH9T31gf/fipHJ9r1xRA7O/ByQTSc1ozyt0mkedn7ateUWuTmvqhZdqiWKK+269VizS9gBUazQujsOWaqapRz0swea4ZDVqTx6rwlV4rHktGxn3uvK5tSg+GuPSfsY3xaKE+jWQGVEWVC0SZ2xnxJlVA32CDBnHRmNL7sGtQLn0XKS+aJNO03XneVoWAU65cfZ9l2OFVslro4wHwNV1rb7SlC0A0t3412tu3nhv9Im/nXywVQ8/hJERq/IsDKpCw8+pFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=P6ZzSX0jwpua5Q5qnlesaYgkWmfuOxdrhjkJ6biGcp4=;
 b=if8zUVGV+qz08Z1sKIwIOKuOsMyEWRDc1867y8JbdxYq2pBwHzTnhpWnJ+JWxDtpxlQ63gJMlabTF2U4BePXGUNlfqYi92sMYNZ6yEqrblCxuRWCDHphvFCkS75MT885Nly1o2ujJWRoormQODOa1pw/mC5QGfEMT8GrbyE1snjFDIM+pOFtnCiGbT/bDj+g4YLVol9xuG7eqXCFueWVzLjF9gsHa4yqzO2ZGH9vBdvk2t83zNxDIysmG/5pXEf0VSQdQ5g2D9YoL9Y4zA3l3IEqeEeEQyvwH4Lio0os2J9YM2naB8Rv/WUc4xTOqSdsLgzlxbeQiGa+Tee0Esk0iA==
From: Untitled YAN <yanluyi2010@hotmail.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "tamas@tklengyel.com" <tamas@tklengyel.com>, "aisaila@bitdefender.com"
	<aisaila@bitdefender.com>, "ppircalabu@bitdefender.com"
	<ppircalabu@bitdefender.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: About support for memory event on AMD CPUs
Thread-Topic: About support for memory event on AMD CPUs
Thread-Index: AQHX4Ivyto+Oc0SSQ0aRZryw/8JAG6wST82AgAAO3bCAAAtgAIAAATxX
Date: Wed, 24 Nov 2021 09:44:45 +0000
Message-ID:
 <OS3P286MB1995A04EFEE65E1FBC735FDFB3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
References:
 <OS3P286MB1995471B56ADDC423A4EDC9FB3609@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
 <ad9abcb1-0a17-644b-5338-8c305e9ce4b4@suse.com>
 <OS3P286MB19953CFD3B3D4B2B71261DD9B3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
 <1b6ae1da-a9be-2e37-e993-05f1bb095f80@suse.com>
In-Reply-To: <1b6ae1da-a9be-2e37-e993-05f1bb095f80@suse.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
suggested_attachment_session_id: 5644686d-2161-023e-26ab-b8a078e3416d
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [3bo01EuBnDi7wHzwyhBSbtH7P8kquSyOV2/ps/K3NBk=]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f6a8bbef-dda3-47d7-b111-08d9af2f0c62
x-ms-traffictypediagnostic: OS3P286MB1936:
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 849zt7Ly0mtBQFnGl17/57ehwtoc/DoOSUlgbbAU+a/5gRoAfto1+WnAcbFYZvbMRIuL2AOwJw2mw3BUiYTZUjB1aht6HY5fDfMrMMDy3p+j4I7hFKj+8yOF3Jl192sHl+FDPho1WFtTF7oXPHdwH4OrHmg00egj2/pGGICockmMyFvSwrfEd2s83SkWP3xd9ytX46gRgW3GYVs0tP7n8RU/36/v/AJBt2wKD+h/XnWBN8V9jMbNSWnXlfgGB9+7bcbv630dJnqTSpnGGDJ8LwGOEOKIh3V7OQAkIFhuc88coZJ15DUNYJY981ERfC7QB5BQoFql3jusQURhK6XiAFGL3MPJ5mN3LKfpu/tp+Gnbn078dYjDrsyXOBLNVmsXDPlI89NgAVAEUOqhk9kiC+mxdq4L3l60fnGjuQUfvP+JWSQn2UX1bkJBp2m02dQAze2Nfqq6okgAf1J+QirW134KqSwxOsWxINJb7SF2k5Zw8ChrWjAND8LXZLizIi92k4pDVY+993maixv/WCwpc/TqO6csRXoEVTmJ/NH1iTsdxtWX2fPPgX0nitKkiZ3jErzfwXvk6DuWGoX55YNQLwnCH5UJVDK5D8i4TBRwSsjr40qTKbdErQ6i08XYbHyZ
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 kbcXMVD0HJyHAHxWZ3rhP9F8zUS1LdAwNZ/psCxzhzPB2M9209/xD3U4kG8yJ/GTD8/88p+Qg64wWhBlIiqdqFlOFldPuzgdZDdAAz4iYaAM48xGXAOcdKz3PdHHBoCHWj+zdpD1cUt57vUlK83CwrdBjCSNzDuHk97qeO1WOaRQs+7vzqO2yMNeXA6Me6MJmWWQUFMwkHhgiKEOom3T4M3IVtzWXTzoKzpWORnftn1PwOnJwXzSrap5fkPHRZ7Xx9lDLn9rMwIZbch2g5tPlC9OfOKOafwQdZDON3XxNj6djLRtqtdHSbD7PiOyx4Zf/6l1Y9uDX7DB6HWgIkF6eRbwc/Uc2fo1/Wfu6tHfgnzBJXrUXGIgP9OThTzqKpoIwcpMkovkeMnYKKISJOUlH/KlVQjA5QyDFO+6veq8Se7F3IBWaH9IalmoYyLGir++3vwPsdWtmBhBWXiPu10wsH8ZnirpKKSo6XWmcJu0wvVmUoXTN/QzuLdVsc7kEZx/QWRyPnGdxg3+tv+3kdhM3GFylSFrCFrlqxVNnp2KUowvt8xVnDZ0ZpxsGkeRX1SXwv8naLiOmQFTuga55DK310vownWvhq1bdvsg8wHLI0CRuCM6jxx6Ou+OQOgaCuNtNUd+priQYUdIXx+T0iD1Hop+K4Lc1x5itVw4jnpPLFe+L2yrEKaPiGnmxk1p3jJqngcfGxTCovqnW/0CZygdmg==
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-18f16.templateTenant
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: f6a8bbef-dda3-47d7-b111-08d9af2f0c62
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 09:44:45.5405
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3P286MB1936

Original email:=0A=
=0A=
From: Jan Beulich <jbeulich@suse.com>=0A=
Sent: Wednesday, November 24, 2021 17:27=0A=
To: Untitled YAN <yanluyi2010@hotmail.com>=0A=
Cc: tamas@tklengyel.com <tamas@tklengyel.com>; aisaila@bitdefender.com <ais=
aila@bitdefender.com>; ppircalabu@bitdefender.com <ppircalabu@bitdefender.c=
om>; xen-devel@lists.xenproject.org <xen-devel@lists.xenproject.org>=0A=
Subject: Re: About support for memory event on AMD CPUs =0A=
=A0=0A=
> On 24.11.2021 10:23, Untitled YAN wrote:=0A=
> > Original email:=0A=
> > =0A=
> > From: Jan Beulich <jbeulich@suse.com>=0A=
> > Sent: Wednesday, November 24, 2021 15:54=0A=
> > To: YAN Untitled <yanluyi2010@hotmail.com>=0A=
> > Cc: tamas@tklengyel.com <tamas@tklengyel.com>; aisaila@bitdefender.com =
<aisaila@bitdefender.com>; ppircalabu@bitdefender.com <ppircalabu@bitdefend=
er.com>; xen-devel@lists.xenproject.org <xen-devel@lists.x enproject.>org>=
=0A=
> > Subject: Re: About support for memory event on AMD CPUs =0A=
> > =A0=0A=
> >> On 23.11.2021 18:14, YAN Untitled wrote:=0A=
> >>> Dear developers,=0A=
> >>>=0A=
> >>> Short version: is memory event supported on AMD CPUs or is it going t=
o be=0A=
> >>> supported?=0A=
> >>>=0A=
> >>> Long version:=0A=
> >>>=0A=
> >>> Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), 64=
-bit=0A=
> >>> Debian 11 Dom0.=0A=
> >>>=0A=
> >>> What I am trying to accomplish: register a **memory event** handler, =
so that=0A=
> >>> I can capture all memory accesses within a specific range issued by a=
ny thread,=0A=
> >>> or all memory accesses within any range issued by a specific thread.=
=0A=
> >>>=0A=
> >>> What I got instead: an error from LibVMI saying=0A=
> >>> "xc_hvm_set_mem_access failed with code: -1".=0A=
> >>>=0A=
> >>> Some investigation: by inspecting the source code of LibVMI, I find t=
he direct=0A=
> >>> cause is one of the libxc functions, 1) xc_set_mem_access or=0A=
> >>> 2) xc_altp2m_set_mem_access, returned error code -1.=0A=
> >>>=0A=
> >>> After some searching, I found someone else having a similar problem [=
1]. I also=0A=
> >>> noted LibVMI says:=0A=
> >>>=0A=
> >>>> Currently only the Xen Hypervisor provides these features,=0A=
> >>>> and some of these are specifically only available on Intel CPUs=0A=
> >>>=0A=
> >>> However, I can't find the exact confirmation for the availability of =
memory=0A=
> >>> event on AMD CPUs from https://wiki.xenproject.org.=0A=
> >>=0A=
> >> Aiui underlying what you want is altp2m, which presently depends (in=
=0A=
> >> the hypervisor) on EPT being available (and in use for the guest in=0A=
> >> question).=0A=
> >>=0A=
> >> Jan=0A=
> > =0A=
> > Dear Jan,=0A=
> > =0A=
> > Thanks for your reply. I really appreciate the information. After some=
=0A=
> > searching with the keyword "EPT" I found [1]. So I checked on dom0 with=
=0A=
> > "xl dmesg | grep HAP", which says:=0A=
> > =0A=
> >> (XEN) HVM: Hardware Assisted Paging (HAP) detected=0A=
> >> (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB=0A=
> > =0A=
> > And the guest is an HVM guest running Debian 10 with kernel v4.16 built=
 from=0A=
> > source. Most of the configuration of the guest is generated by virt-man=
ager.=0A=
> > The "xl list -l" shows that there is no explicit configuration for EPT,=
 RVI or=0A=
> > HAP, but it does say the "type" is "hvm".=0A=
> =0A=
> HAP is the term covering EPT on the Intel side and NPT for AMD.=0A=
> =0A=
> Jan=0A=
=0A=
Dear Jan,=0A=
=0A=
Yeah that's why I wanted to confirm if the HAP is enabled for the guest - i=
t=0A=
turns out it is enabled but for some reason, xc_altp2m_set_mem_access faile=
d.=0A=
I am trying to replicate my setup on an Intel machine to find out if it's a=
=0A=
configuration problem. Still don't know if it's implemented for AMD but tha=
nks=0A=
for your help and information.=0A=
=0A=
=0A=
Untitled YAN=0A=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 09:47:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 09:47:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230257.398063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mporv-0000iM-V3; Wed, 24 Nov 2021 09:47:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230257.398063; Wed, 24 Nov 2021 09:47:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mporv-0000iF-S1; Wed, 24 Nov 2021 09:47:11 +0000
Received: by outflank-mailman (input) for mailman id 230257;
 Wed, 24 Nov 2021 09:47:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mG44=QL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mport-0000dL-Vg
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 09:47:10 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d955e63-4d0b-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 10:47:09 +0100 (CET)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2053.outbound.protection.outlook.com [104.47.5.53]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-20-P16puqGqNMyQABqH8I9mcQ-1; Wed, 24 Nov 2021 10:47:07 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5743.eurprd04.prod.outlook.com (2603:10a6:803:e0::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 09:47:06 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 09:47:06 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0205.eurprd04.prod.outlook.com (2603:10a6:20b:2f3::30) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.21 via Frontend
 Transport; Wed, 24 Nov 2021 09:47:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d955e63-4d0b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637747228;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=BSeWv28KQ1l5h5GXAKoI/OowuT0vgXcMOaA9rbcE51c=;
	b=Lf4NBHmTb+YD6fC8pnGT5pE5EFMQfAHIfOHxpfVQrASqkHui24wcbyjzONEkV1dfVB3M2z
	20DyOxNkHdlDxrf3Djb0htC5fvWMIVAbSLtG4h8FAbp55f6SBmmJen5VwRXL+8HI2rwK3Q
	hfFAE1o27EqhR/fMDFVrVGmcEZJ+HMI=
X-MC-Unique: P16puqGqNMyQABqH8I9mcQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BaY1SPXWHBcx6wqzN6I5tiknYLNfZceCGzYFtKoKuvmb1tcrMx9IQyxkvkZyQtb4RBfVxblPqI5ND2WLkgi2+72zYzA3LOkLzz0uu1IJTQ4V2Q79iHq06dr15RsxW/aYIDadmzjgOuGQc8DDX8DqaVNBYT44ujIGj8NCGJmkOjhnaAMO7Rf5vudZX4lyEbI4eNgtL2NDTfyHlt3CPAN/DkLgEuu7kryZ560Li99Yt9/BkVpBukIGjuND6uLujTfar13GtHN6d5LVEkucuu3av5fFOv41uSbbQqeNTFcSY3LKo5J/uWBAyof+RdafqgyakFT4Rlb4eEJ3lt2pLddefA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BSeWv28KQ1l5h5GXAKoI/OowuT0vgXcMOaA9rbcE51c=;
 b=InTvdIYWbGwhqFemsZIVa4qyDvV8ZiHBNIuuQ95oPQI6v4K7IcxUQfCx/0VINZgqstalvmuYbX3tYSb7eXNlIe+O37yrkXfAa5I572kLFeimoCLxcxumTP6b523dT25gGBQ4qvjz4KOqkcOtVSvL/jIgewvRWhTN8grAPq4mQSwKxhCgB/0ueUoF4RCPeakjV1HC8d/3L8KDd0QmAWYp646TCG8E2r2Iwr/DfxKGWeVReuuVXU5QyFjH7Bk0VAmqPAfUF2Ixu3z5S6ohyzxyqtGExEU+MOQ8muwyC+DKpQMHz3T1PjvCMEF9TXJafjHfMaH53yZZLpRscO+ofnq7hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b454300f-9d63-bae3-c412-3b8d3f4db888@suse.com>
Date: Wed, 24 Nov 2021 10:47:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Ping: [PATCH 0/5] x86/mwait-idle: updates from Linux
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e16ff1ad-b1c5-f4e0-9336-716eceb93a9f@suse.com>
In-Reply-To: <e16ff1ad-b1c5-f4e0-9336-716eceb93a9f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0205.eurprd04.prod.outlook.com
 (2603:10a6:20b:2f3::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8492efc2-f0e8-450a-c975-08d9af2f5ff5
X-MS-TrafficTypeDiagnostic: VI1PR04MB5743:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB57439124C76952B55A212C00B3619@VI1PR04MB5743.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	6rV6/vZkheznvwRx11P9Adjt3nrVA3ELOBiRSdgeXHE/TD6vZnIa2qCG3KnWKdUFdBK0e1bjC48zHNUStw5BpydmFUKtaxpEV1Ibu4wBUbbaUTiXcCQjxFvtjyJzajVvtQtGFpy+DIyfl3zpvLA1mKXanLDaQJF7suX1mhl94jdhg1toTXJwNxTIj2DqTK4lJ7T4G3DUZIPD7uaGB2kcFwJFYitF1CiqKsXGgh8+yLuawpWVnnxuIwYeohPAtZzwSm43Hh+zjpjyPCedvv/g1x80BiNLzBL29/9/hgkZqCtaCh31p4uRq3o3m7+wZ30brxll0M0wXs0rTc0WzBQDvhB9qGgMDiuSwZUxwBPZL7kFN4WAhJzNCvbJYv5fCldKO/3tdCLrhK2p8SNy7+V8npZg/HHpbkFjYNa07Qs3qRPBhtFYzz1qdHp2oKycUfZpl1ROr618YUpXvy3AXN7SzrxJoK5YXM8cUOWjQ9EqlK/Pa9p4tfyCGeJFUtIqyOuzy7C9u8m4ZFduEsTzJIptnFxdwsOQjqD+wctz5wa2tkDc66FJQbfJNmONCKTjT8wxOhAqdcedPikEilL/Gu/df5WzudQa8Dvkdl+0qrlaI8Vt+b/AD/ZhY2MUhQosM+w95zkUHVKfBImSC5w+8rAUAYtCik+HgjOnOhwW2GlvdH5+GPBLJz0b097bMKFaVzhoG1rtOINhKF/Vi9CrDfh6687hwzptd2WjTU7gPIyKhW4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(54906003)(316002)(15650500001)(110136005)(16576012)(66556008)(26005)(2616005)(66476007)(31696002)(186003)(38100700002)(4744005)(66946007)(956004)(2906002)(8936002)(5660300002)(31686004)(508600001)(83380400001)(6486002)(36756003)(86362001)(8676002)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YytsdG9DZnhHQnhjbWJJc0xYcnlJWDVWOEV3UURFTXRvYnp3R0g2anV2OTBD?=
 =?utf-8?B?TTZRVnlZc09vY01ZWEtmdEI5V2lqeU0wMnpDaHhqZFNxVjBzbnVBQUNCaHhN?=
 =?utf-8?B?Uit4WVl2NlBvZk9JWHpieW00V0dBMTlkTWVEZW5BK1BVbWhBRHZJbktvM3pR?=
 =?utf-8?B?VFNBbm5qZDdwZXBuL0xFUjd4L3dEZVBJbzVQd1B4bGNnM01pMUFXU0dNM3B5?=
 =?utf-8?B?UmxFbytyNTE5bkNXMklGeW9rUkF2aG1iSHNTU1NmUm95U240WnpBalMvWVBI?=
 =?utf-8?B?Y2w1UnNhL3M4Smt0YzlUVkNDeWJxQWtob0Q4clpBaDFFMEhQdCtpOWJsMFJJ?=
 =?utf-8?B?VnZpK0VVZ2ZOOWxDVjI4NGxMTnpEanRHSUIrb0RuOEFxeURTZ0RKZTFzeGNx?=
 =?utf-8?B?MGFaQU5saHZOdkV5KzR0Yzh3eFc5OHV4dHpsM2IxSEJ5ZFIwY3lTUzBVSnpU?=
 =?utf-8?B?amxzMWgvSDRmL0plNFVsMVlhQThzK2RqZUdmWUxMdFAxZ2lSZWp1SUpNV29D?=
 =?utf-8?B?Zm9HbW5MVVFYRVhXS2xzTFh0aWoyUGpzQkhGczdDSCtjdk85TkpQQmdjVTh0?=
 =?utf-8?B?U0ZxQU5Ra0tZU012S24wd3QxcFZBRWN3YXprRnE3V1g2ZTZ0cHQrcjdNVUtJ?=
 =?utf-8?B?dVJrbkhZQ1FraGgwdDFKTERHUUZLQUdQZ0NmbG1KSTlQOUJVY2NFeXFkUU1J?=
 =?utf-8?B?N0JKTjI1MWNiV1BRVjRVRXNmb21BamZNdVRhWnFFV29lZUxaNHc1bEhVcHBu?=
 =?utf-8?B?MkhXMzMybm12UEs5Y1o1UGFnU0dZRzJyOHdBWFdUK0puaGJodTUwbkVVMUIx?=
 =?utf-8?B?UkhYMkl2UDJFSzg0bFRpWGM5T0FWbkpPWTFOR09UVElZeGQ3b2JuL3NWZENW?=
 =?utf-8?B?M3FNeER5b0xwajVOZFZ2OXZ3aUpnTDNWUUg2NUVlNUhlL0V1WEc1c3ltOFFo?=
 =?utf-8?B?dERVUDlZR3NDYXlLY2FIbkQwS25va3NEcmRoNEJPY3o0VGY3RmEyMkpzTUpF?=
 =?utf-8?B?YStxc2MvZm16MTRoNkxsMFlXWlJNYW04WDQ4WjhPT2FKMloxR0EvNUNqc1ZY?=
 =?utf-8?B?bzRFaUhSZ2ZnS2FXZzlmUXlaU0FrdGpjSEh1eXZjSG5oWHptbVhKczZJdXRo?=
 =?utf-8?B?Z2llUXREUGN6SnpMV21SalRsTStoOGdsVDZpUmk5MTRDQWI0aGl5UExTdE53?=
 =?utf-8?B?QTJ1U3RsYlFFbTdaT1lJWHJWOXlXZXBiNEdOZlRMWHFUNXl1THd0aDMvRWJl?=
 =?utf-8?B?cnJ1b3VSTGI4K3dTYmJBZW1kOHJ5M1IyQ0N5WTJsaERvdUN4MDVYNzN5ek1z?=
 =?utf-8?B?eXllTUF2bUl0bEdBRk95MXRKL04yeWpqZTRQTWpzKzZmQWh6WUxNN2pKMyta?=
 =?utf-8?B?aEZMa0JKZE9KSS9pa01NalgveXI5cm9seVF5TklIVFpOR2FDa3FNMy9xZ2w4?=
 =?utf-8?B?OTByK2x2M0RyNWZ3OVNhKzExUXMxSGNienBRV1R3M3NoZDdYUXZia2lTaHBV?=
 =?utf-8?B?SGowcHlWMDdtKzNwZXJnRFE3ZzJjNDdKbXZMeU1QcVNXeXpCbjZ2UkV6SWdy?=
 =?utf-8?B?RWxJcjNYV0J6bUdjVDFLQTJ5SE01eHFROFNCZ2NFMEUvZ1VmL280aTRHOXNn?=
 =?utf-8?B?NEl6Qk8xdG0vYU1mSjM1ZmorYVZZeWQzcnFhVEJDUkh4MHZscFpnYjdjSkQ0?=
 =?utf-8?B?RExQOTBKM3pFWDZ2Q2trdU1qMXJDbWk1UG00U21kaXExQU0zdGl1U1gzcDhi?=
 =?utf-8?B?VWc4NG9Cd2ZUdm1HSUNQSmlOdEZGb08xdWVwV0htS2FSbG1WV0lqeVRaVFNF?=
 =?utf-8?B?WEkwNkJOamhFS0V0YzNGS2VGUDAvaXV2dU1Nb3lobm53RGxWTVdUS0Q5WGIz?=
 =?utf-8?B?eUVNaVlmRG9UU0oxM0R0clFXNGlqZVJQa2dXZkhoN21VQjNVMnpkeGlYTTlu?=
 =?utf-8?B?Z25iU0kvN0xCWmZrNVpwZ2dPNTc4ZXIxcVcrZFBNSForR05jdU9PbklkS0JI?=
 =?utf-8?B?RDNvVTVNU2V0c2ZzQUpRR2ptaGlXVitJM014SVBUZDY0YnhocUR5SDVCT0c2?=
 =?utf-8?B?K2xiOCtZTnpwbUNTM0RIWFBheldIQTBmWWZFVE9ZUGg1cjJKWWNCS1FycVJV?=
 =?utf-8?B?RnZ6YUdhUUxwREdHMVMrdm9BdDNkSUJyUGZ6Rzd2Z0tYS1pPV0VGWVVMOWxF?=
 =?utf-8?Q?wZ4RdArjVOslmXHHOJFUixA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8492efc2-f0e8-450a-c975-08d9af2f5ff5
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 09:47:05.9532
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sfxdel1qPp4tKpzoJ9lI5A/8l5KQRQ32U4jb4CEmw1GO3nvcKTpMdokDqeI6MrXO5xiEtitX5GzP9+sGduIBSQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5743

On 06.09.2021 14:58, Jan Beulich wrote:
> Before the code freeze I thought I'd check the original driver again,
> and indeed there were a few changes we want to inherit.
> 
> 1: mention assumption that WBINVD is not needed
> 2: add SnowRidge C-state table
> 3: update ICX C6 data
> 4: add Icelake-D support
> 5: adjust the SKX C6 parameters if PC6 is disabled

Ping?

Thanks, Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 09:57:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 09:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230267.398076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpp1h-0002Ey-Vj; Wed, 24 Nov 2021 09:57:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230267.398076; Wed, 24 Nov 2021 09:57:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpp1h-0002Er-Ss; Wed, 24 Nov 2021 09:57:17 +0000
Received: by outflank-mailman (input) for mailman id 230267;
 Wed, 24 Nov 2021 09:57:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpp1g-0002Eh-Gq; Wed, 24 Nov 2021 09:57:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpp1g-0003nf-6P; Wed, 24 Nov 2021 09:57:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpp1f-0000oy-T4; Wed, 24 Nov 2021 09:57:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpp1f-0006PE-SW; Wed, 24 Nov 2021 09:57:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QiPT4SCdw3l1wks8bSDll2eP1sRuCdV/RZRFPcFVo4k=; b=lB5Bpmnyjp6e+U4QmpNW81kVZe
	LRM8P3nj5p31Hbjab3Ep/4+n7QpFL8kE7Jysywg4cdAF36+znf0Pbf0qXfvGzh2zo3Tc2VD7k5vor
	pjHXU4jmc8FPtqQE5rQWPDrKm3nHTZeVbzDMIDKPk2s048ej33jrR22X763IVTdLekNE=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166347-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-coverity test] 166347: all pass - PUSHED
X-Osstest-Versions-This:
    xen=a5706b80f42e028c5153fc50734a1e86a99ff9d2
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Nov 2021 09:57:15 +0000

flight 166347 xen-unstable-coverity real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166347/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xen                  a5706b80f42e028c5153fc50734a1e86a99ff9d2
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166258  2021-11-21 09:18:28 Z    3 days
Testing same since   166347  2021-11-24 09:18:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 coverity-amd64                                               pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   be12fcca8b..a5706b80f4  a5706b80f42e028c5153fc50734a1e86a99ff9d2 -> coverity-tested/smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 10:19:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 10:19:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230276.398090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mppMh-0004eb-RE; Wed, 24 Nov 2021 10:18:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230276.398090; Wed, 24 Nov 2021 10:18:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mppMh-0004eU-OC; Wed, 24 Nov 2021 10:18:59 +0000
Received: by outflank-mailman (input) for mailman id 230276;
 Wed, 24 Nov 2021 10:18:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mG44=QL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mppMg-0004eG-B9
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 10:18:58 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef0c8d6a-4d0f-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 11:18:57 +0100 (CET)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur02lp2058.outbound.protection.outlook.com [104.47.6.58]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-17-u3o9kYVEO1Gya8ID9y5Rvw-1; Wed, 24 Nov 2021 11:18:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2447.eurprd04.prod.outlook.com (2603:10a6:800:53::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Wed, 24 Nov
 2021 10:18:55 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 10:18:54 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0366.eurprd06.prod.outlook.com (2603:10a6:20b:460::6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.19 via Frontend Transport; Wed, 24 Nov 2021 10:18:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef0c8d6a-4d0f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637749137;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=mkI99FCwyYlJwOriIFzuI0qwan0cZn1jP7t4c49CV54=;
	b=CvgHP/OYCY9+zGnGfI28VIm0Gh+ADiOWDD6f3qvOw/xIV0uGj4oLwJ430/z6MwCWhzQM53
	TeyTrXnTQx7LWv2d7/ebc99s/ipzcXDc3vc6ikHKAQ+1IlhSn51vhu9RVf1DOM/1Fn7zUO
	ecBzibPbyrlVedE+tl2ewDJmRTb9Qdw=
X-MC-Unique: u3o9kYVEO1Gya8ID9y5Rvw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Cjtv4AoR6rxl0UrNwMv8w7HWTMKdrOPyKg2HIAkVdYs6rA0Wbkr28T4tNq6lh4RC2PEfr/+uQoMs6VpCRiY+JOnoApSd9irYpGY6o7pxub+vUij8L/cDRCqeUsaVu841DwtSqBH/rjYqeR3T4ZSe0gu9bI97zTTJrsh4SgsYQf6nj7ryaAydPFsfU905W1oWxtbGX4oFHWPuMG+akuQ2deI7MpJg4szYKbaedbxfQ+KF0et9wF2WiQug+to+QXeq1K0cA0t9hlPDkok95vqCFd+VUs59LnA0kR4o+RkDC393HBj6clfLpcxWeTfmwPgrJRAnfMhvOVMt7WNkT84Vag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mkI99FCwyYlJwOriIFzuI0qwan0cZn1jP7t4c49CV54=;
 b=QwCClcboVC9nHO8oOxzE2xHB8dm4IIE26SdfULMsYuQEAFz9ibApBfmcQ7nLRI6TuBKJCqZE267wwjih7xOpn0Bslk1ruytHoxXXq5EIjQWEPykyGQvK16B7DdICDckq3Zn+dNMSAsxhPM68v+CrZ0hKjuHgKTAHUWnrBPfBs+u55k/fh9akfW1BI5ZBRq/eBfIqgYCcI4tmEcFRZn5PW4TgcgbCar9gv1858C0Ju6YhjnDVjwBUat7CkR5efG5F4fNWWP5UhsvrZ8JTOMC+nLEOTXFUekmZ9O50ofR+MGJToiN/OAVVyBIfSr6RJD82KEhwAuLfx12iSZQE1d113A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f27b185a-e952-88bb-21fd-f1e0d27e13af@suse.com>
Date: Wed, 24 Nov 2021 11:18:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16] MAINTAINERS: declare REMUS support orphaned
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>, Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
References: <20211117122647.17872-1-roger.pau@citrix.com>
 <24980.62958.680856.115625@mariner.uk.xensource.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <24980.62958.680856.115625@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0366.eurprd06.prod.outlook.com
 (2603:10a6:20b:460::6) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 298d9449-9c4e-40b8-8b56-08d9af33d1b4
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2447:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB244742579E5093430DBA83E1B3619@VI1PR0401MB2447.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	FwwIAruMRU8y7XYcNFZuhldftgVH3GGE4HELqHcdBJy5Ubgghj03P+LQY7E3ZNvK+ez9iZDQ/BZOAUXSz22Y4AVjjphI9Y0l4qVc/Rjtc33Z/U9PF0pteiD+VnMCL/Y4Rz0uCwh+dyRhg3/TvyrZu6LI4tVjyxrFBBM4a9WCOOIRxKLV9RDM/1A634DyJH194Ikb4+npmyEUsSfbsr7A0zdRs6MNWZAgF/EoXkFNS/UmM3OIKAD/a4FgaSR2DrEZdEM4lhjeOHBfj2BE1qVZdEMxJDlWwL2vAzrvP6zPpVhqPcN/wK3+0L3aG/JYip+NJUyMcYAsh2aUo1VSp4FKjiURROWI98d8/f7ae2DzWTYmiy58D35YnaWOXNGizdluAyN1/c6bHS3kywt5zcYRrkI4pLq8yS3IlHSHcw18ygDSc4SRJ8467pluNVQ89t5JaMcz4cGoqq67ThfSujlo016XgAP0fNKcbWGIY7OpOAYxTLYv4t8S5aJbOJ842Iaa6cy8PydBdgvMultW27GzmqFoLJNKsE8e/AO7GkkYFgU1py+5tzeufE/63xwhd3yhKPhAIE83gl3VVbL27zfSdyWNILGDpxP7TPyvoLghdHfgEo62uR1OoO917hMAxZMkSbzBz7HUajq/s7B2PNEP4pknIVoOLhcKwLP86LcaPxkfx6YZb2/0y7v7kx2XaqCm2sPixwf3bHE5//jBynIUFV5kK4HUHCq1ODAov3ZUURQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(110136005)(66556008)(16576012)(66476007)(316002)(31696002)(508600001)(8936002)(2906002)(31686004)(66946007)(186003)(5660300002)(38100700002)(6486002)(4326008)(8676002)(36756003)(956004)(4744005)(2616005)(86362001)(26005)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aW9BYXVrWHhadGxjakNMeVZadTN2R2E2MzBLNDV1dnVWSEZyR3h6M0ZrcWJL?=
 =?utf-8?B?TExOeS9sMU9SajFwelhNNTFpbEtuZ1VJQy9uTEhXYk1wbU1TU2lrY29mVFZQ?=
 =?utf-8?B?SHB5N3dkSHByMVF2ZDVkbThUbGNHNlcvdmVDdXZ2WkNnb0FmaE10b1VWdzBx?=
 =?utf-8?B?VG5QWWRZeGRGdGxlTkYwSXkwSS8wTmxMS2Z4S3FDdjIzWkNaNTU0cXRUcmJX?=
 =?utf-8?B?WkltbEd3VktWY09Sdk01RktzRXVNUDNNUHhJcWpQRUFlVFpqdVRtOCtiZ1dh?=
 =?utf-8?B?S2tFMzd1cWVxdWV2VVVwL2ZBakZXbFZTRkZab0h3YUg5NzJNbnNDK200K2wx?=
 =?utf-8?B?N3BZTWdJZnRDOC9BT2ppb2tmK2RNenZrRUlhQVdaS1lRN2FzVys2M0h5QTg5?=
 =?utf-8?B?K0sxaVVJMll0bkJnQVBrSXVqL1JkQXkyNjdyL1hmR2xUck4xUVRMckVJYUlO?=
 =?utf-8?B?Nkk2T0hOTXBvL0dYN2Z4Rk9tdlh3QkdrbnkvRzVqNVBxaWM4N0pkWWd6OERE?=
 =?utf-8?B?dkc3STh6d2RvOEtaRVZaNkhZRHZHQzQzZWNmVnJjS3FYMEs4UnhLNGNhdGdn?=
 =?utf-8?B?dHp0ZGYyY3pYd2xiSHgvRm5vV0czY2MxQnBTS1EvS04xaHFDSDR1NU5sNXdJ?=
 =?utf-8?B?N2UwQzYwQnQvb1ZaaTdlakUySk4veUh3RFZUSU00ZUIvY1dFdHFRTnR4TVpt?=
 =?utf-8?B?ZkgzWWdmdnFsN0lTQkNsMUUwQ2p6dUYwa3BUR1ZMVWN2TW1veDdzMUFCSmJS?=
 =?utf-8?B?UTFEZnkvVnlLSFBCM1lIVW9nbENOdlF6L1VPZ3lNWGE3REU2MlA5V01kOTkx?=
 =?utf-8?B?b3ZmY2hIRWhKWStGKzZjTzZrS1pBT1YwclFFVFF4RFFQRVVkM0ZVWFNnb3N3?=
 =?utf-8?B?Q2Z6Q3NNYzNuTEFsM09SMjhjeHJBY0JmVjUxL1VCVGJqRzNKQnJRWDVpS0NR?=
 =?utf-8?B?VVZSSTB3SUZNMnpnOXVlSjhLNWJ5c0g0M0JGb3l4eWUwS0hheGM3MzcrQjdU?=
 =?utf-8?B?Q05xSFlZWTBIejRXWnJVd092Q3lZUFdZc3d1d3U5eHZ0bFp3b3FvT2ZHSXc3?=
 =?utf-8?B?V3VQODk0OG5yUEV5Uy9MUFZyS3JkSmdOUFJZaVJmejlXTFl2cS95b09ZS3Fk?=
 =?utf-8?B?NDB1U0ZkalRVMldmdzBXYW5UU2NIbk5RVUJYODdhS0NiV3B6RXpORkM5YnZa?=
 =?utf-8?B?Q2VRcGF1WC9XSGhpZGxkNjZ5Zkp5ZStCdFlnWVo0VFQ5WlF2MHdmSGU0dllJ?=
 =?utf-8?B?dkdxZ0VYRDJSVmI4Z2d0TWJBSFE1MW5EQlB5Y0xsTEsxSEZoa1NTK2J3aVNx?=
 =?utf-8?B?YWRnS2UydlNvVmpHb0ttU0hVYzk2dnVLSitwdzJRSnl2aUlCSUZSenN5Y0tN?=
 =?utf-8?B?SHhUcFl4TitycXB0R1BHeDZpSlVtaWYrM1A0bFNaUURiYnBkcTkzczAwdXB1?=
 =?utf-8?B?MzRjQ3MvSk15bUhpNmFrSkk0MWRhQUN5cFNka0xxTFY3d0ltMXVlek1WNDFY?=
 =?utf-8?B?dTVWYTdVN1cyYzZ3c3pGWnNLRVhML1FmSUp0ZWU0L3ZlSEdOTERCMTNKbWNw?=
 =?utf-8?B?eW9QMHVDOVpGaitJTTRjQWFmMHprU0N6amM1K1JReFN6Sjd1cVR1QWxuSHBh?=
 =?utf-8?B?cE45cytKYmpRdzRxdkpqaTlvUUszMEdleTkxdHl5V1Q4VElQbUF3Q2I4UjJP?=
 =?utf-8?B?ZUZTcXlBTjVMaVdlRXVSNDdxZHNNSy8zcjVhbUNlTmZJMnQ0akFKMzRiUlZk?=
 =?utf-8?B?NGl1N3dsQ04wdmQ4UHFvWlpqWGc0NEl3L0tmMk5GV1VXdHM3SHpqbzRNOFRH?=
 =?utf-8?B?cTdVZXBzSG92d0ZMNmxnMmRTd3pveHhrdSszOEJEak1GOXY1ZjdrQVVrdjNi?=
 =?utf-8?B?TTRxRUY2Wk9QV0hORUpnT2Uvam5pWlNQU3BPNUttelIza01JQ2ExbGQvY081?=
 =?utf-8?B?dWlXQXhOemNad2wyS2pBQ0dFUlZzbEtqOWZRNkJjYUtnNWRhQUcrQ0tmWjhF?=
 =?utf-8?B?eDk5Q1ZFemZpekdITHVzT3lOMzJ2SVFNUXVDbGRUek5zcGRwQWNhSGxrbSt0?=
 =?utf-8?B?eVM5NWZuYXNMeUZYVkdTSjBrdjVnMElIRU4zUy9YK3VCQnFva3NNVHlZOVgz?=
 =?utf-8?B?MTdscWc4RDMxUjhnL3p6NXVIYXJ4cHhXdDcrSGR2TGVjMk5mNnptaEx0cmY0?=
 =?utf-8?Q?U4IyAa7FMBz6H2p8qr8tSTs=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 298d9449-9c4e-40b8-8b56-08d9af33d1b4
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 10:18:54.8557
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X44MYu4zRkl2J/l1MIvnpgvR2q7QLNAvB6aV/ghEzX6jJValnuZM52xt83pgceVyech3I6GKMbVqs++bA6ePxQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2447

On 17.11.2021 13:30, Ian Jackson wrote:
> Roger Pau Monne writes ("[PATCH for-4.16] MAINTAINERS: declare REMUS support orphaned"):
>> The designated maintainer email address for the remus entry is
>> bouncing, so remove it and declare the entry as orphaned as there's no
>> other maintainer.
> 
> Hrm, :-(.
> 
> Acked-by: Ian Jackson <iwj@xenproject.org>

I've committed this to staging; I wasn't convinced this is strictly needed
on any stable branch (i.e. including 4.16).

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 11:00:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 11:00:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230317.398160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpq11-0001k0-PN; Wed, 24 Nov 2021 11:00:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230317.398160; Wed, 24 Nov 2021 11:00:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpq11-0001jt-MU; Wed, 24 Nov 2021 11:00:39 +0000
Received: by outflank-mailman (input) for mailman id 230317;
 Wed, 24 Nov 2021 11:00:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XDHO=QL=arm.com=Rahul.Singh@srs-se1.protection.inumbo.net>)
 id 1mpq10-0001jn-OE
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 11:00:38 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20626.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::626])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c138bb08-4d15-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 12:00:37 +0100 (CET)
Received: from DB6PR07CA0180.eurprd07.prod.outlook.com (2603:10a6:6:43::34) by
 AS4PR08MB7430.eurprd08.prod.outlook.com (2603:10a6:20b:4e2::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4690.15; Wed, 24 Nov 2021 11:00:36 +0000
Received: from DB5EUR03FT040.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:6:43:cafe::b) by DB6PR07CA0180.outlook.office365.com
 (2603:10a6:6:43::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.13 via Frontend
 Transport; Wed, 24 Nov 2021 11:00:36 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT040.mail.protection.outlook.com (10.152.20.243) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Wed, 24 Nov 2021 11:00:34 +0000
Received: ("Tessian outbound c61f076cbd30:v110");
 Wed, 24 Nov 2021 11:00:27 +0000
Received: from 2918ea206796.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 DC9953F4-CE83-416D-8D9C-A92A874E678C.1; 
 Wed, 24 Nov 2021 11:00:11 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2918ea206796.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 24 Nov 2021 11:00:11 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com (2603:10a6:20b:39e::10)
 by AM5PR0801MB1939.eurprd08.prod.outlook.com (2603:10a6:203:4c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 11:00:10 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9]) by AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9%9]) with mapi id 15.20.4649.026; Wed, 24 Nov 2021
 11:00:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c138bb08-4d15-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yuKyEtE1j8hPGd8AmGbiDWEIBIkmHFmIrj952QgirMM=;
 b=x76hN2k9bp0WokXocfzSsdRnDm03xwYPuYu1FiySSeeFw1SplGuSx6ofl+fXcUtnnadFBozzOZNAvHb9AREDQZJBd8Zrd/2f0O8vh4ex98vu5RrJj66+9ydEAP7GKCMc7L3ugRJ2W4UhmQI2dI/kyJy8RPc1GS4NpC05BAGc0AI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: adbb343335619ebe
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AAVEL+OAsmLAz8+pVgEVQMIM+FbMz+CfUHX6VSCfqshXTAtcz2NzZbXZy9UHosbaCeRYtuIlrFltswCogEzDS+OmapJFKqOHIr2ZClgNKtPTFMsnr35vRdY3tV408W2bXvpZXJvMK36LxyVSff1bbskuMFtCxiMzUyoPtrQJZbQq8UOL0Fd5T0ZokjaUcMtOCPZH2HiHrKunAXrH1yIHDwn+ik0m7DA0+2cJC6fsTW4ahdgA+G0tsmgPtuA1MfpJ/bSdteW5FQOoGkcv8ZF7BxZ70Xq62fqjIfPN0jbWSa03l71Byqnrg8gGvrkR/0KZKMWPzRypKR0g9kJvFTUJDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yuKyEtE1j8hPGd8AmGbiDWEIBIkmHFmIrj952QgirMM=;
 b=Nwb2nwteci/ltDqOdeDztAHPh3a5YCHQfKdHbRL1Et9CRXCaMbkmFqYo02VURRd9Oaigw7kOybR4VUGX8CVQz00BnGnU8NSc0yXmu8yrSaYu7c6xl2XtNA/6LETQLRzLRwRPbrP4nhob347sFkMDIDPai64SuDH+Xua4uIVmhpSZEeHoupgRUz0fLr00FDsAS2ff0Y1shqsJ6J/sGCVRbU+hJbJYF0THL9SnTnHFf03ta8QOKDfFtJ47o2xFWfLRegSbl7wHXSoL+eaEutkIlx1/eBeEE+InlSwvWRcedSKebnk4xgwsuI+9IYpKEAx7Xy/pWiW70rGhHWVQcOZUGw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yuKyEtE1j8hPGd8AmGbiDWEIBIkmHFmIrj952QgirMM=;
 b=x76hN2k9bp0WokXocfzSsdRnDm03xwYPuYu1FiySSeeFw1SplGuSx6ofl+fXcUtnnadFBozzOZNAvHb9AREDQZJBd8Zrd/2f0O8vh4ex98vu5RrJj66+9ydEAP7GKCMc7L3ugRJ2W4UhmQI2dI/kyJy8RPc1GS4NpC05BAGc0AI=
From: Rahul Singh <Rahul.Singh@arm.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, "oleksandr_tyshchenko@epam.com"
	<oleksandr_tyshchenko@epam.com>, "volodymyr_babchuk@epam.com"
	<volodymyr_babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Paul Durrant <paul@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>, Julien Grall <jgrall@amazon.com>
Subject: Re: [PATCH v7 1/7] xen/arm: rename DEVICE_PCI to
 DEVICE_PCI_HOSTBRIDGE
Thread-Topic: [PATCH v7 1/7] xen/arm: rename DEVICE_PCI to
 DEVICE_PCI_HOSTBRIDGE
Thread-Index: AQHX4QlLPJHRFd6iGEayNemX9MfPqawSgtAA
Date: Wed, 24 Nov 2021 11:00:09 +0000
Message-ID: <8FB59B18-9750-4039-9098-1B55FA36B922@arm.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
 <20211124075942.2645445-2-andr2000@gmail.com>
In-Reply-To: <20211124075942.2645445-2-andr2000@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: c9700e27-502c-4f70-2c87-08d9af39a3ab
x-ms-traffictypediagnostic: AM5PR0801MB1939:|AS4PR08MB7430:
X-Microsoft-Antispam-PRVS:
	<AS4PR08MB7430B7F5951FF1ED0B0BBCEEFC619@AS4PR08MB7430.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:7219;OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 mVniJEs32k5UtNKj+BkGaCxkllSbtgAFOH2P1if6s37COiAXFTWNLXKpQFUArZm70LQnvOAWWBmj7ZvheqzFuM4TT4B+QpHflE3Mq1zrwfXPDZR3nE1gOOplm/029ky5/wseGLCk5bezXbR1QrSWeFvs8lCl6X/Vs38Pe36FY164tYiiUuALaNFqfytcXH3TodwE0CPVRsLKIUaKtbcmPBOIHzjuDESt5cKJAZ/KbRfAF79vj3cuw4bx7YyVZhFJ9YvX4C967khI+l95IawL/PG28wVOGicIkIoCFiXwB3FWWNcL00Jea4YOqe4r/Xv3H7eDZH1Oy67dQbQNjtX11fXA8XP7C1veSYEm3350HlXVacQkw7LeDlxnWBAyiJEnhGKBKBBXQVQHQjXsZuqxhkvcmPoe1X1gjcW7E/df3P9+wjz+M88YD+7uKZ97s6rAsw5nmtnNFSwNY58hLBsuJ9JMY7gK4aehnXgv+A8GEWWFckJ5LSWAAOBvtso+cCBXYtG0MJEIplgbIlqu4hEVx6+y8zUTO0STA73mxJU3INLfd2RaNoumvTupwgH/0Qq3+FoeymzAIIxu/eU5mLFfJl3n2C8JlMuiGb4C4kCfs67g4HcB5szVjTTEA4s2+5ZKXPOlRwgyJEKDRq0mPx1ZLpXTCulRzaMnO4I7vRxfx/twxIrLIF1v6DHe44jCRPXG9iZCLs4io3/TX6M3wAIig+vUiJJqtsVmztksOzHzad0HrQhwPhxtdzk0Lo4Ud0FC
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6919.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(33656002)(2616005)(6486002)(38100700002)(64756008)(38070700005)(26005)(2906002)(54906003)(122000001)(66556008)(76116006)(91956017)(186003)(66476007)(66446008)(6916009)(4326008)(5660300002)(7416002)(36756003)(53546011)(6506007)(71200400001)(6512007)(508600001)(316002)(8676002)(66946007)(83380400001)(86362001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <8D084265A0AA2D46BF7899DEC6C2FE18@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1939
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT040.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	034b0ec4-0a84-4c37-74ab-08d9af39951d
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JvlUf+36Zjz53XJ1pV0Ajx6uBYH25GqExvnYdOS2WltvJueBhfGtTwWZebOs+z2FFghjpfX9E7dZUc3eIWfYQ9VA7lLWkevfZnIxSoppc4DC6bojk7+cbazNSd1AHYIGApqN1tcGsPMnxPYuvOc4Fz+ZtUJG6Y51HW5Nqsj9RvShorxCBa1yCqpWw9tWR343jMxV5mcntjllUn/mpY5JG0qzcqgWpRmVlNsTF/bvtlDssMNYhn96CY++rsjj7JtPAC2pyZGFHhDL33zhxwoNYIzv7cgyIYJAc50OrpowUcpfBAPr0bTieH5hrGf9L85B8xNHSCmWK2grkZ+YH83C18eLwCIXgPqL+NCZPAdETL58D4dI9m/3enkbE13kMfix2eRNTfxx15jL9DMU88C6s0m8/aTk8hBNYL44KbgED9dwEz+qv21iBhxFcOX70N0qOmaWF8OSEgbtTzrwReALvQJF747TGHAoMbz/sLaOKqyh0BErPz9SZooSadweG09OYnPM1S3fqpW2FU5H5UxyydTqtSl6YGu+fb3Qx3zc69IulchIngd0gNatBI5lki6Co96C7hrr6hYrVaNIwgeSeL6zfwBcmzzX9FYwMYz4r9tg0W+r7i23kfAsAtHCgSF2ucL9vQM/oiqrLefcWEfh4F4xi+0qB/PAu9CAqzLx2M7JifQRQ9thX+mOnZ2s3iLWOEyxJMXApPd1vJXZNFvJqg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(6862004)(70586007)(6512007)(316002)(186003)(356005)(83380400001)(8676002)(6486002)(336012)(5660300002)(26005)(2906002)(6506007)(47076005)(53546011)(36860700001)(81166007)(508600001)(36756003)(54906003)(33656002)(86362001)(8936002)(4326008)(82310400004)(70206006)(2616005)(107886003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 11:00:34.0698
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c9700e27-502c-4f70-2c87-08d9af39a3ab
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT040.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7430

Hi Oleksandr,

> On 24 Nov 2021, at 7:59 am, Oleksandr Andrushchenko <andr2000@gmail.com> =
wrote:
>=20
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>=20
> To better reflect the nature of the device type and not to make any
> confusion rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE which it
> really is.
>=20
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Reviewed-by: Rahul Singh <rahul.singh@arm.com>
Tested-by: Rahul Singh <rahul.singh@arm.com>

Regards,
Rahul
> ---
> New in v6
> ---
> xen/arch/arm/pci/pci-host-generic.c | 2 +-
> xen/arch/arm/pci/pci-host-zynqmp.c  | 2 +-
> xen/arch/arm/pci/pci.c              | 2 +-
> xen/include/asm-arm/device.h        | 2 +-
> 4 files changed, 4 insertions(+), 4 deletions(-)
>=20
> diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-h=
ost-generic.c
> index 33457fbe9615..46de6e43cc72 100644
> --- a/xen/arch/arm/pci/pci-host-generic.c
> +++ b/xen/arch/arm/pci/pci-host-generic.c
> @@ -32,7 +32,7 @@ static int __init pci_host_generic_probe(struct dt_devi=
ce_node *dev,
>     return pci_host_common_probe(dev, &pci_generic_ecam_ops);
> }
>=20
> -DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI)
> +DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
> .dt_match =3D gen_pci_dt_match,
> .init =3D pci_host_generic_probe,
> DT_DEVICE_END
> diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-ho=
st-zynqmp.c
> index 61a9807d3d58..516982bca833 100644
> --- a/xen/arch/arm/pci/pci-host-zynqmp.c
> +++ b/xen/arch/arm/pci/pci-host-zynqmp.c
> @@ -49,7 +49,7 @@ static int __init pci_host_generic_probe(struct dt_devi=
ce_node *dev,
>     return pci_host_common_probe(dev, &nwl_pcie_ops);
> }
>=20
> -DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI)
> +DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
> .dt_match =3D nwl_pcie_dt_match,
> .init =3D pci_host_generic_probe,
> DT_DEVICE_END
> diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
> index 082c14e127a8..78b97beaef12 100644
> --- a/xen/arch/arm/pci/pci.c
> +++ b/xen/arch/arm/pci/pci.c
> @@ -46,7 +46,7 @@ static int __init dt_pci_init(void)
>=20
>     dt_for_each_device_node(dt_host, np)
>     {
> -        rc =3D device_init(np, DEVICE_PCI, NULL);
> +        rc =3D device_init(np, DEVICE_PCI_HOSTBRIDGE, NULL);
>         /*
>          * Ignore the following error codes:
>          *   - EBADF: Indicate the current device is not a pci device.
> diff --git a/xen/include/asm-arm/device.h b/xen/include/asm-arm/device.h
> index 3782660751b6..086dde13eb6b 100644
> --- a/xen/include/asm-arm/device.h
> +++ b/xen/include/asm-arm/device.h
> @@ -37,7 +37,7 @@ enum device_class
>     DEVICE_SERIAL,
>     DEVICE_IOMMU,
>     DEVICE_GIC,
> -    DEVICE_PCI,
> +    DEVICE_PCI_HOSTBRIDGE,
>     /* Use for error */
>     DEVICE_UNKNOWN,
> };
> --=20
> 2.25.1
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 11:02:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 11:02:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230325.398172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpq3E-0002QH-9x; Wed, 24 Nov 2021 11:02:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230325.398172; Wed, 24 Nov 2021 11:02:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpq3E-0002QA-73; Wed, 24 Nov 2021 11:02:56 +0000
Received: by outflank-mailman (input) for mailman id 230325;
 Wed, 24 Nov 2021 11:02:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XDHO=QL=arm.com=Rahul.Singh@srs-se1.protection.inumbo.net>)
 id 1mpq3C-0002Pg-Hk
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 11:02:54 +0000
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03on0610.outbound.protection.outlook.com
 [2a01:111:f400:fe09::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12085927-4d16-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 12:02:53 +0100 (CET)
Received: from AM5P194CA0017.EURP194.PROD.OUTLOOK.COM (2603:10a6:203:8f::27)
 by DB6PR08MB2646.eurprd08.prod.outlook.com (2603:10a6:6:20::26) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.25; Wed, 24 Nov
 2021 11:02:49 +0000
Received: from VE1EUR03FT003.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:203:8f:cafe::cc) by AM5P194CA0017.outlook.office365.com
 (2603:10a6:203:8f::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21 via Frontend
 Transport; Wed, 24 Nov 2021 11:02:49 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT003.mail.protection.outlook.com (10.152.18.108) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Wed, 24 Nov 2021 11:02:48 +0000
Received: ("Tessian outbound 9a8c656e7c94:v110");
 Wed, 24 Nov 2021 11:02:48 +0000
Received: from e9f3d3264b8c.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 6227B697-C2CA-4621-898B-BD6CFD951C97.1; 
 Wed, 24 Nov 2021 11:02:39 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e9f3d3264b8c.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 24 Nov 2021 11:02:39 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com (2603:10a6:20b:39e::10)
 by AM6PR08MB4438.eurprd08.prod.outlook.com (2603:10a6:20b:70::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 11:02:37 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9]) by AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9%9]) with mapi id 15.20.4649.026; Wed, 24 Nov 2021
 11:02:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12085927-4d16-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yMJyNYNgJdHqUmD7o1LWtmmO1ml0hOJHRWMVoxJO+mk=;
 b=vwzIE3SxzSf0sunzEYYRxT2/bS0Ni977PCR2eBMCm9xnjEEx/rhTkwyMe8GPnJ0b9TKk0ZiZEzSmFhtlKaF7GQfKzd55l/5fdsBQ/k7U0Y+GaoPsE3yKwY9OJt6pv9LghoA9Plv9TqKC+n/VecPjxdzlFviL3RGYMJHSrGLyeS0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 14b78c0abba0fd7a
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Og2viONCg4DIbOgcV+sIWsSKeqEl4+4KTDM/NlE1DQ8RttBndDQtCSuPY5IQY7D7rdxPstwGVw+ERI4M13yC+ja5DcQsqtNQw8qLw7dtb6YDn01t5yENf+bJmGjNsHPki2aqsq/FeK+8cxWtL7NnFw/gnbhWexM/DYwe13IkpfHeAHXiQsV7m7A8p0Bz+FmY1ILoWEKlLmSxmhQWXPnDebMvFEFggtlepQmvCX957uIdcdxz9d5f80VxuqPZ0ScR7DgFJgXMUeJ5sxwRj0jIJLZJMwuO5irtyNwdL7IRlW4YnIr5Gi55z8jCjcT8H2zskrQISUtcfm2lwhIkoYFq4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yMJyNYNgJdHqUmD7o1LWtmmO1ml0hOJHRWMVoxJO+mk=;
 b=j87oV6UAThtjhFDE7f/bdtick9GqwUspJiB/THzYEcK1uJw6FWJ7o3L7IH1HEQvOP14yonyQduSoU0f5cnAuuA+e+txm9HQk5ZX0ojK3p6cX/35GxbCMhc6YjGK5BpC+4x+40u/BgY3/s5EjCy55LkivDoaGf4LhJjn8IjUR33XVwX14324EA8u4VxKO4ZemT6OMm/mEh4GwhN8q6fKj7So4duohGJdlFJ2gfLaVGWZ+0W4Y+tqNojDCiBcVqVhT4nyYLRy7V6MIlGyDCfBsFMorhTiHwhF3InQTqfJbf3vNTbm9TOSOFHhjd3UQsHEf6jP0p7TW528ZiZ4FZYPfhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yMJyNYNgJdHqUmD7o1LWtmmO1ml0hOJHRWMVoxJO+mk=;
 b=vwzIE3SxzSf0sunzEYYRxT2/bS0Ni977PCR2eBMCm9xnjEEx/rhTkwyMe8GPnJ0b9TKk0ZiZEzSmFhtlKaF7GQfKzd55l/5fdsBQ/k7U0Y+GaoPsE3yKwY9OJt6pv9LghoA9Plv9TqKC+n/VecPjxdzlFviL3RGYMJHSrGLyeS0=
From: Rahul Singh <Rahul.Singh@arm.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, "oleksandr_tyshchenko@epam.com"
	<oleksandr_tyshchenko@epam.com>, "volodymyr_babchuk@epam.com"
	<volodymyr_babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Paul Durrant <paul@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>, Julien Grall <jgrall@amazon.com>
Subject: Re: [PATCH v7 7/7] xen/arm: do not use void pointer in
 pci_host_common_probe
Thread-Topic: [PATCH v7 7/7] xen/arm: do not use void pointer in
 pci_host_common_probe
Thread-Index: AQHX4QlRvZ/qWKTm3kqr3TSiQ/z7NqwSg4AA
Date: Wed, 24 Nov 2021 11:02:37 +0000
Message-ID: <CD685D2D-93D2-41A4-BD86-6B70932419B4@arm.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
 <20211124075942.2645445-8-andr2000@gmail.com>
In-Reply-To: <20211124075942.2645445-8-andr2000@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 621ef998-9f70-4c99-a9a4-08d9af39f3f8
x-ms-traffictypediagnostic: AM6PR08MB4438:|DB6PR08MB2646:
X-Microsoft-Antispam-PRVS:
	<DB6PR08MB264620009DC168CE1C5E22ACFC619@DB6PR08MB2646.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:5516;OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 1agG6fW4KNomDMZQKHlSvrG8etTrLH2rYyMrxNrQg9LpJo3n5wk5uuL4T+pxiuIEwtCqpbijSpvYf3jFr3+CbETbmSwTohquvBbpX8kxiHItWFKtmV/rfiM5/lzTvgcee6yWyY5W+Xoz+ee/mjOH6wjy6Q61vDvLSUa3sM/Sh2KplPBfUv25pDDLsFDco4qaFDvZdmTJ7/Xv25Zlx6NSmw7IVV/dmws3/jjefyFyKrOshqXAF+Yeqk64Eaht2KLFZTk+LgPXXkrmmDDarFySXJ6OkQWsMYIP/NYw4E5IW5RMg7SeogYzUh8vqfkInal8bWksGov3KP6haLvoh45Osowmvnk5oHUE4Hk1My1FhVUlbcei9tNhW+RoTK3/dEge/WqwAbhBjxY5hf8c59LBmLgQ5ZRWqPrnHTq6dh7hnKkKdxF3gSu9uxENRPTdLnDxHOHmg1NSLjn0fry6av1SeIuNyvr8hom1sX9EsXvoBSKHmGl2LXsjuFTnDbz+y+yr0ox+4E24CNuOx0DGylD7CvmVl+iUPyVux972jutcRwD6h+/U6B8z9sF/kXClyiq/7nWHVV7mAZfqYfQQGlfiFqcZmHN0nuETMUbYthBsap5Ys/6v3cPEGw388wPUdDpR6H5GBfBPwfIHWpeakZgxKNbmXUQrlcH+GDTS8QDuXvsabq/gDW+HAKj78K/W+IoG8Ox1C3MyFUvAaAEhCkQkPkyHCLM3KVyogyAnzqbGJio=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6919.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(122000001)(508600001)(7416002)(71200400001)(53546011)(66446008)(66946007)(8936002)(64756008)(2616005)(38100700002)(66556008)(66476007)(91956017)(6916009)(186003)(6506007)(8676002)(5660300002)(4326008)(54906003)(26005)(2906002)(6512007)(38070700005)(83380400001)(316002)(86362001)(6486002)(33656002)(76116006)(36756003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <4D5BC903DD4F014CB8AFFFA003432A93@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4438
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT003.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	017e2058-f978-4bd2-4bed-08d9af39ed4c
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Z5mJVy235LBd1KZrujLB54rNDZctAfR7RiMv3PS5uzYl6KrhikhQKnh5F2CUBCHlWBut0MsZlj0x5DXxTcEpZEJAFaMYLBOO8RzypkbuxIx9CuPpDmwYMpmEiIz5ara/ZWdXO4llGS9KDzmuoTsM5C9kyRSC/+W8+5CgciQJxLVALY2buvbiV/X7MHKmAAhuEwkwcSzWwuY5g0Q2Sjq9LXMzEewQUqu8BTniZZuZ8Dy60d69mRCmdrZreEKec7zRAS2PshP6X47zEXj2Et3rRrAvvecWqc0qLptUX9YkgQXpFX+YIqlYJ3Zaw6IKSP0hOrjEUuCTUb/Dm/YuLb4ywLRQxqbOfxrDE1ozdEeQXJcToi5khJ+Qz0g7hsIDOf7SgS/dOWK85J6P339OlD+0CMWaCWFDHpiD14WFkJrTJjpdE+ak2a1IQAe1HacuUxGlM7Cft/bgQGteFoIAu/D5JFWiGBs5ydT+VeK/n+trRdjN9qG7h31g42kaOYa75VAbHTLx9gRDgD92epaQ7nxxh8afM1yXlwhAFxHyUjuTgAe9u1QhuDavqNXyldwlsZtez1ALLEP6s7OOq0Ak3of4LhzYJdoZPVy6qO8OLFf/sDkug/QQFqbbKNN0/uwm83WIS63cNEatAalj72S4fOVJvtrwdvRy/Ef0blOoVbo3ESJyNr3w2B/jKCkkdHGTE8iJBIvAJLjJxVJ7bxQN4wfHhYnVOqW4i/W2kwIkRtHRmhNHPXCsqOn2bNdamT8VBhwo
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(47076005)(8936002)(36756003)(356005)(70586007)(2906002)(2616005)(6512007)(54906003)(508600001)(6486002)(70206006)(336012)(6862004)(4326008)(26005)(186003)(86362001)(6506007)(53546011)(8676002)(316002)(36860700001)(83380400001)(33656002)(81166007)(82310400004)(5660300002)(107886003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 11:02:48.9343
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 621ef998-9f70-4c99-a9a4-08d9af39f3f8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT003.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2646

Hi Oleksandr,

> On 24 Nov 2021, at 7:59 am, Oleksandr Andrushchenko <andr2000@gmail.com> =
wrote:
>=20
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>=20
> There is no reason to use void pointer while passing ECAM ops to the
> pci_host_common_probe function as it is anyway casted to struct pci_ecam_=
ops
> inside. For that reason remove the void pointer and pass struct pci_ecam_=
ops
> pointer as is.
>=20
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Acked-by: Julien Grall <jgrall@amazon.com>

Reviewed-by: Rahul Singh <rahul.singh@arm.com>
Tested-by: Rahul Singh <rahul.singh@arm.com>

Regards,
Rahul
> ---
> New in v4
> ---
> xen/arch/arm/pci/ecam.c            | 4 ++--
> xen/arch/arm/pci/pci-host-common.c | 6 ++----
> xen/include/asm-arm/pci.h          | 5 +++--
> 3 files changed, 7 insertions(+), 8 deletions(-)
>=20
> diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
> index 4f71b11c3057..6aeea12a68bf 100644
> --- a/xen/arch/arm/pci/ecam.c
> +++ b/xen/arch/arm/pci/ecam.c
> @@ -24,8 +24,8 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *=
bridge,
>                                pci_sbdf_t sbdf, uint32_t where)
> {
>     const struct pci_config_window *cfg =3D bridge->cfg;
> -    struct pci_ecam_ops *ops =3D
> -        container_of(bridge->ops, struct pci_ecam_ops, pci_ops);
> +    const struct pci_ecam_ops *ops =3D
> +        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
>     unsigned int devfn_shift =3D ops->bus_shift - 8;
>     void __iomem *base;
>=20
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-ho=
st-common.c
> index 1b18480adf02..b1a26eb840ab 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -198,18 +198,16 @@ static int pci_bus_find_domain_nr(struct dt_device_=
node *dev)
>     return domain;
> }
>=20
> -int pci_host_common_probe(struct dt_device_node *dev, const void *data)
> +int pci_host_common_probe(struct dt_device_node *dev,
> +                          const struct pci_ecam_ops *ops)
> {
>     struct pci_host_bridge *bridge;
>     struct pci_config_window *cfg;
> -    struct pci_ecam_ops *ops;
>     int err;
>=20
>     if ( dt_device_for_passthrough(dev) )
>         return 0;
>=20
> -    ops =3D (struct pci_ecam_ops *) data;
> -
>     bridge =3D pci_alloc_host_bridge();
>     if ( !bridge )
>         return -ENOMEM;
> diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
> index 679fc83f713b..7c7449d64fca 100644
> --- a/xen/include/asm-arm/pci.h
> +++ b/xen/include/asm-arm/pci.h
> @@ -65,7 +65,7 @@ struct pci_host_bridge {
>     struct list_head node;           /* Node in list of host bridges */
>     uint16_t segment;                /* Segment number */
>     struct pci_config_window* cfg;   /* Pointer to the bridge config wind=
ow */
> -    struct pci_ops *ops;
> +    const struct pci_ops *ops;
> };
>=20
> struct pci_ops {
> @@ -94,7 +94,8 @@ struct pci_ecam_ops {
> /* Default ECAM ops */
> extern const struct pci_ecam_ops pci_generic_ecam_ops;
>=20
> -int pci_host_common_probe(struct dt_device_node *dev, const void *data);
> +int pci_host_common_probe(struct dt_device_node *dev,
> +                          const struct pci_ecam_ops *ops);
> int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sb=
df,
>                             uint32_t reg, uint32_t len, uint32_t *value);
> int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t s=
bdf,
> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 11:16:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 11:16:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230333.398189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqGC-0003wF-IC; Wed, 24 Nov 2021 11:16:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230333.398189; Wed, 24 Nov 2021 11:16:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqGC-0003w8-El; Wed, 24 Nov 2021 11:16:20 +0000
Received: by outflank-mailman (input) for mailman id 230333;
 Wed, 24 Nov 2021 11:16:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpqGA-0003vy-Vr; Wed, 24 Nov 2021 11:16:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpqGA-0005FW-MT; Wed, 24 Nov 2021 11:16:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpqGA-0004z8-9Z; Wed, 24 Nov 2021 11:16:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpqGA-0002uW-93; Wed, 24 Nov 2021 11:16:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=peIdZisYa6aAX9LekiyBY0+KvPFCPiHT9H6YHfPss40=; b=vbT0d5/W5ql/zmsCNj+JeGusBS
	WGqmkwdNjTkMh3too4OpDbGKS9qnXDMvqMs4TfvN9gcb8nfHQzDakZK5pKCYOXSJVYLX4f9ZV0Ef4
	4rmwxloLuIl7HXipuv1CUZk9xk98t4vHtVnjbB75CxxoqhQFXzmCINTFcARYSeYukHMk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166313-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.12-testing test] 166313: regressions - FAIL
X-Osstest-Failures:
    xen-4.12-testing:test-amd64-i386-xl-xsm:guest-localmigrate/x10:fail:regression
    xen-4.12-testing:test-amd64-i386-libvirt-pair:host-ping-check-native/src_host:fail:regression
    xen-4.12-testing:test-amd64-i386-libvirt-pair:host-ping-check-native/dst_host:fail:regression
    xen-4.12-testing:test-amd64-amd64-xl-shadow:host-ping-check-native:fail:regression
    xen-4.12-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow:host-ping-check-native:fail:regression
    xen-4.12-testing:test-amd64-amd64-xl-xsm:debian-install:fail:regression
    xen-4.12-testing:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    xen-4.12-testing:test-amd64-amd64-xl-pvshim:debian-install:fail:regression
    xen-4.12-testing:test-xtf-amd64-amd64-4:host-ping-check-xen:fail:regression
    xen-4.12-testing:test-armhf-armhf-xl-credit1:host-ping-check-native:fail:regression
    xen-4.12-testing:test-amd64-i386-xl-vhd:guest-localmigrate/x10:fail:regression
    xen-4.12-testing:test-amd64-amd64-xl-qcow2:guest-localmigrate/x10:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1442eb9ac448ca43c58bd65dbd82dca0c412c143
X-Osstest-Versions-That:
    xen=95172a6347111247287ca6d7966aff69aa379965
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Nov 2021 11:16:18 +0000

flight 166313 xen-4.12-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166313/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-xsm       20 guest-localmigrate/x10   fail REGR. vs. 165384
 test-amd64-i386-libvirt-pair 8 host-ping-check-native/src_host fail REGR. vs. 165384
 test-amd64-i386-libvirt-pair 9 host-ping-check-native/dst_host fail REGR. vs. 165384
 test-amd64-amd64-xl-shadow    6 host-ping-check-native   fail REGR. vs. 165384
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow 6 host-ping-check-native fail REGR. vs. 165384
 test-amd64-amd64-xl-xsm      12 debian-install           fail REGR. vs. 165384
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 165384
 test-amd64-amd64-xl-pvshim   12 debian-install           fail REGR. vs. 165384
 test-xtf-amd64-amd64-4       10 host-ping-check-xen      fail REGR. vs. 165384
 test-armhf-armhf-xl-credit1   6 host-ping-check-native   fail REGR. vs. 165384
 test-amd64-i386-xl-vhd       19 guest-localmigrate/x10   fail REGR. vs. 165384

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qcow2    19 guest-localmigrate/x10  fail blocked in 165384
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165384
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165384
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165384
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165384
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165384
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165384
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165384
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165384
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165384
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165384
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165384
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165384
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1442eb9ac448ca43c58bd65dbd82dca0c412c143
baseline version:
 xen                  95172a6347111247287ca6d7966aff69aa379965

Last test of basis   165384  2021-10-05 19:06:05 Z   49 days
Testing same since   166313  2021-11-23 13:06:03 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       fail    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 fail    
 test-amd64-amd64-xl-pvshim                                   fail    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    fail    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   fail    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 1442eb9ac448ca43c58bd65dbd82dca0c412c143
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:36:28 2021 +0100

    x86/P2M: deal with partial success of p2m_set_entry()
    
    M2P and PoD stats need to remain in sync with P2M; if an update succeeds
    only partially, respective adjustments need to be made. If updates get
    made before the call, they may also need undoing upon complete failure
    (i.e. including the single-page case).
    
    Log-dirty state would better also be kept in sync.
    
    Note that the change to set_typed_p2m_entry() may not be strictly
    necessary (due to the order restriction enforced near the top of the
    function), but is being kept here to be on the safe side.
    
    This is CVE-2021-28705 and CVE-2021-28709 / XSA-389.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 74a11c43fd7e074b1f77631b446dd2115eacb9e8
    master date: 2021-11-22 12:27:30 +0000

commit 1a2e8d6cccddf984fce09b7b8b1139d81cea421e
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:35:55 2021 +0100

    x86/PoD: handle intermediate page orders in p2m_pod_cache_add()
    
    p2m_pod_decrease_reservation() may pass pages to the function which
    aren't 4k, 2M, or 1G. Handle all intermediate orders as well, to avoid
    hitting the BUG() at the switch() statement's "default" case.
    
    This is CVE-2021-28708 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 8ec13f68e0b026863d23e7f44f252d06478bc809
    master date: 2021-11-22 12:27:30 +0000

commit 398f7aec5dab6ad0853a8b069b48ae304e059fa4
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:35:36 2021 +0100

    x86/PoD: deal with misaligned GFNs
    
    Users of XENMEM_decrease_reservation and XENMEM_populate_physmap aren't
    required to pass in order-aligned GFN values. (While I consider this
    bogus, I don't think we can fix this there, as that might break existing
    code, e.g Linux'es swiotlb, which - while affecting PV only - until
    recently had been enforcing only page alignment on the original
    allocation.) Only non-PoD code paths (guest_physmap_{add,remove}_page(),
    p2m_set_entry()) look to be dealing with this properly (in part by being
    implemented inefficiently, handling every 4k page separately).
    
    Introduce wrappers taking care of splitting the incoming request into
    aligned chunks, without putting much effort in trying to determine the
    largest possible chunk at every iteration.
    
    Also "handle" p2m_set_entry() failure for non-order-0 requests by
    crashing the domain in one more place. Alongside putting a log message
    there, also add one to the other similar path.
    
    Note regarding locking: This is left in the actual worker functions on
    the assumption that callers aren't guaranteed atomicity wrt acting on
    multiple pages at a time. For mis-aligned GFNs gfn_lock() wouldn't have
    locked the correct GFN range anyway, if it didn't simply resolve to
    p2m_lock(), and for well-behaved callers there continues to be only a
    single iteration, i.e. behavior is unchanged for them. (FTAOD pulling
    out just pod_lock() into p2m_pod_decrease_reservation() would result in
    a lock order violation.)
    
    This is CVE-2021-28704 and CVE-2021-28707 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 182c737b9ba540ebceb1433f3940fbed6eac4ea9
    master date: 2021-11-22 12:27:30 +0000

commit 8e657cfe0aec6c2bf548cae98a97d2485304d4c6
Author: Julien Grall <jgrall@amazon.com>
Date:   Tue Nov 23 13:35:03 2021 +0100

    xen/page_alloc: Harden assign_pages()
    
    domain_tot_pages() and d->max_pages are 32-bit values. While the order
    should always be quite small, it would still be possible to overflow
    if domain_tot_pages() is near to (2^32 - 1).
    
    As this code may be called by a guest via XENMEM_increase_reservation
    and XENMEM_populate_physmap, we want to make sure the guest is not going
    to be able to allocate more than it is allowed.
    
    Rework the allocation check to avoid any possible overflow. While the
    check domain_tot_pages() < d->max_pages should technically not be
    necessary, it is probably best to have it to catch any possible
    inconsistencies in the future.
    
    This is CVE-2021-28706 / part of XSA-385.
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 143501861d48e1bfef495849fd68584baac05849
    master date: 2021-11-22 11:11:05 +0000
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 11:20:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 11:20:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230342.398203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqKT-0005Op-Af; Wed, 24 Nov 2021 11:20:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230342.398203; Wed, 24 Nov 2021 11:20:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqKT-0005Oi-77; Wed, 24 Nov 2021 11:20:45 +0000
Received: by outflank-mailman (input) for mailman id 230342;
 Wed, 24 Nov 2021 11:20:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XDHO=QL=arm.com=Rahul.Singh@srs-se1.protection.inumbo.net>)
 id 1mpqKS-0005Oc-AE
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 11:20:44 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2060b.outbound.protection.outlook.com
 [2a01:111:f400:7e1b::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f62f76a-4d18-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 12:20:42 +0100 (CET)
Received: from DB6PR0801CA0059.eurprd08.prod.outlook.com (2603:10a6:4:2b::27)
 by DB9PR08MB6937.eurprd08.prod.outlook.com (2603:10a6:10:26e::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 24 Nov
 2021 11:20:39 +0000
Received: from DB5EUR03FT047.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:4:2b:cafe::81) by DB6PR0801CA0059.outlook.office365.com
 (2603:10a6:4:2b::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Wed, 24 Nov 2021 11:20:39 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT047.mail.protection.outlook.com (10.152.21.232) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Wed, 24 Nov 2021 11:20:38 +0000
Received: ("Tessian outbound 1cd1a01725a6:v110");
 Wed, 24 Nov 2021 11:20:38 +0000
Received: from a0c2ca316672.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 2EBB8CBC-767F-431B-BBC5-5A1CCB0EC3C9.1; 
 Wed, 24 Nov 2021 11:20:31 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a0c2ca316672.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 24 Nov 2021 11:20:31 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com (2603:10a6:20b:39e::10)
 by AM6PR08MB4438.eurprd08.prod.outlook.com (2603:10a6:20b:70::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 11:20:30 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9]) by AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9%9]) with mapi id 15.20.4649.026; Wed, 24 Nov 2021
 11:20:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f62f76a-4d18-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VASbmtiPzZj2bg7PWoHSCnmxegIoaYQfEalPM50YTyg=;
 b=rZk/feNTfk7HmiUP/Kpbi8GSeO80PNr5E+aZN0VFOQmJre+6LHZKyJ5wOiu+BnTTR9akYH5mt8B8zX7sqfsYEvP8F613YsY3en5FxYfgF/KnECVhgfqU9BX56Ct2RTATP9ZoTcnb6TTT2OOi1BHJU3zMXlBmO0sX3Eu8UYXxVPg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: a7e315e524f77395
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oSWyBVmlPtVawkxFRYzlx9vBSKV74FdncGdC10g4cgMknc+zSGyY911OLcK4DFtF8/UWWz+LEvJePdQrEbCxsSlNEsqwa0frUrLqoSJp2+W60R3JVse2vQMAgEnP0xKYud72VlEmS7rGbDEFN6DKweTFwO04apXFzXLTPLyQHbrqTdSpyfjbTKqMmxy/E9vUO5FJpvPFfaD6wI401q+o8FuCm97ztDdN2cr4rfdH9nfsECx+L7JMGPQmkMPUPqHohyLMnVTFMlcP5wbnzkyorsnUaLHq7yawpyUDfPBQrXkFtC7A7oWASIS6osconrQpcWfkMrR1wqMxc/UQDOO2mA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VASbmtiPzZj2bg7PWoHSCnmxegIoaYQfEalPM50YTyg=;
 b=DBo6puakFjunsIGPoFnxmoq03dPaJGdqRFp+Z5bLSz+j+THOzTNttEXTLME8J7JoKHlwFgungIryKQYaGT/oJE9Ehd+ljCbnOGTpLU+O4k9Jhs+IriPuVuOu6sVp4IiPF+EfHMH8AxywwuKmG0yBZ3fmNWxlxO9knudfHpjkDPe7ZnKNo5ME4R4p6Bd/NxoeOQuMWdnypukCo6ZYJS2Z2Cbg3tiA7oRkCkFHa/74zlmc+e4fSJtL5OjM1lcfzxuSubaHEDvXyKGdqod/BwPdpQ3439Tk0h5JSJaMdEJ+qCOLsVufwkwF4MX2LSZUNsMuEDA1+KxXb7g4cN+7mzloVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VASbmtiPzZj2bg7PWoHSCnmxegIoaYQfEalPM50YTyg=;
 b=rZk/feNTfk7HmiUP/Kpbi8GSeO80PNr5E+aZN0VFOQmJre+6LHZKyJ5wOiu+BnTTR9akYH5mt8B8zX7sqfsYEvP8F613YsY3en5FxYfgF/KnECVhgfqU9BX56Ct2RTATP9ZoTcnb6TTT2OOi1BHJU3zMXlBmO0sX3Eu8UYXxVPg=
From: Rahul Singh <Rahul.Singh@arm.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, "oleksandr_tyshchenko@epam.com"
	<oleksandr_tyshchenko@epam.com>, "volodymyr_babchuk@epam.com"
	<volodymyr_babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	"roger.pau@citrix.com" <roger.pau@citrix.com>, "jbeulich@suse.com"
	<jbeulich@suse.com>, "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"george.dunlap@citrix.com" <george.dunlap@citrix.com>, "paul@xen.org"
	<paul@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Oleksandr
 Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: Re: [PATCH v7 2/7] xen/arm: add pci-domain for disabled devices
Thread-Topic: [PATCH v7 2/7] xen/arm: add pci-domain for disabled devices
Thread-Index: AQHX4QlPyffeEbH15Uur4HpOfUwOq6wSiH4A
Date: Wed, 24 Nov 2021 11:20:29 +0000
Message-ID: <D1F06279-A23E-4567-A3C4-9347AD5EA491@arm.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
 <20211124075942.2645445-3-andr2000@gmail.com>
In-Reply-To: <20211124075942.2645445-3-andr2000@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 37ee3d00-badb-455d-2bf4-08d9af3c7170
x-ms-traffictypediagnostic: AM6PR08MB4438:|DB9PR08MB6937:
X-Microsoft-Antispam-PRVS:
	<DB9PR08MB6937F257620057197B1A65BFFC619@DB9PR08MB6937.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:4502;OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 +d2yZ4PfiaiKf+iUmSdK1PZC4neDtfK8XtgVvxUU5IeDL5nGBPMiAklhzaMrfaxSJuq7KuUAwyzCrFoUDjDvAygi3S0imFXUKXFStaAYxkwYGfsZhQFxW9eTl/LMX44Ssx4+b7+WIVi52f03jjP4s25nRZSGjFQjPPc/csP3TGdxg2dj2XDdnyu84I77za6VBMD2Zl71MUz518vPEpSVowo7Vr4t4tDhzn64ZevrqLYcPILI1VT29U+4ovelHD6QDBeFDaIkXcMzMEiZ+34belzcu9J7CTpAe4sGAp1FuiVHFiHIXVT58phZnq4+leeWb8J5GQynXigyM6JdYlY/gf/Q7U4u73kyTg+WM9vS84zOv1TGBJFcBTHjAD7bUzn4tSLMPJcryyP2rcalkDO3YqnAT9RQ7ivvTA/REjGrSacNxhKqNVeyk3d1TMKnA5C4nUxakB2PFxezZAwRl7YALZZknFTCQSLi8HjfYu+M89tmkVsB2qzOkTiWbM7oWmET+DP9lonjb1WT6fduaq3hgd3XgKajG7gqlIgxIclyEwy5cIiuu7nmFXqon6+Uyw5uf01ysXJZ6nygVeObEhgIj1PCyNRE9lFJvjXjR+epkYilFra3txjwD0mVVO3sqPqIz4y1M3EJuol9DTE6dK0pTFE8/qEM7w5M+Uo7nI8IggJ6CS6v8akq09+nNjNqGVVJGw4zg/Qi4IVjs7Bd2s0YXDpYaxY38KMQoRKTAly3yiQ=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6919.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(122000001)(508600001)(7416002)(71200400001)(53546011)(66446008)(66946007)(8936002)(64756008)(2616005)(38100700002)(66556008)(66476007)(91956017)(6916009)(186003)(6506007)(8676002)(4326008)(5660300002)(54906003)(26005)(2906002)(6512007)(38070700005)(83380400001)(316002)(86362001)(6486002)(33656002)(76116006)(36756003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <E039F6C726263C48AE4775A01960536E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4438
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT047.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a81df39c-0df0-4d15-e3dd-08d9af3c6c21
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ZuZaMyU+k2kK7LKoPS0ymCrCF9sXtru3/pW1t5Du9rdkQtyWbxZ15TI9ONQQ4kHNJrfIAoAGy96CuZz5ADAvigklSAZWFCLynYfjzGxvvT6+ir9kjNfPX8lVQYwstFk8II8jp66ZcnpK4NMwvXDHvMsuCkfVs2WN191FIvmeO6S1L2IHkmFeKtX/TbllfIJ70G+WOH1FKTAZUJ8UJImq31TPMA4JQSf+jx4f8Qgj4tnyViyXwnmpQm+LAUiov+uYpTHfRpIszKenW9m3ZAQPgOKficoBwqGJgoQj4cby30aFA2PzM3roYIOuvtT54VMeAPTlI56SIGRbSLAGflIrIkS6nACS2SM1qjroIO1ZTK+FlzL36Q20x9iz5l8DR42CSs8SPx/iJ1Eu6LWaiM0PVFJm1FqjchGmvEPhWXUFvncrsCQxBbbS/549XJf/K0siclUHuFUmyeeRYoKz5EZ90P1DJqKs799FZ9jlZ263cW3K4n2IVx/RUqi+GQvnyDKkpU9khUbUpVdy7VaTy4jdGF0d8KvjHJTwqTXeKUGPDWJ2EqonpmvfcoY81zf0Hiay1oBbAnmLsU4//A8/rHT7RITo9xK1kg864f61W4NvyC20Ngk5DHCoS+AO4Zf7BxI4QDfVmIt5YcuF26qYXTDjqTWjWIzyO/cxRrMEyVX3bG/4/J1M8Cof4nHIpwNrJLGwG2xpAymRWFPJI8zxL3+ngg==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(6506007)(81166007)(2616005)(53546011)(83380400001)(356005)(6862004)(86362001)(6512007)(82310400004)(316002)(5660300002)(107886003)(508600001)(6486002)(36860700001)(70586007)(26005)(47076005)(33656002)(186003)(2906002)(70206006)(8936002)(8676002)(36756003)(336012)(54906003)(4326008);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 11:20:38.5621
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 37ee3d00-badb-455d-2bf4-08d9af3c7170
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT047.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6937

Hi=20

> On 24 Nov 2021, at 7:59 am, Oleksandr Andrushchenko <andr2000@gmail.com> =
wrote:
>=20
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>=20
> If a PCI host bridge device is present in the device tree, but is
> disabled, then its PCI host bridge driver was not instantiated.
> This results in the failure of the pci_get_host_bridge_segment()
> and the following panic during Xen start:
>=20
> (XEN) Device tree generation failed (-22).
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Could not set up DOM0 guest OS
> (XEN) ****************************************
>=20
> Fix this by adding "linux,pci-domain" property for all device tree nodes
> which have "pci" device type, so we know which segments will be used by
> the guest for which bridges.
>=20
> Fixes: 4cfab4425d39 ("xen/arm: Add linux,pci-domain property for hwdom if=
 not available.")
>=20
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Reviewed-by: Rahul Singh <rahul.singh@arm.com>
Tested-by: Rahul Singh <rahul.singh@arm.com>

Regards,
Rahul
>=20
> ---
> Since v6:
> - use use_dt_domains in pci_get_new_domain_nr and return -1 if set
> - do not set "linux,pci-domain" if parent device is "pci"
> - move the code to a new helper handle_linux_pci_domain (Julien)
> New in v6
> ---
> xen/arch/arm/domain_build.c        | 66 +++++++++++++++++++++++-------
> xen/arch/arm/pci/pci-host-common.c |  8 +++-
> xen/include/asm-arm/pci.h          |  8 ++++
> 3 files changed, 66 insertions(+), 16 deletions(-)
>=20
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index e76cee3caccf..c83c02ab8ac6 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -654,6 +654,55 @@ static void __init allocate_static_memory(struct dom=
ain *d,
> }
> #endif
>=20
> +/*
> + * When PCI passthrough is available we want to keep the
> + * "linux,pci-domain" in sync for every host bridge.
> + *
> + * Xen may not have a driver for all the host bridges. So we have
> + * to write an heuristic to detect whether a device node describes
> + * a host bridge.
> + *
> + * The current heuristic assumes that a device is a host bridge
> + * if the type is "pci" and then parent type is not "pci".
> + */
> +static int handle_linux_pci_domain(struct kernel_info *kinfo,
> +                                   const struct dt_device_node *node)
> +{
> +    uint16_t segment;
> +    int res;
> +
> +    if ( !is_pci_passthrough_enabled() )
> +        return 0;
> +
> +    if ( !dt_device_type_is_equal(node, "pci") )
> +        return 0;
> +
> +    if ( node->parent && dt_device_type_is_equal(node->parent, "pci") )
> +        return 0;
> +
> +    if ( dt_find_property(node, "linux,pci-domain", NULL) )
> +        return 0;
> +
> +    /* Allocate and create the linux,pci-domain */
> +    res =3D pci_get_host_bridge_segment(node, &segment);
> +    if ( res < 0 )
> +    {
> +        res =3D pci_get_new_domain_nr();
> +        if ( res < 0 )
> +        {
> +            printk(XENLOG_DEBUG "Can't assign PCI segment to %s\n",
> +                   node->full_name);
> +            return -FDT_ERR_NOTFOUND;
> +        }
> +
> +        segment =3D res;
> +        printk(XENLOG_DEBUG "Assigned segment %d to %s\n",
> +               segment, node->full_name);
> +    }
> +
> +    return fdt_property_cell(kinfo->fdt, "linux,pci-domain", segment);
> +}
> +
> static int __init write_properties(struct domain *d, struct kernel_info *=
kinfo,
>                                    const struct dt_device_node *node)
> {
> @@ -755,21 +804,10 @@ static int __init write_properties(struct domain *d=
, struct kernel_info *kinfo,
>             return res;
>     }
>=20
> -    if ( is_pci_passthrough_enabled() && dt_device_type_is_equal(node, "=
pci") )
> -    {
> -        if ( !dt_find_property(node, "linux,pci-domain", NULL) )
> -        {
> -            uint16_t segment;
> -
> -            res =3D pci_get_host_bridge_segment(node, &segment);
> -            if ( res < 0 )
> -                return res;
> +    res =3D handle_linux_pci_domain(kinfo, node);
>=20
> -            res =3D fdt_property_cell(kinfo->fdt, "linux,pci-domain", se=
gment);
> -            if ( res )
> -                return res;
> -        }
> -    }
> +    if ( res )
> +        return res;
>=20
>     /*
>      * Override the property "status" to disable the device when it's
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-ho=
st-common.c
> index cdeb3a283a77..9653b92b5b2e 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -30,6 +30,8 @@ static LIST_HEAD(pci_host_bridges);
>=20
> static atomic_t domain_nr =3D ATOMIC_INIT(-1);
>=20
> +static int use_dt_domains =3D -1;
> +
> static inline void __iomem *pci_remap_cfgspace(paddr_t start, size_t len)
> {
>     return ioremap_nocache(start, len);
> @@ -137,14 +139,16 @@ void pci_add_host_bridge(struct pci_host_bridge *br=
idge)
>     list_add_tail(&bridge->node, &pci_host_bridges);
> }
>=20
> -static int pci_get_new_domain_nr(void)
> +int pci_get_new_domain_nr(void)
> {
> +    if ( use_dt_domains )
> +        return -1;
> +
>     return atomic_inc_return(&domain_nr);
> }
>=20
> static int pci_bus_find_domain_nr(struct dt_device_node *dev)
> {
> -    static int use_dt_domains =3D -1;
>     int domain;
>=20
>     domain =3D dt_get_pci_domain_nr(dev);
> diff --git a/xen/include/asm-arm/pci.h b/xen/include/asm-arm/pci.h
> index 81273e0d87ac..c20eba643d86 100644
> --- a/xen/include/asm-arm/pci.h
> +++ b/xen/include/asm-arm/pci.h
> @@ -108,6 +108,8 @@ static always_inline bool is_pci_passthrough_enabled(=
void)
>=20
> void arch_pci_init_pdev(struct pci_dev *pdev);
>=20
> +int pci_get_new_domain_nr(void);
> +
> #else   /*!CONFIG_HAS_PCI*/
>=20
> struct arch_pci_dev { };
> @@ -128,5 +130,11 @@ static inline int pci_get_host_bridge_segment(const =
struct dt_device_node *node,
>     return -EINVAL;
> }
>=20
> +static inline int pci_get_new_domain_nr(void)
> +{
> +    ASSERT_UNREACHABLE();
> +    return -1;
> +}
> +
> #endif  /*!CONFIG_HAS_PCI*/
> #endif /* __ARM_PCI_H__ */
> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 11:24:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 11:24:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230350.398214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqNu-00062z-T2; Wed, 24 Nov 2021 11:24:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230350.398214; Wed, 24 Nov 2021 11:24:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqNu-00062s-OE; Wed, 24 Nov 2021 11:24:18 +0000
Received: by outflank-mailman (input) for mailman id 230350;
 Wed, 24 Nov 2021 11:24:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qlkt=QL=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mpqNt-00062i-OX
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 11:24:18 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0cdc36be-4d19-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 12:24:14 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0cdc36be-4d19-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637753054;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=5kPmSLWR56HGtsoKyWZROgPOQloyG4CY6oWSCUzBQag=;
  b=B3fOeP8gR39qqekD33VoI///xal2k41f8jhV2cXHi3Kv0Qcsp+xfkLRa
   nFmMV+KiVJmwYMrO5dkRD+H57wMvazxBRWW2veD2kwyCN3QDe9UHQDKuD
   peul7y8noo+qOoOC4XNOedv7Er7aXL4YNrcDmEvR43SSbZMjPMe4BtHKO
   Q=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: YiKvwbhncek1kh5gWQd5hD8+6jLBhvrP4rXp4H1Ie1o3qnOjlON/WUdCGZRcJKkcWbQGPYwTXX
 G++8hmF9woKfmO1UK6x0zL47GQlGVMvbbx9184kvEsRDvOsUm2KIc6c9nKDvauBfvEBSgumGkp
 S1sLWshdDrIFWEQXuZZdNd2Mi7IENA+BFJlMX69QrxoWMKHnzuStmzta4Trl5Oy38iSB+SmKsK
 DvLqIpsZTKs3GKgdx7P7PPerHI49h++9HEG36W7OmCb4TWw7eJ8kJ2BvIaeaPUz3lZT28d31Wh
 q4+6Bt6iY3RaZPd3ztmxOzto
X-SBRS: 5.1
X-MesageID: 60541160
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:rYoIJqMHbzS6kKbvrR2Ak8FynXyQoLVcMsEvi/4bfWQNrUohhjxUx
 zAeDD+BbPaOamf9c94lYYTj8xtQ6J6GnYAwHAto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg/w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozKUkZdqy
 cVHjJWtCiYUF5/U3+cjCAYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/uSuIMBhWlo7ixINef/a
 JYpLiZgUAjrYDxGalkrGLtupN790xETdBUH8QnI9MLb+VP7wAVv3ZD3PdHSe9jMQt9a9m6Tr
 3jK+GnRCRgAONuSjzGC9xqEiuDDkCzhUaoOBba48bhsm1TVyWsNYDUaW1K0rvi+jk+WQM9EJ
 gof/S9Ghao170ztUdn8QxC4rXeIlhIbQdxdCfI98gKWjKHT5m6xBGceSSVaQMc7r8JwTjsvv
 neEm97vDHpyvryQVWmQ6L68qim7MiwYa2QFYEcsTwEI/t3iq4EblQ/UQ5BoF6vdptbyHDTtx
 TGWvW47jrMagsMR/7W2+0jdhDChrYSPSRQ6ji3WQWCN/g5/fJSiZYGj9R7c9/koBJmdZkmMu
 j4Dgcf2xOITCZCAkgSdTeNLG6umj96PNzfWkFN0H50s8j2r03GmdIFUpjp5IS9BOcYeeCT1Z
 1fTtBkX+9lYOHKwbod4ZouwD4Ihyq2IPd3hV+vIZ9tUJJZrfQmM/TpGekKbmWvqlSAEm6wlJ
 Y2Sd8rqCH8AELlm1xK/XeJb2rgurgg82GWVQ5n4xham1LO2ZXiJRLNDO1yLBsgj96OeoR/c9
 v5ULI2XwR4ZW+SWSjLM7YcZIFQOLH46LZP7scpacqiEOAUOMHsoC+LVh6ggfYNlt61Pk6HD+
 XTVclRRzUfygTvbKQSAY21ndJviW406qWM8O2orJ1nA82QiZK6/4aFZcIE4FZE3+eomwfNqQ
 v0tf8SbHu8JWjnB4y4ab5T2sMplbhvDrRmSMjWseiR5f59kSwHD4NbiciPj8zMIAzCostE9u
 Pur0QazaYYKQg15JNrVbP+pwEK8uT4Wn+cad0jPJMNadAPz8YxpAyvrh/QzLocHLhCr7j6Tz
 QOfGxobjejLvY4u8dPNiLyEroGmCO93FAxRGGyzxaixMS7W72+y27hKWeyDfS3efG7s8aDkb
 uJQp9n/PeMGmhBWsoN6O7dt0a86odDootdy1g15GF3bYlLtDalvSlGfwMBJ8L1QnpdWvAK3X
 gSE/dwyEbCEPsz1DXYaJRFjc/yO0/dSlzXPhdwvJ17w/ihw/7yvWERUMR6XhScbJ7xwWL7J2
 s945pRQsVbmzEN3bJDW1Ui46lhgMFQHTqtgrZAKCrbil0kK93hwedvfNHTptcTnh8p3DmEmJ
 Tqdhaznjrtax1bff3dbKUUhzdaxlrxV5kkUkQZqy0Ch34Oc26RphEE5HSEfF1wNln16P/RP1
 n+H3qGfDYGH5H9WicdKRAhA8CkRVUTCqiQdJ7bk/VA1rnVEtESRfQXR2s7XpSj1Fl6wmBABo
 Nl0L06/DF7XkDnZhHdaZKKcg6WLoSZN3gPDgtu7OM+OAoM3ZzHo6of3OzFX9Uq9UJps1RGYz
 QWPwAqWQfenXcL3i/dlY7R2KJxKEEzUTIC8aa8JEFw18ZH0J2jphGnmx7GZccJRPf3amXJU+
 OQ1Tv+joy+WjX7UxhhCXPZkC+YtwJYBuYpTEpu2dDVum+bO8VJUXGf4q3GWaJkDGI41z67Q6
 +r5Klq/L4BnrScOxjKW8pAbYjHQjBttTFSU4d1ZOd4hTvormOptbVszwv2zuXCUOxFg5BWao
 EXIYKq+8gCo4d0Ec1LEHvoRCgOqB8n0UejUogm/v84XNYHEMNvUthNToV7iZlwEMbwUUtVxt
 LKMrN+ogx+V4OdoCzjUy8ubCq1ExcSuR+4LYMj5G2ZXwHmZU8j27hpdp23hcc5VkMlQ79WMT
 hejbJfibsYcXtpQnSUHayVXHxsHJb7wa6Ps+XG0o/iWU0BP2g3bNtK3s3TuaDgDJCMPPpT/D
 C7yuuqvuY8E/NgdWkdcCqg/UZFiIVLlVa83TPHLtGGVXjuyn1ePmrr+jh58uzvFPWaJTZTh6
 pXfSxmgKBnr4PPUzMtUupBZtwEMCCovmvE5e08Q9oIkiz2+C2Jaf+0RPY9fV8NRmy32kpr5e
 CvMfC0pDiCkBWZIdhD14dLCWAaDB7NRZoeld2Jxp07EOT2rAI6gAad68nYy6nh7TTLv0eW7J
 IxM4Xb3JBWwnslkSOt7CiZXWgu7Kic2Hk41xH0=
IronPort-HdrOrdr: A9a23:RneVRqhgFx1J+Z7G3FAPVdTFm3BQXz913DAbv31ZSRFFG/FwyP
 rAoB1L73PJYWgqNU3I+ergBEGBKUmskaKdhrNhR4tKPTOWw1dASbsN0WKM+UyHJ8STzJ8+6U
 4CSdkANDSTNykCsS+S2mDReLxBsbr3jpxA7d2us0uFJjsaDJ2IgT0JbzpyRSZNNXR77NcCZd
 GhDo0tnUvTRV0nKuCAQlUVVenKoNPG0LrgfB49HhYirC2Dlymh5rLWGwWRmk52aUID/Z4StU
 z+1yDp7KSqtP+2jjfaym/o9pxT3P/s0MFKCsCggtUcbh/slgGrToJ8XKDqhkF+nMifrHIR1P
 XcqRYpOMp+r1vXY2GOuBPonzLt1T4/gkWSv2OwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze
 Ziw3+Zn4A/N2KPoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vFpLA
 BXNrCd2B9qSyLYU5iA1VMfguBEH05DUitue3Jy+/B8iFNt7TVEJ0hx/r1pop5PzuN4d3B+3Z
 W1Dk1frsA7ciYnV9MNOA4/e7rFNoW0e2O1DIuzGyWvKEhVAQOEl3bIiI9Fkd1CPqZ4i6cPpA
 ==
X-IronPort-AV: E=Sophos;i="5.87,260,1631592000"; 
   d="scan'208";a="60541160"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MJ6/pKyYKLGm0rmsroeqHj+H/Ws7A8N6PKWOXkF/fe13Cpefl4uN6XPvENbeIVCgnABjZ+Qpk8rWi/IhLdz9HtMh5zdszO0cxsWPZE5aymSKBGx3VtGa9vCiU/88FnotHXXaj4HPyN+7XNwqDv7hjgSvkBvXbhiZhWgVqrMIPbTrblnMQEq2gAZUlLHuosOFv4QyuozPujGpSGrvFQ7XY1DGz/9THYBGoMLlGwEdm3klewzYFedHabQTiNnr/hSpglaQN48a/j5M/+QCWN8ur7lMIn332dv624A092bYeHCn9nPJPYZz13OubO6ASD787arVL+0LCmkF2VwPxzet2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sBJE7aFrWt2tzUNOVWjxNqvzHdrUeFb52mg0ejYKFTU=;
 b=Mddg2SYM1DtSqIk5/bK/A7cRfg6+796l+9HNt1ETvvpdl2AKPIFwBCaRKxTRURhV92qDsdgH5Fw9ltdLL9N1i/sUivLdnvAhAQ2wUKg4bq4Czeeaun+Np+ozHTWiiz4jwbAD53LOkohzV+oM31hyFVyNM1fTeUXwwIeXHACeWo9zkUjKePb8R7zMnhoblDh5c4U9nAf7W54mhQIBlUaAac7U3AAieQ0eBN3PXTBC7j7853kAt4f42r1z4jQvaOdDU+ts4Zlol4RClxf9uleL3ycixGUmXj3qXP85MlAmtqRkwK9bgZKvcWrOpoaqq1KaKvuwDLHvPtDmwgVmcI2dsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sBJE7aFrWt2tzUNOVWjxNqvzHdrUeFb52mg0ejYKFTU=;
 b=vAAdztDYW9Tx6NVu2VRMdATQUu/r2skQQayGwTt97lUbEgrRx70HK2ZoajwjFp/0DH4eFMSKnTMyXXREmNY5Wu8KvG1Dvqbb2ojVXiVhV4/O4KJGtiIfH4znU8vFo15duvYrQ45hQUwx354kHwe2g8iH9yyIr2nPwL665gBdeew=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Community Manager
	<community.manager@xenproject.org>, Ian Jackson <iwj@xenproject.org>,
	Alistair Francis <alistair.francis@wdc.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Christian Lindig <christian.lindig@citrix.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Dario Faggioli <dfaggioli@suse.com>, David Scott
	<dave@recoil.org>, Doug Goldstein <cardoe@cardoe.com>, Elena Ufimtseva
	<elena.ufimtseva@oracle.com>, George Dunlap <george.dunlap@citrix.com>, Jan
 Beulich <jbeulich@suse.com>, Josh Whitehead <josh.whitehead@dornerworks.com>,
	Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>, Jun Nakajima
	<jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>, Konrad Rzeszutek
 Wilk <konrad.wilk@oracle.com>, =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Meng Xu <mengxu@cis.upenn.edu>, Nick
 Rosbrook <rosbrookn@ainfosec.com>, Paul Durrant <paul@xen.org>, Quan Xu
	<quan.xu0@gmail.com>, Rahul Singh <rahul.singh@arm.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Shriram Rajagopalan <rshriram@cs.ubc.ca>, Stefano Stabellini
	<sstabellini@kernel.org>, Stewart Hildebrand
	<stewart.hildebrand@dornerworks.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Tim Deegan <tim@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Wei
 Liu <wl@xen.org>
Subject: [PATCH for-4.16 v4] CHANGELOG: add missing entries for work during the 4.16 release cycle
Date: Wed, 24 Nov 2021 12:24:03 +0100
Message-ID: <20211124112403.78674-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0121.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:30::13) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1b78877e-b9d5-449a-76a8-08d9af3ceed2
X-MS-TrafficTypeDiagnostic: DM5PR03MB2777:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM5PR03MB277756F135AAE0CA073E39BC8F619@DM5PR03MB2777.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: HaE5PB4sI7vDrPGW0lach1vFbtQ6AzeqQoJtXLTJdlUaEy2WAchdo3cyUQ6IkFFjOiJFuh5q61VgOHXC9+4WlrpoMwMwT625FCKGVGf3zlippyXSk6of5vLOuvO1pQoOGcGLUwVS30VTF3C7SkmnOjWCUCMmp55W92GFGDY9+BUI+SExIEo30Pt9wx6/GR5SxdVaNHV/lac94wympXkKPE4Zbbc+2yO9TIabJB20R8GIhbmaZVmfWax9mPx2ijKjR/zXGcyjDu05659Sl1rLL5LAfSqCrdltKDZbCi73qJ4c0z6bJdTQHBx1Ush8CYsrSyYk6gNTPpa3JkfCIms6ADbj1qvigPIDGFhNpqPEe0WMT10cMneKxyOIzaCpPWF7SR8t+636Itj0ZUQUNv9bXiXw1x18XRsr9/B5NG/XJsdxwJTSmdhNt6cWKdwwWt86WJQ0qGnVukZ1H1AxHXJls3TG/J+Joczz0P5eneIEIerwVF4BOQv37GrdQPt3nw2iVH//WZo/cPwBOrrynZ8xCwoVvJaZzmLfiUcXxNv30Ckakc8kVO1WEp4a9mVdLoinjNurzGMsGFgUOQ2sn4nfzLI+ASZ5tKz0PYw2W9RGO9wNdz7dQzCOY8b/9LTjEeTHpkGySzwHmqmNk5s0YcSzkQkWfFTDXZPwWQxy5IBijV+Nq4ApHexVWs7Mnk+dTsD/wYq7q1v2h47aQQbHN3dDvIWJNseeaFX+Lh5uAKKAM9stKqnCAxoudOSZYU46h+MwIYXnpQTElQVQtwl0P3eS0cbH1IP03EMFdlfIeRlI2vOdbc/+S/S4Iin5J8yjgJnSlAYW0nd3y6g0xoYZSNMuR92WY9uPd11KIF7QWvgffrM=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2906002)(7416002)(66476007)(82960400001)(66556008)(8676002)(1076003)(38100700002)(7406005)(316002)(83380400001)(5660300002)(508600001)(6666004)(66946007)(956004)(36756003)(6496006)(86362001)(186003)(26005)(6486002)(8936002)(2616005)(66574015)(6916009)(54906003)(4326008)(207903002)(219803003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b2Y4Wm9LdHhUM1cvWXUySHVHRTBGc2RtR1EzQU5BMzQvSWdnOEdLUWRnWVlO?=
 =?utf-8?B?NlFoSFBGaHFMNGFhbUhyV2llSk51WVlmNUp4bXZsRWJxOHJyS0NlOFZIa0FS?=
 =?utf-8?B?RkZNUThmZXZvSWo0SHhsS2p6akxybGhpaHU2NnN0bGNWMjJIR002YnFYd1Z0?=
 =?utf-8?B?UlRtNEc0OWU4Q0JTZHZiUWhUTHBZcGFVL1BCYnYvM3BHN3ZLNEJnbUNiaDdo?=
 =?utf-8?B?ZHlrcVYva3FyQkU4TVdoeTBhN2tOTlBCMTNwN2dvS2N0clhDU2R3bE1OZExm?=
 =?utf-8?B?T2RZQ1lPZU54UEx5cHdSeVpYWTlkUzE5MTUveXoxQ01obW50MTVRREJVKzd6?=
 =?utf-8?B?YThobHphVlFZWlVVZkpLak81NzJETXd1WE0wREJGcktVY0t4Nk9kd2grbE56?=
 =?utf-8?B?U0JtdkNoME1EQmNZbkJGbEcxK200WkV4UkkwcUNMclIwR3E1N1IwUGEwVzhk?=
 =?utf-8?B?Sy9mK2Z4VnZaMUNsWkxBeDlKQUZRNVllNUVZaGdIR0xaTE45UWtLcGFLcysr?=
 =?utf-8?B?M3ZjdmlaM2Y2aWIxVEdBNDQ0eHdoWFBLWnVyTE4yWUhNTjlkeHZFWjAyNWpx?=
 =?utf-8?B?VDhVQmVHRE9jd3IzUHE4K29UV0Rlb3pKajRGYzZDVURaNmc2NVc3bDR2Sjh2?=
 =?utf-8?B?S084VHpIemx6dThlYkhhSXUvUEt3VVlWV3cwSmJVakpNTXJPWm9NcjhhYXpQ?=
 =?utf-8?B?N3hhY1lEUnV0RWY5YXE0SDFpM1hNVjhmbTBQWjlxbS8yTjBXWkdnd0Q5S0Fm?=
 =?utf-8?B?SG1KZGJQcUhSNjlBcTg4QmNhcFdrcXJQdUtteWhhYmhYVktxZS90YzdSNUQ1?=
 =?utf-8?B?bVhoMWJsQ0tIV2RncWZUc3BjdXBMS1E3SVpFQUMvYU1ueDB4enh3RW1Kcm5P?=
 =?utf-8?B?cmtpbE55MnFXbWpJbUhXT2I5b01nRmZnT0p1a09MTThIRDgvVUhDQjQ1eG5Q?=
 =?utf-8?B?WXFaY3dPQ2lpVmM1Rk90d05KejVVZG5qbWtxV1lTcFBqTERXRUp2aGFobkxx?=
 =?utf-8?B?V2lDcGlNVFVIeTB4L2Vpb01CbFRWMXVYQWdYWklCbHNuR3dYZlVxWlRpcXB1?=
 =?utf-8?B?MStSYi90YjBuRzBwb0JpZnFyYUxibnloMWhnOEEydGhGc2dDSWJRM1hnaVFR?=
 =?utf-8?B?MkN3amRXdDFQTGFGTlJhRHNKU1FaeFdwQW5TdHN5VU1zUVUxOGVCNDRtRERh?=
 =?utf-8?B?MjUrRG5nbTdYZTJWUlhFY0ZDWjUwcnMzcndqWFhwVG0wVEhIdU1ESHN4NndI?=
 =?utf-8?B?QmFaditYNzdZdXJjSHgxM25sYzZMYWZLOGIzZnJ5ZFBTbFF0ZWlQaVBOZEFv?=
 =?utf-8?B?RWZqUlUwOFBycWtnUkRSQ2VvL3U0ejJNTDIrOXRzTWRyOVpkcG1RSTB2LzZX?=
 =?utf-8?B?R21mWDhQa3pEMzEyVUs3cDkyaGtUUTBNcXZlZ2hkeG54eFBlTTNFNHRmajNh?=
 =?utf-8?B?QW51UXd5ejRET28rNjBGNW1TZUZrekZXNDRIZTRMQnNoakZaMnJhWXBWV1ZN?=
 =?utf-8?B?RURoU2tiZ01QZElBS09GaXg3ZVNsRXlVSktzZUlVTDI2ZFFGYmY0aGtzVW9K?=
 =?utf-8?B?QlJUQi8vR2ZzUnJJcHkyWWg1SFJZN0kzaGZONWNSOWZSWHFZK1VnVDJtckNo?=
 =?utf-8?B?eDhLTWJYQjhtUEZlMVROMm4rRlNBc3JvSnd2eTNmcG5UQUxDMTBOL0tFVGYr?=
 =?utf-8?B?OG45TXZUc3hFaWpRV2hkNGR2bTNIU251d1ZwdnNMc2Z3V3lhNUxPa0RMZHpr?=
 =?utf-8?B?R1l4QzYwV0hsR29JVU1BZE9neFcreWVJNFJHeWVIbUpLdVV0UHFZOGF4bXNP?=
 =?utf-8?B?THFPcEh3WXpMb3BpaUFibTVxMFplZ2lkWVFCSDZiUExDTGtlN2VrSFlOYW1Y?=
 =?utf-8?B?S2pTSTd2bnZCaVNydlMxTmJBbkZsZTNaVmlBN3ZpQy9JYjZ3SkJmeFdHUHhl?=
 =?utf-8?B?YnlzU0o4Ny95QUxQRFdCREJtTElCUVcraUc2OHo5UUl6RnN4QjN0OEE0RktR?=
 =?utf-8?B?ZFVGWHNiSC9WcW54UjFPUTFrTjJzUW1XWU01NWZmd0E2ajRrNG41OG1rbzh5?=
 =?utf-8?B?VncvOXZyYnZDMCs4SU1VYTZhYkNua3hUbkZrbFJqRUpoOTRUdXdybzFSUzJt?=
 =?utf-8?B?TGNJUXlGWDlLRThvMmp2ZmtUS0Q2V2xBSngxbGh0azhnU09pcnczZ0FZRTFF?=
 =?utf-8?Q?YaIxzJN78IIwklu5e4oBQBo=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b78877e-b9d5-449a-76a8-08d9af3ceed2
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 11:24:09.0818
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2nxGNVVWEO4yLxGfe+z0umlbdhz4o7GEVn93wkANGMy3jd0NdAslKkzqSme/eW0nKJF8fYkSVrz2p7R941jjNQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2777
X-OriginatorOrg: citrix.com

Document some of the relevant changes during the 4.16 release cycle.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
---
Changes since v3:
 - Remove a duplicated line about not building qemu-trad and pv-grub.

Changes since v2:
 - Reword the x86 page table API change.

Changes since v1:
 - Add qemu-traditional and pvgrub notes.
 - Expand vPMU support to note it's limited.
 - xenstore library API changes.
 - xencall2L addition.
 - gitlab CI changes.
 - dom0less improvements.
 - vGIC fixes.
 - New Arm features.
 - OP-TEE fixes.
 - Arm64 heterogeneous CPU support.
---
Cc: Alistair Francis <alistair.francis@wdc.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@citrix.com>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: Bob Eshleman <bobbyeshleman@gmail.com>
Cc: Christian Lindig <christian.lindig@citrix.com>
Cc: Christopher Clark <christopher.w.clark@gmail.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Cc: Dario Faggioli <dfaggioli@suse.com>
Cc: David Scott <dave@recoil.org>
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Cc: George Dunlap <george.dunlap@citrix.com>
Cc: Ian Jackson <iwj@xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Josh Whitehead <josh.whitehead@dornerworks.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Jun Nakajima <jun.nakajima@intel.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Cc: Meng Xu <mengxu@cis.upenn.edu>
Cc: Nick Rosbrook <rosbrookn@ainfosec.com>
Cc: Paul Durrant <paul@xen.org>
Cc: Quan Xu <quan.xu0@gmail.com>
Cc: Rahul Singh <rahul.singh@arm.com>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Shriram Rajagopalan <rshriram@cs.ubc.ca>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
Cc: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Tim Deegan <tim@xen.org>
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Cc: Wei Liu <wl@xen.org>
---
 CHANGELOG.md | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad1a8c2bc2..1fe52da7db 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,31 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
  - qemu-traditional based device models (both, qemu-traditional and ioemu-stubdom) will
    no longer be built per default. In order to be able to use those, configure needs to
    be called with "--enable-qemu-traditional" as parameter.
+ - Fixes for credit2 scheduler stability in corner case conditions.
+ - Ongoing improvements in the hypervisor build system.
+ - vtpmmgr miscellaneous fixes in preparation for TPM 2.0 support.
+ - 32bit PV guests only supported in shim mode.
+ - Improved PVH dom0 debug key handling.
+ - Fix booting on some Intel systems without a PIT (i8254).
+ - Cleanup of the xenstore library interface.
+ - Fix truncation of return value from xencall2 by introducing a new helper
+   that returns a long instead.
+ - Fix system register accesses on Arm to use the proper 32/64bit access size.
+ - Various fixes for Arm OP-TEE mediator.
+ - Switch to domheap for Xen page tables.
+
+### Added
+ - 32bit Arm builds to the gitlab-ci automated tests.
+ - x86 full system tests to the gitlab-ci automated tests.
+ - Arm limited vPMU support for guests.
+ - Static physical memory allocation for dom0less on arm64.
+ - dom0less EFI support on arm64.
+ - GICD_ICPENDR register handling in vGIC emulation to support Zephyr OS.
+ - CPU feature leveling on arm64 platform with heterogeneous cores.
+ - Report unpopulated memory regions safe to use for external mappings, Arm and
+   device tree only.
+ - Support of generic DT IOMMU bindings for Arm SMMU v2.
+ - Limit grant table version on a per-domain basis.
 
 ## [4.15.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.15.0) - 2021-04-08
 
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 11:28:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 11:28:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230358.398225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqRx-0006m9-IZ; Wed, 24 Nov 2021 11:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230358.398225; Wed, 24 Nov 2021 11:28:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqRx-0006m2-FG; Wed, 24 Nov 2021 11:28:29 +0000
Received: by outflank-mailman (input) for mailman id 230358;
 Wed, 24 Nov 2021 11:28:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gGpx=QL=epam.com=prvs=1962e93d75=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpqRv-0006lt-OZ
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 11:28:28 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a301fadd-4d19-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 12:28:25 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AOAFnDj014606;
 Wed, 24 Nov 2021 11:28:23 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2113.outbound.protection.outlook.com [104.47.17.113])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3chhcwrv26-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 24 Nov 2021 11:28:22 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by VI1PR0302MB2765.eurprd03.prod.outlook.com (2603:10a6:800:e1::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 11:28:19 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 11:28:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a301fadd-4d19-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CApRkJm6VQKcGYvT27vUIqM5ypKf7JCE1P3LpGj/Emw8eJIPqJ+6lOZNx0Irpl2kiUTjv+AFLUeCLTMeaS5FvuqdKBCMJ57IXyQxvZK7j/4Y2LLnPxDi70pewNy1UgoKMtHtU8zBNDoRPsuqh6jXa90a4LpWZqfi56KD2Ra03sI36igBrp837OKJ/HfvVmfEC9wknO1Rnfeh4D2N/4M9tusNepG7GHw8oBYklb5MbrGaRH0h1LspuBxWYNtXN9wa60Gtoi3hqJc6enSsQAoMlTIgm96VgdhL7KvX+EkDDV6HI6on/uBRObgQxeWCpaIMkHxsl3FEqjIG6WCEX+ty3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9rKz2L4sR7JssQTEC4wJObsF0gJL5kKJsK6R1kmixfI=;
 b=X35c+oPqde1iTUAIjQiyf/VeW6+f5wxaCr/W/Ec7/Hk9aCuay7LWyk5Ck/7c595O9F+eaVKh+Hfx1cYjhk6DIqhLN8DijfMlhczIvkL0MXgiwrjCeS6camT7He585Wjs5GmHwQl0PTV/bCjut7zSi+cR4bq5nyIUBsG0BRsdka0zLPd/vGny2p5Ev3Qm5p2ypOh9wVBUOzAciytMGtLxjPbZb6+F0ZwHJpRZUSzqUJVrDcZRFbZ8n5OPAuJ5R8vl2YysVqy09FnSkcTdwtpWWsVAitDSYCmfjkd4G/bPJtTVuEwnvPOCbU86i3lHiDHBLqTjDryBJMQ1LsItTtKFlQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9rKz2L4sR7JssQTEC4wJObsF0gJL5kKJsK6R1kmixfI=;
 b=Byvfzr7LB6E5yXWrjhRDeDOzlL7S7nVTCgXoX/fq86yaY4RAnylxYmvSVZebt88yL7SfTSvnoYdMrbR+cp8x4srf7RUdk22+rG/TZxr8/hTG5xQx/D4ar7HORHfaZsdoOl8lBMA4gXiX2IsGmA3+2ywdoFO9HBc5pxmF8vJlU5XGv1+Hgz6ozsgCzoxSlLLcRzvY0/Qg2U9qPRBjS8vwixRnn5pM+pMgmnF9jzTY0/yRng9R4Bq+NJ5Miag4xl+mALBs6iHmBG1oDxbT5sPQGxbmn+df6Z4I/vOUrJbnaJWfl6PHDCas7omGRbfQe0zfadgm+bmPjeG8qHFSRwvOMg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 10/11] vpci: add initial support for virtual PCI bus
 topology
Thread-Topic: [PATCH v4 10/11] vpci: add initial support for virtual PCI bus
 topology
Thread-Index: AQHX0hJNBZwMmlboFUG58hx6442EAqwJkx2AgAkVfoA=
Date: Wed, 24 Nov 2021 11:28:18 +0000
Message-ID: <6c6951dc-2abe-e180-1442-e68097e59d22@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-11-andr2000@gmail.com>
 <217a5684-34af-e08c-2d70-563857ec5595@suse.com>
In-Reply-To: <217a5684-34af-e08c-2d70-563857ec5595@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 729840eb-5125-4c51-6dfd-08d9af3d83d6
x-ms-traffictypediagnostic: VI1PR0302MB2765:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <VI1PR0302MB2765323F53ACF5074D392E98E7619@VI1PR0302MB2765.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 HaEppwkGP7gFRhKPdtA7hKU2a8Ic07419fNkGkVgA6jtIxu5PML46WLrP0jMIZJiXWQVvyL66In7kebKZBKrKS30dICnVuqkMPB/Zaj0jgdYZ8oZ8P20xVEYwuGkE4R26oU9lX/rE4PSbt8HsdrC0Fg213v3Noqg5pKhOs6qYhZiiy0tNoVFsrDSfZvJx5kVWK+1VINtRWbUzNho+A/Xgm1bL+Hz6MD2H1f8eT8j20WjRODDWx5HgjH+grbRjnV13QGmxnSx7/AjcC9TIy7FAH22Dz0aX9SZi/rZUrrxCuUAKMLIIYbFG65uPLJlITVKCMy+s3hGcXHWJYRv0rL6q3WQV/YzkNygSQp51zgBIg8R1lcaGTpGdQc3bv674dDIo0oh/dTHdiBauXo9niY4jbbFPHwOKZBD0GIz2xWkJa4hu/bbysBld+lyKVUkQAIBFKCEZAfXYOiSjuYsyvyvRUOO3UCmo7AwjFh1GdkzN6b7zKJesbTpBgrNZ7F8+Fahv+BvQjE9i993xUwKjG8KKUqpf02RYaWcxU+yD9XrvwrbnP0Yw1puJMrqHjIYCDR9Jw00+LWVHZExTuQj2ZlsKDsQPcjsUKOMX+AdlocxBeDrvwFt+aixEr7OiS4YS/ocGlXdC0rySernMa1+iI6tKhv7Cowbdy7NQlOULifzYyWnEWO40Pl9dUBoGOmYn5o1UzsgWAwsacOo9UM1suSfW03Eu0sKrKhejF6vlFMxqyUog+MAgXn7APjXhSnGdrjo
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(4326008)(498600001)(53546011)(6512007)(6506007)(186003)(83380400001)(38100700002)(38070700005)(122000001)(26005)(2906002)(54906003)(31686004)(5660300002)(110136005)(64756008)(66476007)(76116006)(66946007)(6486002)(66556008)(66446008)(91956017)(8676002)(31696002)(71200400001)(86362001)(36756003)(107886003)(7416002)(8936002)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?VnVTSHgyLzRESTJOaVJWdld6UTRlTnBySjBZaEZ1c3RjY1hFT0lWYisyaldu?=
 =?utf-8?B?VkJJeUJCQWRnTDRWSlNGRTMzYnI4VzcxYjhXajNXODhjNmtHdm1UYkNGZlRo?=
 =?utf-8?B?Tk5UYVpWVzBNdGp2bExXdm54eHM5eWJMY3lIZU0xMm9yUTB6Y0NxcTdadTNS?=
 =?utf-8?B?Z3FLdzZBb0Q1MzlYYXpLOXJDcFFaUlBhMDI1b1lnYTR0QjdObDdveEtYWFZr?=
 =?utf-8?B?eFhWbjVYKy8waWI1MFUraVYyQUVRdWd4NTlrb3IxZE1hNTMzOUgzWHhSSzhv?=
 =?utf-8?B?ZTRRdkNYaTVoc3B0VXRrTHpJaG84cE5DdGhhakM4ZVdMS0tTcUhtYjZzRHJ5?=
 =?utf-8?B?ZmkzNXJnUzhpR3JTNzNJQXFxRFdTV3A1RTJBSW9tYUdza3hkVmY2TC92OU9J?=
 =?utf-8?B?WHVXVWVCRk56amN5ZVlraDdCZmlrZXlHT2NOeFhCQzlKR09ZYWRQcWg3eVA0?=
 =?utf-8?B?b08rMDVUNGNVWHVlRzBIS0x1cFdEaDBJa2VPRTg2LzFPQWFxMU00YUYzMUZt?=
 =?utf-8?B?cWtyZEdDNS9XQkVKSm4wOXowd0FlTW1UUUNVeUQrekhTc09iSGZHdEs2dElp?=
 =?utf-8?B?YUptT3RUY0E2eVlYQS9FRDJNb2R2bUtlVngrSXp1SWxuM1dGWXEzVTZzeTZj?=
 =?utf-8?B?dmxmSGR6VURYUHdIeG9GZ1BWdXoxNEpLSmN5TU9WcVBrblB2RU9HZTNxZXVx?=
 =?utf-8?B?bXVsMUd3YVhiUHZXZUI5Yi9YNnJJRndoNlJUWFJPUHVaZXFuMVZWZ0xhK2lM?=
 =?utf-8?B?SlVNRVR1Wk9xRUg3NS9iTE1jTGRPclVCc05zcFZXSFZZR1JnRTNhZUF4LzV2?=
 =?utf-8?B?RVp3cys0OThkaGI1dzQyL2owZ0dHeXpUVmNsZnNTTUlHc3psem1jYVZSdzNF?=
 =?utf-8?B?amxmWmtSRTNNWUE0aWQyeTVEaFg3WVUvTXhFQ0xuK3pIZXNsZk9xb1dFTWlm?=
 =?utf-8?B?VnZuaFhnbEdXUFpUWm5CZG5rQzZiZ1hZM3hFTUtIb2t2VjRGMy91TmtWSWZJ?=
 =?utf-8?B?UHdzV3ZtZ014OTYrKzVLcGc4dHNKQlptcG1OOTFOcHBEcnFFbllWMC90VjdX?=
 =?utf-8?B?ei9xR1owalcvWENwYWpYN0VpSElNYTZsSEtMWlZkVy9uZmRTd00xM1RjdFBa?=
 =?utf-8?B?N1B4Mjd1eWdpMWJGd1Q5eFNiSmdabWVwTW5NWGc0NjNUSkI1YTQxaU9nN1NS?=
 =?utf-8?B?eFE1R09Vak9jRk4vN2xrYmI3ZjlaSDJsd0Jxa0M1MmllZ3dTOTFsdUlvSmd1?=
 =?utf-8?B?dmdBWTRDVjI0K1JzK1BCazE5WDZKMGV4TlBaY0RVRkhVWkFpRnlZYkNjR0Fo?=
 =?utf-8?B?bURscjJ5dEZEd2c2K251amlSOHhMQ1kvTFYwOHZDWFdVbVp5blpvQzNVNlV0?=
 =?utf-8?B?T0ptNTVSbEsvZ1MyV29nRDVXSllhb0xPYmloUU5uZEJ3RUZYWGZhSlVMOXZK?=
 =?utf-8?B?RFZNaWZmWklJTjhrODI3N01VNUUyWDJuaUM1VE01M2JRYkxScnJKbmVqbTUw?=
 =?utf-8?B?bjBTaVpXNy9SZ01VNnFUMkVZbjdCS2JBSTNFOHRnZGxlZkZDNUJhWStlOHFP?=
 =?utf-8?B?NFBnUjJ6N0xZS0NtWkxDZnEzdGVBOEdGTXF2bElIeUs1dVBEY0M2ekt5d0VN?=
 =?utf-8?B?UHppZUs2UVJZR294OUhpdWNOZnZSdTFxdlMvbDdkR1hCYUlTSzVYWTdxQk56?=
 =?utf-8?B?c2JicUpscFo5MmUyZUhIM2NxTTNqdXBEUjVEUjQrTzY5ZVV0TG4xVzJrWS8r?=
 =?utf-8?B?aXo5cGhFa3hndFFLZkMxdlVPYklyMG9CWlo2RE12VWk4aHhZRXF6NWxyOFdx?=
 =?utf-8?B?a0dCOWllYVZ4MGlBZ2tnYk95c2FCZzJxL09sYlI1Z1Z3dXY4SGhJMUJ2TWda?=
 =?utf-8?B?Q09RT1R5Yk5FSlZsMG9EMldQb2Z6OUtQaDRwangyc2VWazI3K0NJcEd5b3pS?=
 =?utf-8?B?VStVU05OWUtrNGxUdlZBNG9kSUhiRk9jZzRsS0RSYzZMc2FQa1YxdjZuTWVy?=
 =?utf-8?B?Qys0STBOZnczQ2R1Y0tVYjNSSCt4dDEvRFd3YWQzcTlaeEsyaURYK0tGT2NB?=
 =?utf-8?B?RTY1V2NFZ3lOdEpTL2ZucGZsSFNqaitQa25xenFJZmRDeGdBR0hBL1EvaVpt?=
 =?utf-8?B?eEZJQmM1MnBFM0xlRngzNEhiVTZwQUlwSWlBLzZReWgzTXdaN3ZySjlGMkJW?=
 =?utf-8?B?UmFncGMxMk1UdCtzVEQzZ2JOSlhraUw1WXlVY1JDa200bHE3RTR4R2RJVFlO?=
 =?utf-8?B?MTRQODNWRTRZWlFXdkRsN2drNkU2NlVJQVlNcmxlZzU0K0F4cHowV092Qitw?=
 =?utf-8?B?VVJCaGlBdEhncVIvVHVhSm9FZ0x4cG5pYURVZFUxZlVibVpjcjlTQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A25678C4C9AF264C86A1D7D0DE2088CE@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 729840eb-5125-4c51-6dfd-08d9af3d83d6
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 11:28:18.7896
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: JIb0L71SbW9g5KbJu6oN4V5US+jo/C/dgKDo7kDjhehAAOYHGiP7PjsUrdDEinOfJSB4UXa2M0ix+WnQe4EzgOOb2T8FE9XHIFZqRvTQkWG4rTNrmyq4ugJOWVrMdbe+
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2765
X-Proofpoint-ORIG-GUID: 4GLPUT-FGOKEzl72gxhpMtczUHNH9Zie
X-Proofpoint-GUID: 4GLPUT-FGOKEzl72gxhpMtczUHNH9Zie
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-24_04,2021-11-24_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0
 mlxscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 mlxlogscore=999
 adultscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111240064

SGksIEphbiENCg0KT24gMTguMTEuMjEgMTg6NDUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAw
NS4xMS4yMDIxIDA3OjU2LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4+IFNpbmNl
IHYzOg0KPj4gICAtIG1ha2UgdXNlIG9mIFZQQ0lfSU5JVA0KPj4gICAtIG1vdmVkIGFsbCBuZXcg
Y29kZSB0byB2cGNpLmMgd2hpY2ggYmVsb25ncyB0byBpdA0KPj4gICAtIGNoYW5nZWQgb3Blbi1j
b2RlZCAzMSB0byBQQ0lfU0xPVCh+MCkNCj4+ICAgLSByZXZpc2l0ZWQgbG9ja2luZzogYWRkIGRl
ZGljYXRlZCB2ZGV2IGxpc3QncyBsb2NrDQo+IFdoYXQgaXMgdGhpcyBhYm91dD8gSSBjYW4ndCBz
cG90IGFueSBsb2NraW5nIGluIHRoZSBwYXRjaC4gSW4gcGFydGljdWxhciAuLi4NCkkgd2lsbCB1
cGRhdGUNCj4NCj4+IEBAIC0xMjUsNiArMTI4LDU0IEBAIGludCB2cGNpX2FkZF9oYW5kbGVycyhz
dHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICAgfQ0KPj4gICANCj4+ICAgI2lmZGVmIENPTkZJR19I
QVNfVlBDSV9HVUVTVF9TVVBQT1JUDQo+PiAraW50IHZwY2lfYWRkX3ZpcnR1YWxfZGV2aWNlKHN0
cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4gK3sNCj4+ICsgICAgc3RydWN0IGRvbWFpbiAqZCA9IHBk
ZXYtPmRvbWFpbjsNCj4+ICsgICAgcGNpX3NiZGZfdCBzYmRmOw0KPj4gKyAgICB1bnNpZ25lZCBs
b25nIG5ld19kZXZfbnVtYmVyOw0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBFYWNoIFBD
SSBidXMgc3VwcG9ydHMgMzIgZGV2aWNlcy9zbG90cyBhdCBtYXggb3IgdXAgdG8gMjU2IHdoZW4N
Cj4+ICsgICAgICogdGhlcmUgYXJlIG11bHRpLWZ1bmN0aW9uIG9uZXMgd2hpY2ggYXJlIG5vdCB5
ZXQgc3VwcG9ydGVkLg0KPj4gKyAgICAgKi8NCj4+ICsgICAgaWYgKCBwZGV2LT5pbmZvLmlzX2V4
dGZuICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIiVwcDog
b25seSBmdW5jdGlvbiAwIHBhc3N0aHJvdWdoIHN1cHBvcnRlZFxuIiwNCj4+ICsgICAgICAgICAg
ICAgICAgICZwZGV2LT5zYmRmKTsNCj4+ICsgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsNCj4+
ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBuZXdfZGV2X251bWJlciA9IGZpbmRfZmlyc3RfemVyb19i
aXQoJmQtPnZwY2lfZGV2X2Fzc2lnbmVkX21hcCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKH4wKSArIDEpOw0KPj4gKyAgICBpZiAoIG5ld19k
ZXZfbnVtYmVyID4gUENJX1NMT1QofjApICkNCj4+ICsgICAgICAgIHJldHVybiAtRU5PU1BDOw0K
Pj4gKw0KPj4gKyAgICBzZXRfYml0KG5ld19kZXZfbnVtYmVyLCAmZC0+dnBjaV9kZXZfYXNzaWdu
ZWRfbWFwKTsNCj4gLi4uIEkgd29uZGVyIHdoZXRoZXIgdGhpcyBpc24ndCByYWN5IHdpdGhvdXQg
YW55IGxvY2tpbmcgYXJvdW5kIGl0LA0KTG9ja2luZyBpcyBnb2luZyB0byBiZSBpbXBsZW1lbnRl
ZCBieSBtb3ZpbmcgdnBjaS0+bG9jayB0byB0aGUNCm91dHNpZGUsIHNvIHRoaXMgY29kZSB3aWxs
IGJlIHByb3RlY3RlZA0KPiBhbmQgd2l0aG91dCBsb29waW5nIG92ZXIgdGVzdF9hbmRfc2V0X2Jp
dCgpLiBXaGVyZWFzIHdpdGggbG9ja2luZyBJDQo+IHRoaW5rIHlvdSBjb3VsZCBqdXN0IHVzZSBf
X3NldF9iaXQoKS4NCkFsdGhvdWdoIF9fc2V0X2JpdCA9PSBzZXRfYml0IG9uIEFybSBJIHNlZSB0
aGVyZSBpc8KgIGEgZGlmZmVyZW5jZSBvbiB4ODYNCkkgd2lsIHVzZSBfX3NldF9iaXQNCj4NCj4+
ICsgICAgLyoNCj4+ICsgICAgICogQm90aCBzZWdtZW50IGFuZCBidXMgbnVtYmVyIGFyZSAwOg0K
Pj4gKyAgICAgKiAgLSB3ZSBlbXVsYXRlIGEgc2luZ2xlIGhvc3QgYnJpZGdlIGZvciB0aGUgZ3Vl
c3QsIGUuZy4gc2VnbWVudCAwDQo+PiArICAgICAqICAtIHdpdGggYnVzIDAgdGhlIHZpcnR1YWwg
ZGV2aWNlcyBhcmUgc2VlbiBhcyBlbWJlZGRlZA0KPj4gKyAgICAgKiAgICBlbmRwb2ludHMgYmVo
aW5kIHRoZSByb290IGNvbXBsZXgNCj4+ICsgICAgICoNCj4+ICsgICAgICogVE9ETzogYWRkIHN1
cHBvcnQgZm9yIG11bHRpLWZ1bmN0aW9uIGRldmljZXMuDQo+PiArICAgICAqLw0KPj4gKyAgICBz
YmRmLnNiZGYgPSAwOw0KPiBJIHRoaW5rIHRoaXMgd291bGQgYmUgYmV0dGVyIGV4cHJlc3NlZCBh
cyBhbiBpbml0aWFsaXplciwNCk9rLA0KLcKgwqDCoCBwY2lfc2JkZl90IHNiZGY7DQorwqDCoMKg
IHBjaV9zYmRmX3Qgc2JkZiA9IHsgMCB9Ow0KDQo+ICAgbWFraW5nIGl0DQo+IGNsZWFyIHRvIHRo
ZSByZWFkZXIgdGhhdCB0aGUgd2hvbGUgb2JqZWN0IGdldHMgaW5pdGlhbGl6ZWQgd2l0aCBvdXQN
Cj4gdGhlbSBuZWVkaW5nIHRvIGdvIGNoZWNrIHRoZSB0eXBlIChhbmQgZmluZCB0aGF0IC5zYmRm
IGNvdmVycyB0aGUNCj4gZW50aXJlIG9iamVjdCkuDQo+DQo+PiAtLS0gYS94ZW4vaW5jbHVkZS94
ZW4vdnBjaS5oDQo+PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQo+PiBAQCAtMTQ1LDYg
KzE0NSwxMCBAQCBzdHJ1Y3QgdnBjaSB7DQo+PiAgICAgICAgICAgICAgIHN0cnVjdCB2cGNpX2Fy
Y2hfbXNpeF9lbnRyeSBhcmNoOw0KPj4gICAgICAgICAgIH0gZW50cmllc1tdOw0KPj4gICAgICAg
fSAqbXNpeDsNCj4+ICsjaWZkZWYgQ09ORklHX0hBU19WUENJX0dVRVNUX1NVUFBPUlQNCj4+ICsg
ICAgLyogVmlydHVhbCBTQkRGIG9mIHRoZSBkZXZpY2UuICovDQo+PiArICAgIHBjaV9zYmRmX3Qg
Z3Vlc3Rfc2JkZjsNCj4gV291bGQgdnNiZGYgcGVyaGFwcyBiZSBiZXR0ZXIgaW4gbGluZSB3aXRo
IHRoaW5ncyBsaWtlIHZwY2kgb3IgdmNwdQ0KPiAoYXMgd2VsbCBhcyB3aXRoIHRoZSBjb21tZW50
IGhlcmUpPw0KVGhpcyBpcyB0aGUgc2FtZSBhcyBndWVzdF9hZGRyLi4uDQpAUm9nZXIgd2hhdCBp
cyB5b3VyIHByZWZlcmVuY2UgaGVyZT8NCj4NCj4gSmFuDQo+DQpUaGFuayB5b3UsDQpPbGVrc2Fu
ZHI=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 11:31:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 11:31:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230364.398239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqUz-00089G-2x; Wed, 24 Nov 2021 11:31:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230364.398239; Wed, 24 Nov 2021 11:31:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqUy-000899-Vn; Wed, 24 Nov 2021 11:31:36 +0000
Received: by outflank-mailman (input) for mailman id 230364;
 Wed, 24 Nov 2021 11:31:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gGpx=QL=epam.com=prvs=1962e93d75=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mpqUx-00088M-81
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 11:31:35 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1315675d-4d1a-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 12:31:33 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AOBSg7f005323;
 Wed, 24 Nov 2021 11:31:31 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3chjq98gmy-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 24 Nov 2021 11:31:31 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM4PR0302MB2657.eurprd03.prod.outlook.com (2603:10a6:200:90::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 11:31:28 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 11:31:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1315675d-4d1a-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZzJ6FfXaj7CR46+v3fMnG6+gu6gCfz7F1BO9Hy0Pf2ySC5rmDlG/Evgj0nQaYPEzPtRduV9Zefa6besEgcv1MBWMjJCpUs6BFsgZkR/VcUnVnfH5qhexyWIAe4erC8iaEIScuqxha1pp7lWvjFmjUSiLn7crue7tsDx5Ssl8fvJZIMo5th1qENcDOHxhL4WgzZPrnET46KDthZo61M0bnNtCfMy+3bEhbD4/kJigkBYrTd0+5iB6M0Cuz8b6aeeWhuTWNzya4LopvKHvaynIgXFcDY44aAP+0Ke0vxjt7MSVFn66omJOcYMLsBfhFy58G74Oe3rEoaZ8TtS1Q+QCqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l5uMs6GCdNNkPlVD5LpM0ZDDauleikCEj8IUXuw5cNc=;
 b=AYAy5WS69meph165q5iLo6d+D52Scj6pszMpoRch3SjoF2p22+Y0gM8+oRT876YOWMQLjUIDTguAo1Q7g8kxqi57uRLdcD9IaYYC8o7egO1i2BG+JF1jKNCACrHU9ShVvw9cBjX9J+RAY4y6AMFdvr/oCnl8opHvr82Xlx+CtgLi6Ywn2Kky0/GmtKBtvMQFWryG16AJT+1tcRTtEtsB/aqcwDNXg/QLS4dFl785kDZX+Gn5nad9je0GbT/qeKAetIr9xh9wFbQnezYPOZyLs13U5cBx4W6mBWIUeJPaIf7gdYCnj7XRPYKmmLoDPTWjBBGTxLdhECAPXQxADC/Ybw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=l5uMs6GCdNNkPlVD5LpM0ZDDauleikCEj8IUXuw5cNc=;
 b=gsseJOr+ITK1hcoGJ76zmtWkZQagJIpnBN5bHsU9vUmYr4DXFm4NGgywcasBasPW4Sm1aqKjsLcdgsOlgYxSI15YbuhLc7MZ+5vBotk8EPqTrLtHDJXANHqWRqAy2IcuhUrQyuXTaG5Im7H0u4zP1/SNkhbajqEAZrutsz0NvMfGvPp0XM7OLPyENlgyV8Ui4YJb7x/F9rJCrckQHg+qE6wmE86drYCIar082wDj1OvbNcAGAf/ACdB/5hBv8kquM4UJwBHvQ9vQUmSHgr6/dwcBbd3iYp3imXotFagHGuedt8Wl4G6Jw6QDKMpOLCoLu5SG6OELCZ056f052rxd8w==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 11/11] xen/arm: translate virtual PCI bus topology for
 guests
Thread-Topic: [PATCH v4 11/11] xen/arm: translate virtual PCI bus topology for
 guests
Thread-Index: AQHX0hJP4tGfmNyDbEa0m8z5ITSeMav5fmGAgAABr4CAADRIAIAAEgeAgBjjHgA=
Date: Wed, 24 Nov 2021 11:31:27 +0000
Message-ID: <da75f278-59b3-bc98-0512-fa6efcf9ac54@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-12-andr2000@gmail.com>
 <da36ee68-3162-0a32-f033-98af34f9c94e@suse.com>
 <c05b3e98-772c-a8c7-d8f8-841289683a02@epam.com>
 <YYky9JSe9oMh5azh@Air-de-Roger>
 <4260ad1e-0225-20c0-8208-f8e239f551a0@epam.com>
In-Reply-To: <4260ad1e-0225-20c0-8208-f8e239f551a0@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9bdbe9a3-8828-4d95-0db8-08d9af3df47e
x-ms-traffictypediagnostic: AM4PR0302MB2657:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM4PR0302MB265781134D0C8F294E8BC6E5E7619@AM4PR0302MB2657.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 81sehRZnjnKJX0hmlpllMLQUrKAdOdlYyvnFMSxqeXnzpm4znusWjysEq5cpN8N4FTTnc06DCEHaM+7h7v2DTJos1gsIrKLlYRe90ChtvXa9geD2MZ7FFbGaDERlzv8S62iq80z1NJuP3+X02M+cSOTlaF5rLSexEgCNJKyopbUGiMjD06IsQu89XhpB3sureB1qEc3sQrKM60bVU49L39y0t/aYfsXGXKkigOkj7hQGv6Gvs/tUxIIrhF43OUHdFTjmMb6+WPNC7GTmg1eCH9KhwLTZ/uWDXbbWsZTuosQFTcnwXXbKD+7CyQHJuC2EVlVw6siYXmctaVnlymV5fN1ivyKtdUEctSYAwjr5EUffjeJvp/HycbRjVs1mvv7ne6DqRdl9TUaoL4bZjokjsfAoQs55XfQ3Q3YxDltBG3yicEYZTuGiUSA5l8Kh0KRHSrqtXKO7UL7ZKNBngXy6eoj9q9QqOjdRUrC+Y1l2cpTYCfndekLpsuCoGjE9eFEAWDXU/8qWz8SsFtUSB+TG/XIb+ejvW1k9DaUxrWSQRrfBxx2mJam7R0R5vDtWkj2VSI3bTOg2Fz7F6laQ3QnT9o0gRxfHwBFuaA73NweaT6jSRJXFjRW5lNnLr9bILhvg77WP4k2ULHbTN9a3ZjOHe24It0JpbjNekuer/BdefTgUPXM27fb4DZ7l2MR/qQqP2LiSW26yUQsC9VPv4f9n56m0saj/qRfsOkDqjbtL0xg0TagVmO07vCcmiIRS1wvaOE8B4H6eIox8W+P+NuDBFY5JIqWXr9opDcn6a6vSnD4=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(36756003)(71200400001)(7416002)(31696002)(122000001)(2906002)(4326008)(6506007)(6916009)(6512007)(5660300002)(53546011)(66556008)(38100700002)(31686004)(54906003)(508600001)(91956017)(83380400001)(6486002)(38070700005)(86362001)(66446008)(186003)(2616005)(66476007)(76116006)(66946007)(316002)(64756008)(8936002)(26005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?RUovV2JydTVLWS9SYU15Y1lBWGliYWxKQmN6aHV3QjNPTVFwaEN1WVZpZHpx?=
 =?utf-8?B?cWNyY3ZQd3lWYnVwM1QyRkNmNGhTTFVFblRQdEcwdm9Xd2xMSUFJT2xHSWVh?=
 =?utf-8?B?SlR5U2N6c3VMaTE1cEpUYlIza2NpY3ZtdXc1K2dLQXlWNVJoRGd4dmRKbEJC?=
 =?utf-8?B?eW0yS0s0anhaOG1kaTlDTnB4NnR3M2NtcjZMRHdkTUwxVXlvNEhDQXh2cHVM?=
 =?utf-8?B?L2ZoY0VySGJodU1vc25OdGtQa3UzdHBwSmxWZElXVWJnSzZQYnAwUjNUTkFH?=
 =?utf-8?B?ZFhjQmQ0eW5vM0dFcWpuNExVM2lWbUMrQjQ4UnpoUFZUQWZlcU9lL05HSStw?=
 =?utf-8?B?VnZyanlWS3N1WUo5ZkxNSjFtSFhneEVFd2hWaSs2WXV6RHBib3FKNCtBTkxs?=
 =?utf-8?B?a1lra2tTcjBlWW0xdzdyQ1RZWXlNUnUyR0kyWlRCMTNEN2hoZmJQNG5lcmV2?=
 =?utf-8?B?V1R3cEhqUUJKUWVyN01aUnhNTEQwaWc3akkzM3hxZVFqVlVTallOMVVRK0ZB?=
 =?utf-8?B?RUhoRUlDbjVPY2ZRMlVHUFJBQzNJbmlRL08rTVdPc3lhTFNVREE3Si9aYzlD?=
 =?utf-8?B?VWxNYVRqcmNwUUkwSCtIZVRMRWlTQitZcDhJM3I1cHhqRDZYQzViUE5heFBK?=
 =?utf-8?B?ZkZwdG5Kb1BENFFQRXV5Z1U1R1VDVnV6aFdBem5jbXlTcExwTlVxb1kyUmJx?=
 =?utf-8?B?N1hQNkhRR0FJeXlUbWFnSm9IeFJPQU5xbFVRM3RHN3J6SHlVK2laWVg1RFJU?=
 =?utf-8?B?Y1ZwUU41WDhtamR3R0RaVDIwN2g4QW96ZGdxN0xuSG1VNHMyYmRrM3BpdW5h?=
 =?utf-8?B?Y3BDWGJXY3lwb2RweUd4WmtkeTRyUStLRDhocGFpbkdqNzVBdnR4K0ZiTjkw?=
 =?utf-8?B?dXoxaFB6aDloc3BTRlZtbDlIQzhEcGRxaDFSMzlEQWhmL3k0VTdlTVk0azAw?=
 =?utf-8?B?bHhaOWo1TitFajU2ZFNjdWdZcFhYZVEvZnpKYUYvTkJXUjFoZkZQd20zUitk?=
 =?utf-8?B?bnJOMnloV0NsOFRSclRHWE5YcGY4cU5ZbVRJU2dLM0xKVysyZ0M2RlBkWTVE?=
 =?utf-8?B?WHpJMGpreVhxcVd1M3JEZkZJQVNwUnEybmlCd3RYci9UempCYTRsRWw1SWRn?=
 =?utf-8?B?Vi9CWmU0ZzRwL1B5alpJSHdjRkdmYkRYZFFwaGlvblM3SXh6elhCVTlyYndi?=
 =?utf-8?B?UFhOSmR5dUFGS1R1a1hjN1RoOTJLcVJZZXlJK0N1K1pSREEwbkFxajUxdmZE?=
 =?utf-8?B?STFjVWpQM094eG55OTNyM0JzVTRCUHZLandZV3l0YzJXYzVROEYwMlQzKzNE?=
 =?utf-8?B?NGU2bDhuRHF1eGlkVStERk5yTHIvWHpFazlneU9yN1hScVMvWTh2MHFRMGRo?=
 =?utf-8?B?Y0c3WUhNVk5oMW1YREZwYVhzR0JZbms3ekxhb2pLM2V5NU5wWlJaaTFXRTBM?=
 =?utf-8?B?bDNnWlcrSkpFNEhkMjFRVDE0KzFxZGdpcDZYQ2dtTEhwdE4ra3ZRYllXdG5i?=
 =?utf-8?B?anFnOVNDdGs4eDB5VUt4dVByUjFTNXlOaXFTWW9SalFxUU9ZVjZqUkpsRzZO?=
 =?utf-8?B?emRUeHFxMkF2djZOMzJMTTl3eWh4dUVwblBTWWZYYjdtRmNCV3pzTmxYUWRW?=
 =?utf-8?B?bldXdUYwb1E0SnpJMnpocEFzOVJHSE9ua08xNUE2M2lUOEJYNSthaXo1UXNi?=
 =?utf-8?B?Y0pxRVVnVVFnbFMrWXAxWno0SkdZOGFVQ1FDdkFERjZtSEY2M210ZVhDYUx0?=
 =?utf-8?B?c0RudklWakN4SHJ1L01FeWtma2lWVzZLTUUzMDkyNTFWZUMxMjREaVNWVEV4?=
 =?utf-8?B?bXJ1SzFnSmxtTHc2d2psa1RWOVZGZHJoRFJEdFNuMXpFdmxGcmVwREd3aE41?=
 =?utf-8?B?Q3BzcytiZXB1bTFIT2FaekovOTRGRWhBM1g4RHNrcElyQXl2dXlJdGQwNTFs?=
 =?utf-8?B?RktDQ0F3M0RVTXdEamdROUVtZ1A3b2l5UWZxc3MwMldUUk9RUzhFWUt4Qi9t?=
 =?utf-8?B?ZUVvU2dyQ2FzeTd3Vm1DT2kwaUUvcUc2Z3RTM2NZUm5Vai94T3NMbVFKRnYr?=
 =?utf-8?B?MVIrdVBnSThYR0hXWTlCbHlFMjRpZmVPREQxUzRCaU5Gd2J4WXk1elErZUQ1?=
 =?utf-8?B?NSswUjdHWUhtWnRxN0JhTHgxLzZ5Wm9KNWRXK0Qza3pXZTZUWHZiSHBtK0FU?=
 =?utf-8?B?cldyVVBwUmtJbERQTzZoOUxiRWFkRUg1TEdwS0ZpcEZOM1N5Y1dPZmIwVUNx?=
 =?utf-8?B?dEl5L3hsbndSQWUzcnQxeWcxQnJhemQwUlZHbENzS0tmeU9TbUMwYWs1Y00y?=
 =?utf-8?B?K0luM3FkdWNPMHRWWTJEcmE1NWxTUDVST0c3N28wZmY1YWVxOFIyZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5F453184E1AF9E4A9C608E1BCF7C450C@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9bdbe9a3-8828-4d95-0db8-08d9af3df47e
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 11:31:27.7820
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MlrXm1gjOhCjBpnucSjdm95SrZAg8IS5UtDVWrsHeuQGgwvl1yx9KfT7mMVEO7BB2Vj0eq9wIyqjxcnMG4YUW4iZtGVQOk1jxTt+QlFYK01hDfrQYbBJRCoQ2t+uDSvt
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0302MB2657
X-Proofpoint-GUID: VEmQ0sMoY6b4B3DFvER-_pfOq6y6Wc7p
X-Proofpoint-ORIG-GUID: VEmQ0sMoY6b4B3DFvER-_pfOq6y6Wc7p
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-24_04,2021-11-24_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 phishscore=0
 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0
 lowpriorityscore=0 mlxlogscore=999 adultscore=0 clxscore=1015
 suspectscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111240065

DQoNCk9uIDA4LjExLjIxIDE3OjI4LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToNCj4N
Cj4gT24gMDguMTEuMjEgMTY6MjMsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+PiBPbiBNb24s
IE5vdiAwOCwgMjAyMSBhdCAxMToxNjo0MkFNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+PiBPbiAwOC4xMS4yMSAxMzoxMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+
IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOg0KPj4+
Pj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZwY2kuYw0KPj4+Pj4gKysrIGIveGVuL2FyY2gvYXJtL3Zw
Y2kuYw0KPj4+Pj4gQEAgLTQxLDYgKzQxLDE1IEBAIHN0YXRpYyBpbnQgdnBjaV9tbWlvX3JlYWQo
c3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLA0KPj4+Pj4gICAgICAgICAvKiBkYXRh
IGlzIG5lZWRlZCB0byBwcmV2ZW50IGEgcG9pbnRlciBjYXN0IG9uIDMyYml0ICovDQo+Pj4+PiAg
ICAgICAgIHVuc2lnbmVkIGxvbmcgZGF0YTsNCj4+Pj4+ICAgICANCj4+Pj4+ICsjaWZkZWYgQ09O
RklHX0hBU19WUENJX0dVRVNUX1NVUFBPUlQNCj4+Pj4+ICsgICAgLyoNCj4+Pj4+ICsgICAgICog
Rm9yIHRoZSBwYXNzZWQgdGhyb3VnaCBkZXZpY2VzIHdlIG5lZWQgdG8gbWFwIHRoZWlyIHZpcnR1
YWwgU0JERg0KPj4+Pj4gKyAgICAgKiB0byB0aGUgcGh5c2ljYWwgUENJIGRldmljZSBiZWluZyBw
YXNzZWQgdGhyb3VnaC4NCj4+Pj4+ICsgICAgICovDQo+Pj4+PiArICAgIGlmICggIWJyaWRnZSAm
JiAhdnBjaV90cmFuc2xhdGVfdmlydHVhbF9kZXZpY2Uodi0+ZG9tYWluLCAmc2JkZikgKQ0KPj4+
Pj4gKyAgICAgICAgICAgIHJldHVybiAxOw0KPj4+PiBOaXQ6IEluZGVudGF0aW9uLg0KPj4+IE91
Y2gsIHN1cmUNCj4+Pj4+IEBAIC01OSw2ICs2OCwxNSBAQCBzdGF0aWMgaW50IHZwY2lfbW1pb193
cml0ZShzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8sDQo+Pj4+PiAgICAgICAgIHN0
cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSA9IHA7DQo+Pj4+PiAgICAgICAgIHBjaV9zYmRm
X3Qgc2JkZiA9IHZwY2lfc2JkZl9mcm9tX2dwYShicmlkZ2UsIGluZm8tPmdwYSk7DQo+Pj4+PiAg
ICAgDQo+Pj4+PiArI2lmZGVmIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUDQo+Pj4+PiAr
ICAgIC8qDQo+Pj4+PiArICAgICAqIEZvciB0aGUgcGFzc2VkIHRocm91Z2ggZGV2aWNlcyB3ZSBu
ZWVkIHRvIG1hcCB0aGVpciB2aXJ0dWFsIFNCREYNCj4+Pj4+ICsgICAgICogdG8gdGhlIHBoeXNp
Y2FsIFBDSSBkZXZpY2UgYmVpbmcgcGFzc2VkIHRocm91Z2guDQo+Pj4+PiArICAgICAqLw0KPj4+
Pj4gKyAgICBpZiAoICFicmlkZ2UgJiYgIXZwY2lfdHJhbnNsYXRlX3ZpcnR1YWxfZGV2aWNlKHYt
PmRvbWFpbiwgJnNiZGYpICkNCj4+Pj4+ICsgICAgICAgICAgICByZXR1cm4gMTsNCj4+Pj4gQWdh
aW4uDQo+Pj4gV2lsbCBmaXgNCj4+Pj4+IEBAIC0xNzIsMTAgKzE3NSwzNyBAQCBSRUdJU1RFUl9W
UENJX0lOSVQodnBjaV9hZGRfdmlydHVhbF9kZXZpY2UsIFZQQ0lfUFJJT1JJVFlfTUlERExFKTsN
Cj4+Pj4+ICAgICBzdGF0aWMgdm9pZCB2cGNpX3JlbW92ZV92aXJ0dWFsX2RldmljZShzdHJ1Y3Qg
ZG9tYWluICpkLA0KPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4+Pj4gICAgIHsNCj4+Pj4+ICsgICAg
QVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOw0KPj4+Pj4gKw0KPj4+Pj4gICAgICAgICBjbGVhcl9i
aXQocGRldi0+dnBjaS0+Z3Vlc3Rfc2JkZi5kZXYsICZkLT52cGNpX2Rldl9hc3NpZ25lZF9tYXAp
Ow0KPj4+Pj4gICAgICAgICBwZGV2LT52cGNpLT5ndWVzdF9zYmRmLnNiZGYgPSB+MDsNCj4+Pj4+
ICAgICB9DQo+Pj4+PiAgICAgDQo+Pj4+PiArLyoNCj4+Pj4+ICsgKiBGaW5kIHRoZSBwaHlzaWNh
bCBkZXZpY2Ugd2hpY2ggaXMgbWFwcGVkIHRvIHRoZSB2aXJ0dWFsIGRldmljZQ0KPj4+Pj4gKyAq
IGFuZCB0cmFuc2xhdGUgdmlydHVhbCBTQkRGIHRvIHRoZSBwaHlzaWNhbCBvbmUuDQo+Pj4+PiAr
ICovDQo+Pj4+PiArYm9vbCB2cGNpX3RyYW5zbGF0ZV92aXJ0dWFsX2RldmljZShzdHJ1Y3QgZG9t
YWluICpkLCBwY2lfc2JkZl90ICpzYmRmKQ0KPj4+PiBjb25zdCBzdHJ1Y3QgZG9tYWluICpkID8N
Cj4+PiBXaWxsIGNoYW5nZQ0KPj4+Pj4gK3sNCj4+Pj4+ICsgICAgY29uc3Qgc3RydWN0IHBjaV9k
ZXYgKnBkZXY7DQo+Pj4+PiArICAgIGJvb2wgZm91bmQgPSBmYWxzZTsNCj4+Pj4+ICsNCj4+Pj4+
ICsgICAgcGNpZGV2c19sb2NrKCk7DQo+Pj4+PiArICAgIGZvcl9lYWNoX3BkZXYoIGQsIHBkZXYg
KQ0KPj4+Pj4gKyAgICB7DQo+Pj4+PiArICAgICAgICBpZiAoIHBkZXYtPnZwY2ktPmd1ZXN0X3Ni
ZGYuc2JkZiA9PSBzYmRmLT5zYmRmICkNCj4+Pj4+ICsgICAgICAgIHsNCj4+Pj4+ICsgICAgICAg
ICAgICAvKiBSZXBsYWNlIHZpcnR1YWwgU0JERiB3aXRoIHRoZSBwaHlzaWNhbCBvbmUuICovDQo+
Pj4+PiArICAgICAgICAgICAgKnNiZGYgPSBwZGV2LT5zYmRmOw0KPj4+Pj4gKyAgICAgICAgICAg
IGZvdW5kID0gdHJ1ZTsNCj4+Pj4+ICsgICAgICAgICAgICBicmVhazsNCj4+Pj4+ICsgICAgICAg
IH0NCj4+Pj4+ICsgICAgfQ0KPj4+Pj4gKyAgICBwY2lkZXZzX3VubG9jaygpOw0KPj4+PiBJIHRo
aW5rIHRoZSBkZXNjcmlwdGlvbiB3YW50cyB0byBhdCBsZWFzdCBtZW50aW9uIHRoYXQgaW4gcHJp
bmNpcGxlDQo+Pj4+IHRoaXMgaXMgdG9vIGNvYXJzZSBncmFpbmVkIGEgbG9jaywgcHJvdmlkaW5n
IGp1c3RpZmljYXRpb24gZm9yIHdoeQ0KPj4+PiBpdCBpcyBkZWVtZWQgZ29vZCBlbm91Z2ggbmV2
ZXJ0aGVsZXNzLiAoUGVyc29uYWxseSwgYXMgZXhwcmVzc2VkDQo+Pj4+IGJlZm9yZSwgSSBkb24n
dCB0aGluayB0aGUgbG9jayBzaG91bGQgYmUgdXNlZCBoZXJlLCBidXQgYXMgbG9uZyBhcw0KPj4+
PiBSb2dlciBhZ3JlZXMgd2l0aCB5b3UsIHlvdSdyZSBmaW5lLikNCj4+PiBZZXMsIG1ha2VzIHNl
bnNlDQo+PiBTZWVpbmcgYXMgd2UgZG9uJ3QgdGFrZSB0aGUgbG9jayBpbiB2cGNpX3tyZWFkLHdy
aXRlfSBJJ20gbm90IHN1cmUgd2UNCj4+IG5lZWQgaXQgaGVyZSBlaXRoZXIgdGhlbi4NCj4gWWVz
LCBJIHdhcyBub3QgZmVlbGluZyBjb25maWRlbnQgd2hpbGUgYWRkaW5nIGxvY2tpbmcNCj4+IFNp
bmNlIG9uIEFybSB5b3Ugd2lsbCBhZGQgZGV2aWNlcyB0byB0aGUgZ3Vlc3QgYXQgcnVudGltZSAo
aWU6IHdoaWxlDQo+PiB0aGVyZSBjb3VsZCBhbHJlYWR5IGJlIFBDSSBhY2Nlc3NlcyksIGhhdmUg
eW91IHNlZW4gaXNzdWVzIHdpdGggbm90DQo+PiB0YWtpbmcgdGhlIGxvY2sgaGVyZT8NCj4gTm8s
IEkgZGlkbid0LiBOZWl0aGVyIEkgYW0gYXdhcmUgb2YgQXJtIGhhZCBwcm9ibGVtcw0KPiBCdXQg
dGhpcyBjb3VsZCBqdXN0IG1lYW4gdGhhdCB3ZSB3ZXJlIGx1Y2t5IG5vdCB0byBzdGVwIG9uIGl0
DQo+PiBJIHRoaW5rIHRoZSB3aG9sZSBwY2lkZXZzIGxvY2tpbmcgbmVlZHMgdG8gYmUgY2xhcmlm
aWVkLCBhcyBpdCdzDQo+PiBjdXJyZW50bHkgYSBtZXNzLg0KPiBBZ3JlZQ0KPj4gICAgSWYgeW91
IHdhbnQgdG8gdGFrZSBpdCBoZXJlIHRoYXQncyBmaW5lLCBidXQgb3ZlcmFsbA0KPj4gdGhlcmUg
YXJlIGlzc3VlcyBpbiBvdGhlciBwbGFjZXMgdGhhdCB3b3VsZCBtYWtlIHJlbW92aW5nIGEgZGV2
aWNlIGF0DQo+PiBydW50aW1lIG5vdCByZWxpYWJsZS4NCj4gU28sIHdoYXQncyB0aGUgZGVjaXNp
b24/IEkgd291bGQgbGVhdmUgdGhlIGxvY2tzIHdoZXJlIEkgcHV0IHRoZW0sDQo+IHNvIGF0IGxl
YXN0IHRoaXMgcGFydCB3b24ndCBuZWVkIGZpeGVzLg0KQXMgSSBhbSBhYm91dCB0byB1c2UgdGhl
IGxvY2sgb3V0c2lkZSB2cGNpIHN0cnVjdCBpbiB2NSBhbGwgdGhlc2UgZ28gYXdheQ0KPj4gVGhh
bmtzLCBSb2dlci4NCj4+DQo+IFRoYW5rIHlvdSwNCj4gT2xla3NhbmRyDQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 11:35:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 11:35:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230371.398250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqYx-0000Oe-KM; Wed, 24 Nov 2021 11:35:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230371.398250; Wed, 24 Nov 2021 11:35:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpqYx-0000OX-HC; Wed, 24 Nov 2021 11:35:43 +0000
Received: by outflank-mailman (input) for mailman id 230371;
 Wed, 24 Nov 2021 11:35:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XDHO=QL=arm.com=Rahul.Singh@srs-se1.protection.inumbo.net>)
 id 1mpqYw-0000OR-IL
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 11:35:42 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01on062d.outbound.protection.outlook.com
 [2a01:111:f400:fe1e::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6b7da53-4d1a-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 12:35:40 +0100 (CET)
Received: from AS8PR04CA0018.eurprd04.prod.outlook.com (2603:10a6:20b:310::23)
 by DBBPR08MB6011.eurprd08.prod.outlook.com (2603:10a6:10:209::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Wed, 24 Nov
 2021 11:35:37 +0000
Received: from VE1EUR03FT031.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:310:cafe::3b) by AS8PR04CA0018.outlook.office365.com
 (2603:10a6:20b:310::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Wed, 24 Nov 2021 11:35:37 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT031.mail.protection.outlook.com (10.152.18.69) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Wed, 24 Nov 2021 11:35:36 +0000
Received: ("Tessian outbound 9a8c656e7c94:v110");
 Wed, 24 Nov 2021 11:35:36 +0000
Received: from 873787b63300.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 9344A4AC-261F-44E1-85BC-786661A35C41.1; 
 Wed, 24 Nov 2021 11:35:29 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 873787b63300.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 24 Nov 2021 11:35:29 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com (2603:10a6:20b:39e::10)
 by AM6PR08MB3653.eurprd08.prod.outlook.com (2603:10a6:20b:4c::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Wed, 24 Nov
 2021 11:35:27 +0000
Received: from AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9]) by AS8PR08MB6919.eurprd08.prod.outlook.com
 ([fe80::51ee:e7de:6c0a:bcf9%9]) with mapi id 15.20.4649.026; Wed, 24 Nov 2021
 11:35:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6b7da53-4d1a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AtgsvqEFlRc2z0mtLGeimkCZ+HpsyFir9s1PL08F5SM=;
 b=i+pRpFt22VyaLWTLq1Dy+X2otsyKuXU8kCpcdsavTfUdXhs/DK1s+JI5ShGhr6uDU67tPNWxVeJiAqRY8xZWrMRi26G3jxk1T7utXkn5vT/9gQA7+jiIAZCDS7Aa6ZtVU5YvGOOBuV/mz/JmcfDank7dhBGLvvIy//0RcDl+FCE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 9b1a64e28f1e0812
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=F5btag00M+7umHgGO7xUixSIWkjyRC1c8lCPPHa1cVF2EbnwIbo4pUFEOeZqwpiKpaFyS0KmLXiRx/9++TQ5/bsdpKmSeVZOWJL58oxbSGu9Id4YvBy9uEIw7j12RukI9k+B5AN1BZrYX/Bf+vjDu14QpAbU/MfLfTAuQOXx4I6pXJi4WtB3EH/T9vw8ydY88GJsGj4OPl/s5o+VOsXHU5F3wOkEqCFhw3BH+WuSd+OTl3oRzigApnNu4qImlMaXSEC/qdfpPcUGPZfCe4jPb4RCdFhZtLWOhGAl7YePfnet8mnWNlXhyW0pkdk7UGYS4g6gvPcNZh2sCU+35sp2/Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AtgsvqEFlRc2z0mtLGeimkCZ+HpsyFir9s1PL08F5SM=;
 b=bDyGHeHV5+/xo6tWSPlrU8odbIwLRys6I67+6blxiSFDkUWqo7ZDDP3pnn4f0bDfVfJ9WBEJ5k57obiqKeQHkmVfmF7oIJ1Qb+2z9cx4ODvFdJSJxlCcaACFJCzSQ3DBXHr1Nv06yN6O4W5X9blvNKdlWYaL4JF6mven/DBrim5jWOzboqglwRTQU/7f12b2AAIDx6mBtojDT9Gue+lwvpWV0wfP7g1GsD3//Jay9wThQevbCHAAYKXlEIw96K+7Ej10madBO2mhtNUqdVatJqYJUNmY03JcQMCb0rRi0gzSd9stniPUqhCtA+b1YYP8+qcyZGGPkkfMCuDm9teCmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AtgsvqEFlRc2z0mtLGeimkCZ+HpsyFir9s1PL08F5SM=;
 b=i+pRpFt22VyaLWTLq1Dy+X2otsyKuXU8kCpcdsavTfUdXhs/DK1s+JI5ShGhr6uDU67tPNWxVeJiAqRY8xZWrMRi26G3jxk1T7utXkn5vT/9gQA7+jiIAZCDS7Aa6ZtVU5YvGOOBuV/mz/JmcfDank7dhBGLvvIy//0RcDl+FCE=
From: Rahul Singh <Rahul.Singh@arm.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>
CC: xen-devel <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, "oleksandr_tyshchenko@epam.com"
	<oleksandr_tyshchenko@epam.com>, "volodymyr_babchuk@epam.com"
	<volodymyr_babchuk@epam.com>, "Artem_Mygaiev@epam.com"
	<Artem_Mygaiev@epam.com>, "roger.pau@citrix.com" <roger.pau@citrix.com>,
	"jbeulich@suse.com" <jbeulich@suse.com>, "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>, "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>, "paul@xen.org" <paul@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>, Julien Grall <jgrall@amazon.com>
Subject: Re: [PATCH v7 6/7] xen/arm: process pending vPCI map/unmap operations
Thread-Topic: [PATCH v7 6/7] xen/arm: process pending vPCI map/unmap
 operations
Thread-Index: AQHX4QlUdVJOt6s3PUOR8zkJihjiIawSjKuA
Date: Wed, 24 Nov 2021 11:35:26 +0000
Message-ID: <FB0E6553-0905-4CB5-840D-1D12D3D56BB7@arm.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
 <20211124075942.2645445-7-andr2000@gmail.com>
In-Reply-To: <20211124075942.2645445-7-andr2000@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: ccabda67-7c1e-424b-3198-08d9af3e88ee
x-ms-traffictypediagnostic: AM6PR08MB3653:|DBBPR08MB6011:
X-Microsoft-Antispam-PRVS:
	<DBBPR08MB60116FA8DCB83E033722055AFC619@DBBPR08MB6011.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:425;OLM:425;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 NaXOv2hLneXAD99YvFilEbUBSh4Ssikg1prLMmjTfN2s0M2yZzbgvimZCQ4wUBvHf5IX+CCuTU32qfQkBcGVrq3MdRdX/1fZR9IKEeFh/u8Ym0JqNQCah2zJs37TsSpRKgUMF97zUMZgI0P8gJa3zOIHQyvQraxDJGRVAOc1kFlZgduQh9Dy0YwFJbOQCgBcxTXQR+MuzDTXvmjtSpDWejhj/ozdOPV83to2+rpmatD7itTk+HVABdJsCA+hn+0MQrWRyjFG/p20qe+85emIGl9VNnjzgfbcKdV3xSbt9gIDSPyWK8LPoLHmUwmOkMwZuY49xwDfeILIDLP490Sp+fc6zOtHnz9938SZ39hdmxQg4qhfyNbMF1SE633DZZBygDxqCsHBJ7kBiJFJTwlfC8ZQL+Wc3EdgHHtqSg+dcz3Ihy3dBgH34tdVEy0lSPYx8UhR39Q+RTcRq4n+Q5fdHH1prvFKHxDzukk6rGSr1lIqSthdc7f0d7fKnfuSaxU+efXcVY/qwn/i2BOmUFE4EwOvGyAds1OTt73/sgLy5NGPLmwyltrL7mCK1WNvO0uFJKPuKwJL6jTd7SDo0vdD3AlbR3qcE7Y2aYA8bBovompiwWx7+9VPLR5xxSmOdvNXt7avcOg2YOo+KaqtEjQ1wA4tEFVEVrmpkc85IjmkE5+n00tS6fbRHTcUJoCx585kvMrzGRpQpvKoYvP0zr7kC/D+ikpsPtzwWK4kjpuiSOc=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6919.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66946007)(66446008)(66556008)(508600001)(36756003)(83380400001)(64756008)(66476007)(6486002)(316002)(91956017)(2906002)(54906003)(122000001)(7416002)(186003)(2616005)(38100700002)(26005)(8936002)(86362001)(33656002)(4326008)(5660300002)(6512007)(6506007)(53546011)(71200400001)(76116006)(38070700005)(6916009)(8676002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <CFE1E3580D27504FBE27A9BEB2ED6845@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3653
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 VE1EUR03FT031.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	22e050fe-f4ee-4924-254e-08d9af3e82ef
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	g0lT9dGrv4M4AT6vso7i7RFoM/wl9aPTxCibHEGBnta0Q6/hDl8DT4UnOy+ZYjW5UWU46utjjTNOd5R90P/cAcwfeIVyIBKoDn6oBMPHhOIlpqWMGKcuvg4Re99V5zosBBpKgyic8/WfrGDrfIch1SPIw5qWgYfCUCnLtTKTwsF02jjHkG+5b4R/7GZg5nMcZGQBJz6rn+kze2r9bTrlzbj+Ih4ILsa1yH/snqFPC1mlyByiIspSkhuYmtg1F5sRKSi1W0w53lW9kBhPfP4inWRxFTxNAlZEy/JcsTjseuyW3wiVvKhjGI9dkkDUinypaHokev863arV2owM07yjbVXmcdltoQtGC9ELOZzVQOuLMgLUiRD6FE/tFBKFDBNjnA+/Qay1pTv655FOqT5wplUzhC8L2CP2cGL3xI1RJhHpFE5R4W1uhVVNKhNeaxectV10L73OjH12oPGOieP3yszav5PVkwr5WTmExU2LgAs8e7MoyNsIekm9564hwV302yamPFyz3hVN0JYOilEuIpKfybxL1peOC5TokAup+EUG/8cuQNNKzbWDsqF+64iJv4qNLME0vKUyfMuB2yIu2HUWVbwaKXSVlshW4TdFknfM/NbcjvqzY/soivkEGpbyt9WJgaSzI4NhbgdlPgAuvKJDCnUGP8HCu9RdyaL1MZb8nu3W6fvozOTz8DVO+FRZW6gaFIU/kLlfNcB7CUb56g==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(53546011)(82310400004)(356005)(107886003)(336012)(86362001)(83380400001)(6506007)(81166007)(2616005)(5660300002)(33656002)(6512007)(70586007)(2906002)(36756003)(70206006)(54906003)(47076005)(316002)(4326008)(186003)(26005)(36860700001)(8936002)(508600001)(8676002)(6862004)(6486002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 11:35:36.8671
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ccabda67-7c1e-424b-3198-08d9af3e88ee
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	VE1EUR03FT031.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6011

Hi Oleksandr,

> On 24 Nov 2021, at 7:59 am, Oleksandr Andrushchenko <andr2000@gmail.com> =
wrote:
>=20
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>=20
> vPCI may map and unmap PCI device memory (BARs) being passed through whic=
h
> may take a lot of time. For this those operations may be deferred to be
> performed later, so that they can be safely preempted.
>=20
> Currently this deferred processing is happening in common IOREQ code
> which doesn't seem to be the right place for x86 and is even more
> doubtful because IOREQ may not be enabled for Arm at all.
> So, for Arm the pending vPCI work may have no chance to be executed
> if the processing is left as is in the common IOREQ code only.
> For that reason make vPCI processing happen in arch specific code.
>=20
> Please be aware that there are a few outstanding TODOs affecting this
> code path, see xen/drivers/vpci/header.c:map_range and
> xen/drivers/vpci/header.c:vpci_process_pending.
>=20
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> [x86 part]
> Acked-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Reviewed-by: Rahul Singh <rahul.singh@arm.com>
Tested-by: Rahul Singh <rahul.singh@arm.com>

Regards,
Rahul
> ---
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Paul Durrant <paul@xen.org>
>=20
> Since v5:
> - check_for_vcpu_work: vPCI addition is moved before the
>   vcpu_ioreq__handle_completion(v). This is to avoid differences
>   with the x86 version. (Julien)
> Since v2:
> - update commit message with more insight on x86, IOREQ and Arm
> - restored order of invocation for IOREQ and vPCI processing (Jan)
> Since v1:
> - Moved the check for pending vpci work from the common IOREQ code
>   to hvm_do_resume on x86
> - Re-worked the code for Arm to ensure we don't miss pending vPCI work
> ---
> xen/arch/arm/traps.c   | 13 +++++++++++++
> xen/arch/x86/hvm/hvm.c |  6 ++++++
> xen/common/ioreq.c     |  9 ---------
> 3 files changed, 19 insertions(+), 9 deletions(-)
>=20
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 219ab3c3fbde..8757210a798b 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -34,6 +34,7 @@
> #include <xen/symbols.h>
> #include <xen/version.h>
> #include <xen/virtual_region.h>
> +#include <xen/vpci.h>
>=20
> #include <public/sched.h>
> #include <public/xen.h>
> @@ -2290,6 +2291,18 @@ static bool check_for_vcpu_work(void)
> {
>     struct vcpu *v =3D current;
>=20
> +    if ( has_vpci(v->domain) )
> +    {
> +        bool pending;
> +
> +        local_irq_enable();
> +        pending =3D vpci_process_pending(v);
> +        local_irq_disable();
> +
> +        if ( pending )
> +            return true;
> +    }
> +
> #ifdef CONFIG_IOREQ_SERVER
>     if ( domain_has_ioreq_server(v->domain) )
>     {
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index eee365711d63..096a61b7ea02 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -546,6 +546,12 @@ void hvm_do_resume(struct vcpu *v)
>=20
>     pt_restore_timer(v);
>=20
> +    if ( has_vpci(v->domain) && vpci_process_pending(v) )
> +    {
> +        raise_softirq(SCHEDULE_SOFTIRQ);
> +        return;
> +    }
> +
>     if ( !vcpu_ioreq_handle_completion(v) )
>         return;
>=20
> diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
> index d732dc045df9..689d256544c8 100644
> --- a/xen/common/ioreq.c
> +++ b/xen/common/ioreq.c
> @@ -25,9 +25,7 @@
> #include <xen/lib.h>
> #include <xen/paging.h>
> #include <xen/sched.h>
> -#include <xen/softirq.h>
> #include <xen/trace.h>
> -#include <xen/vpci.h>
>=20
> #include <asm/guest_atomics.h>
> #include <asm/ioreq.h>
> @@ -212,19 +210,12 @@ static bool wait_for_io(struct ioreq_vcpu *sv, iore=
q_t *p)
>=20
> bool vcpu_ioreq_handle_completion(struct vcpu *v)
> {
> -    struct domain *d =3D v->domain;
>     struct vcpu_io *vio =3D &v->io;
>     struct ioreq_server *s;
>     struct ioreq_vcpu *sv;
>     enum vio_completion completion;
>     bool res =3D true;
>=20
> -    if ( has_vpci(d) && vpci_process_pending(v) )
> -    {
> -        raise_softirq(SCHEDULE_SOFTIRQ);
> -        return false;
> -    }
> -
>     while ( (sv =3D get_pending_vcpu(v, &s)) !=3D NULL )
>         if ( !wait_for_io(sv, get_ioreq(s, v)) )
>             return false;
> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 12:32:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 12:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230397.398263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mprRy-0006YU-CV; Wed, 24 Nov 2021 12:32:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230397.398263; Wed, 24 Nov 2021 12:32:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mprRy-0006YN-9g; Wed, 24 Nov 2021 12:32:34 +0000
Received: by outflank-mailman (input) for mailman id 230397;
 Wed, 24 Nov 2021 12:32:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qlkt=QL=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mprRx-0006YH-Jy
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 12:32:33 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9614c089-4d22-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 13:32:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9614c089-4d22-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637757150;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=OzVFu2UtLFxn3mnDwIRxST9LByMCRmgrPKBUgltAQxI=;
  b=b6PqEugLUoZUsD0XUCimLFxFfy2zM0GKNbbyhVuLz1rOXG2KKhikaR8x
   h12LuLltm6eRnCabJXL23HmTyMLD5NX33ho+Fic9+IOyMKyNqHKUwqZgv
   VMWtZ45ZtEThV7Q5sJAIaC/tlXXByXa2ZOeooL1NJYAvgC2+nCsBzlVma
   U=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: Zcnxi0OMOTx2O3RHQELSF2019JFBPTIIhKVh0oLSx8wRNbQLooUvIhxtUHoOkaa0CrMuSqfxAm
 h9+8mMilMZWrsgEMLez4wk5Vt+WFKLQxvdaOtiSJemq8xQN8zGckUu12AWNZ6fBo9f7/FPIdZZ
 JqHH/+H6WsD83xQFy0aIyvgasdekF0Q//eFz2dnqtB6Ers+5z7dWPEBCMN6+rWEyqoKEa33Myd
 Em6B/zXvs+mQ1UTZQ0qXeqTEKR+T1897WBrgKOWfUcg4kU72RRxnm2PGN427Ly342UGuV5tJIq
 mPbGGbbGDxSo/Qr016HHmFZc
X-SBRS: 5.1
X-MesageID: 58922272
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:zbJWQqDNI77DFxVW/wTlw5YqxClBgxIJ4kV8jS/XYbTApDwk32EGz
 WJNXmiCbqqJYmekeoolbdyx9RhUv5/Qy9I2QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540047wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/1Rqbxo1d8
 Nx2n7eUdFsmA7XGm7oyTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvWbv4UCg21YasZmQsvmT
 MU2UTZWdivcZTllE1wOD7MZpbL97pX4W2IB8w/EzUYt2EDZwRZtyrHrPJzQc8aTWMROtk+Co
 yTN+GGRKgkTKdi32TeDtHW2iYfnhyr7RYZUD7y++f5CiUeWgGcUDXU+V1G2vP24gU6WQM9EJ
 gof/S9Ghbg/8gmnQ8fwWzW8oWWYpVgMVtxICeo45QqRjK3O7G6xL3IYQzt2Tc0pvc47WxQnz
 laM2djuAFRHsqCRSH+b3qeZq3W1Iyd9BUgGaCwfRA0J+e7Kpo0pkwnPRdZuFq2yptDtEDS2y
 DePxAAlnKkah8MP06S9/HjEjiiqq5yPSRQ6ji3pWWai4hJ8dZSSTYWi4ljG7t5NNI+cCFKGu
 RAsvMyT7/sHC52XoxCcW+UGHLyv5PGtPSXVhBhkGJxJyti20yf9J8YKumg4fRo3dJZfEdP0X
 KPNkV1+9sYOEEOjVoVcR7/tBPkyx6u+OsuwA5g4ceFySpR2cQaG+gRnakiRw33hnSAQrE0vB
 XuIWZ3yVChHUMyL2BLzHr5AiuFzmkjS0EuKHcijpylLx4Zyc5J8pV0tFFKVJt4046qfyOk+2
 4YObpDao/mzvQCXX8U2zWLxBQxbRZTYLcqvwyCySgJlClA6cI3GI6WMqY7Ng6Q/w8xoeh7gp
 xlRoHNwxlvlnmHgIg6XcH1lY76Hdc8h9i1lbHZ9ZAv5hydLjWOTAEE3LcdfkV4PrrIL8BKJZ
 6NdJ5Xo7gpnFFwrBAjxnbGi9dc/JXxHdCqFPja/YShXQnKTb1ehxzMQRSO2rHNmJnPu7aMW+
 uT8viuGEctrb1kzV67+NaPwp25dSFBAwYqeqWOTeYINEKgtmaA3QxHMYggff5tRdE6dn2TCj
 G57w34w/IHwnmP8y/GQ7YispIa1CepuWE1cGmjQ97GtMifGuGGkxOd9vCygIFgxjUv4p/evY
 /t71fb5PKFVlVpGqdMkQb1q0bg/953koLoDllZoG3DCblKKDLJ8IybZgZkT5/MVnrIJ6xGrX
 k+v+8VBPenbMs3SD1NMdhEuaf6O1K9Il2CKv+g1Okjz+AR+4KGDDRdJJxCJhSEEdOl1PYopz
 P0PoskT7wDj2BMmPszf1nJf9niWL2xGWKIi78lIDIjugwst61dDfZ2DVXOmvMDRM41BaxB4L
 CWViazOg6Vn6nDDK3djR2LQ2ed9hIgVvEwYxlE1OFnUyMHOgeU63UMN/G1vHBhV1BhOz8l6J
 nNvax9uPayL8jpl2JpDUmSrF10TDRGV4BWsmV4AlWmfREi0TG3damY6PL/Vrkwe9mtdeBld/
 a2Zlzm5AWq7Ipmp03tgQ1NhptziUcd1p1/Ll82QFsiYG4U3PGj+iai0aGtU8xbqDKvdXqEcS
 TWGKAqoVZDGCA==
IronPort-HdrOrdr: A9a23:oJSVC69rCgg2aiA2X9Vuk+E8db1zdoMgy1knxilNoENuHfBwxv
 rDoB1E73LJYVYqOU3Jmbi7Sc69qFfnhORICOgqTMyftWzd1ldAQ7sSj7cKrweQfhEWs9QtqJ
 uIEJIOduEYb2IK9PoSiTPQe71LoKjlgdGVbKXlvg9QpGlRGt5dBmxCe2Cm+yNNNW177c1TLu
 vh2iMLnUvqRV0nKuCAQlUVVenKoNPG0LrgfB49HhYirC2Dlymh5rLWGwWRmk52aUID/Z4StU
 z+1yDp7KSqtP+2jjfaym/o9pxT3P/s0MFKCsCggtUcbh/slgGrToJ8XKDqhkF+nMifrHIR1P
 XcqRYpOMp+r1vXY2GOuBPonzLt1T4/gkWSv2OwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze
 Ziw3+Zn4A/N2KPoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vFpLA
 BXNrCd2B9qSyLYU5iA1VMfguBEH05DUitue3Jy+/B8iFNt7TVEJ0hx/r1pop5PzuN4d3B+3Z
 W2Dk1frsA7ciYnV9MMOA4/e7rENoXse2OEDIvAGyWuKEk4U0i93qIfpo9Fo92XRA==
X-IronPort-AV: E=Sophos;i="5.87,260,1631592000"; 
   d="scan'208";a="58922272"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eYrUKmmHFvZcpbgEBDDlAvGBbRMvvns1kL3usZ61YcYX6aO1I6vsGUZdryiYIEBajW2/+tKNMk37TJ+pyqsl4K050Mv46rXeLYjZ97/jFuJjq+NWLvNWhx24fUgasik4/oN3OsVWL45oSFQb1Oklp4qOZJRK4tcDPJSsP64AYIo3OUe+nkpuTYhQ4WaMNCFCfHmegygipVDFl7iCrzZ/EKfusDv+KOJhx+zjq6etQFsJrTYTrg+1mx+q+JAogkPsRvkLF6GK0IJc02NDflvyYjmtuFJ1saJ0bUglFouwOzjaG6AZj7SLk+vE9dR3qL4KxFtsotE2/e+GZB6aQ8MVAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3hBoHQcYG/ka+PcKkHYtMJn74bLi2h+JtlGse22uZbU=;
 b=hBf7r/Mwn9GBc/9e6wgQdNAIcPeyx+WV/V9nF733tHKqgxYFVZzs08NxkKudJSWjRyA+v3Mi+Iwyn6p/3Q+819m7l3jWwRMbdPzE34xlwmj0lRIjZuiaamuLihVMgDE2B9XxPgY+HkqwAZFvDgfuLZJruR7NCxYK4YvYzszdMIAfongyYxSosXGv7hXU5gRv7rWnwSAP6lWZ5N7eb+3LRkN177sumCBFKRizoGrG9d4iylqnTbeXwbewj9/SEq+Od7SGzA3T8F6aAOkR+SHB+TnV68NpomZ25/Y98FqPNYH1uhgLnfYLmyupSWQfnAlPNfsSJRzN3ZJeB3+qcYp4Jw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3hBoHQcYG/ka+PcKkHYtMJn74bLi2h+JtlGse22uZbU=;
 b=JazpPNfvlox5YkdbYzAEuLVgPx55bRGmsfTy72M/n+pldc6VEa7bb86tT8v8V8Utj9PjZVCrRCCiX6wsJs5bYM2pPfk3ymvk80DGF3cgSNBpVaYn9L8Pqa7UGcq9+g7SbQGYZHu8316vfqjFFOUOfTjwW9NhCRWIVn+0zQXzG/I=
Date: Wed, 24 Nov 2021 13:32:16 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: "julien@xen.org" <julien@xen.org>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"george.dunlap@citrix.com" <george.dunlap@citrix.com>, "paul@xen.org"
	<paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Message-ID: <YZ4w0AoZ6Af/Dnl5@Air-de-Roger>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
 <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
 <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
 <6c61bd19-228a-fc12-eb64-00c8c5340292@epam.com>
 <ed2a6b5c-6e3a-07ca-a2f0-532a0de10329@suse.com>
 <c3b58e3c-9644-6e74-5ca1-25df33028b71@epam.com>
 <bab431c0-c4b4-09e4-cc3e-32ec8b3f5c7e@suse.com>
 <3192ef9d-c014-df72-91c9-13386bb584e7@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <3192ef9d-c014-df72-91c9-13386bb584e7@epam.com>
X-ClientProxiedBy: MR2P264CA0149.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::12) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ae78c6ee-8e55-4be8-9177-08d9af467528
X-MS-TrafficTypeDiagnostic: DM8PR03MB6230:
X-Microsoft-Antispam-PRVS: <DM8PR03MB6230E6443C78D1EDA527DE1D8F619@DM8PR03MB6230.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Ji5SiZhxP3xOKYm9HLkeERBzwfF5bcOB6GHc5yunxrwajjYxu58ee/dQpadjnztnTSrdEMqfd+0IhvzGAu7f9E4ysKJbTze4ULGZxKqYhlZ7J9vkMGMlL3ZKI8h5SETAS1d/GiVNdkZhkQj1g9E1BFySYWz+tOQhfa0O7Zczq/IcuwkMES3DYf47eCW47IcJALUk89BRxi/Mg5NB63QSNURvcXmFnOzreKhSq6c2KbXHrUCwgiUUEh0qh+veO8Fi/b2QNhemzu1rovtfu3X36/bUHjiDig1yQkay8iM+lHmw60ld0vcSbkArQx8y3mKLyMtTua3xo+tIwFNbJzvCNJhTLC6bM0lUnjMsHAgvVxHU5EDA0ZGzqCkaMWjNBX+8hLwTCKjWJgyJ2g77u9vg/y1O0RDTdVDSNTQhd+HhS+FMwBdauVvNHHpdyBtCGhYF6rftx93nJ4sX72319/toJ+FF6BVZNOrgTpLN5Lcr9qU+3KeIPYLPDrB4cxWhqiWBGbojaFmplv3wavdQOXNIdQU+XiRuF0brYGYOhWSnyX5SsP60wRbrN0m2GDY7g/C0Hi2AT34WCHejQd1WxhcMnTImSv5GcharjXUdN76V8aeenTI7g4KMuDBdU/1ODd3IFcVljyDAUi5gbY1rjv3T5A==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(82960400001)(2906002)(7416002)(53546011)(26005)(86362001)(9686003)(6666004)(33716001)(66946007)(66476007)(6486002)(8676002)(38100700002)(316002)(4326008)(956004)(8936002)(508600001)(6916009)(54906003)(5660300002)(186003)(6496006)(66556008)(85182001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SmZBdXhwMlZ5a1hvdSsxSTZ1VEh3UWNmQzgwN3pxR01VYXEwU1hrM2o0TE1C?=
 =?utf-8?B?UEVVU1VxcURSZnpDbHVsRDkzaGxsZ0pGekc0YytVbXBkWlRxZ1k1TWcvZmhC?=
 =?utf-8?B?L3FxTzNaWHhvZER0Rno0RDVpRGRVMW9vbnRHeVJrWXhJWlVXcnJwWVp5dk96?=
 =?utf-8?B?N2lUeEE2dnNjR1NZQXVhV0p4S1VCbXkvd2IvVnFyQkVlK2trVkdLTGwzeWxk?=
 =?utf-8?B?bjdJdkR5RmtNQkdnMDRyRW84QSswTm1CenhaNWxJbEdkTmNXYTB5KzlNOHVi?=
 =?utf-8?B?ME9xNHNWd2FxNXRvaVhTb1d4dUtIR05uQkl1NllEVEhRTGF5NCs2OEJCK0hG?=
 =?utf-8?B?T21WWW8yM1ROWTBqczg4Y3ErZUVqYmdZL2Z4bkwxSnJEb1pnMFVNVzFCZ2xV?=
 =?utf-8?B?dC9pZ1ZsaDhIVDVxK2ZsR29BNkdidzhDMjM3NDJXT0ZIN3R5Nys0cTBpenBF?=
 =?utf-8?B?bEc1SXJsR1dTS3kxZFkyN29WNENRNUNHaXh6cGhWNHdjQjdiK0ZnTm16U0xk?=
 =?utf-8?B?eFdSV1BNTWFER1VGb2VoS0JBRGJtRWRZSVlvWE9KR0VjR2JlUmRpcFk4OHRG?=
 =?utf-8?B?SlRLYlh5bnZpL2o0YlpQRzQ4ekRocHdNSUZVdXJmR29vQ1I1ZEdnRUtuSXhJ?=
 =?utf-8?B?bGJjWW1YeVMzTjBiWmN4cHh6ZGNwNms5QzJVeFl6L0pWdEZEeWw5UG45S0Rv?=
 =?utf-8?B?U3BURnpyMnBqK09wb3RVZTdzN3FndDFBbWlEYWxFVlhzakU3OHo0WFN1SDRK?=
 =?utf-8?B?QThxTU5xVFJKU2FwQjJiQ2RQc1RnS2NyY1pDeEU2aGw2dWl1STNqWkpPQm0r?=
 =?utf-8?B?YXVDS1NOMlY2UTJMNXVITEx0aEJEYjdBS1prZktzQXVZM0pZUXhGNnFYcFY1?=
 =?utf-8?B?SFg4UmVuM3llTzdBZGJLWFhxSHBCVGxYalBqZUlubDBTMFB0OWhzK091MmhV?=
 =?utf-8?B?Uzk2U0RSVmJ1TGxyN1FXZzVFNk9PZ1hpN0NDODV6cCtqemZvNCtudlBlNTZH?=
 =?utf-8?B?MkpjUmYvd01Cd0ZuUjB4SlVhcXJPMk15ckhENks4cjY4cG9QdFQxT0ZNOTZn?=
 =?utf-8?B?Uys4ODZ5QWpyRWZNRlR4c0UwRGt3LzBqbElHV2ZUR0ptK3Y4amdwNStIT1lY?=
 =?utf-8?B?THZ6QkJrcm8yMkN1SVhWUjZKSy85WHRMYkZBUnhTdCs1M2VzZU1vK0VEaWR2?=
 =?utf-8?B?TW5FeFg2c05KU05tVjNIcnRVUXN4U1dFR1NsWjI3K1Z1MmdLMmtOYWg0ZEE3?=
 =?utf-8?B?WlMxaU83eXB6QzVOOTNoS2hua1UyL1VlMis0ZDdvUVJxbU1ta2NuTFdMOEZy?=
 =?utf-8?B?MERvYkFORHZxK0pZRlVaWkIrMWYzZVIvQnkrYzlBYkNYQkdKY0RaRHlCT244?=
 =?utf-8?B?WHJ4UTZhelRjSHdLbkNLTkJQOGNKd3NTRldnelhldkpGaWRCdm1CZi9EcERU?=
 =?utf-8?B?SzlGNHF6WDlsSDRXU1BVTk1hNTFmZTNEVGE2bDROZUNpOTBDQmpHajVuMjJE?=
 =?utf-8?B?eE8yQnNkRitQN0dvZVdNMy90UHlGaG5NQTc2VHBwRkVXVG4wVEZwSDlnTFp5?=
 =?utf-8?B?ODlDaDBhU09IYk5xVEFxcnJBMzZSUHZCeXNudUU1QnNqc1RFeWxaM2JzZkdW?=
 =?utf-8?B?aHJxOHBldThCeDR3ZUxwd0ZyelNOQjN4ZHZxRmxpSGk0S1dKcThCMHMvRlNp?=
 =?utf-8?B?d29rRUVRSWJ6UG1mYUtKZlRsTVFaRXVhUGZPd29NV09qWDQycjVQSllJWCs4?=
 =?utf-8?B?T3ZvVktNTDJnam5lak9LTjBrZGZoMGdnWUl3Rkw4MVBqVTZWUWNIUGZsQjJ3?=
 =?utf-8?B?MjIyeCs0cmNLb0xqZDlvb2Jqc3ptYW1YZ0xjd3crZWxaR3RIQnBDcU5LOGRX?=
 =?utf-8?B?aXNtMUozT0dVeW9rZFdITWREblA5alhwU3BoT25Gb3dTZUc4aU5ia1hKZ3BQ?=
 =?utf-8?B?YXBkY3Ivd0JBajQwb2JsK2JZTWhWVnZsMDNOMUgyMTVnTGN4OE9neGlKSStL?=
 =?utf-8?B?NG5RZk4yL0JIa2dJbGFhL0h1YWtJbm5kWS9OSXptOERjUkdiSTB1S2ZtYlEz?=
 =?utf-8?B?VDdCNmpwV2syK1pSMWVxWmFHZDNha1RMbzI2bXlPUCsvSERpTktiTkJwVEVh?=
 =?utf-8?B?K3hIeDJQLzFUTDhZRjByZHJ0c0w1ZWZvQ3NvZG5pY1ErMmlncitxcytSamtN?=
 =?utf-8?Q?sk4awgafAy5hGrtUWWlUW2Y=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: ae78c6ee-8e55-4be8-9177-08d9af467528
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 12:32:19.9682
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iJMXbR5H+iT8g6qLwZFubINrKLtAWasdHfz8qKpQh9OZ2SbQQuf4/wffmvoIdHLBqdJ+sa/Kg4eAmy8qoNpLoA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6230
X-OriginatorOrg: citrix.com

On Tue, Nov 23, 2021 at 03:14:27PM +0000, Oleksandr Andrushchenko wrote:
> Hi, Roger!
> 
> On 19.11.21 15:02, Jan Beulich wrote:
> > On 19.11.2021 13:54, Oleksandr Andrushchenko wrote:
> >> On 19.11.21 14:49, Jan Beulich wrote:
> >>> On 19.11.2021 13:46, Oleksandr Andrushchenko wrote:
> >>>> On 19.11.21 14:37, Jan Beulich wrote:
> >>>>> On 19.11.2021 13:10, Oleksandr Andrushchenko wrote:
> >>>>>> On 19.11.21 13:58, Jan Beulich wrote:
> >>>>>>> On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> >>>>>>>> --- a/xen/drivers/vpci/header.c
> >>>>>>>> +++ b/xen/drivers/vpci/header.c
> >>>>>>>> @@ -408,6 +408,48 @@ static void bar_write(const struct pci_dev *pdev, unsigned int reg,
> >>>>>>>>          pci_conf_write32(pdev->sbdf, reg, val);
> >>>>>>>>      }
> >>>>>>>>      
> >>>>>>>> +static void guest_bar_write(const struct pci_dev *pdev, unsigned int reg,
> >>>>>>>> +                            uint32_t val, void *data)
> >>>>>>>> +{
> >>>>>>>> +    struct vpci_bar *bar = data;
> >>>>>>>> +    bool hi = false;
> >>>>>>>> +
> >>>>>>>> +    if ( bar->type == VPCI_BAR_MEM64_HI )
> >>>>>>>> +    {
> >>>>>>>> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
> >>>>>>>> +        bar--;
> >>>>>>>> +        hi = true;
> >>>>>>>> +    }
> >>>>>>>> +    else
> >>>>>>>> +    {
> >>>>>>>> +        val &= PCI_BASE_ADDRESS_MEM_MASK;
> >>>>>>>> +        val |= bar->type == VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_TYPE_32
> >>>>>>>> +                                           : PCI_BASE_ADDRESS_MEM_TYPE_64;
> >>>>>>>> +        val |= bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
> >>>>>>>> +    }
> >>>>>>>> +
> >>>>>>>> +    bar->guest_addr &= ~(0xffffffffull << (hi ? 32 : 0));
> >>>>>>>> +    bar->guest_addr |= (uint64_t)val << (hi ? 32 : 0);
> >>>>>>>> +
> >>>>>>>> +    bar->guest_addr &= ~(bar->size - 1) | ~PCI_BASE_ADDRESS_MEM_MASK;
> >>>>>>>> +}
> >>>>>>>> +
> >>>>>>>> +static uint32_t guest_bar_read(const struct pci_dev *pdev, unsigned int reg,
> >>>>>>>> +                               void *data)
> >>>>>>>> +{
> >>>>>>>> +    const struct vpci_bar *bar = data;
> >>>>>>>> +    bool hi = false;
> >>>>>>>> +
> >>>>>>>> +    if ( bar->type == VPCI_BAR_MEM64_HI )
> >>>>>>>> +    {
> >>>>>>>> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
> >>>>>>>> +        bar--;
> >>>>>>>> +        hi = true;
> >>>>>>>> +    }
> >>>>>>>> +
> >>>>>>>> +    return bar->guest_addr >> (hi ? 32 : 0);
> >>>>>>> I'm afraid "guest_addr" then isn't the best name; maybe "guest_val"?
> >>>>>>> This would make more obvious that there is a meaningful difference
> >>>>>>> from "addr" besides the guest vs host aspect.
> >>>>>> I am not sure I can agree here:
> >>>>>> bar->addr and bar->guest_addr make it clear what are these while
> >>>>>> bar->addr and bar->guest_val would make someone go look for
> >>>>>> additional information about what that val is for.
> >>>>> Feel free to replace "val" with something more suitable. "guest_bar"
> >>>>> maybe? The value definitely is not an address, so "addr" seems
> >>>>> inappropriate / misleading to me.
> >>>> This is a guest's view on the BAR's address. So to me it is still guest_addr
> >>> It's a guest's view on the BAR, not just the address. Or else you couldn't
> >>> simply return the value here without folding in the correct low bits.
> >> I agree with this this respect as it is indeed address + lower bits.
> >> How about guest_bar_val then? So it reflects its nature, e.g. the value
> >> of the BAR as seen by the guest.
> > Gets a little longish for my taste. I for one wouldn't mind it be just
> > "guest". In the end Roger has the final say here anyway.
> What is your preference on naming here?
> 1. guest_addr
> 2. guest_val
> 3. guest_bar_val
> 4. guest

I think guest_reg would be fine?

Or alternatively you could make it a guest address by dropping the low
bits and adding them in the read handler instead of doing it in the
write handler.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 12:36:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 12:36:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230404.398278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mprVy-0007Da-U0; Wed, 24 Nov 2021 12:36:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230404.398278; Wed, 24 Nov 2021 12:36:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mprVy-0007DT-Q8; Wed, 24 Nov 2021 12:36:42 +0000
Received: by outflank-mailman (input) for mailman id 230404;
 Wed, 24 Nov 2021 12:36:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qlkt=QL=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mprVx-0007DN-O8
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 12:36:41 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b57146e-4d23-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 13:36:40 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b57146e-4d23-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637757400;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=nxsN0VpeJ/BCfd5Ks2rDABil0yBIa/orBTA3/enSCaA=;
  b=deTjRNBb1lWxBs+geBB5mYYS9DSPhwcg3tG11xMU4mj8dQ6COzgj7UwF
   JOyeksZzrKkJxKHtn/jKrxbzybSG60AXcRpUD7njBDvYvgqicAFoTW77C
   m9RtfuqqJL10lotzmilN6cb5SqPW+CNJECVNmMJeW2GvtBGYMyBU4AkD0
   k=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 2NgqUyNLJo+XZEfDXcfyeJXhMCGW33RaDaIdhQ87lCnTuBoOO6rN8AVoxpofZjXsSAbhMu9KlG
 M4vMu9PjVZrA+kYYL8kjhzpFQd3Pim4IeDy3tqpH9D87y4IICSkdvq3HCPdOm5zL9iMRYJxBxV
 IMsNXKpMbpHEa4NWshtCW+sXUx2mDD6cX3T2Ld+trcFnragjfuYWoepLYE34YOeWjkaXfV3JlS
 sL4K3pTSpAwGVZEV3NK8RtBrVCIF1Ssh6Gmhr35Oamk7Z88L0z1S+X2a58LoYrBgDJWr63VH2a
 dXWhk08IbTN28lZwoS079jIc
X-SBRS: 5.1
X-MesageID: 60545279
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Z2MqqqChNc+ITxVW/wTlw5YqxClBgxIJ4kV8jS/XYbTApDsn0zAAz
 DFJXT+OO66OYmGmf95wOYixpktUu5+Dy4A3QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540047wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/iAeHmo1ti
 /Z0qI2oEyERebTyuM4tekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHf2XuYICg2ZYasZmGKb6Z
 9E2UydVYDffWTcUKkkpT41jg7L97pX4W2IB8w/EzUYt2EDLxRF1+KjgNpzSYNPibexPgkudk
 UfX8G34Dw8yOcSWzHyO9XfEruXChz/hUYQeUrix7Od3gUa7z3YWThYRUDOTsfS/z0KzRd9bA
 0gV4TY167g/8lSxSdvwVAH+p2SL1jYGUtpNF6sh6QeCyoLd+QPfDW8BJhZ/b9ghuN4zVCYd/
 FaDlNP0BhRiqLSQD3ma89+8rzm/JCwUJm8qfjIfQE0O5NyLiKY3gxHUR9BvCpmciNHvBCrwy
 DCHqis5r7gLhMtN3KK+lXjFnjatq57hXgMzoALNUQqNyQd0Z5WsYYCy3mTK9vZLLIufTV6ps
 WANno6V6+VmJYqWiCWHTeEJHbeoz/WIKjvRhRhoBZZJyti20yf9J8YKumg4fRo3dJZfEdP0X
 KPNkQBj6poOIDiJVLJme9iXM4Mz84jKJf2wA5g4ceFySpR2cQaG+gRnakiRw33hnSAQrE0vB
 XuIWZ3yVChHUMyL2BLzHr5AiuFzmkjS0EuKHcijpylLx4Zyc5J8pV0tFFKVJt4046qfyOk+2
 4YObpDao/mzvQCXX8U2zWLxBQxbRZTYLcqvwyCySgJlClA6cI3GI6WMqY7Ng6Q/w8xoeh7gp
 xlRoHNwxlvlnmHgIg6XcH1lY76Hdc8h9i1lbHZ9ZAv5hydLjWOTAEE3LcdfkV4PrrIL8BKJZ
 6NdJ5Xo7gpnFFwrBAjxnbGi9dc/JXxHdCqFPja/YShXQnKTb1ehxzMQRSO2rHNmJnPu7aMW+
 uT8viuGEctrb1kzV67+NaPwp25dSFBAwYqeqWOTeYINEKgtmaA3QxHMYggff5tRdE6dn2TCj
 G57w34w/IHwnmP8y/GQ7YispIa1CepuWE1cGmjQ97GtMifGuGGkxOd9vCygJ1gxjUv4p/evY
 /t71fb5PKFVlVpGqdMkQb1q0bg/953koLoDllZoG3DCblKKDLJ8IybZgZkT5/MVnrIJ6xGrX
 k+v+8VBPenbMs3SD1NMdhEuaf6O1K9Il2CKv+g1Okjz+AR+4KGDDRdJJxCJhSEEdOl1PYopz
 P0PoskT7wDj2BMmPszf1nJf9niWL2xGWKIi78lIDIjugwst61dDfZ2DVXOmvMDRM41BaxB4L
 CWViazOg6Vn6nDDK3djR2LQ2ed9hIgVvEwYxlE1OFnUyMHOgeU63UMN/G1vHBhV1BhOz8l6J
 nNvax9uPayL8jpl2JpDUmSrF10TDRGV4BWsmV4AlWmfREi0TG3damY6PL/Vrkwe9mtdeBld/
 a2Zlzm5AWq7Ipmp03tgQ1NhptziUcd1p1/Ll82QFsiYG4U3PGj+iai0aGtU8xbqDKvdXqEcS
 TWGKAqoVZDGCA==
IronPort-HdrOrdr: A9a23:ZTT2i6Csuc3EMO3lHemo55DYdb4zR+YMi2TDsHoBLiC9E/bo8/
 xG+c5x6faaslossR0b9uxoW5PhfZq/z/BICOAqVN/JMTUO01HIEKhSqafk3j38C2nf24dmpM
 JdmnFFeb7N5I5B/KTH3DU=
X-IronPort-AV: E=Sophos;i="5.87,260,1631592000"; 
   d="scan'208";a="60545279"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mQkSYG+ZJAMEPEFKCH8+6ZO4cdbH6HwWhCj0nFE6WMVGswTrqS9ptKcmGjC+2pGXy64k/r/jt3eZ685oiu/TJGj0aTBjnI0h4cymc9BbgYDYbZdJAvlUpckKPEZO5uOj35CNRQerYbqI5XzP47IiLOVHLLOcXY7sZDyq9irJL3r9gkgDkOG4Elb2vIImBd/WyTuFRBkh9h3A02TQqNci1YkqjxH+CzQL5bUbxDzt1lbJZjMVJ3qo2zmReQPviQpKcpFd+uoJRuL+D9O1mHbyGzCBAWsm3lRKHJr1eki4d0jGUyQJe7tN4MTUm/FoxPZ24s5TzMzB7jZ+8X/Uuz9wAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XxsJR3dQtPz5jbsnTdvLVtmMwCnkxV+5wzoIKt4r9WM=;
 b=ILkB34KSGRTtq1YajFQTwaZ9XflpKspDIT2An05qaOhBkjn8Ag0I1Yii8hhsKoM889QLsdnfJ+FqE1peLcZUyfeaerUVe0RNd8k1cNPjxralzLCZvaHJl+vOSqPucTkybBK5u6SAMxEGaBqxs8Sy4loMEAYf19VvARZhrUJH79K/fa4RLgqH0TdHcMtQpzUFLpk1jzG3kLEQbl+y74JuldhzauPewS5EKZNtazEyRwDJTOPeXr+3AdPqUTz4PFqkOWdEcwXh5GcS9pPkGckIEAzZJnICJe745DCqqLjxoYDNk9YoMGnc+Z6lDC0oQV+jiM8h9k3AlJ/13KBDGwQ2Sg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XxsJR3dQtPz5jbsnTdvLVtmMwCnkxV+5wzoIKt4r9WM=;
 b=NNLacflWO+NSmRZTE4qq5FmIuUEk0xy2kyIOVnHfv7crg+URMNs/IHRJCWvPB2eJ7ZMl4WfMfbTb2eYkO7jEeq8lApBfhhPnkds9uh6+jyzT7O/a1rBd+nLEyUejm9BgHx//HumYRb/e/nIMWs62EtXogooszm88M5gCLgv5h7I=
Date: Wed, 24 Nov 2021 13:36:32 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
CC: Jan Beulich <jbeulich@suse.com>, "julien@xen.org" <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"george.dunlap@citrix.com" <george.dunlap@citrix.com>, "paul@xen.org"
	<paul@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 10/11] vpci: add initial support for virtual PCI bus
 topology
Message-ID: <YZ4x0ANosX3hPfSh@Air-de-Roger>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-11-andr2000@gmail.com>
 <217a5684-34af-e08c-2d70-563857ec5595@suse.com>
 <6c6951dc-2abe-e180-1442-e68097e59d22@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <6c6951dc-2abe-e180-1442-e68097e59d22@epam.com>
X-ClientProxiedBy: MR2P264CA0087.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::27) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1dcf97b7-b08b-4209-61d6-08d9af470dc7
X-MS-TrafficTypeDiagnostic: DM5PR03MB3147:
X-Microsoft-Antispam-PRVS: <DM5PR03MB31471E09E2D6BC266E8332368F619@DM5PR03MB3147.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6108;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: ZGUP9ihpvyXaF1w8kltnAu9DZ9Rs0OJL68A6ZVy2E7pi5XJaraJfVkCSCDkbnsLoTVlObo+ji3pto3Oe5aeSg/MgLVGe4a7u+/hAWIWwfUDFqRrk760owDBKsnsNfSf4B6CF2rcr5xkNZMI+2EwdAVAXkLLuwcR4pcLjYfcsjpFsB9ePnkdCnCwON/cGNgTG6z3EInM3s997tQZt/EH/Vy+0TjS5GocL7ZinN+i1udQ3ZaVDy1ueXD5Q0aWhmY0KltUUSENuvgViBR1Rjj3WSICR7SjVfepDzcrpLN4XVQRHMc5SeiSKJwavkzmk8bpTF03vmLkPJafXKChqUDKMD0K+4mnCYeBS9I/0RadSdKzVQBsiQmZHa+AX7mfTL0KvWqddUoGicr74tTBorSbIBV2ON1T3QCduhBigcGMsIDQig+gRIFwHCqhz+uFGt65u6RYXbWvGrGWfsCKJvWgipPwhyyKFezkZj3htyS01gGYg/c0GU8gldR4hzssli7nwurSvGWj5DCrSG84k3KkTERtopr03N0XdbDop2D5mr8jGz+9VBsfcUxDOFv2fTOMSzixbzrSTGYkAzt0kUHy5n/67W/peRWaMQ9dnp51g/Pb7c5a0QAdHMSbDmoFn0Bi1AxKKFi8YVaCoGRvFF02iMA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(508600001)(53546011)(5660300002)(86362001)(316002)(7416002)(4744005)(6486002)(54906003)(6496006)(83380400001)(9686003)(26005)(6666004)(8676002)(82960400001)(4326008)(186003)(8936002)(956004)(66946007)(85182001)(2906002)(38100700002)(66476007)(33716001)(66556008)(6916009);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bzh6MlZabG1iK1RweGpZSjczdFVwdmo5RFE5Q3dzNTZDMlg4WG5vWXdWOW9O?=
 =?utf-8?B?RXZtUjF1RTRkRktWUk1sc2l2N2pGYXhqakJWMWVqMmNpenVUZmRZZXRySWw3?=
 =?utf-8?B?R3J4VG8wd1JvK1pSaThvYmtMcStObXFPU2J5NzlHMU53QS9GQWR0NmFnMVhP?=
 =?utf-8?B?Wm1RMDJnUkRJSEs5SiszdXVFVjh3S01BVnhFdUlIbUV3RWtWZ2gzS1E2M2Ns?=
 =?utf-8?B?WFNUbTdVajBsL05Cc1ZjdFBYVzE5eFRrNTVJRFZqYjFBUkRUb082UWphdUpD?=
 =?utf-8?B?QVdqaUZ6VGRwY2ZnWlFoSWRCOUUxaUtudXhkcThMYVVnQUFkZlRocjhQQWZI?=
 =?utf-8?B?RUdUVTlnYVJKZGIwYzhBVkZPbG14azVlK01PVDhWTmxxaFpSNERHaDJ0SklZ?=
 =?utf-8?B?N2xxS0ZWV1E0eVhNME4rZnpnZVZwU2JzTm42Ui9ORmhwQk11ckUvZTlrWERt?=
 =?utf-8?B?dEN3V1ZnSk94RG9qWGRabVNwS2dGR1Q5cjlWMlV5cjlsY1YzRnQxeFlyNWls?=
 =?utf-8?B?cEVZcThRNFZoQzgreEE1TjZXOFlEYlNsL1M5T3dDTU5VNmloVEJIRU0vRFZm?=
 =?utf-8?B?UEkrVFZoamg5WldBKzNhZWdObnV5cEVLaUg5YXJCSlVWanRkYVUrdDhXOUE3?=
 =?utf-8?B?U240enplcHRaa3pZM0tjVUZMbTNYTHpMNTIyTSt4SWhmZ0NuQXlCLzcxWTZH?=
 =?utf-8?B?bk5jby9udzRLTE9FNENacmdJc2dQaVNWZG4wTHVUZm9CNmRkZHFJVFZydE1u?=
 =?utf-8?B?SGZqcDJzcjZBSlZacDJUNVJrQnJBU1dVNHlVcFFFb0lSY3NOclV4NFJ5VjdT?=
 =?utf-8?B?a1RDbExjZUZwSk5Jc2lFd2VZRlg0VW5RY1p6R2RvcktrdHh6QTllM1hySWIv?=
 =?utf-8?B?OC84cFdaU21xZ1ZDR21HWTdxSVFTTm14L2YwdEdmemtwZVc2QlhYQkthejdC?=
 =?utf-8?B?c0ZmUmlvZkJHOC9LTlVyR2JMakhXQVVtbUF6L1l6UjZocVBUSmlEMTlUMi85?=
 =?utf-8?B?UmJjOC8vUjVXQkRBQU10ZlJ6QXJEYjJneWg4MDhUVGg3SlZGN0RSdHlabUtm?=
 =?utf-8?B?ZG90SkgxdmxIbkE2KzNHV0pCekZJblJhb3c2ekROcncvS21DUWgvRStqV1BK?=
 =?utf-8?B?UXY2dHVPZjJJVTQ1VUduL0s4MHpHUmRJb3cwNWJqY3dibzFYanAybzVKc0hj?=
 =?utf-8?B?Z2VPN2pzdUtJS1hDSkhnUjVNNHB1a2djRTI0RWJVSVEzc3RTRVdDRGlXZFh3?=
 =?utf-8?B?eGY4ay8xN2JXNSs5L1M2RnR6MDNLNlA5SWRoTEkwQzFTakdDaE9HUDJYWThj?=
 =?utf-8?B?UXhBRG1pZEJpUWJwZnlXcmhXdTVPTDhRc3lweEg3dytXOHkxcXZhbjQySDQ1?=
 =?utf-8?B?bWlvNFBaVXlmK0JqL1pXeVJrK21nVC82MUE4Q05JWjZrQmpoQWluSlA4ZndX?=
 =?utf-8?B?TW5SZ2NIRDMrTlFtOVUyZENFUHB5R0UyVGhsMmxYVUdobUtWYkRLVzRMb2g0?=
 =?utf-8?B?aE5DNUFrbE5WcnBURDVLL21jVkRpemc4L0wxSWFNSU52OVQyUkxaeWd5NkRl?=
 =?utf-8?B?b2JGTThaamRVSE9vMG9TRCtiblJMOVQ3VG1NVVhtYWhOTG5CRWlGOHdkOUtY?=
 =?utf-8?B?Wk5kYVZHTlZUTlFjTEdIcnphK3pmODZrQ2tWbitrNjlIN0pIRzlTM0dzenFn?=
 =?utf-8?B?Q2lCbStyUjFQWGVCUUpsampjc3RvQnBrTnQrWDVsVjlELzJSYWNFOFpFVUN1?=
 =?utf-8?B?YUJhdHREL3FtcXcwMW42cXFZdEd3U1Z3bnhXYm5Gakgxb0lOWnl2eUpJZFhY?=
 =?utf-8?B?TFhDaW5iUElNMDRPdHFCaHpvWm1yTjVwQzcrZkZORml5aDdKMlFETEMxU3l1?=
 =?utf-8?B?VlMzK1pRTHdnaVVZN2tkS1RQNkhtYzJ5amVGN3QrVmR3UHh5UmhHa0FmelBV?=
 =?utf-8?B?WldMbkNDUWpIc211M2RsS3hiYVNtWE9FYVFwelBxTU5icEg3aCtyWXR4N0NV?=
 =?utf-8?B?ZDJ5a2dETmJ6czRNQmxqRWJyVVBBZUUwc0Z2ZDV0MldHbjdJZ2FmaFhEUmVC?=
 =?utf-8?B?QStIMlAwZGh3NWcrU3k2ZkltWU5uMlpaS2Q4eC8yNk5TbEl4dUlidzJGMk5u?=
 =?utf-8?B?QnRWZzFna1M0Nk4yQXZQQ2x2eERoVjhvNnBSaGRqMmVWamo1RGwwcUp4Zlps?=
 =?utf-8?Q?RMuNtMJ83fyQpUUOafBczec=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 1dcf97b7-b08b-4209-61d6-08d9af470dc7
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 12:36:36.0615
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LD9mqebhX8kVGd4RLzMJTrp0aQ+aJYb2JG5l/XKLci65PSRN5MiPbRIPhMuxaZ0Mx6OdhAjd3FPu+7C2GxZmkg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3147
X-OriginatorOrg: citrix.com

On Wed, Nov 24, 2021 at 11:28:18AM +0000, Oleksandr Andrushchenko wrote:
> Hi, Jan!
> 
> On 18.11.21 18:45, Jan Beulich wrote:
> > On 05.11.2021 07:56, Oleksandr Andrushchenko wrote:
> >> --- a/xen/include/xen/vpci.h
> >> +++ b/xen/include/xen/vpci.h
> >> @@ -145,6 +145,10 @@ struct vpci {
> >>               struct vpci_arch_msix_entry arch;
> >>           } entries[];
> >>       } *msix;
> >> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> >> +    /* Virtual SBDF of the device. */
> >> +    pci_sbdf_t guest_sbdf;
> > Would vsbdf perhaps be better in line with things like vpci or vcpu
> > (as well as with the comment here)?
> This is the same as guest_addr...
> @Roger what is your preference here?

I'm fine with using guest_ here, but the comment should be slightly
adjusted to s/Virtual/Guest/ IMO. It's already inline with other
guest_ fields added in the series anyway.

Just to confirm, such guest_sbdf is strictly to be used by
unprivileged domains, dom0 will never get such a virtual PCI bus?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 12:36:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 12:36:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230405.398288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mprWB-0007aN-8G; Wed, 24 Nov 2021 12:36:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230405.398288; Wed, 24 Nov 2021 12:36:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mprWB-0007aG-5J; Wed, 24 Nov 2021 12:36:55 +0000
Received: by outflank-mailman (input) for mailman id 230405;
 Wed, 24 Nov 2021 12:36:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gGpx=QL=epam.com=prvs=1962e93d75=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mprW9-0007DN-8h
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 12:36:53 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 325300ec-4d23-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 13:36:51 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AOBT1BU016750;
 Wed, 24 Nov 2021 12:36:49 GMT
Received: from eur01-he1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2050.outbound.protection.outlook.com [104.47.0.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3chhcws4nb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 24 Nov 2021 12:36:48 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM4PR0301MB2194.eurprd03.prod.outlook.com (2603:10a6:200:50::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.19; Wed, 24 Nov
 2021 12:36:45 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 12:36:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 325300ec-4d23-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fKq0apiR+qrT03aBvmG+3v+siGfn367sKRXc0wwR2rNwmwV+yZmKb5hrHQlTtNwOUQSyrw1x9qXLPYKjYtwj4/0FanGpMIx61A2IFCY7NWR21ZRihMyjcigm4kixAn8n+nyC1zxgiZ9ijhNIoLsBeKs2fsoTyeINGp2JKVMqV8287BbRpRmrJNxz8nQ/xg9otfNF5IFmqkVC7KU4o5mAAQhKi1mJSBtSXC3YE+Tx6Q3iLBxqr4oOECBNxOR4+Feej6mxMRdeNd0F8tIQrlMRaJ/FDquynEhCrdoz53wqCSu3A+wYTSRYrznJkjxHJ+FT+jv4DyUOLIxKcxf9QTJyfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uxy+iibRgZJsxD2FBuwLmyLiiHsB1y7yvYpDYa6T/JU=;
 b=hgWEkuBcOShVTDpw80QlOod09yhqF279/IreCNVHy2pX9DfmgwMO/UaR6rnbJqZlKuakW1LaoAONTkMIEGK/bO32NxNjl1f91/yHVRZY3a03FZ9DYPKN39q7yX0IrkhIMCvk7VAwDIM1TUFHFtnz73XbbSbGvC8Z9DmIjFepVuXPC9r/F1Rc8BP5fzLA/QcKp0VqDPw1wRvxF5pXR4EJxUa5E3Q4GV6w9gi5u07E3s4s5GmzaR1oy6cCTVSGzs8BAYiTWMuho8h6uqwH0qa61sknHA+nUNzYXM+J/11By55rFEJRjZxrOwz169EMUXuVzo95ZHY4vIC7s+OqbDwi4w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uxy+iibRgZJsxD2FBuwLmyLiiHsB1y7yvYpDYa6T/JU=;
 b=nXaeqC88imFi3ytCyr+kGTZRwjCsg0E0NGtRi5JhjL/Ca5+DrxUBOAF37BYpkDSooIGV58t0pEdiQ9ZOgQKu6qwqCNIxY1jLraTH5ydGoiee8KYEYEQYab1415sWRzr7Y5z/Q/tJ2zylLoYOMsVCl4LJVWHTt1fGwuRCKRxB+VqGamzdoyG2Q9ckKjjuxHgotHlTZglkQ9JRKUy1jOkQhcuVkcR0c67ebW+NIFd98DAZBCBz3eO7VpL3TBGqQVDE0r9AhzUGwo0LPB1eaNUqBLsT8bSX8dO/ipg3CKfzJmFLR192E0o+ybFNxwuQKmtxHFKdTcLNVdA1cQcj09ILLg==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>,
        Jan Beulich <jbeulich@suse.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Topic: [PATCH v4 05/11] vpci/header: implement guest BAR register
 handlers
Thread-Index: 
 AQHX0hJK3jTao+VT7Ua3mM5UrGfltKwK1UUAgAADYYCAAAeUgIAAApWAgAAAtgCAAAGSgIAAAk+AgAZuEACAAWUGAIAAAT8A
Date: Wed, 24 Nov 2021 12:36:45 +0000
Message-ID: <338425ac-e2c7-4de5-16ad-7b4e15084382@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-6-andr2000@gmail.com>
 <6aa1a947-cfc8-ec05-e5a5-151d36fc432c@suse.com>
 <713a0443-b2a4-3c29-7072-ba18970fe6f9@epam.com>
 <44a22c22-62aa-d04f-cc43-d7a64cedbe15@suse.com>
 <6c61bd19-228a-fc12-eb64-00c8c5340292@epam.com>
 <ed2a6b5c-6e3a-07ca-a2f0-532a0de10329@suse.com>
 <c3b58e3c-9644-6e74-5ca1-25df33028b71@epam.com>
 <bab431c0-c4b4-09e4-cc3e-32ec8b3f5c7e@suse.com>
 <3192ef9d-c014-df72-91c9-13386bb584e7@epam.com>
 <YZ4w0AoZ6Af/Dnl5@Air-de-Roger>
In-Reply-To: <YZ4w0AoZ6Af/Dnl5@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: edcb555f-5b46-4762-de0e-08d9af4713ac
x-ms-traffictypediagnostic: AM4PR0301MB2194:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM4PR0301MB21944848E59E15D6B2F818B9E7619@AM4PR0301MB2194.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 JSKOxQQ1+oDPor0YpUjGzsT3JHsu4Y50T5bDkyWeQ40u9PQq5AOwvO0TKfh/qQyTa7Ky/vN7d1LZarmli1UTeCj10PsmyASp/qbQ5v1Gmt+zM9DMI8TCwLr7quEVIi5t/D2BK2BtS3c2GBxHKwpMv1E8+2dbZH3sxiRTgCSy1xNk1XBwn1oLPsTvel0fdyC7l61n2/vNKjIBs9CfQx3NmkLTLxqwWfpKuCXMyJgwLaeSALCbFGHxvhnAS4F3uSGnEy75MdoaY3LDnFryLBTxNyHY0Ul+F2T+Z7kt4kIxDbgQFoAPricRHm8GAOCJde8ZYSeotP0rztmgPdUhcwUN/U/3/2bM8i1e0cAr8mx98hJx9dt323V7BwOqIblZ9BjXp743hTvafhNKMCob+O0c6JJ34lMO8zs/RdZHbfWkxy1EYTvGYaJPkCDy+5UJT9PI/rKMmMCTEs8q5uL1aOfHsxCgzYAof7u2QeLE+t0JE2qy+Eh3v4SCxkLccg7Kjdin70rtgOwvSJjJUV8ZoDGoP4AJ0dVWhxxvlbC+AeLlJmLiOu8ZlTw1U3xE5+Updcu782YODtLMZUCifcqqDeHte5ME8HB3Y83f57PAz4EDLGV8/M6LCgimeest3AyOuVmEXLRMkHmPQ2TOxS5dUoEvZLzsnvsSiYN0NjbwW+ctTwM2XS3nK0ez2PCPbi+BGBVdOv7aTWDrt4ypeam985vnvlkQif+gZasrRoES7DexpOuPDe/lmioy46zL/wZvAWXx
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(508600001)(4326008)(107886003)(26005)(8936002)(31696002)(6512007)(71200400001)(38070700005)(86362001)(6506007)(53546011)(5660300002)(2906002)(8676002)(186003)(316002)(122000001)(76116006)(54906003)(6916009)(6486002)(66946007)(66446008)(64756008)(66556008)(66476007)(91956017)(31686004)(7416002)(38100700002)(36756003)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?ZE0yOUZSRmNnUzdUUGRnb3I4a3pNTTlkVHB1dkhVVHhXMXErTStIMW5FMGgr?=
 =?utf-8?B?NlVraVVvRGlpdC9IOFBES2N2Z1F1Vi9NVTRPN2Z4SHJRbUNWZlhwZG9MZjgv?=
 =?utf-8?B?WkJGS1F6MnY0WFdwdW4wdElKVGdMcHZaUlJacmk1MFZFODdTbXlDZGd2WDFL?=
 =?utf-8?B?blNQQktiWHFyNlVEaDRyZlR6NXhpdUt1STNZRnRvR25SUFU5RU0raUhFRk55?=
 =?utf-8?B?dU51MUYvL2lJUlFhNHlYU0RVT25mYmJRMkVaUHZWVEd5N0NiOWdxeHVLOTVJ?=
 =?utf-8?B?Tzg1dkk1U2taUDlRN05KNlJwSmloTjJqb3NnaE9hd3Y0L2hZblhEZ1o1ZE4w?=
 =?utf-8?B?R1MzUC9wa0p4YzhyYlpNdFo0ZFByUHZmTFUrVmg1anlzbG54ejVXKzIwTDdE?=
 =?utf-8?B?dFdnbk0vUVRlODZkM3BETlY5bEhLQUhtcythN0Z3VFdneUQxUXRRNVpaNkpL?=
 =?utf-8?B?Ni94SjhvNGw2dURXRmlkMWYxZVA5U0d1MDArS0ptWDhya2ZTRXZDSGkwVWlx?=
 =?utf-8?B?eWdFcXBGcXlzTkQxL0R4dW5BaVRFL1d4U3h1TFZORzFhbFN5bm9WVXhhWVkv?=
 =?utf-8?B?a1NtWlQrOGlaR2IwdlhtdjVWQnBEUHhXT3daNWZIWWltMHFvVFcwNGhiU0s5?=
 =?utf-8?B?Y3FXck11VElvZVJ0V1dJUEJjaEIzdDgvSEgvRWdVL3VTeld2cy8yUHlmNjlh?=
 =?utf-8?B?aTJIaUdMZ1UrN1JTRmtvMWJOTG4xRlo4WVczdnFHMnVsTWdqaW9lMFcyaVRK?=
 =?utf-8?B?MW5JeUVpOUZiN1JSMERyK216WmFIcnNERlFMU0NLQXNpT2VYYVpwZHBNMlRF?=
 =?utf-8?B?TmhxTDVNUDl0NVBadGFrMlU3anorRHBMZmJ6VHkzZ050MU9RMWl1Z0xtZDNH?=
 =?utf-8?B?bzJtMHNrVzdmdndnay9wZlA5bGl2SVVkWEFOTmFSSHYzcnZjU043bmtjMHVu?=
 =?utf-8?B?R1lnWnJNQnJOMytiWFI3M2JsQ1hEY0VuRGZRdGJnejBHRlppdVIwbkpRYWhw?=
 =?utf-8?B?N3BvZDU2elVpRGh1R3lEZ3ovTk1hUFN2ZVg2ZVQrc0pXUW9zekVDRzFMbm40?=
 =?utf-8?B?S2RtVkw1amFiUitIQUgwN3RsY0pRM2RhbmlpSUdJR0VzVG5ic1NRMC9pNFpO?=
 =?utf-8?B?STF3b3VURmxrSHlSK05pZE9jbWs4TFF2Wi9JbGt6VU9ZNldhNGlSRGlEck5E?=
 =?utf-8?B?cGdjWkE5Y0ZrZDEzUFYxYkdnZk9VNmtGenl4MFBDY2VQVDFkU1dROFNjS2N6?=
 =?utf-8?B?NTVHYmdjZkhub2Zhbi9XN2lyT0JRanJFeGtNRnBXYU5rYXdyNVVWcFM4L1lM?=
 =?utf-8?B?SFl3NDc1dDZWNTZsaGlSOEc2NmFxMVlVSVh5UVlnU1A4YlZGUUdFNDhVUmFo?=
 =?utf-8?B?eDZZYyt2cEhQaGJ3UWxMTWluZTM0akRGaDE3bmR2K2xHdTBBelJrTXFGSnZi?=
 =?utf-8?B?WGVjKzlqbmpibmZBZGFQSVI0a3VWeWRacUMxM25TNWpXa3VmRUVpMFZqeUhi?=
 =?utf-8?B?YURncGxrQ1Zrd3daUWN5UFJVNjNKcDVqdUQ4VzFyT0dLdHVTeWNLTGk4VTFL?=
 =?utf-8?B?bTM3dUFJaGd6THdIem5qSVNuMHMxRWw1Rm1VWm5lcnBDTDVjMVRkQzB4aFha?=
 =?utf-8?B?b2M0WkhKajZPNS8xMkt1Z2cxaE9ta0s2YUQzRkNmMk0zdWZIQTcwVzltRGRU?=
 =?utf-8?B?RStTNi8vajJOWldYdGIwcVBWNmRrSDhHYmp0VTM0ZlBtd0lBUlpZd2Jjb2lO?=
 =?utf-8?B?dG50VjVZbmRGZWRvMUZyUFVFWmt2MGJBNEhLWEMzUm9DOVhWWVB5MW9iU0U3?=
 =?utf-8?B?dmZJa0VBUWltUi8wMFRPdXJXZ21GN204NlJ5UXZEb3h0M1N3a3dBOXUwT3FX?=
 =?utf-8?B?UGc5R1R2bm5OdjdtS0YvVWwxd2RIRlk0RWtrelVvRjQveER2bmwrYldxVld2?=
 =?utf-8?B?NEhzWmNiRkxnSXpiMkpiV3g1WkhLKzFJQmU1RUx1K3N2eWxkVHR5YkNTcUx4?=
 =?utf-8?B?Ukg1Um04bWlMWmx1U2NpOUpKeGo2b3hHeGhqQWx1Z0Q2ZGVuRWRKTG05QVk4?=
 =?utf-8?B?UDVJTFkzNFVzWEtzbGUwd3dacDJDNEdDd1FwVXN4bHlzTDg5eS8rQ3MrM2Fn?=
 =?utf-8?B?M3ZlRTYyRHpzdzZ5NXBJcFV5eGRzbWF4dXVUaThHTjJkaWk1cnptVHZ6OEFl?=
 =?utf-8?B?S0VtME1tSkNrTnA0eE9QSXVEQ1FqTzhsR2dIWGsyTG1QR1ZQdGtFaEdFYXRl?=
 =?utf-8?B?RlRxbmw2NXRLOHZydXhOYWRhWHNmT2FGU0hPV21vMVUvRHdJaU9ocVdpVm1t?=
 =?utf-8?B?V0pqeGNjZy9iK2Q5Rk0yYmF2RnR4SmE4Qjl3K0xkamVQSVROTm1ZQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C2270E5732264B4689A0F44EC36653DE@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: edcb555f-5b46-4762-de0e-08d9af4713ac
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 12:36:45.5309
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: eR2Fn6eCSjvtleIGSEH6lol868zcu0qPy6i7UTiVMGlq91jboaWMmF/N+Z5+KdsVkex6rMEICL9cOgA0VeXQ17feHEu/2WJG1SpB6e0tmByrOfTxvwhShO1oPULSpUDS
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0301MB2194
X-Proofpoint-ORIG-GUID: 9z82KFhniKy-ySXhh4FJNfGAyHCcNoZz
X-Proofpoint-GUID: 9z82KFhniKy-ySXhh4FJNfGAyHCcNoZz
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-24_04,2021-11-24_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0
 mlxscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 mlxlogscore=999
 adultscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111240070

DQoNCk9uIDI0LjExLjIxIDE0OjMyLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBUdWUs
IE5vdiAyMywgMjAyMSBhdCAwMzoxNDoyN1BNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+IEhpLCBSb2dlciENCj4+DQo+PiBPbiAxOS4xMS4yMSAxNTowMiwgSmFuIEJl
dWxpY2ggd3JvdGU6DQo+Pj4gT24gMTkuMTEuMjAyMSAxMzo1NCwgT2xla3NhbmRyIEFuZHJ1c2hj
aGVua28gd3JvdGU6DQo+Pj4+IE9uIDE5LjExLjIxIDE0OjQ5LCBKYW4gQmV1bGljaCB3cm90ZToN
Cj4+Pj4+IE9uIDE5LjExLjIwMjEgMTM6NDYsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3Rl
Og0KPj4+Pj4+IE9uIDE5LjExLjIxIDE0OjM3LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+Pj4g
T24gMTkuMTEuMjAyMSAxMzoxMCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+
Pj4+PiBPbiAxOS4xMS4yMSAxMzo1OCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+Pj4+Pj4gT24g
MDUuMTEuMjAyMSAwNzo1NiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+Pj4+Pj4+
Pj4+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+Pj4+Pj4+Pj4gKysrIGIveGVu
L2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4+Pj4+Pj4+PiBAQCAtNDA4LDYgKzQwOCw0OCBAQCBz
dGF0aWMgdm9pZCBiYXJfd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVk
IGludCByZWcsDQo+Pj4+Pj4+Pj4+ICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKHBkZXYtPnNi
ZGYsIHJlZywgdmFsKTsNCj4+Pj4+Pj4+Pj4gICAgICAgfQ0KPj4+Pj4+Pj4+PiAgICAgICANCj4+
Pj4+Pj4+Pj4gK3N0YXRpYyB2b2lkIGd1ZXN0X2Jhcl93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2Rl
diAqcGRldiwgdW5zaWduZWQgaW50IHJlZywNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50MzJfdCB2YWwsIHZvaWQgKmRhdGEpDQo+Pj4+Pj4+Pj4+ICt7DQo+Pj4+
Pj4+Pj4+ICsgICAgc3RydWN0IHZwY2lfYmFyICpiYXIgPSBkYXRhOw0KPj4+Pj4+Pj4+PiArICAg
IGJvb2wgaGkgPSBmYWxzZTsNCj4+Pj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4+PiArICAgIGlmICggYmFy
LT50eXBlID09IFZQQ0lfQkFSX01FTTY0X0hJICkNCj4+Pj4+Pj4+Pj4gKyAgICB7DQo+Pj4+Pj4+
Pj4+ICsgICAgICAgIEFTU0VSVChyZWcgPiBQQ0lfQkFTRV9BRERSRVNTXzApOw0KPj4+Pj4+Pj4+
PiArICAgICAgICBiYXItLTsNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgaGkgPSB0cnVlOw0KPj4+Pj4+
Pj4+PiArICAgIH0NCj4+Pj4+Pj4+Pj4gKyAgICBlbHNlDQo+Pj4+Pj4+Pj4+ICsgICAgew0KPj4+
Pj4+Pj4+PiArICAgICAgICB2YWwgJj0gUENJX0JBU0VfQUREUkVTU19NRU1fTUFTSzsNCj4+Pj4+
Pj4+Pj4gKyAgICAgICAgdmFsIHw9IGJhci0+dHlwZSA9PSBWUENJX0JBUl9NRU0zMiA/IFBDSV9C
QVNFX0FERFJFU1NfTUVNX1RZUEVfMzINCj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA6IFBDSV9CQVNFX0FERFJFU1NfTUVNX1RZUEVfNjQ7DQo+
Pj4+Pj4+Pj4+ICsgICAgICAgIHZhbCB8PSBiYXItPnByZWZldGNoYWJsZSA/IFBDSV9CQVNFX0FE
RFJFU1NfTUVNX1BSRUZFVENIIDogMDsNCj4+Pj4+Pj4+Pj4gKyAgICB9DQo+Pj4+Pj4+Pj4+ICsN
Cj4+Pj4+Pj4+Pj4gKyAgICBiYXItPmd1ZXN0X2FkZHIgJj0gfigweGZmZmZmZmZmdWxsIDw8ICho
aSA/IDMyIDogMCkpOw0KPj4+Pj4+Pj4+PiArICAgIGJhci0+Z3Vlc3RfYWRkciB8PSAodWludDY0
X3QpdmFsIDw8IChoaSA/IDMyIDogMCk7DQo+Pj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+Pj4gKyAgICBi
YXItPmd1ZXN0X2FkZHIgJj0gfihiYXItPnNpemUgLSAxKSB8IH5QQ0lfQkFTRV9BRERSRVNTX01F
TV9NQVNLOw0KPj4+Pj4+Pj4+PiArfQ0KPj4+Pj4+Pj4+PiArDQo+Pj4+Pj4+Pj4+ICtzdGF0aWMg
dWludDMyX3QgZ3Vlc3RfYmFyX3JlYWQoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2ln
bmVkIGludCByZWcsDQo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dm9pZCAqZGF0YSkNCj4+Pj4+Pj4+Pj4gK3sNCj4+Pj4+Pj4+Pj4gKyAgICBjb25zdCBzdHJ1Y3Qg
dnBjaV9iYXIgKmJhciA9IGRhdGE7DQo+Pj4+Pj4+Pj4+ICsgICAgYm9vbCBoaSA9IGZhbHNlOw0K
Pj4+Pj4+Pj4+PiArDQo+Pj4+Pj4+Pj4+ICsgICAgaWYgKCBiYXItPnR5cGUgPT0gVlBDSV9CQVJf
TUVNNjRfSEkgKQ0KPj4+Pj4+Pj4+PiArICAgIHsNCj4+Pj4+Pj4+Pj4gKyAgICAgICAgQVNTRVJU
KHJlZyA+IFBDSV9CQVNFX0FERFJFU1NfMCk7DQo+Pj4+Pj4+Pj4+ICsgICAgICAgIGJhci0tOw0K
Pj4+Pj4+Pj4+PiArICAgICAgICBoaSA9IHRydWU7DQo+Pj4+Pj4+Pj4+ICsgICAgfQ0KPj4+Pj4+
Pj4+PiArDQo+Pj4+Pj4+Pj4+ICsgICAgcmV0dXJuIGJhci0+Z3Vlc3RfYWRkciA+PiAoaGkgPyAz
MiA6IDApOw0KPj4+Pj4+Pj4+IEknbSBhZnJhaWQgImd1ZXN0X2FkZHIiIHRoZW4gaXNuJ3QgdGhl
IGJlc3QgbmFtZTsgbWF5YmUgImd1ZXN0X3ZhbCI/DQo+Pj4+Pj4+Pj4gVGhpcyB3b3VsZCBtYWtl
IG1vcmUgb2J2aW91cyB0aGF0IHRoZXJlIGlzIGEgbWVhbmluZ2Z1bCBkaWZmZXJlbmNlDQo+Pj4+
Pj4+Pj4gZnJvbSAiYWRkciIgYmVzaWRlcyB0aGUgZ3Vlc3QgdnMgaG9zdCBhc3BlY3QuDQo+Pj4+
Pj4+PiBJIGFtIG5vdCBzdXJlIEkgY2FuIGFncmVlIGhlcmU6DQo+Pj4+Pj4+PiBiYXItPmFkZHIg
YW5kIGJhci0+Z3Vlc3RfYWRkciBtYWtlIGl0IGNsZWFyIHdoYXQgYXJlIHRoZXNlIHdoaWxlDQo+
Pj4+Pj4+PiBiYXItPmFkZHIgYW5kIGJhci0+Z3Vlc3RfdmFsIHdvdWxkIG1ha2Ugc29tZW9uZSBn
byBsb29rIGZvcg0KPj4+Pj4+Pj4gYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHRo
YXQgdmFsIGlzIGZvci4NCj4+Pj4+Pj4gRmVlbCBmcmVlIHRvIHJlcGxhY2UgInZhbCIgd2l0aCBz
b21ldGhpbmcgbW9yZSBzdWl0YWJsZS4gImd1ZXN0X2JhciINCj4+Pj4+Pj4gbWF5YmU/IFRoZSB2
YWx1ZSBkZWZpbml0ZWx5IGlzIG5vdCBhbiBhZGRyZXNzLCBzbyAiYWRkciIgc2VlbXMNCj4+Pj4+
Pj4gaW5hcHByb3ByaWF0ZSAvIG1pc2xlYWRpbmcgdG8gbWUuDQo+Pj4+Pj4gVGhpcyBpcyBhIGd1
ZXN0J3MgdmlldyBvbiB0aGUgQkFSJ3MgYWRkcmVzcy4gU28gdG8gbWUgaXQgaXMgc3RpbGwgZ3Vl
c3RfYWRkcg0KPj4+Pj4gSXQncyBhIGd1ZXN0J3MgdmlldyBvbiB0aGUgQkFSLCBub3QganVzdCB0
aGUgYWRkcmVzcy4gT3IgZWxzZSB5b3UgY291bGRuJ3QNCj4+Pj4+IHNpbXBseSByZXR1cm4gdGhl
IHZhbHVlIGhlcmUgd2l0aG91dCBmb2xkaW5nIGluIHRoZSBjb3JyZWN0IGxvdyBiaXRzLg0KPj4+
PiBJIGFncmVlIHdpdGggdGhpcyB0aGlzIHJlc3BlY3QgYXMgaXQgaXMgaW5kZWVkIGFkZHJlc3Mg
KyBsb3dlciBiaXRzLg0KPj4+PiBIb3cgYWJvdXQgZ3Vlc3RfYmFyX3ZhbCB0aGVuPyBTbyBpdCBy
ZWZsZWN0cyBpdHMgbmF0dXJlLCBlLmcuIHRoZSB2YWx1ZQ0KPj4+PiBvZiB0aGUgQkFSIGFzIHNl
ZW4gYnkgdGhlIGd1ZXN0Lg0KPj4+IEdldHMgYSBsaXR0bGUgbG9uZ2lzaCBmb3IgbXkgdGFzdGUu
IEkgZm9yIG9uZSB3b3VsZG4ndCBtaW5kIGl0IGJlIGp1c3QNCj4+PiAiZ3Vlc3QiLiBJbiB0aGUg
ZW5kIFJvZ2VyIGhhcyB0aGUgZmluYWwgc2F5IGhlcmUgYW55d2F5Lg0KPj4gV2hhdCBpcyB5b3Vy
IHByZWZlcmVuY2Ugb24gbmFtaW5nIGhlcmU/DQo+PiAxLiBndWVzdF9hZGRyDQo+PiAyLiBndWVz
dF92YWwNCj4+IDMuIGd1ZXN0X2Jhcl92YWwNCj4+IDQuIGd1ZXN0DQo+IEkgdGhpbmsgZ3Vlc3Rf
cmVnIHdvdWxkIGJlIGZpbmU/DQo+DQo+IE9yIGFsdGVybmF0aXZlbHkgeW91IGNvdWxkIG1ha2Ug
aXQgYSBndWVzdCBhZGRyZXNzIGJ5IGRyb3BwaW5nIHRoZSBsb3cNCj4gYml0cyBhbmQgYWRkaW5n
IHRoZW0gaW4gdGhlIHJlYWQgaGFuZGxlciBpbnN0ZWFkIG9mIGRvaW5nIGl0IGluIHRoZQ0KPiB3
cml0ZSBoYW5kbGVyLg0KU28sIGxldCBpdCBiZSAiZ3Vlc3RfcmVnIiB0aGVuDQo+DQo+IFRoYW5r
cywgUm9nZXIuDQpUaGFuayB5b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 12:43:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 12:43:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230418.398299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mprcC-0000qn-W8; Wed, 24 Nov 2021 12:43:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230418.398299; Wed, 24 Nov 2021 12:43:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mprcC-0000qg-T8; Wed, 24 Nov 2021 12:43:08 +0000
Received: by outflank-mailman (input) for mailman id 230418;
 Wed, 24 Nov 2021 12:43:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gGpx=QL=epam.com=prvs=1962e93d75=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mprcB-0000qH-Cw
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 12:43:07 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1173b1b7-4d24-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 13:43:06 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AOBSeZ4005299;
 Wed, 24 Nov 2021 12:43:03 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2112.outbound.protection.outlook.com [104.47.18.112])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3chjq98u17-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 24 Nov 2021 12:43:03 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB6243.eurprd03.prod.outlook.com (2603:10a6:20b:144::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Wed, 24 Nov
 2021 12:43:01 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%8]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 12:43:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1173b1b7-4d24-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=itAE2mvjKETm+U5948U2MUikKt3qaWcq12dVFY98fNtWd+IeV7hG1lTd1M0lZBYVsK2JBahJLkz9T8iLgsFVNtzc19lbq13VwfczKwMp7tHVpvcLl7pIpWzcCnbpm31J4I29Pgotr2gXRjJB9XV7DNg6urBVpI0CTskINaa7sLfG4c+T7XPNPlUs97HwSVf/0e7Ua84VZdqGWrroj74UrPLClKRvzQT3rBXPRO5+UGxXHCRgA3qoNLORmiTFEHT40foNxF8w78ZV0Jpa9idO0fF6ACpiUi/arf/kJ5erLgz6cGj4IghnFw+uRv/ChLnOXRn7AyxIdipkWidtwv3njA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N7CrNLBJcWpdz23VcauZEF/pG8wXvclqtHNAiT3FZ0E=;
 b=CQg/PBa3ujQyIwldk8gTBzYoiL+pM0p40by76pOOFOMyzrVqr9jwR1i2noMKjJn3/rAyGqwRtE6OmRUq8s1ACHbsjn5xqBf63U6yB4/H7lAqiHcfJIdhAm1jYSwEi76EXtOTGSMKTG/EaY1qvAZAh8BpM5y3NlXdMuK6uUXvqvw1FgCmNt+zOu2r/XgOJjx0FEyt/0xEQ7kM6F9pOVetpwY3uIXP0+tgH/e9msqznt6aWTEGB2azHc7cmS+DIa9OHojy18YCMsFq0RbCObtRA0BlUi2A8Ni6X8jcdLT4BKzKIC2eb+0SrfkOIn6phLoRSkqMC+aKEHKPPZmCG2ta9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=N7CrNLBJcWpdz23VcauZEF/pG8wXvclqtHNAiT3FZ0E=;
 b=hxKeweyPj22jYQBIx3EOkYnecMXDBQiMAO0OSFp9sYB9ndJ1z+wguWuucC7qe60qxgWbQDz8v0ZDsIHA3fqL8tlxUqKbe45GPGx3xy29HctPwHhkvM9SSc9fz3CuUuogQLtysVK73EriKppnXP+vozZkZT956Pi2d7KhPt5RLmBpuHOhLtbK6z5D9x3nyB9EP2OEi6K2nuQja41+f/mYqsdbJMCOMjuzNbcimFO4yxop8ESLyr1OqAoNaZntPS9VdqaaKuSsw6Q5FReZJRU5DcF/Miiz8m3+n9zCVtNRKEFGxFebKjkJxZ9YAt3tuYG30rBMQjMqxmsffZosg6bQUw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com" <george.dunlap@citrix.com>,
        "paul@xen.org"
	<paul@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Rahul Singh
	<rahul.singh@arm.com>,
        "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 10/11] vpci: add initial support for virtual PCI bus
 topology
Thread-Topic: [PATCH v4 10/11] vpci: add initial support for virtual PCI bus
 topology
Thread-Index: AQHX0hJNBZwMmlboFUG58hx6442EAqwJkx2AgAkVfoCAABMSAIAAAc4A
Date: Wed, 24 Nov 2021 12:43:01 +0000
Message-ID: <a661f3a6-a479-4a98-3326-593ab38f0263@epam.com>
References: <20211105065629.940943-1-andr2000@gmail.com>
 <20211105065629.940943-11-andr2000@gmail.com>
 <217a5684-34af-e08c-2d70-563857ec5595@suse.com>
 <6c6951dc-2abe-e180-1442-e68097e59d22@epam.com>
 <YZ4x0ANosX3hPfSh@Air-de-Roger>
In-Reply-To: <YZ4x0ANosX3hPfSh@Air-de-Roger>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5c1671bc-dbae-4b23-d7d6-08d9af47f37f
x-ms-traffictypediagnostic: AM0PR03MB6243:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB62437835E0E6DA8CA1D523A3E7619@AM0PR03MB6243.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 +70sgpEw99ahCMTL8ewLQHmqopprmBVMKR7FG7qL/Qgl7jv1TlP1fRNBCc9WVjhAacRJl0z0sBxv66S8LG6dj5bFnm0DRIWCbMpvKb6HVEd2pnEjSmlhIG8rEMU4jBLCT7o7HIsnidIgCF5Y15q/oQ2IC+bAVPPQyZcIxFdsQwWKkl1fT0b1S0njHlGLoIhxRkFQjcxEEV5Dt7DkqYjJ2v6YILaezozObCnLNXXOfnvuQVaeT+Bdyp3EyLdGCK28yXimd6aQBOhGSaz/L8wPCRElPG/E8e/6Dj8FjsZjwJa1i6bNwGst6OiTSNuTO5KN6X/thL3YAVCFe0lCwqIrt3CXxsd/GkMJ0WLHO5NQxNEB8x3AClPHK28dAMthK5vhMnohwcDf4rPqaMKWUCFK4l5z3X9UTv859zv+isgfkcXzfkzJsimpIzQam2q6s7UyxMdePKjUEFlypZwim/57Lt5l81hXkcfitid4l3oj4+OXRpVQW6G0lfyB7xHsde5HnAn5InAbIlod3Bul2RtRfKBJHBPYUK6elHx/hRpdOd0Aw5qBV9d6jrOaqzCOspsyBxpmD/oxZIRJv9dCN92li4s+AArLlkO+dXpqAouycsVLgrAkdIJQeIY831c8YiIhg6SPno03oDTVWxB3vUC1eSsmBAprzw/gVmNqcxukRMNZXXQqmUsHCAFfbcVeC7WYAfhpQze21ktNmPpplZEBsgleVaYtUvnTfYUJqiNUuuRjB4B6mTHAJ2XGcjX4LMGB
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(31696002)(122000001)(8936002)(38100700002)(5660300002)(26005)(54906003)(6486002)(186003)(36756003)(316002)(7416002)(4326008)(91956017)(8676002)(31686004)(66476007)(66446008)(66946007)(66556008)(64756008)(2906002)(6512007)(76116006)(508600001)(6916009)(71200400001)(6506007)(53546011)(86362001)(38070700005)(83380400001)(2616005)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?VkcyZmZEVC9FN2gwYWRUblZlMXhRbmdQdVA5QnFBQ0VzU3ZtYWFEc1pLdDVN?=
 =?utf-8?B?ZTJzeVBZdzFqcXRmRUZaNFJJalhtcEFpWjRiU0lnUEFJTkl5Nk1LSzFocC9z?=
 =?utf-8?B?Q0pndElGQzdiWE5QaHdJd1NPbGpPZ3I1dmYrOGZGdDh5YlB1OWRNZGp0NW9D?=
 =?utf-8?B?VU80elNjUXJsbFZILzFQZG00NklIVnBOakdHK1pqc001T1Izc0VIV1oxS2Ey?=
 =?utf-8?B?N2JNejI5b0tWVUxuM3o3ZXlZbzNKeXpBMHRXalRxK2pwdHJkR2lwL1Z0UGRR?=
 =?utf-8?B?UUFjOFFWbzhndmc1VnBzSkh6cTQ0c0srNnlweEFQbGxkUUJ1YkhlTjVkVldN?=
 =?utf-8?B?dE82S0FpYjVHTUdBRG1PNEJBUFluU0xEN2ZXRCtveGxmdjd2UTErMXdJNlJr?=
 =?utf-8?B?UCtGcGhlQlgwcS9yRGZ0L1ZVQ1JMd1ZiQWViQkw2N3BOQ1E3Z1FpaDc5QS9G?=
 =?utf-8?B?WGJLbFVvelo0S3BMM0lRQ2VIZWdVK2N4cWRxa25hSzU0TFVRdEIwQjlpbXA1?=
 =?utf-8?B?NTUzaTNFQUN4NjRya29SVU9RaVZqTEJHN1IzNElNL1ZrNkZ6MXZXWGVTMWRO?=
 =?utf-8?B?ZU1QelA2Mzd5bk9XYjhJOHFRN1RzVWZaMXB1ZWsyNmw2SzVJcUxRZ1ZnT3Za?=
 =?utf-8?B?TW52aUhRcmo2TU94cUliZitRMTN5SFU5dWlKYlhUTnpzSGVodkYxQjZISnNB?=
 =?utf-8?B?MEY3dXpuSDBCay9BckVIY1pRcitZb2JrMlFEaEJ5Si96ZWdsRmZsV0I3em9L?=
 =?utf-8?B?emxRRzZ2KzRpTmp0cU00YVRXL3hWMVpEM1Qxai9iSjBsYVQyOGZ6Sy95QUhO?=
 =?utf-8?B?NHVFd3M3Vmh6d0c0NUlQeWRaL0ZCcDhwSUpGdGw4V2psRnpRYmFZb2p5R1J2?=
 =?utf-8?B?Z3BETDhxSW10UFI5RFU1cGdxYzNKNjN6ak11d2lDNktZenBuOFBCQUx2Y2tC?=
 =?utf-8?B?ZjdMaEZzVGZZeDREWHJDd1JRQk5BcG0vUnpzKzJsSFJMci9pU1RTQ1RFN0Fr?=
 =?utf-8?B?NmpQdWpLZFhCMXFtTDB4UDJmSlY4Z2pjcThTTlJ4ZFlSYVIvYU9iQWRTNTh6?=
 =?utf-8?B?MGpWT1huU25yYmVZbHJGZnUxU0ZmdWs4cVkrbHRjL2Y0Z0psdDRRV3FONjV4?=
 =?utf-8?B?cDAzVFRXL2pDTUdZU2F3MkVJTVo2VldBdW1FYTY3Rmc0eGZSUUVucFh5ZUQv?=
 =?utf-8?B?S0RKTGNJZ0RPWTN3UTVMbGw5Ylh4VnBERmdvRG5QUXFHbVlXRkRjbjBaTmhN?=
 =?utf-8?B?OEdKOU5yeVNWcGdRczdBcUNaNUY4b1BBUEJyaVkrQ01mR1E1dkd1Y2NyVjEx?=
 =?utf-8?B?bVZjWnNrNXFZWnhLRVk1ejdJbU0zWEJBSkNQcUIyV1R1cUxFclExL2FOdkNK?=
 =?utf-8?B?VDk0OUlwOE1GczJkMWFvR3ZPMXVIWnYvVFZYQlpWdnJrc3pTWkVuZExhdlFI?=
 =?utf-8?B?VG5wQU1HdXJ0QWNHNEpERURNYjVQcVJuQVVtZzJHM1JOMEJoWnIwWWdjWHFK?=
 =?utf-8?B?aHRETkVkVWgzMXFzcEo5d2czanAzcHFUQjRDalU3QlFqWlhwTXZUc0R6d21F?=
 =?utf-8?B?ZmZteGhoaFc4UkxtbFBORHRQTWhQc0NHRmNOOVNhRHpTZDNySE1nT1duLzBJ?=
 =?utf-8?B?QThwMU1tdlNiajloSmhHb0x3dkN6VzJEZVJadjQwU0lwNlluWVRiODBPeXZX?=
 =?utf-8?B?L250RXBBTC94bkY3bUVYa3dhbjgrQ1AvMkNOVmo3bFhRaGcwN1lPOTNQMHBN?=
 =?utf-8?B?N2RLeGdGejIzbkwxQVNReTlnNFo3Rjh1dURYNlFOVXZkTGxxbXpDZUZsNGZj?=
 =?utf-8?B?RzFxSmg1MEFveCtvVG8yM2lZa29WVG1pRmlNekNxbk1lRjAvMnEvRTYvQ0Jo?=
 =?utf-8?B?d2FwMHVzMUJkS1FIWCtUZU9GQ3YyaS96eVJXNEN5TG9HSDVFczB4QVFONjZi?=
 =?utf-8?B?RG1IWlZpRHp1dVkrdEFjQ0s2WXRyejhwMDMzZXFvZjYzMjllclhRVHVPQlMr?=
 =?utf-8?B?RHdUeGEydjJjNExENS9kQkRaenZuS2JhZ1V1ZEVxQUJwRStuVHVtVXplNXBO?=
 =?utf-8?B?T3hCOHl4SjFRNzZBR3VRY0R0Z0wrbktndWJNck9oV09td2tzUG93MngwRXZR?=
 =?utf-8?B?ZHE4V09VTlVyb1VQKzVSRUIrM0Fnc3ZIa3Mva0FKKzQ2citSKzFYMUhIK2tJ?=
 =?utf-8?B?cFVIbGxBbzlyVEtUWkFYMEltTHNLZlJaWklpRWQwN05FYXJjMjUrb1Q0clYw?=
 =?utf-8?B?QnY0Q1VCOHFzWCtNZnY2TkdmSGFhajdudmdvMGY4SFlRVC8zcHN1NDhDN01o?=
 =?utf-8?B?aXVDS0RiSlhMUWJaUks5NVUxL0tXSzdQVkNEV2FtL0dDdVdOUWpydz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <48B8556218D19949AA010E3D3ECF3333@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c1671bc-dbae-4b23-d7d6-08d9af47f37f
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 12:43:01.1301
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: CKn0Xx6eH8qvWM6R5UpPwWpkcfcqBJqVonXJqiMM6aCVNFNf5jXrug7cwYyW3Zwh0hD9aeiD8+OVYjTlzDTkohlfs3kzehPmKmrKye53/QD/1SWJI/8SIRJp8zT2BD3Q
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6243
X-Proofpoint-GUID: 07KWPNsqDYr9aJcM8yoaagKpmsrBsHyA
X-Proofpoint-ORIG-GUID: 07KWPNsqDYr9aJcM8yoaagKpmsrBsHyA
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-24_04,2021-11-24_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 phishscore=0
 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0
 lowpriorityscore=0 mlxlogscore=941 adultscore=0 clxscore=1015
 suspectscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111240071

DQoNCk9uIDI0LjExLjIxIDE0OjM2LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQs
IE5vdiAyNCwgMjAyMSBhdCAxMToyODoxOEFNICswMDAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r
byB3cm90ZToNCj4+IEhpLCBKYW4hDQo+Pg0KPj4gT24gMTguMTEuMjEgMTg6NDUsIEphbiBCZXVs
aWNoIHdyb3RlOg0KPj4+IE9uIDA1LjExLjIwMjEgMDc6NTYsIE9sZWtzYW5kciBBbmRydXNoY2hl
bmtvIHdyb3RlOg0KPj4+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQo+Pj4+ICsrKyBi
L3hlbi9pbmNsdWRlL3hlbi92cGNpLmgNCj4+Pj4gQEAgLTE0NSw2ICsxNDUsMTAgQEAgc3RydWN0
IHZwY2kgew0KPj4+PiAgICAgICAgICAgICAgICBzdHJ1Y3QgdnBjaV9hcmNoX21zaXhfZW50cnkg
YXJjaDsNCj4+Pj4gICAgICAgICAgICB9IGVudHJpZXNbXTsNCj4+Pj4gICAgICAgIH0gKm1zaXg7
DQo+Pj4+ICsjaWZkZWYgQ09ORklHX0hBU19WUENJX0dVRVNUX1NVUFBPUlQNCj4+Pj4gKyAgICAv
KiBWaXJ0dWFsIFNCREYgb2YgdGhlIGRldmljZS4gKi8NCj4+Pj4gKyAgICBwY2lfc2JkZl90IGd1
ZXN0X3NiZGY7DQo+Pj4gV291bGQgdnNiZGYgcGVyaGFwcyBiZSBiZXR0ZXIgaW4gbGluZSB3aXRo
IHRoaW5ncyBsaWtlIHZwY2kgb3IgdmNwdQ0KPj4+IChhcyB3ZWxsIGFzIHdpdGggdGhlIGNvbW1l
bnQgaGVyZSk/DQo+PiBUaGlzIGlzIHRoZSBzYW1lIGFzIGd1ZXN0X2FkZHIuLi4NCj4+IEBSb2dl
ciB3aGF0IGlzIHlvdXIgcHJlZmVyZW5jZSBoZXJlPw0KPiBJJ20gZmluZSB3aXRoIHVzaW5nIGd1
ZXN0XyBoZXJlLCBidXQgdGhlIGNvbW1lbnQgc2hvdWxkIGJlIHNsaWdodGx5DQo+IGFkanVzdGVk
IHRvIHMvVmlydHVhbC9HdWVzdC8gSU1PLiBJdCdzIGFscmVhZHkgaW5saW5lIHdpdGggb3RoZXIN
Cj4gZ3Vlc3RfIGZpZWxkcyBhZGRlZCBpbiB0aGUgc2VyaWVzIGFueXdheS4NCk9rLCBJIHdpbGwg
dXBkYXRlIHRoZSBjb21tZW50DQo+DQo+IEp1c3QgdG8gY29uZmlybSwgc3VjaCBndWVzdF9zYmRm
IGlzIHN0cmljdGx5IHRvIGJlIHVzZWQgYnkNCj4gdW5wcml2aWxlZ2VkIGRvbWFpbnMsIGRvbTAg
d2lsbCBuZXZlciBnZXQgc3VjaCBhIHZpcnR1YWwgUENJIGJ1cz8NClJpZ2h0LCBmb3IgdW5wcml2
aWxlZ2VkIGRvbWFpbnMgZG9tYWlucyBvbmx5DQo+DQo+IFRoYW5rcywgUm9nZXIuDQpUaGFuayB5
b3UsDQpPbGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 13:12:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 13:12:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230426.398310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mps4S-0004AD-HD; Wed, 24 Nov 2021 13:12:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230426.398310; Wed, 24 Nov 2021 13:12:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mps4S-0004A6-EK; Wed, 24 Nov 2021 13:12:20 +0000
Received: by outflank-mailman (input) for mailman id 230426;
 Wed, 24 Nov 2021 13:12:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lasZ=QL=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1mps4R-00049z-Oc
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 13:12:19 +0000
Received: from MTA-13-4.privateemail.com (mta-13-4.privateemail.com
 [198.54.127.109]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25015e81-4d28-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 14:12:17 +0100 (CET)
Received: from mta-13.privateemail.com (localhost [127.0.0.1])
 by mta-13.privateemail.com (Postfix) with ESMTP id 29DB318000B1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 08:12:15 -0500 (EST)
Received: from mail-yb1-f175.google.com (unknown [10.20.151.240])
 by mta-13.privateemail.com (Postfix) with ESMTPA id F040A18000A2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 08:12:14 -0500 (EST)
Received: by mail-yb1-f175.google.com with SMTP id j2so7102280ybg.9
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 05:12:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25015e81-4d28-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=tklengyel.com;
	s=default; t=1637759535;
	bh=j9iqeZ1RcITXqsk/P/39M774nS7TsodgPIFyvWoc3YA=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=nTKVxcbDMqi6L34qnxSlEaZ82H06e01LESQXR0hDZr55sg1w2Xpr8jPECmCesK/L5
	 7su8TKMgIgiu/CdRyhlpuYEWuMmhCAAHLhdSZsY7gypzPdcRNVSgiBxOu+29NDKx0H
	 9Bhv0rcS8pWDy0sPgxCFZpbebbz8mEkvUuIw+VxIpYpi53sUvd83BdV8Yeb6CUsiZB
	 GTvaGMptvebB0+GH4aOM8hD4tdu/QqpRWQwOa9kwMd+7r3ub8TTQKzXeCd+McDjdIX
	 ORvMNY0z2gOftr0CiWqbuE4onPumCh+JBLG75Sf3Ih0QQq3iFGgP4M7QT1zuqIv6OI
	 km3jfJyLW+jBQ==
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=tklengyel.com;
	s=default; t=1637759535;
	bh=j9iqeZ1RcITXqsk/P/39M774nS7TsodgPIFyvWoc3YA=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=nTKVxcbDMqi6L34qnxSlEaZ82H06e01LESQXR0hDZr55sg1w2Xpr8jPECmCesK/L5
	 7su8TKMgIgiu/CdRyhlpuYEWuMmhCAAHLhdSZsY7gypzPdcRNVSgiBxOu+29NDKx0H
	 9Bhv0rcS8pWDy0sPgxCFZpbebbz8mEkvUuIw+VxIpYpi53sUvd83BdV8Yeb6CUsiZB
	 GTvaGMptvebB0+GH4aOM8hD4tdu/QqpRWQwOa9kwMd+7r3ub8TTQKzXeCd+McDjdIX
	 ORvMNY0z2gOftr0CiWqbuE4onPumCh+JBLG75Sf3Ih0QQq3iFGgP4M7QT1zuqIv6OI
	 km3jfJyLW+jBQ==
X-Gm-Message-State: AOAM531sKTl+z2HJimBNW4KF+i2VjCfgrMXaO2vYLLFro15w4mZ19kpH
	oTKn0iYRTT4R41IzftuL5UvuJCdWRDIEXgHeZ08=
X-Google-Smtp-Source: ABdhPJz+2MhfcNTLMHgIeHy9k7JvbaolyyHy2tTggHtcItEQQBZdEvPHxha+w7q1ClmzwGp5ewjzsV84/2YcTjgpWfQ=
X-Received: by 2002:a25:d895:: with SMTP id p143mr15651203ybg.513.1637759534134;
 Wed, 24 Nov 2021 05:12:14 -0800 (PST)
MIME-Version: 1.0
References: <OS3P286MB1995471B56ADDC423A4EDC9FB3609@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
 <ad9abcb1-0a17-644b-5338-8c305e9ce4b4@suse.com> <OS3P286MB19953CFD3B3D4B2B71261DD9B3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
 <1b6ae1da-a9be-2e37-e993-05f1bb095f80@suse.com> <OS3P286MB1995A04EFEE65E1FBC735FDFB3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
In-Reply-To: <OS3P286MB1995A04EFEE65E1FBC735FDFB3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Wed, 24 Nov 2021 08:12:02 -0500
X-Gmail-Original-Message-ID: <CABfawhmsNf3fEw6nheSR40UpHKuX39AqxU0EG+FEaQUVY+gVog@mail.gmail.com>
Message-ID: <CABfawhmsNf3fEw6nheSR40UpHKuX39AqxU0EG+FEaQUVY+gVog@mail.gmail.com>
Subject: Re: About support for memory event on AMD CPUs
To: Untitled YAN <yanluyi2010@hotmail.com>
Cc: Jan Beulich <jbeulich@suse.com>, Alexandru Isaila <aisaila@bitdefender.com>, 
	Petre Pircalabu <ppircalabu@bitdefender.com>, Xen-devel <xen-devel@lists.xenproject.org>
Content-Type: multipart/alternative; boundary="000000000000427a3f05d1889bd4"
X-Virus-Scanned: ClamAV using ClamSMTP

--000000000000427a3f05d1889bd4
Content-Type: text/plain; charset="UTF-8"

Altp2m is only available on Intel, mem_access (restricting permissions) is
only available on Intel and ARM. No technical reason for it not working on
AMD, it just hasn't been implemented in Xen.

Tamas

On Wed, Nov 24, 2021, 4:44 AM Untitled YAN <yanluyi2010@hotmail.com> wrote:

> Original email:
>
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Wednesday, November 24, 2021 17:27
> To: Untitled YAN <yanluyi2010@hotmail.com>
> Cc: tamas@tklengyel.com <tamas@tklengyel.com>; aisaila@bitdefender.com <
> aisaila@bitdefender.com>; ppircalabu@bitdefender.com <
> ppircalabu@bitdefender.com>; xen-devel@lists.xenproject.org <
> xen-devel@lists.xenproject.org>
> Subject: Re: About support for memory event on AMD CPUs
>
> > On 24.11.2021 10:23, Untitled YAN wrote:
> > > Original email:
> > >
> > > From: Jan Beulich <jbeulich@suse.com>
> > > Sent: Wednesday, November 24, 2021 15:54
> > > To: YAN Untitled <yanluyi2010@hotmail.com>
> > > Cc: tamas@tklengyel.com <tamas@tklengyel.com>; aisaila@bitdefender.com
> <aisaila@bitdefender.com>; ppircalabu@bitdefender.com <
> ppircalabu@bitdefender.com>; xen-devel@lists.xenproject.org
> <xen-devel@lists.x enproject.>org>
> > > Subject: Re: About support for memory event on AMD CPUs
> > >
> > >> On 23.11.2021 18:14, YAN Untitled wrote:
> > >>> Dear developers,
> > >>>
> > >>> Short version: is memory event supported on AMD CPUs or is it going
> to be
> > >>> supported?
> > >>>
> > >>> Long version:
> > >>>
> > >>> Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x),
> 64-bit
> > >>> Debian 11 Dom0.
> > >>>
> > >>> What I am trying to accomplish: register a **memory event** handler,
> so that
> > >>> I can capture all memory accesses within a specific range issued by
> any thread,
> > >>> or all memory accesses within any range issued by a specific thread.
> > >>>
> > >>> What I got instead: an error from LibVMI saying
> > >>> "xc_hvm_set_mem_access failed with code: -1".
> > >>>
> > >>> Some investigation: by inspecting the source code of LibVMI, I find
> the direct
> > >>> cause is one of the libxc functions, 1) xc_set_mem_access or
> > >>> 2) xc_altp2m_set_mem_access, returned error code -1.
> > >>>
> > >>> After some searching, I found someone else having a similar problem
> [1]. I also
> > >>> noted LibVMI says:
> > >>>
> > >>>> Currently only the Xen Hypervisor provides these features,
> > >>>> and some of these are specifically only available on Intel CPUs
> > >>>
> > >>> However, I can't find the exact confirmation for the availability of
> memory
> > >>> event on AMD CPUs from https://wiki.xenproject.org.
> > >>
> > >> Aiui underlying what you want is altp2m, which presently depends (in
> > >> the hypervisor) on EPT being available (and in use for the guest in
> > >> question).
> > >>
> > >> Jan
> > >
> > > Dear Jan,
> > >
> > > Thanks for your reply. I really appreciate the information. After some
> > > searching with the keyword "EPT" I found [1]. So I checked on dom0 with
> > > "xl dmesg | grep HAP", which says:
> > >
> > >> (XEN) HVM: Hardware Assisted Paging (HAP) detected
> > >> (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
> > >
> > > And the guest is an HVM guest running Debian 10 with kernel v4.16
> built from
> > > source. Most of the configuration of the guest is generated by
> virt-manager.
> > > The "xl list -l" shows that there is no explicit configuration for
> EPT, RVI or
> > > HAP, but it does say the "type" is "hvm".
> >
> > HAP is the term covering EPT on the Intel side and NPT for AMD.
> >
> > Jan
>
> Dear Jan,
>
> Yeah that's why I wanted to confirm if the HAP is enabled for the guest -
> it
> turns out it is enabled but for some reason, xc_altp2m_set_mem_access
> failed.
> I am trying to replicate my setup on an Intel machine to find out if it's a
> configuration problem. Still don't know if it's implemented for AMD but
> thanks
> for your help and information.
>
>
> Untitled YAN
>

--000000000000427a3f05d1889bd4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div>Altp2m is only available on Intel, mem_access (restr=
icting permissions) is only available on Intel and ARM. No technical reason=
 for it not working on AMD, it just hasn&#39;t been implemented in Xen.</di=
v><div dir=3D"auto"><br></div><div dir=3D"auto">Tamas<br><br><div class=3D"=
gmail_quote" dir=3D"auto"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Nov=
 24, 2021, 4:44 AM Untitled YAN &lt;<a href=3D"mailto:yanluyi2010@hotmail.c=
om">yanluyi2010@hotmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-le=
ft:1ex">Original email:<br>
<br>
From: Jan Beulich &lt;<a href=3D"mailto:jbeulich@suse.com" target=3D"_blank=
" rel=3D"noreferrer">jbeulich@suse.com</a>&gt;<br>
Sent: Wednesday, November 24, 2021 17:27<br>
To: Untitled YAN &lt;<a href=3D"mailto:yanluyi2010@hotmail.com" target=3D"_=
blank" rel=3D"noreferrer">yanluyi2010@hotmail.com</a>&gt;<br>
Cc: <a href=3D"mailto:tamas@tklengyel.com" target=3D"_blank" rel=3D"norefer=
rer">tamas@tklengyel.com</a> &lt;<a href=3D"mailto:tamas@tklengyel.com" tar=
get=3D"_blank" rel=3D"noreferrer">tamas@tklengyel.com</a>&gt;; <a href=3D"m=
ailto:aisaila@bitdefender.com" target=3D"_blank" rel=3D"noreferrer">aisaila=
@bitdefender.com</a> &lt;<a href=3D"mailto:aisaila@bitdefender.com" target=
=3D"_blank" rel=3D"noreferrer">aisaila@bitdefender.com</a>&gt;; <a href=3D"=
mailto:ppircalabu@bitdefender.com" target=3D"_blank" rel=3D"noreferrer">ppi=
rcalabu@bitdefender.com</a> &lt;<a href=3D"mailto:ppircalabu@bitdefender.co=
m" target=3D"_blank" rel=3D"noreferrer">ppircalabu@bitdefender.com</a>&gt;;=
 <a href=3D"mailto:xen-devel@lists.xenproject.org" target=3D"_blank" rel=3D=
"noreferrer">xen-devel@lists.xenproject.org</a> &lt;<a href=3D"mailto:xen-d=
evel@lists.xenproject.org" target=3D"_blank" rel=3D"noreferrer">xen-devel@l=
ists.xenproject.org</a>&gt;<br>
Subject: Re: About support for memory event on AMD CPUs <br>
=C2=A0<br>
&gt; On 24.11.2021 10:23, Untitled YAN wrote:<br>
&gt; &gt; Original email:<br>
&gt; &gt; <br>
&gt; &gt; From: Jan Beulich &lt;<a href=3D"mailto:jbeulich@suse.com" target=
=3D"_blank" rel=3D"noreferrer">jbeulich@suse.com</a>&gt;<br>
&gt; &gt; Sent: Wednesday, November 24, 2021 15:54<br>
&gt; &gt; To: YAN Untitled &lt;<a href=3D"mailto:yanluyi2010@hotmail.com" t=
arget=3D"_blank" rel=3D"noreferrer">yanluyi2010@hotmail.com</a>&gt;<br>
&gt; &gt; Cc: <a href=3D"mailto:tamas@tklengyel.com" target=3D"_blank" rel=
=3D"noreferrer">tamas@tklengyel.com</a> &lt;<a href=3D"mailto:tamas@tklengy=
el.com" target=3D"_blank" rel=3D"noreferrer">tamas@tklengyel.com</a>&gt;; <=
a href=3D"mailto:aisaila@bitdefender.com" target=3D"_blank" rel=3D"noreferr=
er">aisaila@bitdefender.com</a> &lt;<a href=3D"mailto:aisaila@bitdefender.c=
om" target=3D"_blank" rel=3D"noreferrer">aisaila@bitdefender.com</a>&gt;; <=
a href=3D"mailto:ppircalabu@bitdefender.com" target=3D"_blank" rel=3D"noref=
errer">ppircalabu@bitdefender.com</a> &lt;<a href=3D"mailto:ppircalabu@bitd=
efender.com" target=3D"_blank" rel=3D"noreferrer">ppircalabu@bitdefender.co=
m</a>&gt;; <a href=3D"mailto:xen-devel@lists.xenproject.org" target=3D"_bla=
nk" rel=3D"noreferrer">xen-devel@lists.xenproject.org</a> &lt;xen-devel@lis=
ts.x enproject.&gt;org&gt;<br>
&gt; &gt; Subject: Re: About support for memory event on AMD CPUs <br>
&gt; &gt; =C2=A0<br>
&gt; &gt;&gt; On 23.11.2021 18:14, YAN Untitled wrote:<br>
&gt; &gt;&gt;&gt; Dear developers,<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Short version: is memory event supported on AMD CPUs or i=
s it going to be<br>
&gt; &gt;&gt;&gt; supported?<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Long version:<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU**=
 (5950x), 64-bit<br>
&gt; &gt;&gt;&gt; Debian 11 Dom0.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; What I am trying to accomplish: register a **memory event=
** handler, so that<br>
&gt; &gt;&gt;&gt; I can capture all memory accesses within a specific range=
 issued by any thread,<br>
&gt; &gt;&gt;&gt; or all memory accesses within any range issued by a speci=
fic thread.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; What I got instead: an error from LibVMI saying<br>
&gt; &gt;&gt;&gt; &quot;xc_hvm_set_mem_access failed with code: -1&quot;.<b=
r>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Some investigation: by inspecting the source code of LibV=
MI, I find the direct<br>
&gt; &gt;&gt;&gt; cause is one of the libxc functions, 1) xc_set_mem_access=
 or<br>
&gt; &gt;&gt;&gt; 2) xc_altp2m_set_mem_access, returned error code -1.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; After some searching, I found someone else having a simil=
ar problem [1]. I also<br>
&gt; &gt;&gt;&gt; noted LibVMI says:<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; Currently only the Xen Hypervisor provides these feat=
ures,<br>
&gt; &gt;&gt;&gt;&gt; and some of these are specifically only available on =
Intel CPUs<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; However, I can&#39;t find the exact confirmation for the =
availability of memory<br>
&gt; &gt;&gt;&gt; event on AMD CPUs from <a href=3D"https://wiki.xenproject=
.org" rel=3D"noreferrer noreferrer" target=3D"_blank">https://wiki.xenproje=
ct.org</a>.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Aiui underlying what you want is altp2m, which presently depe=
nds (in<br>
&gt; &gt;&gt; the hypervisor) on EPT being available (and in use for the gu=
est in<br>
&gt; &gt;&gt; question).<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Jan<br>
&gt; &gt; <br>
&gt; &gt; Dear Jan,<br>
&gt; &gt; <br>
&gt; &gt; Thanks for your reply. I really appreciate the information. After=
 some<br>
&gt; &gt; searching with the keyword &quot;EPT&quot; I found [1]. So I chec=
ked on dom0 with<br>
&gt; &gt; &quot;xl dmesg | grep HAP&quot;, which says:<br>
&gt; &gt; <br>
&gt; &gt;&gt; (XEN) HVM: Hardware Assisted Paging (HAP) detected<br>
&gt; &gt;&gt; (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB<br>
&gt; &gt; <br>
&gt; &gt; And the guest is an HVM guest running Debian 10 with kernel v4.16=
 built from<br>
&gt; &gt; source. Most of the configuration of the guest is generated by vi=
rt-manager.<br>
&gt; &gt; The &quot;xl list -l&quot; shows that there is no explicit config=
uration for EPT, RVI or<br>
&gt; &gt; HAP, but it does say the &quot;type&quot; is &quot;hvm&quot;.<br>
&gt; <br>
&gt; HAP is the term covering EPT on the Intel side and NPT for AMD.<br>
&gt; <br>
&gt; Jan<br>
<br>
Dear Jan,<br>
<br>
Yeah that&#39;s why I wanted to confirm if the HAP is enabled for the guest=
 - it<br>
turns out it is enabled but for some reason, xc_altp2m_set_mem_access faile=
d.<br>
I am trying to replicate my setup on an Intel machine to find out if it&#39=
;s a<br>
configuration problem. Still don&#39;t know if it&#39;s implemented for AMD=
 but thanks<br>
for your help and information.<br>
<br>
<br>
Untitled YAN<br>
</blockquote></div></div></div>

--000000000000427a3f05d1889bd4--


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 13:32:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 13:32:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230432.398322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpsNd-0006Uc-6n; Wed, 24 Nov 2021 13:32:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230432.398322; Wed, 24 Nov 2021 13:32:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpsNd-0006UV-3c; Wed, 24 Nov 2021 13:32:09 +0000
Received: by outflank-mailman (input) for mailman id 230432;
 Wed, 24 Nov 2021 13:32:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RjDV=QL=arm.com=valentin.schneider@srs-se1.protection.inumbo.net>)
 id 1mpsNc-0006U9-63
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 13:32:08 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id e7902e60-4d2a-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 14:32:01 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D840A1042;
 Wed, 24 Nov 2021 05:32:05 -0800 (PST)
Received: from e113632-lin (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D945D3F73B;
 Wed, 24 Nov 2021 05:32:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7902e60-4d2a-11ec-a9d2-d9f7a1cc8784
From: Valentin Schneider <valentin.schneider@arm.com>
To: "Longpeng \(Mike\, Cloud Infrastructure Service Product Dept.\)" <longpeng2@huawei.com>, Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: "linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Gonglei
 \(Arei\)" <arei.gonglei@huawei.com>, "x86\@kernel.org" <x86@kernel.org>, "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Peter
 Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@kernel.org>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>
Subject: RE: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be brought up again.
In-Reply-To: <408748bfefde4a1b963382d372792661@huawei.com>
References: <20211122154714.xaoxok3fpk5bgznz@linutronix.de> <87r1b6d9kl.mognet@arm.com> <408748bfefde4a1b963382d372792661@huawei.com>
Date: Wed, 24 Nov 2021 13:31:58 +0000
Message-ID: <87lf1dd6i9.mognet@arm.com>
MIME-Version: 1.0
Content-Type: text/plain

On 24/11/21 00:19, Longpeng (Mike, Cloud Infrastructure Service Product Dept.) wrote:
>> -----Original Message-----
>> From: Valentin Schneider [mailto:valentin.schneider@arm.com]
>> For my own education, this is talking about *host* CPU hotplug, right?
>>
>
> It's about the *guest* CPU hotplug.
>
> 1. Users in Primary VM:
> Split out vcpuX (offline from Primary VM) for Enclave VM
>
> 2. Hypervisor:
> Set a flag for vcpuX, all requests from Primary VM to bring up vcpuX
> will be ignore.
>
> 3. Users in Primary VM:
> echo 1 > .../vcpuX/online would fail and leave the CPU state of vcpuX
> in CPU_UP_PREPARE.
>
> 4. Users in Primary VM terminate the Enclave VM:
> Hypervisor should clear the flag (set in step 2) of vcpuX, so the vcpuX
> can continue to receive requests.
>
> 5. Users in Primary VM:
> Try to online the vcpuX again (expect success), but it's always failed.
>

If I followed the rabbit hole in the right direction, this is about:
ff8a4d3e3a99 ("nitro_enclaves: Add logic for setting an enclave vCPU")

So there's a 1:1 CPU:vCPU mapping and an Enclave carves a chunk out of the
Primary VM...

Thanks for the detailed explanation!


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 13:45:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 13:45:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230438.398332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpsZu-0007y4-BX; Wed, 24 Nov 2021 13:44:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230438.398332; Wed, 24 Nov 2021 13:44:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpsZu-0007xx-8Z; Wed, 24 Nov 2021 13:44:50 +0000
Received: by outflank-mailman (input) for mailman id 230438;
 Wed, 24 Nov 2021 13:44:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XpRf=QL=hotmail.com=yanluyi2010@srs-se1.protection.inumbo.net>)
 id 1mpsZs-0007xr-BU
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 13:44:48 +0000
Received: from JPN01-TYC-obe.outbound.protection.outlook.com
 (mail-tycjpn01olkn20805.outbound.protection.outlook.com
 [2a01:111:f403:7010::805])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id abfdefda-4d2c-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 14:44:42 +0100 (CET)
Received: from OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:1a2::6)
 by OSZP286MB2315.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:185::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Wed, 24 Nov
 2021 13:44:42 +0000
Received: from OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
 ([fe80::9c31:6396:f5d2:35e6]) by OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
 ([fe80::9c31:6396:f5d2:35e6%9]) with mapi id 15.20.4713.026; Wed, 24 Nov 2021
 13:44:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abfdefda-4d2c-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RG9pcXMboDeLdiNI0DbagK4sv1S93AK4C3xiprZvigygmAAAGgg8eNYnqmQ7zt6o8LgOPud/gYoF7BkD570q+kJJgGV3Fphcfpx/P0464hVdrCeL/hvZwy+fDaSIBZbQUYOCG6bG1pO3M/c0IjLD5MV7jUxr5TcGipQVSeCsDT2e8PfEJh54+AUs93Yd4kUPCYeSSo3xbSgZx84XJn9qp/LIiPwHIUJuM0fmsS4UUKn74Rvlf82zwCF4SaqWg3+vhDmPBCKcnIdBJpcez4aOI/9QqsRSWImjUSq1xqJPVeGM+mC9G2mMNIjf1iMU9CQzgqfvdmLcs9bo2oHS/rc8hQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=il5+ogFAcdQMC7nu3Iu4mtSU5dxI8anSX8Bhz37xE0c=;
 b=mJYgoPgSeUwttDsXta0X4Wx3herDlgd3RJ4B/ACuZsyHV0wKBZyYt4T48M+AozH1nNmBzhML44vLxiJy6LvTsMIGRlzo7jg3E02OP+xUcdCeUBN++9YGVpIBFCXdjT+a8vD83sowYR24WmTZj8PmcHZw7cnDbmEhphfUS/fts0dmCJ8kZQCIqEzYEjNx6JHDyqBWaYuYVaeSZhLV6bsJl0UWycVhD/vAO4QZyrG7pCJmm1K+RFewqdjnJh1Or8VEl2NvCBp/OMa+oHDv59wQTp9B3dFsOEuH6zdzOiLnMr51XoZ0qvMx+a81hnlvq0vboKqv3m/XO0hzqXJ6yfLg7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=il5+ogFAcdQMC7nu3Iu4mtSU5dxI8anSX8Bhz37xE0c=;
 b=tg7ikw1d4330Fal4z0KmxLCiaMDGzfIYAJZO47ybpmJiz9+D4hHvEizWhBZMKj3XXmv8/0yyUaN9zpyjNb2WHBiUQFNJSDNNO4Kwc7nOcquf4uz91fmuPAD5UFCmFCkDh4NSLJeR1mlwuoYyNV+50WiGQVy/qqxaWpfbbTaAi6T7XtUIEzNv9TWNjOZh15huWtDAT04Pts5UCvKFWYcvZadxpjZYh6u5mULJR09SHrgmyRw59Ic7SeD3XthDIIsm1sdjKHMT1h5d1DDCHW/VP+KB6id3+lOBGRmk0gRySet6Y26UpKm3KFC0HZlWSerPbojvxFNn5m0cGiHb8oxIPw==
From: Untitled YAN <yanluyi2010@hotmail.com>
To: Tamas K Lengyel <tamas@tklengyel.com>
CC: Jan Beulich <jbeulich@suse.com>, Alexandru Isaila
	<aisaila@bitdefender.com>, Petre Pircalabu <ppircalabu@bitdefender.com>,
	Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: About support for memory event on AMD CPUs
Thread-Topic: About support for memory event on AMD CPUs
Thread-Index:
 AQHX4Ivyto+Oc0SSQ0aRZryw/8JAG6wST82AgAAO3bCAAAtgAIAAATxXgAA9XwCAAAS3GA==
Date: Wed, 24 Nov 2021 13:44:42 +0000
Message-ID:
 <OS3P286MB1995A96AD806302762C863EFB3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
References:
 <OS3P286MB1995471B56ADDC423A4EDC9FB3609@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
 <ad9abcb1-0a17-644b-5338-8c305e9ce4b4@suse.com>
 <OS3P286MB19953CFD3B3D4B2B71261DD9B3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
 <1b6ae1da-a9be-2e37-e993-05f1bb095f80@suse.com>
 <OS3P286MB1995A04EFEE65E1FBC735FDFB3619@OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM>
 <CABfawhmsNf3fEw6nheSR40UpHKuX39AqxU0EG+FEaQUVY+gVog@mail.gmail.com>
In-Reply-To:
 <CABfawhmsNf3fEw6nheSR40UpHKuX39AqxU0EG+FEaQUVY+gVog@mail.gmail.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
suggested_attachment_session_id: e24b8c69-a59a-21e3-b83d-bb67fda0c2d9
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [vBJ5H74RjN+SXbhgQsn5twIHp4HyUV8Wp0ZRr6dFP0U=]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c5d67b31-89fc-4193-dcf0-08d9af50919e
x-ms-traffictypediagnostic: OSZP286MB2315:
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 TUOOZdp6txGMJ/cVVK8UYCzWeG/f+4VXPZQKb7oa1T02vMBjvsjOvQ7UklUNu7bOEv+3IzTEK7tCR0aXT98Kz8WZl9u/q0Kw3njlijRUixAjHOPN0M+Kqb/+nVO2WY2QYq9Sna4EpEEtPkYTHDTC2zv0L6kpOAbQllAAvoB5bBZuP7jQ+wnWyzuiR6DDPP2XoYk2h9EBOH8n42w0BYWyVQQFAvper81j4ZL1eOdICFeAVb74fn0SQTbkn7k/xJS14IR1sqE4sLbbB91Xxn0SHuc/yo3d14YU1S7xhEJC/C7NjeKvWo3gyZWK/WtQg7NXCoizDZHX4RmiXliMVSYqeF2cx5GvH6zAT8hGexNlMH925DE6fxMOVMvwZjGE5AaBq3sqSdnvnI3ExAbALeXQVt2jFwEIkZ1tPrN1kmAsnixR5UocM0qKFKOwt5xb0pSi+Flyh+zRCXJqJ54rMji0lRLnHJPCPVwQy4BRBq288qfrCVp4bOqESYBxa+BT8uckHKmu2ARkGVX4PxQQqPhPQnPZaTqvvyoXSY+hkFPgLCdYgvXJ+T/syT95A8Y3ibJA6vL2pKJqsMmZmWFO2HmDGc16raxyX44pFX4Ub9wVSDxRDJr3UxWX4EFATxwoWJ0h
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 sOYTksWoC43R3h/DoGrDikA58DvhYA+QirNQpCO/aMs9TiT8TGP4a7a3psYKYJ4xwsZG6YpTZd1m9CuwJayoJ6saoCKYHrlmgFAap8Cwa1s3O75z+VLCqUiWIkrQnbncdAPX9qpHnrX0egu9HYTaWWHq+WCfEAtRIM79+++3qktph61IOQyq1FuQDa4a5oKPKd4pQNC27cHfPtYDPxBdq6iJFrdz0KCE1A8N2p4ZzV1hsxRg74w8W/OnMnrC7O+4WN/Y6mTeJ1zVhzPNXTOlLgL3YLMyE3/Vonx6TWxY6c4ZjQ/r/Jw1D6aNgXCLZpNVx1XUbxE6TcwGz9SvWPzBQ1H90w5yL85ZhLz0lHgoA5JYtn5AgJQPZmG5dc5Il9xkBIL16BKuaceQeiFPvy8ISxkfJ5SvW6FtZzJHxKkxX9w0SLlE8Gbka4FC5SnUeKkii3fOXfPwWMgzhNbUBcOSUi2UN/A5kIyEy/GlD3rwyRyHc01zMpcgCUX47kprvB7qF+2MWcmOWI4IKeN75XhO/E9fbnPtX+FHS3KnrEROl3ZSW2QDnwVrQALBbXGUM5iW8KHD0C8slT5niyydMUu1iHeGooj3oSA5jePLWVJDSKQWT7AAzMJLnhJ7dMcVlHKO6j1cmy3bgaxVMRp2VHJrbUTHk/gO31RoseCicpeoliJtvaszRQFZtBey9rWAjvwNkSHZrkMQ1yzRMg3YIdNHfw==
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-18f16.templateTenant
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB1995.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: c5d67b31-89fc-4193-dcf0-08d9af50919e
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 13:44:42.4211
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZP286MB2315

Original email:=0A=
=0A=
From: Tamas K Lengyel <tamas@tklengyel.com>=0A=
Sent: Wednesday, November 24, 2021 21:12=0A=
To: Untitled YAN <yanluyi2010@hotmail.com>=0A=
Cc: Jan Beulich <jbeulich@suse.com>; Alexandru Isaila <aisaila@bitdefender.=
com>; Petre Pircalabu <ppircalabu@bitdefender.com>; Xen-devel <xen-devel@li=
sts.xenproject.org>=0A=
Subject: Re: About support for memory event on AMD CPUs =0A=
=A0=0A=
> Altp2m is only available on Intel, mem_access (restricting permissions) i=
s only available on Intel and ARM. No technical reason for it not working o=
n AMD, it just hasn't been implemented in Xen.=0A=
> =0A=
> Tamas=0A=
> =0A=
> On Wed, Nov 24, 2021, 4:44 AM Untitled YAN <yanluyi2010@hotmail.com> wrot=
e:=0A=
> Original email:=0A=
> =0A=
> From: Jan Beulich <jbeulich@suse.com>=0A=
> Sent: Wednesday, November 24, 2021 17:27=0A=
> To: Untitled YAN <yanluyi2010@hotmail.com>=0A=
> Cc: tamas@tklengyel.com <tamas@tklengyel.com>; aisaila@bitdefender.com <a=
isaila@bitdefender.com>; ppircalabu@bitdefender.com <ppircalabu@bitdefender=
.com>; xen-devel@lists.xenproject.org <xen-devel@lists.xenproject.> org>=0A=
> Subject: Re: About support for memory event on AMD CPUs =0A=
> =A0=0A=
> > On 24.11.2021 10:23, Untitled YAN wrote:=0A=
> > > Original email:=0A=
> > > =0A=
> > > From: Jan Beulich <jbeulich@suse.com>=0A=
> > > Sent: Wednesday, November 24, 2021 15:54=0A=
> > > To: YAN Untitled <yanluyi2010@hotmail.com>=0A=
> > > Cc: tamas@tklengyel.com <tamas@tklengyel.com>; aisaila@bitdefender.co=
m <aisaila@bitdefender.com>; ppircalabu@bitdefender.com <ppircalabu@bitdefe=
nder.com>; xen-devel@lists.xenproject.org <xen-devel@lists.x > enproject.>o=
rg>=0A=
> > > Subject: Re: About support for memory event on AMD CPUs =0A=
> > > =A0=0A=
> > >> On 23.11.2021 18:14, YAN Untitled wrote:=0A=
> > >>> Dear developers,=0A=
> > >>>=0A=
> > >>> Short version: is memory event supported on AMD CPUs or is it going=
 to be=0A=
> > >>> supported?=0A=
> > >>>=0A=
> > >>> Long version:=0A=
> > >>>=0A=
> > >>> Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), =
64-bit=0A=
> > >>> Debian 11 Dom0.=0A=
> > >>>=0A=
> > >>> What I am trying to accomplish: register a **memory event** handler=
, so that=0A=
> > >>> I can capture all memory accesses within a specific range issued by=
 any thread,=0A=
> > >>> or all memory accesses within any range issued by a specific thread=
.=0A=
> > >>>=0A=
> > >>> What I got instead: an error from LibVMI saying=0A=
> > >>> "xc_hvm_set_mem_access failed with code: -1".=0A=
> > >>>=0A=
> > >>> Some investigation: by inspecting the source code of LibVMI, I find=
 the direct=0A=
> > >>> cause is one of the libxc functions, 1) xc_set_mem_access or=0A=
> > >>> 2) xc_altp2m_set_mem_access, returned error code -1.=0A=
> > >>>=0A=
> > >>> After some searching, I found someone else having a similar problem=
 [1]. I also=0A=
> > >>> noted LibVMI says:=0A=
> > >>>=0A=
> > >>>> Currently only the Xen Hypervisor provides these features,=0A=
> > >>>> and some of these are specifically only available on Intel CPUs=0A=
> > >>>=0A=
> > >>> However, I can't find the exact confirmation for the availability o=
f memory=0A=
> > >>> event on AMD CPUs from https://wiki.xenproject.org.=0A=
> > >>=0A=
> > >> Aiui underlying what you want is altp2m, which presently depends (in=
=0A=
> > >> the hypervisor) on EPT being available (and in use for the guest in=
=0A=
> > >> question).=0A=
> > >>=0A=
> > >> Jan=0A=
> > > =0A=
> > > Dear Jan,=0A=
> > > =0A=
> > > Thanks for your reply. I really appreciate the information. After som=
e=0A=
> > > searching with the keyword "EPT" I found [1]. So I checked on dom0 wi=
th=0A=
> > > "xl dmesg | grep HAP", which says:=0A=
> > > =0A=
> > >> (XEN) HVM: Hardware Assisted Paging (HAP) detected=0A=
> > >> (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB=0A=
> > > =0A=
> > > And the guest is an HVM guest running Debian 10 with kernel v4.16 bui=
lt from=0A=
> > > source. Most of the configuration of the guest is generated by virt-m=
anager.=0A=
> > > The "xl list -l" shows that there is no explicit configuration for EP=
T, RVI or=0A=
> > > HAP, but it does say the "type" is "hvm".=0A=
> > =0A=
> > HAP is the term covering EPT on the Intel side and NPT for AMD.=0A=
> > =0A=
> > Jan=0A=
> =0A=
> Dear Jan,=0A=
> =0A=
> Yeah that's why I wanted to confirm if the HAP is enabled for the guest -=
 it=0A=
> turns out it is enabled but for some reason, xc_altp2m_set_mem_access fai=
led.=0A=
> I am trying to replicate my setup on an Intel machine to find out if it's=
 a=0A=
> configuration problem. Still don't know if it's implemented for AMD but t=
hanks=0A=
> for your help and information.=0A=
> =0A=
> =0A=
> Untitled YAN=0A=
=0A=
Dear Tamas,=0A=
=0A=
Thanks for your clear answer. So I will watch the update note, or maybe I w=
ill=0A=
try to get an Intel machine for my experiments. Thanks!=0A=
=0A=
=0A=
Untitled YAN=0A=


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 14:08:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 14:08:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230446.398344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpswG-00024E-Ba; Wed, 24 Nov 2021 14:07:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230446.398344; Wed, 24 Nov 2021 14:07:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpswG-000247-8G; Wed, 24 Nov 2021 14:07:56 +0000
Received: by outflank-mailman (input) for mailman id 230446;
 Wed, 24 Nov 2021 14:07:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GIsr=QL=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mpswE-000241-BH
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 14:07:54 +0000
Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com
 [2607:f8b0:4864:20::1029])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e9e3f156-4d2f-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 15:07:53 +0100 (CET)
Received: by mail-pj1-x1029.google.com with SMTP id
 cq22-20020a17090af99600b001a9550a17a5so5165468pjb.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 06:07:53 -0800 (PST)
Received: from ?IPV6:2404:f801:0:5:8000::50b? ([2404:f801:9000:18:efec::50b])
 by smtp.gmail.com with ESMTPSA id
 g5sm4694513pjt.15.2021.11.24.06.07.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Nov 2021 06:07:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9e3f156-4d2f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:subject:content-language:to
         :cc:references:from:in-reply-to:content-transfer-encoding;
        bh=syp/sAx1WBqbnIsfqrbBbnU7pLQsZBgXpQdqrXqrl38=;
        b=iecLeo1CCg8zt+sCXUOh364DhRhAV/Ar/v0CTPnIw92trVIyH4qvDLyLNdAiBMXH4T
         y+0BfWQ61+rOjIQbdKy9swqEYsMOae4eIFV1313ZNnDT1Lbv+aQO2IbYTdrbWOvmPEQu
         KlSl5yD8YP31w1z8kq/HaASDcSvcnIEnzDtL5YgUuswZfXpPxYfhz71mw789p88NP4MI
         rs74u4gMJh8nMwRq/chOwPKzLo9eH4bM7b5lm+1o85GlnoBeIlU+U2qG0z31u0KruJlF
         tO4ST89te9GQQvoWvoAHX2ms15JvNlQ1QJuyCl7nZWEUc1aTjDEBcKPhZNHdIMGNmbVg
         pbeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=syp/sAx1WBqbnIsfqrbBbnU7pLQsZBgXpQdqrXqrl38=;
        b=u3urqOlgbpz11IeFi9rX5Mtf8H6LuTwPQNgCO4wNFlyTBLabGHNqolzgTkJJWaxiQs
         /4OkZk0ONVC08J85ss8fDgiLkj6RxCyxJk9q8NuBDHYEfwTmEI210qhLdgU1XYR2RAEz
         5z+N5LDMGDhfGQw45boLJGcmpaoxDoh9XpaFCBgR6jVDQXSS2P+Bok9Q7hISaimjzoKu
         PA1HSSHfILoEkpehiUR0c9ZyK/d6/sk4x/GpLDiN0LWTyVVbS9GDHLO+cekhAaCjrfH2
         suEa4FRGeFhcBn8jJ3Jj7KE7XTgXuAnY4HDeLlg2TqeO8aZpj2DOBBPTlbIBJoRzj+cE
         7dFw==
X-Gm-Message-State: AOAM532/q9rPXUKpIqAX4HbA0hUSNg5+J8wwul+isudW4wewYU6Oncbm
	Zjv35Aoi7us1jKNTZs6lhRU=
X-Google-Smtp-Source: ABdhPJxcvy1hEASS+ae7P9Zr40fMPVIge5ooMequB2zH2fg19BpSdiMXmZRAmprhgB5OLHpbaYCO2A==
X-Received: by 2002:a17:902:b581:b0:144:e601:de7 with SMTP id a1-20020a170902b58100b00144e6010de7mr19054433pls.71.1637762871786;
        Wed, 24 Nov 2021 06:07:51 -0800 (PST)
Message-ID: <887d57bc-8b1a-48ab-be72-17144791334a@gmail.com>
Date: Wed, 24 Nov 2021 22:07:40 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH V2 1/6] Swiotlb: Add Swiotlb bounce buffer remap function
 for HV IVM
Content-Language: en-US
To: "Michael Kelley (LINUX)" <mikelley@microsoft.com>,
 Christoph Hellwig <hch@lst.de>
Cc: "iommu@lists.linux-foundation.org" <iommu@lists.linux-foundation.org>,
 "linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
 "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
 vkuznets <vkuznets@redhat.com>, "brijesh.singh@amd.com"
 <brijesh.singh@amd.com>, "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
 "parri.andrea@gmail.com" <parri.andrea@gmail.com>,
 "dave.hansen@intel.com" <dave.hansen@intel.com>,
 "tglx@linutronix.de" <tglx@linutronix.de>,
 "mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
 "dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
 "x86@kernel.org" <x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>,
 "luto@kernel.org" <luto@kernel.org>,
 "peterz@infradead.org" <peterz@infradead.org>,
 "jgross@suse.com" <jgross@suse.com>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 "boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>,
 KY Srinivasan <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>,
 Stephen Hemminger <sthemmin@microsoft.com>,
 "wei.liu@kernel.org" <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
 "joro@8bytes.org" <joro@8bytes.org>, "will@kernel.org" <will@kernel.org>,
 "davem@davemloft.net" <davem@davemloft.net>,
 "kuba@kernel.org" <kuba@kernel.org>, "jejb@linux.ibm.com"
 <jejb@linux.ibm.com>, "martin.petersen@oracle.com"
 <martin.petersen@oracle.com>, "hch@lst.de" <hch@lst.de>,
 "m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
 "robin.murphy@arm.com" <robin.murphy@arm.com>,
 Tianyu Lan <Tianyu.Lan@microsoft.com>,
 "thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20211123143039.331929-1-ltykernel@gmail.com>
 <20211123143039.331929-2-ltykernel@gmail.com>
 <MWHPR21MB1593169593AD833A91DF553FD7609@MWHPR21MB1593.namprd21.prod.outlook.com>
From: Tianyu Lan <ltykernel@gmail.com>
In-Reply-To: <MWHPR21MB1593169593AD833A91DF553FD7609@MWHPR21MB1593.namprd21.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Michael:
	Thanks for your review.

On 11/24/2021 1:15 AM, Michael Kelley (LINUX) wrote:
>> @@ -172,7 +200,14 @@ void __init swiotlb_update_mem_attributes(void)
>>   	vaddr = phys_to_virt(mem->start);
>>   	bytes = PAGE_ALIGN(mem->nslabs << IO_TLB_SHIFT);
>>   	set_memory_decrypted((unsigned long)vaddr, bytes >> PAGE_SHIFT);
>> -	memset(vaddr, 0, bytes);
>> +
>> +	mem->vaddr = swiotlb_mem_remap(mem, bytes);
>> +	if (!mem->vaddr) {
>> +		pr_err("Fail to remap swiotlb mem.\n");
>> +		return;
>> +	}
>> +
>> +	memset(mem->vaddr, 0, bytes);
>>   }


> In the error case, do you want to leave mem->vaddr as NULL?  Or is it
> better to leave it as the virtual address of mem-start?  Your code leaves it
> as NULL.
> 
> The interaction between swiotlb_update_mem_attributes() and the helper
> function swiotlb_memo_remap() seems kind of clunky.  phys_to_virt() gets called
> twice, for example, and two error messages are printed.  The code would be
> more straightforward by just putting the helper function inline:
> 
> mem->vaddr = phys_to_virt(mem->start);
> bytes = PAGE_ALIGN(mem->nslabs << IO_TLB_SHIFT);
> set_memory_decrypted((unsigned long)(mem->vaddr), bytes >> PAGE_SHIFT);
> 
> if (swiotlb_unencrypted_base) {
> 	phys_addr_t paddr = mem->start + swiotlb_unencrypted_base;
> 
> 	mem->vaddr = memremap(paddr, bytes, MEMREMAP_WB);
> 	if (!mem->vaddr) {
> 		pr_err("Failed to map the unencrypted memory %llx size %lx.\n",
> 			       paddr, bytes);
> 		return;
> 	}
> }
> 
> memset(mem->vaddr, 0, bytes);
> 
> (This version also leaves mem->vaddr as NULL in the error case.)

 From Christoph's previous suggestion, there should be a well-documented 
wrapper to explain the remap option and so I split the code. leaving the 
virtual address of mem-start is better.

https://lkml.org/lkml/2021/9/28/51

> 
>>   static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
>> @@ -196,7 +231,18 @@ static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
>>   		mem->slots[i].orig_addr = INVALID_PHYS_ADDR;
>>   		mem->slots[i].alloc_size = 0;
>>   	}
>> +
>> +	/*
>> +	 * If swiotlb_unencrypted_base is set, the bounce buffer memory will
>> +	 * be remapped and cleared in swiotlb_update_mem_attributes.
>> +	 */
>> +	if (swiotlb_unencrypted_base)
>> +		return;
>> +
>> +	set_memory_decrypted((unsigned long)vaddr, bytes >> PAGE_SHIFT);
> Prior to this patch, and here in the new version as well, the return value from
> set_memory_decrypted() is ignored in several places in this file.  As previously
> discussed, swiotlb_init_io_tlb_mem() is a void function, so there's no place to
> return an error. Is that OK?

Yes, the original code doesn't check the return value and so keep the 
rule。

Christoph, Could you help to check which way do you prefer?




From xen-devel-bounces@lists.xenproject.org Wed Nov 24 14:12:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 14:12:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230450.398355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpt0k-0003R2-TM; Wed, 24 Nov 2021 14:12:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230450.398355; Wed, 24 Nov 2021 14:12:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpt0k-0003Qv-QL; Wed, 24 Nov 2021 14:12:34 +0000
Received: by outflank-mailman (input) for mailman id 230450;
 Wed, 24 Nov 2021 14:12:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpt0k-0003Ql-C7; Wed, 24 Nov 2021 14:12:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpt0k-0008PX-7k; Wed, 24 Nov 2021 14:12:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mpt0j-0006vA-Vi; Wed, 24 Nov 2021 14:12:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mpt0j-0001Az-TL; Wed, 24 Nov 2021 14:12:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2C0fVTk2m7gb2Ojan1AOIGbyDKdmy0XbtNCoOodwPJ4=; b=dPszLWWQTid0PNwEhNWFKh1iY3
	Ufi1HndoU54ncOdThmx2h+kO3zQrG3TAjD/Wik0XitoC1uw4oNIaeAStQUhWBZuflt72j/WYk8kfK
	hTcXBsrkxdkX9G9aMeCxoWRtVdnao+7+8KGRe0PlRSjZqyAzE8psNgufOHhggHJMdQpY=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166351-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166351: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=5449ba84e99849ee2339fd79f9717e10113d702d
X-Osstest-Versions-That:
    xen=a5706b80f42e028c5153fc50734a1e86a99ff9d2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Nov 2021 14:12:33 +0000

flight 166351 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166351/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  5449ba84e99849ee2339fd79f9717e10113d702d
baseline version:
 xen                  a5706b80f42e028c5153fc50734a1e86a99ff9d2

Last test of basis   166332  2021-11-24 00:00:33 Z    0 days
Testing same since   166351  2021-11-24 11:01:39 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   a5706b80f4..5449ba84e9  5449ba84e99849ee2339fd79f9717e10113d702d -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 14:39:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 14:39:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230456.398368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mptQJ-0005q9-2Q; Wed, 24 Nov 2021 14:38:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230456.398368; Wed, 24 Nov 2021 14:38:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mptQI-0005q2-Vc; Wed, 24 Nov 2021 14:38:58 +0000
Received: by outflank-mailman (input) for mailman id 230456;
 Wed, 24 Nov 2021 14:38:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mptQH-0005pw-Af
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 14:38:57 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mptQH-0000Pg-97
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 14:38:57 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1mptQH-0003I7-60
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 14:38:57 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1mptQ5-0002v9-1m; Wed, 24 Nov 2021 14:38:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:Content-Type:
	MIME-Version:Message-Id:Date:Subject:Cc:To:From;
	bh=yL3nNJ0wENfliK/XlGH4BPoHU6YQulLqCIVl+AZ8Vk0=; b=p6Zb6Z44rbTxz2QhMuF+FogfYr
	T3+f69qEJ4J0T3uXBYMUMWhKSqarF1a+RkGbgNNG771/YghwmXxlbHeh1HrIiqg0QbfDOP/VnJheJ
	nfWn/y6OkBYv6ExOCl00NwAFBk8I8tF8Wpo2Cr4Xup+83wbEP/JqzdyDRgfN5y4WZkTk=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Ian Jackson <iwj@xenproject.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [OSSTEST PATCH] mg-repro-setup: Make ordinary alloc: work again
Date: Wed, 24 Nov 2021 14:38:33 +0000
Message-Id: <20211124143833.23480-1-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In e7febe5f6edc, we hosted an error earlier in the script.  But in the
old location, OSSTEST_TASK would always be set if statictask was.  In
the new one, that hasn't been done yet.

No release implications since it touches a by-hand utility only.

Fixes: e7febe5f6edc "mg-repro-setup: Promote an error test to before builds (nfc)"
CC: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Ian Jackson <iwj@xenproject.org>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
---
 mg-repro-setup | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mg-repro-setup b/mg-repro-setup
index 895f29963..b00e182f3 100755
--- a/mg-repro-setup
+++ b/mg-repro-setup
@@ -254,7 +254,7 @@ while [ $# -ne 0 ]; do
 done
 
 if [ "${alloc_idents[*]}" ]; then
-        if [ x"$OSSTEST_TASK" = x ]; then
+        if [ x"$OSSTEST_TASK" = x ] && ! $statictask; then
                 # We would have to make a dynamic task and hold the
                 #  fd for it in this script.  Would be quite awkward.
                 echo >&2 'cannot hand-allocate in a way that will free'
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 16:17:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 16:17:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230464.398383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpuxI-0007EX-BL; Wed, 24 Nov 2021 16:17:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230464.398383; Wed, 24 Nov 2021 16:17:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpuxI-0007EQ-6M; Wed, 24 Nov 2021 16:17:08 +0000
Received: by outflank-mailman (input) for mailman id 230464;
 Wed, 24 Nov 2021 16:17:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qlkt=QL=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mpuxG-0007EK-NK
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 16:17:07 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f58137c3-4d41-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 17:17:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f58137c3-4d41-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637770624;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=/E7lTZM88OIAHv+7nwCCV+X/otcAnbUgiW6ESbzp4j8=;
  b=JkY/rCi9Yk9Fg2JQTAqRvdiQ5BkTf1sVFpVSqEP/DHcBxTj/uo9ppuvf
   jKsbNuVwUsIIbhctmS67zPsTfheLbX2PwGQPM2t3dQEPZ+W64EUTP/l/E
   O4Z4gafplXjM072RrkzlPyPHwNzpdRzYSW4TZhZP+83yjDGsBEPwfXtdK
   Q=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: WS6jNXC5daLHHDSOSDAq1eXAkmd432e2U2Mj42nO3uE84bRpA3oGZWZ35cDlSZ06+SJxQguIDu
 RfHJfI9I8YPjAGnP+kXUN0gjsC+pEKjant3Jqb+jSFT1BRoFdAmRnDyyKD8O1bE/Rw7B6pHHxN
 D3O2HgsoxsF0VVBpX2EX07OMrDiTUua/8Ol8gXh8VRxjXRMyPGE8Y8ndrwbS2D+DCMYalx5fz4
 777y9mEjsqK80owqUdE+4yC+tcGvTLYxIew2/jqXUCsXaztQxPpQqUi04xtLfW1QGqGvBTOoKg
 eMQNkmnF0RADfwdzzJ+Qq9HU
X-SBRS: 5.1
X-MesageID: 58941998
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:PPswua5pUXHI7mEsTFBRgwxRtNPAchMFZxGqfqrLsTDasY5as4F+v
 mIbWj2HM/zfMzCjetsja43j/E4AusKAyYVqHQVvryoyHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NIw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z+
 sVUhbi6aj4SIu78htgzVTcbGiVFMvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALNs7kMZlZonh95TrYEewnUdbIRKCiCdpwgWdh2pkfTKa2i
 8wxZDB3XSbgXzZ1CnAOBMIPrs6T2Ej8WmgNwL6SjfVuuDWCpOBr65DyNPLFd9rMQt9a9m6Zu
 WDu72n/GgsdNtGU1XyC6H3Erv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaWWdhSN
 kgV8SoGtrUp+QqgSdyVYvGjiCfa5FhGAYMWSrBkrlHWokbJ3+qHLloUVw5lYv8fj9N1dSIW+
 Fmn3NrtPjM65dV5Vkmh3ruTqDqzPw0cImkDeTIIQGM53jXznG0gpkmRF4g+ScZZmvWwQGitm
 G7S8EDSkp1K1ZZTv5hX62wrlN5FSnLhagcurjvaUWu+hu+STN70Ptf4gbQ3ABspEWp4crVjl
 CRV8yR9xLpXZX1oqMBraL9RdF1Oz6zYWAAweXY1Q/EcG82FohZPh7x47jBkP1tOOc0ZYzLva
 0K7kVoPv8ANbSH7NPImP93Z5yEWIU7IT4iNuhf8NIQmX3SMXFXfoHEGibC4gQgBb3TAYYlgY
 MzGIK5A/F4RCLh9zSreegvu+eRD+8zK/kuKHcqT503+idK2PSfJIZ9YYArmRr1ot8us/VSKm
 +uzwuPXkn2zpsWlOXKJmWPSRHhXRUUG6Wfe95YKK7Xde1U+QwnMyZb5mNscRmCspIwM/s/g9
 XChQE5Ijl35gHzMMwKRbX5/LrjoWP5CQbgTZkTA5H6khCouZ5iB9qAae8dldLUr7rU7n/V1U
 +MEa4OLBfEWEmbL/DEUbJ/cqo1+dUv02VLSbnT9ODVvLYR9QwHp+8P/ele9/ic5ESfq59A1p
 Ket112HTMNbFRhiFsvfdNmm00i14SoGgOt3UkaReotTdUzg/ZJEMSv0ivNrccgAJQ+anmmR1
 hqMAAderu7I+tdn/N7MjKGCjoGoD+ohQRYKQziFte67bHCI8HCizIlMVPezUQrcDG6kqr+/Y
 eh1zu3nNKFVllh9rIchQa1gyrgz5oWzquYCnBhkBnjCc3+iFqhkfiudxcBKu6BAmu1ZtA+xV
 h7d89VWI+zUasbsEVpXLws5dOWTk/oTn2CKv/gyJUz74g5x/aaGDhoOb0Xd1nQFIesnKp4hz
 McgpNUSul62hRcdO9qbijxZqjaXJXsaXqR77pwXDecHUObwJo2utXAENhLL3Q==
IronPort-HdrOrdr: A9a23:jM3JpqqKc2MmmRFL/Qaklk8aV5oneYIsimQD101hICG9JPbo8v
 xG/c5rtiMc5wx7ZJhNo7q90ey7Lk80lqQU3WByB9uftVLdyQ+VxehZhOPfKn/bdREWndQ96U
 4PScVD4NOZNykZsfrH
X-IronPort-AV: E=Sophos;i="5.87,260,1631592000"; 
   d="scan'208";a="58941998"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Dald+QdwQfIDIphvqu1jD4b1L8YtcRISvaaMq0D9c93Cxzi9pMQyqS4w3ai96ctuPpTaZGyHOX89nfuh4rdo2R0vOfbM+pvrN8dySoNU9gpFOGM1t2PJmQ1yk5narFMFTmNoZS2rM3qLhz0IXp08U2vGtusOCLKKb3CyVRY+6tXxX7/jHjamvua/UUAXhekS57Tox8gHyE1oJrYRwYR/cJGXcn9auKatq+grIazkltFaY7GDsNQucVuWL/iHtYUK/gVXbnewwqw8fyWRxEdBYW27O+aIkwBD3rTo4gTDH2E8Q1Knb6qr5eChVWdE004AMBG5RAtdPVU9K3oGQJ9PxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=X6pVwwGe9m19nSJxjOTlaNzYo5HU6Vwzn2MT1WXDBJM=;
 b=A4SPqrOOOhvxSyhMep2tx16qPdMMprJMOUum/8so5BSf+U6aag9c1MChoeuvL7f1vVrS+gH3RLF96Ml/UMdD3WBmdQICfxWNLKLpQ/BimBsY/yMX5IUgCq8FEkB/HVdhN08TGa6TIhgkvqPmaj3M5fGUldyUKYMRNQTA7WUWBCiOiGEIxLeAhU/JSwS6y2vHUsrVuwjK8zmcVs/K3Q38GQdUtyQHWZpebuWPoyv03EGvS7dZapgN28lRfWysZjaZHXlQTGh6PemVglmTosJh8Ad9D1q1XTk5M4dputqj9Tw7WGE6Vxti7R20zE76O3WIHoHx01J0R6y/T5CQHh1cHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=X6pVwwGe9m19nSJxjOTlaNzYo5HU6Vwzn2MT1WXDBJM=;
 b=E4HtG6IzE406POQntHYK7sQQYrQkJyGjFdBN3o94uXNY8ZWmYYc2JDcxx2LrsFd0r2YdTTpI5jA4oHjUOrw34g96trcZPaEpaGyqa9BVoHNpakGhwwLhkwJ4swUuFRTl442ELV02NJVkgi61iK+TDTDtOIu7yVvexGPWrYRBGFc=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max policies
Date: Wed, 24 Nov 2021 17:16:49 +0100
Message-ID: <20211124161649.83189-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0136.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::9) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a5ec4540-e782-42cb-1e30-08d9af65d757
X-MS-TrafficTypeDiagnostic: DM6PR03MB4538:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4538885789DCAE3765F180448F619@DM6PR03MB4538.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: OaEbEMkeQvqUTELuEnQcNXXaS4RphGGthi67KGKLwiNGIcMtasJvANbOt8ekhK3zYWP2KC2V/Ufi2G9jYmy1ZpQTv8eq9ntab/or8sTBBS3THyBvDjBWYxl2RbI+luZHkwX4S1bYdhig2DDBSGKXcRn8/WpIo7ZBbSMmiNkKT1vNvQGjYnTF8z7gI2XaLLkPV3CUSKywdp6ElWuVo3/ErVjsNFaFYHj7YpXJuUySEx/eyqEuyzOY7neB8zDAn+CLMFGGxKidpL+mxibzDDLMA3AiA4+O3OLPSiMCL8Sh3tOfuF9ZXIkD/CuGv8p6O4b/UKCKB34trO6PJH7b4P5BLC3dg5JAO0KoDc21KXlJIaCOzVKYNk7siM/FiMnuKu21oKbvpJdNiyJgByJKGMhqWqlFLpVdrrTmH6HBUHzf6K738Xjwy5L3n8gIZtK4+CjtlEVJBJOyYRe+OCTT9WaMvDhFHvMsG93fmNCxJRSnKtm6bQ6QcMrIGxCj/7pIV3GoQ4gULyXeG/OfolvFbvFkjImfPbrb/ULPBNdu+sqdpukDvN7aGWVMPwNADgaT+BOcmHuR7gNZ4gJczna2ueHziyu2zA0/SbJriTdZgbrs+LZ+8NyKVjCBrWGk5ApD/zj+77kfVq2hV6K47EAoAs2UqA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38100700002)(316002)(6916009)(5660300002)(2616005)(6666004)(2906002)(4326008)(83380400001)(8676002)(54906003)(36756003)(86362001)(26005)(186003)(66946007)(66556008)(66476007)(1076003)(508600001)(6496006)(6486002)(82960400001)(8936002)(956004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UXhqRExYdk1WRUlaMVZVUm9wMW1pVEE5RUNIN3VUdmFoZkluRjRKbHJzc1Vx?=
 =?utf-8?B?MG0xYlR5NGpNLzM4R3VQSUY0bk1Pd05laU1PUVRtTnV4UnJGeWdYcVBwTkh0?=
 =?utf-8?B?Q1crRGd2TmtHVWdNckM0NG9VUmhGbzgwV1pYbGNEZTVzaDhuSjB0aXp4UVFR?=
 =?utf-8?B?eEpHSCtUT0tPQysyTmVVVksvbWVjWHBwRlVkRXRwSytLNVV2alF3NkdkU1dD?=
 =?utf-8?B?eDl2UVIzZHZxUUduNkdvQjk1bEg0ZHB6amZHTEpkZk9CTExaQ3VqTmVtWjBS?=
 =?utf-8?B?bVJvbUlBTDRBZ3o1VzZJWWxxWlNwc1V0bDNrdC9NemNSeWtxaEpIR0lhQTR4?=
 =?utf-8?B?dVZRdFd5WG5UOWtDWGQ3SzNWNkhXVFNnQ0pTWGEwTHBsalVRVWNMWVlKOTlR?=
 =?utf-8?B?NktFUXFCTThhdFduV1VzQWs4dlJISGg4eWdaa3I1YjBFSEx4OTZwSnRzU21N?=
 =?utf-8?B?TmIyeGhqYzIvWWxHYVJ4dnlhVVdCSzVBUENPYm5xL20yb2Ria3IzWjBobm5Z?=
 =?utf-8?B?emlNSmdxRGpZTmlHTlFTWWJGUE5QL2VBdDkzSzhLOWpKVjBqcjNtWnRaY0F5?=
 =?utf-8?B?TTJWL1Z3R2Q4cUJLcWlFRElUOHo0eVhGOXVrWkdjM2pWd0laRHFVL0xYWlZM?=
 =?utf-8?B?M0ZDcTg2akl3ek5kQmlHMVBkcitwejRWVWc1dC82YVdLRE15anVKVjZSYUdj?=
 =?utf-8?B?WXlZc290dkxIQ3l4TXpzVzFYUnVhZDBTUWl2Yy8vR1hudGNPVEZKVFFCdjJG?=
 =?utf-8?B?SEpOSUFHL1NUVEliQWhPS1BhTVc4bjJvbXJZNE9lSjFqNFJ3ZTROOHozWXVE?=
 =?utf-8?B?b3FrNENuQmZCTHZ2TmFzbkMrOVFuQnVYWFdWc3NXZzJTNFVmS0hUb3dxeVcw?=
 =?utf-8?B?RndIVWJzRUFwdDY1R05SU2FFbW1XQ1dQdUNKM0l0ZXByQ0o2OXhQZHdTRjEy?=
 =?utf-8?B?TnNPWEFuTHJHdEVacGU2cWZMOFd2ZndmMFR1bkg1TUF0VGlaSlJQaG1ReU8z?=
 =?utf-8?B?Z1FvQmd0a3pvcEcrdTRkYm03N1gzOWZRMytkOEsrQUk2N1Q3Z3NDSFRlS3Jz?=
 =?utf-8?B?R3ZoRHlxalhrM0FxOGQwS0tJSDQ4SDlyeExIdlBFY3g2OTZ3VmQzUXJsYjMx?=
 =?utf-8?B?VlczZ1RyVCtpSDBJSVhpbEVncWRka3dDQ2M5T1hUSnhnSEhkTVovbzE4Qmhr?=
 =?utf-8?B?SmlMd0xLbnhPNzhDcks5SGJhUlNrU1NkSjB5SVMwR2dGMEpNVFUyR05oTnVH?=
 =?utf-8?B?UjhWNXJPZHR4bDBuSUJaNmNSUElBRFBOZ3VZTzUydTl3NmVEMWNVeTREbGZy?=
 =?utf-8?B?RDU1TStqcDY5SGFXRGZEZktONXoxODlldHhyekQ1OC96TDVrQVFmdFJhS3VF?=
 =?utf-8?B?ckVERUR0dDZScktvbHR1ajZIZXVHR0Zic1FnVWNjTEU0aXhHOWtMZ1pET3N1?=
 =?utf-8?B?NTJwWWszTDBlRVA3SDZoQUtDMkp0TkJjY25YZUNGb0Z2QnBCUHBrNFZHc3Vz?=
 =?utf-8?B?NU4xNkVjbGFIRzBiS3k4anBSdlZvVGJGdnZpcDJsM3N2NUhRTVdLSkFESEdB?=
 =?utf-8?B?Yi9TUm5sZ2EwL2VZUVU4TGd3T0dvakE3ZDlwQURPelZ5bXN0NVh3VWJKUVdt?=
 =?utf-8?B?ZVpOcnJHNWtXdTl4d0VjdGQwZjlkdmNUdXZjWE1XQVJGMEdrc29Oc2ZRclRE?=
 =?utf-8?B?VU9xME1OdzF5VUpqV0VjbXdLS25wN0pXRVp3aDdNeEF4cjJTZE9KMWtxdW5H?=
 =?utf-8?B?QkhhUC9BSkEvcnh2MjNYTFlvRTVQM3lUaTlDa2orQ1hFUitZNTFPM1g2YzFz?=
 =?utf-8?B?M2lBNm5qajF1NlNadUp1c0I3SHFxMWRzMCt6eFNQWFJUWEV6UzFTRTBhL1Av?=
 =?utf-8?B?eCtxOEFJM01CUHQzWmx5N3JiZHVlOCtiVUZQUlAyUEVXSzVrZklpTTEzY0Fa?=
 =?utf-8?B?VWhiSTlJWU5jbFBLZURQMFBUUG8wQll5S0JKeWZnUG1DdVN6aXB3TkV4elln?=
 =?utf-8?B?OSs5eURTRkZkaTM1TWM0bndWYXFkS1ZDUUIvRFMvdW5LNlg5VUVzdk5QajNS?=
 =?utf-8?B?WTdsS2JnSnF1K2ZUZFpQamZLTVBWVWUyRmlTVDEwSi9rN1hKYnlCU1NYSWhF?=
 =?utf-8?B?UzlrRUJsd05ZRHVnbUp1U1dFdHR3ODdCZWlWSGR2RWt6bEMwckxKZlNqbExx?=
 =?utf-8?Q?YYE00Ck92eEvjg+uxni4sek=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: a5ec4540-e782-42cb-1e30-08d9af65d757
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2021 16:16:59.1553
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gQdbtn9R5AQL4/MohETNu/CXuW5gVqW+tOWp7kUQMBgIa7GeO/F+R054xmHqnpWv46lJ4F0ZPdKYnZmGTInV4g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4538
X-OriginatorOrg: citrix.com

Shrinking max policies can lead to failures in migration as previous
versions of Xen didn't shrink the number of leaves in any case, so
it's possible for a guest created on previous versions of Xen that
pass CPUID data on the migration stream to contain a max leaf number
greatest than the one present on the max policies in versions of Xen
containing 540d911c28.

Such failure was seen by osstest when doing a migration from Xen
4.15 to Xen 4.16-rc on a pair of equal boxes, the noceras.

Fix this by preventing any shrinking of the max CPUID policies, so
that previously built guest CPUID policies are compatible.

Fixes: 540d911c28 ('x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>

This is a regression from Xen 4.15, so should be considered for Xen
4.16. The main risks would be to mess up with the CPUID policy in a
different way, that would also lead to brokenness. Strictly speaking
the change here removes the shrinking of max leaves and restores the
previous behavior, but it's obviously not completely risk free.

It has proven to fix the regression seen on the noceras.
---
 xen/arch/x86/cpuid.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 8ac55f0806..173c7b71ac 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -353,8 +353,6 @@ static void __init calculate_host_policy(void)
         p->extd.raw[0xa].d |= ((1u << SVM_FEATURE_VMCBCLEAN) |
                                (1u << SVM_FEATURE_TSCRATEMSR));
     }
-
-    x86_cpuid_policy_shrink_max_leaves(p);
 }
 
 static void __init guest_common_default_feature_adjustments(uint32_t *fs)
@@ -434,8 +432,6 @@ static void __init calculate_pv_max_policy(void)
     recalculate_xstate(p);
 
     p->extd.raw[0xa] = EMPTY_LEAF; /* No SVM for PV guests. */
-
-    x86_cpuid_policy_shrink_max_leaves(p);
 }
 
 static void __init calculate_pv_def_policy(void)
@@ -523,8 +519,6 @@ static void __init calculate_hvm_max_policy(void)
     sanitise_featureset(hvm_featureset);
     cpuid_featureset_to_policy(hvm_featureset, p);
     recalculate_xstate(p);
-
-    x86_cpuid_policy_shrink_max_leaves(p);
 }
 
 static void __init calculate_hvm_def_policy(void)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 16:25:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 16:25:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230469.398393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpv5A-0000Hs-9N; Wed, 24 Nov 2021 16:25:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230469.398393; Wed, 24 Nov 2021 16:25:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpv5A-0000Hl-5z; Wed, 24 Nov 2021 16:25:16 +0000
Received: by outflank-mailman (input) for mailman id 230469;
 Wed, 24 Nov 2021 16:25:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpv59-0000Hf-5C
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 16:25:15 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpv58-0002iH-Vt
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 16:25:14 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpv58-0003KN-Uk
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 16:25:14 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mpv4v-0003J0-JQ; Wed, 24 Nov 2021 16:25:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=eg5zGldfT2FiQyNxzPJlqUmijkyQ5fWzi+aq3jBZArw=; b=F4ue7nxjWQaYu+B2WGQqWbwlUr
	+oaf8D8KCs0AtQShIcfXWR+gLwlvJAZ+9QOh66XUAgxvxOB8QgRC9JoFfQ+Gioy+IeSWRYq7F0EVh
	3zYKNUlDUZipD7MsRuxLs/xBl7dDaep5bk32NTsEPQPd3SvczWWbv95cOb1qgHRb3pls=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24990.26451.287618.213116@mariner.uk.xensource.com>
Date: Wed, 24 Nov 2021 16:24:51 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>,
    Jan Beulich <jbeulich@suse.com>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max policies
In-Reply-To: <20211124161649.83189-1-roger.pau@citrix.com>
References: <20211124161649.83189-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max policies"):
> Shrinking max policies can lead to failures in migration as previous
> versions of Xen didn't shrink the number of leaves in any case, so
> it's possible for a guest created on previous versions of Xen that
> pass CPUID data on the migration stream to contain a max leaf number
> greatest than the one present on the max policies in versions of Xen
> containing 540d911c28.
> 
> Such failure was seen by osstest when doing a migration from Xen
> 4.15 to Xen 4.16-rc on a pair of equal boxes, the noceras.
> 
> Fix this by preventing any shrinking of the max CPUID policies, so
> that previously built guest CPUID policies are compatible.
> 
> Fixes: 540d911c28 ('x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents')
> Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>
...
> This is a regression from Xen 4.15, so should be considered for Xen
> 4.16. The main risks would be to mess up with the CPUID policy in a
> different way, that would also lead to brokenness. Strictly speaking
> the change here removes the shrinking of max leaves and restores the
> previous behavior, but it's obviously not completely risk free.
> 
> It has proven to fix the regression seen on the noceras.

Ouch.

Questions from my RM hat:

Is there a workaround ?
What proportion of machines do we think this might affect ?

Jan, Andy, do you have an opinion ?

Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 17:04:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 17:04:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230474.398404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpvgP-0004L5-AL; Wed, 24 Nov 2021 17:03:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230474.398404; Wed, 24 Nov 2021 17:03:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpvgP-0004Ky-6i; Wed, 24 Nov 2021 17:03:45 +0000
Received: by outflank-mailman (input) for mailman id 230474;
 Wed, 24 Nov 2021 17:03:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2JOZ=QL=microsoft.com=mikelley@srs-se1.protection.inumbo.net>)
 id 1mpvgO-0004Kq-CM
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 17:03:44 +0000
Received: from na01-obe.outbound.protection.outlook.com
 (mail-cusazlp170100000.outbound.protection.outlook.com
 [2a01:111:f403:c111::])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 796258f9-4d48-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 18:03:42 +0100 (CET)
Received: from MWHPR21MB1593.namprd21.prod.outlook.com (2603:10b6:301:7c::11)
 by MWHPR21MB0160.namprd21.prod.outlook.com (2603:10b6:300:78::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.6; Wed, 24 Nov
 2021 17:03:27 +0000
Received: from MWHPR21MB1593.namprd21.prod.outlook.com
 ([fe80::9401:9c8b:c334:4336]) by MWHPR21MB1593.namprd21.prod.outlook.com
 ([fe80::9401:9c8b:c334:4336%2]) with mapi id 15.20.4755.001; Wed, 24 Nov 2021
 17:03:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 796258f9-4d48-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NJSew702kt1SBq/iP+d0p4PpwIrVLZwzRSwBbg1PWN4NPsgCv/+v9GiYcp9Yvs1HjpMV0WV2TPEb/8hwN7SE0cDQKiaB+jtcUpEtYvIemIDeQtqpd1Yc3/aKvtoOIyoAvtd3PLSGZCKGso02BeV9f5X+UjJSWUAorYuOz2Shz1WOjRHW4qiijWUiknKAmr/kGGS0tNGYZyaWxaDSDSVskAJUrpmmEeTwNrXRuIcxjFMMrhARtuO8hkmNIFHhOwYHHyRP5PuC8P8n7+uqWuCd4UtSUUjrvRoEcDp0sONT9hDTGtO/zzgQIs9tH+EA8Nb3RUxY1l/XA8OQbsaO83cYuw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BD9wKKo11ShnaAQ2qihISDt0mNPkCMxLNXXSL2rmFyE=;
 b=A0qXvqeGYO36sQXuR8NTZYeJjezeZniCtq/HxfHg3OevkFYSGCBxOGrybjWAhGUyLpE68/pVUyYH9uvzA6Hy9X+aHNBG73lJ6B9M9PQJ3dCIHFmGThkwzIMQd8lYUoG2B35zZIoBuaoaqKdXI9HyiPJUqi8dK1Rm9byLLr8RUXyminrAKhxCnlJix1p67NFCiIqFhvylPkkyazaFOpvion0DqvTwRu8eZy57bPaw39UA2fobUPdwxmaMMe5wIfMoOEajzuuP063z3jnpJejY+SuP22a8P5OM4X3eSR2pRqVoTK189HVRtvTLereFL7LkKpoenboqpQ7ohNMmwHBcYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microsoft.com; dmarc=pass action=none
 header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BD9wKKo11ShnaAQ2qihISDt0mNPkCMxLNXXSL2rmFyE=;
 b=UkUcwtpQTsE3e/3mDhS9QbXgBnLY/1K3N7504xrxZvVrf9luaUQ3kEvpqloXPVUSmx2x0qHXhmzBuFoiqbFsUttiyr3QqXvbEOJVNcbn3RfUJzFOZAJK5OPbW+y1YZGROwduvUBcJgOCx13A7WRwA+AH0yUVEDtvfnkGl9/PALQ=
From: "Michael Kelley (LINUX)" <mikelley@microsoft.com>
To: Tianyu Lan <ltykernel@gmail.com>, "tglx@linutronix.de"
	<tglx@linutronix.de>, "mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de"
	<bp@alien8.de>, "dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"x86@kernel.org" <x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>,
	"luto@kernel.org" <luto@kernel.org>, "peterz@infradead.org"
	<peterz@infradead.org>, "jgross@suse.com" <jgross@suse.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>, KY Srinivasan
	<kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Stephen
 Hemminger <sthemmin@microsoft.com>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, "joro@8bytes.org"
	<joro@8bytes.org>, "will@kernel.org" <will@kernel.org>, "davem@davemloft.net"
	<davem@davemloft.net>, "kuba@kernel.org" <kuba@kernel.org>,
	"jejb@linux.ibm.com" <jejb@linux.ibm.com>, "martin.petersen@oracle.com"
	<martin.petersen@oracle.com>, "hch@lst.de" <hch@lst.de>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>, "robin.murphy@arm.com"
	<robin.murphy@arm.com>, Tianyu Lan <Tianyu.Lan@microsoft.com>,
	"thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "iommu@lists.linux-foundation.org" <iommu@lists.linux-foundation.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>, vkuznets
	<vkuznets@redhat.com>, "brijesh.singh@amd.com" <brijesh.singh@amd.com>,
	"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>, "parri.andrea@gmail.com"
	<parri.andrea@gmail.com>, "dave.hansen@intel.com" <dave.hansen@intel.com>
Subject: RE: [PATCH V2 5/6] net: netvsc: Add Isolation VM support for netvsc
 driver
Thread-Topic: [PATCH V2 5/6] net: netvsc: Add Isolation VM support for netvsc
 driver
Thread-Index: AQHX4HeYtAEila+YgkS3X1o35FDXYawS2g7g
Date: Wed, 24 Nov 2021 17:03:26 +0000
Message-ID:
 <MWHPR21MB1593093B61DC506B64986B14D7619@MWHPR21MB1593.namprd21.prod.outlook.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
 <20211123143039.331929-6-ltykernel@gmail.com>
In-Reply-To: <20211123143039.331929-6-ltykernel@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=4391e0e8-47f1-4dc5-aa3c-c57814906b25;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-11-24T16:08:18Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 645ba359-8c0b-4f2f-7b48-08d9af6c554b
x-ms-traffictypediagnostic: MWHPR21MB0160:
x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr
x-microsoft-antispam-prvs:
 <MWHPR21MB0160D2B6E06F66610394FB38D7619@MWHPR21MB0160.namprd21.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 lgCok9YPWjAorBazHS+K/zK0iUKclUi/gDhMV1adSOrVIzDHGcaJeLc9mWOtg5DFOjPG2BjtBuEz9a4nsye2BSa/saMA1zBZjXmh7WAae4okWK5XD2+lm0SiigzSQzGL+VKFCbGTd7t1tPeWJUmc5E63Cbeg9IdIrdHkzw7SYTkVXOhc0LtNSKLasHs/FD/M+nwB5Z6D6lqvESYdChEADB+5LHr6jPOqHwiVUp6+GZ9VS95bKo0mCZv1UD9zNxd++gxK0Evx8uxgUpCX5+O8m7eQXny27KQ3b1oMCge95Ijx2RM9yI3qFyQzypEQdJqeFyjONfstRR3ztpSKgDLWJ/y6x4TjUJDTpgOtH3HawjLrjoggMoatL55AcgXrr9nersomuAezohLes/8W2KePLvIGKfb6AUUg0o9UmO1LSD/FZLz3d0OBYBVK4C3P8iRnYP1IFWg0HW7fhR3X9itBzooTHhTIysNZfChaY0rCbkvBFmD92Dk1BLorb26CgHdLaWyGfTuaFwc62Ldot+XMic80/UKwIYzvw47SJ5fffxUW4uCNJc2fKOR/u1bcenUVVE9iajcB4aJqX7agdBwMvnmfgK0i+aORU0ZGlXqmRc/jeYD7cqluGJCVqrbDx7cqKm89I/lfGAeh7TMELgvmxks/sU13zSfvNGDfxCuHGo6E0YEL1MvMp7TaDLLM/kk/zunkwiuafrAb+k3+WBfplbbPVyA3rEdCWrNiqwPZinBdoio8yUDlEyASDkr7ZDfNcE+xmvPzCOkaUZbFrezmEw==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR21MB1593.namprd21.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(7696005)(71200400001)(6506007)(508600001)(82950400001)(8990500004)(55016003)(10290500003)(33656002)(66476007)(66556008)(64756008)(66446008)(8676002)(4326008)(83380400001)(186003)(2906002)(8936002)(54906003)(7406005)(86362001)(5660300002)(7416002)(122000001)(110136005)(26005)(316002)(76116006)(9686003)(52536014)(66946007)(82960400001)(921005)(38100700002)(38070700005)(20210929001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?AwExHU+M29eSnSe5BLN2W/8ii8uIVdNmFv8oHC+RkSnXcHjP36HUkX+PaTU4?=
 =?us-ascii?Q?H25bZgnMWSEygiei+0jPiJE50Jq32E9pKjqctjxK0pEmXAJL6Rl7jSwwA+5k?=
 =?us-ascii?Q?VDxphfgxPSOwWLZJ73FRZsITZnilA5QRrVDgUsomXr7ApvNg537Sc1W+5oj3?=
 =?us-ascii?Q?fmj+qvljLh+Dte8BngcvUY2l4Wh2NwozL6RhdwyxxZk3TYdwFiMbQJGSDMfJ?=
 =?us-ascii?Q?wviKLA0WrpNudd61XGpwHiClzTM/g6j9FE1iIOgaJFbGfpwtQM/1D5o4FdxK?=
 =?us-ascii?Q?shSL3/EzQFqacqG6hDvJtGUvxldK79sn13sJA1chUjpLfjY9mSXyQr/gUjcc?=
 =?us-ascii?Q?YqPgoIR2mHBbnxF4kYsgkkRHIejQZNXZrf7wgvATddtOXEpJF2F1PZvtDdvb?=
 =?us-ascii?Q?EMwZVTyTlW5hY+UYk9Z9ZENM+NLCt851qy0B0V5NiIpK8X3gIwx0/+6D7FuY?=
 =?us-ascii?Q?sqRO8dDviPsslQJveWn0FUUf/k4rmRFEmq2VoRDleKpYX7mR512esQDxvgsF?=
 =?us-ascii?Q?eYV3J24bFO4zhPkt8L6WfPWYwqzWfxeNf/7bWzdImiQB50VYGHCVeBoLBeP/?=
 =?us-ascii?Q?oyTNpMXwIgngjAbNxHUAowi7NsrZ3HcD/dedi9L1sb7jmta3GgIxaTwPZVNS?=
 =?us-ascii?Q?CjIoX61Hnrr+AyNbXS0ifdbiPcW0Qm54fy6ec+s/WUSHypUutpT2espkFFYq?=
 =?us-ascii?Q?XnTMytXLiMuBbNQBbCW5McHkZZJbs2w+J6Fp5I2TrQRBksI2NJg1ldPOCTax?=
 =?us-ascii?Q?d6hDsdbXpHttpIjHLTl5T1l+7IdhQwCQSkcOWznccUjaj8G7vnPZMlL0kkWB?=
 =?us-ascii?Q?b3t35lSvZ15wZBQWqnMEWbW3zzAHwS9/uJZ+QCzjgenjGWlqgVMSPekKjjP/?=
 =?us-ascii?Q?dI6MSG4Yd7oHPkI0f9F0W6v5ZP6l4CJ1q776PUFSRB3cD0Wv11QYNfiMvKFk?=
 =?us-ascii?Q?vpU/2Ke6280PatYJ8kiB0+yNF9f9qKtBfA3rQucSl9rtD/Y9K0Tive4qf69C?=
 =?us-ascii?Q?Jm3qIRyvFyLOrEA4YmvCuxMs6MpE+nXAFf9OsXda3O4P9z5B1KhiQrvvMrtr?=
 =?us-ascii?Q?+GWAVb+JkkL1a+kuq4Fx1qEezMeD+kyFaLzV84zZfLTikgdJjS6DRhks9k5T?=
 =?us-ascii?Q?wgFapZXNg72Ww3tEX35HmX5BpSjhPSsSj5XqvODVG9LEVLnztLvBFLSj5NI2?=
 =?us-ascii?Q?6HMwsOzsinDjly33+sqaEIUaB4/+X97kg4KOYKR5jooRPDzaLvPDlHbD4YUB?=
 =?us-ascii?Q?G8Jw5wqbh3VbYQWP44TS07YhY7buoS+fiuY02Ic1yenN4psAiSCe0NaF7f3Z?=
 =?us-ascii?Q?Uz4i3N/smEpuAM4yf7SwMug2aiiMKJrFHrzr6KtkpD3EF24hg5RFu1Qsm9L7?=
 =?us-ascii?Q?EwqRMGm9QFWcwpbgrQURnDh6SYlhuM1foch9MzA/l099HA18X1IR1Fv77QO6?=
 =?us-ascii?Q?Edd//vvaOFI+3524x/IVc2M9OhGwxQjYBzeyxyrtVZn886YxUV+KZPQqt98+?=
 =?us-ascii?Q?I2Pi3V6cYfoMbl7LYP6T+U+oQIwJd27KaEX57gnKVTijaJCtnx7AKqqMHJtk?=
 =?us-ascii?Q?tZvES3IOLJ7mNUnpZymggJ/cks9moO8Ntx3g8B1rW3dDIh1osPTUN8MflkbT?=
 =?us-ascii?Q?9FJk/Z4DwoggfhKZI/57+yOwnasNq+pZuO5t602X/oJvRjh1USkAgNmUlJzK?=
 =?us-ascii?Q?ZJ0WYg=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MWHPR21MB1593.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 645ba359-8c0b-4f2f-7b48-08d9af6c554b
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 17:03:26.9566
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: mssEEe4NcS1WKOFFxFXYt+L4MFp7zB/b0GO6xguhSCkVDE+e9DLJeWgVrPf5wyWnWE38To/33ZeymL6sVo2/EASlOOtjmwDP3druvvzuWBY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0160

From: Tianyu Lan <ltykernel@gmail.com> Sent: Tuesday, November 23, 2021 6:3=
1 AM
>=20
> In Isolation VM, all shared memory with host needs to mark visible
> to host via hvcall. vmbus_establish_gpadl() has already done it for
> netvsc rx/tx ring buffer. The page buffer used by vmbus_sendpacket_
> pagebuffer() stills need to be handled. Use DMA API to map/umap
> these memory during sending/receiving packet and Hyper-V swiotlb
> bounce buffer dma address will be returned. The swiotlb bounce buffer
> has been masked to be visible to host during boot up.
>=20
> Allocate rx/tx ring buffer via dma_alloc_noncontiguous() in Isolation
> VM. After calling vmbus_establish_gpadl() which marks these pages visible
> to host, map these pages unencrypted addes space via dma_vmap_noncontiguo=
us().
>=20

The big unresolved topic is how best to do the allocation and mapping of th=
e big
netvsc send and receive buffers.  Let me summarize and make a recommendatio=
n.

Background
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
1.  Each Hyper-V synthetic network device requires a large pre-allocated re=
ceive
     buffer (defaults to 16 Mbytes) and a similar send buffer (defaults to =
1 Mbyte).
2.  The buffers are allocated in guest memory and shared with the Hyper-V h=
ost.
     As such, in the Hyper-V SNP environment, the memory must be unencrypte=
d
     and accessed in the Hyper-V guest with shared_gpa_boundary (i.e., VTOM=
)
     added to the physical memory address.
3.  The buffers need *not* be contiguous in guest physical memory, but must=
 be
     contiguously mapped in guest kernel virtual space.
4.  Network devices may come and go during the life of the VM, so allocatio=
n of
     these buffers and their mappings may be done after Linux has been runn=
ing for
     a long time.
5.  Performance of the allocation and mapping process is not an issue since=
 it is
     done only on synthetic network device add/remove.
6.  So the primary goals are an appropriate logical abstraction, code that =
is
     simple and straightforward, and efficient memory usage.

Approaches
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
During the development of these patches, four approaches have been
implemented:

1.  Two virtual mappings:  One from vmalloc() to allocate the guest memory,=
 and
     the second from vmap_pfns() after adding the shared_gpa_boundary.   Th=
is is
     implemented in Hyper-V or netvsc specific code, with no use of DMA API=
s.
     No separate list of physical pages is maintained, so for creating the =
second
     mapping, the PFN list is assembled temporarily by doing virt-to-phys()
     page-by-page on the vmalloc mapping, and then discarded because it is =
no
     longer needed.  [v4 of the original patch series.]

2.  Two virtual mappings as in (1) above, but implemented via new DMA calls
     dma_map_decrypted() and dma_unmap_encrypted().  [v3 of the original
     patch series.]

3.  Two virtual mappings as in (1) above, but implemented via DMA noncontig=
uous
      allocation and mapping calls, as enhanced to allow for custom map/unm=
ap
      implementations.  A list of physical pages is maintained in the dma_s=
gt_handle
      as expected by the DMA noncontiguous API.  [New split-off patch serie=
s v1 & v2]

4.   Single virtual mapping from vmap_pfns().  The netvsc driver allocates =
physical
      memory via alloc_pages() with as much contiguity as possible, and mai=
ntains a
      list of physical pages and ranges.   Single virtual map is setup with=
 vmap_pfns()
      after adding shared_gpa_boundary.  [v5 of the original patch series.]

Both implementations using DMA APIs use very little of the existing DMA
machinery.  Both require extensions to the DMA APIs, and custom ops functio=
ns.
While in some sense the netvsc send and receive buffers involve DMA, they
do not require any DMA actions on a per-I/O basis.  It seems better to me t=
o
not try to fit these two buffers into the DMA model as a one-off.  Let's ju=
st
use Hyper-V specific code to allocate and map them, as is done with the
Hyper-V VMbus channel ring buffers.

That leaves approaches (1) and (4) above.  Between those two, (1) is
simpler even though there are two virtual mappings.  Using alloc_pages() as
in (4) is messy and there's no real benefit to using higher order allocatio=
ns.
(4) also requires maintaining a separate list of PFNs and ranges, which off=
sets
some of the benefits to having only one virtual mapping active at any point=
 in
time.

I don't think there's a clear "right" answer, so it's a judgment call.  We'=
ve
explored what other approaches would look like, and I'd say let's go with
(1) as the simpler approach.  Thoughts?

Michael


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 17:49:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 17:49:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230480.398416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwOs-0008SV-Rw; Wed, 24 Nov 2021 17:49:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230480.398416; Wed, 24 Nov 2021 17:49:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwOs-0008SO-Ol; Wed, 24 Nov 2021 17:49:42 +0000
Received: by outflank-mailman (input) for mailman id 230480;
 Wed, 24 Nov 2021 17:49:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpwOr-0008SI-9l
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 17:49:41 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwOr-00048b-4n; Wed, 24 Nov 2021 17:49:41 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.24.101]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwOq-0005Xm-V9; Wed, 24 Nov 2021 17:49:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=c8fkS/g+uLVbJWz6o/mBLSg/g6acsCQ2jv7JjvTx1f8=; b=grnq2S2iWiJ9VXSWEnEdUh7lro
	ZUwk8T+5061arj3gvtnqRlQ6Jtw7T0iJKQe5w7gq/A3XTz1Zgd36EPdFbllPz+9ccEUDhcVvMb6w6
	g62KTewXYBV9om5Ebo6y5fEZXKGevBAezRFHkkLJob9lHf6eJnutqW9NMA+Ow7vw8SkM=;
Message-ID: <f560b2e3-de0e-ac63-726d-40ee10291e1e@xen.org>
Date: Wed, 24 Nov 2021 17:49:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH v3 04/10] xen/arm: introduce direct-map for domUs
To: Penny Zheng <penny.zheng@arm.com>, xen-devel@lists.xenproject.org,
 sstabellini@kernel.org
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-5-penny.zheng@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211116063155.901183-5-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Penny,

On 16/11/2021 06:31, Penny Zheng wrote:
> Cases where domU needs direct-map memory map:
>    * IOMMU not present in the system.
>    * IOMMU disabled if it doesn't cover a specific device and all the guests
> are trusted. Thinking a mixed scenario, where a few devices with IOMMU and
> a few without, then guest DMA security still could not be totally guaranteed.
> So users may want to disable the IOMMU, to at least gain some performance
> improvement from IOMMU disabled.
>    * IOMMU disabled as a workaround when it doesn't have enough bandwidth.
> To be specific, in a few extreme situation, when multiple devices do DMA
> concurrently, these requests may exceed IOMMU's transmission capacity.
>    * IOMMU disabled when it adds too much latency on DMA. For example,
> TLB may be missing in some IOMMU hardware, which may bring latency in DMA
> progress, so users may want to disable it in some realtime scenario.
>    * Guest OS relies on the host memory layout
> 
> This commit introduces a new helper allocate_static_memory_11 to allocate
> static memory as guest RAM for direct-map domain.
> 
> For now, direct-map is only available when statically allocated memory is
> used for the domain, that is, "xen,static-mem" must be also defined in the
> domain configuration.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
> ---
> v2 changes:
> - split the common codes into two helpers: parse_static_mem_prop and
> acquire_static_memory_bank to deduce complexity.
> - introduce a new helper allocate_static_memory_11 for allocating static
> memory for direct-map guests
> - remove redundant use "bool direct_map", to be replaced by
> d_cfg.flags & XEN_DOMCTL_CDF_directmap
> - remove panic action since it is fine to assign a non-DMA capable device when
> IOMMU and direct-map both off
> ---
> v3 changes:
> - doc refinement
> - drop the pointless gbank
> - add check of the size of nr_banks shall not exceed NR_MEM_BANKS
> - add ASSERT_UNREACHABLE to catch any misuse
> - add another check of validating flag XEN_DOMCTL_CDF_INTERNAL_directmap only
> when CONFIG_STATIC_MEMORY is set.
> ---
>   docs/misc/arm/device-tree/booting.txt |   6 ++
>   xen/arch/arm/domain_build.c           | 105 +++++++++++++++++++++++++-
>   2 files changed, 108 insertions(+), 3 deletions(-)
> 
> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> index 71895663a4..a94125394e 100644
> --- a/docs/misc/arm/device-tree/booting.txt
> +++ b/docs/misc/arm/device-tree/booting.txt
> @@ -182,6 +182,12 @@ with the following properties:
>       Both #address-cells and #size-cells need to be specified because
>       both sub-nodes (described shortly) have reg properties.
>   
> +- direct-map
> +
> +    Only available when statically allocated memory is used for the domain.
> +    An empty property to request the memory of the domain to be
> +    direct-map (guest physical address == physical address).
> +
>   Under the "xen,domain" compatible node, one or more sub-nodes are present
>   for the DomU kernel and ramdisk.
>   
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 1dc728e848..97a5b5dedd 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -500,8 +500,13 @@ static bool __init append_static_memory_to_bank(struct domain *d,
>   {
>       int res;
>       unsigned int nr_pages = PFN_DOWN(size);
> -    /* Infer next GFN. */
> -    gfn_t sgfn = gaddr_to_gfn(bank->start + bank->size);
> +    gfn_t sgfn;
> +
> +    if ( !is_domain_direct_mapped(d) )
> +        /* Infer next GFN when GFN != MFN. */

I would move this comment just before the if and write something like:

/*
  * For direct-mapped domain, the GFN match the MFN.
  * Otherwise, this is inferred on what has already been allocated in the
  * bank.
  */

> +        sgfn = gaddr_to_gfn(bank->start + bank->size);
> +    else
> +        sgfn = gaddr_to_gfn(mfn_to_maddr(smfn));
>   
>       res = guest_physmap_add_pages(d, sgfn, smfn, nr_pages);
>       if ( res )
> @@ -674,12 +679,94 @@ static void __init allocate_static_memory(struct domain *d,
>    fail:
>       panic("Failed to allocate requested static memory for domain %pd.", d);
>   }
> +
> +/*
> + * Allocate static memory as RAM for one specific domain d.
> + * The static memory will be directly mapped in the guest(Guest Physical
> + * Address == Physical Address).
> + */
> +static void __init allocate_static_memory_11(struct domain *d,

I would rename the function to assign_static_memory_11() to make
clear there is no allocation done. Instead we are only mapping 
pre-defined host regions to pre-defined guest regions.

> +                                             struct kernel_info *kinfo,
> +                                             const struct dt_device_node *node)
> +{
> +    u32 addr_cells, size_cells, reg_cells;
> +    unsigned int nr_banks, bank = 0;
> +    const __be32 *cell;
> +    u64 tot_size = 0;
> +    paddr_t pbase, psize;
> +    mfn_t smfn;
> +    int length;
> +
> +    if ( parse_static_mem_prop(node, &addr_cells, &size_cells, &length, &cell) )
> +    {
> +        printk(XENLOG_ERR
> +               "%pd: failed to parse \"xen,static-mem\" property.\n", d);
> +        goto fail;
> +    }
> +    reg_cells = addr_cells + size_cells;
> +    nr_banks = length / (reg_cells * sizeof (u32));
> +
> +    if ( nr_banks > NR_MEM_BANKS )
> +    {
> +        printk(XENLOG_ERR
> +               "%pd: exceed max number of supported guest memory banks.\n", d);
> +        goto fail;
> +    }
> +
> +    for ( ; bank < nr_banks; bank++ )
> +    {
> +        smfn = acquire_static_memory_bank(d, &cell, addr_cells, size_cells,
> +                                          &pbase, &psize);
> +        if ( !mfn_valid(smfn) )
> +            goto fail;
> +
> +        printk(XENLOG_INFO "%pd: STATIC BANK[%u] %#"PRIpaddr"-%#"PRIpaddr"\n",
> +               d, bank, pbase, pbase + psize);
> +
> +        /* One guest memory bank is matched with one physical memory bank. */
> +        kinfo->mem.bank[bank].start = pbase;
> +        if ( !append_static_memory_to_bank(d, &kinfo->mem.bank[bank],
> +                                           smfn, psize) )
> +            goto fail;
> +
> +        tot_size += psize;

Rather than using tot_size, I would directly substract psize from 
kinfo->unassigned_mem. Regardless that...

> +    }
> +
> +    kinfo->mem.nr_banks = nr_banks;
> +
> +    kinfo->unassigned_mem -= tot_size;

... we should check that this doesn't underflow.

> +    /*
> +     * The property 'memory' should match the amount of memory given to the
> +     * guest.
> +     * Currently, it is only possible to either acquire static memory or let
> +     * Xen allocate. *Mixing* is not supported.
> +     */
> +    if ( kinfo->unassigned_mem )
> +    {
> +        printk(XENLOG_ERR
> +               "Size of \"memory\" property doesn't match up with the sum-up of \"xen,static-mem\". Unsupported configuration.\n");
> +        goto fail;
> +    }
> +
> +    return;
> +
> + fail:
> +    panic("Failed to allocate requested static memory for direct-map domain %pd.",
> +          d);
> +}
>   #else
>   static void __init allocate_static_memory(struct domain *d,
>                                             struct kernel_info *kinfo,
>                                             const struct dt_device_node *node)
>   {
>   }
> +
> +static void __init allocate_static_memory_11(struct domain *d,
> +                                             struct kernel_info *kinfo,
> +                                             const struct dt_device_node *node)
> +{
> +    ASSERT_UNREACHABLE();
> +}
>   #endif
>   
>   static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
> @@ -2983,7 +3070,12 @@ static int __init construct_domU(struct domain *d,
>       if ( !dt_find_property(node, "xen,static-mem", NULL) )
>           allocate_memory(d, &kinfo);
>       else
> -        allocate_static_memory(d, &kinfo, node);
> +    {
> +        if ( is_domain_direct_mapped(d) )
> +            allocate_static_memory_11(d, &kinfo, node);
> +        else
> +            allocate_static_memory(d, &kinfo, node);

The nested if/else can be avoided if you use:

if ( !dt_find_property() )
    ...
else if ( !is_domain_direct_mapped() )
    ...
else
    ...

> +    }
>   
>       rc = prepare_dtb_domU(d, &kinfo);
>       if ( rc < 0 )
> @@ -3024,6 +3116,13 @@ void __init create_domUs(void)
>               panic("Missing property 'cpus' for domain %s\n",
>                     dt_node_name(node));
>   
> +        if ( dt_property_read_bool(node, "direct-map") )
> +        {
> +            if ( !IS_ENABLED(CONFIG_STATIC_MEMORY) )
> +                panic("direct-map not valid without CONFIG_STATIC_MEMORY\n");

I would print the node name (see an example above) to help the admin to 
find the "error" in the DT.

Also I would write "direct-map is not valid ...".

> +            d_cfg.flags |= XEN_DOMCTL_CDF_INTERNAL_directmap;
> +        }
> +
>           if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") &&
>                iommu_enabled )
>               d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 17:51:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 17:51:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230486.398427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwQW-0001Nx-BI; Wed, 24 Nov 2021 17:51:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230486.398427; Wed, 24 Nov 2021 17:51:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwQW-0001Nq-80; Wed, 24 Nov 2021 17:51:24 +0000
Received: by outflank-mailman (input) for mailman id 230486;
 Wed, 24 Nov 2021 17:51:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpwQU-0001Ne-QA
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 17:51:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwQU-00049s-LB; Wed, 24 Nov 2021 17:51:22 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.24.101]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwQU-0005bP-FZ; Wed, 24 Nov 2021 17:51:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=9/OAstWZhdrJPHZds0bfMhWSk/RKknvR96WFds8HWS4=; b=y2Kzb7EcZHj1o6R+du/8lnhuB0
	o8cucFCyD1qyCrCwDrheDDoPkEJh+/4m4xxDPWVZ2auLJYo6V1y5LNv8TQSaBiCXTIGjPb8Jz3PD+
	NW4Vcg1aJoTKlnB6LdzXrCLgxUsX5vUktbTj2lyxCj8gi2SFELifP1N7Z8cEiidZbMeo=;
Message-ID: <04fb338e-bbfe-7203-7c9f-fd31194a6d27@xen.org>
Date: Wed, 24 Nov 2021 17:51:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH v3 05/10] xen/arm: add ASSERT_UNREACHABLE in
 allocate_static_memory
To: Penny Zheng <penny.zheng@arm.com>, xen-devel@lists.xenproject.org,
 sstabellini@kernel.org
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-6-penny.zheng@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211116063155.901183-6-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Penny,

On 16/11/2021 06:31, Penny Zheng wrote:
> Helper allocate_static_memory is not meant to be reachable when built with

^ The helper...

> !CONFIG_STATIC_MEMORY, so this commit adds ASSERT_UNREACHABLE in it to catch
> potential misuse.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 17:52:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 17:52:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230491.398438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwRS-0001xQ-Lv; Wed, 24 Nov 2021 17:52:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230491.398438; Wed, 24 Nov 2021 17:52:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwRS-0001xJ-II; Wed, 24 Nov 2021 17:52:22 +0000
Received: by outflank-mailman (input) for mailman id 230491;
 Wed, 24 Nov 2021 17:52:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jHA0=QL=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mpwRR-0001vC-Ru
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 17:52:21 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 44829c70-4d4f-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 18:52:20 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:49306)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mpwRO-0006Gh-i0 (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 24 Nov 2021 17:52:18 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 6962A1FA84;
 Wed, 24 Nov 2021 17:52:18 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44829c70-4d4f-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <9fd0c2f4-1b8f-bcd3-93bd-eea47b61e445@srcf.net>
Date: Wed, 24 Nov 2021 17:52:17 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Ian Jackson <iwj@xenproject.org>, Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <20211124161649.83189-1-roger.pau@citrix.com>
 <24990.26451.287618.213116@mariner.uk.xensource.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max
 policies
In-Reply-To: <24990.26451.287618.213116@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/11/2021 16:24, Ian Jackson wrote:
> Roger Pau Monne writes ("[PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max policies"):
>> Shrinking max policies can lead to failures in migration as previous
>> versions of Xen didn't shrink the number of leaves in any case, so
>> it's possible for a guest created on previous versions of Xen that
>> pass CPUID data on the migration stream to contain a max leaf number
>> greatest than the one present on the max policies in versions of Xen
>> containing 540d911c28.
>>
>> Such failure was seen by osstest when doing a migration from Xen
>> 4.15 to Xen 4.16-rc on a pair of equal boxes, the noceras.
>>
>> Fix this by preventing any shrinking of the max CPUID policies, so
>> that previously built guest CPUID policies are compatible.
>>
>> Fixes: 540d911c28 ('x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents')
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ...
>> This is a regression from Xen 4.15, so should be considered for Xen
>> 4.16. The main risks would be to mess up with the CPUID policy in a
>> different way, that would also lead to brokenness. Strictly speaking
>> the change here removes the shrinking of max leaves and restores the
>> previous behavior, but it's obviously not completely risk free.
>>
>> It has proven to fix the regression seen on the noceras.
> Ouch.
>
> Questions from my RM hat:
>
> Is there a workaround ?

No.

The safety check being tripped is intended to prevent the VM crashing on
resume, and is functioning correctly.

> What proportion of machines do we think this might affect ?

Any pre-xsave machines (~2012 and older), and any newer machines booted
with no-xsave.

All AMD machines are actually broken by this, except that failure is
being masked by other changes in 4.16.  Future AMD machines will break
in the same way.

> Jan, Andy, do you have an opinion ?

The reversion doesn't go far enough.

While the shrinking of the max policies manifests as a concrete breakage
here, there is further breakage caused by shrinking the default
policies, because it renders some cpuid= settings in VM config files broken.

There is still no feedback or error checking from individual cpuid=
settings, so this will manifest as the VM admin settings silently no
longer taking effect.


I recommend a full and complete reversion of 540d911c28.  The
justification for it in the first place is especially weak because it is
explicitly contrary to how real hardware behaves, and this is the 3rd
ABI breakage it has caused, with more expected in the future based on
the analysis of what has gone wrong so far.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 18:05:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 18:05:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230497.398449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwe7-0003am-Q6; Wed, 24 Nov 2021 18:05:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230497.398449; Wed, 24 Nov 2021 18:05:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwe7-0003af-Mk; Wed, 24 Nov 2021 18:05:27 +0000
Received: by outflank-mailman (input) for mailman id 230497;
 Wed, 24 Nov 2021 18:05:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpwe6-0003aZ-32
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 18:05:26 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwe5-0004Ub-PX; Wed, 24 Nov 2021 18:05:25 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.24.101]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwe5-0006qu-Jm; Wed, 24 Nov 2021 18:05:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=KjfbGpMH6E9Y16w/GUQKjffVNbgT8z4N3SlIRGaXSLc=; b=27S8hLPKUMdz7VsyNzw+z/d1T0
	gC7eX4Jssgn6bardffU66TyRcbFtC+sIhLzvhG+/s5kTQbf/ogNrueSbwi2J2+VBlEfA8S3W1tZPb
	HDD9H+qJMb1kL0RsWdEKDahN2qyksVraSIon8ws/k9PZy375r+NRomuAO1Pq2OqiAjVY=;
Message-ID: <7b43ba9c-6741-c0de-a898-af3f7bc4a7ae@xen.org>
Date: Wed, 24 Nov 2021 18:05:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH v3 06/10] xen/arm: if direct-map domain use native
 addresses for GICv2
To: Penny Zheng <penny.zheng@arm.com>, xen-devel@lists.xenproject.org,
 sstabellini@kernel.org
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-7-penny.zheng@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211116063155.901183-7-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 16/11/2021 06:31, Penny Zheng wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> Today we use native addresses to map the GICv2 for Dom0 and fixed
> addresses for DomUs.
> 
> This patch changes the behavior so that native addresses are used for
> all domains that are direct-mapped.
> 
> NEW VGIC has different naming schemes, like referring distributor base
> address as vgic_dist_base, other than the dbase. So this patch also introduces
> vgic_dist_base/vgic_cpu_base accessor to access correct distributor base
> address/cpu interface base address on varied scenarios,
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>

I think it is more common to have the Signed-off-by of the Author first. 
Assuming the main author is Stefano, then this should be switched around.

> ---
> v2 changes
> - combine all changes in patch 4-6 here
> ---
> v3 changes
> - refine comment message
> - add a comment explaining how the 38 was found of "char buf[38]"
> - simply map the CPU interface at the GPA vgic_v2_hw.cbase
> - remove a spurious change
> ---
>   xen/arch/arm/domain_build.c    | 11 ++++++++---
>   xen/arch/arm/vgic-v2.c         | 31 ++++++++++++++++++++++---------
>   xen/arch/arm/vgic/vgic-v2.c    | 31 ++++++++++++++++++++++---------
>   xen/include/asm-arm/new_vgic.h | 10 ++++++++++
>   xen/include/asm-arm/vgic.h     | 11 +++++++++++
>   5 files changed, 73 insertions(+), 21 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index b6fde74d74..c419a4b2cc 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2230,8 +2230,13 @@ static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
>       int res = 0;
>       __be32 reg[(GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS) * 2];
>       __be32 *cells;
> +    const struct domain *d = kinfo->d;
> +    /* Placeholder for interrupt-controller@ + a 64-bit number + \0 */
> +    char buf[38];
>   
> -    res = fdt_begin_node(fdt, "interrupt-controller@"__stringify(GUEST_GICD_BASE));
> +    snprintf(buf, sizeof(buf), "interrupt-controller@%"PRIx64,
> +             vgic_dist_base(&d->arch.vgic));
> +    res = fdt_begin_node(fdt, buf);
>       if ( res )
>           return res;
>   
> @@ -2253,9 +2258,9 @@ static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
>   
>       cells = &reg[0];
>       dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
> -                       GUEST_GICD_BASE, GUEST_GICD_SIZE);
> +                       vgic_dist_base(&d->arch.vgic), GUEST_GICD_SIZE);
>       dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
> -                       GUEST_GICC_BASE, GUEST_GICC_SIZE);
> +                       vgic_cpu_base(&d->arch.vgic), GUEST_GICC_SIZE);
>   
>       res = fdt_property(fdt, "reg", reg, sizeof(reg));
>       if (res)
> diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c
> index 589c033eda..6f5492e30e 100644
> --- a/xen/arch/arm/vgic-v2.c
> +++ b/xen/arch/arm/vgic-v2.c
> @@ -654,13 +654,10 @@ static int vgic_v2_vcpu_init(struct vcpu *v)
>   static int vgic_v2_domain_init(struct domain *d)
>   {
>       int ret;
> -    paddr_t cbase, csize;
> +    paddr_t csize;
>       paddr_t vbase;
>   
> -    /*
> -     * The hardware domain gets the hardware address.
> -     * Guests get the virtual platform layout.
> -     */
> +    /* The hardware domain gets the hardware address. */

I would prefer if this comment is a summary of the if/else if/else. This 
would be easier to understand we need a different path for the hwdom
and direct-mapped domain.

"
The hardware domain and direct-mapped domains get the hardware address. 
We have to handle them separately because the hwdom is re-using the same 
Device-Tree as the host (see more details below).

Other domais get the virtual platform layout.
"

>       if ( is_hardware_domain(d) )
>       {
>           d->arch.vgic.dbase = vgic_v2_hw.dbase;
> @@ -671,10 +668,26 @@ static int vgic_v2_domain_init(struct domain *d)
>            * Note that we assume the size of the CPU interface is always
>            * aligned to PAGE_SIZE.
>            */
> -        cbase = vgic_v2_hw.cbase;
> +        d->arch.vgic.cbase = vgic_v2_hw.cbase;
>           csize = vgic_v2_hw.csize;
>           vbase = vgic_v2_hw.vbase;
>       }
> +    else if ( is_domain_direct_mapped(d) )
> +    {
> +        /*
> +         * For all the direct-mapped domain other than the hardware domain,
> +         * we only map a 8kB CPU interface but we make sure it is at a
> +         * location occupied by the physical GIC in the host device tree.
> +         *
> +         * We need to add an offset to the virtual CPU interface base
> +         * address when the GIC is aliased to get a 8kB contiguous
> +         * region.
> +         */
> +        d->arch.vgic.dbase = vgic_v2_hw.dbase;
> +        d->arch.vgic.cbase = vgic_v2_hw.cbase;
> +        csize = GUEST_GICC_SIZE;
> +        vbase = vgic_v2_hw.vbase + vgic_v2_hw.aliased_offset;
> +    }
>       else
>       {
>           d->arch.vgic.dbase = GUEST_GICD_BASE;
> @@ -685,7 +698,7 @@ static int vgic_v2_domain_init(struct domain *d)
>            * region.
>            */
>           BUILD_BUG_ON(GUEST_GICC_SIZE != SZ_8K);
> -        cbase = GUEST_GICC_BASE;
> +        d->arch.vgic.cbase = GUEST_GICC_BASE;
>           csize = GUEST_GICC_SIZE;
>           vbase = vgic_v2_hw.vbase + vgic_v2_hw.aliased_offset;
>       }
> @@ -694,8 +707,8 @@ static int vgic_v2_domain_init(struct domain *d)
>        * Map the gic virtual cpu interface in the gic cpu interface
>        * region of the guest.
>        */
> -    ret = map_mmio_regions(d, gaddr_to_gfn(cbase), csize / PAGE_SIZE,
> -                           maddr_to_mfn(vbase));
> +    ret = map_mmio_regions(d, gaddr_to_gfn(d->arch.vgic.cbase),
> +                           csize / PAGE_SIZE, maddr_to_mfn(vbase));
>       if ( ret )
>           return ret;
>   
> diff --git a/xen/arch/arm/vgic/vgic-v2.c b/xen/arch/arm/vgic/vgic-v2.c
> index b5ba4ace87..63d0f03688 100644
> --- a/xen/arch/arm/vgic/vgic-v2.c
> +++ b/xen/arch/arm/vgic/vgic-v2.c
> @@ -258,14 +258,11 @@ void vgic_v2_enable(struct vcpu *vcpu)
>   int vgic_v2_map_resources(struct domain *d)
>   {
>       struct vgic_dist *dist = &d->arch.vgic;
> -    paddr_t cbase, csize;
> +    paddr_t csize;
>       paddr_t vbase;
>       int ret;
>   
> -    /*
> -     * The hardware domain gets the hardware address.
> -     * Guests get the virtual platform layout.
> -     */
> +    /* The hardware domain gets the hardware address. */

Same as above. You could simply copy/paste the comment.

>       if ( is_hardware_domain(d) )
>       {
>           d->arch.vgic.vgic_dist_base = gic_v2_hw_data.dbase;
> @@ -276,10 +273,26 @@ int vgic_v2_map_resources(struct domain *d)
>            * Note that we assume the size of the CPU interface is always
>            * aligned to PAGE_SIZE.
>            */
> -        cbase = gic_v2_hw_data.cbase;
> +        d->arch.vgic.vgic_cpu_base = gic_v2_hw_data.cbase;
>           csize = gic_v2_hw_data.csize;
>           vbase = gic_v2_hw_data.vbase;
>       }
> +    else if ( is_domain_direct_mapped(d) )
> +    {
> +        d->arch.vgic.vgic_dist_base = gic_v2_hw_data.dbase;
> +        /*
> +         * For all the direct-mapped domain other than the hardware domain,
> +         * we only map a 8kB CPU interface but we make sure it is at a location
> +         * occupied by the physical GIC in the host device tree.
> +         *
> +         * We need to add an offset to the virtual CPU interface base
> +         * address when the GIC is aliased to get a 8kB contiguous
> +         * region.
> +         */
> +        d->arch.vgic.vgic_cpu_base = gic_v2_hw_data.cbase;
> +        csize = GUEST_GICC_SIZE;
> +        vbase = gic_v2_hw_data.vbase + gic_v2_hw_data.aliased_offset;
> +    }
>       else
>       {
>           d->arch.vgic.vgic_dist_base = GUEST_GICD_BASE;
> @@ -290,7 +303,7 @@ int vgic_v2_map_resources(struct domain *d)
>            * region.
>            */
>           BUILD_BUG_ON(GUEST_GICC_SIZE != SZ_8K);
> -        cbase = GUEST_GICC_BASE;
> +        d->arch.vgic.vgic_cpu_base = GUEST_GICC_BASE;
>           csize = GUEST_GICC_SIZE;
>           vbase = gic_v2_hw_data.vbase + gic_v2_hw_data.aliased_offset;
>       }
> @@ -308,8 +321,8 @@ int vgic_v2_map_resources(struct domain *d)
>        * Map the gic virtual cpu interface in the gic cpu interface
>        * region of the guest.
>        */
> -    ret = map_mmio_regions(d, gaddr_to_gfn(cbase), csize / PAGE_SIZE,
> -                           maddr_to_mfn(vbase));
> +    ret = map_mmio_regions(d, gaddr_to_gfn(d->arch.vgic.vgic_cpu_base),
> +                           csize / PAGE_SIZE, maddr_to_mfn(vbase));
>       if ( ret )
>       {
>           gdprintk(XENLOG_ERR, "Unable to remap VGIC CPU to VCPU\n");
> diff --git a/xen/include/asm-arm/new_vgic.h b/xen/include/asm-arm/new_vgic.h
> index 97d622bff6..ab57fcd91d 100644
> --- a/xen/include/asm-arm/new_vgic.h
> +++ b/xen/include/asm-arm/new_vgic.h
> @@ -186,6 +186,16 @@ struct vgic_cpu {
>       uint32_t num_id_bits;
>   };
>   
> +static inline paddr_t vgic_cpu_base(const struct vgic_dist *vgic)
> +{
> +    return vgic->vgic_cpu_base;
> +}
> +
> +static inline paddr_t vgic_dist_base(const struct vgic_dist *vgic)
> +{
> +    return vgic->vgic_dist_base;
> +}
> +
>   #endif /* __ASM_ARM_NEW_VGIC_H */
>   
>   /*
> diff --git a/xen/include/asm-arm/vgic.h b/xen/include/asm-arm/vgic.h
> index e69a59063a..a81a06c711 100644
> --- a/xen/include/asm-arm/vgic.h
> +++ b/xen/include/asm-arm/vgic.h
> @@ -152,6 +152,7 @@ struct vgic_dist {
>       struct pending_irq *pending_irqs;
>       /* Base address for guest GIC */
>       paddr_t dbase; /* Distributor base address */
> +    paddr_t cbase; /* CPU interface base address */
>   #ifdef CONFIG_GICV3
>       /* GIC V3 addressing */
>       /* List of contiguous occupied by the redistributors */
> @@ -271,6 +272,16 @@ static inline int REG_RANK_NR(int b, uint32_t n)
>   
>   enum gic_sgi_mode;
>   
> +static inline paddr_t vgic_cpu_base(const struct vgic_dist *vgic)
> +{
> +    return vgic->cbase;
> +}
> +
> +static inline paddr_t vgic_dist_base(const struct vgic_dist *vgic)
> +{
> +    return vgic->dbase;
> +}
> +
>   /*
>    * Offset of GICD_<FOO><n> with its rank, for GICD_<FOO> size <s> with
>    * <b>-bits-per-interrupt.
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 18:07:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 18:07:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230503.398460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwfn-0004By-5Z; Wed, 24 Nov 2021 18:07:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230503.398460; Wed, 24 Nov 2021 18:07:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwfn-0004Br-2Y; Wed, 24 Nov 2021 18:07:11 +0000
Received: by outflank-mailman (input) for mailman id 230503;
 Wed, 24 Nov 2021 18:07:10 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpwfm-0004BS-2O
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 18:07:10 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpwfm-0004Wa-1e
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 18:07:10 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpwfm-0006yx-0l
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 18:07:10 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mpwff-0003f1-1Q; Wed, 24 Nov 2021 18:07:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=G+vEv0sXV59aTdxXKeUITquHbxqNDKR3dH/yn7rZkS8=; b=Z8u6GXQGoW6GVFeVdVGEJQG0dO
	s9H/3UQpYpKLbb3vr2c+cSFjTSkACWLP+UOA9q2xG3GMG8Ja1neLb/vszya7mWPxiIBZVaNoNJdbS
	7sIUoTP8BcV9RGJclhdVCIQWMhYsL/UUonU43xM0Vfl+tPNJ4yf92IB+B7igzhtqSBWo=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24990.32581.766301.992950@mariner.uk.xensource.com>
Date: Wed, 24 Nov 2021 18:07:01 +0000
To: Roger Pau Monne <roger.pau@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    Andrew Cooper <amc96@srcf.net>
Cc: xen-devel@lists.xenproject.org,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max
 policies
In-Reply-To: <9fd0c2f4-1b8f-bcd3-93bd-eea47b61e445@srcf.net>
References: <20211124161649.83189-1-roger.pau@citrix.com>
	<24990.26451.287618.213116@mariner.uk.xensource.com>
	<9fd0c2f4-1b8f-bcd3-93bd-eea47b61e445@srcf.net>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

(Hoisting Roger and Jan to the To:)

Andrew Cooper writes ("Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max policies"):
> On 24/11/2021 16:24, Ian Jackson wrote:
> > Questions from my RM hat:
> >
> > Is there a workaround ?
> 
> No.
> 
> The safety check being tripped is intended to prevent the VM crashing on
> resume, and is functioning correctly.
> 
> > What proportion of machines do we think this might affect ?
> 
> Any pre-xsave machines (~2012 and older), and any newer machines booted
> with no-xsave.
> 
> All AMD machines are actually broken by this, except that failure is
> being masked by other changes in 4.16. Future AMD machines will break
> in the same way.

This is quite bad, then, I think.  I'm inclined to treat this as a
blocker for the release.

> > Jan, Andy, do you have an opinion ?
> 
> The reversion doesn't go far enough.
> 
> While the shrinking of the max policies manifests as a concrete breakage
> here, there is further breakage caused by shrinking the default
> policies, because it renders some cpuid= settings in VM config files broken.
> 
> There is still no feedback or error checking from individual cpuid=
> settings, so this will manifest as the VM admin settings silently no
> longer taking effect.
> 
> 
> I recommend a full and complete reversion of 540d911c28. The
> justification for it in the first place is especially weak because it is
> explicitly contrary to how real hardware behaves, and this is the 3rd
> ABI breakage it has caused, with more expected in the future based on
> the analysis of what has gone wrong so far.

I would like to collect as many opinions as possible.  Do we have
other options besides (a) reverting 540d911c28, or (b) releasing with
this bug ?

What bad consequences follow, for users of Xen, from reverting
540d911c28 ?  Presumably it had some purpose which will be undermined
by reverting it.  The commit message speaks of details but doesn't
explain the ultimate impact, at least not to someone like me who only
dimly perceives the underlying technical aspects.

I did an experimental git-revert.  It seemed to go cleanly.
If we go for the revert, we would need a commit message.

I would like to make a decision tomorrow if at all possible.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 18:12:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 18:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230507.398470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwkS-0005Zh-OJ; Wed, 24 Nov 2021 18:12:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230507.398470; Wed, 24 Nov 2021 18:12:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwkS-0005Za-LP; Wed, 24 Nov 2021 18:12:00 +0000
Received: by outflank-mailman (input) for mailman id 230507;
 Wed, 24 Nov 2021 18:11:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpwkR-0005ZU-Bm
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 18:11:59 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwkR-0004bG-8F; Wed, 24 Nov 2021 18:11:59 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.24.101]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwkR-0007cQ-20; Wed, 24 Nov 2021 18:11:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=/BFADbUzzb80bEpwOUCbJBP8dtiIgUifDtL9gVSTO2Q=; b=CYiGgakQNI/pELCJJZBlOtWE4W
	LPt2xzNtzNdLVeFn8z0GAG/ad8Dpdv155s9vesLOS3CJsjNMUIlmIMjCiGBqwTzEUZqMbUEfcBX2h
	xtM7MS3v0MYYu+A4KCuMA7m6B23yFi69raL2JLUXYETwsuZvKQz/hgUAaAWSyWZ2vu84=;
Message-ID: <11418149-7136-45bd-b3aa-bccbde91eda3@xen.org>
Date: Wed, 24 Nov 2021 18:11:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH v3 07/10] xen/arm: gate make_gicv3_domU_node with
 CONFIG_GICV3
To: Penny Zheng <penny.zheng@arm.com>, xen-devel@lists.xenproject.org,
 sstabellini@kernel.org
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-8-penny.zheng@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211116063155.901183-8-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Penny,

On 16/11/2021 06:31, Penny Zheng wrote:
> This commit gates function make_gicv3_domU_node with CONFIG_GICV3, and
> also adds ASSERT_UNREACHABLE to catch any misuse.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> ---
> v3 changes:
> - new commit
> ---
>   xen/arch/arm/domain_build.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index c419a4b2cc..24f3edf069 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2279,6 +2279,7 @@ static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
>       return res;
>   }
>   
> +#ifdef CONFIG_GICV3
>   static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
>   {
>       void *fdt = kinfo->fdt;
> @@ -2328,6 +2329,12 @@ static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
>   
>       return res;
>   }
> +#else
> +static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
> +{
> +    ASSERT_UNREACHABLE();

This will break compilation on at least prod build with CONFIG_GICV3=n. 
However...

> +}
> +#endif

... I would prefer to #ifdef the case (as you did in the previous 
version). That said, if you strongly prefer this approach then I am OK 
with it.

>   
>   static int __init make_gic_domU_node(struct kernel_info *kinfo)
>   {
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 18:27:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 18:27:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230513.398481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwyi-00076l-W9; Wed, 24 Nov 2021 18:26:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230513.398481; Wed, 24 Nov 2021 18:26:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpwyi-00076e-T6; Wed, 24 Nov 2021 18:26:44 +0000
Received: by outflank-mailman (input) for mailman id 230513;
 Wed, 24 Nov 2021 18:26:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpwyh-00076Y-Hi
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 18:26:43 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwyh-0004qJ-C9; Wed, 24 Nov 2021 18:26:43 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.24.101]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpwyh-0000E8-6O; Wed, 24 Nov 2021 18:26:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=B9giwXTpsZpG+XAw5GreksZ8Hk5Jl9wvpMD9sgxnD5o=; b=pH8iD9N49Qy7sYCs1Z1PVNXN1l
	XX6fkSYECCg5+qSz5NgkLVaGi2DHfqYz+Xj8NmuQDXtDzwBYuR0GwW92cmO8OC0PuuBYA1GaX5Dlh
	WCZDkzJLi4Ecn95EeXG4aj+U8QUtNDLC2POfY+SfQ6EwQfHwFOMM6x1ExD9nVZJV3J58=;
Message-ID: <4ba84598-0c67-9b73-ba15-a93ee1dafa5d@xen.org>
Date: Wed, 24 Nov 2021 18:26:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH v3 08/10] xen/arm: if direct-map domain use native
 addresses for GICv3
To: Penny Zheng <penny.zheng@arm.com>, xen-devel@lists.xenproject.org,
 sstabellini@kernel.org
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-9-penny.zheng@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211116063155.901183-9-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Penny,

On 16/11/2021 06:31, Penny Zheng wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> Today we use native addresses to map the GICv3 for Dom0 and fixed
> addresses for DomUs.
> 
> This patch changes the behavior so that native addresses are used for
> all domain which is using the host memory layout
> 
> Considering that DOM0 may not always be directly mapped in the future,
> this patch introduces a new helper "domain_use_host_layout()" that
> wraps both two check "is_domain_direct_mapped(d) || is_hardware_domain(d)"
> for more flexible usage.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>

Same remark as another patch about the order of the signed-off-by.

> ---
> v2 changes:
> - remove redistributor accessor
> - introduce new helper "is_domain_use_host_layout()"
> - comment fix
> ---
> v3 changes:
> - the comment on top of 'buf' to explain how 38 was found
> - fix res getting overwritten
> - drop 'cells += (GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS)'
> - free 'reg' right way
> - fix comment
> - rename 'is_domain_use_host_layout()' to 'domain_use_host_layout()'
> ---
>   xen/arch/arm/domain_build.c  | 37 +++++++++++++++++++++++++++---------
>   xen/arch/arm/vgic-v3.c       | 29 ++++++++++++++++------------
>   xen/include/asm-arm/domain.h |  7 +++++++
>   3 files changed, 52 insertions(+), 21 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 24f3edf069..61fd374c5d 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2284,10 +2284,16 @@ static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
>   {
>       void *fdt = kinfo->fdt;
>       int res = 0;
> -    __be32 reg[(GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS) * 2];
> -    __be32 *cells;
> +    __be32 *reg;
> +    const struct domain *d = kinfo->d;
> +    /* Placeholder for interrupt-controller@ + a 64-bit number + \0 */
> +    char buf[38];
> +    unsigned int i, len = 0;
>   
> -    res = fdt_begin_node(fdt, "interrupt-controller@"__stringify(GUEST_GICV3_GICD_BASE));
> +    snprintf(buf, sizeof(buf), "interrupt-controller@%"PRIx64,
> +             vgic_dist_base(&d->arch.vgic));
> +
> +    res = fdt_begin_node(fdt, buf);
>       if ( res )
>           return res;
>   
> @@ -2307,13 +2313,26 @@ static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
>       if ( res )
>           return res;
>   
> -    cells = &reg[0];
> -    dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
> -                       GUEST_GICV3_GICD_BASE, GUEST_GICV3_GICD_SIZE);
> -    dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
> -                       GUEST_GICV3_GICR0_BASE, GUEST_GICV3_GICR0_SIZE);
> +    /* reg specifies all re-distributors and Distributor. */
> +    len = (GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS) *
> +          (d->arch.vgic.nr_regions + 1) * sizeof(__be32);
> +    reg = xmalloc_bytes(len);
> +    if ( reg == NULL )
> +        return -ENOMEM;
>   
> -    res = fdt_property(fdt, "reg", reg, sizeof(reg));
> +    dt_child_set_range(&reg, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
> +                       vgic_dist_base(&d->arch.vgic), GUEST_GICV3_GICD_SIZE);
> +
> +    for ( i = 0; i < d->arch.vgic.nr_regions; i++)
> +    {
> +        dt_child_set_range(&reg,
> +                           GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
> +                           d->arch.vgic.rdist_regions[i].base,
> +                           d->arch.vgic.rdist_regions[i].size);
> +    }
> +
> +    res = fdt_property(fdt, "reg", reg, len);
> +    xfree(reg);
>       if (res)
>           return res;
>   
> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
> index 65bb7991a6..181b66513d 100644
> --- a/xen/arch/arm/vgic-v3.c
> +++ b/xen/arch/arm/vgic-v3.c
> @@ -1640,14 +1640,15 @@ static inline unsigned int vgic_v3_max_rdist_count(struct domain *d)
>        * Normally there is only one GICv3 redistributor region.
>        * The GICv3 DT binding provisions for multiple regions, since there are
>        * platforms out there which need those (multi-socket systems).
> -     * For Dom0 we have to live with the MMIO layout the hardware provides,
> -     * so we have to copy the multiple regions - as the first region may not
> -     * provide enough space to hold all redistributors we need.
> +     * For domain using the host memory layout, we have to live with the MMIO
> +     * layout the hardware provides, so we have to copy the multiple regions
> +     * - as the first region may not provide enough space to hold all
> +     * redistributors we need.
>        * However DomU get a constructed memory map, so we can go with
>        * the architected single redistributor region.
>        */
> -    return is_hardware_domain(d) ? vgic_v3_hw.nr_rdist_regions :
> -               GUEST_GICV3_RDIST_REGIONS;
> +    return domain_use_host_layout(d) ? vgic_v3_hw.nr_rdist_regions :
> +                                       GUEST_GICV3_RDIST_REGIONS;
>   }
>   
>   static int vgic_v3_domain_init(struct domain *d)
> @@ -1669,10 +1670,14 @@ static int vgic_v3_domain_init(struct domain *d)
>       radix_tree_init(&d->arch.vgic.pend_lpi_tree);
>   
>       /*
> -     * Domain 0 gets the hardware address.
> -     * Guests get the virtual platform layout.
> +     * Since we map the whole GICv3 register memory map(64KB) for
> +     * all domain, DOM0 and direct-map domain could be treated the
> +     * same way here.

I find this confusing because it is not clear what you refer to with the 
"register memory map" here (I think you mean the Distributor). That 
said, I would drop this paragraph as what matters is we are using the 
same layout as the host.

> +     * For domain using the host memory layout, it gets the hardware
> +     * address.
> +     * Other domains get the virtual platform layout.
>        */
> -    if ( is_hardware_domain(d) )
> +    if ( domain_use_host_layout(d) )
>       {
>           unsigned int first_cpu = 0;
>   
> @@ -1695,10 +1700,10 @@ static int vgic_v3_domain_init(struct domain *d)
>           }
>   
>           /*
> -         * The hardware domain may not use all the re-distributors
> -         * regions (e.g when the number of vCPUs does not match the
> -         * number of pCPUs). Update the number of regions to avoid
> -         * exposing unused region as they will not get emulated.
> +         * For domain using the host memory layout, it may not use all
> +         * the re-distributors regions (e.g when the number of vCPUs does
> +         * not match the number of pCPUs). Update the number of regions to
> +         * avoid exposing unused region as they will not get emulated.
>            */
>           d->arch.vgic.nr_regions = i + 1;
>   
> diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
> index 4f2c3f09d4..0eff93197e 100644
> --- a/xen/include/asm-arm/domain.h
> +++ b/xen/include/asm-arm/domain.h
> @@ -32,6 +32,13 @@ enum domain_type {
>   #define is_domain_direct_mapped(d) \
>           (d->options & XEN_DOMCTL_CDF_INTERNAL_directmap)
>   
> +/*
> + * For domain using the host memory layout, we have to live with the MMIO
> + * layout the hardware provides.
> + */

How about:

/*
  * Is the domain using the host memory layout?
  *
  * Direct-mapped domain will always have the RAM mapped with GFN == 
MFN.
  * To avoid any trouble finding space, it is easier to force using the
  * host memory layout.
  *
  * The hardware domain will use the host layout regardless of
  * direct-mapped because some OS may rely on a specific address ranges
  * for the devices.
  */

> +#define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
> +                                   is_hardware_domain(d))
> +
>   struct vtimer {
>       struct vcpu *v;
>       int irq;
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 18:39:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 18:39:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230521.398493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpxBM-0000FW-9Y; Wed, 24 Nov 2021 18:39:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230521.398493; Wed, 24 Nov 2021 18:39:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpxBM-0000FP-5E; Wed, 24 Nov 2021 18:39:48 +0000
Received: by outflank-mailman (input) for mailman id 230521;
 Wed, 24 Nov 2021 18:39:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mpxBL-0000FJ-FO
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 18:39:47 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpxBK-00054K-U9; Wed, 24 Nov 2021 18:39:46 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.24.101]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mpxBK-0001Cy-Ob; Wed, 24 Nov 2021 18:39:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=RUrLEThyFi+dsIJEyXUhk18hjUENoXvrEsEY81+8tIk=; b=p8zFlF1onL5LorvvKHbdxzNl38
	X1yZ+1NR0tdn10CwFjioOBoSTv4ckmFFwAoBQ/k2HOh6cU+rqyEPkl/4TEge4mO0kJMDLlKHYbEDq
	5JVfKdwZQLfXxscbqZhc8aWEil0RkEVmma5oYcsD4gdBvpIZONdmtaEtr4dzjyQUokaU=;
Message-ID: <cdb399c5-4c9a-cc76-40a7-9a32a024666c@xen.org>
Date: Wed, 24 Nov 2021 18:39:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH v3 09/10] xen/arm: if direct-map domain use native UART
 address and IRQ number for vPL011
To: Penny Zheng <penny.zheng@arm.com>, xen-devel@lists.xenproject.org,
 sstabellini@kernel.org
Cc: Bertrand.Marquis@arm.com, Wei.Chen@arm.com
References: <20211116063155.901183-1-penny.zheng@arm.com>
 <20211116063155.901183-10-penny.zheng@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20211116063155.901183-10-penny.zheng@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Penny,

On 16/11/2021 06:31, Penny Zheng wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> 
> We always use a fix address to map the vPL011 to domains. The address
> could be a problem for direct-map domains.
> 
> So, for domains that are directly mapped, reuse the address of the
> physical UART on the platform to avoid potential clashes.
> 
> Do the same for the virtual IRQ number: instead of always using
> GUEST_VPL011_SPI, try to reuse the physical SPI number if possible.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>

AFAICT, you exchanged the signed-off-by compare to the previous version. 
May I ask why?

> ---
> v2 changes:
> - explain why vpl011 initialization before creating its device tree node
> - error out if the domain is direct-mapped and the IRQ is not found
> - harden the code and add a check/comment when the hardware UART region
> is smaller than GUEST_VPL011_SIZE.
> ---
> v3 changes:
> - explain how the '27' was found for 'buf'
> - fix checking before dereferencing
> - refine comment message
> ---
>   xen/arch/arm/domain_build.c  | 42 ++++++++++++++++++++-----
>   xen/arch/arm/vpl011.c        | 60 +++++++++++++++++++++++++++++++-----
>   xen/include/asm-arm/vpl011.h |  2 ++
>   3 files changed, 90 insertions(+), 14 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 61fd374c5d..871c7114ae 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -30,6 +30,7 @@
>   
>   #include <xen/irq.h>
>   #include <xen/grant_table.h>
> +#include <xen/serial.h>
>   
>   static unsigned int __initdata opt_dom0_max_vcpus;
>   integer_param("dom0_max_vcpus", opt_dom0_max_vcpus);
> @@ -2376,8 +2377,12 @@ static int __init make_vpl011_uart_node(struct kernel_info *kinfo)
>       gic_interrupt_t intr;
>       __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
>       __be32 *cells;
> +    struct domain *d = kinfo->d;
> +    /* Placeholder for sbsa-uart@ + a 64-bit number + \0 */
> +    char buf[27];
>   
> -    res = fdt_begin_node(fdt, "sbsa-uart@"__stringify(GUEST_PL011_BASE));
> +    snprintf(buf, sizeof(buf), "sbsa-uart@%"PRIx64, d->arch.vpl011.base_addr);
> +    res = fdt_begin_node(fdt, buf);
>       if ( res )
>           return res;
>   
> @@ -2387,14 +2392,14 @@ static int __init make_vpl011_uart_node(struct kernel_info *kinfo)
>   
>       cells = &reg[0];
>       dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS,
> -                       GUEST_ROOT_SIZE_CELLS, GUEST_PL011_BASE,
> +                       GUEST_ROOT_SIZE_CELLS, d->arch.vpl011.base_addr,
>                          GUEST_PL011_SIZE);
>   
>       res = fdt_property(fdt, "reg", reg, sizeof(reg));
>       if ( res )
>           return res;
>   
> -    set_interrupt(intr, GUEST_VPL011_SPI, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
> +    set_interrupt(intr, d->arch.vpl011.virq, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
>   
>       res = fdt_property(fdt, "interrupts", intr, sizeof (intr));
>       if ( res )
> @@ -3109,6 +3114,14 @@ static int __init construct_domU(struct domain *d,
>               allocate_static_memory(d, &kinfo, node);
>       }
>   
> +    /*
> +     * Base address and irq number are needed when creating vpl011 device
> +     * tree node in prepare_dtb_domU, so initialization on related variables
> +     * shall be done first.
> +     */
> +    if ( kinfo.vpl011 )
> +        rc = domain_vpl011_init(d, NULL);
> +
>       rc = prepare_dtb_domU(d, &kinfo);
>       if ( rc < 0 )
>           return rc;
> @@ -3117,9 +3130,6 @@ static int __init construct_domU(struct domain *d,
>       if ( rc < 0 )
>           return rc;
>   
> -    if ( kinfo.vpl011 )
> -        rc = domain_vpl011_init(d, NULL);
> -
>       return rc;
>   }
>   
> @@ -3161,15 +3171,33 @@ void __init create_domUs(void)
>   
>           if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
>           {
> +            unsigned int vpl011_virq = GUEST_VPL011_SPI;
> +
>               d_cfg.arch.nr_spis = gic_number_lines() - 32;
>   
> +            /*
> +             * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
> +             * set, in which case it'll match the hardware.
> +             *
> +             * Since here the domain is not totally built, we need to

The domain is not even built at this point. So I would say, "Since the 
domain is not yet created, we can't use d->arch.vpl011.irq. So the logic 
to find the vIRQ has to be hardcoded.".

> +             * open-code the logic to find the vIRQ. and the logic here

You added a full stop. So s/and the/The/.

> +             * is consistent with the ones in domain_vpl011_init().

s/ones/one/ I think.

> +             */
> +            if ( d_cfg.flags & XEN_DOMCTL_CDF_INTERNAL_directmap )
> +            {
> +                vpl011_virq = serial_irq(SERHND_DTUART);
> +                if ( vpl011_virq < 0 )
> +                    panic("Error getting IRQ number for this serial port %d\n",
> +                          SERHND_DTUART);
> +            }
> +
>               /*
>                * vpl011 uses one emulated SPI. If vpl011 is requested, make
>                * sure that we allocate enough SPIs for it.
>                */
>               if ( dt_property_read_bool(node, "vpl011") )
>                   d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
> -                                         GUEST_VPL011_SPI - 32 + 1);
> +                                         vpl011_virq - 32 + 1);
>           }
>   
>           /*
> diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
> index 895f436cc4..65610bccaf 100644
> --- a/xen/arch/arm/vpl011.c
> +++ b/xen/arch/arm/vpl011.c
> @@ -29,6 +29,7 @@
>   #include <xen/mm.h>
>   #include <xen/sched.h>
>   #include <xen/console.h>
> +#include <xen/serial.h>
>   #include <public/domctl.h>
>   #include <public/io/console.h>
>   #include <asm/pl011-uart.h>
> @@ -71,11 +72,11 @@ static void vpl011_update_interrupt_status(struct domain *d)
>        * status bit has been set since the last time.
>        */
>       if ( uartmis & ~vpl011->shadow_uartmis )
> -        vgic_inject_irq(d, NULL, GUEST_VPL011_SPI, true);
> +        vgic_inject_irq(d, NULL, vpl011->virq, true);
>   
>       vpl011->shadow_uartmis = uartmis;
>   #else
> -    vgic_inject_irq(d, NULL, GUEST_VPL011_SPI, uartmis);
> +    vgic_inject_irq(d, NULL, vpl011->virq, uartmis);
>   #endif
>   }
>   
> @@ -347,7 +348,8 @@ static int vpl011_mmio_read(struct vcpu *v,
>                               void *priv)
>   {
>       struct hsr_dabt dabt = info->dabt;
> -    uint32_t vpl011_reg = (uint32_t)(info->gpa - GUEST_PL011_BASE);
> +    uint32_t vpl011_reg = (uint32_t)(info->gpa -
> +                                     v->domain->arch.vpl011.base_addr);
>       struct vpl011 *vpl011 = &v->domain->arch.vpl011;
>       struct domain *d = v->domain;
>       unsigned long flags;
> @@ -430,7 +432,8 @@ static int vpl011_mmio_write(struct vcpu *v,
>                                void *priv)
>   {
>       struct hsr_dabt dabt = info->dabt;
> -    uint32_t vpl011_reg = (uint32_t)(info->gpa - GUEST_PL011_BASE);
> +    uint32_t vpl011_reg = (uint32_t)(info->gpa -
> +                                     v->domain->arch.vpl011.base_addr);
>       struct vpl011 *vpl011 = &v->domain->arch.vpl011;
>       struct domain *d = v->domain;
>       unsigned long flags;
> @@ -626,6 +629,49 @@ int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
>       if ( vpl011->backend.dom.ring_buf )
>           return -EINVAL;
>   
> +    /*
> +     * The VPL011 virq is GUEST_VPL011_SPI, except for direct-map domains
> +     * where the hardware value shall be used.
> +     * And the logic here should stay in sync with the one in

I would drop "And".

> +     * create_domUs().
> +     */
> +    if ( is_domain_direct_mapped(d) )
> +    {
> +        const struct vuart_info *uart = serial_vuart_info(SERHND_DTUART);
> +        int vpl011_irq = serial_irq(SERHND_DTUART);
> +
> +        if ( (uart != NULL) && (vpl011_irq > 0) )
> +        {
> +            vpl011->base_addr = uart->base_addr;
> +            vpl011->virq = vpl011_irq;
> +        }
> +        else
> +        {
> +            printk(XENLOG_ERR
> +                   "vpl011: Unable to re-use the Xen UART information.\n");
> +            return -EINVAL;
> +        }
> +
> +        /*
> +         * Since the PL011 we emulate for the guest requires a 4KB region,
> +         * and on some Hardware (e.g. on some sunxi SoC), the UART MMIO
> +         * region is less than 4KB, in which case, there may exist multiple
> +         * devices within the same 4KB region, here adds the following check to
> +         * prevent potential known pitfalls
> +         */
> +        if ( uart->size < GUEST_PL011_SIZE )
> +        {
> +            printk(XENLOG_ERR
> +                   "vpl011: Can't re-use the Xen UART MMIO region as it is too small.\n");
> +            return -EINVAL;
> +        }
> +    }
> +    else
> +    {
> +        vpl011->base_addr = GUEST_PL011_BASE;
> +        vpl011->virq = GUEST_VPL011_SPI;
> +    }
> +
>       /*
>        * info is NULL when the backend is in Xen.
>        * info is != NULL when the backend is in a domain.
> @@ -661,7 +707,7 @@ int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
>           }
>       }
>   
> -    rc = vgic_reserve_virq(d, GUEST_VPL011_SPI);
> +    rc = vgic_reserve_virq(d, vpl011->virq);
>       if ( !rc )
>       {
>           rc = -EINVAL;
> @@ -673,12 +719,12 @@ int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
>       spin_lock_init(&vpl011->lock);
>   
>       register_mmio_handler(d, &vpl011_mmio_handler,
> -                          GUEST_PL011_BASE, GUEST_PL011_SIZE, NULL);
> +                          vpl011->base_addr, GUEST_PL011_SIZE, NULL);
>   
>       return 0;
>   
>   out2:
> -    vgic_free_virq(d, GUEST_VPL011_SPI);
> +    vgic_free_virq(d, vpl011->virq);
>   
>   out1:
>       if ( vpl011->backend_in_domain )
> diff --git a/xen/include/asm-arm/vpl011.h b/xen/include/asm-arm/vpl011.h
> index e6c7ab7381..c09abcd7a9 100644
> --- a/xen/include/asm-arm/vpl011.h
> +++ b/xen/include/asm-arm/vpl011.h
> @@ -53,6 +53,8 @@ struct vpl011 {
>       uint32_t    uarticr;        /* Interrupt clear register */
>       uint32_t    uartris;        /* Raw interrupt status register */
>       uint32_t    shadow_uartmis; /* shadow masked interrupt register */
> +    paddr_t     base_addr;
> +    unsigned int virq;
>       spinlock_t  lock;
>       evtchn_port_t evtchn;
>   };
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 18:47:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 18:47:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230526.398503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpxIS-0001es-16; Wed, 24 Nov 2021 18:47:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230526.398503; Wed, 24 Nov 2021 18:47:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpxIR-0001el-UK; Wed, 24 Nov 2021 18:47:07 +0000
Received: by outflank-mailman (input) for mailman id 230526;
 Wed, 24 Nov 2021 18:47:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jHA0=QL=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mpxIQ-0001ef-Cb
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 18:47:06 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eae39735-4d56-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 19:47:05 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:33430)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mpxIO-000Tky-70 (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 24 Nov 2021 18:47:04 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id E886E1FBF1;
 Wed, 24 Nov 2021 18:47:03 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eae39735-4d56-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <471892da-6e64-2faa-3198-3859531c4d11@srcf.net>
Date: Wed, 24 Nov 2021 18:47:03 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Ian Jackson <iwj@xenproject.org>, Roger Pau Monne <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <20211124161649.83189-1-roger.pau@citrix.com>
 <24990.26451.287618.213116@mariner.uk.xensource.com>
 <9fd0c2f4-1b8f-bcd3-93bd-eea47b61e445@srcf.net>
 <24990.32581.766301.992950@mariner.uk.xensource.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max
 policies
In-Reply-To: <24990.32581.766301.992950@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/11/2021 18:07, Ian Jackson wrote:
> (Hoisting Roger and Jan to the To:)
>
> Andrew Cooper writes ("Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max policies"):
>> On 24/11/2021 16:24, Ian Jackson wrote:
>>> Questions from my RM hat:
>>>
>>> Is there a workaround ?
>> No.
>>
>> The safety check being tripped is intended to prevent the VM crashing on
>> resume, and is functioning correctly.
>>
>>> What proportion of machines do we think this might affect ?
>> Any pre-xsave machines (~2012 and older), and any newer machines booted
>> with no-xsave.
>>
>> All AMD machines are actually broken by this, except that failure is
>> being masked by other changes in 4.16.  Future AMD machines will break
>> in the same way.
> This is quite bad, then, I think.  I'm inclined to treat this as a
> blocker for the release.

I would also classify it as a blocker.

>
>>> Jan, Andy, do you have an opinion ?
>> The reversion doesn't go far enough.
>>
>> While the shrinking of the max policies manifests as a concrete breakage
>> here, there is further breakage caused by shrinking the default
>> policies, because it renders some cpuid= settings in VM config files broken.
>>
>> There is still no feedback or error checking from individual cpuid=
>> settings, so this will manifest as the VM admin settings silently no
>> longer taking effect.
>>
>>
>> I recommend a full and complete reversion of 540d911c28.  The
>> justification for it in the first place is especially weak because it is
>> explicitly contrary to how real hardware behaves, and this is the 3rd
>> ABI breakage it has caused, with more expected in the future based on
>> the analysis of what has gone wrong so far.
> I would like to collect as many opinions as possible.  Do we have
> other options besides (a) reverting 540d911c28, or (b) releasing with
> this bug ?

There is a 3rd option of taking this patch as-is, which is half way
between (a) and (b), but anything other than (a) leaves us with known
breakages that have no workaround.

Shutting the VM down on the old host, copying it's disks and config file
manually, then booting it clean would avoid this specific breakage on
migrate, but you'd still be subject to the silent breakage from certain
cpuid= settings not taking effect.

> What bad consequences follow, for users of Xen, from reverting
> 540d911c28 ?

Nothing.  It will take everything back to the same behaviour as 4.15 and
older.

>   Presumably it had some purpose which will be undermined
> by reverting it.  The commit message speaks of details but doesn't
> explain the ultimate impact, at least not to someone like me who only
> dimly perceives the underlying technical aspects.

540d911c28 "fixes" an issue which is theoretical at best.

Real hardware behaviour does not trim max leaf when certain features are
turned off, and will report blocks of trailing zeros.

None of the software manuals permit any inference based on max leaf,
which is why the 4.15 behaviour has been fine for the lifetime of Xen so
far.

> I did an experimental git-revert.  It seemed to go cleanly.
> If we go for the revert, we would need a commit message.

It may revert cleanly, but it won't build because of the first hunk in
81da2b544cbb00.  That hunk needs reverting too, because it too breaks
some cpuid= settings in VM config files.

In principle, the *final* thing the toolstack should do, *for brand new
VMs only*, is a shrink of that form, but this depends on whole load more
toolstack work before it can be done safely.  There is a plan to fix
CPUID handling, in a safe way, and it is ongoing (subject to all the
security interruptions), but has a long way to go yet.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 19:01:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 19:01:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230533.398514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpxWQ-0003vd-9u; Wed, 24 Nov 2021 19:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230533.398514; Wed, 24 Nov 2021 19:01:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpxWQ-0003vW-6k; Wed, 24 Nov 2021 19:01:34 +0000
Received: by outflank-mailman (input) for mailman id 230533;
 Wed, 24 Nov 2021 19:01:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpxWO-0003vQ-Le
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 19:01:32 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpxWO-0005RE-KD
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 19:01:32 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mpxWO-0002vt-J3
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 19:01:32 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mpxWI-0003po-5i; Wed, 24 Nov 2021 19:01:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=fsuy9+dyrRJagqIIIYCSilzdckFKY0AhaGR2LBwoxn4=; b=tyB6cabl5uFi0rkKoLBrmyqj+O
	krJNznv4De+NnjN1LvLp9TCOx7OVHhcePKBZdAs4clg5CbBFUpOksHdDjgvOgVAe3VSPXbhu8reU+
	gwCEOQ+edpMDa2ncavYktsKMgnwN4yckBCr204/z4ewquDGRZbyWlhEzCTXIYduFtWco=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24990.35845.537742.58478@mariner.uk.xensource.com>
Date: Wed, 24 Nov 2021 19:01:25 +0000
To: Andrew Cooper <amc96@srcf.net>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
    Jan Beulich <jbeulich@suse.com>,
    xen-devel@lists.xenproject.org,
    Andrew Cooper  <andrew.cooper3@citrix.com>,
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max
 policies
In-Reply-To: <471892da-6e64-2faa-3198-3859531c4d11@srcf.net>
References: <20211124161649.83189-1-roger.pau@citrix.com>
	<24990.26451.287618.213116@mariner.uk.xensource.com>
	<9fd0c2f4-1b8f-bcd3-93bd-eea47b61e445@srcf.net>
	<24990.32581.766301.992950@mariner.uk.xensource.com>
	<471892da-6e64-2faa-3198-3859531c4d11@srcf.net>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Andrew Cooper writes ("Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max policies"):
> It may revert cleanly, but it won't build because of the first hunk in
> 81da2b544cbb00. That hunk needs reverting too, because it too breaks
> some cpuid= settings in VM config files.

Would you be able to prepare the two-patch series (?) that does the
necessary reverts ?

> In principle, the *final* thing the toolstack should do, *for brand new
> VMs only*, is a shrink of that form, but this depends on whole load more
> toolstack work before it can be done safely. There is a plan to fix
> CPUID handling, in a safe way, and it is ongoing (subject to all the
> security interruptions), but has a long way to go yet.

For clarity: I think you are discussing future aspirations, which do
not concern us for 4.16.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 19:04:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 19:04:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230539.398528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpxYe-0004Xt-NT; Wed, 24 Nov 2021 19:03:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230539.398528; Wed, 24 Nov 2021 19:03:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpxYe-0004Xm-KS; Wed, 24 Nov 2021 19:03:52 +0000
Received: by outflank-mailman (input) for mailman id 230539;
 Wed, 24 Nov 2021 19:03:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jHA0=QL=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mpxYd-0004XJ-Di
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 19:03:51 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4205b5fb-4d59-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 20:03:50 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:38880)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mpxYb-000aj2-nh (Exim 4.95) (return-path <amc96@srcf.net>);
 Wed, 24 Nov 2021 19:03:49 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 2FA4E1FDB0;
 Wed, 24 Nov 2021 19:03:49 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4205b5fb-4d59-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <c22b2d35-7b72-3e44-ce92-2a3fab20af5e@srcf.net>
Date: Wed, 24 Nov 2021 19:03:49 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max
 policies
Content-Language: en-GB
To: Ian Jackson <iwj@xenproject.org>
Cc: Roger Pau Monne <roger.pau@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Liu <wl@xen.org>
References: <20211124161649.83189-1-roger.pau@citrix.com>
 <24990.26451.287618.213116@mariner.uk.xensource.com>
 <9fd0c2f4-1b8f-bcd3-93bd-eea47b61e445@srcf.net>
 <24990.32581.766301.992950@mariner.uk.xensource.com>
 <471892da-6e64-2faa-3198-3859531c4d11@srcf.net>
 <24990.35845.537742.58478@mariner.uk.xensource.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <24990.35845.537742.58478@mariner.uk.xensource.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/11/2021 19:01, Ian Jackson wrote:
> Andrew Cooper writes ("Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max policies"):
>> It may revert cleanly, but it won't build because of the first hunk in
>> 81da2b544cbb00.  That hunk needs reverting too, because it too breaks
>> some cpuid= settings in VM config files.
> Would you be able to prepare the two-patch series (?) that does the
> necessary reverts ?

I'd do it as a single patch, but I can try to prepare one.

>> In principle, the *final* thing the toolstack should do, *for brand new
>> VMs only*, is a shrink of that form, but this depends on whole load more
>> toolstack work before it can be done safely.  There is a plan to fix
>> CPUID handling, in a safe way, and it is ongoing (subject to all the
>> security interruptions), but has a long way to go yet.
> For clarity: I think you are discussing future aspirations, which do
> not concern us for 4.16.

Correct.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 20:54:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 20:54:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230550.398569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHE-0006ou-8m; Wed, 24 Nov 2021 20:54:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230550.398569; Wed, 24 Nov 2021 20:54:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHD-0006lt-U4; Wed, 24 Nov 2021 20:53:59 +0000
Received: by outflank-mailman (input) for mailman id 230550;
 Wed, 24 Nov 2021 20:53:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vMcq=QL=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpzHC-0006Ii-7a
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 20:53:58 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a46d192c-4d68-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 21:53:57 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id r26so10535265lfn.8
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 12:53:57 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id j11sm97608ljc.9.2021.11.24.12.53.56
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 24 Nov 2021 12:53:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a46d192c-4d68-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=nydXLX52YwrHL717y8JqACIh70K6s4jPJYJ5FVkEQUc=;
        b=S0/Hy1VQztqXfLaIdZ7NRLcy4Cgt6AjxC+os3QZfoymrzkANGOjalWy4PtASDhqR04
         pm2YGuGHn9XAoNxspfeD2BLjYJYjVd35jWL8n4aUjcM6uMr+LmjP2bpqByxIQ3+jnDtl
         GpbI92uRpPAX2LTIrua/vR8eVu4Oa8D/DrLbUKeDp5zhCz7PJcw1fDQLKjGOKrYlgfAz
         Cgad1nVB+6DyjxeTHMuA7GpiLVQvKd/xwkSzmYVmATePlD+6UnEAtovn99Y/+3LL8+0T
         a2eSjaZ9kJ7aim9YZugUpe9w2xjQ64bl/BKq8E/eqb7shRsHSxrlf4LEoRsQ65dFIOhP
         swDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=nydXLX52YwrHL717y8JqACIh70K6s4jPJYJ5FVkEQUc=;
        b=F/BB67iDsyFxOf6lirEEeGmSTdgJp7U5xYOwgAU8XyXkjFDRw4XUb3/66qn794spW0
         3edgCMzGXyT/hg45FuhzqRxMllLNtgu6m5sjix5L/cXp38bO9nNpVZjIRBz0RbZpy30h
         Xt2uSxcQ0Z7KLcDGkzmw5TwutVz1DXJaQhrwZ7DJ8W89bPYQD+m+lbUl1AFaKVa+l2z2
         dHhLmcxCQ3Y5iURLOA3XxlfO5gH+lhSUm/2P1EIIjKlddUjqYTyLHhcB2Henpoxr30at
         tcIX6u4FoPJbt6SIKqIsdUelYyYMdXtCyRZiYqT3ly3x5uAyntc0yHq0LOFtmzeOHMop
         Spvg==
X-Gm-Message-State: AOAM530jm2SkDc/FCJCc5ErneTXrJtE0no2tUIwQ+jHKB0BAOxhjUXH/
	oOmYScRkuH8wg+mJ8JF+GuAuOYBSOx8bFw==
X-Google-Smtp-Source: ABdhPJwxLBaQ/pthWYqMY7rBHUSim2HWNTWs+jYcNptICKdkjq/HMfAIPtaj2d48/TFdo6Z2j08r6A==
X-Received: by 2002:a05:6512:3602:: with SMTP id f2mr18457888lfs.399.1637787236781;
        Wed, 24 Nov 2021 12:53:56 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH V3 4/6] xen/unpopulated-alloc: Add mechanism to use Xen resource
Date: Wed, 24 Nov 2021 22:53:41 +0200
Message-Id: <1637787223-21129-5-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

The main reason of this change is that unpopulated-alloc
code cannot be used in its current form on Arm, but there
is a desire to reuse it to avoid wasting real RAM pages
for the grant/foreign mappings.

The problem is that system "iomem_resource" is used for
the address space allocation, but the really unallocated
space can't be figured out precisely by the domain on Arm
without hypervisor involvement. For example, not all device
I/O regions are known by the time domain starts creating
grant/foreign mappings. And following the advise from
"iomem_resource" we might end up reusing these regions by
a mistake. So, the hypervisor which maintains the P2M for
the domain is in the best position to provide unused regions
of guest physical address space which could be safely used
to create grant/foreign mappings.

Introduce new helper arch_xen_unpopulated_init() which purpose
is to create specific Xen resource based on the memory regions
provided by the hypervisor to be used as unused space for Xen
scratch pages. If arch doesn't define arch_xen_unpopulated_init()
the default "iomem_resource" will be used.

Update the arguments list of allocate_resource() in fill_list()
to always allocate a region from the hotpluggable range
(maximum possible addressable physical memory range for which
the linear mapping could be created). If arch doesn't define
arch_get_mappable_range() the default range (0,-1) will be used.

The behaviour on x86 won't be changed by current patch as both
arch_xen_unpopulated_init() and arch_get_mappable_range()
are not implemented for it.

Also fallback to allocate xenballooned pages (balloon out RAM
pages) if we do not have any suitable resource to work with
(target_resource is invalid) and as the result we won't be able
to provide unpopulated pages on a request.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
Please note the following:
for V3 arch_xen_unpopulated_init() was moved to init() as was agreed
and gained __init specifier. So the target_resource is initialized there.

With current patch series applied if CONFIG_XEN_UNPOPULATED_ALLOC
is enabled:

1. On Arm, under normal circumstances, the xen_alloc_unpopulated_pages()
won't be called “before” arch_xen_unpopulated_init(). It will only be
called "before" when either ACPI is in use or something wrong happened
with DT (and we failed to read xen_grant_frames), so we fallback to
xen_xlate_map_ballooned_pages() in arm/xen/enlighten.c:xen_guest_init(),
please see "arm/xen: Switch to use gnttab_setup_auto_xlat_frames() for DT"
for details. But in that case, I think, it doesn't matter much whether
xen_alloc_unpopulated_pages() is called "before" of "after" target_resource
initialization, as we don't have extended regions in place the target_resource
will remain invalid even after initialization, so xen_alloc_ballooned_pages()
will be used in both scenarios.

2. On x86, I am not quite sure which modes use unpopulated-alloc (PVH?),
but it looks like xen_alloc_unpopulated_pages() can (and will) be called
“before” arch_xen_unpopulated_init().
At least, I see that xen_xlate_map_ballooned_pages() is called in
x86/xen/grant-table.c:xen_pvh_gnttab_setup(). According to the initcall
levels for both xen_pvh_gnttab_setup() and init() I expect the former
to be called earlier.
If it is true, the sentence in the commit description which mentions
that “behaviour on x86 is not changed” is not precise. I don’t think
it would be correct to fallback to xen_alloc_ballooned_pages() just
because we haven’t initialized target_resource yet (on x86 it is just
assigning it iomem_resource), at least this doesn't look like an expected
behaviour and unlikely would be welcome.

I am wondering whether it would be better to move arch_xen_unpopulated_init()
to a dedicated init() marked with an appropriate initcall level (early_initcall?)
to make sure it will always be called *before* xen_xlate_map_ballooned_pages().
What do you think?

Changes RFC -> V2:
   - new patch, instead of
    "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide unallocated space"

Changes V2 -> V3:
   - update patch description and comments in code
   - modify arch_xen_unpopulated_init() to pass target_resource as an argument
     and update default helper to assign iomem_resource to it, also drop
     xen_resource as it will be located in arch code in the future
   - allocate region from hotpluggable range instead of hardcoded range (0,-1)
     in fill_list()
   - use %pR specifier in error message
   - do not call unpopulated_init() at runtime from xen_alloc_unpopulated_pages(),
     drop an extra helper and call arch_xen_unpopulated_init() directly from __init()
   - include linux/ioport.h instead of forward declaration of struct resource
   - replace insert_resource() with request_resource() in fill_list()
   - add __init specifier to arch_xen_unpopulated_init()
---
 drivers/xen/unpopulated-alloc.c | 83 +++++++++++++++++++++++++++++++++++++----
 include/xen/xen.h               |  2 +
 2 files changed, 78 insertions(+), 7 deletions(-)

diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c
index a03dc5b..07d3578 100644
--- a/drivers/xen/unpopulated-alloc.c
+++ b/drivers/xen/unpopulated-alloc.c
@@ -8,6 +8,7 @@
 
 #include <asm/page.h>
 
+#include <xen/balloon.h>
 #include <xen/page.h>
 #include <xen/xen.h>
 
@@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_lock);
 static struct page *page_list;
 static unsigned int list_count;
 
+static struct resource *target_resource;
+
+/*
+ * If arch is not happy with system "iomem_resource" being used for
+ * the region allocation it can provide it's own view by creating specific
+ * Xen resource with unused regions of guest physical address space provided
+ * by the hypervisor.
+ */
+int __weak __init arch_xen_unpopulated_init(struct resource **res)
+{
+	*res = &iomem_resource;
+
+	return 0;
+}
+
 static int fill_list(unsigned int nr_pages)
 {
 	struct dev_pagemap *pgmap;
-	struct resource *res;
+	struct resource *res, *tmp_res = NULL;
 	void *vaddr;
 	unsigned int i, alloc_pages = round_up(nr_pages, PAGES_PER_SECTION);
-	int ret = -ENOMEM;
+	struct range mhp_range;
+	int ret;
 
 	res = kzalloc(sizeof(*res), GFP_KERNEL);
 	if (!res)
@@ -30,14 +47,40 @@ static int fill_list(unsigned int nr_pages)
 	res->name = "Xen scratch";
 	res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
 
-	ret = allocate_resource(&iomem_resource, res,
-				alloc_pages * PAGE_SIZE, 0, -1,
+	mhp_range = mhp_get_pluggable_range(true);
+
+	ret = allocate_resource(target_resource, res,
+				alloc_pages * PAGE_SIZE, mhp_range.start, mhp_range.end,
 				PAGES_PER_SECTION * PAGE_SIZE, NULL, NULL);
 	if (ret < 0) {
 		pr_err("Cannot allocate new IOMEM resource\n");
 		goto err_resource;
 	}
 
+	/*
+	 * Reserve the region previously allocated from Xen resource to avoid
+	 * re-using it by someone else.
+	 */
+	if (target_resource != &iomem_resource) {
+		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
+		if (!res) {
+			ret = -ENOMEM;
+			goto err_insert;
+		}
+
+		tmp_res->name = res->name;
+		tmp_res->start = res->start;
+		tmp_res->end = res->end;
+		tmp_res->flags = res->flags;
+
+		ret = request_resource(&iomem_resource, tmp_res);
+		if (ret < 0) {
+			pr_err("Cannot request resource %pR (%d)\n", tmp_res, ret);
+			kfree(tmp_res);
+			goto err_insert;
+		}
+	}
+
 	pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
 	if (!pgmap) {
 		ret = -ENOMEM;
@@ -95,6 +138,11 @@ static int fill_list(unsigned int nr_pages)
 err_memremap:
 	kfree(pgmap);
 err_pgmap:
+	if (tmp_res) {
+		release_resource(tmp_res);
+		kfree(tmp_res);
+	}
+err_insert:
 	release_resource(res);
 err_resource:
 	kfree(res);
@@ -112,6 +160,14 @@ int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
 	unsigned int i;
 	int ret = 0;
 
+	/*
+	 * Fallback to default behavior if we do not have any suitable resource
+	 * to allocate required region from and as the result we won't be able to
+	 * construct pages.
+	 */
+	if (!target_resource)
+		return xen_alloc_ballooned_pages(nr_pages, pages);
+
 	mutex_lock(&list_lock);
 	if (list_count < nr_pages) {
 		ret = fill_list(nr_pages - list_count);
@@ -159,6 +215,11 @@ void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
 {
 	unsigned int i;
 
+	if (!target_resource) {
+		xen_free_ballooned_pages(nr_pages, pages);
+		return;
+	}
+
 	mutex_lock(&list_lock);
 	for (i = 0; i < nr_pages; i++) {
 		pages[i]->zone_device_data = page_list;
@@ -169,9 +230,11 @@ void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
 }
 EXPORT_SYMBOL(xen_free_unpopulated_pages);
 
-#ifdef CONFIG_XEN_PV
 static int __init init(void)
 {
+	int ret;
+
+#ifdef CONFIG_XEN_PV
 	unsigned int i;
 
 	if (!xen_domain())
@@ -196,8 +259,14 @@ static int __init init(void)
 			list_count++;
 		}
 	}
+#endif
 
-	return 0;
+	ret = arch_xen_unpopulated_init(&target_resource);
+	if (ret) {
+		pr_err("xen:unpopulated: Cannot initialize target resource\n");
+		target_resource = NULL;
+	}
+
+	return ret;
 }
 subsys_initcall(init);
-#endif
diff --git a/include/xen/xen.h b/include/xen/xen.h
index 86c5b37..a99bab8 100644
--- a/include/xen/xen.h
+++ b/include/xen/xen.h
@@ -55,6 +55,8 @@ extern u64 xen_saved_max_mem_size;
 #ifdef CONFIG_XEN_UNPOPULATED_ALLOC
 int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
 void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
+#include <linux/ioport.h>
+int arch_xen_unpopulated_init(struct resource **res);
 #else
 #include <xen/balloon.h>
 static inline int xen_alloc_unpopulated_pages(unsigned int nr_pages,
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 20:54:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 20:54:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230547.398551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHD-0006Z5-4p; Wed, 24 Nov 2021 20:53:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230547.398551; Wed, 24 Nov 2021 20:53:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHD-0006Yy-1V; Wed, 24 Nov 2021 20:53:59 +0000
Received: by outflank-mailman (input) for mailman id 230547;
 Wed, 24 Nov 2021 20:53:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vMcq=QL=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpzHB-0006Ij-Cr
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 20:53:57 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a324125d-4d68-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 21:53:55 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id c32so10584617lfv.4
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 12:53:55 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id j11sm97608ljc.9.2021.11.24.12.53.53
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 24 Nov 2021 12:53:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a324125d-4d68-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=2+gPEFaRRl8eqNS/Y7LbhXO/rInityndJKkrLyh8HGc=;
        b=IwvGIOlmD0oLisHuoxC0LwTIm8NUw9yKPbrPmZLK8GGePIHRwcp+OPgQg9/dFz2RM+
         hiUSYru4os/gS4+2xDQ891EiT8Es/5YWqw9BDywwm1RY5ncIMObRrKeQgjYVgm8B6mkI
         UveLsDorJ+JQODSdlevg+ZACcmr+4Hinld08AA5HcR8ehyfrQ1nMgCkaYC5qAhWQSESz
         3y9fkpnDMP0RELGxwKQ9ofXdvltdwEWn94VpY5+xp5Y4y0Fk5nCw4RjtsfYxeAgV94kC
         dkhG+TFfzQBAPGrBfx14mFdmFl4LmT6G97wesoZyIx3ogxjn4o/PvrkXx/cU5UZSOZr6
         qyTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=2+gPEFaRRl8eqNS/Y7LbhXO/rInityndJKkrLyh8HGc=;
        b=m2O+7BByOZcpzVllj0Xqd7GxOEhcbtcCOdAdHr9Z3uAX2gqdYu6lvTHFVK+O4nzA66
         JsXKLBkN4u75wuj8SC0mRZQnzguTesp/v0iw7MDz6+xITA6xda6mnoSvJLkEo/3QxCDs
         pipLw3nKDeI0XlmwMs+iyXe/jSEc9hY1ZDlvARnUkXn/bBS2aq9kzZ/PuRYMhDyQXGr4
         Gu9HflN02dhPRScTD39KEjzTc+edf942OmcTVvK6RLhjnDhIRQsZOqvu4KzELOb/zv7X
         s5QWkH9W7+8fZKd3bgYUazd/yPLsCl644s+Zh2ilBeAiR0Uu5ykM6kLfJbZQGPKoRO1Y
         kdjA==
X-Gm-Message-State: AOAM5316ULt+dmQjtIIvbljjttldCAGWF/TFPavQuuzEUO2YylrFv++a
	W3mQlvmAS++iYXqtuPicWUg2BIlt24VMgQ==
X-Google-Smtp-Source: ABdhPJzgTBl/5RrVAWHSyUlG+h2B5h/aX5PT6dG7/gd2BKTy6uPSUT4F9O8nlmLnMgGhSJ12GFeJ4g==
X-Received: by 2002:a05:6512:22d2:: with SMTP id g18mr17528659lfu.244.1637787234615;
        Wed, 24 Nov 2021 12:53:54 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH V3 1/6] xen/unpopulated-alloc: Drop check for virt_addr_valid() in fill_list()
Date: Wed, 24 Nov 2021 22:53:38 +0200
Message-Id: <1637787223-21129-2-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

If memremap_pages() succeeds the range is guaranteed to have proper page
table, there is no need for an additional virt_addr_valid() check.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
---
Changes RFC -> V2:
   - new patch, instead of
     "[RFC PATCH 1/2] arm64: mm: Make virt_addr_valid to check for pfn_valid again"

Changes V2 -> V3:
   - add Boris' R-b
---
 drivers/xen/unpopulated-alloc.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c
index 87e6b7d..a03dc5b 100644
--- a/drivers/xen/unpopulated-alloc.c
+++ b/drivers/xen/unpopulated-alloc.c
@@ -85,7 +85,6 @@ static int fill_list(unsigned int nr_pages)
 	for (i = 0; i < alloc_pages; i++) {
 		struct page *pg = virt_to_page(vaddr + PAGE_SIZE * i);
 
-		BUG_ON(!virt_addr_valid(vaddr + PAGE_SIZE * i));
 		pg->zone_device_data = page_list;
 		page_list = pg;
 		list_count++;
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 20:54:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 20:54:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230551.398574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHE-0006t4-J0; Wed, 24 Nov 2021 20:54:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230551.398574; Wed, 24 Nov 2021 20:54:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHE-0006ru-7u; Wed, 24 Nov 2021 20:54:00 +0000
Received: by outflank-mailman (input) for mailman id 230551;
 Wed, 24 Nov 2021 20:53:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vMcq=QL=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpzHC-0006Ii-Se
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 20:53:58 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4d87cc0-4d68-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 21:53:58 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id r26so10535304lfn.8
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 12:53:57 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id j11sm97608ljc.9.2021.11.24.12.53.56
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 24 Nov 2021 12:53:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4d87cc0-4d68-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=6BK2WZwb7zq+nPDby6saZ0ECEZqzY7Q9bsnh/xJVDtQ=;
        b=DkhUoPEN5m+YhS0lj/KCPaF95+pgtJLV5AHPKag6SzOXvNY8l/RXclREtUmZBRXscQ
         w5L+m8mw81fWWD6/E4znSDcSPnrJzgzHKoUFBsWENKP80jotPoLGwbYn3R5HifysInuH
         Uivjr6j/0kWaIam3Hs3m3s2HMrn2zjLLGFrIEbkq3A7k71iyLEBAspL/4RH9/Lq6907o
         LEQBmA6woloWkcHZ/v7JD/WbkdPUzyNd+wxQIV09bGMkL6ruQjYv9JYLVHD793Sf4syE
         f1SmLonhVWMSayC5fvRhjuy+cDukmAAXmCFj+yvwpbZI7hO2YJDJJ/g9zI+SXXsdRtu1
         ht+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=6BK2WZwb7zq+nPDby6saZ0ECEZqzY7Q9bsnh/xJVDtQ=;
        b=to21QupI2Pu2XPkQjp8/SSeDV+7e00CSx6iKvLhh0lNsbWUdysHLceu+I+f9yraKTq
         sqGdKuK2z7+xPQEbT8Xduca+/6OsSq5oNtUWVOLZs37R0QLkLZ1URtR23fNgGojaC6Oz
         C0S5qdYk+4viaNEdu8/Iib9yqXOX0VrJjgwUEXTDwgjva0MuwD7bVPYBfX/vXvyesSAv
         HTRd7OnT0m2lorPMRAqXtvbKCF66NDmMDbMBVUDWf1i0bDDjq6KeKUEgi6ICmxS4Cvtn
         FoObICGLxX5t3h37nxccRRheWgTAmxYEPoAKUis4pvO/+wbjfbbS6A3YojsTn2tvH16k
         2d9Q==
X-Gm-Message-State: AOAM531wSq15HJ+ofS9MwZ//wh5ZZJQVSz32Dhdc+V1Spq781PXWO2tZ
	rFvuaWy2MawYaY4yBRSoV/f+df1CmrgalQ==
X-Google-Smtp-Source: ABdhPJxBc8gDofCcpBfj+VeGAsm146fKsnDAoZr0N7d3GVfA5RjaGuaXAWpczZc9US5dPuW598oREg==
X-Received: by 2002:a05:6512:3763:: with SMTP id z3mr18059562lft.315.1637787237574;
        Wed, 24 Nov 2021 12:53:57 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Russell King <linux@armlinux.org.uk>,
	Julien Grall <julien@xen.org>
Subject: [PATCH V3 5/6] arm/xen: Read extended regions from DT and init Xen resource
Date: Wed, 24 Nov 2021 22:53:42 +0200
Message-Id: <1637787223-21129-6-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

This patch implements arch_xen_unpopulated_init() on Arm where
the extended regions (if any) are gathered from DT and inserted
into specific Xen resource to be used as unused address space
for Xen scratch pages by unpopulated-alloc code.

The extended region (safe range) is a region of guest physical
address space which is unused and could be safely used to create
grant/foreign mappings instead of wasting real RAM pages from
the domain memory for establishing these mappings.

The extended regions are chosen by the hypervisor at the domain
creation time and advertised to it via "reg" property under
hypervisor node in the guest device-tree. As region 0 is reserved
for grant table space (always present), the indexes for extended
regions are 1...N.

If arch_xen_unpopulated_init() fails for some reason the default
behaviour will be restored (allocate xenballooned pages).

This patch also removes XEN_UNPOPULATED_ALLOC dependency on x86.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
Changes RFC -> V2:
   - new patch, instead of
    "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide unallocated space"

Changes V2 -> V3:
   - update comments in code
   - drop the checks that a region is within the hotpluggable range,
     now the common code takes care of
   - update arch_xen_unpopulated_init() according to interface change,
     move xen_resource here, etc
   - use %pR specifier in error message
   - bait out in arch_xen_unpopulated_init() if !acpi_disabled
   - update checks in second loop in arch_xen_unpopulated_init()
     for the sake of clarity
---
 arch/arm/xen/enlighten.c | 106 +++++++++++++++++++++++++++++++++++++++++++++++
 drivers/xen/Kconfig      |   2 +-
 2 files changed, 107 insertions(+), 1 deletion(-)

diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
index 3fb3384..019caa6 100644
--- a/arch/arm/xen/enlighten.c
+++ b/arch/arm/xen/enlighten.c
@@ -62,6 +62,7 @@ static __read_mostly unsigned int xen_events_irq;
 static __read_mostly phys_addr_t xen_grant_frames;
 
 #define GRANT_TABLE_INDEX   0
+#define EXT_REGION_INDEX    1
 
 uint32_t xen_start_flags;
 EXPORT_SYMBOL(xen_start_flags);
@@ -303,6 +304,111 @@ static void __init xen_acpi_guest_init(void)
 #endif
 }
 
+#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
+/*
+ * A type-less specific Xen resource which contains extended regions
+ * (unused regions of guest physical address space provided by the hypervisor).
+ */
+static struct resource xen_resource = {
+	.name = "Xen unused space",
+};
+
+int __init arch_xen_unpopulated_init(struct resource **res)
+{
+	struct device_node *np;
+	struct resource *regs, *tmp_res;
+	uint64_t min_gpaddr = -1, max_gpaddr = 0;
+	unsigned int i, nr_reg = 0;
+	int rc;
+
+	if (!xen_domain())
+		return -ENODEV;
+
+	if (!acpi_disabled)
+		return -ENODEV;
+
+	np = of_find_compatible_node(NULL, NULL, "xen,xen");
+	if (WARN_ON(!np))
+		return -ENODEV;
+
+	/* Skip region 0 which is reserved for grant table space */
+	while (of_get_address(np, nr_reg + EXT_REGION_INDEX, NULL, NULL))
+		nr_reg++;
+
+	if (!nr_reg) {
+		pr_err("No extended regions are found\n");
+		return -EINVAL;
+	}
+
+	regs = kcalloc(nr_reg, sizeof(*regs), GFP_KERNEL);
+	if (!regs)
+		return -ENOMEM;
+
+	/*
+	 * Create resource from extended regions provided by the hypervisor to be
+	 * used as unused address space for Xen scratch pages.
+	 */
+	for (i = 0; i < nr_reg; i++) {
+		rc = of_address_to_resource(np, i + EXT_REGION_INDEX, &regs[i]);
+		if (rc)
+			goto err;
+
+		if (max_gpaddr < regs[i].end)
+			max_gpaddr = regs[i].end;
+		if (min_gpaddr > regs[i].start)
+			min_gpaddr = regs[i].start;
+	}
+
+	xen_resource.start = min_gpaddr;
+	xen_resource.end = max_gpaddr;
+
+	/*
+	 * Mark holes between extended regions as unavailable. The rest of that
+	 * address space will be available for the allocation.
+	 */
+	for (i = 1; i < nr_reg; i++) {
+		resource_size_t start, end;
+
+		/* There is an overlap between regions */
+		if (regs[i - 1].end + 1 > regs[i].start) {
+			rc = -EINVAL;
+			goto err;
+		}
+
+		/* There is no hole between regions */
+		if (regs[i - 1].end + 1 == regs[i].start)
+			continue;
+
+		start = regs[i - 1].end + 1;
+		end = regs[i].start - 1;
+
+		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
+		if (!tmp_res) {
+			rc = -ENOMEM;
+			goto err;
+		}
+
+		tmp_res->name = "Unavailable space";
+		tmp_res->start = start;
+		tmp_res->end = end;
+
+		rc = insert_resource(&xen_resource, tmp_res);
+		if (rc) {
+			pr_err("Cannot insert resource %pR (%d)\n", tmp_res, rc);
+			kfree(tmp_res);
+			goto err;
+		}
+	}
+
+	*res = &xen_resource;
+
+err:
+	kfree(regs);
+
+	return rc;
+}
+#endif
+
 static void __init xen_dt_guest_init(void)
 {
 	struct device_node *xen_node;
diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index a1b11c62..553b614 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -321,7 +321,7 @@ config XEN_FRONT_PGDIR_SHBUF
 
 config XEN_UNPOPULATED_ALLOC
 	bool "Use unpopulated memory ranges for guest mappings"
-	depends on X86 && ZONE_DEVICE
+	depends on ZONE_DEVICE
 	default XEN_BACKEND || XEN_GNTDEV || XEN_DOM0
 	help
 	  Use unpopulated memory ranges in order to create mappings for guest
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 20:54:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 20:54:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230549.398561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHD-0006fm-Os; Wed, 24 Nov 2021 20:53:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230549.398561; Wed, 24 Nov 2021 20:53:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHD-0006eC-Ho; Wed, 24 Nov 2021 20:53:59 +0000
Received: by outflank-mailman (input) for mailman id 230549;
 Wed, 24 Nov 2021 20:53:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vMcq=QL=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpzHB-0006Ij-Qo
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 20:53:57 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a385885a-4d68-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 21:53:55 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id m27so10495085lfj.12
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 12:53:55 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id j11sm97608ljc.9.2021.11.24.12.53.54
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 24 Nov 2021 12:53:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a385885a-4d68-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=I5Ua+XOo9ED8QtDOWHq4o6dMZ+6zt8B38QrRs94d3jQ=;
        b=N719U68AvD57cSsDPqL5VUMkg/l6W7dFaBn0ds0pOblImoqD4O8SZtTVbiKUWXvfVM
         QwgG8Z6Ro3SdIlXgsHzI0FIZjBoGs6sAhbvkMgKp55HqgPCIvBZ/bDrqp+nLkExXIDXk
         85VfW8+LD7yFAUgUpvJ/2m018THtiaHbBxWJqD8iahLuB6p5h86QVJOti4p/Vko/73Z+
         qaK9Vh/scmIZQ9BMI7l50DJ1kbaNGmaBXek6irskc4a0CJq/yZOsKvS2cCwp3ouJixdO
         l2ac3Q50aoO+804982jn926QvZK1sKU0l7f4bskWWYtjonKnDPp3c5jE7tbHdbSGR8QN
         +RFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=I5Ua+XOo9ED8QtDOWHq4o6dMZ+6zt8B38QrRs94d3jQ=;
        b=e9G7dXKebUWbBWV3ZXBwko4Nc8JT4gpT/EEL3qa2BHDvH4ti5EYWBV+jGCrBFdRi83
         Rfaoyi2IyfXhVzhlwvFxpr8/cE4hO8j680yrR07sCluYucCgfAyt3Jx/YCdxWl8Cpz/m
         b89CIbQBreri7yImM8Rwb+WhjTD9UIZ6zNV2z/61s7RCf04080OLhV2l4lA5VtDJCukh
         a0dy9kKA6z2y6UTVL0BjUzOdJ6m9OAbEr8wFKVURuortUyEa7uvPJ5dnre+2jjvx2dQF
         jJZfgp2T0qx3GDYehl/dzXVeSecLQikSjBwswOY9CSTo8XOlZrk3f8cup0wP3MZkz7Px
         +bCg==
X-Gm-Message-State: AOAM533PE6dJzTOfJHuPjdo9dOBIqxXMByL7AfFt4fr3FDbLZMRI40Vj
	CcCOWvJbnky1v6HxjjrprtkxJO3ptlOrVQ==
X-Google-Smtp-Source: ABdhPJwpqCkahz5EbzD+MVB6XyFKIyWyAaQlqRXN5qpJziSHo0yhzGV2dme1YXtZkarUALEtZaAUbg==
X-Received: by 2002:a05:6512:20d4:: with SMTP id u20mr18715939lfr.339.1637787235341;
        Wed, 24 Nov 2021 12:53:55 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Russell King <linux@armlinux.org.uk>,
	Julien Grall <julien@xen.org>
Subject: [PATCH V3 2/6] arm/xen: Switch to use gnttab_setup_auto_xlat_frames() for DT
Date: Wed, 24 Nov 2021 22:53:39 +0200
Message-Id: <1637787223-21129-3-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Read the start address of the grant table space from DT
(region 0).

This patch mostly restores behaviour before commit 3cf4095d7446
("arm/xen: Use xen_xlate_map_ballooned_pages to setup grant table")
but trying not to break the ACPI support added after that commit.
So the patch touches DT part only and leaves the ACPI part with
xen_xlate_map_ballooned_pages(). Also in order to make a code more
resilient use a fallback to xen_xlate_map_ballooned_pages() if grant
table region wasn't found.

This is a preparation for using Xen extended region feature
where unused regions of guest physical address space (provided
by the hypervisor) will be used to create grant/foreign/whatever
mappings instead of wasting real RAM pages from the domain memory
for establishing these mappings.

The immediate benefit of this change:
- Avoid superpage shattering in Xen P2M when establishing
  stage-2 mapping (GFN <-> MFN) for the grant table space
- Avoid wasting real RAM pages (reducing the amount of memory
  usuable) for mapping grant table space
- The grant table space is always mapped at the exact
  same place (region 0 is reserved for the grant table)

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
Changes RFC -> V2:
   - new patch

Changes V2 -> V3:
   - add __read_mostly specifier to xen_grant_frames
   - retain a fallback to xen_xlate_map_ballooned_pages() if
     xen_grant_frames is invalid
   - process xen_events_irq before xen_grant_frames in
     xen_dt_guest_init()
   - update patch description
---
 arch/arm/xen/enlighten.c | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
index 7619fbf..3fb3384 100644
--- a/arch/arm/xen/enlighten.c
+++ b/arch/arm/xen/enlighten.c
@@ -59,6 +59,9 @@ unsigned long xen_released_pages;
 struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
 
 static __read_mostly unsigned int xen_events_irq;
+static __read_mostly phys_addr_t xen_grant_frames;
+
+#define GRANT_TABLE_INDEX   0
 
 uint32_t xen_start_flags;
 EXPORT_SYMBOL(xen_start_flags);
@@ -303,6 +306,7 @@ static void __init xen_acpi_guest_init(void)
 static void __init xen_dt_guest_init(void)
 {
 	struct device_node *xen_node;
+	struct resource res;
 
 	xen_node = of_find_compatible_node(NULL, NULL, "xen,xen");
 	if (!xen_node) {
@@ -311,13 +315,19 @@ static void __init xen_dt_guest_init(void)
 	}
 
 	xen_events_irq = irq_of_parse_and_map(xen_node, 0);
+
+	if (of_address_to_resource(xen_node, GRANT_TABLE_INDEX, &res)) {
+		pr_err("Xen grant table region is not found\n");
+		return;
+	}
+	xen_grant_frames = res.start;
 }
 
 static int __init xen_guest_init(void)
 {
 	struct xen_add_to_physmap xatp;
 	struct shared_info *shared_info_page = NULL;
-	int cpu;
+	int rc, cpu;
 
 	if (!xen_domain())
 		return 0;
@@ -370,12 +380,16 @@ static int __init xen_guest_init(void)
 	for_each_possible_cpu(cpu)
 		per_cpu(xen_vcpu_id, cpu) = cpu;
 
-	xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
-	if (xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
-					  &xen_auto_xlat_grant_frames.vaddr,
-					  xen_auto_xlat_grant_frames.count)) {
+	if (!acpi_disabled || !xen_grant_frames) {
+		xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
+		rc = xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
+										   &xen_auto_xlat_grant_frames.vaddr,
+										   xen_auto_xlat_grant_frames.count);
+	} else
+		rc = gnttab_setup_auto_xlat_frames(xen_grant_frames);
+	if (rc) {
 		free_percpu(xen_vcpu_info);
-		return -ENOMEM;
+		return rc;
 	}
 	gnttab_init();
 
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 20:54:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 20:54:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230548.398558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHD-0006cf-Gq; Wed, 24 Nov 2021 20:53:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230548.398558; Wed, 24 Nov 2021 20:53:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHD-0006am-8d; Wed, 24 Nov 2021 20:53:59 +0000
Received: by outflank-mailman (input) for mailman id 230548;
 Wed, 24 Nov 2021 20:53:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vMcq=QL=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpzHB-0006Ii-C9
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 20:53:57 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4025026-4d68-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 21:53:56 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id r26so10535214lfn.8
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 12:53:56 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id j11sm97608ljc.9.2021.11.24.12.53.55
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 24 Nov 2021 12:53:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4025026-4d68-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=bBzcwXnF7StEF2GaOPBNcx1Wl0n3Nu3jkY6wILUpfDk=;
        b=hNSawdtIKqKkXOdFHN2uTZ0q0K/gYr/34I9n/95muvOE5k4g8r+/1VT/CEy0n8w4yR
         mj7aGi00URp6vPVAr3zzo3ZJS82dif3B1J3L2dF9gRosbTigq5HX/z0BdZBEHbPLZ2ko
         GDWMNBuqcmEkLkmPC9CEM01MzlukwawY1hbayiZATGlp+CoVm1Lr7iq6wk2W88noX3VJ
         h+wTXLNwR8grH/ovbjNGU8Jia0Iu9rImbPH5g/o26POuEJdgKdP0NzDrZf9f70bq65Yc
         fCyX8tWWRf0Ro8Tef40cCZtJ61FnNnVIuFocKr5I+1pdq3wdVxSS06cpqfiFNU8/BPDo
         gUSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=bBzcwXnF7StEF2GaOPBNcx1Wl0n3Nu3jkY6wILUpfDk=;
        b=gZqLEnENOwEgUhbjJ3NOxieBMPBmyVHsDx9FyVIKRXSCCSEWq3oEqSKZpyfuG7ICci
         lt7icV9R5RkFz4vHI0DmTYxKHvdpBSgRk8AuSyTI4wlIohnYv3Lre5+4lpMM1l7KeZuz
         B7/ZZ7RCLYwuWDOWNLCDxDWZ0mLFJ/0p6EssE/1doah2NhGnFwkIYgyZtFwhph4FC0xu
         BPhTtjP8LjU7TQ/XoFgdaYR1X/YHAyw3ytn8+1BBDXW4p99GjJzBU0UGyPlQomShn/eD
         uQfpGE9MDtW/BhmWw+kOMwraYhhiaXye6kljTP41gPpvNr5JF5CsQ8LJFsd4HzCPB8wC
         ez4w==
X-Gm-Message-State: AOAM5327lYWd1y1ZTsZrXVJXVKi6hDECgpicF7Md97q2TQqIbLUkyGCw
	OviuLQL7QuaC37OKffz08tY4HGKyb+IgYQ==
X-Google-Smtp-Source: ABdhPJyAtC2rXXgB00e51jXJeM37wdOSE76oQzRhOwTYzttgAcdt/wMbcWS+vs/AGA/z25Ivcp2rgQ==
X-Received: by 2002:a05:6512:3f0f:: with SMTP id y15mr18956817lfa.263.1637787236043;
        Wed, 24 Nov 2021 12:53:56 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH V3 3/6] xen/balloon: Bring alloc(free)_xenballooned_pages helpers back
Date: Wed, 24 Nov 2021 22:53:40 +0200
Message-Id: <1637787223-21129-4-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

This patch rolls back some of the changes introduced by commit
121f2faca2c0a "xen/balloon: rename alloc/free_xenballooned_pages"
in order to make possible to still allocate xenballooned pages
if CONFIG_XEN_UNPOPULATED_ALLOC is enabled.

On Arm the unpopulated pages will be allocated on top of extended
regions provided by Xen via device-tree (the subsequent patches
will add required bits to support unpopulated-alloc feature on Arm).
The problem is that extended regions feature has been introduced
into Xen quite recently (during 4.16 release cycle). So this
effectively means that Linux must only use unpopulated-alloc on Arm
if it is running on "new Xen" which advertises these regions.
But, it will only be known after parsing the "hypervisor" node
at boot time, so before doing that we cannot assume anything.

In order to keep working if CONFIG_XEN_UNPOPULATED_ALLOC is enabled
and the extended regions are not advertised (Linux is running on
"old Xen", etc) we need the fallback to alloc_xenballooned_pages().

This way we wouldn't reduce the amount of memory usable (wasting
RAM pages) for any of the external mappings anymore (and eliminate
XSA-300) with "new Xen", but would be still functional ballooning
out RAM pages with "old Xen".

Also rename alloc(free)_xenballooned_pages to xen_alloc(free)_ballooned_pages
and make xen_alloc(free)_unpopulated_pages static inline in xen.h
if CONFIG_XEN_UNPOPULATED_ALLOC is disabled.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
@Stefano, I decided to retain your R-b after making a minor
change (make xen_alloc(free)_unpopulated_pages static inline
in xen.h if CONFIG_XEN_UNPOPULATED_ALLOC is disabled).
Please let me know if you think otherwise.

Changes V2 -> V3:
   - new patch
---
 drivers/xen/balloon.c | 20 +++++++++-----------
 include/xen/balloon.h |  3 +++
 include/xen/xen.h     | 14 ++++++++++++++
 3 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index ba2ea11..a2c4fc49 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -581,7 +581,6 @@ void balloon_set_new_target(unsigned long target)
 }
 EXPORT_SYMBOL_GPL(balloon_set_new_target);
 
-#ifndef CONFIG_XEN_UNPOPULATED_ALLOC
 static int add_ballooned_pages(unsigned int nr_pages)
 {
 	enum bp_state st;
@@ -610,12 +609,12 @@ static int add_ballooned_pages(unsigned int nr_pages)
 }
 
 /**
- * xen_alloc_unpopulated_pages - get pages that have been ballooned out
+ * xen_alloc_ballooned_pages - get pages that have been ballooned out
  * @nr_pages: Number of pages to get
  * @pages: pages returned
  * @return 0 on success, error otherwise
  */
-int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
+int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages)
 {
 	unsigned int pgno = 0;
 	struct page *page;
@@ -652,23 +651,23 @@ int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
 	return 0;
  out_undo:
 	mutex_unlock(&balloon_mutex);
-	xen_free_unpopulated_pages(pgno, pages);
+	xen_free_ballooned_pages(pgno, pages);
 	/*
-	 * NB: free_xenballooned_pages will only subtract pgno pages, but since
+	 * NB: xen_free_ballooned_pages will only subtract pgno pages, but since
 	 * target_unpopulated is incremented with nr_pages at the start we need
 	 * to remove the remaining ones also, or accounting will be screwed.
 	 */
 	balloon_stats.target_unpopulated -= nr_pages - pgno;
 	return ret;
 }
-EXPORT_SYMBOL(xen_alloc_unpopulated_pages);
+EXPORT_SYMBOL(xen_alloc_ballooned_pages);
 
 /**
- * xen_free_unpopulated_pages - return pages retrieved with get_ballooned_pages
+ * xen_free_ballooned_pages - return pages retrieved with get_ballooned_pages
  * @nr_pages: Number of pages
  * @pages: pages to return
  */
-void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
+void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages)
 {
 	unsigned int i;
 
@@ -687,9 +686,9 @@ void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
 
 	mutex_unlock(&balloon_mutex);
 }
-EXPORT_SYMBOL(xen_free_unpopulated_pages);
+EXPORT_SYMBOL(xen_free_ballooned_pages);
 
-#if defined(CONFIG_XEN_PV)
+#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
 static void __init balloon_add_region(unsigned long start_pfn,
 				      unsigned long pages)
 {
@@ -712,7 +711,6 @@ static void __init balloon_add_region(unsigned long start_pfn,
 	balloon_stats.total_pages += extra_pfn_end - start_pfn;
 }
 #endif
-#endif
 
 static int __init balloon_init(void)
 {
diff --git a/include/xen/balloon.h b/include/xen/balloon.h
index e93d4f0..f78a6cc 100644
--- a/include/xen/balloon.h
+++ b/include/xen/balloon.h
@@ -26,6 +26,9 @@ extern struct balloon_stats balloon_stats;
 
 void balloon_set_new_target(unsigned long target);
 
+int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages);
+void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages);
+
 #ifdef CONFIG_XEN_BALLOON
 void xen_balloon_init(void);
 #else
diff --git a/include/xen/xen.h b/include/xen/xen.h
index 9f031b5..86c5b37 100644
--- a/include/xen/xen.h
+++ b/include/xen/xen.h
@@ -52,7 +52,21 @@ bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
 extern u64 xen_saved_max_mem_size;
 #endif
 
+#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
 int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
 void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
+#else
+#include <xen/balloon.h>
+static inline int xen_alloc_unpopulated_pages(unsigned int nr_pages,
+		struct page **pages)
+{
+	return xen_alloc_ballooned_pages(nr_pages, pages);
+}
+static inline void xen_free_unpopulated_pages(unsigned int nr_pages,
+		struct page **pages)
+{
+	xen_free_ballooned_pages(nr_pages, pages);
+}
+#endif
 
 #endif	/* _XEN_XEN_H */
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 20:54:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 20:54:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230552.398587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHF-0007CP-E3; Wed, 24 Nov 2021 20:54:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230552.398587; Wed, 24 Nov 2021 20:54:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHF-00079N-1E; Wed, 24 Nov 2021 20:54:01 +0000
Received: by outflank-mailman (input) for mailman id 230552;
 Wed, 24 Nov 2021 20:53:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vMcq=QL=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpzHD-0006Ij-Hw
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 20:53:59 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a551efa8-4d68-11ec-a9d2-d9f7a1cc8784;
 Wed, 24 Nov 2021 21:53:58 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id l9so8085216ljq.5
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 12:53:58 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id j11sm97608ljc.9.2021.11.24.12.53.57
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 24 Nov 2021 12:53:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a551efa8-4d68-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=4IyNvYikGx/k9tdDU8szk4MiN32bXrdjaPGV4oWEMDs=;
        b=n18cstBkdjX7c+UShE1M0pp9AYFZa32iOb6HZ8rdrt8352PocjOxC7sjVmfskpFFXJ
         cP7FvZ6BWua0oznO+XQuZiW0mLUpmRy/h+zuw8dCqT/V+JNfFBCfu/u5oiBnVWhVtKiD
         R0+SnwDYwNlsoJhw/nYxYgSSU94QG+gmJGIwNvZB7CPivO3tHkuFA7PMxidgOT42knwb
         8+rQr70H2QlDBFrCqfUR21+P6rOWVBDezxc6r+nKLjN9Sgrj8z8x9gKvTIgM25fwD6pT
         f/T2ppOTcyjYvVgFEMcfRXKpWsQYSP/Q7CFluriF7V92BmHfr0hnGQmJkYIyOT12Uqji
         MVwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=4IyNvYikGx/k9tdDU8szk4MiN32bXrdjaPGV4oWEMDs=;
        b=U+ASQf4MLyhXy33AQZd4Hx1OcUXwDeKc1XNGkjrTAlT4Uo+tBxU42BG/DIFgi8UJ++
         xOrH9XLA56VP6/+JT0pLr8JzP1RupLOWwJYI/p9j/tF1aZCfYK9hdU135kmAs9v5iJo4
         3H7avEUXm4V/bAL/0UReNLu6IFe9Deh9WthwT/uLFbphjS1QN6d+45LH6+A+Rlq1jhec
         lQHexPRfOtSh7k6KiTUdnc6iEeZbmSOh+riljtiSW/0UVD0Mru4wLW1B6a50A3Djqa8S
         imv+YHp1L9wmQBUMdzmcLC7dw/o19Xzx6JrmWwyL5gSij91LZgMwz+Wy6KZET1gA+2nD
         RWaw==
X-Gm-Message-State: AOAM532jFepp36erTlN8Yob6Xcol3Q92ovG21Yvzr6s1FvvFXYCpn/Oz
	xbFTrdOa+p5k28g9VupdNI9mXIw/NkMFpA==
X-Google-Smtp-Source: ABdhPJzbg9X4RTlpGwA/0nX9yg4bi5EiUdsWZuy6cXGIhElPKfsHllDQlnKAQo4feHXv3B9QBwXKpA==
X-Received: by 2002:a2e:3c0c:: with SMTP id j12mr19053688lja.402.1637787238288;
        Wed, 24 Nov 2021 12:53:58 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org,
	devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Rob Herring <robh+dt@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH V3 6/6] dt-bindings: xen: Clarify "reg" purpose
Date: Wed, 24 Nov 2021 22:53:43 +0200
Message-Id: <1637787223-21129-7-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Xen on Arm has gained new support recently to calculate and report
extended regions (unused address space) safe to use for external
mappings. These regions are reported via "reg" property under
"hypervisor" node in the guest device-tree. As region 0 is reserved
for grant table space (always present), the indexes for extended
regions are 1...N.

No device-tree bindings update is needed (except clarifying the text)
as guest infers the presence of extended regions from the number
of regions in "reg" property.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
According to the recent update to Xen's guest.txt:
https://xenbits.xen.org/gitweb/?p=xen.git;a=blob_plain;f=docs/misc/arm/device-tree/guest.txt;hb=refs/heads/master

Changes V2 -> V3:
   - new patch
---
 Documentation/devicetree/bindings/arm/xen.txt | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/xen.txt b/Documentation/devicetree/bindings/arm/xen.txt
index db5c56d..156fe10b 100644
--- a/Documentation/devicetree/bindings/arm/xen.txt
+++ b/Documentation/devicetree/bindings/arm/xen.txt
@@ -7,10 +7,14 @@ the following properties:
 	compatible = "xen,xen-<version>", "xen,xen";
   where <version> is the version of the Xen ABI of the platform.
 
-- reg: specifies the base physical address and size of a region in
-  memory where the grant table should be mapped to, using an
-  HYPERVISOR_memory_op hypercall. The memory region is large enough to map
-  the whole grant table (it is larger or equal to gnttab_max_grant_frames()).
+- reg: specifies the base physical address and size of the regions in memory
+  where the special resources should be mapped to, using an HYPERVISOR_memory_op
+  hypercall.
+  Region 0 is reserved for mapping grant table, it must be always present.
+  The memory region is large enough to map the whole grant table (it is larger
+  or equal to gnttab_max_grant_frames()).
+  Regions 1...N are extended regions (unused address space) for mapping foreign
+  GFNs and grants, they might be absent if there is nothing to expose.
   This property is unnecessary when booting Dom0 using ACPI.
 
 - interrupts: the interrupt used by Xen to inject event notifications.
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 20:54:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 20:54:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230546.398539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHB-0006J6-PT; Wed, 24 Nov 2021 20:53:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230546.398539; Wed, 24 Nov 2021 20:53:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzHB-0006Iz-ML; Wed, 24 Nov 2021 20:53:57 +0000
Received: by outflank-mailman (input) for mailman id 230546;
 Wed, 24 Nov 2021 20:53:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vMcq=QL=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mpzHA-0006Ii-HV
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 20:53:56 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2c26a13-4d68-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 21:53:54 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id bi37so10547097lfb.5
 for <xen-devel@lists.xenproject.org>; Wed, 24 Nov 2021 12:53:54 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id j11sm97608ljc.9.2021.11.24.12.53.52
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 24 Nov 2021 12:53:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2c26a13-4d68-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=wBAopcuMZHjciIHB7DxD67GWh0M8Q3KOr2lZGv2eaVQ=;
        b=EOVNOSIKB097eJDLI78+TDQKEJMxEAhF1DjiOYB9US8P5Va356lafZguv3Uj2gDwR4
         Ctqcqmf+EkIuST9RZXpJNWUWuM0WLuR4We3+2VVX2B427CziLBQwhCPTe4sOW7IRYuiC
         aClHOn6gzPx4TxcdaotH3Mb+V+iLHfmsb4Mrw3XSVMV+ASZz4ooCS+JHbWRG/qeGNKZZ
         xmDf1Xf8QaKbD1D5kVTyzLNQM98Pv7HX/2NPj3KFIAMgfmVocJXKKdJpkwdRxkk1RjSY
         duz585QyMLv+6U/BdYsBk1KWN0oe+TJrOkDvnyGQMq78HyPglrUGXtLW4ohb1+5f6XIG
         efhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=wBAopcuMZHjciIHB7DxD67GWh0M8Q3KOr2lZGv2eaVQ=;
        b=vojmnyaFAZqz75zQlPqzz/TV6h11Wm9SII56VpAdweMqjz0dScdiRZaLxSzezNKx35
         akO1hLscw1XPAmyQjsX9sEWS035PPmJLYqwUnDrldpyuKPPAiDRycx2THuGnLYV+xhCu
         dD8erR9/jzcDz1n9nIGkHNqpGYhGNPRiHAN8v1wj+Hc/7tSAZJldDw72jjhfYA/ytHsP
         ZGRaGKO5W1w568qB0W77x/8bCUdur275n4f4PmqJLK7IYbv7TrNzjifM1Rnu0nCgSRW9
         tIgMTak5gKljSgX7/vLk5zH5s0QTICu87xsVBMmcRNR3pskASoq+hOk0WjGidE4uMMBZ
         pC0g==
X-Gm-Message-State: AOAM532h4CgDuKaj2f9O1I3ojCgOkRPdSXbpgLZ+HtuM3DZ1xD0je7lj
	H9OCS8dmmuZgR1l09NV1o8cy6zwnjiV1/Q==
X-Google-Smtp-Source: ABdhPJyichwpAJNMAkydxI87GKxoZRWxO8uoBVnYkUCHsGmrt0hZCYLPXfYtuT9M9aREjB1c6odbSA==
X-Received: by 2002:ac2:5310:: with SMTP id c16mr18736716lfh.580.1637787233851;
        Wed, 24 Nov 2021 12:53:53 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Russell King <linux@armlinux.org.uk>,
	Julien Grall <julien@xen.org>
Subject: [PATCH V3 0/6] xen: Add support of extended regions (safe ranges) on Arm
Date: Wed, 24 Nov 2021 22:53:37 +0200
Message-Id: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Hello all.

You can find the RFC-V2 patch series at [1],[2].

The corresponding Xen support (for both Dom0 and DomU) is already committed and
is available in mainline Xen since the following commit:
57f87857dc2de452a796d6bad4f476510efd2aba libxl/arm: Add handling of extended regions for DomU

The extended region (safe range) is a region of guest physical address space
which is unused and could be safely used to create grant/foreign mappings instead
of ballooning out real RAM pages to obtain a physical address space for creating
these mappings (which simply results in wasting domain memory and shattering super
pages in P2M table).

The problem is that we cannot follow Linux advise which memory ranges are unused
on Arm as there might be some identity mappings in P2M table (stage 2) the guest is not
aware of or not all device I/O regions might be known (registered) by the time the guest
starts creating grant/foreign mappings. This is why we need some hints from the hypervisor
which knows all details in advance to be able to choose extended regions (which won't
clash with other resources).

The extended regions are chosen at the domain creation time and advertised to it via
"reg" property under hypervisor node in the guest device-tree [3]. As region 0 is reserved
for grant table space (always present), the indexes for extended regions are 1...N.
No device tree bindings update is needed, guest infers the presence of extended regions
from the number of regions in "reg" property.

Please note the following:
- The ACPI case is not covered for now
- patch series was created in a way to retain existing behavior on x86

The patch series is based on v5.16-rc2 and also available at [4], it was fully
tested on Arm64.

[1] https://lore.kernel.org/all/1627490656-1267-1-git-send-email-olekstysh@gmail.com/
    https://lore.kernel.org/all/1627490656-1267-2-git-send-email-olekstysh@gmail.com/
    
[2] https://lore.kernel.org/all/1635264312-3796-1-git-send-email-olekstysh@gmail.com/

[3] https://xenbits.xen.org/gitweb/?p=xen.git;a=blob_plain;f=docs/misc/arm/device-tree/guest.txt;hb=refs/heads/master

[4] https://github.com/otyshchenko1/linux/commits/map_opt_ml6

Oleksandr Tyshchenko (6):
  xen/unpopulated-alloc: Drop check for virt_addr_valid() in fill_list()
  arm/xen: Switch to use gnttab_setup_auto_xlat_frames() for DT
  xen/balloon: Bring alloc(free)_xenballooned_pages helpers back
  xen/unpopulated-alloc: Add mechanism to use Xen resource
  arm/xen: Read extended regions from DT and init Xen resource
  dt-bindings: xen: Clarify "reg" purpose

 Documentation/devicetree/bindings/arm/xen.txt |  12 ++-
 arch/arm/xen/enlighten.c                      | 132 ++++++++++++++++++++++++--
 drivers/xen/Kconfig                           |   2 +-
 drivers/xen/balloon.c                         |  20 ++--
 drivers/xen/unpopulated-alloc.c               |  84 ++++++++++++++--
 include/xen/balloon.h                         |   3 +
 include/xen/xen.h                             |  16 ++++
 7 files changed, 239 insertions(+), 30 deletions(-)

-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 21:12:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 21:12:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230577.398617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzYl-0003rx-Oy; Wed, 24 Nov 2021 21:12:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230577.398617; Wed, 24 Nov 2021 21:12:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mpzYl-0003rq-LC; Wed, 24 Nov 2021 21:12:07 +0000
Received: by outflank-mailman (input) for mailman id 230577;
 Wed, 24 Nov 2021 21:12:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=T8bs=QL=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mpzYk-0003rk-Kt
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 21:12:06 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b115bd2-4d6b-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 22:12:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b115bd2-4d6b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637788324;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=LrisarM+zh4xGyEaCTVkU64TlzUug60nIJTVDqVZ8Ik=;
  b=bfFmUM2xY9UYL6lAmOSKLM9EKAbxdHTf/KLdpYtwkbtDKKQ/hNh/jxx/
   jl+Sa+pWZOnC9cIbPiXNQXjtZJOTx6l9MsECKp0zLAH0hd+gf1qb7oZQx
   DELQNFg8VU3Mb9shLKK/5nzAJ/9nN9le7uDItAdnPTvCThnddSJZznKDZ
   0=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 20ObPTLwTJ46KltzQ0Kcgcx8Gn3h0eI5spFskynwBr1ZoxsessY+BMVTFR5Pt4cgOcz/GLKqQ+
 GvOa0WVvaHd7UY3cn9oCwyIwGUl5lTY8p9RWoXM9yE7AEeju/fW6sLozuXQYhW/GMwfujWrPzt
 QtsBWU0iirO2bt4ZS0sCqneH7Sjve34BDJ7a/FjEapLe4lDsilKXnVPP7TUrU0ce81MaJ78HIq
 /k+ogBhXO2Pv4StNKim15/Avm5ctFFRlIF/2rN0TGeOLmS1KObamUPAQniDDA/X+fmUMkqyY/f
 TwwDSE7tok6UnVxzAtsRHC0u
X-SBRS: 5.1
X-MesageID: 58595209
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:vOVV0KCqy5NcnBVW//zkw5YqxClBgxIJ4kV8jS/XYbTApDsq32ZSx
 zEbW2zVPqyOYmH9LdEga4uz9E4CvZXQnIBjQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540047wIbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/sR+1n9NBj
 /x0nMbgEiE4BbTsmMUUekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjGph25oWTJ4yY
 eJCOX1eaRjjbCdqGXEZMZkGoeKWhz7wJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tkeHp
 ErW8mLhGBYYOdeDjz2f/RqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24maccd9CL
 00f+gI1sLM/skesS7HAswaQ+SDe+ERGApwJTrN8uFrlJrfoDxixPEI4Tj1xL/UfnZVmHho77
 Uapn/LgLGk62FGKck61+rCRpDK0HCEaK24eeCMJJTc4D8nfTJIb1UyWEIs6eEKhppisQGyrn
 WjWxMQrr+xL1ZZj6kmtwbzQb9tATLDtRxV92AjYV3nNAuhRNN/8PNzABbQ2AJ99wGelorup4
 Cdsdyu2trlm4XSxeMulGrhlIV1Rz6zZWAAweHY2d3Xbyxyj+mS4Yadb6yxkKUFiP64sIGGyP
 xCM6FMBtcUNbRNGiJObhKrrVawXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDlJI5fsLXkJIuSJRoxZybXF+
 G+TQEhdxAatjHHLM1zSOHtidKnuTdB0qndiZX4gOlOh2n4CZ4ez7fhAK8trLOd/rOEzn+RpS
 /QletmbBqgdQDrw5DlAP4L2q5ZvdUr3iFvWbTalejU2Y7VpWxfNpo3/ZgLq+SRXVni3uMIyr
 qeOzATeRZZfFQ1uANyPMKCkzk+rvGhbk+V3BhOaLt5WcUTq0Y5rNy2u0aNnf5BScU3On2LI2
 RyXDBEUofj2j7U0qNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVtH79h8HrJswf5s7tfjveYHnAFtHXGNZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQy2vb4vkCKUnn4DN6oeicWkJIMhjQ0CFQIdOZ6m/+L
 TvNbCLO1zGCtw==
IronPort-HdrOrdr: A9a23:rO8yT66FUw5XLiRKVgPXwMTXdLJyesId70hD6qhwISY6TiX+rb
 HIoB17726RtN9/YhEdcLy7VJVoIkmskKKdg7NhXotKNTOO0ADDQb2KhbGSpQEIcBeeygcy78
 hdmtBFeb/NMWQ=
X-IronPort-AV: E=Sophos;i="5.87,261,1631592000"; 
   d="scan'208";a="58595209"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents"
Date: Wed, 24 Nov 2021 21:11:52 +0000
Message-ID: <20211124211152.1142-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

OSSTest has identified a 3rd regression caused by this change.  Migration
between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
fails with:

  xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
  xc: error: Restore failed (22 = Invalid argument): Internal error

which is a safety check to prevent resuming the guest when the CPUID data has
been truncated.  The problem is caused by shrinking of the max policies, which
is an ABI that needs handling compatibly between different versions of Xen.

Furthermore, shrinking of the default policies also breaks things in some
cases, because certain cpuid= settings in a VM config file which used to have
an effect will now be silently discarded.

This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as well as the
partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (which added
one new case where cpuid= settings might not apply correctly) and restores the
same behaviour as Xen 4.15.

Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents")
Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies max leaves")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Ian Jackson <iwj@xenproject.org>

Passing CI runs:
  https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/415822110
  https://cirrus-ci.com/build/4915643318272000

This supercedes
https://lore.kernel.org/xen-devel/20211124161649.83189-1-roger.pau@citrix.com/
which is a step in the right direction (it fixes the OSSTest breakage), but
incomplete (doesn't fix the potential cpuid= breakage).

For 4.16.  This is the 3rd breakage caused by 540d911c2813, and there is no
reasonable workaround.  Obviously, this revert isn't completely without risk,
but going wholesale back to the 4.15 behaviour is by far the safest option at
this point.
---
 tools/libs/guest/xg_cpuid_x86.c          |   7 ---
 tools/tests/cpu-policy/test-cpu-policy.c | 101 -------------------------------
 xen/arch/x86/cpuid.c                     |  10 ---
 xen/include/xen/lib/x86/cpuid.h          |   7 ---
 xen/lib/x86/cpuid.c                      |  39 ------------
 5 files changed, 164 deletions(-)

diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index 3ffd5f683bec..198892ebdf45 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -638,13 +638,6 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
         }
     }
 
-    /*
-     * Do not try to shrink the policy if restoring, as that could cause
-     * guest visible changes in the maximum leaf fields.
-     */
-    if ( !restore )
-        x86_cpuid_policy_shrink_max_leaves(p);
-
     rc = x86_cpuid_copy_to_buffer(p, leaves, &nr_leaves);
     if ( rc )
     {
diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-policy/test-cpu-policy.c
index 75973298dfd5..ed450a099709 100644
--- a/tools/tests/cpu-policy/test-cpu-policy.c
+++ b/tools/tests/cpu-policy/test-cpu-policy.c
@@ -8,13 +8,10 @@
 #include <err.h>
 
 #include <xen-tools/libs.h>
-#include <xen/asm/x86-defns.h>
 #include <xen/asm/x86-vendors.h>
 #include <xen/lib/x86/cpu-policy.h>
 #include <xen/domctl.h>
 
-#define XSTATE_FP_SSE  (X86_XCR0_FP | X86_XCR0_SSE)
-
 static unsigned int nr_failures;
 #define fail(fmt, ...)                          \
 ({                                              \
@@ -573,103 +570,6 @@ static void test_cpuid_out_of_range_clearing(void)
     }
 }
 
-static void test_cpuid_maximum_leaf_shrinking(void)
-{
-    static const struct test {
-        const char *name;
-        struct cpuid_policy p;
-    } tests[] = {
-        {
-            .name = "basic",
-            .p = {
-                /* Very basic information only. */
-                .basic.max_leaf = 1,
-                .basic.raw_fms = 0xc2,
-            },
-        },
-        {
-            .name = "cache",
-            .p = {
-                /* Cache subleaves present. */
-                .basic.max_leaf = 4,
-                .cache.subleaf[0].type = 1,
-            },
-        },
-        {
-            .name = "feat#0",
-            .p = {
-                /* Subleaf 0 only with some valid bit. */
-                .basic.max_leaf = 7,
-                .feat.max_subleaf = 0,
-                .feat.fsgsbase = 1,
-            },
-        },
-        {
-            .name = "feat#1",
-            .p = {
-                /* Subleaf 1 only with some valid bit. */
-                .basic.max_leaf = 7,
-                .feat.max_subleaf = 1,
-                .feat.avx_vnni = 1,
-            },
-        },
-        {
-            .name = "topo",
-            .p = {
-                /* Topology subleaves present. */
-                .basic.max_leaf = 0xb,
-                .topo.subleaf[0].type = 1,
-            },
-        },
-        {
-            .name = "xstate",
-            .p = {
-                /* First subleaf always valid (and then non-zero). */
-                .basic.max_leaf = 0xd,
-                .xstate.xcr0_low = XSTATE_FP_SSE,
-            },
-        },
-        {
-            .name = "extd",
-            .p = {
-                /* Commonly available information only. */
-                .extd.max_leaf = 0x80000008,
-                .extd.maxphysaddr = 0x28,
-                .extd.maxlinaddr = 0x30,
-            },
-        },
-    };
-
-    printf("Testing CPUID maximum leaf shrinking:\n");
-
-    for ( size_t i = 0; i < ARRAY_SIZE(tests); ++i )
-    {
-        const struct test *t = &tests[i];
-        struct cpuid_policy *p = memdup(&t->p);
-
-        p->basic.max_leaf = ARRAY_SIZE(p->basic.raw) - 1;
-        p->feat.max_subleaf = ARRAY_SIZE(p->feat.raw) - 1;
-        p->extd.max_leaf = 0x80000000 | (ARRAY_SIZE(p->extd.raw) - 1);
-
-        x86_cpuid_policy_shrink_max_leaves(p);
-
-        /* Check the the resulting max (sub)leaf values against expecations. */
-        if ( p->basic.max_leaf != t->p.basic.max_leaf )
-             fail("  Test %s basic fail - expected %#x, got %#x\n",
-                  t->name, t->p.basic.max_leaf, p->basic.max_leaf);
-
-        if ( p->extd.max_leaf != t->p.extd.max_leaf )
-             fail("  Test %s extd fail - expected %#x, got %#x\n",
-                  t->name, t->p.extd.max_leaf, p->extd.max_leaf);
-
-        if ( p->feat.max_subleaf != t->p.feat.max_subleaf )
-             fail("  Test %s feat fail - expected %#x, got %#x\n",
-                  t->name, t->p.feat.max_subleaf, p->feat.max_subleaf);
-
-        free(p);
-    }
-}
-
 static void test_is_compatible_success(void)
 {
     static struct test {
@@ -785,7 +685,6 @@ int main(int argc, char **argv)
     test_cpuid_serialise_success();
     test_cpuid_deserialise_failure();
     test_cpuid_out_of_range_clearing();
-    test_cpuid_maximum_leaf_shrinking();
 
     test_msr_serialise_success();
     test_msr_deserialise_failure();
diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 8ac55f0806d0..151944f65702 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -353,8 +353,6 @@ static void __init calculate_host_policy(void)
         p->extd.raw[0xa].d |= ((1u << SVM_FEATURE_VMCBCLEAN) |
                                (1u << SVM_FEATURE_TSCRATEMSR));
     }
-
-    x86_cpuid_policy_shrink_max_leaves(p);
 }
 
 static void __init guest_common_default_feature_adjustments(uint32_t *fs)
@@ -434,8 +432,6 @@ static void __init calculate_pv_max_policy(void)
     recalculate_xstate(p);
 
     p->extd.raw[0xa] = EMPTY_LEAF; /* No SVM for PV guests. */
-
-    x86_cpuid_policy_shrink_max_leaves(p);
 }
 
 static void __init calculate_pv_def_policy(void)
@@ -456,8 +452,6 @@ static void __init calculate_pv_def_policy(void)
     sanitise_featureset(pv_featureset);
     cpuid_featureset_to_policy(pv_featureset, p);
     recalculate_xstate(p);
-
-    x86_cpuid_policy_shrink_max_leaves(p);
 }
 
 static void __init calculate_hvm_max_policy(void)
@@ -523,8 +517,6 @@ static void __init calculate_hvm_max_policy(void)
     sanitise_featureset(hvm_featureset);
     cpuid_featureset_to_policy(hvm_featureset, p);
     recalculate_xstate(p);
-
-    x86_cpuid_policy_shrink_max_leaves(p);
 }
 
 static void __init calculate_hvm_def_policy(void)
@@ -549,8 +541,6 @@ static void __init calculate_hvm_def_policy(void)
     sanitise_featureset(hvm_featureset);
     cpuid_featureset_to_policy(hvm_featureset, p);
     recalculate_xstate(p);
-
-    x86_cpuid_policy_shrink_max_leaves(p);
 }
 
 void __init init_guest_cpuid(void)
diff --git a/xen/include/xen/lib/x86/cpuid.h b/xen/include/xen/lib/x86/cpuid.h
index 2300faf03e2b..a4d254ea96e0 100644
--- a/xen/include/xen/lib/x86/cpuid.h
+++ b/xen/include/xen/lib/x86/cpuid.h
@@ -386,13 +386,6 @@ void x86_cpuid_policy_fill_native(struct cpuid_policy *p);
  */
 void x86_cpuid_policy_clear_out_of_range_leaves(struct cpuid_policy *p);
 
-/**
- * Shrink max leaf/subleaf values such that the last respective valid entry
- * isn't all blank.  While permitted by the spec, such extraneous leaves may
- * provide undue "hints" to guests.
- */
-void x86_cpuid_policy_shrink_max_leaves(struct cpuid_policy *p);
-
 #ifdef __XEN__
 #include <public/arch-x86/xen.h>
 typedef XEN_GUEST_HANDLE_64(xen_cpuid_leaf_t) cpuid_leaf_buffer_t;
diff --git a/xen/lib/x86/cpuid.c b/xen/lib/x86/cpuid.c
index 1409c254c8ea..8eb88314f53c 100644
--- a/xen/lib/x86/cpuid.c
+++ b/xen/lib/x86/cpuid.c
@@ -236,45 +236,6 @@ void x86_cpuid_policy_clear_out_of_range_leaves(struct cpuid_policy *p)
                 ARRAY_SIZE(p->extd.raw) - 1);
 }
 
-void x86_cpuid_policy_shrink_max_leaves(struct cpuid_policy *p)
-{
-    unsigned int i;
-
-    p->basic.raw[0x4] = p->cache.raw[0];
-
-    for ( i = p->feat.max_subleaf; i; --i )
-        if ( p->feat.raw[i].a | p->feat.raw[i].b |
-             p->feat.raw[i].c | p->feat.raw[i].d )
-            break;
-    p->feat.max_subleaf = i;
-    p->basic.raw[0x7] = p->feat.raw[i];
-
-    p->basic.raw[0xb] = p->topo.raw[0];
-
-    /*
-     * Due to the way xstate gets handled in the hypervisor (see
-     * recalculate_xstate()) there is (for now at least) no need to fiddle
-     * with the xstate subleaves (IOW we assume they're already in consistent
-     * shape, for coming from either hardware or recalculate_xstate()).
-     */
-    p->basic.raw[0xd] = p->xstate.raw[0];
-
-    for ( i = p->basic.max_leaf; i; --i )
-        if ( p->basic.raw[i].a | p->basic.raw[i].b |
-             p->basic.raw[i].c | p->basic.raw[i].d )
-            break;
-    p->basic.max_leaf = i;
-
-    for ( i = p->extd.max_leaf & 0xffff; i; --i )
-        if ( p->extd.raw[i].a | p->extd.raw[i].b |
-             p->extd.raw[i].c | p->extd.raw[i].d )
-            break;
-    if ( i | p->extd.raw[0].b | p->extd.raw[0].c | p->extd.raw[0].d )
-        p->extd.max_leaf = 0x80000000 | i;
-    else
-        p->extd.max_leaf = 0;
-}
-
 const uint32_t *x86_cpuid_lookup_deep_deps(uint32_t feature)
 {
     static const uint32_t deep_features[] = INIT_DEEP_FEATURES;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 24 22:55:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 22:55:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230588.398628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq1AA-0004pE-IW; Wed, 24 Nov 2021 22:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230588.398628; Wed, 24 Nov 2021 22:54:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq1AA-0004p7-Fi; Wed, 24 Nov 2021 22:54:50 +0000
Received: by outflank-mailman (input) for mailman id 230588;
 Wed, 24 Nov 2021 22:54:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JCoO=QL=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mq1A8-0004p0-V6
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 22:54:49 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8582ffe0-4d79-11ec-9787-a32c541c8605;
 Wed, 24 Nov 2021 23:54:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8582ffe0-4d79-11ec-9787-a32c541c8605
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637794485;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=33e828wB9dEjeifz4XOcX4tXiHJV404Ri36l36adBdc=;
	b=QL25vkWz5mQq9ypR1mfmeECHaoZFXVS51EIdeocF5QL5UpPcPy/vofDZ9im05kSuQzGiBJ
	hmVnAE32Zwr1VkRpV1E2d3zSHp/NaafeFx27NyPu3NeXBUKveOHM8EaU3XHWHEOM9acx4v
	TWEwjphxl+Xa8N5TxXy+pF+QZh0oBWvQ9a133TJwQqhgl5uKgyToljpih/0s43EbY/3lIm
	cqA8t+/NdjU5XMTORklBghjPF/S6+ETzyUnMQxqFwpOfWrExhkE8lszWssWX+C4T/s5tlu
	pI/lWC3ZBTxtDAQGnymKdUUdgrmG7v8S4EW/yoFY7yrdWzSp9BUsjrBqKIRw+Q==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637794485;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=33e828wB9dEjeifz4XOcX4tXiHJV404Ri36l36adBdc=;
	b=mA9Ro9+xZCYf8cq+L5iHAjp5rtiwfJn3ClnLyxZNu70rRhIHMx8CyC3LbEXLTKodK5/j7L
	0IJbIbc/zuN/RbDA==
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>, "Longpeng (Mike,
 Cloud Infrastructure Service Product Dept.)" <longpeng2@huawei.com>
Cc: linux-kernel@vger.kernel.org, "Gonglei (Arei)"
 <arei.gonglei@huawei.com>, x86@kernel.org, xen-devel@lists.xenproject.org,
 Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@kernel.org>,
 Valentin Schneider <valentin.schneider@arm.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to
 be brought up again.
In-Reply-To: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
References: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
Date: Wed, 24 Nov 2021 23:54:44 +0100
Message-ID: <87y25djhaj.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Mon, Nov 22 2021 at 16:47, Sebastian Andrzej Siewior wrote:
> From: "Longpeng(Mike)" <longpeng2@huawei.com>
>
> A CPU will not show up in virtualized environment which includes an
> Enclave. The VM splits its resources into a primary VM and a Enclave
> VM. While the Enclave is active, the hypervisor will ignore all requests
> to bring up a CPU and this CPU will remain in CPU_UP_PREPARE state.
> The kernel will wait up to ten seconds for CPU to show up
> (do_boot_cpu()) and then rollback the hotplug state back to
> CPUHP_OFFLINE leaving the CPU state in CPU_UP_PREPARE. The CPU state is
> set back to CPUHP_TEARDOWN_CPU during the CPU_POST_DEAD stage.
>
> After the Enclave VM terminates, the primary VM can bring up the CPU
> again.
>
> Allow to bring up the CPU if it is in the CPU_UP_PREPARE state.
>
> [bigeasy: Rewrite commit description.]
>
> Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> Link: https://lore.kernel.org/r/20210901051143.2752-1-longpeng2@huawei.com
> ---
>
> For XEN: this changes the behaviour as it allows to invoke
> cpu_initialize_context() again should it have have earlier. I *think*
> this is okay and would to bring up the CPU again should the memory
> allocation in cpu_initialize_context() fail.

Any comment from XEN folks?

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 23:36:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 23:36:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230593.398639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq1nz-0000Tk-PF; Wed, 24 Nov 2021 23:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230593.398639; Wed, 24 Nov 2021 23:35:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq1nz-0000Td-Lr; Wed, 24 Nov 2021 23:35:59 +0000
Received: by outflank-mailman (input) for mailman id 230593;
 Wed, 24 Nov 2021 23:35:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JPi9=QL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mq1ny-0000TW-JQ
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 23:35:58 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4334c3f3-4d7f-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 00:35:56 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id AE98160F12;
 Wed, 24 Nov 2021 23:35:51 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4334c3f3-4d7f-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637796952;
	bh=nPrNItrkZzgIB91C/Xwr4wBRunHOMHdNFSsrBmYafok=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pv91MMp2Xx+Nhh0KE08I0gNIJ8WemEh04U5gPK2vCVKhQAT6zmyAEGfbrMU2mOE+F
	 xM086wsWEmFcTjPU/iequRzWftoTYVPFPNv6Q9N+5XaKikbjl5TQS+9nD7j+lQhLHr
	 YQjOihNB4c2Ivrd8kjfoQkj+Wg3nayp397fNw8j0wCci3BR0hcAUjVfOX6fVv2pQ2f
	 gAmIcaLpK2Vl6G8C78yqp/VdCK/gUWajeT0/TIyoBNwBDBi6hBTEbEor0xkZVjOmjm
	 rNVNvkOzNwv5Sh6itjd5EL5ugVvl6IC8ZrY371061/YhO5Texk9eo/MetOOqbkDAtb
	 y93ZQFGdXtIaA==
Date: Wed, 24 Nov 2021 15:35:50 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
cc: xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org, 
    linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Russell King <linux@armlinux.org.uk>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH V3 2/6] arm/xen: Switch to use gnttab_setup_auto_xlat_frames()
 for DT
In-Reply-To: <1637787223-21129-3-git-send-email-olekstysh@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111241534090.1412361@ubuntu-linux-20-04-desktop>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com> <1637787223-21129-3-git-send-email-olekstysh@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 24 Nov 2021, Oleksandr Tyshchenko wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> Read the start address of the grant table space from DT
> (region 0).
> 
> This patch mostly restores behaviour before commit 3cf4095d7446
> ("arm/xen: Use xen_xlate_map_ballooned_pages to setup grant table")
> but trying not to break the ACPI support added after that commit.
> So the patch touches DT part only and leaves the ACPI part with
> xen_xlate_map_ballooned_pages(). Also in order to make a code more
> resilient use a fallback to xen_xlate_map_ballooned_pages() if grant
> table region wasn't found.
> 
> This is a preparation for using Xen extended region feature
> where unused regions of guest physical address space (provided
> by the hypervisor) will be used to create grant/foreign/whatever
> mappings instead of wasting real RAM pages from the domain memory
> for establishing these mappings.
> 
> The immediate benefit of this change:
> - Avoid superpage shattering in Xen P2M when establishing
>   stage-2 mapping (GFN <-> MFN) for the grant table space
> - Avoid wasting real RAM pages (reducing the amount of memory
>   usuable) for mapping grant table space
> - The grant table space is always mapped at the exact
>   same place (region 0 is reserved for the grant table)
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> Changes RFC -> V2:
>    - new patch
> 
> Changes V2 -> V3:
>    - add __read_mostly specifier to xen_grant_frames
>    - retain a fallback to xen_xlate_map_ballooned_pages() if
>      xen_grant_frames is invalid
>    - process xen_events_irq before xen_grant_frames in
>      xen_dt_guest_init()
>    - update patch description
> ---
>  arch/arm/xen/enlighten.c | 26 ++++++++++++++++++++------
>  1 file changed, 20 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
> index 7619fbf..3fb3384 100644
> --- a/arch/arm/xen/enlighten.c
> +++ b/arch/arm/xen/enlighten.c
> @@ -59,6 +59,9 @@ unsigned long xen_released_pages;
>  struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
>  
>  static __read_mostly unsigned int xen_events_irq;
> +static __read_mostly phys_addr_t xen_grant_frames;
> +
> +#define GRANT_TABLE_INDEX   0
>  
>  uint32_t xen_start_flags;
>  EXPORT_SYMBOL(xen_start_flags);
> @@ -303,6 +306,7 @@ static void __init xen_acpi_guest_init(void)
>  static void __init xen_dt_guest_init(void)
>  {
>  	struct device_node *xen_node;
> +	struct resource res;
>  
>  	xen_node = of_find_compatible_node(NULL, NULL, "xen,xen");
>  	if (!xen_node) {
> @@ -311,13 +315,19 @@ static void __init xen_dt_guest_init(void)
>  	}
>  
>  	xen_events_irq = irq_of_parse_and_map(xen_node, 0);
> +
> +	if (of_address_to_resource(xen_node, GRANT_TABLE_INDEX, &res)) {
> +		pr_err("Xen grant table region is not found\n");
> +		return;
> +	}
> +	xen_grant_frames = res.start;
>  }
>  
>  static int __init xen_guest_init(void)
>  {
>  	struct xen_add_to_physmap xatp;
>  	struct shared_info *shared_info_page = NULL;
> -	int cpu;
> +	int rc, cpu;
>  
>  	if (!xen_domain())
>  		return 0;
> @@ -370,12 +380,16 @@ static int __init xen_guest_init(void)
>  	for_each_possible_cpu(cpu)
>  		per_cpu(xen_vcpu_id, cpu) = cpu;
>  
> -	xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
> -	if (xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
> -					  &xen_auto_xlat_grant_frames.vaddr,
> -					  xen_auto_xlat_grant_frames.count)) {
> +	if (!acpi_disabled || !xen_grant_frames) {

I realize now that we only need:

    if (!xen_grant_frames) {

with that:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>



> +		xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
> +		rc = xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
> +										   &xen_auto_xlat_grant_frames.vaddr,
> +										   xen_auto_xlat_grant_frames.count);
> +	} else
> +		rc = gnttab_setup_auto_xlat_frames(xen_grant_frames);
> +	if (rc) {
>  		free_percpu(xen_vcpu_info);
> -		return -ENOMEM;
> +		return rc;
>  	}
>  	gnttab_init();


From xen-devel-bounces@lists.xenproject.org Wed Nov 24 23:36:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Nov 2021 23:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230595.398650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq1ob-000105-2v; Wed, 24 Nov 2021 23:36:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230595.398650; Wed, 24 Nov 2021 23:36:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq1oa-0000zy-VE; Wed, 24 Nov 2021 23:36:36 +0000
Received: by outflank-mailman (input) for mailman id 230595;
 Wed, 24 Nov 2021 23:36:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JPi9=QL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mq1oa-0000ou-0w
 for xen-devel@lists.xenproject.org; Wed, 24 Nov 2021 23:36:36 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5bd250d6-4d7f-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 00:36:34 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 1D9F26108F;
 Wed, 24 Nov 2021 23:36:33 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bd250d6-4d7f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637796993;
	bh=CzDNbSFExR/OH7jKVlVsAtdlJOBl3QPTlsD27TWT+pA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=QaEyEMghFdE0vlspvMHAPD4NxBRW8ljDsQ4hZX6FqNQla4SD5G5cC5Or+18iNn4T4
	 5NPmAiA4pAuVlaeRyJwOgvIaiJEYNFeoZ3R1HWT6iL19itCxsAp2TPqF6QbMOBwrZ9
	 b/isS1rmlFO5uJxrLB6Y3g3715c83xeTaNSkpdjULnCnGTr+8XaUcyi22kcgOHvlRG
	 7IVymbC1xz+OlRXqpujYKuGfQia/X/IL+y8QX0KQ5XhRVCsgVZDSEJewW2BlD7/2+q
	 Wo9JeTOkzl91GjZQzaDC44NBa1hUrbelktaVs+tUPSRa7LTXnKDkcE2Y7M4sjUD8fl
	 wP4wpxMcrxtNg==
Date: Wed, 24 Nov 2021 15:36:31 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    Juergen Gross <jgross@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH V3 3/6] xen/balloon: Bring alloc(free)_xenballooned_pages
 helpers back
In-Reply-To: <1637787223-21129-4-git-send-email-olekstysh@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111241536070.1412361@ubuntu-linux-20-04-desktop>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com> <1637787223-21129-4-git-send-email-olekstysh@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 24 Nov 2021, Oleksandr Tyshchenko wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> This patch rolls back some of the changes introduced by commit
> 121f2faca2c0a "xen/balloon: rename alloc/free_xenballooned_pages"
> in order to make possible to still allocate xenballooned pages
> if CONFIG_XEN_UNPOPULATED_ALLOC is enabled.
> 
> On Arm the unpopulated pages will be allocated on top of extended
> regions provided by Xen via device-tree (the subsequent patches
> will add required bits to support unpopulated-alloc feature on Arm).
> The problem is that extended regions feature has been introduced
> into Xen quite recently (during 4.16 release cycle). So this
> effectively means that Linux must only use unpopulated-alloc on Arm
> if it is running on "new Xen" which advertises these regions.
> But, it will only be known after parsing the "hypervisor" node
> at boot time, so before doing that we cannot assume anything.
> 
> In order to keep working if CONFIG_XEN_UNPOPULATED_ALLOC is enabled
> and the extended regions are not advertised (Linux is running on
> "old Xen", etc) we need the fallback to alloc_xenballooned_pages().
> 
> This way we wouldn't reduce the amount of memory usable (wasting
> RAM pages) for any of the external mappings anymore (and eliminate
> XSA-300) with "new Xen", but would be still functional ballooning
> out RAM pages with "old Xen".
> 
> Also rename alloc(free)_xenballooned_pages to xen_alloc(free)_ballooned_pages
> and make xen_alloc(free)_unpopulated_pages static inline in xen.h
> if CONFIG_XEN_UNPOPULATED_ALLOC is disabled.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> @Stefano, I decided to retain your R-b after making a minor
> change (make xen_alloc(free)_unpopulated_pages static inline
> in xen.h if CONFIG_XEN_UNPOPULATED_ALLOC is disabled).
> Please let me know if you think otherwise.

That's fine


> Changes V2 -> V3:
>    - new patch
> ---
>  drivers/xen/balloon.c | 20 +++++++++-----------
>  include/xen/balloon.h |  3 +++
>  include/xen/xen.h     | 14 ++++++++++++++
>  3 files changed, 26 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
> index ba2ea11..a2c4fc49 100644
> --- a/drivers/xen/balloon.c
> +++ b/drivers/xen/balloon.c
> @@ -581,7 +581,6 @@ void balloon_set_new_target(unsigned long target)
>  }
>  EXPORT_SYMBOL_GPL(balloon_set_new_target);
>  
> -#ifndef CONFIG_XEN_UNPOPULATED_ALLOC
>  static int add_ballooned_pages(unsigned int nr_pages)
>  {
>  	enum bp_state st;
> @@ -610,12 +609,12 @@ static int add_ballooned_pages(unsigned int nr_pages)
>  }
>  
>  /**
> - * xen_alloc_unpopulated_pages - get pages that have been ballooned out
> + * xen_alloc_ballooned_pages - get pages that have been ballooned out
>   * @nr_pages: Number of pages to get
>   * @pages: pages returned
>   * @return 0 on success, error otherwise
>   */
> -int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages)
>  {
>  	unsigned int pgno = 0;
>  	struct page *page;
> @@ -652,23 +651,23 @@ int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>  	return 0;
>   out_undo:
>  	mutex_unlock(&balloon_mutex);
> -	xen_free_unpopulated_pages(pgno, pages);
> +	xen_free_ballooned_pages(pgno, pages);
>  	/*
> -	 * NB: free_xenballooned_pages will only subtract pgno pages, but since
> +	 * NB: xen_free_ballooned_pages will only subtract pgno pages, but since
>  	 * target_unpopulated is incremented with nr_pages at the start we need
>  	 * to remove the remaining ones also, or accounting will be screwed.
>  	 */
>  	balloon_stats.target_unpopulated -= nr_pages - pgno;
>  	return ret;
>  }
> -EXPORT_SYMBOL(xen_alloc_unpopulated_pages);
> +EXPORT_SYMBOL(xen_alloc_ballooned_pages);
>  
>  /**
> - * xen_free_unpopulated_pages - return pages retrieved with get_ballooned_pages
> + * xen_free_ballooned_pages - return pages retrieved with get_ballooned_pages
>   * @nr_pages: Number of pages
>   * @pages: pages to return
>   */
> -void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages)
>  {
>  	unsigned int i;
>  
> @@ -687,9 +686,9 @@ void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>  
>  	mutex_unlock(&balloon_mutex);
>  }
> -EXPORT_SYMBOL(xen_free_unpopulated_pages);
> +EXPORT_SYMBOL(xen_free_ballooned_pages);
>  
> -#if defined(CONFIG_XEN_PV)
> +#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
>  static void __init balloon_add_region(unsigned long start_pfn,
>  				      unsigned long pages)
>  {
> @@ -712,7 +711,6 @@ static void __init balloon_add_region(unsigned long start_pfn,
>  	balloon_stats.total_pages += extra_pfn_end - start_pfn;
>  }
>  #endif
> -#endif
>  
>  static int __init balloon_init(void)
>  {
> diff --git a/include/xen/balloon.h b/include/xen/balloon.h
> index e93d4f0..f78a6cc 100644
> --- a/include/xen/balloon.h
> +++ b/include/xen/balloon.h
> @@ -26,6 +26,9 @@ extern struct balloon_stats balloon_stats;
>  
>  void balloon_set_new_target(unsigned long target);
>  
> +int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages);
> +void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages);
> +
>  #ifdef CONFIG_XEN_BALLOON
>  void xen_balloon_init(void);
>  #else
> diff --git a/include/xen/xen.h b/include/xen/xen.h
> index 9f031b5..86c5b37 100644
> --- a/include/xen/xen.h
> +++ b/include/xen/xen.h
> @@ -52,7 +52,21 @@ bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
>  extern u64 xen_saved_max_mem_size;
>  #endif
>  
> +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>  int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
>  void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
> +#else
> +#include <xen/balloon.h>
> +static inline int xen_alloc_unpopulated_pages(unsigned int nr_pages,
> +		struct page **pages)
> +{
> +	return xen_alloc_ballooned_pages(nr_pages, pages);
> +}
> +static inline void xen_free_unpopulated_pages(unsigned int nr_pages,
> +		struct page **pages)
> +{
> +	xen_free_ballooned_pages(nr_pages, pages);
> +}
> +#endif
>  
>  #endif	/* _XEN_XEN_H */
> -- 
> 2.7.4
> 


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 01:04:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 01:04:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230601.398661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq3B4-0003cW-LV; Thu, 25 Nov 2021 01:03:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230601.398661; Thu, 25 Nov 2021 01:03:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq3B4-0003cP-He; Thu, 25 Nov 2021 01:03:54 +0000
Received: by outflank-mailman (input) for mailman id 230601;
 Thu, 25 Nov 2021 01:03:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fYof=QM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mq3B2-0003cJ-BB
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 01:03:52 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b140ea4-4d8b-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 02:03:49 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 4DF2661074;
 Thu, 25 Nov 2021 01:03:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b140ea4-4d8b-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637802226;
	bh=8YH11mUx5QQbDMm44SpjsWpYUKnvhNesjP2DbY73S8k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JOFmp/ewYaES9ajzQ9owU25yARJY60qya7i7b6R6RevBTSMpqm2HIKsLk78nkY2ij
	 c+1o3FLOfqmm1QSy+xN1TGL2K6jcE6dcwGRn0sktQU8PJgSFkQu541LOFMSew/PSV5
	 Q+euINRq0NFCZb6aCT+YVOyyBr4JmXXJ/mSkPWiEZq9QmIqV34fdMf5DEu0KNMeZ8K
	 rVMaHDyowXIHnEvkx8EHAITZI8U5bLphMt06wDlgdSkfbI2OsiZPR8fanfhI6uwG4a
	 VEI5DAe4z+FGzp+G2g6lquG59i3mk4lIVUAjk5J093DZ4gamlH3LNoQm9PM0f7DHFz
	 mjfg1FDALNLpA==
Date: Wed, 24 Nov 2021 17:03:45 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    Juergen Gross <jgross@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH V3 4/6] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
In-Reply-To: <1637787223-21129-5-git-send-email-olekstysh@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111241701240.1412361@ubuntu-linux-20-04-desktop>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com> <1637787223-21129-5-git-send-email-olekstysh@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-676403013-1637802226=:1412361"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-676403013-1637802226=:1412361
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 24 Nov 2021, Oleksandr Tyshchenko wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> The main reason of this change is that unpopulated-alloc
> code cannot be used in its current form on Arm, but there
> is a desire to reuse it to avoid wasting real RAM pages
> for the grant/foreign mappings.
> 
> The problem is that system "iomem_resource" is used for
> the address space allocation, but the really unallocated
> space can't be figured out precisely by the domain on Arm
> without hypervisor involvement. For example, not all device
> I/O regions are known by the time domain starts creating
> grant/foreign mappings. And following the advise from
> "iomem_resource" we might end up reusing these regions by
> a mistake. So, the hypervisor which maintains the P2M for
> the domain is in the best position to provide unused regions
> of guest physical address space which could be safely used
> to create grant/foreign mappings.
> 
> Introduce new helper arch_xen_unpopulated_init() which purpose
> is to create specific Xen resource based on the memory regions
> provided by the hypervisor to be used as unused space for Xen
> scratch pages. If arch doesn't define arch_xen_unpopulated_init()
> the default "iomem_resource" will be used.
> 
> Update the arguments list of allocate_resource() in fill_list()
> to always allocate a region from the hotpluggable range
> (maximum possible addressable physical memory range for which
> the linear mapping could be created). If arch doesn't define
> arch_get_mappable_range() the default range (0,-1) will be used.
> 
> The behaviour on x86 won't be changed by current patch as both
> arch_xen_unpopulated_init() and arch_get_mappable_range()
> are not implemented for it.
> 
> Also fallback to allocate xenballooned pages (balloon out RAM
> pages) if we do not have any suitable resource to work with
> (target_resource is invalid) and as the result we won't be able
> to provide unpopulated pages on a request.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>


Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> Please note the following:
> for V3 arch_xen_unpopulated_init() was moved to init() as was agreed
> and gained __init specifier. So the target_resource is initialized there.
> 
> With current patch series applied if CONFIG_XEN_UNPOPULATED_ALLOC
> is enabled:
> 
> 1. On Arm, under normal circumstances, the xen_alloc_unpopulated_pages()
> won't be called “before” arch_xen_unpopulated_init(). It will only be
> called "before" when either ACPI is in use or something wrong happened
> with DT (and we failed to read xen_grant_frames), so we fallback to
> xen_xlate_map_ballooned_pages() in arm/xen/enlighten.c:xen_guest_init(),
> please see "arm/xen: Switch to use gnttab_setup_auto_xlat_frames() for DT"
> for details. But in that case, I think, it doesn't matter much whether
> xen_alloc_unpopulated_pages() is called "before" of "after" target_resource
> initialization, as we don't have extended regions in place the target_resource
> will remain invalid even after initialization, so xen_alloc_ballooned_pages()
> will be used in both scenarios.
> 
> 2. On x86, I am not quite sure which modes use unpopulated-alloc (PVH?),
> but it looks like xen_alloc_unpopulated_pages() can (and will) be called
> “before” arch_xen_unpopulated_init().
> At least, I see that xen_xlate_map_ballooned_pages() is called in
> x86/xen/grant-table.c:xen_pvh_gnttab_setup(). According to the initcall
> levels for both xen_pvh_gnttab_setup() and init() I expect the former
> to be called earlier.
> If it is true, the sentence in the commit description which mentions
> that “behaviour on x86 is not changed” is not precise. I don’t think
> it would be correct to fallback to xen_alloc_ballooned_pages() just
> because we haven’t initialized target_resource yet (on x86 it is just
> assigning it iomem_resource), at least this doesn't look like an expected
> behaviour and unlikely would be welcome.
> 
> I am wondering whether it would be better to move arch_xen_unpopulated_init()
> to a dedicated init() marked with an appropriate initcall level (early_initcall?)
> to make sure it will always be called *before* xen_xlate_map_ballooned_pages().
> What do you think?
> 
> Changes RFC -> V2:
>    - new patch, instead of
>     "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide unallocated space"
> 
> Changes V2 -> V3:
>    - update patch description and comments in code
>    - modify arch_xen_unpopulated_init() to pass target_resource as an argument
>      and update default helper to assign iomem_resource to it, also drop
>      xen_resource as it will be located in arch code in the future
>    - allocate region from hotpluggable range instead of hardcoded range (0,-1)
>      in fill_list()
>    - use %pR specifier in error message
>    - do not call unpopulated_init() at runtime from xen_alloc_unpopulated_pages(),
>      drop an extra helper and call arch_xen_unpopulated_init() directly from __init()
>    - include linux/ioport.h instead of forward declaration of struct resource
>    - replace insert_resource() with request_resource() in fill_list()
>    - add __init specifier to arch_xen_unpopulated_init()
> ---
>  drivers/xen/unpopulated-alloc.c | 83 +++++++++++++++++++++++++++++++++++++----
>  include/xen/xen.h               |  2 +
>  2 files changed, 78 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c
> index a03dc5b..07d3578 100644
> --- a/drivers/xen/unpopulated-alloc.c
> +++ b/drivers/xen/unpopulated-alloc.c
> @@ -8,6 +8,7 @@
>  
>  #include <asm/page.h>
>  
> +#include <xen/balloon.h>
>  #include <xen/page.h>
>  #include <xen/xen.h>
>  
> @@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_lock);
>  static struct page *page_list;
>  static unsigned int list_count;
>  
> +static struct resource *target_resource;
> +
> +/*
> + * If arch is not happy with system "iomem_resource" being used for
> + * the region allocation it can provide it's own view by creating specific
> + * Xen resource with unused regions of guest physical address space provided
> + * by the hypervisor.
> + */
> +int __weak __init arch_xen_unpopulated_init(struct resource **res)
> +{
> +	*res = &iomem_resource;
> +
> +	return 0;
> +}
> +
>  static int fill_list(unsigned int nr_pages)
>  {
>  	struct dev_pagemap *pgmap;
> -	struct resource *res;
> +	struct resource *res, *tmp_res = NULL;
>  	void *vaddr;
>  	unsigned int i, alloc_pages = round_up(nr_pages, PAGES_PER_SECTION);
> -	int ret = -ENOMEM;
> +	struct range mhp_range;
> +	int ret;
>  
>  	res = kzalloc(sizeof(*res), GFP_KERNEL);
>  	if (!res)
> @@ -30,14 +47,40 @@ static int fill_list(unsigned int nr_pages)
>  	res->name = "Xen scratch";
>  	res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
>  
> -	ret = allocate_resource(&iomem_resource, res,
> -				alloc_pages * PAGE_SIZE, 0, -1,
> +	mhp_range = mhp_get_pluggable_range(true);
> +
> +	ret = allocate_resource(target_resource, res,
> +				alloc_pages * PAGE_SIZE, mhp_range.start, mhp_range.end,
>  				PAGES_PER_SECTION * PAGE_SIZE, NULL, NULL);
>  	if (ret < 0) {
>  		pr_err("Cannot allocate new IOMEM resource\n");
>  		goto err_resource;
>  	}
>  
> +	/*
> +	 * Reserve the region previously allocated from Xen resource to avoid
> +	 * re-using it by someone else.
> +	 */
> +	if (target_resource != &iomem_resource) {
> +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
> +		if (!res) {
> +			ret = -ENOMEM;
> +			goto err_insert;
> +		}
> +
> +		tmp_res->name = res->name;
> +		tmp_res->start = res->start;
> +		tmp_res->end = res->end;
> +		tmp_res->flags = res->flags;
> +
> +		ret = request_resource(&iomem_resource, tmp_res);
> +		if (ret < 0) {
> +			pr_err("Cannot request resource %pR (%d)\n", tmp_res, ret);
> +			kfree(tmp_res);
> +			goto err_insert;
> +		}
> +	}
> +
>  	pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
>  	if (!pgmap) {
>  		ret = -ENOMEM;
> @@ -95,6 +138,11 @@ static int fill_list(unsigned int nr_pages)
>  err_memremap:
>  	kfree(pgmap);
>  err_pgmap:
> +	if (tmp_res) {
> +		release_resource(tmp_res);
> +		kfree(tmp_res);
> +	}
> +err_insert:
>  	release_resource(res);
>  err_resource:
>  	kfree(res);
> @@ -112,6 +160,14 @@ int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>  	unsigned int i;
>  	int ret = 0;
>  
> +	/*
> +	 * Fallback to default behavior if we do not have any suitable resource
> +	 * to allocate required region from and as the result we won't be able to
> +	 * construct pages.
> +	 */
> +	if (!target_resource)
> +		return xen_alloc_ballooned_pages(nr_pages, pages);
> +
>  	mutex_lock(&list_lock);
>  	if (list_count < nr_pages) {
>  		ret = fill_list(nr_pages - list_count);
> @@ -159,6 +215,11 @@ void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>  {
>  	unsigned int i;
>  
> +	if (!target_resource) {
> +		xen_free_ballooned_pages(nr_pages, pages);
> +		return;
> +	}
> +
>  	mutex_lock(&list_lock);
>  	for (i = 0; i < nr_pages; i++) {
>  		pages[i]->zone_device_data = page_list;
> @@ -169,9 +230,11 @@ void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>  }
>  EXPORT_SYMBOL(xen_free_unpopulated_pages);
>  
> -#ifdef CONFIG_XEN_PV
>  static int __init init(void)
>  {
> +	int ret;
> +
> +#ifdef CONFIG_XEN_PV
>  	unsigned int i;
>  
>  	if (!xen_domain())
> @@ -196,8 +259,14 @@ static int __init init(void)
>  			list_count++;
>  		}
>  	}
> +#endif
>  
> -	return 0;
> +	ret = arch_xen_unpopulated_init(&target_resource);
> +	if (ret) {
> +		pr_err("xen:unpopulated: Cannot initialize target resource\n");
> +		target_resource = NULL;
> +	}
> +
> +	return ret;
>  }
>  subsys_initcall(init);
> -#endif
> diff --git a/include/xen/xen.h b/include/xen/xen.h
> index 86c5b37..a99bab8 100644
> --- a/include/xen/xen.h
> +++ b/include/xen/xen.h
> @@ -55,6 +55,8 @@ extern u64 xen_saved_max_mem_size;
>  #ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>  int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
>  void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
> +#include <linux/ioport.h>
> +int arch_xen_unpopulated_init(struct resource **res);
>  #else
>  #include <xen/balloon.h>
>  static inline int xen_alloc_unpopulated_pages(unsigned int nr_pages,
> -- 
> 2.7.4
> 
--8323329-676403013-1637802226=:1412361--


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 01:07:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 01:07:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230606.398671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq3EJ-0004Jl-8v; Thu, 25 Nov 2021 01:07:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230606.398671; Thu, 25 Nov 2021 01:07:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq3EJ-0004Je-65; Thu, 25 Nov 2021 01:07:15 +0000
Received: by outflank-mailman (input) for mailman id 230606;
 Thu, 25 Nov 2021 01:07:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fYof=QM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mq3EH-0004JT-Si
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 01:07:13 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04a4b404-4d8c-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 02:07:12 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 427F7610A8;
 Thu, 25 Nov 2021 01:07:10 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04a4b404-4d8c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637802430;
	bh=e3BftQ3476St7wTyi61Wxgnw+/mYQDcavqPM/Ldoyek=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KSdmfniMlTXCeRpus4MDrFSThT8II7/uK0oHlh/h0pPGlMvqk/Ly8kGyi9zVAK5nY
	 /4H6c6pB3SqUM53zXAiKTjLNlfAgqltYxJqDIIVqiKjZHIf1RY+Il8vJXdyW8JLrqe
	 YGfPllVRCo60R0jf5ahGSKtPjbds7k+05M1QTmk0DkY4X19oQv2m2gAqJpZUh7JqzB
	 k3IDOJheaMwj5QkGPUs1ro9hy/3D3s8Okp5iv0/RGCDv3ZSKrAdHg143XMrBAH2LDO
	 gqkk4g8B+ZhGk9b1DkZiqCavdIDO0SGaaeoZUb5xpVTiWJMCa/KGrVYzrECbaGK/pf
	 jB5a1KiWSiuMQ==
Date: Wed, 24 Nov 2021 17:07:09 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
cc: xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org, 
    linux-kernel@vger.kernel.org, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    Juergen Gross <jgross@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Russell King <linux@armlinux.org.uk>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH V3 5/6] arm/xen: Read extended regions from DT and init
 Xen resource
In-Reply-To: <1637787223-21129-6-git-send-email-olekstysh@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111241551450.1412361@ubuntu-linux-20-04-desktop>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com> <1637787223-21129-6-git-send-email-olekstysh@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 24 Nov 2021, Oleksandr Tyshchenko wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> This patch implements arch_xen_unpopulated_init() on Arm where
> the extended regions (if any) are gathered from DT and inserted
> into specific Xen resource to be used as unused address space
> for Xen scratch pages by unpopulated-alloc code.
> 
> The extended region (safe range) is a region of guest physical
> address space which is unused and could be safely used to create
> grant/foreign mappings instead of wasting real RAM pages from
> the domain memory for establishing these mappings.
> 
> The extended regions are chosen by the hypervisor at the domain
> creation time and advertised to it via "reg" property under
> hypervisor node in the guest device-tree. As region 0 is reserved
> for grant table space (always present), the indexes for extended
> regions are 1...N.
> 
> If arch_xen_unpopulated_init() fails for some reason the default
> behaviour will be restored (allocate xenballooned pages).
> 
> This patch also removes XEN_UNPOPULATED_ALLOC dependency on x86.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> Changes RFC -> V2:
>    - new patch, instead of
>     "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide unallocated space"
> 
> Changes V2 -> V3:
>    - update comments in code
>    - drop the checks that a region is within the hotpluggable range,
>      now the common code takes care of
>    - update arch_xen_unpopulated_init() according to interface change,
>      move xen_resource here, etc
>    - use %pR specifier in error message
>    - bait out in arch_xen_unpopulated_init() if !acpi_disabled
>    - update checks in second loop in arch_xen_unpopulated_init()
>      for the sake of clarity
> ---
>  arch/arm/xen/enlighten.c | 106 +++++++++++++++++++++++++++++++++++++++++++++++
>  drivers/xen/Kconfig      |   2 +-
>  2 files changed, 107 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
> index 3fb3384..019caa6 100644
> --- a/arch/arm/xen/enlighten.c
> +++ b/arch/arm/xen/enlighten.c
> @@ -62,6 +62,7 @@ static __read_mostly unsigned int xen_events_irq;
>  static __read_mostly phys_addr_t xen_grant_frames;
>  
>  #define GRANT_TABLE_INDEX   0
> +#define EXT_REGION_INDEX    1
>  
>  uint32_t xen_start_flags;
>  EXPORT_SYMBOL(xen_start_flags);
> @@ -303,6 +304,111 @@ static void __init xen_acpi_guest_init(void)
>  #endif
>  }
>  
> +#ifdef CONFIG_XEN_UNPOPULATED_ALLOC
> +/*
> + * A type-less specific Xen resource which contains extended regions
> + * (unused regions of guest physical address space provided by the hypervisor).
> + */
> +static struct resource xen_resource = {
> +	.name = "Xen unused space",
> +};
> +
> +int __init arch_xen_unpopulated_init(struct resource **res)
> +{
> +	struct device_node *np;
> +	struct resource *regs, *tmp_res;
> +	uint64_t min_gpaddr = -1, max_gpaddr = 0;
> +	unsigned int i, nr_reg = 0;
> +	int rc;
> +
> +	if (!xen_domain())
> +		return -ENODEV;
> +
> +	if (!acpi_disabled)
> +		return -ENODEV;
> +
> +	np = of_find_compatible_node(NULL, NULL, "xen,xen");
> +	if (WARN_ON(!np))
> +		return -ENODEV;
> +
> +	/* Skip region 0 which is reserved for grant table space */
> +	while (of_get_address(np, nr_reg + EXT_REGION_INDEX, NULL, NULL))
> +		nr_reg++;
> +
> +	if (!nr_reg) {
> +		pr_err("No extended regions are found\n");
> +		return -EINVAL;
> +	}
> +
> +	regs = kcalloc(nr_reg, sizeof(*regs), GFP_KERNEL);
> +	if (!regs)
> +		return -ENOMEM;
> +
> +	/*
> +	 * Create resource from extended regions provided by the hypervisor to be
> +	 * used as unused address space for Xen scratch pages.
> +	 */
> +	for (i = 0; i < nr_reg; i++) {
> +		rc = of_address_to_resource(np, i + EXT_REGION_INDEX, &regs[i]);
> +		if (rc)
> +			goto err;
> +
> +		if (max_gpaddr < regs[i].end)
> +			max_gpaddr = regs[i].end;
> +		if (min_gpaddr > regs[i].start)
> +			min_gpaddr = regs[i].start;
> +	}
> +
> +	xen_resource.start = min_gpaddr;
> +	xen_resource.end = max_gpaddr;
> +
> +	/*
> +	 * Mark holes between extended regions as unavailable. The rest of that
> +	 * address space will be available for the allocation.
> +	 */
> +	for (i = 1; i < nr_reg; i++) {
> +		resource_size_t start, end;
> +
> +		/* There is an overlap between regions */
> +		if (regs[i - 1].end + 1 > regs[i].start) {
> +			rc = -EINVAL;
> +			goto err;
> +		}
> +
> +		/* There is no hole between regions */
> +		if (regs[i - 1].end + 1 == regs[i].start)
> +			continue;
> +
> +		start = regs[i - 1].end + 1;
> +		end = regs[i].start - 1;
> +
> +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
> +		if (!tmp_res) {
> +			rc = -ENOMEM;
> +			goto err;
> +		}
> +
> +		tmp_res->name = "Unavailable space";
> +		tmp_res->start = start;
> +		tmp_res->end = end;
> +
> +		rc = insert_resource(&xen_resource, tmp_res);
> +		if (rc) {
> +			pr_err("Cannot insert resource %pR (%d)\n", tmp_res, rc);
> +			kfree(tmp_res);
> +			goto err;
> +		}
> +	}
> +
> +	*res = &xen_resource;
> +
> +err:
> +	kfree(regs);
> +
> +	return rc;
> +}
> +#endif
> +
>  static void __init xen_dt_guest_init(void)
>  {
>  	struct device_node *xen_node;
> diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
> index a1b11c62..553b614 100644
> --- a/drivers/xen/Kconfig
> +++ b/drivers/xen/Kconfig
> @@ -321,7 +321,7 @@ config XEN_FRONT_PGDIR_SHBUF
>  
>  config XEN_UNPOPULATED_ALLOC
>  	bool "Use unpopulated memory ranges for guest mappings"
> -	depends on X86 && ZONE_DEVICE
> +	depends on ZONE_DEVICE
>  	default XEN_BACKEND || XEN_GNTDEV || XEN_DOM0
>  	help
>  	  Use unpopulated memory ranges in order to create mappings for guest


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 01:09:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 01:09:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230610.398683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq3GU-0004wc-MP; Thu, 25 Nov 2021 01:09:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230610.398683; Thu, 25 Nov 2021 01:09:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq3GU-0004wV-Ie; Thu, 25 Nov 2021 01:09:30 +0000
Received: by outflank-mailman (input) for mailman id 230610;
 Thu, 25 Nov 2021 01:09:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3p2S=QM=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1mq3GT-0004wP-8B
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 01:09:29 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2060f.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 559d5157-4d8c-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 02:09:27 +0100 (CET)
Received: from AM6PR10CA0015.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::28)
 by PA4PR08MB6256.eurprd08.prod.outlook.com (2603:10a6:102:e6::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Thu, 25 Nov
 2021 01:09:23 +0000
Received: from DB5EUR03FT025.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:209:89:cafe::bf) by AM6PR10CA0015.outlook.office365.com
 (2603:10a6:209:89::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.19 via Frontend
 Transport; Thu, 25 Nov 2021 01:09:23 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT025.mail.protection.outlook.com (10.152.20.104) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 25 Nov 2021 01:09:22 +0000
Received: ("Tessian outbound 1cd1a01725a6:v110");
 Thu, 25 Nov 2021 01:09:22 +0000
Received: from 6af7f80e8fbf.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 A4FE0B96-09D8-4BA3-AEA9-5A90EBB24F84.1; 
 Thu, 25 Nov 2021 01:09:12 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6af7f80e8fbf.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 25 Nov 2021 01:09:12 +0000
Received: from PA4PR08MB6253.eurprd08.prod.outlook.com (2603:10a6:102:e4::8)
 by PR3PR08MB5579.eurprd08.prod.outlook.com (2603:10a6:102:82::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Thu, 25 Nov
 2021 01:09:10 +0000
Received: from PA4PR08MB6253.eurprd08.prod.outlook.com
 ([fe80::99cd:3d3b:4670:7413]) by PA4PR08MB6253.eurprd08.prod.outlook.com
 ([fe80::99cd:3d3b:4670:7413%5]) with mapi id 15.20.4713.025; Thu, 25 Nov 2021
 01:09:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 559d5157-4d8c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RonFNhhX1GCorQnoU5p5mSDeipb7ILDQvc5vu/zaFUU=;
 b=2ldjMXjGqP6eSdG0vaESD0DPT56irMWoZjmLQ0ar/ZO/p2awod3cspS/x48N6CGvnkwqQuKGr+OZARpvRD8CFzNm/Y8ximcG+8YuiUA/W/wHCwasjINmHV7nK3pPQljpOjOeqbSBapCHVb+jyYI/5/74l8pyVAMqEpeaDENUakk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HB127crkL8gVRT02e/v03/0B/+DFgI+zi745Kfm6YjcCHRwYO4Au0kZDYcfb31uH3K/bARvv8B1hu1A0RTGMMCOcOeEuEuNIrmiTV1lm4xJDXuynPHBX2tPIevNSxJ2ql8GG8skkqY61jFOO8vKX2VmbG6Dwsqjw9pIWOd5lZm/HtO/7S1g8uB8KbkCDhMY+4eXVyM2SAkMe5UGHVswQgypX2aOqxnYtp7fUx/EjOLtatTBdS/rktF8SVi0nHTWALmPmakMybCpSrDlVuW62xom0LoNskTOfr4D3T7QoSkW8sNEprz7V4M2qyCyNTMciTaUdsYRm1GNmscYrDB5ZjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RonFNhhX1GCorQnoU5p5mSDeipb7ILDQvc5vu/zaFUU=;
 b=UL78ydpwzO5VGY7SqxXypFzm+pgbDeVnIPoAecSH63YAg1cHhHXeX+hkNTZpIN3s4hAAq9+vLnTC/9E3bP3N15PAcRB/gQGHJH1NSmoxsiZzaCH2IxKvVvTaHZYpEMkW4eJVUfgarJuEf7RFifeMobUiOBzPOqosHTv0xjO6wLcqj7J6Iwkp0ZqqogAuKs081fTthChQT1rInlIXie0G9/hbSiyrmJtXgPI8NWg3sD1OX7PujglZbGAUnA7AIwKltDuNDXz4hyzT+Vizuf1hktJOoigMpJzxGSgbcfiKGpdTvuwrlhJLlg+EW3ZYQmp08isX2R8m4q4Y3Hjb5LwQog==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RonFNhhX1GCorQnoU5p5mSDeipb7ILDQvc5vu/zaFUU=;
 b=2ldjMXjGqP6eSdG0vaESD0DPT56irMWoZjmLQ0ar/ZO/p2awod3cspS/x48N6CGvnkwqQuKGr+OZARpvRD8CFzNm/Y8ximcG+8YuiUA/W/wHCwasjINmHV7nK3pPQljpOjOeqbSBapCHVb+jyYI/5/74l8pyVAMqEpeaDENUakk=
From: Henry Wang <Henry.Wang@arm.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "julien@xen.org" <julien@xen.org>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, "oleksandr_tyshchenko@epam.com"
	<oleksandr_tyshchenko@epam.com>, "volodymyr_babchuk@epam.com"
	<volodymyr_babchuk@epam.com>, "Artem_Mygaiev@epam.com"
	<Artem_Mygaiev@epam.com>, "roger.pau@citrix.com" <roger.pau@citrix.com>,
	"jbeulich@suse.com" <jbeulich@suse.com>, "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>, "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>, "paul@xen.org" <paul@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Rahul Singh <Rahul.Singh@arm.com>, Oleksandr
 Andrushchenko <oleksandr_andrushchenko@epam.com>, Julien Grall
	<jgrall@amazon.com>
Subject: RE: [PATCH v7 1/7] xen/arm: rename DEVICE_PCI to
 DEVICE_PCI_HOSTBRIDGE
Thread-Topic: [PATCH v7 1/7] xen/arm: rename DEVICE_PCI to
 DEVICE_PCI_HOSTBRIDGE
Thread-Index: AQHX4QlVru/ckjtAgkmIRIe8frhWHKwTb8Rg
Date: Thu, 25 Nov 2021 01:09:09 +0000
Message-ID:
 <PA4PR08MB6253031667E6927774F6BF3692629@PA4PR08MB6253.eurprd08.prod.outlook.com>
References: <20211124075942.2645445-1-andr2000@gmail.com>
 <20211124075942.2645445-2-andr2000@gmail.com>
In-Reply-To: <20211124075942.2645445-2-andr2000@gmail.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ts-tracking-id: 91BB7B1EA7D90844BE4A4AE1991D4A92.0
x-checkrecipientchecked: true
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 57be72f4-aaa0-45b1-beff-08d9afb03782
x-ms-traffictypediagnostic: PR3PR08MB5579:|PA4PR08MB6256:
X-Microsoft-Antispam-PRVS:
	<PA4PR08MB625609E7C951E35F4B259D2992629@PA4PR08MB6256.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:5797;OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 eTlR09riAM8CgZns2DuraQEhDNqRWUXkfSuKiapOc8GvlO91gJX8n0IalCGcp9kuo++Nb8civVGctVR9UvxaDOW5bssUHM9RKGKt6bvwocje6db9Mgr/au8ClCFAsgyUwqtri4iT20w9TRo0LvaSTscKYnIKatS1X0beS+vMc1Kw1e3kfbPxviBmbywtDLO3i/vGLXb4lRE2Jf3Cu0iYqJEzz1poYjzV4T4gahqZpTlJhabg/6OyfAaLDjmetynyH4WBUemcr3B2DFLRn6ZJnK84zXRyzZL3CsZmX2sCx6TC3CIqSeDrlw+ZaOXVIKZdEPgCSDINBhlkpe16N8xU7WNRvhagtnyAP55hkJwBysoU7tpC+6cwdeyFS5kgGn4tqWs3KUow6WH0EH7VsXjt8pdqJajNb7i/w9miWHnWLUSCDXfsHF//vr9hxJw+mqcl+0aUcwkB22Mp5n+2/uxBPRfHCdJm56yE7Nx5jkjc/KH4HsUKgfALGi5lD6AKnfkPcjwVdY1byxqR6so/Qe05cTEbu8q4kXbmszLTLJw86o2KQMZ2TO4PPklkqYaN6FvkzDoL7u+y5qKrDOdT08691TmDbSK3EZUxdedWfCN3+ALzJbqvQmfVJ1UQdzAsDlruwOXhiGWu5yjl2FNAXR56P6wuRTr5ZHyw1cZHJ49M6KjC/kXQArcI3xFgENFGRBpSZIPP7wnFrIoWcvLv9xRXmw==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR08MB6253.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(71200400001)(5660300002)(316002)(54906003)(7416002)(33656002)(8936002)(66446008)(66476007)(66556008)(64756008)(110136005)(53546011)(38070700005)(76116006)(4326008)(2906002)(122000001)(66946007)(26005)(186003)(7696005)(38100700002)(52536014)(83380400001)(9686003)(86362001)(6506007)(55016003)(8676002)(508600001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5579
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b7210710-e113-49e7-942a-08d9afb02fbc
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	FRqfFjmfXZKAk9IBha6K54oJ99tE5mgCK9cqDEEYapijHoqVIr7M2BBpTUAa5P57FQwwus+xsdLf3Gxt2z0sza67s851AtnTedvyWYix3DYQ2560j/SZACLcjzjpqcPq6emU/U0KWz/aMLOWGES6Uiw48Uk84RGN9uf4yWkhQzAUbYCKieKqr0dmqlITKyC6gPjFHqxC2eahchWlj7oPBL8hFQKZLKtKTYuhsvWAWbwz6HhlpfWxgZOuo58zMf6Oa2000APNPyEOboY8AkmVjflMvTLMGzujiKsjgrF6gsMyk9h+Z2nyT/DAozWFB1cNU72SVGPabmwQgKC9FAY9NTtEJyPFQRMKi7FQimgEk7WwAtBkbex1QJN+ZvJMv8bXHONnnJvbmR7ldvIa6Y8cDMhckmQY9grlrktdnNKAmmnnUDtgXZiX6KR7qpRty2aET47dn2OYCVTOuC4STOONoBGDiYjYYH1zr9ZY/K81SUTbWYCeaTaW5mVRmgzfBEIIMujbOQlOPTM89Gg0lnMBM5yOYxQwW1koMy77bqtom97ZCvqFp7NENEHyVdG7v16HqJY2cfV7t6q9qN+1mjouw70z601VaLv4PVfmy2Lvd3g2nsiiZqUUiAN+FjWMPMmkGPL6LMESz+M7J/nhZD7I9LD51r8oWSHny3Cb516THah1IOsSUjykL6Hm7ezI6dpXk5ZoubWoe/GOYf8RhfEq9w==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(47076005)(81166007)(82310400004)(52536014)(508600001)(316002)(86362001)(4326008)(33656002)(70206006)(70586007)(6506007)(5660300002)(53546011)(36860700001)(356005)(54906003)(110136005)(107886003)(2906002)(186003)(83380400001)(9686003)(26005)(55016003)(8936002)(8676002)(336012)(7696005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 01:09:22.9986
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 57be72f4-aaa0-45b1-beff-08d9afb03782
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT025.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6256

Hi Oleksandr,

> -----Original Message-----
> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
> Oleksandr Andrushchenko
> Sent: Wednesday, November 24, 2021 4:00 PM
> To: xen-devel@lists.xenproject.org
> Cc: julien@xen.org; sstabellini@kernel.org;
> oleksandr_tyshchenko@epam.com; volodymyr_babchuk@epam.com;
> Artem_Mygaiev@epam.com; roger.pau@citrix.com; jbeulich@suse.com;
> andrew.cooper3@citrix.com; george.dunlap@citrix.com; paul@xen.org;
> Bertrand Marquis <Bertrand.Marquis@arm.com>; Rahul Singh
> <Rahul.Singh@arm.com>; Oleksandr Andrushchenko
> <oleksandr_andrushchenko@epam.com>; Julien Grall <jgrall@amazon.com>
> Subject: [PATCH v7 1/7] xen/arm: rename DEVICE_PCI to
> DEVICE_PCI_HOSTBRIDGE
>=20
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>=20
> To better reflect the nature of the device type and not to make any
> confusion rename DEVICE_PCI to DEVICE_PCI_HOSTBRIDGE which it
> really is.
>=20
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Oleksandr Andrushchenko
> <oleksandr_andrushchenko@epam.com>
> Reviewed-by: Julien Grall <jgrall@amazon.com>
> ---
> New in v6
> ---
>  xen/arch/arm/pci/pci-host-generic.c | 2 +-
>  xen/arch/arm/pci/pci-host-zynqmp.c  | 2 +-
>  xen/arch/arm/pci/pci.c              | 2 +-
>  xen/include/asm-arm/device.h        | 2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)
>=20
> diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-
> host-generic.c
> index 33457fbe9615..46de6e43cc72 100644
> --- a/xen/arch/arm/pci/pci-host-generic.c
> +++ b/xen/arch/arm/pci/pci-host-generic.c
> @@ -32,7 +32,7 @@ static int __init pci_host_generic_probe(struct
> dt_device_node *dev,
>      return pci_host_common_probe(dev, &pci_generic_ecam_ops);
>  }
>=20
> -DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI)
> +DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
>  .dt_match =3D gen_pci_dt_match,
>  .init =3D pci_host_generic_probe,
>  DT_DEVICE_END
> diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-
> host-zynqmp.c
> index 61a9807d3d58..516982bca833 100644
> --- a/xen/arch/arm/pci/pci-host-zynqmp.c
> +++ b/xen/arch/arm/pci/pci-host-zynqmp.c
> @@ -49,7 +49,7 @@ static int __init pci_host_generic_probe(struct
> dt_device_node *dev,
>      return pci_host_common_probe(dev, &nwl_pcie_ops);
>  }
>=20
> -DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI)
> +DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
>  .dt_match =3D nwl_pcie_dt_match,
>  .init =3D pci_host_generic_probe,
>  DT_DEVICE_END
> diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
> index 082c14e127a8..78b97beaef12 100644
> --- a/xen/arch/arm/pci/pci.c
> +++ b/xen/arch/arm/pci/pci.c
> @@ -46,7 +46,7 @@ static int __init dt_pci_init(void)
>=20
>      dt_for_each_device_node(dt_host, np)
>      {
> -        rc =3D device_init(np, DEVICE_PCI, NULL);
> +        rc =3D device_init(np, DEVICE_PCI_HOSTBRIDGE, NULL);
>          /*
>           * Ignore the following error codes:
>           *   - EBADF: Indicate the current device is not a pci device.
> diff --git a/xen/include/asm-arm/device.h b/xen/include/asm-arm/device.h
> index 3782660751b6..086dde13eb6b 100644
> --- a/xen/include/asm-arm/device.h
> +++ b/xen/include/asm-arm/device.h
> @@ -37,7 +37,7 @@ enum device_class
>      DEVICE_SERIAL,
>      DEVICE_IOMMU,
>      DEVICE_GIC,
> -    DEVICE_PCI,
> +    DEVICE_PCI_HOSTBRIDGE,
>      /* Use for error */
>      DEVICE_UNKNOWN,
>  };
> --
> 2.25.1
>=20

Reviewed-by: Henry Wang <Henry.Wang@arm.com>

Kind regards,

Henry


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 01:09:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 01:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230612.398693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq3Gv-0005Ri-UU; Thu, 25 Nov 2021 01:09:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230612.398693; Thu, 25 Nov 2021 01:09:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq3Gv-0005Rb-RS; Thu, 25 Nov 2021 01:09:57 +0000
Received: by outflank-mailman (input) for mailman id 230612;
 Thu, 25 Nov 2021 01:09:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fYof=QM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1mq3Gu-0004wP-Cb
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 01:09:56 +0000
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65e93438-4d8c-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 02:09:55 +0100 (CET)
Received: by mail.kernel.org (Postfix) with ESMTPSA id 7391260EB5;
 Thu, 25 Nov 2021 01:09:53 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65e93438-4d8c-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637802593;
	bh=W6nLin1+LvBCgJkpYXar9Oqp+/QHlRQYFRxdQA/dIjo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Ka5imFAgS53mPJWlrVRyDatvOeLWfpQWUYakqO9s0gOpjC/l1M3/SVntiV1zJ2XBL
	 T9AUvvgEwnJC1qIt2ZkRsN+QTgZVE++SbWy16Qp/6W83gPCAQ3MOuVIVF2cqMRVb5p
	 nqqyN52DYXUa3tD0T3FyYmBEwJmo0Sk1BZO6grgrx0V7nDPNJQuezDM3mkNRlvuRXd
	 +/d2nT1SMocHLfJOFIH37nUBR6DaIAVzpc7SarEDXh6CpZjQU8Z0bozSDvF24zjMns
	 cov5Slx/hqPf1gmMOKwSHQu1Dp7aEcm3brzS6deAWmYDW1xoVPvDWjI2HBifUzpvuB
	 iPglqefMTPz+Q==
Date: Wed, 24 Nov 2021 17:09:52 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
cc: xen-devel@lists.xenproject.org, devicetree@vger.kernel.org, 
    linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH V3 6/6] dt-bindings: xen: Clarify "reg" purpose
In-Reply-To: <1637787223-21129-7-git-send-email-olekstysh@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2111241708170.1412361@ubuntu-linux-20-04-desktop>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com> <1637787223-21129-7-git-send-email-olekstysh@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 24 Nov 2021, Oleksandr Tyshchenko wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> Xen on Arm has gained new support recently to calculate and report
> extended regions (unused address space) safe to use for external
> mappings. These regions are reported via "reg" property under
> "hypervisor" node in the guest device-tree. As region 0 is reserved
> for grant table space (always present), the indexes for extended
> regions are 1...N.
> 
> No device-tree bindings update is needed (except clarifying the text)
> as guest infers the presence of extended regions from the number
> of regions in "reg" property.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> According to the recent update to Xen's guest.txt:
> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob_plain;f=docs/misc/arm/device-tree/guest.txt;hb=refs/heads/master
> 
> Changes V2 -> V3:
>    - new patch
> ---
>  Documentation/devicetree/bindings/arm/xen.txt | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/arm/xen.txt b/Documentation/devicetree/bindings/arm/xen.txt
> index db5c56d..156fe10b 100644
> --- a/Documentation/devicetree/bindings/arm/xen.txt
> +++ b/Documentation/devicetree/bindings/arm/xen.txt
> @@ -7,10 +7,14 @@ the following properties:
>  	compatible = "xen,xen-<version>", "xen,xen";
>    where <version> is the version of the Xen ABI of the platform.
>  
> -- reg: specifies the base physical address and size of a region in
> -  memory where the grant table should be mapped to, using an
> -  HYPERVISOR_memory_op hypercall. The memory region is large enough to map
> -  the whole grant table (it is larger or equal to gnttab_max_grant_frames()).
> +- reg: specifies the base physical address and size of the regions in memory
> +  where the special resources should be mapped to, using an HYPERVISOR_memory_op
> +  hypercall.
> +  Region 0 is reserved for mapping grant table, it must be always present.
> +  The memory region is large enough to map the whole grant table (it is larger
> +  or equal to gnttab_max_grant_frames()).
> +  Regions 1...N are extended regions (unused address space) for mapping foreign
> +  GFNs and grants, they might be absent if there is nothing to expose.
>    This property is unnecessary when booting Dom0 using ACPI.

I would remove the last sentence about ACPI as the initialization is not
done via the xen,xen device tree node in that case anyway.

With that change:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 02:20:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 02:20:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230620.398705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq4MM-0004Fd-04; Thu, 25 Nov 2021 02:19:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230620.398705; Thu, 25 Nov 2021 02:19:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq4ML-0004FW-Ss; Thu, 25 Nov 2021 02:19:37 +0000
Received: by outflank-mailman (input) for mailman id 230620;
 Thu, 25 Nov 2021 02:19:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=67yb=QM=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mq4MJ-0004FQ-SP
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 02:19:36 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 201bf9b8-4d96-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 03:19:33 +0100 (CET)
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AP1EcR8031342; 
 Thu, 25 Nov 2021 02:17:46 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3chmfn4ed7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 25 Nov 2021 02:17:45 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AP2B8IU040120;
 Thu, 25 Nov 2021 02:17:44 GMT
Received: from nam12-mw2-obe.outbound.protection.outlook.com
 (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49])
 by aserp3030.oracle.com with ESMTP id 3ceq2gyrvh-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 25 Nov 2021 02:17:44 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB4333.namprd10.prod.outlook.com (2603:10b6:208:199::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 25 Nov
 2021 02:17:42 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.025; Thu, 25 Nov 2021
 02:17:42 +0000
Received: from [10.74.109.97] (138.3.200.33) by
 SJ0PR03CA0031.namprd03.prod.outlook.com (2603:10b6:a03:33e::6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.22 via Frontend Transport; Thu, 25 Nov 2021 02:17:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 201bf9b8-4d96-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=XIExMbmexIaHezqSI/l6ZxC8Z/2Hwa+QIr5mkWtcLk8=;
 b=NFVwXs/5vmPTY6vPDcX+Mug4rpe1nwWPFxSLIcemtJuZBQQFW7ERlfaytUTXmF0JkT9p
 IOxucwxK7lJ7ry9239mmxFZXMg/79LBTK5UuxDGyguhHXqkat2pGHATVBdqTxx938VBL
 C8NS6lylIKZB+xwrUmUNnm/vZosdQb9szwOTsTV9Im3iRjKfs/q1k6GzAVetU4t2f/00
 +ntE3PotJ1V3sPdh0FYoQhV8NvqJRyW553pL0n6hU4se4z+/pl7LtOCCgnE0qB1f+Lcb
 ATj5PtVXtzOt0i8x9ykk4+rrCJpUMhbyAXDyl/rQFUIMnazGBVFPLOS6HlmqtiWCxE49 Jg== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nwVH5PMmRewWFxcNUl8jo4h95uf6DrWPCIBFy4hTPfb9F7aq+W5sO7gYot+wn3HSpzIPXZRiztnJOxwchoOkt8dkN2KzVdiyWE8+xB7D8x+dMZEGgClQ4hAOffdyjKVffNgf/j3QlLbLVMR3W/IKRneQ1Z1zAgS4Mv1tMsSo0sPwhT1oz8PxaczWNZUPVscw7OFviSgrr4/R7FhHl8KtEBtpg8T6CpkySpwn18WsBTgH4F47MgfV9Oz8zOTkztcUb6U+kcUQbtqXRsn6Uej0lHqDb0fCDBWpUMhOyCfhoPIIdYKThk3APYcJEqhoW4Zz2SxLUocUakiRA26KhDK6DQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XIExMbmexIaHezqSI/l6ZxC8Z/2Hwa+QIr5mkWtcLk8=;
 b=MCsOZo8TKfgtYvHtE3uVJeUDw8k37ERRWSwskj80GuWO2NMhOkK1ZjNBCDNCZ5jorqhrjDM+NYpuU3PelI3S+ARRVA0m9KDnTdg7tocxjP2hX9dApKiYjCx/S8H2VhVsZedL9TCkVAw8ajLZlKlGoAbaYWprMaJjIlv5ytgVQAg8ZmMp85WYdISk6LkPj5yo/uX6EusJEdWndczBGIndurms0GMdU3/Qs2tdrH55eEAVTN123SsAbREdavf80KOlfrvSlbn50FEOL3i8nymfmrnG9wQqPydgdwjiyAGh7SpbGQ3pM3b2Q2ccl3S3HPU48ACLrhfU7hS0tqPZBkeyxg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XIExMbmexIaHezqSI/l6ZxC8Z/2Hwa+QIr5mkWtcLk8=;
 b=mrRgb+yinWBcumDvymicXVS0ct6B+yAnbhlomJbi7EPk5Ce9i9MRKH6FE5foNbdSQj/M8xiFV2e9KXybmvt/dEy4dHAxDyfSvxI3EfMCgMXpHRVBTXjWJYRoFoYpa2k8HKlnHeFjYAqe8NtfffAmWQbtv2GDmaiaX/WMppFxB+g=
Message-ID: <4d04ea65-ea74-dcfd-5b0e-984b44f91961@oracle.com>
Date: Wed, 24 Nov 2021 21:17:34 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH] cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be
 brought up again.
Content-Language: en-US
To: Thomas Gleixner <tglx@linutronix.de>,
        Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
        "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)"
 <longpeng2@huawei.com>
Cc: linux-kernel@vger.kernel.org, "Gonglei (Arei)" <arei.gonglei@huawei.com>,
        x86@kernel.org, xen-devel@lists.xenproject.org,
        Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@kernel.org>,
        Valentin Schneider <valentin.schneider@arm.com>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini
 <sstabellini@kernel.org>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>
References: <20211122154714.xaoxok3fpk5bgznz@linutronix.de>
 <87y25djhaj.ffs@tglx>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <87y25djhaj.ffs@tglx>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR03CA0031.namprd03.prod.outlook.com
 (2603:10b6:a03:33e::6) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 83d9c98a-fa39-48ba-bdb8-08d9afb9c29d
X-MS-TrafficTypeDiagnostic: MN2PR10MB4333:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB4333A7FEE475BCFE49AD391A8A629@MN2PR10MB4333.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	k1QiTl2F3nC1NlHp70TThl61xRM2o6L0NTtwFg3zWd4xMIFGrIOPDsHK6aIA0UBBopOyC2Z+a7UPJcsmN8SCDs59/Ef0TYcn56hr/RH6GTk4o95GdBq2qYz0VjePHL4wE69caX3bP6DjI9aySABbefHsGqG3lAo0HfVGIoUJ6n2opvOZyOCSSKz8B2xoydfxsm3mWPPndzg76xeUK5ghE8nG+37x5oeR/RVeMihpW3PqakR3t3sJn2vH6Ji2jO0NkSxtWAFWcLPXHgXvalaG4FUiGOC6ScRVWKBRFfuJDkTufn0oWqVZ1mqv+CZixTwjXkj/eOWdjc/yIwKYjBjggodyjIxJYHvane6rlbYu7NkNAfWYfcealtUjwgkAxqwQOjh1VkNf6LYIaBYE89BDaYful2AkIh/4HXID28m7/JT6ySwiVPWEpEpUNZIL8fKqKBcnH3fKZAnJoYYrWYEv+38jv3VPVzK0qMG3cZMXF4FUc+5cnYGpJoJDGBTrxdhxHVskMVaXmzqWqSPQsHg5dLROL5DUSkb9N1B/1XT9ftfggxNhIkxU1kIV4LWtF/wkh8Sjom8R8/YkNr4+rPmcoiQhiP5tHWJDqlWLEW0N6MkMEjJPal64HkOAJnHVLEERCqlzKN0TcTltgjeAPFN8i6eFDScpP7KP0rqNvK9WVBve8ShoBPb/chuHDZ0HzFcStnTKmzGNaZSN7As8NvZcfbCsDnSZSzdonhahUUTJlfC0H3Hj1Yi+Acc4JC67Dl4a6SIlUaqcq81WV+C6tRijI3w2rQHnguXN1Ti/EesFHUBwFnCXMywk+B/Awb72cQoeydIGmg90yW9F1UM4+MCEXg==
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(110136005)(7416002)(6486002)(38100700002)(6666004)(186003)(508600001)(54906003)(5660300002)(31686004)(26005)(66476007)(966005)(2906002)(8936002)(8676002)(44832011)(36756003)(956004)(2616005)(86362001)(4326008)(66556008)(83380400001)(16576012)(66946007)(53546011)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?am0rWXZEd3NSV1ByMTdSSy9SR0VEUTRoRTk3SUR0RzVpN3FhY3JXOCthUE05?=
 =?utf-8?B?ZmJBQkZPRE50RnZPOWhzQm9KMXdOR3habytTV1lyNHJibktKcXZnNHlxYzhz?=
 =?utf-8?B?dFB6U2NFRExyb0J3blJ6a1FBQmZROVRMaHczL1dmSkNxOC81S2tON3VNd3lu?=
 =?utf-8?B?eWgzc0RTN0hSL3kxdGhxaDR0WHA1OGJEUVljVHJJUlp6Qkl4UzUzV2pkbnE3?=
 =?utf-8?B?bkRJUUd2NGY2dEV2U1lXeFJVdEdnN0JIbTJZeE9La0hXYnpaNndxMUhxdVpa?=
 =?utf-8?B?dXh2TTJmaWRhTm8yV3Vnclc1a01YSTBwVmNnREFwcXZkeStaMjRSQldxYzdM?=
 =?utf-8?B?Ky9Rd0xvc0F1VG9tUUNqVGorTk5ZMHNWSVZZUTFCWmZsUmdqeDBuTmgzR1lV?=
 =?utf-8?B?SElDejF2ZTBSYWF3a3lIeWFqRDFmeXpvVkxma2ttSTdEVXNvVTFhaDhJOTNq?=
 =?utf-8?B?NVJvYjZvb3Z0Wk5MWmNCaVhUZXhDTUVvdE1HRzVkMWtPdHZJZHNIOHlsMXhC?=
 =?utf-8?B?T2xyMHpxZndEZHFJellQUmhpTzkrQUVhaTdEQkxmd2dLZ2diOUp6ZlRUK1FF?=
 =?utf-8?B?YkVCYXQ0WmQ1S2dZeUwzODdnZStLeDZNcE8wRUV5YkU2VjRaRkFIWDMvbzRN?=
 =?utf-8?B?S1VIQUc4Uyt3ckVSRmN1WHhjek5QTFNqWTF5QzZLN0F1OEJTd1FVR2pidmxz?=
 =?utf-8?B?WGQ3NUlOMnlPMmxIVkpZS1l6bGdQeUVJNVUzVERHdTh2UGIvUHQxM1QzV0pz?=
 =?utf-8?B?ZnczdWZneVF1Tlh5bnIvRUNNTld4Q3NESnZsMFpRcTNxL1BJVDZXOWR3Zk40?=
 =?utf-8?B?OGRtWmVHOEhLbmxDY2hwbTR3czVuVTJJQTBRc1lBcUNGRWEwSE5OaVRyRmNz?=
 =?utf-8?B?b21Qd2wvblBKVWtoTkc0MGEvaHhuNCsyR1pSZ0NxRUZ6WkxpQldOSEtkcTd1?=
 =?utf-8?B?Nmd3T0EvZjhUVzZPMzByem5HMkFleFRZdG1OcmpvRVVHV0hkb01GSldLQXlU?=
 =?utf-8?B?Y3Nnd3RKUXNnTXhkNm8zRzhlUXIxWVIyZm51aFJseHVob3lpTW9vblY1L3o2?=
 =?utf-8?B?ejA2U0VMRkJCbE1HeFJXaGpyYWplM3BiT1ZLditaNFg0MnE1d0NjMERINFZz?=
 =?utf-8?B?ZkRybDRHUFMwK3V3WVZIRDYzVkpyMEoxYUFNWDZuSVBBQlpPdEVnaUhZQkVy?=
 =?utf-8?B?NVB1Qm5LRHN1b1p6dnNzdVN0Y0tMWndrd3ZydXEzejFzemVBRzNIRnl0VFli?=
 =?utf-8?B?NmpUdXlUTU9BbjNuMjVoN3BmRUIvdUlSbzFoWXFjWFVVb1llK3RLOUQwRkZz?=
 =?utf-8?B?YjYwOTYxQlZQMkhzaS9rZHROOHVsYmJScUhDaUVyd1MydVlrZWFtajRhZVVX?=
 =?utf-8?B?bzV1cVdqVzZrODlVbWlXdDlhSlY5RXkrTndnajJaVGtZQUpoUEYrak9IZk83?=
 =?utf-8?B?Y210ZFkwdGdTRm53RVQxYmZ0NDQ0NFRRbElRL0Q4U3Z1Z2pGZURLMlp5c0xK?=
 =?utf-8?B?NlAybkQ0d3YxdXl0dytNdzdPd0RHdk1EZnhDdWFlR2NIaUtWTVRjSkF5U0pF?=
 =?utf-8?B?MmtjRmluQ0M1NldhZnFaM0FkL3kwZW5FM0QwRnZEZHo4dlZCdjFNOU9nMXJW?=
 =?utf-8?B?N3ZBcVUxMzdwVzVDZkg0YVJmUlBxckQ3cU5hTnJ6U0daY2lhTkxJeDA4cFhK?=
 =?utf-8?B?UmtxWkllSnRsYXBXK3R4bmlweGpRc2hyMGhnYmlmeVlCc2FIRHNzZENxc0hO?=
 =?utf-8?B?cTBJTGxrV05weTlMRXFKVWFIWTN3YnBkeEJuREl1bHlvWG15WHpsLy9URHRm?=
 =?utf-8?B?dnRqK1JKWXE4Q21ZM3p3dUQyUzcyVnU2a1RZVS9SS0JwSVBabmFvWHZFYnNW?=
 =?utf-8?B?ZS9RK2VpMU1aL3d6T285OEJWaGR2S1JnQmZDdUYwRlVGQUgvb0VwTk9mRW00?=
 =?utf-8?B?TE5PRnpSb3R1b3ExRjNFa3V5aFdnMEtabkFLVUFTbWtpZUVJYVV4WGl2bTQ0?=
 =?utf-8?B?cnlJREI4RmdwVXYxM1FHbk44M2RsSjVBY2ZNN1cvbkF2cDFNTzIyc1ZWVFdS?=
 =?utf-8?B?aEpVaGNjYk9zMXZtUFVFemh3S29SaTJWd0JRYlZCb2hZZ3JZSzlpOWhXeExu?=
 =?utf-8?B?OFRuL25EUkVXYXNRL1hiTzFMbnJXQm1BUnFaTE9yNllnMEpJR2dpOCtQS1lG?=
 =?utf-8?B?SDV3eUd2WmpWVmVwTlNjSEVMZzY4ZjZ2azZMUGQyajJHMm9Pd05JOG5PSE42?=
 =?utf-8?B?OGgrcUhVRHh3M2F2TkxmMithQXRnPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 83d9c98a-fa39-48ba-bdb8-08d9afb9c29d
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 02:17:42.0515
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xybOlaEKm0/vN7QoyN6rHZk1OlVLsNPqBCANyikCDVgEQeKOJYmUtJSN6pYkmZGxT5CGZIVcFQvDSCvL4UuKecyLLQDALmK6LdLW6xDl/z0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4333
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10178 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 spamscore=0
 bulkscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111250010
X-Proofpoint-ORIG-GUID: OQhjtSONJBqWvYheHkHfOJjV7zgfYSpb
X-Proofpoint-GUID: OQhjtSONJBqWvYheHkHfOJjV7zgfYSpb


On 11/24/21 5:54 PM, Thomas Gleixner wrote:
> On Mon, Nov 22 2021 at 16:47, Sebastian Andrzej Siewior wrote:
>> From: "Longpeng(Mike)" <longpeng2@huawei.com>
>>
>> A CPU will not show up in virtualized environment which includes an
>> Enclave. The VM splits its resources into a primary VM and a Enclave
>> VM. While the Enclave is active, the hypervisor will ignore all requests
>> to bring up a CPU and this CPU will remain in CPU_UP_PREPARE state.
>> The kernel will wait up to ten seconds for CPU to show up
>> (do_boot_cpu()) and then rollback the hotplug state back to
>> CPUHP_OFFLINE leaving the CPU state in CPU_UP_PREPARE. The CPU state is
>> set back to CPUHP_TEARDOWN_CPU during the CPU_POST_DEAD stage.
>>
>> After the Enclave VM terminates, the primary VM can bring up the CPU
>> again.
>>
>> Allow to bring up the CPU if it is in the CPU_UP_PREPARE state.
>>
>> [bigeasy: Rewrite commit description.]
>>
>> Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
>> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
>> Link: https://lore.kernel.org/r/20210901051143.2752-1-longpeng2@huawei.com
>> ---
>>
>> For XEN: this changes the behaviour as it allows to invoke
>> cpu_initialize_context() again should it have have earlier. I *think*
>> this is okay and would to bring up the CPU again should the memory
>> allocation in cpu_initialize_context() fail.
> Any comment from XEN folks?


If memory allocation in cpu_initialize_context() fails we will not be able to bring up the VCPU because xen_cpu_initialized_map bit at the top of that routine will already have been set. We will BUG in xen_pv_cpu_up() on second (presumably successful) attempt because nothing for that VCPU would be initialized. This can in principle be fixed by moving allocation to the top of the routine and freeing context if the bit in the bitmap is already set.


Having said that, allocation really should not fail: for PV guests we first bring max number of VCPUs up and then offline them down to however many need to run. I think if we fail allocation during boot we are going to have a really bad day anyway.



-boris



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 02:57:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 02:57:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230626.398716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq4ww-0008JQ-4G; Thu, 25 Nov 2021 02:57:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230626.398716; Thu, 25 Nov 2021 02:57:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq4ww-0008JJ-11; Thu, 25 Nov 2021 02:57:26 +0000
Received: by outflank-mailman (input) for mailman id 230626;
 Thu, 25 Nov 2021 02:57:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq4wu-0008J9-Fw; Thu, 25 Nov 2021 02:57:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq4wu-0007ug-8K; Thu, 25 Nov 2021 02:57:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq4wu-0002OJ-0U; Thu, 25 Nov 2021 02:57:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mq4wt-0005jn-WE; Thu, 25 Nov 2021 02:57:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+LuGaF5R5EG5xFH5rw/9/L+uko2NxoKi9Ce5l8Qfq0U=; b=b1a81YrtjX9+FJPQdAA219y9NR
	9oQ7M85MwoJiUt79N5/f975dHdMZnN3UZLHgks+ejBrcH8bfyrh/CymHo3kWk4Ol2ml5AKBXZ+0oK
	9cTCFs5domaHBi9Ho4G60Eh3ndUW1qe4UpDFd7BTpKRg3+BYNaVvlf2IkYa+eswqOeAQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166340-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166340: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=fa7023f4eb90f291a17404aaf6fc83ffe9618eb1
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Nov 2021 02:57:23 +0000

flight 166340 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166340/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              fa7023f4eb90f291a17404aaf6fc83ffe9618eb1
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  502 days
Failing since        151818  2020-07-11 04:18:52 Z  501 days  487 attempts
Testing same since   166340  2021-11-24 04:21:19 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Koichi Murase <myoga.murase@gmail.com>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Vasiliy Ulyanov <vulyanov@suse.de>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 84688 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 03:05:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 03:05:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230632.398730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq551-0001L9-2I; Thu, 25 Nov 2021 03:05:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230632.398730; Thu, 25 Nov 2021 03:05:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq550-0001L2-Ty; Thu, 25 Nov 2021 03:05:46 +0000
Received: by outflank-mailman (input) for mailman id 230632;
 Thu, 25 Nov 2021 03:05:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq54z-0001Ks-Ta; Thu, 25 Nov 2021 03:05:45 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq54z-00083d-N0; Thu, 25 Nov 2021 03:05:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq54z-0002nI-AZ; Thu, 25 Nov 2021 03:05:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mq54z-0003qr-A4; Thu, 25 Nov 2021 03:05:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=jfAzJwfzmrBTqDkAiXfIE049IwsFnEjLkX0EbDeIQCU=; b=caIUOEQ2rlJskUUtg0Jjtolws4
	ud556czcUaNOc8aXFsvHqTXkGIHFG/SFxCgfWI8iO/ZIIuTI9Js8sUgVLxLJxWHwrdISPIAvscgN6
	T892V8LYnaMapLTLqrppTdPZ9PPPEOtF9gekvDncNQNjMoGG9WrBW5BvXgBENF/lvjyU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166325-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166325: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-dom0pvh-xl-intel:debian-install:fail:regression
    qemu-mainline:test-amd64-amd64-xl-credit2:debian-install:fail:regression
    qemu-mainline:test-amd64-amd64-libvirt-xsm:debian-install:fail:regression
    qemu-mainline:test-amd64-i386-libvirt:debian-install:fail:regression
    qemu-mainline:test-amd64-i386-xl:debian-install:fail:regression
    qemu-mainline:test-amd64-coresched-i386-xl:guest-localmigrate/x10:fail:regression
    qemu-mainline:test-amd64-i386-xl-xsm:debian-install:fail:regression
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:debian-hvm-install:fail:regression
    qemu-mainline:test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow:debian-hvm-install:fail:regression
    qemu-mainline:test-amd64-i386-xl-qemuu-ovmf-amd64:debian-hvm-install:fail:regression
    qemu-mainline:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:allowable
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=73e0f70e097b7c92a5ce16ee35b53afe119b20d7
X-Osstest-Versions-That:
    qemuu=89d2f9e4c63799f7f03e9180c63b7dc45fc2a04a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Nov 2021 03:05:45 +0000

flight 166325 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166325/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel 12 debian-install      fail REGR. vs. 166300
 test-amd64-amd64-xl-credit2  12 debian-install           fail REGR. vs. 166300
 test-amd64-amd64-libvirt-xsm 12 debian-install           fail REGR. vs. 166300
 test-amd64-i386-libvirt      12 debian-install           fail REGR. vs. 166300
 test-amd64-i386-xl           12 debian-install           fail REGR. vs. 166300
 test-amd64-coresched-i386-xl 20 guest-localmigrate/x10   fail REGR. vs. 166300
 test-amd64-i386-xl-xsm       12 debian-install           fail REGR. vs. 166300
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install fail REGR. vs. 166300
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install fail REGR. vs. 166300
 test-amd64-i386-xl-qemuu-ovmf-amd64 12 debian-hvm-install fail REGR. vs. 166300
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 166300

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds    18 guest-start/debian.repeat fail REGR. vs. 166300

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166300
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166300
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166300
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166300
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166300
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166300
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166300
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166300
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 qemuu                73e0f70e097b7c92a5ce16ee35b53afe119b20d7
baseline version:
 qemuu                89d2f9e4c63799f7f03e9180c63b7dc45fc2a04a

Last test of basis   166300  2021-11-22 21:08:31 Z    2 days
Failing since        166307  2021-11-23 08:11:25 Z    1 days    2 attempts
Testing same since   166325  2021-11-23 17:39:07 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Eric Auger <eric.auger@redhat.com>
  Eric Blake <eblake@redhat.com>
  John Snow <jsnow@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Laurent Vivier <laurent@vivier.eu>
  Lei Rao <lei.rao@intel.com>
  Peter Maydell <peter.maydell@linaro.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Rao, Lei <lei.rao@intel.com>
  Richard Henderson <richard.henderson@linaro.org>
  Stefan Weil <sw@weilnetz.de>
  Thomas Huth <thuth@redhat.com>
  Warner Losh <imp@bsdimp.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           fail    
 test-amd64-coresched-i386-xl                                 fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  fail    
 test-amd64-amd64-libvirt-xsm                                 fail    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  fail    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              fail    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 495 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 06:18:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 06:18:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230646.398762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq85H-0002KT-5Q; Thu, 25 Nov 2021 06:18:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230646.398762; Thu, 25 Nov 2021 06:18:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq85H-0002KM-2M; Thu, 25 Nov 2021 06:18:15 +0000
Received: by outflank-mailman (input) for mailman id 230646;
 Thu, 25 Nov 2021 06:18:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq85F-0002KC-Qf; Thu, 25 Nov 2021 06:18:13 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq85F-0003Jj-Ji; Thu, 25 Nov 2021 06:18:13 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq85F-0004pW-7R; Thu, 25 Nov 2021 06:18:13 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mq85F-0006lE-6t; Thu, 25 Nov 2021 06:18:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dI9st/51AISnhbefJvKal8G0BHABBoT8bgEVjC5dTUo=; b=vHCheyKW77dgt2CkMnrl+TjDcR
	wNpNxzzGA7WjyeTCUP4aZkVI8/7FGLCq3OsyEDuHDTcAYXfv9nrOPGQcUsymc3mgGSaeW9c1C0aMs
	bayF3JHiGt0+VNcnl4e6yHwyAfGXnEIb7enNvflV6Vw7CLicK+xeabtQWs83esIyZjys=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166324-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166324: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-dom0pvh-xl-intel:debian-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-credit1:debian-install:fail:regression
    xen-unstable:test-amd64-i386-freebsd10-amd64:freebsd-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-shadow:debian-install:fail:regression
    xen-unstable:test-amd64-i386-xl-xsm:debian-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-xsm:debian-install:fail:regression
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:allowable
    xen-unstable:test-armhf-armhf-xl-rtds:host-ping-check-xen:fail:allowable
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=74a11c43fd7e074b1f77631b446dd2115eacb9e8
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Nov 2021 06:18:13 +0000

flight 166324 xen-unstable real [real]
flight 166372 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166324/
http://logs.test-lab.xenproject.org/osstest/logs/166372/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel 12 debian-install      fail REGR. vs. 166304
 test-amd64-amd64-xl-credit1  12 debian-install           fail REGR. vs. 166304
 test-amd64-i386-freebsd10-amd64 12 freebsd-install       fail REGR. vs. 166304
 test-amd64-amd64-xl-shadow   12 debian-install           fail REGR. vs. 166304
 test-amd64-i386-xl-xsm       12 debian-install           fail REGR. vs. 166304
 test-amd64-amd64-xl-xsm      12 debian-install           fail REGR. vs. 166304
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 166304
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 166304

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10   fail REGR. vs. 166304
 test-armhf-armhf-xl-rtds     10 host-ping-check-xen      fail REGR. vs. 166304

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166304
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166304
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166304
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166304
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166304
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166304
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166304
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166304
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166304
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166304
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166304
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166304
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass

version targeted for testing:
 xen                  74a11c43fd7e074b1f77631b446dd2115eacb9e8
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166304  2021-11-23 01:54:09 Z    2 days
Testing same since   166324  2021-11-23 17:39:07 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              fail    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  fail    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   fail    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 74a11c43fd7e074b1f77631b446dd2115eacb9e8
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Nov 22 11:12:32 2021 +0000

    x86/P2M: deal with partial success of p2m_set_entry()
    
    M2P and PoD stats need to remain in sync with P2M; if an update succeeds
    only partially, respective adjustments need to be made. If updates get
    made before the call, they may also need undoing upon complete failure
    (i.e. including the single-page case).
    
    Log-dirty state would better also be kept in sync.
    
    Note that the change to set_typed_p2m_entry() may not be strictly
    necessary (due to the order restriction enforced near the top of the
    function), but is being kept here to be on the safe side.
    
    This is CVE-2021-28705 and CVE-2021-28709 / XSA-389.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

commit 8ec13f68e0b026863d23e7f44f252d06478bc809
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Nov 22 11:11:44 2021 +0000

    x86/PoD: handle intermediate page orders in p2m_pod_cache_add()
    
    p2m_pod_decrease_reservation() may pass pages to the function which
    aren't 4k, 2M, or 1G. Handle all intermediate orders as well, to avoid
    hitting the BUG() at the switch() statement's "default" case.
    
    This is CVE-2021-28708 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

commit 182c737b9ba540ebceb1433f3940fbed6eac4ea9
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Nov 22 11:11:44 2021 +0000

    x86/PoD: deal with misaligned GFNs
    
    Users of XENMEM_decrease_reservation and XENMEM_populate_physmap aren't
    required to pass in order-aligned GFN values. (While I consider this
    bogus, I don't think we can fix this there, as that might break existing
    code, e.g Linux'es swiotlb, which - while affecting PV only - until
    recently had been enforcing only page alignment on the original
    allocation.) Only non-PoD code paths (guest_physmap_{add,remove}_page(),
    p2m_set_entry()) look to be dealing with this properly (in part by being
    implemented inefficiently, handling every 4k page separately).
    
    Introduce wrappers taking care of splitting the incoming request into
    aligned chunks, without putting much effort in trying to determine the
    largest possible chunk at every iteration.
    
    Also "handle" p2m_set_entry() failure for non-order-0 requests by
    crashing the domain in one more place. Alongside putting a log message
    there, also add one to the other similar path.
    
    Note regarding locking: This is left in the actual worker functions on
    the assumption that callers aren't guaranteed atomicity wrt acting on
    multiple pages at a time. For mis-aligned GFNs gfn_lock() wouldn't have
    locked the correct GFN range anyway, if it didn't simply resolve to
    p2m_lock(), and for well-behaved callers there continues to be only a
    single iteration, i.e. behavior is unchanged for them. (FTAOD pulling
    out just pod_lock() into p2m_pod_decrease_reservation() would result in
    a lock order violation.)
    
    This is CVE-2021-28704 and CVE-2021-28707 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

commit 143501861d48e1bfef495849fd68584baac05849
Author: Julien Grall <jgrall@amazon.com>
Date:   Mon Nov 22 11:11:05 2021 +0000

    xen/page_alloc: Harden assign_pages()
    
    domain_tot_pages() and d->max_pages are 32-bit values. While the order
    should always be quite small, it would still be possible to overflow
    if domain_tot_pages() is near to (2^32 - 1).
    
    As this code may be called by a guest via XENMEM_increase_reservation
    and XENMEM_populate_physmap, we want to make sure the guest is not going
    to be able to allocate more than it is allowed.
    
    Rework the allocation check to avoid any possible overflow. While the
    check domain_tot_pages() < d->max_pages should technically not be
    necessary, it is probably best to have it to catch any possible
    inconsistencies in the future.
    
    This is CVE-2021-28706 / part of XSA-385.
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 06:30:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 06:30:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230654.398782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq8HJ-0004Z9-C4; Thu, 25 Nov 2021 06:30:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230654.398782; Thu, 25 Nov 2021 06:30:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq8HJ-0004Z2-9A; Thu, 25 Nov 2021 06:30:41 +0000
Received: by outflank-mailman (input) for mailman id 230654;
 Thu, 25 Nov 2021 06:30:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mq8HI-0004Yw-Ht
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 06:30:40 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 343525f2-4db9-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 07:30:39 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id D99931FD37;
 Thu, 25 Nov 2021 06:30:37 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 93BAA13AE9;
 Thu, 25 Nov 2021 06:30:37 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id PKP1IY0tn2F8ZQAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 06:30:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 343525f2-4db9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637821837; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=aIU1vebMBd8wd/GL848KJsCAwEfE8LZe5z9f74vbrLY=;
	b=orEUPoS3AvU5DkQuv8ea5UdpumFFCLaZK3VdfOZX3Ptw0cYZyZj44lJfD4WJp8hC7x3Qcy
	vLq0b90KaphsGVcibBBxieRSHWXaEO4If6PFFTeGZ4yL7rS/MarxUkMSc039sEbbWia0Sy
	Y32m4iEC6xWesOyrpoy5xy5fQGW3e0I=
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-3-jgross@suse.com>
 <578438ad-dfb2-314c-6514-a2e72aeed091@suse.com>
 <e31fd752-a170-f169-5557-ec593b7a27e2@suse.com>
 <d7c09b1b-a34d-5352-a6f2-a444f1e27f98@suse.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH RFC 2/4] xen: add bitmap to indicate per-domain state
 changes
Message-ID: <778d2ca8-1c21-d3bc-a40f-09ab128eab80@suse.com>
Date: Thu, 25 Nov 2021 07:30:36 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <d7c09b1b-a34d-5352-a6f2-a444f1e27f98@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="FDXy211mTUFadPTC40CSXViR5Fo94tF9C"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--FDXy211mTUFadPTC40CSXViR5Fo94tF9C
Content-Type: multipart/mixed; boundary="FCH48G43GjyCFVD4jzjDhNgU6T3lyPJus";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
Message-ID: <778d2ca8-1c21-d3bc-a40f-09ab128eab80@suse.com>
Subject: Re: [PATCH RFC 2/4] xen: add bitmap to indicate per-domain state
 changes
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-3-jgross@suse.com>
 <578438ad-dfb2-314c-6514-a2e72aeed091@suse.com>
 <e31fd752-a170-f169-5557-ec593b7a27e2@suse.com>
 <d7c09b1b-a34d-5352-a6f2-a444f1e27f98@suse.com>
In-Reply-To: <d7c09b1b-a34d-5352-a6f2-a444f1e27f98@suse.com>

--FCH48G43GjyCFVD4jzjDhNgU6T3lyPJus
Content-Type: multipart/mixed;
 boundary="------------1834F7465C7649C45BE9CC22"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------1834F7465C7649C45BE9CC22
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 22.11.21 14:39, Jan Beulich wrote:
> On 22.11.2021 13:46, Juergen Gross wrote:
>> On 22.11.21 11:41, Jan Beulich wrote:
>>> On 14.09.2021 14:35, Juergen Gross wrote:
>>>> Add a bitmap with one bit per possible domid indicating the respecti=
ve
>>>> domain has changed its state (created, deleted, dying, crashed,
>>>> shutdown).
>>>>
>>>> Registering the VIRQ_DOM_EXC event will result in setting the bits f=
or
>>>> all existing domains and resetting all other bits.
>>>
>>> Generally I view VIRQ_DOM_EXC as overly restrictive already - what if=
 both
>>> a xenstore domain and a control domain want respective notification? =
Hence
>>
>> The general idea was that in this case the control domain should
>> register a related Xenstore watch.
>>
>>> similarly I'm not convinced a single, global instance will do here. W=
hich
>>> in turn raises the question whether the approach chosen may not take =
us
>>> far enough, and we wouldn't instead want a more precise notification =
model
>>> (i.e. not just "something has changed").
>>
>> Yes, that would be the job of Xenstore. It would provide the more
>> fine grained watches for that purpose.
>=20
> And the watch consumer still wouldn't have a way to distinguish two dom=
ain
> instances using the same ID, would it?

My further plans include new watches for domain creation/destroy
which will include the domid in the watch path reported with the
watch event. So anyone registering for domain creation watches
would no longer need another way to distinguish domains with the
same domid by other means.

The main question remaining here is whether we are okay to let
Xenstore be the instance providing that functionality to the rest
of the stack, or if we want that functionality in the hypervisor,
with all the related needed access control (Xenstore allows to
set the usability of the create/destroy watches for other domains
today).

>>>> @@ -1141,6 +1161,8 @@ static void complete_domain_destroy(struct rcu=
_head *head)
>>>>  =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 xfree(d->vcpu);
>>>>  =C2=A0 +=C2=A0=C2=A0=C2=A0 set_bit(d->domain_id, dom_state_changed)=
;
>>>> +
>>>>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 _domain_destroy(d);
>>>>  =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 send_global_virq(VIRQ_DOM_EXC=
);
>>>
>>> Wouldn't this better be in domain_destroy() immediately after the dom=
ain
>>> has been taken off the list, and hence is no longer "discoverable"?
>>
>> In this case the call of send_global_virq() should be moved, too,
>> I guess?
>=20
> Possibly, albeit I'd see this as a separate change to make. It doesn't
> seem outright wrong for the vIRQ to be sent late. But I agree with the
> idea of keeping sending and bit-setting together (ideally, even if this=

> was to stay here, the two would better sit truly side by side).

Okay, I'll prepend another patch moving the call of send_global_virq()
to domain_destroy().


Juergen

--------------1834F7465C7649C45BE9CC22
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------1834F7465C7649C45BE9CC22--

--FCH48G43GjyCFVD4jzjDhNgU6T3lyPJus--

--FDXy211mTUFadPTC40CSXViR5Fo94tF9C
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGfLYwFAwAAAAAACgkQsN6d1ii/Ey8c
5wf+IcbUQ0qBqTehrdywvNPHo7DCLtx8ZCDe6Kz2vfc8HepLlNFpoF0zHZJI2VI6Zm6zXqNBG5Xf
rh5kp2/xRxG5eMmcFZ9o36LiVVTI7YH08yFMXlIX/8BkTXhHj7urDHIyVhtrHQ4RO90e5yZpb4yV
CtCQrgcAZA5yKauqdQEnSO7AbxB7ShWhdPFUNvumTJdC2BBCSPO2M750atclEP61W8KvSqEpWSlv
dznwYCspj5ZrVSr6ICSzHtX56+akwVloVntoZTg7xGu9KiqDosk33WEaxqX0hO8CxlFlhW7x289w
RLsHvn/Nej0epMwvnZ1eg5QlPKGnrLfUXH1d6Z6ZCA==
=N+pU
-----END PGP SIGNATURE-----

--FDXy211mTUFadPTC40CSXViR5Fo94tF9C--


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 06:32:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 06:32:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230661.398793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq8JJ-0005DU-TM; Thu, 25 Nov 2021 06:32:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230661.398793; Thu, 25 Nov 2021 06:32:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq8JJ-0005DN-Pn; Thu, 25 Nov 2021 06:32:45 +0000
Received: by outflank-mailman (input) for mailman id 230661;
 Thu, 25 Nov 2021 06:32:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mq8JI-0005CR-64
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 06:32:44 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7eb8a64b-4db9-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 07:32:43 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 1F695218D6;
 Thu, 25 Nov 2021 06:32:43 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D730113AE9;
 Thu, 25 Nov 2021 06:32:42 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id t9H1Mgoun2EdZgAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 06:32:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7eb8a64b-4db9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637821963; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=wUgBIfhmwcBW7WhddOCWN8j24GXbcfG/1FFcr6Tdb3Y=;
	b=DvuoHJ/E6V6W3O2kAfQxcBF1A4cC/lH7f7cnAMQ6qAa8i9eLjFjRNBJbVxEgfb4WHDzKzt
	Tl596WT21QJqpJdihZ6yy+zLTR/q1PTpKe0OgvEqsXgL2SBhEIxg4tB2GPekwt69gn1/5w
	FSgbJ4JVf5s9Wifzu3cZVEGE8bMbb+E=
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
 <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
 <fa778d46-0a4b-254c-0cde-d3df4e53ec4a@suse.com>
 <407a8f05-f16c-26bb-9ba1-044f62e3c0a0@xen.org>
 <523bb99f-a37d-f3c4-c0a4-c2caa20485cd@suse.com>
 <ecca9185-3dab-89dd-c2d0-a7b974d45e1d@xen.org>
From: Juergen Gross <jgross@suse.com>
Message-ID: <f989733e-7973-c3f4-78a8-d619827da6a9@suse.com>
Date: Thu, 25 Nov 2021 07:32:42 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <ecca9185-3dab-89dd-c2d0-a7b974d45e1d@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="guKlInAXfMwWQmHJbGft0eWWCBJF2wnY2"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--guKlInAXfMwWQmHJbGft0eWWCBJF2wnY2
Content-Type: multipart/mixed; boundary="zI9E2N4Kuo8EfvviipLyYVxPTPPZlwTik";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Message-ID: <f989733e-7973-c3f4-78a8-d619827da6a9@suse.com>
Subject: Re: [PATCH RFC 1/4] xen: add a domain unique id to each domain
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-2-jgross@suse.com>
 <8fe9a5bd-030c-66b7-ccf3-4545cfb80f66@xen.org>
 <fa778d46-0a4b-254c-0cde-d3df4e53ec4a@suse.com>
 <407a8f05-f16c-26bb-9ba1-044f62e3c0a0@xen.org>
 <523bb99f-a37d-f3c4-c0a4-c2caa20485cd@suse.com>
 <ecca9185-3dab-89dd-c2d0-a7b974d45e1d@xen.org>
In-Reply-To: <ecca9185-3dab-89dd-c2d0-a7b974d45e1d@xen.org>

--zI9E2N4Kuo8EfvviipLyYVxPTPPZlwTik
Content-Type: multipart/mixed;
 boundary="------------FC3491EFEDB1EB1EF37F6CBC"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------FC3491EFEDB1EB1EF37F6CBC
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 22.11.21 15:37, Julien Grall wrote:
>=20
>=20
> On 22/11/2021 14:29, Juergen Gross wrote:
>> On 22.11.21 15:10, Julien Grall wrote:
>>> Hi,
>=20
> Hi,
>=20
>>> On 22/11/2021 12:48, Juergen Gross wrote:
>>>> On 22.11.21 12:42, Julien Grall wrote:
>>>>> Hi Juergen,
>>>>>
>>>>> On 14/09/2021 13:35, Juergen Gross wrote:
>>>>>> Xenstore is referencing domains by their domid, but reuse of a dom=
id
>>>>>> can lead to the situation that Xenstore can't tell whether a domai=
n
>>>>>> with that domid has been deleted and created again without Xenstor=
e
>>>>>> noticing the domain is a new one now.
>>>>>>
>>>>>> Add a global domain creation unique id which is updated when creat=
ing
>>>>>> a new domain, and store that value in struct domain of the new=20
>>>>>> domain.
>>>>>> The global unique id is initialized with the system time and updat=
es
>>>>>> are done via the xorshift algorithm which is used for pseudo rando=
m
>>>>>> number generation, too (see https://en.wikipedia.org/wiki/Xorshift=
).
>>>>>>
>>>>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>>>>> ---
>>>>>> =C2=A0 xen/common/domain.c=C2=A0=C2=A0=C2=A0=C2=A0 | 16 ++++++++++=
++++++
>>>>>> =C2=A0 xen/include/xen/sched.h |=C2=A0 3 +++
>>>>>> =C2=A0 2 files changed, 19 insertions(+)
>>>>>>
>>>>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>>>>>> index 6ee5d033b0..755349b93f 100644
>>>>>> --- a/xen/common/domain.c
>>>>>> +++ b/xen/common/domain.c
>>>>>> @@ -84,6 +84,9 @@ vcpu_info_t dummy_vcpu_info;
>>>>>> =C2=A0 bool __read_mostly vmtrace_available;
>>>>>> +/* Unique domain identifier, protected by domctl lock. */
>>>>>> +static uint64_t unique_id;
>>>>>> +
>>>>>> =C2=A0 static void __domain_finalise_shutdown(struct domain *d)
>>>>>> =C2=A0 {
>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct vcpu *v;
>>>>>> @@ -473,6 +476,18 @@ static void _domain_destroy(struct domain *d)=

>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free_domain_struct(d);
>>>>>> =C2=A0 }
>>>>>> +static uint64_t get_unique_id(void)
>>>>>
>>>>> The implementation is assuming that domain cannot be created=20
>>>>> concurrently. The rest of domain_create() seems to be able to cope =

>>>>> with concurrent call (even if domctl prevents this situation today)=
=2E
>>>>>
>>>>> So I think we would want to make this call safe as well. One=20
>>>>> possibility would be to (ab)use the domlist_update_lock (I think=20
>>>>> the uniq ID is only necessary for real domains).
>>>>
>>>> In case this is thought to be needed, I'd rather use a cmpxchg=20
>>>> operation
>>>> for updating unique_id.
>>> I would be OK with cmpxchg(). But I would like to avoid cmpxchg()=20
>>> loop if possible.
>>
>> The chances for that loop to be needed are zero today, as the domctl
>> lock is prohibiting concurrent use.
>=20
> Well for domain created by the toolstack yes... For domain created by=20
> Xen no. Today, this is only happening at boot so you are safe (for now)=
=2E
>=20
> That said, I don't really see a reason to prevent concurrent=20
> domain_create() and as I wrote nothing in domain_create() seems to make=
=20
> this assumption. So I am not happy to build on that in this new helper.=


Fair enough.

>=20
>>
>> Another possibility would be to use an:
>>
>> ASSERT(spin_is_locked(&domctl_lock));
>=20
> This ASSERT() would be incorrect as it could be hit for any domain=20
> created by Xen.

Oh, right.

In the end it doesn't really hurt to add another lock. Its not as if
we'd expect much contention for it. :-)

>=20
> [...]
>=20
>>> Reading the commit message (and cover letter) again, I understand=20
>>> that you want a unique ID but it is not clear to me why this needs to=
=20
>>> be pseudo-randomly generated. IOW, given the expected use, can you=20
>>> clarify what would be the concern to use an atomic_inc_return()=20
>>> instead of xorshift?
>>
>> Jan had a concern regarding potential misuse of the unique id in case =
it
>> were kind of predictable.
>=20
> Fair enough. Can this be written down in the commit message?

Yes, will do that.


Juergen

--------------FC3491EFEDB1EB1EF37F6CBC
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------FC3491EFEDB1EB1EF37F6CBC--

--zI9E2N4Kuo8EfvviipLyYVxPTPPZlwTik--

--guKlInAXfMwWQmHJbGft0eWWCBJF2wnY2
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGfLgoFAwAAAAAACgkQsN6d1ii/Ey82
8gf/VVV2JR1nP9C6O5eJsCSMcVj2JhCr14laNIIIsAUImDanZDe/fiRfgVJI8CXqPRwVF7UZ/5iB
0eZJQxRr5iWZObTdZM+QPtOm1CL6GHukj6t4QistSFIbSyxmP36G/exFn6sbgICrZLwCdAooP2Yq
qLniJDXFpri7LIzyawG4rDqkyIiQEhqZqyQvI7jCTR9eodNo4nkNkhNugT4H73r3ysMQao56Va4y
zSr0S+jsBXbmlkLjEpyJ/inizlv+pRI5hR7yRAu7f6fOz94mlZXN3TChS38wRjxzVlxvVD4iKYAd
alQZZAKJECPlol1ek6pJc+OJLurNauesoMPbNB/Psw==
=lPpQ
-----END PGP SIGNATURE-----

--guKlInAXfMwWQmHJbGft0eWWCBJF2wnY2--


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 06:34:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 06:34:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230665.398804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq8LB-0005pT-9Y; Thu, 25 Nov 2021 06:34:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230665.398804; Thu, 25 Nov 2021 06:34:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq8LB-0005pM-5h; Thu, 25 Nov 2021 06:34:41 +0000
Received: by outflank-mailman (input) for mailman id 230665;
 Thu, 25 Nov 2021 06:34:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq8L9-0005pC-US; Thu, 25 Nov 2021 06:34:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq8L9-0003a9-OR; Thu, 25 Nov 2021 06:34:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mq8L9-0005xL-En; Thu, 25 Nov 2021 06:34:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mq8L9-00045j-EH; Thu, 25 Nov 2021 06:34:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ZYobdSQzICnulYZn9RnXWTH9XnJFR1VZfDxoLZGY4xs=; b=BTMcnWd5KA16+R3vsUXvuQjNsD
	1nQF1N5ODtofdT58vRMWXdhAFGA8eTLIBmJ/i8ubYeQj170YKCTC5UnvYTSjVhKMZ+y7inhy04exl
	HBc281iaOMr1ZvilSwlNopQr3raYfca09yztatiCzaLdeuecKEH56EDsWj2GrdM5Rge8=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166328-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166328: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-amd64:debian-hvm-install:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5d9f4cf36721aba199975a9be7863a3ff5cd4b59
X-Osstest-Versions-That:
    linux=136057256686de39cc3a07c2e39ef6bc43003ff6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Nov 2021 06:34:39 +0000

flight 166328 linux-linus real [real]
flight 166375 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166328/
http://logs.test-lab.xenproject.org/osstest/logs/166375/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemut-debianhvm-amd64 12 debian-hvm-install fail REGR. vs. 166266

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166266
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166266
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166266
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166266
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166266
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166266
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166266
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166266
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                5d9f4cf36721aba199975a9be7863a3ff5cd4b59
baseline version:
 linux                136057256686de39cc3a07c2e39ef6bc43003ff6

Last test of basis   166266  2021-11-22 06:26:56 Z    3 days
Testing same since   166328  2021-11-23 22:12:35 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  Arnd Bergmann <arnd@arndb.de>
  Bard Liao <yung-chuan.liao@linux.intel.com>
  Charles Keepax <ckeepax@opensource.cirrus.com>
  ChiYuan Huang <cy_huang@richtek.com>
  David Rhodes <drhodes@opensource.cirrus.com>
  Derek Fang <derek.fang@realtek.com>
  Gongjun Song <gongjun.song@intel.com>
  Hans de Goede <hdegoede@redhat.com>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  Jack Yu <jack.yu@realtek.com>
  John Stultz <john.stultz@linaro.org>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
  Libin Yang <libin.yang@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Mark Brown <broonie@kernel.org>
  Martin Kepplinger <martin.kepplinger@puri.sm>
  Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Nadav Amit <namit@vmware.com>
  Olivier Moysan <olivier.moysan@foss.st.com>
  Ondrej Mosnacek <omosnace@redhat.com>
  Paul Moore <paul@paul-moore.com>
  Peter Ujfalusi <peter.ujfalusi@gmail.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Simon Trimmer <simont@opensource.cirrus.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Takashi Iwai <tiwai@suse.de>
  Werner Sembach <wse@tuxedocomputers.com>
  Wolfram Sang <wsa+renesas@sang-engineering.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 1019 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 06:55:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 06:55:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230675.398821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq8f6-0008FP-5M; Thu, 25 Nov 2021 06:55:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230675.398821; Thu, 25 Nov 2021 06:55:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mq8f6-0008FI-2M; Thu, 25 Nov 2021 06:55:16 +0000
Received: by outflank-mailman (input) for mailman id 230675;
 Thu, 25 Nov 2021 06:55:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mq8f3-0008FC-T8
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 06:55:14 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2e7cb33-4dbc-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 07:55:12 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 10CB921959;
 Thu, 25 Nov 2021 06:55:12 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 409EF13A98;
 Thu, 25 Nov 2021 06:55:11 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id sYoGDU8zn2F5fAAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 06:55:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2e7cb33-4dbc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637823312; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=KQV28t7w0eqLFuxJa8mEkpoXbrSA0O3UATVsW+dfjiQ=;
	b=DRkCR7Iz870mUJNra6E/CBLwI7c6pbiUXBjIaSS7VB/XSG/t946WkWsXi3TOd0jEl63BEn
	Wg9AjXRmC834/5HSfEmrhY9pZb7erfccFezxn0lrRJ6zOninN2zp40PYMl+WvYa7hPqHiK
	BVqwWcbJCP7BZU+RZHReR5OvPWHH2pg=
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
Message-ID: <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
Date: Thu, 25 Nov 2021 07:55:10 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="W0mp1AbQJNjFVknpmPv1FA5JVYdyMGzJs"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--W0mp1AbQJNjFVknpmPv1FA5JVYdyMGzJs
Content-Type: multipart/mixed; boundary="fqJMgs5afiwo4M0GyhuJJxG0D2JfEDHmr";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Message-ID: <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
In-Reply-To: <b1599a82-052f-9369-3774-69c5c570370c@suse.com>

--fqJMgs5afiwo4M0GyhuJJxG0D2JfEDHmr
Content-Type: multipart/mixed;
 boundary="------------4FD88E805B6B1FA0F0939003"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------4FD88E805B6B1FA0F0939003
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 22.11.21 16:39, Jan Beulich wrote:
> On 14.09.2021 14:35, Juergen Gross wrote:
>> The sysctl and domctl hypercalls are not stable, so tools using those
>> need to be in sync with the hypervisor.
>>
>> In order to decouple (some) tools from the hypervisor add a new stable=

>> hypercall __HYPERVISOR_control_op
>=20
> I'm not convinced we need a new hypercall. New sub-ops of the existing =
ones
> can be declared stable (and be made bypass the interface version checks=
).
> If we want/need a new one, "control" is too generic: There's a reason w=
e
> currently have separate domctl and sysctl, and I think if we want new
> hypercalls rather than new sub-ops, then we'd again want a global and a=

> per-domain one (unless the new one had provisions to be able to serve
> both purposes).

It would be nice to settle on a plan for stable [dom|sys]ctl interfaces.

Andrew, I think you already have some plans for that. Mind to share your
thoughts?

>=20
>> with (for now) two sub-options:
>>
>> - XEN_CONTROL_OP_get_version for retrieving the max version of the new=

>>    hypercall supported by the hypervisor
>> - XEN_CONTROL_OP_get_state_changed_domain for retrieving some state
>>    data of a domain which changed state (this is needed by Xenstore).
>>    The returned state just contains the domid, the domain unique id,
>>    and some flags (existing, shutdown, dying).
>=20
> If we go with a new hypercall, I think you want to split its introducti=
on
> (with just the version sub-op) from the addition of get_state_changed_d=
om.
>=20
>> --- /dev/null
>> +++ b/xen/common/control.c
>> @@ -0,0 +1,52 @@
>> +/********************************************************************=
**********
>> + *
>> + * control.c
>> + *
>> + * Entry point of the stable __HYPERVISOR_control_op hypercall.
>> + */
>> +#include <xen/err.h>
>> +#include <xen/event.h>
>> +#include <xen/guest_access.h>
>> +#include <xen/hypercall.h>
>> +#include <public/control.h>
>> +
>> +long do_control_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg=
)
>> +{
>> +    int ret =3D 0;
>> +
>> +    if ( xsm_control_op(XSM_OTHER, cmd) )
>> +        return -EPERM;
>> +
>> +    switch ( cmd )
>> +    {
>> +    case XEN_CONTROL_OP_get_version:
>> +        if ( !guest_handle_is_null(arg) )
>> +            return -EINVAL;
>> +
>> +        ret =3D XEN_CONTROL_VERSION;
>> +        break;
>> +
>> +    case XEN_CONTROL_OP_get_state_changed_domain:
>> +    {
>> +        struct xen_control_changed_domain info =3D { };
>> +
>> +        if ( get_global_virq_handler(VIRQ_DOM_EXC) !=3D current->doma=
in )
>> +            return -EPERM;
>=20
> The function result is stale by the time it gets made use of here. If t=
his
> is deemed not to be a problem, then I guess it wants saying so in the
> description.

I can add something to lock VIRQ_DOM_EXC to the hardware domain in case
it hasn't been registered yet.

>=20
>> @@ -103,6 +104,43 @@ void domain_reset_states(void)
>>       rcu_read_unlock(&domlist_read_lock);
>>   }
>>  =20
>> +int domain_get_dom_state_changed(struct xen_control_changed_domain *i=
nfo)
>> +{
>> +    unsigned int dom;
>> +    struct domain *d;
>> +
>> +    while ( (dom =3D find_first_bit(dom_state_changed, DOMID_MASK + 1=
)) <
>> +            DOMID_FIRST_RESERVED )
>=20
> As per my comment on the earlier patch - the use of DOMID_MASK + 1 vs
> is quite puzzling here.

Okay, will change that.

>=20
>> +    {
>> +        d =3D rcu_lock_domain_by_id(dom);
>> +
>> +        if ( test_and_clear_bit(dom, dom_state_changed) )
>> +        {
>> +            info->domid =3D dom;
>> +            if ( d )
>> +            {
>> +                info->state =3D XEN_CONTROL_CHANGEDDOM_STATE_EXIST;
>> +                if ( d->is_shut_down )
>> +                    info->state |=3D XEN_CONTROL_CHANGEDDOM_STATE_SHU=
TDOWN;
>> +                if ( d->is_dying =3D=3D DOMDYING_dead )
>> +                    info->state |=3D XEN_CONTROL_CHANGEDDOM_STATE_DYI=
NG;
>> +                info->unique_id =3D d->unique_id;
>> +
>> +                rcu_unlock_domain(d);
>> +            }
>> +
>> +            return 0;
>=20
> With rapid creation of short lived domains, will the caller ever get to=

> see information on higher numbered domains (if, say, it gets "suitably"=

> preempted within its own environment)? IOW shouldn't there be a way for=

> the caller to specify a domid to start from?

I'd rather have a local variable for the last reported domid and start
from that.

>=20
>> +        }
>> +
>> +        if ( d )
>> +        {
>> +            rcu_unlock_domain(d);
>> +        }
>=20
> Nit: Unnecessary braces.
>=20
>> --- a/xen/common/event_channel.c
>> +++ b/xen/common/event_channel.c
>> @@ -894,11 +894,16 @@ static struct domain *global_virq_handlers[NR_VI=
RQS] __read_mostly;
>>  =20
>>   static DEFINE_SPINLOCK(global_virq_handlers_lock);
>>  =20
>> -void send_global_virq(uint32_t virq)
>> +struct domain *get_global_virq_handler(uint32_t virq)
>>   {
>>       ASSERT(virq_is_global(virq));
>>  =20
>> -    send_guest_global_virq(global_virq_handlers[virq] ?: hardware_dom=
ain, virq);
>> +    return global_virq_handlers[virq] ?: hardware_domain;
>> +}
>> +
>> +void send_global_virq(uint32_t virq)
>> +{
>> +    send_guest_global_virq(get_global_virq_handler(virq), virq);
>>   }
>=20
> Following my comment further up, I think external exposure of this requ=
ires
> to finally eliminate the (pre-existing) risk of race here. I think
> get_knownalive_domain() is all it takes to at least prevent the domain
> disappearing behind our backs, with the extra reference transferred to =
the
> caller. Yet we may want to additionally be assured that the domain in
> question continues to be the one handling the respective vIRQ ...

Okay. Will look into this.

>=20
>> --- /dev/null
>> +++ b/xen/include/public/control.h
>> @@ -0,0 +1,80 @@
>> +/********************************************************************=
**********
>> + * Xen Control Hypercall
>> + *
>> + * Copyright (c) 2021, SUSE Software Solutions Germany GmbH
>> + *
>> + * Permission is hereby granted, free of charge, to any person obtain=
ing a copy
>> + * of this software and associated documentation files (the "Software=
"), to
>> + * deal in the Software without restriction, including without limita=
tion the
>> + * rights to use, copy, modify, merge, publish, distribute, sublicens=
e, and/or
>> + * sell copies of the Software, and to permit persons to whom the Sof=
tware is
>> + * furnished to do so, subject to the following conditions:
>> + *
>> + * The above copyright notice and this permission notice shall be inc=
luded in
>> + * all copies or substantial portions of the Software.
>> + *
>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EX=
PRESS OR
>> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTAB=
ILITY,
>> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT =
SHALL THE
>> + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR O=
THER
>> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, AR=
ISING
>> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHE=
R
>> + * DEALINGS IN THE SOFTWARE.
>> + *
>> + */
>> +
>> +#ifndef __XEN_PUBLIC_CONTROL_H__
>> +#define __XEN_PUBLIC_CONTROL_H__
>> +
>> +#include "xen.h"
>> +
>> +/*
>> + * Definitions for the __HYPERVISOR_control_op hypercall.
>> + */
>> +
>> +/* Highest version number of the control interface currently defined.=
 */
>> +#define XEN_CONTROL_VERSION      1
>> +
>> +/*
>> + * Hypercall operations.
>> + */
>> +
>> +/*
>> + * XEN_CONTROL_OP_get_version
>> + *
>> + * Read highest interface version supported by the hypervisor.
>> + *
>> + * arg: NULL
>> + *
>> + * Possible return values:
>> + * >0: highest supported interface version
>> + * <0: negative Xen errno value
>> + */
>> +#define XEN_CONTROL_OP_get_version                  0
>=20
> What would a caller use the returned value for? I guess this follows
> XEN_HYPFS_OP_get_version, but I'm less certain of the utility here.
> Incompatible extensions are easy to make use separate sub-ops, unlike
> possible extensions there to struct xen_hypfs_dir{,list}entry.

I think can be discussed finally when we have settled on a plan for
stable control interfaces.

>=20
>> +/*
>> + * XEN_CONTROL_OP_get_state_changed_domain
>> + *
>> + * Get information about a domain having changed state and reset the =
state
>> + * change indicator for that domain. This function is usable only by =
a domain
>> + * having registered the VIRQ_DOM_EXC event (normally Xenstore).
>> + *
>> + * arg: XEN_GUEST_HANDLE(struct xen_control_changed_domain)
>> + *
>> + * Possible return values:
>> + * 0: success
>> + * <0 : negative Xen errno value
>> + */
>> +#define XEN_CONTROL_OP_get_state_changed_domain     1
>> +struct xen_control_changed_domain {
>> +    domid_t domid;
>> +    uint16_t state;
>> +#define XEN_CONTROL_CHANGEDDOM_STATE_EXIST     0x0001  /* Domain is e=
xisting. */
>> +#define XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN  0x0002  /* Shutdown fi=
nished. */
>> +#define XEN_CONTROL_CHANGEDDOM_STATE_DYING     0x0004  /* Domain dyin=
g. */
>> +    uint32_t pad1;           /* Returned as 0. */
>> +    uint64_t unique_id;      /* Unique domain identifier. */
>> +    uint64_t pad2[6];        /* Returned as 0. */
>=20
> I think the padding fields have to be zero on input, not just on return=
=2E

I don't see why this would be needed, as this structure is only ever
copied to the caller, so "on input" just doesn't apply here.

> Unless you mean to mandate them to be OUT only now and forever. I also

The whole struct is OUT only.

> wonder how the trailing padding plays up with the version sub-op: Do we=

> really need such double precaution?

I can remove it.

> Also - should we use uint64_aligned_t here?

Yes.


Juergen

--------------4FD88E805B6B1FA0F0939003
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------4FD88E805B6B1FA0F0939003--

--fqJMgs5afiwo4M0GyhuJJxG0D2JfEDHmr--

--W0mp1AbQJNjFVknpmPv1FA5JVYdyMGzJs
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGfM04FAwAAAAAACgkQsN6d1ii/Ey8A
ogf+N1MGJSzpmbTWPnZL3d5f2abG/aZVF2N21D7iaQ+GyZ01m8v4OQj5+aBWZpPKOgjN3/GM8KPK
SjSp6/svdZQtW/UM4CWwwzgWhe/lgfjJk19LNKhZL+b8KZ1qvEqGGtChUt/j8sc47cC7fs/OOjpy
2KzPwAb7T6YpaUgfQXA4uwCE4otH5AQL1pF0B1Gm49cW53DNLugITzNHeEta7ezEl7HWfbxM1ct2
YEcCawS++3xzrNYBT1eNjgtIwD3K7yEnEbZQvoBnnQgN+0NrU7AQnI2JKhnCqoQi44NmIyoUGfSf
d1z77ZeOo34UEPMw1fc6iXPN6sLyz7CBq6H4s+cEUA==
=Cx2K
-----END PGP SIGNATURE-----

--W0mp1AbQJNjFVknpmPv1FA5JVYdyMGzJs--


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 08:47:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 08:47:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230722.398852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAPi-0002Gq-1W; Thu, 25 Nov 2021 08:47:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230722.398852; Thu, 25 Nov 2021 08:47:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAPh-0002Gj-UE; Thu, 25 Nov 2021 08:47:29 +0000
Received: by outflank-mailman (input) for mailman id 230722;
 Thu, 25 Nov 2021 08:47:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqAPf-0002Gd-Sg
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 08:47:27 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 50c73fb8-4dcc-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 09:47:26 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2059.outbound.protection.outlook.com [104.47.10.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-28-2BKGcAxuPq2QqBBoKvJ_dw-1; Thu, 25 Nov 2021 09:47:25 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4382.eurprd04.prod.outlook.com (2603:10a6:803:73::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Thu, 25 Nov
 2021 08:47:23 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 08:47:23 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0027.eurprd05.prod.outlook.com (2603:10a6:20b:488::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Thu, 25 Nov 2021 08:47:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50c73fb8-4dcc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637830046;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yieLgbpLcphkx9D7zzbkkXrvstemAwwTYyXwszM4ozk=;
	b=Lolx49DkMN2uyqogsuKedS31mYhZMB3dmSH4yoXfzYmRtTBPrOP5d0RBaCJZGW27gvRf4h
	dWs2SGFbDYR6yzVi1RPQ/kxCRxSJWnJswIl/R2EVEzzN5+Q8225g2FLXygzDcQpq2OXrh5
	sDv/ATlar2vnykhIjPHilzlzWXiS5L0=
X-MC-Unique: 2BKGcAxuPq2QqBBoKvJ_dw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UN2QDgGEcfmxM9iLIvZptUMBbsQDEMnBmrGmZVdkkdYHuD0f1DTkeiU0JLkVGVlzfmflc3KLq9/Jfp3Q/dU7gs5YQFnO1mcMKvBUN57rFk2xCpH8tcEL92zh1ybSlWfO/Uv1CSXuCQR7Mn6UCT/NfRCZCnxf99/Jbay7FsvedFIBixNt6oJq4uWcxkcAT3NKEwBc3V65/J5id92Sb91JBeT53c3DKVyYcZKg29n883bcx1/omOoCvM1m/NaJs0YpDjcgCDXxvR9vVZW6r61NMJG5yUV129Ke6HQvskbU/dHnBwlqrm5j63rneWEP34xMGFSNkdg6snQgK0IZtUlKKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yieLgbpLcphkx9D7zzbkkXrvstemAwwTYyXwszM4ozk=;
 b=kKZUalNFyUCgmXTFUwDLnLQA7yU7551lU7S3lnDmTUCW6wSr0TsYcXS8SRWXNiT/D4IGA6Y/qsU344i2iuS39yX4sSjWuCa0g12S5P8wOonVTsELwWbnUSNbCneuN+VrClmHOozeJrAfCve81Liy0RGD8ZX+14F4CzNfbcM/ZYIfQHisY4BfPCIaWEx3w4YFVyrmmlClAK32pi5bHaQPD5NOQaJgr/zSx+imEDMn4z7EDQeZj4+baXv65IByvMxbryq3dBECfaCcKJxAucuCuVXE5/xPDcYrNi8LdWOz3018XqyWdY6EC8PwP9N8Yf6Ylo7VkrEZ4ASXhId6hEirQw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <59f0788c-9085-97b1-8380-e6d1e2e090dc@suse.com>
Date: Thu, 25 Nov 2021 09:47:21 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16] x86/cpuid: do not shrink number of leaves in max
 policies
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Ian Jackson <iwj@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Roger Pau Monne <roger.pau@citrix.com>
References: <20211124161649.83189-1-roger.pau@citrix.com>
 <24990.26451.287618.213116@mariner.uk.xensource.com>
 <9fd0c2f4-1b8f-bcd3-93bd-eea47b61e445@srcf.net>
 <24990.32581.766301.992950@mariner.uk.xensource.com>
 <471892da-6e64-2faa-3198-3859531c4d11@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <471892da-6e64-2faa-3198-3859531c4d11@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR05CA0027.eurprd05.prod.outlook.com
 (2603:10a6:20b:488::18) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b433aa11-d269-43f4-57da-08d9aff03318
X-MS-TrafficTypeDiagnostic: VI1PR04MB4382:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB438214C83C9240F13AF91510B3629@VI1PR04MB4382.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	LdMYaPjG/Tzqkh2pEgpVxLE5Ec/Vy3YgVjHg8hYuhUNJW1CZmxSKdjA0JnH4GQDLLXZYjWlhIuvHmSCur6f/QwMkDeKPAwfXM7iwIevrT3J3+RNqE7oU+k7IN9pHz7o9vVYSY3l4XrTlxKjJdLcu/Kx+YRBzY232SHhHEPDHgnYOAVn/2pKiaB/7aDviTgJ/og0Oiro3oS/Mfef9XHkOjmQOWuCaef9G5+ILFXbv8uZJA6Uv0HVn6VTrdRUj9JQZHR8EtLfLm3akc5Qe6nPvHBvkB5Zh+znixayGJdV7jeg8/ehe8AMWZEntftRme923F4AdDityUsbK7OdUmNdUzVMbJ7cRkSLc2pd+X9nhqduwSReKwI9GPQKusbys0RUi7z3tRh2PhdPsj3ExAFms+FVRvkehQXwGEr9O9r7mTz7G8ycJO+KOf1fF2QQIBM7yfRNcB2URujVHmhC6wLggSnbijzaGZQv+X9UsV6KNrA3pXy8NoR77fw2ES/bmzLsaVdz8YxIsp+vhljROJeusMPwQI7iqlZA2TP3OWmwwE599qaJVTsoUkhP+nNP87qeOXzBiM1CDMuOz06vJTHRuNdCVoumij+sFfJNGqYkSTSlRFPYPLoMN4qpnAUi9FSkkWXQc2dT8+WjOKnusIGg9yq2Rod0D/CsFMB7DIuLFbuGhj0lB+MfnQZt3HVmDZlIkyacucqMfDbZe9X6/sVtleTNANTCyRCAiisgCYcnAUGM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(8676002)(8936002)(83380400001)(2906002)(16576012)(316002)(86362001)(110136005)(26005)(36756003)(53546011)(54906003)(4326008)(38100700002)(66476007)(956004)(6486002)(508600001)(5660300002)(31696002)(66556008)(66946007)(31686004)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VVZoQlFxWS9WN1YyUXFybFVFMW93YXM3c1dMQS9VNjdzMnBtVnZ1T3BZRlNR?=
 =?utf-8?B?LzdFYklpV3FndG80aFp1R1R6c3lCVHpwSHlGM2hBSTVPeWxTZVZZZ01GNm9S?=
 =?utf-8?B?L21PT3ZXWUN4YkVKcUtManplNmtRZm1LNGJCQ3NTVUloc2E4eXYzWUV1RnEy?=
 =?utf-8?B?dEo0cXdHaC9kTlBpTEVPVXNiMzB3MDRIWUk0cEd2aTl3a0ZnYnRPbE93dmtu?=
 =?utf-8?B?TmdiaEJQSXJ6UDdLWkdCV1lFZGlpSzZlWm9neTZ0WUNvcTFMSzJuUThmODhm?=
 =?utf-8?B?aXdzN0Z6cHpMb2o3aEFWbUJodlhYK29VbUUyRmJpYnNuRlZRd0oxaVhZTFkw?=
 =?utf-8?B?NnltRjYwR0l0RFFoVHFqNmtYclZScnFra1o4aElJZkRXTkNJRTltNW8zZVNH?=
 =?utf-8?B?cVlUK2E0cFFLeWN4S0NpU3JkVHpyUndGbE9FcHhwRVBCUnJhZ1pIeW1iMUlp?=
 =?utf-8?B?b0tNREJZZ0lhb3pSK25HOEg4UHZubjZzT3dSY0o4Qit6cktES2lGRjJjNXN1?=
 =?utf-8?B?eXU2cjZGUUVWR3ZtZkNnSmkvMnZlUndFYU5zTzhpZk9lbXpSbFlsd2VtM2ly?=
 =?utf-8?B?WDFVUWVmNmVwd2lFbXcwa0dLL3RENmJtOWo3cnRqUVYvWUp4VHd0eU5NMjNz?=
 =?utf-8?B?dnM1K0ZkWUNrSFJlMmpSdWd6V0M3bHc0NnVsekZoOG9ObmVLTTgyblZObmVi?=
 =?utf-8?B?c3lmNisyTHM0Q2pXcnZuejN2RDg4VUc1NG44LzZ5K0hzUStUL0pndEx0VDFE?=
 =?utf-8?B?cW1MUndrWDJSc1pvU25QWVF4RVNQaFBxZU15SnlyWjJabkh5cmdOOUpYOFJv?=
 =?utf-8?B?WmJYRkdqRDFTZ3dzK0NManF2QVpUb0p4ZWxocFB0NjVBaUJEQ2dRM3UxM3VK?=
 =?utf-8?B?aUEzSWhIVERXeFViMzR1UnlwNU5IV29waVIrVFdrVHo0MTdEM1VtOG91eisr?=
 =?utf-8?B?bkN4cjhMZW1CRmttVXJIekdpNmlUeDJLYThUUDc2VS9mTGNzcnJuY2ZZT0JQ?=
 =?utf-8?B?UGROL0NTMzZyc2dkR21adHJJWlhSc3V5L1VSdlNBem14OUk0UGVuSUJlQUFZ?=
 =?utf-8?B?TEFNRnEwa0tRbll5V2Z2WlZVRWhLanBYbXBVRmZJYk03dzkxU1cwTW1xVC9D?=
 =?utf-8?B?WHkyYUQzZDNpSjMvTEdHSGVudE9qRDA3NmpXTHhZNmVTYU1raldSMUJOY3R6?=
 =?utf-8?B?cXgxV2VLeGJsNXRUU0FMa2V4NzNSL1BCYzJWY1E1ZWp4QXlqSUhOTzF6MnEr?=
 =?utf-8?B?OG04NjhDMXhBY2NmdjlKQjY4dllGODBlQktYZmUyUmlqVTV0NCthak1rTjQy?=
 =?utf-8?B?V1RpamU3bEZGeDY0R0ZDSndTV3k0MTRNVlJyUzg5cjgxYk93Sm9ZUC8zMjFF?=
 =?utf-8?B?UDVmK3pUUGVmbXBEVnZjRGVUZXBSU2VOQjVSQjJHcSs1WUQwanNMS24rL2hm?=
 =?utf-8?B?bk95L3c5WjdPSmRmT2UvN0tCbDdKNXQ4YXBMRTh0M25ZWFd4cTQ0TERsZlhY?=
 =?utf-8?B?Y0NjdWRMMEtYTWtpaEJnVGFtZ2o1REI5S2VhZzhDSjVYRElQVCtCL3dyZzJq?=
 =?utf-8?B?Y1gxaG9iZDBxOUhvWVhlMDhocythMG1zYnY0bDFCUjZwdFJ0dDAzbXRnY3BR?=
 =?utf-8?B?QnB6RjFUMm1SSmFNam5neEdMbXkzcFhVaERuSFZMWkpUamllWFVmODM0RWNL?=
 =?utf-8?B?WFdydkxUckFsZk5icUpsckpKWEF5cG9jbHZHQVUyakx0VnNLUXRnV0lvekow?=
 =?utf-8?B?T0VsRzh3d0VOVEt0V3FCNkR0SkNXU3pmcEdzclJub0lCTVNmaDZMTmNRK3Z2?=
 =?utf-8?B?K0FhYXVyb04rbmM5Mm9QZGI4ZjVDUTViVFpLMlR6K0dNdnVxV2xHajJ3QXFZ?=
 =?utf-8?B?SXRrZkZZc3hwZkNVRFVQVWZCSnVwUzdpU0ZjdndWdHpvWldaWm9WWVNvaUJm?=
 =?utf-8?B?OEUzS20va092NnZTaUZZSFl3aHVKbHhHWkF1eFcyVWZHNlUvOGtoeDVSU2Y4?=
 =?utf-8?B?RExyMTFvUWxvcmpqZXBOcG9pd0RzNjBOaTI5aFUzazAxNjZyUldaK3UrSy9x?=
 =?utf-8?B?U0lKUWJKTkRnaW9WY0NvWkhISXFuZlVBYW41NmpxUVNpMEJYNThhK3FqU0Yz?=
 =?utf-8?B?YTNqcGx3OFMxWWdMcERrNzcxdG55MHlIWU5XTkRLRFR0YTdlalhvaHhGZW5I?=
 =?utf-8?Q?5934zRah+l6OCztJ4NKKUJ8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b433aa11-d269-43f4-57da-08d9aff03318
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 08:47:23.5500
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4BWuRlk4EYbDgW/NcSa7ZeophqFVvwyEBBWsdao0RIEVV+ASS7dp3ZBXClCMCUq+OFfPu1qoeBOy+2PxKK32wA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4382

On 24.11.2021 19:47, Andrew Cooper wrote:
> Real hardware behaviour does not trim max leaf when certain features are
> turned off, and will report blocks of trailing zeros.

I question that, but I'm also unaware of a specific case where feature
disabling (presumably in the BIOS) would lead to a trailing unpopulated
leaf.

> None of the software manuals permit any inference based on max leaf,
> which is why the 4.15 behaviour has been fine for the lifetime of Xen so
> far.

Yet the behavior with AMX (or KeyLocker) becomes quite odd: VMs would
see lots of trailing empty leaves by default on hardware supporting
these, as soon as we have (opt-in) support for them. That's because of
the large gap of leaves we're not making use of just yet.

The manual not permitting inference doesn't mean people can't infer
things. Whether they can do any bad from this (most likely just to
themselves) is unclear in the general case.

To be clear - this isn't an objection to the proposed revert. But the
aspect wants addressing imo, and not only in many years time, nor by
simply continuing to ignore the AMX work which I did submit over half
a year ago. (I didn't even dare to submit the partial KeyLocker work
I've done, both for this reason and for it being just partial work.)

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 08:57:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 08:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230735.398870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAZX-0003oZ-64; Thu, 25 Nov 2021 08:57:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230735.398870; Thu, 25 Nov 2021 08:57:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAZX-0003oS-2U; Thu, 25 Nov 2021 08:57:39 +0000
Received: by outflank-mailman (input) for mailman id 230735;
 Thu, 25 Nov 2021 08:57:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqAZV-0003oM-Rl
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 08:57:37 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc565b12-4dcd-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 09:57:36 +0100 (CET)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur03lp2054.outbound.protection.outlook.com [104.47.9.54]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-19-oAd0EFXZOG2SKOTnPbjXlg-1; Thu, 25 Nov 2021 09:57:35 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6303.eurprd04.prod.outlook.com (2603:10a6:803:f2::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Thu, 25 Nov
 2021 08:57:33 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 08:57:32 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0070.eurprd04.prod.outlook.com (2603:10a6:20b:313::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Thu, 25 Nov 2021 08:57:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc565b12-4dcd-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637830656;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=/ZugTODvumOoUEH0iwV7P16SieULvvvYTObxq/PhdKQ=;
	b=MWnzCAQBRoaq3Z9vBxJZvWWRd04O4OM+padRU8lNV7jcuy6Q4qoMus2LR2nk8buVjv7KSf
	TtsKzfV8GZYOXaexqBt6HtnJG5sFQNUZyLgN2Wt9FyUXRRehkusTYQeg45YoLBHtAd2ZV6
	VnuvSQLonX+rUVbA8Zl1+LcKH837N40=
X-MC-Unique: oAd0EFXZOG2SKOTnPbjXlg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OVJyUKarxjUS+6HYylEKTLnTo/5zWhSAFo/AmnQu2YDrbtk23sTCLMkdn/9U2du9LadYTCVSzU0CB3AO4cDSSC3ZKB4ZiChmRVCRyeLqXu6q06ok8NwzF8+79o/OvsdKEKC7nZwkAE7vFTRUCH/8lgFLax8fhJ7CtEIsgah5gBdgZfiOAH1KQNOOGeCgwTAEn6b2wsxvmkOTi0MkxjckC1GDGzKlYUG+654oS94I76V5IL8j5ydViW9hQr0PsR6SC9fWOrkQiWWGjWX4qWFvEJFgq8Aqgj5GkDp5reLCvz9FCHBGCgitD9+kLTwstOKumpJ+h97dPbbiu72HEGiGPg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/ZugTODvumOoUEH0iwV7P16SieULvvvYTObxq/PhdKQ=;
 b=WWwJTNHtfZnSwSSMlO1WjiOUqVZxjcJjI93yNCpUO/05NHTnqjsnRjridyyeQhPE3uyGym0Jj2Eavns/6w7GWVqrtqebNA/krwYLJxD+vxaAEhk40TLwyGngGfK8vxG35DpGAtMPwf/czWQwyTD8IniYzrceDY0u/OZTbmZfqIYTO+vTq+lHh0pS4/wwGqGiqYGIjxVnXmtgBiEwruiNqI3eHNoejUp2EOqa+uzbfTwjhntZt9siOdEY3bYNsr8uCBU7N7XxcdBq1nTIssbpDDILWucU7ROXgZ6QOd8csirQo/ZB4fyJkKPkPfJUjsKSKQj6jLtF/oKti5DOlEcwdg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <cbe791cc-848f-8511-6974-2c9e300ea66b@suse.com>
Date: Thu, 25 Nov 2021 09:57:31 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211124211152.1142-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0070.eurprd04.prod.outlook.com
 (2603:10a6:20b:313::15) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: cf52585e-f8da-4177-290f-08d9aff19e4c
X-MS-TrafficTypeDiagnostic: VI1PR04MB6303:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6303E73BE1C0E43618B67C8BB3629@VI1PR04MB6303.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	dPZxmBvrnp7pOG0Xg4FhI24rkcvZjDZWZyqtUKyMJ7XEubD3OaPOnrde6gkv/fNocBkPXJRhYSAnH6n91A+0WDJqbX7o6LFEWQEIDlu5VNVSw60CZar06dnwRplZGX3Bz9hkRfSNj/os3MWL94snmMD8Msj7OnLNuZZRPJ/FZGnFqcQnkmL9g1MLlEoigpSLFCJGsd7PI6Aik4W6711WwNSz27kd42v3Fy2qmQ4e9/dgxalyhkhyQenYJJBbRFYf1qniyyLWvxLpvzkxgpQ63XAfIDj2tLETyp+iNbJJQjzfjG6UiUd8817WN6yzgN+yYeenPSwYtbBYSH+HlnSmADJse9ocrfpnutZIOOH0yX2RwWeq4USXupTnwBn1QiYbFMvjrHSyHq72KoigQxiI8e503H0PfSgJkdKaCozpUQclnPPSU0S+8uM+AZT1wQHCUo/F4f0D7Qr8bQC2CmTh3g0TRygujMtjiZwQbIM0LjylNrJqtjPmYJAdUiwxNfO+Q4YTTZuKaf0pefDdpef75R3aZDsagXSe7PoSPWH4r13O6s2aoxaEBJebstZjHw63sPej5w6a90b5GEg6Dtbfu5KbblazZWRTdBI1p6j0JWKgoVjwkSnem2qsWD9OUc3JjEwTc2QrlpmhddHtkAGHHZx/Z7lwoi9IiN0RevRQz6Zey2hPjhdi5O2Bc585vNFhuJbFY+DnqeDa4px5e7pQ6SPk6lqbFqAEYtCVvzZSWjs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(16576012)(316002)(86362001)(31686004)(54906003)(2906002)(53546011)(36756003)(6916009)(83380400001)(508600001)(2616005)(186003)(8676002)(956004)(8936002)(26005)(5660300002)(4326008)(66476007)(66556008)(66946007)(31696002)(6486002)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TDJVN2VuY01JR1QxRE1YaGtKL1czNlJnT2ZIK2s5Um9nMTIrV2JGc1V3VU1N?=
 =?utf-8?B?Mmp2R2IyNnNlbm5INk5ldWtXamgwMy9vVWtqTTBhdURRaEJTeldvbjRPdWR4?=
 =?utf-8?B?UnpoTEpzNG9uZHJBZ212RWVxRFJOOUU1NUxhK3IxdHZlMGh1OGtvVmJkNnBj?=
 =?utf-8?B?Vnc3V0ViMFhLamtxYm11L1orQkVpaWtWbGZ3QytPT0xIUkgydjVQSVBaS2xa?=
 =?utf-8?B?YXhXbzZZZ1crY2JKNzlYWVF2Vlk0aVltSk51bkk2d3R1WTVja1lucDR1dms2?=
 =?utf-8?B?RE9RbS8wSGpUUkNRNTl3eWozUGtqemtrd1p2Y3hJQWxTTEh4QS9xbzVWZFYz?=
 =?utf-8?B?RThMVFllL1BjVTk1TEFqZzg0Z0lIamJWNTlYUjVYSHhjOWhOWWowNlhWUFdp?=
 =?utf-8?B?dWVUWXVBNEJJaGt5bFMyRzNYaGJaK09VbUpITWQ4MTJsSng2NUJFM0w1LzJL?=
 =?utf-8?B?WHQ3dXJjMG5QeXd1d0gyQlg0VGVwek8wNk5xOTFWZkJKQVpvWE56RXM5WFY1?=
 =?utf-8?B?M2l1NmVBVFBKRGN4cG01WGZMdUIzT2V5MkZvWEdHeXdQeElySjRtTEd4ZndS?=
 =?utf-8?B?bGRYN2NiOTNzTVVaRjM0MDdsZUpWNTBvbVJEZTMyVGtQWWl5bnVjL1pseStS?=
 =?utf-8?B?QmREWUxWaVhwSGlCTlp0cWpZUWVQQkJFOCtvWXRtTmU1cSt3SmQ1QnYzZ3Vm?=
 =?utf-8?B?eER6VUdVV2xQN2I1WjZoZlFLUVhnaldabEpEYWhYL3RySkExZ0V2VHNibzNW?=
 =?utf-8?B?cjBGTVpwVE8yZEtnOGI5TG9GaFZ4SDVOL2wzT0c5VWlKL1A4TU1OWFdtczN0?=
 =?utf-8?B?SkwvZVo5Q0FiTDNmQW83UjQ1bmFrRmVpR0I4R0FLZVJZTVdwaTg1STY3Rng1?=
 =?utf-8?B?bEluYnQ1bVpIeDNGekIxSklSOHRXOFljMXBUM056bUhucnAwUnZwd1NrLzFm?=
 =?utf-8?B?M3pxWGZJR2JJS0tmZ2dKVmQ5QU5YdHBZaXk4U0RrdU1qVVBGTTBrdzlkWWFv?=
 =?utf-8?B?U0dVd1dYUzRSc1JUTWFqZENOQURrMlF6UTJLQmMyRk5xdE1VT1JqNTI4OXRk?=
 =?utf-8?B?Q29qZmJFMy93ZEtrd3BFNENjajN3NTZZR1p1cVdDTG92UDRUWDBBWUtDN1Qw?=
 =?utf-8?B?MUF4ZzlWcU1ma1FvcTN6M1Q5eXd3UzZlcTBQa1FYeVBjakFOZlozT1FPOXMv?=
 =?utf-8?B?V0t3dEtvT256ZFVtcUVpSXE0RWlRWElkcGNJU2QwQ3M2YU9VTEFIM2VUMXlD?=
 =?utf-8?B?b0Z4dmNTSEhmTFBkQVlDQlFSMnM3cG8xVitNWHR5UVlSazFPcnQvU0VqRmxV?=
 =?utf-8?B?UWo1WE1EOEF4aDhkQ2RpWUJNS0RhcG5zbjhJU1VxcGdwQlE1WmJCWStLMzVw?=
 =?utf-8?B?Q3NPc21TS3FBT2dDSFByd2FSNDVxWTFSUExKcXZ4K0xOVDhPTlgxYVFCTXZl?=
 =?utf-8?B?dmxWMHNXSVlrUWYvTlJZNzJJME13KzFnQ1diUHh3cmpTS2poRzdXQ0NJRGsv?=
 =?utf-8?B?WDdldmxMSlNWVC9Ha3ZPbnZlRHpVeUFMWGdUeVUyY3BteHZkbEdFQXRzVlFs?=
 =?utf-8?B?QTg3b1cxZmIzekZ5bWI5MXhQbnF3bm8zWTZNSXFGSEx0OG5QZXd4eFMrdjVr?=
 =?utf-8?B?V29ZYitaS2NLQ2hTVTBaa0krNHdZVUJ4VTRLeWF0Lzgvd1Q5S24vTWg0d0hN?=
 =?utf-8?B?R2dGeVNQd2hVcVdOVmhNMkM3VXBuSFRiWHo4OFc2YzJ5MWpHV0gvNXpVMXZt?=
 =?utf-8?B?dE90OEQyY2VWZytDdW11NlN6cWFmWDlHSXFja3Z2N3pOdGI3eHBZUlBGTTdN?=
 =?utf-8?B?UE9PT0p0K2d2dGlYTkF0aTdMemlsVEtERjNpUXI5Ni95WE9VNC95b3JiQzgr?=
 =?utf-8?B?Y2pmTlJEaGlKMzlkOVJ5clJHUEdTamxEbHZJcllvYU9YS0FCZlliTzIxSU1F?=
 =?utf-8?B?c1N6b04xV2EzTzFsTE16Nm50VHRNMkV1TTFqM3NnbDB4RnBwTUg3cmZOVkM4?=
 =?utf-8?B?SVRjb1VOYWtIYlg1Zm9FcHVtREh0b3BGZm5PYUg5dDVxS0E0RS8yQzFjLzF4?=
 =?utf-8?B?RittdkZDQy9DdDBMZFpmNldDOFBLOUMyRktRdWZkRzhyalhRUFFhSmNRKyta?=
 =?utf-8?B?LzVoTG9wQkxKNHpWSUZLWE9rYlllRDd1djZsaGZDSk95UW9pS2FWVnpLeEFl?=
 =?utf-8?Q?AZVAwOmAcL1fqjsVu/lWXP8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cf52585e-f8da-4177-290f-08d9aff19e4c
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 08:57:32.9275
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YgablN2iIzJVdIpkK6VSZdgwXMWMUCxHzAQfmB6rqTRFs0ebchEDUxKVe/+eYJ80uCsMdPOohALT4yapqexPRg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6303

On 24.11.2021 22:11, Andrew Cooper wrote:
> OSSTest has identified a 3rd regression caused by this change.  Migration
> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
> fails with:
> 
>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
>   xc: error: Restore failed (22 = Invalid argument): Internal error
> 
> which is a safety check to prevent resuming the guest when the CPUID data has
> been truncated.  The problem is caused by shrinking of the max policies, which
> is an ABI that needs handling compatibly between different versions of Xen.

Would you mind pointing me to the flight which has hit this problem? I
don't think I've seen any respective failure. I also don't think I've
seen any respective discussion on irc, so I really wonder where all
this is coming from all of the sudden. It's not like the change in
question would have gone in just yesterday.

> Furthermore, shrinking of the default policies also breaks things in some
> cases, because certain cpuid= settings in a VM config file which used to have
> an effect will now be silently discarded.

I'm afraid I don't see what you're talking about here. Could you give
an example? Is this about features the flags of which live in the
higher leaves, which would have got stripped from the default policies?
Which would mean the stripping really should happen on the max policies
only (where it may not have much of an effect).

> This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as well as the
> partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (which added
> one new case where cpuid= settings might not apply correctly) and restores the
> same behaviour as Xen 4.15.
> 
> Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents")
> Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies max leaves")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

I'll be okay ack-ing this revert, but I'd really like to fully
understand things first.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 09:13:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 09:13:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230743.398887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAoc-0006Ak-KA; Thu, 25 Nov 2021 09:13:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230743.398887; Thu, 25 Nov 2021 09:13:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAoc-0006Ad-GC; Thu, 25 Nov 2021 09:13:14 +0000
Received: by outflank-mailman (input) for mailman id 230743;
 Thu, 25 Nov 2021 09:13:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1dIP=QM=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mqAob-0006AX-19
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 09:13:13 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7b15ec3-4dcf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 10:13:10 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7b15ec3-4dcf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637831590;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=zGw2MK64gGNs4dAG4qiGVNyZZI6k1ddhUNLBa/pqbJc=;
  b=PpbWtoBvWtgC1ngqgc8pK+u0xXVrnjxMbw2KsXymfug8Tv5bT71MfhgR
   cBmfd270PAGpJGijkFvVw4b7SV2Dt3zB+c8rsf1ylAz79/UE3ji29b4RN
   WVK0RiO40Auvc6BMhmFlhUioyfnv5CT/0Jn47oMJ2seaePx3a/vVcmk8U
   c=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 4b1xOWMekdGlePlR3BSCtooupf2xR1r2Fc/YItyUosdSszjGMjqLMAQQ0CunxjjuOM+6JPezVC
 7PipGn5jl2t8VFbTwQTVdeIJkY2Os7YYIhzNNTYRep7ksaZYu1zcIdqzNTQS3UHFUzZ29bxPwp
 MCnszr+MgS3NdzLcswp1WCDRkyaObibPlLuanR3Acqz2E51SUfN9DUCdv9f2t3YJfDIiQRLrx8
 e7Qhiw3sG3Nj8VPDycxTJFN88EfPkLDhdPC4aypux0qAKNPntG6W91deSrvrKSD6Wptw7tLtmi
 FaJruGv/kABSwNaQ1BnPSFSY
X-SBRS: 5.1
X-MesageID: 58623723
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:PGUbhaJtbctD/DEqFE+RNpIlxSXFcZb7ZxGr2PjKsXjdYENS3jxRn
 GsXUGCEPP3cMDekKoh2b9+19UIF78WAzoIwHgFlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xrZg6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2shJNol
 44O5aezRCUXI6P+t8heTCZhRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsF2gcsuNo/zNZ43sXB81zDJS/0hRPgvRo2XtYECh2hq3aiiG97Re
 exJTiFOXi7MTCZLPWYdV7E/sf6R0yyXnzpw9wvO+PtfD3Lo5BN1+KjgNpzSYNPibcRKnG6Iq
 2Te5WP7DxoGctuFxlKt4n+qw+PCgy7/cIYTD6GjsO5nhkWJwW4eAwFQUkG0ydGboEOjX9NUK
 2QP5zEj66M18SSWosLVBkPi5iTe51hFBoQWQ7ZSBByxJrT8xh3aHzdfDW56a9EEitI4dxMGl
 UC2poa8bdBwi4G9RXWY/7aSiDq9PykJMGMPDRM5oRs5D8rL+99q0E+WJjp3OOvs14CuR2msq
 9yfhHFm3+17sCId60msEbkraRqIr4OBcAM67x6/somNvlIgP97Ni2BFBDHmARd8wGSxEgbpU
 JsswZH2AAUy4XalznHlfQn1NOv1j8tpyRWF6bKVI7Ev9i6251modp1K7Td1KS9Ba5hfJmC2M
 R+D6FkPtfe/2UdGioctPeqM5zkCl/C8RbwJqNiIBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WiOHSKqtBKcghRRZX5bLivw/Fqmie4ClMOMEkqCuPLwKNnfIpgnq9PkfzP8
 G37UUhdoGcTT1WZQelTQnw8Or7pQ7hlqnc3YX4lMVqygiBxaoez9qYPMZAweOB/puBkyPd1S
 dgDetmBXasTGmiWpWxFYMmvtpFmeTSqmRmKY3ivbg8gcsMyXAfO4NLlIFfirXFcEiqtuMIii
 LS8zQeHE4EbTgFvAZ+OOvKixl+8p1YHn+d2UxeaK9VfYhy0ooNrNzbwnrk8JMRVcUfPwT6T1
 gC3BxYEpLaS/99poYeR3a3d9tWnCepzGEZeDlL317fuOHmI5HenzK9BTP2MIWLXWlTr9fjwf
 u5S1fz9bqEKxQ4Yr4pmHr935qsi/N+z9aRCxwFpEXiXPVSmDrRsfiuP0cVV7/Afw7ZYvU29W
 16V+8kcMrKMYZu3HFkULQsjT+KCyfBLxWWCsaVreB33tH1t4b6KcUROJB3d2iVSIYx8PJ4h3
 ep86tUd7Bayi0ZyP9uL5syOG79g8pDUv30bi6wn
IronPort-HdrOrdr: A9a23:UfZHEK1Hx3fpTVotJowyvgqjBShyeYIsimQD101hICG9Lfb2qy
 n+ppgmPEHP5Qr5OEtApTiBUJPwJk800aQFm7X5Wo3SITUO2VHYV72KiLGN/9SOIVydygcw79
 YET0E6MqyNMbEYt7eK3ODbKadY/DDvysnB7o2/vhQdPT2CKZsQlzuRYjzrbHGeLzM2Y6bReq
 Dsgvau8FGbCAsqh4mAdzM4dtmGg+eOuIPtYBYACRJiwA6SjQmw4Lq/NxSDxB8RXx5G3L9nqA
 H+4kDEz5Tml8v+5g7X1mfV4ZgTsNz9yuFbDMjJrsQOMD3jhiuheYwkcbyfuzIepv2p9T8R4Z
 TxiiZlG/42x2Laf2mzrxeo8w780Aw243un8lOciWuLm72xeBsKT+56wa5JeBrQ7EQt+Ptm1r
 hQ4m6fv51LSTvdgSXU/bHzJlBXv3vxhUBnvf8YjnRZX4dbQqRWt5Yj8ERcF4pFND7m6bogDP
 JlAKjnlbhrmGuhHjPkV1RUsZ6RtixZJGbCfqFCgL3b79FupgE486NCr/Zv2kvp9/oGOu95Dq
 r/Q+NVfYp1P70rhJRGdZA8qPuMex/wqC33QRevyHTcZek60iH22tXKCItc3pDfRHVP9up1pK
 j8
X-IronPort-AV: E=Sophos;i="5.87,262,1631592000"; 
   d="scan'208";a="58623723"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZVFzQgDyDOpp6TevfhmzsNrxpK//+GCN6BbxmZrIEadfGLJ1Chd07LaAbY1RHIlEWtmYIRJj7BcJYWKowqhjXiZOJnVodcXSda6FkwAnYIkaKGCCfFTpYvlJ8znbHvmI7G5VNJheO1YlVyYZdnzTUON4cred1tHG5xhMHa80HKr+kZosAh6GdL6jlnMJmGc3EHxOnZFv2nAzLjFQkCO2SEkviatzbVTKPykHMvHwWZXOBjxnFZ2Fc3ZpvgskAGasLZv2gR6ZpBxrGoUmMjb9NxZy5ufM1aDQhMVLay3Q4TWS6sLhJjja1IqDCi6C7Al3CQWgzgA5ViNBBYPN0rh1lQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ImPN/DDGcM8/rJ0xBvMRQaOrRzNev8CU+aPPIo7d7qo=;
 b=fO0/HP6TqUJ7CMpTzP8u6l3ZT6h5c9mHnsCMgQJS8K8nc0mfjIHkhllGl3nPwnry13t1Xvk9bZEynostojvm3o9GifzORAVkqS1+BU0h8Mo2GhfqGYONQA86AKAPVqnb7Om6B6wyzqlzWVgjclRE4PukVVi3bSMIWLG8U5U7Oouy3w7hIHd90+CHhsDHShEzoXjGKbDsPGI27bfhFz++VLbxXaQLM7qJ30CVpqNjxi1q+0Gmj6OaVEatS+YpaaBkSqX/OV+IeprFCPdtC2gK9f4qTJcDRweMTAyfHQ+tCV/wAOieZ1KXFlziITG5BpJb1FMrgJw0+Y+godWTQ7BbOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ImPN/DDGcM8/rJ0xBvMRQaOrRzNev8CU+aPPIo7d7qo=;
 b=H2Ee9f6vUM6uhbcAhEkixBy2nnSWKdvDwjoL+Ac06+/4pYQZqvjjAUxCdlJ3l9R4TByrJo4AiTKDP9a7ohGpnkMv7c6rchUfHTpBCg/G/xjO2AJyc0MKziyYHii/G3IJBTF0f1UmvAZSzFPF8WAo0OV4joW0wkSXP1qz+0vJ+V0=
Date: Thu, 25 Nov 2021 10:12:59 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<JBeulich@suse.com>, Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Message-ID: <YZ9TmzIbi8QjTAgm@Air-de-Roger>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211124211152.1142-1-andrew.cooper3@citrix.com>
X-ClientProxiedBy: MR1P264CA0052.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::27) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5f4b46c1-927d-447e-00ba-08d9aff3c994
X-MS-TrafficTypeDiagnostic: DM6PR03MB5066:
X-Microsoft-Antispam-PRVS: <DM6PR03MB50667B0A1A9E490CED84B7BD8F629@DM6PR03MB5066.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: m6JHvzp6XCCWIkcy+7msELcxsdf8UIQ3fTUY9jKrC9NoeEg6hQZ9mYyLFEST0NeVqG7b4veFltlSuRZ7Z7mknKtGSYpSHpG/7YeNSeXynV6r1eq5TaBDwuDT60vSPlUGWvMrJPPqxLbj9Tdh1ALzYSwVtKM5YZqXV4zwyEgp2l0J8U87V1DzOv3hDNojhxPJF8Tlh4T1blWca6hBROV28H6VspyZi+MhiQR9BVaJS/7DWmzF+sjasIAhk6MbGVQG8EklM4ohjWszqj/7a3Wu9v4Fpydtf/83BcIz0HhzlvTicqs0U3WkjaRKR0tYBGF6zgimBAXjk8BfjPkEvDNi0om90ab4f7k/2C7ymtSjs2TXdZJ5LgiP41Hi/dIO+4x7a2RoUBjcuVG1RXhLcCrkI4W8DonYgq2m3QCzMndUiPguxQtLzynpjP7p/yyy/G9Wjh4Y5WPbdiRHn07Cnn92/tsVRY2bh55CUDJmgi9QhRJuSi67AKhzZsxzh+OvbP6v0nE/gaYVsvQnspXQSgP9CA2qrydffoCiEO/lCmfNuJUvJkzrMJ3zo1hVsnU2ookKDxCb8lLyQsEY4GM2KCPaWNK14uzrPeAlJLkwKVr2322wySboKFEKza+uxMj1xl7IUY4fAHqZ9b09yQkyi7ptU8exiQ9xfUidlAQKZqF0sn8zjpBFWj0ALA7sKlZp5F1zgJuGdlxMRshGqpmMUJqXd8RprUmEvVnxXcek2+5JjvLIhUdPJK1/IoAoylj1nZmH4IDCFQ322VarORDqCPakog==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(66556008)(86362001)(5660300002)(66476007)(6636002)(8676002)(38100700002)(186003)(82960400001)(956004)(4326008)(6666004)(6862004)(8936002)(966005)(54906003)(85182001)(26005)(66946007)(33716001)(508600001)(2906002)(9686003)(6496006)(83380400001)(316002)(6486002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WlZZZDNaWlBVWFBiM0IxQTRVQlhtZzYzcnNyWHBURW1aVDJTU0dZc1RlK1d5?=
 =?utf-8?B?T1hmVmdQdmpIejdYMjIwOEk4eStVUjVhaWhCNERFZThYVzAvUkMxQ0lkVitO?=
 =?utf-8?B?YndhaHNwYnpaTDBFTnpIem13d21Pa3BjSGMvODd6TkRuZm5xQjdPWmVjZE5J?=
 =?utf-8?B?OWlDb0RYcC8zNTlJSWxvamlOdDJRTE4zVG5mTHVxVkZCNTZmWmNrWkVGNEY2?=
 =?utf-8?B?NmFPbFdKTnF2UlhiMkl2c3AwbWtEYlhIdlZkcjlUdWFsRWR6TGV4bk9vek96?=
 =?utf-8?B?d2c3d2VWRmNuV2hSVUJ3M0VWOG9Sa3AyMUNCMTF3UGszcGt6aEkxTWhoVXZJ?=
 =?utf-8?B?dzBPVzZmdmVIdFNrRzR5V0VmVDZhNitocUNYZ1c2TlJSZHRwZHFBOHV1SlVF?=
 =?utf-8?B?ZllvcTVqczM4WDBmWGE4clR5Z0ptY1RzMkNJZFVCRWJyanp5N0w2WHJFckdK?=
 =?utf-8?B?cDJodVBpQTI4UXRFOFVBbzdJNnlIQ2VjVTVlMGl3cDBlUGE5K3dVNG9QZmVo?=
 =?utf-8?B?ZzhJQ0tNL0w4Q2FhY1hRT1Zqa0s4L0RNOWREREs2QXlHaXcvNjFiRHduVFIw?=
 =?utf-8?B?Tk1yQkdXUUFUbWsxRDRUUG1EWWtlYmxjc2xzVlRTdUdlZ240Q0dHUDh1b3Yv?=
 =?utf-8?B?VUtqL1kyaW5OR0ZtdE5nQWdzVDN0S3JGdXhhVnByc29KcmdjN1BGSDF3UUM1?=
 =?utf-8?B?NTFUUkttcDdGL01vaUtLckRSMkQxNUlnelFIY2lpMXF6WUowa3pUUHhla2xs?=
 =?utf-8?B?VFc3dkU3UkM1eDR6U3c2Q1RqRWZESTBXNGhYaCtoTytTcWVrdzdXNGxnT09H?=
 =?utf-8?B?Z1lMWkE4SHlJVVVrdjZkWm55Qm5RTGs1OGxSUlozVWdVcjFseThuNU5sRVE2?=
 =?utf-8?B?NUtGNS9JVm05MUV0ZVFGaVZtbU5CYXlMbURwR1hJZERIUEtSZExIVDdMYlRJ?=
 =?utf-8?B?VUIvZVc3em1hM1BNTGs4R0o1cmxkak9FQnJ0cjRLS09XVlVZMFFjU0Q3UVdV?=
 =?utf-8?B?M1VGRUZxdzFZTmVuVlNCNTdOc0M3VlVRRlZ0bmlBWElDTW1MNDg1NEVCeXVE?=
 =?utf-8?B?djYwa3Arb0Y0UnlyN25hSnJVcU5pTWVpcTZFdFNGanNHbUlVUTFYRHZGWGFL?=
 =?utf-8?B?QW1MZDg3SitpRnU1Znl0Sk9yUHY1MXQ5alBWYlg3enRqdFJVZy9tN0l6aWE4?=
 =?utf-8?B?Lzd6UTYzbUhSWmZzcXpRWGRvMGlpMWUzSjcyYlVtMk43dWpZcTdqU3g0QkZu?=
 =?utf-8?B?ZWM2ZksvR0w2YWN6NVY4QlNmZ0lMSFFHVi8wM0QyK2VLQmM3VE1nc1hhWE1s?=
 =?utf-8?B?S1JmYTRLVGFveVBkajhjZDJoaHVadDNyV1V3VlJvcFgxUkwzeFdjQTZCMk1M?=
 =?utf-8?B?QVBqWmFUeHdjS094dUI4SmRDU3JFYVd4ZFo4T0c1THd6MFBpNnNsOUE0Skt2?=
 =?utf-8?B?aFloYWhmVVh6WkRoUlMzWlIwRC83TEJDRnlQVDNJMm9LeFdFdGxsNU1HRUtM?=
 =?utf-8?B?b2RGaVhUUlo2NGg4S0p1ZDNJUlR2OGx6amxDdE43YkVkOFdudlVMamJ3SFNH?=
 =?utf-8?B?ZEgwZGxaQUo1K3pVcVowajRJYWpVVlUvMUF5b0liQXMrRWZJbHFPdkRFVEJp?=
 =?utf-8?B?S3NqZkcrQU9RVVFDOEZycW1XaUt1eUFQcXdobzFQcU5rbXI3d3QvQ2gxczVM?=
 =?utf-8?B?cU5mcytTTHdvdUNhZSt4VW9LL0hhcm9MNzZrQWxETnFIZ3hTSDYybFdyNk1K?=
 =?utf-8?B?WDRJYjVwZUJNUUlBK2pQbko4ZGdycHpkbXhJUG1vQW04V1JubFBjTzhDOTRX?=
 =?utf-8?B?d29md1B5dFdVRnNSd3VqM0F4Ui9icjBKL0NCQ2tmS21oRXYwODNLeUdzZHhZ?=
 =?utf-8?B?WEc1czNZbW9rUS9UTjhYcjBrSmpoKzZSZ3BSbEVkYVhPTVdnQ3laQkFBbXNa?=
 =?utf-8?B?UkJuS3F6WnlaMXN2ZG9EUHZQZGJRV0pKbmdaa3ZMaml3R0wzK3RnTnBFbnV4?=
 =?utf-8?B?aUZuK1ZMY0NIb28rSzE5Yko3T0d2WHI0V2RqcUlXWGZ2V21rb2ZHN3lCaG5n?=
 =?utf-8?B?VHdrUnhGOFNjMnRyS2E3ck4waW9BL1gveUdCK0ZTbnFtSERCaVhxckVrNWVh?=
 =?utf-8?B?WTc0TUF2L1JqNHNzN2hRRGZUZ1djNGkzeExNRWtXVzZ2K0NCUHBJMmZab1NN?=
 =?utf-8?Q?kkWMGzqGVxpiiwUnNRa2KTM=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 5f4b46c1-927d-447e-00ba-08d9aff3c994
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 09:13:04.6018
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BDKdSTxmS79u+8fEzYXTQQ3og0nzU6Rt+qOEY2VVjpNdnP6vGeadZ7zeS4fVtxPA9ciFjhXEy5r8xIa2uDYixg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5066
X-OriginatorOrg: citrix.com

On Wed, Nov 24, 2021 at 09:11:52PM +0000, Andrew Cooper wrote:
> OSSTest has identified a 3rd regression caused by this change.  Migration
> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
> fails with:
> 
>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
>   xc: error: Restore failed (22 = Invalid argument): Internal error
> 
> which is a safety check to prevent resuming the guest when the CPUID data has
> been truncated.  The problem is caused by shrinking of the max policies, which
> is an ABI that needs handling compatibly between different versions of Xen.
> 
> Furthermore, shrinking of the default policies also breaks things in some
> cases, because certain cpuid= settings in a VM config file which used to have
> an effect will now be silently discarded.

I don't think they will be silently discarded. xc_cpuid_xend_policy
will attempt to get the CPUID leaf from the current/host/default
policies and fail because the leaf couldn't be found.

There's an issue with callers of xc_cpuid_apply_policy that pass a
featureset (which is not used by the upstream tools) as in that case
the featureset is translated to a CPUID policy without checking that
the set features are correctly exposed regarding the maximum leaves
set in CPUID, and thus features could be silently dropped, but as said
that's not used by the `cpuid=` config file option.

This possibly needs fixing anyway after the release, in order to
assert that the bits set in the featureset are correctly exposed given
the max leaves reported in the policy.

I think the above paragraph should be rewored as:

"Furthermore, shrinking of the default policies also breaks things in
some cases, because certain cpuid= settings in a VM config file which
used to work will now be refused. Also external toolstacks that
attempt to set the CPUID policy from a featureset might now see some
filled leaves not reachable due to the shrinking done to the default
domain policy before applying the featureset."

> This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as well as the
> partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (which added
> one new case where cpuid= settings might not apply correctly) and restores the
> same behaviour as Xen 4.15.
> 
> Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents")
> Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies max leaves")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Likely with the paragraph adjusted if agreed.

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
> CC: Ian Jackson <iwj@xenproject.org>
> 
> Passing CI runs:
>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/415822110
>   https://cirrus-ci.com/build/4915643318272000
> 
> This supercedes
> https://lore.kernel.org/xen-devel/20211124161649.83189-1-roger.pau@citrix.com/
> which is a step in the right direction (it fixes the OSSTest breakage), but
> incomplete (doesn't fix the potential cpuid= breakage).
> 
> For 4.16.  This is the 3rd breakage caused by 540d911c2813, and there is no
> reasonable workaround.  Obviously, this revert isn't completely without risk,
> but going wholesale back to the 4.15 behaviour is by far the safest option at
> this point.

I agree. Also the shrinking done by 540d911c2813 is not fixing any
issue we know about, so it's safer to just keep the previous behavior
of likely reporting empty leaves rather than risk more regressions
caused by the change.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 09:21:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 09:21:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230752.398901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAw9-0007sH-Hd; Thu, 25 Nov 2021 09:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230752.398901; Thu, 25 Nov 2021 09:21:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAw9-0007sA-EC; Thu, 25 Nov 2021 09:21:01 +0000
Received: by outflank-mailman (input) for mailman id 230752;
 Thu, 25 Nov 2021 09:20:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqAw7-0007rb-Sw
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 09:20:59 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00248756-4dd1-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 10:20:58 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 92CB81FD37;
 Thu, 25 Nov 2021 09:20:58 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2278F13F62;
 Thu, 25 Nov 2021 09:20:58 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id W5E0B3pVn2FpHwAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 09:20:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00248756-4dd1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637832058; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=2rT60szHDwJSJ0Rdu5vF9loQpB+Xz94z8PaEQrYROek=;
	b=kKmZxshIgV3vZ3ECtAKuWaCJNPlpUH8AZ9ctZAobT6C2ULIsAI2+rc+d2C5y7eMYSRzUrd
	P78kMxkOpjLFTB12wxirRYnLKsF1h5j5E9oFeiAFk6lp3BprukTTkyUP26Zd/ZsYgbQVx4
	PyJMvP+LjnioPu/lO1MW3OkBQOLDlS8=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	x86@kernel.org,
	linux-kernel@vger.kernel.org
Cc: peterz@infradead.org,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>
Subject: [PATCH 0/2] xen: make debugreg accessors always_inline
Date: Thu, 25 Nov 2021 10:20:54 +0100
Message-Id: <20211125092056.24758-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Juergen Gross (2):
  xen: make HYPERVISOR_get_debugreg() always_inline
  xen: make HYPERVISOR_set_debugreg() always_inline

 arch/x86/include/asm/xen/hypercall.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 09:21:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 09:21:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230753.398907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAw9-0007yA-VC; Thu, 25 Nov 2021 09:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230753.398907; Thu, 25 Nov 2021 09:21:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAw9-0007wF-Qu; Thu, 25 Nov 2021 09:21:01 +0000
Received: by outflank-mailman (input) for mailman id 230753;
 Thu, 25 Nov 2021 09:21:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqAw8-0007rb-Ja
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 09:21:00 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00683bef-4dd1-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 10:20:59 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id E58DA1FDF2;
 Thu, 25 Nov 2021 09:20:58 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8CB9113F7C;
 Thu, 25 Nov 2021 09:20:58 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id wJ4+IXpVn2FpHwAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 09:20:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00683bef-4dd1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637832058; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=j+kg43gH5f/VeO+5uCJZLTpM/p/LHUGCKqHELE4mgbs=;
	b=acI1XCkmVlG9zzoj+M7uftnNs2xwfPfCf6ZvidUV5Yf7QJ4/5/sOfIZw7H1xuXnCIV6A9c
	WgtZouaHhstKIjaKqHajqioTe1yx98HP9AIciRp1G6D0MungIx0Suz1uPkHl93twsrgWpa
	5JFBYJekN2DzK8HLq7z0R/RkHvHWzuE=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	x86@kernel.org,
	linux-kernel@vger.kernel.org
Cc: peterz@infradead.org,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	kernel test robot <lkp@intel.com>
Subject: [PATCH 1/2] xen: make HYPERVISOR_get_debugreg() always_inline
Date: Thu, 25 Nov 2021 10:20:55 +0100
Message-Id: <20211125092056.24758-2-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211125092056.24758-1-jgross@suse.com>
References: <20211125092056.24758-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

HYPERVISOR_get_debugreg() is being called from noinstr code, so it
should be attributed "always_inline".

Fixes: f4afb713e5c3a4419ba ("x86/xen: Make get_debugreg() noinstr")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/xen/hypercall.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/xen/hypercall.h b/arch/x86/include/asm/xen/hypercall.h
index 0575f5863b7f..28ca1119606b 100644
--- a/arch/x86/include/asm/xen/hypercall.h
+++ b/arch/x86/include/asm/xen/hypercall.h
@@ -287,7 +287,7 @@ HYPERVISOR_set_debugreg(int reg, unsigned long value)
 	return _hypercall2(int, set_debugreg, reg, value);
 }
 
-static inline unsigned long
+static __always_inline unsigned long
 HYPERVISOR_get_debugreg(int reg)
 {
 	return _hypercall1(unsigned long, get_debugreg, reg);
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 09:21:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 09:21:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230754.398923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAwK-0008WO-7n; Thu, 25 Nov 2021 09:21:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230754.398923; Thu, 25 Nov 2021 09:21:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAwK-0008WF-4B; Thu, 25 Nov 2021 09:21:12 +0000
Received: by outflank-mailman (input) for mailman id 230754;
 Thu, 25 Nov 2021 09:21:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqAwJ-0008Uo-D1
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 09:21:11 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 00949656-4dd1-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 10:21:02 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 40F851FDF3;
 Thu, 25 Nov 2021 09:20:59 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id E9EFA13F62;
 Thu, 25 Nov 2021 09:20:58 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id qJGiN3pVn2FpHwAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 09:20:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00949656-4dd1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637832059; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Rll1uYbFob7J30NMc3pj9IfWKE4UB2l0V0OWrDn+p70=;
	b=MAzp7gBiss3bNz8fRBLhUjFo+YXsTYcsfFvb3J7ImaGbepkDIH1SGe2msLKgNFXEi4OVni
	B0I5WH/p73MjCakbEsECLNUqv+zu05JoecDnZnOZYPBEyKeSHyHbMQFKS+3bLIB6PDimN7
	tcANznhZd2iK8u9yf/+8D/pWWmbMcdk=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org,
	x86@kernel.org,
	linux-kernel@vger.kernel.org
Cc: peterz@infradead.org,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	kernel test robot <lkp@intel.com>
Subject: [PATCH 2/2] xen: make HYPERVISOR_set_debugreg() always_inline
Date: Thu, 25 Nov 2021 10:20:56 +0100
Message-Id: <20211125092056.24758-3-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20211125092056.24758-1-jgross@suse.com>
References: <20211125092056.24758-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

HYPERVISOR_set_debugreg() is being called from noinstr code, so it
should be attributed "always_inline".

Fixes: 7361fac0465ba96ec8f ("x86/xen: Make set_debugreg() noinstr")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/xen/hypercall.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/xen/hypercall.h b/arch/x86/include/asm/xen/hypercall.h
index 28ca1119606b..e5e0fe10c692 100644
--- a/arch/x86/include/asm/xen/hypercall.h
+++ b/arch/x86/include/asm/xen/hypercall.h
@@ -281,7 +281,7 @@ HYPERVISOR_callback_op(int cmd, void *arg)
 	return _hypercall2(int, callback_op, cmd, arg);
 }
 
-static inline int
+static __always_inline int
 HYPERVISOR_set_debugreg(int reg, unsigned long value)
 {
 	return _hypercall2(int, set_debugreg, reg, value);
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 09:24:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 09:24:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230773.398937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAzd-0001MD-QX; Thu, 25 Nov 2021 09:24:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230773.398937; Thu, 25 Nov 2021 09:24:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqAzd-0001M6-Mr; Thu, 25 Nov 2021 09:24:37 +0000
Received: by outflank-mailman (input) for mailman id 230773;
 Thu, 25 Nov 2021 09:24:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1dIP=QM=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mqAzc-0001M0-H4
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 09:24:36 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f4e28fc-4dd1-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 10:24:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f4e28fc-4dd1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637832274;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=5el3UpuLiQ1ljGI1fLUlp3BSaUVBwuneRtSO2f/vKxE=;
  b=Yr6W7k7xxdT84pB5O6YFeU19SPqC/Y7dkqPOdzyghjzwt2VPRBkqL7tu
   0XaDKY6YObTI1UE373UcA8fYZkpk0zHLG/pLhhoOFFXtZ6JrxhmMHf5oT
   oiCygucqYZol7okmRR3t6IWVbuFSyG9Jxx6QFuNw+SRfXFWNmSiM4fMtk
   E=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 0z85WXdirYH6+SxV3AJrv4yBlZrxRKZipvvBJn4hodXnvc3C8W2+vbEEkFzrNFjthSQ2RhiTQx
 a/LnwISg4nydDzA3c9H/g/wQkfR8PpqTcxhq5HPVlDZToHhiheb/LTeVJPBDOcUVcRLjf2W8l/
 pm+EfWY0mKxOPZG6t19tvuDVFgaZnA+GC1AfNq56ivyA7B7gAIr6oODMtX1SRzNQwoQ+pO1Neo
 nls7TgFdRvEHy2lqxmUBcHJ8ykwcBTIu/SE+b7ScV9AsmRg1aCP//6iPP7mVyfbkxA4eSZT2ak
 xAPAJD2ThWi5hY9Bmgh4XUI5
X-SBRS: 5.1
X-MesageID: 58604072
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:yHLDkasJdNfO9tvLG18fM8wFqOfnVLFZMUV32f8akzHdYApBsoF/q
 tZmKWmAb/eCZmWget0iao2y8R4C7MKDy4UxTlBtqS0xRH4V+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24XhWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplrZCWVj4jPaD3k7okCgh/SSxfB6pY0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY25AQRaqGO
 JBxhTxHYj7eRCYWCnwsD6kDh/mlvFTaYQxEgQfAzUYwyzeKl1EguFT3C/LUZd6iVchThlyfp
 G/N4yL+GB5yHMySz3+J/2yhgsfLnDjnQ8QCGbug7PlojVaPgGsJB3U+V1G2vP24gU6WQM9EJ
 gof/S9Ghbc23FymSJ/6RRLQnZKflkdCAZwKSbR8sVzTjPqPi+qEOoQaZiZNTsMfvsw7fjd07
 waYuInkJAZorpTAHBpx6YyohT+1PCEUK0oLaikFURYJ7rHfnW0jsv7cZo09SfDo17UZDRm1m
 mnX93Zm293/mOZSj/3jlW0rlQ5AsXQgouQdwgzMFlyo4QpiDGJOT9z5sAOLhRqswWvwc7Vgg
 JTms5TBhAztJcvU/MBofAnqNOv0j8tpyBWG3TZS82AJrlxBAUKLc4FK+y1ZL0x0KMsCcjKBS
 BaN4lwOu84DbCrwM/4fj2eN5yMCl/aIKDgYfqqMMoomjmZZKGdrAx2ClWbPhjuwwSDAYIk0O
 IuBcNbEMJrpIf8P8dZCfM9EieVD7nlnnQv7HMmnpzz6gev2TCPEEt8tbQrRBt3VGYvZ+W05B
 f4EbJDUo/ieOcWjChTqHXk7cQpXcCNlXM+u8KS6tIere2JbJY3oMNeIqZsJcI15haVF0ODO+
 3C2QEhDz1Tjw3bALG23hrpLMdsDhL5z8iA2OzICJ1Gt1yRxaIqj9v5HJZA2YaMm5KpoyvstF
 6sJfMCJA/JuTDXb+mtCMcmh/dI6LBn71xiTOyeFYSQke8IyTQL+5dK5LBDk8zMDD3TruJJm8
 aGgzA7SXbEKWx9mUJTNcPuqwl7o5Sodlet+UlHmON5WfEmwooFmJzao1q08It0WKAWFzTyfj
 l7EDRAdrOjLgok07NiW2vzU89b3S7NzRxMIEXPa4LC6MTjh0lCimYIQAvyVeT39VX/v/Pnwb
 +ti0PyhYuYMm0xHstQgHu8zn74+/dbmu5RT0h9gQCfQd12uB75tfiuG0M1IuvEfz7NVo1LrC
 EeG+90cMrSVIsL1VlUWIVN9POiE0PgVnBjU7Og0fxqmtHMmouLfXBUAJQSIhQxcMKBxYdEsz
 uoWscIL7xCy10gxOdGcgyEIr2mBIxTsiUn8Wk321GMztjcW9w==
IronPort-HdrOrdr: A9a23:cJot3qHp4OsefTLhpLqFDJHXdLJyesId70hD6qkvc3Nom52j+/
 xGws536faVslcssHFJo6HmBEClewKnyXcV2/hrAV7GZmfbUQSTXeNfBOfZsljd8mjFh5NgPM
 RbAtZD4b/LfCFHZK/BiWHSebZQo6j3zEnrv5an854Ed3AUV0gK1XYeNu/0KDwTeOEQbqBJaK
 Z0q/A37AaISDAyVICWF3MFV+/Mq5nik4/nWwcPA1oC5BOVhT2lxbbmG1zAty1uHg9n8PMHyy
 zoggb57qKsv7WSzQLd7Xba69BzlMH6wtVOKcSQgow+KynqiCyveIN9Mofy9gwdkaWK0hIHgd
 PMqxAvM4Ba7G7QRHi8pV/X1wzpwF8Vmgnf4G7dpUGmjd3yRTo8BcYEr5leaAHl500pu8w5+L
 5X3kqC3qAnQy/orWDY3ZzlRhtqnk27rT4JiugIlUFSVoMYdft4sZEfxkVIC50NdRiKp7zPKN
 MeTP002cwmMm9zNxvizytSKZ2XLzgO9y69Mwk/Upf/6UkSoJh7p3Fos/D30E1wsK7VcKM0lN
 gsBJ4Y4I2mfvVmHZ6VO91xM/dfKla9CC4kY1jiaWgOKsk8SgfwQtjMkfII2N0=
X-IronPort-AV: E=Sophos;i="5.87,262,1631592000"; 
   d="scan'208";a="58604072"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AhtBEtJvancO7QulRuNajrnB4hl/zJA3+ri76d/VOOsIFe6iYqvTF/WB/YGS3LwTLvRoWvR5OxmvJN42zANbKej4YkJ2jtgqrCnEIedEaXUkmU8o6t1O0xML8OuT5KGOaH5mhEPNQAEDCQJ3F2YvdEf8ZLb2wVZHfbkeCxXrEitND7S4Bcb+DsomjVGiMbqcnXGXcdmL5AztTu6it9VptkLtrmtY2OGwynEJU5+g3aTexYCeZzhltVeSLTTe3UJcH18WlpW1+pMnvaqRdp2aIMnwVQGlS6wq+cY8OBWEZR+LOZrSUY7mNnadyeFn/QXG2yt6NUWm18zl3b9EwKyPAg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mnFv9LvI7mKi/swmefPyxLvhUBwfrxUZDCF5Hhq/V+U=;
 b=T7DZZE91pDpMd9q6Jzy8hbEvv5V0+VW+ICi+QFNRGLgKuuYaT1kwtuk9lM4sh1T9sfcrf2bWfX7uX9428KdQdyGJxI3Pqj+3KJUyPDQF0RrOEhLg/xZPtBDc3ySHOr6UgJJLTFMawMhvgknCmB0ISRBIXHh0iXl3qxc3lNFCyVaTDFPAtnzp87xY6ILbtyTGLoSMRHysAiSmj44Xy1eVklG5mLTPksYL3wv03APaJm/eEva3WCYVHLxlNiMaBMXHWcB7iEGQWugU26AjecYdo+We/IYlS3wd1HmS6ZUdIHJd/CWBWXKG0pj/nTEC80Me7m+RueepzHZ/IE8X1AbgdQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mnFv9LvI7mKi/swmefPyxLvhUBwfrxUZDCF5Hhq/V+U=;
 b=isGoscU1hOJMF8sPxGLlGnJdqIrUVLCu0wIlQ1z3QHmEsZgdiVQG2pdCy0HSYACL0wXHItlP81cfsNjxs/pJP/bFvX9PiEJX2X8lrEZtCGnknqAP06Dmi9xTG0efXHyKQOzRgi5oq62SYQUyXM5MXiRPPKbUTF7wespSNog7PlM=
Date: Thu, 25 Nov 2021 10:24:25 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian
 Jackson <iwj@xenproject.org>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Message-ID: <YZ9WSfy3pYp8uzqI@Air-de-Roger>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <cbe791cc-848f-8511-6974-2c9e300ea66b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <cbe791cc-848f-8511-6974-2c9e300ea66b@suse.com>
X-ClientProxiedBy: MR2P264CA0185.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501::24)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1f3d1707-c3f3-43c8-0b9b-08d9aff56194
X-MS-TrafficTypeDiagnostic: DM6PR03MB5273:
X-Microsoft-Antispam-PRVS: <DM6PR03MB52734435E761139ACD018D918F629@DM6PR03MB5273.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: /7nOMBicj8vJHoHXmZev69xPGtrYU4lHVfCRFxPZMZ/t+HyZg01tKgGSYXIsX8WVjwCBfDpN3p4lTwYR+/ucO9sFgpSWpV7bVGip222hNy+sj08z7oyLiFPlUZ+IB73uoeZTKsF4cvX9QQvBQWbZWRttN17wd1Tpsn1i1Yv7uKhekeOH69SIsUAUY2MkiKmslEu/YXSx9bfyMrlKuXkNaKDxh3N3UsFyuc8YF8Lt76hhJ6wu34cg44CCC3hGDwIdNoSNiBb4jTSunuGtmkAGu7olemjBn4DN0UpqzeUjhE2gN7WmVx8bq850uePROHlVxny9X0BdoOtwLdBOcQa0B5/jteWGuZFvqPp15GEaOHWWDaOCs/mGKGZnSNbaedB0jSgfQrNMYbuzrohOdWVU5xwHG7n6hDrzjflrjnc2fS8YTRsjmmE3vtZJvMsMzuFBzAdRnFLuPaxcnQD80G8A5qmLEKywcqrxa2WNF1mKX018rExsilwVBZig2jqIgRLCnuh7Gc4amuE94hgT05taetmC1f/kA4o6AmnSMf3YsyWiTuqKJExamneAY8s2cX3ykaQjreLlaF3MRYjTRHCcMY/14xsJb1LQJOM6zZS8GW9px6Wy/Yuhb5cDGgmNXRCpxUR+cdcY/HjALqLtsvUOoec2lPPvuut9/V4c79BoCYrxFc7rlzHL7+EXDCS5zAptv2zNYCBJ8mGJMRoG24xEh4bLe79sRokdYRAcPbM23j4=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(54906003)(6666004)(9686003)(66476007)(66556008)(8936002)(2906002)(66946007)(53546011)(966005)(6916009)(186003)(316002)(38100700002)(508600001)(26005)(4326008)(5660300002)(8676002)(6496006)(85182001)(6486002)(86362001)(956004)(33716001)(82960400001)(83380400001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R3k3VE5oVEl0Y1pEaHhoZ2UydUNuWk9TdFY5NFArR0NCZnJ1Q29pNEI2cVFX?=
 =?utf-8?B?Y1k0Q3l6ZUVpaWtkZ3R0aDZRTUw5QWptQkQrQ01kNWtZVENYeVpCK0NhdUg2?=
 =?utf-8?B?djdxUU5NbHVMU0loRlh4MHAvUG9aTnVXMkdoSWhuODdGZ3VFbXRrTWJ0Zyt2?=
 =?utf-8?B?SUx1YTRWUFMreEZFUU9Ha1JKamJ4M1BxemdKT2xsTEJodFI1YUt3TEttUHhp?=
 =?utf-8?B?eTRRUjBYN1o3OTQwQzZTc1NYUmZhNXp1dEUrT2RIY0s2SGt1V3hScEM3ekdh?=
 =?utf-8?B?L0FjZnpnSXJ5NGRzN1BSaFJ2RTA1dDdzLzVsbWk3MGhUT1VxZll6N2RyMXVE?=
 =?utf-8?B?RDZSVjArbkYreEhUNmcxSitScjRMbWlQd051VC9ob1lDZmVvYWxpa2lZaDVW?=
 =?utf-8?B?MEJTczhUKzk0QzlPZXY0SkJvKzRURGFpTUxmZHMzZjU1MXVhNDV5aFlORno1?=
 =?utf-8?B?RnV1QXYwcVJaOTVVb2ZFUFZNUzVoSXozMFdRajIzS3NZYmZVSURoMFZHMkF5?=
 =?utf-8?B?QmVSK01xdkRFanozYUtNKzMvVDVpUEQvQTBWa0xONkdpVTJubC8xZkRGTE1v?=
 =?utf-8?B?aDA2TTFXanEvZjNDZXcvcm5rWmQzMi9HUVBGbkZVOThwa2Z5NmN0aFdzajdS?=
 =?utf-8?B?TGRFMGFlb05zelQ5emNYc0tLN21vWDRLU2gxQ2tUZDJQeXJRd2xKWFVKcC9l?=
 =?utf-8?B?RTFDTWpzVW1oa3hKLzdPRU5QdW9VaUc0NDJPSHRqTkZaSHd4STRxOEdKMkhy?=
 =?utf-8?B?SndNR0VlMTk4V1AyZFpNZzNKaGlnMGJiQmQ3N3pMWXdaeUlzWTRYaWRHSTVF?=
 =?utf-8?B?Q2FqWlpqcDZ3TTZsYnRMMzdUQWR4dGNhb3p0NkM2QmhVbnBkaUNoQk5DRlpN?=
 =?utf-8?B?Z3BOQVIvbjVhdzVwVGRvQXBTUFg5MDNpZGJlTTg3WEVnd2pPOHRJQTR0cFp5?=
 =?utf-8?B?anhMTFVoL3hXSzR1NEpMMUhiUmUwa0Y4MzhrMHZ4WVNlNGcwYzkxdFlPTGc2?=
 =?utf-8?B?dDNMZW5GdW1JbG5TVXZXOWtKUno0R1VFZWRISFpHUlduelpZbUtXNzdUQ1V5?=
 =?utf-8?B?QWlDbWZyQi9wd2lxSG80MXptbmJlMlo2aGNYNVZWaG8wTThDY2VvSGQ3SkdZ?=
 =?utf-8?B?VXUvNFJRN09xZldrc2hpdnhReVIzTXZPZWlRNEF4Y1ArSml0cy9HTUxUQTMw?=
 =?utf-8?B?TmEwUzlKaTNvcElNZjRMSmdlTWVlMU0xWllLN1B3b1FHbXprcm5ldUR5Tkd3?=
 =?utf-8?B?VmVOQk50dzR5QlE3K1hmR1dHaFdpK0ZIb2dRbktjZjkrZnY3SXRjOHR6THJh?=
 =?utf-8?B?aXJaVFZBRGR5TC95eVNaN1h6U2tpVW9sVGIxNjAwUGp5MFFZaGVJM3hkUEFj?=
 =?utf-8?B?ZmFYNlBhaUdBc2RvUU04amdYZGU2UHlSMnZHZFV5cWJqc2thZUd3Umx1Wkor?=
 =?utf-8?B?bWY2bHRScVpjZTd1NkltbGhMb09QdHNtUCs4eEZRQlRaK0VKMUZ5NkNqYUMw?=
 =?utf-8?B?VG14R1R6MnFLYW9UWnBYcCtnMXp5dEFPN0FuYU55dDY3U0J0UU9NcHBHaHl2?=
 =?utf-8?B?ZGMvTW0rbk8wb1FhSVVUOHlDNXZvRUhIOFdyV1BDQW5USE56bXBIN21JT0xy?=
 =?utf-8?B?LzFTcTU2N0o5YkJmZXNtSUx0ajVCVjBmTk50MVVhaDk4Tkh1cW5KR0lNWlY1?=
 =?utf-8?B?K05HTE9kTEs2azFZS2hUN3Q5WUh3S3poL0NtaEF1Z3BUYXlFaVVZbmdHWFYy?=
 =?utf-8?B?V2kzNEo4MVVZRWFZazBpQ09HWUlUT004MUo2OGo1WXVucC94U3IycDVTZzRT?=
 =?utf-8?B?ZHc1TWxOd2hDNmR0aVlkKzR2ZFZHR3ZWelAxeXY3QmhQZk9HbGVRVkVPbklU?=
 =?utf-8?B?RnRjTStwaXZpRmJzVXlKZ0pzVWlacmhWZ1NnUUxsd3JnQWJXa1ZFT29EWGtr?=
 =?utf-8?B?UkFrVUh2NmRYYWpqTXBGQ1ZOb3VNR1B3cGtwRllmSC9kWm9rQWlVckZTbkZQ?=
 =?utf-8?B?NTFxaDY5eXFUc3FpVG1QeGZ3RC9rR2k0ZE8xYTdTQlVCNC9wNVg2NSt0Nk5X?=
 =?utf-8?B?NHVra3BqSi9tVXRHU1pTcVhJbk5QZkZPVEU5eXBYOWNDSnYrdk41NlVqNkF4?=
 =?utf-8?B?b2hQNEJRQ1FrSG1lMExRYkF0YUljeUN0RVpQcHNJV2cyNnRmWnhUNTJDWUFq?=
 =?utf-8?Q?socUGEwMTI3X6ZWGNV6QUE0=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f3d1707-c3f3-43c8-0b9b-08d9aff56194
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 09:24:28.9751
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nUjJ32V5qRPw7ab7lUZguBm4O5ZYjbM6DmGeoWBEnZTYtrFaEmJhW5ozOkk9j0BfJoADjL1YQf8xcZF4jfd3uQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5273
X-OriginatorOrg: citrix.com

On Thu, Nov 25, 2021 at 09:57:31AM +0100, Jan Beulich wrote:
> On 24.11.2021 22:11, Andrew Cooper wrote:
> > OSSTest has identified a 3rd regression caused by this change.  Migration
> > between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
> > fails with:
> > 
> >   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
> >   xc: error: Restore failed (22 = Invalid argument): Internal error
> > 
> > which is a safety check to prevent resuming the guest when the CPUID data has
> > been truncated.  The problem is caused by shrinking of the max policies, which
> > is an ABI that needs handling compatibly between different versions of Xen.
> 
> Would you mind pointing me to the flight which has hit this problem? I
> don't think I've seen any respective failure. I also don't think I've
> seen any respective discussion on irc, so I really wonder where all
> this is coming from all of the sudden. It's not like the change in
> question would have gone in just yesterday.

It's from a pair of newish boxes that Credativ and Ian where
attempting to commission yesterday. Since the boxes are not yet in
production Ian wasn't sure if the issue could be on the testing or
hardware side, so emailed the details in private for us to provide
some feedback on the issue. The error is at:

http://logs.test-lab.xenproject.org/osstest/logs/166296/test-amd64-amd64-migrupgrade/info.html

> > Furthermore, shrinking of the default policies also breaks things in some
> > cases, because certain cpuid= settings in a VM config file which used to have
> > an effect will now be silently discarded.
> 
> I'm afraid I don't see what you're talking about here. Could you give
> an example? Is this about features the flags of which live in the
> higher leaves, which would have got stripped from the default policies?
> Which would mean the stripping really should happen on the max policies
> only (where it may not have much of an effect).

I think there are two separate issues, which I tried to clarify in my
reply to this same patch.

Options set using cpuid= with xl could now be rejected when in
previous versions they were accepted just fine. That's because the
shrinking to the policies can now cause find_leaf calls in
xc_cpuid_xend_policy to fail, and thus the whole operation would
fail.

There's another likely error that only affects callers of
xc_cpuid_apply_policy that pass a featureset (so not the upstream
toolstack), where some leaves of the featureset could now be ignored
by the guest if the max leaves value doesn't cover them anymore. Note
this was already an issue even before 540d911c2813, as applying the
featureset doesn't check that the set feature leaves are below the max
leaf.

Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 09:27:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 09:27:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230780.398948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqB2J-0001zj-A7; Thu, 25 Nov 2021 09:27:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230780.398948; Thu, 25 Nov 2021 09:27:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqB2J-0001zc-6Q; Thu, 25 Nov 2021 09:27:23 +0000
Received: by outflank-mailman (input) for mailman id 230780;
 Thu, 25 Nov 2021 09:27:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqB2H-0001z9-3i; Thu, 25 Nov 2021 09:27:21 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqB2G-00071D-QX; Thu, 25 Nov 2021 09:27:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqB2G-0005bV-IL; Thu, 25 Nov 2021 09:27:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqB2G-00019j-Hn; Thu, 25 Nov 2021 09:27:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=TY0V/rApyOl6tjBpEo2FkTbg2twnYD4npbXDYZlRZkA=; b=ucInUDfgKpUNQrnH0u36Ctl6ej
	FwXUfu2+UZhfMhT3EcWYy8gQJwvyomHWfcCfAh/qpGC+z1x63oiH11VRD+NTEomzKdLKSKQHrzLKp
	irCoWeJhMYAd5uWEhf68a2e/bWmiBuTmA/gpZdE7enAppTmZXabUi950sUQtHNjUIm9Q=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166338-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.15-testing test] 166338: regressions - FAIL
X-Osstest-Failures:
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl:debian-install:fail:regression
    xen-4.15-testing:test-amd64-amd64-xl-credit2:debian-install:fail:regression
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-ovmf-amd64:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ovmf-amd64:debian-hvm-install:running:regression
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ovmf-amd64:syslog-server:running:regression
    xen-4.15-testing:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:heisenbug
    xen-4.15-testing:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:guest-start/debianhvm.repeat:fail:heisenbug
    xen-4.15-testing:test-amd64-i386-xl-qemut-debianhvm-amd64:debian-hvm-install:fail:heisenbug
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-4.15-testing:test-amd64-amd64-xl:debian-install:fail:heisenbug
    xen-4.15-testing:test-arm64-arm64-xl-xsm:guest-start/debian.repeat:fail:heisenbug
    xen-4.15-testing:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=544e547a63175ac6ef7cc29c4f5bda88da024f69
X-Osstest-Versions-That:
    xen=963ab606b1228788eac54c1c7ff70d04bb325733
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Nov 2021 09:27:20 +0000

flight 166338 xen-4.15-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166338/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl           12 debian-install           fail REGR. vs. 166198
 test-amd64-amd64-xl-credit2  12 debian-install           fail REGR. vs. 166198
 test-amd64-amd64-xl-qemuu-ovmf-amd64 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 166198
 test-amd64-i386-xl-qemuu-ovmf-amd64 12 debian-hvm-install    running in 166311
 test-amd64-i386-xl-qemuu-ovmf-amd64  4 syslog-server         running in 166311

Tests which are failing intermittently (not blocking):
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail in 166311 pass in 166338
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 14 guest-start/debianhvm.repeat fail in 166311 pass in 166338
 test-amd64-i386-xl-qemut-debianhvm-amd64 12 debian-hvm-install fail in 166311 pass in 166338
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail in 166311 pass in 166338
 test-amd64-amd64-xl          12 debian-install             fail pass in 166311
 test-arm64-arm64-xl-xsm      18 guest-start/debian.repeat  fail pass in 166311

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds  20 guest-localmigrate/x10 fail in 166311 like 166198
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166198
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166198
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166198
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166198
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166198
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166198
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166198
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166198
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166198
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166198
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166198
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166198
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  544e547a63175ac6ef7cc29c4f5bda88da024f69
baseline version:
 xen                  963ab606b1228788eac54c1c7ff70d04bb325733

Last test of basis   166198  2021-11-19 19:38:51 Z    5 days
Testing same since   166311  2021-11-23 12:38:47 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           fail    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  fail    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         fail    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  fail    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              fail    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 544e547a63175ac6ef7cc29c4f5bda88da024f69
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:26:29 2021 +0100

    x86/P2M: deal with partial success of p2m_set_entry()
    
    M2P and PoD stats need to remain in sync with P2M; if an update succeeds
    only partially, respective adjustments need to be made. If updates get
    made before the call, they may also need undoing upon complete failure
    (i.e. including the single-page case).
    
    Log-dirty state would better also be kept in sync.
    
    Note that the change to set_typed_p2m_entry() may not be strictly
    necessary (due to the order restriction enforced near the top of the
    function), but is being kept here to be on the safe side.
    
    This is CVE-2021-28705 and CVE-2021-28709 / XSA-389.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 74a11c43fd7e074b1f77631b446dd2115eacb9e8
    master date: 2021-11-22 12:27:30 +0000

commit 4429ca0b29f481a2abfcc81990c5ac1f96276cb2
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:26:22 2021 +0100

    x86/PoD: handle intermediate page orders in p2m_pod_cache_add()
    
    p2m_pod_decrease_reservation() may pass pages to the function which
    aren't 4k, 2M, or 1G. Handle all intermediate orders as well, to avoid
    hitting the BUG() at the switch() statement's "default" case.
    
    This is CVE-2021-28708 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 8ec13f68e0b026863d23e7f44f252d06478bc809
    master date: 2021-11-22 12:27:30 +0000

commit 1da54becd5de7e55b2b66665bedc2f30964dbd33
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Nov 23 13:26:12 2021 +0100

    x86/PoD: deal with misaligned GFNs
    
    Users of XENMEM_decrease_reservation and XENMEM_populate_physmap aren't
    required to pass in order-aligned GFN values. (While I consider this
    bogus, I don't think we can fix this there, as that might break existing
    code, e.g Linux'es swiotlb, which - while affecting PV only - until
    recently had been enforcing only page alignment on the original
    allocation.) Only non-PoD code paths (guest_physmap_{add,remove}_page(),
    p2m_set_entry()) look to be dealing with this properly (in part by being
    implemented inefficiently, handling every 4k page separately).
    
    Introduce wrappers taking care of splitting the incoming request into
    aligned chunks, without putting much effort in trying to determine the
    largest possible chunk at every iteration.
    
    Also "handle" p2m_set_entry() failure for non-order-0 requests by
    crashing the domain in one more place. Alongside putting a log message
    there, also add one to the other similar path.
    
    Note regarding locking: This is left in the actual worker functions on
    the assumption that callers aren't guaranteed atomicity wrt acting on
    multiple pages at a time. For mis-aligned GFNs gfn_lock() wouldn't have
    locked the correct GFN range anyway, if it didn't simply resolve to
    p2m_lock(), and for well-behaved callers there continues to be only a
    single iteration, i.e. behavior is unchanged for them. (FTAOD pulling
    out just pod_lock() into p2m_pod_decrease_reservation() would result in
    a lock order violation.)
    
    This is CVE-2021-28704 and CVE-2021-28707 / part of XSA-388.
    
    Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 182c737b9ba540ebceb1433f3940fbed6eac4ea9
    master date: 2021-11-22 12:27:30 +0000

commit d02631a21530918501f7e11320667dde7829cbb5
Author: Julien Grall <jgrall@amazon.com>
Date:   Tue Nov 23 13:25:50 2021 +0100

    xen/page_alloc: Harden assign_pages()
    
    domain_tot_pages() and d->max_pages are 32-bit values. While the order
    should always be quite small, it would still be possible to overflow
    if domain_tot_pages() is near to (2^32 - 1).
    
    As this code may be called by a guest via XENMEM_increase_reservation
    and XENMEM_populate_physmap, we want to make sure the guest is not going
    to be able to allocate more than it is allowed.
    
    Rework the allocation check to avoid any possible overflow. While the
    check domain_tot_pages() < d->max_pages should technically not be
    necessary, it is probably best to have it to catch any possible
    inconsistencies in the future.
    
    This is CVE-2021-28706 / part of XSA-385.
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 143501861d48e1bfef495849fd68584baac05849
    master date: 2021-11-22 11:11:05 +0000
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 09:39:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 09:39:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230792.398962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBDO-0003bX-Fh; Thu, 25 Nov 2021 09:38:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230792.398962; Thu, 25 Nov 2021 09:38:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBDO-0003bQ-Cd; Thu, 25 Nov 2021 09:38:50 +0000
Received: by outflank-mailman (input) for mailman id 230792;
 Thu, 25 Nov 2021 09:38:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqBDN-0003bK-B7
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 09:38:49 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7d5b5ec7-4dd3-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 10:38:48 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2177.outbound.protection.outlook.com [104.47.17.177]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-33-JA_TTEdLMYudLVrSZ9EUSQ-1; Thu, 25 Nov 2021 10:38:46 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3120.eurprd04.prod.outlook.com (2603:10a6:802:e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Thu, 25 Nov
 2021 09:38:43 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 09:38:43 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0274.eurprd06.prod.outlook.com (2603:10a6:20b:45a::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Thu, 25 Nov 2021 09:38:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d5b5ec7-4dd3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637833127;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=LWUsxoyMaoylYk7n/ZmtPRb32D9xpyOF1V6P0u5DQHY=;
	b=FBhAIsVtbMxEsOL84G0QD3edUBiXUcYj8DIxKGprAKr+OlpW89TejyC7X2z26lfdKDBrxE
	/Xz5LUeK9lqo5r6JetW5vvVw+wFOLJore6fPRDmoclLGKeHSVSfSBKEkj+OCaMDxHtHZPF
	eU/FICmQ5v4T7PWDO6kZE4m1Ura13zQ=
X-MC-Unique: JA_TTEdLMYudLVrSZ9EUSQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dhYzu/MVH+02F+6I9Rz7tp8LkNU+ums2fKz4OYQzV3LDzdTATBtWe6BKZvb/FoGHJvNVX5swtroKBui+qespBZfmEYz3htfPWygKPLGp0filOvPFpcTfuW/kstV5JzRG2lr7gLc3A8SrRDcA39gddBLF0PScFHcf3F6xceJ8Bvr7sShy2MIl44nVKXCSxNyWACOueuaAm/wHKlmhkIa0KKpCTfAuuZYZFkbj7X3n6gcmcKl/mNe7GX6LvcN3DtJxKNM141RRGXxE3kgJ6qJkEF5IsQC/SP9sVJyo4g5Y6wwLmkFKN+fASeX7r1kyR5/XlaIcHD48D2kWVbaUAKxBlw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LWUsxoyMaoylYk7n/ZmtPRb32D9xpyOF1V6P0u5DQHY=;
 b=m2JcTGyTv7sjOYOSA1uJAVt/nBgVERCAdQ5na2TueTNT0GH5xFBx8lpw0IYFND0xw1ku4cHF2juHXwJPElS77fT5CHIV9KNR2del0Z34489q0PFbGMtw2LkB8VLYqRFVS+ph70poK55FkTDJeLtTuu1Sh7B8ybYQECcQ1EhtMwgggkEK8ceeTovl8DVIYZc6zeOrQ5fMxHaQo/iHKT2ATtmWgKgYlSb1gAiJ2wMZ4Zv5pTisC3BYOvaUMFHx/pMZx11URyInFpMW4Krr5zM5j5QbvNzbFA7P+o4pVYiewY4VZ4PQOMkUWZSRnGMbEYb4IUgMriLtq3pFS1Ct8XOreg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
Date: Thu, 25 Nov 2021 10:38:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
 <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0274.eurprd06.prod.outlook.com
 (2603:10a6:20b:45a::20) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ff05e61e-ca92-4591-365d-08d9aff75edf
X-MS-TrafficTypeDiagnostic: VI1PR04MB3120:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3120067C86AFBE9DC072F026B3629@VI1PR04MB3120.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JpqvCb08iDnzOOYF2u2gmQ8ExxWXvz4R22anzcvRtwfm+S9ynDLnkukU62Z/Wxt4/0t4RVZiPI+GFNVhoiN+LPfkAFjmlecIPU4H28fjxjwz2VL5sk2EoVNic4zmYxoyWPIGoaDLv5N4kiFiYGCvudlaHzRpMaEiTSDLUTT1GLlj9onkkDGHKAwAYCceWXkysbgetYOX7JPSQDYj5uNOl6vODRsoRgtl/E2SvlW22oMkzvfsJ2temZAaZOcagiteYV5/OPgsZkf6Sb+IVjqMvlrp5NY1H9HjZUJZhkxaySmiWUyGTDzqVYDWMK2VTucXLJffEfsLAwbZ38UiGR0cSs359tb8iZ/lmNmZo5kqvY7PUT/dnzEBbL1nkdoU3y+wZhC2ZqmOiyhXTOb0+Zj77+TwcwuZTqQXVPwPxsilXg/ziyKNv7j8omqqxkTI8LoLAXBg/S5slw+U4DWlV8XUFJeGQMTKbdOyFyHe6Wn0VjxNA2A3YRdUMWXuFGas5GqUWKXZOLZalWi8OsxFphqZ/M8wBgtd+ojYNRGYwM3vv9zbY+EHR/lIsNvrLh0A8axftrMMOwvGd2NhJoUCjPJDOzUQkVyT8DCbGsOk4RJ/IJdc3Un28aEpMN3JYgeu9Xc5XXn/2khYadOvZeps1nwqCfaKKhWETP+d5hVwe5quuhMLWqePCdBIiRvYRYX+Xnx5vm5CSD94GuRRywXb/cKR1KAY+r98LTZa6Odu1CVi9o/WD7QBi/eIyrcKorVIyvha
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(316002)(83380400001)(6486002)(86362001)(38100700002)(6862004)(2616005)(956004)(8936002)(8676002)(186003)(508600001)(66556008)(66476007)(66946007)(37006003)(5660300002)(36756003)(16576012)(7416002)(54906003)(53546011)(4326008)(31696002)(26005)(2906002)(6636002)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?THI2cVV6WDhMMkdMSVV3V2JWdmRtVFZmejltU21nRW80YUhhUFBxZWM4eXRY?=
 =?utf-8?B?dEVPMSt1VFpWU1VaMjRrWlpCRVhvRStrRVAvUEJxUllMSWsyTFAyWmVySmU0?=
 =?utf-8?B?VkhkMEZtTEl0WFFhcmNlRlRnSEM3ZG5hNXFkUXdHUkJkSTgrZ3JDZ21vd0tF?=
 =?utf-8?B?U3M1azloUm11Z3ZGc00xR0RHVDBEaW9aRUhSY0FrV0tCN0NzSllrOGlPYnp2?=
 =?utf-8?B?cnpuRmhGR3BwYXg5d1NBcDVleStnamVPMTMwVCtxZzVVekhuazByQkVXdVVz?=
 =?utf-8?B?ektIczJRMms5YW1DT2U1UHAvUXR4TEN0MWp6d1FMMEl0T2xNM0w2ei9hM3lR?=
 =?utf-8?B?U0huR1FVblAzcFhIdlRybUd3Z1RYUVlWa2I5TzZDUysxTFpTd2g3aUxHbG40?=
 =?utf-8?B?NDhoRVhSTjV6Z01DclF3TVpiWUpDbHlxaGFpSkNoL3h3RkkvVTYybkNtMHZF?=
 =?utf-8?B?ZjVxVWczQ0dTNHFGVjRycU4zM2hCWkhBV2U3RUNCdU1KMGxUbzVNdzdNY0N1?=
 =?utf-8?B?UEplQXhWSUxVS2RIUlJvMWpZOURmMjlJb2pDdnQ5QWM5UkhqVXh0Z0wrOVhS?=
 =?utf-8?B?emUveEZNeG5OVHNXRWtxYlJ0bTNqdmkwbHIyZVR0NExDcjRLeS9jaHBORlRD?=
 =?utf-8?B?K2F2MXE4VHRlb2x2akdHR1U5cnhVT3YrYzFCQWc0MlFOM0VzaWN4ZmJhdW4w?=
 =?utf-8?B?cUFSbHlJd1dFQ2tlUm1jUUgvVFpQU1ZmT1pjaXdLdmZLZklzY0lya0I5N2ZP?=
 =?utf-8?B?d2dSZEI2cWdRZ1dLajdsTXptdWpaOEw3K0dPb0d6OHBZaXpWTjUrbTd3aDBa?=
 =?utf-8?B?cmY5S3ZJZThDeVJybjJzSUtOd0Q1LzczVGdNNHM4SHFaYjVTN0xseDk4cWww?=
 =?utf-8?B?cmR0dDh2TzZETWNOb0FZMmh2T2VEVGpTcmRVOFhCeVErcDhKMWg1UnpsV2Y0?=
 =?utf-8?B?Q3VOb1ZPWE9mMXJ1c010b25XZG9DVkZPU0RBd1N2TDNTMTFSc0xpaytlQkdI?=
 =?utf-8?B?Y2toMUp6VTdCanZDd3hPOERndGV5RzlVNGt0eWhacE9iUlBYdjllUlQ4TnI2?=
 =?utf-8?B?d0trK1hlSGE5UWo3S0JkNm9oM3hubUNtTlZNVHBsMUR3endjbXJIVjA0OHpC?=
 =?utf-8?B?dmxyZ1pVNWNQcFRDaER3ZFpNK0d1b1RiQjhybnBTN1BXbjdyZFRqTFJMOXds?=
 =?utf-8?B?U0dVelJkZFJGbE15ZG8zVi9PV2x4WEFXdmozOFAzTFZRcjBiK29iVUVqVVlu?=
 =?utf-8?B?WlJPdGRuSDRVR1J2eGE2aFJuclFMME9KWEh0SXdLN0JsdEROU3NyTzFzYnVM?=
 =?utf-8?B?c3lONVo2MHZwcmpXZldubWpPbmpOZ0xGOWs1L0lmR3R1dXlWbkJGclI1c0Yw?=
 =?utf-8?B?UkN5azduT2JNSUd5eGpXaVFhOXB6dVBTamR3RE1TUzZYeVUrMzFEdEx4ZExG?=
 =?utf-8?B?bDQ2cXdBZmJUSW4xT2NXR2g2bzA0Y3M2aldubW9HLzg1VFJqb2ZxQ0U4T0dy?=
 =?utf-8?B?aUlpaXIxVlRxN0loQ3k5eEJWc3dHR2Mxdk1kZ083d0MwdUNRMnArK1BPdmFZ?=
 =?utf-8?B?dEltTXRSeThhSnNCR3ZvRU1UK0dGWnIrQ1JuRnU4ek1neisybSs5SlVRbkxL?=
 =?utf-8?B?aW1hNy9neGpvckFWMXJSYWZKSW5jRGlXWFI3QjBMV3VpaUl4VzJlUHVkNHY0?=
 =?utf-8?B?RGExK1VnOUVmT3NsUUkydFdRRU84SFVBSWlLNW5WVk5zdnc0VEluMkVDd0dI?=
 =?utf-8?B?TjJNQzVjMlFnZzdFQUNRdDZ2V0dwUVBacFVpZzdiQ2pFSUhMSTIvRHZXa0Ex?=
 =?utf-8?B?a08xQ2ViUVgrejhWUjdEK215cFB3VjFtNHYyYlhmdHZnVmkyUDhoUHRDVWRG?=
 =?utf-8?B?Y0ErSVlOZkIvRE43VjJ5YWlsSTB0Y2Vkd2lLNVgrVlQ5QTJJOUtWeDNWNmxQ?=
 =?utf-8?B?Rzg2WWdia3h4T01yV2VtRWpoZGZRaGU1VU5ObmJIdng4dTBZRHVEQmtaZ2hG?=
 =?utf-8?B?V2lDQXF2UjkzVi9oV0tqWmFjbGxPbG5lWThaKzl5TzQ0Z3RjakY4UlVzNHFp?=
 =?utf-8?B?SnJ0N0hzUFovdi9QMVlKZktsVW54Y1hFZXVTT0RUMXc5SmE3b3BseFNIOExP?=
 =?utf-8?B?d1E2cW9rVnRvZ0FVVU9PbWhucUVXVTlWMllwZUxxL0ZNaU9SM1dIa2ErQ3Vm?=
 =?utf-8?Q?wai/UTO1LrOQ2oQl4jGUVj0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ff05e61e-ca92-4591-365d-08d9aff75edf
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 09:38:43.4464
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RA+BSyVQhJoNlEwCExfU7Ii0uhXpuA3XkapI8sC7j4R7elMcRVWHggciUBjuhCTWn8UcU1xmHmn+eovGJGPVKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3120

On 25.11.2021 07:55, Juergen Gross wrote:
> On 22.11.21 16:39, Jan Beulich wrote:
>> On 14.09.2021 14:35, Juergen Gross wrote:
>>> @@ -103,6 +104,43 @@ void domain_reset_states(void)
>>>       rcu_read_unlock(&domlist_read_lock);
>>>   }
>>>   
>>> +int domain_get_dom_state_changed(struct xen_control_changed_domain *info)
>>> +{
>>> +    unsigned int dom;
>>> +    struct domain *d;
>>> +
>>> +    while ( (dom = find_first_bit(dom_state_changed, DOMID_MASK + 1)) <
>>> +            DOMID_FIRST_RESERVED )
>>
>> As per my comment on the earlier patch - the use of DOMID_MASK + 1 vs
>> is quite puzzling here.
> 
> Okay, will change that.
> 
>>
>>> +    {
>>> +        d = rcu_lock_domain_by_id(dom);
>>> +
>>> +        if ( test_and_clear_bit(dom, dom_state_changed) )
>>> +        {
>>> +            info->domid = dom;
>>> +            if ( d )
>>> +            {
>>> +                info->state = XEN_CONTROL_CHANGEDDOM_STATE_EXIST;
>>> +                if ( d->is_shut_down )
>>> +                    info->state |= XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN;
>>> +                if ( d->is_dying == DOMDYING_dead )
>>> +                    info->state |= XEN_CONTROL_CHANGEDDOM_STATE_DYING;
>>> +                info->unique_id = d->unique_id;
>>> +
>>> +                rcu_unlock_domain(d);
>>> +            }
>>> +
>>> +            return 0;
>>
>> With rapid creation of short lived domains, will the caller ever get to
>> see information on higher numbered domains (if, say, it gets "suitably"
>> preempted within its own environment)? IOW shouldn't there be a way for
>> the caller to specify a domid to start from?
> 
> I'd rather have a local variable for the last reported domid and start
> from that.

Well, it probably doesn't matter much to have yet one more aspect making
this a single-consumer-only interface.

>>> +/*
>>> + * XEN_CONTROL_OP_get_state_changed_domain
>>> + *
>>> + * Get information about a domain having changed state and reset the state
>>> + * change indicator for that domain. This function is usable only by a domain
>>> + * having registered the VIRQ_DOM_EXC event (normally Xenstore).
>>> + *
>>> + * arg: XEN_GUEST_HANDLE(struct xen_control_changed_domain)
>>> + *
>>> + * Possible return values:
>>> + * 0: success
>>> + * <0 : negative Xen errno value
>>> + */
>>> +#define XEN_CONTROL_OP_get_state_changed_domain     1
>>> +struct xen_control_changed_domain {
>>> +    domid_t domid;
>>> +    uint16_t state;
>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_EXIST     0x0001  /* Domain is existing. */
>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN  0x0002  /* Shutdown finished. */
>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_DYING     0x0004  /* Domain dying. */
>>> +    uint32_t pad1;           /* Returned as 0. */
>>> +    uint64_t unique_id;      /* Unique domain identifier. */
>>> +    uint64_t pad2[6];        /* Returned as 0. */
>>
>> I think the padding fields have to be zero on input, not just on return.
> 
> I don't see why this would be needed, as this structure is only ever
> copied to the caller, so "on input" just doesn't apply here.
> 
>> Unless you mean to mandate them to be OUT only now and forever. I also
> 
> The whole struct is OUT only.

Right now, yes. I wouldn't exclude "pad1" to become a flags field,
controlling some future behavioral aspect of the operation.

>> wonder how the trailing padding plays up with the version sub-op: Do we
>> really need such double precaution?
> 
> I can remove it.
> 
>> Also - should we use uint64_aligned_t here?
> 
> Yes.

But you realize this isn't straightforward, for the type not being
available in plain C89 (nor C99)? That's why it's presently used in
tools-only interfaces only, and the respective header are excluded
from the "is ANSI compatible" checking (memory.h and hvm/dm_op.h
have special but imo crude "precautions").

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 09:52:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 09:52:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230801.398978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBQT-0005qW-O8; Thu, 25 Nov 2021 09:52:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230801.398978; Thu, 25 Nov 2021 09:52:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBQT-0005qP-LB; Thu, 25 Nov 2021 09:52:21 +0000
Received: by outflank-mailman (input) for mailman id 230801;
 Thu, 25 Nov 2021 09:52:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqBQR-0005q3-Nq
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 09:52:19 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6035a8de-4dd5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 10:52:18 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2110.outbound.protection.outlook.com [104.47.17.110]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-31-ZXD949WvOwOE3l49ZPH1EQ-1; Thu, 25 Nov 2021 10:52:16 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6304.eurprd04.prod.outlook.com (2603:10a6:803:fd::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Thu, 25 Nov
 2021 09:52:14 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 09:52:13 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0054.eurprd05.prod.outlook.com (2603:10a6:20b:489::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Thu, 25 Nov 2021 09:52:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6035a8de-4dd5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637833937;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=COssJVFtwKYcpQyXsWbWuFPt2bILuf630drMuaUHEaU=;
	b=k2JbPn/6t+Pn3V2JDDgCOYFk8n7dfYXJIe53LgLCEqPErfxPXGBrvteVbZp0hikQp7QgzY
	1WTdlgzWsc2c+B2mpOMlgtwDcmtIUJuBjWVlL1KDMkIceIhfiNe00jvQNnDYeIuKOKDGib
	WGEIFQ93+BJIxjBUT5armfT7BWvgAwk=
X-MC-Unique: ZXD949WvOwOE3l49ZPH1EQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kIJYlCaBs6D/mKbO9EyHE83BwY/6cr/jorj4FNCcUkxplrLiVY0kTHZ7i9Ey8Ind0Mk8Cgk+KE40qIJD9JDToIIVXna7JyU0aCCVAmS7m+B/zqT5/aIHzxFToj+vFwx5PgzMV5fnVALHbfgpOORHxXAQvslI6I/UK6QKOnSc2NmCXxrulP5VRCjjkFYNVT4dO+7/d6o4X3xLgHMzRPrk7qMGl7QWFw0Gsq1yTk1tgGawMicIrwLbrMPXUnsh7WXwX+Femp7Sytaz3zk7VolsLzwpNK/EZzx13Qt7jO4NTUq290I3xLbRHqwJou33qog5gPFAaxDc0jDuuVn5Za9hdg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T2Cpb2ok8IZX8zUMO+dRmkhiQVIl+9Ihb7HHfxqLEc8=;
 b=K79JcQB9ZEi9YMjKgBPoThqEjVw81tZnsED4nKW8fUOBMfQOnMy02EoWFLSN1eYa7Z8deJjydMDmZ5KEITZgIY8I5S7dNoiQxdmAOk1ysg+nZvkadu2G2j7quxE/HKdStIkk1l3MyRJK9SjYRCj0OfTjKTmSvrqyywMLwYKujBizZOUc/x7MXYofu5khICjjsWlAusSa2DpnhnkEigIodez3H8iGQgImSgzDChywuzW7gnIrpWVjvYxCVti6bqD7eZKyJ9vyRzcRtX83x8exqlQIEGBExyZxnR0NpFvTXEXq1BdBS0wn2Uo0eXc7nTWU718lq2o1eWm0rrPynCE+3g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <614efba0-a3fb-7ddf-1fe9-d4fe2feb21f2@suse.com>
Date: Thu, 25 Nov 2021 10:52:12 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Ian Jackson <iwj@xenproject.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <cbe791cc-848f-8511-6974-2c9e300ea66b@suse.com>
 <YZ9WSfy3pYp8uzqI@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZ9WSfy3pYp8uzqI@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR05CA0054.eurprd05.prod.outlook.com
 (2603:10a6:20b:489::13) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 494d82db-5a47-44bf-116e-08d9aff941e7
X-MS-TrafficTypeDiagnostic: VI1PR04MB6304:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6304906745F87BAA7D6339C5B3629@VI1PR04MB6304.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	aen1l8f4JdgYZ9ZhMsq5PuizRnHka1LYCpZ2pkxlzW6Lj+WMFLjHE7rg2/FjEZK86dQSHxaffyH6YA8Way8GDcpOKEUOpH+oKLl26+RoHhVoZEV1ObL/LQTuNPzJAgpm7JgeNnO+TBDYt1GOTP5MUAjG7LHOfJ6MJRSEpfHIhgV8saJwZCxhM+qE0hkshUCh/NbclmOQV9YVI55EJaONgw3r51RGj5DgRX6D9WXeQZK2nSl9c5JNiz7jbKAv4GiUs8em/s3g6Bwc/5to/pB7un6+z40xzwu824huXL/K61H9rP6bddC4/3wxxs8o7SXnuWYUah2S8EW35Kz/V5+yg1wq18DTgW3wOoUSm1TELvAYZCi5Luc4eFEBKP/7cGUOlrFkEsvvWX9MNJSysMQ45AkZaw+J5qZh9SqYJbnXU1RfiUw0lCFXgDAyBED0qkpVeDFLWWGpCF8G0Fgs2StDXH3CjNphjMRJBx5HPEna7APkVtaVEnD//DjMpCDeGwLHCFdUKPvziLE9DA2Qp6BwTIEluL4gYSLXUWeucTQA3wRoSAaa8WTZJA4FHUHPwGlcEJjxJ4yy+HAWgYSdKB3471MEG0pWuZLUOzrntI/B+v/BRHO5p9qzGB90O5bXODuAbnZR8J+mHpZ8fGFqVmEP3ndJgrPeVT3yedFnT0FQpks7XDBRf4fkx2GJn6aB7kyC/R2nL1Qbok3J5gxmIveALUhw7pLlefe5rslXLtV/mUR3vuSYbvF/GTpMxJGKPrgGv6dLWIHccvcH73APcpsh3wuwxUFI10Shj3y+6bUmIhmej0bUmwWSaOnxdqQrN1IbDeU01FCtxD7d1mhDzsdpJQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(83380400001)(6486002)(8936002)(31686004)(4326008)(186003)(86362001)(38100700002)(54906003)(66476007)(31696002)(316002)(16576012)(956004)(2906002)(66946007)(26005)(66556008)(2616005)(6916009)(966005)(508600001)(5660300002)(36756003)(53546011)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?8OH6SzC31OeVNfMYrxmVF2sEDXZXhGgVWQSYJ3EdVyTH2Oqw6kwt0eWhW7PF?=
 =?us-ascii?Q?tViJhXRnO31aPlY2/O7FFW01u++v1u13DmoWMJgqhINyL5AquN/ilvB3kZfg?=
 =?us-ascii?Q?C6JvzlYkeIigCIDmwN5EXAp/rAk1Ug1JyH0d0uzVGtYfsKQ9lIdMZKHjrOWi?=
 =?us-ascii?Q?leFy3O+uFxArOE/PmJtS6aUfPne44N1eG1i/VmxpVncDepmR0AqJmBM07Ovy?=
 =?us-ascii?Q?LgD43+XjaIIWiPa8LdlhzC5nu4mvVO7gQN62KTY3xSBT8Vp+LhiblzB5R0n3?=
 =?us-ascii?Q?hh5IPIx0yiWM9jHllBHQ6dGx5JCdSbgEqxzWfIGNOEjA/k/FFWyWGobmSRx3?=
 =?us-ascii?Q?KYFiZZZpwA9As16sZ4Z3I/NKpFrJcgKpnXbcVooLMDRElgQvYhRIW5k68b+6?=
 =?us-ascii?Q?vfTg6AHC6NBmNvpyuDUonlxoTbkM+EWHPkjhkx1QbP95BzIaOO8L3TMoV14B?=
 =?us-ascii?Q?hCmfE1p8806Xd5Mkaibmfr6Pr3vbzjsbl9RLeBxTgKx545aDAlb7tH7Ke+O1?=
 =?us-ascii?Q?jr9iaRu6fjZjSZNplQOnNZKt3xlXVlEuFP0nLk8hFCqRh6Pc5zToCijIG+W3?=
 =?us-ascii?Q?k8arsrKDo+Ly5aT3T2WP9KMXi9auC+LPZR0S+vgsJLp+jobPVLWKfcMRCk8M?=
 =?us-ascii?Q?P4d+Lquqo0KsMYLoz0wsNC/+/LpmX2ju8Z+AVC9PbGIIXsKI5Kli//F9xQXF?=
 =?us-ascii?Q?WgLs+XNoIN4zbwTI/VVsI2CNn/aJlG+3cAf1y9n0XqI1xIZK4SdxDu2uvoRm?=
 =?us-ascii?Q?fiTWvFnN+wBZCplAiS3m2VrMunnT61VRMhR5xuYDK7ZnaByU3ukXmz69d6Mh?=
 =?us-ascii?Q?8ETemBNksApQxoIO4daVLo6hRrSkNbcm7xdn3btxGaE0YJTK8zchFv0X4K3d?=
 =?us-ascii?Q?C203L8+GzSvIkKa4heM2ByrN5oI3KGvv6ob0bZq+ZOCLJKXSlbGtdc2mjF9k?=
 =?us-ascii?Q?zWFnXqtW64OFR+YNJSq+Z17kpuvZ1Vba/LQRprXZhDWndxpyCvaNndoOabwJ?=
 =?us-ascii?Q?pUzoyXEpF1oCoNHiQI9FquIhW1FfupHWEYRjlEuxyHcEgxUn+yy7LAzc9Im0?=
 =?us-ascii?Q?IJW7zQ4tDThbQW0ZX2QrGMP+w8XRuc8Jv9tpuLtA7xAVzqqp4YiMfCvM3eSX?=
 =?us-ascii?Q?8YB+9QhYm/+rnxAKSqb0N/BTYiRz/C2oMHA9gOfyiqOIf+G5gd3dOi475TNw?=
 =?us-ascii?Q?zx+QiUbKF+2IjnRx3ko/TftqKij6eA+LxWGSmzneOBt5AJj8gk6E41IH7aSM?=
 =?us-ascii?Q?cbBru0ZBxU/WI7htzt6ON1OD+Zfgb6u6K3olHS7sdpBR6UkdW41sq3H6eDsa?=
 =?us-ascii?Q?sYYoKDMtvh1dsbvrbkRiCJ7jATcst8LPMEZolG1ijAAIE0zPNyFjszx86Pvf?=
 =?us-ascii?Q?BW8Z13tBwwTZGXWP+MzCdnwk23WIVURgfyLcMScOBdJNoMHW1QfZaHyaM0VK?=
 =?us-ascii?Q?Xi2l5lxjxR41D3H/NHlhtj8zlClwPhXT7CYddxHbWKKCj940zpZZQunNBWXv?=
 =?us-ascii?Q?XQphDPEAHMVLPcsQWWon890rkdVMg0Ge7xXzbcQDtY8Qkj1fE+UfhQ3P4PzE?=
 =?us-ascii?Q?Ib+RBVYDW8zyl+/tCJ/SasF7TO1zH+8FUTqnb95gMabisZThqlHj1+SiYkMk?=
 =?us-ascii?Q?R9+KL+P7YJWWjrj7H7FeMQE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 494d82db-5a47-44bf-116e-08d9aff941e7
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 09:52:13.8454
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Gxg8NYFrS4Jhsa7N4n0+mWaWc+0Qc9NSJqP4rWR3BhPPHs/mto6zSOrTfLwcNX2hogo8cNe6I0CV9T2izwdKWw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6304

On 25.11.2021 10:24, Roger Pau Monn=C3=A9 wrote:
> On Thu, Nov 25, 2021 at 09:57:31AM +0100, Jan Beulich wrote:
>> On 24.11.2021 22:11, Andrew Cooper wrote:
>>> OSSTest has identified a 3rd regression caused by this change.  Migrati=
on
>>> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4=
133)
>>> fails with:
>>>
>>>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf fffffff=
f, msr ffffffff (22 =3D Invalid argument): Internal error
>>>   xc: error: Restore failed (22 =3D Invalid argument): Internal error
>>>
>>> which is a safety check to prevent resuming the guest when the CPUID da=
ta has
>>> been truncated.  The problem is caused by shrinking of the max policies=
, which
>>> is an ABI that needs handling compatibly between different versions of =
Xen.
>>
>> Would you mind pointing me to the flight which has hit this problem? I
>> don't think I've seen any respective failure. I also don't think I've
>> seen any respective discussion on irc, so I really wonder where all
>> this is coming from all of the sudden. It's not like the change in
>> question would have gone in just yesterday.
>=20
> It's from a pair of newish boxes that Credativ and Ian where
> attempting to commission yesterday. Since the boxes are not yet in
> production Ian wasn't sure if the issue could be on the testing or
> hardware side, so emailed the details in private for us to provide
> some feedback on the issue. The error is at:
>=20
> http://logs.test-lab.xenproject.org/osstest/logs/166296/test-amd64-amd64-=
migrupgrade/info.html

I see. Quite lucky timing then.

>>> Furthermore, shrinking of the default policies also breaks things in so=
me
>>> cases, because certain cpuid=3D settings in a VM config file which used=
 to have
>>> an effect will now be silently discarded.
>>
>> I'm afraid I don't see what you're talking about here. Could you give
>> an example? Is this about features the flags of which live in the
>> higher leaves, which would have got stripped from the default policies?
>> Which would mean the stripping really should happen on the max policies
>> only (where it may not have much of an effect).
>=20
> I think there are two separate issues, which I tried to clarify in my
> reply to this same patch.
>=20
> Options set using cpuid=3D with xl could now be rejected when in
> previous versions they were accepted just fine. That's because the
> shrinking to the policies can now cause find_leaf calls in
> xc_cpuid_xend_policy to fail, and thus the whole operation would
> fail.

Okay, this could be addressed by merely dropping the calls from
calculate_{pv,hvm}_def_policy(). Thinking about it, I can surely
agree they shouldn't have been put there in the first place.
Which would be quite the opposite of your initial proposal, where
you did drop them from calculate_{pv,hvm}_max_policy(). A guest
migrating in with a larger max leaf value should merely have that
max leaf value retained, but that ought to be possible without
dropping the shrinking from calculate_{pv,hvm}_max_policy(). Even
leaving aside migration, I guess an explicit request for a large
max leaf value should be honored; those possibly many trailing
leaves then would simply all be blank.

> There's another likely error that only affects callers of
> xc_cpuid_apply_policy that pass a featureset (so not the upstream
> toolstack), where some leaves of the featureset could now be ignored
> by the guest if the max leaves value doesn't cover them anymore. Note
> this was already an issue even before 540d911c2813, as applying the
> featureset doesn't check that the set feature leaves are below the max
> leaf.

If this was an issue before the commit to be reverted, I take it
the revert isn't going to help it? In which case this information
is interesting, but not applicable as justification for the
revert?

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 10:12:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 10:12:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230810.398995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBjo-0008Fz-H5; Thu, 25 Nov 2021 10:12:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230810.398995; Thu, 25 Nov 2021 10:12:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBjo-0008Fs-Do; Thu, 25 Nov 2021 10:12:20 +0000
Received: by outflank-mailman (input) for mailman id 230810;
 Thu, 25 Nov 2021 10:12:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqBjn-0008Fm-LJ
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 10:12:19 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2ba24f1d-4dd8-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 11:12:18 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id C2F551FDF2;
 Thu, 25 Nov 2021 10:12:17 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6579013F5A;
 Thu, 25 Nov 2021 10:12:17 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id /HJcF4Fhn2GeOQAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 10:12:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ba24f1d-4dd8-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637835137; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=0vrsJyHqAf0VPKvN1Qm854AXs/8VxEbgwBsplaex3Ek=;
	b=ECbU96dmiGQ26b73kdUWtRyUx1gV1kqRoyVXMT8rwlK4PrYdnbJdmdU3ROBugjMJTfZpp/
	FnBVmwGuhi8JH5UPXzRR9YGLIbnNhBkfw7BYXdN4rLHJeF2kHopjH5N7CVIPhCl1Mbg+J7
	2Ne1GvYx+to1P26l/jyDL0mW4JUpXtQ=
To: Jan Beulich <jbeulich@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
 <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
 <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
Message-ID: <fffb492e-f570-069b-7355-c00f48215dad@suse.com>
Date: Thu, 25 Nov 2021 11:12:16 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="BMq97xd1gwZDcu0fOrKz0DEba2MUfDChw"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--BMq97xd1gwZDcu0fOrKz0DEba2MUfDChw
Content-Type: multipart/mixed; boundary="D2DEYDoR4l4kgRRy1ea5qKHZPbSF3rMZw";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <fffb492e-f570-069b-7355-c00f48215dad@suse.com>
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
 <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
 <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
In-Reply-To: <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>

--D2DEYDoR4l4kgRRy1ea5qKHZPbSF3rMZw
Content-Type: multipart/mixed;
 boundary="------------3C8080D34419B44099F0BF33"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------3C8080D34419B44099F0BF33
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 25.11.21 10:38, Jan Beulich wrote:
> On 25.11.2021 07:55, Juergen Gross wrote:
>> On 22.11.21 16:39, Jan Beulich wrote:
>>> On 14.09.2021 14:35, Juergen Gross wrote:
>>>> @@ -103,6 +104,43 @@ void domain_reset_states(void)
>>>>        rcu_read_unlock(&domlist_read_lock);
>>>>    }
>>>>   =20
>>>> +int domain_get_dom_state_changed(struct xen_control_changed_domain =
*info)
>>>> +{
>>>> +    unsigned int dom;
>>>> +    struct domain *d;
>>>> +
>>>> +    while ( (dom =3D find_first_bit(dom_state_changed, DOMID_MASK +=
 1)) <
>>>> +            DOMID_FIRST_RESERVED )
>>>
>>> As per my comment on the earlier patch - the use of DOMID_MASK + 1 vs=

>>> is quite puzzling here.
>>
>> Okay, will change that.
>>
>>>
>>>> +    {
>>>> +        d =3D rcu_lock_domain_by_id(dom);
>>>> +
>>>> +        if ( test_and_clear_bit(dom, dom_state_changed) )
>>>> +        {
>>>> +            info->domid =3D dom;
>>>> +            if ( d )
>>>> +            {
>>>> +                info->state =3D XEN_CONTROL_CHANGEDDOM_STATE_EXIST;=

>>>> +                if ( d->is_shut_down )
>>>> +                    info->state |=3D XEN_CONTROL_CHANGEDDOM_STATE_S=
HUTDOWN;
>>>> +                if ( d->is_dying =3D=3D DOMDYING_dead )
>>>> +                    info->state |=3D XEN_CONTROL_CHANGEDDOM_STATE_D=
YING;
>>>> +                info->unique_id =3D d->unique_id;
>>>> +
>>>> +                rcu_unlock_domain(d);
>>>> +            }
>>>> +
>>>> +            return 0;
>>>
>>> With rapid creation of short lived domains, will the caller ever get =
to
>>> see information on higher numbered domains (if, say, it gets "suitabl=
y"
>>> preempted within its own environment)? IOW shouldn't there be a way f=
or
>>> the caller to specify a domid to start from?
>>
>> I'd rather have a local variable for the last reported domid and start=

>> from that.
>=20
> Well, it probably doesn't matter much to have yet one more aspect makin=
g
> this a single-consumer-only interface.

For making it an interface consumable by multiple users you'd need to
have a per-consumer data set, which would include the bitmap of changed
domains and could include the domid last tested.

As one consumer is Xenstore, and Xenstore can run either in a dedicated
domain or in dom0, I believe a multiple user capable interface would
even need to support multiple users in the same domain, which would be
even more complicated. So I continue to be rather hesitant to add this
additional complexity with only some vague idea of "might come handy in
the future".

>=20
>>>> +/*
>>>> + * XEN_CONTROL_OP_get_state_changed_domain
>>>> + *
>>>> + * Get information about a domain having changed state and reset th=
e state
>>>> + * change indicator for that domain. This function is usable only b=
y a domain
>>>> + * having registered the VIRQ_DOM_EXC event (normally Xenstore).
>>>> + *
>>>> + * arg: XEN_GUEST_HANDLE(struct xen_control_changed_domain)
>>>> + *
>>>> + * Possible return values:
>>>> + * 0: success
>>>> + * <0 : negative Xen errno value
>>>> + */
>>>> +#define XEN_CONTROL_OP_get_state_changed_domain     1
>>>> +struct xen_control_changed_domain {
>>>> +    domid_t domid;
>>>> +    uint16_t state;
>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_EXIST     0x0001  /* Domain is=
 existing. */
>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN  0x0002  /* Shutdown =
finished. */
>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_DYING     0x0004  /* Domain dy=
ing. */
>>>> +    uint32_t pad1;           /* Returned as 0. */
>>>> +    uint64_t unique_id;      /* Unique domain identifier. */
>>>> +    uint64_t pad2[6];        /* Returned as 0. */
>>>
>>> I think the padding fields have to be zero on input, not just on retu=
rn.
>>
>> I don't see why this would be needed, as this structure is only ever
>> copied to the caller, so "on input" just doesn't apply here.
>>
>>> Unless you mean to mandate them to be OUT only now and forever. I als=
o
>>
>> The whole struct is OUT only.
>=20
> Right now, yes. I wouldn't exclude "pad1" to become a flags field,
> controlling some future behavioral aspect of the operation.

Right now I don't see the need for that, see my reasoning above.

>=20
>>> wonder how the trailing padding plays up with the version sub-op: Do =
we
>>> really need such double precaution?
>>
>> I can remove it.
>>
>>> Also - should we use uint64_aligned_t here?
>>
>> Yes.
>=20
> But you realize this isn't straightforward, for the type not being
> available in plain C89 (nor C99)? That's why it's presently used in
> tools-only interfaces only, and the respective header are excluded
> from the "is ANSI compatible" checking (memory.h and hvm/dm_op.h
> have special but imo crude "precautions").

No, I didn't realize that. I just looked how it is used today and
agreed I should follow current usage.

But even with using a stable interface I'm not sure we need to make it
strictly ANSI compatible, as usage of this interface will still be
restricted to tools.


Juergen

--------------3C8080D34419B44099F0BF33
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------3C8080D34419B44099F0BF33--

--D2DEYDoR4l4kgRRy1ea5qKHZPbSF3rMZw--

--BMq97xd1gwZDcu0fOrKz0DEba2MUfDChw
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGfYYAFAwAAAAAACgkQsN6d1ii/Ey9k
rwf+NigRrEb7E5TGPO0+vdeSFjLlJgkgHDm7L6QxiWKpt0ZhXysCO99gZYwRZxy4MSe91m6eGXz9
HrJGunNpHPiHtD1Rz4FlctR03LxhKI0TvqOCQwR9DDRZs0KlMuWD3m5ZctqSfjpNOri0jqAYy6Ck
XoaMS289y8Awn5a5gWgcucBx+N2vNShV5t3HwS4nXvRhE41jrpRjGG2Ta9IDc7rV7V7qGKbhqN+y
m+xetApGsjiTux7A9SmwLrqJKr+kaQf0U+6Qg291QZfSZZ73JZJ9pMBCKXa+V++Umkkdi/KRHXEO
HDoz+LjKcZp08ljGLQ7FZlavz/alx04rD9+Noj44cQ==
=4PKS
-----END PGP SIGNATURE-----

--BMq97xd1gwZDcu0fOrKz0DEba2MUfDChw--


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 10:15:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 10:15:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230820.399013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBn8-0000Y9-5z; Thu, 25 Nov 2021 10:15:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230820.399013; Thu, 25 Nov 2021 10:15:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBn8-0000Y2-27; Thu, 25 Nov 2021 10:15:46 +0000
Received: by outflank-mailman (input) for mailman id 230820;
 Thu, 25 Nov 2021 10:15:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1dIP=QM=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mqBn6-0000Xu-F6
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 10:15:45 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a3dfcf9d-4dd8-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 11:15:41 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3dfcf9d-4dd8-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637835341;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=PeokghDe/5CMURbxAE1HEp7nxdNS643CxBIXgJ4axro=;
  b=SpGBXkXnwjMZgFwVogygRsO2CmA4LDD5sgveA+w3mVJ3UK1n2THRfNZG
   gWy0fTM/Iyf6Yo19+AUz/G6JTUt2JP5OSuJRmJ7RyrX297gDgpcC6Mp/s
   RGNofWsD8V06hFRseumwnA+QI/9jO43/l4Z4o8onFVV1ggmMI6PXdCpDT
   Y=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 7Gh0ZZqNqWn87HreQ9X7CS8oaTckiLM/YhwygK6nm6mWncNqkk0ksIyrTXzXA6jPRc+uCugwJU
 2+5K1jvlcH85M65sgkdNy5HBdVRpwGyaU/dTx8djelMu3uLOE2iEi7pcEjhPT/lAnIPf6IP0K5
 PIbNY4IECufqksHZOtZ09smmWFhmuVOdft5aRCyIALMRAp06wU4GV4AQbBxwPQIYY5oBYTZ4CF
 rfl7OfPH4GhoKn/+cAjPOp7XlhAyR98lf5mafCoMIkNce2CAiD87462P+RGwaOjx5oPTz2n3N/
 INvrj6jl0R5pEskzppS86wWJ
X-SBRS: 5.1
X-MesageID: 58566233
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Czk8UaBveOVj0BVW/87kw5YqxClBgxIJ4kV8jS/XYbTApGkm12RUy
 WAYXmyFOPaPamX2Lt1+YNu19h5Q7JDQyNJiQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540087wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/yBeOuop/9
 NR3uLOgUzwNFfHNnctFXEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvWXu4ECh2xYasZmJdCAR
 fg/dRRVYhHpZQ0QNgcvOq5lg7L97pX4W2IB8w/EzUYt2EDS0w5ZwLXrKMDSeNGBWYNShEnwj
 nLL+SH1Dw8XMPSbyCGZ6TS8i+nXhyT5VYkOUrqi+ZZCglee22gSAx0+TkagrL+yjUvWc81bA
 1wZ/Gwpt6dayaCwZoCjBVvi+ifC50NCHYoLewEn1O2T4un25CPDCFQFdDNueMYdkORqRDkFj
 lDcyrsFGgdTmLGSTHuc8JKdojWzJTUZIAc+WMMUcecWy4K9+d9u13ojWv4mSffo1YOtRVkc1
 hjT9HBm74j/m/LnwElSEbrvpzu37qbEQQcujuk8djL0t1gpDGJJimHB1LQ60RqiBNrGJrVil
 CJd8yR70AzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlbJm65M
 B6J51I5CHpv0JyCN/EfXm5MI55ykfiI+SrNCpg4keaikrAuLVTarUmClGab3nz3kVhErE3ME
 czzTCpYNl5DUf4P5GPvH481iOZ3rghjlTK7bc2qlHyPjOvBDEN5vJ9YaTNimMhit/jayOgUm
 v4CX/a3J+J3DLejP3KJqNFLdjjn7xETXPjLliCeTcbaSiJOE2A9Ef7Bh7Qnfo1uhaNOkenUu
 Hq6XydlJJDX3BUr8C2GNSJubq3BR5F6oS5pNCAgJw/wiXMifZyu/OEUcJ5uJesr8+lqzPhVS
 fgZeprfXqQTG2qfozlNP4PgqIFCdQiwgV7cNSSSfzViLYVrQBbE+4G4c1K3pjUOFCe+qeA3v
 6akilHAWZMGSgk7VJTWZfujwkmfp38YnO4uDULELsMKIBfn8ZRwKjy3hfgyepleJRLGzzqc9
 gCXHRZH+rWd/95rqIHE3PnWoZ2oHu1yGlthM1PatbvmZzPH+meDwJNbVLradz7qS26pqr6pY
 v9Yzq+gPaRfzkpKqYd1D51i0bk6u4n0v7ZfwwlpQCfLYlCsBu8yK3WKx5AS5KhEx7sfsgqqQ
 EOfvNJdPOzRas/iFVcQIisjb/iCiq5IymWDs6xtLRWo/jJz8ZqGTV5WbkuFhyFqJbdoNJ8on
 LU6s8kM5g3j0hcnP75qVMyPG7hg+pDYb5gaiw==
IronPort-HdrOrdr: A9a23:e7Nz3694lOCzdRNbvTtuk+FCdb1zdoMgy1knxilNoENuHfBwxv
 rDoB1E73LJYVYqOU3Jmbi7Sc69qFfnhORICO4qTMqftWjdyRCVxeRZg7cKrAeQeREWmtQtsJ
 uINpIOdOEYbmIK/PoSgjPIaurIqePvmMvD5Za8vgdQpENRGtldBm9Ce3im+yZNNW977PQCZf
 6hDp0tnUveRZ1bVLXwOlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJr3CQKR0BsyWy5Ghe5Kyx
 mIryXJooGY992rwB7V0GHeq7xQhdva09NGQOiBkNIcJDnAghuhIK5hR7qBljYop/zH0idmrP
 D85zMbe+hj4XLYeW+45TPrxgnbyT4rr0TvzFeJ6EGT6PDRdXYfMY5slIhZehzW5w4Lp9dnyp
 9G2Gqfqt5+EQ7AtD6V3amIazha0m6P5VYym+8aiHJSFaEEbqVKkIAZ9ERJVL8dASPB7pw9Gu
 UGNrCT2B9vSyLYU5nlhBgs/DT1NU5DWytuA3Jy9fB96gIm3EyQlCAjtYgidnRpzuNKd3AL3Z
 WCDk1SrsA9ciYhV9MLOA4we7rFNoXze2O4DIuzGyWuKEhVAQOHl3bIiI9FkN1CPqZ4iqcPpA
 ==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58566233"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WOuA13Jr4paky7+7fUA6yKvSfSKFM9MQrVot3vU8XMSaCsr2r/hbAOBnjdBvsmPbcHeQYQF63iXmjPQqlTLYpYFXsG2pMwVQa9i7fpW5CBvm0svy3g/xDeBihRi32n5TS1Fdl6yo7H5eVJGjGKlfanPrcW5y0SY1JtOkaAEhzG0mc3vQfAFxAFIrrG99fBJuwxKcHEt4V1UtKFsW5vWO84QKlqmeUCf6N2OhRvcMTu/DcVpeFu/QbkWJaefaHihG9TPWSH+50J7EVbzftjyZxg/xtcFdES6zztk/3mQJmxZWJLoJ9p3Hu0/4YCvFm+NRQdnNNrrVbGoEsfcGFtYsNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LNpL+w2RpxEXzvDwYtJ7L7SGl0DONk0ZKpymlGx9Wns=;
 b=i6Qxy9jG6djJSu+G+dI/cu/9OHP54Cm0bCq6CUo7VaqX2CWxGjQCkhMzXXKdqSxpVyQE+mPBEbT8isVVzagQ2nSursIzPh99ogDLUEfxm7Iw1ezu7g0jBAy14bSuiwIJzhzDAiLvVvDW00QSZwuRB6E2OVZpXrtjbcrmLcXF/q/6XSmhn7019rkvZxwToUhVJtU38spcMkbkQv5yaiMEEkLH4xsm7+umogrSXOrtKBwKXLmgMLKzyhAAGvGYMzQSIEEyQ9TAdecD0b5ZcVEvhjb0D/kxLupKYE511AkRalxFNA/A4XsZnKAcMGgrr1TfdLMTsEVVHAiT5cJhbQWrfA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LNpL+w2RpxEXzvDwYtJ7L7SGl0DONk0ZKpymlGx9Wns=;
 b=kqknSd5+3DQ+Ze6NEMHdf3dI95yO0WHve2j2ep7qiloQGiXwVebsCHFlX4+Qu46ovlIUgi6vo2Z4Lm1mKy4DA+q5BMN/GqosAHlbV8meqvP3ixSRre9aLfTXjIKcbvnoLUaEJUMvuVVF0YahjNZyg6674xUs9UGrTydV2KpQZVg=
Date: Thu, 25 Nov 2021 11:15:30 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian
 Jackson <iwj@xenproject.org>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Message-ID: <YZ9iQg4Hoo5Y6kyv@Air-de-Roger>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <cbe791cc-848f-8511-6974-2c9e300ea66b@suse.com>
 <YZ9WSfy3pYp8uzqI@Air-de-Roger>
 <614efba0-a3fb-7ddf-1fe9-d4fe2feb21f2@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <614efba0-a3fb-7ddf-1fe9-d4fe2feb21f2@suse.com>
X-ClientProxiedBy: MRXP264CA0032.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::20) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: edde0f13-c2a8-424e-13d8-08d9affc8629
X-MS-TrafficTypeDiagnostic: DM6PR03MB3578:
X-Microsoft-Antispam-PRVS: <DM6PR03MB3578E45E1AFD62CDA81A69AC8F629@DM6PR03MB3578.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: UwisHRkN9me5bqiL3BF2+1ZgpT2SqfyVfts/knxrV09I0jE7Opj6OhyVsmrZcXJ+6FkzWjqLYzQh17YcOqWB48zaHLJ1IdG82NmFPR4ndhZquYYQbCoiTVYGN/6E4K6axgaXD3WlYi9DUPpy5sYSiuELE1w42YowBfyhinBiVd/tMPGaDquyd9yhXT4sg9TBf9KGssaDaRQB2NiKivz3DLyMYjcEQg85a2dlB9vz3Z3tH70P3ZaSjkbcefBoEET1CD7DzCW1PSvEUXwP4+CEU3mwQMSSsxdtgJ3L1OKgyypCSH4MggUKUmk0xYLvSJS16F4F/TpAxX98YTz8FBPKWl3jg/xSMBvk78EH+w14WCA9RHA2xyrSHDizJzH9drCs3vKiu/A5Qw4LfLLaIlGMEqL4MPqVod7TerQy9viBZa9HF/j2nU/fVhS/InhKB566quZiY4QBdZ77rskcqBU20utHRa+6TVvcSTshJuOeA9EjWmBIJcoWVKJXq35PRvP1TYQftXW5OkWiuG3Wdl7tr70ldlxJXbigNnK41Z+p5vL4ha/vxXJ3KwSqoeMqaXrTtayUYUqU7rx97i/NMDFQqMNZAxmIlUci/oXhoV3MSKtdMBDtZt/skQC0e4L8ADbjS9ebNK5u11vwf5YKsTQO7YwxoPnMG94a2Rd+tl6R3WOFkVD/YHjqpPnwHTOJVmZmKgbGbfBdirfNYdzPj4AOzzTYxpeVAR5bAKDro5JVMqk=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(83380400001)(86362001)(33716001)(508600001)(54906003)(316002)(8676002)(9686003)(966005)(66556008)(66476007)(66946007)(5660300002)(8936002)(6666004)(85182001)(82960400001)(956004)(6496006)(186003)(4326008)(26005)(2906002)(38100700002)(6916009)(6486002)(53546011);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Qjc4cXg3WVd5VExnZDdwcytMTDRtSXEyVkJCamg3QjdVR0Y4R21DQVFmcW1P?=
 =?utf-8?B?UEp2SGZxeUN1S3JnN2R5aGVZZ3J6d05Wd1VEVld3SGp1aHhSUS9BdHVTV1Fl?=
 =?utf-8?B?SUhPcktFY2tEcUVSckRWZDhyN01FZEJRTGNSWXBYbElZZm8yeHp2bXNLeEFu?=
 =?utf-8?B?RlFGaXhBSFBkck5XSytpdi94b1Q4RGZxOTdjcTVrNDJBRGErY0REaVREMUNv?=
 =?utf-8?B?QmRkNUx2R2EwVUJsS2gxWkxDM2MwaHpHVkxDL2JaZTJqa0lnZEs3aUVnY1F5?=
 =?utf-8?B?M1I1TUFSVjBWQjhxQ2ZYU0o0VXBYWExDaFVwdkJNd3J4a3Y3Y0RBMitZMEo1?=
 =?utf-8?B?djkyd3I2WGRnOHoyb3FHM0g1Vk1QQlJwZ3JVOFNISXBpcVgzZmFJK05TazZ1?=
 =?utf-8?B?QUU4NDlIQy9lZCtmaW1zY0U1UzIrcVNQOW9HMW50OG80b3VlaFZaaDZiYVRx?=
 =?utf-8?B?RHdJVW1tN21Wc21tR0NMV05NeEFJMzdldHQxMGZZcDJ3VjlScXR1cTYrZG40?=
 =?utf-8?B?SWp4S3B1RmpUWXd0MndkTUtZMG1XOXFhblRUbVlwMEF5ZkhDMkxJSGxvTmF3?=
 =?utf-8?B?SHUzL2hJMzBDMkhBZjM0QlowQ0tUT3ZMQVE2ejZlWlQwK0p5Q2ZmSUN0alV0?=
 =?utf-8?B?d1NXR2thU2Zmbng3VWNkTHcrOE9WdDM3K3BKUStlSlVSSTlsSHd6cllyVmJq?=
 =?utf-8?B?OUhPQXJBV0dzcVpRTWRsemdzL1JLeVBXa3BRUWpBdnNOSG9CRER2dllMUnB6?=
 =?utf-8?B?VHFnT1dmbEh2N2NoS05lVWdFZWRRK3ZXbHlmOXROanBjMGFlSjhkMFZHeFBJ?=
 =?utf-8?B?cVFEZzM0Z2tnVjBFQXJ6V3FqZ0NJYldTTW4rWTVjWTlObjlIMTZuSnorYURV?=
 =?utf-8?B?WS9sYmhjc0ZOT0wvcExCM0p0RFcyQmxSZFlRRlAxL0EyZzZJTXNNME96Qmhr?=
 =?utf-8?B?YUdDZjhkWjVxRU11TVlLVWJvVjBaSXBBS05WTHVpZ25BVjQvT2ErQjhkZHRT?=
 =?utf-8?B?NVB0cGlOWTlOOHd5WXBON1Qvd0wzWlBGZVczdC9IZ1ZYNzJpY0JzZjI5dk50?=
 =?utf-8?B?UnUxanRLU1hOVnc1VkY3dWo4NUM5RDVoNTF4NGc1bW5BejEzcEJQWGZQRHBn?=
 =?utf-8?B?cG9FblBsajVEZHQvRFIzQU13UXk0SG9JaGMxWTJna2RuYU45M29WZ2oxQ0pO?=
 =?utf-8?B?Q2JwNmhOSC93SFl3MFJtZ2l5VVJCK2NXNU5FWkZRNVBHOXJEV2R0OEZkT1lJ?=
 =?utf-8?B?K2t3ajQwaWtMM0FxWjRsbjlLZXZNQklFYzJ2RXRXVnpZOG5ubEE0RFpwUm1L?=
 =?utf-8?B?U3g4bTZHT3RYRDZDU1V2MHY0U3BwQit0UTg1KzgyT1JiZDNweEpEZUljMVR2?=
 =?utf-8?B?MEwycndVaGtOQ2ltRUVZVVlKRnYyd0tBd1JxZjhQeFh6eG1iUVRVcVArcm4z?=
 =?utf-8?B?ZzduN1NnVEtGbVpnS1ZjRndNbEpyc0d4cnI4WEV2czR4djJ3UWlkZUdGNjhH?=
 =?utf-8?B?cnZEN2FwZk5iQks3WnMrbGFPVjNmSUNtRCtCVlZIM3ByNmVJOGhWeGhlRjFX?=
 =?utf-8?B?aUw3RFpDZHBkNFpBclkyc2MzWlpySVA0bmJGbk9vaU1kaDBsUzNXQyttajQ5?=
 =?utf-8?B?WjU2eGlNWHd3aVpxUW4xQ2l2c2tWYkZPc3FNejlCK0JzaElFYS8zWXl5ZGZP?=
 =?utf-8?B?WmJOcGZXN2dMOEVXSmJZVkVMYzBGS01ZajdCaTA4MjBYWS9KcFRTL2c1V2Er?=
 =?utf-8?B?RVQvSExIN3c5S1psZE8vR2F4ZFJRZUQxN3VGYjBuYjVPZmlKMUJuS01NMUdI?=
 =?utf-8?B?dEhUTUFsRzR3VmcyYzVIZ1hHS0RoWmdxQjYrdWwvM0ZzakNVZkNOaU94Ukxm?=
 =?utf-8?B?L3JVZ2p1YTM5UWFUcUUyUHhhZDVwK0ZjSGNIekVIN1pvR2k5TlVDZmRDMUpr?=
 =?utf-8?B?aXBQcTU3OERpUXdNWVlIbjZXYzBncDFGWThtQml3WjhvN3lYdDg2RTJVZDF4?=
 =?utf-8?B?eW4rK2QwK2lBeVlSQXNHUk54RjVYRFBBNndPOU5XTmlPb1owWFZoMFdFSk9u?=
 =?utf-8?B?UEJvNlp3VkVrc2hta2FkM3JNSVl4bGZrUHQ2QVlWKzJ0emV4bkdUb1lCdVh3?=
 =?utf-8?B?UWZONEtvNTFLd3c3eWJjVDdIa1J0d28vZFo2UVdjMUR2RUxnT3gxRm9yUk9t?=
 =?utf-8?Q?vDtk4MGKujhQBkIWd1lFEnM=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: edde0f13-c2a8-424e-13d8-08d9affc8629
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 10:15:36.8129
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bXZV1SHol3KRj/eFAavfFDzrDod7sZzIwDgJwX0b/kovDNMMY0ll4y08QZ04O2m70n/dfFZGHIh/6QEyyEnUwA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3578
X-OriginatorOrg: citrix.com

On Thu, Nov 25, 2021 at 10:52:12AM +0100, Jan Beulich wrote:
> On 25.11.2021 10:24, Roger Pau Monné wrote:
> > On Thu, Nov 25, 2021 at 09:57:31AM +0100, Jan Beulich wrote:
> >> On 24.11.2021 22:11, Andrew Cooper wrote:
> >>> OSSTest has identified a 3rd regression caused by this change.  Migration
> >>> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
> >>> fails with:
> >>>
> >>>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
> >>>   xc: error: Restore failed (22 = Invalid argument): Internal error
> >>>
> >>> which is a safety check to prevent resuming the guest when the CPUID data has
> >>> been truncated.  The problem is caused by shrinking of the max policies, which
> >>> is an ABI that needs handling compatibly between different versions of Xen.
> >>
> >> Would you mind pointing me to the flight which has hit this problem? I
> >> don't think I've seen any respective failure. I also don't think I've
> >> seen any respective discussion on irc, so I really wonder where all
> >> this is coming from all of the sudden. It's not like the change in
> >> question would have gone in just yesterday.
> > 
> > It's from a pair of newish boxes that Credativ and Ian where
> > attempting to commission yesterday. Since the boxes are not yet in
> > production Ian wasn't sure if the issue could be on the testing or
> > hardware side, so emailed the details in private for us to provide
> > some feedback on the issue. The error is at:
> > 
> > http://logs.test-lab.xenproject.org/osstest/logs/166296/test-amd64-amd64-migrupgrade/info.html
> 
> I see. Quite lucky timing then.

Indeed, it was pure luck that we got this just yesterday.

> 
> >>> Furthermore, shrinking of the default policies also breaks things in some
> >>> cases, because certain cpuid= settings in a VM config file which used to have
> >>> an effect will now be silently discarded.
> >>
> >> I'm afraid I don't see what you're talking about here. Could you give
> >> an example? Is this about features the flags of which live in the
> >> higher leaves, which would have got stripped from the default policies?
> >> Which would mean the stripping really should happen on the max policies
> >> only (where it may not have much of an effect).
> > 
> > I think there are two separate issues, which I tried to clarify in my
> > reply to this same patch.
> > 
> > Options set using cpuid= with xl could now be rejected when in
> > previous versions they were accepted just fine. That's because the
> > shrinking to the policies can now cause find_leaf calls in
> > xc_cpuid_xend_policy to fail, and thus the whole operation would
> > fail.
> 
> Okay, this could be addressed by merely dropping the calls from
> calculate_{pv,hvm}_def_policy(). Thinking about it, I can surely
> agree they shouldn't have been put there in the first place.
> Which would be quite the opposite of your initial proposal, where
> you did drop them from calculate_{pv,hvm}_max_policy(). A guest
> migrating in with a larger max leaf value should merely have that
> max leaf value retained, but that ought to be possible without
> dropping the shrinking from calculate_{pv,hvm}_max_policy().

I won't argue it's not possible to do that without dropping the shrink
from calculate_{pv,hvm}_max_policy(), but given the point we are on
the release we should consider the safest option, and IMO that's the
revert of the shrinking from there in order to restore the previous
behavior and have working migrations from 4.15 -> 4.16.

We can discuss other likely better approaches to solve this issue
after the release.

> Even
> leaving aside migration, I guess an explicit request for a large
> max leaf value should be honored; those possibly many trailing
> leaves then would simply all be blank.
> 
> > There's another likely error that only affects callers of
> > xc_cpuid_apply_policy that pass a featureset (so not the upstream
> > toolstack), where some leaves of the featureset could now be ignored
> > by the guest if the max leaves value doesn't cover them anymore. Note
> > this was already an issue even before 540d911c2813, as applying the
> > featureset doesn't check that the set feature leaves are below the max
> > leaf.
> 
> If this was an issue before the commit to be reverted, I take it
> the revert isn't going to help it?

I think the commit makes it more likely to hit the above scenario by
shrinking max leaves.

> In which case this information
> is interesting, but not applicable as justification for the
> revert?

As said above, while the commit at hand is not introducing the issue
with the featuresets, it makes it more likely by shrinking the max
leaves, and IMO it's a regression from behavior in 4.15.

Ie: options set on the featureset on 4.15 would be exposed, while the
same options could be hidden in 4.16 because of the shrinking to the
default domain policies, if the user happens to set an option that's
on an empty trailing featureset with a tail of zeroed leaves.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 10:19:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 10:19:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230826.399024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBqz-0001Ct-Mp; Thu, 25 Nov 2021 10:19:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230826.399024; Thu, 25 Nov 2021 10:19:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBqz-0001Cm-J3; Thu, 25 Nov 2021 10:19:45 +0000
Received: by outflank-mailman (input) for mailman id 230826;
 Thu, 25 Nov 2021 10:19:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqBqy-0001Cg-8j
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 10:19:44 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3445cd1a-4dd9-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 11:19:42 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2056.outbound.protection.outlook.com [104.47.0.56]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-24-jg5YiZJIMI6wved2mEJb9A-2; Thu, 25 Nov 2021 11:19:40 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3933.eurprd04.prod.outlook.com (2603:10a6:803:24::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Thu, 25 Nov
 2021 10:19:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 10:19:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0094.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:8f::35) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.21 via Frontend Transport; Thu, 25 Nov 2021 10:19:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3445cd1a-4dd9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637835582;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jqsdztQilpudKGCZ0lO1rIe0NgvFa9EMCcZ/0W1o0wc=;
	b=XcpdzwyncyEVRsRPl8PH7qmzjn3bFai6fmcYm+YH3g5IIeuucl+l/uhAXrve1XBQ1T599X
	bVHb7tX/bQEylRNeYfnyO7+AznfwPrxVL6ybk+Ve1pQaoLNK3SrXsPuseMOPtIKEnOYMA5
	r6fDiCwKlR9umfgOz5xnGSZszZ7e9ZA=
X-MC-Unique: jg5YiZJIMI6wved2mEJb9A-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=T5gv0WWGL6JmW00dmn0JYgLcH9T6xG2p69DUsCxMAeyFRM3FhemJ3GrQ55zdLmXpmmOM4f66nlgg9b0nakchBG5cel8GUSNsoH6U9nXWVG58MYoijXTOp20ozQuXaUljfRtWFWyLSVj2sFy6VdAPLuYu2LEDOfr2YTFR/eus1b1nFukuGeSjBaPZtNKTlHxCLihgc0pwJup7+CGhB6Loc5K5Kobg4uEQFSYkKjGk0hXBb0rscwpKX9Q509KiMJbfZ3oJH+Kk+4w8M3Vc/L534mY9dATo3TTFMb9uXtWg8pg1EC70ZIek7/BYpIfk8VtaIysltKj30Hyk+i8hxxk9IA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jqsdztQilpudKGCZ0lO1rIe0NgvFa9EMCcZ/0W1o0wc=;
 b=mPYYNgFUhglOtoAj5NkiE1IGWXigzR7uvLVFm4zOphuPzaMu+IHvrXmwFFh4nH39By6fJXQsvfj7ZZ9fa+/THJoUd/gWOALJGSceD3TP9jO0zq9vr+6DOZVRT+Lu/a/ElXVLrhEGFVOFAxgUUq4rrWDRmsSF4rYh2z3Y2dAGTClmgeIjYG0ktnUmTFubk4meObf+So6f0pH/xrnntmGMwCnVTPzapg2T6E2vp4vaLQP/3CtZ/MhTxr//u604LZKoO3xD7RPnu/+DOh2SHLfau8/idOvRAd9VyEnbgNUTDCcvrsOpvXjGdTZAGy8xLUlOBtp2Jz6e+hSjPsjYp7x0oA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8512f6a7-0b79-8fff-49fb-80c3d8a7a436@suse.com>
Date: Thu, 25 Nov 2021 11:19:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
 <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
 <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
 <fffb492e-f570-069b-7355-c00f48215dad@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <fffb492e-f570-069b-7355-c00f48215dad@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P194CA0094.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:8f::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 15dba0ec-bfd0-42e6-7368-08d9affd14e3
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3933:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB39337BF1548A740CF2FE816DB3629@VI1PR0402MB3933.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	M5rY91JGRMjqRcZNGibsHpPFnFR6NuyuL0z8fQ81iHpkyS8qwa2/ZbFKEy9ZPywMJ5SHYDkvp+Rh8fRA4Xi6RqtaaSLzDG2NypvnNfzk6wmZ5us8/BvoVwk9auThTWvbauTkgmA0MQZ6kHOp1pUune6qLe8bNSOGolwwRUrFzUucFWNtNuECCTxvTIil1hS5hScRAAMLtA4NitU6UeS9t1fk5BiQaRXoK8nj+xO88Cyey9g0ehtXLJQqNp14w+/IxNRIXPmGdP03ksmKZEOddRYManwhYxo31mKoc6WXDiTBILbNScVrpBLPv33QXBgXKFDkSSB0P1gtu9T8OxrU+UGXuBJxwXaYXuu+aoQrnl9A3gVy+wslkM/IaJQkF5UZtqjXpW/u+y+zmulUa6qBYVwLuXoviQfR7xZREgj7CiKcZKhyrs12Er4ZIrettc7GuwSgvVSZYBAERUopFDzQIAyFlYh7QW6YLkFRdV1rWpgInrSJ4/4Zqy8+a6wgs4jHczPMhTHiVX07w7twx3avnjPnsmSVZpuE1Jg63+eblla7JNuiSqilkJAZIX1NJigHzpAI2R4QN1nxknrOLBdd19G1Ltwrb6bEBt+CEuYeQhWBLAd2Aqoh5FADrqBxXcIiWnEfUQMoJg/bR01hv3cMfc6ckf/jKz1nAN0ROuLejyve/+K5J4NO5IbdWgZJOjJJpWlGZmWAcMizJQRBvVNIu2OzDspJxgrEULrqx4Id1lk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(956004)(2616005)(26005)(316002)(36756003)(38100700002)(86362001)(31696002)(16576012)(186003)(83380400001)(53546011)(6636002)(37006003)(54906003)(4326008)(31686004)(66946007)(8676002)(6862004)(66476007)(8936002)(66556008)(7416002)(5660300002)(6486002)(508600001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RWs4aGNIYUdlaU9HVkdiMlFWbFNTV05iMURKZkxqdDE4WFVqbkp5WlY2RVZy?=
 =?utf-8?B?emVqajRHVDFwSXRZK1d1clVvaWhRcmpNKythdWU3MGJ3bVZKYUw5UmlUV1pi?=
 =?utf-8?B?QnVtQWYzQ0xBVE9iTFFjY1BMTmNsTkl0TDRiV0NMSjVwZjRyZDNiZzhuM00v?=
 =?utf-8?B?djZ3YzBZZDF1QzhMdW5ocEt3VFZMRDVGcVN0WS9QVWFocElXcVpFeDh0YnZX?=
 =?utf-8?B?a2pyRU4xS1hEdnZicDlmaDIyU2ZzZjVCUnJQamdXSnViVHYxWE5zNkVzUE5I?=
 =?utf-8?B?RUJLcFBxTWJXT1gyWnVqKzZKZGFZUDRkRGtxU0gzQk1MMlpXVERjeHRlM3Jz?=
 =?utf-8?B?Mm5kNzRSOXdWcHBPdkNoTmsvOVdhdE1RWDJmRjZBMlB1emsyQ05Yc2RBa245?=
 =?utf-8?B?WGZjWW1raE5LeUUweHVjWkJySXB4V21KRVdlZUtDOStlWlhXNytQTWJudGtV?=
 =?utf-8?B?QU1Nc0xoWUR4VS9LVmpSM0JoVUVmT09rRzk2T2NsZFVJYWV5TXZVUUtSRXBr?=
 =?utf-8?B?cWlVME5MMWtwTUZnTTZFOUxGSGdUOW5KQmEvQ3JUaENZYUVjTjdScWQ1elIv?=
 =?utf-8?B?ZXJjU2pWY1U0WlFkUVVmV05MdWRyU3dKbWhFc0tYT2FUT1R1SzFpR3dMN1JY?=
 =?utf-8?B?NE1JUktGS2doNmhuSTFCWnJqV0NmTHdtZFRGOUlacC93RllwcEV3RnI4UG8v?=
 =?utf-8?B?TC8vc3B0d25WVU8rZ21CM1J4K1ZoVHY2Uy9PdlZwYlh0bjA4RW5pbkZsVEFN?=
 =?utf-8?B?OGEraC9mQzlIc2tuNUQ1ZWwvYzBHVEV2VkxsTkNMMnVOM2xjL2pNa09rSVFM?=
 =?utf-8?B?VmZ2YTVWYXBWb3BlcGkxQzJQdFRnZkZLOWs5ODhhK1gxdDVxRS82VFl6V28y?=
 =?utf-8?B?ODRLZkcrZTdOS3NPTnI2NGFxNHAvYndWS2V0b3RYa3dpQnlaeDNycndjUVBl?=
 =?utf-8?B?U0R6Ti9GRTVRb2JhUWR2K09ZME1Ec094WkhxNDNrVUh4UVkxY3A0QzFQV3dv?=
 =?utf-8?B?VWxvZkQ5OGJ4c0FBKzJ4cVdNTnNXTHBrYVliQjAwU3Y5b3BwZVFGYzNmMWRT?=
 =?utf-8?B?WFJQZXZPL0lqcG8rYy9LTktGazZWemFqSGFiUCt6a1ZSbCtSbUpCYjlHUnJK?=
 =?utf-8?B?S2o3N0dGSnAyVWNHclNLQ29ubERmcHlPVVQ2Ni9FY0xzU3BTTDR4aTZGaEVz?=
 =?utf-8?B?TEtYazVSR1BBSXlJc2V3cmhsVTNDemJTa0l3L1U1OE83dnpobXhzUXE2dFBB?=
 =?utf-8?B?aGVpVzI4aG1abld1RWNSbEdWdjZ1eFVxSll0SWFEK2Q5SVpNdkNKekhzdCts?=
 =?utf-8?B?WkFQTlByMTJpWmFOOCt3aS9FRGprcENGTDk1QjZ2V2VVOElPNjdZV0V6S28x?=
 =?utf-8?B?dUhXQ1g4Zm11Qzl1dVk5Tjk5Mk15K1c0N2VKUjFqWmViZExweWg4Y2oxUjJq?=
 =?utf-8?B?UjgweEpnMjNwOWZpK1hnb1FFdklyeG9uNVRsdlRzOUVseTZnS1BSc2tvb2Vo?=
 =?utf-8?B?NGlFQk5nS3M5NlM5M25ER3NleFlkQmFVdmFEM1FUT1IxZHZobmljN2ZXMjc1?=
 =?utf-8?B?WjZ4a0tKbytWWkJjaUZOYTlFT0k1Q1MydzR1ZXVVeDViVGFlaVcxMEJ4bFJQ?=
 =?utf-8?B?Z3pRWjhTZEVzOUJPSUc4N3FNQUhES3prN3VRNTFCckhlRTdBL21yMzEzWm80?=
 =?utf-8?B?M3ZhS1BJSXUxcTRLQVozeUVFb2Iwa1VUa3huZlBOZXMzTmppVVBJZU9nc2Vh?=
 =?utf-8?B?Y1Y1QjdaU0hRRFNtV2E2bWZBNUZDQXp4SnhzQ3lmSVhOYk9pbVJRWEUrSHVQ?=
 =?utf-8?B?MEwzQ2R4T2NMTmV3ZDIvZWYrRVhpc0pQdnNtQVNNMmRiUlVXbndRUlZqMGRr?=
 =?utf-8?B?NmNPbDJPVDZ0ZVZCQkxhdTNFYXFlYzc2cEVjMTJGTTZaR1dGTjBmdVVqUTgy?=
 =?utf-8?B?c2hnUVQraVErNjk5N1VZcnlJVU04UUJHYWovK0k4ZWgwbXVVVEZ6RGdDcUh6?=
 =?utf-8?B?cjdqTTJUVDhVZDFOblpldit5RFRhVkRHUWNvcmd3WEFLbldXQnp5YTJ0eXVj?=
 =?utf-8?B?YkJFMEVNNjVsM2FUT1FsTDlzTU9qdlhFbURVdTlOWGFIblY4bmFXL01HeEZB?=
 =?utf-8?B?K1JUTGdpenlnc0VLbGVPK3VocmlLMkl1T010c09aUWxsejgvMFJCNGpmWVJu?=
 =?utf-8?Q?7wAHh4cLhoZ/VRMVn31ian0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 15dba0ec-bfd0-42e6-7368-08d9affd14e3
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 10:19:36.3152
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3NVTcrFjlVYC/c0KyUtudFAXKZQO2atypVHEfozF7o7X/ekiJn2C/fddUGedZKV0q20i+WX/okJAnjXd0Pc8IQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3933

On 25.11.2021 11:12, Juergen Gross wrote:
> On 25.11.21 10:38, Jan Beulich wrote:
>> On 25.11.2021 07:55, Juergen Gross wrote:
>>> On 22.11.21 16:39, Jan Beulich wrote:
>>>> On 14.09.2021 14:35, Juergen Gross wrote:
>>>>> @@ -103,6 +104,43 @@ void domain_reset_states(void)
>>>>>        rcu_read_unlock(&domlist_read_lock);
>>>>>    }
>>>>>    
>>>>> +int domain_get_dom_state_changed(struct xen_control_changed_domain *info)
>>>>> +{
>>>>> +    unsigned int dom;
>>>>> +    struct domain *d;
>>>>> +
>>>>> +    while ( (dom = find_first_bit(dom_state_changed, DOMID_MASK + 1)) <
>>>>> +            DOMID_FIRST_RESERVED )
>>>>
>>>> As per my comment on the earlier patch - the use of DOMID_MASK + 1 vs
>>>> is quite puzzling here.
>>>
>>> Okay, will change that.
>>>
>>>>
>>>>> +    {
>>>>> +        d = rcu_lock_domain_by_id(dom);
>>>>> +
>>>>> +        if ( test_and_clear_bit(dom, dom_state_changed) )
>>>>> +        {
>>>>> +            info->domid = dom;
>>>>> +            if ( d )
>>>>> +            {
>>>>> +                info->state = XEN_CONTROL_CHANGEDDOM_STATE_EXIST;
>>>>> +                if ( d->is_shut_down )
>>>>> +                    info->state |= XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN;
>>>>> +                if ( d->is_dying == DOMDYING_dead )
>>>>> +                    info->state |= XEN_CONTROL_CHANGEDDOM_STATE_DYING;
>>>>> +                info->unique_id = d->unique_id;
>>>>> +
>>>>> +                rcu_unlock_domain(d);
>>>>> +            }
>>>>> +
>>>>> +            return 0;
>>>>
>>>> With rapid creation of short lived domains, will the caller ever get to
>>>> see information on higher numbered domains (if, say, it gets "suitably"
>>>> preempted within its own environment)? IOW shouldn't there be a way for
>>>> the caller to specify a domid to start from?
>>>
>>> I'd rather have a local variable for the last reported domid and start
>>> from that.
>>
>> Well, it probably doesn't matter much to have yet one more aspect making
>> this a single-consumer-only interface.
> 
> For making it an interface consumable by multiple users you'd need to
> have a per-consumer data set, which would include the bitmap of changed
> domains and could include the domid last tested.
> 
> As one consumer is Xenstore, and Xenstore can run either in a dedicated
> domain or in dom0, I believe a multiple user capable interface would
> even need to support multiple users in the same domain, which would be
> even more complicated. So I continue to be rather hesitant to add this
> additional complexity with only some vague idea of "might come handy in
> the future".
> 
>>
>>>>> +/*
>>>>> + * XEN_CONTROL_OP_get_state_changed_domain
>>>>> + *
>>>>> + * Get information about a domain having changed state and reset the state
>>>>> + * change indicator for that domain. This function is usable only by a domain
>>>>> + * having registered the VIRQ_DOM_EXC event (normally Xenstore).
>>>>> + *
>>>>> + * arg: XEN_GUEST_HANDLE(struct xen_control_changed_domain)
>>>>> + *
>>>>> + * Possible return values:
>>>>> + * 0: success
>>>>> + * <0 : negative Xen errno value
>>>>> + */
>>>>> +#define XEN_CONTROL_OP_get_state_changed_domain     1
>>>>> +struct xen_control_changed_domain {
>>>>> +    domid_t domid;
>>>>> +    uint16_t state;
>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_EXIST     0x0001  /* Domain is existing. */
>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN  0x0002  /* Shutdown finished. */
>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_DYING     0x0004  /* Domain dying. */
>>>>> +    uint32_t pad1;           /* Returned as 0. */
>>>>> +    uint64_t unique_id;      /* Unique domain identifier. */
>>>>> +    uint64_t pad2[6];        /* Returned as 0. */
>>>>
>>>> I think the padding fields have to be zero on input, not just on return.
>>>
>>> I don't see why this would be needed, as this structure is only ever
>>> copied to the caller, so "on input" just doesn't apply here.
>>>
>>>> Unless you mean to mandate them to be OUT only now and forever. I also
>>>
>>> The whole struct is OUT only.
>>
>> Right now, yes. I wouldn't exclude "pad1" to become a flags field,
>> controlling some future behavioral aspect of the operation.
> 
> Right now I don't see the need for that, see my reasoning above.

If your reference is to the single consumer aspect, then I don't see
why that would matter here. Future xenstore may want/need to make
use of such a future flag, yet older xenstore still wouldn't know
about it.

>>>> wonder how the trailing padding plays up with the version sub-op: Do we
>>>> really need such double precaution?
>>>
>>> I can remove it.
>>>
>>>> Also - should we use uint64_aligned_t here?
>>>
>>> Yes.
>>
>> But you realize this isn't straightforward, for the type not being
>> available in plain C89 (nor C99)? That's why it's presently used in
>> tools-only interfaces only, and the respective header are excluded
>> from the "is ANSI compatible" checking (memory.h and hvm/dm_op.h
>> have special but imo crude "precautions").
> 
> No, I didn't realize that. I just looked how it is used today and
> agreed I should follow current usage.
> 
> But even with using a stable interface I'm not sure we need to make it
> strictly ANSI compatible, as usage of this interface will still be
> restricted to tools.

True. Problem is that our present __XEN_TOOLS__ guards have effectively
dual meaning - "tools only" and "unstable". We merely need to be sure
everyone understands that this is changing. Perhaps when you add such a
guard here, it may want accompanying by a respective comment.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 10:22:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 10:22:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230833.399035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBti-0002bM-93; Thu, 25 Nov 2021 10:22:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230833.399035; Thu, 25 Nov 2021 10:22:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBti-0002bF-3y; Thu, 25 Nov 2021 10:22:34 +0000
Received: by outflank-mailman (input) for mailman id 230833;
 Thu, 25 Nov 2021 10:22:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqBtg-0002b7-OG
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 10:22:32 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98ff33d2-4dd9-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 11:22:31 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-35-8i6S1Q9LO2a9es9-MoFjeQ-1; Thu, 25 Nov 2021 11:22:30 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3391.eurprd04.prod.outlook.com (2603:10a6:803:3::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Thu, 25 Nov
 2021 10:22:28 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 10:22:28 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR04CA0003.eurprd04.prod.outlook.com (2603:10a6:206:1::16) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Thu, 25 Nov 2021 10:22:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98ff33d2-4dd9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637835751;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=oHZDEpk52S41gvZtri9JxF/H2yaYJkiyT77dQ3nfTko=;
	b=OvhIHnHXv+iS/Yv40bPUzKu8Y1mt6Ft49YollFoPn34F5E3w3o1wN1jLv7UIox4fx0go/z
	LE+0Vq2w/Fw6tQCOb2wPvN8tdqY1FZYPCRutswuenOIyPrMB3DD4wRyK3irWIwWurkvG17
	0n6+p90uIdg2dVnYTOCEoIRGMs/uUW8=
X-MC-Unique: 8i6S1Q9LO2a9es9-MoFjeQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DOul+owUzO+2H9R5d35G/gzqJCKD7RsMzV5x3gLvwqPunF6DwXuBeopQFxU67UnsgpDHB4ZJA8dCaI7xaHPq25gEk4LCpJJy9O/3OmR2F1QYQxpt5rkvNV4C56P89WytBxoRzjTrbZgugbvPlpGbqa66Q2g539UVLeAq9czHbtBW4PKZnErUedh5BQ1WHrznGulHeQvzQ00tqFVsA/jqHhk0dKlHe2JNUb3L4wINAXvi7NPywTNZB4WQTEaWi3lz1Hy++EKXzQyiPcxpr9uINkwQMoZM+S/XI9IB2duuvKiihWPdwc/5O+wPKfzQQxDyV7+JT6BFmAXoMoE04sdfug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Dh3Y2cWniyTxg12/W2QwMG2KilPLOccv7Le7RAz3i9I=;
 b=ngHBNvY8ZR2wl5fKi1xg9fpAnjfz07LXCw8BRSkwiGHVn+iarOLt8vHoKRd9qNJf139wi9g/tzbXhX9SyMSXBIQGARKqFzTVLUTavsySCaTutX37+pYb7Hap8FRWcsG4vxwLaoU+mBeyiyoFikFraNRoK9k/p2EjxNaQ7ULK9jN2iRacN7YfkfAHR43ZxrCXlPuRM9oOll6YABlsRpN1RGh7i1isvjEkAbMp7c6WFxEetaCb86dHzuCK+cfedE03di58F6i9K5StiowF5fnde58Viue4eExRDAiUWXHzgs9TT30H5fWqj2X5pY0g6J9XKtBmF9edMtnI0wJqhWkDaQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <71e1ee43-33c4-fff2-eb0a-c68d3bf5d25e@suse.com>
Date: Thu, 25 Nov 2021 11:22:27 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Ian Jackson <iwj@xenproject.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <cbe791cc-848f-8511-6974-2c9e300ea66b@suse.com>
 <YZ9WSfy3pYp8uzqI@Air-de-Roger>
 <614efba0-a3fb-7ddf-1fe9-d4fe2feb21f2@suse.com>
 <YZ9iQg4Hoo5Y6kyv@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YZ9iQg4Hoo5Y6kyv@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR04CA0003.eurprd04.prod.outlook.com
 (2603:10a6:206:1::16) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0e14cb9b-2534-401b-3bad-08d9affd7b93
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3391:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3391F72DD9B31FB6D7CE585FB3629@VI1PR0402MB3391.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	V19Es7D+O1dhZntzgvu+XFgrIJalu2exq2OBILPVDXxMtZ/N5bqPKJDJoMrdDosqregEHa8UwNlSnZ8Oxnlz5Zjxllh8FOzVFwtjfZil+pmiwe6c0+VLV79iASUdnKgT+E1nHlv9I8dWSPqUP2Bbvtxrnrjy789yZZEni86/r4HDKHExgKcgPn84Qii84OpPoWlZqw9ENsqtAQ35unUqdsDPHRkRTNsSg2Tplof16CDu4Cqe0wkSNLk7QxbU9tyjmtr2EYAsE4S7/u9ng22zU8HB9VOeWXjDAh5NiYRFBFJ8YmILb2QOgI3XdNIO00SWiD3YYdwOOjl2mqO7BqYQBFph2m11mDxpkORHRxitX81+GsZn+7RD9PnST1a0V5Mz3LWuNQ2piXBiAu18o96zo8WS3eJ7SghZyqtOZSXVD4P/0XQtxikSlQcJ6vgJ83XXqBRDrkkroYfkIX8u6UFRPd3mMcPnmFrG2FxW2Gyg4w4hI2K9TgpII87Mm79RDTunqUx5fgiBnh8zTUzaWkZSzL0vQCh8sIWTVJVz13Bjbok75TyBHpujgfv1qWfgsa6oO6T01PVQZiqrtr4OOu100NTZyh/0kOy1gOB4VhXyEyVFrOmQu+2woLl9FwH0uGwc6CD8jbDau9GkkR/6RWKpjxD6SXyRtBNPLpzE9rD5t24LGpwM0Yt4dUtyw5Pb3G1Avd1PMx7uLREVru6odkN6Ad6Bwt2oW2dFLe6s40gYCSVq9StJP6pSrPpa19iM/pzzdd7qxIBBmlDdn6rocTzVMQ6J9MULZzjH+2Y47BfLZsfQsDqo7xwcgpjkdM3HBRIkRXxpOzYmbDkFy+7sfT+WMw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(2616005)(956004)(86362001)(2906002)(26005)(54906003)(53546011)(5660300002)(316002)(83380400001)(966005)(31696002)(4326008)(16576012)(508600001)(186003)(8676002)(8936002)(66476007)(66556008)(66946007)(6916009)(36756003)(38100700002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?rARnY2snYSMo2Td7HeWwvdFzw21THs0LJiLYT4/PhK6Vfm9Z57NAgvbISDg/?=
 =?us-ascii?Q?pS7Y5UOmiFTxPtlcEa4s+Fl0Bb3/UTHqafFUzO6KpO+uk8S3pixIqewgk5mR?=
 =?us-ascii?Q?jfFQfws7kJd4Hs7yrQUC2jGVz0xfhIoT5G1xoyBr7bPlFCe8oIXxr/7uohsz?=
 =?us-ascii?Q?k4qZV59nWVhf1ij+0P5SQSVpAEdBhA0xkvCS2hj7GVaIq2BPgG14uCn/rHNv?=
 =?us-ascii?Q?ILGDtCeHu4HklfIifYHAi3LhJh8upesiXzPRx1vVOpjktu/mzjiXVFsUnwCw?=
 =?us-ascii?Q?1/DnNPHKTHPn1QCml20nJq5VBbSDk0uRJQMRT5rq9jbj+Gx3nxC1w9ca2gvL?=
 =?us-ascii?Q?QLo/ZwQ+ddGPUVuIScxhiFm/4kWd7vJmDynvp/UXkxntqn+ILJuOzqLDZPYy?=
 =?us-ascii?Q?EDdl8t1k+Ww9bP6jJjXnXYhegc8tYOE82KDHMIliqJtH48y9pxlkJI4SACgZ?=
 =?us-ascii?Q?Vx7cTFz+poB6U3BAKiy5hvSTkHEyDhJza8zBvO3kvEvljs5BJp0ClVYXfGHV?=
 =?us-ascii?Q?y4Z7QjWNKDH+NU9VL29JDsRyfqz6FLtzi5FspGc2v9fFi/WT6fSHaai6yk6m?=
 =?us-ascii?Q?EJVAgDZYP0wFP0X4w5iJfew4wkQ/rLqbSyUdk7TXB26NmT3mosCmVpRm4Km6?=
 =?us-ascii?Q?M8AMAGiJpRjdLt32vik6TF4M2HfRfvCZcASydYbIcofy9f6UAqyRmQk2m2FK?=
 =?us-ascii?Q?DkLlSlFQFWUpDsrCGKxeB33aR3Y4AsO2TtmwVBjzivaCmMw9eD/jkak5D//J?=
 =?us-ascii?Q?JmiS1ciYdbzT4KRR3X2P4pGG4wFWGdlc517E2s1a2vDsZu9MYbO8ZGg+rXRZ?=
 =?us-ascii?Q?4yBXQS/jl+MsuFvRy2A0Di44j3RF6EUUaZUEeWvitupoVbxlpcftx+LOEGcL?=
 =?us-ascii?Q?6V1yT6hlFZx7aVpLaL7nU9WyrRVxG1FV/N0tYn+p5jmCAk/t+H4RG4Syn0xP?=
 =?us-ascii?Q?xpShtq0Xj1Eel76UgBuqoPzqYHQ10mVkvJt+qZfzF9iB+ReyA4dDs4KLWqjS?=
 =?us-ascii?Q?9jDKoFkjyCzO46mQ2qgtyjeK55HHDvPwHWvGK+sZwCl/+qRfHJTbPVbQeIf/?=
 =?us-ascii?Q?zmlazE4fYZih9Mf8T1Xpc+Gsz5nFCg9zsTOB+pe3o1wmQj4nvgx7LBYWp8BB?=
 =?us-ascii?Q?Tp9jdrAhVj2CS+0OG+ijWjCpsmWL0zESit2+1uvLY7nGPaTgoxTwkgdVK0/X?=
 =?us-ascii?Q?6LBUwGNw8p+A2eDyR2cXcQtdG+MKMWwN7TKATVRiwRYAjzDe1tfoIPOmwO+g?=
 =?us-ascii?Q?o2WaQZ1w7941jiAa5n5Sq3BDhd2tv9w3ar7+mq7ONr61dvkJgurZYPfsyFFJ?=
 =?us-ascii?Q?NfzN5RTnOddm4y6ohVODxD1brVuK7V8L6NWNajTJgTpwKSvgUgF/KdfKwZcc?=
 =?us-ascii?Q?wXICRABTexyj+l/zqm0hpx4zUgV5WVJct/p/2RMCF7WeVETHGfzRRY0RXRDk?=
 =?us-ascii?Q?vCgOuWOuh33r+KuyTCwk5D6JrQ4oDbbSExgd58uo6gzprlKq4tjraiL5+tdn?=
 =?us-ascii?Q?PWZj9lIui+NF9kGDmKscZXPbUJf59LR5igeNsDC+vwrlcK3W4GndCoHFsQYi?=
 =?us-ascii?Q?+QnAhMf1xkjuZ2UqD6sOxOTRC6ndole6I1QMOvAc8sp4AB1J7awEYV0xBpy1?=
 =?us-ascii?Q?EgVTumxU79am50xZAjNaovg=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e14cb9b-2534-401b-3bad-08d9affd7b93
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 10:22:28.5918
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: w5g1x0RI4Nup2Vz6/gfnjf1QCWFsRSouiSwjbKzXEcHWM1gjsS8iV4ILzyYHGLwvzG1QnszcxwhIeBuRQffJeA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3391

On 25.11.2021 11:15, Roger Pau Monn=C3=A9 wrote:
> On Thu, Nov 25, 2021 at 10:52:12AM +0100, Jan Beulich wrote:
>> On 25.11.2021 10:24, Roger Pau Monn=C3=A9 wrote:
>>> On Thu, Nov 25, 2021 at 09:57:31AM +0100, Jan Beulich wrote:
>>>> On 24.11.2021 22:11, Andrew Cooper wrote:
>>>>> OSSTest has identified a 3rd regression caused by this change.  Migra=
tion
>>>>> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron=
 4133)
>>>>> fails with:
>>>>>
>>>>>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf fffff=
fff, msr ffffffff (22 =3D Invalid argument): Internal error
>>>>>   xc: error: Restore failed (22 =3D Invalid argument): Internal error
>>>>>
>>>>> which is a safety check to prevent resuming the guest when the CPUID =
data has
>>>>> been truncated.  The problem is caused by shrinking of the max polici=
es, which
>>>>> is an ABI that needs handling compatibly between different versions o=
f Xen.
>>>>
>>>> Would you mind pointing me to the flight which has hit this problem? I
>>>> don't think I've seen any respective failure. I also don't think I've
>>>> seen any respective discussion on irc, so I really wonder where all
>>>> this is coming from all of the sudden. It's not like the change in
>>>> question would have gone in just yesterday.
>>>
>>> It's from a pair of newish boxes that Credativ and Ian where
>>> attempting to commission yesterday. Since the boxes are not yet in
>>> production Ian wasn't sure if the issue could be on the testing or
>>> hardware side, so emailed the details in private for us to provide
>>> some feedback on the issue. The error is at:
>>>
>>> http://logs.test-lab.xenproject.org/osstest/logs/166296/test-amd64-amd6=
4-migrupgrade/info.html
>>
>> I see. Quite lucky timing then.
>=20
> Indeed, it was pure luck that we got this just yesterday.
>=20
>>
>>>>> Furthermore, shrinking of the default policies also breaks things in =
some
>>>>> cases, because certain cpuid=3D settings in a VM config file which us=
ed to have
>>>>> an effect will now be silently discarded.
>>>>
>>>> I'm afraid I don't see what you're talking about here. Could you give
>>>> an example? Is this about features the flags of which live in the
>>>> higher leaves, which would have got stripped from the default policies=
?
>>>> Which would mean the stripping really should happen on the max policie=
s
>>>> only (where it may not have much of an effect).
>>>
>>> I think there are two separate issues, which I tried to clarify in my
>>> reply to this same patch.
>>>
>>> Options set using cpuid=3D with xl could now be rejected when in
>>> previous versions they were accepted just fine. That's because the
>>> shrinking to the policies can now cause find_leaf calls in
>>> xc_cpuid_xend_policy to fail, and thus the whole operation would
>>> fail.
>>
>> Okay, this could be addressed by merely dropping the calls from
>> calculate_{pv,hvm}_def_policy(). Thinking about it, I can surely
>> agree they shouldn't have been put there in the first place.
>> Which would be quite the opposite of your initial proposal, where
>> you did drop them from calculate_{pv,hvm}_max_policy(). A guest
>> migrating in with a larger max leaf value should merely have that
>> max leaf value retained, but that ought to be possible without
>> dropping the shrinking from calculate_{pv,hvm}_max_policy().
>=20
> I won't argue it's not possible to do that without dropping the shrink
> from calculate_{pv,hvm}_max_policy(), but given the point we are on
> the release we should consider the safest option, and IMO that's the
> revert of the shrinking from there in order to restore the previous
> behavior and have working migrations from 4.15 -> 4.16.
>=20
> We can discuss other likely better approaches to solve this issue
> after the release.

Sure; as said earlier on I merely would like to understand things
sufficiently well before giving my ack.

Jan

>> Even
>> leaving aside migration, I guess an explicit request for a large
>> max leaf value should be honored; those possibly many trailing
>> leaves then would simply all be blank.
>>
>>> There's another likely error that only affects callers of
>>> xc_cpuid_apply_policy that pass a featureset (so not the upstream
>>> toolstack), where some leaves of the featureset could now be ignored
>>> by the guest if the max leaves value doesn't cover them anymore. Note
>>> this was already an issue even before 540d911c2813, as applying the
>>> featureset doesn't check that the set feature leaves are below the max
>>> leaf.
>>
>> If this was an issue before the commit to be reverted, I take it
>> the revert isn't going to help it?
>=20
> I think the commit makes it more likely to hit the above scenario by
> shrinking max leaves.
>=20
>> In which case this information
>> is interesting, but not applicable as justification for the
>> revert?
>=20
> As said above, while the commit at hand is not introducing the issue
> with the featuresets, it makes it more likely by shrinking the max
> leaves, and IMO it's a regression from behavior in 4.15.
>=20
> Ie: options set on the featureset on 4.15 would be exposed, while the
> same options could be hidden in 4.16 because of the shrinking to the
> default domain policies, if the user happens to set an option that's
> on an empty trailing featureset with a tail of zeroed leaves.
>=20
> Thanks, Roger.
>=20



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 10:25:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 10:25:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230838.399046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBwn-0003Eh-N0; Thu, 25 Nov 2021 10:25:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230838.399046; Thu, 25 Nov 2021 10:25:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqBwn-0003Ea-Jp; Thu, 25 Nov 2021 10:25:45 +0000
Received: by outflank-mailman (input) for mailman id 230838;
 Thu, 25 Nov 2021 10:25:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqBwm-0003EU-Qc
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 10:25:44 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b944863-4dda-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 11:25:43 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2056.outbound.protection.outlook.com [104.47.0.56]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-28-rXm98cFNNrKHempSw_O1YA-1; Thu, 25 Nov 2021 11:25:42 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4848.eurprd04.prod.outlook.com (2603:10a6:803:55::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Thu, 25 Nov
 2021 10:25:40 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 10:25:38 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P194CA0018.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::31) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.22 via Frontend Transport; Thu, 25 Nov 2021 10:25:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b944863-4dda-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637835943;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=qrfgnfnpmbtr2ACEUZk8n8GNGfnpkgC6pMU/KrK/Ojw=;
	b=D1XOEU1kZZSraQ5jVhkcf2+Xv80xV2BU9Q6cMNXETwyU4pFm9/dL0gsVkjCEs65XifIYsg
	0vN6UXofqwsSeyXJ5q8ftvXhjmcILBuvW3b6+qPzI6dpXKVgO2RXOxW61Gi3L9st4KAhth
	STHnccx8skaE8SmsyvBabSDKaTx6hsI=
X-MC-Unique: rXm98cFNNrKHempSw_O1YA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kob4bETzhzkllki0IRBkQKqINHK3/f864YOJLGHaxPX0nipQy2r5RQcaHo/GMZO4zexuN50ji5V0hhVYZkCaYM9l4wOzpZOivC1FQVsWObOOv8OP4TFbMzVTft5ap99hraKAawOlsCgjHtLwhpZDERP9Qo9jqoaQyjeRk1NxHoOMYM/k2b8ZtxqVvmDdY7xxjJzo4rUvgpavs3PdGLb81x4NkTggt+r5l9mpxMgHsH1y3DsLJZOJ4hR/J2urtI2lJf7sRicgGOC8L1CXUKihQXh0nxDtaOy3+A3MqpFKxJ+cu3IEpIVzvzQhkcaK5BlmnDFDpe3uZT6sKv1kKdz+Yw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qrfgnfnpmbtr2ACEUZk8n8GNGfnpkgC6pMU/KrK/Ojw=;
 b=AXsvEJWq1NehnF486nbqtJ9D+bLxtaoAtxQboUyqibTc6vuFE/epCIwVuJjLtQj294gIw++3i7RPi/iaGcVkqzGWPBTnjK48sRdx2WFeWQbCEbeAG0T3jgzRtzwQTQilKfvTlVQPu+lf4cSE4O2qYFC0DsRbcOS59ue92G91CXVIEQB94guU5J3HbiCCivM9+PgnBXQf2pkrlNWqnl/h5GogApjJbP/GikQq6az40uv2CP5Op7K7TBv+gvzRxUl2r1BgUa0YD3rSMr4GEbr75upBRCXLoumPpuOCJ2xkiBuWjOWauf1NYJL9I8OU6Z+2eSIXf2B5hzNzVHQkkKv2zQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
Date: Thu, 25 Nov 2021 11:25:36 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Ian Jackson <iwj@xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211124211152.1142-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P194CA0018.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:209:90::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a7b55324-efbc-44f0-1638-08d9affdec7e
X-MS-TrafficTypeDiagnostic: VI1PR04MB4848:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4848B6C7621CBDE4DA76F5A5B3629@VI1PR04MB4848.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2331;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	yPi2irhjdId0TQzVirtovxNu09V2YIccNZUhTnpTbZUMbk3Kh6zXC9XK/YOd7vU+0feRvnTbrWo11Ut0XeIhfGKqasyFRYu5tHUJ26i7LNrrvoZXDUlId0hmUnia8rCc+ozUM2L0Jgu4tx+mvcERi+5ZHO6WTjg3hTna272TUXyQ/5YPImrVHelAZRV57BcRmLrNvMyZMbcSfQ5/DvqG5qgJlDqTGUIWEuNK0DgB6ovFEXtA71YUyTkWKGEJ0gzh+m1CnYlzGpe1t4VDOTUIJ9QRJ2WHtkbAtY8lrbNrjzC0V2cXqQvA9zeB7KguIqsCKzljx6f/26+GiCTEehDzpaXB3c34oJvrH1lD7aeTDuMqi1y9VDz9Kkv+uz60jI82MC2PmANq4kEKAEHAlZ7ZBE+pGqgoUOK7XzekMNoXyBtFxqF+udijDhUjfDjwZrwuMzE5H/VJ3vZip548eC/328ZJkfwxq1wmuE/QLjLorTgs+FTmRFz555eRooDbcEJgIfgDmfpv5aIucfzEqz6seF4OcSz2KC0weZoDLEsC8DLPHAcZhKdKOjGeDew7wXNbAzYXVdidxgdx0OMoRsoXObLEvegl89K6DHkMAfh8osE+akzPxwLKEzMzGDdg9VDecLvRPAI6ajcK8SsOSKzIHDunfuSPVPKlgM6mkRWzcuazGURyVxUzvBKWLhzhQWixfb9vQ+4RqF35dgp6xlj1PIiFGpm237x+vGEo50c8ZyYQnE3wq3Onxa/H5tAo1Dbw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(86362001)(8676002)(110136005)(66556008)(2616005)(26005)(16576012)(316002)(2906002)(31686004)(186003)(508600001)(66476007)(31696002)(956004)(38100700002)(83380400001)(53546011)(8936002)(66946007)(4326008)(6486002)(5660300002)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RXNzNXhVQVFkOGNrUUNLK0V6VDY0MTdNNDBqREg2QVUxL1hINStmM3lZQ00w?=
 =?utf-8?B?Y2RzMzNJZUtOc2JjZ3k4UCtxUE40MHN0eWJ0eHNycmNGOWs2NEZocndSNHU5?=
 =?utf-8?B?RTB6a1MrOXF2aGgwWENOd2tPUDNmV1B1a2Q0czBOMUo3YmFxRjZWRHRUbFlZ?=
 =?utf-8?B?U1N0MUd0SUFyeitNRmxURE85emVQUDhCdUlucWJncWMrelE3WUxFQVBEY1lP?=
 =?utf-8?B?WHg3OTNpSHhQQ2t4aGhtbVQwSERUOFREaFRyY002bzdRZW9icGdENm80ZUdK?=
 =?utf-8?B?N21NWVI4UG9ueG5ZNERBUkk4OHlSM2szVGZES0FxTEZoVUhsMmZ0dC9JNHZl?=
 =?utf-8?B?VnZhS0pFQWNESUc5S01vd1BKN2V2SUxzdHBxNmtEc3owQkdjREpqbXprUmw3?=
 =?utf-8?B?TnQ0cTdSTW12cjlLbFRkZXRlc1h6QjMwMnBiTGlsRlVhbk9EdHlvVmRUQ2VE?=
 =?utf-8?B?MTl3OWt1NmdxMnhEbGJnUzEzSFNGT3FYRUFZUVVobEE3SkhSRm4zTTh5MGlv?=
 =?utf-8?B?Y0tmZkwwZThOazc5a0gwYTNGeEZZaE4zaTd6eTl0TEFZdGFPWkxjU1M2YnJQ?=
 =?utf-8?B?QnNtVERBbXlvVURkK2llT1hhOUQ4ODZwblQrdFg4WEQ5WFRKbE4raTlxVGFv?=
 =?utf-8?B?RXYrU21oRHVOSVVuK1p1Y29iU1MzM1pOMHBTSk5BNjExTVIvOHJVanE4MVB2?=
 =?utf-8?B?bzlZZ24zWGNXWmlSRkhyVXlRWTRyY2h6WXA4dHM5THJldVR5aHdVSmxWbUJM?=
 =?utf-8?B?RC9XMmtCVFVzcHFOeExxdWw3R21SdnNlSUZ2Tm5MTi92cmdJaEgyc25sS3A1?=
 =?utf-8?B?Q0g0Um40UCswbVpSSldZa2VUMzIrR0VBUXdPcDRsWmZ1YVhhNFJmVHRIOFQx?=
 =?utf-8?B?SHFKR0prb3dSWGhhcmJ3ZjdjUVAwN0FCQk9leTRhdWlWN2txc3l1MFQ4TTR2?=
 =?utf-8?B?YWtMVmpzaFpNYVkzNlNHUXl6OEE3am9FK1RCK1lYa1puajRXcnVEbks3S2FD?=
 =?utf-8?B?ZUxwNTF0azhsVjFnald1MUZINS9RQ0pPS2lldFNiVFNiZTMvcFl5T3BGcmU5?=
 =?utf-8?B?dDROMXhMTStmRlBTYlFnaWxJQ25IY2xuZlR3QjA2T0NpbWZKVytiSWI1WExD?=
 =?utf-8?B?eFlMSUlNa25rZXJPeDRCNWh0Q1ZBd09WRVk5Q1hHZlR3NmY0azlLMWV5YTlX?=
 =?utf-8?B?RUMzaUVoUDhDNEJNOTlodWJVaisxVzMxMFZMYXA0RjVXTTJJeHZIQTNaR1Ra?=
 =?utf-8?B?bG5hRVFQS2JwQ3BKeGF2bFpFMmU3MkRHd1YvdGEyNHlKQnNsVVJGUG1DdGNS?=
 =?utf-8?B?RTd4c1VNVnVUams0NHRNNGdqWmh6Tlg3c1hBdFhrSXlHTTBZcG02bE9oWEpK?=
 =?utf-8?B?SDB3cDE1eEJwY2MzWXM1cUd2cnlqMHhsS0FnWHZJb2FqejBiUnU0bVlvSDJT?=
 =?utf-8?B?V1RiQ1ltSlB0VzdaNXo0WU1zeGxyR3JHdGM3ZmJnemVPRGloS1h2QVNic1I3?=
 =?utf-8?B?aXhuaE9rNCtwdUR0ZjJ6Z2FuOEtjQzBLcWp6MExEV3NJYWJuQ2dadkwxb3gw?=
 =?utf-8?B?aVFhZDhhd01tZFlmZEEvbGd2Y3pKZ1BhM25lWXpEUFNETTVUMThLbEtpS21R?=
 =?utf-8?B?eEVlVUd3a3hsWGpYVGQ5QlRuRkhJTWp6RzVZa0w3M2lWN0EyUmFybDhTWU1O?=
 =?utf-8?B?T2swTzJzWHRjWTFoL0ZNRVNMaFEydkVYcUJkV0VtaU1KQ21Vc2pMMzV0c01V?=
 =?utf-8?B?NGpadjllNGVsOEJZL3l0cS9BWkZrRHBwUmVMVGZ1dEtGeHF5UXhZbUczbFdJ?=
 =?utf-8?B?N0pXZlU5cmlDaFJKS2prazlJL3Z2ZkRTd1UyTm13RGMrdldTcC83NmpqZlNO?=
 =?utf-8?B?K21tWkJ2SlRpY1NhdVhTOGQxUytJdWNWMXRrdVJGVVV1TE5mWTZGbUwwbWRN?=
 =?utf-8?B?VDVZUjY1SWQ3Q2pYcXBEUzFBMC8rSko2eGdlSHNucnZwT3phVEZXS1ZYOVZY?=
 =?utf-8?B?VDhmdTJuMG5sU3FKbjFpdklxSXVQMXUrYk96UFg2b25rb1BUeDRoWU5EeXY1?=
 =?utf-8?B?WHBWaHo3bTA0SEExQ2dlRDJ4TjhhZ3FCVlNtci9nQTUzWjJJT3ovNXdkSDN6?=
 =?utf-8?B?TGY2emIzbjFOcWdPUkJMNCtYcFVmdGZhZ0RWdUpRSWdwRk5ZeklnUERYMTds?=
 =?utf-8?Q?qz8LNdiX9QHo0CtdTrn7A8U=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a7b55324-efbc-44f0-1638-08d9affdec7e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 10:25:38.0267
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /5V6sXRTc8U+/q2pTHIOvUb58RYWmhh4P18kmsY1s8PLkQBRApQaqlrMRpQkZpbDqjrRF+IMCawt0kduKbZZbg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4848

On 24.11.2021 22:11, Andrew Cooper wrote:
> OSSTest has identified a 3rd regression caused by this change.  Migration
> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
> fails with:
> 
>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
>   xc: error: Restore failed (22 = Invalid argument): Internal error
> 
> which is a safety check to prevent resuming the guest when the CPUID data has
> been truncated.  The problem is caused by shrinking of the max policies, which
> is an ABI that needs handling compatibly between different versions of Xen.
> 
> Furthermore, shrinking of the default policies also breaks things in some
> cases, because certain cpuid= settings in a VM config file which used to have
> an effect will now be silently discarded.
> 
> This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as well as the
> partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (which added
> one new case where cpuid= settings might not apply correctly) and restores the
> same behaviour as Xen 4.15.
> 
> Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents")
> Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies max leaves")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

While not strictly needed with Roger having given his already,
Acked-by: Jan Beulich <jbeulich@suse.com>
to signal my (basic) agreement with the course of action taken.
Nevertheless I fear this is going to become yet one more case where
future action is promised, but things then die out.

Ian - I guess all this now needs is your R-a.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 10:33:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 10:33:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230843.399057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqC44-0004fq-HM; Thu, 25 Nov 2021 10:33:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230843.399057; Thu, 25 Nov 2021 10:33:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqC44-0004fj-E8; Thu, 25 Nov 2021 10:33:16 +0000
Received: by outflank-mailman (input) for mailman id 230843;
 Thu, 25 Nov 2021 10:33:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqC42-0004fd-On
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 10:33:14 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17aab87c-4ddb-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 11:33:13 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id F280121B36;
 Thu, 25 Nov 2021 10:33:12 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 965D213466;
 Thu, 25 Nov 2021 10:33:12 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id u+n5Imhmn2HIQwAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 10:33:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17aab87c-4ddb-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637836393; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=dD9s4GMPeNt5i9D+tD4ZADaZow0WF71niHJUNWXXLG8=;
	b=bedgRl+FctBZfXkzKn26M5m9lWeX2Vopy1arZ14HtG84zZTN87JXvnIHYANSfAXfRC5am9
	H3vGSWbRFn3B5uQLuc7d0Lv07hxAkshuDntP6a3HOitJZUEGjWzTSRei6xqwXr/ihXRbO0
	IPJXjfoOn4oJVqJ/h8Fxp66Bzcgdfn4=
To: Jan Beulich <jbeulich@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
 <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
 <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
 <fffb492e-f570-069b-7355-c00f48215dad@suse.com>
 <8512f6a7-0b79-8fff-49fb-80c3d8a7a436@suse.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
Message-ID: <db2a0bc9-386e-3198-f8f8-95121571abdc@suse.com>
Date: Thu, 25 Nov 2021 11:33:12 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <8512f6a7-0b79-8fff-49fb-80c3d8a7a436@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="vcIXMR4jILkSAULwEwZgf5xLZh9LxoQhX"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--vcIXMR4jILkSAULwEwZgf5xLZh9LxoQhX
Content-Type: multipart/mixed; boundary="SGXLqm56UozSTABVNKJTItWVuIFTBLUud";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <db2a0bc9-386e-3198-f8f8-95121571abdc@suse.com>
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
 <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
 <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
 <fffb492e-f570-069b-7355-c00f48215dad@suse.com>
 <8512f6a7-0b79-8fff-49fb-80c3d8a7a436@suse.com>
In-Reply-To: <8512f6a7-0b79-8fff-49fb-80c3d8a7a436@suse.com>

--SGXLqm56UozSTABVNKJTItWVuIFTBLUud
Content-Type: multipart/mixed;
 boundary="------------3DF457D5D03AF616CE85E67E"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------3DF457D5D03AF616CE85E67E
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 25.11.21 11:19, Jan Beulich wrote:
> On 25.11.2021 11:12, Juergen Gross wrote:
>> On 25.11.21 10:38, Jan Beulich wrote:
>>> On 25.11.2021 07:55, Juergen Gross wrote:
>>>> On 22.11.21 16:39, Jan Beulich wrote:
>>>>> On 14.09.2021 14:35, Juergen Gross wrote:
>>>>>> @@ -103,6 +104,43 @@ void domain_reset_states(void)
>>>>>>         rcu_read_unlock(&domlist_read_lock);
>>>>>>     }
>>>>>>    =20
>>>>>> +int domain_get_dom_state_changed(struct xen_control_changed_domai=
n *info)
>>>>>> +{
>>>>>> +    unsigned int dom;
>>>>>> +    struct domain *d;
>>>>>> +
>>>>>> +    while ( (dom =3D find_first_bit(dom_state_changed, DOMID_MASK=
 + 1)) <
>>>>>> +            DOMID_FIRST_RESERVED )
>>>>>
>>>>> As per my comment on the earlier patch - the use of DOMID_MASK + 1 =
vs
>>>>> is quite puzzling here.
>>>>
>>>> Okay, will change that.
>>>>
>>>>>
>>>>>> +    {
>>>>>> +        d =3D rcu_lock_domain_by_id(dom);
>>>>>> +
>>>>>> +        if ( test_and_clear_bit(dom, dom_state_changed) )
>>>>>> +        {
>>>>>> +            info->domid =3D dom;
>>>>>> +            if ( d )
>>>>>> +            {
>>>>>> +                info->state =3D XEN_CONTROL_CHANGEDDOM_STATE_EXIS=
T;
>>>>>> +                if ( d->is_shut_down )
>>>>>> +                    info->state |=3D XEN_CONTROL_CHANGEDDOM_STATE=
_SHUTDOWN;
>>>>>> +                if ( d->is_dying =3D=3D DOMDYING_dead )
>>>>>> +                    info->state |=3D XEN_CONTROL_CHANGEDDOM_STATE=
_DYING;
>>>>>> +                info->unique_id =3D d->unique_id;
>>>>>> +
>>>>>> +                rcu_unlock_domain(d);
>>>>>> +            }
>>>>>> +
>>>>>> +            return 0;
>>>>>
>>>>> With rapid creation of short lived domains, will the caller ever ge=
t to
>>>>> see information on higher numbered domains (if, say, it gets "suita=
bly"
>>>>> preempted within its own environment)? IOW shouldn't there be a way=
 for
>>>>> the caller to specify a domid to start from?
>>>>
>>>> I'd rather have a local variable for the last reported domid and sta=
rt
>>>> from that.
>>>
>>> Well, it probably doesn't matter much to have yet one more aspect mak=
ing
>>> this a single-consumer-only interface.
>>
>> For making it an interface consumable by multiple users you'd need to
>> have a per-consumer data set, which would include the bitmap of change=
d
>> domains and could include the domid last tested.
>>
>> As one consumer is Xenstore, and Xenstore can run either in a dedicate=
d
>> domain or in dom0, I believe a multiple user capable interface would
>> even need to support multiple users in the same domain, which would be=

>> even more complicated. So I continue to be rather hesitant to add this=

>> additional complexity with only some vague idea of "might come handy i=
n
>> the future".
>>
>>>
>>>>>> +/*
>>>>>> + * XEN_CONTROL_OP_get_state_changed_domain
>>>>>> + *
>>>>>> + * Get information about a domain having changed state and reset =
the state
>>>>>> + * change indicator for that domain. This function is usable only=
 by a domain
>>>>>> + * having registered the VIRQ_DOM_EXC event (normally Xenstore).
>>>>>> + *
>>>>>> + * arg: XEN_GUEST_HANDLE(struct xen_control_changed_domain)
>>>>>> + *
>>>>>> + * Possible return values:
>>>>>> + * 0: success
>>>>>> + * <0 : negative Xen errno value
>>>>>> + */
>>>>>> +#define XEN_CONTROL_OP_get_state_changed_domain     1
>>>>>> +struct xen_control_changed_domain {
>>>>>> +    domid_t domid;
>>>>>> +    uint16_t state;
>>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_EXIST     0x0001  /* Domain =
is existing. */
>>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN  0x0002  /* Shutdow=
n finished. */
>>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_DYING     0x0004  /* Domain =
dying. */
>>>>>> +    uint32_t pad1;           /* Returned as 0. */
>>>>>> +    uint64_t unique_id;      /* Unique domain identifier. */
>>>>>> +    uint64_t pad2[6];        /* Returned as 0. */
>>>>>
>>>>> I think the padding fields have to be zero on input, not just on re=
turn.
>>>>
>>>> I don't see why this would be needed, as this structure is only ever=

>>>> copied to the caller, so "on input" just doesn't apply here.
>>>>
>>>>> Unless you mean to mandate them to be OUT only now and forever. I a=
lso
>>>>
>>>> The whole struct is OUT only.
>>>
>>> Right now, yes. I wouldn't exclude "pad1" to become a flags field,
>>> controlling some future behavioral aspect of the operation.
>>
>> Right now I don't see the need for that, see my reasoning above.
>=20
> If your reference is to the single consumer aspect, then I don't see
> why that would matter here. Future xenstore may want/need to make
> use of such a future flag, yet older xenstore still wouldn't know
> about it.

I'm not sure it is a good idea to mix IN and OUT fields in such a struct
which is meant to return information only.

I'd rather add a new sub-op in this case taking another parameter for
specifying additional options or a struct prepending the needed IN
fields to above struct.

>=20
>>>>> wonder how the trailing padding plays up with the version sub-op: D=
o we
>>>>> really need such double precaution?
>>>>
>>>> I can remove it.
>>>>
>>>>> Also - should we use uint64_aligned_t here?
>>>>
>>>> Yes.
>>>
>>> But you realize this isn't straightforward, for the type not being
>>> available in plain C89 (nor C99)? That's why it's presently used in
>>> tools-only interfaces only, and the respective header are excluded
>>> from the "is ANSI compatible" checking (memory.h and hvm/dm_op.h
>>> have special but imo crude "precautions").
>>
>> No, I didn't realize that. I just looked how it is used today and
>> agreed I should follow current usage.
>>
>> But even with using a stable interface I'm not sure we need to make it=

>> strictly ANSI compatible, as usage of this interface will still be
>> restricted to tools.
>=20
> True. Problem is that our present __XEN_TOOLS__ guards have effectively=

> dual meaning - "tools only" and "unstable". We merely need to be sure
> everyone understands that this is changing. Perhaps when you add such a=

> guard here, it may want accompanying by a respective comment.

I'd be fine with that.

Maybe we want a new guard "__XEN_INTERNAL__" for that (new) purpose?


Juergen

--------------3DF457D5D03AF616CE85E67E
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------3DF457D5D03AF616CE85E67E--

--SGXLqm56UozSTABVNKJTItWVuIFTBLUud--

--vcIXMR4jILkSAULwEwZgf5xLZh9LxoQhX
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGfZmgFAwAAAAAACgkQsN6d1ii/Ey+C
YAf/eHQwvREmvxJgqLRwHBMm7VCfBNyKHvLxC69EUtYQNgYxbQiTYWovzjwje7XMPwMaV3pFQbw9
QNim2I924D8LYCoefTiiGlbiQ82qBMpln025Tm4Dvuayzh/czwIG19wPsJDGdGwAy+NIA8LXN4iG
T+yA2sIxSEt41ZJjhAZ99TKMurpKiGiEycrZRbPaEN8d7IjrKNkb5y0if2RMP5Kkag7HAMAEn57V
2F5RUcE1plzFzQWrXZemQBFeoafpm6ss9O4o0QSA5FUcQM5kvwRrNVx2LGGUz7it9uijvZrmRTcO
ACNwmYLVBwQIq4LLP2t0HsLnNqHNYyQ8TdXIWuGnvA==
=S2U7
-----END PGP SIGNATURE-----

--vcIXMR4jILkSAULwEwZgf5xLZh9LxoQhX--


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 10:44:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 10:44:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230853.399071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCEi-0006Ci-MO; Thu, 25 Nov 2021 10:44:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230853.399071; Thu, 25 Nov 2021 10:44:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCEi-0006Cb-JR; Thu, 25 Nov 2021 10:44:16 +0000
Received: by outflank-mailman (input) for mailman id 230853;
 Thu, 25 Nov 2021 10:44:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1dIP=QM=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mqCEh-0006CR-Ik
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 10:44:15 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a030bd92-4ddc-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 11:44:13 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a030bd92-4ddc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637837053;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=sqK7WTqYcHQP4laJw9wiLU+GfMSE+QhhfqhGP8BQ8UM=;
  b=EsckasjNNygBpYOppFou4wiuhDbX3An9Vzr+N3zCKcwOvrfTu+X6GKSC
   Smuq2HMR9tPfNw6KOl8PSUef+4P1nsOLA9RuSgZzwwFB0JJ/wHhEnzxyA
   MWIck1tPh3Kvg/iU/lrFNNrFSCh+0eQIPnW6eJuQuxru9w9mBpHdWjvvU
   E=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: AEAQoPxSfpFi2Bg8a383ZVPJW378NPrg1xYv2CS8vO58jCZ7cYIHWbR9FYC+GZzRaVC5g3QYnZ
 EIfVoDBFck2csGvCBfwB21NIHA+3mC0BAXVhVimEPO0K90B/juknr0GBgHmhzg2ujk6qvKGLqU
 8NWlYVtjP5yzNiu1a67zHSGt6CSJxragXCejBIXz6DXEElQJuljrWJGEbjCcFo7btThI8dDM7W
 e73nSSsMG0VaM0GjQVBOPQDXUR1kuxpWZ0COxUz47jktCDXf/Uh7BKPvhmcpRYHvYy2q/pCYHQ
 qV0ItlJ2Z79mLlZTh278Gg22
X-SBRS: 5.1
X-MesageID: 60624708
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:t/eD2KPYBH08ydLvrR1CkMFynXyQoLVcMsEvi/4bfWQNrUoq3mEAz
 WUbUW7UPK6IamL8L40gO461oBlQ75/XxoJgGgto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg+w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozaCk9Uu9
 PIVjLnzWzkkHKrUxPwWEBYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/uSu4UEg29g7ixINffOa
 ZUwWWJpV1fvPEwIa1Y9AaJguc790xETdBUH8QnI9MLb+VP70whZwLXrdt3PdbSiVchT20qVu
 G/C12D4GQ0BcsySzyKf9XChjfOJmjn0MKoQHrCl8v9hgHWI23ceThYRUDOToOa7ol6zXcpFL
 E4Z8TZoqrI9nHFHVfGkAUf++iTd+EdBBZwASIXW9T1h1ILX6AqcWVQjFgdkK84Yue0xXWAy3
 RyGyoaB6SNUjJWZTneU97GxpDy0ODQIIWJqWRLoXTfp8PG4/tht00unosJLVffs04arQW2YL
 yWi9XBm390uYdg3O7JXFLwtqxalvdD3QwE8/W07tUr1v1oiNOZJi2FFgGU3DMqszq7FETFtX
 1BewqByCdzi6rnXyUSwrB0lRu3B2hp8GGS0baRTN5cg7S+x3HWoYJpd5jpzTG8wbJ1bJmC4M
 B+C410AjHO2AJdNRfUpC79d9uxwlfSwfTgbfqy8giVyjmhZK1bcoXAGib+41GHxikk8+ZzTy
 r/AGftA+U0yUPw9pBLvHr91+eZymkgWmDOCLbimnk/P+efPOxaopUItbQLmghYRt/jf/m04M
 r93aqO39vmoeLGkP3SMr9dMdQtiwLpSLcmelvG7v9Wre2JOMGogF+XQ0fUmfYlklL5SjeDG4
 je2XUow9bY1rSSvxdyiZi8xZbXxc4x4qH5nbyUgMUzxgyooYJq17bdZfJwyJOF1+OtmxP9yb
 v8EZ8TfXagfFmWZo2wQPcvnsYhvVBW3ngbSbSCrVycyIsx7TAvT9966Iga2rHsSDjC6vNcVq
 qG70l+JWoIKQglvVZ6EaP+mw16rk2IaneZ+AxnBLtVJIR2++4l2MS3hyPQwJphUexnEwzKb0
 SeQAAsZ+raR89NkroGRiPnd/YmzEuZ4Ek5LJEXh7O67ZXvA426u4Y5cS+LULzrTY3z5pfe5b
 uJPwvCibPBexARWs5BxGqpAxL4l44e9vKdTywlpESmZb1mvDb88cHCK0dMW6/9Iz75d/wC3R
 liO6p9RPrDQYJHpF1sYJQwEaOWf1K5LxmmOvKpteEiqtjVq+LenUFlJO0jegSNQG7J5LYc5z
 Lpzo8UR8QG+1kInP9vuYvq4LIhQwqjsi5kai6w=
IronPort-HdrOrdr: A9a23:zHssfa8IXZjdT4Il9oRuk+E8db1zdoMgy1knxilNoENuHfBwxv
 rDoB1E73LJYVYqOU3Jmbi7Sc69qFfnhORICOgqTMyftWzd1ldAQ7sSj7cKrweQfhEWs9QtqJ
 uIEJIOduEYb2IK9PoSiTPQe71LoKjlgdGVbKXlvg9QpGlRGt5dBmxCe2Cm+yNNNW177c1TLu
 vh2iMLnUvqRV0nKuCAQlUVVenKoNPG0LrgfB49HhYirC2Dlymh5rLWGwWRmk52aUID/Z4StU
 z+1yDp7KSqtP+2jjfaym/o9pxT3P/s0MFKCsCggtUcbh/slgGrToJ8XKDqhkF+nMifrHIR1P
 XcqRYpOMp+r1vXY2GOuBPonzLt1T4/gkWSv2OwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze
 Ziw3+Zn4A/N2KPoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vFpLA
 BXNrCd2B9qSyLYU5iA1VMfguBEH05DUitue3Jy+/B8iFNt7TVEJ0hx/r1pop5PzuN4d3B+3Z
 W2Dk1frsA7ciYnV9MMOA4/e7rENoXse2OEDIvAGyWuKEk4U0i93qIfpo9Fo92XRA==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60624708"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NoEPTVVTctNGqnXrgWwwMsxT+FoT71u7pzDiF4U0g71xepJ40mgig+QXTAsjotRMBi+X9CcCpMinLVQ+P0Sd54fAIR+SLYsF/sDDVBkQMAbVJl36Rcvojz8Y2lodTDeQyHyTpj2SR/5FhRo+RYKpF9HPLZ12rO10ilL7Dy/ABreWI1fxzkbM3sCNot3uk7Nl468Msxx8BYaa1LYWrnWtzqy+luGSuLa0MoztCIvR2W5BtPzxp8AJzcFvCm8iuc2STbZKAAcOmV7AZ49sny6NFfdHH4zw05hiirnt+FaqsvUGthqa7GRNVqgyTDtkQWTkVp8NllM5KQ3eSyHE0X1jEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QrSNUfA6rg/8rOoYMleGgYV1k/V8+exu+bgURlUjxn4=;
 b=VJfnaxQpKDX+enzKyGqnEUgihLwFa0kvdq2DbhUYo0yDMszBn39owCedxmcvT/Lq2Uzte6r1psH9l9JZ4V15VMXEkUxb+73TaOkfQ95mvq98ImGvKgjxZAObIE6RQHrE3XsfddI67Nm7W7Xqyew+Gh9W3fP8x0xO+V9RBTUq+QJdsJkBh3HRwiHkRo+VEOU/p3gVB0DrdPgAcUbvJoQjJWi8lVZe6iXLzRn/BI7IjSEdGXEexU0jkd4ZerbOUQb8ylqJ4l4PDoDBBM+wZIz75Vqh51DpeR8VcJodDcLATZB9/5a9WsWuqO4RpMWcPYE+RViMSrVpCl3FjWLfsXDAUQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QrSNUfA6rg/8rOoYMleGgYV1k/V8+exu+bgURlUjxn4=;
 b=edGhCIowk8eqeb1Ti7R0yFm6e3rrS3e2sVf5l2VPzDLbtaTiT7OAiGM3kvrvhSBo/n1hizirTF/KV9JmXFPHdx1SrU4BvgXRg8elx6VJ+RLatyXI95ARP3uso/SPURpcDzrmPnGHKx52SFbmP5v1LlhTJJHJDJluXp/6GwJq0aw=
Date: Thu, 25 Nov 2021 11:43:17 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Ian Jackson
	<iwj@xenproject.org>, Wei Liu <wl@xen.org>, Xen-devel
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Message-ID: <YZ9oxXdnAEXaRtAD@Air-de-Roger>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
X-ClientProxiedBy: MR2P264CA0130.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:30::22) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b07dc2ab-c1f7-4a5c-289d-08d9b000826c
X-MS-TrafficTypeDiagnostic: DM6PR03MB5178:
X-Microsoft-Antispam-PRVS: <DM6PR03MB51784D30EB4C46D5C82ACE438F629@DM6PR03MB5178.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2582;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: XTN8FehQYe8D1YEAD/YWMr2tELExUF91uXzZTIN+LuT9ouyg+JSkK62B5ua4L+itaQRrKqRAho4s668movFQiHWYq9hnV0ROolxVFZpDXXR4xru2pV+/hj6JT2kmfOV8sqiuvRcKfvJEPa25wdqGuecExV3nR48y1XFmOPj0kwVlCoqaOYuENsPNWV4tz3vqMs32+WCS2VLZy7Z1yfdmRtXiEBR0CwxkUvift3TfZIYqDp9E2wlI3YQncC05w9zGke12ihq+8OwxVp1ulCJ//LobKf2jJx/Bc5sQ0WMYLB+A8sogmjgF+ODqRYn5H33dXlnX/+qzVeybElnJstHQhUpxUcPtm4L0THisFHB8RNYgpsYNgDqSn72g/ghotUKymM5dL4dvVM98d8MspqyiwDDkjOPsaiCBFBxecwrwIkvwSdgWQtRv6IL3rTG92QrZM7W/7CkErAfXdqU6x/zTUHDE7NqzZFrNi9ITGUZshPhypk5fS8OCBzDmqXwkXkR01YJSo47wqQKndloih9lyS/B1HH9fjwwzGag/qkJ8zrUAlJraJpT63kj8aCXVx6Egs311vdyZJAuT9yxdNTtxys72XKwN/oyuROyotTWnsHRgRsRtbzHcVvpMbM9sJme86okjvjEu4Q22Jk2KBPT2yg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(66556008)(54906003)(66476007)(8936002)(53546011)(9686003)(5660300002)(6496006)(86362001)(82960400001)(26005)(186003)(6666004)(956004)(8676002)(66946007)(316002)(38100700002)(85182001)(508600001)(33716001)(6916009)(83380400001)(2906002)(4326008)(6486002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OVRVR1FUL0tBR0p4eHZKeHdJYUd2MHdPeS9oQW5sODhzK2hQazhGM2xsQmpE?=
 =?utf-8?B?dG9MeGt5cGVBbllROWt2b2xZVHpSSUxUS2FrNHlHeDF0bFdhSmVIUTJDdDF0?=
 =?utf-8?B?NmF4aXJNNjdpNXM0WDUxcllGcytLL0xaREpscktucUplSE40YytOeGhBMGZH?=
 =?utf-8?B?amg2NDZ4cGZRM2EyUnNGTGVNdldCTlNrNHlMdXBBekFmaDdoM1RrUUhqSm16?=
 =?utf-8?B?WVY0R1M0eW1NakN3Z3lZa3Nna1g1VWpRWk5OeTBjQlNHajJuS0N3c2d6VDJQ?=
 =?utf-8?B?VXhEeTI2dVUxT3BpYitFZXdIQ2ZaVG1MdGYyRUovYWNlQk5hL0IzcHlNa25D?=
 =?utf-8?B?bUpQOGdTczZTNzFzb2Y0dTRjcnRLMVRwbloyNm9jWUkreGZjcml1U0NTUWlC?=
 =?utf-8?B?cGJLbjhTMERYbnRWR2xjeXlSZHhMU3BYUHNpUUxVL1AzUGhIL2ZLSVFCenlm?=
 =?utf-8?B?SHZjYkgwellCYXdlR0U4WkZKNUpDZi9YdlZLNjZVV0lGaU15NEd2aks5TDNq?=
 =?utf-8?B?UE9uSWh2ZDE2QlU3b0NsZldscXR4dEJ1RVRTcDI3YUF2V0pKbngvVTZwMWJ3?=
 =?utf-8?B?eDEvTzhmM044WnRKVVdhZWlKUTRESHdFaERBRVd2OVd0STFjdzBveFhSYzY0?=
 =?utf-8?B?cjZWZGxtdkpPUUhCSVpmMjNSNkpTdDlRblY4Qng1UVBzbDl4RUZhUWRzeFhx?=
 =?utf-8?B?VTAzT2diRitmbWtGVUlvZ2hPNm1xM0VjYkEwRmZQeFRqT0hsN0RMbXY1ankx?=
 =?utf-8?B?bmF3aWM1eWNBNFlrY3MvYzZ1bTEzRnlVUkRWQWJiU1U2Sk14cWhBY09tVUE3?=
 =?utf-8?B?RTVkcFZCeWdSblU2Rm5iTXBxYWh1cFl6dndYaXBFdkdDMy9KQXVWTWRmdnN3?=
 =?utf-8?B?czNXemFSaEFQSEcwRTBZdTVrNENjcFVIZmRTWitQVGo4czRXSEVNWFI2Q2I5?=
 =?utf-8?B?SjdaSWQvcnNqaWNKLzJ6NllGRHVIT1FKRDBMNnVWLzNUbmhXeWFnM0loelN6?=
 =?utf-8?B?NmlVWi9ZY3FQYWcxVG5GNlBaK3FrQ2FidS8relRsVURzSEpPa010UWJEeVlh?=
 =?utf-8?B?aWFjcnpEeXFON3ZkNElmUzRTQi9zL1h1SlB5Vld1NTN4TXFSWGhyYWpvWTNZ?=
 =?utf-8?B?QkI1MnZGMjBWTWEyaVNzb010ZDZaUnZHdHFHTktTNGtSTUcydGE2em5yV2NV?=
 =?utf-8?B?M2ZCNGEwRy9zVFVRdFJicjl2MGZnd1RKWmJnSXZVQm5hUzNZVU9NYm1pdHBq?=
 =?utf-8?B?Qno4UkdHVUlIcTFpSGxnMmloTktYU0NwQlVNajlYZ1lZQm1QMkUwc1IvM2FK?=
 =?utf-8?B?cWE2UmJjU0h5VjlueFU1ME5VWVdWWXV6R0xMa09tSlVVRzlqSXcxQkgwSnNz?=
 =?utf-8?B?WlVCS2NCcDJ3Z05OdzljcjJmemF5VmNWbVdBQi9SMitIbHd5dHRjZER6Ynh1?=
 =?utf-8?B?TEZ6UTAvMGo1QXhMUGdWUXBFeTVCTnNBWTNzcjN5K2NYZ2JiVkVyTWgzcnZK?=
 =?utf-8?B?MU1BQzAwelFhODdWRXR3aXBxc1RqM1hnMDNwSDdrZGhLS3J0ZlZEb1U4dlBR?=
 =?utf-8?B?b3M0Y2FFaFE1Nnp2Uyt6aEx5QjgrblpsMVNublVMeU1Pb0tvYnM0MGs3aUN3?=
 =?utf-8?B?aFFqWnNOVE10dmtVaEdhbjFEbHVrTS9zRUd1NmhlWlRyWFBidUd2ZFNQY0Zi?=
 =?utf-8?B?SUFla2dmeVJsNXpxMytkOWlaZ3JZVWdWWUVLUzFQYU9FZ0hwM1pvc2dQdld0?=
 =?utf-8?B?eC9HSHV3ek5OMEF6N0Z2Q0h3SG1IbE5FODZ4UDE3aDZDY0ttbHJMa3Zaczdh?=
 =?utf-8?B?MEkrYnA2OXJjakZmMDdlZFBybk1kWVJabUdZTTJnR09mUGxhQTBwVnk1N1I0?=
 =?utf-8?B?UmVZZW5xL0tCKzh6S2ttU3BkNWdMdTRZZFY1OWRva0REV3Y5T25Ud09KT2tv?=
 =?utf-8?B?a0F3NE5ZUHJ5VHFDWWUxNndMQ1pUcW9vUHZONlVJZlkvZlllWW1YOC84SWtW?=
 =?utf-8?B?c2sybm5xSDZ3bk1BQmtTVXNqV2IwMjd1YmlWNXhzd0JFODhYZ0hRR1c4SG5p?=
 =?utf-8?B?dktrSDU2amdYcm1VaXJFbHZ6bjVscDRZRnEyNWlyYTMxY0JYV2toWEp2b2U1?=
 =?utf-8?B?YWVmUTJNQ1NYQ2s1TkpDU1dENDNqaU91dHY5eERTcWVoMDFkNXA0OE1ML012?=
 =?utf-8?Q?6g3kacnc4x/CP6TUnPSqgog=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: b07dc2ab-c1f7-4a5c-289d-08d9b000826c
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 10:44:08.5116
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AtTD+JQL4XMD3ZwoBWGDv83cs8sQIIC+6XhigTfG4g5Id+ymHiIZuxCOry3DJR/0t2TvrheCiXQVpAZEVVoXvQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5178
X-OriginatorOrg: citrix.com

On Thu, Nov 25, 2021 at 11:25:36AM +0100, Jan Beulich wrote:
> On 24.11.2021 22:11, Andrew Cooper wrote:
> > OSSTest has identified a 3rd regression caused by this change.  Migration
> > between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
> > fails with:
> > 
> >   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
> >   xc: error: Restore failed (22 = Invalid argument): Internal error
> > 
> > which is a safety check to prevent resuming the guest when the CPUID data has
> > been truncated.  The problem is caused by shrinking of the max policies, which
> > is an ABI that needs handling compatibly between different versions of Xen.
> > 
> > Furthermore, shrinking of the default policies also breaks things in some
> > cases, because certain cpuid= settings in a VM config file which used to have
> > an effect will now be silently discarded.
> > 
> > This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as well as the
> > partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (which added
> > one new case where cpuid= settings might not apply correctly) and restores the
> > same behaviour as Xen 4.15.
> > 
> > Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents")
> > Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies max leaves")
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> While not strictly needed with Roger having given his already,
> Acked-by: Jan Beulich <jbeulich@suse.com>
> to signal my (basic) agreement with the course of action taken.
> Nevertheless I fear this is going to become yet one more case where
> future action is promised, but things then die out.

I'm certainly happy to look at newer versions of this patch, but I
think we should consider doing the shrinking only on the toolstack
said, and only after all the manipulations on the policy have been
performed.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 10:52:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 10:52:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230860.399085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCLx-0007cj-Iv; Thu, 25 Nov 2021 10:51:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230860.399085; Thu, 25 Nov 2021 10:51:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCLx-0007cc-Eu; Thu, 25 Nov 2021 10:51:45 +0000
Received: by outflank-mailman (input) for mailman id 230860;
 Thu, 25 Nov 2021 10:51:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqCLv-0007cU-FM
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 10:51:43 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac43ebbc-4ddd-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 11:51:41 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2055.outbound.protection.outlook.com [104.47.12.55]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-11-4Ym-RGmqMSaurZgYrKI-Sw-1; Thu, 25 Nov 2021 11:51:40 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5327.eurprd04.prod.outlook.com (2603:10a6:803:5c::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Thu, 25 Nov
 2021 10:51:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 10:51:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0032.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::45) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Thu, 25 Nov 2021 10:51:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac43ebbc-4ddd-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637837501;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=3zQMTHZ0xf21aSUN/Bzaq5BvcL+OzDY4jFixdwGrXdc=;
	b=Xwu4rVMV1JllN79hscf3nppAVW+B+ZILm/5PYo/afDxtDzbZKbIidRCRQyZhUJsk9C3yau
	9C531wErNz9EVhKvNqx1qIfbBD6cLdq5jF0pU1KGah4vMDEda5H6fykZwLJDm86riBwN5V
	gcvPi2WsOHLdiuxKc7MHItfBFX1X6Lk=
X-MC-Unique: 4Ym-RGmqMSaurZgYrKI-Sw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TcJZ+Y04HkZHLoNcpuXk1ICpq6LpjvZWtEarDyLR/PETC70K5NMqQ8qWJcSI4724MWI3WfVW3QESpLS/5uXxuHmMizoveLBV+K3CRnLtSF6Wo5X45+F1u74QGfghGULUNb94pOTODWvPW0uBvWSvkSsgxiGCTq8mBigB6qjpOlXhdAVDHZHQHGB3YCqaPOoB9BX/AQbUwbug7xQ31/v4SwuQWH+bFWJaxs0VVe/RKL6A/pdO+kySiTzrrXlaXVJjg/ohihlV15aeYUqaRAmNcHNqYaS4xQ9P10ZjjZ2pXFDOg/Usfp6Ftz52a2cUON+Fiuylm6hikIB7QhNJ39or7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3zQMTHZ0xf21aSUN/Bzaq5BvcL+OzDY4jFixdwGrXdc=;
 b=djIBH71hl6LRRwuTlwwWSa7ghiERDl9MfXukUsnnsfP2X0MGEdjxyl5CWjLEDQ+y+tfvSiwyLkHzlnmcDXBjPXZOG/sRF2qBdQ/9IUsEEDzVSFEw5/PMOcrQMINJ7HEaSqOeA+n3aZMNY3p5fqBjVrzNc49n1Iqfzb7LExxPTPgUuxzJhn9XgTdl0s3WwWSfQxKogXEGgDTG4pEK85yNyr2h+0869Dsh9WISp6tmz/A38EHqx3ZYM17iEewQJSLJl7s9xIcfcGqYW6MoNxfQheOkn9hoHu+eTEuJqUzXBpYeTX8UlVe+tc8wBX43JKAlELG71CzXjIWw5FDRHrp5xw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <587fd950-ffdc-1888-5f97-2ea142069f57@suse.com>
Date: Thu, 25 Nov 2021 11:51:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
 <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
 <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
 <fffb492e-f570-069b-7355-c00f48215dad@suse.com>
 <8512f6a7-0b79-8fff-49fb-80c3d8a7a436@suse.com>
 <db2a0bc9-386e-3198-f8f8-95121571abdc@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <db2a0bc9-386e-3198-f8f8-95121571abdc@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P191CA0032.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:8b::45) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 951756cf-8b65-4a2f-973c-08d9b0018c21
X-MS-TrafficTypeDiagnostic: VI1PR04MB5327:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB532779299DA05E3C242EFCCBB3629@VI1PR04MB5327.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	TUfXEeldp1vzjtPkkyzcBE5k/4EyKGAlLI+m0xcNkTnP/ucxlGcVPiiXcL4KC782GjO9EkDOaxPY3B6rbVMCa0OpWYaK7Hkjj721jP2Cq4Sg2ZM/90yJBhmSYUOxLJC6mDOXtVr0MYdsVmDY/7eeYyN/BiIKGLRzH6WNozyYnPLcBAiJv4ebm5yG/PFcCVzkDD1Uj6+sKxTSHdmHnctwurCAp1osZKYPvSvcIaubKlcCmu4/22BRcqzoB0pMUM33jr2f3+vJkE6ftAcNA6nccNOA2YQe11vF3qhXw1574HyiTpo8SAA6XkYioDVPzxXtMxHL09n5soZCX3GEWhR4bkY3lo7iZoVAegAfSGqNKPh+svH92pRkQHgvSg5FDrsS9PKbrXrcAgKQHgJ2EQHSWzI/fqLeYHMzXo/ouV890fcgEHIsb009GZZtgdTE5L7pNkLGUf+RaqWOG5BdQWCfGsicu3x2hVYW2UIf/z4UpyvRmxNoznarnk2c3f6tYauc2cX+5AjaWjYzwFdl4JCVgEOEWpDcXs4+3kVkX90wwMO2s/3LdH9D6lJetKqBG0noO/zkESKpVdc9FlpcEAiBGYUdfZKHU0G9pX+haWnmVcER6eOtGM0DmmFWoVH3J9WEBfmZnJEyR+j6K2rvGwJ+BW6FYAuCgCHuRcUTpWsmKXwpyuQiUe5MxiOBX5W1XzAlt7tK5YctjVAp36IMqAMLKzAv7V9OspKDZXStK42asCgvYzOAOkLSM/JNE7itaTPJ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(7416002)(2616005)(8936002)(956004)(5660300002)(6862004)(83380400001)(31686004)(4326008)(38100700002)(8676002)(16576012)(6636002)(26005)(186003)(37006003)(86362001)(508600001)(36756003)(66476007)(66556008)(53546011)(2906002)(316002)(31696002)(66946007)(6486002)(54906003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b1hLUDlJcExzVlp4S0crdlg4aWNzNVRHeTdXNjQ3Z3c5NDM1bDl2eE5rTHhu?=
 =?utf-8?B?UUx0YVUwM1RwdkVGZWZZQVpYZWVFS1E2bWF4dm9iMjcrTzNDdzUwSXkrTWNO?=
 =?utf-8?B?RlVPWm9YVGJBZFlhVGx2NjFkVnNreHRRMXExekdBb3R1ckRodkxGZ0xxR0dJ?=
 =?utf-8?B?dTVKL2tQSXRCOXRKWkh6bnRtVWJkM0RUdnd5Vk5uRTREZGtzNFU4dlQxT3Fx?=
 =?utf-8?B?R2hmL1dTeGp1VVhWUElNVnpralNBQnRBMkxsWDg5S3JpRGxRYjRjZHEyM3Jz?=
 =?utf-8?B?TCtNTE41Mkd5YVVsWDc4eWhrdjFRVzdiYlRxWlN0Uklvd0hKc1RZR0lhRGRZ?=
 =?utf-8?B?UkgxVjl4WjMvUnpMTlJ2YlptMlVvUVRqNjc5UE1WT3dwODZDVE5aaTB2VU02?=
 =?utf-8?B?eDlEcTF1K2E0UURiRU5QdVZFbzA5NzlPeWNOK0w2TE0rS1BOb1NmajlMRWVQ?=
 =?utf-8?B?OHNIU2tMZFE0UDN1QnMzYStoY2pheThyMld0SHd0TCs4UHN0VG9yTmxPeVFN?=
 =?utf-8?B?ODZuVU9HT0FrdDRSaG5HTjF4NDkyeW0ya1RPNkRzVjg2V2dkZGk0WXByQlp3?=
 =?utf-8?B?eU53dngvTXYzQ3l6VDg2Vk5HQkltaHFvdHU2K3NJUzJNUVQ2LzZld2dPSWUz?=
 =?utf-8?B?Ylo2cEpkZTVzb3h4dHhxYW9OUUNLZ0t5blJTZDd0eG9VSng4OEJGVUg3NC9v?=
 =?utf-8?B?UCtTZEM1V3dzZ2o4OG80Nmd5akQ4cEYycVlUMjNwTEt0MnFMcDZGT0NnZzBY?=
 =?utf-8?B?dlZLcWFEZzFhZTlGV2Z3T3hnZjJnaUhxNjlqd3U4cTJrcmZ1T25GUTZuSzhO?=
 =?utf-8?B?VFdPVlFubmtPNU15dW5vN1NITkVxenVZOVRWVmxkaUpHdXhkeG1JU0dzd3Ev?=
 =?utf-8?B?OHdxVUJKMmZYZ3h5M0IwUWxHdXptd2swdGVTM2NkK241T01rUXhzK2piamEv?=
 =?utf-8?B?WUNoaUhkeTEzd0RSZmlaNjBlenVMN05Ka0hzSlVxRGtVYjkzeFFjamQ0OVVY?=
 =?utf-8?B?Z0xQd3RMZGlmR1pkTVg0UDdVd0ZiVHNic1RRM0o4Y2NRM3BDeE9ROVFLSGxt?=
 =?utf-8?B?N1lmTDVNVjY0S29jc1RQUXJVcG1uKzA3MjJTUjl4bHp1TnE2UExXMlVMY3d4?=
 =?utf-8?B?VGRuSllzWFUvK0VvL0VkSWRLQU12VnIvdFJnallqWDZYenlmTDlwZVpGTWdy?=
 =?utf-8?B?bzJVL2RtVVFRYVZHNkd2TFpVQUxtUTVLTGFWTFVaZ2lIT256cUlzQ3dsUDdZ?=
 =?utf-8?B?SW1uMEUrcFE1UVNoejFhMUdyVXFtSEVQdDZkZ1Y1ZEJHVUg3amxmQW1ScXJh?=
 =?utf-8?B?b1g5N2NSclpSTWhDSSt5UTN6eWs3Q21PcEVEdzFYaENsenJOMDZySGJRbTkr?=
 =?utf-8?B?Y3pteHB5d0xMZEc3c2VJRU9pTm1lSXJyd1I3WEF0cENPT1J2VG9VSW1NVmJz?=
 =?utf-8?B?MnRWaDkyclBQdGFaWDg2cDlqbG9UNmtqTFVDRTgzMjN4WTVVU1F2bW84Q0p5?=
 =?utf-8?B?bTNsOXdrSTZUY2FsbXYwbXZuWEd6bDZaeWhoN3E2b0NKWHROMFF5NmUxU1cr?=
 =?utf-8?B?S2dQWFRDcHhCVjhiV3BHaytpeDJmUjhoSzBYNHJhRWZsTVVLUS94WENCSkFz?=
 =?utf-8?B?NXZjN2NmK1c1WWFIM0dGcC9KdjhlTTRTOW95YkcwUkFvYXBSNUxOYTZPMHYy?=
 =?utf-8?B?TG5wbzFPRWtJQWEyWGNiWTJQTjdsWVhuSjRwbFJzb2VEV0o0cW9BZlBIV2M4?=
 =?utf-8?B?SWFnajV5Qjl3SHhKSGNUdHlQK1dYN0lnNmlWbk9FZ2J1YnZTNUF0TUZvb1Jy?=
 =?utf-8?B?dEdBdTZWQlNScjhpeS9za09IWVNOV3g1UUhMbzVYN0xoMzY5eGc3dEoxMi9Z?=
 =?utf-8?B?NWZqNE1zUENmVHJ1K0dUczJpNEZsRzZpbG90YS8rOTI0eDU3S0tMZGk4MUFI?=
 =?utf-8?B?TkxjUzR2eVNSTzNmYUZyeE83TlgyN0NwQW9UUzduRTBENHk1bGU4OU81Y1Zz?=
 =?utf-8?B?TStxMmNMYVgxMjRtVFlLTGNiNTVkcU9GNDFOMGliRGNCa3lFZTl4U1AyRUxh?=
 =?utf-8?B?UTZEWktBaHNyZHhhbnpva0kyYzNVd0c5QTVZRERza1lkVWpRV2Zoc1Vsbyta?=
 =?utf-8?B?K3ZGN2Rka2lFcDhIek1leXhPSFVTWTdoL2ZubDFGdXZKZjlEZVRhdVQ3UUxP?=
 =?utf-8?Q?/+c8KXiiInU/1dgymUB9HQA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 951756cf-8b65-4a2f-973c-08d9b0018c21
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 10:51:34.3812
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cxG472fxopYBsAA+WedzqAZmpEwysDxfLD/8Sre+3IT5iSR1qvSoU0eGcyXKNvM5z/dyoHjTVSpoB4luPOYC2w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5327

On 25.11.2021 11:33, Juergen Gross wrote:
> On 25.11.21 11:19, Jan Beulich wrote:
>> On 25.11.2021 11:12, Juergen Gross wrote:
>>> On 25.11.21 10:38, Jan Beulich wrote:
>>>> On 25.11.2021 07:55, Juergen Gross wrote:
>>>>> On 22.11.21 16:39, Jan Beulich wrote:
>>>>>> On 14.09.2021 14:35, Juergen Gross wrote:
>>>>>>> @@ -103,6 +104,43 @@ void domain_reset_states(void)
>>>>>>>         rcu_read_unlock(&domlist_read_lock);
>>>>>>>     }
>>>>>>>     
>>>>>>> +int domain_get_dom_state_changed(struct xen_control_changed_domain *info)
>>>>>>> +{
>>>>>>> +    unsigned int dom;
>>>>>>> +    struct domain *d;
>>>>>>> +
>>>>>>> +    while ( (dom = find_first_bit(dom_state_changed, DOMID_MASK + 1)) <
>>>>>>> +            DOMID_FIRST_RESERVED )
>>>>>>
>>>>>> As per my comment on the earlier patch - the use of DOMID_MASK + 1 vs
>>>>>> is quite puzzling here.
>>>>>
>>>>> Okay, will change that.
>>>>>
>>>>>>
>>>>>>> +    {
>>>>>>> +        d = rcu_lock_domain_by_id(dom);
>>>>>>> +
>>>>>>> +        if ( test_and_clear_bit(dom, dom_state_changed) )
>>>>>>> +        {
>>>>>>> +            info->domid = dom;
>>>>>>> +            if ( d )
>>>>>>> +            {
>>>>>>> +                info->state = XEN_CONTROL_CHANGEDDOM_STATE_EXIST;
>>>>>>> +                if ( d->is_shut_down )
>>>>>>> +                    info->state |= XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN;
>>>>>>> +                if ( d->is_dying == DOMDYING_dead )
>>>>>>> +                    info->state |= XEN_CONTROL_CHANGEDDOM_STATE_DYING;
>>>>>>> +                info->unique_id = d->unique_id;
>>>>>>> +
>>>>>>> +                rcu_unlock_domain(d);
>>>>>>> +            }
>>>>>>> +
>>>>>>> +            return 0;
>>>>>>
>>>>>> With rapid creation of short lived domains, will the caller ever get to
>>>>>> see information on higher numbered domains (if, say, it gets "suitably"
>>>>>> preempted within its own environment)? IOW shouldn't there be a way for
>>>>>> the caller to specify a domid to start from?
>>>>>
>>>>> I'd rather have a local variable for the last reported domid and start
>>>>> from that.
>>>>
>>>> Well, it probably doesn't matter much to have yet one more aspect making
>>>> this a single-consumer-only interface.
>>>
>>> For making it an interface consumable by multiple users you'd need to
>>> have a per-consumer data set, which would include the bitmap of changed
>>> domains and could include the domid last tested.
>>>
>>> As one consumer is Xenstore, and Xenstore can run either in a dedicated
>>> domain or in dom0, I believe a multiple user capable interface would
>>> even need to support multiple users in the same domain, which would be
>>> even more complicated. So I continue to be rather hesitant to add this
>>> additional complexity with only some vague idea of "might come handy in
>>> the future".
>>>
>>>>
>>>>>>> +/*
>>>>>>> + * XEN_CONTROL_OP_get_state_changed_domain
>>>>>>> + *
>>>>>>> + * Get information about a domain having changed state and reset the state
>>>>>>> + * change indicator for that domain. This function is usable only by a domain
>>>>>>> + * having registered the VIRQ_DOM_EXC event (normally Xenstore).
>>>>>>> + *
>>>>>>> + * arg: XEN_GUEST_HANDLE(struct xen_control_changed_domain)
>>>>>>> + *
>>>>>>> + * Possible return values:
>>>>>>> + * 0: success
>>>>>>> + * <0 : negative Xen errno value
>>>>>>> + */
>>>>>>> +#define XEN_CONTROL_OP_get_state_changed_domain     1
>>>>>>> +struct xen_control_changed_domain {
>>>>>>> +    domid_t domid;
>>>>>>> +    uint16_t state;
>>>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_EXIST     0x0001  /* Domain is existing. */
>>>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN  0x0002  /* Shutdown finished. */
>>>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_DYING     0x0004  /* Domain dying. */
>>>>>>> +    uint32_t pad1;           /* Returned as 0. */
>>>>>>> +    uint64_t unique_id;      /* Unique domain identifier. */
>>>>>>> +    uint64_t pad2[6];        /* Returned as 0. */
>>>>>>
>>>>>> I think the padding fields have to be zero on input, not just on return.
>>>>>
>>>>> I don't see why this would be needed, as this structure is only ever
>>>>> copied to the caller, so "on input" just doesn't apply here.
>>>>>
>>>>>> Unless you mean to mandate them to be OUT only now and forever. I also
>>>>>
>>>>> The whole struct is OUT only.
>>>>
>>>> Right now, yes. I wouldn't exclude "pad1" to become a flags field,
>>>> controlling some future behavioral aspect of the operation.
>>>
>>> Right now I don't see the need for that, see my reasoning above.
>>
>> If your reference is to the single consumer aspect, then I don't see
>> why that would matter here. Future xenstore may want/need to make
>> use of such a future flag, yet older xenstore still wouldn't know
>> about it.
> 
> I'm not sure it is a good idea to mix IN and OUT fields in such a struct
> which is meant to return information only.
> 
> I'd rather add a new sub-op in this case taking another parameter for
> specifying additional options or a struct prepending the needed IN
> fields to above struct.

Well, okay. May ask for a /* OUT */ comment then ahead of the first of
the struct fields?

>>>>>> wonder how the trailing padding plays up with the version sub-op: Do we
>>>>>> really need such double precaution?
>>>>>
>>>>> I can remove it.
>>>>>
>>>>>> Also - should we use uint64_aligned_t here?
>>>>>
>>>>> Yes.
>>>>
>>>> But you realize this isn't straightforward, for the type not being
>>>> available in plain C89 (nor C99)? That's why it's presently used in
>>>> tools-only interfaces only, and the respective header are excluded
>>>> from the "is ANSI compatible" checking (memory.h and hvm/dm_op.h
>>>> have special but imo crude "precautions").
>>>
>>> No, I didn't realize that. I just looked how it is used today and
>>> agreed I should follow current usage.
>>>
>>> But even with using a stable interface I'm not sure we need to make it
>>> strictly ANSI compatible, as usage of this interface will still be
>>> restricted to tools.
>>
>> True. Problem is that our present __XEN_TOOLS__ guards have effectively
>> dual meaning - "tools only" and "unstable". We merely need to be sure
>> everyone understands that this is changing. Perhaps when you add such a
>> guard here, it may want accompanying by a respective comment.
> 
> I'd be fine with that.
> 
> Maybe we want a new guard "__XEN_INTERNAL__" for that (new) purpose?

Not sure - this may result in undesirable code churn elsewhere.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:01:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:01:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230868.399099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCUr-0000k6-LG; Thu, 25 Nov 2021 11:00:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230868.399099; Thu, 25 Nov 2021 11:00:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCUr-0000jz-IC; Thu, 25 Nov 2021 11:00:57 +0000
Received: by outflank-mailman (input) for mailman id 230868;
 Thu, 25 Nov 2021 11:00:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqCUq-0000jt-KQ
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:00:56 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f61e58d3-4dde-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:00:55 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 97C802193C;
 Thu, 25 Nov 2021 11:00:54 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 1CBCD13466;
 Thu, 25 Nov 2021 11:00:54 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id JcWZBOZsn2HtUQAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 11:00:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f61e58d3-4dde-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637838054; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=NDeBCeEDHfhcuV9LoQQGH8DRzUoHtcpF+S1lG8XAmDc=;
	b=fSGDAl1/wR0xexqTNERUnDbRCqcGzrf36fXk0U8Vy8829LwowfxZuyPRowQ1GVaTmE5sKD
	oBG29X+5oWuvsrL7v71ISYfMyr3uulguvENQqnFNYcN+AY+lQPrebOvGLMjFFtW9/+u6rP
	yqAMzRENTLG4CcjMUOgX9QDeCHle8yw=
To: Jan Beulich <jbeulich@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
 <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
 <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
 <fffb492e-f570-069b-7355-c00f48215dad@suse.com>
 <8512f6a7-0b79-8fff-49fb-80c3d8a7a436@suse.com>
 <db2a0bc9-386e-3198-f8f8-95121571abdc@suse.com>
 <587fd950-ffdc-1888-5f97-2ea142069f57@suse.com>
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
Message-ID: <5c3a28f5-6620-7e5e-03ef-454d26a7aa01@suse.com>
Date: Thu, 25 Nov 2021 12:00:53 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <587fd950-ffdc-1888-5f97-2ea142069f57@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="Icn0KwlSQM6w454Fv5RqYpqmo7NkxVfWo"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--Icn0KwlSQM6w454Fv5RqYpqmo7NkxVfWo
Content-Type: multipart/mixed; boundary="IERTyVQq9c6wSQKBEfbNSf3OzItntHnep";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <5c3a28f5-6620-7e5e-03ef-454d26a7aa01@suse.com>
Subject: Re: [PATCH RFC 3/4] xen: add new stable control hypercall
References: <20210914123600.1626-1-jgross@suse.com>
 <20210914123600.1626-4-jgross@suse.com>
 <b1599a82-052f-9369-3774-69c5c570370c@suse.com>
 <5ea7400b-448b-039b-6d95-2552c9ae7cd4@suse.com>
 <e64c22c7-992b-9fdf-a276-263e9173a313@suse.com>
 <fffb492e-f570-069b-7355-c00f48215dad@suse.com>
 <8512f6a7-0b79-8fff-49fb-80c3d8a7a436@suse.com>
 <db2a0bc9-386e-3198-f8f8-95121571abdc@suse.com>
 <587fd950-ffdc-1888-5f97-2ea142069f57@suse.com>
In-Reply-To: <587fd950-ffdc-1888-5f97-2ea142069f57@suse.com>

--IERTyVQq9c6wSQKBEfbNSf3OzItntHnep
Content-Type: multipart/mixed;
 boundary="------------A17716D857B0CCF3B2E537E9"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------A17716D857B0CCF3B2E537E9
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 25.11.21 11:51, Jan Beulich wrote:
> On 25.11.2021 11:33, Juergen Gross wrote:
>> On 25.11.21 11:19, Jan Beulich wrote:
>>> On 25.11.2021 11:12, Juergen Gross wrote:
>>>> On 25.11.21 10:38, Jan Beulich wrote:
>>>>> On 25.11.2021 07:55, Juergen Gross wrote:
>>>>>> On 22.11.21 16:39, Jan Beulich wrote:
>>>>>>> On 14.09.2021 14:35, Juergen Gross wrote:
>>>>>>>> @@ -103,6 +104,43 @@ void domain_reset_states(void)
>>>>>>>>          rcu_read_unlock(&domlist_read_lock);
>>>>>>>>      }
>>>>>>>>     =20
>>>>>>>> +int domain_get_dom_state_changed(struct xen_control_changed_dom=
ain *info)
>>>>>>>> +{
>>>>>>>> +    unsigned int dom;
>>>>>>>> +    struct domain *d;
>>>>>>>> +
>>>>>>>> +    while ( (dom =3D find_first_bit(dom_state_changed, DOMID_MA=
SK + 1)) <
>>>>>>>> +            DOMID_FIRST_RESERVED )
>>>>>>>
>>>>>>> As per my comment on the earlier patch - the use of DOMID_MASK + =
1 vs
>>>>>>> is quite puzzling here.
>>>>>>
>>>>>> Okay, will change that.
>>>>>>
>>>>>>>
>>>>>>>> +    {
>>>>>>>> +        d =3D rcu_lock_domain_by_id(dom);
>>>>>>>> +
>>>>>>>> +        if ( test_and_clear_bit(dom, dom_state_changed) )
>>>>>>>> +        {
>>>>>>>> +            info->domid =3D dom;
>>>>>>>> +            if ( d )
>>>>>>>> +            {
>>>>>>>> +                info->state =3D XEN_CONTROL_CHANGEDDOM_STATE_EX=
IST;
>>>>>>>> +                if ( d->is_shut_down )
>>>>>>>> +                    info->state |=3D XEN_CONTROL_CHANGEDDOM_STA=
TE_SHUTDOWN;
>>>>>>>> +                if ( d->is_dying =3D=3D DOMDYING_dead )
>>>>>>>> +                    info->state |=3D XEN_CONTROL_CHANGEDDOM_STA=
TE_DYING;
>>>>>>>> +                info->unique_id =3D d->unique_id;
>>>>>>>> +
>>>>>>>> +                rcu_unlock_domain(d);
>>>>>>>> +            }
>>>>>>>> +
>>>>>>>> +            return 0;
>>>>>>>
>>>>>>> With rapid creation of short lived domains, will the caller ever =
get to
>>>>>>> see information on higher numbered domains (if, say, it gets "sui=
tably"
>>>>>>> preempted within its own environment)? IOW shouldn't there be a w=
ay for
>>>>>>> the caller to specify a domid to start from?
>>>>>>
>>>>>> I'd rather have a local variable for the last reported domid and s=
tart
>>>>>> from that.
>>>>>
>>>>> Well, it probably doesn't matter much to have yet one more aspect m=
aking
>>>>> this a single-consumer-only interface.
>>>>
>>>> For making it an interface consumable by multiple users you'd need t=
o
>>>> have a per-consumer data set, which would include the bitmap of chan=
ged
>>>> domains and could include the domid last tested.
>>>>
>>>> As one consumer is Xenstore, and Xenstore can run either in a dedica=
ted
>>>> domain or in dom0, I believe a multiple user capable interface would=

>>>> even need to support multiple users in the same domain, which would =
be
>>>> even more complicated. So I continue to be rather hesitant to add th=
is
>>>> additional complexity with only some vague idea of "might come handy=
 in
>>>> the future".
>>>>
>>>>>
>>>>>>>> +/*
>>>>>>>> + * XEN_CONTROL_OP_get_state_changed_domain
>>>>>>>> + *
>>>>>>>> + * Get information about a domain having changed state and rese=
t the state
>>>>>>>> + * change indicator for that domain. This function is usable on=
ly by a domain
>>>>>>>> + * having registered the VIRQ_DOM_EXC event (normally Xenstore)=
=2E
>>>>>>>> + *
>>>>>>>> + * arg: XEN_GUEST_HANDLE(struct xen_control_changed_domain)
>>>>>>>> + *
>>>>>>>> + * Possible return values:
>>>>>>>> + * 0: success
>>>>>>>> + * <0 : negative Xen errno value
>>>>>>>> + */
>>>>>>>> +#define XEN_CONTROL_OP_get_state_changed_domain     1
>>>>>>>> +struct xen_control_changed_domain {
>>>>>>>> +    domid_t domid;
>>>>>>>> +    uint16_t state;
>>>>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_EXIST     0x0001  /* Domai=
n is existing. */
>>>>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_SHUTDOWN  0x0002  /* Shutd=
own finished. */
>>>>>>>> +#define XEN_CONTROL_CHANGEDDOM_STATE_DYING     0x0004  /* Domai=
n dying. */
>>>>>>>> +    uint32_t pad1;           /* Returned as 0. */
>>>>>>>> +    uint64_t unique_id;      /* Unique domain identifier. */
>>>>>>>> +    uint64_t pad2[6];        /* Returned as 0. */
>>>>>>>
>>>>>>> I think the padding fields have to be zero on input, not just on =
return.
>>>>>>
>>>>>> I don't see why this would be needed, as this structure is only ev=
er
>>>>>> copied to the caller, so "on input" just doesn't apply here.
>>>>>>
>>>>>>> Unless you mean to mandate them to be OUT only now and forever. I=
 also
>>>>>>
>>>>>> The whole struct is OUT only.
>>>>>
>>>>> Right now, yes. I wouldn't exclude "pad1" to become a flags field,
>>>>> controlling some future behavioral aspect of the operation.
>>>>
>>>> Right now I don't see the need for that, see my reasoning above.
>>>
>>> If your reference is to the single consumer aspect, then I don't see
>>> why that would matter here. Future xenstore may want/need to make
>>> use of such a future flag, yet older xenstore still wouldn't know
>>> about it.
>>
>> I'm not sure it is a good idea to mix IN and OUT fields in such a stru=
ct
>> which is meant to return information only.
>>
>> I'd rather add a new sub-op in this case taking another parameter for
>> specifying additional options or a struct prepending the needed IN
>> fields to above struct.
>=20
> Well, okay. May ask for a /* OUT */ comment then ahead of the first of
> the struct fields?

Yes, will add it.

>=20
>>>>>>> wonder how the trailing padding plays up with the version sub-op:=
 Do we
>>>>>>> really need such double precaution?
>>>>>>
>>>>>> I can remove it.
>>>>>>
>>>>>>> Also - should we use uint64_aligned_t here?
>>>>>>
>>>>>> Yes.
>>>>>
>>>>> But you realize this isn't straightforward, for the type not being
>>>>> available in plain C89 (nor C99)? That's why it's presently used in=

>>>>> tools-only interfaces only, and the respective header are excluded
>>>>> from the "is ANSI compatible" checking (memory.h and hvm/dm_op.h
>>>>> have special but imo crude "precautions").
>>>>
>>>> No, I didn't realize that. I just looked how it is used today and
>>>> agreed I should follow current usage.
>>>>
>>>> But even with using a stable interface I'm not sure we need to make =
it
>>>> strictly ANSI compatible, as usage of this interface will still be
>>>> restricted to tools.
>>>
>>> True. Problem is that our present __XEN_TOOLS__ guards have effective=
ly
>>> dual meaning - "tools only" and "unstable". We merely need to be sure=

>>> everyone understands that this is changing. Perhaps when you add such=
 a
>>> guard here, it may want accompanying by a respective comment.
>>
>> I'd be fine with that.
>>
>> Maybe we want a new guard "__XEN_INTERNAL__" for that (new) purpose?
>=20
> Not sure - this may result in undesirable code churn elsewhere.

I won't insist on it. :-)


Juergen

--------------A17716D857B0CCF3B2E537E9
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------A17716D857B0CCF3B2E537E9--

--IERTyVQq9c6wSQKBEfbNSf3OzItntHnep--

--Icn0KwlSQM6w454Fv5RqYpqmo7NkxVfWo
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGfbOUFAwAAAAAACgkQsN6d1ii/Ey9u
dwf+JVvv2iGy/tK/Z/oTG06w1xkhJlYBWUDgiKX0nqCn7sCpmt7aV/gUabpFs8SYyzjXnR25J5Br
r5iHXDocvueC6ycGlOtwoKCmWwOMvIgFrDyqgUPBjS7NsxLEViDCoKtE68vCcuwBrHTDmqPf1ji0
B0ZNXyuem8MW+Z4ryAhiDv7OJ6sXb+j5lFiOiQX52n6+NCtkxD8cdBbLJ7r87nt+nxSrdjxotxNA
JBTX3ZUo7CwNKq6xZX24zOBOHe2ooiwsB1NCC4PIjuLAXuynHpi+/Qq1pWv7ou/WoQjxdKoUowN2
OGcQBkK6F2100aWJgUSelJVq4y1K6bAQejKHrkjsDg==
=cIe1
-----END PGP SIGNATURE-----

--Icn0KwlSQM6w454Fv5RqYpqmo7NkxVfWo--


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230876.399153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWr-0002R6-GO; Thu, 25 Nov 2021 11:03:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230876.399153; Thu, 25 Nov 2021 11:03:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWr-0002Qt-Bg; Thu, 25 Nov 2021 11:03:01 +0000
Received: by outflank-mailman (input) for mailman id 230876;
 Thu, 25 Nov 2021 11:03:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWp-0001K8-V5
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:00 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3fc44399-4ddf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:02:58 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id bi37so15338121lfb.5
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:02:58 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.02.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:02:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fc44399-4ddf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=SIXE3W6i3s/PLOl0AkNDVroqqsWXQtCAA5ldmwUu770=;
        b=D+5JaGFFqqHmDxTsOOorPtGxHkEZFwzBu8u0Ib/1AIjClZhQfGcgdZsbeG+F4KlAu0
         qfUdHXdlpt6JhltuKb/SjBVBPmF8vEYJ+joBuI5hJ5hdz+4DdY6ZWSMr0rOD6UDsMKgL
         ELc3zM3CIXiKloq8zIrjfDrJBzJUS8uTOjHtNP3eUJTh/80ICApR5fR1yUDIRyhQa4ls
         jmcT7Z15nSOicM6ugh1X1Qwga7Xs5KbM2p8XmfCUKXLMmQ828Sw78qJHUhNYCwIG0UGH
         Pa6jafKpRcOXpuX8upViqmUOSgeVf4LAWv8f8OL1y1v6SwYo3wNVDw338hvfJCumvgao
         DL6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=SIXE3W6i3s/PLOl0AkNDVroqqsWXQtCAA5ldmwUu770=;
        b=CpK9TANEogQGpDTWAhuQMjhu3lLloaaQrUe3xrORJAdE/Hv2nwkMDih7126A9gRAl6
         AgK70YzpRf1l6Dr2XRo7hzCdo2vFhhqAtCc/AFdfQonnXeP6OW6EwCNCTnvrH/sKoezD
         DsTogGG7CX+SSd+RAbucWPXpczKsCDCE3osf/XdzX05xamtsYZw4rv6h4ky3dkZSMmbJ
         ZWqLxgOQxD62rtU4eVSFCSi0m0n3PGGDJGfh+BirX8/Tc/qtvQS6SIugSto/ua0//Htm
         NlAs9d6/u12X0S7ZAXgAaYFJ9+zUqXt63FhFtCg4R8uyFtgssoETOhrfp6fxRWg/t2OF
         tWog==
X-Gm-Message-State: AOAM531VcCz0ACZ/nzL7FNt61J1M+OFcm1FuDuMHm2ueWSyTd4W+DCcz
	FtIKuTHWzTT7vvokVlKjFidkCUS1LvNs8dIF
X-Google-Smtp-Source: ABdhPJx09MIvNVbWsL5ybmB16oQuTeaKVlA/ijtzUP+FwCqO601HhcDh+t2TR1dIzqqxcX0aPTnfoQ==
X-Received: by 2002:a05:6512:39ca:: with SMTP id k10mr23315305lfu.426.1637838177842;
        Thu, 25 Nov 2021 03:02:57 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Ian Jackson <ian.jackson@eu.citrix.com>
Subject: [PATCH v5 03/14] vpci: move lock outside of struct vpci
Date: Thu, 25 Nov 2021 13:02:40 +0200
Message-Id: <20211125110251.2877218-4-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Roger Pau Monne <roger.pau@citrix.com>

This way the lock can be used to check whether vpci is present, and
removal can be performed while holding the lock, in order to make
sure there are no accesses to the contents of the vpci struct.
Previously removal could race with vpci_read for example, since the
lock was dropped prior to freeing pdev->vpci.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>
---
New in v5 of this series: this is an updated version of the patch published at
https://lore.kernel.org/xen-devel/20180717094830.54806-2-roger.pau@citrix.com/

Changes since v2:
 - fixed pdev->vpci = xzalloc(struct vpci); under spin_lock (Jan)
Changes since v1:
 - Assert that vpci_lock is locked in vpci_remove_device_locked.
 - Remove double newline.
 - Shrink critical section in vpci_{read/write}.
---
 tools/tests/vpci/emul.h       |  5 ++-
 tools/tests/vpci/main.c       |  4 +--
 xen/arch/x86/hvm/vmsi.c       |  8 ++---
 xen/drivers/passthrough/pci.c |  1 +
 xen/drivers/vpci/header.c     | 21 +++++++----
 xen/drivers/vpci/msi.c        | 11 ++++--
 xen/drivers/vpci/msix.c       |  8 ++---
 xen/drivers/vpci/vpci.c       | 68 +++++++++++++++++++++++------------
 xen/include/xen/pci.h         |  1 +
 xen/include/xen/vpci.h        |  5 +--
 10 files changed, 85 insertions(+), 47 deletions(-)

diff --git a/tools/tests/vpci/emul.h b/tools/tests/vpci/emul.h
index 2e1d3057c9d8..d018fb5eef21 100644
--- a/tools/tests/vpci/emul.h
+++ b/tools/tests/vpci/emul.h
@@ -44,6 +44,7 @@ struct domain {
 };
 
 struct pci_dev {
+    bool vpci_lock;
     struct vpci *vpci;
 };
 
@@ -53,10 +54,8 @@ struct vcpu
 };
 
 extern const struct vcpu *current;
-extern const struct pci_dev test_pdev;
+extern struct pci_dev test_pdev;
 
-typedef bool spinlock_t;
-#define spin_lock_init(l) (*(l) = false)
 #define spin_lock(l) (*(l) = true)
 #define spin_unlock(l) (*(l) = false)
 
diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index b9a0a6006bb9..26c95b08b6b1 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -23,7 +23,8 @@ static struct vpci vpci;
 
 const static struct domain d;
 
-const struct pci_dev test_pdev = {
+struct pci_dev test_pdev = {
+    .vpci_lock = false,
     .vpci = &vpci,
 };
 
@@ -158,7 +159,6 @@ main(int argc, char **argv)
     int rc;
 
     INIT_LIST_HEAD(&vpci.handlers);
-    spin_lock_init(&vpci.lock);
 
     VPCI_ADD_REG(vpci_read32, vpci_write32, 0, 4, r0);
     VPCI_READ_CHECK(0, 4, r0);
diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index 13e2a190b439..1f7a37f78264 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -910,14 +910,14 @@ int vpci_msix_arch_print(const struct vpci_msix *msix)
         {
             struct pci_dev *pdev = msix->pdev;
 
-            spin_unlock(&msix->pdev->vpci->lock);
+            spin_unlock(&msix->pdev->vpci_lock);
             process_pending_softirqs();
             /* NB: we assume that pdev cannot go away for an alive domain. */
-            if ( !pdev->vpci || !spin_trylock(&pdev->vpci->lock) )
+            if ( !spin_trylock(&pdev->vpci_lock) )
                 return -EBUSY;
-            if ( pdev->vpci->msix != msix )
+            if ( !pdev->vpci || pdev->vpci->msix != msix )
             {
-                spin_unlock(&pdev->vpci->lock);
+                spin_unlock(&pdev->vpci_lock);
                 return -EAGAIN;
             }
         }
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index a9d31293ac09..286808b25e65 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -328,6 +328,7 @@ static struct pci_dev *alloc_pdev(struct pci_seg *pseg, u8 bus, u8 devfn)
     *((u8*) &pdev->bus) = bus;
     *((u8*) &pdev->devfn) = devfn;
     pdev->domain = NULL;
+    spin_lock_init(&pdev->vpci_lock);
 
     arch_pci_init_pdev(pdev);
 
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 40ff79c33f8f..bd23c0274d48 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -142,12 +142,13 @@ bool vpci_process_pending(struct vcpu *v)
         if ( rc == -ERESTART )
             return true;
 
-        spin_lock(&v->vpci.pdev->vpci->lock);
-        /* Disable memory decoding unconditionally on failure. */
-        modify_decoding(v->vpci.pdev,
-                        rc ? v->vpci.cmd & ~PCI_COMMAND_MEMORY : v->vpci.cmd,
-                        !rc && v->vpci.rom_only);
-        spin_unlock(&v->vpci.pdev->vpci->lock);
+        spin_lock(&v->vpci.pdev->vpci_lock);
+        if ( v->vpci.pdev->vpci )
+            /* Disable memory decoding unconditionally on failure. */
+            modify_decoding(v->vpci.pdev,
+                            rc ? v->vpci.cmd & ~PCI_COMMAND_MEMORY : v->vpci.cmd,
+                            !rc && v->vpci.rom_only);
+        spin_unlock(&v->vpci.pdev->vpci_lock);
 
         rangeset_destroy(v->vpci.mem);
         v->vpci.mem = NULL;
@@ -285,6 +286,12 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
                 continue;
         }
 
+        spin_lock(&tmp->vpci_lock);
+        if ( !tmp->vpci )
+        {
+            spin_unlock(&tmp->vpci_lock);
+            continue;
+        }
         for ( i = 0; i < ARRAY_SIZE(tmp->vpci->header.bars); i++ )
         {
             const struct vpci_bar *bar = &tmp->vpci->header.bars[i];
@@ -303,12 +310,14 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
             rc = rangeset_remove_range(mem, start, end);
             if ( rc )
             {
+                spin_unlock(&tmp->vpci_lock);
                 printk(XENLOG_G_WARNING "Failed to remove [%lx, %lx]: %d\n",
                        start, end, rc);
                 rangeset_destroy(mem);
                 return rc;
             }
         }
+        spin_unlock(&tmp->vpci_lock);
     }
 
     ASSERT(dev);
diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index 5757a7aed20f..e3ce46869dad 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -270,7 +270,7 @@ void vpci_dump_msi(void)
     rcu_read_lock(&domlist_read_lock);
     for_each_domain ( d )
     {
-        const struct pci_dev *pdev;
+        struct pci_dev *pdev;
 
         if ( !has_vpci(d) )
             continue;
@@ -282,8 +282,13 @@ void vpci_dump_msi(void)
             const struct vpci_msi *msi;
             const struct vpci_msix *msix;
 
-            if ( !pdev->vpci || !spin_trylock(&pdev->vpci->lock) )
+            if ( !spin_trylock(&pdev->vpci_lock) )
                 continue;
+            if ( !pdev->vpci )
+            {
+                spin_unlock(&pdev->vpci_lock);
+                continue;
+            }
 
             msi = pdev->vpci->msi;
             if ( msi && msi->enabled )
@@ -323,7 +328,7 @@ void vpci_dump_msi(void)
                 }
             }
 
-            spin_unlock(&pdev->vpci->lock);
+            spin_unlock(&pdev->vpci_lock);
             process_pending_softirqs();
         }
     }
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 846f1b8d7038..5310cc3ff520 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -225,7 +225,7 @@ static int msix_read(struct vcpu *v, unsigned long addr, unsigned int len,
         return X86EMUL_OKAY;
     }
 
-    spin_lock(&msix->pdev->vpci->lock);
+    spin_lock(&msix->pdev->vpci_lock);
     entry = get_entry(msix, addr);
     offset = addr & (PCI_MSIX_ENTRY_SIZE - 1);
 
@@ -254,7 +254,7 @@ static int msix_read(struct vcpu *v, unsigned long addr, unsigned int len,
         ASSERT_UNREACHABLE();
         break;
     }
-    spin_unlock(&msix->pdev->vpci->lock);
+    spin_unlock(&msix->pdev->vpci_lock);
 
     return X86EMUL_OKAY;
 }
@@ -297,7 +297,7 @@ static int msix_write(struct vcpu *v, unsigned long addr, unsigned int len,
         return X86EMUL_OKAY;
     }
 
-    spin_lock(&msix->pdev->vpci->lock);
+    spin_lock(&msix->pdev->vpci_lock);
     entry = get_entry(msix, addr);
     offset = addr & (PCI_MSIX_ENTRY_SIZE - 1);
 
@@ -370,7 +370,7 @@ static int msix_write(struct vcpu *v, unsigned long addr, unsigned int len,
         ASSERT_UNREACHABLE();
         break;
     }
-    spin_unlock(&msix->pdev->vpci->lock);
+    spin_unlock(&msix->pdev->vpci_lock);
 
     return X86EMUL_OKAY;
 }
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 657697fe3406..ceaac4516ff8 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -35,12 +35,10 @@ extern vpci_register_init_t *const __start_vpci_array[];
 extern vpci_register_init_t *const __end_vpci_array[];
 #define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
 
-void vpci_remove_device(struct pci_dev *pdev)
+static void vpci_remove_device_handlers_locked(struct pci_dev *pdev)
 {
-    if ( !has_vpci(pdev->domain) )
-        return;
+    ASSERT(spin_is_locked(&pdev->vpci_lock));
 
-    spin_lock(&pdev->vpci->lock);
     while ( !list_empty(&pdev->vpci->handlers) )
     {
         struct vpci_register *r = list_first_entry(&pdev->vpci->handlers,
@@ -50,15 +48,33 @@ void vpci_remove_device(struct pci_dev *pdev)
         list_del(&r->node);
         xfree(r);
     }
-    spin_unlock(&pdev->vpci->lock);
+}
+
+void vpci_remove_device_locked(struct pci_dev *pdev)
+{
+    ASSERT(spin_is_locked(&pdev->vpci_lock));
+
+    vpci_remove_device_handlers_locked(pdev);
     xfree(pdev->vpci->msix);
     xfree(pdev->vpci->msi);
     xfree(pdev->vpci);
     pdev->vpci = NULL;
 }
 
+void vpci_remove_device(struct pci_dev *pdev)
+{
+    if ( !has_vpci(pdev->domain) )
+        return;
+
+    spin_lock(&pdev->vpci_lock);
+    if ( pdev->vpci )
+        vpci_remove_device_locked(pdev);
+    spin_unlock(&pdev->vpci_lock);
+}
+
 int vpci_add_handlers(struct pci_dev *pdev)
 {
+    struct vpci *vpci;
     unsigned int i;
     int rc = 0;
 
@@ -68,12 +84,13 @@ int vpci_add_handlers(struct pci_dev *pdev)
     /* We should not get here twice for the same device. */
     ASSERT(!pdev->vpci);
 
-    pdev->vpci = xzalloc(struct vpci);
-    if ( !pdev->vpci )
+    vpci = xzalloc(struct vpci);
+    if ( !vpci )
         return -ENOMEM;
 
+    spin_lock(&pdev->vpci_lock);
+    pdev->vpci = vpci;
     INIT_LIST_HEAD(&pdev->vpci->handlers);
-    spin_lock_init(&pdev->vpci->lock);
 
     for ( i = 0; i < NUM_VPCI_INIT; i++ )
     {
@@ -83,7 +100,8 @@ int vpci_add_handlers(struct pci_dev *pdev)
     }
 
     if ( rc )
-        vpci_remove_device(pdev);
+        vpci_remove_device_locked(pdev);
+    spin_unlock(&pdev->vpci_lock);
 
     return rc;
 }
@@ -152,8 +170,6 @@ int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,
     r->offset = offset;
     r->private = data;
 
-    spin_lock(&vpci->lock);
-
     /* The list of handlers must be kept sorted at all times. */
     list_for_each ( prev, &vpci->handlers )
     {
@@ -165,14 +181,12 @@ int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,
             break;
         if ( cmp == 0 )
         {
-            spin_unlock(&vpci->lock);
             xfree(r);
             return -EEXIST;
         }
     }
 
     list_add_tail(&r->node, prev);
-    spin_unlock(&vpci->lock);
 
     return 0;
 }
@@ -183,7 +197,6 @@ int vpci_remove_register(struct vpci *vpci, unsigned int offset,
     const struct vpci_register r = { .offset = offset, .size = size };
     struct vpci_register *rm;
 
-    spin_lock(&vpci->lock);
     list_for_each_entry ( rm, &vpci->handlers, node )
     {
         int cmp = vpci_register_cmp(&r, rm);
@@ -195,14 +208,12 @@ int vpci_remove_register(struct vpci *vpci, unsigned int offset,
         if ( !cmp && rm->offset == offset && rm->size == size )
         {
             list_del(&rm->node);
-            spin_unlock(&vpci->lock);
             xfree(rm);
             return 0;
         }
         if ( cmp <= 0 )
             break;
     }
-    spin_unlock(&vpci->lock);
 
     return -ENOENT;
 }
@@ -311,7 +322,7 @@ static uint32_t merge_result(uint32_t data, uint32_t new, unsigned int size,
 uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
 {
     const struct domain *d = current->domain;
-    const struct pci_dev *pdev;
+    struct pci_dev *pdev;
     const struct vpci_register *r;
     unsigned int data_offset = 0;
     uint32_t data = ~(uint32_t)0;
@@ -327,7 +338,12 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
     if ( !pdev )
         return vpci_read_hw(sbdf, reg, size);
 
-    spin_lock(&pdev->vpci->lock);
+    spin_lock(&pdev->vpci_lock);
+    if ( !pdev->vpci )
+    {
+        spin_unlock(&pdev->vpci_lock);
+        return vpci_read_hw(sbdf, reg, size);
+    }
 
     /* Read from the hardware or the emulated register handlers. */
     list_for_each_entry ( r, &pdev->vpci->handlers, node )
@@ -370,6 +386,7 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
             break;
         ASSERT(data_offset < size);
     }
+    spin_unlock(&pdev->vpci_lock);
 
     if ( data_offset < size )
     {
@@ -379,7 +396,6 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
 
         data = merge_result(data, tmp_data, size - data_offset, data_offset);
     }
-    spin_unlock(&pdev->vpci->lock);
 
     return data & (0xffffffff >> (32 - 8 * size));
 }
@@ -414,7 +430,7 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
                 uint32_t data)
 {
     const struct domain *d = current->domain;
-    const struct pci_dev *pdev;
+    struct pci_dev *pdev;
     const struct vpci_register *r;
     unsigned int data_offset = 0;
     const unsigned long *ro_map = pci_get_ro_map(sbdf.seg);
@@ -440,7 +456,14 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
         return;
     }
 
-    spin_lock(&pdev->vpci->lock);
+    spin_lock(&pdev->vpci_lock);
+    if ( !pdev->vpci )
+    {
+        spin_unlock(&pdev->vpci_lock);
+        vpci_write_hw(sbdf, reg, size, data);
+        return;
+    }
+
 
     /* Write the value to the hardware or emulated registers. */
     list_for_each_entry ( r, &pdev->vpci->handlers, node )
@@ -475,13 +498,12 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
             break;
         ASSERT(data_offset < size);
     }
+    spin_unlock(&pdev->vpci_lock);
 
     if ( data_offset < size )
         /* Tailing gap, write the remaining. */
         vpci_write_hw(sbdf, reg + data_offset, size - data_offset,
                       data >> (data_offset * 8));
-
-    spin_unlock(&pdev->vpci->lock);
 }
 
 /* Helper function to check an access size and alignment on vpci space. */
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index b6d7e454f814..3f60d6c6c6dd 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -134,6 +134,7 @@ struct pci_dev {
     u64 vf_rlen[6];
 
     /* Data for vPCI. */
+    spinlock_t vpci_lock;
     struct vpci *vpci;
 };
 
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 3f32de9d7eb3..8b22bdef11d0 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -30,8 +30,9 @@ int __must_check vpci_add_handlers(struct pci_dev *dev);
 
 /* Remove all handlers and free vpci related structures. */
 void vpci_remove_device(struct pci_dev *pdev);
+void vpci_remove_device_locked(struct pci_dev *pdev);
 
-/* Add/remove a register handler. */
+/* Add/remove a register handler. Must be called holding the vpci_lock. */
 int __must_check vpci_add_register(struct vpci *vpci,
                                    vpci_read_t *read_handler,
                                    vpci_write_t *write_handler,
@@ -60,7 +61,6 @@ bool __must_check vpci_process_pending(struct vcpu *v);
 struct vpci {
     /* List of vPCI handlers for a device. */
     struct list_head handlers;
-    spinlock_t lock;
 
 #ifdef __XEN__
     /* Hide the rest of the vpci struct from the user-space test harness. */
@@ -231,6 +231,7 @@ static inline int vpci_add_handlers(struct pci_dev *pdev)
 }
 
 static inline void vpci_remove_device(struct pci_dev *pdev) { }
+static inline void vpci_remove_device_locked(struct pci_dev *pdev) { }
 
 static inline void vpci_dump_msi(void) { }
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230877.399159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWs-0002XH-0E; Thu, 25 Nov 2021 11:03:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230877.399159; Thu, 25 Nov 2021 11:03:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWr-0002Uk-PA; Thu, 25 Nov 2021 11:03:01 +0000
Received: by outflank-mailman (input) for mailman id 230877;
 Thu, 25 Nov 2021 11:03:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWq-0001Km-DK
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:00 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40673b5c-4ddf-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 12:02:59 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id n12so15409529lfe.1
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:02:59 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.02.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:02:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 40673b5c-4ddf-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=7kzoaEt6IOOYgPm1yLVSMOcEeyel0wJP73UNzPtLoAI=;
        b=J7c62W6SQ1rWnkjJWulpfBcyPUfKdE/+Jcyqho4A2lXAbkjJISdmAyJhVhmrqhFfCD
         sBlU8pcYaH7OZ3oZwgKGmXYkcGqlEb8mwLaIN1O94wzuLcxO6dmd1kzNp73BbKX4hHkg
         UEYLMLifl8f88XrGdvTNmzNYIBolNacU+y+F49X4YAlT89s9x+WxyIRh1U4Q4DE0i5CQ
         8c27FKLoYlVyoznJc2hLa5n9+ww6v6wGNIzr0lZS3sgt4wc8waC+f+afm9eV4pPuyFEw
         7ByiCf05YD+K6KrDSi3HPV6IvOkcWMSWch+h98S8tJJ6GGNN9Ctm2561xOC/MRyDA1gF
         /NIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=7kzoaEt6IOOYgPm1yLVSMOcEeyel0wJP73UNzPtLoAI=;
        b=y0Ra6Muia4tgAZmiofolkv8udmaacozHAPutY4yID9f1nRIA3xddzTOaeYhD2PAfl1
         w9ZsLZ0YKOKqPHXLqsQDppOIYyY+YJ14uPkIVfZy/jv5xbaz8UG8C28DTtl5CeG7pM4p
         olRun4yMqsddZMBxJumjIbPbGbtMoHPwnfZNmJZLHvPaZ8gNgObse6Qp4WJgjMDqzZ69
         7aSQ4p2L1vj7AW3gW51FTNOb0kjMo4myo9fA1TIbPak7eE5MgZtGqNU06Wktugby1cPM
         ypB0UTee9CTFNMtklGWyzw5+DDmBIJQIcXksxtv+w9L7GftrQaE8cVfHJALLzxXAuVc3
         Y0CQ==
X-Gm-Message-State: AOAM530RnILgj7r71xySDKuVG++hWfROKaEqoAD3DFr+/Dlll3QUkkXH
	X8sekm0YzW/LCiUKNgQRzG4Y2ceov17eQ3Da
X-Google-Smtp-Source: ABdhPJwyW9PROrjGv8m7q1noHVv59lv+CBLisM5gGjx3LBOvlGDfmhbBF7oxhVinCIR6CAKyXD07SQ==
X-Received: by 2002:ac2:4828:: with SMTP id 8mr23352757lft.332.1637838178981;
        Thu, 25 Nov 2021 03:02:58 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 04/14] vpci: cancel pending map/unmap on vpci removal
Date: Thu, 25 Nov 2021 13:02:41 +0200
Message-Id: <20211125110251.2877218-5-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

When a vPCI is removed for a PCI device it is possible that we have
scheduled a delayed work for map/unmap operations for that device.
For example, the following scenario can illustrate the problem:

pci_physdev_op
   pci_add_device
       init_bars -> modify_bars -> defer_map -> raise_softirq(SCHEDULE_SOFTIRQ)
   iommu_add_device <- FAILS
   vpci_remove_device -> xfree(pdev->vpci)

leave_hypervisor_to_guest
   vpci_process_pending: v->vpci.mem != NULL; v->vpci.pdev->vpci == NULL

For the hardware domain we continue execution as the worse that
could happen is that MMIO mappings are left in place when the
device has been deassigned.

For unprivileged domains that get a failure in the middle of a vPCI
{un}map operation we need to destroy them, as we don't know in which
state the p2m is. This can only happen in vpci_process_pending for
DomUs as they won't be allowed to call pci_add_device.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Cc: Roger Pau Monné <roger.pau@citrix.com>
---
Since v4:
 - crash guest domain if map/unmap operation didn't succeed
 - re-work vpci cancel work to cancel work on all vCPUs
 - use new locking scheme with pdev->vpci_lock
New in v4

Fixes: 86dbcf6e30cb ("vpci: cancel pending map/unmap on vpci removal")

---

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 xen/drivers/vpci/header.c | 49 ++++++++++++++++++++++++++++++---------
 xen/drivers/vpci/vpci.c   |  2 ++
 xen/include/xen/pci.h     |  5 ++++
 xen/include/xen/vpci.h    |  6 +++++
 4 files changed, 51 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index bd23c0274d48..ba333fb2f9b0 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -131,7 +131,13 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
 
 bool vpci_process_pending(struct vcpu *v)
 {
-    if ( v->vpci.mem )
+    struct pci_dev *pdev = v->vpci.pdev;
+
+    if ( !pdev )
+        return false;
+
+    spin_lock(&pdev->vpci_lock);
+    if ( !pdev->vpci_cancel_pending && v->vpci.mem )
     {
         struct map_data data = {
             .d = v->domain,
@@ -140,32 +146,53 @@ bool vpci_process_pending(struct vcpu *v)
         int rc = rangeset_consume_ranges(v->vpci.mem, map_range, &data);
 
         if ( rc == -ERESTART )
+        {
+            spin_unlock(&pdev->vpci_lock);
             return true;
+        }
 
-        spin_lock(&v->vpci.pdev->vpci_lock);
-        if ( v->vpci.pdev->vpci )
+        if ( pdev->vpci )
             /* Disable memory decoding unconditionally on failure. */
-            modify_decoding(v->vpci.pdev,
+            modify_decoding(pdev,
                             rc ? v->vpci.cmd & ~PCI_COMMAND_MEMORY : v->vpci.cmd,
                             !rc && v->vpci.rom_only);
-        spin_unlock(&v->vpci.pdev->vpci_lock);
 
-        rangeset_destroy(v->vpci.mem);
-        v->vpci.mem = NULL;
         if ( rc )
+        {
             /*
              * FIXME: in case of failure remove the device from the domain.
              * Note that there might still be leftover mappings. While this is
-             * safe for Dom0, for DomUs the domain will likely need to be
-             * killed in order to avoid leaking stale p2m mappings on
-             * failure.
+             * safe for Dom0, for DomUs the domain needs to be killed in order
+             * to avoid leaking stale p2m mappings on failure.
              */
-            vpci_remove_device(v->vpci.pdev);
+            if ( is_hardware_domain(v->domain) )
+                vpci_remove_device_locked(pdev);
+            else
+                domain_crash(v->domain);
+        }
     }
+    spin_unlock(&pdev->vpci_lock);
 
     return false;
 }
 
+void vpci_cancel_pending_locked(struct pci_dev *pdev)
+{
+    struct vcpu *v;
+
+    ASSERT(spin_is_locked(&pdev->vpci_lock));
+
+    /* Cancel any pending work now on all vCPUs. */
+    for_each_vcpu( pdev->domain, v )
+    {
+        if ( v->vpci.mem && (v->vpci.pdev == pdev) )
+        {
+            rangeset_destroy(v->vpci.mem);
+            v->vpci.mem = NULL;
+        }
+    }
+}
+
 static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
                             struct rangeset *mem, uint16_t cmd)
 {
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index ceaac4516ff8..37103e207635 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -54,7 +54,9 @@ void vpci_remove_device_locked(struct pci_dev *pdev)
 {
     ASSERT(spin_is_locked(&pdev->vpci_lock));
 
+    pdev->vpci_cancel_pending = true;
     vpci_remove_device_handlers_locked(pdev);
+    vpci_cancel_pending_locked(pdev);
     xfree(pdev->vpci->msix);
     xfree(pdev->vpci->msi);
     xfree(pdev->vpci);
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 3f60d6c6c6dd..52d302ac5f35 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -135,6 +135,11 @@ struct pci_dev {
 
     /* Data for vPCI. */
     spinlock_t vpci_lock;
+    /*
+     * Set if PCI device is being removed now and we need to cancel any
+     * pending map/unmap operations.
+     */
+    bool vpci_cancel_pending;
     struct vpci *vpci;
 };
 
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 8b22bdef11d0..cfff87e5801e 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -57,6 +57,7 @@ uint32_t vpci_hw_read32(const struct pci_dev *pdev, unsigned int reg,
  * should not run.
  */
 bool __must_check vpci_process_pending(struct vcpu *v);
+void vpci_cancel_pending_locked(struct pci_dev *pdev);
 
 struct vpci {
     /* List of vPCI handlers for a device. */
@@ -253,6 +254,11 @@ static inline bool __must_check vpci_process_pending(struct vcpu *v)
     ASSERT_UNREACHABLE();
     return false;
 }
+
+static inline void vpci_cancel_pending_locked(struct pci_dev *pdev)
+{
+    ASSERT_UNREACHABLE();
+}
 #endif
 
 #endif
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230872.399110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWn-0001LD-30; Thu, 25 Nov 2021 11:02:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230872.399110; Thu, 25 Nov 2021 11:02:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWm-0001L6-VA; Thu, 25 Nov 2021 11:02:56 +0000
Received: by outflank-mailman (input) for mailman id 230872;
 Thu, 25 Nov 2021 11:02:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqCWl-0001K3-Md
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:02:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqCWl-0000Mj-Ku
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:02:55 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqCWl-0002dY-Jv
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:02:55 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mqCWd-0006cC-Rt; Thu, 25 Nov 2021 11:02:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=MCfLxs2p6BLrEwGsXYHapn5lnCa1eeTWUE0I8mid8O0=; b=qsJbFtEkoJJH1WmQiczR716dxe
	nA99+Gvqbvyo/qC8V6QdDkgoNmHSBsbloVSc4BeDxjKKq359Rkj1dBF43hvaMMmaTr91giclt8jvD
	eO2/Wtgg/b9Me+mWguj4O4BpTi3OhYr+aBpJwmyzPUGSktXiTOBDyJCoFmNSF7MxRsfo=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24991.27991.43570.905419@mariner.uk.xensource.com>
Date: Thu, 25 Nov 2021 11:02:47 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    Wei Liu <wl@xen.org>,
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
In-Reply-To: <00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
	<00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents""):
> While not strictly needed with Roger having given his already,
> Acked-by: Jan Beulich <jbeulich@suse.com>
> to signal my (basic) agreement with the course of action taken.
> Nevertheless I fear this is going to become yet one more case where
> future action is promised, but things then die out.
> 
> Ian - I guess all this now needs is your R-a.

Thanks everyone.  Yes.

For the record,

Release-Acked-by: Ian Jackson <iwj@xenproject.org>

I will commit it myself now.

Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230873.399121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWo-0001bC-A7; Thu, 25 Nov 2021 11:02:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230873.399121; Thu, 25 Nov 2021 11:02:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWo-0001az-6r; Thu, 25 Nov 2021 11:02:58 +0000
Received: by outflank-mailman (input) for mailman id 230873;
 Thu, 25 Nov 2021 11:02:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWm-0001K8-6i
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:02:56 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3db56a18-4ddf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:02:55 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id 207so11700519ljf.10
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:02:55 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.02.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:02:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3db56a18-4ddf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=qWes27X+ww95HfJk0LcTwAiWNNZYkATb656Jfq7wn4Q=;
        b=TfYgaQKGfxpbN/HfHfvDYvLeGaJVBWx6pnGSuK/XRZWj9QtRdyVs9TVG1VwZ6e0wsO
         ci7aVDOwpNje0N/tZHLY0rncYEDwic8+GD/wO2cyhdMedfHodH2qpJhoftazi11+EkyV
         fuTF8OISAgnATCSv4tLW2/37XmnkhrMEwLJMdEdVE+83ZSgWWn06VTKo0NRABercPnxW
         t77q9RmRB8YIK4qHbGMbFIob2WRBRiV0bTuaP9k9U8jkrpLqFeoXYx6eHy9Nx/vWNYae
         yvALdD0gY/mrUkSFMZJcIHL0/xqSrVvHFWloj/PQiF7QSEz7nkvsskw8AcS6MDTT4SoK
         y8DA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=qWes27X+ww95HfJk0LcTwAiWNNZYkATb656Jfq7wn4Q=;
        b=Da5nUuArkA5k5G/w21lpJG0+aqK43LKawGzQjNJ+QwDK9FgX4vsZtwuEmJnfFyw4IQ
         nF/mEpnNVjat/lIKBrU3ax7PDOb4OQ/3jIh1HUZZzowTPrbQlAr+lT4Hz+LlTElTGiX6
         zgLAaMJzN+H+Hbd/Atdm1B/H3V7KCYdnhnHSi5U48ScFC8ipmU+/gEWaPa/vd4Earlim
         Qv7ijrBVRofukhjjYK0Kvr8u+8v2YqNVbIM0DxWjOinIQkiDRibGypSNhG+RMA/DDAcw
         ghHzuM1lXzRVyXQbQcAw1wg9vf7sL/vWSQJsXAikZWmvdlbNDRRC+7nM5Nyw3rCY5lyt
         TeqQ==
X-Gm-Message-State: AOAM533JqjCJrGUXx4Zk8JxTGYcOCwuTMQlFXS8lG55rZ3puBhVOFtjG
	lczgahl+g1esC8E2DS4jMZ9l0d3GUSzJDQ==
X-Google-Smtp-Source: ABdhPJzT9tUL7xkscIRcsW3Uf7EI3BnU4+bn/XI6is9iOshm3fDYlKUdkaEfavkmkaG24GOH5ijfkw==
X-Received: by 2002:a05:651c:50c:: with SMTP id o12mr24253873ljp.438.1637838174135;
        Thu, 25 Nov 2021 03:02:54 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 00/14] PCI devices passthrough on Arm, part 3
Date: Thu, 25 Nov 2021 13:02:37 +0200
Message-Id: <20211125110251.2877218-1-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Hi, all!

1. This patch series is focusing on vPCI and adds support for non-identity
PCI BAR mappings which is required while passing through a PCI device to
a guest. The highlights are:

- Add relevant vpci register handlers when assigning PCI device to a domain
  and remove those when de-assigning. This allows having different
  handlers for different domains, e.g. hwdom and other guests.

- Emulate guest BAR register values based on physical BAR values.
  This allows creating a guest view of the registers and emulates
  size and properties probe as it is done during PCI device enumeration by
  the guest.

- Instead of handling a single range set, that contains all the memory
  regions of all the BARs and ROM, have them per BAR.

- Take into account guest's BAR view and program its p2m accordingly:
  gfn is guest's view of the BAR and mfn is the physical BAR value as set
  up by the host bridge in the hardware domain.
  This way hardware doamin sees physical BAR values and guest sees
  emulated ones.

2. The series also adds support for virtual PCI bus topology for guests:
 - We emulate a single host bridge for the guest, so segment is always 0.
 - The implementation is limited to 32 devices which are allowed on
   a single PCI bus.
 - The virtual bus number is set to 0, so virtual devices are seen
   as embedded endpoints behind the root complex.

3. The series has complete re-work of the locking scheme used/absent before with
the help of the work started by Roger [1]:
[PATCH v5 03/13] vpci: move lock outside of struct vpci

This way the lock can be used to check whether vpci is present, and
removal can be performed while holding the lock, in order to make
sure there are no accesses to the contents of the vpci struct.
Previously removal could race with vpci_read for example, since the
lock was dropped prior to freeing pdev->vpci.
This also solves synchronization issues between all vPCI code entities
which could run in parallel.

4. There is an outstanding TODO left unimplemented by this series:
for unprivileged guests vpci_{read|write} need to be re-worked
to not passthrough accesses to the registers not explicitly handled
by the corresponding vPCI handlers: without fixing that passthrough
to guests is completely unsafe as Xen allows them full access to
the registers.

Xen needs to be sure that every register a guest accesses is not
going to cause the system to malfunction, so Xen needs to keep a
list of the registers it is safe for a guest to access.

For example, we should only expose the PCI capabilities that we know
are safe for a guest to use, i.e.: MSI and MSI-X initially.
The rest of the capabilities should be blocked from guest access,
unless we audit them and declare safe for a guest to access.

As a reference we might want to look at the approach currently used
by QEMU in order to do PCI passthrough. A very limited set of PCI
capabilities known to be safe for untrusted access are exposed to the
guest and registers need to be explicitly handled or else access is
rejected. Xen needs a fairly similar model in vPCI or else none of
this will be safe for unprivileged access.

5. The series was also tested on:
 - x86 PVH Dom0 and doesn't break it.
 - x86 HVM with PCI passthrough to DomU and doesn't break it.

Thank you,
Oleksandr

[1] https://lore.kernel.org/xen-devel/20180717094830.54806-2-roger.pau@citrix.com/

Oleksandr Andrushchenko (13):
  rangeset: add RANGESETF_no_print flag
  vpci: fix function attributes for vpci_process_pending
  vpci: cancel pending map/unmap on vpci removal
  vpci: add hooks for PCI device assign/de-assign
  vpci/header: implement guest BAR register handlers
  vpci/header: handle p2m range sets per BAR
  vpci/header: program p2m with guest BAR view
  vpci/header: emulate PCI_COMMAND register for guests
  vpci/header: reset the command register when adding devices
  vpci: add initial support for virtual PCI bus topology
  xen/arm: translate virtual PCI bus topology for guests
  xen/arm: account IO handlers for emulated PCI MSI-X
  vpci: add TODO for the registers not explicitly handled

Roger Pau Monne (1):
  vpci: move lock outside of struct vpci

 tools/tests/vpci/emul.h       |   5 +-
 tools/tests/vpci/main.c       |   4 +-
 xen/arch/arm/vpci.c           |  33 +++-
 xen/arch/x86/hvm/vmsi.c       |   8 +-
 xen/common/rangeset.c         |   5 +-
 xen/drivers/Kconfig           |   4 +
 xen/drivers/passthrough/pci.c |  11 ++
 xen/drivers/vpci/header.c     | 352 +++++++++++++++++++++++++++-------
 xen/drivers/vpci/msi.c        |  11 +-
 xen/drivers/vpci/msix.c       |   8 +-
 xen/drivers/vpci/vpci.c       | 252 +++++++++++++++++++++---
 xen/include/xen/pci.h         |   6 +
 xen/include/xen/rangeset.h    |   7 +-
 xen/include/xen/sched.h       |   8 +
 xen/include/xen/vpci.h        |  47 ++++-
 15 files changed, 644 insertions(+), 117 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230874.399126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWo-0001eS-LZ; Thu, 25 Nov 2021 11:02:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230874.399126; Thu, 25 Nov 2021 11:02:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWo-0001d0-FB; Thu, 25 Nov 2021 11:02:58 +0000
Received: by outflank-mailman (input) for mailman id 230874;
 Thu, 25 Nov 2021 11:02:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWm-0001Km-TI
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:02:56 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e3d595f-4ddf-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 12:02:56 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id b40so15315526lfv.10
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:02:55 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.02.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:02:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e3d595f-4ddf-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=RCl87Let7v1piBQuF1AwGWgI3o9wVtyo4nCoCPCgQzo=;
        b=S3Ibnsg8Hp3Woi8/hIXa47CEs0zstSsM52a2powxFZx/nQ3ysic3FE5vVAAI6LSPu4
         /bQooWMpp1ftaWMQ7weQIQD58y1c/y8GCvF5SBTE0SflwquVXE1rwiEq3iwAbwmMmxby
         2SjioFB9nbWIRc6BPhiahe4udlZB+E2LpacABoDsxLEpZuJKKzRlONFIp9+y8b2uTk6m
         P9BLS6Sd5tv+OiY+UkAAZYRMCSKeDwsvFJT4TYCVoVrmt8lXS6VQvMcLUAmXzlGs3woD
         Seffm80pcxa7hKgQpf++cSfKgg3ocUg+HMyPKEmzlHeaz0lGaojRl1kvN5hKFWweYx3G
         zYvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=RCl87Let7v1piBQuF1AwGWgI3o9wVtyo4nCoCPCgQzo=;
        b=lbwerSWHT+fD6nXHb8auOHrlayHHwMP7iU4VgFogsMjOfaZ5CM2Q3dr+3BU4RWFYFn
         kEhguVLEYEoWZ1UPvKcVIEUQ3bei9KdmZgMLVoz7eJRkKB2B0EDpoE10E0b8uJq6dz/f
         FABruD6vRf2zTqU5lWvC0L+OVXw9kKZrlDrO/SRzi4nZlHa5XpBFvUh6esddgG34o47N
         IJx3NGc24qX6iQZhnHtqxLOHRlNvw4/MpIUQzt6BXzdhOpBUhrMd/+PwkpXvCuOJRvC+
         xfPNqynY/ajVzsvp2WOhnKxVGvy66gOGz1RiohW0OngT9ibB/IZpvDqfniHGrV+R+/zl
         C65w==
X-Gm-Message-State: AOAM533oz5WApc/uFIPXs78L8paS18pX21yhsoP6gn/dQQpiSYPzeyoz
	4N+jdZa32/w0PC4BvAaTDPpcXn7EMbB+GA==
X-Google-Smtp-Source: ABdhPJxRnShat0Qo6e0njAtYNAACw/nqPCn7aYjsxR9gy+3mgzPQ4pkCvYI87GgT3WFpxBgseaGzjA==
X-Received: by 2002:a05:6512:3a90:: with SMTP id q16mr22510651lfu.135.1637838175293;
        Thu, 25 Nov 2021 03:02:55 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 01/14] rangeset: add RANGESETF_no_print flag
Date: Thu, 25 Nov 2021 13:02:38 +0200
Message-Id: <20211125110251.2877218-2-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There are range sets which should not be printed, so introduce a flag
which allows marking those as such. Implement relevant logic to skip
such entries while printing.

While at it also simplify the definition of the flags by directly
defining those without helpers.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Since v1:
- update BUG_ON with new flag
- simplify the definition of the flags
---
 xen/common/rangeset.c      | 5 ++++-
 xen/include/xen/rangeset.h | 7 ++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/xen/common/rangeset.c b/xen/common/rangeset.c
index 885b6b15c229..ea27d651723b 100644
--- a/xen/common/rangeset.c
+++ b/xen/common/rangeset.c
@@ -433,7 +433,7 @@ struct rangeset *rangeset_new(
     INIT_LIST_HEAD(&r->range_list);
     r->nr_ranges = -1;
 
-    BUG_ON(flags & ~RANGESETF_prettyprint_hex);
+    BUG_ON(flags & ~(RANGESETF_prettyprint_hex | RANGESETF_no_print));
     r->flags = flags;
 
     safe_strcpy(r->name, name ?: "(no name)");
@@ -575,6 +575,9 @@ void rangeset_domain_printk(
 
     list_for_each_entry ( r, &d->rangesets, rangeset_list )
     {
+        if ( r->flags & RANGESETF_no_print )
+            continue;
+
         printk("    ");
         rangeset_printk(r);
         printk("\n");
diff --git a/xen/include/xen/rangeset.h b/xen/include/xen/rangeset.h
index 135f33f6066f..045fcafa8368 100644
--- a/xen/include/xen/rangeset.h
+++ b/xen/include/xen/rangeset.h
@@ -48,9 +48,10 @@ void rangeset_limit(
     struct rangeset *r, unsigned int limit);
 
 /* Flags for passing to rangeset_new(). */
- /* Pretty-print range limits in hexadecimal. */
-#define _RANGESETF_prettyprint_hex 0
-#define RANGESETF_prettyprint_hex  (1U << _RANGESETF_prettyprint_hex)
+/* Pretty-print range limits in hexadecimal. */
+#define RANGESETF_prettyprint_hex   (1U << 0)
+/* Do not print entries marked with this flag. */
+#define RANGESETF_no_print          (1U << 1)
 
 bool_t __must_check rangeset_is_empty(
     const struct rangeset *r);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230875.399133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWp-0001po-5O; Thu, 25 Nov 2021 11:02:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230875.399133; Thu, 25 Nov 2021 11:02:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWp-0001nR-0t; Thu, 25 Nov 2021 11:02:59 +0000
Received: by outflank-mailman (input) for mailman id 230875;
 Thu, 25 Nov 2021 11:02:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWn-0001K8-Ua
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:02:57 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3efb707d-4ddf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:02:57 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id n12so15409277lfe.1
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:02:57 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.02.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:02:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3efb707d-4ddf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=yH9Aud+KhB6bv78AcEs/8owAaYp6cfId4snOD7ig8jw=;
        b=H6hIR2MODuSq0+XyMmOSWqwDEGA5m/qhgk4HpL+cT36B24u7WSDtOZtFBD5Gonc6X9
         A2YcV5BwlB5Arrn4G5EifURgaMBJqRZK8IRn5rm1oxoWty2cm/lH5axD2Bi6FdQqJhfI
         s8qjpY3ANqiUyRszD9eE7H7yP0+Deek5MWp0QAac7sgjB5VtWIUFdHKHBq8ZGt93qqG1
         229RojPvgxEpATw+xVDtgFzS7UN5g8j15TDI7tAPT2ETs3oQiRLNXQYqC4XFoP36FqVG
         DGylLfdG1xpKlBqdIMj5/gGzzv1srJRhrelqRMkgOM5akHquECv4ubNECaLzkUNhTwbD
         fsyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=yH9Aud+KhB6bv78AcEs/8owAaYp6cfId4snOD7ig8jw=;
        b=5TBQH/0BD50HCTaJQc+hATh1jYbCJMgL9gpVy/C0JcAMwh8RSXxB36dqeX9Uag0PuZ
         LSBxj9BcnHzH9fjTxCh6TPoqomTKP5TbjP9bW5lo/IhCIFYjFE5sBJ5/g0lMy7zwwNBb
         qEI+aJ2Fpqh+DPNABcIFK2+hdcPUntW+yNkKKS0ElAuoXYfjQV0YPxu1D5EnJeeLptsi
         3Rzc51ms4fNUHJCaNO6bNFJ8WYkAC6uik/ljhLQ423nVrLAsg9yfaV5eBWr2Z5w8X72r
         K+4YeL1xwxcWKQN10rly6YBZT83ePGUAPekYOsjJIaMRv+DYckraUjAbtemaaU0szYRE
         FZ7A==
X-Gm-Message-State: AOAM532IPiFv6vc+m56L1GiasQapoRNV6bJn+3GEXS9o4MRcH7utmVpY
	F436DumOkBAh26eKy9U9ugLDgjy4WbzZZQ==
X-Google-Smtp-Source: ABdhPJy61wspGeTsK95YYXpRFa8RWw8M9gAX8WvjKHapgNGt7DEmMrCdL8E19Upw8eZ8yKk+WomS5Q==
X-Received: by 2002:ac2:5cc7:: with SMTP id f7mr16096375lfq.412.1637838176471;
        Thu, 25 Nov 2021 03:02:56 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 02/14] vpci: fix function attributes for vpci_process_pending
Date: Thu, 25 Nov 2021 13:02:39 +0200
Message-Id: <20211125110251.2877218-3-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

vpci_process_pending is defined with different attributes, e.g.
with __must_check if CONFIG_HAS_VPCI enabled and not otherwise.
Fix this by defining both of the definitions with __must_check.

Fixes: 14583a590783 ("7fbb096bf345 kconfig: don't select VPCI if building a shim-only binary")

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Cc: Roger Pau Monné <roger.pau@citrix.com>

New in v4
---
 xen/include/xen/vpci.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 9ea66e033f11..3f32de9d7eb3 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -247,7 +247,7 @@ static inline void vpci_write(pci_sbdf_t sbdf, unsigned int reg,
     ASSERT_UNREACHABLE();
 }
 
-static inline bool vpci_process_pending(struct vcpu *v)
+static inline bool __must_check vpci_process_pending(struct vcpu *v)
 {
     ASSERT_UNREACHABLE();
     return false;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230878.399176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWu-00036N-Mm; Thu, 25 Nov 2021 11:03:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230878.399176; Thu, 25 Nov 2021 11:03:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWu-00035p-FM; Thu, 25 Nov 2021 11:03:04 +0000
Received: by outflank-mailman (input) for mailman id 230878;
 Thu, 25 Nov 2021 11:03:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWs-0001K8-8b
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:02 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 41629d9c-4ddf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:03:01 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id b40so15316060lfv.10
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:01 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.02.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:02:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41629d9c-4ddf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=zlqkD9o6TFSW+Z9K8vbwXV06GGEnSpeGFpgXT4iChkc=;
        b=YDQqX6VgoUvas8T8U7uF/ZLbFzxhShXfl9FTIgBLp8Q+oRbGtdqWaYd21MvW81oXtN
         fW7Bd5DWXl28WqLF6KJ+d/ELkGV3pRxGU25kkgGylCZqSSdkoMzdedK3pwRa0RDwOlJG
         1GD7o9W9TxuYIbLvINCio03CCNYqrNxoJzZx04Ok5b9G2SLzi78SxzwcBQ5zM3ICsvPk
         XEccye87xQtrzBAaNhnLDOcZlaWW2euSsvnqYk6DCkooXq54LT/OpPU4otO6j5lO41mT
         sbamG8EVXMbRhcK5kGLapbetYx9q+49PKfZT3eoWtSjk/APfmI1spEoC1nRW020gdGWm
         5gBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=zlqkD9o6TFSW+Z9K8vbwXV06GGEnSpeGFpgXT4iChkc=;
        b=3NuhXg5tYWyHQksLCay99pgS0c0ev4NbFkN+w3da56Z/KsxUETRZbXBNPeThjK4gvr
         2C+wYy/blDO8T7UpG8woSHCpYa5emtmFWmJzMsCb+aQcCwQrGS1IoClOYysvJvoSSYoj
         4NXVeutR27/yt+3zwvjHBB5obZukD7wfqkiWvQszJ5RZvI44h07UJk7RjUNYlnFAbb3n
         z2lK5ti/lHnw8AJS2Ddxuym1QgWkH9CViVI+maDf8eRtp1SObLW0NsJlewZQsSMRnThb
         /V0kAg5c3ETF2rOYinTqcjTRDh+Qo/BxtHxI8azJpWgxXiDqrppISBwOX4xCNN6EUuDJ
         I6tA==
X-Gm-Message-State: AOAM531+cGalkxWUw+NjZJrTqlcAgKXgWccIgghv15gb2/Q6pPMBQIDb
	TdIrrxDIZG5WCGJvnKuw8lLXT/Kr9ovsNg==
X-Google-Smtp-Source: ABdhPJyO225gyuzeTIpsa5rB1IrCqUbVttrUzf067KVOPkjsXGLJoVBo9SPRvxvDMrWxlwUzJj7+2Q==
X-Received: by 2002:a19:ac46:: with SMTP id r6mr23521138lfc.42.1637838180416;
        Thu, 25 Nov 2021 03:03:00 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 05/14] vpci: add hooks for PCI device assign/de-assign
Date: Thu, 25 Nov 2021 13:02:42 +0200
Message-Id: <20211125110251.2877218-6-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

When a PCI device gets assigned/de-assigned some work on vPCI side needs
to be done for that device. Introduce a pair of hooks so vPCI can handle
that.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v4:
 - de-assign vPCI from the previous domain on device assignment
 - do not remove handlers in vpci_assign_device as those must not
   exist at that point
Since v3:
 - remove toolstack roll-back description from the commit message
   as error are to be handled with proper cleanup in Xen itself
 - remove __must_check
 - remove redundant rc check while assigning devices
 - fix redundant CONFIG_HAS_VPCI check for CONFIG_HAS_VPCI_GUEST_SUPPORT
 - use REGISTER_VPCI_INIT machinery to run required steps on device
   init/assign: add run_vpci_init helper
Since v2:
- define CONFIG_HAS_VPCI_GUEST_SUPPORT so dead code is not compiled
  for x86
Since v1:
 - constify struct pci_dev where possible
 - do not open code is_system_domain()
 - extended the commit message
---
 xen/drivers/Kconfig           |  4 +++
 xen/drivers/passthrough/pci.c | 10 ++++++
 xen/drivers/vpci/vpci.c       | 61 +++++++++++++++++++++++++++++------
 xen/include/xen/vpci.h        | 16 +++++++++
 4 files changed, 82 insertions(+), 9 deletions(-)

diff --git a/xen/drivers/Kconfig b/xen/drivers/Kconfig
index db94393f47a6..780490cf8e39 100644
--- a/xen/drivers/Kconfig
+++ b/xen/drivers/Kconfig
@@ -15,4 +15,8 @@ source "drivers/video/Kconfig"
 config HAS_VPCI
 	bool
 
+config HAS_VPCI_GUEST_SUPPORT
+	bool
+	depends on HAS_VPCI
+
 endmenu
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 286808b25e65..d9ef91571adf 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -874,6 +874,10 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     if ( ret )
         goto out;
 
+    ret = vpci_deassign_device(d, pdev);
+    if ( ret )
+        goto out;
+
     if ( pdev->domain == hardware_domain  )
         pdev->quarantine = false;
 
@@ -1429,6 +1433,10 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
     ASSERT(pdev && (pdev->domain == hardware_domain ||
                     pdev->domain == dom_io));
 
+    rc = vpci_deassign_device(pdev->domain, pdev);
+    if ( rc )
+        goto done;
+
     rc = pdev_msix_assign(d, pdev);
     if ( rc )
         goto done;
@@ -1446,6 +1454,8 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
         rc = hd->platform_ops->assign_device(d, devfn, pci_to_dev(pdev), flag);
     }
 
+    rc = vpci_assign_device(d, pdev);
+
  done:
     if ( rc )
         printk(XENLOG_G_WARNING "%pd: assign (%pp) failed (%d)\n",
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 37103e207635..a9e9e8ec438c 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -74,12 +74,26 @@ void vpci_remove_device(struct pci_dev *pdev)
     spin_unlock(&pdev->vpci_lock);
 }
 
-int vpci_add_handlers(struct pci_dev *pdev)
+static int run_vpci_init(struct pci_dev *pdev)
 {
-    struct vpci *vpci;
     unsigned int i;
     int rc = 0;
 
+    for ( i = 0; i < NUM_VPCI_INIT; i++ )
+    {
+        rc = __start_vpci_array[i](pdev);
+        if ( rc )
+            break;
+    }
+
+    return rc;
+}
+
+int vpci_add_handlers(struct pci_dev *pdev)
+{
+    struct vpci *vpci;
+    int rc;
+
     if ( !has_vpci(pdev->domain) )
         return 0;
 
@@ -94,19 +108,48 @@ int vpci_add_handlers(struct pci_dev *pdev)
     pdev->vpci = vpci;
     INIT_LIST_HEAD(&pdev->vpci->handlers);
 
-    for ( i = 0; i < NUM_VPCI_INIT; i++ )
-    {
-        rc = __start_vpci_array[i](pdev);
-        if ( rc )
-            break;
-    }
-
+    rc = run_vpci_init(pdev);
     if ( rc )
         vpci_remove_device_locked(pdev);
     spin_unlock(&pdev->vpci_lock);
 
     return rc;
 }
+
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+/* Notify vPCI that device is assigned to guest. */
+int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
+{
+    int rc;
+
+    /* It only makes sense to assign for hwdom or guest domain. */
+    if ( is_system_domain(d) || !has_vpci(d) )
+        return 0;
+
+    spin_lock(&pdev->vpci_lock);
+    rc = run_vpci_init(pdev);
+    spin_unlock(&pdev->vpci_lock);
+    if ( rc )
+        vpci_deassign_device(d, pdev);
+
+    return rc;
+}
+
+/* Notify vPCI that device is de-assigned from guest. */
+int vpci_deassign_device(struct domain *d, struct pci_dev *pdev)
+{
+    /* It only makes sense to de-assign from hwdom or guest domain. */
+    if ( is_system_domain(d) || !has_vpci(d) )
+        return 0;
+
+    spin_lock(&pdev->vpci_lock);
+    vpci_remove_device_handlers_locked(pdev);
+    spin_unlock(&pdev->vpci_lock);
+
+    return 0;
+}
+#endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
+
 #endif /* __XEN__ */
 
 static int vpci_register_cmp(const struct vpci_register *r1,
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index cfff87e5801e..ed127a08a953 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -261,6 +261,22 @@ static inline void vpci_cancel_pending_locked(struct pci_dev *pdev)
 }
 #endif
 
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+/* Notify vPCI that device is assigned/de-assigned to/from guest. */
+int vpci_assign_device(struct domain *d, struct pci_dev *pdev);
+int vpci_deassign_device(struct domain *d, struct pci_dev *pdev);
+#else
+static inline int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
+{
+    return 0;
+};
+
+static inline int vpci_deassign_device(struct domain *d, struct pci_dev *pdev)
+{
+    return 0;
+};
+#endif
+
 #endif
 
 /*
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230879.399182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWv-0003Dp-Eb; Thu, 25 Nov 2021 11:03:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230879.399182; Thu, 25 Nov 2021 11:03:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWv-0003AW-3g; Thu, 25 Nov 2021 11:03:05 +0000
Received: by outflank-mailman (input) for mailman id 230879;
 Thu, 25 Nov 2021 11:03:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWt-0001K8-CC
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:03 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4218a690-4ddf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:03:02 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id bu18so15489161lfb.0
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:02 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.03.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:03:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4218a690-4ddf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=O+IzydKHdJygtefHSBhDUYSHyy89TbaBO8s7u4ieLkg=;
        b=ph97ktYAdzOhWjuIz9sTV0tBn0nTxfzF89jNMYPHNw9sIrPDgKIX/dn9UYZUWn5Qvo
         WQp/qb9S6xSR3MONRkDU8o0RKYtBC7ZxF6LUTnU6c0ThCCeGxFE1aglOLTQWPFq2mNMv
         ZM0C9nb1n0hTRYksRTNy7KVdrVqCMWtq3ua+76LKq04OoQlF4Q4Ro62wCPBmEBC4AzMP
         OATAC0f3dkRk/CGBFFTlS/9l8crAtSMmEKFFd49S0EtZZ0ELznLgxugFIiXqU5Bh5NWl
         emjxazNH2BrNCDxDrkpkxRIjLHyZeoFnnUxP8vX4ru0P1U4+Idyh5/wBPg/wiMpoiS7I
         loWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=O+IzydKHdJygtefHSBhDUYSHyy89TbaBO8s7u4ieLkg=;
        b=GJPxTqDGKHs/ihoFM2nP4jOYVEVut6Eck1Nvz3tQVnPBeKi6G2L0jU8GRWO/r525ND
         AfqCT0uWvTmGixp/NulizKxLBZDQglOj9Pzg6Nm+UAdpDoZnTbe+EgZ95joxO7PA+beY
         DMW7emomuB6gI4BVmYawt45cE0EJT6E4sI3kOCh3yzhTc8mBhqsWz7IikxLwcng4HfVh
         uLhp70vFn75kgPfKJavepmY2Zx7pzBAXkL6qRT5UJs4nDWnb4hSOCx5a+ycGy/QZ0R8h
         epSPWYxpW1uOPRRtp3ttzVJZiC+6R7U7yUmTDOlQsjKXK7zmaZskL6c4ERmTD9K72V+C
         Wzig==
X-Gm-Message-State: AOAM530PZjXkQ2eXRM7PM6zrmNAdWwubi1pa5hjsOoiqzKfOh7iAI2L0
	uZUn0ha/EhAvja6uFCD84REOlhusQI4AQA==
X-Google-Smtp-Source: ABdhPJy8wI74HkKqpkhUCTmVZjQSZRS/HDZXqAarTk1y6geijO/HfiIwnyEwRYpA2iUuDDNcFUpddQ==
X-Received: by 2002:a05:6512:3ca1:: with SMTP id h33mr22339207lfv.640.1637838181712;
        Thu, 25 Nov 2021 03:03:01 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 06/14] vpci/header: implement guest BAR register handlers
Date: Thu, 25 Nov 2021 13:02:43 +0200
Message-Id: <20211125110251.2877218-7-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Add relevant vpci register handlers when assigning PCI device to a domain
and remove those when de-assigning. This allows having different
handlers for different domains, e.g. hwdom and other guests.

Emulate guest BAR register values: this allows creating a guest view
of the registers and emulates size and properties probe as it is done
during PCI device enumeration by the guest.

ROM BAR is only handled for the hardware domain and for guest domains
there is a stub: at the moment PCI expansion ROM handling is supported
for x86 only and it might not be used by other architectures without
emulating x86. Other use-cases may include using that expansion ROM before
Xen boots, hence no emulation is needed in Xen itself. Or when a guest
wants to use the ROM code which seems to be rare.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v4:
- updated commit message
- s/guest_addr/guest_reg
Since v3:
- squashed two patches: dynamic add/remove handlers and guest BAR
  handler implementation
- fix guest BAR read of the high part of a 64bit BAR (Roger)
- add error handling to vpci_assign_device
- s/dom%pd/%pd
- blank line before return
Since v2:
- remove unneeded ifdefs for CONFIG_HAS_VPCI_GUEST_SUPPORT as more code
  has been eliminated from being built on x86
Since v1:
 - constify struct pci_dev where possible
 - do not open code is_system_domain()
 - simplify some code3. simplify
 - use gdprintk + error code instead of gprintk
 - gate vpci_bar_{add|remove}_handlers with CONFIG_HAS_VPCI_GUEST_SUPPORT,
   so these do not get compiled for x86
 - removed unneeded is_system_domain check
 - re-work guest read/write to be much simpler and do more work on write
   than read which is expected to be called more frequently
 - removed one too obvious comment
---
 xen/drivers/vpci/header.c | 72 +++++++++++++++++++++++++++++++++++----
 xen/include/xen/vpci.h    |  3 ++
 2 files changed, 69 insertions(+), 6 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index ba333fb2f9b0..8880d34ebf8e 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -433,6 +433,48 @@ static void bar_write(const struct pci_dev *pdev, unsigned int reg,
     pci_conf_write32(pdev->sbdf, reg, val);
 }
 
+static void guest_bar_write(const struct pci_dev *pdev, unsigned int reg,
+                            uint32_t val, void *data)
+{
+    struct vpci_bar *bar = data;
+    bool hi = false;
+
+    if ( bar->type == VPCI_BAR_MEM64_HI )
+    {
+        ASSERT(reg > PCI_BASE_ADDRESS_0);
+        bar--;
+        hi = true;
+    }
+    else
+    {
+        val &= PCI_BASE_ADDRESS_MEM_MASK;
+        val |= bar->type == VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_TYPE_32
+                                           : PCI_BASE_ADDRESS_MEM_TYPE_64;
+        val |= bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
+    }
+
+    bar->guest_reg &= ~(0xffffffffull << (hi ? 32 : 0));
+    bar->guest_reg |= (uint64_t)val << (hi ? 32 : 0);
+
+    bar->guest_reg &= ~(bar->size - 1) | ~PCI_BASE_ADDRESS_MEM_MASK;
+}
+
+static uint32_t guest_bar_read(const struct pci_dev *pdev, unsigned int reg,
+                               void *data)
+{
+    const struct vpci_bar *bar = data;
+    bool hi = false;
+
+    if ( bar->type == VPCI_BAR_MEM64_HI )
+    {
+        ASSERT(reg > PCI_BASE_ADDRESS_0);
+        bar--;
+        hi = true;
+    }
+
+    return bar->guest_reg >> (hi ? 32 : 0);
+}
+
 static void rom_write(const struct pci_dev *pdev, unsigned int reg,
                       uint32_t val, void *data)
 {
@@ -481,6 +523,17 @@ static void rom_write(const struct pci_dev *pdev, unsigned int reg,
         rom->addr = val & PCI_ROM_ADDRESS_MASK;
 }
 
+static void guest_rom_write(const struct pci_dev *pdev, unsigned int reg,
+                            uint32_t val, void *data)
+{
+}
+
+static uint32_t guest_rom_read(const struct pci_dev *pdev, unsigned int reg,
+                               void *data)
+{
+    return 0xffffffff;
+}
+
 static int init_bars(struct pci_dev *pdev)
 {
     uint16_t cmd;
@@ -489,6 +542,7 @@ static int init_bars(struct pci_dev *pdev)
     struct vpci_header *header = &pdev->vpci->header;
     struct vpci_bar *bars = header->bars;
     int rc;
+    bool is_hwdom = is_hardware_domain(pdev->domain);
 
     switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
     {
@@ -528,8 +582,10 @@ static int init_bars(struct pci_dev *pdev)
         if ( i && bars[i - 1].type == VPCI_BAR_MEM64_LO )
         {
             bars[i].type = VPCI_BAR_MEM64_HI;
-            rc = vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write, reg,
-                                   4, &bars[i]);
+            rc = vpci_add_register(pdev->vpci,
+                                   is_hwdom ? vpci_hw_read32 : guest_bar_read,
+                                   is_hwdom ? bar_write : guest_bar_write,
+                                   reg, 4, &bars[i]);
             if ( rc )
             {
                 pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
@@ -569,8 +625,10 @@ static int init_bars(struct pci_dev *pdev)
         bars[i].size = size;
         bars[i].prefetchable = val & PCI_BASE_ADDRESS_MEM_PREFETCH;
 
-        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write, reg, 4,
-                               &bars[i]);
+        rc = vpci_add_register(pdev->vpci,
+                               is_hwdom ? vpci_hw_read32 : guest_bar_read,
+                               is_hwdom ? bar_write : guest_bar_write,
+                               reg, 4, &bars[i]);
         if ( rc )
         {
             pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
@@ -590,8 +648,10 @@ static int init_bars(struct pci_dev *pdev)
         header->rom_enabled = pci_conf_read32(pdev->sbdf, rom_reg) &
                               PCI_ROM_ADDRESS_ENABLE;
 
-        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, rom_write, rom_reg,
-                               4, rom);
+        rc = vpci_add_register(pdev->vpci,
+                               is_hwdom ? vpci_hw_read32 : guest_rom_read,
+                               is_hwdom ? rom_write : guest_rom_write,
+                               rom_reg, 4, rom);
         if ( rc )
             rom->type = VPCI_BAR_EMPTY;
     }
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index ed127a08a953..0a73b14a92dc 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -68,7 +68,10 @@ struct vpci {
     struct vpci_header {
         /* Information about the PCI BARs of this device. */
         struct vpci_bar {
+            /* Physical view of the BAR. */
             uint64_t addr;
+            /* Guest view of the BAR: address and lower bits. */
+            uint64_t guest_reg;
             uint64_t size;
             enum {
                 VPCI_BAR_EMPTY,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230881.399198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWx-0003nv-U5; Thu, 25 Nov 2021 11:03:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230881.399198; Thu, 25 Nov 2021 11:03:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWx-0003mn-L4; Thu, 25 Nov 2021 11:03:07 +0000
Received: by outflank-mailman (input) for mailman id 230881;
 Thu, 25 Nov 2021 11:03:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWv-0001K8-9h
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:05 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 42e42885-4ddf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:03:03 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id bi37so15338748lfb.5
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:03 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.03.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:03:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42e42885-4ddf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=0goulj3ILS644tMO0YQq9bXnR7rW90qkHRTjF7tQQeI=;
        b=UrJyj4FUG1x0ALg9aBFoWluXc+IWI6+0EtF3UzJs890N/iRq9y5FZKVzwwC4gBXECI
         nGmd69BrCY6TWf2NqUKbjDqorFirlsTLuvE9P8VZj0H+oRudkXtSlnzZBZnyoNV29js/
         W5pkmWeN8OGJ8ua/UKfe8R97sHbWv3zEWQbDmUV0MfKNMdmqShf1ei/rLkIV0Ewa321h
         LuM4G7ti8ZT9Ke76YcoJVQ2ZYy9rl14oFUzH/KlQTPcsUrTPNZQKpacmDa3fZopAxdIA
         AoVcWwFyzcsy3lgPPh2vC/kiCBj2yoDjsRvhoqbBdUSq0/e7PNWFYTI0tsmUCL4D4uQI
         681A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=0goulj3ILS644tMO0YQq9bXnR7rW90qkHRTjF7tQQeI=;
        b=XfFLWWTwXkce4/2v9+teLPSdwrT5BSVOewOn71QQi++uJQiq/JaI3Ylmrk2WVTKVp4
         yMQRI2UNKGSyZCKsyfXifySvHRXRvt5SVf30QnM7oWiWvMAk/0cxwDgEHeq1FdKuZJ/D
         MJUnx0k8CpDUZNA4Ee32rplyKqdIcusjJ2mgVxH3UafHXbuaaUT4b+wB42udHJlPXXlt
         TUCFWNes93Ug1ytofyFoKNLOiPX5/1HvN6N6T0iz2/jTmqAUYEeJzRvYtf7VNdQP5XOj
         1PAaCQvZSHmBg9SWyXRylG9+9Fv23T692RVCl+nWAxMACSRTMtX5fQmWDjhnMwtgT0OI
         BDKA==
X-Gm-Message-State: AOAM532DEHW0ea5NQjLhBEEEE8oWRGkDcIBCMA6SrjmS32Bjmj00LIc1
	THhap8OyRj4wK2RXWmjJZYEPCAyoKi9mTg==
X-Google-Smtp-Source: ABdhPJwTcrZIWmWIhIhIwdty/jDoU586b73+ZP2UFSd0S42UDaitxbH9WPRBAHPwrG/NuXfedaESIg==
X-Received: by 2002:a05:6512:3b9c:: with SMTP id g28mr23026819lfv.651.1637838183031;
        Thu, 25 Nov 2021 03:03:03 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 07/14] vpci/header: handle p2m range sets per BAR
Date: Thu, 25 Nov 2021 13:02:44 +0200
Message-Id: <20211125110251.2877218-8-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Instead of handling a single range set, that contains all the memory
regions of all the BARs and ROM, have them per BAR.
As the range sets are now created when a PCI device is added and destroyed
when it is removed so make them named and accounted.

Note that rangesets were chosen here despite there being only up to
3 separate ranges in each set (typically just 1). But rangeset per BAR
was chosen for the ease of implementation and existing code re-usability.

This is in preparation of making non-identity mappings in p2m for the
MMIOs/ROM.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Since v4:
- use named range sets for BARs (Jan)
- changes required by the new locking scheme
- updated commit message (Jan)
Since v3:
- re-work vpci_cancel_pending accordingly to the per-BAR handling
- s/num_mem_ranges/map_pending and s/uint8_t/bool
- ASSERT(bar->mem) in modify_bars
- create and destroy the rangesets on add/remove
---
 xen/drivers/vpci/header.c | 190 +++++++++++++++++++++++++++-----------
 xen/drivers/vpci/vpci.c   |  30 +++++-
 xen/include/xen/vpci.h    |   3 +-
 3 files changed, 166 insertions(+), 57 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 8880d34ebf8e..cc49aa68886f 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -137,45 +137,86 @@ bool vpci_process_pending(struct vcpu *v)
         return false;
 
     spin_lock(&pdev->vpci_lock);
-    if ( !pdev->vpci_cancel_pending && v->vpci.mem )
+    if ( !pdev->vpci )
+    {
+        spin_unlock(&pdev->vpci_lock);
+        return false;
+    }
+
+    if ( !pdev->vpci_cancel_pending && v->vpci.map_pending )
     {
         struct map_data data = {
             .d = v->domain,
             .map = v->vpci.cmd & PCI_COMMAND_MEMORY,
         };
-        int rc = rangeset_consume_ranges(v->vpci.mem, map_range, &data);
+        struct vpci_header *header = &pdev->vpci->header;
+        unsigned int i;
 
-        if ( rc == -ERESTART )
+        for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
         {
-            spin_unlock(&pdev->vpci_lock);
-            return true;
-        }
+            struct vpci_bar *bar = &header->bars[i];
+            int rc;
+
+            if ( rangeset_is_empty(bar->mem) )
+                continue;
+
+            rc = rangeset_consume_ranges(bar->mem, map_range, &data);
+
+            if ( rc == -ERESTART )
+            {
+                spin_unlock(&pdev->vpci_lock);
+                return true;
+            }
 
-        if ( pdev->vpci )
             /* Disable memory decoding unconditionally on failure. */
-            modify_decoding(pdev,
-                            rc ? v->vpci.cmd & ~PCI_COMMAND_MEMORY : v->vpci.cmd,
+            modify_decoding(pdev, rc ? v->vpci.cmd & ~PCI_COMMAND_MEMORY : v->vpci.cmd,
                             !rc && v->vpci.rom_only);
 
-        if ( rc )
-        {
-            /*
-             * FIXME: in case of failure remove the device from the domain.
-             * Note that there might still be leftover mappings. While this is
-             * safe for Dom0, for DomUs the domain needs to be killed in order
-             * to avoid leaking stale p2m mappings on failure.
-             */
-            if ( is_hardware_domain(v->domain) )
-                vpci_remove_device_locked(pdev);
-            else
-                domain_crash(v->domain);
+            if ( rc )
+            {
+                /*
+                 * FIXME: in case of failure remove the device from the domain.
+                 * Note that there might still be leftover mappings. While this is
+                 * safe for Dom0, for DomUs the domain needs to be killed in order
+                 * to avoid leaking stale p2m mappings on failure.
+                 */
+                if ( is_hardware_domain(v->domain) )
+                    vpci_remove_device_locked(pdev);
+                else
+                    domain_crash(v->domain);
+
+                break;
+            }
         }
+
+        v->vpci.map_pending = false;
     }
     spin_unlock(&pdev->vpci_lock);
 
     return false;
 }
 
+static void vpci_bar_remove_ranges(const struct pci_dev *pdev)
+{
+    struct vpci_header *header = &pdev->vpci->header;
+    unsigned int i;
+    int rc;
+
+    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+    {
+        struct vpci_bar *bar = &header->bars[i];
+
+        if ( rangeset_is_empty(bar->mem) )
+            continue;
+
+        rc = rangeset_remove_range(bar->mem, 0, ~0ULL);
+        if ( !rc )
+            printk(XENLOG_ERR
+                   "%pd %pp failed to remove range set for BAR: %d\n",
+                   pdev->domain, &pdev->sbdf, rc);
+    }
+}
+
 void vpci_cancel_pending_locked(struct pci_dev *pdev)
 {
     struct vcpu *v;
@@ -185,23 +226,33 @@ void vpci_cancel_pending_locked(struct pci_dev *pdev)
     /* Cancel any pending work now on all vCPUs. */
     for_each_vcpu( pdev->domain, v )
     {
-        if ( v->vpci.mem && (v->vpci.pdev == pdev) )
+        if ( v->vpci.map_pending && (v->vpci.pdev == pdev) )
         {
-            rangeset_destroy(v->vpci.mem);
-            v->vpci.mem = NULL;
+            vpci_bar_remove_ranges(pdev);
+            v->vpci.map_pending = false;
         }
     }
 }
 
 static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
-                            struct rangeset *mem, uint16_t cmd)
+                            uint16_t cmd)
 {
     struct map_data data = { .d = d, .map = true };
-    int rc;
+    struct vpci_header *header = &pdev->vpci->header;
+    int rc = 0;
+    unsigned int i;
+
+    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+    {
+        struct vpci_bar *bar = &header->bars[i];
 
-    while ( (rc = rangeset_consume_ranges(mem, map_range, &data)) == -ERESTART )
-        process_pending_softirqs();
-    rangeset_destroy(mem);
+        if ( rangeset_is_empty(bar->mem) )
+            continue;
+
+        while ( (rc = rangeset_consume_ranges(bar->mem, map_range,
+                                              &data)) == -ERESTART )
+            process_pending_softirqs();
+    }
     if ( !rc )
         modify_decoding(pdev, cmd, false);
 
@@ -209,7 +260,7 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
 }
 
 static void defer_map(struct domain *d, struct pci_dev *pdev,
-                      struct rangeset *mem, uint16_t cmd, bool rom_only)
+                      uint16_t cmd, bool rom_only)
 {
     struct vcpu *curr = current;
 
@@ -220,7 +271,7 @@ static void defer_map(struct domain *d, struct pci_dev *pdev,
      * started for the same device if the domain is not well-behaved.
      */
     curr->vpci.pdev = pdev;
-    curr->vpci.mem = mem;
+    curr->vpci.map_pending = true;
     curr->vpci.cmd = cmd;
     curr->vpci.rom_only = rom_only;
     /*
@@ -234,42 +285,40 @@ static void defer_map(struct domain *d, struct pci_dev *pdev,
 static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
 {
     struct vpci_header *header = &pdev->vpci->header;
-    struct rangeset *mem = rangeset_new(NULL, NULL, 0);
     struct pci_dev *tmp, *dev = NULL;
     const struct vpci_msix *msix = pdev->vpci->msix;
-    unsigned int i;
+    unsigned int i, j;
     int rc;
-
-    if ( !mem )
-        return -ENOMEM;
+    bool map_pending;
 
     /*
-     * Create a rangeset that represents the current device BARs memory region
+     * Create a rangeset per BAR that represents the current device memory region
      * and compare it against all the currently active BAR memory regions. If
      * an overlap is found, subtract it from the region to be mapped/unmapped.
      *
-     * First fill the rangeset with all the BARs of this device or with the ROM
+     * First fill the rangesets with all the BARs of this device or with the ROM
      * BAR only, depending on whether the guest is toggling the memory decode
      * bit of the command register, or the enable bit of the ROM BAR register.
      */
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
     {
-        const struct vpci_bar *bar = &header->bars[i];
+        struct vpci_bar *bar = &header->bars[i];
         unsigned long start = PFN_DOWN(bar->addr);
         unsigned long end = PFN_DOWN(bar->addr + bar->size - 1);
 
+        ASSERT(bar->mem);
+
         if ( !MAPPABLE_BAR(bar) ||
              (rom_only ? bar->type != VPCI_BAR_ROM
                        : (bar->type == VPCI_BAR_ROM && !header->rom_enabled)) )
             continue;
 
-        rc = rangeset_add_range(mem, start, end);
+        rc = rangeset_add_range(bar->mem, start, end);
         if ( rc )
         {
             printk(XENLOG_G_WARNING "Failed to add [%lx, %lx]: %d\n",
                    start, end, rc);
-            rangeset_destroy(mem);
-            return rc;
+            goto fail;
         }
     }
 
@@ -280,14 +329,21 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
         unsigned long end = PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
                                      vmsix_table_size(pdev->vpci, i) - 1);
 
-        rc = rangeset_remove_range(mem, start, end);
-        if ( rc )
+        for ( j = 0; j < ARRAY_SIZE(header->bars); j++ )
         {
-            printk(XENLOG_G_WARNING
-                   "Failed to remove MSIX table [%lx, %lx]: %d\n",
-                   start, end, rc);
-            rangeset_destroy(mem);
-            return rc;
+            const struct vpci_bar *bar = &header->bars[j];
+
+            if ( rangeset_is_empty(bar->mem) )
+                continue;
+
+            rc = rangeset_remove_range(bar->mem, start, end);
+            if ( rc )
+            {
+                printk(XENLOG_G_WARNING
+                       "Failed to remove MSIX table [%lx, %lx]: %d\n",
+                       start, end, rc);
+                goto fail;
+            }
         }
     }
 
@@ -325,7 +381,8 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
             unsigned long start = PFN_DOWN(bar->addr);
             unsigned long end = PFN_DOWN(bar->addr + bar->size - 1);
 
-            if ( !bar->enabled || !rangeset_overlaps_range(mem, start, end) ||
+            if ( !bar->enabled ||
+                 !rangeset_overlaps_range(bar->mem, start, end) ||
                  /*
                   * If only the ROM enable bit is toggled check against other
                   * BARs in the same device for overlaps, but not against the
@@ -334,14 +391,13 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
                  (rom_only && tmp == pdev && bar->type == VPCI_BAR_ROM) )
                 continue;
 
-            rc = rangeset_remove_range(mem, start, end);
+            rc = rangeset_remove_range(bar->mem, start, end);
             if ( rc )
             {
                 spin_unlock(&tmp->vpci_lock);
                 printk(XENLOG_G_WARNING "Failed to remove [%lx, %lx]: %d\n",
                        start, end, rc);
-                rangeset_destroy(mem);
-                return rc;
+                goto fail;
             }
         }
         spin_unlock(&tmp->vpci_lock);
@@ -360,12 +416,36 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
          * will always be to establish mappings and process all the BARs.
          */
         ASSERT((cmd & PCI_COMMAND_MEMORY) && !rom_only);
-        return apply_map(pdev->domain, pdev, mem, cmd);
+        return apply_map(pdev->domain, pdev, cmd);
     }
 
-    defer_map(dev->domain, dev, mem, cmd, rom_only);
+    /* Find out how many memory ranges has left after MSI and overlaps. */
+    map_pending = false;
+    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+        if ( !rangeset_is_empty(header->bars[i].mem) )
+        {
+            map_pending = true;
+            break;
+        }
+
+    /*
+     * There are cases when PCI device, root port for example, has neither
+     * memory space nor IO. In this case PCI command register write is
+     * missed resulting in the underlying PCI device not functional, so:
+     *   - if there are no regions write the command register now
+     *   - if there are regions then defer work and write later on
+     */
+    if ( !map_pending )
+        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
+    else
+        defer_map(dev->domain, dev, cmd, rom_only);
 
     return 0;
+
+fail:
+    /* Destroy all the ranges we may have added. */
+    vpci_bar_remove_ranges(pdev);
+    return rc;
 }
 
 static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index a9e9e8ec438c..98b12a61be6f 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -52,11 +52,16 @@ static void vpci_remove_device_handlers_locked(struct pci_dev *pdev)
 
 void vpci_remove_device_locked(struct pci_dev *pdev)
 {
+    struct vpci_header *header = &pdev->vpci->header;
+    unsigned int i;
+
     ASSERT(spin_is_locked(&pdev->vpci_lock));
 
     pdev->vpci_cancel_pending = true;
     vpci_remove_device_handlers_locked(pdev);
     vpci_cancel_pending_locked(pdev);
+    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+        rangeset_destroy(header->bars[i].mem);
     xfree(pdev->vpci->msix);
     xfree(pdev->vpci->msi);
     xfree(pdev->vpci);
@@ -92,6 +97,8 @@ static int run_vpci_init(struct pci_dev *pdev)
 int vpci_add_handlers(struct pci_dev *pdev)
 {
     struct vpci *vpci;
+    struct vpci_header *header;
+    unsigned int i;
     int rc;
 
     if ( !has_vpci(pdev->domain) )
@@ -108,11 +115,32 @@ int vpci_add_handlers(struct pci_dev *pdev)
     pdev->vpci = vpci;
     INIT_LIST_HEAD(&pdev->vpci->handlers);
 
+    header = &pdev->vpci->header;
+    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+    {
+        struct vpci_bar *bar = &header->bars[i];
+        char str[32];
+
+        snprintf(str, sizeof(str), "%pp:BAR%d", &pdev->sbdf, i);
+        bar->mem = rangeset_new(pdev->domain, str, RANGESETF_no_print);
+        if ( !bar->mem )
+        {
+            rc = -ENOMEM;
+            goto fail;
+        }
+    }
+
     rc = run_vpci_init(pdev);
     if ( rc )
-        vpci_remove_device_locked(pdev);
+        goto fail;
+
     spin_unlock(&pdev->vpci_lock);
 
+    return 0;
+
+ fail:
+    vpci_remove_device_locked(pdev);
+    spin_unlock(&pdev->vpci_lock);
     return rc;
 }
 
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 0a73b14a92dc..18319fc329f9 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -73,6 +73,7 @@ struct vpci {
             /* Guest view of the BAR: address and lower bits. */
             uint64_t guest_reg;
             uint64_t size;
+            struct rangeset *mem;
             enum {
                 VPCI_BAR_EMPTY,
                 VPCI_BAR_IO,
@@ -147,9 +148,9 @@ struct vpci {
 
 struct vpci_vcpu {
     /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
-    struct rangeset *mem;
     struct pci_dev *pdev;
     uint16_t cmd;
+    bool map_pending : 1;
     bool rom_only : 1;
 };
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230882.399203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWy-0003ui-SZ; Thu, 25 Nov 2021 11:03:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230882.399203; Thu, 25 Nov 2021 11:03:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWy-0003t2-F3; Thu, 25 Nov 2021 11:03:08 +0000
Received: by outflank-mailman (input) for mailman id 230882;
 Thu, 25 Nov 2021 11:03:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWw-0001K8-9Z
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:06 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43a627ac-4ddf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:03:05 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id l22so15333068lfg.7
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:05 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.03.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:03:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43a627ac-4ddf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=k/RGv6ybx7YyFsmgyX3yYGViHePRS8H6axFbMKtL+NM=;
        b=NH67NlrIH5Ybk480ToPEOvLqg5URZvwh/QGlPI8eMNf57TsY3odxpYlTb88dfC5rc1
         vtZGDVob6WzDb0yGJTMiQrB86sIkeC12pSc6OK9Gd9xzPhiVpvMFbbIqsJ7VyMQ8gYN3
         RtMpDxzQuLpy5AqSFpYcTG9dGF2a7Xh0kKnsG9e0CgtskzJ57voB431EW4ImqgJ+p3xF
         5ZxQNO9gEJV/hQpLwRYdfKDtsTcuyqxf4KnRxosTYQ+LG99subpv2MiB2w61JB+DCh7Z
         Tt4g8QTzy5AXgiYsTFuqRned8Q9sFtdiHhe4J0Wz9buf3/8htcNr27kif7q0o2uZoCNy
         RR/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=k/RGv6ybx7YyFsmgyX3yYGViHePRS8H6axFbMKtL+NM=;
        b=ickXIXci+3txfz1fCi7MIcVoCF51Ov1CQVUIPpn5KwwhIkOUJtsfsB9yZRgDS8isoQ
         Z09bNPZiwC93Wg+5hx/yT9rDNZP+3pzr20EnaPdLGyHUtjO3ZWmdVKCzHtn+Q5J5vElt
         RUpbCtiY7NUJvV6mY41w6xu53WIGOH/pjWDZD674V3rBy107XyZSLaT2PKPoCTCFVr4U
         Zr/xuIKfQZugNiCNrybGt/R6XP3xa42n88eWZmGSyl8lm7BNgF7/nO2jhxFfhbo2FMRs
         6IOKdRVKVr5vzoMQdS/UVz0V3hfWRJCwMIb30jnD6vn65cqZ/rNlLRC2QIRTEJ2lh67q
         9N4A==
X-Gm-Message-State: AOAM530z60LGIJEmRWhROXr26HB4n2kWrMxCzx89+JsCcQqRy0kA1GAr
	XylYuZ2IF8IH8HbV0+fMVLMTbCLDZ8d9dA==
X-Google-Smtp-Source: ABdhPJx/6zGeavqUGNS7ApB3Y8UGu0V+f7KGhetYpG+N9ZJazQ9xzusOsoLlz7Ch+XQYRoT1COfbFQ==
X-Received: by 2002:a05:6512:3212:: with SMTP id d18mr22988968lfe.285.1637838184244;
        Thu, 25 Nov 2021 03:03:04 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 08/14] vpci/header: program p2m with guest BAR view
Date: Thu, 25 Nov 2021 13:02:45 +0200
Message-Id: <20211125110251.2877218-9-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Take into account guest's BAR view and program its p2m accordingly:
gfn is guest's view of the BAR and mfn is the physical BAR value as set
up by the PCI bus driver in the hardware domain.
This way hardware domain sees physical BAR values and guest sees
emulated ones.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v4:
- moved start_{gfn|mfn} calculation into map_range
- pass vpci_bar in the map_data instead of start_{gfn|mfn}
- s/guest_addr/guest_reg
Since v3:
- updated comment (Roger)
- removed gfn_add(map->start_gfn, rc); which is wrong
- use v->domain instead of v->vpci.pdev->domain
- removed odd e.g. in comment
- s/d%d/%pd in altered code
- use gdprintk for map/unmap logs
Since v2:
- improve readability for data.start_gfn and restructure ?: construct
Since v1:
 - s/MSI/MSI-X in comments

---
---
 xen/drivers/vpci/header.c | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index cc49aa68886f..b0499d32c5d8 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -30,6 +30,7 @@
 
 struct map_data {
     struct domain *d;
+    const struct vpci_bar *bar;
     bool map;
 };
 
@@ -41,8 +42,25 @@ static int map_range(unsigned long s, unsigned long e, void *data,
 
     for ( ; ; )
     {
+        /* Start address of the BAR as seen by the guest. */
+        gfn_t start_gfn = _gfn(PFN_DOWN(is_hardware_domain(map->d)
+                                        ? map->bar->addr
+                                        : map->bar->guest_reg));
+        /* Physical start address of the BAR. */
+        mfn_t start_mfn = _mfn(PFN_DOWN(map->bar->addr));
         unsigned long size = e - s + 1;
 
+        /*
+         * Ranges to be mapped don't always start at the BAR start address, as
+         * there can be holes or partially consumed ranges. Account for the
+         * offset of the current address from the BAR start.
+         */
+        start_gfn = gfn_add(start_gfn, s - mfn_x(start_mfn));
+
+        gdprintk(XENLOG_G_DEBUG,
+                 "%smap [%lx, %lx] -> %#"PRI_gfn" for %pd\n",
+                 map->map ? "" : "un", s, e, gfn_x(start_gfn),
+                 map->d);
         /*
          * ARM TODOs:
          * - On ARM whether the memory is prefetchable or not should be passed
@@ -52,8 +70,10 @@ static int map_range(unsigned long s, unsigned long e, void *data,
          * - {un}map_mmio_regions doesn't support preemption.
          */
 
-        rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(s))
-                      : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(s));
+        rc = map->map ? map_mmio_regions(map->d, start_gfn,
+                                         size, _mfn(s))
+                      : unmap_mmio_regions(map->d, start_gfn,
+                                           size, _mfn(s));
         if ( rc == 0 )
         {
             *c += size;
@@ -62,8 +82,8 @@ static int map_range(unsigned long s, unsigned long e, void *data,
         if ( rc < 0 )
         {
             printk(XENLOG_G_WARNING
-                   "Failed to identity %smap [%lx, %lx] for d%d: %d\n",
-                   map->map ? "" : "un", s, e, map->d->domain_id, rc);
+                   "Failed to identity %smap [%lx, %lx] for %pd: %d\n",
+                   map->map ? "" : "un", s, e, map->d, rc);
             break;
         }
         ASSERT(rc < size);
@@ -160,6 +180,7 @@ bool vpci_process_pending(struct vcpu *v)
             if ( rangeset_is_empty(bar->mem) )
                 continue;
 
+            data.bar = bar;
             rc = rangeset_consume_ranges(bar->mem, map_range, &data);
 
             if ( rc == -ERESTART )
@@ -249,6 +270,7 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
         if ( rangeset_is_empty(bar->mem) )
             continue;
 
+        data.bar = bar;
         while ( (rc = rangeset_consume_ranges(bar->mem, map_range,
                                               &data)) == -ERESTART )
             process_pending_softirqs();
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230883.399208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWz-00046y-RR; Thu, 25 Nov 2021 11:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230883.399208; Thu, 25 Nov 2021 11:03:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCWz-000440-H8; Thu, 25 Nov 2021 11:03:09 +0000
Received: by outflank-mailman (input) for mailman id 230883;
 Thu, 25 Nov 2021 11:03:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWx-0001K8-9f
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:07 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 447957b9-4ddf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:03:06 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id t26so15312528lfk.9
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:06 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.03.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:03:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 447957b9-4ddf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=Nyrz1DyhOvYhqBK8nvrcaWou5z7OLEnK+mhXV6s0HlU=;
        b=V870hY+Si8qenQfHmDNp7t1IDTMRn/UwCIGehQvYQgixBMY8M4Fn9NrqqUta2QNPUu
         04vENHAecm1kgPQnPRIaIjCThiEhj/mz2ERJh3tdh5oqauIihr1RacIP+ZJBvkdOyS2o
         S3dlDXnvjOzZdzlincmq4yYNkLxpS4ZoOtvoRSyepL0mMHIOtSEFOgso6PXsDjeYWrfF
         KgikvrmgQGQpw9DYZHd/M4L43ZL+sMN9OxuC88t/utyEBmNjy3xk3XQrdYmrHiQ6bDNk
         ZuTBLTUsAdzW0LHJbcz2X0MR1mbzQeuR+wXtdW5NmFSfojX9v2m4whQIXkomngrqcwT1
         3EFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=Nyrz1DyhOvYhqBK8nvrcaWou5z7OLEnK+mhXV6s0HlU=;
        b=LjGj2kFjW4Wnx8AonA4vXwfNtrzhC6gVI0wheBte7HC9TFEPkpCYJb/AoyTLhIgb2D
         LfUpSGkULk2yShLs69zxwC2PU40mTLsNJ3+UFMmY/MM4wDrZior/Dpgno92/B56qE7bT
         mtB03v+vimgK7j/+bKVw+dD4WZ+LSUszP+eErcn6gSnm+SExHQSjhw3EZ8EY3VTp3gqT
         VfLxe0n7RySjwfnPK5jBi50o4Px59opX+JjwIiWIrD9tL1oZfea+QenLKp/pZSWCL8La
         Hv2QALNx3tbz0f/Y3g2yY+40Bytbmkejs1UL1GTnMZmR1FnDnI3cntBiRtptkyqCDIdT
         gRHA==
X-Gm-Message-State: AOAM530fsijH0QITmffTL3H0oMz4fHYwp0M4wLqFDlW7Lftw9etKF3hq
	rEVF43N30phAy+gCqOOhjKBm4uQtRLVo6A==
X-Google-Smtp-Source: ABdhPJzGjzT6zakGE3+HWjoenO7aqNkiIWjxzh5Xrz+J75cQSaEJ9+zwzgD/iqnblW5fj+SeYObF8A==
X-Received: by 2002:a05:6512:a92:: with SMTP id m18mr1738441lfu.306.1637838185738;
        Thu, 25 Nov 2021 03:03:05 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 09/14] vpci/header: emulate PCI_COMMAND register for guests
Date: Thu, 25 Nov 2021 13:02:46 +0200
Message-Id: <20211125110251.2877218-10-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Add basic emulation support for guests. At the moment only emulate
PCI_COMMAND_INTX_DISABLE bit, the rest is not emulated yet and left
as TODO.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v3:
- gate more code on CONFIG_HAS_MSI
- removed logic for the case when MSI/MSI-X not enabled
---
 xen/drivers/vpci/header.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index b0499d32c5d8..2e44055946b0 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -491,6 +491,22 @@ static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
         pci_conf_write16(pdev->sbdf, reg, cmd);
 }
 
+static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
+                            uint32_t cmd, void *data)
+{
+    /* TODO: Add proper emulation for all bits of the command register. */
+
+#ifdef CONFIG_HAS_PCI_MSI
+    if ( pdev->vpci->msi->enabled )
+    {
+        /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X enabled. */
+        cmd |= PCI_COMMAND_INTX_DISABLE;
+    }
+#endif
+
+    cmd_write(pdev, reg, cmd, data);
+}
+
 static void bar_write(const struct pci_dev *pdev, unsigned int reg,
                       uint32_t val, void *data)
 {
@@ -663,8 +679,9 @@ static int init_bars(struct pci_dev *pdev)
     }
 
     /* Setup a handler for the command register. */
-    rc = vpci_add_register(pdev->vpci, vpci_hw_read16, cmd_write, PCI_COMMAND,
-                           2, header);
+    rc = vpci_add_register(pdev->vpci, vpci_hw_read16,
+                           is_hwdom ? cmd_write : guest_cmd_write,
+                           PCI_COMMAND, 2, header);
     if ( rc )
         return rc;
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230885.399220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX2-0004bL-1m; Thu, 25 Nov 2021 11:03:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230885.399220; Thu, 25 Nov 2021 11:03:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX1-0004Z0-Ny; Thu, 25 Nov 2021 11:03:11 +0000
Received: by outflank-mailman (input) for mailman id 230885;
 Thu, 25 Nov 2021 11:03:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCWy-0001K8-TG
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:09 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4587c4b2-4ddf-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:03:08 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id z8so11729537ljz.9
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:08 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.03.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:03:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4587c4b2-4ddf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=v/1hCqpbICaVhImJYbNH1Pzo/XjLvxlkPWIsYcGJ7iE=;
        b=dsQ7fIdBbFEQQs2Kb7aJIZHQf8yS7jdmZpbsZmPLPp+D7gCSFnBnthiYhk1usVP3iJ
         E+V2JEJKVrOee7Q3nN7Yw/eX/axIZ+2aiUWwRx1VTZVi31YlDTtSMTNVqa+n9DdRtG/I
         swcHYM1ITfFItZHRJToOjmUTej2VquSRTl5ERXDfaum/IKjKfEXkrEnZWgjDaH8L4VDf
         BoQ3eUxD2XyEFuasUzNVu6cVgKl5TeNElm1vSaRCJxR/8oUt96kKvjy0HURaDw7v7lym
         RIVLa2CnK5NnCk7WJzHYT52/tdH+fy9TZy1r5MPMrcCay4qaA76sW3vlG21bIKq2iOx/
         5ZhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=v/1hCqpbICaVhImJYbNH1Pzo/XjLvxlkPWIsYcGJ7iE=;
        b=RjRI40w77MzBmTWENzUrTOxAFQgOfr9lIDS6xf1nEi1sM0CGyrYlpIUp+Fk1RYQ3Ml
         vYOYebtqf+7oZvsJa0ew1IM3kGcJJ7jX0doz2TwT9QFRMu2joVRqc4BEsyaLCdYZmfml
         IBqbrln1mhb6HUqmc4z0SwKeVKThMxb1jJzm381w9+sdxNAx2c2p+bG0oyjNR+HaxWuu
         BCCEgqRB/qiUvYH2QaRsKtXw38nYOt/OKfPoEkO7ZkWeEERfBL/PUBv1udsM9Oy32+YR
         2REFN6nYptPTaYQSbGzXIyHEZKM2MaAx+uNXUj3CzpZ4m/olEp5UWv38SV4521K9KWwj
         qY8w==
X-Gm-Message-State: AOAM531J47EHe7PVPnoGkAFndrW+OsEfAZJVy/J/slwmXfXkU9cgFQ2K
	0CxftU4Ry0lVZ52C+oRK93KkXtFj8R6ekA==
X-Google-Smtp-Source: ABdhPJzS3EW6c2oIc2r405IHk30Ssbig4XaZwvPXuufl47eVPHl5A6F8Pvxh9m5QoqHaFnustCOBYg==
X-Received: by 2002:a05:651c:1035:: with SMTP id w21mr22964089ljm.278.1637838186915;
        Thu, 25 Nov 2021 03:03:06 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 10/14] vpci/header: reset the command register when adding devices
Date: Thu, 25 Nov 2021 13:02:47 +0200
Message-Id: <20211125110251.2877218-11-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Reset the command register when passing through a PCI device:
it is possible that when passing through a PCI device its memory
decoding bits in the command register are already set. Thus, a
guest OS may not write to the command register to update memory
decoding, so guest mappings (guest's view of the BARs) are
left not updated.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v1:
 - do not write 0 to the command register, but respect host settings.
---
 xen/drivers/vpci/header.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 2e44055946b0..41dda3c43d56 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -491,8 +491,7 @@ static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
         pci_conf_write16(pdev->sbdf, reg, cmd);
 }
 
-static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
-                            uint32_t cmd, void *data)
+static uint32_t emulate_cmd_reg(const struct pci_dev *pdev, uint32_t cmd)
 {
     /* TODO: Add proper emulation for all bits of the command register. */
 
@@ -504,7 +503,13 @@ static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
     }
 #endif
 
-    cmd_write(pdev, reg, cmd, data);
+    return cmd;
+}
+
+static void guest_cmd_write(const struct pci_dev *pdev, unsigned int reg,
+                            uint32_t cmd, void *data)
+{
+    cmd_write(pdev, reg, emulate_cmd_reg(pdev, cmd), data);
 }
 
 static void bar_write(const struct pci_dev *pdev, unsigned int reg,
@@ -678,6 +683,10 @@ static int init_bars(struct pci_dev *pdev)
         return -EOPNOTSUPP;
     }
 
+    /* Reset the command register for the guest. */
+    if ( !is_hwdom )
+        pci_conf_write16(pdev->sbdf, PCI_COMMAND, emulate_cmd_reg(pdev, 0));
+
     /* Setup a handler for the command register. */
     rc = vpci_add_register(pdev->vpci, vpci_hw_read16,
                            is_hwdom ? cmd_write : guest_cmd_write,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230886.399230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX3-0004ne-IV; Thu, 25 Nov 2021 11:03:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230886.399230; Thu, 25 Nov 2021 11:03:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX2-0004kM-MJ; Thu, 25 Nov 2021 11:03:12 +0000
Received: by outflank-mailman (input) for mailman id 230886;
 Thu, 25 Nov 2021 11:03:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCX0-0001Km-0F
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:10 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4618b0c5-4ddf-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 12:03:09 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id 207so11701807ljf.10
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:09 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.03.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:03:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4618b0c5-4ddf-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=v3OzM+kUo0HWtvX10bY+8EGI7EL/11lwc+lbMCf7qNk=;
        b=jUEMnIzqEnMb2tTxWY2ERzXP+gz/bY9eHslY4VclicZg2ER7+KwvDffPj9x2ZLn7sw
         ffHw1O40qtnwyNXxYJmMRn4tIPHZomVIPBa55zou05gEwjanHcE3Gh+C9cCEQ0htPb6R
         PNre5uj/tKGcREoM+UiPIBf0MvRJIYNqly5uJlhBcN6jORMDBbI8cTGxuBcXCsOSUQR9
         8hPIWOS7r5EuaK7MlJNL8PzuHvFBrSNMn28dzcmJUjj3nO9NJ08hvNDG4MDuyap8Mz9E
         xbWnpqnOOnONLnR79ZiQipALs1THJokDQ4StQg6ngoIaCuja8Rp7RK44GO3GGDvj7P3J
         l+GA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=v3OzM+kUo0HWtvX10bY+8EGI7EL/11lwc+lbMCf7qNk=;
        b=qKOQqwAWx+FYaS3fdhfAMxY0zIwS9zniOi2EocZ1Z2bazz4Zvzz7iNM8egVuMuubnJ
         OEbL6uCQAmO88KzJ0Vq0qgQZVgGgKWIsMhSBh1EgzcwjJN9nIoIMy1RO3kZHTX6kG4zo
         ipXEXSgukVmsxeOut6jF5QTysnpf+2EOw0B0HWuF/JFOX7KtNkNiM1ccQxMhNWYqnHO9
         mZbQT+9TNnZ1C3Su9VJYF4spJFA9Dn13onJmn1Cu2bmZ4OgdzMGE9OfU2Io1FOVbACc+
         wTAI8WZ4QO7tw4hx9nmnH8XrSM0yu6KI+BO6nYjFK4PzPuPaDtX1xEqWV3cXydptK1Sh
         WS2g==
X-Gm-Message-State: AOAM532X7pKIoDWMzSDpSXwrjqgseFqRHTkoUyQqNARHELXoxwv1qGoC
	0LYy+fRMCi54wcg87RWo1gCjyGhTfpaQVA==
X-Google-Smtp-Source: ABdhPJzIu53i+hoVd9Ngr9ybt0u7H25mEZU+kuIkiFrLep98sVOIIkcpRt6BfJXfbtsVLlRksnUejg==
X-Received: by 2002:a2e:bc1b:: with SMTP id b27mr24175465ljf.91.1637838188551;
        Thu, 25 Nov 2021 03:03:08 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 11/14] vpci: add initial support for virtual PCI bus topology
Date: Thu, 25 Nov 2021 13:02:48 +0200
Message-Id: <20211125110251.2877218-12-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Assign SBDF to the PCI devices being passed through with bus 0.
The resulting topology is where PCIe devices reside on the bus 0 of the
root complex itself (embedded endpoints).
This implementation is limited to 32 devices which are allowed on
a single PCI bus.

Please note, that at the moment only function 0 of a multifunction
device can be passed through.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v4:
- moved and re-worked guest sbdf initializers
- s/set_bit/__set_bit
- s/clear_bit/__clear_bit
- minor comment fix s/Virtual/Guest/
- added VPCI_MAX_VIRT_DEV constant (PCI_SLOT(~0) + 1) which will be used
  later for counting the number of MMIO handlers required for a guest
  (Julien)
Since v3:
 - make use of VPCI_INIT
 - moved all new code to vpci.c which belongs to it
 - changed open-coded 31 to PCI_SLOT(~0)
 - added comments and code to reject multifunction devices with
   functions other than 0
 - updated comment about vpci_dev_next and made it unsigned int
 - implement roll back in case of error while assigning/deassigning devices
 - s/dom%pd/%pd
Since v2:
 - remove casts that are (a) malformed and (b) unnecessary
 - add new line for better readability
 - remove CONFIG_HAS_VPCI_GUEST_SUPPORT ifdef's as the relevant vPCI
    functions are now completely gated with this config
 - gate common code with CONFIG_HAS_VPCI_GUEST_SUPPORT
New in v2
---
 xen/drivers/vpci/vpci.c | 51 +++++++++++++++++++++++++++++++++++++++++
 xen/include/xen/sched.h |  8 +++++++
 xen/include/xen/vpci.h  | 11 +++++++++
 3 files changed, 70 insertions(+)

diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 98b12a61be6f..c2fb4d4db233 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -114,6 +114,9 @@ int vpci_add_handlers(struct pci_dev *pdev)
     spin_lock(&pdev->vpci_lock);
     pdev->vpci = vpci;
     INIT_LIST_HEAD(&pdev->vpci->handlers);
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    pdev->vpci->guest_sbdf.sbdf = ~0;
+#endif
 
     header = &pdev->vpci->header;
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
@@ -145,6 +148,53 @@ int vpci_add_handlers(struct pci_dev *pdev)
 }
 
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+int vpci_add_virtual_device(struct pci_dev *pdev)
+{
+    struct domain *d = pdev->domain;
+    pci_sbdf_t sbdf = { 0 };
+    unsigned long new_dev_number;
+
+    /*
+     * Each PCI bus supports 32 devices/slots at max or up to 256 when
+     * there are multi-function ones which are not yet supported.
+     */
+    if ( pdev->info.is_extfn )
+    {
+        gdprintk(XENLOG_ERR, "%pp: only function 0 passthrough supported\n",
+                 &pdev->sbdf);
+        return -EOPNOTSUPP;
+    }
+
+    new_dev_number = find_first_zero_bit(&d->vpci_dev_assigned_map,
+                                         VPCI_MAX_VIRT_DEV);
+    if ( new_dev_number >= VPCI_MAX_VIRT_DEV )
+        return -ENOSPC;
+
+    __set_bit(new_dev_number, &d->vpci_dev_assigned_map);
+
+    /*
+     * Both segment and bus number are 0:
+     *  - we emulate a single host bridge for the guest, e.g. segment 0
+     *  - with bus 0 the virtual devices are seen as embedded
+     *    endpoints behind the root complex
+     *
+     * TODO: add support for multi-function devices.
+     */
+    sbdf.devfn = PCI_DEVFN(new_dev_number, 0);
+    pdev->vpci->guest_sbdf = sbdf;
+
+    return 0;
+
+}
+REGISTER_VPCI_INIT(vpci_add_virtual_device, VPCI_PRIORITY_MIDDLE);
+
+static void vpci_remove_virtual_device(struct domain *d,
+                                       const struct pci_dev *pdev)
+{
+    __clear_bit(pdev->vpci->guest_sbdf.dev, &d->vpci_dev_assigned_map);
+    pdev->vpci->guest_sbdf.sbdf = ~0;
+}
+
 /* Notify vPCI that device is assigned to guest. */
 int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
 {
@@ -171,6 +221,7 @@ int vpci_deassign_device(struct domain *d, struct pci_dev *pdev)
         return 0;
 
     spin_lock(&pdev->vpci_lock);
+    vpci_remove_virtual_device(d, pdev);
     vpci_remove_device_handlers_locked(pdev);
     spin_unlock(&pdev->vpci_lock);
 
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 28146ee404e6..10bff103317c 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -444,6 +444,14 @@ struct domain
 
 #ifdef CONFIG_HAS_PCI
     struct list_head pdev_list;
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /*
+     * The bitmap which shows which device numbers are already used by the
+     * virtual PCI bus topology and is used to assign a unique SBDF to the
+     * next passed through virtual PCI device.
+     */
+    unsigned long vpci_dev_assigned_map;
+#endif
 #endif
 
 #ifdef CONFIG_HAS_PASSTHROUGH
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 18319fc329f9..e5258bd7ce90 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -21,6 +21,13 @@ typedef int vpci_register_init_t(struct pci_dev *dev);
 
 #define VPCI_ECAM_BDF(addr)     (((addr) & 0x0ffff000) >> 12)
 
+/*
+ * Maximum number of devices supported by the virtual bus topology:
+ * each PCI bus supports 32 devices/slots at max or up to 256 when
+ * there are multi-function ones which are not yet supported.
+ */
+#define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
+
 #define REGISTER_VPCI_INIT(x, p)                \
   static vpci_register_init_t *const x##_entry  \
                __used_section(".data.vpci." p) = x
@@ -143,6 +150,10 @@ struct vpci {
             struct vpci_arch_msix_entry arch;
         } entries[];
     } *msix;
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /* Guest SBDF of the device. */
+    pci_sbdf_t guest_sbdf;
+#endif
 #endif
 };
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230889.399238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX6-0005N3-19; Thu, 25 Nov 2021 11:03:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230889.399238; Thu, 25 Nov 2021 11:03:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX5-0005GA-7q; Thu, 25 Nov 2021 11:03:15 +0000
Received: by outflank-mailman (input) for mailman id 230889;
 Thu, 25 Nov 2021 11:03:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCX2-0001Km-0Y
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:12 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46f9c8c8-4ddf-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 12:03:10 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id z8so11729740ljz.9
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:10 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.03.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:03:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46f9c8c8-4ddf-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=kZqEhK0lSTPPH7s4XeLss9am7aDHkDnrG+VGANSSqhs=;
        b=kxE0nc7+ZIhSzeKFBn/ycXd/0/Fr6R/JY8BouykvGtlyhqqwj+RmypY5J4aiJjr4WR
         ZHsjSLNe55PEe1TKhubs2FGmmQIYWGNyjWSkVj+6bL2VYs3AGJL+rwpq1yonyTJxKz41
         w0a4EUQD678fE3UElGs9IxfXC/pTd6fHT2Njol3wd/JxXOSyhCZCTe8r5o20qPqX+Jr3
         5lQmtmJl6Ygh9qkKTx+jd33mYwf9kHwLhPrpX3RsnMHWUqp6OE2bmjYuxCVHEMPPXoxt
         ThykhCQjC201gZLo/mCvED+la3mOewg66QIINFh1r/WDQXGir9CXf8hZz8zrTH0eBcuO
         iVmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=kZqEhK0lSTPPH7s4XeLss9am7aDHkDnrG+VGANSSqhs=;
        b=lE0oStvMsK91m/GbK9/YfPsTh5runSVCnOy07pESdRM7N8ElftLKpx2koYYxVOhZwL
         Cuq0OIguYZXuy/j8hsbzBF2+oKCjEcTjm4fETvWx8qQzFnu/vN7dk8kkoM9YEb2FpKot
         RHP0EXvs+9TOopA8sZEgJGnCXwpiT7MvRSdiLvUt/jla1KdGfZozof57Eng0a3vBOwsv
         bLWwI7ZryrFlY+dr/k4cmF0kFtlEH2vWUzZd0Tv2rGuEvzdblM6Y5QADTYKcrCV6H4sA
         FeeeWa2Cgo09b2pXi8rEkUs2T3eNKaeaAM7lNzF+PNmHA1WOaI5X1ZKP5aqN245Yh3uP
         3iqA==
X-Gm-Message-State: AOAM532fNg3ejqvpX6fHurQLvaJsEm0OihqJrGCmACevnMeWQi9a5am/
	ExyoF/XGfmNwEq7RX2WnEnGQAgSi7XluOA==
X-Google-Smtp-Source: ABdhPJzBvgipfEIhTxTfN3KLHKclXOeyvsJMOM3BP4PRkB6a8NA6Vn42fUxKGhF7gYGXSo2CxNAiYA==
X-Received: by 2002:a2e:9f15:: with SMTP id u21mr23980508ljk.132.1637838189955;
        Thu, 25 Nov 2021 03:03:09 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 12/14] xen/arm: translate virtual PCI bus topology for guests
Date: Thu, 25 Nov 2021 13:02:49 +0200
Message-Id: <20211125110251.2877218-13-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There are three  originators for the PCI configuration space access:
1. The domain that owns physical host bridge: MMIO handlers are
there so we can update vPCI register handlers with the values
written by the hardware domain, e.g. physical view of the registers
vs guest's view on the configuration space.
2. Guest access to the passed through PCI devices: we need to properly
map virtual bus topology to the physical one, e.g. pass the configuration
space access to the corresponding physical devices.
3. Emulated host PCI bridge access. It doesn't exist in the physical
topology, e.g. it can't be mapped to some physical host bridge.
So, all access to the host bridge itself needs to be trapped and
emulated.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
Since v4:
- indentation fixes
- constify struct domain
- updated commit message
- updates to the new locking scheme (pdev->vpci_lock)
Since v3:
- revisit locking
- move code to vpci.c
Since v2:
 - pass struct domain instead of struct vcpu
 - constify arguments where possible
 - gate relevant code with CONFIG_HAS_VPCI_GUEST_SUPPORT
New in v2
---
 xen/arch/arm/vpci.c     | 18 ++++++++++++++++++
 xen/drivers/vpci/vpci.c | 27 +++++++++++++++++++++++++++
 xen/include/xen/vpci.h  |  1 +
 3 files changed, 46 insertions(+)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 8e801f275879..3d134f42d07e 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -41,6 +41,15 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
     /* data is needed to prevent a pointer cast on 32bit */
     unsigned long data;
 
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /*
+     * For the passed through devices we need to map their virtual SBDF
+     * to the physical PCI device being passed through.
+     */
+    if ( !bridge && !vpci_translate_virtual_device(v->domain, &sbdf) )
+        return 1;
+#endif
+
     if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
                         1U << info->dabt.size, &data) )
     {
@@ -59,6 +68,15 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
     struct pci_host_bridge *bridge = p;
     pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
 
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /*
+     * For the passed through devices we need to map their virtual SBDF
+     * to the physical PCI device being passed through.
+     */
+    if ( !bridge && !vpci_translate_virtual_device(v->domain, &sbdf) )
+        return 1;
+#endif
+
     return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                            1U << info->dabt.size, r);
 }
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index c2fb4d4db233..bdc8c63f73fa 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -195,6 +195,33 @@ static void vpci_remove_virtual_device(struct domain *d,
     pdev->vpci->guest_sbdf.sbdf = ~0;
 }
 
+/*
+ * Find the physical device which is mapped to the virtual device
+ * and translate virtual SBDF to the physical one.
+ */
+bool vpci_translate_virtual_device(const struct domain *d, pci_sbdf_t *sbdf)
+{
+    struct pci_dev *pdev;
+
+    for_each_pdev( d, pdev )
+    {
+        bool found;
+
+        spin_lock(&pdev->vpci_lock);
+        found = pdev->vpci && (pdev->vpci->guest_sbdf.sbdf == sbdf->sbdf);
+        spin_unlock(&pdev->vpci_lock);
+
+        if ( found )
+        {
+            /* Replace guest SBDF with the physical one. */
+            *sbdf = pdev->sbdf;
+            return true;
+        }
+    }
+
+    return false;
+}
+
 /* Notify vPCI that device is assigned to guest. */
 int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
 {
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index e5258bd7ce90..21d76929391f 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -280,6 +280,7 @@ static inline void vpci_cancel_pending_locked(struct pci_dev *pdev)
 /* Notify vPCI that device is assigned/de-assigned to/from guest. */
 int vpci_assign_device(struct domain *d, struct pci_dev *pdev);
 int vpci_deassign_device(struct domain *d, struct pci_dev *pdev);
+bool vpci_translate_virtual_device(const struct domain *d, pci_sbdf_t *sbdf);
 #else
 static inline int vpci_assign_device(struct domain *d, struct pci_dev *pdev)
 {
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230890.399246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX7-0005il-KS; Thu, 25 Nov 2021 11:03:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230890.399246; Thu, 25 Nov 2021 11:03:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX6-0005az-RF; Thu, 25 Nov 2021 11:03:16 +0000
Received: by outflank-mailman (input) for mailman id 230890;
 Thu, 25 Nov 2021 11:03:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCX3-0001Km-0V
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:13 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47e1a854-4ddf-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 12:03:12 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id r26so15322225lfn.8
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:12 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.03.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:03:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47e1a854-4ddf-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=L3Qpmr6FqZYgDpc5qkrdE2inG3hirALh0cTqSNvXeb0=;
        b=A86ZGJDWrW5wsHgmN6KiObnttHnIdUH0wAEP75NY/1CAZXj9JACsj72sxaSPAyqpeL
         4eRRX7X8olSqt0PoP3cJ7++u6PbI7vkusgzoRpyKPNXRy8wgMIqJ53DsMhRB8lyRHaHk
         Bdfpepnrd+Smph0/u8UyLU94866oVm9OFMA5Ll7+S3hq5rAPeyq/C1fKpVAdXYDspytn
         Rg1N0jc96f7WDkWXJxjJ+wTMrSjsMyeOIYLF4dJg3RAMn1nhECzTTH4g7M99qbEmlrcZ
         KzLZM+hp1JnQTImPHBTCoGo+tzKuPDYoFaWiBkYw/40v5mg4+vve+g0wqGlr/Qkx8O+r
         F13g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=L3Qpmr6FqZYgDpc5qkrdE2inG3hirALh0cTqSNvXeb0=;
        b=Ck8pL32pqvZxngmmZmMrdmoOB2z3WSgP6mlgQR1V09JVZqrWf1fltZZKG1o1ofSYLe
         cJ2JG+gvFlsD3SVMyKfs2qcP1ZLcHvlfGqVAg+SqZsaOwsYEVtt7bcCtZxM3DGiU5C5j
         ikpUKjVWAn5RuuIihjHaba6gvLSij5OUBVuuofEHGKEYL0t11dFqAKtNQV9jF7esi+Yg
         wRvm6gQ2nf8SzEuol6L14ofF9NdRjMiGKUGFunJKymgnHMtvaHGNN7dOXSd4FqzAJpnc
         2CX+DSrR7lnEQhqZwkY5PK8s8BpvS1aBi7QeBTmWe/UrupFxbLCKVHSZPRDHc7vX1V4b
         lacA==
X-Gm-Message-State: AOAM531+0J7TJDabg1sZDxrvxF+hvlWoc3yU8XyLS76N02B3vnpUi2Ie
	keAucg0FM+UK8D6Do9JAqKpCZwn9cCK9zw==
X-Google-Smtp-Source: ABdhPJyrj13RzkBKxdB8sdeoYBM8yJ42d6o945D4TIYQ05dDgukaapyLHMVXDFefL29quZTh6Cw7jg==
X-Received: by 2002:ac2:4c4d:: with SMTP id o13mr22059581lfk.196.1637838191512;
        Thu, 25 Nov 2021 03:03:11 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 13/14] xen/arm: account IO handlers for emulated PCI MSI-X
Date: Thu, 25 Nov 2021 13:02:50 +0200
Message-Id: <20211125110251.2877218-14-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

At the moment, we always allocate an extra 16 slots for IO handlers
(see MAX_IO_HANDLER). So while adding IO trap handlers for the emulated
MSI-X registers we need to explicitly tell that we have additional IO
handlers, so those are accounted.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
Cc: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>
---
This actually moved here from the part 2 of the prep work for PCI
passthrough on Arm as it seems to be the proper place for it.

New in v5
---
 xen/arch/arm/vpci.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 3d134f42d07e..902f8491e030 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -134,6 +134,8 @@ static int vpci_get_num_handlers_cb(struct domain *d,
 
 unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
 {
+    unsigned int count;
+
     if ( !has_vpci(d) )
         return 0;
 
@@ -145,7 +147,18 @@ unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
     }
 
     /* For a single emulated host bridge's configuration space. */
-    return 1;
+    count = 1;
+
+#ifdef CONFIG_HAS_PCI_MSI
+    /*
+     * There's a single MSI-X MMIO handler that deals with both PBA
+     * and MSI-X tables per each PCI device being passed through.
+     * Maximum number of emulated virtual devices is VPCI_MAX_VIRT_DEV.
+     */
+    count += VPCI_MAX_VIRT_DEV;
+#endif
+
+    return count;
 }
 
 /*
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:03:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:03:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230892.399252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX8-0005yk-SV; Thu, 25 Nov 2021 11:03:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230892.399252; Thu, 25 Nov 2021 11:03:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCX7-0005uS-W4; Thu, 25 Nov 2021 11:03:18 +0000
Received: by outflank-mailman (input) for mailman id 230892;
 Thu, 25 Nov 2021 11:03:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=68NU=QM=gmail.com=andr2000@srs-se1.protection.inumbo.net>)
 id 1mqCX5-0001Km-12
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:03:15 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 488f0cd3-4ddf-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 12:03:13 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id l22so15334070lfg.7
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:03:13 -0800 (PST)
Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua.
 [176.36.245.220])
 by smtp.gmail.com with ESMTPSA id bt10sm235165lfb.193.2021.11.25.03.03.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Nov 2021 03:03:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 488f0cd3-4ddf-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=4HaiT/SE5PB8xSapqdBhw3R3QW3El4s7e5lKw8ZTREI=;
        b=bfnw8BzGMv/ai6lLmKkEDQIRsRtot4KIqLNG5xgb4M7L96xuEszQVAbb6jR453kFvb
         nNGmlVvyf3pR6Xav47zlgkrwQg2ZyVmdYoeGNl0PNkYBiGldZn3CRAevXvMBKJyhVCZo
         T90GjY0T2MiSabXU+jnCwN640V8uz5DjPme1+Op4TZvuglH9++DON0craD3VqeY5w9a8
         B+OGZ0BuuFIF21AfjeB/pxAbrr0LmXvU888Wa3Cwyd85kswt2+qWRSynb1snzGTI16L6
         KFVfDqKYHKgVtcwBf1nsKP15lCEmQOoexcbOVBbxR4+KlkS9kfqvFS0U02qHes7Cq9se
         mQoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=4HaiT/SE5PB8xSapqdBhw3R3QW3El4s7e5lKw8ZTREI=;
        b=EF2C7smyVYXsxhsrrYtNtxJZf3+a47SF9KdFa/Gueam25XpqHlLayhHNABqIWcnEsh
         e+qyt954YSmXkSnLWEfdBejEV3kjE0pnUIk2WCkQtUnGym2i/eI3YO0IIpfcVgAPG3JZ
         f7alvZUzY6VsISCwlvjfyHs/1QE+aFLB8DDMz+sdUY/iC4KX1Anl/yp+X6baneyxOE/v
         v3qX77vobhzb1e6dy6BK86d4xs4tv72lYqefMjQd96kmTPTqDj/5t+hr9Aih18nXiBeV
         8JOfyiOfwQrSHjF0z6JL4kp1+0CEM9A2iWag8CTLGENUIm0nIcG8f9zE5L0Px2dXwCv/
         GnDg==
X-Gm-Message-State: AOAM533VE9mfeXYxbJ6aWzbHaI+MItIS4E+/h2+9rQJge8mG2+HVPt3F
	ZkviSXw6lWqLAXlZml0r04AibfFlYYbQjA==
X-Google-Smtp-Source: ABdhPJxHJg03JdEEks4CztqRyth39Hkg5mIrysSqR/7r+OomeU2Fdzj0/2zlZtidUcwKwYWgE2T33Q==
X-Received: by 2002:ac2:58c3:: with SMTP id u3mr22100069lfo.103.1637838192718;
        Thu, 25 Nov 2021 03:03:12 -0800 (PST)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	volodymyr_babchuk@epam.com,
	Artem_Mygaiev@epam.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	george.dunlap@citrix.com,
	paul@xen.org,
	bertrand.marquis@arm.com,
	rahul.singh@arm.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 14/14] vpci: add TODO for the registers not explicitly handled
Date: Thu, 25 Nov 2021 13:02:51 +0200
Message-Id: <20211125110251.2877218-15-andr2000@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211125110251.2877218-1-andr2000@gmail.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

For unprivileged guests vpci_{read|write} need to be re-worked
to not passthrough accesses to the registers not explicitly handled
by the corresponding vPCI handlers: without fixing that passthrough
to guests is completely unsafe as Xen allows them full access to
the registers.

Xen needs to be sure that every register a guest accesses is not
going to cause the system to malfunction, so Xen needs to keep a
list of the registers it is safe for a guest to access.

For example, we should only expose the PCI capabilities that we know
are safe for a guest to use, i.e.: MSI and MSI-X initially.
The rest of the capabilities should be blocked from guest access,
unless we audit them and declare safe for a guest to access.

As a reference we might want to look at the approach currently used
by QEMU in order to do PCI passthrough. A very limited set of PCI
capabilities known to be safe for untrusted access are exposed to the
guest and registers need to be explicitly handled or else access is
rejected. Xen needs a fairly similar model in vPCI or else none of
this will be safe for unprivileged access.

Add the corresponding TODO comment to highlight there is a problem that
needs to be fixed.

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

---
New in v5
---
 xen/drivers/vpci/vpci.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index bdc8c63f73fa..4fb77d08825a 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -493,6 +493,29 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
     if ( !pdev->vpci )
     {
         spin_unlock(&pdev->vpci_lock);
+        /*
+         * TODO: for unprivileged guests vpci_{read|write} need to be re-worked
+         * to not passthrough accesses to the registers not explicitly handled
+         * by the corresponding vPCI handlers: without fixing that passthrough
+         * to guests is completely unsafe as Xen allows them full access to
+         * the registers.
+         *
+         * Xen needs to be sure that every register a guest accesses is not
+         * going to cause the system to malfunction, so Xen needs to keep a
+         * list of the registers it is safe for a guest to access.
+         *
+         * For example, we should only expose the PCI capabilities that we know
+         * are safe for a guest to use, i.e.: MSI and MSI-X initially.
+         * The rest of the capabilities should be blocked from guest access,
+         * unless we audit them and declare safe for a guest to access.
+         *
+         * As a reference we might want to look at the approach currently used
+         * by QEMU in order to do PCI passthrough. A very limited set of PCI
+         * capabilities known to be safe for untrusted access are exposed to the
+         * guest and registers need to be explicitly handled or else access is
+         * rejected. Xen needs a fairly similar model in vPCI or else none of
+         * this will be safe for unprivileged access.
+         */
         return vpci_read_hw(sbdf, reg, size);
     }
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:07:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:07:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230903.399286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCaq-0002XA-Tm; Thu, 25 Nov 2021 11:07:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230903.399286; Thu, 25 Nov 2021 11:07:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCaq-0002X3-Qf; Thu, 25 Nov 2021 11:07:08 +0000
Received: by outflank-mailman (input) for mailman id 230903;
 Thu, 25 Nov 2021 11:07:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqCap-0002Wa-Dq
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:07:07 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d314c2e5-4ddf-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 12:07:06 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2107.outbound.protection.outlook.com [104.47.17.107]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-29-Ws-2NulVMRWTFSu6tBYi1g-1; Thu, 25 Nov 2021 12:07:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5742.eurprd04.prod.outlook.com (2603:10a6:803:e5::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Thu, 25 Nov
 2021 11:07:01 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 11:07:01 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR04CA0078.eurprd04.prod.outlook.com (2603:10a6:20b:48b::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.21 via Frontend
 Transport; Thu, 25 Nov 2021 11:07:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d314c2e5-4ddf-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637838425;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=lWuCeIqEXoG6zsGWy0nbE/i9plowKB5NsSYDTZwCQ2w=;
	b=cZSQMS+4Vyq/z71grEeYLVixT/7yx7QAb7nQcNsSArEIs49njn28wtrsAPHwQXdYlcQYwk
	D6cdG6BdBynblxgbWKd5rF49sgqA87ORInNj34NxgoZXElkjgQstE4dI3kaeYpkIetckZK
	9iAZo9fKHtN+fLJtKALAiF51AhVzkOU=
X-MC-Unique: Ws-2NulVMRWTFSu6tBYi1g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LuTORUmHMfAr9kOgAdBKd3lr7QPMIVtdIwtyAp8YdXEAxvv8g5Da2SZ1BgbYIev6ijuvuGEHnCkqU088e5GL/kTy3D6sOQxIX8VHcge+E+OIHiAuyzZmg6sUnOwq0zHgyOuVTmmeGfd6aloLkptQEXOWVdpa4sJkJmTLiVGpM4k6+Bpe8RBxyNf14nI9Au8VDQAAuaBGOugoLL7BA3bB4V75lfs8Ig2Bvo/WPpC+8GzUNdsprqauqooUwcI5jT5JgEo1Fn/0qpYhOWXxyGrA1kD6NymZFJc7N24rco8MqQVdAA0ND7lbuNEfCN5ZGMBWjuhuZIQaLzZz9t3gq0n2kA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lWuCeIqEXoG6zsGWy0nbE/i9plowKB5NsSYDTZwCQ2w=;
 b=ed/WSjYVfMGi0nbtSPaQcdh/Bk2jkcZ6blcfjw//KcjygfVgaz2JlAH6iVXRLnrx2Rz/i1hmyRW4ttLCaTiYGa5FQ8e6PtPb5thNdi2WzgDSusWfwGKcHQORORsowS49+kCE+1O4K8y0wQ1MI/G3GgJabQNuSuyxCfott2rRMrZqZSBQk0Uy7r//kzy3pb3SxqR6Hwx8kuGgWVWWTVSFleKo6Qrk+OzyvuRsF4HhmceIkMbt+GZkrC6c/9ZrR8LATm+Z8XTqIvapnL5EK1FJQou1vVqiedUHkA6Ys4Ni+5F6mbb07878ynQPXziQq4ef46ujqQ5vkeDfBLNW8wFOeA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <923a7838-b562-4dd3-839a-6c08bed3aa0a@suse.com>
Date: Thu, 25 Nov 2021 12:06:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v5 01/14] rangeset: add RANGESETF_no_print flag
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211125110251.2877218-1-andr2000@gmail.com>
 <20211125110251.2877218-2-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211125110251.2877218-2-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR04CA0078.eurprd04.prod.outlook.com
 (2603:10a6:20b:48b::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1cc05380-b02d-4e7b-546b-08d9b003b487
X-MS-TrafficTypeDiagnostic: VI1PR04MB5742:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB574260D499EF9836BE8A7815B3629@VI1PR04MB5742.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	I9hUnV9phk2Qh8sLg2qUksmcz6hfcW9iccShC3eT9CLcEP+mZK68GkIK8N0Fu+2nbxelj1NYaMlUKQm4YJtpV537BdHZ8Zw6L5NCdzdbV0l0McGjivZ0ZUhB2865jwPMcn86nztlyLMmDUJ8KN51NQSqDL0SR2bPHT78I5oFldEbyQeZe6AgYTnwAECF6bkjuZQHbHQJncvK6rtuhdfN8+IAUXD+K478cmsmlSSl31f3zfc1Ij/WnoLA9QJZ3/baWiE3cbV3pV3iVf+BFLPvQ38voYQespA7Y/D/Svvzn13odJYF3MDcv9GjEM6TGybHgXyNjlDsGqxlyOq0UAewQJ/EOk7oBgsRJtVqBzy1N4nJxq4buLj6cXn5/Cnr5LzQE/+uROrpYH8aY1tHuEM07EBwwy5zMm1B1Be5elNLhtOLn5kVByLbpU+UhcYoaK9rRnMdCtHYD053WnMXVmrQiByiU1X56m7OhQyNvPM/dgJBgQV/MvIH+Uf9V4+9pLbrgPQ/v0vDsVT6UNnNGrkwc8NYPq/kjroWzJruM2ZDHXo8NdMF4/5R2sAF4NXpJ9qZGUVKQ1rmiT2aRU2YUB0ypdYFZn8G05IFdqhtXABqJi2NRklvvr1geLc7AffAaAMFFPTgMyTwU7732VZQaweTbEz5yyeHVmMDn41amUJ75l7hFdHAI1hrrl81gb4cdNrgqmjrJnJhVzS3zxYVXU3R2LWDSS1J+UM1+KwmMUOa5mU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(38100700002)(16576012)(83380400001)(8936002)(5660300002)(4326008)(2616005)(6916009)(186003)(7416002)(31696002)(86362001)(66476007)(316002)(53546011)(508600001)(66556008)(66946007)(8676002)(31686004)(956004)(6486002)(36756003)(26005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eFpJSVcvZWdDcnRpWENCdTVGdGgwVzJSUTVJeFdlWkJUSm0zRmYyRnRHRXNT?=
 =?utf-8?B?R1dlTlM3eWdqdzZpN1k1UHljNzhhTmpReG95TU1uSDA1TDF0VWRSenRrWlpR?=
 =?utf-8?B?OXMwa3h0cUY2TzdETUFTdkIxZ0wvTG5OUjRYa3BFZEkveWtQMkkxeHJPc01C?=
 =?utf-8?B?bFZZUWcwM3YwOEN2VDVpcE83ZGsyZVVZNGZiK2V2d0ZIUUFBbkpEdWRBMW1Z?=
 =?utf-8?B?dnFReE5od1ZUaWlYTnhacEd2ZHM4dnJ2NTZ0d3RlaTdOZ2cyVk1ta3NzVDVW?=
 =?utf-8?B?Q1d3eDZEbGxLeDU1TTlPb245NEdPM3M3M2VEYlJ3M0lFeGYvZ0lDRERibXFZ?=
 =?utf-8?B?SEJjR1BLMGJGb3k2ajdXWlZtc2dFdzIvaFV2dU8weERBem9ocVRsdW1yTkVZ?=
 =?utf-8?B?bXhXQllleW9wMnJZeTIwQm84MThhZ0FuWHlJQjhtSUlHdkhGdkZBMjU4MnI2?=
 =?utf-8?B?Z1FTaWYxVE9PMGZzTnFDRXFNWit5L2ZodHZRREtTVm9vUmhZVm9ZazM3ZFdw?=
 =?utf-8?B?WUdiN1E5dlpWdXRYT1NDSkhzL20xVXdwOEpQbHdHbGhha3d6UWt1T2V2YWdQ?=
 =?utf-8?B?ZGp2RUVoazZ4QnFaZ2ltdVdkcUFRQndZKytCQzE4TWRLajMzMnhVWVNGeXFI?=
 =?utf-8?B?RHpPVThGajlkNUQ4enJGdDJrL1oyNFZWd1RsMkVNLy94TThDbG9zK09tNXdO?=
 =?utf-8?B?SklscFdLNFIzajJ0TmQyTEJ5UXZMUWNyYlg3ZERaVzJJbzF6UXE4b1NjTE9p?=
 =?utf-8?B?UXJXaEhRTGZPSkE3Y2tQenkyaHlGQXJxdGJpOHNkK3paczhGTHNyYkZ5bWZl?=
 =?utf-8?B?b0s4Y0x3T0swczh4RWVtSndjQkp2S2JnNGNzcEJRT0F5N1hIcWVySWRoek4y?=
 =?utf-8?B?MUkxZTQ1YnpJZ01YaUhwbWlXaUNadVlVUFg2YkZJOTVPSEtodWxISkhveDhq?=
 =?utf-8?B?Z0JSWStRSHc1YkxVQXZnd2x6T3dEekp6WmVTZmwvdkJaSjhET3hxd0ErMGxh?=
 =?utf-8?B?cDEram1sYkdkMm9tNTZBZXNGZUt3bVU0Z0RuRXRZclRFR0VzZDdGWjRzazk1?=
 =?utf-8?B?d25CZHVqQkhVN1dCd2xWOFRnSElLemkzVHgxS0U2cllFemdRakYxby9aM29U?=
 =?utf-8?B?NTl6WXc4Mk9QVy9ZOUVydEhpZTF5Rkw4a1JYYXBLRmpMZGt0QXlUaHRlVHBn?=
 =?utf-8?B?aHZ1ZnR3R0FoVlJPSU1zVkZOM0pOMDh1c2dDbEQzbDlWUHArYVZpbi9kMFlz?=
 =?utf-8?B?bVVpc3I0anlnNmxLaUJLYWMrTURqK0p5eGppeW9qMURBL0pmcjdrTG90K3Va?=
 =?utf-8?B?aThzMlgwZisyckloUEZzQzJNelp5Z1VDYldVV3c5V0h6a1JxVFZSVHJtK0dq?=
 =?utf-8?B?YXl2SlhTVnM5N0NjaXJiOG9uTTg1bkpuSmozUzZjSk5pMWdtKzg1eVk5WTRx?=
 =?utf-8?B?QUtWRnMrRjJhc1BJL3gxNGRRQ3p1VFdFSnVWSkJZSmI2TTFHK3g4TEg2blY5?=
 =?utf-8?B?dVhOQVV4K0ZJcXY4Mm5ONkk3V3d5eVo5Q29XUTR3dk9QeU9uM0oyRlBoSjZI?=
 =?utf-8?B?MmlDZ2tSTk9uNDhQOTEzdldsQVVLbGNOZHEwNkU2Ti9EZU5EWmlGYjMyWDIr?=
 =?utf-8?B?WkdUeWgzZlN4MWdNS3cybTNZTGI5anRKNU4vNHdOY29sN01QL2I4U3A3UG00?=
 =?utf-8?B?VkFOM3NyMDEzdTQ2Zjd5U0hZRmxDZVVuTUpkZm14NW1hdTE2cGJCeVRBY2Zh?=
 =?utf-8?B?aGJZa3VqSm80VG1pc1VHSHUwZ3VtUlJOeUxoM0tvUGNWWm8wTURVMTNuNXl0?=
 =?utf-8?B?VGNESUVZUGFjQU1iZUpzMzRDWFVhNWc3M0RFNHFZd1ZMRThCdVpkSitjM042?=
 =?utf-8?B?YW9UaDErREU0T0xpTjVBZEJMTW1CNDFWNDIwM1k2ZzExdytLbWl1Rms5Y2Rj?=
 =?utf-8?B?ZnZVTnIwVVhFUkhjZXRzRFdGQ2JpUG95c3JTTFoxcVJnQ2loUmtnOC82OU5V?=
 =?utf-8?B?eW16Zi9CMzBaZUpzSnVuNHVQVmg1OElYTUpBcGVKRC9CV0sybEVHOVpxZjN1?=
 =?utf-8?B?YXpxVEpIMWxHQXR5emQzNG9TelVTbTBZK0w4TUF6R25KUXY5eUl3WXhNTCt3?=
 =?utf-8?B?N005N2gxZzNhQlh5cSttV2pJekRBV0xib1VvbkFNQmJ5K0ZXc1l6MFYvVFQ5?=
 =?utf-8?Q?sWIbu/qUe9H9yJPbJ8XPN7M=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1cc05380-b02d-4e7b-546b-08d9b003b487
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 11:07:01.1263
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0NYKYjqcDsaRia0FA78mkp6tp7dFKm6JNDfK7ZwRlp//9Y3HZUOCrOllB/Yi64Z4GrtXgDdspHGqcs9UFAlLfg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5742

On 25.11.2021 12:02, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> There are range sets which should not be printed, so introduce a flag
> which allows marking those as such. Implement relevant logic to skip
> such entries while printing.
> 
> While at it also simplify the definition of the flags by directly
> defining those without helpers.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
albeit with a remark:

> --- a/xen/include/xen/rangeset.h
> +++ b/xen/include/xen/rangeset.h
> @@ -48,9 +48,10 @@ void rangeset_limit(
>      struct rangeset *r, unsigned int limit);
>  
>  /* Flags for passing to rangeset_new(). */
> - /* Pretty-print range limits in hexadecimal. */
> -#define _RANGESETF_prettyprint_hex 0
> -#define RANGESETF_prettyprint_hex  (1U << _RANGESETF_prettyprint_hex)
> +/* Pretty-print range limits in hexadecimal. */

I would guess this comment was intentionally indented by a blank,
to visually separate it from the comment covering all flags. I'd
prefer if that was kept and if the new comment you add followed
suit.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:08:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230962.399296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCcO-0003Fu-8s; Thu, 25 Nov 2021 11:08:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230962.399296; Thu, 25 Nov 2021 11:08:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCcO-0003Fn-63; Thu, 25 Nov 2021 11:08:44 +0000
Received: by outflank-mailman (input) for mailman id 230962;
 Thu, 25 Nov 2021 11:08:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqCcN-0003Fe-Aw
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:08:43 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqCcN-0000Yg-9U
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:08:43 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqCcN-00034B-8Y
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:08:43 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mqCcF-0006eD-1E; Thu, 25 Nov 2021 11:08:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:To:Date:
	Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=Baj77EEBwhbmE6q880L55FHjgxo6yvwmkt3alhqlRuI=; b=YwyWZV0y5TctoQN7jnalhPVCzx
	E63V/FGXJmZ5k1G895rxt53+9fBsld/TyrSauOKpxmy/maERunJSPGR+qilksw7Ow+ptVLZaGfjmM
	0FO8qKiKRzCY/au9mhwJV8bfIeVpfGgp7CELqHj5ryNyJAjPuZe+lmnmUjXoGDIsdkwU=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24991.28338.658525.266425@mariner.uk.xensource.com>
Date: Thu, 25 Nov 2021 11:08:34 +0000
To: Jan Beulich <jbeulich@suse.com>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
    Wei Liu <wl@xen.org>,
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
In-Reply-To: <24991.27991.43570.905419@mariner.uk.xensource.com>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
	<00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
	<24991.27991.43570.905419@mariner.uk.xensource.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Ian Jackson writes ("Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents""):
> Jan Beulich writes ("Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents""):
> > While not strictly needed with Roger having given his already,
> > Acked-by: Jan Beulich <jbeulich@suse.com>
> > to signal my (basic) agreement with the course of action taken.
> > Nevertheless I fear this is going to become yet one more case where
> > future action is promised, but things then die out.
> > 
> > Ian - I guess all this now needs is your R-a.
> 
> Thanks everyone.  Yes.
> 
> For the record,
> 
> Release-Acked-by: Ian Jackson <iwj@xenproject.org>
> 
> I will commit it myself now.

Reviewing the thread, there was some discussion over the commit
message.  It wasn't clear to me whether there was still a change
intended.

I decided not to wait for 4.16, so I have committed it there as-is.
The commit message is less important there as it won't end up in most
archeaology.

When the discussion about the commit message has converged, please
would someone commit the patch to staging too.

Thanks,
Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:09:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230970.399308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCck-0003kS-IO; Thu, 25 Nov 2021 11:09:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230970.399308; Thu, 25 Nov 2021 11:09:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCck-0003kI-Er; Thu, 25 Nov 2021 11:09:06 +0000
Received: by outflank-mailman (input) for mailman id 230970;
 Thu, 25 Nov 2021 11:09:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lI9u=QM=epam.com=prvs=1963e0fee4=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mqCci-0003if-Td
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:09:05 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 180095fb-4de0-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:09:02 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1APAx831028877;
 Thu, 25 Nov 2021 11:09:00 GMT
Received: from eur04-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cj97901aa-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 25 Nov 2021 11:08:59 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR03MB5010.eurprd03.prod.outlook.com (2603:10a6:208:10b::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Thu, 25 Nov
 2021 11:08:55 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4734.022; Thu, 25 Nov 2021
 11:08:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 180095fb-4de0-11ec-a9d2-d9f7a1cc8784
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Hc2LWJ4VFxm8a7a3H0CcPQ1tDAZIQsus1M1YkfwEPopTVM6RG4C58bzBYj/hjgrlTlbvQsCT8L8suhXY071sJlgFMe5NxZGkFvaCGryRl5pYIOJNtzRBRh+tSbukxsuwoSRgiU31NAkC/ZUCmf0L3jWxkJ6BKqE3zpqWG/P30i8tIh8FEBlw0AhuQNZmsOmqCl5Fnmmvc9d0lOMux5v7Pa9qRU5uDFVfJbKL7/ryRUFmEe5yELym1XU1FvKVvePTGRGoQILpQkUlbjqnXVy25sho5mbmRLf65UY02ZIeAavodEnd5OdDrtdMgWAL9F4yhgiUy4vkGTnz3nelU957lA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bXigjSS5oxGx1GFEFj94hg/FRykjRSvY3KIh3GabdRg=;
 b=iC7/Ig3AxA9qUlTirULZo9D5xq0mMf7AOA0Uds7M1Io1hcWnv9mMJKUGWkul4f1wZO7FVJc1Er7nY2mBi2EKAVAxT0GlwduXuH/KZCGLcZIrYe0VjagWskktHvxwVv8w7AiFtbuR4yNvP9p2WKGiib4CVRLQAK8F7hjOpBwU9KS5EHS0WXyHUcr4vK4EliAqZwAdA0VEOVKNbbgEfi4e17FyYfvOSdMQqy6O/E/pYaLqos3LD+ftBb0fCHYZp5LRruUSaIiBrD8IoufeMFARS+PzSwTcckDYrzFetz6/rVB2yXFupIf5IGzZSECs0epf4F5yqAQbqYEiH+aMTJoT2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bXigjSS5oxGx1GFEFj94hg/FRykjRSvY3KIh3GabdRg=;
 b=FAXR6qQpSk7psNsShFIczEMFI7+CkGMrDKy08nbb+ui6DXbHlc3XKLM5J51+Mks6Y9zM4X/BfCLJCi1IJ7O7Wn4n0udI8vTMNWIJWnUz3jxOHueF1zu+Pw1ijaOmviscatpMiPxD191W0RISf+U4s4ZX9h3iElbM/OLXhB8HnBAAdaEzv1IDg1f/rqTL8+dBVcIxhi+NEc9bxXeTSZnpq9ygMkkqEoexm99snIEu3KeHwbF0n1IszY4EJWZgYoiBhOyCxdwNr2GIxe6okDibVeXLEF46m1umWsCEBv6fchANUUdfKPfJysbvFyaPITIlUBeqaNf8eqQssnlgvt2olQ==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v5 01/14] rangeset: add RANGESETF_no_print flag
Thread-Topic: [PATCH v5 01/14] rangeset: add RANGESETF_no_print flag
Thread-Index: AQHX4ewDgOC3qPO0fU6q4Y3oEVCq8awUFUmAgAAAiIA=
Date: Thu, 25 Nov 2021 11:08:54 +0000
Message-ID: <bd7ba159-5337-b60a-0b87-ea587c912495@epam.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
 <20211125110251.2877218-2-andr2000@gmail.com>
 <923a7838-b562-4dd3-839a-6c08bed3aa0a@suse.com>
In-Reply-To: <923a7838-b562-4dd3-839a-6c08bed3aa0a@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b2e008bb-8d4e-474a-399b-08d9b003f87d
x-ms-traffictypediagnostic: AM0PR03MB5010:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR03MB5010D5F3A4C2521DF8ED8376E7629@AM0PR03MB5010.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 vggUo3QLm+UAPooeLaB7ADdqX9FUdIfHA3zhyRYHAC+ZNvBFWL1UIhrtVbnnNTNXBZiw88J8yl9l/njS24KW+iwZRVJwOFSK5rky/MvBVs1qWKquy7x3PKRfj680I1c1zMm73uJO8LJT9HmRmwZevltfAjeEmKkhVXsxZIkdvWYF6BzoqLeBFBTfEaPdCxAMJInD/62+T2kvGPNRTLBd4rvrPufoLVCgQ8Y5izc9LyvcKCOnuFKKnA96wT7egIcgurgM99FH/m6vNf6sNcTrWmkaxvbSibG/h1MstS5KbZxJ5eSU7rStLGqY+j4FrWNU5J4V+PoMJgEvDIrSpHzOx6Pqb5t3+FrEqlSvwXFp9/FLHaFdojSSq2LlI7tmF3EQMM31ldtCplAouy8L7hhPOzEEnScp3UOKQ7tmSzz2M9mp5ih0Q4EnD0gyAJKOgDQTj3XLrZD/a/OVroBxTxziyo9MRke1k6qZWr+tOB7+p2KICyhK2zfWDWBcT4eKtBYtFEiFNEi1FOQbWrfz2dH12t4VCgTuPQ0co/6RkBxyGKB4+Bp/VBGBP3CXoQ8AmCnb+r6Zkfcgw49ymxjH4H2+03Telw9ua4wPg7d0mf0F0AXnm9lfR1atShd04rrPz6S+nuiJ6NzxgynvzuhybG3ylrBDQCuA8TrsNyKW6uwjOL11vWQzRh7J8B6hccLVA1Db6LxBg37E7acMdjfS4y5ZJr/718+NYEK85EpzH7ypa9On7qer7dT4vgPRQDzyAtyY
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(26005)(6506007)(316002)(54906003)(38100700002)(8676002)(53546011)(83380400001)(2906002)(55236004)(508600001)(76116006)(122000001)(66946007)(64756008)(66476007)(91956017)(4326008)(7416002)(186003)(2616005)(6512007)(71200400001)(66556008)(6486002)(5660300002)(31686004)(38070700005)(31696002)(8936002)(6916009)(107886003)(36756003)(86362001)(66446008)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?SDRvTFBkM25QZjJ4Q3FaQnZueDA2MU1BMDFGMDdiRkpoWFJUbUVRKzB1bVZk?=
 =?utf-8?B?M0gwOXNFMENtZ3BXSVNYWGJKUDAvaVNpL3BpeTZ0dDZqcm44ekFkVEVIR1ov?=
 =?utf-8?B?NktvbFJYemN5d3RXbHk3aDJzbDZLSTcwWkRCMUNuZUpSVzl1ZnYyUTBnSnp4?=
 =?utf-8?B?cE9hY3BnSGxvOUZlQ2lUNnQzT3RwSGlRa2FxTFN6cmNoOUNBT00xREs4bHZI?=
 =?utf-8?B?MHFkc085Uk9SM1NMWFYyRFhiOTkvYVVtOEZicUtUOGNMVFdCQVUyOFlUMVJa?=
 =?utf-8?B?empCdXRCOGRwcSt4MkJqd3hMeUlCTlEzNCtuZ2R3ajJzblpKOFZKQ3hGOStY?=
 =?utf-8?B?YTJjcy84d1ZoTU9IRjVvektsT1FKSk5EYitiaFROQ25rMnByQW9GQm4wNlQ1?=
 =?utf-8?B?aStpT0FlK296UGZDQ25uZzNLVzlBQTdKeHczcUhWdVI2ZWc2eGc2QTJuZDdL?=
 =?utf-8?B?TlZ3TGs0THhiVTdHSEluZ0JSWk5SRkNIZ2V1ZWVRSzMxaHRvd2tBODdxRGJ2?=
 =?utf-8?B?T3prNEZJc3RLcTlpR3NodU9zeG9Ia1lJZVllRFdQeVdZZlp5d2VIOGpXUFo5?=
 =?utf-8?B?VTZsaVNPbnZqL3owamI5cnRpUHpuQklVQUhaQWNRS2ozSXpUWmh6SERncVBK?=
 =?utf-8?B?bDNpZkE0ZHFhQXM1c1hwK0U1V2tEdklNZlJGY3ppZ0lhOTdmNXorK3ZmTnpF?=
 =?utf-8?B?K2pqMVY0c0JlZEdWL0lBYkV1SnRIUnovR3gzMmJTc29FSDBBMUF2b0VMRkQx?=
 =?utf-8?B?YnZETlcwZldHdGtSWjN0ZWJjVnIzR0w4S3BYR04ybVM1cVVIR1VUR2YwanJq?=
 =?utf-8?B?Q0FzbXVQNXJJaTNFT3NCbzdVTHNUL0c4dVcyNldoWm4wQ2F2YUd4SURRVzBj?=
 =?utf-8?B?NjdKUENLR0VBdkp3Yk9uZHYzelNyLzd1Sm1MNXhlbnpGR2NndVllR1hpRDdO?=
 =?utf-8?B?TmgrcFdFdVdwY3U3R3VMV0pMcWJ6SitkWEFjeHFWeit4VEhwQTBLSGU2YWQy?=
 =?utf-8?B?QUhWc2JjQlNXWnJOT3BWdUNwaEtZcG9sRnFsdzdyandLNjMwMkZDUGg4bXUy?=
 =?utf-8?B?U0Z2THdlcEJETDhEVVlYRGM1blQ0bVNSU1ZjK2F0V0o0S1ZXUVJmSGdJakN6?=
 =?utf-8?B?ZlVRcks1RjgzZ0hZMGlZVVJmTFBaaUppN2xua1pIZmExLzJxWHY4N1NmK29W?=
 =?utf-8?B?TVVZdFNkaGM2dGdvWEhVL3JjV21tangyQkxlajFVUHMyTHFjd1YzS3IvOUFt?=
 =?utf-8?B?bFBlc0xPQWFPOGtXQkZIY1Y5aTRuNnFMMW9hUGtNYVNlRCtNYm5NRGFDcmpa?=
 =?utf-8?B?ZFUxeDE5NkFGZlN5dlpnNmw3Vldua2hwZEFKZDBIeU04MFZMMkJGV0dtUGMv?=
 =?utf-8?B?Si95L1Z0RDBwbG9xQm1Ebk9ZblBjdllwbGRjYmRWVUFWL1RoUW94R3JEbFV2?=
 =?utf-8?B?cTlXVHA5MUgyNUJYdjhvZXVBN2JmaVlMdFczQWJMVTd0d1lzdGZTTjVWdVJU?=
 =?utf-8?B?VTFjbVlOc09MODA2WG5VZnBRWXBVRXkzeGU5WWJHQ2t3RGdJR1JBeDQ4ZnBk?=
 =?utf-8?B?ZFdHbWgzRXR4K2dKSzlCZGxVWWJveURIOHZ3UzNXRFV1SFNrM2NkZ1ErM200?=
 =?utf-8?B?cHFEUjRqR3FMR3ZiQzRHOHdYbXYxSzFZOE1La1lwNkdxblQ1V0pBL3A3OWpo?=
 =?utf-8?B?TXk3NnVPak5HbENlMHZicjdyS3BBd0ljbHB2NVR1Y25ML3ZoUldLU080bG5J?=
 =?utf-8?B?QVVQZFFpZ2c1ZVl1TEZ5dzRtRHBXOG0wSmowU2Jkam1zeHF4WkxSUzFnYUhK?=
 =?utf-8?B?SThyNitLWTk3bHc2MTFwM0NQNXlLcWNMTFVQc0t4VlgyYlZETDZnRUtYQ0ZV?=
 =?utf-8?B?QTB2bXdtcHpkNHRRSlMyVXg1U3F0UGZwQTRzZFh6YlZBSzRHVWVPUjdZRVBM?=
 =?utf-8?B?QzdrcEg5YWdCYThkNUZuMVFkQklTcENkNUdiQ1BhVzNNcG01cjhGNyt4OXlr?=
 =?utf-8?B?bVVsbDdRUjhtOFFBT0hkZ0VZeTJ0UzNySlVUMUxSR01LZmw4RkNuTnJCRjQ4?=
 =?utf-8?B?ME51eEtFTnQzMmN3bVAwakZKY0xNMlhDZnJkM3lra2phWXB5dVc4UTc0c0F0?=
 =?utf-8?B?am9OeCtzNGZJWE1YS05henVKclhWSXJvTTh5NzBpRkU4NnJpS3NQZ2wxUThI?=
 =?utf-8?B?MFE2WlFoUXY0c0FlMlcyU2pwenNzSlJ1SUpTRTNaQk8xbGdlUjlYSGZ2enRH?=
 =?utf-8?B?bXZtaFBhMDJYS21hMWNRYTd1eW9UWi96NGZESTBMVUY1TTZKZmN5S2NUWnAr?=
 =?utf-8?B?UWpLQXhaV1FOVFllV1NUSm5jaldzTmovekpMMUNmUk5WSDZFVVJGUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <65BB7E53E4F1454D89463744F00B6CC8@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b2e008bb-8d4e-474a-399b-08d9b003f87d
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2021 11:08:54.8379
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: z7+4m1tLWKFkKYgsqgDs8qXwgJtUypXE4a5XPJxSfC7OBQ1suaawoISTGG3caspLV4ZXd35RGq/uSCaYMoehNVKuly154aQoXUVw8/uDGGsFVGhFE52sOf7MVrfh555h
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5010
X-Proofpoint-ORIG-GUID: -fGPsX8IOogWF5T5IVkeFo5xQq5KIAF4
X-Proofpoint-GUID: -fGPsX8IOogWF5T5IVkeFo5xQq5KIAF4
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-25_04,2021-11-25_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015
 priorityscore=1501 impostorscore=0 mlxscore=0 mlxlogscore=999
 suspectscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 malwarescore=0
 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111250062

DQoNCk9uIDI1LjExLjIxIDEzOjA2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjUuMTEuMjAy
MSAxMjowMiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gVGhlcmUgYXJlIHJhbmdlIHNldHMgd2hpY2ggc2hvdWxkIG5vdCBiZSBwcmludGVkLCBzbyBp
bnRyb2R1Y2UgYSBmbGFnDQo+PiB3aGljaCBhbGxvd3MgbWFya2luZyB0aG9zZSBhcyBzdWNoLiBJ
bXBsZW1lbnQgcmVsZXZhbnQgbG9naWMgdG8gc2tpcA0KPj4gc3VjaCBlbnRyaWVzIHdoaWxlIHBy
aW50aW5nLg0KPj4NCj4+IFdoaWxlIGF0IGl0IGFsc28gc2ltcGxpZnkgdGhlIGRlZmluaXRpb24g
b2YgdGhlIGZsYWdzIGJ5IGRpcmVjdGx5DQo+PiBkZWZpbmluZyB0aG9zZSB3aXRob3V0IGhlbHBl
cnMuDQo+Pg0KPj4gU3VnZ2VzdGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+
DQo+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2Fu
ZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+IFJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxp
Y2hAc3VzZS5jb20+DQo+IGFsYmVpdCB3aXRoIGEgcmVtYXJrOg0KPg0KPj4gLS0tIGEveGVuL2lu
Y2x1ZGUveGVuL3Jhbmdlc2V0LmgNCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9yYW5nZXNldC5o
DQo+PiBAQCAtNDgsOSArNDgsMTAgQEAgdm9pZCByYW5nZXNldF9saW1pdCgNCj4+ICAgICAgIHN0
cnVjdCByYW5nZXNldCAqciwgdW5zaWduZWQgaW50IGxpbWl0KTsNCj4+ICAgDQo+PiAgIC8qIEZs
YWdzIGZvciBwYXNzaW5nIHRvIHJhbmdlc2V0X25ldygpLiAqLw0KPj4gLSAvKiBQcmV0dHktcHJp
bnQgcmFuZ2UgbGltaXRzIGluIGhleGFkZWNpbWFsLiAqLw0KPj4gLSNkZWZpbmUgX1JBTkdFU0VU
Rl9wcmV0dHlwcmludF9oZXggMA0KPj4gLSNkZWZpbmUgUkFOR0VTRVRGX3ByZXR0eXByaW50X2hl
eCAgKDFVIDw8IF9SQU5HRVNFVEZfcHJldHR5cHJpbnRfaGV4KQ0KPj4gKy8qIFByZXR0eS1wcmlu
dCByYW5nZSBsaW1pdHMgaW4gaGV4YWRlY2ltYWwuICovDQo+IEkgd291bGQgZ3Vlc3MgdGhpcyBj
b21tZW50IHdhcyBpbnRlbnRpb25hbGx5IGluZGVudGVkIGJ5IGEgYmxhbmssDQo+IHRvIHZpc3Vh
bGx5IHNlcGFyYXRlIGl0IGZyb20gdGhlIGNvbW1lbnQgY292ZXJpbmcgYWxsIGZsYWdzLiBJJ2QN
Cj4gcHJlZmVyIGlmIHRoYXQgd2FzIGtlcHQgYW5kIGlmIHRoZSBuZXcgY29tbWVudCB5b3UgYWRk
IGZvbGxvd2VkDQo+IHN1aXQuDQpBaCwgb2ssIHNvIEkgd2lsbCBhZGQgYSBzcGFjZSBmb3IgdGhl
IG5ldyBmbGFnJ3MgY29tbWVudCBhcyB3ZWxsIHRoZW4NCj4gSmFuDQo+DQpUaGFuayB5b3UsDQpP
bGVrc2FuZHI=


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:17:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:17:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230981.399323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCl6-0005SA-Ii; Thu, 25 Nov 2021 11:17:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230981.399323; Thu, 25 Nov 2021 11:17:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCl6-0005S3-Fa; Thu, 25 Nov 2021 11:17:44 +0000
Received: by outflank-mailman (input) for mailman id 230981;
 Thu, 25 Nov 2021 11:17:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqCl4-0005Rx-OY
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:17:42 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4cbfeb9a-4de1-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:17:39 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2051.outbound.protection.outlook.com [104.47.10.51]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-21-CcKZXh0vOIenmyBxLZ0Erg-1; Thu, 25 Nov 2021 12:17:37 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4847.eurprd04.prod.outlook.com (2603:10a6:803:54::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Thu, 25 Nov
 2021 11:17:34 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 11:17:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0502CA0002.eurprd05.prod.outlook.com (2603:10a6:203:91::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Thu, 25 Nov 2021 11:17:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4cbfeb9a-4de1-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637839059;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=3LBUQf/auwUIDfWkFkF3keE2tlU9A8h0sZ4WqeeE/lA=;
	b=jHbSTeb66vIByKDaHNE0uQDSkKaVyx01qUtVkKRAbmqowqoUXY04GJKNsl+a0ut8+sGuxX
	VNK0PvTj3pVz+esZlJUaL+LGsefqwfc/mOOphTg3NCAN3FIdikuk1L8g/0QC3U8WRR5DxS
	bHh8EH0e52/FRhEWwdxYH1zGjXcc43E=
X-MC-Unique: CcKZXh0vOIenmyBxLZ0Erg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=arRo3PNlcgAi42hDkJqzspaT1e5dXUnMhUaXH79f9RBzch4Fg+xGRajtZU0a7TY3SNyuvc8y9mANvbzXcR7DEFbZKYvrlL1GDmg5j7E3Anomiay7fOWa3UDq9ErjchuRXotIfRgR4ibTe1GgNIqbZOfwr3kfdeght0nPk4r0qkIp/5uKHsGpu+Zao2dp2XIge1z2VH4+8A4z5RttdoiKhY0eggKOnTr9cOL/QfvtkuSanA+r823nKR3NS3O7xYw0yZvmehAr/IVDyxXQ7fgav1ovPVEdN+Woxb8RLRrX9L/E9GQuWLHoOBKObE6C7ctqwVrL2qw/UpxFrhof5NkPXw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Qzn/kpt33PAZbQW8/une7kjGEoccxWfuA7ZBjT4d4S4=;
 b=FQHnseizwoM7101g8VUtQjDiA+wx3Yem11ofxVmrG1nXf7hEYmuICoQBHvoz2qCAU3KD28CnPCY+duklpt7Ys68yyHt14ADjFaFcmpLv6el1eA2O5dXvIzdMKmHAJIHNTbKOBbjWb3C/EBOc+3FB6o9zOg6qJ8Up9w8FnSQqeEMY/Njr0z7ASTTvAD0HyZixAbm9r1uezkTeZp+MdAvtsM1Ujd/j2ISoaC5kgVZBu3dQPb/NzhaKPeRej7Rs98mqogDY+kDdPgs1+7yP5qzZOYM9iS/Lx09vQ+XFVLNmNpiS75hyh4Hser22sJMLkq+LMFrschFTm5ChNG7vssSRDA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <892d6148-e98f-def2-121b-922f1215a442@suse.com>
Date: Thu, 25 Nov 2021 12:17:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH v5 14/14] vpci: add TODO for the registers not explicitly
 handled
Content-Language: en-US
To: Oleksandr Andrushchenko <andr2000@gmail.com>
CC: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, george.dunlap@citrix.com, paul@xen.org,
 bertrand.marquis@arm.com, rahul.singh@arm.com,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20211125110251.2877218-1-andr2000@gmail.com>
 <20211125110251.2877218-15-andr2000@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211125110251.2877218-15-andr2000@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0502CA0002.eurprd05.prod.outlook.com
 (2603:10a6:203:91::12) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f22a0d78-6b05-4690-5da7-08d9b0052e39
X-MS-TrafficTypeDiagnostic: VI1PR04MB4847:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB484770EC687E65461DD6ADF9B3629@VI1PR04MB4847.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	uf7Ec/I+7oKzi75LD+WvkKWscX9nBzU6sleHFL0qcuw9mhK02njtM+ecb/GIMzXpT7mVMWYsagGbr4nU9wdYOygK1VKEB88zgz6GNposW59+xLuZc1CKIbrM9L//4dJvKLq9WYHnoi9X7PuX6DdFJeipOCe+6sTU3yaAETVRJ2PNAUpt2Lpz0mqmVJZZ2anD9SEd7FRIUmOi8eVn4i4geikrx/KMSX/ToLVot4Vc/CBbr8UF5wjiMcDWzJhs7/+zs8MzqaLFcC4JvL3JITqWnBsh1HtXD9rgzqQc51g62MpJ33q7Oj5IxkoW8OjjTdDMoVQriQuInA6nAjH6k9zrHHmsjqIXTCY6pYjyJt+Vtcqs5ejHSv8n8X0q8fuiuO6QjzBaI4Jf4zAK8vk2x4i4lwCmGNL/F4awFkDr3drPpP98BR28EbnvyA/t+RVhAJZxs0j/N0PKIwsQGLQA3UBMprGRk++mHCiY2yJE1k53IwUH33Mz0UKFquygqUPr8vuaMuWouFkIueaTScd17m0w2Pg5xtucK7No/rdNvza9Grsfd9R1q0pfmCyttapmYZLuVuMbFvhxk79fDgmEhifxPePD0JqbCLcihR+4M53847hEqjuetER6t7pKblHsv406ppgMHFPRV1Ugu0Q45LJmQXbxCWW57B4BAikpC/vBAreb9+zWszyQwcESTU7vW1CauY/UI6ocXkmevMM0UysKad6AVo1tNE6U95HnwLpDPRA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(83380400001)(66556008)(66476007)(6916009)(316002)(31696002)(956004)(508600001)(186003)(2906002)(4326008)(66946007)(8936002)(2616005)(36756003)(6486002)(26005)(53546011)(7416002)(5660300002)(86362001)(8676002)(16576012)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?EV5hXPQNSMEXUwxPYhsDUrQ+aB6qNsh8KVNupETZoASwHQ7qsCiOZgHyXAHg?=
 =?us-ascii?Q?HGnKeDfgTK/cjlQSFCuLrudGrPyAn0b5RvWyTaA55dkjOK09xlvtpuwWJlgK?=
 =?us-ascii?Q?mg7w0Lj6wjhThs4odrf0KzbYljRrikbQ9gCZO2Oho+EXyv4TlrRP2NXuGk5D?=
 =?us-ascii?Q?JVU7S/cEiNC3tweBcCQMCBrPIxokCh+6Hb4PwExl2tVa9Wh8+2Z7EmiZcCLE?=
 =?us-ascii?Q?Dn4fu1j6EhsrR4adPPUelMGSKtPdKCznPuLds+xuAhf3vXrJNhqg8reliCkv?=
 =?us-ascii?Q?O4t/X/UVvXQ5nHjGX+jw5lhXpbv8DOz3md69ZpPIrYUs9l4KuWsnkSl06kVd?=
 =?us-ascii?Q?gD3OUEBIwVWlFm5fOVoDWkVGZLx/D1PmMo7C+462IojFItR3RN0LlaN/3ZXt?=
 =?us-ascii?Q?0jDG2qGmtAmI+79DLKKTMRJec37Ps7QmlGYXzlEvkZx6Eb17F+MZxYqLTaDS?=
 =?us-ascii?Q?UYUX5In3c7uh3KmklYeXgvN/PbAiafvWLGa0hmLqSEJVH+9kdJu8LAfeNXd9?=
 =?us-ascii?Q?pfCA1yRbnfS6CW6SKXo/TSbFQKBTUeM+LLoG1E6K8tHAGoHkAkoltauoywne?=
 =?us-ascii?Q?yLuSclwj9vE5/fQFRoQF6JZCxFh5HFl1RfRDUl+P5Ef/Rh+rCONf5l907Z6T?=
 =?us-ascii?Q?u6GiqqbOAu1B/AifVWTXRTD9YKrEAgerTvPAry1EwfKGOUPPaL+7Kq5Hq8j3?=
 =?us-ascii?Q?UQaM8vd9cXk0WXSnfVbFFp0F7vvloDhaGCzdn4Ox4vPppY7Rae1NsN2R2MKh?=
 =?us-ascii?Q?WFjMohUL42fDn9czmu7/7mWVcUdpUAiB2hzrd/iBGx7XJLm3PCx86pNuaujE?=
 =?us-ascii?Q?FFWgeLYUUFiKfriI6avhprSGKqxtFCZG0/uZi6tpozb+ETKuhJquPKCura8q?=
 =?us-ascii?Q?29QcjQLRMPlmDEXmD9EmcO1SJVsLwsuLBy9Fbyd2le1ao7pYAcbWIkjIRcPg?=
 =?us-ascii?Q?ohFFRVj+z2dfrGSCCrT9w1w21O2c104mBhZGnhdb5Vb3c7+3T6tVYSqYP+T9?=
 =?us-ascii?Q?wd1fHsUjvYGPMB4GWArV7m7TCh5PEsEdxDjZ05yj+/gnf+iXVWmSZEyFMZbw?=
 =?us-ascii?Q?sbii6jPhxJbCsL2+C7jqLuZjxciA52jyLsMCU+biCb0lDd8hi/4vnsnzV2ht?=
 =?us-ascii?Q?PCeeFIw0QWT27ONUeiTAsKTz/w7KLT8jRZyLw8c0TlcSgvh8rVPWFmonuBFz?=
 =?us-ascii?Q?9JLHP9LKVOwK6XUTBTB75gviyuLD/0xHwXtbSdvFqxX9P3J+0pDfdKt2sKzY?=
 =?us-ascii?Q?s7ULGcHr5QeRA9u2Gx1S8r/GYA0pa1UwSRENHwjz0fwK119Gt44q0L/91tza?=
 =?us-ascii?Q?hOmT5vxTvaJ5glRrV3BAY6uSgiy9WRWmp3kKrL4MQa0S8GSUOaZNJvOZ5BaU?=
 =?us-ascii?Q?obbBuy8Se1WZQVOuXDDYF7IVfDp0vKPZaFqKGDR4lQ/7EXZ0YPgLznCfXJzQ?=
 =?us-ascii?Q?vJGjo1TucWxCGYpQiDc0ZwFICHwF/9P949NzA4rseRLYA8kyIjuLZ8SvDTZW?=
 =?us-ascii?Q?2xZRyKmQunp0+j/GmE58xEKzh6RsD3R5skiLLargYvcP22FRJwea7vGd5t5v?=
 =?us-ascii?Q?AhrPoTpF8EazzJNc5fIJpre77w7ql0HE5uvm2hjw5jYfIdYzJdgdgJIoNdLd?=
 =?us-ascii?Q?oSxiaokEGZH67LfU379iINc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f22a0d78-6b05-4690-5da7-08d9b0052e39
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 11:17:34.7911
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dkL//W7v8EcOuMHB8/6ZCsr6ntoee88cPY91OwyG5FgVJ8WXePYjo5j8G7YqG+eTykV0wVBY9NZOZHjefdo56Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4847

On 25.11.2021 12:02, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>=20
> For unprivileged guests vpci_{read|write} need to be re-worked
> to not passthrough accesses to the registers not explicitly handled
> by the corresponding vPCI handlers: without fixing that passthrough
> to guests is completely unsafe as Xen allows them full access to
> the registers.
>=20
> Xen needs to be sure that every register a guest accesses is not
> going to cause the system to malfunction, so Xen needs to keep a
> list of the registers it is safe for a guest to access.
>=20
> For example, we should only expose the PCI capabilities that we know
> are safe for a guest to use, i.e.: MSI and MSI-X initially.
> The rest of the capabilities should be blocked from guest access,
> unless we audit them and declare safe for a guest to access.
>=20
> As a reference we might want to look at the approach currently used
> by QEMU in order to do PCI passthrough. A very limited set of PCI
> capabilities known to be safe for untrusted access are exposed to the
> guest and registers need to be explicitly handled or else access is
> rejected. Xen needs a fairly similar model in vPCI or else none of
> this will be safe for unprivileged access.
>=20
> Add the corresponding TODO comment to highlight there is a problem that
> needs to be fixed.
>=20
> Suggested-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Looks okay to me in principle, but imo needs to come earlier in the
series, before things actually get exposed to DomU-s.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:20:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:20:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230987.399334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCo9-0006oH-1p; Thu, 25 Nov 2021 11:20:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230987.399334; Thu, 25 Nov 2021 11:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqCo8-0006oA-Uh; Thu, 25 Nov 2021 11:20:52 +0000
Received: by outflank-mailman (input) for mailman id 230987;
 Thu, 25 Nov 2021 11:20:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lI9u=QM=epam.com=prvs=1963e0fee4=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mqCo7-0006o4-N1
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:20:51 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bdc0a40f-4de1-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 12:20:49 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1APBHgvH027258;
 Thu, 25 Nov 2021 11:20:46 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2113.outbound.protection.outlook.com [104.47.17.113])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3cj8mg0723-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 25 Nov 2021 11:20:45 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM9PR03MB6884.eurprd03.prod.outlook.com (2603:10a6:20b:2de::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.19; Thu, 25 Nov
 2021 11:20:39 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4734.022; Thu, 25 Nov 2021
 11:20:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bdc0a40f-4de1-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nlgKrQUMyREnaAqC8av84Az//OzS0cLVp7pGS+wfdrsIcukIWun73oRX1oXWgu0uzI3gPY8VldrVeGbzTreIyhYUa+AREdAz1DkJLmDt8ADw3lCv5qRuXJ12t3RpVWiF/6CmuKnyTLpG2gOWWRFQ61cJxL0jK1W9r3cxsLJc4Wd1bhTzcVDxhb03YsbP4L0qphsvfaF5q5K/64RHZsWYUq5FtlfjjJFtBDqbeVgqTQomZrdFvWPXSXKAbY1ZD4bYRZoLwRgKw4NjhLwCfxkk2FYh/FX+fRa+bcqvCMOsPPMYCl5EiIafxfFjqkocKjLUGPFeDNBMnQhTJcl0/h1cMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gTLF9kFSmUDDPi3lveMdTbhQS/4c2xojykeC3vHcILQ=;
 b=ieMbTb7qnkUqr0jXpzlzZee9xGybUsvYXJWcvo7sywAkHRFvUyO39ugms56WHemfCdLeFGEkeUbwZHLGOYaXngSDI2007Jpd1T0oyQhBhzZeHEl5LhwiJWC9Ejj0U4LaT+C8IRBD0OznsJwvHpy6aNAM6jTfe3FsIX6crn6LjK2liI+YLrrZJhzaCrdAcK97o2hj522DJnbm8yZ/PXVWfNuozeZDx2fJHdV2W3wd7hGSRDBlWYrxQocBYrRYjzRCadUAM1oiR5Ia2u1pNvXt8RjoUyg+kh0alUSA5Tj4gkpcOsBX+bgL7KepXkdA6e62BMiMexq+1DbN7x5tWiAh9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gTLF9kFSmUDDPi3lveMdTbhQS/4c2xojykeC3vHcILQ=;
 b=XqKIOq6EW8N5GZVMj6QtDEll06lAKZWqlzfBG3paxGZGIHACZvEmWgcLbpvlu26qjYRGbk3PTWakvq0s7UnMdq09GpXVe3OyjRLunCAvtmVm/6WXYpvXMUiFRKLZUaGgpL3eRU04dxePIh0O8ojmW40TDglUqtlVZ8bfpj1zPHt97yPqopBYXMmi9lSBYeNsI0yD5CjmlNpfmrH0ddmu8Yi57hJ+zYtfUBNJo7Yh4d1Ioy0UvYLjhI9xLcebd+8VwJzp2HaJFtBDYACSpaqyKaTlhEcI+huGyDSzJJn9ksyCywPajsBrRdAehzHhLQ7LB8PEsPxT5Wjm0S6Chw4xuw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "julien@xen.org" <julien@xen.org>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "roger.pau@citrix.com" <roger.pau@citrix.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Rahul Singh <rahul.singh@arm.com>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Oleksandr
 Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v5 14/14] vpci: add TODO for the registers not explicitly
 handled
Thread-Topic: [PATCH v5 14/14] vpci: add TODO for the registers not explicitly
 handled
Thread-Index: AQHX4ewNiPcRmuDEOU6R/33b+PKQzqwUGDwAgAAA3IA=
Date: Thu, 25 Nov 2021 11:20:39 +0000
Message-ID: <75b4ef3a-b4ac-fd61-3ee6-52469718b723@epam.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
 <20211125110251.2877218-15-andr2000@gmail.com>
 <892d6148-e98f-def2-121b-922f1215a442@suse.com>
In-Reply-To: <892d6148-e98f-def2-121b-922f1215a442@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 7df01fd9-9dcc-49ab-dd43-08d9b0059c42
x-ms-traffictypediagnostic: AM9PR03MB6884:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM9PR03MB6884A27F6066D1E6325F341AE7629@AM9PR03MB6884.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 kHJtuoUfFknlKTYMlVRz/RCQA2oIUR2ftbF8ufShrAZJWEtzKD6zP+YJX7IUI2GZuf63McQL6enua0KFHCtf7YUzVN+bdiwZr9a59aXm6UisAlOos5Rdgi8wcjPxlqM3FkTcRA2pCWCUWZbvwHJ9VtHUqRASn7xHvBc1iBqSdxc3wt2/zE3qDyg/dPVz5XUC6zJ6hl0plzlsqzju0rcxy3wzycvQ4+svHKL6Vr3OGDD3umz9agVV0Ex7yHsWUP8Zfjeof7TMpR1hT6YDCMEl+fTr59E8OKKkJdeSx1roRR8xerJESJcyhOotg9BNv0B+wPJUxJSRe8tSKG6cIigcCboAMuvxyqyBP1rJ+Og748KfMzPJa2I5ArIRK4XDWSm8N0cao1M/BTe4URMC826+xNB07PR3N1DXgTAcMf/9vVme1ixK6C+02FAge891vE3T8Gww1a6F1/rQHapJym1BeMvopJwk7fBHnIi1y+AbIYVDgFA2gPoepiMnojcYo3AMPuMiMc42y0W8NAF7vv/YC0Hcd2MmPvmuj4yZQ4j2uP4xIv3Fx2TwZxQ7WnUnjbAXaCjHq0OFQ3+/CbOBzXAAHhpJunYT1iKXbH7qad73AaxmyqRWHqqv0oGUBBnC1juj4wOv/J19GTlLNtYAr9FzzU+GE7R2Y94Vsxe4MZ5cfeusbmLpyAC+hBFE90IsLW+BGI9cw0L8AbCPKHxxxrHx1zaD3Z1yZoQFVJa20Wut+n0=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(508600001)(8676002)(7416002)(31696002)(4326008)(5660300002)(6506007)(71200400001)(91956017)(66946007)(54906003)(66476007)(107886003)(38100700002)(31686004)(66556008)(6486002)(6512007)(36756003)(2906002)(8936002)(6916009)(76116006)(66446008)(64756008)(86362001)(316002)(53546011)(38070700005)(122000001)(55236004)(26005)(186003)(83380400001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?RkpmRjNIWDlGUEgwbXAxeDQ3dnNyc3Y4TWFaU1RJbkZib294M0NnWVc3UnZ1?=
 =?utf-8?B?SnU5MFhsVzRHRTlUa3ltcmVUcDcyWkVoNXBRcVp6cExUL0lvTFFBa0NDcXhk?=
 =?utf-8?B?NE5QT04yY1FPeSsxRlVLdVpXOEJtKzVtMTFVSi9mQzBuRVFLOWlXRTZjV3Bz?=
 =?utf-8?B?djV6WTFnWi9IckpzampOVnhXY2dmenR3SmtRanlUdVIySlEvUTdCcXo1eXAw?=
 =?utf-8?B?ZUdRb09MWmhHOHdrSDhidUpGb2pQakdYSXVSOUtndXl1Zm1JUmdpbVdFV1hN?=
 =?utf-8?B?RncwUHk4cXF6TktjK1lsZ29Pdlo0d1BRcndsUFRTL2xIbzhTSFV1cUgyVlpM?=
 =?utf-8?B?b3paOStwNlRRRkpsMUVmZkRCVzJGbU1td0VmK2FnTGk0TDQ0VWwzbCtXWG04?=
 =?utf-8?B?MkxCUnpmdmZmKy8xcUd3N2ZDMHE4Zk14bXZQd2VUWWN5NWlneWcxVjMwcWtI?=
 =?utf-8?B?SmRqVkl1eGh3ZUJzVFg4TUw0L3dDMHlqbWlXcmNIc1FpZ3A2OVh2N3h2L0ps?=
 =?utf-8?B?R1VQZE1zZ2tmTnB5ZkFVbTZpREp3eEUraVZaLzQ1UjJqYUw3cWpPQXNNczZL?=
 =?utf-8?B?ai95MnJkQTBUOVdrSUpHNmE2WjFqdjV5WHVwaUNYV2lDaElQSVlac2Fwek50?=
 =?utf-8?B?Um9TZnBTMTBNSk11cGFFQlNGemVsN01wSmt2MS83WGk4SzhsakVpQUlMVEpH?=
 =?utf-8?B?a2gyUmFOREdmMDc0L2hMUFpjKzhsaGNrYUYzNHJBbmN3R2VJTlFHUGhENXVy?=
 =?utf-8?B?VTQzblg0YkJaZitLYzBPRnNac2ladGd3TXgxejJCeHZzSzZseFhUQ2ZGZzBt?=
 =?utf-8?B?citiaFo4Z1ZNUW9JMzFjVzNMeWVGVjJYMkNGbklSYThFUU9KdlJraXZyNDE0?=
 =?utf-8?B?SVYzUENhRVIvSk9EeDFFUitxc2NkdnNvcUpCY0xqc2RJeExXWDE5bWU2YWRR?=
 =?utf-8?B?d3czRklKTkhYQUFFbDB0UGRkWTIyM0ZidW9tLzUzeUs5YVhkeEh6UEFmMkF4?=
 =?utf-8?B?UHRRbC9iYWJNY1lWRkUwT29NdGV1cWVlUDRFUG8vaFNKYmpidCtDZndvSmxz?=
 =?utf-8?B?UVVGTGJFY094WndUbTVXYnJpbHBrQjdOdGJML2lOY2dHM3YvOTNzQlo0NHUv?=
 =?utf-8?B?SjBmakU4VVhvY1NmTVFOMHQ1enBlMVJSS0NYTW5QbFRWOUZaY29aWjlLT3Na?=
 =?utf-8?B?ci9GcUJZa294ckFiTXZXQzZLZitWL1RzUzhtUVBGelFIYzQvN2ZkQTIvUnNS?=
 =?utf-8?B?MExHVXkzMjlrSVRPZkVrQWFCU3EwM1RyUjI3UE84WWpKSXpLdytrWHM1YzZE?=
 =?utf-8?B?cmZZQ1RSSE8rRWV5MWZ6TFpMbDBDb25VakltYWFZNjE4VlFBQjhsaVdHNG1x?=
 =?utf-8?B?bW11dTQ2bDdLNElLSENkTXhDTDVxVGRaYVB1Q29iQy9YQmZlU2t0d3AyTWs5?=
 =?utf-8?B?SG1iNE9JVG16MGtlaWtjZHpscmVpMVBpeVZvWWdnaGp1S0FQS1JJKzVNeVhL?=
 =?utf-8?B?ajVNN1ZETnlOUzNITjgzVDYrYnlFZ3JpRE0zZkNITmwwU0l4SFFFUkJlZitn?=
 =?utf-8?B?YWtXMW51dkdPS201Z2xlUXk2U0x4WVBiZjQxcG9uZHF4RytOb01hSnFCYjhS?=
 =?utf-8?B?dFVpbXNqSWM4Q2Z3c2dZMU9tV2VlSWdSMTkydTVqMEkrQS9nT1hzL0hDWXNm?=
 =?utf-8?B?b1MzZXQ1dDduajkvU2RuR2dwNWhFVFlwTENDL1JEdTQ0UGtacmpJRk9FcGdv?=
 =?utf-8?B?bzBZaWNIS28zMU4rckNoSGhrSkVFZkt6YVo1QzZaeWVNUFpTSmdHN0tibWRO?=
 =?utf-8?B?b2VWTHJhZzAwYTJNQitYSEsrU1MrUmUrSTdGV285Nm1JSGZrSVkySERJUnFD?=
 =?utf-8?B?ZVBBMTgvck9JTktyQzRySmx4NGswekRoUklpZ3lIR1ZtNUk0ZURnOU45OXJr?=
 =?utf-8?B?aDJSNmpEZEhJZ1VWaDcvWU91bFRjSktoOG9mSkl0eEo3Qm9MdTFURWJHblMv?=
 =?utf-8?B?ZjE2WEVMWWp2dDRnSjdSMVlZRHllSjFLUzFLY2xPb1AxY05jSzJ5MnZIazc0?=
 =?utf-8?B?QW5OT3F0Smc5NmVtVXpLTnFlcUdxWGFQOUdRRisvb0EzQXUxeDI1elJDYUkw?=
 =?utf-8?B?ZVFENDVwVUxtdHJqZW9ySWF5SUF5WVMrTHZVQlIwV1FnU0c5QmFxV1grdlZW?=
 =?utf-8?B?SFBJcEU3cFVmaUFra2V5NC90NGhxWXRtWWdmYjk5YklXOG5vVHVHVUNVZGly?=
 =?utf-8?B?TGxtc1RKVDJVTUVic3VIcXJpc3BoSDZQZFo4M2szT213cVNKajRPdlIyWDNx?=
 =?utf-8?B?dUh6OWo3UEhvWnE4UWdFY28yRkVjdVR4RDl0WVlLazY0T2c5QkNWQT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F7EB5B88C14D3848BDAE1441DF20CC91@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7df01fd9-9dcc-49ab-dd43-08d9b0059c42
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2021 11:20:39.1134
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: g1iodWfh6t4xnbTeygeJgFg3b0W4H4sBLS0Am9FJ8oSEJnH+Ud31v0yB4Nytm8L8GxpcbtNwtExcenqvMjYsBnNw9dTqNw3p+g3OT3MneM7ZlmE7EWhdYcug9fDDe0qw
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6884
X-Proofpoint-ORIG-GUID: SCMpP6n3gWSBeMKR5-9-OnXtDXuhtFmH
X-Proofpoint-GUID: SCMpP6n3gWSBeMKR5-9-OnXtDXuhtFmH
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-25_05,2021-11-25_01,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0
 mlxscore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 spamscore=0
 priorityscore=1501 impostorscore=0 phishscore=0 mlxlogscore=986
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2110150000 definitions=main-2111250062

DQoNCk9uIDI1LjExLjIxIDEzOjE3LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjUuMTEuMjAy
MSAxMjowMiwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6DQo+PiBGcm9tOiBPbGVrc2Fu
ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQo+Pg0K
Pj4gRm9yIHVucHJpdmlsZWdlZCBndWVzdHMgdnBjaV97cmVhZHx3cml0ZX0gbmVlZCB0byBiZSBy
ZS13b3JrZWQNCj4+IHRvIG5vdCBwYXNzdGhyb3VnaCBhY2Nlc3NlcyB0byB0aGUgcmVnaXN0ZXJz
IG5vdCBleHBsaWNpdGx5IGhhbmRsZWQNCj4+IGJ5IHRoZSBjb3JyZXNwb25kaW5nIHZQQ0kgaGFu
ZGxlcnM6IHdpdGhvdXQgZml4aW5nIHRoYXQgcGFzc3Rocm91Z2gNCj4+IHRvIGd1ZXN0cyBpcyBj
b21wbGV0ZWx5IHVuc2FmZSBhcyBYZW4gYWxsb3dzIHRoZW0gZnVsbCBhY2Nlc3MgdG8NCj4+IHRo
ZSByZWdpc3RlcnMuDQo+Pg0KPj4gWGVuIG5lZWRzIHRvIGJlIHN1cmUgdGhhdCBldmVyeSByZWdp
c3RlciBhIGd1ZXN0IGFjY2Vzc2VzIGlzIG5vdA0KPj4gZ29pbmcgdG8gY2F1c2UgdGhlIHN5c3Rl
bSB0byBtYWxmdW5jdGlvbiwgc28gWGVuIG5lZWRzIHRvIGtlZXAgYQ0KPj4gbGlzdCBvZiB0aGUg
cmVnaXN0ZXJzIGl0IGlzIHNhZmUgZm9yIGEgZ3Vlc3QgdG8gYWNjZXNzLg0KPj4NCj4+IEZvciBl
eGFtcGxlLCB3ZSBzaG91bGQgb25seSBleHBvc2UgdGhlIFBDSSBjYXBhYmlsaXRpZXMgdGhhdCB3
ZSBrbm93DQo+PiBhcmUgc2FmZSBmb3IgYSBndWVzdCB0byB1c2UsIGkuZS46IE1TSSBhbmQgTVNJ
LVggaW5pdGlhbGx5Lg0KPj4gVGhlIHJlc3Qgb2YgdGhlIGNhcGFiaWxpdGllcyBzaG91bGQgYmUg
YmxvY2tlZCBmcm9tIGd1ZXN0IGFjY2VzcywNCj4+IHVubGVzcyB3ZSBhdWRpdCB0aGVtIGFuZCBk
ZWNsYXJlIHNhZmUgZm9yIGEgZ3Vlc3QgdG8gYWNjZXNzLg0KPj4NCj4+IEFzIGEgcmVmZXJlbmNl
IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBhdCB0aGUgYXBwcm9hY2ggY3VycmVudGx5IHVzZWQNCj4+
IGJ5IFFFTVUgaW4gb3JkZXIgdG8gZG8gUENJIHBhc3N0aHJvdWdoLiBBIHZlcnkgbGltaXRlZCBz
ZXQgb2YgUENJDQo+PiBjYXBhYmlsaXRpZXMga25vd24gdG8gYmUgc2FmZSBmb3IgdW50cnVzdGVk
IGFjY2VzcyBhcmUgZXhwb3NlZCB0byB0aGUNCj4+IGd1ZXN0IGFuZCByZWdpc3RlcnMgbmVlZCB0
byBiZSBleHBsaWNpdGx5IGhhbmRsZWQgb3IgZWxzZSBhY2Nlc3MgaXMNCj4+IHJlamVjdGVkLiBY
ZW4gbmVlZHMgYSBmYWlybHkgc2ltaWxhciBtb2RlbCBpbiB2UENJIG9yIGVsc2Ugbm9uZSBvZg0K
Pj4gdGhpcyB3aWxsIGJlIHNhZmUgZm9yIHVucHJpdmlsZWdlZCBhY2Nlc3MuDQo+Pg0KPj4gQWRk
IHRoZSBjb3JyZXNwb25kaW5nIFRPRE8gY29tbWVudCB0byBoaWdobGlnaHQgdGhlcmUgaXMgYSBw
cm9ibGVtIHRoYXQNCj4+IG5lZWRzIHRvIGJlIGZpeGVkLg0KPj4NCj4+IFN1Z2dlc3RlZC1ieTog
Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQo+PiBTdWdnZXN0ZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtz
YW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4g
TG9va3Mgb2theSB0byBtZSBpbiBwcmluY2lwbGUsDQpUaGFua3MgUm9nZXIgZm9yIHdyaXRpbmcg
bW9zdCBvZiB0aGUgdGV4dCBpbiBlLW1haWxzIHdoaWxlIGRpc2N1c3NpbmcgdGhlIGlzc3VlDQo+
ICAgYnV0IGltbyBuZWVkcyB0byBjb21lIGVhcmxpZXIgaW4gdGhlDQo+IHNlcmllcywgYmVmb3Jl
IHRoaW5ncyBhY3R1YWxseSBnZXQgZXhwb3NlZCB0byBEb21VLXMuDQpJIGNhbiBoYXZlIGl0IGFm
dGVyICJbUEFUQ0ggdjUgMDUvMTRdIHZwY2k6IGFkZCBob29rcyBmb3IgUENJIGRldmljZSBhc3Np
Z24vZGUtYXNzaWduIg0KPiBKYW4NCj4NClRoYW5rIHlvdSwNCk9sZWtzYW5kcg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 11:41:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 11:41:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.230996.399354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqD87-0000mB-SH; Thu, 25 Nov 2021 11:41:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 230996.399354; Thu, 25 Nov 2021 11:41:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqD87-0000m4-PB; Thu, 25 Nov 2021 11:41:31 +0000
Received: by outflank-mailman (input) for mailman id 230996;
 Thu, 25 Nov 2021 11:41:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Lxap=QM=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mqD86-0000ly-28
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 11:41:30 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a0ce5058-4de4-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 12:41:28 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id t26so15579305lfk.9
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 03:41:28 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id n15sm213163ljm.32.2021.11.25.03.41.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Nov 2021 03:41:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0ce5058-4de4-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=c+s/ogUtJiq8S6eCkJtlg22v9K/HbWbi58ZiTPq2lfQ=;
        b=fEsKucNIoXRU8fo1RSw4S8M/6nduiyxDjhqJA4RiKZ+9nzT/MbK9afRfBn5g5SUR18
         iglOJ+IYQZcHBXgOfPgSM2Ue3RD9HGykxe7VGf/+Bw/5irbG8S3T0RiiZs1QvQiDgX8D
         IhT6G73L4XYoVnu1AvVvCvbFtXgOT0gZnOPImOJF6q4jEXt8IqMunTAcrJ5Yvk2XLyUt
         kAnJkjO1id1VHd8fkz4VwIdRw5FNGPfOWVApGLzWSDB1CJYRJzz5bsxA0EiQK3Lwc54P
         NHNyuVTP68C85JrREwxySo6awlAUd/uTo3L+vt2dcuWhGniSh/jgGevZW2tAxqMKI12A
         xb9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=c+s/ogUtJiq8S6eCkJtlg22v9K/HbWbi58ZiTPq2lfQ=;
        b=wmVL86GBVFCwe6dq+DxJpCssZWyflIhAGEydUgSrhdpeipU85CUd7oHnI7vthZ/piM
         bTtdLsQF5MysH+V+n6oA0CO2GLoMJ4x8EcUbGKZ6JIjIbidWMwRVAteyiYbY++PEhG7C
         KFtD+aZmYFitArSNboAWyOuTK4/YwOpn8w4meC6jjacC8RuGJZ44nD/8YMjbXrdKKZ5b
         lxUxU4HbvjAFt5g/rWw2GaLHhezUnZm6K683SrWpo7S3KQ1wMSU2jTsd2UCc7+mI3hpq
         KdjhtMJZWqedGg5z7HXFw2cG37iXBnGnwrrzZz77KiwbJDwj++udE/iy6n2DHH1E3llo
         BFIA==
X-Gm-Message-State: AOAM532FRplWnRd6WLlhtq2M4R8/aJZKzcH3AEmSfpYrxf5LvPfwqVi1
	o2Fz2tYQc2yuUaJdmvn7X1Q=
X-Google-Smtp-Source: ABdhPJwMfQ7CxY+YVrpFAi0AiKCeie5qzWnKWf11oidpWyS5Ss9HlABYbHfrCBdhkQNwbB3mJec7pw==
X-Received: by 2002:a05:6512:10c5:: with SMTP id k5mr15043810lfg.367.1637840488404;
        Thu, 25 Nov 2021 03:41:28 -0800 (PST)
Subject: Re: [PATCH V3 2/6] arm/xen: Switch to use
 gnttab_setup_auto_xlat_frames() for DT
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Russell King <linux@armlinux.org.uk>, Julien Grall <julien@xen.org>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
 <1637787223-21129-3-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.22.394.2111241534090.1412361@ubuntu-linux-20-04-desktop>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <f69cb505-d14f-c37c-cccb-49d79a66af54@gmail.com>
Date: Thu, 25 Nov 2021 13:41:27 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111241534090.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US


On 25.11.21 01:35, Stefano Stabellini wrote:

Hi Stefano


> On Wed, 24 Nov 2021, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> Read the start address of the grant table space from DT
>> (region 0).
>>
>> This patch mostly restores behaviour before commit 3cf4095d7446
>> ("arm/xen: Use xen_xlate_map_ballooned_pages to setup grant table")
>> but trying not to break the ACPI support added after that commit.
>> So the patch touches DT part only and leaves the ACPI part with
>> xen_xlate_map_ballooned_pages(). Also in order to make a code more
>> resilient use a fallback to xen_xlate_map_ballooned_pages() if grant
>> table region wasn't found.
>>
>> This is a preparation for using Xen extended region feature
>> where unused regions of guest physical address space (provided
>> by the hypervisor) will be used to create grant/foreign/whatever
>> mappings instead of wasting real RAM pages from the domain memory
>> for establishing these mappings.
>>
>> The immediate benefit of this change:
>> - Avoid superpage shattering in Xen P2M when establishing
>>    stage-2 mapping (GFN <-> MFN) for the grant table space
>> - Avoid wasting real RAM pages (reducing the amount of memory
>>    usuable) for mapping grant table space
>> - The grant table space is always mapped at the exact
>>    same place (region 0 is reserved for the grant table)
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>> Changes RFC -> V2:
>>     - new patch
>>
>> Changes V2 -> V3:
>>     - add __read_mostly specifier to xen_grant_frames
>>     - retain a fallback to xen_xlate_map_ballooned_pages() if
>>       xen_grant_frames is invalid
>>     - process xen_events_irq before xen_grant_frames in
>>       xen_dt_guest_init()
>>     - update patch description
>> ---
>>   arch/arm/xen/enlighten.c | 26 ++++++++++++++++++++------
>>   1 file changed, 20 insertions(+), 6 deletions(-)
>>
>> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
>> index 7619fbf..3fb3384 100644
>> --- a/arch/arm/xen/enlighten.c
>> +++ b/arch/arm/xen/enlighten.c
>> @@ -59,6 +59,9 @@ unsigned long xen_released_pages;
>>   struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
>>   
>>   static __read_mostly unsigned int xen_events_irq;
>> +static __read_mostly phys_addr_t xen_grant_frames;
>> +
>> +#define GRANT_TABLE_INDEX   0
>>   
>>   uint32_t xen_start_flags;
>>   EXPORT_SYMBOL(xen_start_flags);
>> @@ -303,6 +306,7 @@ static void __init xen_acpi_guest_init(void)
>>   static void __init xen_dt_guest_init(void)
>>   {
>>   	struct device_node *xen_node;
>> +	struct resource res;
>>   
>>   	xen_node = of_find_compatible_node(NULL, NULL, "xen,xen");
>>   	if (!xen_node) {
>> @@ -311,13 +315,19 @@ static void __init xen_dt_guest_init(void)
>>   	}
>>   
>>   	xen_events_irq = irq_of_parse_and_map(xen_node, 0);
>> +
>> +	if (of_address_to_resource(xen_node, GRANT_TABLE_INDEX, &res)) {
>> +		pr_err("Xen grant table region is not found\n");
>> +		return;
>> +	}
>> +	xen_grant_frames = res.start;
>>   }
>>   
>>   static int __init xen_guest_init(void)
>>   {
>>   	struct xen_add_to_physmap xatp;
>>   	struct shared_info *shared_info_page = NULL;
>> -	int cpu;
>> +	int rc, cpu;
>>   
>>   	if (!xen_domain())
>>   		return 0;
>> @@ -370,12 +380,16 @@ static int __init xen_guest_init(void)
>>   	for_each_possible_cpu(cpu)
>>   		per_cpu(xen_vcpu_id, cpu) = cpu;
>>   
>> -	xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
>> -	if (xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
>> -					  &xen_auto_xlat_grant_frames.vaddr,
>> -					  xen_auto_xlat_grant_frames.count)) {
>> +	if (!acpi_disabled || !xen_grant_frames) {
> I realize now that we only need:
>
>      if (!xen_grant_frames) {

Indeed, the first part of the check looks superfluous, will do.


>
> with that:
>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks!


>
>
>
>> +		xen_auto_xlat_grant_frames.count = gnttab_max_grant_frames();
>> +		rc = xen_xlate_map_ballooned_pages(&xen_auto_xlat_grant_frames.pfn,
>> +										   &xen_auto_xlat_grant_frames.vaddr,
>> +										   xen_auto_xlat_grant_frames.count);
>> +	} else
>> +		rc = gnttab_setup_auto_xlat_frames(xen_grant_frames);
>> +	if (rc) {
>>   		free_percpu(xen_vcpu_info);
>> -		return -ENOMEM;
>> +		return rc;
>>   	}
>>   	gnttab_init();

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 12:22:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 12:22:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231018.399395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqDky-00054X-Ef; Thu, 25 Nov 2021 12:21:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231018.399395; Thu, 25 Nov 2021 12:21:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqDky-00054Q-Aj; Thu, 25 Nov 2021 12:21:40 +0000
Received: by outflank-mailman (input) for mailman id 231018;
 Thu, 25 Nov 2021 12:21:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Lxap=QM=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mqDkx-00054K-GW
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 12:21:39 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d173808-4dea-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 13:21:38 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id y26so15813308lfa.11
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 04:21:38 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id x17sm222042lji.96.2021.11.25.04.21.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Nov 2021 04:21:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d173808-4dea-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=vKwW+VHe5OcMxed3R036glSM7CFNnysyFNmayki8jus=;
        b=HmNbEV8gOFpo7zvwzGdiodhLx5aO0alsx+N0u4jE+PzgpviXCE34KVp+onkz+8jkrU
         uO/5CPgXPir/GlBDsg47DNy1Ma6Vu2CxJZ5W2n/48nAcV8Fps9BzXhbzMblsQtEUNuKS
         STL5otz6feV42aLr917H9BxgogTI7KN4zcqracOUhD6sFRp8+2AucwIe5ewEv9QXBThv
         uYYPeemklzZTZqq1tNPWhKTpCYaGwBXsLvWUDD/a7W44DBFYfZN+LherWsQp9ko9eUuX
         6IWaoxA1kwD6CQqGMF/5HUfljIUd5sh84yN7BWfp2K3p3diYl66SyKQtQfHGSnnEzWC9
         1JLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=vKwW+VHe5OcMxed3R036glSM7CFNnysyFNmayki8jus=;
        b=loU2ah6Dv9c2HdaikRiSZ77vcbKf9fYgFzJXzP8hOAZcA3hJxnrX0FKAm1QNioLbuU
         osb9YT8fU7r/YXZaVV+AF5kug5oaxtXNsi/5/JvScNkYM+UGLV4TFYIyZ4yMCwNoEi+y
         HctQY57bg2zTPXe4EIZk83xDxegwxRR5ScuI4+Ry75cNttxckFfhyXV4QIYJAGo3ftSH
         xBRaCFTlqwf7Bzqyr78EYyJH4XshzntXDiw/zYRX/SgRY+42C6Ot5ddiPRF7plwa84ve
         8Vd33MBp7N+3xmxtVdbqX8TWjtQIll4HEEIMF6GWRj4sJ2ZJW3V6ao0B+Tj0ia6VjL21
         lXPQ==
X-Gm-Message-State: AOAM530AV2namHzF8bTXURSVuhlx5jESadFOiVCakGn5FVwNRLnnvHNJ
	nCi625dT06sXUw6obSAxkmluhi2/IfSIHA==
X-Google-Smtp-Source: ABdhPJyjtb3X/8swejQdKOhc7frtnSzRSVwz0xBmcpEyK7dmM5Smu4K+sNVZW3KlH80bKOSjwvpNeg==
X-Received: by 2002:a19:c3d5:: with SMTP id t204mr23073068lff.303.1637842898089;
        Thu, 25 Nov 2021 04:21:38 -0800 (PST)
Subject: Re: [PATCH V3 6/6] dt-bindings: xen: Clarify "reg" purpose
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, devicetree@vger.kernel.org,
 linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Julien Grall <julien@xen.org>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
 <1637787223-21129-7-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.22.394.2111241708170.1412361@ubuntu-linux-20-04-desktop>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <38cf1231-4a52-ea4a-cfc2-a73c09631031@gmail.com>
Date: Thu, 25 Nov 2021 14:21:36 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111241708170.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US


On 25.11.21 03:09, Stefano Stabellini wrote:

Hi Stefano

> On Wed, 24 Nov 2021, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> Xen on Arm has gained new support recently to calculate and report
>> extended regions (unused address space) safe to use for external
>> mappings. These regions are reported via "reg" property under
>> "hypervisor" node in the guest device-tree. As region 0 is reserved
>> for grant table space (always present), the indexes for extended
>> regions are 1...N.
>>
>> No device-tree bindings update is needed (except clarifying the text)
>> as guest infers the presence of extended regions from the number
>> of regions in "reg" property.
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>> According to the recent update to Xen's guest.txt:
>> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob_plain;f=docs/misc/arm/device-tree/guest.txt;hb=refs/heads/master
>>
>> Changes V2 -> V3:
>>     - new patch
>> ---
>>   Documentation/devicetree/bindings/arm/xen.txt | 12 ++++++++----
>>   1 file changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/arm/xen.txt b/Documentation/devicetree/bindings/arm/xen.txt
>> index db5c56d..156fe10b 100644
>> --- a/Documentation/devicetree/bindings/arm/xen.txt
>> +++ b/Documentation/devicetree/bindings/arm/xen.txt
>> @@ -7,10 +7,14 @@ the following properties:
>>   	compatible = "xen,xen-<version>", "xen,xen";
>>     where <version> is the version of the Xen ABI of the platform.
>>   
>> -- reg: specifies the base physical address and size of a region in
>> -  memory where the grant table should be mapped to, using an
>> -  HYPERVISOR_memory_op hypercall. The memory region is large enough to map
>> -  the whole grant table (it is larger or equal to gnttab_max_grant_frames()).
>> +- reg: specifies the base physical address and size of the regions in memory
>> +  where the special resources should be mapped to, using an HYPERVISOR_memory_op
>> +  hypercall.
>> +  Region 0 is reserved for mapping grant table, it must be always present.
>> +  The memory region is large enough to map the whole grant table (it is larger
>> +  or equal to gnttab_max_grant_frames()).
>> +  Regions 1...N are extended regions (unused address space) for mapping foreign
>> +  GFNs and grants, they might be absent if there is nothing to expose.
>>     This property is unnecessary when booting Dom0 using ACPI.
> I would remove the last sentence about ACPI as the initialization is not
> done via the xen,xen device tree node in that case anyway.

Agree, will do. I assume, the similar sentence for the "interrupts" 
property down the text wants removing as well.


>
> With that change:
>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks!


-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 12:37:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 12:37:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231073.399553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqDzy-0007Au-Nc; Thu, 25 Nov 2021 12:37:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231073.399553; Thu, 25 Nov 2021 12:37:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqDzy-0007An-K4; Thu, 25 Nov 2021 12:37:10 +0000
Received: by outflank-mailman (input) for mailman id 231073;
 Thu, 25 Nov 2021 12:37:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqDzx-0007Ah-5S
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 12:37:09 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqDzx-00027d-4f
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 12:37:09 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqDzx-0000ib-3c
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 12:37:09 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mqDzt-0006yu-RV; Thu, 25 Nov 2021 12:37:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=WNRL2a8LWSx5TBAtQFZcHhZNdIxbP6PdAGE/+ONBtC4=; b=cSgI/YlfUuXe2Ckapnsv1cAnoC
	JQlS+NtXOCRteUC+ovF6nttNo4OflwpTrzRbQ9UeDVq3e/7PCdCEUvY69wGAACsFfNBFF2Y/d2iqP
	3u9W42eylPTPwiWk4A1AUymoM3OyOfJB6rmgI3ttm7y5U1wvd4ZYoja31ROY98ZRwyTY=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24991.33649.462352.914912@mariner.uk.xensource.com>
Date: Thu, 25 Nov 2021 12:37:05 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [xen-4.15-testing test] 166311: regressions - FAIL
In-Reply-To: <b3e1b1d6-9dc0-9692-d08d-64553f723666@suse.com>
References: <osstest-166311-mainreport@xen.org>
	<b3e1b1d6-9dc0-9692-d08d-64553f723666@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [xen-4.15-testing test] 166311: regressions - FAIL"):
> On 24.11.2021 03:00, osstest service owner wrote:
> > flight 166311 xen-4.15-testing real [real]
> > http://logs.test-lab.xenproject.org/osstest/logs/166311/
> > 
> > Regressions :-(
> > 
> > Tests which did not succeed and are blocking,
> > including tests which could not be run:
> >  test-amd64-amd64-xl-qemuu-debianhvm-amd64 12 debian-hvm-install fail REGR. vs. 166198
> 
> At the example of this, I find:
> 
> Err:1 http://ftp.debian.org/debian buster/main amd64 genisoimage amd64 9:1.1.11-3+b2
>   Could not connect to cache:3143 (172.16.148.6). - connect (113: No route to host)
> Err:2 http://ftp.debian.org/debian buster/main amd64 rsync amd64 3.1.3-6
>   Unable to connect to cache:3143:
> E: Failed to fetch http://ftp.debian.org/debian/pool/main/c/cdrkit/genisoimage_1.1.11-3+b2_amd64.deb  Could not connect to cache:3143 (172.16.148.6). - connect (113: No route to host)
> E: Failed to fetch http://ftp.debian.org/debian/pool/main/r/rsync/rsync_3.1.3-6_amd64.deb  Unable to connect to cache:3143:
> E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
> 
> Network issue (hopefully just a transient one)?

No.  That report reflects a networking problem internal to the colo.
But the colo's internal networking is completely reliable.[1]

I investigated, and the host that job run on, italia0, has some kind
of Problem:
  http://logs.test-lab.xenproject.org/osstest/results/host/italia0.html

Meanwhile italia1 has been out of service due to a PDU fault, and we
were working on recomissioning it.  I have unblessed itaila0 and asked
Credativ to investigate.

Ian.

[1] After many allegations of random flaky, every test now has a ping
test that would fail if there was any packet loss.


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231205.399920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzA-00077j-V6; Thu, 25 Nov 2021 13:40:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231205.399920; Thu, 25 Nov 2021 13:40:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzA-00077c-S6; Thu, 25 Nov 2021 13:40:24 +0000
Received: by outflank-mailman (input) for mailman id 231205;
 Thu, 25 Nov 2021 13:40:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEz9-00076i-Na
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:23 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3bb2965d-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:40:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3bb2965d-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847622;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=3TQKgoJFKLvb/aD7eyqYNC+fnivFbK5/r2SXs8WsbPs=;
  b=Kje9dQOfQct130uYUl4Ir//S4nQ2kGJ9Il5s5h9FeGO2y+ImNmWEMZbC
   CA539PslonDGF+tHl3Th66OinhXVS1rqpBxml5zl7vKvHu88Qz/oqb8UX
   jdIennNga6ONngXZ8DbZxZzlH+5EUIlnEWE0mordkDn4+dlgZobcYNth1
   s=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: KMIXkhlZhaEdfsEkQIeuQqBHWEH549fyuRTXa4OHmLUSWoU5ue6QN7iEdTafcSHwP6kDAyyebG
 6fu7WqK2HidQJXM583jd8mylgGnKbBLxxxSBiQsAXbkbgy6fBZx5oYmUNz5zYouNFzsPdTzcEW
 MAT3W1DEVKH1oxRN7MTgIcSvHzi8I41gaP2DFX12/lGZn6R7ymEHjwz1JqZAz+5T42Wb0NpAil
 U8rYRS9D8GmDJtrY/x1Q443+zmMk0ENKWIvlGUzNrsyfl8wnMKJJPMWx9Gr9sqbI1Pv+WumPK3
 pA4jmQKiw0RcNTO/AUEhf5RL
X-SBRS: 5.1
X-MesageID: 60634057
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:FEB6h61ZLSIXXSw8MPbD5Xh2kn2cJEfYwER7XKvMYLTBsI5bpzJTm
 2pOUW6BP/aMNDPzf9lzOY6y9klVvMPQyddiSAZopC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbNh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhgvlui
 4xDq8yJUAZqA6PKh9YFVDh2HHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Ej8I/LM7tLcUHt2tp1z3xBvc6W5HTBa7N4Le02R9u3p4VQa6DO
 KL1bxJtdlPCbkBNAG0wJ6MCjr66g0nyKWJh/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 nnd423zDxUeNdqe4TmI6HShgqnIhyyTcIgfDqGi//hmxlia3HUOCQY+XEG+5/K+jyaWZdVbL
 EAF/zs0moI7/kerU9rVUgWxpTiPuRt0c9haHvA+6QqN4rHJ+AvfDW8BJhZRZdpjuMIoSDgC0
 l6Sg8ivFTFpqKeSS3+W6vGTtzzaESoIKW4PYwcUQA1D5MPsyKkykRDnXttlCLSyjND+BXf32
 T/ikcQlr+xN14hRjfz9pA2ZxWL3znTUcuIrzhj+QSH84B0pXZekJLGm70fp9fFhAonMGzFto
 0M4s8SZ6ekPC7SEmyqMXPgBEdmV2hqVDNHPqQUxRsd8rlxB71bmJNkNu28meC+FJ+5dIWexC
 HI/rz+983O60JGCSaZsK7y8BM0xpUQLPYS0D6uEBjaij3UYSeNmwM2MTRLPt4wOuBJ1+U3aB
 Xt8WZzxZUv28Yw9kFKLqx41iNfHPBwWy2LJXozcxB+6y7eYb3P9Ye5bawTRMbFpvPLe/lS9H
 zNj2yyikUs3bQEDSnOPrd57wa4icRDX+qwaW+QIL7Xec2KK6UkqCuPLwKNJRmCWt/89qws8x
 VnkAhUw4AOm3RXvcFzWAlg+OOKHdcsu9hoTYH1zVWtELlB+OO5DGo9ELMBpFVTmncQ+pcNJo
 w4tJ5/dX68RE2ufoFzwr/DV9eRfSfhivirWVwLNXdT1V8cIq9Xh9oC2cw3x2jMJCybr58Iyr
 6f5jlHQQIYZRhQkB8HTMar9w1S0tHkbueRzQ0qXfYUDJBSyqNBne37rk/s6A8AQMhGflDGU4
 BmbXEUDru7Xro5rrNSQ3fKYr52kGvdVF1ZBGzWJ9q6/MCTXpzLxwYJJXOuSUyraUWf4pPera
 elPlqmuO/wbhlda9YF7Fu8zn6454tLuoZ5czxhlQyqXPwj6VOs4LyDfj8dVt6BLyrtIgieMW
 xqCqotAJLGEGML5C1pNdgArWfuOiKMPkT7I4PVrfEijvH1r/KCKWFl5NgWXjHAPN6N8NY4oz
 LtzuMMS7ADj2BMmPszf03JR/mWIaHcBT78mptcRB4qy0lgnzVRLYJr9DC7q4c7QN4UQYxdye
 jLE1rDfg7l8x1bZdythHHfA6uNRmJAStU0Y11QFPVmIxoLIi/JfMMe9KtjrotC5Fil67t8=
IronPort-HdrOrdr: A9a23:KjzVs6GjUYJIyzndpLqE7seALOsnbusQ8zAXP0AYc3Nom6uj5q
 eTdZUgpGbJYVkqOU3I9ersBEDEewK/yXcX2/h0AV7BZmnbUQKTRekIh7cKgQeQfhEWntQts5
 uIGJIRNDSfNzRHZL7BkWqFL+o=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634057"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [XEN PATCH v8 01/47] build: factorise generation of the linker scripts
Date: Thu, 25 Nov 2021 13:39:20 +0000
Message-ID: <20211125134006.1076646-2-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

In Arm and X86 makefile, generating the linker script is the same, so
we can simply have both call the same macro.

We need to add *.lds files into extra-y so that Rules.mk can find the
.*.cmd dependency file and load it.

Change made to the command line:
- Use cpp_flags macro which simply filter -Wa,% options from $(a_flags).
- Added -D__LINKER__ even it is only used by Arm's lds.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---

Notes:
    v6:
    - CPP already used instead of CC -E
    - -Ui386 already removed
    - cpp_flags is now a macro
    - rebased
    
    v5:
    - rename cc_lds_S to cpp_lds_S as the binary runned is now CPP
    - Use new cpp_flags instead of the open-coded filter of a_flags.
    
    v4:
    - fix rebuild by adding FORCE as dependency
    - Use $(CPP)
    - remove -Ui386
    - avoid using "define" for cmd_cc_lds_S, as adding '; \' on each line is
      still mandatory for if_changed (or cmd) macro to work.

 xen/Rules.mk          | 4 ++++
 xen/arch/arm/Makefile | 6 ++++--
 xen/arch/x86/Makefile | 6 ++++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index 5e0699e58b2b..d21930a7bf71 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -238,6 +238,10 @@ cmd_cpp_s_S = $(CPP) $(call cpp_flags,$(a_flags)) -MQ $@ -o $@ $<
 %.s: %.S FORCE
 	$(call if_changed,cpp_s_S)
 
+# Linker scripts, .lds.S -> .lds
+quiet_cmd_cpp_lds_S = LDS     $@
+cmd_cpp_lds_S = $(CPP) -P $(call cpp_flags,$(a_flags)) -D__LINKER__ -MQ $@ -o $@ $<
+
 # Add intermediate targets:
 # When building objects with specific suffix patterns, add intermediate
 # targets that the final targets are derived from.
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 07f634508eee..a3a497bafe89 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -67,6 +67,8 @@ obj-y += vsmc.o
 obj-y += vpsci.o
 obj-y += vuart.o
 
+extra-y += xen.lds
+
 #obj-bin-y += ....o
 
 ifneq ($(CONFIG_DTB_FILE),"")
@@ -132,8 +134,8 @@ $(TARGET)-syms: prelink.o xen.lds
 .PHONY: include
 include:
 
-xen.lds: xen.lds.S
-	$(CPP) -P $(a_flags) -D__LINKER__ -MQ $@ -o $@ $<
+xen.lds: xen.lds.S FORCE
+	$(call if_changed,cpp_lds_S)
 
 dtb.o: $(patsubst "%",%,$(CONFIG_DTB_FILE))
 
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 69b6cfaded25..669e16e72690 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -78,6 +78,7 @@ obj-y += sysctl.o
 endif
 
 extra-y += asm-macros.i
+extra-y += xen.lds
 
 ifneq ($(CONFIG_HVM),y)
 x86_emulate.o: CFLAGS-y += -Wno-unused-label
@@ -238,6 +239,7 @@ endif
 note_file_option ?= $(note_file)
 
 ifeq ($(XEN_BUILD_PE),y)
+extra-y += efi.lds
 $(TARGET).efi: prelink.o $(note_file) efi.lds efi/relocs-dummy.o efi/mkreloc
 ifeq ($(CONFIG_DEBUG_INFO),y)
 	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
@@ -290,8 +292,8 @@ $(BASEDIR)/include/asm-x86/asm-macros.h: asm-macros.i Makefile
 	$(call move-if-changed,$@.new,$@)
 
 efi.lds: AFLAGS-y += -DEFI
-xen.lds efi.lds: xen.lds.S
-	$(CPP) -P $(call cpp_flags,$(a_flags)) -MQ $@ -o $@ $<
+xen.lds efi.lds: xen.lds.S FORCE
+	$(call if_changed,cpp_lds_S)
 
 boot/mkelf32: boot/mkelf32.c
 	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231208.399946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzM-0007js-Mt; Thu, 25 Nov 2021 13:40:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231208.399946; Thu, 25 Nov 2021 13:40:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzM-0007jd-Ib; Thu, 25 Nov 2021 13:40:36 +0000
Received: by outflank-mailman (input) for mailman id 231208;
 Thu, 25 Nov 2021 13:40:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzK-00076i-UV
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:35 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 429f4ad1-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:40:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 429f4ad1-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847633;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=nGDIsDb6T+EAmgMztobre/7LJOc8NJGsQjeWYOHBbk8=;
  b=Ouf/tb3utT5zvnmGHTKDvynTxwMPy9UIRjCd+tQep1CGX6ZDhsU3JIJy
   S2LFoAdKOu8/Lc4FBYa2FcWF41rQUQgMSUJTP1KRy3uJrohjLNYH9y9+6
   d9qbwzKgnXoaJUbNv0AYIYUPNabqpT0bIpDAQXhYiR8iRAOVulcrUeI2q
   o=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: ZNcqcpY5cip9ez4m28cyPyD+v1uU72dX8Nlm6tj6/WzseUDxnnAMIZ3dts2PukDTqIrqQevZVJ
 pLkXY7hE8HKW+76lKEj3v9jfBoyU8HKrHBCn3fDs1JHPDYB17zir6WLBD3CjQ62fVqIAIROrxV
 Te/4PVjO7VmGULtz5tdyRxvh/idbtDndSWKe2XlGMTMgiw+GNsjThz/S8WiGQrNu/9xtf4fUPp
 F/xiK4jxrXMQzjmmlXrRtVQMSom2clfTOq0H6xlhjv9xcVMKodwPlSMRzhHlM9OG6RJwxlqqKq
 tPPEoEsy7q9nPHNfH7f1b0QC
X-SBRS: 5.1
X-MesageID: 58617609
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:5S89BK3bP76VCwjv9PbD5ep2kn2cJEfYwER7XKvMYLTBsI5bpzAOm
 mdJWWjTPv+KYWaheI91PI6wp00Hv5CBzddgHlZupC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbNh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhk8JN6
 9pL8pmKdCB1H7PCntsafkRWKnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Ej8I/LM7tLcUHt2tp1z3xBvc6W5HTBa7N4Le02R9t1p4XQqiGN
 qL1bxJUQkj/RAZuGmwPS84kg+Wx3V3bUyNx/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 mDM8nn9AxoaHMeC0jfD+XWp7sffkCW+VI8MGbmQ8v9xnEbV1mEVEAcRV1awvb++kEHWZj5EA
 xVKoGx09/F0rRH1CImmN/GlnJKalhIOZ/lfFao/0jyqlovK7QCmAUVZQAcUPbTKq/QKbTAt0
 1aImfbgCjpurKCZRBqhy1uEkd+hEXNLdDFfPEfoWSNAuoC++99r0nojW/46SPbt5uAZDw0c1
 NxjQMIWo7wIxfAG2Kyglbwsq2L9/8OZJuLZC+i+Y45E0u+bTNL6D2BLwQKChRqlEGp+ZgPc1
 EXoY+DEsIgz4WilzURhutklErCz/OqiOzbBm1NpFJRJ323zoCH8ItEAsGAkehYB3iM4ldjBO
 hG7hO+szMULYCvCgVFfP+pd9PjGPYC/TI+4B5g4n/JFY4RrdR/vwc2dTRX44owZq2B1yftXE
 c7CKa6EVC9GYYw6nGveb7pMitcDm3FhrV4/sLimlnxLJ5LFPyXLIVrEWXPTBt0EAFSs/F+Ir
 o0BbpTSkH2ykoTWO0HqzGLaFnhSRVBTOHw8g5U/mjerLlU0FWc/JeXWxL99KYVpk74MzrXD/
 22nW18ew1363CWVJQKPY3FlSbXuQZcg8i5rYX1yZQ6liyo5fIKizKYDbJ9rL7Mpw/NukKxvR
 P4fdsTeXvkWEmbb+y4QZIXWpZB5cEj5nhqHOieoOWBtf5NpSwHT1MXjew/jqHsHAiat7JNsq
 Ly8zALLB5EEQl06XsrRbfuuyXK3vGQcx70uDxeZfIELdRy1ooZwKiH3gvsmGO02KE3OlmmAy
 gKbIRYEvu2R8YU7x8bE2PKfpICzHuogQkcDRzvH7ay7PDXx93a4xdMSS/6BeD3QWT+m+KimY
 ukJnfjwPOdewQRPuot4Vb1q0bg/953koLoDllZoG3DCblKKDLJ8IybZgZkT5/MVnrIJ6xGrX
 k+v+8VBPeTbMczoJ1cdOQ45Y7nRzvoTgDTTsaw4LUiSCPWbJ1ZbvZG+5yWxtRE=
IronPort-HdrOrdr: A9a23:TeNFVq7BsRK6x6TIDAPXwM7XdLJyesId70hD6qhwISY7TiX+rb
 HIoB17726MtN9/YhAdcLy7VZVoBEmsl6KdgrNhWYtKPjOHhILAFugLhuHfKn/bakjDH4ZmpM
 FdmsNFZuEYY2IXsS+D2njaL+od
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58617609"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 04/47] build: set XEN_BUILD_EFI earlier
Date: Thu, 25 Nov 2021 13:39:23 +0000
Message-ID: <20211125134006.1076646-5-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

We are going to need the variable XEN_BUILD_EFI earlier.

But a side effect of calculating the value of $(XEN_BUILD_EFI) is to
also to generate "efi/check.o" which is used for further checks.
Thus the whole chain that check for EFI support is moved to
"arch.mk".

Some other changes are made to avoid too much duplication:
    - $(efi-check-o): Used to avoid repeating "efi/check.*". We don't
      set it to the path to the source as it would be wrong as soon
      as we support out-of-tree build.
    - $(LD_PE_check_cmd): As it is called twice, with an updated
      $(EFI_LDFLAGS).

$(nr-fixups) is renamed to $(efi-nr-fixups) as the former might be
a bit too generic.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - rename to efi-nr-fixups rather than efi-check-relocs
    - use := when assigning variable in makefile when recursive expansion
      isn't needed.
    - no more check of $(efi-y) value for "CFLAGS-$(XEN_BUILD_EFI) +=
      -DXEN_BUILD_EFI".
    
    v7:
    - Do the whole check for EFI support in arch.mk. So efi/check.o is
      produce there and used there, and produce efi/check.efi and use it there.
      Thus avoid the need to repeat the test done for XEN_BUILD_EFI.

 xen/arch/x86/Makefile | 38 ++------------------------------------
 xen/arch/x86/arch.mk  | 42 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 36 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 8db4cb98edbb..d7d2adc1881e 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -121,44 +121,8 @@ $(TARGET): $(TARGET)-syms $(efi-y) boot/mkelf32
 		{ echo "No Multiboot2 header found" >&2; false; }
 	mv $(TMP) $(TARGET)
 
-ifneq ($(efi-y),)
-
-# Check if the compiler supports the MS ABI.
-export XEN_BUILD_EFI := $(shell $(CC) $(XEN_CFLAGS) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
 CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 
-# Check if the linker supports PE.
-EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10
-XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(call ld-option,$(EFI_LDFLAGS) --image-base=0x100000000 -o efi/check.efi efi/check.o))
-# If the above failed, it may be merely because of the linker not dealing well
-# with debug info. Try again with stripping it.
-ifeq ($(CONFIG_DEBUG_INFO)-$(XEN_BUILD_PE),y-n)
-EFI_LDFLAGS += --strip-debug
-XEN_BUILD_PE := $(call ld-option,$(EFI_LDFLAGS) --image-base=0x100000000 -o efi/check.efi efi/check.o)
-endif
-
-ifeq ($(XEN_BUILD_PE),y)
-
-# Check if the linker produces fixups in PE by default
-nr-fixups := $(shell $(OBJDUMP) -p efi/check.efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l)
-ifeq ($(nr-fixups),2)
-MKRELOC := :
-relocs-dummy :=
-else
-MKRELOC := efi/mkreloc
-relocs-dummy := efi/relocs-dummy.o
-# If the linker produced fixups but not precisely two of them, we need to
-# disable it doing so.  But if it didn't produce any fixups, it also wouldn't
-# recognize the option.
-ifneq ($(nr-fixups),0)
-EFI_LDFLAGS += --disable-reloc-section
-endif
-endif
-
-endif # $(XEN_BUILD_PE)
-
-endif # $(efi-y)
-
 ALL_OBJS := $(BASEDIR)/arch/x86/boot/built_in.o $(BASEDIR)/arch/x86/efi/built_in.o $(ALL_OBJS)
 
 ifeq ($(CONFIG_LTO),y)
@@ -217,8 +181,10 @@ endif
 
 $(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A VIRT_START$$,,p')
 ifeq ($(MKRELOC),:)
+relocs-dummy :=
 $(TARGET).efi: ALT_BASE :=
 else
+relocs-dummy := efi/relocs-dummy.o
 $(TARGET).efi: ALT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A ALT_START$$,,p')
 endif
 
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index eea320e618b9..19c9cd206ed0 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -60,5 +60,47 @@ ifeq ($(CONFIG_UBSAN),y)
 $(call cc-option-add,CFLAGS_UBSAN,CC,-fno-sanitize=alignment)
 endif
 
+ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
+
+efi-check-o := arch/x86/efi/check.o
+
+# Check if the compiler supports the MS ABI.
+XEN_BUILD_EFI := $(call if-success,$(CC) $(CFLAGS) -c $(efi-check-o:.o=.c) -o $(efi-check-o),y)
+
+# Check if the linker supports PE.
+EFI_LDFLAGS := $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10
+LD_PE_check_cmd = $(call ld-option,$(EFI_LDFLAGS) --image-base=0x100000000 -o $(efi-check-o:.o=.efi) $(efi-check-o))
+XEN_BUILD_PE := $(LD_PE_check_cmd)
+
+# If the above failed, it may be merely because of the linker not dealing well
+# with debug info. Try again with stripping it.
+ifeq ($(CONFIG_DEBUG_INFO)-$(XEN_BUILD_PE),y-n)
+EFI_LDFLAGS += --strip-debug
+XEN_BUILD_PE := $(LD_PE_check_cmd)
+endif
+
+ifeq ($(XEN_BUILD_PE),y)
+
+# Check if the linker produces fixups in PE by default
+efi-nr-fixups := $(shell $(OBJDUMP) -p $(efi-check-o:.o=.efi) | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l)
+
+ifeq ($(efi-nr-fixups),2)
+MKRELOC := :
+else
+MKRELOC := efi/mkreloc
+# If the linker produced fixups but not precisely two of them, we need to
+# disable it doing so.  But if it didn't produce any fixups, it also wouldn't
+# recognize the option.
+ifneq ($(efi-nr-fixups),0)
+EFI_LDFLAGS += --disable-reloc-section
+endif
+endif
+
+endif # $(XEN_BUILD_PE)
+
+export XEN_BUILD_EFI XEN_BUILD_PE MKRELOC
+export EFI_LDFLAGS
+endif
+
 # Set up the assembler include path properly for older toolchains.
 CFLAGS += -Wa,-I$(BASEDIR)/include
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231209.399951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzN-0007mJ-4v; Thu, 25 Nov 2021 13:40:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231209.399951; Thu, 25 Nov 2021 13:40:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzM-0007lo-Sk; Thu, 25 Nov 2021 13:40:36 +0000
Received: by outflank-mailman (input) for mailman id 231209;
 Thu, 25 Nov 2021 13:40:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzK-0007NX-If
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:35 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40d07d31-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:40:30 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 40d07d31-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847630;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=DzvwX2p4CzntBZ/jg2t5IVxo/46/IjDyI06TF7RS/n0=;
  b=SxHOly6P+/d7xeXpygD00VHOIWBs5oorYHNI0ZNeJjdMDxb+l3j0GV8x
   R8/USxqt0+Pm5z55faJ6ZkWm2DDS/x1Dru2Pvxon1di0Qu0+MtH2Th6el
   6xzEDxCugcK6fCaNm9BFxi8B/uGL7f6cDv3UDPFY1iUxyqXHhQ3JLlbwj
   Y=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Q9l8HMJyru+zeX1DEV0Mk8DTWIP50rx9K6gtZLB6b4HLZb00xxuFKu9dH5F1H37s5fnLd4hvpt
 M8uYH7FSqdDlgQ5CBYVZuQYcKMKEWtekJKGG+UPNkZBI4XgI1AOFEO0g7bcb51wTRG3D4AHhzW
 Zu2o9LkeOeTfUfUkUunNbKzzdWcwgvtJJv/uwv9p4SM3i64squrqqbMdJL8/MwO2kUt7txjIW4
 LorpcUJKoP4z2r7Xg2ahMJ+ldJc453x70QHT2BlLMihMTpuIaMFclsCWCghoOG3eBK1PgVzGDV
 pOh524xP3NEOxgjfWRcodffH
X-SBRS: 5.1
X-MesageID: 58617606
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:a20vu6zObCTu3QquEGV6t+eFwCrEfRIJ4+MujC+fZmUNrF6WrkUCn
 TZJDzjVMq3ca2vzct8nPdzk8k4PvsDcmNZmSlFo/iAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRk2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt+J/1
 d5W7aGpdRksOKfHw+YQCxxBGhgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVors0lMMnsOpJZonx6xCvVJf0nXYrCU+PB4towMDIY25AQRKmAP
 5RxhTxHNDDvOyJhB3QrJZ86uMOwr2DPIhkbtwfAzUYwyzeKl1EguFT3C/LOYcCDT8hRmkeep
 0rF8n7/DxVcM8aQoRKH73ati+nnjS79HoUIG9WQ6vdviUa72m8XBRsZRFa/5/K+jyaWRNZ3O
 0ESvC00osAa9kamU938VB2Qu2Ofs1gXXN84O+439gCLjLbV6gCxB24YQzoHY9sj3OcyWD8jz
 U3Pn9r2Hy1rs7q9TXOb66fSrDWuNCxTJmgHDQcFUgkt89TluJs0jB/EUpBkCqHdpsX8BDXY0
 z2M6i8kiN07hM8Q3qS/9HjNgi6gq5bESAI4/EPcWWfNxgh+YoiiZYCh91nAxflFJYedCFKGu
 RAsksyf9/wHDIvLmjaERu4MB5m26/3DOzrZ6XZ/Ep9k+zmz9nqLeYFL/Co4NEpvKtwDezLif
 AnUoww5zJ1OOj2sZKx+YYO0Auwry7TtEZLuUfW8RtBJaJJgeRSH+CxrbEi40GXkkUxqmqY6U
 b+ldsKrAWcfGL5Q5jO8TOcA0pcm3ik7g2jUQPjT1wymy7GXYHefVJ8PMUeCY+406q+JukPe9
 NM3H8iNzQ9WXKvhYy3U2YkJJFsOID4wApWeg8ZabPKZKwxqXmQoEebMwKgJcpZg2a9Sk4/1E
 mqVAxECjgCl3DuedFvMOisLhK7TsYhXn3wmNjd0AE+UxX0la4307qpHcoI+ROxynAB89sJcQ
 /4AcsSGJ/1ATDXb5jgQBaXAQJxemAeD3lzXYXf8CNQrV9s5HlGSpIe4Fuf63HBWVnLfiCcon
 1G3Ouo3q7InTh8qMsvZYenHI7iZ7SlEw7Ias6clz7BulKTQHGpCd3OZYhwfeZhkxfD/Ktyyj
 Vv+PPvgjbORy7LZCfGQ7Ux+k6+nEvFlAm1RFHTB4LC9OEHypzT4ntAfAbbYLGqDBQsYHZlOg
 s0PkZnB3AAvxg4W4+KQ7Z43pU7B2zcfj+ADlVk1dJk6R1+qFqlhMhG7MTpn7cVwKktikVLuA
 Cqno4ACUZ3QYZ+NOANBdWINM7XYvdlJy2a60BjACBijjMOB1OHcChs60tjloHE1EYaZx6t5m
 7p845BPtFTk4vfoW/7f5h1pG623BiRoe80aWlsyWucHUyInlQNPZ4LyECjz7M3dYtlAKBByc
 DSVmLDDl/JXwU+bKyg/En3E3Ox8g5USuU8VkA9edgrRwteV1OUq2BBx8CgsSlgHxBtwzO8ua
 HNgMFd4JPvS8m4w1tRDRW2lBypIGAadph7q01IMmWCAFxuoW2XBIXcTI+GI+ExFoWtQciICp
 OOTyXr/UCasd8b0h3NgVUlgov3lbNpw6gydx5z3Q5XbR8E3OGO3jLWvaGwErwrcLfkw3ECX9
 /N3+OtQaLHgMXJCqaMMFITHh68bTwqJJTIeTKg5rr8JB2zVZBq7xSOKdxKqYspIKvHHrR24B
 shpKp4dXhiyzn/T/DUSBKpKKL5ohv85otEFf+qzd2IBtrKeqBtvsY7RqXei1DN6HY02nJZvM
 J7VehKDDneU1CldlGL6pcVZPna1PIsfbwrm0eHpqOgEGvrvag23nZ3eBldsg0ioDQ==
IronPort-HdrOrdr: A9a23:tEy8DaPz2vhEY8BcTvmjsMiBIKoaSvp037Eqv3oedfUzSL3gqy
 nOpoV86faaslYssR0b9exofZPwJE80lqQFhrX5X43SPzUO0VHAROoJgLcKgQeQfxEWntQtrZ
 uIGJIeNDSfNzdHZL7BkWuFL+o=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58617606"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Paul Durrant <paul@xen.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, "Petre
 Pircalabu" <ppircalabu@bitdefender.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Bob Eshleman <bobbyeshleman@gmail.com>,
	"Alistair Francis" <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian
	<kevin.tian@intel.com>, Lukasz Hawrylko <lukasz.hawrylko@linux.intel.com>
Subject: [XEN PATCH v8 02/47] xen: move include/asm-* to arch/*/include/asm
Date: Thu, 25 Nov 2021 13:39:21 +0000
Message-ID: <20211125134006.1076646-3-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

This avoid the need to create the symbolic link "include/asm".

Whenever a comment refer to an "asm" headers, this patch avoid
spelling the arch when not needed to avoid some code churn.

One unrelated change is to sort entries in MAINTAINERS for "INTEL(R)
VT FOR X86 (VT-X)"

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Paul Durrant <paul@xen.org>
---

Notes:
    v8:
    - in tools/include/Makefile, write `ln -s $dir/asm xen/`
      instead of `ln -s $dir/asm xen/asm`.
    - in common/page_alloc.c, fix comment specify the full location of the
      arch specific numa.h header (instead of just asm/numa.h).
    
    v7:
    - fix MAINTAINERS entry for arch-riscv
    - move to arch/*/include/asm instead
    - In most comment refering to an asm headers, avoid spelling the arch
      name when not needed.
      That doesn't work "common/efi/runtime.c" as the description of Xen's
      stack is only in x86's "asm/current.h" and not in arm's "asm/current.h".
    - sort entries in MAINTAINERS for "INTEL(R) VT FOR X86 (VT-X)"

 .gitignore                                    |  5 +--
 MAINTAINERS                                   | 37 +++++++++----------
 tools/include/Makefile                        |  2 +-
 tools/misc/xen-access.c                       |  4 +-
 tools/tests/vhpet/Makefile                    |  2 +-
 xen/Makefile                                  | 13 +++----
 xen/arch/arm/README.LinuxPrimitives           | 10 ++---
 xen/arch/arm/arch.mk                          |  1 +
 xen/arch/arm/arm32/head.S                     |  2 +-
 xen/arch/arm/arm64/head.S                     |  2 +-
 .../asm-arm => arch/arm/include/asm}/acpi.h   |  0
 .../arm/include/asm}/alternative.h            |  0
 .../asm-arm => arch/arm/include/asm}/altp2m.h |  0
 .../arm/include/asm}/arm32/atomic.h           |  0
 .../arm/include/asm}/arm32/bitops.h           |  0
 .../arm/include/asm}/arm32/bug.h              |  0
 .../arm/include/asm}/arm32/cmpxchg.h          |  0
 .../arm/include/asm}/arm32/flushtlb.h         |  0
 .../arm/include/asm}/arm32/insn.h             |  0
 .../arm/include/asm}/arm32/io.h               |  0
 .../arm/include/asm}/arm32/macros.h           |  0
 .../arm/include/asm}/arm32/mm.h               |  0
 .../arm/include/asm}/arm32/page.h             |  0
 .../arm/include/asm}/arm32/processor.h        |  0
 .../arm/include/asm}/arm32/sysregs.h          |  0
 .../arm/include/asm}/arm32/system.h           |  0
 .../arm/include/asm}/arm32/traps.h            |  0
 .../arm/include/asm}/arm32/vfp.h              |  0
 .../arm/include/asm}/arm64/atomic.h           |  0
 .../arm/include/asm}/arm64/bitops.h           |  0
 .../arm/include/asm}/arm64/brk.h              |  0
 .../arm/include/asm}/arm64/bug.h              |  0
 .../arm/include/asm}/arm64/cmpxchg.h          |  0
 .../arm/include/asm}/arm64/cpufeature.h       |  0
 .../arm/include/asm}/arm64/efibind.h          |  0
 .../arm/include/asm}/arm64/flushtlb.h         |  0
 .../arm/include/asm}/arm64/hsr.h              |  0
 .../arm/include/asm}/arm64/insn.h             |  0
 .../arm/include/asm}/arm64/io.h               |  0
 .../arm/include/asm}/arm64/macros.h           |  0
 .../arm/include/asm}/arm64/mm.h               |  0
 .../arm/include/asm}/arm64/page.h             |  0
 .../arm/include/asm}/arm64/processor.h        |  0
 .../arm/include/asm}/arm64/sysregs.h          |  0
 .../arm/include/asm}/arm64/system.h           |  0
 .../arm/include/asm}/arm64/traps.h            |  0
 .../arm/include/asm}/arm64/vfp.h              |  0
 .../arm/include/asm}/asm_defns.h              |  0
 .../asm-arm => arch/arm/include/asm}/atomic.h |  0
 .../asm-arm => arch/arm/include/asm}/bitops.h |  0
 .../asm-arm => arch/arm/include/asm}/bug.h    |  0
 .../arm/include/asm}/byteorder.h              |  0
 .../asm-arm => arch/arm/include/asm}/cache.h  |  0
 .../arm/include/asm}/cadence-uart.h           |  0
 .../asm-arm => arch/arm/include/asm}/config.h |  0
 .../asm-arm => arch/arm/include/asm}/cpregs.h |  0
 .../arm/include/asm}/cpuerrata.h              |  0
 .../arm/include/asm}/cpufeature.h             |  0
 .../arm/include/asm}/current.h                |  0
 .../arm/include/asm}/debugger.h               |  0
 .../asm-arm => arch/arm/include/asm}/delay.h  |  0
 .../asm-arm => arch/arm/include/asm}/desc.h   |  0
 .../asm-arm => arch/arm/include/asm}/device.h |  0
 .../asm-arm => arch/arm/include/asm}/div64.h  |  0
 .../asm-arm => arch/arm/include/asm}/domain.h |  0
 .../arm/include/asm}/domain_build.h           |  0
 .../arm/include/asm}/early_printk.h           |  0
 .../arm/include/asm}/efibind.h                |  0
 .../asm-arm => arch/arm/include/asm}/elf.h    |  0
 .../asm-arm => arch/arm/include/asm}/event.h  |  0
 .../arm/include/asm}/exynos4210-uart.h        |  0
 .../arm/include/asm}/flushtlb.h               |  0
 .../asm-arm => arch/arm/include/asm}/gic.h    |  0
 .../arm/include/asm}/gic_v3_defs.h            |  0
 .../arm/include/asm}/gic_v3_its.h             |  0
 .../arm/include/asm}/grant_table.h            |  0
 .../arm/include/asm}/guest_access.h           |  0
 .../arm/include/asm}/guest_atomics.h          |  0
 .../arm/include/asm}/guest_walk.h             |  0
 .../arm/include/asm}/hardirq.h                |  0
 .../asm-arm => arch/arm/include/asm}/hsr.h    |  0
 .../arm/include/asm}/hypercall.h              |  0
 .../asm-arm => arch/arm/include/asm}/init.h   |  0
 .../asm-arm => arch/arm/include/asm}/insn.h   |  0
 .../asm-arm => arch/arm/include/asm}/io.h     |  0
 .../asm-arm => arch/arm/include/asm}/iocap.h  |  0
 .../asm-arm => arch/arm/include/asm}/iommu.h  |  0
 .../arm/include/asm}/iommu_fwspec.h           |  0
 .../asm-arm => arch/arm/include/asm}/ioreq.h  |  0
 .../asm-arm => arch/arm/include/asm}/irq.h    |  0
 .../asm-arm => arch/arm/include/asm}/kernel.h |  0
 .../arm/include/asm}/livepatch.h              |  0
 .../asm-arm => arch/arm/include/asm}/lpae.h   |  0
 .../asm-arm => arch/arm/include/asm}/macros.h |  0
 .../arm/include/asm}/mem_access.h             |  0
 .../asm-arm => arch/arm/include/asm}/mm.h     |  0
 .../asm-arm => arch/arm/include/asm}/mmio.h   |  0
 .../arm/include/asm}/monitor.h                |  0
 .../arm/include/asm}/new_vgic.h               |  0
 .../asm-arm => arch/arm/include/asm}/nospec.h |  0
 .../asm-arm => arch/arm/include/asm}/numa.h   |  0
 .../asm-arm => arch/arm/include/asm}/p2m.h    |  0
 .../arm/include/asm}/page-bits.h              |  0
 .../asm-arm => arch/arm/include/asm}/page.h   |  0
 .../asm-arm => arch/arm/include/asm}/paging.h |  0
 .../asm-arm => arch/arm/include/asm}/pci.h    |  0
 .../asm-arm => arch/arm/include/asm}/percpu.h |  0
 .../asm-arm => arch/arm/include/asm}/perfc.h  |  0
 .../arm/include/asm}/perfc_defn.h             |  0
 .../arm/include/asm}/pl011-uart.h             |  0
 .../arm/include/asm}/platform.h               |  0
 .../arm/include/asm}/platforms/exynos5.h      |  0
 .../arm/include/asm}/platforms/midway.h       |  0
 .../arm/include/asm}/platforms/omap5.h        |  0
 .../arm/include/asm}/platforms/vexpress.h     |  0
 .../asm}/platforms/xilinx-zynqmp-eemi.h       |  0
 .../arm/include/asm}/processor.h              |  0
 .../arm/include/asm}/procinfo.h               |  0
 .../asm-arm => arch/arm/include/asm}/psci.h   |  0
 .../asm-arm => arch/arm/include/asm}/random.h |  0
 .../asm-arm => arch/arm/include/asm}/regs.h   |  0
 .../arm/include/asm}/scif-uart.h              |  0
 .../asm-arm => arch/arm/include/asm}/setup.h  |  0
 .../arm/include/asm}/short-desc.h             |  0
 .../asm-arm => arch/arm/include/asm}/smccc.h  |  0
 .../asm-arm => arch/arm/include/asm}/smp.h    |  0
 .../arm/include/asm}/softirq.h                |  0
 .../arm/include/asm}/spinlock.h               |  0
 .../asm-arm => arch/arm/include/asm}/string.h |  0
 .../arm/include/asm}/sysregs.h                |  0
 .../asm-arm => arch/arm/include/asm}/system.h |  0
 .../arm/include/asm}/tee/optee_msg.h          |  0
 .../arm/include/asm}/tee/optee_rpc_cmd.h      |  0
 .../arm/include/asm}/tee/optee_smc.h          |  0
 .../arm/include/asm}/tee/tee.h                |  0
 .../asm-arm => arch/arm/include/asm}/time.h   |  0
 .../asm-arm => arch/arm/include/asm}/trace.h  |  0
 .../asm-arm => arch/arm/include/asm}/traps.h  |  0
 .../asm-arm => arch/arm/include/asm}/types.h  |  0
 .../asm-arm => arch/arm/include/asm}/vfp.h    |  0
 .../arm/include/asm}/vgic-emul.h              |  0
 .../asm-arm => arch/arm/include/asm}/vgic.h   |  0
 .../arm/include/asm}/vm_event.h               |  0
 .../asm-arm => arch/arm/include/asm}/vpl011.h |  0
 .../asm-arm => arch/arm/include/asm}/vpsci.h  |  0
 .../asm-arm => arch/arm/include/asm}/vreg.h   |  0
 .../asm-arm => arch/arm/include/asm}/vtimer.h |  0
 .../arm/include/asm}/xenoprof.h               |  0
 xen/arch/arm/smpboot.c                        |  2 +-
 xen/arch/arm/vpsci.c                          |  2 +-
 xen/arch/riscv/arch.mk                        |  1 +
 .../riscv/include/asm}/config.h               |  0
 xen/arch/x86/Makefile                         |  6 +--
 xen/arch/x86/arch.mk                          |  5 ++-
 .../asm-x86 => arch/x86/include/asm}/acpi.h   |  0
 .../x86/include/asm}/alternative-asm.h        |  0
 .../x86/include/asm}/alternative.h            |  0
 .../asm-x86 => arch/x86/include/asm}/altp2m.h |  0
 .../asm-x86 => arch/x86/include/asm}/amd.h    |  0
 .../asm-x86 => arch/x86/include/asm}/apic.h   |  0
 .../x86/include/asm}/apicdef.h                |  0
 .../x86/include/asm}/asm-defns.h              |  0
 .../x86/include/asm}/asm_defns.h              |  0
 .../asm-x86 => arch/x86/include/asm}/atomic.h |  0
 .../asm-x86 => arch/x86/include/asm}/bitops.h |  0
 .../asm-x86 => arch/x86/include/asm}/bug.h    |  0
 .../x86/include/asm}/byteorder.h              |  0
 .../x86/include/asm}/bzimage.h                |  0
 .../asm-x86 => arch/x86/include/asm}/cache.h  |  0
 .../asm-x86 => arch/x86/include/asm}/compat.h |  0
 .../asm-x86 => arch/x86/include/asm}/config.h |  0
 .../x86/include/asm}/cpufeature.h             |  0
 .../x86/include/asm}/cpufeatures.h            |  0
 .../x86/include/asm}/cpufeatureset.h          |  0
 .../asm-x86 => arch/x86/include/asm}/cpuid.h  |  0
 .../x86/include/asm}/cpuidle.h                |  0
 .../x86/include/asm}/current.h                |  2 +-
 .../x86/include/asm}/debugger.h               |  0
 .../x86/include/asm}/debugreg.h               |  0
 .../asm-x86 => arch/x86/include/asm}/delay.h  |  0
 .../asm-x86 => arch/x86/include/asm}/desc.h   |  0
 .../asm-x86 => arch/x86/include/asm}/device.h |  0
 .../asm-x86 => arch/x86/include/asm}/div64.h  |  0
 .../x86/include/asm}/dom0_build.h             |  0
 .../asm-x86 => arch/x86/include/asm}/domain.h |  2 +-
 .../asm-x86 => arch/x86/include/asm}/e820.h   |  0
 .../asm-x86 => arch/x86/include/asm}/edd.h    |  0
 .../x86/include/asm}/efibind.h                |  0
 .../asm-x86 => arch/x86/include/asm}/elf.h    |  0
 .../asm-x86 => arch/x86/include/asm}/event.h  |  0
 .../asm-x86 => arch/x86/include/asm}/fixmap.h |  0
 .../x86/include/asm}/flushtlb.h               |  0
 .../x86/include/asm}/genapic.h                |  0
 .../x86/include/asm}/grant_table.h            |  0
 .../asm-x86 => arch/x86/include/asm}/guest.h  |  0
 .../x86/include/asm}/guest/hyperv-hcall.h     |  0
 .../x86/include/asm}/guest/hyperv-tlfs.h      |  0
 .../x86/include/asm}/guest/hyperv.h           |  0
 .../x86/include/asm}/guest/hypervisor.h       |  0
 .../x86/include/asm}/guest/pvh-boot.h         |  0
 .../x86/include/asm}/guest/xen-hcall.h        |  0
 .../x86/include/asm}/guest/xen.h              |  0
 .../x86/include/asm}/guest_access.h           |  0
 .../x86/include/asm}/guest_atomics.h          |  0
 .../x86/include/asm}/guest_pt.h               |  0
 .../asm-x86 => arch/x86/include/asm}/hap.h    |  0
 .../x86/include/asm}/hardirq.h                |  0
 .../asm-x86 => arch/x86/include/asm}/hpet.h   |  0
 .../x86/include/asm}/hvm/asid.h               |  0
 .../x86/include/asm}/hvm/cacheattr.h          |  0
 .../x86/include/asm}/hvm/domain.h             |  0
 .../x86/include/asm}/hvm/emulate.h            |  0
 .../x86/include/asm}/hvm/grant_table.h        |  0
 .../x86/include/asm}/hvm/guest_access.h       |  0
 .../x86/include/asm}/hvm/hvm.h                |  0
 .../asm-x86 => arch/x86/include/asm}/hvm/io.h |  0
 .../x86/include/asm}/hvm/ioreq.h              |  0
 .../x86/include/asm}/hvm/irq.h                |  0
 .../x86/include/asm}/hvm/monitor.h            |  0
 .../x86/include/asm}/hvm/nestedhvm.h          |  0
 .../x86/include/asm}/hvm/save.h               |  0
 .../x86/include/asm}/hvm/support.h            |  0
 .../x86/include/asm}/hvm/svm/asid.h           |  0
 .../x86/include/asm}/hvm/svm/emulate.h        |  0
 .../x86/include/asm}/hvm/svm/intr.h           |  0
 .../x86/include/asm}/hvm/svm/nestedsvm.h      |  0
 .../x86/include/asm}/hvm/svm/svm.h            |  0
 .../x86/include/asm}/hvm/svm/svmdebug.h       |  0
 .../x86/include/asm}/hvm/svm/vmcb.h           |  0
 .../x86/include/asm}/hvm/trace.h              |  0
 .../x86/include/asm}/hvm/vcpu.h               |  0
 .../x86/include/asm}/hvm/vioapic.h            |  0
 .../x86/include/asm}/hvm/viridian.h           |  0
 .../x86/include/asm}/hvm/vlapic.h             |  0
 .../x86/include/asm}/hvm/vm_event.h           |  0
 .../x86/include/asm}/hvm/vmx/vmcs.h           |  0
 .../x86/include/asm}/hvm/vmx/vmx.h            |  0
 .../x86/include/asm}/hvm/vmx/vvmx.h           |  0
 .../x86/include/asm}/hvm/vpic.h               |  0
 .../x86/include/asm}/hvm/vpt.h                |  0
 .../x86/include/asm}/hypercall.h              |  0
 .../asm-x86 => arch/x86/include/asm}/i387.h   |  0
 .../asm-x86 => arch/x86/include/asm}/init.h   |  0
 .../x86/include/asm}/invpcid.h                |  0
 .../asm-x86 => arch/x86/include/asm}/io.h     |  0
 .../x86/include/asm}/io_apic.h                |  0
 .../asm-x86 => arch/x86/include/asm}/iocap.h  |  0
 .../asm-x86 => arch/x86/include/asm}/iommu.h  |  0
 .../asm-x86 => arch/x86/include/asm}/ioreq.h  |  0
 .../asm-x86 => arch/x86/include/asm}/irq.h    |  0
 .../asm-x86 => arch/x86/include/asm}/ldt.h    |  0
 .../x86/include/asm}/livepatch.h              |  0
 .../x86/include/asm}/mach-default/bios_ebda.h |  0
 .../x86/include/asm}/mach-default/io_ports.h  |  0
 .../include/asm}/mach-default/irq_vectors.h   |  0
 .../include/asm}/mach-default/mach_mpparse.h  |  0
 .../include/asm}/mach-default/mach_mpspec.h   |  0
 .../x86/include/asm}/mach-generic/mach_apic.h |  0
 .../include/asm}/mach-generic/mach_mpparse.h  |  0
 .../x86/include/asm}/machine_kexec.h          |  0
 .../x86/include/asm}/mc146818rtc.h            |  0
 .../asm-x86 => arch/x86/include/asm}/mce.h    |  0
 .../x86/include/asm}/mem_access.h             |  0
 .../x86/include/asm}/mem_paging.h             |  0
 .../x86/include/asm}/mem_sharing.h            |  0
 .../x86/include/asm}/microcode.h              |  0
 .../asm-x86 => arch/x86/include/asm}/mm.h     |  0
 .../x86/include/asm}/monitor.h                |  0
 .../asm-x86 => arch/x86/include/asm}/mpspec.h |  0
 .../x86/include/asm}/mpspec_def.h             |  0
 .../asm-x86 => arch/x86/include/asm}/msi.h    |  0
 .../x86/include/asm}/msr-index.h              |  0
 .../asm-x86 => arch/x86/include/asm}/msr.h    |  0
 .../asm-x86 => arch/x86/include/asm}/mtrr.h   |  0
 .../x86/include/asm}/multicall.h              |  0
 .../asm-x86 => arch/x86/include/asm}/mwait.h  |  0
 .../asm-x86 => arch/x86/include/asm}/nmi.h    |  0
 .../asm-x86 => arch/x86/include/asm}/nops.h   |  0
 .../asm-x86 => arch/x86/include/asm}/nospec.h |  0
 .../asm-x86 => arch/x86/include/asm}/numa.h   |  0
 .../asm-x86 => arch/x86/include/asm}/p2m.h    |  0
 .../x86/include/asm}/page-bits.h              |  0
 .../asm-x86 => arch/x86/include/asm}/page.h   |  0
 .../asm-x86 => arch/x86/include/asm}/paging.h |  0
 .../asm-x86 => arch/x86/include/asm}/pci.h    |  0
 .../asm-x86 => arch/x86/include/asm}/percpu.h |  0
 .../asm-x86 => arch/x86/include/asm}/perfc.h  |  0
 .../x86/include/asm}/perfc_defn.h             |  0
 .../x86/include/asm}/processor.h              |  0
 .../asm-x86 => arch/x86/include/asm}/psr.h    |  0
 .../x86/include/asm}/pv/domain.h              |  0
 .../x86/include/asm}/pv/grant_table.h         |  0
 .../asm-x86 => arch/x86/include/asm}/pv/mm.h  |  0
 .../x86/include/asm}/pv/shim.h                |  0
 .../x86/include/asm}/pv/trace.h               |  0
 .../x86/include/asm}/pv/traps.h               |  0
 .../asm-x86 => arch/x86/include/asm}/random.h |  0
 .../asm-x86 => arch/x86/include/asm}/regs.h   |  0
 .../asm-x86 => arch/x86/include/asm}/setup.h  |  0
 .../asm-x86 => arch/x86/include/asm}/shadow.h |  0
 .../asm-x86 => arch/x86/include/asm}/shared.h |  0
 .../asm-x86 => arch/x86/include/asm}/smp.h    |  0
 .../x86/include/asm}/softirq.h                |  0
 .../x86/include/asm}/spec_ctrl.h              |  0
 .../x86/include/asm}/spec_ctrl_asm.h          |  0
 .../x86/include/asm}/spinlock.h               |  0
 .../asm-x86 => arch/x86/include/asm}/string.h |  0
 .../asm-x86 => arch/x86/include/asm}/system.h |  0
 .../asm-x86 => arch/x86/include/asm}/tboot.h  |  0
 .../asm-x86 => arch/x86/include/asm}/time.h   |  0
 .../asm-x86 => arch/x86/include/asm}/trace.h  |  0
 .../asm-x86 => arch/x86/include/asm}/traps.h  |  0
 .../asm-x86 => arch/x86/include/asm}/types.h  |  0
 .../x86/include/asm}/uaccess.h                |  0
 .../x86/include/asm}/unaligned.h              |  0
 .../x86/include/asm}/vm_event.h               |  0
 .../asm-x86 => arch/x86/include/asm}/vpmu.h   |  0
 .../x86/include/asm}/x86-defns.h              |  0
 .../x86/include/asm}/x86-vendors.h            |  0
 .../x86/include/asm}/x86_64/efibind.h         |  0
 .../x86/include/asm}/x86_64/elf.h             |  0
 .../x86/include/asm}/x86_64/page.h            |  0
 .../x86/include/asm}/x86_64/regs.h            |  0
 .../x86/include/asm}/x86_64/system.h          |  0
 .../x86/include/asm}/x86_64/uaccess.h         |  0
 .../x86/include/asm}/x86_emulate.h            |  2 +-
 .../x86/include/asm}/xenoprof.h               |  0
 .../asm-x86 => arch/x86/include/asm}/xstate.h |  0
 xen/common/efi/runtime.c                      |  2 +-
 xen/common/page_alloc.c                       |  2 +-
 xen/include/xen/acpi.h                        |  5 ++-
 xen/include/xen/bitmap.h                      |  2 +-
 332 files changed, 55 insertions(+), 56 deletions(-)
 rename xen/{include/asm-arm => arch/arm/include/asm}/acpi.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/alternative.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/altp2m.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/atomic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/bitops.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/bug.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/cmpxchg.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/flushtlb.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/insn.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/io.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/macros.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/mm.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/page.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/processor.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/sysregs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/system.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/traps.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/vfp.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/atomic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/bitops.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/brk.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/bug.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/cmpxchg.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/cpufeature.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/efibind.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/flushtlb.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/hsr.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/insn.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/io.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/macros.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/mm.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/page.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/processor.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/sysregs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/system.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/traps.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/vfp.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/asm_defns.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/atomic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/bitops.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/bug.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/byteorder.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cache.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cadence-uart.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/config.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cpregs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cpuerrata.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cpufeature.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/current.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/debugger.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/delay.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/desc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/device.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/div64.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/domain.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/domain_build.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/early_printk.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/efibind.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/elf.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/event.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/exynos4210-uart.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/flushtlb.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/gic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/gic_v3_defs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/gic_v3_its.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/grant_table.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/guest_access.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/guest_atomics.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/guest_walk.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/hardirq.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/hsr.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/hypercall.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/init.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/insn.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/io.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/iocap.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/iommu.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/iommu_fwspec.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/ioreq.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/irq.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/kernel.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/livepatch.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/lpae.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/macros.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/mem_access.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/mm.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/mmio.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/monitor.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/new_vgic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/nospec.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/numa.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/p2m.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/page-bits.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/page.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/paging.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/pci.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/percpu.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/perfc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/perfc_defn.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/pl011-uart.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platform.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/exynos5.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/midway.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/omap5.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/vexpress.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/xilinx-zynqmp-eemi.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/processor.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/procinfo.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/psci.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/random.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/regs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/scif-uart.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/setup.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/short-desc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/smccc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/smp.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/softirq.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/spinlock.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/string.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/sysregs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/system.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/tee/optee_msg.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/tee/optee_rpc_cmd.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/tee/optee_smc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/tee/tee.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/time.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/trace.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/traps.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/types.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vfp.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vgic-emul.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vgic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vm_event.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vpl011.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vpsci.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vreg.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vtimer.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/xenoprof.h (100%)
 rename xen/{include/asm-riscv => arch/riscv/include/asm}/config.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/acpi.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/alternative-asm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/alternative.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/altp2m.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/amd.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/apic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/apicdef.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/asm-defns.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/asm_defns.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/atomic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/bitops.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/bug.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/byteorder.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/bzimage.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cache.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/compat.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/config.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpufeature.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpufeatures.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpufeatureset.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpuid.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpuidle.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/current.h (99%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/debugger.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/debugreg.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/delay.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/desc.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/device.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/div64.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/dom0_build.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/domain.h (99%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/e820.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/edd.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/efibind.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/elf.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/event.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/fixmap.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/flushtlb.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/genapic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/grant_table.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/hyperv-hcall.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/hyperv-tlfs.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/hyperv.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/hypervisor.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/pvh-boot.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/xen-hcall.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/xen.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest_access.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest_atomics.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest_pt.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hap.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hardirq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hpet.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/asid.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/cacheattr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/domain.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/emulate.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/grant_table.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/guest_access.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/hvm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/io.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/ioreq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/irq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/monitor.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/nestedhvm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/save.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/support.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/asid.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/emulate.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/intr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/nestedsvm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/svm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/svmdebug.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/vmcb.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/trace.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vcpu.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vioapic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/viridian.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vlapic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vm_event.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vmx/vmcs.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vmx/vmx.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vmx/vvmx.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vpic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vpt.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hypercall.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/i387.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/init.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/invpcid.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/io.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/io_apic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/iocap.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/iommu.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/ioreq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/irq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/ldt.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/livepatch.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/bios_ebda.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/io_ports.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/irq_vectors.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/mach_mpparse.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/mach_mpspec.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-generic/mach_apic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-generic/mach_mpparse.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/machine_kexec.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mc146818rtc.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mce.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mem_access.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mem_paging.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mem_sharing.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/microcode.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/monitor.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mpspec.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mpspec_def.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/msi.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/msr-index.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/msr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mtrr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/multicall.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mwait.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/nmi.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/nops.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/nospec.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/numa.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/p2m.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/page-bits.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/page.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/paging.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pci.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/percpu.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/perfc.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/perfc_defn.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/processor.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/psr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/domain.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/grant_table.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/mm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/shim.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/trace.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/traps.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/random.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/regs.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/setup.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/shadow.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/shared.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/smp.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/softirq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/spec_ctrl.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/spec_ctrl_asm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/spinlock.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/string.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/system.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/tboot.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/time.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/trace.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/traps.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/types.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/uaccess.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/unaligned.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/vm_event.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/vpmu.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86-defns.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86-vendors.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/efibind.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/elf.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/page.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/regs.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/system.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/uaccess.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_emulate.h (89%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/xenoprof.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/xstate.h (100%)

diff --git a/.gitignore b/.gitignore
index 9513506dd948..841ba1c0a84c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -316,6 +316,7 @@ xen/arch/x86/boot/*.lnk
 xen/arch/x86/efi.lds
 xen/arch/x86/efi/check.efi
 xen/arch/x86/efi/mkreloc
+xen/arch/x86/include/asm/asm-macros.h
 xen/arch/*/xen.lds
 xen/arch/*/efi/boot.c
 xen/arch/*/efi/compat.c
@@ -323,12 +324,10 @@ xen/arch/*/efi/ebmalloc.c
 xen/arch/*/efi/efi.h
 xen/arch/*/efi/pe.c
 xen/arch/*/efi/runtime.c
+xen/arch/*/include/asm/asm-offsets.h
 xen/common/config_data.S
 xen/common/config.gz
 xen/include/headers*.chk
-xen/include/asm
-xen/include/asm-*/asm-offsets.h
-xen/include/asm-x86/asm-macros.h
 xen/include/compat/*
 xen/include/config/
 xen/include/generated/
diff --git a/MAINTAINERS b/MAINTAINERS
index f67f70aed398..3f6ff32c05cd 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -246,7 +246,6 @@ F:	xen/drivers/char/omap-uart.c
 F:	xen/drivers/char/pl011.c
 F:	xen/drivers/char/scif-uart.c
 F:	xen/drivers/passthrough/arm/
-F:	xen/include/asm-arm/
 F:	xen/include/public/arch-arm/
 F:	xen/include/public/arch-arm.h
 
@@ -292,10 +291,10 @@ EFI
 M:	Jan Beulich <jbeulich@suse.com>
 S:	Supported
 F:	xen/arch/x86/efi/
+F:	xen/arch/x86/include/asm/efi*.h
+F:	xen/arch/x86/include/asm/x86_*/efi*.h
 F:	xen/common/efi/
 F:	xen/include/efi/
-F:	xen/include/asm-x86/efi*.h
-F:	xen/include/asm-x86/x86_*/efi*.h
 
 GDBSX DEBUGGER
 M:	Elena Ufimtseva <elena.ufimtseva@oracle.com>
@@ -321,8 +320,8 @@ F:	xen/include/xen/hypfs.h
 INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
 R:	Lukasz Hawrylko <lukasz.hawrylko@linux.intel.com>
 S:	Odd Fixes
+F:	xen/arch/x86/include/asm/tboot.h
 F:	xen/arch/x86/tboot.c
-F:	xen/include/asm-x86/tboot.h
 
 INTEL(R) VT FOR DIRECTED I/O (VT-D)
 M:	Kevin Tian <kevin.tian@intel.com>
@@ -333,10 +332,10 @@ INTEL(R) VT FOR X86 (VT-X)
 M:	Jun Nakajima <jun.nakajima@intel.com>
 M:	Kevin Tian <kevin.tian@intel.com>
 S:	Supported
+F:	xen/arch/x86/cpu/vpmu_intel.c
 F:	xen/arch/x86/hvm/vmx/
+F:	xen/arch/x86/include/asm/hvm/vmx/
 F:	xen/arch/x86/mm/p2m-ept.c
-F:	xen/include/asm-x86/hvm/vmx/
-F:	xen/arch/x86/cpu/vpmu_intel.c
 
 IOMMU VENDOR INDEPENDENT CODE
 M:	Jan Beulich <jbeulich@suse.com>
@@ -412,10 +411,10 @@ M:	Ross Lagerwall <ross.lagerwall@citrix.com>
 S:	Supported
 F:	docs/misc/livepatch.pandoc
 F:	tools/misc/xen-livepatch.c
+F:	xen/arch/*/include/asm/livepatch.h
 F:	xen/arch/*/livepatch*
 F:	xen/arch/*/*/livepatch*
 F:	xen/common/livepatch*
-F:	xen/include/asm-*/livepatch.h
 F:	xen/include/xen/livepatch*
 F:	xen/test/livepatch/*
 
@@ -485,7 +484,6 @@ R:	Connor Davis <connojdavis@gmail.com>
 S:	Supported
 F:	config/riscv64.mk
 F:	xen/arch/riscv/
-F:	xen/include/asm-riscv/
 
 RTDS SCHEDULER
 M:	Dario Faggioli <dfaggioli@suse.com>
@@ -514,8 +512,8 @@ F:	stubdom/
 TEE MEDIATORS
 M:	Volodymyr Babchuk <volodymyr_babchuk@epam.com>
 S:	Supported
+F:	xen/arch/arm/include/asm/tee
 F:	xen/arch/arm/tee/
-F:	xen/include/asm-arm/tee
 
 TOOLSTACK
 M:	Ian Jackson <iwj@xenproject.org>
@@ -543,6 +541,8 @@ F:	tools/misc/xen-access.c
 F:	xen/arch/*/monitor.c
 F:	xen/arch/*/vm_event.c
 F:	xen/arch/arm/mem_access.c
+F:	xen/arch/x86/include/asm/hvm/monitor.h
+F:	xen/arch/x86/include/asm/hvm/vm_event.h
 F:	xen/arch/x86/mm/mem_access.c
 F:	xen/arch/x86/hvm/monitor.c
 F:	xen/arch/x86/hvm/vm_event.c
@@ -552,8 +552,6 @@ F:	xen/common/vm_event.c
 F:	xen/include/*/mem_access.h
 F:	xen/include/*/monitor.h
 F:	xen/include/*/vm_event.h
-F:	xen/include/asm-x86/hvm/monitor.h
-F:	xen/include/asm-x86/hvm/vm_event.h
 
 VPCI
 M:	Roger Pau Monné <roger.pau@citrix.com>
@@ -579,7 +577,6 @@ R:	Wei Liu <wl@xen.org>
 S:	Supported
 L:	xen-devel@lists.xenproject.org
 F:	xen/arch/x86/
-F:	xen/include/asm-x86/
 F:	xen/include/public/arch-x86/
 F:	xen/include/xen/lib/x86
 F:	xen/lib/x86
@@ -599,10 +596,10 @@ F:	xen/arch/x86/hvm/emulate.c
 F:	xen/arch/x86/hvm/intercept.c
 F:	xen/arch/x86/hvm/io.c
 F:	xen/arch/x86/hvm/ioreq.c
-F:	xen/include/asm-x86/hvm/emulate.h
-F:	xen/include/asm-x86/hvm/io.h
-F:	xen/include/asm-x86/hvm/ioreq.h
-F:	xen/include/asm-x86/ioreq.h
+F:	xen/arch/x86/include/asm/hvm/emulate.h
+F:	xen/arch/x86/include/asm/hvm/io.h
+F:	xen/arch/x86/include/asm/hvm/ioreq.h
+F:	xen/arch/x86/include/asm/ioreq.h
 
 X86 MEMORY MANAGEMENT
 M:	Jan Beulich <jbeulich@suse.com>
@@ -634,10 +631,10 @@ M:	Wei Liu <wl@xen.org>
 S:	Supported
 F:	xen/arch/x86/guest/hyperv/
 F:	xen/arch/x86/hvm/viridian/
-F:	xen/include/asm-x86/guest/hyperv.h
-F:	xen/include/asm-x86/guest/hyperv-hcall.h
-F:	xen/include/asm-x86/guest/hyperv-tlfs.h
-F:	xen/include/asm-x86/hvm/viridian.h
+F:	xen/arch/x86/include/asm/guest/hyperv.h
+F:	xen/arch/x86/include/asm/guest/hyperv-hcall.h
+F:	xen/arch/x86/include/asm/guest/hyperv-tlfs.h
+F:	xen/arch/x86/include/asm/hvm/viridian.h
 
 XENSTORE
 M:	Ian Jackson <iwj@xenproject.org>
diff --git a/tools/include/Makefile b/tools/include/Makefile
index 42605d46b937..d7b51006e032 100644
--- a/tools/include/Makefile
+++ b/tools/include/Makefile
@@ -30,7 +30,7 @@ xen-dir:
 	ln -s $(XEN_ROOT)/xen/include/acpi/platform acpi/
 	ln -s $(XEN_ROOT)/xen/include/acpi/ac*.h acpi/
 ifeq ($(CONFIG_X86),y)
-	ln -s $(XEN_ROOT)/xen/include/asm-x86 xen/asm
+	ln -s $(XEN_ROOT)/xen/arch/x86/include/asm xen/
 	mkdir -p xen/lib/x86
 	ln -s $(filter-out %autogen.h,$(wildcard $(XEN_ROOT)/xen/include/xen/lib/x86/*.h)) xen/lib/x86/
 	ln -s $(XEN_ROOT)/xen/include/xen/lib/x86/Makefile xen/lib/x86/
diff --git a/tools/misc/xen-access.c b/tools/misc/xen-access.c
index 4bbef0bd2e10..0731c20b8355 100644
--- a/tools/misc/xen-access.c
+++ b/tools/misc/xen-access.c
@@ -56,11 +56,11 @@
 #define ERROR(a, b...) fprintf(stderr, a "\n", ## b)
 #define PERROR(a, b...) fprintf(stderr, a ": %s\n", ## b, strerror(errno))
 
-/* From xen/include/asm-x86/processor.h */
+/* From xen/arch/x86/include/asm/processor.h */
 #define X86_TRAP_DEBUG  1
 #define X86_TRAP_INT3   3
 
-/* From xen/include/asm-x86/x86-defns.h */
+/* From xen/arch/x86/include/asm/x86-defns.h */
 #define X86_CR4_PGE        0x00000080 /* enable global pages */
 
 typedef struct vm_event {
diff --git a/tools/tests/vhpet/Makefile b/tools/tests/vhpet/Makefile
index cb88dd01c5f8..2d56ffdfd9c5 100644
--- a/tools/tests/vhpet/Makefile
+++ b/tools/tests/vhpet/Makefile
@@ -32,7 +32,7 @@ distclean: clean
 .PHONY: install
 install:
 
-hpet.h: $(XEN_ROOT)/xen/include/asm-x86/hpet.h
+hpet.h: $(XEN_ROOT)/xen/arch/x86/include/asm/hpet.h
 	cp $< $@
 
 hpet.c: $(XEN_ROOT)/xen/arch/x86/hvm/hpet.c
diff --git a/xen/Makefile b/xen/Makefile
index 1fd48af7ae82..b2a63edca1eb 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -166,7 +166,7 @@ ifeq ($(TARGET_ARCH),x86)
 t1 = $(call as-insn,$(CC),".L0: .L1: .skip (.L1 - .L0)",,-no-integrated-as)
 
 # Check whether clang asm()-s support .include.
-t2 = $(call as-insn,$(CC) -I$(BASEDIR)/include,".include \"asm-x86/asm-defns.h\"",,-no-integrated-as)
+t2 = $(call as-insn,$(CC) -I$(BASEDIR)/arch/x86/include,".include \"asm/asm-defns.h\"",,-no-integrated-as)
 
 # Check whether clang keeps .macro-s between asm()-s:
 # https://bugs.llvm.org/show_bug.cgi?id=36110
@@ -382,7 +382,7 @@ _clean: delete-unfresh-files
 		-o -name ".*.o.tmp" -o -name "*~" -o -name "core" \
 		-o -name "*.gcno" -o -name ".*.cmd" -o -name "lib.a" \) -exec rm -f {} \;
 	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map *~ core
-	rm -f asm-offsets.s include/asm-*/asm-offsets.h
+	rm -f asm-offsets.s arch/*/include/asm/asm-offsets.h
 	rm -f .banner .allconfig.tmp
 
 .PHONY: _distclean
@@ -396,7 +396,6 @@ $(TARGET).gz: $(TARGET)
 $(TARGET): delete-unfresh-files
 	$(MAKE) -C tools
 	$(MAKE) -f $(BASEDIR)/Rules.mk include/xen/compile.h
-	[ -e include/asm ] || ln -sf asm-$(TARGET_ARCH) include/asm
 	[ -e arch/$(TARGET_ARCH)/efi ] && for f in $$(cd common/efi; echo *.[ch]); \
 		do test -r arch/$(TARGET_ARCH)/efi/$$f || \
 		   ln -nsf ../../../common/efi/$$f arch/$(TARGET_ARCH)/efi/; \
@@ -404,7 +403,7 @@ $(TARGET): delete-unfresh-files
 		true
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C include
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) include
-	$(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h
+	$(MAKE) -f $(BASEDIR)/Rules.mk arch/$(TARGET_ARCH)/include/asm/asm-offsets.h
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
 
 # drivers/char/console.o contains static banner/compile info. Blow it away.
@@ -450,7 +449,7 @@ asm-offsets.s: arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c
 	$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
 	$(call move-if-changed,$@.new,$@)
 
-include/asm-$(TARGET_ARCH)/asm-offsets.h: asm-offsets.s
+arch/$(TARGET_ARCH)/include/asm/asm-offsets.h: asm-offsets.s
 	@(set -e; \
 	  echo "/*"; \
 	  echo " * DO NOT MODIFY."; \
@@ -468,8 +467,8 @@ include/asm-$(TARGET_ARCH)/asm-offsets.h: asm-offsets.s
 
 SUBDIRS = xsm arch/$(TARGET_ARCH) common drivers lib test
 define all_sources
-    ( find include/asm-$(TARGET_ARCH) -name '*.h' -print; \
-      find include -name 'asm-*' -prune -o -name '*.h' -print; \
+    ( find arch/$(TARGET_ARCH)/include -name '*.h' -print; \
+      find include -name '*.h' -print; \
       find $(SUBDIRS) -name '*.[chS]' -print )
 endef
 
diff --git a/xen/arch/arm/README.LinuxPrimitives b/xen/arch/arm/README.LinuxPrimitives
index 664a9f89ed27..1d53e6a898da 100644
--- a/xen/arch/arm/README.LinuxPrimitives
+++ b/xen/arch/arm/README.LinuxPrimitives
@@ -8,19 +8,19 @@ arm64:
 
 bitops: last sync @ v3.16-rc6 (last commit: 8715466b6027)
 
-linux/arch/arm64/include/asm/bitops.h   xen/include/asm-arm/arm64/bitops.h
+linux/arch/arm64/include/asm/bitops.h   xen/arch/arm/include/asm/arm64/bitops.h
 
 ---------------------------------------------------------------------
 
 cmpxchg: last sync @ v3.16-rc6 (last commit: e1dfda9ced9b)
 
-linux/arch/arm64/include/asm/cmpxchg.h  xen/include/asm-arm/arm64/cmpxchg.h
+linux/arch/arm64/include/asm/cmpxchg.h  xen/arch/arm/include/asm/arm64/cmpxchg.h
 
 ---------------------------------------------------------------------
 
 atomics: last sync @ v3.16-rc6 (last commit: 8715466b6027)
 
-linux/arch/arm64/include/asm/atomic.h   xen/include/asm-arm/arm64/atomic.h
+linux/arch/arm64/include/asm/atomic.h   xen/arch/arm/include/asm/arm64/atomic.h
 
 The following functions were taken from Linux:
     atomic_add(), atomic_add_return(), atomic_sub(), atomic_sub_return(),
@@ -76,13 +76,13 @@ diff -u ../linux/arch/arm/lib/findbit.S xen/arch/arm/arm32/lib/findbit.S
 
 cmpxchg: last sync @ v3.16-rc6 (last commit: c32ffce0f66e)
 
-linux/arch/arm/include/asm/cmpxchg.h    xen/include/asm-arm/arm32/cmpxchg.h
+linux/arch/arm/include/asm/cmpxchg.h    xen/arch/arm/include/asm/arm32/cmpxchg.h
 
 ---------------------------------------------------------------------
 
 atomics: last sync @ v3.16-rc6 (last commit: 030d0178bdbd)
 
-linux/arch/arm/include/asm/atomic.h     xen/include/asm-arm/arm32/atomic.h
+linux/arch/arm/include/asm/atomic.h     xen/arch/arm/include/asm/arm32/atomic.h
 
 The following functions were taken from Linux:
     atomic_add(), atomic_add_return(), atomic_sub(), atomic_sub_return(),
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 6a2982059486..c3ac443b3788 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -2,6 +2,7 @@
 # arm-specific definitions
 
 CFLAGS += -I$(BASEDIR)/include
+CFLAGS += -I$(BASEDIR)/arch/$(TARGET_ARCH)/include
 
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
index 7178865f48c3..b5912d381b98 100644
--- a/xen/arch/arm/arm32/head.S
+++ b/xen/arch/arm/arm32/head.S
@@ -599,7 +599,7 @@ remove_identity_mapping:
         strd  r2, r3, [r0, r1]
 
 identity_mapping_removed:
-        /* See asm-arm/arm32/flushtlb.h for the explanation of the sequence. */
+        /* See asm/arm32/flushtlb.h for the explanation of the sequence. */
         dsb   nshst
         mcr   CP32(r0, TLBIALLH)
         dsb   nsh
diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index aa1f88c76498..51b00ab0bea6 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -737,7 +737,7 @@ remove_identity_mapping:
         str   xzr, [x0, x1, lsl #3]
 
 identity_mapping_removed:
-        /* See asm-arm/arm64/flushtlb.h for the explanation of the sequence. */
+        /* See asm/arm64/flushtlb.h for the explanation of the sequence. */
         dsb   nshst
         tlbi  alle2
         dsb   nsh
diff --git a/xen/include/asm-arm/acpi.h b/xen/arch/arm/include/asm/acpi.h
similarity index 100%
rename from xen/include/asm-arm/acpi.h
rename to xen/arch/arm/include/asm/acpi.h
diff --git a/xen/include/asm-arm/alternative.h b/xen/arch/arm/include/asm/alternative.h
similarity index 100%
rename from xen/include/asm-arm/alternative.h
rename to xen/arch/arm/include/asm/alternative.h
diff --git a/xen/include/asm-arm/altp2m.h b/xen/arch/arm/include/asm/altp2m.h
similarity index 100%
rename from xen/include/asm-arm/altp2m.h
rename to xen/arch/arm/include/asm/altp2m.h
diff --git a/xen/include/asm-arm/arm32/atomic.h b/xen/arch/arm/include/asm/arm32/atomic.h
similarity index 100%
rename from xen/include/asm-arm/arm32/atomic.h
rename to xen/arch/arm/include/asm/arm32/atomic.h
diff --git a/xen/include/asm-arm/arm32/bitops.h b/xen/arch/arm/include/asm/arm32/bitops.h
similarity index 100%
rename from xen/include/asm-arm/arm32/bitops.h
rename to xen/arch/arm/include/asm/arm32/bitops.h
diff --git a/xen/include/asm-arm/arm32/bug.h b/xen/arch/arm/include/asm/arm32/bug.h
similarity index 100%
rename from xen/include/asm-arm/arm32/bug.h
rename to xen/arch/arm/include/asm/arm32/bug.h
diff --git a/xen/include/asm-arm/arm32/cmpxchg.h b/xen/arch/arm/include/asm/arm32/cmpxchg.h
similarity index 100%
rename from xen/include/asm-arm/arm32/cmpxchg.h
rename to xen/arch/arm/include/asm/arm32/cmpxchg.h
diff --git a/xen/include/asm-arm/arm32/flushtlb.h b/xen/arch/arm/include/asm/arm32/flushtlb.h
similarity index 100%
rename from xen/include/asm-arm/arm32/flushtlb.h
rename to xen/arch/arm/include/asm/arm32/flushtlb.h
diff --git a/xen/include/asm-arm/arm32/insn.h b/xen/arch/arm/include/asm/arm32/insn.h
similarity index 100%
rename from xen/include/asm-arm/arm32/insn.h
rename to xen/arch/arm/include/asm/arm32/insn.h
diff --git a/xen/include/asm-arm/arm32/io.h b/xen/arch/arm/include/asm/arm32/io.h
similarity index 100%
rename from xen/include/asm-arm/arm32/io.h
rename to xen/arch/arm/include/asm/arm32/io.h
diff --git a/xen/include/asm-arm/arm32/macros.h b/xen/arch/arm/include/asm/arm32/macros.h
similarity index 100%
rename from xen/include/asm-arm/arm32/macros.h
rename to xen/arch/arm/include/asm/arm32/macros.h
diff --git a/xen/include/asm-arm/arm32/mm.h b/xen/arch/arm/include/asm/arm32/mm.h
similarity index 100%
rename from xen/include/asm-arm/arm32/mm.h
rename to xen/arch/arm/include/asm/arm32/mm.h
diff --git a/xen/include/asm-arm/arm32/page.h b/xen/arch/arm/include/asm/arm32/page.h
similarity index 100%
rename from xen/include/asm-arm/arm32/page.h
rename to xen/arch/arm/include/asm/arm32/page.h
diff --git a/xen/include/asm-arm/arm32/processor.h b/xen/arch/arm/include/asm/arm32/processor.h
similarity index 100%
rename from xen/include/asm-arm/arm32/processor.h
rename to xen/arch/arm/include/asm/arm32/processor.h
diff --git a/xen/include/asm-arm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
similarity index 100%
rename from xen/include/asm-arm/arm32/sysregs.h
rename to xen/arch/arm/include/asm/arm32/sysregs.h
diff --git a/xen/include/asm-arm/arm32/system.h b/xen/arch/arm/include/asm/arm32/system.h
similarity index 100%
rename from xen/include/asm-arm/arm32/system.h
rename to xen/arch/arm/include/asm/arm32/system.h
diff --git a/xen/include/asm-arm/arm32/traps.h b/xen/arch/arm/include/asm/arm32/traps.h
similarity index 100%
rename from xen/include/asm-arm/arm32/traps.h
rename to xen/arch/arm/include/asm/arm32/traps.h
diff --git a/xen/include/asm-arm/arm32/vfp.h b/xen/arch/arm/include/asm/arm32/vfp.h
similarity index 100%
rename from xen/include/asm-arm/arm32/vfp.h
rename to xen/arch/arm/include/asm/arm32/vfp.h
diff --git a/xen/include/asm-arm/arm64/atomic.h b/xen/arch/arm/include/asm/arm64/atomic.h
similarity index 100%
rename from xen/include/asm-arm/arm64/atomic.h
rename to xen/arch/arm/include/asm/arm64/atomic.h
diff --git a/xen/include/asm-arm/arm64/bitops.h b/xen/arch/arm/include/asm/arm64/bitops.h
similarity index 100%
rename from xen/include/asm-arm/arm64/bitops.h
rename to xen/arch/arm/include/asm/arm64/bitops.h
diff --git a/xen/include/asm-arm/arm64/brk.h b/xen/arch/arm/include/asm/arm64/brk.h
similarity index 100%
rename from xen/include/asm-arm/arm64/brk.h
rename to xen/arch/arm/include/asm/arm64/brk.h
diff --git a/xen/include/asm-arm/arm64/bug.h b/xen/arch/arm/include/asm/arm64/bug.h
similarity index 100%
rename from xen/include/asm-arm/arm64/bug.h
rename to xen/arch/arm/include/asm/arm64/bug.h
diff --git a/xen/include/asm-arm/arm64/cmpxchg.h b/xen/arch/arm/include/asm/arm64/cmpxchg.h
similarity index 100%
rename from xen/include/asm-arm/arm64/cmpxchg.h
rename to xen/arch/arm/include/asm/arm64/cmpxchg.h
diff --git a/xen/include/asm-arm/arm64/cpufeature.h b/xen/arch/arm/include/asm/arm64/cpufeature.h
similarity index 100%
rename from xen/include/asm-arm/arm64/cpufeature.h
rename to xen/arch/arm/include/asm/arm64/cpufeature.h
diff --git a/xen/include/asm-arm/arm64/efibind.h b/xen/arch/arm/include/asm/arm64/efibind.h
similarity index 100%
rename from xen/include/asm-arm/arm64/efibind.h
rename to xen/arch/arm/include/asm/arm64/efibind.h
diff --git a/xen/include/asm-arm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
similarity index 100%
rename from xen/include/asm-arm/arm64/flushtlb.h
rename to xen/arch/arm/include/asm/arm64/flushtlb.h
diff --git a/xen/include/asm-arm/arm64/hsr.h b/xen/arch/arm/include/asm/arm64/hsr.h
similarity index 100%
rename from xen/include/asm-arm/arm64/hsr.h
rename to xen/arch/arm/include/asm/arm64/hsr.h
diff --git a/xen/include/asm-arm/arm64/insn.h b/xen/arch/arm/include/asm/arm64/insn.h
similarity index 100%
rename from xen/include/asm-arm/arm64/insn.h
rename to xen/arch/arm/include/asm/arm64/insn.h
diff --git a/xen/include/asm-arm/arm64/io.h b/xen/arch/arm/include/asm/arm64/io.h
similarity index 100%
rename from xen/include/asm-arm/arm64/io.h
rename to xen/arch/arm/include/asm/arm64/io.h
diff --git a/xen/include/asm-arm/arm64/macros.h b/xen/arch/arm/include/asm/arm64/macros.h
similarity index 100%
rename from xen/include/asm-arm/arm64/macros.h
rename to xen/arch/arm/include/asm/arm64/macros.h
diff --git a/xen/include/asm-arm/arm64/mm.h b/xen/arch/arm/include/asm/arm64/mm.h
similarity index 100%
rename from xen/include/asm-arm/arm64/mm.h
rename to xen/arch/arm/include/asm/arm64/mm.h
diff --git a/xen/include/asm-arm/arm64/page.h b/xen/arch/arm/include/asm/arm64/page.h
similarity index 100%
rename from xen/include/asm-arm/arm64/page.h
rename to xen/arch/arm/include/asm/arm64/page.h
diff --git a/xen/include/asm-arm/arm64/processor.h b/xen/arch/arm/include/asm/arm64/processor.h
similarity index 100%
rename from xen/include/asm-arm/arm64/processor.h
rename to xen/arch/arm/include/asm/arm64/processor.h
diff --git a/xen/include/asm-arm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
similarity index 100%
rename from xen/include/asm-arm/arm64/sysregs.h
rename to xen/arch/arm/include/asm/arm64/sysregs.h
diff --git a/xen/include/asm-arm/arm64/system.h b/xen/arch/arm/include/asm/arm64/system.h
similarity index 100%
rename from xen/include/asm-arm/arm64/system.h
rename to xen/arch/arm/include/asm/arm64/system.h
diff --git a/xen/include/asm-arm/arm64/traps.h b/xen/arch/arm/include/asm/arm64/traps.h
similarity index 100%
rename from xen/include/asm-arm/arm64/traps.h
rename to xen/arch/arm/include/asm/arm64/traps.h
diff --git a/xen/include/asm-arm/arm64/vfp.h b/xen/arch/arm/include/asm/arm64/vfp.h
similarity index 100%
rename from xen/include/asm-arm/arm64/vfp.h
rename to xen/arch/arm/include/asm/arm64/vfp.h
diff --git a/xen/include/asm-arm/asm_defns.h b/xen/arch/arm/include/asm/asm_defns.h
similarity index 100%
rename from xen/include/asm-arm/asm_defns.h
rename to xen/arch/arm/include/asm/asm_defns.h
diff --git a/xen/include/asm-arm/atomic.h b/xen/arch/arm/include/asm/atomic.h
similarity index 100%
rename from xen/include/asm-arm/atomic.h
rename to xen/arch/arm/include/asm/atomic.h
diff --git a/xen/include/asm-arm/bitops.h b/xen/arch/arm/include/asm/bitops.h
similarity index 100%
rename from xen/include/asm-arm/bitops.h
rename to xen/arch/arm/include/asm/bitops.h
diff --git a/xen/include/asm-arm/bug.h b/xen/arch/arm/include/asm/bug.h
similarity index 100%
rename from xen/include/asm-arm/bug.h
rename to xen/arch/arm/include/asm/bug.h
diff --git a/xen/include/asm-arm/byteorder.h b/xen/arch/arm/include/asm/byteorder.h
similarity index 100%
rename from xen/include/asm-arm/byteorder.h
rename to xen/arch/arm/include/asm/byteorder.h
diff --git a/xen/include/asm-arm/cache.h b/xen/arch/arm/include/asm/cache.h
similarity index 100%
rename from xen/include/asm-arm/cache.h
rename to xen/arch/arm/include/asm/cache.h
diff --git a/xen/include/asm-arm/cadence-uart.h b/xen/arch/arm/include/asm/cadence-uart.h
similarity index 100%
rename from xen/include/asm-arm/cadence-uart.h
rename to xen/arch/arm/include/asm/cadence-uart.h
diff --git a/xen/include/asm-arm/config.h b/xen/arch/arm/include/asm/config.h
similarity index 100%
rename from xen/include/asm-arm/config.h
rename to xen/arch/arm/include/asm/config.h
diff --git a/xen/include/asm-arm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
similarity index 100%
rename from xen/include/asm-arm/cpregs.h
rename to xen/arch/arm/include/asm/cpregs.h
diff --git a/xen/include/asm-arm/cpuerrata.h b/xen/arch/arm/include/asm/cpuerrata.h
similarity index 100%
rename from xen/include/asm-arm/cpuerrata.h
rename to xen/arch/arm/include/asm/cpuerrata.h
diff --git a/xen/include/asm-arm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
similarity index 100%
rename from xen/include/asm-arm/cpufeature.h
rename to xen/arch/arm/include/asm/cpufeature.h
diff --git a/xen/include/asm-arm/current.h b/xen/arch/arm/include/asm/current.h
similarity index 100%
rename from xen/include/asm-arm/current.h
rename to xen/arch/arm/include/asm/current.h
diff --git a/xen/include/asm-arm/debugger.h b/xen/arch/arm/include/asm/debugger.h
similarity index 100%
rename from xen/include/asm-arm/debugger.h
rename to xen/arch/arm/include/asm/debugger.h
diff --git a/xen/include/asm-arm/delay.h b/xen/arch/arm/include/asm/delay.h
similarity index 100%
rename from xen/include/asm-arm/delay.h
rename to xen/arch/arm/include/asm/delay.h
diff --git a/xen/include/asm-arm/desc.h b/xen/arch/arm/include/asm/desc.h
similarity index 100%
rename from xen/include/asm-arm/desc.h
rename to xen/arch/arm/include/asm/desc.h
diff --git a/xen/include/asm-arm/device.h b/xen/arch/arm/include/asm/device.h
similarity index 100%
rename from xen/include/asm-arm/device.h
rename to xen/arch/arm/include/asm/device.h
diff --git a/xen/include/asm-arm/div64.h b/xen/arch/arm/include/asm/div64.h
similarity index 100%
rename from xen/include/asm-arm/div64.h
rename to xen/arch/arm/include/asm/div64.h
diff --git a/xen/include/asm-arm/domain.h b/xen/arch/arm/include/asm/domain.h
similarity index 100%
rename from xen/include/asm-arm/domain.h
rename to xen/arch/arm/include/asm/domain.h
diff --git a/xen/include/asm-arm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
similarity index 100%
rename from xen/include/asm-arm/domain_build.h
rename to xen/arch/arm/include/asm/domain_build.h
diff --git a/xen/include/asm-arm/early_printk.h b/xen/arch/arm/include/asm/early_printk.h
similarity index 100%
rename from xen/include/asm-arm/early_printk.h
rename to xen/arch/arm/include/asm/early_printk.h
diff --git a/xen/include/asm-arm/efibind.h b/xen/arch/arm/include/asm/efibind.h
similarity index 100%
rename from xen/include/asm-arm/efibind.h
rename to xen/arch/arm/include/asm/efibind.h
diff --git a/xen/include/asm-arm/elf.h b/xen/arch/arm/include/asm/elf.h
similarity index 100%
rename from xen/include/asm-arm/elf.h
rename to xen/arch/arm/include/asm/elf.h
diff --git a/xen/include/asm-arm/event.h b/xen/arch/arm/include/asm/event.h
similarity index 100%
rename from xen/include/asm-arm/event.h
rename to xen/arch/arm/include/asm/event.h
diff --git a/xen/include/asm-arm/exynos4210-uart.h b/xen/arch/arm/include/asm/exynos4210-uart.h
similarity index 100%
rename from xen/include/asm-arm/exynos4210-uart.h
rename to xen/arch/arm/include/asm/exynos4210-uart.h
diff --git a/xen/include/asm-arm/flushtlb.h b/xen/arch/arm/include/asm/flushtlb.h
similarity index 100%
rename from xen/include/asm-arm/flushtlb.h
rename to xen/arch/arm/include/asm/flushtlb.h
diff --git a/xen/include/asm-arm/gic.h b/xen/arch/arm/include/asm/gic.h
similarity index 100%
rename from xen/include/asm-arm/gic.h
rename to xen/arch/arm/include/asm/gic.h
diff --git a/xen/include/asm-arm/gic_v3_defs.h b/xen/arch/arm/include/asm/gic_v3_defs.h
similarity index 100%
rename from xen/include/asm-arm/gic_v3_defs.h
rename to xen/arch/arm/include/asm/gic_v3_defs.h
diff --git a/xen/include/asm-arm/gic_v3_its.h b/xen/arch/arm/include/asm/gic_v3_its.h
similarity index 100%
rename from xen/include/asm-arm/gic_v3_its.h
rename to xen/arch/arm/include/asm/gic_v3_its.h
diff --git a/xen/include/asm-arm/grant_table.h b/xen/arch/arm/include/asm/grant_table.h
similarity index 100%
rename from xen/include/asm-arm/grant_table.h
rename to xen/arch/arm/include/asm/grant_table.h
diff --git a/xen/include/asm-arm/guest_access.h b/xen/arch/arm/include/asm/guest_access.h
similarity index 100%
rename from xen/include/asm-arm/guest_access.h
rename to xen/arch/arm/include/asm/guest_access.h
diff --git a/xen/include/asm-arm/guest_atomics.h b/xen/arch/arm/include/asm/guest_atomics.h
similarity index 100%
rename from xen/include/asm-arm/guest_atomics.h
rename to xen/arch/arm/include/asm/guest_atomics.h
diff --git a/xen/include/asm-arm/guest_walk.h b/xen/arch/arm/include/asm/guest_walk.h
similarity index 100%
rename from xen/include/asm-arm/guest_walk.h
rename to xen/arch/arm/include/asm/guest_walk.h
diff --git a/xen/include/asm-arm/hardirq.h b/xen/arch/arm/include/asm/hardirq.h
similarity index 100%
rename from xen/include/asm-arm/hardirq.h
rename to xen/arch/arm/include/asm/hardirq.h
diff --git a/xen/include/asm-arm/hsr.h b/xen/arch/arm/include/asm/hsr.h
similarity index 100%
rename from xen/include/asm-arm/hsr.h
rename to xen/arch/arm/include/asm/hsr.h
diff --git a/xen/include/asm-arm/hypercall.h b/xen/arch/arm/include/asm/hypercall.h
similarity index 100%
rename from xen/include/asm-arm/hypercall.h
rename to xen/arch/arm/include/asm/hypercall.h
diff --git a/xen/include/asm-arm/init.h b/xen/arch/arm/include/asm/init.h
similarity index 100%
rename from xen/include/asm-arm/init.h
rename to xen/arch/arm/include/asm/init.h
diff --git a/xen/include/asm-arm/insn.h b/xen/arch/arm/include/asm/insn.h
similarity index 100%
rename from xen/include/asm-arm/insn.h
rename to xen/arch/arm/include/asm/insn.h
diff --git a/xen/include/asm-arm/io.h b/xen/arch/arm/include/asm/io.h
similarity index 100%
rename from xen/include/asm-arm/io.h
rename to xen/arch/arm/include/asm/io.h
diff --git a/xen/include/asm-arm/iocap.h b/xen/arch/arm/include/asm/iocap.h
similarity index 100%
rename from xen/include/asm-arm/iocap.h
rename to xen/arch/arm/include/asm/iocap.h
diff --git a/xen/include/asm-arm/iommu.h b/xen/arch/arm/include/asm/iommu.h
similarity index 100%
rename from xen/include/asm-arm/iommu.h
rename to xen/arch/arm/include/asm/iommu.h
diff --git a/xen/include/asm-arm/iommu_fwspec.h b/xen/arch/arm/include/asm/iommu_fwspec.h
similarity index 100%
rename from xen/include/asm-arm/iommu_fwspec.h
rename to xen/arch/arm/include/asm/iommu_fwspec.h
diff --git a/xen/include/asm-arm/ioreq.h b/xen/arch/arm/include/asm/ioreq.h
similarity index 100%
rename from xen/include/asm-arm/ioreq.h
rename to xen/arch/arm/include/asm/ioreq.h
diff --git a/xen/include/asm-arm/irq.h b/xen/arch/arm/include/asm/irq.h
similarity index 100%
rename from xen/include/asm-arm/irq.h
rename to xen/arch/arm/include/asm/irq.h
diff --git a/xen/include/asm-arm/kernel.h b/xen/arch/arm/include/asm/kernel.h
similarity index 100%
rename from xen/include/asm-arm/kernel.h
rename to xen/arch/arm/include/asm/kernel.h
diff --git a/xen/include/asm-arm/livepatch.h b/xen/arch/arm/include/asm/livepatch.h
similarity index 100%
rename from xen/include/asm-arm/livepatch.h
rename to xen/arch/arm/include/asm/livepatch.h
diff --git a/xen/include/asm-arm/lpae.h b/xen/arch/arm/include/asm/lpae.h
similarity index 100%
rename from xen/include/asm-arm/lpae.h
rename to xen/arch/arm/include/asm/lpae.h
diff --git a/xen/include/asm-arm/macros.h b/xen/arch/arm/include/asm/macros.h
similarity index 100%
rename from xen/include/asm-arm/macros.h
rename to xen/arch/arm/include/asm/macros.h
diff --git a/xen/include/asm-arm/mem_access.h b/xen/arch/arm/include/asm/mem_access.h
similarity index 100%
rename from xen/include/asm-arm/mem_access.h
rename to xen/arch/arm/include/asm/mem_access.h
diff --git a/xen/include/asm-arm/mm.h b/xen/arch/arm/include/asm/mm.h
similarity index 100%
rename from xen/include/asm-arm/mm.h
rename to xen/arch/arm/include/asm/mm.h
diff --git a/xen/include/asm-arm/mmio.h b/xen/arch/arm/include/asm/mmio.h
similarity index 100%
rename from xen/include/asm-arm/mmio.h
rename to xen/arch/arm/include/asm/mmio.h
diff --git a/xen/include/asm-arm/monitor.h b/xen/arch/arm/include/asm/monitor.h
similarity index 100%
rename from xen/include/asm-arm/monitor.h
rename to xen/arch/arm/include/asm/monitor.h
diff --git a/xen/include/asm-arm/new_vgic.h b/xen/arch/arm/include/asm/new_vgic.h
similarity index 100%
rename from xen/include/asm-arm/new_vgic.h
rename to xen/arch/arm/include/asm/new_vgic.h
diff --git a/xen/include/asm-arm/nospec.h b/xen/arch/arm/include/asm/nospec.h
similarity index 100%
rename from xen/include/asm-arm/nospec.h
rename to xen/arch/arm/include/asm/nospec.h
diff --git a/xen/include/asm-arm/numa.h b/xen/arch/arm/include/asm/numa.h
similarity index 100%
rename from xen/include/asm-arm/numa.h
rename to xen/arch/arm/include/asm/numa.h
diff --git a/xen/include/asm-arm/p2m.h b/xen/arch/arm/include/asm/p2m.h
similarity index 100%
rename from xen/include/asm-arm/p2m.h
rename to xen/arch/arm/include/asm/p2m.h
diff --git a/xen/include/asm-arm/page-bits.h b/xen/arch/arm/include/asm/page-bits.h
similarity index 100%
rename from xen/include/asm-arm/page-bits.h
rename to xen/arch/arm/include/asm/page-bits.h
diff --git a/xen/include/asm-arm/page.h b/xen/arch/arm/include/asm/page.h
similarity index 100%
rename from xen/include/asm-arm/page.h
rename to xen/arch/arm/include/asm/page.h
diff --git a/xen/include/asm-arm/paging.h b/xen/arch/arm/include/asm/paging.h
similarity index 100%
rename from xen/include/asm-arm/paging.h
rename to xen/arch/arm/include/asm/paging.h
diff --git a/xen/include/asm-arm/pci.h b/xen/arch/arm/include/asm/pci.h
similarity index 100%
rename from xen/include/asm-arm/pci.h
rename to xen/arch/arm/include/asm/pci.h
diff --git a/xen/include/asm-arm/percpu.h b/xen/arch/arm/include/asm/percpu.h
similarity index 100%
rename from xen/include/asm-arm/percpu.h
rename to xen/arch/arm/include/asm/percpu.h
diff --git a/xen/include/asm-arm/perfc.h b/xen/arch/arm/include/asm/perfc.h
similarity index 100%
rename from xen/include/asm-arm/perfc.h
rename to xen/arch/arm/include/asm/perfc.h
diff --git a/xen/include/asm-arm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
similarity index 100%
rename from xen/include/asm-arm/perfc_defn.h
rename to xen/arch/arm/include/asm/perfc_defn.h
diff --git a/xen/include/asm-arm/pl011-uart.h b/xen/arch/arm/include/asm/pl011-uart.h
similarity index 100%
rename from xen/include/asm-arm/pl011-uart.h
rename to xen/arch/arm/include/asm/pl011-uart.h
diff --git a/xen/include/asm-arm/platform.h b/xen/arch/arm/include/asm/platform.h
similarity index 100%
rename from xen/include/asm-arm/platform.h
rename to xen/arch/arm/include/asm/platform.h
diff --git a/xen/include/asm-arm/platforms/exynos5.h b/xen/arch/arm/include/asm/platforms/exynos5.h
similarity index 100%
rename from xen/include/asm-arm/platforms/exynos5.h
rename to xen/arch/arm/include/asm/platforms/exynos5.h
diff --git a/xen/include/asm-arm/platforms/midway.h b/xen/arch/arm/include/asm/platforms/midway.h
similarity index 100%
rename from xen/include/asm-arm/platforms/midway.h
rename to xen/arch/arm/include/asm/platforms/midway.h
diff --git a/xen/include/asm-arm/platforms/omap5.h b/xen/arch/arm/include/asm/platforms/omap5.h
similarity index 100%
rename from xen/include/asm-arm/platforms/omap5.h
rename to xen/arch/arm/include/asm/platforms/omap5.h
diff --git a/xen/include/asm-arm/platforms/vexpress.h b/xen/arch/arm/include/asm/platforms/vexpress.h
similarity index 100%
rename from xen/include/asm-arm/platforms/vexpress.h
rename to xen/arch/arm/include/asm/platforms/vexpress.h
diff --git a/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h b/xen/arch/arm/include/asm/platforms/xilinx-zynqmp-eemi.h
similarity index 100%
rename from xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h
rename to xen/arch/arm/include/asm/platforms/xilinx-zynqmp-eemi.h
diff --git a/xen/include/asm-arm/processor.h b/xen/arch/arm/include/asm/processor.h
similarity index 100%
rename from xen/include/asm-arm/processor.h
rename to xen/arch/arm/include/asm/processor.h
diff --git a/xen/include/asm-arm/procinfo.h b/xen/arch/arm/include/asm/procinfo.h
similarity index 100%
rename from xen/include/asm-arm/procinfo.h
rename to xen/arch/arm/include/asm/procinfo.h
diff --git a/xen/include/asm-arm/psci.h b/xen/arch/arm/include/asm/psci.h
similarity index 100%
rename from xen/include/asm-arm/psci.h
rename to xen/arch/arm/include/asm/psci.h
diff --git a/xen/include/asm-arm/random.h b/xen/arch/arm/include/asm/random.h
similarity index 100%
rename from xen/include/asm-arm/random.h
rename to xen/arch/arm/include/asm/random.h
diff --git a/xen/include/asm-arm/regs.h b/xen/arch/arm/include/asm/regs.h
similarity index 100%
rename from xen/include/asm-arm/regs.h
rename to xen/arch/arm/include/asm/regs.h
diff --git a/xen/include/asm-arm/scif-uart.h b/xen/arch/arm/include/asm/scif-uart.h
similarity index 100%
rename from xen/include/asm-arm/scif-uart.h
rename to xen/arch/arm/include/asm/scif-uart.h
diff --git a/xen/include/asm-arm/setup.h b/xen/arch/arm/include/asm/setup.h
similarity index 100%
rename from xen/include/asm-arm/setup.h
rename to xen/arch/arm/include/asm/setup.h
diff --git a/xen/include/asm-arm/short-desc.h b/xen/arch/arm/include/asm/short-desc.h
similarity index 100%
rename from xen/include/asm-arm/short-desc.h
rename to xen/arch/arm/include/asm/short-desc.h
diff --git a/xen/include/asm-arm/smccc.h b/xen/arch/arm/include/asm/smccc.h
similarity index 100%
rename from xen/include/asm-arm/smccc.h
rename to xen/arch/arm/include/asm/smccc.h
diff --git a/xen/include/asm-arm/smp.h b/xen/arch/arm/include/asm/smp.h
similarity index 100%
rename from xen/include/asm-arm/smp.h
rename to xen/arch/arm/include/asm/smp.h
diff --git a/xen/include/asm-arm/softirq.h b/xen/arch/arm/include/asm/softirq.h
similarity index 100%
rename from xen/include/asm-arm/softirq.h
rename to xen/arch/arm/include/asm/softirq.h
diff --git a/xen/include/asm-arm/spinlock.h b/xen/arch/arm/include/asm/spinlock.h
similarity index 100%
rename from xen/include/asm-arm/spinlock.h
rename to xen/arch/arm/include/asm/spinlock.h
diff --git a/xen/include/asm-arm/string.h b/xen/arch/arm/include/asm/string.h
similarity index 100%
rename from xen/include/asm-arm/string.h
rename to xen/arch/arm/include/asm/string.h
diff --git a/xen/include/asm-arm/sysregs.h b/xen/arch/arm/include/asm/sysregs.h
similarity index 100%
rename from xen/include/asm-arm/sysregs.h
rename to xen/arch/arm/include/asm/sysregs.h
diff --git a/xen/include/asm-arm/system.h b/xen/arch/arm/include/asm/system.h
similarity index 100%
rename from xen/include/asm-arm/system.h
rename to xen/arch/arm/include/asm/system.h
diff --git a/xen/include/asm-arm/tee/optee_msg.h b/xen/arch/arm/include/asm/tee/optee_msg.h
similarity index 100%
rename from xen/include/asm-arm/tee/optee_msg.h
rename to xen/arch/arm/include/asm/tee/optee_msg.h
diff --git a/xen/include/asm-arm/tee/optee_rpc_cmd.h b/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
similarity index 100%
rename from xen/include/asm-arm/tee/optee_rpc_cmd.h
rename to xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
diff --git a/xen/include/asm-arm/tee/optee_smc.h b/xen/arch/arm/include/asm/tee/optee_smc.h
similarity index 100%
rename from xen/include/asm-arm/tee/optee_smc.h
rename to xen/arch/arm/include/asm/tee/optee_smc.h
diff --git a/xen/include/asm-arm/tee/tee.h b/xen/arch/arm/include/asm/tee/tee.h
similarity index 100%
rename from xen/include/asm-arm/tee/tee.h
rename to xen/arch/arm/include/asm/tee/tee.h
diff --git a/xen/include/asm-arm/time.h b/xen/arch/arm/include/asm/time.h
similarity index 100%
rename from xen/include/asm-arm/time.h
rename to xen/arch/arm/include/asm/time.h
diff --git a/xen/include/asm-arm/trace.h b/xen/arch/arm/include/asm/trace.h
similarity index 100%
rename from xen/include/asm-arm/trace.h
rename to xen/arch/arm/include/asm/trace.h
diff --git a/xen/include/asm-arm/traps.h b/xen/arch/arm/include/asm/traps.h
similarity index 100%
rename from xen/include/asm-arm/traps.h
rename to xen/arch/arm/include/asm/traps.h
diff --git a/xen/include/asm-arm/types.h b/xen/arch/arm/include/asm/types.h
similarity index 100%
rename from xen/include/asm-arm/types.h
rename to xen/arch/arm/include/asm/types.h
diff --git a/xen/include/asm-arm/vfp.h b/xen/arch/arm/include/asm/vfp.h
similarity index 100%
rename from xen/include/asm-arm/vfp.h
rename to xen/arch/arm/include/asm/vfp.h
diff --git a/xen/include/asm-arm/vgic-emul.h b/xen/arch/arm/include/asm/vgic-emul.h
similarity index 100%
rename from xen/include/asm-arm/vgic-emul.h
rename to xen/arch/arm/include/asm/vgic-emul.h
diff --git a/xen/include/asm-arm/vgic.h b/xen/arch/arm/include/asm/vgic.h
similarity index 100%
rename from xen/include/asm-arm/vgic.h
rename to xen/arch/arm/include/asm/vgic.h
diff --git a/xen/include/asm-arm/vm_event.h b/xen/arch/arm/include/asm/vm_event.h
similarity index 100%
rename from xen/include/asm-arm/vm_event.h
rename to xen/arch/arm/include/asm/vm_event.h
diff --git a/xen/include/asm-arm/vpl011.h b/xen/arch/arm/include/asm/vpl011.h
similarity index 100%
rename from xen/include/asm-arm/vpl011.h
rename to xen/arch/arm/include/asm/vpl011.h
diff --git a/xen/include/asm-arm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
similarity index 100%
rename from xen/include/asm-arm/vpsci.h
rename to xen/arch/arm/include/asm/vpsci.h
diff --git a/xen/include/asm-arm/vreg.h b/xen/arch/arm/include/asm/vreg.h
similarity index 100%
rename from xen/include/asm-arm/vreg.h
rename to xen/arch/arm/include/asm/vreg.h
diff --git a/xen/include/asm-arm/vtimer.h b/xen/arch/arm/include/asm/vtimer.h
similarity index 100%
rename from xen/include/asm-arm/vtimer.h
rename to xen/arch/arm/include/asm/vtimer.h
diff --git a/xen/include/asm-arm/xenoprof.h b/xen/arch/arm/include/asm/xenoprof.h
similarity index 100%
rename from xen/include/asm-arm/xenoprof.h
rename to xen/arch/arm/include/asm/xenoprof.h
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 60c0e82fc559..7bfd0a73a7d2 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -46,7 +46,7 @@ struct cpuinfo_arm cpu_data[NR_CPUS];
 /* CPU logical map: map xen cpuid to an MPIDR */
 register_t __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = MPIDR_INVALID };
 
-/* Fake one node for now. See also include/asm-arm/numa.h */
+/* Fake one node for now. See also asm/numa.h */
 nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
 
 /* Xen stack for bringing up the first CPU. */
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index c1e250be5967..744d43ec2798 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -278,7 +278,7 @@ bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid)
 bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
 {
     /*
-     * /!\ VPSCI_NR_FUNCS (in asm-arm/vpsci.h) should be updated when
+     * /!\ VPSCI_NR_FUNCS (in asm/vpsci.h) should be updated when
      * adding/removing a function. SCCC_SMCCC_*_REVISION should be
      * updated once per release.
      */
diff --git a/xen/arch/riscv/arch.mk b/xen/arch/riscv/arch.mk
index 53dadb897591..39ae6ffea94d 100644
--- a/xen/arch/riscv/arch.mk
+++ b/xen/arch/riscv/arch.mk
@@ -12,3 +12,4 @@ riscv-march-$(CONFIG_RISCV_ISA_C)       := $(riscv-march-y)c
 
 CFLAGS += -march=$(riscv-march-y) -mstrict-align -mcmodel=medany
 CFLAGS += -I$(BASEDIR)/include
+CFLAGS += -I$(BASEDIR)/arch/$(TARGET_ARCH)/include
diff --git a/xen/include/asm-riscv/config.h b/xen/arch/riscv/include/asm/config.h
similarity index 100%
rename from xen/include/asm-riscv/config.h
rename to xen/arch/riscv/include/asm/config.h
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 669e16e72690..8db4cb98edbb 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -273,11 +273,11 @@ efi/buildid.o efi/relocs-dummy.o: $(BASEDIR)/arch/x86/efi/built_in.o
 efi/buildid.o efi/relocs-dummy.o: ;
 
 .PHONY: include
-include: $(BASEDIR)/include/asm-x86/asm-macros.h
+include: $(BASEDIR)/arch/x86/include/asm/asm-macros.h
 
 asm-macros.i: CFLAGS-y += -D__ASSEMBLY__ -P
 
-$(BASEDIR)/include/asm-x86/asm-macros.h: asm-macros.i Makefile
+$(BASEDIR)/arch/x86/include/asm/asm-macros.h: asm-macros.i Makefile
 	echo '#if 0' >$@.new
 	echo '.if 0' >>$@.new
 	echo '#endif' >>$@.new
@@ -304,7 +304,7 @@ efi/mkreloc: efi/mkreloc.c
 .PHONY: clean
 clean::
 	rm -f *.lds *.new boot/*.o boot/*~ boot/core boot/mkelf32
-	rm -f asm-macros.i $(BASEDIR)/include/asm-x86/asm-macros.*
+	rm -f asm-macros.i $(BASEDIR)/arch/x86/include/asm/asm-macros.*
 	rm -f $(BASEDIR)/.xen-syms.[0-9]* boot/.*.d $(BASEDIR)/.xen.elf32
 	rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/mkreloc
 	rm -f boot/cmdline.S boot/reloc.S boot/*.lnk boot/*.bin
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index ce0c1a0e7fb2..eea320e618b9 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -4,8 +4,9 @@
 export XEN_IMG_OFFSET := 0x200000
 
 CFLAGS += -I$(BASEDIR)/include
-CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-generic
-CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-default
+CFLAGS += -I$(BASEDIR)/arch/$(TARGET_ARCH)/include
+CFLAGS += -I$(BASEDIR)/arch/x86/include/asm/mach-generic
+CFLAGS += -I$(BASEDIR)/arch/x86/include/asm/mach-default
 CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
 
 # Prevent floating-point variables from creeping into Xen.
diff --git a/xen/include/asm-x86/acpi.h b/xen/arch/x86/include/asm/acpi.h
similarity index 100%
rename from xen/include/asm-x86/acpi.h
rename to xen/arch/x86/include/asm/acpi.h
diff --git a/xen/include/asm-x86/alternative-asm.h b/xen/arch/x86/include/asm/alternative-asm.h
similarity index 100%
rename from xen/include/asm-x86/alternative-asm.h
rename to xen/arch/x86/include/asm/alternative-asm.h
diff --git a/xen/include/asm-x86/alternative.h b/xen/arch/x86/include/asm/alternative.h
similarity index 100%
rename from xen/include/asm-x86/alternative.h
rename to xen/arch/x86/include/asm/alternative.h
diff --git a/xen/include/asm-x86/altp2m.h b/xen/arch/x86/include/asm/altp2m.h
similarity index 100%
rename from xen/include/asm-x86/altp2m.h
rename to xen/arch/x86/include/asm/altp2m.h
diff --git a/xen/include/asm-x86/amd.h b/xen/arch/x86/include/asm/amd.h
similarity index 100%
rename from xen/include/asm-x86/amd.h
rename to xen/arch/x86/include/asm/amd.h
diff --git a/xen/include/asm-x86/apic.h b/xen/arch/x86/include/asm/apic.h
similarity index 100%
rename from xen/include/asm-x86/apic.h
rename to xen/arch/x86/include/asm/apic.h
diff --git a/xen/include/asm-x86/apicdef.h b/xen/arch/x86/include/asm/apicdef.h
similarity index 100%
rename from xen/include/asm-x86/apicdef.h
rename to xen/arch/x86/include/asm/apicdef.h
diff --git a/xen/include/asm-x86/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h
similarity index 100%
rename from xen/include/asm-x86/asm-defns.h
rename to xen/arch/x86/include/asm/asm-defns.h
diff --git a/xen/include/asm-x86/asm_defns.h b/xen/arch/x86/include/asm/asm_defns.h
similarity index 100%
rename from xen/include/asm-x86/asm_defns.h
rename to xen/arch/x86/include/asm/asm_defns.h
diff --git a/xen/include/asm-x86/atomic.h b/xen/arch/x86/include/asm/atomic.h
similarity index 100%
rename from xen/include/asm-x86/atomic.h
rename to xen/arch/x86/include/asm/atomic.h
diff --git a/xen/include/asm-x86/bitops.h b/xen/arch/x86/include/asm/bitops.h
similarity index 100%
rename from xen/include/asm-x86/bitops.h
rename to xen/arch/x86/include/asm/bitops.h
diff --git a/xen/include/asm-x86/bug.h b/xen/arch/x86/include/asm/bug.h
similarity index 100%
rename from xen/include/asm-x86/bug.h
rename to xen/arch/x86/include/asm/bug.h
diff --git a/xen/include/asm-x86/byteorder.h b/xen/arch/x86/include/asm/byteorder.h
similarity index 100%
rename from xen/include/asm-x86/byteorder.h
rename to xen/arch/x86/include/asm/byteorder.h
diff --git a/xen/include/asm-x86/bzimage.h b/xen/arch/x86/include/asm/bzimage.h
similarity index 100%
rename from xen/include/asm-x86/bzimage.h
rename to xen/arch/x86/include/asm/bzimage.h
diff --git a/xen/include/asm-x86/cache.h b/xen/arch/x86/include/asm/cache.h
similarity index 100%
rename from xen/include/asm-x86/cache.h
rename to xen/arch/x86/include/asm/cache.h
diff --git a/xen/include/asm-x86/compat.h b/xen/arch/x86/include/asm/compat.h
similarity index 100%
rename from xen/include/asm-x86/compat.h
rename to xen/arch/x86/include/asm/compat.h
diff --git a/xen/include/asm-x86/config.h b/xen/arch/x86/include/asm/config.h
similarity index 100%
rename from xen/include/asm-x86/config.h
rename to xen/arch/x86/include/asm/config.h
diff --git a/xen/include/asm-x86/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
similarity index 100%
rename from xen/include/asm-x86/cpufeature.h
rename to xen/arch/x86/include/asm/cpufeature.h
diff --git a/xen/include/asm-x86/cpufeatures.h b/xen/arch/x86/include/asm/cpufeatures.h
similarity index 100%
rename from xen/include/asm-x86/cpufeatures.h
rename to xen/arch/x86/include/asm/cpufeatures.h
diff --git a/xen/include/asm-x86/cpufeatureset.h b/xen/arch/x86/include/asm/cpufeatureset.h
similarity index 100%
rename from xen/include/asm-x86/cpufeatureset.h
rename to xen/arch/x86/include/asm/cpufeatureset.h
diff --git a/xen/include/asm-x86/cpuid.h b/xen/arch/x86/include/asm/cpuid.h
similarity index 100%
rename from xen/include/asm-x86/cpuid.h
rename to xen/arch/x86/include/asm/cpuid.h
diff --git a/xen/include/asm-x86/cpuidle.h b/xen/arch/x86/include/asm/cpuidle.h
similarity index 100%
rename from xen/include/asm-x86/cpuidle.h
rename to xen/arch/x86/include/asm/cpuidle.h
diff --git a/xen/include/asm-x86/current.h b/xen/arch/x86/include/asm/current.h
similarity index 99%
rename from xen/include/asm-x86/current.h
rename to xen/arch/x86/include/asm/current.h
index a74ad4bc4c44..cfbedc31983f 100644
--- a/xen/include/asm-x86/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -53,7 +53,7 @@ struct cpu_info {
     unsigned long xen_cr3;
     unsigned long pv_cr3;
 
-    /* See asm-x86/spec_ctrl_asm.h for usage. */
+    /* See asm/spec_ctrl_asm.h for usage. */
     unsigned int shadow_spec_ctrl;
     uint8_t      xen_spec_ctrl;
     uint8_t      spec_ctrl_flags;
diff --git a/xen/include/asm-x86/debugger.h b/xen/arch/x86/include/asm/debugger.h
similarity index 100%
rename from xen/include/asm-x86/debugger.h
rename to xen/arch/x86/include/asm/debugger.h
diff --git a/xen/include/asm-x86/debugreg.h b/xen/arch/x86/include/asm/debugreg.h
similarity index 100%
rename from xen/include/asm-x86/debugreg.h
rename to xen/arch/x86/include/asm/debugreg.h
diff --git a/xen/include/asm-x86/delay.h b/xen/arch/x86/include/asm/delay.h
similarity index 100%
rename from xen/include/asm-x86/delay.h
rename to xen/arch/x86/include/asm/delay.h
diff --git a/xen/include/asm-x86/desc.h b/xen/arch/x86/include/asm/desc.h
similarity index 100%
rename from xen/include/asm-x86/desc.h
rename to xen/arch/x86/include/asm/desc.h
diff --git a/xen/include/asm-x86/device.h b/xen/arch/x86/include/asm/device.h
similarity index 100%
rename from xen/include/asm-x86/device.h
rename to xen/arch/x86/include/asm/device.h
diff --git a/xen/include/asm-x86/div64.h b/xen/arch/x86/include/asm/div64.h
similarity index 100%
rename from xen/include/asm-x86/div64.h
rename to xen/arch/x86/include/asm/div64.h
diff --git a/xen/include/asm-x86/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
similarity index 100%
rename from xen/include/asm-x86/dom0_build.h
rename to xen/arch/x86/include/asm/dom0_build.h
diff --git a/xen/include/asm-x86/domain.h b/xen/arch/x86/include/asm/domain.h
similarity index 99%
rename from xen/include/asm-x86/domain.h
rename to xen/arch/x86/include/asm/domain.h
index 92d54de0b9a1..e62e10959801 100644
--- a/xen/include/asm-x86/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -384,7 +384,7 @@ struct arch_domain
     struct PITState vpit;
 
     /* TSC management (emulation, pv, scaling, stats) */
-    int tsc_mode;            /* see include/asm-x86/time.h */
+    int tsc_mode;            /* see asm/time.h */
     bool_t vtsc;             /* tsc is emulated (may change after migrate) */
     s_time_t vtsc_last;      /* previous TSC value (guarantee monotonicity) */
     uint64_t vtsc_offset;    /* adjustment for save/restore/migrate */
diff --git a/xen/include/asm-x86/e820.h b/xen/arch/x86/include/asm/e820.h
similarity index 100%
rename from xen/include/asm-x86/e820.h
rename to xen/arch/x86/include/asm/e820.h
diff --git a/xen/include/asm-x86/edd.h b/xen/arch/x86/include/asm/edd.h
similarity index 100%
rename from xen/include/asm-x86/edd.h
rename to xen/arch/x86/include/asm/edd.h
diff --git a/xen/include/asm-x86/efibind.h b/xen/arch/x86/include/asm/efibind.h
similarity index 100%
rename from xen/include/asm-x86/efibind.h
rename to xen/arch/x86/include/asm/efibind.h
diff --git a/xen/include/asm-x86/elf.h b/xen/arch/x86/include/asm/elf.h
similarity index 100%
rename from xen/include/asm-x86/elf.h
rename to xen/arch/x86/include/asm/elf.h
diff --git a/xen/include/asm-x86/event.h b/xen/arch/x86/include/asm/event.h
similarity index 100%
rename from xen/include/asm-x86/event.h
rename to xen/arch/x86/include/asm/event.h
diff --git a/xen/include/asm-x86/fixmap.h b/xen/arch/x86/include/asm/fixmap.h
similarity index 100%
rename from xen/include/asm-x86/fixmap.h
rename to xen/arch/x86/include/asm/fixmap.h
diff --git a/xen/include/asm-x86/flushtlb.h b/xen/arch/x86/include/asm/flushtlb.h
similarity index 100%
rename from xen/include/asm-x86/flushtlb.h
rename to xen/arch/x86/include/asm/flushtlb.h
diff --git a/xen/include/asm-x86/genapic.h b/xen/arch/x86/include/asm/genapic.h
similarity index 100%
rename from xen/include/asm-x86/genapic.h
rename to xen/arch/x86/include/asm/genapic.h
diff --git a/xen/include/asm-x86/grant_table.h b/xen/arch/x86/include/asm/grant_table.h
similarity index 100%
rename from xen/include/asm-x86/grant_table.h
rename to xen/arch/x86/include/asm/grant_table.h
diff --git a/xen/include/asm-x86/guest.h b/xen/arch/x86/include/asm/guest.h
similarity index 100%
rename from xen/include/asm-x86/guest.h
rename to xen/arch/x86/include/asm/guest.h
diff --git a/xen/include/asm-x86/guest/hyperv-hcall.h b/xen/arch/x86/include/asm/guest/hyperv-hcall.h
similarity index 100%
rename from xen/include/asm-x86/guest/hyperv-hcall.h
rename to xen/arch/x86/include/asm/guest/hyperv-hcall.h
diff --git a/xen/include/asm-x86/guest/hyperv-tlfs.h b/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
similarity index 100%
rename from xen/include/asm-x86/guest/hyperv-tlfs.h
rename to xen/arch/x86/include/asm/guest/hyperv-tlfs.h
diff --git a/xen/include/asm-x86/guest/hyperv.h b/xen/arch/x86/include/asm/guest/hyperv.h
similarity index 100%
rename from xen/include/asm-x86/guest/hyperv.h
rename to xen/arch/x86/include/asm/guest/hyperv.h
diff --git a/xen/include/asm-x86/guest/hypervisor.h b/xen/arch/x86/include/asm/guest/hypervisor.h
similarity index 100%
rename from xen/include/asm-x86/guest/hypervisor.h
rename to xen/arch/x86/include/asm/guest/hypervisor.h
diff --git a/xen/include/asm-x86/guest/pvh-boot.h b/xen/arch/x86/include/asm/guest/pvh-boot.h
similarity index 100%
rename from xen/include/asm-x86/guest/pvh-boot.h
rename to xen/arch/x86/include/asm/guest/pvh-boot.h
diff --git a/xen/include/asm-x86/guest/xen-hcall.h b/xen/arch/x86/include/asm/guest/xen-hcall.h
similarity index 100%
rename from xen/include/asm-x86/guest/xen-hcall.h
rename to xen/arch/x86/include/asm/guest/xen-hcall.h
diff --git a/xen/include/asm-x86/guest/xen.h b/xen/arch/x86/include/asm/guest/xen.h
similarity index 100%
rename from xen/include/asm-x86/guest/xen.h
rename to xen/arch/x86/include/asm/guest/xen.h
diff --git a/xen/include/asm-x86/guest_access.h b/xen/arch/x86/include/asm/guest_access.h
similarity index 100%
rename from xen/include/asm-x86/guest_access.h
rename to xen/arch/x86/include/asm/guest_access.h
diff --git a/xen/include/asm-x86/guest_atomics.h b/xen/arch/x86/include/asm/guest_atomics.h
similarity index 100%
rename from xen/include/asm-x86/guest_atomics.h
rename to xen/arch/x86/include/asm/guest_atomics.h
diff --git a/xen/include/asm-x86/guest_pt.h b/xen/arch/x86/include/asm/guest_pt.h
similarity index 100%
rename from xen/include/asm-x86/guest_pt.h
rename to xen/arch/x86/include/asm/guest_pt.h
diff --git a/xen/include/asm-x86/hap.h b/xen/arch/x86/include/asm/hap.h
similarity index 100%
rename from xen/include/asm-x86/hap.h
rename to xen/arch/x86/include/asm/hap.h
diff --git a/xen/include/asm-x86/hardirq.h b/xen/arch/x86/include/asm/hardirq.h
similarity index 100%
rename from xen/include/asm-x86/hardirq.h
rename to xen/arch/x86/include/asm/hardirq.h
diff --git a/xen/include/asm-x86/hpet.h b/xen/arch/x86/include/asm/hpet.h
similarity index 100%
rename from xen/include/asm-x86/hpet.h
rename to xen/arch/x86/include/asm/hpet.h
diff --git a/xen/include/asm-x86/hvm/asid.h b/xen/arch/x86/include/asm/hvm/asid.h
similarity index 100%
rename from xen/include/asm-x86/hvm/asid.h
rename to xen/arch/x86/include/asm/hvm/asid.h
diff --git a/xen/include/asm-x86/hvm/cacheattr.h b/xen/arch/x86/include/asm/hvm/cacheattr.h
similarity index 100%
rename from xen/include/asm-x86/hvm/cacheattr.h
rename to xen/arch/x86/include/asm/hvm/cacheattr.h
diff --git a/xen/include/asm-x86/hvm/domain.h b/xen/arch/x86/include/asm/hvm/domain.h
similarity index 100%
rename from xen/include/asm-x86/hvm/domain.h
rename to xen/arch/x86/include/asm/hvm/domain.h
diff --git a/xen/include/asm-x86/hvm/emulate.h b/xen/arch/x86/include/asm/hvm/emulate.h
similarity index 100%
rename from xen/include/asm-x86/hvm/emulate.h
rename to xen/arch/x86/include/asm/hvm/emulate.h
diff --git a/xen/include/asm-x86/hvm/grant_table.h b/xen/arch/x86/include/asm/hvm/grant_table.h
similarity index 100%
rename from xen/include/asm-x86/hvm/grant_table.h
rename to xen/arch/x86/include/asm/hvm/grant_table.h
diff --git a/xen/include/asm-x86/hvm/guest_access.h b/xen/arch/x86/include/asm/hvm/guest_access.h
similarity index 100%
rename from xen/include/asm-x86/hvm/guest_access.h
rename to xen/arch/x86/include/asm/hvm/guest_access.h
diff --git a/xen/include/asm-x86/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
similarity index 100%
rename from xen/include/asm-x86/hvm/hvm.h
rename to xen/arch/x86/include/asm/hvm/hvm.h
diff --git a/xen/include/asm-x86/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
similarity index 100%
rename from xen/include/asm-x86/hvm/io.h
rename to xen/arch/x86/include/asm/hvm/io.h
diff --git a/xen/include/asm-x86/hvm/ioreq.h b/xen/arch/x86/include/asm/hvm/ioreq.h
similarity index 100%
rename from xen/include/asm-x86/hvm/ioreq.h
rename to xen/arch/x86/include/asm/hvm/ioreq.h
diff --git a/xen/include/asm-x86/hvm/irq.h b/xen/arch/x86/include/asm/hvm/irq.h
similarity index 100%
rename from xen/include/asm-x86/hvm/irq.h
rename to xen/arch/x86/include/asm/hvm/irq.h
diff --git a/xen/include/asm-x86/hvm/monitor.h b/xen/arch/x86/include/asm/hvm/monitor.h
similarity index 100%
rename from xen/include/asm-x86/hvm/monitor.h
rename to xen/arch/x86/include/asm/hvm/monitor.h
diff --git a/xen/include/asm-x86/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
similarity index 100%
rename from xen/include/asm-x86/hvm/nestedhvm.h
rename to xen/arch/x86/include/asm/hvm/nestedhvm.h
diff --git a/xen/include/asm-x86/hvm/save.h b/xen/arch/x86/include/asm/hvm/save.h
similarity index 100%
rename from xen/include/asm-x86/hvm/save.h
rename to xen/arch/x86/include/asm/hvm/save.h
diff --git a/xen/include/asm-x86/hvm/support.h b/xen/arch/x86/include/asm/hvm/support.h
similarity index 100%
rename from xen/include/asm-x86/hvm/support.h
rename to xen/arch/x86/include/asm/hvm/support.h
diff --git a/xen/include/asm-x86/hvm/svm/asid.h b/xen/arch/x86/include/asm/hvm/svm/asid.h
similarity index 100%
rename from xen/include/asm-x86/hvm/svm/asid.h
rename to xen/arch/x86/include/asm/hvm/svm/asid.h
diff --git a/xen/include/asm-x86/hvm/svm/emulate.h b/xen/arch/x86/include/asm/hvm/svm/emulate.h
similarity index 100%
rename from xen/include/asm-x86/hvm/svm/emulate.h
rename to xen/arch/x86/include/asm/hvm/svm/emulate.h
diff --git a/xen/include/asm-x86/hvm/svm/intr.h b/xen/arch/x86/include/asm/hvm/svm/intr.h
similarity index 100%
rename from xen/include/asm-x86/hvm/svm/intr.h
rename to xen/arch/x86/include/asm/hvm/svm/intr.h
diff --git a/xen/include/asm-x86/hvm/svm/nestedsvm.h b/xen/arch/x86/include/asm/hvm/svm/nestedsvm.h
similarity index 100%
rename from xen/include/asm-x86/hvm/svm/nestedsvm.h
rename to xen/arch/x86/include/asm/hvm/svm/nestedsvm.h
diff --git a/xen/include/asm-x86/hvm/svm/svm.h b/xen/arch/x86/include/asm/hvm/svm/svm.h
similarity index 100%
rename from xen/include/asm-x86/hvm/svm/svm.h
rename to xen/arch/x86/include/asm/hvm/svm/svm.h
diff --git a/xen/include/asm-x86/hvm/svm/svmdebug.h b/xen/arch/x86/include/asm/hvm/svm/svmdebug.h
similarity index 100%
rename from xen/include/asm-x86/hvm/svm/svmdebug.h
rename to xen/arch/x86/include/asm/hvm/svm/svmdebug.h
diff --git a/xen/include/asm-x86/hvm/svm/vmcb.h b/xen/arch/x86/include/asm/hvm/svm/vmcb.h
similarity index 100%
rename from xen/include/asm-x86/hvm/svm/vmcb.h
rename to xen/arch/x86/include/asm/hvm/svm/vmcb.h
diff --git a/xen/include/asm-x86/hvm/trace.h b/xen/arch/x86/include/asm/hvm/trace.h
similarity index 100%
rename from xen/include/asm-x86/hvm/trace.h
rename to xen/arch/x86/include/asm/hvm/trace.h
diff --git a/xen/include/asm-x86/hvm/vcpu.h b/xen/arch/x86/include/asm/hvm/vcpu.h
similarity index 100%
rename from xen/include/asm-x86/hvm/vcpu.h
rename to xen/arch/x86/include/asm/hvm/vcpu.h
diff --git a/xen/include/asm-x86/hvm/vioapic.h b/xen/arch/x86/include/asm/hvm/vioapic.h
similarity index 100%
rename from xen/include/asm-x86/hvm/vioapic.h
rename to xen/arch/x86/include/asm/hvm/vioapic.h
diff --git a/xen/include/asm-x86/hvm/viridian.h b/xen/arch/x86/include/asm/hvm/viridian.h
similarity index 100%
rename from xen/include/asm-x86/hvm/viridian.h
rename to xen/arch/x86/include/asm/hvm/viridian.h
diff --git a/xen/include/asm-x86/hvm/vlapic.h b/xen/arch/x86/include/asm/hvm/vlapic.h
similarity index 100%
rename from xen/include/asm-x86/hvm/vlapic.h
rename to xen/arch/x86/include/asm/hvm/vlapic.h
diff --git a/xen/include/asm-x86/hvm/vm_event.h b/xen/arch/x86/include/asm/hvm/vm_event.h
similarity index 100%
rename from xen/include/asm-x86/hvm/vm_event.h
rename to xen/arch/x86/include/asm/hvm/vm_event.h
diff --git a/xen/include/asm-x86/hvm/vmx/vmcs.h b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
similarity index 100%
rename from xen/include/asm-x86/hvm/vmx/vmcs.h
rename to xen/arch/x86/include/asm/hvm/vmx/vmcs.h
diff --git a/xen/include/asm-x86/hvm/vmx/vmx.h b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
similarity index 100%
rename from xen/include/asm-x86/hvm/vmx/vmx.h
rename to xen/arch/x86/include/asm/hvm/vmx/vmx.h
diff --git a/xen/include/asm-x86/hvm/vmx/vvmx.h b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
similarity index 100%
rename from xen/include/asm-x86/hvm/vmx/vvmx.h
rename to xen/arch/x86/include/asm/hvm/vmx/vvmx.h
diff --git a/xen/include/asm-x86/hvm/vpic.h b/xen/arch/x86/include/asm/hvm/vpic.h
similarity index 100%
rename from xen/include/asm-x86/hvm/vpic.h
rename to xen/arch/x86/include/asm/hvm/vpic.h
diff --git a/xen/include/asm-x86/hvm/vpt.h b/xen/arch/x86/include/asm/hvm/vpt.h
similarity index 100%
rename from xen/include/asm-x86/hvm/vpt.h
rename to xen/arch/x86/include/asm/hvm/vpt.h
diff --git a/xen/include/asm-x86/hypercall.h b/xen/arch/x86/include/asm/hypercall.h
similarity index 100%
rename from xen/include/asm-x86/hypercall.h
rename to xen/arch/x86/include/asm/hypercall.h
diff --git a/xen/include/asm-x86/i387.h b/xen/arch/x86/include/asm/i387.h
similarity index 100%
rename from xen/include/asm-x86/i387.h
rename to xen/arch/x86/include/asm/i387.h
diff --git a/xen/include/asm-x86/init.h b/xen/arch/x86/include/asm/init.h
similarity index 100%
rename from xen/include/asm-x86/init.h
rename to xen/arch/x86/include/asm/init.h
diff --git a/xen/include/asm-x86/invpcid.h b/xen/arch/x86/include/asm/invpcid.h
similarity index 100%
rename from xen/include/asm-x86/invpcid.h
rename to xen/arch/x86/include/asm/invpcid.h
diff --git a/xen/include/asm-x86/io.h b/xen/arch/x86/include/asm/io.h
similarity index 100%
rename from xen/include/asm-x86/io.h
rename to xen/arch/x86/include/asm/io.h
diff --git a/xen/include/asm-x86/io_apic.h b/xen/arch/x86/include/asm/io_apic.h
similarity index 100%
rename from xen/include/asm-x86/io_apic.h
rename to xen/arch/x86/include/asm/io_apic.h
diff --git a/xen/include/asm-x86/iocap.h b/xen/arch/x86/include/asm/iocap.h
similarity index 100%
rename from xen/include/asm-x86/iocap.h
rename to xen/arch/x86/include/asm/iocap.h
diff --git a/xen/include/asm-x86/iommu.h b/xen/arch/x86/include/asm/iommu.h
similarity index 100%
rename from xen/include/asm-x86/iommu.h
rename to xen/arch/x86/include/asm/iommu.h
diff --git a/xen/include/asm-x86/ioreq.h b/xen/arch/x86/include/asm/ioreq.h
similarity index 100%
rename from xen/include/asm-x86/ioreq.h
rename to xen/arch/x86/include/asm/ioreq.h
diff --git a/xen/include/asm-x86/irq.h b/xen/arch/x86/include/asm/irq.h
similarity index 100%
rename from xen/include/asm-x86/irq.h
rename to xen/arch/x86/include/asm/irq.h
diff --git a/xen/include/asm-x86/ldt.h b/xen/arch/x86/include/asm/ldt.h
similarity index 100%
rename from xen/include/asm-x86/ldt.h
rename to xen/arch/x86/include/asm/ldt.h
diff --git a/xen/include/asm-x86/livepatch.h b/xen/arch/x86/include/asm/livepatch.h
similarity index 100%
rename from xen/include/asm-x86/livepatch.h
rename to xen/arch/x86/include/asm/livepatch.h
diff --git a/xen/include/asm-x86/mach-default/bios_ebda.h b/xen/arch/x86/include/asm/mach-default/bios_ebda.h
similarity index 100%
rename from xen/include/asm-x86/mach-default/bios_ebda.h
rename to xen/arch/x86/include/asm/mach-default/bios_ebda.h
diff --git a/xen/include/asm-x86/mach-default/io_ports.h b/xen/arch/x86/include/asm/mach-default/io_ports.h
similarity index 100%
rename from xen/include/asm-x86/mach-default/io_ports.h
rename to xen/arch/x86/include/asm/mach-default/io_ports.h
diff --git a/xen/include/asm-x86/mach-default/irq_vectors.h b/xen/arch/x86/include/asm/mach-default/irq_vectors.h
similarity index 100%
rename from xen/include/asm-x86/mach-default/irq_vectors.h
rename to xen/arch/x86/include/asm/mach-default/irq_vectors.h
diff --git a/xen/include/asm-x86/mach-default/mach_mpparse.h b/xen/arch/x86/include/asm/mach-default/mach_mpparse.h
similarity index 100%
rename from xen/include/asm-x86/mach-default/mach_mpparse.h
rename to xen/arch/x86/include/asm/mach-default/mach_mpparse.h
diff --git a/xen/include/asm-x86/mach-default/mach_mpspec.h b/xen/arch/x86/include/asm/mach-default/mach_mpspec.h
similarity index 100%
rename from xen/include/asm-x86/mach-default/mach_mpspec.h
rename to xen/arch/x86/include/asm/mach-default/mach_mpspec.h
diff --git a/xen/include/asm-x86/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
similarity index 100%
rename from xen/include/asm-x86/mach-generic/mach_apic.h
rename to xen/arch/x86/include/asm/mach-generic/mach_apic.h
diff --git a/xen/include/asm-x86/mach-generic/mach_mpparse.h b/xen/arch/x86/include/asm/mach-generic/mach_mpparse.h
similarity index 100%
rename from xen/include/asm-x86/mach-generic/mach_mpparse.h
rename to xen/arch/x86/include/asm/mach-generic/mach_mpparse.h
diff --git a/xen/include/asm-x86/machine_kexec.h b/xen/arch/x86/include/asm/machine_kexec.h
similarity index 100%
rename from xen/include/asm-x86/machine_kexec.h
rename to xen/arch/x86/include/asm/machine_kexec.h
diff --git a/xen/include/asm-x86/mc146818rtc.h b/xen/arch/x86/include/asm/mc146818rtc.h
similarity index 100%
rename from xen/include/asm-x86/mc146818rtc.h
rename to xen/arch/x86/include/asm/mc146818rtc.h
diff --git a/xen/include/asm-x86/mce.h b/xen/arch/x86/include/asm/mce.h
similarity index 100%
rename from xen/include/asm-x86/mce.h
rename to xen/arch/x86/include/asm/mce.h
diff --git a/xen/include/asm-x86/mem_access.h b/xen/arch/x86/include/asm/mem_access.h
similarity index 100%
rename from xen/include/asm-x86/mem_access.h
rename to xen/arch/x86/include/asm/mem_access.h
diff --git a/xen/include/asm-x86/mem_paging.h b/xen/arch/x86/include/asm/mem_paging.h
similarity index 100%
rename from xen/include/asm-x86/mem_paging.h
rename to xen/arch/x86/include/asm/mem_paging.h
diff --git a/xen/include/asm-x86/mem_sharing.h b/xen/arch/x86/include/asm/mem_sharing.h
similarity index 100%
rename from xen/include/asm-x86/mem_sharing.h
rename to xen/arch/x86/include/asm/mem_sharing.h
diff --git a/xen/include/asm-x86/microcode.h b/xen/arch/x86/include/asm/microcode.h
similarity index 100%
rename from xen/include/asm-x86/microcode.h
rename to xen/arch/x86/include/asm/microcode.h
diff --git a/xen/include/asm-x86/mm.h b/xen/arch/x86/include/asm/mm.h
similarity index 100%
rename from xen/include/asm-x86/mm.h
rename to xen/arch/x86/include/asm/mm.h
diff --git a/xen/include/asm-x86/monitor.h b/xen/arch/x86/include/asm/monitor.h
similarity index 100%
rename from xen/include/asm-x86/monitor.h
rename to xen/arch/x86/include/asm/monitor.h
diff --git a/xen/include/asm-x86/mpspec.h b/xen/arch/x86/include/asm/mpspec.h
similarity index 100%
rename from xen/include/asm-x86/mpspec.h
rename to xen/arch/x86/include/asm/mpspec.h
diff --git a/xen/include/asm-x86/mpspec_def.h b/xen/arch/x86/include/asm/mpspec_def.h
similarity index 100%
rename from xen/include/asm-x86/mpspec_def.h
rename to xen/arch/x86/include/asm/mpspec_def.h
diff --git a/xen/include/asm-x86/msi.h b/xen/arch/x86/include/asm/msi.h
similarity index 100%
rename from xen/include/asm-x86/msi.h
rename to xen/arch/x86/include/asm/msi.h
diff --git a/xen/include/asm-x86/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
similarity index 100%
rename from xen/include/asm-x86/msr-index.h
rename to xen/arch/x86/include/asm/msr-index.h
diff --git a/xen/include/asm-x86/msr.h b/xen/arch/x86/include/asm/msr.h
similarity index 100%
rename from xen/include/asm-x86/msr.h
rename to xen/arch/x86/include/asm/msr.h
diff --git a/xen/include/asm-x86/mtrr.h b/xen/arch/x86/include/asm/mtrr.h
similarity index 100%
rename from xen/include/asm-x86/mtrr.h
rename to xen/arch/x86/include/asm/mtrr.h
diff --git a/xen/include/asm-x86/multicall.h b/xen/arch/x86/include/asm/multicall.h
similarity index 100%
rename from xen/include/asm-x86/multicall.h
rename to xen/arch/x86/include/asm/multicall.h
diff --git a/xen/include/asm-x86/mwait.h b/xen/arch/x86/include/asm/mwait.h
similarity index 100%
rename from xen/include/asm-x86/mwait.h
rename to xen/arch/x86/include/asm/mwait.h
diff --git a/xen/include/asm-x86/nmi.h b/xen/arch/x86/include/asm/nmi.h
similarity index 100%
rename from xen/include/asm-x86/nmi.h
rename to xen/arch/x86/include/asm/nmi.h
diff --git a/xen/include/asm-x86/nops.h b/xen/arch/x86/include/asm/nops.h
similarity index 100%
rename from xen/include/asm-x86/nops.h
rename to xen/arch/x86/include/asm/nops.h
diff --git a/xen/include/asm-x86/nospec.h b/xen/arch/x86/include/asm/nospec.h
similarity index 100%
rename from xen/include/asm-x86/nospec.h
rename to xen/arch/x86/include/asm/nospec.h
diff --git a/xen/include/asm-x86/numa.h b/xen/arch/x86/include/asm/numa.h
similarity index 100%
rename from xen/include/asm-x86/numa.h
rename to xen/arch/x86/include/asm/numa.h
diff --git a/xen/include/asm-x86/p2m.h b/xen/arch/x86/include/asm/p2m.h
similarity index 100%
rename from xen/include/asm-x86/p2m.h
rename to xen/arch/x86/include/asm/p2m.h
diff --git a/xen/include/asm-x86/page-bits.h b/xen/arch/x86/include/asm/page-bits.h
similarity index 100%
rename from xen/include/asm-x86/page-bits.h
rename to xen/arch/x86/include/asm/page-bits.h
diff --git a/xen/include/asm-x86/page.h b/xen/arch/x86/include/asm/page.h
similarity index 100%
rename from xen/include/asm-x86/page.h
rename to xen/arch/x86/include/asm/page.h
diff --git a/xen/include/asm-x86/paging.h b/xen/arch/x86/include/asm/paging.h
similarity index 100%
rename from xen/include/asm-x86/paging.h
rename to xen/arch/x86/include/asm/paging.h
diff --git a/xen/include/asm-x86/pci.h b/xen/arch/x86/include/asm/pci.h
similarity index 100%
rename from xen/include/asm-x86/pci.h
rename to xen/arch/x86/include/asm/pci.h
diff --git a/xen/include/asm-x86/percpu.h b/xen/arch/x86/include/asm/percpu.h
similarity index 100%
rename from xen/include/asm-x86/percpu.h
rename to xen/arch/x86/include/asm/percpu.h
diff --git a/xen/include/asm-x86/perfc.h b/xen/arch/x86/include/asm/perfc.h
similarity index 100%
rename from xen/include/asm-x86/perfc.h
rename to xen/arch/x86/include/asm/perfc.h
diff --git a/xen/include/asm-x86/perfc_defn.h b/xen/arch/x86/include/asm/perfc_defn.h
similarity index 100%
rename from xen/include/asm-x86/perfc_defn.h
rename to xen/arch/x86/include/asm/perfc_defn.h
diff --git a/xen/include/asm-x86/processor.h b/xen/arch/x86/include/asm/processor.h
similarity index 100%
rename from xen/include/asm-x86/processor.h
rename to xen/arch/x86/include/asm/processor.h
diff --git a/xen/include/asm-x86/psr.h b/xen/arch/x86/include/asm/psr.h
similarity index 100%
rename from xen/include/asm-x86/psr.h
rename to xen/arch/x86/include/asm/psr.h
diff --git a/xen/include/asm-x86/pv/domain.h b/xen/arch/x86/include/asm/pv/domain.h
similarity index 100%
rename from xen/include/asm-x86/pv/domain.h
rename to xen/arch/x86/include/asm/pv/domain.h
diff --git a/xen/include/asm-x86/pv/grant_table.h b/xen/arch/x86/include/asm/pv/grant_table.h
similarity index 100%
rename from xen/include/asm-x86/pv/grant_table.h
rename to xen/arch/x86/include/asm/pv/grant_table.h
diff --git a/xen/include/asm-x86/pv/mm.h b/xen/arch/x86/include/asm/pv/mm.h
similarity index 100%
rename from xen/include/asm-x86/pv/mm.h
rename to xen/arch/x86/include/asm/pv/mm.h
diff --git a/xen/include/asm-x86/pv/shim.h b/xen/arch/x86/include/asm/pv/shim.h
similarity index 100%
rename from xen/include/asm-x86/pv/shim.h
rename to xen/arch/x86/include/asm/pv/shim.h
diff --git a/xen/include/asm-x86/pv/trace.h b/xen/arch/x86/include/asm/pv/trace.h
similarity index 100%
rename from xen/include/asm-x86/pv/trace.h
rename to xen/arch/x86/include/asm/pv/trace.h
diff --git a/xen/include/asm-x86/pv/traps.h b/xen/arch/x86/include/asm/pv/traps.h
similarity index 100%
rename from xen/include/asm-x86/pv/traps.h
rename to xen/arch/x86/include/asm/pv/traps.h
diff --git a/xen/include/asm-x86/random.h b/xen/arch/x86/include/asm/random.h
similarity index 100%
rename from xen/include/asm-x86/random.h
rename to xen/arch/x86/include/asm/random.h
diff --git a/xen/include/asm-x86/regs.h b/xen/arch/x86/include/asm/regs.h
similarity index 100%
rename from xen/include/asm-x86/regs.h
rename to xen/arch/x86/include/asm/regs.h
diff --git a/xen/include/asm-x86/setup.h b/xen/arch/x86/include/asm/setup.h
similarity index 100%
rename from xen/include/asm-x86/setup.h
rename to xen/arch/x86/include/asm/setup.h
diff --git a/xen/include/asm-x86/shadow.h b/xen/arch/x86/include/asm/shadow.h
similarity index 100%
rename from xen/include/asm-x86/shadow.h
rename to xen/arch/x86/include/asm/shadow.h
diff --git a/xen/include/asm-x86/shared.h b/xen/arch/x86/include/asm/shared.h
similarity index 100%
rename from xen/include/asm-x86/shared.h
rename to xen/arch/x86/include/asm/shared.h
diff --git a/xen/include/asm-x86/smp.h b/xen/arch/x86/include/asm/smp.h
similarity index 100%
rename from xen/include/asm-x86/smp.h
rename to xen/arch/x86/include/asm/smp.h
diff --git a/xen/include/asm-x86/softirq.h b/xen/arch/x86/include/asm/softirq.h
similarity index 100%
rename from xen/include/asm-x86/softirq.h
rename to xen/arch/x86/include/asm/softirq.h
diff --git a/xen/include/asm-x86/spec_ctrl.h b/xen/arch/x86/include/asm/spec_ctrl.h
similarity index 100%
rename from xen/include/asm-x86/spec_ctrl.h
rename to xen/arch/x86/include/asm/spec_ctrl.h
diff --git a/xen/include/asm-x86/spec_ctrl_asm.h b/xen/arch/x86/include/asm/spec_ctrl_asm.h
similarity index 100%
rename from xen/include/asm-x86/spec_ctrl_asm.h
rename to xen/arch/x86/include/asm/spec_ctrl_asm.h
diff --git a/xen/include/asm-x86/spinlock.h b/xen/arch/x86/include/asm/spinlock.h
similarity index 100%
rename from xen/include/asm-x86/spinlock.h
rename to xen/arch/x86/include/asm/spinlock.h
diff --git a/xen/include/asm-x86/string.h b/xen/arch/x86/include/asm/string.h
similarity index 100%
rename from xen/include/asm-x86/string.h
rename to xen/arch/x86/include/asm/string.h
diff --git a/xen/include/asm-x86/system.h b/xen/arch/x86/include/asm/system.h
similarity index 100%
rename from xen/include/asm-x86/system.h
rename to xen/arch/x86/include/asm/system.h
diff --git a/xen/include/asm-x86/tboot.h b/xen/arch/x86/include/asm/tboot.h
similarity index 100%
rename from xen/include/asm-x86/tboot.h
rename to xen/arch/x86/include/asm/tboot.h
diff --git a/xen/include/asm-x86/time.h b/xen/arch/x86/include/asm/time.h
similarity index 100%
rename from xen/include/asm-x86/time.h
rename to xen/arch/x86/include/asm/time.h
diff --git a/xen/include/asm-x86/trace.h b/xen/arch/x86/include/asm/trace.h
similarity index 100%
rename from xen/include/asm-x86/trace.h
rename to xen/arch/x86/include/asm/trace.h
diff --git a/xen/include/asm-x86/traps.h b/xen/arch/x86/include/asm/traps.h
similarity index 100%
rename from xen/include/asm-x86/traps.h
rename to xen/arch/x86/include/asm/traps.h
diff --git a/xen/include/asm-x86/types.h b/xen/arch/x86/include/asm/types.h
similarity index 100%
rename from xen/include/asm-x86/types.h
rename to xen/arch/x86/include/asm/types.h
diff --git a/xen/include/asm-x86/uaccess.h b/xen/arch/x86/include/asm/uaccess.h
similarity index 100%
rename from xen/include/asm-x86/uaccess.h
rename to xen/arch/x86/include/asm/uaccess.h
diff --git a/xen/include/asm-x86/unaligned.h b/xen/arch/x86/include/asm/unaligned.h
similarity index 100%
rename from xen/include/asm-x86/unaligned.h
rename to xen/arch/x86/include/asm/unaligned.h
diff --git a/xen/include/asm-x86/vm_event.h b/xen/arch/x86/include/asm/vm_event.h
similarity index 100%
rename from xen/include/asm-x86/vm_event.h
rename to xen/arch/x86/include/asm/vm_event.h
diff --git a/xen/include/asm-x86/vpmu.h b/xen/arch/x86/include/asm/vpmu.h
similarity index 100%
rename from xen/include/asm-x86/vpmu.h
rename to xen/arch/x86/include/asm/vpmu.h
diff --git a/xen/include/asm-x86/x86-defns.h b/xen/arch/x86/include/asm/x86-defns.h
similarity index 100%
rename from xen/include/asm-x86/x86-defns.h
rename to xen/arch/x86/include/asm/x86-defns.h
diff --git a/xen/include/asm-x86/x86-vendors.h b/xen/arch/x86/include/asm/x86-vendors.h
similarity index 100%
rename from xen/include/asm-x86/x86-vendors.h
rename to xen/arch/x86/include/asm/x86-vendors.h
diff --git a/xen/include/asm-x86/x86_64/efibind.h b/xen/arch/x86/include/asm/x86_64/efibind.h
similarity index 100%
rename from xen/include/asm-x86/x86_64/efibind.h
rename to xen/arch/x86/include/asm/x86_64/efibind.h
diff --git a/xen/include/asm-x86/x86_64/elf.h b/xen/arch/x86/include/asm/x86_64/elf.h
similarity index 100%
rename from xen/include/asm-x86/x86_64/elf.h
rename to xen/arch/x86/include/asm/x86_64/elf.h
diff --git a/xen/include/asm-x86/x86_64/page.h b/xen/arch/x86/include/asm/x86_64/page.h
similarity index 100%
rename from xen/include/asm-x86/x86_64/page.h
rename to xen/arch/x86/include/asm/x86_64/page.h
diff --git a/xen/include/asm-x86/x86_64/regs.h b/xen/arch/x86/include/asm/x86_64/regs.h
similarity index 100%
rename from xen/include/asm-x86/x86_64/regs.h
rename to xen/arch/x86/include/asm/x86_64/regs.h
diff --git a/xen/include/asm-x86/x86_64/system.h b/xen/arch/x86/include/asm/x86_64/system.h
similarity index 100%
rename from xen/include/asm-x86/x86_64/system.h
rename to xen/arch/x86/include/asm/x86_64/system.h
diff --git a/xen/include/asm-x86/x86_64/uaccess.h b/xen/arch/x86/include/asm/x86_64/uaccess.h
similarity index 100%
rename from xen/include/asm-x86/x86_64/uaccess.h
rename to xen/arch/x86/include/asm/x86_64/uaccess.h
diff --git a/xen/include/asm-x86/x86_emulate.h b/xen/arch/x86/include/asm/x86_emulate.h
similarity index 89%
rename from xen/include/asm-x86/x86_emulate.h
rename to xen/arch/x86/include/asm/x86_emulate.h
index 9125807e24fa..c184c0053c93 100644
--- a/xen/include/asm-x86/x86_emulate.h
+++ b/xen/arch/x86/include/asm/x86_emulate.h
@@ -16,6 +16,6 @@
 #include <xen/lib.h>
 #include <asm/regs.h>
 
-#include "../../arch/x86/x86_emulate/x86_emulate.h"
+#include "../../x86_emulate/x86_emulate.h"
 
 #endif /* __ASM_X86_X86_EMULATE_H__ */
diff --git a/xen/include/asm-x86/xenoprof.h b/xen/arch/x86/include/asm/xenoprof.h
similarity index 100%
rename from xen/include/asm-x86/xenoprof.h
rename to xen/arch/x86/include/asm/xenoprof.h
diff --git a/xen/include/asm-x86/xstate.h b/xen/arch/x86/include/asm/xstate.h
similarity index 100%
rename from xen/include/asm-x86/xstate.h
rename to xen/arch/x86/include/asm/xstate.h
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index d2fdc28df3e0..541e462d961d 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -12,7 +12,7 @@ struct efi_rs_state {
 #ifdef CONFIG_X86
  /*
   * The way stacks get set up leads to them always being on an 8-byte
-  * boundary not evenly divisible by 16 (see asm-x86/current.h). The EFI ABI,
+  * boundary not evenly divisible by 16 (see asm/current.h). The EFI ABI,
   * just like the CPU one, however requires stacks to be 16-byte aligned
   * before every function call. Since the compiler assumes this (unless
   * passing it -mpreferred-stack-boundary=3), it wouldn't generate code to
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index d0baaa2ecd20..653f1ab09f63 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -245,7 +245,7 @@ PAGE_LIST_HEAD(page_broken_list);
 
 /*
  * first_valid_mfn is exported because it is use in ARM specific NUMA
- * helpers. See comment in asm-arm/numa.h.
+ * helpers. See comment in arch/arm/include/asm/numa.h.
  */
 mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
 
diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
index 088c238a504a..08834f140266 100644
--- a/xen/include/xen/acpi.h
+++ b/xen/include/xen/acpi.h
@@ -40,8 +40,9 @@
 #define ACPI_MADT_GET_TRIGGER(inti)	ACPI_MADT_GET_(TRIGGER, inti)
 
 /*
- * Fixmap pages to reserve for ACPI boot-time tables (see asm-x86/fixmap.h or
- * asm-arm/config.h, 64 pages(256KB) is large enough for most cases.)
+ * Fixmap pages to reserve for ACPI boot-time tables (see
+ * arch/x86/include/asm/fixmap.h or arch/arm/include/asm/config.h,
+ * 64 pages(256KB) is large enough for most cases.)
  */
 #define NUM_FIXMAP_ACPI_PAGES  64
 
diff --git a/xen/include/xen/bitmap.h b/xen/include/xen/bitmap.h
index e9175ab54a59..3caf92c76d6d 100644
--- a/xen/include/xen/bitmap.h
+++ b/xen/include/xen/bitmap.h
@@ -14,7 +14,7 @@
  *
  * Function implementations generic to all architectures are in
  * lib/bitmap.c.  Functions implementations that are architecture
- * specific are in various include/asm-<arch>/bitops.h headers
+ * specific are in various asm/bitops.h headers
  * and other arch/<arch> specific files.
  *
  * See lib/bitmap.c for more details.
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231206.399932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzG-0007O8-6v; Thu, 25 Nov 2021 13:40:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231206.399932; Thu, 25 Nov 2021 13:40:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzG-0007O1-3X; Thu, 25 Nov 2021 13:40:30 +0000
Received: by outflank-mailman (input) for mailman id 231206;
 Thu, 25 Nov 2021 13:40:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzF-0007NX-3n
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:29 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b4c2276-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:40:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b4c2276-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847621;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=wmNH3A9qJXFRS/eyXa08ZeTcOVu9s+jKh3RpHKzVty8=;
  b=TyyJh4jPz7UbD5ElO4P/FzHUSt97Sqpdj9GYLWHbk4fHHFPD/eNKrNm6
   DXVgtwqgfFQ21e7jFPRdlzgdQy5wg84UX2+7Jof/vCHWB/6pmHHh7u055
   RLTFN3VgOhfT6vMs4LIuMkL5+jOOGw+D60H7st1gbKuDSl8Ohvs9AKK1O
   w=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 1I17/kwsjJOPsFeVViodtsxi29tNvWQ05cz3lVfF5Q2yO2PelGZVbzQsNrXovBycRRqfV8HuWg
 VEptMIemiXBw9llmlfPJIfv5zIUkcXM+1PzUoVueR466zAgXxOWE/PCSZXYoo3b0GszX6nmupc
 Avo9F0zehVI/ZkElIXBZUDgjp6ii80SbTGATRB/Xcrow5vgQwaWXHlH0wbug0iyyODgMu196kA
 ma5yectAadv0qpUqNyrlPk7egtBW7dRyC3OSgmjiBMJMq+L1/tnwypRLl7oMf3Qth134+LHBI8
 Rrr/AjT/l+53y2SD1wjbrfsS
X-SBRS: 5.1
X-MesageID: 59005956
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:oLAi6qowgYLqDZAA2t64PUNc+xBeBmJiYBIvgKrLsJaIsI4StFCzt
 garIBmBP67eZzCkKtt/PYvj8kgA6pOHn9JgTVZspCowHioX+JuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2ILkW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnaSydyQLG6joor8idQEHGAJ4IqZl5qCSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFIoZpnFnyyCfFfs8SIrPa67L+cVZzHE7gcUm8fP2O
 ptBMWc+MUqojxtnAEw0UbNmzKSS3F71WRNImGufufM2yj2GpOB2+Oe0a4eEEjCQfu1Jl0ORv
 Ura/GD0BB4LOdjZwj2Amlq0j/LLtTP2XsQVDrLQ3vRtileCy3cTDBATXF2Trvywi0r4UNVaQ
 2Qe9zAyt6E0+AquR8PkQhyjiHeeu1gXXN84O+wl6imdx6zM+QGbC2MYCDlbZ7QOuNctQD021
 neAh97zGSF0q7qRVG6c8bGP6zi1PEA9NnQebCUJSQ8E5djLo4wpiB/LCNF5H8adjMDxGDz26
 yCHqm45nbp7pcoW1Kyg7xbHii22t5zKSSYx5wPKTiSk6B90YMiuYInAwWbc6fFMPYOIVG6rt
 XIPm9WdxO0WBJTLnyuIKM0VBLCz7P+BOTfBqVRuA5Us+Tmr93O5O4tX5VlWJlpvdMANejbrY
 UrakQJX+JJXenCtaMdfaoawENgjzLKmG87sUPvVdfJRbpM3fwiClAlxYWaA0marl1Ij+YkvN
 JHefcuyAHIyDaV80CHwV+obyaUsxC012SXUX5+T5x2myrOfYHe9Q7YZPFaAY+Y14bnCqwLQm
 /5TOMeHxA9WePHvaSnQt4gIJBYFKmZTLZvxrcpQdOKKPAt9MG4kAv7Vh7gmfuRNlK1PmuDF1
 nq0QENfxRz0gnivAQeAZ21nabjvdY1itn99NispVX6r3H45aIrp86YbdLMwZ7As8OElxvlxJ
 9EGdtuBBLJTSz3B0zUbcZT56odlcXyWaRmmZnT/JmJlJtg5GlKPqoSMkhbTGDcmNiiJlukbp
 pmajTz9WcUIZAJ9B+XId6f6p7+uhkQ1lOV3VkrOB9BcfkTw7YRnQxDMYu8Lz9IkckuamGbDv
 +qCKVJB/LSW/ddpmDXcrfnc99/BLgdoIqZN84A3B56SPDKSwGesyJQovA2gLWGEDzOcFElPi
 IxoIxDA3B8vwAkiX2lUSe8DIUcCCzzH/eIy8+icNC+XB2lH85s5SpV84eFBt7dW2phSshasV
 0SE97FyYOvSZ5y6QQ5BdVB7P4xvMM34fRGIs5wIzLjSvncrrNJrr20OV/VztMCtBOQsa950q
 QvQkMUX9xa+mnIX3iWu1UhpG5C3BiVYCc0P78hCaKey01ZD4gwSMPT0V36tiLnSOookD6XfC
 mLN7EY0r+8HnRSqnrtaPSWl4NexcrxS4k0XlwFbeAzS8jcH79dutCBsHf0MZlw95n16PyhbY
 ACH7mV5eveD+SlGns9GUzz+Eg1NHkTBqEfw10EIhCvSSEzxDj7BK2g0OOCs+kEF8j0DImgHr
 e/AkGu1Ayz3eMzR3zcpXRI3ofLUUtEspBbJn9qqHprZEsBiMyblmKKneUEBtwDjXZEqnETCq
 OQzpLRwZKT3ODQ+uao+D4XGh70cRArdfD5JQO17/bNPFmbZIWng1T+LIkG3W8VMO/2VrhPoV
 50wfppCDk3s2jyPozYXAb83D4V1xPN5tsAffr7LJHIdt+fNpDRer5+NpDP1g3UmQosynJ9le
 J/RbT+LDkeZmWBQxz3WtMBBN2e1PYsEaQn70Lzn+ekFDcte4uRlcEV02bqopXSFdgBg+kvM7
 g/EYqbXyc1kyJhtwNSwQvkSWV3sJIOhTvmM/SCyr89KPIHGPsr5vg8IrkXqYlZNNrwLVtUrz
 bmAvbYbBq8eUGrah4wBp6S8Kg==
IronPort-HdrOrdr: A9a23:d8RPqagOpnmIJjwZs2Jidhj/BXBQXtAji2hC6mlwRA09TySZ//
 rAoB19726QtN9xYgBGpTnuAsi9qB/nmKKdgrNhX4tKPjOHhILAFugLhuHfKlXbaknDH4Vmu5
 uIHZITNDSJNykYsfrH
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="59005956"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Alexandru Isaila
	<aisaila@bitdefender.com>, Wei Liu <wl@xen.org>, Jun Nakajima
	<jun.nakajima@intel.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Alistair Francis <alistair.francis@wdc.com>, "Daniel
 De Graaf" <dgdegra@tycho.nsa.gov>, Konrad Rzeszutek Wilk
	<konrad.wilk@oracle.com>, Kevin Tian <kevin.tian@intel.com>, Jan Beulich
	<jbeulich@suse.com>, Connor Davis <connojdavis@gmail.com>, Doug Goldstein
	<cardoe@cardoe.com>, Bertrand Marquis <bertrand.marquis@arm.com>, Ian Jackson
	<iwj@xenproject.org>, Ross Lagerwall <ross.lagerwall@citrix.com>, "Bob
 Eshleman" <bobbyeshleman@gmail.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Paul
 Durrant" <paul@xen.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, Lukasz Hawrylko
	<lukasz.hawrylko@linux.intel.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, George Dunlap
	<george.dunlap@citrix.com>
Subject: [XEN PATCH v8 00/47] xen: Build system improvements, now with out-of-tree build!
Date: Thu, 25 Nov 2021 13:39:19 +0000
Message-ID: <20211125134006.1076646-1-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Patch series available in this git branch:
https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git br.build-system-xen-v8

v8:
    Mostly rework of v7. With many patch already applied.
    Some detail changes that are spread through many patches:
    - `make cloc` recipe should now work throughout the series, update of it is
      done in 3 patches.
    - new patch "build: fix enforce unique symbols for recent clang version"
      to fix an issue with clang.
    - introducing $(srctree) and $(objtree) earlier
    - introducing $(srcdir) as shortcut for $(srctree)/$(src)
    - introduce usage of -iquote instead of -I in some cases
    More detail change log can be found in patches notes.

    Also this v8 present a work-in-progress of the ability to do out-of-tree
    build without setting VPATH. This is presented as an alternative to force
    use of out-of-tree build. As the last patch show, it allows to build the
    xen-shim without the linkfarm and we don't need to make any other changes
    to any thing that build xen (osstest, distribution packages, xen.git, ...,
    and developers finger macros). The patches are only there as WIP / RFC as
    they were some concern about the usefulness and extra changes needed.
    We can decide whether those changes are good or if this is too much and we
    should force out-of-tree build for the hypervisor.

v7:
    Out-of-tree build!

    This mean many more patches. Everything after patch 27 is new.

    There's a few new patch before that, but otherwise are rework of v6.

Hi,

I have work toward building Xen (the hypervisor) with Linux's build system,
Kbuild.

The main reason for that is to be able to have out-of-tree build. It's annoying
when a build fail because of the pvshim. Other benefit is a much faster
rebuild, and `make clean` doesn't take ages, and better dependencies to figure
out what needs to be rebuild.

Cheers,

Anthony PERARD (47):
  build: factorise generation of the linker scripts
  xen: move include/asm-* to arch/*/include/asm
  build: generate "include/xen/compile.h" with if_changed
  build: set XEN_BUILD_EFI earlier
  build: adjust $(TARGET).efi creation in arch/arm
  build: avoid re-executing the main Makefile by introducing build.mk
  build: set ALL_OBJS to main Makefile; move prelink.o to main Makefile
  build: prepare to always invoke $(MAKE) from xen/, use $(obj)
  build: rework test/livepatch/Makefile
  build: rework cloc recipe
  build: fix enforce unique symbols for recent clang version
  build: build everything from the root dir, use obj=$subdir
  build: introduce if_changed_deps
  build: rename __LINKER__ to LINKER_SCRIPT
  build: hook kconfig into xen build system
  xen/tools/kconfig: fix build with -Wdeclaration-after-statement
  build: remove KBUILD_ specific from Makefile.host
  build: handle always-y and hostprogs-always-y
  build: start building the tools with the main makefiles
  build: add headers path to CFLAGS once for all archs
  build: generate x86's asm-macros.h with filechk
  build: clean-up "clean" rules of duplication
  build: rework "clean" to clean from the root dir
  build: use main rune to build host binary x86's mkelf32 and mkreloc
  build: rework coverage and ubsan CFLAGS handling
  build,x86: remove the need for build32.mk
  build: grab common EFI source files in arch specific dir
  build: replace $(BASEDIR) by $(objtree)
  build: replace $(BASEDIR) and use $(srctree)
  build: rework "headers*.chk" prerequisite in include/
  build: specify source tree in include/ for prerequisite
  build: shuffle main Makefile
  build: adding out-of-tree support to the xen build
  build: add %.E targets
  RFC, no-VPATH: Kconfig: tell where Kconfig files are
  RFC, no-VPATH: Kconfig: only ready auto.conf from objtree
  RFC, no-VPATH: build: remove --include-dir option from MAKEFLAGS
  WIP, no-VPATH: rework Makefile.host
  RFC, no-VPATH: x86/boot: workaround gcc including the wrong file
  RFC, no-VPATH: prepend $(srctree) to source prerequisite
  WIP, no-VPATH: build object from generated C files
  RFC, no-VPATH: workaround includes in xsm/flask
  WIP, no-VPATH: build object from generated assembly source file
  WIP, no-VPATH: build object from S source to be in build_in.o
  WIP, no-VPATH: build xen, out-of-tree!
  RFC, no-VPATH: remove check for clean source tree for out-of-tree
    builds
  WIP: no more link farming for xen-shim

 .gitignore                                    |   6 +-
 MAINTAINERS                                   |  37 +-
 tools/firmware/xen-dir/Makefile               |  71 +--
 tools/include/Makefile                        |   2 +-
 tools/misc/xen-access.c                       |   4 +-
 tools/tests/vhpet/Makefile                    |   2 +-
 xen/Kconfig                                   |   4 +-
 xen/Makefile                                  | 367 +++++++++-------
 xen/Rules.mk                                  | 256 +++++++----
 xen/arch/arm/Makefile                         |  59 +--
 xen/arch/arm/README.LinuxPrimitives           |  10 +-
 xen/arch/arm/arch.mk                          |   4 +-
 xen/arch/arm/arm32/head.S                     |   2 +-
 xen/arch/arm/arm64/head.S                     |   2 +-
 xen/arch/arm/efi/Makefile                     |   4 +-
 .../asm-arm => arch/arm/include/asm}/acpi.h   |   0
 .../arm/include/asm}/alternative.h            |   0
 .../asm-arm => arch/arm/include/asm}/altp2m.h |   0
 .../arm/include/asm}/arm32/atomic.h           |   0
 .../arm/include/asm}/arm32/bitops.h           |   0
 .../arm/include/asm}/arm32/bug.h              |   0
 .../arm/include/asm}/arm32/cmpxchg.h          |   0
 .../arm/include/asm}/arm32/flushtlb.h         |   0
 .../arm/include/asm}/arm32/insn.h             |   0
 .../arm/include/asm}/arm32/io.h               |   0
 .../arm/include/asm}/arm32/macros.h           |   0
 .../arm/include/asm}/arm32/mm.h               |   0
 .../arm/include/asm}/arm32/page.h             |   0
 .../arm/include/asm}/arm32/processor.h        |   0
 .../arm/include/asm}/arm32/sysregs.h          |   0
 .../arm/include/asm}/arm32/system.h           |   0
 .../arm/include/asm}/arm32/traps.h            |   0
 .../arm/include/asm}/arm32/vfp.h              |   0
 .../arm/include/asm}/arm64/atomic.h           |   0
 .../arm/include/asm}/arm64/bitops.h           |   0
 .../arm/include/asm}/arm64/brk.h              |   0
 .../arm/include/asm}/arm64/bug.h              |   0
 .../arm/include/asm}/arm64/cmpxchg.h          |   0
 .../arm/include/asm}/arm64/cpufeature.h       |   0
 .../arm/include/asm}/arm64/efibind.h          |   0
 .../arm/include/asm}/arm64/flushtlb.h         |   0
 .../arm/include/asm}/arm64/hsr.h              |   0
 .../arm/include/asm}/arm64/insn.h             |   0
 .../arm/include/asm}/arm64/io.h               |   0
 .../arm/include/asm}/arm64/macros.h           |   0
 .../arm/include/asm}/arm64/mm.h               |   0
 .../arm/include/asm}/arm64/page.h             |   0
 .../arm/include/asm}/arm64/processor.h        |   0
 .../arm/include/asm}/arm64/sysregs.h          |   0
 .../arm/include/asm}/arm64/system.h           |   0
 .../arm/include/asm}/arm64/traps.h            |   0
 .../arm/include/asm}/arm64/vfp.h              |   0
 .../arm/include/asm}/asm_defns.h              |   0
 .../asm-arm => arch/arm/include/asm}/atomic.h |   0
 .../asm-arm => arch/arm/include/asm}/bitops.h |   0
 .../asm-arm => arch/arm/include/asm}/bug.h    |   0
 .../arm/include/asm}/byteorder.h              |   0
 .../asm-arm => arch/arm/include/asm}/cache.h  |   0
 .../arm/include/asm}/cadence-uart.h           |   0
 .../asm-arm => arch/arm/include/asm}/config.h |   2 +-
 .../asm-arm => arch/arm/include/asm}/cpregs.h |   0
 .../arm/include/asm}/cpuerrata.h              |   0
 .../arm/include/asm}/cpufeature.h             |   0
 .../arm/include/asm}/current.h                |   0
 .../arm/include/asm}/debugger.h               |   0
 .../asm-arm => arch/arm/include/asm}/delay.h  |   0
 .../asm-arm => arch/arm/include/asm}/desc.h   |   0
 .../asm-arm => arch/arm/include/asm}/device.h |   0
 .../asm-arm => arch/arm/include/asm}/div64.h  |   0
 .../asm-arm => arch/arm/include/asm}/domain.h |   0
 .../arm/include/asm}/domain_build.h           |   0
 .../arm/include/asm}/early_printk.h           |   0
 .../arm/include/asm}/efibind.h                |   0
 .../asm-arm => arch/arm/include/asm}/elf.h    |   0
 .../asm-arm => arch/arm/include/asm}/event.h  |   0
 .../arm/include/asm}/exynos4210-uart.h        |   0
 .../arm/include/asm}/flushtlb.h               |   0
 .../asm-arm => arch/arm/include/asm}/gic.h    |   0
 .../arm/include/asm}/gic_v3_defs.h            |   0
 .../arm/include/asm}/gic_v3_its.h             |   0
 .../arm/include/asm}/grant_table.h            |   0
 .../arm/include/asm}/guest_access.h           |   0
 .../arm/include/asm}/guest_atomics.h          |   0
 .../arm/include/asm}/guest_walk.h             |   0
 .../arm/include/asm}/hardirq.h                |   0
 .../asm-arm => arch/arm/include/asm}/hsr.h    |   0
 .../arm/include/asm}/hypercall.h              |   0
 .../asm-arm => arch/arm/include/asm}/init.h   |   0
 .../asm-arm => arch/arm/include/asm}/insn.h   |   0
 .../asm-arm => arch/arm/include/asm}/io.h     |   0
 .../asm-arm => arch/arm/include/asm}/iocap.h  |   0
 .../asm-arm => arch/arm/include/asm}/iommu.h  |   0
 .../arm/include/asm}/iommu_fwspec.h           |   0
 .../asm-arm => arch/arm/include/asm}/ioreq.h  |   0
 .../asm-arm => arch/arm/include/asm}/irq.h    |   0
 .../asm-arm => arch/arm/include/asm}/kernel.h |   0
 .../arm/include/asm}/livepatch.h              |   0
 .../asm-arm => arch/arm/include/asm}/lpae.h   |   0
 .../asm-arm => arch/arm/include/asm}/macros.h |   0
 .../arm/include/asm}/mem_access.h             |   0
 .../asm-arm => arch/arm/include/asm}/mm.h     |   0
 .../asm-arm => arch/arm/include/asm}/mmio.h   |   0
 .../arm/include/asm}/monitor.h                |   0
 .../arm/include/asm}/new_vgic.h               |   0
 .../asm-arm => arch/arm/include/asm}/nospec.h |   0
 .../asm-arm => arch/arm/include/asm}/numa.h   |   0
 .../asm-arm => arch/arm/include/asm}/p2m.h    |   0
 .../arm/include/asm}/page-bits.h              |   0
 .../asm-arm => arch/arm/include/asm}/page.h   |   0
 .../asm-arm => arch/arm/include/asm}/paging.h |   0
 .../asm-arm => arch/arm/include/asm}/pci.h    |   0
 .../asm-arm => arch/arm/include/asm}/percpu.h |   0
 .../asm-arm => arch/arm/include/asm}/perfc.h  |   0
 .../arm/include/asm}/perfc_defn.h             |   0
 .../arm/include/asm}/pl011-uart.h             |   0
 .../arm/include/asm}/platform.h               |   0
 .../arm/include/asm}/platforms/exynos5.h      |   0
 .../arm/include/asm}/platforms/midway.h       |   0
 .../arm/include/asm}/platforms/omap5.h        |   0
 .../arm/include/asm}/platforms/vexpress.h     |   0
 .../asm}/platforms/xilinx-zynqmp-eemi.h       |   0
 .../arm/include/asm}/processor.h              |   0
 .../arm/include/asm}/procinfo.h               |   0
 .../asm-arm => arch/arm/include/asm}/psci.h   |   0
 .../asm-arm => arch/arm/include/asm}/random.h |   0
 .../asm-arm => arch/arm/include/asm}/regs.h   |   0
 .../arm/include/asm}/scif-uart.h              |   0
 .../asm-arm => arch/arm/include/asm}/setup.h  |   0
 .../arm/include/asm}/short-desc.h             |   0
 .../asm-arm => arch/arm/include/asm}/smccc.h  |   0
 .../asm-arm => arch/arm/include/asm}/smp.h    |   0
 .../arm/include/asm}/softirq.h                |   0
 .../arm/include/asm}/spinlock.h               |   0
 .../asm-arm => arch/arm/include/asm}/string.h |   0
 .../arm/include/asm}/sysregs.h                |   0
 .../asm-arm => arch/arm/include/asm}/system.h |   0
 .../arm/include/asm}/tee/optee_msg.h          |   0
 .../arm/include/asm}/tee/optee_rpc_cmd.h      |   0
 .../arm/include/asm}/tee/optee_smc.h          |   0
 .../arm/include/asm}/tee/tee.h                |   0
 .../asm-arm => arch/arm/include/asm}/time.h   |   0
 .../asm-arm => arch/arm/include/asm}/trace.h  |   0
 .../asm-arm => arch/arm/include/asm}/traps.h  |   0
 .../asm-arm => arch/arm/include/asm}/types.h  |   0
 .../asm-arm => arch/arm/include/asm}/vfp.h    |   0
 .../arm/include/asm}/vgic-emul.h              |   0
 .../asm-arm => arch/arm/include/asm}/vgic.h   |   0
 .../arm/include/asm}/vm_event.h               |   0
 .../asm-arm => arch/arm/include/asm}/vpl011.h |   0
 .../asm-arm => arch/arm/include/asm}/vpsci.h  |   0
 .../asm-arm => arch/arm/include/asm}/vreg.h   |   0
 .../asm-arm => arch/arm/include/asm}/vtimer.h |   0
 .../arm/include/asm}/xenoprof.h               |   0
 xen/arch/arm/smpboot.c                        |   2 +-
 xen/arch/arm/vpsci.c                          |   2 +-
 xen/arch/riscv/arch.mk                        |   1 -
 .../riscv/include/asm}/config.h               |   0
 xen/arch/x86/Makefile                         | 204 ++++-----
 xen/arch/x86/Rules.mk                         |   4 +-
 xen/arch/x86/arch.mk                          |  54 ++-
 xen/arch/x86/boot/Makefile                    |  62 ++-
 xen/arch/x86/boot/build32.mk                  |  40 --
 xen/arch/x86/boot/head.S                      |   4 +-
 xen/arch/x86/efi/Makefile                     |  11 +-
 .../asm-x86 => arch/x86/include/asm}/acpi.h   |   0
 .../x86/include/asm}/alternative-asm.h        |   0
 .../x86/include/asm}/alternative.h            |   0
 .../asm-x86 => arch/x86/include/asm}/altp2m.h |   0
 .../asm-x86 => arch/x86/include/asm}/amd.h    |   0
 .../asm-x86 => arch/x86/include/asm}/apic.h   |   0
 .../x86/include/asm}/apicdef.h                |   0
 .../x86/include/asm}/asm-defns.h              |   0
 .../x86/include/asm}/asm_defns.h              |   0
 .../asm-x86 => arch/x86/include/asm}/atomic.h |   0
 .../asm-x86 => arch/x86/include/asm}/bitops.h |   0
 .../asm-x86 => arch/x86/include/asm}/bug.h    |   0
 .../x86/include/asm}/byteorder.h              |   0
 .../x86/include/asm}/bzimage.h                |   0
 .../asm-x86 => arch/x86/include/asm}/cache.h  |   0
 .../asm-x86 => arch/x86/include/asm}/compat.h |   0
 .../asm-x86 => arch/x86/include/asm}/config.h |   0
 .../x86/include/asm}/cpufeature.h             |   0
 .../x86/include/asm}/cpufeatures.h            |   0
 .../x86/include/asm}/cpufeatureset.h          |   0
 .../asm-x86 => arch/x86/include/asm}/cpuid.h  |   0
 .../x86/include/asm}/cpuidle.h                |   0
 .../x86/include/asm}/current.h                |   2 +-
 .../x86/include/asm}/debugger.h               |   0
 .../x86/include/asm}/debugreg.h               |   0
 .../asm-x86 => arch/x86/include/asm}/delay.h  |   0
 .../asm-x86 => arch/x86/include/asm}/desc.h   |   0
 .../asm-x86 => arch/x86/include/asm}/device.h |   0
 .../asm-x86 => arch/x86/include/asm}/div64.h  |   0
 .../x86/include/asm}/dom0_build.h             |   0
 .../asm-x86 => arch/x86/include/asm}/domain.h |   2 +-
 .../asm-x86 => arch/x86/include/asm}/e820.h   |   0
 .../asm-x86 => arch/x86/include/asm}/edd.h    |   0
 .../x86/include/asm}/efibind.h                |   0
 .../asm-x86 => arch/x86/include/asm}/elf.h    |   0
 .../asm-x86 => arch/x86/include/asm}/event.h  |   0
 .../asm-x86 => arch/x86/include/asm}/fixmap.h |   0
 .../x86/include/asm}/flushtlb.h               |   0
 .../x86/include/asm}/genapic.h                |   0
 .../x86/include/asm}/grant_table.h            |   0
 .../asm-x86 => arch/x86/include/asm}/guest.h  |   0
 .../x86/include/asm}/guest/hyperv-hcall.h     |   0
 .../x86/include/asm}/guest/hyperv-tlfs.h      |   0
 .../x86/include/asm}/guest/hyperv.h           |   0
 .../x86/include/asm}/guest/hypervisor.h       |   0
 .../x86/include/asm}/guest/pvh-boot.h         |   0
 .../x86/include/asm}/guest/xen-hcall.h        |   0
 .../x86/include/asm}/guest/xen.h              |   0
 .../x86/include/asm}/guest_access.h           |   0
 .../x86/include/asm}/guest_atomics.h          |   0
 .../x86/include/asm}/guest_pt.h               |   0
 .../asm-x86 => arch/x86/include/asm}/hap.h    |   0
 .../x86/include/asm}/hardirq.h                |   0
 .../asm-x86 => arch/x86/include/asm}/hpet.h   |   0
 .../x86/include/asm}/hvm/asid.h               |   0
 .../x86/include/asm}/hvm/cacheattr.h          |   0
 .../x86/include/asm}/hvm/domain.h             |   0
 .../x86/include/asm}/hvm/emulate.h            |   0
 .../x86/include/asm}/hvm/grant_table.h        |   0
 .../x86/include/asm}/hvm/guest_access.h       |   0
 .../x86/include/asm}/hvm/hvm.h                |   0
 .../asm-x86 => arch/x86/include/asm}/hvm/io.h |   0
 .../x86/include/asm}/hvm/ioreq.h              |   0
 .../x86/include/asm}/hvm/irq.h                |   0
 .../x86/include/asm}/hvm/monitor.h            |   0
 .../x86/include/asm}/hvm/nestedhvm.h          |   0
 .../x86/include/asm}/hvm/save.h               |   0
 .../x86/include/asm}/hvm/support.h            |   0
 .../x86/include/asm}/hvm/svm/asid.h           |   0
 .../x86/include/asm}/hvm/svm/emulate.h        |   0
 .../x86/include/asm}/hvm/svm/intr.h           |   0
 .../x86/include/asm}/hvm/svm/nestedsvm.h      |   0
 .../x86/include/asm}/hvm/svm/svm.h            |   0
 .../x86/include/asm}/hvm/svm/svmdebug.h       |   0
 .../x86/include/asm}/hvm/svm/vmcb.h           |   0
 .../x86/include/asm}/hvm/trace.h              |   0
 .../x86/include/asm}/hvm/vcpu.h               |   0
 .../x86/include/asm}/hvm/vioapic.h            |   0
 .../x86/include/asm}/hvm/viridian.h           |   0
 .../x86/include/asm}/hvm/vlapic.h             |   0
 .../x86/include/asm}/hvm/vm_event.h           |   0
 .../x86/include/asm}/hvm/vmx/vmcs.h           |   0
 .../x86/include/asm}/hvm/vmx/vmx.h            |   0
 .../x86/include/asm}/hvm/vmx/vvmx.h           |   0
 .../x86/include/asm}/hvm/vpic.h               |   0
 .../x86/include/asm}/hvm/vpt.h                |   0
 .../x86/include/asm}/hypercall.h              |   0
 .../asm-x86 => arch/x86/include/asm}/i387.h   |   0
 .../asm-x86 => arch/x86/include/asm}/init.h   |   0
 .../x86/include/asm}/invpcid.h                |   0
 .../asm-x86 => arch/x86/include/asm}/io.h     |   0
 .../x86/include/asm}/io_apic.h                |   0
 .../asm-x86 => arch/x86/include/asm}/iocap.h  |   0
 .../asm-x86 => arch/x86/include/asm}/iommu.h  |   0
 .../asm-x86 => arch/x86/include/asm}/ioreq.h  |   0
 .../asm-x86 => arch/x86/include/asm}/irq.h    |   0
 .../asm-x86 => arch/x86/include/asm}/ldt.h    |   0
 .../x86/include/asm}/livepatch.h              |   0
 .../x86/include/asm}/mach-default/bios_ebda.h |   0
 .../x86/include/asm}/mach-default/io_ports.h  |   0
 .../include/asm}/mach-default/irq_vectors.h   |   0
 .../include/asm}/mach-default/mach_mpparse.h  |   0
 .../include/asm}/mach-default/mach_mpspec.h   |   0
 .../x86/include/asm}/mach-generic/mach_apic.h |   0
 .../include/asm}/mach-generic/mach_mpparse.h  |   0
 .../x86/include/asm}/machine_kexec.h          |   0
 .../x86/include/asm}/mc146818rtc.h            |   0
 .../asm-x86 => arch/x86/include/asm}/mce.h    |   0
 .../x86/include/asm}/mem_access.h             |   0
 .../x86/include/asm}/mem_paging.h             |   0
 .../x86/include/asm}/mem_sharing.h            |   0
 .../x86/include/asm}/microcode.h              |   0
 .../asm-x86 => arch/x86/include/asm}/mm.h     |   0
 .../x86/include/asm}/monitor.h                |   0
 .../asm-x86 => arch/x86/include/asm}/mpspec.h |   0
 .../x86/include/asm}/mpspec_def.h             |   0
 .../asm-x86 => arch/x86/include/asm}/msi.h    |   0
 .../x86/include/asm}/msr-index.h              |   0
 .../asm-x86 => arch/x86/include/asm}/msr.h    |   0
 .../asm-x86 => arch/x86/include/asm}/mtrr.h   |   0
 .../x86/include/asm}/multicall.h              |   0
 .../asm-x86 => arch/x86/include/asm}/mwait.h  |   0
 .../asm-x86 => arch/x86/include/asm}/nmi.h    |   0
 .../asm-x86 => arch/x86/include/asm}/nops.h   |   0
 .../asm-x86 => arch/x86/include/asm}/nospec.h |   0
 .../asm-x86 => arch/x86/include/asm}/numa.h   |   0
 .../asm-x86 => arch/x86/include/asm}/p2m.h    |   0
 .../x86/include/asm}/page-bits.h              |   0
 .../asm-x86 => arch/x86/include/asm}/page.h   |   0
 .../asm-x86 => arch/x86/include/asm}/paging.h |   0
 .../asm-x86 => arch/x86/include/asm}/pci.h    |   0
 .../asm-x86 => arch/x86/include/asm}/percpu.h |   0
 .../asm-x86 => arch/x86/include/asm}/perfc.h  |   0
 .../x86/include/asm}/perfc_defn.h             |   0
 .../x86/include/asm}/processor.h              |   0
 .../asm-x86 => arch/x86/include/asm}/psr.h    |   0
 .../x86/include/asm}/pv/domain.h              |   0
 .../x86/include/asm}/pv/grant_table.h         |   0
 .../asm-x86 => arch/x86/include/asm}/pv/mm.h  |   0
 .../x86/include/asm}/pv/shim.h                |   0
 .../x86/include/asm}/pv/trace.h               |   0
 .../x86/include/asm}/pv/traps.h               |   0
 .../asm-x86 => arch/x86/include/asm}/random.h |   0
 .../asm-x86 => arch/x86/include/asm}/regs.h   |   0
 .../asm-x86 => arch/x86/include/asm}/setup.h  |   0
 .../asm-x86 => arch/x86/include/asm}/shadow.h |   0
 .../asm-x86 => arch/x86/include/asm}/shared.h |   0
 .../asm-x86 => arch/x86/include/asm}/smp.h    |   0
 .../x86/include/asm}/softirq.h                |   0
 .../x86/include/asm}/spec_ctrl.h              |   0
 .../x86/include/asm}/spec_ctrl_asm.h          |   0
 .../x86/include/asm}/spinlock.h               |   0
 .../asm-x86 => arch/x86/include/asm}/string.h |   0
 .../asm-x86 => arch/x86/include/asm}/system.h |   0
 .../asm-x86 => arch/x86/include/asm}/tboot.h  |   0
 .../asm-x86 => arch/x86/include/asm}/time.h   |   0
 .../asm-x86 => arch/x86/include/asm}/trace.h  |   0
 .../asm-x86 => arch/x86/include/asm}/traps.h  |   0
 .../asm-x86 => arch/x86/include/asm}/types.h  |   0
 .../x86/include/asm}/uaccess.h                |   0
 .../x86/include/asm}/unaligned.h              |   0
 .../x86/include/asm}/vm_event.h               |   0
 .../asm-x86 => arch/x86/include/asm}/vpmu.h   |   0
 .../x86/include/asm}/x86-defns.h              |   0
 .../x86/include/asm}/x86-vendors.h            |   0
 .../x86/include/asm}/x86_64/efibind.h         |   0
 .../x86/include/asm}/x86_64/elf.h             |   0
 .../x86/include/asm}/x86_64/page.h            |   0
 .../x86/include/asm}/x86_64/regs.h            |   0
 .../x86/include/asm}/x86_64/system.h          |   0
 .../x86/include/asm}/x86_64/uaccess.h         |   0
 .../x86/include/asm}/x86_emulate.h            |   2 +-
 .../x86/include/asm}/xenoprof.h               |   0
 .../asm-x86 => arch/x86/include/asm}/xstate.h |   0
 xen/build.mk                                  |  96 +++++
 xen/common/Makefile                           |  15 +-
 xen/common/efi/efi_common.mk                  |  16 +
 xen/common/efi/runtime.c                      |   2 +-
 xen/common/libelf/Makefile                    |   4 +-
 xen/common/libfdt/Makefile                    |   8 +-
 xen/common/page_alloc.c                       |   2 +-
 xen/include/Makefile                          |  74 ++--
 xen/include/xen/acpi.h                        |   5 +-
 xen/include/xen/bitmap.h                      |   2 +-
 xen/scripts/Kbuild.include                    |  69 ++-
 xen/scripts/Kconfig.include                   |   2 +-
 xen/scripts/Makefile.clean                    |  32 +-
 xen/{tools/kconfig => scripts}/Makefile.host  |  69 +--
 xen/test/Makefile                             |   7 +-
 xen/test/livepatch/Makefile                   | 213 ++++-----
 xen/tools/Makefile                            |  14 +-
 xen/tools/fixdep.c                            | 404 ++++++++++++++++++
 xen/tools/kconfig/Makefile                    |  15 +-
 xen/tools/kconfig/Makefile.kconfig            | 106 -----
 xen/tools/kconfig/confdata.c                  |  12 +-
 xen/xsm/flask/Makefile                        |  43 +-
 xen/xsm/flask/include/avc.h                   |   4 +-
 xen/xsm/flask/include/avc_ss.h                |   2 +-
 xen/xsm/flask/include/objsec.h                |   2 +-
 xen/xsm/flask/include/security.h              |   2 +-
 xen/xsm/flask/policy/mkaccess_vector.sh       |   7 +-
 xen/xsm/flask/ss/Makefile                     |   3 +-
 366 files changed, 1494 insertions(+), 958 deletions(-)
 rename xen/{include/asm-arm => arch/arm/include/asm}/acpi.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/alternative.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/altp2m.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/atomic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/bitops.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/bug.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/cmpxchg.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/flushtlb.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/insn.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/io.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/macros.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/mm.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/page.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/processor.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/sysregs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/system.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/traps.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm32/vfp.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/atomic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/bitops.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/brk.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/bug.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/cmpxchg.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/cpufeature.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/efibind.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/flushtlb.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/hsr.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/insn.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/io.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/macros.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/mm.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/page.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/processor.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/sysregs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/system.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/traps.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/arm64/vfp.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/asm_defns.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/atomic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/bitops.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/bug.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/byteorder.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cache.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cadence-uart.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/config.h (99%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cpregs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cpuerrata.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/cpufeature.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/current.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/debugger.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/delay.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/desc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/device.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/div64.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/domain.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/domain_build.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/early_printk.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/efibind.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/elf.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/event.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/exynos4210-uart.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/flushtlb.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/gic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/gic_v3_defs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/gic_v3_its.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/grant_table.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/guest_access.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/guest_atomics.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/guest_walk.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/hardirq.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/hsr.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/hypercall.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/init.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/insn.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/io.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/iocap.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/iommu.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/iommu_fwspec.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/ioreq.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/irq.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/kernel.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/livepatch.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/lpae.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/macros.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/mem_access.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/mm.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/mmio.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/monitor.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/new_vgic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/nospec.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/numa.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/p2m.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/page-bits.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/page.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/paging.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/pci.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/percpu.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/perfc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/perfc_defn.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/pl011-uart.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platform.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/exynos5.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/midway.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/omap5.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/vexpress.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/platforms/xilinx-zynqmp-eemi.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/processor.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/procinfo.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/psci.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/random.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/regs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/scif-uart.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/setup.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/short-desc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/smccc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/smp.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/softirq.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/spinlock.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/string.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/sysregs.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/system.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/tee/optee_msg.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/tee/optee_rpc_cmd.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/tee/optee_smc.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/tee/tee.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/time.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/trace.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/traps.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/types.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vfp.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vgic-emul.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vgic.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vm_event.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vpl011.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vpsci.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vreg.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/vtimer.h (100%)
 rename xen/{include/asm-arm => arch/arm/include/asm}/xenoprof.h (100%)
 rename xen/{include/asm-riscv => arch/riscv/include/asm}/config.h (100%)
 delete mode 100644 xen/arch/x86/boot/build32.mk
 rename xen/{include/asm-x86 => arch/x86/include/asm}/acpi.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/alternative-asm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/alternative.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/altp2m.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/amd.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/apic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/apicdef.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/asm-defns.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/asm_defns.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/atomic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/bitops.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/bug.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/byteorder.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/bzimage.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cache.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/compat.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/config.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpufeature.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpufeatures.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpufeatureset.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpuid.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/cpuidle.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/current.h (99%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/debugger.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/debugreg.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/delay.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/desc.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/device.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/div64.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/dom0_build.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/domain.h (99%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/e820.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/edd.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/efibind.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/elf.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/event.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/fixmap.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/flushtlb.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/genapic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/grant_table.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/hyperv-hcall.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/hyperv-tlfs.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/hyperv.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/hypervisor.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/pvh-boot.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/xen-hcall.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest/xen.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest_access.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest_atomics.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/guest_pt.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hap.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hardirq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hpet.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/asid.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/cacheattr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/domain.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/emulate.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/grant_table.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/guest_access.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/hvm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/io.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/ioreq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/irq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/monitor.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/nestedhvm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/save.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/support.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/asid.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/emulate.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/intr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/nestedsvm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/svm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/svmdebug.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/svm/vmcb.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/trace.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vcpu.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vioapic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/viridian.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vlapic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vm_event.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vmx/vmcs.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vmx/vmx.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vmx/vvmx.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vpic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hvm/vpt.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/hypercall.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/i387.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/init.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/invpcid.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/io.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/io_apic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/iocap.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/iommu.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/ioreq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/irq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/ldt.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/livepatch.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/bios_ebda.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/io_ports.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/irq_vectors.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/mach_mpparse.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-default/mach_mpspec.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-generic/mach_apic.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mach-generic/mach_mpparse.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/machine_kexec.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mc146818rtc.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mce.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mem_access.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mem_paging.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mem_sharing.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/microcode.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/monitor.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mpspec.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mpspec_def.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/msi.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/msr-index.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/msr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mtrr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/multicall.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/mwait.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/nmi.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/nops.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/nospec.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/numa.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/p2m.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/page-bits.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/page.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/paging.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pci.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/percpu.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/perfc.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/perfc_defn.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/processor.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/psr.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/domain.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/grant_table.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/mm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/shim.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/trace.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/pv/traps.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/random.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/regs.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/setup.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/shadow.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/shared.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/smp.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/softirq.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/spec_ctrl.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/spec_ctrl_asm.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/spinlock.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/string.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/system.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/tboot.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/time.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/trace.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/traps.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/types.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/uaccess.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/unaligned.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/vm_event.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/vpmu.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86-defns.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86-vendors.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/efibind.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/elf.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/page.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/regs.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/system.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_64/uaccess.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/x86_emulate.h (89%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/xenoprof.h (100%)
 rename xen/{include/asm-x86 => arch/x86/include/asm}/xstate.h (100%)
 create mode 100644 xen/build.mk
 create mode 100644 xen/common/efi/efi_common.mk
 rename xen/{tools/kconfig => scripts}/Makefile.host (74%)
 create mode 100644 xen/tools/fixdep.c
 delete mode 100644 xen/tools/kconfig/Makefile.kconfig

-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231210.399968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzO-0008IU-My; Thu, 25 Nov 2021 13:40:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231210.399968; Thu, 25 Nov 2021 13:40:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzO-0008Hg-I5; Thu, 25 Nov 2021 13:40:38 +0000
Received: by outflank-mailman (input) for mailman id 231210;
 Thu, 25 Nov 2021 13:40:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzL-00076i-UX
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:36 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4191a2af-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:40:32 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4191a2af-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847631;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=z/WT05OcUodD6RGHso4Z+Hq1+po51KMdUGAn2O0jpV0=;
  b=ZAWq4EeOVIDRUbEy/7i8b2gPliM3P9NeUvJsDZUs/QFNLvxEFjelb/FK
   21vZ8hahXpuLKF+mM/qJPB6F5/YTVaERNFHLZKv9PwKK3FbS1fg6bzhxG
   aR3ufZGAzWWdg2cpPwJGJyVzgQOxM/Icpv0NuCj/rvP8n4bV9gWFsNsce
   o=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: NlgjfJW98Grgo79rJFB0j2lKZZP6pmsV+RhUwPF+L98C7ubzhJyURbNM6dJdFn456UacZ7oSAK
 YDQPfh0Yb2XLMPDLKXBz7dErIdLCPeQT/PQ/nr8cbvbuzgg1vEGyjrsQLPWFbiXpVOH1qapvJM
 X/QiDCeYkt27L85Mmht/i03S+Vg3HC/Lo3blZ51Mxukg4Bz1U3AcDLa9CiQBEHBIcUbgCzmzRY
 3Xeqt077mdRoE4AeLmX5zdyumWmSRpTlYpxDf49x6jc3ZfkB5bJyu7XU/kTvBlLP1t+1Ug54Oe
 fGjd9J2R0Lv+8Ce2cZl06MYW
X-SBRS: 5.1
X-MesageID: 58576636
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:g0YqoqJe7reD1XSsFE+RVZIlxSXFcZb7ZxGr2PjKsXjdYENS0mQAy
 TRKD2iPbKmJYDb1Lo8gPYy39BxVvcPUmtE2SlBlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xrZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2gmIgo7
 fRxlKfrRDkABaLlwOsMTERXRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFlgNgjK8/6epsSoHh6wRnSDOo8QICFSKLPjTNd9Gpg258QQ62AD
 yYfQRwyfC/YPgRKAGgsFI0Ot7erxULicwQN/Tp5ooJoujOOnWSdyoPFMsfRe9GMbdVYmACfv
 G2u13/iHhgQOdibyDyE2nGhnOnCmWX8Qo16PKK83u5nhhuU3GN7IA0bUx63rOe0jma6WslDM
 AoE9yw2t68w+Ue3CN7nUHWQoWGGlg4RXcJKFO834x3LzbDbiy6bDGUZSj9KaPQ9qdQ7Azct0
 ze0c8jBXGI19ufPEDTEq+nS/Wja1TUpwXEqTChcFC4k3/jY+4wNpynAZ45sAbHogYigcd3v+
 AyioC87jrQVqMcE0aSn4FzK6w6RSoj1oh0dvVuOAD/8hu9tTMv8PtHztwCHhRpVBN/BFgHpg
 ZQSpySJAAni57mpnTfFfugCFarBCx2tYGyF2g4H83XMGl2QF5+fkWJ4vG4WyKRBaJ9sldrVj
 Kj741452XOrFCH2BZKbmb6ZBcUw1rTHHt/4TP3SZdcmSsEvL1DYo3A+NR/KgTGFfK0QfUYXY
 8nzTCpRJSxCVfQPIMSeG4/xLoPHNghhnDiOFPgXPjys0KaEZW79dFv2GADmUwzN14vd+F+92
 48Gb6OikkwDOMWjMni/2dNCdjgicClkba0aXuQKL4arOBR9Img9Bpf5mPV5E2CTt/8OzbmgE
 7DUchIw9WcTclWbc1jXMS46N+u0NXu9xFpiVRER0Z+T8yBLSe6SAG03LvPbpJErq75uy+BaV
 f4Ad5nSC/hDUG2fqT8ccYP8vMppcxHy3VCCOC+sYT4eeZ98RlOWpo+4L1W3rCReXDCqscYeo
 qG70l+JS5Q0WAk/Xt3db+iizg3tsCFFyv5yRUbBPvJaZF7orNpxMyX0g/Jue5MMJBzPyyG0z
 QGTBRtE9+DBr5VsqIvChLyerpfvGOx7RxIIE27e5LewFC/b4mv8ntMQDLfWJWjQDTqm9r+ja
 ONZy+DHHMcGxFsa4ZBhF7tLzL4l44e9rbFt0Qk5Tm7AaE6mC+08LyDej9VPrKBE2pRQpRCyB
 hCU4tBfNLiEZJHlHVoWKFZ3Z+iPz6hJyDzb7PBzK0Tm/i5nurGAVBwKbRWLjSVcKppzMZ8kn
 rh96JJHtVTnh0p4KMuCgwBV63+Ify4JXKgQv50HBJPm11gwwVZYbJ2AUiL77fljsTmX3pXG9
 tNMuJf/ug==
IronPort-HdrOrdr: A9a23:SqegZq2JElQSNMSfjakpKgqjBIokLtp133Aq2lEZdPRUGvb3qy
 nIpoV86faUskdoZJhOo7C90cW7LU80sKQFhLX5Xo3SOzUO2lHYT72KhLGKq1aLdhEWtNQtsZ
 uIG5IOceEYZmIasS+V2maF+q4bsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58576636"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 03/47] build: generate "include/xen/compile.h" with if_changed
Date: Thu, 25 Nov 2021 13:39:22 +0000
Message-ID: <20211125134006.1076646-4-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This will avoid regenerating "compile.h" if the content hasn't changed.

As it's currently the case, the file isn't regenerated during `sudo
make install` if it exist and does belong to a different user, thus we
can remove the target "delete-unfresh-files". Target "$(TARGET)" still
need a phony dependency, so add "FORCE".

Use "$(dot-target).tmp" as temporary file as this is already cover by
".*.tmp" partern in ".gitconfig".

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - drop change in .gitignore
    
    v7:
    - Use $(if_changed,) instead of importing a new macro from Linux
      (filechk).
    - use $(dot-target).tmp as temporary file, that way is hiden, and
      already cover by .gitignore via ".*.tmp". (filechk was doing the same)
    - update .gitignore.

 xen/Makefile | 35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index b2a63edca1eb..2ad7da7ad67b 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -365,7 +365,7 @@ _debug:
 	$(OBJDUMP) -D -S $(TARGET)-syms > $(TARGET).s
 
 .PHONY: _clean
-_clean: delete-unfresh-files
+_clean:
 	$(MAKE) -C tools clean
 	$(MAKE) $(clean) include
 	$(MAKE) $(clean) common
@@ -383,7 +383,7 @@ _clean: delete-unfresh-files
 		-o -name "*.gcno" -o -name ".*.cmd" -o -name "lib.a" \) -exec rm -f {} \;
 	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map *~ core
 	rm -f asm-offsets.s arch/*/include/asm/asm-offsets.h
-	rm -f .banner .allconfig.tmp
+	rm -f .banner .allconfig.tmp include/xen/compile.h
 
 .PHONY: _distclean
 _distclean: clean
@@ -393,7 +393,7 @@ $(TARGET).gz: $(TARGET)
 	gzip -n -f -9 < $< > $@.new
 	mv $@.new $@
 
-$(TARGET): delete-unfresh-files
+$(TARGET): FORCE
 	$(MAKE) -C tools
 	$(MAKE) -f $(BASEDIR)/Rules.mk include/xen/compile.h
 	[ -e arch/$(TARGET_ARCH)/efi ] && for f in $$(cd common/efi; echo *.[ch]); \
@@ -406,14 +406,6 @@ $(TARGET): delete-unfresh-files
 	$(MAKE) -f $(BASEDIR)/Rules.mk arch/$(TARGET_ARCH)/include/asm/asm-offsets.h
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
 
-# drivers/char/console.o contains static banner/compile info. Blow it away.
-# Don't refresh these files during e.g., 'sudo make install'
-.PHONY: delete-unfresh-files
-delete-unfresh-files:
-	@if [ ! -r include/xen/compile.h -o -O include/xen/compile.h ]; then \
-		rm -f include/xen/compile.h; \
-	fi
-
 quiet_cmd_banner = BANNER  $@
 define cmd_banner
     if which figlet >/dev/null 2>&1 ; then \
@@ -428,9 +420,11 @@ endef
 	$(call if_changed,banner)
 targets += .banner
 
-# compile.h contains dynamic build info. Rebuilt on every 'make' invocation.
-include/xen/compile.h: include/xen/compile.h.in .banner
-	@sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
+# Don't refresh this files during e.g., 'sudo make install'
+quiet_cmd_compile.h = UPD     $@
+define cmd_compile.h
+    if [ ! -r $@ -o -O $@ ]; then \
+	sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
 	    -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \
 	    -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
 	    -e 's/@@domain@@/$(XEN_DOMAIN)/g' \
@@ -440,10 +434,17 @@ include/xen/compile.h: include/xen/compile.h.in .banner
 	    -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
 	    -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
 	    -e 's!@@changeset@@!$(shell tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
-	    < include/xen/compile.h.in > $@.new
+	    < $< > $(dot-target).tmp; \
+	sed -rf tools/process-banner.sed < .banner >> $(dot-target).tmp; \
+	mv -f $(dot-target).tmp $@; \
+    fi
+endef
+
+include/xen/compile.h: include/xen/compile.h.in .banner FORCE
 	@cat .banner
-	@sed -rf tools/process-banner.sed < .banner >> $@.new
-	@mv -f $@.new $@
+	$(call if_changed,compile.h)
+
+targets += include/xen/compile.h
 
 asm-offsets.s: arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c
 	$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231211.399973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzP-0008M5-4N; Thu, 25 Nov 2021 13:40:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231211.399973; Thu, 25 Nov 2021 13:40:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzO-0008Kj-Rs; Thu, 25 Nov 2021 13:40:38 +0000
Received: by outflank-mailman (input) for mailman id 231211;
 Thu, 25 Nov 2021 13:40:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzM-0007NX-Jr
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:36 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43c6aa46-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:40:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43c6aa46-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847635;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=jQJAUxBLM/0m6SUtricyeZkrF61UL/f8bZNw+7LnUuE=;
  b=AlOItSa0uLQlF2q5Wom1cF2QvDZteffvWuQb5gQUQ5CWTZf2bQBSQwgW
   gpRDmVgqnCZ2r7YVw0E+1sJ1E2DiHo8iUpx1j4mHO+FlIvzZpfnL8YBFf
   Prxa+EnBsbSLWLcW2oxDgJxCZ2/LxATn0+Cjzts+4ySjlHcXGH2azUwII
   M=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: SpLB2JVZLT1tpqFMwNTKwhY0jtt7aiU/VagXUS33Zq8+3C3opRRGVoCF7VnfYEvwXWhjClWUYL
 +BvugkFmclJ+TSOcI9O+65lgd5X9SdVAve0f4ZBegdZAv8zBbgtRGoFH8HunFFEGcdg6WlyMHm
 RvAyH7oxxZEkRKxIykyMXSW/67MEVaY/rRiYdlbuuiN5zA6N424ygPSXN8wa5Q2Lp6Q+W3MFi9
 onrIkyqt4nIS2bBnfb6Bd/o3sUADtwP/yV5ieqQPbMFHVYyU2tEhPcas8d/4L37YUoGrhXzpCN
 LCVmu09b8sFRgU399y9MBhfT
X-SBRS: 5.1
X-MesageID: 59005967
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:KSkYVK/8aKM06a6KKYqfDrUDC3mTJUtcMsCJ2f8bNWPcYEJGY0x3y
 mAfCzyGOPffZWb3LtkjbN6/ph5UsMOHx9VgTgVrrS48E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj39Yy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPgg9
 elnuaCAdDsYEa2TlrUEWjViOBNhaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwqKtXrO4UO/Glt1zjDAd4tQIzZQrWM7thdtNs1rp0fRa6DN
 pRGAdZpRDXvXl5hAX0TMoMZhvyzi3/uIgUH63vA8MLb5ECMlVcsgdABKuH9eMGORMhTtlaVo
 CTB5WuRKi8dMNuT2D+U6EWGj+XEnT74cI8KHbj+/flv6HWZy3YPEhQQWR2+qOOgl0+lc9tFL
 gof/S9Ghbg/8gmnQ8fwWzW8oWWYpVgMVtxICeo45QqRjK3O7G6xBGIJUzpAY9wOr9ItSHoh0
 Vrht8jyGTVlvbmRSHSc3rSZtzW/PW4SN2BqWMMfZVJbuZ+5+th110+RCIY4eEKosjHrMWDN/
 xqGkBgDu4Q8jZEFhryy0WrssS358/AlUTUJzgnQW2uk6CZwa4ike5Gk5DDn0BpQEGqKZgLf5
 SZZwqBy+MhLVMjQz3LVHI3hCZnwv67dWAAwl2KDCHXIG96F33e4Nb5d7zhlTKuCGpZVIGS5C
 KM/VO442XOyAJdIRfMoC25SI55zpUQFKTgCfqqJBueimrArKGe6ENhGPCZ8JVzFnkk2ir0YM
 pyGa8uqBntyIf05l2XpGLZNge5xmHFWKYbvqXfTlUrP7FZjTCTNFedt3KWmMojVE59oUC2Kq
 o0CZqNmOj1UUfHkYzm/zGLgBQtiEJTPPriv85Y/XrfaemJOQTh9Y9eMkeJJU9E0xMx9y7aXl
 kxRr2cFkTITc1Wccl7UAp2iAZuyNatCQYUTYXZxYA32gid7Ou5CLs43LvMKQFXuz8Q7pdYcc
 hXPU5zo7i1nRmuV9jIDQ4P6qYA+Jh2niRjXZ3iuYSQlfo4mTAvMo4e2cgzq/SgILyy2qcph/
 OHwilKFGcIOF1Z4EcLbSPOz1Fft73ITr/1/AhnTKd5JdUSyrIUzc37tjuU6Kt0nIAnYwmfIz
 B6fBBoV/LGfo4I8/NTTq7qDqoOlT7l3EkZARjGJ5reqLyjKuGGkxNYYAuqPeDncUkLy+bmjO
 roJn62tbqVfkQ8T4YRmErttwaYv3PfVpudXnlZ+AXHGT1W3Ebc8cHOI6tZC6/9WzbhDtAroB
 k/WootGOa+EMd/OGUIKIFZ3dfyK0PwZl2WA7fkxJ0mmtiZ78KDeDBdXNhiIzidcMKF0IMUux
 uJ44Jwa7Am2ixwLNNeaj38LqzTQfyJYC6h35IsHBILLixYwzgAQaJPRPSb6/ZWTZogeKUItO
 DKV2PLPirk0KpAuqJbv+awhBdZguKk=
IronPort-HdrOrdr: A9a23:ou8a4KjUqFS9D0myolYCb/bCLnBQXtwji2hC6mlwRA09TySZ//
 rAoB19726StN9xYgBYpTnuAsi9qB/nmKKdpLNhX4tKPzOW3FdATrsD0WKK+VSJcEfDH6xmpM
 JdmsBFebvN5DNB4/oSjjPVLz9Z+qjlzJyV
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="59005967"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [XEN PATCH v8 05/47] build: adjust $(TARGET).efi creation in arch/arm
Date: Thu, 25 Nov 2021 13:39:24 +0000
Message-ID: <20211125134006.1076646-6-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

There is no need to try to guess a relative path to the "xen.efi" file,
we can simply use $@. Also, there's no need to use `notdir`, make
already do that work via $(@F).

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---

Notes:
    v8:
    - s/fix/adjust/ in patch title
    - reviewed

 xen/arch/arm/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index a3a497bafe89..d0dee10102b6 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -95,7 +95,7 @@ endif
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
 ifeq ($(CONFIG_ARM_64),y)
-	ln -sf $(notdir $@)  ../../$(notdir $@).efi
+	ln -sf $(@F) $@.efi
 endif
 
 ifeq ($(CONFIG_LTO),y)
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231212.399988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzQ-0000KR-Fv; Thu, 25 Nov 2021 13:40:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231212.399988; Thu, 25 Nov 2021 13:40:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzQ-0000JX-6a; Thu, 25 Nov 2021 13:40:40 +0000
Received: by outflank-mailman (input) for mailman id 231212;
 Thu, 25 Nov 2021 13:40:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzP-0007NX-3f
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:39 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44b502de-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:40:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44b502de-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847637;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=YHsU+dt4Hb55OzhCQGfUY0z4Y/tG3kZz9a0zDxOb69o=;
  b=Qp4FAdw98nb2Kr7xqHjWV9QPaq/b4bqIqs9ia6+vcrfpd28EsGyvOJdZ
   aaRoJg95c428qH316Y0a7P2v71cCWeEPMJpUnyJ4lHufvlFKx9JYC+gpl
   1tuPWX1Y2lYnE8yvpDQcsVkBp7fMgAFYzATI4gChjiJ8MvXriTAnvyXxX
   A=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: gj+pJuCaRo8jI7mHWRs5YyP3qwjNFqkKRqnSW/DRTxSpPROxIZ0Kdqy6Okr7rcYRXpX1JRm/bk
 ck5KxqdgRd5HHkK5eOHJu/lbg7GM/q5jqoiLy0+ijqdl6ziXGxzWAyW9nhKLWzySHOqXU6zM9w
 Purks5NF+u7U7f1VkaNGpKu4IehMwCVs04QglRv5mByZrEt8UAwswREb/HMXWjHl2YVFXpOCre
 zQ4rgh76FQvlIJSw701h9FCDHvWNjMnO2MPSV475eqsLsE9VdNdkWAXO9IDspke8c5bCwgU6dS
 IYHSHjuP3zLEIrbKT4f218Pl
X-SBRS: 5.1
X-MesageID: 58135402
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:6sphTKzJyYPNrpJAuCV6t+fKwSrEfRIJ4+MujC+fZmUNrF6WrkUHn
 TdLD26DOv6CZmbzct52a9uyoUkGuMLUndBqTAdkrCAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRk2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt+F+8
 vNrmoLochskOI3xoMMASzV/KC4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVors0lMMnsOpJZonx6xCvVJf0nXYrCU+PB4towMDIY25AXRquCP
 5BxhTxHUUzCR1pqJg8rCIsDgLn0oWDvdz9jtwfAzUYwyzeKl1EguFT3C/LXZ9iLSMN9jkue4
 GXc8AzRGQoGPdaSzT6E9HOEheLVmy7/HoUIG9WQ6fpCkFCVgGsJB3U+RVa95PW0lEO6c9ZeM
 FAPvDojq7Ao806mRcW7WAe3yFaFoRw0S9dWC/c96gyG1uzT+QnxLmoOQyNFadcmnNQrXjFs3
 ViM9+4FHhQ27ufTEyjEsO7J83XiYkD5MFPuewc1QjEjxfb9+LovgxTvc+5EDbaZqeb6TGSYL
 y+xkAAygLAajMgu3qq9/Ezajz/EmqUlXjLZ9S2MADv7s1oRiJqNItXxtAOFtaoowJOxFwHZ5
 BA5d96iAPfi5H1nvAiEW60zEb6g/J5p2xWM0Ac0T/HNG9lAkkNPnLy8Ahkiey+F0e5eIFcFh
 XM/XisLufdu0IOCN/MfXm5II51CIVLcPdrkTOvISdFFf4J8cgSKlAk3OxXPgD+8wBh9y/9uU
 Xt+TSpLJSxEYZmLMRLsH7tNuVPV7nxWKZzvqWDTkE38jOv2iI+9QrYZKlqeBt3VH4vfyDg5B
 +13bpPQoz0GCbWWSnCOreY7cABbRVBmVMueg5EGKYa+zv9ORThJ5wn5muh6JeSIXs19y4/1w
 51KchMClQek2ySYcV7ih7IKQOqHYKuTZEkTZUQEVWtEEVB6CWp2xKtAJZYxY5c98+lvkax9Q
 /UfIp3SCfVTUDXXvT8aaMCl/oBlcR2qgyOIPjakP2djL8IxGVSR94+2ZBbr+QkPEjGz6Zk0r
 Yq/216JWpEEXQljUprbMar901OrsHEBs+tuRE+UcMJLcUDh/dEyeSz8h/M6Oe8WLhDHymfI3
 gqaG05A9+LMv5U04J/CgqXd99WlFO53H0x7GWjH7OnpaXmGrzT7mYIZCbSGZzHQUm/w6Z6OX
 +QNwqGuKuADkXZLr5F4T+Rhw5Uh6oa9vLRd1AllQinGNgz5FrN6L3Ca9sBTrakRlKRBsA67V
 0/TqNlXPbKFZJHsHFILfVd3a+2C0bcfmyXI7ORzK0L/vXcl8L2CWERUHh+NlC0Cc+clbNJ7m
 b8s6JwM9giyqhs2KdLX3Clb+lOFImEET6h65IoRB5Xmi1Zzx1xPCXAG5vQaPH1bhw1wD3QX
IronPort-HdrOrdr: A9a23:fxc+VqjR1iBeIxQuG3ZEuOu8BXBQXtwji2hC6mlwRA09TySZ//
 rAoB19726StN9xYgBYpTnuAsi9qB/nmKKdpLNhX4tKPzOW3FdATrsD0WKK+VSJcEfDH6xmpM
 JdmsBFebvN5DNB4/oSjjPVLz9Z+qjlzJyV
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58135402"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 06/47] build: avoid re-executing the main Makefile by introducing build.mk
Date: Thu, 25 Nov 2021 13:39:25 +0000
Message-ID: <20211125134006.1076646-7-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Currently, the xen/Makefile is re-parsed several times: once to start
the build process, and several more time with Rules.mk including it.
This makes it difficult to work with a Makefile used for several
purpose, and it actually slow down the build process.

So this patch introduce "build.mk" which Rules.mk will use when
present instead of the "Makefile" of a directory. (Linux's Kbuild
named that file "Kbuild".)

We have a few targets to move to "build.mk" identified by them been
build via "make -f Rules.mk" without changing directory.

As for the main targets like "build", we can have them depends on
there underscore-prefix targets like "_build" without having to use
"Rules.mk" while still retaining the check for unsupported
architecture. (Those main rules are changed to be single-colon as
there should only be a single recipe for them.)

With nearly everything needed to move to "build.mk" moved, there is a
single dependency left from "Rules.mk": the variable $(TARGET), so its
assignement is moved to the main Makefile.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - for $(main-targets) rules, use ; on a single line instead of adding a
      recipe with only @:
    - To include build.mk instead of Makefile, use a simpler expresion with
      $(firstword) and remove the use of $(mk-dir) var
    - removed an extra blank line, and one when updating $(targets)
    - reword patch description
    
    v7:
    - new patch

 xen/Makefile | 69 +++++-----------------------------------------------
 xen/Rules.mk |  6 ++---
 xen/build.mk | 60 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 68 insertions(+), 67 deletions(-)
 create mode 100644 xen/build.mk

diff --git a/xen/Makefile b/xen/Makefile
index 2ad7da7ad67b..ed61f38dd335 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -47,6 +47,8 @@ export KCONFIG_CONFIG ?= .config
 
 export CC CXX LD
 
+export TARGET := $(BASEDIR)/xen
+
 .PHONY: default
 default: build
 
@@ -293,11 +295,12 @@ export CFLAGS_UBSAN
 
 endif # need-config
 
-.PHONY: build install uninstall clean distclean MAP
-build install uninstall debug clean distclean MAP::
+main-targets := build install uninstall clean distclean MAP
+.PHONY: $(main-targets)
 ifneq ($(XEN_TARGET_ARCH),x86_32)
-	$(MAKE) -f Rules.mk _$@
+$(main-targets): %: _% ;
 else
+$(main-targets):
 	echo "*** Xen x86/32 target no longer supported!"
 endif
 
@@ -406,66 +409,6 @@ $(TARGET): FORCE
 	$(MAKE) -f $(BASEDIR)/Rules.mk arch/$(TARGET_ARCH)/include/asm/asm-offsets.h
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
 
-quiet_cmd_banner = BANNER  $@
-define cmd_banner
-    if which figlet >/dev/null 2>&1 ; then \
-	echo " Xen $(XEN_FULLVERSION)" | figlet -f $< > $@.tmp; \
-    else \
-	echo " Xen $(XEN_FULLVERSION)" > $@.tmp; \
-    fi; \
-    mv -f $@.tmp $@
-endef
-
-.banner: tools/xen.flf FORCE
-	$(call if_changed,banner)
-targets += .banner
-
-# Don't refresh this files during e.g., 'sudo make install'
-quiet_cmd_compile.h = UPD     $@
-define cmd_compile.h
-    if [ ! -r $@ -o -O $@ ]; then \
-	sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
-	    -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \
-	    -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
-	    -e 's/@@domain@@/$(XEN_DOMAIN)/g' \
-	    -e 's/@@hostname@@/$(XEN_BUILD_HOST)/g' \
-	    -e 's!@@compiler@@!$(shell $(CC) $(CFLAGS) --version 2>&1 | head -1)!g' \
-	    -e 's/@@version@@/$(XEN_VERSION)/g' \
-	    -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
-	    -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
-	    -e 's!@@changeset@@!$(shell tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
-	    < $< > $(dot-target).tmp; \
-	sed -rf tools/process-banner.sed < .banner >> $(dot-target).tmp; \
-	mv -f $(dot-target).tmp $@; \
-    fi
-endef
-
-include/xen/compile.h: include/xen/compile.h.in .banner FORCE
-	@cat .banner
-	$(call if_changed,compile.h)
-
-targets += include/xen/compile.h
-
-asm-offsets.s: arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c
-	$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
-	$(call move-if-changed,$@.new,$@)
-
-arch/$(TARGET_ARCH)/include/asm/asm-offsets.h: asm-offsets.s
-	@(set -e; \
-	  echo "/*"; \
-	  echo " * DO NOT MODIFY."; \
-	  echo " *"; \
-	  echo " * This file was auto-generated from $<"; \
-	  echo " *"; \
-	  echo " */"; \
-	  echo ""; \
-	  echo "#ifndef __ASM_OFFSETS_H__"; \
-	  echo "#define __ASM_OFFSETS_H__"; \
-	  echo ""; \
-	  sed -rne "/^[^#].*==>/{s:.*==>(.*)<==.*:\1:; s: [\$$#]: :; p;}"; \
-	  echo ""; \
-	  echo "#endif") <$< >$@
-
 SUBDIRS = xsm arch/$(TARGET_ARCH) common drivers lib test
 define all_sources
     ( find arch/$(TARGET_ARCH)/include -name '*.h' -print; \
diff --git a/xen/Rules.mk b/xen/Rules.mk
index d21930a7bf71..7b8b9047cfd5 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -8,9 +8,6 @@
 include $(XEN_ROOT)/Config.mk
 include $(BASEDIR)/scripts/Kbuild.include
 
-
-TARGET := $(BASEDIR)/xen
-
 # Note that link order matters!
 ALL_OBJS-y               += $(BASEDIR)/common/built_in.o
 ALL_OBJS-y               += $(BASEDIR)/drivers/built_in.o
@@ -36,7 +33,8 @@ SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
                                             rodata.cst$(a)) \
                          $(foreach r,rel rel.ro,data.$(r).local)
 
-include Makefile
+# The filename build.mk has precedence over Makefile
+include $(firstword $(wildcard build.mk) Makefile)
 
 # Linking
 # ---------------------------------------------------------------------------
diff --git a/xen/build.mk b/xen/build.mk
new file mode 100644
index 000000000000..622e841c1cc0
--- /dev/null
+++ b/xen/build.mk
@@ -0,0 +1,60 @@
+quiet_cmd_banner = BANNER  $@
+define cmd_banner
+    if which figlet >/dev/null 2>&1 ; then \
+	echo " Xen $(XEN_FULLVERSION)" | figlet -f $< > $@.tmp; \
+    else \
+	echo " Xen $(XEN_FULLVERSION)" > $@.tmp; \
+    fi; \
+    mv -f $@.tmp $@
+endef
+
+.banner: tools/xen.flf FORCE
+	$(call if_changed,banner)
+
+targets += .banner
+
+# Don't refresh this files during e.g., 'sudo make install'
+quiet_cmd_compile.h = UPD     $@
+define cmd_compile.h
+    if [ ! -r $@ -o -O $@ ]; then \
+	sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
+	    -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \
+	    -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
+	    -e 's/@@domain@@/$(XEN_DOMAIN)/g' \
+	    -e 's/@@hostname@@/$(XEN_BUILD_HOST)/g' \
+	    -e 's!@@compiler@@!$(shell $(CC) $(CFLAGS) --version 2>&1 | head -1)!g' \
+	    -e 's/@@version@@/$(XEN_VERSION)/g' \
+	    -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
+	    -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
+	    -e 's!@@changeset@@!$(shell tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
+	    < $< > $(dot-target).tmp; \
+	sed -rf tools/process-banner.sed < .banner >> $(dot-target).tmp; \
+	mv -f $(dot-target).tmp $@; \
+    fi
+endef
+
+include/xen/compile.h: include/xen/compile.h.in .banner FORCE
+	@cat .banner
+	$(call if_changed,compile.h)
+
+targets += include/xen/compile.h
+
+asm-offsets.s: arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c
+	$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
+	$(call move-if-changed,$@.new,$@)
+
+arch/$(TARGET_ARCH)/include/asm/asm-offsets.h: asm-offsets.s
+	@(set -e; \
+	  echo "/*"; \
+	  echo " * DO NOT MODIFY."; \
+	  echo " *"; \
+	  echo " * This file was auto-generated from $<"; \
+	  echo " *"; \
+	  echo " */"; \
+	  echo ""; \
+	  echo "#ifndef __ASM_OFFSETS_H__"; \
+	  echo "#define __ASM_OFFSETS_H__"; \
+	  echo ""; \
+	  sed -rne "/^[^#].*==>/{s:.*==>(.*)<==.*:\1:; s: [\$$#]: :; p;}"; \
+	  echo ""; \
+	  echo "#endif") <$< >$@
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231213.400001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzS-0000pE-Sb; Thu, 25 Nov 2021 13:40:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231213.400001; Thu, 25 Nov 2021 13:40:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzS-0000ow-MJ; Thu, 25 Nov 2021 13:40:42 +0000
Received: by outflank-mailman (input) for mailman id 231213;
 Thu, 25 Nov 2021 13:40:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzR-00076i-3Y
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:41 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46b671de-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:40:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46b671de-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847639;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=BsQ0L1SVdAVADFxntaJZHkwKYzMkaTauH9gbpRVCxbw=;
  b=HnAiI2dB7SN8fdeJwM8EUydRkq+dq31WtsI/yWysD6/nTidwwgF2p4Uh
   sc3n8EVr5PvniXopzbPdH+ZCtHyr8mg7SjfrUBl6H6K9ya5y1/nw56kvw
   AXf04YHzxkb2TuvaBhPTeMdQsMnv4/IQq8wavnhYmV0ksMgOMUuDVwmVL
   Q=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: CFpEuAkcoXFQf8bCm347qs/0XBQXY6ak0cV70fuKRK6vSNiKIf5bYoDIhqcQt72CfbctZI2wjj
 +K/15I7ynq9nzEJ1PHEiEK0r20EN40VAXiy97xO0s3Hs3NleMnwm2DqmO38RaqQvzpWeBvJoyD
 4/5u09DQGoaEo5Y685CGw6t50niZjxkWkjVNs/RyVqemQwfs8EuY/pBhacDIkmMQfkp88SpSW9
 BIHgRzXfJUq2Ru/pflccgMihAN5NkH1knQjE7qMBrBeEDKu4fE1QAwx2ADhkCLWGGE1sLTIHJg
 dQn/1NV2tLwk9DtBRB+UfWF3
X-SBRS: 5.1
X-MesageID: 58576644
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:1enYOayhhmb8G/8EukV6t+ecwSrEfRIJ4+MujC+fZmUNrF6WrkVUy
 2AWCzyPPPuKYGOkKNokbY7joUIA6MfdzNM1QQU6+yAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRk2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt+pDz
 +xQsLaNcCBqBbOLif09ejcBSRgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVors0lMMnsOpJZonx6xCvVJf0nXYrCU+PB4towMDIY25ATQqiAO
 5ZxhTxHZR39UUJMKlssC8gdpP6yrCDTVQBztwfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krd5HjwCBweMN2ZyBKG/2iqi+uJmjn0MKoYGaek7PdsjBuWz3YKFRwNfVKhpL+yjUvWc+xYL
 0sY6y8/t58Y/UagTsT+dxCgqXvCtRkZM/JRDO8S+AyL0rDT4QuSGi4DVDEpQMwrsoo6SCIn0
 neNnsj1Hnp/vbuNU3Wf+7yI6zSoNkA9L3IGZCICZRsI5Z/kuo5bphDFQ8tnEaW1psboAjy2y
 DePxBXSnJ1K05RNjf/iuwma3XT8/fAlUzLZ+C3tbGWc8wZTWbeCJLe2rknCzd9uddygGwzpU
 Gc/p+CS6+UHDJeonSOLQfkQELzB28tpIAEwknY0QcB/qm3FF2qLONkJvWogfBsB3tMsIGexO
 CfuVRVtCIi/1ZdARYt+eMqPBssj1sAM/vy1B6mPPrKijnWcHTJrHR2Ch2bMgAgBc2B2yMnT3
 Kt3lu72UB4n5VxPlmbeegvk+eZDKtoC7W3SX4vn6B+szKCTYnWYIZ9cbgDRMb9ovPPV+luEm
 zq6Cydt408BONASnwGNqdJDRbz0BSRT6W/KRzx/KbfYf1sO9JAJAP7N27IxE7GJbIwO/tokC
 kqVAxcCoHKm3CWvAVzTNhhLNeO+Nb4i/ClTFXF9Yj6VN40LPN/HAFE3LMBsI9HKNYVLkJZJc
 hXyU5naX6kUFG2Yo291gFuUhNUKSSlHTDmmZ0KNCAXTtbY7L+AQ0tO7LAbp6gcUCS+76Zk3r
 7G6j1uJSpsfXQVySs3Rbav3nV+2uHEcnsN0XlfJfYYPKBm9rtAyJnyjlOIzLuENNQ7HmmmQ2
 TGJDEpKvuLKuYI0roXE3PjWs4ezHuJiNUNGBG2Hv62uPCzX8zP7k49NWeqFZx7HU2bw9Pnwb
 OlZ1aikYvYGgExLo8x3FLMylfAy4N7mprl7yAV4HSqUMwT3W+04enTfhJtBrKxAwLNdqDCaY
 EPX94kII6iNNePkDEUVeFgvYNOc2KxGgTLV9/k0fhn3vXcl4LqdXExOFBCQkygBfqBtOYYoz
 Op96s4b7wuz1kgjPtqc130G8m2NKjoLUrk9t4FcC4ju01J5xlZHaJ3aKyn3/JDQNIkcbhh0e
 meZ1PjYmrBR5kveaH5iR3HC0N1UiYkKpB0XnkQJIE6Em4adi/I6tPGLHe/bkuiBIs177t9O
IronPort-HdrOrdr: A9a23:QCxjxKl5174YevG7Ho2C3/SVhYTpDfIU3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE7gr5OUtQ4exoV5PhfZqxz/JICMwqTNKftWrdyQyVxeNZnOjfKlTbckWUnINgPO
 VbAsxD4bXLfCFHZK3BgTVQfexO/DD+ytHLudvj
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58576644"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [XEN PATCH v8 07/47] build: set ALL_OBJS to main Makefile; move prelink.o to main Makefile
Date: Thu, 25 Nov 2021 13:39:26 +0000
Message-ID: <20211125134006.1076646-8-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This is to avoid arch/$arch/Makefile having to recurse into parents
directories.

This avoid duplication of the logic to build prelink.o between arches.

In order to do that, we cut the $(TARGET) target in the main Makefile in
two, there is a "prepare" phase/target runned before starting to build
"prelink.o" which will prepare "include/" among other things, then all
the $(ALL_OBJS) will be generated in order to build "prelink.o" and
finally $(TARGET) will be generated by calling into "arch/*/" to make
$(TARGET).

Now we don't need to prefix $(ALL_OBJS) with $(BASEDIR) as it is now
only used from the main Makefile. Other changes is to use "$<" instead
of spelling "prelink.o" in the target "$(TARGET)" in both
arch/*/Makefile.

Beside "prelink.o" been at a different location, no other functional
change intended.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - rebased
    - move Arm specific dependencies between $(ALL_OBJS) objects (head.o)
      into Arm specific "Rules.mk" instead of the common "build.mk".
    
    v7:
    - change, now things are in build.mk: no more prepare phase needed

 xen/Makefile          | 15 ++++++++++++++-
 xen/Rules.mk          | 13 -------------
 xen/arch/arm/Makefile | 31 ++++---------------------------
 xen/arch/arm/Rules.mk |  5 +++++
 xen/arch/arm/arch.mk  |  2 ++
 xen/arch/x86/Makefile | 29 ++++++-----------------------
 xen/arch/x86/arch.mk  |  2 ++
 xen/build.mk          | 18 ++++++++++++++++++
 8 files changed, 51 insertions(+), 64 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index ed61f38dd335..7bb3595d649f 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -285,8 +285,21 @@ CFLAGS += -flto
 LDFLAGS-$(CONFIG_CC_IS_CLANG) += -plugin LLVMgold.so
 endif
 
+# Note that link order matters!
+ALL_OBJS-y                := common/built_in.o
+ALL_OBJS-y                += drivers/built_in.o
+ALL_OBJS-y                += lib/built_in.o
+ALL_OBJS-y                += xsm/built_in.o
+ALL_OBJS-y                += arch/$(TARGET_ARCH)/built_in.o
+ALL_OBJS-$(CONFIG_CRYPTO) += crypto/built_in.o
+
+ALL_LIBS-y                := lib/lib.a
+
 include $(BASEDIR)/arch/$(TARGET_ARCH)/arch.mk
 
+export ALL_OBJS := $(ALL_OBJS-y)
+export ALL_LIBS := $(ALL_LIBS-y)
+
 # define new variables to avoid the ones defined in Config.mk
 export XEN_CFLAGS := $(CFLAGS)
 export XEN_AFLAGS := $(AFLAGS)
@@ -407,7 +420,7 @@ $(TARGET): FORCE
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C include
 	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) include
 	$(MAKE) -f $(BASEDIR)/Rules.mk arch/$(TARGET_ARCH)/include/asm/asm-offsets.h
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
+	$(MAKE) -f $(BASEDIR)/Rules.mk $@
 
 SUBDIRS = xsm arch/$(TARGET_ARCH) common drivers lib test
 define all_sources
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 7b8b9047cfd5..77d359bedaf8 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -8,25 +8,12 @@
 include $(XEN_ROOT)/Config.mk
 include $(BASEDIR)/scripts/Kbuild.include
 
-# Note that link order matters!
-ALL_OBJS-y               += $(BASEDIR)/common/built_in.o
-ALL_OBJS-y               += $(BASEDIR)/drivers/built_in.o
-ALL_OBJS-y               += $(BASEDIR)/lib/built_in.o
-ALL_OBJS-y               += $(BASEDIR)/xsm/built_in.o
-ALL_OBJS-y               += $(BASEDIR)/arch/$(TARGET_ARCH)/built_in.o
-ALL_OBJS-$(CONFIG_CRYPTO)   += $(BASEDIR)/crypto/built_in.o
-
-ALL_LIBS-y               := $(BASEDIR)/lib/lib.a
-
 # Initialise some variables
 lib-y :=
 targets :=
 CFLAGS-y :=
 AFLAGS-y :=
 
-ALL_OBJS := $(ALL_OBJS-y)
-ALL_LIBS := $(ALL_LIBS-y)
-
 SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
                                             $(foreach w,1 2 4, \
                                                         rodata.str$(w).$(a)) \
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index d0dee10102b6..14952275772b 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -75,14 +75,6 @@ ifneq ($(CONFIG_DTB_FILE),"")
 obj-y += dtb.o
 endif
 
-ALL_OBJS := $(TARGET_SUBARCH)/head.o $(ALL_OBJS)
-
-# head.o is built by descending into the sub-directory, depends on the part of
-# $(ALL_OBJS) that will eventually recurse into $(TARGET_SUBARCH)/ and build
-# head.o
-$(TARGET_SUBARCH)/head.o: $(BASEDIR)/arch/arm/built_in.o
-$(TARGET_SUBARCH)/head.o: ;
-
 ifdef CONFIG_LIVEPATCH
 all_symbols = --all-symbols
 ifdef CONFIG_FAST_SYMBOL_LOOKUP
@@ -98,33 +90,18 @@ ifeq ($(CONFIG_ARM_64),y)
 	ln -sf $(@F) $@.efi
 endif
 
-ifeq ($(CONFIG_LTO),y)
-# Gather all LTO objects together
-prelink_lto.o: $(ALL_OBJS) $(ALL_LIBS)
-	$(LD_LTO) -r -o $@ $(filter-out %.a,$^) --start-group $(filter %.a,$^) --end-group
-
-# Link it with all the binary objects
-prelink.o: $(patsubst %/built_in.o,%/built_in_bin.o,$(ALL_OBJS)) prelink_lto.o
-	$(call if_changed,ld)
-else
-prelink.o: $(ALL_OBJS) $(ALL_LIBS) FORCE
-	$(call if_changed,ld)
-endif
-
-targets += prelink.o
-
-$(TARGET)-syms: prelink.o xen.lds
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N prelink.o \
+$(TARGET)-syms: $(BASEDIR)/prelink.o xen.lds
+	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< \
 	    $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0
 	$(NM) -pa --format=sysv $(@D)/.$(@F).0 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0.o
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N prelink.o \
+	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< \
 	    $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
 	$(NM) -pa --format=sysv $(@D)/.$(@F).1 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1.o
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N prelink.o $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).1.o -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
 		| $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort \
diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk
index e69de29bb2d1..290609487605 100644
--- a/xen/arch/arm/Rules.mk
+++ b/xen/arch/arm/Rules.mk
@@ -0,0 +1,5 @@
+# head.o is built by descending into arch/arm/$(TARGET_SUBARCH), depends on the
+# part of $(ALL_OBJS) that will eventually recurse into $(TARGET_SUBARCH)/ and
+# build head.o
+arch/arm/$(TARGET_SUBARCH)/head.o: arch/arm/built_in.o
+arch/arm/$(TARGET_SUBARCH)/head.o: ;
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index c3ac443b3788..ba3f140e2ea7 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -26,3 +26,5 @@ ifeq ($(CONFIG_ARM64_ERRATUM_843419),y)
         LDFLAGS += --fix-cortex-a53-843419
     endif
 endif
+
+ALL_OBJS-y := arch/arm/$(TARGET_SUBARCH)/head.o $(ALL_OBJS-y)
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index d7d2adc1881e..b469ec8f2452 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -123,37 +123,20 @@ $(TARGET): $(TARGET)-syms $(efi-y) boot/mkelf32
 
 CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 
-ALL_OBJS := $(BASEDIR)/arch/x86/boot/built_in.o $(BASEDIR)/arch/x86/efi/built_in.o $(ALL_OBJS)
-
-ifeq ($(CONFIG_LTO),y)
-# Gather all LTO objects together
-prelink_lto.o: $(ALL_OBJS) $(ALL_LIBS)
-	$(LD_LTO) -r -o $@ $(filter-out %.a,$^) --start-group $(filter %.a,$^) --end-group
-
-# Link it with all the binary objects
-prelink.o: $(patsubst %/built_in.o,%/built_in_bin.o,$(ALL_OBJS)) prelink_lto.o FORCE
-	$(call if_changed,ld)
-else
-prelink.o: $(ALL_OBJS) $(ALL_LIBS) FORCE
-	$(call if_changed,ld)
-endif
-
-targets += prelink.o
-
-$(TARGET)-syms: prelink.o xen.lds
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N prelink.o $(build_id_linker) \
+$(TARGET)-syms: $(BASEDIR)/prelink.o xen.lds
+	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< $(build_id_linker) \
 	    $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0
 	$(NM) -pa --format=sysv $(@D)/.$(@F).0 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort \
 		>$(@D)/.$(@F).0.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).0.o
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N prelink.o $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
 	$(NM) -pa --format=sysv $(@D)/.$(@F).1 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		>$(@D)/.$(@F).1.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).1.o
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N prelink.o $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).1.o -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
 		| $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort \
@@ -206,7 +189,7 @@ note_file_option ?= $(note_file)
 
 ifeq ($(XEN_BUILD_PE),y)
 extra-y += efi.lds
-$(TARGET).efi: prelink.o $(note_file) efi.lds efi/relocs-dummy.o efi/mkreloc
+$(TARGET).efi: $(BASEDIR)/prelink.o $(note_file) efi.lds efi/relocs-dummy.o efi/mkreloc
 ifeq ($(CONFIG_DEBUG_INFO),y)
 	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
 endif
@@ -235,7 +218,7 @@ $(TARGET).efi: FORCE
 	echo '$(if $(filter y,$(XEN_BUILD_EFI)),xen.efi generation,EFI support) disabled'
 endif
 
-efi/buildid.o efi/relocs-dummy.o: $(BASEDIR)/arch/x86/efi/built_in.o
+# These should already have been rebuilt when building the prerequisite of "prelink.o"
 efi/buildid.o efi/relocs-dummy.o: ;
 
 .PHONY: include
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 19c9cd206ed0..c830dc5b3a7c 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -104,3 +104,5 @@ endif
 
 # Set up the assembler include path properly for older toolchains.
 CFLAGS += -Wa,-I$(BASEDIR)/include
+
+ALL_OBJS-y := arch/x86/boot/built_in.o arch/x86/efi/built_in.o $(ALL_OBJS-y)
diff --git a/xen/build.mk b/xen/build.mk
index 622e841c1cc0..740945333a97 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -58,3 +58,21 @@ arch/$(TARGET_ARCH)/include/asm/asm-offsets.h: asm-offsets.s
 	  sed -rne "/^[^#].*==>/{s:.*==>(.*)<==.*:\1:; s: [\$$#]: :; p;}"; \
 	  echo ""; \
 	  echo "#endif") <$< >$@
+
+ifeq ($(CONFIG_LTO),y)
+# Gather all LTO objects together
+prelink_lto.o: $(ALL_OBJS) $(ALL_LIBS)
+	$(LD_LTO) -r -o $@ $(filter-out %.a,$^) --start-group $(filter %.a,$^) --end-group
+
+# Link it with all the binary objects
+prelink.o: $(patsubst %/built_in.o,%/built_in_bin.o,$(ALL_OBJS)) prelink_lto.o FORCE
+	$(call if_changed,ld)
+else
+prelink.o: $(ALL_OBJS) $(ALL_LIBS) FORCE
+	$(call if_changed,ld)
+endif
+
+targets += prelink.o
+
+$(TARGET): prelink.o FORCE
+	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231216.400014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzX-0001Ng-JO; Thu, 25 Nov 2021 13:40:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231216.400014; Thu, 25 Nov 2021 13:40:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzX-0001NV-FM; Thu, 25 Nov 2021 13:40:47 +0000
Received: by outflank-mailman (input) for mailman id 231216;
 Thu, 25 Nov 2021 13:40:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzV-0007NX-Pl
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:46 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 489119eb-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:40:43 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 489119eb-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847643;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=+DoWpOrefy3bHbiRl5UkcJKrpDvZ4sPNeqaYR9dgkv4=;
  b=WSwm5w6TDp7FLQxhr/edNBrRlwO/jFdGWVuQ9DrF8qwl1A3PNKz7dWvM
   hr/VkKpbeZjUa/jH1ok7bgS/ufeYSZ+oLRN/SoVbtgHZygyM78Z1AwVoi
   yEmfsGLNwphIAHXxDRzHJlkwiVTrS/rwAtCFNxc17nCwhODBdG9cFJe9j
   8=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 5SAE3Vdl+VXpcPW9+Tcu0tse76XkPGg7nmppH5xQjGlyzo8CWDvUh5KhCI1YkpWKvwxXU6NYOm
 zheUzYseNFauf97cUhDaJrG9Yuoa5g9LJ37icMMdnpxaH6VrFbJo9PY9sK/K+cJLUk1l9XFjY7
 OWuXxNGs0fyVlv2cGWsdWZtGF8v3sllIeypFnZgCQB4i5qCz6/UhbcMw/Li+xQfOtEgPrK0iWz
 PiykNjzE81XebA1g6rXRWTsN4yW2ZaF/Pj3L5Ny03noHhRDT+FzttF3O3ThkZF509nrWsE2yLm
 2IoF8/le0beND+pFaUgpLKEx
X-SBRS: 5.1
X-MesageID: 60634096
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:li7D1awx9xALB9RWkl96t+dRwCrEfRIJ4+MujC+fZmUNrF6WrkUDz
 jcZCGnXafzYYWPxctslaYiyphtVusfRm9FnTApqrSAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRk2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt8ksw
 vZJnML3cxw0EKzuyfUNSRh1NAgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVors0lMMnsOpJZonx6xCvVJf0nXYrCU+PB4towMDIY2JgQRqqGN
 pRxhTxHRTDLUyZNOE0sEbkmkOa1iX7bdz1EgQfAzUYwyzeKl1EguFT3C/LrfdiNSdRQj1yvj
 GvM9GTkATkXLNWajzGC9xqEmevnjS79HoUIG9WQ/PNwnEeawGBVDRQMTEa6utGwkEv4UNVaQ
 2QY4jErrLQy3EWzQ8PhQgajp3qZoh8bXcEWGOo/gCmBxabZ7ByQLnQVRT5GLto9vYk5QiJC/
 l2Dks7tBDdvmKaIUn/b/bCRxRuiNC5QIWIcaCssSQoe/8KlsIw1lgjITNtoDOiylNKdMTDvw
 RiaoS4mnbIRgMUXkaKh8jjvmCmwr5LESgo04AT/XW+/6A59Iom/aOSA60Xf7PtGBJaUSB+Gp
 ndspiSFxLlQV9fXznXLGbhTWuHyjxqYDNHCqUcyFbol3mrqwWW+U4FysSBuPkZEFe9RLFcFf
 3TvkQ9W4ZZSOl6jYql2f5+9BqwW8ETwKTj2fquKN4QTO/CdYCfCpXgzPhDIgwgBhWB1yflnU
 ap3Z/pAGprz5U5P6DOtD9kQ3rYwrszV7TOCHMurp/hLPFf3WZJ0dVvnGAfRBgzaxPndyOkwz
 zq4H5HXoyizqMWkPkHqHXc7dDjm10QTC5HssNBwfeWeOAdgE2xJI6aPmux+JN01z/UPyLagE
 pSBtqhwkgSXuJE6AV/SNiALhE3HAf6TUk7XzQRzZA31ihDPkK6k7bsFdotfQFXU3LcL8BKAd
 NFcI5/oKq0WElzvom1BBbGg/N0KXEn63mqmYnv6CAXTirY9HmQlDPe/JVCxnMTPZwLq3fYDT
 0qIilmGHMFdHls6V647qpuHljuMgJTUo8oqN2OgHzWZUByEHFFCJ3Ojg/kpDdsLLBmflDKW2
 xzPWUUTpPXXop9z+97M3PjWo4CsGup4P0xbA2iEsurmaXiEpjKukd1aTeKFXTHBT2eoqq+sU
 vpYkqPnO/odkVcU74clS+R3zbgz7sfErqNBylg2B23CalmmU+syInSP0cRVmLdKw7tV5Vm/V
 k6Vo4EIMrSVIsL1VlUWIVN9POiE0PgVnBjU7Og0fxqmtHMmouLfXBwLbReWiSFbIL9kC68fw
 L8s6JwM9giyqhs2KdLa3CpawHuBcy4bWKI9u5BEXIKy0lg3yktPaID3AzPt5M3dcM1FN0QnL
 2PGhKfGgLgAlEPOf2BqSCrI1OtZw58PpApL3BkJIFHQwojJgfo+3Rtw9zUrT1sKkkUbgrwrY
 mU7ZVdoIaiu/itzgJkRVm+hLAhNGRmF9xGj0FAOjmDYExGlW2GlwLfR4gpREJT1K15hQwU=
IronPort-HdrOrdr: A9a23:ZHX7Q61A/aZmQnHHy9KgcQqjBTdyeYIsimQD101hICG9Lfbo9f
 xGzc5rtiMc1gxwZJh5o6H/BEBEewKvyXcH2/hhAV7CZmfbUQSTXftfBOfZslrd8mjFh5FgPM
 RbAudD4b/LfCVHZK/BiWHSeblAsbz3lJxEnd2z854ud3AXV0gJ1XY7Nu/xKDwOeOAyP+tDKH
 Pq3Ls+m9PPQwVwUu2LQlMCUuT/uduOsJ79exYJCz4LgTP+zA+A2frRFRWV4wkZaihIy7s562
 TJ+jaJpplLh8vLiCM0mlWjt6i/V7Pau5d+Lf3JrvJQBiTniw6uaogkc7qevAotqOXq01oumM
 mkmWZqAywmgUm9QkiF5T/WnyXw2jcn7HHvjXWCh2H4nMD/TDUmT+JcmINwaHLimhsdleA59J
 gO83OStpJRAx+Ftj/6/cL0WxZjkVfxiWY+kNQUk2dUXeIlGeFsRLQkjRNo+ao7bX7HAcEcYb
 RT5fjnlaxrmIahHi/kVmoG+q3lYp18JGbJMxs/Ugr86UkSoJkz9Tpp+CUlpAZ1yHrmI6M0o9
 gsep4Y542mbvVmK56VV91xGPde/AT2MF/x2Fz7GyWQKEnxU0i94aIfpo9Fv92CeJsGyoY/kp
 WEUF4wjx90R6veM7zG4HQQyGG5fIyUZ0Wb9v1j
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634096"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>
Subject: [XEN PATCH v8 08/47] build: prepare to always invoke $(MAKE) from xen/, use $(obj)
Date: Thu, 25 Nov 2021 13:39:27 +0000
Message-ID: <20211125134006.1076646-9-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

In a future patch, when building a subdirectory, we will set
"obj=$subdir" rather than change directory.

Before that, we add "$(obj)" and "$(src)" in as many places as
possible where we will need to know which subdirectory is been built.
"$(obj)" is for files been generated during the build, and "$(src)" is
for files present in the source tree.

For now, we set both to "." in Rules.mk and Makefile.clean.

A few places don't tolerate the addition of "./", this is because make
remove the leading "./" in targets and dependencies in rules, so these
will be change later.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---

Notes:
    v8:
    - acked
    - rebased

 xen/Rules.mk                            |  5 ++-
 xen/arch/arm/Makefile                   | 14 ++++----
 xen/arch/x86/Makefile                   | 48 ++++++++++++-------------
 xen/arch/x86/boot/Makefile              | 14 ++++----
 xen/arch/x86/efi/Makefile               |  6 ++--
 xen/common/Makefile                     |  8 ++---
 xen/common/libelf/Makefile              |  4 +--
 xen/common/libfdt/Makefile              |  6 ++--
 xen/include/Makefile                    | 44 +++++++++++------------
 xen/scripts/Makefile.clean              |  5 ++-
 xen/xsm/flask/Makefile                  | 36 +++++++++----------
 xen/xsm/flask/policy/mkaccess_vector.sh |  7 ++--
 12 files changed, 103 insertions(+), 94 deletions(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index 77d359bedaf8..60d1d6c4f583 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -3,6 +3,9 @@
 # Makefile and are consumed by Rules.mk
 #
 
+obj := .
+src := $(obj)
+
 -include $(BASEDIR)/include/config/auto.conf
 
 include $(XEN_ROOT)/Config.mk
@@ -21,7 +24,7 @@ SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
                          $(foreach r,rel rel.ro,data.$(r).local)
 
 # The filename build.mk has precedence over Makefile
-include $(firstword $(wildcard build.mk) Makefile)
+include $(firstword $(wildcard $(src)/build.mk) $(src)/Makefile)
 
 # Linking
 # ---------------------------------------------------------------------------
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 14952275772b..c993ce72a341 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -90,18 +90,18 @@ ifeq ($(CONFIG_ARM_64),y)
 	ln -sf $(@F) $@.efi
 endif
 
-$(TARGET)-syms: $(BASEDIR)/prelink.o xen.lds
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< \
+$(TARGET)-syms: $(BASEDIR)/prelink.o $(obj)/xen.lds
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
 	    $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0
 	$(NM) -pa --format=sysv $(@D)/.$(@F).0 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0.o
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
 	    $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
 	$(NM) -pa --format=sysv $(@D)/.$(@F).1 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1.o
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).1.o -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
 		| $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort \
@@ -111,13 +111,13 @@ $(TARGET)-syms: $(BASEDIR)/prelink.o xen.lds
 .PHONY: include
 include:
 
-xen.lds: xen.lds.S FORCE
+$(obj)/xen.lds: $(src)/xen.lds.S FORCE
 	$(call if_changed,cpp_lds_S)
 
-dtb.o: $(patsubst "%",%,$(CONFIG_DTB_FILE))
+$(obj)/dtb.o: $(patsubst "%",%,$(CONFIG_DTB_FILE))
 
 .PHONY: clean
 clean::
-	rm -f xen.lds
+	rm -f $(obj)/xen.lds
 	rm -f $(BASEDIR)/.xen-syms.[0-9]*
 	rm -f $(TARGET).efi
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index b469ec8f2452..f9af39ba6138 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -81,7 +81,7 @@ extra-y += asm-macros.i
 extra-y += xen.lds
 
 ifneq ($(CONFIG_HVM),y)
-x86_emulate.o: CFLAGS-y += -Wno-unused-label
+$(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
 endif
 
 efi-y := $(shell if [ ! -r $(BASEDIR)/include/xen/compile.h -o \
@@ -112,8 +112,8 @@ syms-warn-dup-$(CONFIG_SUPPRESS_DUPLICATE_SYMBOL_WARNINGS) :=
 syms-warn-dup-$(CONFIG_ENFORCE_UNIQUE_SYMBOLS) := --error-dup
 
 $(TARGET): TMP = $(@D)/.$(@F).elf32
-$(TARGET): $(TARGET)-syms $(efi-y) boot/mkelf32
-	./boot/mkelf32 $(notes_phdrs) $(TARGET)-syms $(TMP) $(XEN_IMG_OFFSET) \
+$(TARGET): $(TARGET)-syms $(efi-y) $(obj)/boot/mkelf32
+	$(obj)/boot/mkelf32 $(notes_phdrs) $(TARGET)-syms $(TMP) $(XEN_IMG_OFFSET) \
 	               `$(NM) $(TARGET)-syms | sed -ne 's/^\([^ ]*\) . __2M_rwdata_end$$/0x\1/p'`
 	od -t x4 -N 8192 $(TMP)  | grep 1badb002 > /dev/null || \
 		{ echo "No Multiboot1 header found" >&2; false; }
@@ -123,27 +123,27 @@ $(TARGET): $(TARGET)-syms $(efi-y) boot/mkelf32
 
 CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 
-$(TARGET)-syms: $(BASEDIR)/prelink.o xen.lds
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< $(build_id_linker) \
+$(TARGET)-syms: $(BASEDIR)/prelink.o $(obj)/xen.lds
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0
 	$(NM) -pa --format=sysv $(@D)/.$(@F).0 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort \
 		>$(@D)/.$(@F).0.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).0.o
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
 	$(NM) -pa --format=sysv $(@D)/.$(@F).1 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		>$(@D)/.$(@F).1.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).1.o
-	$(LD) $(XEN_LDFLAGS) -T xen.lds -N $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).1.o -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
 		| $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		>$(@D)/$(@F).map
 	rm -f $(@D)/.$(@F).[0-9]* $(@D)/..$(@F).[0-9]*
 
-note.o: $(TARGET)-syms
+$(obj)/note.o: $(TARGET)-syms
 	$(OBJCOPY) -O binary --only-section=.note.gnu.build-id $< $@.bin
 	$(OBJCOPY) -I binary -O elf64-x86-64 -B i386:x86-64 \
 		--rename-section=.data=.note.gnu.build-id -S $@.bin $@
@@ -162,25 +162,25 @@ ifdef SOURCE_DATE_EPOCH
 EFI_LDFLAGS += --no-insert-timestamp
 endif
 
-$(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A VIRT_START$$,,p')
+$(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) $(obj)/efi/relocs-dummy.o | sed -n 's, A VIRT_START$$,,p')
 ifeq ($(MKRELOC),:)
 relocs-dummy :=
 $(TARGET).efi: ALT_BASE :=
 else
-relocs-dummy := efi/relocs-dummy.o
-$(TARGET).efi: ALT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A ALT_START$$,,p')
+relocs-dummy := $(obj)/efi/relocs-dummy.o
+$(TARGET).efi: ALT_BASE = 0x$(shell $(NM) $(obj)/efi/relocs-dummy.o | sed -n 's, A ALT_START$$,,p')
 endif
 
 ifneq ($(build_id_linker),)
 ifeq ($(call ld-ver-build-id,$(LD) $(filter -m%,$(EFI_LDFLAGS))),y)
 CFLAGS-y += -DBUILD_ID_EFI
 EFI_LDFLAGS += $(build_id_linker)
-note_file := efi/buildid.o
+note_file := $(obj)/efi/buildid.o
 # NB: this must be the last input in the linker call, because inputs following
 # the -b option will all be treated as being in the specified format.
 note_file_option := -b pe-x86-64 $(note_file)
 else
-note_file := note.o
+note_file := $(obj)/note.o
 endif
 else
 note_file :=
@@ -189,25 +189,25 @@ note_file_option ?= $(note_file)
 
 ifeq ($(XEN_BUILD_PE),y)
 extra-y += efi.lds
-$(TARGET).efi: $(BASEDIR)/prelink.o $(note_file) efi.lds efi/relocs-dummy.o efi/mkreloc
+$(TARGET).efi: $(BASEDIR)/prelink.o $(note_file) $(obj)/efi.lds $(obj)/efi/relocs-dummy.o $(obj)/efi/mkreloc
 ifeq ($(CONFIG_DEBUG_INFO),y)
 	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
 endif
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
-	          $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< $(relocs-dummy) \
+	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds -N $< $(relocs-dummy) \
 	                $(BASEDIR)/common/symbols-dummy.o $(note_file_option) -o $(@D)/.$(@F).$(base).0 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).0) >$(@D)/.$(@F).0r.S
 	$(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).0 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0s.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
-	          $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< \
+	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds -N $< \
 	                $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o $(note_file_option) -o $(@D)/.$(@F).$(base).1 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).1) >$(@D)/.$(@F).1r.S
 	$(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).1 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1s.S
 	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o
-	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T efi.lds -N $< \
+	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds -N $< \
 	                $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o $(note_file_option) -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
 		| $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort >$(@D)/$(@F).map
@@ -219,14 +219,14 @@ $(TARGET).efi: FORCE
 endif
 
 # These should already have been rebuilt when building the prerequisite of "prelink.o"
-efi/buildid.o efi/relocs-dummy.o: ;
+$(obj)/efi/buildid.o $(obj)/efi/relocs-dummy.o: ;
 
 .PHONY: include
 include: $(BASEDIR)/arch/x86/include/asm/asm-macros.h
 
-asm-macros.i: CFLAGS-y += -D__ASSEMBLY__ -P
+$(obj)/asm-macros.i: CFLAGS-y += -D__ASSEMBLY__ -P
 
-$(BASEDIR)/arch/x86/include/asm/asm-macros.h: asm-macros.i Makefile
+$(BASEDIR)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefile
 	echo '#if 0' >$@.new
 	echo '.if 0' >>$@.new
 	echo '#endif' >>$@.new
@@ -240,14 +240,14 @@ $(BASEDIR)/arch/x86/include/asm/asm-macros.h: asm-macros.i Makefile
 	echo '#endif' >>$@.new
 	$(call move-if-changed,$@.new,$@)
 
-efi.lds: AFLAGS-y += -DEFI
-xen.lds efi.lds: xen.lds.S FORCE
+$(obj)/efi.lds: AFLAGS-y += -DEFI
+$(obj)/xen.lds $(obj)/efi.lds: $(src)/xen.lds.S FORCE
 	$(call if_changed,cpp_lds_S)
 
-boot/mkelf32: boot/mkelf32.c
+$(obj)/boot/mkelf32: $(src)/boot/mkelf32.c
 	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
 
-efi/mkreloc: efi/mkreloc.c
+$(obj)/efi/mkreloc: $(src)/efi/mkreloc.c
 	$(HOSTCC) $(HOSTCFLAGS) -g -o $@ $<
 
 .PHONY: clean
diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index d2eb277d428f..0aec8a464364 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -1,8 +1,8 @@
 obj-bin-y += head.o
 
-DEFS_H_DEPS = defs.h $(BASEDIR)/include/xen/stdbool.h
+DEFS_H_DEPS = $(src)/defs.h $(BASEDIR)/include/xen/stdbool.h
 
-CMDLINE_DEPS = $(DEFS_H_DEPS) video.h \
+CMDLINE_DEPS = $(DEFS_H_DEPS) $(src)/video.h \
 	       $(BASEDIR)/include/xen/kconfig.h \
 	       $(BASEDIR)/include/generated/autoconf.h
 
@@ -14,10 +14,10 @@ RELOC_DEPS = $(DEFS_H_DEPS) \
 	     $(BASEDIR)/include/xen/const.h \
 	     $(BASEDIR)/include/public/arch-x86/hvm/start_info.h
 
-head.o: cmdline.S reloc.S
+$(obj)/head.o: $(obj)/cmdline.S $(obj)/reloc.S
 
-cmdline.S: cmdline.c $(CMDLINE_DEPS) build32.lds
-	$(MAKE) -f build32.mk $@ CMDLINE_DEPS="$(CMDLINE_DEPS)"
+$(obj)/cmdline.S: $(src)/cmdline.c $(CMDLINE_DEPS) $(src)/build32.lds
+	$(MAKE) -f build32.mk -C $(obj) $(@F) CMDLINE_DEPS="$(CMDLINE_DEPS)"
 
-reloc.S: reloc.c $(RELOC_DEPS) build32.lds
-	$(MAKE) -f build32.mk $@ RELOC_DEPS="$(RELOC_DEPS)"
+$(obj)/reloc.S: $(src)/reloc.c $(RELOC_DEPS) $(src)/build32.lds
+	$(MAKE) -f build32.mk -C $(obj) $(@F) RELOC_DEPS="$(RELOC_DEPS)"
diff --git a/xen/arch/x86/efi/Makefile b/xen/arch/x86/efi/Makefile
index 87b927ed865b..ac815f02cb5e 100644
--- a/xen/arch/x86/efi/Makefile
+++ b/xen/arch/x86/efi/Makefile
@@ -3,16 +3,16 @@ CFLAGS-y += -fshort-wchar
 quiet_cmd_objcopy_o_ihex = OBJCOPY $@
 cmd_objcopy_o_ihex = $(OBJCOPY) -I ihex -O binary $< $@
 
-%.o: %.ihex FORCE
+$(obj)/%.o: $(src)/%.ihex FORCE
 	$(call if_changed,objcopy_o_ihex)
 
-boot.init.o: buildid.o
+$(obj)/boot.init.o: $(obj)/buildid.o
 
 EFIOBJ-y := boot.init.o pe.init.o ebmalloc.o runtime.o
 EFIOBJ-$(CONFIG_COMPAT) += compat.o
 
 $(call cc-option-add,cflags-stack-boundary,CC,-mpreferred-stack-boundary=4)
-$(EFIOBJ-y): CFLAGS-stack-boundary := $(cflags-stack-boundary)
+$(addprefix $(obj)/,$(EFIOBJ-y)): CFLAGS-stack-boundary := $(cflags-stack-boundary)
 
 obj-y := stub.o
 obj-$(XEN_BUILD_EFI) := $(filter-out %.init.o,$(EFIOBJ-y))
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 141d7d40d3dc..ca839118e4d1 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -75,13 +75,13 @@ obj-$(CONFIG_NEEDS_LIBELF) += libelf/
 obj-$(CONFIG_HAS_DEVICE_TREE) += libfdt/
 
 CONF_FILE := $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(BASEDIR)/)$(KCONFIG_CONFIG)
-config.gz: $(CONF_FILE)
+$(obj)/config.gz: $(CONF_FILE)
 	gzip -n -c $< >$@
 
-config_data.o: config.gz
+$(obj)/config_data.o: $(obj)/config.gz
 
-config_data.S: $(BASEDIR)/tools/binfile FORCE
-	$(call if_changed,binfile,config.gz xen_config_data)
+$(obj)/config_data.S: $(BASEDIR)/tools/binfile FORCE
+	$(call if_changed,binfile,$(obj)/config.gz xen_config_data)
 targets += config_data.S
 
 clean::
diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile
index a92326c982e9..8a4522e4e141 100644
--- a/xen/common/libelf/Makefile
+++ b/xen/common/libelf/Makefile
@@ -7,10 +7,10 @@ OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
 
 CFLAGS-y += -Wno-pointer-sign
 
-libelf.o: libelf-temp.o FORCE
+$(obj)/libelf.o: $(obj)/libelf-temp.o FORCE
 	$(call if_changed,objcopy)
 
-libelf-temp.o: $(libelf-objs) FORCE
+$(obj)/libelf-temp.o: $(addprefix $(obj)/,$(libelf-objs)) FORCE
 	$(call if_changed,ld)
 
 extra-y += libelf-temp.o $(libelf-objs)
diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
index 6bd207cf8ffa..6708af12e583 100644
--- a/xen/common/libfdt/Makefile
+++ b/xen/common/libfdt/Makefile
@@ -1,4 +1,4 @@
-include Makefile.libfdt
+include $(src)/Makefile.libfdt
 
 SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
 OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
@@ -8,10 +8,10 @@ nocov-y += libfdt.o
 
 CFLAGS-y += -I$(BASEDIR)/include/xen/libfdt/
 
-libfdt.o: libfdt-temp.o FORCE
+$(obj)/libfdt.o: $(obj)/libfdt-temp.o FORCE
 	$(call if_changed,objcopy)
 
-libfdt-temp.o: $(LIBFDT_OBJS) FORCE
+$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(LIBFDT_OBJS)) FORCE
 	$(call if_changed,ld)
 
 extra-y += libfdt-temp.o $(LIBFDT_OBJS)
diff --git a/xen/include/Makefile b/xen/include/Makefile
index 95daa8a28975..d2f5a956a11a 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -39,57 +39,57 @@ cppflags-$(CONFIG_X86)    += -m32
 
 endif
 
-public-$(CONFIG_X86) := $(wildcard public/arch-x86/*.h public/arch-x86/*/*.h)
-public-$(CONFIG_ARM) := $(wildcard public/arch-arm/*.h public/arch-arm/*/*.h)
+public-$(CONFIG_X86) := $(wildcard $(src)/public/arch-x86/*.h $(src)/public/arch-x86/*/*.h)
+public-$(CONFIG_ARM) := $(wildcard $(src)/public/arch-arm/*.h $(src)/public/arch-arm/*/*.h)
 
 .PHONY: all
-all: $(headers-y)
+all: $(addprefix $(obj)/,$(headers-y))
 
-compat/%.h: compat/%.i Makefile $(BASEDIR)/tools/compat-build-header.py
-	$(PYTHON) $(BASEDIR)/tools/compat-build-header.py <$< $@ >>$@.new; \
+$(obj)/compat/%.h: $(obj)/compat/%.i $(src)/Makefile $(BASEDIR)/tools/compat-build-header.py
+	$(PYTHON) $(BASEDIR)/tools/compat-build-header.py <$< $(patsubst $(obj)/%,%,$@) >>$@.new; \
 	mv -f $@.new $@
 
-compat/%.i: compat/%.c Makefile
+$(obj)/compat/%.i: $(obj)/compat/%.c $(src)/Makefile
 	$(CPP) $(filter-out -Wa$(comma)% -include %/include/xen/config.h,$(XEN_CFLAGS)) $(cppflags-y) -o $@ $<
 
-compat/%.c: public/%.h xlat.lst Makefile $(BASEDIR)/tools/compat-build-source.py
+$(obj)/compat/%.c: $(src)/public/%.h $(src)/xlat.lst $(src)/Makefile $(BASEDIR)/tools/compat-build-source.py
 	mkdir -p $(@D)
-	$(PYTHON) $(BASEDIR)/tools/compat-build-source.py xlat.lst <$< >$@.new
+	$(PYTHON) $(BASEDIR)/tools/compat-build-source.py $(src)/xlat.lst <$< >$@.new
 	mv -f $@.new $@
 
-compat/.xlat/%.h: compat/%.h compat/.xlat/%.lst $(BASEDIR)/tools/get-fields.sh Makefile
+$(obj)/compat/.xlat/%.h: $(obj)/compat/%.h $(obj)/compat/.xlat/%.lst $(BASEDIR)/tools/get-fields.sh $(src)/Makefile
 	export PYTHON=$(PYTHON); \
 	while read what name; do \
 		$(SHELL) $(BASEDIR)/tools/get-fields.sh "$$what" compat_$$name $< || exit $$?; \
 	done <$(patsubst compat/%,compat/.xlat/%,$(basename $<)).lst >$@.new
 	mv -f $@.new $@
 
-.PRECIOUS: compat/.xlat/%.lst
-compat/.xlat/%.lst: xlat.lst Makefile
+.PRECIOUS: $(obj)/compat/.xlat/%.lst
+$(obj)/compat/.xlat/%.lst: $(src)/xlat.lst $(src)/Makefile
 	mkdir -p $(@D)
 	grep -v '^[[:blank:]]*#' $< | sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,[[:blank:]]+$*\.h[[:blank:]]*$$,,p' >$@.new
 	$(call move-if-changed,$@.new,$@)
 
-xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,^[?!][[:blank:]]+[^[:blank:]]+[[:blank:]]+,,p' xlat.lst | uniq)
+xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,^[?!][[:blank:]]+[^[:blank:]]+[[:blank:]]+,,p' $(src)/xlat.lst | uniq)
 xlat-y := $(filter $(patsubst compat/%,%,$(headers-y)),$(xlat-y))
 
-compat/xlat.h: $(addprefix compat/.xlat/,$(xlat-y)) config/auto.conf Makefile
+$(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) $(obj)/config/auto.conf $(src)/Makefile
 	cat $(filter %.h,$^) >$@.new
 	mv -f $@.new $@
 
 ifeq ($(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
 
-all: headers.chk headers99.chk headers++.chk
+all: $(obj)/headers.chk $(obj)/headers99.chk $(obj)/headers++.chk
 
-PUBLIC_HEADERS := $(filter-out public/arch-% public/dom0_ops.h, $(wildcard public/*.h public/*/*.h) $(public-y))
+PUBLIC_HEADERS := $(filter-out $(src)/public/arch-% $(src)/public/dom0_ops.h, $(wildcard $(src)/public/*.h $(src)/public/*/*.h) $(public-y))
 
-PUBLIC_C99_HEADERS := public/io/9pfs.h public/io/pvcalls.h
-PUBLIC_ANSI_HEADERS := $(filter-out public/%ctl.h public/xsm/% public/%hvm/save.h $(PUBLIC_C99_HEADERS), $(PUBLIC_HEADERS))
+PUBLIC_C99_HEADERS := $(src)/public/io/9pfs.h $(src)/public/io/pvcalls.h
+PUBLIC_ANSI_HEADERS := $(filter-out $(src)/public/%ctl.h $(src)/public/xsm/% $(src)/public/%hvm/save.h $(PUBLIC_C99_HEADERS), $(PUBLIC_HEADERS))
 
 public/io/9pfs.h-prereq := string
 public/io/pvcalls.h-prereq := string
 
-headers.chk: $(PUBLIC_ANSI_HEADERS) Makefile
+$(obj)/headers.chk: $(PUBLIC_ANSI_HEADERS) $(src)/Makefile
 	for i in $(filter %.h,$^); do \
 	    $(CC) -x c -ansi -Wall -Werror -include stdint.h \
 	          -S -o /dev/null $$i || exit 1; \
@@ -97,7 +97,7 @@ headers.chk: $(PUBLIC_ANSI_HEADERS) Makefile
 	done >$@.new
 	mv $@.new $@
 
-headers99.chk: $(PUBLIC_C99_HEADERS) Makefile
+$(obj)/headers99.chk: $(PUBLIC_C99_HEADERS) $(src)/Makefile
 	rm -f $@.new
 	$(foreach i, $(filter %.h,$^),                                        \
 	    echo "#include "\"$(i)\"                                          \
@@ -107,7 +107,7 @@ headers99.chk: $(PUBLIC_C99_HEADERS) Makefile
 	    || exit $$?; echo $(i) >> $@.new;)
 	mv $@.new $@
 
-headers++.chk: $(PUBLIC_HEADERS) Makefile
+$(obj)/headers++.chk: $(PUBLIC_HEADERS) $(src)/Makefile
 	rm -f $@.new
 	if ! $(CXX) -v >/dev/null 2>&1; then                                  \
 	    touch $@.new;                                                     \
@@ -116,7 +116,7 @@ headers++.chk: $(PUBLIC_HEADERS) Makefile
 	$(foreach i, $(filter %.h,$^),                                        \
 	    echo "#include "\"$(i)\"                                          \
 	    | $(CXX) -x c++ -std=gnu++98 -Wall -Werror -D__XEN_TOOLS__        \
-	      -include stdint.h -include public/xen.h                         \
+	      -include stdint.h -include $(src)/public/xen.h                  \
 	      $(foreach j, $($(i)-prereq), -include c$(j)) -S -o /dev/null -  \
 	    || exit $$?; echo $(i) >> $@.new;)
 	mv $@.new $@
@@ -126,7 +126,7 @@ endif
 ifeq ($(XEN_TARGET_ARCH),x86_64)
 .PHONY: lib-x86-all
 lib-x86-all:
-	$(MAKE) -C xen/lib/x86 all
+	$(MAKE) -C $(obj)/xen/lib/x86 all
 
 all: lib-x86-all
 endif
diff --git a/xen/scripts/Makefile.clean b/xen/scripts/Makefile.clean
index 8582ec35e4da..c3b0681611da 100644
--- a/xen/scripts/Makefile.clean
+++ b/xen/scripts/Makefile.clean
@@ -3,11 +3,14 @@
 # Cleaning up
 # ==========================================================================
 
+obj := .
+src := $(obj)
+
 clean::
 
 include $(BASEDIR)/scripts/Kbuild.include
 
-include Makefile
+include $(src)/Makefile
 
 # Figure out what we need to clean from the various variables
 # ==========================================================================
diff --git a/xen/xsm/flask/Makefile b/xen/xsm/flask/Makefile
index 11c530dcf458..51fd37f6c4d5 100644
--- a/xen/xsm/flask/Makefile
+++ b/xen/xsm/flask/Makefile
@@ -4,46 +4,46 @@ obj-y += flask_op.o
 
 obj-y += ss/
 
-CFLAGS-y += -I./include
+CFLAGS-y += -I$(obj)/include
 
 AWK = awk
 
-FLASK_H_DEPEND = policy/security_classes policy/initial_sids
-AV_H_DEPEND = policy/access_vectors
+FLASK_H_DEPEND := $(addprefix $(src)/policy/,security_classes initial_sids)
+AV_H_DEPEND = $(src)/policy/access_vectors
 
-FLASK_H_FILES = include/flask.h include/class_to_string.h include/initial_sid_to_string.h
-AV_H_FILES = include/av_perm_to_string.h include/av_permissions.h
-ALL_H_FILES = $(FLASK_H_FILES) $(AV_H_FILES)
+FLASK_H_FILES := flask.h class_to_string.h initial_sid_to_string.h
+AV_H_FILES := av_perm_to_string.h av_permissions.h
+ALL_H_FILES := $(addprefix include/,$(FLASK_H_FILES) $(AV_H_FILES))
 
-$(obj-y) ss/built_in.o: $(ALL_H_FILES)
+$(addprefix $(obj)/,$(obj-y)) $(obj)/ss/built_in.o: $(addprefix $(obj)/,$(ALL_H_FILES))
 extra-y += $(ALL_H_FILES)
 
-mkflask := policy/mkflask.sh
+mkflask := $(src)/policy/mkflask.sh
 quiet_cmd_mkflask = MKFLASK $@
-cmd_mkflask = $(SHELL) $(mkflask) $(AWK) include $(FLASK_H_DEPEND)
+cmd_mkflask = $(SHELL) $(mkflask) $(AWK) $(obj)/include $(FLASK_H_DEPEND)
 
-$(subst include/,%/,$(FLASK_H_FILES)): $(FLASK_H_DEPEND) $(mkflask) FORCE
+$(addprefix $(obj)/%/,$(FLASK_H_FILES)): $(FLASK_H_DEPEND) $(mkflask) FORCE
 	$(call if_changed,mkflask)
 
-mkaccess := policy/mkaccess_vector.sh
+mkaccess := $(src)/policy/mkaccess_vector.sh
 quiet_cmd_mkaccess = MKACCESS VECTOR $@
-cmd_mkaccess = $(SHELL) $(mkaccess) $(AWK) $(AV_H_DEPEND)
+cmd_mkaccess = $(SHELL) $(mkaccess) $(AWK) $(obj)/include $(AV_H_DEPEND)
 
-$(subst include/,%/,$(AV_H_FILES)): $(AV_H_DEPEND) $(mkaccess) FORCE
+$(addprefix $(obj)/%/,$(AV_H_FILES)): $(AV_H_DEPEND) $(mkaccess) FORCE
 	$(call if_changed,mkaccess)
 
 obj-bin-$(CONFIG_XSM_FLASK_POLICY) += flask-policy.o
-flask-policy.o: policy.bin
+$(obj)/flask-policy.o: $(obj)/policy.bin
 
-flask-policy.S: BINFILE_FLAGS := -i
-flask-policy.S: $(BASEDIR)/tools/binfile FORCE
-	$(call if_changed,binfile,policy.bin xsm_flask_init_policy)
+$(obj)/flask-policy.S: BINFILE_FLAGS := -i
+$(obj)/flask-policy.S: $(BASEDIR)/tools/binfile FORCE
+	$(call if_changed,binfile,$(obj)/policy.bin xsm_flask_init_policy)
 targets += flask-policy.S
 
 FLASK_BUILD_DIR := $(CURDIR)
 POLICY_SRC := $(FLASK_BUILD_DIR)/xenpolicy-$(XEN_FULLVERSION)
 
-policy.bin: FORCE
+$(obj)/policy.bin: FORCE
 	$(MAKE) -f $(XEN_ROOT)/tools/flask/policy/Makefile.common \
 	        -C $(XEN_ROOT)/tools/flask/policy \
 	        FLASK_BUILD_DIR=$(FLASK_BUILD_DIR) POLICY_FILENAME=$(POLICY_SRC)
diff --git a/xen/xsm/flask/policy/mkaccess_vector.sh b/xen/xsm/flask/policy/mkaccess_vector.sh
index 942ede4713f1..ad9772193bff 100755
--- a/xen/xsm/flask/policy/mkaccess_vector.sh
+++ b/xen/xsm/flask/policy/mkaccess_vector.sh
@@ -8,9 +8,12 @@ set -e
 awk=$1
 shift
 
+output_dir=$1
+shift
+
 # output files
-av_permissions="include/av_permissions.h"
-av_perm_to_string="include/av_perm_to_string.h"
+av_permissions="$output_dir/av_permissions.h"
+av_perm_to_string="$output_dir/av_perm_to_string.h"
 
 cat $* | $awk "
 BEGIN	{
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231217.400026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEza-0001pR-4q; Thu, 25 Nov 2021 13:40:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231217.400026; Thu, 25 Nov 2021 13:40:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzZ-0001oU-TX; Thu, 25 Nov 2021 13:40:49 +0000
Received: by outflank-mailman (input) for mailman id 231217;
 Thu, 25 Nov 2021 13:40:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzY-00076i-4K
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:48 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4a35d60d-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:40:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a35d60d-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847646;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=0Qk7QJytYsP1D9c/kGPePeSzFTMWtSOdoBjtTAGXneQ=;
  b=ckLBolWo28cuqFIgMK9D8dLQnlvcTP5HsqnSN0QAqkhaNfUo4V5Sz621
   fURgiE8WsdoCzxp+RogxxQ/XeVtAk7PpPyaik8x5zMr5teIMe0ZpSB2R4
   WCVgnJtkhLuLuj6xp5cfbegIVOssJjzlfT8jMbLDCq1MWgz7LvtF2sCZy
   c=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: xHNp3YLKbZ03i7NzjHDCwsRxTS1zoIYGH3M/WEB58jY6Wav6qUK2vg81HijqwWpijSK4vW0Ddp
 tUchtlzQ6Kez0AlMiLCu6IyANiusc/AUTf5++rycOv8odPEowxix3tF86OJQtSATStJjC2CQzz
 jRD3boS4bC8gKOgLuL97l4t8r+B1U+21DKYbidLMgFhDimT9BFPZ+Mf1eeBLm1mzJbEspPChaI
 TOdbtHIFudsahcLeh6hirPZjXfOlpas0rZhK8pISQxLpKR9QZbrGEgVCoZyyeWb+Ey/0462Not
 xgE5hAsPsGbiwBARO/IkBkQ4
X-SBRS: 5.1
X-MesageID: 58135420
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:jvw3Vq3wW61z6ozrpPbD5UZ2kn2cJEfYwER7XKvMYLTBsI5bpzEHz
 2JOUWqHbq2LNmTxeo0na9zn9x8AvJOByd41HlRppC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbNh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhpPdYj
 /4XjYyLdEQWM5TcwqM9Vz9eDHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Ej8I/LM7tLcUHt2tp1z3xBvc6W5HTBa7N4Le02R9t1pkVQKqEP
 6L1bxIsQhD4XDZ3MW4pAbQ8ksaOg2n+WhRh/Qf9Sa0fvDGIkV0ZPKLWGMHOZtWASMFRn0CZj
 mHL5WL0BlcdLtP34SWB2mKhgKnIhyyTcIEVEqex+rh1gVmQ7msJARYSWB2wpvzRokyjX9NSL
 WQE9yxoqrI9nGS7Q9+4UxCmrXqsuh8HR8EWA+A88BuKyKff/0CeHGdsZj9eavQ2uckuXzso2
 1SV2dTzClRHsreYVHac/be8ti6pNG4eKmpqWMMfZVJbuZ+5+th110+RCIY4eEKosjHrMQrX6
 neh9hAuvIhQssMyx//83VThhS358/AlUTUJzgnQW2uk6CZwa4ike5Gk5DDn0BpQEGqKZgLf5
 SZZwqBy+MhLVMjQz3LVHI3hCZnwv67dWAAwl2KDCHXIG96F33e4Nb5d7zhlTKuCGpZVIGS5C
 KM/VO442XOyAJdIRfMoC25SI55zpUQFKTgCfqqJBueimrArKGe6ENhGPCZ8JVzFnkk2ir0YM
 pyGa8uqBntyIf05l2XpGLZNge5xmHFWKYbvqXfTlUrP7FZjTCTNFedt3KWmMojVE59oUC2Kq
 o0CZqNmOj1UUfHkYzm/zGLgBQtiEJTPPriv85Y/XrfaemJOQTh9Y9eMkeJJU9E0xMx9y7aXl
 kxRr2cFkTITc1Wccl7UAp2iAZuyNatCQYUTYXZxYA32gid7Ou5CLs43LvMKQFXuz8Q7pdYcc
 hXPU57o7i1nRmuV9jIDQ4P6qYA+Jh2niRjXZ3iuYSQlfo4mTAvMo4e2cgzq/SgILyy2qcph/
 OHwilKFGcIOF1Z4EcLbSPOz1Fft73ITr/1/AhnTKd5JdUSyrIUzc37tjuU6Kt0nIAnYwmfIz
 B6fBBoV/LGfo4I8/NTTq7qDqoOlT7l3EkZARjGJ5reqLyjKuGGkxNYYAuqPeDncUkLy+bmjO
 roJn62tbqVfkQ8T4YRmErttwaYv3PfVpudXnlZ+AXHGT1W3Ebc8cHOI6tZC6/9WzbhDtAroB
 k/WootGOa+EMd/OGUIKIFZ3dfyK0PwZl2WA7fkxJ0mmtiZ78KDeDBdXNhiIzidcMKF0IMUux
 uJ44Jwa7Am2ixwLNNeaj38LqzTQfyJYC6h35IsHBILLixYwzgAQaJPRPSb6/ZWTZogeKUItO
 DKV2PLPirk0KpAuqJbv+awhBdZguKk=
IronPort-HdrOrdr: A9a23:0tvfDaslqpijLddR0KDCMu5x7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpHnJYVcqKQkdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyIMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58135420"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>
Subject: [XEN PATCH v8 09/47] build: rework test/livepatch/Makefile
Date: Thu, 25 Nov 2021 13:39:28 +0000
Message-ID: <20211125134006.1076646-10-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This rework the livepatch/Makefile to make it less repetitive and make
use of the facilities. All the targets to be built are now listed in
$(extra-y) which will allow Rules.mk to build them without the need of
a local target in a future patch.

There are some changes/fixes in this patch:
- when "xen-syms" is used for a target, it is added to the dependency
  list of the target, which allow to rebuild the target when xen-syms
  changes. But if "xen-syms" is missing, make simply fails.
- modinfo.o wasn't removing it's $@.bin file like the other targets,
  this is now done.
- The command to build *.livepatch targets as been fixed to use
  $(XEN_LDFLAGS) rather than just $(LDFLAGS) which is a fallout from
  2740d96efdd3 ("xen/build: have the root Makefile generates the
  CFLAGS")

make will findout the dependencies of the *.livepatch files and thus
what to built by "looking" at the objects listed in the *-objs
variables. The actual dependencies is generated by the new
"multi-depend" macro.

"$(targets)" needs to be updated with the objects listed in the
different *-objs variables to allow make to load the .*.cmd dependency
files.

This patch copies the macro "multi_depend" from Linux 5.12, and rename
it to "multi-depend".

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - rename multi_depend to multi-depend
    - use $() for single-letter make variable
    - re-indent one line

 xen/scripts/Kbuild.include  |   9 ++
 xen/test/livepatch/Makefile | 213 ++++++++++++++----------------------
 2 files changed, 91 insertions(+), 131 deletions(-)

diff --git a/xen/scripts/Kbuild.include b/xen/scripts/Kbuild.include
index 83c7e1457baa..21030cfcfbc1 100644
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -151,3 +151,12 @@ why =                                                                        \
 
 echo-why = $(call escsq, $(strip $(why)))
 endif
+
+# Useful for describing the dependency of composite objects
+# Usage:
+#   $(call multi-depend, multi-used-targets, suffix-to-remove, suffix-to-add)
+define multi-depend
+$(foreach m, $(notdir $1), \
+	$(eval $(obj)/$(m): \
+	$(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s)))))))
+endef
diff --git a/xen/test/livepatch/Makefile b/xen/test/livepatch/Makefile
index 148dddb90473..69fadccd01ea 100644
--- a/xen/test/livepatch/Makefile
+++ b/xen/test/livepatch/Makefile
@@ -12,81 +12,29 @@ CODE_ADDR=$(shell nm --defined $(1) | grep $(2) | awk '{print "0x"$$1}')
 CODE_SZ=$(shell nm --defined -S $(1) | grep $(2) | awk '{ print "0x"$$2}')
 
 .PHONY: default
-
-LIVEPATCH := xen_hello_world.livepatch
-LIVEPATCH_BYE := xen_bye_world.livepatch
-LIVEPATCH_REPLACE := xen_replace_world.livepatch
-LIVEPATCH_NOP := xen_nop.livepatch
-LIVEPATCH_NO_XEN_BUILDID := xen_no_xen_buildid.livepatch
-LIVEPATCH_PREPOST_HOOKS := xen_prepost_hooks.livepatch
-LIVEPATCH_PREPOST_HOOKS_FAIL := xen_prepost_hooks_fail.livepatch
-LIVEPATCH_ACTION_HOOKS := xen_action_hooks.livepatch
-LIVEPATCH_ACTION_HOOKS_NOFUNC := xen_action_hooks_nofunc.livepatch
-LIVEPATCH_ACTION_HOOKS_MARKER:= xen_action_hooks_marker.livepatch
-LIVEPATCH_ACTION_HOOKS_NOAPPLY:= xen_action_hooks_noapply.livepatch
-LIVEPATCH_ACTION_HOOKS_NOREVERT:= xen_action_hooks_norevert.livepatch
-LIVEPATCH_EXPECTATIONS:= xen_expectations.livepatch
-LIVEPATCH_EXPECTATIONS_FAIL:= xen_expectations_fail.livepatch
-
-LIVEPATCHES += $(LIVEPATCH)
-LIVEPATCHES += $(LIVEPATCH_BYE)
-LIVEPATCHES += $(LIVEPATCH_REPLACE)
-LIVEPATCHES += $(LIVEPATCH_NOP)
-LIVEPATCHES += $(LIVEPATCH_NO_XEN_BUILDID)
-LIVEPATCHES += $(LIVEPATCH_PREPOST_HOOKS)
-LIVEPATCHES += $(LIVEPATCH_PREPOST_HOOKS_FAIL)
-LIVEPATCHES += $(LIVEPATCH_ACTION_HOOKS)
-LIVEPATCHES += $(LIVEPATCH_ACTION_HOOKS_NOFUNC)
-LIVEPATCHES += $(LIVEPATCH_ACTION_HOOKS_MARKER)
-LIVEPATCHES += $(LIVEPATCH_ACTION_HOOKS_NOAPPLY)
-LIVEPATCHES += $(LIVEPATCH_ACTION_HOOKS_NOREVERT)
-LIVEPATCHES += $(LIVEPATCH_EXPECTATIONS)
-LIVEPATCHES += $(LIVEPATCH_EXPECTATIONS_FAIL)
-
-LIVEPATCH_DEBUG_DIR ?= $(DEBUG_DIR)/xen-livepatch
-
 build default: livepatch
 
-install: livepatch
-	$(INSTALL_DIR) $(DESTDIR)$(LIVEPATCH_DEBUG_DIR)
-	$(INSTALL_DATA) $(LIVEPATCHES) $(DESTDIR)$(LIVEPATCH_DEBUG_DIR)
-
-uninstall:
-	cd $(DESTDIR)$(LIVEPATCH_DEBUG_DIR) && rm -f $(LIVEPATCHES)
-
-.PHONY: clean
-clean::
-	rm -f *.o .*.o.d *.livepatch config.h expect_config.h
+extra-y += xen_hello_world.livepatch
+xen_hello_world-objs := xen_hello_world_func.o xen_hello_world.o note.o xen_note.o modinfo.o
+$(obj)/xen_hello_world.o: $(obj)/config.h
 
 #
 # To compute these values we need the binary files: xen-syms
 # and xen_hello_world_func.o to be already compiled.
 #
-.PHONY: config.h
-config.h: OLD_CODE_SZ=$(call CODE_SZ,$(BASEDIR)/xen-syms,xen_extra_version)
-config.h: NEW_CODE_SZ=$(call CODE_SZ,$<,xen_hello_world)
-config.h: MINOR_VERSION_SZ=$(call CODE_SZ,$(BASEDIR)/xen-syms,xen_minor_version)
-config.h: MINOR_VERSION_ADDR=$(call CODE_ADDR,$(BASEDIR)/xen-syms,xen_minor_version)
-config.h: xen_hello_world_func.o
+$(obj)/config.h: $(obj)/xen_hello_world_func.o
 	(set -e; \
-	 echo "#define NEW_CODE_SZ $(NEW_CODE_SZ)"; \
-	 echo "#define MINOR_VERSION_SZ $(MINOR_VERSION_SZ)"; \
-	 echo "#define MINOR_VERSION_ADDR $(MINOR_VERSION_ADDR)"; \
-	 echo "#define OLD_CODE_SZ $(OLD_CODE_SZ)") > $@
+	 echo "#define NEW_CODE_SZ $(call CODE_SZ,$<,xen_hello_world)"; \
+	 echo "#define MINOR_VERSION_SZ $(call CODE_SZ,$(BASEDIR)/xen-syms,xen_minor_version)"; \
+	 echo "#define MINOR_VERSION_ADDR $(call CODE_ADDR,$(BASEDIR)/xen-syms,xen_minor_version)"; \
+	 echo "#define OLD_CODE_SZ $(call CODE_SZ,$(BASEDIR)/xen-syms,xen_extra_version)") > $@
 
-xen_hello_world.o: config.h
-
-.PHONY: $(LIVEPATCH)
-$(LIVEPATCH): xen_hello_world_func.o xen_hello_world.o note.o xen_note.o modinfo.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH) $^
-
-.PHONY: modinfo.o
-modinfo.o:
+$(obj)/modinfo.o:
 	(set -e; \
 	 printf "LIVEPATCH_RULEZ\0") > $@.bin
 	$(OBJCOPY) $(OBJCOPY_MAGIC) \
 		   --rename-section=.data=.modinfo,alloc,load,readonly,data,contents -S $@.bin $@
-	#rm -f $@.bin
+	rm -f $@.bin
 
 #
 # This target is only accessible if CONFIG_LIVEPATCH is defined, which
@@ -97,9 +45,8 @@ modinfo.o:
 # not be built (it is for EFI builds), and that we do not have
 # the note.o.bin to muck with (as it gets deleted)
 #
-.PHONY: note.o
-note.o:
-	$(OBJCOPY) -O binary --only-section=.note.gnu.build-id $(BASEDIR)/xen-syms $@.bin
+$(obj)/note.o: $(BASEDIR)/xen-syms
+	$(OBJCOPY) -O binary --only-section=.note.gnu.build-id $< $@.bin
 	$(OBJCOPY) $(OBJCOPY_MAGIC) \
 		   --rename-section=.data=.livepatch.depends,alloc,load,readonly,data,contents -S $@.bin $@
 	rm -f $@.bin
@@ -108,9 +55,8 @@ note.o:
 # Append .livepatch.xen_depends section
 # with Xen build-id derived from xen-syms.
 #
-.PHONY: xen_note.o
-xen_note.o:
-	$(OBJCOPY) -O binary --only-section=.note.gnu.build-id $(BASEDIR)/xen-syms $@.bin
+$(obj)/xen_note.o: $(BASEDIR)/xen-syms
+	$(OBJCOPY) -O binary --only-section=.note.gnu.build-id $< $@.bin
 	$(OBJCOPY) $(OBJCOPY_MAGIC) \
 		   --rename-section=.data=.livepatch.xen_depends,alloc,load,readonly,data,contents -S $@.bin $@
 	rm -f $@.bin
@@ -119,102 +65,107 @@ xen_note.o:
 # Extract the build-id of the xen_hello_world.livepatch
 # (which xen_bye_world will depend on).
 #
-.PHONY: hello_world_note.o
-hello_world_note.o: $(LIVEPATCH)
-	$(OBJCOPY) -O binary --only-section=.note.gnu.build-id $(LIVEPATCH) $@.bin
+$(obj)/hello_world_note.o: $(obj)/xen_hello_world.livepatch
+	$(OBJCOPY) -O binary --only-section=.note.gnu.build-id $< $@.bin
 	$(OBJCOPY) $(OBJCOPY_MAGIC) \
 		   --rename-section=.data=.livepatch.depends,alloc,load,readonly,data,contents -S $@.bin $@
 	rm -f $@.bin
 
-xen_bye_world.o: config.h
 
-.PHONY: $(LIVEPATCH_BYE)
-$(LIVEPATCH_BYE): xen_bye_world_func.o xen_bye_world.o hello_world_note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_BYE) $^
+extra-y += xen_bye_world.livepatch
+xen_bye_world-objs := xen_bye_world_func.o xen_bye_world.o hello_world_note.o xen_note.o
+$(obj)/xen_bye_world.o: $(obj)/config.h
 
-xen_replace_world.o: config.h
 
-.PHONY: $(LIVEPATCH_REPLACE)
-$(LIVEPATCH_REPLACE): xen_replace_world_func.o xen_replace_world.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_REPLACE) $^
+extra-y += xen_replace_world.livepatch
+xen_replace_world-objs := xen_replace_world_func.o xen_replace_world.o note.o xen_note.o
+$(obj)/xen_replace_world.o: $(obj)/config.h
 
-xen_nop.o: config.h
 
-.PHONY: $(LIVEPATCH_NOP)
-$(LIVEPATCH_NOP): xen_nop.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_NOP) $^
+extra-y += xen_nop.livepatch
+xen_nop-objs := xen_nop.o note.o xen_note.o
+$(obj)/xen_nop.o: $(obj)/config.h
 
 # This one always fails upon upload, because it deliberately
 # does not have a .livepatch.xen_depends (xen_note.o) section.
-xen_no_xen_buildid.o: config.h
-
-.PHONY: $(LIVEPATCH_NO_XEN_BUILDID)
-$(LIVEPATCH_NO_XEN_BUILDID): xen_nop.o note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_NO_XEN_BUILDID) $^
+extra-y += xen_no_xen_buildid.livepatch
+xen_no_xen_buildid-objs := xen_nop.o note.o
 
-xen_prepost_hooks.o: config.h
+$(obj)/xen_prepost_hooks.o: $(obj)/config.h
 
-.PHONY: $(LIVEPATCH_PREPOST_HOOKS)
-$(LIVEPATCH_PREPOST_HOOKS): xen_prepost_hooks.o xen_hello_world_func.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_PREPOST_HOOKS) $^
+extra-y += xen_prepost_hooks.livepatch
+xen_prepost_hooks-objs := xen_prepost_hooks.o xen_hello_world_func.o note.o xen_note.o
 
-xen_prepost_hooks_fail.o: config.h
+$(obj)/xen_prepost_hooks_fail.o: $(obj)/config.h
 
-.PHONY: $(LIVEPATCH_PREPOST_HOOKS_FAIL)
-$(LIVEPATCH_PREPOST_HOOKS_FAIL): xen_prepost_hooks_fail.o xen_hello_world_func.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_PREPOST_HOOKS_FAIL) $^
+extra-y += xen_prepost_hooks_fail.livepatch
+xen_prepost_hooks_fail-objs := xen_prepost_hooks_fail.o xen_hello_world_func.o note.o xen_note.o
 
-xen_action_hooks.o: config.h
+$(obj)/xen_action_hooks.o: $(obj)/config.h
 
-.PHONY: $(LIVEPATCH_ACTION_HOOKS)
-$(LIVEPATCH_ACTION_HOOKS): xen_action_hooks.o xen_hello_world_func.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_ACTION_HOOKS) $^
+extra-y += xen_action_hooks.livepatch
+xen_action_hooks-objs := xen_action_hooks.o xen_hello_world_func.o note.o xen_note.o
 
-xen_action_hooks_nofunc.o: config.h
+$(obj)/xen_action_hooks_nofunc.o: $(obj)/config.h
 
-.PHONY: $(LIVEPATCH_ACTION_HOOKS_NOFUNC)
-$(LIVEPATCH_ACTION_HOOKS_NOFUNC): xen_action_hooks_nofunc.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_ACTION_HOOKS_NOFUNC) $^
+extra-y += xen_action_hooks_nofunc.livepatch
+xen_action_hooks_nofunc-objs := xen_action_hooks_nofunc.o note.o xen_note.o
 
-xen_action_hooks_marker.o: config.h
+$(obj)/xen_action_hooks_marker.o: $(obj)/config.h
 
-.PHONY: $(LIVEPATCH_ACTION_HOOKS_MARKER)
-$(LIVEPATCH_ACTION_HOOKS_MARKER): xen_action_hooks_marker.o xen_hello_world_func.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_ACTION_HOOKS_MARKER) $^
+extra-y += xen_action_hooks_marker.livepatch
+xen_action_hooks_marker-objs := xen_action_hooks_marker.o xen_hello_world_func.o note.o xen_note.o
 
-xen_action_hooks_noapply.o: config.h
+$(obj)/xen_action_hooks_noapply.o: $(obj)/config.h
 
-.PHONY: $(LIVEPATCH_ACTION_HOOKS_NOAPPLY)
-$(LIVEPATCH_ACTION_HOOKS_NOAPPLY): xen_action_hooks_marker.o xen_hello_world_func.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_ACTION_HOOKS_NOAPPLY) $^
+extra-y += xen_action_hooks_noapply.livepatch
+xen_action_hooks_noapply-objs := xen_action_hooks_marker.o xen_hello_world_func.o note.o xen_note.o
 
-xen_action_hooks_norevert.o: config.h
+$(obj)/xen_action_hooks_norevert.o: $(obj)/config.h
 
-.PHONY: $(LIVEPATCH_ACTION_HOOKS_NOREVERT)
-$(LIVEPATCH_ACTION_HOOKS_NOREVERT): xen_action_hooks_marker.o xen_hello_world_func.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_ACTION_HOOKS_NOREVERT) $^
+extra-y += xen_action_hooks_norevert.livepatch
+xen_action_hooks_norevert-objs := xen_action_hooks_marker.o xen_hello_world_func.o note.o xen_note.o
 
 EXPECT_BYTES_COUNT := 8
 CODE_GET_EXPECT=$(shell $(OBJDUMP) -d --insn-width=1 $(1) | sed -n -e '/<'$(2)'>:$$/,/^$$/ p' | tail -n +2 | head -n $(EXPECT_BYTES_COUNT) | awk '{$$0=$$2; printf "%s", substr($$0,length-1)}' | sed 's/.\{2\}/0x&,/g' | sed 's/^/{/;s/,$$/}/g')
-.PHONY: expect_config.h
-expect_config.h: EXPECT_BYTES=$(call CODE_GET_EXPECT,$(BASEDIR)/xen-syms,xen_extra_version)
-expect_config.h:
+$(obj)/expect_config.h: $(BASEDIR)/xen-syms
 	(set -e; \
-	 echo "#define EXPECT_BYTES $(EXPECT_BYTES)"; \
+	 echo "#define EXPECT_BYTES $(call CODE_GET_EXPECT,$<,xen_extra_version)"; \
          echo "#define EXPECT_BYTES_COUNT $(EXPECT_BYTES_COUNT)") > $@
 
-xen_expectations.o: expect_config.h
+$(obj)/xen_expectations.o: $(obj)/expect_config.h
 
-.PHONY: $(LIVEPATCH_EXPECTATIONS)
-$(LIVEPATCH_EXPECTATIONS): xen_expectations.o xen_hello_world_func.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_EXPECTATIONS) $^
+extra-y += xen_expectations.livepatch
+xen_expectations-objs := xen_expectations.o xen_hello_world_func.o note.o xen_note.o
 
-.PHONY: $(LIVEPATCH_EXPECTATIONS_FAIL)
-$(LIVEPATCH_EXPECTATIONS_FAIL): xen_expectations_fail.o xen_hello_world_func.o note.o xen_note.o
-	$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH_EXPECTATIONS_FAIL) $^
+extra-y += xen_expectations_fail.livepatch
+xen_expectations_fail-objs := xen_expectations_fail.o xen_hello_world_func.o note.o xen_note.o
+
+
+quiet_cmd_livepatch = LD      $@
+cmd_livepatch = $(LD) $(XEN_LDFLAGS) $(build_id_linker) -r -o $@ $(real-prereqs)
+
+$(obj)/%.livepatch: FORCE
+	$(call if_changed,livepatch)
+
+$(call multi-depend, $(filter %.livepatch,$(extra-y)), .livepatch, -objs)
+targets += $(sort $(foreach m,$(basename $(notdir $(filter %.livepatch,$(extra-y)))), \
+                    $($(m)-objs)))
+
+LIVEPATCHES := $(filter %.livepatch,$(extra-y))
+
+LIVEPATCH_DEBUG_DIR ?= $(DEBUG_DIR)/xen-livepatch
 
 .PHONY: livepatch
-livepatch: $(LIVEPATCH) $(LIVEPATCH_BYE) $(LIVEPATCH_REPLACE) $(LIVEPATCH_NOP) $(LIVEPATCH_NO_XEN_BUILDID) \
-           $(LIVEPATCH_PREPOST_HOOKS) $(LIVEPATCH_PREPOST_HOOKS_FAIL) $(LIVEPATCH_ACTION_HOOKS) \
-           $(LIVEPATCH_ACTION_HOOKS_NOFUNC) $(LIVEPATCH_ACTION_HOOKS_MARKER) $(LIVEPATCH_ACTION_HOOKS_NOAPPLY) \
-           $(LIVEPATCH_ACTION_HOOKS_NOREVERT) $(LIVEPATCH_EXPECTATIONS) $(LIVEPATCH_EXPECTATIONS_FAIL)
+livepatch: $(LIVEPATCHES)
+
+install: $(addprefix $(obj)/,$(LIVEPATCHES))
+	$(INSTALL_DIR) $(DESTDIR)$(LIVEPATCH_DEBUG_DIR)
+	$(INSTALL_DATA) $(addprefix $(obj)/,$(LIVEPATCHES)) $(DESTDIR)$(LIVEPATCH_DEBUG_DIR)
+
+uninstall:
+	cd $(DESTDIR)$(LIVEPATCH_DEBUG_DIR) && rm -f $(LIVEPATCHES)
+
+.PHONY: clean
+clean::
+	rm -f *.o .*.o.d *.livepatch config.h expect_config.h
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231219.400030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzb-00021o-6R; Thu, 25 Nov 2021 13:40:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231219.400030; Thu, 25 Nov 2021 13:40:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEza-0001xZ-QY; Thu, 25 Nov 2021 13:40:50 +0000
Received: by outflank-mailman (input) for mailman id 231219;
 Thu, 25 Nov 2021 13:40:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzZ-00076i-4Z
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:49 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b2ead47-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:40:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b2ead47-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847648;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=OgGxNUfTQ2JG3WE+K8Owl04Bu0uYkAMbFk7jPFHWrPo=;
  b=Uw0rQ7b3ilHxr7stkyJ8O8caq9dzwBHBgW7UXFAY2kml+2h6cUAuQSuU
   HKC01iDMZpe63j9rNsAbiPk+APSkkJDfbqlCoZ2YBbWCexJ3XcuDCId+c
   CrbHjrddoof8o3K2zV3gmxxs/sGX4rSxcwpYAgiTLfBXlxirJZJUEoJRe
   I=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: KSNc1dI5ExpTV/1MPsgOULNRZw225xUwZIjvU9nt3iDvGnfdJ6cb15yX7fjJerBQ4V2SJ/dLz+
 tLTz91lKUZxscFUCtLFZ4FbOMiUx+CmyjQt63Uf7XhlRehB65bv0pQC9Qh09mj5yQUlMMbNDCf
 XLQXPuhkZhaiXgbPPJwoG3DR0wAwNFW+3sxkTmiI6IfSP8CneXIwAziM4WxuZxws0A0CHOB0pU
 N7iP86ryqudAOXpB2ngjTVj7vOKmWQidnuhsv6IpggKhnjhaIhntSlgB7eJvCnQdRVaMWJYZJI
 a9sEdyHgwV+y8/gnU03ywTbJ
X-SBRS: 5.1
X-MesageID: 58135422
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:+iV6D6/LNnT5ZshksNxiDrUDfXmTJUtcMsCJ2f8bNWPcYEJGY0x3z
 2YYW2/TPa2LNmWgKoojbY+1oRgHvJXcndFmQQpq/3o8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj39Yy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPha8
 /Fup5PvZDt3O4DcqOI2Ykl7IXxhaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwqKtXrO4UO/Glt1zjDAd4tQIzZQrWM7thdtNs1rp0eRK2DO
 5BDAdZpRAzpSBNza3w2Mc4jxqSouGahcxtfs2vA8MLb5ECMlVcsgdABKuH9eMGORMhTtlaVo
 CTB5WuRKgoBKNWVxD6B83StruzChyX2XMQVDrLQ3uFuqE2ewCoUEhJ+fUu2p7y1h1CzX/pbK
 lcI4Ww+oK4q7kupQ9LhGRqirxasvwEec8pdFfUg7wOAwbaS5ByWbkAGRDNcbN0ttOctWCcnk
 FSOmrvU6SdH6ePPDyjHr/HN8G30aXN9wXI+iTEsZjAhwMvs/6wP0BfiXuZlO5/lre+oBmSlq
 9yVlxQWi7IWhM8N8qy0+1Hbnj6hzqT0oh4JChb/BTz8sF4gDGKxT8nxsAWAs64cRGqMZgDZ5
 CBspiSI0AwZ4XhhfgSpSf5FIrym7u3t3Nb00Q82RMlJG9hAFheekWFsDNNWeBgB3iUsI2aBj
 KrvVeR5vsI7AZdSRfUrC79d8uxzpUQaKfzrV+rPcv1FaYVreQmM8UlGPBDLgD+ywRh8wPtha
 P93lPpA6l5AV8xaIMeeHb9BgdfHOAhirY8seXwL50v+iufPDJJkYbwELEGPfogEAFCs+23oH
 yJkH5LSkX13CbSmCgGOqNJ7BQ1afBATWMGtw+QKJ7HrH+aTMDx4YxMn6eh6ININcmU8vrqgw
 0xRrWcEkgei3iOedl3RAp2hAZu2NatCQbsAFXREFT6VN7ILO+5DNY8TKMk6e6cJ7utmwaImR
 vUJYZzYUP9OVi7G63IWapyk9N5ucxGihASvOSu5YWdgI848FlKRotK0LBHy8CQuDzassZdsq
 bOXyQ6GE4EIQB5vDZiKZav3nU+xp3UUhMl7Q1DMfotIYEzp/YUzc37xg/Y7LtsiMxLGwjfGh
 Q+aDQ1B/bvGopMv8cmPjqeB9t/7H+x7F0tcPm/a8bfpanWKojv9mddNCb/acyrcWWX4/LSZS
 d9Ul/ysYucamFtqspZnF+o5x6wJ+Nay9aRRyR5pHSuXYg3zWK9gOHSPweJGqrZJmu1CoQKzV
 0+CpotaNLGONJ+3GVIdPlN4POGK1PVSkTjO9/UlZk794XYvrraAVExTOTiKiTBcc+QpYN90n
 795tZ5E8RG7hzorLs2C33Jd+Gm7J3AdV7kq68MBC4jxhwt3klxPbPQw0MMtDE1jvzmUDnQXH
 w==
IronPort-HdrOrdr: A9a23:pxLSV6zF6xMS5LEfwSIrKrPwKr1zdoMgy1knxilNoRw8SKOlfq
 eV7ZMmPH7P+U8ssR4b+OxoVJPsfZqYz+8W3WBzB8bHYOCFgguVxehZhOOIqQEIWReOk9K1vZ
 0QFZSWY+efMbEVt6rHCXGDYrUd/OU=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58135422"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 10/47] build: rework cloc recipe
Date: Thu, 25 Nov 2021 13:39:29 +0000
Message-ID: <20211125134006.1076646-11-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

We are going to make other modifications to the cloc recipe, so this
patch prepare make those modification easier.

We replace the Makefile meta programming by just a shell script which
should be easier to read and is actually faster to execute.

Instead of looking for files in "$(BASEDIR)", we use "." which is give
the same result overall. We also avoid the need for a temporary file
as cloc can read the list of files from stdin.

No change intended to the output of `cloc`.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - rework cloc patch, move it ahead of problematic changes
      this is only a convertion to shell script with a single other change.

 xen/Makefile | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index 7bb3595d649f..6afae6ced37c 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -477,14 +477,12 @@ _MAP:
 
 .PHONY: cloc
 cloc:
-	$(eval tmpfile := $(shell mktemp))
-	$(foreach f, $(shell find $(BASEDIR) -name *.o.d), \
-		$(eval path := $(dir $(f))) \
-		$(eval names := $(shell grep -o "[a-zA-Z0-9_/-]*\.[cS]" $(f))) \
-		$(foreach sf, $(names), \
-			$(shell if test -f $(path)/$(sf) ; then echo $(path)/$(sf) >> $(tmpfile); fi;)))
-	cloc --list-file=$(tmpfile)
-	rm $(tmpfile)
+	find . -name '*.o.d' | while read f; do \
+	    for sf in $$(grep -o "[a-zA-Z0-9_/-]*\.[cS]" $$f); do \
+		sf="$$(dirname $$f)/$$sf"; \
+		test -f "$$sf" && echo "$$sf"; \
+	    done; \
+	done | cloc --list-file=-
 
 endif #config-build
 
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:40:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:40:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231222.400042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzc-0002NT-TA; Thu, 25 Nov 2021 13:40:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231222.400042; Thu, 25 Nov 2021 13:40:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqEzc-0002Ld-Gv; Thu, 25 Nov 2021 13:40:52 +0000
Received: by outflank-mailman (input) for mailman id 231222;
 Thu, 25 Nov 2021 13:40:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEza-0007NX-U2
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:51 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ce00f25-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:40:49 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ce00f25-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847649;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=PgvyZbdOc3nlYaOvddtDU/TV6+mitJD45Z6mpY4t0+Y=;
  b=gw5BkUtrm+K1w0LNcY8wZqbOHCdgESfaA6poLkDdclBNxv+5HwxslTsx
   p7+xMLwOBAid3rBrJLXPL0lStab/3eq6g3ATBgUUCwUlzJxTUcD0hjM7l
   +TzBUvw3k9XhBJZ4UCHThvltBy+eOiaXTdbH49lFYTQ9u+z+LvlFf+DUR
   U=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: ZgxPPqrL9KXwdxCsv/YWw3ZHYfABpvGidD0NkFHjRTeTlbxMZFtGLMYYEPoHYU1CZ52DEfpdV4
 nBP5LUWMLpkCtLxk8AUiYWPGzQlSnHVkbJdJTMJB0BBxqve1vgPKtMnE7HWczIeGqWVQWZicJg
 9qPPMvfbUeosfhY/7/HCSmsoabM73DEoLOdIMhMQDlt0A1vU/EEMxc8pYo3N2K4OEd3tRChI0h
 NZ5W7tIS7eNviWHMhivR0UjOJi7Y/ynZESIfmdLq3zujQUQQbmp1EoR2kkyh0XUzqaneeqPEnJ
 FY06UrZhhw0lyn5/YuiOiSTX
X-SBRS: 5.1
X-MesageID: 60634112
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:GQLaNKnIcGGtk3VOCDthRW/o5gx8IURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJJDG2Gbv+KZjH9e4okYYi2pEIDu8TWztNrHFZtqHs3QiMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q12YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 PdmkIOJEQslAvPdoM4FSSFDMzNOHLITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBMDtIIMYvGAm1TzDBOwqaZvCX7/L9ZlT2zJYasVmQ66AP
 JZAMGAHgBLoMzxuKnpUB8kFnuLr1yLxbgZakBWNqv9ii4TU5FMoi+W8WDbPQfSIWMFUk0Cwt
 m/AuWPjDXkyL8eDwDCI9natgO7nni7hXo8WUrqi+ZZCn1m71mEVThoMWjOTsfS/z0KzRd9bA
 0gV4TY167g/8lSxSdvwVAH+p2SL1jYdRNh4A+A88BuKyKff/0CeHGdsZjxLZcEitcQ2bSc3z
 VLPlNTsbQGDq5XMFyjbrO3N62rvZ25FdgfueBPoUyMnyPz8mdk/gi6RX+5JCLSNlf3nKRDvl
 mXiQDcFu50fissC1qOe9F/Bgi6xqpWhcjPZ9jk7TUr+sFonOdfNi5iArAGCsK0edNrxokyp5
 SBcw6CjAPYy4YZhfcBnaMEEB/mX6vmMK1UwanY/TsB6p1xBF5NOFL28AQ2Sxm81ba7omhezO
 Sc/XD+9A7cJYROXgVdfOd7ZNijT5fGI+S7Zfv7VdMFSRZN6aRWK+ipjDWbJgTuyzxd9wfFuY
 8nKGSpJMZr9If45pAdaus9HieN7rszA7T+7qW/HI+SPjuPFOS/9pUYtO1qSdOEphJ5oUy2Om
 +uzw/Cikk0FOMWnO3G/2ddKcTgicChqbbir+pc/XrPSfWJb9JQJVqa5LUUJINc+wcy4V47go
 xmAZ6Ov4Aal2CCcd1zVMisLhXGGdc8XkE/X9BcEZT6As0XPq671hEvGX5doL7Qh6sJ5yvt4E
 6sMd8maW6wdQTXb4TUNK5L6qdU6JhisgAuPOQujYSQ+IME8F1CYpIe8c1u97jQKAwq2qdA6/
 ++q2DTETMdRXA9lFsvXNq6ilgvjoXgHletudELUOd0PKl70+Y1nJnWp3P86Ks0BMzvZwT6e2
 1rECBsUv7CV8YQ07MPIleaPqILwS7lyGU9THm/667eqNHaFojr/kNEYCOvRJGLTTmL5/qmmd
 N559fCkPa1VhktOvqp9D61vkfA06ezwquII1Q9jBnjKMQimU+syPnmc0MBTnaRR3bsF6xCuU
 0eC99QGa7WEPMTpTAwYKAY/N7nR0PgVnn/Z7OgvIVW87yhypeLVXUJXNhiKqSpcMLoqb991n
 bZ/4JYbu16llx4nEtealSQFpW2DI0sJX7gjqpxHUpTgjRAmyw0abJHRYsMsDEpjtzmY3pEWH
 wKp
IronPort-HdrOrdr: A9a23:XyUJXKtOnV7o0X8IYD5B4SYG7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpHnJYVcqKQkdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyIMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634112"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 11/47] build: fix enforce unique symbols for recent clang version
Date: Thu, 25 Nov 2021 13:39:30 +0000
Message-ID: <20211125134006.1076646-12-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

clang 6.0 and newer behave like gcc in regards for the FILE symbol, so
only the filename rather than the full path to the source file.

clang 3.8.1-24 (in our debian:stretch container) and 3.5.0-10
(in our debian:jessie container) do store the full path to the source
file in the FILE symbol.

This means that we also need to check clang version to figure out
which command we need to use to redefine symbol.

I don't know which version of clang change behavior, we will guess
4.0.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

"enforce unique symbols" works by chance with recent clang version.
The few object built from source in subdir don't pose an issue.

With checking for 4.0 or newer, build may fails with a version of
clang between 4.0 and 6.0.

With checking for 6.0 or newer, no build fails, but maybe that will
happen later with patch "build: build everything from the root dir,
use obj=$subdir" applied.
---

Notes:
    v8:
    - new patch, extracted from "build: build everything from the root dir, use obj=$subdir"

 xen/Rules.mk               | 2 +-
 xen/scripts/Kbuild.include | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index 60d1d6c4f583..14b6e7fdd721 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -166,7 +166,7 @@ SRCPATH := $(patsubst $(BASEDIR)/%,%,$(CURDIR))
 quiet_cmd_cc_o_c = CC      $@
 ifeq ($(CONFIG_ENFORCE_UNIQUE_SYMBOLS),y)
     cmd_cc_o_c = $(CC) $(c_flags) -c $< -o $(dot-target).tmp -MQ $@
-    ifeq ($(CONFIG_CC_IS_CLANG),y)
+    ifeq ($(CONFIG_CC_IS_CLANG)$(call clang-ifversion,-lt,400,y),yy)
         cmd_objcopy_fix_sym = $(OBJCOPY) --redefine-sym $<=$(SRCPATH)/$< $(dot-target).tmp $@
     else
         cmd_objcopy_fix_sym = $(OBJCOPY) --redefine-sym $(<F)=$(SRCPATH)/$< $(dot-target).tmp $@
diff --git a/xen/scripts/Kbuild.include b/xen/scripts/Kbuild.include
index 21030cfcfbc1..b4b77f85d8d5 100644
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -59,6 +59,8 @@ ld-option = $(call success,$(LD) -v $(1))
 # Usage:  EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1)
 cc-ifversion = $(shell [ $(CONFIG_GCC_VERSION)0 $(1) $(2)000 ] && echo $(3) || echo $(4))
 
+clang-ifversion = $(shell [ $(CONFIG_CLANG_VERSION)0 $(1) $(2)000 ] && echo $(3) || echo $(4))
+
 # Shorthand for $(MAKE) clean
 # Usage:
 # $(MAKE) $(clean) dir
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231240.400101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5X-0006v5-Vi; Thu, 25 Nov 2021 13:46:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231240.400101; Thu, 25 Nov 2021 13:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5X-0006un-SD; Thu, 25 Nov 2021 13:46:59 +0000
Received: by outflank-mailman (input) for mailman id 231240;
 Thu, 25 Nov 2021 13:46:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0n-0007NX-5T
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:42:05 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7939a6f8-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:42:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7939a6f8-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847724;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=oFeKa3n2Me2dmtKknD0wmyFv64+zX/Oc/3RcLG01aY8=;
  b=QKDeCyBWJqiy0VH36rEbjbG6+kiJUQ0rdC/NklQk55pB8AxMGG/VOfEK
   8abQPNEnqOnfzXTWnmFGjJkVOu6OJvdDWZF3mMWENxyyKVzyLOM+a6tNs
   y2eP2CKSwUJS0bOMWolSTzuPiHGvUGbflp683PxRNNtWL0V2waWgA+TR6
   k=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: bQI5etgoOvWX87AC6g3ns5eeLZQ2U8w7g1Xlwa45ec0xy8WLASwHxsxDlZlvEWaR4Aw0EDypYS
 W8qUid2ThOeZ5VkE1keU8gL4k0D/S6QU+bYNBBAw+UlXAKCDRHfjzushR7cl6x521ujgtNhBbP
 udAyfY9oY3qSfn2Hj53oN7eUrA+A6Hg3DhFLABTYFYq2GjwFbFiL6HwRFOeMqQJK5LgxZ9arQO
 A4c/3m4n8rGq4xbxX/jvwHheQVjBX1H8S2S8BL9xFfARZp07tMjuvJEvucD+hk9g0YWtM9JrsZ
 Zs1KdaqylmAKMoUGiCPz6Noo
X-SBRS: 5.1
X-MesageID: 58637890
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:lYongKIXb5NdWn7jFE+RRpIlxSXFcZb7ZxGr2PjKsXjdYENS3zAHx
 mpJUG7XaPfZZTShft91b9y+9hxX78Xcz9A2HgNlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xrZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2mx9tg8
 9pXt6avYjV2Y5X1k7UebQFhRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFlgNgjK8/6epsSoHh6wRnSDOo8QICFSKLPjTNd9Gpg2JsRTaeGD
 yYfQSV2cUzdRBFLAQYSI85jo+yDvX6nbzIN/Tp5ooJoujOOnWSdyoPFMsfRe9GMbdVYmACfv
 G2u13/iHhgQOdibyDyE2nGhnOnCmWX8Qo16PKK83u5nhhuU3GN7IB8cWEa/oPK5olWjQN8ZI
 EsRkgI+oK53+EG1Q93VWxyjvGXCrhMaQ8BXEeAx9EeK0KW8yw+fGmgDSC8HcNE8vdU6bTMv3
 16N2djuAFRHsaKXYWKQ8K+OqjG/MjRTKnUNDRLoViNcvYOl+ttqyEuSEJAzS8ZZk+EZBxnfm
 zublyckhY8MpvxUip2C9gHEvSqV882hohEO2i3bWWes7wVcbYGjZpC15VWz0cusPLp1XXHa4
 iFaxpH2APQmSMjUyXfTGLll8KSBvq7daFXhbUhT847NHthH01qqZshu7T53Py+F2e5UKGayM
 Cc/Ve68jaK/3UdGj4crPOpd6OxwlMAM8OgJsdiOM7JzjmBZLlPvwc2XTRf4M5rRuEYti7ojH
 pyQbNyhC30XYYw+kmHpGLhMge96nH5vrY82eXwc5075uYdymVbPEetVWLdwRrxRAFy4TPX9r
 I8EapriJ+R3W+zieCjHmbP/3nhRRUXX8ave8pQNHsbae1IOMDh4V5f5nONwE6Q4zv89vrqZo
 RmAtrpwlQOXaYvvcl7RNBiOqdrHAP5CkJ7MFXB2YAvzhSF8Od3HAWV2X8JfQITLPddLlZZcJ
 8Tpse3ZahiWYjiYqTkbc7fnq4luKEaiiQ6UZnL3azkjZZ9wAQfO/4a8LAfo8SAPCAuxtNc//
 OL8hl+KH8JbSlQwFtvSZdKu00i14SoXltVtUhaaOdJUYkjtrtRncnSjkv8tLsgQAhzf3T/Gh
 R2OCBIVqLCV8Y84+dXEn46eqIKtH7csF0ZWBTCDv723KTPb7iyoxooZCLSEejXUVWXV/qS+Z
 LoKk6GgYaNfxFsT6thyCbdmy6469uDDnb4Cw1Q2BmjPYnSqFqhkfiuM0/5Qu/Af3bReowa3B
 B6Co4EIJbWTNcr5O1cNPw55PP+b3PQZlzSOv/Q4JEL2uH1+8LadCBgAOhCNjGpWLadvMZNjy
 uAk4ZZE5wu6gxssE9CHkiELqDjcci1eC/0q5sMAHYvmqgs30VUTM5XTBxj/7IyLd9gRYFIhJ
 SWZhfaairlRrqYYn6HfyZQZMTJhuKkz
IronPort-HdrOrdr: A9a23:3+e+N68GIEyVRw/8rYRuk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re+sjztCWE8Ar5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtFD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58637890"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"George Dunlap" <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: [XEN PATCH v8 41/47] WIP, no-VPATH: build object from generated C files
Date: Thu, 25 Nov 2021 13:40:00 +0000
Message-ID: <20211125134006.1076646-42-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

we need to tell that the efi source files are "generated"

Maybe listing generated sources would be better, and then we can
automaticaly select the right rule.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/Rules.mk                 | 9 ++++++++-
 xen/common/efi/efi_common.mk | 3 +++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index 45d2b72158b8..44af005fd57e 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -24,6 +24,8 @@ include $(srctree)/scripts/Kbuild.include
 obj-y :=
 lib-y :=
 targets :=
+## targets made from generated sources
+gen-objs-c :=
 subdir-y :=
 CFLAGS-y :=
 AFLAGS-y :=
@@ -96,6 +98,7 @@ targets         := $(addprefix $(obj)/,$(targets))
 lib-y           := $(addprefix $(obj)/,$(lib-y))
 obj-y           := $(addprefix $(obj)/,$(obj-y))
 obj-bin-y       := $(addprefix $(obj)/,$(obj-bin-y))
+gen-objs-c      := $(addprefix $(obj)/,$(gen-objs-c))
 subdir-y        := $(addprefix $(obj)/,$(subdir-y))
 nocov-y         := $(addprefix $(obj)/,$(nocov-y))
 noubsan-y       := $(addprefix $(obj)/,$(noubsan-y))
@@ -242,7 +245,11 @@ define rule_cc_o_c
     $(call cmd,objcopy_fix_sym)
 endef
 
-$(obj)/%.o: $(src)/%.c FORCE
+ifdef building_out_of_srctree
+$(gen-objs-c): $(obj)/%.o: $(obj)/%.c FORCE
+	$(call if_changed_rule,cc_o_c)
+endif
+$(obj)/%.o: $(srctree)/$(src)/%.c FORCE
 	$(call if_changed_rule,cc_o_c)
 
 quiet_cmd_cc_o_S = CC      $@
diff --git a/xen/common/efi/efi_common.mk b/xen/common/efi/efi_common.mk
index d059bb30afa5..232cb508ee85 100644
--- a/xen/common/efi/efi_common.mk
+++ b/xen/common/efi/efi_common.mk
@@ -1,6 +1,9 @@
 EFIOBJ-y := boot.init.o pe.init.o ebmalloc.o runtime.o
 EFIOBJ-$(CONFIG_COMPAT) += compat.o
 
+# common-efi-objs := boot.c  compat.c  ebmalloc.c  pe.c  runtime.c
+gen-objs-c := boot.o compat.o ebmalloc.o pe.o runtime.o
+
 CFLAGS-y += -fshort-wchar
 CFLAGS-y += -iquote $(srctree)/common/efi
 CFLAGS-y += -iquote $(srcdir)
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231241.400112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5Z-0007CS-8g; Thu, 25 Nov 2021 13:47:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231241.400112; Thu, 25 Nov 2021 13:47:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5Z-0007BX-43; Thu, 25 Nov 2021 13:47:01 +0000
Received: by outflank-mailman (input) for mailman id 231241;
 Thu, 25 Nov 2021 13:46:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0z-00076i-Of
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:42:17 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8010330d-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:42:16 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8010330d-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847736;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=NT4AA79X/GUr8W4g3mlMQcdf/icBfAifuywINiEHnwE=;
  b=hiGvm5PoPx6vF33fQ/9UHoO7JvZ13rL4g6InNy9w00eDbByPf0lTgYqd
   LMeB2QNNw6UTZF5qvy0Pvqkyz6bEi6LDHpd/QVkSqkGOelIl7IqLk0ijr
   PR7QBbGuy4AwIks4rEHWmTk2w/VjCCgERbQhe9JvzckZcLOfLoBX5laj9
   g=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: w55DqMXpiPkrnZZPQu3Swh8NkaaNSg+TCqDDzvppfdV5EuxfpIG56bMElYDneQqDPnHE1OUfhk
 nCyBe4jjIabFRq6zcJXmQmcGW/yGbAkLvvr9OFTNSj6a25kZZCEUz3BTlw8o80b9yy0+1U/2dh
 QTlG2L6k+NK/1bQPrt/r0CFENLLE+yvah9QmeN7w/Z1ixCyy8kGhVT/h8r/anCShMn7JP2Ilvt
 1YQAXtOHY89Tt/KDqS5aV7wcAyTS8yBRPiiGf5QbLoDlajroSe9AoDFSVyNk9Kr2o3Uln/X/nh
 yj43fHRkojCOD1R8+8ea2TWG
X-SBRS: 5.1
X-MesageID: 58135505
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:YsOKY635BrY68XKFdvbD5UR2kn2cJEfYwER7XKvMYLTBsI5bp2FVn
 GpOUGGEPKmJYGenfYx1aInjo0lU6p/QmoA2Tgs6pC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbNh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhv/BA4
 Y5clb6JdhYYHJDUweg4dRtlKnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Ej8I/LM7tLcUHt2tp1z3xBvc6W5HTBa7N4Le02R9t1pkVQKuGO
 qL1bxJoLxfHRRRBIm0aM80YvMeQu0TkVD5H/Qf9Sa0fvDGIkV0ZPKLWGNjIft2HQ+1Fk0Deo
 XjJl0ziGQ0TPtGbzTuD81qvi/XJkCe9X5gdfJWn8tZ6jVvVwXYcYDUUX1ampfiyimalRslSb
 UcT/0IGvaU0sUCmUNT5dxm5u2Kf+A4RXcJKFO834x3LzbDbiy6QAHQESThQLsQrrsYsSRQl0
 1aIm5XiAjkHmLyKS1qN+7GMtzSwNCMJa2gYakc5oRAtuoe55ttp11SWE4glQPXdYsDJ9S/Y4
 xC7hXMvp5cqst869ZijpFzipTCRn82cJuIq3Tn/UmWg5wJ/QYeqYY209FTWhcp9wJalokqp5
 yZdxZXHhAwaJdTUzXHWHr1RdF28z6/daGW0vLJ5I3U2G91BEVaHdJsY3jxxLVwB3i0sKW6wO
 x+7Ve+8CfZu0JqWgU1fP93Z5ycCl/GI+THZuhf8NIcmX3SJXFXblByCnGbJt4wXrGAikLskJ
 bCQetu2AHARBMxPlWTtGLhCgO97l3pglAs/oKwXKDz9j9KjiIO9E+9ZYDNikMhlhE97nOkl2
 4kGbJbbo/mueOb/fjPW4eYuwaMidhAG6WTNg5UPLIare1M+cEl4UqO56e5xKuRNwvUO/s+Vr
 y7VZ6Ot4Aem7ZExAV7RMS4LhXKGdcsXkE/XygRwZwv1gCZ6Pt70hErdHrNuFYQaGCVY5aYcZ
 5E4lw+oW5yjkxzLpGYQa4fTtotneEj5jA6CJXP9MjM+Y4RhV0rC/dq9Jlnj8ywHDyyWs8oio
 uL/ilOHEMRbHwkyXtzLbP+Pzk+quSRPkuxFQEaVcMJYf1/h8dY2JnWp3OM3OcwFNT7K2iCei
 1SNGR4dqOSU+901/dDFiLqqtYCsF+ciTENWE3OCteS9NDXA/3rlyohFCb7acTfYXWLy2aOje
 eQKkK2sbKxZxA5H6tMuHaxqwKQy48rUi4Vblgk0Tm/Wa1mLC697JiXU18d4qaAQlKRSvhG7W
 xzT94ACa6mJIs7sDHUYOBEhMraYzfgRlzTfsaY1LUH96HMl9baLSxwPbRyFiSgbJ7ppKoI1h
 +wmvZdOuQC4jxMrNPeAjzxVqDvQfiBRDf1/u8FIGpLvhyoq1kpGMM7VBSLB6Z2Sb8lBbxsxK
 TiOiaue37lRyyIuqZbo+aQhCQaFuakzhQ==
IronPort-HdrOrdr: A9a23:vPKh8qrFqyOuLiOTGiecOQ4aV5oteYIsimQD101hICG8cqSj+P
 xG+85rsiMc6QxhIU3I9urgBEDtex7hHNtOkOss1NSZLW3bUQmTTL2KhLGKq1aLJ8S9zJ856U
 4JSdkZNDSaNzZHZKjBjDVQa+xQo+W6zA==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58135505"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"George Dunlap" <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: [XEN PATCH v8 46/47] RFC, no-VPATH: remove check for clean source tree for out-of-tree builds
Date: Thu, 25 Nov 2021 13:40:05 +0000
Message-ID: <20211125134006.1076646-47-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/Makefile | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index 32c36426ed7c..a3c574ed1a87 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -282,7 +282,6 @@ tools_fixdep:
 	$(Q)$(MAKE) $(build)=tools tools/fixdep
 
 PHONY += outputmakefile
-# Before starting out-of-tree build, make sure the source tree is clean.
 # outputmakefile generates a Makefile in the output directory, if using a
 # separate output directory. This allows convenient use of make in the
 # output directory.
@@ -297,15 +296,6 @@ cmd_makefile = { \
 
 outputmakefile:
 ifdef building_out_of_srctree
-	$(Q)if [ -f $(srctree)/.config -o \
-		 -d $(srctree)/include/config -o \
-		 -d $(srctree)/include/generated ]; then \
-		echo >&2 "***"; \
-		echo >&2 "*** The source tree is not clean, please run 'make$(if $(findstring command line, $(origin XEN_TARGET_ARCH)), XEN_TARGET_ARCH=$(XEN_TARGET_ARCH)) distclean'"; \
-		echo >&2 "*** in $(abs_srctree)";\
-		echo >&2 "***"; \
-		false; \
-	fi
 	$(Q)ln -fsn $(srctree) source
 	$(call cmd,makefile)
 	$(Q)test -e .gitignore || \
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231237.400086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5T-0006MZ-K1; Thu, 25 Nov 2021 13:46:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231237.400086; Thu, 25 Nov 2021 13:46:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5T-0006M4-Be; Thu, 25 Nov 2021 13:46:55 +0000
Received: by outflank-mailman (input) for mailman id 231237;
 Thu, 25 Nov 2021 13:46:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0l-0007NX-Oa
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:42:03 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77a09a08-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:42:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77a09a08-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847722;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=MduM0JsgkZBJMQ1EP3iSTUZBDit7f0U+sXntkhT22ek=;
  b=DLCICTHY4abreI3Czy4uk6HR/o4xp1rrshPDjv98lrQFpSQl4Y2wfDfs
   VtgHuo2SQcs7h5OH7YGQvN2ZqO5TD4uib8eOvXeuiaoeBtIvYfXJmIQcq
   SJ3C4iF9kr6YrWGsiZME6MRRk813MrV8ZG88WDFY7tez5GsijhW3uYETE
   I=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 2alyoFq9MpGyovU7QSRTAi0cWX1WRc7Ul8O5oT+PZWjdafACqEPvo13hL1OxMZb8ig94QVh9Cn
 ddTGi1gC+SJgTvC1x2gb5nhuYpT8vn6CCQQQhT/wf8VPPItvIf7C+JLPkbCpX9qd0NQFwyu+sU
 0fn0MhWpksI69vaqGXvZSTe2tBiCpjQ9Hor9KsWH3HjShQHW3uyxcZnz95wprdU8CybGrzWmb1
 PkMbViXfUsQw8a8Lz8CVoafyOFc9Mwce7QFFNT+xSOzmZ7oscYs0D/GFUCBVJDqryhC92LVdRN
 c3Q35tZKq85aqZ8yovtaLvm6
X-SBRS: 5.1
X-MesageID: 58637888
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Bkdzt6zPDLc8ypZ724l6t+d6wCrEfRIJ4+MujC+fZmUNrF6WrkUEm
 2RJXW+OaK2La2fxetx2Pd+yp0oAupPdx4djHVdqpCAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRk2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt8Fpy
 /IXuMGwcBkOeYjHpeYyXBBpPxgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVors0lMMnsOpJZonx6xCvVJf0nXYrCU+PB4towMDIY25AQRqmON
 5pxhTxHcAbsSkFuanItEb0Zrt6QonraUzEFpwfAzUYwyzeKl1EguFT3C/LUZd6iVchThlyfp
 G/N4yL+GB5yHNaS0yaf+3SgwOrGhzrmWZk6Hae9sPVthTW72Wg7GBAQE1yhrpGRiESzRtZeI
 Ew84Tc1oO4580nDZuf6Wxq0sXuVpCk2UtBbE/A5wAyVw6+S6AGcbkANSCJBb9o38tc7XzUw2
 neGmtroAXpkt7j9YWKQ8PKYoC2/PQARLHQefmkUQA0d+d7hrYovyBXVQb5LErOxj9DzMSH9x
 XaNtidWr64IkccB2qG//FbGqzGhvJ7ESkgy/Aq/Y46+xlonPsj/PdXusAWFq6YbRGqEcrWfl
 GkcmO/E4b0ONI+q0wmGfeciE7iYy8/QZVUwnmVTN5Um8j2s/VuqcoZR/CxyKS9VDyoURdP6S
 BSN4F0Mvfe/KFPvNPYqONzpV6zG2IC5TYy9Ps04eOaidXSYmOWv2Ch1LXCd0Gn2+KTHufFuY
 MzLGSpA4JtzNEiG8NZUb7tCuVPI7npnrY82eXwc5076uYdynFbPFd843KKmN4jVFp+srgTP6
 Mp4PMCX0RhZW+CWSnCJqtFMcgFafSlhW8GeRylrmgmreFQOJY3cI6WJneNJl3JNw8y5adskD
 lniAxQFmTITdFXMKBmQa2ALVV8cdc0XkJ7PBgR1ZQzA8yF6Oe6Htf5DH7NqLehP3LEylpZcE
 qhaE/hs99wSE1wrDRxGNsKjxGGjHTz27T+z092NPGJiIsU+HlORobcJvGLHrUEzM8Z+juNmy
 5XI6+8RacNrq91KAJmEZfSx4Um2uHRByut+U1GReotYeVn28ZgsICv016dlL8YJIBTF5z2by
 wfJXktI+biT+9c4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKxQ4Ys4d1H7tx47g54t/j++1Twgh+RS2ZZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQdIdgQ/b+mF2fUFoRXo7Kw4cBfg+St63LubSkEObROCvzNQceluO4Q/z
 OZ/5MNPs16jigAnO8qthzxP8zjeNWQJVqgqu81IAILvjQZ3mFhObYaFV33z6ZCLLd5NLlMrM
 nmfg6+b3+ZQwU/LcnwSE3nR3LUC2cRS6U4SlFJSdU6Untflh+Ms2EwD+Ds6eQ1Z0xFb3r8hI
 WNsLUB0ef2D8joAaBKvhIxw99Wt3CGkx3E=
IronPort-HdrOrdr: A9a23:08yYPKiyiFTPg/Dvpog7n7Ltq3BQXtwji2hC6mlwRA09TySZ//
 rAoB19726StN9xYgBYpTnuAsi9qB/nmKKdpLNhX4tKPzOW3FdATrsD0WKK+VSJcEfDH6xmpM
 JdmsBFebvN5DNB4/oSjjPVLz9Z+qjlzJyV
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58637888"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Jan Beulich
	<jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH v8 40/47] RFC, no-VPATH: prepend $(srctree) to source prerequisite
Date: Thu, 25 Nov 2021 13:39:59 +0000
Message-ID: <20211125134006.1076646-41-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

Prefix many prerequisite with $(srctree) or replace $(src) with
$(srcdir) to not have to rely on VPATH=$(srctree).

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/arch/arm/Makefile      | 2 +-
 xen/arch/x86/Makefile      | 4 ++--
 xen/arch/x86/boot/Makefile | 2 +-
 xen/arch/x86/efi/Makefile  | 2 +-
 xen/build.mk               | 6 +++---
 xen/include/Makefile       | 2 +-
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index ae7a2f907540..8b340affbe38 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -111,7 +111,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 .PHONY: include
 include:
 
-$(obj)/xen.lds: $(src)/xen.lds.S FORCE
+$(obj)/xen.lds: $(srcdir)/xen.lds.S FORCE
 	$(call if_changed,cpp_lds_S)
 
 $(obj)/dtb.o: $(patsubst "%",%,$(CONFIG_DTB_FILE))
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 5fb7f1408768..9e5195f58d3b 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -236,7 +236,7 @@ include: $(objtree)/arch/x86/include/asm/asm-macros.h
 
 $(obj)/asm-macros.i: CFLAGS-y += -D__ASSEMBLY__ -P
 
-$(objtree)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefile
+$(objtree)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(srcdir)/Makefile
 	$(call filechk,asm-macros.h)
 
 define filechk_asm-macros.h
@@ -254,7 +254,7 @@ define filechk_asm-macros.h
 endef
 
 $(obj)/efi.lds: AFLAGS-y += -DEFI
-$(obj)/xen.lds $(obj)/efi.lds: $(src)/xen.lds.S FORCE
+$(obj)/xen.lds $(obj)/efi.lds: $(srcdir)/xen.lds.S FORCE
 	$(call if_changed_dep,cpp_lds_S)
 
 clean-files := \
diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index 4fc6b1d8ffc2..ccba2e281dfc 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -47,7 +47,7 @@ $(head-objs): %.S: %.bin
 	$(OBJCOPY) -O binary -R .got.plt $< $@
 
 
-%.lnk: %.o $(src)/build32.lds
+%.lnk: %.o $(srcdir)/build32.lds
 	$(LD) $(LDFLAGS_DIRECT) -N -T $(filter %.lds,$^) -o $@ $<
 
 clean-files := cmdline.S reloc.S *.lnk *.bin
diff --git a/xen/arch/x86/efi/Makefile b/xen/arch/x86/efi/Makefile
index 81fda12a70ea..7af96629294a 100644
--- a/xen/arch/x86/efi/Makefile
+++ b/xen/arch/x86/efi/Makefile
@@ -3,7 +3,7 @@ include $(srctree)/common/efi/efi_common.mk
 quiet_cmd_objcopy_o_ihex = OBJCOPY $@
 cmd_objcopy_o_ihex = $(OBJCOPY) -I ihex -O binary $< $@
 
-$(obj)/%.o: $(src)/%.ihex FORCE
+$(obj)/%.o: $(srcdir)/%.ihex FORCE
 	$(call if_changed,objcopy_o_ihex)
 
 $(obj)/boot.init.o: $(obj)/buildid.o
diff --git a/xen/build.mk b/xen/build.mk
index 65d8dbc13828..7b48b7eb1404 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -8,7 +8,7 @@ define cmd_banner
     mv -f $@.tmp $@
 endef
 
-.banner: tools/xen.flf FORCE
+.banner: $(srctree)/tools/xen.flf FORCE
 	$(call if_changed,banner)
 
 targets += .banner
@@ -33,14 +33,14 @@ define cmd_compile.h
     fi
 endef
 
-include/xen/compile.h: include/xen/compile.h.in .banner FORCE
+include/xen/compile.h: $(srctree)/include/xen/compile.h.in .banner FORCE
 	@cat .banner
 	$(call if_changed,compile.h)
 
 targets += include/xen/compile.h
 
 -include $(wildcard .asm-offsets.s.d)
-asm-offsets.s: arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c
+asm-offsets.s: $(srctree)/arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c
 	$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
 	$(call move-if-changed,$@.new,$@)
 
diff --git a/xen/include/Makefile b/xen/include/Makefile
index a3977a8bfccd..9fbe9f0de772 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -52,7 +52,7 @@ $(obj)/compat/%.h: $(obj)/compat/%.i $(srcdir)/Makefile $(srctree)/tools/compat-
 $(obj)/compat/%.i: $(obj)/compat/%.c $(srcdir)/Makefile
 	$(CPP) $(filter-out -Wa$(comma)% -include %/include/xen/config.h,$(XEN_CFLAGS)) $(cppflags-y) -o $@ $<
 
-$(obj)/compat/%.c: $(src)/public/%.h $(srcdir)/xlat.lst $(srcdir)/Makefile $(srctree)/tools/compat-build-source.py
+$(obj)/compat/%.c: $(srcdir)/public/%.h $(srcdir)/xlat.lst $(srcdir)/Makefile $(srctree)/tools/compat-build-source.py
 	mkdir -p $(@D)
 	$(PYTHON) $(srctree)/tools/compat-build-source.py $(srcdir)/xlat.lst <$< >$@.new
 	mv -f $@.new $@
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231236.400079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5T-0006JR-5N; Thu, 25 Nov 2021 13:46:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231236.400079; Thu, 25 Nov 2021 13:46:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5T-0006JI-0W; Thu, 25 Nov 2021 13:46:55 +0000
Received: by outflank-mailman (input) for mailman id 231236;
 Thu, 25 Nov 2021 13:46:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzg-00076i-HL
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:56 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4ee1c6e0-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:40:54 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ee1c6e0-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847654;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=6aFvX1K0ps1SE2Z1HJ19FTG5zY4QeP/HidoaiFAYelY=;
  b=XpxhcAPtVTg3N04I/znm9RmPDybs/GS8xD24UAPC0XKhS2jgAfrztl2S
   iQHEjmmtozhaz9c4BSiWJyRot2leMRg1qpUhMweU5MS5cvK3Q1uQ7gj0u
   x28PV4NJN3aIexO37AA/i+RAj7dh4uEgX5CVgAW0nhO5+BIZMwPVYE8Az
   g=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 84eS3mYjsH1lKGOHZUWBUz3eVqF1rkjyf1O7zjPFeY+cAn9malnUmxGv0kSbmeiVW+rP99QvGD
 1uYumVxiSbzPCcUc3JWEtbcV2ZI7PXmhhVHx5kYZ0u5okhc1yNh8z1yQ+apD60caNGQUBR5cN3
 ENhk3w9ndzmgY5OpHsT0V2ePQprD44s82SrfjuvtP2geIKSp40qCpy4+wjGG9oU7C/SmRpCVof
 e5ZX4jamsifCWe7kw6tF8xdwzQ75r4dEVItzNIWWYPoTt6+SXlsAhTdUSVKCaWz0TXBe1jjkdZ
 2PqIpptWFWhi/y6vucdSM/s0
X-SBRS: 5.1
X-MesageID: 58135441
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:AI2o8KkbFDTEq140YUzGHLno5gxBIERdPkR7XQ2eYbSJt1+Wr1Gzt
 xJOCDuHaPfeMzf1Ldt3a4m1pEMC7MXcy4M2GVM++H1gEyMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q12YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 IVNv4XhTj04BYrnivQtVBdkFz9BL7ITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBMDtIIMYvGAm1TzDBOwqaZvCX7/L9ZlT2zJYasVmQKaHP
 JdFNWMHgBLoODZQPkktDa4CmPqYj1XiVj5WrnGWuv9ii4TU5FMoi+W8WDbPQfSDQcROgk+Zv
 CTI5W3/CRABHMOTwnyO9XfEruXChz/hUYQeUrix7Od3gUa7z3YWThYRUDOTn/69jUKvXsNFH
 GYd8CEusKsa+VSiS5/2WBjQiHWDuBgbWdZZDewhwA6Iw6vQpQ2eAwAsQiZabd06tOc/XTEwy
 kKShNTtGCBut7uOD3ma89+8oTy+NCcPJEcedCQESk0D+NClr4Yt5jrMSdB5GaLzkdzxGhn32
 TmBqCV4jLIW5eYKyKeT7V3BmyirpJXCUkgy/Aq/dmii5AloaZWlY4Gt4F7z4vNJLYLfRV6E1
 FAUls7b4O0QAJWlkC2WXP5LDLyv/+yCMjDXnRhoBZZJ3zan9mOnfItQyCpjP0ovOcEBERf2Z
 GfDtAUX44VcVFOxdrN+aY+1D8UszIDjGM7jW/SSacBBCrBzaQuG8SdGdUOWmWf3nyARfboXY
 MnBN5z2VDBDVPohnGHeq/ohPaEDliA03DLUf4HA6D+1wYqZakKRV4gXLw7bBgwm15+srALQ+
 tdZEsKFzRRDTeHzChXqHZ4vwUMidiZiW82vwyBDXqvae1c9Rjl9YxPE6ep5I9QNokhDqgvfE
 phRsGd8wUG3u3DIIB7ihptLOOK2BsYXQZ7W0EUR0beUN5oLPdnHAEQ3LcJfkVwbGAtLl6Mcc
 hX9U5/casmjsxyek9jnUbHzrZZ5aDOgjh+UMiyubVAXJsA7GFOWq4+0L1GxpUHi6xZbUuNk/
 dWdOv7zG8JfF2yO8u6KAB5Q879BlSdEw78jN6c5CtJSZF/t4OBXx9/Z1ZcKzzU3AUybnFOyj
 l/OaT9B/LWli9JlobHh2PHfx6/0QrQWI6avNzSChVpAHXKBpTTLLE4peLvgQA0xo0uoovj/P
 rsMkKmnWBDF9X4T27dB/39Q5fpWz7PSS3Vyk2yIxV3HMAamDK1OOH6D0ZUdv6FB3OYB6wC3R
 liO6p9RPrDQYJHpF1sYJQwEaOWf1K5LxmmOvKpteEiqtjVq+LenUFlJO0XegiJqM7YoYpgux
 v0suZBK5lXn2AYqKNuPkgtd63+Ici4bS6wiu5xDWN3rhwMnx0tse5vZDiOqspiDZ88VahshI
 yOOhbqEjLNZnxKQf302HHnL/OxcmZVR50wakA5cfwyEw4OXiOU20Rtd9SUMYj5UlhgXgfhuP
 mVLNlFuIfnc9Tlfm8UeDXunHBtMBUPF9xWpmUcJjmDQU2KhSnfJcD8mIe+I8U0UrzBcczxc8
 O3KwWrpS2+3LsT43y90Uk95sf3zC9d281SaysygGs2EGbg8YCbk3fDyNTZZ9UO/DJNjnlDDq
 Mlr4P10OP/yOiMnqqEmD5WXiOYLQxeeKW0eGfxs8cvlx40HlO1eDdRWF32MRw==
IronPort-HdrOrdr: A9a23:GO2MdqyTN1AZmq/eXhUQKrPwFL1zdoMgy1knxilNoRw8SKKlfq
 eV7ZImPH7P+U4ssR4b+exoVJPtfZqYz+8R3WBzB8bEYOCFghrKEGgK1+KLqFeMJ8S9zJ846U
 4JSdkGNDSaNzlHZKjBjzVQa+xQouW6zA==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58135441"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "George
 Dunlap" <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, "Jan
 Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, "Ross
 Lagerwall" <ross.lagerwall@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [XEN PATCH v8 12/47] build: build everything from the root dir, use obj=$subdir
Date: Thu, 25 Nov 2021 13:39:31 +0000
Message-ID: <20211125134006.1076646-13-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

A subdirectory is now built by setting "$(obj)" instead of changing
directory. "$(obj)" should always be set when using "Rules.mk" and
thus a shortcut "$(build)" is introduced and should be used.

A new variable "$(need-builtin)" is introduce. It is to be used
whenever a "built_in.o" is wanted from a subdirectory. "built_in.o"
isn't the main target anymore, and thus only needs to depends on the
objects that should be part of "built_in.o".

Introduce $(srctree) and $(objtree) to replace $(BASEDIR) in cases a
relative path is better, and $(abs_srctree) and $(abs_objtree) which
have an absolute path.

DEPS is updated as the existing macro to deal with it doesn't know
about $(obj).

There's some changes in "Rules.mk" which in addition to deal with
"$(obj)" also make it's looks more like "Makefile.build" from Linux
v5.12.

test/Makefile doesn't need special handling in order to build
everything under test/, Rules.mk will visit test/livepatch via
$(subdir-y), thus "tests" "all" and "build" target are removed.
"subtree-force-update" target isn't useful so it is removed as well.

test/livepatch/Makefile doesn't need default target anymore, Rules.mk
will build everything in $(extra-y) and thus all *.livepatch.

Adjust cloc recipe: dependency files generated by CC will now have the
full path to the source file, so we don't need to prepend the
subdirectory. This fix some issue with source not been parsed by cloc
before. Also source from tools/kconfig would be listed with changes in
this patch so adjust the find command to stop listing the "tools"
directory and thus kconfig. With a default build of Xen on X86, they
are a few new files parsed by cloc:
    arch/x86/x86_64/compat/mm.c
    arch/x86/x86_64/mm.c
    common/compat/domain.c
    common/compat/memory.c
    common/compat/xlat.c

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Bob Eshleman <bobbyeshleman@gmail.com>
---

Notes:
    v8:
    - rebased
    - move check for $(obj) in Rules.mk earlier
    - use $(sort ) when adding directories in $(subdir-y)
    - fix missing space between "DEPS" and ":="
    - use -iquote when adding '.' for xen/arch/x86/usercopy.o
    - introduce also abs_srctree and abs_objtree
      those were in patch "build: replace $(BASEDIR) by $(objtree)"
    - reworked cmd_objcopy_fix_sym, we don't need to do anything for old
      version of clang, and for recent version of clang the change is the
      same a for gcc.
    - adjust "cloc" recipe
    - add some more $(Q) to silent $(MAKE) $(build)=...
    
    v7:
    - Spell "Makefile.build" as "Rules.mk" in the warning in Rules.mk about
      undefined $(obj).
    - use $(srctree) for include/xen/config.h
    - handle $(nocov-y) and $(noubsan-y), needed to add $(obj)/

 xen/Makefile                |  36 ++++++----
 xen/Rules.mk                | 138 ++++++++++++++++++++++++------------
 xen/arch/arm/Makefile       |   4 +-
 xen/arch/arm/Rules.mk       |   5 --
 xen/arch/arm/arch.mk        |   4 +-
 xen/arch/riscv/arch.mk      |   4 +-
 xen/arch/x86/Makefile       |  11 +--
 xen/arch/x86/Rules.mk       |   4 +-
 xen/arch/x86/arch.mk        |  12 ++--
 xen/arch/x86/boot/Makefile  |   8 +--
 xen/build.mk                |  12 +++-
 xen/include/Makefile        |   6 +-
 xen/scripts/Kbuild.include  |   6 ++
 xen/test/Makefile           |   7 +-
 xen/test/livepatch/Makefile |   6 --
 xen/xsm/flask/Makefile      |   2 +-
 xen/xsm/flask/ss/Makefile   |   2 +-
 17 files changed, 162 insertions(+), 105 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index 6afae6ced37c..88997244368c 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -22,6 +22,15 @@ export CHECKPOLICY	?= checkpolicy
 export BASEDIR := $(CURDIR)
 export XEN_ROOT := $(BASEDIR)/..
 
+abs_objtree := $(CURDIR)
+abs_srctree := $(CURDIR)
+
+export abs_srctree abs_objtree
+
+srctree := .
+objtree := .
+export srctree objtree
+
 # Do not use make's built-in rules and variables
 MAKEFLAGS += -rR
 
@@ -47,7 +56,7 @@ export KCONFIG_CONFIG ?= .config
 
 export CC CXX LD
 
-export TARGET := $(BASEDIR)/xen
+export TARGET := xen
 
 .PHONY: default
 default: build
@@ -250,7 +259,7 @@ endif
 CFLAGS += -nostdinc -fno-builtin -fno-common
 CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith
 $(call cc-option-add,CFLAGS,CC,-Wvla)
-CFLAGS += -pipe -D__XEN__ -include $(BASEDIR)/include/xen/config.h
+CFLAGS += -pipe -D__XEN__ -include $(srctree)/include/xen/config.h
 CFLAGS-$(CONFIG_DEBUG_INFO) += -g
 
 ifneq ($(CONFIG_CC_IS_CLANG),y)
@@ -352,10 +361,10 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
 .PHONY: tests
 tests:
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C test tests
+	$(Q)$(MAKE) $(build)=test
 .PHONY: install-tests
 install-tests:
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C test install
+	$(Q)$(MAKE) $(build)=test install
 
 .PHONY: _uninstall
 _uninstall: D=$(DESTDIR)
@@ -411,16 +420,16 @@ $(TARGET).gz: $(TARGET)
 
 $(TARGET): FORCE
 	$(MAKE) -C tools
-	$(MAKE) -f $(BASEDIR)/Rules.mk include/xen/compile.h
+	$(Q)$(MAKE) $(build)=. include/xen/compile.h
 	[ -e arch/$(TARGET_ARCH)/efi ] && for f in $$(cd common/efi; echo *.[ch]); \
 		do test -r arch/$(TARGET_ARCH)/efi/$$f || \
 		   ln -nsf ../../../common/efi/$$f arch/$(TARGET_ARCH)/efi/; \
 		done; \
 		true
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C include
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) include
-	$(MAKE) -f $(BASEDIR)/Rules.mk arch/$(TARGET_ARCH)/include/asm/asm-offsets.h
-	$(MAKE) -f $(BASEDIR)/Rules.mk $@
+	$(Q)$(MAKE) $(build)=include all
+	$(Q)$(MAKE) $(build)=arch/$(TARGET_ARCH) include
+	$(Q)$(MAKE) $(build)=. arch/$(TARGET_ARCH)/include/asm/asm-offsets.h
+	$(Q)$(MAKE) $(build)=. $@
 
 SUBDIRS = xsm arch/$(TARGET_ARCH) common drivers lib test
 define all_sources
@@ -467,19 +476,18 @@ _MAP:
 	$(NM) -n $(TARGET)-syms | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' > System.map
 
 %.o %.i %.s: %.c FORCE
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C $(*D) $(@F)
+	$(Q)$(MAKE) $(build)=$(*D) $(*D)/$(@F)
 
 %.o %.s: %.S FORCE
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C $(*D) $(@F)
+	$(Q)$(MAKE) $(build)=$(*D) $(*D)/$(@F)
 
 %/: FORCE
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C $* built_in.o built_in_bin.o
+	$(Q)$(MAKE) $(build)=$* need-builtin=1
 
 .PHONY: cloc
 cloc:
-	find . -name '*.o.d' | while read f; do \
+	find . -name tools -prune -o -name '*.o.d' -print | while read f; do \
 	    for sf in $$(grep -o "[a-zA-Z0-9_/-]*\.[cS]" $$f); do \
-		sf="$$(dirname $$f)/$$sf"; \
 		test -f "$$sf" && echo "$$sf"; \
 	    done; \
 	done | cloc --list-file=-
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 14b6e7fdd721..32a97e012060 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -3,19 +3,29 @@
 # Makefile and are consumed by Rules.mk
 #
 
-obj := .
+ifndef obj
+$(warning kbuild: Rules.mk is included improperly)
+endif
+
 src := $(obj)
 
+PHONY := __build
+__build:
+
 -include $(BASEDIR)/include/config/auto.conf
 
 include $(XEN_ROOT)/Config.mk
 include $(BASEDIR)/scripts/Kbuild.include
 
 # Initialise some variables
+obj-y :=
 lib-y :=
 targets :=
+subdir-y :=
 CFLAGS-y :=
 AFLAGS-y :=
+nocov-y :=
+noubsan-y :=
 
 SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
                                             $(foreach w,1 2 4, \
@@ -50,27 +60,54 @@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $< $@
 quiet_cmd_binfile = BINFILE $@
 cmd_binfile = $(SHELL) $(BASEDIR)/tools/binfile $(BINFILE_FLAGS) $@ $(2)
 
-define gendep
-    ifneq ($(1),$(subst /,:,$(1)))
-        DEPS += $(dir $(1)).$(notdir $(1)).d
-    endif
-endef
-$(foreach o,$(filter-out %/,$(obj-y) $(obj-bin-y) $(extra-y)),$(eval $(call gendep,$(o))))
+# Figure out what we need to build from the various variables
+# ===========================================================================
+
+# Libraries are always collected in one lib file.
+# Filter out objects already built-in
+lib-y := $(filter-out $(obj-y), $(sort $(lib-y)))
+
+# Subdirectories we need to descend into
+subdir-y := $(sort $(subdir-y) $(patsubst %/,%,$(filter %/, $(obj-y))))
 
 # Handle objects in subdirs
-# ---------------------------------------------------------------------------
-# o if we encounter foo/ in $(obj-y), replace it by foo/built_in.o
-#   and add the directory to the list of dirs to descend into: $(subdir-y)
-subdir-y := $(subdir-y) $(filter %/, $(obj-y))
+# - if we encounter foo/ in $(obj-y), replace it by foo/built_in.o
+ifdef need-builtin
 obj-y    := $(patsubst %/, %/built_in.o, $(obj-y))
+else
+obj-y    := $(filter-out %/, $(obj-y))
+endif
 
-# $(subdir-obj-y) is the list of objects in $(obj-y) which uses dir/ to
-# tell kbuild to descend
-subdir-obj-y := $(filter %/built_in.o, $(obj-y))
+# Add subdir path
 
-# Libraries are always collected in one lib file.
-# Filter out objects already built-in
-lib-y := $(filter-out $(obj-y), $(sort $(lib-y)))
+extra-y         := $(addprefix $(obj)/,$(extra-y))
+targets         := $(addprefix $(obj)/,$(targets))
+lib-y           := $(addprefix $(obj)/,$(lib-y))
+obj-y           := $(addprefix $(obj)/,$(obj-y))
+obj-bin-y       := $(addprefix $(obj)/,$(obj-bin-y))
+subdir-y        := $(addprefix $(obj)/,$(subdir-y))
+nocov-y         := $(addprefix $(obj)/,$(nocov-y))
+noubsan-y       := $(addprefix $(obj)/,$(noubsan-y))
+
+# subdir-builtin may contain duplications. Use $(sort ...)
+subdir-builtin := $(sort $(filter %/built_in.o, $(obj-y)))
+
+targets-for-builtin := $(extra-y)
+
+ifneq ($(strip $(lib-y)),)
+    targets-for-builtin += $(obj)/lib.a
+endif
+
+ifdef need-builtin
+    targets-for-builtin += $(obj)/built_in.o
+    ifneq ($(strip $(obj-bin-y)),)
+        ifeq ($(CONFIG_LTO),y)
+            targets-for-builtin += $(obj)/built_in_bin.o
+        endif
+    endif
+endif
+
+targets += $(targets-for-builtin)
 
 $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS_ONLY
 
@@ -122,29 +159,28 @@ quiet_cmd_cc_builtin = CC      $@
 cmd_cc_builtin = \
     $(CC) $(XEN_CFLAGS) -c -x c /dev/null -o $@
 
+# To build objects in subdirs, we need to descend into the directories
+$(subdir-builtin): $(obj)/%/built_in.o: $(obj)/% ;
+
 quiet_cmd_ld_builtin = LD      $@
 ifeq ($(CONFIG_LTO),y)
 cmd_ld_builtin = \
-    $(LD_LTO) -r -o $@ $(filter $(obj-y),$(real-prereqs))
+    $(LD_LTO) -r -o $@ $(real-prereqs)
 else
 cmd_ld_builtin = \
-    $(LD) $(XEN_LDFLAGS) -r -o $@ $(filter $(obj-y),$(real-prereqs))
+    $(LD) $(XEN_LDFLAGS) -r -o $@ $(real-prereqs)
 endif
 
-built_in.o: $(obj-y) $(if $(strip $(lib-y)),lib.a) $(extra-y) FORCE
+$(obj)/built_in.o: $(obj-y) FORCE
 	$(call if_changed,$(if $(strip $(obj-y)),ld_builtin,cc_builtin))
 
-lib.a: $(lib-y) FORCE
+$(obj)/lib.a: $(lib-y) FORCE
 	$(call if_changed,ar)
 
-targets += built_in.o
-ifneq ($(strip $(lib-y)),)
-targets += lib.a
-endif
-targets += $(filter-out $(subdir-obj-y), $(obj-y) $(lib-y)) $(extra-y)
-targets += $(MAKECMDGOALS)
+targets += $(filter-out $(subdir-builtin), $(obj-y))
+targets += $(lib-y) $(MAKECMDGOALS)
 
-built_in_bin.o: $(obj-bin-y) $(extra-y)
+$(obj)/built_in_bin.o: $(obj-bin-y)
 ifeq ($(strip $(obj-bin-y)),)
 	$(CC) $(a_flags) -c -x assembler /dev/null -o $@
 else
@@ -155,23 +191,15 @@ endif
 PHONY += FORCE
 FORCE:
 
-%/built_in.o %/lib.a: FORCE
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C $* built_in.o
-
-%/built_in_bin.o: FORCE
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C $* built_in_bin.o
-
-SRCPATH := $(patsubst $(BASEDIR)/%,%,$(CURDIR))
-
 quiet_cmd_cc_o_c = CC      $@
 ifeq ($(CONFIG_ENFORCE_UNIQUE_SYMBOLS),y)
     cmd_cc_o_c = $(CC) $(c_flags) -c $< -o $(dot-target).tmp -MQ $@
-    ifeq ($(CONFIG_CC_IS_CLANG)$(call clang-ifversion,-lt,400,y),yy)
-        cmd_objcopy_fix_sym = $(OBJCOPY) --redefine-sym $<=$(SRCPATH)/$< $(dot-target).tmp $@
+    ifneq ($(CONFIG_CC_IS_CLANG)$(call clang-ifversion,-lt,400,y),yy)
+        cmd_objcopy_fix_sym = \
+	    $(OBJCOPY) --redefine-sym $(<F)=$< $(dot-target).tmp $@ && rm -f $(dot-target).tmp
     else
-        cmd_objcopy_fix_sym = $(OBJCOPY) --redefine-sym $(<F)=$(SRCPATH)/$< $(dot-target).tmp $@
+        cmd_objcopy_fix_sym = mv -f $(dot-target).tmp $@
     endif
-    cmd_objcopy_fix_sym += && rm -f $(dot-target).tmp
 else
     cmd_cc_o_c = $(CC) $(c_flags) -c $< -o $@
 endif
@@ -181,13 +209,13 @@ define rule_cc_o_c
     $(call cmd,objcopy_fix_sym)
 endef
 
-%.o: %.c FORCE
+$(obj)/%.o: $(src)/%.c FORCE
 	$(call if_changed_rule,cc_o_c)
 
 quiet_cmd_cc_o_S = CC      $@
 cmd_cc_o_S = $(CC) $(a_flags) -c $< -o $@
 
-%.o: %.S FORCE
+$(obj)/%.o: $(src)/%.S FORCE
 	$(call if_changed,cc_o_S)
 
 
@@ -205,7 +233,7 @@ define cmd_obj_init_o
     $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
 endef
 
-$(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): %.init.o: %.o FORCE
+$(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(obj)/%.o FORCE
 	$(call if_changed,obj_init_o)
 
 quiet_cmd_cpp_i_c = CPP     $@
@@ -217,19 +245,21 @@ cmd_cc_s_c = $(CC) $(filter-out -Wa$(comma)%,$(c_flags)) -S $< -o $@
 quiet_cmd_cpp_s_S = CPP     $@
 cmd_cpp_s_S = $(CPP) $(call cpp_flags,$(a_flags)) -MQ $@ -o $@ $<
 
-%.i: %.c FORCE
+$(obj)/%.i: $(src)/%.c FORCE
 	$(call if_changed,cpp_i_c)
 
-%.s: %.c FORCE
+$(obj)/%.s: $(src)/%.c FORCE
 	$(call if_changed,cc_s_c)
 
-%.s: %.S FORCE
+$(obj)/%.s: $(src)/%.S FORCE
 	$(call if_changed,cpp_s_S)
 
 # Linker scripts, .lds.S -> .lds
 quiet_cmd_cpp_lds_S = LDS     $@
 cmd_cpp_lds_S = $(CPP) -P $(call cpp_flags,$(a_flags)) -D__LINKER__ -MQ $@ -o $@ $<
 
+targets := $(filter-out $(PHONY), $(targets))
+
 # Add intermediate targets:
 # When building objects with specific suffix patterns, add intermediate
 # targets that the final targets are derived from.
@@ -239,7 +269,18 @@ intermediate_targets = $(foreach sfx, $(2), \
 # %.init.o <- %.o
 targets += $(call intermediate_targets, .init.o, .o)
 
--include $(DEPS_INCLUDE)
+# Build
+# ---------------------------------------------------------------------------
+
+__build: $(targets-for-builtin) $(subdir-y)
+	@:
+
+# Descending
+# ---------------------------------------------------------------------------
+
+PHONY += $(subdir-y)
+$(subdir-y):
+	$(Q)$(MAKE) $(build)=$@ need-builtin=$(if $(filter $@/built_in.o, $(subdir-builtin)),1)
 
 # Read all saved command lines and dependencies for the $(targets) we
 # may be building above, using $(if_changed{,_dep}). As an
@@ -250,6 +291,9 @@ existing-targets := $(wildcard $(sort $(targets)))
 
 -include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
 
+DEPS := $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).d)
+-include $(DEPS_INCLUDE)
+
 # Declare the contents of the PHONY variable as phony.  We keep that
 # information in a variable so we can use it in if_changed and friends.
 .PHONY: $(PHONY)
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index c993ce72a341..fd24f0212ffa 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -95,12 +95,12 @@ $(TARGET)-syms: $(BASEDIR)/prelink.o $(obj)/xen.lds
 	    $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0
 	$(NM) -pa --format=sysv $(@D)/.$(@F).0 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0.S
-	$(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0.o
+	$(MAKE) $(build)=$(@D) $(@D)/.$(@F).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
 	    $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
 	$(NM) -pa --format=sysv $(@D)/.$(@F).1 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1.S
-	$(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1.o
+	$(MAKE) $(build)=$(@D) $(@D)/.$(@F).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).1.o -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk
index 290609487605..e69de29bb2d1 100644
--- a/xen/arch/arm/Rules.mk
+++ b/xen/arch/arm/Rules.mk
@@ -1,5 +0,0 @@
-# head.o is built by descending into arch/arm/$(TARGET_SUBARCH), depends on the
-# part of $(ALL_OBJS) that will eventually recurse into $(TARGET_SUBARCH)/ and
-# build head.o
-arch/arm/$(TARGET_SUBARCH)/head.o: arch/arm/built_in.o
-arch/arm/$(TARGET_SUBARCH)/head.o: ;
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index ba3f140e2ea7..4e3f7014305e 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -1,8 +1,8 @@
 ########################################
 # arm-specific definitions
 
-CFLAGS += -I$(BASEDIR)/include
-CFLAGS += -I$(BASEDIR)/arch/$(TARGET_ARCH)/include
+CFLAGS += -I$(srctree)/include
+CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
 
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
diff --git a/xen/arch/riscv/arch.mk b/xen/arch/riscv/arch.mk
index 39ae6ffea94d..694ba053ceab 100644
--- a/xen/arch/riscv/arch.mk
+++ b/xen/arch/riscv/arch.mk
@@ -11,5 +11,5 @@ riscv-march-$(CONFIG_RISCV_ISA_C)       := $(riscv-march-y)c
 # -mcmodel=medlow would force Xen into the lower half.
 
 CFLAGS += -march=$(riscv-march-y) -mstrict-align -mcmodel=medany
-CFLAGS += -I$(BASEDIR)/include
-CFLAGS += -I$(BASEDIR)/arch/$(TARGET_ARCH)/include
+CFLAGS += -I$(srctree)/include
+CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index f9af39ba6138..6f18daf9105c 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -80,6 +80,9 @@ endif
 extra-y += asm-macros.i
 extra-y += xen.lds
 
+# Allows usercopy.c to include itself
+$(obj)/usercopy.o: CFLAGS-y += -iquote .
+
 ifneq ($(CONFIG_HVM),y)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
 endif
@@ -129,13 +132,13 @@ $(TARGET)-syms: $(BASEDIR)/prelink.o $(obj)/xen.lds
 	$(NM) -pa --format=sysv $(@D)/.$(@F).0 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort \
 		>$(@D)/.$(@F).0.S
-	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).0.o
+	$(MAKE) $(build)=$(@D) efi-y= $(@D)/.$(@F).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
 	$(NM) -pa --format=sysv $(@D)/.$(@F).1 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		>$(@D)/.$(@F).1.S
-	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).1.o
+	$(MAKE) $(build)=$(@D) efi-y= $(@D)/.$(@F).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).1.o -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
@@ -199,14 +202,14 @@ endif
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).0) >$(@D)/.$(@F).0r.S
 	$(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).0 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0s.S
-	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o
+	$(MAKE) $(build)=$(@D) efi-y= .$(@F).0r.o .$(@F).0s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
 	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds -N $< \
 	                $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o $(note_file_option) -o $(@D)/.$(@F).$(base).1 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).1) >$(@D)/.$(@F).1r.S
 	$(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).1 \
 		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1s.S
-	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o
+	$(MAKE) $(build)=$(@D) efi-y= .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds -N $< \
 	                $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o $(note_file_option) -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk
index 56fe22c979ea..2d12c2dca208 100644
--- a/xen/arch/x86/Rules.mk
+++ b/xen/arch/x86/Rules.mk
@@ -2,9 +2,9 @@
 # x86-specific definitions
 
 ifneq ($(filter -DHAVE_AS_QUOTED_SYM,$(XEN_CFLAGS)),)
-object_label_flags = '-D__OBJECT_LABEL__=$(subst $(BASEDIR)/,,$(CURDIR))/$@'
+object_label_flags = '-D__OBJECT_LABEL__=$@'
 else
-object_label_flags = '-D__OBJECT_LABEL__=$(subst /,$$,$(subst -,_,$(subst $(BASEDIR)/,,$(CURDIR))/$@))'
+object_label_flags = '-D__OBJECT_LABEL__=$(subst /,$$,$(subst -,_,$@))'
 endif
 c_flags += $(object_label_flags) $(CFLAGS-stack-boundary)
 a_flags += $(object_label_flags) $(CFLAGS-stack-boundary)
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index c830dc5b3a7c..5152de343082 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -3,10 +3,10 @@
 
 export XEN_IMG_OFFSET := 0x200000
 
-CFLAGS += -I$(BASEDIR)/include
-CFLAGS += -I$(BASEDIR)/arch/$(TARGET_ARCH)/include
-CFLAGS += -I$(BASEDIR)/arch/x86/include/asm/mach-generic
-CFLAGS += -I$(BASEDIR)/arch/x86/include/asm/mach-default
+CFLAGS += -I$(srctree)/include
+CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
+CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-generic
+CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-default
 CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
 
 # Prevent floating-point variables from creeping into Xen.
@@ -87,7 +87,7 @@ efi-nr-fixups := $(shell $(OBJDUMP) -p $(efi-check-o:.o=.efi) | grep '^[[:blank:
 ifeq ($(efi-nr-fixups),2)
 MKRELOC := :
 else
-MKRELOC := efi/mkreloc
+MKRELOC := arch/x86/efi/mkreloc
 # If the linker produced fixups but not precisely two of them, we need to
 # disable it doing so.  But if it didn't produce any fixups, it also wouldn't
 # recognize the option.
@@ -103,6 +103,6 @@ export EFI_LDFLAGS
 endif
 
 # Set up the assembler include path properly for older toolchains.
-CFLAGS += -Wa,-I$(BASEDIR)/include
+CFLAGS += -Wa,-I$(srctree)/include
 
 ALL_OBJS-y := arch/x86/boot/built_in.o arch/x86/efi/built_in.o $(ALL_OBJS-y)
diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index 0aec8a464364..ba732e4a88c3 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -1,8 +1,8 @@
 obj-bin-y += head.o
 
-DEFS_H_DEPS = $(src)/defs.h $(BASEDIR)/include/xen/stdbool.h
+DEFS_H_DEPS = $(abs_srctree)/$(src)/defs.h $(abs_srctree)/include/xen/stdbool.h
 
-CMDLINE_DEPS = $(DEFS_H_DEPS) $(src)/video.h \
+CMDLINE_DEPS = $(DEFS_H_DEPS) $(abs_srctree)/$(src)/video.h \
 	       $(BASEDIR)/include/xen/kconfig.h \
 	       $(BASEDIR)/include/generated/autoconf.h
 
@@ -17,7 +17,7 @@ RELOC_DEPS = $(DEFS_H_DEPS) \
 $(obj)/head.o: $(obj)/cmdline.S $(obj)/reloc.S
 
 $(obj)/cmdline.S: $(src)/cmdline.c $(CMDLINE_DEPS) $(src)/build32.lds
-	$(MAKE) -f build32.mk -C $(obj) $(@F) CMDLINE_DEPS="$(CMDLINE_DEPS)"
+	$(MAKE) -f $(abs_srctree)/$(src)/build32.mk -C $(obj) $(@F) CMDLINE_DEPS="$(CMDLINE_DEPS)"
 
 $(obj)/reloc.S: $(src)/reloc.c $(RELOC_DEPS) $(src)/build32.lds
-	$(MAKE) -f build32.mk -C $(obj) $(@F) RELOC_DEPS="$(RELOC_DEPS)"
+	$(MAKE) -f $(abs_srctree)/$(src)/build32.mk -C $(obj) $(@F) RELOC_DEPS="$(RELOC_DEPS)"
diff --git a/xen/build.mk b/xen/build.mk
index 740945333a97..bf0c9710241a 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -59,6 +59,16 @@ arch/$(TARGET_ARCH)/include/asm/asm-offsets.h: asm-offsets.s
 	  echo ""; \
 	  echo "#endif") <$< >$@
 
+build-dirs := $(patsubst %/built_in.o,%,$(filter %/built_in.o,$(ALL_OBJS) $(ALL_LIBS)))
+
+# The actual objects are generated when descending,
+# make sure no implicit rule kicks in
+$(sort $(ALL_OBJS) $(ALL_LIBS)): $(build-dirs) ;
+
+PHONY += $(build-dirs)
+$(build-dirs): FORCE
+	$(Q)$(MAKE) $(build)=$@ need-builtin=1
+
 ifeq ($(CONFIG_LTO),y)
 # Gather all LTO objects together
 prelink_lto.o: $(ALL_OBJS) $(ALL_LIBS)
@@ -75,4 +85,4 @@ endif
 targets += prelink.o
 
 $(TARGET): prelink.o FORCE
-	$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
+	$(Q)$(MAKE) $(build)=arch/$(TARGET_ARCH) $@
diff --git a/xen/include/Makefile b/xen/include/Makefile
index d2f5a956a11a..cd40d5b4c923 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -61,7 +61,7 @@ $(obj)/compat/.xlat/%.h: $(obj)/compat/%.h $(obj)/compat/.xlat/%.lst $(BASEDIR)/
 	export PYTHON=$(PYTHON); \
 	while read what name; do \
 		$(SHELL) $(BASEDIR)/tools/get-fields.sh "$$what" compat_$$name $< || exit $$?; \
-	done <$(patsubst compat/%,compat/.xlat/%,$(basename $<)).lst >$@.new
+	done <$(patsubst $(obj)/compat/%,$(obj)/compat/.xlat/%,$(basename $<)).lst >$@.new
 	mv -f $@.new $@
 
 .PRECIOUS: $(obj)/compat/.xlat/%.lst
@@ -86,8 +86,8 @@ PUBLIC_HEADERS := $(filter-out $(src)/public/arch-% $(src)/public/dom0_ops.h, $(
 PUBLIC_C99_HEADERS := $(src)/public/io/9pfs.h $(src)/public/io/pvcalls.h
 PUBLIC_ANSI_HEADERS := $(filter-out $(src)/public/%ctl.h $(src)/public/xsm/% $(src)/public/%hvm/save.h $(PUBLIC_C99_HEADERS), $(PUBLIC_HEADERS))
 
-public/io/9pfs.h-prereq := string
-public/io/pvcalls.h-prereq := string
+$(src)/public/io/9pfs.h-prereq := string
+$(src)/public/io/pvcalls.h-prereq := string
 
 $(obj)/headers.chk: $(PUBLIC_ANSI_HEADERS) $(src)/Makefile
 	for i in $(filter %.h,$^); do \
diff --git a/xen/scripts/Kbuild.include b/xen/scripts/Kbuild.include
index b4b77f85d8d5..a333c3961db6 100644
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -61,6 +61,12 @@ cc-ifversion = $(shell [ $(CONFIG_GCC_VERSION)0 $(1) $(2)000 ] && echo $(3) || e
 
 clang-ifversion = $(shell [ $(CONFIG_CLANG_VERSION)0 $(1) $(2)000 ] && echo $(3) || echo $(4))
 
+###
+# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj=
+# Usage:
+# $(Q)$(MAKE) $(build)=dir
+build := -f $(srctree)/Rules.mk obj
+
 # Shorthand for $(MAKE) clean
 # Usage:
 # $(MAKE) $(clean) dir
diff --git a/xen/test/Makefile b/xen/test/Makefile
index 41e4d7bdb78b..080763c80766 100644
--- a/xen/test/Makefile
+++ b/xen/test/Makefile
@@ -1,13 +1,10 @@
 
-tests all: build
-
-
 ifneq ($(XEN_TARGET_ARCH),x86_32)
 # Xen 32-bit x86 hypervisor no longer supported, so has no test livepatches
 subdir-y += livepatch
 endif
 
-install build subtree-force-update uninstall: %:
+install uninstall: %:
 	set -e; for s in $(subdir-y); do \
-		$(MAKE) -f $(BASEDIR)/Rules.mk -C $$s $*; \
+		$(MAKE) $(build)=$$s $*; \
 	done
diff --git a/xen/test/livepatch/Makefile b/xen/test/livepatch/Makefile
index 69fadccd01ea..afb8d589ecae 100644
--- a/xen/test/livepatch/Makefile
+++ b/xen/test/livepatch/Makefile
@@ -11,9 +11,6 @@ endif
 CODE_ADDR=$(shell nm --defined $(1) | grep $(2) | awk '{print "0x"$$1}')
 CODE_SZ=$(shell nm --defined -S $(1) | grep $(2) | awk '{ print "0x"$$2}')
 
-.PHONY: default
-build default: livepatch
-
 extra-y += xen_hello_world.livepatch
 xen_hello_world-objs := xen_hello_world_func.o xen_hello_world.o note.o xen_note.o modinfo.o
 $(obj)/xen_hello_world.o: $(obj)/config.h
@@ -156,9 +153,6 @@ LIVEPATCHES := $(filter %.livepatch,$(extra-y))
 
 LIVEPATCH_DEBUG_DIR ?= $(DEBUG_DIR)/xen-livepatch
 
-.PHONY: livepatch
-livepatch: $(LIVEPATCHES)
-
 install: $(addprefix $(obj)/,$(LIVEPATCHES))
 	$(INSTALL_DIR) $(DESTDIR)$(LIVEPATCH_DEBUG_DIR)
 	$(INSTALL_DATA) $(addprefix $(obj)/,$(LIVEPATCHES)) $(DESTDIR)$(LIVEPATCH_DEBUG_DIR)
diff --git a/xen/xsm/flask/Makefile b/xen/xsm/flask/Makefile
index 51fd37f6c4d5..49cf730cf098 100644
--- a/xen/xsm/flask/Makefile
+++ b/xen/xsm/flask/Makefile
@@ -40,7 +40,7 @@ $(obj)/flask-policy.S: $(BASEDIR)/tools/binfile FORCE
 	$(call if_changed,binfile,$(obj)/policy.bin xsm_flask_init_policy)
 targets += flask-policy.S
 
-FLASK_BUILD_DIR := $(CURDIR)
+FLASK_BUILD_DIR := $(abs_objtree)/$(obj)
 POLICY_SRC := $(FLASK_BUILD_DIR)/xenpolicy-$(XEN_FULLVERSION)
 
 $(obj)/policy.bin: FORCE
diff --git a/xen/xsm/flask/ss/Makefile b/xen/xsm/flask/ss/Makefile
index d32b9e07138e..aba1339f3808 100644
--- a/xen/xsm/flask/ss/Makefile
+++ b/xen/xsm/flask/ss/Makefile
@@ -8,4 +8,4 @@ obj-y += services.o
 obj-y += conditional.o
 obj-y += mls.o
 
-CFLAGS-y += -I../include
+CFLAGS-y += -I$(srctree)/xsm/flask/include
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231234.400068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5R-00063K-S3; Thu, 25 Nov 2021 13:46:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231234.400068; Thu, 25 Nov 2021 13:46:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5R-00063D-Oj; Thu, 25 Nov 2021 13:46:53 +0000
Received: by outflank-mailman (input) for mailman id 231234;
 Thu, 25 Nov 2021 13:46:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF03-00076i-MS
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:19 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5d8200b7-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d8200b7-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847678;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=5TWrEHNuNLFROz3IyERYFp+CoH2z9NcBZf52JXIU9Zw=;
  b=OxaSsMKuzrPIsRZNm1xSDw7YyruEdOv241n+BjGMXSVYxAA7gR1bBwd1
   1MSCXjp/RrQ+vDJlBJRDEK8UFQ7/j1HXecWTqXVnUbcEcO+FvuBf95y1s
   b45bE7AkNoUP5GhIft9nj2Ncxs+bRuetAOah0EaGF5wcUPBZq3hLFLbwv
   s=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: RVJ7aAuQBHjZzqUlN7p4V1rdCRaDfIEJlzz8d/c0C8arvfBn/HNxit/kNlsINYx6LsUPqaP9TQ
 BgnaggibGTylRaa8+lZ7Tj0c6n5WTwdW4YS9RqcjIMeZHXSsOAYBY6YKyEJ7QClXSQRKv7Y2Ip
 4bGyZ/RllGZZ48cnjfgvFCjDsbxRyiJezD453YtfaGuBAEHtOZ0IAySYpIZDa9USk0kCg9kuxr
 ya4qJ3Ug4R3FQgQ85mKuYDSBhFbcxyQPp0dxpgDYJpuPaOKOdxy4oizaF3LOeZDhDNAAle4/Aj
 Spg1svLVHGs38fgEfaip5jYc
X-SBRS: 5.1
X-MesageID: 59006026
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:fcA6BKLtsTbQAWS6FE+R6JIlxSXFcZb7ZxGr2PjKsXjdYENSgWAAz
 DNKXT/SOPjZZGv3f9hyOo3j901UvZDUyNBnSARlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xrZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Lndt30
 cd3r6buCi1wIPPVxO8AVENXRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFlgNgjK8/6epsSoHh6wRnSDOo8QICFSKLPjTNd9Gph3pgQRayAD
 yYfQQU+XTTEbw19Bmo4A5hunsa2qHn9cwQN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wp
 GjL4mD4CREyL8GExHyO9XfErv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaDt8l3c
 hJOvHB09O5rqRLtHoKVswCETGCsvBwXXcNCKfcAtkKnk7SK+lqSG29eQWsUADA5j/MeSTsv3
 16PutrmAz1zrbGYIU6gGqeoQSCaYnZMczJbDcMQZU5cuoS4/tlv5v7aZo87SPbdszHjJd3nL
 9lmRgAajq5bs8ME3r7TEbvv02P1/cihouLYC2zqsoOZAuFRONHNi2+AswGzARN8wGGxFATpg
 ZT8s5LChN3i9LnU/MB3fM0DHauy+9GOOyDGjFhkEvEJrmr2pCH8LNAAsWsgdS+F1/ronhezP
 ifuVf55vscPbBNGk4crC25ONyja5fe5Tom0PhwlRtFPfoJwZGe6ENJGPiatM5TWuBF0y8kXY
 M7DGe71VCpyIfk3nVKeGrZGuZd2l39W+I8mbc2ip/hR+eHFPyD9pHZsGAbmU93VG4vY+liIq
 IgGaJPRo/idOcWnChTqHUcoBQhiBRAG6Vre8qS7r8aPfVhrHn8PEfjUze9zcoBphf0NxOzJ4
 mu8SglTz1+m3S/LLgCDa3ZCbrLzXMkg8SJnbHJ0ZVv4iWI+ZYuP7bsEc8dld7cQ6+E+n+V/S
 OMIepvcD60XGCjH4TkUcbL0sJdmKEawnQuLMif8OGo/cpdsShbn4NjhegezpiACAjDu7Zk1o
 qG61xOdSp0GHlwwAMHTYfOp7lWwoXlCx74iAxqWeoFeIRy+/pJrJir9iu4MD/sNcRiTlCGH0
 wu2AAsDobWfqYEC79SU17uPqJ2kErUiExMCTXXb97u/KQLT4nGnnd1bSO+NcD3QCDH09aGla
 bkHxv3wKqRazlNDso46GLd316MuodDoouYCnAhjGXzKaXWtC69hfSbajZUe6PUVy+8LoxayV
 2KO5sJeaOeAN87SGVIMIBYoM7aY3vYOlziOtfk4LS0WPsOsEGZrhamKAySxtQ==
IronPort-HdrOrdr: A9a23:/DRNAK04LvYOHONEZngSwAqjBLQkLtp133Aq2lEZdPRUGvb2qy
 nIpoV96faUskdpZJhOo7G90cW7LE80sKQFg7X5Xo3SODUO2lHJEGgK1+KLqFfd8m/Fh4tgPM
 9bAs5D4bbLY2SS4/yX3ODBKadC/OW6
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="59006026"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 21/47] build: generate x86's asm-macros.h with filechk
Date: Thu, 25 Nov 2021 13:39:40 +0000
Message-ID: <20211125134006.1076646-22-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

When we will build out-of-tree, make is going to try to generate
"asm-macros.h" before the directories "arch/x86/include/asm" exist,
thus we would need to call `mkdir` explicitly. We will use "filechk"
for that as it does everything that the current recipe does and does
call `mkdir`.

Also, they are no more "*.new" files generated in this directory.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/Makefile | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 456b7eed7536..873b32cc6945 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -230,18 +230,21 @@ include: $(BASEDIR)/arch/x86/include/asm/asm-macros.h
 $(obj)/asm-macros.i: CFLAGS-y += -D__ASSEMBLY__ -P
 
 $(BASEDIR)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefile
-	echo '#if 0' >$@.new
-	echo '.if 0' >>$@.new
-	echo '#endif' >>$@.new
-	echo '#ifndef __ASM_MACROS_H__' >>$@.new
-	echo '#define __ASM_MACROS_H__' >>$@.new
-	echo 'asm ( ".include \"$@\"" );' >>$@.new
-	echo '#endif /* __ASM_MACROS_H__ */' >>$@.new
-	echo '#if 0' >>$@.new
-	echo '.endif' >>$@.new
-	cat $< >>$@.new
-	echo '#endif' >>$@.new
-	$(call move-if-changed,$@.new,$@)
+	$(call filechk,asm-macros.h)
+
+define filechk_asm-macros.h
+    echo '#if 0'; \
+    echo '.if 0'; \
+    echo '#endif'; \
+    echo '#ifndef __ASM_MACROS_H__'; \
+    echo '#define __ASM_MACROS_H__'; \
+    echo 'asm ( ".include \"$@\"" );'; \
+    echo '#endif /* __ASM_MACROS_H__ */'; \
+    echo '#if 0'; \
+    echo '.endif'; \
+    cat $<; \
+    echo '#endif'
+endef
 
 $(obj)/efi.lds: AFLAGS-y += -DEFI
 $(obj)/xen.lds $(obj)/efi.lds: $(src)/xen.lds.S FORCE
@@ -255,7 +258,7 @@ $(obj)/efi/mkreloc: $(src)/efi/mkreloc.c
 
 .PHONY: clean
 clean::
-	rm -f *.lds *.new boot/*.o boot/*~ boot/core boot/mkelf32
+	rm -f *.lds boot/*.o boot/*~ boot/core boot/mkelf32
 	rm -f asm-macros.i $(BASEDIR)/arch/x86/include/asm/asm-macros.*
 	rm -f $(BASEDIR)/.xen-syms.[0-9]* boot/.*.d $(BASEDIR)/.xen.elf32
 	rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/mkreloc
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231242.400117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5Z-0007HK-MK; Thu, 25 Nov 2021 13:47:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231242.400117; Thu, 25 Nov 2021 13:47:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5Z-0007Fu-Em; Thu, 25 Nov 2021 13:47:01 +0000
Received: by outflank-mailman (input) for mailman id 231242;
 Thu, 25 Nov 2021 13:46:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzq-00076i-9U
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:06 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 549d3f94-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 549d3f94-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847662;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=vEelbM4UoXbBjdC2Us5bYDimWRQuQticI4pfz6oeico=;
  b=T+gLet/Qmb3dSIIMXRoqQnwYJ5qPh3jKnU4oy7Y9BxZVIRZyxVrHKFEG
   PM5IOl2nzWHelI1uKfyNwTsq78ZvkWGk2VRd0FOS4NISHXbkGl21ELcXw
   AsBNm4h9PU3ERE8rBUjG3hoGoyW9ZqGP3hf1265Nw9uaQD4GaiQqVdnL9
   M=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: kiNYlP6ps+EhTS7GpsVFJXAhuryKfxsX4qSmy4o2pLY3E555wgD8SFDp8WNABx430lVnCKm2Zg
 hNvfmhxdcrUSD0kUL6oGwA+xaSStKapOATaDPhj5Z68BeG5ap3OCkTv4JU/cTVAEJ3ySE8H3Vu
 7LncXJ1nhRbX1XxgnF6W6ABAy/0Cv3pngpDrdzpXDSxf3y59z94mEe7L5q+aNGB1pFUKkCkPkI
 HkHsJoWHyEqNOdw/wG5shQQHbqZ1SCZD1WqOcR/eYdqkESxJNaIZlTKvUzjK5Plu3uCTkzw0d4
 RhQOsxltAsYO+MkwqlYUp9aA
X-SBRS: 5.1
X-MesageID: 59006010
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:k+OSXqDvaCnuuxVW/xzkw5YqxClBgxIJ4kV8jS/XYbTApDMkg2ZRx
 mYcXW+GPfjcamqkco0iaNy18kkP7ZbXyt5mQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540087wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/zBWGoIBx5
 dR3rb+CQywIMIfKl+Y4ekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTQ+9whsMlPY/zMZkWoH1IxjDFF/c2B5vERs0m4PcFjW9o2JgXRZ4yY
 eIhNBFgawT6ICdAPwYxCLZns76XhUvWJmgwRFW9+vNsvjm7IBZK+LPkKtbSd/SBTN9ZmUver
 WXDl0zpDxdfONGBxD6t9nO3mvSJjS79QJgVFrCz6rhtmlL7+4AIIERIDx3h+6D/0xPgHYIEQ
 6AJxsYwhe8S+3P7TvT8ZQWbknSvnxA2XdVSNsRvvWlh1ZHoywqeA2EFSBtIZ9onqNI6SFQW6
 7OZoz/6LWcx6ePIEBpx4p/R9GrvYnZNcQfucAddFVNdi+QPtr3fmf4mojxLNKeuxuP4Fjjrq
 9xhhHhv3u5D5SLnOkjSwLwmv95OjsSWJuLWzl+ONo5A0u+eTNT4D7FEEXCBsZ59wH+xFzFtR
 kQslcmE9/wpBpqQjiGLS+hlNOj3vKnab2yM0Q81QchJG9GRF5mLJ9443d2DDB0xbpZslcHBP
 Cc/Rj+9FLcMZSD3PMebkqq6CtgwzLiIKDgWfqu8Uza6WbAoLFXv1Hg3PSa4hjmx+GBxwfBXE
 crKKq6EUCdFYZmLORLrHo/xJ5dwnXtgrY4SLLimpymaPU22OCTIFOxbaQTWNYjULsqs+W3oz
 jqWDOPSoz03bQE0SnC/HVc7IQ9YIH4lK4rxrsALJOePLhA/QDMqCuPLwKNncItgxvwHmuDN9
 3C7e0lZ1Fug2iGXdVTUMihuOOH1QJJyjXMnJihwb1ym7GcuPNS056AFepppIbR+rL5/zeR5R
 uUuctmbBqgdUSzO/jkQNMGvrIFreBmxqxiJOi6pPGo2c5J6HlSb8d74ZAr/siIJC3Pv58c5p
 rSh0CLdQIYCGFs+XJqHNqr3wgro73YHme90U0/ZGfVpeR3hoNpwNij8rv4rOMVQex/N8SSXi
 lSNChACqOiT/4JsqIvVhbqJppuCGvdlGhYIBHHS6Lu7OHWI/menxoMcAu+EcSqECTHx8aSmI
 +5U0+v9ILsMm1MT69hwFLNizKQf4drzpuAFklQ4TSuTN1n7WKl9JnSm3NVUsvwfz7BUjgK6R
 0aT94QIIr6OIs7kTAYcKQdNgj5vDh3Idu0+NcgIHXg=
IronPort-HdrOrdr: A9a23:+P3+8q+rq/NMphSs3SRuk+DeI+orL9Y04lQ7vn2YSXRuHfBw8P
 re+8jztCWE8Qr5N0tApTntAsS9qDbnhPxICOoqTNOftWvd2FdARbsKheCJ/9SjIVyaygc079
 YHT0EUMrPN5DZB4foSmDPIcOod/A==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="59006010"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Doug Goldstein
	<cardoe@cardoe.com>
Subject: [XEN PATCH v8 16/47] xen/tools/kconfig: fix build with -Wdeclaration-after-statement
Date: Thu, 25 Nov 2021 13:39:35 +0000
Message-ID: <20211125134006.1076646-17-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

We are going to start building kconfig with HOSTCFLAGS from Config.mk,
it has the flag "-Wdeclaration-after-statement".

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/tools/kconfig/confdata.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/tools/kconfig/confdata.c b/xen/tools/kconfig/confdata.c
index 3569d2dec37c..a69250c91355 100644
--- a/xen/tools/kconfig/confdata.c
+++ b/xen/tools/kconfig/confdata.c
@@ -1237,6 +1237,7 @@ void set_all_choice_values(struct symbol *csym)
 
 bool conf_set_all_new_symbols(enum conf_def_mode mode)
 {
+	bool has_changed = false;
 	struct symbol *sym, *csym;
 	int i, cnt, pby, pty, ptm;	/* pby: probability of bool     = y
 					 * pty: probability of tristate = y
@@ -1283,7 +1284,6 @@ bool conf_set_all_new_symbols(enum conf_def_mode mode)
 			exit( 1 );
 		}
 	}
-	bool has_changed = false;
 
 	for_all_symbols(i, sym) {
 		if (sym_has_value(sym) || (sym->flags & SYMBOL_VALID))
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231248.400134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5g-00085W-1s; Thu, 25 Nov 2021 13:47:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231248.400134; Thu, 25 Nov 2021 13:47:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5f-00085I-U4; Thu, 25 Nov 2021 13:47:07 +0000
Received: by outflank-mailman (input) for mailman id 231248;
 Thu, 25 Nov 2021 13:47:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0H-0007NX-3W
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:33 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 652e3202-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 652e3202-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847691;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=2QMfXUKxvTthImIF1JtX1MFJNxNq82iTmR07HivbeVE=;
  b=Te69j4Nv9oGbtWkWh6Up7Il7MAaEPvCAnFO1HI90uqa1MW61G9vU5t0L
   gjUuYyd2n6HajR5Y/I99zOF+7SNgcpQWVG6yag9yaQmhWUHgEGIjnj1K2
   eGvdqjQ0D0WRda7o/L7QyMoGxfPeeebpnJvI7yRfu+I5qyPxIgm5hTjxb
   c=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: NIY5SJKOzpsCsb0/5h/oJKAbuLW4u+Yw+hRGZAcK2+pXAh1VN6sDPgoDyXcUIIo44B75s7oWN2
 hMKcAncWLiPS1FJItV82QIMrdiMdTYKMIgLchd1FP8mZYH0K/4i2Mg20PXqKLv1kRGCXSnXJGd
 ThTguwj5wgbN/VTU0lCbGL+Fp9nEabUX5a8FLFrIMNMfazm6GM5P3iJqIRw+6LD8Ko2bbPZb2w
 6VwpMwaWXkCbtVZ2RKDO58lM1IDU4b61/iU5JneisC1FKTc/+os1wAjy8JszQd+YN4mKOjYSQ2
 OxkZyiZ5UYVX52seHC/JY5Fh
X-SBRS: 5.1
X-MesageID: 58576697
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:25z3Ia0nV5wSqEbXXvbD5S52kn2cJEfYwER7XKvMYLTBsI5bpz0Ex
 2YZCGmFM6mJNDbxL4hzbN/lp0oA68KHn4BjGwU+pC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbNh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhtItt8
 fQdvoaMawJxHb/unMhHClpqDHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Ej8I/LM7tLcUHt2tp1z3xBvc6W5HTBa7N4Le02R9t1p0RQ6iPO
 KL1bxJCZhr7QRtqNWsbFb0PgfuPl3v4L2NH/Qf9Sa0fvDGIkV0ZPKLWGNjIft2HQ+1Fk0Deo
 XjJl0ziGQ0TPtGbzTuD81qvi/XJkCe9X5gdfJWn8tZ6jVvVwXYcYDUGWF3+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQiH+bvDYMVtxICeo45QqRjK3O7G6xBGIJUzpAY9wOr9ItSHoh0
 Vrhoj/yLWUx6vvPEyvbr+rK62PpUcQIEYMcTQRfUTIks9L5nKM21jHdbNJPSvf2vMKgTFkc3
 Au2hCQ5grwSi+sC2KO64U3LjlqQm3TZcuImzl6JBzz4t2uVcKbgPtX1sgaDsZ6sOa7AFgHZ1
 EXojfRy+wzn4XulsCWWCNsAE7iyjxpuGG2N2AU/d3XNGtnExpJCQWyyyG0hTKuKGpxdEdMMX
 KM0kVkMjKK/xFPwMcdKj3uZUqzGN5TIG9X/TezzZdFTeJV3fwLv1HgwPhHPgDG9wBl2z/BX1
 XKnnSGEVyhyNEia5GDuG7d1PUEDmkjSOl8/tbiklk/6gNJylVaeSKsfMUvmUwzKxPjsnekhy
 P4Gb5Hi40wGCIXWO3CLmaZOfQFiBSVqXvje9p0IHtNv1yI7QQnN/deKmuh/E2Gk9owI/tr1E
 oaVBhUFlQGh3CKfcm1nqBlLMdvSYHq2llpjVQREALpi8yFLjV+H4PhNep0pU6Mg8eA/n/d4Q
 +NcI5eLA+hVSySB8DMYNMGvoItnfRWtpASPIyv6P2RvI88+H1TEqo3+Yw/i1CgSFS7r58Ewl
 KKti1HASp0ZSgU8UMuPMKCzz0m8tGQ2kf5pWxeaOcFafUjhqdA4KyH4gvItDdsLLBHPmmmT2
 wqMWE9KrujRuY4lttLOgPnc/YuuFuJ/GGtcHnXasunqZXWLoDL7zNYZAuiSfD3bWGflw4mYZ
 L1Yn6PmLfkKvFdWqI4gQbxl+r0zuon0rLhAwwU6QHiSNwa3CqltK2Wt1NVUsvEf3adQvAa7V
 x7d+tRePrnVasrpHERIeVggZ+WHk/oVhiPT/bI+J0CjvH17+7+OUENzORiQiXMCcOspYd19m
 epx6tQL7wGfiwYxNofUhy9ZwG2AM3gcXvh1rZodGoLq1lImx1wqjUYw0cMqDEVjs+lxD3Q=
IronPort-HdrOrdr: A9a23:VmdI8KkZKiCK4ubkBv59ytdI5pPpDfIU3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE7gr5OUtQ4exoV5PhfZqxz/JICMwqTNKftWrdyQyVxeNZnOjfKlTbckWUnINgPO
 VbAsxD4bXLfCFHZK3BgTVQfexO/DD+ytHLudvj
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58576697"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH v8 26/47] build,x86: remove the need for build32.mk
Date: Thu, 25 Nov 2021 13:39:45 +0000
Message-ID: <20211125134006.1076646-27-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Rework "arch/x86/boot/Makefile" to allow it to build both file
"cmdline.S" and "reloc.S" without "build32.mk".

These will now use the main rules for "%.o: %.c", and thus generate a
dependency file. (We will not need to track the dependency manually
anymore.)

But for that, we need to override the main CFLAGS to do a 32bit build.
We introduce XEN_COMMON_CFLAGS which can be reused in boot/Makefile,
and avoid the need to reparse Config.mk with a different value for
XEN_TARGET_ARCH. From this new $(XEN_COMMON_CFLAGS), we only need to
change -m64 to have the 32bit flags. Then those are applied only to
"cmdline.o" and "reloc.o".

Specifically apply the rule "%.S: %.bin" to both cmdline.S and reloc.S
to avoid make trying to regenerate other %.S files with it.

There is no change expected to the resulting "cmdline.S" and
"reloc.S", only the *.o file changes as their symbol for FILE goes
from "cmdline.c" to "arch/x86//cmdline.c". (No idea why "boot" is
missing from the string.) (I've only check with GCC, not clang.)

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - avoid the need to list CFLAGS from Config.mk a second time by
      introducing XEN_COMMON_CFLAGS, and using it in boot/
    - improve LDFLAGS_DIRECT, by just substitute x64 to i368 from x86
      LDFLAGS_DIRECT. And thus avoid copying the logic from Config.mk.

 xen/Makefile                 |  4 +++
 xen/arch/x86/boot/Makefile   | 52 +++++++++++++++++++++++++-----------
 xen/arch/x86/boot/build32.mk | 40 ---------------------------
 3 files changed, 40 insertions(+), 56 deletions(-)
 delete mode 100644 xen/arch/x86/boot/build32.mk

diff --git a/xen/Makefile b/xen/Makefile
index deae319c8a5a..90e8191f51ce 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -171,6 +171,10 @@ export LEX = $(if $(FLEX),$(FLEX),flex)
 # Default file for 'make defconfig'.
 export KBUILD_DEFCONFIG := $(ARCH)_defconfig
 
+# Copy CFLAGS generated by "Config.mk" so they can be reused later without
+# reparsing Config.mk by e.g. arch/x86/boot/.
+export XEN_COMMON_CFLAGS := $(CFLAGS)
+
 # CLANG_FLAGS needs to be calculated before calling Kconfig
 ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
 CLANG_FLAGS :=
diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index 1ac8cb435e0e..5395aae5d57e 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -1,25 +1,45 @@
 obj-bin-y += head.o
+head-objs := cmdline.S reloc.S
 
-DEFS_H_DEPS = $(abs_srctree)/$(src)/defs.h $(abs_srctree)/include/xen/stdbool.h
+nocov-y += $(head-objs:.S=.o)
+noubsan-y += $(head-objs:.S=.o)
+targets += $(head-objs:.S=.o)
 
-CMDLINE_DEPS = $(DEFS_H_DEPS) $(abs_srctree)/$(src)/video.h \
-	       $(BASEDIR)/include/xen/kconfig.h \
-	       $(BASEDIR)/include/generated/autoconf.h
+head-objs := $(addprefix $(obj)/, $(head-objs))
 
-RELOC_DEPS = $(DEFS_H_DEPS) \
-	     $(BASEDIR)/include/generated/autoconf.h \
-	     $(BASEDIR)/include/xen/kconfig.h \
-	     $(BASEDIR)/include/xen/multiboot.h \
-	     $(BASEDIR)/include/xen/multiboot2.h \
-	     $(BASEDIR)/include/xen/const.h \
-	     $(BASEDIR)/include/public/arch-x86/hvm/start_info.h
+$(obj)/head.o: $(head-objs)
 
-$(obj)/head.o: $(obj)/cmdline.S $(obj)/reloc.S
+$(head-objs:.S=.lnk): LDFLAGS_DIRECT := $(subst x86_64,i386,$(LDFLAGS_DIRECT))
 
-$(obj)/cmdline.S: $(src)/cmdline.c $(CMDLINE_DEPS) $(src)/build32.lds
-	$(MAKE) -f $(abs_srctree)/$(src)/build32.mk -C $(obj) $(@F) CMDLINE_DEPS="$(CMDLINE_DEPS)"
+CFLAGS_x86_32 := $(subst -m64,-m32 -march=i686,$(XEN_COMMON_CFLAGS))
+$(call cc-options-add,CFLAGS_x86_32,CC,$(EMBEDDED_EXTRA_CFLAGS))
+CFLAGS_x86_32 += -Werror -fno-builtin -g0 -msoft-float
+CFLAGS_x86_32 += -I$(srctree)/include
 
-$(obj)/reloc.S: $(src)/reloc.c $(RELOC_DEPS) $(src)/build32.lds
-	$(MAKE) -f $(abs_srctree)/$(src)/build32.mk -C $(obj) $(@F) RELOC_DEPS="$(RELOC_DEPS)"
+# override for 32bit binaries
+$(head-objs:.S=.o): CFLAGS-stack-boundary :=
+$(head-objs:.S=.o): XEN_CFLAGS := $(CFLAGS_x86_32) -fpic
+
+$(head-objs): %.S: %.bin
+	(od -v -t x $< | tr -s ' ' | awk 'NR > 1 {print s} {s=$$0}' | \
+	sed 's/ /,0x/g' | sed 's/,0x$$//' | sed 's/^[0-9]*,/ .long /') >$@
+
+# Drop .got.plt during conversion to plain binary format.
+# Please check build32.lds for more details.
+%.bin: %.lnk
+	$(OBJDUMP) -h $< | sed -n '/[0-9]/{s,00*,0,g;p;}' | \
+		while read idx name sz rest; do \
+			case "$$name" in \
+			.got.plt) \
+				test $$sz != 0c || continue; \
+				echo "Error: non-empty $$name: 0x$$sz" >&2; \
+				exit $$(expr $$idx + 1);; \
+			esac; \
+		done
+	$(OBJCOPY) -O binary -R .got.plt $< $@
+
+
+%.lnk: %.o $(src)/build32.lds
+	$(LD) $(LDFLAGS_DIRECT) -N -T $(filter %.lds,$^) -o $@ $<
 
 clean-files := cmdline.S reloc.S *.lnk *.bin
diff --git a/xen/arch/x86/boot/build32.mk b/xen/arch/x86/boot/build32.mk
deleted file mode 100644
index e90680cd9f52..000000000000
--- a/xen/arch/x86/boot/build32.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-override XEN_TARGET_ARCH=x86_32
-CFLAGS =
-include $(XEN_ROOT)/Config.mk
-
-$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
-
-CFLAGS += -Werror -fno-builtin -g0 -msoft-float
-CFLAGS += -I$(BASEDIR)/include
-CFLAGS := $(filter-out -flto,$(CFLAGS)) 
-
-# NB. awk invocation is a portable alternative to 'head -n -1'
-%.S: %.bin
-	(od -v -t x $< | tr -s ' ' | awk 'NR > 1 {print s} {s=$$0}' | \
-	sed 's/ /,0x/g' | sed 's/,0x$$//' | sed 's/^[0-9]*,/ .long /') >$@
-
-# Drop .got.plt during conversion to plain binary format.
-# Please check build32.lds for more details.
-%.bin: %.lnk
-	$(OBJDUMP) -h $< | sed -n '/[0-9]/{s,00*,0,g;p;}' | \
-		while read idx name sz rest; do \
-			case "$$name" in \
-			.got.plt) \
-				test $$sz != 0c || continue; \
-				echo "Error: non-empty $$name: 0x$$sz" >&2; \
-				exit $$(expr $$idx + 1);; \
-			esac; \
-		done
-	$(OBJCOPY) -O binary -R .got.plt $< $@
-
-%.lnk: %.o build32.lds
-	$(LD) $(LDFLAGS_DIRECT) -N -T build32.lds -o $@ $<
-
-%.o: %.c
-	$(CC) $(CFLAGS) -c -fpic $< -o $@
-
-cmdline.o: cmdline.c $(CMDLINE_DEPS)
-
-reloc.o: reloc.c $(RELOC_DEPS)
-
-.PRECIOUS: %.bin %.lnk
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231261.400145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5p-0000ub-ML; Thu, 25 Nov 2021 13:47:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231261.400145; Thu, 25 Nov 2021 13:47:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5p-0000uK-H6; Thu, 25 Nov 2021 13:47:17 +0000
Received: by outflank-mailman (input) for mailman id 231261;
 Thu, 25 Nov 2021 13:47:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0a-00076i-Qx
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:52 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71cf687e-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71cf687e-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847711;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=CWsp0MdhX8GJ4/siL8IM7kIar9Uw1eonEXIe+1nIRyU=;
  b=ht23CctioGJ7ppfpPRbknDiAVvt7ag2FNhmc75XxdJ04FNiDzAQWP1Lu
   T2QENAuuMNpP5m4eIT5++XnCXSnp1VVKkVH+zTLfKMED6dkUYdL3BdhWi
   Q7UEdHApjNwP5fEnhBBv4mAQgMScWcW+NziOOW4WCo6BwEfJcgL41/Q3w
   M=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: k86/nwiWaQBbq9FQommKA4r3+yJbRPRDPopy1ke3GJfAVKukIirtNoXT9N3PzdTZLr/PzPySRA
 PWhzTok7FnVKLDJS/khqINrtpcUacz3DLDtnBmHGuM5JJBUC4VgU+PqrDQNJ+MnFLTT0iBhGMx
 +oIRbQSgzArtPtobuOllAs27BysTRkdbyDocTMiMPT2F3XpCYE7tELQOv4iBu2ctFmn3hJqR4N
 Jl/bcOpQoddsY4sfRPD7SNHZnHEEFxviE2c6jQ/L3A9i89hGLILTsfP/n26hDzFRJ/vVwoM+C/
 GANas4ZRAZLiEJ6etKX6h0UT
X-SBRS: 5.1
X-MesageID: 58617700
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:hqhjF6NZLv2nxJLvrR1qkMFynXyQoLVcMsEvi/4bfWQNrUp23jAEy
 zYXWT+GMv6ONjD3KYwlYNi//UwFsJOByoBjGgto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg+w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoyfRjt9S1
 spkiYChcQU7PoDNwP4MChYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YuBqmsQkKtitJI4Fs2ts5TrYEewnUdbIRKCiCdpwgWdu358RRa62i
 8wxQgI+VDHGezB1a3wQLJlnmOCTmHPdfGgNwL6SjfVuuDWCpOBr65DmOcDZfdGiTsxPkkGV4
 GnB+gzRCxcGNNuZ2Hyd/2ilnOPnkibyWYZUH7q9ntZ6jVvWymENBRk+UVqgveL/mkO4Q8hYK
 UEf5mwpt6dayaCwZoCjBVvi+ifC50NCHYoLewEn1O2T4riM8gm6GHctciJQUN40tOI3HSY7j
 1DcyrsFGgdTmLGSTHuc8JKdojWzJTUZIAc+WMMUcecWy4K9+d9u13ojWv4mSffo1YOtRVkc1
 hjT9HBm74j/m/LnwElSEbrvpzu37qbEQQcujuk8djL0t1gpDGJJimHB1LQ60RqiBNrGJrVil
 CJd8yR70AzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlbJm65M
 B6J51I5CHpv0JyCN/EfXm5MI55ykfiI+SrNCpg4keaikrAuLVTarUmClGab3nz3kVhErE3ME
 czzTCpYNl5DUf4P5GPvH481iOZ3rghjlTK7bc2qlHyPjOvBDEN5vJ9YaTNimMhit/jayOgUm
 v4CX/a3J+J3DLejP3KJqNFLdjjn7xETXPjLliCeTcbbSiIOJY3rI6a5LWoJd9M3kqJLuP3P+
 33hCEZUxECm3S/MKBmQa2AlY7TqBM4toXU+NC0qHFCpx3l8Ptr/sPZBL8M6Les96ehu7f9oV
 P1ZKc+ONetCF2bc8DMHYJij8IE7LEa3hRiDNjaOaSQke8IyXBTA/9LpJ1O99CQHAietm9E5p
 rmsilHSTZYZHlwwB8fKcvO/iVi2uCFFyu51WkLJJPhVeVntr9c2e3Cg0KdvLphVexvZxzac2
 wKHOjsipLHA890v7d3EpaGYtIP1QeFwKVVXQjvA5rGsOCiEomf6md1cUPyFdCz2XX/v/Pnwf
 v1cyvzxPaFVnFtOtIYgQb9nwbhnuonqrr5eiA9lAG/KfxKgDbY5eiuK2sxGt6tswL5FuFTpB
 hLTq4cCYbjZatn4FFMxJRY+arXR3P4ZrTDe8PApLRio/yRw5reGDR1fMhTkZPax91ep3FfJG
 dschfM=
IronPort-HdrOrdr: A9a23:Qr39da/9jgfndjQAPltuk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re+sjztCWE8Ar5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtFD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58617700"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Doug Goldstein <cardoe@cardoe.com>
Subject: [XEN PATCH v8 36/47] RFC, no-VPATH: Kconfig: only ready auto.conf from objtree
Date: Thu, 25 Nov 2021 13:39:55 +0000
Message-ID: <20211125134006.1076646-37-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

zconf_fopen() will open file in $srctree if the file isn't in
$objtree. This is an issue for "auto.conf" as it could be in the
source tree if it is dirty. With "auto.conf" read from the source
tree, kconfig will not properly set the file associated with a
CONFIG_* properly in "include/config/" and instead only touch the
files that correspond to new CONFIG_* option that were not set in the
"auto.conf" found in the source tree.

That might not be an issue, but it is probably better to have a
populated "include/config/" directory in sync with
"include/config/auto.conf".

The second that read from conf_get_configname() would read ".config"
from the source directory which is also not wanted in Xen.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/tools/kconfig/confdata.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/xen/tools/kconfig/confdata.c b/xen/tools/kconfig/confdata.c
index 4f9139d055be..805d4c3e5636 100644
--- a/xen/tools/kconfig/confdata.c
+++ b/xen/tools/kconfig/confdata.c
@@ -357,12 +357,17 @@ int conf_read_simple(const char *name, int def)
 	int i, def_flags;
 
 	if (name) {
-		in = zconf_fopen(name);
+		if (def == S_DEF_AUTO) {
+			/* only open include/config/auto.conf in objtree */
+			in = fopen(name, "r");
+		} else {
+			in = zconf_fopen(name);
+		}
 	} else {
 		struct property *prop;
 
 		name = conf_get_configname();
-		in = zconf_fopen(name);
+		in = fopen(name, "r");
 		if (in)
 			goto load;
 		sym_add_change_count(1);
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231262.400150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5q-0000xQ-7u; Thu, 25 Nov 2021 13:47:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231262.400150; Thu, 25 Nov 2021 13:47:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5p-0000wx-T7; Thu, 25 Nov 2021 13:47:17 +0000
Received: by outflank-mailman (input) for mailman id 231262;
 Thu, 25 Nov 2021 13:47:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0d-0007NX-UB
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:56 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 72fe5a02-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:54 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 72fe5a02-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847714;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=7q2b6ioZxw6miBARrIxzLFbv4WP2dzhNSHzrlYKQwac=;
  b=bG8QDzpd4HwPDCkJbFiGlif7FgjQUAJD8a7CQ9L6PK8UrUm0ezcMpbhf
   lZb0HJus1Fp4OKKRvhGKLw7po8oQ2UpOGoVsA1cXOGbiUnE+K2+Wyw862
   jUUejYejMLzVXku0pEYaKZCy8V9IHVJBEp6ygakyYKqSmxOh6eP2tg39H
   A=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: NAgK5Mclx2aJ6A4HFAKnMSqzl1JB86WHq5Wx/QDwFu7MJso88dYoOlV1VxrcHwzMUQdBMyAeRz
 MJyKhgUdkoTC/CHb7tueIhpvW+42Yy7mVRYWWiNxeh8u95TMqt6ak4EhVer4ZSZSnJSQkhkGv8
 83sxOAdV/tucq5HdIkKmZ2hK02TLP4MD4Z/jPYic1b/Swe1RF0Ow21xkooThL8kTNIMK2aKlS4
 pz+idZe/jbIR5mkiFBJZNR/pMiz2Pn7pfkRsHfWsDtA9C4lJMwChQWkZJ7TnX4mO7hTRVbc/XU
 x3EHKgvMCLDhxWgaHgnQ8D5o
X-SBRS: 5.1
X-MesageID: 60634177
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:8b61f605Knk94uHHNvbD5UR2kn2cJEfYwER7XKvMYLTBsI5bp2EFx
 2tJX2qHOP+DMDDzL9l2b4jioBkP7JLRnIJqTVM+pC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbNh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhvO8u8
 N9LrKyJEl0JMIDFhNQGTkVVDHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Ej8I/LM7tLcUHt2tp1z3xBvc6W5HTBa7N4Le02R9u3p4VQa+BO
 KL1bxJEKz3vTA9fGW42GZNmmbmn12P/WS9X/Qf9Sa0fvDGIkV0ZPKLWGNjIft2HQ+1Fk0Deo
 XjJl0ziGQ0TPtGbzTuD81qvi/XJkCe9X5gdfJWn8tZ6jVvVwXYcYDUUX1ampfiyimalRslSb
 UcT/0IGvaU0sUCmUNT5dxm5u2Kf+A4RXcJKFO834x3LzbDbiy6QAHQESThQLsQrrsYsSRQl0
 1aIm5XiAjkHmLyKS1qN+7GMtzSwNCMJa2gYakc5oRAtuoe55ttp11SWE4glQPXdYsDJ9S/Y4
 A/VlCI4noUq1pQr2Yiy4WDcnm6huc2cJuIq3Tn/UmWg5wJ/QYeqYY209FTWhcp9wJalokqp5
 yZdxZXHhAwaJdTUzXHWHr1RdF28z6/daGW0vLJ5I3U2G91BEVaHdJsY3jxxLVwB3i0sKW6wO
 x+7Ve+8CfZu0JqWgU1fP93Z5ycCl/GI+THZuhf8NIcmX3SJXFXblByCnGbJt4wXrGAikLskJ
 bCQetu2AHARBMxPlWTtGLhCgO97l3pglAs/oKwXKDz9j9KjiIO9E+9ZYDNikMhlhE97nOkl2
 4kGbJbbo/mueOb/fjPW4eYuwaMidhAG6WTNg5UPLIare1M+cEl4UqO56e5xKuRNwvUO/s+Vr
 y7VZ6Ot4Aem7ZExAV7RMS4LhXKGdcsXkE/XygRwZwv1gCZ6Pt70hErdHrNuFYQaGCVY5aYcZ
 5E4lw+oW5yjkxzLpGYQa4fTtotneEj5jA6CJXP9MjM+Y4RhV0rC/dq9Jlnj8ywHDyyWs8oio
 uL/ilOHEMRbHwkyXtzLbP+Pzk+quSRPkuxFQEaVcMJYf1/h8dY2JnWp3OM3OcwFNT7K2iCei
 1SNGR4dqOSU+901/dDFiLqqtYCsF+ciTENWE3OCteS9NDXA/3rlyohFCb7acTfYXWLy2aOje
 eQKkK2sbKxZxA5H6tMuHaxqwKQy48rUi4Vblgk0Tm/Wa1mLC697JiXU18d4qaAQlKRSvhG7W
 xzT94ACa6mJIs7sDHUYOBEhMraYzfgRlzTfsaY1LUH96HMl9baLSxwPbRyFiSgbJ7ppKoI1h
 +wmvZdOuQC4jxMrNPeAjzxVqDvQfiBRDf1/u8FIGpLvhyoq1kpGMM7VBSLB6Z2Sb8lBbxsxK
 TiOiaue37lRyyIuqZbo+aQhCQaFuakzhQ==
IronPort-HdrOrdr: A9a23:aRF+L6rgNwlk7kZj8a/dtgoaV5oteYIsimQD101hICG8cqSj+P
 xG+85rsiMc6QxhIU3I9urgBEDtex7hHNtOkOss1NSZLW3bUQmTTL2KhLGKq1aLJ8S9zJ856U
 4JSdkZNDSaNzZHZKjBjDVQa+xQo+W6zA==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634177"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"George Dunlap" <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: [XEN PATCH v8 37/47] RFC, no-VPATH: build: remove --include-dir option from MAKEFLAGS
Date: Thu, 25 Nov 2021 13:39:56 +0000
Message-ID: <20211125134006.1076646-38-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

File "include/config/auto.conf" and "include/config/auto.conf.cmd"
should be included from the build tree even if they are present in the
source tree. Avoiding to use make's command line option --include-dir
will have make include the right "auto.conf" file. But that mean we
now need to specify $(srctree) for all other Makefile we include.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/Makefile               | 11 +----------
 xen/Rules.mk               |  2 +-
 xen/common/libfdt/Makefile |  2 +-
 xen/scripts/Makefile.clean |  2 +-
 4 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index e39a6f82859a..fbce0f6771fb 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -153,15 +153,6 @@ ifneq ($(words $(subst :, ,$(abs_srctree))), 1)
 $(error source directory cannot contain spaces or colons)
 endif
 
-ifneq ($(abs_srctree),$(abs_objtree))
-# Look for make include files relative to root of kernel src
-#
-# This does not become effective immediately because MAKEFLAGS is re-parsed
-# once after the Makefile is read. We need to invoke sub-make.
-MAKEFLAGS += --include-dir=$(abs_srctree)
-need-sub-make := 1
-endif
-
 export abs_srctree abs_objtree
 export root-make-done := y
 
@@ -225,7 +216,7 @@ ifneq ($(filter %config,$(MAKECMDGOALS)),)
     config-build := y
 endif
 
-include scripts/Kbuild.include
+include $(srctree)/scripts/Kbuild.include
 
 ARCH=$(XEN_TARGET_ARCH)
 SRCARCH=$(shell echo $(ARCH) | \
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 745d892d0707..45d2b72158b8 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -104,7 +104,7 @@ noubsan-y       := $(addprefix $(obj)/,$(noubsan-y))
 # $(sort ...) is used here to remove duplicated words and excessive spaces.
 hostprogs-y := $(sort $(hostprogs-y))
 ifneq ($(hostprogs-y),)
-include scripts/Makefile.host
+include $(srctree)/scripts/Makefile.host
 endif
 
 # subdir-builtin may contain duplications. Use $(sort ...)
diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
index 75aaefa2e37f..8d484063753b 100644
--- a/xen/common/libfdt/Makefile
+++ b/xen/common/libfdt/Makefile
@@ -1,4 +1,4 @@
-include $(src)/Makefile.libfdt
+include $(srcdir)/Makefile.libfdt
 
 SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
 OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
diff --git a/xen/scripts/Makefile.clean b/xen/scripts/Makefile.clean
index 53f7a76b3075..fa5f332e49a0 100644
--- a/xen/scripts/Makefile.clean
+++ b/xen/scripts/Makefile.clean
@@ -12,7 +12,7 @@ clean::
 
 include $(srctree)/scripts/Kbuild.include
 
-include $(src)/Makefile
+include $(srcdir)/Makefile
 
 # Figure out what we need to clean from the various variables
 # ==========================================================================
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231263.400155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5q-00010R-NA; Thu, 25 Nov 2021 13:47:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231263.400155; Thu, 25 Nov 2021 13:47:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5q-0000zR-AY; Thu, 25 Nov 2021 13:47:18 +0000
Received: by outflank-mailman (input) for mailman id 231263;
 Thu, 25 Nov 2021 13:47:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0C-0007NX-8R
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:28 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61f79501-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:27 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61f79501-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847687;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=bOo1Z/T3w/mQYlFp7E4qcB5DbSAxG5uo05MNRdVl4wM=;
  b=WmeMt6eol6eXiJiDQHaBeQt+BeUhVjf6XdQmY1J5eqAzvPsjDKl2RmW9
   fBfF96meiQC2+YtJH3JgiU8LOK6SugiFBBxSaDaQhi77B/lYOpVJISLjt
   +s5pmt3qAl9SosUcebiIBx5cJjErwRXCCE0trLZBiiPz2KetVd5saVsOY
   k=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: +AdAtrej9VQcLCNpbiZ2x08WtITeZXq32uP157ac+kl7ZTVAVH2dOY2W1eXGn48ZGsqdipKmEE
 g7jzeit6lnDIjV8o7ZQyrd7+W3sccuQy65coc+yXa/y0XtLgLB3XThh6jirkmAhbMXo6ZE4yRM
 2G5lFJNbpycYnGhftFNwl1cjiQxxahMVOzqR5o/hjGoyLgrCE4RCOH3gRGGPFaiwKIji8G9cFA
 3odwANGryscHjCRKm2/0QqB97rlFUCkU2ZLj/nNGndWbMst4sNJFkfXamG7APEKCGu86N/tPOM
 bnUU+YAQ3K24FPP8rX0UvgWR
X-SBRS: 5.1
X-MesageID: 58135478
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Gydnl65YohovGKVaAfNshwxRtMXAchMFZxGqfqrLsTDasY5as4F+v
 mcXXWiCbKrcazD8eN1yYdzk9kwGusSEyIdqTAo+r31hHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NMw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zk
 NZPl5GpFgMSBe7TheoHcClnNHxPBPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALJc/3PIQZqzd4wCvQF/oOSpHfWaTao9Rf2V/cg+gTTa+FO
 pZGOVKDajzNZRZmJnMeUa5lhbm6olfaWBtDqGy88P9fD2/7k1UqjemF3MDuUt6XQcRYmG6Iq
 2SA+H72ajkBL8CWwzeB9nOqh8fMkDn9VYZUE6e3ntZ1hHWDy2pVDwcZPXOrrP/8hkOgVtZ3L
 00P5jFovaU07FasTNT2Q1u/unHslhwWVsdUEuY6wBqQ0aeS6AGcbkAFUTxpeNEgrNUxRzEhy
 hmOhdyBONB0mOTLEzTHrO7S9G7sf3hORYMfWcMaZVMG4fvuud43tSmMUcttCo2FsfqoKAill
 lhmsxMCr7kUiMcK0YCy8lbGny+gq/D1c+Il2unEdjn7t10kPeZJc6TtsAGGtqgYcO51W3HY5
 CBc8/Vy+tziGn1keMalZOwWVI+k6P+eWNE3qQ4+RsJxn9hBFpPKQGyx3N2cDBs2WirnUWWwC
 KM2he+2zMUOVEZGlYctP+qM5z0ClMAM7+jNWPHOdcZpaZNsbgKB9ywGTRfOhD+yzxl8wfBlZ
 8bznSOQ4ZEyU/oP8dZLb71Fje9DKt4WmQs/uqwXPzz4iOHDNRZ5uJ8OMUeUb/BR0U93iF69z
 jqrDOPTk083eLSnOkH/qNdPRXhXfSlTLc2n8KR/K7/cSjeK7Ul8Upc9N5t6INc790mU/8+Vl
 kyAtrhwlACi2CaZcFrSMRiOqtrHBP5CkJ7yBgR0VX7A5pTpSd/HAH43e8RlcL852vZkyPIoH
 fAJd9/ZWqZESyjd+iRbZp749dQweBOujAOIHiykfDlgIMIwG12XoofpLln16S0DLiurrs9i8
 beu4RzWHMgYTAN4AceINP/2lwGtvWIQkf5ZVlfTJoUBY13l9YVncnSjjvI+L8wWBw/Ewz+Wi
 1SfDRsC/LGfqI4p6tjZw6uDqt7xQed5G0NbGUjd7Kq3anaGrjbyn9cYXb/RLz7HVW7y9KGzX
 slvzqnxYK8dgVJHk4tgCLI3n6gw0MTi+u1BxQN+EXSVM1nyUuF8ImOL1NVkv7FWwuMLohO/X
 0+C94UIObiNP8+5QlcdKBB8M7aG3PAQ3DLT8e40MAPx4youpOiLVkBbPh+tji1BLeQqbNN5k
 Ll54MNGuRaijhcKM8qdinEG/muBGXUMTqE7u8xIG4TskAcqlglPbJG05vUaO31ThwGg6nUXH
 wI=
IronPort-HdrOrdr: A9a23:i+1JrK7viDgtcXJUdQPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HJoB17726NtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QCpSWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58135478"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 25/47] build: rework coverage and ubsan CFLAGS handling
Date: Thu, 25 Nov 2021 13:39:44 +0000
Message-ID: <20211125134006.1076646-26-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

When assigning a value a target-specific variable, that also affect
prerequisite of the target. This is mostly fine, but there is one case
where we will not want the COV_FLAGS added to the CFLAGS.

In arch/x86/boot, we have "head.o" with "cmdline.S" as prerequisite
and ultimately "cmdline.o", we don't want COV_FLAGS to that last one.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---

Notes:
    v8:
    - reorder target-specific assignments
    - fix typo in comment
    - reviewed

 xen/Rules.mk | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index 9eb3093f43fb..d6eabd3415b5 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -126,19 +126,31 @@ targets += $(targets-for-builtin)
 
 $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS_ONLY
 
+non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
+
 ifeq ($(CONFIG_COVERAGE),y)
 ifeq ($(CONFIG_CC_IS_CLANG),y)
     COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
 else
     COV_FLAGS := -fprofile-arcs -ftest-coverage
 endif
-$(filter-out %.init.o $(nocov-y),$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += $(COV_FLAGS)
+
+# Reset COV_FLAGS in cases where an objects has another one as prerequisite
+$(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
+    COV_FLAGS :=
+
+$(non-init-objects): _c_flags += $(COV_FLAGS)
 endif
 
 ifeq ($(CONFIG_UBSAN),y)
 # Any -fno-sanitize= options need to come after any -fsanitize= options
-$(filter-out %.init.o $(noubsan-y),$(obj-y) $(obj-bin-y) $(extra-y)): \
-CFLAGS-y += $(filter-out -fno-%,$(CFLAGS_UBSAN)) $(filter -fno-%,$(CFLAGS_UBSAN))
+UBSAN_FLAGS := $(filter-out -fno-%,$(CFLAGS_UBSAN)) $(filter -fno-%,$(CFLAGS_UBSAN))
+
+# Reset UBSAN_FLAGS in cases where an objects has another one as prerequisite
+$(noubsan-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
+    UBSAN_FLAGS :=
+
+$(non-init-objects): _c_flags += $(UBSAN_FLAGS)
 endif
 
 ifeq ($(CONFIG_LTO),y)
@@ -167,6 +179,9 @@ a_flags = -MMD -MP -MF $(depfile) $(XEN_AFLAGS)
 
 include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
 
+c_flags += $(_c_flags)
+a_flags += $(_c_flags)
+
 c_flags += $(CFLAGS-y)
 a_flags += $(CFLAGS-y) $(AFLAGS-y)
 
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231270.400158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5r-0001BP-6j; Thu, 25 Nov 2021 13:47:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231270.400158; Thu, 25 Nov 2021 13:47:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5q-000194-Tk; Thu, 25 Nov 2021 13:47:18 +0000
Received: by outflank-mailman (input) for mailman id 231270;
 Thu, 25 Nov 2021 13:47:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzy-00076i-P9
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:14 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a7a50e9-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:13 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a7a50e9-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847673;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=O5L3e+/QWAIYcXnmaAXON9qB0LMfM8CPOGv64fGj7qI=;
  b=eGyctOjtnmeZ2i899/lqpzSqn3sXfGV1YeODwWDGEpZ1NGZ+75RxHOlg
   JLz7LGh3fH5DG6l9C06Swh51iTBrnIL1cFbrHsJD7mgjL0EoCkFRVc+NR
   TpiP6y9bavEFreOEKuDwsa7CjI4B8Sdp4e1Vgu2GJ9qBzgXB4Kj9k7J95
   8=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: OgJ3nwaUpoZTKcCPv1tZzCxhmQR4WBJmtd80mDJgs5ZnQM8ptTpeJ2P8lKfIZSInQtxfh4aZY3
 jQa2YS+2Om044U+HrD5FQc6k1OK4ohL4pBDvYHmxTyOxFCuIn0w+ecRWs7iLbQp4mB32+R7UsO
 gZtPlKWUSX4dTktJyb3hj06paPmum/8ASjqLZGEIJsjpDDUtRVOU9WwiXTelD4ZmuTSuLUbX0U
 FL3aMXKcsnOrD3bLB61dft4xswjb2z5EX9j/uPNCfhxJYLzoL7ZOi7PE4T4OrAGx1yX5Gv6pec
 NOPsRZc1JcOLCv+QxMNkIpds
X-SBRS: 5.1
X-MesageID: 58576689
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:9XcTdqIHEX5AxomTFE+RLJIlxSXFcZb7ZxGr2PjKsXjdYENSgTQFy
 GJLUGyDa/eMZjHyKNh+PYW/8kIA7Z/Rn4dhGlRlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xrZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2jufRSy
 PdVs6WOajwXH4uSp7sQUD5HRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFlgNgjK8/6epsSoHh6wRnSDOo8QICFSKLPjTNd9Gpg258QQ6aPD
 yYfQR9PSjXGQxRLAF0WGbgXrcetiCn8XAQN/Tp5ooJoujOOnWSdyoPFMsfRe9GMbdVYmACfv
 G2u13/iHhgQOdibyDyE2nGhnOnCmWX8Qo16PKK83u5nhhuU3GN7IA0bUx63rOe0jma6WslDM
 AoE9yw2t68w+Ue3CN7nUHWQonSJoxodUNp4CPAh5UeGza+8yweGBEAUQzhZctskucQqAzsw2
 Te0c8jBXGI19ufPEDTEq+nS/Wja1TUpwXEqTwkgbgsn+9/anqIIsDPpEOk8Ha2SkYigcd3v+
 AyioC87jrQVqMcE0aSn4FzK6w6RSoj1oh0dvVuOAD/8hu9tTMv8PtHztwCHhRpVBN/BFgHpg
 ZQSpySJAAni57mpnTfFfugCFarBCx2tYGyF2g4H83XMGl2QF5+fkWJ4vG4WyKRBaJ9sldrVj
 Kj741452XOrFCH2BZKbmqroYyjQ8YDuFM7+StffZcdUb556eWevpX81OhHPjjC9wRJywMnT3
 Kt3lu72Ux4n5VlPlmLqF4/xL5d3rszB+Y8jbc+ilEn2uVZvTHWUVa0EIDOzghMRt8u5TPHu2
 48HbaOikkwHOMWnO3W/2dNDfDgicClgbbir+pM/SwJ2Clc/cI3XI6SKmu1Jlk0Mt/k9q9okC
 VnhABIFkwSm2iWcQehIA1g6AI7SsV9EhSpTFUQR0ZyAghDPuK6js/UScYUZZ74i+LAxxPJ4V
 aBdKc6BHu5OWnLM/DFENcvxq4lrdRKKgwOSPnX6PGhjLsA4HwGZqMX5egbP9TUVCnblv8UJv
 LD9hBjQRoAORlo+AZ+OOu6v1V64oVMUhPl2AxnTOtBWdUi1qNpqJiX9g+UZOcYJLRmflDKW2
 xzPWUUTpPXXop9z+97M3PjWo4CsGup4P0xbA2iEsurmaXiEpjKumNYSXvyJcDbRUHLP1J+jP
 egFnevhNPAnnUpRt9YuGbhc0q9jtcDkoKVXz1o4ESyTPUirEL5pPlKPwdJL6v9W3rZctAa7B
 hCP991dNenbMc/pCgdMdg8sb+DF3vAIgDjCq/8yJRyitiNw+bOGV2RUPgWN13MBfOckbtt9z
 LdzotMS5iy+lgEuY4SPgS1j/miRKmANDvc8vZYADY630gcmxzmuu3AH5vMaNH1XV+hxDw==
IronPort-HdrOrdr: A9a23:adKVb6tFOiidshepDXN0TTry7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpHnJYVcqKQkdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyIMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58576689"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 19/47] build: start building the tools with the main makefiles
Date: Thu, 25 Nov 2021 13:39:38 +0000
Message-ID: <20211125134006.1076646-20-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This will make out-of-tree build easier.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---

Notes:
    v8:
    - add some $(Q)

 xen/Makefile       |  8 ++++----
 xen/tools/Makefile | 17 ++---------------
 2 files changed, 6 insertions(+), 19 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index c26c44818916..06d5e4fd61c1 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -209,7 +209,7 @@ endif # root-make-done
 
 PHONY += tools_fixdep
 tools_fixdep:
-	$(MAKE) -C tools fixdep
+	$(Q)$(MAKE) $(build)=tools tools/fixdep
 
 ifeq ($(config-build),y)
 # ===========================================================================
@@ -247,7 +247,7 @@ ifeq ($(need-config),y)
 # "tools_fixdep" which is a .PHONY target and would force make to call
 # "defconfig" again to update $(KCONFIG_CONFIG).
 tools/fixdep:
-	$(MAKE) -C tools fixdep
+	$(Q)$(MAKE) $(build)=tools tools/fixdep
 
 # Allow people to just run `make` as before and not force them to configure
 $(KCONFIG_CONFIG): tools/fixdep
@@ -409,7 +409,7 @@ _debug:
 
 .PHONY: _clean
 _clean:
-	$(MAKE) -C tools clean
+	$(MAKE) $(clean) tools
 	$(MAKE) $(clean) include
 	$(MAKE) $(clean) common
 	$(MAKE) $(clean) drivers
@@ -438,7 +438,7 @@ $(TARGET).gz: $(TARGET)
 	mv $@.new $@
 
 $(TARGET): FORCE
-	$(MAKE) -C tools
+	$(Q)$(MAKE) $(build)=tools
 	$(Q)$(MAKE) $(build)=. include/xen/compile.h
 	[ -e arch/$(TARGET_ARCH)/efi ] && for f in $$(cd common/efi; echo *.[ch]); \
 		do test -r arch/$(TARGET_ARCH)/efi/$$f || \
diff --git a/xen/tools/Makefile b/xen/tools/Makefile
index 722f3664549d..a5078b7cb8de 100644
--- a/xen/tools/Makefile
+++ b/xen/tools/Makefile
@@ -1,15 +1,2 @@
-
-include $(XEN_ROOT)/Config.mk
-
-.PHONY: default
-default: symbols fixdep
-
-.PHONY: clean
-clean:
-	rm -f *.o symbols fixdep
-
-symbols: symbols.c
-	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
-
-fixdep: fixdep.c
-	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
+hostprogs-always-y += symbols
+hostprogs-always-y += fixdep
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231272.400170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5s-0001NH-7U; Thu, 25 Nov 2021 13:47:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231272.400170; Thu, 25 Nov 2021 13:47:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5r-0001Ju-IS; Thu, 25 Nov 2021 13:47:19 +0000
Received: by outflank-mailman (input) for mailman id 231272;
 Thu, 25 Nov 2021 13:47:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0b-00076i-Vu
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:54 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71e503af-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:53 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71e503af-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847712;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=8lx/+jmrSiPW0TNI8HSQ6GVzRfM87w+Yl5TJDEX54CU=;
  b=ChiTAraC+gHUTVdnejHn5Q/4+0WZ9dUJ++QIauSyNUZQklOUmDtfRg1J
   ez+vGXTlwmQf3iPZjPK7U79HYR7ryEQjQbMvoxe6aiMHB0YS/jGmPizoH
   L2/rvu+KF1YVRb3mxuj5do+fYUkV6NuPYdIZg2+wkmCYASQ3600JFkh8f
   o=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: QCGyXCny18waiPeNFNdUK2P7IBiw+R9MtneBAJBU/vvid/7vySpZkENhfvopyfDJurMhWxGQLp
 IiwXw8RgdvAP2cRHu7uBnkOFR8L9OFT8yB4+jtbvuC3X+TcRjZF9vKxig9xn+BB2BAmOkOK+YX
 v2maK15/WY/GZtFEHToXkF1UVyt40dhhyF1C5cfIwmjdxQMZnaR3TD/gT3YL2EMjNTP4kLwhKs
 Cz3CDajNBz6qCSOnaX6yeZ+mzK73Oh+69H7SBCFk7ILhdHwab9kdhzMu3TFGZ/OdqeeQzRvsX9
 eA07HWnmqI9L+GKk7o7aoMMD
X-SBRS: 5.1
X-MesageID: 58637880
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:zScv/qI+g/1ul3pcFE+RHpIlxSXFcZb7ZxGr2PjKsXjdYENSg2ZTm
 GVNDDuAMq7cYmP0ct1yOtjk8kMPuZDRx4dqHgplqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xrZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2noP58w
 Y1opaaMZiA0GZTInb4kY0NhRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFlgNgjK8/6epsSoHh6wRnSDOo8QICFSKLPjTNd9Gpg2JsRTaaGD
 yYfQWAoZwSZOSUeBm4KDp8TzKSIo33xNBQN/Tp5ooJoujOOnWSdyoPFO9PPdtuHbc5chEqfq
 yTN+GGRKhgcKNyYzyvD6n+2j/XDtSz+UYMWUra/85ZCkFCVg2AeFhASfV+6uuWizF6zXcpFL
 E4Z8TZoqrI9nHFHVfGkAUf++iTd+EdBBZwASIXW9T1h1IL63CiUDzAhXgR9R/s7k/YyQGYT5
 gWwyoaB6SNUjJWZTneU97GxpDy0ODQIIWJqWRLoXTfp8PG4/tht00unosJLVffs04arQW2YL
 yWi9XBm390uYdg3O7JXFLwtqxalvdD3QwE8/W07tUr1v1oiNOZJi2FFgGU3DMqszq7FETFtX
 1BewqByCdzi6rnXyUSwrB0lRu3B2hp8GGS0baRTN5cg7S+x3HWoYJpd5jpzTG8wbJ1bJmC4M
 B+C410AjHO2AJdNRfUpC79d9uxwlfSwfTgbfqy8giVyjmhZK1bcoXAGib+41GHxikk8+ZzTy
 r/AGftA+U0yUPw9pBLvHr91+eZymkgWmDOCLbimnk/P+efPOxaopUItbQLmghYRt/jf/m04M
 r93aqO39vmoeLGkP3SMr9dMdQtiwLpSLcmelvG7v9WremJOcFzNwdeKqV/4U4A6zalTiMnS+
 XSxBh1RxFbl3CWVIgSWcHFzLrjoWM8n/348OCUtO3eu2mQiPtnzvPtOKcNvcOl17vFnwN51U
 +IBJ5eKDMNQR2mV4D8ad5T88tBvLUz5mQKUMiO5SzEjZJo8FRfR89rpc1K3pikDBya6r+Ukp
 Lik2l+JSJYPXV06Xs3XdOiu3xW6un1EwLB+WE7BI99yfkTw8dc1d3yt36Fve8xVcEfN3DqX0
 QqSECw0n+iVrt9n6sTNiICFs5ytT7l0EH1FEjSJ9r2xLyTboDaumNcSTOaScDnBf2ro46H+N
 /5NxvTxPfBbzlZHt41wT+Riwa4kvoa9orZbykJvHWnRbkTtAbRleyHU0c5Kv6xL57lYpQrpB
 R7fpogEYe2EaJH/DVocBAs5deDSh/gblw7b4ekxPEintjR8+6CKUBkKMhSB4MCHwGCZ7G/xL
 T8dhfMr
IronPort-HdrOrdr: A9a23:3x3n2q4SBz0OXktGywPXwU2BI+orL9Y04lQ7vn2ZFiYlEPBwxv
 re/8jziyWVtN9IYgBfpTlEAtjzfZquz+8F3WBxB9mftWbdyRGVxe1ZnOzfKnjbalLDH41mpO
 hdmspFeaDN5DFB5K6QimbYYrNQpOVr6JrFuQ6d9QYQcegDUdAi0+4TMHfjLqQCfng8OXNPLu
 vl2iMonUvHRV0nKu68C3U5Qe6Gg9HQjprpbT4qbiRXqTWmvHeD7rP3Lgaf5wwZWT9U27sumF
 K10zAR0p/T8c1ThyWsj1M6IPxt6Zfc4+oGIPbJptkeKz3qhArtTIN9W4eatDRwm+2r4EZCqq
 iGn/91Vf4f11rhOkWO5Tf90Qjp1zgjr1X4z0WDvHflqcvlABonFston+tiA0rkwntlmOs5/L
 NA3mqfuZYSJwjHhj7B69/BUAwvvlaooEAljfUYgxVkINUjgYdq3NwiFX5uYcs99WPBmd0a+d
 BVfZvhDSNtAAynh3OwhBgm/DXjZAV8b0S7qo5rgL3R79EcpgEI86Ii/r1qop/bnKhND6Wsr9
 60QZiAtIs+CPP+PpgNXdvot6OMeyHwqSylChPlHbwRfJt3cU4l7aSHu4kd5OakfoEFxpp3mJ
 mpaiIeiYcCQTOmNSTV5uw/zvnkehTLYQjQ
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58637880"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Doug Goldstein <cardoe@cardoe.com>
Subject: [XEN PATCH v8 35/47] RFC, no-VPATH: Kconfig: tell where Kconfig files are
Date: Thu, 25 Nov 2021 13:39:54 +0000
Message-ID: <20211125134006.1076646-36-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

deps_config is the list of all Kconfig files, we need to say that they
are in the source tree, or make isn't going to find them without
VPATH and will try to rebuild 'syncconfig' over and over again.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/tools/kconfig/confdata.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/tools/kconfig/confdata.c b/xen/tools/kconfig/confdata.c
index a69250c91355..4f9139d055be 100644
--- a/xen/tools/kconfig/confdata.c
+++ b/xen/tools/kconfig/confdata.c
@@ -971,6 +971,7 @@ static int conf_write_dep(const char *name)
 		else
 			fprintf(out, "\t%s\n", file->name);
 	}
+	fprintf(out, "deps_config := $(addprefix $(srctree)/, $(deps_config))\n");
 	fprintf(out, "\n%s: \\\n"
 		     "\t$(deps_config)\n\n", conf_get_autoconfig_name());
 
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231274.400174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5s-0001by-PB; Thu, 25 Nov 2021 13:47:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231274.400174; Thu, 25 Nov 2021 13:47:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5s-0001Xl-B0; Thu, 25 Nov 2021 13:47:20 +0000
Received: by outflank-mailman (input) for mailman id 231274;
 Thu, 25 Nov 2021 13:47:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0Y-00076i-8S
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:50 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f2dd764-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f2dd764-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847708;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=frTC8Szw376OF5knYFRkaCp25Mwwo7Caw1me74SfbyE=;
  b=eHW/BhNWxml/jt6RH5m3k+U53+zYHkdiGd3UqAqgXdm5OnPK0U6rjl1l
   yU5kLaxy3GxKAcIET3b1G4NGl7H1IzQ8iuZ9dXUU2sm1sdThtS+M0qMe3
   NXtZG6QKOmovr3kJVtMg/Pplat9AzjYusOj/XmwjEutLDMLfdBnC4JqD4
   k=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 7JGEMlDVKRltdF826oRn/bEmA1kH05M5fUsF7xWh8HSmpatzjlLQ+HqjOn77cfawjp98eyRxY5
 MwhlcQRPxLbsdJ39tCLaIaevGoRPK4Vw+sYWlj7Ofkwz2QIDiSXaBSGWZjmzeriwCrsNAeTQhy
 KM+RMtxUWg9x08ag6qw73puIviwYRPaSHd63pFVwKxBQ3bI5GbiU6x6NMXVSa8cQdN/bfh40rg
 4D3h1/kDcpLJw2R2XMT0iGVyrnYh2rJvEb5UJhZCMu6yK/62aF0LPemFb7jMno8J7p6u9fl/Oc
 o/oTC1iOmB5SiaG1kDO/+Q0v
X-SBRS: 5.1
X-MesageID: 58617694
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:f+i1xqOA5aVzdffvrR3lkcFynXyQoLVcMsEvi/4bfWQNrUp01DYCy
 GVOXzzXaP3bajf0Ko0na4rj8hkFuMeDydQ2HQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg+w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoy6EmPdsy
 s5wjqK5ZwAAF671suIWdBYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YuBqmsQkKtitJI4Fs2ts5TrYEewnUdbIRKCiCdpwgWdu358QTKq2i
 8wxZB1rfTqdMxdza2xMKJ8jmsb51jrVWmgNwL6SjfVuuDWCpOBr65DuN9zPc9DMWsRRnW6fv
 GvN+2m/CRYfXPSAzRKV/3TqgfXA9Qv3QJkXFaG43vdyjUeP23cIDxkLSVq8p+L/gUm7M/pTJ
 EAZ9TAnhbQj/0ysCN/mVlu3p2DslgUHR9NaHuk+6QeM4qnZ+QCUAi4DVDEpQN05tucmSDoyz
 FiLktj1Qzt1v9W9WX+bs7uZsz62ESwUNnMZIz8JSxMf5Nvuq511iQjAJv5hDaq0g9vdCTz2h
 TeQo0AWhb8ekMoK3KWT5k3cjnSnoZ2hc+IuzlyJBCT/tFo/PdP7IdzzgbTG0RpeBJ2USX6cv
 mM5oPaXwucnJJK0viqGZ+pYSdlF+M25GDHbhFduGbwo+DKs52OvcOhs3d1uGKt6Gp1aIGG0O
 Sc/rSsUvcYOZyXyMcebdqroU5xypZUMA+gJQRw9gjBmRpFqPDGK8yh1DaJ79zC8yRN8+U3T1
 HryTCpNMZr4Ifg4pNZVb71EuVPO+szZ7TmOLa0XNzz9jdKjiIe9EN/pymemYOEj97+jqw7I6
 dtZPMbi40wBC7KhPXiHod9JcwFiwZ0H6Xfe8ZI/SwJ+ClA+RDFJ5wH5ndvNhLCJb4wKz7yVr
 xlRq2dTyUblhG2vFOl5QisLVV8bZr4m9ShTFXV1ZT6AgiF/Ca7yvPZ3X8ZmJtEPqb08pcOYu
 tFYIq1s9NwUEW+Zk9ncBLGgxLFfmOOD2VjTYnH7OWdnJPaNhWXho7fZQ+cmzwFWZgLfiCf0i
 +TIOtrzTcVRSgJ8ItzRbf7znVq9sWJEwLB5XlfSI8kVc0LpqdA4Jyv0h/4xAscNNRScmWfKi
 1fIWU8V9bvXvos40NjVnqTY/Y2nJPRzQxhBFG7B4LfoaSSDpji/wZVNWfqjdCzGUD+m472rY
 OhYlqmuMPAOkFtQnZB7FrJnkfA369f1/ucIxQV4BnTbKV+sD+o4cHWB2MBOsIxLx6NY5lTqC
 h7epIECNOzQas3/EVMXKA40Vci51KkZymvI8PA4AETm/ysrrrCJZlpfYkuXgytHIborbI58m
 bU9uNQb4hCUgwYxNorUlThd8mmBIyBSU6gjsZ1GUobnhhBylwNHaJ3YTCT3/IuOe5NHNUxze
 m2Yg6/LhrJ9wEveciVsSSiRjLQF3Zle6gpXyFIiJkiSnouXj/A66xRd7DArQ1kH1R5Aye9yZ
 jBmOkAdyX9iJNu0aByvh1yRJjw=
IronPort-HdrOrdr: A9a23:BgWvhK1sPetrtXEzdz0fKAqjBIokLtp133Aq2lEZdPRUGvb3qy
 nIpoVj6faUskd2ZJhOo7C90cW7LU80sKQFhLX5Xo3SOzUO2lHYT72KhLGKq1aLdhEWtNQtsZ
 uIG5IOcOEYZmIasS+V2maF+q4bsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58617694"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: [XEN PATCH v8 33/47] build: adding out-of-tree support to the xen build
Date: Thu, 25 Nov 2021 13:39:52 +0000
Message-ID: <20211125134006.1076646-34-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This implement out-of-tree support, there's two ways to create an
out-of-tree build tree (after that, `make` in that new directory
works):
    make O=build
    mkdir build; cd build; make -f ../Makefile
also works with an absolute path for both.

This implementation only works if the source tree is clean, as we use
VPATH.

This patch copies most new code with handling out-of-tree build from
Linux v5.12.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - replace script/mkmakefile by cmd_makefile like it's been done in Linux
      5.13.
    - fix GNU Make version, replace few 0.81 by 3.81.
    - reorder include header path in CFLAGS ( -I ), to have the $(objtree)
      paths listed before the $(srctree) paths. This will be usefull later
      if we allow to build out-of-tree from a dirty source tree.
    - make use of -iquote
    - sometime, add -iquote path even when not necessary when building in-tree.
    - extract code movement into a separate patch
    - make use of the new "$(srcdir)" shortcut
    - split command line in headers*.chk target into more lines

 xen/Makefile                 | 141 +++++++++++++++++++++++++++++++----
 xen/Rules.mk                 |  11 ++-
 xen/arch/x86/arch.mk         |   5 +-
 xen/arch/x86/boot/Makefile   |   6 ++
 xen/common/efi/efi_common.mk |   1 +
 xen/include/Makefile         |  11 ++-
 xen/test/livepatch/Makefile  |   2 +
 xen/xsm/flask/Makefile       |   3 +-
 xen/xsm/flask/ss/Makefile    |   1 +
 9 files changed, 161 insertions(+), 20 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index bfc96562c5ec..995815e82235 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -1,3 +1,7 @@
+# $(lastword,) for GNU Make older than 3.81
+lastword = $(word $(words $(1)),$(1))
+this-makefile := $(call lastword,$(MAKEFILE_LIST))
+
 # This is the correct place to edit the build version.
 # All other places this is stored (eg. compile.h) should be autogenerated.
 export XEN_VERSION       = 4
@@ -19,6 +23,13 @@ export PYTHON		?= $(PYTHON_INTERPRETER)
 
 export CHECKPOLICY	?= checkpolicy
 
+$(if $(filter __%, $(MAKECMDGOALS)), \
+    $(error targets prefixed with '__' are only for internal use))
+
+# That's our default target when none is given on the command line
+PHONY := __all
+__all:
+
 # Do not use make's built-in rules and variables
 MAKEFLAGS += -rR
 
@@ -31,9 +42,6 @@ export CC CXX LD
 
 export TARGET := xen
 
-.PHONY: default
-default: build
-
 .PHONY: dist
 dist: install
 
@@ -112,16 +120,88 @@ endif
 
 export quiet Q KBUILD_VERBOSE
 
+# $(realpath,) for GNU Make older than 3.81
+realpath = $(wildcard $(foreach file,$(1),$(shell cd -P $(dir $(file)) && echo "$$PWD/$(notdir $(file))")))
+
+ifeq ("$(origin O)", "command line")
+    KBUILD_OUTPUT := $(O)
+endif
+
+ifneq ($(KBUILD_OUTPUT),)
+# Make's built-in functions such as $(abspath ...), $(realpath ...) cannot
+# expand a shell special character '~'. We use a somewhat tedious way here.
+abs_objtree := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) && pwd)
+$(if $(abs_objtree),, \
+     $(error failed to create output directory "$(KBUILD_OUTPUT)"))
+
+# $(realpath ...) resolves symlinks
+abs_objtree := $(call realpath,$(abs_objtree))
+else
 abs_objtree := $(CURDIR)
-abs_srctree := $(CURDIR)
+endif
+
+ifeq ($(abs_objtree),$(CURDIR))
+# Suppress "Entering directory ..." unless we are changing the work directory.
+MAKEFLAGS += --no-print-directory
+else
+need-sub-make := 1
+endif
+
+abs_srctree := $(call realpath,$(dir $(this-makefile)))
+
+ifneq ($(words $(subst :, ,$(abs_srctree))), 1)
+$(error source directory cannot contain spaces or colons)
+endif
+
+ifneq ($(abs_srctree),$(abs_objtree))
+# Look for make include files relative to root of kernel src
+#
+# This does not become effective immediately because MAKEFLAGS is re-parsed
+# once after the Makefile is read. We need to invoke sub-make.
+MAKEFLAGS += --include-dir=$(abs_srctree)
+need-sub-make := 1
+endif
 
 export abs_srctree abs_objtree
+export root-make-done := y
+
+ifeq ($(need-sub-make),1)
+
+PHONY += $(MAKECMDGOALS) __sub-make
+
+$(filter-out $(this-makefile), $(MAKECMDGOALS)) __all: __sub-make
+	@:
+
+# Invoke a second make in the output directory, passing relevant variables
+__sub-make:
+	$(Q)$(MAKE) -C $(abs_objtree) -f $(abs_srctree)/Makefile $(MAKECMDGOALS)
+
+endif # need-sub-make
+endif # root-make-done
+
+# We process the rest of the Makefile if this is the final invocation of make
+ifeq ($(need-sub-make),)
+
+ifeq ($(abs_srctree),$(abs_objtree))
+    # building in the source tree
+    srctree := .
+    building_out_of_srctree :=
+else
+    ifeq ($(abs_srctree)/,$(dir $(abs_objtree)))
+        # building in a subdirectory of the source tree
+        srctree := ..
+    else
+        srctree := $(abs_srctree)
+    endif
+    building_out_of_srctree := 1
+endif
 
-srctree := .
 objtree := .
-export srctree objtree
+VPATH := $(srctree)
+
+export building_out_of_srctree srctree objtree VPATH
 
-export XEN_ROOT := $(CURDIR)/..
+export XEN_ROOT := $(abs_srctree)/..
 
 # To make sure we do not include .config for any of the *config targets
 # catch them early, and hand them over to tools/kconfig/Makefile
@@ -204,9 +284,6 @@ endif
 
 export XEN_HAS_CHECKPOLICY := $(call success,$(CHECKPOLICY) -h 2>&1 | grep -q xen)
 
-export root-make-done := y
-endif # root-make-done
-
 # ===========================================================================
 # Rules shared between *config targets and build targets
 
@@ -214,6 +291,37 @@ PHONY += tools_fixdep
 tools_fixdep:
 	$(Q)$(MAKE) $(build)=tools tools/fixdep
 
+PHONY += outputmakefile
+# Before starting out-of-tree build, make sure the source tree is clean.
+# outputmakefile generates a Makefile in the output directory, if using a
+# separate output directory. This allows convenient use of make in the
+# output directory.
+# At the same time when output Makefile generated, generate .gitignore to
+# ignore whole output directory
+
+quiet_cmd_makefile = GEN     Makefile
+cmd_makefile = { \
+    echo "\# Automatically generated by $(srctree)/Makefile: don't edit"; \
+    echo "include $(srctree)/Makefile"; \
+    } > Makefile
+
+outputmakefile:
+ifdef building_out_of_srctree
+	$(Q)if [ -f $(srctree)/.config -o \
+		 -d $(srctree)/include/config -o \
+		 -d $(srctree)/include/generated ]; then \
+		echo >&2 "***"; \
+		echo >&2 "*** The source tree is not clean, please run 'make$(if $(findstring command line, $(origin XEN_TARGET_ARCH)), XEN_TARGET_ARCH=$(XEN_TARGET_ARCH)) distclean'"; \
+		echo >&2 "*** in $(abs_srctree)";\
+		echo >&2 "***"; \
+		false; \
+	fi
+	$(Q)ln -fsn $(srctree) source
+	$(call cmd,makefile)
+	$(Q)test -e .gitignore || \
+	{ echo "# this is build directory, ignore it"; echo "*"; } > .gitignore
+endif
+
 ifeq ($(config-build),y)
 # ===========================================================================
 # *config targets only - make sure prerequisites are updated, and descend
@@ -229,13 +337,13 @@ filechk_kconfig_allconfig = \
 .allconfig.tmp: FORCE
 	set -e; { $(call filechk_kconfig_allconfig); } > $@
 
-config: tools_fixdep FORCE
+config: tools_fixdep outputmakefile FORCE
 	$(Q)$(MAKE) $(build)=tools/kconfig $@
 
 # Config.mk tries to include .config file, don't try to remake it
 %/.config: ;
 
-%config: .allconfig.tmp tools_fixdep FORCE
+%config: .allconfig.tmp tools_fixdep outputmakefile FORCE
 	$(Q)$(MAKE) $(build)=tools/kconfig KCONFIG_ALLCONFIG=$< $@
 
 else # !config-build
@@ -315,6 +423,10 @@ CFLAGS += -flto
 LDFLAGS-$(CONFIG_CC_IS_CLANG) += -plugin LLVMgold.so
 endif
 
+ifdef building_out_of_srctree
+    CFLAGS += -I$(objtree)/include
+    CFLAGS += -I$(objtree)/arch/$(TARGET_ARCH)/include
+endif
 CFLAGS += -I$(srctree)/include
 CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
 
@@ -341,6 +453,8 @@ export CFLAGS_UBSAN
 
 endif # need-config
 
+__all: build
+
 main-targets := build install uninstall clean distclean MAP
 .PHONY: $(main-targets)
 ifneq ($(XEN_TARGET_ARCH),x86_32)
@@ -443,7 +557,7 @@ $(TARGET).gz: $(TARGET)
 	gzip -n -f -9 < $< > $@.new
 	mv $@.new $@
 
-$(TARGET): FORCE
+$(TARGET): outputmakefile FORCE
 	$(Q)$(MAKE) $(build)=tools
 	$(Q)$(MAKE) $(build)=. include/xen/compile.h
 	$(Q)$(MAKE) $(build)=include all
@@ -513,6 +627,7 @@ cloc:
 	done | cloc --list-file=-
 
 endif #config-build
+endif # need-sub-make
 
 PHONY += FORCE
 FORCE:
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 20dedce06cd8..73d5b82ab2e7 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -37,7 +37,7 @@ SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
                          $(foreach r,rel rel.ro,data.$(r).local)
 
 # The filename build.mk has precedence over Makefile
-include $(firstword $(wildcard $(src)/build.mk) $(src)/Makefile)
+include $(firstword $(wildcard $(srcdir)/build.mk) $(srcdir)/Makefile)
 
 # Linking
 # ---------------------------------------------------------------------------
@@ -328,6 +328,15 @@ existing-targets := $(wildcard $(sort $(targets)))
 
 -include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
 
+# Create directories for object files if they do not exist
+obj-dirs := $(sort $(patsubst %/,%, $(dir $(targets))))
+# If targets exist, their directories apparently exist. Skip mkdir.
+existing-dirs := $(sort $(patsubst %/,%, $(dir $(existing-targets))))
+obj-dirs := $(strip $(filter-out $(existing-dirs), $(obj-dirs)))
+ifneq ($(obj-dirs),)
+$(shell mkdir -p $(obj-dirs))
+endif
+
 # Declare the contents of the PHONY variable as phony.  We keep that
 # information in a variable so we can use it in if_changed and friends.
 .PHONY: $(PHONY)
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 7cfc9fd3bb1c..554ac341522c 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -62,6 +62,9 @@ ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
 
 efi-check-o := arch/x86/efi/check.o
 
+# Create the directory for out-of-tree build
+$(shell mkdir -p $(dir $(efi-check-o)))
+
 # Check if the compiler supports the MS ABI.
 XEN_BUILD_EFI := $(call if-success,$(CC) $(CFLAGS) -c $(srctree)/$(efi-check-o:.o=.c) -o $(efi-check-o),y)
 
@@ -101,6 +104,6 @@ export EFI_LDFLAGS
 endif
 
 # Set up the assembler include path properly for older toolchains.
-CFLAGS += -Wa,-I$(srctree)/include
+CFLAGS += -Wa,-I$(objtree)/include -Wa,-I$(srctree)/include
 
 ALL_OBJS-y := arch/x86/boot/built_in.o arch/x86/efi/built_in.o $(ALL_OBJS-y)
diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index 5395aae5d57e..04ee9da83333 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -7,6 +7,9 @@ targets += $(head-objs:.S=.o)
 
 head-objs := $(addprefix $(obj)/, $(head-objs))
 
+ifdef building_out_of_srctree
+$(obj)/head.o: CFLAGS-y += -iquote $(obj)
+endif
 $(obj)/head.o: $(head-objs)
 
 $(head-objs:.S=.lnk): LDFLAGS_DIRECT := $(subst x86_64,i386,$(LDFLAGS_DIRECT))
@@ -14,6 +17,9 @@ $(head-objs:.S=.lnk): LDFLAGS_DIRECT := $(subst x86_64,i386,$(LDFLAGS_DIRECT))
 CFLAGS_x86_32 := $(subst -m64,-m32 -march=i686,$(XEN_COMMON_CFLAGS))
 $(call cc-options-add,CFLAGS_x86_32,CC,$(EMBEDDED_EXTRA_CFLAGS))
 CFLAGS_x86_32 += -Werror -fno-builtin -g0 -msoft-float
+ifdef building_out_of_srctree
+CFLAGS_x86_32 += -I$(objtree)/include
+endif
 CFLAGS_x86_32 += -I$(srctree)/include
 
 # override for 32bit binaries
diff --git a/xen/common/efi/efi_common.mk b/xen/common/efi/efi_common.mk
index d2845fd6b3c8..d059bb30afa5 100644
--- a/xen/common/efi/efi_common.mk
+++ b/xen/common/efi/efi_common.mk
@@ -3,6 +3,7 @@ EFIOBJ-$(CONFIG_COMPAT) += compat.o
 
 CFLAGS-y += -fshort-wchar
 CFLAGS-y += -iquote $(srctree)/common/efi
+CFLAGS-y += -iquote $(srcdir)
 
 $(obj)/%.c: $(abs_srctree)/common/efi/%.c FORCE
 	$(Q)ln -nfs $< $@
diff --git a/xen/include/Makefile b/xen/include/Makefile
index f64bc293c7f4..a3977a8bfccd 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -113,7 +113,8 @@ $(obj)/headers99.chk: $(PUBLIC_C99_HEADERS) $(srcdir)/Makefile
 	$(foreach i, $(filter %.h,$^),                                        \
 	    echo "#include "\"$(i)\"                                          \
 	    | $(CC) -x c -std=c99 -Wall -Werror                               \
-	      -include stdint.h $(foreach j, $($(i)-prereq), -include $(j).h) \
+	      -include stdint.h                                               \
+	      $(foreach j, $($(patsubst $(srctree)/%,%,$i)-prereq), -include $(j).h) \
 	      -S -o /dev/null -                                               \
 	    || exit $$?; echo $(i) >> $@.new;)
 	mv $@.new $@
@@ -127,8 +128,9 @@ $(obj)/headers++.chk: $(PUBLIC_HEADERS) $(srcdir)/Makefile
 	$(foreach i, $(filter %.h,$^),                                        \
 	    echo "#include "\"$(i)\"                                          \
 	    | $(CXX) -x c++ -std=gnu++98 -Wall -Werror -D__XEN_TOOLS__        \
-	      -include stdint.h -include $(src)/public/xen.h                  \
-	      $(foreach j, $($(i)-prereq), -include c$(j)) -S -o /dev/null -  \
+	      -include stdint.h -include $(srcdir)/public/xen.h               \
+	      $(foreach j, $($(patsubst $(srctree)/%,%,$i)-prereq), -include c$(j)) \
+	      -S -o /dev/null -                                               \
 	    || exit $$?; echo $(i) >> $@.new;)
 	mv $@.new $@
 
@@ -137,7 +139,8 @@ endif
 ifeq ($(XEN_TARGET_ARCH),x86_64)
 .PHONY: lib-x86-all
 lib-x86-all:
-	$(MAKE) -C $(obj)/xen/lib/x86 all
+	@mkdir -p $(obj)/xen/lib/x86
+	$(MAKE) -C $(obj)/xen/lib/x86 -f $(abs_srctree)/$(src)/xen/lib/x86/Makefile all
 
 all: lib-x86-all
 endif
diff --git a/xen/test/livepatch/Makefile b/xen/test/livepatch/Makefile
index ddb07371315e..c258ab0b5940 100644
--- a/xen/test/livepatch/Makefile
+++ b/xen/test/livepatch/Makefile
@@ -11,6 +11,8 @@ endif
 CODE_ADDR=$(shell nm --defined $(1) | grep $(2) | awk '{print "0x"$$1}')
 CODE_SZ=$(shell nm --defined -S $(1) | grep $(2) | awk '{ print "0x"$$2}')
 
+CFLAGS-y += -iquote $(obj)
+
 extra-y += xen_hello_world.livepatch
 xen_hello_world-objs := xen_hello_world_func.o xen_hello_world.o note.o xen_note.o modinfo.o
 $(obj)/xen_hello_world.o: $(obj)/config.h
diff --git a/xen/xsm/flask/Makefile b/xen/xsm/flask/Makefile
index a99038cb5722..d25312f4fa1c 100644
--- a/xen/xsm/flask/Makefile
+++ b/xen/xsm/flask/Makefile
@@ -4,7 +4,8 @@ obj-y += flask_op.o
 
 obj-y += ss/
 
-CFLAGS-y += -I$(obj)/include
+CFLAGS-y += -iquote $(obj)/include
+CFLAGS-y += -I$(srcdir)/include
 
 AWK = awk
 
diff --git a/xen/xsm/flask/ss/Makefile b/xen/xsm/flask/ss/Makefile
index aba1339f3808..ffe92ec19ed6 100644
--- a/xen/xsm/flask/ss/Makefile
+++ b/xen/xsm/flask/ss/Makefile
@@ -8,4 +8,5 @@ obj-y += services.o
 obj-y += conditional.o
 obj-y += mls.o
 
+CFLAGS-y += -iquote $(objtree)/xsm/flask/include
 CFLAGS-y += -I$(srctree)/xsm/flask/include
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231278.400211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5x-00036F-Or; Thu, 25 Nov 2021 13:47:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231278.400211; Thu, 25 Nov 2021 13:47:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF5x-00035u-Go; Thu, 25 Nov 2021 13:47:25 +0000
Received: by outflank-mailman (input) for mailman id 231278;
 Thu, 25 Nov 2021 13:47:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0Q-0007NX-JW
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:42 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b070573-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:41 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b070573-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847701;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=EuHi73nC8Lo2X69xXlwl/JFsLjuB22umM4hppbRP7sA=;
  b=N2XMfd1dxLtLCFYDFwGEjExr+Xgo9Y00OgL4rF4rbox+RlebOK1jiR0o
   FERt+cTmqwpCqT7CokV1/+TGk1g7B7W+n7CQrKbh87CtM3kj8KNol/fcL
   f8mQybmoYTjAr9O/8ZpBXuwsAy3H3224Hf4mHin4T6TKWVBF/ZbKSb/XX
   0=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: a2TZ0JpCMic4LK80dwx4//vXt6zJcghg/RwWZMcGviTPCuuK9qqQM15vDv5PvYYOilRhbiKe76
 kz6e9vByi8e9WGr/p/40Nsr3uNnJRAQZyYN/DeHkV6E7vF5zVEW0TYeiiF0zXF16AKKX2EE4/b
 XNn9xJFdSTcMR8umUhH6x9dhDqvdQAxdVXhxMW+sL0qiqtTJhCLbuU9ZBQq0XTuoiNGTkZh3Fd
 A1gCGdK+y7tUsGILa3Abi/hXxrb7Lwr20rbSD/g6G5sMZY1SlgdCtSEasJX/XOzWnBYQHuq/jH
 q3AY9dADfufEV8aPtNLT36io
X-SBRS: 5.1
X-MesageID: 60634165
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:L4O2nqgwA0DFXhPOwCqqo/m7X161nRcKZh0ujC45NGQN5FlHY01je
 htvX2mAbvreYmT2et9yOdni9UtUvJ7WyIA1GVNvqC8wRXsb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy3IDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1fjrn3bwcoOZfCwsQjbgRBPn9SNPVvreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHiOp8fvXdxiynUF/88TbjIQrnQ5M8e1zA17ixLNaiGO
 ZFFMGQyBPjGSyRuMGcdD5k9p+ytj0X9SBh6g06vlJNitgA/yyQuieOwYbI5YOeiR9hRn0uej
 nLL+SL+GB5yHMeE1TOP/3aoh+nOtSD2QoQfEPu/7PECqEKX7nweDlsRT1TTiem0jAuyVsxSL
 2QQ+zEytu4i+UqzVN7/Uhak5nmesXY0WsVSO/037hmXzajZ6BrfAXILJhZDYtE7sM49RRQxy
 0SE2djuAFRSXKa9ECzHsO3O9HXrZHZTfTRqiTI4oRUt8eLG56czjxX1QIxDLpOol/CrNTio6
 mXfxMQhvIk7gckO3qS92FnIhTOwu5TEJjIIChXrsnGNtV0gOtP8D2C8wR2CtKsbct7FJrWUl
 CFcw5D20QwYMX2aeMVhqs0pFarh2fuKOSa0bbVHT8h4rGTFF5JOkOltDNBCyKVBbplsldzBO
 ha7VeZtCHh7ZibCUEOPS9jtY/nGNIC5fTgfatjab8BVfr96fxKd8SdlaCa4hj62zxdzwPFva
 M3FIK5A6Er27ow9klKLqxo1i+d3lkjSO0uPLXwE8/hX+eXHPyPEIVv0GFCPcvo4/Mu5TPb9q
 L5i2z+x40wHCoXWO3CPmaZKdAxiBSVrVPje9p0MHsbec1UOJY3UI6KIqV/XU9c+xPo9eyah1
 izVZ3K0P3Kj3yCaclvTNSg4AF4tNL4mxU8G0eUXFQ7A8xAejUyHtc/zrrM7Iusq8vJN1/lxQ
 6VXcsmMGK0XGD/G5y4cfd/2q4k7LEanggeHPiyEZjkjfsE/G1yVq4G8Jga/pjMTCieXtNclp
 +Hy3A3sXpdeFR9pC9zbaazzwgrp72Qdgu97Q2DBPsJXJBf36IFvJiGo1q03LsgAJA/t3Dyf0
 wrKUx4UqfOU+90+8cXThLDCpICsSrMsEk1fFmjdzLC3KSiFoTbznd4eCL6FJGmPWnn19aOuY
 fRu48v9aPBXzkxXt4dcEqpwyf5s7dXYuLIHnB9vG2/Gbgr3B+o4cGWGx8RGqoZE2qRd5VmtQ
 kuK99RXZeeJNcfiHAJDLQYpdL3eh/Qdmz2U5vUpOkTqoiRw+ePfA0lVOhCNjg1bLad0b9x5k
 btw5pZO5lztkAcuP/aHkjtQpjaFIXE3Wqk6so0XXd3wgQ0xx1AeOZHRB0caOn1Uhwmg5qXyH
 gKpuQ==
IronPort-HdrOrdr: A9a23:MyexUamP7sLWx0ELc7hHh1sTS2XpDfIq3DAbv31ZSRFFG/Fxl6
 iV88jzsiWE7wr5OUtQ4OxoV5PgfZqxz/NICMwqTNWftWrdyQ+VxeNZjbcKqgeIc0aVygce79
 YET0EXMqyXMbEQt6jHCWeDf+rIuOP3k5yVuQ==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634165"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 30/47] build: rework "headers*.chk" prerequisite in include/
Date: Thu, 25 Nov 2021 13:39:49 +0000
Message-ID: <20211125134006.1076646-31-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Listing public headers when out-of-tree build are involved becomes
more annoying where every path to every headers needs to start with
"$(srctree)/$(src)", or $(wildcard ) will not work. This means more
repetition. ( "$(srcdir)" is a shortcut for "$(srctree)/$(src)" )

This patch attempt to reduce the amount of duplication and make better
use of make's meta programming capability. The filters are now listed
in a variable and don't have to repeat the path to the headers files
as this is added later as needed.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - add prefix "public-" to newly introduced macros.
    - make use of the new "$(srcdir)" shortcut.

 xen/include/Makefile | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/xen/include/Makefile b/xen/include/Makefile
index 5a2b4c9f65fa..6e80ef276fd9 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -39,8 +39,8 @@ cppflags-$(CONFIG_X86)    += -m32
 
 endif
 
-public-$(CONFIG_X86) := $(wildcard $(src)/public/arch-x86/*.h $(src)/public/arch-x86/*/*.h)
-public-$(CONFIG_ARM) := $(wildcard $(src)/public/arch-arm/*.h $(src)/public/arch-arm/*/*.h)
+public-$(CONFIG_X86) := $(wildcard $(srcdir)/public/arch-x86/*.h $(srcdir)/public/arch-x86/*/*.h)
+public-$(CONFIG_ARM) := $(wildcard $(srcdir)/public/arch-arm/*.h $(srcdir)/public/arch-arm/*/*.h)
 
 .PHONY: all
 all: $(addprefix $(obj)/,$(headers-y))
@@ -81,10 +81,21 @@ ifeq ($(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
 
 all: $(obj)/headers.chk $(obj)/headers99.chk $(obj)/headers++.chk
 
-PUBLIC_HEADERS := $(filter-out $(src)/public/arch-% $(src)/public/dom0_ops.h, $(wildcard $(src)/public/*.h $(src)/public/*/*.h) $(public-y))
+public-hdrs-path := $(srcdir)/public
 
-PUBLIC_C99_HEADERS := $(src)/public/io/9pfs.h $(src)/public/io/pvcalls.h
-PUBLIC_ANSI_HEADERS := $(filter-out $(src)/public/%ctl.h $(src)/public/xsm/% $(src)/public/%hvm/save.h $(PUBLIC_C99_HEADERS), $(PUBLIC_HEADERS))
+public-list-headers = $(wildcard $1/*.h $1/*/*.h)
+public-filter-headers = $(filter-out $(addprefix $(public-hdrs-path)/,$($1-filter)), $($1))
+
+public-c99-headers := io/9pfs.h io/pvcalls.h
+public-headers := $(call public-list-headers,$(public-hdrs-path)) $(public-y)
+public-ansi-headers := $(public-headers)
+
+public-headers-filter := dom0_ops.h arch-%
+public-ansi-headers-filter := %ctl.h xsm/% %hvm/save.h $(public-headers-filter) $(public-c99-headers)
+
+PUBLIC_HEADERS := $(call public-filter-headers,public-headers)
+PUBLIC_ANSI_HEADERS := $(call public-filter-headers,public-ansi-headers)
+PUBLIC_C99_HEADERS := $(addprefix $(public-hdrs-path)/, $(public-c99-headers))
 
 $(src)/public/io/9pfs.h-prereq := string
 $(src)/public/io/pvcalls.h-prereq := string
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231280.400222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF63-0003oU-6k; Thu, 25 Nov 2021 13:47:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231280.400222; Thu, 25 Nov 2021 13:47:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF63-0003oC-0a; Thu, 25 Nov 2021 13:47:31 +0000
Received: by outflank-mailman (input) for mailman id 231280;
 Thu, 25 Nov 2021 13:47:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF11-0007NX-UI
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:42:20 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 815005b7-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:42:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 815005b7-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847738;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=wkmmiuAD5A/O6wcnuJk4gUEzCv+65h31hRHwc6XHY2w=;
  b=iH/P2RzQoGeJIA+Ew9BWhtKj9PUUCyidqnwFIdsS3F/FfUa4M5nY4sBz
   CoXCKBXA0u4+c5s8vaN4fI9Arg2GmtfEiw/ncbjn+wyp1LzFxrIy+cykU
   2LHMVsmsZOr7306Uz3on4jroU3pIZM86veo9M1KAgJv1ISsnCY/YG/PpA
   I=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: R82v6C2kRPXf0jXbtE48KEQxG+CWaoeMQ5FnYNrQlUFHbAfGUHs+G0utV/8rwDI+ccNgQebkTI
 VqkFzV78T12ra6gTwelPh9pAAdW9qr4w3N8xtB60cM8af3HSgd/4OLHJBZAED2uVLdy6x12r/1
 ClmkbVcznAUnYJ6eeavffD3K/jt5IEzQjGoLfiwaM/xDIkV7XqWSlnakcllA0Q7SRfxt/si2Li
 YkAojBWDIP3IgHTblx7/WDAh6+GZGa3fEL1jFuh1DgqTQvHjLfq+yxLPu6POPGlloVlhIlhXaD
 Z+WJweHl5XffGNny2kvyBQV3
X-SBRS: 5.1
X-MesageID: 59006070
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:OMZmz6+/iCywXLrmYY/8DrUDuHmTJUtcMsCJ2f8bNWPcYEJGY0x3z
 WdKD23UbvbeZTHzfNkkPo20px4EsZ6DmIMxGgU9/Cg8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj39Yy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPg22
 M9Dm6GNbD5zGYzyk/tCdBJ8UAthaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwqKtXrO4UO/Glt1zjDAd4tQIzZQrWM7thdtNs1rp0fRa6AP
 5VBAdZpRD6RcSYIFU0UMrI3rOz0uVTxKgJCmHvA8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru/nv7KgEXMsSFzjiI+W7qgfXA9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc51ACeMU1Tyo8/DzwjiSGTcjRRoCQsNz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVml
 CJZ8/VyFMhUUfmweNWlGY3h5o2B6fefKyH7ilVyBZQn/DnF0yf9Jt8Pv2AudBYzbJdsldrVj
 Kj741052XOuFCHyMf8fj3yZV6zGMpQM5fy6D6uJP7Kik7B6dROd/TEGWKJj9zuFraTYqolmY
 c3zWZ/1VR4yUP07pBLrF7Z1+eJ6nUgWmDKMLa0XOjz6iNJyklbOEuxbWLZPB8hkhJ65TPL9r
 4wCapDUkkoHC4UToED/qOYuELzDFlBjbbieliCdXrTrztNOFD5zBvnP76kmfoA5za1Zmv2Rp
 iO2W1NCyUq5jnrCcF3YZndmYbLpfJB+sXNkYnB8YQf2gyAuMdS18aMSV5orZr17puZt+uF5E
 qsecMKaD/URFjmeo2YBbYPwpZBJfQiwgV7cJDKsZTUyJsYyRwHA9tL+UBHo8S0CUni+ucck+
 uXy3QLHW5sTAQ9lCZ+OOv6oylqwu1kbmf5zABSUcoUCJh20/dEzeSLrj/IxL8UdEjn5x2OXh
 1SMHBMVhejRuItpotPHsr+J8tWyGOxkE0sEQ2SCteSqNTPX93aIyJNbVLraZijUUW759fnwZ
 ehRyP2gYvQLkEwT7th5Grdvi6k/+8Hut/lRyQE9RCfHaFGiC7VBJHia3JYQ6v0Rl+EB4QbmC
 FiS/tR6OKmSPJK3GVEcEwMpc+Cf2KxGgTLV9/k0fB336SIfEGBriqmO081gUBBgEYY=
IronPort-HdrOrdr: A9a23:237/UaiMNNsVv/Umq9CySerEk3BQXhIji2hC6mlwRA09TyXPrb
 HJoB17726NtN9/YgBCpTntAtjjfZq+z/JICOsqU4tKjDOIhILyFuBfBOLZqlWKcUDDH4ZmpN
 xdmsNFaOEYY2IK6voTt2KDYqsdKIbtytHV9JnjJ0kGd3APV0gZ1XYdNu8wKDwINXh77M0CZe
 Chz/sCnjy/dW8aY4CRNhA+LpH+m+E=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="59006070"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Ian Jackson
	<iwj@xenproject.org>, Wei Liu <wl@xen.org>
Subject: [XEN PATCH v8 47/47] WIP: no more link farming for xen-shim
Date: Thu, 25 Nov 2021 13:40:06 +0000
Message-ID: <20211125134006.1076646-48-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

---
 tools/firmware/xen-dir/Makefile | 71 ++-------------------------------
 1 file changed, 3 insertions(+), 68 deletions(-)

diff --git a/tools/firmware/xen-dir/Makefile b/tools/firmware/xen-dir/Makefile
index 6f5e208ab413..a50fdcbb8b17 100644
--- a/tools/firmware/xen-dir/Makefile
+++ b/tools/firmware/xen-dir/Makefile
@@ -7,74 +7,9 @@ FORCE:
 
 D=xen-root
 
-# Minimun set of files / directories go get Xen to build
-LINK_DIRS=config xen
-LINK_FILES=Config.mk
-
-DEP_DIRS=$(foreach i, $(LINK_DIRS), $(XEN_ROOT)/$(i))
-DEP_FILES=$(foreach i, $(LINK_FILES), $(XEN_ROOT)/$(i))
-
-# Exclude some intermediate files and final build products
-LINK_EXCLUDES := '*.[isoa]' '*.bin' '*.chk' '*.lnk' '*.gz' '.*'
-LINK_EXCLUDES += lexer.lex.? parser.tab.? conf
-LINK_EXCLUDES += asm-offsets.h asm-macros.h compile.h '*-autogen.h'
-LINK_EXCLUDES += mkelf32 mkreloc symbols config_data.S xen.lds efi.lds
-LINK_EXCLUDES += '*.map' xen xen.gz xen.efi xen-syms check.efi
-
-# To exclude full subtrees or individual files of not sufficiently specific
-# names, regular expressions are used:
-LINK_EXCLUDE_PATHS := xen/include/compat/.*
-LINK_EXCLUDE_PATHS += xen/include/config/.*
-LINK_EXCLUDE_PATHS += xen/include/generated/.*
-LINK_EXCLUDE_PATHS += xen/arch/x86/boot/reloc[.]S
-LINK_EXCLUDE_PATHS += xen/arch/x86/boot/cmdline[.]S
-
-# This is all a giant mess and doesn't really work.
-#
-# The correct solution is to fix Xen to be able to do out-of-tree builds.
-#
-# Until that happens, we set up a linkfarm by iterating over the xen/ tree,
-# linking source files.  This is repeated each time we enter this directory,
-# which poses a problem for a two-step "make; make install" build process.
-#
-# Any time the list of files to link changes, we relink all files, then
-# distclean to take out not-easy-to-classify intermediate files.  This is to
-# support easy development of the shim, but has a side effect of clobbering
-# the already-built shim.
-#
-# $(LINK_EXCLUDES) and $(LINK_EXCLUDE_DIRS) should be set such that a parallel
-# build of shim and xen/ doesn't cause a subsequent `make install` to decide to
-# regenerate the linkfarm.  This means that all intermediate and final build
-# artefacts must be excluded.
-linkfarm.stamp: $(DEP_DIRS) $(DEP_FILES) FORCE
-	mkdir -p $(D)
-	rm -f linkfarm.stamp.tmp
-	set -e; \
-	$(foreach d, $(LINK_DIRS), \
-		 (mkdir -p $(D)/$(d); \
-		  cd $(D)/$(d); \
-		  find $(XEN_ROOT)/$(d)/ -type d |\
-			sed 's,^$(XEN_ROOT)/$(d)/,,g' | xargs mkdir -p .);) \
-	$(foreach d, $(LINK_DIRS), \
-		(cd $(XEN_ROOT); \
-		 find $(d) ! -type l -type f $(addprefix ! -name ,$(LINK_EXCLUDES)) \
-		 | grep -v $(patsubst %,-e '^%$$',$(LINK_EXCLUDE_PATHS))) \
-		 >> linkfarm.stamp.tmp ; ) \
-	$(foreach f, $(LINK_FILES), \
-		echo $(f) >> linkfarm.stamp.tmp ;)
-	cmp -s linkfarm.stamp.tmp linkfarm.stamp && \
-		rm linkfarm.stamp.tmp || { \
-		cat linkfarm.stamp.tmp | while read f; \
-		  do rm -f "$(D)/$$f"; ln -s "$(XEN_ROOT)/$$f" "$(D)/$$f"; done; \
-		mv linkfarm.stamp.tmp linkfarm.stamp; \
-		}
-
-# Copy enough of the tree to build the shim hypervisor
-$(D): linkfarm.stamp
-	$(MAKE) -C $(D)/xen distclean
-
-$(D)/xen/.config: $(D)
-	$(MAKE) -C $(@D) KBUILD_DEFCONFIG=pvshim_defconfig defconfig
+$(D)/xen/.config: FORCE
+	mkdir -p $(@D)
+	$(MAKE) -f $(XEN_ROOT)/xen/Makefile -C $(@D) KBUILD_DEFCONFIG=pvshim_defconfig defconfig
 
 xen-shim: $(D)/xen/.config
 	$(MAKE) -C $(<D) build
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231281.400230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF65-0004Hq-8Q; Thu, 25 Nov 2021 13:47:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231281.400230; Thu, 25 Nov 2021 13:47:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF64-0004Gn-Uy; Thu, 25 Nov 2021 13:47:32 +0000
Received: by outflank-mailman (input) for mailman id 231281;
 Thu, 25 Nov 2021 13:47:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0U-00076i-Mx
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:46 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d6c76ec-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d6c76ec-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847705;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=o+kA5ufKOUX7cHgHO/shUnoM69Ej2+dSlJV54ErUF+0=;
  b=G9n+AX1UQo80TDZ+ZBfFvgc1hGpTGfV+/VcF9dm1nH68jxeH6zn3DNr+
   B8QLqZpG21IQUvggwNW4EbjRRVEyHNPT/pV14vuKU3Q75GO5RwIeuuLTZ
   pIOTz3nPPyH4IzRqz3wCgCR4sv4kiQAT6Qm/EflbMe6ytbGjBPzBxZm+G
   U=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: veMVtzRDvR9Az3eriOtzviuZLksqoVwo3rOzhYcgu6t6xGyCcgZrDIDyy+ZnUL2sruI+A3V+Hi
 VKoXybqlNMx+/nPfv0vefj0KYz6EMPWptHIRPUqgKYrqM64fk1aGBfK5SfFmIm3bhyO3BsHuaT
 5DkotiS1PoF8RqfA3zgv7LQpawWMKyvU58JA/sQwWIZuxBgB/LMYfXzmQcIkHhg6XXrrH1gyJT
 7WN5N+hRqzutex27WOpW2K03rbx1OtFOLeoOxmYwAdfJsP6efK4E1wHPoBBbt6y5Ani0mfiZUS
 9Scp08EX+5DfzFkihekXMevw
X-SBRS: 5.1
X-MesageID: 58135484
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:rOEXRKB7lf11hRVW/9Tkw5YqxClBgxIJ4kV8jS/XYbTApG4n0DUAm
 2oWWWuHbPveYGD2L94nb4q/p0JQ7JKBnIM3QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540087wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/0AysmMpjx
 4t2soGJVCIbN4KXhMkhTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTQ+9whsMlPY/zMZkWoH1IxjDFF/c2B5vERs0m4PcFjG5r25weQZ4yY
 eIwNj5FbT/vOSFMFXVPU5Mgh7aRpVvWJmgwRFW9+vNsvjm7IBZK+LrwNNvYfPSaSMMTmVyXz
 krd5HjwCBweMN2ZyBKG/2iqi+uJmjn0MKoNEJWo+/gsh0ecrkQDBRtTWValrP2Rjk+lR8kZO
 0ES4jApr6U56AqsVNaVdxynolaUsxgEQd1SHuYmrgaXxcL84QyUG2wFRT5pc8E9uYk9QjlC6
 7OSt4q3X3o16uTTEC/DsOfPxd+vBcQLBTQ7QCgeXwRb2N7+mZwWvBvgFcpOLLHg27UZBgrM6
 zyNqSE/gZAagsgKy7i38Dj7vt68mnTaZlVrv1uKBwpJ+is8Pdf4PNLwtTA3+N4ZdN7BJmRtq
 kTojCR3AAomKZiW3BKAT+wWdF1Cz6bUaWaM6bKD8nRIythMx5JBVdwPiN2dDB0wWirhRdMOS
 BWO0T69HLcJYBOXgVZfOupd8fgCw6n6DsjCXfvJdNdIaZUZXFbZp34xOh/AjzG3zhlEfUQD1
 XCzK5jEMJrnIf4/kGreqxk1jdfHORzSNUuMHMumnnxLIJKVZWKPSKdtDbd9RrtR0U9wmy2Mq
 4w3H5LTk313CbSiCgGKod97BQ1bdhATWMGpw/G7g8bee2KK7kl6UKSPqV7gEqQ495loehDgo
 ivgBxQGkQWn3hUq62yiMxheVV8mZr4nxVpTAMDmFQ/AN6ELbdn94aEBWYEweLV7puVvweQtF
 6sOetmaA+QJQTPComxPYZ74pY1kVRKqmQPRYHb1PGlhJ8ZtF17T59vpXgrz7y1SXCC5gtQz/
 u+73QTBTJtdGwk7VJTKaOiixk+atGQGnL4gRFPBJ9ReIR2+8IVjJyHroOUwJsUAdUfKyjeAj
 l7EChYEv+jd5YQy9YCR16yDqo6oFcp4H1ZbQDaHverna3GC8zP6k4FaUeuOcTTMb0/O+f2vN
 bdP0vXxEPwbh1IW4YByJKlmkPAl7Nz1qr4Ekgk9RCfXb06mA69LK2Wd2ZUdrbVEw7JUtFfkW
 k+L/dUGa7yFNNm8TQwULQshKO+CyesVin/Z6vFseBf24yp+/bymV0ROPkbT1HwBfeUtaI51k
 /08vMM26hCkjkt4O9mLuSlY6mCQIyFSSK4grJwbXNfmhwdDJouuunAA5vsaOK2yVug=
IronPort-HdrOrdr: A9a23:4cltCq/L8WX0tfj/CiNuk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re+sjztCWE8Ar5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtFD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58135484"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 32/47] build: shuffle main Makefile
Date: Thu, 25 Nov 2021 13:39:51 +0000
Message-ID: <20211125134006.1076646-33-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Reorganize a bit the Makefile ahead of patch
"build: adding out-of-tree support to the xen build"

This should only be code movement without functional changes.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - new patch

 xen/Makefile | 58 ++++++++++++++++++++++++++--------------------------
 1 file changed, 29 insertions(+), 29 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index 318320e79c7d..bfc96562c5ec 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -19,38 +19,11 @@ export PYTHON		?= $(PYTHON_INTERPRETER)
 
 export CHECKPOLICY	?= checkpolicy
 
-export XEN_ROOT := $(CURDIR)/..
-
-abs_objtree := $(CURDIR)
-abs_srctree := $(CURDIR)
-
-export abs_srctree abs_objtree
-
-srctree := .
-objtree := .
-export srctree objtree
-
 # Do not use make's built-in rules and variables
 MAKEFLAGS += -rR
 
 EFI_MOUNTPOINT ?= $(BOOT_DIR)/efi
 
-ARCH=$(XEN_TARGET_ARCH)
-SRCARCH=$(shell echo $(ARCH) | \
-          sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g' \
-              -e s'/riscv.*/riscv/g')
-export ARCH SRCARCH
-
-# Don't break if the build process wasn't called from the top level
-# we need XEN_TARGET_ARCH to generate the proper config
-include $(XEN_ROOT)/Config.mk
-
-# Set ARCH/SUBARCH appropriately.
-export TARGET_SUBARCH  := $(XEN_TARGET_ARCH)
-export TARGET_ARCH     := $(shell echo $(XEN_TARGET_ARCH) | \
-                            sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g' \
-                                -e s'/riscv.*/riscv/g')
-
 # Allow someone to change their config file
 export KCONFIG_CONFIG ?= .config
 
@@ -64,8 +37,6 @@ default: build
 .PHONY: dist
 dist: install
 
-include scripts/Kbuild.include
-
 ifneq ($(root-make-done),y)
 # section to run before calling Rules.mk, but only once.
 
@@ -141,6 +112,17 @@ endif
 
 export quiet Q KBUILD_VERBOSE
 
+abs_objtree := $(CURDIR)
+abs_srctree := $(CURDIR)
+
+export abs_srctree abs_objtree
+
+srctree := .
+objtree := .
+export srctree objtree
+
+export XEN_ROOT := $(CURDIR)/..
+
 # To make sure we do not include .config for any of the *config targets
 # catch them early, and hand them over to tools/kconfig/Makefile
 
@@ -163,6 +145,24 @@ ifneq ($(filter %config,$(MAKECMDGOALS)),)
     config-build := y
 endif
 
+include scripts/Kbuild.include
+
+ARCH=$(XEN_TARGET_ARCH)
+SRCARCH=$(shell echo $(ARCH) | \
+          sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g' \
+              -e s'/riscv.*/riscv/g')
+export ARCH SRCARCH
+
+# Don't break if the build process wasn't called from the top level
+# we need XEN_TARGET_ARCH to generate the proper config
+include $(XEN_ROOT)/Config.mk
+
+# Set ARCH/SUBARCH appropriately.
+export TARGET_SUBARCH  := $(XEN_TARGET_ARCH)
+export TARGET_ARCH     := $(shell echo $(XEN_TARGET_ARCH) | \
+                            sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g' \
+                                -e s'/riscv.*/riscv/g')
+
 export CONFIG_SHELL := $(SHELL)
 export YACC = $(if $(BISON),$(BISON),bison)
 export LEX = $(if $(FLEX),$(FLEX),flex)
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231284.400238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF66-0004iW-Q6; Thu, 25 Nov 2021 13:47:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231284.400238; Thu, 25 Nov 2021 13:47:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF66-0004fy-IC; Thu, 25 Nov 2021 13:47:34 +0000
Received: by outflank-mailman (input) for mailman id 231284;
 Thu, 25 Nov 2021 13:47:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzw-0007NX-I9
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:12 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5662e8e8-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5662e8e8-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847666;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=sxCVIENXL7U4uJ6PAJaPF/nE5SLDBzALYwkN0k1BGWI=;
  b=Ep9XIVirbsQWcyJ24uWe3/3faAB5XVRNqkw8zX3xGfRt8c70mAiGwL75
   CctvCSPhYFRrN8bEoYyvx1bIml+zQJw0kiNKaDnRBd2pgX9ezAcocJoAh
   cVP75lvsu7oU4whfBz7DGAePwuEcOVKO1ieFK406Ss8V8ri64nfqZeSVr
   0=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Ah9LABVBcQ5ud4W8ehu1CUiyw3Vl4ew/y08mOCVWO2lPvIqSL3OQ3EGb70j6tFaVSOPU/cRzHh
 tqh8TLO0UdGid2HR3kLnb1/7anr5fV2QTh0DU3ddJb7Im96NmJAcfQMJ0wzVYRtsCwLngSXSD8
 Eg9BoRFQmgg1kqGf2oNv5a/YfMxVUYTwaSF3xvPE9CXirnjvo09UYnQmuTxnZUbtn0xIXNaa9x
 RTiMJBonkUXVy6VGsCuS1v0Ou7M8gPCw2cGgscy5b7X+ZukZ/INtGGtosSG6vFSEwi+cnM7oWZ
 kGdG0DfCduhr+OovybpiIHxU
X-SBRS: 5.1
X-MesageID: 60634139
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:8piItqp4+FnnBj/uGEqKOyQLSaFeBmLlYhIvgKrLsJaIsI4StFCzt
 garIBmAa/yCNGL1eNxzPN/kpEMHupLUn99jQQY+rC0xRC0Q+JuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2ILkW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnZ+TVQsGPrDjobsmcDhkEyQ9Peoc97CSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFIoZpnFnyyCfFfs8SIrPa67L+cVZzHE7gcUm8fP2O
 ZJHMmY2N0WojxtnK3saT78cru2T3njETxtgp0OYhpVw7D2GpOB2+Oe0a4eEEjCQfu1Xg0KZq
 2Tu72n/RBYAO7S30iGZ+3ihguvOmyLTW48IErC8sPlwjzW72Wg7GBAQE1yhrpGRmkO4Ht5SN
 UEQ0i4vtrQpslymSMHnWB+1q2LCuQQTM/JSGeAn7ACGyoLP/h2UQGMDS1ZpacMknN87QyQw0
 V2ElM+vAiZg2IB5UlrEqO3S92nrf3FIcylSPkfoUDfp/fHgg50/oRLSYe88K42Ust3wWjG3m
 T+F+X1Wa6ooseYH0KCy/Fbiij2qp4TUQgNd2jg7Tl5J/SsiOtf7OtXABUzzqK8Zcd3HFgXpU
 G0swpDGtIgz4YexeDthqQnnNJWg/L67PTLVmjaD9LFxpm32qxZPkW29iQySxXuF0O5YJlcFg
 2eJ4Gu9AaO/21PwMMdKj3qZUZhC8EQZPY2NugroRtRPeINtUwSM4TtjY0Wdt0i0zhNzzv5ua
 cfKK5j9ZZr/NUiA5GDoL9rxLJdxnnxurY8tbcyTI+ubPUq2OyfOFOZt3KqmZeEl9qKUyDg5A
 P4EX/ZmPy53CbWkCgGOqNZ7BQlTcRATWMCnw+QKJ7XrClc3Rwkc5wr5nOpJl3pNxP8OyI8lP
 xiVBydl9bYIrSGddFjRNCk8MOiHsFQWhStTABHA9G2AgxALCbtDJo9FH3fuVbV4puFl09BuS
 PwJJ5eJDvhVE2yV8DUBd5jt6odlcU3z1w6JOiOkZhk5foJhGFOVqoO1IFO3+XlcFDezuOs/v
 6akilHRT60cSlkwF83Rcv+ukQ+85CBPhOJoUkLUCdBPY0GwopNyIin8g6ZvccEBIBnO3BWA0
 AOSDUtKrOXBudZtotLImbqFv8GiFO4nRhhWGGzS7LCXMyjG/zX8nd8cAbjQJT2EDTH64qSvY
 +lR3srQCvxfkQYYqZd4HpZq0bk6u4nlqYhFw1k2B37MdVmqVO9teyHUwclVu6RR7bZFog/qC
 FmX89xXNLjVasPoFFkdeFgsYuiZjKxGnzDT6bI+IVng5T8x972CCB0AMx6JgS1bDb10LIJ6n
 rtx5J9Is1Sy2kgwL9KLriFI7GDdfHUPXpIuuoweHIK22BEgzUtPYMCEByL7iH1Vhw6g7qX+z
 ueouZf/
IronPort-HdrOrdr: A9a23:4gWV6Ko+2+AKFz+8j3UshbgaV5oteYIsimQD101hICG8cqSj+P
 xG+85rsiMc6QxhIU3I9urgBEDtex7hHNtOkOss1NSZLW3bUQmTTL2KhLGKq1aLJ8S9zJ856U
 4JSdkZNDSaNzZHZKjBjDVQa+xQo+W6zA==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634139"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 17/47] build: remove KBUILD_ specific from Makefile.host
Date: Thu, 25 Nov 2021 13:39:36 +0000
Message-ID: <20211125134006.1076646-18-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This will allow $(HOSTCFLAGS) to actually be used when building
programmes for the build-host.

The other variable don't exist in our build system.

Also remove $(KBUILD_EXTMOD) since it should always be empty.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/scripts/Makefile.host | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

diff --git a/xen/scripts/Makefile.host b/xen/scripts/Makefile.host
index 8a85f94316bc..d6c358095ee8 100644
--- a/xen/scripts/Makefile.host
+++ b/xen/scripts/Makefile.host
@@ -82,18 +82,16 @@ host-cxxshobjs	:= $(addprefix $(obj)/,$(host-cxxshobjs))
 #####
 # Handle options to gcc. Support building with separate output directory
 
-_hostc_flags   = $(KBUILD_HOSTCFLAGS)   $(HOST_EXTRACFLAGS)   \
+_hostc_flags   = $(HOSTCFLAGS)   $(HOST_EXTRACFLAGS)   \
                  $(HOSTCFLAGS_$(target-stem).o)
-_hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
+_hostcxx_flags = $(HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
                  $(HOSTCXXFLAGS_$(target-stem).o)
 
 # $(objtree)/$(obj) for including generated headers from checkin source files
-ifeq ($(KBUILD_EXTMOD),)
 ifdef building_out_of_srctree
 _hostc_flags   += -I $(objtree)/$(obj)
 _hostcxx_flags += -I $(objtree)/$(obj)
 endif
-endif
 
 hostc_flags    = -Wp,-MD,$(depfile) $(_hostc_flags)
 hostcxx_flags  = -Wp,-MD,$(depfile) $(_hostcxx_flags)
@@ -104,17 +102,17 @@ hostcxx_flags  = -Wp,-MD,$(depfile) $(_hostcxx_flags)
 # Create executable from a single .c file
 # host-csingle -> Executable
 quiet_cmd_host-csingle 	= HOSTCC  $@
-      cmd_host-csingle	= $(HOSTCC) $(hostc_flags) $(KBUILD_HOSTLDFLAGS) -o $@ $< \
-		$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
+      cmd_host-csingle	= $(HOSTCC) $(hostc_flags) $(HOSTLDFLAGS) -o $@ $< \
+		$(HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
 $(host-csingle): $(obj)/%: $(src)/%.c FORCE
 	$(call if_changed_dep,host-csingle)
 
 # Link an executable based on list of .o files, all plain c
 # host-cmulti -> executable
 quiet_cmd_host-cmulti	= HOSTLD  $@
-      cmd_host-cmulti	= $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ \
+      cmd_host-cmulti	= $(HOSTCC) $(HOSTLDFLAGS) -o $@ \
 			  $(addprefix $(obj)/, $($(target-stem)-objs)) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
+			  $(HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
 $(host-cmulti): FORCE
 	$(call if_changed,host-cmulti)
 $(call multi-depend, $(host-cmulti), , -objs)
@@ -129,10 +127,10 @@ $(host-cobjs): $(obj)/%.o: $(src)/%.c FORCE
 # Link an executable based on list of .o files, a mixture of .c and .cc
 # host-cxxmulti -> executable
 quiet_cmd_host-cxxmulti	= HOSTLD  $@
-      cmd_host-cxxmulti	= $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -o $@ \
+      cmd_host-cxxmulti	= $(HOSTCXX) $(HOSTLDFLAGS) -o $@ \
 			  $(foreach o,objs cxxobjs,\
 			  $(addprefix $(obj)/, $($(target-stem)-$(o)))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
+			  $(HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
 $(host-cxxmulti): FORCE
 	$(call if_changed,host-cxxmulti)
 $(call multi-depend, $(host-cxxmulti), , -objs -cxxobjs)
@@ -163,9 +161,9 @@ $(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
 # Link a shared library, based on position independent .o files
 # *.o -> .so shared library (host-cshlib)
 quiet_cmd_host-cshlib	= HOSTLLD -shared $@
-      cmd_host-cshlib	= $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
+      cmd_host-cshlib	= $(HOSTCC) $(HOSTLDFLAGS) -shared -o $@ \
 			  $(addprefix $(obj)/, $($(target-stem)-objs)) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem).so)
+			  $(HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem).so)
 $(host-cshlib): FORCE
 	$(call if_changed,host-cshlib)
 $(call multi-depend, $(host-cshlib), .so, -objs)
@@ -173,9 +171,9 @@ $(call multi-depend, $(host-cshlib), .so, -objs)
 # Link a shared library, based on position independent .o files
 # *.o -> .so shared library (host-cxxshlib)
 quiet_cmd_host-cxxshlib	= HOSTLLD -shared $@
-      cmd_host-cxxshlib	= $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
+      cmd_host-cxxshlib	= $(HOSTCXX) $(HOSTLDFLAGS) -shared -o $@ \
 			  $(addprefix $(obj)/, $($(target-stem)-objs)) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem).so)
+			  $(HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem).so)
 $(host-cxxshlib): FORCE
 	$(call if_changed,host-cxxshlib)
 $(call multi-depend, $(host-cxxshlib), .so, -objs)
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231285.400247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF68-000533-If; Thu, 25 Nov 2021 13:47:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231285.400247; Thu, 25 Nov 2021 13:47:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF67-0004yO-PE; Thu, 25 Nov 2021 13:47:35 +0000
Received: by outflank-mailman (input) for mailman id 231285;
 Thu, 25 Nov 2021 13:47:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzv-00076i-P6
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:11 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5816b795-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5816b795-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847669;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=ZCs/Xx5M756MIsDnJYXw+m9V8UisU6uX8z4z8/g/Ths=;
  b=WiVegfMAoCwRYivSU2ZTqyaubOCr1QY35zqMQhLs+WFMRZpjN9W1q5iy
   lKMzwQz1ume4s6jlZUbBU8qrvTx/neY2XHAi0c7K6RjFb1dFo9YPxlLYf
   oduimfdlx1anCCMDl+PhTMxnK6dRaCjImEPW9Rxhv2PcMs93HeTuzWmj6
   g=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 4tr52D3X9HWXH1iw01BXLR6ba5oDHtKx8Ef7AFctZoE/TgiC34JWwhwPzbwPKM8XqFmbgOk43n
 qvvrVOFDhgVvfTcwilUhRu673NXyD2ZcoUiD1Wui2UCqTelfKOSYEBCwIdBnuRE2kJYJGpxZWU
 gHBaHnOxXaNVHPf+2JgB3txYNyjWf9gr3RuxTcX/3lpgKodoZDoxvfnjmF1/cVakSSgBS8ADAs
 pXfmdRcjMpIAjgwnfL+Eh0EmtIXI35dG5AmGXNFJBKkYp86FrfFt6M3vJhqexBdy08dtC7vgHf
 PQVV2542W2I8meLjAhZEdSIF
X-SBRS: 5.1
X-MesageID: 58617668
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:aPmGqqC3r2fKwBVW/9Tkw5YqxClBgxIJ4kV8jS/XYbTApDxw0DFSz
 WFKWW/XOPzeZGehL4gkOd+z9kpT6MKGzoVlQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540087wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/uyu4n4hP2
 OdxtqOxalswEIDxns0BakwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTQ+9whsMlPY/zMZkWoH1IxjDFF/c2B5vERs0m4PcFjGlp2Z4QTZ4yY
 eIfURhuVRPAQCcMEQ8VGo06paDr2nfWJmgwRFW9+vNsvjm7IBZK+LrwNNvYfPSaSMMTmVyXz
 krd5HjwCBweMN2ZyBKG/2iqi+uJmjn0MKoNEJWo+/gsh0ecrkQDBRtTWValrP2Rjk+lR8kZO
 0ES4jApr6U56AqsVNaVdx+yrWOAvxUcc8FNCOB84waIooLV/ASxFmUCViRGatEtqIkxXzNC6
 7OSt4q3X3o16uTTEC/DsOfPxd+vBcQLBV8cVC9ccxs339rcoaJvlzzic9BKDJfg27UZBgrM6
 zyNqSE/gZAagsgKy7i38Dj7vt68mnTaZlVrv1uKBwpJ+is8Pdf4PNLwtTA3+N4ZdN7BJmRtq
 kTojCR3AAomKZiW3BKAT+wWdF1Cz6bUaWaM6bKD8nRIythMx5JBVdwPiN2dDB0wWirhRdMOS
 BWO0T69HLcJYBOXgVZfOupd8fgCw6n6DsjCXfvJdNdIaZUZXFbZp34xOh/AjzG3zhlEfUQD1
 XCzK5jEMJrnIf4/kGreqxk1jdfHORzSNUuMHMumnnxLIJKVZWKPSKdtDbd9RrtR0U9wmy2Mq
 4w3H5LTk313CbSiCgGKod97BQ1bdhATWMGpw/G7g8bee2KK7kl6UKSPqV7gEqQ495loehDgo
 ivgBxQGkQWn3hUq62yiMxheVV8mZr4nxVpTAMDmFQzAN6ELbdn94aEBWYEweLV7puVvweQtF
 6sOetmaA+QJQTPComxPYZ74pY1kVRKqmQPRYHb1PGlhJ8ZtF17T59vpXgrz7y1SXCC5gtQz/
 u+73QTBTJtdGwk7VJTKaOiixk+atGQGnL4gRFPBJ9ReIR2+8IVjJyHroOUwJsUAdUfKyjeAj
 l7EChYEv+jd5YQy9YCR16yDqo6oFcp4H1ZbQDaHverna3GC8zP6k4FaUeuOcTTMb0/O+f2vN
 bdP0vXxEPwbh1IW4YByJKlmkPAl7Nz1qr4Ekgk9RCfXb06mA69LK2Wd2ZUdrbVEw7JUtFfkW
 k+L/dUGa7yFNNm8TQwULQshKO+CyesVin/Z6vFseBf24yp+/bymV0ROPkbT1HwBfeUtaI51k
 /08vMM26hCkjkt4O9mLuSlY6mCQIyFSSK4grJwbXNfmhwdDJouuunAA5vsaOK2yVug=
IronPort-HdrOrdr: A9a23:4DuZ96O7XnbBsMBcTvmjsMiBIKoaSvp037Eqv3oedfUzSL3gqy
 nOpoV86faaslYssR0b9exofZPwJE80lqQFhrX5X43SPzUO0VHAROoJgLcKgQeQfxEWntQtrZ
 uIGJIeNDSfNzdHZL7BkWuFL+o=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58617668"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 18/47] build: handle always-y and hostprogs-always-y
Date: Thu, 25 Nov 2021 13:39:37 +0000
Message-ID: <20211125134006.1076646-19-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This will be used for xen/tools/.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/Rules.mk               | 10 +++++++++-
 xen/scripts/Makefile.clean |  3 ++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index f452a821cc86..9eb3093f43fb 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -78,9 +78,17 @@ else
 obj-y    := $(filter-out %/, $(obj-y))
 endif
 
+# hostprogs-always-y += foo
+# ... is a shorthand for
+# hostprogs-y += foo
+# always-y  += foo
+hostprogs-y += $(hostprogs-always-y)
+always-y += $(hostprogs-always-y)
+
 # Add subdir path
 
 extra-y         := $(addprefix $(obj)/,$(extra-y))
+always-y        := $(addprefix $(obj)/,$(always-y))
 targets         := $(addprefix $(obj)/,$(targets))
 lib-y           := $(addprefix $(obj)/,$(lib-y))
 obj-y           := $(addprefix $(obj)/,$(obj-y))
@@ -283,7 +291,7 @@ targets += $(call intermediate_targets, .init.o, .o) \
 # Build
 # ---------------------------------------------------------------------------
 
-__build: $(targets-for-builtin) $(subdir-y)
+__build: $(targets-for-builtin) $(subdir-y) $(always-y)
 	@:
 
 # Descending
diff --git a/xen/scripts/Makefile.clean b/xen/scripts/Makefile.clean
index 156d6307cf83..c2689d4af5fa 100644
--- a/xen/scripts/Makefile.clean
+++ b/xen/scripts/Makefile.clean
@@ -18,7 +18,8 @@ subdir-all := $(subdir-y) $(subdir-n) $(subdir-) \
               $(patsubst %/,%, $(filter %/, $(obj-y) $(obj-n) $(obj-)))
 
 __clean-files := \
-    $(clean-files) $(hostprogs-y) $(hostprogs-)
+    $(clean-files) $(hostprogs-y) $(hostprogs-) \
+    $(hostprogs-always-y) $(hostprogs-always-)
 
 __clean-files := $(wildcard $(__clean-files))
 
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231290.400254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF69-0005L4-G7; Thu, 25 Nov 2021 13:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231290.400254; Thu, 25 Nov 2021 13:47:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF68-0005Ez-V9; Thu, 25 Nov 2021 13:47:36 +0000
Received: by outflank-mailman (input) for mailman id 231290;
 Thu, 25 Nov 2021 13:47:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0h-0007NX-KW
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:59 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75dbf48d-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 75dbf48d-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847718;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=B5VOkpfrwP2eJU5CJkGnpLSWbZA0WNl/g37hS+zmyXc=;
  b=d2QVA48Js5vVqo0r6uSFIXckwuE6nBulUwHSSK8EbK2Il8ibs+1CRRoR
   wjCbAFBZ1lN3UAhzqxXCKB9y9w1kVktFG0XcbJJaflhLK7lh2HQJ2RbCt
   PS8OAVa61Zzxip/ICATPxpwUQtvhmkY9l4xe4TOGL87I6oNllDMn0AJsp
   I=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: r23o05NSS7N9utzX3GZjNdfn8NR2ahYDzERWs2Mvd9EoEvJm8StOqMdOmNZHWOmlR/mPybolMn
 nHTiW5TPhM9OPESq+BRKvzy2mighS0Ex+Os19efb5BwOKU1QrTvEiNgXn4Lglarfzl3yMU1sp0
 Lwp5aU7xiy6qx03yLY4bzHWjO0LakUWvf+SznyBVEj9go7fuJ6gNzbRmSQqWFv0F0rH5JpKCly
 c/66nvr/NIppMXR9RMGVMsN3v/hHr6L+yqF/7AyrucywPqP3d0RcoClDnLnIS4lZ6J23F+NUSF
 gezsM3C33jAgriFKkBbdVqiK
X-SBRS: 5.1
X-MesageID: 60634184
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:fcohw6IBeLswchRXFE+RApIlxSXFcZb7ZxGr2PjKsXjdYENS0TQCy
 zNKDDiFbKrcZmukL49+ad60px5XvZHQnNAwQAplqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xrZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Svssvk
 tx3sKeUQF8qBpXcuccyC0lhRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFlgNgjK8/6epsSoHh6wRnSDOo8QICFSKLPjTNd9Glo2JsSRKaCD
 yYfQQhvdRviWUV1AGwwNZwlnfeYl0PDQQQN/Tp5ooJoujOOnWSdyoPFMtDYZ9iLTsV9hVuDq
 yTN+GGRKg4eHMySz3yC6H3Erv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaWUtRDK
 0sS62w2oLI77kCDQdz0Xhn+q3mB1iPwQPIJTbd8slvUjPOJvUDJXQDoUwKtdvQ9ldRoHzUQ0
 2StlovqPQR/kZ66ESKko+L8QSyJBQAZKmoLZCkhRAQD4sX+rIxbsi8jXuqPA4bu0ISrRGiYL
 ySi6XFn2u5N1ZJjO7CTpAif21qRSo71ohnZD+k9dkas9UtHaYGsfOREAnCLvK8bfO51orRs1
 UXoevRyDshSUvlhdwTXGY3h+Y1FAN7fbVXhbaZHRcVJythU0yfLkXpsyD9/Plx1Fc0PZCXkZ
 kTe0SsIusQMYyT7Pf8mOdzgYyjP8UQHPY67Ps04k/IUOsQhHON51H0GibGsM5DFzxF3zPBX1
 WazesewF3cKYZmLPxLtL9rxJYQDn3hkrUuKHMiT503+jdK2OS7EIZ9YYQDmRr1os8u5TPD9r
 o832z2ikE4EDoUTo0D/rOYuELz9BSRhWM2t9ZUILrXrz8gPMDhJNsI9CIgJI+RN95m5XM+Sl
 p1kckMHmlf5m1PdLgCGNiJqZL/1BM4tpnMnJy08e12v3iF7M4qo6a4ecboxfKUmq7M/naIlE
 aFddpXSGOlLRxTG5y8ZMcv3ort9eUn5ngmJJSekPmQyJsYyWwzT99b4VQLz7y1SXDGvvM4zr
 uT4hAPWSJYOXSp4C8PSZK79xl+9pyFFyulzQ1HJMp9Yf0C1qNpmLCn4j/kWJcAQKEqcmmvGh
 ljOWRpB/LvDuY449tXNlJuolYbxHrssBFdeEkna8a2yaXvQ8F28zNISS+2PZz3cCj/5of3we
 eVPwvjgG/Qbh1IW4ZFkGrNmwK9itdvio7hWklZtEHnRNgn5D7phJj+N3NVVt70Lzbhc4FPkV
 kWK89hcGLOIJMK6TwJBeFt7NryOhaMOhz3fzfUpO0GrtiZ48Y2OXVhWIxTR2jdWK6F4Md99z
 Oos0CLMB9dTVvb+3g66sx1p
IronPort-HdrOrdr: A9a23:ZHUwNavuVD1sNTzoGtU0F8DW7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpHnJYVcqKQkdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyIMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634184"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [XEN PATCH v8 39/47] RFC, no-VPATH: x86/boot: workaround gcc including the wrong file
Date: Thu, 25 Nov 2021 13:39:58 +0000
Message-ID: <20211125134006.1076646-40-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

we generate cmdline.S and reloc.S, so we should include those
generated file as presented in the build tree, but for file included
with quote, gcc will first look into the directory where the source
file is, that is where head.S is located and thus include cmdline.S
that is present in the source tree when it is dirty. But that the
wrong file as we want to include the file from the build tree. Work
around by using <> to include those file as if the come from the
system, as gcc will first look in directories listed with '-I' on the
command line.

So now we also need to add -I when building in the source tree.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/arch/x86/boot/Makefile | 4 +++-
 xen/arch/x86/boot/head.S   | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index 04ee9da83333..4fc6b1d8ffc2 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -8,7 +8,9 @@ targets += $(head-objs:.S=.o)
 head-objs := $(addprefix $(obj)/, $(head-objs))
 
 ifdef building_out_of_srctree
-$(obj)/head.o: CFLAGS-y += -iquote $(obj)
+$(obj)/head.o: CFLAGS-y += -I$(obj)
+else
+$(obj)/head.o: CFLAGS-y += -I$(src)
 endif
 $(obj)/head.o: $(head-objs)
 
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index dd1bea0d10b3..66acd2e9bfc0 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -772,10 +772,10 @@ trampoline_setup:
         lret
 
 cmdline_parse_early:
-#include "cmdline.S"
+#include <cmdline.S>
 
 reloc:
-#include "reloc.S"
+#include <reloc.S>
 
 ENTRY(trampoline_start)
 #include "trampoline.S"
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231291.400264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6B-0005ql-R0; Thu, 25 Nov 2021 13:47:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231291.400264; Thu, 25 Nov 2021 13:47:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6A-0005ie-Vp; Thu, 25 Nov 2021 13:47:39 +0000
Received: by outflank-mailman (input) for mailman id 231291;
 Thu, 25 Nov 2021 13:47:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0N-0007NX-Uj
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:40 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a04796b-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:38 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a04796b-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847698;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=FtVQFQfJL5CyXQ1ZSfQvYF26EeFUF5cby1srpXXTn8k=;
  b=eZqFY6otvEt7tCa2l/8ciQWddfU4yRN8YMdX8JmxiFgzm5M6ViyiJpsB
   mcjUkWdAe4OgQETYPwXLIS+VGq9OVa8UqmhBVlWOWPsdntcmhN26+2zqP
   Gf8lpsiPfFzr1q5zim9PGw5bI8e/lQSXuwkubfSKhsCSw2ObX8Fz1HG6C
   4=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: +bIhSrwkA0hCCTnI0uc+8tdcEcuFSS9cQlB329mXcfgAXawm9cc4E+2Rz+TukriUS29v6WUTOX
 2Gne4sCyhjlpCU0TAj/k1sD/QdshbEO4qe3nKQib9BNLX8LTysKThcU1rhl8wm5NyAxdem2gLL
 otA7XzrIsyLj+oUiKoMqSEZqiMPBVPRiXaNEQJ42u+0I7WDh7yYw7f5O2EhpgE1S1jPWfA06Ge
 H5bMlV+8AfqPQMWhx91XPaafKyOC9sYjWbN093bkhYx3R+R/xmHG9JS0Ls5G9QOt52Z8miLbWL
 QbXARuq/LDXCMIT6tnIWW7wR
X-SBRS: 5.1
X-MesageID: 58617688
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:vnXV363VLHi3j8tQ4/bD5Xt2kn2cJEfYwER7XKvMYLTBsI5bp2MBy
 2pKC23VP66MYGPzfognaYy0p05V7ZHcx4NnSwpqpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbNh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhs8Fsy
 4xKu5GKbQ4YMrLvnMgCbjcbOnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Ej8I/LM7tLcUHt2tp1z3xBvc6W5HTBa7N4Le02R9t1p4XQqiON
 6L1bxJAYw2bcR5+EGxGUsw1sczyoUHwcxdx/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 nnd423zDxUeNdqe4TmI6HShgqnIhyyTcI4KD7i56v5CiUWe3HAOEwYRUUanoP6/kQi1XNc3A
 0Ab9icht6Ea6F2gTt67WQax5nGDoHY0WsVSO/037hmXzajZ6BrfAXILJhZRZdpjuMIoSDgC0
 l6Sg8ivFTFpqKeSS3+W6vGTtzzaESoIKW4PYwcUQA1D5MPsyKkxhB/SStdoEIauk8b4Xzr3x
 li3QDMW3utJy5RRjuPioA6B02nESoX1ohAdyhTKXTui4A5DQIeUa5OL7XTE0NgDBdPMJrWeh
 0Qsl8+b5eEIKJiCki2RXekAdI2UC+a53C702gA2QcR4n9i50zv6JN0LvmkiTKt8Gp9cIWeBX
 aPFhe9GCHa/1lOOZLQ/XY++At9CIUPIRYW8DaC8gjajj/FMmO67EMNGORH4M4PFyhFEfUQD1
 XCzK5vEMJriIf47pAdavs9EuVPR+ggwxHnIWbfwxAm93LyVaRa9EOlebwTRP7Bpvfna8W05F
 uqz0OPQlX1ivBDWOHGLoeb/03hWRZTEOXwGg5MOLbPSSuaXMGogF+XQ0dscl39NxMxoehPz1
 ijlACdwkQOn7VWecFniQi0zOdvHAMckxVpmbHNEALpd8yV6CWpZxPxELMVfkHhO3LEL8MOYu
 NFZIZjdWaoWFWyck9nfBLGkxLFfmN2QrVrmF0KYjPIXJvaMniTFpY3peBXB7i4LAnblvMcyu
 eT4hAjaXYACV0JpC8OPMKCjyFa4vH48nuNuXhSXfokPKRu0qIU6eTbsivIXIt0XLUmRzDWty
 AvLUwwTovPAotFp/YCR17yEtYqgD8B3AlFeQzvA9b+zOCSDpjijzIZMXfymZzfYUG+oqqyua
 f8Ml6P3MeEdnUYMuI15Su45waU77trphrlb0gU7QymbMwX1UutteyDU09NOu6tBwq5ilTG3A
 k/fqMNHPbipOd/+FAJDLgQSceneh+ofnSPf7KppLRyitjN35reOTW5bIwKI1H5GNLJwPY4on
 bUhtcoR51DtgxYmKI/b3CVd9mDKJX0cSaQ38JodBdaz2AYsz1hDZ73aCzP3v87TO4kdbBFyL
 2/GnrfGipRd2lHGIig6GnX61OZAgYgD5UJRx1gYKlXVwtfIi5fbBvGKHejbmuiN8ih67g==
IronPort-HdrOrdr: A9a23:9GPbgKH7ACxPdG0tpLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5q
 aTdZUgpGfJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YYT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58617688"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Daniel De Graaf <dgdegra@tycho.nsa.gov>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [XEN PATCH v8 29/47] build: replace $(BASEDIR) and use $(srctree)
Date: Thu, 25 Nov 2021 13:39:48 +0000
Message-ID: <20211125134006.1076646-30-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

$(srctree) is a better description for the source directory than
$(BASEDIR) that has been used for both source and build directory
(which where the same).

This adds $(srctree) to a few path where make's VPATH=$(srctree) won't
apply. And replace $(BASEDIR) by $(srctree).

Introduce "$(srcdir)" as a shortcut for "$(srctree)/$(src)" as the
later is used often enough.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - merge of two patchs from v7:
        build: add $(srctree) in few key places
        build: replace $(BASEDIR) by $(srctree)
      both patch were acked
    - introduce $(srcdir) as a shortcut for $(srctree)/$(src)

 xen/Kconfig                 |  4 ++--
 xen/Makefile                |  7 +++----
 xen/Rules.mk                |  9 ++++++---
 xen/arch/x86/arch.mk        |  2 +-
 xen/build.mk                |  4 ++--
 xen/common/Makefile         |  2 +-
 xen/common/libfdt/Makefile  |  2 +-
 xen/include/Makefile        | 14 +++++++-------
 xen/scripts/Kconfig.include |  2 +-
 xen/scripts/Makefile.clean  |  5 ++++-
 xen/xsm/flask/Makefile      | 10 +++++-----
 11 files changed, 33 insertions(+), 28 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index bcbd2758e5d3..ac9a638d372e 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -14,14 +14,14 @@ config CC_IS_GCC
 
 config GCC_VERSION
 	int
-	default $(shell,$(BASEDIR)/scripts/gcc-version.sh $(CC))
+	default $(shell,$(srctree)/scripts/gcc-version.sh $(CC))
 
 config CC_IS_CLANG
 	def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)
 
 config CLANG_VERSION
 	int
-	default $(shell,$(BASEDIR)/scripts/clang-version.sh $(CC))
+	default $(shell,$(srctree)/scripts/clang-version.sh $(CC))
 
 # -fvisibility=hidden reduces -fpic cost, if it's available
 config CC_HAS_VISIBILITY_ATTRIBUTE
diff --git a/xen/Makefile b/xen/Makefile
index 2a809d577fc3..318320e79c7d 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -19,8 +19,7 @@ export PYTHON		?= $(PYTHON_INTERPRETER)
 
 export CHECKPOLICY	?= checkpolicy
 
-export BASEDIR := $(CURDIR)
-export XEN_ROOT := $(BASEDIR)/..
+export XEN_ROOT := $(CURDIR)/..
 
 abs_objtree := $(CURDIR)
 abs_srctree := $(CURDIR)
@@ -189,7 +188,7 @@ ifeq ($(TARGET_ARCH),x86)
 t1 = $(call as-insn,$(CC),".L0: .L1: .skip (.L1 - .L0)",,-no-integrated-as)
 
 # Check whether clang asm()-s support .include.
-t2 = $(call as-insn,$(CC) -I$(BASEDIR)/arch/x86/include,".include \"asm/asm-defns.h\"",,-no-integrated-as)
+t2 = $(call as-insn,$(CC) -I$(srctree)/arch/x86/include,".include \"asm/asm-defns.h\"",,-no-integrated-as)
 
 # Check whether clang keeps .macro-s between asm()-s:
 # https://bugs.llvm.org/show_bug.cgi?id=36110
@@ -329,7 +328,7 @@ ALL_OBJS-$(CONFIG_CRYPTO) += crypto/built_in.o
 
 ALL_LIBS-y                := lib/lib.a
 
-include $(BASEDIR)/arch/$(TARGET_ARCH)/arch.mk
+include $(srctree)/arch/$(TARGET_ARCH)/arch.mk
 
 export ALL_OBJS := $(ALL_OBJS-y)
 export ALL_LIBS := $(ALL_LIBS-y)
diff --git a/xen/Rules.mk b/xen/Rules.mk
index cd00f006ee8f..20dedce06cd8 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -9,13 +9,16 @@ endif
 
 src := $(obj)
 
+# shortcut for $(srctree)/$(src)
+srcdir := $(srctree)/$(src)
+
 PHONY := __build
 __build:
 
 -include $(objtree)/include/config/auto.conf
 
 include $(XEN_ROOT)/Config.mk
-include $(BASEDIR)/scripts/Kbuild.include
+include $(srctree)/scripts/Kbuild.include
 
 # Initialise some variables
 obj-y :=
@@ -58,7 +61,7 @@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $< $@
 # binfile
 # use e.g. $(call if_changed,binfile,binary-file varname)
 quiet_cmd_binfile = BINFILE $@
-cmd_binfile = $(SHELL) $(BASEDIR)/tools/binfile $(BINFILE_FLAGS) $@ $(2)
+cmd_binfile = $(SHELL) $(srctree)/tools/binfile $(BINFILE_FLAGS) $@ $(2)
 
 # Figure out what we need to build from the various variables
 # ===========================================================================
@@ -177,7 +180,7 @@ cpp_flags = $(filter-out -Wa$(comma)% -flto,$(1))
 c_flags = -MMD -MP -MF $(depfile) $(XEN_CFLAGS)
 a_flags = -MMD -MP -MF $(depfile) $(XEN_AFLAGS)
 
-include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
+include $(srctree)/arch/$(TARGET_ARCH)/Rules.mk
 
 c_flags += $(_c_flags)
 a_flags += $(_c_flags)
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 1ba488d645c0..7cfc9fd3bb1c 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -63,7 +63,7 @@ ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
 efi-check-o := arch/x86/efi/check.o
 
 # Check if the compiler supports the MS ABI.
-XEN_BUILD_EFI := $(call if-success,$(CC) $(CFLAGS) -c $(efi-check-o:.o=.c) -o $(efi-check-o),y)
+XEN_BUILD_EFI := $(call if-success,$(CC) $(CFLAGS) -c $(srctree)/$(efi-check-o:.o=.c) -o $(efi-check-o),y)
 
 # Check if the linker supports PE.
 EFI_LDFLAGS := $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10
diff --git a/xen/build.mk b/xen/build.mk
index c471312f98a3..65d8dbc13828 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -26,9 +26,9 @@ define cmd_compile.h
 	    -e 's/@@version@@/$(XEN_VERSION)/g' \
 	    -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
 	    -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
-	    -e 's!@@changeset@@!$(shell tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
+	    -e 's!@@changeset@@!$(shell $(srctree)/tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
 	    < $< > $(dot-target).tmp; \
-	sed -rf tools/process-banner.sed < .banner >> $(dot-target).tmp; \
+	sed -rf $(srctree)/tools/process-banner.sed < .banner >> $(dot-target).tmp; \
 	mv -f $(dot-target).tmp $@; \
     fi
 endef
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 30641a737231..b1e076c30b81 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -80,7 +80,7 @@ $(obj)/config.gz: $(CONF_FILE)
 
 $(obj)/config_data.o: $(obj)/config.gz
 
-$(obj)/config_data.S: $(BASEDIR)/tools/binfile FORCE
+$(obj)/config_data.S: $(srctree)/tools/binfile FORCE
 	$(call if_changed,binfile,$(obj)/config.gz xen_config_data)
 targets += config_data.S
 
diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
index 6708af12e583..75aaefa2e37f 100644
--- a/xen/common/libfdt/Makefile
+++ b/xen/common/libfdt/Makefile
@@ -6,7 +6,7 @@ OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
 obj-y += libfdt.o
 nocov-y += libfdt.o
 
-CFLAGS-y += -I$(BASEDIR)/include/xen/libfdt/
+CFLAGS-y += -I$(srctree)/include/xen/libfdt/
 
 $(obj)/libfdt.o: $(obj)/libfdt-temp.o FORCE
 	$(call if_changed,objcopy)
diff --git a/xen/include/Makefile b/xen/include/Makefile
index a3c2511f5f60..5a2b4c9f65fa 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -45,22 +45,22 @@ public-$(CONFIG_ARM) := $(wildcard $(src)/public/arch-arm/*.h $(src)/public/arch
 .PHONY: all
 all: $(addprefix $(obj)/,$(headers-y))
 
-$(obj)/compat/%.h: $(obj)/compat/%.i $(src)/Makefile $(BASEDIR)/tools/compat-build-header.py
-	$(PYTHON) $(BASEDIR)/tools/compat-build-header.py <$< $(patsubst $(obj)/%,%,$@) >>$@.new; \
+$(obj)/compat/%.h: $(obj)/compat/%.i $(src)/Makefile $(srctree)/tools/compat-build-header.py
+	$(PYTHON) $(srctree)/tools/compat-build-header.py <$< $(patsubst $(obj)/%,%,$@) >>$@.new; \
 	mv -f $@.new $@
 
 $(obj)/compat/%.i: $(obj)/compat/%.c $(src)/Makefile
 	$(CPP) $(filter-out -Wa$(comma)% -include %/include/xen/config.h,$(XEN_CFLAGS)) $(cppflags-y) -o $@ $<
 
-$(obj)/compat/%.c: $(src)/public/%.h $(src)/xlat.lst $(src)/Makefile $(BASEDIR)/tools/compat-build-source.py
+$(obj)/compat/%.c: $(src)/public/%.h $(src)/xlat.lst $(src)/Makefile $(srctree)/tools/compat-build-source.py
 	mkdir -p $(@D)
-	$(PYTHON) $(BASEDIR)/tools/compat-build-source.py $(src)/xlat.lst <$< >$@.new
+	$(PYTHON) $(srctree)/tools/compat-build-source.py $(srcdir)/xlat.lst <$< >$@.new
 	mv -f $@.new $@
 
-$(obj)/compat/.xlat/%.h: $(obj)/compat/%.h $(obj)/compat/.xlat/%.lst $(BASEDIR)/tools/get-fields.sh $(src)/Makefile
+$(obj)/compat/.xlat/%.h: $(obj)/compat/%.h $(obj)/compat/.xlat/%.lst $(srctree)/tools/get-fields.sh $(src)/Makefile
 	export PYTHON=$(PYTHON); \
 	while read what name; do \
-		$(SHELL) $(BASEDIR)/tools/get-fields.sh "$$what" compat_$$name $< || exit $$?; \
+		$(SHELL) $(srctree)/tools/get-fields.sh "$$what" compat_$$name $< || exit $$?; \
 	done <$(patsubst $(obj)/compat/%,$(obj)/compat/.xlat/%,$(basename $<)).lst >$@.new
 	mv -f $@.new $@
 
@@ -70,7 +70,7 @@ $(obj)/compat/.xlat/%.lst: $(src)/xlat.lst $(src)/Makefile
 	grep -v '^[[:blank:]]*#' $< | sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,[[:blank:]]+$*\.h[[:blank:]]*$$,,p' >$@.new
 	$(call move-if-changed,$@.new,$@)
 
-xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,^[?!][[:blank:]]+[^[:blank:]]+[[:blank:]]+,,p' $(src)/xlat.lst | uniq)
+xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,^[?!][[:blank:]]+[^[:blank:]]+[[:blank:]]+,,p' $(srcdir)/xlat.lst | uniq)
 xlat-y := $(filter $(patsubst compat/%,%,$(headers-y)),$(xlat-y))
 
 $(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) $(obj)/config/auto.conf $(src)/Makefile
diff --git a/xen/scripts/Kconfig.include b/xen/scripts/Kconfig.include
index e1f13e17207e..389a690a127a 100644
--- a/xen/scripts/Kconfig.include
+++ b/xen/scripts/Kconfig.include
@@ -40,4 +40,4 @@ $(error-if,$(failure,command -v $(CC)),compiler '$(CC)' not found)
 $(error-if,$(failure,command -v $(LD)),linker '$(LD)' not found)
 
 # gcc version including patch level
-gcc-version := $(shell,$(BASEDIR)/scripts/gcc-version.sh $(CC))
+gcc-version := $(shell,$(srctree)/scripts/gcc-version.sh $(CC))
diff --git a/xen/scripts/Makefile.clean b/xen/scripts/Makefile.clean
index 4eed31974509..53f7a76b3075 100644
--- a/xen/scripts/Makefile.clean
+++ b/xen/scripts/Makefile.clean
@@ -5,9 +5,12 @@
 
 src := $(obj)
 
+# shortcut for $(srctree)/$(src)
+srcdir := $(srctree)/$(src)
+
 clean::
 
-include $(BASEDIR)/scripts/Kbuild.include
+include $(srctree)/scripts/Kbuild.include
 
 include $(src)/Makefile
 
diff --git a/xen/xsm/flask/Makefile b/xen/xsm/flask/Makefile
index 4ac6fb8778ae..a99038cb5722 100644
--- a/xen/xsm/flask/Makefile
+++ b/xen/xsm/flask/Makefile
@@ -8,8 +8,8 @@ CFLAGS-y += -I$(obj)/include
 
 AWK = awk
 
-FLASK_H_DEPEND := $(addprefix $(src)/policy/,security_classes initial_sids)
-AV_H_DEPEND = $(src)/policy/access_vectors
+FLASK_H_DEPEND := $(addprefix $(srcdir)/policy/,security_classes initial_sids)
+AV_H_DEPEND := $(srcdir)/policy/access_vectors
 
 FLASK_H_FILES := flask.h class_to_string.h initial_sid_to_string.h
 AV_H_FILES := av_perm_to_string.h av_permissions.h
@@ -18,14 +18,14 @@ ALL_H_FILES := $(addprefix include/,$(FLASK_H_FILES) $(AV_H_FILES))
 $(addprefix $(obj)/,$(obj-y)) $(obj)/ss/built_in.o: $(addprefix $(obj)/,$(ALL_H_FILES))
 extra-y += $(ALL_H_FILES)
 
-mkflask := $(src)/policy/mkflask.sh
+mkflask := $(srcdir)/policy/mkflask.sh
 quiet_cmd_mkflask = MKFLASK $@
 cmd_mkflask = $(SHELL) $(mkflask) $(AWK) $(obj)/include $(FLASK_H_DEPEND)
 
 $(addprefix $(obj)/%/,$(FLASK_H_FILES)): $(FLASK_H_DEPEND) $(mkflask) FORCE
 	$(call if_changed,mkflask)
 
-mkaccess := $(src)/policy/mkaccess_vector.sh
+mkaccess := $(srcdir)/policy/mkaccess_vector.sh
 quiet_cmd_mkaccess = MKACCESS VECTOR $@
 cmd_mkaccess = $(SHELL) $(mkaccess) $(AWK) $(obj)/include $(AV_H_DEPEND)
 
@@ -36,7 +36,7 @@ obj-bin-$(CONFIG_XSM_FLASK_POLICY) += flask-policy.o
 $(obj)/flask-policy.o: $(obj)/policy.bin
 
 $(obj)/flask-policy.S: BINFILE_FLAGS := -i
-$(obj)/flask-policy.S: $(BASEDIR)/tools/binfile FORCE
+$(obj)/flask-policy.S: $(srctree)/tools/binfile FORCE
 	$(call if_changed,binfile,$(obj)/policy.bin xsm_flask_init_policy)
 targets += flask-policy.S
 
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231297.400282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6E-0006fd-NH; Thu, 25 Nov 2021 13:47:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231297.400282; Thu, 25 Nov 2021 13:47:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6E-0006dp-ET; Thu, 25 Nov 2021 13:47:42 +0000
Received: by outflank-mailman (input) for mailman id 231297;
 Thu, 25 Nov 2021 13:47:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0I-0007NX-8u
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:34 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 66c97b81-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66c97b81-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847693;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=W9kLV8awBaqF9dybV3WIA0DVErlqsPPM8G6KoE90GX4=;
  b=B7u1uvrtUsuQn/Olb+NZaa5u8OIRxxTpYOCzXog+peH9mT7lv3amTZAX
   s84sV6CfFv4EqCox3gc6V+SyMI6pfC4LD0fjYtG/4UDsQ1zwCHyCtd5la
   Tn2119EGjUEYrNB7Eu+FfS5w/KTzTFAlou1bgcl/D75BhZuBAkouSxSRR
   Y=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 2AtnMImGH8SE5RsQYLyIPQrcbVa0haZAFKxzaTuB54LjHbjyaXQAKsX/+6hq+wdDnSxAn0uf3I
 WonahPf+b+KuZtcfXlwvPJwzM2Z6iEWghsksqcswrOibl45VUWRs2chcaWtTi46HdXQIeIgL7K
 0UUr0105JH8vC1G7K+9/BUQBBqSoo0nqYtbStTNEfvVc7P6r1mSg5Q7ISi8B4SlAiyo5tpE7YV
 TSPeO2weMXlKyEUBQhU+UBzmP3VwFqZygDEaNdSDmvcsBO+KNAK1hp4QHf7WAsvxZdDHYky1Lq
 BLlI1BvCPmAHDheey55/9hjA
X-SBRS: 5.1
X-MesageID: 58576698
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:edXt/azUmEmlv5R6z556t+ecwSrEfRIJ4+MujC+fZmUNrF6WrkUPm
 2NJDWqAb/+NYTT3eNhyOt7npx8PvpPXmtVrG1NkpSAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRk2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt/9/z
 +pn6LG+cwM0BqLSv90nbUZlGggraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVors0lMMnsOpJZonx6xCvVJf0nXYrCU+PB4towMDIY25ATQqiAN
 ppxhTxHKzvEbxRQK2ouA4slusO5jCP0VxFdgQfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krd5HjwCBweMN2ZyBKG/2iqi+uJmjn0MKoYGaek7PdsjBuWz3YKFRwNfVKhpL+yjUvWc+xYL
 0sY6y8/t58Y/UagTsT+dxCgqXvCtRkZM/JRDO8S+AyL0rDT4QuSGi4DVDEpQMwrsoo6SCIn0
 neNnsj1Hnp/vbuNU3Wf+7yI6zSoNkA9L3IGZCICZRsI5Z/kuo5bphDFQ8tnEaW1psboAjy2y
 DePxBXSnJ1K05RNjf/iuwma3XT8/fAlUzLZ+C34UGWaxF5UarSherSn93/i18gfEY+wGwzpU
 Gc/p+CS6+UHDJeonSOLQfkQELzB28tpIAEwknY0QcB/qm3FF2qLONkJvWogfBsB3tMsIGexO
 CfuVRVtCIi/1ZdARYt+eMqPBssj1sAM/vy1B6mPPrKijnWcHTJrHR2Ch2bMgAgBc2B2yMnT3
 Kt3lu72UB4n5VxPlmbeegvk+eZDKtoC7W3SX4vn6B+szKCTYnWYIZ9cbgDRMb9ovPPV+luEm
 zq6Cydt408BONASnwGNqdJDRbz0BSRT6W/KRzx/KbfYf1sO9JAJAP7N27IxE7GJbIwO/tokC
 kqVAxcCoHKm3CWvAVzTNhhLNeO+Nb4i/ClTFXF9Yj6VN40LPN/HAFE3LMBsI9HKNYVLkJZJc
 hXyU5naX6kUFG2Yo291gFuUhNUKSSlHTDmmZ0KNCAXTtbY5L+AQ0tO7LAbp6gcUCS+76Zk3r
 7G6j1uJSpsfXQVySs3Rbav3nV+2uHEcnsN0XlfJfYYPKBm9rtAyJnyjlOIzLuENNQ7HmmmQ2
 TGJDEpKvuLKuYI0roXE3PjWs4ezHuJiNUNGBG2Hv62uPCzX8zP7k49NWeqFZx7HU2bw9Pnwb
 OlZ1aikYvYGgExLo8x3FLMylfAy4N7mprl7yAV4HSqUMwT3W+04enTfhJtBrKxAwLNdqDCaY
 EPX94kII6iNNePkDEUVeFgvYNOc2KxGgTLV9/k0fhn3vXcl4LqdXExOFBCQkygBfqBtOYYoz
 Op96s4b7wuz1kgjPtqc130G8m2NKjoLUrk9t4FcC4ju01J5xlZHaJ3aKyn3/JDQNIkcbhh0e
 meZ1PjYmrBR5kveaH5iR3HC0N1UiYkKpB0XnkQJIE6Em4adi/I6tPGLHe/bkuiBIs177t9O
IronPort-HdrOrdr: A9a23:FOlTQ6ivXU3U8GWEG0Uw5+Bjg3BQXuIji2hC6mlwRA09TySZ//
 rBoB19726TtN9xYgBZpTnuAsm9qB/nmaKdpLNhWItKPzOW31dATrsSjrcKqgeIc0aVm9K1l5
 0QF5SWYOeAdGSS5vya3ODXKbkdKaG8gcKVuds=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58576698"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [XEN PATCH v8 27/47] build: grab common EFI source files in arch specific dir
Date: Thu, 25 Nov 2021 13:39:46 +0000
Message-ID: <20211125134006.1076646-28-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Rather than preparing the efi source file, we will make the symbolic
link as needed from the build location.

The `ln` command is run every time to allow to update the link in case
the source tree change location.

This patch also introduce "efi_common.mk" which allow to reuse the
common make instructions without having to duplicate them into each
arch.

And now that we have a list of common source file, we can start to
remove the links to the source files on clean.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - use symbolic link instead of making a copy of the source
    - introduce efi_common.mk
    - remove links to source file on clean
    - use -iquote for "efi.h" headers in common/efi

 xen/Makefile                 |  5 -----
 xen/arch/arm/efi/Makefile    |  4 ++--
 xen/arch/x86/Makefile        |  1 +
 xen/arch/x86/efi/Makefile    |  5 +----
 xen/common/efi/efi_common.mk | 12 ++++++++++++
 5 files changed, 16 insertions(+), 11 deletions(-)
 create mode 100644 xen/common/efi/efi_common.mk

diff --git a/xen/Makefile b/xen/Makefile
index 90e8191f51ce..2a809d577fc3 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -447,11 +447,6 @@ $(TARGET).gz: $(TARGET)
 $(TARGET): FORCE
 	$(Q)$(MAKE) $(build)=tools
 	$(Q)$(MAKE) $(build)=. include/xen/compile.h
-	[ -e arch/$(TARGET_ARCH)/efi ] && for f in $$(cd common/efi; echo *.[ch]); \
-		do test -r arch/$(TARGET_ARCH)/efi/$$f || \
-		   ln -nsf ../../../common/efi/$$f arch/$(TARGET_ARCH)/efi/; \
-		done; \
-		true
 	$(Q)$(MAKE) $(build)=include all
 	$(Q)$(MAKE) $(build)=arch/$(TARGET_ARCH) include
 	$(Q)$(MAKE) $(build)=. arch/$(TARGET_ARCH)/include/asm/asm-offsets.h
diff --git a/xen/arch/arm/efi/Makefile b/xen/arch/arm/efi/Makefile
index 1b1ed06feddc..57616a17cb03 100644
--- a/xen/arch/arm/efi/Makefile
+++ b/xen/arch/arm/efi/Makefile
@@ -1,4 +1,4 @@
-CFLAGS-y += -fshort-wchar
+include $(srctree)/common/efi/efi_common.mk
 
-obj-y += boot.init.o pe.init.o ebmalloc.o runtime.o
+obj-y += $(EFIOBJ-y)
 obj-$(CONFIG_ACPI) +=  efi-dom0.init.o
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index e8151bf4b111..eabd8d3919a4 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -79,6 +79,7 @@ endif
 
 # Allows "clean" to descend into boot/
 subdir- += boot
+subdir- += efi
 
 extra-y += asm-macros.i
 extra-y += xen.lds
diff --git a/xen/arch/x86/efi/Makefile b/xen/arch/x86/efi/Makefile
index ac815f02cb5e..81fda12a70ea 100644
--- a/xen/arch/x86/efi/Makefile
+++ b/xen/arch/x86/efi/Makefile
@@ -1,4 +1,4 @@
-CFLAGS-y += -fshort-wchar
+include $(srctree)/common/efi/efi_common.mk
 
 quiet_cmd_objcopy_o_ihex = OBJCOPY $@
 cmd_objcopy_o_ihex = $(OBJCOPY) -I ihex -O binary $< $@
@@ -8,9 +8,6 @@ $(obj)/%.o: $(src)/%.ihex FORCE
 
 $(obj)/boot.init.o: $(obj)/buildid.o
 
-EFIOBJ-y := boot.init.o pe.init.o ebmalloc.o runtime.o
-EFIOBJ-$(CONFIG_COMPAT) += compat.o
-
 $(call cc-option-add,cflags-stack-boundary,CC,-mpreferred-stack-boundary=4)
 $(addprefix $(obj)/,$(EFIOBJ-y)): CFLAGS-stack-boundary := $(cflags-stack-boundary)
 
diff --git a/xen/common/efi/efi_common.mk b/xen/common/efi/efi_common.mk
new file mode 100644
index 000000000000..d2845fd6b3c8
--- /dev/null
+++ b/xen/common/efi/efi_common.mk
@@ -0,0 +1,12 @@
+EFIOBJ-y := boot.init.o pe.init.o ebmalloc.o runtime.o
+EFIOBJ-$(CONFIG_COMPAT) += compat.o
+
+CFLAGS-y += -fshort-wchar
+CFLAGS-y += -iquote $(srctree)/common/efi
+
+$(obj)/%.c: $(abs_srctree)/common/efi/%.c FORCE
+	$(Q)ln -nfs $< $@
+
+clean-files += $(patsubst %.o,%.c, $(EFIOBJ-y:.init.o=.o) $(EFIOBJ-))
+
+.PRECIOUS: $(obj)/%.c
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231300.400290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6G-0006uy-83; Thu, 25 Nov 2021 13:47:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231300.400290; Thu, 25 Nov 2021 13:47:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6F-0006q0-G3; Thu, 25 Nov 2021 13:47:43 +0000
Received: by outflank-mailman (input) for mailman id 231300;
 Thu, 25 Nov 2021 13:47:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzm-0007NX-79
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:02 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 529b438c-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 529b438c-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847660;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=/8ecL57WQSeBuZo2P6i4snr54bttWa1idLLgaIXs6qQ=;
  b=Ov0TSVUwNcRF2199NxJN2DG9PyIUXQ4TIx8lTZYTKpkxbE/5/spYMrLV
   VO0X+hAs1QBj445S12pq/lq+46hc9/vie6EM2P0hT2GJy8Q4MYrP3cNGH
   G7gVX9ltf857lhsDsg3rep+N5dxfPzfDLWKUsJQx8zY9XItdK59s88v8A
   Y=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: iLs3vK6REGTPu6tzZUIOuOGnPY4tebgAJQYOOvmQr0GB7D+r5FwkQRIN8rmHfMVdwOE8ATTsZc
 /kRna3F51RqchvMgtQRzWT6ihD+fohnqNQC3PnFhT4FZCObwHMaFrmnQC2ZmgjT6SuBxC3hxIs
 ukiqItUc6B+eT8xjYlHmHzmH/dmsH9udIG/C+P90Yol9KU3eBp5fFBIy7LZaOjvIfvBwnfyWv9
 BfmjUTfpZ34KF5sV3e58iqmm9tC0Rd6WQcsui3nE8QgZtjRpJfyDLJbkF2c3UrSwEQVaQNPCza
 0UrB+3x2M/1jznwz06HKA1k8
X-SBRS: 5.1
X-MesageID: 58617651
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:MnrkOKtulovxx7cZK7+xNomjSefnVP1ZMUV32f8akzHdYApBsoF/q
 tZmKTqDPqmIMDH0fIgjbIS2pEkB7MWDy4AxTwQ4rXtnHn4R+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24XhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplnrXvRzcYDL31osMbYjN5PCBnZvF+9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DNYUDunZm3HfBAOwvW5zrSKTW/95Imjw3g6iiGN6DN
 5RANmQyNXwsZTVfOHUuVLw1vN23jz7ASW1hi0y2no4etj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKgoBKNWVxD6B83StruzChyX2XMQVDrLQ3vRnmkGJz2ofThgfT0KmoOKRg1S7HdlYL
 iQ8xC0qqqQj8V2xefP0VRa4vX2sswYVXpxbFOhSwAOHx7fQ4g2ZLnMZVTMHY9sj3OcmSDpv2
 lKXktfBAT10rKbTWX+b7q2Trz65JW4SN2BqTS0ZSQoI5fHzrYd1iQjAJv5iD6ydntDzASv3w
 T2BsG45nbp7sCIQ//zlpxad2Wvq/8WXCF5ujunKYo67xihQO4CVVr640GL868dqDamYVwLdh
 HdRzqBy89syJZ2KkSWMRsAEE7eo++uJPVXgvLJ/I3Uy32/zoiD+JOi89Bk7fR40aZhcJVcFd
 WeK4VsJjKK/KkdGekOej2iZL80xhZbtGt3+Phw/RoofO8MhHONrEcwHWKJx44wPuBRz+U3cE
 c3CGSpJMZr9If46pAdav89HjdcWKtkWnAs/v6zTwRW9yqa5b3WIU7oDO1bmRrlnt/zb/1SFo
 4cFaZriJ/BjvArWOHe/zGLuBQpScShT6W7e96S7idJv0iI5QTp8Wpc9MJsqepB/nrQ9qws71
 irVZ6Os83Km3SevAVzTMhhLMeqzNb4i/SNTFXF9Zj6Ahil8CbtDGY9CLvPbi5F8r7c9pRO1J
 tFYE/i97gNnFm6apm9DNMal9+SPtn2D3GqzAsZsWxBnF7YIeuAD0oWMktLH+HZcAyypm9E5p
 rH8hArXTYBaH1ZpDdrMaeLpxFS05CBPlOV3VkrOA99SZESzr9Q6d32v1qc6c5MWNBHO5jqGz
 ALKUx0WkvbA/t0u+97TiKHa84rwS7liHlBXFnXw5KqtMXWI5XKqxIJNCb7afT3UWG7u1r+lY
 OFZk6P1PPEdxQ4YuItgCbd7i6k54oK39bNdyw1lGlTNbkiqVew8ciXXg5EXu/QUlLFDuAawV
 kaewfVgOO2EaJH/DVocBAs5deDfh/sarSbfsKYuK0Lg6S4poLfeCRdOPwOBgTB2JaduNN932
 v8ovcMb5lDtihcuNdra3ClY+37Vcy4FWqQj8JobHJXqmkwgzVQbOc7QDSr/4ZeubdRQMxZ1f
 m/I1fSa37kMlFDfd3cTFGTW2bsPjJsDjxlG0VseKgnbgdHCnPI2gEVc/Dlfot65FfmbPzaf4
 lRWCnA=
IronPort-HdrOrdr: A9a23:Km9AVqGjTHFjroD2pLqE7seALOsnbusQ8zAXP0AYc3Nom6uj5q
 eTdZUgpGbJYVkqOU3I9ersBEDEewK/yXcX2/h0AV7BZmnbUQKTRekIh7cKgQeQfhEWntQts5
 uIGJIRNDSfNzRHZL7BkWqFL+o=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58617651"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>
Subject: [XEN PATCH v8 14/47] build: rename __LINKER__ to LINKER_SCRIPT
Date: Thu, 25 Nov 2021 13:39:33 +0000
Message-ID: <20211125134006.1076646-15-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

For two reasons: this macro is used to generate a "linker script" and
is not by the linker, and name starting with an underscore '_' are
supposed to be reserved, so better avoid them when not needed.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/Rules.mk                      | 2 +-
 xen/arch/arm/include/asm/config.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index 4624739ca7e2..d32fec0ae037 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -256,7 +256,7 @@ $(obj)/%.s: $(src)/%.S FORCE
 
 # Linker scripts, .lds.S -> .lds
 quiet_cmd_cpp_lds_S = LDS     $@
-cmd_cpp_lds_S = $(CPP) -P $(call cpp_flags,$(a_flags)) -D__LINKER__ -MQ $@ -o $@ $<
+cmd_cpp_lds_S = $(CPP) -P $(call cpp_flags,$(a_flags)) -DLINKER_SCRIPT -MQ $@ -o $@ $<
 
 targets := $(filter-out $(PHONY), $(targets))
 
diff --git a/xen/arch/arm/include/asm/config.h b/xen/arch/arm/include/asm/config.h
index c7b77912013e..2aced0bc3b8b 100644
--- a/xen/arch/arm/include/asm/config.h
+++ b/xen/arch/arm/include/asm/config.h
@@ -191,7 +191,7 @@ extern unsigned long frametable_virt_end;
 #define watchdog_disable() ((void)0)
 #define watchdog_enable()  ((void)0)
 
-#if defined(__ASSEMBLY__) && !defined(__LINKER__)
+#if defined(__ASSEMBLY__) && !defined(LINKER_SCRIPT)
 #include <asm/asm_defns.h>
 #include <asm/macros.h>
 #endif
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231301.400297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6I-0007HT-0S; Thu, 25 Nov 2021 13:47:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231301.400297; Thu, 25 Nov 2021 13:47:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6H-0007Da-HU; Thu, 25 Nov 2021 13:47:45 +0000
Received: by outflank-mailman (input) for mailman id 231301;
 Thu, 25 Nov 2021 13:47:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0R-00076i-MN
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:43 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c38fcfb-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:42 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c38fcfb-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847702;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=OsKJvcTnM3GGC2/leNBoxzvD1HK4BcTwvqLEsU81iFo=;
  b=QVNcpslMLuk8zIuy6mpmIU5RHsJBZgsH9PozpfVpPltSdtMSkj6wjsSh
   Hb0F918twzOyWKGUfk4Jm9Yy900MW0ZRwq2lGAd8dIgpMq6AAroj+Tz8u
   CKVtc+JHssbuhp4qrxfyJ7yaCrwW25qkgl7GuB017/fLVgIw2QaKW2/Vr
   c=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: kjW6lYmqIINNFnmqMeEW+BPRR5neMNRzbOvX7xVTZ6Q/QIYJ7w2aYpztOjuDGNhr0Q1Jh6QxMT
 yAbJPBuRj0oLl71wXqkFc42qU4Jph9b7y9o41KCjqrJuWsWo4GQAo//SFmUTnZV2Uix5chyvZR
 jW+w1DBJ7Dry56KffZL5wytNKWxy7AjTYIZRpUOExVpHaHj3rMJwaNHtQ1TZY72OL+49Koul++
 aRyg+gWMz0/buTBMdTlezpZs7v9aRhRRsO2dIUUsNyJWY/swt9I2RqrIiLbsON9/COFbkO+K3b
 p8ezde/N4Q0M6oaRtOCq5Kjn
X-SBRS: 5.1
X-MesageID: 58637871
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:YLXLKKmUtERygeINd4HDZhno5gx8IURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIbWGCDPa3eYzSnf4wiO4u09EMGsJLcytZrQQVqqihkESMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q12YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 P5st7mBbh85BfePoPgwTEdETiZBL7ITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBMDtIIMYvGAm1TzDBOwqaZvCX7/L9ZlT2zJYasVmQKaAP
 JVJNmMHgBLoQixwZU9QNJ4E2/qkgGLnTQUF8V2vqv9ii4TU5FMoi+W8WDbPQfSIWMFUk0Cwt
 m/AuWPjDXkyL8eDwDCI9natgO7nni7hXo8WUrqi+ZZCn1m71mEVThoMWjOTsfS/z0KzRd9bA
 0gV4TY167g/8lSxSdvwVAH+p2SL1jYdRNh4A+A88BuKyKff/0CeHGdsZjxLZcEitcQ2bSc3z
 VLPlNTsbQGDq5XMFyjbrO3N62rvZ25FdgfueBPoUyMuwtvGkaYrnimVDe5/PbHrkoDyJiPvl
 mXiQDcFu50fissC1qOe9F/Bgi6xqpWhcjPZ9jk7TUr+sFonOdfNi5iArAGCsK0edNrxokyp5
 SBcw6CjAPYy4YZhfcBnaMEEB/mX6vmMK1UwanY/TsB6p1xBF5NOFL28AQ2Sxm81ba7omhezO
 Sc/XD+9A7cJYROXgVdfOd7ZNijT5fGI+S7Zfv7VdMFSRZN6aRWK+ipjDWbJgTuyzxd9wfFuY
 8nKGSpJMZr9If45pAdaus9HieN7rszA7T+7qW/HI+SPjuPFOS/9pUYtO1qSdOEphJ5oUy2Om
 +uzw/Cikk0FOMWnO3G/2ddKcTgicChqbbir+pc/XrPSfWJb9JQJVqa5LUUJINc+wcy4V47go
 xmAZ6Ov4Aal2CCcd1zVMisLhXGGdc8XkE/X9BcEZT6As0XPq672hEvGX5doL7Qh6sJ5yvt4E
 6sMd8maW6wdQTXb4TUNK5L6qdU6JhisgAuPOQujYSQ+IME8F1CYpIe8c1u97jQKAwq2qdA6/
 ++q2DTETMdRXA9lFsvXNq6ilgvjoXgHletudELUOd0PKl70+Y1nJnWp3P86Ks0BMzvZwT6e2
 1rECBsUv7CV8YQ07MPIleaPqILwS7lyGU9THm/667eqNHaFojr/kNEYCOvRJGLTTmL5/qmmd
 N559fCkPa1VhktOvqp9D61vkfA06ezwquII1Q9jBnjKMQimU+syPnmc0MBTnaRR3bsF6xCuU
 0eC99QGa7WEPMTpTAwYKAY/N7nR0PgVnn/Z7OgvIVW87yhypeLVXUJXNhiKqSpcMLoqb991n
 bZ/4JYbu16llx4nEtealSQFpW2DI0sJX7gjqpxHUpTgjRAmyw0abJHRYsMsDEpjtzmY3pEWH
 wKp
IronPort-HdrOrdr: A9a23:T7lLD6AheAJ13f/lHemq55DYdb4zR+YMi2TC1yhKJiC9Ffbo8P
 xG/c5rrCMc5wxxZJhNo7290ey7MBHhHP1OkO0s1NWZPDUO0VHAROoJ0WKh+UyEJ8SXzJ866U
 4KScZD4bPLYWSS9fyKgzWFLw==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58637871"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 31/47] build: specify source tree in include/ for prerequisite
Date: Thu, 25 Nov 2021 13:39:50 +0000
Message-ID: <20211125134006.1076646-32-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

When doing an out-of-tree build, and thus setting VPATH,
GNU Make 3.81 on Ubuntu Trusty complains about Circular dependency of
include/Makefile and include/xlat.lst and drop them. The build fails
later due to headers malformed.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - make use of the new "$(srcdir)" shortcut
    - move the patch ahead of the problematic patch:
        build: adding out-of-tree support to the xen build

 xen/include/Makefile | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/xen/include/Makefile b/xen/include/Makefile
index 6e80ef276fd9..f64bc293c7f4 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -45,19 +45,19 @@ public-$(CONFIG_ARM) := $(wildcard $(srcdir)/public/arch-arm/*.h $(srcdir)/publi
 .PHONY: all
 all: $(addprefix $(obj)/,$(headers-y))
 
-$(obj)/compat/%.h: $(obj)/compat/%.i $(src)/Makefile $(srctree)/tools/compat-build-header.py
+$(obj)/compat/%.h: $(obj)/compat/%.i $(srcdir)/Makefile $(srctree)/tools/compat-build-header.py
 	$(PYTHON) $(srctree)/tools/compat-build-header.py <$< $(patsubst $(obj)/%,%,$@) >>$@.new; \
 	mv -f $@.new $@
 
-$(obj)/compat/%.i: $(obj)/compat/%.c $(src)/Makefile
+$(obj)/compat/%.i: $(obj)/compat/%.c $(srcdir)/Makefile
 	$(CPP) $(filter-out -Wa$(comma)% -include %/include/xen/config.h,$(XEN_CFLAGS)) $(cppflags-y) -o $@ $<
 
-$(obj)/compat/%.c: $(src)/public/%.h $(src)/xlat.lst $(src)/Makefile $(srctree)/tools/compat-build-source.py
+$(obj)/compat/%.c: $(src)/public/%.h $(srcdir)/xlat.lst $(srcdir)/Makefile $(srctree)/tools/compat-build-source.py
 	mkdir -p $(@D)
 	$(PYTHON) $(srctree)/tools/compat-build-source.py $(srcdir)/xlat.lst <$< >$@.new
 	mv -f $@.new $@
 
-$(obj)/compat/.xlat/%.h: $(obj)/compat/%.h $(obj)/compat/.xlat/%.lst $(srctree)/tools/get-fields.sh $(src)/Makefile
+$(obj)/compat/.xlat/%.h: $(obj)/compat/%.h $(obj)/compat/.xlat/%.lst $(srctree)/tools/get-fields.sh $(srcdir)/Makefile
 	export PYTHON=$(PYTHON); \
 	while read what name; do \
 		$(SHELL) $(srctree)/tools/get-fields.sh "$$what" compat_$$name $< || exit $$?; \
@@ -65,7 +65,7 @@ $(obj)/compat/.xlat/%.h: $(obj)/compat/%.h $(obj)/compat/.xlat/%.lst $(srctree)/
 	mv -f $@.new $@
 
 .PRECIOUS: $(obj)/compat/.xlat/%.lst
-$(obj)/compat/.xlat/%.lst: $(src)/xlat.lst $(src)/Makefile
+$(obj)/compat/.xlat/%.lst: $(srcdir)/xlat.lst $(srcdir)/Makefile
 	mkdir -p $(@D)
 	grep -v '^[[:blank:]]*#' $< | sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,[[:blank:]]+$*\.h[[:blank:]]*$$,,p' >$@.new
 	$(call move-if-changed,$@.new,$@)
@@ -73,7 +73,7 @@ $(obj)/compat/.xlat/%.lst: $(src)/xlat.lst $(src)/Makefile
 xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,^[?!][[:blank:]]+[^[:blank:]]+[[:blank:]]+,,p' $(srcdir)/xlat.lst | uniq)
 xlat-y := $(filter $(patsubst compat/%,%,$(headers-y)),$(xlat-y))
 
-$(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) $(obj)/config/auto.conf $(src)/Makefile
+$(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) $(obj)/config/auto.conf $(srcdir)/Makefile
 	cat $(filter %.h,$^) >$@.new
 	mv -f $@.new $@
 
@@ -100,7 +100,7 @@ PUBLIC_C99_HEADERS := $(addprefix $(public-hdrs-path)/, $(public-c99-headers))
 $(src)/public/io/9pfs.h-prereq := string
 $(src)/public/io/pvcalls.h-prereq := string
 
-$(obj)/headers.chk: $(PUBLIC_ANSI_HEADERS) $(src)/Makefile
+$(obj)/headers.chk: $(PUBLIC_ANSI_HEADERS) $(srcdir)/Makefile
 	for i in $(filter %.h,$^); do \
 	    $(CC) -x c -ansi -Wall -Werror -include stdint.h \
 	          -S -o /dev/null $$i || exit 1; \
@@ -108,7 +108,7 @@ $(obj)/headers.chk: $(PUBLIC_ANSI_HEADERS) $(src)/Makefile
 	done >$@.new
 	mv $@.new $@
 
-$(obj)/headers99.chk: $(PUBLIC_C99_HEADERS) $(src)/Makefile
+$(obj)/headers99.chk: $(PUBLIC_C99_HEADERS) $(srcdir)/Makefile
 	rm -f $@.new
 	$(foreach i, $(filter %.h,$^),                                        \
 	    echo "#include "\"$(i)\"                                          \
@@ -118,7 +118,7 @@ $(obj)/headers99.chk: $(PUBLIC_C99_HEADERS) $(src)/Makefile
 	    || exit $$?; echo $(i) >> $@.new;)
 	mv $@.new $@
 
-$(obj)/headers++.chk: $(PUBLIC_HEADERS) $(src)/Makefile
+$(obj)/headers++.chk: $(PUBLIC_HEADERS) $(srcdir)/Makefile
 	rm -f $@.new
 	if ! $(CXX) -v >/dev/null 2>&1; then                                  \
 	    touch $@.new;                                                     \
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231302.400306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6J-0007mF-OU; Thu, 25 Nov 2021 13:47:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231302.400306; Thu, 25 Nov 2021 13:47:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6J-0007ik-CK; Thu, 25 Nov 2021 13:47:47 +0000
Received: by outflank-mailman (input) for mailman id 231302;
 Thu, 25 Nov 2021 13:47:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF07-00076i-0u
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:23 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f243f17-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f243f17-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847681;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=d7L+BRvnt90Hp6EYFj08PtOu1B6y0dzvxWI579G6mSU=;
  b=AUBcTIRS/MqUSTNhoo/FvR4nGQZtz1AaMGfzGeKV8skS0SWqy3VOk9ev
   nKr7shmRjvgBBvHIF12klRZIJFxxgsNi8XzMhFJE3XFVoljGc5wPe6PDN
   GA6qqlYnZFf/XOIdeTctGIAkmvlis0O2/JSO4Poa/KhchLFaztaZjfzPp
   U=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: xcR41wA12mhyuG6hnSih+BSTv6MWqH3VHV7A01w/odP3DYU/Vw0g1Yvp+38plcAxI/Ux6QuDCe
 z1kAV9vdIF+jPFTIaeZ7NcAqKhWxb/WJPedjE/5wqBKHUwr1sjb6t+k9jDTY0VydidkqB+Pvtu
 2g7+4n2+/kX4NqJY3zFGlOZ01e1usjKC/2ZrCrGKghtRbE3c7GZx+BjiV319G3GNEZ7GLDMKCV
 TQiY3zQWTCNcDiA+hZ393lzAzGfO8JwM1frmuwkwSdD7GjRws0GD3teA+iDoiQT0gIctkGKKN9
 oIEJgg2ilJXerFkfaHlcq9Uq
X-SBRS: 5.1
X-MesageID: 60634148
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:65SiDqmXsfM632oFlo0p07vo5gz/IERdPkR7XQ2eYbSJt1+Wr1Gzt
 xJMWGyFbvmOMWX3Ktt0YIizp0MPu5aByodrGwJvqShhQSMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q12YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 JZmu76QSwduB5fdisoWfyJJHwtQLLITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBMDtIIMYvGAm1TzDBOwqaZvCX7/L9ZlT2zJYasVmQ66AP
 JZANWoHgBLoczNrGkU6AZIHwdyIvynkUwZKhHGOjP9ii4TU5FMoi+W8WDbPQfSASN9JhE+eq
 iTD9n7gHxABHNWFzHyO9XfErtHImST3SYcDDoqS//RhgECQ7mELARhQXly+ydG6jUikUt4ZN
 E0Q+QIpt6E58EHtRd74NzW0uGWBvwIcc9NIHvcm9RqWza7J/weeAHNCRTlEAPQqu8M7SiYj/
 kOYlNPuQzp0ufuaTmz13qiQhSO/P24SN2BqTS0OQBYB4tLjiJoulR+JRdFmeIalg9uwFTzuz
 jSiqCklm65VncMNz7+8/13Mn3SrvJehZg8q5C3HU2S99AR7aYW5IYuy5jDz9u1cJYyUSl2Au
 nksmMWE6u0KS5aXm0SlQvgJHbyvz+aINnvbm1EHInU6323zoTj5J9kWuWwgYhcyWioZRdP3S
 Az4tyFx5p8UBUG7f4F8T7mgB+4E3Le1QLwJScvoRtZJZ5FwciqO8ydveVOc0gjRraQ8rU0sE
 czFKJjxVB72HYwilWPrHLlFjdfH0whnnTuLLa0X2ShLxlZ3iJS9bb4eeGWDYekihE9viFWEq
 o0PXydmJvg2bQEfXsU12dJMRbzpBSJibXwTlyCwXrTeSjeK4El7V5fsLUoJIuSJZZh9mObS5
 W2aUURF0lf5jnCvAVzUMS88N+K/Dccl8yNT0ckQ0bGAgSZLXGpSxP1HK8tfkUcPqISPMsKYv
 9FaIp7dU5yjuxzM+igHbImVkWCRXE/DuO56BAL8OGJXV8c5H2Tho4a4FiOypHhmJnfm7qMW/
 uz/vj43tLJeHmyO+u6NM6nxp75w1FBA8N9Ps7zgfoMOJR6yqdcycEQcTJYfeqkxFPkK/RPCv
 y7+PPvSjbOlT1Yd/IabiKaagZ2uFuciTENWE3OCteS9NDXA/3rlyohFCb7acTfYXWLy2aOje
 eQKkK2sbKxZxA5H49hmDrJm7aMi/N+z9bVU+RtpQSfQZFOxB7I+fnTfhZtTtrdAz6NysBetX
 h7d4cFTPLiEYZu3EFMYKAc/QP6E0PUYxmvb4fgveR2o7y5r5ruXF05VOkDU2iBaKbJ0NqIjw
 Psg55FKu1Du1EJyP4/f3C5O9mmKIngRaIkdt8kXUN3xlw4m6lBeepiAWCX4146CNodXOU4wL
 z7K2Keb3+ZAxlDPemYYHGTW2bYPnowHvR1HwQNQJ1mNndaZ1PY70AcIrGYyRwVRiB5Gz/hyK
 i5gMEgsffeC+DJhhc5iWWGwGl4eWE3FqxKpk1ZZxnfES0SIV3DWKDxvMOmAy0kV7mZAc2UJ5
 7qf0mvkDW7nccyZMvHegqK5RygPleBMyzA=
IronPort-HdrOrdr: A9a23:ZJpig67Q2tvvGMQffAPXwM7XdLJyesId70hD6qhwISY7TiX+rb
 HIoB17726MtN9/YhAdcLy7VZVoBEmsl6KdgrNhWYtKPjOHhILAFugLhuHfKn/bakjDH4ZmpM
 FdmsNFZuEYY2IXsS+D2njaL+od
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634148"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, "Ross
 Lagerwall" <ross.lagerwall@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [XEN PATCH v8 22/47] build: clean-up "clean" rules of duplication
Date: Thu, 25 Nov 2021 13:39:41 +0000
Message-ID: <20211125134006.1076646-23-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

All those files to be removed are already done in the main Makefile,
either by the "find" command or directly (for $(TARGET).efi).

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/Makefile                | 2 +-
 xen/arch/arm/Makefile       | 1 -
 xen/arch/x86/Makefile       | 5 ++---
 xen/test/livepatch/Makefile | 2 +-
 xen/xsm/flask/Makefile      | 2 +-
 5 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index efd7538099f3..86bcedd7fa5b 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -428,7 +428,7 @@ _clean:
 		-o -name ".*.o.tmp" -o -name "*~" -o -name "core" \
 		-o -name '*.lex.c' -o -name '*.tab.[ch]' \
 		-o -name "*.gcno" -o -name ".*.cmd" -o -name "lib.a" \) -exec rm -f {} \;
-	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map *~ core
+	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map
 	rm -f asm-offsets.s arch/*/include/asm/asm-offsets.h
 	rm -f .banner .allconfig.tmp include/xen/compile.h
 
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index fd24f0212ffa..3ce5f1674f6f 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -120,4 +120,3 @@ $(obj)/dtb.o: $(patsubst "%",%,$(CONFIG_DTB_FILE))
 clean::
 	rm -f $(obj)/xen.lds
 	rm -f $(BASEDIR)/.xen-syms.[0-9]*
-	rm -f $(TARGET).efi
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 873b32cc6945..0b0ef6205bc1 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -258,9 +258,8 @@ $(obj)/efi/mkreloc: $(src)/efi/mkreloc.c
 
 .PHONY: clean
 clean::
-	rm -f *.lds boot/*.o boot/*~ boot/core boot/mkelf32
+	rm -f *.lds boot/mkelf32
 	rm -f asm-macros.i $(BASEDIR)/arch/x86/include/asm/asm-macros.*
-	rm -f $(BASEDIR)/.xen-syms.[0-9]* boot/.*.d $(BASEDIR)/.xen.elf32
+	rm -f $(BASEDIR)/.xen-syms.[0-9]* $(BASEDIR)/.xen.elf32
 	rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/mkreloc
 	rm -f boot/cmdline.S boot/reloc.S boot/*.lnk boot/*.bin
-	rm -f note.o
diff --git a/xen/test/livepatch/Makefile b/xen/test/livepatch/Makefile
index afb8d589ecae..adb484dc5d2c 100644
--- a/xen/test/livepatch/Makefile
+++ b/xen/test/livepatch/Makefile
@@ -162,4 +162,4 @@ uninstall:
 
 .PHONY: clean
 clean::
-	rm -f *.o .*.o.d *.livepatch config.h expect_config.h
+	rm -f *.livepatch config.h expect_config.h
diff --git a/xen/xsm/flask/Makefile b/xen/xsm/flask/Makefile
index 49cf730cf098..832f65274cc0 100644
--- a/xen/xsm/flask/Makefile
+++ b/xen/xsm/flask/Makefile
@@ -51,4 +51,4 @@ $(obj)/policy.bin: FORCE
 
 .PHONY: clean
 clean::
-	rm -f $(ALL_H_FILES) *.o $(DEPS_RM) policy.* $(POLICY_SRC) flask-policy.S
+	rm -f $(ALL_H_FILES) policy.* $(POLICY_SRC) flask-policy.S
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231308.400333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6P-0000eI-Kp; Thu, 25 Nov 2021 13:47:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231308.400333; Thu, 25 Nov 2021 13:47:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6O-0000ZX-IM; Thu, 25 Nov 2021 13:47:52 +0000
Received: by outflank-mailman (input) for mailman id 231308;
 Thu, 25 Nov 2021 13:47:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0A-0007NX-5Z
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:26 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 611e7cb7-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 611e7cb7-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847684;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=ObpVRqOSVUZVbZvKGeecU4tcVcjIvrlnjGlAoQ30NGE=;
  b=Qza5s+vYB9/u2LpE52KTQkcRfYF3dwZlEMDW7RJ4Wfe3PHyd4IXWOL/c
   l/i2ihkEFR/Bez+xV/kH9IPF2tv7Na7R9dbdzx7XYsN7rT3LUxURZqYhZ
   qEuUb57u9z0PYB7T+aETLtd3iTIC8RdBBTtdoIDgxY36fJ3uHc6xlx3vG
   A=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: +CeJllXYb1/n54e25C6MAweqAlhFeSD7maoeJInops44rxq6go37uZC2dOpOjSJEWlgGnnFetu
 9TA13vmjsvW8f9hZ7VsZECaUDD/FHT+slYZ8SBJGa6ZBPeVB3h76WWI21iRBJtnMT13i4Dg/qW
 VG/RzdN/76vEpt1ddGleD2BBx+guR0yWhGeaB01eD5Za8HwWcaM+vnoGo/dHh40YS3pMXeyRxr
 RlynoO7Tx3OF8YNBvvBIf8Wff8Eu6kublz9H8Q0IcYA3MIsaM1c+ArsfBg60D2lb8tMD9ddZe/
 U0RW3h9/U3xonQVQ3U5M2TL+
X-SBRS: 5.1
X-MesageID: 58135473
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:bY3KEql69tpLo1WFVlKqWFjo5gz/IERdPkR7XQ2eYbSJt1+Wr1Gzt
 xIXCjuPa/yKMGuhfIxwOovkpBlUvJSDyd5hHAY5pS5jESMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q12YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 Ilsn82LCh4xB7znh+QWdQVyATphIrITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBMDtIIMYvGAm1TzDBOwqaZvCX7/L9ZlT2zJYasVmQKaHP
 JdFNmEHgBLoSjBqH1keCYoCtb2xhELGWA12hFuVnP9ii4TU5FMoi+W8WDbPQfSASN9JhE+eq
 iTD9n7gHxABHNWFzHyO9XfErtHImST3SYcDDoqS//RhgECQ7mELARhQXly+ydG6jUikUt4ZN
 E0Q+QIpt6E58EHtRd74NzW0uGWBvwIcc9NIHvcm9RqWza7J/weeAHNCRTlEAPQqu8M7SiYj/
 kOYlNPuQzp0ufuaTmz13qiQhSO/P24SN2BqTS4bTyMV7t/7uoYxgxnTCNF5H8adntDzXD393
 T2OhCw/nKkIy94G0b2h+lLKiC7qoYLGJiY37AjKWmOu7itieZWoIYev7DDz9u1cJYyUSl2Au
 nksmMWE6u0KS5aXm0SlQvgJHbyvz+aINnvbm1EHInU6323zoTj5J9kWuWwgYhcyWioZRdP3S
 BPyk1Jqp4ZLBWqBcq98RZ6bGd810re1QLwJScvoRtZJZ5FwciqO8ydveVOc0gjRraQ8rU0sE
 czFKJjxVB72HYwilWPrHLlFjdfH0whnnTuLLa0X2ShLxlZ3iJS9bb4eeGWDYekihE9viFWEq
 o0PXydmJvg2bQEfXsU12dJMRbzpBSJibXwTlyCwXrTeSjeK4El7V5fsLUoJIuSJZZh9mObS5
 W2aUURF0lf5jnCvAVzUMS88N+K/Dccl8yNT0ckQ0bGAgSZLXGpSxP1HK8tfkUcPqISPMsKYv
 9FaIp7dU5yjuxzM+igHbImVkWCRXE/DuO56BAL8OGJXV8c5H2Tho4a4FiOypHhmJnfm7qMW/
 uz/vj43tLJeHmyO+u6NM6nxp75w1FBA8N9Ps7zgfoMOJR6yqdcycEQcTJYfeqkxFPkK/RPCv
 y7+PPvSjbOlT1Yd/IabiKaagZ2uFuciTENWE3OCteS9NDXA/3rlyohFCb7acTfYXWLy2aOje
 eQKkK2sbKxZxA5H49hmDrJm7aMi/N+z9bVU+RtpQSfQZFOxB7I+fnTfhZtTtrdAz6NysBetX
 h7d4cFTPLiEYZu3EFMYKAc/QP6E0PUYxmvb4fgveR2o7y5r5ruXF05VOkDU2iBaKbJ0NqIjw
 Psg55FKu1Du1EJyP4/f3C5O9mmKIngRaIkdt8kXUN3xlw4m6lBeepiAWCX4146CNodXOU4wL
 z7K2Keb3+ZAxlDPemYYHGTW2bYPnowHvR1HwQNQJ1mNndaZ1PY70AcIrGYyRwVRiB5Gz/hyK
 i5gMEgsffeC+DJhhc5iWWGwGl4eWE3FqxKpk1ZZxnfES0SIV3DWKDxvMOmAy0kV7mZAc2UJ5
 7qf0mvkDW7nccyZMvHegqK5RygPleBMyzA=
IronPort-HdrOrdr: A9a23:phGQ26xlNbIkAKNOYXLnKrPwFL1zdoMgy1knxilNoRw8SKKlfq
 eV7ZImPH7P+U4ssR4b+exoVJPtfZqYz+8R3WBzB8bEYOCFghrKEGgK1+KLqFeMJ8S9zJ846U
 4JSdkGNDSaNzlHZKjBjzVQa+xQouW6zA==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58135473"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, "Ross
 Lagerwall" <ross.lagerwall@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [XEN PATCH v8 23/47] build: rework "clean" to clean from the root dir
Date: Thu, 25 Nov 2021 13:39:42 +0000
Message-ID: <20211125134006.1076646-24-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This will allow "clean" to work from an out-of-tree build when
it will be available.

Some of the file been removed in current "clean" target aren't added
to $(clean-files) because they are already listed in $(extra-) or
$(extra-y).

Also start to clean files listed in $(targets). This allows to clean
"common/config_data.S" and "xsm/flask/flask-policy.S" without
having to list them a second time.

Also clean files in "arch/x86/boot" from that directory by allowing
"clean" to descend into the subdir by adding "boot" into $(subdir-).

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - fix comment for the shorthand
    - move this patch earlier in the series
    - replace some BASEDIR by objtree
    - start to clean $(targets) files.

 xen/Makefile                | 24 ++++++++++++------------
 xen/arch/arm/Makefile       |  5 +----
 xen/arch/x86/Makefile       | 20 ++++++++++++--------
 xen/arch/x86/boot/Makefile  |  2 ++
 xen/common/Makefile         |  3 +--
 xen/include/Makefile        |  4 +---
 xen/scripts/Kbuild.include  |  4 ++--
 xen/scripts/Makefile.clean  | 14 +++++++++++---
 xen/test/livepatch/Makefile |  4 +---
 xen/xsm/flask/Makefile      |  4 +---
 10 files changed, 44 insertions(+), 40 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index 86bcedd7fa5b..deae319c8a5a 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -412,18 +412,18 @@ _debug:
 
 .PHONY: _clean
 _clean:
-	$(MAKE) $(clean) tools
-	$(MAKE) $(clean) include
-	$(MAKE) $(clean) common
-	$(MAKE) $(clean) drivers
-	$(MAKE) $(clean) lib
-	$(MAKE) $(clean) xsm
-	$(MAKE) $(clean) crypto
-	$(MAKE) $(clean) arch/arm
-	$(MAKE) $(clean) arch/riscv
-	$(MAKE) $(clean) arch/x86
-	$(MAKE) $(clean) test
-	$(MAKE) $(clean) tools/kconfig
+	$(Q)$(MAKE) $(clean)=tools
+	$(Q)$(MAKE) $(clean)=include
+	$(Q)$(MAKE) $(clean)=common
+	$(Q)$(MAKE) $(clean)=drivers
+	$(Q)$(MAKE) $(clean)=lib
+	$(Q)$(MAKE) $(clean)=xsm
+	$(Q)$(MAKE) $(clean)=crypto
+	$(Q)$(MAKE) $(clean)=arch/arm
+	$(Q)$(MAKE) $(clean)=arch/riscv
+	$(Q)$(MAKE) $(clean)=arch/x86
+	$(Q)$(MAKE) $(clean)=test
+	$(Q)$(MAKE) $(clean)=tools/kconfig
 	find . \( -name "*.o" -o -name ".*.d" -o -name ".*.d2" \
 		-o -name ".*.o.tmp" -o -name "*~" -o -name "core" \
 		-o -name '*.lex.c' -o -name '*.tab.[ch]' \
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 3ce5f1674f6f..cecfaf4f3c0f 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -116,7 +116,4 @@ $(obj)/xen.lds: $(src)/xen.lds.S FORCE
 
 $(obj)/dtb.o: $(patsubst "%",%,$(CONFIG_DTB_FILE))
 
-.PHONY: clean
-clean::
-	rm -f $(obj)/xen.lds
-	rm -f $(BASEDIR)/.xen-syms.[0-9]*
+clean-files := $(objtree)/.xen-syms.[0-9]*
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 0b0ef6205bc1..243ca17f701e 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -77,6 +77,9 @@ obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
 obj-y += sysctl.o
 endif
 
+# Allows "clean" to descend into boot/
+subdir- += boot
+
 extra-y += asm-macros.i
 extra-y += xen.lds
 
@@ -190,8 +193,8 @@ note_file :=
 endif
 note_file_option ?= $(note_file)
 
+extra-$(XEN_BUILD_PE) += efi.lds
 ifeq ($(XEN_BUILD_PE),y)
-extra-y += efi.lds
 $(TARGET).efi: $(BASEDIR)/prelink.o $(note_file) $(obj)/efi.lds $(obj)/efi/relocs-dummy.o $(obj)/efi/mkreloc
 ifeq ($(CONFIG_DEBUG_INFO),y)
 	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
@@ -256,10 +259,11 @@ $(obj)/boot/mkelf32: $(src)/boot/mkelf32.c
 $(obj)/efi/mkreloc: $(src)/efi/mkreloc.c
 	$(HOSTCC) $(HOSTCFLAGS) -g -o $@ $<
 
-.PHONY: clean
-clean::
-	rm -f *.lds boot/mkelf32
-	rm -f asm-macros.i $(BASEDIR)/arch/x86/include/asm/asm-macros.*
-	rm -f $(BASEDIR)/.xen-syms.[0-9]* $(BASEDIR)/.xen.elf32
-	rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/mkreloc
-	rm -f boot/cmdline.S boot/reloc.S boot/*.lnk boot/*.bin
+clean-files := \
+    boot/mkelf32 \
+    include/asm/asm-macros.* \
+    $(objtree)/.xen-syms.[0-9]* \
+    $(objtree)/.xen.elf32 \
+    $(objtree)/.xen.efi.[0-9]* \
+    efi/*.efi \
+    efi/mkreloc
diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index ba732e4a88c3..1ac8cb435e0e 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -21,3 +21,5 @@ $(obj)/cmdline.S: $(src)/cmdline.c $(CMDLINE_DEPS) $(src)/build32.lds
 
 $(obj)/reloc.S: $(src)/reloc.c $(RELOC_DEPS) $(src)/build32.lds
 	$(MAKE) -f $(abs_srctree)/$(src)/build32.mk -C $(obj) $(@F) RELOC_DEPS="$(RELOC_DEPS)"
+
+clean-files := cmdline.S reloc.S *.lnk *.bin
diff --git a/xen/common/Makefile b/xen/common/Makefile
index ca839118e4d1..dc8d3a13f5b8 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -84,5 +84,4 @@ $(obj)/config_data.S: $(BASEDIR)/tools/binfile FORCE
 	$(call if_changed,binfile,$(obj)/config.gz xen_config_data)
 targets += config_data.S
 
-clean::
-	rm -f config_data.S config.gz 2>/dev/null
+clean-files := config.gz
diff --git a/xen/include/Makefile b/xen/include/Makefile
index cd40d5b4c923..a3c2511f5f60 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -131,6 +131,4 @@ lib-x86-all:
 all: lib-x86-all
 endif
 
-clean::
-	rm -rf compat config generated headers*.chk
-	rm -f $(BASEDIR)/include/xen/lib/x86/cpuid-autogen.h
+clean-files := compat config generated headers*.chk xen/lib/x86/cpuid-autogen.h
diff --git a/xen/scripts/Kbuild.include b/xen/scripts/Kbuild.include
index 79b42e1252d6..d56bf7d4a452 100644
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -99,8 +99,8 @@ build := -f $(srctree)/Rules.mk obj
 
 # Shorthand for $(MAKE) clean
 # Usage:
-# $(MAKE) $(clean) dir
-clean := -f $(BASEDIR)/scripts/Makefile.clean clean -C
+# $(Q)$(MAKE) $(clean)=dir
+clean := -f $(srctree)/scripts/Makefile.clean obj
 
 # echo command.
 # Short version is used, if $(quiet) equals `quiet_', otherwise full one.
diff --git a/xen/scripts/Makefile.clean b/xen/scripts/Makefile.clean
index c2689d4af5fa..4eed31974509 100644
--- a/xen/scripts/Makefile.clean
+++ b/xen/scripts/Makefile.clean
@@ -3,7 +3,6 @@
 # Cleaning up
 # ==========================================================================
 
-obj := .
 src := $(obj)
 
 clean::
@@ -17,11 +16,20 @@ include $(src)/Makefile
 subdir-all := $(subdir-y) $(subdir-n) $(subdir-) \
               $(patsubst %/,%, $(filter %/, $(obj-y) $(obj-n) $(obj-)))
 
+subdir-all := $(addprefix $(obj)/,$(subdir-all))
+
 __clean-files := \
     $(clean-files) $(hostprogs-y) $(hostprogs-) \
+    $(extra-y) $(extra-) $(targets) \
     $(hostprogs-always-y) $(hostprogs-always-)
 
-__clean-files := $(wildcard $(__clean-files))
+# clean-files is given relative to the current directory, unless it
+# starts with $(objtree)/ (which means "./", so do not add "./" unless
+# you want to delete a file from the toplevel object directory).
+
+__clean-files := $(wildcard \
+		   $(addprefix $(obj)/, $(filter-out /% $(objtree)/%, $(__clean-files))) \
+		   $(filter /% $(objtree)/%, $(__clean-files)))
 
 .PHONY: clean
 clean:: $(subdir-all)
@@ -35,6 +43,6 @@ endif
 
 PHONY += $(subdir-all)
 $(subdir-all):
-	$(MAKE) $(clean) $@
+	$(Q)$(MAKE) $(clean)=$@
 
 .PHONY: $(PHONY)
diff --git a/xen/test/livepatch/Makefile b/xen/test/livepatch/Makefile
index adb484dc5d2c..e6fee84b69da 100644
--- a/xen/test/livepatch/Makefile
+++ b/xen/test/livepatch/Makefile
@@ -160,6 +160,4 @@ install: $(addprefix $(obj)/,$(LIVEPATCHES))
 uninstall:
 	cd $(DESTDIR)$(LIVEPATCH_DEBUG_DIR) && rm -f $(LIVEPATCHES)
 
-.PHONY: clean
-clean::
-	rm -f *.livepatch config.h expect_config.h
+clean-files := config.h expect_config.h
diff --git a/xen/xsm/flask/Makefile b/xen/xsm/flask/Makefile
index 832f65274cc0..4ac6fb8778ae 100644
--- a/xen/xsm/flask/Makefile
+++ b/xen/xsm/flask/Makefile
@@ -49,6 +49,4 @@ $(obj)/policy.bin: FORCE
 	        FLASK_BUILD_DIR=$(FLASK_BUILD_DIR) POLICY_FILENAME=$(POLICY_SRC)
 	cmp -s $(POLICY_SRC) $@ || cp $(POLICY_SRC) $@
 
-.PHONY: clean
-clean::
-	rm -f $(ALL_H_FILES) policy.* $(POLICY_SRC) flask-policy.S
+clean-files := policy.* $(POLICY_SRC)
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231309.400339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6R-00019B-Hw; Thu, 25 Nov 2021 13:47:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231309.400339; Thu, 25 Nov 2021 13:47:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6Q-00015q-St; Thu, 25 Nov 2021 13:47:54 +0000
Received: by outflank-mailman (input) for mailman id 231309;
 Thu, 25 Nov 2021 13:47:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF1C-0007NX-ET
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:42:30 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87919499-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:42:29 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87919499-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847749;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=kLngYtN5+zVn384EmQlaf0kegkNhkeNirtRV6fuCSxQ=;
  b=AXBfYM1d2FtC4Ol/SRFu3n7DidIuvR/YEvtZHbyetxR4zoIZ3ljX2pXk
   yo34UkAMfhQjAr4Q7qmirv99gyx/9G0DjzAFe6F8deAgqynMNJfO821eV
   M1YM6GCzInqdvxeJVVCumyci2oT5iByJANUkDIrsuuHAOkwInhFwXuK3l
   Y=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: +VagdRN3XIM3iJxsKgxloBqFS/1UMY5Mlj9uW4l+bZ10LAHG7dapuFDtwrwrugCSOY6LIktC2N
 52DxCJt2dncM0V3/bYmMoxkN5m8TnPud9NVkg990K3rwiZTyUfiCJ3nvuqLhrQ//6MgmyBcnLd
 d1n/pxbXjJPabRPFLDgfbIaOrMfjzHULGpxtrO2fDk1vzzldHc0MTPlQhHh8aM83t4p3ELEBtD
 SbzjPvaqiystry0gda2Fn3Qf/KHnbxD5J1ILKKy+JV//gxr4cIXcpOG2UsGPhFOo7LnTVWwl6J
 q2qZAjWKB1mPr2L3mb7JoZZE
X-SBRS: 5.1
X-MesageID: 60634194
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:cbcbjaOb0ehQGpXvrR0ykMFynXyQoLVcMsEvi/4bfWQNrUon0zZTn
 2QeXG2EOPaPMGf1ft91YIm+8xtX7MDRyoc1TQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg+w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYo2iolvpr4
 cxgjJiLbAkDMa7JutgjcyANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YuBqmsQkKtitJI4Fs2ts5TrYEewnUdbIRKCiCdpwgm9u3ZwXTKq2i
 8wxUTQ2TA/CeydzJhQvJ5MDk8WKgHr9bGgNwL6SjfVuuDWCpOBr65DvLd7Ud9qiVchT2EGCq
 Qru5H/lCxsXMNiezzut8X+2gOLL2yThV+o6C7mQ5vNsxlqJyQQ7ChcbSF+6qvmRkVOlVpRUL
 El80jojq+0++VKmSvH5XgakuziUsxgEQd1SHuYmrgaXxcL86gCFBm8CX3hZZcYvrsMeSjkj1
 1vPlNTsbRRur7+9WX+b7q2Trz65JW4SN2BqWMMfZVJbuZ+5+th110+RCIY4eEKosjHrMWzRy
 hqQhTETvrEoqMAh2Ka+32z5owv58/AlUTUJzgnQW2uk6CZwa4ike5Gk5DDn0BpQEGqKZgLf5
 SZZwqBy+MhLVMjQz3LVHI3hCZnwv67dWAAwl2KDCHXIG96F33e4Nb5d7zhlTKuCGpZVIGS5C
 KM/VO442XOyAJdIRfMoC25SI55zpUQFKTgCfqqJBueimrArKGe6ENhGPCZ8JVzFnkk2ir0YM
 pyGa8uqBntyIf05l2XpGLZNge5xmHFWKYbvqXfTlUrP7FZjTCTNFedt3KWmMojVE59oUC2Kq
 o0CZqNmOj1UUfHkYzm/zGLgBQtiEJTPPriv85Y/XrfaemJOQTh9Y9eMkeJJU9E0xMx9y7aXl
 kxRr2cFkTITc1Wccl7UAp2iAZuyNatCQYUTYXZxYA32gid7Ou5CLs43LvMKQFXuz8Q7pdYcc
 hXPU5To7i1nRmuV9jIDQ4P6qYA+Jh2niRjXZ3iuYSQlfo4mTAvMo4e2cgzq/SgILyy2qcph/
 OHwilKFGcIOF1Z4EcLbSPOz1Fft73ITr/1/AhnTKd5JdUSyrIUzc37tjuU6Kt0nIAnYwmfIz
 B6fBBoV/LGfo4I8/NTTq7qDqoOlT7l3EkZARjGJ5reqLyjKuGGkxNYYAuqPeDncUkLy+bmjO
 roJn62tbqVfkQ8T4YRmErttwaYv3PfVpudXnlZ+AXHGT1W3Ebc8cHOI6tZC6/9WzbhDtAroB
 k/WootGOa+EMd/OGUIKIFZ3dfyK0PwZl2WA7fkxJ0mmtiZ78KDeDBdXNhiIzidcMKF0IMUux
 uJ44Jwa7Am2ixwLNNeaj38LqzTQfyJYC6h35IsHBILLixYwzgAQaJPRPSb6/ZWTZogeKUItO
 DKV2PLPirk0KpAuqJbv+awhBdZguKk=
IronPort-HdrOrdr: A9a23:948ck67okO2s47XlNQPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HJoB17726NtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QCpSWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634194"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"George Dunlap" <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: [XEN PATCH v8 45/47] WIP, no-VPATH: build xen, out-of-tree!
Date: Thu, 25 Nov 2021 13:40:04 +0000
Message-ID: <20211125134006.1076646-46-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

We can retire VPATH now, and $(srctree) to prerequisite of generic
rules.

(targets %.i and %.s and %.E are updated but may not work as
expected.)

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/Makefile |  3 +--
 xen/Rules.mk | 12 ++++++------
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index fbce0f6771fb..32c36426ed7c 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -188,9 +188,8 @@ else
 endif
 
 objtree := .
-VPATH := $(srctree)
 
-export building_out_of_srctree srctree objtree VPATH
+export building_out_of_srctree srctree objtree
 
 export XEN_ROOT := $(abs_srctree)/..
 
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 0ef45d2c7087..6fcb1f6b769f 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -268,7 +268,7 @@ ifdef building_out_of_srctree
 $(gen-objs-S) $(obj-gen-y): $(obj)/%.o: $(obj)/%.S FORCE
 	$(call if_changed_dep,cc_o_S)
 endif
-$(obj)/%.o: $(src)/%.S FORCE
+$(obj)/%.o: $(srctree)/$(src)/%.S FORCE
 	$(call if_changed_dep,cc_o_S)
 
 
@@ -298,18 +298,18 @@ cmd_cc_s_c = $(CC) $(filter-out -Wa$(comma)%,$(c_flags)) -S $< -o $@
 quiet_cmd_cpp_s_S = CPP     $@
 cmd_cpp_s_S = $(CPP) $(call cpp_flags,$(a_flags)) -MQ $@ -o $@ $<
 
-$(obj)/%.i: $(src)/%.c FORCE
+$(obj)/%.i: $(srctree)/$(src)/%.c FORCE
 	$(call if_changed_dep,cpp_i_c)
 
-$(obj)/%.s: $(src)/%.c FORCE
+$(obj)/%.s: $(srctree)/$(src)/%.c FORCE
 	$(call if_changed_dep,cc_s_c)
 
-$(obj)/%.s: $(src)/%.S FORCE
+$(obj)/%.s: $(srctree)/$(src)/%.S FORCE
 	$(call if_changed_dep,cpp_s_S)
 
-$(obj)/%.E: $(src)/%.c FORCE
+$(obj)/%.E: $(srctree)/$(src)/%.c FORCE
 	$(call if_changed_dep,cpp_i_c)
-$(obj)/%.E: $(src)/%.S FORCE
+$(obj)/%.E: $(srctree)/$(src)/%.S FORCE
 	$(call if_changed_dep,cpp_s_S)
 
 # Linker scripts, .lds.S -> .lds
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:47:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:47:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231311.400344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6S-0001Rx-L7; Thu, 25 Nov 2021 13:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231311.400344; Thu, 25 Nov 2021 13:47:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6S-0001Oc-2o; Thu, 25 Nov 2021 13:47:56 +0000
Received: by outflank-mailman (input) for mailman id 231311;
 Thu, 25 Nov 2021 13:47:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzp-0007NX-7d
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:05 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 53c40e20-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53c40e20-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847662;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=RXcp/FFcN5mYkoMn+8MsGpkECzNRJcUwjpBXUKglChM=;
  b=O7Q+8WaToGC+ZOHqHw+U2c1lNXHmRt6ZNm5SeSFAo8HyB1/o6C+xSKEg
   5kHUiWN6ub1pl09Wqpb1gOSZHJQ6r7bz28/snmHbLluzX0PGhjShz6qZT
   NhIfPOIf4lH8dkp4SKL6hIkHu5AAWl4h3+wmlrnni/s3giJAR0iLLu3bQ
   Y=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: F7hIUb88nLqpZhH7E9pCB6Umz3lhqqQrrBS7bZ6sIFHr3GaKXeW+bIMgmHsu50sPL8awl/Ednx
 Gy9Vk9VlTDCrsosmRVU+lEXvWPspzFW4pdeQrlBsdcSLB3lqQmQvPg2lZNXgJksYnuztOZY53H
 hGvBAnyu/5sxsgbrXCA8DYsBn+SZJOfqYhkxCwsSyl7JG/hljkO1qbV74JmtGyOlyU0RsqxtX1
 7mxKBjDJBISIu7hqAVwOLkCuIYYsm1pp0fQiLP9u4jxoV0rMad0ShpDm6oa/HC5gpPJjvApMoe
 f/N34FOgpblsX9JFgpvOa2Ok
X-SBRS: 5.1
X-MesageID: 58637842
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:d0H3WaoZjSP7dXIpEZErTehnHo1eBmKJYhIvgKrLsJaIsI4StFCzt
 garIBmHPf2OYmD8eoxwbNmwoE1Su8OBmoUwSAY6ryo1FStHopuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2ILkW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnbWVdD9uIbPLo+02aj98PQZDB6xAwbCSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFIoZpnFnyyCfFfs8SIrPa67L+cVZzHE7gcUm8fP2O
 ppHMmU/ME6ojxtnBVUtK4x5ms6SmUK4KzNZmFSznbs6/D2GpOB2+Oe0a4eEEjCQfu1OhVqRr
 G/C+2X/AzkZOcaZxD7D9Wij7sfQmQvrVYRUE6e3ntZhiUefwWE7AxQMWVy25/K+jyaWWc9bK
 kES0jojq+417kPDZsnwWVi0rWCJujYYWsFMCKsq5QeV0K3W7g2FQG8eQVZpatYrqcs3TjwCz
 UKSkpXiAjkHmLyKS1qN+7GMtzSwNCMJa2gYakc5oRAtuoe55ttp11SWE4glQPXdYsDJ9S/Y6
 hW3lG8hmbIohOUy8YGV2m39gjSVqc2cJuIq3Tn/UmWg5wJ/QYeqYY209FTWhcp9wJalokqp5
 yZdxZXHhAwaJdTUzXHWHr1RdF28z6/daGW0vLJ5I3U2G91BEVaHdJsY3jxxLVwB3i0sKW6wO
 x+7Ve+8CfZu0JqWgU1fP93Z5ycCl/GI+THZuhf8NIcmX3SJXFXblByCn3K40WH3i1QLmqoiI
 5qdesvEJS9EUvs4k2vmF7ZHj+5DKsUCKYT7H86T8vha+eDGOC79pUktbDNikdzVHIvb+V6Io
 r6zxuOByglFUf2WX8Uk2dV7ELz+FlBiXcqeg5UOLoare1M6cEl8W6656e5wIORNwvUK/tokC
 1ngAydw0kTkv3TbJG2iMzY7AF8Zdc0k9ixT0O1FFQvA5kXPlq7ztvpCLMVuIuF8nAGhpNYtJ
 8Q4lwy7KqwnYlz6F/41NPERdaRuK0amgxygJS2gbGRtdpJsXVWRqNTlYhHu5G8FCS/u7Zkyp
 Lip1wX6R5sfRls9UJaKOaz3l17h72IAnO9SXlfTJoUBckvb74U3eTf6ieU6Ip9QJEyblCeaz
 QufHTwRufLJ/90u6NDMiK3d99WpHuJyE1B0BW7e6brqZyDW8nD6md1LUfqSfCCbX2Txof3wa
 eJQxvD6EfsGgFcV7NYsT+c1lfozvoK9qaVbwwJoGGTwQ26qUr4wcGOb2cRvt7FWwuMLswWBR
 U/SqMJRPq+EOZ25HQdJdhYldOmKydodhiLWsaYuOEz/6SJ6oOiHXEFVM0XegSBRNuIoYoYsw
 ONns88K8Q2vzBEtN4/e3CxT8m2NKF0GUrkm6c5GUNO61FJzxwEQe4HYBw/3/IqLOodFPUQdK
 zOJgLbP2uZHzU3YfntvTXXA0IKxX3jVVMymGLPaG2m0pw==
IronPort-HdrOrdr: A9a23:1+5PE6wC1+W0qN5WwSUqKrPxqeskLtp133Aq2lEZdPULSL37qy
 n+poV56farslYssSkb6K690Wy7MAHhHO1OkPgs1NaZMjUO11HYVr2KgbGSpAEIXheOidK1tp
 0QPJSWaueAcGSS5PySiGLTfLdQpajizE2xv4vjJjVWPH1XgslbnkRE422gYzRLrXx9dOEE/e
 2nl7J6TlSbCBIqR/X+LH8JU9XcoZnumIj9aRALJzNP0njOsRqYrJT9HhSkwBEmSDVEza05/W
 WtqX242kyWiYD49vaQ7R6K03yY8OGRhudrNYipsIw4Oz/sggGnaMBIXKCDhik8pKWV5FMjgL
 D30lwd15AY0R7sV1DwhSGo9xjr0T4o5XOn40Sfm2HfrcvwQy9/I9ZdhKpCGyGpunYIjZVZ6u
 ZmzmiZv51YAVfrhyLm/eXFUBlsiw6dvWciq+gOlHZSOLFuNoO5lbZvrH+9La1wQB4SqbpXTd
 WGNfusvsq+pGnqMEwwvQFUsZSRtzoIb1n2EXTrfKSuon1rdTtCvjslLfck7wM9HEhUcegB2w
 2NCNUaqFhvdL5RUUsvPpZZfSNAYla9DC4lDgqpUCLa/FZuAQOGl3ew2sRv2Mirf5MP0Zc5md
 DAXTpjxCkPknPVeISzNcdwg2XwqU2GLEPQ9v0=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58637842"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Doug Goldstein <cardoe@cardoe.com>
Subject: [XEN PATCH v8 15/47] build: hook kconfig into xen build system
Date: Thu, 25 Nov 2021 13:39:34 +0000
Message-ID: <20211125134006.1076646-16-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Now that xen's build system is very close to Linux's ones, we can hook
"Makefile.host" into Xen's build system, and we can build Kconfig with
that.

"tools/kconfig/Makefile" now needs a workaround to not rebuild
"$(XEN_ROOT)/.config", as `make` tries the rules "%.config" which
fails with:
    tools/kconfig/Makefile:95: *** No configuration exists for this target on this architecture.  Stop.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---

Notes:
    v8:
    - reviewed
    - adjust Makefile.host to use the renamed macro "multi-depend".
    - move .config empty rules workaround into kconfig/Makefile (from Rules.mk)
      and merge the change of patch
            build: add an other explicite rules to not build $(XEN_ROOT)/.config
      into
            build: hook kconfig into xen build system

 xen/Makefile                                 |  34 ++++--
 xen/Rules.mk                                 |  13 ++-
 xen/scripts/Kbuild.include                   |  31 ++++++
 xen/scripts/Makefile.clean                   |  11 +-
 xen/{tools/kconfig => scripts}/Makefile.host |  11 +-
 xen/tools/kconfig/Makefile                   |   3 +
 xen/tools/kconfig/Makefile.kconfig           | 106 -------------------
 7 files changed, 86 insertions(+), 123 deletions(-)
 rename xen/{tools/kconfig => scripts}/Makefile.host (95%)
 delete mode 100644 xen/tools/kconfig/Makefile.kconfig

diff --git a/xen/Makefile b/xen/Makefile
index d38425234c6c..c26c44818916 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -40,6 +40,7 @@ ARCH=$(XEN_TARGET_ARCH)
 SRCARCH=$(shell echo $(ARCH) | \
           sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g' \
               -e s'/riscv.*/riscv/g')
+export ARCH SRCARCH
 
 # Don't break if the build process wasn't called from the top level
 # we need XEN_TARGET_ARCH to generate the proper config
@@ -163,6 +164,13 @@ ifneq ($(filter %config,$(MAKECMDGOALS)),)
     config-build := y
 endif
 
+export CONFIG_SHELL := $(SHELL)
+export YACC = $(if $(BISON),$(BISON),bison)
+export LEX = $(if $(FLEX),$(FLEX),flex)
+
+# Default file for 'make defconfig'.
+export KBUILD_DEFCONFIG := $(ARCH)_defconfig
+
 # CLANG_FLAGS needs to be calculated before calling Kconfig
 ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
 CLANG_FLAGS :=
@@ -203,9 +211,6 @@ PHONY += tools_fixdep
 tools_fixdep:
 	$(MAKE) -C tools fixdep
 
-# Shorthand for kconfig
-kconfig = -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(ARCH) SRCARCH=$(SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)"
-
 ifeq ($(config-build),y)
 # ===========================================================================
 # *config targets only - make sure prerequisites are updated, and descend
@@ -221,14 +226,14 @@ filechk_kconfig_allconfig = \
 .allconfig.tmp: FORCE
 	set -e; { $(call filechk_kconfig_allconfig); } > $@
 
-config: FORCE
-	$(MAKE) $(kconfig) $@
+config: tools_fixdep FORCE
+	$(Q)$(MAKE) $(build)=tools/kconfig $@
 
 # Config.mk tries to include .config file, don't try to remake it
 %/.config: ;
 
-%config: .allconfig.tmp FORCE
-	$(MAKE) $(kconfig) KCONFIG_ALLCONFIG=$< $@
+%config: .allconfig.tmp tools_fixdep FORCE
+	$(Q)$(MAKE) $(build)=tools/kconfig KCONFIG_ALLCONFIG=$< $@
 
 else # !config-build
 
@@ -238,9 +243,15 @@ ifeq ($(need-config),y)
 # changes are detected.
 -include include/config/auto.conf.cmd
 
+# This allows make to build fixdep before invoking defconfig. We can't use
+# "tools_fixdep" which is a .PHONY target and would force make to call
+# "defconfig" again to update $(KCONFIG_CONFIG).
+tools/fixdep:
+	$(MAKE) -C tools fixdep
+
 # Allow people to just run `make` as before and not force them to configure
-$(KCONFIG_CONFIG):
-	$(MAKE) $(kconfig) defconfig
+$(KCONFIG_CONFIG): tools/fixdep
+	$(Q)$(MAKE) $(build)=tools/kconfig defconfig
 
 # The actual configuration files used during the build are stored in
 # include/generated/ and include/config/. Update them if .config is newer than
@@ -249,7 +260,7 @@ $(KCONFIG_CONFIG):
 # This exploits the 'multi-target pattern rule' trick.
 # The syncconfig should be executed only once to make all the targets.
 include/config/%.conf include/config/%.conf.cmd: $(KCONFIG_CONFIG)
-	$(MAKE) $(kconfig) syncconfig
+	$(Q)$(MAKE) $(build)=tools/kconfig syncconfig
 
 ifeq ($(CONFIG_DEBUG),y)
 CFLAGS += -O1
@@ -409,9 +420,10 @@ _clean:
 	$(MAKE) $(clean) arch/riscv
 	$(MAKE) $(clean) arch/x86
 	$(MAKE) $(clean) test
-	$(MAKE) $(kconfig) clean
+	$(MAKE) $(clean) tools/kconfig
 	find . \( -name "*.o" -o -name ".*.d" -o -name ".*.d2" \
 		-o -name ".*.o.tmp" -o -name "*~" -o -name "core" \
+		-o -name '*.lex.c' -o -name '*.tab.[ch]' \
 		-o -name "*.gcno" -o -name ".*.cmd" -o -name "lib.a" \) -exec rm -f {} \;
 	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map *~ core
 	rm -f asm-offsets.s arch/*/include/asm/asm-offsets.h
diff --git a/xen/Rules.mk b/xen/Rules.mk
index d32fec0ae037..f452a821cc86 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -89,6 +89,13 @@ subdir-y        := $(addprefix $(obj)/,$(subdir-y))
 nocov-y         := $(addprefix $(obj)/,$(nocov-y))
 noubsan-y       := $(addprefix $(obj)/,$(noubsan-y))
 
+# Do not include hostprogs rules unless needed.
+# $(sort ...) is used here to remove duplicated words and excessive spaces.
+hostprogs-y := $(sort $(hostprogs-y))
+ifneq ($(hostprogs-y),)
+include scripts/Makefile.host
+endif
+
 # subdir-builtin may contain duplications. Use $(sort ...)
 subdir-builtin := $(sort $(filter %/built_in.o, $(obj-y)))
 
@@ -267,7 +274,11 @@ intermediate_targets = $(foreach sfx, $(2), \
 				$(patsubst %$(strip $(1)),%$(sfx), \
 					$(filter %$(strip $(1)), $(targets))))
 # %.init.o <- %.o
-targets += $(call intermediate_targets, .init.o, .o)
+# %.lex.o <- %.lex.c <- %.l
+# %.tab.o <- %.tab.[ch] <- %.y
+targets += $(call intermediate_targets, .init.o, .o) \
+	   $(call intermediate_targets, .lex.o, .lex.c) \
+	   $(call intermediate_targets, .tab.o, .tab.c .tab.h)
 
 # Build
 # ---------------------------------------------------------------------------
diff --git a/xen/scripts/Kbuild.include b/xen/scripts/Kbuild.include
index 6be38301e835..79b42e1252d6 100644
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -25,6 +25,37 @@ real-prereqs = $(filter-out $(PHONY), $^)
 # Escape single quote for use in echo statements
 escsq = $(subst $(squote),'\$(squote)',$1)
 
+###
+# Easy method for doing a status message
+       kecho := :
+ quiet_kecho := echo
+silent_kecho := :
+kecho := $($(quiet)kecho)
+
+###
+# filechk is used to check if the content of a generated file is updated.
+# Sample usage:
+#
+# filechk_sample = echo $(KERNELRELEASE)
+# version.h: FORCE
+#	$(call filechk,sample)
+#
+# The rule defined shall write to stdout the content of the new file.
+# The existing file will be compared with the new one.
+# - If no file exist it is created
+# - If the content differ the new file is used
+# - If they are equal no change, and no timestamp update
+define filechk
+	$(Q)set -e;						\
+	mkdir -p $(dir $@);					\
+	trap "rm -f $(dot-target).tmp" EXIT;			\
+	{ $(filechk_$(1)); } > $(dot-target).tmp;		\
+	if [ ! -r $@ ] || ! cmp -s $@ $(dot-target).tmp; then	\
+		$(kecho) '  UPD     $@';			\
+		mv -f $(dot-target).tmp $@;			\
+	fi
+endef
+
 # as-insn: Check whether assembler supports an instruction.
 # Usage: cflags-y += $(call as-insn,CC FLAGS,"insn",option-yes,option-no)
 as-insn = $(if $(shell echo 'void _(void) { asm volatile ( $(2) ); }' \
diff --git a/xen/scripts/Makefile.clean b/xen/scripts/Makefile.clean
index c3b0681611da..156d6307cf83 100644
--- a/xen/scripts/Makefile.clean
+++ b/xen/scripts/Makefile.clean
@@ -17,8 +17,17 @@ include $(src)/Makefile
 subdir-all := $(subdir-y) $(subdir-n) $(subdir-) \
               $(patsubst %/,%, $(filter %/, $(obj-y) $(obj-n) $(obj-)))
 
+__clean-files := \
+    $(clean-files) $(hostprogs-y) $(hostprogs-)
+
+__clean-files := $(wildcard $(__clean-files))
+
 .PHONY: clean
-clean:: $(subdir-all) ;
+clean:: $(subdir-all)
+ifneq ($(strip $(__clean-files)),)
+	rm -rf $(__clean-files)
+endif
+	@:
 
 # Descending
 # ---------------------------------------------------------------------------
diff --git a/xen/tools/kconfig/Makefile.host b/xen/scripts/Makefile.host
similarity index 95%
rename from xen/tools/kconfig/Makefile.host
rename to xen/scripts/Makefile.host
index 4c51c95d40f4..8a85f94316bc 100644
--- a/xen/tools/kconfig/Makefile.host
+++ b/xen/scripts/Makefile.host
@@ -1,5 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0
 
+# target with $(obj)/ and its suffix stripped
+target-stem = $(basename $(patsubst $(obj)/%,%,$@))
+
 # LEX
 # ---------------------------------------------------------------------------
 quiet_cmd_flex = LEX     $@
@@ -114,7 +117,7 @@ quiet_cmd_host-cmulti	= HOSTLD  $@
 			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
 $(host-cmulti): FORCE
 	$(call if_changed,host-cmulti)
-$(call multi_depend, $(host-cmulti), , -objs)
+$(call multi-depend, $(host-cmulti), , -objs)
 
 # Create .o file from a single .c file
 # host-cobjs -> .o
@@ -132,7 +135,7 @@ quiet_cmd_host-cxxmulti	= HOSTLD  $@
 			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
 $(host-cxxmulti): FORCE
 	$(call if_changed,host-cxxmulti)
-$(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
+$(call multi-depend, $(host-cxxmulti), , -objs -cxxobjs)
 
 # Create .o file from a single .cc (C++) file
 quiet_cmd_host-cxxobjs	= HOSTCXX $@
@@ -165,7 +168,7 @@ quiet_cmd_host-cshlib	= HOSTLLD -shared $@
 			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem).so)
 $(host-cshlib): FORCE
 	$(call if_changed,host-cshlib)
-$(call multi_depend, $(host-cshlib), .so, -objs)
+$(call multi-depend, $(host-cshlib), .so, -objs)
 
 # Link a shared library, based on position independent .o files
 # *.o -> .so shared library (host-cxxshlib)
@@ -175,7 +178,7 @@ quiet_cmd_host-cxxshlib	= HOSTLLD -shared $@
 			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem).so)
 $(host-cxxshlib): FORCE
 	$(call if_changed,host-cxxshlib)
-$(call multi_depend, $(host-cxxshlib), .so, -objs)
+$(call multi-depend, $(host-cxxshlib), .so, -objs)
 
 targets += $(host-csingle)  $(host-cmulti) $(host-cobjs)\
 	   $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs)
diff --git a/xen/tools/kconfig/Makefile b/xen/tools/kconfig/Makefile
index f39521a0ed5b..b7b9a419ad59 100644
--- a/xen/tools/kconfig/Makefile
+++ b/xen/tools/kconfig/Makefile
@@ -91,6 +91,9 @@ endif
 
 configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/configs/$@)
 
+# Don't try to remake this file included by Config.mk.
+$(XEN_ROOT)/.config: ;
+
 %.config: $(obj)/conf
 	$(if $(call configfiles),, $(error No configuration exists for this target on this architecture))
 	$(Q)$(CONFIG_SHELL) $(srctree)/tools/kconfig/merge_config.sh -m .config $(configfiles)
diff --git a/xen/tools/kconfig/Makefile.kconfig b/xen/tools/kconfig/Makefile.kconfig
deleted file mode 100644
index 799321ec4d07..000000000000
--- a/xen/tools/kconfig/Makefile.kconfig
+++ /dev/null
@@ -1,106 +0,0 @@
-# xen/tools/kconfig
-
-# default rule to do nothing
-all:
-
-# Xen doesn't have a silent build flag
-quiet :=
-Q :=
-kecho := :
-
-# eventually you'll want to do out of tree builds
-srctree := $(BASEDIR)
-objtree := $(srctree)
-src := tools/kconfig
-obj := $(src)
-
-# handle functions (most of these lifted from different Linux makefiles
-dot-target = $(dir $@).$(notdir $@)
-depfile = $(subst $(comma),,$(dot-target).d)
-basetarget = $(basename $(notdir $@))
-# target with $(obj)/ and its suffix stripped
-target-stem = $(basename $(patsubst $(obj)/%,%,$@))
-cmd = $(cmd_$(1))
-if_changed = $(cmd_$(1))
-if_changed_dep = $(cmd_$(1))
-
-###
-# filechk is used to check if the content of a generated file is updated.
-# Sample usage:
-#
-# filechk_sample = echo $(KERNELRELEASE)
-# version.h: FORCE
-#	$(call filechk,sample)
-#
-# The rule defined shall write to stdout the content of the new file.
-# The existing file will be compared with the new one.
-# - If no file exist it is created
-# - If the content differ the new file is used
-# - If they are equal no change, and no timestamp update
-# - stdin is piped in from the first prerequisite ($<) so one has
-#   to specify a valid file as first prerequisite (often the kbuild file)
-define filechk
-	$(Q)set -e;				\
-	mkdir -p $(dir $@);			\
-	{ $(filechk_$(1)); } > $@.tmp;		\
-	if [ -r $@ ] && cmp -s $@ $@.tmp; then	\
-		rm -f $@.tmp;			\
-	else					\
-		$(kecho) '  UPD     $@';	\
-		mv -f $@.tmp $@;		\
-	fi
-endef
-
-define multi_depend
-$(foreach m, $(notdir $1), \
-	$(eval $(obj)/$m: \
-	$(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s)))))))
-endef
-
-# Set our default defconfig file
-KBUILD_DEFCONFIG := $(ARCH)_defconfig
-
-# provide our shell
-CONFIG_SHELL := $(SHELL)
-
-# provide the host compiler
-HOSTCC ?= gcc
-HOSTCXX ?= g++
-YACC = $(if $(BISON),$(BISON),bison)
-LEX = $(if $(FLEX),$(FLEX),flex)
-
-# force target
-PHONY += FORCE
-
-FORCE:
-
-# include the original Makefile and Makefile.host from Linux
-include $(src)/Makefile
-include $(src)/Makefile.host
-
-# Add intermediate targets:
-# When building objects with specific suffix patterns, add intermediate
-# targets that the final targets are derived from.
-intermediate_targets = $(foreach sfx, $(2), \
-				$(patsubst %$(strip $(1)),%$(sfx), \
-					$(filter %$(strip $(1)), $(targets))))
-
-# %.lex.o <- %.lex.c <- %.l
-# %.tab.o <- %.tab.[ch] <- %.y
-targets += $(call intermediate_targets, .lex.o, .lex.c) \
-	   $(call intermediate_targets, .tab.o, .tab.c .tab.h)
-
-# clean up rule
-clean-deps = $(foreach f,$(host-cobjs) $(host-cxxobjs),$(dir $f).$(notdir $f).d)
-clean-shipped = $(patsubst %_shipped,%,$(wildcard $(obj)/*_shipped))
-
-clean:
-	rm -rf $(clean-files)
-	rm -rf $(clean-deps)
-	rm -rf $(host-csingle) $(host-cmulti) $(host-cxxmulti) $(host-cobjs) $(host-cxxobjs)
-	rm -rf $(clean-shipped)
-
-$(obj)/zconf%: $(src)/zconf%_shipped
-	cp -f $< $@
-
-.PHONY: $(PHONY)
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:48:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:48:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231313.400358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6W-0002Ap-0v; Thu, 25 Nov 2021 13:48:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231313.400358; Thu, 25 Nov 2021 13:47:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6V-00026e-5s; Thu, 25 Nov 2021 13:47:59 +0000
Received: by outflank-mailman (input) for mailman id 231313;
 Thu, 25 Nov 2021 13:47:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0t-00076i-HJ
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:42:11 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7cfb8380-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:42:10 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7cfb8380-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847730;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=qiTCQde4ESeiEmkkyzpe1PUHy1DiTkjg/pAXNlV41C8=;
  b=fm1yg1FP1ScNdkBPHYS1Sxh6mFKwi4y0Y3OuVX4eJVEEz8LDawQNbiIc
   FOFrkmINkyvW8ICakNsvm5/kJazuSKsJbpeN7264C/8ZCC+bvMst++9eC
   lp+DLtO6SqotCCXz4EgexWABIujM/7k8ud1p/3N945TzZqVvPhGp+BkQw
   Q=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: p2E3iK5ubT2TJdzcT1TYGnOtYAnCJXZSJgSZdmYK29bNZEfw6lVl4SVJAUI1R8NNwidRu4Z/7W
 fmBnygXvUMNieufWuSG/r818X60MVeR0u926HauLxZ+82ttMDh0bJ7N4naGxeMmFxaU2lXPzdi
 8o3zi+BWz+wfRO4xSUFqedqCUYxzuHlAHg6S13BWpPNT+lVXMcH6vgbBrTtjRf54A+vSygusZS
 sp8+4aExr4uaGqDHuls/JFhG0Q7ZFTUibmniwB6Xx3xBzxsV+ctQhHJGAGDuS36JMg5xqMXHKe
 Lzqe+SWerqEthP/oTuPIsUj5
X-SBRS: 5.1
X-MesageID: 58576729
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:725R7KtZsRD2jzLt4P41BUD9lOfnVNJZMUV32f8akzHdYApBsoF/q
 tZmKWzVOffbN2b2c95xYN/i9x5U7JCDn9ZmTQNkpX8xES4T+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24XhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Nplr6K3dgQCNYjwpboQdUd+LSRZZawX9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DNYUDunZm3HfBAOwvW5zrSKTW/95Imjw3g6iiGN6DN
 5dGN2U1PXwsZTVJHXITA7wUnt24j17tVmJ8q3mFqJEetj27IAtZj+G2bYu9lsaxbcdImkeVo
 ErW8mK/BQsVXPSE0iaM+H+ogu7JnAv4VZgUGbn+8eRl6HWMwkQDBRtQUkG0ydGph0j7V99BJ
 kg8/is1sbN05EGtVsP6XRCzvDiDpBF0c9tPEcUq5QeV0K3W7g2FQG8eQVZpatYrqcs3TjwCz
 UKSkpXiAjkHjVGOYSvDrPHO92r0YHVLaz9ZDcMZcecby8Pdp74wpRnqcus9HYjrqOPwPmnxk
 j/f+UDSmI4vpcIM0qy6+3XOjDStuoXFQ2YJ2+nHYo62xlgnPdD4PuRE/XCetK8dd9jBEjFtq
 VBdw5DGhN3iG61hg8BkrA8lOLiyr8iIPzTH6bKEN8lwrm/9k5JPkG053d2fGKuLGppbEdMKS
 BWK0e+02HO0FCH3BZKbm6rrV6wXIVLcPdrkTOvISdFFf4J8cgSKlAk3OxXPgD+8wBh9y/9uU
 Xt+TSpLJSxEYZmLMRLsH7tNuVPV7nxWKZzvqWDTkE38jOv2iI+9QrYZKlqeBt3VH4vfyDg5B
 +13bpPQoz0GCbWWSnCOreY7cABbRVBmVMueg5EGKYa+zv9ORThJI+XP2okoZ4ENt/0Tzo8kC
 FnmARQGoLc+7FWaQTi3hodLNOmyAM0h9C1jZkTB/z+AghAeXGpm149HH7NfQFXt3LYLISdcQ
 6ZXdsOeLO5ITzibqT0RYYOk9N5pdQixhBLINC2gOWBtc5llTg3P29nlYgqwq3VeUnvp7ZMz8
 ++6ywfWYZsfXAA+XszYX+2ikgGqtn8HleMsA0aReotPeF/h+ZRBIjDqiqNlONkFLBjOn2PI1
 wufDRoCi/PKpos5rIvAiaye9t/7GOpiBEtKWWLc6O/uZyXd+2Oix65GUfqJIm+BBD+lpv36a
 LwMnf/mMfABkFJbiKZGEu5mnfAk+t/ih75G1QA4Tn/FWEumV+F7KX6c0MgR6qAUnu1FuRG7U
 16k88VBPenbI9vsFVMcKVZ3bumH0v1IyDDe4e5sfRf/7S5zurGGTV9TL1+HjykEdOl5N4Ysw
 OEAvs8K6lPg1kp2Y4je1i0EpX6RKnEgUrk8ssBICYDmvQMn11VebMGOESTx+pyON41BP0RCz
 uV4X0Yea2CwHnb/Tkc=
IronPort-HdrOrdr: A9a23:y2VlsKNEAx6esMBcTsejsMiBIKoaSvp037Eqv3ofdfUzSL3+qy
 nOpoVj6faaslcssR0b9OxofZPwI080lqQFhbX5X43DYOCOggLBR+tfBMnZsljd8kXFh4hgPM
 xbHZSWZuedMbEDt7eY3DWF
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58576729"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 44/47] WIP, no-VPATH: build object from S source to be in build_in.o
Date: Thu, 25 Nov 2021 13:40:03 +0000
Message-ID: <20211125134006.1076646-45-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

similair to gen-objs-S, but obj-gen-y will be added to build_in.o

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    we could maybe use $(targets) instead of introducing new variables.

 xen/Rules.mk        | 21 ++++++++++++++-------
 xen/common/Makefile |  2 +-
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index 2d8d32f5fd72..0ef45d2c7087 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -22,6 +22,7 @@ include $(srctree)/scripts/Kbuild.include
 
 # Initialise some variables
 obj-y :=
+obj-gen-y :=
 lib-y :=
 targets :=
 ## targets made from generated sources
@@ -98,6 +99,7 @@ always-y        := $(addprefix $(obj)/,$(always-y))
 targets         := $(addprefix $(obj)/,$(targets))
 lib-y           := $(addprefix $(obj)/,$(lib-y))
 obj-y           := $(addprefix $(obj)/,$(obj-y))
+obj-gen-y       := $(addprefix $(obj)/,$(obj-gen-y))
 obj-bin-y       := $(addprefix $(obj)/,$(obj-bin-y))
 gen-objs-c      := $(addprefix $(obj)/,$(gen-objs-c))
 gen-objs-S      := $(addprefix $(obj)/,$(gen-objs-S))
@@ -112,6 +114,11 @@ ifneq ($(hostprogs-y),)
 include $(srctree)/scripts/Makefile.host
 endif
 
+ifndef building_out_of_srctree
+    obj-y += $(obj-gen-y)
+    obj-gen-y :=
+endif
+
 # subdir-builtin may contain duplications. Use $(sort ...)
 subdir-builtin := $(sort $(filter %/built_in.o, $(obj-y)))
 
@@ -144,7 +151,7 @@ else
 endif
 
 # Reset COV_FLAGS in cases where an objects has another one as prerequisite
-$(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
+$(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(obj-gen-y) $(extra-y)): \
     COV_FLAGS :=
 
 $(non-init-objects): _c_flags += $(COV_FLAGS)
@@ -155,7 +162,7 @@ ifeq ($(CONFIG_UBSAN),y)
 UBSAN_FLAGS := $(filter-out -fno-%,$(CFLAGS_UBSAN)) $(filter -fno-%,$(CFLAGS_UBSAN))
 
 # Reset UBSAN_FLAGS in cases where an objects has another one as prerequisite
-$(noubsan-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
+$(noubsan-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(obj-gen-y) $(extra-y)): \
     UBSAN_FLAGS :=
 
 $(non-init-objects): _c_flags += $(UBSAN_FLAGS)
@@ -209,13 +216,13 @@ cmd_ld_builtin = \
     $(LD) $(XEN_LDFLAGS) -r -o $@ $(real-prereqs)
 endif
 
-$(obj)/built_in.o: $(obj-y) FORCE
-	$(call if_changed,$(if $(strip $(obj-y)),ld_builtin,cc_builtin))
+$(obj)/built_in.o: $(obj-y) $(obj-gen-y) FORCE
+	$(call if_changed,$(if $(strip $(obj-y) $(obj-gen-y)),ld_builtin,cc_builtin))
 
 $(obj)/lib.a: $(lib-y) FORCE
 	$(call if_changed,ar)
 
-targets += $(filter-out $(subdir-builtin), $(obj-y))
+targets += $(filter-out $(subdir-builtin), $(obj-y) $(obj-gen-y))
 targets += $(lib-y) $(MAKECMDGOALS)
 
 $(obj)/built_in_bin.o: $(obj-bin-y)
@@ -258,7 +265,7 @@ quiet_cmd_cc_o_S = CC      $@
 cmd_cc_o_S = $(CC) $(a_flags) -c $< -o $@
 
 ifdef building_out_of_srctree
-$(gen-objs-S): $(obj)/%.o: $(obj)/%.S FORCE
+$(gen-objs-S) $(obj-gen-y): $(obj)/%.o: $(obj)/%.S FORCE
 	$(call if_changed_dep,cc_o_S)
 endif
 $(obj)/%.o: $(src)/%.S FORCE
@@ -279,7 +286,7 @@ define cmd_obj_init_o
     $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
 endef
 
-$(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(obj)/%.o FORCE
+$(filter %.init.o,$(obj-y) $(obj-bin-y) $(obj-gen-y) $(extra-y)): $(obj)/%.init.o: $(obj)/%.o FORCE
 	$(call if_changed,obj_init_o)
 
 quiet_cmd_cpp_i_c = CPP     $@
diff --git a/xen/common/Makefile b/xen/common/Makefile
index b1e076c30b81..fe3a4b7a8619 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -1,6 +1,6 @@
 obj-$(CONFIG_ARGO) += argo.o
 obj-y += bitmap.o
-obj-$(CONFIG_HYPFS_CONFIG) += config_data.o
+obj-gen-$(CONFIG_HYPFS_CONFIG) += config_data.o
 obj-$(CONFIG_CORE_PARKING) += core_parking.o
 obj-y += cpu.o
 obj-$(CONFIG_DEBUG_TRACE) += debugtrace.o
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:48:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:48:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231315.400366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6X-0002U1-FP; Thu, 25 Nov 2021 13:48:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231315.400366; Thu, 25 Nov 2021 13:48:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6W-0002PB-Kg; Thu, 25 Nov 2021 13:48:00 +0000
Received: by outflank-mailman (input) for mailman id 231315;
 Thu, 25 Nov 2021 13:47:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0Z-00076i-Go
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:51 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70706428-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:50 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70706428-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847710;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=+5GlssNqzezOU4qfx2oQIRykHbCirnnHU6kOEffUfDw=;
  b=U3Ke+kHiIBtcVeKPXF7u2lZJKOX6HDX06BbfhNDRnOb+uByPdYk0y6KB
   KoCAkdx2Fl6ONjGcGuBlQcB4AQ7wU8kmaCa1kGscSOdWFxLeOhb3t7QTe
   Bnth5x0lSwi1+9L04VVVEqwgi2am5iMmoBJX0ypEYdAJLCfOKnuAHjWf1
   Y=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: roT4h0hXUysONDDGByW2I8X4yX2zQKPYQYLq90RMxZ1O0lcTeqIMkXmQ8Zsof3sdeRT4rUvyDq
 Mkm/KnU38wBlNCJxumT81tPVhLYySfWefyDrhPMQHgplYg5H6R4tHbPuox35nm0vC0NSMyc0Zu
 TOwZWNRE8qk+7ZwlAvU/kZgPxpypVDCU/dq6wBnOGIvJ4+XI7mNisNjj8ojw3Q4IuN37h/acMj
 kZJrcP6XZFMhB+dLaQnPgvrG4T3jUIrDnaaip6Sabq6j4shJCD46OdEexpbmpLacCX3ZBZPNeg
 GEJG0zbS4ikWFqVFuFLNlG65
X-SBRS: 5.1
X-MesageID: 59006050
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:DRU4L6g1xBZ/0G24iuslO8GVX161nRcKZh0ujC45NGQN5FlHY01je
 htvWmuCPqnZZ2D8ct0lOYzgoE8FuJPQnN8wSAo5r3s9ECwb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy3IDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /0T5YHzakADHZTtne4aAhADKX1bZfBZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHiOp8fvXdxiynUF/88TbjIQrnQ5M8e1zA17ixLNauPP
 5JHMWc3BPjGSyFTHQYaJbsioMqh22KgTwxiplaqtbVitgA/yyQuieOwYbI5YOeiR9hRn0uej
 nLL+SL+GB5yHMeE1TOP/3aoh+nOtSD2QoQfEPu/7PECqEKX7nweDlsRT1TTiem0jAuyVsxSL
 2QQ+zEytu4i+UqzVN7/Uhak5nmesXY0WsVSO/037hmXzajZ6BrfAXILJhZDYtE7sM49RRQxy
 0SE2djuAFRSXKa9ECzHsO3O9HXrZHZTfTRqiTI4oRUtvYn+46J0pDH2b9NpF/+81eepPGmt3
 GXfxMQhvIk7gckO3qS92FnIhTOwu5TEJjIIChXrsnGNtV0gOtP8D2C8wR2CtKsbct7FJrWUl
 CFcw5D20QwYMX2aeMVhqs0pFarh2fuKOSa0bbVHT8h4rGTFF5JOkOltDNBCyKVBbplsldzBO
 ha7VeZtCHh7ZibCUEOPS9jtY/nGNIC5fTgfatjab8BVfr96fxKd8SdlaCa4hj62zxdzwPFva
 M3FIK5A6Er27ow9klKLqxo1i+d3lkjSO0uPLXwE8/hX+eXHPyPEIVv0GFCPcvo4/Mu5TPb9q
 L5i2z+x40wHCoXWO3CPmaZKdAxiBSVrVPje9p0MHsbec1UOJY3UI6KIqV/XU9c+xPo9eyah1
 izVZ3K0P3Kj3yCaclvTNSg4AF4tNL4mxU8G0eUXFQ7A8xAejUyHtc/zrrM7Iusq8vJN1/lxQ
 6VXcsmMGK0XGD/G5y4cfd/2q4k7LEanggeHPiyEZjkjfsE/G1yVq4G8Jga/pjMTCieXtNclp
 +Hy3A3sXpdeFR9pC9zbaazzwgrp72Qdgu97Q2DBPsJXJBf36IFvJiGo1q03LsgAJA/t3Dyf0
 wrKUx4UqfOU+90+8cXThLDCpICsSrMsEk1fFmjdzLC3KSiFoTbznd4eCL6FJGmPWnn19aOuY
 fRu48v9aPBXzkxXt4dcEqpwyf5s7dXYuLIHnB9vG2/Gbgr3B+o4cGWGx8RGqoZE2qRd5VmtQ
 kuK99RXZeeJNcfiHAJDLQYpdL3eh/Qdmz2U5vUpOkTqoiRw+ePfA0lVOhCNjg1bLad0b9x5k
 btw5pZO5lztkAcuP/aHkjtQpjaFIXE3Wqk6so0XXd3wgQ0xx1AeOZHRB0caOn1Uhwmg5qXyH
 gKpuQ==
IronPort-HdrOrdr: A9a23:I8/ecKilnECIIwrEl8fB6sU4uXBQX1913DAbv31ZSRFFG/FwyP
 re/sjzhCWE6wr5BktBpTnZAtj/fZoYz+8G3WBjB8bSYOCGggWVxe5ZnPHfKlHbakrDH6tmpN
 hdmstFeZLN5DpB/LvHCWCDer5KqrbngcXY4dsy100AcegpUdAd0+4QMHfZLqQcfng+OXNNLu
 vm2iMxnUvZRZ14VLXcOlA1G8LEqtH3ipSjRRIdHRYo5Cmi5AnYqYLSIlyz2BoTbi1I+Kwl+2
 TeiQD1j5/T881T/iWslVM7oq4mwOcIBbN4dYCxo/lQDg+pphejZYxnVbHHlDcpoNu34FJvq9
 XIqwdIBbU515uEFFvZnTLdny3blBo+4X7rzlGVxVH5p9bieT48A81dwapEbxrw8SMbzYBB+Z
 MO+1jcm4tcDBvGkii4zcPPTQtWmk29pmdnufIPjkZYTZAVZNZq3NIiFXtuYcc99R/Bmdwa+a
 hVfZzhDc9tAAmnhqXizzZSKN/FZAV6Iv7JeDlNy5+oO/4/pgE986JS/r1uop46zuNId3Gfj9
 60dpiA3Is+PfP+TZgNQtvpEvHHU1Akt3r3QS+vyWqOLtBwB5o7w6SHqondotvaI6AgzJw8no
 nMWlIdtWNaQTOoNSS+5uwDzvmWehTJYd3E8LAo26RE
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="59006050"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 34/47] build: add %.E targets
Date: Thu, 25 Nov 2021 13:39:53 +0000
Message-ID: <20211125134006.1076646-35-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

I guess it's easier to remember that %.E does "$(CC) -E" or "$(CPP)".

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/Makefile | 4 ++--
 xen/Rules.mk | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index 995815e82235..e39a6f82859a 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -609,10 +609,10 @@ cscope:
 _MAP:
 	$(NM) -n $(TARGET)-syms | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' > System.map
 
-%.o %.i %.s: %.c tools_fixdep FORCE
+%.o %.i %.s %.E: %.c tools_fixdep FORCE
 	$(Q)$(MAKE) $(build)=$(*D) $(*D)/$(@F)
 
-%.o %.s: %.S tools_fixdep FORCE
+%.o %.s %.E: %.S tools_fixdep FORCE
 	$(Q)$(MAKE) $(build)=$(*D) $(*D)/$(@F)
 
 %/: tools_fixdep FORCE
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 73d5b82ab2e7..745d892d0707 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -287,6 +287,11 @@ $(obj)/%.s: $(src)/%.c FORCE
 $(obj)/%.s: $(src)/%.S FORCE
 	$(call if_changed_dep,cpp_s_S)
 
+$(obj)/%.E: $(src)/%.c FORCE
+	$(call if_changed_dep,cpp_i_c)
+$(obj)/%.E: $(src)/%.S FORCE
+	$(call if_changed_dep,cpp_s_S)
+
 # Linker scripts, .lds.S -> .lds
 quiet_cmd_cpp_lds_S = LDS     $@
 cmd_cpp_lds_S = $(CPP) -P $(call cpp_flags,$(a_flags)) -DLINKER_SCRIPT -MQ $@ -o $@ $<
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:48:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:48:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231318.400392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6c-0003hm-Li; Thu, 25 Nov 2021 13:48:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231318.400392; Thu, 25 Nov 2021 13:48:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6b-0003cv-Md; Thu, 25 Nov 2021 13:48:05 +0000
Received: by outflank-mailman (input) for mailman id 231318;
 Thu, 25 Nov 2021 13:48:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0M-0007NX-As
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:38 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 682b4b48-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 682b4b48-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847696;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=0dwWPZpy0KkJ+4xdfvtRcrAAB0kbPpTPYuJAwuL/Dtw=;
  b=aMv9hvnMFTmRvaM98W4aNy5AwrpgL8cY81hA32lBSG0awbI3KAAk31Nf
   YrT6rQ7Eb3Ow9K3gbk6RQWF1iOqsq2yEsGTmN7X+ivQnqVvx3lKAc0ipG
   7L8GdpZusOciyLJUlHqIjYbR4KJXv7tBPW/WnpDTVSjp/RKYx+VA8VTFs
   M=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: yA3hOxrap6m/MqP6PIvyqdPo+yEYS+YXrv8+M+u630gD3nh6wM/unVUC/IPppLFE2HrAb0Oo8l
 vlBwS69H0keRJujuK2AHHsKr1/BtkSEmapu0u5sC7/oKSMyZQyWvBydOMDpUTsp0ci1df7XCQn
 WvZTfyxrmoh/S3eb4EiTHTXWTI/X9DpF3TmU8yNXmzv4qXKqdIRqLS0ajSyY8Ea2MA0deuU9H4
 E/IMTZZAcrwp6G/yscmv2QWILi6rN4xXaKkwlcevtQ4fW3QvVuw5K6rd/GmUdUQ0nOKqXwUXi9
 FcZ/ORgK/kyCtslFjS/M7sZw
X-SBRS: 5.1
X-MesageID: 58617683
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LRHkIqCNuTeWvBVW/2rlw5YqxClBgxIJ4kV8jS/XYbTApDsq12dUn
 DcaCG2Ca/3bZTf3KtEgPN62pBkAvZLSnNNmQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540087wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/2gunxY8g2
 f9xlcKMElsWJYTIpPkaakwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTQ+9whsMlPY/zMZkWoH1IxjDFF/c2B5vERs0m4PcFjGlp2Z4eRp4yY
 eICMiNSUkj/fCEVEVlGBckYxtmQnl7GJmgwRFW9+vNsvjm7IBZK+IbqNN3Za9mbX/J/l0yTp
 n/F12nhCxRcP9uaoRKa9lq8i+mJmjn0MKoRE7ui//Isn1yXxUQUEhQdUVb9qv684ma0VshDM
 UUS9mwrpLIr6U2wZtDnWluzp3vslgUHR9NaHuk+6QeM4qnZ+QCUAi4DVDEpQN05tucmSDoyz
 FiLktj1Qzt1v9W9WX+bs7uZsz62ESwUNnMZIz8JSxMf5Nvuq511iQjAJv5hDaq0g9vdCTz2h
 TeQo0AWhb8ekMoK3KWT5k3cjnSnoZ2hc+IuzlyJBCT/tFo/PdP7IdzzgbTG0RpeBNenYAPe7
 Wkup+jA0LtSMoqkkBCQR9xYSdlF+M25GDHbhFduGbwo+DKs52OvcOhs3d1uGKt6Gp1aIGG0O
 Sc/rSsUvcYOZyXyMcebdqroU5xypZUMA+gJQRw9gjBmRpFqPDGK8yh1DaJ79zC8yRN8+U3T1
 HryTCpNMZr4Ifg4pNZVb71EuVPO+szZ7TmOLa0XNzz9jdKjiIe9EN/pymemYOEj97+jqw7I6
 dtZPMbi40wBC7KhPXiHod9JcwFiwZ0H6Xfe8ZI/SwJ+ClA+RDFJ5wH5ndvNhLCJb4wKz7yVr
 xlRq2dTyUblhG2vFOl5QisLVV8bZr4m9ShTFXV1ZT6AgiF/Ca7yvPZ3X8ZmJtEPqb08pcOYu
 tFYIq1s9NwUEW+Zk9ncBLGgxLFfmOOD2VjTYnH7OWdnJPaNhWXho7fZQ+cmzwFWZgLfiCf0i
 +TIOtrzTcVRSgJ8ItzRbf7znVq9sWJEwLB5XlfSI8kVc0LpqdA4Jyv0h/4xAscNNRScmWfKi
 1fIWU8V9bvXvos40NjVnqTY/Y2nJPRzQxhBFG7B4LfoaSSDpji/wZVNWfqjdCzGUD+m472rY
 OhYlqmuMPAOkFtQnZB7FrJnkfA369f1/ucIxQV4BnTbKV+sD+o4cHWB2MBOsIxLx6NY5lTqC
 h7epIECNOzQas3/EVMXKA40Vci51KkZymvI8PA4AETm/ysrrrCJZlpfYkuXgytHIborbI58m
 bU9uNQb4hCUgwYxNorUlThd8mmBIyBSU6gjsZ1GUobnhhBylwNHaJ3YTCT3/IuOe5NHNUxze
 m2Yg6/LhrJ9wEveciVsSSiRjLQF3Zle6gpXyFIiJkiSnouXj/A66xRd7DArQ1kH1R5Aye9yZ
 jBmOkAdyX9iJNu0aByvh1yRJjw=
IronPort-HdrOrdr: A9a23:1uUI1ajwLjY6Q1EfdBhsRVHjQ3BQXuIji2hC6mlwRA09TySZ//
 rBoB19726TtN9xYgBZpTnuAsm9qB/nmaKdpLNhWItKPzOW31dATrsSjrcKqgeIc0aVm9K1l5
 0QF5SWYOeAdGSS5vya3ODXKbkdKaG8gcKVuds=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58617683"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, "Ross
 Lagerwall" <ross.lagerwall@citrix.com>
Subject: [XEN PATCH v8 28/47] build: replace $(BASEDIR) by $(objtree)
Date: Thu, 25 Nov 2021 13:39:47 +0000
Message-ID: <20211125134006.1076646-29-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

We need to differentiate between source files and generated/built
files. We will be replacing $(BASEDIR) by $(objtree) for files that
are generated.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    v8:
    - rebased

 xen/Rules.mk                |  2 +-
 xen/arch/arm/Makefile       | 10 +++++-----
 xen/arch/x86/Makefile       | 28 ++++++++++++++--------------
 xen/common/Makefile         |  2 +-
 xen/test/livepatch/Makefile | 12 ++++++------
 5 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index d6eabd3415b5..cd00f006ee8f 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -12,7 +12,7 @@ src := $(obj)
 PHONY := __build
 __build:
 
--include $(BASEDIR)/include/config/auto.conf
+-include $(objtree)/include/config/auto.conf
 
 include $(XEN_ROOT)/Config.mk
 include $(BASEDIR)/scripts/Kbuild.include
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index cecfaf4f3c0f..ae7a2f907540 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -90,21 +90,21 @@ ifeq ($(CONFIG_ARM_64),y)
 	ln -sf $(@F) $@.efi
 endif
 
-$(TARGET)-syms: $(BASEDIR)/prelink.o $(obj)/xen.lds
+$(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
-	    $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0
+	    $(objtree)/common/symbols-dummy.o -o $(@D)/.$(@F).0
 	$(NM) -pa --format=sysv $(@D)/.$(@F).0 \
-		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0.S
+		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0.S
 	$(MAKE) $(build)=$(@D) $(@D)/.$(@F).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
 	    $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
 	$(NM) -pa --format=sysv $(@D)/.$(@F).1 \
-		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1.S
+		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1.S
 	$(MAKE) $(build)=$(@D) $(@D)/.$(@F).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).1.o -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
-		| $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort \
+		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		>$(@D)/$(@F).map
 	rm -f $(@D)/.$(@F).[0-9]*
 
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index eabd8d3919a4..5fb7f1408768 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -94,8 +94,8 @@ ifneq ($(CONFIG_HVM),y)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
 endif
 
-efi-y := $(shell if [ ! -r $(BASEDIR)/include/xen/compile.h -o \
-                      -O $(BASEDIR)/include/xen/compile.h ]; then \
+efi-y := $(shell if [ ! -r $(objtree)/include/xen/compile.h -o \
+                      -O $(objtree)/include/xen/compile.h ]; then \
                          echo '$(TARGET).efi'; fi) \
          $(space)
 efi-$(CONFIG_PV_SHIM_EXCLUSIVE) :=
@@ -133,23 +133,23 @@ $(TARGET): $(TARGET)-syms $(efi-y) $(obj)/boot/mkelf32
 
 CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 
-$(TARGET)-syms: $(BASEDIR)/prelink.o $(obj)/xen.lds
+$(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
-	    $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0
+	    $(objtree)/common/symbols-dummy.o -o $(@D)/.$(@F).0
 	$(NM) -pa --format=sysv $(@D)/.$(@F).0 \
-		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort \
+		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		>$(@D)/.$(@F).0.S
 	$(MAKE) $(build)=$(@D) efi-y= $(@D)/.$(@F).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
 	$(NM) -pa --format=sysv $(@D)/.$(@F).1 \
-		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
+		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		>$(@D)/.$(@F).1.S
 	$(MAKE) $(build)=$(@D) efi-y= $(@D)/.$(@F).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(@D)/.$(@F).1.o -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
-		| $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort \
+		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		>$(@D)/$(@F).map
 	rm -f $(@D)/.$(@F).[0-9]* $(@D)/..$(@F).[0-9]*
 
@@ -199,28 +199,28 @@ note_file_option ?= $(note_file)
 
 extra-$(XEN_BUILD_PE) += efi.lds
 ifeq ($(XEN_BUILD_PE),y)
-$(TARGET).efi: $(BASEDIR)/prelink.o $(note_file) $(obj)/efi.lds $(obj)/efi/relocs-dummy.o $(obj)/efi/mkreloc
+$(TARGET).efi: $(objtree)/prelink.o $(note_file) $(obj)/efi.lds $(obj)/efi/relocs-dummy.o $(obj)/efi/mkreloc
 ifeq ($(CONFIG_DEBUG_INFO),y)
 	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
 endif
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
 	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds -N $< $(relocs-dummy) \
-	                $(BASEDIR)/common/symbols-dummy.o $(note_file_option) -o $(@D)/.$(@F).$(base).0 &&) :
+	                $(objtree)/common/symbols-dummy.o $(note_file_option) -o $(@D)/.$(@F).$(base).0 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).0) >$(@D)/.$(@F).0r.S
 	$(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).0 \
-		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0s.S
+		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0s.S
 	$(MAKE) $(build)=$(@D) efi-y= .$(@F).0r.o .$(@F).0s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
 	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds -N $< \
 	                $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o $(note_file_option) -o $(@D)/.$(@F).$(base).1 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).1) >$(@D)/.$(@F).1r.S
 	$(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).1 \
-		| $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1s.S
+		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1s.S
 	$(MAKE) $(build)=$(@D) efi-y= .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds -N $< \
 	                $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o $(note_file_option) -o $@
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
-		| $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort >$(@D)/$(@F).map
+		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort >$(@D)/$(@F).map
 	rm -f $(@D)/.$(@F).[0-9]* $(@D)/..$(@F).[0-9]*
 else
 $(TARGET).efi: FORCE
@@ -232,11 +232,11 @@ endif
 $(obj)/efi/buildid.o $(obj)/efi/relocs-dummy.o: ;
 
 .PHONY: include
-include: $(BASEDIR)/arch/x86/include/asm/asm-macros.h
+include: $(objtree)/arch/x86/include/asm/asm-macros.h
 
 $(obj)/asm-macros.i: CFLAGS-y += -D__ASSEMBLY__ -P
 
-$(BASEDIR)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefile
+$(objtree)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefile
 	$(call filechk,asm-macros.h)
 
 define filechk_asm-macros.h
diff --git a/xen/common/Makefile b/xen/common/Makefile
index dc8d3a13f5b8..30641a737231 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -74,7 +74,7 @@ obj-$(CONFIG_UBSAN) += ubsan/
 obj-$(CONFIG_NEEDS_LIBELF) += libelf/
 obj-$(CONFIG_HAS_DEVICE_TREE) += libfdt/
 
-CONF_FILE := $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(BASEDIR)/)$(KCONFIG_CONFIG)
+CONF_FILE := $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(objtree)/)$(KCONFIG_CONFIG)
 $(obj)/config.gz: $(CONF_FILE)
 	gzip -n -c $< >$@
 
diff --git a/xen/test/livepatch/Makefile b/xen/test/livepatch/Makefile
index e6fee84b69da..ddb07371315e 100644
--- a/xen/test/livepatch/Makefile
+++ b/xen/test/livepatch/Makefile
@@ -22,9 +22,9 @@ $(obj)/xen_hello_world.o: $(obj)/config.h
 $(obj)/config.h: $(obj)/xen_hello_world_func.o
 	(set -e; \
 	 echo "#define NEW_CODE_SZ $(call CODE_SZ,$<,xen_hello_world)"; \
-	 echo "#define MINOR_VERSION_SZ $(call CODE_SZ,$(BASEDIR)/xen-syms,xen_minor_version)"; \
-	 echo "#define MINOR_VERSION_ADDR $(call CODE_ADDR,$(BASEDIR)/xen-syms,xen_minor_version)"; \
-	 echo "#define OLD_CODE_SZ $(call CODE_SZ,$(BASEDIR)/xen-syms,xen_extra_version)") > $@
+	 echo "#define MINOR_VERSION_SZ $(call CODE_SZ,$(objtree)/xen-syms,xen_minor_version)"; \
+	 echo "#define MINOR_VERSION_ADDR $(call CODE_ADDR,$(objtree)/xen-syms,xen_minor_version)"; \
+	 echo "#define OLD_CODE_SZ $(call CODE_SZ,$(objtree)/xen-syms,xen_extra_version)") > $@
 
 $(obj)/modinfo.o:
 	(set -e; \
@@ -42,7 +42,7 @@ $(obj)/modinfo.o:
 # not be built (it is for EFI builds), and that we do not have
 # the note.o.bin to muck with (as it gets deleted)
 #
-$(obj)/note.o: $(BASEDIR)/xen-syms
+$(obj)/note.o: $(objtree)/xen-syms
 	$(OBJCOPY) -O binary --only-section=.note.gnu.build-id $< $@.bin
 	$(OBJCOPY) $(OBJCOPY_MAGIC) \
 		   --rename-section=.data=.livepatch.depends,alloc,load,readonly,data,contents -S $@.bin $@
@@ -52,7 +52,7 @@ $(obj)/note.o: $(BASEDIR)/xen-syms
 # Append .livepatch.xen_depends section
 # with Xen build-id derived from xen-syms.
 #
-$(obj)/xen_note.o: $(BASEDIR)/xen-syms
+$(obj)/xen_note.o: $(objtree)/xen-syms
 	$(OBJCOPY) -O binary --only-section=.note.gnu.build-id $< $@.bin
 	$(OBJCOPY) $(OBJCOPY_MAGIC) \
 		   --rename-section=.data=.livepatch.xen_depends,alloc,load,readonly,data,contents -S $@.bin $@
@@ -125,7 +125,7 @@ xen_action_hooks_norevert-objs := xen_action_hooks_marker.o xen_hello_world_func
 
 EXPECT_BYTES_COUNT := 8
 CODE_GET_EXPECT=$(shell $(OBJDUMP) -d --insn-width=1 $(1) | sed -n -e '/<'$(2)'>:$$/,/^$$/ p' | tail -n +2 | head -n $(EXPECT_BYTES_COUNT) | awk '{$$0=$$2; printf "%s", substr($$0,length-1)}' | sed 's/.\{2\}/0x&,/g' | sed 's/^/{/;s/,$$/}/g')
-$(obj)/expect_config.h: $(BASEDIR)/xen-syms
+$(obj)/expect_config.h: $(objtree)/xen-syms
 	(set -e; \
 	 echo "#define EXPECT_BYTES $(call CODE_GET_EXPECT,$<,xen_extra_version)"; \
          echo "#define EXPECT_BYTES_COUNT $(EXPECT_BYTES_COUNT)") > $@
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:48:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:48:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231316.400373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6Z-0002tl-0V; Thu, 25 Nov 2021 13:48:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231316.400373; Thu, 25 Nov 2021 13:48:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6Y-0002oB-Cc; Thu, 25 Nov 2021 13:48:02 +0000
Received: by outflank-mailman (input) for mailman id 231316;
 Thu, 25 Nov 2021 13:47:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0M-00076i-E7
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:38 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 685bd498-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 685bd498-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847696;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Dp4DeV5YFxptZKOsxSf8G7BcD3VPnKgmN4ccZ4WdFIE=;
  b=SrCxHYmj/Azw1jVXQJXNoCkKaEAKsponODLiAWj5MOL0hAtGtD6Yhxge
   yUsyvEvkhanIuN7XqWLa0tG9a+ZefTzBdPMj6WUdKDrdoDG+uuGR8lIdr
   MO0E6EkSANwu7g57R+/E06ilPpu7N65KHNN6J4k8tMLqI6l3S+X5nSVbz
   U=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 65FyAc2QaZf80z0IP+7V+OqHfQxS3gpEUnILkrUaqgFeyDu9J2j6LpaUX3OmQr4hCQeBmSjeMf
 1v6IVZTyRhrE4I1iyj1hP6kaUv94twgCV3yTTw8FALMvkE7STZ5kbD+QR+vjfTW7qc+idusKxI
 qWoO4r1tGEK4wWz+/n4hOwje9HSz3FVkvprrL5HnyyzmdlLZaQOsc3GgZiPrY0kdqwGR9qM/v9
 su1QQTFfTO9JIZr4tu/KDio7K3dyxgvcj9cG30735QIt/jq/5OJF0ZUrPZvnhkv13SQfrLZG9S
 Qci5qQeWYWFyQIvKdA+BYcEC
X-SBRS: 5.1
X-MesageID: 58637853
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:sxZrBqzXniqew4e9E2Z6t+dLwCrEfRIJ4+MujC+fZmUNrF6WrkVSz
 2pJWDiAM/uKNDOnc4hwao6zpkJSv8eByN9hGVY/qSAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRk2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt8pJ1
 fUOu63ociMoO4viyNU0f0RfHggraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVors0lMMnsOpJZonx6xCvVJf0nXYrCU+PB4towMDIY25AQRqmOO
 pFxhTxHaBDxPgJTPlAsJLVgpeKIt2TGbiNGtwfAzUYwyzeKl1EguFT3C/Lfd8aWX8xTkgCdr
 3jf4mXiKhgAMZqUzj/t2kyrgujDjCbqQrU4Hbez9uNpqFCLz2lVAxoTPXOxpvOzm0OlW9ZSL
 kUS0iUrpKk2skesS7HVVBq+pnmGshcCWsF4HOgz6QXLwa3Riy6QAmkfUjdAcpoorsYwTj0x/
 kCFlJXiAjkHmKKRYWKQ8PGTtzzaESofIHIGZCQEZRAY+NSlq4Y25jrfQ9AmHKOrg9ndHTDr3
 yvMvCU4n68Uj8MAy+O851+vqzOzpLDZQwgt/ALVU2m5qARja+aNfJe04FLW6fJBKoexTVSbu
 nUA3c+E44gmD4yJlSGLaPUAGveu/fntDdHHqQcxRd97rW3roiP9O9ALiN1jGKt3Gtw8ZB+qb
 n6LgidQ4bl9bEqDQfJwbqvkXqzG0pPcPdjiU/nVaP9HbZ5waBKL8UlSWKKA44z+uBNyyP9iY
 P93Ze7pVC9HUvo/kFJaUs9Eiedzrh3S018/UnwSI/6P9bOFLECYRr4eWLdlRrBotfjUyOk5H
 js2Cidr9/m9eLGhCsU02dRKRbzvEZTcLcqrw/G7jsbZfmJb9JgJUpc9O48JdY1/hLhynezV5
 Hy7UUIw4AOh3iKYdlTaOiE5NuKHsXNDQZUTZ3JEALpV8yJ7PdbHAFk3K/PbgoXLBMQ8lKUpH
 pHpiu2LA+hVSySvxtjuRcKVkWCWTzzy3VjmF3P8OFAXJsc8LySUqo6MVla+r0EmU3vo3fbSV
 pX9j2s3t7JYHF88ZCsXAdryp26MUY81xLgvAhCWe4YLIy0BMuFCckTMsxP+GOlUQT2r+9dQ/
 1/PafvBjeWS8YIz7vfTgqWI89WgH+dkRxIIFGjH97emcyLd+zP7k4NHVe+JexHbVX/1p/r+N
 bkEkamkPa1VhktOvqp9D61vkfA06ezwquII1Q9jBnjKMQimU+syPnmc0MBTnaRR3bsF6xCuU
 0eC94ACa7WEMc/oCnALIw8hYrjR3P0YgGCKv/80PF/79Gl8+7/eCRdeOByFiSp8KrppMdx6n
 bd96ZBOswHm00gkKNeLiCxQ5l+gFH1YXvV1rIweDa/qlhEvlgNIb6vDB3Kk+5qIcdhNbBUne
 2fGmKrYir1A7UPeaH5vR2PV1O9QiJlS6hBHyFgOewaAltbf36Jl2RRQ9XI8TxhPzwUB2OV2Y
 zA5O0pwLKSI3jFpmMkcADz8R1AfXEWUqh7r1l8EtGzFVE35BGXCIVo0NfuJ4E1EoXlXeSJW/
 e3AxWvoOdowkBodAsfmtZZZlsHe
IronPort-HdrOrdr: A9a23:g3Pg06outmdlW0nrZbPZbmIaV5oTeYIsimQD101hICG8cqSj+f
 xG+85rsyMc6QxhIE3I9urhBEDtex/hHNtOkOws1NSZLW7bUQmTXeJfBOLZqlWKcUDDH6xmpM
 NdmsBFeaTN5DNB7PoSjjPWLz9Z+qjkzJyV
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58637853"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Bob Eshleman <bobbyeshleman@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [XEN PATCH v8 20/47] build: add headers path to CFLAGS once for all archs
Date: Thu, 25 Nov 2021 13:39:39 +0000
Message-ID: <20211125134006.1076646-21-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This just remove duplication.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/Makefile           | 3 +++
 xen/arch/arm/arch.mk   | 3 ---
 xen/arch/riscv/arch.mk | 2 --
 xen/arch/x86/arch.mk   | 2 --
 4 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index 06d5e4fd61c1..efd7538099f3 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -312,6 +312,9 @@ CFLAGS += -flto
 LDFLAGS-$(CONFIG_CC_IS_CLANG) += -plugin LLVMgold.so
 endif
 
+CFLAGS += -I$(srctree)/include
+CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
+
 # Note that link order matters!
 ALL_OBJS-y                := common/built_in.o
 ALL_OBJS-y                += drivers/built_in.o
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 4e3f7014305e..094b67072304 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -1,9 +1,6 @@
 ########################################
 # arm-specific definitions
 
-CFLAGS += -I$(srctree)/include
-CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
-
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
 
diff --git a/xen/arch/riscv/arch.mk b/xen/arch/riscv/arch.mk
index 694ba053ceab..ae8fe9dec730 100644
--- a/xen/arch/riscv/arch.mk
+++ b/xen/arch/riscv/arch.mk
@@ -11,5 +11,3 @@ riscv-march-$(CONFIG_RISCV_ISA_C)       := $(riscv-march-y)c
 # -mcmodel=medlow would force Xen into the lower half.
 
 CFLAGS += -march=$(riscv-march-y) -mstrict-align -mcmodel=medany
-CFLAGS += -I$(srctree)/include
-CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 5152de343082..1ba488d645c0 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -3,8 +3,6 @@
 
 export XEN_IMG_OFFSET := 0x200000
 
-CFLAGS += -I$(srctree)/include
-CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
 CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-generic
 CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-default
 CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:48:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:48:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231320.400399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6f-0004AL-2n; Thu, 25 Nov 2021 13:48:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231320.400399; Thu, 25 Nov 2021 13:48:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6d-00046J-Tw; Thu, 25 Nov 2021 13:48:07 +0000
Received: by outflank-mailman (input) for mailman id 231320;
 Thu, 25 Nov 2021 13:48:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqEzj-00076i-8W
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:40:59 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 50c12444-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:40:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50c12444-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847657;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=vux0wrGsqHked6kWXywCqhjKL8uNfjsd3EC09NZt2eI=;
  b=d5MnuiuvfGZzlQltrUGr6cjiYoaeh8CPARwuW3oCdMBlH25+aDn+9zgN
   qf5Gvu8VZvWw80SC3WqUYriGNb8a5Kn2IwyeouPE3TfNJhedcPPuGwgmY
   dAMsWigbpj1c+r+eKYZvLoIyHQ3KOhwRxHkP9eK2brViXlcCyXVnyiOBj
   w=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: S3k2p4uEUQc94Ma5o1wajrwzldEb4ZLhGi9GMf6HKc0Ea4D+L7z9jujn2/pMyyDxIhZcuUVKP+
 sAqTGB+Fu5R5QhCtavy1rbsMuvwHONv1fSbu7P7gzb/3NLmRcZQz1HTqcJGLUFgenTARqjO9Ry
 sf5/yicQdL94ynOWa64V4m9YeKRAZY+TIN+iY9tQT3kKMSOWJ6XoN5dSAHho4+1sCz0F57XxqP
 bZJgmU5N9CYOiG6flbUWI9HvzshRB34owWx9TMrWUXWemRLXRipPtoModemg2yHel4+37g2UmV
 n1E+JTb8Pr34dzVI9rkJfgEk
X-SBRS: 5.1
X-MesageID: 59005996
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:rLYtMKjyOuDPNKGHO8z/XhvBX161nRcKZh0ujC45NGQN5FlHY01je
 htvUDqPPv2JYjbyKY9xbIvj/BsBvsPQm9ZhSgA9pHpkFXwb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy3IDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1LpZySTx8lI5GTv75FVTAGQ3p0AbRJreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHiOp8fvXdxiynUF/88TbjIQrnQ5M8e1zA17ixLNauPP
 5JEOGsxBPjGSxdGCno3KL0Bp8qlrCDGcScCtQLFn7VitgA/yyQuieOwYbI5YOeiR9hRn0uej
 nLL+SL+GB5yHMeE1TOP/3aoh+nOtSD2QoQfEPu/7PECqEKX7nweDlsRT1TTiem0jAuyVsxSL
 2QQ+zEytu4i+UqzVN7/Uhak5nmesXY0WdBdDuk74wGl0bfP7kCSAW1sZj9eavQ2uckuXzso2
 1SV2dTzClRSXKa9ECzHsO3O9HXrZHZTfTRqiTI4oRUt5cnjgocrgg/zEfE5SKic0I2uEw3pz
 GXfxMQhvIk7gckO3qS92FnIhTOwu5TEJjIIChXrsnGNtV0gOtP8D2C8wR2CtKsbct7FJrWUl
 CFcw5D20QwYMX2aeMVhqs0pFarh2fuKOSa0bbVHT8h4rGTFF5JOkOltDNBCyKVBbplsldzBO
 ha7VeZtCHh7ZibCUEOPS9jtY/nGNIC5fTgfatjab8BVfr96fxKd8SdlaCa4hj62zxdzwPFva
 M3FIK5A6Er27ow9klKLqxo1i+d3lkjSO0uPLXwE8/hX+eXHPyPEIVv0GFCPcvo4/Mu5TPb9q
 L5i2z+x40wHCoXWO3CPmaZKdAxiBSVrVPje9p0MHsbec1UOJY3UI6KIqV/XU9c+xPo9eyah1
 izVZ3K0P3Kj3yCaclvTNSg4AF4tNL4mxU8G0eUXFQ7A8xAejUyHtc/zrrM7Iusq8vJN1/lxQ
 6VXcsmMGK0XGD/G5y4cfd/2q4k7LEanggeHPiyEZjkjfsE/G1yVq4G8Jga/pjMTCieXtNclp
 +Hy3A3sXpdeFR9pC9zbaazzwgrp72Qdgu97Q2DBPsJXJBf36IFvJiGo1q03LsgAJA/t3Dyf0
 wrKUx4UqfOU+90+8cXThLDCpICsSrMsEk1fFmjdzLC3KSiFoTbznd4eCL6FJGmPWnn19aOuY
 fRu48v9aPBXzkxXt4dcEqpwyf5s7dXYuLIHnB9vG2/Gbgr3B+o4cGWGx8RGqoZE2qRd5VmtQ
 kuK99RXZeeJNcfiHAJDLQYpdL3eh/Qdmz2U5vUpOkTqoiRw+ePfA0lVOhCNjg1bLad0b9x5k
 btw5pZO5lztkAcuP/aHkjtQpjaFIXE3Wqk6so0XXd3wgQ0xx1AeOZHRB0caOn1Uhwmg5qXyH
 gKpuQ==
IronPort-HdrOrdr: A9a23:IlIyDK4CnBVCxt6mTwPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HJoB17726NtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QCpSWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="59005996"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH v8 13/47] build: introduce if_changed_deps
Date: Thu, 25 Nov 2021 13:39:32 +0000
Message-ID: <20211125134006.1076646-14-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

This macro does compare command line like if_changed, but it also
rewrite the dependencies generated by $(CC) in order to depend on a
CONFIG_* as generated by kconfig instead of depending on autoconf.h.
This allow to make a change in kconfig options and only rebuild the
object that uses that CONFIG_* option.

cmd_and_record isn't needed anymore as it is replace by
cmd_and_fixdep.

There's only one .*.d dependency file left which is explicitly
included as a workound, all the other are been absorb into the .*.cmd
dependency files via `fixdep`. So including .*.d can be removed from
the makefile.

Also adjust "cloc" recipe due to .*.d been replace by .*.cmd files.

This imports fixdep.c and if_changed_deps macro from Linux v5.12.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---

Notes:
    v8:
    - reviewd
    - remove "tools_fixdep" prerequisite in xen/Makefile from "$(TARGET)"
      target as the first command of the recipe will build everything in
      tools/ and thus tools/fixdep.
    - adjust "cloc" recipe.

 .gitignore                 |   1 +
 xen/Makefile               |  15 +-
 xen/Rules.mk               |  17 +-
 xen/arch/x86/Makefile      |   8 +-
 xen/build.mk               |   1 +
 xen/scripts/Kbuild.include |  17 +-
 xen/tools/Makefile         |   7 +-
 xen/tools/fixdep.c         | 404 +++++++++++++++++++++++++++++++++++++
 8 files changed, 441 insertions(+), 29 deletions(-)
 create mode 100644 xen/tools/fixdep.c

diff --git a/.gitignore b/.gitignore
index 841ba1c0a84c..58740c035789 100644
--- a/.gitignore
+++ b/.gitignore
@@ -339,6 +339,7 @@ xen/include/xen/lib/x86/cpuid-autogen.h
 xen/test/livepatch/config.h
 xen/test/livepatch/expect_config.h
 xen/test/livepatch/*.livepatch
+xen/tools/fixdep
 xen/tools/kconfig/.tmp_gtkcheck
 xen/tools/kconfig/.tmp_qtcheck
 xen/tools/symbols
diff --git a/xen/Makefile b/xen/Makefile
index 88997244368c..d38425234c6c 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -196,6 +196,13 @@ export XEN_HAS_CHECKPOLICY := $(call success,$(CHECKPOLICY) -h 2>&1 | grep -q xe
 export root-make-done := y
 endif # root-make-done
 
+# ===========================================================================
+# Rules shared between *config targets and build targets
+
+PHONY += tools_fixdep
+tools_fixdep:
+	$(MAKE) -C tools fixdep
+
 # Shorthand for kconfig
 kconfig = -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(ARCH) SRCARCH=$(SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)"
 
@@ -475,18 +482,18 @@ cscope:
 _MAP:
 	$(NM) -n $(TARGET)-syms | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' > System.map
 
-%.o %.i %.s: %.c FORCE
+%.o %.i %.s: %.c tools_fixdep FORCE
 	$(Q)$(MAKE) $(build)=$(*D) $(*D)/$(@F)
 
-%.o %.s: %.S FORCE
+%.o %.s: %.S tools_fixdep FORCE
 	$(Q)$(MAKE) $(build)=$(*D) $(*D)/$(@F)
 
-%/: FORCE
+%/: tools_fixdep FORCE
 	$(Q)$(MAKE) $(build)=$* need-builtin=1
 
 .PHONY: cloc
 cloc:
-	find . -name tools -prune -o -name '*.o.d' -print | while read f; do \
+	find . -name tools -prune -o -name '*.o.cmd' -print | while read f; do \
 	    for sf in $$(grep -o "[a-zA-Z0-9_/-]*\.[cS]" $$f); do \
 		test -f "$$sf" && echo "$$sf"; \
 	    done; \
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 32a97e012060..4624739ca7e2 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -147,8 +147,8 @@ cpp_flags = $(filter-out -Wa$(comma)% -flto,$(1))
 # Calculation of flags, first the generic flags, then the arch specific flags,
 # and last the flags modified for a target or a directory.
 
-c_flags = -MMD -MP -MF $(@D)/.$(@F).d $(XEN_CFLAGS)
-a_flags = -MMD -MP -MF $(@D)/.$(@F).d $(XEN_AFLAGS)
+c_flags = -MMD -MP -MF $(depfile) $(XEN_CFLAGS)
+a_flags = -MMD -MP -MF $(depfile) $(XEN_AFLAGS)
 
 include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
 
@@ -205,7 +205,7 @@ else
 endif
 
 define rule_cc_o_c
-    $(call cmd_and_record,cc_o_c)
+    $(call cmd_and_fixdep,cc_o_c)
     $(call cmd,objcopy_fix_sym)
 endef
 
@@ -216,7 +216,7 @@ quiet_cmd_cc_o_S = CC      $@
 cmd_cc_o_S = $(CC) $(a_flags) -c $< -o $@
 
 $(obj)/%.o: $(src)/%.S FORCE
-	$(call if_changed,cc_o_S)
+	$(call if_changed_dep,cc_o_S)
 
 
 quiet_cmd_obj_init_o = INIT_O  $@
@@ -246,13 +246,13 @@ quiet_cmd_cpp_s_S = CPP     $@
 cmd_cpp_s_S = $(CPP) $(call cpp_flags,$(a_flags)) -MQ $@ -o $@ $<
 
 $(obj)/%.i: $(src)/%.c FORCE
-	$(call if_changed,cpp_i_c)
+	$(call if_changed_dep,cpp_i_c)
 
 $(obj)/%.s: $(src)/%.c FORCE
-	$(call if_changed,cc_s_c)
+	$(call if_changed_dep,cc_s_c)
 
 $(obj)/%.s: $(src)/%.S FORCE
-	$(call if_changed,cpp_s_S)
+	$(call if_changed_dep,cpp_s_S)
 
 # Linker scripts, .lds.S -> .lds
 quiet_cmd_cpp_lds_S = LDS     $@
@@ -291,9 +291,6 @@ existing-targets := $(wildcard $(sort $(targets)))
 
 -include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
 
-DEPS := $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).d)
--include $(DEPS_INCLUDE)
-
 # Declare the contents of the PHONY variable as phony.  We keep that
 # information in a variable so we can use it in if_changed and friends.
 .PHONY: $(PHONY)
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 6f18daf9105c..456b7eed7536 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -245,7 +245,7 @@ $(BASEDIR)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefil
 
 $(obj)/efi.lds: AFLAGS-y += -DEFI
 $(obj)/xen.lds $(obj)/efi.lds: $(src)/xen.lds.S FORCE
-	$(call if_changed,cpp_lds_S)
+	$(call if_changed_dep,cpp_lds_S)
 
 $(obj)/boot/mkelf32: $(src)/boot/mkelf32.c
 	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
@@ -261,9 +261,3 @@ clean::
 	rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/mkreloc
 	rm -f boot/cmdline.S boot/reloc.S boot/*.lnk boot/*.bin
 	rm -f note.o
-
-# Suppress loading of DEPS files for internal, temporary target files.  This
-# then also suppresses re-generation of the respective .*.d2 files.
-ifeq ($(filter-out .xen%.o,$(notdir $(MAKECMDGOALS))),)
-DEPS_INCLUDE:=
-endif
diff --git a/xen/build.mk b/xen/build.mk
index bf0c9710241a..c471312f98a3 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -39,6 +39,7 @@ include/xen/compile.h: include/xen/compile.h.in .banner FORCE
 
 targets += include/xen/compile.h
 
+-include $(wildcard .asm-offsets.s.d)
 asm-offsets.s: arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c
 	$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
 	$(call move-if-changed,$@.new,$@)
diff --git a/xen/scripts/Kbuild.include b/xen/scripts/Kbuild.include
index a333c3961db6..6be38301e835 100644
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -15,8 +15,7 @@ dot-target = $(@D)/.$(@F)
 
 ###
 # dependencies
-DEPS = .*.d
-DEPS_INCLUDE = $(addsuffix .d2, $(basename $(wildcard $(DEPS))))
+depfile = $(dot-target).d
 
 ###
 # real prerequisites without phony targets
@@ -83,6 +82,8 @@ cmd = @set -e; $(echo-cmd) $(cmd_$(1))
 ###
 # if_changed      - execute command if any prerequisite is newer than
 #                   target, or command line has changed
+# if_changed_dep  - as if_changed, but uses fixdep to reveal dependencies
+#                   including used config symbols
 # if_changed_rule - as if_changed but execute rule instead
 
 ifneq ($(KBUILD_NOCMDDEP),1)
@@ -111,15 +112,19 @@ if_changed = $(if $(any-prereq)$(cmd-check),                                 \
         $(cmd);                                                              \
         printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:)
 
+# Execute the command and also postprocess generated .d dependencies file.
+if_changed_dep = $(if $(any-prereq)$(cmd-check),$(cmd_and_fixdep),@:)
+
+cmd_and_fixdep =                                                             \
+        $(cmd);                                                              \
+        tools/fixdep $(depfile) $@ '$(make-cmd)' > $(dot-target).cmd;        \
+        rm -f $(depfile)
+
 # Usage: $(call if_changed_rule,foo)
 # Will check if $(cmd_foo) or any of the prerequisites changed,
 # and if so will execute $(rule_foo).
 if_changed_rule = $(if $(any-prereq)$(cmd-check),$(rule_$(1)),@:)
 
-cmd_and_record =                                                             \
-        $(cmd);                                                              \
-        printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd
-
 ###
 # why - tell why a target got built
 #       enabled by make V=2
diff --git a/xen/tools/Makefile b/xen/tools/Makefile
index 4e42163f981c..722f3664549d 100644
--- a/xen/tools/Makefile
+++ b/xen/tools/Makefile
@@ -2,11 +2,14 @@
 include $(XEN_ROOT)/Config.mk
 
 .PHONY: default
-default: symbols
+default: symbols fixdep
 
 .PHONY: clean
 clean:
-	rm -f *.o symbols
+	rm -f *.o symbols fixdep
 
 symbols: symbols.c
 	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
+
+fixdep: fixdep.c
+	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
diff --git a/xen/tools/fixdep.c b/xen/tools/fixdep.c
new file mode 100644
index 000000000000..d98540552941
--- /dev/null
+++ b/xen/tools/fixdep.c
@@ -0,0 +1,404 @@
+/*
+ * "Optimize" a list of dependencies as spit out by gcc -MD
+ * for the kernel build
+ * ===========================================================================
+ *
+ * Author       Kai Germaschewski
+ * Copyright    2002 by Kai Germaschewski  <kai.germaschewski@gmx.de>
+ *
+ * This software may be used and distributed according to the terms
+ * of the GNU General Public License, incorporated herein by reference.
+ *
+ *
+ * Introduction:
+ *
+ * gcc produces a very nice and correct list of dependencies which
+ * tells make when to remake a file.
+ *
+ * To use this list as-is however has the drawback that virtually
+ * every file in the kernel includes autoconf.h.
+ *
+ * If the user re-runs make *config, autoconf.h will be
+ * regenerated.  make notices that and will rebuild every file which
+ * includes autoconf.h, i.e. basically all files. This is extremely
+ * annoying if the user just changed CONFIG_HIS_DRIVER from n to m.
+ *
+ * So we play the same trick that "mkdep" played before. We replace
+ * the dependency on autoconf.h by a dependency on every config
+ * option which is mentioned in any of the listed prerequisites.
+ *
+ * kconfig populates a tree in include/config/ with an empty file
+ * for each config symbol and when the configuration is updated
+ * the files representing changed config options are touched
+ * which then let make pick up the changes and the files that use
+ * the config symbols are rebuilt.
+ *
+ * So if the user changes his CONFIG_HIS_DRIVER option, only the objects
+ * which depend on "include/config/his/driver.h" will be rebuilt,
+ * so most likely only his driver ;-)
+ *
+ * The idea above dates, by the way, back to Michael E Chastain, AFAIK.
+ *
+ * So to get dependencies right, there are two issues:
+ * o if any of the files the compiler read changed, we need to rebuild
+ * o if the command line given to the compile the file changed, we
+ *   better rebuild as well.
+ *
+ * The former is handled by using the -MD output, the later by saving
+ * the command line used to compile the old object and comparing it
+ * to the one we would now use.
+ *
+ * Again, also this idea is pretty old and has been discussed on
+ * kbuild-devel a long time ago. I don't have a sensibly working
+ * internet connection right now, so I rather don't mention names
+ * without double checking.
+ *
+ * This code here has been based partially based on mkdep.c, which
+ * says the following about its history:
+ *
+ *   Copyright abandoned, Michael Chastain, <mailto:mec@shout.net>.
+ *   This is a C version of syncdep.pl by Werner Almesberger.
+ *
+ *
+ * It is invoked as
+ *
+ *   fixdep <depfile> <target> <cmdline>
+ *
+ * and will read the dependency file <depfile>
+ *
+ * The transformed dependency snipped is written to stdout.
+ *
+ * It first generates a line
+ *
+ *   cmd_<target> = <cmdline>
+ *
+ * and then basically copies the .<target>.d file to stdout, in the
+ * process filtering out the dependency on autoconf.h and adding
+ * dependencies on include/config/my/option.h for every
+ * CONFIG_MY_OPTION encountered in any of the prerequisites.
+ *
+ * We don't even try to really parse the header files, but
+ * merely grep, i.e. if CONFIG_FOO is mentioned in a comment, it will
+ * be picked up as well. It's not a problem with respect to
+ * correctness, since that can only give too many dependencies, thus
+ * we cannot miss a rebuild. Since people tend to not mention totally
+ * unrelated CONFIG_ options all over the place, it's not an
+ * efficiency problem either.
+ *
+ * (Note: it'd be easy to port over the complete mkdep state machine,
+ *  but I don't think the added complexity is worth it)
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <string.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+
+static void usage(void)
+{
+	fprintf(stderr, "Usage: fixdep <depfile> <target> <cmdline>\n");
+	exit(1);
+}
+
+/*
+ * In the intended usage of this program, the stdout is redirected to .*.cmd
+ * files. The return value of printf() and putchar() must be checked to catch
+ * any error, e.g. "No space left on device".
+ */
+static void xprintf(const char *format, ...)
+{
+	va_list ap;
+	int ret;
+
+	va_start(ap, format);
+	ret = vprintf(format, ap);
+	if (ret < 0) {
+		perror("fixdep");
+		exit(1);
+	}
+	va_end(ap);
+}
+
+static void xputchar(int c)
+{
+	int ret;
+
+	ret = putchar(c);
+	if (ret == EOF) {
+		perror("fixdep");
+		exit(1);
+	}
+}
+
+/*
+ * Print out a dependency path from a symbol name
+ */
+static void print_dep(const char *m, int slen, const char *dir)
+{
+	int c, prev_c = '/', i;
+
+	xprintf("    $(wildcard %s/", dir);
+	for (i = 0; i < slen; i++) {
+		c = m[i];
+		if (c == '_')
+			c = '/';
+		else
+			c = tolower(c);
+		if (c != '/' || prev_c != '/')
+			xputchar(c);
+		prev_c = c;
+	}
+	xprintf(".h) \\\n");
+}
+
+struct item {
+	struct item	*next;
+	unsigned int	len;
+	unsigned int	hash;
+	char		name[];
+};
+
+#define HASHSZ 256
+static struct item *hashtab[HASHSZ];
+
+static unsigned int strhash(const char *str, unsigned int sz)
+{
+	/* fnv32 hash */
+	unsigned int i, hash = 2166136261U;
+
+	for (i = 0; i < sz; i++)
+		hash = (hash ^ str[i]) * 0x01000193;
+	return hash;
+}
+
+/*
+ * Lookup a value in the configuration string.
+ */
+static int is_defined_config(const char *name, int len, unsigned int hash)
+{
+	struct item *aux;
+
+	for (aux = hashtab[hash % HASHSZ]; aux; aux = aux->next) {
+		if (aux->hash == hash && aux->len == len &&
+		    memcmp(aux->name, name, len) == 0)
+			return 1;
+	}
+	return 0;
+}
+
+/*
+ * Add a new value to the configuration string.
+ */
+static void define_config(const char *name, int len, unsigned int hash)
+{
+	struct item *aux = malloc(sizeof(*aux) + len);
+
+	if (!aux) {
+		perror("fixdep:malloc");
+		exit(1);
+	}
+	memcpy(aux->name, name, len);
+	aux->len = len;
+	aux->hash = hash;
+	aux->next = hashtab[hash % HASHSZ];
+	hashtab[hash % HASHSZ] = aux;
+}
+
+/*
+ * Record the use of a CONFIG_* word.
+ */
+static void use_config(const char *m, int slen)
+{
+	unsigned int hash = strhash(m, slen);
+
+	if (is_defined_config(m, slen, hash))
+	    return;
+
+	define_config(m, slen, hash);
+	print_dep(m, slen, "include/config");
+}
+
+/* test if s ends in sub */
+static int str_ends_with(const char *s, int slen, const char *sub)
+{
+	int sublen = strlen(sub);
+
+	if (sublen > slen)
+		return 0;
+
+	return !memcmp(s + slen - sublen, sub, sublen);
+}
+
+static void parse_config_file(const char *p)
+{
+	const char *q, *r;
+	const char *start = p;
+
+	while ((p = strstr(p, "CONFIG_"))) {
+		if (p > start && (isalnum(p[-1]) || p[-1] == '_')) {
+			p += 7;
+			continue;
+		}
+		p += 7;
+		q = p;
+		while (isalnum(*q) || *q == '_')
+			q++;
+		if (str_ends_with(p, q - p, "_MODULE"))
+			r = q - 7;
+		else
+			r = q;
+		if (r > p)
+			use_config(p, r - p);
+		p = q;
+	}
+}
+
+static void *read_file(const char *filename)
+{
+	struct stat st;
+	int fd;
+	char *buf;
+
+	fd = open(filename, O_RDONLY);
+	if (fd < 0) {
+		fprintf(stderr, "fixdep: error opening file: ");
+		perror(filename);
+		exit(2);
+	}
+	if (fstat(fd, &st) < 0) {
+		fprintf(stderr, "fixdep: error fstat'ing file: ");
+		perror(filename);
+		exit(2);
+	}
+	buf = malloc(st.st_size + 1);
+	if (!buf) {
+		perror("fixdep: malloc");
+		exit(2);
+	}
+	if (read(fd, buf, st.st_size) != st.st_size) {
+		perror("fixdep: read");
+		exit(2);
+	}
+	buf[st.st_size] = '\0';
+	close(fd);
+
+	return buf;
+}
+
+/* Ignore certain dependencies */
+static int is_ignored_file(const char *s, int len)
+{
+	return str_ends_with(s, len, "include/generated/autoconf.h") ||
+	       str_ends_with(s, len, "include/generated/autoksyms.h");
+}
+
+/*
+ * Important: The below generated source_foo.o and deps_foo.o variable
+ * assignments are parsed not only by make, but also by the rather simple
+ * parser in scripts/mod/sumversion.c.
+ */
+static void parse_dep_file(char *m, const char *target)
+{
+	char *p;
+	int is_last, is_target;
+	int saw_any_target = 0;
+	int is_first_dep = 0;
+	void *buf;
+
+	while (1) {
+		/* Skip any "white space" */
+		while (*m == ' ' || *m == '\\' || *m == '\n')
+			m++;
+
+		if (!*m)
+			break;
+
+		/* Find next "white space" */
+		p = m;
+		while (*p && *p != ' ' && *p != '\\' && *p != '\n')
+			p++;
+		is_last = (*p == '\0');
+		/* Is the token we found a target name? */
+		is_target = (*(p-1) == ':');
+		/* Don't write any target names into the dependency file */
+		if (is_target) {
+			/* The /next/ file is the first dependency */
+			is_first_dep = 1;
+		} else if (!is_ignored_file(m, p - m)) {
+			*p = '\0';
+
+			/*
+			 * Do not list the source file as dependency, so that
+			 * kbuild is not confused if a .c file is rewritten
+			 * into .S or vice versa. Storing it in source_* is
+			 * needed for modpost to compute srcversions.
+			 */
+			if (is_first_dep) {
+				/*
+				 * If processing the concatenation of multiple
+				 * dependency files, only process the first
+				 * target name, which will be the original
+				 * source name, and ignore any other target
+				 * names, which will be intermediate temporary
+				 * files.
+				 */
+				if (!saw_any_target) {
+					saw_any_target = 1;
+					xprintf("source_%s := %s\n\n",
+						target, m);
+					xprintf("deps_%s := \\\n", target);
+				}
+				is_first_dep = 0;
+			} else {
+				xprintf("  %s \\\n", m);
+			}
+
+			buf = read_file(m);
+			parse_config_file(buf);
+			free(buf);
+		}
+
+		if (is_last)
+			break;
+
+		/*
+		 * Start searching for next token immediately after the first
+		 * "whitespace" character that follows this token.
+		 */
+		m = p + 1;
+	}
+
+	if (!saw_any_target) {
+		fprintf(stderr, "fixdep: parse error; no targets found\n");
+		exit(1);
+	}
+
+	xprintf("\n%s: $(deps_%s)\n\n", target, target);
+	xprintf("$(deps_%s):\n", target);
+}
+
+int main(int argc, char *argv[])
+{
+	const char *depfile, *target, *cmdline;
+	void *buf;
+
+	if (argc != 4)
+		usage();
+
+	depfile = argv[1];
+	target = argv[2];
+	cmdline = argv[3];
+
+	xprintf("cmd_%s := %s\n\n", target, cmdline);
+
+	buf = read_file(depfile);
+	parse_dep_file(buf, target);
+	free(buf);
+
+	return 0;
+}
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:48:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:48:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231322.400409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6h-0004fQ-EF; Thu, 25 Nov 2021 13:48:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231322.400409; Thu, 25 Nov 2021 13:48:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6g-0004YY-5w; Thu, 25 Nov 2021 13:48:10 +0000
Received: by outflank-mailman (input) for mailman id 231322;
 Thu, 25 Nov 2021 13:48:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0g-00076i-37
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:58 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74b08918-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:41:56 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74b08918-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847716;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=84a5ACH3vmAplQpyvArcPgKE++VGrDYmdqQ8lZna65Y=;
  b=XmnRi66U57wVpGy2N8C9O9ZpxM/AHVygD4tWwRDQ+hBKZlJR1z4fmnDh
   vbNpk7VuoPqLK/y4hxC5cu34HXUThQiU7RqMuCNyYS3nvWSUDCDjWHMq1
   E4+xMIISi9sHsB6lXgEeKlbJ0U0ZLIohjC39jfdekZpypOiCRBO0gjRrV
   o=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: NHGO3+FqzGWJR3qr8dh1z4wByAV6s5GnusgFPkohcA9qRdv6G1CfCKN7ZBURhD4yH/c5u8FIo/
 SGHBggdKiwQvO1hN30KMLebjCjhjwwFG+pHnXmw/Sdfa8IMLZ1CvKUOxpEN5KON2FAmxJ+YG57
 h4OSpdS0+Zj2Q6EckDOOexSxPmXSKxFs1mhv/HUHHjM8d03ypUDFQTd/h80oF0seopIrVGOCQL
 rGc4AlX4ZYNJHcLWH4vPxuYxN0ck4+Boxs2w5Gq4KVoUn2m5FQ67hmIjuUfEIaLOl1NtDYf8FU
 d7J1QImx3gg7WDEWcFS+D+0P
X-SBRS: 5.1
X-MesageID: 58617708
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:oFz2fKDTA3Y1GxVW/4nkw5YqxClBgxIJ4kV8jS/XYbTApDoh1DRRy
 2scUWDXO6qNZTTzfY8gYd6x/BsGuZ6Ey9FgQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540087wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/lSmEuv1Sz
 dt2usarWwI0JOrGxOM4akwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTQ+9whsMlPY/zMZkWoH1IxjDFF/c2B5vERs0m4PcFjGlp2Z8WTZ4yY
 eIgRjdtKw79OSF1O1QYU6kjxeaavlLWJmgwRFW9+vNsvjm7IBZK+KP2LNPfd9iORMNUtkWVv
 GTL+yL+GB5yHN6CzTuI9Fq8i+mJmjn0MKoZHae08fNCi1SJymseThYRUDOTvv2RmkO4HdVFJ
 CQ88ywyra805QqzQ8P0RRGQr3uNvxpaUN1Ve8Uq5QfIxqfK7gKxAmkfUiUHeNEgrNUxRzEhy
 hmOhdyBLT5lvaCRSHmd3qyJtj70Mi8QRUcDei0sXQYD+8Pkoow4klTIVNkLLUKupoSrQ3eqm
 WnM9XVgweVI5SIW60ml1U7bjheBhZ3HdQFv/RfSQ3ji5F9+QbfwMuRE9mPnxfpHKY+YSHyIs
 34Fh9WS4YgyMH2dqMCeaL5TRe/0vp5pJBWZ2AcyRMd5q1xB7lb6JdgIiAySMnuFJSrtldXBR
 EbI8T1c65ZIVJdBRf8mOtnhYyjGIEWJKDgEahw2RoYRCnSSXFXelM2LWaJ39zqw+HXAaYllZ
 f+mnT+EVB7285hPwjusXPs62rQ23C04zm67bcmllEv4juvONC/PF+Zt3L6yggcRtv3sneko2
 4wHa5viJ+t3DIUSnRU7AaZMdAtXfBDX9Lj9qtBNd/7rH+aVMDpJNhMl+pt4I9YNt/0Mzo/gp
 yjhMmcFmAuXrSCWcm2iNyE8AI4DqL4i9BrXywR3Zg32s5XiCK7yhJoim2wfIeN6qbc9lKEsF
 JHouayoW5xyd9gOwBxFBbGVkWCoXEjDadumM3X3bT4hUYRnQgCVqNbochG2rHsFDzattNt4q
 Lqlj1uJTZ0GTgVkLcDXdPPwkA/h4SlDwLp/DxnSP91eWETw64w2eSb/ueA6fpMXIhLZyzrEi
 wvPWUUEpfPAqpMe+cXSgfzWtJ+gFuZzRxIIH2TS4busGzPd+26vnd1JXOqSJGiPX2Lo4qSyI
 +5SyqikYvEAmV9Ltat6Eqpqkv1it4e++ecCw109TnvRblmtBrdxGVW83JFC5v9X27tUmQqqQ
 UbTqNNUDqqEZZH+G1kLKQt7MunajaMImiPf5OgeKVnh4HMl56KOVEhfMkXeiCFZK7cpYoopz
 f145ZwT4g27zBErLsyHnmZf8GHVdi4MVKAut5c7Bo73i1V0lgEeMMKEUiKmsouSb9hsM1UxJ
 m7GjaXPsL1Q207efidhDnPKx+dc2cwDtR0iIIXu/LhVdg4pXsMK4SA=
IronPort-HdrOrdr: A9a23:YLJgla9abbmZx1nCxcBuk+DeI+orL9Y04lQ7vn2YSXRuHfBw8P
 re+8jztCWE8Qr5N0tApTntAsS9qDbnhPxICOoqTNOftWvd2FdARbsKheCJ/9SjIVyaygc079
 YHT0EUMrPN5DZB4foSmDPIcOod/A==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58617708"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"George Dunlap" <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Doug Goldstein
	<cardoe@cardoe.com>
Subject: [XEN PATCH v8 38/47] WIP, no-VPATH: rework Makefile.host
Date: Thu, 25 Nov 2021 13:39:57 +0000
Message-ID: <20211125134006.1076646-39-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

Allow to build 'defconfig' target without VPATH in out-of-tree build

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/scripts/Makefile.host  | 34 +++++++++++++++++++++++++---------
 xen/tools/kconfig/Makefile | 12 +++++++++---
 2 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/xen/scripts/Makefile.host b/xen/scripts/Makefile.host
index d6c358095ee8..d083c6dbca76 100644
--- a/xen/scripts/Makefile.host
+++ b/xen/scripts/Makefile.host
@@ -8,7 +8,7 @@ target-stem = $(basename $(patsubst $(obj)/%,%,$@))
 quiet_cmd_flex = LEX     $@
       cmd_flex = $(LEX) -o$@ -L $<
 
-$(obj)/%.lex.c: $(src)/%.l FORCE
+$(obj)/%.lex.c: $(srctree)/$(src)/%.l FORCE
 	$(call if_changed,flex)
 
 # YACC
@@ -16,7 +16,7 @@ $(obj)/%.lex.c: $(src)/%.l FORCE
 quiet_cmd_bison = YACC    $(basename $@).[ch]
       cmd_bison = $(YACC) -o $(basename $@).c --defines=$(basename $@).h -t -l $<
 
-$(obj)/%.tab.c $(obj)/%.tab.h: $(src)/%.y FORCE
+$(obj)/%.tab.c $(obj)/%.tab.h: $(srctree)/$(src)/%.y FORCE
 	$(call if_changed,bison)
 
 # ==========================================================================
@@ -56,6 +56,11 @@ host-cmulti	:= $(foreach m,$(__hostprogs),\
 
 # Object (.o) files compiled from .c files
 host-cobjs	:= $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
+# from generated .c files
+host-cobjs-generated	:= $(sort $(foreach m,$(__hostprogs),$($(m)-objs-generated)))
+ifndef building_out_of_srctree
+host-cobjs += $(host-cobjs-generated)
+endif
 
 # C++ code
 # C++ executables compiled from at least one .cc file
@@ -72,6 +77,9 @@ host-cxxshobjs	:= $(sort $(foreach m,$(host-cxxshlib),$($(m:.so=-objs))))
 host-csingle	:= $(addprefix $(obj)/,$(host-csingle))
 host-cmulti	:= $(addprefix $(obj)/,$(host-cmulti))
 host-cobjs	:= $(addprefix $(obj)/,$(host-cobjs))
+ifdef building_out_of_srctree
+host-cobjs-generated	:= $(addprefix $(obj)/,$(host-cobjs-generated))
+endif
 host-cxxmulti	:= $(addprefix $(obj)/,$(host-cxxmulti))
 host-cxxobjs	:= $(addprefix $(obj)/,$(host-cxxobjs))
 host-cshlib	:= $(addprefix $(obj)/,$(host-cshlib))
@@ -104,25 +112,30 @@ hostcxx_flags  = -Wp,-MD,$(depfile) $(_hostcxx_flags)
 quiet_cmd_host-csingle 	= HOSTCC  $@
       cmd_host-csingle	= $(HOSTCC) $(hostc_flags) $(HOSTLDFLAGS) -o $@ $< \
 		$(HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
-$(host-csingle): $(obj)/%: $(src)/%.c FORCE
+$(host-csingle): $(obj)/%: $(srctree)/$(src)/%.c FORCE
 	$(call if_changed_dep,host-csingle)
 
 # Link an executable based on list of .o files, all plain c
 # host-cmulti -> executable
 quiet_cmd_host-cmulti	= HOSTLD  $@
       cmd_host-cmulti	= $(HOSTCC) $(HOSTLDFLAGS) -o $@ \
-			  $(addprefix $(obj)/, $($(target-stem)-objs)) \
+			  $(foreach o,objs objs-generated, \
+			  $(addprefix $(obj)/, $($(target-stem)-$(o)))) \
 			  $(HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
 $(host-cmulti): FORCE
 	$(call if_changed,host-cmulti)
-$(call multi-depend, $(host-cmulti), , -objs)
+$(call multi-depend, $(host-cmulti), , -objs -objs-generated)
 
 # Create .o file from a single .c file
 # host-cobjs -> .o
 quiet_cmd_host-cobjs	= HOSTCC  $@
       cmd_host-cobjs	= $(HOSTCC) $(hostc_flags) -c -o $@ $<
-$(host-cobjs): $(obj)/%.o: $(src)/%.c FORCE
+$(host-cobjs): $(obj)/%.o: $(srctree)/$(src)/%.c FORCE
 	$(call if_changed_dep,host-cobjs)
+ifdef building_out_of_srctree
+$(host-cobjs-generated): $(obj)/%.o: $(obj)/%.c FORCE
+	$(call if_changed_dep,host-cobjs)
+endif
 
 # Link an executable based on list of .o files, a mixture of .c and .cc
 # host-cxxmulti -> executable
@@ -138,14 +151,14 @@ $(call multi-depend, $(host-cxxmulti), , -objs -cxxobjs)
 # Create .o file from a single .cc (C++) file
 quiet_cmd_host-cxxobjs	= HOSTCXX $@
       cmd_host-cxxobjs	= $(HOSTCXX) $(hostcxx_flags) -c -o $@ $<
-$(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE
+$(host-cxxobjs): $(obj)/%.o: $(srctree)/$(src)/%.cc FORCE
 	$(call if_changed_dep,host-cxxobjs)
 
 # Compile .c file, create position independent .o file
 # host-cshobjs -> .o
 quiet_cmd_host-cshobjs	= HOSTCC  -fPIC $@
       cmd_host-cshobjs	= $(HOSTCC) $(hostc_flags) -fPIC -c -o $@ $<
-$(host-cshobjs): $(obj)/%.o: $(src)/%.c FORCE
+$(host-cshobjs): $(obj)/%.o: $(srctree)/$(src)/%.c FORCE
 	$(call if_changed_dep,host-cshobjs)
 
 # Compile .c file, create position independent .o file
@@ -155,7 +168,7 @@ $(host-cshobjs): $(obj)/%.o: $(src)/%.c FORCE
 # host-cxxshobjs -> .o
 quiet_cmd_host-cxxshobjs	= HOSTCXX -fPIC $@
       cmd_host-cxxshobjs	= $(HOSTCXX) $(hostcxx_flags) -fPIC -c -o $@ $<
-$(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
+$(host-cxxshobjs): $(obj)/%.o: $(srctree)/$(src)/%.c FORCE
 	$(call if_changed_dep,host-cxxshobjs)
 
 # Link a shared library, based on position independent .o files
@@ -180,3 +193,6 @@ $(call multi-depend, $(host-cxxshlib), .so, -objs)
 
 targets += $(host-csingle)  $(host-cmulti) $(host-cobjs)\
 	   $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs)
+ifdef building_out_of_srctree
+targets += $(host-cobjs-generated)
+endif
diff --git a/xen/tools/kconfig/Makefile b/xen/tools/kconfig/Makefile
index b7b9a419ad59..c2ecf4b36652 100644
--- a/xen/tools/kconfig/Makefile
+++ b/xen/tools/kconfig/Makefile
@@ -146,8 +146,9 @@ help:
 
 # ===========================================================================
 # object files used by all kconfig flavours
-common-objs	:= confdata.o expr.o lexer.lex.o parser.tab.o preprocess.o \
+common-objs	:= confdata.o expr.o  preprocess.o \
 		   symbol.o
+common-objs-generated := lexer.lex.o parser.tab.o
 
 $(obj)/lexer.lex.o: $(obj)/parser.tab.h
 HOSTCFLAGS_lexer.lex.o	:= -I $(srctree)/$(src)
@@ -156,10 +157,12 @@ HOSTCFLAGS_parser.tab.o	:= -I $(srctree)/$(src)
 # conf: Used for defconfig, oldconfig and related targets
 hostprogs-y	+= conf
 conf-objs	:= conf.o $(common-objs)
+conf-objs-generated := $(common-objs-generated)
 
 # nconf: Used for the nconfig target based on ncurses
 hostprogs-y	+= nconf
 nconf-objs	:= nconf.o nconf.gui.o $(common-objs)
+nconf-objs-generated := $(common-objs-generated)
 
 HOSTLDLIBS_nconf	= $(shell . $(obj)/nconf-cfg && echo $$libs)
 HOSTCFLAGS_nconf.o	= $(shell . $(obj)/nconf-cfg && echo $$cflags)
@@ -172,6 +175,7 @@ hostprogs-y	+= mconf
 lxdialog	:= $(addprefix lxdialog/, \
 		     checklist.o inputbox.o menubox.o textbox.o util.o yesno.o)
 mconf-objs	:= mconf.o $(lxdialog) $(common-objs)
+mconf-objs-generated	:= $(common-objs-generated)
 
 HOSTLDLIBS_mconf = $(shell . $(obj)/mconf-cfg && echo $$libs)
 $(foreach f, mconf.o $(lxdialog), \
@@ -183,6 +187,7 @@ $(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/mconf-cfg
 hostprogs-y	+= qconf
 qconf-cxxobjs	:= qconf.o
 qconf-objs	:= images.o $(common-objs)
+qconf-objs-generated	:= $(common-objs-generated)
 
 HOSTLDLIBS_qconf	= $(shell . $(obj)/qconf-cfg && echo $$libs)
 HOSTCXXFLAGS_qconf.o	= $(shell . $(obj)/qconf-cfg && echo $$cflags)
@@ -192,12 +197,13 @@ $(obj)/qconf.o: $(obj)/qconf-cfg $(obj)/qconf.moc
 quiet_cmd_moc = MOC     $@
       cmd_moc = $(shell . $(obj)/qconf-cfg && echo $$moc) -i $< -o $@
 
-$(obj)/%.moc: $(src)/%.h $(obj)/qconf-cfg
+$(obj)/%.moc: $(srctree)/$(src)/%.h $(obj)/qconf-cfg
 	$(call cmd,moc)
 
 # gconf: Used for the gconfig target based on GTK+
 hostprogs-y	+= gconf
 gconf-objs	:= gconf.o images.o $(common-objs)
+gconf-objs-generated	:= $(common-objs-generated)
 
 HOSTLDLIBS_gconf    = $(shell . $(obj)/gconf-cfg && echo $$libs)
 HOSTCFLAGS_gconf.o  = $(shell . $(obj)/gconf-cfg && echo $$cflags)
@@ -207,7 +213,7 @@ $(obj)/gconf.o: $(obj)/gconf-cfg
 # check if necessary packages are available, and configure build flags
 filechk_conf_cfg = $(CONFIG_SHELL) $<
 
-$(obj)/%conf-cfg: $(src)/%conf-cfg.sh FORCE
+$(obj)/%conf-cfg: $(srctree)/$(src)/%conf-cfg.sh FORCE
 	$(call filechk,conf_cfg)
 
 clean-files += *conf-cfg
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:48:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231328.400433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6o-0006VT-11; Thu, 25 Nov 2021 13:48:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231328.400433; Thu, 25 Nov 2021 13:48:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6n-0006Tn-P6; Thu, 25 Nov 2021 13:48:17 +0000
Received: by outflank-mailman (input) for mailman id 231328;
 Thu, 25 Nov 2021 13:48:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF1D-0007NX-Hi
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:42:31 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 88f64a68-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:42:30 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88f64a68-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847750;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=M5y2bRJwpf/f0iMaWElHVm6rrtkE9/3uGDJa1vQtN3Q=;
  b=XJ1agrudUQ1NaqUb7sXHOKZ2P6SUF8ASYQ53t/ozyBto7GC1H60wLdTm
   loza74i3lFw/X0UZ3taK8UNExfIBaoYmvFuysZFfpEw7NnwRtkGqEvbs2
   18F85z6bRBfvCepU0soJI2SEjSi1a+lzWw+iEzeOTWsGxzFBoXz8QHSS+
   s=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: +2VEdq1WgiM/G1sp2lY11YCa7Erm61nQNOXokXF538l83+fX9k5dAvASaT44CAaIIM0zTs6pRv
 /ArX0jk6a9Ws6lcFXdk0cEZQDYk6kerArldHTosuhrBjU8VmdrmJXUr4syJjt/BpXFNm0+iGLL
 APgv3nrao5vzL/YfoWWzGQ9CyToQfHCYqVY171Fq5qzxhcr735Z4w0+Yqcbi83JeE5Zx1Wr7kJ
 eEhpYH8TlPyi32mvsQi0JeYKINidKljsc82yL5zVbVxXO6ivciLoAAf4Ew3YGfkZmY2ircxvxN
 Jc3EEgyEveoUTZNDkzpFvw4j
X-SBRS: 5.1
X-MesageID: 60634187
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:oL6KfatgdgMA6GCvFsJboqbUMefnVL9ZMUV32f8akzHdYApBsoF/q
 tZmKW2Gb6mDZDGjet8gPo238kpUupHRzYBgT1Q9rys0Hi9D+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24XhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npl65GpWA4gErP2vMdCDRhKLAZbIapP5+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DNYUDunZm3HfBAOwvW5zrSKTW/95Imjw3g6iiGN6AP
 5RCNWM/M3wsZTV/PQ0sDLY5l96Yl0j6VyZbqQO4mqsetj27IAtZj+G2bYu9lsaxbclakkuXv
 Gvu43XyAhZcMseWjzWC7BqEivfUmCLnWKobDLCi6uNxm1qX23ASDxsNE1C8pJGRmkO4Ht5SN
 UEQ0i4vtrQpslymSMHnWB+1q2LCuQQTM/JZFfE67wecjLLZ+Q+DCkALSzdAbJots8peeNAx/
 gbXxZWzX2Up6eDLDyLGnluJkd+sEXYYNH4LbAMady8mvIfisr4Uqw7IR8k2RcZZkebJMT33x
 jmLqg03iLMSkdMH2s2HwLzXv96/jsOXF1Bov207Skrgt1okP9D9O+RE/HCCta4YRLt1WGVtq
 5TtdyK2yOkVRa+AmyWWKAnmNOH4vq3VWNEwbLMGInXAy9hP0yL8FWyzyGsnTKuMDirjUWW0C
 HI/QSsLuPdu0IKCNMebmb6ZBcUw1rTHHt/4TP3SZdcmSsEvL1DYo3A+NR/KgTGFfK0QfUYXY
 8nzTCpRJSxCVfQPIMSeG4/xLoPHNghhnDiOFPgXPjys0KaEZW79dFv2GADmUwzN14vd+F+92
 48Gb6OikkwDOMWjMni/2dNCdjgicClkba0aXuQKL4Zv1CI9Qzp/YxIQqJt8E7FYc1N9yr2Vo
 yrjAxAAkzISRxTvcG23V5yqU5u3Nb4XkJ7xFXdE0Y+A1ydxbICxwr0YcpdrL7Ar+PY6lax/T
 uUfetXGCfNKE2yV9zMYZJj7jYpjaBX02l7eY3v7OGAyL8x6WgjE2t74ZQ+zpiMAOTW66Jklq
 Lq62wKFHZdaH1Z+DNzbYe6Exk+quSRPg/p7WkbFe4EBeEjl/IVwBTb2i/s7f5MFJRnZn2PI3
 AeKGxYI4+LKptZtotXOgKmFqaavEvd/QRUGTzWKs+7uOHCDrGS5wIJGXOKZRhznVTv5qPe4e
 OFY7/DgK/lbzlxEhJVxTuRwxqUk6tqx+7IDllZ4HG/GZkiAA697JiXUxtFGs6BAy+MLuQayX
 U7TqNBWNa/QZZHgGV8VYgEkcv6CxbcfnTyLtaY5J0Dz5SlW+rubUBoNY0nQ2XIFdLYlYpk4x
 eoBudIN713tgxUnBd+KkyRI+jneNXcHSagm6skXDYKDZtDHEb2ejUgw0hPL3aw=
IronPort-HdrOrdr: A9a23:3rvEOaF025sUspwxpLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5q
 aTdZUgpGfJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YYT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="60634187"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Anthony PERARD
	<anthony.perard@gmail.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: [XEN PATCH v8 42/47] RFC, no-VPATH: workaround includes in xsm/flask
Date: Thu, 25 Nov 2021 13:40:01 +0000
Message-ID: <20211125134006.1076646-43-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Anthony PERARD <anthony.perard@gmail.com>

maybe generated header should be in a different directory

using <>-included headers instead of "" to avoid gcc including headers
from the source tree when it needs to includes them from the build
tree.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/xsm/flask/include/avc.h      | 4 ++--
 xen/xsm/flask/include/avc_ss.h   | 2 +-
 xen/xsm/flask/include/objsec.h   | 2 +-
 xen/xsm/flask/include/security.h | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/xsm/flask/include/avc.h b/xen/xsm/flask/include/avc.h
index c14bd07a2b39..b9be6ca5aa8b 100644
--- a/xen/xsm/flask/include/avc.h
+++ b/xen/xsm/flask/include/avc.h
@@ -14,8 +14,8 @@
 #include <xen/percpu.h>
 #include <xen/spinlock.h>
 
-#include "flask.h"
-#include "av_permissions.h"
+#include <flask.h>
+#include <av_permissions.h>
 #include "security.h"
 
 extern bool flask_enforcing;
diff --git a/xen/xsm/flask/include/avc_ss.h b/xen/xsm/flask/include/avc_ss.h
index a3d7d1ef07a8..d80c2c7e57d8 100644
--- a/xen/xsm/flask/include/avc_ss.h
+++ b/xen/xsm/flask/include/avc_ss.h
@@ -6,7 +6,7 @@
 #ifndef _FLASK_AVC_SS_H_
 #define _FLASK_AVC_SS_H_
 
-#include "flask.h"
+#include <flask.h>
 
 int avc_ss_reset(u32 seqno);
 
diff --git a/xen/xsm/flask/include/objsec.h b/xen/xsm/flask/include/objsec.h
index b576a5dd4381..69ec66d3fe33 100644
--- a/xen/xsm/flask/include/objsec.h
+++ b/xen/xsm/flask/include/objsec.h
@@ -14,7 +14,7 @@
 #define _FLASK_OBJSEC_H_
 
 #include <xen/sched.h>
-#include "flask.h"
+#include <flask.h>
 #include "avc.h"
 
 struct domain_security_struct {
diff --git a/xen/xsm/flask/include/security.h b/xen/xsm/flask/include/security.h
index ec8b442a8f3b..8433541aa738 100644
--- a/xen/xsm/flask/include/security.h
+++ b/xen/xsm/flask/include/security.h
@@ -10,7 +10,7 @@
 #ifndef _FLASK_SECURITY_H_
 #define _FLASK_SECURITY_H_
 
-#include "flask.h"
+#include <flask.h>
 
 #define SECSID_NULL            0x00000000 /* unspecified SID */
 #define SECSID_WILD            0xffffffff /* wildcard SID */
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:48:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231329.400443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6q-0006wi-2Z; Thu, 25 Nov 2021 13:48:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231329.400443; Thu, 25 Nov 2021 13:48:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6p-0006ur-Gg; Thu, 25 Nov 2021 13:48:19 +0000
Received: by outflank-mailman (input) for mailman id 231329;
 Thu, 25 Nov 2021 13:48:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0s-00076i-H2
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:42:10 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b739584-4df5-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 14:42:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b739584-4df5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847729;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=o70thL8LZfXVGN0BO7FVeJVHlQxVD96SJrfgO735CIw=;
  b=Z75/qpFCXf+PG1EyVL2smPIxEojmFvfSdIiDMGQ2WvHHGke+AUt4hM9F
   WK54DRos6L+MBntxPeEP1RCEx5LdPgTI8h8HqMZTNtcF8EQszUy09QDbi
   MRHwzXaAQV/5uUUQz098CkNZKPKV4VdsAWFWPJu09cbSuGd4e3V6tIBpA
   Q=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: NuhfKlMtoiYjL7hI3xnhJJk2ng5kkY1GC7m9UKJeO4kPabWG7I1YbRETyTtAskKQ4MZDvrYky6
 Nl6n7cFbwssCn3yCfIKOtiDxXil1ZCM4WBWAnCKWUotJV8KK+yuoyOXjBwcxWJ00qGSDeXQo3I
 Re4C4Vx8yuzYMgwPJDe/3CxpAwuHKWsEj2P2tMRS+Hvw4Vw4SVTN3rIKjziTwesxPdFkaUo2Yq
 f23HL+eMlXWaWNmT99Zk3pcRkPrmajvA47S7TcAHuGrhgV3zqXm9ln4MeWCfqqQBs91nzcVVRe
 7O7dgnCq6BEMZNNlGNhOuBBy
X-SBRS: 5.1
X-MesageID: 58576724
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:yTl/Xa6GhV+/DuOF8XzF1gxRtMXAchMFZxGqfqrLsTDasY5as4F+v
 jQfUD3Xbq3bYTH1L9wjaY6/pxtQvJbXmoRmHgJr/ykyHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NMw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zl
 PddhKe+ZxUQH4bXwOUwXiBKAXlXBPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALJc/3PIQZqzd4wCvQF/oOSpHfWaTao9Rf2V/cg+gTTauBO
 ZVDNVKDajztRkRfJWxKWakBu72GnnykKwdmgQis8P9fD2/7k1UqjemF3MDuUt6XQcRYmG6Iq
 2SA+H72ajkBL8CWwzeB9nOqh8fMkDn9VYZUE6e3ntZ1hHWDy2pVDwcZPXOrrP/8hkOgVtZ3L
 00P5jFovaU07FasTNT2Q1u/unHslh8DWfJAHusi8gaPx6HIpQGDCQAsTDRMddgnv88eXiEx2
 xmCmNaBONB0mOTLEzTHrO7S9G7sf3hORYMfWcMaZVcn8+jYrq8htzPkVY5iPaOMnM+tMAill
 lhmsxMCr7kUiMcK0YCy8lbGny+gq/D1c+Il2unEdjn7t10kPeZJc6TtsAGGtqgYcO51W3HY5
 CBc8/Vy+tziGn1keMalZOwWVI+k6P+eWNE3qQ4+RsJxn9hBFpPKQGyx3N2cDBs2WirnUWWwC
 KM2he+2zMUOVEZGlYctP+qM5z0ClMAM7+jNWPHOdcZpaZNsbgKB9ywGTRfOhD+yzxl8wfBlZ
 8bznSOQ4ZEyU/oP8dZLb71Fje9DKt4WmQs/uqwXPzz4iOHDNRZ5uJ8OMUeUb/BR0U93iF69z
 jqrDOPTk083eLSnOkH/qNdPRXhXfSlTLc2n8KR/K7/cSjeK7Ul8Upc9N5t6INc790mU/8+Vl
 kyAtrhwlACi2CaZcFrSMRiOqtrHBP5CkJ7yBgR0VX7A5pTpSdzHAH43e8RlcL852vZkyPIoH
 fAJd9/ZWqZESyjd+iRbZp749dQweBOujAOIHiykfDlgIMIwG12XoofpLln16S0DLiurrs9i8
 beu4RzWHMgYTAN4AceINP/2lwGtvWIQkf5ZVlfTJoUBY13l9YVncnSjjvI+L8wWBw/Ewz+Wi
 1SfDRsC/LGfqI4p6tjZw6uDqt7xQed5G0NbGUjd7Kq3anaGrjbyn9cYXb/RLz7HVW7y9KGzX
 slvzqnxYK8dgVJHk4tgCLI3n6gw0MTi+u1BxQN+EXSVM1nyUuF8ImOL1NVkv7FWwuMLohO/X
 0+C94UIObiNP8+5QlcdKBB8M7aG3PAQ3DLT8e40MAPx4youpOiLVkBbPh+tji1BLeQqbNN5k
 Ll54MNGuRaijhcKM8qdinEG/muBGXUMTqE7u8xIG4TskAcqlglPbJG05vUaO31ThwGg6nUXH
 wI=
IronPort-HdrOrdr: A9a23:HjttuqPPh/mKFMBcTsejsMiBIKoaSvp037Eqv3ofdfUzSL3+qy
 nOpoVj6faaslcssR0b9OxofZPwI080lqQFhbX5X43DYOCOggLBR+tfBMnZsljd8kXFh4hgPM
 xbHZSWZuedMbEDt7eY3DWF
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58576724"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Ian
 Jackson" <iwj@xenproject.org>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 43/47] WIP, no-VPATH: build object from generated assembly source file
Date: Thu, 25 Nov 2021 13:40:02 +0000
Message-ID: <20211125134006.1076646-44-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

gen-objs-c and gen-objs-S can't have the list of targets.

Alternative, merge both list and use $(filter ).

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 xen/Rules.mk | 6 ++++++
 xen/build.mk | 7 +++++++
 2 files changed, 13 insertions(+)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index 44af005fd57e..2d8d32f5fd72 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -26,6 +26,7 @@ lib-y :=
 targets :=
 ## targets made from generated sources
 gen-objs-c :=
+gen-objs-S :=
 subdir-y :=
 CFLAGS-y :=
 AFLAGS-y :=
@@ -99,6 +100,7 @@ lib-y           := $(addprefix $(obj)/,$(lib-y))
 obj-y           := $(addprefix $(obj)/,$(obj-y))
 obj-bin-y       := $(addprefix $(obj)/,$(obj-bin-y))
 gen-objs-c      := $(addprefix $(obj)/,$(gen-objs-c))
+gen-objs-S      := $(addprefix $(obj)/,$(gen-objs-S))
 subdir-y        := $(addprefix $(obj)/,$(subdir-y))
 nocov-y         := $(addprefix $(obj)/,$(nocov-y))
 noubsan-y       := $(addprefix $(obj)/,$(noubsan-y))
@@ -255,6 +257,10 @@ $(obj)/%.o: $(srctree)/$(src)/%.c FORCE
 quiet_cmd_cc_o_S = CC      $@
 cmd_cc_o_S = $(CC) $(a_flags) -c $< -o $@
 
+ifdef building_out_of_srctree
+$(gen-objs-S): $(obj)/%.o: $(obj)/%.S FORCE
+	$(call if_changed_dep,cc_o_S)
+endif
 $(obj)/%.o: $(src)/%.S FORCE
 	$(call if_changed_dep,cc_o_S)
 
diff --git a/xen/build.mk b/xen/build.mk
index 7b48b7eb1404..2f2cbbbeabf8 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -83,6 +83,13 @@ prelink.o: $(ALL_OBJS) $(ALL_LIBS) FORCE
 	$(call if_changed,ld)
 endif
 
+# Source generated in arch/*/Makefile to build $(TARGET)-syms
+gen-objs-S += .$(TARGET)-syms.0.o
+gen-objs-S += .$(TARGET)-syms.1.o
+# Source generated in arch/*/Makefile to build $(TARGET).efi
+gen-objs-S += .$(TARGET).efi.0r.o .$(TARGET).efi.0s.o
+gen-objs-S += .$(TARGET).efi.1r.o .$(TARGET).efi.1s.o
+
 targets += prelink.o
 
 $(TARGET): prelink.o FORCE
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 13:48:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 13:48:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231331.400447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6q-00072X-Vk; Thu, 25 Nov 2021 13:48:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231331.400447; Thu, 25 Nov 2021 13:48:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqF6q-00070d-7O; Thu, 25 Nov 2021 13:48:20 +0000
Received: by outflank-mailman (input) for mailman id 231331;
 Thu, 25 Nov 2021 13:48:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nd7+=QM=citrix.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1mqF0B-0007NX-6U
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 13:41:27 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62a71412-4df5-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 14:41:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62a71412-4df5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637847686;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=eADHJIy3aZSo8eo5bCByBjcWS5FHvbhrDV1qn8IKzhs=;
  b=J1bP2hX3ue7UgV0C/HmGiR94NGGRsndn+5LaN/83v8dJgg5fK2PVZbf1
   VYnqyP5gac6zYPQCsLSkBH2jx3/U5nFaPgjcYFyfyjLjQXpypVOuTkYHX
   vE00ea8TW+R0TjsrIjvI+Oo3O9IsWHmdZ/z0tFUUh0HL6K3kZcTXqFr9v
   0=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: lnAmMJErsnuFCXmexossqfkUNChbCwu0blTDBVlvg4AIVZjyogaKaKYxje0FDWSnltqrk59x8d
 PkFXViq5ll6jvgib4yc+kKm+LurRLvezodMD2dEMecCeD6rod29eTWBp+Y198dPe7nPJbiBNWu
 nHGwhVfB2WAQ1MOHAOeVRiXMKW/Ai0T/4DU8dLXHRaBhbi4U2N9TAnZxZwJOUPHSAG5EqnhNWp
 3tcvUhHqPywnbRzMAxWocwg95TiKgcJkoh4njxeTfW1LGuCMeWLILrzM0IKNJ6oY4OLGJdJxlp
 lZ8U0lL6X/IzEJfePqMhMueo
X-SBRS: 5.1
X-MesageID: 58135476
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:8xkN06CHutmy3hVW/xDkw5YqxClBgxIJ4kV8jS/XYbTApD0mhTRSz
 GIfUGzTPamJZzb2Lt1+ao6+9U5QuZ/dxoU2QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540087wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/kjvZutpX1
 +xxi7PqWV02N5Ock80AXEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTQ+9whsMlPY/zMZkWoH1IxjDFF/c2B5vERs0m4PcFjG5r25wRQ54yY
 eIAW2BiV0//eSZlYHwlKZdlsvempSPWJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tkSSq
 3/C/m/5KgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRt6Klc4sBc
 QpOoHNo9PVsshzwJjXgY/GmiGeK7jsWfcVpL9MVshHX1aPqsw2wG2dRG1atd+canMMxQDUr0
 HqAkNXoGSFjvdWpdJ6NyluHhWjsYHZIdAfucQdBFFJYuIe7/OnfmzqWFo47eJNZmOEZDt0ZL
 9qiiCElz4segscQv0lQ1QCW2mn8znQlo+Nc2+k2Yo5Hxl8mDGJGT9bxgbQ+0RqnBNzEJmRtR
 FBex6CjABkmVPlhbhClTuQXB62O7P2YKjDailMHN8B/rGvypC/zLdEKvmAWyKJV3iEsI2GBX
 aMukVkJuM870IWCMcebnL5d++x1lPO9RLwJp9jfb8ZUY4gZSeN01HoGWKJk5Ei0yBJEufhmY
 f+zKJ/wZV5HWfUP5GfnHI81jO50rh3SMEuOHPgXOTz8iuHADJNUIJ9YWGazghcRsPnZ/V6Lq
 okHbKNnCXx3CYXDX8UeyqZLRXhiEJTxLcqeRxV/erHRLwx4NnsmDvONk7otd5Y8x/Zel/vS/
 2H7UUhdkQKtiXrCIASMS3ZidLKwAsov8SNlZXQhbQSyxnwuQYez96NDJZE5SqYqqb54xvluQ
 vhbJ8jZWqZTSi7K8ig2ZIXmqNAwbwyigA+DZnL3YDU2c5N6aRbO/9voIlnm+CUUV3Llvsoiu
 bywkAjcRMNbFQhlCc/XbtOpzk+w4idByL4jAROQL4AKKkv28YVsJyjgtdMNIpkBeUfZ2z+X9
 weKGhNE9+PDlJA4rYvSjqeeoob3T+YnRhhGH3PW5KqdPDXB+jbx2pdJVeuFcGyPVG7w/6n+N
 +xZw+ulba8ClVdO9YF9D6xq3eQ14N62/+1WyQFtHXPqaVW3C+w/finajJcX7qAdlKVEvQaWW
 16U/ogIMLqED8rpDVoNKVd3de+Ez/wVxmHf4PldzJ8WP8OrEG5riXlvAiQ=
IronPort-HdrOrdr: A9a23:4vPBmq4WwIMT8y7T3wPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HJoB17726NtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QCpSWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58135476"
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>
Subject: [XEN PATCH v8 24/47] build: use main rune to build host binary x86's mkelf32 and mkreloc
Date: Thu, 25 Nov 2021 13:39:43 +0000
Message-ID: <20211125134006.1076646-25-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.34.0
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>
References: <20211125134006.1076646-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Also, remove the HOSTCFLAGS "-g" from "mkreloc" command line.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---

Notes:
    v8:
    - acked
    - remove the cflags "-g" from "mkreloc"

 xen/arch/x86/Makefile | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 243ca17f701e..e8151bf4b111 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -83,6 +83,9 @@ subdir- += boot
 extra-y += asm-macros.i
 extra-y += xen.lds
 
+hostprogs-y += boot/mkelf32
+hostprogs-y += efi/mkreloc
+
 # Allows usercopy.c to include itself
 $(obj)/usercopy.o: CFLAGS-y += -iquote .
 
@@ -253,17 +256,9 @@ $(obj)/efi.lds: AFLAGS-y += -DEFI
 $(obj)/xen.lds $(obj)/efi.lds: $(src)/xen.lds.S FORCE
 	$(call if_changed_dep,cpp_lds_S)
 
-$(obj)/boot/mkelf32: $(src)/boot/mkelf32.c
-	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
-
-$(obj)/efi/mkreloc: $(src)/efi/mkreloc.c
-	$(HOSTCC) $(HOSTCFLAGS) -g -o $@ $<
-
 clean-files := \
-    boot/mkelf32 \
     include/asm/asm-macros.* \
     $(objtree)/.xen-syms.[0-9]* \
     $(objtree)/.xen.elf32 \
     $(objtree)/.xen.efi.[0-9]* \
-    efi/*.efi \
-    efi/mkreloc
+    efi/*.efi
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 14:01:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 14:01:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231440.400497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqFJh-0004fk-5i; Thu, 25 Nov 2021 14:01:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231440.400497; Thu, 25 Nov 2021 14:01:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqFJh-0004fd-2c; Thu, 25 Nov 2021 14:01:37 +0000
Received: by outflank-mailman (input) for mailman id 231440;
 Thu, 25 Nov 2021 14:01:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Lxap=QM=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mqFJf-0004fX-Rw
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 14:01:36 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32b63b39-4df8-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 15:01:34 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id bi37so16604805lfb.5
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 06:01:34 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id s4sm269499lfp.198.2021.11.25.06.01.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Nov 2021 06:01:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32b63b39-4df8-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=gxEXJk+/Nm8yBK7u2SoD1wpBRRgTcv94ctmyKUd0fmw=;
        b=CcURdyHgCwCK8GMxzcGnknGBBPMTwWdFOULNhk2CMGA9eNSPqmZiBVd3jHvPSmU9MI
         dbQO7LqHTLAHa+dfdnFa0L9PwwAfsiVRinqXXMoX69vfqqiyjS8AUYDO2SVbMoNOVJCu
         ehXSM6uYmVWJch7vR6V7zR/ZFqu8/YD3dGOjvdyhDTtVLF8Q1HOhAJWvvMqkpbwN/u9I
         +1P6NHum1wd5wCrOftH83qkT6CO3parKTYVbZnsP6Rb/+R1aqXtzMf9v4aIYZ2BAPeaU
         dniGROIorhvmJ5ZB+iKIIeEuPS7J3Ulm9Jy7WMiLapfAX4Q9CGVWgDtLOUU4+h37jles
         S67Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=gxEXJk+/Nm8yBK7u2SoD1wpBRRgTcv94ctmyKUd0fmw=;
        b=q6tS5OP6G5HyaY48vZqMUckHwd79gyU4v4AwsMtC/oOwJsJlHJMXK589uYEBMF39cf
         yl2Biw5mh9821qDbYyfefCFpoyiywbFO/MQ490hjY9n26DebdEoD564gwuPGJxB+oJFK
         PaIuiu12bNTcwDRFETg5XnfalCMQ2sbAnyL5UdpCSO4xNYc6cYIqH6JmWkAGLQQXnwJ9
         fbYyNpjK8W5EqUazVmgNOm24fY/mNMnybX7ZkjhLb2dryF4GZG6dSoPrRKLSqMrG3MD7
         KQKP8KsFwb6x2+y9LnZQoS5B129vJl+sbOvte8gGFynms7bn1tuB4VBTKulAQreRfk/N
         uMbw==
X-Gm-Message-State: AOAM530PIg/iU3YYVUz/7prYdxLA3XbeiENfxZ6Cgy5lNLoANKrVLqp/
	X7h/4DE5DfY4Z3Bx8uT92Ws=
X-Google-Smtp-Source: ABdhPJxYV7070hQNJD/zZLe7xYf3MLYW9fX8k8PnMAVuMRfSxCX0E47xMnIHTAR699WJSSqsmS70Xg==
X-Received: by 2002:a19:7404:: with SMTP id v4mr22825443lfe.76.1637848893098;
        Thu, 25 Nov 2021 06:01:33 -0800 (PST)
Subject: Re: [PATCH V3 4/6] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
 <1637787223-21129-5-git-send-email-olekstysh@gmail.com>
 <alpine.DEB.2.22.394.2111241701240.1412361@ubuntu-linux-20-04-desktop>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <c2e8c00a-3856-8330-8e8f-ab8a92e93e47@gmail.com>
Date: Thu, 25 Nov 2021 16:01:31 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <alpine.DEB.2.22.394.2111241701240.1412361@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 25.11.21 03:03, Stefano Stabellini wrote:

Hi Stefano, all

> On Wed, 24 Nov 2021, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> The main reason of this change is that unpopulated-alloc
>> code cannot be used in its current form on Arm, but there
>> is a desire to reuse it to avoid wasting real RAM pages
>> for the grant/foreign mappings.
>>
>> The problem is that system "iomem_resource" is used for
>> the address space allocation, but the really unallocated
>> space can't be figured out precisely by the domain on Arm
>> without hypervisor involvement. For example, not all device
>> I/O regions are known by the time domain starts creating
>> grant/foreign mappings. And following the advise from
>> "iomem_resource" we might end up reusing these regions by
>> a mistake. So, the hypervisor which maintains the P2M for
>> the domain is in the best position to provide unused regions
>> of guest physical address space which could be safely used
>> to create grant/foreign mappings.
>>
>> Introduce new helper arch_xen_unpopulated_init() which purpose
>> is to create specific Xen resource based on the memory regions
>> provided by the hypervisor to be used as unused space for Xen
>> scratch pages. If arch doesn't define arch_xen_unpopulated_init()
>> the default "iomem_resource" will be used.
>>
>> Update the arguments list of allocate_resource() in fill_list()
>> to always allocate a region from the hotpluggable range
>> (maximum possible addressable physical memory range for which
>> the linear mapping could be created). If arch doesn't define
>> arch_get_mappable_range() the default range (0,-1) will be used.
>>
>> The behaviour on x86 won't be changed by current patch as both
>> arch_xen_unpopulated_init() and arch_get_mappable_range()
>> are not implemented for it.
>>
>> Also fallback to allocate xenballooned pages (balloon out RAM
>> pages) if we do not have any suitable resource to work with
>> (target_resource is invalid) and as the result we won't be able
>> to provide unpopulated pages on a request.
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks!


What still worries me is a concern with x86's xen_pvh_gnttab_setup() I 
described in post commit remark ...


>
>
>> ---
>> Please note the following:
>> for V3 arch_xen_unpopulated_init() was moved to init() as was agreed
>> and gained __init specifier. So the target_resource is initialized there.
>>
>> With current patch series applied if CONFIG_XEN_UNPOPULATED_ALLOC
>> is enabled:
>>
>> 1. On Arm, under normal circumstances, the xen_alloc_unpopulated_pages()
>> won't be called “before” arch_xen_unpopulated_init(). It will only be
>> called "before" when either ACPI is in use or something wrong happened
>> with DT (and we failed to read xen_grant_frames), so we fallback to
>> xen_xlate_map_ballooned_pages() in arm/xen/enlighten.c:xen_guest_init(),
>> please see "arm/xen: Switch to use gnttab_setup_auto_xlat_frames() for DT"
>> for details. But in that case, I think, it doesn't matter much whether
>> xen_alloc_unpopulated_pages() is called "before" of "after" target_resource
>> initialization, as we don't have extended regions in place the target_resource
>> will remain invalid even after initialization, so xen_alloc_ballooned_pages()
>> will be used in both scenarios.
>>
>> 2. On x86, I am not quite sure which modes use unpopulated-alloc (PVH?),
>> but it looks like xen_alloc_unpopulated_pages() can (and will) be called
>> “before” arch_xen_unpopulated_init().
>> At least, I see that xen_xlate_map_ballooned_pages() is called in
>> x86/xen/grant-table.c:xen_pvh_gnttab_setup(). According to the initcall
>> levels for both xen_pvh_gnttab_setup() and init() I expect the former
>> to be called earlier.
>> If it is true, the sentence in the commit description which mentions
>> that “behaviour on x86 is not changed” is not precise. I don’t think
>> it would be correct to fallback to xen_alloc_ballooned_pages() just
>> because we haven’t initialized target_resource yet (on x86 it is just
>> assigning it iomem_resource), at least this doesn't look like an expected
>> behaviour and unlikely would be welcome.
>>
>> I am wondering whether it would be better to move arch_xen_unpopulated_init()
>> to a dedicated init() marked with an appropriate initcall level (early_initcall?)
>> to make sure it will always be called *before* xen_xlate_map_ballooned_pages().
>> What do you think?

    ... here (#2). Or I really missed something and there wouldn't be an 
issue?


>>
>> Changes RFC -> V2:
>>     - new patch, instead of
>>      "[RFC PATCH 2/2] xen/unpopulated-alloc: Query hypervisor to provide unallocated space"
>>
>> Changes V2 -> V3:
>>     - update patch description and comments in code
>>     - modify arch_xen_unpopulated_init() to pass target_resource as an argument
>>       and update default helper to assign iomem_resource to it, also drop
>>       xen_resource as it will be located in arch code in the future
>>     - allocate region from hotpluggable range instead of hardcoded range (0,-1)
>>       in fill_list()
>>     - use %pR specifier in error message
>>     - do not call unpopulated_init() at runtime from xen_alloc_unpopulated_pages(),
>>       drop an extra helper and call arch_xen_unpopulated_init() directly from __init()
>>     - include linux/ioport.h instead of forward declaration of struct resource
>>     - replace insert_resource() with request_resource() in fill_list()
>>     - add __init specifier to arch_xen_unpopulated_init()
>> ---
>>   drivers/xen/unpopulated-alloc.c | 83 +++++++++++++++++++++++++++++++++++++----
>>   include/xen/xen.h               |  2 +
>>   2 files changed, 78 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c
>> index a03dc5b..07d3578 100644
>> --- a/drivers/xen/unpopulated-alloc.c
>> +++ b/drivers/xen/unpopulated-alloc.c
>> @@ -8,6 +8,7 @@
>>   
>>   #include <asm/page.h>
>>   
>> +#include <xen/balloon.h>
>>   #include <xen/page.h>
>>   #include <xen/xen.h>
>>   
>> @@ -15,13 +16,29 @@ static DEFINE_MUTEX(list_lock);
>>   static struct page *page_list;
>>   static unsigned int list_count;
>>   
>> +static struct resource *target_resource;
>> +
>> +/*
>> + * If arch is not happy with system "iomem_resource" being used for
>> + * the region allocation it can provide it's own view by creating specific
>> + * Xen resource with unused regions of guest physical address space provided
>> + * by the hypervisor.
>> + */
>> +int __weak __init arch_xen_unpopulated_init(struct resource **res)
>> +{
>> +	*res = &iomem_resource;
>> +
>> +	return 0;
>> +}
>> +
>>   static int fill_list(unsigned int nr_pages)
>>   {
>>   	struct dev_pagemap *pgmap;
>> -	struct resource *res;
>> +	struct resource *res, *tmp_res = NULL;
>>   	void *vaddr;
>>   	unsigned int i, alloc_pages = round_up(nr_pages, PAGES_PER_SECTION);
>> -	int ret = -ENOMEM;
>> +	struct range mhp_range;
>> +	int ret;
>>   
>>   	res = kzalloc(sizeof(*res), GFP_KERNEL);
>>   	if (!res)
>> @@ -30,14 +47,40 @@ static int fill_list(unsigned int nr_pages)
>>   	res->name = "Xen scratch";
>>   	res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
>>   
>> -	ret = allocate_resource(&iomem_resource, res,
>> -				alloc_pages * PAGE_SIZE, 0, -1,
>> +	mhp_range = mhp_get_pluggable_range(true);
>> +
>> +	ret = allocate_resource(target_resource, res,
>> +				alloc_pages * PAGE_SIZE, mhp_range.start, mhp_range.end,
>>   				PAGES_PER_SECTION * PAGE_SIZE, NULL, NULL);
>>   	if (ret < 0) {
>>   		pr_err("Cannot allocate new IOMEM resource\n");
>>   		goto err_resource;
>>   	}
>>   
>> +	/*
>> +	 * Reserve the region previously allocated from Xen resource to avoid
>> +	 * re-using it by someone else.
>> +	 */
>> +	if (target_resource != &iomem_resource) {
>> +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>> +		if (!res) {
>> +			ret = -ENOMEM;
>> +			goto err_insert;
>> +		}
>> +
>> +		tmp_res->name = res->name;
>> +		tmp_res->start = res->start;
>> +		tmp_res->end = res->end;
>> +		tmp_res->flags = res->flags;
>> +
>> +		ret = request_resource(&iomem_resource, tmp_res);
>> +		if (ret < 0) {
>> +			pr_err("Cannot request resource %pR (%d)\n", tmp_res, ret);
>> +			kfree(tmp_res);
>> +			goto err_insert;
>> +		}
>> +	}
>> +
>>   	pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
>>   	if (!pgmap) {
>>   		ret = -ENOMEM;
>> @@ -95,6 +138,11 @@ static int fill_list(unsigned int nr_pages)
>>   err_memremap:
>>   	kfree(pgmap);
>>   err_pgmap:
>> +	if (tmp_res) {
>> +		release_resource(tmp_res);
>> +		kfree(tmp_res);
>> +	}
>> +err_insert:
>>   	release_resource(res);
>>   err_resource:
>>   	kfree(res);
>> @@ -112,6 +160,14 @@ int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>>   	unsigned int i;
>>   	int ret = 0;
>>   
>> +	/*
>> +	 * Fallback to default behavior if we do not have any suitable resource
>> +	 * to allocate required region from and as the result we won't be able to
>> +	 * construct pages.
>> +	 */
>> +	if (!target_resource)
>> +		return xen_alloc_ballooned_pages(nr_pages, pages);
>> +
>>   	mutex_lock(&list_lock);
>>   	if (list_count < nr_pages) {
>>   		ret = fill_list(nr_pages - list_count);
>> @@ -159,6 +215,11 @@ void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>>   {
>>   	unsigned int i;
>>   
>> +	if (!target_resource) {
>> +		xen_free_ballooned_pages(nr_pages, pages);
>> +		return;
>> +	}
>> +
>>   	mutex_lock(&list_lock);
>>   	for (i = 0; i < nr_pages; i++) {
>>   		pages[i]->zone_device_data = page_list;
>> @@ -169,9 +230,11 @@ void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages)
>>   }
>>   EXPORT_SYMBOL(xen_free_unpopulated_pages);
>>   
>> -#ifdef CONFIG_XEN_PV
>>   static int __init init(void)
>>   {
>> +	int ret;
>> +
>> +#ifdef CONFIG_XEN_PV
>>   	unsigned int i;
>>   
>>   	if (!xen_domain())
>> @@ -196,8 +259,14 @@ static int __init init(void)
>>   			list_count++;
>>   		}
>>   	}
>> +#endif
>>   
>> -	return 0;
>> +	ret = arch_xen_unpopulated_init(&target_resource);
>> +	if (ret) {
>> +		pr_err("xen:unpopulated: Cannot initialize target resource\n");
>> +		target_resource = NULL;
>> +	}
>> +
>> +	return ret;
>>   }
>>   subsys_initcall(init);
>> -#endif
>> diff --git a/include/xen/xen.h b/include/xen/xen.h
>> index 86c5b37..a99bab8 100644
>> --- a/include/xen/xen.h
>> +++ b/include/xen/xen.h
>> @@ -55,6 +55,8 @@ extern u64 xen_saved_max_mem_size;
>>   #ifdef CONFIG_XEN_UNPOPULATED_ALLOC
>>   int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
>>   void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
>> +#include <linux/ioport.h>
>> +int arch_xen_unpopulated_init(struct resource **res);
>>   #else
>>   #include <xen/balloon.h>
>>   static inline int xen_alloc_unpopulated_pages(unsigned int nr_pages,
>> -- 
>> 2.7.4

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:01:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:01:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231511.400652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGEy-0002p4-RV; Thu, 25 Nov 2021 15:00:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231511.400652; Thu, 25 Nov 2021 15:00:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGEy-0002ox-Nc; Thu, 25 Nov 2021 15:00:48 +0000
Received: by outflank-mailman (input) for mailman id 231511;
 Thu, 25 Nov 2021 15:00:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CZwX=QM=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqGEx-0002or-Lh
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:00:47 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 76884d8b-4e00-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 16:00:44 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:33686)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqGET-0004Mx-8Z (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 25 Nov 2021 15:00:17 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 454E51FBFC;
 Thu, 25 Nov 2021 15:00:17 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76884d8b-4e00-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <3c922d47-9eab-5150-f4c6-3db40a77599a@srcf.net>
Date: Thu, 25 Nov 2021 15:00:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
 x86@kernel.org, linux-kernel@vger.kernel.org
Cc: peterz@infradead.org, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, kernel test robot <lkp@intel.com>
References: <20211125092056.24758-1-jgross@suse.com>
 <20211125092056.24758-2-jgross@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 1/2] xen: make HYPERVISOR_get_debugreg() always_inline
In-Reply-To: <20211125092056.24758-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25/11/2021 09:20, Juergen Gross wrote:
> HYPERVISOR_get_debugreg() is being called from noinstr code, so it
> should be attributed "always_inline".
>
> Fixes: f4afb713e5c3a4419ba ("x86/xen: Make get_debugreg() noinstr")
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  arch/x86/include/asm/xen/hypercall.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/include/asm/xen/hypercall.h b/arch/x86/include/asm/xen/hypercall.h
> index 0575f5863b7f..28ca1119606b 100644
> --- a/arch/x86/include/asm/xen/hypercall.h
> +++ b/arch/x86/include/asm/xen/hypercall.h
> @@ -287,7 +287,7 @@ HYPERVISOR_set_debugreg(int reg, unsigned long value)
>  	return _hypercall2(int, set_debugreg, reg, value);
>  }
>  
> -static inline unsigned long
> +static __always_inline unsigned long
>  HYPERVISOR_get_debugreg(int reg)
>  {
>  	return _hypercall1(unsigned long, get_debugreg, reg);

All this is going to do is push the error one step further in.

Next, objtool will complain that hypercall_page isn't noinstr.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:04:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:04:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231519.400668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGIJ-0003Sv-Dn; Thu, 25 Nov 2021 15:04:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231519.400668; Thu, 25 Nov 2021 15:04:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGIJ-0003So-Al; Thu, 25 Nov 2021 15:04:15 +0000
Received: by outflank-mailman (input) for mailman id 231519;
 Thu, 25 Nov 2021 15:04:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ia/m=QM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqGII-0003SZ-Aa
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:04:14 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f353a1da-4e00-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 16:04:13 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 9E7C01FD34;
 Thu, 25 Nov 2021 15:04:12 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id BE58913C3A;
 Thu, 25 Nov 2021 15:04:11 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id eygFK+uln2HgIwAAMHmgww
 (envelope-from <jgross@suse.com>); Thu, 25 Nov 2021 15:04:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f353a1da-4e00-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637852652; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=71Gn/xLF7wxtMMi8bI6HFnFTVDo5tdupsVVOA4H+vaw=;
	b=rXvkAa6t+S1M9laQ1fWlcG3R7qQJLTV8m+wZA5YwRH24Eyu9t3UTDgHsz+3F9b7akdylA5
	KWCUu/j0tnglx2oVQ1PX9MLSQEXY57yXePm/znBEqSSyARq1vnpUpFopr256YPy3vlr6rd
	2JoAem1VobSWwS2v5zgWET8YuvoRHtg=
Subject: Re: [PATCH 1/2] xen: make HYPERVISOR_get_debugreg() always_inline
To: Andrew Cooper <amc96@srcf.net>, xen-devel@lists.xenproject.org,
 x86@kernel.org, linux-kernel@vger.kernel.org
Cc: peterz@infradead.org, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, kernel test robot <lkp@intel.com>
References: <20211125092056.24758-1-jgross@suse.com>
 <20211125092056.24758-2-jgross@suse.com>
 <3c922d47-9eab-5150-f4c6-3db40a77599a@srcf.net>
From: Juergen Gross <jgross@suse.com>
Message-ID: <c4a1657b-2904-0d10-3a95-07b84062eb52@suse.com>
Date: Thu, 25 Nov 2021 16:04:11 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <3c922d47-9eab-5150-f4c6-3db40a77599a@srcf.net>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="cTvb1TrDemrs7rZWKbuTGacbuFmBID4LS"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--cTvb1TrDemrs7rZWKbuTGacbuFmBID4LS
Content-Type: multipart/mixed; boundary="XrZRoueycgDK9qenwHRSZrKRri8rmwiiw";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <amc96@srcf.net>, xen-devel@lists.xenproject.org,
 x86@kernel.org, linux-kernel@vger.kernel.org
Cc: peterz@infradead.org, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, kernel test robot <lkp@intel.com>
Message-ID: <c4a1657b-2904-0d10-3a95-07b84062eb52@suse.com>
Subject: Re: [PATCH 1/2] xen: make HYPERVISOR_get_debugreg() always_inline
References: <20211125092056.24758-1-jgross@suse.com>
 <20211125092056.24758-2-jgross@suse.com>
 <3c922d47-9eab-5150-f4c6-3db40a77599a@srcf.net>
In-Reply-To: <3c922d47-9eab-5150-f4c6-3db40a77599a@srcf.net>

--XrZRoueycgDK9qenwHRSZrKRri8rmwiiw
Content-Type: multipart/mixed;
 boundary="------------5906338CD015122B005CEF44"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------5906338CD015122B005CEF44
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 25.11.21 16:00, Andrew Cooper wrote:
> On 25/11/2021 09:20, Juergen Gross wrote:
>> HYPERVISOR_get_debugreg() is being called from noinstr code, so it
>> should be attributed "always_inline".
>>
>> Fixes: f4afb713e5c3a4419ba ("x86/xen: Make get_debugreg() noinstr")
>> Reported-by: kernel test robot <lkp@intel.com>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>>   arch/x86/include/asm/xen/hypercall.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/include/asm/xen/hypercall.h b/arch/x86/include/a=
sm/xen/hypercall.h
>> index 0575f5863b7f..28ca1119606b 100644
>> --- a/arch/x86/include/asm/xen/hypercall.h
>> +++ b/arch/x86/include/asm/xen/hypercall.h
>> @@ -287,7 +287,7 @@ HYPERVISOR_set_debugreg(int reg, unsigned long val=
ue)
>>   	return _hypercall2(int, set_debugreg, reg, value);
>>   }
>>  =20
>> -static inline unsigned long
>> +static __always_inline unsigned long
>>   HYPERVISOR_get_debugreg(int reg)
>>   {
>>   	return _hypercall1(unsigned long, get_debugreg, reg);
>=20
> All this is going to do is push the error one step further in.
>=20
> Next, objtool will complain that hypercall_page isn't noinstr.

I don't think so:

=2Epushsection .noinstr.text, "ax"
         .balign PAGE_SIZE
SYM_CODE_START(hypercall_page)
         .rept (PAGE_SIZE / 32)
                 UNWIND_HINT_FUNC
                 .skip 31, 0x90
                 ret
         .endr


Juergen

--------------5906338CD015122B005CEF44
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------5906338CD015122B005CEF44--

--XrZRoueycgDK9qenwHRSZrKRri8rmwiiw--

--cTvb1TrDemrs7rZWKbuTGacbuFmBID4LS
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGfpesFAwAAAAAACgkQsN6d1ii/Ey/E
dQf8DdZ7eB+R+VSU+fGFTtjcyA2aPXevi/ePGxJIGBBNmPOmn77qMoIJ9mnNs+aaGGIpWtypXG41
n/UAscmGGYCP7R+qVXUS9T56YmXhQruBlgHSUqQ3BWv/Q9dXtTi1BNfGeYwFLNyLsMpdIdnbjdwJ
PN0AZN9OIckQXYKD/o41cd80a74jljOgCHoFkg9QPATyfVbJDDLSI9xILaKAGVsic4D6/3yXdHx5
D40UG2HRwdijy8JtXF7jYrxKZ4oi35oWiH1Ep6wcSnjZtXC4yWkQ9VzKMfcGVHHKJ2B3pvBbVKv1
OKy/Lls52+6u1b54KBO53I1Ya349oypr0d91ZnTqBg==
=SX/C
-----END PGP SIGNATURE-----

--cTvb1TrDemrs7rZWKbuTGacbuFmBID4LS--


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:07:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231525.400683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGL2-00046y-UE; Thu, 25 Nov 2021 15:07:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231525.400683; Thu, 25 Nov 2021 15:07:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGL2-00046r-QI; Thu, 25 Nov 2021 15:07:04 +0000
Received: by outflank-mailman (input) for mailman id 231525;
 Thu, 25 Nov 2021 15:07:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1dIP=QM=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mqGL1-00046l-21
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:07:03 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 565fe82f-4e01-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 16:07:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 565fe82f-4e01-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637852821;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=8xiq1tXxm90Xa2EY51jDyabYjVSe99HPtTPZDuV+V9c=;
  b=SmvXmoaU3wDp+8tqSymLHWVaqzvjg01R1hEvBNFhGjCbY34rxcuetFpw
   hE60QJA5Cxe3sYHG+hAFdX0tFn2/sJyH1ugmdqQRbUA2B4UxShz9mAr1b
   46Te3ngHm0B4Gckuu9f3BpdN2JrvSDPCSTZALgN+Q00x8QPT9TPqYJqjX
   M=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 3W6W6Ws74dT7ko9yWvRfNNjNoaLLsrMSK4Qsf8Q6uDy5XKloLTd/U+bEYph7YuDi5Uwj3YkykH
 MrcmfX1PNM+G0TGp3f8mYgakqCEhc2JddbYG3ADRbkEYfWdCIW8N76BVd/Gs6g3nv//TK5FyK3
 Diw0lToFjBpwGMwEc33rByulRUgovABKFxvmOKmDK72p6kqlv6zhX3n3+kNTYTYsR5Qku+8SHy
 GVZGW9qeozHr48zFXr5lFlYltXj42FON4m7mJa/ZO6nLFnVAKInYs2JR9c0wVq8VhMSrVw1GlS
 psP2BsuEL3BMparPZMNALN+k
X-SBRS: 5.1
X-MesageID: 58643763
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:6aCKOa5TZBfWO89gldslPwxRtP7AchMFZxGqfqrLsTDasY5as4F+v
 mZKDGqDOaqKazakKt4jYYux8EgGvMXVytYyTQFppCoyHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NMw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z5
 ecK65mWdxoVYrTIieAsVh5/HjtyBPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALNs7kMZlZonh95TrYEewnUdbIRKCiCdpwgWdu2psRQ622i
 8wxRxhefRPvfgZ0J3g6JL1iwN6S21z5WmgNwL6SjfVuuDWCpOBr65DsL9j9atGMXd9SnEuTu
 iTB5WuRKgEXMpmTxCSI9lqoh/TThmXrVYQKDrq6+/V2xlqJyQQu5AY+DAXh56Pj0wjnBowZe
 xd8FjcSQbYa2X7sENzbYQCE/GeArxotXt13Hvc20VTYokbL2DqxCm8BRz9HTdUpss4qWDAnv
 mO0c8PV6S9H6+PMFy/EnluAhXbrYHVOczdeDcMRZVJdu4GLnW0lsv7Yoj+P+oaRh8a9Jzz/y
 iviQMMW1+RK1p5jO0lWEDn6b9OQSnrhElFdCub/BDvNAuZFiGmNPdHA1LQjxawcRLt1t3HY1
 JT+p+CQ7foVEbaGnzGXTeMGEdmBvqjeb2KD0A4/TsN/plxBHkJPmqgKvllDyLpBaJ5YKVcFn
 meP0e+u2HOjFCTzNvImC25AI88r0bLhBbzYugP8NbJzjmxKXFbfpklGPBfIt0i0yRREufxva
 P+zLJf3ZV5HWPsP8dZDb7pEuVPd7ntlnj27qFGS50nP7Idyk1bJE+pYawXXMbhihE5GyS2Mm
 +ti2wKx40w3eMX1YzXN8J5VKlYPLHMhAovxpdARfemGSjeK0kl4YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:IieWnaOTxvxwo8BcTy/155DYdb4zR+YMi2TDiHofdfUFSKClfp
 6V8cjztSWUtN4QMEtQ/exoX5PwO080lKQFmrX5WI3NYOCIghrPEGgP1/qB/9SCIVyAygc+79
 YYT0EWMrSZZjIb/KWKnjVQe+xQvOVvm5rY4ts2oU0dKD2DPMpbnnpE40ugYwVLbTgDIaB8OI
 uX58JBqTblUXMLbv6jDn1Ae+TYvdXEmL/vfBZDXnccmUOzpALtzIS/PwmT3x8YXT8K6bA+8V
 Ldmwi8wqm4qfm0xjLVymeWxZVLn9nKzMdFGaW3+4MoAwSprjztSJVqWrWEsjxwiOaz6GwymN
 2JmBskN9Qb0QKnQkiF5T/WnyXw2jcn7HHvjXWCh2H4nMD/TDUmT+JcmINwaHLimgUdleA59J
 gO83OStpJRAx+Ftj/6/cL0WxZjkVfxiWY+kNQUk2dUXeIlGfNsRLQkjQJo+ao7bWLHANhNKp
 gsMCic3ocaTbqiVQGWgoE1q+bcHEjaHX+9Mzw/U4Kuon1rdUtCvjslLfok7wI9HaIGOuh5Dt
 v/Q9dVfcl1P7crhIJGdZE8qJiMeyXwqSylChPhHb2gLtBCB07w
X-IronPort-AV: E=Sophos;i="5.87,263,1631592000"; 
   d="scan'208";a="58643763"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BDLEr1ItMJaUJgs6AqpfUOVq3/hBtXXskjjlEK33kAfZmY/XBThwE3wxOr9ZfqpG8ucwDuLPh7jnaBm9FWq8ZHdtFWKnewNsOy/n7UdbAPDjT/UF54EH/aKC9NukwHzuahtbFO84KS/d8vrKQP9gKRirp9AcKS3csJGWiiMzo6V4HAZUO1M5g7xhdvLcwzOmf0a5zZBpS/lUQv91VHHSeZTeWR+TCDHA0eO2UApot2GIaLPln/Em7HPMpWmRNU1Dv/h8SWMDAtLTVREr5U6H/3qR7muBedYj84nyxRnegcFAf+vsvfR7adydZf1IY1QzRpsu/1L4sHk3Y3Tr3s+xgQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mYd8jcGBamOLMRYL20K5O3zkUzs6USGksk6LqCwkn2w=;
 b=B4TlqOgqXRDszj+i4eJcsvpNayieMiLz6Ivd9aItYJg3SSMoEbycQGVYZCuqfVwZSUfJLd5b6+wxs8EQFR8Y3o7n63EDmGylN4va9i/iUFam3kO8Nlw+cSuC1W9bB2yVD3MDU7Ug0KJxJSagasHFHUMsdKb0FrjXG7GJ+p1L/2SBmcTRebC+0fDnS6GXc6RBWcG44uVjB7w7ftPiIzmTJ4wdSgiOAgUm8J/vqLUhDTmjyKuppaj3ACqNYfbppXtfJNK6DMjx9wiYVKSmF/CqoWbfGa5oZC9xGdI1fkdEsMsckyhfvtZlvqLiwlBWZjl3E2R/a4MY2pSrrWfBAaFByQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mYd8jcGBamOLMRYL20K5O3zkUzs6USGksk6LqCwkn2w=;
 b=bdFOncimmiMvcE42eTqdISEwqYLaIXA0p59VER/b9zvZIpd9Q6yEHcGDNxE7VOBFKNlfNPto8ax/zFHJcHPdDd6NplEKsy5ztTX/yET2r7aAqCbFlZbb1q3KK0NzzZ/PnVhe4ihB9iRUjmVgL7YS4SPhwmkFHNs/sD35TTSeKGY=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>
Subject: [PATCH] osstest: enable timestamp on guests logs
Date: Thu, 25 Nov 2021 16:06:46 +0100
Message-ID: <20211125150646.10414-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR1P264CA0001.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:19e::6) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 70faa96c-bd42-4ec3-7dcf-08d9b02538a2
X-MS-TrafficTypeDiagnostic: DS7PR03MB5605:
X-Microsoft-Antispam-PRVS: <DS7PR03MB5605D2F1D283362A576838B18F629@DS7PR03MB5605.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: kHw4QV93nm1VrmCh0h3DY8QJ/WbDouGNq6BxrJaVSOceqinRCgxE/wGfZG0M+bzj5LCsxEyKrMHTd93skWGLAB8175Nyk2dGcD1K5YRyQR/3LohYk8dOo3OWuhWjDG7wpvJ4JTTZR07PigJEpd+WWn7+3yqcG85HLj+5BWLhNsieD2zJfu/MpeQSe/fIvcdCU0VDPzu7b+AUcgxc4CdmX9iN2c9ETq/5wdXdxhueCOwwTDGh0CyiSTDd908LZBaH+1r+cE1TpiI2cvvLFFV9/B6/uLuy0VqstY/bkxC2yaBYJHRBPg72bUdjZgR8gH19Q9QPL5Gk36Uw46v7GV68PtsVh8IEkNt9/Fh63gcRYK5cvnqdZwjA6qNTmYUpyJ5+HB1ZREuW4ZEvkhZjLwRvZAeO2vO8HiZHdJ+mTLDEU6colhBT+FioEZFaFjsojf1QKWZGDPBe1gjfLcPe+Bct+yZoRzue+O3JjQ/5kkrXNOSNkfxNXElVG7YgN/mG984WHuNSXtrGqLWc61BthGTU/fKrbWcgKy/vd//qvCPQqiHnpoQ6WpWwFsJYXjqC/mc7XXrDxEmdHv+gUFbih4Ew2KOvCa+GFDQP8S5eQ1ll/UwP6BvVi6eXs8qHD+gpvf/8wn9KixwKjjx6VjfuAgmY+g==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4744005)(8936002)(1076003)(66946007)(26005)(54906003)(6486002)(2906002)(36756003)(83380400001)(316002)(508600001)(66476007)(4326008)(6916009)(38100700002)(6496006)(8676002)(6666004)(66556008)(5660300002)(86362001)(82960400001)(956004)(186003)(2616005);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dDBwSXJRTFlUZWxYVnhlRmtzVVVJcWJ4a1hrMHVpd2ZYbTdnSFZ6bUlwOUdJ?=
 =?utf-8?B?OFNmbmh1dkM2VVN6ZDVHMTRKcS9ndFBQb2w2eiswSFRXR3dPa3haV01vZHFm?=
 =?utf-8?B?RklQdEVGaVNVNXhsSFk2MFRMR0lhNUoyWG9rMmx1SGxIUXIrY01KdEUvMUln?=
 =?utf-8?B?bFNHRUpTTEJHd3lGMzgyTGxnVGc2ditYdkFKaklYUkRkeTdpOTF1SFNFWllO?=
 =?utf-8?B?MkkrMDQ1RldlU3FrU1E4dW9aQzVRQ0hnUGJiUXRuYlFzeEJOaVgvbENDeXRS?=
 =?utf-8?B?S25MYW9PYUZtY09TM2hNUExaNnZZYTB1OWY3MjZFVEEvYWxsRk84blBScVdh?=
 =?utf-8?B?YmpCd0djcTBTeUhzbmZ1aGFJM1dEUmVRN0V3UlpjZzhMNG45Z3AxNWR4Qlc2?=
 =?utf-8?B?WmhzdVRtc2Zlc0R4RVdMMUpXSUdmUHhwYis3MlhVM1FnODRiTWFFYVpFNVIy?=
 =?utf-8?B?V2VYNTlSa2VjMDJjVFdDS1JPT1hFcHVlNlYwWUVjRzlTM2NKY0pnMHBtcDMx?=
 =?utf-8?B?eWR1bmZncEJ3NWY0cTNNMHVFR21MNG55c1JFaGlRTm1icGhWK28wamFobUEz?=
 =?utf-8?B?ZUxPaDZtSkFIN3FPb2pHbWNWandoR1F6L2VJTmxrMEhKaTk4OGhEclFBV2dX?=
 =?utf-8?B?aWpSQ3dOM0M0V0ttdE9EbkhCRmhTRDJ2RTFJL0Rpd1Q3UXBjdU9CRTJRWVp1?=
 =?utf-8?B?NTlrZXIwYzJrSURsdXhtMmFmVkhwNXFpY2gxbXhtT3pzbDlXL0ZjRFNsd1ZD?=
 =?utf-8?B?cjdpcXhjWmhDUGh0Mzk5aVJoZzUya01xMkRiN0h4dTYybGtYc2pKcFdUc3pQ?=
 =?utf-8?B?RVIwVHFOWi8vSDdZTEpUaW1vVXluQlFieHFQWEppMlUvZHByWjZaNlE0ak1N?=
 =?utf-8?B?aTBvMEtsbS85bGRoSGcwM0oyZ1dDSW4xQUN5eHhnZFIvbHVpcnh0TG9qa1Zh?=
 =?utf-8?B?MElPdW53STJRYkFENVVTR2JUUGVJa1gzOUdiRGI2bXM1T3k0dExWQjRudjNw?=
 =?utf-8?B?MEVBM0pmYVBMa3JKQ3JSVW9ZNXZmV3ZMOUtFSkZmSVRYaVprbW9yK0NHK0RE?=
 =?utf-8?B?c1hHK0lRWS9VZlE4WUMvVDFWNUhHMHVteUdCeUMwOWZ3ZHNJdW5SV2RjL1VX?=
 =?utf-8?B?WlVLZUNlbllhNmtkQ2VQcmJiMXZqbmtmSi9qdTEyNC96bmwxZnV2MlN2Zm5x?=
 =?utf-8?B?cStGUkdoR2diUDFsdlFRd2xpVkhGd2tmY2NKTndJdlFwOHp3RW5vVmEyNDRy?=
 =?utf-8?B?Ylg1alRvNzl5dFpZcG9RWmVLamhaQkl3K0lMMmYyTkU5OStiWFVMT1l0VnlU?=
 =?utf-8?B?ZXVoZ004VEZobEd0a1VVaUs1VW4ydjJwa3I0dExrcy9tNkNMVHN1S3BTRWR3?=
 =?utf-8?B?cVRRYTdwcSthWU0xTXlSeWpQV1MzTUdYTGVJWEJKbVJHU2EvM1VUVHBlU3hv?=
 =?utf-8?B?T1ZJVTJ4UjEwM0VSY2JiajY4Zjd3dEd4dHhoRWIvR2JvQVorWEZ3VmhxNGEw?=
 =?utf-8?B?T3BQaTE3NURoL1RXMHBQa2tlZTZ3bXhpTktBbEl5a1A4b0ZmN21hRkR0S1pW?=
 =?utf-8?B?QmJ3K3FKTnpQb0Z3SzhnWkVtbXYza2ZtNEJvT1h5MVBYbExRaHFiQ1JlcUJL?=
 =?utf-8?B?NW5DbkJYK1NsMUNscUtPWGg1NHNJd2J0VVVhUzNwVkEwbUVzczBKQ1BBbU5R?=
 =?utf-8?B?c1R0ZmZSMkFJazNuRVpBOERhMkM2Z0xpOCtXenJVK0hxVnZoWmhqT2pnQ0dR?=
 =?utf-8?B?R3Z5MFBKcVAzWVJ0dGg4WHVpRXhJb25mQUZ0N0FaT3dVUEMxSFNuMFdXaTlH?=
 =?utf-8?B?R1EyZDFhRUdSb3hnZnhRWW51bnI0aEdick5ENHB5SWN3Unl3UHJ0aHdud2pk?=
 =?utf-8?B?L0NPcVRON1luc2EwU2xzaXZzWTZ5NGVKVW0xN1hjcVhtbUNObC92eHlONVAy?=
 =?utf-8?B?TmZBYkN4MHpPdkpRbERYay8xS3g4T3lLOGFOQm5BMGMySDVkNUpwTU1PY3ZW?=
 =?utf-8?B?eXpYU01oNjlHUk0zNjVCNWhLU1JSUDhOQjNHQlc4Q3YvNzFzL1RTQTRxUlRm?=
 =?utf-8?B?Y3JldVlvZHZYSEtOdDJvWGN0aytzNVQ1cWdTU3p5ZGxxbG41U1MrMGljYXBC?=
 =?utf-8?B?L29UNUkrcXQ5V2RZR2dLT3BjQmZUSVRIWXl5S0lHU1ZvRDR5anZCeG5zdS9i?=
 =?utf-8?Q?+2HSEc9n4NbBADPLJLZw5ro=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 70faa96c-bd42-4ec3-7dcf-08d9b02538a2
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 15:06:56.1172
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eKr7chss4GJ6ZU+khSwen/Z0gzoKEqWJd4kVAhoOAUnzccUJzY+JdaK4URFYqIiQcUuGdr7PCmlBf6thxTptkQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5605
X-OriginatorOrg: citrix.com

Enable the timestamp feature of xenconsoled so guests logs have a time
reference. Can be helpful when debugging boot related slowness.

This requires using the XENCONSOLED_ARGS option and setting both the
log and the timestamp options. Note that setting XENCONSOLED_TRACE
will override any options in XENCONSOLED_ARGS, so they can not be used
in conjunction.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <iwj@xenproject.org>
---
 ts-xen-install | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ts-xen-install b/ts-xen-install
index 47865eb6..bf55d4e5 100755
--- a/ts-xen-install
+++ b/ts-xen-install
@@ -140,7 +140,7 @@ sub adjustconfig () {
 
     my @commons_config =
         (
-	   "XENCONSOLED_TRACE" => "guest",
+	   "XENCONSOLED_ARGS" => '"--log=guest --timestamp=all"',
 	);
 
     my $xenstored = target_var($ho, 'xenstored');
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:21:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231550.400742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGYi-0006aL-Tv; Thu, 25 Nov 2021 15:21:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231550.400742; Thu, 25 Nov 2021 15:21:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGYi-0006aE-Ql; Thu, 25 Nov 2021 15:21:12 +0000
Received: by outflank-mailman (input) for mailman id 231550;
 Thu, 25 Nov 2021 15:21:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=67yb=QM=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mqGYh-0006a8-W9
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:21:12 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d70be41-4e03-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 16:21:04 +0100 (CET)
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1APDT54B001707; 
 Thu, 25 Nov 2021 15:21:03 GMT
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by mx0b-00069f02.pphosted.com with ESMTP id 3chmfn7vdh-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 25 Nov 2021 15:21:02 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1APFFQLu134833;
 Thu, 25 Nov 2021 15:21:00 GMT
Received: from nam11-co1-obe.outbound.protection.outlook.com
 (mail-co1nam11lp2171.outbound.protection.outlook.com [104.47.56.171])
 by userp3020.oracle.com with ESMTP id 3chtx809qg-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 25 Nov 2021 15:21:00 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB4383.namprd10.prod.outlook.com (2603:10b6:208:1d4::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 25 Nov
 2021 15:20:58 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.025; Thu, 25 Nov 2021
 15:20:58 +0000
Received: from [10.74.106.108] (138.3.200.44) by
 SJ0PR03CA0049.namprd03.prod.outlook.com (2603:10b6:a03:33e::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend
 Transport; Thu, 25 Nov 2021 15:20:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d70be41-4e03-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=lAFi+9QQ5wBoZ0S2Yq68JR+rDQ6U57ejFyK9Div3QZU=;
 b=ORzscM82IyI+DOUcx4ehP58wIpfOoDL0enD/M1sWDFJ85OCr5OV6lW6/wKNgNW6/teER
 epmwnVUkevMbjz8NiGxNKLCKeQyzGJ47GW9gFQaSFpGJWE+Pig4WVvs/9PK7H/Yg0l6l
 IDopU8mINJ/Jp3mjlabMPkmSc6x8KbYqOXpzEOsmbfPLwywErxWD8l7ngxorDXRhRc0H
 kb+MKE8BeqhXDqMByNHvbOP3gv5R8sO4+to3tkR30IuSUDhMrhyExrWkreT/YdGoiQGc
 OOsg85r9cM1HTIMD1H+TzwURbP5mo2Y7Wydig38z8CYM+9Y6iWTcFeTh1G4YloWJSHCi cA== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=d/znt3qpWfCkkM+4JxktmV/zhCEPFBeGNJ6voteumoYqo/XbsgO6zQl0q9SP+KAYtNn7ZbP0ZJ9sBmAVYvoNcR/J3OHM1FfHjX9nYPOAICJBJXiBGYo2GLxXGqOkjpYkzyB8kBLmTXiedG0X4LNv88ukRvuJIsauqVppIFpkaGJylBU3aRhI1O+BCA7guSD2OjS7lj4xssVmFD8TgPjYJCuiXbFuX+QeQwUUrgZmBq7Cd7DbTK5ylDP6A77TpCa5CFr77g3Sh9Htrs+qmqEloF5kn7vXZwJvaOLd8HSaRLYQUutOr7vGjFdfKl+T0gpJyDfQoUdre7KkHrZJvYRhkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lAFi+9QQ5wBoZ0S2Yq68JR+rDQ6U57ejFyK9Div3QZU=;
 b=g6UPfDfb4ew4aW90oihxC7+YiT3sQEbl2EtQevwtno3yv5E/8wkiDEFo7VH4P6kZ5Kgb+TT3bREdJSrUD4nx4WnoHouOMgKzAKL2AOcpU+McRWFcJwMqomuafBAkNO80+jTXDKOKPmdKdwYX2XmKTpFKz+xP8sRAX9TfqLzCZlHYdgEZjR9LeqDogf2Azy72WTB2AyiTdYXwwq6LoTo07rCGjekYU/eAGIEVg+f+VdzpwsGAQWDkicKJDn9I0mdMcFq2IJMSbsaTv7Yykqc1puXDYjPTjOWZQ4X6BqyEsn70KqurpvqBtAlzEUjcy76+BOQZD5IZ96iA/auSEGm34Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lAFi+9QQ5wBoZ0S2Yq68JR+rDQ6U57ejFyK9Div3QZU=;
 b=xhUlw46fJzM7VgodHNTqY89tzmMIxcPV8UCGS7svzN4GLcC6xLX6/CJVvVUp/fQ5ppAg17x4Y9/7oN0A+xzcHRbjIs3Mj+DOJABAz/Q9JlGzsjhblge9td0uRQk3Q0kVNoVSWGBYaswlgXXHxpLNewvJBsQNNaRsjJZ9S0dGRsU=
Message-ID: <54e872a6-7531-68ba-4cee-f333be2305fa@oracle.com>
Date: Thu, 25 Nov 2021 10:20:51 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH v4] xen: detect uninitialized xenbus in xenbus_init
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>, jgross@suse.com
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
        jbeulich@suse.com, Stefano Stabellini <stefano.stabellini@xilinx.com>,
        stable@vger.kernel.org
References: <20211123210748.1910236-1-sstabellini@kernel.org>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211123210748.1910236-1-sstabellini@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR03CA0049.namprd03.prod.outlook.com
 (2603:10b6:a03:33e::24) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 09169b10-c57b-4ba9-6fc1-08d9b0272e9d
X-MS-TrafficTypeDiagnostic: MN2PR10MB4383:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB43836B336D45D1F2AFC4DD668A629@MN2PR10MB4383.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	hF9MD2tWOf5rxJ4INVOOSMBldGdfKq7Yjs1VVyegzs1Wign7rL0gUxjVOJrY0OuNvzWCK0RFEm5MQgpETzEjYr2nRryqQq7EsEl8SXyDehu7xhOOyhmeoP06Lc8rFeHZOQJ70kICLBm8N+kp64NRNHN0+utFxyezMvNLpWxyHw56mcK30ctJZ7LdqcdL511wDfvKdlKC9iJM5BNL3KouDPbVOM1JSoePo8NUNf2lPiRZTNqFkuHBXew/sOeFj7xoiw8svyYSowEJilO9VkLN+PcWRZTIdpz/a/3JVcEr9gsjP/fzu2o3P49oNZQWMqhNP6/y5T1YSm4Ou/VmMphK2ZrkBy00AyOnFf9U2SmGJx+Ru9zMvPyq7fdTvHaRP3JhtYUCLqLgtojpuhRYyeCUVWtuR8LXp0pcmVEZMhbm8liIGtlM/6872gRDpq1Npphh2u9S+ZADHzQ1zV37ONCbktAERcaOoXLkT8FTYOBwFG6dj5DgLxiM4J0hD9yJpVOKBMP0WVZhz7WvGV9pJ60yaXaMJ8+z3UPS3IBgV981Jb5PxtDBShcF2o0xKFnjmoFAddc290TQmowxOdRT5Q1LTsFxWKpjSG7t1OpX5d+z6AKqvBAbgUp24fWHICQccbeoTj5XSu/JDxgBQcPNBJLsrZo1EogJImFd0QCFHuz6RLC0foioY8bPKuQ6R5RyNmVpjgmmuBPeGeiT5Gom9kqfZSbrWsIc2Sadaz1B7Vvnv7g=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(44832011)(4326008)(2616005)(31696002)(66946007)(66556008)(186003)(316002)(6486002)(5660300002)(16576012)(38100700002)(508600001)(956004)(2906002)(66476007)(4744005)(86362001)(26005)(8676002)(53546011)(8936002)(6666004)(31686004)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?NEQ5RzR2bHRUSHdtWG8yQisxRTFwUFpnejZBT2xpa2VtNkdnWnBEaUFTR0ho?=
 =?utf-8?B?WkxmV0ZpZHpMWjRTS3A0aE1td1JPV0FucFFiNE5PODIxOFl2bC9XU21hK1Z0?=
 =?utf-8?B?RFFKT2NRM2dxM1FNRURJSlhuWkxid0NHbElROVVUOHJXcnEzeVRqUzRwTUVJ?=
 =?utf-8?B?OHJXQ01WT1JNeG1NVXkxYzE4U0lCQ2ljV3BoaFY4TlJhd1kzSzhVZit1UUI5?=
 =?utf-8?B?UFg4bnZhSGRrdUIvaDJiVUFieDNoMm1iblNnMlVoQkh5NFFPYUNwK3ZZN2hX?=
 =?utf-8?B?QTM3cUpJdHR4N2lqc2pEYVFkOEw0NGhXbWVwVzRBNUpSMEhneXE0aVAraUt5?=
 =?utf-8?B?TWpMcGpodUdrWDdOMHo2Tk1xZmx4ZmpQN3lzclNYazM1VzJzRlRiNVU1SzdS?=
 =?utf-8?B?YzlVbWduZVZEMms0a2lnNCtsbWM4N3JhODRtc1Z6bDMwd2ora3E1RTl2ZmhP?=
 =?utf-8?B?VjJoTCthMFpCZzNkOUVCRUpyN2t4aUdQemtrMmVPNUM1SmQzOHR0dStIYkQ5?=
 =?utf-8?B?U1VoQXcwbCtYKy8wOE53d2dYUUZnVEhvL3F5VEJXa1NMbUJhczZISEFqSll6?=
 =?utf-8?B?Nm1xTGczTWpabFROMlJ2MldjRU83dTZVUllhQWVFRnlBd3BGRDJaa2hqa09N?=
 =?utf-8?B?QVVUbFRDd0FsNERPMWx2aGlPNkJWR2sxb2laeHY0dCtqc1RoWEVpUVpCSk40?=
 =?utf-8?B?KzNDSFFqcXRrS3lESVcyeE9IL3BTWEhGd3NFbVM5M25LRFdUM3NVenlQbjF0?=
 =?utf-8?B?bzhGQXpGVTFza0VIWmorWGJzdWkrS1ZEVzl5QjUyMHl5bnd2MStaeFJmMFdj?=
 =?utf-8?B?d1h3SGZ3MDdhdi9aUzc1MlVWZW1CeWtIbWU0bXNiaDROeDJjd21YZGxTbVpz?=
 =?utf-8?B?VTI0VW4zelhQc1MyQXU2RzBoVFp3aE83OC9mYWluK1RRM201NXZJclpwVFZj?=
 =?utf-8?B?clJUUlI1ZzhVUjdNWUtKVThkSHhRREdZbk9YUHVsN0FuT0RrMjJGN3lRNlRR?=
 =?utf-8?B?R0V3MGZKMkdyOHpLSEFJckFYOEdVaFQ4d0djUy9SRC9XMEhzRUp4SGE0Qmh4?=
 =?utf-8?B?SmV3T09LanYrQVkwYXdPcHpoNER2RGlYZExiZFlHTkUxeVpRaHNUcTF1eTZC?=
 =?utf-8?B?Y3VnUVBkS3BaMytyTDJOMmNFbzBmbWRsL0FYZHJVZmtDV2VSN2QrUGh5Y01a?=
 =?utf-8?B?Y29vV1Zza2lTOHB6SVBuVFZuUWNZclMzRkxVSTlORlFBNzE2YmROUHJIaUs5?=
 =?utf-8?B?SkxIOHUySmlPK2xEOGs5MVEzVjMvTERRNUhjNnVDaDFaZUZUVXFGVm1zQjR2?=
 =?utf-8?B?VERMQS94dEUzL2JUY2dUVStzcHEyQUcyM1k4YUZ0d2hPTlJ2RHVSdjRmalNw?=
 =?utf-8?B?T1RTeVo3cGZQY2J5bVIrSDBTcFJSVjhta1I2VlBjNVAvU1liRXM1ZHBtVnpo?=
 =?utf-8?B?aThUNHMrMW9Cb283dTFyTmI4MmtEOGl0Slh6RFZ1TWtVVVdpcktOWWIyeTFO?=
 =?utf-8?B?VmpJSVVCVlIzZnc1alJuRGlUbWRVaUlTU0JBV3NWNGZJR2Q2VGpuV1VCVE02?=
 =?utf-8?B?U3RaWFAxdDhrWCt0RG40ekkyM0c2NWdJaGJwd0JydjJnaUhCUVM3bDZCREsr?=
 =?utf-8?B?VTJXNFAzeWF2UTlrLzFzb21ZVW5yVGo4aEFweHZwV2dvOEVPdklSZkVHYkMr?=
 =?utf-8?B?ZmtOQ1ljS2Y2QjZUNWEwMmlMcVQ0UmFLYzkwVXJVVWQ2V21jQzZCVC9jazI5?=
 =?utf-8?B?NHVRM2h2WXdUZlJoSC91RmtsbC9vSVBXZ000d0pySkJRcmVhNUZKV3RubkRS?=
 =?utf-8?B?aUtyOHZLaXc3ZE4ycndxbTRSSUZSMWZlZTRSazAyWmVuL1o5RlAwSUkyR1ZM?=
 =?utf-8?B?YTNBQ2lybU9tY3d0bDlOME1nZGlxZDhaVmlYTmNyblh4dlRISlhqVFZFN282?=
 =?utf-8?B?RjFNY05EdTdieDA4ZFNQQnJSdDh0ampBbkFUU3I2ZDhaejgrNFo4NnJGYUNt?=
 =?utf-8?B?VFJPNEdXTHFFNWZpbStWQk5WeDdncTg5Sk90Y3RhU0llSzdrZWVuQ2VOclZP?=
 =?utf-8?B?cEdncWNhNThiYVhoeXlhVmUxWUQwOHA0VHRuNFRvcHhJUlNKT1dpVDlER2JV?=
 =?utf-8?B?SU41UkFYL2R3WTR3ZnRrRDZiWHc2TWZkcGpkWm5MeWdyYndKUGtBLzlyQndj?=
 =?utf-8?B?ZG5NNzhHcjErd28yOFpnNFpnWnpleVBQNG5WOWlueDZhSDJRQkxwR3ZjRlYr?=
 =?utf-8?B?WTVBbjJROUtxMUlYYy8yUVEzQmJnPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 09169b10-c57b-4ba9-6fc1-08d9b0272e9d
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 15:20:58.3720
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Xo4gk7qnMMctrtpFHmXFpgGTx5zbK5jL75yAl+2wkuTRq7s55ZBTD65ui1q6ms94bkDcuU6zn4zZIweyMqbGNfMRFL3YzP8r2cDdoMTCHuk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4383
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10179 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 mlxscore=0
 bulkscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 adultscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111250085
X-Proofpoint-ORIG-GUID: pnDtrLdeU98Io3rOv_HuJp9gfcEpXX5x
X-Proofpoint-GUID: pnDtrLdeU98Io3rOv_HuJp9gfcEpXX5x


On 11/23/21 4:07 PM, Stefano Stabellini wrote:
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
>
> If the xenstore page hasn't been allocated properly, reading the value
> of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
> error. Instead, it will succeed and return zero. Instead of attempting
> to xen_remap a bad guest physical address, detect this condition and
> return early.
>
> Note that although a guest physical address of zero for
> HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
> and zero has never been validly used in that capacity.
>
> Also recognize all bits set as an invalid value.
>
> For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
> above ULONG_MAX should never be passed by the Xen tools to HVM guests
> anyway, so check for this condition and return early.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>


Applied to for-linus-5.16c


-boris



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:22:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:22:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231556.400756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGa7-0007AO-BH; Thu, 25 Nov 2021 15:22:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231556.400756; Thu, 25 Nov 2021 15:22:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGa7-0007AH-7V; Thu, 25 Nov 2021 15:22:39 +0000
Received: by outflank-mailman (input) for mailman id 231556;
 Thu, 25 Nov 2021 15:22:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=67yb=QM=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mqGa5-00076j-9L
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:22:37 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83c30797-4e03-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 16:22:35 +0100 (CET)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1APFLBG1005318; 
 Thu, 25 Nov 2021 15:21:55 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3chk007rcx-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 25 Nov 2021 15:21:54 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1APFFIaw111632;
 Thu, 25 Nov 2021 15:21:53 GMT
Received: from nam11-co1-obe.outbound.protection.outlook.com
 (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176])
 by aserp3030.oracle.com with ESMTP id 3ceq2hsqse-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 25 Nov 2021 15:21:53 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB4383.namprd10.prod.outlook.com (2603:10b6:208:1d4::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 25 Nov
 2021 15:21:51 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.025; Thu, 25 Nov 2021
 15:21:51 +0000
Received: from [10.74.106.108] (138.3.200.44) by
 SJ0PR03CA0040.namprd03.prod.outlook.com (2603:10b6:a03:33e::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Thu, 25 Nov 2021 15:21:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83c30797-4e03-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=xOJcvQ6fbJUOm0/j1nsNc/L5/Wzc3OVZQ2WAo52zC7I=;
 b=QpYK6mQOKyrTNKIfAy2cVNxQnPy9dfkLabZekvWqd3CN36hupZTVX3iACv7rSY/mRAMh
 g6QwZuGXqMKaApM6va3d2+Oh5Cks6+MRpp6n1eCnLP+K0DD9V8n5oWMqjQLzFJFp8R2h
 sazGJEvDkRorWn1DFI86L/zRevO0T6HsDX/GCbgSerdoMOVWeHlme22KXFI/3Y1Myr8b
 /niJp/UJX9aBL0Cwn9JHsrZ0VHdDlVTy1mr36Zf2W2zEPv6Od0zRN0Nd8lYIXW+BQu2I
 /4wjuRo7dvVnLvc7JcLKc9FbVxfZbWnNYvo6KXLxrbLxLw9RjKhiKjG+X5EMIHyFSSFt uA== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=deVhZjW2ErlAfMn2kpwIWCCcr70VkysnkinuhioojLMjnQBbs+cD3wvdf+/FmvIi1GxIWSBXVE/cqvqWbML/GRNChS+FgPzeER9qZxF6AXZPvBkMMQxRZXHWINpyw0FbLX3KHg88CDC9Jd5TWYnpCtWmzdgktG9Sz4a//0syX0eoRlBqnbhJBKwdbxtocV+7/+YBp5FUPjWZsFJmGWdGEbyh1imFG12t4qJLZLGARaAuRSLEPzgO4yYud7tTdHj6xk8zsXCyWV2uyTlNOkP4zVFSFxVISOHhYw6s/aG9TZZAO6WCtjEtShYCozIWIBIYhmR59g1dge4pa0kZ+Tdiiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xOJcvQ6fbJUOm0/j1nsNc/L5/Wzc3OVZQ2WAo52zC7I=;
 b=jgBpGXqqlljaGHB0ei0+oD6676Dfy+aaaGfJq+X8PidpStyo3EfeBUZIDC9p434fch825+jbqwK8MlBwlg5QXWrxUww2D4qkEFXB8TVM7yMh6wbZvrjiOKmP1Dh4Il3syWIlB44MBO0FAYjt0rm2Ib9bwtLmQfVR1nqpZfObC3iwnl+Xq2zgakmU4NXmOFSgi8RkJoGgGT1jDD7GvZpoEMmYpZHzJNzXMW0ndT5wm2fr52enO1q6zbu2GQGShuEvAUMbv5tafDew06sIi+UxZdjlhvHOlzqO3SQMZjjWM5VVczcZ7qdkOskaqjONAYkyEdYBHndBhlRhThIXqCmvuw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xOJcvQ6fbJUOm0/j1nsNc/L5/Wzc3OVZQ2WAo52zC7I=;
 b=eXBfqvFrwjT8KKGhqwNICDf/TLh0E3jD39WvuExuaZ666g6yB1oNnRoKa2UetW6vof5s9knru3Sls8Pn10gnFTN0OsaTkdt9RTndqaxvhOpR2ovF+HE/KrPrVJGIfqQhDTzn1aShh/rZ9NI0Rmw8wWqZhRzM5j5VrM2cfvL4UZc=
Message-ID: <b14018d0-a978-7c51-431b-ebdfe902e172@oracle.com>
Date: Thu, 25 Nov 2021 10:21:41 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH 0/5] xen: cleanup detection of non-essential pv devices
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
        dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org,
        linuxppc-dev@lists.ozlabs.org
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
        David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Jiri Slaby <jirislaby@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
        Takashi Iwai <tiwai@suse.com>, alsa-devel@alsa-project.org
References: <20211022064800.14978-1-jgross@suse.com>
 <bf5a4749-0216-53db-a022-ef4f84d823c5@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <bf5a4749-0216-53db-a022-ef4f84d823c5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SJ0PR03CA0040.namprd03.prod.outlook.com
 (2603:10b6:a03:33e::15) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bca32ac4-babd-4bd0-7609-08d9b0274e39
X-MS-TrafficTypeDiagnostic: MN2PR10MB4383:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB438351371AD34DE6301057148A629@MN2PR10MB4383.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4303;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	izFBXKiEDIni2MgEDXHJ4qsQDAWTTRuCQKVdzdDC34prTkeOouN+dpq94lkKFZnhEnffMdYZ4bX7zIXKnX2X9L3TkelkAla6+D6UbTRVHeg7zln+z7YAe521Tat6q0PmVIDbnJHByU8+os9PUbEeefWwQx3XCjuZ4jKjzBu5Bqc9Ysl61JNCxI2CdwRDKb1fSVHGTarb0NTi43KbZ2Kfosmty2txN7/uq8ERbXjElm3YuAnbbogc50AfrBVs8NyFOG1gtbx2atpEXDnquHzcemBKgQz2dQoi5IBAAxUDBD47DSudZYQAYHXRJJB+mU2O6Sg521qzJkzLLbOT6u4scOz+gs4n41w0lUHud/71GqofqYqUfhIEmbbMuUSDyRO3KpTSBiEx1AUqtzePz0xtlypszpK9Y8oWVEYpzX+xuAhxgU25+XfMrZp32MO2hpXdRZ1y3kLmttQ9a0Jp6RSUEJ58eMm+kIVBdbRj51Us73KeZtHC67pRV6YKqOu7zG3kNCk139MP2s7VXGrE4sZ5rd68QECz8s4YjwuTjM+qNPGHfJeqTpcfhvwucN0xppu8AB7cTv5pWtrXNs9xAQIild5GKf6vdCYwW7Y++iJ9n9pOqNje5028ODhbhaIvpaVV0Wal07ai6oAZTahU36SW6p0n23D5WrTXbsHlc2af+MjbeThHOxYVNZ8em8qM94l/Em6ZxAqGCh5TYmBvaNQhNbjm6Lngiu23qbGcu4NFD685zCkBElgR6TdGyzlK8v36
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(44832011)(4326008)(54906003)(2616005)(31696002)(66946007)(66556008)(186003)(316002)(6486002)(5660300002)(16576012)(7416002)(38100700002)(508600001)(956004)(2906002)(66476007)(86362001)(26005)(8676002)(53546011)(8936002)(6666004)(31686004)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?ZGhHSjF4VC9FTGZwN2puR3FWQWkvc1N0a1RER0U4MmxOUXZibU1TRHRpT1NM?=
 =?utf-8?B?alU2bFVSREg5REp1dC9ydHdXSm5JdjFjQ2xXNG8yMUNmY0lkMGhMYkxiKzBB?=
 =?utf-8?B?ZGhBS3IvRERqTXRhOFgvWHFCMThZNzNIQ0t5MUpGOWk1Q1pWc2t4OUZwUmxH?=
 =?utf-8?B?WkFIbnUvSllKT3M3ejI2SjhtQjZDbzNnVHlCSDdVWnpQbjVFczN4cG9rVWg4?=
 =?utf-8?B?T25rN09iRlRzQVVxMVp1TTNzOXhmSTN1bStVd1ZBbkRHSDg3bmREVlJiVitu?=
 =?utf-8?B?bzU4cjFGZm1FR1lhUzVLemxRWGlocDRnVGlFd2p5S0xuOFAwM1lrcFVFY3Rv?=
 =?utf-8?B?M3BYOHFveUl1MEJ0QUhMRFRTMEMrZ2ZKbUVnY0VEMlJaOXVyOEdmcHFvbTk0?=
 =?utf-8?B?UUFVWVVMczF3c3lQZmNUM2o5QjBGU0E0emZwQkZ2TjJueDVMTlErSFExOUNE?=
 =?utf-8?B?cmtiazJwT0lEZUlIaE84SG5wNkNRZzBlY214eTZSRnFUWFRQZG9Od3VuV0d6?=
 =?utf-8?B?M2Joamx6RmJLZGtvZ0E1dmkxQVlQbEFpYzQ4ZllFNkxsVGJmYkl5UW5QMzRN?=
 =?utf-8?B?VWV6WDBYWXJIeTJpYk9NTXB5RkZoWUxRRzE2ZTJWWGJVRnhCSWZYY3dyQUhQ?=
 =?utf-8?B?elVUOGROSlVuS0JFTTVMZEdsNWVFNjF0MDByUm0zTWl3TmJUVnEvK1hnUXlS?=
 =?utf-8?B?eWlSczZRc3Fpeko3cmFCRnRuOTgzNDY1TlM1UmQ5eEd2a1YrRmY5Y082NVFI?=
 =?utf-8?B?ZjNTeVFGS2N6NTlxb0hGUU0vOEkvaFJ4WjEzdG5ndWQ0NE1JZld4TGtReUZO?=
 =?utf-8?B?d1Axdzd3dFJlVS93WXBHeVJJVk1IelhGVEttc1p2d1NQa1pITjd6akhSZlhX?=
 =?utf-8?B?Qk1LU21FSW1qRkJXK0RmMWtlcGRmL3NjYWd6UkZrZy9VTFZuSzhlZ1BaZVlY?=
 =?utf-8?B?d2xuUm03eDZId2duZngvZ0NVWTYva1d3d1R4NGlhQThISWZpUEV0VjQ1UXlt?=
 =?utf-8?B?V1NYU1EwZm5XaFNaZUcyRjZXY256Y0MwYm9LeDFxQjY2Mmdra2tIUmYzOVlR?=
 =?utf-8?B?QWREcWg1OElsVXphRG40VTlZTDIvc1RrMzZjUDRNdDNuckpmY3ByYnZUeFhh?=
 =?utf-8?B?ZzdZVjIzWjdtaktaYS9IQVBvbmh5cXJ2N00xREhGakRORThOaDhKV2RuUzJR?=
 =?utf-8?B?QVp6QjgvQ1llVzNIWG9HclgrelI2Umt2M0FKYmFjQkJJQnExK0JnMFBVSXJP?=
 =?utf-8?B?cnYyUDV0OHJpdFBLOER5THpjeHd2bFJNa0c3ODF6S3hWSHVMZm1ML2ljKzZV?=
 =?utf-8?B?S0JWV0xlSVgxRUdoVkR6c1FlM3JaRlZGaW5Qc3dWNjhpZjhxOWxLTEdGVmpv?=
 =?utf-8?B?TnQ2OVI0V1hrc3lJRW5jeksySUIzem5OK3FKZ1AzQ2d1akY3eWp0RGdwdWxW?=
 =?utf-8?B?enA1RGlZWVNtSFRzNURsZHhkQU50ZXYzSExDb3dVclJ6RGxzTzdVQ2dUUXNX?=
 =?utf-8?B?dWUwYWE1UDVocTc1SThXWmtZQXFETlU0ZWxKTHRkMXRvU1BYYk90VkpZMTZq?=
 =?utf-8?B?S1BsMFhHQlhwYlQ1aTFmRkt5eVFuaUtQNmtVYk1NZDlybGJpMmdIT2htc201?=
 =?utf-8?B?ZnovSkhIMmtvRFJ0eU5NNlBKT1BzOWNlTmxlRVVhVnBXL1BhbkFsc253Z09u?=
 =?utf-8?B?VHB0bVpheFBUVDhkcHlTSXY5b3dMZGlueVBCUDhHd1B5bE5oVDMyZ3dKTjVW?=
 =?utf-8?B?RWN0K0tKRnRZWWpNVlArWVk1ZUpzTjI5UVhhZS84cFczNmdIVkM0L3M2Uldh?=
 =?utf-8?B?NkRaZmJDeTJMaGVEbnNHcW5KUGZSTFJpN3l6V2ozNUt5UHA5NGZiQlFjdzVt?=
 =?utf-8?B?dloydDdIam8rUW0rWmJjUUhLQnZ3SFBzNEc3YUZnU1Mrb0tua2ZTQk90cjl4?=
 =?utf-8?B?eWh6bFZoanlNQzNGWUlnZWNoUlRXRDR6U1RRa0t2azFNYSsrOWMyUmZSREpM?=
 =?utf-8?B?anA4U2lYcEZITm11UzJmMUtjYjg2ME1zVmpJRzlud05vL1Z0c05LWURYT3I2?=
 =?utf-8?B?bFNkaEExbEY0N1NvVEpKZmozb2JoSUFjVm1POEJhdGFWMG03akJLSkdzOXhm?=
 =?utf-8?B?cjdRdkN1dk9IU0lBRW1DZUFBRzhqQnU1WWsxT2RIZDVQTndTV0FxQ2huR2w1?=
 =?utf-8?B?bksyeUh1REloaksvdHd3ZUJScElEUFFldHZRTkk1THZUeFJRWDBvbFJBQzZk?=
 =?utf-8?B?cndIQUVyRjM1Y3FMckFZSVdJQnJBPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bca32ac4-babd-4bd0-7609-08d9b0274e39
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 15:21:51.3711
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WNwnUwzlptoU7PN9FlUem6dEYoTxBzr3Ll6KrPKYNLOaqjfs0npiEmctdtfiaN/RiSWNLmnc3NvfHZ67c0ht+7MQt2nosKscLQCd6yzalwg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4383
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10179 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 spamscore=0
 bulkscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111250085
X-Proofpoint-ORIG-GUID: X_NWAn0AHYKFSi1y9iGuMiKi1e_UfJMo
X-Proofpoint-GUID: X_NWAn0AHYKFSi1y9iGuMiKi1e_UfJMo


On 11/22/21 3:20 AM, Juergen Gross wrote:
> On 22.10.21 08:47, Juergen Gross wrote:
>> Today the non-essential pv devices are hard coded in the xenbus driver
>> and this list is lacking multiple entries.
>>
>> This series reworks the detection logic of non-essential devices by
>> adding a flag for that purpose to struct xenbus_driver.
>>
>> Juergen Gross (5):
>>    xen: add "not_essential" flag to struct xenbus_driver
>>    xen: flag xen_drm_front to be not essential for system boot
>>    xen: flag hvc_xen to be not essential for system boot
>>    xen: flag pvcalls-front to be not essential for system boot
>>    xen: flag xen_snd_front to be not essential for system boot
>>
>>   drivers/gpu/drm/xen/xen_drm_front.c        |  1 +
>>   drivers/input/misc/xen-kbdfront.c          |  1 +
>>   drivers/tty/hvc/hvc_xen.c                  |  1 +
>>   drivers/video/fbdev/xen-fbfront.c          |  1 +
>>   drivers/xen/pvcalls-front.c                |  1 +
>>   drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
>>   include/xen/xenbus.h                       |  1 +
>>   sound/xen/xen_snd_front.c                  |  1 +
>>   8 files changed, 10 insertions(+), 11 deletions(-)
>>
>



Applied to for-linus-5.16c


-boris



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:37:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:37:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231576.400809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGoT-0000RC-7e; Thu, 25 Nov 2021 15:37:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231576.400809; Thu, 25 Nov 2021 15:37:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGoT-0000R5-4A; Thu, 25 Nov 2021 15:37:29 +0000
Received: by outflank-mailman (input) for mailman id 231576;
 Thu, 25 Nov 2021 15:37:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CZwX=QM=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqGoS-0000Qz-A3
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:37:28 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 95f51344-4e05-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 16:37:26 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:49578)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqGoN-000fEK-i2 (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 25 Nov 2021 15:37:23 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 5ED631FF69;
 Thu, 25 Nov 2021 15:37:23 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95f51344-4e05-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <75f3e8ba-89bd-9ba0-52f0-1578b3db863b@srcf.net>
Date: Thu, 25 Nov 2021 15:37:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>, Wei Liu <wl@xen.org>,
 Ian Jackson <iwj@xenproject.org>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <YZ9TmzIbi8QjTAgm@Air-de-Roger>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
In-Reply-To: <YZ9TmzIbi8QjTAgm@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/11/2021 09:12, Roger Pau Monné wrote:
> On Wed, Nov 24, 2021 at 09:11:52PM +0000, Andrew Cooper wrote:
>> OSSTest has identified a 3rd regression caused by this change.  Migration
>> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
>> fails with:
>>
>>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
>>   xc: error: Restore failed (22 = Invalid argument): Internal error
>>
>> which is a safety check to prevent resuming the guest when the CPUID data has
>> been truncated.  The problem is caused by shrinking of the max policies, which
>> is an ABI that needs handling compatibly between different versions of Xen.
>>
>> Furthermore, shrinking of the default policies also breaks things in some
>> cases, because certain cpuid= settings in a VM config file which used to have
>> an effect will now be silently discarded.
> I don't think they will be silently discarded. xc_cpuid_xend_policy
> will attempt to get the CPUID leaf from the current/host/default
> policies and fail because the leaf couldn't be found.

Hmm yes.  Now I look at the code again, the error handling is plumbed up
fully.

So yes - there will be a rejection now where previously it worked.

> There's an issue with callers of xc_cpuid_apply_policy that pass a
> featureset (which is not used by the upstream tools) as in that case
> the featureset is translated to a CPUID policy without checking that
> the set features are correctly exposed regarding the maximum leaves
> set in CPUID, and thus features could be silently dropped, but as said
> that's not used by the `cpuid=` config file option.

Good catch.  I'd neglected to consider this aspect.

> This possibly needs fixing anyway after the release, in order to
> assert that the bits set in the featureset are correctly exposed given
> the max leaves reported in the policy.
>
> I think the above paragraph should be rewored as:
>
> "Furthermore, shrinking of the default policies also breaks things in
> some cases, because certain cpuid= settings in a VM config file which
> used to work will now be refused. Also external toolstacks that
> attempt to set the CPUID policy from a featureset might now see some
> filled leaves not reachable due to the shrinking done to the default
> domain policy before applying the featureset."
>
>> This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as well as the
>> partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (which added
>> one new case where cpuid= settings might not apply correctly) and restores the
>> same behaviour as Xen 4.15.
>>
>> Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents")
>> Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies max leaves")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
>
> Likely with the paragraph adjusted if agreed.

Ok.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:39:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231583.400820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGqL-00016X-NE; Thu, 25 Nov 2021 15:39:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231583.400820; Thu, 25 Nov 2021 15:39:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGqL-00016Q-KG; Thu, 25 Nov 2021 15:39:25 +0000
Received: by outflank-mailman (input) for mailman id 231583;
 Thu, 25 Nov 2021 15:39:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqGqK-00016E-5q; Thu, 25 Nov 2021 15:39:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqGqK-0005ps-0n; Thu, 25 Nov 2021 15:39:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqGqJ-0005M8-NK; Thu, 25 Nov 2021 15:39:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqGqJ-0002PD-Mm; Thu, 25 Nov 2021 15:39:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+Degmnh/wa40/B/lnS5j/rcD+454XnVkspe+Hw3yJQE=; b=EJc2dbnT2qmeJZxnfqHRI90Shl
	Idpn808L5Mgqb6HEOiJC/F6mPVvEPctlIw4hDMQmOQILE6dPqNEXi85ayQuUWFEQMWuzrRzd+BTNG
	2GMvK9smyAv0ob663orpYYM+vtCmCqtLneVrFFnCqHJLR/Mdo2NwJaljCwo4jXkPRmCI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166345-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.13-testing test] 166345: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow:debian-hvm-install:fail:heisenbug
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64:debian-hvm-install:fail:heisenbug
    xen-4.13-testing:test-amd64-amd64-xl:debian-install:fail:heisenbug
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.13-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d3c2319ea1657f31ae3899713afc23789b771c10
X-Osstest-Versions-That:
    xen=b4bb02d5999a56c93f0733b589b717e7cece9c09
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Nov 2021 15:39:23 +0000

flight 166345 xen-4.13-testing real [real]
flight 166473 xen-4.13-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166345/
http://logs.test-lab.xenproject.org/osstest/logs/166473/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow 12 debian-hvm-install fail pass in 166473-retest
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 12 debian-hvm-install fail pass in 166473-retest
 test-amd64-amd64-xl          12 debian-install      fail pass in 166473-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165401
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165401
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165401
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165401
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165401
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165401
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165401
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165401
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165401
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165401
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165401
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165401
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  d3c2319ea1657f31ae3899713afc23789b771c10
baseline version:
 xen                  b4bb02d5999a56c93f0733b589b717e7cece9c09

Last test of basis   165401  2021-10-06 17:29:26 Z   49 days
Testing same since   166309  2021-11-23 12:38:48 Z    2 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          fail    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             fail    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   b4bb02d599..d3c2319ea1  d3c2319ea1657f31ae3899713afc23789b771c10 -> stable-4.13


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:40:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231589.400837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGqz-00023L-3j; Thu, 25 Nov 2021 15:40:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231589.400837; Thu, 25 Nov 2021 15:40:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGqy-00022Z-W4; Thu, 25 Nov 2021 15:40:04 +0000
Received: by outflank-mailman (input) for mailman id 231589;
 Thu, 25 Nov 2021 15:40:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=67yb=QM=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mqGqx-0001o0-2w
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:40:03 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f323d87d-4e05-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 16:40:01 +0100 (CET)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1APFLBOW005318; 
 Thu, 25 Nov 2021 15:39:34 GMT
Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80])
 by mx0b-00069f02.pphosted.com with ESMTP id 3chk007tev-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 25 Nov 2021 15:39:34 +0000
Received: from pps.filterd (userp3030.oracle.com [127.0.0.1])
 by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1APFb9XN145698;
 Thu, 25 Nov 2021 15:39:32 GMT
Received: from nam04-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam08lp2046.outbound.protection.outlook.com [104.47.73.46])
 by userp3030.oracle.com with ESMTP id 3cep53rhva-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 25 Nov 2021 15:39:32 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by MN2PR10MB3998.namprd10.prod.outlook.com (2603:10b6:208:182::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Thu, 25 Nov
 2021 15:39:30 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4713.025; Thu, 25 Nov 2021
 15:39:30 +0000
Received: from [10.74.106.108] (138.3.200.44) by
 SN7PR04CA0068.namprd04.prod.outlook.com (2603:10b6:806:121::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Thu, 25 Nov 2021 15:39:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f323d87d-4e05-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=+CUNf/nkpXrQBdtD5NiqLWu7tVPu0twJbHsL369Q+2I=;
 b=MgUf87aKvGAkWZNJq9+J9jsWE5wkReOdkBJMMHDCJQjtmn5pWZ6zaL+2DxOsb2wTGsdE
 2cHOBCmhBsuP3wxP3IDXkclc8hc4quwxXlLcbkUBoi2RvGnfMpHgWj436znT2vGRA9NG
 yewRCSR2UYYiSHnvVy8gaAfuO/ZWtZLdLpj4BRS5z6EaKiTczE/oTPqeFOzykPFjbmqx
 /kFoXa+DWxtY116gx0kYlf8KuUmZDMtltbgLujoUddW4Uc54+TGDtUXZ2eNTQSxEwur1
 Ha905RdAS2vmIP3wwOoXLqfP1ch+LeebHMkIQzA0lGcXNaW9AU4uec7UpG6kzkKBDbSB cw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BkXc8FnjkSrKPJRRbHIAmSjC7fjFtwDj1FY0eDkAQ51CN5owZzHGYljLASFGWFYULFw79zP3eJubUJXjeZFnbG5r297sULMsqnktJCSFENN948rwn+J5pErKJxZ2iVo3FDjRAHC97bh0kFvkrYNABOWStj1DR2xBT3lVPMMLkpBD33mIgpntmYbk2wa8S7cDzPZkL5tILNCwjRUV32gMeY7PMyanSczNBOH7kHRKhPl2ukmrEnnCGMlmLrZVxsMHO1RcI2JPmECTrkhrOwul/Ftyqo3duaUTA2ISW4cSg7ox0uegEqxGh649A5HyqV5rq6ccjnZtmc0QHRk7xvO3vw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+CUNf/nkpXrQBdtD5NiqLWu7tVPu0twJbHsL369Q+2I=;
 b=L71IQ8Aa3l50KaGJutTfOAd88dncyXsq0xGmA+luitEcQ33HeFBkjpi48Sc7mHTq1rNMQe427OVstc5LlijxgACPxzZOb4ekBDUXxVX+WbP3LqUqpLQNM8phaPOMLTe2oOwKMg5HMHLY6KuoN2m7GpEyf5Tc8piRKu1dnZZdwOhpPGvVVo+KCKHZK5jTUYLT7SAPceQOHylK3SSTwKGHWor3yVPGdoba/ZuypmxqqJog7JsMHtvyWCmHXLbPHJVjY0cPE/tmcIvctRWY8enEC8Mkc2cgoOJ3s3+9HMePyBlhLskFE6bbl5KlPFOsGhNWQyDxlwODdWyn+HevNNUWmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+CUNf/nkpXrQBdtD5NiqLWu7tVPu0twJbHsL369Q+2I=;
 b=qTsydae3g2bwjj4SemNzSw/I3CkDVAVXonMDTpU+qaFMqdProbzQ66y/PwA0rFSPoK19jR1NDmAHpdeGtpeHHrP4GxEEdhSG1KLVbOsspNYXU+vNuBc8cfFH90k0vjNdbNm3KV9sruEMguS1R8ik2CMHb+BbNgt8izl0q8E1oHg=
Message-ID: <048d94de-4538-ddd0-dcee-dfdfcb0b8310@oracle.com>
Date: Thu, 25 Nov 2021 10:39:23 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.1
Subject: Re: [PATCH 0/2] xen: make debugreg accessors always_inline
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        x86@kernel.org, linux-kernel@vger.kernel.org
Cc: peterz@infradead.org, Stefano Stabellini <sstabellini@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>
References: <20211125092056.24758-1-jgross@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211125092056.24758-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SN7PR04CA0068.namprd04.prod.outlook.com
 (2603:10b6:806:121::13) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7be7bea4-bfc0-4d33-9ad6-08d9b029c581
X-MS-TrafficTypeDiagnostic: MN2PR10MB3998:
X-Microsoft-Antispam-PRVS: 
	<MN2PR10MB3998F595DED09CC6E747C6D18A629@MN2PR10MB3998.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:525;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	sn6MGcYGaKOT1oQoAGmSPfOnBoKIfbasgAV5QwCmhdbFC6zcRLdidhurvQW/ahYyc8Tm5wpW51Wf1ArD1vQZsbQHIzsMrSMLxZ6gFAgzlPlTc22yPcIIwrGnrs7ogHKmLjLq5qLQ9pMDC/cYNe3qNFrGFgTv0R1w4mXjiP1okzyHaI1Bqd/2smiyS1b45xPEY+MbcrqNLLn2PcjmSAlUu/AbigmtGYYEVOHJXQYrXP3HCCDmbhqrqhQcDSJq0ro+h2rzWgXTDXoYecAI5xAaaoMOiMl0GiRBFMYbnedO1vqAlF30Zha+yzGWOrF6Cp0Nlnmsogd47VAQtYfLgNgdD2qw/LM0IHATmHY2x6IPqfF2uYTt+sWY/vM54IwtBgrce1g+dhYsUQTYv0z8AZ44NveA1UbR+reF192iVk9nyG+nzIOaj576FgifCmzKZ7zRY6hu+fyLeJq8P3RDtc8vLBELwlte6cNMLT8g0c/oOk2uGu8yYZoaDoot3z65LtL4vETWVNdh57UVnuUN+xYWa2lVwYlDjxsuRqEO1OOGEKiozh4dv64DOcatR/8W1fUrUjga5zDLd423YEeWtwwsWb/F53VD5ihFjPMTWSLQjqnbSAyj4nO3P4pGXh46wpQ+xCjlY0gWsIFfXBacQVnH4oK7HN9We1X5cL26tL8R5MzWQIIG6WFRY7fk4VgOJrc/8t18JODaQi00DLSr/TMsg2x46Wvvjgswi/zgEXyyCBZ7QTUF/nB9AA+PSW067Joe
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4744005)(54906003)(8936002)(31696002)(44832011)(2906002)(38100700002)(66476007)(66556008)(26005)(66946007)(6486002)(53546011)(6666004)(4326008)(2616005)(16576012)(31686004)(36756003)(5660300002)(83380400001)(86362001)(508600001)(316002)(7416002)(956004)(8676002)(186003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?WStmOFJqV0JhS1lhd0l2U2RmekFCUXROME9vOThOamtoUU5zMTUxTmlsV1Z0?=
 =?utf-8?B?dkNXWDJDdG9PSlFLdloxVng0dzJSaVhIZkVGMFM3eERWbDVCVWtFMjdoTUhT?=
 =?utf-8?B?OXpyZGVrTmhQQXZGRXJsYTZNSjUwSlFuRFA2ZVl6cVRjREFrR2ZTenlRbE9H?=
 =?utf-8?B?T000eDNoUmR3L0RiemxVdmVJcUNxcm1NK0pHUFo0T0thbFJySk5zVGU5WUtq?=
 =?utf-8?B?TmJ0dkUzUlc4bFV6VDRESUZleGpFQ0g0ZGp6bkgwZjJJeSs2ei9XTXNSSWo0?=
 =?utf-8?B?Zy9rczhmajJpcCtNWVdKZC94THg4YU5GTHVXc3M5QS8rdG9sMGpoVDFHVDdn?=
 =?utf-8?B?ckJyVTc4ZzRESis2d3hOQytmMHdtTXNwZzVML0lUQzdRK1ZDYS9QMlA0QS8z?=
 =?utf-8?B?Q01sZCsrT1ZOdldKR3RKRWY0S1VpV0lWRjREM1hzdU1IMFJkOFhNQUlqaXRa?=
 =?utf-8?B?WVozdmp3VkJRbzIvUkREYlR4dDFwQzFIOWgzcUYzaUZMS2dlY2d5Qi9JekQw?=
 =?utf-8?B?L1NIdnFvcFNHN0dmZWJzRVpDZ0c2b0NoY0Q3NllRY21PR2NPWnIyeGhHczZs?=
 =?utf-8?B?NzJ1dDVXMVFZak8zemxOU3Z6REdNM2VIRFpmdThKZzFGRG5Yb0ZUMjJ2YXN2?=
 =?utf-8?B?R3VjOUFZL052Q1M4K2FCbjRIYXFHb3I1amJZbjZxZ2NlOXRwTk5qaFBkZGFL?=
 =?utf-8?B?YXpETVN4ZmJJVDZTdXpNakNxTGc5cmVhRHJtclpwQ1o4ZnQxc1MxWkowODZI?=
 =?utf-8?B?QW9XMWRXMzBFcjYvY0Vqa0pKU0ZoQzJaS0JGOGdDQWJOWmVHWHdFbE5pWFll?=
 =?utf-8?B?Ym9teGMrK3hhTk40UGgwRG1GTVN2d29JY2IrcElUS3c5K2o1OUFlSEJIbzl4?=
 =?utf-8?B?QStIMzRINml3MDhtT2QxL3V5T0QrYUszVGhHQ090SUtEZEE5T3p1VWgwd3l5?=
 =?utf-8?B?d0U3TS9YNmRnekMvRVp5eXFMeXYwaTM2WEFXekVhWG1BYXlPbkJScGFpWDNk?=
 =?utf-8?B?VE9BYmY3dDF4VHFKSEpqYnFPbEN2bEdTNkJWNElSSldidjY2MGp0THE4OHk4?=
 =?utf-8?B?Sm5TKzFCMXBIeTIxK3hxbXhMa0t1azZMZEJuYjZwS0d1YUwwTysrSXlPczNv?=
 =?utf-8?B?b3VMeE96N1lJajhYbmxVeW1ML3pWU1Q2eEJKNlJleGZtc2Z1d242MXpJTlcr?=
 =?utf-8?B?Q0VZOWxYaWJ4dXptVnBXeVN0RlBWNFQxakRlSmVpcFUvVlg2Uzg4QUF1Mm84?=
 =?utf-8?B?N2U2ektCd0R6ZzFFMytncHRwM2d3eEZnV2pDQlRDWVArMHppN1h5UUpPbXVH?=
 =?utf-8?B?b08rdXBaUUtLdDgzR0hjYXJ3dlFUS2gwMnZjSUszWUNGcEdUY0NOekZDa2hh?=
 =?utf-8?B?SjNPUDMreS91Y0p2bUIwZTNTZUtGRGN4Qng4NFVDTGdkZTF2RlB2bXRqU3VX?=
 =?utf-8?B?aTRvT2ZadUwyTEtBNlYzQUVPbGd4aEtkVkdTb2J0SkFJWmx0MUJWREJveWFt?=
 =?utf-8?B?bCt3WVN2TmlER2ZBMW8vQW0xNHdvU3ZQN1E5czJRQVA1VG9HM2F1TEt6MUdE?=
 =?utf-8?B?ZDNFUVpBKzd5Ym40ZUZkQUowYnJOUW0vRXdnSzAxREg5WGFMa3piZ0F3ZGxR?=
 =?utf-8?B?TUdoSHpYYmlzNTZsR3Eyc0pRWDRqZkt6dDNERENiWS9wUnNSazZqQkxnaE80?=
 =?utf-8?B?eEtCd1lVcXg5a2hEWjhtbmNzTEdDRm5LeXRQNFJDS1QwbE0wSm11NzhvMUZh?=
 =?utf-8?B?N1NiTmVQc0cvS3BseTVTQWFhT1N3cER1aXhIeTN1Njk4QklucWl1cTBYbGZ5?=
 =?utf-8?B?R1BuVTR4NS9DcW5nSGJqam9ENHR4UHVLWEdLakwyWnFZY3hHT3JrSDZQY2ts?=
 =?utf-8?B?ZDk2czk4Q2V5MmJvZCt5aDZvUWRKNWFEdWNqYUNvbzVuNk45U1NJZGhWVHpW?=
 =?utf-8?B?MUMvakJPRlVsWDhBL2VDVVoxem9rVzE5QlllamdhMHAzSUpBcUJLYVN3UmpO?=
 =?utf-8?B?aFRmZnpzYi9TNE95WTl3dWhjekZxWDVOaDZ2MjN4TkJVOGdlbjVueUhsUFhH?=
 =?utf-8?B?MjdXODVGNlo3RStwVGdVSFhuVm5yYW1KZTVpQ09pSWxpcGtsd0hISDFjamN5?=
 =?utf-8?B?RnZISm1LQ0FjU1J5eXliR3FaQ0FVa0dNWGxDN1hFM09HWGN6YlJkbVJ6aThv?=
 =?utf-8?B?bEtGNVMwQ1didGJaT3FqUVdpKytvTGJ5VnZiQWZ4WDhQeVE5TjBsU1c5ZnVR?=
 =?utf-8?B?cG50ZWR1dEhBNXVQZlRQSDNwK3hnPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7be7bea4-bfc0-4d33-9ad6-08d9b029c581
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 15:39:30.5449
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kVXB5OLzWYhB5F/cIsqrQ8bmhDQNTawTE7w4ics30w4BBOH3u5/SOqQlbAfjQKFU6C9ol2tbrPH4shNOVuU54qD9di1m0vzLGqbgf44eh/4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3998
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10179 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 malwarescore=0
 mlxlogscore=999 bulkscore=0 mlxscore=0 suspectscore=0 adultscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111250086
X-Proofpoint-ORIG-GUID: F3qNX7ec-cz3Mjczewwlo4lzaIXdgpG_
X-Proofpoint-GUID: F3qNX7ec-cz3Mjczewwlo4lzaIXdgpG_


On 11/25/21 4:20 AM, Juergen Gross wrote:
> Juergen Gross (2):
>    xen: make HYPERVISOR_get_debugreg() always_inline
>    xen: make HYPERVISOR_set_debugreg() always_inline
>
>   arch/x86/include/asm/xen/hypercall.h | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:42:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231599.400847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGsp-00037y-IC; Thu, 25 Nov 2021 15:41:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231599.400847; Thu, 25 Nov 2021 15:41:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGsp-00037r-Ey; Thu, 25 Nov 2021 15:41:59 +0000
Received: by outflank-mailman (input) for mailman id 231599;
 Thu, 25 Nov 2021 15:41:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CZwX=QM=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqGsn-00037f-CA
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:41:57 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3853eaff-4e06-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 16:41:56 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:49588)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqGsV-000iZJ-hX (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 25 Nov 2021 15:41:39 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 279221FBFC;
 Thu, 25 Nov 2021 15:41:39 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3853eaff-4e06-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <0b674f45-d82a-74cb-5853-97cb5e8eead9@srcf.net>
Date: Thu, 25 Nov 2021 15:41:38 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/2] xen: make HYPERVISOR_get_debugreg() always_inline
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
 x86@kernel.org, linux-kernel@vger.kernel.org
Cc: peterz@infradead.org, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, kernel test robot <lkp@intel.com>
References: <20211125092056.24758-1-jgross@suse.com>
 <20211125092056.24758-2-jgross@suse.com>
 <3c922d47-9eab-5150-f4c6-3db40a77599a@srcf.net>
 <c4a1657b-2904-0d10-3a95-07b84062eb52@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <c4a1657b-2904-0d10-3a95-07b84062eb52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/11/2021 15:04, Juergen Gross wrote:
> On 25.11.21 16:00, Andrew Cooper wrote:
>> On 25/11/2021 09:20, Juergen Gross wrote:
>>> HYPERVISOR_get_debugreg() is being called from noinstr code, so it
>>> should be attributed "always_inline".
>>>
>>> Fixes: f4afb713e5c3a4419ba ("x86/xen: Make get_debugreg() noinstr")
>>> Reported-by: kernel test robot <lkp@intel.com>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> ---
>>>   arch/x86/include/asm/xen/hypercall.h | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/x86/include/asm/xen/hypercall.h
>>> b/arch/x86/include/asm/xen/hypercall.h
>>> index 0575f5863b7f..28ca1119606b 100644
>>> --- a/arch/x86/include/asm/xen/hypercall.h
>>> +++ b/arch/x86/include/asm/xen/hypercall.h
>>> @@ -287,7 +287,7 @@ HYPERVISOR_set_debugreg(int reg, unsigned long
>>> value)
>>>       return _hypercall2(int, set_debugreg, reg, value);
>>>   }
>>>   -static inline unsigned long
>>> +static __always_inline unsigned long
>>>   HYPERVISOR_get_debugreg(int reg)
>>>   {
>>>       return _hypercall1(unsigned long, get_debugreg, reg);
>>
>> All this is going to do is push the error one step further in.
>>
>> Next, objtool will complain that hypercall_page isn't noinstr.
>
> I don't think so:
>
> .pushsection .noinstr.text, "ax"
>         .balign PAGE_SIZE
> SYM_CODE_START(hypercall_page)
>         .rept (PAGE_SIZE / 32)
>                 UNWIND_HINT_FUNC
>                 .skip 31, 0x90
>                 ret
>         .endr

/sigh yes.  It would help if I was reading an up to date tree.

Sorry for the noise.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 15:47:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 15:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231610.400881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGxl-000402-DQ; Thu, 25 Nov 2021 15:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231610.400881; Thu, 25 Nov 2021 15:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqGxl-0003zv-AQ; Thu, 25 Nov 2021 15:47:05 +0000
Received: by outflank-mailman (input) for mailman id 231610;
 Thu, 25 Nov 2021 15:47:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqGxj-0003zp-Qv
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:47:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqGxj-0005y1-Q6
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:47:03 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqGxj-0007sN-PG
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 15:47:03 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mqGxg-0007b8-HH; Thu, 25 Nov 2021 15:47:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=36z7osfXGf8p7AkC7R4kIegyxV4DBECbS6YQeX2cVjo=; b=Vunqfd346v58KiKC/NDgymXojb
	aXUdVaDHkcucX/wx/IN7mZvmt9Ht+ZFEhKV8vj9bzAVyulXvXceXgfubXYUqo48m6u7A9HW7D00PG
	vLPJOUpMKfPtlNLR1RBcO14XGB3JiTmKQlqjprUBo22WKOWNYFPgxY8yy4i6ShItzmJE=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <24991.45043.677553.434670@mariner.uk.xensource.com>
Date: Thu, 25 Nov 2021 15:46:59 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] osstest: enable timestamp on guests logs
In-Reply-To: <20211125150646.10414-1-roger.pau@citrix.com>
References: <20211125150646.10414-1-roger.pau@citrix.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Roger Pau Monne writes ("[PATCH] osstest: enable timestamp on guests logs"):
> Enable the timestamp feature of xenconsoled so guests logs have a time
> reference. Can be helpful when debugging boot related slowness.
> 
> This requires using the XENCONSOLED_ARGS option and setting both the
> log and the timestamp options. Note that setting XENCONSOLED_TRACE
> will override any options in XENCONSOLED_ARGS, so they can not be used
> in conjunction.
> 
> Signed-off-by: Roger Pau Monn <roger.pau@citrix.com>

Acked-by: Ian Jackson <iwj@xenproject.org>

Thanks!

I have queued this on my "to be pushed after 4.16" branch.

Ian.


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 16:29:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 16:29:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231657.401002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqHcQ-0000aw-95; Thu, 25 Nov 2021 16:29:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231657.401002; Thu, 25 Nov 2021 16:29:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqHcQ-0000ap-61; Thu, 25 Nov 2021 16:29:06 +0000
Received: by outflank-mailman (input) for mailman id 231657;
 Thu, 25 Nov 2021 16:29:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a/TS=QM=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mqHcO-0000aj-51
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 16:29:04 +0000
Received: from EUR03-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur03on0622.outbound.protection.outlook.com
 [2a01:111:f400:fe08::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cc99a31f-4e0c-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 17:29:02 +0100 (CET)
Received: from AM5PR0701CA0024.eurprd07.prod.outlook.com
 (2603:10a6:203:51::34) by PAXPR08MB6970.eurprd08.prod.outlook.com
 (2603:10a6:102:1d9::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Thu, 25 Nov
 2021 16:28:59 +0000
Received: from AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:203:51:cafe::1d) by AM5PR0701CA0024.outlook.office365.com
 (2603:10a6:203:51::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.7 via Frontend
 Transport; Thu, 25 Nov 2021 16:28:59 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT027.mail.protection.outlook.com (10.152.16.138) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Thu, 25 Nov 2021 16:28:58 +0000
Received: ("Tessian outbound 9a8c656e7c94:v110");
 Thu, 25 Nov 2021 16:28:58 +0000
Received: from 4d35c3c40389.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 33D2B551-49DF-465D-A786-3F0270E5E3FD.1; 
 Thu, 25 Nov 2021 16:28:47 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4d35c3c40389.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 25 Nov 2021 16:28:47 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AM5PR0802MB2436.eurprd08.prod.outlook.com (2603:10a6:203:a1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.19; Thu, 25 Nov
 2021 16:28:44 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4713.026; Thu, 25 Nov 2021
 16:28:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc99a31f-4e0c-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ed4sNcmqP40QxRsYxE30T76p4TxdiBhR93CLAm+6rM8=;
 b=FC1mE13iDbX6w8zIYZd04YjI8n9c40JMUAYyKAlV2YBq89l8IlSKQP54/NJmfzkkojMGu3wnakGS84xJAtxS9NhAD8r0o4FlI6Wd0Q9LQmfG7paPzYrr0+rYi6mUQXMKz3nSCzR34DefFwxonyZS/u8FRQeGc//XsLEoyH4p+r0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 48ce32448fd3d68d
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BeCZee/VFj0KjHoWkx6a2u7rKR6bJu4n3tcc7qf3z7JzhGq5NzUW+y3SO5i2bMQbhr9HDz/maro/fqwbODVsw+Au7OF1nIT9+T2JqXIvS0bzUPN+AVaBHzYmK7gYmOIIGWU87aDsG63v7w2wYM7BjzIR/zIMZMPVTVNcu52puoP2HMyDKU07emVhSThxu0Y+JdEz18SWnYwaHnN/NHU8DGtmFv6SE76jlpHwur1NTvsgnvKWP7aliFAx5A2oIX0IMZ54UaMeZlkuW7FXEIJhpIO0Ca25UHa0cOcVznYUFzkaHe5UdF7LRkrfDkL9UBKxpJcJaBwxTsoX9yyrKTJMRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ed4sNcmqP40QxRsYxE30T76p4TxdiBhR93CLAm+6rM8=;
 b=gR0KbZOzslYjhrEpUFEdvv9KDzhOMR4ceJQV4UjnJ7RHWxFqZoFB0tiTNyMErJ9/NMMUe25dnf15mLvSbfkqpJb9S3fcW+0NdcZuElmK4UNLGnO+5CJE+w/hHGsPqv1PrnvJj1T66ysJnxt/Y9TDPP1v0HMC2ZkluMxFJo3lCt+DMN29Ok9C3t//snlSY2K0Y4mig1LbkCVgzftVFf25rqeMN1HtxQwLNwrarGZHB+1NphFL90yqbVOgvecQdMYzbgP6lDRMibIW8Mb9YbwHHFMaf2Okt5zR/zzJz9IUrr7PgGdfYeyKQaynyuIfonpvUhiZjcRTwprPBxYvYvyzIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ed4sNcmqP40QxRsYxE30T76p4TxdiBhR93CLAm+6rM8=;
 b=FC1mE13iDbX6w8zIYZd04YjI8n9c40JMUAYyKAlV2YBq89l8IlSKQP54/NJmfzkkojMGu3wnakGS84xJAtxS9NhAD8r0o4FlI6Wd0Q9LQmfG7paPzYrr0+rYi6mUQXMKz3nSCzR34DefFwxonyZS/u8FRQeGc//XsLEoyH4p+r0=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
	"volodymyr_babchuk@epam.com" <volodymyr_babchuk@epam.com>,
	"Artem_Mygaiev@epam.com" <Artem_Mygaiev@epam.com>, "roger.pau@citrix.com"
	<roger.pau@citrix.com>, "jbeulich@suse.com" <jbeulich@suse.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"george.dunlap@citrix.com" <george.dunlap@citrix.com>, "paul@xen.org"
	<paul@xen.org>, Rahul Singh <Rahul.Singh@arm.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>
Subject: Re: [PATCH v5 06/14] vpci/header: implement guest BAR register
 handlers
Thread-Topic: [PATCH v5 06/14] vpci/header: implement guest BAR register
 handlers
Thread-Index: AQHX4ewf3kblZEQ5zUuMTx5k5jz7jqwUbywA
Date: Thu, 25 Nov 2021 16:28:44 +0000
Message-ID: <34FC3FE6-EBA8-4A5C-A1F3-1E9F98C0337F@arm.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
 <20211125110251.2877218-7-andr2000@gmail.com>
In-Reply-To: <20211125110251.2877218-7-andr2000@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: d8a335b0-2af9-42fb-45de-08d9b030aef8
x-ms-traffictypediagnostic: AM5PR0802MB2436:|PAXPR08MB6970:
X-Microsoft-Antispam-PRVS:
	<PAXPR08MB6970FD1DFCD7E3F80E0877369D629@PAXPR08MB6970.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:291;OLM:291;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 8NHRCoc2imcteLSDfdd2/kGJe/nKkB8TnFuRTXE09Dt8cVAgrXHKNXAEYv9iPKD61/++ennj1jvGtWSv6vMSKVjlGS4qKYCiElaOxBVE48d4bsV2oJLFyGH2eKEMymmi+s1o88i7h9YMKUxMzt2m7YOsuTiDLAYaPLAEXAV4amokOIXkkp98fH+LofS6HbEkaNbsIKeVhWKnyT1QnzOsYbWI7LIJ/Q4214U5FIt0OuMHiDeG5q3rUV1s+vklu4T/sFsmNp82CjwcKOJKieJ7arbvdutqus+wktP1Z/hhGVDRavX4S3pABS2CzBFecLwxG9opxmMUKc9DLZMuIuI1pW0O0XWj4LMUPWQ47graWlw47dhXs2M2FHAgutIGINeOZ7C4frSsqEqM5pdGtCGdlOETaG62NCxDisdAoIeDltg8pd6FcOaV6QGRdeIqwL/5FcynzMt7/pF0/JVKErYc/1OsYo7qvOraBpyM+Q8YF58WAwzOegfA4bzAIEKkZf6y4ebSPUuXLzNynk7GUwwSHVQ2tlrHe0mBCOjyLzDMfLBdwz/h65XRYGdiMyGLE0lg3hrQN02vfzEr5K0i2TSZ+dllRPypE1aQxTVqHwezoOmq9WpPIKWFL1wzVd0MoZtgvvPFmND4kWPx+65RQQDRywTIHRq7qouHZhDik2qIFNbjDx/RdgmQ7L11lEfk4m4XGSyBEujFZz7qCZWdnYupJGY4z5xWZOv00FW2/7YRj+f0HqyL3IzYfAeUEveVegYX
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(54906003)(64756008)(71200400001)(86362001)(6506007)(33656002)(66556008)(6486002)(83380400001)(6916009)(8676002)(316002)(38100700002)(7416002)(66446008)(6512007)(5660300002)(66946007)(186003)(91956017)(76116006)(53546011)(508600001)(66476007)(26005)(2906002)(36756003)(38070700005)(4326008)(8936002)(122000001)(2616005)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <EAE40928C2632640BADCB67DD0D92C6C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2436
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1416b25c-aa0e-4de2-fe02-08d9b030a626
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	RTzjHZuF7oDc2OVha21Wo07FH6VOT4T5KPYWGB15qdWfQknWJJ0XmCydzjDRTfO1VkmOo/0uqREqVLXFQ6np0pS4BKEO12weCorYQCqFknuzutLpo8i11CYptwkWuKgReACaFGMh1drJhiHeth6bYpIq5/Z9O/D2Ht/ELTtviXducTzYDUxZsO54LnArcH3tNhPbs3/S6MaO7PMtW+uWI6UsPADXf8v76504kTRbSMDVJbHv8mnUEEREJG03LN5ovWZHE2KwAyTaQtcow8OVoFjIhDPG4wt9r0MP4gAoPieSznegM1IC7K7tMS1RMDcQ5nSeICkAql9t2GeYa7doPJXlUxkvkrACmYlurdUmMSzmjSz5fhhmZg294xqUrEX+uJ4DnDEQWmgs8SqIOCDb6uuMNeLesI+eAs1NfqxKwGe91onAzesx7Z+Fr4waiXgvArJctDJrWfrvMF/YC5OuQlLW9wypLuO7aZk7vLKLjpRZcgeyrytzImHsvnDN3AKlhn6qkEpomBpSmjLsY4BdTxgYwLu6CdiIXXl5Aem75Bj8qZetIomfLUcokZr/QiF7w0erHxWQhw6h61wloZdIjgMragoQkXF/kLi3ODfEAnqDQ1EbOkxJSUc4igAX05JI+2mTOUeLXBb6LBPrqI2ecgHwejPPs4X6eAYfqbhA5nO9iqjNDyyOoABgu18hqM22/FoSeOJ8fhUJyOznB3797w==
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(2616005)(5660300002)(508600001)(6512007)(2906002)(336012)(8676002)(82310400004)(8936002)(36860700001)(54906003)(316002)(186003)(356005)(81166007)(47076005)(36756003)(33656002)(6486002)(70206006)(70586007)(4326008)(26005)(53546011)(6862004)(6506007)(86362001)(107886003)(83380400001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 16:28:58.9271
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d8a335b0-2af9-42fb-45de-08d9b030aef8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6970

Hi Oleksandr,

> On 25 Nov 2021, at 11:02, Oleksandr Andrushchenko <andr2000@gmail.com> wr=
ote:
>=20
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>=20
> Add relevant vpci register handlers when assigning PCI device to a domain
> and remove those when de-assigning. This allows having different
> handlers for different domains, e.g. hwdom and other guests.
>=20
> Emulate guest BAR register values: this allows creating a guest view
> of the registers and emulates size and properties probe as it is done
> during PCI device enumeration by the guest.
>=20
> ROM BAR is only handled for the hardware domain and for guest domains
> there is a stub: at the moment PCI expansion ROM handling is supported
> for x86 only and it might not be used by other architectures without
> emulating x86. Other use-cases may include using that expansion ROM befor=
e
> Xen boots, hence no emulation is needed in Xen itself. Or when a guest
> wants to use the ROM code which seems to be rare.

In the generic code, bars for ioports are actually skipped (check code befo=
re
in header.c, in case of ioports there is a continue) and no handler is regi=
stered for them.
The consequence will be that a guest will access hardware when reading thos=
e BARs.

I think we should instead make sure that we intercept all accesses to BARs =
and return
something empty for IOPORTS BARs.

Regards
Bertrand

>=20
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> ---
> Since v4:
> - updated commit message
> - s/guest_addr/guest_reg
> Since v3:
> - squashed two patches: dynamic add/remove handlers and guest BAR
>  handler implementation
> - fix guest BAR read of the high part of a 64bit BAR (Roger)
> - add error handling to vpci_assign_device
> - s/dom%pd/%pd
> - blank line before return
> Since v2:
> - remove unneeded ifdefs for CONFIG_HAS_VPCI_GUEST_SUPPORT as more code
>  has been eliminated from being built on x86
> Since v1:
> - constify struct pci_dev where possible
> - do not open code is_system_domain()
> - simplify some code3. simplify
> - use gdprintk + error code instead of gprintk
> - gate vpci_bar_{add|remove}_handlers with CONFIG_HAS_VPCI_GUEST_SUPPORT,
>   so these do not get compiled for x86
> - removed unneeded is_system_domain check
> - re-work guest read/write to be much simpler and do more work on write
>   than read which is expected to be called more frequently
> - removed one too obvious comment
> ---
> xen/drivers/vpci/header.c | 72 +++++++++++++++++++++++++++++++++++----
> xen/include/xen/vpci.h    |  3 ++
> 2 files changed, 69 insertions(+), 6 deletions(-)
>=20
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index ba333fb2f9b0..8880d34ebf8e 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -433,6 +433,48 @@ static void bar_write(const struct pci_dev *pdev, un=
signed int reg,
>     pci_conf_write32(pdev->sbdf, reg, val);
> }
>=20
> +static void guest_bar_write(const struct pci_dev *pdev, unsigned int reg=
,
> +                            uint32_t val, void *data)
> +{
> +    struct vpci_bar *bar =3D data;
> +    bool hi =3D false;
> +
> +    if ( bar->type =3D=3D VPCI_BAR_MEM64_HI )
> +    {
> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
> +        bar--;
> +        hi =3D true;
> +    }
> +    else
> +    {
> +        val &=3D PCI_BASE_ADDRESS_MEM_MASK;
> +        val |=3D bar->type =3D=3D VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_=
TYPE_32
> +                                           : PCI_BASE_ADDRESS_MEM_TYPE_6=
4;
> +        val |=3D bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
> +    }
> +
> +    bar->guest_reg &=3D ~(0xffffffffull << (hi ? 32 : 0));
> +    bar->guest_reg |=3D (uint64_t)val << (hi ? 32 : 0);
> +
> +    bar->guest_reg &=3D ~(bar->size - 1) | ~PCI_BASE_ADDRESS_MEM_MASK;
> +}
> +
> +static uint32_t guest_bar_read(const struct pci_dev *pdev, unsigned int =
reg,
> +                               void *data)
> +{
> +    const struct vpci_bar *bar =3D data;
> +    bool hi =3D false;
> +
> +    if ( bar->type =3D=3D VPCI_BAR_MEM64_HI )
> +    {
> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
> +        bar--;
> +        hi =3D true;
> +    }
> +
> +    return bar->guest_reg >> (hi ? 32 : 0);
> +}
> +
> static void rom_write(const struct pci_dev *pdev, unsigned int reg,
>                       uint32_t val, void *data)
> {
> @@ -481,6 +523,17 @@ static void rom_write(const struct pci_dev *pdev, un=
signed int reg,
>         rom->addr =3D val & PCI_ROM_ADDRESS_MASK;
> }
>=20
> +static void guest_rom_write(const struct pci_dev *pdev, unsigned int reg=
,
> +                            uint32_t val, void *data)
> +{
> +}
> +
> +static uint32_t guest_rom_read(const struct pci_dev *pdev, unsigned int =
reg,
> +                               void *data)
> +{
> +    return 0xffffffff;
> +}
> +
> static int init_bars(struct pci_dev *pdev)
> {
>     uint16_t cmd;
> @@ -489,6 +542,7 @@ static int init_bars(struct pci_dev *pdev)
>     struct vpci_header *header =3D &pdev->vpci->header;
>     struct vpci_bar *bars =3D header->bars;
>     int rc;
> +    bool is_hwdom =3D is_hardware_domain(pdev->domain);
>=20
>     switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
>     {
> @@ -528,8 +582,10 @@ static int init_bars(struct pci_dev *pdev)
>         if ( i && bars[i - 1].type =3D=3D VPCI_BAR_MEM64_LO )
>         {
>             bars[i].type =3D VPCI_BAR_MEM64_HI;
> -            rc =3D vpci_add_register(pdev->vpci, vpci_hw_read32, bar_wri=
te, reg,
> -                                   4, &bars[i]);
> +            rc =3D vpci_add_register(pdev->vpci,
> +                                   is_hwdom ? vpci_hw_read32 : guest_bar=
_read,
> +                                   is_hwdom ? bar_write : guest_bar_writ=
e,
> +                                   reg, 4, &bars[i]);
>             if ( rc )
>             {
>                 pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
> @@ -569,8 +625,10 @@ static int init_bars(struct pci_dev *pdev)
>         bars[i].size =3D size;
>         bars[i].prefetchable =3D val & PCI_BASE_ADDRESS_MEM_PREFETCH;
>=20
> -        rc =3D vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write, =
reg, 4,
> -                               &bars[i]);
> +        rc =3D vpci_add_register(pdev->vpci,
> +                               is_hwdom ? vpci_hw_read32 : guest_bar_rea=
d,
> +                               is_hwdom ? bar_write : guest_bar_write,
> +                               reg, 4, &bars[i]);
>         if ( rc )
>         {
>             pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
> @@ -590,8 +648,10 @@ static int init_bars(struct pci_dev *pdev)
>         header->rom_enabled =3D pci_conf_read32(pdev->sbdf, rom_reg) &
>                               PCI_ROM_ADDRESS_ENABLE;
>=20
> -        rc =3D vpci_add_register(pdev->vpci, vpci_hw_read32, rom_write, =
rom_reg,
> -                               4, rom);
> +        rc =3D vpci_add_register(pdev->vpci,
> +                               is_hwdom ? vpci_hw_read32 : guest_rom_rea=
d,
> +                               is_hwdom ? rom_write : guest_rom_write,
> +                               rom_reg, 4, rom);
>         if ( rc )
>             rom->type =3D VPCI_BAR_EMPTY;
>     }
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index ed127a08a953..0a73b14a92dc 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -68,7 +68,10 @@ struct vpci {
>     struct vpci_header {
>         /* Information about the PCI BARs of this device. */
>         struct vpci_bar {
> +            /* Physical view of the BAR. */
>             uint64_t addr;
> +            /* Guest view of the BAR: address and lower bits. */
> +            uint64_t guest_reg;
>             uint64_t size;
>             enum {
>                 VPCI_BAR_EMPTY,
> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 16:37:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 16:37:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231669.401031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqHkg-00025T-DB; Thu, 25 Nov 2021 16:37:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231669.401031; Thu, 25 Nov 2021 16:37:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqHkg-00025M-9z; Thu, 25 Nov 2021 16:37:38 +0000
Received: by outflank-mailman (input) for mailman id 231669;
 Thu, 25 Nov 2021 16:37:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mqHkf-00025G-DU
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 16:37:37 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqHkd-0007NU-NJ; Thu, 25 Nov 2021 16:37:35 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.27.59]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqHkd-0003M0-G4; Thu, 25 Nov 2021 16:37:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=CYelhxn4OiwKEN/9oIQEGc/JGQ3fKJNBYoUXj157tUs=; b=lCUTuGXZP+4OFzOQ+/jcHAqCXi
	KcXVvWaaDqbttA1PReIGoPSs+Riv/HItinUYESyPY4P7ZiD92qVWJ9gBZLj2w1lZMmK/wzyOKBiJr
	g/2fjoP7PHYRPKO1qC/NkvL97IWI8uIkcHUlWSA10V5A/jvYAOV2bHLIKr9AP5nvyDek=;
Message-ID: <da172ad3-47b8-8e60-c70a-4275aeb9efd7@xen.org>
Date: Thu, 25 Nov 2021 16:37:33 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH 1/2] gnttab: remove guest_physmap_remove_page() call from
 gnttab_map_frame()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <4f54456b-e8da-f67f-b6a0-b5ce2cf12cae@suse.com>
 <8b73ff7c-4dd6-ff2e-14b9-088fdce0beb9@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <8b73ff7c-4dd6-ff2e-14b9-088fdce0beb9@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

Sorry for the delay. I was waiting for XSA-387 to go out before answering.

On 13/09/2021 07:41, Jan Beulich wrote:
> Without holding appropriate locks, attempting to remove a prior mapping
> of the underlying page is pointless, as the same (or another) mapping
> could be re-established by a parallel request on another vCPU. Move the
> code to Arm's gnttab_set_frame_gfn(). Of course this new placement
> doesn't improve things in any way as far as the security of grant status
> frame mappings goes (see XSA-379). Proper locking would be needed here
> to allow status frames to be mapped securely.
> 
> In turn this then requires replacing the other use in
> gnttab_unpopulate_status_frames(), which yet in turn requires adjusting
> x86's gnttab_set_frame_gfn(). Note that with proper locking inside
> guest_physmap_remove_page() combined with checking the GFN's mapping
> there against the passed in MFN, there then is no issue with the
> involved multiple gnttab_set_frame_gfn()-s potentially returning varying

Do you mean gnttab_get_frame_gfn()?

> values (due to a racing XENMAPSPACE_grant_table request).
> 
> This, as a side effect, does away with gnttab_map_frame() having a local
> variable "gfn" which shadows a function parameter of the same name.
> 
> Together with XSA-379 this points out that XSA-255's addition to
> gnttab_map_frame() was really useless.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -92,7 +92,7 @@ struct grant_table {
>       struct radix_tree_root maptrack_tree;
>   
>       /* Domain to which this struct grant_table belongs. */
> -    const struct domain *domain;
> +    struct domain *domain;
>   
>       struct grant_table_arch arch;
>   };
> @@ -1795,8 +1795,8 @@ gnttab_unpopulate_status_frames(struct d
>           {
>               int rc = gfn_eq(gfn, INVALID_GFN)
>                        ? 0
> -                     : guest_physmap_remove_page(d, gfn,
> -                                                 page_to_mfn(pg), 0);
> +                     : gnttab_set_frame_gfn(gt, true, i, INVALID_GFN,
> +                                            page_to_mfn(pg));
>   
>               if ( rc )
>               {
> @@ -1806,7 +1806,6 @@ gnttab_unpopulate_status_frames(struct d
>                   domain_crash(d);
>                   return rc;
>               }
> -            gnttab_set_frame_gfn(gt, true, i, INVALID_GFN);
>           }
>   
>           BUG_ON(page_get_owner(pg) != d);
> @@ -4132,6 +4131,9 @@ int gnttab_map_frame(struct domain *d, u
>       struct grant_table *gt = d->grant_table;
>       bool status = false;
>   
> +    if ( gfn_eq(gfn, INVALID_GFN) )
> +        return -EINVAL;
> +
>       grant_write_lock(gt);
>   
>       if ( evaluate_nospec(gt->gt_version == 2) && (idx & XENMAPIDX_grant_table_status) )
> @@ -4144,24 +4146,18 @@ int gnttab_map_frame(struct domain *d, u
>       else
>           rc = gnttab_get_shared_frame_mfn(d, idx, mfn);
>   
> -    if ( !rc && paging_mode_translate(d) )
> -    {
> -        gfn_t gfn = gnttab_get_frame_gfn(gt, status, idx);
> -
> -        if ( !gfn_eq(gfn, INVALID_GFN) )
> -            rc = guest_physmap_remove_page(d, gfn, *mfn, 0);
> -    }
> -
>       if ( !rc )
>       {
> +        struct page_info *pg = mfn_to_page(*mfn);
> +
>           /*
>            * Make sure gnttab_unpopulate_status_frames() won't (successfully)
>            * free the page until our caller has completed its operation.
>            */
> -        if ( get_page(mfn_to_page(*mfn), d) )
> -            gnttab_set_frame_gfn(gt, status, idx, gfn);
> -        else
> +        if ( !get_page(pg, d) )
>               rc = -EBUSY;
> +        else if ( (rc = gnttab_set_frame_gfn(gt, status, idx, gfn, *mfn)) )
> +            put_page(pg);
>       }
>   
>       grant_write_unlock(gt);
> --- a/xen/include/asm-arm/grant_table.h
> +++ b/xen/include/asm-arm/grant_table.h
> @@ -71,11 +71,17 @@ int replace_grant_host_mapping(unsigned
>           XFREE((gt)->arch.status_gfn);                                    \
>       } while ( 0 )
>   
> -#define gnttab_set_frame_gfn(gt, st, idx, gfn)                           \
> -    do {                                                                 \
> -        ((st) ? (gt)->arch.status_gfn : (gt)->arch.shared_gfn)[idx] =    \
> -            (gfn);                                                       \
> -    } while ( 0 )
> +#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
> +    ({                                                                   \
> +        int rc_ = 0;                                                     \
> +        gfn_t ogfn = gnttab_get_frame_gfn(gt, st, idx);                  \
> +        if ( gfn_eq(ogfn, INVALID_GFN) || gfn_eq(ogfn, gfn) ||           \
> +             (rc_ = guest_physmap_remove_page((gt)->domain, ogfn, mfn,   \
> +                                              0)) == 0 )                 \
> +            ((st) ? (gt)->arch.status_gfn                                \
> +                  : (gt)->arch.shared_gfn)[idx] = (gfn);                 \
> +        rc_;                                                             \
> +    })

I think using a function would make it a bit easier to understand what 
it does.

However... The naming of the function is now quite confusing. The more 
on x86...

>   
>   #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
>      (st) ? gnttab_status_gfn(NULL, gt, idx)                               \
> --- a/xen/include/asm-x86/grant_table.h
> +++ b/xen/include/asm-x86/grant_table.h
> @@ -37,7 +37,12 @@ static inline int replace_grant_host_map
>   
>   #define gnttab_init_arch(gt) 0
>   #define gnttab_destroy_arch(gt) do {} while ( 0 )
> -#define gnttab_set_frame_gfn(gt, st, idx, gfn) do {} while ( 0 )
> +#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
> +    (gfn_eq(gfn, INVALID_GFN)                                            \
> +     ? guest_physmap_remove_page((gt)->domain,                           \
> +                                 gnttab_get_frame_gfn(gt, st, idx),      \
> +                                 mfn, 0)                                 \
> +     : 0 /* Handled in add_to_physmap_one(). */)

... it will end up to remove the mapping. I don't have a better name at 
the moment. However I think this would deserve some documentation in the 
code so one can understand how to implement it for another arch.

>   #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
>       mfn_t mfn_ = (st) ? gnttab_status_mfn(gt, idx)                       \
>                         : gnttab_shared_mfn(gt, idx);                      \
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 16:49:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 16:49:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231686.401067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqHwR-0003jv-Vs; Thu, 25 Nov 2021 16:49:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231686.401067; Thu, 25 Nov 2021 16:49:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqHwR-0003jo-SK; Thu, 25 Nov 2021 16:49:47 +0000
Received: by outflank-mailman (input) for mailman id 231686;
 Thu, 25 Nov 2021 16:49:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mqHwQ-0003ji-CG
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 16:49:46 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqHwP-0007ZI-63; Thu, 25 Nov 2021 16:49:45 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.27.59]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqHwO-0004Sn-Ut; Thu, 25 Nov 2021 16:49:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=k43Fw9PEquI+GkVfiNyaaBC/dfFgNcC4ibsC1MUxtA8=; b=CjIYnjsQrdJlZOKEGjBK4C8Jhr
	HJfkBajZkxBlBlvfzgJ8Tl/czBUvbQ9mpusK+CK2ISeP8xKL6jPmcQxBg4RG0pbV1pZUryXGUcngK
	nxsNl8eLcVOomrGv9bSYApopIIBIxKSjOaxeYpF5vfIOHFGkwKpMnxh3PmkxNq5zNO3g=;
Message-ID: <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
Date: Thu, 25 Nov 2021 16:49:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 19/11/2021 10:21, Jan Beulich wrote:
> From: Lasse Collin <lasse.collin@tukaani.org>
> 
> It's good style. I was also told that GCC 7 is more strict and might
> give a warning when such comments are missing.
> 
> Suggested-by: Andrei Borzenkov <arvidjaar@gmail.com>
> Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
> [Linux commit: 5a244f48ecbbd03a11eb84819c5c599db81823ee]
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

> ---
> Linux has meanwhile further moved to using the "fallthrough" pseudo-
> keyword, but us doing so requires the tool stack to first make this
> available for use in at least stubdom builds.
> 
> --- a/xen/common/xz/dec_stream.c
> +++ b/xen/common/xz/dec_stream.c
> @@ -583,6 +583,8 @@ static enum xz_ret __init dec_main(struc
>   			if (ret != XZ_OK)
>   				return ret;
>   
> +		/* Fall through */
> +
>   		case SEQ_BLOCK_START:
>   			/* We need one byte of input to continue. */
>   			if (b->in_pos == b->in_size)
> @@ -606,6 +608,8 @@ static enum xz_ret __init dec_main(struc
>   			s->temp.pos = 0;
>   			s->sequence = SEQ_BLOCK_HEADER;
>   
> +		/* Fall through */
> +
>   		case SEQ_BLOCK_HEADER:
>   			if (!fill_temp(s, b))
>   				return XZ_OK;
> @@ -616,6 +620,8 @@ static enum xz_ret __init dec_main(struc
>   
>   			s->sequence = SEQ_BLOCK_UNCOMPRESS;
>   
> +		/* Fall through */
> +
>   		case SEQ_BLOCK_UNCOMPRESS:
>   			ret = dec_block(s, b);
>   			if (ret != XZ_STREAM_END)
> @@ -623,6 +629,8 @@ static enum xz_ret __init dec_main(struc
>   
>   			s->sequence = SEQ_BLOCK_PADDING;
>   
> +		/* Fall through */
> +
>   		case SEQ_BLOCK_PADDING:
>   			/*
>   			 * Size of Compressed Data + Block Padding
> @@ -643,6 +651,8 @@ static enum xz_ret __init dec_main(struc
>   
>   			s->sequence = SEQ_BLOCK_CHECK;
>   
> +		/* Fall through */
> +
>   		case SEQ_BLOCK_CHECK:
>   			if (s->check_type == XZ_CHECK_CRC32) {
>   				ret = crc32_validate(s, b);
> @@ -665,6 +675,8 @@ static enum xz_ret __init dec_main(struc
>   
>   			s->sequence = SEQ_INDEX_PADDING;
>   
> +		/* Fall through */
> +
>   		case SEQ_INDEX_PADDING:
>   			while ((s->index.size + (b->in_pos - s->in_start))
>   					& 3) {
> @@ -687,6 +699,8 @@ static enum xz_ret __init dec_main(struc
>   
>   			s->sequence = SEQ_INDEX_CRC32;
>   
> +		/* Fall through */
> +
>   		case SEQ_INDEX_CRC32:
>   			ret = crc32_validate(s, b);
>   			if (ret != XZ_STREAM_END)
> @@ -695,6 +709,8 @@ static enum xz_ret __init dec_main(struc
>   			s->temp.size = STREAM_HEADER_SIZE;
>   			s->sequence = SEQ_STREAM_FOOTER;
>   
> +		/* Fall through */
> +
>   		case SEQ_STREAM_FOOTER:
>   			if (!fill_temp(s, b))
>   				return XZ_OK;
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 16:54:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 16:54:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231694.401083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqI0i-00058J-JC; Thu, 25 Nov 2021 16:54:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231694.401083; Thu, 25 Nov 2021 16:54:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqI0i-00058C-GK; Thu, 25 Nov 2021 16:54:12 +0000
Received: by outflank-mailman (input) for mailman id 231694;
 Thu, 25 Nov 2021 16:54:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mqI0h-000586-As
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 16:54:11 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqI0f-0007eD-Tf; Thu, 25 Nov 2021 16:54:09 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.27.59]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqI0f-0007xK-NS; Thu, 25 Nov 2021 16:54:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=QRXxjgMMRkvebRBsbWUbO88ows4kPijIYOeShacw/Wk=; b=du2FM1BTfNoGb2O88CIO8ZLqqw
	2WSWBd/Htu/YzRFSeL487fkf0a7vX7i39xMrO9QTTrUqTlR493pkdLfsXDT05UiGGb2vO3jM0cH0e
	5su383n1UZ+w19UjZCwLTk6wP5HA4rjllxAUc5gkdPn9SvahF/DfrgCwH6nUyRaBI4AI=;
Message-ID: <b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
Date: Thu, 25 Nov 2021 16:54:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
From: Julien Grall <julien@xen.org>
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
 <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
In-Reply-To: <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 25/11/2021 16:49, Julien Grall wrote:
> On 19/11/2021 10:21, Jan Beulich wrote:
>> From: Lasse Collin <lasse.collin@tukaani.org>
>>
>> It's good style. I was also told that GCC 7 is more strict and might
>> give a warning when such comments are missing.
>>
>> Suggested-by: Andrei Borzenkov <arvidjaar@gmail.com>
>> Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>

Actually, any reason why there are some signed-off-by missing?

>> [Linux commit: 5a244f48ecbbd03a11eb84819c5c599db81823ee]
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Julien Grall <jgrall@amazon.com>
> 
> Cheers,
> 
>> ---
>> Linux has meanwhile further moved to using the "fallthrough" pseudo-
>> keyword, but us doing so requires the tool stack to first make this
>> available for use in at least stubdom builds.
>>
>> --- a/xen/common/xz/dec_stream.c
>> +++ b/xen/common/xz/dec_stream.c
>> @@ -583,6 +583,8 @@ static enum xz_ret __init dec_main(struc
>>               if (ret != XZ_OK)
>>                   return ret;
>> +        /* Fall through */
>> +
>>           case SEQ_BLOCK_START:
>>               /* We need one byte of input to continue. */
>>               if (b->in_pos == b->in_size)
>> @@ -606,6 +608,8 @@ static enum xz_ret __init dec_main(struc
>>               s->temp.pos = 0;
>>               s->sequence = SEQ_BLOCK_HEADER;
>> +        /* Fall through */
>> +
>>           case SEQ_BLOCK_HEADER:
>>               if (!fill_temp(s, b))
>>                   return XZ_OK;
>> @@ -616,6 +620,8 @@ static enum xz_ret __init dec_main(struc
>>               s->sequence = SEQ_BLOCK_UNCOMPRESS;
>> +        /* Fall through */
>> +
>>           case SEQ_BLOCK_UNCOMPRESS:
>>               ret = dec_block(s, b);
>>               if (ret != XZ_STREAM_END)
>> @@ -623,6 +629,8 @@ static enum xz_ret __init dec_main(struc
>>               s->sequence = SEQ_BLOCK_PADDING;
>> +        /* Fall through */
>> +
>>           case SEQ_BLOCK_PADDING:
>>               /*
>>                * Size of Compressed Data + Block Padding
>> @@ -643,6 +651,8 @@ static enum xz_ret __init dec_main(struc
>>               s->sequence = SEQ_BLOCK_CHECK;
>> +        /* Fall through */
>> +
>>           case SEQ_BLOCK_CHECK:
>>               if (s->check_type == XZ_CHECK_CRC32) {
>>                   ret = crc32_validate(s, b);
>> @@ -665,6 +675,8 @@ static enum xz_ret __init dec_main(struc
>>               s->sequence = SEQ_INDEX_PADDING;
>> +        /* Fall through */
>> +
>>           case SEQ_INDEX_PADDING:
>>               while ((s->index.size + (b->in_pos - s->in_start))
>>                       & 3) {
>> @@ -687,6 +699,8 @@ static enum xz_ret __init dec_main(struc
>>               s->sequence = SEQ_INDEX_CRC32;
>> +        /* Fall through */
>> +
>>           case SEQ_INDEX_CRC32:
>>               ret = crc32_validate(s, b);
>>               if (ret != XZ_STREAM_END)
>> @@ -695,6 +709,8 @@ static enum xz_ret __init dec_main(struc
>>               s->temp.size = STREAM_HEADER_SIZE;
>>               s->sequence = SEQ_STREAM_FOOTER;
>> +        /* Fall through */
>> +
>>           case SEQ_STREAM_FOOTER:
>>               if (!fill_temp(s, b))
>>                   return XZ_OK;
>>
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 16:55:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 16:55:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231702.401104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqI22-0005kS-3u; Thu, 25 Nov 2021 16:55:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231702.401104; Thu, 25 Nov 2021 16:55:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqI22-0005kL-0S; Thu, 25 Nov 2021 16:55:34 +0000
Received: by outflank-mailman (input) for mailman id 231702;
 Thu, 25 Nov 2021 16:55:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mqI20-0005kF-Hz
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 16:55:32 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqI1z-0007g6-Bd; Thu, 25 Nov 2021 16:55:31 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.27.59]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqI1z-0000bs-4L; Thu, 25 Nov 2021 16:55:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=MR+tk/n1wK3jsgpjen4BhyroxK5fihlJZXVyR8fAlrw=; b=AozZSAVV6oKmIiCgimQ6+Bo0xQ
	oBTSnyDPXrVoXl+Ke6PFyoCqNzIAb+3Ddvnljrv715lzPdhtCiEOwMMJEudA3fu6J00XTtvVjtO8b
	hRoAFVkZ4ZNupyu9nz4X8IqAPSCFVWa5Tl9Uz5nNXsqgS8ovoKx3eXzmka+I4xs3p17M=;
Message-ID: <680821b3-286b-e358-7810-bfed258d0860@xen.org>
Date: Thu, 25 Nov 2021 16:55:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH 2/7] xz: fix XZ_DYNALLOC to avoid useless memory
 reallocations
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <196008a7-ce37-52bf-13d3-4a08f203957a@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <196008a7-ce37-52bf-13d3-4a08f203957a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 19/11/2021 10:21, Jan Beulich wrote:
> From: Lasse Collin <lasse.collin@tukaani.org>
> 
> s->dict.allocated was initialized to 0 but never set after a successful
> allocation, thus the code always thought that the dictionary buffer has
> to be reallocated.
> 
> Link: http://lkml.kernel.org/r/20191104185107.3b6330df@tukaani.org
> Reported-by: Yu Sun <yusun2@cisco.com>
> Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
> Acked-by: Daniel Walker <danielwa@cisco.com>
> [Linux commit: 8e20ba2e53fc6198cbfbcc700e9f884157052a8d]

This commit contains two more signed-off-by. Any reason to not have 
included them here?

The rest of the patch LGTM.

> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> --- a/xen/common/xz/dec_lzma2.c
> +++ b/xen/common/xz/dec_lzma2.c
> @@ -1146,6 +1146,7 @@ XZ_EXTERN enum xz_ret __init xz_dec_lzma
>   
>   		if (DEC_IS_DYNALLOC(s->dict.mode)) {
>   			if (s->dict.allocated < s->dict.size) {
> +				s->dict.allocated = s->dict.size;
>   				large_free(s->dict.buf);
>   				s->dict.buf = large_malloc(s->dict.size);
>   				if (s->dict.buf == NULL) {
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 16:57:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 16:57:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231707.401115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqI3W-0006MU-G5; Thu, 25 Nov 2021 16:57:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231707.401115; Thu, 25 Nov 2021 16:57:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqI3W-0006MN-BX; Thu, 25 Nov 2021 16:57:06 +0000
Received: by outflank-mailman (input) for mailman id 231707;
 Thu, 25 Nov 2021 16:57:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mqI3V-0006MH-2O
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 16:57:05 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqI3T-0007hU-SG; Thu, 25 Nov 2021 16:57:03 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.27.59]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqI3T-0001Dy-M9; Thu, 25 Nov 2021 16:57:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=EzrXBEJ9mvv0LOaiulKQw6sfsANy8HX3PqIrAU8Wh4M=; b=DMaXXEP3luyLrhLqB6RZhzFYju
	8LavE4yR9ONS2iaHXEP9xsC+foyfxC1GDkQtP2bAmZY6DYuwpfO3VyA7WytbxTe9quBxQKkfGRSps
	4qCM5a2Hs9d2NygppJKrboPoyadJXD7GVJtrvyxTWWvDZTnheDTkXU76uv8mrsqPRKNY=;
Message-ID: <65530296-a6be-b3d9-7bde-cfd8028050c9@xen.org>
Date: Thu, 25 Nov 2021 16:57:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH 3/7] decompressors: fix spelling mistakes
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <c70932d2-f3c3-2b6d-c2db-69a0c3ab2b2c@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c70932d2-f3c3-2b6d-c2db-69a0c3ab2b2c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 19/11/2021 10:21, Jan Beulich wrote:
> From: Zhen Lei <thunder.leizhen@huawei.com>
> 
> Fix some spelling mistakes in comments:
> sentinal ==> sentinel
> compresed ==> compressed
> immediatelly ==> immediately
> dervied ==> derived
> splitted ==> split
> nore ==> not
> independed ==> independent
> asumed ==> assumed
> 
> Link: https://lkml.kernel.org/r/20210604085656.12257-1-thunder.leizhen@huawei.com
> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
> [Linux commit: 05911c5d964956442d17fe21db239de5a1dace4a]

Same question as the two previous patch for the missing signed-off-by. 
The rest looks fine to me.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 17:03:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 17:03:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231717.401141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqI9s-0007sq-D7; Thu, 25 Nov 2021 17:03:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231717.401141; Thu, 25 Nov 2021 17:03:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqI9s-0007sj-9z; Thu, 25 Nov 2021 17:03:40 +0000
Received: by outflank-mailman (input) for mailman id 231717;
 Thu, 25 Nov 2021 17:03:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tSsM=QM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqI9q-0007sd-Mw
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 17:03:38 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a176530c-4e11-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 18:03:37 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2173.outbound.protection.outlook.com [104.47.17.173]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-18-5YflJLjuMFmYvvQ45S1UMQ-1; Thu, 25 Nov 2021 18:03:36 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6478.eurprd04.prod.outlook.com (2603:10a6:803:12a::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Thu, 25 Nov
 2021 17:03:35 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4713.027; Thu, 25 Nov 2021
 17:03:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR07CA0006.eurprd07.prod.outlook.com (2603:10a6:20b:451::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.15 via Frontend
 Transport; Thu, 25 Nov 2021 17:03:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a176530c-4e11-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637859817;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OdWm2aBLXEmAIhTbHU9dtDXCDZVzD71TdNALJ9ly6yQ=;
	b=HxaRRhBYscnPrBApdUJs+7kBrXFvdXpDRK0NKSgsTp1hX43RfVOOiDc0j0d49MGY82Zgpv
	F/5vV6t7ckm8eGc/4gu+y8/2zyW/owf1rQzjvugYRj3tY9a3fh+mJCwUHQohMkdw+Xtxgd
	xb5+NhtW3WfI73U3xLbrKS2NCnbr1vE=
X-MC-Unique: 5YflJLjuMFmYvvQ45S1UMQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ap4GrvOjgP4SBiAQkwUmZZhjJPSNTKTH8u5k2V+8nchDFbIpezErf/3uZruffQqsXWjg3I8dqYnJCYolr0n6WOhtbXqBxBcX8U2KITlqghGp56z5YRdDtwAas/zCG6XYUKljqpa7bF6fPQSlhrhK/pKtPo8y5t0Rapi40kiM6Xs7fiXwndkVE+agUUty236d47Y9jM8E+Tfyrgc2uy27M93iII5aUkkawhS0KJhzJUWnccIcZMqDEejHNeSa19RFdmq1b9GOpE58nUH9xGSYjmOBIcxXiz5k4ERXig3o9+xves61pXSqAXRssZTm09Y5JzwUSuuQMgXp/b5yF1ZwAg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OdWm2aBLXEmAIhTbHU9dtDXCDZVzD71TdNALJ9ly6yQ=;
 b=EbiVWe5OE5UBNdU0cuLB09S8jj0Q0JDAgKRukY6CIjTvuXqNghGwotumSkKe0e24n9yq5BcmwrjksvksxQTARcaryDDBk9zSadIdL+BCQyo8cjVzZsVDyN7ITJGGRt+MRBbNsi68L+oMfG+Tr0Z9mMgL1g8cXKz9NkQfm6oVsywWLG7Qa7AcfJSr4dt0GgURwI2OTpqECEQGnwC+9EOOITd7dLXuIjrREUKgYaXufW68LbBVa+Am25N/RYddJiQrSX/f8Zi9x3elKDhnZmeS+KeJLNKxsGl5v/K6sUr5mztl1LKXQD9LB/fl8GbcOJqqQYaNS5O92wm6AtX3VigkXw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0c0e67f3-5e0a-f047-ca09-1cf078e6b094@suse.com>
Date: Thu, 25 Nov 2021 18:03:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
 <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
 <b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR07CA0006.eurprd07.prod.outlook.com
 (2603:10a6:20b:451::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9385d291-4f68-4293-44b0-08d9b035841e
X-MS-TrafficTypeDiagnostic: VE1PR04MB6478:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6478CCF9C32DE35F7F414ECDB3629@VE1PR04MB6478.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6108;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	AVahQF/1Y0KCCKLvQA/196PEiJu1H2jPyO0s0FZu3WQ5p+wmTIZHo1jjJO4dCry6a4DWbZRtoq6sJTRsKqaJWr7bTuhw5E1HxZW86LAucarNQBHS/lNoOXtdpy4u96iHUepLsJxdJ59b7WsHg3pIy4tCILlEyEJETWX3V228wvVxXXZsSc8xTyiO+TfecaUQ6tpVprMwLvbZbSgd3ST1gEk+FzE3IsOvKT45Ju0rD24mCODMfVtL8wh7XkZNDQcWtsidvn9nyDxFuaonpK59rJIGyZ/RML84xVr5cVJypBGOZvDR0vDHa0Sz4Mf2so12wqhjreM/fI9XrbyfiE676aEjxyAgsCvFu4JCbglLSAaBBkNf+frxsn0JLcABQ6zfpz65m43Ce8gpZL+Q9/IfxoiYd5Z8nxTNTFKIpNMzCvfbSEuOVOU0JlpooPQPkoUFQL00TpoAd7cJa2sdpfxPNe22lhFxqPTIQodx4If69cND83t5vTtjVsvno53UQy/84lGZrhhYzetd2U0jPIiGMQkDEPyiZsD+UL9drtXSaIyFBI9TDEbESliJTZfMNdmNzn8qBo22GahqL/rP21yLxPjZsVRc7rURtVgnNbkzHStrMImc2BjWcc4rhskzEeHEQmuiqS2Ttnai7Hj/Ph7+3WZCheqbEfpLIbbYvyUIP0oLnlAL22BJBG4Ncrcr0x0DMJB2D2LKFB9I7fcGXV9C+DS/3SpMWWK5D7PgnBLBLk8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4744005)(2616005)(2906002)(16576012)(36756003)(956004)(6916009)(53546011)(38100700002)(66946007)(83380400001)(316002)(54906003)(31696002)(8676002)(31686004)(6486002)(508600001)(8936002)(4326008)(26005)(5660300002)(66556008)(186003)(66476007)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VzFlVEVaRFo4Sk1zaWRUb0ZFMnM0eFRSR1Z1aVV5RXJaVnJETnVxUEdtSWhQ?=
 =?utf-8?B?UHhtOTc5UVh3QzVHTzFFZXRJbUlzNmNxR0tGOGJQWVBOWWlYNitnZVM2THJ0?=
 =?utf-8?B?cXprbnYwNmFmdkp4QmQ3aWpKdS91MkRqM29BNWUwcmIxREVoYjd6MDRyZUNX?=
 =?utf-8?B?TnorTzFCRnpKd250Y3lpb0EyZjNqWTMwa2FUWEY2R1BDQVJ2amFOcUdQdklY?=
 =?utf-8?B?bmdmbStIajN1Ui9Jb0JEZlZPNjhjVGF5TWFDSDNFVmV3bk10ZXlvMWFvcjNo?=
 =?utf-8?B?dStoSnorUTF3SjlKUmFHRDREK1RTMHZEYzVBeDl3VjNjTk9wQmZzcjBQZjIx?=
 =?utf-8?B?d2wrMDJvSk4xenlqQk5vRkIyeUlvVFAyMDFtV2c0clVlYk0wcDJWWEJUMzZt?=
 =?utf-8?B?Z3FkK2k0VGtxYWx4N3hNSVZqd0FaRk5ZS0tsUWpkRStiMWpRaUpza05pOGxs?=
 =?utf-8?B?akFqSDhHenRCVHRicHNGUXlOSmJwWHZIZUNNcFlWeFhXOG5WUFJnQ0VGem1v?=
 =?utf-8?B?Rm03QVNKN1BKYVhuVG41UERPTVFEbG8xUEdaUnRTT3hvc2dyUzBXNTk2SFRw?=
 =?utf-8?B?bk5nM0dkSXNkUnlydnFjeGhRYjJlWHpQOEJFQ0xmaWF5VWVYeXBwazJvZmVt?=
 =?utf-8?B?WlNyamovQTFYeGdNNGFvbnhtcExybW4vb0FpNy91Q2xXeStXcHNVRHVGVWZX?=
 =?utf-8?B?SDQwcXFjUC9YM3pPN09FRnR6SDlSK3lqS0RsNGVvaVVySlBpUXZNYlhLb3pW?=
 =?utf-8?B?NEtjZ1RUWkFETkRYRHVyQ1NGcEs3QXRqWG1wUDFMcVUvOEMzR1ZmUmhUV2sz?=
 =?utf-8?B?RG1zRElnRXJUZjY3dUhqNHpyaGlsOFBCNWlqbS9zQ0JIYXpmT3U3R0h1emZt?=
 =?utf-8?B?amRFWGR6QTZCUkhqRHNXekd3TklEKzRVeU1EL043VVNoc3o1T2UyOXpjazlz?=
 =?utf-8?B?ekhJVWtxamoxTjBzQyt0MEV2SC9LQzVRdks1cnhJN3BrWnRIZjJVL2dXWTNp?=
 =?utf-8?B?elFuNjlxRU9uYzJtTmFEZkgrTGM4eFNGdWEwWmhIOW1iS0ZGcUZhUHhHRWJK?=
 =?utf-8?B?MFJ0NkI5SXl6N1lRWWI1MFZDTXgwUnM4ejFqWit2b2VDYldETHdwSmR0KzMy?=
 =?utf-8?B?YmU2SFVZOGVBdWlJUzYwUDhCMzhuVVp0U3MzUGhha1lKNTM5bXhTOU5YWExn?=
 =?utf-8?B?cTMreWRRRkZlS2Rsd2pIUjFLWEllOStjSTJtWFFWemptSEtxMmo4THFuc3ZW?=
 =?utf-8?B?UUdFaXhrRkhxbm5xOXUraHN4UVlXd2pjSUU5VmtvNk1CMWVaaTdxejY5cnFP?=
 =?utf-8?B?K3QzWEZXaDZJMjBVRUJYS3ZRRENBVDVuODIwTGtJVjdzUjZUYzd4NFJGVWJZ?=
 =?utf-8?B?bmdLQ1hOa2M1YllWR0J5Q0dQOS8zNXJGRWZoYnJFK0pWY2RzNUhnNXR0STVS?=
 =?utf-8?B?a3ZRK2VGNll0ME1QTzRSM3oyWERDSDRCc09xYkkzeGRSQmM4NEVsdlZ0Q3hT?=
 =?utf-8?B?Qk9VQ1VyUStOSUtONjhtRUFTL0NDUTZxZGYyb1VSRTU1T2dQMWJvbTBFV0R1?=
 =?utf-8?B?dHdYaHVnZGtTTnF3eDRsNERyc0J3VXgwVE5aVGJaSUduWlZFQkg2RzR1QnFU?=
 =?utf-8?B?Y2VxRnFXa1A0Z1h1MHo1QTZINlBQM3g0M3ZLK0g5a1dCUmJZM0FMUjdnblhq?=
 =?utf-8?B?eTdyL0hDZzU1elZ1Z3FwcnpDVEp5bDFkejRNWi9INXYvT3ZYZXNRNkZ0bEVJ?=
 =?utf-8?B?NGJnb29zVnhmVklSRXlPZUV5dy92THMyc0RxUk4yemdtYlExZTE3a3lkYVFJ?=
 =?utf-8?B?UUtrZnlUeDVXVTBmK3lEbXp5QVdtNFpjbmJqeXd5aTIxTmx1azhWT3M0eGcw?=
 =?utf-8?B?N0xLNlRZRlRLek03azN5Qk1GUXo3NElvYkpDRlhrd2pIQnlNZnVxSzVQVU42?=
 =?utf-8?B?SnNXaDNUaTJ3RGVPcFBkTVZxbUxJNHZRN1pFQUVNZVNZSnEyd0wyTnplOG9N?=
 =?utf-8?B?ZzNORjZVODNTNFRJeTlhZU9kUTAwNThXcEs5U0lqOCs4ZGRua09jV3k0a3Yr?=
 =?utf-8?B?QU5xK3FHeVE4dTFYd2ZZczE0VHNtRXh5VTJyNHQ4R0F2RDhZM0IrSllNbmR1?=
 =?utf-8?B?VXVWcUQ4VU1LdWllKzJJdFNCV21IOXQ2dDFOUU0zak42WDRPQXpqajN3NXpK?=
 =?utf-8?Q?+7TOQa+ic+hptiFS7XHz7yA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9385d291-4f68-4293-44b0-08d9b035841e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 17:03:34.7686
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YO6ssDq5UxHA4Jxe89Tp9yHKIJOD2uJLeZ27HkfkBbRodph6wDvITK2xWVmNxIgG8tDtNsXr9h1GXKLE5m0EAg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6478

On 25.11.2021 17:54, Julien Grall wrote:
> On 25/11/2021 16:49, Julien Grall wrote:
>> On 19/11/2021 10:21, Jan Beulich wrote:
>>> From: Lasse Collin <lasse.collin@tukaani.org>
>>>
>>> It's good style. I was also told that GCC 7 is more strict and might
>>> give a warning when such comments are missing.
>>>
>>> Suggested-by: Andrei Borzenkov <arvidjaar@gmail.com>
>>> Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
> 
> Actually, any reason why there are some signed-off-by missing?

I often keep the author's, but drop ones which clearly got there only
because of the path a patch has taken through trees. These aren't
relevant imo when pulling over the change; I could as well take the
email submission as my basis, after all, where just the single S-o-b
would be there.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 17:13:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 17:13:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231730.401161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqIJF-0000zs-J3; Thu, 25 Nov 2021 17:13:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231730.401161; Thu, 25 Nov 2021 17:13:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqIJF-0000zl-Fq; Thu, 25 Nov 2021 17:13:21 +0000
Received: by outflank-mailman (input) for mailman id 231730;
 Thu, 25 Nov 2021 17:13:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mqIJE-0000zf-7X
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 17:13:20 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqIJB-00082E-3E; Thu, 25 Nov 2021 17:13:17 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.27.59]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqIJA-0002ez-Sa; Thu, 25 Nov 2021 17:13:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=5OUwl+L333Vh3BdKaTFrNgus+IbftCeV48wUwglZ5EM=; b=FnzFzkjiRo1JjM2KNEpQ02f/OP
	dsKKeQfTw+IqtOWEPJ1ZTlGoXBzFINYRZmbL3BiTDHNYmWS19XGntZ4esZi9UrzdXZNRiurWaIf2S
	3zYlVsubOE3FO4U7/Ll0I0Q4yMN4I5Pri/8YdTw2zcUAikmJ/BntsZJBoLlzfI3uN398=;
Message-ID: <71ef250c-be92-2b2f-0f07-ce32c17d8050@xen.org>
Date: Thu, 25 Nov 2021 17:13:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
 <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
 <b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
 <0c0e67f3-5e0a-f047-ca09-1cf078e6b094@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0c0e67f3-5e0a-f047-ca09-1cf078e6b094@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 25/11/2021 17:03, Jan Beulich wrote:
> On 25.11.2021 17:54, Julien Grall wrote:
>> On 25/11/2021 16:49, Julien Grall wrote:
>>> On 19/11/2021 10:21, Jan Beulich wrote:
>>>> From: Lasse Collin <lasse.collin@tukaani.org>
>>>>
>>>> It's good style. I was also told that GCC 7 is more strict and might
>>>> give a warning when such comments are missing.
>>>>
>>>> Suggested-by: Andrei Borzenkov <arvidjaar@gmail.com>
>>>> Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
>>
>> Actually, any reason why there are some signed-off-by missing?
> 
> I often keep the author's, but drop ones which clearly got there only
> because of the path a patch has taken through trees.

This might be clear for you. For me, as a reviewer, I have to do extra 
work to check whether you keeped the relevant signed-off-by.

> These aren't
> relevant imo when pulling over the change;

They are technically part of the "chain of approval".

> I could as well take the
> email submission as my basis, after all, where just the single S-o-b
> would be there.

That's a fair point. That said, you took the commit-as-is from linus.git 
so I think we ought to keep them.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 17:28:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 17:28:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231749.401211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqIXu-0002gB-Fx; Thu, 25 Nov 2021 17:28:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231749.401211; Thu, 25 Nov 2021 17:28:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqIXu-0002g4-Cl; Thu, 25 Nov 2021 17:28:30 +0000
Received: by outflank-mailman (input) for mailman id 231749;
 Thu, 25 Nov 2021 17:28:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CZwX=QM=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqIXt-0002fq-Cy
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 17:28:29 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1907fe61-4e15-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 18:28:27 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:42968)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqIXq-000lXI-08 (Exim 4.95) (return-path <amc96@srcf.net>);
 Thu, 25 Nov 2021 17:28:26 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id C1E9A1FBF1;
 Thu, 25 Nov 2021 17:28:25 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1907fe61-4e15-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <00a83850-0aba-a66c-09ed-81204e8cdb3c@srcf.net>
Date: Thu, 25 Nov 2021 17:28:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
 <YZ9oxXdnAEXaRtAD@Air-de-Roger>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
In-Reply-To: <YZ9oxXdnAEXaRtAD@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/11/2021 10:43, Roger Pau Monné wrote:
> On Thu, Nov 25, 2021 at 11:25:36AM +0100, Jan Beulich wrote:
>> On 24.11.2021 22:11, Andrew Cooper wrote:
>>> OSSTest has identified a 3rd regression caused by this change.  Migration
>>> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
>>> fails with:
>>>
>>>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
>>>   xc: error: Restore failed (22 = Invalid argument): Internal error
>>>
>>> which is a safety check to prevent resuming the guest when the CPUID data has
>>> been truncated.  The problem is caused by shrinking of the max policies, which
>>> is an ABI that needs handling compatibly between different versions of Xen.
>>>
>>> Furthermore, shrinking of the default policies also breaks things in some
>>> cases, because certain cpuid= settings in a VM config file which used to have
>>> an effect will now be silently discarded.
>>>
>>> This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as well as the
>>> partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (which added
>>> one new case where cpuid= settings might not apply correctly) and restores the
>>> same behaviour as Xen 4.15.
>>>
>>> Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents")
>>> Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies max leaves")
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> While not strictly needed with Roger having given his already,
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>> to signal my (basic) agreement with the course of action taken.
>> Nevertheless I fear this is going to become yet one more case where
>> future action is promised, but things then die out.
> I'm certainly happy to look at newer versions of this patch, but I
> think we should consider doing the shrinking only on the toolstack
> said, and only after all the manipulations on the policy have been
> performed.

Correct.

The max policies cannot be shrunk - they are, by definition, the upper
bounds that we audit against.  (More precisely, they must never end up
lower than an older Xen used to offer on the same configuration, and
must not be lower anything the user may opt in to.)

The default policies can in principle be shrunk, but only if the
toolstack learns to grow max leaf too (which it will need to). 
Nevertheless, actually shrinking the default policies is actively
unhelpful, because it is wasting time doing something which the
toolstack needs to undo later.

The policy for new domains should be shrunk, but only after every other
adjustment is made.  This is one small aspect of teaching the toolstack
to properly understand CPUID (and MSR) policies, and has always been on
the plan.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 18:53:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 18:53:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231819.401376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqJrV-0003CT-5A; Thu, 25 Nov 2021 18:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231819.401376; Thu, 25 Nov 2021 18:52:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqJrV-0003CM-1W; Thu, 25 Nov 2021 18:52:49 +0000
Received: by outflank-mailman (input) for mailman id 231819;
 Thu, 25 Nov 2021 18:52:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqJrT-0003CC-UZ; Thu, 25 Nov 2021 18:52:47 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqJrT-0001LA-Ph; Thu, 25 Nov 2021 18:52:47 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqJrT-0007Mm-Ec; Thu, 25 Nov 2021 18:52:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqJrT-0002QG-E6; Thu, 25 Nov 2021 18:52:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=9RdlWzNCouXAVydKW5HVAXuxFpHON4xNABwSRxFx6KU=; b=TKU8fBhWi3+FKcqIiVdcHlr+7L
	uZRvCAv/ZjdqIwkI3Gr4zGCRmdCJmEvE3R4tvBVVG7X0tKnuiVjTbXF0i1CUUpyU7zlg8hj153jlC
	72WM1QVKmB+HXmLwQqxiJpLI8YHW+yKW/sc4r1jkCARiOww2kTwF6cwWI/Qfvfvorq60=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166348-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.14-testing test] 166348: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.14-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.14-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9de3671772d5019dab2ba7be7ad1032ad3c9e0f2
X-Osstest-Versions-That:
    xen=eb59f97eea86760e98e4f6a076f751939d2b8122
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Nov 2021 18:52:47 +0000

flight 166348 xen-4.14-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166348/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop       fail blocked in 166193
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166193
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166193
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166193
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166193
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166193
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166193
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166193
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166193
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166193
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166193
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166193
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9de3671772d5019dab2ba7be7ad1032ad3c9e0f2
baseline version:
 xen                  eb59f97eea86760e98e4f6a076f751939d2b8122

Last test of basis   166193  2021-11-19 09:06:24 Z    6 days
Testing same since   166310  2021-11-23 12:38:48 Z    2 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   eb59f97eea..9de3671772  9de3671772d5019dab2ba7be7ad1032ad3c9e0f2 -> stable-4.14


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 19:04:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 19:04:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.231842.401439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqK2q-00055g-TU; Thu, 25 Nov 2021 19:04:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 231842.401439; Thu, 25 Nov 2021 19:04:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqK2q-00055Z-QR; Thu, 25 Nov 2021 19:04:32 +0000
Received: by outflank-mailman (input) for mailman id 231842;
 Thu, 25 Nov 2021 19:04:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mqK2p-00055T-H8
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 19:04:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqK2n-0001Zu-IT; Thu, 25 Nov 2021 19:04:29 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.27.59]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqK2n-0003MW-6e; Thu, 25 Nov 2021 19:04:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=AJd6IUJF6+ksRg8unRGv3fiGKU8BuZqNfBeClVTTJYA=; b=BIModBc1B9Rsx9HMhbRX0o9bRA
	nExhOckI/SL/MOERaYDA6EfSMT2sLS+RksAQecy5FJ/VO9NcMJIMGmWxxweQ+25+jz6M/zkketpFm
	j/EXMxu6/zXl4VjFyn/BcFqLexd01ITEfvaZdPZOjI4VD+W/YnkjFiW4+CSPvch6ZZVc=;
Message-ID: <863c9a06-f0af-eac1-fb04-e059e4ce0a09@xen.org>
Date: Thu, 25 Nov 2021 19:04:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [RFC PATCH V3] xen/gnttab: Store frame GFN in struct page_info on
 Arm
To: Oleksandr Tyshchenko <olekstysh@gmail.com>, xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <1632425551-18910-1-git-send-email-olekstysh@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <1632425551-18910-1-git-send-email-olekstysh@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksandr,

Apologies for the late answer. I was waiting for XSA-387 to go out 
before commenting.

On 23/09/2021 20:32, Oleksandr Tyshchenko wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> Rework Arm implementation to store grant table frame GFN
> in struct page_info directly instead of keeping it in
> standalone status/shared arrays.
> 
> To cover 64-bit/40-bit IPA on Arm64/Arm32 we need the space
> to hold 52-bit/28-bit + extra bit value respectively. In order
> to not grow the size of struct page_info borrow the required
> amount of bits from type_info's count portion which current
> context won't suffer (currently only 1 bit is used on Arm).
> Please note, to minimize code changes and avoid introducing
> an extra #ifdef-s to the header, we keep the same amount of
> bits on both subarches, although the count portion on Arm64
> could be wider, so we waste some bits here.
> 
> Introduce corresponding PGT_* constructs and access macros.
> Update existing gnttab macros to deal with GFN value according
> to new location. Also update the use of count portion on Arm
> in share_xen_page_with_guest().
> 
> Update the P2M code to clean said GFN portion when putting
> a reference on the grant table page in p2m_put_l3_page().
> The added check is based on the assumption that grant table page
> is the xen_heap page and its entry has p2m_ram_rw type, which
> is correct. However, this check is not entirely precise and we
> might end up clearing the GFN portion for other xen_heap pages
> with the same p2m_type. But, this action is considered as
> harmless, since only grant table pages really use that portion.
> 
> And for everything to work correctly introduce arch-specific
> macros to be called from alloc_xenheap_pages()/free_xenheap_pages()
> which purposes on Arm are to clear the portion before use and
> make sure the portion is cleared after use, on x86 these are
> just stubs.
> 
> This patch is intended to fix the potential issue on Arm
> which might happen when remapping grant-table frame.
> A guest (or the toolstack) will unmap the grant-table frame
> using XENMEM_remove_physmap. This is a generic hypercall,
> so on x86, we are relying on the fact the M2P entry will
> be cleared on removal. For architecture without the M2P,
> the GFN would still be present in the grant frame/status
> array. So on the next call to map the page, we will end up to
> request the P2M to remove whatever mapping was the given GFN.
> This could well be another mapping.
> 
> Besides that, this patch simplifies arch code on Arm by
> removing arrays and corresponding management code and
> as the result gnttab_init_arch/gnttab_destroy_arch helpers
> and struct grant_table_arch become useless and can be
> dropped globally.

Before dropping the arch specific helpers, I would check with the RISC-v 
folks that they will not need it in the near future.

> Suggested-by: Julien Grall <jgrall@amazon.com>
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> You can find the related discussions at:
> https://lore.kernel.org/xen-devel/93d0df14-2c8a-c2e3-8c51-54412190171c@xen.org/
> https://lore.kernel.org/xen-devel/1628890077-12545-1-git-send-email-olekstysh@gmail.com/
> https://lore.kernel.org/xen-devel/1631652245-30746-1-git-send-email-olekstysh@gmail.com/
> 
> ! Please note, there is still unresolved locking question here for which
> I failed to find a suitable solution. So, it is still an RFC !
> 
> According to the internal conversation:
> Now the GFN field in the struct page_info is accessed from
> gnttab_set_frame_gfn() in the grant table code and from page_set_frame_gfn()
> in the P2M code (the former uses the latter).
> 
> We need to prevent the concurrent access to this field. But, we cannot grab
> the grant lock from the P2M code because we will introduce a lock inversion.
> The page_set_frame_gfn() will be called from the P2M code with the p2m lock held
> and then acquire the grant table lock. The gnttab_map_frame() will do the inverse.

This is a tricky one. I think, we will:

   1) Need to use the P2M lock to protect the access to the GFN in the 
struct page_info *.
   2) Defer the call to page_set_frame_gfn() from gnttab_map_frame() to 
xenmem_add_to_physmap_one()
   3) In xenmem_add_to_physmap_one() hold the P2M lock while checking 
the page was not already mapped (e.g. page_get_frame_gfn() == 
INVALID_GFN) and do the mapping. Call page_set_frame_gfn() on success.

This would still allow the guest to shot itself in the foot (e.g. 
potentially removing the wrong mapping) if it tries concurrent hypercall 
but I believe we would not introduce issue like XSA-380.

At the end this would look quite similar to how x86 deal with the M2P 
update.

For the record, I actually considered whether it is worth to fully 
implement an M2P on Arm. We technically have space in the struct 
page_info for that. However, I don't see it necessary in other place of 
Xen, so I would prefer to keep the space free for other purpose (or 
event be able to remove it).

@Stefano, what do you think?

> 
> Changes RFC1 -> RFC2:
>   - update patch description
>   - add/update comments in code
>   - clarify check in p2m_put_l3_page()
>   - introduce arch_alloc_xenheap_page() and arch_free_xenheap_page()
>     and drop page_arch_init()
>   - add ASSERT to gnttab_shared_page() and gnttab_status_page()
>   - rework changes to Arm's struct page_info: do not split type_info,
>     allocate GFN portion by reducing count portion, create corresponding
>     PGT_* construct, etc
>   - update page_get_frame_gfn() and page_set_frame_gfn()
>   - update the use of count portion on Arm
>   - drop the leading underscore in the macro parameter names
> 
> Changes RFC2 -> RFC3:
>   - update patch description
>   - drop PGT_count_base and MASK_INSR() in share_xen_page_with_guest()
>   - update alloc_xenheap_page() and free_xenheap_page() for SEPARATE_XENHEAP
>     case (Arm32)
>   - provide an extra bit for GFN portion, to get PGT_INVALID_FRAME_GFN
>     one bit more than the maximum number of physical address bits on Arm32
> ---
>   xen/arch/arm/mm.c                 |  8 ++++--
>   xen/arch/arm/p2m.c                | 21 ++++++++++++---
>   xen/common/grant_table.c          |  9 -------
>   xen/common/page_alloc.c           | 20 +++++++++++++-
>   xen/include/asm-arm/grant_table.h | 57 +++++++++++++++------------------------
>   xen/include/asm-arm/mm.h          | 35 +++++++++++++++++++++---
>   xen/include/asm-x86/grant_table.h |  5 ----
>   xen/include/asm-x86/mm.h          |  4 +++
>   8 files changed, 99 insertions(+), 60 deletions(-)
> 
> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
> index eea926d..b1e42e5 100644
> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -1376,14 +1376,18 @@ unsigned long domain_get_maximum_gpfn(struct domain *d)
>   void share_xen_page_with_guest(struct page_info *page, struct domain *d,
>                                  enum XENSHARE_flags flags)
>   {
> +    unsigned long type_info;
> +
>       if ( page_get_owner(page) == d )
>           return;
>   
>       spin_lock(&d->page_alloc_lock);
>   
>       /* The incremented type count pins as writable or read-only. */
> -    page->u.inuse.type_info =
> -        (flags == SHARE_ro ? PGT_none : PGT_writable_page) | 1;
> +    type_info = page->u.inuse.type_info & ~(PGT_type_mask | PGT_count_mask);

The local variable can be avoided if you write:

page->u.inuse.type_info &= ~(PGT_type_mask | PGT_count_mask);
page->u.inuse.type_info |= ...;

> +    page->u.inuse.type_info = type_info |
> +        (flags == SHARE_ro ? PGT_none : PGT_writable_page) |
> +        MASK_INSR(1, PGT_count_mask);
>   
>       page_set_owner(page, d);
>       smp_wmb(); /* install valid domain ptr before updating refcnt. */
> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
> index 8b20b43..7a8d92d 100644
> --- a/xen/arch/arm/p2m.c
> +++ b/xen/arch/arm/p2m.c
> @@ -718,8 +718,10 @@ static int p2m_mem_access_radix_set(struct p2m_domain *p2m, gfn_t gfn,
>    * TODO: Handle superpages, for now we only take special references for leaf
>    * pages (specifically foreign ones, which can't be super mapped today).
>    */
> -static void p2m_put_l3_page(const lpae_t pte)
> +static void p2m_put_l3_page(struct p2m_domain *p2m, const lpae_t pte)

You pass 'p2m' but you don't seem to use it.

>   {
> +    mfn_t mfn = lpae_get_mfn(pte);
> +
>       ASSERT(p2m_is_valid(pte));
>   
>       /*
> @@ -731,11 +733,22 @@ static void p2m_put_l3_page(const lpae_t pte)
>        */
>       if ( p2m_is_foreign(pte.p2m.type) )
>       {
> -        mfn_t mfn = lpae_get_mfn(pte);
> -
>           ASSERT(mfn_valid(mfn));
>           put_page(mfn_to_page(mfn));
>       }
> +
> +#ifdef CONFIG_GRANT_TABLE
> +    /*
> +     * Check whether we deal with grant table page. As the grant table page
> +     * is xen_heap page and its entry has known p2m type, detect it and mark
> +     * the stored GFN as invalid. Although this check is not precise and we
> +     * might end up updating this for other xen_heap pages, this action is
> +     * harmless to these pages since only grant table pages have this field
> +     * in use. So, at worst, unnecessary action might be performed.
> +     */
> +    if ( (pte.p2m.type == p2m_ram_rw) && is_xen_heap_mfn(mfn) )

I would use p2m_is_ram() to cover read-only mapping. I think it would 
also be better to use an ``else if`` so it is clear that this doesn't 
cover foreign mapping (it is possible to map xenheap page from another 
domain).

> +        page_set_frame_gfn(mfn_to_page(mfn), INVALID_GFN);
> +#endif
>   }
>   
>   /* Free lpae sub-tree behind an entry */
> @@ -768,7 +781,7 @@ static void p2m_free_entry(struct p2m_domain *p2m,
>           p2m->stats.mappings[level]--;
>           /* Nothing to do if the entry is a super-page. */
>           if ( level == 3 )
> -            p2m_put_l3_page(entry);
> +            p2m_put_l3_page(p2m, entry);
>           return;
>       }
>   
> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> index fe1fc11..08fc827 100644
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -93,8 +93,6 @@ struct grant_table {
>   
>       /* Domain to which this struct grant_table belongs. */
>       const struct domain *domain;
> -
> -    struct grant_table_arch arch;
>   };
>   
>   unsigned int __read_mostly opt_max_grant_frames = 64;
> @@ -1981,14 +1979,9 @@ int grant_table_init(struct domain *d, int max_grant_frames,
>   
>       grant_write_lock(gt);
>   
> -    ret = gnttab_init_arch(gt);
> -    if ( ret )
> -        goto unlock;
> -
>       /* gnttab_grow_table() allocates a min number of frames, so 0 is okay. */
>       ret = gnttab_grow_table(d, 0);
>   
> - unlock:
>       grant_write_unlock(gt);
>   
>    out:
> @@ -3894,8 +3887,6 @@ grant_table_destroy(
>       if ( t == NULL )
>           return;
>   
> -    gnttab_destroy_arch(t);
> -
>       for ( i = 0; i < nr_grant_frames(t); i++ )
>           free_xenheap_page(t->shared_raw[i]);
>       xfree(t->shared_raw);
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 5801358..aafd847 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -2161,6 +2161,7 @@ void init_xenheap_pages(paddr_t ps, paddr_t pe)
>   void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
>   {
>       struct page_info *pg;
> +    unsigned int i;
>   
>       ASSERT(!in_irq());
>   
> @@ -2169,6 +2170,9 @@ void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
>       if ( unlikely(pg == NULL) )
>           return NULL;
>   
> +    for ( i = 0; i < (1u << order); i++ )
> +        arch_alloc_xenheap_page(&pg[i]);
> +
>       memguard_unguard_range(page_to_virt(pg), 1 << (order + PAGE_SHIFT));
>   
>       return page_to_virt(pg);
> @@ -2177,14 +2181,22 @@ void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
>   
>   void free_xenheap_pages(void *v, unsigned int order)
>   {
> +    struct page_info *pg;
> +    unsigned int i;
> +
>       ASSERT(!in_irq());
>   
>       if ( v == NULL )
>           return;
>   
> +    pg = virt_to_page(v);
> +
>       memguard_guard_range(v, 1 << (order + PAGE_SHIFT));
>   
> -    free_heap_pages(virt_to_page(v), order, false);
> +    for ( i = 0; i < (1u << order); i++ )
> +        arch_free_xenheap_page(&pg[i]);
> +
> +    free_heap_pages(pg, order, false);
>   }
>   
>   #else  /* !CONFIG_SEPARATE_XENHEAP */
> @@ -2220,7 +2232,10 @@ void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
>           return NULL;
>   
>       for ( i = 0; i < (1u << order); i++ )
> +    {
>           pg[i].count_info |= PGC_xen_heap;
> +        arch_alloc_xenheap_page(&pg[i]);
> +    }
>   
>       return page_to_virt(pg);
>   }
> @@ -2238,7 +2253,10 @@ void free_xenheap_pages(void *v, unsigned int order)
>       pg = virt_to_page(v);
>   
>       for ( i = 0; i < (1u << order); i++ )
> +    {
>           pg[i].count_info &= ~PGC_xen_heap;
> +        arch_free_xenheap_page(&pg[i]);
> +    }
>   
>       free_heap_pages(pg, order, true);
>   }
> diff --git a/xen/include/asm-arm/grant_table.h b/xen/include/asm-arm/grant_table.h
> index 0ce77f9..479339d 100644
> --- a/xen/include/asm-arm/grant_table.h
> +++ b/xen/include/asm-arm/grant_table.h
> @@ -11,11 +11,6 @@
>   #define INITIAL_NR_GRANT_FRAMES 1U
>   #define GNTTAB_MAX_VERSION 1
>   
> -struct grant_table_arch {
> -    gfn_t *shared_gfn;
> -    gfn_t *status_gfn;
> -};
> -
>   static inline void gnttab_clear_flags(struct domain *d,
>                                         unsigned int mask, uint16_t *addr)
>   {
> @@ -46,35 +41,11 @@ int replace_grant_host_mapping(unsigned long gpaddr, mfn_t mfn,
>   #define gnttab_dom0_frames()                                             \
>       min_t(unsigned int, opt_max_grant_frames, PFN_DOWN(_etext - _stext))
>   
> -#define gnttab_init_arch(gt)                                             \
> -({                                                                       \
> -    unsigned int ngf_ = (gt)->max_grant_frames;                          \
> -    unsigned int nsf_ = grant_to_status_frames(ngf_);                    \
> -                                                                         \
> -    (gt)->arch.shared_gfn = xmalloc_array(gfn_t, ngf_);                  \
> -    (gt)->arch.status_gfn = xmalloc_array(gfn_t, nsf_);                  \
> -    if ( (gt)->arch.shared_gfn && (gt)->arch.status_gfn )                \
> -    {                                                                    \
> -        while ( ngf_-- )                                                 \
> -            (gt)->arch.shared_gfn[ngf_] = INVALID_GFN;                   \
> -        while ( nsf_-- )                                                 \
> -            (gt)->arch.status_gfn[nsf_] = INVALID_GFN;                   \
> -    }                                                                    \
> -    else                                                                 \
> -        gnttab_destroy_arch(gt);                                         \
> -    (gt)->arch.shared_gfn ? 0 : -ENOMEM;                                 \
> -})
> -
> -#define gnttab_destroy_arch(gt)                                          \
> -    do {                                                                 \
> -        XFREE((gt)->arch.shared_gfn);                                    \
> -        XFREE((gt)->arch.status_gfn);                                    \
> -    } while ( 0 )
> -
>   #define gnttab_set_frame_gfn(gt, st, idx, gfn)                           \
>       do {                                                                 \
> -        ((st) ? (gt)->arch.status_gfn : (gt)->arch.shared_gfn)[idx] =    \
> -            (gfn);                                                       \
> +        struct page_info *pg_ = (st) ? gnttab_status_page(gt, idx)       \
> +                                     : gnttab_shared_page(gt, idx);      \
> +        page_set_frame_gfn(pg_, gfn);                                    \
>       } while ( 0 )
>   
>   #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
> @@ -82,11 +53,25 @@ int replace_grant_host_mapping(unsigned long gpaddr, mfn_t mfn,
>           : gnttab_shared_gfn(NULL, gt, idx);                              \
>   })
>   
> -#define gnttab_shared_gfn(d, t, i)                                       \
> -    (((i) >= nr_grant_frames(t)) ? INVALID_GFN : (t)->arch.shared_gfn[i])
> +#define gnttab_shared_page(t, i) ({                                      \
> +    ASSERT((t)->shared_raw[i]);                                          \

The ASSERT() is unnecessary because virt_to_mfn() will panic() if the 
virtual address is not mapped.

> +    mfn_to_page(_mfn(__virt_to_mfn((t)->shared_raw[i])));                \

You can directly use virt_to_page(...) for xenheap which also contains
some ASSERT() preventing NULL among other value.

> +})
> +
> +#define gnttab_status_page(t, i) ({                                      \
> +    ASSERT((t)->status[i]);                                              \
> +    mfn_to_page(_mfn(__virt_to_mfn((t)->status[i])));                    \

Same here.

> +})
>   
> -#define gnttab_status_gfn(d, t, i)                                       \
> -    (((i) >= nr_status_frames(t)) ? INVALID_GFN : (t)->arch.status_gfn[i])
> +#define gnttab_shared_gfn(d, t, i) ({                                    \
> +    struct page_info *pg_ = gnttab_shared_page(t, i);                    \

NIT: I would drop the local variable.

> +    page_get_frame_gfn(pg_);                                             \
> +})
> +
> +#define gnttab_status_gfn(d, t, i) ({                                    \
> +    struct page_info *pg_ = gnttab_status_page(t, i);                    \

NIT: I would drop the local variable.

> +    page_get_frame_gfn(pg_);                                             \
> +})
>   
>   #define gnttab_need_iommu_mapping(d)                    \
>       (is_domain_direct_mapped(d) && is_iommu_enabled(d))
> diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
> index 7b5e7b7..a00c5f5 100644
> --- a/xen/include/asm-arm/mm.h
> +++ b/xen/include/asm-arm/mm.h
> @@ -98,9 +98,17 @@ struct page_info
>   #define PGT_writable_page PG_mask(1, 1)  /* has writable mappings?         */
>   #define PGT_type_mask     PG_mask(1, 1)  /* Bits 31 or 63.                 */
>   
> - /* Count of uses of this frame as its current type. */
> -#define PGT_count_width   PG_shift(2)
> -#define PGT_count_mask    ((1UL<<PGT_count_width)-1)
> + /* 2-bit count of uses of this frame as its current type. */
> +#define PGT_count_mask    PG_mask(3, 3)
> +
> +/*
> + * Stored in bits [28:0] or [60:0] GFN if page is used for grant table frame.

I think this wording is conflicting with ...

> + * This only valid for the xenheap pages.

... this becase xen heap pages are used in other situations. But I would 
prefer if the comment doesn't mention grant-table frame. This would 
allow use to repurpose the field for other xenheap if needed.

Typo: This *is* only valid

> + */
> +#define PGT_gfn_width     PG_shift(3)
> +#define PGT_gfn_mask      ((1UL<<PGT_gfn_width)-1)
> +
> +#define PGT_INVALID_FRAME_GFN   _gfn(PGT_gfn_mask)
>   
>    /* Cleared when the owning guest 'frees' this page. */
>   #define _PGC_allocated    PG_shift(1)
> @@ -166,6 +174,27 @@ extern unsigned long xenheap_base_pdx;
>   
>   #define maddr_get_owner(ma)   (page_get_owner(maddr_to_page((ma))))
>   
> +#define page_get_frame_gfn(p) ({                                \

Above, you wrote:

"This is only valid for xenheap pages". So I would add an ASSERT() to 
confirm that.

> +    gfn_t gfn_ = _gfn((p)->u.inuse.type_info & PGT_gfn_mask);   \
> +    gfn_eq(gfn_, PGT_INVALID_FRAME_GFN) ? INVALID_GFN : gfn_;   \
> +})

Can the function be converted to a static inline?

> +
> +#define page_set_frame_gfn(p, gfn) ({                           \

Same questions as above to add an ASSERT() and convert to a static inline.

> +    gfn_t gfn_ = gfn_eq(gfn, INVALID_GFN) ?                     \
> +                 PGT_INVALID_FRAME_GFN : gfn;                   \
> +    (p)->u.inuse.type_info &= ~PGT_gfn_mask;                    \
> +    (p)->u.inuse.type_info |= gfn_x(gfn_);                      \
> +})
> +
> +/*
> + * As the struct page_info representing the xen_heap page can contain
> + * the grant table frame GFN on Arm we need to clear it beforehand and
> + * make sure it is not still set when freeing a page.
> + */
I would prefer if the comment doesn't mention grant-table frame. This 
would allow use to repurpose the field for other xenheap if needed.

> +#define arch_alloc_xenheap_page(p)   page_set_frame_gfn(p, INVALID_GFN)
> +#define arch_free_xenheap_page(p) \
> +    BUG_ON(!gfn_eq(page_get_frame_gfn(p), INVALID_GFN))

I believe this BUG_ON() could be triggered if gnttab_map_frame() 
succeeds but then we fail to insert the entry in the P2M. This means we 
would need to revert changes done in gnttab_map_frame() in case of failure.

However, I am still a bit unease with the BUG_ON(). A domain will not 
necessarily remove the grant-table mapping from its P2M before shutting 
down. So you are relying on Xen to go through the P2M before we free the 
page.

This is the case today, but I am not sure we would want to rely on it 
because it will be hard to remember this requirement if we decide to 
optimize p2m_relinquish().

One possibility would be to add a comment in p2m_relinquish(). That's 
assuming there are no other places which could lead to false positively 
hit the BUG().

> +
>   #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
>   /* PDX of the first page in the frame table. */
>   extern unsigned long frametable_base_pdx;
> diff --git a/xen/include/asm-x86/grant_table.h b/xen/include/asm-x86/grant_table.h
> index 84e3296..0eb018f 100644
> --- a/xen/include/asm-x86/grant_table.h
> +++ b/xen/include/asm-x86/grant_table.h
> @@ -14,9 +14,6 @@
>   
>   #define INITIAL_NR_GRANT_FRAMES 1U
>   
> -struct grant_table_arch {
> -};
> -
>   static inline int create_grant_host_mapping(uint64_t addr, mfn_t frame,
>                                               unsigned int flags,
>                                               unsigned int cache_flags)
> @@ -35,8 +32,6 @@ static inline int replace_grant_host_mapping(uint64_t addr, mfn_t frame,
>       return replace_grant_pv_mapping(addr, frame, new_addr, flags);
>   }
>   
> -#define gnttab_init_arch(gt) 0
> -#define gnttab_destroy_arch(gt) do {} while ( 0 )
>   #define gnttab_set_frame_gfn(gt, st, idx, gfn) do {} while ( 0 )
>   #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
>       mfn_t mfn_ = (st) ? gnttab_status_mfn(gt, idx)                       \
> diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
> index cb90527..04d8704 100644
> --- a/xen/include/asm-x86/mm.h
> +++ b/xen/include/asm-x86/mm.h
> @@ -327,6 +327,10 @@ struct page_info
>   
>   #define maddr_get_owner(ma)   (page_get_owner(maddr_to_page((ma))))
>   
> +/* No arch-specific actions are needed for the xen_heap page */
> +#define arch_alloc_xenheap_page(p)   do {} while ( 0 )
> +#define arch_free_xenheap_page(p)    do {} while ( 0 )
> +
>   #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
>   extern unsigned long max_page;
>   extern unsigned long total_pages;
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 21:59:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 21:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232023.401932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqMlF-0005RX-24; Thu, 25 Nov 2021 21:58:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232023.401932; Thu, 25 Nov 2021 21:58:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqMlE-0005RQ-VH; Thu, 25 Nov 2021 21:58:32 +0000
Received: by outflank-mailman (input) for mailman id 232023;
 Thu, 25 Nov 2021 21:58:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NVsv=QM=microsoft.com=haiyangz@srs-se1.protection.inumbo.net>)
 id 1mqMlD-0005RK-Bz
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 21:58:31 +0000
Received: from na01-obe.outbound.protection.outlook.com
 (mail-cusazlp170100000.outbound.protection.outlook.com
 [2a01:111:f403:c111::])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d13d671b-4e3a-11ec-9787-a32c541c8605;
 Thu, 25 Nov 2021 22:58:28 +0100 (CET)
Received: from DM6PR21MB1292.namprd21.prod.outlook.com (2603:10b6:5:170::19)
 by DM5PR2101MB0871.namprd21.prod.outlook.com (2603:10b6:4:80::39) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.9; Thu, 25 Nov
 2021 21:58:17 +0000
Received: from DM6PR21MB1292.namprd21.prod.outlook.com
 ([fe80::c95a:f84f:ded0:b8e6]) by DM6PR21MB1292.namprd21.prod.outlook.com
 ([fe80::c95a:f84f:ded0:b8e6%7]) with mapi id 15.20.4713.010; Thu, 25 Nov 2021
 21:58:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d13d671b-4e3a-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kyzdog9TP2newNdztC9VMfhTW/ilr0c4/cL4x0YfMozL4IJenkKkFGGqJ2d3LafeGtV62z+hhqmzVv6Lt9txnaRVGUsOU15bdE+SDrgk52nRH7Y92K50ztsqlnN1MVqP7l1SH6MJxrqwdrOEIiR7DrXtERQiNKVV/CI+C+6FJXcbNkps3ZRUx/3MnTdxLF++/6+6j2oHVgHpaMR5Q4XmtAAKtCnSd/XEDbyQgmgCeU+Jt0BR7mEB6X1pe9bTKz1YaGoPjSgD47DMXqrbmpIOAUvZm9gdWhfEoT2FT0/rP+JlsfYcB9OTW59rk147sHo9SLleDXpcliMiXXCI9hvaSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0TGhSUp+GC5hi0nhdB6SHKVvlB9ZF8FWDxwhyYXwBSU=;
 b=HrUaYT46h+24XRCqqDSlgoUG0CnKqNnseeC+NI6XE5YHtxOVreZCxiq/P424diVAC+IeBI8ixsXJKHTcLf/yDwM3PS/4DI1VAfdDVZ1+B6MJuZr/pCGgktrHqvGsiPK+4SRE8Jaj3s2cHDVdxOLJlFI9IeerQUobTw6rj+bGzOifxzyYkONMBasNpLW7zqEYJyXgRXpbCyw9nL4xNu/ZfKXSEo69rLiVjbB7VCStOBWW1aXtVVFmDMFZa+7LzBAGHisDU89x/UUYbcpmIFcSoi+0vRlaBA46dM5KVb/kRrSANjYN6HXf4rxfFbOEnqBAsrBFAjZ++Qq03qM2XBkanw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microsoft.com; dmarc=pass action=none
 header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0TGhSUp+GC5hi0nhdB6SHKVvlB9ZF8FWDxwhyYXwBSU=;
 b=XtyDvwpKrI29n7TFOetnHFPtEwPCKIX76ytEXuJbhyCRTrhrdpJqiUtYeOVBa2pkUpTk3qvPN2C9xVJxANmKGNAQHj051yy6sb4xzvjQODg75mZgvYzFsCl2F4+n64ROZ/gyjLPR86HaY7p9mY9CJLPMUgNIN++HTV+yOXlInJ4=
From: Haiyang Zhang <haiyangz@microsoft.com>
To: "Michael Kelley (LINUX)" <mikelley@microsoft.com>, Tianyu Lan
	<ltykernel@gmail.com>, "tglx@linutronix.de" <tglx@linutronix.de>,
	"mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org"
	<x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>, "luto@kernel.org"
	<luto@kernel.org>, "peterz@infradead.org" <peterz@infradead.org>,
	"jgross@suse.com" <jgross@suse.com>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, "boris.ostrovsky@oracle.com"
	<boris.ostrovsky@oracle.com>, KY Srinivasan <kys@microsoft.com>, Stephen
 Hemminger <sthemmin@microsoft.com>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, "joro@8bytes.org"
	<joro@8bytes.org>, "will@kernel.org" <will@kernel.org>, "davem@davemloft.net"
	<davem@davemloft.net>, "kuba@kernel.org" <kuba@kernel.org>,
	"jejb@linux.ibm.com" <jejb@linux.ibm.com>, "martin.petersen@oracle.com"
	<martin.petersen@oracle.com>, "hch@lst.de" <hch@lst.de>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>, "robin.murphy@arm.com"
	<robin.murphy@arm.com>, Tianyu Lan <Tianyu.Lan@microsoft.com>,
	"thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "iommu@lists.linux-foundation.org" <iommu@lists.linux-foundation.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>, vkuznets
	<vkuznets@redhat.com>, "brijesh.singh@amd.com" <brijesh.singh@amd.com>,
	"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>, "parri.andrea@gmail.com"
	<parri.andrea@gmail.com>, "dave.hansen@intel.com" <dave.hansen@intel.com>
Subject: RE: [PATCH V2 5/6] net: netvsc: Add Isolation VM support for netvsc
 driver
Thread-Topic: [PATCH V2 5/6] net: netvsc: Add Isolation VM support for netvsc
 driver
Thread-Index: AQHX4HeZrm8ii8lkM0eh2/Yg8KcHmqwS6XUAgAHkSoA=
Date: Thu, 25 Nov 2021 21:58:16 +0000
Message-ID:
 <DM6PR21MB12926C3BC4766C78C57D9210CA629@DM6PR21MB1292.namprd21.prod.outlook.com>
References: <20211123143039.331929-1-ltykernel@gmail.com>
 <20211123143039.331929-6-ltykernel@gmail.com>
 <MWHPR21MB1593093B61DC506B64986B14D7619@MWHPR21MB1593.namprd21.prod.outlook.com>
In-Reply-To:
 <MWHPR21MB1593093B61DC506B64986B14D7619@MWHPR21MB1593.namprd21.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=4391e0e8-47f1-4dc5-aa3c-c57814906b25;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-11-24T16:08:18Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 18755722-ee1d-4ade-c5e1-08d9b05eaf67
x-ms-traffictypediagnostic: DM5PR2101MB0871:
x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr
x-microsoft-antispam-prvs:
 <DM5PR2101MB08714BB3CCD74813A004F8A2CA629@DM5PR2101MB0871.namprd21.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 xoYIzcAmGZEUIrcPE46VDKTqGfQ/03SBKM4jh0UmRXa4ymu6TUyP4ZLqLhuFIsKeMUZZ4vGIUjgANFxMRREBlW/ZKKTRJ99HuQDrJcYhzHWtzCJ6GiH6Va6NPIY2Ja4GImaKkPV5uBLdFhghwP1OX+H3ffPI+exGzJPhRVcNPo8aOQcwecQS5158HoxQGCtFkUb6sNavrcfau6WZHoRVGNMwV/O+FPjd4JGXLIBo8g8MVxpG64ssm8nl5sGfU6+CCodiDJ6W7GW1drCxcV558+FeeaReUK0KgPXmaenKFFhezbYatCqOd611v22xVGl6qBt2dF3zB0vazhKRDWgVass+/V7xSpADM1Xp97HF1myDgocmFfXERfnvw71I9DNhuH6lSF6xqa/7bSkfzPgn2SnUEK4/aYhijlkkQ5bFZJzM4w0DnqRNBlPNAiA4IwR9+yLiPCnHoXlSZ6fMlsmEt+Zr3xIVMeF7q3jGZJbpQsqWXCZ1/zxNALEiVYDXrfguB7WHdNiXC/jLGFOOlwxrVa89hch6A4C7y4/vxhE6koWidWFA/E6mhKbmWrqDc1aJmohO1ewyG8q0QG2q1vrWtHVXc9zGm9LMuthgam0iwZZeCq/1s6pghUlRB6a0TbvkB0qeAzl843SlnVdis10rpOWOp9zmzsAnbJr83h7YWhFlzcPITzJ7d5p2k4P5wajBZRIkDoXdmkywObDT6SRwkoWMCNvo9K0WQWrb5oJooQUz/2ORmXFiuCfjiYhgGoGAJOIUQ2344rjljbCRVl1d/g==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR21MB1292.namprd21.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(122000001)(38100700002)(10290500003)(82960400001)(6506007)(82950400001)(53546011)(83380400001)(55016003)(508600001)(2906002)(7416002)(7406005)(5660300002)(33656002)(52536014)(186003)(71200400001)(7696005)(921005)(8936002)(66446008)(64756008)(66476007)(8990500004)(8676002)(4326008)(316002)(86362001)(110136005)(54906003)(66556008)(38070700005)(66946007)(9686003)(26005)(76116006)(20210929001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?JS7hZGSfAYVAfOMB1vqvSmyBRrWHK7GuFyfQ0PgrZf97/KTPgUuk4OSkYhd+?=
 =?us-ascii?Q?GB/LlcmnxP2BVpg6z4r9+CZKvJFnZ5aI24zDZqLdAjDuWOfTAwOPcUHez14f?=
 =?us-ascii?Q?qapg3PSqVnUPh6NsZHkC7Qg6eDfqsNQNdqeAneImWyRkCQrk6n5rJT9YAn9F?=
 =?us-ascii?Q?tbTFo2dCQFnVMccKqqvM9j6W5vNSwiV7/4kr3vAkaeXXDqzBvuCubB6CsMDc?=
 =?us-ascii?Q?xvSq3djLdmDQf73CncwZS2PSgTpY8g4Q1vY2HvQ9QcqETooV90ppKnDUD+HC?=
 =?us-ascii?Q?sjFcgxOXQGr5LOodbmmZnBfiJDYg6xn1aPCPs8coMk88+5rMFuUQtsLT/U6T?=
 =?us-ascii?Q?GXgctjEjY6+um3SHuKjLkF5x8+EWzf4CgqKiX3OtQxGnMiVHR7ypbV+ALCh3?=
 =?us-ascii?Q?MLyYqnQfDFZZx5z+vpFG4sWYyxVY9wayqtU73Md7v2nEvWsJWcUJ6fqIO27u?=
 =?us-ascii?Q?yEJRFP1TfYCFEDW0Nw4W9eycQ2lwL/CI7YmIfHvGpHD1L7QpJliBwImO8iQ8?=
 =?us-ascii?Q?z6brmpqgoIltO2HGohjbhJAjxdAaMr4Xq9ScXkvAq/caZNY0HuETkcvcK/j8?=
 =?us-ascii?Q?fyt1rwvkroqskh2ssdBSnuWzCHw8gLXaeX3XJgVjMUzWNtD860bt8biNk3lY?=
 =?us-ascii?Q?9gD35LGiHy9TS+4HjroZiqUB2+t8T5q7FvbMdAqHsu7mWoos00HdSMzdWA5N?=
 =?us-ascii?Q?w12CuBFAbO0WVHrS4Rx4pzkFymjybWbbjb+SJQ1a84uMOzknzYa1vpkUJtdz?=
 =?us-ascii?Q?DmrBI+RVcrPjD5FPoFmOBTgihgUjutvzX0J/HM53tLkjWpm9aZerK+zSaRDp?=
 =?us-ascii?Q?vh4uGHY19+wRBM7GL2H0CcnJ721ZuwuUukl7Ce91AF3KLFpybpfBVo89nm1+?=
 =?us-ascii?Q?CPkaAbiE7eEUgSJI1JYekJQ0woIgaio5NUzdHoAxe42gWgGSDYhYeRwsoSYm?=
 =?us-ascii?Q?T+1M8nY+arhIlAgiMNYk9NYhHnHNyWEYi2XO441VvtwVTqI8TsNlOq1Y+H6y?=
 =?us-ascii?Q?ItkfXI8FYdSPqRz5hZmdFJ0hDIJPZWXdKlWW9kNqz2Q9QjKlMnw3P71Hukxt?=
 =?us-ascii?Q?KvoyltK5fkkEwCrusMI2xbMUgaowgUAwZ6rZQ4eI0cK+Wx2cf2IlInDmhVZq?=
 =?us-ascii?Q?VDCwpoieiXyFKKhhgdwnbxyNGgbZjYpllJ6CGaZ8DNHWzqQOkWA0vsDMJV5f?=
 =?us-ascii?Q?wZJ3TD8mmUqysmUg1mzzNclFgX78rw5OBxl/sjW7SwWsF97t8Qu8uMdXmk9n?=
 =?us-ascii?Q?Ry2jI3kPdMSi1yYZ1jScAUltDlJpPeZvSFAFzg70qyV+9n7r5WyhD0rmibvG?=
 =?us-ascii?Q?12trwECnRY3kVvXEtywnjCsgD8fs2iDY5R2itwmXJdeLorI7PRH/lvGYSGgd?=
 =?us-ascii?Q?fq/ziGYFoTw1hLE3BwlICX5IeALWGyKuB1gKdV3ebcWRQaYc7zADHbYpHycQ?=
 =?us-ascii?Q?02LR6QQCypfqiFj3SLy1ALKR/uoyLN9citVvfsMLG9S0Ng32+DpNoVIbXGBU?=
 =?us-ascii?Q?f75P8ewp7YXdWsbbdUiav4TFSQc+C2hTzyT4V2czqBbBVbK3CNR6sZjjc+aw?=
 =?us-ascii?Q?wr+WLMuLa6Lf57HmZiFI2gqoCkpHdMI8/DAuOmFnXX89j9wF7jAGGOK86Mzs?=
 =?us-ascii?Q?Kg=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR21MB1292.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 18755722-ee1d-4ade-c5e1-08d9b05eaf67
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2021 21:58:16.4384
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: kYiE8U89jtj1r+9eugmKknWQYtqYQDXP2stSr/pxJeP8Ke1OvKRb3aa6YbktLXP5kF9T4J6Ed1JW1dhzqVktEw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB0871



> -----Original Message-----
> From: Michael Kelley (LINUX) <mikelley@microsoft.com>
> Sent: Wednesday, November 24, 2021 12:03 PM
> To: Tianyu Lan <ltykernel@gmail.com>; tglx@linutronix.de; mingo@redhat.co=
m; bp@alien8.de;
> dave.hansen@linux.intel.com; x86@kernel.org; hpa@zytor.com; luto@kernel.o=
rg;
> peterz@infradead.org; jgross@suse.com; sstabellini@kernel.org; boris.ostr=
ovsky@oracle.com;
> KY Srinivasan <kys@microsoft.com>; Haiyang Zhang <haiyangz@microsoft.com>=
; Stephen
> Hemminger <sthemmin@microsoft.com>; wei.liu@kernel.org; Dexuan Cui <decui=
@microsoft.com>;
> joro@8bytes.org; will@kernel.org; davem@davemloft.net; kuba@kernel.org; j=
ejb@linux.ibm.com;
> martin.petersen@oracle.com; hch@lst.de; m.szyprowski@samsung.com; robin.m=
urphy@arm.com;
> Tianyu Lan <Tianyu.Lan@microsoft.com>; thomas.lendacky@amd.com; xen-
> devel@lists.xenproject.org
> Cc: iommu@lists.linux-foundation.org; linux-hyperv@vger.kernel.org; linux=
-
> kernel@vger.kernel.org; linux-scsi@vger.kernel.org; netdev@vger.kernel.or=
g; vkuznets
> <vkuznets@redhat.com>; brijesh.singh@amd.com; konrad.wilk@oracle.com;
> parri.andrea@gmail.com; dave.hansen@intel.com
> Subject: RE: [PATCH V2 5/6] net: netvsc: Add Isolation VM support for net=
vsc driver
>=20
> From: Tianyu Lan <ltykernel@gmail.com> Sent: Tuesday, November 23, 2021 6=
:31 AM
> >
> > In Isolation VM, all shared memory with host needs to mark visible to
> > host via hvcall. vmbus_establish_gpadl() has already done it for
> > netvsc rx/tx ring buffer. The page buffer used by vmbus_sendpacket_
> > pagebuffer() stills need to be handled. Use DMA API to map/umap these
> > memory during sending/receiving packet and Hyper-V swiotlb bounce
> > buffer dma address will be returned. The swiotlb bounce buffer has
> > been masked to be visible to host during boot up.
> >
> > Allocate rx/tx ring buffer via dma_alloc_noncontiguous() in Isolation
> > VM. After calling vmbus_establish_gpadl() which marks these pages
> > visible to host, map these pages unencrypted addes space via dma_vmap_n=
oncontiguous().
> >
>=20
> The big unresolved topic is how best to do the allocation and mapping of =
the big netvsc
> send and receive buffers.  Let me summarize and make a recommendation.
>=20
> Background
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> 1.  Each Hyper-V synthetic network device requires a large pre-allocated =
receive
>      buffer (defaults to 16 Mbytes) and a similar send buffer (defaults t=
o 1 Mbyte).
> 2.  The buffers are allocated in guest memory and shared with the Hyper-V=
 host.
>      As such, in the Hyper-V SNP environment, the memory must be unencryp=
ted
>      and accessed in the Hyper-V guest with shared_gpa_boundary (i.e., VT=
OM)
>      added to the physical memory address.
> 3.  The buffers need *not* be contiguous in guest physical memory, but mu=
st be
>      contiguously mapped in guest kernel virtual space.
> 4.  Network devices may come and go during the life of the VM, so allocat=
ion of
>      these buffers and their mappings may be done after Linux has been ru=
nning for
>      a long time.
> 5.  Performance of the allocation and mapping process is not an issue sin=
ce it is
>      done only on synthetic network device add/remove.
> 6.  So the primary goals are an appropriate logical abstraction, code tha=
t is
>      simple and straightforward, and efficient memory usage.
>=20
> Approaches
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> During the development of these patches, four approaches have been
> implemented:
>=20
> 1.  Two virtual mappings:  One from vmalloc() to allocate the guest memor=
y, and
>      the second from vmap_pfns() after adding the shared_gpa_boundary.   =
This is
>      implemented in Hyper-V or netvsc specific code, with no use of DMA A=
PIs.
>      No separate list of physical pages is maintained, so for creating th=
e second
>      mapping, the PFN list is assembled temporarily by doing virt-to-phys=
()
>      page-by-page on the vmalloc mapping, and then discarded because it i=
s no
>      longer needed.  [v4 of the original patch series.]
>=20
> 2.  Two virtual mappings as in (1) above, but implemented via new DMA cal=
ls
>      dma_map_decrypted() and dma_unmap_encrypted().  [v3 of the original
>      patch series.]
>=20
> 3.  Two virtual mappings as in (1) above, but implemented via DMA noncont=
iguous
>       allocation and mapping calls, as enhanced to allow for custom map/u=
nmap
>       implementations.  A list of physical pages is maintained in the dma=
_sgt_handle
>       as expected by the DMA noncontiguous API.  [New split-off patch ser=
ies v1 & v2]
>=20
> 4.   Single virtual mapping from vmap_pfns().  The netvsc driver allocate=
s physical
>       memory via alloc_pages() with as much contiguity as possible, and m=
aintains a
>       list of physical pages and ranges.   Single virtual map is setup wi=
th vmap_pfns()
>       after adding shared_gpa_boundary.  [v5 of the original patch series=
.]
>=20
> Both implementations using DMA APIs use very little of the existing DMA m=
achinery.  Both
> require extensions to the DMA APIs, and custom ops functions.
> While in some sense the netvsc send and receive buffers involve DMA, they=
 do not require
> any DMA actions on a per-I/O basis.  It seems better to me to not try to =
fit these two
> buffers into the DMA model as a one-off.  Let's just use Hyper-V specific=
 code to allocate
> and map them, as is done with the Hyper-V VMbus channel ring buffers.
>=20
> That leaves approaches (1) and (4) above.  Between those two, (1) is simp=
ler even though
> there are two virtual mappings.  Using alloc_pages() as in (4) is messy a=
nd there's no
> real benefit to using higher order allocations.
> (4) also requires maintaining a separate list of PFNs and ranges, which o=
ffsets some of
> the benefits to having only one virtual mapping active at any point in ti=
me.
>=20
> I don't think there's a clear "right" answer, so it's a judgment call.  W=
e've explored
> what other approaches would look like, and I'd say let's go with
> (1) as the simpler approach.  Thoughts?
>=20
I agree with the following goal:
"So the primary goals are an appropriate logical abstraction, code that is
     simple and straightforward, and efficient memory usage."

And the Approach #1 looks better to me as well.

Thanks,
- Haiyang



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 22:20:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 22:20:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232037.401962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqN6M-0000EW-8B; Thu, 25 Nov 2021 22:20:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232037.401962; Thu, 25 Nov 2021 22:20:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqN6M-0000EP-50; Thu, 25 Nov 2021 22:20:22 +0000
Received: by outflank-mailman (input) for mailman id 232037;
 Thu, 25 Nov 2021 22:20:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqN6K-0000EF-QY; Thu, 25 Nov 2021 22:20:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqN6K-0005I1-KW; Thu, 25 Nov 2021 22:20:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqN6K-0003i1-4p; Thu, 25 Nov 2021 22:20:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqN6K-000676-4H; Thu, 25 Nov 2021 22:20:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=JytB5XS4UEhcRjo/pDU6EAU4b1YLWDF2gTZlEXBIUfA=; b=Mdb7AyKW+Z5WPpE8IITyMOIJZw
	7lpwvlZBpdlHeAgZ7VZRGMNreZ2nPK+STroTdQKFwT8e/p47Dasa+QOBiLV7KtcvLR2P0HNM1NkLX
	X5u18auVKSUelLOx+RFFIKdDXEJpPoICJEfzXFqwV+4Ll0MhhVkxWMRy7bKDWX1/mPcM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166360-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166360: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=4c7ce0d285bc7fd593718fd5dec02e136cbfad8e
X-Osstest-Versions-That:
    ovmf=e1e7306b54147e65cb7347b060e94f336d4a82d2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Nov 2021 22:20:20 +0000

flight 166360 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166360/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 4c7ce0d285bc7fd593718fd5dec02e136cbfad8e
baseline version:
 ovmf                 e1e7306b54147e65cb7347b060e94f336d4a82d2

Last test of basis   166133  2021-11-13 00:11:20 Z   12 days
Testing same since   166360  2021-11-24 15:41:50 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Liming Gao <gaoliming@byosoft.com.cn>
  Rebecca Cran <rebecca@nuviainc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   e1e7306b54..4c7ce0d285  4c7ce0d285bc7fd593718fd5dec02e136cbfad8e -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 22:40:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 22:40:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232053.402002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqNPg-0002fe-8q; Thu, 25 Nov 2021 22:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232053.402002; Thu, 25 Nov 2021 22:40:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqNPg-0002fX-5e; Thu, 25 Nov 2021 22:40:20 +0000
Received: by outflank-mailman (input) for mailman id 232053;
 Thu, 25 Nov 2021 22:40:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqNPe-0002fN-44; Thu, 25 Nov 2021 22:40:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqNPe-0005cO-00; Thu, 25 Nov 2021 22:40:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqNPd-0004ni-NE; Thu, 25 Nov 2021 22:40:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqNPd-0003NF-Mh; Thu, 25 Nov 2021 22:40:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=r0d4BFrIZQlBmf6J+/E+nHNmxH49sTi2iVudvULxIaI=; b=AD4Sadpx78QA0Jx7LG3fIz/j2T
	23dp0cEfzFZpFb5+FeGCwdr3UkRcpDtt56NuaZtgyeAmn1V3c1Ry8rTCFqi55VZlnZu1leMx+LfoN
	8Dj4Cc3aN4qPFaDX4eMVjFNwaVxcYeT+shGPsaw4WcdRRGEqHGIoTv5bSnUmouoBjHzs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166352-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.12-testing test] 166352: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.12-testing:test-amd64-amd64-xl-qcow2:guest-saverestore.2:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.12-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1442eb9ac448ca43c58bd65dbd82dca0c412c143
X-Osstest-Versions-That:
    xen=95172a6347111247287ca6d7966aff69aa379965
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Nov 2021 22:40:17 +0000

flight 166352 xen-4.12-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166352/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qcow2    18 guest-saverestore.2          fail  like 165384
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 165384
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 165384
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 165384
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 165384
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 165384
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 165384
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 165384
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 165384
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 165384
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 165384
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 165384
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 165384
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1442eb9ac448ca43c58bd65dbd82dca0c412c143
baseline version:
 xen                  95172a6347111247287ca6d7966aff69aa379965

Last test of basis   165384  2021-10-05 19:06:05 Z   51 days
Testing same since   166313  2021-11-23 13:06:03 Z    2 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    fail    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   95172a6347..1442eb9ac4  1442eb9ac448ca43c58bd65dbd82dca0c412c143 -> stable-4.12


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 22:49:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 22:49:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232068.402042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqNYV-0003c4-Ho; Thu, 25 Nov 2021 22:49:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232068.402042; Thu, 25 Nov 2021 22:49:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqNYV-0003bx-E8; Thu, 25 Nov 2021 22:49:27 +0000
Received: by outflank-mailman (input) for mailman id 232068;
 Thu, 25 Nov 2021 22:49:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Lxap=QM=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mqNYU-0003br-Jy
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 22:49:26 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f003693d-4e41-11ec-a9d2-d9f7a1cc8784;
 Thu, 25 Nov 2021 23:49:25 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id v15so15200492ljc.0
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 14:49:25 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id k23sm346690ljg.139.2021.11.25.14.49.23
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 25 Nov 2021 14:49:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f003693d-4e41-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id;
        bh=DRwQoeKQvusF1+zaFNkxJ2iAFkCYgCicCDc3e9VJNs0=;
        b=k5/23U+b44OQCkPi4144jD5b+huhGQJJFl5g/LfFBhMEfFlmRWu8wONAf05VjBCjvp
         D4zIYpIWHr3VtGCI/qmUP04ooFfehzk1MeYI+venpdMESHUhp90pLSSgRZkAOkGpWCOn
         zXTBcYE3athAFPD8X4JIoE8p8h0TpAIKh16AJcq2SitUkw9x5gHDMn1WyXhDzmHgCZYy
         A7Q2kWaGaD5/RF8moMJbHkC95kPjKImYtqDzm+erteNijQ8s5oVs4ob3ufEV74oBAwFP
         gsojlzq1k3DnW2xy4FsYGqY8psg0H44XNcZWTDSV0Q3Jxao2lRYtauADz9bvM7jGZogw
         BggA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id;
        bh=DRwQoeKQvusF1+zaFNkxJ2iAFkCYgCicCDc3e9VJNs0=;
        b=dINs1b1upJyyF7YguNaf9UeqOHDaR5CCj/idgQWH8XDj+/LW4/yIKfCs300j21S4IA
         Is47Fc4qp9Bb39Vkf426U4xAqOYIsncSDknKeLOA+G9WdJ4XEG36Q8SdmwapPijtKOfa
         Dt2a2Sch7UtaSD2Vl4kwsOPgHuJCG/mcY08TenAPSsoAL/VFPIp3cP06UfpOUM/AK4/6
         Ktmi+LK5rMYm9he1GogwoFKLs3R0c0lAtr5FaqNB0TXC8zsZVLDkAwiZeutjz0KZ1kGS
         XRO/NcAB20j07VooFiD2tpnmcfUKx7OZt5klr3gTTNB1ZQo6t0Qfl3oeS/fuNpdTu+Br
         ySpA==
X-Gm-Message-State: AOAM531qcp/GWQh9Y6micmbN8AsXOT1viAjXnii2j5Qbf8SHceKRoW+p
	l63U24B+01aXEKfK0EkvOlNC9Fnp5Rc=
X-Google-Smtp-Source: ABdhPJyRefkfTaOJpVP1KreqEnjFtyF9mvyC/N7lbTGM/XE25mA3aKQ3vKkxOUu4l3XAV/qBVPUJbQ==
X-Received: by 2002:a05:651c:612:: with SMTP id k18mr27768572lje.383.1637880564922;
        Thu, 25 Nov 2021 14:49:24 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [RFC?] xen/arm: memaccess: Pass struct npfec by reference in p2m_mem_access_check
Date: Fri, 26 Nov 2021 00:49:19 +0200
Message-Id: <1637880559-28821-1-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Today I noticed a "note" when building Xen on Arm64 with
aarch64-poky-linux-gcc (GCC) 9.3.0. It turned out that Andrew Cooper
had alredy reported it before [1]:

mem_access.c: In function 'p2m_mem_access_check':
mem_access.c:227:6: note: parameter passing for argument of type
'const struct npfec' changed in GCC 9.1
  227 | bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla,
                                  const struct npfec npfec)

>From the explanation I understand that nothing bad actually is going
to happen in our case, it is harmless and shown to only draw our
attention that the ABI changed due to bug (with passing bit-fields
by value) fixed in GCC 9.1. This information doesn't mean much for us
as Xen is an embedded project with no external linkage. But, of course,
it would be better to eliminate the note. You can also find related
information about the bug at [2].

So make the note go away by passing bit-fields by reference.

[1] https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg87439.html
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
Compile-tested only.
---
 xen/arch/arm/mem_access.c        | 28 ++++++++++++++--------------
 xen/arch/arm/traps.c             |  2 +-
 xen/include/asm-arm/mem_access.h |  2 +-
 3 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/xen/arch/arm/mem_access.c b/xen/arch/arm/mem_access.c
index 3e36202..d21bba7 100644
--- a/xen/arch/arm/mem_access.c
+++ b/xen/arch/arm/mem_access.c
@@ -224,7 +224,7 @@ err:
     return page;
 }
 
-bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec npfec)
+bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec *npfec)
 {
     int rc;
     bool violation;
@@ -248,23 +248,23 @@ bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec npfec)
         violation = false;
         break;
     case XENMEM_access_rw:
-        violation = npfec.insn_fetch;
+        violation = npfec->insn_fetch;
         break;
     case XENMEM_access_wx:
-        violation = npfec.read_access;
+        violation = npfec->read_access;
         break;
     case XENMEM_access_rx:
     case XENMEM_access_rx2rw:
-        violation = npfec.write_access;
+        violation = npfec->write_access;
         break;
     case XENMEM_access_x:
-        violation = npfec.read_access || npfec.write_access;
+        violation = npfec->read_access || npfec->write_access;
         break;
     case XENMEM_access_w:
-        violation = npfec.read_access || npfec.insn_fetch;
+        violation = npfec->read_access || npfec->insn_fetch;
         break;
     case XENMEM_access_r:
-        violation = npfec.write_access || npfec.insn_fetch;
+        violation = npfec->write_access || npfec->insn_fetch;
         break;
     default:
     case XENMEM_access_n:
@@ -277,7 +277,7 @@ bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec npfec)
         return true;
 
     /* First, handle rx2rw and n2rwx conversion automatically. */
-    if ( npfec.write_access && xma == XENMEM_access_rx2rw )
+    if ( npfec->write_access && xma == XENMEM_access_rx2rw )
     {
         rc = p2m_set_mem_access(v->domain, gaddr_to_gfn(gpa), 1,
                                 0, ~0, XENMEM_access_rw, 0);
@@ -324,19 +324,19 @@ bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec npfec)
         /* Send request to mem access subscriber */
         req->u.mem_access.gfn = gpa >> PAGE_SHIFT;
         req->u.mem_access.offset =  gpa & ((1 << PAGE_SHIFT) - 1);
-        if ( npfec.gla_valid )
+        if ( npfec->gla_valid )
         {
             req->u.mem_access.flags |= MEM_ACCESS_GLA_VALID;
             req->u.mem_access.gla = gla;
 
-            if ( npfec.kind == npfec_kind_with_gla )
+            if ( npfec->kind == npfec_kind_with_gla )
                 req->u.mem_access.flags |= MEM_ACCESS_FAULT_WITH_GLA;
-            else if ( npfec.kind == npfec_kind_in_gpt )
+            else if ( npfec->kind == npfec_kind_in_gpt )
                 req->u.mem_access.flags |= MEM_ACCESS_FAULT_IN_GPT;
         }
-        req->u.mem_access.flags |= npfec.read_access    ? MEM_ACCESS_R : 0;
-        req->u.mem_access.flags |= npfec.write_access   ? MEM_ACCESS_W : 0;
-        req->u.mem_access.flags |= npfec.insn_fetch     ? MEM_ACCESS_X : 0;
+        req->u.mem_access.flags |= npfec->read_access    ? MEM_ACCESS_R : 0;
+        req->u.mem_access.flags |= npfec->write_access   ? MEM_ACCESS_W : 0;
+        req->u.mem_access.flags |= npfec->insn_fetch     ? MEM_ACCESS_X : 0;
 
         if ( monitor_traps(v, (xma != XENMEM_access_n2rwx), req) < 0 )
             domain_crash(v->domain);
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 219ab3c..4ad1618 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1957,7 +1957,7 @@ static void do_trap_stage2_abort_guest(struct cpu_user_regs *regs,
             .kind = xabt.s1ptw ? npfec_kind_in_gpt : npfec_kind_with_gla
         };
 
-        p2m_mem_access_check(gpa, gva, npfec);
+        p2m_mem_access_check(gpa, gva, &npfec);
         /*
          * The only way to get here right now is because of mem_access,
          * thus reinjecting the exception to the guest is never required.
diff --git a/xen/include/asm-arm/mem_access.h b/xen/include/asm-arm/mem_access.h
index 35ed0ad..be43e18 100644
--- a/xen/include/asm-arm/mem_access.h
+++ b/xen/include/asm-arm/mem_access.h
@@ -35,7 +35,7 @@ static inline bool p2m_mem_access_sanity_check(struct domain *d)
  * Send mem event based on the access. Boolean return value indicates if trap
  * needs to be injected into guest.
  */
-bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec npfec);
+bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec *npfec);
 
 struct page_info*
 p2m_mem_access_check_and_get_page(vaddr_t gva, unsigned long flag,
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Thu Nov 25 23:00:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 23:00:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232079.402061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqNir-0005vt-Qu; Thu, 25 Nov 2021 23:00:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232079.402061; Thu, 25 Nov 2021 23:00:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqNir-0005vm-Nd; Thu, 25 Nov 2021 23:00:09 +0000
Received: by outflank-mailman (input) for mailman id 232079;
 Thu, 25 Nov 2021 23:00:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XDhx=QM=linaro.org=mathieu.poirier@srs-se1.protection.inumbo.net>)
 id 1mqNiq-0005rV-6A
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 23:00:08 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e26023e-4e43-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 00:00:06 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id l25so30932135eda.11
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 15:00:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e26023e-4e43-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google;
        h=mime-version:from:date:message-id:subject:to;
        bh=Ip9h7eLKlFuUCCExriwPQk+7kkbzJPXXKQycuHzhOqM=;
        b=nTUCy8NDTOlb7ly3IG6zlSFNBswSns6gOcVdY16KT2l1LLOa7IfWQKmvk/SLrV2faz
         X+rxAATEdYj5ji7YvfC3NJhzainZE25V+ZkHdwf38agUDa/Uk6H70eenBRX1LgPj9w1Q
         6pqDBljnB1ucvmbfNagfJHp1kANFCzbcaZDN53FbsL8TjvKfr9wXH6PvbXOjkmKNha1C
         4oFnIzcA0ckGcDWLnXsQp4Gdrg9nGWXP2g1nGwgFl//yGZkUXBccc99rxJdbgn+G19kC
         3LzRMrVGzCByNwMotU7P3f2QvSs+16fuRTNMfsJdwgUdMKPCVJ52fWEV4WGTvHZgm97B
         PXWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
        bh=Ip9h7eLKlFuUCCExriwPQk+7kkbzJPXXKQycuHzhOqM=;
        b=5cNZvfUKseckobVydygBbSy5RxuHDlF/uItA2d3/4/Dh8ryhXSNGn3ffvTx9wbjEW9
         PYMROBDWMr1h8WF9i3WDphgulf1wa3N9HpE6612X4TNH4QmHAgu6yG/m7XGdXVKbNNjd
         XAJP6QpjfNRR+lU9KPh0FtBKr/rkedOh2g63ZEmGKA/iHmkd14AUzx9mpSXSABf1HTS3
         X4nAfHInQxf7XhQESk+y8DqSpzemAvOy5bkGDMikyCvIdOQZvtWCGKnxNkl8sjXpdhOc
         KrN4ctvbQRktVa3uamqoxEejFo9XkWluC7xTX0UGt+oAAjYN+Z1+OwDV/Zx4gWgnEAbL
         d0mQ==
X-Gm-Message-State: AOAM5311OUfI6uPeDvmuRYfTNiXeNAG19efL1ckiyD86KI9h65M3gUyR
	appnXjzyCwHtUwqNBMrk6sCPqHy78nhTpO7R4aC+p/mJo+JSYg==
X-Google-Smtp-Source: ABdhPJxdMl5+l6O6GE5OXmxc7TbLPtZM0DWq+37iQawOfqPyaRDDDQo5niRq+sK2ilSywOhOSY3v5yqT7LLYqgel+rg=
X-Received: by 2002:a17:907:9056:: with SMTP id az22mr34324001ejc.107.1637881205117;
 Thu, 25 Nov 2021 15:00:05 -0800 (PST)
MIME-Version: 1.0
From: Mathieu Poirier <mathieu.poirier@linaro.org>
Date: Thu, 25 Nov 2021 15:59:54 -0700
Message-ID: <CANLsYkzKn7Nkika=KpHtSyi9=FQwS7Wt94Odbg2HuH+1PFUTzA@mail.gmail.com>
Subject: Aarch64 stand-alone application for Xen
To: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

Good day,

I am in the process of adding support for aarch64 to the xen-sys
crate[1].  The crate currently supports x86_64 and includes a
stand-alone "oxerun" application that can be used to validate
hypercalls.  My goal is to provide the same functionality on arm64.  I
am looking for a stand-alone aarch64 example, something like an "hello
world" to help me with the assembler startup code.

Many thanks for the consideration,
Mathieu

[1]. https://crates.io/crates/xen-sys


From xen-devel-bounces@lists.xenproject.org Thu Nov 25 23:12:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Nov 2021 23:12:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232091.402091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqNud-0007SY-5N; Thu, 25 Nov 2021 23:12:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232091.402091; Thu, 25 Nov 2021 23:12:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqNud-0007SR-2T; Thu, 25 Nov 2021 23:12:19 +0000
Received: by outflank-mailman (input) for mailman id 232091;
 Thu, 25 Nov 2021 23:12:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zLcn=QM=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1mqNub-0007SL-VR
 for xen-devel@lists.xenproject.org; Thu, 25 Nov 2021 23:12:18 +0000
Received: from MTA-08-3.privateemail.com (mta-08-3.privateemail.com
 [198.54.127.61]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 20d402c3-4e45-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 00:12:16 +0100 (CET)
Received: from mta-08.privateemail.com (localhost [127.0.0.1])
 by mta-08.privateemail.com (Postfix) with ESMTP id 9F4C518000A2
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 18:12:14 -0500 (EST)
Received: from mail-yb1-f171.google.com (unknown [10.20.151.240])
 by mta-08.privateemail.com (Postfix) with ESMTPA id 7B4B3180009F
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 18:12:14 -0500 (EST)
Received: by mail-yb1-f171.google.com with SMTP id q74so15350826ybq.11
 for <xen-devel@lists.xenproject.org>; Thu, 25 Nov 2021 15:12:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20d402c3-4e45-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=tklengyel.com;
	s=default; t=1637881934;
	bh=HNy96XEdiZ/Me3QQJuJr6FSt9o8mdnUWqprGpvdQrGo=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=crJiGUZe6ZULfy3GaezZvVvl/qMwPSRZq+JH9vkdn4tS+wn0rXrG6QzPSaxf37ouu
	 ZdsbizbnM/VpCzdt+72L4Tc01wPEZyf7PGwdcHmmro+i89c97bo/edbk2agayaeJDV
	 euZFP71iYfXzcC0Kh/InfllQiNLpq3cM8+Kz9E/5VEt3UWTEkQzLKh7YxDbWpsCoFV
	 BeaKFr74q0LxCeMw33ACDE69eAlZNdaXb7zunpjAChj0mwG2NH3qmP3Eh9JfxwUB+j
	 S28nU4Zv0BVzxqLe6FfOcfwlaXkGKrJO44/4Znswv3jEle+yF3xqdmIeDfp2rJUvgA
	 EcJc4rqZEqdHA==
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=tklengyel.com;
	s=default; t=1637881934;
	bh=HNy96XEdiZ/Me3QQJuJr6FSt9o8mdnUWqprGpvdQrGo=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=crJiGUZe6ZULfy3GaezZvVvl/qMwPSRZq+JH9vkdn4tS+wn0rXrG6QzPSaxf37ouu
	 ZdsbizbnM/VpCzdt+72L4Tc01wPEZyf7PGwdcHmmro+i89c97bo/edbk2agayaeJDV
	 euZFP71iYfXzcC0Kh/InfllQiNLpq3cM8+Kz9E/5VEt3UWTEkQzLKh7YxDbWpsCoFV
	 BeaKFr74q0LxCeMw33ACDE69eAlZNdaXb7zunpjAChj0mwG2NH3qmP3Eh9JfxwUB+j
	 S28nU4Zv0BVzxqLe6FfOcfwlaXkGKrJO44/4Znswv3jEle+yF3xqdmIeDfp2rJUvgA
	 EcJc4rqZEqdHA==
X-Gm-Message-State: AOAM5339gmOVNDSMQ6Z8hOnfyMJT9WEgt6fYtkyRUSDQF188NrLRkwrB
	TfGAKm1IJpTVBxMGIzVonyh8lfYX/Nm4+FP5sP0=
X-Google-Smtp-Source: ABdhPJxC7BShi7L57o8W6ubcfcAq7DRGO9pvwvSvyA2wStNMXx43ZsBBN7FeExlcunZZtE8nD/y0OgLZMFC0T8tLK6Y=
X-Received: by 2002:a25:d895:: with SMTP id p143mr9930808ybg.513.1637881933805;
 Thu, 25 Nov 2021 15:12:13 -0800 (PST)
MIME-Version: 1.0
References: <1637880559-28821-1-git-send-email-olekstysh@gmail.com>
In-Reply-To: <1637880559-28821-1-git-send-email-olekstysh@gmail.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Thu, 25 Nov 2021 18:11:37 -0500
X-Gmail-Original-Message-ID: <CABfawh=mCHtWoFjT4TpSgHB5MJnZ2b7BVPGTCFMaR5BJ-jAi2w@mail.gmail.com>
Message-ID: <CABfawh=mCHtWoFjT4TpSgHB5MJnZ2b7BVPGTCFMaR5BJ-jAi2w@mail.gmail.com>
Subject: Re: [RFC?] xen/arm: memaccess: Pass struct npfec by reference in p2m_mem_access_check
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: xen-devel@lists.xenproject.org, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Alexandru Isaila <aisaila@bitdefender.com>, 
	Petre Pircalabu <ppircalabu@bitdefender.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
X-Virus-Scanned: ClamAV using ClamSMTP

On Thu, Nov 25, 2021 at 5:49 PM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>
> Today I noticed a "note" when building Xen on Arm64 with
> aarch64-poky-linux-gcc (GCC) 9.3.0. It turned out that Andrew Cooper
> had alredy reported it before [1]:
>
> mem_access.c: In function 'p2m_mem_access_check':
> mem_access.c:227:6: note: parameter passing for argument of type
> 'const struct npfec' changed in GCC 9.1
>   227 | bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla,
>                                   const struct npfec npfec)
>
> From the explanation I understand that nothing bad actually is going
> to happen in our case, it is harmless and shown to only draw our
> attention that the ABI changed due to bug (with passing bit-fields
> by value) fixed in GCC 9.1. This information doesn't mean much for us
> as Xen is an embedded project with no external linkage. But, of course,
> it would be better to eliminate the note. You can also find related
> information about the bug at [2].
>
> So make the note go away by passing bit-fields by reference.
>
> [1] https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg87439.html
> [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Acked-by: Tamas K Lengyel <tamas@tklengyel.com>


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 02:31:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 02:31:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232185.402350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqR1F-0004Av-QV; Fri, 26 Nov 2021 02:31:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232185.402350; Fri, 26 Nov 2021 02:31:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqR1F-0004Ao-MS; Fri, 26 Nov 2021 02:31:21 +0000
Received: by outflank-mailman (input) for mailman id 232185;
 Fri, 26 Nov 2021 02:31:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqR1E-0004Ae-6B; Fri, 26 Nov 2021 02:31:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqR1D-0003hx-UK; Fri, 26 Nov 2021 02:31:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqR1D-0000qo-LA; Fri, 26 Nov 2021 02:31:19 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqR1D-0000tN-Kf; Fri, 26 Nov 2021 02:31:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kEnPwNVLiGIOwIso1th3umQDs0poMcZYMX9OiZtR06E=; b=MzYt3nWQeJbwOsMGGuFq3Pbhgy
	YF5+IOIMZ2J6NYkUXs9LcMtFhSOJX9eq6iYNhPGqBuoMpuNwKNR2IvH+w/kRP1SwmHiUvtSftBMog
	7TF80eNvEEptI1EFgJ79WcIFeMYADhhUsFmo0QwSap7Rc3bGx+lroDmg5NTRUiszP4CM=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166374-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166374: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=b85cef1b2dea5c7b80a7d515e9110d47e07e5840
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Nov 2021 02:31:19 +0000

flight 166374 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166374/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              b85cef1b2dea5c7b80a7d515e9110d47e07e5840
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  503 days
Failing since        151818  2020-07-11 04:18:52 Z  502 days  488 attempts
Testing same since   166374  2021-11-25 04:18:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Koichi Murase <myoga.murase@gmail.com>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Vasiliy Ulyanov <vulyanov@suse.de>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Xu Chao <xu.chao6@zte.com.cn>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 85012 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 06:56:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 06:56:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232301.402691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqV9K-0003w1-HD; Fri, 26 Nov 2021 06:55:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232301.402691; Fri, 26 Nov 2021 06:55:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqV9K-0003vt-Ch; Fri, 26 Nov 2021 06:55:58 +0000
Received: by outflank-mailman (input) for mailman id 232301;
 Fri, 26 Nov 2021 06:55:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8kDD=QN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqV9I-0003vn-VL
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 06:55:57 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4b2545f-4e85-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 07:55:55 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 590F21FD37;
 Fri, 26 Nov 2021 06:55:51 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2216B13BA3;
 Fri, 26 Nov 2021 06:55:51 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 59EgB/eEoGHOfQAAMHmgww
 (envelope-from <jgross@suse.com>); Fri, 26 Nov 2021 06:55:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4b2545f-4e85-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637909751; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=baghIJkaLpAIIpbA+c/0OfwhttNXFlvxllx3gNgHEVY=;
	b=rlZEPNyDADhyMyTHDUE1+RLgSOuAFIK0j8zw+dbMBpdeGBb88QMRqEHLvB2VgJhyEWYAEy
	RpdGC7sE5Mc4D+zo3HzhR5gDZGbIp/OUk93ejmiTrHVZeVC3momPg9DQeaLVwc0ao7PA3s
	FehOiIid/ksFfJeM6zL3lLGtCGIkEp8=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Roger Pau Monne <roger.pau@citrix.com>,
	Manuel Bouyer <bouyer@antioche.eu.org>,
	Simon Kuenzer <simon.kuenzer@neclab.eu>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH] public: add RING_NR_UNCONSUMED_*() macros to ring.h
Date: Fri, 26 Nov 2021 07:55:47 +0100
Message-Id: <20211126065547.22644-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Today RING_HAS_UNCONSUMED_*() macros are returning the number of
unconsumed requests or responses instead of a boolean as the name of
the macros would imply.

As this "feature" is already being used, rename the macros to
RING_NR_UNCONSUMED_*() and define the RING_HAS_UNCONSUMED_*() macros
by using the new RING_NR_UNCONSUMED_*() macros. In order to avoid
future misuse let RING_HAS_UNCONSUMED_*() really return a boolean.

Note that the known misuses need to be switched to the new
RING_NR_UNCONSUMED_*() macros when using this version of ring.h.

Cc: Roger Pau Monne <roger.pau@citrix.com>
Cc: Manuel Bouyer <bouyer@antioche.eu.org>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Cc: Paul Durrant <paul@xen.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
I have checked Xen, Mini-OS, qemu, grub2, OVMF and Linux kernel for
misuses of the RING_HAS_UNCONSUMED_*() macros. There is currently only
one instance in the Linux kernel netback driver. The BSDs, UNIKRAFT
and Windows PV drivers should be checked for misuse, too.
---
 xen/include/public/io/ring.h | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/xen/include/public/io/ring.h b/xen/include/public/io/ring.h
index c486c457e0..efbc152174 100644
--- a/xen/include/public/io/ring.h
+++ b/xen/include/public/io/ring.h
@@ -208,11 +208,11 @@ typedef struct __name##_back_ring __name##_back_ring_t
     (RING_FREE_REQUESTS(_r) == 0)
 
 /* Test if there are outstanding messages to be processed on a ring. */
-#define RING_HAS_UNCONSUMED_RESPONSES(_r)                               \
+#define RING_NR_UNCONSUMED_RESPONSES(_r)                                \
     ((_r)->sring->rsp_prod - (_r)->rsp_cons)
 
 #ifdef __GNUC__
-#define RING_HAS_UNCONSUMED_REQUESTS(_r) ({                             \
+#define RING_NR_UNCONSUMED_REQUESTS(_r) ({                              \
     unsigned int req = (_r)->sring->req_prod - (_r)->req_cons;          \
     unsigned int rsp = RING_SIZE(_r) -                                  \
         ((_r)->req_cons - (_r)->rsp_prod_pvt);                          \
@@ -220,13 +220,16 @@ typedef struct __name##_back_ring __name##_back_ring_t
 })
 #else
 /* Same as above, but without the nice GCC ({ ... }) syntax. */
-#define RING_HAS_UNCONSUMED_REQUESTS(_r)                                \
+#define RING_NR_UNCONSUMED_REQUESTS(_r)                                 \
     ((((_r)->sring->req_prod - (_r)->req_cons) <                        \
       (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt))) ?        \
      ((_r)->sring->req_prod - (_r)->req_cons) :                         \
      (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt)))
 #endif
 
+#define RING_HAS_UNCONSUMED_RESPONSES(_r) (!!RING_NR_UNCONSUMED_RESPONSES(_r))
+#define RING_HAS_UNCONSUMED_REQUESTS(_r)  (!!RING_NR_UNCONSUMED_REQUESTS(_r))
+
 /* Direct access to individual ring elements, by index. */
 #define RING_GET_REQUEST(_r, _idx)                                      \
     (&((_r)->sring->ring[((_idx) & (RING_SIZE(_r) - 1))].req))
-- 
2.26.2



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 07:38:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 07:38:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232323.402741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqVo9-0008JK-Hi; Fri, 26 Nov 2021 07:38:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232323.402741; Fri, 26 Nov 2021 07:38:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqVo9-0008JD-CX; Fri, 26 Nov 2021 07:38:09 +0000
Received: by outflank-mailman (input) for mailman id 232323;
 Fri, 26 Nov 2021 07:38:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqVo7-0008J1-Fc
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 07:38:07 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb2f9118-4e8b-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 08:38:06 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2112.outbound.protection.outlook.com [104.47.18.112]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-24-zuKuSu6EO4qSMVNaNoXFSA-1; Fri, 26 Nov 2021 08:38:04 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2336.eurprd04.prod.outlook.com (2603:10a6:800:27::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 26 Nov
 2021 07:38:02 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 07:38:01 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0070.eurprd06.prod.outlook.com (2603:10a6:20b:464::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Fri, 26 Nov 2021 07:38:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb2f9118-4e8b-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637912285;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jbMDIm8r/E/Dx5ukXSVlralAVqlm8TXP7b9TxtnTxo8=;
	b=ZRtDc02sGuZ3L1R+nsAWFC/9fU+F1qL6qgGH61j3UV9zPBtrOJSaoChtmHjcXNJ95VmZPP
	HCPzlkLiXfJMAlupT3uWAd9As9aAiKR1xCQH74fv6AFXki2ozOL0lfxiWhl/2DpwgLb2Wm
	B3oICypG0ZtIVPUiiYOLoXnbMOv87zM=
X-MC-Unique: zuKuSu6EO4qSMVNaNoXFSA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ePI1aFNFn7aWEaBCvCO+9HXO8nOHPXBdWafUzXuEnI4Bcj22X+v6wYfpUtPhG9md7m0kiIFhySUM0B4Bth76AYo9TgD+yF/MkmGJoMPqJ5zCKV50gOsSIJ03y1fntNC18kWUz+arhehJW/k5Io7FEznHtvNq9jhkI8n60UkJLusV5AkFQCKWK41PDa1BV/o8gnSveMF7tH2tZ/12dR0xgAtbkiKyC+KXNOSBivMjKxtQbou0wqfW5IpeTDUjKwYa3VxWbbb01W4arZVLnU/49VGeGQqEHAEaTQ4gV+qwuhYmvxWG5lgxJ5ZADT63J707Ip9+gBl//ytpMOgE610rAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jbMDIm8r/E/Dx5ukXSVlralAVqlm8TXP7b9TxtnTxo8=;
 b=EY7EpBZj9YEpZB39ttRYqfclFPjpMAAUnekW4Izn5+GazizRJPXiaJpN7tKxiI46ltlUFgIiJ8dlTDaQgrHaDQz0IRsOa1ude0eNXIrCD7hOcLXVJ/qx9PAWYVuL+6nNtCjq2pJoPLJEXAx6PF6/Dt9nUXhsRS+68VGxJ7uGBxev8oqhgUcdvZGe3pPZo3iDFyd+R3nQFgC8omFgx5elP012aeJIUhDns9R1ZvwPiFUOljgqaP9l9jXAWwDqEk3U2EWc99+zfX/ghjzNZ3N/FNLRD0iM6pIJHyJ7b8uPw+vOqH0qGsPRTUbsNho1y1rS+vRYmnjxYZ76jomIoTinJA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ceec5b56-65fc-8bb4-b9e0-1e16aea8c412@suse.com>
Date: Fri, 26 Nov 2021 08:37:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
 <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
 <b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
 <0c0e67f3-5e0a-f047-ca09-1cf078e6b094@suse.com>
 <71ef250c-be92-2b2f-0f07-ce32c17d8050@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <71ef250c-be92-2b2f-0f07-ce32c17d8050@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0070.eurprd06.prod.outlook.com
 (2603:10a6:20b:464::21) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a9f01b7a-f05f-40d2-febb-08d9b0afacac
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2336:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB23369AA62F514EF34938597DB3639@VI1PR0401MB2336.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OGTyJ32rHcnUyuOdF8fV63Hpib4BCLdrh2sJ6PvoLDQO4vAOFPFySuvErliOnkiMZgKbLjzIvBY0fUC6ERUOu5gmcorg7umbX+cB2sLFEOfYQRWgcGvSzrdmJd/4oiN0iu99T8t8WV06g0XMqxkLfBMHRPCCAYcS8F4g16Pwlm0Hhk/yL+ys9tsklb3EuyKNokUAlIeuejBTbtSNcluA5IEnDBWV5RMDG8dpCUmTwAZZ0R5JswFY8jpnBBTVqfNsyY3iQrzFTHsqy2f2Q72NFYSBYaE64bWAF29Grdh68I77hGkwVmE2E/VjSRC9hshmC5aDwqEJRH+Y9tnn+uGlHpHxhqzDfETvjr6XbVx+Vf4RYlJZYrp9iUM0AcGLoYUTMhFjJcbOUnZ2hG7BHC3+H0HaVIuXydDrd4DLsx+HEy6jio6gXi8oloKqCCjxktV448UF+1SQ3OTC3YReHiX3BktU4kdKrL3FZiVdrlbCx/hFXNnOsBInb3KKDK7ZrHv6R5Tt4SWzmqrUBHJKx+JpDUj8B5103c3fz8GLgZHQyueS9+Q8RYgCIJQfUFCzw3zxzRRCcOti3beqUhYLAo1zlEl5TiCpQxbL3laLt4Lyt1qHfAcnOJ3SnUHDwR5u+bsYau3bOfK9b4vs+mnL5ORpls+s4MmU8FGrXRKh7LIuJaXVEzWrnzyavUNOg00AwZUqoKsw8o9GzvymeYYgcfp6V2KaJO63F428F6GUY/7bHKU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(508600001)(54906003)(31686004)(2616005)(956004)(38100700002)(26005)(186003)(53546011)(316002)(66556008)(31696002)(66476007)(16576012)(2906002)(8936002)(5660300002)(36756003)(8676002)(4326008)(66946007)(86362001)(83380400001)(6486002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NjUzR2J1Mm5OTWc0Z043M2FJVzhLbUdFTjdIcTlQWW5ydjdtdkVZQ09NNlc3?=
 =?utf-8?B?M3I1N3FEWGQxZ09zV1BwYkU4MUhiVUFvOFNzQzlXSCtpY1hRVTVpbHBad0J6?=
 =?utf-8?B?cW82UzVuejNKUkxwUEVSa25pUHBzR096RTdsNnorcGRVOTRMYndyb3Q4OWxp?=
 =?utf-8?B?MkpYVU44dVZmcVZidm5mb2d1RitZQjFYVEtwYUVKcjR0ZG5BZ3VYVlNJWFEw?=
 =?utf-8?B?V1k1cHNSaWZ1OG44ZFMrbFVpelppOEJVMmJET3B4TGw2bFBzblRBNjBXQ3lr?=
 =?utf-8?B?b1M2UzBKL1cwcFBSUmIyMUxzNVA3dHpaVHpiSVhudVR3TFBqWVVBUXZObVpV?=
 =?utf-8?B?b0ltQkU4STBzSVhXRVFzWk12dWdZT09WOFYwNndKZVFsTGNhWjMybVlsVE54?=
 =?utf-8?B?RWNGL3o0YUVpTGNCb2ZkMUhYd0hrR2RmaGkzVi9mM1Y2VmtxZzI3OUJoMU5F?=
 =?utf-8?B?dmZONDJTYWU3bGdPRXdWTU9DY3ZuZmQrQXNoUE5Fb2dsaGtLdUNvSXMrMmRj?=
 =?utf-8?B?K2Y2cHFJcWpjSkVzVFNydCtEazVrdy8yd0hWM2NaaTJKT3k3QlB2LzNuTDEz?=
 =?utf-8?B?L2VjWVhZQkNXQjFMUzZIK2hXVWpRQ3g2U3lScjIvRkpUajJCd3JESjgxNlZW?=
 =?utf-8?B?KzdoeTg4SGdvNE9tTkNKNlMzUnU0bnFZb1U4Z1pJVlVzaVlGWllzbGJtd2pI?=
 =?utf-8?B?WXJTWm1LK29aZnRqQWZSU2lQWGJHVnVkOVBtTUlzUjBsQW8zQW5kZkxwTUxU?=
 =?utf-8?B?QWRKa29WNE4wWVNyVDF1MmJvalQ2K3owWHhUbzI2Y0tMcnorbnVVdTFiOHZI?=
 =?utf-8?B?UE0yTXpNdDZ4cUFCNUhrV2w3b3l4Q0tQR0VGSjVMMU9oSFRYZ0ZreUhQV0w4?=
 =?utf-8?B?M0ZENi9KcmMwR3JsaDdXYmFxa0VuSlA2LytCRFdteDJRS3A5VXNDNm9FSkVY?=
 =?utf-8?B?TmRoOHdnenhTNzU1YnFFZUxuYUI1ZUltbGVieUU1VjBPQnM5VUppZWhnUi9W?=
 =?utf-8?B?byttYW9iS3hsR0MwSnpLK1BjQ0RBWHR3d2gvYmQ3Szc3Z2RWN3FPT1JCM2xm?=
 =?utf-8?B?UmUwM2hJc1FMYWk2NVpvNDhaWldrWmNXdmN5YXR6S3VjNDAvaFhFK1RwdnJO?=
 =?utf-8?B?OWFJL2loL3c0eTloamgyTmpFRUtWRnJkV3pYM3B0Z3R4U0UwZGdmajI0dGdI?=
 =?utf-8?B?Qi9kQXVwSHpwcllCc2pUS3h3ZTZZZHVWcUdXQXY4ODJNWFh4NUV5RXR5R2c4?=
 =?utf-8?B?QmdUb3BDQnVudmVxSTI2VnEweTcyTHdhNnozbE9PbjNRQ0pTTHpyNmFGWEFu?=
 =?utf-8?B?cU1FSW90S2tFSzBuaGJxWDcya2I0aTVnTGJ4eW1TWHk5ZFJWdWNmR2NKd0hP?=
 =?utf-8?B?K09LdkRzRUpLRGpSbWFIU2F3cnZjMTU3NFdpL3hpRlBlUUl2T0J0K2tyWUVv?=
 =?utf-8?B?SXpOOUsvVVNpRkUzNFdLSHJPSnVucjY4azNvNUJMa0Nyb3FHYmxsK2wvL01R?=
 =?utf-8?B?WDMycnRCa2ptYWk5VjZEeGJtTHBqcG1WUGh2eGZib1V2MUVZRTJQYWZTRllJ?=
 =?utf-8?B?V2lpaHJNVWt4QmhTS20xMXMwSjZFUDlEdDVHTkM4Tzh4MXoyNnZzcVNSNy9u?=
 =?utf-8?B?T3A1V1JlTUxlWWlsOUJKMXRhaStncGZrZGZlQ0NyKzFweDEyTmhudDIzMnRH?=
 =?utf-8?B?L3VnQzFOY2Y0QmRkalJtVmNrbE9CSVZHYTAxcE5JSE90N2NlK0dFN3ROMkNN?=
 =?utf-8?B?YkRNSEgyeXJPQm9SQjl3L0F4cC9nam9tQjZyeTYxUWlRTGpETUc4K2lDb09l?=
 =?utf-8?B?YlB3cEJxNWZ6OHJXQ2JQZTErUW1zVEpZK2Q2U3NOVmk0UFNiVThZWmtYSlBJ?=
 =?utf-8?B?SHNUckVoZmVMSE5EREpBbGlxTmNTcHpkU2tYUXB3dVlVbEt3ejRiRFBwOEZ0?=
 =?utf-8?B?LzNjUnFoMi9BK0tvR29peHJrYmdLWVBuSTZRNzZ6UlN5VUt3d2MvdXpNak9l?=
 =?utf-8?B?bHM5WXBURlpkSnhNMEhsY09LSFJGeFErQnBSYWZXZXpEQWIxMFkzOThDZkRV?=
 =?utf-8?B?aDlnSG80NjFGY3JGdFNoL3p6dkZQTjhXVG41eHpMQ2h0RGdDYXlLY2hWY2Jl?=
 =?utf-8?B?YmtseGZKS2gxTmIyajRmWkhMTllxTEpMYWJGWDFFMjJZa1FjZTZJYUNQSWEy?=
 =?utf-8?Q?9bvceLA/g5IsI3chmixtlCA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9f01b7a-f05f-40d2-febb-08d9b0afacac
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 07:38:01.4298
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /2V/jMBhVO19LOkscAGPFSeUpa4eHkfbkRTH1Cx9S07045rBTBxtK1Qy/W3tQtYEArPnE08hK+7/dDmd7PwyhA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2336

On 25.11.2021 18:13, Julien Grall wrote:
> Hi,
> 
> On 25/11/2021 17:03, Jan Beulich wrote:
>> On 25.11.2021 17:54, Julien Grall wrote:
>>> On 25/11/2021 16:49, Julien Grall wrote:
>>>> On 19/11/2021 10:21, Jan Beulich wrote:
>>>>> From: Lasse Collin <lasse.collin@tukaani.org>
>>>>>
>>>>> It's good style. I was also told that GCC 7 is more strict and might
>>>>> give a warning when such comments are missing.
>>>>>
>>>>> Suggested-by: Andrei Borzenkov <arvidjaar@gmail.com>
>>>>> Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
>>>
>>> Actually, any reason why there are some signed-off-by missing?
>>
>> I often keep the author's, but drop ones which clearly got there only
>> because of the path a patch has taken through trees.
> 
> This might be clear for you. For me, as a reviewer, I have to do extra 
> work to check whether you keeped the relevant signed-off-by.
> 
>> These aren't
>> relevant imo when pulling over the change;
> 
> They are technically part of the "chain of approval".

But the Linux chain of approval is precisely what is of no interest to
us. We need to approve the change ourselves; Linux having had it
approved is merely a data point.

>> I could as well take the
>> email submission as my basis, after all, where just the single S-o-b
>> would be there.
> 
> That's a fair point. That said, you took the commit-as-is from linus.git 

How would you be able to tell?

> so I think we ought to keep them.

I disagree. And I'd like to remain consistent with what I've been doing
in the past.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 07:40:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 07:40:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232334.402767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqVqO-0001Fb-5N; Fri, 26 Nov 2021 07:40:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232334.402767; Fri, 26 Nov 2021 07:40:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqVqO-0001FU-1m; Fri, 26 Nov 2021 07:40:28 +0000
Received: by outflank-mailman (input) for mailman id 232334;
 Fri, 26 Nov 2021 07:40:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=2CuY=QN=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1mqVqN-0000lL-Gw
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 07:40:27 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1efdecd9-4e8c-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 08:40:26 +0100 (CET)
Received: by verein.lst.de (Postfix, from userid 2407)
 id F195168AFE; Fri, 26 Nov 2021 08:40:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1efdecd9-4e8c-11ec-9787-a32c541c8605
Date: Fri, 26 Nov 2021 08:40:22 +0100
From: Christoph Hellwig <hch@lst.de>
To: Tianyu Lan <ltykernel@gmail.com>
Cc: Christoph Hellwig <hch@lst.de>, dave.hansen@linux.intel.com,
	luto@kernel.org, peterz@infradead.org, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com,
	jgross@suse.com, sstabellini@kernel.org, boris.ostrovsky@oracle.com,
	kys@microsoft.com, haiyangz@microsoft.com, sthemmin@microsoft.com,
	wei.liu@kernel.org, decui@microsoft.com, joro@8bytes.org,
	will@kernel.org, davem@davemloft.net, kuba@kernel.org,
	jejb@linux.ibm.com, martin.petersen@oracle.com,
	m.szyprowski@samsung.com, robin.murphy@arm.com,
	xen-devel@lists.xenproject.org, michael.h.kelley@microsoft.com,
	Tianyu Lan <Tianyu.Lan@microsoft.com>,
	iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
	netdev@vger.kernel.org, vkuznets@redhat.com, brijesh.singh@amd.com,
	konrad.wilk@oracle.com, parri.andrea@gmail.com,
	thomas.lendacky@amd.com, dave.hansen@intel.com
Subject: Re: [PATCH 3/5] hyperv/IOMMU: Enable swiotlb bounce buffer for
 Isolation VM
Message-ID: <20211126074022.GA23659@lst.de>
References: <20211116153923.196763-1-ltykernel@gmail.com> <20211116153923.196763-4-ltykernel@gmail.com> <20211117100142.GB10330@lst.de> <c93bf3d4-75c1-bc3d-2789-1d65e7c19158@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <c93bf3d4-75c1-bc3d-2789-1d65e7c19158@gmail.com>
User-Agent: Mutt/1.5.17 (2007-11-01)

On Wed, Nov 17, 2021 at 10:00:08PM +0800, Tianyu Lan wrote:
> On 11/17/2021 6:01 PM, Christoph Hellwig wrote:
>> This doesn't really have much to do with normal DMA mapping,
>> so why does this direct through the dma ops?
>>
>
> According to the previous discussion, dma_alloc_noncontigous()
> and dma_vmap_noncontiguous() may be used to handle the noncontigous
> memory alloc/map in the netvsc driver. So add alloc/free and vmap/vunmap
> callbacks here to handle the case. The previous patch v4 & v5 handles
> the allocation and map in the netvsc driver. If this should not go though 
> dma ops, We also may make it as vmbus specific function and keep
> the function in the vmbus driver.

But that only makes sense if they can actually use the normal DMA ops.
If you implement your own incomplete ops and require to use them you
do nothing but adding indirect calls to your fast path and making the
code convoluted.


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 07:46:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 07:46:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232340.402778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqVwU-0001vC-Ry; Fri, 26 Nov 2021 07:46:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232340.402778; Fri, 26 Nov 2021 07:46:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqVwU-0001v5-Np; Fri, 26 Nov 2021 07:46:46 +0000
Received: by outflank-mailman (input) for mailman id 232340;
 Fri, 26 Nov 2021 07:46:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqVwT-0001uz-F7
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 07:46:45 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 003758cf-4e8d-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 08:46:44 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2111.outbound.protection.outlook.com [104.47.17.111]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-37-s3BY4HlyOQK-JKPBDtqI_A-1; Fri, 26 Nov 2021 08:46:42 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4191.eurprd04.prod.outlook.com (2603:10a6:803:45::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Fri, 26 Nov
 2021 07:46:40 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 07:46:40 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0069.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::46) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.19 via Frontend
 Transport; Fri, 26 Nov 2021 07:46:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 003758cf-4e8d-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637912804;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Ue/+97yGCMNvbWu+AvN8iBKquKtgDOSOMnRt2uD6tjQ=;
	b=Gnpt8QWhJ+RCCc4CjFxT43qQN1GQ2fFVR5e2PX2Sb3d+FKxtahqEpu1/dW2HWza8PUGipy
	EO3NRzQovdX5i0lg7ykjrL2V2rpsxhx0j/WKz4NWGGT/wCmM7N5lM+dqibGp+kujPACBe0
	R7jSowcm9QHcJkXHO9eDAEtRX83QzMU=
X-MC-Unique: s3BY4HlyOQK-JKPBDtqI_A-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LVfm388N+BwREqt5LODC0Uap4VawNeJMQyLIg/ADxzVXMsq3EDY44tNVa8pKkcR3PTbE+t/9iB5AHN3nbn2FNGLFQSghL/OB0uX8WdTihEIdiZKZe1hSAq14f4+wHMd1gotcKtRickSGzixwyMyP/fsVaj9TWl6bNM16FznGUGbK9Q/UggrF57d0rLh6iFnFWtPRAS16fRYbP8ayVZsqKdWrUuxK1dSGGeOIfV8KOP1F6QZwPKe0AseZeYJhVATUo38uDWal15ydMuiKmY4wbt8f2/kaAlPvicnejErkINM4byPlRknTO7Y8r/b7oUIXNA7bpLdxfxAM1jdLBCecMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ue/+97yGCMNvbWu+AvN8iBKquKtgDOSOMnRt2uD6tjQ=;
 b=SkA78y2HWzYyt5fnOaXzP1bM+LOsGvi8eLs9FME63TpguDyA/g3dBFH8/fUN9/2Rh7tDkwsEeL9melNKOagBwSVbs/T9A6mBgSasIXIPlR3VmvytIQLQLbwZZdHRspfXdzH0GHuhi3RzbTj22PLaQe2nEwi8Nc8v9GhiuDBDYKlddKFYa6073K8Jt8+j1uqJfkUkh6Ynn+izzHi4oVO+DjzrrYYvacRXTSqo66a/OjYHSOLSKXaBkblQ+eXsDcK6trFaCtQ9o3vxh5p4yvwK8km1W/x9gZzLIc5GtVybxrv/e+MjPrLguJJGVYX5l+AyB09EDIIeNIzdnGafYKxwLg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b51fd518-6c32-c945-d220-f2092ff2666a@suse.com>
Date: Fri, 26 Nov 2021 08:46:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [RFC?] xen/arm: memaccess: Pass struct npfec by reference in
 p2m_mem_access_check
Content-Language: en-US
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <1637880559-28821-1-git-send-email-olekstysh@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <1637880559-28821-1-git-send-email-olekstysh@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR1001CA0069.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::46) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1582817e-2406-466f-92bb-08d9b0b0e1f5
X-MS-TrafficTypeDiagnostic: VI1PR04MB4191:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4191C43002E7F5EC5E22FB88B3639@VI1PR04MB4191.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	COwqExwqCJdqbvKoE45uEmfWjMYZ+hFOMLQRaewMCbhJr8P/sY9f00x4HzR9SUmXRbvCX/0/j4oaw1ND+O+PqMc0Les1lb/hlJorYE6BbOV/5h0X7kb/yYOU3MTf6K0bqW/qUtU1zUsldmFTg33JT5Yrox86UKqR0jNm8saPMlQZuXQWFA3+Z+YlAx1tn6ZN6bhyBVREhcAmNzDtcDJ060OTkg/T5hVVwuIaRewnAjAJOtcfpq9WVQx/DUEKR+kK8ILaDqimR4DAeHtzg9ZqGHxC01h/F55AjLpxlHwjKUO5VOIcBLH//Nc5qEIN39RwsiAfSGxT17ytDhPxWOfSJz1lqYfwb88+++7CMX8ycxbzElTb/kuf9YDGxFhhZCP+mXYKf5J5kdbcOptO9aaboB7Ctl0SQ8KhkggLkw+jC+X8UAnrxl878aWhiGJb6mOQjCJSvgFkFXovgaGtqLfXRtawA1ciUKRjaojQ5kg6nos/dps1/l96+20hHMGEGYeKOT017/NDXFafU4JlgCu1J39qK1l2cnJj+Atsr1V5f1ee+L2nF3lQpkOprF+/p+0Sw/hWipHl7H+vIiGHkPImJdTrTD5/hlYDqdR45mzY5PVGOiTMlYEcW8iOZxIU9c2Ywpxpg9xhbMISXwkiKASjWgn1N66zo2fbgqBRS11MvO6nfSl5KOeuAkk3UuEf1kqh/hIZbz/ovwDo75t40U95DnR36TWJ7wPoZ4w6YOEL+utHvbNuIvfd7QlTE89QNkymGL5q+jcwDZMoDQpAmQKtqHIPwk4i9qUymqifLmuAuaiQ+cKpjGFwdWx1iL6SZ+aePP1WYDwNGOYj7A0isALyCvanUf4hL5suEiPxMIAmGqs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(16576012)(2906002)(38100700002)(54906003)(8936002)(5660300002)(83380400001)(31696002)(2616005)(7416002)(186003)(4326008)(31686004)(6916009)(66556008)(66946007)(966005)(86362001)(956004)(6486002)(36756003)(8676002)(316002)(53546011)(26005)(508600001)(66476007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SUwxck9DYVpBQ1ZtOFFDclBuNUxrQ0FCTzc3UDdYOUtxNTNieDlkMGtTS1hL?=
 =?utf-8?B?UGRhK0U5bG1rMDdqTXVyUCs4dDRzeUNBYVdxYVZSc3owQkYzdnNvVitvcy9P?=
 =?utf-8?B?dHBwVDF6TThJTkN1NXJTRnAwR1Awd3JBV08zOFNyNDJ2QTR1dys3Z1BENUt1?=
 =?utf-8?B?d3hQa2wrbE5DSkM1VC8vWmcwbEJ5ZmczbTRhZ1Z6RUkyd2xla2hzVis3S2x6?=
 =?utf-8?B?Z3EvSXVySm0wcit4bEF1Y2hDMXg4TnF1SjhvWFN0Q3VoZEtQbEFtOW5pQVls?=
 =?utf-8?B?Snp4ZVd3RlprZWJNejM2T2RQNG8rMlQ1QWEvREdWMTl6clVUSThHTWYwY0tL?=
 =?utf-8?B?ajN3RjNrNHVNZlNtaG5WdWpZU21sMG5UUVEyTDlpNWQ1cGdDTnNqWC9nMzZ3?=
 =?utf-8?B?dktWME40Tk1XYVhmTVRidEZ0UTdhbnk2LzExRGZIa1NTYXlHczlyU0ZpN3Jm?=
 =?utf-8?B?eHVST2ZtY2R5UjF4M1RFWGxsOWRzNzlJdHVJajRlR0JyeHFWUUNKZVBzUXhu?=
 =?utf-8?B?STQxYlk5REkwNWdqdkpOcll4THhHRlJ6a0c0Rm1yYjdQZ3dncUsyb3lOWnNv?=
 =?utf-8?B?ZHByL3IxVjl4cGtQVHpXWDloSzVVcWJHS1JZRlhQcEVIS0lhMkU2ZXBDazB6?=
 =?utf-8?B?ZWRSakZPSkR1SDBNUk5zMEpQYjVIWUVsM2hvT09HMWc1NUlVVmZad01PTlBh?=
 =?utf-8?B?QXBrL1F5SzZyTmtmNmtiRjJuMzdCVU5FdU5YaW44cGM4NWZheGMzckx6RkFl?=
 =?utf-8?B?UDBOa3pielI5MEVVajlKdFNJWFJzWHBGcFBNaUxJYUZ0ZUZ4ejJhT1R4bnh1?=
 =?utf-8?B?QXNBUmFzdGlySi9oZDNpT2dndGpFK2tTS25Tb0ZLZzJDNytzVXQ4NHdjd2Nm?=
 =?utf-8?B?RW1RdytsT1B4aXlzSTJxbjFEM1BBUXpsaG1tV21wbUJseTVpdHdScmJGc0Jn?=
 =?utf-8?B?eWVyMTQ4MSt0TVphSDhCTkh3OXJodjd2STFIZnRKVFEwRUVNQXhxOEU0UUJO?=
 =?utf-8?B?VHZPMytCeGlDRFl6UlhaVWFlck1aQURRZ3FCQVFDaU9vemlHNFI5am1PRCtj?=
 =?utf-8?B?Qk9SV2lkcEYyUkZsRUxORHZ1M0h3WnRRNit0NC9rV0xtVmFkNVRXU1BtVFIy?=
 =?utf-8?B?U01tL1o1eXBaNTVKeFMwYjJZek1DMFlMTzRac09CWmsxTEJKelg3c0JzbU1W?=
 =?utf-8?B?cTlVMVVobTRkUFo5R3JOQXhDZmpiQ2ZKQmdPbzFHaktmT1had3FpTldOZ3lG?=
 =?utf-8?B?MTBzS3VaeW5uWDVJT29KS25jRm9Gd0p3Q0pBTzlsZ0FXSS9qNGsyUVp6eDVQ?=
 =?utf-8?B?UmloUVJHSDcvMXkzY2dDRlRtL0p6SHZlQ20vZ0NyNllDaFltcDFNTStzayti?=
 =?utf-8?B?VGNLWHN5Vkl3RGVZei83dDJwcXpqcUVSMVFZT2FtMm9VVm00MjJrZTJhVzBH?=
 =?utf-8?B?NTltRlJNZWpqUjRsZ21tbllhWW9oTzhWQnVLRWFkbGNER0xtZldTeEN3U09O?=
 =?utf-8?B?WS90SWw1TEFLRUNwaFZmaERzb29vdW9MOUZ3eHFQVGxLSVFla3FWUWVkWVFR?=
 =?utf-8?B?a2FTUjltRWdacDVGMzl1ZkpVd0ZPV3pvc2ppL2VBK1RSR0Qwb2drZEJGL0hO?=
 =?utf-8?B?ZzBzL2lMMElOUUt4TE9BNVNyK1hyMG40SjdySVg3ZG5YVXRVM2dpb2I4VXVm?=
 =?utf-8?B?T3FFQTlROU82RElOTUhSS2ZubDdOTDhIK1BMQnJhdXZzSkJhWkNvRTFwOC9Q?=
 =?utf-8?B?QjhNUEozYW5LTHAyMFV2YjlReFpUV0x5dWFkbFV0eExJV1d6bG9ieTFpL1Z4?=
 =?utf-8?B?a1lJZGhsbTN1alB2dmFvK003MGRrRngyNTU1YUxxcERWUjl3alZYM20zMW9l?=
 =?utf-8?B?b1Myb2c3bnRkYWFnV2tzUWk3MFZWL0FIT1U5TTRsUkNzZW9IcXUxcUNhQ0tV?=
 =?utf-8?B?RUZObHlMTkRGbkl6T3dWNFFjRjUycnJPR0hodG5HSGdQaVVWZ015M1VXSFR3?=
 =?utf-8?B?ZTg1d3pKRExKUkdZNTAyUzlxdTdBbEwxZzYyZzhQU1RvYWZodVlGNnpXWmk4?=
 =?utf-8?B?UG1JQ2txZnA5RVZkL3FGaUx2N1Z4TVNhQXpJUnJsd3g0WVRxeldWMGdtb25J?=
 =?utf-8?B?SEFqQUd3NXQrbURqKzRobnJtdEtRZTFGbUJua0RMT0J5WWM1N1FSakpJeEJQ?=
 =?utf-8?Q?V9XfuC1VasTd2qieyyAYJqE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1582817e-2406-466f-92bb-08d9b0b0e1f5
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 07:46:40.2705
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9FujrDW2BkWBDc5Aq+gm0/BXg3WekKmJKZ6EfBx+Ejc84FBCpsxK/dRuHVtn3yNVlI6dWsAxlGtbwoKUV/RreQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4191

On 25.11.2021 23:49, Oleksandr Tyshchenko wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> Today I noticed a "note" when building Xen on Arm64 with
> aarch64-poky-linux-gcc (GCC) 9.3.0. It turned out that Andrew Cooper
> had alredy reported it before [1]:
> 
> mem_access.c: In function 'p2m_mem_access_check':
> mem_access.c:227:6: note: parameter passing for argument of type
> 'const struct npfec' changed in GCC 9.1
>   227 | bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla,
>                                   const struct npfec npfec)
> 
> From the explanation I understand that nothing bad actually is going
> to happen in our case, it is harmless and shown to only draw our
> attention that the ABI changed due to bug (with passing bit-fields
> by value) fixed in GCC 9.1. This information doesn't mean much for us
> as Xen is an embedded project with no external linkage. But, of course,
> it would be better to eliminate the note. You can also find related
> information about the bug at [2].
> 
> So make the note go away by passing bit-fields by reference.
> 
> [1] https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg87439.html
> [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469
> 
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> Compile-tested only.
> ---
>  xen/arch/arm/mem_access.c        | 28 ++++++++++++++--------------
>  xen/arch/arm/traps.c             |  2 +-
>  xen/include/asm-arm/mem_access.h |  2 +-
>  3 files changed, 16 insertions(+), 16 deletions(-)

It's all Arm code, so I'm not the one to judge, but I'd like to recommend
to live with the note or convince distros to backport the gcc side fix.
This definitely was a compiler flaw; see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91710.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 08:07:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 08:07:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232356.402806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqWGH-0004ti-02; Fri, 26 Nov 2021 08:07:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232356.402806; Fri, 26 Nov 2021 08:07:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqWGG-0004tb-TK; Fri, 26 Nov 2021 08:07:12 +0000
Received: by outflank-mailman (input) for mailman id 232356;
 Fri, 26 Nov 2021 08:07:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqWGG-0004tV-7X
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 08:07:12 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db02b0aa-4e8f-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 09:07:10 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2053.outbound.protection.outlook.com [104.47.4.53]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-38-Yj_RkDSmMraKVujRQeRfYQ-2; Fri, 26 Nov 2021 09:07:09 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4847.eurprd04.prod.outlook.com (2603:10a6:803:54::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Fri, 26 Nov
 2021 08:07:07 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 08:07:07 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR08CA0020.eurprd08.prod.outlook.com (2603:10a6:20b:b2::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Fri, 26 Nov 2021 08:07:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db02b0aa-4e8f-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637914030;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=fObQzg7vV+qGsSkTeaEDu3xAdXwegYP7bqT4/fGJMKE=;
	b=OVY6TznvfdzIFhn3zlj7fNhJjwIMXcTrufWe0iuvlbVMD+UcQntmX1fVBr3akSdj6gBenu
	SYDzrKhafiC5hYKF3Iweyf1gNM4KoHjpdNa7HydGhtyp0sN2YgkH3iv3pl0+v54clKeMkn
	YcQc7LrVEh+xQjYPQrZ5NOBVKR3iML0=
X-MC-Unique: Yj_RkDSmMraKVujRQeRfYQ-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VZqTDVjFdpbEW64XeAUFRsMOqTQjfnbuvoEUc4PRJS/eE5UtEqJlIBecaYdMW0s8lPH2oD5ZVeNxXj7BTBDmhbJsNlmID+PyMESrawbZLLK/BXED09MjRkshpFeF4ExglFRjyQ+Ueo6PmkIV85RmfxVr6i3otNe5L8jySACM9N/zdfLovdaCffX1ESgMCQ4YqJUEzK2dFHseuNhwGPH+H6uuhVeDetyYcB9LV6UXxwZBd80V74nm2RABIFjA/HH5R+l2OdIs8cB9CFm99Kz3Ibln0h3f4ezUKGWG/3/IHG9Po3pxMi7GulZcmbleoKpX2xVBDaKlYFkxK+q/fUwAIQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fObQzg7vV+qGsSkTeaEDu3xAdXwegYP7bqT4/fGJMKE=;
 b=BsRGQYGLbN5cbHAx1QgLZf+uL7j6eRoOka6ozy+9WWr9KLGGBTv7oEAvljgcIjtRG83Ci7Q79R328M8g6RHZVVXZK+dRqOa9Q50Q7iahRQlSGVecqLo1ZbLv4bwaCoTJwOR3TF5+xg7v9WWPgF8R4VjKzuT9RWOGyRaA9hb3ytDnNbFnvaTOWyMbgcEPLIqXE38KI3igSkS8/0y29dk713H0zfOi4Z1gGyeOWB76qkIHosGkk/nrt0GZRVpBqEGUJIw5S14o5Nl2izrBrx8dBFr+/RFgcmeiqBZT3cjwVP1PZgVG1LKdsKcreexgJILToLd+zxo+8a9ANJyv0aJIDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a01c4d48-0a87-65bb-0593-efa9826e0e4e@suse.com>
Date: Fri, 26 Nov 2021 09:07:04 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/2] gnttab: remove guest_physmap_remove_page() call from
 gnttab_map_frame()
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <4f54456b-e8da-f67f-b6a0-b5ce2cf12cae@suse.com>
 <8b73ff7c-4dd6-ff2e-14b9-088fdce0beb9@suse.com>
 <da172ad3-47b8-8e60-c70a-4275aeb9efd7@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <da172ad3-47b8-8e60-c70a-4275aeb9efd7@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR08CA0020.eurprd08.prod.outlook.com
 (2603:10a6:20b:b2::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 217c210b-9bdd-42f4-67e4-08d9b0b3bd12
X-MS-TrafficTypeDiagnostic: VI1PR04MB4847:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4847FE647E0A9A71CA8FBBA1B3639@VI1PR04MB4847.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CD17snTn9SqYR3GBV+y+i9qgypaly6LYl8KR1RFUujsPAXhA5RPTfF7q3Ser5+z6D7KCeT4WOwuLmfv/yy9seUsi1+vcr5utOxpOdy8+Fld9z//juraMfNf5t1pjpnefjOoRwPV0KOjWLBXDkCOx57e0c1sGtAR1jal5lWCCfwVDXo6HUjG8za8EbWQK92crDhGrU5uU3IEiD1uSiSUGFX/Jb05CcucbdNhTrND3WKPkLf04wOfmsunQ8MttmkWuWhyM4zEI1Im5abnfGAosr9mcq4N3q1pOEHfhykcgvuLoc9UxW7Suo4kfM7fqSgsav18bwuJhzbRnDRTy6iJrWXFXH+fRvC2BlcDLdpIwL/3eo03v13pzdXEkBUxtRH8LqP8wdMp/6G7TKMHbvlwN6pWrhAc6lIL3kXtVRaruWqJm9CTQkarEP8SIKzMJ067lVm+DykYwZ0bax0dC5Nw0i3/BkfgjhW4Qb5iQ7YiqpR7KIGObRIR4J0QzifevkN86dS7Aggz8GKvU4bW2vkaqhHiDBT+9cIN9OAYnr9ddmp70zlpOOdQM1bOzycVloF8izmELNZGDB6m9J6qDrSkS9O+lHkLGX6P1BcZ+WMcWS3lLUnZhzg2gCzyAmPmsZlai79MzG7lFn4/SdtwZpAi1de22KHA0xUDnFECjWNcZ7N8CqZxSg9Ik+tAT8pnFNW+DPx+4pdWstxbA/bv+9gn+ZRzo6u8kSrbNAvgEPaqEP9U=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(66946007)(16576012)(5660300002)(6486002)(8936002)(2616005)(53546011)(26005)(36756003)(8676002)(66556008)(4326008)(54906003)(186003)(31696002)(316002)(38100700002)(31686004)(83380400001)(66476007)(6916009)(956004)(2906002)(508600001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NVNRM2ZrV2M0RXY4WFJpVVV2L1E1bFNUbDdEYlJXdkpJcWVwdDgxdG1zdDNI?=
 =?utf-8?B?ZkNTNzlJNWsvUkhhWWRvb0w4enZtSTdQZmE5MUdFTndtVTF3Z0oybzZQME9Z?=
 =?utf-8?B?bkEvUUdzaXlGRmZ5a2Q5NEVnM3JSVFN3eS9jL2gzRGZoQmNldjcwakFxbmR2?=
 =?utf-8?B?Y1p0VktCcmVOeXZjdHJsRjk2Mk5xZlFIZTBBckFMTk44WXN3cUtuTkxvTDJO?=
 =?utf-8?B?R2MvTUw0SE11enQ1c0JsczlNOTBEWlpFZVdXV0xGa2VyK3U3enBPVW5OQTd1?=
 =?utf-8?B?ZzdtL0xIS3dXOEFWai9kcGxJdW43YlJpV1hlSmJMUEVOUHp0YU5iY1dONnda?=
 =?utf-8?B?UGhmaXd5MThxS2ZwNnVBTXBxOCtZSUhxQXVUSEo2Rys0cDhZVWNxMVNwaWtR?=
 =?utf-8?B?Z0JmRXhCSHBwYlFHUjA2VlRjaXJmenN2VlFXOGc5dGxLbE9oeFB5R0Y3UUZR?=
 =?utf-8?B?c1p3UXE1dzcyY2xTQWtKRlhIT0lrcVhPcks4WkNycmtvRmxuVi82NUtQcFpK?=
 =?utf-8?B?M204b2l0c05USVZKbm5xRzR5NGpkV3BBUTFEditVUThXbkgrWGg5b2pmaGFX?=
 =?utf-8?B?YXhrd1FGNGRUcngxZk5jdGNUWGxUSWZYNEFYTHBpYXhyK2p5R0xvL3AzNUYy?=
 =?utf-8?B?d0txYm9BR2svTCtxRm0xNHZIVVZKTWdoRFBZU1pZaDFtYWZ4RG52dGRxWUFT?=
 =?utf-8?B?Mk0xSlFVV2xLN1JuMkpsaG4zWGkrS3VPbk5SM3BzWnRwV2pFS1l5R0pHUjFr?=
 =?utf-8?B?VnRrSnFOd0hnWk9HLzB5ME1sei93WWNROHBjTmQ1dkQ2Qm9HcnphQmxCWFdm?=
 =?utf-8?B?THV0Mnk2MWk1V1Rac3BoQ1FobTgzSzUzQnJMK3J0YjlTMnlMeFdHeUtkd3ox?=
 =?utf-8?B?MHUrUDVra0cxc3hWMW9QTHFKNGZ0cEtDUnRONnRWSHV3cWhTVGlQTUtBeC84?=
 =?utf-8?B?VnFEdjA5b0x3TW5mak45djQyd1oyalhVbW9zamhZWm5Xcnd5aTJ5dDMxUDMv?=
 =?utf-8?B?RTVPOERETUtvdWFYMVBocDM3Rk9pdEs5NWgrQXpSOXR1dzN1Tm9rQngyYmdZ?=
 =?utf-8?B?QWhhcXVhM1M5WG9ydnoydzZuU0FNaXR3N2JpUzdtYmh3dnhCM1hPUkxwNlFz?=
 =?utf-8?B?ZXMxcEc4S3QrbENEZHpBcG43ZHRjZGR4TW9VY2dDVHFpanljRU4xYmJyMVZZ?=
 =?utf-8?B?Q0xqMzJSZWt6UjlrMDE3cnhwUXhBQzl4eStHUEVhczV3MnErS3hpMTBnZ1ZK?=
 =?utf-8?B?MTc5bW1Cd1ZDQW5KdDdLcDV1NE53MndJV28zVzQ4VVIwYXNUU0FZQ0RBbDNO?=
 =?utf-8?B?QmkyYnJnZ1NkL1h6QUNpYVpJV3kyaERBN2lRbHY2THU1QytDUm80dW9kMjFj?=
 =?utf-8?B?QVV5bC90SHlCVzh2K3Q5YWIrYUxPeFd5WWhrbk9vYlVLVmxIVFhLUWJKNlJs?=
 =?utf-8?B?TlR0aHFyTVp0Mnp0RG9mbkRxVFJ2ekpDbzREbkFORmZrajRpMmFzSDlzNllK?=
 =?utf-8?B?NXN0d1NzRE5sbW56aGcwYk9YYUYzcC9YTGMzVThFaUpVT0xFTlFEQmVqMlgw?=
 =?utf-8?B?ZFh6MVFZTmVMQ0h5T0FxbEc2ZlVocFhRSWRZNVBNa293VGxyMUxQc0lweEQy?=
 =?utf-8?B?UHk3bnJIeE4ya2crVS8yaG5yVXZnZWc5WmlNNUJHeC9rMUhnL21wODJLdTcy?=
 =?utf-8?B?bEVLL3ArN0I5VXVjdWYzNTgraTZrZVpEUDRFcW4rL0c2dWVyTVpPTG5KTmYw?=
 =?utf-8?B?SDlaMWFURFp5ZmNRKzZ1S3BtZXgwa1U2OHMzRDU4cWdzYVVPQ2tGcXRXM1Ev?=
 =?utf-8?B?Q3VScnMybURrSTliVEdGNnNKRkYvb0hmYlZEYXFSWWdYbnprcGtVMHlTTUJE?=
 =?utf-8?B?YnZHRUVTMjJMRjA5S3o4eUxpY0YwN2diVUVPYnpmUDZicXdNdzR2QTIwaVBp?=
 =?utf-8?B?dzdvTGFEMmpnYVNzQWY3UGpWUkNKOHBHVXRNemJ3Q1kwUE5BazU1M0RWb3Bp?=
 =?utf-8?B?L1lxdE9JNlkvcnM4WW1maUxHdldHejVpdlNPQTJkeVE5U1g3OXMwOFlnZXJX?=
 =?utf-8?B?TUxOalpmMElIQUhiY1NhTWhsNm1RSG9pSlljbmNsaVV2dWdZWTJBc3BjZ1J2?=
 =?utf-8?B?VExvVStkS29pclZ3ckhLOXRHU2FwaVFvUEhjMUV1bGdodWxOa09BTGxMbzdC?=
 =?utf-8?Q?50TenaznWe4ptfoWHIZXPMo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 217c210b-9bdd-42f4-67e4-08d9b0b3bd12
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 08:07:06.9249
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ja4wzwxWysI14uXAtXX4NPogMRO+Bx76hvrgjXfpNczIDNaPW+mqgj0bZkYzZHDIKBjTs+iOLb0Yig8n8+7ZKw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4847

On 25.11.2021 17:37, Julien Grall wrote:
> On 13/09/2021 07:41, Jan Beulich wrote:
>> Without holding appropriate locks, attempting to remove a prior mapping
>> of the underlying page is pointless, as the same (or another) mapping
>> could be re-established by a parallel request on another vCPU. Move the
>> code to Arm's gnttab_set_frame_gfn(). Of course this new placement
>> doesn't improve things in any way as far as the security of grant status
>> frame mappings goes (see XSA-379). Proper locking would be needed here
>> to allow status frames to be mapped securely.
>>
>> In turn this then requires replacing the other use in
>> gnttab_unpopulate_status_frames(), which yet in turn requires adjusting
>> x86's gnttab_set_frame_gfn(). Note that with proper locking inside
>> guest_physmap_remove_page() combined with checking the GFN's mapping
>> there against the passed in MFN, there then is no issue with the
>> involved multiple gnttab_set_frame_gfn()-s potentially returning varying
> 
> Do you mean gnttab_get_frame_gfn()?

No, I don't think so; I do mean gnttab_set_frame_gfn(). Its return value
directs the caller to do (or not) certain things.

>> --- a/xen/include/asm-arm/grant_table.h
>> +++ b/xen/include/asm-arm/grant_table.h
>> @@ -71,11 +71,17 @@ int replace_grant_host_mapping(unsigned
>>           XFREE((gt)->arch.status_gfn);                                    \
>>       } while ( 0 )
>>   
>> -#define gnttab_set_frame_gfn(gt, st, idx, gfn)                           \
>> -    do {                                                                 \
>> -        ((st) ? (gt)->arch.status_gfn : (gt)->arch.shared_gfn)[idx] =    \
>> -            (gfn);                                                       \
>> -    } while ( 0 )
>> +#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
>> +    ({                                                                   \
>> +        int rc_ = 0;                                                     \
>> +        gfn_t ogfn = gnttab_get_frame_gfn(gt, st, idx);                  \
>> +        if ( gfn_eq(ogfn, INVALID_GFN) || gfn_eq(ogfn, gfn) ||           \
>> +             (rc_ = guest_physmap_remove_page((gt)->domain, ogfn, mfn,   \
>> +                                              0)) == 0 )                 \
>> +            ((st) ? (gt)->arch.status_gfn                                \
>> +                  : (gt)->arch.shared_gfn)[idx] = (gfn);                 \
>> +        rc_;                                                             \
>> +    })
> 
> I think using a function would make it a bit easier to understand what 
> it does.

I can convert it, but it's not very likely that it would be possible
to make it an inline one. Not sure whether that's then still desirable.

> However... The naming of the function is now quite confusing. The more 
> on x86...
> 
>>   
>>   #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
>>      (st) ? gnttab_status_gfn(NULL, gt, idx)                               \
>> --- a/xen/include/asm-x86/grant_table.h
>> +++ b/xen/include/asm-x86/grant_table.h
>> @@ -37,7 +37,12 @@ static inline int replace_grant_host_map
>>   
>>   #define gnttab_init_arch(gt) 0
>>   #define gnttab_destroy_arch(gt) do {} while ( 0 )
>> -#define gnttab_set_frame_gfn(gt, st, idx, gfn) do {} while ( 0 )
>> +#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
>> +    (gfn_eq(gfn, INVALID_GFN)                                            \
>> +     ? guest_physmap_remove_page((gt)->domain,                           \
>> +                                 gnttab_get_frame_gfn(gt, st, idx),      \
>> +                                 mfn, 0)                                 \
>> +     : 0 /* Handled in add_to_physmap_one(). */)
> 
> ... it will end up to remove the mapping. I don't have a better name at 
> the moment. However I think this would deserve some documentation in the 
> code so one can understand how to implement it for another arch.

Hmm, perhaps. But wouldn't we better document the final behavior (i.e.
once the remaining Arm issue got addressed)? That may then also lead
to overall simpler code, ideally with more suitable names (if the
present ones are deemed unsuitable, which I'm not convinced of).

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 08:23:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 08:23:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232371.402839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqWVX-0007Id-NN; Fri, 26 Nov 2021 08:22:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232371.402839; Fri, 26 Nov 2021 08:22:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqWVX-0007IW-Jz; Fri, 26 Nov 2021 08:22:59 +0000
Received: by outflank-mailman (input) for mailman id 232371;
 Fri, 26 Nov 2021 08:22:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqWVW-0007I1-3k
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 08:22:58 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f1fb6ad-4e92-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 09:22:56 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2054.outbound.protection.outlook.com [104.47.12.54]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-5-UocoeCquPQasIgDCf4frsA-1; Fri, 26 Nov 2021 09:22:55 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3774.eurprd04.prod.outlook.com (2603:10a6:803:1f::28)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Fri, 26 Nov
 2021 08:22:52 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 08:22:52 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0096.eurprd06.prod.outlook.com (2603:10a6:20b:465::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Fri, 26 Nov 2021 08:22:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f1fb6ad-4e92-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637914976;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=G8PLDtEaCZ07sw1+bAhzo0tDp7fotvSi9aIUnv5i/+s=;
	b=bEBfpxJSebzfuup30CmOpA50NMsonXsxkrDKYrU5yTEY+FnAYCmDIDNElTia+fCx9NrbFc
	DJx3ZgUiwjF2PbuiRk0HT6Rsj86qc8qhiOCG2y9l1C/OVCUhSh+DvfpDsR2xmQ7bj0dajG
	FEL60SGnngDq0Vt6mWKEgrqYt+O6f3w=
X-MC-Unique: UocoeCquPQasIgDCf4frsA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dE/mEBRSAZXcqOPTFIQUxkDgKVfAgrdNSrX8an0EyIop0N/ku9J2kyUwygzBFja9rTm/ufqy7xa9rfb+wU+V0qbU+Afazag0ZKi4MahIIL93NtvdHR2LSTMwRIRWq6Wtr3Le9k9phC0y2QNx8OX8EN0r/EvYMS9+6aulzzmL+i4w8T0J3hrpmpny6Zh3gCszYFT/tCouGwuvW3a9eULRHI0m82SG0UeYM6i2tIWsYmG4khtTja/jO0xi4SG+eSgFlC9g68eTWJb7QrswUWylnnUgO9vCASu6LLzNrSRCY1GVeWXKTMc5wGwsb9yaWko7Q9lsCvb5zWuShWjzh8IKUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9BbUsQzpB3fHECP5Hg/6R37VQi4nMLuH8c4P8Nwp7L4=;
 b=cGLY2gfAtbxQ1lUfkKJu54qRBJowN6lVjJzQRLEYH/BBxNDSRnXwT1r8ViOpXThtb28zjI1QKLeNPRNPJmSsJ/c7uW3gwxdhiiH64MTcEElDpiw1mXQ43ynZHO2nIBn2UKrkZaya/Gyz+pgdXAs45haBLgCN9iFnoELSCT7iwDZCCfakJT5UCkobhxd3OVOkPJviI1V7RlXi8hfp46bx1bgpw2jxmP+vQthmUhXg3isKQrFQLXl4cn5NIX1iaz4oXXMpEJMHJkimOvTsMFvkUSWzlnYbrZq+8IJ1JIU2cgjvyP7umtxDlf8Ermq1z22BSCa+ncLcT8Lg5Sn9MbIwbg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b5fc926b-7fbe-b8fc-3271-2423b745b1d7@suse.com>
Date: Fri, 26 Nov 2021 09:22:50 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
 Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
 <YZ9oxXdnAEXaRtAD@Air-de-Roger>
 <00a83850-0aba-a66c-09ed-81204e8cdb3c@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <00a83850-0aba-a66c-09ed-81204e8cdb3c@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0096.eurprd06.prod.outlook.com
 (2603:10a6:20b:465::25) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 78693ecd-cd15-4c65-4791-08d9b0b5f0bf
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3774:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3774010B68A11BE41AC06B0AB3639@VI1PR0402MB3774.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hcjokhqt/4dyWG1zVFu9N5hrHLuhMbd6KwIUFrTvyjttC28d/mQNLhG+3V9rpKAZHkgwSVO0lsPT3MkrBSOmy59SAP2jywie83Rf0ffM61ttri9EfouzV8SlP6CrDEX1faD5ns1x52wST3eL2ZNhO+phltaEtSWXEDqU6Ngp6RLWSZoCSUDFYYl5F/U6GIuqTXSyWCQXcwQMO22/9WD4YLpKKLLUuze+cE38u1p7rLjxx9j8gDIxnpbee2wCOmA+MHtxKVddI2iedL529pwVa4Bk+oS22NV5j6VMxAiVPYnxHYZiJ2aSm3tSbGf1kg+VtUTgvieFS83YymSB4QOn6WNDdbdtKBVYW9gcPurepvlyGc8NkZyKvmxw7u0cGoT3B0T9Mot/OMPIRPj0QoMDKyChiEtpC7Qk0/2PQSDs/lWlHOp3I5P56yJV7QyUjxjXPgEgXl3Jm2Oo2C4I98nv89kTMhNyEXJBJ+3NurwWpcuJMpJQO2Ggbqi0XYPyLaT2zT+DeVDviE+Pi8olKngzcnfeFcI610gx3mG4F63WJ73xEJyM7KFD8cHbmzfFsyzXaUoQMW6BmVCHGVJHXeR/O90UgDg+lVZLY72CfLlgohpGhc7JiXC2t5dCl1zjqKF/K6P51ow3h+XU0LswFno4roPoE2YOpUGXp+WRtFoemhT6oXUSEikEn+XnAXidViBKuNg3hiOGVj362s2YwW4qp91qpT0HNMM/HjX1BONfMNk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(6486002)(956004)(2616005)(54906003)(110136005)(2906002)(66556008)(66476007)(66946007)(316002)(16576012)(31696002)(53546011)(86362001)(36756003)(186003)(38100700002)(31686004)(8936002)(508600001)(83380400001)(5660300002)(4326008)(26005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?+pXYChmEMRY81kcNrKZHEkkJlx5IpRql1rel9FRMsUb7blsQpTJX07ch/Hbf?=
 =?us-ascii?Q?uRoxD2u8xmyssS8EjlBybeLHFtVu2LT4P+YI0ZGcCAnLEK3EhSTNM08aexvX?=
 =?us-ascii?Q?WRuI6NJAqO/hFPPjZPljZ/E/7d1B2u5nuced4nLxwbnJtFinEYenLG2xMVdO?=
 =?us-ascii?Q?xiAWaTqLt59N7YP2BxuL03cxMAIis2pARdQ0IQk2STX5aSGRScmYONhJAsDT?=
 =?us-ascii?Q?+5x+Q2pBihdAawWk8CORMaBoDH0nLYf7VEG1YLbZTO0unNL0o3C2VOYC9kAg?=
 =?us-ascii?Q?NdEGFsJoHiTUC4cQCAkS5M1V9IiPEU/XCccAzVQFeR+/FdmJQrtNKVKSL23x?=
 =?us-ascii?Q?KJ3Bp3Ckr7BEsxC4fJ2mJpEPr8wxIYFmvcDsig75AFmqdN/gxwkGKRNdQEzC?=
 =?us-ascii?Q?f/eu8hlMMhB5R7NoaOIISXIHZM031XP+LMcm18ajlyn4pvFsuXLVBduLyU9+?=
 =?us-ascii?Q?p4L9rIU3DO83lBXmIoO5RfQNYDG4TfAq2jzBea7e1ydqj4+vb+zAtxWj8aHY?=
 =?us-ascii?Q?0jmWohWCAAcN+dDHthPMlhdhmIN7+NBjxSEyUS0WrfY0t042By2wcVQ6Qjn6?=
 =?us-ascii?Q?5137P3qsECBVz3tCADU7h7mi7PxDm+vrJoQidL5K0CNUGKnfdkH3IPkYtiPS?=
 =?us-ascii?Q?OCu8ZpZO5eQrerBFxH6GcqzHMNK7/Oz/qk9i3TFEIPT6p0T+/EDsVXpdoJwX?=
 =?us-ascii?Q?4UKDld0kkS8UfjCcvXcCgXLggQGz9CLDi5X8iv3vykel89fGtV6JIjZ3Y2mw?=
 =?us-ascii?Q?9x9jF0X0vCvINXqc2vCaHaqE7Wj7ffdLJ6thGl5jGw45OSz2NM8HszkEoeWa?=
 =?us-ascii?Q?LSH8E1oBOc8IfjTESATvHdub04DOYaF5JF7xwAFhoNw4EgDvaAf4oQxExzue?=
 =?us-ascii?Q?aKtdQAhal1CDFiJOHaxSjWktkI4WYYotR9TgA6+MpjQc1Km/gcKnJE9a+sTr?=
 =?us-ascii?Q?THEbTFhKsiJfbkNN3i4vNpzR4nApvkTi1Ji+R199ROYjsACHHMjCTevZIzUU?=
 =?us-ascii?Q?E5eJJ2OpFmYqNeTPuMP/wut9OVEuXI8z3yhOVfnBrNP0zZWLW/xf87dRW2NW?=
 =?us-ascii?Q?Wzn/MlNoKZzuJvrmGT/V5FOdZGaZtGnZS5PcERvNC7TQIJFpHcIKFqAttmof?=
 =?us-ascii?Q?iFtcwj98E1csyjiw6v9BGtkssBRQtmp/7b8EQdk5ipm+Kh0EDTh9yB+K+YCQ?=
 =?us-ascii?Q?9EFXf6Dp/vlvKaqAF4nGcasbAIEndqqh2W3Zk09Rcoi5eyxo6BFo9KRUWQAf?=
 =?us-ascii?Q?JnjpobzHub+4kpJztb5dEx5mnZMqiXtblaZXaKkZdfRQxG5Q4GPpIVn/SaX4?=
 =?us-ascii?Q?sHckPgtOSpP4hoCtWyUm5hjPDq+mrcHR1mKSrkgfLz736N6TGu6WIz7uHOvh?=
 =?us-ascii?Q?3Zy3H/ft+OmZ5Hru4UWw/0dU6fen7SVOaZ1//VVRkF15sdQnzy/RDIBq2PAw?=
 =?us-ascii?Q?2BzKgPNODi3imXlY5SzzSU1h8tCb5YM/qk9eca3G1dWnuhH7au62PZM5tiBY?=
 =?us-ascii?Q?nnYR3afpilxXvr+OpiRWcVZ5YyFUW9WOpz/M1pZxCd23D58h45XUc8jBm3yO?=
 =?us-ascii?Q?tmvA/sVQC3CnMcIhqy+8YZk01jiWYZ1T486YN5+0WCbLiUYYeuY/1nW099H0?=
 =?us-ascii?Q?cRVWcKR79AxUZjLHRRrsONc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 78693ecd-cd15-4c65-4791-08d9b0b5f0bf
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 08:22:52.5301
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3qDJ9AwIH51yIapYQ3YMOkGdpSz4V1hATdAdne/tQH1wvh/iuOH9qZMbGdIZexMfPJsyImo9meT5wocUhG926Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3774

On 25.11.2021 18:28, Andrew Cooper wrote:
> On 25/11/2021 10:43, Roger Pau Monn=C3=A9 wrote:
>> On Thu, Nov 25, 2021 at 11:25:36AM +0100, Jan Beulich wrote:
>>> On 24.11.2021 22:11, Andrew Cooper wrote:
>>>> OSSTest has identified a 3rd regression caused by this change.  Migrat=
ion
>>>> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron =
4133)
>>>> fails with:
>>>>
>>>>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffff=
ff, msr ffffffff (22 =3D Invalid argument): Internal error
>>>>   xc: error: Restore failed (22 =3D Invalid argument): Internal error
>>>>
>>>> which is a safety check to prevent resuming the guest when the CPUID d=
ata has
>>>> been truncated.  The problem is caused by shrinking of the max policie=
s, which
>>>> is an ABI that needs handling compatibly between different versions of=
 Xen.
>>>>
>>>> Furthermore, shrinking of the default policies also breaks things in s=
ome
>>>> cases, because certain cpuid=3D settings in a VM config file which use=
d to have
>>>> an effect will now be silently discarded.
>>>>
>>>> This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as well =
as the
>>>> partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (which=
 added
>>>> one new case where cpuid=3D settings might not apply correctly) and re=
stores the
>>>> same behaviour as Xen 4.15.
>>>>
>>>> Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields accordin=
g to actual leaf contents")
>>>> Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies m=
ax leaves")
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> While not strictly needed with Roger having given his already,
>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>> to signal my (basic) agreement with the course of action taken.
>>> Nevertheless I fear this is going to become yet one more case where
>>> future action is promised, but things then die out.
>> I'm certainly happy to look at newer versions of this patch, but I
>> think we should consider doing the shrinking only on the toolstack
>> said, and only after all the manipulations on the policy have been
>> performed.
>=20
> Correct.
>=20
> The max policies cannot be shrunk - they are, by definition, the upper
> bounds that we audit against.=C2=A0 (More precisely, they must never end =
up
> lower than an older Xen used to offer on the same configuration, and
> must not be lower anything the user may opt in to.)

I disagree: For one, the user cannot opt in to anything beyond max policy.
Or else that policy isn't "max" anymore. The user may opt in to a higher
than useful max (sub)leaf, but that's independent. I'm also not convinced
older Xen mistakenly offering too much can be taken as an excuse that we
can't ever go below that. We've done so in the past iirc, with workarounds
added elsewhere. Older Xen offering too high a max (sub)leaf again is
independent. Max (sub)leaf requests from the user should, contrary to my
view when submitting the original change, be honored. This would then
automatically include migrating-in guests.

> The default policies can in principle be shrunk, but only if the
> toolstack learns to grow max leaf too (which it will need to).=C2=A0
> Nevertheless, actually shrinking the default policies is actively
> unhelpful, because it is wasting time doing something which the
> toolstack needs to undo later.

I agree.

> The policy for new domains should be shrunk, but only after every other
> adjustment is made.=C2=A0 This is one small aspect of teaching the toolst=
ack
> to properly understand CPUID (and MSR) policies, and has always been on
> the plan.

And this not being the case yet is getting too prominent for my taste
with the need to raise the max Intel leaves we know of for things like
AMX or KeyLocker. I didn't get shrinking done right; apologies for that.
But I continue to think that proper shrinking ought to be a prereq to
that, without delaying that work (effectively complete for AMX, partial
for KeyLocker) almost indefinitely.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 08:38:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 08:38:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232383.402867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqWkC-0000Sn-2f; Fri, 26 Nov 2021 08:38:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232383.402867; Fri, 26 Nov 2021 08:38:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqWkB-0000Sg-Vq; Fri, 26 Nov 2021 08:38:07 +0000
Received: by outflank-mailman (input) for mailman id 232383;
 Fri, 26 Nov 2021 08:38:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=liQ5=QN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mqWk9-0000Sa-HE
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 08:38:05 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a518cf1-4e94-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 09:38:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a518cf1-4e94-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637915883;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=2RM0Ly4xI0KUWuwtCGx4Log679I3QoUBBFrJtMVAMBU=;
  b=IctrhkpgGe8e+aTbRJ7nHOoQJ8MNNy2kXToKt9Z7HqmDJp9K15GZPvwe
   iT6r7y2TJjsVRPfVkIwOGnGC1W7DhGI0w5bJlDDcAPhOqOAxf0DdLyl6f
   y40Cd0NlzA1BJdJn4MrwfGPmGHLX9Ezbd0gq0uzW8hQGT9rAVyjtEdzcZ
   Y=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: Kht7KxNn02LP5h3Duc4rz/5ru6WPouh9EKCGXWFXOmBECN/R6pbz/V8YfWhW83m7fEyMf27cud
 BBmovsD7ZZljXMcMUd+bZeUM2WOu3S/A/MsNUwCn+qVCzV+9DNswvwcpwuGUUovMJ4YFm93w+Y
 RgBrPqt9l0yPE0TXUAtQi/+jfoiBmDWRvlKIsZpZ/cp5qV5GU666KlYd7MUWRmcXu+y0czPX+j
 BT/vzemPP01kot8dpFmFs4LlgYV/LZm8GvZTAQTlhdRYCqtp3x/Ph9xrybkbQ8ztljytL+ThG5
 LxbwOFR5/PhFYeUcStmr0U5R
X-SBRS: 5.1
X-MesageID: 58682505
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:VDV3r6DjtAwi0RVW/9Lkw5YqxClBgxIJ4kV8jS/XYbTApD0lhjQGn
 GsYWmrTa6rcMWH2ftl/OY+/8kpX6JXVy9M3QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX5400w7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/ug+LwZd68
 fB3n42PUCwDE5HswNoyXEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvWUtYUFhGpYasZmLbXhP
 uUfSj1Vcg3STz8MIlM9Grkbg7L97pX4W2IB8w/EzUYt2EDMyCRh3b6rN8DaEvSaSMMQkkuGq
 2bu+2XiHgpcJNGZ0SCC8H+nmqnIhyyTcIMNFpWo+/hymlqRy2cPThoMWjOTo/O0l0q/UNJ3M
 FEP92wlqq1a3EWuRYijdwaiq3DCuBMAM+e8CMVjtlvLkPCNpV/EWC5UFVatdeDKqucHfz50k
 VSwuunDFAN2m5e4dVLFyJib+Gba1TcuEUcOYioNTA0g6tbloZ0ugh+ncuuPAJJZnfWuR2iun
 mniQDwWwuxK0JVVj/nTEUXv2mr0/vD0ohgJChI7t45Pxidwf8abaoOh8jA3Bt4Qfd/CHjFtU
 JXp8vVyDdzi77nRy0Rho81XRdlFAspp1hWH2jaD+LF7qlyQF4aLJ9w43d2HDB4B3jw4UTHoe
 lTPngha+YVeOnCnBYcuPdnuW5p3kvm8S4i+PhwxUjaoSsMqHONg1HszDXN8Iki3yBR8+U3BE
 cvznTmQ4YYyVv08kWveqxY12r433CEurV4/trigpylLJYG2PSbPIZ9caQPmRrlgsMus/VWEm
 /4CZpDi40gOD4XDjtz/rNd7waYidiNgW/gbaqV/K4a+H+aRMD17VqKKn+p+I9cNcmY8vr6gw
 0xRk3RwkTLXrXbGNR+LejZkbrbuVox4tnU1IWonOlPA5pTpSd/HAH43e8RlcL852vZkyPIoH
 fAJd9/ZWqZESyjd+iRbZp749dQweBOujAOIHiykfDlgIMIwG12XoofpLln16S0DLiurrs9i8
 beu4RzWHMgYTAN4AceINP/2lwGtvWIQkf5ZVlfTJoUBY13l9YVncnSjjvI+L8wWBw/Ewz+Wi
 1SfDRsC/LGfqI4p6tjZw6uDqt7xQed5G0NbGUjd7Kq3anaGrjbyn9cYXb/RLz7HVW7y9KGzX
 slvzqnxYK8dgVJHk4tgCLI3n6gw0MTi+u1BxQN+EXSVM1nyUuF8ImOL1NVkv7FWwuMLohO/X
 0+C94UIObiNP8+5QlcdKBB8M7aG3PAQ3DLT8e40MAPx4youpOiLVkBbPh+tji1BLeQqbNN5k
 Ll54MNGuRaijhcKM8qdinEG/muBGXUMTqE7u8xIG4TskAcqlglPbJG05vUaO31ThwGg6nUXH
 wI=
IronPort-HdrOrdr: A9a23:H14CFah112GFoTKdwsgsDIE+h3BQX0B13DAbv31ZSRFFG/FwyP
 rAoB1L73PJYWgqNU3I+ergBEGBKUmskqKdxbNhR4tKOzOWxVdATbsSlrcKpgePJ8SQzJ8+6U
 4NSdkaNDS0NykHsS+Y2njILz9D+qj/zEnAv463pB0MPGIaG52IrT0JcjpzencGOjWubqBJcq
 Z0iPA3wwZJLh8sH7uG7zQ+LqL+juyOsKijTQ8NBhYh5gXLpTS06ITiGxzd+hsFSTtAzZor7G
 CAymXCl+memsD+7iWZ+37Y7pxQltek4txfBPaUgsxQDjn3kA6naKloRrXHljEop+OE7kosjb
 D30lodFvU2z0mUUnC+oBPr1QWl+DEy60X6wVvdunfnqdyRfkNyN+NxwaZiNjfJ4Uspu99xlI
 hR2XiCipZRBRTc2Azg+tnhTXhR5wuJiEtntdRWo21UUIMYZrMUh5cY5llpHJAJGz+/wJw7Ed
 NpENrX6J9tAB2nhkjizypSKeGXLzYO9k/seDlGhiXV6UkYoJlB9TpZ+CRF9U1wsK7USPF/lp
 L52+pT5fZzp/QtHNBA7dE6MLyK41z2MGHx2V2pUCHa/YE8SjrwQs3Mkf4IDN/DQu198HJ1ou
 WGbG9l
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="58682505"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=k7wn/VGaHiBEFEhN2So8abG6wea3fh6qbr778YxedDQqMWexl0iulOPmvoaGJi8wF1e6arDSRJJqx5NEOTolcllodZCuJmVKubJsf+QwHdiXQ+PDKVuoA70d0DNGZM3vQiyTis2qKASX9vn/Qy/xEjvBkpYdX/Bb4kgq4NT1qaUV5G9m60HiarZGM4d5MONtszWbSk8RTDCck6IH4woQBDhlrelr4cqfs6/4mrAPlbdtilU3+XO0t3m9KNzpDHJB4h8MwUraKCfd1wIKeHe8KM6rLPzY1WsqSfPz+3kcDGfmg8szC5/q6JcuVxNXKMdPAuIkVetFJq+sqZAmjILb0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mpspua+0GLswF9Qn3jLXlfTXrpHhfRx8gki9ukV4AGg=;
 b=cKrjpmDyIdu2y38g9SOW5e7JnF0XyQ06A+yjyH5KRrigQ3hJ320QtDuUt9ce15Z2v5VuWKEAe1j2nCRPAuyXftOgeo313DTqEFejEuoNuFf7c9UIDtbtyuDv7VMkYt+zmrMyZUnvEborEpiRhmGoKxLKh9wvAAcNFQ+a6/XCpsfBAwq8WKhsKNQMlRTFPeE5LxernQch+wW7XYi73/loSgYmvze1H2cidOe57znOHt89Sf7dyogcb2Zs5m5hQNIEAZH2gtbTGUF1OTguzNwUZonGueoVyldpvLKO307hVh8TSbBpvFuibNNt/+c5LDe5Z0PsVj+ixQk4csS1KIiO8Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Mpspua+0GLswF9Qn3jLXlfTXrpHhfRx8gki9ukV4AGg=;
 b=LpWJ4Ojn2Q+Dh3NClN+qc/dBAkwulOcqVlmAs/+PEG2woig1Y8Xendz3v26ooxOHlqGkLtULPvJX0+bOph35biex6+K0gqwiXmo5pBt3KclpSHQri82dvbynT6xrOrMAWqHh/XVU/cBHCkQIClmV9qiUomUTpkM6fjR/M4aUO/k=
Date: Fri, 26 Nov 2021 09:37:48 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Xen-devel
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Message-ID: <YaCc3NI39cZZTTU9@Air-de-Roger>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
 <YZ9oxXdnAEXaRtAD@Air-de-Roger>
 <00a83850-0aba-a66c-09ed-81204e8cdb3c@srcf.net>
 <b5fc926b-7fbe-b8fc-3271-2423b745b1d7@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b5fc926b-7fbe-b8fc-3271-2423b745b1d7@suse.com>
X-ClientProxiedBy: MR1P264CA0018.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::23) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 85284b86-17f0-45a0-b97a-08d9b0b808a1
X-MS-TrafficTypeDiagnostic: DS7PR03MB5605:
X-Microsoft-Antispam-PRVS: <DS7PR03MB56057D0C2E34E30B2199C8218F639@DS7PR03MB5605.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: YRXREqXydB6wfMa3rt7VKzrZKeGIK81tU4XSV02GKkT//eHCCiQBNyMDePJcosfasncHD1Tc70sr3lSIzjLDG3MBFVGgk/rr4RCKSroLC5grHnIGut5VFYoeUYZt+M1uThmLXsVjkCwN5IXxtm5rUSjwaIAGBXWCv0JdVf8dE6QQhGPkapfH07utdXSvnmif3N6VcpiT6akGnDIgF21He2exC7ua1ky9wRJD8MDsJUVn7B4Otl7Z86TBs1W1sdojTLE3A5yY6+i9QdOFLQzuDzz0U8jlYIHkmyfm1d5tCCgHSjxHdIrwch1W0XSOs8cm8pxZeFtoZOmQljfdgVX5yqHoUy06yr0OXTXuqSrJG/1XI4nbmDcLi8HNH1v8ZIbL9RLLx34IlD2s1cnBm5AMbAJEKu2ML8etv4f6qsue2n2Y3tA98dI5NKPLbaoYzfbl48kSXjwndp5IFJok8q2OY6ClQmBT8HmrX9am4V3I2txVN/SJowYbuxUzbCfBdre1UiEDqc0SSwUOwwg+b8PEa21VAh9YmqAt7PI7yoYaiGlFu8XmJL8Y/hgIdn92pnSegn/+Feia7n2qCr0p3nHXan3a0YAN8iCeYp1Th6MLsckwv0GyqVIMLYWIUPRZDolmZQSb0+JaAtNqiX8R6CFOEw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(8936002)(33716001)(26005)(508600001)(54906003)(85182001)(83380400001)(316002)(66946007)(9686003)(6486002)(6666004)(66476007)(53546011)(38100700002)(8676002)(2906002)(66556008)(5660300002)(86362001)(956004)(82960400001)(186003)(6496006)(4326008)(6916009);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OXdmS21oQk9qQkdrbkxWd2FOZWVhcDJlWUxYOUVNbk9WTGhNY0pJTFhqT0g4?=
 =?utf-8?B?NHFScGlXeWNrVGt2dlc4M3Y5YW1HYTRGTVROUWovMzJzVG5HQU1HMTNPL0ox?=
 =?utf-8?B?NG5maTdrZ0xhWGlBazdqbk9DaUdwSGpiYXNOb1RGYm42ZHNoUy82QW1Qc2w3?=
 =?utf-8?B?c1VOMzZ0RElzRitqUS80TjI0dGJWa2t2N0N6c2JwbXhqVUt5U2g0VW8rTisz?=
 =?utf-8?B?eTdxQUlXMkJkckdTSWFHWTlFWWZsRVU5bnFBYlVNRnVFNzlBRjBaTHJFM2lz?=
 =?utf-8?B?WUltaUVGMmJYS3hEbVYrbXZLYXF5bFIyb3N2YWZRWHkvQ1lhTWY0cXRoNXcx?=
 =?utf-8?B?V0Y5Slo0bXdDbDk2cnNEeURlYUVOLzV0SHV1c1FzczhSVVgzZGNMWWhvYzI4?=
 =?utf-8?B?WGNyamdnYW1WWmV6cGh1OTkycEVKUW1RSUQxZDJvM2x1eG5YanhyYkMrRjN5?=
 =?utf-8?B?S0hzbjVicGlxQjljcTRKQk9jem5vNnVRSitxZGtQbXZwUWhBaWFqb2hQdmRR?=
 =?utf-8?B?WlpDSHlmRTEvcHJ1Ri9qV0xiYk54S3lIdTlmOFd4TXgyU3dZWHZqUy9OOUhE?=
 =?utf-8?B?NHVMbmYyYUJVaThjMGhrRTlEaC9XMmxXU0RsNTZJaDlqQ0xWRUoxNGRKWEhR?=
 =?utf-8?B?eEZJZVlWRlV4aThjR2FjaEh3dE83ZkNmbitLMG5OanUwUmw0eVZWSm1Qbm1B?=
 =?utf-8?B?cmJQRE84dUhkZkVIeDZrTTJZcFNtamxmZUtVU25VNlk0ZkpNTUk3eUV6WENs?=
 =?utf-8?B?Vk9KclN3enV2ZXZBb0RHTkJSdXFYdEJvMVVpekc1TURVTTcrTDl0UG1NaUxG?=
 =?utf-8?B?VmRKK3BWMHRzUzZPeVBtMDM0SUpyaVZqaCtxd3h0MEZDSXhKNDlCdllOVFBT?=
 =?utf-8?B?V1lzOFUzOUpyeXJRRms2SnU0SEhQUkhmMGRPWFl1VmlTeEdQUlh4S2FmdVhi?=
 =?utf-8?B?RW0rY1B2eHF5bjlGbjhSUy9wOU5HN2pPMXlPZTRFL3dCMytjNnBSdk82dWhE?=
 =?utf-8?B?RUVrcHcrekVqTEtlUXozM1kxRUhiWFBVR2k1WXY4YlZMQVVvVGZkSXJoalVW?=
 =?utf-8?B?RDFnYmhZL2N3UzRhbXVvcWwrd01Db1FBVDJ6Z3I0WDFwdDFDTTlQNFdkR3ZE?=
 =?utf-8?B?QlhPaFArTGNxRUNRVzBtbVhIb3pzYlJCWTVqbHRUeWcwYzFVdmtLUEhyMGFY?=
 =?utf-8?B?QnhqZ0QxWC8yMVJEemtpSkI0dFJER2h0K2ZUVStvL1kzSkE4MUpoUm5ZYkgy?=
 =?utf-8?B?akkxb0hIUUo3eGdXdzk4R3J4aFVzMTBSMDB4REFMZGRUU2Vyazc1U3IxYmxt?=
 =?utf-8?B?WlovS3dBcjR2VVN2ZFg3SllhSzhMNUJEa0I1LzdlS1V3UGJzNU0rVk4zTTlr?=
 =?utf-8?B?b0hrbTNLZDdEcmxCOE95U3hFazgxQlROLzFibzlxbElqUVJIZVJTZXIxMmJG?=
 =?utf-8?B?bE9qTWNqV1YrNWxJSEREN2U0UlFXQ1N6YmFORWUwSFNFeG1SdVNmdTVDYTJT?=
 =?utf-8?B?SGpJUThPNk00SWswdUM2OFRYMGJHbHErZEQreVc0eEU4MS92WGoyb2JLclFV?=
 =?utf-8?B?QlUvdXV4aWtPQnZVa3R0S0NKZUh1djEvcEsxRjVQUm0wMFhlMEl4S3lrUWtE?=
 =?utf-8?B?cGMreDRFZ05ocFZ5MWJVdjFnTTZ1cCtvMWVRdUlYYm1aQ010clFUaFMxNTVU?=
 =?utf-8?B?TmQrZWZrMmMvcDN5R1VxUkQ4R0RZOUluV3hEUlVrYXRzaWZmL1FaT3pBVUVw?=
 =?utf-8?B?S3pKN1ZWQWFKYU5XQk90SWFNV2UvS2VQc201TXhQR29EN082THpaN1NFQ2Vm?=
 =?utf-8?B?QkZZRlA2d2QvUFd4OU5BNkI2R2ZQWDV2dnQ2Tkt1SllUL2lqSEFwcW43MHF0?=
 =?utf-8?B?Z09EUndLLzVGaGhPRFRkR0NoS08reGxTa3drMkNtWnZNZXFzdjIxdTJMUVBv?=
 =?utf-8?B?ZVlpd2ljdHdEeXVEZ1hyNHcyVWFsUXByTHJOSXF1akNCTmljQTBXNzNkdmI5?=
 =?utf-8?B?QUFnYXBmUEJhM0lyanBCQ0c1M0VadjdMSkdSRzYzMEJ4SG1tLzYxQXh6QWtz?=
 =?utf-8?B?UW9MWVRiVXVkbUsvRkI5MS9XRmJQR2g3OFJmaXZDdjFEVWdwSXhVV291RmlH?=
 =?utf-8?B?Wms2cFlwOEhjU2s5dEk2bCtVeXhzbENMSDc0TkprTVNxcXBTaG1KWEJQZXBN?=
 =?utf-8?Q?spz7UBARxVLIz4A5+q8Ambc=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 85284b86-17f0-45a0-b97a-08d9b0b808a1
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 08:37:51.6327
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rcamTf+Q5pBvvFvpuBq2ge3gTsiHFwhlyWOZOI1ESC/J7Fb7VyZaEvaNXS6jTEpWRW+pLvZymjNPjWxIjYRjXg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5605
X-OriginatorOrg: citrix.com

On Fri, Nov 26, 2021 at 09:22:50AM +0100, Jan Beulich wrote:
> On 25.11.2021 18:28, Andrew Cooper wrote:
> > On 25/11/2021 10:43, Roger Pau Monné wrote:
> >> On Thu, Nov 25, 2021 at 11:25:36AM +0100, Jan Beulich wrote:
> >>> On 24.11.2021 22:11, Andrew Cooper wrote:
> >>>> OSSTest has identified a 3rd regression caused by this change.  Migration
> >>>> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Opteron 4133)
> >>>> fails with:
> >>>>
> >>>>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffffffff, msr ffffffff (22 = Invalid argument): Internal error
> >>>>   xc: error: Restore failed (22 = Invalid argument): Internal error
> >>>>
> >>>> which is a safety check to prevent resuming the guest when the CPUID data has
> >>>> been truncated.  The problem is caused by shrinking of the max policies, which
> >>>> is an ABI that needs handling compatibly between different versions of Xen.
> >>>>
> >>>> Furthermore, shrinking of the default policies also breaks things in some
> >>>> cases, because certain cpuid= settings in a VM config file which used to have
> >>>> an effect will now be silently discarded.
> >>>>
> >>>> This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as well as the
> >>>> partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (which added
> >>>> one new case where cpuid= settings might not apply correctly) and restores the
> >>>> same behaviour as Xen 4.15.
> >>>>
> >>>> Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents")
> >>>> Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies max leaves")
> >>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >>> While not strictly needed with Roger having given his already,
> >>> Acked-by: Jan Beulich <jbeulich@suse.com>
> >>> to signal my (basic) agreement with the course of action taken.
> >>> Nevertheless I fear this is going to become yet one more case where
> >>> future action is promised, but things then die out.
> >> I'm certainly happy to look at newer versions of this patch, but I
> >> think we should consider doing the shrinking only on the toolstack
> >> said, and only after all the manipulations on the policy have been
> >> performed.
> > 
> > Correct.
> > 
> > The max policies cannot be shrunk - they are, by definition, the upper
> > bounds that we audit against.  (More precisely, they must never end up
> > lower than an older Xen used to offer on the same configuration, and
> > must not be lower anything the user may opt in to.)
> 
> I disagree: For one, the user cannot opt in to anything beyond max policy.
> Or else that policy isn't "max" anymore. The user may opt in to a higher
> than useful max (sub)leaf, but that's independent.

Wouldn't it be possible for Xen to offer certain features to guests
that are not part of the native CPUID policy, and that thus might
require setting bit(s) on leaves that could otherwise be empty? That
also requires some explicit checks in Xen in order to assert that
leaves above the max one are empty.

TBH I'm not sure what's the benefit of shrinking the max policies, as
those are not to be used as-is by guests. They are an upper bound, but
should be tailored for each guest usage, and should be shrunk before
being used by guests on a case-by-case basis (ie: by the toolstack).

> I'm also not convinced
> older Xen mistakenly offering too much can be taken as an excuse that we
> can't ever go below that. We've done so in the past iirc, with workarounds
> added elsewhere. Older Xen offering too high a max (sub)leaf again is
> independent. Max (sub)leaf requests from the user should, contrary to my
> view when submitting the original change, be honored. This would then
> automatically include migrating-in guests.
> 
> > The default policies can in principle be shrunk, but only if the
> > toolstack learns to grow max leaf too (which it will need to). 
> > Nevertheless, actually shrinking the default policies is actively
> > unhelpful, because it is wasting time doing something which the
> > toolstack needs to undo later.
> 
> I agree.
> 
> > The policy for new domains should be shrunk, but only after every other
> > adjustment is made.  This is one small aspect of teaching the toolstack
> > to properly understand CPUID (and MSR) policies, and has always been on
> > the plan.
> 
> And this not being the case yet is getting too prominent for my taste
> with the need to raise the max Intel leaves we know of for things like
> AMX or KeyLocker. I didn't get shrinking done right; apologies for that.
> But I continue to think that proper shrinking ought to be a prereq to
> that, without delaying that work (effectively complete for AMX, partial
> for KeyLocker) almost indefinitely.

I have to revisit the patches I have pending for CPUID/MSR interface
cleanup on my side, but I think that the shrinking could be easily
done at the tail of that that series.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 08:52:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 08:52:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232405.402905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqWy5-00030g-SF; Fri, 26 Nov 2021 08:52:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232405.402905; Fri, 26 Nov 2021 08:52:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqWy5-00030Z-OR; Fri, 26 Nov 2021 08:52:29 +0000
Received: by outflank-mailman (input) for mailman id 232405;
 Fri, 26 Nov 2021 08:52:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqWy4-00030T-S3
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 08:52:28 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2df31af7-4e96-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 09:52:27 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-22-0NOKdvxGMZ-WEeCjIh8dhQ-1; Fri, 26 Nov 2021 09:52:25 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6477.eurprd04.prod.outlook.com (2603:10a6:803:11e::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Fri, 26 Nov
 2021 08:52:24 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 08:52:24 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0034.eurprd04.prod.outlook.com (2603:10a6:20b:312::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.20 via Frontend Transport; Fri, 26 Nov 2021 08:52:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2df31af7-4e96-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637916746;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Tq4Iu6TU2WBBJgZar0o5LA7gGdCE+7sOD8BU0E2L6KQ=;
	b=ZGxJHNkcNmUpPdhub2oxXg7DCzSaRAv6sTRGtJ1Jc/ein/VDnX4kOWoGR3igAuWdaHOjF4
	OfiXPfzSq+YEjNbkMH+zzWiXduZgC5bhY8HGmpe275cAG1zn5jCW+Hh6wLRkflxHagPDbr
	Fy2XTMLoCCU0CCNAtQCaZE6KjKuxBQA=
X-MC-Unique: 0NOKdvxGMZ-WEeCjIh8dhQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nY1iNA2xxuN9FbVShKeZjXlidszfTCkFtKPdDTL92CjGDQ1EBqRqdQH2H/PHQtEhNDrgfyJVwFlfsE3j7tAkQ4lotsgZkkUQUx2qbyMwMGoYXNE9N/2zU0YZcIK4bRm/1zbho3fCwaZP2E7ZDG85qF7gkVABG/I1qGn1hppEncpydAFXybI1r52ubCL2sLVlQ0oRCPaNI0oY+CekhL9A/91nz2l5VmygQhEYcwyPRMEXkkcZ4x0Gpb+V2vCuWtN540z1dEAvKwJk8Y6GtIH2UoW/OT1srz5SireU0Ndg2eOUeU3efJKQM1KQiLPjTU8Eo9/SGhOORaJk1HqxcHs1FA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=t4IKEDHkWkWd23BPhj3Uu/BlK16CTphgPcQLMZe07yE=;
 b=iOfpZXvSzrgtZNKz7tYcqdOWrG0BLlZxBC5f+X6+MZtw2wItZaN1tPM73l3+7Z60CbRwp1Hh5Bbnxl290LD9tLxFgXVIXxV5tdGeSAW9kA1msTwOHoCUmsWjpqjJhn0tRjZ4z/nOs5lTkqF/bis2uR5KqguV93Y5HEjM4yTRlwcA+ck9bEtXmYUjYDE0vQax8tjz2zyUyfeQz852uNafUQSQJ4Hrrpdf5boozEMKGBWmdo/h6Fvd4s1bPXxQcAMPKNWM4qTMahyU8Ta2FgaHxnwLMmDtdeDORAsEAHJOuFal45mCr2l8aEyTN++MigLBop4rebtZxVTCfo9iCQJPew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c5e14a4f-2c84-2ffc-9bdb-a38c503f1a1c@suse.com>
Date: Fri, 26 Nov 2021 09:52:22 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH for-4.16] Revert "x86/CPUID: shrink max_{,sub}leaf fields
 according to actual leaf contents"
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Andrew Cooper <amc96@srcf.net>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211124211152.1142-1-andrew.cooper3@citrix.com>
 <00c77026-1b65-c73a-b786-0e0b9d22e994@suse.com>
 <YZ9oxXdnAEXaRtAD@Air-de-Roger>
 <00a83850-0aba-a66c-09ed-81204e8cdb3c@srcf.net>
 <b5fc926b-7fbe-b8fc-3271-2423b745b1d7@suse.com>
 <YaCc3NI39cZZTTU9@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YaCc3NI39cZZTTU9@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8PR04CA0034.eurprd04.prod.outlook.com
 (2603:10a6:20b:312::9) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4b981d63-67cb-4aa9-945e-08d9b0ba10ac
X-MS-TrafficTypeDiagnostic: VE1PR04MB6477:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6477C6DCE6A0F0D4CF0A4279B3639@VE1PR04MB6477.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	T58UOf1LvNAvhQbq2G9n4QIQzc4jCdZzNl2Le5WIS4oCDg7eqnPOqh3/w1U8URL4Rx0N7vAltO92forYtmXXYiJccTBj38hIG3dx7llsC0sAByPimOhg4LXB7jEfKiBeYsIqt207U+cYj+6seH21brrVUQDh21D+0lqnYk+bYy3lQWeXA/lDLxh5gKlJafYKYB311ybSYF9PyARVwQRZuktbU/qdOOTbO3aVwwbMcIrSjHCJeGmLxvBILdFSkLo5XY/raHrJgI7iUF0AxUUsH1taUhe1+Q7kPm1Jzg+Ok0ndQzMNv3mAY4xlOsQwuccIhgOVztzaumyGqdHZA3P5+OND9CONGaeVtK2wuagg+5xjB+5TvENBStPhVeQcnL1Qkk7jcPGaFtWoV7QcdyrRaCvL12Q6pePIeWWM7GtisdTFKlklQHHSKxzfrd5PfAGv+EuuJQ7JJHSUxUFBwfC743Lv212Y2LQrqWSZ6rTJSrnRBpNeOaeKBlrUFKhcXkx85vUjiRAXeS1jFFM4Dwdzj7m8iOzn8k/PGGJdAmkqBx00sV6UVVKTsNFi7zfk/fIwAPKVHNvrUoQw2eEVrshYHHFxsXmqRxjuUzCLZW/LZvb8aGv1huz2n/iueaQ1wJQkzEeMJXEfKJgmyVJf9e18cEs6xD0Qrk4zOxcWdrC7pcEKAxEAikEggMdAUDgBH9MnRKZPIDgnzP+CC8vQwF+TegfxOo/Wt3RdWzqr5zPmr4E=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(6486002)(26005)(2906002)(54906003)(4326008)(31686004)(5660300002)(508600001)(66556008)(66476007)(83380400001)(186003)(66946007)(316002)(16576012)(53546011)(6916009)(31696002)(86362001)(8936002)(8676002)(2616005)(956004)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ugmd/jIvNPPO/JUOKpmIQyrK+9s31bdHZcMLjuELtAxxM+ufzwkWXeJGpBKm?=
 =?us-ascii?Q?Ald/LZE8AhzqwKF7vSnuHvxvR7THOxPoua02QAUp+X5/HZyqxoLXXNpw9CcU?=
 =?us-ascii?Q?8mSY5xyn4PfoFVNX1OJzG7ajXcv/EkVOQqRTTYDrlEHtnX1ghbzFSv2LCrni?=
 =?us-ascii?Q?yNCZ7yiD28CWnhMFJB3VfPeghxsUT/FcU/ZXGYHEtx2Bz7CjnGOkI/tbdk0z?=
 =?us-ascii?Q?9nd+NHUw1mV6sjzx8rcDS8c0nK/y+WH3MRgS54ejLh2FnlwGNeBv+xcZmQCL?=
 =?us-ascii?Q?0Y/Afpq43c/q5NYRBpHxx+PODbj9tuuZexLM2KcK5J050/VNlTcDappbwdUz?=
 =?us-ascii?Q?VxFUAkOE8iKipjo25Zx082tm3a6YFzCSMQG2PmBdLoRt2To5LMM/oaEQdcbU?=
 =?us-ascii?Q?SRIJIZeZBn8JjdGcwIq4rhgodETFsu38cf2g5Hjexn848cPnM3eY3kn+R0i9?=
 =?us-ascii?Q?UaLxQR6+O9cHg8MPpvNx85yKvWOE7OT+JeSWiJjnnKap+eD6lQD53THctvuy?=
 =?us-ascii?Q?qUNWbD31k+RxAknp3VqAYWh6UMj2BBDQZwrCYtAuSTKfohnYvhJWP/BCqiQm?=
 =?us-ascii?Q?HXVOoqkQKCHYwQbec5q+XDcrb4g5+FbaK3qAu/WbOM22kTUB+4sbafSDKEV2?=
 =?us-ascii?Q?vbroQ3dU8y7aZkz+UrpLQxU6yRhQXOJtmgHamhiJfEmR3rL57hUAuj0SdY4C?=
 =?us-ascii?Q?APLQ1uP4VSQXT/MzfCLDcHy9ZLhF4nAQB0x/Pz3bNUNXjA4NwA0G48iK455X?=
 =?us-ascii?Q?71ZfINpkblK9YJxSiIPSBvIOdKFDtdwU6UhzfMN9t7l6PReW0bTblRlPj+1i?=
 =?us-ascii?Q?woMEjZTK3Vp13Y0ZPIjt5dafjlFSgFPn9CMxlRJhyxCwr1ywRibWBzdrUkT9?=
 =?us-ascii?Q?ioUgbIPcANBmv5BpX7744cyGKYKc0db+UeiV+Iw3LRTbJsPQptdMBPzwpXCH?=
 =?us-ascii?Q?Z9NAEr2Rro4s2QJb19l0KYnxpYRoqZg5x1bsqstdmgKaZFS/1SLmSorAleR3?=
 =?us-ascii?Q?nXTKSNS4WeRsgxbEtuVLebcBSu9FmktHUHuDgTacPFy/vrKK3ZiuZ/SIEJsz?=
 =?us-ascii?Q?4weklUvUXqx2WnTRjIXGuFW/WZyTcj6r/PMoHhunRT0B5kR2gxIZXXuoNi7U?=
 =?us-ascii?Q?Z9FPgFkUFgtGWK9pKT6af1Bk1uZw+OgbwblR2WbHBNEkHyhNeluUH/9ToyeV?=
 =?us-ascii?Q?BaaWN82vFOXSkSQqbJGC4YWtOSOnaDKFghaW9tee4WSuYhZjNI8vgcB0jiT4?=
 =?us-ascii?Q?/DxIxXgecgBJXbOlDpkeq7j32WpCg4vYSI5ijDhY2AzEVKV810wTZ+qfllKu?=
 =?us-ascii?Q?b3+43MJaQv6z3BM6BnqHPurnnh8ZsP5kTMOiApaIs/uwcyb3LjQHQa1QuaiU?=
 =?us-ascii?Q?ecF5I64O5mEgB8hJ5j85HPhONTwPzrwXvr58uFZJL10P0SneARWV2DwNS8fI?=
 =?us-ascii?Q?zOYDsnox4QsDPDZ6hw/JvY9f7Z+5TFu7CZ7r0onFUjzvK89morkZfKyXt+F2?=
 =?us-ascii?Q?VpUf4TTAP2Wkab468kXqzfrZ9Q4CIxguHu5zsGkDpG452/Lq+uDl1v8pqOji?=
 =?us-ascii?Q?7h3j/moOHkaFj2WXg8bN9vZzFRRxWzni3NaqmRzSrMzvajBWGLUWEyJb8lUf?=
 =?us-ascii?Q?Naie/fYmgXGR0S/mvvzL93k=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b981d63-67cb-4aa9-945e-08d9b0ba10ac
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 08:52:24.0796
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cTyryRxDKh+BvlBHYaOg/m39llXDMih9ADDpNFeroCUVAQVc1qZG2XHye7anhwNzF0RygYXCLL65Fxf1NbjHzg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6477

On 26.11.2021 09:37, Roger Pau Monn=C3=A9 wrote:
> On Fri, Nov 26, 2021 at 09:22:50AM +0100, Jan Beulich wrote:
>> On 25.11.2021 18:28, Andrew Cooper wrote:
>>> On 25/11/2021 10:43, Roger Pau Monn=C3=A9 wrote:
>>>> On Thu, Nov 25, 2021 at 11:25:36AM +0100, Jan Beulich wrote:
>>>>> On 24.11.2021 22:11, Andrew Cooper wrote:
>>>>>> OSSTest has identified a 3rd regression caused by this change.  Migr=
ation
>>>>>> between Xen 4.15 and 4.16 on the nocera pair of machines (AMD Optero=
n 4133)
>>>>>> fails with:
>>>>>>
>>>>>>   xc: error: Failed to set CPUID policy: leaf 00000000, subleaf ffff=
ffff, msr ffffffff (22 =3D Invalid argument): Internal error
>>>>>>   xc: error: Restore failed (22 =3D Invalid argument): Internal erro=
r
>>>>>>
>>>>>> which is a safety check to prevent resuming the guest when the CPUID=
 data has
>>>>>> been truncated.  The problem is caused by shrinking of the max polic=
ies, which
>>>>>> is an ABI that needs handling compatibly between different versions =
of Xen.
>>>>>>
>>>>>> Furthermore, shrinking of the default policies also breaks things in=
 some
>>>>>> cases, because certain cpuid=3D settings in a VM config file which u=
sed to have
>>>>>> an effect will now be silently discarded.
>>>>>>
>>>>>> This reverts commit 540d911c2813c3d8f4cdbb3f5672119e5e768a3d, as wel=
l as the
>>>>>> partial fix attempt in 81da2b544cbb003a5447c9b14d275746ad22ab37 (whi=
ch added
>>>>>> one new case where cpuid=3D settings might not apply correctly) and =
restores the
>>>>>> same behaviour as Xen 4.15.
>>>>>>
>>>>>> Fixes: 540d911c2813 ("x86/CPUID: shrink max_{,sub}leaf fields accord=
ing to actual leaf contents")
>>>>>> Fixes: 81da2b544cbb ("x86/cpuid: prevent shrinking migrated policies=
 max leaves")
>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>> While not strictly needed with Roger having given his already,
>>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>> to signal my (basic) agreement with the course of action taken.
>>>>> Nevertheless I fear this is going to become yet one more case where
>>>>> future action is promised, but things then die out.
>>>> I'm certainly happy to look at newer versions of this patch, but I
>>>> think we should consider doing the shrinking only on the toolstack
>>>> said, and only after all the manipulations on the policy have been
>>>> performed.
>>>
>>> Correct.
>>>
>>> The max policies cannot be shrunk - they are, by definition, the upper
>>> bounds that we audit against.=C2=A0 (More precisely, they must never en=
d up
>>> lower than an older Xen used to offer on the same configuration, and
>>> must not be lower anything the user may opt in to.)
>>
>> I disagree: For one, the user cannot opt in to anything beyond max polic=
y.
>> Or else that policy isn't "max" anymore. The user may opt in to a higher
>> than useful max (sub)leaf, but that's independent.
>=20
> Wouldn't it be possible for Xen to offer certain features to guests
> that are not part of the native CPUID policy, and that thus might
> require setting bit(s) on leaves that could otherwise be empty? That
> also requires some explicit checks in Xen in order to assert that
> leaves above the max one are empty.

Extra available features imo still need representing in the max policies.

> TBH I'm not sure what's the benefit of shrinking the max policies, as
> those are not to be used as-is by guests. They are an upper bound, but
> should be tailored for each guest usage, and should be shrunk before
> being used by guests on a case-by-case basis (ie: by the toolstack).

Well, if on an AMX-capable system the admin passed "cpuid=3Dno-amx-tile"
(or whatever better equivalent to mean "AMX as a whole"), I wouldn't
see why logic everywhere would need working with 30 leaves when 13
would do. But yes, beyond saving some effort the effect of shrinking
max leaves should be non-noticable in the guest visible result.

Anyway, the main reason I will want to continue carrying the patch in
some form is for the actual function, as that gets modified by later
patches. Where ultimately it gets called from is secondary from that
perspective.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 09:03:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 09:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232417.402934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqX8p-0004bv-66; Fri, 26 Nov 2021 09:03:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232417.402934; Fri, 26 Nov 2021 09:03:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqX8p-0004bo-2M; Fri, 26 Nov 2021 09:03:35 +0000
Received: by outflank-mailman (input) for mailman id 232417;
 Fri, 26 Nov 2021 09:03:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mqX8n-0004bi-Bv
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 09:03:33 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqX8j-0002vP-QB; Fri, 26 Nov 2021 09:03:29 +0000
Received: from home.octic.net ([81.187.162.82] helo=[10.0.1.193])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqX8j-00028u-HM; Fri, 26 Nov 2021 09:03:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=SNivb7ZRKcoDAkET0wJ+uoadWTWNJrW1fwZH36Mns6M=; b=xkytt+2dyFz5IyDwJX3wId3mEX
	yjK8w9ymmTG0V5mw/v4U2t43bW6L3rzkD/ODsrwbOUrW7p40bYLqYAQ3g9Z01QlIuui23vbbj+34m
	2qE4+1joBIe/Q0lE1Tz6ux/M7jFL82HReP4hA0iFGY7HKkgfEE96HVNjoJlh6/LjrMSw=;
Message-ID: <c2d312c2-c413-4e07-1c0c-8652cab40784@xen.org>
Date: Fri, 26 Nov 2021 09:03:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
 <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
 <b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
 <0c0e67f3-5e0a-f047-ca09-1cf078e6b094@suse.com>
 <71ef250c-be92-2b2f-0f07-ce32c17d8050@xen.org>
 <ceec5b56-65fc-8bb4-b9e0-1e16aea8c412@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <ceec5b56-65fc-8bb4-b9e0-1e16aea8c412@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 26/11/2021 07:37, Jan Beulich wrote:
> On 25.11.2021 18:13, Julien Grall wrote:
>> Hi,
>>
>> On 25/11/2021 17:03, Jan Beulich wrote:
>>> On 25.11.2021 17:54, Julien Grall wrote:
>>>> On 25/11/2021 16:49, Julien Grall wrote:
>>>>> On 19/11/2021 10:21, Jan Beulich wrote:
>>>>>> From: Lasse Collin <lasse.collin@tukaani.org>
>>>>>>
>>>>>> It's good style. I was also told that GCC 7 is more strict and might
>>>>>> give a warning when such comments are missing.
>>>>>>
>>>>>> Suggested-by: Andrei Borzenkov <arvidjaar@gmail.com>
>>>>>> Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
>>>>
>>>> Actually, any reason why there are some signed-off-by missing?
>>>
>>> I often keep the author's, but drop ones which clearly got there only
>>> because of the path a patch has taken through trees.
>>
>> This might be clear for you. For me, as a reviewer, I have to do extra
>> work to check whether you keeped the relevant signed-off-by.
>>
>>> These aren't
>>> relevant imo when pulling over the change;
>>
>> They are technically part of the "chain of approval".
> 
> But the Linux chain of approval is precisely what is of no interest to
> us. We need to approve the change ourselves; Linux having had it
> approved is merely a data point.

I can understand this point of view. But as I wrote above, a reviewer as 
to do extra work to check you correctly propagated the signed-off-by 
(see more below).

> 
>>> I could as well take the
>>> email submission as my basis, after all, where just the single S-o-b
>>> would be there.
>>
>> That's a fair point. That said, you took the commit-as-is from linus.git
> 
> How would you be able to tell?

That's easy. You wrote in your commit message:

[Linux commit: 5a244f48ecbbd03a11eb84819c5c599db81823ee]

That's indicating you used the Linux commit rather than the one on the 
ML. So I will tend to diff the commit and the what's different.

> 
>> so I think we ought to keep them.
> 
> I disagree. And I'd like to remain consistent with what I've been doing
> in the past.
I actually tried to find the original submission but failed. I didn't 
look for long though...

Anyway, I think it would save time for everyone (you had to manually 
delete signed-off-by after all) if you just copy the commit (including 
all the signed-off-by) message as-is.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 09:13:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 09:13:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232429.402963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqXHt-00067v-AO; Fri, 26 Nov 2021 09:12:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232429.402963; Fri, 26 Nov 2021 09:12:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqXHt-00067o-5p; Fri, 26 Nov 2021 09:12:57 +0000
Received: by outflank-mailman (input) for mailman id 232429;
 Fri, 26 Nov 2021 09:12:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqXHs-00066w-HR
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 09:12:56 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09852fb3-4e99-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 10:12:54 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2107.outbound.protection.outlook.com [104.47.17.107]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-25-QaZtwy2ENyK8sCRlPfSbOg-1; Fri, 26 Nov 2021 10:12:52 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4190.eurprd04.prod.outlook.com (2603:10a6:803:4b::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Fri, 26 Nov
 2021 09:12:50 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 09:12:50 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0107.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::48) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.20 via Frontend Transport; Fri, 26 Nov 2021 09:12:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 09852fb3-4e99-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637917973;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=gw2hrgeYlKUPfTP2qHG+X2+y7piKO4xjBha0E/QOFiU=;
	b=DPBz1aF6QVG2iAMyhVlfpPoVZzLACdxbL82OXCtTXOq2uUia4g4Ma17XhzCjGIdW0y/B90
	JXZqFAyNN4X5vVGu1AiY49GHQvZHGzPTnBtvXNnGRv/sQShNoshZdm7Yuzpn+7kRvNe3HO
	v4jumglhq15GK0Okn7ARC4rFgRwIBrk=
X-MC-Unique: QaZtwy2ENyK8sCRlPfSbOg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=akuAIIc+fAOLwtRlPJz9yg4UYSXv2l2I2m8FIxalsaLH3Ml8yEDVDYuFSrxrl50rWG1lbet4jFElevEtY0t+a22g0rr7uvhlCPAg0kzkcWtXpWVoTi0Rpop5fSAGNaBHTVJuEX9s2BSOjdII++bKtWCL41WdvA42aeZGA0nvOQ7q/Za1aydsyWJmrCHr0ZkQR+zYy3y3Rg7Z+/dsk+ff4YCVYolnjAEFxePCBE//TWbYhjRBcck5YL61rjIfMAkAXx2Qjr7oISN4Y/bS9NS6B2Ga/tpk25U2/nSHsmuzlz40GgR2SzFYV2iiCl1ywEKTiorh2s0nNg/zZTwNT6G6Vg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gw2hrgeYlKUPfTP2qHG+X2+y7piKO4xjBha0E/QOFiU=;
 b=TQd3Hqu3fJ1BeajYtqY/JUeeRuikNfb4O8n/VZN/BQRynLYZxb/7tKXH0gLn3+U4XjpSmmqg0q0M1e3ZXpHsN8J4voA/pU3IrY26fO8Eav3IgYfMqJKW6D7ih/c3QzkprAp4QDgySzduzwmK8N5dSHQeS0sKwtTjXpnXH40lIegh3C4zX4tKdk4naNapKDO/9t3S2rjgGvP3PyoVzbNwTFJw/sEDDwCVbj5LTQ9JNDmrOkgayyFgIagdKI04rFyJphyb9OWOwmCjtvysfLRofoB2kGNNfS89Ddgs7VT9yER3upTYDQNk5oIQ/3YL8pbLlcPb0a9tj+Yv9at3hBTm6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0b808ce0-23a2-65ae-dfb3-b167d5565b31@suse.com>
Date: Fri, 26 Nov 2021 10:12:49 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
 <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
 <b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
 <0c0e67f3-5e0a-f047-ca09-1cf078e6b094@suse.com>
 <71ef250c-be92-2b2f-0f07-ce32c17d8050@xen.org>
 <ceec5b56-65fc-8bb4-b9e0-1e16aea8c412@suse.com>
 <c2d312c2-c413-4e07-1c0c-8652cab40784@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <c2d312c2-c413-4e07-1c0c-8652cab40784@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0107.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:8c::48) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4b103857-cfa6-4b75-ab28-08d9b0bcebb9
X-MS-TrafficTypeDiagnostic: VI1PR04MB4190:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4190D4CBB4AC3E8DEA6376E6B3639@VI1PR04MB4190.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CFCYen7Imr/PC35ZgFuaDKkaTmgWfOgGf67ur+mzcgMn14BoY1mChvyAyMOl4pbAK8o9IECbxaV+UPhqgGVAlIdmwrdvm5nsMSgkNH30upmznzmmFxSipXTd08eZHTor7PJxtYaCj+wpn9H1kube1Tx1i9kZFQCiz9J6dX3GjbRdQZMvua7zl4giO3vqhKkCxhGcMhXmSnbIjV0xAsj2YGmI0uMO26cessnwXIyn99KT6E31ci/NrWGbMrBBGMwd2Xz5SmVoLZAV/rub52jqMj2W0Y33+Mnqdp8bZ+IPCKF4rymxJsO4/vvm2PO2v8eEPe0GAGqo0sxFA9nzKehZZzf2GyX96nOsfF4yB/XPztKZSyGPSxdteP/si/tUWpdWr/7/qKQKa3qvdfIGPxT6UtDM5YZcScl5w20rJpwaBsrQ5EpnPcuHKjtrZN4zH7CTMMG3hFQWAGWoP/tSnnV2PNjXrzZzpDCCoz/CEem0wolb5FWVxSyVi8r7Oe+0PbDppK2sanWAZP9NcvDP8FnR5OgeC++ZXJ15LNtwATwkKcU9o3g5tko84MjCL15f61fkNXl5SyG9e5F2kannHIbs/sucJy9t/a58d4G4mBFydyAX+N+Fg5yTkemwhhkOMcOF9+Syzdhpu2W07Tl1tWdcLMR6nk3QwI/2VkrZSV0KATzWdD+0yrsxL9xzhfGN/nuxapZhTSEgsB0whZwvxxPChu82I1V6f9CMG/F5g1Vpzd8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(2906002)(36756003)(8676002)(316002)(508600001)(5660300002)(83380400001)(16576012)(86362001)(8936002)(4326008)(186003)(26005)(53546011)(54906003)(66556008)(2616005)(6916009)(31696002)(31686004)(38100700002)(956004)(66476007)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OEhPK2dScEZjU2FyMUtqdWVFTVdGVWRqMWNYVSs3ZUgzY2gyNUl6cmtVRjZu?=
 =?utf-8?B?NitLcXRTdUx4a3NXR0NsWmN4dW5QKzI0T1ZPMHV0YTAyLzlVN3VpankvK05p?=
 =?utf-8?B?OENmMU5GMUlkK1B4dnFkcDUxbXhKSFNlUncwMy8xRnJUYXoyaEhPQjVYa25o?=
 =?utf-8?B?cjAya2Y0NG1LbFBIZXY3MWhaaDdCYnhUQVVraXpjdm44OGJVTEdWY25NWFdv?=
 =?utf-8?B?MWN6WFl1RDU2SVBXQktYTDhFNkF0ODFmRDJNb2lkTHB4dmJxaWtDL3MwV3lk?=
 =?utf-8?B?K3J0NFAzcjUxS1JYb29QS1JOQ283R2o2eUNDYkF4dWR4RE5Ib2lNMzZrcG1M?=
 =?utf-8?B?RmJ1UGs1aXZKbUVKTnphRStnVFdoMjVmUjVRV3MrYm5hZEVQeDVTR0JSQWhr?=
 =?utf-8?B?bXNiZnZkSFdlcHVXQW1HeVFzNE1NNkw5M1NrOVBVdWQrbEkvak1EdFEyZExm?=
 =?utf-8?B?bkZuNHpyVCtkSEc2NUVaYWpscmx2c1RqRGE0TVJnaTJuNEVjZW5DL0dTYlpO?=
 =?utf-8?B?NmZCUTJiZjJIdTJNSmlTWDdVcERnWkNmQW4wS1dBcG82RDk5L2xUQTdyWkw2?=
 =?utf-8?B?Rk42N1RQYTFyVGVRZ3h3d0NTMmljRDFkNVdxUnV5SlhpUlZxZlZwTy83eFo3?=
 =?utf-8?B?aVF2OHhPT2ZZZmtVZUZkci9ncUtQYy9GczZJTk1XM3Z5S3lCa2Q0TlFvUUJi?=
 =?utf-8?B?Z20xcDZjbFkrNFZmeFU2VThLYVRoMkxGc0E5b2lrc2xhN1dHRm1USTd6RGVj?=
 =?utf-8?B?YlRRUG9raStYdmdsOEhreldGeTVmb2x6WHFUeHpLa3psVXFjaEFmeGYwYSsr?=
 =?utf-8?B?ZUhzYnpjZjQ4RzNEbzRjVFF5Z2EzUHB1WVpyM1RJM0tHQklTMWJjWWhUVzds?=
 =?utf-8?B?MUR4aHk3Ujd2NzVNMlBRU2xacWxNdFFCbmhYVUlJTEM1ZWo3YzNzN1p6akJ1?=
 =?utf-8?B?c3NCdVJ3Y1B2SThLSEliSyt3d1VrNldYREJTTXhaUmpUVzl3VktVVGVQR1kz?=
 =?utf-8?B?MlEvc2RGRmh5MWh1MnNuV2FBZFlQQlpsSUpsYlpHd0paM01zRDZndWEySGow?=
 =?utf-8?B?ZzdQOHF6SkY1M3dqKy85ZzF0RlRPbnpmamoraGorVWtpQWdkYnNSZW4zU1JR?=
 =?utf-8?B?MXkrWUhZTTlnc1pXVHFzRjN4bCtMWVdlaDg1ZHVTSXZhb3k3dXVCNG1mN2t4?=
 =?utf-8?B?Sk81L0ttOHBJa1Q2WWR2TU1abmFJSEk3TlJFblpmUml5MGhCSlB4N3JDeEli?=
 =?utf-8?B?M09RSE9icDlIbmg1T3AvbHZCZnAvUS9KcmVSK0pwdk9tQkdaV1lWeVBSWCth?=
 =?utf-8?B?RkdnTUdPQXQxV2xGWE9LbUdsWm8zZy9ES3R2RmIxZWRQK3JJcTZZRlAvTDVa?=
 =?utf-8?B?czNiOXZWVUJHMUdHcFRmSGs4em1FV1VtcU9NbUI1YjM2WjFLRGRRTVBVU0Nw?=
 =?utf-8?B?dWlhV3ROVzNsb3h2ay9JVEoyRmNqeTZHQmVRaFpGb1JUUUtueU9sdzRsM0xq?=
 =?utf-8?B?SmMyUjhDRUVmNWRzRkh4K2doNkc2bGdzT085MG5HT0pRMDl0YkY1VzA4WWdo?=
 =?utf-8?B?bEE0SHZ3WGtxd0RKNWZreXJSM3psS2hQNEsxazhsRmJFYTZwb0thTzFYMjY0?=
 =?utf-8?B?aEdmZitxZ0xDMFVPOXhEVlVpOENiMEpGc1RWdmx0Z0JkTWJwTDNHenpUcVVD?=
 =?utf-8?B?eVd6bHM1RVJaeVBsQU41NXFZQWVtYU5jQXFHVjBYZGRxMzV3Z09KY0d4elRW?=
 =?utf-8?B?Yk5XeVBmVmxDRVBzUDhUU1V3bTd2UG9mUDVKQWkxSkFhNEt2ako5bXhycjlK?=
 =?utf-8?B?Z2pteGZTK3A3T1hRMmNUcExsdGgybEkwaHRaV3ZudWkvbUMrdnROM215dmhj?=
 =?utf-8?B?bS9DUmRwRTNnNnU1ekVsamtzYlZ1cHdweFhXMmVKRWU4LzBrNjRjVDRJOWQ2?=
 =?utf-8?B?elIyVmtxaHlnVlhOWkZ6Z1g4WkRFS0RGekxPL0lNaUxLNXVIZVhReWUraVFx?=
 =?utf-8?B?bzBYL041ZGh4bDFUNnNCaU4xcHVjdytmbVlDa2tSUncvemNKNHFuaStIeFFy?=
 =?utf-8?B?bmx2MWhKQWFVbTEvU3dkK3hrajNJZ0tjU1c0R2hFMGRQNitET1VVRVpleVg2?=
 =?utf-8?B?K1p6c3lvcGdwcm1XOHFMYWVEUGJEL2RQSk1BZTF3VXdWSElMUnJieUJSanFF?=
 =?utf-8?Q?dnfRG5Clq7N77etnfHcDclE=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b103857-cfa6-4b75-ab28-08d9b0bcebb9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 09:12:50.6538
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Qt98ZV0uzP5QvKH418S3MmIRdJeR8GEkJnU8C8VtmJpT3YRXjEBEhqKa6panFHB+IxGTF6rkH6Ra0rXEqjv2rg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4190

On 26.11.2021 10:03, Julien Grall wrote:
> On 26/11/2021 07:37, Jan Beulich wrote:
>> On 25.11.2021 18:13, Julien Grall wrote:
>>> On 25/11/2021 17:03, Jan Beulich wrote:
>>>> On 25.11.2021 17:54, Julien Grall wrote:
>>>>> On 25/11/2021 16:49, Julien Grall wrote:
>>>>>> On 19/11/2021 10:21, Jan Beulich wrote:
>>>>>>> From: Lasse Collin <lasse.collin@tukaani.org>
>>>>>>>
>>>>>>> It's good style. I was also told that GCC 7 is more strict and might
>>>>>>> give a warning when such comments are missing.
>>>>>>>
>>>>>>> Suggested-by: Andrei Borzenkov <arvidjaar@gmail.com>
>>>>>>> Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
>>>>>
>>>>> Actually, any reason why there are some signed-off-by missing?
>>>>
>>>> I often keep the author's, but drop ones which clearly got there only
>>>> because of the path a patch has taken through trees.
>>>
>>> This might be clear for you. For me, as a reviewer, I have to do extra
>>> work to check whether you keeped the relevant signed-off-by.
>>>
>>>> These aren't
>>>> relevant imo when pulling over the change;
>>>
>>> They are technically part of the "chain of approval".
>>
>> But the Linux chain of approval is precisely what is of no interest to
>> us. We need to approve the change ourselves; Linux having had it
>> approved is merely a data point.
> 
> I can understand this point of view. But as I wrote above, a reviewer as 
> to do extra work to check you correctly propagated the signed-off-by 
> (see more below).
> 
>>
>>>> I could as well take the
>>>> email submission as my basis, after all, where just the single S-o-b
>>>> would be there.
>>>
>>> That's a fair point. That said, you took the commit-as-is from linus.git
>>
>> How would you be able to tell?
> 
> That's easy. You wrote in your commit message:
> 
> [Linux commit: 5a244f48ecbbd03a11eb84819c5c599db81823ee]
> 
> That's indicating you used the Linux commit rather than the one on the 
> ML. So I will tend to diff the commit and the what's different.

I don't view this as such an indication. I could have taken the submission
and merely have looked up the corresponding commit to provide a reference.

I think our re-using of Linux submissions should be indistinguishable from
their authors, if they were aware of and cared about our cloned code,
submitting their changes separately to xen-devel.

> Anyway, I think it would save time for everyone (you had to manually 
> delete signed-off-by after all) if you just copy the commit (including 
> all the signed-off-by) message as-is.

I don't think I see why you found it necessary to verify the S-o-b set.

Also note that, for things to be useful in our tree, I may also edit
commit messages in mechanical ways (e.g. to change file or function
names). I don't think you can expect a 1:1 match in any event. Review
of such submissions would normally mainly mean making sure that
everything was transformed correctly (besides the question whether the
patch is applicable to us in the first place), not that everything
matches up directly.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 09:18:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 09:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232437.402974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqXMh-0006pX-0r; Fri, 26 Nov 2021 09:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232437.402974; Fri, 26 Nov 2021 09:17:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqXMg-0006pQ-Ts; Fri, 26 Nov 2021 09:17:54 +0000
Received: by outflank-mailman (input) for mailman id 232437;
 Fri, 26 Nov 2021 09:17:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqXMg-0006pK-0A
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 09:17:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bbcfb4d1-4e99-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 10:17:53 +0100 (CET)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur03lp2050.outbound.protection.outlook.com [104.47.10.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-20-1DckpG9jOmakSd2zz2WAsg-1; Fri, 26 Nov 2021 10:17:51 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3118.eurprd04.prod.outlook.com (2603:10a6:802:a::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 26 Nov
 2021 09:17:49 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 09:17:49 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9P194CA0004.EURP194.PROD.OUTLOOK.COM (2603:10a6:20b:46d::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.23 via Frontend Transport; Fri, 26 Nov 2021 09:17:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bbcfb4d1-4e99-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637918272;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=oszTwVhiClHAKkG15YPzfXdQ55zZWzzemeeMNVhAdPo=;
	b=f3cLbnia48tcm2cJM8wcdomm9c8GFgCI0Tg6/AjT7BOz27pH3W6AM5p4kGAzNqYcG6dQfc
	MwbE7YEqV544exP5HjRKiXxvmK8qOijKzfBcWbhEL6yUD7uULgnqT8EqiiFSzpWtxShQAX
	6MQ3e3MMA6UWaXsWIPuxzOqvOm2TxZQ=
X-MC-Unique: 1DckpG9jOmakSd2zz2WAsg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fUP7FaDW2yC/ShUw/JpHiP+mhKpkw5ZWFNfmRAIVJYk6ffV4VhoO1QSWPhxFy/8esc/mkawg9UmPKVlO0whLiRQaMrI3/B9c30RAuGn8szv0h2mNffjvh9mGFWB3YeEZ92DT/8TxPd2WJXWmATGoG6DU5UQHDs9h+wSQqsINttn4Imuw+a853qSFbS3i6y3SjLgNOWtm0Askz6Hzlrq/ht6hNZ9/FThIF5inzMZ88c/y7xc3hD7M8OjMNIbAmFs/UTHwcYSbE7fIzqpj2WZbbqKylmzYLttad40AM1Buvfll5E3zssw4l1FgglTAPMTvMcatfy+USqWZBigce0E3fQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oszTwVhiClHAKkG15YPzfXdQ55zZWzzemeeMNVhAdPo=;
 b=PS6Q6IgMTLfSAfCRO8SsapfS1cZfdmlYcQ1wvbwmUrvvBcV1hQTI8SyQVRV2kQRE4ypifDxqzIzyJwGs1Gjb6z2yEEPPE95dg0IOpIGs/BxwosimkSkDsungAN8lKl/7eZoDDeMh0u735Xpzy6iOwuPOo0dYXEDiAxKgJOzVSjmHtS06LzsIsL5ZZEgnXzqQdSt/k9Zr0pmXA7WB8SWEAsDaNZJaiI2xeqAnD7jB1uXd42NeOMIoC4q0K786bGrF0wkFdY81t8JXzz1hLgt/p6G0nj9TBd7+QZ9H1PI0+Ona/MIvKO2F4Jc+YhH+34ciL06XdMavVWj0binBpCt82w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4afcdfb2-cdab-a019-7541-598917bc4592@suse.com>
Date: Fri, 26 Nov 2021 10:17:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH] public: add RING_NR_UNCONSUMED_*() macros to ring.h
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Manuel Bouyer <bouyer@antioche.eu.org>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Paul Durrant <paul@xen.org>,
 xen-devel@lists.xenproject.org
References: <20211126065547.22644-1-jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126065547.22644-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9P194CA0004.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:20b:46d::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d8e5e61b-5521-41ce-7584-08d9b0bd9dd7
X-MS-TrafficTypeDiagnostic: VI1PR04MB3118:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3118EE318F2BF8790D6F0C8CB3639@VI1PR04MB3118.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NTult9mCMhEp2kVOwgUOSOjb/1coIvnLObOTgqSl2GH6l1K9NDQNQwc1DXYXGKzh8gP8mFmsLrqp3iPZBjBS7pyieXTKUM7LN/lOG+4mDKrGrSpX9VE4cNuAzII5zSpX0feINT0HCGrIl/qWWeDnsSbLCBkOa7oK39/iGwEqgJ1Kua2TxNqH/XthVcU454EjNYUmq8BZ/lvq9wU/9HHznYRWT0PbauzAEgEBvqmiJbA9qUIMaXtcb2xzeIfoZjD/+842r3uN1XhsKDcUGCokzBm8GQxP8fJ4ZlzyOCwdB6hKccyQO7giyJSjqZqhSeMX6jpuFYbEJ5L5QFybonO7pXbAJOg68TwbbAmZQw0g7twbhAT45jY4rGkB4eYyLMd525RJFjFGcGxDF7waJ9GcnBJaZw+MRijZ/QFjDuACS86EjyCsUHrJcMaaPKnmKInK7O0ddXtzqVD1WfIH286n7eX8PrVuPEXsHvznCuh25QsrSJ9df3/1Bv9P+YQ5+euJ6DnSkfYxhJUstIfemGB4iQ/dCb57I9qGG3X/jBmtOAjmEJgmX+rrP8h+diahlDcryKq95k40JuVb4JyvApvakKOVkdaZ9Mdp9tPqI0KJusNLpe3pCLjczg1QVScjmSBh8SLwL8t/hw8LwvdAilGX6LyXo239AjeFqqZFrF9QmLjXp4q0YpX6BvJwuRGrdp9d/mmsBx6qmQsy/ltvOjAKkczN8OKtngaZCPIZZPm8Yzr28hb3QLM4yvI0mafjuayQ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(6486002)(956004)(54906003)(316002)(4326008)(66946007)(53546011)(26005)(8676002)(2616005)(31696002)(36756003)(37006003)(16576012)(6636002)(31686004)(6862004)(66556008)(186003)(83380400001)(66476007)(38100700002)(5660300002)(4744005)(2906002)(8936002)(508600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RGljaGdacTlCeFNDUXcvZ29iQk9GY3JydUM5RVVYTGtERWNWTVV5aU5GZ1JR?=
 =?utf-8?B?N0wwR3BYTHo4LzRzbVRyREJLSGNRNXp0Y3pGRlAvc1lUMUVoSCsrSmlYVzVX?=
 =?utf-8?B?VXlqTmhlZmdrTTNaUWtMUExUOUlmd0dILzNtdy9vTFdYZ3lYRjFHR1RJUTlW?=
 =?utf-8?B?MG4xSTE4SDN1Qi9DSXdjckkyMEFXUG9RaVlva3BQZHlZOE5OM015N1FSU2dO?=
 =?utf-8?B?RVBqeVdOeUxjQ3BBaUN2SFo3NUdxVE1kMDRtQnQzdHdGVWE2bFIycS9qSkJl?=
 =?utf-8?B?dGpQUlp3eTJad2tTRms3Wm9NdGJZMEVabTdTOXZFVEtWTm9TL1FmanpSQ0E4?=
 =?utf-8?B?dEpqTElNTHU0RHVsbkVuVGw0SEhwMEQvOXlaTVVsODZBaWJpVm1EYWlLWFRH?=
 =?utf-8?B?V1dDdXhCd1R2MzBqTlVTbG16cVROQjZxdEhML3hnQy9tcUFqUnYvQk9JRGFJ?=
 =?utf-8?B?VXNPVUc5elBwZnF6Yk56Y2UwWEkrUE5mSEQrL3ZEazhKOUszWHhUZjh5cmtr?=
 =?utf-8?B?K0VHWW1jazl4NkF1VnNHZkxRbTJBODJwSHdpdmYwT1JYVUIvd2FOdHNtL3RU?=
 =?utf-8?B?SU0zaUc3TkFzbi9TVERVYjJ2bWN6TmhabjVUdE8yUGdMZm4vVFNiejFkSGRh?=
 =?utf-8?B?dWY3OXRIZ0hSamxQMnR6UkdFSEZ4cDVnTE1rZjZzenZjTjNXU1dab0s0dThP?=
 =?utf-8?B?TkRoa2oyS2IrUldhOENHdVRXSFI0R1JMUzFNbUgzTEI1RUgzUVNNVStCdkFC?=
 =?utf-8?B?Sjd3ZHg1RDBLbmgrU0djMHBJZWpmT0lDa0p3MjlxRnBvbGZydGZZQVN2aDlx?=
 =?utf-8?B?aHB1TDkrQU5LM0U4ZEYvaE5QQ1U0U0lRTlZ4T2xCMk0zVTVVbEdVWWxJQ1Zh?=
 =?utf-8?B?bmR6Q3M5clVHTU5sc1hyczFYVjAwZ3FyZXVGeWJSaFppSytJb3huUmtvYkty?=
 =?utf-8?B?VVY1SlBnS280WEhvRVRxU0VoQnVsdDIyRWZqbDZLTDBNcWp5WlM0WktQV2JE?=
 =?utf-8?B?SnJoVTl5OG8rWk1HWFY0MFk4aTZKSFhEZGo0SGprRXUweXNRV0pIMEs2cFI0?=
 =?utf-8?B?bWFvckRMaGNZTDBWSUlTeEpEUC94TmlSVFI5QmI3WUNWaHFGeHZTamZPUTQ4?=
 =?utf-8?B?SURpUXRVbDBXQnR0QmtGVXlMZHFVd20vdHFKRkxlTkRuVXFCUm1KWXJobVds?=
 =?utf-8?B?VjFIZnNZTEdzMXE4WkZPMEVGZzlKMkZwQXVVRmxkYmZMZTdORXFieCt4aWpn?=
 =?utf-8?B?RjNtT0pLN2JhTnBCZDZQSEdOWDJRbTdVMHh2b2ZrZHRMVEJTdUVnL3RoYkVX?=
 =?utf-8?B?VHNvckx5enB4WFV4RHZnY1VjN1QyYWE3Y3ZtdWNYeUpGU05qeTAvYjlSRTlS?=
 =?utf-8?B?SjR5SHo1eTU0TzIvYS9vbGxwNlprVlprVnh4K092NU1DZ0JJMk1RdnRDQVJo?=
 =?utf-8?B?TlByeU5wamJEQVBqZ1VLdHl2VWNBbUJ5WEd4eHNpTnVJYWF1UkUvVmlBTTVw?=
 =?utf-8?B?ZUM3dWxlU0VNRFFld3ErSjh2WTZoL1g0R0lXd1YvemJza3hqbG0rdHI1K3M2?=
 =?utf-8?B?aVBGSGROT3BkVzZ1WGJrWUdlOU9iLzBhVGJ6WWtyZUw4b2hheWxRWTM5Tjdp?=
 =?utf-8?B?Myt2Ty8wVzBKWS9CNktkdFdhYTlESitKc20wa2Q2Sm9xSkVlVU9oZUJ6ekVJ?=
 =?utf-8?B?aDRrVGhJUHV6MmlBaW1uUjlmNTcvL1F6SEY5NGNtNWxmaWZ0T1NSbzlJcTdC?=
 =?utf-8?B?SU9xY3pjbW1LU2dYUmpkZkgrSlJsdVQ5MjQyM240RkZIMk1qNlJ4ZSt6UHZt?=
 =?utf-8?B?a09UYWR5UnV3b0NjN1hpdnZZVHR0bWtMdjdzSU5wclB4TUNQamI4MVJ3UHBw?=
 =?utf-8?B?MnRHTkI1K25kZ3RhYXJCeHZWSWFhT1NudXEvTy9XL3JUa09NenpxMERkSlZT?=
 =?utf-8?B?dWJCWk9ObVJ5WG9VeDRiUDVzSzZ0WW9VaExpSURjenlSL1NwelVPbVNlYXIz?=
 =?utf-8?B?NE1kc0dpOWNjTjY1VFNvOGNNSmorYTNDNGYyeWVEMkMxVGU2eWRvMlVHYmxh?=
 =?utf-8?B?NkdoOTNicitxSVRvUnJZaEh0UkgxT0xsRWszZW5ibzN5OS8wRlNCeHNkSmlV?=
 =?utf-8?B?T0I4dHJLZmd2ZjZuNlREZmVDZHgrSTRjeG1mSzhXdzlsK3hJdWVhNkxOSWxP?=
 =?utf-8?Q?LBoBBIWcpk2TkxvYDMqoQh8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8e5e61b-5521-41ce-7584-08d9b0bd9dd7
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 09:17:49.5095
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cHmTYzDKTpOjJC6n1CcmhfbEa3Tzarsvfj1lgat6m90bqJDyqOX/iVnkeeCqVA7SaSt39ZtH2qK7z7wOHLeW4g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3118

On 26.11.2021 07:55, Juergen Gross wrote:
> Today RING_HAS_UNCONSUMED_*() macros are returning the number of
> unconsumed requests or responses instead of a boolean as the name of
> the macros would imply.
> 
> As this "feature" is already being used, rename the macros to
> RING_NR_UNCONSUMED_*() and define the RING_HAS_UNCONSUMED_*() macros
> by using the new RING_NR_UNCONSUMED_*() macros. In order to avoid
> future misuse let RING_HAS_UNCONSUMED_*() really return a boolean.

I don't think we can go this far; consumers of our headers may choose
to do so, but anyone taking the headers verbatim would be at risk of
getting screwed if they had any instance of abuse in their trees. IOW
I think the original-name macros ought to be direct aliases of the
new-name ones, and only in Linux'es clone you could then go further.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 09:21:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 09:21:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232443.402985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqXQP-0008CO-HO; Fri, 26 Nov 2021 09:21:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232443.402985; Fri, 26 Nov 2021 09:21:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqXQP-0008CH-ES; Fri, 26 Nov 2021 09:21:45 +0000
Received: by outflank-mailman (input) for mailman id 232443;
 Fri, 26 Nov 2021 09:21:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8kDD=QN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqXQO-0008C9-2O
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 09:21:44 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 438b11e1-4e9a-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 10:21:41 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 637861FD37;
 Fri, 26 Nov 2021 09:21:42 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 290EC13BAE;
 Fri, 26 Nov 2021 09:21:42 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id r8gUCCanoGGvPAAAMHmgww
 (envelope-from <jgross@suse.com>); Fri, 26 Nov 2021 09:21:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 438b11e1-4e9a-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637918502; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=B2xRYrmkoHHoZx4GV6/uurVwkzkoQG2PWMZAbB3v8Rs=;
	b=rWAgmFqcFNNx2tdko+V6clnKGgNm1YT1iMNTMRDi9WPiQFd0DSYBociGDscftqdxNUlwSi
	gNHx38nON+BDLoJhMkXlmvSTcLamoiShLVhjgEPUxEBLyRp5CJe94fOeLgeTQMAJ6xHUxM
	SGaiGdfuRAih0TJTYLibQ6KZleIJio4=
Subject: Re: [PATCH] public: add RING_NR_UNCONSUMED_*() macros to ring.h
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Manuel Bouyer <bouyer@antioche.eu.org>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Paul Durrant <paul@xen.org>,
 xen-devel@lists.xenproject.org
References: <20211126065547.22644-1-jgross@suse.com>
 <4afcdfb2-cdab-a019-7541-598917bc4592@suse.com>
From: Juergen Gross <jgross@suse.com>
Message-ID: <66843af2-d653-39ef-504c-46342507faab@suse.com>
Date: Fri, 26 Nov 2021 10:21:41 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <4afcdfb2-cdab-a019-7541-598917bc4592@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="bOXcR9RXoDHdTNCU9Vo3Iz1hvHqISItCa"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--bOXcR9RXoDHdTNCU9Vo3Iz1hvHqISItCa
Content-Type: multipart/mixed; boundary="nyWnGDeCuGKssSIuXO8euLW4CqHRBtMa6";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Manuel Bouyer <bouyer@antioche.eu.org>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Paul Durrant <paul@xen.org>,
 xen-devel@lists.xenproject.org
Message-ID: <66843af2-d653-39ef-504c-46342507faab@suse.com>
Subject: Re: [PATCH] public: add RING_NR_UNCONSUMED_*() macros to ring.h
References: <20211126065547.22644-1-jgross@suse.com>
 <4afcdfb2-cdab-a019-7541-598917bc4592@suse.com>
In-Reply-To: <4afcdfb2-cdab-a019-7541-598917bc4592@suse.com>

--nyWnGDeCuGKssSIuXO8euLW4CqHRBtMa6
Content-Type: multipart/mixed;
 boundary="------------3385736B0DB33F8B7E8B77D9"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------3385736B0DB33F8B7E8B77D9
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 26.11.21 10:17, Jan Beulich wrote:
> On 26.11.2021 07:55, Juergen Gross wrote:
>> Today RING_HAS_UNCONSUMED_*() macros are returning the number of
>> unconsumed requests or responses instead of a boolean as the name of
>> the macros would imply.
>>
>> As this "feature" is already being used, rename the macros to
>> RING_NR_UNCONSUMED_*() and define the RING_HAS_UNCONSUMED_*() macros
>> by using the new RING_NR_UNCONSUMED_*() macros. In order to avoid
>> future misuse let RING_HAS_UNCONSUMED_*() really return a boolean.
>=20
> I don't think we can go this far; consumers of our headers may choose
> to do so, but anyone taking the headers verbatim would be at risk of
> getting screwed if they had any instance of abuse in their trees. IOW
> I think the original-name macros ought to be direct aliases of the
> new-name ones, and only in Linux'es clone you could then go further.

Fine with me. I'm inclined to add a comment hinting at that possibility
then.


Juergen

--------------3385736B0DB33F8B7E8B77D9
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------3385736B0DB33F8B7E8B77D9--

--nyWnGDeCuGKssSIuXO8euLW4CqHRBtMa6--

--bOXcR9RXoDHdTNCU9Vo3Iz1hvHqISItCa
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGgpyUFAwAAAAAACgkQsN6d1ii/Ey/K
4wgAhmFMEaUdVT27s1ZBA7MCytdIZYgqRd/eK7ZKo/nufdX0yuMxfNQ8AZf/4n1vZRKDmSfCKjGk
c0A+HRAOEOUYpLzVizvo5RMqAvhb3YtjQ0J1itlksuEf9CuamdVDHyfKuJMtaepGUHecNfTJOD81
brpFxCXFdxvGfIBXBXkPZKlevuiMxUWllZwRUi/y8NgnZbooDfWqG8i5QGtPrWpBYZx3WAneYgey
UdfYQW5Or301aLO7FYp2JWtL99lH3mR7JgakWoDf9NEBjj2FBE5BCAOjDk0SDSqkp9shDhYcWUIT
PjVZUKCPA6jQJ+47H05NDxQDhDCxhVyOaFwx5W0Xbg==
=zFYz
-----END PGP SIGNATURE-----

--bOXcR9RXoDHdTNCU9Vo3Iz1hvHqISItCa--


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 09:42:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 09:42:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232462.403035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqXk2-0002EN-OT; Fri, 26 Nov 2021 09:42:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232462.403035; Fri, 26 Nov 2021 09:42:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqXk2-0002EG-LC; Fri, 26 Nov 2021 09:42:02 +0000
Received: by outflank-mailman (input) for mailman id 232462;
 Fri, 26 Nov 2021 09:42:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LVBe=QN=oderland.se=josef@srs-se1.protection.inumbo.net>)
 id 1mqXk1-0002EA-ML
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 09:42:01 +0000
Received: from office.oderland.com (office.oderland.com [91.201.60.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18fc4943-4e9d-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 10:41:57 +0100 (CET)
Received: from 160.193-180-18.r.oderland.com ([193.180.18.160]:57478
 helo=[10.137.0.14]) by office.oderland.com with esmtpsa (TLS1.2) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2)
 (envelope-from <josef@oderland.se>)
 id 1mqXjz-00HNiC-Ec; Fri, 26 Nov 2021 10:41:59 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18fc4943-4e9d-11ec-a9d2-d9f7a1cc8784
Message-ID: <397d1973-2253-c97d-6767-f629a971e4f0@oderland.se>
Date: Fri, 26 Nov 2021 10:41:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101
 Thunderbird/95.0
Content-Language: en-US
To: amd-gfx@lists.freedesktop.org, Alex Deucher <alexander.deucher@amd.com>,
 xen-devel <xen-devel@lists.xenproject.org>
From: Josef Johansson <josef@oderland.se>
Subject: Failed to terminate hdcp ta during suspend on Xen
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - office.oderland.com
X-AntiAbuse: Original Domain - lists.xenproject.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - oderland.se
X-Get-Message-Sender-Via: office.oderland.com: authenticated_id: josjoh@oderland.se
X-Authenticated-Sender: office.oderland.com: josjoh@oderland.se

Hi,

I'm trying to solve problems during Suspend/Resume on Qubes OS (which is
running Xen).

What happens is that the resume works, but the screen blanks out each time
I type a letter on the keyboard and then returns again, then after a while
the screen just goes black.

If I boot the same kernel without Xen this issue is not present.

Running almost Linux tip with Xen 4.14.3-4 I'm getting the
following errors/warnings:

dom0 kernel: [drm] psp gfx command INVOKE_CMD(0x3) failed and response
status is (0x0)
dom0 kernel: [drm] psp gfx command UNLOAD_TA(0x2) failed and response
status is (0x0)
dom0 kernel: [drm:psp_suspend [amdgpu]] *ERROR* Failed to terminate hdcp ta
dom0 kernel: [drm:amdgpu_device_ip_suspend_phase2 [amdgpu]] *ERROR*
suspend of IP block <psp> failed -22
[...]
dom0 kernel: [drm:psp_hw_start [amdgpu]] *ERROR* PSP create ring failed!
dom0 kernel: [drm:psp_resume [amdgpu]] *ERROR* PSP resume failed
dom0 kernel: [drm:amdgpu_device_fw_loading [amdgpu]] *ERROR* resume of
IP block <psp> failed -62
dom0 kernel: amdgpu 0000:07:00.0: amdgpu: amdgpu_device_ip_resume failed
(-62).
dom0 kernel: PM: dpm_run_callback(): pci_pm_resume+0x0/0xe0 returns -62
dom0 kernel: amdgpu 0000:07:00.0: PM: failed to resume async: error -62

I have done my best to follow the source code
and my current analysis is ( assuming we follow 'Failed to terminate
hdcp ta' ) is:
The psp gfx warn (amdgpu_psp.c: psp_cmd_submit_buf) :
L491:        DRM_WARN("psp gfx command %s(0x%X) failed and response
status is (0x%X)\n",
L492:             psp_gfx_cmd_name(psp->cmd_buf_mem->cmd_id),
psp->cmd_buf_mem->cmd_id,
L493:             psp->cmd_buf_mem->resp.status);

Last to set ret (amdgpu_psp.c: psp_cmd_submit_buf):
L452: ret = psp_ring_cmd_submit(psp, psp->cmd_buf_mc_addr,
fence_mc_addr, index);

The line setting -EINVAL (amdgpu_psp.c: psp_ring_cmd_submit):
L2767:    if ((write_frame < ring_buffer_start) || (ring_buffer_end <
write_frame)) {
L2768:        DRM_ERROR("ring_buffer_start = %p; ring_buffer_end = %p;
write_frame = %p\n",
L2769:              ring_buffer_start, ring_buffer_end, write_frame);
L2770:        DRM_ERROR("write_frame is pointing to address out of
bounds\n");
L2771:        return -EINVAL;

The thing that leads up to this email is that I'm not getting those
DRM_ERROR in my dmesg. I see that they have existed for 2 years so I really
should have them.

Any clues? Anything I can test to add? printk's somewhere that should
help diagnose?

Regards
Josef

dmesg:
dom0 kernel: PM: suspend entry (deep)
dom0 kernel: Filesystems sync: 0.010 seconds
dom0 kernel: Freezing user space processes ... (elapsed 0.001 seconds) done.
dom0 kernel: OOM killer disabled.
dom0 kernel: Freezing remaining freezable tasks ... (elapsed 0.000
seconds) done.
dom0 kernel: printk: Suspending console(s) (use no_console_suspend to debug)
dom0 kernel: [drm] psp gfx command INVOKE_CMD(0x3) failed and response
status is (0x0)
dom0 kernel: [drm] psp gfx command UNLOAD_TA(0x2) failed and response
status is (0x0)
dom0 kernel: [drm:psp_suspend [amdgpu]] *ERROR* Failed to terminate hdcp ta
dom0 kernel: [drm:amdgpu_device_ip_suspend_phase2 [amdgpu]] *ERROR*
suspend of IP block <psp> failed -22
dom0 kernel: PM: suspend devices took 4.705 seconds
dom0 kernel: ACPI: EC: interrupt blocked
dom0 kernel: ACPI: PM: Preparing to enter system sleep state S3
dom0 kernel: ACPI: EC: event blocked
dom0 kernel: ACPI: EC: EC stopped
dom0 kernel: ACPI: PM: Saving platform NVS memory
dom0 kernel: Disabling non-boot CPUs ...
dom0 kernel: josef-debug: cr3: 2810000, build_cr3: 1036aa000,
(ffff8881036aa000, 0)
dom0 kernel: smpboot: CPU 1 is now offline
dom0 kernel: josef-debug: cr3: 2810000, build_cr3: 1036aa000,
(ffff8881036aa000, 0)
dom0 kernel: smpboot: CPU 2 is now offline
dom0 kernel: josef-debug: cr3: 2810000, build_cr3: 1036aa000,
(ffff8881036aa000, 0)
dom0 kernel: smpboot: CPU 3 is now offline
dom0 kernel: josef-debug: cr3: 2810000, build_cr3: 51f4000,
(ffff8880051f4000, 0)
dom0 kernel: smpboot: CPU 4 is now offline
dom0 kernel: josef-debug: cr3: 2810000, build_cr3: 1036aa000,
(ffff8881036aa000, 0)
dom0 kernel: smpboot: CPU 5 is now offline
dom0 kernel: josef-debug: cr3: 2810000, build_cr3: 1036aa000,
(ffff8881036aa000, 0)
dom0 kernel: smpboot: CPU 6 is now offline
dom0 kernel: josef-debug: cr3: 2810000, build_cr3: 1036aa000,
(ffff8881036aa000, 0)
dom0 kernel: smpboot: CPU 7 is now offline
dom0 kernel: ACPI: PM: Low-level resume complete
dom0 kernel: ACPI: EC: EC started
dom0 kernel: ACPI: PM: Restoring platform NVS memory
dom0 kernel: xen_acpi_processor: Uploading Xen processor PM info
dom0 kernel: xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI
CPU1
dom0 kernel: xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI
CPU3
dom0 kernel: xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI
CPU5
dom0 kernel: xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI
CPU7
dom0 kernel: xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI
CPU9
dom0 kernel: xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI
CPU11
dom0 kernel: xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI
CPU13
dom0 kernel: xen_acpi_processor: (_PXX): Hypervisor error (-19) for ACPI
CPU15
dom0 kernel: Enabling non-boot CPUs ...
dom0 kernel: installing Xen timer for CPU 1
dom0 kernel: cpu 1 spinlock event irq 67
dom0 kernel: [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
dom0 kernel: ACPI: \_SB_.PLTF.C001: Found 3 idle states
dom0 kernel: ACPI: FW issue: working around C-state latencies out of order
dom0 kernel: CPU1 is up
dom0 kernel: installing Xen timer for CPU 2
dom0 kernel: cpu 2 spinlock event irq 73
dom0 kernel: [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
dom0 kernel: ACPI: \_SB_.PLTF.C002: Found 3 idle states
dom0 kernel: ACPI: FW issue: working around C-state latencies out of order
dom0 kernel: CPU2 is up
dom0 kernel: installing Xen timer for CPU 3
dom0 kernel: cpu 3 spinlock event irq 79
dom0 kernel: [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
dom0 kernel: ACPI: \_SB_.PLTF.C003: Found 3 idle states
dom0 kernel: ACPI: FW issue: working around C-state latencies out of order
dom0 kernel: CPU3 is up
dom0 kernel: installing Xen timer for CPU 4
dom0 kernel: cpu 4 spinlock event irq 85
dom0 kernel: [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
dom0 kernel: ACPI: \_SB_.PLTF.C004: Found 3 idle states
dom0 kernel: ACPI: FW issue: working around C-state latencies out of order
dom0 kernel: CPU4 is up
dom0 kernel: installing Xen timer for CPU 5
dom0 kernel: cpu 5 spinlock event irq 91
dom0 kernel: [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
dom0 kernel: ACPI: \_SB_.PLTF.C005: Found 3 idle states
dom0 kernel: ACPI: FW issue: working around C-state latencies out of order
dom0 kernel: CPU5 is up
dom0 kernel: installing Xen timer for CPU 6
dom0 kernel: cpu 6 spinlock event irq 97
dom0 kernel: [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
dom0 kernel: ACPI: \_SB_.PLTF.C006: Found 3 idle states
dom0 kernel: ACPI: FW issue: working around C-state latencies out of order
dom0 kernel: CPU6 is up
dom0 kernel: installing Xen timer for CPU 7
dom0 kernel: cpu 7 spinlock event irq 103
dom0 kernel: [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
dom0 kernel: ACPI: \_SB_.PLTF.C007: Found 3 idle states
dom0 kernel: ACPI: FW issue: working around C-state latencies out of order
dom0 kernel: CPU7 is up
dom0 kernel: ACPI: PM: Waking up from system sleep state S3
dom0 kernel: ACPI: EC: interrupt unblocked
dom0 kernel: ACPI: EC: event unblocked
dom0 kernel: [drm] PCIE GART of 1024M enabled.
dom0 kernel: [drm] PTB located at 0x000000F400900000
dom0 kernel: [drm] PSP is resuming...
dom0 kernel: usb usb2: root hub lost power or was reset
dom0 kernel: usb usb3: root hub lost power or was reset
dom0 kernel: nvme nvme0: 8/0/0 default/read/poll queues
dom0 kernel: usb 4-4: reset full-speed USB device number 5 using xhci_hcd
dom0 kernel: [drm:psp_hw_start [amdgpu]] *ERROR* PSP create ring failed!
dom0 kernel: [drm:psp_resume [amdgpu]] *ERROR* PSP resume failed
dom0 kernel: [drm:amdgpu_device_fw_loading [amdgpu]] *ERROR* resume of
IP block <psp> failed -62
dom0 kernel: amdgpu 0000:07:00.0: amdgpu: amdgpu_device_ip_resume failed
(-62).
dom0 kernel: PM: dpm_run_callback(): pci_pm_resume+0x0/0xe0 returns -62
dom0 kernel: amdgpu 0000:07:00.0: PM: failed to resume async: error -62
dom0 kernel: usb 2-2: reset high-speed USB device number 2 using xhci_hcd
dom0 kernel: PM: resume devices took 0.546 seconds
dom0 kernel: OOM killer enabled.


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 10:04:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 10:04:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232477.403074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqY5p-000548-3P; Fri, 26 Nov 2021 10:04:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232477.403074; Fri, 26 Nov 2021 10:04:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqY5p-000541-0Y; Fri, 26 Nov 2021 10:04:33 +0000
Received: by outflank-mailman (input) for mailman id 232477;
 Fri, 26 Nov 2021 10:04:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1mqY5n-0004oJ-AM
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 10:04:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqY5k-00041P-2E; Fri, 26 Nov 2021 10:04:28 +0000
Received: from 54-240-197-228.amazon.com ([54.240.197.228]
 helo=[192.168.23.115]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1mqY5j-0006sE-RZ; Fri, 26 Nov 2021 10:04:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=MlRYbGiR2f+L6kIx2bzJDdgc+MmHyad5LFQJzA1tOvs=; b=YjRu6fNbMnEA99x85jLSZYZi1z
	uvfCGnt0S401Ho+aOULEgtLV0SPVhurLqoi5uLaRjh66nzbxYFsXciPBAsTRh6O6f1NyW8AkQLfly
	hcxNYApqEa1b7FXWoKhfv1yBTZhrw0o8WcWOkVJPSp6QamlXynvxecmwFcF8TU70ZoXY=;
Message-ID: <6bcd1555-ee0d-dd6d-55ca-0ca0e64c3623@xen.org>
Date: Fri, 26 Nov 2021 10:04:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
 <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
 <b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
 <0c0e67f3-5e0a-f047-ca09-1cf078e6b094@suse.com>
 <71ef250c-be92-2b2f-0f07-ce32c17d8050@xen.org>
 <ceec5b56-65fc-8bb4-b9e0-1e16aea8c412@suse.com>
 <c2d312c2-c413-4e07-1c0c-8652cab40784@xen.org>
 <0b808ce0-23a2-65ae-dfb3-b167d5565b31@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0b808ce0-23a2-65ae-dfb3-b167d5565b31@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 26/11/2021 09:12, Jan Beulich wrote:
>> Anyway, I think it would save time for everyone (you had to manually
>> delete signed-off-by after all) if you just copy the commit (including
>> all the signed-off-by) message as-is.
> 
> I don't think I see why you found it necessary to verify the S-o-b set.

This is a list of difference with the Linux commit that was unexplained 
to me.

> 
> Also note that, for things to be useful in our tree, I may also edit
> commit messages in mechanical ways (e.g. to change file or function
> names). I don't think you can expect a 1:1 match in any event.

I am fully aware that I can't expect a 1:1 match. However, if I see a 
difference, then I need to be able to explain it.

For this case, you provided some sort of an explanation but so far, I am 
still waiting for a link to confirm that the signed-off-by match the one 
on the ML.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 10:04:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 10:04:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232476.403064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqY5n-0004oW-RR; Fri, 26 Nov 2021 10:04:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232476.403064; Fri, 26 Nov 2021 10:04:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqY5n-0004oP-OH; Fri, 26 Nov 2021 10:04:31 +0000
Received: by outflank-mailman (input) for mailman id 232476;
 Fri, 26 Nov 2021 10:04:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqY5m-0004oC-4L
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 10:04:30 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e4052ab-4ea0-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 11:04:29 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2052.outbound.protection.outlook.com [104.47.2.52]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-38-A1XQrRQbMWK1z4XM3QrVZg-1; Fri, 26 Nov 2021 11:04:27 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3535.eurprd04.prod.outlook.com (2603:10a6:803:11::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Fri, 26 Nov
 2021 10:04:24 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 10:04:24 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0087.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::28) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.21 via Frontend Transport; Fri, 26 Nov 2021 10:04:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e4052ab-4ea0-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637921068;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zcudEqs7iYh3foiGqUp+NPkmuCZIOsFGT8lRli8M/0I=;
	b=lIp3KTT/74DE22/EFuM390n/hICv1+4TbBQ9TNb+n9bC1P57xH/QYTWP1D4IJkRHM8v76S
	8S0zRxiQUH9AlYfIFI0T5ngazkaBxk0YUa2as6D1ZEwC+wu7pVoDGBgTKswWnBUYWA7Cn3
	GpqK5n59NyKsnqHtBKP4kXrAD1y7w9g=
X-MC-Unique: A1XQrRQbMWK1z4XM3QrVZg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FLLtBkyNsCTT3w4IuMGgfgyQNVGN+vMHzQnTSb807Veh5XX7SUPBaVUPfOLcJrSCYjdROSqB7bcoWEEzNM521ya5dcuCVSiySy28Sp8QWTXg0LzOHsZJ0bkr23oHUtSzsF1IObcgT6qYJvgDM4a4NQSyIkQVYQm4VmW5xRN/hEaPSYms4IcWZwFxA+71quLMV2bxL8WiheYI1IKsm+biiv7GS/seAXypJCqSvQQkWbQoszJmmnlv8jTgPrfv3v0WgM9/AxBzwCcwF1CMO6Q9fwjOM6ehchaXeOX2079QZEn2uYtzBi9VXOphltgjh/PppVlueMqt9uleDtZSLeEOZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zcudEqs7iYh3foiGqUp+NPkmuCZIOsFGT8lRli8M/0I=;
 b=Vqys0SYbDeRG9DTiZrQ7I8EJmYdWUR4nAN93OBda+ipl5K70jVVXPPEWC6eVaJDpOmIGtLuB3zxLoqp9KdpQeO2wY3PR278a6W1b0QUC0nBpID3BSnqsgqPRXslUUcgl8b6W7THC8W8/jz2VAy8uPPd5l+4co3BscVPVaDL/RuwyeamCO+CuBZxqTHa39shTlQ2pa/LPz8d+S7MRTjx0UzjoOOiSjpHcm+Qlm8kH2Rxit4wovFx4onb9kDEJdXIreaour9mzLPb1Ug1fyKyy+fCXUpyhQmd8DYIXA2p+lScVEGqolPZYKEFEX8k0KKArQAYiZnxulzXLQrcbHpGCOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8f839869-dd5b-8db8-4928-ae8299d32942@suse.com>
Date: Fri, 26 Nov 2021 11:04:22 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH] public: add RING_NR_UNCONSUMED_*() macros to ring.h
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Manuel Bouyer <bouyer@antioche.eu.org>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Paul Durrant <paul@xen.org>,
 xen-devel@lists.xenproject.org
References: <20211126065547.22644-1-jgross@suse.com>
 <4afcdfb2-cdab-a019-7541-598917bc4592@suse.com>
 <66843af2-d653-39ef-504c-46342507faab@suse.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <66843af2-d653-39ef-504c-46342507faab@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0087.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:86::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 23e81f45-93c8-441c-b710-08d9b0c41fb2
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3535:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB3535937E17F9201FC06465AFB3639@VI1PR0402MB3535.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	COIpHnSEonQVVNYUZAyAqWefqKm3/6htAeQ6bPj3vcPf7dKb5xVPFgI6gBYpEo78ZxkrcrAl+cz5ZcpmaiwKDdeHTQLQAiAIi6c/Gm36oHwwtqC5d0WlIubEwfiL0q7/V+W4sboQsOIYJfhdfafr4gWT79mTrI/SvgRHePyX5GRucLrEZuseW2F0HCzkBmPY04PO4fZS0NPLAmW5fwa+EumgjzCljsC21fNJPHycY0+599GVlwn5siuhBHLV1k1LPpg9v5lehJxVmuSOEgwXaddFiuS4GIZbNYmnCPXtzHSrPjHdcPRh8tmHteVJdmv8kzlQen1NESQmioZYkHHpwDWFpS4/bt6uxjtvbupOJ5cnhxlxwvzK7dE0HJM3aXslNZ2mayXeJmKWDhZPQXWXDUagd8zllmJ/Vml845zyEFNWPWk5I2KJtyaljvlDlm8JZuvnA+5/VjWisubLWC5Ks7Fuh0k00oQlw5KBKA9yXY059EE+mfrjTRN5hZWGaiQH5ARK2mzz6twZYEkKRNyf8Gaam+ht8AeyFfUr2M6dVdu70zLXpwwj6fLGogasWkX8CVRIYqmBZsAFHjb0CVau7Gx/rch3eCoL8Ykq8ltUrP+kDmywzhiuzOqBwijQnLi7b5/JNNdrLzQz3J1wchMQneXys4dihD2UMuTZ3slbPDhzU/27irv7le6onwB9l04kLLMoGo8W23apQj6nLgaURpAUxwvfp9K5SR8IBRClOn4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(5660300002)(8676002)(508600001)(66476007)(37006003)(36756003)(38100700002)(66946007)(2616005)(26005)(186003)(4326008)(53546011)(16576012)(6862004)(31696002)(6486002)(316002)(2906002)(31686004)(6636002)(83380400001)(86362001)(956004)(66556008)(54906003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MjVQY1IzRkl3YjlPT1N4UituK2NTQ3kwVFRrWng4Mi8weU8vd1A3L0pMZWdR?=
 =?utf-8?B?aksxZXJPejVoS0YxRmJKY3JjR2w2VVBJd1FvaGcxc1ltSTRCbm5rcEdEUmdS?=
 =?utf-8?B?WFJZTEIwTDVKbTk0dld2WnRyL2FaTXJkVXQzdUFzOTBEbWhEc1BDbVZuVllZ?=
 =?utf-8?B?N2ZiYU54S2thWC9VcUZaYTQrcEw3RTltSEIwb1RKNVlpSTdhMVJqbzMvaW9O?=
 =?utf-8?B?TU1jU0FRczRmTTZSWkUrSDE4WDdzRjJmalhvL1dKNzg5SHJmcWN6K3VBaHh1?=
 =?utf-8?B?V2N2b291c2hUY00rM0M0Q3dmTzlndktrYW5PT2hVOHhaVUlmODBWZ3QycnVK?=
 =?utf-8?B?UithR05wU1YxdjNadm9qUUJkTU1Bdm5hRjI3VzF5SS9NNHhvbk9XNmlFMzVm?=
 =?utf-8?B?eTZWVjY0UkN2QzFoamhYdm4wWFZLZFVxZjREMjNKN1h5M09rKzByRm5oQzRN?=
 =?utf-8?B?Q081bUlqRHFzbWxBNlBZM0lweElHRjBTcTdRaXQ5ZE5LdUhtSzhoUkxkYXhw?=
 =?utf-8?B?SGZEc0MwUGtOYUN2dHB3SkN0Q2VxaFRrV0ZBd0gvZHlsOW9SeEk4YUozRldr?=
 =?utf-8?B?Uk4zMVVzaCtyTVU4ODU1M25ZaWpzY0Jjdzh1a1V2S01xK1VFbWNuTis2eHVM?=
 =?utf-8?B?M2syWGFWWXlhK2FCa3Q1Y0lEaXhmdXhNOXV0SW5DWTI0VW5qUURTUTVSZ0ZG?=
 =?utf-8?B?UjJPQnV0YjVqYk9lVVpiNlM4NkNMcXJjeFZURGtWekw4VWVPL0ZyNmpKMmoy?=
 =?utf-8?B?anFqODZSSjh6WjVJWXFCd3hJdS9VK2hMMmQzRTFlcmJHWXQ3amJBN1lUd2hE?=
 =?utf-8?B?ckp1dHU1VWxEVnZmVnJEa1ZZRDRMcGlUNVI2cE1tR0Nhc3k1UjBoZCtDYTd3?=
 =?utf-8?B?RnAwblNTUENQTUJGNGpORU9PK2t0alB5UXNOQmIzQ2xtbDk1bEJaSDJZSkRm?=
 =?utf-8?B?RmhCOVRnVTU5K2ZURVZ4dFgxRU90dUgxYmJtOE5CSy9IK0R6K3F3S0lvdDRL?=
 =?utf-8?B?OGc2VC9LalZkbzBTd0JVemptdEE3bU1SOHZ6cXlnS3FFbnlYYTRMWVFJbmdX?=
 =?utf-8?B?UUF1VTZ4TkRzZWR4cXo1UzlJSWdSTFlNdFpqM2VVNW9rRkphNHZzQVQxWTB6?=
 =?utf-8?B?alRMRkVuRVpqek43Y3hFSFJJYitBUFhuNDc5RlptWEFFcVFWZ1NDTXFxSFgy?=
 =?utf-8?B?ODIvL1ZudkxvNlBQL2VsbTJMWWkxTU56SStJRzlvcEV3OEZjREkrNU9vNitK?=
 =?utf-8?B?dnVrRGVzZlpieUx1czR1VE9pRDMrV1dKdDQ1ckpSTDU3SXRPdkREUExmbW9l?=
 =?utf-8?B?SENrajJUWnlDQmtTbjRiK0lTMWxLb3FCOHRmM3ZzSEZobXNqNUsyNVZ0MlBz?=
 =?utf-8?B?ZDNtVGNLV1J6L2NiZmRBcE9PTC9SQUhYRUFSTnRnTW5tZVZwWXJMcEJQVng5?=
 =?utf-8?B?YW83cytIMVpCbU1qRGx0NUtjRFRBRzJIYXpYNUhuUGlBRjdhVE5uREVqUUty?=
 =?utf-8?B?aTRMbERRWGdPV2NVUzRpNndGLzN0MGtuUWQ0T1N3ekRXQkU5NnNvUlFEWk8x?=
 =?utf-8?B?RWdWT3BMREFqQU5SNXZ1bFB4b2pXWE9WUnNkd1ZUczNlaGcxSVFieEpDVmtm?=
 =?utf-8?B?c3ZCWEFXQTBqT09vM2lBMmpBTkNpMytvbU45SjNLRkluTVo0M1l6bGU3Ykk3?=
 =?utf-8?B?ZkUyam03Mk9rbWI1M3pYY1VuSjhPMXRPSEU1OXJ6UURsSmNPOGxyQXYrYTFG?=
 =?utf-8?B?ZUZsOGV1Mll3cTIrdUlCR1dqM3poYjNKWUd4bEpDWFJLNXFGRVM1VHM1blUw?=
 =?utf-8?B?YWs2dC9SYWlVaUtETVRMRTJnWHJjRTJtOHVxeEx2dHBLa1hESE5vQWdWdE1k?=
 =?utf-8?B?NVVib21MU3ZkcUIzRTJwOGZGckpsK1VlVStOU0F2dm1WeGs1eElyempTOHRx?=
 =?utf-8?B?bzhDb1hHZHc2alAyMzlrN1FCZTlCQWpPWW42cUFBTXVKL0dSUzJuR1BXdVJq?=
 =?utf-8?B?Z1FkMmg2WjZBejZxUEUxVmtTZlZwTDZsK1pQSGkzbmhjZUEySXc4TXdKT0lE?=
 =?utf-8?B?dHN3K1gzQkI3QU9Sb21RTTBEQWZTSGVpSU9MRlBpcklaZDhSaXR6U0lnbmtZ?=
 =?utf-8?B?V25TZ3NBYnpRMHBVRm1oSXQ1azByWkw3bFg2YnRnK3d3NHBQUG02MVNaYlE4?=
 =?utf-8?Q?9u/WvTrIS82X/Pue4ShF1GI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 23e81f45-93c8-441c-b710-08d9b0c41fb2
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 10:04:24.3179
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: e4pW/Fi361YwM2A4Ni7EbS1Ofr5fCk7Mc+8p2Q1uARcUVjej9mmZUYKT55q4t4iqcMQL/MUp1enjBGzsqZDgBA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3535

On 26.11.2021 10:21, Juergen Gross wrote:
> On 26.11.21 10:17, Jan Beulich wrote:
>> On 26.11.2021 07:55, Juergen Gross wrote:
>>> Today RING_HAS_UNCONSUMED_*() macros are returning the number of
>>> unconsumed requests or responses instead of a boolean as the name of
>>> the macros would imply.
>>>
>>> As this "feature" is already being used, rename the macros to
>>> RING_NR_UNCONSUMED_*() and define the RING_HAS_UNCONSUMED_*() macros
>>> by using the new RING_NR_UNCONSUMED_*() macros. In order to avoid
>>> future misuse let RING_HAS_UNCONSUMED_*() really return a boolean.
>>
>> I don't think we can go this far; consumers of our headers may choose
>> to do so, but anyone taking the headers verbatim would be at risk of
>> getting screwed if they had any instance of abuse in their trees. IOW
>> I think the original-name macros ought to be direct aliases of the
>> new-name ones, and only in Linux'es clone you could then go further.
> 
> Fine with me. I'm inclined to add a comment hinting at that possibility
> then.

Indeed, please do.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 10:12:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 10:12:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232494.403104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqYDL-0006t8-4e; Fri, 26 Nov 2021 10:12:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232494.403104; Fri, 26 Nov 2021 10:12:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqYDL-0006t1-1W; Fri, 26 Nov 2021 10:12:19 +0000
Received: by outflank-mailman (input) for mailman id 232494;
 Fri, 26 Nov 2021 10:12:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sXrr=QN=gmail.com=jiangshanlai@srs-se1.protection.inumbo.net>)
 id 1mqYDJ-0006st-Ed
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 10:12:17 +0000
Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com
 [2607:f8b0:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 537236c1-4ea1-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 11:12:16 +0100 (CET)
Received: by mail-pf1-x433.google.com with SMTP id o4so8443995pfp.13
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 02:12:15 -0800 (PST)
Received: from localhost ([47.251.3.230])
 by smtp.gmail.com with ESMTPSA id j2sm3870184pgl.73.2021.11.26.02.12.12
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 26 Nov 2021 02:12:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 537236c1-4ea1-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=o/JsKbfMes+8HN/WC8BxQrxJb7eO4f1vtnbbvoObfIw=;
        b=qAEXRhJCQualuXUI/E9TTZKF+vyX2KzxEvmGfinCNMQN3bZc4v5qw3+auBqPTn+kKu
         M+3yBhQ9LskJvs7Q/3TRBzenI80zV6/EYs6sk1uLx9XviHrar+L9NvzCIJqtwm2S2GrH
         lWvF7UeRX4zY/2QoY7wT0yR/2sl3S08YxRA7654v7s6infsNz74W//YjCQgEHUuKhMrZ
         2m17i10/Sx8RwyaFqN4DhtC4TweDXrlOyLXpYhFpPgupCUjLoWkzYGJm9z6TddPtex55
         j44Gtoy91BW19/Bq4WUmCnpxueDztG3aTN7yG1DtiCT6i5jKAXHRemC2Bl7j2sJDrjrW
         rJJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=o/JsKbfMes+8HN/WC8BxQrxJb7eO4f1vtnbbvoObfIw=;
        b=GyTPZhpanqKNrBII7bQJJFoNMKVV1n97nb+5yovNz1v/DvWwWaIoolSYpTH4/wqKsq
         jT54nFkZaoUiW3kbJQdB4cCgn8K7iYFyWW4nYXMg6KNFH3iwT1+xWAbX4rzHQuHfRo7r
         gclZPDi5IsxCHF10Bs9r5H+A9oVzH2c+5L7XGl0bf7ZxwO9Vq1bJHJ65rPU+ZZl2RHJB
         H34ABqhu4TyjTp7qVSAfaj2oFnaKpNxyFez68+8GxQWpZxmeZoRZ5tRUr9KcWDLLrCnX
         V2O9qFVAdmlmhE2aBQiLlb5SzgVr78Dim611IYsw703enOAs64UUBcgtJtaiC+k1rE0T
         L47w==
X-Gm-Message-State: AOAM533hFivJfrNM6OHWQubZJJG6jX2QrJT2zSSJj71LhFUOe3askukU
	A+a/YEqgHJ3+Z2RNtNAmcmk=
X-Google-Smtp-Source: ABdhPJwQkD5yFxnX+taigMIodM5mVwgcHezaHYIaCCLRC2t7bnJOlp6G7/Oyuib5tURhRHES5mL3XQ==
X-Received: by 2002:a05:6a00:1412:b0:4a7:ec46:29d1 with SMTP id l18-20020a056a00141200b004a7ec4629d1mr12919164pfu.16.1637921533272;
        Fri, 26 Nov 2021 02:12:13 -0800 (PST)
From: Lai Jiangshan <jiangshanlai@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: x86@kernel.org,
	Lai Jiangshan <laijs@linux.alibaba.com>,
	Jan Beulich <jbeulich@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Juergen Gross <jgross@suse.com>,
	Peter Anvin <hpa@zytor.com>,
	xen-devel@lists.xenproject.org,
	Andy Lutomirski <luto@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH V6 03/49] x86/xen: Add xenpv_restore_regs_and_return_to_usermode()
Date: Fri, 26 Nov 2021 18:11:23 +0800
Message-Id: <20211126101209.8613-4-jiangshanlai@gmail.com>
X-Mailer: git-send-email 2.19.1.6.gb485710b
In-Reply-To: <20211126101209.8613-1-jiangshanlai@gmail.com>
References: <20211126101209.8613-1-jiangshanlai@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Lai Jiangshan <laijs@linux.alibaba.com>

While in the native case, PER_CPU_VAR(cpu_tss_rw + TSS_sp0) is the
trampoline stack.  But XEN pv doesn't use trampoline stack, so
PER_CPU_VAR(cpu_tss_rw + TSS_sp0) is also the kernel stack.  Hence source
and destination stacks are identical in that case, which means reusing
swapgs_restore_regs_and_return_to_usermode() in XEN pv would cause %rsp
to move up to the top of the kernel stack and leave the IRET frame below
%rsp, which is dangerous to be corrupted if #NMI / #MC hit as either of
these events occurring in the middle of the stack pushing would clobber
data on the (original) stack.

And, when XEN pv, swapgs_restore_regs_and_return_to_usermode() pushing
the IRET frame on to the original address is useless and error-prone
when there is any future attempt to modify the code.

Fixes: 7f2590a110b8 ("x86/entry/64: Use a per-CPU trampoline stack for IDT entries")
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Juergen Gross <jgross@suse.com>
Cc: Peter Anvin <hpa@zytor.com>
Cc: xen-devel@lists.xenproject.org>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Lai Jiangshan <laijs@linux.alibaba.com>
---
 arch/x86/entry/entry_64.S |  4 ++++
 arch/x86/xen/xen-asm.S    | 20 ++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 4967edded48d..68e697acefac 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -574,6 +574,10 @@ SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL)
 	ud2
 1:
 #endif
+#ifdef CONFIG_XEN_PV
+	ALTERNATIVE "", "jmp xenpv_restore_regs_and_return_to_usermode", X86_FEATURE_XENPV
+#endif
+
 	POP_REGS pop_rdi=0
 
 	/*
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
index 220dd9678494..444d824775f6 100644
--- a/arch/x86/xen/xen-asm.S
+++ b/arch/x86/xen/xen-asm.S
@@ -20,6 +20,7 @@
 
 #include <linux/init.h>
 #include <linux/linkage.h>
+#include <../entry/calling.h>
 
 .pushsection .noinstr.text, "ax"
 /*
@@ -192,6 +193,25 @@ SYM_CODE_START(xen_iret)
 	jmp hypercall_iret
 SYM_CODE_END(xen_iret)
 
+/*
+ * XEN pv doesn't use trampoline stack, PER_CPU_VAR(cpu_tss_rw + TSS_sp0) is
+ * also the kernel stack.  Reusing swapgs_restore_regs_and_return_to_usermode()
+ * in XEN pv would cause %rsp to move up to the top of the kernel stack and
+ * leave the IRET frame below %rsp, which is dangerous to be corrupted if #NMI
+ * interrupts. And swapgs_restore_regs_and_return_to_usermode() pushing the IRET
+ * frame at the same address is useless.
+ */
+SYM_CODE_START(xenpv_restore_regs_and_return_to_usermode)
+	UNWIND_HINT_REGS
+	POP_REGS
+
+	/* stackleak_erase() can work safely on the kernel stack. */
+	STACKLEAK_ERASE_NOCLOBBER
+
+	addq	$8, %rsp	/* skip regs->orig_ax */
+	jmp xen_iret
+SYM_CODE_END(xenpv_restore_regs_and_return_to_usermode)
+
 /*
  * Xen handles syscall callbacks much like ordinary exceptions, which
  * means we have:
-- 
2.19.1.6.gb485710b



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 10:32:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 10:32:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232506.403133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqYWT-0000rN-3L; Fri, 26 Nov 2021 10:32:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232506.403133; Fri, 26 Nov 2021 10:32:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqYWS-0000rG-Vp; Fri, 26 Nov 2021 10:32:04 +0000
Received: by outflank-mailman (input) for mailman id 232506;
 Fri, 26 Nov 2021 10:32:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Bcxr=QN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1mqYWR-0000rA-Il
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 10:32:03 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0605.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 16cebc16-4ea4-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 11:32:01 +0100 (CET)
Received: from DU2PR04CA0329.eurprd04.prod.outlook.com (2603:10a6:10:2b5::34)
 by DB6PR08MB2823.eurprd08.prod.outlook.com (2603:10a6:6:21::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 26 Nov
 2021 10:31:58 +0000
Received: from DB5EUR03FT043.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:10:2b5:cafe::65) by DU2PR04CA0329.outlook.office365.com
 (2603:10a6:10:2b5::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Fri, 26 Nov 2021 10:31:58 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5EUR03FT043.mail.protection.outlook.com (10.152.20.236) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.20 via Frontend Transport; Fri, 26 Nov 2021 10:31:58 +0000
Received: ("Tessian outbound f493ab4f1fb8:v110");
 Fri, 26 Nov 2021 10:31:58 +0000
Received: from b95013cb22d9.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 91A087DA-4A5A-4C88-A5C2-D2E47927EF1B.1; 
 Fri, 26 Nov 2021 10:31:51 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b95013cb22d9.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 26 Nov 2021 10:31:51 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB6488.eurprd08.prod.outlook.com (2603:10a6:20b:33b::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Fri, 26 Nov
 2021 10:31:43 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::69d7:e26:6610:ebd8%4]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 10:31:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16cebc16-4ea4-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4HcNPY34HLXZwSxhmQlt98PPu5ibXv+IcbSOvRdS/g4=;
 b=DLlR61/YOc45+24iTH1WuX2d8aqXIEBu8ZjBV03Wy1Ovl0YZ07pl6m/yWMjc+vCpiof3KUDjn4wBTIebGwcaFkpQ7sXmN9GuU+1/jhUtcZ0Ud0WOMj7ld8D0YU/Azx7EMRmfH5Vamy6hu9X37j8XoEEvxTPHKMOTsguDmu8T7P0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
X-CheckRecipientChecked: true
X-CR-MTA-CID: 1600cf63c5f85f08
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=D6Tu3EWIcAWjRCKKS7817t1gUf6fIfyp5bY07jaBUITaYHF8jdLrv+PBpYlWvup3k3yc5uwrMIXvXJJIVUqFW4ZAblIrq8hgRFQRn/3dRbIHQ0qx9ZH9X5LF/rX++3JhP8RMrFftF3S6Y4k/dHaU4hkqF5FG/ddiMzEwOhvhYjSGhX7fhBN5bz5wBhLzvMzrLdFci+oW9p1IgzV0V1Y1jbkIkPFcFv+TSexWaCiozzhZBWNtkxxQMJWKp0iTiHWhJziVHiaPtb6tf7/yi0iVirWolJYTEn2ohDxBKzKyaIddTZy6C6QW5XGpg7RBBQOSaf+3rzdqyANMECdvAFnqug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4HcNPY34HLXZwSxhmQlt98PPu5ibXv+IcbSOvRdS/g4=;
 b=hjy12Iy6T/3O78BSlF90sID5d6eg4eE5XDj2x/5tRuqODqjjksOtrsdeM0G0O7+zTI7HkPY6B31X1JE0MXAB1Z+WV9F+/QMSuehkFUtDuwQDf2cEdlwIwPxxQ6KHfqElLdhzu0XENowFccB4KTWuq9lW5SNDoy7E1BYnKyrhjJz3TL5jmU2VV9hWyRmqx2pXwmCsxRLEytJJoIA9ZuygbKB0It0I/YsJGn6w2OAcfO0hx7qYPV3CWXJpnWaxC5qocJEc8a4inHRF9t1uFrZqaCWh+ZEnn7cWBlHKdP5AavqR2fj+/9JNnqDWcccL5oNixHgOQBpaEdFUc++dulRTpw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4HcNPY34HLXZwSxhmQlt98PPu5ibXv+IcbSOvRdS/g4=;
 b=DLlR61/YOc45+24iTH1WuX2d8aqXIEBu8ZjBV03Wy1Ovl0YZ07pl6m/yWMjc+vCpiof3KUDjn4wBTIebGwcaFkpQ7sXmN9GuU+1/jhUtcZ0Ud0WOMj7ld8D0YU/Azx7EMRmfH5Vamy6hu9X37j8XoEEvxTPHKMOTsguDmu8T7P0=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Mathieu Poirier <mathieu.poirier@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Aarch64 stand-alone application for Xen
Thread-Topic: Aarch64 stand-alone application for Xen
Thread-Index: AQHX4lBBRwRMWKF0UkKA2OLT1/6XFKwVnPuA
Date: Fri, 26 Nov 2021 10:31:43 +0000
Message-ID: <B34490D7-5FE3-41D4-9792-41E2BD25EF05@arm.com>
References:
 <CANLsYkzKn7Nkika=KpHtSyi9=FQwS7Wt94Odbg2HuH+1PFUTzA@mail.gmail.com>
In-Reply-To:
 <CANLsYkzKn7Nkika=KpHtSyi9=FQwS7Wt94Odbg2HuH+1PFUTzA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3654.120.0.1.13)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-Correlation-Id: 3571b5b7-f612-4709-394c-08d9b0c7f9a8
x-ms-traffictypediagnostic: AS8PR08MB6488:|DB6PR08MB2823:
X-Microsoft-Antispam-PRVS:
	<DB6PR08MB28235D6692272EE7F708B2A89D639@DB6PR08MB2823.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 lp6U294aBCJGVGKKJmrhS4ahlu6jkS1I1wSOiMAgsn57aNvsMjTa5ukQaQoqyjPeJDLJRYopHTKcu5tXmQLMjyh/9gIKB1kRODMGJGRRaApI2ydc4q7xBkbMqevgThBfp+ZcZU/es7J2KoV/zm2JNGw7cHGTnF9bkyLQ7a35ddT/JX9IoMdtS34lklcURPuYgXl4W4/JNaxdwqxWCVCTcel4+EBTPCL0K9g4cQToox/0l4TEg7S9czEc2PeJgyESClajE6kmZcdlGaHj0idXbxIw8Yoq7uL8cGO0/yBaGKHce3m4daErV16oOA1CHogjfgFpP13ZXAPVZB0BVNRHeCTYLzhx9a/EB5DgcPHrziDE0CIezguxYSMb9jxmq7XbfK/dsxMr0EuYWLm8d6/alwXgcu17vsy7kbwlDad0NAMZGlN3A/opOeVYg8ZDDFcrn6jiRLXdv/7acat2QYuYeZz+kcYOGx3zxP6mNNJ/TBvPPDI49J3Gok47wlaLWkaC1JA1V2Hip7s04qX/yYhX5kgkIzlFcejdj21vagyuL8tTKQLl/51WjCxqNez12F+lLQnGiXlCQ7emtnGSDIoEiIVTOC8J9nafqRWUt9ZhShdxSbvaZAZ0Ig4eZHteBi83lDmmDay4j96bpsu+JsyGGyaagGOJVSSdslv5g+yDqtqAfWxsE74X/OmjX7EpyIWeaOqvyYDb87K8nK1tE43n6KoNsFwxeShdSd3fmxr7J3dTuURcHTHDHLhUvCM/ZYe9jl4fA44QUsh5nNCy64EFqhF5BYETwc6YEpFjj7ugVi2QBLJ0QOz2Ttufbir0stlI3G/kIZYp/+USN5Qy56GSwg==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(2616005)(122000001)(66476007)(6916009)(76116006)(64756008)(71200400001)(38100700002)(66946007)(66446008)(966005)(508600001)(36756003)(2906002)(8676002)(38070700005)(66556008)(6512007)(26005)(316002)(4744005)(4326008)(6486002)(86362001)(6506007)(8936002)(53546011)(33656002)(83380400001)(91956017)(186003)(5660300002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <EC34CC86C4585E4C8843E4E760FFAC37@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6488
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5EUR03FT043.eop-EUR03.prod.protection.outlook.com
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	db7fff85-cf1e-4474-9bd5-08d9b0c7f0f9
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	bg0Nf+3cRgvxAzHbN/exQ8cK9OL9CWQ8wsOVdxxfWPp4XNZtT6PrQedbJCjbohttJhb7R1pnL1GVmAOZfb183LhkowwgRt59geNGFHFxheCKRiM5YcDztHNg8IuYTpex0MUt4inK/EMxtAy4QbhBxwh++RrAXxirpPAeG0mNtB/nvZaZcCbx1HVjrGWmC+JCIQA1OctV1xgHSMNQBLBo/IcmRRl4bPjDuoGN7k3qBXzyIxsjhK8p7d0FLnkc9GejXOcBzXIlKlaFUL1zSQTWZCGgHXqr5JU0vJBBkIQVUhDiejzl9O8wMY3lc6lmxhb5zH7TYmfVM4L/sF0dUxZQ7s7bmGnSfsi3C0eTu0Ewa6n7Up82uUkHdedVvS8RXfL6SC/l1ZcS1VF9gY4FKoxtWyHWzfLqx1aMX14cKXB767Vt46ZRvTQ/hTqqUFazazvGHn5/ClwYH5iva5nNeXpM5atRtO3tJUbFkRrKNhjmbm4/pkhr9spuNH21G3w5RMV69buE1A0eZXyvh8KgTpIlfiGP0pf6lr/Lmo/WglaY6Q7TBu6xAa38xbNo5x6Mz/ddVZEVhEBNLm6ycGQQ2Z6A+hVOndGEvfM4O36HyIVb31P7TBaC/ZGeSlF9IK7htRKJT798WOBC0FJtl8bQF8ovcmD3gwgjeQb7FZwZneuRxrgY0AMpB8AJKA7JkiKs9eKPurSToRMoxsXJTuAhxPJ1fj4x/E/jyFliQ9LCYcPjGQlmot0E+b9ztDV2GXXD90Z6N2RcXKlkw2MeN7ik3saQSwgR28igZEfEAjVXsiuE7yo=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(186003)(2616005)(26005)(47076005)(36756003)(8936002)(8676002)(336012)(36860700001)(33656002)(966005)(508600001)(6486002)(6512007)(6862004)(86362001)(70586007)(70206006)(4326008)(5660300002)(316002)(82310400004)(81166007)(2906002)(356005)(6506007)(83380400001)(4744005)(53546011);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 10:31:58.3097
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3571b5b7-f612-4709-394c-08d9b0c7f9a8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5EUR03FT043.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2823

Hi Mathieu,

> On 25 Nov 2021, at 22:59, Mathieu Poirier <mathieu.poirier@linaro.org> wr=
ote:
>=20
> Good day,
>=20
> I am in the process of adding support for aarch64 to the xen-sys
> crate[1].  The crate currently supports x86_64 and includes a
> stand-alone "oxerun" application that can be used to validate
> hypercalls.  My goal is to provide the same functionality on arm64.  I
> am looking for a stand-alone aarch64 example, something like an "hello
> world" to help me with the assembler startup code.

We are working on porting XTF to arm64 and already have something running.
I think it could be a good starting point for you:
https://github.com/orzelmichal/xtf/tree/arm-devel

Regards
Bertrand

>=20
> Many thanks for the consideration,
> Mathieu
>=20
> [1]. https://crates.io/crates/xen-sys
>=20



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 10:51:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 10:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232519.403162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqYp9-0003L2-1e; Fri, 26 Nov 2021 10:51:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232519.403162; Fri, 26 Nov 2021 10:51:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqYp8-0003Kv-Up; Fri, 26 Nov 2021 10:51:22 +0000
Received: by outflank-mailman (input) for mailman id 232519;
 Fri, 26 Nov 2021 10:51:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqYp8-0003Kl-5X; Fri, 26 Nov 2021 10:51:22 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqYp7-0004nU-UV; Fri, 26 Nov 2021 10:51:21 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqYp7-0001Ku-Jm; Fri, 26 Nov 2021 10:51:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqYp7-00072t-JF; Fri, 26 Nov 2021 10:51:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=eV63tTLGxsIcrHTwMxv/Pigt5ekbHflceKkjaCE8Uoo=; b=z9uxaAPmxgE61ZdS4kMqAt80DS
	PwBGE92EEDWqV0XxzPUbSu2AmJ3TkOQXHhJz3oz/jRbRRhgR3I3ff/cqa+vLq/KyJHWZWK5ol/t5E
	c7QO+LEUlJpwD+ef8XjWmkzoCT2ex4/xCdrOxVu9GxiyQfn628M8ufcVDANX4VVBxR78=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166394-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.16-testing test] 166394: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.16-testing:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:allowable
    xen-4.16-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c4b41ee2b44ab89cfca75facbe6702376098fc56
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Nov 2021 10:51:21 +0000

flight 166394 xen-4.16-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166394/

Failures :-/ but no regressions.

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds    18 guest-start/debian.repeat fail REGR. vs. 166322

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop       fail blocked in 166322
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop       fail blocked in 166322
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop       fail blocked in 166322
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166322
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166322
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166322
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166322
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166322
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166322
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166322
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166322
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166322
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  c4b41ee2b44ab89cfca75facbe6702376098fc56
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166322  2021-11-23 17:05:15 Z    2 days
Testing same since   166394  2021-11-25 11:49:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   be12fcca8b..c4b41ee2b4  c4b41ee2b44ab89cfca75facbe6702376098fc56 -> stable-4.16


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 11:00:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 11:00:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232538.403226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqYxy-0005HR-M5; Fri, 26 Nov 2021 11:00:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232538.403226; Fri, 26 Nov 2021 11:00:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqYxy-0005HK-Ib; Fri, 26 Nov 2021 11:00:30 +0000
Received: by outflank-mailman (input) for mailman id 232538;
 Fri, 26 Nov 2021 10:57:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=93LH=QN=neclab.eu=simon.kuenzer@srs-se1.protection.inumbo.net>)
 id 1mqYuw-0004RP-LJ
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 10:57:23 +0000
Received: from mailer2.neclab.eu (mailer2.neclab.eu [195.37.70.41])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 85ded130-4ea7-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 11:56:35 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id CA23FF2008;
 Fri, 26 Nov 2021 11:57:20 +0100 (CET)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id f1mP4a9VkC9T; Fri, 26 Nov 2021 11:57:20 +0100 (CET)
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 80843F2001;
 Fri, 26 Nov 2021 11:57:10 +0100 (CET)
Received: from puck.office.hd (192.168.24.91) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Fri, 26 Nov
 2021 11:57:10 +0100
Received: from puck.office.hd ([192.168.126.12]) by puck.office.hd
 ([192.168.126.12]) with mapi id 15.01.2375.017; Fri, 26 Nov 2021 11:57:10
 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 85ded130-4ea7-11ec-a9d2-d9f7a1cc8784
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
X-ENC: Last-Hop-TLS-encrypted
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=neclab.eu;
	s=mailer2-20210408; t=1637924240;
	bh=DOtE/14xDtsOfs3Q3eu5136dze70GcMIIgV8ryhIUI4=;
	h=From:To:CC:Subject:Date:References:In-Reply-To:From;
	b=jq15+bFjoYphQedudKQ27CwcthWRgDtSdHJ5AM1Dc6DRxDndECDY7SF+1A1oA0urk
	 7pkaA1TgczMdzmI3xx8sto5jY135M+5l3BtDVx7uxytgi6F/6rtTnhAbxlbkuCCprK
	 k2oNuOF6GzP4BG2JnxvKEXGBGMig/lGq+SqKdKIWVuHbxk8bUcR0FJWNMZogM9YZAZ
	 DiQg/isqYDjTYiUvj1oItlQ67rPgIJU2JBj9XJ1t9uGP3TwRg++uoQpiaMc1R7aOkf
	 mfof9mZ/Lm6w3Q6wtW6ahUCa4XuSrNj/dQ9kHTH1Ar31A+LwmEjiWEXYreGM97Hb2t
	 rl0s0seXALFJQ==
X-ENC: Last-Hop-TLS-encrypted
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: Juergen Gross <jgross@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Roger
 Pau Monne" <roger.pau@citrix.com>, Manuel Bouyer <bouyer@antioche.eu.org>,
	Paul Durrant <paul@xen.org>
Subject: Re: [PATCH] public: add RING_NR_UNCONSUMED_*() macros to ring.h
Thread-Topic: [PATCH] public: add RING_NR_UNCONSUMED_*() macros to ring.h
Thread-Index: AQHX4pO3ccMM1QJyxkurYeSR+yaLN6wVkssA
Date: Fri, 26 Nov 2021 10:57:09 +0000
Message-ID: <18A6BC1C-E48B-4EAF-8972-AA7FEE7BC837@neclab.eu>
References: <20211126065547.22644-1-jgross@suse.com>
In-Reply-To: <20211126065547.22644-1-jgross@suse.com>
Accept-Language: en-GB, gl-ES, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3608.120.23.2.7)
x-originating-ip: [192.168.24.96]
Content-Type: text/plain; charset="us-ascii"
Content-ID: <D1DF4372E04ED748A828405A3AF7AD96@office.hd>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0

Hi Juergen,

thanks a lot for putting us in CC. From the Unikraft perspective, we are fi=
ne with the change because we currently maintain a copy of the Xen headers =
in our tree. Our main reason is that we aim to keep compiling easier by avo=
iding off-tree references. Obviously, we have to update our copy but a diff=
 will tell us where we need to adopt our code.
In general, I like the clarity of the interface change that you are suggest=
ing.

Simon

> On 26. Nov 2021, at 07:55, Juergen Gross <jgross@suse.com> wrote:
>=20
> Today RING_HAS_UNCONSUMED_*() macros are returning the number of
> unconsumed requests or responses instead of a boolean as the name of
> the macros would imply.
>=20
> As this "feature" is already being used, rename the macros to
> RING_NR_UNCONSUMED_*() and define the RING_HAS_UNCONSUMED_*() macros
> by using the new RING_NR_UNCONSUMED_*() macros. In order to avoid
> future misuse let RING_HAS_UNCONSUMED_*() really return a boolean.
>=20
> Note that the known misuses need to be switched to the new
> RING_NR_UNCONSUMED_*() macros when using this version of ring.h.
>=20
> Cc: Roger Pau Monne <roger.pau@citrix.com>
> Cc: Manuel Bouyer <bouyer@antioche.eu.org>
> Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
> Cc: Paul Durrant <paul@xen.org>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> I have checked Xen, Mini-OS, qemu, grub2, OVMF and Linux kernel for
> misuses of the RING_HAS_UNCONSUMED_*() macros. There is currently only
> one instance in the Linux kernel netback driver. The BSDs, UNIKRAFT
> and Windows PV drivers should be checked for misuse, too.
> ---
> xen/include/public/io/ring.h | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>=20
> diff --git a/xen/include/public/io/ring.h b/xen/include/public/io/ring.h
> index c486c457e0..efbc152174 100644
> --- a/xen/include/public/io/ring.h
> +++ b/xen/include/public/io/ring.h
> @@ -208,11 +208,11 @@ typedef struct __name##_back_ring __name##_back_rin=
g_t
>     (RING_FREE_REQUESTS(_r) =3D=3D 0)
>=20
> /* Test if there are outstanding messages to be processed on a ring. */
> -#define RING_HAS_UNCONSUMED_RESPONSES(_r)                               =
\
> +#define RING_NR_UNCONSUMED_RESPONSES(_r)                                =
\
>     ((_r)->sring->rsp_prod - (_r)->rsp_cons)
>=20
> #ifdef __GNUC__
> -#define RING_HAS_UNCONSUMED_REQUESTS(_r) ({                             =
\
> +#define RING_NR_UNCONSUMED_REQUESTS(_r) ({                              =
\
>     unsigned int req =3D (_r)->sring->req_prod - (_r)->req_cons;         =
 \
>     unsigned int rsp =3D RING_SIZE(_r) -                                 =
 \
>         ((_r)->req_cons - (_r)->rsp_prod_pvt);                          \
> @@ -220,13 +220,16 @@ typedef struct __name##_back_ring __name##_back_rin=
g_t
> })
> #else
> /* Same as above, but without the nice GCC ({ ... }) syntax. */
> -#define RING_HAS_UNCONSUMED_REQUESTS(_r)                                =
\
> +#define RING_NR_UNCONSUMED_REQUESTS(_r)                                 =
\
>     ((((_r)->sring->req_prod - (_r)->req_cons) <                        \
>       (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt))) ?        \
>      ((_r)->sring->req_prod - (_r)->req_cons) :                         \
>      (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt)))
> #endif
>=20
> +#define RING_HAS_UNCONSUMED_RESPONSES(_r) (!!RING_NR_UNCONSUMED_RESPONSE=
S(_r))
> +#define RING_HAS_UNCONSUMED_REQUESTS(_r)  (!!RING_NR_UNCONSUMED_REQUESTS=
(_r))
> +
> /* Direct access to individual ring elements, by index. */
> #define RING_GET_REQUEST(_r, _idx)                                      \
>     (&((_r)->sring->ring[((_idx) & (RING_SIZE(_r) - 1))].req))
> --=20
> 2.26.2
>=20



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 11:39:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 11:39:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232564.403287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqZZa-0000KC-Gm; Fri, 26 Nov 2021 11:39:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232564.403287; Fri, 26 Nov 2021 11:39:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqZZa-0000K4-CQ; Fri, 26 Nov 2021 11:39:22 +0000
Received: by outflank-mailman (input) for mailman id 232564;
 Fri, 26 Nov 2021 11:39:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3zX3=QN=gmail.com=ltykernel@srs-se1.protection.inumbo.net>)
 id 1mqZZY-0000Ja-Pt
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 11:39:20 +0000
Received: from mail-pg1-x533.google.com (mail-pg1-x533.google.com
 [2607:f8b0:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7cdc487b-4ead-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 12:39:18 +0100 (CET)
Received: by mail-pg1-x533.google.com with SMTP id 137so856548pgg.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 03:39:18 -0800 (PST)
Received: from ?IPV6:2404:f801:0:5:8000::50b? ([2404:f801:9000:18:efec::50b])
 by smtp.gmail.com with ESMTPSA id
 f21sm7243932pfe.69.2021.11.26.03.39.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Nov 2021 03:39:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7cdc487b-4ead-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:subject:content-language:to
         :cc:references:from:in-reply-to:content-transfer-encoding;
        bh=ambWW/4YEyu662pYE46PBmuDJfo9av+csYLqJQyv9eI=;
        b=be/+Ee7qIA99Wogw9aDbu8FGuY+NkyZyPMuDQQQMyfJu74GW/p4hwR7Uk3SV8SOWot
         OTvvRslVrIRWr+jhwF4djz3GnmhzFxoTjzdSB66EYMTFp4ObhQoXBUaxMmS0E8ljOC5C
         BvMJB5gq9CLv6RX+bLXdcwcuXLE+FMY5lUFCbxIImkmK67mwpllFQSs45yZerfLFiBCR
         DbhWdfqUQ3x6YsTjsY/25enAc6WD87puZv3GLXecg2pr4iVTltkGoYwbxLChdmS97p73
         BAHuN7hbOH9DJ41QGZsyZO96dnKzD8IZFOupSItaLv9c137ht8NLB+g2Qd6+KKgLGpSA
         nk6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=ambWW/4YEyu662pYE46PBmuDJfo9av+csYLqJQyv9eI=;
        b=3Gtc8F0QeCPmtgm19Q38xvzSHhzL6KXegjE5NIoQSC837SJbqlxCzArazxEatgE/g3
         mzw/YNOktmzTFF9+0SQ+OL+hRwdUQs2Fds9HDO8X/OGlx5VZuIJ66pp1KVQX7AAMBj64
         sqJvkVd7MioONRjOMdu6/LtMV4GCVcxlXbuu01KfLo9MxRZdi5Nzm2vJbFw8RVhvg9Ed
         m70op/VP/7lGuvaxPVmqpShX01+rbDmPpMoYVggDNm1wTD05qpNRzG5+gi4iPxZE8MnM
         C7gXDsXctpslgfB7EJ2HpMy5n/Wsi6895KO8cEDavXsYc4JmRnZ4BSs8s+b51O4vVg5+
         MPRQ==
X-Gm-Message-State: AOAM531g0HbROg1RmuKfD9N6kLxpZtqX71CvuIn1zGt+tGaMRoEHWla1
	R89a8dzxbwYqFg70TEh14Bo=
X-Google-Smtp-Source: ABdhPJyqblxnRgV5wg5BPP9Vi1R0NhHs6AkjTX8lIUxkdCJzlfse/09nmYdMwJ3MumBswrLh4eDT7g==
X-Received: by 2002:a65:5a8e:: with SMTP id c14mr20429967pgt.241.1637926756738;
        Fri, 26 Nov 2021 03:39:16 -0800 (PST)
Message-ID: <e874b4c3-1d09-8d2a-bd59-80bae7e554d6@gmail.com>
Date: Fri, 26 Nov 2021 19:39:03 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 3/5] hyperv/IOMMU: Enable swiotlb bounce buffer for
 Isolation VM
Content-Language: en-US
To: Christoph Hellwig <hch@lst.de>
Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org,
 tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org,
 hpa@zytor.com, jgross@suse.com, sstabellini@kernel.org,
 boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
 sthemmin@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
 joro@8bytes.org, will@kernel.org, davem@davemloft.net, kuba@kernel.org,
 jejb@linux.ibm.com, martin.petersen@oracle.com, m.szyprowski@samsung.com,
 robin.murphy@arm.com, xen-devel@lists.xenproject.org,
 michael.h.kelley@microsoft.com, Tianyu Lan <Tianyu.Lan@microsoft.com>,
 iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
 netdev@vger.kernel.org, vkuznets@redhat.com, brijesh.singh@amd.com,
 konrad.wilk@oracle.com, parri.andrea@gmail.com, thomas.lendacky@amd.com,
 dave.hansen@intel.com
References: <20211116153923.196763-1-ltykernel@gmail.com>
 <20211116153923.196763-4-ltykernel@gmail.com> <20211117100142.GB10330@lst.de>
 <c93bf3d4-75c1-bc3d-2789-1d65e7c19158@gmail.com>
 <20211126074022.GA23659@lst.de>
From: Tianyu Lan <ltykernel@gmail.com>
In-Reply-To: <20211126074022.GA23659@lst.de>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/26/2021 3:40 PM, Christoph Hellwig wrote:
> On Wed, Nov 17, 2021 at 10:00:08PM +0800, Tianyu Lan wrote:
>> On 11/17/2021 6:01 PM, Christoph Hellwig wrote:
>>> This doesn't really have much to do with normal DMA mapping,
>>> so why does this direct through the dma ops?
>>>
>>
>> According to the previous discussion, dma_alloc_noncontigous()
>> and dma_vmap_noncontiguous() may be used to handle the noncontigous
>> memory alloc/map in the netvsc driver. So add alloc/free and vmap/vunmap
>> callbacks here to handle the case. The previous patch v4 & v5 handles
>> the allocation and map in the netvsc driver. If this should not go though
>> dma ops, We also may make it as vmbus specific function and keep
>> the function in the vmbus driver.
> 
> But that only makes sense if they can actually use the normal DMA ops.
> If you implement your own incomplete ops and require to use them you
> do nothing but adding indirect calls to your fast path and making the
> code convoluted.
> 

Because the generic part implementation can't meet the netvsc driver
requests that allocate 16M memory and map pages via vmap_pfn(). So add 
Hyperv alloc_noncontiguous and vmap_noncontiguous callbacks. If this is
not a right way. we should call these hyper-V functions in the netvsc
driver directly, right?

Could you have a look at Michael summary about this series we made and
give some guides?

https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg109284.html

Thanks.







From xen-devel-bounces@lists.xenproject.org Fri Nov 26 11:39:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 11:39:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232565.403294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqZZa-0000Q2-Tp; Fri, 26 Nov 2021 11:39:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232565.403294; Fri, 26 Nov 2021 11:39:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqZZa-0000OY-Ol; Fri, 26 Nov 2021 11:39:22 +0000
Received: by outflank-mailman (input) for mailman id 232565;
 Fri, 26 Nov 2021 11:39:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3jyU=QN=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqZZZ-0000Ja-Bt
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 11:39:21 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7ce0d088-4ead-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 12:39:18 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:39298)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqZZN-000VrR-pA (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 26 Nov 2021 11:39:09 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 845941FA77;
 Fri, 26 Nov 2021 11:39:09 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ce0d088-4ead-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <5665bac6-4315-dccc-3a36-5910f5624146@srcf.net>
Date: Fri, 26 Nov 2021 11:39:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <1637880559-28821-1-git-send-email-olekstysh@gmail.com>
 <b51fd518-6c32-c945-d220-f2092ff2666a@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [RFC?] xen/arm: memaccess: Pass struct npfec by reference in
 p2m_mem_access_check
In-Reply-To: <b51fd518-6c32-c945-d220-f2092ff2666a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/11/2021 07:46, Jan Beulich wrote:
> On 25.11.2021 23:49, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> Today I noticed a "note" when building Xen on Arm64 with
>> aarch64-poky-linux-gcc (GCC) 9.3.0. It turned out that Andrew Cooper
>> had alredy reported it before [1]:
>>
>> mem_access.c: In function 'p2m_mem_access_check':
>> mem_access.c:227:6: note: parameter passing for argument of type
>> 'const struct npfec' changed in GCC 9.1
>>   227 | bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla,
>>                                   const struct npfec npfec)
>>
>> From the explanation I understand that nothing bad actually is going
>> to happen in our case, it is harmless and shown to only draw our
>> attention that the ABI changed due to bug (with passing bit-fields
>> by value) fixed in GCC 9.1. This information doesn't mean much for us
>> as Xen is an embedded project with no external linkage. But, of course,
>> it would be better to eliminate the note. You can also find related
>> information about the bug at [2].
>>
>> So make the note go away by passing bit-fields by reference.
>>
>> [1] https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg87439.html
>> [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469
>>
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>> Compile-tested only.
>> ---
>>  xen/arch/arm/mem_access.c        | 28 ++++++++++++++--------------
>>  xen/arch/arm/traps.c             |  2 +-
>>  xen/include/asm-arm/mem_access.h |  2 +-
>>  3 files changed, 16 insertions(+), 16 deletions(-)
> It's all Arm code, so I'm not the one to judge, but I'd like to recommend
> to live with the note or convince distros to backport the gcc side fix.
> This definitely was a compiler flaw; see
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91710.

I too would recommend just living with the note.  The code change
proposed is a backwards step in terms of runtime complexity - you're now
passing around a pointer to 7 bits of information, which the compiler
cannot pull into a local because of C's aliasing rules.  At a guess, the
very best an optimising compiler could do is turn it into only two
dereferences of the pointer.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 11:52:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 11:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232580.403316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqZlw-0003CS-3Z; Fri, 26 Nov 2021 11:52:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232580.403316; Fri, 26 Nov 2021 11:52:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqZlv-0003CL-Vb; Fri, 26 Nov 2021 11:52:07 +0000
Received: by outflank-mailman (input) for mailman id 232580;
 Fri, 26 Nov 2021 11:52:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqZlu-0003CF-Ba
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 11:52:06 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46597f08-4eaf-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 12:52:05 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2107.outbound.protection.outlook.com [104.47.17.107]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-13-fuTeFXlWNICBOM2NAM-E4w-1; Fri, 26 Nov 2021 12:52:03 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4191.eurprd04.prod.outlook.com (2603:10a6:803:45::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Fri, 26 Nov
 2021 11:52:02 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 11:52:02 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR04CA0001.eurprd04.prod.outlook.com (2603:10a6:20b:110::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Fri, 26 Nov 2021 11:52:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46597f08-4eaf-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637927524;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=9PgOImdRWfcwOGjbSypjOtLTYYj+S+Au2mt+2qxoQwc=;
	b=dlN6hAC+ovFY1t55+/47UwNR1MGJJ6I90WjJw7Wjd49hBvSR4pQF3Yd7HKqeAv+R3FYeON
	lLmPn4ajLpBt86CTWWDIxXNuHPi9Q4BXlGeR5XhxiXXoITiiYAsjOuC7PO2LAES1PHpQGJ
	G8Y5GCePxcjWHFuDXp36wHlqkXV76DQ=
X-MC-Unique: fuTeFXlWNICBOM2NAM-E4w-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WIV00Rk455ysMFTKi64LrJvCR2cTfT1bOVTR5x++QpcVmPdaui1FMYZNWEYjz9pDRp0tVz5d5okgCSvIfkeN8HAsrDrFe2JPDOfCarzee1xr3awnxttxs0lwxcKEsY3DuwCnu4SwIF1vSSX791MRoL6614NRba00/tMwxOD5YL8L0MEa60hjqEbV2i/8xnVO6Jijhmx8sdE8fNJSzPfEJsFFgi4xw4a4AXVtEXbyM7v6qIHKSyWX2fwgm5CZ+hM94q0jC7ptpeODwFm29g2BF3Z/qVoe7QpdL3HlXqzObTcG+1YVVZn98S8AxlbqZuRxmB0zbDQvzDnE5Qa5GQlEGw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9PgOImdRWfcwOGjbSypjOtLTYYj+S+Au2mt+2qxoQwc=;
 b=JtUzkdm6TN5jTWiInOMF4F3gW0OmG4VgW599A2ohfLQpSFGLRMqLXRMJ7agssgex7fOCMmgE97CbbQKP80tfpCtas5tEQisdAODPab2/Hdzgg0AhS8fhm/oxgG1ysYb8tsW/ik3+AzGmB4IYklWNxFXeN2GVRvmHrN1QusWFtJJbSC53r/mhKUSmITQJIghP+IoZsR7cV9WPowEZ9kWnCs8ELeYRP90YJhJNPXFSB3D7LKKiF8AhvLzX4j7Hm6HXMXVY/GoH3emrjgEo7nb3Lek++enmZHJxoB7yeqKyfrHnJYr4hIe2nh0ayjrzOurvRXG1pyED9STa+uAjynECHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bef5ff51-475a-e8c4-83fc-950df4516399@suse.com>
Date: Fri, 26 Nov 2021 12:52:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
 <0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
 <a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
 <b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
 <0c0e67f3-5e0a-f047-ca09-1cf078e6b094@suse.com>
 <71ef250c-be92-2b2f-0f07-ce32c17d8050@xen.org>
 <ceec5b56-65fc-8bb4-b9e0-1e16aea8c412@suse.com>
 <c2d312c2-c413-4e07-1c0c-8652cab40784@xen.org>
 <0b808ce0-23a2-65ae-dfb3-b167d5565b31@suse.com>
 <6bcd1555-ee0d-dd6d-55ca-0ca0e64c3623@xen.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <6bcd1555-ee0d-dd6d-55ca-0ca0e64c3623@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM7PR04CA0001.eurprd04.prod.outlook.com
 (2603:10a6:20b:110::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b5d03d65-56c3-4765-015c-08d9b0d328c7
X-MS-TrafficTypeDiagnostic: VI1PR04MB4191:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB41913435DD70C18759E6D6FBB3639@VI1PR04MB4191.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NolMyYIqBqpIxWUNIHteMjIP9/rNXIMBNMzEQZwSpRbVAOYlolCCmHdzjvFWhlWR3kH1htLOighqeV2TLDQ+zrGEoP9jkfCbGGUYUZRWoeDnMWHE/VPBzyyllBSzmU0Dvk1yEjV/hkWl9L1MPf8A32/cn45T5YL6Bz7mSCf+M9/J4cbZG73th491pl3pQgJ+M5X5H4tqSOFEtJQ8l0nifbyeTK8UXK+zfi45OBVQtNVy3wVYGz1B5UINzTvqJIKpT0zAx6jP8EnWNCy0oYbCrMZ4khz3ZcaYpgSwNGz9bMsYpPNSaF9fUbvFIOohO768nYFQYz7lrUD1Ydg4lZxDULZ8sdMGBQKRrRyJj/jt4OEeQxKV85KTAWCzd2Uvu1VsarrHEbxgHVBkRnfjzyDSD/d3rjoN9awahKG/fnstXdT/1/aJmTK6Ix3RguuR4EaTvaLZy/dN8veTqEpH6iy6V9IjCC+wNtIBMZFarZsEJfm+kG0+2AvYH/AN6aF9eJjgI9FGPek9/El9Fgub/KstHPJOJvaijnd0rNXAO9HRYyW97HVgXsNVP+rR2bGEVs1Ditnmjg7jVuhyVYT023o6KnA5ZkLxCSM/5uM71qXwsuLszaw1HOK6aXzmBXsL9BckTWAOHRVllm6bc0OG7zKSGNZC+dmgV4fHd7wQ+uDf0srTZDtKzdQC7Rt60nljJYBsWolFQfUYtSdLYAV0AA/6SQOg5fmpXC/07CuwHoj6kVDJgtW8IEgI+4WHhX+VXBZi1Cd6F9sYmi2uDDsWUTaVClCDouRFoh+gQ7ArFJdxGUrxwaWhHg+rji4KTh+SeAR4w/xHEad33uYzf+/Fym+vmGwd/990aajHrXwIVsd2QaQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(16576012)(2906002)(38100700002)(8936002)(5660300002)(83380400001)(54906003)(31696002)(2616005)(186003)(4326008)(31686004)(86362001)(66556008)(966005)(66946007)(6486002)(36756003)(956004)(8676002)(6916009)(53546011)(26005)(508600001)(316002)(66476007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bVV3aDVIaUZNTms4NXhYbXNlbU1SdmpHcWxRcEZCUmpkU0p2bzkrNVVJOThp?=
 =?utf-8?B?b1ZVMDNzblpyN1JTTW80eG1Kb0JZczgzM3Z2ckNnemYyejNHb3RuOE5MNmdT?=
 =?utf-8?B?dVdJZW96N2IzWHh5WjI0dWNON0k5akxiWHdyWk9VRjVtL2R6UUdOVk81OVZZ?=
 =?utf-8?B?QWR1QWo0M3pwMDVJVmk0aDVxQVN3S3NEcHF0U2pYdFZhc1FIYlpNL0JaOERa?=
 =?utf-8?B?a3pvYlFuWTNwZm9sbmE2K1JDdERyWlBoVk5lYy9RV2tFTnlQVUwxU2hOK2VE?=
 =?utf-8?B?L1F6a1djSm4wYmtkY3VSQTY0UTZyWDd1eEFxM0FEbnUzdUxzUzhrUlJHTVRR?=
 =?utf-8?B?blBsTVNzZVhiVkJxMnBxUWc4bkg2VExxVFN2eXNXQU9qZTdOY3lYejdReDR0?=
 =?utf-8?B?RVpuZjdib1VLUFY0TlF4VWx4OXVJUDhJajF5N0RwMVlSc3E3OVlPTmNSUWtv?=
 =?utf-8?B?RVBtYmhFQjFMaUppR0pCaEdjV0lEUk5Nb1RkVHhHOWdoYWZ1ek1BWTlmYVVE?=
 =?utf-8?B?bW5wL2Zoa2Y1R2FxUDZPVVgvNEhZUkJBZjhaWjkyZU0yMzk5WnNJSHdmMFJ5?=
 =?utf-8?B?QlYybzdzSFdPWUFqNzkxdVhHR1d0dDJEc0ltcmF3aFg2OEd3UTArNCs0MDZR?=
 =?utf-8?B?Y0pvRUphRVVDRnBNU2FwbHVhQzhvYXJ5OXFSVzVxL0xQL0hqZGI0NjNxUXRv?=
 =?utf-8?B?L3U1YXZkeHE1ckttVFJETU9EeWNCMjEvamJGU1pmc0psWGtNcDNjNzBoTUNj?=
 =?utf-8?B?RmU5TS9VeUs4QUsyN3BMdVo3SXRSYjEwYk9wTHpFMjJwcnNXai9ZSFp6QWYz?=
 =?utf-8?B?bFNxdXNQNHQ3UVkyMkRxeGl2aDdsSXZ2ejNWeWdSV0RBMFZhWmhqZWRLcm1M?=
 =?utf-8?B?SC85cTAzbjBTcko2TTU3eFNYREtSSnBOV3N2Tm5Ea1ZZcU53MjJuQlRFS3FP?=
 =?utf-8?B?SnVWVFlqRkExeDNMZmt5ZGJCYmRVZlpSRE5nQVQrTVd0R1paZnZHZVplNTRW?=
 =?utf-8?B?Y2ZFcVNab3dqR3NTODlGYURNblVSSFhEdWVjNHVoSmZPS1VRQ1I2SXZVZHA1?=
 =?utf-8?B?OWhGaE93OVlkamxON3NnU1R2MTZSeUp0amdUbG1oZE81TW9TUnNZck1pRUx6?=
 =?utf-8?B?ZS9KTVVHMmdpN1Q1TDgrZndhcnpyem82a3VyQ3l3Yit6aUorY3RyY3RjRnh0?=
 =?utf-8?B?aXBiem4zYnZUaGl6aWdtLzlyWVBadzBzcUkrd3dDRDUwR2VyWEw4LzBjZEND?=
 =?utf-8?B?Mk0yeE4wZWJDMVdEQkltejdOVVBPazFseDdLSUdQT2dSRGFhdHc5OW5aNnR5?=
 =?utf-8?B?TjFhSlVIOGpJdTM4YjA1TzdITnhMdmhSaFRjTzNMWEZQQzFJR1RLU0JzL0ty?=
 =?utf-8?B?eitTQ1grV3JzSktYNk42UjV0M254ODJOVWUrckcyVVBpbnIzUEoxSGFPMWJM?=
 =?utf-8?B?UVV3WXl5TDdTcjV5YmlpM3d1Rkl3MTNCYWJlSEZNbGxWbXoraFNwRSs0c3lr?=
 =?utf-8?B?WWtRNUJ4eFZjbE9SVno5ZzZGS3lWNXRRSWllVzFwZXF6dEpRT0NNVms3TGxp?=
 =?utf-8?B?RmJVcU0vY0VpSWtKTFFNY0VEVldVdGdFMUcvVnROTHAzTTd1TmZrQ2FCQVBz?=
 =?utf-8?B?QnpLVVRKY21VMHdhNlhNMkdxZTdydlFWeVdLbHdrUHBWZUxNZkJ4T0RLa1N4?=
 =?utf-8?B?VnhoR29ndmMxRzZmWC96U0xqOWl1K3JNZm1GK245ZlRWRERVZ05vcldTTnp1?=
 =?utf-8?B?V2dvdFlXV3ZzRE9STTR1NXArRm1ITGFwYzFRKzZHVkRZTUR5eXFkUmo0L3JB?=
 =?utf-8?B?ZUlaYkwxeGs4OG5YbWpNUmdyY25SOWtMRS83UzdXYlN1VjZLb1VHSW9DZ1Iv?=
 =?utf-8?B?d0xpZzNRaXJiMGxvY3JIMDZLcU42QUhuMXBCbTFqNHl0a215MUZOWHhnb2Z1?=
 =?utf-8?B?VWVnQlk0SFdwTkZGQXUwT2V6Q1NEQmI0R1RPc09GQmtyQzh6VTVRcVNpNUlv?=
 =?utf-8?B?Z29WWE1UbXc3cGtNMmN4NldWNDN2UlFSWFhZYTE5clRKdFVWWDFqTEMyZTdp?=
 =?utf-8?B?UGxwbmdiMjBJOTR6QTMxanFOcmNsR2hSU0lNMnJUL1BKTTNUd3NDUnRiQVRv?=
 =?utf-8?B?UERuWEZwNlZoa0tMdW8wUUlWK21nV2hKSFQ3dXRNTWo2N0lKWFJIck1PdDlx?=
 =?utf-8?Q?dtS7SkvjWDjbkOblgZisCg8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b5d03d65-56c3-4765-015c-08d9b0d328c7
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 11:52:01.9763
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GqKQtF3CLLLmmM0+QVbajjMbO6DxnclFiwwdnA5tNnbUdL5Fg2wwGerMqU1qCFU+0nphFG62azQosfx0jHowwQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4191

On 26.11.2021 11:04, Julien Grall wrote:
> Hi Jan,
> 
> On 26/11/2021 09:12, Jan Beulich wrote:
>>> Anyway, I think it would save time for everyone (you had to manually
>>> delete signed-off-by after all) if you just copy the commit (including
>>> all the signed-off-by) message as-is.
>>
>> I don't think I see why you found it necessary to verify the S-o-b set.
> 
> This is a list of difference with the Linux commit that was unexplained 
> to me.
> 
>>
>> Also note that, for things to be useful in our tree, I may also edit
>> commit messages in mechanical ways (e.g. to change file or function
>> names). I don't think you can expect a 1:1 match in any event.
> 
> I am fully aware that I can't expect a 1:1 match. However, if I see a 
> difference, then I need to be able to explain it.
> 
> For this case, you provided some sort of an explanation but so far, I am 
> still waiting for a link to confirm that the signed-off-by match the one 
> on the ML.

I haven't been able to easily find a mail archive holding this patch.
However, to me

http://lkml.iu.edu/hypermail/linux/kernel/1710.1/04375.html

clearly suggests that Jiri merely took the patch and applied it.

For patches 2 and onwards the Linux commits contain links (which I
did also retain in the posted patches), i.e.

https://lore.kernel.org/all/20191104185107.3b6330df@tukaani.org/T/#u
https://lore.kernel.org/all/20210604085656.12257-1-thunder.leizhen@huawei.com/T/#u
https://lore.kernel.org/all/20211010213145.17462-2-xiang@kernel.org/
https://lore.kernel.org/all/20211010213145.17462-6-xiang@kernel.org/
https://lore.kernel.org/all/20211010213145.17462-4-xiang@kernel.org/
https://lore.kernel.org/all/20211010213145.17462-3-xiang@kernel.org/

Going through those made me notice that on patches 4 and onwards I
should put back one more S-o-b, albeit for all four I then can't help
thinking that authorship is really the other way around. But I'm not
going to put effort into finding out ...

This exercise also made me notice that I have the last three patches
the wrong way round. Not that this would matter much.

FTAOD: Are these further inquiries of yours actually intended to tell
me that I should not have applied the ack that you've sent first for
this one patch?

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:20:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:20:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232648.403398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaCs-0007Kg-GJ; Fri, 26 Nov 2021 12:19:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232648.403398; Fri, 26 Nov 2021 12:19:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaCs-0007KZ-D4; Fri, 26 Nov 2021 12:19:58 +0000
Received: by outflank-mailman (input) for mailman id 232648;
 Fri, 26 Nov 2021 12:19:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=l8BS=QN=epam.com=prvs=1964012c71=oleksandr_andrushchenko@srs-se1.protection.inumbo.net>)
 id 1mqaCq-00079e-Hi
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:19:56 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2925b5d3-4eb3-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:19:55 +0100 (CET)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1AQBauFu002728;
 Fri, 26 Nov 2021 12:19:45 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2111.outbound.protection.outlook.com [104.47.17.111])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3cjwtr0cdu-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 26 Nov 2021 12:19:44 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com (2603:10a6:20b:153::17)
 by AM0PR0302MB3428.eurprd03.prod.outlook.com (2603:10a6:208:c::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 26 Nov
 2021 12:19:36 +0000
Received: from AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651]) by AM0PR03MB6324.eurprd03.prod.outlook.com
 ([fe80::c038:e032:595a:651%9]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 12:19:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2925b5d3-4eb3-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ORb6+PizVGtoovzi9WJhKaX6voejuoNyKFAtlN3PQMjRwO7Epdzu5iSd5TfrgtESaLR88Pz32nICQZw9ng0/c720WzoORPJGlIlMQy4iAsUvSWzH4QZiAebLiDOIRpIFeOyN680Asx9HEWH1uCdKocXsqVKufD+9KuuaK6Hn7ipBGrMZIKxLPmKMklzQr0XlSrlHb8MkRqb4aDpy2SN1ua5osrqTdHqVYrbA6VqYk7Z2TKltu2jw+aEeyVqOp/Jic3YWHZKMYKbSnKH2lHt+P9QjSbYfhzxQSxu0QxzDcnLEq53kncpe2avGlq3dh169yUIMIomDjmmQZemiEGHF2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4CJN6twaB/kwiO/2k7M17iV0qjqIB85527pwEKBSqL4=;
 b=OE5NniKjdngx0CB5YQ1o+1cVHjqVz/EEsmyKLUpTbJUPDEO8HPOMLGzoqtqtX6rc03Sl6gzanQWviGRqe3QFdPczV9KCzIGcSzP4oZDG1U/MG4fA/KpZxjSF256ZPVcZwxIvt47yhGjIqWkpMKyQFYHvf+jJXVh3bQ939K6tIZUlfh8AQEwPHDF9cio9gdgHa/Wt/6kMCt9nIGfBxHFLIizvgn3NMjB1opUHYeJAiPANyESPDUZI5qz6UKWKnDeNx2pK0/74ck4gxocYeC1Lu+V3pxnwY68IwqrDViEOsxePVkLS4xQwp+e4yI/+PyYPYDhE86yC0p3AnOocGZac/w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4CJN6twaB/kwiO/2k7M17iV0qjqIB85527pwEKBSqL4=;
 b=Bf2IzO9gffoICiz6x+fohKvWs9ylda9UA8W9oIhWx9EHGBZbY9mTmjftUh/Q6bDFKyqmVoVYWth4JZH87T/tOB4oU03AoSVuuCGuls3RqbmlL40u06UjKawqZ3vI7Kc6mC2964EfLzh5g40JwOSi7JJrszK9S8hdYyQ1e7NcmVoUktER7p7Sx28pZZSZfZfYiCi6UurtN441EMGZw9Dz1Ig6xqwH+cS+vqZoi2PO+0Mjb5mkwWYRN1qok2SsRnKuSrKgnXG4C7seaiJQQ3h9Pmwb76KE9ONZKzdIHsKiOBaQPHBOJ/b6FJb5+7suPyS0/mLPNeoJVpG6vnTJQ+Q9Bw==
From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
To: Bertrand Marquis <bertrand.marquis@arm.com>,
        "roger.pau@citrix.com"
	<roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Artem Mygaiev <Artem_Mygaiev@epam.com>,
        "jbeulich@suse.com" <jbeulich@suse.com>,
        "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>,
        "george.dunlap@citrix.com"
	<george.dunlap@citrix.com>,
        "paul@xen.org" <paul@xen.org>, Rahul Singh
	<rahul.singh@arm.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v5 06/14] vpci/header: implement guest BAR register
 handlers
Thread-Topic: [PATCH v5 06/14] vpci/header: implement guest BAR register
 handlers
Thread-Index: AQHX4ewHyWAyD811HEGp8pIjUuVWNawUby8AgAFMuIA=
Date: Fri, 26 Nov 2021 12:19:35 +0000
Message-ID: <a6ee236b-5a00-8116-c744-6c94fcf46ae1@epam.com>
References: <20211125110251.2877218-1-andr2000@gmail.com>
 <20211125110251.2877218-7-andr2000@gmail.com>
 <34FC3FE6-EBA8-4A5C-A1F3-1E9F98C0337F@arm.com>
In-Reply-To: <34FC3FE6-EBA8-4A5C-A1F3-1E9F98C0337F@arm.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 1af71ed0-bb3b-4311-8abf-08d9b0d702ba
x-ms-traffictypediagnostic: AM0PR0302MB3428:
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-microsoft-antispam-prvs: 
 <AM0PR0302MB3428CC62BD187FF0FE34E975E7639@AM0PR0302MB3428.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 zmG3WO0jvcheHsiqFAljNe4hPZigfU/ah2YYKYh/HoR/T8S6NY4sQ0LWZTF7AszpTSiTAhlM9oF7oBCtrtYONghNORyXFBVOXsG9YcwOoFWG9wLevG89hrKKrJ0Mp++em1rg/8938+x+d682gxXlLooBGbLUnzF7iHVrpP2IZut9rt6bQ6RJYhOO8oHkLzser6i+lWkK9tdZFnb1spq7rCdQ1MtEOyVp35THzfWczE0GXKg7JAcBzlzhRFsDrf1dHin2rK70GVEeAsp5FaiO146xNsKEagyzsinuzFlYYWrKvprHnE2M+4QIwK1BR1xO5YeVABup9+HaNEhS/yPm33HBFBA45cAl35xe3mVLn3G3j8YVEO3zfIIYpK3BM6gvJiiC9WQv5NZQuMbCRVcKXOGFNyAhBmEhkFMuOT0ol1xRsgkGfEg2BMxU4+KS2WNJSKx6UtxCc8KOBubXJ8Ahf/5KZUiYZHGtpIlutPn3kgcA2M1YfMgnOFabgPIO6L6rxQgWS65KIt6od4p45lX+/76e+V+lD5BipNFWHFaP1aX41tNfWLVnYh0Q/RJdzByQ8KeelVjA182jWqFMam1HXoDuNvhHUkMD+a4hEXhkN6d/Ned9IGViKwPV3aThvq5Q0B5z4EUebqP84lQvF1HSLZsGN+s7pqf76xVVzl3YSesE188F9eTR5LHR/3xle9hdxGxkRA/Pl6e4sAfkPM8gRurrx/VEQR3heNFRGyPiia+zU3ADju4eiOOBZ0A1xfDq
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6324.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(186003)(38100700002)(2616005)(26005)(38070700005)(71200400001)(36756003)(8936002)(8676002)(122000001)(31696002)(66446008)(508600001)(6486002)(6512007)(66946007)(86362001)(64756008)(66476007)(7416002)(66556008)(107886003)(91956017)(76116006)(5660300002)(4326008)(316002)(54906003)(110136005)(2906002)(6506007)(83380400001)(55236004)(53546011)(31686004)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?dzJKb293TU5pdEJEOEZLTUQxZ09NdTFIQ052ZG80dzk2a0ZoekRldkkvV1dz?=
 =?utf-8?B?OVF5NXVsWGFwZExMOXRaM0lPZTRSZjE1Q0ZxTXVha1o2ZDVscWFWQTlra2R1?=
 =?utf-8?B?bnBWN3VlM2FtbzkzblNQVDFjR3VxZmFlMHF6bVoydmlJUE42MW5oSFlqaEQ0?=
 =?utf-8?B?UXBjVkpNZGdpSG1EZjBxSmtPR0VHVnlSSEFIb0Z2UXR3dTQwNUQzWnB1NTJt?=
 =?utf-8?B?RDNqQ3VVNnVVd3dweC9DVEJiejJGQ05HSWpnakFNOG9uLzJrUmo4bjk5aVFR?=
 =?utf-8?B?T1ZzNWJsU1A3L251UzF1ZzlvSnVGcE5FR045LzltSUNxRE1lMnpCcEhHWlds?=
 =?utf-8?B?OGs0NmRvQzIzOEpDQ1hFRkMrN1N0c3prZDFTL1c1ZjVwVklSN1FXWS9KWU9I?=
 =?utf-8?B?a2ZyNDZOMEMvZWxlOUxVSWVoK3NhcG93SDRoTENyUUdaWVlCYmw5d2NQY0xt?=
 =?utf-8?B?a3dDbXc4UzBtVWV6TDdTOFc0ZFNJRkIyMlNTcUFncmZ3dEIraDdwd0NVZG9P?=
 =?utf-8?B?RmJjQnpLUEtMeGR4djNLM1ZwVGd0UzN6QnZWSStHZ0tRVU1tdUhIaDB3dThR?=
 =?utf-8?B?dDVOeWpUUHBYaUlzVmRqRjJnR3pqTENCVHFrK1RBT09MRHRQL1Y0TGhVQ2FQ?=
 =?utf-8?B?cDVRUVRpbXlvS0QzSXZvckU0ZWxVZnFJTnkyTTBnZzc1KzZ6ZHRJcE1EbmNj?=
 =?utf-8?B?MHViR3NzeUhSaG95cGRNYzBwNzRuVmlTUjZUcS95YU1aT2dIVUlvS1Y5RUdr?=
 =?utf-8?B?ZXV3dm1EY1RnUnU0U1V1T2lkenNTMTZxVE1QRjUrSnNRQnNFc2FZa0dvWGFL?=
 =?utf-8?B?bXd4b2drVzgwWk85aGFtRkJqZkJtTlFyZEdQcmx6S2w5QS9qQTRkaXBteXNE?=
 =?utf-8?B?enpLVkxVOHJHNVdzQVpoeDBDYk9hT0JCSTNwTCs1aXo2b3Jna1NlNDdXOUR2?=
 =?utf-8?B?WlJZY29wOFFTcjZqNWs4ZWZZRGVpZ041Y2xibWZ3S2xocklXdGxUYXFjbTd6?=
 =?utf-8?B?YjNpSk9tVFVId2U5VVFLbXh6bnpRVHVPdmNCaStMVHhtaEVjMkJXcTBhaExi?=
 =?utf-8?B?MFJBRnBxUW1SdjVUNHFxaVZwek4zSUFvMHk5aVpLSHVGUWFONVA2ZTFJN0tI?=
 =?utf-8?B?dFVvMjhOazVIcEtHOVBLSE9RVEFkb1BNS2NiQnQ3ajQrRVFjYlBxV3JwYzVG?=
 =?utf-8?B?Y1VxUTRZSHZVeUhBMDVNRzlHRDl1QUxJdGpuQ3EzZUliNmw1Y0pkNUdWakhG?=
 =?utf-8?B?NXRzM0VtU2VWZ21GWmtWaCsvUkJxVWFpK1JMZjFtTHQySm1GWnVSWEU1cHdP?=
 =?utf-8?B?VTZBNU0zdzFWQU1WUi81cXB3aURrM3VMQ1RsMXQ5b3hGUWJFdkMwcktZRXpB?=
 =?utf-8?B?MGZwajh2UFMzWFJGK29DU2I5aGtlNmtPbjRiUFVRVmNKQVJVcWFmZkVadE9C?=
 =?utf-8?B?WCtIQkdEM1Z3US9rK3ZmM0l2SDhuOUxHdVluek5PMGx2SGtFTnpSTERvYmZE?=
 =?utf-8?B?Z28vNTFyOWVvV25iL3JaOUsxanRQbXdWR2ZjQ0JudkMvQVZNTmYyYjhIVE1L?=
 =?utf-8?B?UHFReDBFcWdORG1JWG1qRDJCaDhEQ0lFMWVSa0psM0FoellleWczMUJ0TmU4?=
 =?utf-8?B?NUp2Z0dmcFZYOHVXN1V2WHBHbmxTUEZmK3V4dVRldVFDcUZuTTRJTUZ0SWhQ?=
 =?utf-8?B?bzI0QjRvMjJBS3hKejUyL3NncngrallWZ3VreHV2UXRzQlEwSUhoWjdQcHU1?=
 =?utf-8?B?WDlnV283WlpvdkVQOWxnczV5Rmp3S2srQ2ZJVmpwU0FHOW5IWFJnQlo4Tmg1?=
 =?utf-8?B?ckdSemxQTGZmSUxHS0NSV1AwcFFNZzQxanlyRnVOaW9JcGNuMFJmUU5heFNh?=
 =?utf-8?B?cG51bkM3aHRPTlB6K3p3SGVET3JzSmFWQXNnL1JIL2JyM1l3WXdEUFhqVVo0?=
 =?utf-8?B?UFVZK2E4K2ZhM3RjKzJ4NnAxTWVrVjRyckI4OTdCaG0xd3d3RU43MzFiR3Nt?=
 =?utf-8?B?L2RNUnNqem9ENnJ0K01UZUd1NTkrbE1KQ0NWZlc5YWxoVWRHNGtUMFRXZXJK?=
 =?utf-8?B?aVd5bjV1c2d4K2JmcVhkUnpNVWFLd00zcmJTTnIzL2YzRkFyRCtYYkY1bCtK?=
 =?utf-8?B?empPSVB3QzhwT3l6SVBWRGw5dllxUzlkVnhYNENFQVNjczhIWjYrdzBNTnla?=
 =?utf-8?B?REdyOGZNZStIUUgzUGN2RlFzRTBjTlhlUzNrN2NWVzlCRUxwUkU5SXRrTmNI?=
 =?utf-8?B?UnczQnUrV0pMWG5lMFdvaEgzbFFBY3p1YlZYU0VHRFFneW81Z2NYQkdrRXJU?=
 =?utf-8?B?VGdxTjAxWDMzNWpkTlBMS3ArMGdmbkt2N2N0YlVtZytRK3BwR3hpUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0FC9E477967B5344AA0FCE1A07344634@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6324.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1af71ed0-bb3b-4311-8abf-08d9b0d702ba
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2021 12:19:35.8608
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UweeIsC2LMWVikAnOamCnCRVLnBpTt3/iXN1216DH2EaGy1lpd9bxydbpfIF+jKzH+KHeTM7Rnrq5jWnVYbh21YIzZn2qa3cREdHTSqI60mCtNjjaC1kDuS3mGixae3J
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0302MB3428
X-Proofpoint-ORIG-GUID: STJUTReb5n_nCz0qnjvJAZV5PjptMEX2
X-Proofpoint-GUID: STJUTReb5n_nCz0qnjvJAZV5PjptMEX2
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475
 definitions=2021-11-26_03,2021-11-25_02,2020-04-07_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0
 mlxscore=0 clxscore=1015 priorityscore=1501 adultscore=0
 lowpriorityscore=0 malwarescore=0 impostorscore=0 spamscore=0
 mlxlogscore=388 suspectscore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2110150000 definitions=main-2111260073

SGksIEJlcnRyYW5kIQ0KDQpPbiAyNS4xMS4yMSAxODoyOCwgQmVydHJhbmQgTWFycXVpcyB3cm90
ZToNCj4gSGkgT2xla3NhbmRyLA0KPg0KPj4gT24gMjUgTm92IDIwMjEsIGF0IDExOjAyLCBPbGVr
c2FuZHIgQW5kcnVzaGNoZW5rbyA8YW5kcjIwMDBAZ21haWwuY29tPiB3cm90ZToNCj4+DQo+PiBG
cm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBh
bS5jb20+DQo+Pg0KPj4gQWRkIHJlbGV2YW50IHZwY2kgcmVnaXN0ZXIgaGFuZGxlcnMgd2hlbiBh
c3NpZ25pbmcgUENJIGRldmljZSB0byBhIGRvbWFpbg0KPj4gYW5kIHJlbW92ZSB0aG9zZSB3aGVu
IGRlLWFzc2lnbmluZy4gVGhpcyBhbGxvd3MgaGF2aW5nIGRpZmZlcmVudA0KPj4gaGFuZGxlcnMg
Zm9yIGRpZmZlcmVudCBkb21haW5zLCBlLmcuIGh3ZG9tIGFuZCBvdGhlciBndWVzdHMuDQo+Pg0K
Pj4gRW11bGF0ZSBndWVzdCBCQVIgcmVnaXN0ZXIgdmFsdWVzOiB0aGlzIGFsbG93cyBjcmVhdGlu
ZyBhIGd1ZXN0IHZpZXcNCj4+IG9mIHRoZSByZWdpc3RlcnMgYW5kIGVtdWxhdGVzIHNpemUgYW5k
IHByb3BlcnRpZXMgcHJvYmUgYXMgaXQgaXMgZG9uZQ0KPj4gZHVyaW5nIFBDSSBkZXZpY2UgZW51
bWVyYXRpb24gYnkgdGhlIGd1ZXN0Lg0KPj4NCj4+IFJPTSBCQVIgaXMgb25seSBoYW5kbGVkIGZv
ciB0aGUgaGFyZHdhcmUgZG9tYWluIGFuZCBmb3IgZ3Vlc3QgZG9tYWlucw0KPj4gdGhlcmUgaXMg
YSBzdHViOiBhdCB0aGUgbW9tZW50IFBDSSBleHBhbnNpb24gUk9NIGhhbmRsaW5nIGlzIHN1cHBv
cnRlZA0KPj4gZm9yIHg4NiBvbmx5IGFuZCBpdCBtaWdodCBub3QgYmUgdXNlZCBieSBvdGhlciBh
cmNoaXRlY3R1cmVzIHdpdGhvdXQNCj4+IGVtdWxhdGluZyB4ODYuIE90aGVyIHVzZS1jYXNlcyBt
YXkgaW5jbHVkZSB1c2luZyB0aGF0IGV4cGFuc2lvbiBST00gYmVmb3JlDQo+PiBYZW4gYm9vdHMs
IGhlbmNlIG5vIGVtdWxhdGlvbiBpcyBuZWVkZWQgaW4gWGVuIGl0c2VsZi4gT3Igd2hlbiBhIGd1
ZXN0DQo+PiB3YW50cyB0byB1c2UgdGhlIFJPTSBjb2RlIHdoaWNoIHNlZW1zIHRvIGJlIHJhcmUu
DQo+IEluIHRoZSBnZW5lcmljIGNvZGUsIGJhcnMgZm9yIGlvcG9ydHMgYXJlIGFjdHVhbGx5IHNr
aXBwZWQgKGNoZWNrIGNvZGUgYmVmb3JlDQo+IGluIGhlYWRlci5jLCBpbiBjYXNlIG9mIGlvcG9y
dHMgdGhlcmUgaXMgYSBjb250aW51ZSkgYW5kIG5vIGhhbmRsZXIgaXMgcmVnaXN0ZXJlZCBmb3Ig
dGhlbS4NCj4gVGhlIGNvbnNlcXVlbmNlIHdpbGwgYmUgdGhhdCBhIGd1ZXN0IHdpbGwgYWNjZXNz
IGhhcmR3YXJlIHdoZW4gcmVhZGluZyB0aG9zZSBCQVJzLg0KWWVzLCB0aGlzIHNlZW1zIHRvIGJl
IGEgdmFsaWQgcG9pbnQNCj4NCj4gSSB0aGluayB3ZSBzaG91bGQgaW5zdGVhZCBtYWtlIHN1cmUg
dGhhdCB3ZSBpbnRlcmNlcHQgYWxsIGFjY2Vzc2VzIHRvIEJBUnMgYW5kIHJldHVybg0KPiBzb21l
dGhpbmcgZW1wdHkgZm9yIElPUE9SVFMgQkFScy4NCkkgd291bGQgbGlrZSB0byBoZWFyIGZyb20g
Um9nZXIgb24gd2hhdCB3YXMgdGhlIGluaXRpYWwgcGxhbiBmb3IgdGhhdCwgc28NCndlIGFyZSBh
bGlnbmVkIGJldHdlZW4gdGhlIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzLCBBcm0gYW5kIHg4NiBo
ZXJlIGZvciBub3cNCg0KVGhhbmsgeW91LA0KT2xla3NhbmRy


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232668.403466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRU-00024s-LF; Fri, 26 Nov 2021 12:35:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232668.403466; Fri, 26 Nov 2021 12:35:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRU-00024E-CS; Fri, 26 Nov 2021 12:35:04 +0000
Received: by outflank-mailman (input) for mailman id 232668;
 Fri, 26 Nov 2021 12:35:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRS-0001V1-I3
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:35:02 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 44a49d7c-4eb5-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 13:35:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44a49d7c-4eb5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930100;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Qgn5PSV9toabG8yFC4pdYZE+HLsve0cHhkGJ4oxeMt0=;
  b=IyTI4mm882ye1Afo+OJGCfAUevffp5219E0e0qDxNlymhdDJ800J6UYC
   u/syTskDOYKM18gYTkVx/i6rRWV+1WQrELsncK5kE79IJZ/ZkoR1+SOUl
   0gUo2kJ9X3C5L7y/VwIET9Gw8P0Wkmi7zi6VNTsmnvYDSerFglDQ3Q7ub
   E=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: C44HcGRNmC3vEaJB0gXgj+JIfu8isG7iXQMgaBHAr5McDWPs2uK9Zjhv6HW4D6Xxs2DvHCrx26
 o5NCuGfeUdqNfIEHGKSwTSogj1WjVzWyJbDEHCzcOgv7rqdj82464aVDo2PwygKNQftGTnQPlY
 uRwJClZgIpmlIvVsbkDNaGKxgRKp+yE9WS75ffQAVEh8//2njLBni8HUAvWLdyhrubcgtOBSQX
 VihxjB6YVy9HNYrK8lv7w62VNjU8eLe1S0vkMUVEdyHGeE3P9cGyP23kDZ9BXHy5UkG2Eo8d0n
 Ua0CZDoL/bfD1WFaYpE+SJSe
X-SBRS: 5.1
X-MesageID: 58192117
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:yDR/m6nTW3io9q271Y3/6CDo5gx0IURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJLWmuPbqyIZ2GgKtskOti+phwBsMLWmoAyHgBlpCE0RSMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q22YHR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 Ohg766STCAxApLRxPQ5DUFbMREvOLITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQKaHN
 pBAMGUHgBLoXCdLY0hULq8Fte7ygXryeT5DlQmfqv9ii4TU5FMoi+W8WDbPQfSVQe1Fk0Deo
 XjJl0z7HxUbOdq32TeDtHW2iYfnhjjnUYgfELm58P9Cg1CJwGEXThoMWjOTsfS/z0KzRd9bA
 0gV4TY167g/8lSxSdvwVAH+p2SL1jY+cddNF+wx6CmW17HZpQ2eAwA5oiVpMYJ88pVsHHpzi
 wHPz4iB6SFTXKO9dF/HxJWRiiuOBjVJPUtcPSwmfVoA/Iy2yG0stS7nQtFmGa+zq9T6HzDs3
 jyHxBQDa6UvYd0jjPviow2e6964jt2QF1NuuF2LNo6wxlohPNbNWmC+1bTMAR+sxq69R0LJg
 nULktP2AAsmXcDUz3zlrAng8diUCxe53N/03QEH83oJrW3FF5ufkWZ4u2oWyKBBaJtsRNMRS
 BWP0T69HbcKVJdQUYd5YpiqF+MhxrX6GNLuW5j8N4QVPcgvKVDWoH8yPiZ8OlwBdmB3ysnT3
 r/BLK6R4YsyU/w7nFJauc9BuVPU+szO7TyKHs2qp/hW+bGfeGSUWd843KimNYgEAFe/iFyNq
 b53bpLSoz0GCbGWSnSHoOY7cAFRRVBmVM+eliCiXrPaSuaQMDp6UKG5LHJIU9ENopm5Yc+Up
 CzgAREBlwKk7ZAFQC3TAk1ehHrUdc4XhRoG0eYEZj5EAlAvPtSi6rkxbZwyceV1/eBv16csH
 fIEZ9+BErJETTGeo2YRapz0rYpDchW3hF3RY3r5MWZnJ5MwFRbU/tLEfxf08HVcBCSAqsZj8
 aar0RnWQMRfSl06XtrWcv+m03i4oWMZxLBpR0LNL9QKIBfs/YFmJjbflPgyJ81QexzPyiHDj
 1SdAAsCpPmLqIgwqYGbiaeBpoavMu1/AksFQDWLsefobXHXpzPxz5VBXeCEeSHmeFn1oKjyN
 /9Iy/zcMeEcmAoYuYRLDLs2n7k14MHipuEGw108TmnLdVmiFphpPmKCgZtUrqRIy7JU5Vm2V
 0aI9oUIMLmFIpq4QlsYJQ5jZeWfz/AE3DLV6K1tckn94SZ2+puBUFlTYEbQ2HAMcuMtPdN32
 /olte4X9xe720gjPduxhyxJ83iBcy4bWKI9u5BGWILmh2LHEL2ZjUAw3sMu3KyyVg==
IronPort-HdrOrdr: A9a23:wFxig6ucoXZIyqTuQjaiR0H47skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpGbJYVcqKRcdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyJMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="58192117"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 09/65] xen: Annotate fnptr targets from continue_hypercall_on_cpu()
Date: Fri, 26 Nov 2021 12:33:50 +0000
Message-ID: <20211126123446.32324-10-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/power.c         | 2 +-
 xen/arch/x86/cpu/microcode/core.c | 2 +-
 xen/arch/x86/platform_hypercall.c | 4 ++--
 xen/arch/x86/pv/shim.c            | 4 ++--
 xen/arch/x86/smp.c                | 4 ++--
 xen/arch/x86/sysctl.c             | 2 +-
 xen/common/core_parking.c         | 2 +-
 xen/common/kexec.c                | 2 +-
 xen/common/sched/cpupool.c        | 2 +-
 xen/include/asm-x86/pv/shim.h     | 4 ++--
 xen/include/asm-x86/smp.h         | 6 +++---
 11 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c
index 0f2c87c096c7..90328bae1ebe 100644
--- a/xen/arch/x86/acpi/power.c
+++ b/xen/arch/x86/acpi/power.c
@@ -323,7 +323,7 @@ static int enter_state(u32 state)
     return error;
 }
 
-static long enter_state_helper(void *data)
+static long cf_check enter_state_helper(void *data)
 {
     struct acpi_sleep_info *sinfo = (struct acpi_sleep_info *)data;
     return enter_state(sinfo->sleep_state);
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 46f55fe7f191..9631042190ab 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -558,7 +558,7 @@ struct ucode_buf {
     char buffer[];
 };
 
-static long microcode_update_helper(void *data)
+static long cf_check microcode_update_helper(void *data)
 {
     int ret;
     struct ucode_buf *buffer = data;
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index f5457565a560..5e3208862c2f 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -45,7 +45,7 @@ struct resource_access {
     xenpf_resource_entry_t *entries;
 };
 
-long cpu_frequency_change_helper(void *);
+long cf_check cpu_frequency_change_helper(void *);
 void check_resource_access(struct resource_access *);
 void resource_access(void *);
 
@@ -59,7 +59,7 @@ DEFINE_SPINLOCK(xenpf_lock);
 # undef guest_from_compat_handle
 # define guest_from_compat_handle(x,y) ((x)=(y))
 
-long cpu_frequency_change_helper(void *data)
+long cf_check cpu_frequency_change_helper(void *data)
 {
     return cpu_frequency_change((uint64_t)data);
 }
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index ae4d8913faa1..2ee290a3920d 100644
--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -845,7 +845,7 @@ int cf_check compat_grant_table_op(
 #endif
 #endif
 
-long pv_shim_cpu_up(void *data)
+long cf_check pv_shim_cpu_up(void *data)
 {
     struct vcpu *v = data;
     struct domain *d = v->domain;
@@ -883,7 +883,7 @@ long pv_shim_cpu_up(void *data)
     return 0;
 }
 
-long pv_shim_cpu_down(void *data)
+long cf_check pv_shim_cpu_down(void *data)
 {
     struct vcpu *v = data;
     long rc;
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index eef0f9c6cbf4..f4952a6bf9a5 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -399,7 +399,7 @@ void call_function_interrupt(struct cpu_user_regs *regs)
     smp_call_function_interrupt();
 }
 
-long cpu_up_helper(void *data)
+long cf_check cpu_up_helper(void *data)
 {
     unsigned int cpu = (unsigned long)data;
     int ret = cpu_up(cpu);
@@ -422,7 +422,7 @@ long cpu_up_helper(void *data)
     return ret;
 }
 
-long cpu_down_helper(void *data)
+long cf_check cpu_down_helper(void *data)
 {
     int cpu = (unsigned long)data;
     int ret = cpu_down(cpu);
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index aff52a13f373..1772f51f8f6e 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -79,7 +79,7 @@ static void l3_cache_get(void *arg)
         l3_info->size = info.size / 1024; /* in KB unit */
 }
 
-static long smt_up_down_helper(void *data)
+static long cf_check smt_up_down_helper(void *data)
 {
     bool up = (bool)data;
     unsigned int cpu, sibling_mask = boot_cpu_data.x86_num_siblings - 1;
diff --git a/xen/common/core_parking.c b/xen/common/core_parking.c
index 44a907abfd7f..4afad04f2f68 100644
--- a/xen/common/core_parking.c
+++ b/xen/common/core_parking.c
@@ -169,7 +169,7 @@ static unsigned int core_parking_power(unsigned int event)
     return cpu;
 }
 
-long core_parking_helper(void *data)
+long cf_check core_parking_helper(void *data)
 {
     uint32_t idle_nums = (unsigned long)data;
     unsigned int cpu;
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index 3b223cd03d75..b222a5fd782e 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -395,7 +395,7 @@ void kexec_crash(enum crash_reason reason)
     BUG();
 }
 
-static long kexec_reboot(void *_image)
+static long cf_check kexec_reboot(void *_image)
 {
     struct kexec_image *image = _image;
 
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index e5cfb03b857e..b9d4babd0d8a 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -544,7 +544,7 @@ static int cpupool_unassign_cpu_start(struct cpupool *c, unsigned int cpu)
     return ret;
 }
 
-static long cpupool_unassign_cpu_helper(void *info)
+static long cf_check cpupool_unassign_cpu_helper(void *info)
 {
     struct cpupool *c = info;
     long ret;
diff --git a/xen/include/asm-x86/pv/shim.h b/xen/include/asm-x86/pv/shim.h
index 6415f8068e5c..be4ae4e60bb8 100644
--- a/xen/include/asm-x86/pv/shim.h
+++ b/xen/include/asm-x86/pv/shim.h
@@ -38,8 +38,8 @@ void pv_shim_setup_dom(struct domain *d, l4_pgentry_t *l4start,
                        start_info_t *si);
 int pv_shim_shutdown(uint8_t reason);
 void pv_shim_inject_evtchn(unsigned int port);
-long pv_shim_cpu_up(void *data);
-long pv_shim_cpu_down(void *data);
+long cf_check pv_shim_cpu_up(void *data);
+long cf_check pv_shim_cpu_down(void *data);
 void pv_shim_online_memory(unsigned int nr, unsigned int order);
 void pv_shim_offline_memory(unsigned int nr, unsigned int order);
 domid_t get_initial_domain_id(void);
diff --git a/xen/include/asm-x86/smp.h b/xen/include/asm-x86/smp.h
index f7485f602efa..1747772d232e 100644
--- a/xen/include/asm-x86/smp.h
+++ b/xen/include/asm-x86/smp.h
@@ -57,10 +57,10 @@ int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t pxm);
 
 void __stop_this_cpu(void);
 
-long cpu_up_helper(void *data);
-long cpu_down_helper(void *data);
+long cf_check cpu_up_helper(void *data);
+long cf_check cpu_down_helper(void *data);
 
-long core_parking_helper(void *data);
+long cf_check core_parking_helper(void *data);
 bool core_parking_remove(unsigned int cpu);
 uint32_t get_cur_idle_nums(void);
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232664.403427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRQ-0001FI-2M; Fri, 26 Nov 2021 12:35:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232664.403427; Fri, 26 Nov 2021 12:35:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRP-0001FB-Vd; Fri, 26 Nov 2021 12:34:59 +0000
Received: by outflank-mailman (input) for mailman id 232664;
 Fri, 26 Nov 2021 12:34:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRP-0001F5-Ai
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:34:59 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 42b961ab-4eb5-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:34:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42b961ab-4eb5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930097;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version;
  bh=P6+wFk0+JaJVj/ZX7SdMdgmqS7z6GuiHKgY74wOhyk8=;
  b=XXabGXOm/xDtqv/4PkD/jojExkGwr2V6komB1QEWA43hO3mZYnsr4xBl
   ELrxTZDiWfN0enjfdJaNnAtg3pD6F7c5gcgzvHDqQSNRRU+zfqYenqTIA
   UGAmvBjrmFAes1/RZYmgMFe8FcUbJNwCkS/yWndfytvJ1Qw4xzC7yCd4X
   8=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: y72rfEu8k5kqf4e9U1JsSGxFKJTjzAjzP9VUDZbs6zDPPf3XebNHNsy5uvs12GZBBGlLSQ37XB
 Hyt3Czjj6blcFWDJYSfGIZIbHCI9Wu3ENCoEFW7wYcREIEmQ8gMqkYNZlKp/NnHz7uXRick/TI
 Qa+tAZl8858dyclEqqlsjnVdnuPj2svpQ4DVDtfZla7GXiHi1a4Tt41wG7U5HbGt2gQtDdqZxH
 HKu2h/s3OlviqiPPqGZ4V6Tc46d5mS+rMnkG/Gpeu2Q9GGt6VuZK0ZkWP5NBr6B6s2Kxu1Vd/N
 RzyGEDaTYamQRDx4DOZsZoX8
X-SBRS: 5.1
X-MesageID: 58192115
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:pLZZZK8UEkcpIvaO8MPIDrUDv3mTJUtcMsCJ2f8bNWPcYEJGY0x3y
 WIdD2+OafjeMDf8LtknYIS28koDuZWAyddnTgRlrC08E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj3NYx6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhS6
 cx1k6aLdTsII/Pg36dMSgd6KTlhaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp0eRKeEP
 pNEAdZpRE79SjNDJm4KM8wZrO6jrV/CVQdFtk3A8MLb5ECMlVcsgdABKuH9eNOQQt5Otl2Fv
 W+A9GP8ajkKOdraxTeb/3aEgu7UgTi9SI8UDKe/9PNhnBuU3GN7NfENfQLl+7/j0Bf4Ao8Bb
 RxPksYzkUQs3G+KV+HbZSaEnF+Z4DJbGItJDc8A8B7Yn8I4/D2lLmQDSzdAbvkvu8k3WSEm2
 ze1oj/5OdB8mObLECzAr994uRv3YHFIdjFaOUfoWCNcu4G7yLzfmC4jWTqK/ESdqtTuUQ/9z
 DmRxMTVr+VC1JVbv0lXEL2uvt5NmnQrZlJqjuk0djj8hu+cWGJDT9fzgbQ8xawdRLt1tnHb4
 BA5dzG2tYji962lmi2XW/kqF7q0/fuDOzC0qQcxRMZxqWnyqiL9Ids4DNRCyKFBaZ1sldjBO
 hK7hO+szMULYCvCgVFfP+pd9PjGPYC/TI+4B5g4n/JFY4RrdR/vwc2dTRX44owZq2B1yftXE
 c7CKa6EVC9GYYw6nGveb7pMitcDm3FhrV4/sLimlnxLJ5LFPyXLIVrEWXPTBt0EAFSs/F+Ir
 o0BbpTSkH2ykoTWO0HqzGLaFnhSRVBTOHw8g5Y/mjerLlU0FWc/JeXWxL99KYVpk74MzrXD/
 22nW18ew1363CWVJQKPY3FlSbXuQZcg8i5rYX1yZQ6liyo5fIKizKYDbJ9rL7Mpw/NukKxvR
 P4fdsTeXvkWEmbb+y4QZIXWpZB5cEj5nhqHOieoOWBtf5NpSwHT1MXjew/jqHsHAiat7JNsq
 Ly8zALLB5EEQl06XsrRbfuuyXK3vGQcx70uDxeZfIELdRy1ooZwKiH3gvsmGO02KE3OlmmAy
 gKbIRYEvu2R8YU7x8bE2PKfpICzHuogQkcDRzvH7ay7PDXx93a4xdMSS/6BeD3QWT+m+KimY
 ukJnfjwPOdewQRPuot4Vb1q0bg/953koLoDllZoG3DCblKKDLJ8IybZgZkT5/MVnrIJ6xGrX
 k+v+8VBPeTbMczoJ1cdOQ45Y7nRzvoTgDTTsaw4LUiSCPWbJ1ZbvZG+5yWxtRE=
IronPort-HdrOrdr: A9a23:zMmCHq7nBwrQhNdmUgPXwMrXdLJyesId70hD6qhwISY6TiX4rb
 HWoB1173/JYVoqNE3I3OrwXZVoIkmsk6Kdg7NhXotKNTOO0ADDQb2Kr7GSpwEIcxeOkdK1vp
 0AT0ERMrLN5CBB/KTH3DU=
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="58192115"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Juergen Gross <jgross@suse.com>
Subject: [PATCH 02/65] x86/pv-shim: don't modify hypercall table
Date: Fri, 26 Nov 2021 12:33:43 +0000
Message-ID: <20211126123446.32324-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain

From: Juergen Gross <jgross@suse.com>

When running as pv-shim the hypercall is modified today in order to
replace the functions for __HYPERVISOR_event_channel_op and
__HYPERVISOR_grant_table_op hypercalls.

Change this to call the related functions from the normal handlers
instead when running as shim. The performance implications are not
really relevant, as a normal production hypervisor will not be
configured to support shim mode, so the related calls will be dropped
due to optimization of the compiler.

Note that for the CONFIG_PV_SHIM_EXCLUSIVE case there is a dummy
wrapper do_grant_table_op() needed, as in this case grant_table.c
isn't being built.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 xen/arch/x86/pv/hypercall.c              |  2 +-
 xen/arch/x86/pv/shim.c                   | 54 ++++++++++++++++----------------
 xen/arch/x86/x86_64/platform_hypercall.c |  2 +-
 xen/common/compat/multicall.c            |  3 +-
 xen/common/event_channel.c               |  9 ++++++
 xen/common/grant_table.c                 |  9 ++++++
 xen/include/asm-x86/hypercall.h          |  4 ++-
 xen/include/asm-x86/pv/shim.h            |  3 ++
 8 files changed, 54 insertions(+), 32 deletions(-)

diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index 3579ba905c1c..4744d9f78f01 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -64,7 +64,7 @@ const pv_hypercall_table_t pv_hypercall_table[] = {
     COMPAT_CALL(xen_version),
     HYPERCALL(console_io),
     COMPAT_CALL(physdev_op_compat),
-#ifdef CONFIG_GRANT_TABLE
+#if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
     COMPAT_CALL(grant_table_op),
 #endif
     HYPERCALL(vm_assist),
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index d9704121a739..7e891fe2f7a4 100644
--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -56,11 +56,6 @@ static DEFINE_SPINLOCK(balloon_lock);
 
 static struct platform_bad_page __initdata reserved_pages[2];
 
-static long pv_shim_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-static long pv_shim_grant_table_op(unsigned int cmd,
-                                   XEN_GUEST_HANDLE_PARAM(void) uop,
-                                   unsigned int count);
-
 /*
  * By default give the shim 1MB of free memory slack. Some users may wish to
  * tune this constants for better memory utilization. This can be achieved
@@ -203,7 +198,6 @@ void __init pv_shim_setup_dom(struct domain *d, l4_pgentry_t *l4start,
                               start_info_t *si)
 {
     bool compat = is_pv_32bit_domain(d);
-    pv_hypercall_table_t *rw_pv_hypercall_table;
     uint64_t param = 0;
     long rc;
 
@@ -249,23 +243,6 @@ void __init pv_shim_setup_dom(struct domain *d, l4_pgentry_t *l4start,
         consoled_set_ring_addr(page);
     }
 
-    /*
-     * Locate pv_hypercall_table[] (usually .rodata) in the directmap (which
-     * is writeable) and insert some shim-specific hypercall handlers.
-     */
-    rw_pv_hypercall_table = __va(__pa(pv_hypercall_table));
-    rw_pv_hypercall_table[__HYPERVISOR_event_channel_op].native =
-        (hypercall_fn_t *)pv_shim_event_channel_op;
-    rw_pv_hypercall_table[__HYPERVISOR_grant_table_op].native =
-        (hypercall_fn_t *)pv_shim_grant_table_op;
-
-#ifdef CONFIG_PV32
-    rw_pv_hypercall_table[__HYPERVISOR_event_channel_op].compat =
-        (hypercall_fn_t *)pv_shim_event_channel_op;
-    rw_pv_hypercall_table[__HYPERVISOR_grant_table_op].compat =
-        (hypercall_fn_t *)pv_shim_grant_table_op;
-#endif
-
     guest = d;
 
     /*
@@ -435,7 +412,7 @@ int pv_shim_shutdown(uint8_t reason)
     return 0;
 }
 
-static long pv_shim_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long pv_shim_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     struct domain *d = current->domain;
     struct evtchn_close close;
@@ -683,9 +660,9 @@ void pv_shim_inject_evtchn(unsigned int port)
 # define compat_handle_okay guest_handle_okay
 #endif
 
-static long pv_shim_grant_table_op(unsigned int cmd,
-                                   XEN_GUEST_HANDLE_PARAM(void) uop,
-                                   unsigned int count)
+long pv_shim_grant_table_op(unsigned int cmd,
+                            XEN_GUEST_HANDLE_PARAM(void) uop,
+                            unsigned int count)
 {
     struct domain *d = current->domain;
     long rc = 0;
@@ -845,6 +822,29 @@ static long pv_shim_grant_table_op(unsigned int cmd,
     return rc;
 }
 
+#ifndef CONFIG_GRANT_TABLE
+/* Thin wrapper(s) needed. */
+long do_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop,
+                       unsigned int count)
+{
+    if ( !pv_shim )
+        return -ENOSYS;
+
+    return pv_shim_grant_table_op(cmd, uop, count);
+}
+
+#ifdef CONFIG_PV32
+int compat_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop,
+                          unsigned int count)
+{
+    if ( !pv_shim )
+        return -ENOSYS;
+
+    return pv_shim_grant_table_op(cmd, uop, count);
+}
+#endif
+#endif
+
 long pv_shim_cpu_up(void *data)
 {
     struct vcpu *v = data;
diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c
index fbba893a47cb..966fd27b5f22 100644
--- a/xen/arch/x86/x86_64/platform_hypercall.c
+++ b/xen/arch/x86/x86_64/platform_hypercall.c
@@ -6,8 +6,8 @@ EMIT_FILE;
 
 #include <xen/lib.h>
 #include <compat/platform.h>
+#include <xen/hypercall.h>
 
-DEFINE_XEN_GUEST_HANDLE(compat_platform_op_t);
 #define xen_platform_op     compat_platform_op
 #define xen_platform_op_t   compat_platform_op_t
 #define do_platform_op(x)   compat_platform_op(_##x)
diff --git a/xen/common/compat/multicall.c b/xen/common/compat/multicall.c
index a0e9918f4805..b17739d21829 100644
--- a/xen/common/compat/multicall.c
+++ b/xen/common/compat/multicall.c
@@ -5,7 +5,7 @@
 EMIT_FILE;
 
 #include <xen/types.h>
-#include <xen/multicall.h>
+#include <xen/hypercall.h>
 #include <xen/trace.h>
 
 #define COMPAT
@@ -19,7 +19,6 @@ static inline void xlat_multicall_entry(struct mc_state *mcs)
         mcs->compat_call.args[i] = mcs->call.args[i];
 }
 
-DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
 #define multicall_entry      compat_multicall_entry
 #define multicall_entry_t    multicall_entry_compat_t
 #define do_multicall_call    compat_multicall_call
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index da88ad141a69..b38f49e0a616 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -31,6 +31,10 @@
 #include <public/event_channel.h>
 #include <xsm/xsm.h>
 
+#ifdef CONFIG_PV_SHIM
+#include <asm/guest.h>
+#endif
+
 #define ERROR_EXIT(_errno)                                          \
     do {                                                            \
         gdprintk(XENLOG_WARNING,                                    \
@@ -1189,6 +1193,11 @@ long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     int rc;
 
+#ifdef CONFIG_PV_SHIM
+    if ( pv_shim )
+        return pv_shim_event_channel_op(cmd, arg);
+#endif
+
     switch ( cmd )
     {
     case EVTCHNOP_alloc_unbound: {
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 012a74455ba6..7dfbee2f370f 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -44,6 +44,10 @@
 #include <asm/flushtlb.h>
 #include <asm/guest_atomics.h>
 
+#ifdef CONFIG_PV_SHIM
+#include <asm/guest.h>
+#endif
+
 /* Per-domain grant information. */
 struct grant_table {
     /*
@@ -3543,6 +3547,11 @@ do_grant_table_op(
     long rc;
     unsigned int opaque_in = cmd & GNTTABOP_ARG_MASK, opaque_out = 0;
 
+#ifdef CONFIG_PV_SHIM
+    if ( pv_shim )
+        return pv_shim_grant_table_op(cmd, uop, count);
+#endif
+
     if ( (int)count < 0 )
         return -EINVAL;
 
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index 0ae3b8b043b2..45fa987a638f 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -161,8 +161,10 @@ extern int compat_mmuext_op(
     XEN_GUEST_HANDLE_PARAM(uint) pdone,
     unsigned int foreigndom);
 
+typedef struct compat_platform_op compat_platform_op_t;
+DEFINE_XEN_GUEST_HANDLE(compat_platform_op_t);
 extern int compat_platform_op(
-    XEN_GUEST_HANDLE_PARAM(void) u_xenpf_op);
+    XEN_GUEST_HANDLE_PARAM(compat_platform_op_t) u_xenpf_op);
 
 extern long compat_callback_op(
     int cmd, XEN_GUEST_HANDLE(void) arg);
diff --git a/xen/include/asm-x86/pv/shim.h b/xen/include/asm-x86/pv/shim.h
index 8a91f4f9dfbf..6415f8068e5c 100644
--- a/xen/include/asm-x86/pv/shim.h
+++ b/xen/include/asm-x86/pv/shim.h
@@ -19,6 +19,7 @@
 #ifndef __X86_PV_SHIM_H__
 #define __X86_PV_SHIM_H__
 
+#include <xen/hypercall.h>
 #include <xen/types.h>
 
 #if defined(CONFIG_PV_SHIM_EXCLUSIVE)
@@ -45,6 +46,8 @@ domid_t get_initial_domain_id(void);
 uint64_t pv_shim_mem(uint64_t avail);
 void pv_shim_fixup_e820(struct e820map *e820);
 const struct platform_bad_page *pv_shim_reserved_pages(unsigned int *size);
+typeof(do_event_channel_op) pv_shim_event_channel_op;
+typeof(do_grant_table_op) pv_shim_grant_table_op;
 
 #else
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232665.403438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRS-0001V9-AK; Fri, 26 Nov 2021 12:35:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232665.403438; Fri, 26 Nov 2021 12:35:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRS-0001V2-7J; Fri, 26 Nov 2021 12:35:02 +0000
Received: by outflank-mailman (input) for mailman id 232665;
 Fri, 26 Nov 2021 12:35:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRQ-0001F5-I4
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:35:00 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4330bf51-4eb5-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:34:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4330bf51-4eb5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930098;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=LfjCnt4ZdLknfcUZQY16/MU7yjWEP3iLFA7xjg9eTHQ=;
  b=Tu0V/MiLDZ4vpePd5mK18D/q7h4CRtk3iC+k82q4vSHSSvz7MPnfykAN
   RdLk0uirCs+Md2iM67LBlYH1Mct0/ZW/7E1O5sKrNhOLrSFb4GlntPBdY
   Mfzy9xDU8XDtvDdVSdcWC3UFJtq88+NkEzBtnvJUaZAcihBWRx9bsaQ+Y
   w=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: c71WcVeqG1OaNG2XZqoPK3Ryv6y4xmWBsOCIRuzERuW8LgtJaeQjiNtcUl1DOmH+Kylgfl0WdH
 hzto/LFP4DxEDMQUKuaok2irWdWkTtgq4mVNNUNuwaHmalku6xHxol4LSzMcelunv8ouH5CeyF
 0JKg2EnBhDNmDDdzztb9m8rJ4m1AY9TzyFmZoVS//AY4+GJEUT+IOlupXSXz6Bi22EijVeItmt
 S+3YHxE56uPTu8Cih6RBMAycFLDsfmA5KaZRUhx1nixQjyo0uU2Hs8Q2MEYQTQsXMrwQs20AVK
 k2CsOfRTbbMrJ7YZhyWPxYXK
X-SBRS: 5.1
X-MesageID: 59062302
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:WxZFRKN6CEOKW3LvrR3gkcFynXyQoLVcMsEvi/4bfWQNrUonhTdVm
 zROWz2BP66NZTCgL9FxOoq29UwAvZWEmtM1QQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg9w7dRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoy3YxdFe6
 dJ8j4GPUiwgL4jgsucWbzANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWZo2JoVRay2i
 8wxaxZjXQ3nXUB1F1oYMrMEl8uQrHjGbGgNwL6SjfVuuDWCpOBr65DvP8DSYceiXthOkwCTo
 Weu10bTDwweNdef4SGY6X/qjejK9Qv+UZgXHae19dZrhkOS3W0ZDBAKVVq9ruK9g0T4UNVaQ
 2QY4jErrLQy3EWzQ8PhQgajp3qZoh8bXcEWGOo/gCmW0bbd6QudAmkCTxZCZcYguctwQiYlv
 neZktWsCTFxvbm9TXOG6qzSvT60ITISL2IJeWkDVwRty9v+pIA+iDrfQ9AlF7S65vXqHRngz
 jbMqzIx74j/luZSif/9pwqexWvx+N6ZFWbZ+zk7QEq9v1l4S6+iVra11kPw5OdlAKyaRWWo6
 S1sd9el0MgCCpSElSqoSeoLHa206/vtDAAwkWKDDLF6qW3zpifLkZR4pWgneRw3appslSrBO
 ReL4WtsCIlv0GxGhEOdS6a4EIwUwKfpDrwJvdiEP4MVMvCdmOJqlRyChHJ8PUixzyDAcollY
 P93lPpA615BUsyLKxLsGo8gPUcDnHxW+I8qbcmTI+6b+bSffmWJbrwOLUGDaOs0hIvd/l6Ko
 4gCaJrWlUkEOAEbXsUx2dVIRbztBSJmba0aVuQNLrLTSuaYMD1J5wDtLUMJJNU+wvU9ehbg9
 XChQE5IoGcTdlWcQThmnktLMeu1Nb4m9CpTFXV1YT6AhihyCa7yvfx3X8ZmItEaGBlLkKcco
 w8tIJ7bXJyii13vplwgUHUKhNA4KUnw21vRZ3HNjfpWV8cIejElM+TMJmPHnBTixALu3Sfni
 7H/hA7dX7QZQAFuUJTfZP61lgvjtnkBguNiGUDPJ4ALKknr9YFrLQ33j+M2fJ5QeUmSmGPC2
 lbEGwocqMnMv5QxrIvDi5ebotr7COB5BEdbQTXWtO7kKSnA82O/6oZcS+LULyvFXWb59fz6N
 +VYxv3xKtMdm1NOv9YuGrpn1/tmtdDuu6Vb3kJvG3CSNwanDbZpI3+n28hTt/ISmu8F6FXuA
 k/Wo4tUI7SEPs/hAWU9Hgt9Y7TRz+wQlxnT8e8xfBfw6hho8efVSk5VJRSN1nBQdeMnLIM/z
 O49k8cK8Ajj2AEyO9OLgy0IpWSBKnsMD/cuup0AWdK5jwMqzhdJYIDGCz+w65aKMo0ePk4vK
 z6SpazDm7UDmRaSLyttTSDAjbhHmJADmBFW11tTdV2Gl+3MiuIzwBAMoy88SR5Yz0kf3u9+U
 oSx25aZ+UlaE+9UufV+
IronPort-HdrOrdr: A9a23:sIjSUqFrgmeROl07pLqE5MeALOsnbusQ8zAXP0AYc3Jom6uj5q
 eTdZUgpHvJYVkqOE3I9ertBEDiewK4yXcW2/hzAV7KZmCP0wHEEGgL1/qF/9SKIUzDH4Bmup
 uIC5IOauHNMQ==
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="59062302"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Juergen Gross
	<jgross@suse.com>, Daniel Smith <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>
Subject: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
Date: Fri, 26 Nov 2021 12:33:41 +0000
Message-ID: <20211126123446.32324-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

CET Indirect Branch Tracking is a hardware feature designed to protect against
forward-edge control flow hijacking (Call/Jump oriented programming), and is a
companion feature to CET Shadow Stacks added in Xen 4.14.

This series depends on lots of previously posted patches.  See
xenbits/xen-cet-ibt for the full branch with all dependencies.

Patch 1 introduces some compile time infrastructure.

Patches 2 thru 56 annotate all function pointer targets in the common and x86
hypervisor code.  Patches are split by API and in no particular order, and
largely mechanical.  As such, I'm limiting review mainly to The Rest.  While
doing this work does depend on an experimental GCC change (patch 56), the
result does actually work properly with GCC 9 onwards.

Patches 57 thru 65 do the final enablement of CET-IBT.

I have developed this on a TigerLake NUC.  Many thanks to Marek who has also
given the series a spin on a TigerLake laptop.

Some CI runs, green across the board:
  https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/416737379
  https://cirrus-ci.com/build/6547947216175104

Various note accumulated through the work:
  * I have already posted patches fixing some of the most egregious (ab)uses of
    function pointers.  There are plenty of other areas which could do with
    cleanup.
  * With everything turned on, we get 1688 runtime endbr64's, and 233 init
    time.  The number of runtime endbr64's is expected to reduce with
    Juergen's hypercall series (see later), and in common deployment cases
    where not everything is compiled in by default.
  * I have not checked for misaligned endbr64's, and I'm not sure there is
    anything useful we could do upon discovering that there were any.
    Naively, there is a 1 in 2^32 chance (endbr64 being 4 bytes long), but
    this doesn't account for the structure of x86 code, which is most
    certainly not a uniform random distribution of bytes.
  * I have followup work to reduce the number of runtime endbr64's using boot
    time patching, which further improves the security benefit.
  * Patches 2 and 3 are a minimal subset of Juergen's hypercall series, with
    patch 4 annotating every hypercall.  I failed to get the full series pass
    in CI, so put this together as a stopgap.  It reduces the dependencies
    involved, and patch 4 can be dropped if the hypercall series gets in
    first.
  * The x86 MTRR code is a complete mess, and as far as I can tell, is mostly
    pre-64bit support.  It could do with a prune.
  * We do many passes of the MADT counting objects.  This is a waste of time
    and we should count them on a single pass.
  * The NUMA setup (SRAT parsing) appears to happen twice.  I'm pretty sure
    this is one too many.

Andrew Cooper (63):
  x86: Introduce support for CET-IBT
  x86/hypercall: Annotate fnptr targets
  xen: Annotate fnptr targets from custom_param()
  xen: Annotate fnptr targets from __initcall()
  xen: Annotate fnptr targets from notifier callbacks
  xen: Annotate fnptr targets from acpi_table_parse()
  xen: Annotate fnptr targets from continue_hypercall_on_cpu()
  xen: Annotate fnptr targets from init_timer()
  xen: Annotate fnptr targets from call_rcu()
  xen: Annotate fnptr targets from IPIs
  xen: Annotate fnptr targets from open_softirq()
  xsm/flask:  Annotate fnptr targets in the security server
  xsm: Annotate fnptr targets
  xen/sched: Annotate fnptr targets
  xen/evtchn: Annotate fnptr targets
  xen/hypfs: Annotate fnptr targets
  xen/tasklet: Annotate fnptr targets
  xen/keyhandler: Annotate fnptr targets
  xen/vpci: Annotate fnptr targets
  xen/decompress: Annotate fnptr targets
  xen/iommu: Annotate fnptr targets
  xen/video: Annotate fnptr targets
  xen/console: Annotate fnptr targets
  xen/misc: Annotate fnptr targets
  x86: Annotate fnptr targets from request_irq()
  x86/hvm: Annotate fnptr targets from hvm_funcs
  x86/hvm: Annotate fnptr targets from device emulation
  x86/emul: Annotate fnptr targets
  x86/ucode: Annotate fnptr targets
  x86/power: Annotate fnptr targets
  x86/apic: Annotate fnptr targets
  x86/nmi: Annotate fnptr targets
  x86/mtrr: Annotate fnptr targets
  x86/idle: Annotate fnptr targets
  x86/quirks: Annotate fnptr targets
  x86/hvmsave: Annotate fnptr targets
  x86/mce: Annotate fnptr targets
  x86/pmu: Annotate fnptr targets
  x86/cpu: Annotate fnptr targets
  x86/guest: Annotate fnptr targets
  x86/logdirty: Annotate fnptr targets
  x86/shadow: Annotate fnptr targets
  x86/hap: Annotate fnptr targets
  x86/p2m: Annotate fnptr targets
  x86/irq: Annotate fnptr targets
  x86/aepi: Annotate fnptr targets
  x86/psr: Annotate fnptr targets
  x86/dpci: Annotate fnptr targets
  x86/pt: Annotate fnptr targets
  x86/time: Annotate fnptr targets
  x86/misc: Annotate fnptr targets
  x86/stack: Annotate fnptr targets
  x86/bugframe: Annotate fnptr targets
  x86: Use control flow typechecking where possible
  x86/setup: Read CR4 earlier in __start_xen()
  x86/alternatives: Clear CR4.CET when clearing CR0.WP
  x86/traps: Rework write_stub_trampoline() to not hardcode the jmp
  x86/emul: Update emulation stubs to be CET-IBT compatible
  x86/entry: Make syscall/sysenter entrypoints CET-IBT compatible
  x86/entry: Make IDT entrypoints CET-IBT compatible
  x86/setup: Rework MSR_S_CET handling for CET-IBT
  x86/efi: Disable CET-IBT around Runtime Services calls
  x86: Enable CET Indirect Branch Tracking

Juergen Gross (2):
  x86/pv-shim: don't modify hypercall table
  xen/x86: don't use hypercall table for calling compat hypercalls

 Config.mk                                    |   1 -
 docs/misc/xen-command-line.pandoc            |  16 +-
 tools/firmware/Makefile                      |   2 +
 tools/libs/guest/xg_dom_decompress_unsafe.h  |   4 +
 xen/arch/x86/Kconfig                         |  17 ++
 xen/arch/x86/acpi/boot.c                     |  24 +-
 xen/arch/x86/acpi/cpu_idle.c                 |  43 ++--
 xen/arch/x86/acpi/cpufreq/cpufreq.c          |  24 +-
 xen/arch/x86/acpi/cpufreq/powernow.c         |  21 +-
 xen/arch/x86/acpi/cpuidle_menu.c             |   6 +-
 xen/arch/x86/acpi/lib.c                      |   2 +-
 xen/arch/x86/acpi/power.c                    |   4 +-
 xen/arch/x86/acpi/wakeup_prot.S              |  37 +--
 xen/arch/x86/alternative.c                   |  13 +-
 xen/arch/x86/apic.c                          |  12 +-
 xen/arch/x86/arch.mk                         |   7 +
 xen/arch/x86/boot/x86_64.S                   |  29 ++-
 xen/arch/x86/compat.c                        |  21 +-
 xen/arch/x86/cpu/amd.c                       |   8 +-
 xen/arch/x86/cpu/centaur.c                   |   2 +-
 xen/arch/x86/cpu/common.c                    |   3 +-
 xen/arch/x86/cpu/cpu.h                       |   2 +-
 xen/arch/x86/cpu/hygon.c                     |   2 +-
 xen/arch/x86/cpu/intel.c                     |   6 +-
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c       |   4 +-
 xen/arch/x86/cpu/mcheck/mce.c                |  22 +-
 xen/arch/x86/cpu/mcheck/mce.h                |   2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c            |   9 +-
 xen/arch/x86/cpu/mcheck/mce_amd.h            |   4 +-
 xen/arch/x86/cpu/mcheck/mce_intel.c          |  49 ++--
 xen/arch/x86/cpu/mcheck/non-fatal.c          |   6 +-
 xen/arch/x86/cpu/mcheck/vmce.c               |   4 +-
 xen/arch/x86/cpu/microcode/amd.c             |   9 +-
 xen/arch/x86/cpu/microcode/core.c            |  15 +-
 xen/arch/x86/cpu/microcode/intel.c           |  10 +-
 xen/arch/x86/cpu/mtrr/generic.c              |  20 +-
 xen/arch/x86/cpu/mtrr/main.c                 |   4 +-
 xen/arch/x86/cpu/mtrr/mtrr.h                 |   8 +-
 xen/arch/x86/cpu/mwait-idle.c                |  12 +-
 xen/arch/x86/cpu/shanghai.c                  |   2 +-
 xen/arch/x86/cpu/vpmu.c                      |  13 +-
 xen/arch/x86/cpu/vpmu_amd.c                  |  16 +-
 xen/arch/x86/cpu/vpmu_intel.c                |  16 +-
 xen/arch/x86/cpuid.c                         |   2 +-
 xen/arch/x86/crash.c                         |   7 +-
 xen/arch/x86/dmi_scan.c                      |  10 +-
 xen/arch/x86/dom0_build.c                    |   8 +-
 xen/arch/x86/domain.c                        |  16 +-
 xen/arch/x86/efi/stub.c                      |   2 +
 xen/arch/x86/emul-i8254.c                    |  14 +-
 xen/arch/x86/extable.c                       |  20 +-
 xen/arch/x86/genapic/bigsmp.c                |   4 +-
 xen/arch/x86/genapic/delivery.c              |  12 +-
 xen/arch/x86/genapic/probe.c                 |   2 +-
 xen/arch/x86/genapic/x2apic.c                |  18 +-
 xen/arch/x86/guest/hyperv/hyperv.c           |  10 +-
 xen/arch/x86/guest/xen/xen.c                 |  15 +-
 xen/arch/x86/hpet.c                          |  29 +--
 xen/arch/x86/hvm/dm.c                        |   5 +-
 xen/arch/x86/hvm/dom0_build.c                |  16 +-
 xen/arch/x86/hvm/emulate.c                   |  93 ++++---
 xen/arch/x86/hvm/hpet.c                      |  12 +-
 xen/arch/x86/hvm/hvm.c                       |  47 ++--
 xen/arch/x86/hvm/hypercall.c                 |   5 +-
 xen/arch/x86/hvm/intercept.c                 |  28 ++-
 xen/arch/x86/hvm/io.c                        |  38 +--
 xen/arch/x86/hvm/ioreq.c                     |   2 +-
 xen/arch/x86/hvm/irq.c                       |  16 +-
 xen/arch/x86/hvm/mtrr.c                      |   8 +-
 xen/arch/x86/hvm/nestedhvm.c                 |   6 +-
 xen/arch/x86/hvm/pmtimer.c                   |  10 +-
 xen/arch/x86/hvm/quirks.c                    |   4 +-
 xen/arch/x86/hvm/rtc.c                       |  18 +-
 xen/arch/x86/hvm/stdvga.c                    |  19 +-
 xen/arch/x86/hvm/svm/nestedsvm.c             |  27 +-
 xen/arch/x86/hvm/svm/svm.c                   | 358 ++++++++++++++-------------
 xen/arch/x86/hvm/svm/vmcb.c                  |   2 +-
 xen/arch/x86/hvm/vioapic.c                   |  12 +-
 xen/arch/x86/hvm/viridian/time.c             |   2 +-
 xen/arch/x86/hvm/viridian/viridian.c         |  17 +-
 xen/arch/x86/hvm/vlapic.c                    |  25 +-
 xen/arch/x86/hvm/vmsi.c                      |  16 +-
 xen/arch/x86/hvm/vmx/intr.c                  |   2 +-
 xen/arch/x86/hvm/vmx/vmcs.c                  |  22 +-
 xen/arch/x86/hvm/vmx/vmx.c                   | 157 ++++++------
 xen/arch/x86/hvm/vmx/vvmx.c                  |  21 +-
 xen/arch/x86/hvm/vpic.c                      |   8 +-
 xen/arch/x86/hvm/vpt.c                       |   2 +-
 xen/arch/x86/i8259.c                         |  10 +-
 xen/arch/x86/io_apic.c                       |  28 +--
 xen/arch/x86/ioport_emulate.c                |   4 +-
 xen/arch/x86/irq.c                           |  28 +--
 xen/arch/x86/livepatch.c                     |   2 +-
 xen/arch/x86/mm.c                            |  35 +--
 xen/arch/x86/mm/hap/guest_walk.c             |   4 +-
 xen/arch/x86/mm/hap/hap.c                    |  29 +--
 xen/arch/x86/mm/hap/nested_hap.c             |   2 +-
 xen/arch/x86/mm/hap/private.h                |  30 +--
 xen/arch/x86/mm/mem_sharing.c                |   2 +-
 xen/arch/x86/mm/p2m-ept.c                    |  34 ++-
 xen/arch/x86/mm/p2m-pt.c                     |  19 +-
 xen/arch/x86/mm/paging.c                     |   3 +-
 xen/arch/x86/mm/shadow/common.c              |  33 +--
 xen/arch/x86/mm/shadow/hvm.c                 |  16 +-
 xen/arch/x86/mm/shadow/multi.c               |  80 +++---
 xen/arch/x86/mm/shadow/multi.h               |  20 +-
 xen/arch/x86/mm/shadow/private.h             |  12 +-
 xen/arch/x86/mm/shadow/pv.c                  |   4 +-
 xen/arch/x86/msi.c                           |  18 +-
 xen/arch/x86/nmi.c                           |  16 +-
 xen/arch/x86/numa.c                          |  10 +-
 xen/arch/x86/oprofile/nmi_int.c              |  16 +-
 xen/arch/x86/oprofile/op_model_athlon.c      |  18 +-
 xen/arch/x86/oprofile/op_model_p4.c          |  14 +-
 xen/arch/x86/oprofile/op_model_ppro.c        |  26 +-
 xen/arch/x86/percpu.c                        |   6 +-
 xen/arch/x86/physdev.c                       |   2 +-
 xen/arch/x86/platform_hypercall.c            |  11 +-
 xen/arch/x86/psr.c                           |  41 +--
 xen/arch/x86/pv/callback.c                   |  25 +-
 xen/arch/x86/pv/descriptor-tables.c          |  14 +-
 xen/arch/x86/pv/domain.c                     |  12 +-
 xen/arch/x86/pv/emul-gate-op.c               |   5 +-
 xen/arch/x86/pv/emul-priv-op.c               |  70 +++---
 xen/arch/x86/pv/emulate.h                    |   7 -
 xen/arch/x86/pv/hypercall.c                  |  11 +-
 xen/arch/x86/pv/iret.c                       |   4 +-
 xen/arch/x86/pv/misc-hypercalls.c            |  10 +-
 xen/arch/x86/pv/ro-page-fault.c              |  25 +-
 xen/arch/x86/pv/shim.c                       |  60 ++---
 xen/arch/x86/pv/traps.c                      |   2 +-
 xen/arch/x86/setup.c                         |  80 ++++--
 xen/arch/x86/shutdown.c                      |  10 +-
 xen/arch/x86/smp.c                           |  20 +-
 xen/arch/x86/smpboot.c                       |   2 +-
 xen/arch/x86/spec_ctrl.c                     |   6 +-
 xen/arch/x86/srat.c                          |   4 +-
 xen/arch/x86/sysctl.c                        |   4 +-
 xen/arch/x86/tboot.c                         |   2 +-
 xen/arch/x86/time.c                          |  68 ++---
 xen/arch/x86/traps.c                         |   8 +-
 xen/arch/x86/tsx.c                           |   2 +-
 xen/arch/x86/x86_64/acpi_mmcfg.c             |   2 +-
 xen/arch/x86/x86_64/compat.c                 |   1 -
 xen/arch/x86/x86_64/compat/entry.S           |   1 +
 xen/arch/x86/x86_64/compat/mm.c              |   7 +-
 xen/arch/x86/x86_64/entry.S                  |  47 +++-
 xen/arch/x86/x86_64/mmconfig-shared.c        |  10 +-
 xen/arch/x86/x86_64/mmconfig.h               |   2 +-
 xen/arch/x86/x86_64/platform_hypercall.c     |   2 +-
 xen/arch/x86/x86_64/traps.c                  |  45 ++--
 xen/arch/x86/x86_emulate.c                   |  33 ++-
 xen/arch/x86/x86_emulate/x86_emulate.c       |  10 +-
 xen/arch/x86/x86_emulate/x86_emulate.h       |  38 +--
 xen/common/argo.c                            |   6 +-
 xen/common/bunzip2.c                         |   2 +-
 xen/common/compat/domain.c                   |   3 +-
 xen/common/compat/grant_table.c              |   5 +-
 xen/common/compat/kernel.c                   |   2 +-
 xen/common/compat/memory.c                   |   7 +-
 xen/common/compat/multicall.c                |   3 +-
 xen/common/core_parking.c                    |  10 +-
 xen/common/cpu.c                             |   4 +-
 xen/common/debugtrace.c                      |  10 +-
 xen/common/decompress.c                      |   2 +-
 xen/common/dm.c                              |   6 +-
 xen/common/domain.c                          |  15 +-
 xen/common/domctl.c                          |   2 +-
 xen/common/efi/boot.c                        |  12 +-
 xen/common/efi/runtime.c                     |  17 ++
 xen/common/event_2l.c                        |  21 +-
 xen/common/event_channel.c                   |  18 +-
 xen/common/event_fifo.c                      |  30 +--
 xen/common/gdbstub.c                         |   9 +-
 xen/common/grant_table.c                     |  29 ++-
 xen/common/hypfs.c                           |  63 +++--
 xen/common/irq.c                             |   6 +-
 xen/common/kernel.c                          |   6 +-
 xen/common/kexec.c                           |  18 +-
 xen/common/keyhandler.c                      |  47 ++--
 xen/common/livepatch.c                       |  15 +-
 xen/common/memory.c                          |   8 +-
 xen/common/multicall.c                       |   2 +-
 xen/common/page_alloc.c                      |  14 +-
 xen/common/perfc.c                           |   4 +-
 xen/common/radix-tree.c                      |   8 +-
 xen/common/random.c                          |   2 +-
 xen/common/rangeset.c                        |   2 +-
 xen/common/rcupdate.c                        |   8 +-
 xen/common/sched/arinc653.c                  |  20 +-
 xen/common/sched/compat.c                    |   2 +-
 xen/common/sched/core.c                      |  40 +--
 xen/common/sched/cpupool.c                   |  35 +--
 xen/common/sched/credit.c                    |  59 +++--
 xen/common/sched/credit2.c                   |  55 ++--
 xen/common/sched/null.c                      |  60 ++---
 xen/common/sched/rt.c                        |  47 ++--
 xen/common/spinlock.c                        |  12 +-
 xen/common/stop_machine.c                    |   6 +-
 xen/common/sysctl.c                          |   2 +-
 xen/common/tasklet.c                         |   4 +-
 xen/common/timer.c                           |   6 +-
 xen/common/trace.c                           |   4 +-
 xen/common/unlzma.c                          |   2 +-
 xen/common/vm_event.c                        |   6 +-
 xen/common/xenoprof.c                        |   2 +-
 xen/common/xmalloc_tlsf.c                    |   4 +-
 xen/common/zstd/zstd_common.c                |   4 +-
 xen/common/zstd/zstd_internal.h              |   4 +-
 xen/drivers/acpi/apei/apei-base.c            |  32 +--
 xen/drivers/acpi/apei/apei-internal.h        |  20 +-
 xen/drivers/acpi/apei/erst.c                 |  57 +++--
 xen/drivers/acpi/apei/hest.c                 |   4 +-
 xen/drivers/acpi/numa.c                      |  10 +-
 xen/drivers/acpi/tables.c                    |   2 +-
 xen/drivers/char/console.c                   |  36 +--
 xen/drivers/char/ehci-dbgp.c                 |  28 ++-
 xen/drivers/char/ns16550.c                   |  34 +--
 xen/drivers/cpufreq/cpufreq.c                |   6 +-
 xen/drivers/cpufreq/cpufreq_misc_governors.c |  22 +-
 xen/drivers/cpufreq/cpufreq_ondemand.c       |  10 +-
 xen/drivers/passthrough/amd/iommu.h          |  45 ++--
 xen/drivers/passthrough/amd/iommu_acpi.c     |  15 +-
 xen/drivers/passthrough/amd/iommu_guest.c    |  12 +-
 xen/drivers/passthrough/amd/iommu_init.c     |  49 ++--
 xen/drivers/passthrough/amd/iommu_intr.c     |  20 +-
 xen/drivers/passthrough/amd/iommu_map.c      |  22 +-
 xen/drivers/passthrough/amd/pci_amd_iommu.c  |  32 +--
 xen/drivers/passthrough/arm/smmu-v3.c        |   6 +-
 xen/drivers/passthrough/iommu.c              |  56 ++---
 xen/drivers/passthrough/pci.c                |  18 +-
 xen/drivers/passthrough/vtd/dmar.c           |   7 +-
 xen/drivers/passthrough/vtd/extern.h         |  38 +--
 xen/drivers/passthrough/vtd/intremap.c       |  14 +-
 xen/drivers/passthrough/vtd/iommu.c          |  96 +++----
 xen/drivers/passthrough/vtd/qinval.c         |  28 +--
 xen/drivers/passthrough/vtd/quirks.c         |   2 +-
 xen/drivers/passthrough/vtd/utils.c          |   2 +-
 xen/drivers/passthrough/vtd/x86/hvm.c        |   4 +-
 xen/drivers/passthrough/x86/hvm.c            |  14 +-
 xen/drivers/video/lfb.c                      |   4 +-
 xen/drivers/video/lfb.h                      |   4 +-
 xen/drivers/video/vesa.c                     |   6 +-
 xen/drivers/video/vga.c                      |   6 +-
 xen/drivers/vpci/header.c                    |  18 +-
 xen/drivers/vpci/msi.c                       |  42 ++--
 xen/drivers/vpci/msix.c                      |  20 +-
 xen/drivers/vpci/vpci.c                      |  16 +-
 xen/include/acpi/cpufreq/cpufreq.h           |   1 -
 xen/include/asm-x86/asm-defns.h              |   6 +
 xen/include/asm-x86/bug.h                    |  10 +-
 xen/include/asm-x86/cpufeature.h             |   1 +
 xen/include/asm-x86/cpufeatures.h            |   1 +
 xen/include/asm-x86/cpuidle.h                |   4 +-
 xen/include/asm-x86/current.h                |   2 +-
 xen/include/asm-x86/flushtlb.h               |   2 +-
 xen/include/asm-x86/genapic.h                |  18 +-
 xen/include/asm-x86/hpet.h                   |   8 +-
 xen/include/asm-x86/hvm/emulate.h            |   8 +-
 xen/include/asm-x86/hvm/save.h               |   2 +-
 xen/include/asm-x86/hvm/svm/nestedsvm.h      |  22 +-
 xen/include/asm-x86/hvm/svm/svm.h            |   1 -
 xen/include/asm-x86/hvm/vioapic.h            |   2 +-
 xen/include/asm-x86/hvm/vmx/vmcs.h           |   8 +-
 xen/include/asm-x86/hvm/vmx/vmx.h            |   4 +-
 xen/include/asm-x86/hvm/vmx/vvmx.h           |  23 +-
 xen/include/asm-x86/hypercall.h              |  81 +++---
 xen/include/asm-x86/irq.h                    |  24 +-
 xen/include/asm-x86/mm.h                     |  16 +-
 xen/include/asm-x86/msi.h                    |   8 +-
 xen/include/asm-x86/msr-index.h              |   1 +
 xen/include/asm-x86/mtrr.h                   |   2 +-
 xen/include/asm-x86/p2m.h                    |   4 +-
 xen/include/asm-x86/paging.h                 |   2 +-
 xen/include/asm-x86/processor.h              |   4 +-
 xen/include/asm-x86/pv/domain.h              |   4 +-
 xen/include/asm-x86/pv/shim.h                |   7 +-
 xen/include/asm-x86/shadow.h                 |   2 +-
 xen/include/asm-x86/smp.h                    |   6 +-
 xen/include/asm-x86/tboot.h                  |   2 +-
 xen/include/asm-x86/time.h                   |   6 +-
 xen/include/xen/acpi.h                       |   2 +-
 xen/include/xen/compiler.h                   |   6 +
 xen/include/xen/efi.h                        |   1 +
 xen/include/xen/hypercall.h                  |  69 +++---
 xen/include/xen/hypfs.h                      |  49 ++--
 xen/include/xen/irq.h                        |   6 +-
 xen/include/xen/lib.h                        |   2 +-
 xen/include/xen/perfc.h                      |   4 +-
 xen/include/xen/sched.h                      |   2 +-
 xen/include/xen/spinlock.h                   |   4 +-
 xen/include/xen/vpci.h                       |   8 +-
 xen/include/xsm/dummy.h                      | 211 ++++++++--------
 xen/xsm/flask/avc.c                          |   2 +-
 xen/xsm/flask/flask_op.c                     |   7 +-
 xen/xsm/flask/hooks.c                        | 232 +++++++++--------
 xen/xsm/flask/private.h                      |   4 +-
 xen/xsm/flask/ss/avtab.c                     |   4 +-
 xen/xsm/flask/ss/conditional.c               |  10 +-
 xen/xsm/flask/ss/conditional.h               |   6 +-
 xen/xsm/flask/ss/policydb.c                  |  53 ++--
 xen/xsm/flask/ss/services.c                  |   6 +-
 xen/xsm/flask/ss/symtab.c                    |   5 +-
 xen/xsm/silo.c                               |  24 +-
 xen/xsm/xsm_core.c                           |   6 +-
 305 files changed, 2963 insertions(+), 2619 deletions(-)

-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232667.403459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRU-00021M-5H; Fri, 26 Nov 2021 12:35:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232667.403459; Fri, 26 Nov 2021 12:35:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRU-00020Q-1f; Fri, 26 Nov 2021 12:35:04 +0000
Received: by outflank-mailman (input) for mailman id 232667;
 Fri, 26 Nov 2021 12:35:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRS-0001F5-2d
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:35:02 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 448cc30e-4eb5-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:34:59 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 448cc30e-4eb5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930099;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=F+vb4CK4+xYSviJ9bvv2J8tBZsl9csJinBYt0YnRvAQ=;
  b=ateChJ+i707v3trmHP65gr9yZ6lE8NUsToHxXxrNSi/0nqx/eNZ243mG
   LOGCHxMXGv+qFRXZbhW9jEGCZ7MbnMcw/C1dJ88M+bHIYkg56A7as9w5y
   43XhFfxPskycyXRa9GbKO8msmp28qhNzySzVT8Js3tzUZDk4/RPnb6F03
   A=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 8+gyD3VNzoRLnssr8bIpSdJRT7P8jxR22k++NGdUmF0yc5GPJBO6V8HpkF0yZvZqSsQr+AFXdu
 4IEUBQ++lOaov/g4d59ua4Psf79cbGRNK3ux+owhplnR6X7AU+/7KuTkThYP272uVSCqz1zpvQ
 Yv3UcX4OMdpgrm0BDzEFfqQTKh37YO6lXD2rCAptZ6srTXciTGrPmcQ0LMCjUQlQXbpN+vljwD
 tF2PRgPQnSu1PS5ovMsZv+1i1bZYetmKVdqqCE6BDKHV4X0eM16kdFjl6FgsD/beK1F70IY2V6
 BsHqAw9ZnnB3e0Dk3grLhkbS
X-SBRS: 5.1
X-MesageID: 58192116
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:usPoeq7ZBazFQ4PlIaw0nwxRtM3AchMFZxGqfqrLsTDasY5as4F+v
 msXXGiEM6qKNjShfdF/YIy/8x4AsJ7VyoVmSlY6/C8yHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw2LBVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z6
 /RUjbqKcjsVH7CStKNeAgBGMRtmIvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTa+PP
 ZNAN1KDajyYQxdCYgkbFKg4p+6CuCihbmYHuHas8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u12bkBhAXMvSPxDzD9Wij7sfUhj/yUo8WELy+99ZpjUeVy2hVDwcZPXOrrP/8hkOgVtZ3L
 00P5jFovaU07FasTNT2Q1u/unHsljw2VsdUEuY6wBqQ0aeS6AGcblXoVRYYNoZg7pVvA2V3i
 BnZxLsFGACDrpW2aGul0I2vkQ+TJHY5aixTfDEmdxMatoyLTJ4IsjrDSdNqEaiQh9LzGC3tz
 z3ikBXSl4n/nuZQifzloAmvbyaE48GQE1Vrvlm/sneNt1shPOaYi5qUBU83BBqqBKKQVRG/s
 XcNgKByB8heXMjWxERhrAjgdYxFBspp0hWA3jaD/LF7rlxBHkJPm6gLu1mSw28zb645lcfBO
 hO7hO+ozMY70IGWRaF2eZmtLM8h0LLtE9/oPtiNMIERMsYsK17bon01DaJ144wLuBN3+U3YE
 c3GGftA8F5AUfg3pNZIb7t1PUAXKtAWmjqIGMGTI+WP2ruCfn+FIYrpw3PVBt3VGJis+V2Pm
 /4GbpPi40wGDIXWP3mGmaZOfAtiBSVqWvjLRzl/K7frzvxOQzp6VZc8ANoJJuRYokiivruSo
 yzmBBYHkAGXaL+uAVziV02PoYjHBf5XxU/X9wR3Vbpx83R8M4up8okFcJ47Iesu+OB5lKYmR
 PgZYcSQRP9IT22fqTgaaJD8qq1kdQiq2l3Sb3b0PmBncs4yXRHN9//lYhDrqHsEAB2ouJZsu
 LanzA7aH8YOHlwwEMbMZfuz5FqtpnxByvlqVk7FL4ALKkXh+YRnMQLrifozL51eIBnP3GLCh
 Q2XHQ0Zta/GpIpsqIvFgqWNroGIFepiHxUFQzmHvOjubSSDpzit245NVuqMbAvxbmKs9fXwf
 /hRwtH9LOYDwARAvb1jHus51qk5/dbu+eNXl1w2AHXRYl23Ibp8OX3aj9JXv6hAy7IF6wu7X
 kWDpotTNbmTYZ63FVcQIEwub/iZ1OFSkT7XtKxnLEL/7S5x3byGTUQNYEXc1H0DdON4YNE/3
 OMsmM8K8Aju2BMlP+GPgj1Q62nRfGcLVL8qt81CDYLm4ubxJoquvXAI5vfK3ayy
IronPort-HdrOrdr: A9a23:k+9h36D31PN9E+zlHemU55DYdb4zR+YMi2TC1yhKJyC9Ffbo7v
 xG/c5rsyMc5wxwZJhNo7y90ey7MBbhHP1OkO4s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpN
 9dmsNFaeEYY2IUsS+D2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="58192116"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 06/65] xen: Annotate fnptr targets from __initcall()
Date: Fri, 26 Nov 2021 12:33:47 +0000
Message-ID: <20211126123446.32324-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/cpu_idle.c                 | 4 ++--
 xen/arch/x86/acpi/cpufreq/cpufreq.c          | 2 +-
 xen/arch/x86/cpu/mcheck/non-fatal.c          | 2 +-
 xen/arch/x86/cpu/microcode/core.c            | 2 +-
 xen/arch/x86/cpu/mtrr/main.c                 | 2 +-
 xen/arch/x86/cpu/vpmu.c                      | 2 +-
 xen/arch/x86/domain.c                        | 2 +-
 xen/arch/x86/extable.c                       | 2 +-
 xen/arch/x86/hvm/hvm.c                       | 4 ++--
 xen/arch/x86/hvm/irq.c                       | 2 +-
 xen/arch/x86/hvm/mtrr.c                      | 2 +-
 xen/arch/x86/hvm/nestedhvm.c                 | 3 +--
 xen/arch/x86/hvm/quirks.c                    | 2 +-
 xen/arch/x86/ioport_emulate.c                | 4 ++--
 xen/arch/x86/irq.c                           | 4 ++--
 xen/arch/x86/mm/shadow/common.c              | 4 ++--
 xen/arch/x86/msi.c                           | 2 +-
 xen/arch/x86/nmi.c                           | 2 +-
 xen/arch/x86/numa.c                          | 2 +-
 xen/arch/x86/oprofile/nmi_int.c              | 2 +-
 xen/arch/x86/percpu.c                        | 2 +-
 xen/arch/x86/psr.c                           | 2 +-
 xen/arch/x86/pv/domain.c                     | 2 +-
 xen/arch/x86/shutdown.c                      | 2 +-
 xen/arch/x86/time.c                          | 8 ++++----
 xen/common/core_parking.c                    | 2 +-
 xen/common/debugtrace.c                      | 2 +-
 xen/common/event_channel.c                   | 2 +-
 xen/common/gdbstub.c                         | 2 +-
 xen/common/grant_table.c                     | 2 +-
 xen/common/kernel.c                          | 4 ++--
 xen/common/kexec.c                           | 2 +-
 xen/common/livepatch.c                       | 2 +-
 xen/common/page_alloc.c                      | 4 ++--
 xen/common/radix-tree.c                      | 2 +-
 xen/common/random.c                          | 2 +-
 xen/common/sched/cpupool.c                   | 2 +-
 xen/common/spinlock.c                        | 2 +-
 xen/common/stop_machine.c                    | 2 +-
 xen/drivers/cpufreq/cpufreq.c                | 2 +-
 xen/drivers/cpufreq/cpufreq_misc_governors.c | 6 +++---
 xen/drivers/cpufreq/cpufreq_ondemand.c       | 2 +-
 xen/drivers/passthrough/amd/iommu.h          | 2 +-
 xen/drivers/passthrough/amd/iommu_init.c     | 2 +-
 xen/drivers/passthrough/pci.c                | 2 +-
 xen/drivers/passthrough/vtd/iommu.c          | 2 +-
 xen/drivers/passthrough/x86/hvm.c            | 2 +-
 xen/include/asm-x86/hvm/save.h               | 2 +-
 48 files changed, 60 insertions(+), 61 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 5d73eb5917af..7902ccce6b98 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -410,7 +410,7 @@ static void dump_cx(unsigned char key)
     }
 }
 
-static int __init cpu_idle_key_init(void)
+static int __init cf_check cpu_idle_key_init(void)
 {
     register_keyhandler('c', dump_cx, "dump ACPI Cx structures", 1);
     return 0;
@@ -1655,7 +1655,7 @@ static struct notifier_block cpu_nfb = {
     .notifier_call = cpu_callback
 };
 
-static int __init cpuidle_presmp_init(void)
+static int __init cf_check cpuidle_presmp_init(void)
 {
     void *cpu = (void *)(long)smp_processor_id();
 
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 029c9398c42a..9510f05340aa 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -630,7 +630,7 @@ static const struct cpufreq_driver __initconstrel acpi_cpufreq_driver = {
     .exit   = acpi_cpufreq_cpu_exit,
 };
 
-static int __init cpufreq_driver_init(void)
+static int __init cf_check cpufreq_driver_init(void)
 {
     int ret = 0;
 
diff --git a/xen/arch/x86/cpu/mcheck/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index ec52d37c96e1..2679c220a8a2 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -86,7 +86,7 @@ static void mce_work_fn(void *data)
 	adjust = 0;
 }
 
-static int __init init_nonfatal_mce_checker(void)
+static int __init cf_check init_nonfatal_mce_checker(void)
 {
 	struct cpuinfo_x86 *c = &boot_cpu_data;
 
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 95d35ca0f3f7..46f55fe7f191 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -696,7 +696,7 @@ int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
                                      microcode_update_helper, buffer);
 }
 
-static int __init microcode_init(void)
+static int __init cf_check microcode_init(void)
 {
     /*
      * At this point, all CPUs should have updated their microcode
diff --git a/xen/arch/x86/cpu/mtrr/main.c b/xen/arch/x86/cpu/mtrr/main.c
index e9df53f00d61..428133100d46 100644
--- a/xen/arch/x86/cpu/mtrr/main.c
+++ b/xen/arch/x86/cpu/mtrr/main.c
@@ -632,7 +632,7 @@ void mtrr_bp_restore(void)
 	mtrr_if->set_all();
 }
 
-static int __init mtrr_init_finialize(void)
+static int __init cf_check mtrr_init_finialize(void)
 {
 	if (!mtrr_if)
 		return 0;
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index 9875143cac0e..c23e66d04c02 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -868,7 +868,7 @@ static struct notifier_block cpu_nfb = {
     .notifier_call = cpu_callback
 };
 
-static int __init vpmu_init(void)
+static int __init cf_check vpmu_init(void)
 {
     int vendor = current_cpu_data.x86_vendor;
 
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ef1812dc1402..f943283b2a88 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2532,7 +2532,7 @@ static void vcpu_kick_softirq(void)
      */
 }
 
-static int __init init_vcpu_kick_softirq(void)
+static int __init cf_check init_vcpu_kick_softirq(void)
 {
     open_softirq(VCPU_KICK_SOFTIRQ, vcpu_kick_softirq);
     return 0;
diff --git a/xen/arch/x86/extable.c b/xen/arch/x86/extable.c
index 3cb0352abe5f..b6664264de31 100644
--- a/xen/arch/x86/extable.c
+++ b/xen/arch/x86/extable.c
@@ -126,7 +126,7 @@ search_exception_table(const struct cpu_user_regs *regs)
 #ifndef NDEBUG
 #include <asm/traps.h>
 
-static int __init stub_selftest(void)
+static int __init cf_check stub_selftest(void)
 {
     static const struct {
         uint8_t opc[4];
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 00edf899fa79..7af11656dcfd 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -164,7 +164,7 @@ static bool __init hap_supported(struct hvm_function_table *fns)
     return true;
 }
 
-static int __init hvm_enable(void)
+static int __init cf_check hvm_enable(void)
 {
     const struct hvm_function_table *fns = NULL;
 
@@ -1518,7 +1518,7 @@ static int hvm_load_cpu_msrs(struct domain *d, hvm_domain_context_t *h)
 /* We need variable length data chunks for XSAVE area and MSRs, hence
  * a custom declaration rather than HVM_REGISTER_SAVE_RESTORE.
  */
-static int __init hvm_register_CPU_save_and_restore(void)
+static int __init cf_check hvm_register_CPU_save_and_restore(void)
 {
     hvm_register_savevm(CPU_XSAVE_CODE,
                         "CPU_XSAVE",
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 52aae4565f0c..6045c9149bad 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -650,7 +650,7 @@ static void dump_irq_info(unsigned char key)
     rcu_read_unlock(&domlist_read_lock);
 }
 
-static int __init dump_irq_info_key_init(void)
+static int __init cf_check dump_irq_info_key_init(void)
 {
     register_keyhandler('I', dump_irq_info, "dump HVM irq info", 1);
     return 0;
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
index 4a9f3177edd4..b3ef1bf54133 100644
--- a/xen/arch/x86/hvm/mtrr.c
+++ b/xen/arch/x86/hvm/mtrr.c
@@ -75,7 +75,7 @@ static uint8_t __read_mostly mtrr_epat_tbl[MTRR_NUM_TYPES][MEMORY_NUM_TYPES] =
 static uint8_t __read_mostly pat_entry_tbl[PAT_TYPE_NUMS] =
     { [0 ... PAT_TYPE_NUMS-1] = INVALID_MEM_TYPE };
 
-static int __init hvm_mtrr_pat_init(void)
+static int __init cf_check hvm_mtrr_pat_init(void)
 {
     unsigned int i, j;
 
diff --git a/xen/arch/x86/hvm/nestedhvm.c b/xen/arch/x86/hvm/nestedhvm.c
index bd1101987de0..3cf812609acf 100644
--- a/xen/arch/x86/hvm/nestedhvm.c
+++ b/xen/arch/x86/hvm/nestedhvm.c
@@ -127,8 +127,7 @@ nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
  * iomap[2]      set        set
  */
 
-static int __init
-nestedhvm_setup(void)
+static int __init cf_check nestedhvm_setup(void)
 {
     /* Same format and size as hvm_io_bitmap (Intel needs only 2 pages). */
     unsigned nr = cpu_has_vmx ? 2 : 3;
diff --git a/xen/arch/x86/hvm/quirks.c b/xen/arch/x86/hvm/quirks.c
index 54cc66c382b6..917356b1312c 100644
--- a/xen/arch/x86/hvm/quirks.c
+++ b/xen/arch/x86/hvm/quirks.c
@@ -36,7 +36,7 @@ static int __init dmi_hvm_deny_port80(const struct dmi_system_id *id)
     return 0;
 }
 
-static int __init check_port80(void)
+static int __init cf_check check_port80(void)
 {
     /*
      * Quirk table for systems that misbehave (lock up, etc.) if port
diff --git a/xen/arch/x86/ioport_emulate.c b/xen/arch/x86/ioport_emulate.c
index cf1f3f922959..6caeb3d470ce 100644
--- a/xen/arch/x86/ioport_emulate.c
+++ b/xen/arch/x86/ioport_emulate.c
@@ -11,7 +11,7 @@
 unsigned int (*__read_mostly ioemul_handle_quirk)(
     uint8_t opcode, char *io_emul_stub, struct cpu_user_regs *regs);
 
-static unsigned int ioemul_handle_proliant_quirk(
+static unsigned int cf_check ioemul_handle_proliant_quirk(
     u8 opcode, char *io_emul_stub, struct cpu_user_regs *regs)
 {
     static const char stub[] = {
@@ -100,7 +100,7 @@ static const struct dmi_system_id __initconstrel ioport_quirks_tbl[] = {
     { }
 };
 
-static int __init ioport_quirks_init(void)
+static int __init cf_check ioport_quirks_init(void)
 {
     if ( dmi_check_system(ioport_quirks_tbl) )
         ioemul_handle_quirk = ioemul_handle_proliant_quirk;
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 84b174d0f51f..bcf46cd54d16 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -954,7 +954,7 @@ static void irq_ratelimit_timer_fn(void *data)
     spin_unlock_irqrestore(&irq_ratelimit_lock, flags);
 }
 
-static int __init irq_ratelimit_init(void)
+static int __init cf_check irq_ratelimit_init(void)
 {
     if ( irq_ratelimit_threshold )
         init_timer(&irq_ratelimit_timer, irq_ratelimit_timer_fn, NULL, 0);
@@ -2504,7 +2504,7 @@ static void dump_irqs(unsigned char key)
     dump_ioapic_irq_info();
 }
 
-static int __init setup_dump_irqs(void)
+static int __init cf_check setup_dump_irqs(void)
 {
     /* In lieu of being able to live in init_irq_data(). */
     BUILD_BUG_ON(sizeof(irq_max_guests) >
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index de09ef5cae58..1e4ee50771f5 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -105,7 +105,7 @@ static void shadow_audit_key(unsigned char key)
            __func__, shadow_audit_enable);
 }
 
-static int __init shadow_audit_key_init(void)
+static int __init cf_check shadow_audit_key_init(void)
 {
     register_keyhandler('O', shadow_audit_key, "toggle shadow audits", 0);
     return 0;
@@ -1057,7 +1057,7 @@ static void shadow_blow_all_tables(unsigned char c)
 }
 
 /* Register this function in the Xen console keypress table */
-static __init int shadow_blow_tables_keyhandler_init(void)
+static int __init cf_check shadow_blow_tables_keyhandler_init(void)
 {
     register_keyhandler('S', shadow_blow_all_tables, "reset shadow pagetables", 1);
     return 0;
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 5febc0ea4b7c..d1497254b188 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -1485,7 +1485,7 @@ static void dump_msi(unsigned char key)
     vpci_dump_msi();
 }
 
-static int __init msi_setup_keyhandler(void)
+static int __init cf_check msi_setup_keyhandler(void)
 {
     register_keyhandler('M', dump_msi, "dump MSI state", 1);
     return 0;
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index 1a225d499295..21e947a46f24 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -606,7 +606,7 @@ static void do_nmi_stats(unsigned char key)
         printk("%pv: NMI neither pending nor masked\n", v);
 }
 
-static __init int register_nmi_trigger(void)
+static int __init cf_check register_nmi_trigger(void)
 {
     register_keyhandler('N', do_nmi_trigger, "trigger an NMI", 0);
     register_keyhandler('n', do_nmi_stats, "NMI statistics", 1);
diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c
index 6be5a0c93322..5de9db4e9943 100644
--- a/xen/arch/x86/numa.c
+++ b/xen/arch/x86/numa.c
@@ -504,7 +504,7 @@ static void dump_numa(unsigned char key)
     rcu_read_unlock(&domlist_read_lock);
 }
 
-static __init int register_numa_trigger(void)
+static int __init cf_check register_numa_trigger(void)
 {
     register_keyhandler('u', dump_numa, "dump NUMA info", 1);
     return 0;
diff --git a/xen/arch/x86/oprofile/nmi_int.c b/xen/arch/x86/oprofile/nmi_int.c
index 7842d95b95ea..ba9c4b9804ca 100644
--- a/xen/arch/x86/oprofile/nmi_int.c
+++ b/xen/arch/x86/oprofile/nmi_int.c
@@ -388,7 +388,7 @@ static int __init arch_perfmon_init(char **cpu_type)
 	return 1;
 }
 
-static int __init nmi_init(void)
+static int __init cf_check nmi_init(void)
 {
 	__u8 vendor = current_cpu_data.x86_vendor;
 	__u8 family = current_cpu_data.x86;
diff --git a/xen/arch/x86/percpu.c b/xen/arch/x86/percpu.c
index 5ea14b6ec312..0e0b6577ca45 100644
--- a/xen/arch/x86/percpu.c
+++ b/xen/arch/x86/percpu.c
@@ -94,7 +94,7 @@ static struct notifier_block cpu_percpu_nfb = {
     .priority = 100 /* highest priority */
 };
 
-static int __init percpu_presmp_init(void)
+static int __init cf_check percpu_presmp_init(void)
 {
     register_cpu_notifier(&cpu_percpu_nfb);
 
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 56916344cb1d..9a3670afc341 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -1675,7 +1675,7 @@ static struct notifier_block cpu_nfb = {
     .priority = -1
 };
 
-static int __init psr_presmp_init(void)
+static int __init cf_check psr_presmp_init(void)
 {
     if ( (opt_psr & PSR_CMT) && opt_rmid_max )
         init_psr_cmt(opt_rmid_max);
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 125c4561a7ea..55146c15c853 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -167,7 +167,7 @@ unsigned long pv_fixup_guest_cr4(const struct vcpu *v, unsigned long cr4)
 static int8_t __read_mostly opt_global_pages = -1;
 boolean_runtime_param("global-pages", opt_global_pages);
 
-static int __init pge_init(void)
+static int __init cf_check pge_init(void)
 {
     if ( opt_global_pages == -1 )
         opt_global_pages = !cpu_has_hypervisor ||
diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c
index a01354d93319..ad3e3a76916f 100644
--- a/xen/arch/x86/shutdown.c
+++ b/xen/arch/x86/shutdown.c
@@ -533,7 +533,7 @@ static const struct dmi_system_id __initconstrel reboot_dmi_table[] = {
     { }
 };
 
-static int __init reboot_init(void)
+static int __init cf_check reboot_init(void)
 {
     /*
      * Only do the DMI check if reboot_type hasn't been overridden
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index 4b12f494604d..4ab0cf6731e3 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -526,7 +526,7 @@ static struct platform_timesource __initdata plt_pmtimer =
 static struct time_scale __read_mostly pmt_scale;
 static struct time_scale __read_mostly pmt_scale_r;
 
-static __init int init_pmtmr_scale(void)
+static __init int cf_check init_pmtmr_scale(void)
 {
     set_time_scale(&pmt_scale, ACPI_PM_FREQUENCY);
     pmt_scale_r = scale_reciprocal(pmt_scale);
@@ -2047,7 +2047,7 @@ static void __init try_platform_timer_tail(void)
 }
 
 /* Late init function, after all cpus have booted */
-static int __init verify_tsc_reliability(void)
+static int __init cf_check verify_tsc_reliability(void)
 {
     if ( boot_cpu_has(X86_FEATURE_TSC_RELIABLE) )
     {
@@ -2218,7 +2218,7 @@ static int _disable_pit_irq(void(*hpet_broadcast_setup)(void))
     return ret;
 }
 
-static int __init disable_pit_irq(void)
+static int __init cf_check disable_pit_irq(void)
 {
     if ( !_disable_pit_irq(hpet_broadcast_init) )
     {
@@ -2581,7 +2581,7 @@ static void dump_softtsc(unsigned char key)
             printk("No domains have emulated TSC\n");
 }
 
-static int __init setup_dump_softtsc(void)
+static int __init cf_check setup_dump_softtsc(void)
 {
     register_keyhandler('s', dump_softtsc, "dump softtsc stats", 1);
     return 0;
diff --git a/xen/common/core_parking.c b/xen/common/core_parking.c
index aa432ed2f57b..44a907abfd7f 100644
--- a/xen/common/core_parking.c
+++ b/xen/common/core_parking.c
@@ -258,7 +258,7 @@ static int __init register_core_parking_policy(const struct cp_policy *policy)
     return 0;
 }
 
-static int __init core_parking_init(void)
+static int __init cf_check core_parking_init(void)
 {
     int ret = 0;
 
diff --git a/xen/common/debugtrace.c b/xen/common/debugtrace.c
index 29b11239f5a5..f3c0fd8aa17b 100644
--- a/xen/common/debugtrace.c
+++ b/xen/common/debugtrace.c
@@ -279,7 +279,7 @@ static struct notifier_block debugtrace_nfb = {
     .notifier_call = debugtrace_cpu_callback
 };
 
-static int __init debugtrace_init(void)
+static int __init cf_check debugtrace_init(void)
 {
     unsigned int cpu;
 
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index a4e78282e059..67ac4dd15dcf 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -1642,7 +1642,7 @@ static void dump_evtchn_info(unsigned char key)
     rcu_read_unlock(&domlist_read_lock);
 }
 
-static int __init dump_evtchn_info_key_init(void)
+static int __init cf_check dump_evtchn_info_key_init(void)
 {
     register_keyhandler('e', dump_evtchn_info, "dump evtchn info", 1);
     return 0;
diff --git a/xen/common/gdbstub.c b/xen/common/gdbstub.c
index 848c1f4327e8..99bfd9a654c9 100644
--- a/xen/common/gdbstub.c
+++ b/xen/common/gdbstub.c
@@ -640,7 +640,7 @@ __trap_to_gdb(struct cpu_user_regs *regs, unsigned long cookie)
     return rc;
 }
 
-static int __init initialise_gdb(void)
+static int __init cf_check initialise_gdb(void)
 {
     if ( *opt_gdb == '\0' )
         return 0;
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index d477f334659b..7b2f593e8b6c 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -4273,7 +4273,7 @@ static void gnttab_usage_print_all(unsigned char key)
     printk("%s ] done\n", __func__);
 }
 
-static int __init gnttab_usage_init(void)
+static int __init cf_check gnttab_usage_init(void)
 {
     register_keyhandler('g', gnttab_usage_print_all,
                         "print grant table usage", 1);
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index 752c2e0dae44..adff2d2c77f3 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -393,7 +393,7 @@ static HYPFS_STRING_INIT(extra, "extra");
 static HYPFS_STRING_INIT(config, "config");
 #endif
 
-static int __init buildinfo_init(void)
+static int __init cf_check buildinfo_init(void)
 {
     hypfs_add_dir(&hypfs_root, &buildinfo, true);
 
@@ -431,7 +431,7 @@ __initcall(buildinfo_init);
 
 static HYPFS_DIR_INIT(params, "params");
 
-static int __init param_init(void)
+static int __init cf_check param_init(void)
 {
     struct param_hypfs *param;
 
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index 6286c0bbf08b..36384f782db3 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -570,7 +570,7 @@ void __init kexec_early_calculations(void)
         crashinfo_maxaddr_bits = fls64(crashinfo_maxaddr) - 1;
 }
 
-static int __init kexec_init(void)
+static int __init cf_check kexec_init(void)
 {
     void *cpu = (void *)(unsigned long)smp_processor_id();
 
diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index 7118551b27e2..33708b4e2388 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -2139,7 +2139,7 @@ static struct notifier_block cpu_nfb = {
     .notifier_call = cpu_callback
 };
 
-static int __init livepatch_init(void)
+static int __init cf_check livepatch_init(void)
 {
     unsigned int cpu;
 
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 615ae7fe12fc..8789ec81b6df 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2555,7 +2555,7 @@ static void pagealloc_info(unsigned char key)
     printk("    Dom heap: %lukB free\n", total << (PAGE_SHIFT-10));
 }
 
-static __init int pagealloc_keyhandler_init(void)
+static __init int cf_check pagealloc_keyhandler_init(void)
 {
     register_keyhandler('m', pagealloc_info, "memory info", 1);
     return 0;
@@ -2603,7 +2603,7 @@ static void dump_heap(unsigned char key)
     }
 }
 
-static __init int register_heap_trigger(void)
+static __init int cf_check register_heap_trigger(void)
 {
     register_keyhandler('H', dump_heap, "dump heap info", 1);
     return 0;
diff --git a/xen/common/radix-tree.c b/xen/common/radix-tree.c
index 2384655a2e90..628a7e06988f 100644
--- a/xen/common/radix-tree.c
+++ b/xen/common/radix-tree.c
@@ -744,7 +744,7 @@ static __init unsigned long __maxindex(unsigned int height)
 	return ~0UL >> shift;
 }
 
-static __init int radix_tree_init_maxindex(void)
+static int __init cf_check radix_tree_init_maxindex(void)
 {
 	unsigned int i;
 
diff --git a/xen/common/random.c b/xen/common/random.c
index fb805b0ecd95..a29f2fcb991a 100644
--- a/xen/common/random.c
+++ b/xen/common/random.c
@@ -31,7 +31,7 @@ unsigned int get_random(void)
     return val;
 }
 
-static int __init init_boot_random(void)
+static int __init cf_check init_boot_random(void)
 {
     boot_random = get_random();
     return 0;
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index f0dd626054a6..f26c7f289539 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -1218,7 +1218,7 @@ static void cpupool_hypfs_init(void)
 
 #endif /* CONFIG_HYPFS */
 
-static int __init cpupool_init(void)
+static int __init cf_check cpupool_init(void)
 {
     unsigned int cpu;
 
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index b90981bb271e..5ce7e3363863 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -508,7 +508,7 @@ void _lock_profile_deregister_struct(
     spin_unlock(&lock_profile_lock);
 }
 
-static int __init lock_prof_init(void)
+static int __init cf_check lock_prof_init(void)
 {
     struct lock_profile **q;
 
diff --git a/xen/common/stop_machine.c b/xen/common/stop_machine.c
index 2d5f6aef61ed..8979d553d677 100644
--- a/xen/common/stop_machine.c
+++ b/xen/common/stop_machine.c
@@ -198,7 +198,7 @@ static struct notifier_block cpu_nfb = {
     .notifier_call = cpu_callback
 };
 
-static int __init cpu_stopmachine_init(void)
+static int __init cf_check cpu_stopmachine_init(void)
 {
     unsigned int cpu;
     for_each_online_cpu ( cpu )
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 36b079296235..e55e202d5a18 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -657,7 +657,7 @@ static struct notifier_block cpu_nfb = {
     .notifier_call = cpu_callback
 };
 
-static int __init cpufreq_presmp_init(void)
+static int __init cf_check cpufreq_presmp_init(void)
 {
     register_cpu_notifier(&cpu_nfb);
     return 0;
diff --git a/xen/drivers/cpufreq/cpufreq_misc_governors.c b/xen/drivers/cpufreq/cpufreq_misc_governors.c
index 746bbcd5ff36..8343f491da87 100644
--- a/xen/drivers/cpufreq/cpufreq_misc_governors.c
+++ b/xen/drivers/cpufreq/cpufreq_misc_governors.c
@@ -116,7 +116,7 @@ struct cpufreq_governor cpufreq_gov_userspace = {
     .handle_option = cpufreq_userspace_handle_option
 };
 
-static int __init cpufreq_gov_userspace_init(void)
+static int __init cf_check cpufreq_gov_userspace_init(void)
 {
     unsigned int cpu;
 
@@ -160,7 +160,7 @@ struct cpufreq_governor cpufreq_gov_performance = {
     .governor = cpufreq_governor_performance,
 };
 
-static int __init cpufreq_gov_performance_init(void)
+static int __init cf_check cpufreq_gov_performance_init(void)
 {
     return cpufreq_register_governor(&cpufreq_gov_performance);
 }
@@ -199,7 +199,7 @@ struct cpufreq_governor cpufreq_gov_powersave = {
     .governor = cpufreq_governor_powersave,
 };
 
-static int __init cpufreq_gov_powersave_init(void)
+static int __init cf_check cpufreq_gov_powersave_init(void)
 {
     return cpufreq_register_governor(&cpufreq_gov_powersave);
 }
diff --git a/xen/drivers/cpufreq/cpufreq_ondemand.c b/xen/drivers/cpufreq/cpufreq_ondemand.c
index 6b905d7cfca8..cabd9ffa8886 100644
--- a/xen/drivers/cpufreq/cpufreq_ondemand.c
+++ b/xen/drivers/cpufreq/cpufreq_ondemand.c
@@ -356,7 +356,7 @@ struct cpufreq_governor cpufreq_gov_dbs = {
     .handle_option = cpufreq_dbs_handle_option
 };
 
-static int __init cpufreq_gov_dbs_init(void)
+static int __init cf_check cpufreq_gov_dbs_init(void)
 {
     return cpufreq_register_governor(&cpufreq_gov_dbs);
 }
diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index 93243424e85d..04517c1a024c 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -234,7 +234,7 @@ int amd_iommu_prepare(bool xt);
 int amd_iommu_init(bool xt);
 int amd_iommu_init_late(void);
 int amd_iommu_update_ivrs_mapping_acpi(void);
-int iov_adjust_irq_affinities(void);
+int cf_check iov_adjust_irq_affinities(void);
 
 int amd_iommu_quarantine_init(struct domain *d);
 
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 559a734bdaa5..f1ed75558227 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -808,7 +808,7 @@ static bool_t __init set_iommu_interrupt_handler(struct amd_iommu *iommu)
     return 1;
 }
 
-int iov_adjust_irq_affinities(void)
+int cf_check iov_adjust_irq_affinities(void)
 {
     const struct amd_iommu *iommu;
 
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index e3105f90b7fe..036f5c2b1ffa 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1289,7 +1289,7 @@ static void dump_pci_devices(unsigned char ch)
     pcidevs_unlock();
 }
 
-static int __init setup_dump_pcidevs(void)
+static int __init cf_check setup_dump_pcidevs(void)
 {
     register_keyhandler('Q', dump_pci_devices, "dump PCI devices", 1);
     return 0;
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index b33697e36ba8..ba1ed5761d23 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2113,7 +2113,7 @@ static void adjust_irq_affinity(struct acpi_drhd_unit *drhd)
     spin_unlock_irqrestore(&desc->lock, flags);
 }
 
-static int adjust_vtd_irq_affinities(void)
+static int cf_check adjust_vtd_irq_affinities(void)
 {
     struct acpi_drhd_unit *drhd;
 
diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
index 22bf84639f22..ef71c3b92717 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -1072,7 +1072,7 @@ static struct notifier_block cpu_nfb = {
     .notifier_call = cpu_callback,
 };
 
-static int __init setup_dpci_softirq(void)
+static int __init cf_check setup_dpci_softirq(void)
 {
     unsigned int cpu;
 
diff --git a/xen/include/asm-x86/hvm/save.h b/xen/include/asm-x86/hvm/save.h
index 4efc53505500..e975011ddb71 100644
--- a/xen/include/asm-x86/hvm/save.h
+++ b/xen/include/asm-x86/hvm/save.h
@@ -115,7 +115,7 @@ void hvm_register_savevm(uint16_t typecode,
 /* Syntactic sugar around that function: specify the max number of
  * saves, and this calculates the size of buffer needed */
 #define HVM_REGISTER_SAVE_RESTORE(_x, _save, _load, _num, _k)             \
-static int __init __hvm_register_##_x##_save_and_restore(void)            \
+static int __init cf_check __hvm_register_##_x##_save_and_restore(void)   \
 {                                                                         \
     hvm_register_savevm(HVM_SAVE_CODE(_x),                                \
                         #_x,                                              \
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232666.403443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRS-0001Yu-OH; Fri, 26 Nov 2021 12:35:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232666.403443; Fri, 26 Nov 2021 12:35:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRS-0001YX-GQ; Fri, 26 Nov 2021 12:35:02 +0000
Received: by outflank-mailman (input) for mailman id 232666;
 Fri, 26 Nov 2021 12:35:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRR-0001F5-9e
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:35:01 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43b4b394-4eb5-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:34:59 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43b4b394-4eb5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930098;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=jk0u+NLjbBn13CendvrV78gP6Sc2KoMbuVoCytP69cs=;
  b=JYW1TivbsqyNb4Ovd5muzYkkxJbZVj9xOB31kO2H00tBYYdzlfuGgWKt
   9dJzSDxutBL0Yu2imuAPmiTPalTLMsWjfzXFrkJ24pJA/sci49rJcMAq5
   c5BN+uQLibecOco1NgZYs5WbfjmnZuOCaYIW2XGAsWEEhSiVWS1Hqg6Vy
   g=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 8H2Jlk0IsMH0cIJfrQUi8LpuJgKbPQ002IlxsT+2w4kw4UmkYpuQkj/EDC5pp0R58PejfjNhb0
 dlVWNi3J5yxzWS1I3223LzcapbaxxR8kannHaex9OXEgybQ8T8qCHbLizt7ATkMV2rLES5CFvB
 QUt1dgrGvuGZSVrK3rVrAdmPPH+fQyXnXrApQ7nVjdRe7MJi5C+YBPtL0V8mRVeI/W675hPA5P
 qsBkUQjasB5KEx1oPpcUUbmjljZN9jwcfVVapK461XdBaAeZ7KbVlU9ZRBGmgSXqDPS+kxZN9t
 RSpbV1y73nU7uPoyGHzzIEBJ
X-SBRS: 5.1
X-MesageID: 58633364
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:qApO/qqhvOAJv3cQYC6esinx1Q5eBmLtYhIvgKrLsJaIsI4StFCzt
 garIBmDbq2JMDemftEnadiz/UIG7ZWBn9U1QQNkqXoyQXkV9ZuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2ILnW1rlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnZytbQYuGPOPocRHTDB5LX9nE5MFwZaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O
 ppHMmE0MkiojxtnIGcUEalntrySq2TSdjZStUvWu4cp2j2GpOB2+Oe0a4eEEjCQfu1Kmm6Iq
 2SA+H72ajkYKdiexDyt4n+qwOjVkkvTQ5kOHbe18vprhly7xWEJDhASE1yhrpGRmkO4Ht5SN
 UEQ0i4vtrQpslymSMHnWB+1q2LCuQQTM/JyOeAn7ACGyoLP/h2UQGMDS1Z8hMcO7ZFsA2Zwj
 xnQwo2vVWcHXKCppWy19qqwrDSUZ2ssDTUdTA46ExIr3ZraidRm5v7QdepLHKmwh9zzPDj/x
 TGWsSQz74kuYd43O7aTpg6e3W/1znTdZktsv1iMADr5hu9sTNf9P9TA1LTN0RpXwG91pHGlt
 WNMpcWR5ftm4XqlxH3UG7Vl8F1ECp+43NzgbbxHQ8ZJG9eFoSfLkWVsDNdWfxwB3iEsI2KBX
 aMrkVkNjKK/xVPzBUONX6q/Ct4x0Y/rHsn/W/bfY7JmO8YqK1/ZoX4/ORDMhAgBdXTAd4lkY
 v93lu72UB4n5VlPlmLqF4/xL5d3rszB+Y8jbc+ilEn2uVZvTHWUVa0EIDOzghMRt8u5TPHu2
 48HbaOikkwHOMWnO3W/2dNDfDgicClgbbir+pM/SwJ2Clc/cI3XI6SKmu1Jlk0Mt/k9q9okC
 VnhABIFkwSm2iWcQehIA1g6AI7SsV9EhSpTFUQR0ZyAgRDPuK6js/UScYUZZ74i+LAxxPJ4V
 aBdKc6BHu5OWnLM/DFENcvxq4lrdRKKgwOSPnX6PGhjLsA4HwGZqMX5egbP9TUVCnblv8UJv
 LD9hBjQRoAORlo+AZ+OOu6v1V64oVMUhPl2AxnTOtBWdUi1qNpqJiX9g+UZOcYJLRmflDKW2
 xzPWUUTpPXXop9z+97M3PjWo4CsGup4P0xbA2iEsurmaXiEpjKumNYSXvyJcDbRUHLP1J+jP
 egFnevhNPAnnUpRt9YuGbhc0q9jtcDkoKVXz1o4ESyTPUirEL5pPlKPwdJL6v9W3rZctAa7B
 hCP991dNenbMc/pCgdMdg8sb+DF3vAIgDjCq/8yJRyitiNw+bOGV2RUPgWN13MBfOckbtt9z
 LdzotMS5iy+lgEuY4SPgS1j/miRKmANDvc8vZYADY630gcmxzmuu3AH5vMaNH1XV+hxDw==
IronPort-HdrOrdr: A9a23:/oTs6q2E1DxZ1fotO3T4iwqjBIgkLtp133Aq2lEZdPRUGvb4qy
 nIpoVi6faUskdpZJhOo6HiBEDtexzhHNtOkO0s1NSZLW/bUQmTXeNfBOLZqlWKcUCTygce79
 YGT0EXMqyKMbEQt6bHCWeDferIuOP3lZyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="58633364"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 07/65] xen: Annotate fnptr targets from notifier callbacks
Date: Fri, 26 Nov 2021 12:33:48 +0000
Message-ID: <20211126123446.32324-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/cpu_idle.c                 | 2 +-
 xen/arch/x86/cpu/mcheck/mce.c                | 2 +-
 xen/arch/x86/cpu/mcheck/mce_intel.c          | 2 +-
 xen/arch/x86/cpu/mwait-idle.c                | 4 ++--
 xen/arch/x86/cpu/vpmu.c                      | 2 +-
 xen/arch/x86/genapic/x2apic.c                | 2 +-
 xen/arch/x86/hvm/hvm.c                       | 2 +-
 xen/arch/x86/nmi.c                           | 2 +-
 xen/arch/x86/percpu.c                        | 2 +-
 xen/arch/x86/psr.c                           | 2 +-
 xen/arch/x86/smpboot.c                       | 2 +-
 xen/common/debugtrace.c                      | 4 ++--
 xen/common/kexec.c                           | 2 +-
 xen/common/livepatch.c                       | 2 +-
 xen/common/rcupdate.c                        | 2 +-
 xen/common/sched/core.c                      | 2 +-
 xen/common/sched/cpupool.c                   | 2 +-
 xen/common/stop_machine.c                    | 2 +-
 xen/common/tasklet.c                         | 2 +-
 xen/common/timer.c                           | 2 +-
 xen/common/trace.c                           | 2 +-
 xen/drivers/cpufreq/cpufreq.c                | 2 +-
 xen/drivers/cpufreq/cpufreq_misc_governors.c | 2 +-
 xen/drivers/passthrough/x86/hvm.c            | 2 +-
 24 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 7902ccce6b98..fb47eb9ad68e 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -1622,7 +1622,7 @@ bool cpuidle_using_deep_cstate(void)
                                                                : ACPI_STATE_C1);
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index ea86d84481b2..a449fa0424ce 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -733,7 +733,7 @@ static int cpu_bank_alloc(unsigned int cpu)
     return 0;
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index bb9f3a3ff795..343bdb3a22ef 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -921,7 +921,7 @@ static int cpu_mcabank_alloc(unsigned int cpu)
     return -ENOMEM;
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/arch/x86/cpu/mwait-idle.c b/xen/arch/x86/cpu/mwait-idle.c
index d1739f6fc3cf..f2444bcff146 100644
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1195,8 +1195,8 @@ static int __init mwait_idle_probe(void)
 	return 0;
 }
 
-static int mwait_idle_cpu_init(struct notifier_block *nfb,
-			       unsigned long action, void *hcpu)
+static int cf_check mwait_idle_cpu_init(
+    struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
 	unsigned int cpu = (unsigned long)hcpu, cstate;
 	struct acpi_processor_power *dev = processor_powers[cpu];
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index c23e66d04c02..fec94a00e9a2 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -841,7 +841,7 @@ long cf_check do_xenpmu_op(
     return ret;
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c
index 9064a0ca4696..bd44bb753995 100644
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -187,7 +187,7 @@ static const struct genapic __initconstrel apic_x2apic_cluster = {
     .send_IPI_self = send_IPI_self_x2apic
 };
 
-static int update_clusterinfo(
+static int cf_check update_clusterinfo(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7af11656dcfd..0e935be1d772 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -117,7 +117,7 @@ static const char __initconst warning_hvm_fep[] =
 static bool_t __initdata opt_altp2m_enabled = 0;
 boolean_param("altp2m", opt_altp2m_enabled);
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index 21e947a46f24..5c101a9f97b3 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -428,7 +428,7 @@ void setup_apic_nmi_watchdog(void)
     nmi_active = 1;
 }
 
-static int cpu_nmi_callback(
+static int cf_check cpu_nmi_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/arch/x86/percpu.c b/xen/arch/x86/percpu.c
index 0e0b6577ca45..eb3ba7bc8874 100644
--- a/xen/arch/x86/percpu.c
+++ b/xen/arch/x86/percpu.c
@@ -63,7 +63,7 @@ static void free_percpu_area(unsigned int cpu)
     call_rcu(&info->rcu, _free_percpu_area);
 }
 
-static int cpu_percpu_callback(
+static int cf_check cpu_percpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 9a3670afc341..5b9991bd5b12 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -1642,7 +1642,7 @@ static void psr_cpu_fini(unsigned int cpu)
         free_socket_resources(socket);
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     int rc = 0;
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 329cfdb6c9f6..2b452dab9e75 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -1109,7 +1109,7 @@ static int cpu_smpboot_alloc(unsigned int cpu)
     return rc;
 }
 
-static int cpu_smpboot_callback(
+static int cf_check cpu_smpboot_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/common/debugtrace.c b/xen/common/debugtrace.c
index f3c0fd8aa17b..160d00b79607 100644
--- a/xen/common/debugtrace.c
+++ b/xen/common/debugtrace.c
@@ -263,8 +263,8 @@ static void debugtrace_alloc_buffer(struct debugtrace_data **ptr,
     *ptr = data;
 }
 
-static int debugtrace_cpu_callback(struct notifier_block *nfb,
-                                   unsigned long action, void *hcpu)
+static int cf_check debugtrace_cpu_callback(
+    struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
 
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index 36384f782db3..3b223cd03d75 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -531,7 +531,7 @@ static int kexec_init_cpu_notes(const unsigned long cpu)
     return ret;
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned long cpu = (unsigned long)hcpu;
diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index 33708b4e2388..701efd87a173 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -2124,7 +2124,7 @@ static void livepatch_printall(unsigned char key)
     spin_unlock(&payload_lock);
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/common/rcupdate.c b/xen/common/rcupdate.c
index a5a27af3def0..2ec5606de5dd 100644
--- a/xen/common/rcupdate.c
+++ b/xen/common/rcupdate.c
@@ -641,7 +641,7 @@ static void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp,
     init_timer(&rdp->idle_timer, rcu_idle_timer_handler, rdp, cpu);
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 0f527024ba2e..4a79971a1d45 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2839,7 +2839,7 @@ void sched_rm_cpu(unsigned int cpu)
     cpu_schedule_down(cpu);
 }
 
-static int cpu_schedule_callback(
+static int cf_check cpu_schedule_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index f26c7f289539..e5cfb03b857e 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -985,7 +985,7 @@ void dump_runq(unsigned char key)
     spin_unlock(&cpupool_lock);
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/common/stop_machine.c b/xen/common/stop_machine.c
index 8979d553d677..a122bd4afe09 100644
--- a/xen/common/stop_machine.c
+++ b/xen/common/stop_machine.c
@@ -182,7 +182,7 @@ static void stopmachine_action(void *data)
     local_irq_enable();
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/common/tasklet.c b/xen/common/tasklet.c
index ac89511a0955..1b16bbcdeb0b 100644
--- a/xen/common/tasklet.c
+++ b/xen/common/tasklet.c
@@ -214,7 +214,7 @@ void softirq_tasklet_init(struct tasklet *t, void (*func)(void *), void *data)
     t->is_softirq = 1;
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/common/timer.c b/xen/common/timer.c
index 1bb265ceea0e..b788050ea1d8 100644
--- a/xen/common/timer.c
+++ b/xen/common/timer.c
@@ -637,7 +637,7 @@ static void free_percpu_timers(unsigned int cpu)
         ASSERT(ts->heap == dummy_heap);
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/common/trace.c b/xen/common/trace.c
index a2a389a1c7c3..0886be089bea 100644
--- a/xen/common/trace.c
+++ b/xen/common/trace.c
@@ -79,7 +79,7 @@ static u32 tb_event_mask = TRC_ALL;
  * i.e., sizeof(_type) * ans >= _x. */
 #define fit_to_type(_type, _x) (((_x)+sizeof(_type)-1) / sizeof(_type))
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index e55e202d5a18..a94520ee57ac 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -632,7 +632,7 @@ static int __init cpufreq_cmdline_parse(const char *s)
     return rc;
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/drivers/cpufreq/cpufreq_misc_governors.c b/xen/drivers/cpufreq/cpufreq_misc_governors.c
index 8343f491da87..ad79d0f5d246 100644
--- a/xen/drivers/cpufreq/cpufreq_misc_governors.c
+++ b/xen/drivers/cpufreq/cpufreq_misc_governors.c
@@ -91,7 +91,7 @@ cpufreq_userspace_handle_option(const char *name, const char *val)
     return 0;
 }
 
-static int cpufreq_userspace_cpu_callback(
+static int cf_check cpufreq_userspace_cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
index ef71c3b92717..fef350ef3a1d 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -1042,7 +1042,7 @@ static void dpci_softirq(void)
     }
 }
 
-static int cpu_callback(
+static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
     unsigned int cpu = (unsigned long)hcpu;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232669.403470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRV-0002Ah-0Y; Fri, 26 Nov 2021 12:35:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232669.403470; Fri, 26 Nov 2021 12:35:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRU-00028x-Q6; Fri, 26 Nov 2021 12:35:04 +0000
Received: by outflank-mailman (input) for mailman id 232669;
 Fri, 26 Nov 2021 12:35:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRT-0001F5-2f
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:35:03 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4573f90b-4eb5-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:35:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4573f90b-4eb5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930101;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=s5eMYscCP90nHplpIvN4kyBrObzvO7RFLbbwLJlbTOM=;
  b=RhUGJwdnQml5TmdXKLIOktgf6tRg8baBWfCLrqCwQ8RK4VneXT0AyJ3L
   VZs3OMSYJBYZjjYQpGPz4Qg40a+weL39fEkfUKz3GkM/KTpgw6zyjfPua
   JmpSdUPDlSV/LbPBmYANovKO+Vu0qu97zJfU4NwxPSpZrGYtaWOQ9VT4/
   c=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: EbDdcOCaG8WfQ7csQtJWO+naDXPjJu0Ngdud4/gHiziS/lQcasq4bQAgbMK4mwNJ9+YvD+qg7J
 48D1Yfr8cVYhiVY38xvtchwSBGH2AHM2LS5kYFOEPi6rRBuNMTywE17npUJ7siZoWhw4BW2fIh
 Mr8mFKk6Jih7kGPafuiFVQfYwUft1qbIN0oSdZVzGWQ3+qEpLh0VKk+Yy0XXSNyZkvIUKRXvBu
 tZF9shOAxy4T1LkEXRPaYQRso7iD7l4x+Ltepo/wO7CMg05KktlilZRpjrDIs86upBhMoktAWp
 7bOEylVDOJizCtfyGq9haNUj
X-SBRS: 5.1
X-MesageID: 59062303
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:2mGyGKJGLgCkNfRsFE+RJJIlxSXFcZb7ZxGr2PjKsXjdYENS0T0Ey
 GpOWzvQOviOYjPyeth3O9uzoUtQsJ+EzYVhTgBlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xbZg6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Rzopw5
 /RKhKatdhwCN7zptM4eWCVxRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gph3p4URq6FD
 yYfQSRrPQvObTJmAXg0Oc8kmcG62H3DfAQN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wp
 H/C/mn/KgEXMpqY0zXt2mm3mubFkCf/WYQTPL617PhnhBuU3GN7IA0bUx63rOe0jma6WslDM
 AoE9yw2t68w+Ue3CN7nUHWQglSJoxodUNp4CPAh5UeGza+83uqCLjFaFHgbMoVg7ZJoA2xxv
 rOUoz/3LSQ+6ry6aHWszKqrthi7KA05B2wJWQZRGGPp/OLfiI00ixvOSPNqH6i0ksD5FFnM/
 tyakMQtr+5N1JBWjs1X6XiC2mvx/caREmbZ8y2OBjr9hj6VcrJJcGBBBbLzyf9bZLiUQVCa1
 JTvs5jPtbteZX1hecHkfQnsIF1Lz6raWNE/qQQ2d3XEy9hL0yX4FWy3yGsjTHqFyu5eJVfUj
 Lb74Gu9HqN7MnqwdrNQaImsEcksxqWIPY27Da+EMIcRM8QvKFTvEMRSiai4hDuFfK8Ey/xXB
 HtmWZz0USZy5VpPkFJauNvxIZd0n3tjlAs/tLjwzgi90Kr2WZJmYextDbd6VchgtPnsiFyMq
 753bpLWoz0CALyWSnSGquY7cAFVRUXX8Lir8qS7gMbYeVE4cIzgYteMqY4cl3tNw/4Iy7yWp
 y7lASe1CjPX3BX6FOlDUVg7AJuHYHq1hStT0fUEMQn61n49T5yo6atDJZI7caN+rL5ozOJuT
 ulDcMKFW6wdRjPC8jUbTJ/8sI09K0j72VPQZ3KoMGolYpptZw3V4du4LAHhwzYDU3isvswkr
 rz+ig6CGcgfRx5vBdr9Ye60yw/jpmAUne9/BhOaItRadEj23pJtLij90q0+L80WcE2RzTqGz
 QeGRxwfoLCV8YMy9dDIg4GCrpuoTLQiThYLQTGD4O/vZyfA/2elzYtRa8qyfGjQBDHu5aGvR
 eRJ1PWgYvcJq0lH7thnGLFxwKNgu9a2/+1Gzh5pFWngZkiwDu8yOWGP2MRCu/EfxrJdvgfqC
 EuD9sMDZOeMMcLhVlUQOBAkfqKI0vRNwmve6vE8IUPb4i5r/eXYDRUObkfU0CENfqFoNI4Fw
 Ps6vJ9E4gOyvRMmL9Kag30G7G+LNHEBD/0qu5xy7FUHUeb3JoWuuaDhNxI=
IronPort-HdrOrdr: A9a23:rKG69Kmd15tfHxegMbj0J+OFyRXpDfIU3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE8Qr5OUtQ/+xoV5PhfZqxz/JICMwqTNKftWrdyQyVxeNZnOjfKlTbckWUnINgPO
 VbAsxD4bXLfCBHZK3BgTVQfexO/DD+ytHLudvj
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="59062303"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 08/65] xen: Annotate fnptr targets from acpi_table_parse()
Date: Fri, 26 Nov 2021 12:33:49 +0000
Message-ID: <20211126123446.32324-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/boot.c                 | 24 ++++++++++++------------
 xen/arch/x86/hvm/dom0_build.c            | 16 ++++++++--------
 xen/arch/x86/srat.c                      |  4 ++--
 xen/arch/x86/tboot.c                     |  2 +-
 xen/arch/x86/x86_64/acpi_mmcfg.c         |  2 +-
 xen/arch/x86/x86_64/mmconfig.h           |  2 +-
 xen/drivers/acpi/apei/hest.c             |  4 ++--
 xen/drivers/acpi/numa.c                  | 10 +++++-----
 xen/drivers/passthrough/amd/iommu_acpi.c |  9 +++++----
 xen/drivers/passthrough/pci.c            |  3 ++-
 xen/drivers/passthrough/vtd/dmar.c       |  2 +-
 xen/include/asm-x86/tboot.h              |  2 +-
 xen/include/xen/acpi.h                   |  2 +-
 13 files changed, 42 insertions(+), 40 deletions(-)

diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
index 24702d041c9c..43953b385533 100644
--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -60,7 +60,7 @@ static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
                               Boot-time Configuration
    -------------------------------------------------------------------------- */
 
-static int __init acpi_parse_madt(struct acpi_table_header *table)
+static int __init cf_check acpi_parse_madt(struct acpi_table_header *table)
 {
 	struct acpi_table_madt *madt =
 		container_of(table, struct acpi_table_madt, header);
@@ -77,7 +77,7 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_x2apic(struct acpi_subtable_header *header, const unsigned long end)
 {
 	struct acpi_madt_local_x2apic *processor =
@@ -133,7 +133,7 @@ acpi_parse_x2apic(struct acpi_subtable_header *header, const unsigned long end)
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned long end)
 {
 	struct acpi_madt_local_apic *processor =
@@ -171,7 +171,7 @@ acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned long end)
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header,
 			  const unsigned long end)
 {
@@ -187,7 +187,7 @@ acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header,
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_x2apic_nmi(struct acpi_subtable_header *header,
 		      const unsigned long end)
 {
@@ -206,7 +206,7 @@ acpi_parse_x2apic_nmi(struct acpi_subtable_header *header,
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long end)
 {
 	struct acpi_madt_local_apic_nmi *lapic_nmi =
@@ -223,7 +223,7 @@ acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long e
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_ioapic(struct acpi_subtable_header * header, const unsigned long end)
 {
 	struct acpi_madt_io_apic *ioapic =
@@ -240,7 +240,7 @@ acpi_parse_ioapic(struct acpi_subtable_header * header, const unsigned long end)
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_int_src_ovr(struct acpi_subtable_header * header,
 		       const unsigned long end)
 {
@@ -267,7 +267,7 @@ acpi_parse_int_src_ovr(struct acpi_subtable_header * header,
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_nmi_src(struct acpi_subtable_header * header, const unsigned long end)
 {
 	struct acpi_madt_nmi_source *nmi_src =
@@ -283,7 +283,7 @@ acpi_parse_nmi_src(struct acpi_subtable_header * header, const unsigned long end
 	return 0;
 }
 
-static int __init acpi_parse_hpet(struct acpi_table_header *table)
+static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
 {
 	const struct acpi_table_hpet *hpet_tbl =
 		container_of(table, const struct acpi_table_hpet, header);
@@ -319,7 +319,7 @@ static int __init acpi_parse_hpet(struct acpi_table_header *table)
 	return 0;
 }
 
-static int __init acpi_invalidate_bgrt(struct acpi_table_header *table)
+static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
 {
 	struct acpi_table_bgrt *bgrt_tbl =
 		container_of(table, struct acpi_table_bgrt, header);
@@ -472,7 +472,7 @@ acpi_fadt_parse_sleep_info(const struct acpi_table_fadt *fadt)
 	       acpi_sinfo.wakeup_vector, acpi_sinfo.vector_width);
 }
 
-static int __init acpi_parse_fadt(struct acpi_table_header *table)
+static int __init cf_check acpi_parse_fadt(struct acpi_table_header *table)
 {
 	const struct acpi_table_fadt *fadt =
 		container_of(table, const struct acpi_table_fadt, header);
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 43e1bf12488a..a3c47de3c7e5 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -737,15 +737,15 @@ static int __init pvh_setup_cpus(struct domain *d, paddr_t entry,
     return 0;
 }
 
-static int __init acpi_count_intr_ovr(struct acpi_subtable_header *header,
-                                     const unsigned long end)
+static int __init cf_check acpi_count_intr_ovr(
+    struct acpi_subtable_header *header, const unsigned long end)
 {
     acpi_intr_overrides++;
     return 0;
 }
 
-static int __init acpi_set_intr_ovr(struct acpi_subtable_header *header,
-                                    const unsigned long end)
+static int __init cf_check acpi_set_intr_ovr(
+    struct acpi_subtable_header *header, const unsigned long end)
 {
     const struct acpi_madt_interrupt_override *intr =
         container_of(header, struct acpi_madt_interrupt_override, header);
@@ -756,15 +756,15 @@ static int __init acpi_set_intr_ovr(struct acpi_subtable_header *header,
     return 0;
 }
 
-static int __init acpi_count_nmi_src(struct acpi_subtable_header *header,
-                                     const unsigned long end)
+static int __init cf_check acpi_count_nmi_src(
+    struct acpi_subtable_header *header, const unsigned long end)
 {
     acpi_nmi_sources++;
     return 0;
 }
 
-static int __init acpi_set_nmi_src(struct acpi_subtable_header *header,
-                                   const unsigned long end)
+static int __init cf_check acpi_set_nmi_src(
+    struct acpi_subtable_header *header, const unsigned long end)
 {
     const struct acpi_madt_nmi_source *src =
         container_of(header, struct acpi_madt_nmi_source, header);
diff --git a/xen/arch/x86/srat.c b/xen/arch/x86/srat.c
index 6b77b9820195..cfe24c7e781c 100644
--- a/xen/arch/x86/srat.c
+++ b/xen/arch/x86/srat.c
@@ -407,8 +407,8 @@ void __init acpi_numa_arch_fixup(void) {}
 
 static uint64_t __initdata srat_region_mask;
 
-static int __init srat_parse_region(struct acpi_subtable_header *header,
-				    const unsigned long end)
+static int __init cf_check srat_parse_region(
+    struct acpi_subtable_header *header, const unsigned long end)
 {
 	struct acpi_srat_mem_affinity *ma;
 
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 529367ed8167..fe1abfdf08ff 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -450,7 +450,7 @@ int __init tboot_protect_mem_regions(void)
     return 1;
 }
 
-int __init tboot_parse_dmar_table(acpi_table_handler dmar_handler)
+int __init cf_check tboot_parse_dmar_table(acpi_table_handler dmar_handler)
 {
     int rc;
     uint64_t size;
diff --git a/xen/arch/x86/x86_64/acpi_mmcfg.c b/xen/arch/x86/x86_64/acpi_mmcfg.c
index 0db8f57abbed..2159c68189e4 100644
--- a/xen/arch/x86/x86_64/acpi_mmcfg.c
+++ b/xen/arch/x86/x86_64/acpi_mmcfg.c
@@ -68,7 +68,7 @@ static int __init acpi_mcfg_check_entry(struct acpi_table_mcfg *mcfg,
     return -EINVAL;
 }
 
-int __init acpi_parse_mcfg(struct acpi_table_header *header)
+int __init cf_check acpi_parse_mcfg(struct acpi_table_header *header)
 {
     struct acpi_table_mcfg *mcfg;
     unsigned long i;
diff --git a/xen/arch/x86/x86_64/mmconfig.h b/xen/arch/x86/x86_64/mmconfig.h
index 4d3b9fcbdd3c..433046be663a 100644
--- a/xen/arch/x86/x86_64/mmconfig.h
+++ b/xen/arch/x86/x86_64/mmconfig.h
@@ -76,7 +76,7 @@ static inline void mmio_config_writel(void __iomem *pos, u32 val)
 
 /* function prototypes */
 struct acpi_table_header;
-int acpi_parse_mcfg(struct acpi_table_header *header);
+int cf_check acpi_parse_mcfg(struct acpi_table_header *header);
 int pci_mmcfg_reserved(uint64_t address, unsigned int segment,
                        unsigned int start_bus, unsigned int end_bus,
                        unsigned int flags);
diff --git a/xen/drivers/acpi/apei/hest.c b/xen/drivers/acpi/apei/hest.c
index c5f3aaab7c4e..5881275d2f37 100644
--- a/xen/drivers/acpi/apei/hest.c
+++ b/xen/drivers/acpi/apei/hest.c
@@ -128,8 +128,8 @@ int apei_hest_parse(apei_hest_func_t func, void *data)
  * Check if firmware advertises firmware first mode. We need FF bit to be set
  * along with a set of MC banks which work in FF mode.
  */
-static int __init hest_parse_cmc(const struct acpi_hest_header *hest_hdr,
-				 void *data)
+static int __init cf_check hest_parse_cmc(
+	const struct acpi_hest_header *hest_hdr, void *data)
 {
 #ifdef CONFIG_X86_MCE
 	unsigned int i;
diff --git a/xen/drivers/acpi/numa.c b/xen/drivers/acpi/numa.c
index 85f891757c21..bc6e888234e4 100644
--- a/xen/drivers/acpi/numa.c
+++ b/xen/drivers/acpi/numa.c
@@ -112,14 +112,14 @@ void __init acpi_table_print_srat_entry(struct acpi_subtable_header * header)
 	}
 }
 
-static int __init acpi_parse_slit(struct acpi_table_header *table)
+static int __init cf_check acpi_parse_slit(struct acpi_table_header *table)
 {
 	acpi_numa_slit_init((struct acpi_table_slit *)table);
 
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_x2apic_affinity(struct acpi_subtable_header *header,
 			   const unsigned long end)
 {
@@ -138,7 +138,7 @@ acpi_parse_x2apic_affinity(struct acpi_subtable_header *header,
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_processor_affinity(struct acpi_subtable_header *header,
 			      const unsigned long end)
 {
@@ -156,7 +156,7 @@ acpi_parse_processor_affinity(struct acpi_subtable_header *header,
 	return 0;
 }
 
-static int __init
+static int __init cf_check
 acpi_parse_memory_affinity(struct acpi_subtable_header *header,
 			   const unsigned long end)
 {
@@ -174,7 +174,7 @@ acpi_parse_memory_affinity(struct acpi_subtable_header *header,
 	return 0;
 }
 
-int __init acpi_parse_srat(struct acpi_table_header *table)
+int __init cf_check acpi_parse_srat(struct acpi_table_header *table)
 {
 	if (!table)
 		return -EINVAL;
diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passthrough/amd/iommu_acpi.c
index 5ea227732821..3a7931458944 100644
--- a/xen/drivers/passthrough/amd/iommu_acpi.c
+++ b/xen/drivers/passthrough/amd/iommu_acpi.c
@@ -1078,7 +1078,7 @@ static inline bool_t is_ivmd_block(u8 type)
             type == ACPI_IVRS_TYPE_MEMORY_IOMMU);
 }
 
-static int __init parse_ivrs_table(struct acpi_table_header *table)
+static int __init cf_check parse_ivrs_table(struct acpi_table_header *table)
 {
     const struct acpi_ivrs_header *ivrs_block;
     unsigned long length;
@@ -1170,7 +1170,7 @@ static int __init parse_ivrs_table(struct acpi_table_header *table)
     return error;
 }
 
-static int __init detect_iommu_acpi(struct acpi_table_header *table)
+static int __init cf_check detect_iommu_acpi(struct acpi_table_header *table)
 {
     const struct acpi_ivrs_header *ivrs_block;
     unsigned long length = sizeof(struct acpi_table_ivrs);
@@ -1264,7 +1264,8 @@ static int __init get_last_bdf_ivhd(
     return last_bdf;
 }
 
-static int __init get_last_bdf_acpi(struct acpi_table_header *table)
+static int __init cf_check cf_check get_last_bdf_acpi(
+    struct acpi_table_header *table)
 {
     const struct acpi_ivrs_header *ivrs_block;
     unsigned long length = sizeof(struct acpi_table_ivrs);
@@ -1306,7 +1307,7 @@ int __init amd_iommu_update_ivrs_mapping_acpi(void)
     return acpi_table_parse(ACPI_SIG_IVRS, parse_ivrs_table);
 }
 
-static int __init
+static int __init cf_check
 get_supported_ivhd_type(struct acpi_table_header *table)
 {
     size_t length = sizeof(struct acpi_table_ivrs);
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 036f5c2b1ffa..e75c82d11bd6 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1218,7 +1218,8 @@ static bool_t hest_source_is_pcie_aer(const struct acpi_hest_header *hest_hdr)
     return 0;
 }
 
-static int aer_hest_parse(const struct acpi_hest_header *hest_hdr, void *data)
+static int cf_check aer_hest_parse(
+    const struct acpi_hest_header *hest_hdr, void *data)
 {
     struct aer_hest_parse_info *info = data;
     const struct acpi_hest_aer_common *p;
diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
index b152f3da916b..b8e91f5be1ae 100644
--- a/xen/drivers/passthrough/vtd/dmar.c
+++ b/xen/drivers/passthrough/vtd/dmar.c
@@ -767,7 +767,7 @@ acpi_parse_one_rhsa(struct acpi_dmar_header *header)
     return ret;
 }
 
-static int __init acpi_parse_dmar(struct acpi_table_header *table)
+static int __init cf_check acpi_parse_dmar(struct acpi_table_header *table)
 {
     struct acpi_table_dmar *dmar;
     struct acpi_dmar_header *entry_header;
diff --git a/xen/include/asm-x86/tboot.h b/xen/include/asm-x86/tboot.h
index bfeed1542fa3..818d5fa45132 100644
--- a/xen/include/asm-x86/tboot.h
+++ b/xen/include/asm-x86/tboot.h
@@ -124,7 +124,7 @@ void tboot_probe(void);
 void tboot_shutdown(uint32_t shutdown_type);
 int tboot_in_measured_env(void);
 int tboot_protect_mem_regions(void);
-int tboot_parse_dmar_table(acpi_table_handler dmar_handler);
+int cf_check tboot_parse_dmar_table(acpi_table_handler dmar_handler);
 int tboot_s3_resume(void);
 void tboot_s3_error(int error);
 int tboot_wake_ap(int apicid, unsigned long sipi_vec);
diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
index 088c238a504a..c82d5367bfb5 100644
--- a/xen/include/xen/acpi.h
+++ b/xen/include/xen/acpi.h
@@ -90,7 +90,7 @@ struct acpi_subtable_header *acpi_table_get_entry_madt(enum acpi_madt_type id,
 int acpi_table_parse_madt(enum acpi_madt_type id, acpi_table_entry_handler handler, unsigned int max_entries);
 int acpi_table_parse_srat(int id, acpi_madt_entry_handler handler,
 	unsigned int max_entries);
-int acpi_parse_srat(struct acpi_table_header *);
+int cf_check acpi_parse_srat(struct acpi_table_header *);
 void acpi_table_print (struct acpi_table_header *header, unsigned long phys_addr);
 void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
 void acpi_table_print_srat_entry (struct acpi_subtable_header *srat);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232670.403477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRV-0002KU-LO; Fri, 26 Nov 2021 12:35:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232670.403477; Fri, 26 Nov 2021 12:35:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRV-0002J2-Bu; Fri, 26 Nov 2021 12:35:05 +0000
Received: by outflank-mailman (input) for mailman id 232670;
 Fri, 26 Nov 2021 12:35:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRT-0001V1-Bj
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:35:03 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46703287-4eb5-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 13:35:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46703287-4eb5-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930102;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=ZQYtvEE7popO91dkZaKOY9KOwwyjuGb56VfMJICY5lw=;
  b=VNbcx+E8q9K2fLfplyO7Mr3j4LE1+Q/Zdcam7DGcAIVZPIX9USjYztIo
   sN2Gd8Rd3Bsp45gWxfJT6AjqrRg1rTVP+9vbRm/8EICC/AiISQtoqD2cl
   jsbeYFURmDQEgX5Pb1z4j/JaGXEeEDA41/jQnMgWD2D9fvaZqUKEZw076
   U=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: p/3ImIYAQw3Osavz7EyZ3PLUHL28sqDHszVEaLWodjgPmfMPk+AR0rrRlAMxeDhXcDREAZ2xYw
 A8fYJnV2D4AoetVlQWkUIvgjTwR5kJwYftzjeEl2FKW3YWXiZLMKrnhR6afxESEJqgQZ3u/yQ0
 KNWScBdmgMJ8Jg4Nb/xW+Cd012cIk2RQXFO9ewccP9F0mKCjZ4NlhX3dHBzdmEIzayH7uceWkh
 TCF/nWBl3CIcj7Io1TwRUruXcwANIJiiQIDd3RAI5C6sLyWZL5Ktxtjp0d0cHuAwzk4pikWYSD
 3VnIzqhbf2f8vLpwSP243xhM
X-SBRS: 5.1
X-MesageID: 58192114
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Msgwna7qd/bCFvxQr0OlDQxRtPXAchMFZxGqfqrLsTDasY5as4F+v
 mtJUDvVa/rcNjbxfdF3PYW18xxQsZOBm4NhSwZkrCBhHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw2LBVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z+
 fdM8rDpZS4QHoLyvL49EAEAIyxfFPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTa+PP
 ZNANVKDajz6aT9TAgZLBqllp82BmVzRbWwB9HGs8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u10bTDwweNdef4SGY6X/qjejK9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc+tyEqoWsS2k84r73SLDJiscFg5MSfVz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVnl
 CNf8yR5xLpTZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxg5bJtbKGO3P
 BS7VeZtCHl7ZyDCgUhfOd/ZNijX5fK4SYSNug78MrKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI+cElJNhMb6elJl1VNk/sHm+HW0
 Gu6X0MEmlPziWeecVeBa2x5aaOpVpF69CppMSspNFeu+n4ifYfws/tPK8ppJeEqpL550Pp5b
 /gZYMHcUP5BfSvKpmYGZp7noY08KBny3VCSPzCoaSQUdoJ7Q1Cb4cftewbirXFcDie+ucYkj
 aen0wfXHcgKSwh4VZ6EY/Oz1VKh+3ManbsqDUfPJ9BSfmTq8ZRrdHOt3qNmfZlUJEyalDWA1
 guQDRMJnsX3otc4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKkQoYs4d4FLo3n6sy68G2+u1fxwVgWn7Kc06qGvVrJXzfhZtDsahEx7l4vwqqW
 x3QpokGaOvRYM61QkQMIAcFb/iY0aBGkzbf2v05PUHm6XIl57GAS0hTY0GBhSE1wGGZ62/5L
 TPNYPIr1jE=
IronPort-HdrOrdr: A9a23:60Fb2aG+eXBUxhYqpLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="58192114"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 01/65] x86: Introduce support for CET-IBT
Date: Fri, 26 Nov 2021 12:33:42 +0000
Message-ID: <20211126123446.32324-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

CET Indirect Branch Tracking is a hardware feature designed to provide
forward-edge control flow integrity, protecting against jump/call oriented
programming.

IBT requires the placement of ENDBR{32,64} instructions at the target of every
indirect call/jmp, and every entrypoint.

However, the default -fcf-protection=branch places an ENDBR on every function
which far more than necessary, and reduces the quantity of protection
afforded.  Therefore, we use manual placement using the cf_check attribute.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 Config.mk                              |  1 -
 tools/firmware/Makefile                |  2 ++
 xen/arch/x86/Kconfig                   | 17 +++++++++++++++++
 xen/arch/x86/arch.mk                   |  6 ++++++
 xen/arch/x86/x86_emulate/x86_emulate.h |  5 +++++
 xen/include/asm-x86/asm-defns.h        |  6 ++++++
 xen/include/asm-x86/cpufeature.h       |  1 +
 xen/include/asm-x86/cpufeatures.h      |  1 +
 xen/include/xen/compiler.h             |  6 ++++++
 9 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/Config.mk b/Config.mk
index 6587c7d626c9..508261a7dcf4 100644
--- a/Config.mk
+++ b/Config.mk
@@ -199,7 +199,6 @@ APPEND_CFLAGS += $(foreach i, $(APPEND_INCLUDES), -I$(i))
 
 EMBEDDED_EXTRA_CFLAGS := -nopie -fno-stack-protector -fno-stack-protector-all
 EMBEDDED_EXTRA_CFLAGS += -fno-exceptions -fno-asynchronous-unwind-tables
-EMBEDDED_EXTRA_CFLAGS += -fcf-protection=none
 
 XEN_EXTFILES_URL ?= http://xenbits.xen.org/xen-extfiles
 # All the files at that location were downloaded from elsewhere on
diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index 1f2711779400..b2fd73248604 100644
--- a/tools/firmware/Makefile
+++ b/tools/firmware/Makefile
@@ -6,6 +6,8 @@ TARGET      := hvmloader/hvmloader
 INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR)
 DEBG_DIR := $(DESTDIR)$(DEBUG_DIR)$(XENFIRMWAREDIR)
 
+EMBEDDED_EXTRA_CFLAGS += -fcf-protection=none
+
 SUBDIRS-y :=
 SUBDIRS-$(CONFIG_OVMF) += ovmf-dir
 SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index b4abfca46f6a..8b7ad0145b29 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -39,6 +39,11 @@ config HAS_AS_CET_SS
 	# binutils >= 2.29 or LLVM >= 6
 	def_bool $(as-instr,wrssq %rax$(comma)0;setssbsy)
 
+config HAS_CC_CET_IBT
+	# GCC >= 9 and binutils >= 2.29
+	# Retpoline check to work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93654
+	def_bool $(cc-option,-fcf-protection=branch -mmanual-endbr -mindirect-branch=thunk-extern) && $(as-instr,endbr64)
+
 menu "Architecture Features"
 
 source "arch/Kconfig"
@@ -124,6 +129,18 @@ config XEN_SHSTK
 	  When CET-SS is active, 32bit PV guests cannot be used.  Backwards
 	  compatiblity can be provided via the PV Shim mechanism.
 
+config XEN_IBT
+	bool "Supervisor Indirect Branch Tracking"
+	depends on HAS_CC_CET_IBT
+	default y
+	help
+	  Control-flow Enforcement Technology (CET) is a set of features in
+	  hardware designed to combat Return-oriented Programming (ROP, also
+	  call/jump COP/JOP) attacks.  Indirect Branch Tracking is one CET
+	  feature designed to provide function pointer protection.
+
+	  This option arranges for Xen to use CET-IBT for its own protection.
+
 config SHADOW_PAGING
 	bool "Shadow Paging"
 	default !PV_SHIM_EXCLUSIVE
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index ce0c1a0e7fb2..1c8381f7c9d8 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -46,6 +46,12 @@ CFLAGS-$(CONFIG_INDIRECT_THUNK) += -mindirect-branch=thunk-extern
 CFLAGS-$(CONFIG_INDIRECT_THUNK) += -mindirect-branch-register
 CFLAGS-$(CONFIG_INDIRECT_THUNK) += -fno-jump-tables
 
+ifdef CONFIG_HAS_CC_CET_IBT
+CFLAGS += -fcf-protection=branch -mmanual-endbr
+else
+$(call cc-option-add,CFLAGS,CC,-fcf-protection=none)
+endif
+
 # If supported by the compiler, reduce stack alignment to 8 bytes. But allow
 # this to be overridden elsewhere.
 $(call cc-option-add,CFLAGS-stack-boundary,CC,-mpreferred-stack-boundary=3)
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.h b/xen/arch/x86/x86_emulate/x86_emulate.h
index d8fb3a990933..4a483a464804 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.h
+++ b/xen/arch/x86/x86_emulate/x86_emulate.h
@@ -35,6 +35,11 @@
 # error Unknown compilation width
 #endif
 
+#ifndef cf_check
+/* Cope with userspace build not knowing about CET-IBT */
+#define cf_check
+#endif
+
 struct x86_emulate_ctxt;
 
 /*
diff --git a/xen/include/asm-x86/asm-defns.h b/xen/include/asm-x86/asm-defns.h
index 505f39ad5f76..8bd9007731d5 100644
--- a/xen/include/asm-x86/asm-defns.h
+++ b/xen/include/asm-x86/asm-defns.h
@@ -57,6 +57,12 @@
     INDIRECT_BRANCH jmp \arg
 .endm
 
+#ifdef CONFIG_XEN_IBT
+# define ENDBR64 endbr64
+#else
+# define ENDBR64
+#endif
+
 .macro guest_access_mask_ptr ptr:req, scratch1:req, scratch2:req
 #if defined(CONFIG_SPECULATIVE_HARDEN_GUEST_ACCESS)
     /*
diff --git a/xen/include/asm-x86/cpufeature.h b/xen/include/asm-x86/cpufeature.h
index 4754940e23f3..d9e1cd87f0fb 100644
--- a/xen/include/asm-x86/cpufeature.h
+++ b/xen/include/asm-x86/cpufeature.h
@@ -151,6 +151,7 @@
 #define cpu_has_nscb            boot_cpu_has(X86_FEATURE_NSCB)
 #define cpu_has_xen_lbr         boot_cpu_has(X86_FEATURE_XEN_LBR)
 #define cpu_has_xen_shstk       boot_cpu_has(X86_FEATURE_XEN_SHSTK)
+#define cpu_has_xen_ibt         boot_cpu_has(X86_FEATURE_XEN_IBT)
 
 #define cpu_has_msr_tsc_aux     (cpu_has_rdtscp || cpu_has_rdpid)
 
diff --git a/xen/include/asm-x86/cpufeatures.h b/xen/include/asm-x86/cpufeatures.h
index b10154fc44bb..7413febd7ad8 100644
--- a/xen/include/asm-x86/cpufeatures.h
+++ b/xen/include/asm-x86/cpufeatures.h
@@ -39,6 +39,7 @@ XEN_CPUFEATURE(SC_VERW_PV,        X86_SYNTH(23)) /* VERW used by Xen for PV */
 XEN_CPUFEATURE(SC_VERW_HVM,       X86_SYNTH(24)) /* VERW used by Xen for HVM */
 XEN_CPUFEATURE(SC_VERW_IDLE,      X86_SYNTH(25)) /* VERW used by Xen for idle */
 XEN_CPUFEATURE(XEN_SHSTK,         X86_SYNTH(26)) /* Xen uses CET Shadow Stacks */
+XEN_CPUFEATURE(XEN_IBT,           X86_SYNTH(27)) /* Xen uses CET Indirect Branch Tracking */
 
 /* Bug words follow the synthetic words. */
 #define X86_NR_BUG 1
diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
index 696c7eb89e4c..575036f44b3b 100644
--- a/xen/include/xen/compiler.h
+++ b/xen/include/xen/compiler.h
@@ -37,6 +37,12 @@
 # define nocall
 #endif
 
+#ifdef CONFIG_HAS_CC_CET_IBT
+# define cf_check     __attribute__((__cf_check__))
+#else
+# define cf_check
+#endif
+
 #if (!defined(__clang__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 5))
 #define unreachable() do {} while (1)
 #else
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232671.403489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRW-0002gC-Sh; Fri, 26 Nov 2021 12:35:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232671.403489; Fri, 26 Nov 2021 12:35:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRW-0002cX-Hj; Fri, 26 Nov 2021 12:35:06 +0000
Received: by outflank-mailman (input) for mailman id 232671;
 Fri, 26 Nov 2021 12:35:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRU-0001F5-3e
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:35:04 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45cd3548-4eb5-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:35:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45cd3548-4eb5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930101;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=MRvQuR5PkwmyOOXBQLS3qS6dnN5OluVhP58XPt+R230=;
  b=SGVlUNARuo/dPMWI+G9v1KX3BkGcyQPSefAo4bhCBVPD9aNKaW7cpjs0
   hrkEPHGjc3wluJMGCjx136PltSPPw+keAIASF3hBnrprM3jyKujjXvgDS
   17Z1iDKEa7x1u7VEUxzXIKK7nIXkPG9W9s+MdHvoPEOCGYdYwvUP3X2pg
   I=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: VE3q6VryEGH8aQ8yMt4cbipRP0cNMImm9YPQVoWboiN6RzYrcabAz8nM4AX0kXj6PC6F/e1ngE
 tf2RVP8cMz+YNyIdHp6gufUHoAHbPs227+piE6fq28Au4rY/pd38PQXuhILKC9Zj2GIArNHMDi
 ZZA6fidqeQXlJwqRwJdIxhQa+rM+bjpOoaEQ0SObXna8VvnzitVyjNhh9as8EEiNl5PxPmQclB
 S43toWCZkODFyfsChP1EI6iEVoPqV5AETv9VvNGkHcfniIInKl2l8DtvSb8sFHYNyWotqaLACi
 KeYhHkOf8SHeGdCMx4w4VH2F
X-SBRS: 5.1
X-MesageID: 58633367
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ELX1nKh0W3VTQh66nrIfkZlvX161lRcKZh0ujC45NGQN5FlHY01je
 htvW2qGPfiOYzCgeIh0bt7ko0pUsMLTy4BhTwBopClnHyIb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy34Dga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1NqLixTiF3fZTswvs0cicGCg9AfpRvreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNauOO
 ZFCMmQwBPjGSzJxIU4wF8skp+6TjyPmVAxGl32Ku7VitgA/yyQuieOwYbI5YOeiWsF9jkue4
 GXc8AzRAAweNdGZ4SqI9DSrnOCntTjgRIsYGbm89/hrqF6e3GoeDFsRT1TTiem0jAuyVsxSL
 2QQ+zEytu4i+UqzVN7/Uhak5nmesXY0efBdDuk74wGl0bfP7kCSAW1sc9JaQIV47olsH2Vsj
 wLX2YOybdByjFGLYXKA0raTi23xAAhPMkYjW3EdYzVG2vC29enfkSnzZtpkFae0iPj8Fjfx3
 y2GoUACulkDsSIY//7lpA6a2lpAsrCMF1dovVuPAgpJ+ysgPNb9D7FE/2Q3+hqpwGyxalCa9
 EYJlMGFhAzlJcHczXfdKAnh8VzA2hpkDNE+qQIwd3XC3270k5JGQWy2yGolTKuOGpxZEQIFm
 GeJ5WtsCGZ7ZRNGl5NfbYOrENgNxqP9D9njXf28RoMQOcchKlLYrX0wORX4M4XRfK4EyvpX1
 XCzK5vEMJrnIf4/kGreqxk1jdfHORzSNUuMHMumnnxLIJKVZWKPSKdtDbd9RrtR0U9wmy2Mq
 4w3H5LTk313CbSiCgGKod97BQ1bdhATWMGpw/G7g8bee2KK7kl6UKSPqV7gEqQ495loehDgo
 ivgBxQGkQWn3hUq62yiMxheVV8mZr4nxVpTAMDmFQzAN6ELbdn94aEBWYEweLV7puVvweQtF
 6sOetmaA+QJQTPComxPYZ74pY1kVRKqmQPRYHb1PGlhJ8ZtF17T59vpXgrz7y1SXCC5gtQz/
 u+73QTBTJtdGwk7VJTKaOiixk+atGQGnL4gRFPBJ9ReIR2+8IVjJyHroOUwJsUAdUfKyjeAj
 l7EChYEv+jd5YQy9YCR16yDqo6oFcp4H1ZbQDaHverna3GC8zP6k4FaUeuOcTTMb0/O+f2vN
 bdP0vXxEPwbh1IW4YByJKlmkPAl7Nz1qr4Ekgk9RCfXb06mA69LK2Wd2ZUdrbVEw7JUtFfkW
 k+L/dUGa7yFNNm8TQwULQshKO+CyesVin/Z6vFseBf24yp+/bymV0ROPkbT1HwBfeUtaI51k
 /08vMM26hCkjkt4O9mLuSlY6mCQIyFSSK4grJwbXNfmhwdDJouuunAA5vsaOK2yVug=
IronPort-HdrOrdr: A9a23:oD45rKiXL1nAAjSnXh+wneUJyXBQXuAji2hC6mlwRA09TySZ//
 rOoB19726NtN9xYgBYpTnuAtjifZqxz/FICMwqTNOftWrdyQ2VxeNZnOnfKlTbckWUnIMw6U
 4jSdkYNDSZNykAsS+Q2mmF+rgbruVviJrY4Nvj8w==
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="58633367"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 05/65] xen: Annotate fnptr targets from custom_param()
Date: Fri, 26 Nov 2021 12:33:46 +0000
Message-ID: <20211126123446.32324-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The "watchdog_timeout" and "cpu_type" handlers were missing __init.

The "numa", "acpi", "irq_vector_map" and "flask" handlers can skip forward
declarations by altering the custom_param() position.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/cpu_idle.c             |  2 +-
 xen/arch/x86/acpi/power.c                |  2 +-
 xen/arch/x86/apic.c                      |  4 ++--
 xen/arch/x86/cpu/mcheck/mce.c            |  2 +-
 xen/arch/x86/cpu/microcode/core.c        |  2 +-
 xen/arch/x86/cpu/vpmu.c                  |  2 +-
 xen/arch/x86/cpuid.c                     |  2 +-
 xen/arch/x86/dom0_build.c                |  8 ++++----
 xen/arch/x86/genapic/probe.c             |  2 +-
 xen/arch/x86/hpet.c                      |  2 +-
 xen/arch/x86/hvm/viridian/viridian.c     |  2 +-
 xen/arch/x86/hvm/vmx/vmcs.c              |  8 ++++----
 xen/arch/x86/io_apic.c                   |  2 +-
 xen/arch/x86/irq.c                       |  6 ++----
 xen/arch/x86/mm.c                        |  2 +-
 xen/arch/x86/nmi.c                       |  4 ++--
 xen/arch/x86/numa.c                      |  6 ++----
 xen/arch/x86/oprofile/nmi_int.c          |  2 +-
 xen/arch/x86/psr.c                       |  2 +-
 xen/arch/x86/pv/domain.c                 |  8 ++++----
 xen/arch/x86/pv/shim.c                   |  2 +-
 xen/arch/x86/setup.c                     | 11 +++++------
 xen/arch/x86/shutdown.c                  |  2 +-
 xen/arch/x86/spec_ctrl.c                 |  6 +++---
 xen/arch/x86/time.c                      |  2 +-
 xen/arch/x86/tsx.c                       |  2 +-
 xen/arch/x86/x86_64/mmconfig-shared.c    |  2 +-
 xen/common/argo.c                        |  2 +-
 xen/common/core_parking.c                |  2 +-
 xen/common/debugtrace.c                  |  2 +-
 xen/common/domain.c                      |  2 +-
 xen/common/efi/boot.c                    |  2 +-
 xen/common/grant_table.c                 | 14 +++++++-------
 xen/common/kexec.c                       |  6 +++---
 xen/common/memory.c                      |  2 +-
 xen/common/page_alloc.c                  |  2 +-
 xen/common/sched/cpupool.c               |  2 +-
 xen/common/sched/credit2.c               |  2 +-
 xen/drivers/acpi/tables.c                |  2 +-
 xen/drivers/char/console.c               | 18 +++++++++---------
 xen/drivers/cpufreq/cpufreq.c            |  2 +-
 xen/drivers/passthrough/amd/iommu_acpi.c |  6 +++---
 xen/drivers/passthrough/iommu.c          |  4 ++--
 xen/drivers/passthrough/pci.c            |  4 ++--
 xen/drivers/passthrough/vtd/dmar.c       |  2 +-
 xen/drivers/passthrough/vtd/quirks.c     |  2 +-
 xen/drivers/video/vesa.c                 |  2 +-
 xen/xsm/flask/flask_op.c                 |  5 ++---
 xen/xsm/xsm_core.c                       |  2 +-
 49 files changed, 89 insertions(+), 95 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index d788c8bffc84..5d73eb5917af 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -106,7 +106,7 @@ void (*__read_mostly pm_idle_save)(void);
 unsigned int max_cstate __read_mostly = UINT_MAX;
 unsigned int max_csubstate __read_mostly = UINT_MAX;
 
-static int __init parse_cstate(const char *s)
+static int __init cf_check parse_cstate(const char *s)
 {
     max_cstate = simple_strtoul(s, &s, 0);
     if ( *s == ',' )
diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c
index 31a56f02d083..0f2c87c096c7 100644
--- a/xen/arch/x86/acpi/power.c
+++ b/xen/arch/x86/acpi/power.c
@@ -35,7 +35,7 @@
 
 uint32_t system_reset_counter = 1;
 
-static int __init parse_acpi_sleep(const char *s)
+static int __init cf_check parse_acpi_sleep(const char *s)
 {
     const char *ss;
     unsigned int flag = 0;
diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 55c103aaffbb..dd6cf1529f1e 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -775,7 +775,7 @@ int lapic_resume(void)
  * Original code written by Keir Fraser.
  */
 
-static int __init lapic_disable(const char *str)
+static int __init cf_check lapic_disable(const char *str)
 {
     enable_local_apic = -1;
     setup_clear_cpu_cap(X86_FEATURE_APIC);
@@ -784,7 +784,7 @@ static int __init lapic_disable(const char *str)
 custom_param("nolapic", lapic_disable);
 boolean_param("lapic", enable_local_apic);
 
-static int __init apic_set_verbosity(const char *str)
+static int __init cf_check apic_set_verbosity(const char *str)
 {
     if (strcmp("debug", str) == 0)
         apic_verbosity = APIC_DEBUG;
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index eae08caa07cd..ea86d84481b2 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -63,7 +63,7 @@ struct mca_banks *mca_allbanks;
 #endif
 
 int mce_verbosity;
-static int __init mce_set_verbosity(const char *str)
+static int __init cf_check mce_set_verbosity(const char *str)
 {
     if ( strcmp("verbose", str) == 0 )
         mce_verbosity = MCE_VERBOSE;
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index ac3ceb567c41..95d35ca0f3f7 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -111,7 +111,7 @@ void __init microcode_set_module(unsigned int idx)
  * optional. If the EFI has forced which of the multiboot payloads is to be
  * used, only nmi=<bool> is parsed.
  */
-static int __init parse_ucode(const char *s)
+static int __init cf_check parse_ucode(const char *s)
 {
     const char *ss;
     int val, rc = 0;
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index 4ada29670469..9875143cac0e 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -55,7 +55,7 @@ static unsigned vpmu_count;
 
 static DEFINE_PER_CPU(struct vcpu *, last_vcpu);
 
-static int __init parse_vpmu_params(const char *s)
+static int __init cf_check parse_vpmu_params(const char *s)
 {
     const char *ss;
     int rc = 0, val;
diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 151944f65702..f33c6ed76872 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -26,7 +26,7 @@ static const uint32_t __initconst hvm_hap_def_featuremask[] =
     INIT_HVM_HAP_DEF_FEATURES;
 static const uint32_t deep_features[] = INIT_DEEP_FEATURES;
 
-static int __init parse_xen_cpuid(const char *s)
+static int __init cf_check parse_xen_cpuid(const char *s)
 {
     const char *ss;
     int val, rc = 0;
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 5a7441ed5b79..7c2ad03ac647 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -114,7 +114,7 @@ static int __init parse_amt(const char *s, const char **ps, struct memsize *sz)
     return 0;
 }
 
-static int __init parse_dom0_mem(const char *s)
+static int __init cf_check parse_dom0_mem(const char *s)
 {
     int ret;
 
@@ -143,7 +143,7 @@ custom_param("dom0_mem", parse_dom0_mem);
 static unsigned int __initdata opt_dom0_max_vcpus_min = 1;
 static unsigned int __initdata opt_dom0_max_vcpus_max = UINT_MAX;
 
-static int __init parse_dom0_max_vcpus(const char *s)
+static int __init cf_check parse_dom0_max_vcpus(const char *s)
 {
     if ( *s == '-' )                   /* -M */
         opt_dom0_max_vcpus_max = simple_strtoul(s + 1, &s, 0);
@@ -167,7 +167,7 @@ static __initdata unsigned int dom0_pxms[MAX_NUMNODES] =
     { [0 ... MAX_NUMNODES - 1] = ~0 };
 bool __initdata dom0_affinity_relaxed;
 
-static int __init parse_dom0_nodes(const char *s)
+static int __init cf_check parse_dom0_nodes(const char *s)
 {
     const char *ss;
     int rc = 0;
@@ -265,7 +265,7 @@ bool __initdata opt_dom0_pvh = !IS_ENABLED(CONFIG_PV);
 bool __initdata opt_dom0_verbose = IS_ENABLED(CONFIG_VERBOSE_DEBUG);
 bool __initdata opt_dom0_msr_relaxed;
 
-static int __init parse_dom0_param(const char *s)
+static int __init cf_check parse_dom0_param(const char *s)
 {
     const char *ss;
     int rc = 0;
diff --git a/xen/arch/x86/genapic/probe.c b/xen/arch/x86/genapic/probe.c
index 66bc5ce072dc..ad57912f506b 100644
--- a/xen/arch/x86/genapic/probe.c
+++ b/xen/arch/x86/genapic/probe.c
@@ -43,7 +43,7 @@ void __init generic_bigsmp_probe(void)
 		}
 }
 
-static int __init genapic_apic_force(const char *str)
+static int __init cf_check genapic_apic_force(const char *str)
 {
 	int i, rc = -EINVAL;
 
diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index afe104dc93c2..7b009a930498 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -65,7 +65,7 @@ u8 __initdata hpet_flags;
 static bool __initdata force_hpet_broadcast;
 boolean_param("hpetbroadcast", force_hpet_broadcast);
 
-static int __init parse_hpet_param(const char *s)
+static int __init cf_check parse_hpet_param(const char *s)
 {
     const char *ss;
     int val, rc = 0;
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c
index 9e1363207f80..ad32b09725d5 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -1207,7 +1207,7 @@ static int viridian_load_vcpu_ctxt(struct domain *d,
 HVM_REGISTER_SAVE_RESTORE(VIRIDIAN_VCPU, viridian_save_vcpu_ctxt,
                           viridian_load_vcpu_ctxt, 1, HVMSR_PER_VCPU);
 
-static int __init parse_viridian_version(const char *arg)
+static int __init cf_check parse_viridian_version(const char *arg)
 {
     const char *t;
     unsigned int n[3];
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index f9f9bc18cdbc..3d1ca248ffde 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -71,7 +71,7 @@ static bool __read_mostly opt_ept_pml = true;
 static s8 __read_mostly opt_ept_ad = -1;
 int8_t __read_mostly opt_ept_exec_sp = -1;
 
-static int __init parse_ept_param(const char *s)
+static int __init cf_check parse_ept_param(const char *s)
 {
     const char *ss;
     int val, rc = 0;
@@ -107,16 +107,16 @@ static void update_ept_param(void)
                  opt_ept_exec_sp);
 }
 
-static void __init init_ept_param(struct param_hypfs *par)
+static void __init cf_check init_ept_param(struct param_hypfs *par)
 {
     update_ept_param();
     custom_runtime_set_var(par, opt_ept_setting);
 }
 
-static int parse_ept_param_runtime(const char *s);
+static int cf_check parse_ept_param_runtime(const char *s);
 custom_runtime_only_param("ept", parse_ept_param_runtime, init_ept_param);
 
-static int parse_ept_param_runtime(const char *s)
+static int cf_check parse_ept_param_runtime(const char *s)
 {
     struct domain *d;
     int val;
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 1c49a0fe1478..4135a9c06052 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1601,7 +1601,7 @@ static unsigned int startup_level_ioapic_irq(struct irq_desc *desc)
     return 0; /* don't check for pending */
 }
 
-static int __init setup_ioapic_ack(const char *s)
+static int __init cf_check setup_ioapic_ack(const char *s)
 {
     if ( !strcmp(s, "old") )
     {
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 67cbf6b979dc..84b174d0f51f 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -28,8 +28,6 @@
 #include <irq_vectors.h>
 #include <public/physdev.h>
 
-static int parse_irq_vector_map_param(const char *s);
-
 /* opt_noirqbalance: If true, software IRQ balancing/affinity is disabled. */
 bool __read_mostly opt_noirqbalance;
 boolean_param("noirqbalance", opt_noirqbalance);
@@ -40,7 +38,6 @@ integer_param("nr_irqs", nr_irqs);
 
 /* This default may be changed by the AMD IOMMU code */
 int __read_mostly opt_irq_vector_map = OPT_IRQ_VECTOR_MAP_DEFAULT;
-custom_param("irq_vector_map", parse_irq_vector_map_param);
 
 /* Max number of guests IRQ could be shared with */
 static unsigned char __read_mostly irq_max_guests;
@@ -66,7 +63,7 @@ static struct timer irq_ratelimit_timer;
 static unsigned int __read_mostly irq_ratelimit_threshold = 10000;
 integer_param("irq_ratelimit", irq_ratelimit_threshold);
 
-static int __init parse_irq_vector_map_param(const char *s)
+static int __init cf_check parse_irq_vector_map_param(const char *s)
 {
     const char *ss;
     int rc = 0;
@@ -90,6 +87,7 @@ static int __init parse_irq_vector_map_param(const char *s)
 
     return rc;
 }
+custom_param("irq_vector_map", parse_irq_vector_map_param);
 
 /* Must be called when irq disabled */
 void lock_vector_lock(void)
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 25f44a161c65..35d000921795 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -189,7 +189,7 @@ static uint32_t base_disallow_mask;
 
 static s8 __read_mostly opt_mmio_relax;
 
-static int __init parse_mmio_relax(const char *s)
+static int __init cf_check parse_mmio_relax(const char *s)
 {
     if ( !*s )
         opt_mmio_relax = 1;
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index ab94a96c4d03..1a225d499295 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -48,7 +48,7 @@ bool __initdata opt_watchdog;
 /* watchdog_force: If true, process unknown NMIs when running the watchdog. */
 bool watchdog_force;
 
-static int __init parse_watchdog(const char *s)
+static int __init cf_check parse_watchdog(const char *s)
 {
     if ( !*s )
     {
@@ -78,7 +78,7 @@ custom_param("watchdog", parse_watchdog);
 /* opt_watchdog_timeout: Number of seconds to wait before panic. */
 static unsigned int opt_watchdog_timeout = 5;
 
-static int parse_watchdog_timeout(const char *s)
+static int __init cf_check parse_watchdog_timeout(const char *s)
 {
     const char *q;
 
diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c
index ce79ee44cefe..6be5a0c93322 100644
--- a/xen/arch/x86/numa.c
+++ b/xen/arch/x86/numa.c
@@ -19,9 +19,6 @@
 #include <xen/sched.h>
 #include <xen/softirq.h>
 
-static int numa_setup(const char *s);
-custom_param("numa", numa_setup);
-
 #ifndef Dprintk
 #define Dprintk(x...)
 #endif
@@ -294,7 +291,7 @@ void numa_set_node(int cpu, nodeid_t node)
 }
 
 /* [numa=off] */
-static __init int numa_setup(const char *opt)
+static int __init cf_check numa_setup(const char *opt)
 {
     if ( !strncmp(opt,"off",3) )
         numa_off = true;
@@ -321,6 +318,7 @@ static __init int numa_setup(const char *opt)
 
     return 0;
 } 
+custom_param("numa", numa_setup);
 
 /*
  * Setup early cpu_to_node.
diff --git a/xen/arch/x86/oprofile/nmi_int.c b/xen/arch/x86/oprofile/nmi_int.c
index a13bd82915ac..7842d95b95ea 100644
--- a/xen/arch/x86/oprofile/nmi_int.c
+++ b/xen/arch/x86/oprofile/nmi_int.c
@@ -340,7 +340,7 @@ static int __init p4_init(char ** cpu_type)
 
 static int force_arch_perfmon;
 
-static int force_cpu_type(const char *str)
+static int __init cf_check force_cpu_type(const char *str)
 {
 	if (!strcmp(str, "arch_perfmon")) {
 		force_arch_perfmon = 1;
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index d805b85dc60b..56916344cb1d 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -573,7 +573,7 @@ static bool __init parse_psr_bool(const char *s, const char *delim,
     return false;
 }
 
-static int __init parse_psr_param(const char *s)
+static int __init cf_check parse_psr_param(const char *s)
 {
     const char *ss, *val_delim;
     const char *q;
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 6ad533183bcd..125c4561a7ea 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -20,7 +20,7 @@
 int8_t __read_mostly opt_pv32 = -1;
 #endif
 
-static __init int parse_pv(const char *s)
+static int __init cf_check parse_pv(const char *s)
 {
     const char *ss;
     int val, rc = 0;
@@ -63,16 +63,16 @@ static const char opt_pcid_2_string[][7] = {
     [PCID_NOXPTI] = "noxpti",
 };
 
-static void __init opt_pcid_init(struct param_hypfs *par)
+static void __init cf_check opt_pcid_init(struct param_hypfs *par)
 {
     custom_runtime_set_var(par, opt_pcid_2_string[opt_pcid]);
 }
 #endif
 
-static int parse_pcid(const char *s);
+static int cf_check parse_pcid(const char *s);
 custom_runtime_param("pcid", parse_pcid, opt_pcid_init);
 
-static int parse_pcid(const char *s)
+static int cf_check parse_pcid(const char *s)
 {
     int rc = 0;
 
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index 4c710ad8913f..ae4d8913faa1 100644
--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -73,7 +73,7 @@ static uint64_t __initdata shim_nrpages;
 static uint64_t __initdata shim_min_nrpages;
 static uint64_t __initdata shim_max_nrpages;
 
-static int __init parse_shim_mem(const char *s)
+static int __init cf_check parse_shim_mem(const char *s)
 {
     do {
         if ( !strncmp(s, "min:", 4) )
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index da47cdea14a1..f35f3cb899ab 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -81,8 +81,6 @@ unsigned long __read_mostly cr4_pv32_mask;
 /* "acpi=ht":     Limit ACPI just to boot-time to enable HT.        */
 /* "acpi=noirq":  Disables ACPI interrupt routing.                  */
 /* "acpi=verbose": Enables more verbose ACPI boot time logging.     */
-static int parse_acpi_param(const char *s);
-custom_param("acpi", parse_acpi_param);
 
 /* **** Linux config option: propagated to domain0. */
 /* noapic: Disable IOAPIC setup. */
@@ -104,7 +102,7 @@ static bool __initdata opt_xen_shstk = true;
 #define opt_xen_shstk false
 #endif
 
-static int __init parse_cet(const char *s)
+static int __init cf_check parse_cet(const char *s)
 {
     const char *ss;
     int val, rc = 0;
@@ -155,7 +153,7 @@ static s8 __initdata opt_smep = -1;
  */
 static struct domain *__initdata dom0;
 
-static int __init parse_smep_param(const char *s)
+static int __init cf_check parse_smep_param(const char *s)
 {
     if ( !*s )
     {
@@ -186,7 +184,7 @@ custom_param("smep", parse_smep_param);
 #define SMAP_HVM_ONLY (-2)
 static s8 __initdata opt_smap = -1;
 
-static int __init parse_smap_param(const char *s)
+static int __init cf_check parse_smap_param(const char *s)
 {
     if ( !*s )
     {
@@ -217,7 +215,7 @@ bool __read_mostly acpi_disabled;
 bool __initdata acpi_force;
 static char __initdata acpi_param[10] = "";
 
-static int __init parse_acpi_param(const char *s)
+static int __init cf_check parse_acpi_param(const char *s)
 {
     /* Interpret the parameter for use within Xen. */
     if ( !parse_bool(s, NULL) )
@@ -253,6 +251,7 @@ static int __init parse_acpi_param(const char *s)
 
     return 0;
 }
+custom_param("acpi", parse_acpi_param);
 
 static const module_t *__initdata initial_images;
 static unsigned int __initdata nr_initial_images;
diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c
index acef03314372..a01354d93319 100644
--- a/xen/arch/x86/shutdown.c
+++ b/xen/arch/x86/shutdown.c
@@ -56,7 +56,7 @@ static int reboot_mode;
  */
 static enum reboot_type reboot_type = BOOT_INVALID;
 
-static int __init set_reboot_type(const char *str)
+static int __init cf_check set_reboot_type(const char *str)
 {
     int rc = 0;
 
diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index a5569c7f2b3f..ac0f776b53cc 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -68,7 +68,7 @@ static bool __initdata cpu_has_bug_mds; /* Any other M{LP,SB,FB}DS combination.
 static int8_t __initdata opt_srb_lock = -1;
 uint64_t __read_mostly default_xen_mcu_opt_ctrl;
 
-static int __init parse_spec_ctrl(const char *s)
+static int __init cf_check parse_spec_ctrl(const char *s)
 {
     const char *ss;
     int val, rc = 0;
@@ -218,7 +218,7 @@ static __init void xpti_init_default(uint64_t caps)
     }
 }
 
-static __init int parse_xpti(const char *s)
+static int __init cf_check parse_xpti(const char *s)
 {
     const char *ss;
     int val, rc = 0;
@@ -264,7 +264,7 @@ custom_param("xpti", parse_xpti);
 int8_t __read_mostly opt_pv_l1tf_hwdom = -1;
 int8_t __read_mostly opt_pv_l1tf_domu = -1;
 
-static __init int parse_pv_l1tf(const char *s)
+static int __init cf_check parse_pv_l1tf(const char *s)
 {
     const char *ss;
     int val, rc = 0;
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index a290aba3e8c4..4b12f494604d 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -2351,7 +2351,7 @@ int hwdom_pit_access(struct ioreq *ioreq)
  * tsc=skewed: Assume TSCs are individually reliable, but skewed across CPUs.
  * tsc=stable:socket: Assume TSCs are reliable across sockets.
  */
-static int __init tsc_parse(const char *s)
+static int __init cf_check tsc_parse(const char *s)
 {
     if ( !strcmp(s, "unstable") )
     {
diff --git a/xen/arch/x86/tsx.c b/xen/arch/x86/tsx.c
index 88adf08c4973..265ab0231188 100644
--- a/xen/arch/x86/tsx.c
+++ b/xen/arch/x86/tsx.c
@@ -19,7 +19,7 @@ int8_t __read_mostly opt_tsx = -1;
 int8_t __read_mostly cpu_has_tsx_ctrl = -1;
 bool __read_mostly rtm_disabled;
 
-static int __init parse_tsx(const char *s)
+static int __init cf_check parse_tsx(const char *s)
 {
     int rc = 0, val = parse_bool(s, NULL);
 
diff --git a/xen/arch/x86/x86_64/mmconfig-shared.c b/xen/arch/x86/x86_64/mmconfig-shared.c
index 7c3ed64b4c6c..2fa7f3f0bc4b 100644
--- a/xen/arch/x86/x86_64/mmconfig-shared.c
+++ b/xen/arch/x86/x86_64/mmconfig-shared.c
@@ -29,7 +29,7 @@
 
 unsigned int pci_probe = PCI_PROBE_CONF1 | PCI_PROBE_MMCONF;
 
-static int __init parse_mmcfg(const char *s)
+static int __init cf_check parse_mmcfg(const char *s)
 {
     const char *ss;
     int rc = 0;
diff --git a/xen/common/argo.c b/xen/common/argo.c
index 1448faf65731..297f6d11f04d 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -78,7 +78,7 @@ DEFINE_COMPAT_HANDLE(compat_argo_iov_t);
 static bool __read_mostly opt_argo;
 static bool __read_mostly opt_argo_mac_permissive;
 
-static int __init parse_argo(const char *s)
+static int __init cf_check parse_argo(const char *s)
 {
     const char *ss;
     int val, rc = 0;
diff --git a/xen/common/core_parking.c b/xen/common/core_parking.c
index 411106c675c9..aa432ed2f57b 100644
--- a/xen/common/core_parking.c
+++ b/xen/common/core_parking.c
@@ -40,7 +40,7 @@ static enum core_parking_controller {
     PERFORMANCE_FIRST
 } core_parking_controller __initdata = POWER_FIRST;
 
-static int __init setup_core_parking_option(const char *str)
+static int __init cf_check setup_core_parking_option(const char *str)
 {
     if ( !strcmp(str, "power") )
         core_parking_controller = POWER_FIRST;
diff --git a/xen/common/debugtrace.c b/xen/common/debugtrace.c
index f3794b945376..29b11239f5a5 100644
--- a/xen/common/debugtrace.c
+++ b/xen/common/debugtrace.c
@@ -38,7 +38,7 @@ static bool debugtrace_buf_empty = true;
 static bool debugtrace_used;
 static DEFINE_SPINLOCK(debugtrace_lock);
 
-static int __init debugtrace_parse_param(const char *s)
+static int __init cf_check debugtrace_parse_param(const char *s)
 {
     unsigned long bytes;
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 03debb2ea161..2698dbda1398 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -354,7 +354,7 @@ static int late_hwdom_init(struct domain *d)
 static unsigned int __read_mostly extra_hwdom_irqs;
 static unsigned int __read_mostly extra_domU_irqs = 32;
 
-static int __init parse_extra_guest_irqs(const char *s)
+static int __init cf_check parse_extra_guest_irqs(const char *s)
 {
     if ( isdigit(*s) )
         extra_domU_irqs = simple_strtoul(s, &s, 0);
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 8fd5e2d0780a..56f44f86c2c4 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1424,7 +1424,7 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
 
 static bool __initdata efi_map_uc;
 
-static int __init parse_efi_param(const char *s)
+static int __init cf_check parse_efi_param(const char *s)
 {
     const char *ss;
     int rc = 0, val;
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index c92dc1d6fd78..d477f334659b 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -117,12 +117,12 @@ static void update_gnttab_par(unsigned int val, struct param_hypfs *par,
     custom_runtime_set_var_sz(par, parval, GRANT_CUSTOM_VAL_SZ);
 }
 
-static void __init gnttab_max_frames_init(struct param_hypfs *par)
+static void __init cf_check gnttab_max_frames_init(struct param_hypfs *par)
 {
     update_gnttab_par(opt_max_grant_frames, par, opt_max_grant_frames_val);
 }
 
-static void __init max_maptrack_frames_init(struct param_hypfs *par)
+static void __init cf_check max_maptrack_frames_init(struct param_hypfs *par)
 {
     update_gnttab_par(opt_max_maptrack_frames, par,
                       opt_max_maptrack_frames_val);
@@ -156,23 +156,23 @@ static int parse_gnttab_limit(const char *arg, unsigned int *valp,
     return 0;
 }
 
-static int parse_gnttab_max_frames(const char *arg);
+static int cf_check parse_gnttab_max_frames(const char *arg);
 custom_runtime_param("gnttab_max_frames", parse_gnttab_max_frames,
                      gnttab_max_frames_init);
 
-static int parse_gnttab_max_frames(const char *arg)
+static int cf_check parse_gnttab_max_frames(const char *arg)
 {
     return parse_gnttab_limit(arg, &opt_max_grant_frames,
                               param_2_parfs(parse_gnttab_max_frames),
                               opt_max_grant_frames_val);
 }
 
-static int parse_gnttab_max_maptrack_frames(const char *arg);
+static int cf_check parse_gnttab_max_maptrack_frames(const char *arg);
 custom_runtime_param("gnttab_max_maptrack_frames",
                      parse_gnttab_max_maptrack_frames,
                      max_maptrack_frames_init);
 
-static int parse_gnttab_max_maptrack_frames(const char *arg)
+static int cf_check parse_gnttab_max_maptrack_frames(const char *arg)
 {
     return parse_gnttab_limit(arg, &opt_max_maptrack_frames,
                               param_2_parfs(parse_gnttab_max_maptrack_frames),
@@ -186,7 +186,7 @@ static int parse_gnttab_max_maptrack_frames(const char *arg)
 unsigned int __read_mostly opt_gnttab_max_version = GNTTAB_MAX_VERSION;
 static bool __read_mostly opt_transitive_grants = true;
 
-static int __init parse_gnttab(const char *s)
+static int __init cf_check parse_gnttab(const char *s)
 {
     const char *ss, *e;
     int val, rc = 0;
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index 8471590aeea2..6286c0bbf08b 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -104,7 +104,7 @@ static void *crash_heap_current = NULL, *crash_heap_end = NULL;
  * < and below are synonyomous, the latter being useful for grub2 systems
  * which would otherwise require escaping of the < option
  */
-static int __init parse_crashkernel(const char *str)
+static int __init cf_check parse_crashkernel(const char *str)
 {
     const char *cur;
     int rc = 0;
@@ -201,7 +201,7 @@ custom_param("crashkernel", parse_crashkernel);
  * - all will allocate additional structures such as domain and vcpu structs
  *       low so the crash kernel can perform an extended analysis of state.
  */
-static int __init parse_low_crashinfo(const char *str)
+static int __init cf_check parse_low_crashinfo(const char *str)
 {
 
     if ( !strlen(str) )
@@ -230,7 +230,7 @@ custom_param("low_crashinfo", parse_low_crashinfo);
  *
  * <addr> will be rounded down to the nearest power of two.  Defaults to 64G
  */
-static int __init parse_crashinfo_maxaddr(const char *str)
+static int __init cf_check parse_crashinfo_maxaddr(const char *str)
 {
     u64 addr;
     const char *q;
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 5a0462f97013..fbd2ebb3ba75 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -62,7 +62,7 @@ static unsigned int __read_mostly hwdom_max_order = CONFIG_HWDOM_MAX_ORDER;
 static unsigned int __read_mostly ptdom_max_order = CONFIG_PTDOM_MAX_ORDER;
 #endif
 
-static int __init parse_max_order(const char *s)
+static int __init cf_check parse_max_order(const char *s)
 {
     if ( *s != ',' )
         domu_max_order = simple_strtoul(s, &s, 0);
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index d0baaa2ecd20..615ae7fe12fc 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -179,7 +179,7 @@ enum bootscrub_mode {
  * https://bugs.llvm.org/show_bug.cgi?id=39707
  */
 static enum bootscrub_mode __read_mostly opt_bootscrub = BOOTSCRUB_IDLE;
-static int __init parse_bootscrub_param(const char *s)
+static int __init cf_check parse_bootscrub_param(const char *s)
 {
     /* Interpret 'bootscrub' alone in its positive boolean form */
     if ( *s == '\0' )
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index 8c6e6eb9ccd5..f0dd626054a6 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -93,7 +93,7 @@ static int sched_gran_get(const char *str, enum sched_gran *mode)
     return -EINVAL;
 }
 
-static int __init sched_select_granularity(const char *str)
+static int __init cf_check sched_select_granularity(const char *str)
 {
     return sched_gran_get(str, &opt_sched_granularity);
 }
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 6396b38e044c..a5f073cda51e 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -456,7 +456,7 @@ static const char *const opt_runqueue_str[] = {
 };
 static int __read_mostly opt_runqueue = OPT_RUNQUEUE_SOCKET;
 
-static int __init parse_credit2_runqueue(const char *s)
+static int __init cf_check parse_credit2_runqueue(const char *s)
 {
     unsigned int i;
 
diff --git a/xen/drivers/acpi/tables.c b/xen/drivers/acpi/tables.c
index f39cd5eaac89..96ff96b84c66 100644
--- a/xen/drivers/acpi/tables.c
+++ b/xen/drivers/acpi/tables.c
@@ -472,7 +472,7 @@ int __init acpi_table_init(void)
 	return 0;
 }
 
-static int __init acpi_parse_apic_instance(const char *str)
+static int __init cf_check acpi_parse_apic_instance(const char *str)
 {
 	const char *q;
 
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index a043e9521afd..4694be83db45 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -88,7 +88,7 @@ static const char con_timestamp_mode_2_string[][7] = {
     [TSM_RAW] = "raw",
 };
 
-static void con_timestamp_mode_upd(struct param_hypfs *par)
+static void cf_check con_timestamp_mode_upd(struct param_hypfs *par)
 {
     const char *val = con_timestamp_mode_2_string[opt_con_timestamp_mode];
 
@@ -98,7 +98,7 @@ static void con_timestamp_mode_upd(struct param_hypfs *par)
 #define con_timestamp_mode_upd(par)
 #endif
 
-static int parse_console_timestamps(const char *s);
+static int cf_check parse_console_timestamps(const char *s);
 custom_runtime_param("console_timestamps", parse_console_timestamps,
                      con_timestamp_mode_upd);
 
@@ -160,8 +160,8 @@ static int __read_mostly xenlog_guest_upper_thresh =
 static int __read_mostly xenlog_guest_lower_thresh =
     XENLOG_GUEST_LOWER_THRESHOLD;
 
-static int parse_loglvl(const char *s);
-static int parse_guest_loglvl(const char *s);
+static int cf_check parse_loglvl(const char *s);
+static int cf_check parse_guest_loglvl(const char *s);
 
 #ifdef CONFIG_HYPFS
 #define LOGLVL_VAL_SZ 16
@@ -176,13 +176,13 @@ static void xenlog_update_val(int lower, int upper, char *val)
     snprintf(val, LOGLVL_VAL_SZ, "%s/%s", lvl2opt[lower], lvl2opt[upper]);
 }
 
-static void __init xenlog_init(struct param_hypfs *par)
+static void __init cf_check xenlog_init(struct param_hypfs *par)
 {
     xenlog_update_val(xenlog_lower_thresh, xenlog_upper_thresh, xenlog_val);
     custom_runtime_set_var(par, xenlog_val);
 }
 
-static void __init xenlog_guest_init(struct param_hypfs *par)
+static void __init cf_check xenlog_guest_init(struct param_hypfs *par)
 {
     xenlog_update_val(xenlog_guest_lower_thresh, xenlog_guest_upper_thresh,
                       xenlog_guest_val);
@@ -240,7 +240,7 @@ static int _parse_loglvl(const char *s, int *lower, int *upper, char *val)
     return *s ? -EINVAL : 0;
 }
 
-static int parse_loglvl(const char *s)
+static int cf_check parse_loglvl(const char *s)
 {
     int ret;
 
@@ -251,7 +251,7 @@ static int parse_loglvl(const char *s)
     return ret;
 }
 
-static int parse_guest_loglvl(const char *s)
+static int cf_check parse_guest_loglvl(const char *s)
 {
     int ret;
 
@@ -793,7 +793,7 @@ static int printk_prefix_check(char *p, char **pp)
             ((loglvl < upper_thresh) && printk_ratelimit()));
 } 
 
-static int parse_console_timestamps(const char *s)
+static int cf_check parse_console_timestamps(const char *s)
 {
     switch ( parse_bool(s, NULL) )
     {
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 419aae83eea6..36b079296235 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -65,7 +65,7 @@ enum cpufreq_controller cpufreq_controller = FREQCTL_xen;
 
 static int __init cpufreq_cmdline_parse(const char *s);
 
-static int __init setup_cpufreq_option(const char *str)
+static int __init cf_check setup_cpufreq_option(const char *str)
 {
     const char *arg = strpbrk(str, ",:");
     int choice;
diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passthrough/amd/iommu_acpi.c
index b07fa4c40124..5ea227732821 100644
--- a/xen/drivers/passthrough/amd/iommu_acpi.c
+++ b/xen/drivers/passthrough/amd/iommu_acpi.c
@@ -704,7 +704,7 @@ static u16 __init parse_ivhd_device_extended_range(
     return dev_length;
 }
 
-static int __init parse_ivrs_ioapic(const char *str)
+static int __init cf_check parse_ivrs_ioapic(const char *str)
 {
     const char *s = str;
     unsigned long id;
@@ -742,7 +742,7 @@ static int __init parse_ivrs_ioapic(const char *str)
 }
 custom_param("ivrs_ioapic[", parse_ivrs_ioapic);
 
-static int __init parse_ivrs_hpet(const char *str)
+static int __init cf_check parse_ivrs_hpet(const char *str)
 {
     const char *s = str;
     unsigned long id;
@@ -1369,7 +1369,7 @@ int __init amd_iommu_get_supported_ivhd_type(void)
  * Format:
  * ivmd=<start>[-<end>][=<bdf1>[-<bdf1>'][,<bdf2>[-<bdf2>'][,...]]][;<start>...]
  */
-static int __init parse_ivmd_param(const char *s)
+static int __init cf_check parse_ivmd_param(const char *s)
 {
     do {
         unsigned long start, end;
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 6334370109fc..4eea296c8c7c 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -64,7 +64,7 @@ bool_t __read_mostly amd_iommu_perdev_intremap = 1;
 
 DEFINE_PER_CPU(bool_t, iommu_dont_flush_iotlb);
 
-static int __init parse_iommu_param(const char *s)
+static int __init cf_check parse_iommu_param(const char *s)
 {
     const char *ss;
     int val, rc = 0;
@@ -135,7 +135,7 @@ static int __init parse_iommu_param(const char *s)
 }
 custom_param("iommu", parse_iommu_param);
 
-static int __init parse_dom0_iommu_param(const char *s)
+static int __init cf_check parse_dom0_iommu_param(const char *s)
 {
     const char *ss;
     int rc = 0;
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 0d8ab2e716b8..e3105f90b7fe 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -146,7 +146,7 @@ static struct phantom_dev {
 } phantom_devs[8];
 static unsigned int nr_phantom_devs;
 
-static int __init parse_phantom_dev(const char *str)
+static int __init cf_check parse_phantom_dev(const char *str)
 {
     const char *s;
     unsigned int seg, bus, slot;
@@ -182,7 +182,7 @@ custom_param("pci-phantom", parse_phantom_dev);
 static u16 __read_mostly command_mask;
 static u16 __read_mostly bridge_ctl_mask;
 
-static int __init parse_pci_param(const char *s)
+static int __init cf_check parse_pci_param(const char *s)
 {
     const char *ss;
     int rc = 0;
diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
index 33a12b2ae976..b152f3da916b 100644
--- a/xen/drivers/passthrough/vtd/dmar.c
+++ b/xen/drivers/passthrough/vtd/dmar.c
@@ -1084,7 +1084,7 @@ int intel_iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt)
  * If a segment is specified for other than the first device, and it does not
  * match the one specified for the first one, an error will be reported.
  */
-static int __init parse_rmrr_param(const char *str)
+static int __init cf_check parse_rmrr_param(const char *str)
 {
     const char *s = str, *cur, *stmp;
     unsigned int seg, bus, dev, func, dev_count;
diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
index 52b47dd89325..0590ddeea7c4 100644
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -308,7 +308,7 @@ void vtd_ops_postamble_quirk(struct vtd_iommu *iommu)
     }
 }
 
-static int __init parse_snb_timeout(const char *s)
+static int __init cf_check parse_snb_timeout(const char *s)
 {
     int t;
     const char *q = NULL;
diff --git a/xen/drivers/video/vesa.c b/xen/drivers/video/vesa.c
index 2c1bbd927806..cb0e443be4dd 100644
--- a/xen/drivers/video/vesa.c
+++ b/xen/drivers/video/vesa.c
@@ -30,7 +30,7 @@ static unsigned int vram_remap;
 integer_param("vesa-map", vram_remap);
 
 static int font_height;
-static int __init parse_font_height(const char *s)
+static int __init cf_check parse_font_height(const char *s)
 {
     if ( simple_strtoul(s, &s, 10) == 8 && (*s++ == 'x') )
         font_height = simple_strtoul(s, &s, 10);
diff --git a/xen/xsm/flask/flask_op.c b/xen/xsm/flask/flask_op.c
index bb3bebc30e01..2d7ca3abaecd 100644
--- a/xen/xsm/flask/flask_op.c
+++ b/xen/xsm/flask/flask_op.c
@@ -28,8 +28,6 @@
 #define _copy_from_guest copy_from_guest
 
 enum flask_bootparam_t __read_mostly flask_bootparam = FLASK_BOOTPARAM_ENFORCING;
-static int parse_flask_param(const char *s);
-custom_param("flask", parse_flask_param);
 
 bool __read_mostly flask_enforcing = true;
 
@@ -60,7 +58,7 @@ static int flask_security_make_bools(void);
 
 extern int ss_initialized;
 
-static int __init parse_flask_param(const char *s)
+static int __init cf_check parse_flask_param(const char *s)
 {
     if ( !strcmp(s, "enforcing") )
         flask_bootparam = FLASK_BOOTPARAM_ENFORCING;
@@ -75,6 +73,7 @@ static int __init parse_flask_param(const char *s)
 
     return (flask_bootparam == FLASK_BOOTPARAM_INVALID) ? -EINVAL : 0;
 }
+custom_param("flask", parse_flask_param);
 
 static int domain_has_security(struct domain *d, u32 perms)
 {
diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c
index 74d0ef89c12d..302c08f7265e 100644
--- a/xen/xsm/xsm_core.c
+++ b/xen/xsm/xsm_core.c
@@ -55,7 +55,7 @@ static enum xsm_bootparam __initdata xsm_bootparam =
     XSM_BOOTPARAM_DUMMY;
 #endif
 
-static int __init parse_xsm_param(const char *s)
+static int __init cf_check parse_xsm_param(const char *s)
 {
     int rc = 0;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232672.403500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRX-0002uB-Sj; Fri, 26 Nov 2021 12:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232672.403500; Fri, 26 Nov 2021 12:35:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRX-0002rN-I3; Fri, 26 Nov 2021 12:35:07 +0000
Received: by outflank-mailman (input) for mailman id 232672;
 Fri, 26 Nov 2021 12:35:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRV-0001F5-38
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:35:05 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 461f8c71-4eb5-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:35:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 461f8c71-4eb5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930101;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version;
  bh=zzYsAAZqVX0Gd/xLEcar4h/Ts5nqFa6lcinkTdOV1C4=;
  b=WDbbS1q2h98nr0vkGjDjOSZ/GcQOGx+OzYs1pyFBRVXltgJ2yPlZq9dr
   3XfLc+XsrzbkUlzL4S2eUYuD9MO/3HBEtwancEYm3YUti6XXX0FMd8nQo
   keUD1DdURvExTwQijxIV44uEvJG/1H/fydbhE4bCjiacNnburicHf9xY0
   w=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: uUTgDUvTFsbas4FeXJn8l7EQOQJdiwBaOnuS3drF7RqJPozkQHXMLLRiPvkb9JHlaxxUPzXfiP
 BarZgDZ3HCicMTaJ3jivFNp+LLcsq3GYsrxKrZDRRQDK5yad2IiczJMfzCWZaAAJSc+LfDrZHl
 xN1XgBILJtyhkpVUuuSlIg3SmXYljylqxBIXCgKq/vsgenkLDdBuQZMxBg2Gi2lk8mzPjLgQj2
 anOI3UgJ4fnLeLrJ4w8croEmEb0L9O7t/97nkWgxy59dBM8Y48WcLhtJvlYhD8rjcOi8iwRQ5s
 OUEK+NJtfZvZJts859Is3CvD
X-SBRS: 5.1
X-MesageID: 58192118
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:SeVySK5CFGjN2zpEsA9SPwxRtAfAchMFZxGqfqrLsTDasY5as4F+v
 mccUWzSOq6IYGXyKtAlaNvgpB8Fv5bdztBlTARrqCFgHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw2LBVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z+
 fdM8rDpZS4QHoLyvL49EAEAIyxfFPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTa+PP
 ZNAOVKDajzEOhRICBAcK64Rle6NnkbRf2QEh2Ka8P9fD2/7k1UqjemF3MDuUt6FX8JOhW6Du
 3nLuW/+B3kyJNGZjDaI7H+oruvOhj/gHpIfEqWi8fxni0HVwXYcYCD6TnPi/6P/0BTnHYsCd
 QpEoULCsJTe6mSabNi6c0SUiUekkSA4AfoTC7UK5SCkn/+8DxmiOkAISTtIadoDvcAwRCA32
 lLho+4FFQCDo5XOFyvDq+78QSeafHFMcDRcPXNsoR4tuoG7+OkOYgTzosGP+UJfpvn8AnnOz
 j+Dt0DSbJ1D3JdQh81XEb0q6g9AR6QlrCZpuW07vUr/t2uVgbJJgaTzsjA3Ct4ace6koqGp5
 iRspiRnxLlm4WuxvCKMWv4RO7qi+uyINjbR6XY2QcJ+p2rwpC//I9wLiN2bGKuPGp1fEdMOS
 BWO0T69GbcJZCf6BUOJS97Z5zsWIVjISo2+C6G8gitmaZltbg6XlByClmbLt10BZHMEyPllU
 b/CKJ7EJS9DVcxPkWrnL89AgORD7n1vmgvuqWXTkk3PPUy2PyXOF9/o8TKmM4gE0U9ziFmPr
 osEaZLVk043vS+XSnC/zLP/5GsidRATba0aYeQMHgJaCgY5SmwnFdHLxrYtJ95sk6hPz7+a9
 XChQE5IjlH4gCSfewmNb3libpLpXIp+8i1nbXB9Yw7w1ihxe5ur4Ycea4AzIest+tt8wKMmV
 PICYciBXKhCE2yV5zQHYJDhh4V+bxD31xmWNi+obWFnLZ5tTgDE4PH+eQ7r+HVcBya7r5Jm8
 bahyhnaUdwIQAE7VJTab/emzlWQu3kBmb0tAxuUc4cLIEi1qdpkMS38iPMzMvogExSby2vIz
 RuSDDcZufLJ/90//u7WiP3WtIyuCeZ/QBZXRjGJ8basOCDG1WO/2oscAv2QdDXQWW6oqqWvY
 eJZk6P1PPEdxQsYtoN9F/BgzL4k5suprLhfl1w2EHLOZlWtK7VhPnjZgpUf6vwTnudU6VmsR
 0aC2thGIrHYasrqHWkYKBchcuneh+ofnSPf7KhtLUj3jMOtEGFrjamG08GwtRFg
IronPort-HdrOrdr: A9a23:CtGZ2anPmULhRQ6GZcv8I3y1lgjpDfIu3DAbv31ZSRFFG/Fxl6
 iV8sjztCWE8Qr5N0tBpTntAsW9qDbnhPtICOoqTNGftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAs9D4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="58192118"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Juergen Gross <jgross@suse.com>
Subject: [PATCH 03/65] xen/x86: don't use hypercall table for calling compat hypercalls
Date: Fri, 26 Nov 2021 12:33:44 +0000
Message-ID: <20211126123446.32324-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain

From: Juergen Gross <jgross@suse.com>

Today the *_op_compat hypercalls call the modern handler functions by
using the entries from the hypercall table. This is resulting in a
not needed indirect function call which can be avoided by using the
correct handler function directly. This is basically a revert of
commit 1252e282311734 ("86/pv: Export pv_hypercall_table[] rather
than working around it in several ways"), which reasoning no longer
applies, as shim no longer modifies the hypercall table.

The hypercall table can now be made static as there is no external
reference to it any longer.

Commit 834cb8761051f7 ("x86/PV32: fix physdev_op_compat handling")
can be reverted, too, as using the direct call of the correct handler
is already handled fine without that patch.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/compat.c           | 14 ++++----------
 xen/arch/x86/pv/hypercall.c     |  9 ++++++++-
 xen/arch/x86/x86_64/compat.c    |  1 -
 xen/include/asm-x86/hypercall.h |  8 --------
 4 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/compat.c b/xen/arch/x86/compat.c
index 58b202f701d5..939b449dec29 100644
--- a/xen/arch/x86/compat.c
+++ b/xen/arch/x86/compat.c
@@ -17,14 +17,12 @@ typedef long ret_t;
 /* Legacy hypercall (as of 0x00030202). */
 ret_t do_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
 {
-    typeof(do_physdev_op) *fn =
-        (void *)pv_hypercall_table[__HYPERVISOR_physdev_op].native;
     struct physdev_op op;
 
     if ( unlikely(copy_from_guest(&op, uop, 1) != 0) )
         return -EFAULT;
 
-    return fn(op.cmd, guest_handle_from_ptr(&uop.p->u, void));
+    return do_physdev_op(op.cmd, guest_handle_from_ptr(&uop.p->u, void));
 }
 
 #ifndef COMPAT
@@ -32,14 +30,11 @@ ret_t do_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
 /* Legacy hypercall (as of 0x00030101). */
 long do_sched_op_compat(int cmd, unsigned long arg)
 {
-    typeof(do_sched_op) *fn =
-        (void *)pv_hypercall_table[__HYPERVISOR_sched_op].native;
-
     switch ( cmd )
     {
     case SCHEDOP_yield:
     case SCHEDOP_block:
-        return fn(cmd, guest_handle_from_ptr(NULL, void));
+        return do_sched_op(cmd, guest_handle_from_ptr(NULL, void));
 
     case SCHEDOP_shutdown:
         TRACE_3D(TRC_SCHED_SHUTDOWN,
@@ -57,8 +52,6 @@ long do_sched_op_compat(int cmd, unsigned long arg)
 /* Legacy hypercall (as of 0x00030202). */
 long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
 {
-    typeof(do_event_channel_op) *fn =
-        (void *)pv_hypercall_table[__HYPERVISOR_event_channel_op].native;
     struct evtchn_op op;
 
     if ( unlikely(copy_from_guest(&op, uop, 1) != 0) )
@@ -76,7 +69,8 @@ long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
     case EVTCHNOP_bind_ipi:
     case EVTCHNOP_bind_vcpu:
     case EVTCHNOP_unmask:
-        return fn(op.cmd, guest_handle_from_ptr(&uop.p->u, void));
+        return do_event_channel_op(op.cmd,
+                                   guest_handle_from_ptr(&uop.p->u, void));
 
     default:
         return -ENOSYS;
diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index 4744d9f78f01..e2709ff6e9d4 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -27,6 +27,13 @@
 #include <asm/multicall.h>
 #include <irq_vectors.h>
 
+typedef struct {
+    hypercall_fn_t *native;
+#ifdef CONFIG_PV32
+    hypercall_fn_t *compat;
+#endif
+} pv_hypercall_table_t;
+
 #ifdef CONFIG_PV32
 #define HYPERCALL(x)                                                \
     [ __HYPERVISOR_ ## x ] = { (hypercall_fn_t *) do_ ## x,         \
@@ -42,7 +49,7 @@
 
 #define do_arch_1             paging_domctl_continuation
 
-const pv_hypercall_table_t pv_hypercall_table[] = {
+static const pv_hypercall_table_t pv_hypercall_table[] = {
     COMPAT_CALL(set_trap_table),
     HYPERCALL(mmu_update),
     COMPAT_CALL(set_gdt),
diff --git a/xen/arch/x86/x86_64/compat.c b/xen/arch/x86/x86_64/compat.c
index fcbc1cc0d780..0e4c71f2aa17 100644
--- a/xen/arch/x86/x86_64/compat.c
+++ b/xen/arch/x86/x86_64/compat.c
@@ -12,7 +12,6 @@ EMIT_FILE;
 #define physdev_op_t                  physdev_op_compat_t
 #define do_physdev_op                 compat_physdev_op
 #define do_physdev_op_compat(x)       compat_physdev_op_compat(_##x)
-#define native                        compat
 
 #define COMPAT
 #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index 45fa987a638f..9caca272eff7 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -16,13 +16,6 @@ typedef unsigned long hypercall_fn_t(
     unsigned long, unsigned long, unsigned long);
 
 typedef struct {
-    hypercall_fn_t *native;
-#ifdef CONFIG_PV32
-    hypercall_fn_t *compat;
-#endif
-} pv_hypercall_table_t;
-
-typedef struct {
     uint8_t native;
 #ifdef CONFIG_COMPAT
     uint8_t compat;
@@ -32,7 +25,6 @@ typedef struct {
 extern const hypercall_args_t hypercall_args_table[NR_hypercalls];
 
 #ifdef CONFIG_PV
-extern const pv_hypercall_table_t pv_hypercall_table[];
 void pv_hypercall(struct cpu_user_regs *regs);
 #endif
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:35:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:35:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232673.403508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRY-00034n-PN; Fri, 26 Nov 2021 12:35:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232673.403508; Fri, 26 Nov 2021 12:35:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaRY-00032A-88; Fri, 26 Nov 2021 12:35:08 +0000
Received: by outflank-mailman (input) for mailman id 232673;
 Fri, 26 Nov 2021 12:35:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaRW-0001F5-3V
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:35:06 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46381aa7-4eb5-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:35:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46381aa7-4eb5-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637930103;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=7+RyUS5PFnw5b8XLf8Ch6d+LKPyMu+o0FKqw1pwQ7wE=;
  b=LGr+iwpvx8HiHqdvaRH9MgrrQX3r8ztFCWQS57q0KAAi19XF6p1uR1cd
   H82zs0IHnVZPyOlyDyAmWcHOSRUR2Akh+//TGUFDC/u5YjcaprlQzDPeI
   +jJWhvfxWPEmJ/6sRw1gezVNNiwP2uopgY76385ap5DF/2OO6E0ru6gvb
   c=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 4RKIx4urBw79HNhNkkeoK6mOwMyF7CxQIkT+OVEx1k4BomNfY1S3y49nxRgeNaI+jyfl9OJwT4
 RifcSzaqRTtajSkgNuzYvVxX9oKyyk4H7We1E03+ZqUl/JKZ7z+/RQxD57aoR0HqParNvayP+p
 WuxFeIXEZzCql4xMN/ERf+pmtso9RQzq/46+Gca6jedlnJTLTTjSPR/X7boIxq3sqjMZVhfVz8
 vI9SnC6j12IBHiM8ZFvK1TEk8DEnn20PraZKjAyxzlRvzGOvOlwua3iU5hSVLBUDNSnQqs40TF
 0/THgraNw5ILoRDuSxbvKFQZ
X-SBRS: 5.1
X-MesageID: 58192119
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:f5O0jari1LLia9snTBDOPfofJJpeBmKcYhIvgKrLsJaIsI4StFCzt
 garIBmEbKqPN2Omet93atzip04PsMfWm4dqTgtrpSg9FX5E85uZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2ILnW1rlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnaGdEzULO4rUpNsADwl8TXl9H50X/aCSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O
 ppAOGA2NUWojxtnF34NEZQfjPWRhFrZajBWlGzNpIdp2j2GpOB2+Oe0a4eEEjCQfu1Xg0KZq
 2Tu72n/RBYAO7S36xCI73atje/nhj7gVcQZE7jQ3vxlmlqI3UQIFQYbE1C8pJGRmkO4Ht5SN
 UEQ0i4vtrQpslymSMHnWB+1q2LCuQQTM/JLCPEz4gyJzqvS4i6aC3ICQzoHb8Yp3OcpQRQ62
 1nPmMnmbQGDq5XMFyjbrO3N62rvZ25FdgfueBPoUyM4zoPRgoQUli7wU4pzNPDtjf/FSDTvl
 mXiQDcFu50fissC1qOe9F/Bgi6xqpWhcjPZ9jk7TUr+sFonOdfNi5iArAGCsK0edNrxokyp5
 SBcw6CjAPYy4YZhfcBnaMEEB/mX6vmMK1UwanY/TsB6p1xBF5NOFL28AQ2Sxm81ba7omhezO
 Sc/XD+9ArcIZxNGioctPuqM5zwCl/SIKDgcfqm8giBySpZwbhSb2ypleFSd2Wvg+GB1z/pga
 cnGLpfwUypBYUiC8NZQb7xGuVPM7npjrV4/uLihl0j3uVZgTCL9pUg53KumMblisfLsTPT9+
 NdDLcqaoyizo8WlChQ7BbU7dAhQRVBiXMieg5UOKoarf1o3cEl8WqS56e5wJORYc1F9y76gE
 oeVARQDljISRBTvdG23V5yUQO+1AMsk8ytkZXdE0JTB8yFLXLtDJZw3L/MfFYTLPsQ6pRKtZ
 /VaKciGHNpVTTHLp2YUYZXn9dQwfxW3nwOeeSGiZWFnLZJnQgXI/P7ifxfuq3ZSXnbm65Nmr
 u3yzB7fTLoCWx9mUJTcZsWwwg7jpnMagu9zARfFe4EBZEX2/YF2ACXtlftrcdoUIBDOy2LCh
 QabCBsVv8fXpIox/IWbjKyItd7xQeB/AlBbDy/Q6rPvbXvW+W+qwIlhVueUfG+CCDOoqfv6P
 egMlqPyKvwKmlpOorFQKbczwPJs/cbrqp9b0h9gQCfBYWO0B+4yOXKBx8RO6PFAn+cLpQusV
 0uT0dBGIrHVatj9GVscKQd5POSO0fYYxmvb4fgveRio4SZ2+PyMUFlIPgnKgytYdeMnPIQgy
 OYnmcgX9w3g1UZ6bofY1nhZpzaWM3gNc6Q7rZVLUobkhz0ixkxGfZGBWDT954uCaokUP0QnS
 tNOaHEuW1iIKpL+TkcO
IronPort-HdrOrdr: A9a23:6s2/MqhbbAJN7UCR5LBnNuo553BQXuIji2hC6mlwRA09TySZ//
 rBoB19726MtN9xYgBHpTnuAsm9qB/nmaKdpLNhWItKPzOW31dATrsSjrcKqgeIc0aVm9K1l5
 0QF5SWYOeAdWSS5vya3ODXKbkdKaG8gcKVuds=
X-IronPort-AV: E=Sophos;i="5.87,265,1631592000"; 
   d="scan'208";a="58192119"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Juergen Gross
	<jgross@suse.com>
Subject: [PATCH 04/65] x86/hypercall: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:33:45 +0000
Message-ID: <20211126123446.32324-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Juergen Gross <jgross@suse.com>

Likely going to be replaced with Juergen's series doing full devirtualisation
of the hypercall handling, but absent a version which passes CI, this is the
minimum change to disentangle the two series.
---
 xen/arch/x86/compat.c               |  7 ++--
 xen/arch/x86/cpu/mcheck/mce.c       |  2 +-
 xen/arch/x86/cpu/vpmu.c             |  3 +-
 xen/arch/x86/hvm/dm.c               |  5 ++-
 xen/arch/x86/hvm/hvm.c              |  2 +-
 xen/arch/x86/hvm/hypercall.c        |  5 +--
 xen/arch/x86/mm.c                   | 23 ++++++-------
 xen/arch/x86/mm/paging.c            |  3 +-
 xen/arch/x86/physdev.c              |  2 +-
 xen/arch/x86/platform_hypercall.c   |  3 +-
 xen/arch/x86/pv/callback.c          | 25 +++++++-------
 xen/arch/x86/pv/descriptor-tables.c | 14 ++++----
 xen/arch/x86/pv/iret.c              |  4 +--
 xen/arch/x86/pv/misc-hypercalls.c   | 10 +++---
 xen/arch/x86/pv/shim.c              |  8 ++---
 xen/arch/x86/x86_64/compat/mm.c     |  7 ++--
 xen/common/argo.c                   |  4 +--
 xen/common/compat/domain.c          |  3 +-
 xen/common/compat/grant_table.c     |  5 ++-
 xen/common/compat/kernel.c          |  2 +-
 xen/common/compat/memory.c          |  3 +-
 xen/common/dm.c                     |  6 ++--
 xen/common/domain.c                 |  5 +--
 xen/common/domctl.c                 |  2 +-
 xen/common/event_channel.c          |  2 +-
 xen/common/grant_table.c            |  2 +-
 xen/common/hypfs.c                  |  6 ++--
 xen/common/kernel.c                 |  2 +-
 xen/common/kexec.c                  |  4 +--
 xen/common/memory.c                 |  2 +-
 xen/common/multicall.c              |  2 +-
 xen/common/sched/compat.c           |  2 +-
 xen/common/sched/core.c             |  4 +--
 xen/common/sysctl.c                 |  2 +-
 xen/common/xenoprof.c               |  2 +-
 xen/drivers/char/console.c          |  4 +--
 xen/include/asm-x86/hypercall.h     | 69 +++++++++++++++++++------------------
 xen/include/asm-x86/paging.h        |  2 +-
 xen/include/xen/hypercall.h         | 69 +++++++++++++++++++------------------
 xen/xsm/xsm_core.c                  |  4 +--
 40 files changed, 169 insertions(+), 162 deletions(-)

diff --git a/xen/arch/x86/compat.c b/xen/arch/x86/compat.c
index 939b449dec29..28281a262a3c 100644
--- a/xen/arch/x86/compat.c
+++ b/xen/arch/x86/compat.c
@@ -15,7 +15,7 @@ typedef long ret_t;
 #endif
 
 /* Legacy hypercall (as of 0x00030202). */
-ret_t do_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
+ret_t cf_check do_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
 {
     struct physdev_op op;
 
@@ -28,7 +28,7 @@ ret_t do_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
 #ifndef COMPAT
 
 /* Legacy hypercall (as of 0x00030101). */
-long do_sched_op_compat(int cmd, unsigned long arg)
+long cf_check do_sched_op_compat(int cmd, unsigned long arg)
 {
     switch ( cmd )
     {
@@ -50,7 +50,8 @@ long do_sched_op_compat(int cmd, unsigned long arg)
 }
 
 /* Legacy hypercall (as of 0x00030202). */
-long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
+long cf_check do_event_channel_op_compat(
+    XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
 {
     struct evtchn_op op;
 
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 7f433343bca3..eae08caa07cd 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1351,7 +1351,7 @@ CHECK_mcinfo_recovery;
 # endif /* CONFIG_COMPAT */
 
 /* Machine Check Architecture Hypercall */
-long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
+long cf_check do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
 {
     long ret = 0;
     struct xen_mc curop, *op = &curop;
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index 16e91a3694fe..4ada29670469 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -695,7 +695,8 @@ void vpmu_dump(struct vcpu *v)
         vpmu->arch_vpmu_ops->arch_vpmu_dump(v);
 }
 
-long do_xenpmu_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg)
+long cf_check do_xenpmu_op(
+    unsigned int op, XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg)
 {
     int ret;
     struct vcpu *curr;
diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
index b60b9f3364a8..d80975efcf45 100644
--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -654,9 +654,8 @@ CHECK_dm_op_relocate_memory;
 CHECK_dm_op_pin_memory_cacheattr;
 CHECK_dm_op_nr_vcpus;
 
-int compat_dm_op(domid_t domid,
-                 unsigned int nr_bufs,
-                 XEN_GUEST_HANDLE_PARAM(void) bufs)
+int cf_check compat_dm_op(
+    domid_t domid, unsigned int nr_bufs, XEN_GUEST_HANDLE_PARAM(void) bufs)
 {
     struct dmop_args args;
     unsigned int i;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 31e9474db093..00edf899fa79 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4997,7 +4997,7 @@ static int hvmop_get_mem_type(
     return rc;
 }
 
-long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
+long cf_check do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     long rc = 0;
 
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 63bed52e402d..38f58ab60d6c 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -31,7 +31,8 @@
 #include <public/hvm/hvm_op.h>
 #include <public/hvm/params.h>
 
-static long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+static long cf_check hvm_memory_op(
+    unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     long rc;
 
@@ -51,7 +52,7 @@ static long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 }
 
 #ifdef CONFIG_GRANT_TABLE
-static long hvm_grant_table_op(
+static long cf_check hvm_grant_table_op(
     unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
 {
     switch ( cmd )
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4d799032dc82..25f44a161c65 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -3353,7 +3353,7 @@ static int vcpumask_to_pcpumask(
     }
 }
 
-long do_mmuext_op(
+long cf_check do_mmuext_op(
     XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
     unsigned int count,
     XEN_GUEST_HANDLE_PARAM(uint) pdone,
@@ -3892,7 +3892,7 @@ long do_mmuext_op(
     return rc;
 }
 
-long do_mmu_update(
+long cf_check do_mmu_update(
     XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
     unsigned int count,
     XEN_GUEST_HANDLE_PARAM(uint) pdone,
@@ -4477,8 +4477,8 @@ static int __do_update_va_mapping(
     return rc;
 }
 
-long do_update_va_mapping(unsigned long va, u64 val64,
-                          unsigned long flags)
+long cf_check do_update_va_mapping(
+    unsigned long va, u64 val64, unsigned long flags)
 {
     int rc = __do_update_va_mapping(va, val64, flags, current->domain);
 
@@ -4489,9 +4489,8 @@ long do_update_va_mapping(unsigned long va, u64 val64,
     return rc;
 }
 
-long do_update_va_mapping_otherdomain(unsigned long va, u64 val64,
-                                      unsigned long flags,
-                                      domid_t domid)
+long cf_check do_update_va_mapping_otherdomain(
+    unsigned long va, u64 val64, unsigned long flags, domid_t domid)
 {
     struct domain *pg_owner;
     int rc;
@@ -4513,8 +4512,8 @@ long do_update_va_mapping_otherdomain(unsigned long va, u64 val64,
 #endif /* CONFIG_PV */
 
 #ifdef CONFIG_PV32
-int compat_update_va_mapping(unsigned int va, uint32_t lo, uint32_t hi,
-                             unsigned int flags)
+int cf_check compat_update_va_mapping(
+    unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags)
 {
     int rc = __do_update_va_mapping(va, ((uint64_t)hi << 32) | lo,
                                     flags, current->domain);
@@ -4526,9 +4525,9 @@ int compat_update_va_mapping(unsigned int va, uint32_t lo, uint32_t hi,
     return rc;
 }
 
-int compat_update_va_mapping_otherdomain(unsigned int va,
-                                         uint32_t lo, uint32_t hi,
-                                         unsigned int flags, domid_t domid)
+int cf_check compat_update_va_mapping_otherdomain(
+    unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags,
+    domid_t domid)
 {
     struct domain *pg_owner;
     int rc;
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index dd6b2bdf6fd6..b2bec893c479 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -756,7 +756,8 @@ int paging_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,
         return shadow_domctl(d, sc, u_domctl);
 }
 
-long paging_domctl_continuation(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+long cf_check paging_domctl_continuation(
+    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
     struct xen_domctl op;
     struct domain *d;
diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
index ea38be8b797a..2ddcf44f33a4 100644
--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -174,7 +174,7 @@ int physdev_unmap_pirq(domid_t domid, int pirq)
 }
 #endif /* COMPAT */
 
-ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ret_t cf_check do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     int irq;
     ret_t ret;
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 284c2dfb9efe..f5457565a560 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -210,7 +210,8 @@ void resource_access(void *info)
 }
 #endif
 
-ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
+ret_t cf_check do_platform_op(
+    XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
 {
     ret_t ret;
     struct xen_platform_op curop, *op = &curop;
diff --git a/xen/arch/x86/pv/callback.c b/xen/arch/x86/pv/callback.c
index 42a6aa0831b7..55148c7f9e50 100644
--- a/xen/arch/x86/pv/callback.c
+++ b/xen/arch/x86/pv/callback.c
@@ -140,7 +140,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
     return ret;
 }
 
-long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
+long cf_check do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
 {
     long ret;
 
@@ -178,9 +178,9 @@ long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
     return ret;
 }
 
-long do_set_callbacks(unsigned long event_address,
-                      unsigned long failsafe_address,
-                      unsigned long syscall_address)
+long cf_check do_set_callbacks(
+    unsigned long event_address, unsigned long failsafe_address,
+    unsigned long syscall_address)
 {
     struct callback_register event = {
         .type = CALLBACKTYPE_event,
@@ -283,7 +283,7 @@ static long compat_unregister_guest_callback(
     return ret;
 }
 
-long compat_callback_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+long cf_check compat_callback_op(int cmd, XEN_GUEST_HANDLE(void) arg)
 {
     long ret;
 
@@ -321,10 +321,9 @@ long compat_callback_op(int cmd, XEN_GUEST_HANDLE(void) arg)
     return ret;
 }
 
-long compat_set_callbacks(unsigned long event_selector,
-                          unsigned long event_address,
-                          unsigned long failsafe_selector,
-                          unsigned long failsafe_address)
+long cf_check compat_set_callbacks(
+    unsigned long event_selector, unsigned long event_address,
+    unsigned long failsafe_selector, unsigned long failsafe_address)
 {
     struct compat_callback_register event = {
         .type = CALLBACKTYPE_event,
@@ -349,7 +348,7 @@ long compat_set_callbacks(unsigned long event_selector,
 
 #endif /* CONFIG_PV32 */
 
-long do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps)
+long cf_check do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps)
 {
     struct trap_info cur;
     struct vcpu *curr = current;
@@ -395,7 +394,7 @@ long do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps)
 }
 
 #ifdef CONFIG_PV32
-int compat_set_trap_table(XEN_GUEST_HANDLE(trap_info_compat_t) traps)
+int cf_check compat_set_trap_table(XEN_GUEST_HANDLE(trap_info_compat_t) traps)
 {
     struct vcpu *curr = current;
     struct compat_trap_info cur;
@@ -438,7 +437,7 @@ int compat_set_trap_table(XEN_GUEST_HANDLE(trap_info_compat_t) traps)
 }
 #endif
 
-long do_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long cf_check do_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     struct xennmi_callback cb;
     long rc = 0;
@@ -464,7 +463,7 @@ long do_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 }
 
 #ifdef CONFIG_PV32
-int compat_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+int cf_check compat_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     struct compat_nmi_callback cb;
     int rc = 0;
diff --git a/xen/arch/x86/pv/descriptor-tables.c b/xen/arch/x86/pv/descriptor-tables.c
index 5e847044009b..653a61d0b518 100644
--- a/xen/arch/x86/pv/descriptor-tables.c
+++ b/xen/arch/x86/pv/descriptor-tables.c
@@ -124,8 +124,8 @@ int pv_set_gdt(struct vcpu *v, const unsigned long frames[],
     return -EINVAL;
 }
 
-long do_set_gdt(XEN_GUEST_HANDLE_PARAM(xen_ulong_t) frame_list,
-                unsigned int entries)
+long cf_check do_set_gdt(
+    XEN_GUEST_HANDLE_PARAM(xen_ulong_t) frame_list, unsigned int entries)
 {
     unsigned int nr_frames = DIV_ROUND_UP(entries, 512);
     unsigned long frames[16];
@@ -151,8 +151,8 @@ long do_set_gdt(XEN_GUEST_HANDLE_PARAM(xen_ulong_t) frame_list,
 
 #ifdef CONFIG_PV32
 
-int compat_set_gdt(XEN_GUEST_HANDLE_PARAM(uint) frame_list,
-                   unsigned int entries)
+int cf_check compat_set_gdt(
+    XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries)
 {
     struct vcpu *curr = current;
     unsigned int i, nr_frames = DIV_ROUND_UP(entries, 512);
@@ -187,8 +187,8 @@ int compat_set_gdt(XEN_GUEST_HANDLE_PARAM(uint) frame_list,
     return ret;
 }
 
-int compat_update_descriptor(uint32_t pa_lo, uint32_t pa_hi,
-                             uint32_t desc_lo, uint32_t desc_hi)
+int cf_check compat_update_descriptor(
+    uint32_t pa_lo, uint32_t pa_hi, uint32_t desc_lo, uint32_t desc_hi)
 {
     seg_desc_t d;
 
@@ -299,7 +299,7 @@ int validate_segdesc_page(struct page_info *page)
     return i == 512 ? 0 : -EINVAL;
 }
 
-long do_update_descriptor(uint64_t gaddr, seg_desc_t d)
+long cf_check do_update_descriptor(uint64_t gaddr, seg_desc_t d)
 {
     struct domain *currd = current->domain;
     gfn_t gfn = gaddr_to_gfn(gaddr);
diff --git a/xen/arch/x86/pv/iret.c b/xen/arch/x86/pv/iret.c
index 29a2f7cc452b..dd2965d8f08d 100644
--- a/xen/arch/x86/pv/iret.c
+++ b/xen/arch/x86/pv/iret.c
@@ -48,7 +48,7 @@ static void async_exception_cleanup(struct vcpu *curr)
         curr->arch.async_exception_state(trap).old_mask;
 }
 
-unsigned long do_iret(void)
+unsigned long cf_check do_iret(void)
 {
     struct cpu_user_regs *regs = guest_cpu_user_regs();
     struct iret_context iret_saved;
@@ -105,7 +105,7 @@ unsigned long do_iret(void)
 }
 
 #ifdef CONFIG_PV32
-unsigned int compat_iret(void)
+unsigned int cf_check compat_iret(void)
 {
     struct cpu_user_regs *regs = guest_cpu_user_regs();
     struct vcpu *v = current;
diff --git a/xen/arch/x86/pv/misc-hypercalls.c b/xen/arch/x86/pv/misc-hypercalls.c
index 5dade2472687..5649aaab4436 100644
--- a/xen/arch/x86/pv/misc-hypercalls.c
+++ b/xen/arch/x86/pv/misc-hypercalls.c
@@ -23,12 +23,12 @@
 
 #include <asm/debugreg.h>
 
-long do_set_debugreg(int reg, unsigned long value)
+long cf_check do_set_debugreg(int reg, unsigned long value)
 {
     return set_debugreg(current, reg, value);
 }
 
-unsigned long do_get_debugreg(int reg)
+unsigned long cf_check do_get_debugreg(int reg)
 {
     unsigned long val;
     int res = x86emul_read_dr(reg, &val, NULL);
@@ -36,7 +36,7 @@ unsigned long do_get_debugreg(int reg)
     return res == X86EMUL_OKAY ? val : -ENODEV;
 }
 
-long do_fpu_taskswitch(int set)
+long cf_check do_fpu_taskswitch(int set)
 {
     struct vcpu *v = current;
 
@@ -171,7 +171,7 @@ long set_debugreg(struct vcpu *v, unsigned int reg, unsigned long value)
     return 0;
 }
 
-long do_stack_switch(unsigned long ss, unsigned long esp)
+long cf_check do_stack_switch(unsigned long ss, unsigned long esp)
 {
     fixup_guest_stack_selector(current->domain, ss);
     current->arch.pv.kernel_ss = ss;
@@ -180,7 +180,7 @@ long do_stack_switch(unsigned long ss, unsigned long esp)
     return 0;
 }
 
-long do_set_segment_base(unsigned int which, unsigned long base)
+long cf_check do_set_segment_base(unsigned int which, unsigned long base)
 {
     struct vcpu *v = current;
     long ret = 0;
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index 7e891fe2f7a4..4c710ad8913f 100644
--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -824,8 +824,8 @@ long pv_shim_grant_table_op(unsigned int cmd,
 
 #ifndef CONFIG_GRANT_TABLE
 /* Thin wrapper(s) needed. */
-long do_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop,
-                       unsigned int count)
+long cf_check do_grant_table_op(
+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
 {
     if ( !pv_shim )
         return -ENOSYS;
@@ -834,8 +834,8 @@ long do_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop,
 }
 
 #ifdef CONFIG_PV32
-int compat_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop,
-                          unsigned int count)
+int cf_check compat_grant_table_op(
+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
 {
     if ( !pv_shim )
         return -ENOSYS;
diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
index 215e96aba032..b3da8fafbb0c 100644
--- a/xen/arch/x86/x86_64/compat/mm.c
+++ b/xen/arch/x86/x86_64/compat/mm.c
@@ -176,10 +176,9 @@ int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 #ifdef CONFIG_PV
 DEFINE_XEN_GUEST_HANDLE(mmuext_op_compat_t);
 
-int compat_mmuext_op(XEN_GUEST_HANDLE_PARAM(void) arg,
-                     unsigned int count,
-                     XEN_GUEST_HANDLE_PARAM(uint) pdone,
-                     unsigned int foreigndom)
+int cf_check compat_mmuext_op(
+    XEN_GUEST_HANDLE_PARAM(void) arg, unsigned int count,
+    XEN_GUEST_HANDLE_PARAM(uint) pdone, unsigned int foreigndom)
 {
     unsigned int i, preempt_mask;
     int rc = 0;
diff --git a/xen/common/argo.c b/xen/common/argo.c
index eaea7ba8885a..1448faf65731 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -2069,7 +2069,7 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_addr,
     return ( ret < 0 ) ? ret : len;
 }
 
-long
+long cf_check
 do_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,
            XEN_GUEST_HANDLE_PARAM(void) arg2, unsigned long raw_arg3,
            unsigned long raw_arg4)
@@ -2207,7 +2207,7 @@ do_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,
 }
 
 #ifdef CONFIG_COMPAT
-long
+long cf_check
 compat_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,
                XEN_GUEST_HANDLE_PARAM(void) arg2, unsigned long arg3,
                unsigned long arg4)
diff --git a/xen/common/compat/domain.c b/xen/common/compat/domain.c
index 98b8c15cea7f..afae27eeba02 100644
--- a/xen/common/compat/domain.c
+++ b/xen/common/compat/domain.c
@@ -38,7 +38,8 @@ CHECK_vcpu_hvm_context;
 
 #endif
 
-int compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+int cf_check compat_vcpu_op(
+    int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     struct domain *d = current->domain;
     struct vcpu *v;
diff --git a/xen/common/compat/grant_table.c b/xen/common/compat/grant_table.c
index ff1d678f01c7..c6199e89188d 100644
--- a/xen/common/compat/grant_table.c
+++ b/xen/common/compat/grant_table.c
@@ -55,9 +55,8 @@ CHECK_gnttab_swap_grant_ref;
 CHECK_gnttab_cache_flush;
 #undef xen_gnttab_cache_flush
 
-int compat_grant_table_op(unsigned int cmd,
-                          XEN_GUEST_HANDLE_PARAM(void) cmp_uop,
-                          unsigned int count)
+int cf_check compat_grant_table_op(
+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) cmp_uop, unsigned int count)
 {
     int rc = 0;
     unsigned int i, cmd_op;
diff --git a/xen/common/compat/kernel.c b/xen/common/compat/kernel.c
index 804b919bdc72..8e8c413bf1d0 100644
--- a/xen/common/compat/kernel.c
+++ b/xen/common/compat/kernel.c
@@ -37,7 +37,7 @@ CHECK_TYPE(capabilities_info);
 
 CHECK_TYPE(domain_handle);
 
-#define DO(fn) int compat_##fn
+#define DO(fn) int cf_check compat_##fn
 #define COMPAT
 
 #include "../kernel.c"
diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c
index c43fa97cf15f..ec8ba54bb66e 100644
--- a/xen/common/compat/memory.c
+++ b/xen/common/compat/memory.c
@@ -53,7 +53,8 @@ static int get_reserved_device_memory(xen_pfn_t start, xen_ulong_t nr,
 }
 #endif
 
-int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) compat)
+int cf_check compat_memory_op(
+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) compat)
 {
     struct vcpu *curr = current;
     struct domain *currd = curr->domain;
diff --git a/xen/common/dm.c b/xen/common/dm.c
index 2d1d98ca583e..fcb3a1aa0557 100644
--- a/xen/common/dm.c
+++ b/xen/common/dm.c
@@ -19,9 +19,9 @@
 #include <xen/hypercall.h>
 #include <xen/nospec.h>
 
-long do_dm_op(domid_t domid,
-              unsigned int nr_bufs,
-              XEN_GUEST_HANDLE_PARAM(xen_dm_op_buf_t) bufs)
+long cf_check do_dm_op(
+    domid_t domid, unsigned int nr_bufs,
+    XEN_GUEST_HANDLE_PARAM(xen_dm_op_buf_t) bufs)
 {
     struct dmop_args args;
     int rc;
diff --git a/xen/common/domain.c b/xen/common/domain.c
index a53dd114d5ba..03debb2ea161 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1612,7 +1612,8 @@ int default_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
-long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+long cf_check do_vcpu_op(
+    int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     struct domain *d = current->domain;
     struct vcpu *v;
@@ -1799,7 +1800,7 @@ long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
 }
 
 #ifdef arch_vm_assist_valid_mask
-long do_vm_assist(unsigned int cmd, unsigned int type)
+long cf_check do_vm_assist(unsigned int cmd, unsigned int type)
 {
     struct domain *currd = current->domain;
     const unsigned long valid = arch_vm_assist_valid_mask(currd);
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 271862ae587f..b50b5ec0f477 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -274,7 +274,7 @@ static struct vnuma_info *vnuma_init(const struct xen_domctl_vnuma *uinfo,
     return ERR_PTR(ret);
 }
 
-long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+long cf_check do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
     long ret = 0;
     bool_t copyback = 0;
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index b38f49e0a616..a4e78282e059 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -1189,7 +1189,7 @@ static int evtchn_set_priority(const struct evtchn_set_priority *set_priority)
     return ret;
 }
 
-long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long cf_check do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     int rc;
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 7dfbee2f370f..c92dc1d6fd78 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -3540,7 +3540,7 @@ gnttab_cache_flush(XEN_GUEST_HANDLE_PARAM(gnttab_cache_flush_t) uop,
     return 0;
 }
 
-long
+long cf_check
 do_grant_table_op(
     unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
 {
diff --git a/xen/common/hypfs.c b/xen/common/hypfs.c
index e71f7df47958..1526bcc52810 100644
--- a/xen/common/hypfs.c
+++ b/xen/common/hypfs.c
@@ -671,9 +671,9 @@ static int hypfs_write(struct hypfs_entry *entry,
     return entry->funcs->write(l, uaddr, ulen);
 }
 
-long do_hypfs_op(unsigned int cmd,
-                 XEN_GUEST_HANDLE_PARAM(const_char) arg1, unsigned long arg2,
-                 XEN_GUEST_HANDLE_PARAM(void) arg3, unsigned long arg4)
+long cf_check do_hypfs_op(
+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(const_char) arg1,
+    unsigned long arg2, XEN_GUEST_HANDLE_PARAM(void) arg3, unsigned long arg4)
 {
     int ret;
     struct hypfs_entry *entry;
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index e119e5401f9d..752c2e0dae44 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -451,7 +451,7 @@ static int __init param_init(void)
 __initcall(param_init);
 #endif
 
-# define DO(fn) long do_##fn
+# define DO(fn) long cf_check do_##fn
 
 #endif
 
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index c63db618a707..8471590aeea2 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -1265,13 +1265,13 @@ static int do_kexec_op_internal(unsigned long op,
     return ret;
 }
 
-long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+long cf_check do_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
 {
     return do_kexec_op_internal(op, uarg, 0);
 }
 
 #ifdef CONFIG_COMPAT
-int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+int cf_check compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
 {
     return do_kexec_op_internal(op, uarg, 1);
 }
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 30d255da3533..5a0462f97013 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1349,7 +1349,7 @@ static int acquire_resource(
     return rc;
 }
 
-long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long cf_check do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     struct domain *d, *curr_d = current->domain;
     long rc;
diff --git a/xen/common/multicall.c b/xen/common/multicall.c
index 5a199ebf8f85..589b54f49d6a 100644
--- a/xen/common/multicall.c
+++ b/xen/common/multicall.c
@@ -32,7 +32,7 @@ static void trace_multicall_call(multicall_entry_t *call)
     __trace_multicall_call(call);
 }
 
-ret_t
+ret_t cf_check
 do_multicall(
     XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list, uint32_t nr_calls)
 {
diff --git a/xen/common/sched/compat.c b/xen/common/sched/compat.c
index 040b4caca2c4..66ba0fe88f2e 100644
--- a/xen/common/sched/compat.c
+++ b/xen/common/sched/compat.c
@@ -39,7 +39,7 @@ static int compat_poll(struct compat_sched_poll *compat)
 
 #include "core.c"
 
-int compat_set_timer_op(u32 lo, s32 hi)
+int cf_check compat_set_timer_op(u32 lo, s32 hi)
 {
     return do_set_timer_op(((s64)hi << 32) | lo);
 }
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 8f4b1ca10d1c..0f527024ba2e 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -1862,7 +1862,7 @@ typedef long ret_t;
 
 #endif /* !COMPAT */
 
-ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ret_t cf_check do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     ret_t ret = 0;
 
@@ -1999,7 +1999,7 @@ ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 #ifndef COMPAT
 
 /* Per-vcpu oneshot-timer hypercall. */
-long do_set_timer_op(s_time_t timeout)
+long cf_check do_set_timer_op(s_time_t timeout)
 {
     struct vcpu *v = current;
     s_time_t offset = timeout - NOW();
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 1ad3c29351db..fc4a0b31d6f0 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -29,7 +29,7 @@
 #include <xen/livepatch.h>
 #include <xen/coverage.h>
 
-long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
+long cf_check do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 {
     long ret = 0;
     int copyback = -1;
diff --git a/xen/common/xenoprof.c b/xen/common/xenoprof.c
index 1926a92fe481..af617f1d0b83 100644
--- a/xen/common/xenoprof.c
+++ b/xen/common/xenoprof.c
@@ -721,7 +721,7 @@ static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE_PARAM(void) arg)
                       || (op == XENOPROF_disable_virq)  \
                       || (op == XENOPROF_get_buffer))
  
-ret_t do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ret_t cf_check do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     int ret = 0;
     
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 7d0a603d0311..a043e9521afd 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -675,8 +675,8 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
     return 0;
 }
 
-long do_console_io(unsigned int cmd, unsigned int count,
-                   XEN_GUEST_HANDLE_PARAM(char) buffer)
+long cf_check do_console_io(
+    unsigned int cmd, unsigned int count, XEN_GUEST_HANDLE_PARAM(char) buffer)
 {
     long rc;
     unsigned int idx, len;
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index 9caca272eff7..5356869a5d0c 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -38,97 +38,97 @@ void pv_ring3_init_hypercall_page(void *ptr);
  */
 #define MMU_UPDATE_PREEMPTED          (~(~0U>>1))
 
-extern long
+extern long cf_check
 do_event_channel_op_compat(
     XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop);
 
 /* Legacy hypercall (as of 0x00030202). */
-extern long do_physdev_op_compat(
+extern long cf_check do_physdev_op_compat(
     XEN_GUEST_HANDLE(physdev_op_t) uop);
 
 /* Legacy hypercall (as of 0x00030101). */
-extern long do_sched_op_compat(
+extern long cf_check do_sched_op_compat(
     int cmd, unsigned long arg);
 
-extern long
+extern long cf_check
 do_set_trap_table(
     XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps);
 
-extern long
+extern long cf_check
 do_mmu_update(
     XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
     unsigned int count,
     XEN_GUEST_HANDLE_PARAM(uint) pdone,
     unsigned int foreigndom);
 
-extern long
+extern long cf_check
 do_set_gdt(
     XEN_GUEST_HANDLE_PARAM(xen_ulong_t) frame_list,
     unsigned int entries);
 
-extern long
+extern long cf_check
 do_stack_switch(
     unsigned long ss,
     unsigned long esp);
 
-extern long
+extern long cf_check
 do_fpu_taskswitch(
     int set);
 
-extern long
+extern long cf_check
 do_set_debugreg(
     int reg,
     unsigned long value);
 
-extern unsigned long
+extern unsigned long cf_check
 do_get_debugreg(
     int reg);
 
-extern long
+extern long cf_check
 do_update_descriptor(
     uint64_t gaddr, seg_desc_t desc);
 
-extern long
+extern long cf_check
 do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);
 
-extern long
+extern long cf_check
 do_update_va_mapping(
     unsigned long va,
     u64 val64,
     unsigned long flags);
 
-extern long
+extern long cf_check
 do_physdev_op(
     int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
+extern long cf_check
 do_update_va_mapping_otherdomain(
     unsigned long va,
     u64 val64,
     unsigned long flags,
     domid_t domid);
 
-extern long
+extern long cf_check
 do_mmuext_op(
     XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
     unsigned int count,
     XEN_GUEST_HANDLE_PARAM(uint) pdone,
     unsigned int foreigndom);
 
-extern long do_callback_op(
+extern long cf_check do_callback_op(
     int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg);
 
-extern unsigned long
+extern unsigned long cf_check
 do_iret(
     void);
 
-extern long
+extern long cf_check
 do_set_callbacks(
     unsigned long event_address,
     unsigned long failsafe_address,
     unsigned long syscall_address);
 
-extern long
+extern long cf_check
 do_set_segment_base(
     unsigned int which,
     unsigned long base);
@@ -138,7 +138,7 @@ do_set_segment_base(
 #include <compat/arch-x86/xen.h>
 #include <compat/physdev.h>
 
-extern int
+extern int cf_check
 compat_physdev_op(
     int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg);
@@ -147,7 +147,7 @@ extern int
 arch_compat_vcpu_op(
     int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern int compat_mmuext_op(
+extern int cf_check compat_mmuext_op(
     XEN_GUEST_HANDLE_PARAM(void) arg,
     unsigned int count,
     XEN_GUEST_HANDLE_PARAM(uint) pdone,
@@ -155,37 +155,40 @@ extern int compat_mmuext_op(
 
 typedef struct compat_platform_op compat_platform_op_t;
 DEFINE_XEN_GUEST_HANDLE(compat_platform_op_t);
-extern int compat_platform_op(
+extern int cf_check compat_platform_op(
     XEN_GUEST_HANDLE_PARAM(compat_platform_op_t) u_xenpf_op);
 
-extern long compat_callback_op(
+extern long cf_check compat_callback_op(
     int cmd, XEN_GUEST_HANDLE(void) arg);
 
-extern int compat_update_va_mapping(
+extern int cf_check compat_update_va_mapping(
     unsigned int va, u32 lo, u32 hi, unsigned int flags);
 
-extern int compat_update_va_mapping_otherdomain(
+extern int cf_check compat_update_va_mapping_otherdomain(
     unsigned int va, u32 lo, u32 hi, unsigned int flags, domid_t domid);
 
 DEFINE_XEN_GUEST_HANDLE(trap_info_compat_t);
-extern int compat_set_trap_table(XEN_GUEST_HANDLE(trap_info_compat_t) traps);
+extern int cf_check compat_set_trap_table(
+    XEN_GUEST_HANDLE(trap_info_compat_t) traps);
 
-extern int compat_set_gdt(
+extern int cf_check compat_set_gdt(
     XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries);
 
-extern int compat_update_descriptor(
+extern int cf_check compat_update_descriptor(
     u32 pa_lo, u32 pa_hi, u32 desc_lo, u32 desc_hi);
 
-extern unsigned int compat_iret(void);
+extern unsigned int cf_check compat_iret(void);
 
-extern int compat_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+extern int cf_check compat_nmi_op(
+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long compat_set_callbacks(
+extern long cf_check compat_set_callbacks(
     unsigned long event_selector, unsigned long event_address,
     unsigned long failsafe_selector, unsigned long failsafe_address);
 
 DEFINE_XEN_GUEST_HANDLE(physdev_op_compat_t);
-extern int compat_physdev_op_compat(XEN_GUEST_HANDLE(physdev_op_compat_t) uop);
+extern int cf_check compat_physdev_op_compat(
+    XEN_GUEST_HANDLE(physdev_op_compat_t) uop);
 
 #endif /* CONFIG_COMPAT */
 
diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h
index 308f1115dde9..1d5b51620839 100644
--- a/xen/include/asm-x86/paging.h
+++ b/xen/include/asm-x86/paging.h
@@ -235,7 +235,7 @@ int paging_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,
                   bool_t resuming);
 
 /* Helper hypercall for dealing with continuations. */
-long paging_domctl_continuation(XEN_GUEST_HANDLE_PARAM(xen_domctl_t));
+long cf_check paging_domctl_continuation(XEN_GUEST_HANDLE_PARAM(xen_domctl_t));
 
 /* Call when destroying a vcpu/domain */
 void paging_vcpu_teardown(struct vcpu *v);
diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
index 07b10ec2303b..4dfd64cf716c 100644
--- a/xen/include/xen/hypercall.h
+++ b/xen/include/xen/hypercall.h
@@ -18,12 +18,12 @@
 #include <asm/hypercall.h>
 #include <xsm/xsm.h>
 
-extern long
+extern long cf_check
 do_sched_op(
     int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
+extern long cf_check
 do_domctl(
     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
 
@@ -32,7 +32,7 @@ arch_do_domctl(
     struct xen_domctl *domctl, struct domain *d,
     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
 
-extern long
+extern long cf_check
 do_sysctl(
     XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
 
@@ -41,7 +41,7 @@ arch_do_sysctl(
     struct xen_sysctl *sysctl,
     XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
 
-extern long
+extern long cf_check
 do_platform_op(
     XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op);
 
@@ -62,47 +62,47 @@ pci_physdev_op(
 #define MEMOP_EXTENT_SHIFT 6 /* cmd[:6] == start_extent */
 #define MEMOP_CMD_MASK     ((1 << MEMOP_EXTENT_SHIFT) - 1)
 
-extern long
+extern long cf_check
 do_memory_op(
     unsigned long cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
+extern long cf_check
 do_multicall(
     XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list,
     unsigned int nr_calls);
 
-extern long
+extern long cf_check
 do_set_timer_op(
     s_time_t timeout);
 
-extern long
+extern long cf_check
 do_event_channel_op(
     int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
+extern long cf_check
 do_xen_version(
     int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
+extern long cf_check
 do_console_io(
     unsigned int cmd,
     unsigned int count,
     XEN_GUEST_HANDLE_PARAM(char) buffer);
 
-extern long
+extern long cf_check
 do_grant_table_op(
     unsigned int cmd,
     XEN_GUEST_HANDLE_PARAM(void) uop,
     unsigned int count);
 
-extern long
+extern long cf_check
 do_vm_assist(
     unsigned int cmd,
     unsigned int type);
 
-extern long
+extern long cf_check
 do_vcpu_op(
     int cmd,
     unsigned int vcpuid,
@@ -114,27 +114,27 @@ arch_do_vcpu_op(int cmd,
     struct vcpu *v,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
+extern long cf_check
 do_nmi_op(
     unsigned int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
+extern long cf_check
 do_hvm_op(
     unsigned long op,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
+extern long cf_check
 do_kexec_op(
     unsigned long op,
     XEN_GUEST_HANDLE_PARAM(void) uarg);
 
-extern long
+extern long cf_check
 do_xsm_op(
     XEN_GUEST_HANDLE_PARAM(void) u_xsm_op);
 
 #ifdef CONFIG_ARGO
-extern long do_argo_op(
+extern long cf_check do_argo_op(
     unsigned int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg1,
     XEN_GUEST_HANDLE_PARAM(void) arg2,
@@ -142,20 +142,20 @@ extern long do_argo_op(
     unsigned long arg4);
 #endif
 
-extern long
+extern long cf_check
 do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern long
+extern long cf_check
 do_xenpmu_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg);
 
-extern long
+extern long cf_check
 do_dm_op(
     domid_t domid,
     unsigned int nr_bufs,
     XEN_GUEST_HANDLE_PARAM(xen_dm_op_buf_t) bufs);
 
 #ifdef CONFIG_HYPFS
-extern long
+extern long cf_check
 do_hypfs_op(
     unsigned int cmd,
     XEN_GUEST_HANDLE_PARAM(const_char) arg1,
@@ -166,53 +166,54 @@ do_hypfs_op(
 
 #ifdef CONFIG_COMPAT
 
-extern int
+extern int cf_check
 compat_memory_op(
     unsigned int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern int
+extern int cf_check
 compat_grant_table_op(
     unsigned int cmd,
     XEN_GUEST_HANDLE_PARAM(void) uop,
     unsigned int count);
 
-extern int
+extern int cf_check
 compat_vcpu_op(
     int cmd,
     unsigned int vcpuid,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern int
+extern int cf_check
 compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern int
+extern int cf_check
 compat_xen_version(
     int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern int
+extern int cf_check
 compat_sched_op(
     int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg);
 
-extern int
+extern int cf_check
 compat_set_timer_op(
     u32 lo,
     s32 hi);
 
-extern int compat_xsm_op(
+extern int cf_check compat_xsm_op(
     XEN_GUEST_HANDLE_PARAM(void) op);
 
-extern int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg);
+extern int cf_check compat_kexec_op(
+    unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg);
 
 DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
-extern int compat_multicall(
+extern int cf_check compat_multicall(
     XEN_GUEST_HANDLE_PARAM(multicall_entry_compat_t) call_list,
     uint32_t nr_calls);
 
 #ifdef CONFIG_ARGO
-extern long compat_argo_op(
+extern long cf_check compat_argo_op(
     unsigned int cmd,
     XEN_GUEST_HANDLE_PARAM(void) arg1,
     XEN_GUEST_HANDLE_PARAM(void) arg2,
@@ -220,7 +221,7 @@ extern long compat_argo_op(
     unsigned long arg4);
 #endif
 
-extern int
+extern int cf_check
 compat_dm_op(
     domid_t domid,
     unsigned int nr_bufs,
diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c
index 21fffbcb41d3..74d0ef89c12d 100644
--- a/xen/xsm/xsm_core.c
+++ b/xen/xsm/xsm_core.c
@@ -219,13 +219,13 @@ bool __init has_xsm_magic(paddr_t start)
 
 #endif
 
-long do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
+long cf_check do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
 {
     return xsm_do_xsm_op(op);
 }
 
 #ifdef CONFIG_COMPAT
-int compat_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
+int cf_check compat_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
 {
     return xsm_do_compat_op(op);
 }
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:49:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:49:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232729.403555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaen-0008UV-NQ; Fri, 26 Nov 2021 12:48:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232729.403555; Fri, 26 Nov 2021 12:48:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaen-0008UO-Jd; Fri, 26 Nov 2021 12:48:49 +0000
Received: by outflank-mailman (input) for mailman id 232729;
 Fri, 26 Nov 2021 12:48:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqael-0008UI-RS
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:48:47 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 318165d7-4eb7-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 13:48:46 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2052.outbound.protection.outlook.com [104.47.13.52]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-18-RD_ep5dJN6qKAnrB9ecCCA-1; Fri, 26 Nov 2021 13:48:44 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3294.eurprd04.prod.outlook.com (2603:10a6:802:3::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 26 Nov
 2021 12:48:42 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 12:48:42 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0159.eurprd06.prod.outlook.com (2603:10a6:20b:45c::26) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Fri, 26 Nov 2021 12:48:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 318165d7-4eb7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637930925;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=kQDITo9f9lV+o4bl/4+B6uaN7dki1K4r7F5gTsbexGQ=;
	b=bVm+ecub2GT10iCww2QrPMHA5p2b4e8LiFwxU7kzwGP5d5bZLiFvwtYMK/q5ryTt8o3PAV
	8zHlLY/LxtkdwKFiWkq7U3iG3qznLriH6zJ0EQIQXyPz0hGmZ2iug+p1SGwjuDW3/Z2hBv
	MVwdDPmR4rGn6dyfcCFMcX3na+M8wTs=
X-MC-Unique: RD_ep5dJN6qKAnrB9ecCCA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fF2IurVRqJdZL7wYymHMEurfy7dMbmqVedKh0oiQWfL2fwkTnNf348pJEKLkk2git5F7B+hpxE6QgsyRDuUF2mY7rCB2THUWws4XfvgBigwc48rqbM480wtk5kXAVhSJ5mqP+YeygzmvHHOEA/G2QkX1iTAVTTeWwa9/h5bm+9A7ChiDfRbEzVw+ffkjpBU0x7GQPONfJFKZD3uNKBIW87cpaCzmdO9/5vElLiT50yoGSo7GOaThXhbJkPiVt1J5S+QLO05ANJr40mIcWh2hxVE0JqJ1fuBxL6/3ydMML3ps/wrk7tcKfOl7twYoIWu6PREsXxofgJhBTLqe0eR2SA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kQDITo9f9lV+o4bl/4+B6uaN7dki1K4r7F5gTsbexGQ=;
 b=Ye+gqIXYWf4JyEfRnQV6zCPo9eKEne0t8Qrs+zUCz1vz3+E7WvzC6tu6l4hVwwq6/MN8Jg3HN/ZNp8NnNZxikMvVieiiENxEBQqGtPib1IXNeEcQW/qz4q9d8EQAWMGlWuSRmLEhYFPVF+dDSiQBeTSrh4aPGW2Fsgibt436b2I6xQ6q2ShYSGsQQclufiTbk/N63e1j0RMk/hGWLPHl26oD4pCA1DiM+R1xb1f2llctscWxoyflIC34b6L/SB3NOdwguqvJPkm6v7RuDY+J0cdrKv1MTqaTc/Era53sy8/Ue0tckHmtdUXrYovEfaurf3xA8nhIOJg3pv9JDgnXYw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <2bc4eeab-a69a-a953-e09e-7b87f7dc4b85@suse.com>
Date: Fri, 26 Nov 2021 13:48:40 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0159.eurprd06.prod.outlook.com
 (2603:10a6:20b:45c::26) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d5b5fc6d-1bea-4616-d304-08d9b0db139d
X-MS-TrafficTypeDiagnostic: VI1PR04MB3294:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB32945DC984A9CDEC1ADB30C1B3639@VI1PR04MB3294.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	th6l5T+hzLdmxa4jf7m1skouzhr3DlwXVaFCbHttM2byNhoQDmgPUdLvQ4WWWtPXb7MZRKvGkphVxqHlE4plvaO1ZCzB+WUpp9oUTd6dIR3ll8RbcSQcyz8+ACTTchGdshcL3qvohQtiMcNvzjVEGbFJxRs8f8ax+UnxpH0kJhmTXcyyznBMHsrt5XoSaju+UD7T+VC6HTkEcw1ZJasJPR0mPEBe4dyuce1GCvXs9zOoePqcsNnCBbOun9t/0v8ZQ/7M60WJxlnvONZh140cHpyNC3ajwOLWTZQOcL+sju2Tf5kYNlmgC8PxkVl2mTSAvZPYNmqFSExOvSRIEM8c2KxHwxq8p8R6RDJklmjqPujZso/gqpW9U1Q222UO3hn9Xu0jPHeLx+fn+AFzYElA/hyxz0LcDeMSc6263XgSj7iBbVj3C5X6ZiyVwQwIEq5z5C5yfxK2oPocDGGN/TvGEk8CDa5BDHXgQ3/IMbI3WS4i18l9dbKNqJ0nFNKZdZjNt7N4xOmUb8E5wF3oH9REz7wH3koueJmpN4qgCq8ftxpm0ksaoADIvECZh+dHoIdBHwme/pp0Fus+E2SAeFyXuyRPLmbFKQAt5F4ZQywdqtw2Q1Yvha5SlTKfS7w8dFY2iP/xc5uRRGV1rNPcLhbkyw6j+zboWLoBCVvtPj2gif2rOXh9JmlDhgSODNv94sEC6oM8npFByOD9p2NJRwS2QII2jTL9qOnRbHuaeddLKbU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(4326008)(38100700002)(54906003)(956004)(8676002)(5660300002)(16576012)(8936002)(6916009)(6486002)(53546011)(316002)(36756003)(31696002)(2616005)(66476007)(26005)(186003)(31686004)(66946007)(86362001)(66556008)(508600001)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L0tMbTFXSmlGY0x3WmdwSmpwTXBCRUxwWUJBM0tMRUplOElvdGdyVGxWQ2RJ?=
 =?utf-8?B?S0Z4dnMzenQrWmNwR1hodVB6cVpMb00reWRFMnh5UmhLUStLaFpuWVFUWkZC?=
 =?utf-8?B?OGxhaEN5eWlZRm9HenRzUjhjVWZkM1A1bHJUNm5YR2JUU2xIWE8zZ3d4Uk9B?=
 =?utf-8?B?d29VN0FHK1VzT2grQzh5K202Z2srUGJWZ2U4TkxXdmd3cDU4ZG81N3NNSUts?=
 =?utf-8?B?RDUxVnplQ3hSZVFEbW1NOVJ4aDcrK0RScFpITmVPK2l0NXJncTlSdHVMWTJG?=
 =?utf-8?B?SVVtaWViTXhaVUREckhiWXJiWm5pdnYrV05LeEllK3BWbnl4L21sdWo4NnJk?=
 =?utf-8?B?S2lsYW4rQlVsdTJ3c1p5VlAwYnJkYTcrdnBwb3YzQ3NMMlJBREd5SUI3bFMy?=
 =?utf-8?B?RnhiVGErZGxwbmxmVkpXbkl6ZVBtR1g0Mll2RXB0L2k3WFIvaTVzV3JubitP?=
 =?utf-8?B?bENqc0QwVGx4ZUliVHJGdUdJbzFTdHN4U1FIeVFUZG5mY25UaXNqSVlONzd6?=
 =?utf-8?B?Q250VkVoN0lDU2NQT1ZzSjU4TkhIVjlYd1o3ZDNHK3FUbmh2M0pwVkpKejdT?=
 =?utf-8?B?ZWxMUGZUM0MxUHZOZm5MTGx0V1Q4K1hmVVNuMFdmdHI3NTNXZDl2cDRVK3R1?=
 =?utf-8?B?dDlWcWIrRUlVQnZpSFVpTGJUNDBDaitxV1lCeHVjOHFxVDZLUnAyQXRZbk5X?=
 =?utf-8?B?QUd2ZjNpakwweElIUXovK3FHYW4rUlEwK2Y1ejk5L3Ezc3Y0M3BnSjQxZndC?=
 =?utf-8?B?VDhZNzRMNU4xbGl2VVNnUWFrT0lwYnJSSjk3R2dNVXZiOG1icDFocUhTd3No?=
 =?utf-8?B?dlNlSUpZTlRXWW9XQ3phUlJRb29XaHAvZFZneEswSW1mYUtwSnZCdEZZUi83?=
 =?utf-8?B?eTR6TlJuaEpidzc1MTc2V2FNTlhWWjRFWVJiZFlVQlNDSk1CREkxY1VwMlVE?=
 =?utf-8?B?Q0FCVFBGbU0xRDVRUXdOTGIycDd4TzdmaWVkTUl2ZDhyYTAvcUxxVGRxUWE4?=
 =?utf-8?B?ZWRtRGlCUWlhMWZzVWw0Z3FoZVpuN25lcDhnZDZETmJFT3JhdGw4MEN6L2Nj?=
 =?utf-8?B?U1ZyVzF5YU94TkVCRFNlbU9IWmFzbVdTbDI4VUcvSVkxak5ydnBqREZyaUtm?=
 =?utf-8?B?WVd2Z3V0WTZNZmk3SWl1RWxpWXNWVkljWDhnNGVkQWpOZkVJNWZ6Smp5UTF5?=
 =?utf-8?B?MVcrSVhqQ0lkdWRldjg4MWppRjBlYU83R2JTeHFqeGJEbWcrRFJ2ekRCRnE4?=
 =?utf-8?B?UUo4UDYrTjVlOVUxbU1ITTBnWkVUQTJWUTRIdndmNnY2eDlZQ1ZjQ2U4L0x1?=
 =?utf-8?B?TDE4QmpQM3p3eFZ6U2pzQzR6b1QvOElVTFhRVC9NbmRkNkg3a2lwZXIyVDdV?=
 =?utf-8?B?Z1YreDNtNmZHQ0txSS9DVyt5Vnl1V25VWFRnaU13TVhkMTg1N0VoL1hUd3F1?=
 =?utf-8?B?VHgzQzF4MVpQQXgwNDZXTjh3Z1hrSWVyWDhNS1BmMHRCQWovL25SRm5JUG8x?=
 =?utf-8?B?NUkzT0l5ZFpzcmJUcFFKaVRNbkZLeHhxREwrVGdMOGhOWkhPTDExOWdPdWEr?=
 =?utf-8?B?elRUanYvQ2VHRlBWbDl5djZyWlhwOXBYdFJmM25ZUTkzaisySmZIMndQdURI?=
 =?utf-8?B?RDd4dUJhamNnTEdvVGtCSnR6KzZ6UEtQV3M0Nyt1SFhFb0RmVUlRNnpBWm5p?=
 =?utf-8?B?NzBLcHJiL3UrMTlabEEzSkpPUk5nRFNkQkhKV1FHd0crK3hEalo3MmYxdkhu?=
 =?utf-8?B?Ny9GSHFMSG8rRzc1R0czY3VPM0ozY2xYTm9pZXFEdFNVVmZtNHJsRTYrYTh1?=
 =?utf-8?B?UENvUEhHRzh2MEo3QWFuVXFFUlhYL3REOVA2SWdOOFFPZjFXbm03TnZLU1l1?=
 =?utf-8?B?U3d4cHRKT20rOHJVYkRtdmdxb3ErNlEwbEJla2k2MTBCRkZpSDU2L2xpL0pQ?=
 =?utf-8?B?KzhQdjlnY2N1Nk8yTlowdzRWV0NYY1d4SXJMVWxGOXRmTkNPbjF5TENzU2FB?=
 =?utf-8?B?d1F0TXdtcnhETFRFelRUdzUzK3E1V2NMMk8zSFpyUnFPRDRsV25nVzkyMkQ0?=
 =?utf-8?B?MGpUVnBPS2ZTckFTcXJTNEN0RG94TmFLbUpUdTl6NFg5S3AwMUI1ZWZxZmhL?=
 =?utf-8?B?YXF4QUlFT2paU2w2aFBGeDlyOE00TS9nYjRIVjFLTHZrbE9GR09nRHFBeFRz?=
 =?utf-8?Q?9GECuTtaZRckhk6AdbWjtpk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d5b5fc6d-1bea-4616-d304-08d9b0db139d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 12:48:42.4501
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hBOF1aHBYtjnxDvQGvhftERexmoNUxsicFRZJPGMrCGg5yfO4aMbJQm/WJt4GcaTLLUibD8zz4e3t759bfHfDA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3294

On 26.11.2021 13:33, Andrew Cooper wrote:
> CET Indirect Branch Tracking is a hardware feature designed to protect against
> forward-edge control flow hijacking (Call/Jump oriented programming), and is a
> companion feature to CET Shadow Stacks added in Xen 4.14.
> 
> This series depends on lots of previously posted patches.  See
> xenbits/xen-cet-ibt for the full branch with all dependencies.
> 
> Patch 1 introduces some compile time infrastructure.
> 
> Patches 2 thru 56 annotate all function pointer targets in the common and x86
> hypervisor code.  Patches are split by API and in no particular order, and
> largely mechanical.  As such, I'm limiting review mainly to The Rest.  While
> doing this work does depend on an experimental GCC change (patch 56), the
> result does actually work properly with GCC 9 onwards.

I wonder what this means. Are you talking about a gcc 9 with the experimental
change backported? Or are you saying that things build fine there (but don't
work as far as IBT is concerned) in the absence of the experimental change?
In which case what about older gcc?

> Various note accumulated through the work:
>   * I have already posted patches fixing some of the most egregious (ab)uses of
>     function pointers.  There are plenty of other areas which could do with
>     cleanup.
>   * With everything turned on, we get 1688 runtime endbr64's, and 233 init
>     time.  The number of runtime endbr64's is expected to reduce with
>     Juergen's hypercall series (see later), and in common deployment cases
>     where not everything is compiled in by default.
>   * I have not checked for misaligned endbr64's, and I'm not sure there is
>     anything useful we could do upon discovering that there were any.
>     Naively, there is a 1 in 2^32 chance (endbr64 being 4 bytes long), but
>     this doesn't account for the structure of x86 code, which is most
>     certainly not a uniform random distribution of bytes.

Do you really mean "misaligned" here? The 2nd sentence rather might suggest
that you mean byte sequences resembling ENDBR, despite actually being part
of other insns. If so, checking might not allow to prove anything, as e.g.
displacements change with about every build.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 12:53:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 12:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232736.403569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaip-0001Qt-92; Fri, 26 Nov 2021 12:52:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232736.403569; Fri, 26 Nov 2021 12:52:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaip-0001Qm-4c; Fri, 26 Nov 2021 12:52:59 +0000
Received: by outflank-mailman (input) for mailman id 232736;
 Fri, 26 Nov 2021 12:52:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqaio-0001QT-61
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:52:58 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqaio-0007QW-4a
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:52:58 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqaio-0000zf-3w
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 12:52:58 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>)
 id 1mqaid-0002h4-54; Fri, 26 Nov 2021 12:52:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:Cc:To:Date
	:Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=RqM/9ScO8rVmTAdmCy1NUpnvL9qxmcdabTpHgOpAl/8=; b=1X8/SkDu+qvIz75LLOQxkLl8Cu
	jW4lKh8jodMKCz14bz+28BLZthIDlkEFW1YGCwkH2iGiqWrXgn+K7BwiYj57BoW3iLjjYPMczboyd
	kTSfwL5fG6WZ886by595eY61uEq6U0YEb6n5nWkX9rjQ5JYYUmoxBhhk7ru63Aj8jQR4=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24992.55453.893877.246946@mariner.uk.xensource.com>
Date: Fri, 26 Nov 2021 12:52:45 +0000
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>,
    Andrew Cooper <andrew.cooper3@citrix.com>,
    George Dunlap <george.dunlap@citrix.com>,
    Stefano Stabellini <sstabellini@kernel.org>,
    Wei Liu <wl@xen.org>,
    "xen-devel\@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/7] xz: add fall-through comments to a switch statement
In-Reply-To: <bef5ff51-475a-e8c4-83fc-950df4516399@suse.com>
References: <f96f014c-057a-80a7-b19d-04d7234d3f64@suse.com>
	<0ed245fa-58a7-a5f6-b82e-48f9ed0b6970@suse.com>
	<a36df6b5-9f55-a199-e8d3-3f6cd58a054d@xen.org>
	<b28ec75a-f5e5-cd3d-12b5-20338c7c88e0@xen.org>
	<0c0e67f3-5e0a-f047-ca09-1cf078e6b094@suse.com>
	<71ef250c-be92-2b2f-0f07-ce32c17d8050@xen.org>
	<ceec5b56-65fc-8bb4-b9e0-1e16aea8c412@suse.com>
	<c2d312c2-c413-4e07-1c0c-8652cab40784@xen.org>
	<0b808ce0-23a2-65ae-dfb3-b167d5565b31@suse.com>
	<6bcd1555-ee0d-dd6d-55ca-0ca0e64c3623@xen.org>
	<bef5ff51-475a-e8c4-83fc-950df4516399@suse.com>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

Jan Beulich writes ("Re: [PATCH 1/7] xz: add fall-through comments to a switch statement"):
> On 26.11.2021 11:04, Julien Grall wrote:
> > For this case, you provided some sort of an explanation but so far, I am 
> > still waiting for a link to confirm that the signed-off-by match the one 
> > on the ML.
> 
> I haven't been able to easily find a mail archive holding this patch.

I 100% agree with Julien on all points in this thread.

Please can we keep the Linux S-o-b.

Note that S-o-b is not a chain of *approval* (whose relevance to us is
debateable) but but a chain of *custody and transmission* for
copyright/licence/gdpr purposes.  That latter chain is hightly
relevant to us.

All such S-o-b should be retained.

Of course if you got the patch somewhere other than the Linux commit,
then the chain of custody doesn't pass through the Linux commit.  But
in that case I expect you to be able to say where you got it.

Instead, I suggest that, having established what the Linux commit is,
it is far simpler for us all to regard the Linux commit as our
immediate source for the patch, rather than some ML post which you are
not, apparently, able to find.

Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:04:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:04:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232748.403617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauE-0003XN-6Y; Fri, 26 Nov 2021 13:04:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232748.403617; Fri, 26 Nov 2021 13:04:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauE-0003XG-2x; Fri, 26 Nov 2021 13:04:46 +0000
Received: by outflank-mailman (input) for mailman id 232748;
 Fri, 26 Nov 2021 13:04:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauC-0003W9-Ux
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:45 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6abd2811-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:04:42 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6abd2811-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931882;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=lyv9Zq2/wNiGM7cedY7jC5rNlTlcp+sDuu1OiqPjFTg=;
  b=M5aUjTN3C+ErM1grARTSTiuiEOO8CMpENPpVt8sHqH/eJfJxAVky0zx6
   CJou6ZfIJ8u1C/gz4oLSwlzNjZfR91YqggGCJ3kkqCJT3RxwP9zqow2Op
   inydMKMDeuaNEDarXfm5sozCj6+RJSCe7/vp5QIJJIPh8j9HiVH3TkjHV
   I=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: fOYU9aW3l2wmwGsPd6CF/fr/ZOec+IzVsloqAFGDwWe+hD09ck9tQvXWbEgXc3WZcidVlFk2lV
 3a01fkSNuUQ0fAsCDnP42VDS7pdx6DRRSnds6xOazrI5qLhtteHiVQqgrfqE/p7WwWRe67iAtr
 3E5vhOg1Envlt3lUjMZl2wExtaZStH4CO9kldE6FjaxLBUCheNDjG3O6yw0rnaXm82F5r0G2io
 hgUUfNtiLIX207yh8N0EGcD8Dg7XcETvayWqG+WzrGCs1QQg81Zhb7k1lx25x2QBx67UM2gSLo
 JpWHnT8ZCF5PKrYrGQ/5/dz2
X-SBRS: 5.1
X-MesageID: 60695210
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:YDhxuKKufnPyGEB/FE+RJJIlxSXFcZb7ZxGr2PjKsXjdYENSgTJWy
 jEbUG/SaPbYZ2f9KN0nOYiz9B8G7Z/UnIJlQQNlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2txuJQ7
 vlGpKWUdhokPK7VtcgASxtXRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Glo2JETR6+GD
 yYfQWFuSQrbXkxfAWkeWY8kvPmC2yjecTIN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wp
 H/C/mn/KgEXMpqY0zXt2mm3mubFkCf/WYQTPL617PhnhBuU3GN7IA0bUx63rOe0jma6WslDM
 AoE9yw2t68w+Ue3CN7nUHWQglSJoxodUNp4CPAh5UeGza+83uqCLjFaFHgbMoVg7ZJoA2xxv
 rOUoz/3LRg2gpyzZXmMz5OrsD6wOjE4AXIaZyBRGGPp/OLfiI00ixvOSPNqH6i0ksD5FFnM/
 tyakMQtr+5N1JBWjs1X6XiC2mvx/caREmbZ8y2OBjr9hj6VcrJJcGBBBbLzyf9bZLiUQVCa1
 JTvs5jPtbteZX1hecHkfQnsIF1Lz6raWNE/qQQ2d3XEy9hL0yX4FWy3yGsjTHqFyu5eJVfUj
 Lb74Gu9HqN7MnqwdrNQaImsEcksxqWIPY27Da+EMIcRM8QvKFTvEMRSiai4hDuFfK8Ey/xXB
 HtmWZz0USZy5VpPkFJauNvxIZd0n3tjlAs/tLjwzgi90Kr2WZJmYextDbd6VchgtPnsiFyMq
 753bpLWoz0CALyWSnSGquY7cAFVRUXX8Lir8qS7gMbYeVE4cIzgYteMqY4cl3tNw/4Iy7yWp
 y7lASe1CjPX3BX6FOlDUVg7AJuHYHq1hSlT0fUEMQn61n49T5yo6atDJZI7caN+rL5ozOJuT
 ulDcMKFW6wdRjPC8jUbTJ/8sI09K0j72VPQZ3KoMGolYpptZw3V4du4LAHhwzYDU3isvswkr
 rz+ig6CGcgfRx5vBdr9Ye60yw/jpmAUne9/BhOaItRadEj23pJtLij90q0+L80WcE2RzTqGz
 QeGRxwfoLCV8YMy9dDIg4GCrpuoTLQiThYLQTGD4O/vZyfA/2elzYtRa8qyfGjQBDHu5aGvR
 eRJ1PWgYvcJq0lH7thnGLFxwKNgu9a2/+1Gzh5pFWngZkiwDu8yOWGP2MRCu/EfxrJdvgfqC
 EuD9sMDZOeMMcLhVlUQOBAkfqKI0vRNwmve6vE8IUPb4i5r/eXYDRUObkfU0CENfqFoNI4Fw
 Ps6vJ9E4gOyvRMmL9Kag30G7G+LNHEBD/0qu5xy7FUHUeb3JoWuuaDhNxI=
IronPort-HdrOrdr: A9a23:3tQAn62SzL3BLmlAceXccwqjBIokLtp133Aq2lEZdPRUGvb3qy
 nIpoVj6faUskd2ZJhOo7C90cW7LU80sKQFhLX5Xo3SOzUO2lHYT72KhLGKq1aLdhEWtNQtsZ
 uIG5IOcOEYZmIasS+V2maF+q4bsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="60695210"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 20/65] xen/keyhandler: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:01 +0000
Message-ID: <20211126123446.32324-21-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Tweak {IRQ_,}KEYHANDLER() to use a named initialiser instead of requiring a
pointer cast to compile in the IRQ case.

Reposition iommu_dump_page_tables() to avoid a forward declaration.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/cpu_idle.c             |  2 +-
 xen/arch/x86/hvm/irq.c                   |  2 +-
 xen/arch/x86/hvm/svm/vmcb.c              |  2 +-
 xen/arch/x86/hvm/vmx/vmcs.c              |  2 +-
 xen/arch/x86/io_apic.c                   |  2 +-
 xen/arch/x86/irq.c                       |  2 +-
 xen/arch/x86/mm/p2m-ept.c                |  2 +-
 xen/arch/x86/mm/shadow/common.c          |  4 +--
 xen/arch/x86/msi.c                       |  2 +-
 xen/arch/x86/nmi.c                       |  4 +--
 xen/arch/x86/numa.c                      |  2 +-
 xen/arch/x86/time.c                      |  2 +-
 xen/common/debugtrace.c                  |  2 +-
 xen/common/event_channel.c               |  2 +-
 xen/common/grant_table.c                 |  2 +-
 xen/common/kexec.c                       |  2 +-
 xen/common/keyhandler.c                  | 35 ++++++++++++---------
 xen/common/livepatch.c                   |  2 +-
 xen/common/page_alloc.c                  |  4 +--
 xen/common/perfc.c                       |  4 +--
 xen/common/sched/cpupool.c               |  2 +-
 xen/common/spinlock.c                    |  4 +--
 xen/common/timer.c                       |  2 +-
 xen/drivers/char/console.c               |  8 ++---
 xen/drivers/passthrough/amd/iommu.h      |  2 +-
 xen/drivers/passthrough/amd/iommu_intr.c |  2 +-
 xen/drivers/passthrough/iommu.c          | 52 +++++++++++++++-----------------
 xen/drivers/passthrough/pci.c            |  2 +-
 xen/drivers/passthrough/vtd/extern.h     |  2 +-
 xen/drivers/passthrough/vtd/utils.c      |  2 +-
 xen/include/xen/perfc.h                  |  4 +--
 xen/include/xen/sched.h                  |  2 +-
 xen/include/xen/spinlock.h               |  4 +--
 33 files changed, 86 insertions(+), 83 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 22c8bb0c2d94..0142671bb836 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -377,7 +377,7 @@ static void print_acpi_power(uint32_t cpu, struct acpi_processor_power *power)
     print_hw_residencies(cpu);
 }
 
-static void dump_cx(unsigned char key)
+static void cf_check dump_cx(unsigned char key)
 {
     unsigned int cpu;
 
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 6045c9149bad..a7f8991a7b84 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -635,7 +635,7 @@ static void irq_dump(struct domain *d)
            hvm_irq->callback_via_asserted ? "" : " not");
 }
 
-static void dump_irq_info(unsigned char key)
+static void cf_check dump_irq_info(unsigned char key)
 {
     struct domain *d;
 
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index 565e997155f2..811afb8fa8d6 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -226,7 +226,7 @@ void svm_destroy_vmcb(struct vcpu *v)
     svm->vmcb = NULL;
 }
 
-static void vmcb_dump(unsigned char ch)
+static void cf_check vmcb_dump(unsigned char ch)
 {
     struct domain *d;
     struct vcpu *v;
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 98fe91aff80b..1bb3710f7baa 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -2117,7 +2117,7 @@ void vmcs_dump_vcpu(struct vcpu *v)
     vmx_vmcs_exit(v);
 }
 
-static void vmcs_dump(unsigned char ch)
+static void cf_check vmcs_dump(unsigned char ch)
 {
     struct domain *d;
     struct vcpu *v;
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 4135a9c06052..4c5eaef86273 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1268,7 +1268,7 @@ static void __init print_IO_APIC(void)
         __print_IO_APIC(1);
 }
 
-static void _print_IO_APIC_keyhandler(unsigned char key)
+static void cf_check _print_IO_APIC_keyhandler(unsigned char key)
 {
     __print_IO_APIC(0);
 }
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index d9bd355113d7..f43b926ed26b 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2424,7 +2424,7 @@ void free_domain_pirqs(struct domain *d)
     pcidevs_unlock();
 }
 
-static void dump_irqs(unsigned char key)
+static void cf_check dump_irqs(unsigned char key)
 {
     int i, irq, pirq;
     struct irq_desc *desc;
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index 1459f66c006b..ac36afcc1d64 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -1434,7 +1434,7 @@ static const char *memory_type_to_str(unsigned int x)
     return memory_types[x][0] ? memory_types[x] : "?";
 }
 
-static void ept_dump_p2m_table(unsigned char key)
+static void cf_check ept_dump_p2m_table(unsigned char key)
 {
     struct domain *d;
     ept_entry_t *table, *ept_entry;
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index b8cacbefef5f..03bcd9518c39 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -98,7 +98,7 @@ void shadow_vcpu_init(struct vcpu *v)
 #if SHADOW_AUDIT
 int shadow_audit_enable = 0;
 
-static void shadow_audit_key(unsigned char key)
+static void cf_check shadow_audit_key(unsigned char key)
 {
     shadow_audit_enable = !shadow_audit_enable;
     printk("%s shadow_audit_enable=%d\n",
@@ -1046,7 +1046,7 @@ void shadow_blow_tables_per_domain(struct domain *d)
 /* Blow all shadows of all shadowed domains: this can be used to cause the
  * guest's pagetables to be re-shadowed if we suspect that the shadows
  * have somehow got out of sync */
-static void shadow_blow_all_tables(unsigned char c)
+static void cf_check shadow_blow_all_tables(unsigned char c)
 {
     struct domain *d;
     printk("'%c' pressed -> blowing all shadow tables\n", c);
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index d1497254b188..77a4fbf13f9f 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -1411,7 +1411,7 @@ void __init early_msi_init(void)
         return;
 }
 
-static void dump_msi(unsigned char key)
+static void cf_check dump_msi(unsigned char key)
 {
     unsigned int irq;
 
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index e20d1393c881..5c26e8785dfc 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -578,13 +578,13 @@ void self_nmi(void)
     local_irq_restore(flags);
 }
 
-static void do_nmi_trigger(unsigned char key)
+static void cf_check do_nmi_trigger(unsigned char key)
 {
     printk("Triggering NMI on APIC ID %x\n", get_apic_id());
     self_nmi();
 }
 
-static void do_nmi_stats(unsigned char key)
+static void cf_check do_nmi_stats(unsigned char key)
 {
     const struct vcpu *v;
     unsigned int cpu;
diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c
index 5de9db4e9943..680b7d9002c5 100644
--- a/xen/arch/x86/numa.c
+++ b/xen/arch/x86/numa.c
@@ -369,7 +369,7 @@ unsigned int __init arch_get_dma_bitsize(void)
                  + PAGE_SHIFT, 32);
 }
 
-static void dump_numa(unsigned char key)
+static void cf_check dump_numa(unsigned char key)
 {
     s_time_t now = NOW();
     unsigned int i, j, n;
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index 1ebf5fca96cc..9f8fdb209041 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -2536,7 +2536,7 @@ int tsc_set_info(struct domain *d,
 }
 
 /* vtsc may incur measurable performance degradation, diagnose with this */
-static void dump_softtsc(unsigned char key)
+static void cf_check dump_softtsc(unsigned char key)
 {
     struct domain *d;
     int domcnt = 0;
diff --git a/xen/common/debugtrace.c b/xen/common/debugtrace.c
index 160d00b79607..a272e5e43761 100644
--- a/xen/common/debugtrace.c
+++ b/xen/common/debugtrace.c
@@ -233,7 +233,7 @@ void debugtrace_printk(const char *fmt, ...)
     spin_unlock_irqrestore(&debugtrace_lock, flags);
 }
 
-static void debugtrace_key(unsigned char key)
+static void cf_check debugtrace_key(unsigned char key)
 {
     debugtrace_toggle();
 }
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index e26904e7508f..0e65178a524e 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -1629,7 +1629,7 @@ static void domain_dump_evtchn_info(struct domain *d)
     spin_unlock(&d->event_lock);
 }
 
-static void dump_evtchn_info(unsigned char key)
+static void cf_check dump_evtchn_info(unsigned char key)
 {
     struct domain *d;
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 7b2f593e8b6c..7ea72ca01251 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -4257,7 +4257,7 @@ static void gnttab_usage_print(struct domain *rd)
         printk("no active grant table entries\n");
 }
 
-static void gnttab_usage_print_all(unsigned char key)
+static void cf_check gnttab_usage_print_all(unsigned char key)
 {
     struct domain *d;
 
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index b222a5fd782e..a2ffb6530cff 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -408,7 +408,7 @@ static long cf_check kexec_reboot(void *_image)
     return 0;
 }
 
-static void do_crashdump_trigger(unsigned char key)
+static void cf_check do_crashdump_trigger(unsigned char key)
 {
     printk("'%c' pressed -> triggering crashdump\n", key);
     kexec_crash(CRASHREASON_DEBUGKEY);
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index b568484ca62c..5dc650a37c5c 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -26,10 +26,11 @@
 static unsigned char keypress_key;
 static bool_t alt_key_handling;
 
-static keyhandler_fn_t show_handlers, dump_hwdom_registers,
-    dump_domains, read_clocks;
-static irq_keyhandler_fn_t do_toggle_alt_key, dump_registers,
-    reboot_machine, run_all_keyhandlers, do_debug_key;
+static keyhandler_fn_t cf_check show_handlers, cf_check dump_hwdom_registers,
+    cf_check dump_domains, cf_check read_clocks;
+static irq_keyhandler_fn_t cf_check do_toggle_alt_key, cf_check dump_registers,
+    cf_check reboot_machine, cf_check run_all_keyhandlers,
+    cf_check do_debug_key;
 
 static struct keyhandler {
     union {
@@ -43,10 +44,10 @@ static struct keyhandler {
 } key_table[128] __read_mostly =
 {
 #define KEYHANDLER(k, f, desc, diag)            \
-    [k] = { { (f) }, desc, 0, diag }
+    [k] = { { .fn = (f) }, desc, 0, diag }
 
 #define IRQ_KEYHANDLER(k, f, desc, diag)        \
-    [k] = { { (keyhandler_fn_t *)(f) }, desc, 1, diag }
+    [k] = { { .irq_fn = (f) }, desc, 1, diag }
 
     IRQ_KEYHANDLER('A', do_toggle_alt_key, "toggle alternative key handling", 0),
     IRQ_KEYHANDLER('d', dump_registers, "dump registers", 1),
@@ -124,7 +125,7 @@ void register_irq_keyhandler(unsigned char key, irq_keyhandler_fn_t fn,
     key_table[key].diagnostic = diagnostic;
 }
 
-static void show_handlers(unsigned char key)
+static void cf_check show_handlers(unsigned char key)
 {
     unsigned int i;
 
@@ -170,7 +171,8 @@ void dump_execstate(struct cpu_user_regs *regs)
     watchdog_enable();
 }
 
-static void dump_registers(unsigned char key, struct cpu_user_regs *regs)
+static void cf_check dump_registers(
+    unsigned char key, struct cpu_user_regs *regs)
 {
     unsigned int cpu;
 
@@ -224,7 +226,7 @@ static void cf_check dump_hwdom_action(void *data)
     }
 }
 
-static void dump_hwdom_registers(unsigned char key)
+static void cf_check dump_hwdom_registers(unsigned char key)
 {
     struct vcpu *v;
 
@@ -246,13 +248,14 @@ static void dump_hwdom_registers(unsigned char key)
     }
 }
 
-static void reboot_machine(unsigned char key, struct cpu_user_regs *regs)
+static void cf_check reboot_machine(
+    unsigned char key, struct cpu_user_regs *regs)
 {
     printk("'%c' pressed -> rebooting machine\n", key);
     machine_restart(0);
 }
 
-static void dump_domains(unsigned char key)
+static void cf_check dump_domains(unsigned char key)
 {
     struct domain *d;
     const struct sched_unit *unit;
@@ -372,7 +375,7 @@ static void cf_check read_clocks_slave(void *unused)
     local_irq_enable();
 }
 
-static void read_clocks(unsigned char key)
+static void cf_check read_clocks(unsigned char key)
 {
     unsigned int cpu = smp_processor_id(), min_stime_cpu, max_stime_cpu;
     unsigned int min_cycles_cpu, max_cycles_cpu;
@@ -461,7 +464,8 @@ static void cf_check run_all_nonirq_keyhandlers(void *unused)
 static DECLARE_TASKLET(run_all_keyhandlers_tasklet,
                        run_all_nonirq_keyhandlers, NULL);
 
-static void run_all_keyhandlers(unsigned char key, struct cpu_user_regs *regs)
+static void cf_check run_all_keyhandlers(
+    unsigned char key, struct cpu_user_regs *regs)
 {
     struct keyhandler *h;
     unsigned int k;
@@ -494,7 +498,7 @@ static void do_debugger_trap_fatal(struct cpu_user_regs *regs)
     barrier();
 }
 
-static void do_debug_key(unsigned char key, struct cpu_user_regs *regs)
+static void cf_check do_debug_key(unsigned char key, struct cpu_user_regs *regs)
 {
     printk("'%c' pressed -> trapping into debugger\n", key);
     if ( regs )
@@ -503,7 +507,8 @@ static void do_debug_key(unsigned char key, struct cpu_user_regs *regs)
         run_in_exception_handler(do_debugger_trap_fatal);
 }
 
-static void do_toggle_alt_key(unsigned char key, struct cpu_user_regs *regs)
+static void cf_check do_toggle_alt_key(
+    unsigned char key, struct cpu_user_regs *regs)
 {
     alt_key_handling = !alt_key_handling;
     printk("'%c' pressed -> using %s key handling\n", key,
diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index 4e1c29ab7879..e8714920dc8f 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -2068,7 +2068,7 @@ static const char *state2str(unsigned int state)
     return names[state];
 }
 
-static void livepatch_printall(unsigned char key)
+static void cf_check livepatch_printall(unsigned char key)
 {
     struct payload *data;
     const void *binary_id = NULL;
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index a95dd14f63b4..906bfb6679df 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2528,7 +2528,7 @@ unsigned long avail_node_heap_pages(unsigned int nodeid)
 }
 
 
-static void pagealloc_info(unsigned char key)
+static void cf_check pagealloc_info(unsigned char key)
 {
     unsigned int zone = MEMZONE_XEN;
     unsigned long n, total = 0;
@@ -2578,7 +2578,7 @@ void scrub_one_page(struct page_info *pg)
 #endif
 }
 
-static void dump_heap(unsigned char key)
+static void cf_check dump_heap(unsigned char key)
 {
     s_time_t      now = NOW();
     int           i, j;
diff --git a/xen/common/perfc.c b/xen/common/perfc.c
index 3abe35892a83..7400667bf0c4 100644
--- a/xen/common/perfc.c
+++ b/xen/common/perfc.c
@@ -28,7 +28,7 @@ static const struct {
 
 DEFINE_PER_CPU(perfc_t[NUM_PERFCOUNTERS], perfcounters);
 
-void perfc_printall(unsigned char key)
+void cf_check perfc_printall(unsigned char key)
 {
     unsigned int i, j;
     s_time_t now = NOW();
@@ -115,7 +115,7 @@ void perfc_printall(unsigned char key)
     }
 }
 
-void perfc_reset(unsigned char key)
+void cf_check perfc_reset(unsigned char key)
 {
     unsigned int i, j;
     s_time_t now = NOW();
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index 07f984a659cd..a6da4970506a 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -956,7 +956,7 @@ const cpumask_t *cpupool_valid_cpus(const struct cpupool *pool)
     return pool->cpu_valid;
 }
 
-void dump_runq(unsigned char key)
+void cf_check dump_runq(unsigned char key)
 {
     s_time_t         now = NOW();
     struct cpupool *c;
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 5ce7e3363863..25bfbf3c47f7 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -393,7 +393,7 @@ static void spinlock_profile_print_elem(struct lock_profile *data,
            data->lock_cnt, data->time_hold, data->block_cnt, data->time_block);
 }
 
-void spinlock_profile_printall(unsigned char key)
+void cf_check spinlock_profile_printall(unsigned char key)
 {
     s_time_t now = NOW();
     s_time_t diff;
@@ -413,7 +413,7 @@ static void spinlock_profile_reset_elem(struct lock_profile *data,
     data->time_block = 0;
 }
 
-void spinlock_profile_reset(unsigned char key)
+void cf_check spinlock_profile_reset(unsigned char key)
 {
     s_time_t now = NOW();
 
diff --git a/xen/common/timer.c b/xen/common/timer.c
index 700f191a70b4..9b5016d5ed82 100644
--- a/xen/common/timer.c
+++ b/xen/common/timer.c
@@ -546,7 +546,7 @@ static void dump_timer(struct timer *t, s_time_t now)
            (t->expires - now) / 1000, t, t->function, t->data);
 }
 
-static void dump_timerq(unsigned char key)
+static void cf_check dump_timerq(unsigned char key)
 {
     struct timer  *t;
     struct timers *ts;
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index d74b65f6bf23..380765ab02fd 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -280,7 +280,7 @@ static int *__read_mostly upper_thresh_adj = &xenlog_upper_thresh;
 static int *__read_mostly lower_thresh_adj = &xenlog_lower_thresh;
 static const char *__read_mostly thresh_adj = "standard";
 
-static void do_toggle_guest(unsigned char key, struct cpu_user_regs *regs)
+static void cf_check do_toggle_guest(unsigned char key, struct cpu_user_regs *regs)
 {
     if ( upper_thresh_adj == &xenlog_upper_thresh )
     {
@@ -307,13 +307,13 @@ static void do_adj_thresh(unsigned char key)
            loglvl_str(*upper_thresh_adj));
 }
 
-static void do_inc_thresh(unsigned char key, struct cpu_user_regs *regs)
+static void cf_check do_inc_thresh(unsigned char key, struct cpu_user_regs *regs)
 {
     ++*lower_thresh_adj;
     do_adj_thresh(key);
 }
 
-static void do_dec_thresh(unsigned char key, struct cpu_user_regs *regs)
+static void cf_check do_dec_thresh(unsigned char key, struct cpu_user_regs *regs)
 {
     if ( *lower_thresh_adj )
         --*lower_thresh_adj;
@@ -424,7 +424,7 @@ void console_serial_puts(const char *s, size_t nr)
     pv_console_puts(s, nr);
 }
 
-static void dump_console_ring_key(unsigned char key)
+static void cf_check dump_console_ring_key(unsigned char key)
 {
     uint32_t idx, len, sofar, c;
     unsigned int order;
diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index 04517c1a024c..99be9aafcc53 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -297,7 +297,7 @@ unsigned int amd_iommu_read_ioapic_from_ire(
 int amd_iommu_msi_msg_update_ire(
     struct msi_desc *msi_desc, struct msi_msg *msg);
 int amd_setup_hpet_msi(struct msi_desc *msi_desc);
-void amd_iommu_dump_intremap_tables(unsigned char key);
+void cf_check amd_iommu_dump_intremap_tables(unsigned char key);
 
 extern struct ioapic_sbdf {
     u16 bdf, seg;
diff --git a/xen/drivers/passthrough/amd/iommu_intr.c b/xen/drivers/passthrough/amd/iommu_intr.c
index b166a0466654..e7804413c7f4 100644
--- a/xen/drivers/passthrough/amd/iommu_intr.c
+++ b/xen/drivers/passthrough/amd/iommu_intr.c
@@ -844,7 +844,7 @@ static int dump_intremap_mapping(const struct amd_iommu *iommu,
     return 0;
 }
 
-void amd_iommu_dump_intremap_tables(unsigned char key)
+void cf_check amd_iommu_dump_intremap_tables(unsigned char key)
 {
     if ( !shared_intremap_table )
     {
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 4eea296c8c7c..a2fc1969f402 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -22,8 +22,6 @@
 #include <xen/keyhandler.h>
 #include <xsm/xsm.h>
 
-static void iommu_dump_page_tables(unsigned char key);
-
 unsigned int __read_mostly iommu_dev_iotlb_timeout = 1000;
 integer_param("iommu_dev_iotlb_timeout", iommu_dev_iotlb_timeout);
 
@@ -224,6 +222,31 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
     return 0;
 }
 
+static void cf_check iommu_dump_page_tables(unsigned char key)
+{
+    struct domain *d;
+
+    ASSERT(iommu_enabled);
+
+    rcu_read_lock(&domlist_read_lock);
+
+    for_each_domain(d)
+    {
+        if ( is_hardware_domain(d) || !is_iommu_enabled(d) )
+            continue;
+
+        if ( iommu_use_hap_pt(d) )
+        {
+            printk("%pd sharing page tables\n", d);
+            continue;
+        }
+
+        dom_iommu(d)->platform_ops->dump_page_tables(d);
+    }
+
+    rcu_read_unlock(&domlist_read_lock);
+}
+
 void __hwdom_init iommu_hwdom_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
@@ -584,31 +607,6 @@ bool_t iommu_has_feature(struct domain *d, enum iommu_feature feature)
     return is_iommu_enabled(d) && test_bit(feature, dom_iommu(d)->features);
 }
 
-static void iommu_dump_page_tables(unsigned char key)
-{
-    struct domain *d;
-
-    ASSERT(iommu_enabled);
-
-    rcu_read_lock(&domlist_read_lock);
-
-    for_each_domain(d)
-    {
-        if ( is_hardware_domain(d) || !is_iommu_enabled(d) )
-            continue;
-
-        if ( iommu_use_hap_pt(d) )
-        {
-            printk("%pd sharing page tables\n", d);
-            continue;
-        }
-
-        dom_iommu(d)->platform_ops->dump_page_tables(d);
-    }
-
-    rcu_read_unlock(&domlist_read_lock);
-}
-
 /*
  * Local variables:
  * mode: C
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index e75c82d11bd6..81ab09649cd0 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1282,7 +1282,7 @@ static int _dump_pci_devices(struct pci_seg *pseg, void *arg)
     return 0;
 }
 
-static void dump_pci_devices(unsigned char ch)
+static void cf_check dump_pci_devices(unsigned char ch)
 {
     printk("==== PCI devices ====\n");
     pcidevs_lock();
diff --git a/xen/drivers/passthrough/vtd/extern.h b/xen/drivers/passthrough/vtd/extern.h
index 6fb00a25c302..8c5e8397fd7e 100644
--- a/xen/drivers/passthrough/vtd/extern.h
+++ b/xen/drivers/passthrough/vtd/extern.h
@@ -31,7 +31,7 @@ extern const struct iommu_init_ops intel_iommu_init_ops;
 
 void print_iommu_regs(struct acpi_drhd_unit *drhd);
 void print_vtd_entries(struct vtd_iommu *iommu, int bus, int devfn, u64 gmfn);
-keyhandler_fn_t vtd_dump_iommu_info;
+keyhandler_fn_t cf_check vtd_dump_iommu_info;
 
 bool intel_iommu_supports_eim(void);
 int intel_iommu_enable_eim(void);
diff --git a/xen/drivers/passthrough/vtd/utils.c b/xen/drivers/passthrough/vtd/utils.c
index 56dfdff9bd0d..47922dc8e813 100644
--- a/xen/drivers/passthrough/vtd/utils.c
+++ b/xen/drivers/passthrough/vtd/utils.c
@@ -154,7 +154,7 @@ void print_vtd_entries(struct vtd_iommu *iommu, int bus, int devfn, u64 gmfn)
     } while ( --level );
 }
 
-void vtd_dump_iommu_info(unsigned char key)
+void cf_check vtd_dump_iommu_info(unsigned char key)
 {
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
diff --git a/xen/include/xen/perfc.h b/xen/include/xen/perfc.h
index 6846e7119fa3..bb010b0aae93 100644
--- a/xen/include/xen/perfc.h
+++ b/xen/include/xen/perfc.h
@@ -96,8 +96,8 @@ DECLARE_PER_CPU(perfc_t[NUM_PERFCOUNTERS], perfcounters);
 struct xen_sysctl_perfc_op;
 int perfc_control(struct xen_sysctl_perfc_op *);
 
-extern void perfc_printall(unsigned char key);
-extern void perfc_reset(unsigned char key);
+extern void cf_check perfc_printall(unsigned char key);
+extern void cf_check perfc_reset(unsigned char key);
 
     
 #else /* CONFIG_PERF_COUNTERS */
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 37f78cc4c4c9..67b0f6b86853 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1145,7 +1145,7 @@ int cpupool_move_domain(struct domain *d, struct cpupool *c);
 int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op);
 unsigned int cpupool_get_id(const struct domain *d);
 const cpumask_t *cpupool_valid_cpus(const struct cpupool *pool);
-extern void dump_runq(unsigned char key);
+extern void cf_check dump_runq(unsigned char key);
 
 void arch_do_physinfo(struct xen_sysctl_physinfo *pi);
 
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index 9fa4e600c1f7..961891bea4d5 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -129,8 +129,8 @@ void _lock_profile_deregister_struct(int32_t, struct lock_profile_qhead *);
     _lock_profile_deregister_struct(type, &((ptr)->profile_head))
 
 extern int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc);
-extern void spinlock_profile_printall(unsigned char key);
-extern void spinlock_profile_reset(unsigned char key);
+extern void cf_check spinlock_profile_printall(unsigned char key);
+extern void cf_check spinlock_profile_reset(unsigned char key);
 
 #else
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:04:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:04:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232746.403595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqau9-0002zg-Hn; Fri, 26 Nov 2021 13:04:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232746.403595; Fri, 26 Nov 2021 13:04:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqau9-0002zZ-ED; Fri, 26 Nov 2021 13:04:41 +0000
Received: by outflank-mailman (input) for mailman id 232746;
 Fri, 26 Nov 2021 13:04:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqau8-0002zD-G7
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:40 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 689e494e-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:04:38 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 689e494e-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931878;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=d55qm7ys4wdtbliZHZYDOvFk3m78eojCdUL7/+gEI38=;
  b=ADWgvW3bWisRnX1HgQM2480yXL47vAfyhJ1pQ+puoAnI5PVlMmWYlkRj
   6aDiI0LqVKTnLhwoEDTIpFa1Ujxu6hBjaXhGbqWJiXNfthHI2NUx9hb2L
   7+iXUhSBp6Zkz5iOwub77pV344A7nQtU2arIJp7xbDUAMlBQCY40E8zWe
   I=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: eMfjpNUtZLp4DNM7oTeCqCyK0Y+kMb5uhCXCmKqqA29E7UXYX6nYCm1LTAnkujYlOV8RavWB6r
 Oqt9CbiWeoq1c407E1mk5kNnHYAAxdLvmnfmxsFam97CBv1bey2QUOuCxR4KVBX/4aWA2jyRxk
 Jka2q3cNVxLEwSyUBmc+FP7kMs5KWvhwctvrrLl/52293Yq/z5sIdddJmFdD4xcuKWHLh4Vtus
 IeOTCH47y6HfmsPq3cj4ksAb/0dLHKoNkacPQxHu15Pq037tLRIayd8pFsuU2ACBNtnbpv6W1b
 jmsPgaSI1b5F49D2iE1KrRtl
X-SBRS: 5.1
X-MesageID: 59063923
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:zPK6GaxIIqoa8mrV+QF6t+fCwSrEfRIJ4+MujC+fZmUNrF6WrkUEx
 mQYUWiHafmJZGP3c9xybNuz/UJV7JHTyt9nGwVvrCAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRn2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt/Nh5
 NUS8qCtcB4kNJz2sbQNUSQFNC4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY25EWQ62PP
 ZFxhTxHUU/pMxFSHVorGps7ubyYql30VTRBpwfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krE4mD4DxcyJNGZjz2f/RqEnfTTlCn2XIYTEryQ9fNwhlCXgGsJB3U+RVa95PW0lEO6c9ZeM
 FAPvDojq7Ao806mRcW7WAe3yFamlBMBX9tbE8Uh9RqAjKHT5m6k6nMsF2AbLoZ87YlvGGJsh
 gThc87V6SJHk625SS3ayqqttD64CBI8fX8AWHIjQl5QizX8m70bghXKR9dlNae6iNzpBD39q
 wy3QDgCa6Y71pBSifjilbzTq3f1/8WSEFZpjunCdjv9tlsRWWKzW2C/BbE3B95kJZ3RcFSOt
 WNsdyO2vLFXVsHleMBgrYww8FCVCxStbGK0bb1HRcBJG9GRF5iLJts4DNZWfhoBDyr8UWW1C
 HI/QCsIjHOpAFOkbLVsf6W6ANkwwK7rGLzND66PMYoQP8cgKFHbp0mCgHJ8OUi2yyDAdollZ
 P+mnTuEVy5GWcyLMhLqLwvi7VPb7n9nnj6CLXwK5x+mzaCfdBaopUQtazOzghQCxPrc+m39q
 o8HX+PTkkk3eLCuM0H/rN9IRXhXfCdTOHwDg5EOHgJ1ClE9Qz9J5j646e5JRrGJaIwJzLqVp
 S/kBRcDoLc97FWeQTi3hrlYQOuHdf5CQbgTZ0TA5H6khCouZ5iB9qAae8dldLUr7rU7n/V1U
 +MEa4OLBfEWEmbL/DEUbJ/cqo1+dUv02VLSbnT9ODVvLYR9QwHp+8P/ele9/ic5ESfq59A1p
 Ket112HTMNbFRhiFsvfdNmm00i14SoGgOt3UkaReotTdUzg/ZJEMSv0ivNrccgAJQ+anmmR1
 hqMAAderu7I+tdn/N7MjKGCjoGoD+ohQRYKQziFte67bHCI8HCizIlMVPezUQrcDG6kqr+/Y
 eh1zu3nNKFVllh9rIchQa1gyrgz5oWzquYCnBhkBnjCc3+iFqhkfiudxcBKu6BAmu1ZtA+xV
 h7d89VWI+zUasbsEVpXLws5dOWTk/oTn2CKv/gyJUz74g5x/aaGDhoOb0Xd1nQFIesnKp4hz
 McgpNUSul62hRcdO9qbijxZqjaXJXsaXqR77pwXDecHUObwJo2utXAENhLL3Q==
IronPort-HdrOrdr: A9a23:zY9E4qEMFK0rMObxpLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59063923"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 10/65] xen: Annotate fnptr targets from init_timer()
Date: Fri, 26 Nov 2021 12:33:51 +0000
Message-ID: <20211126123446.32324-11-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |  2 +-
 xen/arch/x86/cpu/mcheck/non-fatal.c    |  2 +-
 xen/arch/x86/hvm/pmtimer.c             |  2 +-
 xen/arch/x86/hvm/rtc.c                 |  6 +++---
 xen/arch/x86/hvm/viridian/time.c       |  2 +-
 xen/arch/x86/hvm/vpt.c                 |  2 +-
 xen/arch/x86/irq.c                     |  4 ++--
 xen/arch/x86/nmi.c                     |  2 +-
 xen/arch/x86/time.c                    |  4 ++--
 xen/common/rcupdate.c                  |  2 +-
 xen/common/sched/core.c                | 18 +++++++++---------
 xen/common/sched/credit.c              | 10 ++++------
 xen/common/sched/credit2.c             |  2 +-
 xen/common/sched/rt.c                  |  5 +++--
 xen/drivers/char/ehci-dbgp.c           |  2 +-
 xen/drivers/char/ns16550.c             |  6 +++---
 xen/drivers/cpufreq/cpufreq_ondemand.c |  2 +-
 17 files changed, 36 insertions(+), 37 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index 6e8901530a69..da0bf85f0223 100644
--- a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
+++ b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
@@ -127,7 +127,7 @@ static void mce_amd_checkregs(void *info)
  * multiple correctable errors between two polls. In that case,
  * increase polling frequency higher than normal.
  */
-static void mce_amd_work_fn(void *data)
+static void cf_check mce_amd_work_fn(void *data)
 {
 	on_each_cpu(mce_amd_checkregs, data, 1);
 
diff --git a/xen/arch/x86/cpu/mcheck/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index 2679c220a8a2..f7e411c0870e 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -67,7 +67,7 @@ static void mce_checkregs (void *info)
 	}
 }
 
-static void mce_work_fn(void *data)
+static void cf_check mce_work_fn(void *data)
 { 
 	on_each_cpu(mce_checkregs, NULL, 1);
 
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 97b9e41712fa..808819d1de91 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -124,7 +124,7 @@ static void pmt_update_time(PMTState *s)
 /* This function should be called soon after each time the MSB of the
  * pmtimer register rolls over, to make sure we update the status
  * registers and SCI at least once per rollover */
-static void pmt_timer_callback(void *opaque)
+static void cf_check pmt_timer_callback(void *opaque)
 {
     PMTState *s = opaque;
     uint32_t pmt_cycles_until_flip;
diff --git a/xen/arch/x86/hvm/rtc.c b/xen/arch/x86/hvm/rtc.c
index 3150f5f1479b..09d3501276bc 100644
--- a/xen/arch/x86/hvm/rtc.c
+++ b/xen/arch/x86/hvm/rtc.c
@@ -217,7 +217,7 @@ static void check_update_timer(RTCState *s)
         s->use_timer = 0;
 }
 
-static void rtc_update_timer(void *opaque)
+static void cf_check rtc_update_timer(void *opaque)
 {
     RTCState *s = opaque;
 
@@ -230,7 +230,7 @@ static void rtc_update_timer(void *opaque)
     spin_unlock(&s->lock);
 }
 
-static void rtc_update_timer2(void *opaque)
+static void cf_check rtc_update_timer2(void *opaque)
 {
     RTCState *s = opaque;
 
@@ -421,7 +421,7 @@ static void alarm_timer_update(RTCState *s)
     }
 }
 
-static void rtc_alarm_cb(void *opaque)
+static void cf_check rtc_alarm_cb(void *opaque)
 {
     RTCState *s = opaque;
 
diff --git a/xen/arch/x86/hvm/viridian/time.c b/xen/arch/x86/hvm/viridian/time.c
index 24ff117edb20..b56fd6766292 100644
--- a/xen/arch/x86/hvm/viridian/time.c
+++ b/xen/arch/x86/hvm/viridian/time.c
@@ -126,7 +126,7 @@ static void stop_stimer(struct viridian_stimer *vs)
     vs->started = false;
 }
 
-static void stimer_expire(void *data)
+static void cf_check stimer_expire(void *data)
 {
     struct viridian_stimer *vs = data;
     struct vcpu *v = vs->v;
diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c
index 6fdc3e19fe8c..cb1d81bf9e82 100644
--- a/xen/arch/x86/hvm/vpt.c
+++ b/xen/arch/x86/hvm/vpt.c
@@ -271,7 +271,7 @@ void pt_restore_timer(struct vcpu *v)
     pt_vcpu_unlock(v);
 }
 
-static void pt_timer_fn(void *data)
+static void cf_check pt_timer_fn(void *data)
 {
     struct periodic_time *pt = data;
 
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index bcf46cd54d16..f9c808455535 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -935,7 +935,7 @@ void alloc_direct_apic_vector(
     spin_unlock(&lock);
 }
 
-static void irq_ratelimit_timer_fn(void *data)
+static void cf_check irq_ratelimit_timer_fn(void *data)
 {
     struct irq_desc *desc, *tmp;
     unsigned long flags;
@@ -1129,7 +1129,7 @@ static inline void clear_pirq_eoi(struct domain *d, unsigned int irq)
 
 static void set_eoi_ready(void *data);
 
-static void irq_guest_eoi_timer_fn(void *data)
+static void cf_check irq_guest_eoi_timer_fn(void *data)
 {
     struct irq_desc *desc = data;
     unsigned int i, irq = desc - irq_desc;
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index 5c101a9f97b3..c8ae4a5d7460 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -211,7 +211,7 @@ void __init check_nmi_watchdog(void)
     return;
 }
 
-static void nmi_timer_fn(void *unused)
+static void cf_check nmi_timer_fn(void *unused)
 {
     this_cpu(nmi_timer_ticks)++;
     set_timer(&this_cpu(nmi_timer), NOW() + MILLISECS(1000));
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index 4ab0cf6731e3..b60c614bab6e 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -810,7 +810,7 @@ static s_time_t __read_platform_stime(u64 platform_time)
     return (stime_platform_stamp + scale_delta(diff, &plt_scale));
 }
 
-static void plt_overflow(void *unused)
+static void cf_check plt_overflow(void *unused)
 {
     int i;
     u64 count;
@@ -1850,7 +1850,7 @@ static void time_calibration_nop_rendezvous(void *rv)
 static void (*time_calibration_rendezvous_fn)(void *) =
     time_calibration_std_rendezvous;
 
-static void time_calibration(void *unused)
+static void cf_check time_calibration(void *unused)
 {
     struct calibration_rendezvous r = {
         .semaphore = ATOMIC_INIT(0)
diff --git a/xen/common/rcupdate.c b/xen/common/rcupdate.c
index 2ec5606de5dd..f9dd2584a8b7 100644
--- a/xen/common/rcupdate.c
+++ b/xen/common/rcupdate.c
@@ -575,7 +575,7 @@ static void rcu_idle_timer_stop(void)
         stop_timer(&rdp->idle_timer);
 }
 
-static void rcu_idle_timer_handler(void* data)
+static void cf_check rcu_idle_timer_handler(void* data)
 {
     perfc_incr(rcu_idle_timer);
 
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 4a79971a1d45..cf1ba01b4d87 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -71,10 +71,10 @@ cpumask_t sched_res_mask;
 static DEFINE_SPINLOCK(sched_free_cpu_lock);
 
 /* Various timer handlers. */
-static void s_timer_fn(void *unused);
-static void vcpu_periodic_timer_fn(void *data);
-static void vcpu_singleshot_timer_fn(void *data);
-static void poll_timer_fn(void *data);
+static void cf_check s_timer_fn(void *unused);
+static void cf_check vcpu_periodic_timer_fn(void *data);
+static void cf_check vcpu_singleshot_timer_fn(void *data);
+static void cf_check poll_timer_fn(void *data);
 
 /* This is global for now so that private implementations can reach it */
 DEFINE_PER_CPU_READ_MOSTLY(struct sched_resource *, sched_res);
@@ -1535,7 +1535,7 @@ long vcpu_yield(void)
     return 0;
 }
 
-static void domain_watchdog_timeout(void *data)
+static void cf_check domain_watchdog_timeout(void *data)
 {
     struct domain *d = data;
 
@@ -2697,28 +2697,28 @@ static void schedule(void)
 }
 
 /* The scheduler timer: force a run through the scheduler */
-static void s_timer_fn(void *unused)
+static void cf_check s_timer_fn(void *unused)
 {
     raise_softirq(SCHEDULE_SOFTIRQ);
     SCHED_STAT_CRANK(sched_irq);
 }
 
 /* Per-VCPU periodic timer function: sends a virtual timer interrupt. */
-static void vcpu_periodic_timer_fn(void *data)
+static void cf_check vcpu_periodic_timer_fn(void *data)
 {
     struct vcpu *v = data;
     vcpu_periodic_timer_work(v);
 }
 
 /* Per-VCPU single-shot timer function: sends a virtual timer interrupt. */
-static void vcpu_singleshot_timer_fn(void *data)
+static void cf_check vcpu_singleshot_timer_fn(void *data)
 {
     struct vcpu *v = data;
     send_timer_event(v);
 }
 
 /* SCHEDOP_poll timeout callback. */
-static void poll_timer_fn(void *data)
+static void cf_check poll_timer_fn(void *data)
 {
     struct vcpu *v = data;
 
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index d0aa017c643e..5635271f6fea 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -230,8 +230,8 @@ struct csched_private {
     struct timer master_ticker;
 };
 
-static void csched_tick(void *_cpu);
-static void csched_acct(void *dummy);
+static void cf_check csched_tick(void *_cpu);
+static void cf_check csched_acct(void *dummy);
 
 static inline int
 __unit_on_runq(const struct csched_unit *svc)
@@ -1356,8 +1356,7 @@ csched_runq_sort(struct csched_private *prv, unsigned int cpu)
     pcpu_schedule_unlock_irqrestore(lock, flags, cpu);
 }
 
-static void
-csched_acct(void* dummy)
+static void cf_check csched_acct(void* dummy)
 {
     struct csched_private *prv = dummy;
     unsigned long flags;
@@ -1563,8 +1562,7 @@ csched_acct(void* dummy)
     set_timer( &prv->master_ticker, NOW() + prv->tslice);
 }
 
-static void
-csched_tick(void *_cpu)
+static void cf_check csched_tick(void *_cpu)
 {
     unsigned int cpu = (unsigned long)_cpu;
     const struct sched_resource *sr = get_sched_res(cpu);
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index a5f073cda51e..d96e2749ddfb 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -2072,7 +2072,7 @@ static inline void do_replenish(struct csched2_dom *sdom)
     sdom->budget += sdom->tot_budget;
 }
 
-static void replenish_domain_budget(void* data)
+static void cf_check replenish_domain_budget(void *data)
 {
     struct csched2_dom *sdom = data;
     unsigned long flags;
diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index c24cd2ac3200..5ea6f01f263c 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -173,7 +173,7 @@
 #define TRC_RTDS_SCHED_TASKLET    TRC_SCHED_CLASS_EVT(RTDS, 5)
 #define TRC_RTDS_SCHEDULE         TRC_SCHED_CLASS_EVT(RTDS, 6)
 
-static void repl_timer_handler(void *data);
+static void cf_check repl_timer_handler(void *data);
 
 /*
  * System-wide private data, include global RunQueue/DepletedQ
@@ -1452,7 +1452,8 @@ rt_dom_cntl(
  * The replenishment timer handler picks units
  * from the replq and does the actual replenishment.
  */
-static void repl_timer_handler(void *data){
+static void cf_check repl_timer_handler(void *data)
+{
     s_time_t now;
     const struct scheduler *ops = data;
     struct rt_private *prv = rt_priv(ops);
diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c
index c893d246defa..a6b57fdf2d19 100644
--- a/xen/drivers/char/ehci-dbgp.c
+++ b/xen/drivers/char/ehci-dbgp.c
@@ -1289,7 +1289,7 @@ static void _ehci_dbgp_poll(struct cpu_user_regs *regs)
     set_timer(&dbgp->timer, NOW() + timeout);
 }
 
-static void ehci_dbgp_poll(void *data)
+static void cf_check ehci_dbgp_poll(void *data)
 {
     poll_port = data;
 #ifdef run_in_exception_handler
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 30596d60d4ed..990cad39fe85 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -111,7 +111,7 @@ struct ns16550_config_param {
 static void enable_exar_enhanced_bits(const struct ns16550 *uart);
 #endif
 
-static void ns16550_delayed_resume(void *data);
+static void cf_check ns16550_delayed_resume(void *data);
 
 static u8 ns_read_reg(const struct ns16550 *uart, unsigned int reg)
 {
@@ -229,7 +229,7 @@ static void __ns16550_poll(struct cpu_user_regs *regs)
     set_timer(&uart->timer, NOW() + MILLISECS(uart->timeout_ms));
 }
 
-static void ns16550_poll(void *data)
+static void cf_check ns16550_poll(void *data)
 {
     this_cpu(poll_port) = data;
 #ifdef run_in_exception_handler
@@ -532,7 +532,7 @@ static void _ns16550_resume(struct serial_port *port)
 }
 
 static int delayed_resume_tries;
-static void ns16550_delayed_resume(void *data)
+static void cf_check ns16550_delayed_resume(void *data)
 {
     struct serial_port *port = data;
     struct ns16550 *uart = port->uart;
diff --git a/xen/drivers/cpufreq/cpufreq_ondemand.c b/xen/drivers/cpufreq/cpufreq_ondemand.c
index cabd9ffa8886..ba03eaa2336d 100644
--- a/xen/drivers/cpufreq/cpufreq_ondemand.c
+++ b/xen/drivers/cpufreq/cpufreq_ondemand.c
@@ -172,7 +172,7 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
     }
 }
 
-static void do_dbs_timer(void *dbs)
+static void cf_check do_dbs_timer(void *dbs)
 {
     struct cpu_dbs_info_s *dbs_info = (struct cpu_dbs_info_s *)dbs;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:04:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:04:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232747.403606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauA-0003Fb-Tk; Fri, 26 Nov 2021 13:04:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232747.403606; Fri, 26 Nov 2021 13:04:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauA-0003FS-Pm; Fri, 26 Nov 2021 13:04:42 +0000
Received: by outflank-mailman (input) for mailman id 232747;
 Fri, 26 Nov 2021 13:04:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauA-0002zD-1o
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:42 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69c06862-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:04:40 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69c06862-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931880;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=0JgbBrfAwQwtdb0IBLWk+TvY2zX477eVRbHMu7fiRPk=;
  b=cfDdmaCp21C/vy0kXf2V5fcMPtcUgfKblMaOT9X5gHVVa3NNjmn76KLB
   qccYmsEgSGkntgRZsIBHkLKXwjMrIIk4zJZA/P+ffR7DScI10Q7cJ7v92
   o4W2Qv0bWhIAl1Ei5FFRUpaQmKVDjrS5kbMwhXIO2lEszYvqFUV1Qu74i
   o=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: eAIUH47b1AWNmKD+/uw/I5BRdAKmPRFEGpwRUdKuAX1OK3OTmo4QQDh5Wmq9PZYv1kpCMDbf4O
 YPYjbtRiBIlcNXnM2AE3KKnBigEPttpKhkTYyC04swgtNCRde37Ia4CTQb0m2Alo7DRbq9sQzC
 InVIzqjU8TMPajBwsjra0dlkM2PhqTVQRvygssvqM602L3e0mEE7HVLP4Zet3HOaJ59iy2x6Xq
 QoxqI9XKFksU/ZXAcntxuKbWQwWFQRXKKBhdlcCFc619q2y0cjOr92seqMug/rC3yxPURlH5Es
 Ej9eTbsqkI3QDoeoiw2Nitcc
X-SBRS: 5.1
X-MesageID: 58695923
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Bt187aIbe/7jiJdtFE+RJJIlxSXFcZb7ZxGr2PjKsXjdYENS02BVn
 GMeUGmFP6yDZDOkf9kibd6yoRgF75SAz4dmGwZlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Cg9Jwk
 stwvqe8VCYsJ5LPieQiSCdhRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpg2JETTKyFD
 yYfQWVxd0rJeyVrA3YGVZEyl8iPonD+TxQN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wp
 H/C/mn/KgEXMpqY0zXt2mm3mubFkCf/WYQTPL617PhnhBuU3GN7IA0bUx63rOe0jma6WslDM
 AoE9yw2t68w+Ue3CN7nUHWQglSJoxodUNp4CPAh5UeGza+83uqCLjFaFHgbMoVg7ZJoA2xxv
 rOUoz/3LTdzsrzPV0+WzbuJjDarBisELVAZWxZRGGPp/OLfiI00ixvOSPNqH6i0ksD5FFnM/
 tyakMQtr+5N1JBWjs1X6XiC2mvx/caREmbZ8y2OBjr9hj6VcrJJcGBBBbLzyf9bZLiUQVCa1
 JTvs5jPtbteZX1hecHkfQnsIF1Lz6raWNE/qQQ2d3XEy9hL0yX4FWy3yGsjTHqFyu5eJVfUj
 Lb74Gu9HqN7MnqwdrNQaImsEcksxqWIPY27Da+EMIcRM8QvKFTvEMRSiai4hDuFfK8Ey/xXB
 HtmWZz0USZy5VpPkFJauNvxIZd0n3tjlAs/tLjwzgi90Kr2WZJmYextDbd6VchgtPnsiFyMq
 753bpLWoz0CALyWSnSGquY7cAFVRUXX8Lir8qS7gMbYeVE4cIzgYteMqY4cl3tNw/4Iy7yWp
 y7lASe1CjPX3BX6FOlDUVg7AJuHYHq1hStT0fUEMQn61n49T5yo6atDJZI7caN+rL5ozOJuT
 ulDcMKFW6wdRjPC8jUbTJ/8sI09K0j72VPQZ3KoMGolYpptZw3V4du4LAHhwzYDU3isvswkr
 rz+ig6CGcgfRx5vBdr9Ye60yw/jpmAUne9/BhOaItRadEj23pJtLij90q0+L80WcE2RzTqGz
 QeGRxwfoLCV8YMy9dDIg4GCrpuoTLQiThYLQTGD4O/vZyfA/2elzYtRa8qyfGjQBDHu5aGvR
 eRJ1PWgYvcJq0lH7thnGLFxwKNgu9a2/+1Gzh5pFWngZkiwDu8yOWGP2MRCu/EfxrJdvgfqC
 EuD9sMDZOeMMcLhVlUQOBAkfqKI0vRNwmve6vE8IUPb4i5r/eXYDRUObkfU0CENfqFoNI4Fw
 Ps6vJ9E4gOyvRMmL9Kag30G7G+LNHEBD/0qu5xy7FUHUeb3JoWuuaDhNxI=
IronPort-HdrOrdr: A9a23:nwVYCalvYAar/SJVv27Xs/hqQtTpDfIU3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE8Qr5OUtQ/+xoV5PhfZqxz/JICMwqTNKftWrdyQyVxeNZnOjfKlTbckWUnINgPO
 VbAsxD4bXLfCBHZK3BgTVQfexO/DD+ytHLudvj
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58695923"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 24/65] xen/video: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:05 +0000
Message-ID: <20211126123446.32324-25-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/video/lfb.c  | 4 ++--
 xen/drivers/video/lfb.h  | 4 ++--
 xen/drivers/video/vesa.c | 4 ++--
 xen/drivers/video/vga.c  | 6 +++---
 4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/xen/drivers/video/lfb.c b/xen/drivers/video/lfb.c
index 75b749b3303b..48c66f8acf10 100644
--- a/xen/drivers/video/lfb.c
+++ b/xen/drivers/video/lfb.c
@@ -53,7 +53,7 @@ static void lfb_show_line(
 }
 
 /* Fast mode which redraws all modified parts of a 2D text buffer. */
-void lfb_redraw_puts(const char *s, size_t nr)
+void cf_check lfb_redraw_puts(const char *s, size_t nr)
 {
     unsigned int i, min_redraw_y = lfb.ypos;
 
@@ -98,7 +98,7 @@ void lfb_redraw_puts(const char *s, size_t nr)
 }
 
 /* Slower line-based scroll mode which interacts better with dom0. */
-void lfb_scroll_puts(const char *s, size_t nr)
+void cf_check lfb_scroll_puts(const char *s, size_t nr)
 {
     unsigned int i;
 
diff --git a/xen/drivers/video/lfb.h b/xen/drivers/video/lfb.h
index e743ccdd6b11..42161402d611 100644
--- a/xen/drivers/video/lfb.h
+++ b/xen/drivers/video/lfb.h
@@ -35,8 +35,8 @@ struct lfb_prop {
     unsigned int text_rows;
 };
 
-void lfb_redraw_puts(const char *s, size_t nr);
-void lfb_scroll_puts(const char *s, size_t nr);
+void cf_check lfb_redraw_puts(const char *s, size_t nr);
+void cf_check lfb_scroll_puts(const char *s, size_t nr);
 void lfb_carriage_return(void);
 void lfb_free(void);
 
diff --git a/xen/drivers/video/vesa.c b/xen/drivers/video/vesa.c
index cb0e443be4dd..155bc09d3237 100644
--- a/xen/drivers/video/vesa.c
+++ b/xen/drivers/video/vesa.c
@@ -17,7 +17,7 @@
 
 #define vlfb_info    vga_console_info.u.vesa_lfb
 
-static void lfb_flush(void);
+static void cf_check lfb_flush(void);
 
 static unsigned char *lfb;
 static const struct font_desc *font;
@@ -177,7 +177,7 @@ void __init vesa_mtrr_init(void)
     } while ( (size_total >= PAGE_SIZE) && (rc == -EINVAL) );
 }
 
-static void lfb_flush(void)
+static void cf_check lfb_flush(void)
 {
     if ( vesa_mtrr == 3 )
         __asm__ __volatile__ ("sfence" : : : "memory");
diff --git a/xen/drivers/video/vga.c b/xen/drivers/video/vga.c
index b7f04d0d97f4..abe295e477b1 100644
--- a/xen/drivers/video/vga.c
+++ b/xen/drivers/video/vga.c
@@ -19,8 +19,8 @@ static int vgacon_keep;
 static unsigned int xpos, ypos;
 static unsigned char *video;
 
-static void vga_text_puts(const char *s, size_t nr);
-static void vga_noop_puts(const char *s, size_t nr) {}
+static void cf_check vga_text_puts(const char *s, size_t nr);
+static void cf_check vga_noop_puts(const char *s, size_t nr) {}
 void (*video_puts)(const char *, size_t nr) = vga_noop_puts;
 
 /*
@@ -175,7 +175,7 @@ void __init video_endboot(void)
     }
 }
 
-static void vga_text_puts(const char *s, size_t nr)
+static void cf_check vga_text_puts(const char *s, size_t nr)
 {
     for ( ; nr > 0; nr--, s++ )
     {
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:04:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:04:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232749.403628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauI-0003t7-JU; Fri, 26 Nov 2021 13:04:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232749.403628; Fri, 26 Nov 2021 13:04:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauI-0003sy-Fb; Fri, 26 Nov 2021 13:04:50 +0000
Received: by outflank-mailman (input) for mailman id 232749;
 Fri, 26 Nov 2021 13:04:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauF-0002zD-UG
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:48 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6bcea279-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:04:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6bcea279-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931884;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version;
  bh=WZas5lwNPdncK4Rv1+NDFQxVxTq8NeKx0mS2Ud2CRLY=;
  b=BSMoRmCUezvx0kP9ek7d3HainlLWKH5VZbzgDvNOwGjlzdVNo4LHdG/E
   cLSLFqg8q2X+FKvkoHwsUvtbgxNWYp5ua9zoOaTx6o6KCO1WWyHCnq/rW
   cbBKt8GGnuxtURJtVGoXhks/Bqpu9MxpGRwAvnJC5eudKgA9dGdf7Ub3l
   s=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: nEBN93GGus7IfEhHzTrohCke4FCpbz9WERilz0ViiYuBqTvFck6GE6WF0vK7jT1zkU2NgkzX/h
 YjxboT6LR+mxjX2XqOdAqHk9X2SSavW7dy5BdQFpcj3cytWEEmUx1gnwlQ4Htm/znfxRUgYEux
 88pSCPLdqgK99JRG3zgaQ1V9V7rPKWSHTEgQwixzMyqYCQWf+OESCZ3bARbeJLgEQhpg3QHc0A
 XOYRKBQxPJ/l0YZGhI2r3+3ez5gX/gm3lSeQRPp6k14y4uiQokWSr0xQWy2lHIcq/Ox+z7Ca5u
 k2j9/ClAUG9jBdXFyJ7tkEze
X-SBRS: 5.1
X-MesageID: 58676316
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:KoOHka7PahteBZs/nQ0NfwxRtOPAchMFZxGqfqrLsTDasY5as4F+v
 mAcWTzQPPuDY2bxftAkPtu/90IF7ZGGyYIwGwFu+CxnHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z9
 u1yqKKUVTgSb5LjouAFdBRpOSVDBPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTaiBO
 ZFAN1KDajyZUjxmZQwNT6sD37+2pnPRLRgDkEys8P9fD2/7k1UqjemF3MDuUtCSXsBUgkawr
 3rL5XjkGQodMMGDyD2D6TSngeqntS/0VI8dDrSQ6u9hgFrVwHcaThIRSzOTsfS/z0KzRd9bA
 0gV4TY167g/8lSxSdvwVAH+p2SL1iPwQPIJTbd8slvUjPOJvUDJXQDoUwKtdvQYjPArexg26
 WTYoPzTASRIvYy/TU+ko+L8QSyJBQAZKmoLZCkhRAQD4sX+rIxbsi8jXuqPA4bu0ISrRGiYL
 ySi6XFn2u5N1ZJjO7CTpAif21qRSo71ohnZD+k9dkas9UtHaYGsfOREAnCLvK8bfO51orRs1
 UXoevRyDshSUvlhdwTXGY3h+Y1FAd7ea1UwZnY1QvEcG8yFoSLLQGypyGgWyL1VGsgFYyT1R
 0TYpBlc4pReVFPzM/QoM9zsVJV2k/S7fTgAahwyRoEVCnSWXFXalByCmGbKhzy9+KTSuf1X1
 WinnTaEUi9BVPUPIMueTOYBy747rh3SNkuILa0XOy+PiOLEDFbMEO9tGALXMogRsfPVyC2Io
 o03H5bblH1ivBjWP3C/HXg7dgtRcxDWxPne9qRqSwJ0ClY8RTx6VaaOmehJlk4Mt/09q9okN
 0qVAidwoGcTT1WeQelTQnw8Or7pQ7hlqnc3YX4lMVqygiBxaoez9qYPMZAweOB/puBkyPd1S
 dgDetmBXasTGmiWpWxFYMmvtpFmeTSqmRmKY3ivbg8gcsMyXAfO4NLlIFfirXFcEiqtuMIii
 LS8zQeHE4EbTgFvAZ+OOvKixl+8p1YHn+d2UxeaK9VfYhy0ooNrNzbwnrk8JMRVcUfPwT6T1
 gC3BxYEpLaS/99poYeR3a3d9tWnCepzGEZeDlL317fuOHmI5HenzK9BTP2MIWLXWlTr9fjwf
 u5S1fz9bqEKxQ4Yr4pmHr935qsi/N+z9aRCxwFpEXiXPVSmDrRsfiuP0cVV7/Afw7ZYvU29W
 16V+8kcMrKMYZu3HFkULQsjT+KCyfBLxWWCsaVreB33tH1t4b6KcUROJB3d2iVSIYx8PJ4h3
 ep86tUd7Bayi0ZyP9uL5syOG79g8pDUv30bi6wn
IronPort-HdrOrdr: A9a23:3opOB6mK/TCE2HZOlPXEpjW3iKzpDfI/3DAbv31ZSRFFG/Fw9v
 re/8jzuiWftN98YhwdcLO7WJVoI0mzyXcd2+B4VotKOjOLhILCFuBfBOXZrAEJ30bFh4tgPW
 AKSdkdNOHN
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676316"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Daniel Smith <dpsmith@apertussolutions.com>
Subject: [PATCH 15/65] xsm: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:33:56 +0000
Message-ID: <20211126123446.32324-16-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
CC: Daniel Smith <dpsmith@apertussolutions.com>
---
 xen/include/xsm/dummy.h  | 211 ++++++++++++++++++++++--------------------
 xen/xsm/flask/flask_op.c |   2 +-
 xen/xsm/flask/hooks.c    | 232 ++++++++++++++++++++++++++---------------------
 xen/xsm/flask/private.h  |   4 +-
 xen/xsm/silo.c           |  24 ++---
 5 files changed, 257 insertions(+), 216 deletions(-)

diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index b024119896e6..58afc1d58973 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -101,46 +101,48 @@ static always_inline int xsm_default_action(
     }
 }
 
-static XSM_INLINE void xsm_security_domaininfo(
+static XSM_INLINE void cf_check xsm_security_domaininfo(
     struct domain *d, struct xen_domctl_getdomaininfo *info)
 {
     return;
 }
 
-static XSM_INLINE int xsm_domain_create(
+static XSM_INLINE int cf_check xsm_domain_create(
     XSM_DEFAULT_ARG struct domain *d, uint32_t ssidref)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_getdomaininfo(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_getdomaininfo(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_domctl_scheduler_op(
+static XSM_INLINE int cf_check xsm_domctl_scheduler_op(
     XSM_DEFAULT_ARG struct domain *d, int cmd)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_sysctl_scheduler_op(XSM_DEFAULT_ARG int cmd)
+static XSM_INLINE int cf_check xsm_sysctl_scheduler_op(XSM_DEFAULT_ARG int cmd)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_set_target(
+static XSM_INLINE int cf_check xsm_set_target(
     XSM_DEFAULT_ARG struct domain *d, struct domain *e)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_domctl(XSM_DEFAULT_ARG struct domain *d, int cmd)
+static XSM_INLINE int cf_check xsm_domctl(
+    XSM_DEFAULT_ARG struct domain *d, int cmd)
 {
     XSM_ASSERT_ACTION(XSM_OTHER);
     switch ( cmd )
@@ -157,91 +159,93 @@ static XSM_INLINE int xsm_domctl(XSM_DEFAULT_ARG struct domain *d, int cmd)
     }
 }
 
-static XSM_INLINE int xsm_sysctl(XSM_DEFAULT_ARG int cmd)
+static XSM_INLINE int cf_check xsm_sysctl(XSM_DEFAULT_ARG int cmd)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_readconsole(XSM_DEFAULT_ARG uint32_t clear)
+static XSM_INLINE int cf_check xsm_readconsole(XSM_DEFAULT_ARG uint32_t clear)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_alloc_security_domain(struct domain *d)
+static XSM_INLINE int cf_check xsm_alloc_security_domain(struct domain *d)
 {
     return 0;
 }
 
-static XSM_INLINE void xsm_free_security_domain(struct domain *d)
+static XSM_INLINE void cf_check xsm_free_security_domain(struct domain *d)
 {
     return;
 }
 
-static XSM_INLINE int xsm_grant_mapref(
+static XSM_INLINE int cf_check xsm_grant_mapref(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2, uint32_t flags)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_grant_unmapref(
+static XSM_INLINE int cf_check xsm_grant_unmapref(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_grant_setup(
+static XSM_INLINE int cf_check xsm_grant_setup(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_grant_transfer(
+static XSM_INLINE int cf_check xsm_grant_transfer(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_grant_copy(
+static XSM_INLINE int cf_check xsm_grant_copy(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_grant_query_size(
+static XSM_INLINE int cf_check xsm_grant_query_size(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_memory_exchange(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_memory_exchange(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_memory_adjust_reservation(
+static XSM_INLINE int cf_check xsm_memory_adjust_reservation(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_memory_stat_reservation(
+static XSM_INLINE int cf_check xsm_memory_stat_reservation(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_console_io(XSM_DEFAULT_ARG struct domain *d, int cmd)
+static XSM_INLINE int cf_check xsm_console_io(
+    XSM_DEFAULT_ARG struct domain *d, int cmd)
 {
     XSM_ASSERT_ACTION(XSM_OTHER);
     if ( d->is_console )
@@ -253,26 +257,27 @@ static XSM_INLINE int xsm_console_io(XSM_DEFAULT_ARG struct domain *d, int cmd)
     return xsm_default_action(XSM_PRIV, d, NULL);
 }
 
-static XSM_INLINE int xsm_profile(XSM_DEFAULT_ARG struct domain *d, int op)
+static XSM_INLINE int cf_check xsm_profile(
+    XSM_DEFAULT_ARG struct domain *d, int op)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, d, NULL);
 }
 
-static XSM_INLINE int xsm_kexec(XSM_DEFAULT_VOID)
+static XSM_INLINE int cf_check xsm_kexec(XSM_DEFAULT_VOID)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_schedop_shutdown(
+static XSM_INLINE int cf_check xsm_schedop_shutdown(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_memory_pin_page(
+static XSM_INLINE int cf_check xsm_memory_pin_page(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2,
     struct page_info *page)
 {
@@ -280,20 +285,20 @@ static XSM_INLINE int xsm_memory_pin_page(
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_claim_pages(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_claim_pages(XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_evtchn_unbound(
+static XSM_INLINE int cf_check xsm_evtchn_unbound(
     XSM_DEFAULT_ARG struct domain *d, struct evtchn *chn, domid_t id2)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_evtchn_interdomain(
+static XSM_INLINE int cf_check xsm_evtchn_interdomain(
     XSM_DEFAULT_ARG struct domain *d1, struct evtchn *chan1, struct domain *d2,
     struct evtchn *chan2)
 {
@@ -301,89 +306,94 @@ static XSM_INLINE int xsm_evtchn_interdomain(
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE void xsm_evtchn_close_post(struct evtchn *chn)
+static XSM_INLINE void cf_check xsm_evtchn_close_post(struct evtchn *chn)
 {
     return;
 }
 
-static XSM_INLINE int xsm_evtchn_send(
+static XSM_INLINE int cf_check xsm_evtchn_send(
     XSM_DEFAULT_ARG struct domain *d, struct evtchn *chn)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, d, NULL);
 }
 
-static XSM_INLINE int xsm_evtchn_status(
+static XSM_INLINE int cf_check xsm_evtchn_status(
     XSM_DEFAULT_ARG struct domain *d, struct evtchn *chn)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_evtchn_reset(
+static XSM_INLINE int cf_check xsm_evtchn_reset(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_alloc_security_evtchns(
+static XSM_INLINE int cf_check xsm_alloc_security_evtchns(
     struct evtchn chn[], unsigned int nr)
 {
     return 0;
 }
 
-static XSM_INLINE void xsm_free_security_evtchns(
+static XSM_INLINE void cf_check xsm_free_security_evtchns(
     struct evtchn chn[], unsigned int nr)
 {
     return;
 }
 
-static XSM_INLINE char *xsm_show_security_evtchn(
+static XSM_INLINE char *cf_check xsm_show_security_evtchn(
     struct domain *d, const struct evtchn *chn)
 {
     return NULL;
 }
 
-static XSM_INLINE int xsm_init_hardware_domain(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_init_hardware_domain(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_get_pod_target(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_get_pod_target(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_set_pod_target(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_set_pod_target(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_get_vnumainfo(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_get_vnumainfo(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, current->domain, d);
 }
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
-static XSM_INLINE int xsm_get_device_group(XSM_DEFAULT_ARG uint32_t machine_bdf)
+static XSM_INLINE int cf_check xsm_get_device_group(
+    XSM_DEFAULT_ARG uint32_t machine_bdf)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_assign_device(
+static XSM_INLINE int cf_check xsm_assign_device(
     XSM_DEFAULT_ARG struct domain *d, uint32_t machine_bdf)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_deassign_device(
+static XSM_INLINE int cf_check xsm_deassign_device(
     XSM_DEFAULT_ARG struct domain *d, uint32_t machine_bdf)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
@@ -393,14 +403,14 @@ static XSM_INLINE int xsm_deassign_device(
 #endif /* HAS_PASSTHROUGH && HAS_PCI */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE)
-static XSM_INLINE int xsm_assign_dtdevice(
+static XSM_INLINE int cf_check xsm_assign_dtdevice(
     XSM_DEFAULT_ARG struct domain *d, const char *dtpath)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_deassign_dtdevice(
+static XSM_INLINE int cf_check xsm_deassign_dtdevice(
     XSM_DEFAULT_ARG struct domain *d, const char *dtpath)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
@@ -409,142 +419,144 @@ static XSM_INLINE int xsm_deassign_dtdevice(
 
 #endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE */
 
-static XSM_INLINE int xsm_resource_plug_core(XSM_DEFAULT_VOID)
+static XSM_INLINE int cf_check xsm_resource_plug_core(XSM_DEFAULT_VOID)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_resource_unplug_core(XSM_DEFAULT_VOID)
+static XSM_INLINE int cf_check xsm_resource_unplug_core(XSM_DEFAULT_VOID)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_resource_plug_pci(
+static XSM_INLINE int cf_check xsm_resource_plug_pci(
     XSM_DEFAULT_ARG uint32_t machine_bdf)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_resource_unplug_pci(
+static XSM_INLINE int cf_check xsm_resource_unplug_pci(
     XSM_DEFAULT_ARG uint32_t machine_bdf)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_resource_setup_pci(
+static XSM_INLINE int cf_check xsm_resource_setup_pci(
     XSM_DEFAULT_ARG uint32_t machine_bdf)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_resource_setup_gsi(XSM_DEFAULT_ARG int gsi)
+static XSM_INLINE int cf_check xsm_resource_setup_gsi(XSM_DEFAULT_ARG int gsi)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_resource_setup_misc(XSM_DEFAULT_VOID)
+static XSM_INLINE int cf_check xsm_resource_setup_misc(XSM_DEFAULT_VOID)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_page_offline(XSM_DEFAULT_ARG uint32_t cmd)
+static XSM_INLINE int cf_check xsm_page_offline(XSM_DEFAULT_ARG uint32_t cmd)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_hypfs_op(XSM_DEFAULT_VOID)
+static XSM_INLINE int cf_check xsm_hypfs_op(XSM_DEFAULT_VOID)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
+static XSM_INLINE long cf_check xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
 {
     return -ENOSYS;
 }
 
 #ifdef CONFIG_COMPAT
-static XSM_INLINE int xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) op)
+static XSM_INLINE int cf_check xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) op)
 {
     return -ENOSYS;
 }
 #endif
 
-static XSM_INLINE char *xsm_show_irq_sid(int irq)
+static XSM_INLINE char *cf_check xsm_show_irq_sid(int irq)
 {
     return NULL;
 }
 
-static XSM_INLINE int xsm_map_domain_pirq(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_map_domain_pirq(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_map_domain_irq(
+static XSM_INLINE int cf_check xsm_map_domain_irq(
     XSM_DEFAULT_ARG struct domain *d, int irq, const void *data)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_unmap_domain_pirq(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_unmap_domain_pirq(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_bind_pt_irq(
+static XSM_INLINE int cf_check xsm_bind_pt_irq(
     XSM_DEFAULT_ARG struct domain *d, struct xen_domctl_bind_pt_irq *bind)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_unbind_pt_irq(
+static XSM_INLINE int cf_check xsm_unbind_pt_irq(
     XSM_DEFAULT_ARG struct domain *d, struct xen_domctl_bind_pt_irq *bind)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_unmap_domain_irq(
+static XSM_INLINE int cf_check xsm_unmap_domain_irq(
     XSM_DEFAULT_ARG struct domain *d, int irq, const void *data)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_irq_permission(
+static XSM_INLINE int cf_check xsm_irq_permission(
     XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_iomem_permission(
+static XSM_INLINE int cf_check xsm_iomem_permission(
     XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_iomem_mapping(
+static XSM_INLINE int cf_check xsm_iomem_mapping(
     XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_pci_config_permission(
+static XSM_INLINE int cf_check xsm_pci_config_permission(
     XSM_DEFAULT_ARG struct domain *d, uint32_t machine_bdf, uint16_t start,
     uint16_t end, uint8_t access)
 {
@@ -552,41 +564,42 @@ static XSM_INLINE int xsm_pci_config_permission(
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_add_to_physmap(
+static XSM_INLINE int cf_check xsm_add_to_physmap(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_remove_from_physmap(
+static XSM_INLINE int cf_check xsm_remove_from_physmap(
     XSM_DEFAULT_ARG struct domain *d1, struct domain *d2)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d1, d2);
 }
 
-static XSM_INLINE int xsm_map_gmfn_foreign(
+static XSM_INLINE int cf_check xsm_map_gmfn_foreign(
     XSM_DEFAULT_ARG struct domain *d, struct domain *t)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d, t);
 }
 
-static XSM_INLINE int xsm_hvm_param(
+static XSM_INLINE int cf_check xsm_hvm_param(
     XSM_DEFAULT_ARG struct domain *d, unsigned long op)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_hvm_param_altp2mhvm(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_hvm_param_altp2mhvm(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_hvm_altp2mhvm_op(
+static XSM_INLINE int cf_check xsm_hvm_altp2mhvm_op(
     XSM_DEFAULT_ARG struct domain *d, uint64_t mode, uint32_t op)
 {
     XSM_ASSERT_ACTION(XSM_OTHER);
@@ -606,7 +619,7 @@ static XSM_INLINE int xsm_hvm_altp2mhvm_op(
     }
 }
 
-static XSM_INLINE int xsm_vm_event_control(
+static XSM_INLINE int cf_check xsm_vm_event_control(
     XSM_DEFAULT_ARG struct domain *d, int mode, int op)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
@@ -614,7 +627,7 @@ static XSM_INLINE int xsm_vm_event_control(
 }
 
 #ifdef CONFIG_MEM_ACCESS
-static XSM_INLINE int xsm_mem_access(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_mem_access(XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
     return xsm_default_action(action, current->domain, d);
@@ -622,7 +635,7 @@ static XSM_INLINE int xsm_mem_access(XSM_DEFAULT_ARG struct domain *d)
 #endif
 
 #ifdef CONFIG_MEM_PAGING
-static XSM_INLINE int xsm_mem_paging(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_mem_paging(XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
     return xsm_default_action(action, current->domain, d);
@@ -630,59 +643,61 @@ static XSM_INLINE int xsm_mem_paging(XSM_DEFAULT_ARG struct domain *d)
 #endif
 
 #ifdef CONFIG_MEM_SHARING
-static XSM_INLINE int xsm_mem_sharing(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_mem_sharing(XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
     return xsm_default_action(action, current->domain, d);
 }
 #endif
 
-static XSM_INLINE int xsm_platform_op(XSM_DEFAULT_ARG uint32_t op)
+static XSM_INLINE int cf_check xsm_platform_op(XSM_DEFAULT_ARG uint32_t op)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
 #ifdef CONFIG_X86
-static XSM_INLINE int xsm_do_mca(XSM_DEFAULT_VOID)
+static XSM_INLINE int cf_check xsm_do_mca(XSM_DEFAULT_VOID)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_shadow_control(
+static XSM_INLINE int cf_check xsm_shadow_control(
     XSM_DEFAULT_ARG struct domain *d, uint32_t op)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_mem_sharing_op(
+static XSM_INLINE int cf_check xsm_mem_sharing_op(
     XSM_DEFAULT_ARG struct domain *d, struct domain *cd, int op)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
     return xsm_default_action(action, current->domain, cd);
 }
 
-static XSM_INLINE int xsm_apic(XSM_DEFAULT_ARG struct domain *d, int cmd)
+static XSM_INLINE int cf_check xsm_apic(
+    XSM_DEFAULT_ARG struct domain *d, int cmd)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, d, NULL);
 }
 
-static XSM_INLINE int xsm_machine_memory_map(XSM_DEFAULT_VOID)
+static XSM_INLINE int cf_check xsm_machine_memory_map(XSM_DEFAULT_VOID)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
     return xsm_default_action(action, current->domain, NULL);
 }
 
-static XSM_INLINE int xsm_domain_memory_map(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_domain_memory_map(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_mmu_update(
+static XSM_INLINE int cf_check xsm_mmu_update(
     XSM_DEFAULT_ARG struct domain *d, struct domain *t, struct domain *f,
     uint32_t flags)
 {
@@ -695,42 +710,42 @@ static XSM_INLINE int xsm_mmu_update(
     return rc;
 }
 
-static XSM_INLINE int xsm_mmuext_op(
+static XSM_INLINE int cf_check xsm_mmuext_op(
     XSM_DEFAULT_ARG struct domain *d, struct domain *f)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d, f);
 }
 
-static XSM_INLINE int xsm_update_va_mapping(
+static XSM_INLINE int cf_check xsm_update_va_mapping(
     XSM_DEFAULT_ARG struct domain *d, struct domain *f, l1_pgentry_t pte)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d, f);
 }
 
-static XSM_INLINE int xsm_priv_mapping(
+static XSM_INLINE int cf_check xsm_priv_mapping(
     XSM_DEFAULT_ARG struct domain *d, struct domain *t)
 {
     XSM_ASSERT_ACTION(XSM_TARGET);
     return xsm_default_action(action, d, t);
 }
 
-static XSM_INLINE int xsm_ioport_permission(
+static XSM_INLINE int cf_check xsm_ioport_permission(
     XSM_DEFAULT_ARG struct domain *d, uint32_t s, uint32_t e, uint8_t allow)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_ioport_mapping(
+static XSM_INLINE int cf_check xsm_ioport_mapping(
     XSM_DEFAULT_ARG struct domain *d, uint32_t s, uint32_t e, uint8_t allow)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int xsm_pmu_op(
+static XSM_INLINE int cf_check xsm_pmu_op(
     XSM_DEFAULT_ARG struct domain *d, unsigned int op)
 {
     XSM_ASSERT_ACTION(XSM_OTHER);
@@ -748,30 +763,31 @@ static XSM_INLINE int xsm_pmu_op(
 
 #endif /* CONFIG_X86 */
 
-static XSM_INLINE int xsm_dm_op(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_dm_op(XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
     return xsm_default_action(action, current->domain, d);
 }
 
 #ifdef CONFIG_ARGO
-static XSM_INLINE int xsm_argo_enable(const struct domain *d)
+static XSM_INLINE int cf_check xsm_argo_enable(const struct domain *d)
 {
     return 0;
 }
 
-static XSM_INLINE int xsm_argo_register_single_source(
+static XSM_INLINE int cf_check xsm_argo_register_single_source(
     const struct domain *d, const struct domain *t)
 {
     return 0;
 }
 
-static XSM_INLINE int xsm_argo_register_any_source(const struct domain *d)
+static XSM_INLINE int cf_check xsm_argo_register_any_source(
+    const struct domain *d)
 {
     return 0;
 }
 
-static XSM_INLINE int xsm_argo_send(
+static XSM_INLINE int cf_check xsm_argo_send(
     const struct domain *d, const struct domain *t)
 {
     return 0;
@@ -780,7 +796,7 @@ static XSM_INLINE int xsm_argo_send(
 #endif /* CONFIG_ARGO */
 
 #include <public/version.h>
-static XSM_INLINE int xsm_xen_version(XSM_DEFAULT_ARG uint32_t op)
+static XSM_INLINE int cf_check xsm_xen_version(XSM_DEFAULT_ARG uint32_t op)
 {
     XSM_ASSERT_ACTION(XSM_OTHER);
     switch ( op )
@@ -804,7 +820,8 @@ static XSM_INLINE int xsm_xen_version(XSM_DEFAULT_ARG uint32_t op)
     }
 }
 
-static XSM_INLINE int xsm_domain_resource_map(XSM_DEFAULT_ARG struct domain *d)
+static XSM_INLINE int cf_check xsm_domain_resource_map(
+    XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
     return xsm_default_action(action, current->domain, d);
diff --git a/xen/xsm/flask/flask_op.c b/xen/xsm/flask/flask_op.c
index 2d7ca3abaecd..707be72a3b96 100644
--- a/xen/xsm/flask/flask_op.c
+++ b/xen/xsm/flask/flask_op.c
@@ -607,7 +607,7 @@ static int flask_relabel_domain(struct xen_flask_relabel *arg)
 
 #endif /* !COMPAT */
 
-ret_t do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op)
+ret_t cf_check do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op)
 {
     xen_flask_op_t op;
     int rv;
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 6ff1be28e4a4..63484e323c09 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -157,7 +157,7 @@ static int avc_unknown_permission(const char *name, int id)
     return rc;
 }
 
-static int flask_domain_alloc_security(struct domain *d)
+static int cf_check flask_domain_alloc_security(struct domain *d)
 {
     struct domain_security_struct *dsec;
 
@@ -186,7 +186,7 @@ static int flask_domain_alloc_security(struct domain *d)
     return 0;
 }
 
-static void flask_domain_free_security(struct domain *d)
+static void cf_check flask_domain_free_security(struct domain *d)
 {
     struct domain_security_struct *dsec = d->ssid;
 
@@ -197,8 +197,8 @@ static void flask_domain_free_security(struct domain *d)
     xfree(dsec);
 }
 
-static int flask_evtchn_unbound(struct domain *d1, struct evtchn *chn, 
-                                domid_t id2)
+static int cf_check flask_evtchn_unbound(
+    struct domain *d1, struct evtchn *chn, domid_t id2)
 {
     u32 sid1, sid2, newsid;
     int rc;
@@ -230,8 +230,9 @@ static int flask_evtchn_unbound(struct domain *d1, struct evtchn *chn,
     return rc;
 }
 
-static int flask_evtchn_interdomain(struct domain *d1, struct evtchn *chn1, 
-                                    struct domain *d2, struct evtchn *chn2)
+static int cf_check flask_evtchn_interdomain(
+    struct domain *d1, struct evtchn *chn1,
+    struct domain *d2, struct evtchn *chn2)
 {
     u32 sid1, sid2, newsid, reverse_sid;
     int rc;
@@ -273,12 +274,12 @@ static int flask_evtchn_interdomain(struct domain *d1, struct evtchn *chn1,
     return rc;
 }
 
-static void flask_evtchn_close_post(struct evtchn *chn)
+static void cf_check flask_evtchn_close_post(struct evtchn *chn)
 {
     chn->ssid.flask_sid = SECINITSID_UNLABELED;
 }
 
-static int flask_evtchn_send(struct domain *d, struct evtchn *chn)
+static int cf_check flask_evtchn_send(struct domain *d, struct evtchn *chn)
 {
     int rc;
 
@@ -298,17 +299,18 @@ static int flask_evtchn_send(struct domain *d, struct evtchn *chn)
     return rc;
 }
 
-static int flask_evtchn_status(struct domain *d, struct evtchn *chn)
+static int cf_check flask_evtchn_status(struct domain *d, struct evtchn *chn)
 {
     return domain_has_evtchn(d, chn, EVENT__STATUS);
 }
 
-static int flask_evtchn_reset(struct domain *d1, struct domain *d2)
+static int cf_check flask_evtchn_reset(struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_EVENT, EVENT__RESET);
 }
 
-static int flask_alloc_security_evtchns(struct evtchn chn[], unsigned int nr)
+static int cf_check flask_alloc_security_evtchns(
+    struct evtchn chn[], unsigned int nr)
 {
     unsigned int i;
 
@@ -318,7 +320,8 @@ static int flask_alloc_security_evtchns(struct evtchn chn[], unsigned int nr)
     return 0;
 }
 
-static void flask_free_security_evtchns(struct evtchn chn[], unsigned int nr)
+static void cf_check flask_free_security_evtchns(
+    struct evtchn chn[], unsigned int nr)
 {
     unsigned int i;
 
@@ -329,7 +332,8 @@ static void flask_free_security_evtchns(struct evtchn chn[], unsigned int nr)
         chn[i].ssid.flask_sid = SECINITSID_UNLABELED;
 }
 
-static char *flask_show_security_evtchn(struct domain *d, const struct evtchn *chn)
+static char *cf_check flask_show_security_evtchn(
+    struct domain *d, const struct evtchn *chn)
 {
     int irq;
     u32 sid = 0;
@@ -355,13 +359,13 @@ static char *flask_show_security_evtchn(struct domain *d, const struct evtchn *c
     return ctx;
 }
 
-static int flask_init_hardware_domain(struct domain *d)
+static int cf_check flask_init_hardware_domain(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__CREATE_HARDWARE_DOMAIN);
 }
 
-static int flask_grant_mapref(struct domain *d1, struct domain *d2, 
-                              uint32_t flags)
+static int cf_check flask_grant_mapref(
+    struct domain *d1, struct domain *d2, uint32_t flags)
 {
     u32 perms = GRANT__MAP_READ;
 
@@ -371,73 +375,75 @@ static int flask_grant_mapref(struct domain *d1, struct domain *d2,
     return domain_has_perm(d1, d2, SECCLASS_GRANT, perms);
 }
 
-static int flask_grant_unmapref(struct domain *d1, struct domain *d2)
+static int cf_check flask_grant_unmapref(struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_GRANT, GRANT__UNMAP);
 }
 
-static int flask_grant_setup(struct domain *d1, struct domain *d2)
+static int cf_check flask_grant_setup(struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_GRANT, GRANT__SETUP);
 }
 
-static int flask_grant_transfer(struct domain *d1, struct domain *d2)
+static int cf_check flask_grant_transfer(struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_GRANT, GRANT__TRANSFER);
 }
 
-static int flask_grant_copy(struct domain *d1, struct domain *d2)
+static int cf_check flask_grant_copy(struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_GRANT, GRANT__COPY);
 }
 
-static int flask_grant_query_size(struct domain *d1, struct domain *d2)
+static int cf_check flask_grant_query_size(struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_GRANT, GRANT__QUERY);
 }
 
-static int flask_get_pod_target(struct domain *d)
+static int cf_check flask_get_pod_target(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__GETPODTARGET);
 }
 
-static int flask_set_pod_target(struct domain *d)
+static int cf_check flask_set_pod_target(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__SETPODTARGET);
 }
 
-static int flask_memory_exchange(struct domain *d)
+static int cf_check flask_memory_exchange(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_MMU, MMU__EXCHANGE);
 }
 
-static int flask_memory_adjust_reservation(struct domain *d1, struct domain *d2)
+static int cf_check flask_memory_adjust_reservation(
+    struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_MMU, MMU__ADJUST);
 }
 
-static int flask_memory_stat_reservation(struct domain *d1, struct domain *d2)
+static int cf_check flask_memory_stat_reservation(
+    struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_MMU, MMU__STAT);
 }
 
-static int flask_memory_pin_page(struct domain *d1, struct domain *d2,
-                                 struct page_info *page)
+static int cf_check flask_memory_pin_page(
+    struct domain *d1, struct domain *d2, struct page_info *page)
 {
     return domain_has_perm(d1, d2, SECCLASS_MMU, MMU__PINPAGE);
 }
 
-static int flask_claim_pages(struct domain *d)
+static int cf_check flask_claim_pages(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__SETCLAIM);
 }
 
-static int flask_get_vnumainfo(struct domain *d)
+static int cf_check flask_get_vnumainfo(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__GET_VNUMAINFO);
 }
 
-static int flask_console_io(struct domain *d, int cmd)
+static int cf_check flask_console_io(struct domain *d, int cmd)
 {
     u32 perm;
 
@@ -456,7 +462,7 @@ static int flask_console_io(struct domain *d, int cmd)
     return domain_has_xen(d, perm);
 }
 
-static int flask_profile(struct domain *d, int op)
+static int cf_check flask_profile(struct domain *d, int op)
 {
     u32 perm;
 
@@ -488,23 +494,23 @@ static int flask_profile(struct domain *d, int op)
     return domain_has_xen(d, perm);
 }
 
-static int flask_kexec(void)
+static int cf_check flask_kexec(void)
 {
     return domain_has_xen(current->domain, XEN__KEXEC);
 }
 
-static int flask_schedop_shutdown(struct domain *d1, struct domain *d2)
+static int cf_check flask_schedop_shutdown(struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_DOMAIN, DOMAIN__SHUTDOWN);
 }
 
-static void flask_security_domaininfo(struct domain *d, 
-                                      struct xen_domctl_getdomaininfo *info)
+static void cf_check flask_security_domaininfo(
+    struct domain *d, struct xen_domctl_getdomaininfo *info)
 {
     info->ssidref = domain_sid(d);
 }
 
-static int flask_domain_create(struct domain *d, u32 ssidref)
+static int cf_check flask_domain_create(struct domain *d, u32 ssidref)
 {
     int rc;
     struct domain_security_struct *dsec = d->ssid;
@@ -532,12 +538,12 @@ static int flask_domain_create(struct domain *d, u32 ssidref)
     return rc;
 }
 
-static int flask_getdomaininfo(struct domain *d)
+static int cf_check flask_getdomaininfo(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__GETDOMAININFO);
 }
 
-static int flask_domctl_scheduler_op(struct domain *d, int op)
+static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
 {
     switch ( op )
     {
@@ -554,7 +560,7 @@ static int flask_domctl_scheduler_op(struct domain *d, int op)
     }
 }
 
-static int flask_sysctl_scheduler_op(int op)
+static int cf_check flask_sysctl_scheduler_op(int op)
 {
     switch ( op )
     {
@@ -569,7 +575,7 @@ static int flask_sysctl_scheduler_op(int op)
     }
 }
 
-static int flask_set_target(struct domain *d, struct domain *t)
+static int cf_check flask_set_target(struct domain *d, struct domain *t)
 {
     int rc;
     struct domain_security_struct *dsec, *tsec;
@@ -593,7 +599,7 @@ static int flask_set_target(struct domain *d, struct domain *t)
     return rc;
 }
 
-static int flask_domctl(struct domain *d, int cmd)
+static int cf_check flask_domctl(struct domain *d, int cmd)
 {
     switch ( cmd )
     {
@@ -757,7 +763,7 @@ static int flask_domctl(struct domain *d, int cmd)
     }
 }
 
-static int flask_sysctl(int cmd)
+static int cf_check flask_sysctl(int cmd)
 {
     switch ( cmd )
     {
@@ -835,7 +841,7 @@ static int flask_sysctl(int cmd)
     }
 }
 
-static int flask_readconsole(uint32_t clear)
+static int cf_check flask_readconsole(uint32_t clear)
 {
     u32 perms = XEN__READCONSOLE;
 
@@ -853,7 +859,7 @@ static inline u32 resource_to_perm(uint8_t access)
         return RESOURCE__REMOVE;
 }
 
-static char *flask_show_irq_sid (int irq)
+static char *cf_check flask_show_irq_sid(int irq)
 {
     u32 sid, ctx_len;
     char *ctx;
@@ -867,7 +873,7 @@ static char *flask_show_irq_sid (int irq)
     return ctx;
 }
 
-static int flask_map_domain_pirq (struct domain *d)
+static int cf_check flask_map_domain_pirq(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__ADD);
 }
@@ -907,7 +913,7 @@ static u32 flask_iommu_resource_use_perm(const struct domain *d)
     return perm;
 }
 
-static int flask_map_domain_irq (struct domain *d, int irq, const void *data)
+static int cf_check flask_map_domain_irq(struct domain *d, int irq, const void *data)
 {
     u32 sid, dsid;
     int rc = -EPERM;
@@ -933,7 +939,7 @@ static int flask_map_domain_irq (struct domain *d, int irq, const void *data)
     return rc;
 }
 
-static int flask_unmap_domain_pirq (struct domain *d)
+static int cf_check flask_unmap_domain_pirq(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE);
 }
@@ -954,7 +960,8 @@ static int flask_unmap_domain_msi (struct domain *d, int irq, const void *data,
 #endif
 }
 
-static int flask_unmap_domain_irq (struct domain *d, int irq, const void *data)
+static int cf_check flask_unmap_domain_irq(
+    struct domain *d, int irq, const void *data)
 {
     u32 sid;
     int rc = -EPERM;
@@ -972,7 +979,8 @@ static int flask_unmap_domain_irq (struct domain *d, int irq, const void *data)
     return rc;
 }
 
-static int flask_bind_pt_irq (struct domain *d, struct xen_domctl_bind_pt_irq *bind)
+static int cf_check flask_bind_pt_irq(
+    struct domain *d, struct xen_domctl_bind_pt_irq *bind)
 {
     u32 dsid, rsid;
     int rc = -EPERM;
@@ -998,12 +1006,14 @@ static int flask_bind_pt_irq (struct domain *d, struct xen_domctl_bind_pt_irq *b
     return avc_has_perm(dsid, rsid, SECCLASS_RESOURCE, dperm, &ad);
 }
 
-static int flask_unbind_pt_irq (struct domain *d, struct xen_domctl_bind_pt_irq *bind)
+static int cf_check flask_unbind_pt_irq(
+    struct domain *d, struct xen_domctl_bind_pt_irq *bind)
 {
     return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE);
 }
 
-static int flask_irq_permission (struct domain *d, int pirq, uint8_t access)
+static int cf_check flask_irq_permission(
+    struct domain *d, int pirq, uint8_t access)
 {
     /* the PIRQ number is not useful; real IRQ is checked during mapping */
     return current_has_perm(d, SECCLASS_RESOURCE, resource_to_perm(access));
@@ -1016,7 +1026,8 @@ struct iomem_has_perm_data {
     u32 use_perm;
 };
 
-static int _iomem_has_perm(void *v, u32 sid, unsigned long start, unsigned long end)
+static int cf_check _iomem_has_perm(
+    void *v, u32 sid, unsigned long start, unsigned long end)
 {
     struct iomem_has_perm_data *data = v;
     struct avc_audit_data ad;
@@ -1034,7 +1045,8 @@ static int _iomem_has_perm(void *v, u32 sid, unsigned long start, unsigned long
     return avc_has_perm(data->dsid, sid, SECCLASS_RESOURCE, data->use_perm, &ad);
 }
 
-static int flask_iomem_permission(struct domain *d, uint64_t start, uint64_t end, uint8_t access)
+static int cf_check flask_iomem_permission(
+    struct domain *d, uint64_t start, uint64_t end, uint8_t access)
 {
     struct iomem_has_perm_data data;
     int rc;
@@ -1056,12 +1068,14 @@ static int flask_iomem_permission(struct domain *d, uint64_t start, uint64_t end
     return security_iterate_iomem_sids(start, end, _iomem_has_perm, &data);
 }
 
-static int flask_iomem_mapping(struct domain *d, uint64_t start, uint64_t end, uint8_t access)
+static int cf_check flask_iomem_mapping(struct domain *d, uint64_t start, uint64_t end, uint8_t access)
 {
     return flask_iomem_permission(d, start, end, access);
 }
 
-static int flask_pci_config_permission(struct domain *d, uint32_t machine_bdf, uint16_t start, uint16_t end, uint8_t access)
+static int cf_check flask_pci_config_permission(
+    struct domain *d, uint32_t machine_bdf, uint16_t start, uint16_t end,
+    uint8_t access)
 {
     u32 dsid, rsid;
     int rc = -EPERM;
@@ -1085,12 +1099,12 @@ static int flask_pci_config_permission(struct domain *d, uint32_t machine_bdf, u
 
 }
 
-static int flask_resource_plug_core(void)
+static int cf_check flask_resource_plug_core(void)
 {
     return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__PLUG, NULL);
 }
 
-static int flask_resource_unplug_core(void)
+static int cf_check flask_resource_unplug_core(void)
 {
     return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__UNPLUG, NULL);
 }
@@ -1100,7 +1114,7 @@ static int flask_resource_use_core(void)
     return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__USE, NULL);
 }
 
-static int flask_resource_plug_pci(uint32_t machine_bdf)
+static int cf_check flask_resource_plug_pci(uint32_t machine_bdf)
 {
     u32 rsid;
     int rc = -EPERM;
@@ -1115,7 +1129,7 @@ static int flask_resource_plug_pci(uint32_t machine_bdf)
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__PLUG, &ad);
 }
 
-static int flask_resource_unplug_pci(uint32_t machine_bdf)
+static int cf_check flask_resource_unplug_pci(uint32_t machine_bdf)
 {
     u32 rsid;
     int rc = -EPERM;
@@ -1130,7 +1144,7 @@ static int flask_resource_unplug_pci(uint32_t machine_bdf)
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__UNPLUG, &ad);
 }
 
-static int flask_resource_setup_pci(uint32_t machine_bdf)
+static int cf_check flask_resource_setup_pci(uint32_t machine_bdf)
 {
     u32 rsid;
     int rc = -EPERM;
@@ -1145,7 +1159,7 @@ static int flask_resource_setup_pci(uint32_t machine_bdf)
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__SETUP, &ad);
 }
 
-static int flask_resource_setup_gsi(int gsi)
+static int cf_check flask_resource_setup_gsi(int gsi)
 {
     u32 rsid;
     int rc = -EPERM;
@@ -1158,12 +1172,12 @@ static int flask_resource_setup_gsi(int gsi)
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__SETUP, &ad);
 }
 
-static int flask_resource_setup_misc(void)
+static int cf_check flask_resource_setup_misc(void)
 {
     return avc_current_has_perm(SECINITSID_XEN, SECCLASS_RESOURCE, RESOURCE__SETUP, NULL);
 }
 
-static inline int flask_page_offline(uint32_t cmd)
+static inline int cf_check flask_page_offline(uint32_t cmd)
 {
     switch (cmd) {
     case sysctl_page_offline:
@@ -1177,27 +1191,28 @@ static inline int flask_page_offline(uint32_t cmd)
     }
 }
 
-static inline int flask_hypfs_op(void)
+static inline int cf_check flask_hypfs_op(void)
 {
     return domain_has_xen(current->domain, XEN__HYPFS_OP);
 }
 
-static int flask_add_to_physmap(struct domain *d1, struct domain *d2)
+static int cf_check flask_add_to_physmap(struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_MMU, MMU__PHYSMAP);
 }
 
-static int flask_remove_from_physmap(struct domain *d1, struct domain *d2)
+static int cf_check flask_remove_from_physmap(
+    struct domain *d1, struct domain *d2)
 {
     return domain_has_perm(d1, d2, SECCLASS_MMU, MMU__PHYSMAP);
 }
 
-static int flask_map_gmfn_foreign(struct domain *d, struct domain *t)
+static int cf_check flask_map_gmfn_foreign(struct domain *d, struct domain *t)
 {
     return domain_has_perm(d, t, SECCLASS_MMU, MMU__MAP_READ | MMU__MAP_WRITE);
 }
 
-static int flask_hvm_param(struct domain *d, unsigned long op)
+static int cf_check flask_hvm_param(struct domain *d, unsigned long op)
 {
     u32 perm;
 
@@ -1216,12 +1231,12 @@ static int flask_hvm_param(struct domain *d, unsigned long op)
     return current_has_perm(d, SECCLASS_HVM, perm);
 }
 
-static int flask_hvm_param_altp2mhvm(struct domain *d)
+static int cf_check flask_hvm_param_altp2mhvm(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_HVM, HVM__ALTP2MHVM);
 }
 
-static int flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode, uint32_t op)
+static int cf_check flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode, uint32_t op)
 {
     /*
      * Require both mode and XSM to allow the operation. Assume XSM rules
@@ -1245,34 +1260,34 @@ static int flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode, uint32_t op)
     return current_has_perm(d, SECCLASS_HVM, HVM__ALTP2MHVM_OP);
 }
 
-static int flask_vm_event_control(struct domain *d, int mode, int op)
+static int cf_check flask_vm_event_control(struct domain *d, int mode, int op)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__VM_EVENT);
 }
 
 #ifdef CONFIG_MEM_ACCESS
-static int flask_mem_access(struct domain *d)
+static int cf_check flask_mem_access(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_ACCESS);
 }
 #endif
 
 #ifdef CONFIG_MEM_PAGING
-static int flask_mem_paging(struct domain *d)
+static int cf_check flask_mem_paging(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_PAGING);
 }
 #endif
 
 #ifdef CONFIG_MEM_SHARING
-static int flask_mem_sharing(struct domain *d)
+static int cf_check flask_mem_sharing(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_SHARING);
 }
 #endif
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
-static int flask_get_device_group(uint32_t machine_bdf)
+static int cf_check flask_get_device_group(uint32_t machine_bdf)
 {
     u32 rsid;
     int rc = -EPERM;
@@ -1296,7 +1311,7 @@ static int flask_test_assign_device(uint32_t machine_bdf)
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__STAT_DEVICE, NULL);
 }
 
-static int flask_assign_device(struct domain *d, uint32_t machine_bdf)
+static int cf_check flask_assign_device(struct domain *d, uint32_t machine_bdf)
 {
     u32 dsid, rsid;
     int rc = -EPERM;
@@ -1326,7 +1341,8 @@ static int flask_assign_device(struct domain *d, uint32_t machine_bdf)
     return avc_has_perm(dsid, rsid, SECCLASS_RESOURCE, dperm, &ad);
 }
 
-static int flask_deassign_device(struct domain *d, uint32_t machine_bdf)
+static int cf_check flask_deassign_device(
+    struct domain *d, uint32_t machine_bdf)
 {
     u32 rsid;
     int rc = -EPERM;
@@ -1357,7 +1373,7 @@ static int flask_test_assign_dtdevice(const char *dtpath)
                                 NULL);
 }
 
-static int flask_assign_dtdevice(struct domain *d, const char *dtpath)
+static int cf_check flask_assign_dtdevice(struct domain *d, const char *dtpath)
 {
     u32 dsid, rsid;
     int rc = -EPERM;
@@ -1387,7 +1403,8 @@ static int flask_assign_dtdevice(struct domain *d, const char *dtpath)
     return avc_has_perm(dsid, rsid, SECCLASS_RESOURCE, dperm, &ad);
 }
 
-static int flask_deassign_dtdevice(struct domain *d, const char *dtpath)
+static int cf_check flask_deassign_dtdevice(
+    struct domain *d, const char *dtpath)
 {
     u32 rsid;
     int rc = -EPERM;
@@ -1405,7 +1422,7 @@ static int flask_deassign_dtdevice(struct domain *d, const char *dtpath)
 }
 #endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE */
 
-static int flask_platform_op(uint32_t op)
+static int cf_check flask_platform_op(uint32_t op)
 {
     switch ( op )
     {
@@ -1474,12 +1491,12 @@ static int flask_platform_op(uint32_t op)
 }
 
 #ifdef CONFIG_X86
-static int flask_do_mca(void)
+static int cf_check flask_do_mca(void)
 {
     return domain_has_xen(current->domain, XEN__MCA_OP);
 }
 
-static int flask_shadow_control(struct domain *d, uint32_t op)
+static int cf_check flask_shadow_control(struct domain *d, uint32_t op)
 {
     u32 perm;
 
@@ -1513,7 +1530,8 @@ struct ioport_has_perm_data {
     u32 use_perm;
 };
 
-static int _ioport_has_perm(void *v, u32 sid, unsigned long start, unsigned long end)
+static int cf_check _ioport_has_perm(
+    void *v, u32 sid, unsigned long start, unsigned long end)
 {
     struct ioport_has_perm_data *data = v;
     struct avc_audit_data ad;
@@ -1531,7 +1549,8 @@ static int _ioport_has_perm(void *v, u32 sid, unsigned long start, unsigned long
     return avc_has_perm(data->dsid, sid, SECCLASS_RESOURCE, data->use_perm, &ad);
 }
 
-static int flask_ioport_permission(struct domain *d, uint32_t start, uint32_t end, uint8_t access)
+static int cf_check flask_ioport_permission(
+    struct domain *d, uint32_t start, uint32_t end, uint8_t access)
 {
     int rc;
     struct ioport_has_perm_data data;
@@ -1554,12 +1573,14 @@ static int flask_ioport_permission(struct domain *d, uint32_t start, uint32_t en
     return security_iterate_ioport_sids(start, end, _ioport_has_perm, &data);
 }
 
-static int flask_ioport_mapping(struct domain *d, uint32_t start, uint32_t end, uint8_t access)
+static int cf_check flask_ioport_mapping(
+    struct domain *d, uint32_t start, uint32_t end, uint8_t access)
 {
     return flask_ioport_permission(d, start, end, access);
 }
 
-static int flask_mem_sharing_op(struct domain *d, struct domain *cd, int op)
+static int cf_check flask_mem_sharing_op(
+    struct domain *d, struct domain *cd, int op)
 {
     int rc = current_has_perm(cd, SECCLASS_HVM, HVM__MEM_SHARING);
     if ( rc )
@@ -1567,7 +1588,7 @@ static int flask_mem_sharing_op(struct domain *d, struct domain *cd, int op)
     return domain_has_perm(d, cd, SECCLASS_HVM, HVM__SHARE_MEM);
 }
 
-static int flask_apic(struct domain *d, int cmd)
+static int cf_check flask_apic(struct domain *d, int cmd)
 {
     u32 perm;
 
@@ -1587,18 +1608,18 @@ static int flask_apic(struct domain *d, int cmd)
     return domain_has_xen(d, perm);
 }
 
-static int flask_machine_memory_map(void)
+static int cf_check flask_machine_memory_map(void)
 {
     return avc_current_has_perm(SECINITSID_XEN, SECCLASS_MMU, MMU__MEMORYMAP, NULL);
 }
 
-static int flask_domain_memory_map(struct domain *d)
+static int cf_check flask_domain_memory_map(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_MMU, MMU__MEMORYMAP);
 }
 
-static int flask_mmu_update(struct domain *d, struct domain *t,
-                            struct domain *f, uint32_t flags)
+static int cf_check flask_mmu_update(
+    struct domain *d, struct domain *t, struct domain *f, uint32_t flags)
 {
     int rc = 0;
     u32 map_perms = 0;
@@ -1620,13 +1641,13 @@ static int flask_mmu_update(struct domain *d, struct domain *t,
     return rc;
 }
 
-static int flask_mmuext_op(struct domain *d, struct domain *f)
+static int cf_check flask_mmuext_op(struct domain *d, struct domain *f)
 {
     return domain_has_perm(d, f, SECCLASS_MMU, MMU__MMUEXT_OP);
 }
 
-static int flask_update_va_mapping(struct domain *d, struct domain *f,
-                                   l1_pgentry_t pte)
+static int cf_check flask_update_va_mapping(
+    struct domain *d, struct domain *f, l1_pgentry_t pte)
 {
     u32 map_perms = MMU__MAP_READ;
     if ( !(l1e_get_flags(pte) & _PAGE_PRESENT) )
@@ -1637,12 +1658,12 @@ static int flask_update_va_mapping(struct domain *d, struct domain *f,
     return domain_has_perm(d, f, SECCLASS_MMU, map_perms);
 }
 
-static int flask_priv_mapping(struct domain *d, struct domain *t)
+static int cf_check flask_priv_mapping(struct domain *d, struct domain *t)
 {
     return domain_has_perm(d, t, SECCLASS_MMU, MMU__TARGET_HACK);
 }
 
-static int flask_pmu_op (struct domain *d, unsigned int op)
+static int cf_check flask_pmu_op(struct domain *d, unsigned int op)
 {
     u32 dsid = domain_sid(d);
 
@@ -1666,12 +1687,12 @@ static int flask_pmu_op (struct domain *d, unsigned int op)
 }
 #endif /* CONFIG_X86 */
 
-static int flask_dm_op(struct domain *d)
+static int cf_check flask_dm_op(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_HVM, HVM__DM);
 }
 
-static int flask_xen_version (uint32_t op)
+static int cf_check flask_xen_version(uint32_t op)
 {
     u32 dsid = domain_sid(current->domain);
 
@@ -1711,32 +1732,33 @@ static int flask_xen_version (uint32_t op)
     }
 }
 
-static int flask_domain_resource_map(struct domain *d)
+static int cf_check flask_domain_resource_map(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__RESOURCE_MAP);
 }
 
 #ifdef CONFIG_ARGO
-static int flask_argo_enable(const struct domain *d)
+static int cf_check flask_argo_enable(const struct domain *d)
 {
     return avc_has_perm(domain_sid(d), SECINITSID_XEN, SECCLASS_ARGO,
                         ARGO__ENABLE, NULL);
 }
 
-static int flask_argo_register_single_source(const struct domain *d,
-                                             const struct domain *t)
+static int cf_check flask_argo_register_single_source(
+    const struct domain *d, const struct domain *t)
 {
     return domain_has_perm(d, t, SECCLASS_ARGO,
                            ARGO__REGISTER_SINGLE_SOURCE);
 }
 
-static int flask_argo_register_any_source(const struct domain *d)
+static int cf_check flask_argo_register_any_source(const struct domain *d)
 {
     return avc_has_perm(domain_sid(d), SECINITSID_XEN, SECCLASS_ARGO,
                         ARGO__REGISTER_ANY_SOURCE, NULL);
 }
 
-static int flask_argo_send(const struct domain *d, const struct domain *t)
+static int cf_check flask_argo_send(
+    const struct domain *d, const struct domain *t)
 {
     return domain_has_perm(d, t, SECCLASS_ARGO, ARGO__SEND);
 }
diff --git a/xen/xsm/flask/private.h b/xen/xsm/flask/private.h
index 73b0de87245a..429f213cce74 100644
--- a/xen/xsm/flask/private.h
+++ b/xen/xsm/flask/private.h
@@ -3,7 +3,7 @@
 
 #include <public/xen.h>
 
-long do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op);
-int compat_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op);
+long cf_check do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op);
+int cf_check compat_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op);
 
 #endif /* XSM_FLASK_PRIVATE */
diff --git a/xen/xsm/silo.c b/xen/xsm/silo.c
index 3550dded7b4e..4d5fc98e7e54 100644
--- a/xen/xsm/silo.c
+++ b/xen/xsm/silo.c
@@ -33,8 +33,8 @@ static bool silo_mode_dom_check(const struct domain *ldom,
             is_control_domain(rdom) || ldom == rdom);
 }
 
-static int silo_evtchn_unbound(struct domain *d1, struct evtchn *chn,
-                               domid_t id2)
+static int cf_check silo_evtchn_unbound(
+    struct domain *d1, struct evtchn *chn, domid_t id2)
 {
     int rc = -EPERM;
     struct domain *d2 = rcu_lock_domain_by_any_id(id2);
@@ -51,30 +51,31 @@ static int silo_evtchn_unbound(struct domain *d1, struct evtchn *chn,
     return rc;
 }
 
-static int silo_evtchn_interdomain(struct domain *d1, struct evtchn *chan1,
-                                   struct domain *d2, struct evtchn *chan2)
+static int cf_check silo_evtchn_interdomain(
+    struct domain *d1, struct evtchn *chan1,
+    struct domain *d2, struct evtchn *chan2)
 {
     if ( silo_mode_dom_check(d1, d2) )
         return xsm_evtchn_interdomain(d1, chan1, d2, chan2);
     return -EPERM;
 }
 
-static int silo_grant_mapref(struct domain *d1, struct domain *d2,
-                             uint32_t flags)
+static int cf_check silo_grant_mapref(
+    struct domain *d1, struct domain *d2, uint32_t flags)
 {
     if ( silo_mode_dom_check(d1, d2) )
         return xsm_grant_mapref(d1, d2, flags);
     return -EPERM;
 }
 
-static int silo_grant_transfer(struct domain *d1, struct domain *d2)
+static int cf_check silo_grant_transfer(struct domain *d1, struct domain *d2)
 {
     if ( silo_mode_dom_check(d1, d2) )
         return xsm_grant_transfer(d1, d2);
     return -EPERM;
 }
 
-static int silo_grant_copy(struct domain *d1, struct domain *d2)
+static int cf_check silo_grant_copy(struct domain *d1, struct domain *d2)
 {
     if ( silo_mode_dom_check(d1, d2) )
         return xsm_grant_copy(d1, d2);
@@ -83,15 +84,16 @@ static int silo_grant_copy(struct domain *d1, struct domain *d2)
 
 #ifdef CONFIG_ARGO
 
-static int silo_argo_register_single_source(const struct domain *d1,
-                                            const struct domain *d2)
+static int cf_check silo_argo_register_single_source(
+    const struct domain *d1, const struct domain *d2)
 {
     if ( silo_mode_dom_check(d1, d2) )
         return xsm_argo_register_single_source(d1, d2);
     return -EPERM;
 }
 
-static int silo_argo_send(const struct domain *d1, const struct domain *d2)
+static int cf_check silo_argo_send(
+    const struct domain *d1, const struct domain *d2)
 {
     if ( silo_mode_dom_check(d1, d2) )
         return xsm_argo_send(d1, d2);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:04:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:04:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232750.403633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauI-0003x3-Vr; Fri, 26 Nov 2021 13:04:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232750.403633; Fri, 26 Nov 2021 13:04:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauI-0003vW-QF; Fri, 26 Nov 2021 13:04:50 +0000
Received: by outflank-mailman (input) for mailman id 232750;
 Fri, 26 Nov 2021 13:04:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauH-0002zD-3t
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:49 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ed9d182-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:04:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ed9d182-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931888;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=ne9sR1Af4/V67CBqU4M6NCPQOFrIw5Az3Gw7QUu3Mac=;
  b=AL0NIBVMpwvvxXsrfgyYrlV+k4CYk0MCzSCZapEBcsViVRThBLRlI/1e
   +cwSVQerhycbdNTfoTp71ivATZmQmVUGvq5I833HT/2zbNHt1JD1dlO3U
   1HkkZ362yS77rLGk8KGjXsJ/8GXLg8jdPbrPc87XBI9GC1k7RZpYira5U
   o=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: KeRx9sKZ+rVuae8W+b2HPau0rRsDaLoRSPCz/VU2HOfd97UJk91ogFSfaooAmqE/ij+HYfi+iZ
 +u3e9iMZXz71TR42oHTAKoUGJXnAslglXD574vRVlCDncYckwh0Kvyqff5xqiN/SMnRZLtB90l
 2HkkFHAkIJUgTgTGtjtShEzzzS7W80XUfOwITQOtn9Oq2MjtKjrIqu7o7ft1+RnnRw6uOr2kf4
 kPPpP9uJMUuBxEi1ssVUGoTJWOpCdlO/iSSeCDIMmco3UpINWRHjfMozGWSYNgLBM0uYBVgAsL
 Td0YH4GQl1G7MTNjI5T2fcuB
X-SBRS: 5.1
X-MesageID: 58676319
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:xsW1ZqwlI6JOurp/Ay56t+f6wSrEfRIJ4+MujC+fZmUNrF6WrkVUn
 TYfWW3SPvaCYWf1eo1xPI3j8hkOsJXTn9c3TwVlqyAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRn2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt8FOz
 9pVk5DocgAKfYHsqLQAQQR9IS4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY25AQQqiFP
 ptxhTxHdE/Zb01SJ3AsWb0Yuuir2CjmUxRRpwfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krk1WnkBhARNPSE1CGItHmrg4fnjS79HY4fCrC83vprm0GIgHweDgUMUlm2quX/jVSxM++zM
 GRNpHBo9/JrshX2EJ+tBHVUvUJooDYNZN1fC8s2sDqK6en4wzbJG3oZawxOPYlOWNANeRQm0
 VqAntXMDDNpsaGIRX/1yop4vQ9eKgBOczZcOHZsoR8tpoC6/dpt1k6nosNLSfbt1rXI9SfML
 ydmRcTUr5EaloY12qqy5jgraBr898GSHmbZCug6N19JDz+Vhqb5OORECnCBtJ6sybp1qHHa5
 xDofODEsYgz4WmlznDlfQn0NOjBCwy5GDPdm0VzOJIq6i6g/XWuFagJvmohdBk0bZdYJ2OyC
 KM2he+3zMQIVJdNRfUqC79d9uxwlfSwfTgbfqy8giVyjmhZK1bcoXAGib+41GHxikk8+ZzTy
 r/AGftA+U0yUPw9pBLvHr91+eZymkgWmDOCLbimnk/P+efPOxaopUItbQLmghYRt/jf/m04M
 r93aqO39vmoeLGkP3SMr9dMdQtiwLpSLcmelvG7v9WremJOcFzNwdeLqV/4U4A6zalTiMnS+
 XSxBh1RxFbl3CWVIgSWcHFzLrjoWM8n/348OCUtO3eu2mQiPtnzvPtOKcNvcOl17vFnwN51U
 +IBJ5eKDMNQR2mV4D8ad5T88tBvLUz5mQKUMiO5SzEjZJo8FRfR89rpc1K3pikDBya6r+Ukp
 Lik2l+JSJYPXV06Xs3XdOiu3xW6un1EwLB+WE7BI99yfkTw8dc1d3yt36Fve8xVcEfN3DqX0
 QqSECw0n+iVrt9n6sTNiICFs5ytT7l0EH1FEjSJ9r2xLyTboDaumNcSTOaScDnBf2ro46H+N
 /5NxvTxPfBbzlZHt41wT+Riwa4kvoa9orZbykJvHWnRbkTtAbRleyHU0c5Kv6xL57lYpQrpB
 R7fpogEYe2EaJH/DVocBAs5deDSh/gblw7b4ekxPEintjR8+6CKUBkKMhSB4MCHwGCZ7G/xL
 T8dhfMr
IronPort-HdrOrdr: A9a23:SCgZ06v0/TEX60kqCvjsIDGn7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpGbJYVcqKRcdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyJMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676319"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 55/65] x86/bugframe: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:36 +0000
Message-ID: <20211126123446.32324-56-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

run_in_exception_handler() managed to escape typechecking, as the compiler
can't see where function pointer gets called.  After adding some ad-hoc
typechecking, it turns out that dump_execution_state() alone differs in
const-ness from the other users of run_in_exception_handler().

Introduce a new show_execution_state_nonconst() to make the typechecking
happy.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/traps.c            |  5 +++++
 xen/common/keyhandler.c         |  4 ++--
 xen/drivers/char/ehci-dbgp.c    |  2 +-
 xen/drivers/char/ns16550.c      |  2 +-
 xen/include/asm-x86/bug.h       | 10 +++++++++-
 xen/include/asm-x86/processor.h |  4 +++-
 xen/include/xen/lib.h           |  2 +-
 7 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 76b1b779b33c..81ab96115ead 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -670,6 +670,11 @@ void show_execution_state(const struct cpu_user_regs *regs)
     console_unlock_recursive_irqrestore(flags);
 }
 
+void cf_check show_execution_state_nonconst(struct cpu_user_regs *regs)
+{
+    show_execution_state(regs);
+}
+
 void vcpu_show_execution_state(struct vcpu *v)
 {
     unsigned long flags = 0;
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index 5dc650a37c5c..b6e22d8120b1 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -138,7 +138,7 @@ static void cf_check show_handlers(unsigned char key)
 
 static cpumask_t dump_execstate_mask;
 
-void dump_execstate(struct cpu_user_regs *regs)
+void cf_check dump_execstate(struct cpu_user_regs *regs)
 {
     unsigned int cpu = smp_processor_id();
 
@@ -490,7 +490,7 @@ static void cf_check run_all_keyhandlers(
     tasklet_schedule(&run_all_keyhandlers_tasklet);
 }
 
-static void do_debugger_trap_fatal(struct cpu_user_regs *regs)
+static void cf_check do_debugger_trap_fatal(struct cpu_user_regs *regs)
 {
     (void)debugger_trap_fatal(0xf001, regs);
 
diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c
index e205c0da6a61..16c8ff394d5c 100644
--- a/xen/drivers/char/ehci-dbgp.c
+++ b/xen/drivers/char/ehci-dbgp.c
@@ -1247,7 +1247,7 @@ static int cf_check ehci_dbgp_getc(struct serial_port *port, char *pc)
 /* Safe: ehci_dbgp_poll() runs as timer handler, so not reentrant. */
 static struct serial_port *poll_port;
 
-static void _ehci_dbgp_poll(struct cpu_user_regs *regs)
+static void cf_check _ehci_dbgp_poll(struct cpu_user_regs *regs)
 {
     struct serial_port *port = poll_port;
     struct ehci_dbgp *dbgp = port->uart;
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 8df1ee4d5c2c..e5b4a9085516 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -206,7 +206,7 @@ static void cf_check ns16550_interrupt(
 /* Safe: ns16550_poll() runs as softirq so not reentrant on a given CPU. */
 static DEFINE_PER_CPU(struct serial_port *, poll_port);
 
-static void __ns16550_poll(struct cpu_user_regs *regs)
+static void cf_check __ns16550_poll(struct cpu_user_regs *regs)
 {
     struct serial_port *port = this_cpu(poll_port);
     struct ns16550 *uart = port->uart;
diff --git a/xen/include/asm-x86/bug.h b/xen/include/asm-x86/bug.h
index 9bb4a194202f..b7265bdfbe33 100644
--- a/xen/include/asm-x86/bug.h
+++ b/xen/include/asm-x86/bug.h
@@ -65,7 +65,15 @@ struct bug_frame {
     unreachable();                                              \
 } while (0)
 
-#define run_in_exception_handler(fn) BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL)
+/*
+ * TODO: untangle header dependences, break BUILD_BUG_ON() out of xen/lib.h,
+ * and use a real static inline here to get proper type checking of fn().
+ */
+#define run_in_exception_handler(fn)                            \
+    do {                                                        \
+        (void)((fn) == (void (*)(struct cpu_user_regs *))NULL); \
+        BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL);             \
+    } while ( 0 )
 
 #define assert_failed(msg) do {                                 \
     BUG_FRAME(BUGFRAME_assert, __LINE__, __FILE__, 1, msg);     \
diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h
index f031a050cba0..547415ec68e1 100644
--- a/xen/include/asm-x86/processor.h
+++ b/xen/include/asm-x86/processor.h
@@ -497,7 +497,9 @@ void show_stack(const struct cpu_user_regs *regs);
 void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs *regs);
 void show_registers(const struct cpu_user_regs *regs);
 void show_execution_state(const struct cpu_user_regs *regs);
-#define dump_execution_state() run_in_exception_handler(show_execution_state)
+void cf_check show_execution_state_nonconst(struct cpu_user_regs *regs);
+#define dump_execution_state() \
+    run_in_exception_handler(show_execution_state_nonconst)
 void show_page_walk(unsigned long addr);
 void noreturn fatal_trap(const struct cpu_user_regs *regs, bool_t show_remote);
 
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index c6987973bf88..3a1fdaf7e35a 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -199,7 +199,7 @@ extern char *print_tainted(char *str);
 extern void add_taint(unsigned int taint);
 
 struct cpu_user_regs;
-void dump_execstate(struct cpu_user_regs *);
+void cf_check dump_execstate(struct cpu_user_regs *);
 
 void init_constructors(void);
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:04:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:04:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232751.403650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauO-0004bl-H8; Fri, 26 Nov 2021 13:04:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232751.403650; Fri, 26 Nov 2021 13:04:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauO-0004bI-BF; Fri, 26 Nov 2021 13:04:56 +0000
Received: by outflank-mailman (input) for mailman id 232751;
 Fri, 26 Nov 2021 13:04:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauM-0002zD-R0
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:54 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70e59a61-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:04:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70e59a61-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931892;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=XPX2j3prxpqJwVaGqHu3muka5HpBzV+XeYCvn/fY7+U=;
  b=MKKqaR2DkJsBO02uBKIKM9xiOiWkNZYDTM/aitIIFZCDJGm+K00Ww6Ka
   YBV4iuomJF7zGpWB54JXuzc/FGi/H5LsOooVZVoPbvQ5BlMxoa5W4L+zp
   CISN2Lx55/xLyxu73DvEu6pVo+bmncIdyI8k/huwItwsy/zb46xd+Gnlw
   A=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: wZFVAOxcftvc5QFYyOSXyb9NyytxVzW/hd4h7fIAHTqenuWGoIRzVMVc9deLRWeD2n02VWNzp+
 /UYVXi7f5I/VXTGxkK5hUIWzUlZ3ysE6smbVUT5gYeOcv+WPXWoAs5/88Dii0MaPTCNtRv6OTv
 VrKB9XLJHn4KBHIU8O2jsCr6zxsvtLO01hwkr9DO5V91N0LZCN3SKs2LKphjkws5m7uaq0LlOO
 V8GNI4rsDO79iMPITcCv32vnPDU3iTflh5bhaElHriI4ujqRzjvfLV/c0ZcFzDQoPY63VFQrgK
 OaPp/Wsn79M4qPmyyGYBHWcJ
X-SBRS: 5.1
X-MesageID: 58193732
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:kS2pRK4Gzt998JaZaD0suwxRtPTAchMFZxGqfqrLsTDasY5as4F+v
 mscCj2OaPmOMDb8KtEgaYvj9hsA65XXyoNiQFFrqilgHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zy
 Il0vJ+3Uh0TIbDBvMM/dyNHPDF9BPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTa+PP
 JVCM1KDajycOkFMAEc2Ea47wtmSnHShXR9euG+88P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u10bTDwweNdef4SGY6X/qjejK9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc9oMKuQ57xqX8LXJ7iK+JEw+URFRa+Vz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVnl
 CNf8yR5xLpTZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxg5bJtbKGO3P
 BS7VeZtCHl7ZyDCgUhfOd/ZNijX5fK4SYSNug78MrKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI+cElJNhMb6epxE2C8t6gKxOrO4
 F+nXUpUlAj2iXHdcF3YYXF/crL/G514qCtjbyArOF+p3VklYJqus/hDJ8dmI+F/+bwx1+NwQ
 tkEZ96EXqZFRAPY9mlPdpL6toFjKkim3FrcIyq/bTEjVJd8XAiVqMT8dw7i+XBWXCq6vMczu
 ZO60QbfTcZRTghuFp+OOvmu00mwrT4Wn+crBxnEJdxaeUPN9ol2KnOu0q9rcp9UcRian2mUz
 QebBxsctNLhmY5t/Ymbn72AoqeoD/B6QhhQEV7E4OvkLiLd5Gein9NNCb7aYTDHWWro06y+f
 uEJnerkOfgKkVsW4YpxF7FnkfA369f1/uIIyw1lGDPAbkixC6MmKX6DhJEduqpIz75fmA23R
 kPQpYUKZeTXYJvoQAwLOQ4oTuWfzvVFyDDd4MM8LFj++CIqrqGMVl9fPkXUhSFQRFev3FjJH
 Qv1VBYq1jGC
IronPort-HdrOrdr: A9a23:/ZuFN6yCd0lGqTM+6gUFKrPwFL1zdoMgy1knxilNoRw8SKKlfq
 eV7Y0mPH7P+VAssR4b+exoVJPtfZqYz+8R3WBzB8bEYOCFghrKEGgK1+KLqFeMJ8S9zJ846U
 4JSdkHNDSaNzlHZKjBjzVQa+xQouW6zA==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58193732"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 53/65] x86/misc: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:34 +0000
Message-ID: <20211126123446.32324-54-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/extable.c | 4 ++--
 xen/common/efi/boot.c  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/extable.c b/xen/arch/x86/extable.c
index b6664264de31..4aa1ab4b2a45 100644
--- a/xen/arch/x86/extable.c
+++ b/xen/arch/x86/extable.c
@@ -23,7 +23,7 @@ static inline unsigned long ex_cont(const struct exception_table_entry *x)
 	return EX_FIELD(x, cont);
 }
 
-static int init_or_livepatch cmp_ex(const void *a, const void *b)
+static int init_or_livepatch cf_check cmp_ex(const void *a, const void *b)
 {
 	const struct exception_table_entry *l = a, *r = b;
 	unsigned long lip = ex_addr(l);
@@ -37,7 +37,7 @@ static int init_or_livepatch cmp_ex(const void *a, const void *b)
 	return 0;
 }
 
-static void init_or_livepatch swap_ex(void *a, void *b, size_t size)
+static void init_or_livepatch cf_check swap_ex(void *a, void *b, size_t size)
 {
 	struct exception_table_entry *l = a, *r = b, tmp;
 	long delta = b - a;
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 56f44f86c2c4..f5af71837d5a 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1504,7 +1504,7 @@ static __init void copy_mapping(unsigned long mfn, unsigned long end,
     unmap_domain_page(l3dst);
 }
 
-static bool __init ram_range_valid(unsigned long smfn, unsigned long emfn)
+static bool __init cf_check ram_range_valid(unsigned long smfn, unsigned long emfn)
 {
     unsigned long sz = pfn_to_pdx(emfn - 1) / PDX_GROUP_COUNT + 1;
 
@@ -1513,7 +1513,7 @@ static bool __init ram_range_valid(unsigned long smfn, unsigned long emfn)
                          pfn_to_pdx(smfn) / PDX_GROUP_COUNT) < sz;
 }
 
-static bool __init rt_range_valid(unsigned long smfn, unsigned long emfn)
+static bool __init cf_check rt_range_valid(unsigned long smfn, unsigned long emfn)
 {
     return true;
 }
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:04:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:04:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232752.403661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauP-0004tl-Sd; Fri, 26 Nov 2021 13:04:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232752.403661; Fri, 26 Nov 2021 13:04:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauP-0004sZ-M2; Fri, 26 Nov 2021 13:04:57 +0000
Received: by outflank-mailman (input) for mailman id 232752;
 Fri, 26 Nov 2021 13:04:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauN-0003W9-E0
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:55 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 718cc36b-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:04:54 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 718cc36b-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931894;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=HcmfBpauAYXuC35jOvSCXt5rS/45eJAP/EQh3RsIuyw=;
  b=HzqFQ0t33tKuw/7Z/EhqY51lMi7J767xI0E/RpvygcMftgVDjMQ30780
   1rs/or1bqqEmwWJeVYMqxb8h3mhqCjzScbo53KZB9bc8h/Tc3jF9NPGRe
   dMorJtgIzzisjQlcu5ZsTgmh2Xo2mvNOxRr/12kG65qVJH2y+hyF2QoN8
   Y=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: EVsLFuAFkDLW+JkrLW9MsUlIohhH3cb3mKa3DRvfjWtMzZ4p2H0dQLac9HgEC8oB9z8k77jkl+
 luFKIHOX0f/AnPAUrrpIO+DjgP2gxtp65MSnU7hxM4fxos0Yv0s/iHVHrk9zHKLc8hJ8pzkjdE
 YKs2BTY9A3KZZaLMC75hyeBFrD+qLtc/Dya+YD4K/9Z3/zHz90wDPtM2CsmaWpgLrSHaMFRkM/
 ndB9S2KBRmf6MserNSewHIPHR0/RpkxwevXohvYBSRRSV2GRO/uh4ByKVB3E6ql9iCy1qQDHit
 4gniXb7ekmfOxqWxPmxLT16H
X-SBRS: 5.1
X-MesageID: 58634951
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:EY52sa1f1bFNsZqlyfbD5R52kn2cJEfYwER7XKvMYLTBsI5bpzICx
 2MbD22Cb6nbNjf1fItzYImx9EMBvJ7VyNJrTAU6pC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbBh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhg/5wz
 up2mJmMdF0kAv3JnPosCzcBKnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Er8IvNsT0eqgYvWlt12rxBvc6W5HTBa7N4Le02R9t1p4VQaeDP
 qL1bxJDTgnbXwBFCGxPK4AMmur5h1WgcTdH/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 kDs8nn9AxoaHMeC0jfD+XWp7sffkCW+VI8MGbmQ8v9xnEbV1mEVEAcRV1awvb++kEHWZj5EA
 xVKoGx09/F0rRH1CImmN/GlnJKalgIyWtxvKMA/1DzXx5aE5gKHNzAqFwcUPbTKq/QKbTAt0
 1aImfbgCjpurKCZRBqhy1uEkd+hEXNLdDFfPEfoWSNAuoC++99r0nojW/46SPbt5uAZDw0c1
 NxjQMIWo7wIxfAG2Kyglbwsq2L9/8OZJuLZC+i+Y45E0u+bTNL6D2BLwQKChRqlEGp/ZgLa1
 JTjs5LDhN3i9bnXyESwrBwlRdlFHcqtPjzGmkJIFJI87Tmr8HPLVdkOu24ueho2Y5paJWSBj
 KrvVeV5v8Q70JyCN/IfXm5MI55ykfiI+SrNCpg4keaikrAuLVTarUmClGab3nz3kVhErE3ME
 czzTCpYNl5DUf4P5GPvH481iOZ3rghjlTK7bc2qlHyPjOvBDEN5vJ9YaTNimMhit/jayOgUm
 v4CX/a3J+J3DLejP3KJqNFLdjjn7xETXPjLliCeTcbbSiIOJY3rI6a5LWoJd9M3kqJLuP3P+
 33hCEZUxECm3S/MKBmQa2AlY7TqBM4toXU+NC0qHFCpx3l8Ptr/sPZBL8M6Les96ehu7f9oV
 P1ZKc+ONetCF2bc8DMHYJij8IE7LEa3hRiDNjaOaSQke8IyXBTA/9LpJ1O99CQHAietm9E5p
 rmsilHSTZYZHlwwB8fKcvO/iVi2uCFFyu51WkLJJPhVeVntr9c2e3Cg0KdvLphVexvZxzac2
 wKHOjsipLHA890v7d3EpaGYtIP1QeFwKVVXQjvA5rGsOCiEomf6md1cUPyFdCz2XX/v/Pnwf
 v1cyvzxPaFVnFtOtIYgQb9nwbhnuonqrr5eiA9lAG/KfxKgDbY5eiuK2sxGt6tswL5FuFTpB
 hLTq4cCYbjZatn4FFMxJRY+arXR3P4ZrTDe8PApLRio/yRw5reGDR1fMhTkZPax91ep3FfJG
 dschfM=
IronPort-HdrOrdr: A9a23:VV8wGaEyRdChOKgPpLqE0seALOsnbusQ8zAXP0AYc31om6uj5r
 iTdZUgpGbJYVkqKRIdcLy7V5VoBEmskaKdgrNhW4tKPjOW2ldARbsKheCJrlHd8m/Fh4lgPM
 9bAtND4bbLbWSS4/yV3ODBKadE/OW6
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58634951"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 60/65] x86/emul: Update emulation stubs to be CET-IBT compatible
Date: Fri, 26 Nov 2021 12:34:41 +0000
Message-ID: <20211126123446.32324-61-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

All indirect branches need to land on an endbr64 instruction.

For stub_selftests(), use endbr64 unconditionally for simplicity.  For ioport
and instruction emulation, add endbr64 conditionally.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/extable.c         | 14 +++++++++-----
 xen/arch/x86/pv/emul-priv-op.c |  5 +++++
 xen/arch/x86/x86_emulate.c     | 12 ++++++++++--
 3 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/extable.c b/xen/arch/x86/extable.c
index 4aa1ab4b2a45..25c6fda00d28 100644
--- a/xen/arch/x86/extable.c
+++ b/xen/arch/x86/extable.c
@@ -129,19 +129,23 @@ search_exception_table(const struct cpu_user_regs *regs)
 static int __init cf_check stub_selftest(void)
 {
     static const struct {
-        uint8_t opc[4];
+        uint8_t opc[8];
         uint64_t rax;
         union stub_exception_token res;
     } tests[] __initconst = {
-        { .opc = { 0x0f, 0xb9, 0xc3, 0xc3 }, /* ud1 */
+        { .opc = { 0xf3, 0x0f, 0x1e, 0xfa,   /* endbr64 */
+                   0x0f, 0xb9, 0xc3, 0xc3 }, /* ud1 */
           .res.fields.trapnr = TRAP_invalid_op },
-        { .opc = { 0x90, 0x02, 0x00, 0xc3 }, /* nop; add (%rax),%al */
+        { .opc = { 0xf3, 0x0f, 0x1e, 0xfa,   /* endbr64 */
+                   0x90, 0x02, 0x00, 0xc3 }, /* nop; add (%rax),%al */
           .rax = 0x0123456789abcdef,
           .res.fields.trapnr = TRAP_gp_fault },
-        { .opc = { 0x02, 0x04, 0x04, 0xc3 }, /* add (%rsp,%rax),%al */
+        { .opc = { 0xf3, 0x0f, 0x1e, 0xfa,   /* endbr64 */
+                   0x02, 0x04, 0x04, 0xc3 }, /* add (%rsp,%rax),%al */
           .rax = 0xfedcba9876543210,
           .res.fields.trapnr = TRAP_stack_error },
-        { .opc = { 0xcc, 0xc3, 0xc3, 0xc3 }, /* int3 */
+        { .opc = { 0xf3, 0x0f, 0x1e, 0xfa,   /* endbr64 */
+                   0xcc, 0xc3, 0xc3, 0xc3 }, /* int3 */
           .res.fields.trapnr = TRAP_int3 },
     };
     unsigned long addr = this_cpu(stubs.addr) + STUB_BUF_SIZE / 2;
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 808ff1873352..51638c8f7273 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -68,6 +68,9 @@ static io_emul_stub_t *io_emul_stub_setup(struct priv_op_ctxt *ctxt, u8 opcode,
      * helpers (non-standard ABI), and one of several possible stubs
      * performing the real I/O.
      */
+    static const char endbr64[] = {
+        0xf3, 0x0f, 0x1e, 0xfa, /* endbr64 */
+    };
     static const char prologue[] = {
         0x53,       /* push %rbx */
         0x55,       /* push %rbp */
@@ -111,6 +114,8 @@ static io_emul_stub_t *io_emul_stub_setup(struct priv_op_ctxt *ctxt, u8 opcode,
 
     p = ctxt->io_emul_stub;
 
+    if ( cpu_has_xen_ibt )
+        APPEND_BUFF(endbr64);
     APPEND_BUFF(prologue);
     APPEND_CALL(load_guest_gprs);
 
diff --git a/xen/arch/x86/x86_emulate.c b/xen/arch/x86/x86_emulate.c
index 60191a94dc18..8ba71a577f09 100644
--- a/xen/arch/x86/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate.c
@@ -29,11 +29,19 @@
         cpu_has_amd_erratum(&current_cpu_data, AMD_ERRATUM_##nr)
 
 #define get_stub(stb) ({                                        \
+    void *ptr;                                                  \
     BUILD_BUG_ON(STUB_BUF_SIZE / 2 < MAX_INST_LEN + 1);         \
     ASSERT(!(stb).ptr);                                         \
     (stb).addr = this_cpu(stubs.addr) + STUB_BUF_SIZE / 2;      \
-    memset(((stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn)))) +  \
-           ((stb).addr & ~PAGE_MASK), 0xcc, STUB_BUF_SIZE / 2);        \
+    (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) +    \
+        ((stb).addr & ~PAGE_MASK);                              \
+    ptr = memset((stb).ptr, 0xcc, STUB_BUF_SIZE / 2);           \
+    if ( cpu_has_xen_ibt )                                      \
+    {                                                           \
+        memcpy(ptr, "\xf3\x0f\x1e\xfa", 4); /* endbr64 */       \
+        ptr += 4;                                               \
+    }                                                           \
+    ptr;                                                        \
 })
 #define put_stub(stb) ({                                   \
     if ( (stb).ptr )                                       \
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:04:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:04:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232754.403665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauQ-0004yx-Dr; Fri, 26 Nov 2021 13:04:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232754.403665; Fri, 26 Nov 2021 13:04:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauQ-0004xK-56; Fri, 26 Nov 2021 13:04:58 +0000
Received: by outflank-mailman (input) for mailman id 232754;
 Fri, 26 Nov 2021 13:04:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauO-0003W9-JE
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:56 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73534a72-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:04:55 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73534a72-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931895;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Degf477TCtQ3FmowYF+lOZnis5KOFl3+kW7P+vUMuYY=;
  b=H+XzcUyQaqH+ckcmGQTOqLsup8sn70SJQDL+Y5z6FVYnzqTl9+h0xeDy
   8DyqmUmJI9kRWWmtQpVTFV37+5LjZmrfiPuapzqw5IzuGU9o/PR89ntrz
   ixtMjQGAlwWZquwD5vDywx0bDA1UdqXVjDACTkE6MFyPE7rV6ns+MAIji
   Q=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: S1H98ih+QfrsJlL1I6ZDXlwgw168vOd0Me5EUfzsKA+uvBpAg7qucL9EQ9wkGXRfWEsnnnBk+3
 ldVtCfDSNhdFWrQFVzEkJh++lga4vNG+ppaQCeHqucJbPjYQ/WUgUgsvTsO3hN+IyOl98UYbUK
 aUiLJ5YZ1uvHGHuj+GraK1V1SoeEWb+75XWqVWg9T4JGbrZdUW/7xcBZISFDmfa+bPQt9d4qP1
 KFQb/qpjZkcHYDaXz38nrvCeooWH9bdGyr8Z5pSG649QvOiiUWd3s01cYu29tMp17DHRHV7p2t
 mjNErD6SdXLDgMSnFIAZyDFB
X-SBRS: 5.1
X-MesageID: 58634956
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:bRQitqtRba3EWiS2HQ43Q83e9OfnVKNZMUV32f8akzHdYApBsoF/q
 tZmKW+BaP+NZ2r9L9BzOti2/B8EscLdzNVjSAtlpC8xRS1D+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npl5K2gbxsRJaL2gMsEXT1IKhlMMLIaweqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5RCNWsyMnwsZTV0Jn4bEsMcrNyplyP/QgMEgmyq9aootj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKhMHMN2SzxKV/3TqgfXA9QvgQ54bHrC88v9sgXWQy3YVBRlQUkG0ydGph0j7V99BJ
 kg8/is1sbN05EGtVsP6XRCzvDiDpBF0c/h6HvA+6QqN4rHJ+AvfDW8BJgOtc/R/6pVwH2Zzk
 AbUwZW5XlSDrYF5V1rMx6eysQupNhINAnYMQT89dTkI/IXa9dRbYg30cv5vF6u8j9vQED72w
 iyXoCVWu4j/nfLnxI3gowmZ3mvESozhC1dsu16JBj7NAhZRPdb9P+SVBU7nAeGsxWpzZn2Ip
 zA6lseX94ji5rndxXXWEI3h8FxEjstp0QEwY3YzQPHNFBz3ohZPmLy8Bhklfy+F1e5eJFfUj
 Lf741852XOqFCLCgVVLS4ywEd826qPrCM7oUPvZBvIXPMMuJFHao3AyOxLLt4wIrKTKufpkU
 Xt8WZzxZUv29Iw9lGbmLwvj+eNDKt8CKZP7GsmgkkXPPUu2b3+JU7YVWGZinchihJ5oVD79q
 o4FX+PTkk03eLSnPkH/rN5CRXhXfCNTLc2n9KRqmhurf1MO9JcJUKSKn9vMuuVNwsxoqws/1
 i3nBxIDlgOg3SavxMfjQikLVY4DlK1X9RoTVRHA937ys5T6SYrwvqoZabUterwrqL5qwfJuF
 qFXcMScGPVfDD/A/m1FP5X6qYVjcjWthB6PYHX5MGRuIcY4Slyb4MLgcyvu6DIKUni9u/whr
 uDyzQjcW5cCGVhvVZ6EdPK1wlqtlnEBg+YuDVDQK9xedRy0oohnIiD8lNEtJMQIJUmRzzeWz
 V/OUxwZufPMs8k+99yQ3fKIqIKgEu1fGEtGHjaEsebqZHeCpmf6mN1OSueFezzZRVjYwqT6a
 LUH1ez4Pd0GgE1O79h2HYF0wP9s/NDovbJbkFhpRS2Zc1SxB7p8CXCaxs0T5LZVz7pUtAbqC
 EKC/t5WZeeANM//SQNDIQMkaqKI1O0OmymU5vMweR2o6Chy9buBcENTIxjT13ANcOoraNsok
 bU7pcobyw2jkR57YN+Jgxdd+3mIMnFdAb4ssYsXAdOzhwcmor2YjUcw1sMiDEmzVuhx
IronPort-HdrOrdr: A9a23:rbnQl67AUyJohka1ZAPXwPLXdLJyesId70hD6qhwISY1TiX+rb
 HXoB17726MtN9/YgBCpTntAsa9qDbnhPpICOoqTNGftWvdyQmVxehZhOOIqVCNJ8S9zJ876U
 4JSdkENDSaNzhHZKjBjjVQa+xQpeW6zA==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58634956"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 13/65] xen: Annotate fnptr targets from open_softirq()
Date: Fri, 26 Nov 2021 12:33:54 +0000
Message-ID: <20211126123446.32324-14-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/mcheck/mce.c     | 2 +-
 xen/arch/x86/domain.c             | 2 +-
 xen/arch/x86/pv/traps.c           | 2 +-
 xen/arch/x86/smp.c                | 2 +-
 xen/arch/x86/time.c               | 2 +-
 xen/common/rcupdate.c             | 2 +-
 xen/common/sched/core.c           | 6 +++---
 xen/common/tasklet.c              | 2 +-
 xen/common/timer.c                | 2 +-
 xen/drivers/passthrough/x86/hvm.c | 2 +-
 xen/include/asm-x86/flushtlb.h    | 2 +-
 11 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 43f6c8471a90..3467e0f1a315 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1837,7 +1837,7 @@ static int mce_delayed_action(mctelem_cookie_t mctc)
 }
 
 /* Softirq Handler for this MCE# processing */
-static void mce_softirq(void)
+static void cf_check mce_softirq(void)
 {
     static DEFINE_MCE_BARRIER(mce_inside_bar);
     static DEFINE_MCE_BARRIER(mce_severity_bar);
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index f943283b2a88..1c3a1ec2a080 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2523,7 +2523,7 @@ void vcpu_mark_events_pending(struct vcpu *v)
         vcpu_kick(v);
 }
 
-static void vcpu_kick_softirq(void)
+static void cf_check vcpu_kick_softirq(void)
 {
     /*
      * Nothing to do here: we merely prevent notifiers from racing with checks
diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c
index 1d1cb0784c98..3e8ca8b6fc15 100644
--- a/xen/arch/x86/pv/traps.c
+++ b/xen/arch/x86/pv/traps.c
@@ -130,7 +130,7 @@ bool set_guest_nmi_trapbounce(void)
 
 static DEFINE_PER_CPU(struct vcpu *, softirq_nmi_vcpu);
 
-static void nmi_softirq(void)
+static void cf_check nmi_softirq(void)
 {
     struct vcpu **v_ptr = &this_cpu(softirq_nmi_vcpu);
 
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index f6fd7f95df58..b9a696f61963 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -290,7 +290,7 @@ void flush_area_mask(const cpumask_t *mask, const void *va, unsigned int flags)
 }
 
 /* Call with no locks held and interrupts enabled (e.g., softirq context). */
-void new_tlbflush_clock_period(void)
+void cf_check new_tlbflush_clock_period(void)
 {
     cpumask_t allbutself;
 
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index ea34b4343c17..1ebf5fca96cc 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1450,7 +1450,7 @@ int cpu_frequency_change(u64 freq)
 static DEFINE_PER_CPU(struct cpu_time_stamp, cpu_calibration);
 
 /* Softirq handler for per-CPU time calibration. */
-static void local_time_calibration(void)
+static void cf_check local_time_calibration(void)
 {
     struct cpu_time *t = &this_cpu(cpu_time);
     const struct cpu_time_stamp *c = &this_cpu(cpu_calibration);
diff --git a/xen/common/rcupdate.c b/xen/common/rcupdate.c
index 423d6b1d6d02..212a99acd8c8 100644
--- a/xen/common/rcupdate.c
+++ b/xen/common/rcupdate.c
@@ -466,7 +466,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp,
         rcu_do_batch(rdp);
 }
 
-static void rcu_process_callbacks(void)
+static void cf_check rcu_process_callbacks(void)
 {
     struct rcu_data *rdp = &this_cpu(rcu_data);
 
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 285de9ee2a19..b1836b591c0a 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2568,7 +2568,7 @@ static struct sched_unit *sched_wait_rendezvous_in(struct sched_unit *prev,
     return prev->next_task;
 }
 
-static void sched_slave(void)
+static void cf_check sched_slave(void)
 {
     struct vcpu          *v, *vprev = current;
     struct sched_unit    *prev = vprev->sched_unit, *next;
@@ -2632,7 +2632,7 @@ static void sched_slave(void)
  * - deschedule the current domain (scheduler independent).
  * - pick a new domain (scheduler dependent).
  */
-static void schedule(void)
+static void cf_check schedule(void)
 {
     struct vcpu          *vnext, *vprev = current;
     struct sched_unit    *prev = vprev->sched_unit, *next = NULL;
@@ -2928,7 +2928,7 @@ const cpumask_t *sched_get_opt_cpumask(enum sched_gran opt, unsigned int cpu)
     return mask;
 }
 
-static void schedule_dummy(void)
+static void cf_check schedule_dummy(void)
 {
     sched_tasklet_check_cpu(smp_processor_id());
 }
diff --git a/xen/common/tasklet.c b/xen/common/tasklet.c
index 1b16bbcdeb0b..3ad67b5c2493 100644
--- a/xen/common/tasklet.c
+++ b/xen/common/tasklet.c
@@ -135,7 +135,7 @@ void do_tasklet(void)
 }
 
 /* Softirq context work */
-static void tasklet_softirq_action(void)
+static void cf_check tasklet_softirq_action(void)
 {
     unsigned int cpu = smp_processor_id();
     struct list_head *list = &per_cpu(softirq_tasklet_list, cpu);
diff --git a/xen/common/timer.c b/xen/common/timer.c
index b788050ea1d8..700f191a70b4 100644
--- a/xen/common/timer.c
+++ b/xen/common/timer.c
@@ -450,7 +450,7 @@ static void execute_timer(struct timers *ts, struct timer *t)
 }
 
 
-static void timer_softirq_action(void)
+static void cf_check timer_softirq_action(void)
 {
     struct timer  *t, **heap, *next;
     struct timers *ts;
diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
index fef350ef3a1d..7a6d9ac3d40d 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -999,7 +999,7 @@ int arch_pci_clean_pirqs(struct domain *d)
  * Note: 'pt_pirq_softirq_reset' can clear the STATE_SCHED before we get to
  * doing it. If that is the case we let 'pt_pirq_softirq_reset' do ref-counting.
  */
-static void dpci_softirq(void)
+static void cf_check dpci_softirq(void)
 {
     unsigned int cpu = smp_processor_id();
     LIST_HEAD(our_list);
diff --git a/xen/include/asm-x86/flushtlb.h b/xen/include/asm-x86/flushtlb.h
index 0be2273387ed..18777f1d4c00 100644
--- a/xen/include/asm-x86/flushtlb.h
+++ b/xen/include/asm-x86/flushtlb.h
@@ -87,7 +87,7 @@ static inline void tlbflush_filter(cpumask_t *mask, uint32_t page_timestamp)
             __cpumask_clear_cpu(cpu, mask);
 }
 
-void new_tlbflush_clock_period(void);
+void cf_check new_tlbflush_clock_period(void);
 
 /* Read pagetable base. */
 static inline unsigned long read_cr3(void)
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:04:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232755.403674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauR-0005Gk-JB; Fri, 26 Nov 2021 13:04:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232755.403674; Fri, 26 Nov 2021 13:04:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauR-0005EM-9j; Fri, 26 Nov 2021 13:04:59 +0000
Received: by outflank-mailman (input) for mailman id 232755;
 Fri, 26 Nov 2021 13:04:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauQ-0002zD-BW
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:58 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 73a512a7-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:04:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73a512a7-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931897;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=kxMBCLxYJcgL5gD+raiROxZG9c0M3vO+3cMFtFlzQtM=;
  b=U4QDuJ8CsthjleWF4gs0sYogp9IWHGUAqNa71fIAL8I3OZb0qIKw2qeU
   KMXHx2jcyT2o31wIumbIxQavCN5pcjcg2JAqtclJp3SkGMmquL4yMzcI3
   +Dh0kRrMACom30MGX0GisZ5EvNSw3IU/lbkEnQza/Sxhb1rVzMwNYutdb
   A=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: TDmvKVtgsxQpQCb6YRl/gPx5kb4NDDZGF2hDYlO2IQ5Stx9TmORE+dBNqRDQhyR6bAU4hcxcR4
 ARuU9IXn1ocZhop4HrdU0p+YOgPYHd3ex21BecHQSvSQoN3EpVDDtYQtdhi7b/KQDVdlh1ykHy
 Z5owYzt09pLFXYg3ZAf9rwm0GVkcQgNI/+URoyFrbSIcHqiSXYeVY8eYZN3ZFQV5Ob1cYinhwL
 PMqvmBnbm4Magh7d7B3MJ/3Cv/8Z8mXhV88ttV9tQJ/HpItw7dQpExT585ylrZrVjwMtSad2zj
 /GwGg0MR+bkt6xD+FAi7OKYu
X-SBRS: 5.1
X-MesageID: 59063944
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ejN0KahhiOQTLuwy1gD0VXAEX161rRcKZh0ujC45NGQN5FlHY01je
 htvW22Eb6uJa2akKtl/b9nk9RhT7JaHmNJhQAtvqilnFiob9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy34Dja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1tsZa6VQgXYZfps+EjTxAENz1UGpR/reqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNauPP
 5RCOGYzBPjGS0FXCHUyCYwRpeGHjWvvXRtKtWyyq6VitgA/yyQuieOwYbI5YOeiWsF9jkue4
 GXc8AzRIDsXKdiewjqt6W+3i6nEmiaTcJIfEvi0++BnhHWXx3cPE1sGWF2ju/67h0WiHdVFJ
 CQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4M+kw4h2C9PXuxi2cOHQNEhpdQvsfjZpjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swJP2AAcmV8zlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybZZaJGC4P
 BGP4mu9AaO/2lPxNsebhKrrVqwXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDlJI5fsLXkJIuSJRoxZybXF+
 G+TQEhdxAatjHHLM1zSOHtidKnuTdB0qndiZX4gOlOh2n4CZ4ez7fhAK8trLOd/rOEzn+RpS
 /QletmbBqgdQDrw5DlAP4L2q5ZvdUr3iFvWbTalejU2Y7VpWxfNpo3/ZgLq+SRXVni3uMIyr
 qeOzATeRZZfFQ1uANyPMKCkzk+rvGhbk+V3BhOaLt5WcUTq0Y5rNy2u0aNnf5BScU3On2LI2
 RyXDBEUofj2j7U0qNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVtH79h8HrJswf5s7tfjveYHnAFtHXGNZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQy2vb4vkCKUnn4DN6oeicWkJIMhjQ0CFQIdOZ6m/+L
 TvNbCLO1zGCtw==
IronPort-HdrOrdr: A9a23:HiDd16zUmy4CE7xUWPaPKrPwFL1zdoMgy1knxilNoRw8SKKlfq
 eV7Y0mPH7P+VAssR4b+exoVJPtfZqYz+8R3WBzB8bEYOCFghrKEGgK1+KLqFeMJ8S9zJ846U
 4JSdkHNDSaNzlHZKjBjzVQa+xQouW6zA==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59063944"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 42/65] x86/guest: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:23 +0000
Message-ID: <20211126123446.32324-43-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/guest/hyperv/hyperv.c | 10 +++++-----
 xen/arch/x86/guest/xen/xen.c       | 11 ++++++-----
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
index 84221b751453..b101ba3080b4 100644
--- a/xen/arch/x86/guest/hyperv/hyperv.c
+++ b/xen/arch/x86/guest/hyperv/hyperv.c
@@ -175,7 +175,7 @@ static int setup_vp_assist(void)
     return 0;
 }
 
-static void __init setup(void)
+static void __init cf_check setup(void)
 {
     ASM_CONSTANT(HV_HCALL_PAGE, __fix_x_to_virt(FIX_X_HYPERV_HCALL));
 
@@ -188,7 +188,7 @@ static void __init setup(void)
         panic("VP assist page setup failed\n");
 }
 
-static int ap_setup(void)
+static int cf_check ap_setup(void)
 {
     int rc;
 
@@ -199,7 +199,7 @@ static int ap_setup(void)
     return setup_vp_assist();
 }
 
-static void __init e820_fixup(struct e820map *e820)
+static void __init cf_check e820_fixup(struct e820map *e820)
 {
     uint64_t s = HV_HCALL_MFN << PAGE_SHIFT;
 
@@ -207,8 +207,8 @@ static void __init e820_fixup(struct e820map *e820)
         panic("Unable to reserve Hyper-V hypercall range\n");
 }
 
-static int flush_tlb(const cpumask_t *mask, const void *va,
-                     unsigned int flags)
+static int cf_check flush_tlb(
+    const cpumask_t *mask, const void *va, unsigned int flags)
 {
     if ( !(ms_hyperv.hints & HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED) )
         return -EOPNOTSUPP;
diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
index 17807cdea688..9c2defaa6621 100644
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -237,7 +237,7 @@ static int init_evtchn(void)
     return rc;
 }
 
-static void __init setup(void)
+static void __init cf_check setup(void)
 {
     init_memmap();
 
@@ -265,7 +265,7 @@ static void __init setup(void)
     BUG_ON(init_evtchn());
 }
 
-static int ap_setup(void)
+static int cf_check ap_setup(void)
 {
     set_vcpu_id();
 
@@ -295,7 +295,7 @@ static void cf_check ap_resume(void *unused)
     BUG_ON(init_evtchn());
 }
 
-static void resume(void)
+static void cf_check resume(void)
 {
     /* Reset shared info page. */
     map_shared_info();
@@ -318,13 +318,14 @@ static void resume(void)
         pv_console_init();
 }
 
-static void __init e820_fixup(struct e820map *e820)
+static void __init cf_check e820_fixup(struct e820map *e820)
 {
     if ( pv_shim )
         pv_shim_fixup_e820(e820);
 }
 
-static int flush_tlb(const cpumask_t *mask, const void *va, unsigned int flags)
+static int cf_check flush_tlb(
+    const cpumask_t *mask, const void *va, unsigned int flags)
 {
     return xen_hypercall_hvm_op(HVMOP_flush_tlbs, NULL);
 }
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:05:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:05:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232757.403694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauU-000606-C1; Fri, 26 Nov 2021 13:05:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232757.403694; Fri, 26 Nov 2021 13:05:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauU-0005zA-1n; Fri, 26 Nov 2021 13:05:02 +0000
Received: by outflank-mailman (input) for mailman id 232757;
 Fri, 26 Nov 2021 13:04:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauR-0002zD-GO
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:59 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 750f485a-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:04:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 750f485a-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931898;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=1m9xOwxe8Ri/U/q6tx5wCyVpE1aVwbjAxBpIt6ZgzWI=;
  b=LmGn6gUg8ZzrV7/hXfyjVbWQYvWf6UB71QJMCZmh+um8kruuhkzpkoV2
   Jz5l1tNUMojmV4K9hXIuINgg+KC+ymp4qUbWRLWnl/dN1SxbsKJ6P24kq
   +y3nqE2nAcqS1J1ygdUjCxW2J6IA81UZ56W11nlie8WXvV6aZg5mVKdzI
   g=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: uhEoPZybOJgCWemvUXicnrQPzSPxjiFlhay76PvHGtGlfRUkPIrbwG9xRGYIx3r/c51cAPKXU6
 n4YUzHkeONztXQgdJ+NrQH0leKkXA63/8B2AFMUdObluYbuOtSU6bHW4W0jTK9rWlaxMGEAvbl
 jMXqJTd/uW/c+zFdcDdWf6IunPNfMJF4yyUG4blthdKqCLWRfmDzdyehbUUVUF54z5kWgNp5gc
 qy4Gcs2pNR1DvCQc4wIkn4mlMqPnHixrynWq/96tIo5gOub0rcVpQbeN8jxTLRPP9TFsRzJ4FL
 5FqqVDGfk8BJy3UUESLdxWz/
X-SBRS: 5.1
X-MesageID: 59063946
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:I3tceq4QwI85Mvi30N9NjAxRtPXAchMFZxGqfqrLsTDasY5as4F+v
 msbWmCCbK3fZGqhKIt0bY/jpkIA6MPczYdnQQZr+SA2Hi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z9
 M9MqqOqdUQQEIKWl8A6VTV0MjBEIvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTK6AP
 JtFN1KDajzvajEUZ3w7FKkZs8iyokfaWDBgsQiK8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u10bTDwweNdef4SGY6X/qjejK9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc+ZKEvIF8j3O84T7uQm9IW4oYh9QUsNz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVnl
 CNf8yR5xLpTZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxg5bJtbKGO3P
 BS7VeZtCHl7ZyDCgUhfOd/ZNijX5fK4SYSNug78MrKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI+cElJNhMb6epJl1VNk/sHm+HW0
 Gu6X0MEmlPziWeecVeBa2x5aaOpVpF69CppMSspNFeu+n4ifYfws/tPK8ppJeEqpL550Pp5b
 /gZYMHcUP5BfSvKpmYGZp7noY08KBny3VCSPzCoaSQUdoJ7Q1Cb4cftewbirXFcDie+ucYkj
 aen0wfXHcgKSwh4VZ6EY/Oz1VKh+3ManbsqDUfPJ9BSfmTq8ZRrdHOt3qNmfZlUJEyalDWA1
 guQDRMJnsX3otc4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKkQoYs4d4FLo3n6sy68G2+u1fxwVgWn7Kc06qGvVrJXzfhZtDsahEx7l4vwqqW
 x3QpokGaOvRYM61QkQMIAcFb/iY0aBGkzbf2v05PUHm6XIl57GAS0hTY0GBhSE1wGGZ62/5L
 TPNYPIr1jE=
IronPort-HdrOrdr: A9a23:+qFMb6hWCXZxiPKLBE5zCf9byXBQXuIji2hC6mlwRA09TySZ//
 rBoB19726MtN9xYgBHpTnuAsm9qB/nmaKdpLNhWItKPzOW31dATrsSjrcKqgeIc0aVm9K1l5
 0QF5SWYOeAdWSS5vya3ODXKbkdKaG8gcKVuds=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59063946"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 34/65] x86/nmi: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:15 +0000
Message-ID: <20211126123446.32324-35-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/alternative.c        | 4 ++--
 xen/arch/x86/cpu/microcode/core.c | 3 ++-
 xen/arch/x86/crash.c              | 3 ++-
 xen/arch/x86/livepatch.c          | 2 +-
 xen/arch/x86/oprofile/nmi_int.c   | 2 +-
 xen/arch/x86/traps.c              | 3 ++-
 6 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 1cb531c9df83..436047abe021 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -324,8 +324,8 @@ static unsigned int __initdata alt_done;
  * condition where an NMI hits while we are midway though patching some
  * instructions in the NMI path.
  */
-static int __init nmi_apply_alternatives(const struct cpu_user_regs *regs,
-                                         int cpu)
+static int __init cf_check nmi_apply_alternatives(
+    const struct cpu_user_regs *regs, int cpu)
 {
     /*
      * More than one NMI may occur between the two set_nmi_callback() below.
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index c07f68ba350e..f84dafa82693 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -376,7 +376,8 @@ static int primary_thread_work(const struct microcode_patch *patch)
     return ret;
 }
 
-static int microcode_nmi_callback(const struct cpu_user_regs *regs, int cpu)
+static int cf_check microcode_nmi_callback(
+    const struct cpu_user_regs *regs, int cpu)
 {
     unsigned int primary = cpumask_first(this_cpu(cpu_sibling_mask));
     int ret;
diff --git a/xen/arch/x86/crash.c b/xen/arch/x86/crash.c
index f6264946a681..c383f718f5bd 100644
--- a/xen/arch/x86/crash.c
+++ b/xen/arch/x86/crash.c
@@ -36,7 +36,8 @@ static unsigned int crashing_cpu;
 static DEFINE_PER_CPU_READ_MOSTLY(bool, crash_save_done);
 
 /* This becomes the NMI handler for non-crashing CPUs, when Xen is crashing. */
-static int noreturn do_nmi_crash(const struct cpu_user_regs *regs, int cpu)
+static int noreturn cf_check do_nmi_crash(
+    const struct cpu_user_regs *regs, int cpu)
 {
     stac();
 
diff --git a/xen/arch/x86/livepatch.c b/xen/arch/x86/livepatch.c
index 49f0d902e5bb..ea5fa832e4a4 100644
--- a/xen/arch/x86/livepatch.c
+++ b/xen/arch/x86/livepatch.c
@@ -174,7 +174,7 @@ static nmi_callback_t *saved_nmi_callback;
  * Note that because of this NOP code the do_nmi is not safely patchable.
  * Also if we do receive 'real' NMIs we have lost them.
  */
-static int mask_nmi_callback(const struct cpu_user_regs *regs, int cpu)
+static int cf_check mask_nmi_callback(const struct cpu_user_regs *regs, int cpu)
 {
     /* TODO: Handle missing NMI/MCE.*/
     return 1;
diff --git a/xen/arch/x86/oprofile/nmi_int.c b/xen/arch/x86/oprofile/nmi_int.c
index 6ebe20bd1d3e..a90b72825818 100644
--- a/xen/arch/x86/oprofile/nmi_int.c
+++ b/xen/arch/x86/oprofile/nmi_int.c
@@ -95,7 +95,7 @@ bool nmi_oprofile_send_virq(void)
 	return v;
 }
 
-static int nmi_callback(const struct cpu_user_regs *regs, int cpu)
+static int cf_check nmi_callback(const struct cpu_user_regs *regs, int cpu)
 {
 	int xen_mode, ovf;
 
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 07981db74cff..76b1b779b33c 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -741,7 +741,8 @@ static cpumask_t show_state_mask;
 static bool opt_show_all;
 boolean_param("async-show-all", opt_show_all);
 
-static int nmi_show_execution_state(const struct cpu_user_regs *regs, int cpu)
+static int cf_check nmi_show_execution_state(
+    const struct cpu_user_regs *regs, int cpu)
 {
     if ( !cpumask_test_cpu(cpu, &show_state_mask) )
         return 0;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:05:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:05:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232758.403700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauV-00069F-C4; Fri, 26 Nov 2021 13:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232758.403700; Fri, 26 Nov 2021 13:05:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauU-00067X-Ni; Fri, 26 Nov 2021 13:05:02 +0000
Received: by outflank-mailman (input) for mailman id 232758;
 Fri, 26 Nov 2021 13:04:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauR-0003W9-Ix
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:04:59 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7473ae67-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:04:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7473ae67-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931898;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Hp7PZvlLpwuVUaikk4pFAoTgRxWIqAcdM9EjJyWnZJg=;
  b=dZzm/MGH1Jqk1akeIXrgrGFYozVW/g0fzFW9p7d/ILmzGGAVn2/BuNmL
   7+R6fim1M0PI/IjlmKi+Jv4JRuc+b1C3r2hXLRdaEdDKbTD/bpc3GNf1K
   VbefWtBvk3cNGlvMAnaY0wjLC27Zvrac9W+J9joP/BUkmtU6csatpQORj
   A=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 754iWkJep8g+aBPCoWQR/vX+YgDFkxXAhDT/yLpwpAyIC6+JFXFmqjFuwwEeoAIPigJcjyBvaU
 uOdUKbi8xZ0qWPZ7r8QkLz3Y4ghp3APc7SLN/Kp0VSCkYrO+H6gAkKwmbFUz9G/FI2HaftZfpb
 nl47wDu27YTjLSmxsgQWFMyKrmpulgDURSOcyl8elsW4WHNZfdfLjrrs7aRgABcNdcgH8iUyur
 +TbczlghJvY+UhrEbcm95F2nLLLxwBAnvRdoQXDyV5WWlfJgm204PsaxfL+0O2mhCwvLrIjPtz
 0dJdejd92KNut03CEFkqUYm2
X-SBRS: 5.1
X-MesageID: 59063951
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:N0Whf6jGAEHyjN7/GcMxLQtCX161rRcKZh0ujC45NGQN5FlHY01je
 htvXGHSO6yJYWugKIhwPoq3/EIEu5aBm9UxHQo4qCxmQSob9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy34Dja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /18jJqITw4jb5H+neAQbBBpQyNAeql/reqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNauPP
 5RCOGc2BPjGSwNhF1YlUc4cpsuThXinbCR2gWqroZNitgA/yyQuieOwYbI5YOeiWsF9jkue4
 GXc8AzRIDsXKdiewjqt6W+3i6nEmiaTcJIfEvi0++BnhHWXx3cPE1sGWF2ju/67h0WiHdVFJ
 CQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4ItQ80AeEwPvo0QOdC1cNf25DVpsijZpjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swJP2AAcmV8zlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybZZaJGC4P
 BGP4mu9AaO/2lPxNsebhKrrVqwXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDlJI5fsLXkJIuSJRoxZybXF+
 G+TQEhdxAatjHHLM1zSOHtidKnuTdB0qndiZX4gOlOh2n4CZ4ez7fhAK8trLOd/rOEzn+RpS
 /QletmbBqgdQDrw5DlAP4L2q5ZvdUr3iFvWbTalejU2Y7VpWxfNpo3/ZgLq+SRXVni3uMIyr
 qeOzATeRZZfFQ1uANyPMKCkzk+rvGhbk+V3BhOaLt5WcUTq0Y5rNy2u0aNnf5BScU3On2LI2
 RyXDBEUofj2j7U0qNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVtH79h8HrJswf5s7tfjveYHnAFtHXGNZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQy2vb4vkCKUnn4DN6oeicWkJIMhjQ0CFQIdOZ6m/+L
 TvNbCLO1zGCtw==
IronPort-HdrOrdr: A9a23:RbVoy6ElWyrGWX9upLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59063951"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 50/65] x86/dpci: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:31 +0000
Message-ID: <20211126123446.32324-51-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/hvm/hvm.c                | 4 ++--
 xen/drivers/passthrough/vtd/x86/hvm.c | 4 ++--
 xen/drivers/passthrough/x86/hvm.c     | 8 ++++----
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index d5ca7a1ce636..1fba0efc54d1 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -513,8 +513,8 @@ void hvm_migrate_pirq(struct hvm_pirq_dpci *pirq_dpci, const struct vcpu *v)
     }
 }
 
-static int migrate_pirq(struct domain *d, struct hvm_pirq_dpci *pirq_dpci,
-                        void *arg)
+static int cf_check migrate_pirq(
+    struct domain *d, struct hvm_pirq_dpci *pirq_dpci, void *arg)
 {
     hvm_migrate_pirq(pirq_dpci, arg);
 
diff --git a/xen/drivers/passthrough/vtd/x86/hvm.c b/xen/drivers/passthrough/vtd/x86/hvm.c
index b531fe907a94..132d252d1cca 100644
--- a/xen/drivers/passthrough/vtd/x86/hvm.c
+++ b/xen/drivers/passthrough/vtd/x86/hvm.c
@@ -21,8 +21,8 @@
 #include <xen/irq.h>
 #include <xen/sched.h>
 
-static int _hvm_dpci_isairq_eoi(struct domain *d,
-                                struct hvm_pirq_dpci *pirq_dpci, void *arg)
+static int cf_check _hvm_dpci_isairq_eoi(
+    struct domain *d, struct hvm_pirq_dpci *pirq_dpci, void *arg)
 {
     struct hvm_irq *hvm_irq = hvm_domain_irq(d);
     unsigned int isairq = (long)arg;
diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
index 7a6d9ac3d40d..085d47beb44d 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -773,8 +773,8 @@ static void __msi_pirq_eoi(struct hvm_pirq_dpci *pirq_dpci)
     }
 }
 
-static int _hvm_dpci_msi_eoi(struct domain *d,
-                             struct hvm_pirq_dpci *pirq_dpci, void *arg)
+static int cf_check _hvm_dpci_msi_eoi(
+    struct domain *d, struct hvm_pirq_dpci *pirq_dpci, void *arg)
 {
     int vector = (long)arg;
 
@@ -943,8 +943,8 @@ void hvm_dpci_eoi(struct domain *d, unsigned int guest_gsi)
     spin_unlock(&d->event_lock);
 }
 
-static int pci_clean_dpci_irq(struct domain *d,
-                              struct hvm_pirq_dpci *pirq_dpci, void *arg)
+static int cf_check pci_clean_dpci_irq(
+    struct domain *d, struct hvm_pirq_dpci *pirq_dpci, void *arg)
 {
     struct dev_intx_gsi_link *digl, *tmp;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:05:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232761.403711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauW-0006Wx-UC; Fri, 26 Nov 2021 13:05:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232761.403711; Fri, 26 Nov 2021 13:05:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauW-0006UI-Al; Fri, 26 Nov 2021 13:05:04 +0000
Received: by outflank-mailman (input) for mailman id 232761;
 Fri, 26 Nov 2021 13:05:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauU-0003W9-Hl
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:02 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 761fdb9a-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 761fdb9a-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931901;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=2MB3qO+z9Cw8CtOS8rAbbOlsadBbIGcPOzvcS4Y5AMw=;
  b=Q8fp2z2QkkCRgJcVfS0aq+7+/2k45A6Pi4rYF0Krb0tvXHkICO1nh2Th
   E6mWp2nStjpIMUgok7KyeGDn+e8+sSsCRwtNW7hrbRz7JbNPumU58Fw+a
   WTu6XtFeOeZnM2pUgTnsKVps0g6S1fUwNakdvhuaC4Wjix65useRtVRto
   s=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: fcaLdGsmvyl8paTutvujKAQ2Sjig0Idrq2+Hw1Hqs/WgsogmQAVCx6mNxqYZHfvs+L4k/+RJHb
 2/g71yJ8pOJOKZqIedrny2kDrRAxFmn8RVIkpYv4OEQ0GdEfm1CaErA7sjnAGsL7HTuOhY0bYs
 ZQD7O1jKdNHdMaG0Ivk1D5DtOLtIneRRHaI4bgxJDJQFbCpcJJRMkzQZZRw0VP7I1CMBmYLoqu
 aDXwg980SI405pupDGVtY8ykBhg2zo+7RJHZI04S/V16vSU1gt4k0YlVKLEZgl97kdLRx2Kk3E
 0uw4TzA00ursUuVOtYSVADx3
X-SBRS: 5.1
X-MesageID: 58676339
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:olExu6s4CqaTQcFRX6vhfHOsd+fnVJtZMUV32f8akzHdYApBsoF/q
 tZmKWjSOv+ON2ryKYp+bo/g9UkE75CGn9cyHAo4r31gF3sR+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplksWpeCIgN+71yeEfThdbAjNfNOpK9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5RGN2E0PXwsZTVCAXkuBK8judyyxUneLAQFqVeFr4sotj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO8pj8TCow6OX2lecBHUKTS9TSdVhuMBjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSEhRqjBNzAJrVkg
 JTis5PFhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlUJ2K2M
 RON5Vg5CHpv0J2CNvQfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9UNc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:y0C4s6t7uZnB5RRmgOL1rklZ7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpGbJYVcqKRcdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyJMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676339"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 52/65] x86/time: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:33 +0000
Message-ID: <20211126123446.32324-53-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/hpet.c        |  8 ++++----
 xen/arch/x86/time.c        | 33 +++++++++++++++++----------------
 xen/include/asm-x86/hpet.h |  4 ++--
 3 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index dcc9e16693e9..2b00c30d1153 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -196,7 +196,7 @@ static void evt_do_broadcast(cpumask_t *mask)
        cpumask_raise_softirq(mask, TIMER_SOFTIRQ);
 }
 
-static void handle_hpet_broadcast(struct hpet_event_channel *ch)
+static void cf_check handle_hpet_broadcast(struct hpet_event_channel *ch)
 {
     cpumask_t mask;
     s_time_t now, next_event;
@@ -553,7 +553,7 @@ static void hpet_detach_channel(unsigned int cpu,
 
 void (*__read_mostly pv_rtc_handler)(uint8_t index, uint8_t value);
 
-static void handle_rtc_once(uint8_t index, uint8_t value)
+static void cf_check handle_rtc_once(uint8_t index, uint8_t value)
 {
     if ( index != RTC_REG_B )
         return;
@@ -566,7 +566,7 @@ static void handle_rtc_once(uint8_t index, uint8_t value)
     }
 }
 
-void __init hpet_broadcast_init(void)
+void __init cf_check hpet_broadcast_init(void)
 {
     u64 hpet_rate = hpet_setup();
     u32 hpet_id, cfg;
@@ -637,7 +637,7 @@ void __init hpet_broadcast_init(void)
         hpet_events->flags = HPET_EVT_LEGACY;
 }
 
-void hpet_broadcast_resume(void)
+void cf_check hpet_broadcast_resume(void)
 {
     u32 cfg;
     unsigned int i, n;
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index ef036a187415..cce1d56b2ddd 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -292,7 +292,7 @@ static char *freq_string(u64 freq)
  * PLATFORM TIMER 1: PROGRAMMABLE INTERVAL TIMER (LEGACY PIT)
  */
 
-static u64 read_pit_count(void)
+static u64 cf_check read_pit_count(void)
 {
     u16 count16;
     u32 count32;
@@ -311,7 +311,7 @@ static u64 read_pit_count(void)
     return count32;
 }
 
-static s64 __init init_pit(struct platform_timesource *pts)
+static s64 __init cf_check init_pit(struct platform_timesource *pts)
 {
     u8 portb = inb(0x61);
     u64 start, end;
@@ -348,7 +348,7 @@ static s64 __init init_pit(struct platform_timesource *pts)
     return (end - start) * CALIBRATE_FRAC;
 }
 
-static void resume_pit(struct platform_timesource *pts)
+static void cf_check resume_pit(struct platform_timesource *pts)
 {
     /* Set CTC channel 2 to mode 0 again; initial value does not matter. */
     outb(0xb0, PIT_MODE); /* binary, mode 0, LSB/MSB, Ch 2 */
@@ -371,12 +371,12 @@ static struct platform_timesource __initdata plt_pit =
  * PLATFORM TIMER 2: HIGH PRECISION EVENT TIMER (HPET)
  */
 
-static u64 read_hpet_count(void)
+static u64 cf_check read_hpet_count(void)
 {
     return hpet_read32(HPET_COUNTER);
 }
 
-static int64_t __init init_hpet(struct platform_timesource *pts)
+static int64_t __init cf_check init_hpet(struct platform_timesource *pts)
 {
     uint64_t hpet_rate, start;
     uint32_t count, target;
@@ -462,7 +462,7 @@ static int64_t __init init_hpet(struct platform_timesource *pts)
     return (rdtsc_ordered() - start) * CALIBRATE_FRAC;
 }
 
-static void resume_hpet(struct platform_timesource *pts)
+static void cf_check resume_hpet(struct platform_timesource *pts)
 {
     hpet_resume(NULL);
 }
@@ -487,12 +487,12 @@ unsigned int __initdata pmtmr_width;
 /* ACPI PM timer ticks at 3.579545 MHz. */
 #define ACPI_PM_FREQUENCY 3579545
 
-static u64 read_pmtimer_count(void)
+static u64 cf_check read_pmtimer_count(void)
 {
     return inl(pmtmr_ioport);
 }
 
-static s64 __init init_pmtimer(struct platform_timesource *pts)
+static s64 __init cf_check init_pmtimer(struct platform_timesource *pts)
 {
     u64 start;
     u32 count, target, mask;
@@ -557,7 +557,7 @@ static unsigned int __initdata tsc_flags;
  * Called in verify_tsc_reliability() under reliable TSC conditions
  * thus reusing all the checks already performed there.
  */
-static s64 __init init_tsc(struct platform_timesource *pts)
+static s64 __init cf_check init_tsc(struct platform_timesource *pts)
 {
     u64 ret = pts->frequency;
 
@@ -579,7 +579,7 @@ static s64 __init init_tsc(struct platform_timesource *pts)
     return ret;
 }
 
-static u64 read_tsc(void)
+static u64 cf_check read_tsc(void)
 {
     return rdtsc_ordered();
 }
@@ -621,7 +621,7 @@ static uint64_t xen_timer_cpu_frequency(void)
     return freq;
 }
 
-static int64_t __init init_xen_timer(struct platform_timesource *pts)
+static int64_t __init cf_check init_xen_timer(struct platform_timesource *pts)
 {
     if ( !xen_guest )
         return 0;
@@ -642,7 +642,7 @@ static always_inline uint64_t read_cycle(const struct vcpu_time_info *info,
     return info->system_time + offset;
 }
 
-static uint64_t read_xen_timer(void)
+static uint64_t cf_check read_xen_timer(void)
 {
     struct vcpu_time_info *info = &this_cpu(vcpu_info)->time;
     uint32_t version;
@@ -671,7 +671,7 @@ static uint64_t read_xen_timer(void)
     return ret;
 }
 
-static void resume_xen_timer(struct platform_timesource *pts)
+static void cf_check resume_xen_timer(struct platform_timesource *pts)
 {
     write_atomic(&xen_timer_last, 0);
 }
@@ -697,7 +697,8 @@ static struct platform_timesource __initdata plt_xen_timer =
 static struct ms_hyperv_tsc_page *hyperv_tsc;
 static struct page_info *hyperv_tsc_page;
 
-static int64_t __init init_hyperv_timer(struct platform_timesource *pts)
+static int64_t __init cf_check init_hyperv_timer(
+    struct platform_timesource *pts)
 {
     paddr_t maddr;
     uint64_t tsc_msr, freq;
@@ -740,7 +741,7 @@ static int64_t __init init_hyperv_timer(struct platform_timesource *pts)
     return freq;
 }
 
-static uint64_t read_hyperv_timer(void)
+static uint64_t cf_check read_hyperv_timer(void)
 {
     uint64_t scale, ret, tsc;
     int64_t offset;
@@ -1716,7 +1717,7 @@ time_calibration_rendezvous_tail(const struct calibration_rendezvous *r,
  * Keep TSCs in sync when they run at the same rate, but may stop in
  * deep-sleep C states.
  */
-static void time_calibration_tsc_rendezvous(void *_r)
+static void cf_check time_calibration_tsc_rendezvous(void *_r)
 {
     int i;
     struct calibration_rendezvous *r = _r;
diff --git a/xen/include/asm-x86/hpet.h b/xen/include/asm-x86/hpet.h
index f343fe4740f1..9919f7473071 100644
--- a/xen/include/asm-x86/hpet.h
+++ b/xen/include/asm-x86/hpet.h
@@ -89,8 +89,8 @@ void hpet_disable_legacy_replacement_mode(void);
  * Temporarily use an HPET event counter for timer interrupt handling,
  * rather than using the LAPIC timer. Used for Cx state entry.
  */
-void hpet_broadcast_init(void);
-void hpet_broadcast_resume(void);
+void cf_check hpet_broadcast_init(void);
+void cf_check hpet_broadcast_resume(void);
 void cf_check hpet_broadcast_enter(void);
 void cf_check hpet_broadcast_exit(void);
 int hpet_broadcast_is_available(void);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:05:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:05:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232762.403723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauY-000738-Um; Fri, 26 Nov 2021 13:05:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232762.403723; Fri, 26 Nov 2021 13:05:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqauY-00071M-Lu; Fri, 26 Nov 2021 13:05:06 +0000
Received: by outflank-mailman (input) for mailman id 232762;
 Fri, 26 Nov 2021 13:05:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauV-0003W9-UC
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:04 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7790ee42-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7790ee42-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931902;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=68x0fT4tZlqz9kHnlGXMQc+oz8hTkbs5wEWSP4Ikepk=;
  b=L2hevmt+OBV/h2oFXjxZk53rZkomfGfTElgO1w1Cvz3/QDRb8my2v6yQ
   7vGcJX4IMvMcGN2M97xETiv01Q6K8AxGfj3Mn3cpgvU49FGkMTi/JSFwD
   EEJnvptprbtTBEPGB6YrsQ216aLBS6K2Lkft/vWTfEpwxbPGK2q4dG5D6
   A=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 7oAFDYuEYgaCKzyUVMpfzCGZeKaLzz0oIodgWpZhGW06SdI24LD3zuOxByjunmQjbb+ySe7W3J
 TumNNC8JrmLf1zGvEJq05WqtE/26F0VyPyVuIEtdmPKxYgCQcTGJqVEQrNm7Crk43MvtCPqnji
 GyjmzVAK3r0L9zImEWftvgsoqKHcnqCE0z1ooATRWTibo+nr6j8zhcUUh+kCXR8Bojj6NhOYk7
 O2LuP2mYoLEqXazuhI9lxC9SV4Viqa8OdXLQqltH9OSkC52uqW53iud/zAz8wiJMu3f8FxC9xN
 4mOWzZZtRJZdsHHsaoaAYpON
X-SBRS: 5.1
X-MesageID: 58676346
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:RqW/8a5TWXtcczz7n6KgkAxRtM3AchMFZxGqfqrLsTDasY5as4F+v
 mIcWGGFMq6OZ2fzKNF0Ot+08kJXvZHRmtZnSgtsqi8yHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z9
 /B2l5mQSVsSZYKdwdwtdhdfM3hkMvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTaiBO
 ZFFN1KDajzkQC0IEU0GCqkTo+GiqWPlchRWmg2K8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u12bkBhAXMvSPxDzD9Wij7sfUhj/yUo8WELy+99ZpjUeVy2hVDwcZPXOrrP/8hkOgVtZ3L
 00P5jFovaU07FasTNT2Q1u/unHsljw2VsdUEuY6wBqQ0aeS6AGcblXoVRYYNoZg7pVvA2V3i
 BnZxLsFGACDrpWqbEm/85eU8QjpFnlMFV8naygkFBEKtoyLTJ4IsjrDSdNqEaiQh9LzGC3tz
 z3ikBXSl4n/nuZQifzloAmvbyaE48GQE1Vrvlm/sneNt1shPOaYi5qUBU83BBqqBKKQVRG/s
 XcNgKByB8heXMjWxERhrAjgdYxFBspp0hWA3jaD/LF7rlxBHkJPm6gLu1mSw28zb645lcfBO
 hO7hO+ozMY70IGWRaF2eZmtLM8h0LLtE9/oPtiNMIERMsYsK17bon01DaJ144wLuBN3+U3YE
 c3GGftA8F5AUfg3pNZIb7t1PUAXKtAWmjqIGMGTI+WP2ruCfn+FIYrpw3PVBt3VGJis+V2Pm
 /4GbpPi40wGDIXWP3mGmaZOfAtiBSVqWvjLRzl/K7frzvxOQzp6VZc8ANoJJuRYokiivruSo
 yzmBBYHkAGXaL+uAVziV02PoYjHBf5XxU/X9wR2Vbpx83R8M4up8okFcJ47Iesu+OB5lKYmR
 PgZYcSQRP9IT22fqTgaaJD8qq1kdQiq2l3Sb3b0PmBncs4yXRHN9//lYhDrqHsEAB2ouJZsu
 LanzA7aH8YOHlwwEMbMZfuz5FqtpnxByvlqVk7FL4ALKkXh+YRnMQLrifozL51eIBnP3GLCh
 Q2XHQ0Zta/GpIpsqIvFgqWNroGIFepiHxUFQzmHvOjubSSDpzit245NVuqMbAvxbmKs9fXwf
 /hRwtH9LOYDwARAvb1jHus51qk5/dbu+eNXl1w2AHXRYl23Ibp8OX3aj9JXv6hAy7IF6wu7X
 kWDpotTNbmTYZ63FVcQIEwub/iZ1OFSkT7XtKxnLEL/7S5x3byGTUQNYEXc1H0DdON4YNE/3
 OMsmM8K8Aju2BMlP+GPgj1Q62nRfGcLVL8qt81CDYLm4ubxJoquvXAI5vfK3ayy
IronPort-HdrOrdr: A9a23:RzLJtawemZW0Xs9NectoKrPwFL1zdoMgy1knxilNoRw8SKKlfq
 eV7Y0mPH7P+VAssR4b+exoVJPtfZqYz+8R3WBzB8bEYOCFghrKEGgK1+KLqFeMJ8S9zJ846U
 4JSdkHNDSaNzlHZKjBjzVQa+xQouW6zA==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676346"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 22/65] xen/decompress: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:03 +0000
Message-ID: <20211126123446.32324-23-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 tools/libs/guest/xg_dom_decompress_unsafe.h | 4 ++++
 xen/common/bunzip2.c                        | 2 +-
 xen/common/decompress.c                     | 2 +-
 xen/common/unlzma.c                         | 2 +-
 xen/common/zstd/zstd_common.c               | 4 ++--
 xen/common/zstd/zstd_internal.h             | 4 ++--
 6 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/tools/libs/guest/xg_dom_decompress_unsafe.h b/tools/libs/guest/xg_dom_decompress_unsafe.h
index 4e0bf23aa587..98b8a8a40971 100644
--- a/tools/libs/guest/xg_dom_decompress_unsafe.h
+++ b/tools/libs/guest/xg_dom_decompress_unsafe.h
@@ -8,6 +8,10 @@ typedef int decompress_fn(unsigned char *inbuf, unsigned int len,
                           void (*error)(const char *x));
 #endif
 
+#ifndef cf_check
+#define cf_check
+#endif
+
 int xc_dom_decompress_unsafe(
     decompress_fn fn, struct xc_dom_image *dom, void **blob, size_t *size)
     __attribute__((visibility("internal")));
diff --git a/xen/common/bunzip2.c b/xen/common/bunzip2.c
index 2087cfbbedc8..782b589a8b01 100644
--- a/xen/common/bunzip2.c
+++ b/xen/common/bunzip2.c
@@ -607,7 +607,7 @@ static int __init read_bunzip(struct bunzip_data *bd, unsigned char *outbuf, int
 	goto decode_next_byte;
 }
 
-static int __init nofill(void *buf, unsigned int len)
+static int __init cf_check nofill(void *buf, unsigned int len)
 {
 	return -1;
 }
diff --git a/xen/common/decompress.c b/xen/common/decompress.c
index 79e60f4802d5..989336983f61 100644
--- a/xen/common/decompress.c
+++ b/xen/common/decompress.c
@@ -3,7 +3,7 @@
 #include <xen/string.h>
 #include <xen/decompress.h>
 
-static void __init error(const char *msg)
+static void __init cf_check error(const char *msg)
 {
     printk("%s\n", msg);
 }
diff --git a/xen/common/unlzma.c b/xen/common/unlzma.c
index d0ef78eef0d1..6cd99023adf6 100644
--- a/xen/common/unlzma.c
+++ b/xen/common/unlzma.c
@@ -76,7 +76,7 @@ struct rc {
 #define RC_MODEL_TOTAL_BITS 11
 
 
-static int __init nofill(void *buffer, unsigned int len)
+static int __init cf_check nofill(void *buffer, unsigned int len)
 {
 	return -1;
 }
diff --git a/xen/common/zstd/zstd_common.c b/xen/common/zstd/zstd_common.c
index 9a85e938cdd6..5c44e5db7671 100644
--- a/xen/common/zstd/zstd_common.c
+++ b/xen/common/zstd/zstd_common.c
@@ -54,12 +54,12 @@ void *__init ZSTD_stackAllocAll(void *opaque, size_t *size)
 	return stack_push(stack, *size);
 }
 
-void *__init ZSTD_stackAlloc(void *opaque, size_t size)
+void *__init cf_check ZSTD_stackAlloc(void *opaque, size_t size)
 {
 	ZSTD_stack *stack = (ZSTD_stack *)opaque;
 	return stack_push(stack, size);
 }
-void __init ZSTD_stackFree(void *opaque, void *address)
+void __init cf_check ZSTD_stackFree(void *opaque, void *address)
 {
 	(void)opaque;
 	(void)address;
diff --git a/xen/common/zstd/zstd_internal.h b/xen/common/zstd/zstd_internal.h
index b7dd14f6ce79..94f8c586220e 100644
--- a/xen/common/zstd/zstd_internal.h
+++ b/xen/common/zstd/zstd_internal.h
@@ -351,8 +351,8 @@ typedef struct {
 ZSTD_customMem ZSTD_initStack(void *workspace, size_t workspaceSize);
 
 void *ZSTD_stackAllocAll(void *opaque, size_t *size);
-void *ZSTD_stackAlloc(void *opaque, size_t size);
-void ZSTD_stackFree(void *opaque, void *address);
+void *cf_check ZSTD_stackAlloc(void *opaque, size_t size);
+void cf_check ZSTD_stackFree(void *opaque, void *address);
 
 /*======  common function  ======*/
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:06:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232772.403749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawL-0002do-04; Fri, 26 Nov 2021 13:06:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232772.403749; Fri, 26 Nov 2021 13:06:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawK-0002da-SQ; Fri, 26 Nov 2021 13:06:56 +0000
Received: by outflank-mailman (input) for mailman id 232772;
 Fri, 26 Nov 2021 13:06:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauw-0003W9-Cz
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:30 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8432bbe3-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:25 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8432bbe3-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931924;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=SoaVzjnC4k/9FIXMh3yDocr0kLc2Ez0/muzxLvgq4vw=;
  b=PvMp2EXmQkxpELxTqpXudzECF0fP5Pk8XUpsDbesO0ll1Ik9nO+LvgbK
   EIg76Sj/fWo8GB1yMtYnheviLFK6fELRCpPJQSVnS1ZU47vpDX3n3chC4
   bPQ4n0tTn9gTmKzRlcLyW2sIPAzEZDxBjG+WKK1fCNZTCPsZMHiSXlhj/
   U=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: IPuR6OEJii/cuW4FHwFCAb2Qfs3WRyC9KwpwrtROb2XahnhvNwGGdsDrrZ3eFwChASeqicmiR/
 18xq+nx78zAajtR4lLwo1ySPrfG1hVo1Z+3YYHZSpnK18BM8yc/St7/fv2k0ip/WQVfhKY1w3e
 ArCLQ5GAsaODr0wP1N+lI+ze83h+d5+ChiTlxMLMEDibLn5wbcvrYar6/iW1FzqiJ4Xjvgp37d
 7eWZyN1VHa50adIN+pxoeOSxkg8JEEo3ItAtO2C3T80V4tPNeRJEBJzXVnDYFxU9khB1i9UnN/
 Q7pmY8EEw4XaGYHiI3yon+PM
X-SBRS: 5.1
X-MesageID: 60695261
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:2qtBeqByL/MynRVW/+Xkw5YqxClBgxIJ4kV8jS/XYbTApDtxhjYDz
 WYYWWmOaanfNGqjKNh+bd6wp0MB7ZGGn99jQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX5400w7wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/jifUv/JX1
 N9x8pmXGBcxY5P+xaMaakwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcGhGlh25oQRJ4yY
 eIHSGIsb0XKfydLeUkXCoslrbmZlnXwJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tmSyq
 3/C/m/5KgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRt6Klc4sBc
 QpOoHNo9PVsshzwJjXgY/GmiHuW4z4+fcZaL6o/z1Cd0vfq0VveAVFRG1atd+canMMxQDUr0
 HqAkNXoGSFjvdWpdJ6NyluHhWjsYHZIdAfucQdBFFJYuIe7/OnfmzqWFo47eJNZmOEZDt0ZL
 9qiiCElz4segscQv0lQ1QCW2mn8znQlo+Nc2+k2Yo5Hxl8mDGJGT9bxgbQ+0RqmBN3CJrVml
 CJZ8/VyFMhUUfmweNWlGY3h5o2B6fefKyH7ilVyBZQn/DnF0yf9Jt8AvmwhdRs3bp1sldrVj
 Kn74lg5CHh7ZibCUEOKS9jpV5RCIVbISbwJqcw4nvIRO8MsJWdrDQllZFKK3nCFraTfufpXB
 HtvSu71VSxyIf0+lFKeHr5BuZd2lnFW7T6CHvjTkkX4uYdykVbIEN/pxnPVNbtnhE5FyS2Im
 +ti2zyil08CDbagO3aPqub+7zkidBAGOHw/kOQPHsbrH+asMDt8YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:Lf051KygZks2fppUp5UKKrPwFL1zdoMgy1knxilNoRw8SKKlfq
 eV7Y0mPH7P+VAssR4b+exoVJPtfZqYz+8R3WBzB8bEYOCFghrKEGgK1+KLqFeMJ8S9zJ846U
 4JSdkHNDSaNzlHZKjBjzVQa+xQouW6zA==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="60695261"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 31/65] x86/ucode: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:12 +0000
Message-ID: <20211126123446.32324-32-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/cpu/microcode/amd.c   |  9 +++++----
 xen/arch/x86/cpu/microcode/core.c  |  4 ++--
 xen/arch/x86/cpu/microcode/intel.c | 10 +++++-----
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index fe92e594f129..0afa2192bf1d 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -91,7 +91,7 @@ static struct {
     uint16_t id;
 } equiv __read_mostly;
 
-static void collect_cpu_info(void)
+static void cf_check collect_cpu_info(void)
 {
     struct cpu_signature *csig = &this_cpu(cpu_sig);
 
@@ -204,7 +204,7 @@ static enum microcode_match_result compare_header(
     return compare_revisions(old->patch_id, new->patch_id);
 }
 
-static enum microcode_match_result compare_patch(
+static enum microcode_match_result cf_check compare_patch(
     const struct microcode_patch *new, const struct microcode_patch *old)
 {
     /* Both patches to compare are supposed to be applicable to local CPU. */
@@ -214,7 +214,7 @@ static enum microcode_match_result compare_patch(
     return compare_header(new, old);
 }
 
-static int apply_microcode(const struct microcode_patch *patch)
+static int cf_check apply_microcode(const struct microcode_patch *patch)
 {
     int hw_err;
     unsigned int cpu = smp_processor_id();
@@ -299,7 +299,8 @@ static int scan_equiv_cpu_table(const struct container_equiv_table *et)
     return -ESRCH;
 }
 
-static struct microcode_patch *cpu_request_microcode(const void *buf, size_t size)
+static struct microcode_patch *cf_check cpu_request_microcode(
+    const void *buf, size_t size)
 {
     const struct microcode_patch *saved = NULL;
     struct microcode_patch *patch = NULL;
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 841364208053..c07f68ba350e 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -291,12 +291,12 @@ static int wait_for_condition(bool (*func)(unsigned int data),
     return 0;
 }
 
-static bool wait_cpu_callin(unsigned int nr)
+static bool cf_check wait_cpu_callin(unsigned int nr)
 {
     return cpumask_weight(&cpu_callin_map) >= nr;
 }
 
-static bool wait_cpu_callout(unsigned int nr)
+static bool cf_check wait_cpu_callout(unsigned int nr)
 {
     return atomic_read(&cpu_out) >= nr;
 }
diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c
index f6d01490e0ab..d3864b5ab03e 100644
--- a/xen/arch/x86/cpu/microcode/intel.c
+++ b/xen/arch/x86/cpu/microcode/intel.c
@@ -116,7 +116,7 @@ static bool signature_matches(const struct cpu_signature *cpu_sig,
     return cpu_sig->pf & ucode_pf;
 }
 
-static void collect_cpu_info(void)
+static void cf_check collect_cpu_info(void)
 {
     struct cpu_signature *csig = &this_cpu(cpu_sig);
     uint64_t msr_content;
@@ -271,7 +271,7 @@ static enum microcode_match_result microcode_update_match(
     return compare_revisions(cpu_sig->rev, mc->rev);
 }
 
-static enum microcode_match_result compare_patch(
+static enum microcode_match_result cf_check compare_patch(
     const struct microcode_patch *new, const struct microcode_patch *old)
 {
     /*
@@ -284,7 +284,7 @@ static enum microcode_match_result compare_patch(
     return compare_revisions(old->rev, new->rev);
 }
 
-static int apply_microcode(const struct microcode_patch *patch)
+static int cf_check apply_microcode(const struct microcode_patch *patch)
 {
     uint64_t msr_content;
     unsigned int cpu = smp_processor_id();
@@ -323,8 +323,8 @@ static int apply_microcode(const struct microcode_patch *patch)
     return 0;
 }
 
-static struct microcode_patch *cpu_request_microcode(const void *buf,
-                                                     size_t size)
+static struct microcode_patch *cf_check cpu_request_microcode(
+    const void *buf, size_t size)
 {
     int error = 0;
     const struct microcode_patch *saved = NULL;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:06:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232773.403754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawL-0002g8-CM; Fri, 26 Nov 2021 13:06:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232773.403754; Fri, 26 Nov 2021 13:06:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawL-0002fS-5i; Fri, 26 Nov 2021 13:06:57 +0000
Received: by outflank-mailman (input) for mailman id 232773;
 Fri, 26 Nov 2021 13:06:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavn-0002zD-FE
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:23 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a61a7074-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:06:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a61a7074-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931981;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=U/I9hgUec63ZCE74xwerXvfwVJ+965BYzcV6BQ/X/5M=;
  b=HDJvTva2aFT9lS5HKDei2IOHanRaESWHvH+vB5yAKdHjjWog0Shkym2u
   gEG1DGThQTNBLUgHLpCs520qPNSYY/NBiQhljoL456ISJ48CLNyO7POHX
   enQuDr987lm05QnzXTMKoMdI3a6EeqD4qDe8OuF3p9o5rprUEJhDNN2v8
   M=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: n3wspB8X/1QGbSpyAjzvfuL4qomhOltSGM+0Zm2Q2Pk33Un/TPkkYtjGi6GIMtuUUQoMDEiEMu
 uUmDMfKd7nQ3cyICQ+kV45K3Ic+YNQ5gi8iHZLphelpTm5smDPxg7CjpDZUPJNGPpapHPb/3nu
 mTcxC4//wO/FmBeeI9jXHB11ebNPyGU73LNmM/e42HYe3nmj2Wj+eTrqnkZP8a+iJFq37Tobwi
 jOmqRJabSJ+AT9RFbg61BJdjvk9Pq/MeQVHBxwfhbn8KCB+2U3sRQbMkHKMGW1nUe9WZ8uP+Jv
 47cFs2Ad4T+vgdlvH4RSYxk+
X-SBRS: 5.1
X-MesageID: 58676456
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:iw27+ayeAyOF5bWx5Oh6t+f6wSrEfRIJ4+MujC+fZmUNrF6WrkUGx
 jEbCmCFPKuONDbwe9hyb4/i8kkG6pfRzNBqTVNppSAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRn2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt/4y5
 9tzlZiodTdzPoGPmbU4QUNgExgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY25AQQqiCO
 pRxhTxHQxrSWCVuHnksEpcQwMSViiHlXSQGkQfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krk1WnkBhARNPSE1CGItHmrg4fnjS79HY4fCrC83vprm0GIgHweDgUMUlm2quX/jVSxM++zM
 GRNpHBo9/JrshX2EJ+tBHVUvUJooDYyGPVeLc0+8D29kKr4oAfII3pedj54PYlOWNANeRQm0
 VqAntXMDDNpsaGIRX/1yop4vQ9eKgBOczZcOHZsoR8tpoC6/dpt1k6nosNLSfbt1rXI9SfML
 ydmRcTUr5EaloY12qqy5jgraBr898GSHmbZCug6N19JDz+Vhqb5OORECnCBtJ6sybp1qHHa5
 xDofODEsYgz4WmlznDlfQn0NOjBCwy5GDPdm0VzOJIq6i6g/XWuFagJvmohdBk0bZdYJ2OyC
 KM2he+3zMQIVJdNRfUqC79d9uxwlfSwfTgbfqy8giVyjmhZK1bcoXAGib+41GHxikk8+ZzTy
 r/AGftA+U0yUPw9pBLvHr91+eZymkgWmDOCLbimnk/P+efPOxaopUItbQLmghYRt/jf/m04M
 r93aqO39vmoeLGkP3SMr9dMdQtiwLpSLcmelvG7v9WremJOcFzNwdeLqV/4U4A6zalTiMnS+
 XSxBh1RxFbl3CWVIgSWcHFzLrjoWM8n/348OCUtO3eu2mQiPtnzvPtOKcNvcOl17vFnwN51U
 +IBJ5eKDMNQR2mV4D8ad5T88tBvLUz5mQKUMiO5SzEjZJo8FRfR89rpc1K3pikDBya6r+Ukp
 Lik2l+JSJYPXV06Xs3XdOiu3xW6un1EwLB+WE7BI99yfkTw8dc1d3yt36Fve8xVcEfN3DqX0
 QqSECw0n+iVrt9n6sTNiICFs5ytT7l0EH1FEjSJ9r2xLyTboDaumNcSTOaScDnBf2ro46H+N
 /5NxvTxPfBbzlZHt41wT+Riwa4kvoa9orZbykJvHWnRbkTtAbRleyHU0c5Kv6xL57lYpQrpB
 R7fpogEYe2EaJH/DVocBAs5deDSh/gblw7b4ekxPEintjR8+6CKUBkKMhSB4MCHwGCZ7G/xL
 T8dhfMr
IronPort-HdrOrdr: A9a23:dEQ32a4TaXYTBqloTgPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HWoB17726TtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QC5SWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676456"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 27/65] x86: Annotate fnptr targets from request_irq()
Date: Fri, 26 Nov 2021 12:34:08 +0000
Message-ID: <20211126123446.32324-28-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

...and friends; alloc_direct_apic_vector() and set_direct_apic_vector().

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/apic.c                      |  8 ++++----
 xen/arch/x86/cpu/mcheck/mce_intel.c      |  4 ++--
 xen/arch/x86/guest/xen/xen.c             |  2 +-
 xen/arch/x86/hpet.c                      |  4 ++--
 xen/arch/x86/hvm/vmx/vmx.c               |  4 ++--
 xen/arch/x86/irq.c                       |  2 +-
 xen/arch/x86/smp.c                       |  6 +++---
 xen/arch/x86/time.c                      |  3 ++-
 xen/drivers/passthrough/amd/iommu_init.c |  4 ++--
 xen/drivers/passthrough/vtd/iommu.c      |  4 ++--
 xen/include/asm-x86/irq.h                | 16 ++++++++--------
 11 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index dd6cf1529f1e..07611c481b0e 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -1365,7 +1365,7 @@ int reprogram_timer(s_time_t timeout)
     return apic_tmict || !timeout;
 }
 
-void apic_timer_interrupt(struct cpu_user_regs * regs)
+void cf_check apic_timer_interrupt(struct cpu_user_regs *regs)
 {
     ack_APIC_irq();
     perfc_incr(apic_timer);
@@ -1384,7 +1384,7 @@ void smp_send_state_dump(unsigned int cpu)
 /*
  * Spurious interrupts should _never_ happen with our APIC/SMP architecture.
  */
-void spurious_interrupt(struct cpu_user_regs *regs)
+void cf_check spurious_interrupt(struct cpu_user_regs *regs)
 {
     /*
      * Check if this is a vectored interrupt (most likely, as this is probably
@@ -1415,7 +1415,7 @@ void spurious_interrupt(struct cpu_user_regs *regs)
  * This interrupt should never happen with our APIC/SMP architecture
  */
 
-void error_interrupt(struct cpu_user_regs *regs)
+void cf_check error_interrupt(struct cpu_user_regs *regs)
 {
     static const char *const esr_fields[] = {
         "Send CS error",
@@ -1448,7 +1448,7 @@ void error_interrupt(struct cpu_user_regs *regs)
  * This interrupt handles performance counters interrupt
  */
 
-void pmu_apic_interrupt(struct cpu_user_regs *regs)
+void cf_check pmu_apic_interrupt(struct cpu_user_regs *regs)
 {
     ack_APIC_irq();
     vpmu_do_interrupt(regs);
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 239b0b32327c..f587018cd2d2 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -55,7 +55,7 @@ bool __read_mostly lmce_support;
 #define MCE_RING                0x1
 static DEFINE_PER_CPU(int, last_state);
 
-static void intel_thermal_interrupt(struct cpu_user_regs *regs)
+static void cf_check intel_thermal_interrupt(struct cpu_user_regs *regs)
 {
     uint64_t msr_content;
     unsigned int cpu = smp_processor_id();
@@ -639,7 +639,7 @@ static void cpu_mcheck_disable(void)
         clear_cmci();
 }
 
-static void cmci_interrupt(struct cpu_user_regs *regs)
+static void cf_check cmci_interrupt(struct cpu_user_regs *regs)
 {
     mctelem_cookie_t mctc;
     struct mca_summary bs;
diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
index b2aa3a009b4a..17807cdea688 100644
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -170,7 +170,7 @@ static void __init init_memmap(void)
     }
 }
 
-static void xen_evtchn_upcall(struct cpu_user_regs *regs)
+static void cf_check xen_evtchn_upcall(struct cpu_user_regs *regs)
 {
     struct vcpu_info *vcpu_info = this_cpu(vcpu_info);
     unsigned long pending;
diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index 7b009a930498..c31fd97579dc 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -240,8 +240,8 @@ static void handle_hpet_broadcast(struct hpet_event_channel *ch)
     }
 }
 
-static void hpet_interrupt_handler(int irq, void *data,
-        struct cpu_user_regs *regs)
+static void cf_check hpet_interrupt_handler(
+    int irq, void *data, struct cpu_user_regs *regs)
 {
     struct hpet_event_channel *ch = data;
 
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 37c31c08b984..b1eee802fde7 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -2470,7 +2470,7 @@ static struct hvm_function_table __initdata vmx_function_table = {
 };
 
 /* Handle VT-d posted-interrupt when VCPU is blocked. */
-static void pi_wakeup_interrupt(struct cpu_user_regs *regs)
+static void cf_check pi_wakeup_interrupt(struct cpu_user_regs *regs)
 {
     struct vmx_vcpu *vmx, *tmp;
     spinlock_t *lock = &per_cpu(vmx_pi_blocking, smp_processor_id()).lock;
@@ -2502,7 +2502,7 @@ static void pi_wakeup_interrupt(struct cpu_user_regs *regs)
 }
 
 /* Handle VT-d posted-interrupt when VCPU is running. */
-static void pi_notification_interrupt(struct cpu_user_regs *regs)
+static void cf_check pi_notification_interrupt(struct cpu_user_regs *regs)
 {
     ack_APIC_irq();
     this_cpu(irq_count)++;
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index f43b926ed26b..61e09a356f97 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -744,7 +744,7 @@ void move_native_irq(struct irq_desc *desc)
     desc->handler->enable(desc);
 }
 
-void irq_move_cleanup_interrupt(struct cpu_user_regs *regs)
+void cf_check irq_move_cleanup_interrupt(struct cpu_user_regs *regs)
 {
     unsigned vector, me;
 
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index b9a696f61963..33748e629a21 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -246,7 +246,7 @@ static cpumask_t flush_cpumask;
 static const void *flush_va;
 static unsigned int flush_flags;
 
-void invalidate_interrupt(struct cpu_user_regs *regs)
+void cf_check invalidate_interrupt(struct cpu_user_regs *regs)
 {
     unsigned int flags = flush_flags;
     ack_APIC_irq();
@@ -385,14 +385,14 @@ void smp_send_nmi_allbutself(void)
     send_IPI_mask(&cpu_online_map, APIC_DM_NMI);
 }
 
-void event_check_interrupt(struct cpu_user_regs *regs)
+void cf_check event_check_interrupt(struct cpu_user_regs *regs)
 {
     ack_APIC_irq();
     perfc_incr(ipis);
     this_cpu(irq_count)++;
 }
 
-void call_function_interrupt(struct cpu_user_regs *regs)
+void cf_check call_function_interrupt(struct cpu_user_regs *regs)
 {
     ack_APIC_irq();
     perfc_incr(ipis);
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index 9f8fdb209041..dda09f0680b3 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -196,7 +196,8 @@ static void smp_send_timer_broadcast_ipi(void)
     }
 }
 
-static void timer_interrupt(int irq, void *dev_id, struct cpu_user_regs *regs)
+static void cf_check timer_interrupt(
+    int irq, void *dev_id, struct cpu_user_regs *regs)
 {
     ASSERT(local_irq_is_enabled());
 
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index cebcd68a6c04..d2ad282e93d3 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -715,8 +715,8 @@ static void cf_check do_amd_iommu_irq(void *unused)
     }
 }
 
-static void iommu_interrupt_handler(int irq, void *dev_id,
-                                    struct cpu_user_regs *regs)
+static void cf_check iommu_interrupt_handler(
+    int irq, void *dev_id, struct cpu_user_regs *regs)
 {
     unsigned long flags;
     struct amd_iommu *iommu = dev_id;
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 498a9ea9c9c1..ad3abdcdacfd 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1085,8 +1085,8 @@ static void cf_check do_iommu_page_fault(void *unused)
         __do_iommu_page_fault(drhd->iommu);
 }
 
-static void iommu_page_fault(int irq, void *dev_id,
-                             struct cpu_user_regs *regs)
+static void cf_check iommu_page_fault(
+    int irq, void *dev_id, struct cpu_user_regs *regs)
 {
     /*
      * Just flag the tasklet as runnable. This is fine, according to VT-d
diff --git a/xen/include/asm-x86/irq.h b/xen/include/asm-x86/irq.h
index 7c825e9d9c0a..b3f49abc5556 100644
--- a/xen/include/asm-x86/irq.h
+++ b/xen/include/asm-x86/irq.h
@@ -93,14 +93,14 @@ static inline struct cpu_user_regs *set_irq_regs(struct cpu_user_regs *new_regs)
 
 #define platform_legacy_irq(irq)	((irq) < 16)
 
-void event_check_interrupt(struct cpu_user_regs *regs);
-void invalidate_interrupt(struct cpu_user_regs *regs);
-void call_function_interrupt(struct cpu_user_regs *regs);
-void apic_timer_interrupt(struct cpu_user_regs *regs);
-void error_interrupt(struct cpu_user_regs *regs);
-void pmu_apic_interrupt(struct cpu_user_regs *regs);
-void spurious_interrupt(struct cpu_user_regs *regs);
-void irq_move_cleanup_interrupt(struct cpu_user_regs *regs);
+void cf_check event_check_interrupt(struct cpu_user_regs *regs);
+void cf_check invalidate_interrupt(struct cpu_user_regs *regs);
+void cf_check call_function_interrupt(struct cpu_user_regs *regs);
+void cf_check apic_timer_interrupt(struct cpu_user_regs *regs);
+void cf_check error_interrupt(struct cpu_user_regs *regs);
+void cf_check pmu_apic_interrupt(struct cpu_user_regs *regs);
+void cf_check spurious_interrupt(struct cpu_user_regs *regs);
+void cf_check irq_move_cleanup_interrupt(struct cpu_user_regs *regs);
 
 uint8_t alloc_hipriority_vector(void);
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:06:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:06:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232771.403738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawI-0002Lw-Hg; Fri, 26 Nov 2021 13:06:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232771.403738; Fri, 26 Nov 2021 13:06:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawI-0002Ln-E4; Fri, 26 Nov 2021 13:06:54 +0000
Received: by outflank-mailman (input) for mailman id 232771;
 Fri, 26 Nov 2021 13:06:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavt-0003W9-Nt
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:30 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9dc9b72-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:27 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9dc9b72-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931986;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=gXVxAw7BmbfGq+9eyJe/9PGTuBcOHQvuNt32/DJjUIQ=;
  b=gIASyNvmuYsRTvLtPAaJlRvtC/7F1tF+EQIcvspfW8d4z6IriwB5IQfZ
   t6zXVSzcAUdwyMnyBZ9mZPKOxqTLMFzy8U9R4NXhReJVG79ZeVD1jYcl3
   LLyxgmJiZF3pWp5gXopV6Ac14hzM6SsbNWelYvfv6Oq4W1fFrDD/s1tkb
   w=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: tobCbH1cBoF1C+kEiGzXYxrI8P2jXC8RHfJcCmvYadfoTtXaTWk9g49l8HqtT9CidJfDxSUu4+
 0zFtVMVQQeQzKtkOGHlQsvqGdUEJjMqseQ7uQVfInxTsQRuHDiIZqCItnF15zo5rV53pvBSyLN
 IbSvp7v+zmEXQGEkTFnPbvKAcQiZbj1xgq0pRHGE6J62WdrtmnzP7OPibMFmECmMptzvAdbeyW
 hw7WxNwag/ftcftuCfaEA4CG9PG2QcCdvKcxTiwY+lsJ0/PdpPQFqS2eRNUpC/NAHp5PPPu4yL
 yqWNl42rIyiO0dLCgSfDD27w
X-SBRS: 5.1
X-MesageID: 58193879
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:HTdJ4q91aMj+emmEYtZ2DrUDdXmTJUtcMsCJ2f8bNWPcYEJGY0x3y
 DFMWGqHaf2CNjbzco0kPdvn9U1S6pfRmNZqTFY5pX88E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj3NYy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhj7
 9gdh8eXET4AM/brmvYdXDJzEj1HaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp0eRKeFN
 5VIAdZpREzaTAdVeVE9Ma0dntutq3znKCNzi2vA8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru/Xn9AxwcHMySz3yC6H3ErvTUgSrxVYYWFbu53v1nmluewioUEhJ+fUu2p7y1h1CzX/pbK
 lcI4Ww+oK4q7kupQ9LhGRqirxasnDQRRt5RGO0S8xyWx+zf5APxO4QfZmcfMpp87pZwHGF0k
 A/S9z/0OdBxmK+yRCKvrZDMlBq/Yg8XP28NTgQFUTJQtrEPv7oPph7IS99iFou8gdv0BSz8z
 li2kcQuu1kApZVVjvvmpDgrlxrp/8GUFVBtum07S0r8tlshDLNJcbBE/rQyARxoCI+CBmeMs
 3Ef8yR1xLBfVMrd/MBhrQhkIV1I2xpnGGGD6bKMN8N4n9hIx5JFVdsLiN2ZDB00WvvogRezP
 CfuVfp5vfe/xkeCY65teJ6WAM8316XmHtmNfqmKNYUePMUuJVPZoHoGiausM4bFyxNEfUYXY
 8rzTCpRJSxCVfQPIMSeG4/xLoPHNghhnDiOFPgXPjys0KaEZW79dFv2GADmUwzN14vd+F+92
 48Gb6OikkwDOMWjMni/2dNCdjgicClkba0aXuQKL4Zv1CI9Qzp/YxIQqJt8E7FYc1N9yr2Vo
 yrjAxAAkzISRxTvcG23V5yqU5u3Nb4XkJ7xFXZE0Y+A1ydxbICxwr0YcpdrL7Ar+PY6lax/T
 uUfetXGCfNKE2yV9zMYZJj7jYpjaBX02l7eY3v7OGAyL8x6WgjE2t74ZQ+zpiMAOTW66Jklq
 Lq62wKFHZdaH1Z+DNzbYe6Exk+quSRPg/p7WkbFe4EBeEjl/IVwBTb2i/s7f5MFJRnZn2PI3
 AeKGxYI4+LKptZtotXOgKmFqaavEvd/QRUGTzWKs+7uOHCDrGS5wIJGXOKZRhznVTv5qPe4e
 OFY7/DgK/lbzlxEhJVxTuRwxqUk6tqx+7IDllZ4HG/GZkiAA697JiXUxtFGs6BAy+MLuQayX
 U7TqNBWNa/QZZHgGV8VYgEkcv6CxbcfnTyLtaY5J0Dz5SlW+rubUBoNY0nQ2XIFdLYlYpk4x
 eoBudIN713tgxUnBd+KkyRI+jneNXcHSagm6skXDYKDZtDHEb2ejUgw0hPL3aw=
IronPort-HdrOrdr: A9a23:Uqh2BqMPDi15dMBcTvmjsMiBIKoaSvp037Eqv3oedfUzSL3gqy
 nOpoV86faaslYssR0b9exofZPwJE80lqQFhrX5X43SPzUO0VHAROoJgLcKgQeQfxEWntQtrZ
 uIGJIeNDSfNzdHZL7BkWuFL+o=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58193879"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 23/65] xen/iommu: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:04 +0000
Message-ID: <20211126123446.32324-24-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

AMD's parse_ppr_log_entry() has no external callers, so becomes static.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/common/compat/memory.c                  |  4 +-
 xen/drivers/passthrough/amd/iommu.h         | 41 ++++++++--------
 xen/drivers/passthrough/amd/iommu_init.c    | 22 ++++-----
 xen/drivers/passthrough/amd/iommu_intr.c    | 18 +++----
 xen/drivers/passthrough/amd/iommu_map.c     | 22 +++++----
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 32 ++++++------
 xen/drivers/passthrough/pci.c               |  7 +--
 xen/drivers/passthrough/vtd/dmar.c          |  3 +-
 xen/drivers/passthrough/vtd/extern.h        | 36 +++++++-------
 xen/drivers/passthrough/vtd/intremap.c      | 14 +++---
 xen/drivers/passthrough/vtd/iommu.c         | 75 +++++++++++++++--------------
 xen/drivers/passthrough/vtd/qinval.c        | 28 +++++------
 12 files changed, 153 insertions(+), 149 deletions(-)

diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c
index ec8ba54bb66e..077ded4a754c 100644
--- a/xen/common/compat/memory.c
+++ b/xen/common/compat/memory.c
@@ -23,8 +23,8 @@ struct get_reserved_device_memory {
     unsigned int used_entries;
 };
 
-static int get_reserved_device_memory(xen_pfn_t start, xen_ulong_t nr,
-                                      u32 id, void *ctxt)
+static int cf_check get_reserved_device_memory(
+    xen_pfn_t start, xen_ulong_t nr, u32 id, void *ctxt)
 {
     struct get_reserved_device_memory *grdm = ctxt;
     uint32_t sbdf = PCI_SBDF3(grdm->map.dev.pci.seg, grdm->map.dev.pci.bus,
diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index 99be9aafcc53..03811fedea57 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -236,25 +236,26 @@ int amd_iommu_init_late(void);
 int amd_iommu_update_ivrs_mapping_acpi(void);
 int cf_check iov_adjust_irq_affinities(void);
 
-int amd_iommu_quarantine_init(struct domain *d);
+int cf_check amd_iommu_quarantine_init(struct domain *d);
 
 /* mapping functions */
-int __must_check amd_iommu_map_page(struct domain *d, dfn_t dfn,
-                                    mfn_t mfn, unsigned int flags,
-                                    unsigned int *flush_flags);
-int __must_check amd_iommu_unmap_page(struct domain *d, dfn_t dfn,
-                                      unsigned int *flush_flags);
+int __must_check cf_check amd_iommu_map_page(
+    struct domain *d, dfn_t dfn, mfn_t mfn, unsigned int flags,
+    unsigned int *flush_flags);
+int __must_check cf_check amd_iommu_unmap_page(
+    struct domain *d, dfn_t dfn, unsigned int *flush_flags);
 int __must_check amd_iommu_alloc_root(struct domain *d);
 int amd_iommu_reserve_domain_unity_map(struct domain *domain,
                                        const struct ivrs_unity_map *map,
                                        unsigned int flag);
 int amd_iommu_reserve_domain_unity_unmap(struct domain *d,
                                          const struct ivrs_unity_map *map);
-int amd_iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt);
-int __must_check amd_iommu_flush_iotlb_pages(struct domain *d, dfn_t dfn,
-                                             unsigned long page_count,
-                                             unsigned int flush_flags);
-int __must_check amd_iommu_flush_iotlb_all(struct domain *d);
+int cf_check amd_iommu_get_reserved_device_memory(
+    iommu_grdm_t *func, void *ctxt);
+int __must_check cf_check amd_iommu_flush_iotlb_pages(
+    struct domain *d, dfn_t dfn, unsigned long page_count,
+    unsigned int flush_flags);
+int __must_check cf_check amd_iommu_flush_iotlb_all(struct domain *d);
 
 /* device table functions */
 int get_dma_requestor_id(uint16_t seg, uint16_t bdf);
@@ -282,21 +283,21 @@ void amd_iommu_flush_all_caches(struct amd_iommu *iommu);
 struct amd_iommu *find_iommu_for_device(int seg, int bdf);
 
 /* interrupt remapping */
-bool iov_supports_xt(void);
+bool cf_check iov_supports_xt(void);
 int amd_iommu_setup_ioapic_remapping(void);
 void *amd_iommu_alloc_intremap_table(
     const struct amd_iommu *, unsigned long **, unsigned int nr);
-int amd_iommu_free_intremap_table(
+int cf_check amd_iommu_free_intremap_table(
     const struct amd_iommu *, struct ivrs_mappings *, uint16_t);
 unsigned int amd_iommu_intremap_table_order(
     const void *irt, const struct amd_iommu *iommu);
-void amd_iommu_ioapic_update_ire(
+void cf_check amd_iommu_ioapic_update_ire(
     unsigned int apic, unsigned int reg, unsigned int value);
-unsigned int amd_iommu_read_ioapic_from_ire(
+unsigned int cf_check amd_iommu_read_ioapic_from_ire(
     unsigned int apic, unsigned int reg);
-int amd_iommu_msi_msg_update_ire(
+int cf_check amd_iommu_msi_msg_update_ire(
     struct msi_desc *msi_desc, struct msi_msg *msg);
-int amd_setup_hpet_msi(struct msi_desc *msi_desc);
+int cf_check amd_setup_hpet_msi(struct msi_desc *msi_desc);
 void cf_check amd_iommu_dump_intremap_tables(unsigned char key);
 
 extern struct ioapic_sbdf {
@@ -327,9 +328,9 @@ extern void *shared_intremap_table;
 extern unsigned long *shared_intremap_inuse;
 
 /* power management support */
-void amd_iommu_resume(void);
-int __must_check amd_iommu_suspend(void);
-void amd_iommu_crash_shutdown(void);
+void cf_check amd_iommu_resume(void);
+int __must_check cf_check amd_iommu_suspend(void);
+void cf_check amd_iommu_crash_shutdown(void);
 
 /* guest iommu support */
 #ifdef CONFIG_HVM
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 34a9e49f1c5a..06b4d2b1fea0 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -258,8 +258,8 @@ static void register_iommu_exclusion_range(struct amd_iommu *iommu)
     writel(entry, iommu->mmio_base+IOMMU_EXCLUSION_BASE_LOW_OFFSET);
 }
 
-static void set_iommu_event_log_control(struct amd_iommu *iommu,
-                                        bool enable)
+static void cf_check set_iommu_event_log_control(
+    struct amd_iommu *iommu, bool enable)
 {
     /* Reset head and tail pointer manually before enablement */
     if ( enable )
@@ -275,8 +275,8 @@ static void set_iommu_event_log_control(struct amd_iommu *iommu,
     writeq(iommu->ctrl.raw, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
 }
 
-static void set_iommu_ppr_log_control(struct amd_iommu *iommu,
-                                      bool enable)
+static void cf_check set_iommu_ppr_log_control(
+    struct amd_iommu *iommu, bool enable)
 {
     /* Reset head and tail pointer manually before enablement */
     if ( enable )
@@ -527,7 +527,7 @@ static hw_irq_controller iommu_x2apic_type = {
     .set_affinity = set_x2apic_affinity,
 };
 
-static void parse_event_log_entry(struct amd_iommu *iommu, u32 entry[])
+static void cf_check parse_event_log_entry(struct amd_iommu *iommu, u32 entry[])
 {
     u32 code;
     static const char *const event_str[] = {
@@ -628,7 +628,7 @@ static void iommu_check_event_log(struct amd_iommu *iommu)
     spin_unlock_irqrestore(&iommu->lock, flags);
 }
 
-void parse_ppr_log_entry(struct amd_iommu *iommu, u32 entry[])
+static void cf_check parse_ppr_log_entry(struct amd_iommu *iommu, u32 entry[])
 {
 
     u16 device_id;
@@ -1243,7 +1243,7 @@ static int __init alloc_ivrs_mappings(u16 seg)
     return 0;
 }
 
-static int __init amd_iommu_setup_device_table(
+static int __init cf_check amd_iommu_setup_device_table(
     u16 seg, struct ivrs_mappings *ivrs_mappings)
 {
     struct amd_iommu_dte *dt = IVRS_MAPPINGS_DEVTAB(ivrs_mappings);
@@ -1543,7 +1543,7 @@ static void invalidate_all_domain_pages(void)
         amd_iommu_flush_all_pages(d);
 }
 
-static int _invalidate_all_devices(
+static int cf_check _invalidate_all_devices(
     u16 seg, struct ivrs_mappings *ivrs_mappings)
 {
     unsigned int bdf; 
@@ -1569,14 +1569,14 @@ static void invalidate_all_devices(void)
     iterate_ivrs_mappings(_invalidate_all_devices);
 }
 
-int amd_iommu_suspend(void)
+int cf_check amd_iommu_suspend(void)
 {
     amd_iommu_crash_shutdown();
 
     return 0;
 }
 
-void amd_iommu_crash_shutdown(void)
+void cf_check amd_iommu_crash_shutdown(void)
 {
     struct amd_iommu *iommu;
 
@@ -1584,7 +1584,7 @@ void amd_iommu_crash_shutdown(void)
         disable_iommu(iommu);
 }
 
-void amd_iommu_resume(void)
+void cf_check amd_iommu_resume(void)
 {
     struct amd_iommu *iommu;
 
diff --git a/xen/drivers/passthrough/amd/iommu_intr.c b/xen/drivers/passthrough/amd/iommu_intr.c
index e7804413c7f4..cebf9ceca74e 100644
--- a/xen/drivers/passthrough/amd/iommu_intr.c
+++ b/xen/drivers/passthrough/amd/iommu_intr.c
@@ -349,7 +349,7 @@ static int update_intremap_entry_from_ioapic(
     return 0;
 }
 
-void amd_iommu_ioapic_update_ire(
+void cf_check amd_iommu_ioapic_update_ire(
     unsigned int apic, unsigned int reg, unsigned int value)
 {
     struct IO_APIC_route_entry old_rte = { 0 };
@@ -455,7 +455,7 @@ void amd_iommu_ioapic_update_ire(
     }
 }
 
-unsigned int amd_iommu_read_ioapic_from_ire(
+unsigned int cf_check amd_iommu_read_ioapic_from_ire(
     unsigned int apic, unsigned int reg)
 {
     unsigned int idx;
@@ -608,7 +608,7 @@ static struct amd_iommu *_find_iommu_for_device(int seg, int bdf)
     return ERR_PTR(-EINVAL);
 }
 
-int amd_iommu_msi_msg_update_ire(
+int cf_check amd_iommu_msi_msg_update_ire(
     struct msi_desc *msi_desc, struct msi_msg *msg)
 {
     struct pci_dev *pdev = msi_desc->dev;
@@ -653,7 +653,7 @@ int amd_iommu_msi_msg_update_ire(
     return rc;
 }
 
-int amd_iommu_free_intremap_table(
+int cf_check amd_iommu_free_intremap_table(
     const struct amd_iommu *iommu, struct ivrs_mappings *ivrs_mapping,
     uint16_t bdf)
 {
@@ -727,7 +727,7 @@ void *amd_iommu_alloc_intremap_table(
     return tb;
 }
 
-bool __init iov_supports_xt(void)
+bool __init cf_check iov_supports_xt(void)
 {
     unsigned int apic;
 
@@ -756,7 +756,7 @@ bool __init iov_supports_xt(void)
     return true;
 }
 
-int __init amd_setup_hpet_msi(struct msi_desc *msi_desc)
+int __init cf_check amd_setup_hpet_msi(struct msi_desc *msi_desc)
 {
     const struct amd_iommu *iommu;
     spinlock_t *lock;
@@ -826,9 +826,9 @@ static void dump_intremap_table(const struct amd_iommu *iommu,
     }
 }
 
-static int dump_intremap_mapping(const struct amd_iommu *iommu,
-                                 struct ivrs_mappings *ivrs_mapping,
-                                 uint16_t unused)
+static int cf_check dump_intremap_mapping(
+    const struct amd_iommu *iommu, struct ivrs_mappings *ivrs_mapping,
+    uint16_t unused)
 {
     unsigned long flags;
 
diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
index b0330157eab5..bf5df5fe5d9a 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -276,8 +276,9 @@ static int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,
     return 0;
 }
 
-int amd_iommu_map_page(struct domain *d, dfn_t dfn, mfn_t mfn,
-                       unsigned int flags, unsigned int *flush_flags)
+int cf_check amd_iommu_map_page(
+    struct domain *d, dfn_t dfn, mfn_t mfn, unsigned int flags,
+    unsigned int *flush_flags)
 {
     struct domain_iommu *hd = dom_iommu(d);
     int rc;
@@ -326,8 +327,8 @@ int amd_iommu_map_page(struct domain *d, dfn_t dfn, mfn_t mfn,
     return 0;
 }
 
-int amd_iommu_unmap_page(struct domain *d, dfn_t dfn,
-                         unsigned int *flush_flags)
+int cf_check amd_iommu_unmap_page(
+    struct domain *d, dfn_t dfn, unsigned int *flush_flags)
 {
     unsigned long pt_mfn = 0;
     struct domain_iommu *hd = dom_iommu(d);
@@ -370,9 +371,9 @@ static unsigned long flush_count(unsigned long dfn, unsigned long page_count,
     return end - start;
 }
 
-int amd_iommu_flush_iotlb_pages(struct domain *d, dfn_t dfn,
-                                unsigned long page_count,
-                                unsigned int flush_flags)
+int cf_check amd_iommu_flush_iotlb_pages(
+    struct domain *d, dfn_t dfn, unsigned long page_count,
+    unsigned int flush_flags)
 {
     unsigned long dfn_l = dfn_x(dfn);
 
@@ -410,7 +411,7 @@ int amd_iommu_flush_iotlb_pages(struct domain *d, dfn_t dfn,
     return 0;
 }
 
-int amd_iommu_flush_iotlb_all(struct domain *d)
+int cf_check amd_iommu_flush_iotlb_all(struct domain *d)
 {
     amd_iommu_flush_all_pages(d);
 
@@ -462,7 +463,8 @@ int amd_iommu_reserve_domain_unity_unmap(struct domain *d,
     return rc;
 }
 
-int amd_iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt)
+int cf_check amd_iommu_get_reserved_device_memory(
+    iommu_grdm_t *func, void *ctxt)
 {
     unsigned int seg = 0 /* XXX */, bdf;
     const struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(seg);
@@ -537,7 +539,7 @@ int amd_iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt)
     return 0;
 }
 
-int __init amd_iommu_quarantine_init(struct domain *d)
+int __init cf_check amd_iommu_quarantine_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
     unsigned long end_gfn =
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 9642bba43a26..e57f555d00d1 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -197,7 +197,7 @@ int __init acpi_ivrs_init(void)
     return 0;
 }
 
-static int __init iov_detect(void)
+static int __init cf_check iov_detect(void)
 {
     if ( !iommu_enable && !iommu_intremap )
         return 0;
@@ -217,7 +217,7 @@ static int __init iov_detect(void)
     return 0;
 }
 
-static int iov_enable_xt(void)
+static int cf_check iov_enable_xt(void)
 {
     int rc;
 
@@ -253,7 +253,7 @@ int amd_iommu_alloc_root(struct domain *d)
 unsigned int __read_mostly amd_iommu_max_paging_mode = 6;
 int __read_mostly amd_iommu_min_paging_mode = 1;
 
-static int amd_iommu_domain_init(struct domain *d)
+static int cf_check amd_iommu_domain_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
 
@@ -275,9 +275,9 @@ static int amd_iommu_domain_init(struct domain *d)
     return 0;
 }
 
-static int amd_iommu_add_device(u8 devfn, struct pci_dev *pdev);
+static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev);
 
-static void __hwdom_init amd_iommu_hwdom_init(struct domain *d)
+static void __hwdom_init cf_check amd_iommu_hwdom_init(struct domain *d)
 {
     const struct amd_iommu *iommu;
 
@@ -350,8 +350,9 @@ static void amd_iommu_disable_domain_device(const struct domain *domain,
         spin_unlock_irqrestore(&iommu->lock, flags);
 }
 
-static int reassign_device(struct domain *source, struct domain *target,
-                           u8 devfn, struct pci_dev *pdev)
+static int cf_check reassign_device(
+    struct domain *source, struct domain *target, u8 devfn,
+    struct pci_dev *pdev)
 {
     struct amd_iommu *iommu;
     int bdf, rc;
@@ -404,9 +405,8 @@ static int reassign_device(struct domain *source, struct domain *target,
     return 0;
 }
 
-static int amd_iommu_assign_device(struct domain *d, u8 devfn,
-                                   struct pci_dev *pdev,
-                                   u32 flag)
+static int cf_check amd_iommu_assign_device(
+    struct domain *d, u8 devfn, struct pci_dev *pdev, u32 flag)
 {
     struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(pdev->seg);
     int bdf = PCI_BDF2(pdev->bus, devfn);
@@ -435,7 +435,7 @@ static int amd_iommu_assign_device(struct domain *d, u8 devfn,
     return rc;
 }
 
-static void amd_iommu_clear_root_pgtable(struct domain *d)
+static void cf_check amd_iommu_clear_root_pgtable(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
 
@@ -444,13 +444,13 @@ static void amd_iommu_clear_root_pgtable(struct domain *d)
     spin_unlock(&hd->arch.mapping_lock);
 }
 
-static void amd_iommu_domain_destroy(struct domain *d)
+static void cf_check amd_iommu_domain_destroy(struct domain *d)
 {
     iommu_identity_map_teardown(d);
     ASSERT(!dom_iommu(d)->arch.amd.root_table);
 }
 
-static int amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
+static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
 {
     struct amd_iommu *iommu;
     u16 bdf;
@@ -525,7 +525,7 @@ static int amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
     return amd_iommu_setup_domain_device(pdev->domain, iommu, devfn, pdev);
 }
 
-static int amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
+static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
 {
     struct amd_iommu *iommu;
     u16 bdf;
@@ -562,7 +562,7 @@ static int amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
     return 0;
 }
 
-static int amd_iommu_group_id(u16 seg, u8 bus, u8 devfn)
+static int cf_check amd_iommu_group_id(u16 seg, u8 bus, u8 devfn)
 {
     int bdf = PCI_BDF2(bus, devfn);
 
@@ -616,7 +616,7 @@ static void amd_dump_page_table_level(struct page_info *pg, int level,
     unmap_domain_page(table_vaddr);
 }
 
-static void amd_dump_page_tables(struct domain *d)
+static void cf_check amd_dump_page_tables(struct domain *d)
 {
     const struct domain_iommu *hd = dom_iommu(d);
 
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 81ab09649cd0..d0069e93ba2f 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1029,7 +1029,7 @@ void pci_check_disable_device(u16 seg, u8 bus, u8 devfn)
  * scan pci devices to add all existed PCI devices to alldevs_list,
  * and setup pci hierarchy in array bus2bridge.
  */
-static int __init _scan_pci_devices(struct pci_seg *pseg, void *arg)
+static int __init cf_check _scan_pci_devices(struct pci_seg *pseg, void *arg)
 {
     struct pci_dev *pdev;
     int bus, dev, func;
@@ -1107,7 +1107,8 @@ static void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom *ctxt,
                ctxt->d->domain_id, err);
 }
 
-static int __hwdom_init _setup_hwdom_pci_devices(struct pci_seg *pseg, void *arg)
+static int __hwdom_init cf_check _setup_hwdom_pci_devices(
+    struct pci_seg *pseg, void *arg)
 {
     struct setup_hwdom *ctxt = arg;
     int bus, devfn;
@@ -1264,7 +1265,7 @@ bool_t pcie_aer_get_firmware_first(const struct pci_dev *pdev)
 }
 #endif
 
-static int _dump_pci_devices(struct pci_seg *pseg, void *arg)
+static int cf_check _dump_pci_devices(struct pci_seg *pseg, void *arg)
 {
     struct pci_dev *pdev;
 
diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
index b8e91f5be1ae..63f8642e126a 100644
--- a/xen/drivers/passthrough/vtd/dmar.c
+++ b/xen/drivers/passthrough/vtd/dmar.c
@@ -1046,7 +1046,8 @@ bool_t __init platform_supports_x2apic(void)
     return cpu_has_x2apic && ((dmar_flags & mask) == ACPI_DMAR_INTR_REMAP);
 }
 
-int intel_iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt)
+int cf_check intel_iommu_get_reserved_device_memory(
+    iommu_grdm_t *func, void *ctxt)
 {
     struct acpi_rmrr_unit *rmrr, *rmrr_cur = NULL;
     unsigned int i;
diff --git a/xen/drivers/passthrough/vtd/extern.h b/xen/drivers/passthrough/vtd/extern.h
index 8c5e8397fd7e..b42e68b125c0 100644
--- a/xen/drivers/passthrough/vtd/extern.h
+++ b/xen/drivers/passthrough/vtd/extern.h
@@ -33,9 +33,9 @@ void print_iommu_regs(struct acpi_drhd_unit *drhd);
 void print_vtd_entries(struct vtd_iommu *iommu, int bus, int devfn, u64 gmfn);
 keyhandler_fn_t cf_check vtd_dump_iommu_info;
 
-bool intel_iommu_supports_eim(void);
-int intel_iommu_enable_eim(void);
-void intel_iommu_disable_eim(void);
+bool cf_check intel_iommu_supports_eim(void);
+int cf_check intel_iommu_enable_eim(void);
+void cf_check intel_iommu_disable_eim(void);
 
 int enable_qinval(struct vtd_iommu *iommu);
 void disable_qinval(struct vtd_iommu *iommu);
@@ -49,15 +49,13 @@ int iommu_flush_iec_global(struct vtd_iommu *iommu);
 int iommu_flush_iec_index(struct vtd_iommu *iommu, u8 im, u16 iidx);
 void clear_fault_bits(struct vtd_iommu *iommu);
 
-int __must_check vtd_flush_context_reg(struct vtd_iommu *iommu, uint16_t did,
-                                       uint16_t source_id,
-                                       uint8_t function_mask, uint64_t type,
-                                       bool flush_non_present_entry);
-int __must_check vtd_flush_iotlb_reg(struct vtd_iommu *iommu, uint16_t did,
-                                     uint64_t addr, unsigned int size_order,
-                                     uint64_t type,
-                                     bool flush_non_present_entry,
-                                     bool flush_dev_iotlb);
+int __must_check cf_check vtd_flush_context_reg(
+    struct vtd_iommu *iommu, uint16_t did, uint16_t source_id,
+    uint8_t function_mask, uint64_t type, bool flush_non_present_entry);
+int __must_check cf_check vtd_flush_iotlb_reg(
+    struct vtd_iommu *iommu, uint16_t did, uint64_t addr,
+    unsigned int size_order, uint64_t type, bool flush_non_present_entry,
+    bool flush_dev_iotlb);
 
 struct vtd_iommu *ioapic_to_iommu(unsigned int apic_id);
 struct vtd_iommu *hpet_to_iommu(unsigned int hpet_id);
@@ -87,17 +85,19 @@ int domain_context_mapping_one(struct domain *domain, struct vtd_iommu *iommu,
                                u8 bus, u8 devfn, const struct pci_dev *);
 int domain_context_unmap_one(struct domain *domain, struct vtd_iommu *iommu,
                              u8 bus, u8 devfn);
-int intel_iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt);
+int cf_check intel_iommu_get_reserved_device_memory(
+    iommu_grdm_t *func, void *ctxt);
 
-unsigned int io_apic_read_remap_rte(unsigned int apic, unsigned int reg);
-void io_apic_write_remap_rte(unsigned int apic,
-                             unsigned int reg, unsigned int value);
+unsigned int cf_check io_apic_read_remap_rte(
+    unsigned int apic, unsigned int reg);
+void cf_check io_apic_write_remap_rte(
+    unsigned int apic, unsigned int reg, unsigned int value);
 
 struct msi_desc;
 struct msi_msg;
-int msi_msg_write_remap_rte(struct msi_desc *, struct msi_msg *);
+int cf_check msi_msg_write_remap_rte(struct msi_desc *, struct msi_msg *);
 
-int intel_setup_hpet_msi(struct msi_desc *);
+int cf_check intel_setup_hpet_msi(struct msi_desc *);
 
 int is_igd_vt_enabled_quirk(void);
 bool is_azalia_tlb_enabled(const struct acpi_drhd_unit *);
diff --git a/xen/drivers/passthrough/vtd/intremap.c b/xen/drivers/passthrough/vtd/intremap.c
index 01152f200664..e6ba89591b6f 100644
--- a/xen/drivers/passthrough/vtd/intremap.c
+++ b/xen/drivers/passthrough/vtd/intremap.c
@@ -142,7 +142,7 @@ static void set_hpet_source_id(unsigned int id, struct iremap_entry *ire)
     set_ire_sid(ire, SVT_VERIFY_SID_SQ, SQ_13_IGNORE_3, hpetid_to_bdf(id));
 }
 
-bool __init intel_iommu_supports_eim(void)
+bool __init cf_check intel_iommu_supports_eim(void)
 {
     struct acpi_drhd_unit *drhd;
     unsigned int apic;
@@ -414,7 +414,7 @@ static int ioapic_rte_to_remap_entry(struct vtd_iommu *iommu,
     return 0;
 }
 
-unsigned int io_apic_read_remap_rte(
+unsigned int cf_check io_apic_read_remap_rte(
     unsigned int apic, unsigned int reg)
 {
     unsigned int ioapic_pin = (reg - 0x10) / 2;
@@ -438,7 +438,7 @@ unsigned int io_apic_read_remap_rte(
         return (*(((u32 *)&old_rte) + 0));
 }
 
-void io_apic_write_remap_rte(
+void cf_check io_apic_write_remap_rte(
     unsigned int apic, unsigned int reg, unsigned int value)
 {
     unsigned int ioapic_pin = (reg - 0x10) / 2;
@@ -639,7 +639,7 @@ static int msi_msg_to_remap_entry(
     return 0;
 }
 
-int msi_msg_write_remap_rte(
+int cf_check msi_msg_write_remap_rte(
     struct msi_desc *msi_desc, struct msi_msg *msg)
 {
     struct pci_dev *pdev = msi_desc->dev;
@@ -651,7 +651,7 @@ int msi_msg_write_remap_rte(
                 : -EINVAL;
 }
 
-int __init intel_setup_hpet_msi(struct msi_desc *msi_desc)
+int __init cf_check intel_setup_hpet_msi(struct msi_desc *msi_desc)
 {
     struct vtd_iommu *iommu = hpet_to_iommu(msi_desc->hpet_id);
     unsigned long flags;
@@ -802,7 +802,7 @@ void disable_intremap(struct vtd_iommu *iommu)
  * This function is used to enable Interrupt remapping when
  * enable x2apic
  */
-int intel_iommu_enable_eim(void)
+int cf_check intel_iommu_enable_eim(void)
 {
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
@@ -856,7 +856,7 @@ int intel_iommu_enable_eim(void)
  * This function is used to disable Interrupt remapping when
  * suspend local apic
  */
-void intel_iommu_disable_eim(void)
+void cf_check intel_iommu_disable_eim(void)
 {
     struct acpi_drhd_unit *drhd;
 
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 23519f2081bb..498a9ea9c9c1 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -59,7 +59,7 @@ static unsigned int __read_mostly nr_iommus;
 static struct iommu_ops vtd_ops;
 static struct tasklet vtd_fault_tasklet;
 
-static int setup_hwdom_device(u8 devfn, struct pci_dev *);
+static int cf_check setup_hwdom_device(u8 devfn, struct pci_dev *);
 static void setup_hwdom_rmrr(struct domain *d);
 
 static int domain_iommu_domid(struct domain *d,
@@ -202,7 +202,7 @@ static void check_cleanup_domid_map(struct domain *d,
     }
 }
 
-static void sync_cache(const void *addr, unsigned int size)
+static void cf_check sync_cache(const void *addr, unsigned int size)
 {
     static unsigned long clflush_size = 0;
     const void *end = addr + size;
@@ -437,9 +437,9 @@ static void iommu_flush_write_buffer(struct vtd_iommu *iommu)
 }
 
 /* return value determine if we need a write buffer flush */
-int vtd_flush_context_reg(struct vtd_iommu *iommu, uint16_t did,
-                          uint16_t source_id, uint8_t function_mask,
-                          uint64_t type, bool flush_non_present_entry)
+int cf_check vtd_flush_context_reg(
+    struct vtd_iommu *iommu, uint16_t did, uint16_t source_id,
+    uint8_t function_mask, uint64_t type, bool flush_non_present_entry)
 {
     u64 val = 0;
     unsigned long flags;
@@ -505,9 +505,10 @@ static int __must_check iommu_flush_context_device(struct vtd_iommu *iommu,
 }
 
 /* return value determine if we need a write buffer flush */
-int vtd_flush_iotlb_reg(struct vtd_iommu *iommu, uint16_t did, uint64_t addr,
-                        unsigned int size_order, uint64_t type,
-                        bool flush_non_present_entry, bool flush_dev_iotlb)
+int cf_check vtd_flush_iotlb_reg(
+    struct vtd_iommu *iommu, uint16_t did, uint64_t addr,
+    unsigned int size_order, uint64_t type, bool flush_non_present_entry,
+    bool flush_dev_iotlb)
 {
     int tlb_offset = ecap_iotlb_offset(iommu->ecap);
     u64 val = 0;
@@ -720,10 +721,9 @@ static int __must_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
     return ret;
 }
 
-static int __must_check iommu_flush_iotlb_pages(struct domain *d,
-                                                dfn_t dfn,
-                                                unsigned long page_count,
-                                                unsigned int flush_flags)
+static int __must_check cf_check iommu_flush_iotlb_pages(
+    struct domain *d, dfn_t dfn, unsigned long page_count,
+    unsigned int flush_flags)
 {
     ASSERT(page_count && !dfn_eq(dfn, INVALID_DFN));
     ASSERT(flush_flags);
@@ -732,7 +732,7 @@ static int __must_check iommu_flush_iotlb_pages(struct domain *d,
                              page_count);
 }
 
-static int __must_check iommu_flush_iotlb_all(struct domain *d)
+static int __must_check cf_check iommu_flush_iotlb_all(struct domain *d)
 {
     return iommu_flush_iotlb(d, INVALID_DFN, 0, 0);
 }
@@ -1353,7 +1353,7 @@ void __init iommu_free(struct acpi_drhd_unit *drhd)
         agaw = 64;                              \
     agaw; })
 
-static int intel_iommu_domain_init(struct domain *d)
+static int cf_check intel_iommu_domain_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
 
@@ -1367,7 +1367,7 @@ static int intel_iommu_domain_init(struct domain *d)
     return 0;
 }
 
-static void __hwdom_init intel_iommu_hwdom_init(struct domain *d)
+static void __hwdom_init cf_check intel_iommu_hwdom_init(struct domain *d)
 {
     struct acpi_drhd_unit *drhd;
 
@@ -1815,7 +1815,7 @@ static int domain_context_unmap(struct domain *domain, u8 devfn,
     return ret;
 }
 
-static void iommu_clear_root_pgtable(struct domain *d)
+static void cf_check iommu_clear_root_pgtable(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
 
@@ -1824,7 +1824,7 @@ static void iommu_clear_root_pgtable(struct domain *d)
     spin_unlock(&hd->arch.mapping_lock);
 }
 
-static void iommu_domain_teardown(struct domain *d)
+static void cf_check iommu_domain_teardown(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
     const struct acpi_drhd_unit *drhd;
@@ -1842,9 +1842,9 @@ static void iommu_domain_teardown(struct domain *d)
     XFREE(hd->arch.vtd.iommu_bitmap);
 }
 
-static int __must_check intel_iommu_map_page(struct domain *d, dfn_t dfn,
-                                             mfn_t mfn, unsigned int flags,
-                                             unsigned int *flush_flags)
+static int __must_check cf_check intel_iommu_map_page(
+    struct domain *d, dfn_t dfn, mfn_t mfn, unsigned int flags,
+    unsigned int *flush_flags)
 {
     struct domain_iommu *hd = dom_iommu(d);
     struct dma_pte *page, *pte, old, new = {};
@@ -1913,8 +1913,8 @@ static int __must_check intel_iommu_map_page(struct domain *d, dfn_t dfn,
     return rc;
 }
 
-static int __must_check intel_iommu_unmap_page(struct domain *d, dfn_t dfn,
-                                               unsigned int *flush_flags)
+static int __must_check cf_check intel_iommu_unmap_page(
+    struct domain *d, dfn_t dfn, unsigned int *flush_flags)
 {
     /* Do nothing if VT-d shares EPT page table */
     if ( iommu_use_hap_pt(d) )
@@ -1929,8 +1929,8 @@ static int __must_check intel_iommu_unmap_page(struct domain *d, dfn_t dfn,
     return 0;
 }
 
-static int intel_iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                                   unsigned int *flags)
+static int cf_check intel_iommu_lookup_page(
+    struct domain *d, dfn_t dfn, mfn_t *mfn, unsigned int *flags)
 {
     struct domain_iommu *hd = dom_iommu(d);
     struct dma_pte *page, val;
@@ -1982,7 +1982,7 @@ static int __init vtd_ept_page_compatible(struct vtd_iommu *iommu)
            (ept_has_1gb(ept_cap) && opt_hap_1gb) <= cap_sps_1gb(vtd_cap);
 }
 
-static int intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
+static int cf_check intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
 {
     struct acpi_rmrr_unit *rmrr;
     u16 bdf;
@@ -2025,7 +2025,7 @@ static int intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
     return 0;
 }
 
-static int intel_iommu_enable_device(struct pci_dev *pdev)
+static int cf_check intel_iommu_enable_device(struct pci_dev *pdev)
 {
     struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
     int ret = drhd ? ats_device(pdev, drhd) : -ENODEV;
@@ -2040,7 +2040,7 @@ static int intel_iommu_enable_device(struct pci_dev *pdev)
     return ret >= 0 ? 0 : ret;
 }
 
-static int intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
+static int cf_check intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
 {
     struct acpi_rmrr_unit *rmrr;
     u16 bdf;
@@ -2067,7 +2067,8 @@ static int intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
     return domain_context_unmap(pdev->domain, devfn, pdev);
 }
 
-static int __hwdom_init setup_hwdom_device(u8 devfn, struct pci_dev *pdev)
+static int __hwdom_init cf_check setup_hwdom_device(
+    u8 devfn, struct pci_dev *pdev)
 {
     return domain_context_mapping(pdev->domain, devfn, pdev);
 }
@@ -2273,7 +2274,7 @@ static struct iommu_state {
     uint32_t fectl;
 } *__read_mostly iommu_state;
 
-static int __init vtd_setup(void)
+static int __init cf_check vtd_setup(void)
 {
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
@@ -2408,7 +2409,7 @@ static int __init vtd_setup(void)
     return ret;
 }
 
-static int reassign_device_ownership(
+static int cf_check reassign_device_ownership(
     struct domain *source,
     struct domain *target,
     u8 devfn, struct pci_dev *pdev)
@@ -2486,7 +2487,7 @@ static int reassign_device_ownership(
     return ret;
 }
 
-static int intel_iommu_assign_device(
+static int cf_check intel_iommu_assign_device(
     struct domain *d, u8 devfn, struct pci_dev *pdev, u32 flag)
 {
     struct domain *s = pdev->domain;
@@ -2568,7 +2569,7 @@ static int intel_iommu_assign_device(
     return ret;
 }
 
-static int intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
+static int cf_check intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
 {
     u8 secbus;
     if ( find_upstream_bridge(seg, &bus, &devfn, &secbus) < 0 )
@@ -2577,7 +2578,7 @@ static int intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
         return PCI_BDF2(bus, devfn);
 }
 
-static int __must_check vtd_suspend(void)
+static int __must_check cf_check vtd_suspend(void)
 {
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
@@ -2620,7 +2621,7 @@ static int __must_check vtd_suspend(void)
     return 0;
 }
 
-static void vtd_crash_shutdown(void)
+static void cf_check vtd_crash_shutdown(void)
 {
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
@@ -2641,7 +2642,7 @@ static void vtd_crash_shutdown(void)
     }
 }
 
-static void vtd_resume(void)
+static void cf_check vtd_resume(void)
 {
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
@@ -2719,7 +2720,7 @@ static void vtd_dump_page_table_level(paddr_t pt_maddr, int level, paddr_t gpa,
     unmap_vtd_domain_page(pt_vaddr);
 }
 
-static void vtd_dump_page_tables(struct domain *d)
+static void cf_check vtd_dump_page_tables(struct domain *d)
 {
     const struct domain_iommu *hd = dom_iommu(d);
 
@@ -2729,7 +2730,7 @@ static void vtd_dump_page_tables(struct domain *d)
                               agaw_to_level(hd->arch.vtd.agaw), 0, 0);
 }
 
-static int __init intel_iommu_quarantine_init(struct domain *d)
+static int __init cf_check intel_iommu_quarantine_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
     struct page_info *pg;
diff --git a/xen/drivers/passthrough/vtd/qinval.c b/xen/drivers/passthrough/vtd/qinval.c
index b16153e29812..b877e5c930e1 100644
--- a/xen/drivers/passthrough/vtd/qinval.c
+++ b/xen/drivers/passthrough/vtd/qinval.c
@@ -325,9 +325,9 @@ int iommu_flush_iec_index(struct vtd_iommu *iommu, u8 im, u16 iidx)
     return queue_invalidate_iec_sync(iommu, IEC_INDEX_INVL, im, iidx);
 }
 
-static int __must_check flush_context_qi(struct vtd_iommu *iommu, u16 did,
-                                         u16 sid, u8 fm, u64 type,
-                                         bool flush_non_present_entry)
+static int __must_check cf_check flush_context_qi(
+    struct vtd_iommu *iommu, u16 did, u16 sid, u8 fm, u64 type,
+    bool flush_non_present_entry)
 {
     ASSERT(iommu->qinval_maddr);
 
@@ -349,11 +349,9 @@ static int __must_check flush_context_qi(struct vtd_iommu *iommu, u16 did,
                                          type >> DMA_CCMD_INVL_GRANU_OFFSET);
 }
 
-static int __must_check flush_iotlb_qi(struct vtd_iommu *iommu, u16 did,
-                                       u64 addr,
-                                       unsigned int size_order, u64 type,
-                                       bool flush_non_present_entry,
-                                       bool flush_dev_iotlb)
+static int __must_check cf_check flush_iotlb_qi(
+    struct vtd_iommu *iommu, u16 did, u64 addr, unsigned int size_order,
+    u64 type, bool flush_non_present_entry, bool flush_dev_iotlb)
 {
     u8 dr = 0, dw = 0;
     int ret = 0, rc;
@@ -464,18 +462,18 @@ int enable_qinval(struct vtd_iommu *iommu)
     return 0;
 }
 
-static int vtd_flush_context_noop(struct vtd_iommu *iommu, uint16_t did,
-                                  uint16_t source_id, uint8_t function_mask,
-                                  uint64_t type, bool flush_non_present_entry)
+static int cf_check vtd_flush_context_noop(
+    struct vtd_iommu *iommu, uint16_t did, uint16_t source_id,
+    uint8_t function_mask, uint64_t type, bool flush_non_present_entry)
 {
     WARN();
     return -EIO;
 }
 
-static int vtd_flush_iotlb_noop(struct vtd_iommu *iommu, uint16_t did,
-                                uint64_t addr, unsigned int size_order,
-                                uint64_t type, bool flush_non_present_entry,
-                                bool flush_dev_iotlb)
+static int cf_check vtd_flush_iotlb_noop(
+    struct vtd_iommu *iommu, uint16_t did, uint64_t addr,
+    unsigned int size_order, uint64_t type, bool flush_non_present_entry,
+    bool flush_dev_iotlb)
 {
     WARN();
     return -EIO;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:06:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:06:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232778.403770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawM-00038p-OM; Fri, 26 Nov 2021 13:06:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232778.403770; Fri, 26 Nov 2021 13:06:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawM-00036t-IQ; Fri, 26 Nov 2021 13:06:58 +0000
Received: by outflank-mailman (input) for mailman id 232778;
 Fri, 26 Nov 2021 13:06:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauc-0003W9-AW
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:10 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a6cca6d-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a6cca6d-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931907;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=6W30pS4w00/O4PLw081oztrCfwf9uX+zMhuEsVt7eLg=;
  b=ee/XFbG1mvg+emKveS9yXuLkooUgH21db1aZLSXHazUkOT0p2NkHoKbw
   WPz5byUcX+pAv+mTPAwgNT17lHGYbo3KcKHjZgbARaytMIagyHoZ7PoQr
   qqhX3gSUYH9MvzRraas1YP0HnZVBMzLJNR+S3ybA0GxrMwzznX+OAJViR
   M=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: pcZI6XLvAbxV6CboBlEV7r7xBC7uET7Hqr/1oBRAM1aetUZt3tRmnVSE6F+YblWt4mlLnsNJOL
 1EAAyOYCRBnoO7jghjQeZNzv9XOxLvKKh+ldnVOD/SShfdnBWSlt4C43LyVZmOzYMDk9m7cj94
 YMRABTKhH5vjL2VXZKXFXhaJ/puMMU7nosm/UCmyPA/zx6+zax6tMW7S7Gd0qTYF4fAWopxFWy
 t8mWM8y8vrFdCrZpK8ltQuYHQyHYQCYBIjFBcL43mguM8oGVPCN0KchSP1Kw2wjBo/ZARqOAFR
 sVHZ83qatcwDTF6mUOoa4VlC
X-SBRS: 5.1
X-MesageID: 58695956
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ep98O6JTUqNIKmJLFE+RQZIlxSXFcZb7ZxGr2PjKsXjdYENS12ZWy
 GoeUTvTM/mDMDSjfd1/bt6+8BwH7JCGx4c1HFBlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2FuvYyk
 4VymaDzUCB0DuqSxe0CSiZXRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpg2JETTKuAD
 yYfQR12aybwJF4MAG1JWIM7n92XwUfUQjIN/Tp5ooJoujOOnWSdyoPFEvDYZ9iLTsV9hVuDq
 yTN+GGRKh0UPdOQyD2B81q3m/TC2yj8Xeo6FrKi8eVxqEaO3WFVAxoTPXO5vP24h0iWS99Zb
 UsO9UIGvaU0sUCmUNT5dxm5u2Kf+A4RXcJKFO834x3LzbDbiy6CHXQNRDNFbN0gtec1SCYs2
 1vPmMnmbRRwtJWFRHTb8a2bxQ5eIgBMczVEP3VdC1JYvZ+z++nfky4jUP5vNYj21Y3KNQ2z2
 hfXnG9g2rwMlPEEgvDTEU/8vxqgoZ3ATwgQ7wrRX3644g4RWLNJd7BE+nCAs68ecd/xok2p+
 SFdxpPAtLxm4YSlzXTVGI0w8KeVC+Fp2dE2qXpmBNEf+juk4BZPlqgAsWgldC+F3ivpEAIFg
 XM/WysNu/e/31PwNMebhr5d7exxlsAM8vy/C5jpgiJmOMQZSeN+1HgGibSs927silMwtqo0J
 I2Wd82hZV5DV/84nGTrGLZBj+Nwrszb+Y81bcugp/hA+eDDDEN5tJ9faAfeBgzHxP/sTPrpH
 yZ3aJLRlkQ3vBzWaSjL648DRW3m3lBgba0aX/d/L7bZSiI/QTlJI6aIndsJJtw094wIx7yg1
 izsBSdlJK/X2CSvxfOiMSs4NtsCnP9X8BoGAMDbFQryhiV4P9/wtPx3mlleVeBPydGPBMVcF
 5EtE/hsyNwUItge0zhCP5T7sqJ4cxGn2VCHMya/OWBtdJ98XQ3ZvNTje1K3piUJCyO2s+o4o
 qGhiVyHEcZSGVw6AZaEcu+rwnOwoWMZxLB4UXzXL4QBY07r6oVrdXD816dlP8EWJBzf7TKGz
 ALKUwwArOzArtZtotnEjKyJtamzFO56EhYIFmXX9+/uZyLb4nCi0clLV+PRJWLRU2b9+aODY
 +RJzq6jbK1bzQgS64clSuRl16Mz4dfrtoR29AU8ESWZdUmvB5NhPmKCgZtFuJpSy+ILogCxQ
 E+OpIVXYO3bJMP/HVcNDwM5deDfh+oMkzzf4PlpckX34Ch7oOiOXUlIZkTejSVcKP1+MZ8/w
 Pdns8kTslTthh0vO9eAryZV62XTcSBQD/R57skXUN3xlw4m6lBeepiNWCb57aaGZ8hILkR3c
 CSfg7DPhugEy0fPG5bp+aMhAQaJaUwyhS13
IronPort-HdrOrdr: A9a23:HP+c8KAaAU27XJHlHemU55DYdb4zR+YMi2TC1yhKJyC9Ffbo7v
 xG/c5rsyMc5wxwZJhNo7y90ey7MBbhHP1OkO4s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpN
 9dmsNFaeEYY2IUsS+D2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58695956"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Dario Faggioli
	<dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>
Subject: [PATCH 16/65] xen/sched: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:33:57 +0000
Message-ID: <20211126123446.32324-17-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Dario Faggioli <dfaggioli@suse.com>
CC: Juergen Gross <jgross@suse.com>
---
 xen/common/sched/arinc653.c | 20 +++++++--------
 xen/common/sched/core.c     |  8 +++---
 xen/common/sched/credit.c   | 49 ++++++++++++++++++------------------
 xen/common/sched/credit2.c  | 51 +++++++++++++++++++-------------------
 xen/common/sched/null.c     | 60 +++++++++++++++++++++++----------------------
 xen/common/sched/rt.c       | 42 +++++++++++++++----------------
 6 files changed, 115 insertions(+), 115 deletions(-)

diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index 542191822192..a82c0d7314a1 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -343,7 +343,7 @@ arinc653_sched_get(
  *                  <li> !0 = error
  *                  </ul>
  */
-static int
+static int cf_check
 a653sched_init(struct scheduler *ops)
 {
     a653sched_priv_t *prv;
@@ -366,7 +366,7 @@ a653sched_init(struct scheduler *ops)
  *
  * @param ops       Pointer to this instance of the scheduler structure
  */
-static void
+static void cf_check
 a653sched_deinit(struct scheduler *ops)
 {
     xfree(SCHED_PRIV(ops));
@@ -381,7 +381,7 @@ a653sched_deinit(struct scheduler *ops)
  *
  * @return          Pointer to the allocated data
  */
-static void *
+static void *cf_check
 a653sched_alloc_udata(const struct scheduler *ops, struct sched_unit *unit,
                       void *dd)
 {
@@ -442,7 +442,7 @@ a653sched_alloc_udata(const struct scheduler *ops, struct sched_unit *unit,
  *
  * @param ops       Pointer to this instance of the scheduler structure
  */
-static void
+static void cf_check
 a653sched_free_udata(const struct scheduler *ops, void *priv)
 {
     a653sched_priv_t *sched_priv = SCHED_PRIV(ops);
@@ -469,7 +469,7 @@ a653sched_free_udata(const struct scheduler *ops, void *priv)
  * @param ops       Pointer to this instance of the scheduler structure
  * @param unit      Pointer to struct sched_unit
  */
-static void
+static void cf_check
 a653sched_unit_sleep(const struct scheduler *ops, struct sched_unit *unit)
 {
     if ( AUNIT(unit) != NULL )
@@ -489,7 +489,7 @@ a653sched_unit_sleep(const struct scheduler *ops, struct sched_unit *unit)
  * @param ops       Pointer to this instance of the scheduler structure
  * @param unit      Pointer to struct sched_unit
  */
-static void
+static void cf_check
 a653sched_unit_wake(const struct scheduler *ops, struct sched_unit *unit)
 {
     if ( AUNIT(unit) != NULL )
@@ -505,7 +505,7 @@ a653sched_unit_wake(const struct scheduler *ops, struct sched_unit *unit)
  * @param ops       Pointer to this instance of the scheduler structure
  * @param now       Current time
  */
-static void
+static void cf_check
 a653sched_do_schedule(
     const struct scheduler *ops,
     struct sched_unit *prev,
@@ -604,7 +604,7 @@ a653sched_do_schedule(
  *
  * @return          Scheduler resource to run on
  */
-static struct sched_resource *
+static struct sched_resource *cf_check
 a653sched_pick_resource(const struct scheduler *ops,
                         const struct sched_unit *unit)
 {
@@ -634,7 +634,7 @@ a653sched_pick_resource(const struct scheduler *ops,
  * @param pdata     scheduler specific PCPU data (we don't have any)
  * @param vdata     scheduler specific UNIT data of the idle unit
  */
-static spinlock_t *
+static spinlock_t *cf_check
 a653_switch_sched(struct scheduler *new_ops, unsigned int cpu,
                   void *pdata, void *vdata)
 {
@@ -656,7 +656,7 @@ a653_switch_sched(struct scheduler *new_ops, unsigned int cpu,
  * @param ops       Pointer to this instance of the scheduler structure
  * @param sc        Pointer to the scheduler operation specified by Domain 0
  */
-static int
+static int cf_check
 a653sched_adjust_global(const struct scheduler *ops,
                         struct xen_sysctl_scheduler_op *sc)
 {
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index b1836b591c0a..9e09d9befa23 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -98,13 +98,13 @@ static bool scheduler_active;
 static void sched_set_affinity(
     struct sched_unit *unit, const cpumask_t *hard, const cpumask_t *soft);
 
-static struct sched_resource *
+static struct sched_resource *cf_check
 sched_idle_res_pick(const struct scheduler *ops, const struct sched_unit *unit)
 {
     return unit->res;
 }
 
-static void *
+static void *cf_check
 sched_idle_alloc_udata(const struct scheduler *ops, struct sched_unit *unit,
                        void *dd)
 {
@@ -112,12 +112,12 @@ sched_idle_alloc_udata(const struct scheduler *ops, struct sched_unit *unit,
     return ZERO_BLOCK_PTR;
 }
 
-static void
+static void cf_check
 sched_idle_free_udata(const struct scheduler *ops, void *priv)
 {
 }
 
-static void sched_idle_schedule(
+static void cf_check sched_idle_schedule(
     const struct scheduler *ops, struct sched_unit *unit, s_time_t now,
     bool tasklet_work_scheduled)
 {
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index 5635271f6fea..4d3bd8cba6fc 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -507,7 +507,7 @@ static inline void __runq_tickle(const struct csched_unit *new)
         SCHED_STAT_CRANK(tickled_no_cpu);
 }
 
-static void
+static void cf_check
 csched_free_pdata(const struct scheduler *ops, void *pcpu, int cpu)
 {
     const struct csched_private *prv = CSCHED_PRIV(ops);
@@ -524,7 +524,7 @@ csched_free_pdata(const struct scheduler *ops, void *pcpu, int cpu)
     xfree(pcpu);
 }
 
-static void
+static void cf_check
 csched_deinit_pdata(const struct scheduler *ops, void *pcpu, int cpu)
 {
     struct csched_private *prv = CSCHED_PRIV(ops);
@@ -566,7 +566,7 @@ csched_deinit_pdata(const struct scheduler *ops, void *pcpu, int cpu)
     spin_unlock_irqrestore(&prv->lock, flags);
 }
 
-static void *
+static void *cf_check
 csched_alloc_pdata(const struct scheduler *ops, int cpu)
 {
     struct csched_pcpu *spc;
@@ -615,7 +615,7 @@ init_pdata(struct csched_private *prv, struct csched_pcpu *spc, int cpu)
 }
 
 /* Change the scheduler of cpu to us (Credit). */
-static spinlock_t *
+static spinlock_t *cf_check
 csched_switch_sched(struct scheduler *new_ops, unsigned int cpu,
                     void *pdata, void *vdata)
 {
@@ -848,7 +848,7 @@ _csched_cpu_pick(const struct scheduler *ops, const struct sched_unit *unit,
     return cpu;
 }
 
-static struct sched_resource *
+static struct sched_resource *cf_check
 csched_res_pick(const struct scheduler *ops, const struct sched_unit *unit)
 {
     struct csched_unit *svc = CSCHED_UNIT(unit);
@@ -985,9 +985,8 @@ csched_unit_acct(struct csched_private *prv, unsigned int cpu)
     }
 }
 
-static void *
-csched_alloc_udata(const struct scheduler *ops, struct sched_unit *unit,
-                   void *dd)
+static void *cf_check csched_alloc_udata(
+    const struct scheduler *ops, struct sched_unit *unit, void *dd)
 {
     struct csched_unit *svc;
 
@@ -1007,7 +1006,7 @@ csched_alloc_udata(const struct scheduler *ops, struct sched_unit *unit,
     return svc;
 }
 
-static void
+static void cf_check
 csched_unit_insert(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched_unit *svc = unit->priv;
@@ -1032,7 +1031,7 @@ csched_unit_insert(const struct scheduler *ops, struct sched_unit *unit)
     SCHED_STAT_CRANK(unit_insert);
 }
 
-static void
+static void cf_check
 csched_free_udata(const struct scheduler *ops, void *priv)
 {
     struct csched_unit *svc = priv;
@@ -1042,7 +1041,7 @@ csched_free_udata(const struct scheduler *ops, void *priv)
     xfree(svc);
 }
 
-static void
+static void cf_check
 csched_unit_remove(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched_private *prv = CSCHED_PRIV(ops);
@@ -1069,7 +1068,7 @@ csched_unit_remove(const struct scheduler *ops, struct sched_unit *unit)
     BUG_ON( sdom == NULL );
 }
 
-static void
+static void cf_check
 csched_unit_sleep(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched_unit * const svc = CSCHED_UNIT(unit);
@@ -1094,7 +1093,7 @@ csched_unit_sleep(const struct scheduler *ops, struct sched_unit *unit)
         runq_remove(svc);
 }
 
-static void
+static void cf_check
 csched_unit_wake(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched_unit * const svc = CSCHED_UNIT(unit);
@@ -1156,7 +1155,7 @@ csched_unit_wake(const struct scheduler *ops, struct sched_unit *unit)
     __runq_tickle(svc);
 }
 
-static void
+static void cf_check
 csched_unit_yield(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched_unit * const svc = CSCHED_UNIT(unit);
@@ -1165,7 +1164,7 @@ csched_unit_yield(const struct scheduler *ops, struct sched_unit *unit)
     set_bit(CSCHED_FLAG_UNIT_YIELD, &svc->flags);
 }
 
-static int
+static int cf_check
 csched_dom_cntl(
     const struct scheduler *ops,
     struct domain *d,
@@ -1210,7 +1209,7 @@ csched_dom_cntl(
     return rc;
 }
 
-static void
+static void cf_check
 csched_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
                 const cpumask_t *hard, const cpumask_t *soft)
 {
@@ -1238,7 +1237,7 @@ __csched_set_tslice(struct csched_private *prv, unsigned int timeslice_ms)
     prv->credit = prv->credits_per_tslice * prv->ncpus;
 }
 
-static int
+static int cf_check
 csched_sys_cntl(const struct scheduler *ops,
                         struct xen_sysctl_scheduler_op *sc)
 {
@@ -1281,7 +1280,7 @@ csched_sys_cntl(const struct scheduler *ops,
     return rc;
 }
 
-static void *
+static void *cf_check
 csched_alloc_domdata(const struct scheduler *ops, struct domain *dom)
 {
     struct csched_dom *sdom;
@@ -1299,7 +1298,7 @@ csched_alloc_domdata(const struct scheduler *ops, struct domain *dom)
     return sdom;
 }
 
-static void
+static void cf_check
 csched_free_domdata(const struct scheduler *ops, void *data)
 {
     xfree(data);
@@ -1809,7 +1808,7 @@ csched_load_balance(struct csched_private *prv, int cpu,
  * This function is in the critical path. It is designed to be simple and
  * fast for the common case.
  */
-static void csched_schedule(
+static void cf_check csched_schedule(
     const struct scheduler *ops, struct sched_unit *unit, s_time_t now,
     bool tasklet_work_scheduled)
 {
@@ -2026,7 +2025,7 @@ csched_dump_unit(const struct csched_unit *svc)
     printk("\n");
 }
 
-static void
+static void cf_check
 csched_dump_pcpu(const struct scheduler *ops, int cpu)
 {
     const struct list_head *runq;
@@ -2079,7 +2078,7 @@ csched_dump_pcpu(const struct scheduler *ops, int cpu)
     spin_unlock_irqrestore(&prv->lock, flags);
 }
 
-static void
+static void cf_check
 csched_dump(const struct scheduler *ops)
 {
     struct list_head *iter_sdom, *iter_svc;
@@ -2143,7 +2142,7 @@ csched_dump(const struct scheduler *ops)
     spin_unlock_irqrestore(&prv->lock, flags);
 }
 
-static int __init
+static int __init cf_check
 csched_global_init(void)
 {
     if ( sched_credit_tslice_ms > XEN_SYSCTL_CSCHED_TSLICE_MAX ||
@@ -2173,7 +2172,7 @@ csched_global_init(void)
     return 0;
 }
 
-static int
+static int cf_check
 csched_init(struct scheduler *ops)
 {
     struct csched_private *prv;
@@ -2215,7 +2214,7 @@ csched_init(struct scheduler *ops)
     return 0;
 }
 
-static void
+static void cf_check
 csched_deinit(struct scheduler *ops)
 {
     struct csched_private *prv;
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index d96e2749ddfb..0e3f89e5378e 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -2164,7 +2164,7 @@ csched2_unit_check(const struct sched_unit *unit)
 #define CSCHED2_UNIT_CHECK(unit)
 #endif
 
-static void *
+static void *cf_check
 csched2_alloc_udata(const struct scheduler *ops, struct sched_unit *unit,
                     void *dd)
 {
@@ -2208,7 +2208,7 @@ csched2_alloc_udata(const struct scheduler *ops, struct sched_unit *unit,
     return svc;
 }
 
-static void
+static void cf_check
 csched2_unit_sleep(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched2_unit * const svc = csched2_unit(unit);
@@ -2230,7 +2230,7 @@ csched2_unit_sleep(const struct scheduler *ops, struct sched_unit *unit)
         __clear_bit(__CSFLAG_delayed_runq_add, &svc->flags);
 }
 
-static void
+static void cf_check
 csched2_unit_wake(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched2_unit * const svc = csched2_unit(unit);
@@ -2285,7 +2285,7 @@ csched2_unit_wake(const struct scheduler *ops, struct sched_unit *unit)
     return;
 }
 
-static void
+static void cf_check
 csched2_unit_yield(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched2_unit * const svc = csched2_unit(unit);
@@ -2293,7 +2293,7 @@ csched2_unit_yield(const struct scheduler *ops, struct sched_unit *unit)
     __set_bit(__CSFLAG_unit_yield, &svc->flags);
 }
 
-static void
+static void cf_check
 csched2_context_saved(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched2_unit * const svc = csched2_unit(unit);
@@ -2335,7 +2335,7 @@ csched2_context_saved(const struct scheduler *ops, struct sched_unit *unit)
 }
 
 #define MAX_LOAD (STIME_MAX)
-static struct sched_resource *
+static struct sched_resource *cf_check
 csched2_res_pick(const struct scheduler *ops, const struct sched_unit *unit)
 {
     struct csched2_private *prv = csched2_priv(ops);
@@ -2867,8 +2867,7 @@ static void balance_load(const struct scheduler *ops, int cpu, s_time_t now)
     return;
 }
 
-static void
-csched2_unit_migrate(
+static void cf_check csched2_unit_migrate(
     const struct scheduler *ops, struct sched_unit *unit, unsigned int new_cpu)
 {
     struct csched2_unit * const svc = csched2_unit(unit);
@@ -2894,7 +2893,7 @@ csched2_unit_migrate(
         sched_set_res(unit, get_sched_res(new_cpu));
 }
 
-static int
+static int cf_check
 csched2_dom_cntl(
     const struct scheduler *ops,
     struct domain *d,
@@ -3100,7 +3099,7 @@ csched2_dom_cntl(
     return rc;
 }
 
-static void
+static void cf_check
 csched2_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
                  const cpumask_t *hard, const cpumask_t *soft)
 {
@@ -3116,8 +3115,8 @@ csched2_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
         __clear_bit(__CSFLAG_pinned, &svc->flags);
 }
 
-static int csched2_sys_cntl(const struct scheduler *ops,
-                            struct xen_sysctl_scheduler_op *sc)
+static int cf_check csched2_sys_cntl(
+    const struct scheduler *ops, struct xen_sysctl_scheduler_op *sc)
 {
     struct xen_sysctl_credit2_schedule *params = &sc->u.sched_credit2;
     struct csched2_private *prv = csched2_priv(ops);
@@ -3148,7 +3147,7 @@ static int csched2_sys_cntl(const struct scheduler *ops,
     return 0;
 }
 
-static void *
+static void *cf_check
 csched2_alloc_domdata(const struct scheduler *ops, struct domain *dom)
 {
     struct csched2_private *prv = csched2_priv(ops);
@@ -3180,7 +3179,7 @@ csched2_alloc_domdata(const struct scheduler *ops, struct domain *dom)
     return sdom;
 }
 
-static void
+static void cf_check
 csched2_free_domdata(const struct scheduler *ops, void *data)
 {
     struct csched2_dom *sdom = data;
@@ -3200,7 +3199,7 @@ csched2_free_domdata(const struct scheduler *ops, void *data)
     }
 }
 
-static void
+static void cf_check
 csched2_unit_insert(const struct scheduler *ops, struct sched_unit *unit)
 {
     const struct csched2_unit *svc = unit->priv;
@@ -3231,7 +3230,7 @@ csched2_unit_insert(const struct scheduler *ops, struct sched_unit *unit)
     CSCHED2_UNIT_CHECK(unit);
 }
 
-static void
+static void cf_check
 csched2_free_udata(const struct scheduler *ops, void *priv)
 {
     struct csched2_unit *svc = priv;
@@ -3239,7 +3238,7 @@ csched2_free_udata(const struct scheduler *ops, void *priv)
     xfree(svc);
 }
 
-static void
+static void cf_check
 csched2_unit_remove(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct csched2_unit * const svc = csched2_unit(unit);
@@ -3558,7 +3557,7 @@ runq_candidate(struct csched2_runqueue_data *rqd,
  * This function is in the critical path. It is designed to be simple and
  * fast for the common case.
  */
-static void csched2_schedule(
+static void cf_check csched2_schedule(
     const struct scheduler *ops, struct sched_unit *currunit, s_time_t now,
     bool tasklet_work_scheduled)
 {
@@ -3790,7 +3789,7 @@ dump_pcpu(const struct scheduler *ops, int cpu)
     }
 }
 
-static void
+static void cf_check
 csched2_dump(const struct scheduler *ops)
 {
     struct list_head *iter_sdom;
@@ -3898,7 +3897,7 @@ csched2_dump(const struct scheduler *ops)
     read_unlock_irqrestore(&prv->lock, flags);
 }
 
-static void *
+static void *cf_check
 csched2_alloc_pdata(const struct scheduler *ops, int cpu)
 {
     struct csched2_pcpu *spc;
@@ -3988,7 +3987,7 @@ init_pdata(struct csched2_private *prv, struct csched2_pcpu *spc,
 }
 
 /* Change the scheduler of cpu to us (Credit2). */
-static spinlock_t *
+static spinlock_t *cf_check
 csched2_switch_sched(struct scheduler *new_ops, unsigned int cpu,
                      void *pdata, void *vdata)
 {
@@ -4026,7 +4025,7 @@ csched2_switch_sched(struct scheduler *new_ops, unsigned int cpu,
     return &rqd->lock;
 }
 
-static void
+static void cf_check
 csched2_deinit_pdata(const struct scheduler *ops, void *pcpu, int cpu)
 {
     unsigned long flags;
@@ -4086,7 +4085,7 @@ csched2_deinit_pdata(const struct scheduler *ops, void *pcpu, int cpu)
     return;
 }
 
-static void
+static void cf_check
 csched2_free_pdata(const struct scheduler *ops, void *pcpu, int cpu)
 {
     struct csched2_private *prv = csched2_priv(ops);
@@ -4115,7 +4114,7 @@ csched2_free_pdata(const struct scheduler *ops, void *pcpu, int cpu)
     xfree(pcpu);
 }
 
-static int __init
+static int __init cf_check
 csched2_global_init(void)
 {
     if ( opt_load_precision_shift < LOADAVG_PRECISION_SHIFT_MIN )
@@ -4142,7 +4141,7 @@ csched2_global_init(void)
     return 0;
 }
 
-static int
+static int cf_check
 csched2_init(struct scheduler *ops)
 {
     struct csched2_private *prv;
@@ -4190,7 +4189,7 @@ csched2_init(struct scheduler *ops)
     return 0;
 }
 
-static void
+static void cf_check
 csched2_deinit(struct scheduler *ops)
 {
     struct csched2_private *prv;
diff --git a/xen/common/sched/null.c b/xen/common/sched/null.c
index 82d5d1baab85..65a0a6c5312d 100644
--- a/xen/common/sched/null.c
+++ b/xen/common/sched/null.c
@@ -130,7 +130,7 @@ static inline bool unit_check_affinity(struct sched_unit *unit,
     return cpumask_test_cpu(cpu, cpumask_scratch_cpu(cpu));
 }
 
-static int null_init(struct scheduler *ops)
+static int cf_check null_init(struct scheduler *ops)
 {
     struct null_private *prv;
 
@@ -152,7 +152,7 @@ static int null_init(struct scheduler *ops)
     return 0;
 }
 
-static void null_deinit(struct scheduler *ops)
+static void cf_check null_deinit(struct scheduler *ops)
 {
     xfree(ops->sched_data);
     ops->sched_data = NULL;
@@ -166,7 +166,8 @@ static void init_pdata(struct null_private *prv, struct null_pcpu *npc,
     npc->unit = NULL;
 }
 
-static void null_deinit_pdata(const struct scheduler *ops, void *pcpu, int cpu)
+static void cf_check null_deinit_pdata(
+    const struct scheduler *ops, void *pcpu, int cpu)
 {
     struct null_private *prv = null_priv(ops);
     struct null_pcpu *npc = pcpu;
@@ -177,7 +178,7 @@ static void null_deinit_pdata(const struct scheduler *ops, void *pcpu, int cpu)
     npc->unit = NULL;
 }
 
-static void *null_alloc_pdata(const struct scheduler *ops, int cpu)
+static void *cf_check null_alloc_pdata(const struct scheduler *ops, int cpu)
 {
     struct null_pcpu *npc;
 
@@ -188,13 +189,14 @@ static void *null_alloc_pdata(const struct scheduler *ops, int cpu)
     return npc;
 }
 
-static void null_free_pdata(const struct scheduler *ops, void *pcpu, int cpu)
+static void cf_check null_free_pdata(
+    const struct scheduler *ops, void *pcpu, int cpu)
 {
     xfree(pcpu);
 }
 
-static void *null_alloc_udata(const struct scheduler *ops,
-                              struct sched_unit *unit, void *dd)
+static void *cf_check null_alloc_udata(
+    const struct scheduler *ops, struct sched_unit *unit, void *dd)
 {
     struct null_unit *nvc;
 
@@ -210,15 +212,15 @@ static void *null_alloc_udata(const struct scheduler *ops,
     return nvc;
 }
 
-static void null_free_udata(const struct scheduler *ops, void *priv)
+static void cf_check null_free_udata(const struct scheduler *ops, void *priv)
 {
     struct null_unit *nvc = priv;
 
     xfree(nvc);
 }
 
-static void * null_alloc_domdata(const struct scheduler *ops,
-                                 struct domain *d)
+static void *cf_check null_alloc_domdata(
+    const struct scheduler *ops, struct domain *d)
 {
     struct null_private *prv = null_priv(ops);
     struct null_dom *ndom;
@@ -237,7 +239,7 @@ static void * null_alloc_domdata(const struct scheduler *ops,
     return ndom;
 }
 
-static void null_free_domdata(const struct scheduler *ops, void *data)
+static void cf_check null_free_domdata(const struct scheduler *ops, void *data)
 {
     struct null_dom *ndom = data;
     struct null_private *prv = null_priv(ops);
@@ -426,9 +428,8 @@ static bool unit_deassign(struct null_private *prv, const struct sched_unit *uni
 }
 
 /* Change the scheduler of cpu to us (null). */
-static spinlock_t *null_switch_sched(struct scheduler *new_ops,
-                                     unsigned int cpu,
-                                     void *pdata, void *vdata)
+static spinlock_t *cf_check null_switch_sched(
+    struct scheduler *new_ops, unsigned int cpu, void *pdata, void *vdata)
 {
     struct sched_resource *sr = get_sched_res(cpu);
     struct null_private *prv = null_priv(new_ops);
@@ -450,8 +451,8 @@ static spinlock_t *null_switch_sched(struct scheduler *new_ops,
     return &sr->_lock;
 }
 
-static void null_unit_insert(const struct scheduler *ops,
-                             struct sched_unit *unit)
+static void cf_check null_unit_insert(
+    const struct scheduler *ops, struct sched_unit *unit)
 {
     struct null_private *prv = null_priv(ops);
     struct null_unit *nvc = null_unit(unit);
@@ -516,8 +517,8 @@ static void null_unit_insert(const struct scheduler *ops,
     SCHED_STAT_CRANK(unit_insert);
 }
 
-static void null_unit_remove(const struct scheduler *ops,
-                             struct sched_unit *unit)
+static void cf_check null_unit_remove(
+    const struct scheduler *ops, struct sched_unit *unit)
 {
     struct null_private *prv = null_priv(ops);
     struct null_unit *nvc = null_unit(unit);
@@ -556,8 +557,8 @@ static void null_unit_remove(const struct scheduler *ops,
     SCHED_STAT_CRANK(unit_remove);
 }
 
-static void null_unit_wake(const struct scheduler *ops,
-                           struct sched_unit *unit)
+static void cf_check null_unit_wake(
+    const struct scheduler *ops, struct sched_unit *unit)
 {
     struct null_private *prv = null_priv(ops);
     struct null_unit *nvc = null_unit(unit);
@@ -632,8 +633,8 @@ static void null_unit_wake(const struct scheduler *ops,
         cpumask_raise_softirq(cpumask_scratch_cpu(cpu), SCHEDULE_SOFTIRQ);
 }
 
-static void null_unit_sleep(const struct scheduler *ops,
-                            struct sched_unit *unit)
+static void cf_check null_unit_sleep(
+    const struct scheduler *ops, struct sched_unit *unit)
 {
     struct null_private *prv = null_priv(ops);
     unsigned int cpu = sched_unit_master(unit);
@@ -667,15 +668,15 @@ static void null_unit_sleep(const struct scheduler *ops,
     SCHED_STAT_CRANK(unit_sleep);
 }
 
-static struct sched_resource *
+static struct sched_resource *cf_check
 null_res_pick(const struct scheduler *ops, const struct sched_unit *unit)
 {
     ASSERT(!is_idle_unit(unit));
     return pick_res(null_priv(ops), unit);
 }
 
-static void null_unit_migrate(const struct scheduler *ops,
-                              struct sched_unit *unit, unsigned int new_cpu)
+static void cf_check null_unit_migrate(
+    const struct scheduler *ops, struct sched_unit *unit, unsigned int new_cpu)
 {
     struct null_private *prv = null_priv(ops);
     struct null_unit *nvc = null_unit(unit);
@@ -801,8 +802,9 @@ static inline void null_unit_check(struct sched_unit *unit)
  *  - the unit assigned to the pCPU, if there's one and it can run;
  *  - the idle unit, otherwise.
  */
-static void null_schedule(const struct scheduler *ops, struct sched_unit *prev,
-                          s_time_t now, bool tasklet_work_scheduled)
+static void cf_check null_schedule(
+    const struct scheduler *ops, struct sched_unit *prev, s_time_t now,
+    bool tasklet_work_scheduled)
 {
     unsigned int bs;
     const unsigned int cur_cpu = smp_processor_id();
@@ -939,7 +941,7 @@ static inline void dump_unit(const struct null_private *prv,
                                 sched_unit_master(nvc->unit) : -1);
 }
 
-static void null_dump_pcpu(const struct scheduler *ops, int cpu)
+static void cf_check null_dump_pcpu(const struct scheduler *ops, int cpu)
 {
     struct null_private *prv = null_priv(ops);
     const struct null_pcpu *npc = get_sched_res(cpu)->sched_priv;
@@ -968,7 +970,7 @@ static void null_dump_pcpu(const struct scheduler *ops, int cpu)
     pcpu_schedule_unlock_irqrestore(lock, flags, cpu);
 }
 
-static void null_dump(const struct scheduler *ops)
+static void cf_check null_dump(const struct scheduler *ops)
 {
     struct null_private *prv = null_priv(ops);
     struct list_head *iter;
diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 5ea6f01f263c..d6de25531b3c 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -269,13 +269,13 @@ unit_on_q(const struct rt_unit *svc)
    return !list_empty(&svc->q_elem);
 }
 
-static struct rt_unit *
+static struct rt_unit *cf_check
 q_elem(struct list_head *elem)
 {
     return list_entry(elem, struct rt_unit, q_elem);
 }
 
-static struct rt_unit *
+static struct rt_unit *cf_check
 replq_elem(struct list_head *elem)
 {
     return list_entry(elem, struct rt_unit, replq_elem);
@@ -348,7 +348,7 @@ rt_dump_unit(const struct scheduler *ops, const struct rt_unit *svc)
             svc->flags, CPUMASK_PR(mask));
 }
 
-static void
+static void cf_check
 rt_dump_pcpu(const struct scheduler *ops, int cpu)
 {
     struct rt_private *prv = rt_priv(ops);
@@ -366,7 +366,7 @@ rt_dump_pcpu(const struct scheduler *ops, int cpu)
     spin_unlock_irqrestore(&prv->lock, flags);
 }
 
-static void
+static void cf_check
 rt_dump(const struct scheduler *ops)
 {
     struct list_head *runq, *depletedq, *replq, *iter;
@@ -636,7 +636,7 @@ replq_reinsert(const struct scheduler *ops, struct rt_unit *svc)
  * Valid resource of an unit is intesection of unit's affinity
  * and available resources
  */
-static struct sched_resource *
+static struct sched_resource *cf_check
 rt_res_pick_locked(const struct sched_unit *unit, unsigned int locked_cpu)
 {
     cpumask_t *cpus = cpumask_scratch_cpu(locked_cpu);
@@ -659,7 +659,7 @@ rt_res_pick_locked(const struct sched_unit *unit, unsigned int locked_cpu)
  * Valid resource of an unit is intesection of unit's affinity
  * and available resources
  */
-static struct sched_resource *
+static struct sched_resource *cf_check
 rt_res_pick(const struct scheduler *ops, const struct sched_unit *unit)
 {
     struct sched_resource *res;
@@ -672,7 +672,7 @@ rt_res_pick(const struct scheduler *ops, const struct sched_unit *unit)
 /*
  * Init/Free related code
  */
-static int
+static int cf_check
 rt_init(struct scheduler *ops)
 {
     int rc = -ENOMEM;
@@ -701,7 +701,7 @@ rt_init(struct scheduler *ops)
     return rc;
 }
 
-static void
+static void cf_check
 rt_deinit(struct scheduler *ops)
 {
     struct rt_private *prv = rt_priv(ops);
@@ -714,7 +714,7 @@ rt_deinit(struct scheduler *ops)
 }
 
 /* Change the scheduler of cpu to us (RTDS). */
-static spinlock_t *
+static spinlock_t *cf_check
 rt_switch_sched(struct scheduler *new_ops, unsigned int cpu,
                 void *pdata, void *vdata)
 {
@@ -750,7 +750,7 @@ rt_switch_sched(struct scheduler *new_ops, unsigned int cpu,
     return &prv->lock;
 }
 
-static void
+static void cf_check
 rt_deinit_pdata(const struct scheduler *ops, void *pcpu, int cpu)
 {
     unsigned long flags;
@@ -782,7 +782,7 @@ rt_deinit_pdata(const struct scheduler *ops, void *pcpu, int cpu)
     spin_unlock_irqrestore(&prv->lock, flags);
 }
 
-static void *
+static void *cf_check
 rt_alloc_domdata(const struct scheduler *ops, struct domain *dom)
 {
     unsigned long flags;
@@ -804,7 +804,7 @@ rt_alloc_domdata(const struct scheduler *ops, struct domain *dom)
     return sdom;
 }
 
-static void
+static void cf_check
 rt_free_domdata(const struct scheduler *ops, void *data)
 {
     struct rt_dom *sdom = data;
@@ -822,7 +822,7 @@ rt_free_domdata(const struct scheduler *ops, void *data)
     }
 }
 
-static void *
+static void * cf_check
 rt_alloc_udata(const struct scheduler *ops, struct sched_unit *unit, void *dd)
 {
     struct rt_unit *svc;
@@ -850,7 +850,7 @@ rt_alloc_udata(const struct scheduler *ops, struct sched_unit *unit, void *dd)
     return svc;
 }
 
-static void
+static void cf_check
 rt_free_udata(const struct scheduler *ops, void *priv)
 {
     struct rt_unit *svc = priv;
@@ -865,7 +865,7 @@ rt_free_udata(const struct scheduler *ops, void *priv)
  * It inserts units of moving domain to the scheduler's RunQ in
  * dest. cpupool.
  */
-static void
+static void cf_check
 rt_unit_insert(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct rt_unit *svc = rt_unit(unit);
@@ -901,7 +901,7 @@ rt_unit_insert(const struct scheduler *ops, struct sched_unit *unit)
 /*
  * Remove rt_unit svc from the old scheduler in source cpupool.
  */
-static void
+static void cf_check
 rt_unit_remove(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct rt_unit * const svc = rt_unit(unit);
@@ -1042,7 +1042,7 @@ runq_pick(const struct scheduler *ops, const cpumask_t *mask, unsigned int cpu)
  * schedule function for rt scheduler.
  * The lock is already grabbed in schedule.c, no need to lock here
  */
-static void
+static void cf_check
 rt_schedule(const struct scheduler *ops, struct sched_unit *currunit,
             s_time_t now, bool tasklet_work_scheduled)
 {
@@ -1129,7 +1129,7 @@ rt_schedule(const struct scheduler *ops, struct sched_unit *currunit,
  * Remove UNIT from RunQ
  * The lock is already grabbed in schedule.c, no need to lock here
  */
-static void
+static void cf_check
 rt_unit_sleep(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct rt_unit * const svc = rt_unit(unit);
@@ -1244,7 +1244,7 @@ runq_tickle(const struct scheduler *ops, const struct rt_unit *new)
  * The lock is already grabbed in schedule.c, no need to lock here
  * TODO: what if these two units belongs to the same domain?
  */
-static void
+static void cf_check
 rt_unit_wake(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct rt_unit * const svc = rt_unit(unit);
@@ -1314,7 +1314,7 @@ rt_unit_wake(const struct scheduler *ops, struct sched_unit *unit)
  * scurr has finished context switch, insert it back to the RunQ,
  * and then pick the highest priority unit from runq to run
  */
-static void
+static void cf_check
 rt_context_saved(const struct scheduler *ops, struct sched_unit *unit)
 {
     struct rt_unit *svc = rt_unit(unit);
@@ -1341,7 +1341,7 @@ rt_context_saved(const struct scheduler *ops, struct sched_unit *unit)
 /*
  * set/get each unit info of each domain
  */
-static int
+static int cf_check
 rt_dom_cntl(
     const struct scheduler *ops,
     struct domain *d,
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:06:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232779.403777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawN-0003EY-D7; Fri, 26 Nov 2021 13:06:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232779.403777; Fri, 26 Nov 2021 13:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawN-0003Cx-0q; Fri, 26 Nov 2021 13:06:59 +0000
Received: by outflank-mailman (input) for mailman id 232779;
 Fri, 26 Nov 2021 13:06:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqav2-0003W9-E9
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:36 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 888c72f9-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 888c72f9-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931931;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version;
  bh=+Yj6D2+acshv1iSbGPrkSTGlvdblgzXw318p1/29CF0=;
  b=Veah2gKcV38ttBvQmFkLzmkBozBXZCJYU/H9iybJ/WfzNZoPqyKRdRTI
   gBind72QHZCDhPNAMoCYeJPNb5kI5RptqXOAqyK50A1DGkQVEkuKgBadj
   v5ysAGPYgD31g2mS2ZRtnrZabVJNnbJJVfG3EKA94sPCkK0UlsZKmOXum
   8=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: ql1grrFxBgNJMIlKfOMQmI/v0TsohdDfaRuX66TyObuz6R0ci13PVAUC+9/GI4Y7hmeLZxTsiH
 hTj/QXg4hMn7nu8wYpklLkVzarHZHX8BBu3WaLsfKfLOJR9ZlEPVvA0CSfENdztgbkmWN1otEt
 qwSHKyEfgjIxRyQQ/puLGqkia+MKeRL8IZXXbhrm0l9r9ueP5U5F4Ful4y8M7dof6hbex2aBLR
 wIqVDTLJBP9ZadpPIRpEySEoDNO46k8WCthDYTXn3VvZI2VIkLsd/9jk5WxWXJ1ni3PaqykWfj
 tBFJ/sZ6uV09QzcI4maishSf
X-SBRS: 5.1
X-MesageID: 58676398
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:T9W9hKK0V8ul9+ZEFE+RCpIlxSXFcZb7ZxGr2PjKsXjdYENS0D1Rm
 GUcXWzTaP6JNjfxKIwlbYzno0wC6JDQx4M1SwdlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB3ZgvtY5
 vgSsaaaWFwlF/XhlOohbilxRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpg2J8QRqeOD
 yYfQShlUlPCckdUAA9JJp0wrN2lmynlcyIN/Tp5ooJoujOOnWSdyoPFPMLOf92WRe1chkuCu
 n/d5GP9Hw0bM9qEjzGC9xqEiuDDkCzhUaoOBba48bhsm1TVyWsNYDUGWF3+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQnZKflkdCAZwKSbR8sVzTjPqPi+qEOoQaZm5cQ/UImZAyfxY7j
 VOgx/7lCwBSgJTAHBpx6YyohT+1PCEUK0oLaikFURYJ7rHfnW0jsv7cZo09SfDo17UZDRm1m
 mnX93Zm293/mOZSj/3jlW0rlQ5AsXQgouQdwgzMFlyo4QpiDGJOT9z5sAOLhRqswWvwc7Vgg
 JTms5TBhAztJcvU/MBofAnrNOryjxpiGGeB6WOD57F7q1yQF4eLJOi8Gg1WKkZzKdojcjT0e
 kLVsg45zMYNZyT6M/IoMt7vV59CIU3c+TLNDau8gj1mOMUZSeN61Hs2OR74M57FzCDAbp3Ty
 b/EKJ3xXB72+IxszSasRvd17FPY7ntW+I8nfriil07P+ePHPBa9EO5ZWHPTPrFRxP7V+239r
 ocAX/ZmPj0CCYUSlAGMqtVNRb3LRFBmba3LRzt/KrTef1E4QT55UJc8A9oJIuRYokicrc+Ql
 lnVZ6OS4ACXaaTvJVrYZ3Z9RqnoWJoj/3s3MTZ1ZQSj2mQ5YJbp56AaLsNlcb4i/e1l7Ph1U
 /haJJnQXqUREmzKq2YHcJ3wjI1+bxD31wiACDWoPWokdJl6Sg2XptK9Jlnz9DMDBzacvNclp
 +HyzRvSRJcOHlwwDMvfZP+14Um2uHwRxLB7U0fSe4EBc0Tw6ol6bSf2i6Zvcc0LLBzCwBqc1
 hqXXkhE9bWc/ddt/YCQ166eroqvH+9vJWZgHjHWveSsKC3X3mu/2oscAuyGSi/QCTHv86K4a
 OQLk/ylaK8bnExHupZXGqpwyf5s/MPmorJXw1g2HHjPaFj3WLpsLmPfgJtKv6xJgLRYpRG3S
 gSE/dwDYeeFP8bsEVgwIgs5b7vciaFIy2eKtfllcl/n4CJX/aacVRQANhaBvyVRMb9pPd532
 uwmosMXt1SyhxdC3gxqVcyIG7Bg9kA9bpg=
IronPort-HdrOrdr: A9a23:tQCXTKBlW822GqzlHemU55DYdb4zR+YMi2TC1yhKJyC9Ffbo7v
 xG/c5rsyMc5wxwZJhNo7y90ey7MBbhHP1OkO4s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpN
 9dmsNFaeEYY2IUsS+D2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676398"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Daniel Smith <dpsmith@apertussolutions.com>
Subject: [PATCH 14/65] xsm/flask:  Annotate fnptr targets in the security server
Date: Fri, 26 Nov 2021 12:33:55 +0000
Message-ID: <20211126123446.32324-15-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
CC: Daniel Smith <dpsmith@apertussolutions.com>
---
 xen/xsm/flask/ss/avtab.c       |  4 ++--
 xen/xsm/flask/ss/conditional.c | 10 ++++----
 xen/xsm/flask/ss/conditional.h |  6 ++---
 xen/xsm/flask/ss/policydb.c    | 53 ++++++++++++++++++++++--------------------
 xen/xsm/flask/ss/services.c    |  6 ++---
 xen/xsm/flask/ss/symtab.c      |  5 ++--
 6 files changed, 44 insertions(+), 40 deletions(-)

diff --git a/xen/xsm/flask/ss/avtab.c b/xen/xsm/flask/ss/avtab.c
index bfc91c8b0c2c..55c2b4d8a46d 100644
--- a/xen/xsm/flask/ss/avtab.c
+++ b/xen/xsm/flask/ss/avtab.c
@@ -482,8 +482,8 @@ int avtab_read_item(struct avtab *a, void *fp, struct policydb *pol,
     return insertf(a, &key, &datum, p);
 }
 
-static int avtab_insertf(struct avtab *a, struct avtab_key *k,
-                                                struct avtab_datum *d, void *p)
+static int cf_check avtab_insertf(
+    struct avtab *a, struct avtab_key *k, struct avtab_datum *d, void *p)
 {
     return avtab_insert(a, k, d);
 }
diff --git a/xen/xsm/flask/ss/conditional.c b/xen/xsm/flask/ss/conditional.c
index 3e58aea55147..b4b116666cf7 100644
--- a/xen/xsm/flask/ss/conditional.c
+++ b/xen/xsm/flask/ss/conditional.c
@@ -189,14 +189,14 @@ int cond_init_bool_indexes(struct policydb *p)
     return 0;
 }
 
-int cond_destroy_bool(void *key, void *datum, void *p)
+int cf_check cond_destroy_bool(void *key, void *datum, void *p)
 {
     xfree(key);
     xfree(datum);
     return 0;
 }
 
-int cond_index_bool(void *key, void *datum, void *datap)
+int cf_check cond_index_bool(void *key, void *datum, void *datap)
 {
     struct policydb *p;
     struct cond_bool_datum *booldatum;
@@ -220,7 +220,7 @@ static int bool_isvalid(struct cond_bool_datum *b)
     return 1;
 }
 
-int cond_read_bool(struct policydb *p, struct hashtab *h, void *fp)
+int cf_check cond_read_bool(struct policydb *p, struct hashtab *h, void *fp)
 {
     char *key = NULL;
     struct cond_bool_datum *booldatum;
@@ -268,8 +268,8 @@ struct cond_insertf_data
     struct cond_av_list *tail;
 };
 
-static int cond_insertf(struct avtab *a, struct avtab_key *k, 
-                                            struct avtab_datum *d, void *ptr)
+static int cf_check cond_insertf(
+    struct avtab *a, struct avtab_key *k, struct avtab_datum *d, void *ptr)
 {
     struct cond_insertf_data *data = ptr;
     struct policydb *p = data->p;
diff --git a/xen/xsm/flask/ss/conditional.h b/xen/xsm/flask/ss/conditional.h
index 59ac6b4b57c1..500fe4305a03 100644
--- a/xen/xsm/flask/ss/conditional.h
+++ b/xen/xsm/flask/ss/conditional.h
@@ -63,11 +63,11 @@ int cond_policydb_init(struct policydb* p);
 void cond_policydb_destroy(struct policydb* p);
 
 int cond_init_bool_indexes(struct policydb* p);
-int cond_destroy_bool(void *key, void *datum, void *p);
+int cf_check cond_destroy_bool(void *key, void *datum, void *p);
 
-int cond_index_bool(void *key, void *datum, void *datap);
+int cf_check cond_index_bool(void *key, void *datum, void *datap);
 
-int cond_read_bool(struct policydb *p, struct hashtab *h, void *fp);
+int cf_check cond_read_bool(struct policydb *p, struct hashtab *h, void *fp);
 int cond_read_list(struct policydb *p, void *fp);
 
 void cond_compute_av(struct avtab *ctab, struct avtab_key *key, struct av_decision *avd);
diff --git a/xen/xsm/flask/ss/policydb.c b/xen/xsm/flask/ss/policydb.c
index 94261643532a..ff2103c63eab 100644
--- a/xen/xsm/flask/ss/policydb.c
+++ b/xen/xsm/flask/ss/policydb.c
@@ -257,12 +257,12 @@ static int policydb_init(struct policydb *p)
  * of a class, role, or user are needed.
  */
 
-static int common_index(void *key, void *datum, void *datap)
+static int cf_check common_index(void *key, void *datum, void *datap)
 {
     return 0;
 }
 
-static int class_index(void *key, void *datum, void *datap)
+static int cf_check class_index(void *key, void *datum, void *datap)
 {
     struct policydb *p;
     struct class_datum *cladatum;
@@ -276,7 +276,7 @@ static int class_index(void *key, void *datum, void *datap)
     return 0;
 }
 
-static int role_index(void *key, void *datum, void *datap)
+static int cf_check role_index(void *key, void *datum, void *datap)
 {
     struct policydb *p;
     struct role_datum *role;
@@ -292,7 +292,7 @@ static int role_index(void *key, void *datum, void *datap)
     return 0;
 }
 
-static int type_index(void *key, void *datum, void *datap)
+static int cf_check type_index(void *key, void *datum, void *datap)
 {
     struct policydb *p;
     struct type_datum *typdatum;
@@ -313,7 +313,7 @@ static int type_index(void *key, void *datum, void *datap)
     return 0;
 }
 
-static int user_index(void *key, void *datum, void *datap)
+static int cf_check user_index(void *key, void *datum, void *datap)
 {
     struct policydb *p;
     struct user_datum *usrdatum;
@@ -329,7 +329,7 @@ static int user_index(void *key, void *datum, void *datap)
     return 0;
 }
 
-static int sens_index(void *key, void *datum, void *datap)
+static int cf_check sens_index(void *key, void *datum, void *datap)
 {
     struct policydb *p;
     struct level_datum *levdatum;
@@ -348,7 +348,7 @@ static int sens_index(void *key, void *datum, void *datap)
     return 0;
 }
 
-static int cat_index(void *key, void *datum, void *datap)
+static int cf_check cat_index(void *key, void *datum, void *datap)
 {
     struct policydb *p;
     struct cat_datum *catdatum;
@@ -506,14 +506,14 @@ static int policydb_index_others(struct policydb *p)
  * symbol data in the policy database.
  */
 
-static int perm_destroy(void *key, void *datum, void *p)
+static int cf_check perm_destroy(void *key, void *datum, void *p)
 {
     xfree(key);
     xfree(datum);
     return 0;
 }
 
-static int common_destroy(void *key, void *datum, void *p)
+static int cf_check common_destroy(void *key, void *datum, void *p)
 {
     struct common_datum *comdatum;
 
@@ -525,7 +525,7 @@ static int common_destroy(void *key, void *datum, void *p)
     return 0;
 }
 
-static int class_destroy(void *key, void *datum, void *p)
+static int cf_check class_destroy(void *key, void *datum, void *p)
 {
     struct class_datum *cladatum;
     struct constraint_node *constraint, *ctemp;
@@ -572,7 +572,7 @@ static int class_destroy(void *key, void *datum, void *p)
     return 0;
 }
 
-static int role_destroy(void *key, void *datum, void *p)
+static int cf_check role_destroy(void *key, void *datum, void *p)
 {
     struct role_datum *role;
 
@@ -584,14 +584,14 @@ static int role_destroy(void *key, void *datum, void *p)
     return 0;
 }
 
-static int type_destroy(void *key, void *datum, void *p)
+static int cf_check type_destroy(void *key, void *datum, void *p)
 {
     xfree(key);
     xfree(datum);
     return 0;
 }
 
-static int user_destroy(void *key, void *datum, void *p)
+static int cf_check user_destroy(void *key, void *datum, void *p)
 {
     struct user_datum *usrdatum;
 
@@ -605,7 +605,7 @@ static int user_destroy(void *key, void *datum, void *p)
     return 0;
 }
 
-static int sens_destroy(void *key, void *datum, void *p)
+static int cf_check sens_destroy(void *key, void *datum, void *p)
 {
     struct level_datum *levdatum;
 
@@ -617,7 +617,7 @@ static int sens_destroy(void *key, void *datum, void *p)
     return 0;
 }
 
-static int cat_destroy(void *key, void *datum, void *p)
+static int cf_check cat_destroy(void *key, void *datum, void *p)
 {
     xfree(key);
     xfree(datum);
@@ -989,7 +989,7 @@ static int perm_read(struct policydb *p, struct hashtab *h, void *fp)
     goto out;
 }
 
-static int common_read(struct policydb *p, struct hashtab *h, void *fp)
+static int cf_check common_read(struct policydb *p, struct hashtab *h, void *fp)
 {
     char *key = NULL;
     struct common_datum *comdatum;
@@ -1151,7 +1151,7 @@ static int read_cons_helper(struct policydb *p, struct constraint_node **nodep,
     return 0;
 }
 
-static int class_read(struct policydb *p, struct hashtab *h, void *fp)
+static int cf_check class_read(struct policydb *p, struct hashtab *h, void *fp)
 {
     char *key = NULL;
     struct class_datum *cladatum;
@@ -1250,7 +1250,7 @@ static int class_read(struct policydb *p, struct hashtab *h, void *fp)
     goto out;
 }
 
-static int role_read(struct policydb *p, struct hashtab *h, void *fp)
+static int cf_check role_read(struct policydb *p, struct hashtab *h, void *fp)
 {
     char *key = NULL;
     struct role_datum *role;
@@ -1321,7 +1321,7 @@ static int role_read(struct policydb *p, struct hashtab *h, void *fp)
     goto out;
 }
 
-static int type_read(struct policydb *p, struct hashtab *h, void *fp)
+static int cf_check type_read(struct policydb *p, struct hashtab *h, void *fp)
 {
     char *key = NULL;
     struct type_datum *typdatum;
@@ -1415,7 +1415,7 @@ static int mls_read_level(struct mls_level *lp, void *fp)
     return -EINVAL;
 }
 
-static int user_read(struct policydb *p, struct hashtab *h, void *fp)
+static int cf_check user_read(struct policydb *p, struct hashtab *h, void *fp)
 {
     char *key = NULL;
     struct user_datum *usrdatum;
@@ -1479,7 +1479,7 @@ static int user_read(struct policydb *p, struct hashtab *h, void *fp)
     goto out;
 }
 
-static int sens_read(struct policydb *p, struct hashtab *h, void *fp)
+static int cf_check sens_read(struct policydb *p, struct hashtab *h, void *fp)
 {
     char *key = NULL;
     struct level_datum *levdatum;
@@ -1534,7 +1534,7 @@ static int sens_read(struct policydb *p, struct hashtab *h, void *fp)
     goto out;
 }
 
-static int cat_read(struct policydb *p, struct hashtab *h, void *fp)
+static int cf_check cat_read(struct policydb *p, struct hashtab *h, void *fp)
 {
     char *key = NULL;
     struct cat_datum *catdatum;
@@ -1591,7 +1591,8 @@ static int (*read_f[SYM_NUM]) (struct policydb *p, struct hashtab *h, void *fp)
     cat_read,
 };
 
-static int user_bounds_sanity_check(void *key, void *datum, void *datap)
+static int cf_check user_bounds_sanity_check(
+    void *key, void *datum, void *datap)
 {
     struct user_datum *upper, *user;
     struct policydb *p = datap;
@@ -1631,7 +1632,8 @@ static int user_bounds_sanity_check(void *key, void *datum, void *datap)
     return 0;
 }
 
-static int role_bounds_sanity_check(void *key, void *datum, void *datap)
+static int cf_check role_bounds_sanity_check(
+    void *key, void *datum, void *datap)
 {
     struct role_datum *upper, *role;
     struct policydb *p = datap;
@@ -1671,7 +1673,8 @@ static int role_bounds_sanity_check(void *key, void *datum, void *datap)
     return 0;
 }
 
-static int type_bounds_sanity_check(void *key, void *datum, void *datap)
+static int cf_check type_bounds_sanity_check(
+    void *key, void *datum, void *datap)
 {
     struct type_datum *upper, *type;
     struct policydb *p = datap;
diff --git a/xen/xsm/flask/ss/services.c b/xen/xsm/flask/ss/services.c
index 42686535f2c4..2f6d3d350d05 100644
--- a/xen/xsm/flask/ss/services.c
+++ b/xen/xsm/flask/ss/services.c
@@ -283,7 +283,7 @@ static int constraint_expr_eval(struct context *scontext,
  * security_dump_masked_av - dumps masked permissions during
  * security_compute_av due to RBAC, MLS/Constraint and Type bounds.
  */
-static int dump_masked_av_helper(void *k, void *d, void *args)
+static int cf_check dump_masked_av_helper(void *k, void *d, void *args)
 {
     struct perm_datum *pdatum = d;
     char **permission_names = args;
@@ -1240,7 +1240,7 @@ static int validate_classes(struct policydb *p)
 }
 
 /* Clone the SID into the new SID table. */
-static int clone_sid(u32 sid, struct context *context, void *arg)
+static int cf_check clone_sid(u32 sid, struct context *context, void *arg)
 {
     struct sidtab *s = arg;
 
@@ -1277,7 +1277,7 @@ struct convert_context_args {
  * in the policy `p->newp'.  Verify that the
  * context is valid under the new policy.
  */
-static int convert_context(u32 key, struct context *c, void *p)
+static int cf_check convert_context(u32 key, struct context *c, void *p)
 {
     struct convert_context_args *args;
     struct context oldc;
diff --git a/xen/xsm/flask/ss/symtab.c b/xen/xsm/flask/ss/symtab.c
index d98c116d5b97..0ce7e08c24ea 100644
--- a/xen/xsm/flask/ss/symtab.c
+++ b/xen/xsm/flask/ss/symtab.c
@@ -12,7 +12,7 @@
 #include <xen/errno.h>
 #include "symtab.h"
 
-static unsigned int symhash(struct hashtab *h, const void *key)
+static unsigned int cf_check symhash(struct hashtab *h, const void *key)
 {
     const char *p, *keyp;
     unsigned int size;
@@ -26,7 +26,8 @@ static unsigned int symhash(struct hashtab *h, const void *key)
     return val & (h->size - 1);
 }
 
-static int symcmp(struct hashtab *h, const void *key1, const void *key2)
+static int cf_check symcmp(
+    struct hashtab *h, const void *key1, const void *key2)
 {
     const char *keyp1, *keyp2;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232780.403783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawN-0003NQ-V8; Fri, 26 Nov 2021 13:06:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232780.403783; Fri, 26 Nov 2021 13:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawN-0003KB-Ia; Fri, 26 Nov 2021 13:06:59 +0000
Received: by outflank-mailman (input) for mailman id 232780;
 Fri, 26 Nov 2021 13:06:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavh-0003W9-L7
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:17 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2b13141-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:16 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2b13141-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931976;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Or7hnmv/3zwwTutpx5mxBrC73JF1NuKmpQ2hWXjITFk=;
  b=WwlgTmIrMqDklSCfrAWUAxuMIjgc1k2ylcDKe446b05ddgQah7HPmXAL
   XfmZ3JHr5qrJ++z1esZlB62L7yQl8melDDoBea5+wEL+/5qlZzZQ2Le4E
   lu37Eoe8FDoPDjqWr4iDuXlCsdLoUo/EUH2WGBn1+J27uWHQp5LTitfe1
   o=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 23k4lIiUYExCJAh8+kPkeaWlutL67lof2RrJj6EJMlCPthy+uEZkRTCvzfGjFOts2a0Jtq182H
 ViJiGHxlcUmW7kbznEed6LchSEEQzuidpW0TxAOtuvr1kvF3WEIO3OpEbhg/v+fEfpx17ksiXt
 9nDNx4wbAzpA7Z73uuV0BPWJhx0EG/U1M/8iKbalhNwhYznNCsz5YpLjSn+I9AZkMmwp2Gs2Jq
 7VPAbnW6EfbphkwmkSigxGpOaDZIPmRGwt1SNH/HwVezoeLefYCkRaTJqTrBZ57JPfGYVE9PjE
 36ExQSQp1Z1jwhC4gEzPrmXr
X-SBRS: 5.1
X-MesageID: 58635067
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:olcMO6xfdXs1XaBCFe56t+fCwSrEfRIJ4+MujC+fZmUNrF6WrkUCy
 TRKCmzQO/aOYTb2KYsibIuz/B9S65PVmIdrQVZsrSAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRn2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt/Zol
 ZZHp5e0cCA0HajtnfsFSTt+LRgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY25AQRquGO
 ZVxhTxHaibvUxBSO3crBZtho8yMh13ETmRapwfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krE4mD4DxcyJNGZjz2f/RqEnfTTlCn2XIYTEryQ9fNwhlCXgGsJB3U+RVa95PW0lEO6c9ZeM
 FAPvDojq7Ao806mRcW7WAe3yFamlBMBX9tbE8Uh9RqAjKHT5m6k6nMsF2AbLoZ87YlvGGJsh
 gThc87V6SJHlqTICniP/bOtii6RPAkQMncYRwk6dF5QizX8m70bghXKR9dlNae6iNzpBD39q
 wy3QDgCa6Y71pBSifjilbzTq3f1/8WSEFZpjunCdjv9tlsRWWKzW2C/BbE3B95kJZ3RcFSOt
 WNsdyO2vLFXVsHleMBgrYww8FCVCxStbGK0bb1HRcBJG9GRF5iLJts4DNZWfhoBDyr8UWW1C
 HI/QCsIjHOpAFOkbLVsf6W6ANkwwK7rGLzND66PMYoQP8cgKFHbp0mCgHJ8OUi2yyDAdollZ
 P+mnTuEVy5GWcyLMhLqLwvi7VPb7n9nnj6CLXwK5x+mzaCfdBaopUQtazOzghQCxPrc+m39q
 o8HX+PTkkk3eLCuM0H/rN9IRXhXfCdTOHwDg5EOHgJ1ClE9Qz9J5j646e5JRrGJaIwJzLqVp
 S/kBRcDoLc97FWeQTi3hrlYQOuHdf5CQbgTZkTA5H6khCouZ5iB9qAae8dldLUr7rU7n/V1U
 +MEa4OLBfEWEmbL/DEUbJ/cqo1+dUv02VLSbnT9ODVvLYR9QwHp+8P/ele9/ic5ESfq59A1p
 Ket112HTMNbFRhiFsvfdNmm00i14SoGgOt3UkaReotTdUzg/ZJEMSv0ivNrccgAJQ+anmmR1
 hqMAAderu7I+tdn/N7MjKGCjoGoD+ohQRYKQziFte67bHCI8HCizIlMVPezUQrcDG6kqr+/Y
 eh1zu3nNKFVllh9rIchQa1gyrgz5oWzquYCnBhkBnjCc3+iFqhkfiudxcBKu6BAmu1ZtA+xV
 h7d89VWI+zUasbsEVpXLws5dOWTk/oTn2CKv/gyJUz74g5x/aaGDhoOb0Xd1nQFIesnKp4hz
 McgpNUSul62hRcdO9qbijxZqjaXJXsaXqR77pwXDecHUObwJo2utXAENhLL3Q==
IronPort-HdrOrdr: A9a23:3XVoCaBQSPyF5+flHemW55DYdb4zR+YMi2TC1yhKKCC9Ffbo7/
 xG/c5rrCMc5wxhO03I9eruBEDEewK5yXcX2/h2AV7BZniFhILAFugLhuGOrwEIWReOkdK1vZ
 0QCJSWY+eRMbEVt6jHCXGDYrMd/OU=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58635067"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 21/65] xen/vpci: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:02 +0000
Message-ID: <20211126123446.32324-22-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/vpci/header.c | 18 +++++++++---------
 xen/drivers/vpci/msi.c    | 42 +++++++++++++++++++++---------------------
 xen/drivers/vpci/msix.c   | 20 ++++++++++----------
 xen/drivers/vpci/vpci.c   | 16 ++++++++--------
 xen/include/xen/vpci.h    |  8 ++++----
 5 files changed, 52 insertions(+), 52 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 40ff79c33f8f..a1c928a0d26f 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -33,8 +33,8 @@ struct map_data {
     bool map;
 };
 
-static int map_range(unsigned long s, unsigned long e, void *data,
-                     unsigned long *c)
+static int cf_check map_range(
+    unsigned long s, unsigned long e, void *data, unsigned long *c)
 {
     const struct map_data *map = data;
     int rc;
@@ -332,8 +332,8 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
     return 0;
 }
 
-static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
-                      uint32_t cmd, void *data)
+static void cf_check cmd_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t cmd, void *data)
 {
     uint16_t current_cmd = pci_conf_read16(pdev->sbdf, reg);
 
@@ -353,8 +353,8 @@ static void cmd_write(const struct pci_dev *pdev, unsigned int reg,
         pci_conf_write16(pdev->sbdf, reg, cmd);
 }
 
-static void bar_write(const struct pci_dev *pdev, unsigned int reg,
-                      uint32_t val, void *data)
+static void cf_check bar_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
 {
     struct vpci_bar *bar = data;
     bool hi = false;
@@ -397,8 +397,8 @@ static void bar_write(const struct pci_dev *pdev, unsigned int reg,
     pci_conf_write32(pdev->sbdf, reg, val);
 }
 
-static void rom_write(const struct pci_dev *pdev, unsigned int reg,
-                      uint32_t val, void *data)
+static void cf_check rom_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
 {
     struct vpci_header *header = &pdev->vpci->header;
     struct vpci_bar *rom = data;
@@ -445,7 +445,7 @@ static void rom_write(const struct pci_dev *pdev, unsigned int reg,
         rom->addr = val & PCI_ROM_ADDRESS_MASK;
 }
 
-static int init_bars(struct pci_dev *pdev)
+static int cf_check init_bars(struct pci_dev *pdev)
 {
     uint16_t cmd;
     uint64_t addr, size;
diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index 5757a7aed20f..8f2b59e61aa4 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -22,8 +22,8 @@
 
 #include <asm/msi.h>
 
-static uint32_t control_read(const struct pci_dev *pdev, unsigned int reg,
-                             void *data)
+static uint32_t cf_check control_read(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
 {
     const struct vpci_msi *msi = data;
 
@@ -34,8 +34,8 @@ static uint32_t control_read(const struct pci_dev *pdev, unsigned int reg,
            (msi->address64 ? PCI_MSI_FLAGS_64BIT : 0);
 }
 
-static void control_write(const struct pci_dev *pdev, unsigned int reg,
-                          uint32_t val, void *data)
+static void cf_check control_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
 {
     struct vpci_msi *msi = data;
     unsigned int vectors = min_t(uint8_t,
@@ -89,16 +89,16 @@ static void update_msi(const struct pci_dev *pdev, struct vpci_msi *msi)
 }
 
 /* Handlers for the address field (32bit or low part of a 64bit address). */
-static uint32_t address_read(const struct pci_dev *pdev, unsigned int reg,
-                             void *data)
+static uint32_t cf_check address_read(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
 {
     const struct vpci_msi *msi = data;
 
     return msi->address;
 }
 
-static void address_write(const struct pci_dev *pdev, unsigned int reg,
-                          uint32_t val, void *data)
+static void cf_check address_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
 {
     struct vpci_msi *msi = data;
 
@@ -110,16 +110,16 @@ static void address_write(const struct pci_dev *pdev, unsigned int reg,
 }
 
 /* Handlers for the high part of a 64bit address field. */
-static uint32_t address_hi_read(const struct pci_dev *pdev, unsigned int reg,
-                                void *data)
+static uint32_t cf_check address_hi_read(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
 {
     const struct vpci_msi *msi = data;
 
     return msi->address >> 32;
 }
 
-static void address_hi_write(const struct pci_dev *pdev, unsigned int reg,
-                             uint32_t val, void *data)
+static void cf_check address_hi_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
 {
     struct vpci_msi *msi = data;
 
@@ -131,16 +131,16 @@ static void address_hi_write(const struct pci_dev *pdev, unsigned int reg,
 }
 
 /* Handlers for the data field. */
-static uint32_t data_read(const struct pci_dev *pdev, unsigned int reg,
-                          void *data)
+static uint32_t cf_check data_read(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
 {
     const struct vpci_msi *msi = data;
 
     return msi->data;
 }
 
-static void data_write(const struct pci_dev *pdev, unsigned int reg,
-                       uint32_t val, void *data)
+static void cf_check data_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
 {
     struct vpci_msi *msi = data;
 
@@ -150,16 +150,16 @@ static void data_write(const struct pci_dev *pdev, unsigned int reg,
 }
 
 /* Handlers for the MSI mask bits. */
-static uint32_t mask_read(const struct pci_dev *pdev, unsigned int reg,
-                          void *data)
+static uint32_t cf_check mask_read(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
 {
     const struct vpci_msi *msi = data;
 
     return msi->mask;
 }
 
-static void mask_write(const struct pci_dev *pdev, unsigned int reg,
-                       uint32_t val, void *data)
+static void cf_check mask_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
 {
     struct vpci_msi *msi = data;
     uint32_t dmask = msi->mask ^ val;
@@ -182,7 +182,7 @@ static void mask_write(const struct pci_dev *pdev, unsigned int reg,
     msi->mask = val;
 }
 
-static int init_msi(struct pci_dev *pdev)
+static int cf_check init_msi(struct pci_dev *pdev)
 {
     uint8_t slot = PCI_SLOT(pdev->devfn), func = PCI_FUNC(pdev->devfn);
     unsigned int pos = pci_find_cap_offset(pdev->seg, pdev->bus, slot, func,
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 846f1b8d7038..2ab4079412f2 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -27,8 +27,8 @@
     ((addr) >= vmsix_table_addr(vpci, nr) &&                              \
      (addr) < vmsix_table_addr(vpci, nr) + vmsix_table_size(vpci, nr))
 
-static uint32_t control_read(const struct pci_dev *pdev, unsigned int reg,
-                             void *data)
+static uint32_t cf_check control_read(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
 {
     const struct vpci_msix *msix = data;
 
@@ -65,8 +65,8 @@ static void update_entry(struct vpci_msix_entry *entry,
     entry->updated = false;
 }
 
-static void control_write(const struct pci_dev *pdev, unsigned int reg,
-                          uint32_t val, void *data)
+static void cf_check control_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
 {
     struct vpci_msix *msix = data;
     bool new_masked = val & PCI_MSIX_FLAGS_MASKALL;
@@ -156,7 +156,7 @@ static struct vpci_msix *msix_find(const struct domain *d, unsigned long addr)
     return NULL;
 }
 
-static int msix_accept(struct vcpu *v, unsigned long addr)
+static int cf_check msix_accept(struct vcpu *v, unsigned long addr)
 {
     return !!msix_find(v->domain, addr);
 }
@@ -182,8 +182,8 @@ static struct vpci_msix_entry *get_entry(struct vpci_msix *msix,
     return &msix->entries[(addr - start) / PCI_MSIX_ENTRY_SIZE];
 }
 
-static int msix_read(struct vcpu *v, unsigned long addr, unsigned int len,
-                     unsigned long *data)
+static int cf_check msix_read(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
 {
     const struct domain *d = v->domain;
     struct vpci_msix *msix = msix_find(d, addr);
@@ -259,8 +259,8 @@ static int msix_read(struct vcpu *v, unsigned long addr, unsigned int len,
     return X86EMUL_OKAY;
 }
 
-static int msix_write(struct vcpu *v, unsigned long addr, unsigned int len,
-                      unsigned long data)
+static int cf_check msix_write(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
 {
     const struct domain *d = v->domain;
     struct vpci_msix *msix = msix_find(d, addr);
@@ -428,7 +428,7 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
     return 0;
 }
 
-static int init_msix(struct pci_dev *pdev)
+static int cf_check init_msix(struct pci_dev *pdev)
 {
     struct domain *d = pdev->domain;
     uint8_t slot = PCI_SLOT(pdev->devfn), func = PCI_FUNC(pdev->devfn);
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 657697fe3406..d21264e34edc 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -106,25 +106,25 @@ static int vpci_register_cmp(const struct vpci_register *r1,
 }
 
 /* Dummy hooks, writes are ignored, reads return 1's */
-static uint32_t vpci_ignored_read(const struct pci_dev *pdev, unsigned int reg,
-                                  void *data)
+static uint32_t cf_check vpci_ignored_read(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
 {
     return ~(uint32_t)0;
 }
 
-static void vpci_ignored_write(const struct pci_dev *pdev, unsigned int reg,
-                               uint32_t val, void *data)
+static void cf_check vpci_ignored_write(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
 {
 }
 
-uint32_t vpci_hw_read16(const struct pci_dev *pdev, unsigned int reg,
-                        void *data)
+uint32_t cf_check vpci_hw_read16(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
 {
     return pci_conf_read16(pdev->sbdf, reg);
 }
 
-uint32_t vpci_hw_read32(const struct pci_dev *pdev, unsigned int reg,
-                        void *data)
+uint32_t cf_check vpci_hw_read32(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
 {
     return pci_conf_read32(pdev->sbdf, reg);
 }
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 9ea66e033f11..68ae06067031 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -46,10 +46,10 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
                 uint32_t data);
 
 /* Passthrough handlers. */
-uint32_t vpci_hw_read16(const struct pci_dev *pdev, unsigned int reg,
-                        void *data);
-uint32_t vpci_hw_read32(const struct pci_dev *pdev, unsigned int reg,
-                        void *data);
+uint32_t cf_check vpci_hw_read16(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+uint32_t cf_check vpci_hw_read32(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
 
 /*
  * Check for pending vPCI operations on this vcpu. Returns true if the vcpu
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232781.403791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawP-0003e0-4Q; Fri, 26 Nov 2021 13:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232781.403791; Fri, 26 Nov 2021 13:07:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawO-0003cR-PS; Fri, 26 Nov 2021 13:07:00 +0000
Received: by outflank-mailman (input) for mailman id 232781;
 Fri, 26 Nov 2021 13:06:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavb-0003W9-I3
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:11 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f33e7f7-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:10 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f33e7f7-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931970;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=lximL64CK95djBSogswxc0craXiGZCmN208+GkSGs/4=;
  b=iVU0sLnf7fPCHW16bSgPBhhxeyyHvvWz9qWP4vN4GWthrrdx3+BHCQFb
   BkgMw0umZW0EMcnQKQDtP7bPPKcR1WhGhPpI35KLQQjQFmnFhUbe4EPAD
   diCeuUr+maowUaUCSTx1K4oAwuf7/Z1ZcKlWJ3ZVkzVHjmRIWNvw/XWbR
   4=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: vuJvUChCQhHB/ox0yJ203BadB5bX5zAEnj3gOCw4jIbaFaveUZeMtTEUzpYxpb+0TpLDLuB7N+
 e6d1O8VHvV4xk8tJvEtZc9oiG7QDu8swSJ9P7bByQ8q/nP780UInPfylxNbNuPp12qljLhi44N
 VOuSFHqMFqemWyR5CXH+jig5dZCVJRhIm5wXOLvCGPWy4v8C60lQrc9QL1Lz5SOfisMmh1NEU/
 n+kDYpkp5RilgJfTTjWBFzWnCN/faf2ZGUbOBDD9vzP3YxkWItnk35+uftbToSag9xzv5+Hboi
 BV+W//OFBnnrRDSDtUeP4LGO
X-SBRS: 5.1
X-MesageID: 59064059
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:h5LPia5j3Ixzl2l9ZfI0/wxRtPXAchMFZxGqfqrLsTDasY5as4F+v
 mVJWjjXaPyNZzb1fYpya4q+o0xU6MLRm4VmTgI6pSo1Hi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z9
 ORplsSrEwsTN4rzvcMwYkBgNBxwFPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTK6AO
 5JEOFKDajzqXzJlfUUdJa5kgef5hlryLgJe9Wms8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u10bTDwweNdef4SGY6X/qjejK9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc+ZhN85i81uB8KPz3CO+K1lddhl8ZvVz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVnl
 CNf8yR5xLpTZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxg5bJtbKGO3P
 BS7VeZtCHl7ZyDCgUhfOd/ZNijX5fK4SYSNug78MrKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI+cElJNhMb6e9Jl1VNk/sHm+HW0
 Gu6X0MEmlPziWeecVeBa2x5aaOpVpF69CppMSspNFeu+n4ifYfws/tPK8ppJeEqpL550Pp5b
 /gZYMHcUP5BfSvKpmYGZp7noY08KBny3VCSPzCoaSQUdoJ7Q1Cb4cftewbirXFcDie+ucYkj
 aen0wfXHcgKSwh4VZ6EY/Oz1VKh+3ManbsqDUfPJ9BSfmTq8ZRrdHOt3qNmfZlUJEyalDWA1
 guQDRMJnsX3otc4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKkQoYs4d4FLo3n6sy68G2+u1fxwVgWn7Kc06qGvVrJXzfhZtDsahEx7l4vwqqW
 x3QpokGaOvRYM61QkQMIAcFb/iY0aBGkzbf2v05PUHm6XIl57GAS0hTY0GBhSE1wGGZ62/5L
 TPNYPIr1jE=
IronPort-HdrOrdr: A9a23:e7v42Kk5tm8s1kNeybthigMvTufpDfIU3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE8Qr5OUtQ/+xoV5PhfZqxz/JICMwqTNKftWrdyQyVxeNZnOjfKlTbckWUnINgPO
 VbAsxD4bXLfCBHZK3BgTVQfexO/DD+ytHLudvj
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59064059"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 45/65] x86/hap: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:26 +0000
Message-ID: <20211126123446.32324-46-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/mm/hap/guest_walk.c |  4 ++--
 xen/arch/x86/mm/hap/hap.c        | 21 +++++++++++----------
 xen/arch/x86/mm/hap/private.h    | 30 ++++++++++++------------------
 3 files changed, 25 insertions(+), 30 deletions(-)

diff --git a/xen/arch/x86/mm/hap/guest_walk.c b/xen/arch/x86/mm/hap/guest_walk.c
index 832a8058471e..1da8d3b99edc 100644
--- a/xen/arch/x86/mm/hap/guest_walk.c
+++ b/xen/arch/x86/mm/hap/guest_walk.c
@@ -36,14 +36,14 @@
 #include <asm/guest_pt.h>
 #include <asm/p2m.h>
 
-unsigned long hap_gva_to_gfn(GUEST_PAGING_LEVELS)(
+unsigned long cf_check hap_gva_to_gfn(GUEST_PAGING_LEVELS)(
     struct vcpu *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec)
 {
     unsigned long cr3 = v->arch.hvm.guest_cr[3];
     return hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)(v, p2m, cr3, gva, pfec, NULL);
 }
 
-unsigned long hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)(
+unsigned long cf_check hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)(
     struct vcpu *v, struct p2m_domain *p2m, unsigned long cr3,
     paddr_t ga, uint32_t *pfec, unsigned int *page_order)
 {
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index ed5112b00b63..9d67a47f5fe9 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -268,7 +268,7 @@ static void hap_free(struct domain *d, mfn_t mfn)
     page_list_add_tail(pg, &d->arch.paging.hap.freelist);
 }
 
-static struct page_info *hap_alloc_p2m_page(struct domain *d)
+static struct page_info *cf_check hap_alloc_p2m_page(struct domain *d)
 {
     struct page_info *pg;
 
@@ -294,7 +294,7 @@ static struct page_info *hap_alloc_p2m_page(struct domain *d)
     return pg;
 }
 
-static void hap_free_p2m_page(struct domain *d, struct page_info *pg)
+static void cf_check hap_free_p2m_page(struct domain *d, struct page_info *pg)
 {
     struct domain *owner = page_get_owner(pg);
 
@@ -662,8 +662,8 @@ void hap_vcpu_init(struct vcpu *v)
  * HAP guests can handle page faults (in the guest page tables) without
  * needing any action from Xen, so we should not be intercepting them.
  */
-static int hap_page_fault(struct vcpu *v, unsigned long va,
-                          struct cpu_user_regs *regs)
+static int cf_check hap_page_fault(
+    struct vcpu *v, unsigned long va, struct cpu_user_regs *regs)
 {
     struct domain *d = v->domain;
 
@@ -677,7 +677,7 @@ static int hap_page_fault(struct vcpu *v, unsigned long va,
  * should not be intercepting it.  However, we need to correctly handle
  * getting here from instruction emulation.
  */
-static bool_t hap_invlpg(struct vcpu *v, unsigned long linear)
+static bool cf_check hap_invlpg(struct vcpu *v, unsigned long linear)
 {
     /*
      * Emulate INVLPGA:
@@ -690,7 +690,8 @@ static bool_t hap_invlpg(struct vcpu *v, unsigned long linear)
     return 1;
 }
 
-static void hap_update_cr3(struct vcpu *v, int do_locking, bool noflush)
+static void cf_check hap_update_cr3(
+    struct vcpu *v, int do_locking, bool noflush)
 {
     v->arch.hvm.hw_cr[3] = v->arch.hvm.guest_cr[3];
     hvm_update_guest_cr3(v, noflush);
@@ -702,7 +703,7 @@ static bool flush_vcpu(const struct vcpu *v, const unsigned long *vcpu_bitmap)
 }
 
 /* Flush TLB of selected vCPUs.  NULL for all. */
-static bool flush_tlb(const unsigned long *vcpu_bitmap)
+static bool cf_check flush_tlb(const unsigned long *vcpu_bitmap)
 {
     static DEFINE_PER_CPU(cpumask_t, flush_cpumask);
     cpumask_t *mask = &this_cpu(flush_cpumask);
@@ -747,7 +748,7 @@ hap_paging_get_mode(struct vcpu *v)
                                       &hap_paging_protected_mode);
 }
 
-static void hap_update_paging_modes(struct vcpu *v)
+static void cf_check hap_update_paging_modes(struct vcpu *v)
 {
     struct domain *d = v->domain;
     unsigned long cr3_gfn = v->arch.hvm.guest_cr[3] >> PAGE_SHIFT;
@@ -791,13 +792,13 @@ void hap_p2m_init(struct p2m_domain *p2m)
     p2m->write_p2m_entry_post = hap_write_p2m_entry_post;
 }
 
-static unsigned long hap_gva_to_gfn_real_mode(
+static unsigned long cf_check hap_gva_to_gfn_real_mode(
     struct vcpu *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec)
 {
     return ((paddr_t)gva >> PAGE_SHIFT);
 }
 
-static unsigned long hap_p2m_ga_to_gfn_real_mode(
+static unsigned long cf_check hap_p2m_ga_to_gfn_real_mode(
     struct vcpu *v, struct p2m_domain *p2m, unsigned long cr3,
     paddr_t ga, uint32_t *pfec, unsigned int *page_order)
 {
diff --git a/xen/arch/x86/mm/hap/private.h b/xen/arch/x86/mm/hap/private.h
index 973fbe8be59c..1040eaf69f43 100644
--- a/xen/arch/x86/mm/hap/private.h
+++ b/xen/arch/x86/mm/hap/private.h
@@ -24,27 +24,21 @@
 /********************************************/
 /*          GUEST TRANSLATION FUNCS         */
 /********************************************/
-unsigned long hap_gva_to_gfn_2_levels(struct vcpu *v,
-                                     struct p2m_domain *p2m,
-                                     unsigned long gva, 
-                                     uint32_t *pfec);
-unsigned long hap_gva_to_gfn_3_levels(struct vcpu *v,
-                                     struct p2m_domain *p2m,
-                                     unsigned long gva, 
-                                     uint32_t *pfec);
-unsigned long hap_gva_to_gfn_4_levels(struct vcpu *v,
-                                     struct p2m_domain *p2m,
-                                     unsigned long gva, 
-                                     uint32_t *pfec);
+unsigned long cf_check hap_gva_to_gfn_2_levels(
+    struct vcpu *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec);
+unsigned long cf_check hap_gva_to_gfn_3_levels(
+    struct vcpu *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec);
+unsigned long cf_check hap_gva_to_gfn_4_levels(
+    struct vcpu *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec);
 
-unsigned long hap_p2m_ga_to_gfn_2_levels(struct vcpu *v,
-    struct p2m_domain *p2m, unsigned long cr3,
+unsigned long cf_check hap_p2m_ga_to_gfn_2_levels(
+    struct vcpu *v, struct p2m_domain *p2m, unsigned long cr3,
     paddr_t ga, uint32_t *pfec, unsigned int *page_order);
-unsigned long hap_p2m_ga_to_gfn_3_levels(struct vcpu *v,
-    struct p2m_domain *p2m, unsigned long cr3,
+unsigned long cf_check hap_p2m_ga_to_gfn_3_levels(
+    struct vcpu *v, struct p2m_domain *p2m, unsigned long cr3,
     paddr_t ga, uint32_t *pfec, unsigned int *page_order);
-unsigned long hap_p2m_ga_to_gfn_4_levels(struct vcpu *v,
-    struct p2m_domain *p2m, unsigned long cr3,
+unsigned long cf_check hap_p2m_ga_to_gfn_4_levels(
+    struct vcpu *v, struct p2m_domain *p2m, unsigned long cr3,
     paddr_t ga, uint32_t *pfec, unsigned int *page_order);
 
 #endif /* __HAP_PRIVATE_H__ */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232782.403799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawP-0003o2-Vk; Fri, 26 Nov 2021 13:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232782.403799; Fri, 26 Nov 2021 13:07:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawP-0003kw-I1; Fri, 26 Nov 2021 13:07:01 +0000
Received: by outflank-mailman (input) for mailman id 232782;
 Fri, 26 Nov 2021 13:06:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavH-0003W9-0F
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:51 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 92ea1cf3-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:49 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92ea1cf3-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931949;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Fjt4FTXRqzsNvO1Bgk1R2D4yNEdp9/3zXUQNGV4mJuY=;
  b=KNJUnG5Ow1g9BDbB/Fw5OUP+iQ43hsgEcDd0Pq65ZW5eGfXu/Vts8BmL
   /2TtO54yeLSowqM2QFZ70hy4m3840c87RMKf3cD6Ls4uOipruC2qAEHJ6
   AlWmNMBKWbUWB96UdMq0xUN649WOe/GXiKJgnkoqBIJLng3bGxPMaFniW
   c=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: YGBaZ+vcSFMZpJ7CJMlyA3tJ6oA7fLKQGFXtvt5tYIaUDpjSkNnDfsAt6EcKceRcn90+Vb7Bgd
 vvryaQwtkjvGUJbRH/xDHHQuIuzb/dZN01k+wSCTIo94DHbaJ6SHiyqBlFOdC5FqHnQ0Y4fYgJ
 PeKGAaXA//dEybytppsLE9RUHX6Or6fSz7B0SM3ChxFrBMPsJmPtNF5NVRLtFJJ9KeR2JWmc9h
 lgweT+XwIiypiFA0st6Ilk/ids6/pRdylrJYtXfFTnyr32uj4ycVDisHo1U+Da6bxXzsmFPJuI
 e7iQlWN2n//tRPoELe3Krc02
X-SBRS: 5.1
X-MesageID: 58193841
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:IUAnuKMKjHbFzunvrR1okMFynXyQoLVcMsEvi/4bfWQNrUoihjFRn
 TQeWWzTb/uMYmugfY93PYnn80tUscSAmtYxTgto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg9w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozCsleBdm
 I4OicHzSB0jF5Xwk+AcWiANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWdp15seQa+2i
 8wxMiprajfaby11ZlpUI48fvej3l2ajWmgNwL6SjfVuuDWCpOBr65DyNPLFd9rMQt9a9m66j
 G/b+2XyAjkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24nNSQPoGd
 RZSoHB36/Fvqgr7FbERQiFUvlaBmxQsd4oLUNFnqwCXwIPs3w2dB2E9G2sphMMdiOc6Qjkj1
 1msltzvBCByvLD9dU9x5ot4vhvpZ3FLcDZqiTssCFJcvoK9+N1bYgfnF447SMaIYsvJ9SYcK
 txghAw3nP0tgMECzM1XFniX0mv39vAlouPYjzg7v15JDCslO+ZJhKTysDA3CMqsyq7CFTFtW
 1BexqCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I9sPsG8jexY1bJpfEdMMX
 KM1kVgKjHO0FCH3BZKbnqrrU5h6pUQePYiNug/ogipmPcEqKV7vENBGbk+MxWH9+HXAYolkU
 ap3hf2EVC5AYYw+lWLeb75EjdcDm3BvrUuOFMuT50n2jtKjiIu9FO5t3K2mNbtisstpYWz9r
 r5iCid940kFDbClPHCIqdV7wJJjBSFTOK0aYvd/LoarSjeK0kl7YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:CIVp8qGjMyjCSUOGpLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58193841"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 36/65] x86/idle: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:17 +0000
Message-ID: <20211126123446.32324-37-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/acpi/cpu_idle.c                 | 31 +++++++++++++++++++++-------
 xen/arch/x86/acpi/cpuidle_menu.c             |  6 +++---
 xen/arch/x86/cpu/mwait-idle.c                |  2 +-
 xen/arch/x86/domain.c                        |  6 +++---
 xen/arch/x86/hpet.c                          |  4 ++--
 xen/arch/x86/time.c                          |  6 +++---
 xen/drivers/cpufreq/cpufreq_misc_governors.c | 14 ++++++-------
 xen/include/asm-x86/cpuidle.h                |  4 ++--
 xen/include/asm-x86/hpet.h                   |  4 ++--
 xen/include/asm-x86/time.h                   |  6 +++---
 10 files changed, 49 insertions(+), 34 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 0142671bb836..557bc6ef8642 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -75,7 +75,7 @@
 #define GET_CC7_RES(val)  GET_HW_RES_IN_NS(0x3FE, val) /* SNB onwards */
 #define PHI_CC6_RES(val)  GET_HW_RES_IN_NS(0x3FF, val) /* Xeon Phi only */
 
-static void lapic_timer_nop(void) { }
+static void cf_check lapic_timer_nop(void) { }
 void (*__read_mostly lapic_timer_off)(void);
 void (*__read_mostly lapic_timer_on)(void);
 
@@ -310,12 +310,27 @@ static char* acpi_cstate_method_name[] =
     "HALT"
 };
 
-static uint64_t get_stime_tick(void) { return (uint64_t)NOW(); }
-static uint64_t stime_ticks_elapsed(uint64_t t1, uint64_t t2) { return t2 - t1; }
-static uint64_t stime_tick_to_ns(uint64_t ticks) { return ticks; }
+static uint64_t cf_check get_stime_tick(void)
+{
+    return NOW();
+}
+
+static uint64_t cf_check stime_ticks_elapsed(uint64_t t1, uint64_t t2)
+{
+    return t2 - t1;
+}
+
+static uint64_t cf_check stime_tick_to_ns(uint64_t ticks)
+{
+    return ticks;
+}
+
+static uint64_t cf_check get_acpi_pm_tick(void)
+{
+    return inl(pmtmr_ioport);
+}
 
-static uint64_t get_acpi_pm_tick(void) { return (uint64_t)inl(pmtmr_ioport); }
-static uint64_t acpi_pm_ticks_elapsed(uint64_t t1, uint64_t t2)
+static uint64_t cf_check acpi_pm_ticks_elapsed(uint64_t t1, uint64_t t2)
 {
     if ( t2 >= t1 )
         return (t2 - t1);
@@ -664,7 +679,7 @@ void update_idle_stats(struct acpi_processor_power *power,
     spin_unlock(&power->stat_lock);
 }
 
-static void acpi_processor_idle(void)
+static void cf_check acpi_processor_idle(void)
 {
     unsigned int cpu = smp_processor_id();
     struct acpi_processor_power *power = processor_powers[cpu];
@@ -869,7 +884,7 @@ static void acpi_processor_idle(void)
         cpuidle_current_governor->reflect(power);
 }
 
-void acpi_dead_idle(void)
+void cf_check acpi_dead_idle(void)
 {
     struct acpi_processor_power *power;
     struct acpi_processor_cx *cx;
diff --git a/xen/arch/x86/acpi/cpuidle_menu.c b/xen/arch/x86/acpi/cpuidle_menu.c
index 6ff5fb8ff215..a275436d799c 100644
--- a/xen/arch/x86/acpi/cpuidle_menu.c
+++ b/xen/arch/x86/acpi/cpuidle_menu.c
@@ -185,7 +185,7 @@ static unsigned int get_sleep_length_us(void)
     return (us >> 32) ? (unsigned int)-2000 : (unsigned int)us;
 }
 
-static int menu_select(struct acpi_processor_power *power)
+static int cf_check menu_select(struct acpi_processor_power *power)
 {
     struct menu_device *data = &this_cpu(menu_devices);
     int i;
@@ -237,7 +237,7 @@ static int menu_select(struct acpi_processor_power *power)
     return data->last_state_idx;
 }
 
-static void menu_reflect(struct acpi_processor_power *power)
+static void cf_check menu_reflect(struct acpi_processor_power *power)
 {
     struct menu_device *data = &this_cpu(menu_devices);
     u64 new_factor;
@@ -275,7 +275,7 @@ static void menu_reflect(struct acpi_processor_power *power)
     data->correction_factor[data->bucket] = new_factor;
 }
 
-static int menu_enable_device(struct acpi_processor_power *power)
+static int cf_check menu_enable_device(struct acpi_processor_power *power)
 {
     memset(&per_cpu(menu_devices, power->cpu), 0, sizeof(struct menu_device));
 
diff --git a/xen/arch/x86/cpu/mwait-idle.c b/xen/arch/x86/cpu/mwait-idle.c
index 7a4b0837a01f..cf999070ee28 100644
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -738,7 +738,7 @@ static const struct cpuidle_state dnv_cstates[] = {
 	{}
 };
 
-static void mwait_idle(void)
+static void cf_check mwait_idle(void)
 {
 	unsigned int cpu = smp_processor_id();
 	struct acpi_processor_power *power = processor_powers[cpu];
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 1c3a1ec2a080..ae7c88b51af1 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -74,11 +74,11 @@
 
 DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
 
-static void default_idle(void);
+static void cf_check default_idle(void);
 void (*pm_idle) (void) __read_mostly = default_idle;
 void (*dead_idle) (void) __read_mostly = default_dead_idle;
 
-static void default_idle(void)
+static void cf_check default_idle(void)
 {
     struct cpu_info *info = get_cpu_info();
 
@@ -93,7 +93,7 @@ static void default_idle(void)
         local_irq_enable();
 }
 
-void default_dead_idle(void)
+void cf_check default_dead_idle(void)
 {
     /*
      * When going into S3, without flushing caches modified data may be
diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index c31fd97579dc..20fca839907c 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -709,7 +709,7 @@ void hpet_disable_legacy_broadcast(void)
     smp_send_event_check_mask(&cpu_online_map);
 }
 
-void hpet_broadcast_enter(void)
+void cf_check hpet_broadcast_enter(void)
 {
     unsigned int cpu = smp_processor_id();
     struct hpet_event_channel *ch = per_cpu(cpu_bc_channel, cpu);
@@ -740,7 +740,7 @@ void hpet_broadcast_enter(void)
     spin_unlock(&ch->lock);
 }
 
-void hpet_broadcast_exit(void)
+void cf_check hpet_broadcast_exit(void)
 {
     unsigned int cpu = smp_processor_id();
     struct hpet_event_channel *ch = per_cpu(cpu_bc_channel, cpu);
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index dda09f0680b3..ef036a187415 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -535,7 +535,7 @@ static __init int cf_check init_pmtmr_scale(void)
 }
 __initcall(init_pmtmr_scale);
 
-uint64_t acpi_pm_tick_to_ns(uint64_t ticks)
+uint64_t cf_check acpi_pm_tick_to_ns(uint64_t ticks)
 {
     return scale_delta(ticks, &pmt_scale);
 }
@@ -2232,12 +2232,12 @@ static int __init cf_check disable_pit_irq(void)
 }
 __initcall(disable_pit_irq);
 
-void pit_broadcast_enter(void)
+void cf_check pit_broadcast_enter(void)
 {
     cpumask_set_cpu(smp_processor_id(), &pit_broadcast_mask);
 }
 
-void pit_broadcast_exit(void)
+void cf_check pit_broadcast_exit(void)
 {
     int cpu = smp_processor_id();
 
diff --git a/xen/drivers/cpufreq/cpufreq_misc_governors.c b/xen/drivers/cpufreq/cpufreq_misc_governors.c
index ad79d0f5d246..f5571f5486ab 100644
--- a/xen/drivers/cpufreq/cpufreq_misc_governors.c
+++ b/xen/drivers/cpufreq/cpufreq_misc_governors.c
@@ -26,8 +26,8 @@
 static unsigned int __read_mostly userspace_cmdline_freq;
 static DEFINE_PER_CPU(unsigned int, cpu_set_freq);
 
-static int cpufreq_governor_userspace(struct cpufreq_policy *policy,
-                                      unsigned int event)
+static int cf_check cpufreq_governor_userspace(
+    struct cpufreq_policy *policy, unsigned int event)
 {
     int ret = 0;
     unsigned int cpu;
@@ -81,7 +81,7 @@ int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq)
     return __cpufreq_driver_target(policy, freq, CPUFREQ_RELATION_L);
 }
 
-static bool_t __init
+static bool __init cf_check
 cpufreq_userspace_handle_option(const char *name, const char *val)
 {
     if (!strcmp(name, "speed") && val) {
@@ -131,8 +131,8 @@ __initcall(cpufreq_gov_userspace_init);
 /*
  * cpufreq performance governor
  */
-static int cpufreq_governor_performance(struct cpufreq_policy *policy,
-                                      unsigned int event)
+static int cf_check cpufreq_governor_performance(
+    struct cpufreq_policy *policy, unsigned int event)
 {
     int ret = 0;
 
@@ -170,8 +170,8 @@ __initcall(cpufreq_gov_performance_init);
 /*
  * cpufreq powersave governor
  */
-static int cpufreq_governor_powersave(struct cpufreq_policy *policy,
-                                      unsigned int event)
+static int cf_check cpufreq_governor_powersave(
+    struct cpufreq_policy *policy, unsigned int event)
 {
     int ret = 0;
 
diff --git a/xen/include/asm-x86/cpuidle.h b/xen/include/asm-x86/cpuidle.h
index 0981a8fd6417..3edd7a75d2ef 100644
--- a/xen/include/asm-x86/cpuidle.h
+++ b/xen/include/asm-x86/cpuidle.h
@@ -17,8 +17,8 @@ extern uint64_t (*cpuidle_get_tick)(void);
 
 int mwait_idle_init(struct notifier_block *);
 int cpuidle_init_cpu(unsigned int cpu);
-void default_dead_idle(void);
-void acpi_dead_idle(void);
+void cf_check default_dead_idle(void);
+void cf_check acpi_dead_idle(void);
 void play_dead(void);
 void trace_exit_reason(u32 *irq_traced);
 void update_idle_stats(struct acpi_processor_power *,
diff --git a/xen/include/asm-x86/hpet.h b/xen/include/asm-x86/hpet.h
index 8f9725a95e21..f343fe4740f1 100644
--- a/xen/include/asm-x86/hpet.h
+++ b/xen/include/asm-x86/hpet.h
@@ -91,8 +91,8 @@ void hpet_disable_legacy_replacement_mode(void);
  */
 void hpet_broadcast_init(void);
 void hpet_broadcast_resume(void);
-void hpet_broadcast_enter(void);
-void hpet_broadcast_exit(void);
+void cf_check hpet_broadcast_enter(void);
+void cf_check hpet_broadcast_exit(void);
 int hpet_broadcast_is_available(void);
 void hpet_disable_legacy_broadcast(void);
 
diff --git a/xen/include/asm-x86/time.h b/xen/include/asm-x86/time.h
index f347311cc429..69742450575c 100644
--- a/xen/include/asm-x86/time.h
+++ b/xen/include/asm-x86/time.h
@@ -43,11 +43,11 @@ int hwdom_pit_access(struct ioreq *ioreq);
 
 int cpu_frequency_change(u64 freq);
 
-void pit_broadcast_enter(void);
-void pit_broadcast_exit(void);
+void cf_check pit_broadcast_enter(void);
+void cf_check pit_broadcast_exit(void);
 int pit_broadcast_is_available(void);
 
-uint64_t acpi_pm_tick_to_ns(uint64_t ticks);
+uint64_t cf_check acpi_pm_tick_to_ns(uint64_t ticks);
 uint64_t ns_to_acpi_pm_tick(uint64_t ns);
 
 uint64_t tsc_ticks2ns(uint64_t ticks);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232784.403809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawR-000417-4j; Fri, 26 Nov 2021 13:07:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232784.403809; Fri, 26 Nov 2021 13:07:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawQ-0003yh-Eo; Fri, 26 Nov 2021 13:07:02 +0000
Received: by outflank-mailman (input) for mailman id 232784;
 Fri, 26 Nov 2021 13:06:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqav8-0002zD-HD
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:42 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e17ee3d-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:05:41 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e17ee3d-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931941;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=rj13aauZ5p/MtXm9lZgjoTPFAuAFcCO95ql16j4Ncjk=;
  b=KFNTYugEMJ9BRHAVbHhF+ZQJN05DCEhGjr2V0OunvXuHAoO3fWFdhaPk
   JqQz4E8SG8x/Br9LY/EJ2FiXOJ/pkGGOlvrjSOEFkstBjZA8Jh0mGPlTN
   8rSdcQDbyIkuX37Ujtf1rdBIn/k0w5mX7kMYOve6n8ulpM9pcCMGULXj6
   w=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 1c/C4dHXEf3cDxntLF1CvYAOF9ZtVrjHWTbw0UM8D///AVi5TL6nGQlUl4auXKmXn22nKIhprj
 TQNVx33bb5ZnM/4/Y+iuhfevxBJgHGl973nBg4eiEGcENeM5f9Vvjb367bAAtsBCE13Dg75Wzi
 RhBPRwzt6tYLv4HGUxQ+2RoOOLaSdB8gllcrsGlNgoCfYGiTyayhAFho+thnyPypXz2W5dnyuY
 m3bYeJLkpP6YfNvePLiXG9YyEtwR4j5xDu+0jJL9q7RLoflqrFRCEunv9Exo1vWdSA64Ph0m30
 owsXgGIF+Fk8Xv14+K070UQd
X-SBRS: 5.1
X-MesageID: 59064039
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:rmyK5KN7ynEs+UjvrR1okMFynXyQoLVcMsEvi/4bfWQNrUp0gmMDn
 TQdDT2Aaa7YazeneIgjPIW0oBsD7cTTmtQyTAto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg9w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYow+7hN1uz
 I5Hj6y9Qi4MNPPmnOojdxYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWZo2JwWRqe2i
 8wxMChTdhjbaUJ0FQlQOL8flcKUl0j6bGgNwL6SjfVuuDWCpOBr65DyNPLFd9rMQt9a9m66j
 G/b+2XyAjkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24nNSQPoGd
 RZSoHB36/Fvqgr7FbERQiFUvla+jAURRN4LGdcK5Qqk76CKyQKXOEwLG2sphMMdiOc6Qjkj1
 1msltzvBCByvLD9dU9x5ot4vhvpZ3FLcDZqiTssCFJcvoK9+N1bYgfnF447SMaIYsvJ9SYcK
 txghAw3nP0tgMECzM1XFniX0mv39vAlouPYjzg7v15JDCslO+ZJhKTysDA3CMqsyq7CFTFtW
 1BexqCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I9sPsG8jexY1bJpfEdMMX
 KM1kVgKjHO0FCH3BZKbnqrrU5h6pUQePYiNug/ogipmPcEqKV7vENBGbk+MxWH9+HXAYolkU
 ap3hf2EVC5AYYw+lWLeb75EjdcDm3BvrUuOFMuT50n2jtKjiIu9FO5t3K2mNbtisstpYWz9r
 r5iCid940kFDbClPHCIqdV7wJJjBSFTOK0aYvd/LoarSjeK0kl7YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:8tL796A9HyFJHj7lHemU55DYdb4zR+YMi2TC1yhKJyC9Ffbo7v
 xG/c5rsyMc5wxwZJhNo7y90ey7MBbhHP1OkO4s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpN
 9dmsNFaeEYY2IUsS+D2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59064039"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 58/65] x86/alternatives: Clear CR4.CET when clearing CR0.WP
Date: Fri, 26 Nov 2021 12:34:39 +0000
Message-ID: <20211126123446.32324-59-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

This allows us to have CET active much earlier in boot.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

Still TODO: Implement alternatives in a way which doesn't depend on clearing
CR0.WP
---
 xen/arch/x86/alternative.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 436047abe021..ec24692e9595 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -333,9 +333,13 @@ static int __init cf_check nmi_apply_alternatives(
      */
     if ( !(alt_done & alt_todo) )
     {
-        unsigned long cr0;
+        unsigned long cr0, cr4;
 
         cr0 = read_cr0();
+        cr4 = read_cr4();
+
+        if ( cr4 & X86_CR4_CET )
+            write_cr4(cr4 & ~X86_CR4_CET);
 
         /* Disable WP to allow patching read-only pages. */
         write_cr0(cr0 & ~X86_CR0_WP);
@@ -345,6 +349,9 @@ static int __init cf_check nmi_apply_alternatives(
 
         write_cr0(cr0);
 
+        if ( cr4 & X86_CR4_CET )
+            write_cr4(cr4);
+
         alt_done |= alt_todo;
     }
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232786.403820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawS-0004Pv-Qq; Fri, 26 Nov 2021 13:07:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232786.403820; Fri, 26 Nov 2021 13:07:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawS-0004OW-47; Fri, 26 Nov 2021 13:07:04 +0000
Received: by outflank-mailman (input) for mailman id 232786;
 Fri, 26 Nov 2021 13:07:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavX-0003W9-Lx
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:07 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9ce993e1-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ce993e1-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931966;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=2fDXaXazfQXnz7/03KLLc3+HD6+G8OCzegB9VcGT+sI=;
  b=WovLxch8km54ezVS+a9dQ6Q7/ObjK2lERKNO/Idq2EndtfXzU5PI34XK
   VSrSsB+RAHTK03jgnNrHgV+q2nLjBUW9fLaGQICBuH5Z6ujeI+uTU8ddA
   nuDGWdtpUA30U5OHjlyxA6YOOPiscbGywAchY2JP1MvfGx65oun+AZZNU
   0=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: H7eJka3pBj2/5aSyGooWyhODYdOVTBX01pBZ5HMUYXzwrHQw4N6Zdx1JYCRe50dDcV/mKhyJ2o
 LdYbbBeM/1MTbhnLwBzgvKOn1s+jxIj/stEL2Gui/z8TpKvY1XES7C9b4sISxBbZSqMWx3cDxD
 ar8pSf/w0TiYno9nnU/Son6DixDzgk6lyk6q0agLrYieBwnq3o30EX+qMQ2uRLo9fPLGFC7Ejq
 dsyMnngAVpHjObqjzBrS/AA7EzjtU2nWqur3/+nG5c1xfjAhBCpUPOF7dOtinOBXOjdpWnR5x3
 KjnjhwXYY5YH/SFeVWULJ23M
X-SBRS: 5.1
X-MesageID: 58696036
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:n1cAIqDBJfxo0xVW/9zkw5YqxClBgxIJ4kV8jS/XYbTApDMr0TFVy
 DcbW2uPafncZjH1c40jbduw8R9TsJPSxoRmQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX5400w7wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/kG+qh+Fhy
 4R0qcKgRj53OrPlhrg6XEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjGlh2JgVQ54yY
 eIXMmdpaSnrZyZxYFRPM7U8n7ezjWfWJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tkSFo
 mPL+UzpDxdcM8aQoRKe6W6ljOLLmSL9WaoRGae++/osh0ecrkQDBRtTWValrP2Rjk+lR8kZO
 0ES4jApr6U56AqsVNaVdz+SrWOAvxUcc8FNCOB84waIopc4+C7AWDJCFGQYLoV76olmHlTGy
 2NlgfvyXx93ga2WGEuBqKeblG22JwELcUgNMHpsoRQ+3/Hvp4Q6jxTqR9llEbKogtCdJQwc0
 wxmvwBl2exN0JdjO7GTuAme3mny/sShohsdv12PBgqYAhVFiJlJjmBCwXzS9r5+IYmQVTFtV
 1BUypHFvIji4Xxg/RFhodnh/pn1uJ5p0xWG2DaD+qXNERz2oBZPmqgKvVlDyL9BaJpsRNMQS
 Ba7VfltzJFSJmC2SqR8fpi8Dc8npYC5S4+6Bq6JMYsSPMQqHONiwM2ITRXLt4wKuBJx+ZzTx
 L/BKZr8ZZrkIfgPIMWKqxc1juZwm3FWKZL7TpHn1RW3uYdyl1bOIYrpxGCmN7hjhIvd+V292
 48Ga6OilkUOOMWjM3K/2dNCcjg3wY0TWMmeRzp/LbXYfGKL2QgJVpfs/F/WU9A/wvkOyL6Xp
 irVt40x4AOXuEAr4D6iMhhLAI4Dl74mxZ7iFSBzb1uuxVY5ZoOjsPUWe5ctJOF1/+1/1/9kC
 fICfpzYUPhITz3G/RUbbIX889M+JEj621rWMnr3eiU7cr5hWxfNpo3ucDzw+XRcFSGwr8Y//
 eGtj1uJXZoZSg1+J8/Kc/bznUiptH0QlbsqDUvFK9VeYmv2941uJ3Cjh/M7OZhUex7C2iGbx
 0CdBhJB/bvBpIo88d/og6GYrtj2T7siTxQCR2SCtOS4LyjX+Gan0LRsaufQcGCPTn7w9YWje
 f5Rk6P2PsoYkQsYqIF7Cbtqk/4zvoO9u79Aww14N3zXdFD3WKh4K3yL0MQT5K1AwrhV5Vm/V
 k6Vo4QIPLyIPIXuEUILJRpjZeOGjKlGlj7X5PUzAUP7+C4oo+bXDRQMZ0GB2H5HMb94EII52
 uNw6scZ5ju2hgcuLtvb3Dtf8H6BLyBYXqgq3n3A7FQHVub/Jol+XKHh
IronPort-HdrOrdr: A9a23:iinLz6GjHL60mLg8pLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58696036"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 19/65] xen/tasklet: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:00 +0000
Message-ID: <20211126123446.32324-20-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The function pointer cast in hvm_vcpu_initialise() is undefined behaviour.

While it happens to function correctly before this point, it is not
incompatible with control flow typechecking, so introduce a new
hvm_assert_evtchn_irq_tasklet() to handle the parameter type conversion in a
legal way.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/hvm/hvm.c                    | 7 ++++++-
 xen/arch/x86/hvm/vlapic.c                 | 2 +-
 xen/arch/x86/mm/shadow/common.c           | 2 +-
 xen/common/domain.c                       | 2 +-
 xen/common/keyhandler.c                   | 6 +++---
 xen/common/livepatch.c                    | 2 +-
 xen/common/stop_machine.c                 | 2 +-
 xen/common/trace.c                        | 2 +-
 xen/drivers/char/console.c                | 2 +-
 xen/drivers/passthrough/amd/iommu_guest.c | 2 +-
 xen/drivers/passthrough/amd/iommu_init.c  | 4 ++--
 xen/drivers/passthrough/arm/smmu-v3.c     | 6 +++---
 xen/drivers/passthrough/vtd/iommu.c       | 2 +-
 xen/include/asm-x86/shadow.h              | 2 +-
 14 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 0e935be1d772..16e8a32fa768 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1540,6 +1540,11 @@ static int __init cf_check hvm_register_CPU_save_and_restore(void)
 }
 __initcall(hvm_register_CPU_save_and_restore);
 
+static void cf_check hvm_assert_evtchn_irq_tasklet(void *v)
+{
+    hvm_assert_evtchn_irq(v);
+}
+
 int hvm_vcpu_initialise(struct vcpu *v)
 {
     int rc;
@@ -1563,7 +1568,7 @@ int hvm_vcpu_initialise(struct vcpu *v)
         goto fail3;
 
     softirq_tasklet_init(&v->arch.hvm.assert_evtchn_irq_tasklet,
-                         (void (*)(void *))hvm_assert_evtchn_irq, v);
+                         hvm_assert_evtchn_irq_tasklet, v);
 
     v->arch.hvm.inject_event.vector = HVM_EVENT_VECTOR_UNSET;
 
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index b8c84458ffdc..fe375912bef1 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -312,7 +312,7 @@ static void vlapic_init_sipi_one(struct vcpu *target, uint32_t icr)
     vcpu_unpause(target);
 }
 
-static void vlapic_init_sipi_action(void *data)
+static void cf_check vlapic_init_sipi_action(void *data)
 {
     struct vcpu *origin = data;
     uint32_t icr = vcpu_vlapic(origin)->init_sipi.icr;
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 1e4ee50771f5..b8cacbefef5f 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -3242,7 +3242,7 @@ void shadow_audit_tables(struct vcpu *v)
 
 #ifdef CONFIG_PV
 
-void pv_l1tf_tasklet(void *data)
+void cf_check pv_l1tf_tasklet(void *data)
 {
     struct domain *d = data;
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index a8b6ee59587c..4fcf9e23911f 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1833,7 +1833,7 @@ struct migrate_info {
 
 static DEFINE_PER_CPU(struct migrate_info *, continue_info);
 
-static void continue_hypercall_tasklet_handler(void *data)
+static void cf_check continue_hypercall_tasklet_handler(void *data)
 {
     struct migrate_info *info = data;
     struct vcpu *v = info->vcpu;
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index 2c916d528ab2..b568484ca62c 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -73,7 +73,7 @@ static struct keyhandler {
 #undef KEYHANDLER
 };
 
-static void keypress_action(void *unused)
+static void cf_check keypress_action(void *unused)
 {
     handle_keypress(keypress_key, NULL);
 }
@@ -206,7 +206,7 @@ static void dump_registers(unsigned char key, struct cpu_user_regs *regs)
 
 static DECLARE_TASKLET(dump_hwdom_tasklet, NULL, NULL);
 
-static void dump_hwdom_action(void *data)
+static void cf_check dump_hwdom_action(void *data)
 {
     struct vcpu *v = data;
 
@@ -437,7 +437,7 @@ static void read_clocks(unsigned char key)
            maxdif_cycles, sumdif_cycles/count, count, dif_cycles);
 }
 
-static void run_all_nonirq_keyhandlers(void *unused)
+static void cf_check run_all_nonirq_keyhandlers(void *unused)
 {
     /* Fire all the non-IRQ-context diagnostic keyhandlers */
     struct keyhandler *h;
diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index 701efd87a173..4e1c29ab7879 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -1591,7 +1591,7 @@ static int schedule_work(struct payload *data, uint32_t cmd, uint32_t timeout)
     return 0;
 }
 
-static void tasklet_fn(void *unused)
+static void cf_check tasklet_fn(void *unused)
 {
     this_cpu(work_to_do) = 1;
 }
diff --git a/xen/common/stop_machine.c b/xen/common/stop_machine.c
index a122bd4afe09..3adbe380de96 100644
--- a/xen/common/stop_machine.c
+++ b/xen/common/stop_machine.c
@@ -141,7 +141,7 @@ int stop_machine_run(int (*fn)(void *), void *data, unsigned int cpu)
     return ret;
 }
 
-static void stopmachine_action(void *data)
+static void cf_check stopmachine_action(void *data)
 {
     unsigned int cpu = (unsigned long)data;
     enum stopmachine_state state = STOPMACHINE_START;
diff --git a/xen/common/trace.c b/xen/common/trace.c
index 0886be089bea..53978466cf92 100644
--- a/xen/common/trace.c
+++ b/xen/common/trace.c
@@ -663,7 +663,7 @@ static inline void insert_lost_records(struct t_buf *buf)
  * Notification is performed in qtasklet to avoid deadlocks with contexts
  * which __trace_var() may be called from (e.g., scheduler critical regions).
  */
-static void trace_notify_dom0(void *unused)
+static void cf_check trace_notify_dom0(void *unused)
 {
     send_global_virq(VIRQ_TBUF);
 }
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 4694be83db45..d74b65f6bf23 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -574,7 +574,7 @@ static void serial_rx(char c, struct cpu_user_regs *regs)
     __serial_rx(c, regs);
 }
 
-static void notify_dom0_con_ring(void *unused)
+static void cf_check notify_dom0_con_ring(void *unused)
 {
     send_global_virq(VIRQ_CON_RING);
 }
diff --git a/xen/drivers/passthrough/amd/iommu_guest.c b/xen/drivers/passthrough/amd/iommu_guest.c
index 85828490ffee..361ff864d846 100644
--- a/xen/drivers/passthrough/amd/iommu_guest.c
+++ b/xen/drivers/passthrough/amd/iommu_guest.c
@@ -456,7 +456,7 @@ static int do_invalidate_dte(struct domain *d, cmd_entry_t *cmd)
     return 0;
 }
 
-static void guest_iommu_process_command(void *data)
+static void cf_check guest_iommu_process_command(void *data)
 {
     unsigned long opcode, tail, head, cmd_mfn;
     cmd_entry_t *cmd;
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index f1ed75558227..34a9e49f1c5a 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -26,7 +26,7 @@
 static int __initdata nr_amd_iommus;
 static bool __initdata pci_init;
 
-static void do_amd_iommu_irq(void *data);
+static void cf_check do_amd_iommu_irq(void *data);
 static DECLARE_SOFTIRQ_TASKLET(amd_iommu_irq_tasklet, do_amd_iommu_irq, NULL);
 
 unsigned int __read_mostly amd_iommu_acpi_info;
@@ -692,7 +692,7 @@ static void iommu_check_ppr_log(struct amd_iommu *iommu)
     spin_unlock_irqrestore(&iommu->lock, flags);
 }
 
-static void do_amd_iommu_irq(void *unused)
+static void cf_check do_amd_iommu_irq(void *unused)
 {
     struct amd_iommu *iommu;
 
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index d115df732016..5e74266da21e 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -1475,7 +1475,7 @@ static int arm_smmu_init_l2_strtab(struct arm_smmu_device *smmu, u32 sid)
 }
 
 /* IRQ and event handlers */
-static void arm_smmu_evtq_tasklet(void *dev)
+static void cf_check arm_smmu_evtq_tasklet(void *dev)
 {
 	int i;
 	struct arm_smmu_device *smmu = dev;
@@ -1545,7 +1545,7 @@ static void arm_smmu_handle_ppr(struct arm_smmu_device *smmu, u64 *evt)
 	}
 }
 
-static void arm_smmu_priq_tasklet(void *dev)
+static void cf_check arm_smmu_priq_tasklet(void *dev)
 {
 	struct arm_smmu_device *smmu = dev;
 	struct arm_smmu_queue *q = &smmu->priq.q;
@@ -1624,7 +1624,7 @@ static void arm_smmu_combined_irq_handler(int irq, void *dev,
 	tasklet_schedule(&(smmu->combined_irq_tasklet));
 }
 
-static void arm_smmu_combined_irq_tasklet(void *dev)
+static void cf_check arm_smmu_combined_irq_tasklet(void *dev)
 {
 	struct arm_smmu_device *smmu = dev;
 
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index ba1ed5761d23..23519f2081bb 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1065,7 +1065,7 @@ static void __do_iommu_page_fault(struct vtd_iommu *iommu)
     }
 }
 
-static void do_iommu_page_fault(void *unused)
+static void cf_check do_iommu_page_fault(void *unused)
 {
     struct acpi_drhd_unit *drhd;
 
diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h
index e25f9604d896..7ef76cc0635b 100644
--- a/xen/include/asm-x86/shadow.h
+++ b/xen/include/asm-x86/shadow.h
@@ -233,7 +233,7 @@ static inline bool pv_l1tf_check_l4e(struct domain *d, l4_pgentry_t l4e)
     return pv_l1tf_check_pte(d, 4, l4e.l4);
 }
 
-void pv_l1tf_tasklet(void *data);
+void cf_check pv_l1tf_tasklet(void *data);
 
 static inline void pv_l1tf_domain_init(struct domain *d)
 {
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232788.403829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawU-0004fa-89; Fri, 26 Nov 2021 13:07:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232788.403829; Fri, 26 Nov 2021 13:07:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawT-0004aB-4m; Fri, 26 Nov 2021 13:07:05 +0000
Received: by outflank-mailman (input) for mailman id 232788;
 Fri, 26 Nov 2021 13:07:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavE-0002zD-Bk
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:48 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9159b3dc-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:05:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9159b3dc-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931947;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=UegzuZhXXHY5hqqFyS7Iw93YbL6XWSCZlaORkPJB840=;
  b=fmbPKmOdEx1a0pdUxgRngzqMFtlESNgNq7Wa9bTcjN8qetlQ7Pqn94ZV
   U93ba9rC3ODKmlCB/dpaP5tXZ65AYAGbltjzk7xSzuPtR2ypI043V63Kf
   xgOsVqhouqj8iMvslFJUSoaBt860UATHaVVGWLrYdtPWcLIt6u6em6i2H
   Q=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: IdT3NFWX9Hj68kTd32brC/LgREC0HLKlW7vgt8jFLvL0zEByVHaP7ZDEBTQxPGVQjTVR3JclgH
 PNDH4cUqFWo3iNyQYRX0msWEosxO7IiYeZqW1QLrzwltlP1nFwJQ8rDbb3EhuDwn02oldn74ES
 vW/fR53wk0hHRg9jCBItk2BFp1iBL0XYGef94vIVmT27i4/XUy5Wwg6gWHDi+SolLHZsfZiTbf
 VG9suuoh/J8C9WkmuvB+E0GsIoVPTxYyYailt2gbbUHSzyAonUkv5tdaKd53hl3EgkuPOJDa23
 yUTIlp67WZnQ7Ge8AO6ThD1Y
X-SBRS: 5.1
X-MesageID: 58635033
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:HpbFC69dDI9+AM7d51FEDrUDdXmTJUtcMsCJ2f8bNWPcYEJGY0x3m
 2pKWG2EOPzZN2P0KIx+PYS/90JT6pfRy4JgSgI+qSs8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj3NYy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhz0
 YhLmt+7Qz4jYJbXsrozDRlZGCBXaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp0eQ62DP
 5FCAdZpRBHlXD4QYGg0Mb8ZkcSR2Xr1SWdG72vA8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru/Xn9AxwcHMySz3yC6H3ErvTUgSrxVYYWFbu53v1nmluewioUEhJ+fUu2p7y1h1CzX/pbK
 lcI4Ww+oK4q7kupQ9LhGRqirxasnDQRRt5RGO0S8xyWx+zf5APxO4QfZmcfMpp87pZwHGF0k
 A/S9z/0OdBxmL+MFHSytbyelDnsAjM/c0FcZS4PTCJQtrEPv7oPph7IS99iFou8gdv0BSz8z
 li2kcQuu1kApZVVjvvmpDgrlxrp/8GUFVBtum07S0r8tlshDLNJcbBE/rQyARxoCI+CBmeMs
 3Ef8yR1xLBfVMrd/MBhrQhkIV1I2xpnGGGD6bKMN8N4n9hIx5JFVdsLiN2ZDB00WvvogRezP
 CfuVfp5vfe/xkeCY65teJ6WAM8316XmHtmNfqmKNYUePMUuJVPZoHoGiausM4bFyxNEfUYXY
 8rzTCpRJSxCVfQPIMSeG4/xLoPHNghhnDiOFPgXPjys0KaEZW79dFv2GADmUwzN14vd+F+92
 48Gb6OikkwDOMWjMni/2dNCdjgicClkba0aXuQKL4Zv1CI9Qzp/YxIQqJt8E7FYc1N9yr2Vo
 yrjAxAAkzISRxTvcG23V5yqU5u3Nb4XkJ7xFXVE0Y+A1ydxbICxwr0YcpdrL7Ar+PY6lax/T
 uUfetXGCfNKE2yV9zMYZJj7jYpjaBX02l7eY3v7OGAyL8x6WgjE2t74ZQ+zpiMAOTW66Jklq
 Lq62wKFHZdaH1Z+DNzbYe6Exk+quSRPg/p7WkbFe4EBeEjl/IVwBTb2i/s7f5MFJRnZn2PI3
 AeKGxYI4+LKptZtotXOgKmFqaavEvd/QRUGTzWKs+7uOHCDrGS5wIJGXOKZRhznVTv5qPe4e
 OFY7/DgK/lbzlxEhJVxTuRwxqUk6tqx+7IDllZ4HG/GZkiAA697JiXUxtFGs6BAy+MLuQayX
 U7TqNBWNa/QZZHgGV8VYgEkcv6CxbcfnTyLtaY5J0Dz5SlW+rubUBoNY0nQ2XIFdLYlYpk4x
 eoBudIN713tgxUnBd+KkyRI+jneNXcHSagm6skXDYKDZtDHEb2ejUgw0hPL3aw=
IronPort-HdrOrdr: A9a23:savNVKr5TE5rSQH0xT4iPqwaV5oReYIsimQD101hICG8cqSj9v
 xG+85rrSMc6QxhIU3I9urwW5VoLUmyyXcx2/h0AV7AZniBhILLFvAB0WKK+VSJcEeSmtK1l5
 0QFJSWYOeAdmSS5vyb3ODXKbgdKaG8gcWVuds=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58635033"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 26/65] xen/misc: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:07 +0000
Message-ID: <20211126123446.32324-27-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/mm.c                        | 6 ++++--
 xen/arch/x86/setup.c                     | 4 ++--
 xen/common/domain.c                      | 2 +-
 xen/common/gdbstub.c                     | 5 ++---
 xen/common/livepatch.c                   | 7 +++----
 xen/common/memory.c                      | 4 ++--
 xen/common/page_alloc.c                  | 2 +-
 xen/common/radix-tree.c                  | 4 ++--
 xen/common/rangeset.c                    | 2 +-
 xen/common/spinlock.c                    | 6 +++---
 xen/common/vm_event.c                    | 6 +++---
 xen/common/xmalloc_tlsf.c                | 4 ++--
 xen/drivers/passthrough/amd/iommu_init.c | 2 +-
 13 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 35d000921795..5d7acf705fb8 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -811,7 +811,8 @@ struct mmio_emul_range_ctxt {
     unsigned long mfn;
 };
 
-static int print_mmio_emul_range(unsigned long s, unsigned long e, void *arg)
+static int cf_check print_mmio_emul_range(
+    unsigned long s, unsigned long e, void *arg)
 {
     const struct mmio_emul_range_ctxt *ctxt = arg;
 
@@ -4582,7 +4583,8 @@ static int _handle_iomem_range(unsigned long s, unsigned long e,
     return 0;
 }
 
-static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
+static int cf_check handle_iomem_range(
+    unsigned long s, unsigned long e, void *p)
 {
     int err = 0;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index f35f3cb899ab..9bd42a55f94b 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2034,8 +2034,8 @@ int __hwdom_init xen_in_range(unsigned long mfn)
     return 0;
 }
 
-static int __hwdom_init io_bitmap_cb(unsigned long s, unsigned long e,
-                                     void *ctx)
+static int __hwdom_init cf_check io_bitmap_cb(
+    unsigned long s, unsigned long e, void *ctx)
 {
     struct domain *d = ctx;
     unsigned int i;
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 4fcf9e23911f..de8208a6c797 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -370,7 +370,7 @@ static void cf_check _free_pirq_struct(struct rcu_head *head)
     xfree(container_of(head, struct pirq, rcu_head));
 }
 
-static void free_pirq_struct(void *ptr)
+static void cf_check free_pirq_struct(void *ptr)
 {
     struct pirq *pirq = ptr;
 
diff --git a/xen/common/gdbstub.c b/xen/common/gdbstub.c
index 079c3ca9616a..d6872721dc0d 100644
--- a/xen/common/gdbstub.c
+++ b/xen/common/gdbstub.c
@@ -69,7 +69,7 @@ static void gdb_smp_resume(void);
 static char __initdata opt_gdb[30];
 string_param("gdb", opt_gdb);
 
-static void gdbstub_console_puts(const char *str, size_t nr);
+static void cf_check gdbstub_console_puts(const char *str, size_t nr);
 
 /* value <-> char (de)serialzers */
 static char
@@ -546,8 +546,7 @@ __gdb_ctx = {
 };
 static struct gdb_context *gdb_ctx = &__gdb_ctx;
 
-static void
-gdbstub_console_puts(const char *str, size_t nr)
+static void cf_check gdbstub_console_puts(const char *str, size_t nr)
 {
     const char *p;
 
diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index e8714920dc8f..ec301a9f120c 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -157,10 +157,9 @@ unsigned long livepatch_symbols_lookup_by_name(const char *symname)
     return 0;
 }
 
-static const char *livepatch_symbols_lookup(unsigned long addr,
-                                            unsigned long *symbolsize,
-                                            unsigned long *offset,
-                                            char *namebuf)
+static const char *cf_check livepatch_symbols_lookup(
+    unsigned long addr, unsigned long *symbolsize, unsigned long *offset,
+    char *namebuf)
 {
     const struct payload *data;
     unsigned int i, best;
diff --git a/xen/common/memory.c b/xen/common/memory.c
index fbd2ebb3ba75..8146e1136a6c 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1033,8 +1033,8 @@ struct get_reserved_device_memory {
     unsigned int used_entries;
 };
 
-static int get_reserved_device_memory(xen_pfn_t start, xen_ulong_t nr,
-                                      u32 id, void *ctxt)
+static int cf_check get_reserved_device_memory(
+    xen_pfn_t start, xen_ulong_t nr, u32 id, void *ctxt)
 {
     struct get_reserved_device_memory *grdm = ctxt;
     uint32_t sbdf = PCI_SBDF3(grdm->map.dev.pci.seg, grdm->map.dev.pci.bus,
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 906bfb6679df..f878cd110d1e 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1238,7 +1238,7 @@ struct scrub_wait_state {
     bool drop;
 };
 
-static void scrub_continue(void *data)
+static void cf_check scrub_continue(void *data)
 {
     struct scrub_wait_state *st = data;
 
diff --git a/xen/common/radix-tree.c b/xen/common/radix-tree.c
index 33b47748ae49..adc3034222dc 100644
--- a/xen/common/radix-tree.c
+++ b/xen/common/radix-tree.c
@@ -52,7 +52,7 @@ struct rcu_node {
 	struct rcu_head rcu_head;
 };
 
-static struct radix_tree_node *rcu_node_alloc(void *arg)
+static struct radix_tree_node *cf_check rcu_node_alloc(void *arg)
 {
 	struct rcu_node *rcu_node = xmalloc(struct rcu_node);
 	return rcu_node ? &rcu_node->node : NULL;
@@ -65,7 +65,7 @@ static void cf_check _rcu_node_free(struct rcu_head *head)
 	xfree(rcu_node);
 }
 
-static void rcu_node_free(struct radix_tree_node *node, void *arg)
+static void cf_check rcu_node_free(struct radix_tree_node *node, void *arg)
 {
 	struct rcu_node *rcu_node = container_of(node, struct rcu_node, node);
 	call_rcu(&rcu_node->rcu_head, _rcu_node_free);
diff --git a/xen/common/rangeset.c b/xen/common/rangeset.c
index 885b6b15c229..a6ef2640462a 100644
--- a/xen/common/rangeset.c
+++ b/xen/common/rangeset.c
@@ -384,7 +384,7 @@ int rangeset_consume_ranges(struct rangeset *r,
     return rc;
 }
 
-static int merge(unsigned long s, unsigned long e, void *data)
+static int cf_check merge(unsigned long s, unsigned long e, void *data)
 {
     struct rangeset *r = data;
 
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 25bfbf3c47f7..62c83aaa6a73 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -375,7 +375,7 @@ static void spinlock_profile_iterate(lock_profile_subfunc *sub, void *par)
     spin_unlock(&lock_profile_lock);
 }
 
-static void spinlock_profile_print_elem(struct lock_profile *data,
+static void cf_check spinlock_profile_print_elem(struct lock_profile *data,
     int32_t type, int32_t idx, void *par)
 {
     struct spinlock *lock = data->lock;
@@ -404,7 +404,7 @@ void cf_check spinlock_profile_printall(unsigned char key)
     spinlock_profile_iterate(spinlock_profile_print_elem, NULL);
 }
 
-static void spinlock_profile_reset_elem(struct lock_profile *data,
+static void cf_check spinlock_profile_reset_elem(struct lock_profile *data,
     int32_t type, int32_t idx, void *par)
 {
     data->lock_cnt = 0;
@@ -428,7 +428,7 @@ typedef struct {
     int                      rc;
 } spinlock_profile_ucopy_t;
 
-static void spinlock_profile_ucopy_elem(struct lock_profile *data,
+static void cf_check spinlock_profile_ucopy_elem(struct lock_profile *data,
     int32_t type, int32_t idx, void *par)
 {
     spinlock_profile_ucopy_t *p = par;
diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
index 70ab3ba406ff..84cf52636bc4 100644
--- a/xen/common/vm_event.c
+++ b/xen/common/vm_event.c
@@ -523,21 +523,21 @@ int __vm_event_claim_slot(struct domain *d, struct vm_event_domain *ved,
 
 #ifdef CONFIG_MEM_PAGING
 /* Registered with Xen-bound event channel for incoming notifications. */
-static void mem_paging_notification(struct vcpu *v, unsigned int port)
+static void cf_check mem_paging_notification(struct vcpu *v, unsigned int port)
 {
     vm_event_resume(v->domain, v->domain->vm_event_paging);
 }
 #endif
 
 /* Registered with Xen-bound event channel for incoming notifications. */
-static void monitor_notification(struct vcpu *v, unsigned int port)
+static void cf_check monitor_notification(struct vcpu *v, unsigned int port)
 {
     vm_event_resume(v->domain, v->domain->vm_event_monitor);
 }
 
 #ifdef CONFIG_MEM_SHARING
 /* Registered with Xen-bound event channel for incoming notifications. */
-static void mem_sharing_notification(struct vcpu *v, unsigned int port)
+static void cf_check mem_sharing_notification(struct vcpu *v, unsigned int port)
 {
     vm_event_resume(v->domain, v->domain->vm_event_share);
 }
diff --git a/xen/common/xmalloc_tlsf.c b/xen/common/xmalloc_tlsf.c
index e3f6886e6b62..d2ad909502d0 100644
--- a/xen/common/xmalloc_tlsf.c
+++ b/xen/common/xmalloc_tlsf.c
@@ -512,13 +512,13 @@ int xmem_pool_maxalloc(struct xmem_pool *pool)
 
 static struct xmem_pool *xenpool;
 
-static void *xmalloc_pool_get(unsigned long size)
+static void *cf_check xmalloc_pool_get(unsigned long size)
 {
     ASSERT(size == PAGE_SIZE);
     return alloc_xenheap_page();
 }
 
-static void xmalloc_pool_put(void *p)
+static void cf_check xmalloc_pool_put(void *p)
 {
     free_xenheap_page(p);
 }
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 06b4d2b1fea0..cebcd68a6c04 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -1073,7 +1073,7 @@ static void * __init allocate_ppr_log(struct amd_iommu *iommu)
 #define IVRS_MAPPINGS_DEVTAB(m) (m)[ivrs_bdf_entries].intremap_table
 
 /* Gets passed to radix_tree_destroy(), so its param needs to be void *. */
-static void __init free_ivrs_mapping_callback(void *ptr)
+static void __init cf_check free_ivrs_mapping_callback(void *ptr)
 {
     const struct ivrs_mappings *ivrs_mappings = ptr;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232789.403834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawU-0004tK-Rl; Fri, 26 Nov 2021 13:07:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232789.403834; Fri, 26 Nov 2021 13:07:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawU-0004oh-8t; Fri, 26 Nov 2021 13:07:06 +0000
Received: by outflank-mailman (input) for mailman id 232789;
 Fri, 26 Nov 2021 13:07:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavk-0003W9-Lf
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:20 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a4486e1c-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4486e1c-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931979;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=1fjbUCy704jAqvZkS1xr/U+cwmAU8Nf/lqpWXLu6U00=;
  b=enbaqYIYPy1AuyrHbSPN/4S2Ff7hm1yVe0EAOq1l3qrSFcoWwKiQu32P
   aXsCzGucRPsGYT3h3KdrqPzjLgEcjNal0S0wxhAw+zArIX/Ria9JE8u+q
   jv7eeq1gNbPACxzndjaCrKRf+VTZiThxrB//5RqCid/yQm6w9nd+mjJLI
   c=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: xm5SIC1v00MKbrjx8rAQR840+L9k/+Mfv2qdy50VQrsOaGKOIRk3U1oCXRuZzSD2AtaiVzghH3
 De4pQeB1yzSeAxCp5CmXdt7lsYumuIdHfMXz2SNbyUrA7qhlU3V0lM14kVn3t8u2UDO+2YfT2N
 NXl0+Pr1gJtUvkBJBvGaD6fpil/oJ79MyoltluP6t5fFLLJYrJKk0SljDeA/QlYYlbzgN6t9wz
 4iqL7FiKKxLpwE0rwfBWTE6qGxHcrUnrzAM3sAZhCeCLdfmuCfbKxSyOdH+NoiEhsIpxY956tP
 XH2TJxBgDo6bGQZ2ojPDvqbb
X-SBRS: 5.1
X-MesageID: 59064069
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:4ewVbaxCsmEb9AO/XLp6t+f6wSrEfRIJ4+MujC+fZmUNrF6WrkUEz
 2EcWziHOqvbNmKnf9t1Ptm39R4BvZ7Uz9AwQVNv/yAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRn2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt/5By
 Opnv7afc1c4A4n+3+AmYxVmEAgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY25EWQ6qGO
 ZtxhTxHZiWYfBkVIxQuLbESrf6CoEb6LhZcgQfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krk1WnkBhARNPSE1CGItHmrg4fnjS79HY4fCrC83vprm0GIgHweDgUMUlm2quX/jVSxM++zM
 GRNpHBo9/JrshX2EJ+tBHVUvUJooDYya9pvOecQxzvd25fw0UGdPVgIcD1oPYlOWNANeRQm0
 VqAntXMDDNpsaGIRX/1yop4vQ9eKgBOczZcOHZsoR8tpoC6/dpt1k6nosNLSfbt1rXI9SfML
 ydmRcTUr5EaloY12qqy5jgraBr898GSHmbZCug6N19JDz+Vhqb5OORECnCBtJ6sybp1qHHa5
 xDofODEsYgz4WmlznDlfQn0NOjBCwy5GDPdm0VzOJIq6i6g/XWuFagJvmohdBk0bZdYJ2OyC
 KM2he+3zMQIVJdNRfUqC79d9uxwlfSwfTgbfqy8giVyjmhZK1bcoXAGib+41GHxikk8+ZzTy
 r/AGftA+U0yUPw9pBLvHr91+eZymkgWmDOCLbimnk/P+efPOxaopUItbQLmghYRt/jf/m04M
 r93aqO39vmoeLGkP3SMr9dMdQtiwLpSLcmelvG7v9WremJOcFzNwdeIqV/4U4A6zalTiMnS+
 XSxBh1RxFbl3CWVIgSWcHFzLrjoWM8n/348OCUtO3eu2mQiPtnzvPtOKcNvcOl17vFnwN51U
 +IBJ5eKDMNQR2mV4D8ad5T88tBvLUz5mQKUMiO5SzEjZJo8FRfR89rpc1K3pikDBya6r+Ukp
 Lik2l+JSJYPXV06Xs3XdOiu3xW6un1EwLB+WE7BI99yfkTw8dc1d3yt36Fve8xVcEfN3DqX0
 QqSECw0n+iVrt9n6sTNiICFs5ytT7l0EH1FEjSJ9r2xLyTboDaumNcSTOaScDnBf2ro46H+N
 /5NxvTxPfBbzlZHt41wT+Riwa4kvoa9orZbykJvHWnRbkTtAbRleyHU0c5Kv6xL57lYpQrpB
 R7fpogEYe2EaJH/DVocBAs5deDSh/gblw7b4ekxPEintjR8+6CKUBkKMhSB4MCHwGCZ7G/xL
 T8dhfMr
IronPort-HdrOrdr: A9a23:CuJwzKmauO8Uih+XhXSArznhYwnpDfIU3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE8Qr5OUtQ/+xoV5PhfZqxz/JICMwqTNKftWrdyQyVxeNZnOjfKlTbckWUnINgPO
 VbAsxD4bXLfCBHZK3BgTVQfexO/DD+ytHLudvj
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59064069"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 44/65] x86/shadow: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:25 +0000
Message-ID: <20211126123446.32324-45-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/mm/shadow/common.c  | 11 +++---
 xen/arch/x86/mm/shadow/hvm.c     |  8 ++--
 xen/arch/x86/mm/shadow/multi.c   | 80 ++++++++++++++++++++--------------------
 xen/arch/x86/mm/shadow/multi.h   | 20 +++++-----
 xen/arch/x86/mm/shadow/private.h | 12 +++---
 xen/arch/x86/mm/shadow/pv.c      |  4 +-
 6 files changed, 67 insertions(+), 68 deletions(-)

diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 8e51168e61b6..7cf6470ae8c3 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -1215,7 +1215,7 @@ void shadow_free(struct domain *d, mfn_t smfn)
  * This action is irreversible: the p2m mapping only ever grows.
  * That's OK because the p2m table only exists for translated domains,
  * and those domains can't ever turn off shadow mode. */
-static struct page_info *
+static struct page_info *cf_check
 shadow_alloc_p2m_page(struct domain *d)
 {
     struct page_info *pg;
@@ -1251,7 +1251,7 @@ shadow_alloc_p2m_page(struct domain *d)
     return pg;
 }
 
-static void
+static void cf_check
 shadow_free_p2m_page(struct domain *d, struct page_info *pg)
 {
     struct domain *owner = page_get_owner(pg);
@@ -2290,7 +2290,8 @@ void shadow_prepare_page_type_change(struct domain *d, struct page_info *page,
 /* Reset the up-pointers of every L3 shadow to 0.
  * This is called when l3 shadows stop being pinnable, to clear out all
  * the list-head bits so the up-pointer field is properly inititalised. */
-static int sh_clear_up_pointer(struct vcpu *v, mfn_t smfn, mfn_t unused)
+static int cf_check sh_clear_up_pointer(
+    struct vcpu *v, mfn_t smfn, mfn_t unused)
 {
     mfn_to_page(smfn)->up = 0;
     return 0;
@@ -2490,7 +2491,7 @@ static void sh_update_paging_modes(struct vcpu *v)
     v->arch.paging.mode->update_cr3(v, 0, false);
 }
 
-void shadow_update_paging_modes(struct vcpu *v)
+void cf_check shadow_update_paging_modes(struct vcpu *v)
 {
     paging_lock(v->domain);
     sh_update_paging_modes(v);
@@ -3075,7 +3076,7 @@ static bool flush_vcpu(const struct vcpu *v, const unsigned long *vcpu_bitmap)
 }
 
 /* Flush TLB of selected vCPUs.  NULL for all. */
-bool shadow_flush_tlb(const unsigned long *vcpu_bitmap)
+bool cf_check shadow_flush_tlb(const unsigned long *vcpu_bitmap)
 {
     static DEFINE_PER_CPU(cpumask_t, flush_cpumask);
     cpumask_t *mask = &this_cpu(flush_cpumask);
diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
index ea99dd714fc3..e99eb3432cce 100644
--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -797,9 +797,9 @@ sh_remove_all_shadows_and_parents(struct domain *d, mfn_t gmfn)
      * It means extra emulated writes and slows down removal of mappings. */
 }
 
-static void sh_unshadow_for_p2m_change(struct domain *d, unsigned long gfn,
-                                       l1_pgentry_t old, l1_pgentry_t new,
-                                       unsigned int level)
+static void cf_check sh_unshadow_for_p2m_change(
+    struct domain *d, unsigned long gfn, l1_pgentry_t old, l1_pgentry_t new,
+    unsigned int level)
 {
     mfn_t omfn = l1e_get_mfn(old);
     unsigned int oflags = l1e_get_flags(old);
@@ -882,7 +882,7 @@ static void sh_unshadow_for_p2m_change(struct domain *d, unsigned long gfn,
 }
 
 #if (SHADOW_OPTIMIZATIONS & SHOPT_FAST_FAULT_PATH)
-static void
+static void cf_check
 sh_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
 {
     struct domain *d = p2m->domain;
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index 7b8f4dd13b03..c1918e4e1f47 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -369,7 +369,7 @@ static void sh_audit_gw(struct vcpu *v, const walk_t *gw)
 
 #if GUEST_PAGING_LEVELS == 2
 /* From one page of a multi-page shadow, find the next one */
-static inline mfn_t sh_next_page(mfn_t smfn)
+static inline mfn_t cf_check sh_next_page(mfn_t smfn)
 {
     struct page_info *pg = mfn_to_page(smfn), *next;
     struct page_list_head h = PAGE_LIST_HEAD_INIT(h);
@@ -399,8 +399,7 @@ guest_index(void *ptr)
     return (u32)((unsigned long)ptr & ~PAGE_MASK) / sizeof(guest_l1e_t);
 }
 
-static u32
-shadow_l1_index(mfn_t *smfn, u32 guest_index)
+static u32 cf_check shadow_l1_index(mfn_t *smfn, u32 guest_index)
 {
 #if (GUEST_PAGING_LEVELS == 2)
     ASSERT(mfn_to_page(*smfn)->u.sh.head);
@@ -412,8 +411,7 @@ shadow_l1_index(mfn_t *smfn, u32 guest_index)
 #endif
 }
 
-static u32
-shadow_l2_index(mfn_t *smfn, u32 guest_index)
+static u32 cf_check shadow_l2_index(mfn_t *smfn, u32 guest_index)
 {
 #if (GUEST_PAGING_LEVELS == 2)
     int i;
@@ -432,14 +430,12 @@ shadow_l2_index(mfn_t *smfn, u32 guest_index)
 
 #if GUEST_PAGING_LEVELS >= 4
 
-static u32
-shadow_l3_index(mfn_t *smfn, u32 guest_index)
+static u32 cf_check shadow_l3_index(mfn_t *smfn, u32 guest_index)
 {
     return guest_index;
 }
 
-static u32
-shadow_l4_index(mfn_t *smfn, u32 guest_index)
+static u32 cf_check shadow_l4_index(mfn_t *smfn, u32 guest_index)
 {
     return guest_index;
 }
@@ -922,7 +918,7 @@ do {                                                                    \
 /**************************************************************************/
 /* Create a shadow of a given guest page.
  */
-static mfn_t
+static mfn_t cf_check
 sh_make_shadow(struct vcpu *v, mfn_t gmfn, u32 shadow_type)
 {
     struct domain *d = v->domain;
@@ -1457,7 +1453,8 @@ void sh_unhook_64b_mappings(struct domain *d, mfn_t sl4mfn, int user_only)
  */
 
 #if GUEST_PAGING_LEVELS >= 4
-static int validate_gl4e(struct vcpu *v, void *new_ge, mfn_t sl4mfn, void *se)
+static int cf_check validate_gl4e(
+    struct vcpu *v, void *new_ge, mfn_t sl4mfn, void *se)
 {
     shadow_l4e_t new_sl4e;
     guest_l4e_t new_gl4e = *(guest_l4e_t *)new_ge;
@@ -1516,7 +1513,8 @@ static int validate_gl4e(struct vcpu *v, void *new_ge, mfn_t sl4mfn, void *se)
 }
 
 
-static int validate_gl3e(struct vcpu *v, void *new_ge, mfn_t sl3mfn, void *se)
+static int cf_check validate_gl3e(
+    struct vcpu *v, void *new_ge, mfn_t sl3mfn, void *se)
 {
     struct domain *d = v->domain;
     shadow_l3e_t new_sl3e;
@@ -1550,7 +1548,8 @@ static int validate_gl3e(struct vcpu *v, void *new_ge, mfn_t sl3mfn, void *se)
 }
 #endif // GUEST_PAGING_LEVELS >= 4
 
-static int validate_gl2e(struct vcpu *v, void *new_ge, mfn_t sl2mfn, void *se)
+static int cf_check validate_gl2e(
+    struct vcpu *v, void *new_ge, mfn_t sl2mfn, void *se)
 {
     struct domain *d = v->domain;
     shadow_l2e_t new_sl2e;
@@ -1597,7 +1596,8 @@ static int validate_gl2e(struct vcpu *v, void *new_ge, mfn_t sl2mfn, void *se)
     return result;
 }
 
-static int validate_gl1e(struct vcpu *v, void *new_ge, mfn_t sl1mfn, void *se)
+static int cf_check validate_gl1e(
+    struct vcpu *v, void *new_ge, mfn_t sl1mfn, void *se)
 {
     struct domain *d = v->domain;
     shadow_l1e_t new_sl1e;
@@ -2087,8 +2087,8 @@ static DEFINE_PER_CPU(int,trace_extra_emulation_count);
 #endif
 static DEFINE_PER_CPU(guest_pa_t,trace_emulate_write_val);
 
-static void trace_emulate_write_val(const void *ptr, unsigned long vaddr,
-                                    const void *src, unsigned int bytes)
+static void cf_check trace_emulate_write_val(
+    const void *ptr, unsigned long vaddr, const void *src, unsigned int bytes)
 {
 #if GUEST_PAGING_LEVELS == 3
     if ( vaddr == this_cpu(trace_emulate_initial_va) )
@@ -2142,9 +2142,8 @@ static inline void trace_shadow_emulate(guest_l1e_t gl1e, unsigned long va)
  * shadow code (and the guest should retry) or 0 if it is not (and the
  * fault should be handled elsewhere or passed to the guest). */
 
-static int sh_page_fault(struct vcpu *v,
-                          unsigned long va,
-                          struct cpu_user_regs *regs)
+static int cf_check sh_page_fault(
+    struct vcpu *v, unsigned long va, struct cpu_user_regs *regs)
 {
     struct domain *d = v->domain;
     walk_t gw;
@@ -2896,7 +2895,7 @@ static int sh_page_fault(struct vcpu *v,
  * instruction should be issued on the hardware, or false if it's safe not
  * to do so.
  */
-static bool sh_invlpg(struct vcpu *v, unsigned long linear)
+static bool cf_check sh_invlpg(struct vcpu *v, unsigned long linear)
 {
     mfn_t sl1mfn;
     shadow_l2e_t sl2e;
@@ -3028,9 +3027,8 @@ static bool sh_invlpg(struct vcpu *v, unsigned long linear)
 
 #ifdef CONFIG_HVM
 
-static unsigned long
-sh_gva_to_gfn(struct vcpu *v, struct p2m_domain *p2m,
-    unsigned long va, uint32_t *pfec)
+static unsigned long cf_check sh_gva_to_gfn(
+    struct vcpu *v, struct p2m_domain *p2m, unsigned long va, uint32_t *pfec)
 /* Called to translate a guest virtual address to what the *guest*
  * pagetables would map it to. */
 {
@@ -3194,8 +3192,7 @@ sh_update_linear_entries(struct vcpu *v)
  * Removes v->arch.paging.shadow.shadow_table[].
  * Does all appropriate management/bookkeeping/refcounting/etc...
  */
-static void
-sh_detach_old_tables(struct vcpu *v)
+static void cf_check sh_detach_old_tables(struct vcpu *v)
 {
     struct domain *d = v->domain;
     mfn_t smfn;
@@ -3214,8 +3211,7 @@ sh_detach_old_tables(struct vcpu *v)
     }
 }
 
-static void
-sh_update_cr3(struct vcpu *v, int do_locking, bool noflush)
+static void cf_check sh_update_cr3(struct vcpu *v, int do_locking, bool noflush)
 /* Updates vcpu->arch.cr3 after the guest has changed CR3.
  * Paravirtual guests should set v->arch.guest_table (and guest_table_user,
  * if appropriate).
@@ -3523,7 +3519,8 @@ int sh_rm_write_access_from_sl1p(struct domain *d, mfn_t gmfn,
 #endif /* OOS */
 
 #if defined(CONFIG_HVM) && (SHADOW_OPTIMIZATIONS & SHOPT_WRITABLE_HEURISTIC)
-static int sh_guess_wrmap(struct vcpu *v, unsigned long vaddr, mfn_t gmfn)
+static int cf_check sh_guess_wrmap(
+    struct vcpu *v, unsigned long vaddr, mfn_t gmfn)
 /* Look up this vaddr in the current shadow and see if it's a writeable
  * mapping of this gmfn.  If so, remove it.  Returns 1 if it worked. */
 {
@@ -3587,8 +3584,8 @@ static int sh_guess_wrmap(struct vcpu *v, unsigned long vaddr, mfn_t gmfn)
 }
 #endif
 
-int sh_rm_write_access_from_l1(struct domain *d, mfn_t sl1mfn,
-                               mfn_t readonly_mfn)
+int cf_check sh_rm_write_access_from_l1(
+    struct domain *d, mfn_t sl1mfn, mfn_t readonly_mfn)
 /* Excises all writeable mappings to readonly_mfn from this l1 shadow table */
 {
     shadow_l1e_t *sl1e;
@@ -3624,7 +3621,8 @@ int sh_rm_write_access_from_l1(struct domain *d, mfn_t sl1mfn,
 }
 
 
-int sh_rm_mappings_from_l1(struct domain *d, mfn_t sl1mfn, mfn_t target_mfn)
+int cf_check sh_rm_mappings_from_l1(
+    struct domain *d, mfn_t sl1mfn, mfn_t target_mfn)
 /* Excises all mappings to guest frame from this shadow l1 table */
 {
     shadow_l1e_t *sl1e;
@@ -3675,7 +3673,7 @@ void sh_clear_shadow_entry(struct domain *d, void *ep, mfn_t smfn)
     }
 }
 
-int sh_remove_l1_shadow(struct domain *d, mfn_t sl2mfn, mfn_t sl1mfn)
+int cf_check sh_remove_l1_shadow(struct domain *d, mfn_t sl2mfn, mfn_t sl1mfn)
 /* Remove all mappings of this l1 shadow from this l2 shadow */
 {
     shadow_l2e_t *sl2e;
@@ -3698,7 +3696,7 @@ int sh_remove_l1_shadow(struct domain *d, mfn_t sl2mfn, mfn_t sl1mfn)
 }
 
 #if GUEST_PAGING_LEVELS >= 4
-int sh_remove_l2_shadow(struct domain *d, mfn_t sl3mfn, mfn_t sl2mfn)
+int cf_check sh_remove_l2_shadow(struct domain *d, mfn_t sl3mfn, mfn_t sl2mfn)
 /* Remove all mappings of this l2 shadow from this l3 shadow */
 {
     shadow_l3e_t *sl3e;
@@ -3720,7 +3718,7 @@ int sh_remove_l2_shadow(struct domain *d, mfn_t sl3mfn, mfn_t sl2mfn)
     return done;
 }
 
-int sh_remove_l3_shadow(struct domain *d, mfn_t sl4mfn, mfn_t sl3mfn)
+int cf_check sh_remove_l3_shadow(struct domain *d, mfn_t sl4mfn, mfn_t sl3mfn)
 /* Remove all mappings of this l3 shadow from this l4 shadow */
 {
     shadow_l4e_t *sl4e;
@@ -3750,7 +3748,7 @@ int sh_remove_l3_shadow(struct domain *d, mfn_t sl4mfn, mfn_t sl3mfn)
  * and in the meantime we unhook its top-level user-mode entries. */
 
 #if GUEST_PAGING_LEVELS == 3
-static void sh_pagetable_dying(paddr_t gpa)
+static void cf_check sh_pagetable_dying(paddr_t gpa)
 {
     struct vcpu *v = current;
     struct domain *d = v->domain;
@@ -3831,7 +3829,7 @@ static void sh_pagetable_dying(paddr_t gpa)
     put_gfn(d, l3gfn);
 }
 #else
-static void sh_pagetable_dying(paddr_t gpa)
+static void cf_check sh_pagetable_dying(paddr_t gpa)
 {
     struct vcpu *v = current;
     struct domain *d = v->domain;
@@ -3930,7 +3928,7 @@ static const char *sh_audit_flags(struct vcpu *v, int level,
     return NULL;
 }
 
-int sh_audit_l1_table(struct vcpu *v, mfn_t sl1mfn, mfn_t x)
+int cf_check sh_audit_l1_table(struct vcpu *v, mfn_t sl1mfn, mfn_t x)
 {
     guest_l1e_t *gl1e, *gp;
     shadow_l1e_t *sl1e;
@@ -3998,7 +3996,7 @@ int sh_audit_l1_table(struct vcpu *v, mfn_t sl1mfn, mfn_t x)
     return done;
 }
 
-int sh_audit_fl1_table(struct vcpu *v, mfn_t sl1mfn, mfn_t x)
+int cf_check sh_audit_fl1_table(struct vcpu *v, mfn_t sl1mfn, mfn_t x)
 {
     guest_l1e_t *gl1e, e;
     shadow_l1e_t *sl1e;
@@ -4024,7 +4022,7 @@ int sh_audit_fl1_table(struct vcpu *v, mfn_t sl1mfn, mfn_t x)
     return 0;
 }
 
-int sh_audit_l2_table(struct vcpu *v, mfn_t sl2mfn, mfn_t x)
+int cf_check sh_audit_l2_table(struct vcpu *v, mfn_t sl2mfn, mfn_t x)
 {
     struct domain *d = v->domain;
     guest_l2e_t *gl2e, *gp;
@@ -4076,7 +4074,7 @@ int sh_audit_l2_table(struct vcpu *v, mfn_t sl2mfn, mfn_t x)
 }
 
 #if GUEST_PAGING_LEVELS >= 4
-int sh_audit_l3_table(struct vcpu *v, mfn_t sl3mfn, mfn_t x)
+int cf_check sh_audit_l3_table(struct vcpu *v, mfn_t sl3mfn, mfn_t x)
 {
     struct domain *d = v->domain;
     guest_l3e_t *gl3e, *gp;
@@ -4124,7 +4122,7 @@ int sh_audit_l3_table(struct vcpu *v, mfn_t sl3mfn, mfn_t x)
     return 0;
 }
 
-int sh_audit_l4_table(struct vcpu *v, mfn_t sl4mfn, mfn_t x)
+int cf_check sh_audit_l4_table(struct vcpu *v, mfn_t sl4mfn, mfn_t x)
 {
     struct domain *d = v->domain;
     guest_l4e_t *gl4e, *gp;
diff --git a/xen/arch/x86/mm/shadow/multi.h b/xen/arch/x86/mm/shadow/multi.h
index 0bd6a2d5b787..5bcd6ae1a8da 100644
--- a/xen/arch/x86/mm/shadow/multi.h
+++ b/xen/arch/x86/mm/shadow/multi.h
@@ -59,10 +59,10 @@ extern void
 SHADOW_INTERNAL_NAME(sh_unhook_64b_mappings, GUEST_LEVELS)
     (struct domain *d, mfn_t sl4mfn, int user_only);
 
-extern int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_rm_write_access_from_l1, GUEST_LEVELS)
     (struct domain *d, mfn_t sl1mfn, mfn_t readonly_mfn);
-extern int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_rm_mappings_from_l1, GUEST_LEVELS)
     (struct domain *d, mfn_t sl1mfn, mfn_t target_mfn);
 
@@ -70,30 +70,30 @@ extern void
 SHADOW_INTERNAL_NAME(sh_clear_shadow_entry, GUEST_LEVELS)
     (struct domain *d, void *ep, mfn_t smfn);
 
-extern int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_remove_l1_shadow, GUEST_LEVELS)
     (struct domain *d, mfn_t sl2mfn, mfn_t sl1mfn);
-extern int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_remove_l2_shadow, GUEST_LEVELS)
     (struct domain *d, mfn_t sl3mfn, mfn_t sl2mfn);
-extern int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_remove_l3_shadow, GUEST_LEVELS)
     (struct domain *d, mfn_t sl4mfn, mfn_t sl3mfn);
 
 #if SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES
-int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_audit_l1_table, GUEST_LEVELS)
     (struct vcpu *v, mfn_t sl1mfn, mfn_t x);
-int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_audit_fl1_table, GUEST_LEVELS)
     (struct vcpu *v, mfn_t sl1mfn, mfn_t x);
-int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_audit_l2_table, GUEST_LEVELS)
     (struct vcpu *v, mfn_t sl2mfn, mfn_t x);
-int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_audit_l3_table, GUEST_LEVELS)
     (struct vcpu *v, mfn_t sl3mfn, mfn_t x);
-int
+int cf_check
 SHADOW_INTERNAL_NAME(sh_audit_l4_table, GUEST_LEVELS)
     (struct vcpu *v, mfn_t sl4mfn, mfn_t x);
 #endif
diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h
index e4db8d32546a..3dc024e30f20 100644
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -420,15 +420,15 @@ static inline int sh_remove_write_access(struct domain *d, mfn_t readonly_mfn,
 #endif
 
 /* Functions that atomically write PV guest PT entries */
-void sh_write_guest_entry(struct vcpu *v, intpte_t *p, intpte_t new,
-                          mfn_t gmfn);
-intpte_t sh_cmpxchg_guest_entry(struct vcpu *v, intpte_t *p, intpte_t old,
-                                intpte_t new, mfn_t gmfn);
+void cf_check sh_write_guest_entry(
+    struct vcpu *v, intpte_t *p, intpte_t new, mfn_t gmfn);
+intpte_t cf_check sh_cmpxchg_guest_entry(
+    struct vcpu *v, intpte_t *p, intpte_t old, intpte_t new, mfn_t gmfn);
 
 /* Update all the things that are derived from the guest's CR0/CR3/CR4.
  * Called to initialize paging structures if the paging mode
  * has changed, and when bringing up a VCPU for the first time. */
-void shadow_update_paging_modes(struct vcpu *v);
+void cf_check shadow_update_paging_modes(struct vcpu *v);
 
 /* Unhook the non-Xen mappings in this top-level shadow mfn.
  * With user_only == 1, unhooks only the user-mode mappings. */
@@ -922,7 +922,7 @@ static inline int sh_check_page_has_no_refs(struct page_info *page)
 }
 
 /* Flush the TLB of the selected vCPUs. */
-bool shadow_flush_tlb(const unsigned long *vcpu_bitmap);
+bool cf_check shadow_flush_tlb(const unsigned long *vcpu_bitmap);
 
 #endif /* _XEN_SHADOW_PRIVATE_H */
 
diff --git a/xen/arch/x86/mm/shadow/pv.c b/xen/arch/x86/mm/shadow/pv.c
index f51f980f2694..ed10d5479c5e 100644
--- a/xen/arch/x86/mm/shadow/pv.c
+++ b/xen/arch/x86/mm/shadow/pv.c
@@ -28,7 +28,7 @@
  * Write a new value into the guest pagetable, and update the shadows
  * appropriately.
  */
-void
+void cf_check
 sh_write_guest_entry(struct vcpu *v, intpte_t *p, intpte_t new, mfn_t gmfn)
 {
     paging_lock(v->domain);
@@ -42,7 +42,7 @@ sh_write_guest_entry(struct vcpu *v, intpte_t *p, intpte_t new, mfn_t gmfn)
  * appropriately.  Returns the previous entry found, which the caller is
  * expected to check to see if the cmpxchg was successful.
  */
-intpte_t
+intpte_t cf_check
 sh_cmpxchg_guest_entry(struct vcpu *v, intpte_t *p, intpte_t old,
                        intpte_t new, mfn_t gmfn)
 {
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232792.403853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawY-0005Xu-P3; Fri, 26 Nov 2021 13:07:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232792.403853; Fri, 26 Nov 2021 13:07:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawX-0005U3-FL; Fri, 26 Nov 2021 13:07:09 +0000
Received: by outflank-mailman (input) for mailman id 232792;
 Fri, 26 Nov 2021 13:07:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavo-0003W9-JO
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:24 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7af74ef-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7af74ef-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931983;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=6MkSkTdCAehsaJLlFHgLLk6HFoheo0WWaEyuCz1hHYs=;
  b=CWU/iHricrdMAINFI+Dg1xmfr+rMna2wLk2Xq5zjN/7V0r5mJmSeDi1h
   kBRrx6MuZBvnTrqfmFizQ6b+ylr/eeGaGC//EykAwc8RbjinSqpsMnX0F
   yRWd2cIAya0fuBC11uTsYMhI0uGz8BVfMKQwuBdQ1w6wuocyDHm+OgwXV
   w=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 6Uj1SgDZB8dlL8kof0Ub0RanFk182/i9EBEkH1wmMSg6aZU5qqTTgAtKW/UV9ePcNSjr2OAAcc
 Bec1Kjz1DUoj7s+yHakh4NGtsGIPGxgU/i3kLDN5a+tNgda1BkNfbJgRGfgdFu5ZYtEJVKvhkr
 slrJeM/LSJ5XbXX2JjjuUt2wvxbOd2TDjChniwwHNFW+BSdH1qjTjhlzYsnO5+uPen/nZufS7r
 4EOczLmXUXJ7unQnKYcb6U2SuZLpduV1JZ7f0Irh7620oHhiQIaJoElHsm2u68HhYhumIYIm/j
 kZbybqsumRzN4q56AMge7aXu
X-SBRS: 5.1
X-MesageID: 59064074
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:hQEqaqJwtaVGP1kuFE+RHJIlxSXFcZb7ZxGr2PjKsXjdYENShTcAz
 jMaDW2EafiLYDPzKIhxPtmxoEsEu8fXmNBnTwplqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2Gpolq9
 9hSkaW1UD11PLLwnrU4ShdHRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gph3p4SRamCD
 yYfQRR3aVPRUjNvBk1NGrAVsNnxrXrPLCIN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wh
 EjL4mD4CREyL8GExHyO9XfErv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaDt8l3c
 hJOvHB09O5rqRLtHoKVswCETGCssSdFQOVdDMkD7Ri3lqjL3wDII3EKUWsUADA5j/MeSTsv3
 16PutrmAz1zrbGYIU6gGqeoQSCaYnZMczJbDcMQZU5cuoS4/tlv5v7aZo87SPbdszHjJd3nL
 9lmRgAajq5bs8ME3r7TEbvv02P1/cihouLYC2zqsoOZAuFRONHNi2+AswGzARN8wGCxFQLpU
 J8swZX20Qz2JcvR/BFhuc1UdF1T296LMSfHnXlkFIQ7+jKm9haLJN4Lv2EgeRg4bphYIlcFh
 XM/XysKv/e/21PwMMdKj3+ZUZx2ncAM6/y5PhwrUja+SscoL1LWlM2fTUWRw3rsgCARfVIXY
 v+mnTKXJS9CU8xPlWPuL89EiOND7n1ulAv7GMGgpzz6gOX2WZJgYepcWLd4Rrtit/3sTcS82
 4s3CvZmPD0DCrCjOXeOrtZIRb3IRFBiba3LRwVsXrbrCmJb9KsJUpc9GJstJN5ombp7jODN8
 i3vU0NU0gOn13bGNR+LejZob7a2BcRzqncyPCoNO1e02id8PdbzvflHL5ZnL6M68OFDzOJvS
 6VXccu3HfkSGC/M/C4QbMehodU6Jgirnw+HIwGsfCM7I8x7XwXM99K9Jlnv+SACAzCZr8w7p
 7H8hArXTYBaH1ZpDdrMaeLpxFS05CBPlOV3VkrOA99SZESzr9Q6d32v1qc6epheJw/Cyz2W0
 xetLS0Z/eSd8ZUo9NTphLyfq9v7GeVJAUcHTXLQ6qy7NHeG8zP7k5NASuuBYRvUSHjwpPe5f
 exQwvzxbK8HkVJNv9YuGrpn1/tjtd7mprscxQV4BnTbKV+sD+o4cHWB2MBOsIxLx6NY5lTqC
 h7epIECNOXbIt7hHX4QOBEhP7aK2vwjkzXP6eg4fRfh7yht8bvbCUhfMnFgUsCGwGeZ5G/9/
 dochQ==
IronPort-HdrOrdr: A9a23:IWYawK0UWCXXIc7JANKjKwqjBIokLtp133Aq2lEZdPRUGvb3qy
 nIpoVj6faUskd2ZJhOo7C90cW7LU80sKQFhLX5Xo3SOzUO2lHYT72KhLGKq1aLdhEWtNQtsZ
 uIG5IOcOEYZmIasS+V2maF+q4bsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59064074"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 43/65] x86/logdirty: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:24 +0000
Message-ID: <20211126123446.32324-44-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/mm/hap/hap.c       |  6 +++---
 xen/arch/x86/mm/shadow/common.c | 12 ++++++------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index de4b13565ab4..ed5112b00b63 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -180,7 +180,7 @@ int hap_track_dirty_vram(struct domain *d,
  * NB: Domain that having device assigned should not set log_global. Because
  * there is no way to track the memory updating from device.
  */
-static int hap_enable_log_dirty(struct domain *d, bool_t log_global)
+static int cf_check hap_enable_log_dirty(struct domain *d, bool log_global)
 {
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
 
@@ -211,7 +211,7 @@ static int hap_enable_log_dirty(struct domain *d, bool_t log_global)
     return 0;
 }
 
-static int hap_disable_log_dirty(struct domain *d)
+static int cf_check hap_disable_log_dirty(struct domain *d)
 {
     paging_lock(d);
     d->arch.paging.mode &= ~PG_log_dirty;
@@ -228,7 +228,7 @@ static int hap_disable_log_dirty(struct domain *d)
     return 0;
 }
 
-static void hap_clean_dirty_bitmap(struct domain *d)
+static void cf_check hap_clean_dirty_bitmap(struct domain *d)
 {
     /*
      * Switch to log-dirty mode, either by setting l1e entries of P2M table to
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 03bcd9518c39..8e51168e61b6 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -40,9 +40,9 @@
 
 DEFINE_PER_CPU(uint32_t,trace_shadow_path_flags);
 
-static int sh_enable_log_dirty(struct domain *, bool log_global);
-static int sh_disable_log_dirty(struct domain *);
-static void sh_clean_dirty_bitmap(struct domain *);
+static int cf_check sh_enable_log_dirty(struct domain *, bool log_global);
+static int cf_check sh_disable_log_dirty(struct domain *);
+static void cf_check sh_clean_dirty_bitmap(struct domain *);
 
 /* Set up the shadow-specific parts of a domain struct at start of day.
  * Called for every domain from arch_domain_create() */
@@ -3016,7 +3016,7 @@ static int shadow_test_disable(struct domain *d)
 /* Shadow specific code which is called in paging_log_dirty_enable().
  * Return 0 if no problem found.
  */
-static int sh_enable_log_dirty(struct domain *d, bool log_global)
+static int cf_check sh_enable_log_dirty(struct domain *d, bool log_global)
 {
     int ret;
 
@@ -3044,7 +3044,7 @@ static int sh_enable_log_dirty(struct domain *d, bool log_global)
 }
 
 /* shadow specfic code which is called in paging_log_dirty_disable() */
-static int sh_disable_log_dirty(struct domain *d)
+static int cf_check sh_disable_log_dirty(struct domain *d)
 {
     int ret;
 
@@ -3058,7 +3058,7 @@ static int sh_disable_log_dirty(struct domain *d)
 /* This function is called when we CLEAN log dirty bitmap. See
  * paging_log_dirty_op() for details.
  */
-static void sh_clean_dirty_bitmap(struct domain *d)
+static void cf_check sh_clean_dirty_bitmap(struct domain *d)
 {
     paging_lock(d);
     /* Need to revoke write access to the domain's pages again.
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232804.403879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawg-0007Da-4f; Fri, 26 Nov 2021 13:07:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232804.403879; Fri, 26 Nov 2021 13:07:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawf-00079D-9c; Fri, 26 Nov 2021 13:07:17 +0000
Received: by outflank-mailman (input) for mailman id 232804;
 Fri, 26 Nov 2021 13:07:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaug-0003W9-B4
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:14 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7cd3963a-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7cd3963a-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931912;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=746QsnWin6OQb455qcVFN7IMD2ME3Bl0zmu1yTWBR/k=;
  b=boJok758E2DbyrfNGsW0K1nD22EK5GW2Bcuw0nD1yPlPRuZpjsf4PIUu
   HBDjCjuiiKOLt5h8ylvzUeFpJu4z9biPxhqkJKRwVWEhTEp26iTvX9x1S
   8sld+K90/oocxAWyJeWT076QSejlbdn/JS9nPEZXVSu6mXa6bsSi0M7IQ
   k=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: RyIhBz+rJqLuLebsns2cQNRKoum3qY911Ub6CMBIynZx3p5kShJvORwI91t6gtehNJ26EdxU03
 px/lmGMXc+gxRK3BkN6AOEtTbE0pmjZu4R3JBAL/8nMekGs0OHyjZygwW0Xk5w48+Xvs1ze8Ce
 Lh2A3sTDRyZ14ZsVBEv1hnxVuxo7X06Z1h/836QHxzA/cjiqtPxBGLEnteV2sp+0gjmjQkJiaE
 koGsWUDo9GSWVaBYUfwtkv1EuM2U3oM10DKeQRlq69OuIwAM++xs+7YjKfzKkm70iq/vfVchhI
 U8LLK9h6AJNCGf29C68NHG4q
X-SBRS: 5.1
X-MesageID: 58193786
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:R5X73qhfWJcu/mk7Z9PhZS6iX161rRcKZh0ujC45NGQN5FlHY01je
 htvCjyGOPuMMWX8fdl1bN7l9h9X7J7SztBjSAtk/ygzEn4b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy34Dja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1W9o6wSV8LDJbrv/saWAdmKAF8G5J/reqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNauOP
 ptCNmoxBPjGSwVPCH4RAZZkoOCtplDAcGRq9RGL/4NitgA/yyQuieOwYbI5YOeiWsF9jkue4
 GXc8AzRIDsXKdiewjqt6W+3i6nEmiaTcJIfEvi0++BnhHWXx3cPE1sGWF2ju/67h0WiHdVFJ
 CQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4CK4o6AHV6JjvxCGGAWMacAVhavoZjZpjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swJP2AAcmV8zlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybZZaJGC4P
 BGP4mu9AaO/2lPxNsebhKrrVqwXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDlJI5fsLXkJIeSJRoxZybXF+
 G+TQEhdxAatjHHLM1zSOHtidKnuTdB0qndiZX4gOlOh2n4CZ4ez7fhAK8trLOd/rOEzn+RpS
 /QletmbBqgdQDrw5DlAP4L2q5ZvdUr3iFvWbTalejU2Y7VpWxfNpo3/ZgLq+SRXVni3uMIyr
 qeOzATeRZZfFQ1uANyPMKCkzk+rvGhbk+V3BhOaLt5WcUTq0Y5rNy2u0aNnf5BScU3On2LI2
 RyXDBEUofj2j7U0qNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVtH79h8HrJswf5s7tfjveYHnAFtHXGNZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQy2vb4vkCKUnn4DN6oeicWkJIMhjQ0CFQIdOZ6m/+L
 TvNbCLO1zGCtw==
IronPort-HdrOrdr: A9a23:dIgVs6hpd+3gt94YCVDXHWLOD3BQXuIji2hC6mlwRA09TySZ//
 rBoB19726MtN9xYgBHpTnuAsm9qB/nmaKdpLNhWItKPzOW31dATrsSjrcKqgeIc0aVm9K1l5
 0QF5SWYOeAdWSS5vya3ODXKbkdKaG8gcKVuds=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58193786"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 65/65] x86: Enable CET Indirect Branch Tracking
Date: Fri, 26 Nov 2021 12:34:46 +0000
Message-ID: <20211126123446.32324-66-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

With all the pieces now in place, turn CET-IBT on when available.

MSR_S_CET, like SMEP/SMAP, controls Ring1 meaning that ENDBR_EN can't be
enabled for Xen independently of PV32 kernels.  As we already disable PV32 for
CET-SS, extend this to all CET, adjusting the documentation/comments as
appropriate.

Introduce a cet=no-ibt command line option to allow the admin to disable IBT
even when everything else is configured correctly.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 docs/misc/xen-command-line.pandoc | 16 +++++++++++----
 xen/arch/x86/cpu/common.c         |  1 +
 xen/arch/x86/setup.c              | 42 ++++++++++++++++++++++++++++++++++-----
 3 files changed, 50 insertions(+), 9 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index f7797ea233f9..ea033c1a1d74 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -271,7 +271,7 @@ enough. Setting this to a high value may cause boot failure, particularly if
 the NMI watchdog is also enabled.
 
 ### cet
-    = List of [ shstk=<bool> ]
+    = List of [ shstk=<bool>, ibt=<bool> ]
 
     Applicability: x86
 
@@ -279,6 +279,10 @@ Controls for the use of Control-flow Enforcement Technology.  CET is group a
 of hardware features designed to combat Return-oriented Programming (ROP, also
 call/jmp COP/JOP) attacks.
 
+CET is incompatible with 32bit PV guests.  If any CET sub-options are active,
+they will override the `pv=32` boolean to `false`.  Backwards compatibility
+can be maintained with the `pv-shim` mechanism.
+
 *   The `shstk=` boolean controls whether Xen uses Shadow Stacks for its own
     protection.
 
@@ -287,9 +291,13 @@ call/jmp COP/JOP) attacks.
     `cet=no-shstk` will cause Xen not to use Shadow Stacks even when support
     is available in hardware.
 
-    Shadow Stacks are incompatible with 32bit PV guests.  This option will
-    override the `pv=32` boolean to false.  Backwards compatibility can be
-    maintained with the `pv-shim` mechanism.
+*   The `ibt=` boolean controls whether Xen uses Indirect Branch Tracking for
+    its own protection.
+
+    The option is available when `CONFIG_XEN_IBT` is compiled in, and defaults
+    to `true` on hardware supporting CET-IBT.  Specifying `cet=no-ibt` will
+    cause Xen not to use Indirect Branch Tracking even when support is
+    available in hardware.
 
 ### clocksource (x86)
 > `= pit | hpet | acpi | tsc`
diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 7c41a21bf07c..9658c31cab48 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -345,6 +345,7 @@ void __init early_cpu_init(void)
 	if (c->cpuid_level >= 7) {
 		cpuid_count(7, 0, &eax, &ebx, &ecx, &edx);
 		c->x86_capability[cpufeat_word(X86_FEATURE_CET_SS)] = ecx;
+		c->x86_capability[cpufeat_word(X86_FEATURE_CET_IBT)] = edx;
 	}
 
 	eax = cpuid_eax(0x80000000);
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index daaba097d57f..6cec1918f66b 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -102,6 +102,12 @@ static bool __initdata opt_xen_shstk = true;
 #define opt_xen_shstk false
 #endif
 
+#ifdef CONFIG_XEN_IBT
+static bool __initdata opt_xen_ibt = true;
+#else
+#define opt_xen_ibt false
+#endif
+
 static int __init cf_check parse_cet(const char *s)
 {
     const char *ss;
@@ -120,6 +126,14 @@ static int __init cf_check parse_cet(const char *s)
             no_config_param("XEN_SHSTK", "cet", s, ss);
 #endif
         }
+        else if ( (val = parse_boolean("ibt", s, ss)) >= 0 )
+        {
+#ifdef CONFIG_XEN_IBT
+            opt_xen_ibt = val;
+#else
+            no_config_param("XEN_IBT", "cet", s, ss);
+#endif
+        }
         else
             rc = -EINVAL;
 
@@ -1102,11 +1116,33 @@ void __init noreturn __start_xen(unsigned long mbi_p)
         printk("Enabling Supervisor Shadow Stacks\n");
 
         setup_force_cpu_cap(X86_FEATURE_XEN_SHSTK);
+    }
+
+    if ( opt_xen_ibt && boot_cpu_has(X86_FEATURE_CET_IBT) )
+    {
+        printk("Enabling Indirect Branch Tracking\n");
+
+        setup_force_cpu_cap(X86_FEATURE_XEN_IBT);
+
+        if ( efi_no_cet_ibt )
+            printk("  - UEFI Runtime Services not IBT safe\n");
+
+        /*
+         * Enable IBT now.  Only require the ENDBR64 on callees, which is
+         * entirely build-time arrangements.
+         */
+        wrmsrl(MSR_S_CET, CET_ENDBR_EN);
+    }
+
+    if ( cpu_has_xen_shstk || cpu_has_xen_ibt )
+    {
+        set_in_cr4(X86_CR4_CET);
+
 #ifdef CONFIG_PV32
         if ( opt_pv32 )
         {
             opt_pv32 = 0;
-            printk("  - Disabling PV32 due to Shadow Stacks\n");
+            printk("  - Disabling PV32 due to CET\n");
         }
 #endif
     }
@@ -1863,10 +1899,6 @@ void __init noreturn __start_xen(unsigned long mbi_p)
 
     alternative_branches();
 
-    /* Defer CR4.CET until alternatives have finished playing with CR0.WP */
-    if ( cpu_has_xen_shstk )
-        set_in_cr4(X86_CR4_CET);
-
     /*
      * NB: when running as a PV shim VCPUOP_up/down is wired to the shim
      * physical cpu_add/remove functions, so launch the guest with only
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232807.403886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawh-0007UF-Nw; Fri, 26 Nov 2021 13:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232807.403886; Fri, 26 Nov 2021 13:07:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawg-0007PP-QN; Fri, 26 Nov 2021 13:07:18 +0000
Received: by outflank-mailman (input) for mailman id 232807;
 Fri, 26 Nov 2021 13:07:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauq-0002zD-6z
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:24 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 831785f6-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:05:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 831785f6-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931922;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=w8x1lrOFlbNAGePhZZD3cYzZny3J+Uxt4VjkYNuWyfk=;
  b=QbzIJNFnARaR6TaflbPuuK85DXGY3Nefxybymts9XmnMaAULG1PDbDn9
   x78mXTX7qnlQfMMqZ682P8witIDZ0p54Q/FH8KvE/AShdAlfv8Wvr4OAE
   E/EHcv8CRpOfECdUSQYgXBsEwBWtxRIW1ILrpY6qHiQrsavwA1VvJ7E8Y
   4=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: U7OSD1qpbf/GiJTD9ozKCW8kBmRN5ASqB3ZPnKh5fIg2hTwzyN2DcmU3+BIMPsz311GmA9Bq4Z
 patuyWGAElHo549NuyRS1SVVNjUeA/Baeva48yuOXUEqbvUcBA6vrATOlMJ5IT6KpZr6GbU0QY
 Qo1wASduyQF1k9rKkly5qbhWy8r7+jejtnsluGKApnrRydF1y35YDHB6V27qEvlv0qepAMfVOL
 JSpKyARoS6WzIS8Lzn8UzxE2wPT8g4FMRgp2amfKTGJEUtXxnWpJSJeFA4F/bW5XJNexZoPhmD
 8oGb9tac8AiqTu4k6yqowx9V
X-SBRS: 5.1
X-MesageID: 58695989
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:tSqAv65RX89VO1zni2V70wxRtPXAchMFZxGqfqrLsTDasY5as4F+v
 mQWCmiFP6uKazegf9ElaI61/BhTv5DRx4VjGVRl+C8zHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z9
 d5LloOsESoSE4bJuuglDhxCDXliIvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTaiPO
 ptJOFKDajzgPj9QZ3BGLasZu+2ii1vFSBl08k2K8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u10bTDwweNdef4SGY6X/qjejK9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc+dbFc4l9Fmg8Yf/5iSVPjUBVCAZdMNz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVnl
 CNf8yR5xLpTZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxg5bJtbKGO3P
 BS7VeZtCHl7ZyDCgUhfOd/ZNijX5fK4SYSNug78MrKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI+cElJNhMb6epJl1VNk/sHm+HW0
 Gu6X0MEmlPziWeecVeBa2x5aaOpVpF69CppMSspNFeu+n4ifYfws/tPK8ppJeEqpL550Pp5b
 /gZYMHcUP5BfSvKpmYGZp7noY08KBny3VCSPzCoaSQUdoJ7Q1Cb4cftewbirXFcDie+ucYkj
 aen0wfXHcgKSwh4VZ6EY/Oz1VKh+3ManbsqDUfPJ9BSfmTq8ZRrdHOt3qNmfZlUJEyalDWA1
 guQDRMJnsX3otc4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKkQoYs4d4FLo3n6sy68G2+u1fxwVgWn7Kc06qGvVrJXzfhZtDsahEx7l4vwqqW
 x3QpokGaOvRYM61QkQMIAcFb/iY0aBGkzbf2v05PUHm6XIl57GAS0hTY0GBhSE1wGGZ62/5L
 TPNYPIr1jE=
IronPort-HdrOrdr: A9a23:xyGiJa5VppSnQ0u8eQPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HWoB17726TtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QC5SWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58695989"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 51/65] x86/pt: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:32 +0000
Message-ID: <20211126123446.32324-52-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/emul-i8254.c | 2 +-
 xen/arch/x86/hvm/hpet.c   | 2 +-
 xen/arch/x86/hvm/rtc.c    | 2 +-
 xen/arch/x86/hvm/vlapic.c | 4 ++--
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c
index d170f464d966..18894b63488e 100644
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -156,7 +156,7 @@ static int pit_get_gate(PITState *pit, int channel)
     return pit->hw.channels[channel].gate;
 }
 
-static void pit_time_fired(struct vcpu *v, void *priv)
+static void cf_check pit_time_fired(struct vcpu *v, void *priv)
 {
     uint64_t *count_load_time = priv;
     TRACE_0D(TRC_HVM_EMUL_PIT_TIMER_CB);
diff --git a/xen/arch/x86/hvm/hpet.c b/xen/arch/x86/hvm/hpet.c
index ed512fa65b63..45c7b9b40688 100644
--- a/xen/arch/x86/hvm/hpet.c
+++ b/xen/arch/x86/hvm/hpet.c
@@ -219,7 +219,7 @@ static void hpet_stop_timer(HPETState *h, unsigned int tn,
     hpet_get_comparator(h, tn, guest_time);
 }
 
-static void hpet_timer_fired(struct vcpu *v, void *data)
+static void cf_check hpet_timer_fired(struct vcpu *v, void *data)
 {
     unsigned int tn = (unsigned long)data;
     HPETState *h = vcpu_vhpet(v);
diff --git a/xen/arch/x86/hvm/rtc.c b/xen/arch/x86/hvm/rtc.c
index ed397276faa3..d21925db08bc 100644
--- a/xen/arch/x86/hvm/rtc.c
+++ b/xen/arch/x86/hvm/rtc.c
@@ -81,7 +81,7 @@ static void rtc_update_irq(RTCState *s)
 
 /* Called by the VPT code after it's injected a PF interrupt for us.
  * Fix up the register state to reflect what happened. */
-static void rtc_pf_callback(struct vcpu *v, void *opaque)
+static void cf_check rtc_pf_callback(struct vcpu *v, void *opaque)
 {
     RTCState *s = opaque;
 
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index d4e29ef1ff1d..49be9c8ea4fe 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -691,13 +691,13 @@ int guest_rdmsr_x2apic(const struct vcpu *v, uint32_t msr, uint64_t *val)
     return X86EMUL_OKAY;
 }
 
-static void vlapic_pt_cb(struct vcpu *v, void *data)
+static void cf_check vlapic_pt_cb(struct vcpu *v, void *data)
 {
     TRACE_0D(TRC_HVM_EMUL_LAPIC_TIMER_CB);
     *(s_time_t *)data = hvm_get_guest_time(v);
 }
 
-static void vlapic_tdt_pt_cb(struct vcpu *v, void *data)
+static void cf_check vlapic_tdt_pt_cb(struct vcpu *v, void *data)
 {
     *(s_time_t *)data = hvm_get_guest_time(v);
     vcpu_vlapic(v)->hw.tdt_msr = 0;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232817.403896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawk-0008JG-5N; Fri, 26 Nov 2021 13:07:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232817.403896; Fri, 26 Nov 2021 13:07:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawj-0008Hy-VL; Fri, 26 Nov 2021 13:07:21 +0000
Received: by outflank-mailman (input) for mailman id 232817;
 Fri, 26 Nov 2021 13:07:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavP-0002zD-Li
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:59 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98288177-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:05:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98288177-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931958;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=vtDK4Lm6UnR4ZAbcZE6B6lPCfdnsXXgGlR9U+vikoZM=;
  b=AIcPW41nh3a5BIwylumcuTNrXtqDKetx0T0KT+wQ+YJO4A4/owpCAlyz
   FAgyiFE9+WsEd6FGrKgF917yFgJSSYgpw+kcOp0nMMjLbJ0SflT0pMcTz
   CWRpZ1j+nCaKokL6KIPivf+mmucyZgoauTuXfi30geeedwYhTnay8PWx6
   s=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Y0EDDO3sfh+2/6bNtzn3Z3M6c3FySYttdkmzca9t+jQBfprYKF8wGjbHTU2jkld97GTWGBCEQt
 KNlRxsJlINk6fy3efVuKiiv6vgrxtFIBYhCAQ6Ts0Rd6PJNZkro3oFMbk/G668fGW/YGx8V8/K
 3YNxGdEsmhXvPhr5IKFFud01N3rKcMuphyUzMXuDqXauPiu51l1xYv0GW2ogQMruL+uciYf3hE
 255OBVmT/e5KCHkZqSHZ4wvNG7j9BBNJmGHrtFHtWfzm/SIidJjVCYLuXas7NNmw4vNCrN94pc
 7/kVGvBe8Z+TzzJIFIjDrp5L
X-SBRS: 5.1
X-MesageID: 58696027
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LmiHgaDjct/1QxVW/+Tkw5YqxClBgxIJ4kV8jS/XYbTApD5w1jcBy
 jcbD2CDMvbZYTPxeI8iOdizoEhVv57XyNRmQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX5400w7wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/ggiZjv5uz
 Od35ZGNcj4jIL/l39U0TEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjGlh2JgUQp4yY
 eJIZDZsQQnKTSEXZH0ONqAwnsiWuF7WJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tmSyq
 3/C/m/5KgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRt6Klc4sBc
 QpOoHNo9PVsshzwJjXgY/GmiHe5rg8yRN5iKb031Tq0wLTGykGoL3dRG1atd+canMMxQDUr0
 HqAkNXoGSFjvdWpdJ6NyluHhWjsYHZIdAfucQdBFFJYuIe7/OnfmzqWFo47eJNZmOEZDt0ZL
 9qiiCElz4segscQv0lQ1QCW2mn8znQlo+Nc2+k2Yo5Hxl8mDGJGT9bxgbQ+0RqmBN3CJrVml
 CJZ8/VyFMhUUfmweNWlGY3h5o2B6fefKyH7ilVyBZQn/DnF0yf9Jt8AvmwhdRs3bp1sldrVj
 Kn74lg5CHh7ZibCUEOKS9jpV5RCIVbISbwJqcw4nvIRO8MsJWdrDQllZFKK3nCFraTfufpXB
 HtvSu71VSxyIf0+lFKeHr5BuZd2lnFW7T6CHvjTkkX4uYdykVbIEN/pxnPVNbtnhE5FyS2Im
 +ti2zyil08CDbagO3aPqub+7zkidBAGOHw/kOQPHsbrH+asMDhJ5yb5zexzdop7sb5Sk+uUr
 HixVlUBkAj0hGHdKBXMYXdmMeu9UZF6pHM9HCotIVf3hCRzPdfxtP8SJ8ktYL0q1O1/1vooH
 fMLTNqNX6ZUQTPd9jVDMZSk9N5+dA6mjB6lNja+ZGRtZIZpQgHEo4e2fgbm+CQUIDCwsM8y/
 ++p2g/BGMJRTAV+FsfGLvmoygrp73QanetzWWrOI8VSJxqwoNQ7dXSpg6Zucc8WKBjFyj+L7
 CqsAE8V9bvXvos40NjVnqTY/Y2nJPRzQxhBFG7B4LfoaSSDpji/wZVNWfqjdCzGUD+m472rY
 OhYwq2uMPADm1oW4YNwH6wykPA77trr4bRb0h5lDDPAaFHyUuFsJXyP3M9usKxRx+AG5VvqC
 xzXotQKa6+UPM7FEUIKIFt3Z+uO4vgYhz3O4KlnO079/iJ2oOKKXEg608NgU8CBwG+Z6L8Y/
 No=
IronPort-HdrOrdr: A9a23:9bD1Q65MZhzjqF9AEgPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HWoB17726TtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QC5SWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58696027"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 62/65] x86/entry: Make IDT entrypoints CET-IBT compatible
Date: Fri, 26 Nov 2021 12:34:43 +0000
Message-ID: <20211126123446.32324-63-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Each IDT vector needs to land on an endbr64 instruction.  This is especially
important for the #CP handler, which will escalate to #DF if the endbr64 is
missing.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/x86_64/compat/entry.S |  1 +
 xen/arch/x86/x86_64/entry.S        | 28 ++++++++++++++++++++++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S
index c84ff7ea6476..5fd6dbbd4513 100644
--- a/xen/arch/x86/x86_64/compat/entry.S
+++ b/xen/arch/x86/x86_64/compat/entry.S
@@ -12,6 +12,7 @@
 #include <irq_vectors.h>
 
 ENTRY(entry_int82)
+        ENDBR64
         ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         pushq $0
         movl  $HYPERCALL_VECTOR, 4(%rsp)
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 9abcf95bd010..c5fa4b3c0f41 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -386,6 +386,7 @@ UNLIKELY_END(sysenter_gpf)
         jmp   .Lbounce_exception
 
 ENTRY(int80_direct_trap)
+        ENDBR64
         ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         pushq $0
         movl  $0x80, 4(%rsp)
@@ -698,6 +699,7 @@ ENTRY(common_interrupt)
         jmp ret_from_intr
 
 ENTRY(page_fault)
+        ENDBR64
         movl  $TRAP_page_fault,4(%rsp)
 /* No special register assumptions. */
 GLOBAL(handle_exception)
@@ -872,75 +874,91 @@ FATAL_exception_with_ints_disabled:
         BUG   /* fatal_trap() shouldn't return. */
 
 ENTRY(divide_error)
+        ENDBR64
         pushq $0
         movl  $TRAP_divide_error,4(%rsp)
         jmp   handle_exception
 
 ENTRY(coprocessor_error)
+        ENDBR64
         pushq $0
         movl  $TRAP_copro_error,4(%rsp)
         jmp   handle_exception
 
 ENTRY(simd_coprocessor_error)
+        ENDBR64
         pushq $0
         movl  $TRAP_simd_error,4(%rsp)
         jmp   handle_exception
 
 ENTRY(device_not_available)
+        ENDBR64
         pushq $0
         movl  $TRAP_no_device,4(%rsp)
         jmp   handle_exception
 
 ENTRY(debug)
+        ENDBR64
         pushq $0
         movl  $TRAP_debug,4(%rsp)
         jmp   handle_ist_exception
 
 ENTRY(int3)
+        ENDBR64
         pushq $0
         movl  $TRAP_int3,4(%rsp)
         jmp   handle_exception
 
 ENTRY(overflow)
+        ENDBR64
         pushq $0
         movl  $TRAP_overflow,4(%rsp)
         jmp   handle_exception
 
 ENTRY(bounds)
+        ENDBR64
         pushq $0
         movl  $TRAP_bounds,4(%rsp)
         jmp   handle_exception
 
 ENTRY(invalid_op)
+        ENDBR64
         pushq $0
         movl  $TRAP_invalid_op,4(%rsp)
         jmp   handle_exception
 
 ENTRY(invalid_TSS)
+        ENDBR64
         movl  $TRAP_invalid_tss,4(%rsp)
         jmp   handle_exception
 
 ENTRY(segment_not_present)
+        ENDBR64
         movl  $TRAP_no_segment,4(%rsp)
         jmp   handle_exception
 
 ENTRY(stack_segment)
+        ENDBR64
         movl  $TRAP_stack_error,4(%rsp)
         jmp   handle_exception
 
 ENTRY(general_protection)
+        ENDBR64
         movl  $TRAP_gp_fault,4(%rsp)
         jmp   handle_exception
 
 ENTRY(alignment_check)
+        ENDBR64
         movl  $TRAP_alignment_check,4(%rsp)
         jmp   handle_exception
 
 ENTRY(entry_CP)
+        ENDBR64
         movl  $X86_EXC_CP, 4(%rsp)
         jmp   handle_exception
 
 ENTRY(double_fault)
+        ENDBR64
         movl  $TRAP_double_fault,4(%rsp)
         /* Set AC to reduce chance of further SMAP faults */
         ALTERNATIVE "", stac, X86_FEATURE_XEN_SMAP
@@ -966,6 +984,7 @@ ENTRY(double_fault)
 
         .pushsection .init.text, "ax", @progbits
 ENTRY(early_page_fault)
+        ENDBR64
         movl  $TRAP_page_fault,4(%rsp)
         SAVE_ALL
         movq  %rsp,%rdi
@@ -974,6 +993,7 @@ ENTRY(early_page_fault)
         .popsection
 
 ENTRY(nmi)
+        ENDBR64
         pushq $0
         movl  $TRAP_nmi,4(%rsp)
 handle_ist_exception:
@@ -1102,12 +1122,14 @@ handle_ist_exception:
 #endif
 
 ENTRY(machine_check)
+        ENDBR64
         pushq $0
         movl  $TRAP_machine_check,4(%rsp)
         jmp   handle_ist_exception
 
 /* No op trap handler.  Required for kexec crash path. */
 GLOBAL(trap_nop)
+        ENDBR64
         iretq
 
 /* Table of automatically generated entry points.  One per vector. */
@@ -1136,7 +1158,8 @@ autogen_stubs: /* Automatically generated stubs. */
 #endif
 
         ALIGN
-1:      pushq $0
+1:      ENDBR64
+        pushq $0
         movb  $vec,4(%rsp)
         jmp   common_interrupt
 
@@ -1146,7 +1169,8 @@ autogen_stubs: /* Automatically generated stubs. */
         .elseif vec == X86_EXC_CSO || vec == X86_EXC_SPV || \
                 vec == X86_EXC_VE  || (vec > X86_EXC_CP && vec < TRAP_nr)
 
-1:      test  $8,%spl        /* 64bit exception frames are 16 byte aligned, but the word */
+1:      ENDBR64
+        test  $8,%spl        /* 64bit exception frames are 16 byte aligned, but the word */
         jz    2f             /* size is 8 bytes.  Check whether the processor gave us an */
         pushq $0             /* error code, and insert an empty one if not.              */
 2:      movb  $vec,4(%rsp)
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232819.403904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawm-0000Gx-SI; Fri, 26 Nov 2021 13:07:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232819.403904; Fri, 26 Nov 2021 13:07:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawl-00009T-Rc; Fri, 26 Nov 2021 13:07:23 +0000
Received: by outflank-mailman (input) for mailman id 232819;
 Fri, 26 Nov 2021 13:07:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqav3-0003W9-E5
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:37 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 89df46d3-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89df46d3-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931933;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Ih31JwK4ZhE/5fbqj/U4g/nJspiAVJIOtl0WbTPrTf0=;
  b=dnkpZw9By2ciYTOoif79R0RC1YKV36CdVT/xSCa/CWU+75u4X9OfGsLe
   yYPWo55WdUBXCYKtmm5UJZJlDSDQ6zV4ECeKr2WQIYZaDZZDfnh4+DoQX
   QS7hbwXJBSB2SqdePzow38zOgk+OmqqSp1WKbbpJ6KQwXhQ3xdDZJW3xF
   M=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: oQYG/ml5g7RQdhWOqKM8ehXsmYO6tNQXLbV0T35CpvWN8fP4ijOePptef0de3U+4Fvw7E6Afgf
 fGJNLtDuXjRhHEIiLhWHLXHquZyiYbxWupRdqcXA1PNRxLfFao420lWf90R7S/IDcrqtUM3eid
 8c7JO4wYJy7LPHlNpjOfycW6PPCRspcv44CbZHZ/xam0uMCK2pemo2S0au7zgE8R3nyFLZntjU
 Zk9uNwcqpLNPxXQWwEGzO5nqhReeb0pvgiPIffjwbplAmVaBhHRNkzOe5UBOOVDJedORv00E3r
 lX3Qfv1Gy3wLpa7LfylUBek1
X-SBRS: 5.1
X-MesageID: 60695284
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:GBM0VKLfPwP3pyKFFE+RHJIlxSXFcZb7ZxGr2PjKsXjdYENS0jEFm
 jZKUTzSPvyLamD8L9F/bozg8B8D6p/cz4NhHARlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB3Ygfpvk
 8d29qWLchhyZqvTvck0SglhRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Glo2JETR6aCD
 yYfQWA0ZSbEOwxgAFNUNdFuhuT3gmjmazIN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wh
 EjL4mD4CREyL8GExHyO9XfErv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaDt8l3c
 hJOvHB09O5rqRLtHoKVswCETGCs7wA2RYFCKK4D0zqSkfLS/CO0L3EUd2sUADA5j/MeSTsv3
 16PutrmAz1zrbGYIU6gGqeoQSCaYnZMczJbDcMQZU5cuoS4/tlv5v7aZo87SPbdszHjJd3nL
 9lmRgAajq5bs8ME3r7TEbvv02P1/cihouLYC2zqsoOZAuFRONHNi2+AswGzARN8wGCxFQLpU
 J8swZX20Qz2JcvR/BFhuc1UdF1T296LMSfHnXlkFIQ7+jKm9haLJN4Lv2EgeRg4bphYIlcFh
 XM/XysKv/e/21PwMMdKj3+ZUZx2ncAM6/y5PhwrUja+SscoL1LWlM2fTUWRw3rsgCARfVIXY
 v+mnTKXJS9CU8xPlWPuL89EiOND7n1ulAv7GMGgpzz6gOX2WZJgYepcWLd4Rrtit/3sTcS82
 4s3CvZmPD0DCrCjOXeOrtZIRb3IRFBiba3LRwVsXrbrCmJb9KsJUpc9GJstJN5ombp7jODN8
 i3vU0NU0gOn13bGNR+LejZob7a2BcRzqncyPCoNO1e02id8PdbzvflHL5ZnL6M68OFDzOJvS
 6VXccu3HfkSGC/M/C4QbMehodU6Jgirnw+HIwGsfCM7I8x7XwXM99K9Jlnv+SACAzCZr8w7p
 7H8hArXTYBaH1ZpDdrMaeLpxFS05CBPlOV3VkrOA99SZESzr9Q6d32v1qc6epheJw/Cyz2W0
 xetLS0Z/eSd8ZUo9NTphLyfq9v7GeVJAUcHTXLQ6qy7NHeG8zP7k5NASuuBYRvUSHjwpPe5f
 exQwvzxbK8HkVJNv9YuGrpn1/tjtd7mprscxQV4BnTbKV+sD+o4cHWB2MBOsIxLx6NY5lTqC
 h7epIECNOXbIt7hHX4QOBEhP7aK2vwjkzXP6eg4fRfh7yht8bvbCUhfMnFgUsCGwGeZ5G/9/
 dochQ==
IronPort-HdrOrdr: A9a23:DATMja9wuWdEpyQ097Juk+DLI+orL9Y04lQ7vn2ZKCYlEfBw+P
 rFoB1273LJYVUqOE3I++rvBEDoexq1nqKdh7N8AV7IZmjbUQWTQ72LKeDZsljd8+qUzJ8+6Z
 td
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="60695284"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 59/65] x86/traps: Rework write_stub_trampoline() to not hardcode the jmp
Date: Fri, 26 Nov 2021 12:34:40 +0000
Message-ID: <20211126123446.32324-60-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

For CET-IBT, we will need to optionally insert an endbr64 instruction at the
start of the stub.  Don't hardcode the jmp displacement assuming that it
starts at byte 24 of the stub.

Also add extra comments describing what is going on.  The mix of %rax and %rsp
is far from trivial to follow.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/x86_64/traps.c | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
index d661d7ffcaaf..6f3c65bedc7a 100644
--- a/xen/arch/x86/x86_64/traps.c
+++ b/xen/arch/x86/x86_64/traps.c
@@ -293,30 +293,38 @@ static unsigned int write_stub_trampoline(
     unsigned char *stub, unsigned long stub_va,
     unsigned long stack_bottom, unsigned long target_va)
 {
+    unsigned char *p = stub;
+
+    /* Store guest %rax into %ss slot */
     /* movabsq %rax, stack_bottom - 8 */
-    stub[0] = 0x48;
-    stub[1] = 0xa3;
-    *(uint64_t *)&stub[2] = stack_bottom - 8;
+    *p++ = 0x48;
+    *p++ = 0xa3;
+    *(uint64_t *)p = stack_bottom - 8;
+    p += 8;
 
+    /* Store guest %rsp in %rax */
     /* movq %rsp, %rax */
-    stub[10] = 0x48;
-    stub[11] = 0x89;
-    stub[12] = 0xe0;
+    *p++ = 0x48;
+    *p++ = 0x89;
+    *p++ = 0xe0;
 
+    /* Switch to Xen stack */
     /* movabsq $stack_bottom - 8, %rsp */
-    stub[13] = 0x48;
-    stub[14] = 0xbc;
-    *(uint64_t *)&stub[15] = stack_bottom - 8;
+    *p++ = 0x48;
+    *p++ = 0xbc;
+    *(uint64_t *)p = stack_bottom - 8;
+    p += 8;
 
+    /* Store guest %rsp into %rsp slot */
     /* pushq %rax */
-    stub[23] = 0x50;
+    *p++ = 0x50;
 
     /* jmp target_va */
-    stub[24] = 0xe9;
-    *(int32_t *)&stub[25] = target_va - (stub_va + 29);
+    *p++ = 0xe9;
+    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
+    p += 4;
 
-    /* Round up to a multiple of 16 bytes. */
-    return 32;
+    return p - stub;
 }
 
 DEFINE_PER_CPU(struct stubs, stubs);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232821.403909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawo-0000en-1Z; Fri, 26 Nov 2021 13:07:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232821.403909; Fri, 26 Nov 2021 13:07:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawn-0000XX-8S; Fri, 26 Nov 2021 13:07:25 +0000
Received: by outflank-mailman (input) for mailman id 232821;
 Fri, 26 Nov 2021 13:07:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavJ-0003W9-VV
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:54 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94650a7d-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94650a7d-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931952;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=IAy9/gvKbj3wWiqnHwvNYNHwaaHqym/9PfZDdgkTD3k=;
  b=JA5KzgEhyCkoU0VxxuOxk9NpOFS2pOPY/9mLk5aQjk28or2OstFKHPAc
   lVwyZoSZnCO3IBOlsdwPhO9SjW0zU6yKofPNKgF2g6lepSizldlmv94OD
   UUMUnC3Z1seyxmQbJJMkbBprD4RTnoduQ/lZaFtABiDnw9PcRrUT41bV5
   s=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 6NuzUbU7VNJr64nySEbISxY0t/ZB6zL/PoRsNLbJWCg5079mImvMl/qhzSey0EeGmkjO3CD2dR
 6vPtDjDqfdYWFDlh9TrEnXwogLwBmUcbp4DVCvcoxRYUmx2dPdvTMm5IqgW1tf0sgcYyvnLOVe
 6ZFsHxaA0apvYwhrQXSZkvzw6TrK2g2V67Pv9+jBaJLbzHaDP+qt/BUbXm8nhKudp5bEs/v6lM
 tbZilJjdK/rXR27ao5etLmPn1FTinFSGQJYZMv1FvpcionNZtOhg+Us87JoYxyaIwPQM2TnX9E
 n/kMb2ywBwGUELnVslKdRnJz
X-SBRS: 5.1
X-MesageID: 59064048
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:w5RAOaAkwDcMhxVW/9zkw5YqxClBgxIJ4kV8jS/XYbTApGt21GRUz
 2cbCGGEP/veY2bwetpxaNzgoBgO75Pdy4AxQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX5400w7wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/hRWmm9F9m
 IpxtpGyFB4sJbyLu/oWekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjW9u2pgSTZ4yY
 eI/RiZFahrPcSdAFXw9CpEnx/awgCjWJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tkSFo
 mPL+UzpDxdcM8aQoRKe6W6ljOLLmSL9WaoRGae++/osh0ecrkQDBRtTWValrP2Rjk+lR8kZO
 0ES4jApr6U56AqsVNaVdz+SrWOAvxUcc8FNCOB84waIopc4+C7AWDJCFGQYLoV76olmHlTGy
 2NlgfvnJRNrsbHFFk6e+7XJtDapKG82M2QrMHpsoRQ+3/Hvp4Q6jxTqR9llEbKogtCdJQwc0
 wxmvwBl2exN0JdjO7GTuAme3mny/sShohsdv12PBgqYAhVFiJlJjmBCwXzS9r5+IYmQVTFtV
 1BUypHFvIji4Xxg/RFhodnh/pn1uJ5p0xWG2DaD+qXNERz2oBZPmqgKvVlDyL9BaJpsRNMQS
 Ba7VfltzJFSJmC2SqR8fpi8Dc8npYC5S4+6Bq6JMYsSPMQqHONiwM2ITRXLt4wKuBJx+ZzTx
 L/BKZr8ZZrkIfgPIMWKqxc1juZwm3FWKZL7TpHn1RW3uYdyl1bOIYrpxGCmN7hjhIvd+V292
 48Ga6OilkUOOMWjM3K/2dNCcjg3wY0TWMmeRzp/LbXYfGKL2QgJVpfs/F/WU9A/wvkOyL6Xp
 irVt40x4AOXuEAr4D6iMhhLAI4Dl74mxZ7iFSBzb1uuxVY5ZoOjsPUWe5ctJOF1/+1/1/9kC
 fICfpzYUPhITz3G/RUbbIX889M+JEj621rWMnr3eiU7cr5hWxfNpo3ucDzw+XRcFSGwr8Y//
 eGtj1uJXZoZSg1+J8/Kc/bznUiptH0QlbsqDUvFK9VeYmv2941uJ3Cjh/M7OZhUex7C2iGbx
 0CdBhJB/bvBpIo88d/og6GYrtj2T7siTxQCR2SCtOS4LyjX+Gan0LRsaufQcGCPTn7w9YWje
 f5Rk6P2PsoYkQsYqIF7Cbtqk/4zvoO9u79Aww14N3zXdFD3WKh4K3yL0MQT5K1AwrhV5Vm/V
 k6Vo4QIPLyIPIXuEUILJRpjZeOGjKlGlj7X5PUzAUP7+C4oo+bXDRQMZ0GB2H5HMb94EII52
 uNw6scZ5ju2hgcuLtvb3Dtf8H6BLyBYXqgq3n3A7FQHVub/Jol+XKHh
IronPort-HdrOrdr: A9a23:HtMOIKkob7sQp65A+tkvmdMLWz3pDfI/3DAbv31ZSRFFG/Fw9v
 re/8jzuiWftN98YhwdcLO7WJVoI0mzyXcd2+B4VotKOjOLhILCFuBfBOXZrAEJ30bFh4tgPW
 AKSdkdNOHN
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59064048"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 12/65] xen: Annotate fnptr targets from IPIs
Date: Fri, 26 Nov 2021 12:33:53 +0000
Message-ID: <20211126123446.32324-13-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/cpu_idle.c            |  2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c     |  8 ++++----
 xen/arch/x86/acpi/cpufreq/powernow.c    |  6 +++---
 xen/arch/x86/acpi/lib.c                 |  2 +-
 xen/arch/x86/cpu/amd.c                  |  2 +-
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c  |  2 +-
 xen/arch/x86/cpu/mcheck/mce.c           |  6 +++---
 xen/arch/x86/cpu/mcheck/mce_intel.c     |  2 +-
 xen/arch/x86/cpu/mcheck/non-fatal.c     |  2 +-
 xen/arch/x86/cpu/microcode/core.c       |  2 +-
 xen/arch/x86/cpu/mtrr/generic.c         |  2 +-
 xen/arch/x86/cpu/mtrr/main.c            |  2 +-
 xen/arch/x86/cpu/mwait-idle.c           |  6 +++---
 xen/arch/x86/cpu/vpmu.c                 |  4 ++--
 xen/arch/x86/guest/xen/xen.c            |  2 +-
 xen/arch/x86/hvm/nestedhvm.c            |  3 +--
 xen/arch/x86/hvm/vmx/vmcs.c             |  2 +-
 xen/arch/x86/irq.c                      |  4 ++--
 xen/arch/x86/nmi.c                      |  2 +-
 xen/arch/x86/oprofile/nmi_int.c         | 10 +++++-----
 xen/arch/x86/oprofile/op_model_athlon.c |  2 +-
 xen/arch/x86/platform_hypercall.c       |  4 ++--
 xen/arch/x86/psr.c                      |  2 +-
 xen/arch/x86/shutdown.c                 |  4 ++--
 xen/arch/x86/smp.c                      |  2 +-
 xen/arch/x86/sysctl.c                   |  2 +-
 xen/arch/x86/time.c                     |  8 ++++----
 xen/common/cpu.c                        |  4 ++--
 xen/common/gdbstub.c                    |  2 +-
 xen/common/keyhandler.c                 |  2 +-
 xen/common/page_alloc.c                 |  2 +-
 xen/include/asm-x86/mtrr.h              |  2 +-
 32 files changed, 53 insertions(+), 54 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index fb47eb9ad68e..22c8bb0c2d94 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -145,7 +145,7 @@ struct hw_residencies
     uint64_t cc7;
 };
 
-static void do_get_hw_residencies(void *arg)
+static void cf_check do_get_hw_residencies(void *arg)
 {
     struct cpuinfo_x86 *c = &current_cpu_data;
     struct hw_residencies *hw_res = arg;
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 9510f05340aa..8133c2dd958c 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -129,7 +129,7 @@ struct drv_cmd {
     u32 val;
 };
 
-static void do_drv_read(void *drvcmd)
+static void cf_check do_drv_read(void *drvcmd)
 {
     struct drv_cmd *cmd;
 
@@ -148,7 +148,7 @@ static void do_drv_read(void *drvcmd)
     }
 }
 
-static void do_drv_write(void *drvcmd)
+static void cf_check do_drv_write(void *drvcmd)
 {
     struct drv_cmd *cmd;
     uint64_t msr_content;
@@ -244,7 +244,7 @@ struct perf_pair {
 static DEFINE_PER_CPU(struct perf_pair, gov_perf_pair);
 static DEFINE_PER_CPU(struct perf_pair, usr_perf_pair);
 
-static void read_measured_perf_ctrs(void *_readin)
+static void cf_check read_measured_perf_ctrs(void *_readin)
 {
     struct perf_pair *readin = _readin;
 
@@ -340,7 +340,7 @@ static unsigned int get_cur_freq_on_cpu(unsigned int cpu)
     return extract_freq(get_cur_val(cpumask_of(cpu)), data);
 }
 
-static void feature_detect(void *info)
+static void cf_check feature_detect(void *info)
 {
     struct cpufreq_policy *policy = info;
     unsigned int eax;
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index da8fc40b9a6f..ca71ecf72d67 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -44,12 +44,12 @@
 
 #define ARCH_CPU_FLAG_RESUME	1
 
-static void transition_pstate(void *pstate)
+static void cf_check transition_pstate(void *pstate)
 {
     wrmsrl(MSR_PSTATE_CTRL, *(unsigned int *)pstate);
 }
 
-static void update_cpb(void *data)
+static void cf_check update_cpb(void *data)
 {
     struct cpufreq_policy *policy = data;
 
@@ -165,7 +165,7 @@ struct amd_cpu_data {
     u32 max_hw_pstate;
 };
 
-static void get_cpu_data(void *arg)
+static void cf_check get_cpu_data(void *arg)
 {
     struct amd_cpu_data *data = arg;
     struct processor_performance *perf = data->perf;
diff --git a/xen/arch/x86/acpi/lib.c b/xen/arch/x86/acpi/lib.c
index b66e7338e74d..43831b92d132 100644
--- a/xen/arch/x86/acpi/lib.c
+++ b/xen/arch/x86/acpi/lib.c
@@ -99,7 +99,7 @@ unsigned int acpi_get_processor_id(unsigned int cpu)
 	return INVALID_ACPIID;
 }
 
-static void get_mwait_ecx(void *info)
+static void cf_check get_mwait_ecx(void *info)
 {
 	*(u32 *)info = cpuid_ecx(CPUID_MWAIT_LEAF);
 }
diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index f87484b7ce61..f1c32c2787c9 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -430,7 +430,7 @@ static void disable_c1_ramping(void)
 	}
 }
 
-static void disable_c1e(void *unused)
+static void cf_check disable_c1e(void *unused)
 {
 	uint64_t msr_content;
 
diff --git a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index da0bf85f0223..efb45c931e1f 100644
--- a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
+++ b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
@@ -79,7 +79,7 @@ static int variable_period = 1;
  * Collects information of correctable errors and notifies
  * Dom0 via an event.
  */
-static void mce_amd_checkregs(void *info)
+static void cf_check mce_amd_checkregs(void *info)
 {
 	mctelem_cookie_t mctc;
 	struct mca_summary bs;
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index a449fa0424ce..43f6c8471a90 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -961,7 +961,7 @@ void x86_mcinfo_dump(struct mc_info *mi)
     } while ( 1 );
 }
 
-static void do_mc_get_cpu_info(void *v)
+static void cf_check do_mc_get_cpu_info(void *v)
 {
     int cpu = smp_processor_id();
     int cindex, cpn;
@@ -1242,7 +1242,7 @@ static void x86_mc_hwcr_wren_restore(uint64_t hwcr)
         wrmsrl(MSR_K8_HWCR, hwcr);
 }
 
-static void x86_mc_msrinject(void *data)
+static void cf_check x86_mc_msrinject(void *data)
 {
     struct xen_mc_msrinject *mci = data;
     struct mcinfo_msr *msr;
@@ -1274,7 +1274,7 @@ static void x86_mc_msrinject(void *data)
 }
 
 /*ARGSUSED*/
-static void x86_mc_mceinject(void *data)
+static void cf_check x86_mc_mceinject(void *data)
 {
     printk("Simulating #MC on cpu %d\n", smp_processor_id());
     __asm__ __volatile__("int $0x12");
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 343bdb3a22ef..239b0b32327c 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -599,7 +599,7 @@ static void mce_set_owner(void)
     cmci_discover();
 }
 
-static void __cpu_mcheck_distribute_cmci(void *unused)
+static void cf_check __cpu_mcheck_distribute_cmci(void *unused)
 {
     cmci_discover();
 }
diff --git a/xen/arch/x86/cpu/mcheck/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index f7e411c0870e..1c0c32ba0821 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -32,7 +32,7 @@ static uint64_t period = MCE_PERIOD;
 static int adjust = 0;
 static int variable_period = 1;
 
-static void mce_checkregs (void *info)
+static void cf_check mce_checkregs(void *info)
 {
 	mctelem_cookie_t mctc;
 	struct mca_summary bs;
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 9631042190ab..841364208053 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -533,7 +533,7 @@ static int control_thread_fn(const struct microcode_patch *patch)
     return ret;
 }
 
-static int do_microcode_update(void *patch)
+static int cf_check do_microcode_update(void *patch)
 {
     unsigned int cpu = smp_processor_id();
     int ret;
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index 883e3398ff71..7cf4cd01f3f6 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -84,7 +84,7 @@ bool is_var_mtrr_overlapped(const struct mtrr_state *m)
     return false;
 }
 
-void mtrr_save_fixed_ranges(void *info)
+void cf_check mtrr_save_fixed_ranges(void *info)
 {
 	get_fixed_ranges(mtrr_state.fixed_ranges);
 }
diff --git a/xen/arch/x86/cpu/mtrr/main.c b/xen/arch/x86/cpu/mtrr/main.c
index 428133100d46..4e01c8d6f9df 100644
--- a/xen/arch/x86/cpu/mtrr/main.c
+++ b/xen/arch/x86/cpu/mtrr/main.c
@@ -131,7 +131,7 @@ struct set_mtrr_data {
  */
 int hold_mtrr_updates_on_aps;
 
-static void ipi_handler(void *info)
+static void cf_check ipi_handler(void *info)
 /*  [SUMMARY] Synchronisation handler. Executed by "other" CPUs.
     [RETURNS] Nothing.
 */
diff --git a/xen/arch/x86/cpu/mwait-idle.c b/xen/arch/x86/cpu/mwait-idle.c
index f2444bcff146..7a4b0837a01f 100644
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -836,7 +836,7 @@ static void mwait_idle(void)
 		cpuidle_current_governor->reflect(power);
 }
 
-static void auto_demotion_disable(void *dummy)
+static void cf_check auto_demotion_disable(void *dummy)
 {
 	u64 msr_bits;
 
@@ -845,13 +845,13 @@ static void auto_demotion_disable(void *dummy)
 	wrmsrl(MSR_PKG_CST_CONFIG_CONTROL, msr_bits);
 }
 
-static void byt_auto_demotion_disable(void *dummy)
+static void cf_check byt_auto_demotion_disable(void *dummy)
 {
 	wrmsrl(MSR_CC6_DEMOTION_POLICY_CONFIG, 0);
 	wrmsrl(MSR_MC6_DEMOTION_POLICY_CONFIG, 0);
 }
 
-static void c1e_promotion_disable(void *dummy)
+static void cf_check c1e_promotion_disable(void *dummy)
 {
 	u64 msr_bits;
 
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index fec94a00e9a2..42d62271a1b0 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -339,7 +339,7 @@ void vpmu_do_interrupt(struct cpu_user_regs *regs)
 #endif
 }
 
-static void vpmu_save_force(void *arg)
+static void cf_check vpmu_save_force(void *arg)
 {
     struct vcpu *v = arg;
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
@@ -547,7 +547,7 @@ void vpmu_initialise(struct vcpu *v)
         put_vpmu(v);
 }
 
-static void vpmu_clear_last(void *arg)
+static void cf_check vpmu_clear_last(void *arg)
 {
     if ( this_cpu(last_vcpu) == arg )
         this_cpu(last_vcpu) = NULL;
diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
index 2ff63d370a8a..b2aa3a009b4a 100644
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -289,7 +289,7 @@ int xg_free_unused_page(mfn_t mfn)
     return rangeset_remove_range(mem, mfn_x(mfn), mfn_x(mfn));
 }
 
-static void ap_resume(void *unused)
+static void cf_check ap_resume(void *unused)
 {
     BUG_ON(map_vcpuinfo());
     BUG_ON(init_evtchn());
diff --git a/xen/arch/x86/hvm/nestedhvm.c b/xen/arch/x86/hvm/nestedhvm.c
index 3cf812609acf..12944030bc67 100644
--- a/xen/arch/x86/hvm/nestedhvm.c
+++ b/xen/arch/x86/hvm/nestedhvm.c
@@ -84,8 +84,7 @@ nestedhvm_vcpu_destroy(struct vcpu *v)
         hvm_funcs.nhvm_vcpu_destroy(v);
 }
 
-static void
-nestedhvm_flushtlb_ipi(void *info)
+static void cf_check nestedhvm_flushtlb_ipi(void *info)
 {
     struct vcpu *v = current;
     struct domain *d = info;
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 3d1ca248ffde..98fe91aff80b 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -589,7 +589,7 @@ static void vmx_free_vmcs(paddr_t pa)
     free_domheap_page(maddr_to_page(pa));
 }
 
-static void __vmx_clear_vmcs(void *info)
+static void cf_check __vmx_clear_vmcs(void *info)
 {
     struct vcpu *v = info;
     struct vmx_vcpu *vmx = &v->arch.hvm.vmx;
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index f9c808455535..d9bd355113d7 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -1127,7 +1127,7 @@ static inline void clear_pirq_eoi(struct domain *d, unsigned int irq)
     }
 }
 
-static void set_eoi_ready(void *data);
+static void cf_check set_eoi_ready(void *data);
 
 static void cf_check irq_guest_eoi_timer_fn(void *data)
 {
@@ -1398,7 +1398,7 @@ static void __set_eoi_ready(const struct irq_desc *desc)
 }
 
 /* Mark specified IRQ as ready-for-EOI (if it really is) and attempt to EOI. */
-static void set_eoi_ready(void *data)
+static void cf_check set_eoi_ready(void *data)
 {
     struct irq_desc *desc = data;
 
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index c8ae4a5d7460..e20d1393c881 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -149,7 +149,7 @@ int nmi_active;
     (P4_CCCR_OVF_PMI0|P4_CCCR_THRESHOLD(15)|P4_CCCR_COMPLEMENT| \
      P4_CCCR_COMPARE|P4_CCCR_REQUIRED|P4_CCCR_ESCR_SELECT(4)|P4_CCCR_ENABLE)
 
-static void __init wait_for_nmis(void *p)
+static void __init cf_check wait_for_nmis(void *p)
 {
     unsigned int start_count = this_cpu(nmi_count);
     unsigned long ticks = 10 * 1000 * cpu_khz / nmi_hz;
diff --git a/xen/arch/x86/oprofile/nmi_int.c b/xen/arch/x86/oprofile/nmi_int.c
index ba9c4b9804ca..6ebe20bd1d3e 100644
--- a/xen/arch/x86/oprofile/nmi_int.c
+++ b/xen/arch/x86/oprofile/nmi_int.c
@@ -131,7 +131,7 @@ static void nmi_cpu_save_registers(struct op_msrs *msrs)
 }
 
 
-static void nmi_save_registers(void * dummy)
+static void cf_check nmi_save_registers(void *dummy)
 {
 	int cpu = smp_processor_id();
 	struct op_msrs * msrs = &cpu_msrs[cpu];
@@ -179,7 +179,7 @@ static int allocate_msrs(void)
 }
 
 
-static void nmi_cpu_setup(void * dummy)
+static void cf_check nmi_cpu_setup(void *dummy)
 {
 	int cpu = smp_processor_id();
 	struct op_msrs * msrs = &cpu_msrs[cpu];
@@ -245,7 +245,7 @@ static void nmi_restore_registers(struct op_msrs * msrs)
 }
 
 
-static void nmi_cpu_shutdown(void * dummy)
+static void cf_check nmi_cpu_shutdown(void *dummy)
 {
 	int cpu = smp_processor_id();
 	struct op_msrs * msrs = &cpu_msrs[cpu];
@@ -261,7 +261,7 @@ void nmi_release_counters(void)
 }
 
 
-static void nmi_cpu_start(void * dummy)
+static void cf_check nmi_cpu_start(void *dummy)
 {
 	int cpu = smp_processor_id();
 	struct op_msrs const * msrs = &cpu_msrs[cpu];
@@ -278,7 +278,7 @@ int nmi_start(void)
 }
 
 
-static void nmi_cpu_stop(void * dummy)
+static void cf_check nmi_cpu_stop(void *dummy)
 {
 	unsigned int v;
 	int cpu = smp_processor_id();
diff --git a/xen/arch/x86/oprofile/op_model_athlon.c b/xen/arch/x86/oprofile/op_model_athlon.c
index ee6eb0ecae79..2177f02946e2 100644
--- a/xen/arch/x86/oprofile/op_model_athlon.c
+++ b/xen/arch/x86/oprofile/op_model_athlon.c
@@ -436,7 +436,7 @@ static void athlon_stop(struct op_msrs const * const msrs)
 #define APIC_EILVT_MSG_NMI              0x4
 #define APIC_EILVT_LVTOFF_IBS           1
 #define APIC_EILVTn(n)                  (0x500 + 0x10 * n)
-static inline void __init init_ibs_nmi_per_cpu(void *arg)
+static inline void __init cf_check init_ibs_nmi_per_cpu(void *arg)
 {
 	unsigned long reg;
 
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 5e3208862c2f..fe803de15979 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -47,7 +47,7 @@ struct resource_access {
 
 long cf_check cpu_frequency_change_helper(void *);
 void check_resource_access(struct resource_access *);
-void resource_access(void *);
+void cf_check resource_access(void *);
 
 #ifndef COMPAT
 typedef long ret_t;
@@ -146,7 +146,7 @@ void check_resource_access(struct resource_access *ra)
     ra->nr_done = i;
 }
 
-void resource_access(void *info)
+void cf_check resource_access(void *info)
 {
     struct resource_access *ra = info;
     unsigned int i;
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 5b9991bd5b12..6c9cabf3843d 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -1247,7 +1247,7 @@ struct cos_write_info
     const uint32_t *val;
 };
 
-static void do_write_psr_msrs(void *data)
+static void cf_check do_write_psr_msrs(void *data)
 {
     const struct cos_write_info *info = data;
     unsigned int i, index, cos = info->cos;
diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c
index ad3e3a76916f..30985d36a612 100644
--- a/xen/arch/x86/shutdown.c
+++ b/xen/arch/x86/shutdown.c
@@ -118,7 +118,7 @@ static inline void kb_wait(void)
             break;
 }
 
-static void noreturn __machine_halt(void *unused)
+static void noreturn cf_check __machine_halt(void *unused)
 {
     local_irq_disable();
 
@@ -548,7 +548,7 @@ static int __init cf_check reboot_init(void)
 }
 __initcall(reboot_init);
 
-static void noreturn __machine_restart(void *pdelay)
+static void cf_check noreturn __machine_restart(void *pdelay)
 {
     machine_restart(*(unsigned int *)pdelay);
 }
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index f4952a6bf9a5..f6fd7f95df58 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -339,7 +339,7 @@ void __stop_this_cpu(void)
     cpumask_clear_cpu(smp_processor_id(), &cpu_online_map);
 }
 
-static void stop_this_cpu(void *dummy)
+static void cf_check stop_this_cpu(void *dummy)
 {
     __stop_this_cpu();
     for ( ; ; )
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index 1772f51f8f6e..f82abc248885 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -69,7 +69,7 @@ struct l3_cache_info {
     unsigned long size;
 };
 
-static void l3_cache_get(void *arg)
+static void cf_check l3_cache_get(void *arg)
 {
     struct cpuid4_info info;
     struct l3_cache_info *l3_info = arg;
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index b60c614bab6e..ea34b4343c17 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1656,7 +1656,7 @@ static void check_tsc_warp(unsigned long tsc_khz, unsigned long *max_warp)
 static unsigned long tsc_max_warp, tsc_check_count;
 static cpumask_t tsc_check_cpumask;
 
-static void tsc_check_slave(void *unused)
+static void cf_check tsc_check_slave(void *unused)
 {
     unsigned int cpu = smp_processor_id();
     local_irq_disable();
@@ -1804,7 +1804,7 @@ static void time_calibration_tsc_rendezvous(void *_r)
 }
 
 /* Ordinary rendezvous function which does not modify TSC values. */
-static void time_calibration_std_rendezvous(void *_r)
+static void cf_check time_calibration_std_rendezvous(void *_r)
 {
     struct calibration_rendezvous *r = _r;
     unsigned int total_cpus = cpumask_weight(&r->cpu_calibration_map);
@@ -1835,7 +1835,7 @@ static void time_calibration_std_rendezvous(void *_r)
  * Rendezvous function used when clocksource is TSC and
  * no CPU hotplug will be performed.
  */
-static void time_calibration_nop_rendezvous(void *rv)
+static void cf_check time_calibration_nop_rendezvous(void *rv)
 {
     const struct calibration_rendezvous *r = rv;
     struct cpu_time_stamp *c = &this_cpu(cpu_calibration);
@@ -2027,7 +2027,7 @@ static void __init tsc_check_writability(void)
     disable_tsc_sync = true;
 }
 
-static void __init reset_percpu_time(void *unused)
+static void __init cf_check reset_percpu_time(void *unused)
 {
     struct cpu_time *t = &this_cpu(cpu_time);
 
diff --git a/xen/common/cpu.c b/xen/common/cpu.c
index 1f976db0a51f..b0b63cdb3638 100644
--- a/xen/common/cpu.c
+++ b/xen/common/cpu.c
@@ -84,13 +84,13 @@ static int cpu_notifier_call_chain(unsigned int cpu, unsigned long action,
     return ret;
 }
 
-static void _take_cpu_down(void *unused)
+static void cf_check _take_cpu_down(void *unused)
 {
     cpu_notifier_call_chain(smp_processor_id(), CPU_DYING, NULL, true);
     __cpu_disable();
 }
 
-static int take_cpu_down(void *arg)
+static int cf_check take_cpu_down(void *arg)
 {
     _take_cpu_down(arg);
     return 0;
diff --git a/xen/common/gdbstub.c b/xen/common/gdbstub.c
index 99bfd9a654c9..079c3ca9616a 100644
--- a/xen/common/gdbstub.c
+++ b/xen/common/gdbstub.c
@@ -660,7 +660,7 @@ static int __init cf_check initialise_gdb(void)
 }
 presmp_initcall(initialise_gdb);
 
-static void gdb_pause_this_cpu(void *unused)
+static void cf_check gdb_pause_this_cpu(void *unused)
 {
     unsigned long flags;
 
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index 8b9f37837162..2c916d528ab2 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -360,7 +360,7 @@ static cpumask_t read_clocks_cpumask;
 static DEFINE_PER_CPU(s_time_t, read_clocks_time);
 static DEFINE_PER_CPU(u64, read_cycles_time);
 
-static void read_clocks_slave(void *unused)
+static void cf_check read_clocks_slave(void *unused)
 {
     unsigned int cpu = smp_processor_id();
     local_irq_disable();
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 8789ec81b6df..a95dd14f63b4 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1898,7 +1898,7 @@ void __init end_boot_allocator(void)
     printk("\n");
 }
 
-static void __init smp_scrub_heap_pages(void *data)
+static void __init cf_check smp_scrub_heap_pages(void *data)
 {
     unsigned long mfn, start, end;
     struct page_info *pg;
diff --git a/xen/include/asm-x86/mtrr.h b/xen/include/asm-x86/mtrr.h
index e0fd1005ce72..7733800b798f 100644
--- a/xen/include/asm-x86/mtrr.h
+++ b/xen/include/asm-x86/mtrr.h
@@ -64,7 +64,7 @@ struct mtrr_state {
 };
 extern struct mtrr_state mtrr_state;
 
-extern void mtrr_save_fixed_ranges(void *);
+extern void cf_check mtrr_save_fixed_ranges(void *);
 extern void mtrr_save_state(void);
 extern int mtrr_add(unsigned long base, unsigned long size,
                     unsigned int type, char increment);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232830.403936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawt-0002B4-DH; Fri, 26 Nov 2021 13:07:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232830.403936; Fri, 26 Nov 2021 13:07:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawt-00029P-3a; Fri, 26 Nov 2021 13:07:31 +0000
Received: by outflank-mailman (input) for mailman id 232830;
 Fri, 26 Nov 2021 13:07:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavC-0003W9-8c
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:46 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8feca44d-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8feca44d-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931944;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=C0fvCAztg5DLCbQmwvTpZ/liPDfc2zf7QofwX/rYxoo=;
  b=bjn59gQxhJe8w4b+m4YTxSafCP7WAd4gOy3PsT/hXn9UUtyCcw7YIiGE
   2VGu3g+jajlIngtnfsVAjjY021P+g+e+aVRmAAdGIT3VNVII3qQjKayoS
   WpZr0uxQiT5C1Bxdx9ipHG3yzkPVSrN8MW7Rq5wo8ZXaVqX+Klz6aLjm0
   Q=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: V0Oea6tppHveq4nfNZk7eroUZtBeGaTarmOZyoexrR76Bav50ggoXIfYVJumk9K/qs3x0d3+Zn
 bIk5q/V+btfaFNnBV7cmdY4cswEVEajmn0d7tpgzhVYVVra1bUa6cQzG5Bppfo4QpW69KA6Pn2
 lkW2g9oh3tFFOZMH12w81qCrsjdoun8b0V2KEwzdWpnQUlunKiQXbvRbg4QChL2yWCSgS0NMl0
 A4lz2wyKND4r0tNxcTZsixLebwA3Y6ZZ2VceFEMkizf+SNEKFgAHDsqBrz7QZXQH55buRW4Pu5
 FnGwQvpaWumc8fpT4U1PPtb6
X-SBRS: 5.1
X-MesageID: 60695296
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:DNub8qwT/vDpn5CjxYJ6t+fCwSrEfRIJ4+MujC+fZmUNrF6WrkVSz
 TFMWDvXPvbYYTagKNt1YNzl9B9QvJPUyN5mSAVv/CAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRn2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt4Bg4
 9tdkqWBcCEKZIzSs/4aehZfDggraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY2JgQTKuEN
 pRxhTxHVFPPSixDOAkuAtEQu+Git2LPYhBDpwfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krE4mD4DxcyJNGZjz2f/RqEnfTTlCn2XIYTEryQ9fNwhlCXgGsJB3U+RVa95PW0lEO6c9ZeM
 FAPvDojq7Ao806mRcW7WAe3yFamlBMBX9tbE8Uh9RqAjKHT5m6k6nMsF2AbLoZ87YlvGGJsh
 gThc87V6SJH4Ky+R2K6z4atixDoGDY+N2graigZZF5QizX8m70bghXKR9dlNae6iNzpBD39q
 wy3QDgCa6Y71pBSifjilbzTq3f1/8WSEFZpjunCdjv9tlsRWWKzW2C/BbE3B95kJZ3RcFSOt
 WNsdyO2vLFXVsHleMBgrYww8FCVCxStbGK0bb1HRcBJG9GRF5iLJts4DNZWfhoBDyr8UWW1C
 HI/QCsIjHOpAFOkbLVsf6W6ANkwwK7rGLzND66PMYoQP8cgKFHbp0mCgHJ8OUi2yyDAdollZ
 P+mnTuEVy5GWcyLMhLqLwvi7VPb7n9nnj6CLXwK5x+mzaCfdBaopUQtazOzghQCxPrc+m39q
 o8HX+PTkkk3eLCuM0H/rN9IRXhXfCdTOHwDg5EOHgJ1ClE9Qz9J5j646e5JRrGJaIwJzLqVp
 S/kBRcDoLc97FWeQTi3hrlYQOuHdf5CQbgTZ0TA5H6khCouZ5iB9qAae8dldLUr7rU7n/V1U
 +MEa4OLBfEWEmbL/DEUbJ/cqo1+dUv02VLSbnT9ODVvLYR9QwHp+8P/ele9/ic5ESfq59A1p
 Ket112HTMNbFRhiFsvfdNmm00i14SoGgOt3UkaReotTdUzg/ZJEMSv0ivNrccgAJQ+anmmR1
 hqMAAderu7I+tdn/N7MjKGCjoGoD+ohQRYKQziFte67bHCI8HCizIlMVPezUQrcDG6kqr+/Y
 eh1zu3nNKFVllh9rIchQa1gyrgz5oWzquYCnBhkBnjCc3+iFqhkfiudxcBKu6BAmu1ZtA+xV
 h7d89VWI+zUasbsEVpXLws5dOWTk/oTn2CKv/gyJUz74g5x/aaGDhoOb0Xd1nQFIesnKp4hz
 McgpNUSul62hRcdO9qbijxZqjaXJXsaXqR77pwXDecHUObwJo2utXAENhLL3Q==
IronPort-HdrOrdr: A9a23:8e4WbqwjbRshkAfMsrBPKrPwFL1zdoMgy1knxilNoRw8SKKlfq
 eV7Y0mPH7P+VAssR4b+exoVJPtfZqYz+8R3WBzB8bEYOCFghrKEGgK1+KLqFeMJ8S9zJ846U
 4JSdkHNDSaNzlHZKjBjzVQa+xQouW6zA==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="60695296"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 17/65] xen/evtchn: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:33:58 +0000
Message-ID: <20211126123446.32324-18-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/common/event_2l.c      | 21 ++++++++++++---------
 xen/common/event_channel.c |  3 ++-
 xen/common/event_fifo.c    | 30 ++++++++++++++++--------------
 3 files changed, 30 insertions(+), 24 deletions(-)

diff --git a/xen/common/event_2l.c b/xen/common/event_2l.c
index 7424320e525a..d40dd51ab555 100644
--- a/xen/common/event_2l.c
+++ b/xen/common/event_2l.c
@@ -16,7 +16,8 @@
 
 #include <asm/guest_atomics.h>
 
-static void evtchn_2l_set_pending(struct vcpu *v, struct evtchn *evtchn)
+static void cf_check evtchn_2l_set_pending(
+    struct vcpu *v, struct evtchn *evtchn)
 {
     struct domain *d = v->domain;
     unsigned int port = evtchn->port;
@@ -41,12 +42,14 @@ static void evtchn_2l_set_pending(struct vcpu *v, struct evtchn *evtchn)
     evtchn_check_pollers(d, port);
 }
 
-static void evtchn_2l_clear_pending(struct domain *d, struct evtchn *evtchn)
+static void cf_check evtchn_2l_clear_pending(
+    struct domain *d, struct evtchn *evtchn)
 {
     guest_clear_bit(d, evtchn->port, &shared_info(d, evtchn_pending));
 }
 
-static void evtchn_2l_unmask(struct domain *d, struct evtchn *evtchn)
+static void cf_check evtchn_2l_unmask(
+    struct domain *d, struct evtchn *evtchn)
 {
     struct vcpu *v = d->vcpu[evtchn->notify_vcpu_id];
     unsigned int port = evtchn->port;
@@ -64,8 +67,8 @@ static void evtchn_2l_unmask(struct domain *d, struct evtchn *evtchn)
     }
 }
 
-static bool evtchn_2l_is_pending(const struct domain *d,
-                                 const struct evtchn *evtchn)
+static bool cf_check evtchn_2l_is_pending(
+    const struct domain *d, const struct evtchn *evtchn)
 {
     evtchn_port_t port = evtchn->port;
     unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d);
@@ -75,8 +78,8 @@ static bool evtchn_2l_is_pending(const struct domain *d,
             guest_test_bit(d, port, &shared_info(d, evtchn_pending)));
 }
 
-static bool evtchn_2l_is_masked(const struct domain *d,
-                                const struct evtchn *evtchn)
+static bool cf_check evtchn_2l_is_masked(
+    const struct domain *d, const struct evtchn *evtchn)
 {
     evtchn_port_t port = evtchn->port;
     unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d);
@@ -86,8 +89,8 @@ static bool evtchn_2l_is_masked(const struct domain *d,
             guest_test_bit(d, port, &shared_info(d, evtchn_mask)));
 }
 
-static void evtchn_2l_print_state(struct domain *d,
-                                  const struct evtchn *evtchn)
+static void cf_check evtchn_2l_print_state(
+    struct domain *d, const struct evtchn *evtchn)
 {
     struct vcpu *v = d->vcpu[evtchn->notify_vcpu_id];
 
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 67ac4dd15dcf..e26904e7508f 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -99,7 +99,8 @@ static xen_event_channel_notification_t __read_mostly
     xen_consumers[NR_XEN_CONSUMERS];
 
 /* Default notification action: wake up from wait_on_xen_event_channel(). */
-static void default_xen_notification_fn(struct vcpu *v, unsigned int port)
+static void cf_check default_xen_notification_fn(
+    struct vcpu *v, unsigned int port)
 {
     /* Consumer needs notification only if blocked. */
     if ( test_and_clear_bit(_VPF_blocked_in_xen, &v->pause_flags) )
diff --git a/xen/common/event_fifo.c b/xen/common/event_fifo.c
index 2fb01b82db84..ed4d3beb10f3 100644
--- a/xen/common/event_fifo.c
+++ b/xen/common/event_fifo.c
@@ -78,7 +78,7 @@ static inline event_word_t *evtchn_fifo_word_from_port(const struct domain *d,
     return d->evtchn_fifo->event_array[p] + w;
 }
 
-static void evtchn_fifo_init(struct domain *d, struct evtchn *evtchn)
+static void cf_check evtchn_fifo_init(struct domain *d, struct evtchn *evtchn)
 {
     event_word_t *word;
 
@@ -158,7 +158,8 @@ static bool_t evtchn_fifo_set_link(struct domain *d, event_word_t *word,
     return 1;
 }
 
-static void evtchn_fifo_set_pending(struct vcpu *v, struct evtchn *evtchn)
+static void cf_check evtchn_fifo_set_pending(
+    struct vcpu *v, struct evtchn *evtchn)
 {
     struct domain *d = v->domain;
     unsigned int port;
@@ -317,7 +318,8 @@ static void evtchn_fifo_set_pending(struct vcpu *v, struct evtchn *evtchn)
         evtchn_check_pollers(d, port);
 }
 
-static void evtchn_fifo_clear_pending(struct domain *d, struct evtchn *evtchn)
+static void cf_check evtchn_fifo_clear_pending(
+    struct domain *d, struct evtchn *evtchn)
 {
     event_word_t *word;
 
@@ -334,7 +336,7 @@ static void evtchn_fifo_clear_pending(struct domain *d, struct evtchn *evtchn)
     guest_clear_bit(d, EVTCHN_FIFO_PENDING, word);
 }
 
-static void evtchn_fifo_unmask(struct domain *d, struct evtchn *evtchn)
+static void cf_check evtchn_fifo_unmask(struct domain *d, struct evtchn *evtchn)
 {
     struct vcpu *v = d->vcpu[evtchn->notify_vcpu_id];
     event_word_t *word;
@@ -350,32 +352,32 @@ static void evtchn_fifo_unmask(struct domain *d, struct evtchn *evtchn)
         evtchn_fifo_set_pending(v, evtchn);
 }
 
-static bool evtchn_fifo_is_pending(const struct domain *d,
-                                   const struct evtchn *evtchn)
+static bool cf_check evtchn_fifo_is_pending(
+    const struct domain *d, const struct evtchn *evtchn)
 {
     const event_word_t *word = evtchn_fifo_word_from_port(d, evtchn->port);
 
     return word && guest_test_bit(d, EVTCHN_FIFO_PENDING, word);
 }
 
-static bool_t evtchn_fifo_is_masked(const struct domain *d,
-                                    const struct evtchn *evtchn)
+static bool cf_check evtchn_fifo_is_masked(
+    const struct domain *d, const struct evtchn *evtchn)
 {
     const event_word_t *word = evtchn_fifo_word_from_port(d, evtchn->port);
 
     return !word || guest_test_bit(d, EVTCHN_FIFO_MASKED, word);
 }
 
-static bool_t evtchn_fifo_is_busy(const struct domain *d,
-                                  const struct evtchn *evtchn)
+static bool cf_check evtchn_fifo_is_busy(
+    const struct domain *d, const struct evtchn *evtchn)
 {
     const event_word_t *word = evtchn_fifo_word_from_port(d, evtchn->port);
 
     return word && guest_test_bit(d, EVTCHN_FIFO_LINKED, word);
 }
 
-static int evtchn_fifo_set_priority(struct domain *d, struct evtchn *evtchn,
-                                    unsigned int priority)
+static int cf_check evtchn_fifo_set_priority(
+    struct domain *d, struct evtchn *evtchn, unsigned int priority)
 {
     if ( priority > EVTCHN_FIFO_PRIORITY_MIN )
         return -EINVAL;
@@ -390,8 +392,8 @@ static int evtchn_fifo_set_priority(struct domain *d, struct evtchn *evtchn,
     return 0;
 }
 
-static void evtchn_fifo_print_state(struct domain *d,
-                                    const struct evtchn *evtchn)
+static void cf_check evtchn_fifo_print_state(
+    struct domain *d, const struct evtchn *evtchn)
 {
     event_word_t *word;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232831.403941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawu-0002GJ-7I; Fri, 26 Nov 2021 13:07:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232831.403941; Fri, 26 Nov 2021 13:07:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawt-0002EF-MQ; Fri, 26 Nov 2021 13:07:31 +0000
Received: by outflank-mailman (input) for mailman id 232831;
 Fri, 26 Nov 2021 13:07:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavm-0003W9-0I
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:22 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a57716ae-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a57716ae-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931980;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=WTIRJTAjCr7fLAVZPwIgCZwnRELjNRnUT72EuTQsn8A=;
  b=GTI0ITRoK/KTNMCGL5ikwqvqc5NedEm+4RfZXgNGb8mGYWQ8oMS6mZqD
   5Hq9+fASZiXWyCFMrBXn61A8bEPO4Hhx+kDziMRYx/HluN+dKKXNKrLlm
   uumVkC6MmoZtkX0gI0j080+def9aYCq8PYAOc0qc2mXOml2Xucyb1poPh
   0=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: /9KGlOuy6Tx9M98ey6QNrBzDzYpB52YceVWdKiE4VRJG+h33+wRSnDJeGE3By+kCxjPe50poE4
 EBr90O2Fe3nUR0769x50SUg/TLj1z2CBgGrWkbGqwEP6fF/+uP6Mxl+cbGrr/61qPZiw9QDdFu
 Udm8gTv8bQ6vW+YvjctlMxWhzLzi/miP0m1HDfS3d21y2/BgF+sNcWZYrAqixu6CXMvMGCWt/y
 MqdoVUGNbZzvuv8R+8K8wmCiU9j75Kt0+2zZlNwCWYuZ/Ov4S97RxdXrheT3ltPj+ezcfElveg
 +mxQtNPMwFwgFoB74WrEApfA
X-SBRS: 5.1
X-MesageID: 58696049
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:PHFOvarbvgBxPapGai1UZzw75jleBmLVYhIvgKrLsJaIsI4StFCzt
 garIBmOO/aMNzfzLY0gO4ni9UkFuZbVm9FrGQNkqH9jFnsS9ZuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2ILnW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnY6VdC04G5fHosYEfV5YPid/Y4RJ1ZaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O
 ppHOGQ3MEWojxtnGUUqOLRgxt+RvWDccj8Jp1iK+YUp7D2GpOB2+Oe0a4eEEjCQfu1Kmm6Iq
 2SA+H72ajk4HtGCzTuO8lq3m/TC2yj8Xeo6BLC+s/JnnlCX7mgSEwENE0u2p+GjjUyzUM4ZL
 FYbkhfCtoBrqhbtFIOkGUTl/jjU5XbwRua8DcUozTyn24/u6Dy7H0ZDThNHaYIPu+IfEGlCO
 kCyo/vlAjlmsbuwQH2b96uJoT7aBRX5PVPudgdfE1JbvoCLTJUby0uWE409SPLdYsjdQGmom
 1i3QD4Ca6L/ZCLh/4Gy5hj5jj2lvfAlpSZlt1yMDgpJAu6UDbNJhrBEC3CHsp6sz67DFzFtW
 UTofeDFt4ji6rnXyUSwrB0lRu3B2hp8GGS0baRTN5cg7S+x3HWoYJpd5jpzTG8wbJ1bKWG0P
 x6P518KjHO2AJdMRfQsC25WI553pZUM6Py/DqyEBjawSsQZmPC7ENFGOhfLgjGFfLkEmqAjI
 5aLGftA/l5BYZmLOAGeHr9HuZdyn3hW7TqKGfjTkkT2uZLDNSX9YepUbzOzghURsfrsTPP9q
 I0EaaNnCnx3DYXDX8Ug2dJJcA1RcyFkXcueRg4+XrfrHzeK0VoJU5f5qY7NsaQ+90iMvuuXr
 Hy7RGFCz1/z2S/OJQmQMygxY7LzR5dv63k8OHV0b1qv3nEiZ6ep7bseKMRrLeV2qrQ7wK4mV
 eQBduWBHu9LFmbN9QMCYMSvt4dlbhmq216DZnL3fDglcpd8bAXV4du4LBD3/SwDA3Pv58szq
 rGtzC3BRp8HS1gwBcracqv3nViwoWIciKR5WE6Reotff0Dl8Y5LLS3tj6Bof5FQeEubnjbDj
 lSYGxYVo+XJsrQZytiRiPDWtZqtHst/AlFeQzvR44GpOHSI5WGk24JBDrqFJGiPSGPu9ay+T
 uxJ1PWgYuYflVNHvocgQbZmyaUyu4nmq7NAl1k2GXzKaxKgC696I2nA1s5K7/UfyrhcsAqwe
 0SO5tgFZunZZJK7SAYcdFg/c+CO9fAIgT2Dv/06LXLz6DJz4LfaA15ZOAOBiXAFIbZ4WG//L
 TzNZCLCB9SDtycX
IronPort-HdrOrdr: A9a23:YLOTgqy3ss8Ye9AVETqxKrPwFL1zdoMgy1knxilNoRw8SKKlfq
 eV7Y0mPH7P+VAssR4b+exoVJPtfZqYz+8R3WBzB8bEYOCFghrKEGgK1+KLqFeMJ8S9zJ846U
 4JSdkHNDSaNzlHZKjBjzVQa+xQouW6zA==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58696049"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 32/65] x86/power: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:13 +0000
Message-ID: <20211126123446.32324-33-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

cpufreq_governor_dbs() has no external callers so make it static.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/acpi/cpufreq/cpufreq.c    | 14 +++++++-------
 xen/arch/x86/acpi/cpufreq/powernow.c   | 15 ++++++++-------
 xen/common/core_parking.c              |  4 ++--
 xen/drivers/cpufreq/cpufreq_ondemand.c |  6 ++++--
 xen/include/acpi/cpufreq/cpufreq.h     |  1 -
 5 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 8133c2dd958c..c27cbb2304f2 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -320,7 +320,7 @@ unsigned int get_measured_perf(unsigned int cpu, unsigned int flag)
     return policy->cpuinfo.max_freq * perf_percent / 100;
 }
 
-static unsigned int get_cur_freq_on_cpu(unsigned int cpu)
+static unsigned int cf_check get_cur_freq_on_cpu(unsigned int cpu)
 {
     struct cpufreq_policy *policy;
     struct acpi_cpufreq_data *data;
@@ -369,8 +369,9 @@ static unsigned int check_freqs(const cpumask_t *mask, unsigned int freq,
     return 0;
 }
 
-static int acpi_cpufreq_target(struct cpufreq_policy *policy,
-                               unsigned int target_freq, unsigned int relation)
+static int cf_check acpi_cpufreq_target(
+    struct cpufreq_policy *policy,
+    unsigned int target_freq, unsigned int relation)
 {
     struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
     struct processor_performance *perf;
@@ -449,7 +450,7 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
     return result;
 }
 
-static int acpi_cpufreq_verify(struct cpufreq_policy *policy)
+static int cf_check acpi_cpufreq_verify(struct cpufreq_policy *policy)
 {
     struct acpi_cpufreq_data *data;
     struct processor_performance *perf;
@@ -494,8 +495,7 @@ acpi_cpufreq_guess_freq(struct acpi_cpufreq_data *data, unsigned int cpu)
     }
 }
 
-static int 
-acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
+static int cf_check acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
 {
     unsigned int i;
     unsigned int valid_states = 0;
@@ -609,7 +609,7 @@ acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
     return result;
 }
 
-static int acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
+static int cf_check acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
 {
     struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
 
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index ca71ecf72d67..d4c7dcd5d99d 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -67,8 +67,8 @@ static void cf_check update_cpb(void *data)
     }
 }
 
-static int powernow_cpufreq_update (int cpuid,
-				     struct cpufreq_policy *policy)
+static int cf_check powernow_cpufreq_update(
+    int cpuid, struct cpufreq_policy *policy)
 {
     if (!cpumask_test_cpu(cpuid, &cpu_online_map))
         return -EINVAL;
@@ -78,8 +78,9 @@ static int powernow_cpufreq_update (int cpuid,
     return 0;
 }
 
-static int powernow_cpufreq_target(struct cpufreq_policy *policy,
-                               unsigned int target_freq, unsigned int relation)
+static int cf_check powernow_cpufreq_target(
+    struct cpufreq_policy *policy,
+    unsigned int target_freq, unsigned int relation)
 {
     struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
     struct processor_performance *perf;
@@ -180,7 +181,7 @@ static void cf_check get_cpu_data(void *arg)
         amd_fixup_frequency(&perf->states[i]);
 }
 
-static int powernow_cpufreq_verify(struct cpufreq_policy *policy)
+static int cf_check powernow_cpufreq_verify(struct cpufreq_policy *policy)
 {
     struct acpi_cpufreq_data *data;
     struct processor_performance *perf;
@@ -197,7 +198,7 @@ static int powernow_cpufreq_verify(struct cpufreq_policy *policy)
     return cpufreq_frequency_table_verify(policy, data->freq_table);
 }
 
-static int powernow_cpufreq_cpu_init(struct cpufreq_policy *policy)
+static int cf_check powernow_cpufreq_cpu_init(struct cpufreq_policy *policy)
 {
     unsigned int i;
     unsigned int valid_states = 0;
@@ -303,7 +304,7 @@ static int powernow_cpufreq_cpu_init(struct cpufreq_policy *policy)
     return result;
 }
 
-static int powernow_cpufreq_cpu_exit(struct cpufreq_policy *policy)
+static int cf_check powernow_cpufreq_cpu_exit(struct cpufreq_policy *policy)
 {
     struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
 
diff --git a/xen/common/core_parking.c b/xen/common/core_parking.c
index 4afad04f2f68..c4f01291c0be 100644
--- a/xen/common/core_parking.c
+++ b/xen/common/core_parking.c
@@ -53,7 +53,7 @@ static int __init cf_check setup_core_parking_option(const char *str)
 }
 custom_param("core_parking", setup_core_parking_option);
 
-static unsigned int core_parking_performance(unsigned int event)
+static unsigned int cf_check core_parking_performance(unsigned int event)
 {
     unsigned int cpu = -1;
 
@@ -111,7 +111,7 @@ static unsigned int core_parking_performance(unsigned int event)
     return cpu;
 }
 
-static unsigned int core_parking_power(unsigned int event)
+static unsigned int cf_check core_parking_power(unsigned int event)
 {
     unsigned int cpu = -1;
 
diff --git a/xen/drivers/cpufreq/cpufreq_ondemand.c b/xen/drivers/cpufreq/cpufreq_ondemand.c
index ba03eaa2336d..fbcd14d6c32f 100644
--- a/xen/drivers/cpufreq/cpufreq_ondemand.c
+++ b/xen/drivers/cpufreq/cpufreq_ondemand.c
@@ -215,7 +215,8 @@ static void dbs_timer_exit(struct cpu_dbs_info_s *dbs_info)
     kill_timer(&per_cpu(dbs_timer, dbs_info->cpu));
 }
 
-int cpufreq_governor_dbs(struct cpufreq_policy *policy, unsigned int event)
+static int cf_check cpufreq_governor_dbs(
+    struct cpufreq_policy *policy, unsigned int event)
 {
     unsigned int cpu = policy->cpu;
     struct cpu_dbs_info_s *this_dbs_info;
@@ -307,7 +308,8 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy, unsigned int event)
     return 0;
 }
 
-static bool_t __init cpufreq_dbs_handle_option(const char *name, const char *val)
+static bool __init cf_check cpufreq_dbs_handle_option(
+    const char *name, const char *val)
 {
     if ( !strcmp(name, "rate") && val )
     {
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 4958d3f7d315..e5e58c6c30ea 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -227,7 +227,6 @@ struct cpu_dbs_info_s {
     int8_t stoppable;
 };
 
-int cpufreq_governor_dbs(struct cpufreq_policy *policy, unsigned int event);
 int get_cpufreq_ondemand_para(uint32_t *sampling_rate_max,
                               uint32_t *sampling_rate_min,
                               uint32_t *sampling_rate,
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232834.403947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawv-0002Na-61; Fri, 26 Nov 2021 13:07:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232834.403947; Fri, 26 Nov 2021 13:07:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawu-0002K3-90; Fri, 26 Nov 2021 13:07:32 +0000
Received: by outflank-mailman (input) for mailman id 232834;
 Fri, 26 Nov 2021 13:07:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauz-0003W9-DW
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:33 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 85fddd33-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 85fddd33-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931926;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=/bd2B5JZciwzE0+dMFIIH8KGXsdKJbiMpcA3tfgV6qI=;
  b=SLGI0254T9VpElD45XhyqRsctBGtlclB7XQKXU3d1hpfJCp4hD8iKdJy
   N+ji/VC2804D0nXk6uzM5frH3NlvqYl1I5SIrhh4aMUAJYWum0FMTDmXG
   dileimY3NOM0IMDj8TNzDCINfysrTzyE5FFTxadd6G1ZtdfqbvTGb+1LX
   Y=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 0VJ2VbQS0zNheQg0h9xjkyhHsASv7a5dOFTxhYilSCwNr3j0B1FRaOedFFg/lPGWHzIDGsFF3X
 oPBzHHrz1karrjowWj8EyjucIMekvPWhhld5b7oiPSNKba5sXrVp2U3AxBQH0nxd1h0yseAXF/
 xPF5WfHHifL6Xaalc7MiY2DB3CnguJ2Fvy8OLW3QjaHsO9teLD4wrvz6fpPIuv4S7eXnGs+zli
 O1DWBhSPudphVpaSifwp9s4R8PIIz+yn5EnyPh2l7gvdvn7u5DyrQOFs4+/PXdSEJq0VeEFdlF
 kQixZx/2ecQKVpAUzS/KYunu
X-SBRS: 5.1
X-MesageID: 60695278
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:WoulwKATvpnLFBVW/9zkw5YqxClBgxIJ4kV8jS/XYbTApDh0hTBWz
 mJNW2jQMvfbYGP0L48jOt/g8xsE7J/Sy9JlQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX5400w7wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/jnbOpuxo6
 ddxtN+rYkQqFajItcY4TEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcGhGlh25oRTZ4yY
 eI7eQhJMSnFYyFIJw0XCaM3rtWsh3bgJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tkSFo
 mPL+UzpDxdcM8aQoRKe6W6ljOLLmSL9WaoRGae++/osh0ecrkQDBRtTWValrP2Rjk+lR8kZO
 0ES4jApr6U56AqsVNaVdz+SrWOAvxUcc8FNCOB84waIopc4+C7AWDJCFGQYLoV76olmHlTGy
 2NlgfvsRntWjKS0S06ctay/7jCZPCw4D0odMHpsoRQ+3/Hvp4Q6jxTqR9llEbKogtCdJQwc0
 wxmvwBl2exN0JdjO7GTuAme3mny/sShohsdv12PBgqYAhVFiJlJjmBCwXzS9r5+IYmQVTFtV
 1BUypHFvIji4Xxg/RFhodnh/pn1uJ5p0xWG2DaD+qXNERz2oBZPmqgKvVlDyL9BaJpsRNMQS
 Ba7VfltzJFSJmC2SqR8fpi8Dc8npYC5S4+6Bq6JMYsSPMQqHONiwM2ITRXLt4wKuBJx+ZzTx
 L/BKZr8ZZrkIfgPIMWKqxc1juZwm3FWKZL7TpHn1RW3uYdyl1bOIYrpxGCmN7hjhIvd+V292
 48Ga6OilkUOOMWjM3K/2dNCcjg3wY0TWMmeRzp/LbXYfGKL2QgJVpfs/F/WU9A/wvkOyL6Xp
 irVt40x4AOXuEAr4D6iMhhLAI4Dl74lxZ7iFSBzb1uuxVY5ZoOjsPUWe5ctJOF1/+1/1/9kC
 fICfpzYUPhITz3G/RUbbIX889M+JEj621rWMnr3eiU7cr5hWxfNpo3ucDzw+XRcFSGwr8Y//
 eGtj1uJXZoZSg1+J8/Kc/bznUiptH0QlbsqDUvFK9VeYmv2941uJ3Cjh/M7OZhUex7C2iGbx
 0CdBhJB/bvBpIo88d/og6GYrtj2T7siTxQCR2SCtOS4LyjX+Gan0LRsaufQcGCPTn7w9YWje
 f5Rk6P2PsoYkQsYqIF7Cbtqk/4zvoO9u79Aww14N3zXdFD3WKh4K3yL0MQT5K1AwrhV5Vm/V
 k6Vo4QIPLyIPIXuEUILJRpjZeOGjKlGlj7X5PUzAUP7+C4oo+bXDRQMZ0GB2H5HMb94EII52
 uNw6scZ5ju2hgcuLtvb3Dtf8H6BLyBYXqgq3n3A7FQHVub/Jol+XKHh
IronPort-HdrOrdr: A9a23:SwZyDa9XhqFTZsU/0rJuk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re5cjztCWE7gr5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtBD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="60695278"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 25/65] xen/console: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:06 +0000
Message-ID: <20211126123446.32324-26-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/char/console.c   |  4 ++--
 xen/drivers/char/ehci-dbgp.c | 24 +++++++++++++-----------
 xen/drivers/char/ns16550.c   | 26 +++++++++++++-------------
 3 files changed, 28 insertions(+), 26 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 380765ab02fd..d9d6556c2293 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -552,7 +552,7 @@ static void __serial_rx(char c, struct cpu_user_regs *regs)
 #endif
 }
 
-static void serial_rx(char c, struct cpu_user_regs *regs)
+static void cf_check serial_rx(char c, struct cpu_user_regs *regs)
 {
     static int switch_code_count = 0;
 
@@ -1286,7 +1286,7 @@ void panic(const char *fmt, ...)
  * **************************************************************
  */
 
-static void suspend_steal_fn(const char *str, size_t nr) { }
+static void cf_check suspend_steal_fn(const char *str, size_t nr) { }
 static int suspend_steal_id;
 
 int console_suspend(void)
diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c
index a6b57fdf2d19..e205c0da6a61 100644
--- a/xen/drivers/char/ehci-dbgp.c
+++ b/xen/drivers/char/ehci-dbgp.c
@@ -1000,13 +1000,15 @@ static int ehci_dbgp_external_startup(struct ehci_dbgp *dbgp)
 
 typedef void (*set_debug_port_t)(struct ehci_dbgp *, unsigned int);
 
-static void default_set_debug_port(struct ehci_dbgp *dbgp, unsigned int port)
+static void cf_check default_set_debug_port(
+    struct ehci_dbgp *dbgp, unsigned int port)
 {
 }
 
 static set_debug_port_t __read_mostly set_debug_port = default_set_debug_port;
 
-static void nvidia_set_debug_port(struct ehci_dbgp *dbgp, unsigned int port)
+static void cf_check nvidia_set_debug_port(
+    struct ehci_dbgp *dbgp, unsigned int port)
 {
     uint32_t dword = pci_conf_read32(PCI_SBDF(0, dbgp->bus, dbgp->slot,
                                               dbgp->func), 0x74);
@@ -1167,7 +1169,7 @@ static inline void _ehci_dbgp_flush(struct ehci_dbgp *dbgp)
     dbgp->out.chunk = 0;
 }
 
-static void ehci_dbgp_flush(struct serial_port *port)
+static void cf_check ehci_dbgp_flush(struct serial_port *port)
 {
     struct ehci_dbgp *dbgp = port->uart;
     s_time_t goal;
@@ -1196,7 +1198,7 @@ static void ehci_dbgp_flush(struct serial_port *port)
        set_timer(&dbgp->timer, goal);
 }
 
-static void ehci_dbgp_putc(struct serial_port *port, char c)
+static void cf_check ehci_dbgp_putc(struct serial_port *port, char c)
 {
     struct ehci_dbgp *dbgp = port->uart;
 
@@ -1209,7 +1211,7 @@ static void ehci_dbgp_putc(struct serial_port *port, char c)
         ehci_dbgp_flush(port);
 }
 
-static int ehci_dbgp_tx_ready(struct serial_port *port)
+static int cf_check ehci_dbgp_tx_ready(struct serial_port *port)
 {
     struct ehci_dbgp *dbgp = port->uart;
 
@@ -1228,7 +1230,7 @@ static int ehci_dbgp_tx_ready(struct serial_port *port)
            (dbgp->state == dbgp_idle) * DBGP_MAX_PACKET;
 }
 
-static int ehci_dbgp_getc(struct serial_port *port, char *pc)
+static int cf_check ehci_dbgp_getc(struct serial_port *port, char *pc)
 {
     struct ehci_dbgp *dbgp = port->uart;
 
@@ -1309,7 +1311,7 @@ static bool_t ehci_dbgp_setup_preirq(struct ehci_dbgp *dbgp)
     return 0;
 }
 
-static void __init ehci_dbgp_init_preirq(struct serial_port *port)
+static void __init cf_check ehci_dbgp_init_preirq(struct serial_port *port)
 {
     struct ehci_dbgp *dbgp = port->uart;
     u32 debug_port, offset;
@@ -1358,7 +1360,7 @@ static void ehci_dbgp_setup_postirq(struct ehci_dbgp *dbgp)
     set_timer(&dbgp->timer, NOW() + MILLISECS(1));
 }
 
-static void __init ehci_dbgp_init_postirq(struct serial_port *port)
+static void __init cf_check ehci_dbgp_init_postirq(struct serial_port *port)
 {
     struct ehci_dbgp *dbgp = port->uart;
 
@@ -1409,12 +1411,12 @@ static int ehci_dbgp_check_release(struct ehci_dbgp *dbgp)
     return 0;
 }
 
-static void __init ehci_dbgp_endboot(struct serial_port *port)
+static void __init cf_check ehci_dbgp_endboot(struct serial_port *port)
 {
     ehci_dbgp_check_release(port->uart);
 }
 
-static void ehci_dbgp_suspend(struct serial_port *port)
+static void cf_check ehci_dbgp_suspend(struct serial_port *port)
 {
     struct ehci_dbgp *dbgp = port->uart;
 
@@ -1431,7 +1433,7 @@ static void ehci_dbgp_suspend(struct serial_port *port)
     dbgp->state = dbgp_unsafe;
 }
 
-static void ehci_dbgp_resume(struct serial_port *port)
+static void cf_check ehci_dbgp_resume(struct serial_port *port)
 {
     struct ehci_dbgp *dbgp = port->uart;
 
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 990cad39fe85..8df1ee4d5c2c 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -174,7 +174,7 @@ static void handle_dw_usr_busy_quirk(struct ns16550 *uart)
     }
 }
 
-static void ns16550_interrupt(
+static void cf_check ns16550_interrupt(
     int irq, void *dev_id, struct cpu_user_regs *regs)
 {
     struct serial_port *port = dev_id;
@@ -239,7 +239,7 @@ static void cf_check ns16550_poll(void *data)
 #endif
 }
 
-static int ns16550_tx_ready(struct serial_port *port)
+static int cf_check ns16550_tx_ready(struct serial_port *port)
 {
     struct ns16550 *uart = port->uart;
 
@@ -250,13 +250,13 @@ static int ns16550_tx_ready(struct serial_port *port)
               uart->lsr_mask ) == uart->lsr_mask ) ? uart->fifo_size : 0;
 }
 
-static void ns16550_putc(struct serial_port *port, char c)
+static void cf_check ns16550_putc(struct serial_port *port, char c)
 {
     struct ns16550 *uart = port->uart;
     ns_write_reg(uart, UART_THR, c);
 }
 
-static int ns16550_getc(struct serial_port *port, char *pc)
+static int cf_check ns16550_getc(struct serial_port *port, char *pc)
 {
     struct ns16550 *uart = port->uart;
 
@@ -344,7 +344,7 @@ static void ns16550_setup_preirq(struct ns16550 *uart)
                  UART_FCR_ENABLE | UART_FCR_CLRX | UART_FCR_CLTX | UART_FCR_TRG14);
 }
 
-static void __init ns16550_init_preirq(struct serial_port *port)
+static void __init cf_check ns16550_init_preirq(struct serial_port *port)
 {
     struct ns16550 *uart = port->uart;
 
@@ -373,7 +373,7 @@ static void __init ns16550_init_preirq(struct serial_port *port)
         uart->fifo_size = 16;
 }
 
-static void __init ns16550_init_irq(struct serial_port *port)
+static void __init cf_check ns16550_init_irq(struct serial_port *port)
 {
 #ifdef NS16550_PCI
     struct ns16550 *uart = port->uart;
@@ -399,7 +399,7 @@ static void ns16550_setup_postirq(struct ns16550 *uart)
         set_timer(&uart->timer, NOW() + MILLISECS(uart->timeout_ms));
 }
 
-static void __init ns16550_init_postirq(struct serial_port *port)
+static void __init cf_check ns16550_init_postirq(struct serial_port *port)
 {
     struct ns16550 *uart = port->uart;
     int rc, bits;
@@ -491,7 +491,7 @@ static void __init ns16550_init_postirq(struct serial_port *port)
     ns16550_setup_postirq(uart);
 }
 
-static void ns16550_suspend(struct serial_port *port)
+static void cf_check ns16550_suspend(struct serial_port *port)
 {
     struct ns16550 *uart = port->uart;
 
@@ -543,7 +543,7 @@ static void cf_check ns16550_delayed_resume(void *data)
         _ns16550_resume(port);
 }
 
-static void ns16550_resume(struct serial_port *port)
+static void cf_check ns16550_resume(struct serial_port *port)
 {
     struct ns16550 *uart = port->uart;
 
@@ -569,7 +569,7 @@ static void ns16550_resume(struct serial_port *port)
         _ns16550_resume(port);
 }
 
-static void __init ns16550_endboot(struct serial_port *port)
+static void __init cf_check ns16550_endboot(struct serial_port *port)
 {
 #ifdef CONFIG_HAS_IOPORTS
     struct ns16550 *uart = port->uart;
@@ -583,13 +583,13 @@ static void __init ns16550_endboot(struct serial_port *port)
 #endif
 }
 
-static int __init ns16550_irq(struct serial_port *port)
+static int __init cf_check ns16550_irq(struct serial_port *port)
 {
     struct ns16550 *uart = port->uart;
     return ((uart->irq > 0) ? uart->irq : -1);
 }
 
-static void ns16550_start_tx(struct serial_port *port)
+static void cf_check ns16550_start_tx(struct serial_port *port)
 {
     struct ns16550 *uart = port->uart;
     u8 ier = ns_read_reg(uart, UART_IER);
@@ -599,7 +599,7 @@ static void ns16550_start_tx(struct serial_port *port)
         ns_write_reg(uart, UART_IER, ier | UART_IER_ETHREI);
 }
 
-static void ns16550_stop_tx(struct serial_port *port)
+static void cf_check ns16550_stop_tx(struct serial_port *port)
 {
     struct ns16550 *uart = port->uart;
     u8 ier = ns_read_reg(uart, UART_IER);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232836.403952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaww-0002az-6x; Fri, 26 Nov 2021 13:07:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232836.403952; Fri, 26 Nov 2021 13:07:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawv-0002Xh-9B; Fri, 26 Nov 2021 13:07:33 +0000
Received: by outflank-mailman (input) for mailman id 232836;
 Fri, 26 Nov 2021 13:07:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavj-0003W9-LZ
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:19 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3605815-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3605815-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931977;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=UJ5A9G/AzcOIhdVCJGvCmHSUkDZkQpv6RgU2BBYBZyw=;
  b=SxTES20FTHjp6aXbB4yxoa30Jc5qsA2tR+eEYJPSzqV0ABNlJy7gPa9k
   MPJi1Sl3YkQ46NTgtmytKeKvPYxlJQu779WtzyvOPiBlbEpQZjVoKw+lY
   MGCzJ108sKTenNzmyhOu0wkBJUzElZMmk0oaTzzKF2jj4uLbks/BRQbuf
   E=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: KF1gOr6TbldRrSvVXEjgO5zpAxqCD1SOx5b1qfJMq4qGtq0nXiDC0kEje7R7le/vodhGai4Qo3
 myU48NdSI88Uud5m+mPach0vtRG9VBygXFtDSXNUExvTfksp6ImoF6oUnyfekaCb8LpEFu6DH0
 m4V19HTk1LqtzHe+gR3/PVzsdwmDY3v5pqA2Hnc4CeWJ5WMe/1WLdKk6gYHI4TRGBcW3hddX0k
 q23qkFgywyb+SbrnT4QZB9O5tBThskaERPYphaw//bpGF6JcWJ6Cvvub4tB1ckAu4wpM0JvZX6
 Y/3Ej4+0bJcquas/MkVC9q9x
X-SBRS: 5.1
X-MesageID: 58635072
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:7dMC6KhnumFeJs5YkNa1K6gZX161rRcKZh0ujC45NGQN5FlHY01je
 htvXTrUa/eDZmXxf4wiPo6+8R4GsJ6BmNNmTQFprSgxQn8b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy34Dja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /19v82JFRUtHJTOv9szWSthCCRjPpZvreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNauOO
 ZFEMWU1BPjGSw1JAW1LUawmpdb2lkTRSnpIqUOwjJNitgA/yyQuieOwYbI5YOeiWsF9jkue4
 GXc8AzRIDsXKdiewjqt6W+3i6nEmiaTcJIfEvi0++BnhHWXx3cPE1sGWF2ju/67h0WiHdVFJ
 CQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4I+dr0V2fzojt4SGmKGI2dyVEdd8dnZpjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swJP2AAcmV8zlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybZZaJGC4P
 BGP4mu9AaO/2lPxNsebhKrrVqwXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDlJI5fsLXkJIeSJRoxZybXF+
 G+TQEhdxAatjHHLM1zSOHtidKnuTdB0qndiZX4gOlOh2n4CZ4ez7fhAK8trLOd/rOEzn+RpS
 /QletmbBqgdQDrw5DlAP4L2q5ZvdUr3iFvWbTalejU2Y7VpWxfNpo3/ZgLq+SRXVni3uMIyr
 qeOzATeRZZfFQ1uANyPMKCkzk+rvGhbk+V3BhOaLt5WcUTq0Y5rNy2u0aNnf5BScU3On2LI2
 RyXDBEUofj2j7U0qNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVtH79h8HrJswf5s7tfjveYHnAFtHXGNZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQy2vb4vkCKUnn4DN6oeicWkJIMhjQ0CFQIdOZ6m/+L
 TvNbCLO1zGCtw==
IronPort-HdrOrdr: A9a23:kgkWcKOlaP3ZkcBcTvujsMiBIKoaSvp037Eqv3oRdfUzSL3hqy
 nOpoVj6faaskdzZJhNo7+90ey7MBfhHP1OkO8s1NWZLWvbUQKTRekIh+aP/9SjIVyYygc079
 YaT0EUMr3N5DZB4/oSmDPIduod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58635072"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 29/65] x86/hvm: Annotate fnptr targets from device emulation
Date: Fri, 26 Nov 2021 12:34:10 +0000
Message-ID: <20211126123446.32324-30-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/emul-i8254.c                 |  8 +++----
 xen/arch/x86/hvm/emulate.c                | 21 ++++++++---------
 xen/arch/x86/hvm/hpet.c                   |  6 ++---
 xen/arch/x86/hvm/hvm.c                    |  2 +-
 xen/arch/x86/hvm/intercept.c              | 28 +++++++++++++----------
 xen/arch/x86/hvm/io.c                     | 38 +++++++++++++++++--------------
 xen/arch/x86/hvm/ioreq.c                  |  2 +-
 xen/arch/x86/hvm/pmtimer.c                |  4 ++--
 xen/arch/x86/hvm/rtc.c                    |  6 ++---
 xen/arch/x86/hvm/stdvga.c                 | 19 ++++++++--------
 xen/arch/x86/hvm/svm/svm.c                |  4 ++--
 xen/arch/x86/hvm/vioapic.c                |  8 +++----
 xen/arch/x86/hvm/vlapic.c                 | 11 +++++----
 xen/arch/x86/hvm/vmsi.c                   | 14 +++++++-----
 xen/arch/x86/hvm/vpic.c                   |  4 ++--
 xen/drivers/passthrough/amd/iommu_guest.c | 10 ++++----
 xen/include/asm-x86/hvm/vioapic.h         |  2 +-
 17 files changed, 98 insertions(+), 89 deletions(-)

diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c
index 050c784702af..0e09a173187f 100644
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -48,9 +48,9 @@
 #define RW_STATE_WORD0 3
 #define RW_STATE_WORD1 4
 
-static int handle_pit_io(
+static int cf_check handle_pit_io(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val);
-static int handle_speaker_io(
+static int cf_check handle_speaker_io(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val);
 
 #define get_guest_time(v) \
@@ -505,7 +505,7 @@ void pit_deinit(struct domain *d)
 }
 
 /* the intercept action for PIT DM retval:0--not handled; 1--handled */  
-static int handle_pit_io(
+static int cf_check handle_pit_io(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct PITState *vpit = vcpu_vpit(current);
@@ -548,7 +548,7 @@ static uint32_t speaker_ioport_read(
             (pit_get_out(pit, 2) << 5) | (refresh_clock << 4));
 }
 
-static int handle_speaker_io(
+static int cf_check handle_speaker_io(
     int dir, unsigned int port, uint32_t bytes, uint32_t *val)
 {
     struct PITState *vpit = vcpu_vpit(current);
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 425c8ddd9779..bd4e3ab6456e 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -71,19 +71,17 @@ static void hvmtrace_io_assist(const ioreq_t *p)
     trace_var(event, 0/*!cycles*/, size, buffer);
 }
 
-static int null_read(const struct hvm_io_handler *io_handler,
-                     uint64_t addr,
-                     uint32_t size,
-                     uint64_t *data)
+static int cf_check null_read(
+    const struct hvm_io_handler *io_handler, uint64_t addr, uint32_t size,
+    uint64_t *data)
 {
     *data = ~0ul;
     return X86EMUL_OKAY;
 }
 
-static int null_write(const struct hvm_io_handler *handler,
-                      uint64_t addr,
-                      uint32_t size,
-                      uint64_t data)
+static int cf_check null_write(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t data)
 {
     return X86EMUL_OKAY;
 }
@@ -114,10 +112,9 @@ static const struct hvm_io_handler null_handler = {
     .ops = &null_ops
 };
 
-static int ioreq_server_read(const struct hvm_io_handler *io_handler,
-                    uint64_t addr,
-                    uint32_t size,
-                    uint64_t *data)
+static int cf_check ioreq_server_read(
+    const struct hvm_io_handler *io_handler, uint64_t addr, uint32_t size,
+    uint64_t *data)
 {
     if ( hvm_copy_from_guest_phys(data, addr, size) != HVMTRANS_okay )
         return X86EMUL_UNHANDLEABLE;
diff --git a/xen/arch/x86/hvm/hpet.c b/xen/arch/x86/hvm/hpet.c
index 8267f0b8a278..7bdb51cfa1c4 100644
--- a/xen/arch/x86/hvm/hpet.c
+++ b/xen/arch/x86/hvm/hpet.c
@@ -162,7 +162,7 @@ static inline int hpet_check_access_length(
     return 0;
 }
 
-static int hpet_read(
+static int cf_check hpet_read(
     struct vcpu *v, unsigned long addr, unsigned int length,
     unsigned long *pval)
 {
@@ -351,7 +351,7 @@ static void timer_sanitize_int_route(HPETState *h, unsigned int tn)
                   HPET_TN_ROUTE);
 }
 
-static int hpet_write(
+static int cf_check hpet_write(
     struct vcpu *v, unsigned long addr,
     unsigned int length, unsigned long val)
 {
@@ -569,7 +569,7 @@ static int hpet_write(
     return X86EMUL_OKAY;
 }
 
-static int hpet_range(struct vcpu *v, unsigned long addr)
+static int cf_check hpet_range(struct vcpu *v, unsigned long addr)
 {
     return ( (addr >= HPET_BASE_ADDRESS) &&
              (addr < (HPET_BASE_ADDRESS + HPET_MMAP_SIZE)) );
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 16e8a32fa768..785add50896a 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -576,7 +576,7 @@ void hvm_do_resume(struct vcpu *v)
     }
 }
 
-static int hvm_print_line(
+static int cf_check hvm_print_line(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct domain *cd = current->domain;
diff --git a/xen/arch/x86/hvm/intercept.c b/xen/arch/x86/hvm/intercept.c
index 02ca3b05b05a..ffa31b746716 100644
--- a/xen/arch/x86/hvm/intercept.c
+++ b/xen/arch/x86/hvm/intercept.c
@@ -32,8 +32,8 @@
 #include <xen/event.h>
 #include <xen/iommu.h>
 
-static bool_t hvm_mmio_accept(const struct hvm_io_handler *handler,
-                              const ioreq_t *p)
+static bool cf_check hvm_mmio_accept(
+    const struct hvm_io_handler *handler, const ioreq_t *p)
 {
     paddr_t first = ioreq_mmio_first_byte(p), last;
 
@@ -51,16 +51,18 @@ static bool_t hvm_mmio_accept(const struct hvm_io_handler *handler,
     return 1;
 }
 
-static int hvm_mmio_read(const struct hvm_io_handler *handler,
-                         uint64_t addr, uint32_t size, uint64_t *data)
+static int cf_check hvm_mmio_read(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t *data)
 {
     BUG_ON(handler->type != IOREQ_TYPE_COPY);
 
     return handler->mmio.ops->read(current, addr, size, data);
 }
 
-static int hvm_mmio_write(const struct hvm_io_handler *handler,
-                          uint64_t addr, uint32_t size, uint64_t data)
+static int cf_check hvm_mmio_write(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t data)
 {
     BUG_ON(handler->type != IOREQ_TYPE_COPY);
 
@@ -73,8 +75,8 @@ static const struct hvm_io_ops mmio_ops = {
     .write = hvm_mmio_write
 };
 
-static bool_t hvm_portio_accept(const struct hvm_io_handler *handler,
-                                const ioreq_t *p)
+static bool cf_check hvm_portio_accept(
+    const struct hvm_io_handler *handler, const ioreq_t *p)
 {
     unsigned int start = handler->portio.port;
     unsigned int end = start + handler->portio.size;
@@ -84,8 +86,9 @@ static bool_t hvm_portio_accept(const struct hvm_io_handler *handler,
     return (p->addr >= start) && ((p->addr + p->size) <= end);
 }
 
-static int hvm_portio_read(const struct hvm_io_handler *handler,
-                           uint64_t addr, uint32_t size, uint64_t *data)
+static int cf_check hvm_portio_read(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t *data)
 {
     uint32_t val = ~0u;
     int rc;
@@ -98,8 +101,9 @@ static int hvm_portio_read(const struct hvm_io_handler *handler,
     return rc;
 }
 
-static int hvm_portio_write(const struct hvm_io_handler *handler,
-                            uint64_t addr, uint32_t size, uint64_t data)
+static int cf_check hvm_portio_write(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t data)
 {
     uint32_t val = data;
 
diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
index 93f1d1503fa6..f70bfde90143 100644
--- a/xen/arch/x86/hvm/io.c
+++ b/xen/arch/x86/hvm/io.c
@@ -156,8 +156,8 @@ bool handle_pio(uint16_t port, unsigned int size, int dir)
     return true;
 }
 
-static bool_t g2m_portio_accept(const struct hvm_io_handler *handler,
-                                const ioreq_t *p)
+static bool cf_check g2m_portio_accept(
+    const struct hvm_io_handler *handler, const ioreq_t *p)
 {
     struct vcpu *curr = current;
     const struct hvm_domain *hvm = &curr->domain->arch.hvm;
@@ -179,8 +179,9 @@ static bool_t g2m_portio_accept(const struct hvm_io_handler *handler,
     return 0;
 }
 
-static int g2m_portio_read(const struct hvm_io_handler *handler,
-                           uint64_t addr, uint32_t size, uint64_t *data)
+static int cf_check g2m_portio_read(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t *data)
 {
     struct hvm_vcpu_io *hvio = &current->arch.hvm.hvm_io;
     const struct g2m_ioport *g2m_ioport = hvio->g2m_ioport;
@@ -204,8 +205,9 @@ static int g2m_portio_read(const struct hvm_io_handler *handler,
     return X86EMUL_OKAY;
 }
 
-static int g2m_portio_write(const struct hvm_io_handler *handler,
-                            uint64_t addr, uint32_t size, uint64_t data)
+static int cf_check g2m_portio_write(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t data)
 {
     struct hvm_vcpu_io *hvio = &current->arch.hvm.hvm_io;
     const struct g2m_ioport *g2m_ioport = hvio->g2m_ioport;
@@ -261,14 +263,15 @@ unsigned int hvm_pci_decode_addr(unsigned int cf8, unsigned int addr,
 }
 
 /* vPCI config space IO ports handlers (0xcf8/0xcfc). */
-static bool vpci_portio_accept(const struct hvm_io_handler *handler,
-                               const ioreq_t *p)
+static bool cf_check vpci_portio_accept(
+    const struct hvm_io_handler *handler, const ioreq_t *p)
 {
     return (p->addr == 0xcf8 && p->size == 4) || (p->addr & ~3) == 0xcfc;
 }
 
-static int vpci_portio_read(const struct hvm_io_handler *handler,
-                            uint64_t addr, uint32_t size, uint64_t *data)
+static int cf_check vpci_portio_read(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t *data)
 {
     const struct domain *d = current->domain;
     unsigned int reg;
@@ -299,8 +302,9 @@ static int vpci_portio_read(const struct hvm_io_handler *handler,
     return X86EMUL_OKAY;
 }
 
-static int vpci_portio_write(const struct hvm_io_handler *handler,
-                             uint64_t addr, uint32_t size, uint64_t data)
+static int cf_check vpci_portio_write(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t data)
 {
     struct domain *d = current->domain;
     unsigned int reg;
@@ -387,7 +391,7 @@ static unsigned int vpci_mmcfg_decode_addr(const struct hvm_mmcfg *mmcfg,
     return addr & (PCI_CFG_SPACE_EXP_SIZE - 1);
 }
 
-static int vpci_mmcfg_accept(struct vcpu *v, unsigned long addr)
+static int cf_check vpci_mmcfg_accept(struct vcpu *v, unsigned long addr)
 {
     struct domain *d = v->domain;
     bool found;
@@ -399,8 +403,8 @@ static int vpci_mmcfg_accept(struct vcpu *v, unsigned long addr)
     return found;
 }
 
-static int vpci_mmcfg_read(struct vcpu *v, unsigned long addr,
-                           unsigned int len, unsigned long *data)
+static int cf_check vpci_mmcfg_read(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
 {
     struct domain *d = v->domain;
     const struct hvm_mmcfg *mmcfg;
@@ -426,8 +430,8 @@ static int vpci_mmcfg_read(struct vcpu *v, unsigned long addr,
     return X86EMUL_OKAY;
 }
 
-static int vpci_mmcfg_write(struct vcpu *v, unsigned long addr,
-                            unsigned int len, unsigned long data)
+static int cf_check vpci_mmcfg_write(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
 {
     struct domain *d = v->domain;
     const struct hvm_mmcfg *mmcfg;
diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index 02ad9db56523..8409d910d689 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -319,7 +319,7 @@ bool arch_ioreq_server_get_type_addr(const struct domain *d,
     return true;
 }
 
-static int hvm_access_cf8(
+static int cf_check hvm_access_cf8(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct domain *d = current->domain;
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 808819d1de91..60e3c8de4c6b 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -152,7 +152,7 @@ static void cf_check pmt_timer_callback(void *opaque)
 }
 
 /* Handle port I/O to the PM1a_STS and PM1a_EN registers */
-static int handle_evt_io(
+static int cf_check handle_evt_io(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct vcpu *v = current;
@@ -216,7 +216,7 @@ static int handle_evt_io(
 
 
 /* Handle port I/O to the TMR_VAL register */
-static int handle_pmt_io(
+static int cf_check handle_pmt_io(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct vcpu *v = current;
diff --git a/xen/arch/x86/hvm/rtc.c b/xen/arch/x86/hvm/rtc.c
index 09d3501276bc..bdc647e433e9 100644
--- a/xen/arch/x86/hvm/rtc.c
+++ b/xen/arch/x86/hvm/rtc.c
@@ -696,7 +696,7 @@ static uint32_t rtc_ioport_read(RTCState *s, uint32_t addr)
     return ret;
 }
 
-static int handle_rtc_io(
+static int cf_check handle_rtc_io(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct RTCState *vrtc = vcpu_vrtc(current);
@@ -809,8 +809,8 @@ void rtc_reset(struct domain *d)
 }
 
 /* RTC mediator for HVM hardware domain. */
-static int hw_rtc_io(int dir, unsigned int port, unsigned int size,
-                     uint32_t *val)
+static int cf_check hw_rtc_io(
+    int dir, unsigned int port, unsigned int size, uint32_t *val)
 {
     if ( dir == IOREQ_READ )
         *val = ~0;
diff --git a/xen/arch/x86/hvm/stdvga.c b/xen/arch/x86/hvm/stdvga.c
index ab9781d82a55..be8200c8d072 100644
--- a/xen/arch/x86/hvm/stdvga.c
+++ b/xen/arch/x86/hvm/stdvga.c
@@ -199,7 +199,7 @@ static void stdvga_out(uint32_t port, uint32_t bytes, uint32_t val)
     }
 }
 
-static int stdvga_intercept_pio(
+static int cf_check stdvga_intercept_pio(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct hvm_hw_stdvga *s = &current->domain->arch.hvm.stdvga;
@@ -302,8 +302,9 @@ static uint8_t stdvga_mem_readb(uint64_t addr)
     return ret;
 }
 
-static int stdvga_mem_read(const struct hvm_io_handler *handler,
-                           uint64_t addr, uint32_t size, uint64_t *p_data)
+static int cf_check stdvga_mem_read(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t *p_data)
 {
     uint64_t data = ~0ul;
 
@@ -453,9 +454,9 @@ static void stdvga_mem_writeb(uint64_t addr, uint32_t val)
     }
 }
 
-static int stdvga_mem_write(const struct hvm_io_handler *handler,
-                            uint64_t addr, uint32_t size,
-                            uint64_t data)
+static int cf_check stdvga_mem_write(
+    const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
+    uint64_t data)
 {
     struct hvm_hw_stdvga *s = &current->domain->arch.hvm.stdvga;
     ioreq_t p = {
@@ -514,8 +515,8 @@ static int stdvga_mem_write(const struct hvm_io_handler *handler,
     return ioreq_send(srv, &p, 1);
 }
 
-static bool_t stdvga_mem_accept(const struct hvm_io_handler *handler,
-                                const ioreq_t *p)
+static bool cf_check stdvga_mem_accept(
+    const struct hvm_io_handler *handler, const ioreq_t *p)
 {
     struct hvm_hw_stdvga *s = &current->domain->arch.hvm.stdvga;
 
@@ -558,7 +559,7 @@ static bool_t stdvga_mem_accept(const struct hvm_io_handler *handler,
     return 0;
 }
 
-static void stdvga_mem_complete(const struct hvm_io_handler *handler)
+static void cf_check stdvga_mem_complete(const struct hvm_io_handler *handler)
 {
     struct hvm_hw_stdvga *s = &current->domain->arch.hvm.stdvga;
 
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 9c62c0cd80ee..ffa7c51e376f 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -1129,8 +1129,8 @@ static void svm_host_osvw_init(void)
     spin_unlock(&osvw_lock);
 }
 
-static int acpi_c1e_quirk(int dir, unsigned int port, unsigned int bytes,
-                          uint32_t *val)
+static int cf_check acpi_c1e_quirk(
+    int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     ASSERT(bytes == 1 && port == acpi_smi_cmd);
 
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index 553c0f76eff8..b56549aa22d1 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -135,7 +135,7 @@ static uint32_t vioapic_read_indirect(const struct hvm_vioapic *vioapic)
     return result;
 }
 
-static int vioapic_read(
+static int cf_check vioapic_read(
     struct vcpu *v, unsigned long addr,
     unsigned int length, unsigned long *pval)
 {
@@ -351,7 +351,7 @@ static void vioapic_write_indirect(
     }
 }
 
-static int vioapic_write(
+static int cf_check vioapic_write(
     struct vcpu *v, unsigned long addr,
     unsigned int length, unsigned long val)
 {
@@ -383,7 +383,7 @@ static int vioapic_write(
     return X86EMUL_OKAY;
 }
 
-static int vioapic_range(struct vcpu *v, unsigned long addr)
+static int cf_check vioapic_range(struct vcpu *v, unsigned long addr)
 {
     return !!addr_vioapic(v->domain, addr);
 }
@@ -568,7 +568,7 @@ int vioapic_get_mask(const struct domain *d, unsigned int gsi)
     return vioapic->redirtbl[pin].fields.mask;
 }
 
-int vioapic_get_vector(const struct domain *d, unsigned int gsi)
+int cf_check vioapic_get_vector(const struct domain *d, unsigned int gsi)
 {
     unsigned int pin = 0; /* See gsi_vioapic */
     const struct hvm_vioapic *vioapic = gsi_vioapic(d, gsi, &pin);
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index fe375912bef1..652e3cb87f12 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -615,8 +615,9 @@ static uint32_t vlapic_read_aligned(const struct vlapic *vlapic,
     return 0;
 }
 
-static int vlapic_mmio_read(struct vcpu *v, unsigned long address,
-                            unsigned int len, unsigned long *pval)
+static int cf_check vlapic_mmio_read(
+    struct vcpu *v, unsigned long address, unsigned int len,
+    unsigned long *pval)
 {
     struct vlapic *vlapic = vcpu_vlapic(v);
     unsigned int offset = address - vlapic_base_address(vlapic);
@@ -898,8 +899,8 @@ void vlapic_reg_write(struct vcpu *v, unsigned int reg, uint32_t val)
     }
 }
 
-static int vlapic_mmio_write(struct vcpu *v, unsigned long address,
-                             unsigned int len, unsigned long val)
+static int cf_check vlapic_mmio_write(
+    struct vcpu *v, unsigned long address, unsigned int len, unsigned long val)
 {
     struct vlapic *vlapic = vcpu_vlapic(v);
     unsigned int offset = address - vlapic_base_address(vlapic);
@@ -1052,7 +1053,7 @@ int guest_wrmsr_x2apic(struct vcpu *v, uint32_t msr, uint64_t msr_content)
     return X86EMUL_OKAY;
 }
 
-static int vlapic_range(struct vcpu *v, unsigned long addr)
+static int cf_check vlapic_range(struct vcpu *v, unsigned long addr)
 {
     struct vlapic *vlapic = vcpu_vlapic(v);
     unsigned long offset  = addr - vlapic_base_address(vlapic);
diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index 2889575a2035..d4a8c953e23f 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -211,8 +211,9 @@ static struct msi_desc *msixtbl_addr_to_desc(
     return NULL;
 }
 
-static int msixtbl_read(const struct hvm_io_handler *handler,
-                        uint64_t address, uint32_t len, uint64_t *pval)
+static int cf_check msixtbl_read(
+    const struct hvm_io_handler *handler, uint64_t address, uint32_t len,
+    uint64_t *pval)
 {
     unsigned long offset;
     struct msixtbl_entry *entry;
@@ -350,14 +351,15 @@ static int msixtbl_write(struct vcpu *v, unsigned long address,
     return r;
 }
 
-static int _msixtbl_write(const struct hvm_io_handler *handler,
-                          uint64_t address, uint32_t len, uint64_t val)
+static int cf_check _msixtbl_write(
+    const struct hvm_io_handler *handler, uint64_t address, uint32_t len,
+    uint64_t val)
 {
     return msixtbl_write(current, address, len, val);
 }
 
-static bool_t msixtbl_range(const struct hvm_io_handler *handler,
-                            const ioreq_t *r)
+static bool cf_check msixtbl_range(
+    const struct hvm_io_handler *handler, const ioreq_t *r)
 {
     struct vcpu *curr = current;
     unsigned long addr = r->addr;
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c
index 91c2c6983393..5d8ef259b710 100644
--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -351,7 +351,7 @@ static uint32_t vpic_ioport_read(struct hvm_hw_vpic *vpic, uint32_t addr)
     return vpic->imr;
 }
 
-static int vpic_intercept_pic_io(
+static int cf_check vpic_intercept_pic_io(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct hvm_hw_vpic *vpic;
@@ -373,7 +373,7 @@ static int vpic_intercept_pic_io(
     return X86EMUL_OKAY;
 }
 
-static int vpic_intercept_elcr_io(
+static int cf_check vpic_intercept_elcr_io(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct hvm_hw_vpic *vpic;
diff --git a/xen/drivers/passthrough/amd/iommu_guest.c b/xen/drivers/passthrough/amd/iommu_guest.c
index 361ff864d846..80a331f546ed 100644
--- a/xen/drivers/passthrough/amd/iommu_guest.c
+++ b/xen/drivers/passthrough/amd/iommu_guest.c
@@ -645,8 +645,8 @@ static uint64_t iommu_mmio_read64(struct guest_iommu *iommu,
     return val;
 }
 
-static int guest_iommu_mmio_read(struct vcpu *v, unsigned long addr,
-                                 unsigned int len, unsigned long *pval)
+static int cf_check guest_iommu_mmio_read(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *pval)
 {
     struct guest_iommu *iommu = vcpu_iommu(v);
     unsigned long offset;
@@ -735,8 +735,8 @@ static void guest_iommu_mmio_write64(struct guest_iommu *iommu,
     }
 }
 
-static int guest_iommu_mmio_write(struct vcpu *v, unsigned long addr,
-                                  unsigned int len, unsigned long val)
+static int cf_check guest_iommu_mmio_write(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long val)
 {
     struct guest_iommu *iommu = vcpu_iommu(v);
     unsigned long offset;
@@ -819,7 +819,7 @@ static void guest_iommu_reg_init(struct guest_iommu *iommu)
     iommu->reg_ext_feature = ef;
 }
 
-static int guest_iommu_mmio_range(struct vcpu *v, unsigned long addr)
+static int cf_check guest_iommu_mmio_range(struct vcpu *v, unsigned long addr)
 {
     struct guest_iommu *iommu = vcpu_iommu(v);
 
diff --git a/xen/include/asm-x86/hvm/vioapic.h b/xen/include/asm-x86/hvm/vioapic.h
index 36b64d20d60c..2944ec20dd53 100644
--- a/xen/include/asm-x86/hvm/vioapic.h
+++ b/xen/include/asm-x86/hvm/vioapic.h
@@ -66,7 +66,7 @@ void vioapic_irq_positive_edge(struct domain *d, unsigned int irq);
 void vioapic_update_EOI(struct domain *d, u8 vector);
 
 int vioapic_get_mask(const struct domain *d, unsigned int gsi);
-int vioapic_get_vector(const struct domain *d, unsigned int gsi);
+int cf_check vioapic_get_vector(const struct domain *d, unsigned int gsi);
 int vioapic_get_trigger_mode(const struct domain *d, unsigned int gsi);
 
 #endif /* __ASM_X86_HVM_VIOAPIC_H__ */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232838.403962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqawx-0002wQ-W6; Fri, 26 Nov 2021 13:07:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232838.403962; Fri, 26 Nov 2021 13:07:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaww-0002rv-VT; Fri, 26 Nov 2021 13:07:34 +0000
Received: by outflank-mailman (input) for mailman id 232838;
 Fri, 26 Nov 2021 13:07:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauZ-0003W9-UN
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:08 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7872a09d-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:05 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7872a09d-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931905;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=ndytZ7gB54U/vWJSnFX0QALHgIGbo3Y13sh++2zkJpQ=;
  b=cSma2VuquqPHfWDUy5W4n7/xnwOVpc/nDFOk+Djvlhw4iDgqr4npkmOu
   5RaVDEYGtTXkH3sCKSLnyeDhchp8UlVhj5+n3NHAz7h0BP814wZVOK5Qn
   HVg7X9VyJXimtb2yMnz+AmMosK2LPMHFv31vSvhj9S24GvFnil6eEvFlP
   Q=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: HiosesprsiVx5lIiXoEOUIsyCv4arXWswZpFIaqMvjRtGBjMDeN5IMZcfcfReQ9QyWXTXY2pnI
 JZJHbk+UaZC9qjwGYWnrhUgWpQrU0dVFZunMtriVsRSQiz/5DZs75/ghVj1ew8uJGeFs4pJloh
 OSpb+EaHISUsR3dv9A6XfCePACgm6vyL2lBeGKkv8kc8zftOjMG0Q6bcPAnr61weuDGOn5i4FE
 BDMU5lNWgr4ZxpWs6BZ19OuVgPH4fm9AYnmZzpxVveewKSfH65l2LE5VTsT1XvMgFL9p41WpD/
 q2ECgkQv6jt+BX/LkKKINONE
X-SBRS: 5.1
X-MesageID: 58695952
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:b5BszqtN3lXiCMI2BkEYbHvjHefnVJtZMUV32f8akzHdYApBsoF/q
 tZmKW7QPvmLNDPzKIskOtzl80hTusTRzoNiSVM/rS1gHi1B+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NpljN+1UFx0Op33vu1NaAVfAjBMfolKweqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5RINGsyNnwsZTVGNXYKV8ovod6nn1jCLRB5in+Yoo84tj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO9R57RjWl67k2CCQVlMYSS9QWp8CuPZjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSEhRqjBNzAJrVkg
 JTis5PFhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlUJ2K2M
 RON5Vg5CHpv0J2CNvQfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9YNc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:BtwGnaF2Zh2Bj/dnpLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58695952"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 38/65] x86/hvmsave: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:19 +0000
Message-ID: <20211126123446.32324-39-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/cpu/mcheck/vmce.c       |  4 ++--
 xen/arch/x86/emul-i8254.c            |  4 ++--
 xen/arch/x86/hvm/hpet.c              |  4 ++--
 xen/arch/x86/hvm/hvm.c               | 18 ++++++++++--------
 xen/arch/x86/hvm/irq.c               | 12 ++++++------
 xen/arch/x86/hvm/mtrr.c              |  4 ++--
 xen/arch/x86/hvm/pmtimer.c           |  4 ++--
 xen/arch/x86/hvm/rtc.c               |  4 ++--
 xen/arch/x86/hvm/vioapic.c           |  4 ++--
 xen/arch/x86/hvm/viridian/viridian.c | 15 ++++++++-------
 xen/arch/x86/hvm/vlapic.c            |  8 ++++----
 xen/arch/x86/hvm/vpic.c              |  4 ++--
 12 files changed, 44 insertions(+), 41 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index eb6434a3ba20..458120f9ad8d 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -353,7 +353,7 @@ int vmce_wrmsr(uint32_t msr, uint64_t val)
 }
 
 #if CONFIG_HVM
-static int vmce_save_vcpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check vmce_save_vcpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct hvm_vmce_vcpu ctxt = {
         .caps = v->arch.vmce.mcg_cap,
@@ -365,7 +365,7 @@ static int vmce_save_vcpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
     return hvm_save_entry(VMCE_VCPU, v->vcpu_id, h, &ctxt);
 }
 
-static int vmce_load_vcpu_ctxt(struct domain *d, hvm_domain_context_t *h)
+static int cf_check vmce_load_vcpu_ctxt(struct domain *d, hvm_domain_context_t *h)
 {
     unsigned int vcpuid = hvm_load_instance(h);
     struct vcpu *v;
diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c
index 0e09a173187f..d170f464d966 100644
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -391,7 +391,7 @@ void pit_stop_channel0_irq(PITState *pit)
     spin_unlock(&pit->lock);
 }
 
-static int pit_save(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check pit_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct domain *d = v->domain;
     PITState *pit = domain_vpit(d);
@@ -409,7 +409,7 @@ static int pit_save(struct vcpu *v, hvm_domain_context_t *h)
     return rc;
 }
 
-static int pit_load(struct domain *d, hvm_domain_context_t *h)
+static int cf_check pit_load(struct domain *d, hvm_domain_context_t *h)
 {
     PITState *pit = domain_vpit(d);
     int i, rc = 0;
diff --git a/xen/arch/x86/hvm/hpet.c b/xen/arch/x86/hvm/hpet.c
index 7bdb51cfa1c4..ed512fa65b63 100644
--- a/xen/arch/x86/hvm/hpet.c
+++ b/xen/arch/x86/hvm/hpet.c
@@ -582,7 +582,7 @@ static const struct hvm_mmio_ops hpet_mmio_ops = {
 };
 
 
-static int hpet_save(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check hpet_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d = v->domain;
     HPETState *hp = domain_vhpet(d);
@@ -645,7 +645,7 @@ static int hpet_save(struct vcpu *v, hvm_domain_context_t *h)
     return rc;
 }
 
-static int hpet_load(struct domain *d, hvm_domain_context_t *h)
+static int cf_check hpet_load(struct domain *d, hvm_domain_context_t *h)
 {
     HPETState *hp = domain_vhpet(d);
     struct hvm_hw_hpet *rec;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index fdc0b86bf091..d5ca7a1ce636 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -789,7 +789,7 @@ void hvm_domain_destroy(struct domain *d)
     destroy_vpci_mmcfg(d);
 }
 
-static int hvm_save_tsc_adjust(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check hvm_save_tsc_adjust(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct hvm_tsc_adjust ctxt = {
         .tsc_adjust = v->arch.hvm.msr_tsc_adjust,
@@ -798,7 +798,7 @@ static int hvm_save_tsc_adjust(struct vcpu *v, hvm_domain_context_t *h)
     return hvm_save_entry(TSC_ADJUST, v->vcpu_id, h, &ctxt);
 }
 
-static int hvm_load_tsc_adjust(struct domain *d, hvm_domain_context_t *h)
+static int cf_check hvm_load_tsc_adjust(struct domain *d, hvm_domain_context_t *h)
 {
     unsigned int vcpuid = hvm_load_instance(h);
     struct vcpu *v;
@@ -821,7 +821,7 @@ static int hvm_load_tsc_adjust(struct domain *d, hvm_domain_context_t *h)
 HVM_REGISTER_SAVE_RESTORE(TSC_ADJUST, hvm_save_tsc_adjust,
                           hvm_load_tsc_adjust, 1, HVMSR_PER_VCPU);
 
-static int hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct segment_register seg;
     struct hvm_hw_cpu ctxt = {
@@ -1004,7 +1004,7 @@ unsigned long hvm_cr4_guest_valid_bits(const struct domain *d)
             (cet              ? X86_CR4_CET               : 0));
 }
 
-static int hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context_t *h)
+static int cf_check hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context_t *h)
 {
     unsigned int vcpuid = hvm_load_instance(h);
     struct vcpu *v;
@@ -1205,7 +1205,8 @@ HVM_REGISTER_SAVE_RESTORE(CPU, hvm_save_cpu_ctxt, hvm_load_cpu_ctxt, 1,
                                            save_area) + \
                                   xstate_ctxt_size(xcr0))
 
-static int hvm_save_cpu_xsave_states(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check hvm_save_cpu_xsave_states(
+    struct vcpu *v, hvm_domain_context_t *h)
 {
     struct hvm_hw_cpu_xsave *ctxt;
     unsigned int size = HVM_CPU_XSAVE_SIZE(v->arch.xcr0_accum);
@@ -1243,7 +1244,8 @@ CHECK_FIELD_(struct, xsave_hdr, reserved);
 #undef compat_xsave_hdr
 #undef xen_xsave_hdr
 
-static int hvm_load_cpu_xsave_states(struct domain *d, hvm_domain_context_t *h)
+static int cf_check hvm_load_cpu_xsave_states(
+    struct domain *d, hvm_domain_context_t *h)
 {
     unsigned int vcpuid, size;
     int err;
@@ -1371,7 +1373,7 @@ static const uint32_t msrs_to_send[] = {
     MSR_AMD64_DR3_ADDRESS_MASK,
 };
 
-static int hvm_save_cpu_msrs(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check hvm_save_cpu_msrs(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct hvm_save_descriptor *desc = _p(&h->data[h->cur]);
     struct hvm_msr *ctxt;
@@ -1430,7 +1432,7 @@ static int hvm_save_cpu_msrs(struct vcpu *v, hvm_domain_context_t *h)
     return 0;
 }
 
-static int hvm_load_cpu_msrs(struct domain *d, hvm_domain_context_t *h)
+static int cf_check hvm_load_cpu_msrs(struct domain *d, hvm_domain_context_t *h)
 {
     unsigned int i, vcpuid = hvm_load_instance(h);
     struct vcpu *v;
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index a7f8991a7b84..5a7f39b54ff4 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -657,7 +657,7 @@ static int __init cf_check dump_irq_info_key_init(void)
 }
 __initcall(dump_irq_info_key_init);
 
-static int irq_save_pci(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check irq_save_pci(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct domain *d = v->domain;
     struct hvm_irq *hvm_irq = hvm_domain_irq(d);
@@ -690,7 +690,7 @@ static int irq_save_pci(struct vcpu *v, hvm_domain_context_t *h)
     return rc;
 }
 
-static int irq_save_isa(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check irq_save_isa(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d = v->domain;
     struct hvm_irq *hvm_irq = hvm_domain_irq(d);
@@ -699,7 +699,7 @@ static int irq_save_isa(struct vcpu *v, hvm_domain_context_t *h)
     return hvm_save_entry(ISA_IRQ, 0, h, &hvm_irq->isa_irq);
 }
 
-static int irq_save_link(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check irq_save_link(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d = v->domain;
     struct hvm_irq *hvm_irq = hvm_domain_irq(d);
@@ -708,7 +708,7 @@ static int irq_save_link(struct vcpu *v, hvm_domain_context_t *h)
     return hvm_save_entry(PCI_LINK, 0, h, &hvm_irq->pci_link);
 }
 
-static int irq_load_pci(struct domain *d, hvm_domain_context_t *h)
+static int cf_check irq_load_pci(struct domain *d, hvm_domain_context_t *h)
 {
     struct hvm_irq *hvm_irq = hvm_domain_irq(d);
     int link, dev, intx, gsi;
@@ -741,7 +741,7 @@ static int irq_load_pci(struct domain *d, hvm_domain_context_t *h)
     return 0;
 }
 
-static int irq_load_isa(struct domain *d, hvm_domain_context_t *h)
+static int cf_check irq_load_isa(struct domain *d, hvm_domain_context_t *h)
 {
     struct hvm_irq *hvm_irq = hvm_domain_irq(d);
     int irq;
@@ -760,7 +760,7 @@ static int irq_load_isa(struct domain *d, hvm_domain_context_t *h)
 }
 
 
-static int irq_load_link(struct domain *d, hvm_domain_context_t *h)
+static int cf_check irq_load_link(struct domain *d, hvm_domain_context_t *h)
 {
     struct hvm_irq *hvm_irq = hvm_domain_irq(d);
     int link, gsi;
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
index 42f3d8319296..4d2aa6def86d 100644
--- a/xen/arch/x86/hvm/mtrr.c
+++ b/xen/arch/x86/hvm/mtrr.c
@@ -687,7 +687,7 @@ int hvm_set_mem_pinned_cacheattr(struct domain *d, uint64_t gfn_start,
     return 0;
 }
 
-static int hvm_save_mtrr_msr(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check hvm_save_mtrr_msr(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct mtrr_state *mtrr_state = &v->arch.hvm.mtrr;
     struct hvm_hw_mtrr hw_mtrr = {
@@ -725,7 +725,7 @@ static int hvm_save_mtrr_msr(struct vcpu *v, hvm_domain_context_t *h)
     return hvm_save_entry(MTRR, v->vcpu_id, h, &hw_mtrr);
 }
 
-static int hvm_load_mtrr_msr(struct domain *d, hvm_domain_context_t *h)
+static int cf_check hvm_load_mtrr_msr(struct domain *d, hvm_domain_context_t *h)
 {
     unsigned int vcpuid, i;
     struct vcpu *v;
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 60e3c8de4c6b..2a89bbdfa5b8 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -249,7 +249,7 @@ static int cf_check handle_pmt_io(
     return X86EMUL_OKAY;
 }
 
-static int acpi_save(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check acpi_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct domain *d = v->domain;
     struct hvm_hw_acpi *acpi = &d->arch.hvm.acpi;
@@ -281,7 +281,7 @@ static int acpi_save(struct vcpu *v, hvm_domain_context_t *h)
     return rc;
 }
 
-static int acpi_load(struct domain *d, hvm_domain_context_t *h)
+static int cf_check acpi_load(struct domain *d, hvm_domain_context_t *h)
 {
     struct hvm_hw_acpi *acpi = &d->arch.hvm.acpi;
     PMTState *s = &d->arch.hvm.pl_time->vpmt;
diff --git a/xen/arch/x86/hvm/rtc.c b/xen/arch/x86/hvm/rtc.c
index bdc647e433e9..ed397276faa3 100644
--- a/xen/arch/x86/hvm/rtc.c
+++ b/xen/arch/x86/hvm/rtc.c
@@ -738,7 +738,7 @@ void rtc_migrate_timers(struct vcpu *v)
 }
 
 /* Save RTC hardware state */
-static int rtc_save(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check rtc_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d = v->domain;
     RTCState *s = domain_vrtc(d);
@@ -756,7 +756,7 @@ static int rtc_save(struct vcpu *v, hvm_domain_context_t *h)
 }
 
 /* Reload the hardware state from a saved domain */
-static int rtc_load(struct domain *d, hvm_domain_context_t *h)
+static int cf_check rtc_load(struct domain *d, hvm_domain_context_t *h)
 {
     RTCState *s = domain_vrtc(d);
 
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index b56549aa22d1..d5d5b02421e9 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -590,7 +590,7 @@ int vioapic_get_trigger_mode(const struct domain *d, unsigned int gsi)
     return vioapic->redirtbl[pin].fields.trig_mode;
 }
 
-static int ioapic_save(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check ioapic_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d = v->domain;
     struct hvm_vioapic *s;
@@ -607,7 +607,7 @@ static int ioapic_save(struct vcpu *v, hvm_domain_context_t *h)
     return hvm_save_entry(IOAPIC, 0, h, &s->domU);
 }
 
-static int ioapic_load(struct domain *d, hvm_domain_context_t *h)
+static int cf_check ioapic_load(struct domain *d, hvm_domain_context_t *h)
 {
     struct hvm_vioapic *s;
 
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c
index ad32b09725d5..69a3497709a8 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -1125,8 +1125,8 @@ void viridian_unmap_guest_page(struct viridian_page *vp)
     put_page_and_type(page);
 }
 
-static int viridian_save_domain_ctxt(struct vcpu *v,
-                                     hvm_domain_context_t *h)
+static int cf_check viridian_save_domain_ctxt(
+    struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d = v->domain;
     const struct viridian_domain *vd = d->arch.hvm.viridian;
@@ -1144,8 +1144,8 @@ static int viridian_save_domain_ctxt(struct vcpu *v,
     return (hvm_save_entry(VIRIDIAN_DOMAIN, 0, h, &ctxt) != 0);
 }
 
-static int viridian_load_domain_ctxt(struct domain *d,
-                                     hvm_domain_context_t *h)
+static int cf_check viridian_load_domain_ctxt(
+    struct domain *d, hvm_domain_context_t *h)
 {
     struct viridian_domain *vd = d->arch.hvm.viridian;
     struct hvm_viridian_domain_context ctxt;
@@ -1165,7 +1165,8 @@ static int viridian_load_domain_ctxt(struct domain *d,
 HVM_REGISTER_SAVE_RESTORE(VIRIDIAN_DOMAIN, viridian_save_domain_ctxt,
                           viridian_load_domain_ctxt, 1, HVMSR_PER_DOM);
 
-static int viridian_save_vcpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check viridian_save_vcpu_ctxt(
+    struct vcpu *v, hvm_domain_context_t *h)
 {
     struct hvm_viridian_vcpu_context ctxt = {};
 
@@ -1178,8 +1179,8 @@ static int viridian_save_vcpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
     return hvm_save_entry(VIRIDIAN_VCPU, v->vcpu_id, h, &ctxt);
 }
 
-static int viridian_load_vcpu_ctxt(struct domain *d,
-                                   hvm_domain_context_t *h)
+static int cf_check viridian_load_vcpu_ctxt(
+    struct domain *d, hvm_domain_context_t *h)
 {
     unsigned int vcpuid = hvm_load_instance(h);
     struct vcpu *v;
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 652e3cb87f12..d4e29ef1ff1d 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -1482,7 +1482,7 @@ static void lapic_rearm(struct vlapic *s)
     s->timer_last_update = s->pt.last_plt_gtime;
 }
 
-static int lapic_save_hidden(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check lapic_save_hidden(struct vcpu *v, hvm_domain_context_t *h)
 {
     if ( !has_vlapic(v->domain) )
         return 0;
@@ -1490,7 +1490,7 @@ static int lapic_save_hidden(struct vcpu *v, hvm_domain_context_t *h)
     return hvm_save_entry(LAPIC, v->vcpu_id, h, &vcpu_vlapic(v)->hw);
 }
 
-static int lapic_save_regs(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check lapic_save_regs(struct vcpu *v, hvm_domain_context_t *h)
 {
     if ( !has_vlapic(v->domain) )
         return 0;
@@ -1529,7 +1529,7 @@ static void lapic_load_fixup(struct vlapic *vlapic)
     }
 }
 
-static int lapic_load_hidden(struct domain *d, hvm_domain_context_t *h)
+static int cf_check lapic_load_hidden(struct domain *d, hvm_domain_context_t *h)
 {
     unsigned int vcpuid = hvm_load_instance(h);
     struct vcpu *v;
@@ -1563,7 +1563,7 @@ static int lapic_load_hidden(struct domain *d, hvm_domain_context_t *h)
     return 0;
 }
 
-static int lapic_load_regs(struct domain *d, hvm_domain_context_t *h)
+static int cf_check lapic_load_regs(struct domain *d, hvm_domain_context_t *h)
 {
     unsigned int vcpuid = hvm_load_instance(h);
     struct vcpu *v;
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c
index 5d8ef259b710..b3cafaab8fad 100644
--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -400,7 +400,7 @@ static int cf_check vpic_intercept_elcr_io(
     return X86EMUL_OKAY;
 }
 
-static int vpic_save(struct vcpu *v, hvm_domain_context_t *h)
+static int cf_check vpic_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct domain *d = v->domain;
     struct hvm_hw_vpic *s;
@@ -420,7 +420,7 @@ static int vpic_save(struct vcpu *v, hvm_domain_context_t *h)
     return 0;
 }
 
-static int vpic_load(struct domain *d, hvm_domain_context_t *h)
+static int cf_check vpic_load(struct domain *d, hvm_domain_context_t *h)
 {
     struct hvm_hw_vpic *s;
     unsigned int inst = hvm_load_instance(h);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232843.403987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqax3-0004NM-7w; Fri, 26 Nov 2021 13:07:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232843.403987; Fri, 26 Nov 2021 13:07:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqax2-0004Gd-Bs; Fri, 26 Nov 2021 13:07:40 +0000
Received: by outflank-mailman (input) for mailman id 232843;
 Fri, 26 Nov 2021 13:07:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqav6-0002zD-FU
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:40 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8cdd30a3-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:05:38 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8cdd30a3-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931938;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=izWgzigFmafOWMX4S5OZ2RAoFVxEuqnImtxUKaeis+Q=;
  b=ct1fzlr00rr7ybhs/agi/IUQnTLXMAPm2/JyRioVRn7qWRZg75HX2wpW
   9ipOjelg/KDb4lP/iBmTd342cox+gyGjNHvskBt8QxJ/CUP+YkXiQQ23V
   QUteiLhM4U7FD6kZPIcwDl+hpOQvo+M2U77FgF9pJi66wWzJGYdkAhmkb
   8=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Ro8n5ILYxZ/ug8PPdK97TKOMvPeoamB5J066UCLkq97/cuW2cOTxNCHICw//9Z6tuSW4YoQw3V
 LhKOVoDmI1F5tq4HGu4klMIWPcVHCYnH3l2tUiORbVX8AOJuZHzFJBUpWqZgHT6CmGgoUMvPY2
 kqfkvhSBDoZRH2lYkj3MqSjmuAQUYwcxgGcK+1VPHIAE0wE+fTw17R5WXSa1A2+QC+MTYTOP5Z
 vLX3oAoGSXIpceYTmzfClP4CWNnZ52YBBbytMSTRHcmI/7obX9uP8hoXQOL+XZx5LP6PJFNcLy
 LLyVIpoFmoBq6d02pwxz1lVQ
X-SBRS: 5.1
X-MesageID: 58696015
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:iX9RcaPEV2s+AdHvrR1okMFynXyQoLVcMsEvi/4bfWQNrUoj0jUBy
 TRNW27UbP6NZWXwKY8lPN7l9EsPsZKEy9RqSQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg9w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozWts+pVm
 ZZijoCpFyEtJfbFwOE5bSANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWdu154WRKu2i
 8wxdHlgQk7Hbh12BFopIok0s8eRmiH9SmgNwL6SjfVuuDWCpOBr65DyNPLFd9rMQt9a9m66j
 G/b+2XyAjkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24nNSQPoGd
 RZSoHB36/Fvqgr7FbERQiFUvlaEmjImf4sTPNYm8V+rzrGP6l6cIlY9G2sphMMdiOc6Qjkj1
 1msltzvBCByvLD9dU9x5ot4vhvpZ3FLcDZqiTssCFJcvoK9+N1bYgfnF447SMaIYsvJ9SYcK
 txghAw3nP0tgMECzM1XFniX0mv39vAlouPYjzg7v15JDCslO+ZJhKTysDA3CMqsyq7CFTFtW
 1BexqCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I9sPsG8jexY1bJpfEdMMX
 KM1kVgKjHO0FCH3BZKbnqrrU5h6pUQePYiNug/ogipmPcEqKV7vENBGbk+MxWH9+HXAYolkU
 ap3hf2EVC5AYYw+lWLeb75EjdcDm3BvrUuOFMuT50n2jtKjiIu9FO5t3K2mNbtisstpYWz9r
 r5iCid940kFDbClPHCIqdV7wJJjBSFTOK0aYvd/LoarSjeK0kl4YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:RiYeTq+aENcMDUYxrpBuk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re5cjztCWE7gr5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtBD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58696015"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 41/65] x86/cpu: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:22 +0000
Message-ID: <20211126123446.32324-42-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/cpu/amd.c      | 6 +++---
 xen/arch/x86/cpu/centaur.c  | 2 +-
 xen/arch/x86/cpu/common.c   | 2 +-
 xen/arch/x86/cpu/cpu.h      | 2 +-
 xen/arch/x86/cpu/hygon.c    | 2 +-
 xen/arch/x86/cpu/intel.c    | 6 +++---
 xen/arch/x86/cpu/shanghai.c | 2 +-
 7 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index f1c32c2787c9..a5f380852b20 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -208,7 +208,7 @@ static void __init noinline probe_masking_msrs(void)
  * parameter of NULL is used to context switch to the default host state (by
  * the cpu bringup-code, crash path, etc).
  */
-static void amd_ctxt_switch_masking(const struct vcpu *next)
+static void cf_check amd_ctxt_switch_masking(const struct vcpu *next)
 {
 	struct cpuidmasks *these_masks = &this_cpu(cpuidmasks);
 	const struct domain *nextd = next ? next->domain : NULL;
@@ -634,7 +634,7 @@ void amd_log_freq(const struct cpuinfo_x86 *c)
 #undef FREQ
 }
 
-void early_init_amd(struct cpuinfo_x86 *c)
+void cf_check early_init_amd(struct cpuinfo_x86 *c)
 {
 	if (c == &boot_cpu_data)
 		amd_init_levelling();
@@ -744,7 +744,7 @@ void __init detect_zen2_null_seg_behaviour(void)
 
 }
 
-static void init_amd(struct cpuinfo_x86 *c)
+static void cf_check init_amd(struct cpuinfo_x86 *c)
 {
 	u32 l, h;
 
diff --git a/xen/arch/x86/cpu/centaur.c b/xen/arch/x86/cpu/centaur.c
index 34a5bfcaeef2..eac49d78db62 100644
--- a/xen/arch/x86/cpu/centaur.c
+++ b/xen/arch/x86/cpu/centaur.c
@@ -48,7 +48,7 @@ static void init_c3(struct cpuinfo_x86 *c)
 	display_cacheinfo(c);
 }
 
-static void init_centaur(struct cpuinfo_x86 *c)
+static void cf_check init_centaur(struct cpuinfo_x86 *c)
 {
 	if (c->x86 == 6)
 		init_c3(c);
diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 4a163afbfc7e..7c41a21bf07c 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -104,7 +104,7 @@ bool __init is_forced_cpu_cap(unsigned int cap)
 	return test_bit(cap, forced_caps);
 }
 
-static void default_init(struct cpuinfo_x86 * c)
+static void cf_check default_init(struct cpuinfo_x86 * c)
 {
 	/* Not much we can do here... */
 	/* Check if at least it has cpuid */
diff --git a/xen/arch/x86/cpu/cpu.h b/xen/arch/x86/cpu/cpu.h
index b593bd85f04f..a228087f9157 100644
--- a/xen/arch/x86/cpu/cpu.h
+++ b/xen/arch/x86/cpu/cpu.h
@@ -18,7 +18,7 @@ extern void display_cacheinfo(struct cpuinfo_x86 *c);
 extern void detect_ht(struct cpuinfo_x86 *c);
 extern bool detect_extended_topology(struct cpuinfo_x86 *c);
 
-void early_init_amd(struct cpuinfo_x86 *c);
+void cf_check early_init_amd(struct cpuinfo_x86 *c);
 void amd_log_freq(const struct cpuinfo_x86 *c);
 void amd_init_lfence(struct cpuinfo_x86 *c);
 void amd_init_ssbd(const struct cpuinfo_x86 *c);
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index cdc94130dd2e..3c8516e014c3 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -28,7 +28,7 @@ static void hygon_get_topology(struct cpuinfo_x86 *c)
 	                        c->phys_proc_id, c->cpu_core_id);
 }
 
-static void init_hygon(struct cpuinfo_x86 *c)
+static void cf_check init_hygon(struct cpuinfo_x86 *c)
 {
 	unsigned long long value;
 
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 9b011c344636..d63e18100698 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -144,7 +144,7 @@ static void __init probe_masking_msrs(void)
  * parameter of NULL is used to context switch to the default host state (by
  * the cpu bringup-code, crash path, etc).
  */
-static void intel_ctxt_switch_masking(const struct vcpu *next)
+static void cf_check intel_ctxt_switch_masking(const struct vcpu *next)
 {
 	struct cpuidmasks *these_masks = &this_cpu(cpuidmasks);
 	const struct domain *nextd = next ? next->domain : NULL;
@@ -254,7 +254,7 @@ static void __init noinline intel_init_levelling(void)
 		ctxt_switch_masking = intel_ctxt_switch_masking;
 }
 
-static void early_init_intel(struct cpuinfo_x86 *c)
+static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 {
 	u64 misc_enable, disable;
 
@@ -448,7 +448,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
     }
 }
 
-static void init_intel(struct cpuinfo_x86 *c)
+static void cf_check init_intel(struct cpuinfo_x86 *c)
 {
 	/* Detect the extended topology information if available */
 	detect_extended_topology(c);
diff --git a/xen/arch/x86/cpu/shanghai.c b/xen/arch/x86/cpu/shanghai.c
index 08a81f0f0c8e..95ae544f8c54 100644
--- a/xen/arch/x86/cpu/shanghai.c
+++ b/xen/arch/x86/cpu/shanghai.c
@@ -3,7 +3,7 @@
 #include <asm/processor.h>
 #include "cpu.h"
 
-static void init_shanghai(struct cpuinfo_x86 *c)
+static void cf_check init_shanghai(struct cpuinfo_x86 *c)
 {
     if ( cpu_has(c, X86_FEATURE_ITSC) )
     {
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232844.403994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqax4-0004j2-MP; Fri, 26 Nov 2021 13:07:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232844.403994; Fri, 26 Nov 2021 13:07:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqax3-0004dh-RT; Fri, 26 Nov 2021 13:07:41 +0000
Received: by outflank-mailman (input) for mailman id 232844;
 Fri, 26 Nov 2021 13:07:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaux-0003W9-D8
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:31 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 855b1c0e-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:25 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 855b1c0e-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931926;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=jO+OyPCKEQLuTMUlOqQ6gopRTA925Ji5NSM1T3yoqwY=;
  b=ObdLe2wZu8uOuaL9AAgDTWTORNdcX+ZGdv949mlOt95n0tMDLj+x7JFM
   KnDrtTVRJAtf1lCtBZGQKHRCK3l9KmgjfDsbZZvR+Nbw7nPJQTvGhMQMP
   +Jy4x9n21YmJjCS7ZPtE8wTZp/3PXa75KU8vIFHsl0nNHPLXRmoXe7mhU
   k=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: iQ0EbjAT+kP/KRVWw/Ea31SAZ+x2zqcw+aSEQQhT8Q7/XUrjt4J8bPnasK+F7yoYWUyIYQeFjR
 zvOtFSKIcw0IakMq8ANW1DFVR84rUzL6lUmFyNhlIMXIrEBGeRwnhZTGqWbuBpvKs7EcRUM/VB
 9i5CqaZTe8eqm75J4/SHzWtq79/kCyokW2iA3WhjAfYa/VMf2bcm5oEelNCnegyEjuU84ZXBUv
 zQ1GE/zGRPphkK4Evq3kdhvrOKJnBT4W4eI9+yj187vwPL57powQGB+drDwQFEFRuWJjKzN/Xd
 vEAG+w0gDZC79L8OWe+EvRpw
X-SBRS: 5.1
X-MesageID: 59064014
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:f6wbma6QaHTHuQrtNoFmKQxRtPXAchMFZxGqfqrLsTDasY5as4F+v
 mMbXWDUPfnYYzGhco0iOYjlp0NVvZ/czdNjQAtk/C5kHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zw
 ed/jsa9cgcTFfPRieIaehVfVDB6MvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTK6AO
 5JANVKDajzDcyVAfVQWL6kylbapi1DgUCR+oW+K8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u10bTDwweNdef4SGY6X/qjejK9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc9NiIdZg5TqN8IGK/hefAUEISXlQbNNz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVnl
 CNf8yR5xLpTZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxg5bJtbKGO3P
 BS7VeZtCHl7ZyDCgUhfOd/ZNijX5fK4SYSNug78MrKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI+cElJNhMb6elJl1VNk/sHm+HW0
 Gu6X0MEmlPziWeecVeBa2x5aaOpVpF69CppMSspNFeu+n4ifYfws/tPK8ppJeEqpL550Pp5b
 /gZYMHcUP5BfSvKpmYGZp7noY08KBny3VCSPzCoaSQUdoJ7Q1Cb4cftewbirXFcDie+ucYkj
 aen0wfXHcgKSwh4VZ6EY/Oz1VKh+3ManbsqDUfPJ9BSfmTq8ZRrdHOt3qNmfZlUJEyalDWA1
 guQDRMJnsX3otc4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKkQoYs4d4FLo3n6sy68G2+u1fxwVgWn7Kc06qGvVrJXzfhZtDsahEx7l4vwqqW
 x3QpokGaOvRYM61QkQMIAcFb/iY0aBGkzbf2v05PUHm6XIl57GAS0hTY0GBhSE1wGGZ62/5L
 TPNYPIr1jE=
IronPort-HdrOrdr: A9a23:hURw5q3dQJfRWkRGY2tgigqjBIokLtp133Aq2lEZdPRUGvb3qy
 nIpoVj6faUskd2ZJhOo7C90cW7LU80sKQFhLX5Xo3SOzUO2lHYT72KhLGKq1aLdhEWtNQtsZ
 uIG5IOcOEYZmIasS+V2maF+q4bsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59064014"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 47/65] x86/irq: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:28 +0000
Message-ID: <20211126123446.32324-48-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/hpet.c                      | 11 ++++++-----
 xen/arch/x86/i8259.c                     | 10 +++++-----
 xen/arch/x86/io_apic.c                   | 24 ++++++++++++------------
 xen/arch/x86/irq.c                       |  6 +++---
 xen/arch/x86/msi.c                       | 14 +++++++-------
 xen/common/irq.c                         |  6 +++---
 xen/drivers/passthrough/amd/iommu_init.c | 15 ++++++++-------
 xen/drivers/passthrough/vtd/iommu.c      | 13 +++++++------
 xen/include/asm-x86/irq.h                |  8 ++++----
 xen/include/asm-x86/msi.h                |  8 ++++----
 xen/include/xen/irq.h                    |  6 +++---
 11 files changed, 62 insertions(+), 59 deletions(-)

diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index 20fca839907c..dcc9e16693e9 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -256,7 +256,7 @@ static void cf_check hpet_interrupt_handler(
     ch->event_handler(ch);
 }
 
-static void hpet_msi_unmask(struct irq_desc *desc)
+static void cf_check hpet_msi_unmask(struct irq_desc *desc)
 {
     u32 cfg;
     struct hpet_event_channel *ch = desc->action->dev_id;
@@ -267,7 +267,7 @@ static void hpet_msi_unmask(struct irq_desc *desc)
     ch->msi.msi_attrib.host_masked = 0;
 }
 
-static void hpet_msi_mask(struct irq_desc *desc)
+static void cf_check hpet_msi_mask(struct irq_desc *desc)
 {
     u32 cfg;
     struct hpet_event_channel *ch = desc->action->dev_id;
@@ -296,7 +296,7 @@ static int hpet_msi_write(struct hpet_event_channel *ch, struct msi_msg *msg)
     return 0;
 }
 
-static unsigned int hpet_msi_startup(struct irq_desc *desc)
+static unsigned int cf_check hpet_msi_startup(struct irq_desc *desc)
 {
     hpet_msi_unmask(desc);
     return 0;
@@ -304,14 +304,15 @@ static unsigned int hpet_msi_startup(struct irq_desc *desc)
 
 #define hpet_msi_shutdown hpet_msi_mask
 
-static void hpet_msi_ack(struct irq_desc *desc)
+static void cf_check hpet_msi_ack(struct irq_desc *desc)
 {
     irq_complete_move(desc);
     move_native_irq(desc);
     ack_APIC_irq();
 }
 
-static void hpet_msi_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
+static void cf_check hpet_msi_set_affinity(
+    struct irq_desc *desc, const cpumask_t *mask)
 {
     struct hpet_event_channel *ch = desc->action->dev_id;
     struct msi_msg msg = ch->msi.msg;
diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c
index b389bb217622..6b35be10f09a 100644
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -40,18 +40,18 @@ bool bogus_8259A_irq(unsigned int irq)
     return _mask_and_ack_8259A_irq(irq);
 }
 
-static void mask_and_ack_8259A_irq(struct irq_desc *desc)
+static void cf_check mask_and_ack_8259A_irq(struct irq_desc *desc)
 {
     _mask_and_ack_8259A_irq(desc->irq);
 }
 
-static unsigned int startup_8259A_irq(struct irq_desc *desc)
+static unsigned int cf_check startup_8259A_irq(struct irq_desc *desc)
 {
     enable_8259A_irq(desc);
     return 0; /* never anything pending */
 }
 
-static void end_8259A_irq(struct irq_desc *desc, u8 vector)
+static void cf_check end_8259A_irq(struct irq_desc *desc, u8 vector)
 {
     if (!(desc->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
         enable_8259A_irq(desc);
@@ -108,12 +108,12 @@ static void _disable_8259A_irq(unsigned int irq)
     spin_unlock_irqrestore(&i8259A_lock, flags);
 }
 
-void disable_8259A_irq(struct irq_desc *desc)
+void cf_check disable_8259A_irq(struct irq_desc *desc)
 {
     _disable_8259A_irq(desc->irq);
 }
 
-void enable_8259A_irq(struct irq_desc *desc)
+void cf_check enable_8259A_irq(struct irq_desc *desc)
 {
     unsigned int mask = ~(1 << desc->irq);
     unsigned long flags;
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 4c5eaef86273..c086f40f6314 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -473,7 +473,7 @@ static void __level_IO_APIC_irq (unsigned int irq)
     modify_IO_APIC_irq(irq, IO_APIC_REDIR_LEVEL_TRIGGER, 0);
 }
 
-static void mask_IO_APIC_irq(struct irq_desc *desc)
+static void cf_check mask_IO_APIC_irq(struct irq_desc *desc)
 {
     unsigned long flags;
 
@@ -482,7 +482,7 @@ static void mask_IO_APIC_irq(struct irq_desc *desc)
     spin_unlock_irqrestore(&ioapic_lock, flags);
 }
 
-static void unmask_IO_APIC_irq(struct irq_desc *desc)
+static void cf_check unmask_IO_APIC_irq(struct irq_desc *desc)
 {
     unsigned long flags;
 
@@ -567,7 +567,7 @@ static void clear_IO_APIC (void)
     }
 }
 
-static void
+static void cf_check
 set_ioapic_affinity_irq(struct irq_desc *desc, const cpumask_t *mask)
 {
     unsigned int dest;
@@ -1547,7 +1547,7 @@ static int __init timer_irq_works(void)
  * This is not complete - we should be able to fake
  * an edge even if it isn't on the 8259A...
  */
-static unsigned int startup_edge_ioapic_irq(struct irq_desc *desc)
+static unsigned int cf_check startup_edge_ioapic_irq(struct irq_desc *desc)
 {
     int was_pending = 0;
     unsigned long flags;
@@ -1569,7 +1569,7 @@ static unsigned int startup_edge_ioapic_irq(struct irq_desc *desc)
  * interrupt for real. This prevents IRQ storms from unhandled
  * devices.
  */
-static void ack_edge_ioapic_irq(struct irq_desc *desc)
+static void cf_check ack_edge_ioapic_irq(struct irq_desc *desc)
 {
     irq_complete_move(desc);
     move_native_irq(desc);
@@ -1594,7 +1594,7 @@ static void ack_edge_ioapic_irq(struct irq_desc *desc)
  * generic IRQ layer and by the fact that an unacked local
  * APIC does not accept IRQs.
  */
-static unsigned int startup_level_ioapic_irq(struct irq_desc *desc)
+static unsigned int cf_check startup_level_ioapic_irq(struct irq_desc *desc)
 {
     unmask_IO_APIC_irq(desc);
 
@@ -1652,7 +1652,7 @@ static bool io_apic_level_ack_pending(unsigned int irq)
     return 0;
 }
 
-static void mask_and_ack_level_ioapic_irq(struct irq_desc *desc)
+static void cf_check mask_and_ack_level_ioapic_irq(struct irq_desc *desc)
 {
     unsigned long v;
     int i;
@@ -1702,7 +1702,7 @@ static void mask_and_ack_level_ioapic_irq(struct irq_desc *desc)
     }
 }
 
-static void end_level_ioapic_irq_old(struct irq_desc *desc, u8 vector)
+static void cf_check end_level_ioapic_irq_old(struct irq_desc *desc, u8 vector)
 {
     if ( directed_eoi_enabled )
     {
@@ -1723,7 +1723,7 @@ static void end_level_ioapic_irq_old(struct irq_desc *desc, u8 vector)
         unmask_IO_APIC_irq(desc);
 }
 
-static void end_level_ioapic_irq_new(struct irq_desc *desc, u8 vector)
+static void cf_check end_level_ioapic_irq_new(struct irq_desc *desc, u8 vector)
 {
 /*
  * It appears there is an erratum which affects at least version 0x11
@@ -1807,7 +1807,7 @@ static inline void init_IO_APIC_traps(void)
             make_8259A_irq(irq);
 }
 
-static void enable_lapic_irq(struct irq_desc *desc)
+static void cf_check enable_lapic_irq(struct irq_desc *desc)
 {
     unsigned long v;
 
@@ -1815,7 +1815,7 @@ static void enable_lapic_irq(struct irq_desc *desc)
     apic_write(APIC_LVT0, v & ~APIC_LVT_MASKED);
 }
 
-static void disable_lapic_irq(struct irq_desc *desc)
+static void cf_check disable_lapic_irq(struct irq_desc *desc)
 {
     unsigned long v;
 
@@ -1823,7 +1823,7 @@ static void disable_lapic_irq(struct irq_desc *desc)
     apic_write(APIC_LVT0, v | APIC_LVT_MASKED);
 }
 
-static void ack_lapic_irq(struct irq_desc *desc)
+static void cf_check ack_lapic_irq(struct irq_desc *desc)
 {
     ack_APIC_irq();
 }
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 61e09a356f97..285ac399fbfd 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -468,7 +468,7 @@ int __init init_irq_data(void)
     return 0;
 }
 
-static void ack_none(struct irq_desc *desc)
+static void cf_check ack_none(struct irq_desc *desc)
 {
     ack_bad_irq(desc->irq);
 }
@@ -832,7 +832,7 @@ static void send_cleanup_vector(struct irq_desc *desc)
     desc->arch.move_in_progress = 0;
 }
 
-void irq_complete_move(struct irq_desc *desc)
+void cf_check irq_complete_move(struct irq_desc *desc)
 {
     unsigned vector, me;
 
@@ -1086,7 +1086,7 @@ bool cpu_has_pending_apic_eoi(void)
     return pending_eoi_sp(this_cpu(pending_eoi)) != 0;
 }
 
-void end_nonmaskable_irq(struct irq_desc *desc, uint8_t vector)
+void cf_check end_nonmaskable_irq(struct irq_desc *desc, uint8_t vector)
 {
     struct pending_eoi *peoi = this_cpu(pending_eoi);
     unsigned int sp = pending_eoi_sp(peoi);
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 77a4fbf13f9f..b32b1378f84e 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -241,7 +241,7 @@ static int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
     return 0;
 }
 
-void set_msi_affinity(struct irq_desc *desc, const cpumask_t *mask)
+void cf_check set_msi_affinity(struct irq_desc *desc, const cpumask_t *mask)
 {
     struct msi_msg msg;
     unsigned int dest;
@@ -416,14 +416,14 @@ static int msi_get_mask_bit(const struct msi_desc *entry)
     return -1;
 }
 
-void mask_msi_irq(struct irq_desc *desc)
+void cf_check mask_msi_irq(struct irq_desc *desc)
 {
     if ( unlikely(!msi_set_mask_bit(desc, 1,
                                     desc->msi_desc->msi_attrib.guest_masked)) )
         BUG_ON(!(desc->status & IRQ_DISABLED));
 }
 
-void unmask_msi_irq(struct irq_desc *desc)
+void cf_check unmask_msi_irq(struct irq_desc *desc)
 {
     if ( unlikely(!msi_set_mask_bit(desc, 0,
                                     desc->msi_desc->msi_attrib.guest_masked)) )
@@ -435,26 +435,26 @@ void guest_mask_msi_irq(struct irq_desc *desc, bool mask)
     msi_set_mask_bit(desc, desc->msi_desc->msi_attrib.host_masked, mask);
 }
 
-static unsigned int startup_msi_irq(struct irq_desc *desc)
+static unsigned int cf_check startup_msi_irq(struct irq_desc *desc)
 {
     if ( unlikely(!msi_set_mask_bit(desc, 0, !!(desc->status & IRQ_GUEST))) )
         WARN();
     return 0;
 }
 
-static void shutdown_msi_irq(struct irq_desc *desc)
+static void cf_check shutdown_msi_irq(struct irq_desc *desc)
 {
     if ( unlikely(!msi_set_mask_bit(desc, 1, 1)) )
         BUG_ON(!(desc->status & IRQ_DISABLED));
 }
 
-void ack_nonmaskable_msi_irq(struct irq_desc *desc)
+void cf_check ack_nonmaskable_msi_irq(struct irq_desc *desc)
 {
     irq_complete_move(desc);
     move_native_irq(desc);
 }
 
-static void ack_maskable_msi_irq(struct irq_desc *desc)
+static void cf_check ack_maskable_msi_irq(struct irq_desc *desc)
 {
     ack_nonmaskable_msi_irq(desc);
     ack_APIC_irq(); /* ACKTYPE_NONE */
diff --git a/xen/common/irq.c b/xen/common/irq.c
index f42512db33b7..727cf8bd22da 100644
--- a/xen/common/irq.c
+++ b/xen/common/irq.c
@@ -27,15 +27,15 @@ int init_one_irq_desc(struct irq_desc *desc)
     return err;
 }
 
-void no_action(int cpl, void *dev_id, struct cpu_user_regs *regs)
+void cf_check no_action(int cpl, void *dev_id, struct cpu_user_regs *regs)
 {
 }
 
-void irq_actor_none(struct irq_desc *desc)
+void cf_check irq_actor_none(struct irq_desc *desc)
 {
 }
 
-unsigned int irq_startup_none(struct irq_desc *desc)
+unsigned int cf_check irq_startup_none(struct irq_desc *desc)
 {
     return 0;
 }
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index d2ad282e93d3..657c7f619a51 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -410,7 +410,7 @@ static void amd_iommu_msi_enable(struct amd_iommu *iommu, int flag)
                      PCI_FUNC(iommu->bdf), iommu->msi.msi_attrib.pos, flag);
 }
 
-static void iommu_msi_unmask(struct irq_desc *desc)
+static void cf_check iommu_msi_unmask(struct irq_desc *desc)
 {
     unsigned long flags;
     struct amd_iommu *iommu = desc->action->dev_id;
@@ -421,7 +421,7 @@ static void iommu_msi_unmask(struct irq_desc *desc)
     iommu->msi.msi_attrib.host_masked = 0;
 }
 
-static void iommu_msi_mask(struct irq_desc *desc)
+static void cf_check iommu_msi_mask(struct irq_desc *desc)
 {
     unsigned long flags;
     struct amd_iommu *iommu = desc->action->dev_id;
@@ -434,13 +434,13 @@ static void iommu_msi_mask(struct irq_desc *desc)
     iommu->msi.msi_attrib.host_masked = 1;
 }
 
-static unsigned int iommu_msi_startup(struct irq_desc *desc)
+static unsigned int cf_check iommu_msi_startup(struct irq_desc *desc)
 {
     iommu_msi_unmask(desc);
     return 0;
 }
 
-static void iommu_msi_end(struct irq_desc *desc, u8 vector)
+static void cf_check iommu_msi_end(struct irq_desc *desc, u8 vector)
 {
     iommu_msi_unmask(desc);
     end_nonmaskable_irq(desc, vector);
@@ -458,14 +458,14 @@ static hw_irq_controller iommu_msi_type = {
     .set_affinity = set_msi_affinity,
 };
 
-static unsigned int iommu_maskable_msi_startup(struct irq_desc *desc)
+static unsigned int cf_check iommu_maskable_msi_startup(struct irq_desc *desc)
 {
     iommu_msi_unmask(desc);
     unmask_msi_irq(desc);
     return 0;
 }
 
-static void iommu_maskable_msi_shutdown(struct irq_desc *desc)
+static void cf_check iommu_maskable_msi_shutdown(struct irq_desc *desc)
 {
     mask_msi_irq(desc);
     iommu_msi_mask(desc);
@@ -489,7 +489,8 @@ static hw_irq_controller iommu_maskable_msi_type = {
     .set_affinity = set_msi_affinity,
 };
 
-static void set_x2apic_affinity(struct irq_desc *desc, const cpumask_t *mask)
+static void cf_check set_x2apic_affinity(
+    struct irq_desc *desc, const cpumask_t *mask)
 {
     struct amd_iommu *iommu = desc->action->dev_id;
     unsigned int dest = set_desc_affinity(desc, mask);
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index ad3abdcdacfd..708ba2b31565 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1096,7 +1096,7 @@ static void cf_check iommu_page_fault(
     tasklet_schedule(&vtd_fault_tasklet);
 }
 
-static void dma_msi_unmask(struct irq_desc *desc)
+static void cf_check dma_msi_unmask(struct irq_desc *desc)
 {
     struct vtd_iommu *iommu = desc->action->dev_id;
     unsigned long flags;
@@ -1111,7 +1111,7 @@ static void dma_msi_unmask(struct irq_desc *desc)
     iommu->msi.msi_attrib.host_masked = 0;
 }
 
-static void dma_msi_mask(struct irq_desc *desc)
+static void cf_check dma_msi_mask(struct irq_desc *desc)
 {
     unsigned long flags;
     struct vtd_iommu *iommu = desc->action->dev_id;
@@ -1126,26 +1126,27 @@ static void dma_msi_mask(struct irq_desc *desc)
     iommu->msi.msi_attrib.host_masked = 1;
 }
 
-static unsigned int dma_msi_startup(struct irq_desc *desc)
+static unsigned int cf_check dma_msi_startup(struct irq_desc *desc)
 {
     dma_msi_unmask(desc);
     return 0;
 }
 
-static void dma_msi_ack(struct irq_desc *desc)
+static void cf_check dma_msi_ack(struct irq_desc *desc)
 {
     irq_complete_move(desc);
     dma_msi_mask(desc);
     move_masked_irq(desc);
 }
 
-static void dma_msi_end(struct irq_desc *desc, u8 vector)
+static void cf_check dma_msi_end(struct irq_desc *desc, u8 vector)
 {
     dma_msi_unmask(desc);
     end_nonmaskable_irq(desc, vector);
 }
 
-static void dma_msi_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
+static void cf_check dma_msi_set_affinity(
+    struct irq_desc *desc, const cpumask_t *mask)
 {
     struct msi_msg msg;
     unsigned int dest;
diff --git a/xen/include/asm-x86/irq.h b/xen/include/asm-x86/irq.h
index b3f49abc5556..76e6ed6d60aa 100644
--- a/xen/include/asm-x86/irq.h
+++ b/xen/include/asm-x86/irq.h
@@ -111,8 +111,8 @@ void alloc_direct_apic_vector(
 
 void do_IRQ(struct cpu_user_regs *regs);
 
-void disable_8259A_irq(struct irq_desc *);
-void enable_8259A_irq(struct irq_desc *);
+void cf_check disable_8259A_irq(struct irq_desc *);
+void cf_check enable_8259A_irq(struct irq_desc *);
 int i8259A_irq_pending(unsigned int irq);
 void mask_8259A(void);
 void unmask_8259A(void);
@@ -173,7 +173,7 @@ int create_irq(nodeid_t node, bool grant_access);
 void destroy_irq(unsigned int irq);
 int assign_irq_vector(int irq, const cpumask_t *);
 
-extern void irq_complete_move(struct irq_desc *);
+void cf_check irq_complete_move(struct irq_desc *);
 
 extern struct irq_desc *irq_desc;
 
@@ -187,7 +187,7 @@ void move_masked_irq(struct irq_desc *);
 
 int bind_irq_vector(int irq, int vector, const cpumask_t *);
 
-void end_nonmaskable_irq(struct irq_desc *, uint8_t vector);
+void cf_check end_nonmaskable_irq(struct irq_desc *, uint8_t vector);
 void irq_set_affinity(struct irq_desc *, const cpumask_t *mask);
 
 int init_domain_irq_mapping(struct domain *);
diff --git a/xen/include/asm-x86/msi.h b/xen/include/asm-x86/msi.h
index e228b0f3f344..117379318f2c 100644
--- a/xen/include/asm-x86/msi.h
+++ b/xen/include/asm-x86/msi.h
@@ -247,10 +247,10 @@ void early_msi_init(void);
 void msi_compose_msg(unsigned vector, const cpumask_t *mask,
                      struct msi_msg *msg);
 void __msi_set_enable(u16 seg, u8 bus, u8 slot, u8 func, int pos, int enable);
-void mask_msi_irq(struct irq_desc *);
-void unmask_msi_irq(struct irq_desc *);
+void cf_check mask_msi_irq(struct irq_desc *);
+void cf_check unmask_msi_irq(struct irq_desc *);
 void guest_mask_msi_irq(struct irq_desc *, bool mask);
-void ack_nonmaskable_msi_irq(struct irq_desc *);
-void set_msi_affinity(struct irq_desc *, const cpumask_t *);
+void cf_check ack_nonmaskable_msi_irq(struct irq_desc *);
+void cf_check set_msi_affinity(struct irq_desc *, const cpumask_t *);
 
 #endif /* __ASM_MSI_H */
diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
index 43d567fe445c..d8beadd16b9f 100644
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -116,9 +116,9 @@ extern int request_irq(unsigned int irq, unsigned int irqflags,
                const char * devname, void *dev_id);
 
 extern hw_irq_controller no_irq_type;
-extern void no_action(int cpl, void *dev_id, struct cpu_user_regs *regs);
-extern unsigned int irq_startup_none(struct irq_desc *);
-extern void irq_actor_none(struct irq_desc *);
+void cf_check no_action(int cpl, void *dev_id, struct cpu_user_regs *regs);
+unsigned int cf_check irq_startup_none(struct irq_desc *);
+void cf_check irq_actor_none(struct irq_desc *);
 #define irq_shutdown_none irq_actor_none
 #define irq_disable_none irq_actor_none
 #define irq_enable_none irq_actor_none
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232845.404004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqax6-0005Kd-Lm; Fri, 26 Nov 2021 13:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232845.404004; Fri, 26 Nov 2021 13:07:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqax6-0005Ac-36; Fri, 26 Nov 2021 13:07:44 +0000
Received: by outflank-mailman (input) for mailman id 232845;
 Fri, 26 Nov 2021 13:07:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavW-0003W9-4X
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:06 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c0b457b-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c0b457b-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931964;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=hONvnroaH0E3hbObIHELnWwYtV3ug1ZhmACYEbr++xc=;
  b=CHZdsg2L+iRHfERqQu9SZhvywjaYMQkOXP6zqcyEWuMRIszgOsW+9mcG
   ti+ojR66TPCnwQM+f+LoB7l2ohojJa4T+QKCMU8KwHVY5mjNkKljGNQCh
   vdF6PYkn5jWrk07i4dRcc2YEv5XWwv8sOdBXoudoDFC1VfMF8ZI9eqaeq
   Y=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: fQ25UPOTu+fu01MWoH/vgj3u2zGbsKKD7QCLJWNp0kziqNHAAuOedr34hC0a7jgA23XdznJ+rF
 cBz0fcKSzLGXI9BuS7KlTBfjBs/+Pzsu8q2eNjD1XAsKIYIdL7KcgkCUw9d0uAZJNQOtoOHfj7
 C0Qqy83/e0e+fuMRAqYmAi0kCvzm4NEntLz87ennNnd0z1ENb1F7B89xEpuFNZ/ERLET2Vj6k5
 IgfLFL8VHDR5FvpYR9at5f3YtgIywWSOZapEQy/G5F13WgE2crQCAgvt5bFrdhmM9o1Rc9Iszc
 DapEFMsz1/4tWt7Q1aasqCdW
X-SBRS: 5.1
X-MesageID: 58676436
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:aAWv7apRmnzaiiC08hoOrVifxaBeBmLVYhIvgKrLsJaIsI4StFCzt
 garIBmFafiCM2TyKd8gPdi0/UoB6sTSy9YyHgRlrC89FykR8puZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2ILnW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCncCWFgJ1O4HhpL02fyNxCRlcA51s/ZaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O
 ppHNmQzN0qojxtnAA5KGJMEl8eUo0LCInpbpWOkgqMJ7D2GpOB2+Oe0a4eEEjCQfu1Kmm6Iq
 2SA+H72ajk4HtGCzTuO8lq3m/TC2yj8Xeo6BLC+s/JnnlCX7mgSEwENE0u2p+GjjUyzUM4ZL
 FYbkhfCtoBrqhbtFIOkGUTl/jjU5XbwRua8DcVmzl6Ilq/4zjrALUQ+ZyR5SuIWnsofEGlCO
 kCyo/vlAjlmsbuwQH2b96uJoT7aBRX5PVPudgdfE1JbvoCLTJUby0uWE409SPLdYsjdQGmom
 1i3QD4Ca6L/ZCLh/4Gy5hj5jj2lvfAlpSZlt1yMDgpJAu6UDbNJhrBEC3CHsp6sz67DFzFtW
 UTofeDFt4ji6rnXyUSwrB0lRu3B2hp8GGS0baRTN5cg7S+x3HWoYJpd5jpzTG8wbJ1bKWG0P
 x6P518KjHO2AJdMRfQsC25WI553pZUM6Py/DqyEBjawSsQZmPC7ENFGOhfLgjGFfLkEmqAjI
 5aLGftA/l5BYZmLOAGeHr9HuZdyn3hW7TqKGfjTkkT2uZLDNSX9YepUbzOzghURsfrsTPP9q
 I0EaaNnCnx3DYXDX8Ug2dJJcA1RcyFkXcueRg4+XrfrHzeK0VoJU5f5qY7NsaQ890iMvuuXr
 Hy7RGFCz1/z2S/OJQmQMygxY7LzR5dv63k8OHV0b1qv3nEiZ6ep7bseKMRrLeV2qrQ7wK4mV
 eQBduWBHu9LFmbN9QMCYMSvt4dlbhmq216DZnL3fDglcpd8bAXV4du4LBD3/SwDA3Pv58szq
 rGtzC3BRp8HS1gwBcracqv3nViwoWIciKR5WE6Reotff0Dl8Y5LLS3tj6Bof5FQeEubnjbDj
 lSYGxYVo+XJsrQZytiRiPDWtZqtHst/AlFeQzvR44GpOHSI5WGk24JBDrqFJGiPSGPu9ay+T
 uxJ1PWgYuYflVNHvocgQbZmyaUyu4nmq7NAl1k2GXzKaxKgC696I2nA1s5K7/UfyrhcsAqwe
 0SO5tgFZunZZJK7SAYcdFg/c+CO9fAIgT2Dv/06LXLz6DJz4LfaA15ZOAOBiXAFIbZ4WG//L
 TzNZCLCB9SDtycX
IronPort-HdrOrdr: A9a23:bGlimapMfcIEts7cDGVDhYcaV5oTeYIsimQD101hICG8cqSj+f
 xG+85rrCMc6QxhPk3I9urhBEDtex/hHNtOkOws1NSZLW7bUQmTXeJfBOLZqlWKcUDDH6xmpM
 NdmsBFeaXN5DNB7PoSjjPWLz9Z+qjkzJyV
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676436"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 54/65] x86/stack: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:35 +0000
Message-ID: <20211126123446.32324-55-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The function typecheck in switch_stack_and_jump() is incompatible with control
flow typechecking.  It's ok for reset_stack_and_jump_ind(), but for
reset_stack_and_jump(), it would force us to ENDBR64 the targets which are
branched to directly.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

Honestly, the control flow typechecking is distinctly sub-par, but it's too
late to do anything now.
---
 xen/arch/x86/domain.c             | 6 +++---
 xen/arch/x86/hvm/svm/svm.c        | 6 +++---
 xen/arch/x86/hvm/vmx/vmcs.c       | 2 +-
 xen/arch/x86/hvm/vmx/vmx.c        | 8 ++++----
 xen/arch/x86/pv/domain.c          | 2 +-
 xen/arch/x86/x86_64/entry.S       | 1 +
 xen/include/asm-x86/current.h     | 2 +-
 xen/include/asm-x86/hvm/vmx/vmx.h | 2 +-
 xen/include/asm-x86/pv/domain.h   | 4 ++--
 9 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ae7c88b51af1..afccc1525f8b 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -132,7 +132,7 @@ void play_dead(void)
         dead_idle();
 }
 
-static void noreturn idle_loop(void)
+static void noreturn cf_check idle_loop(void)
 {
     unsigned int cpu = smp_processor_id();
     /*
@@ -1790,7 +1790,7 @@ static void save_segments(struct vcpu *v)
     }
 }
 
-void paravirt_ctxt_switch_from(struct vcpu *v)
+void cf_check paravirt_ctxt_switch_from(struct vcpu *v)
 {
     save_segments(v);
 
@@ -1804,7 +1804,7 @@ void paravirt_ctxt_switch_from(struct vcpu *v)
         write_debugreg(7, 0);
 }
 
-void paravirt_ctxt_switch_to(struct vcpu *v)
+void cf_check paravirt_ctxt_switch_to(struct vcpu *v)
 {
     root_pgentry_t *root_pgt = this_cpu(root_pgt);
 
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index c01477c97c09..2d81e4256455 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -940,7 +940,7 @@ static inline void svm_tsc_ratio_load(struct vcpu *v)
         wrmsrl(MSR_AMD64_TSC_RATIO, hvm_tsc_scaling_ratio(v->domain));
 }
 
-static void svm_ctxt_switch_from(struct vcpu *v)
+static void cf_check svm_ctxt_switch_from(struct vcpu *v)
 {
     int cpu = smp_processor_id();
 
@@ -965,7 +965,7 @@ static void svm_ctxt_switch_from(struct vcpu *v)
     enable_each_ist(idt_tables[cpu]);
 }
 
-static void svm_ctxt_switch_to(struct vcpu *v)
+static void cf_check svm_ctxt_switch_to(struct vcpu *v)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     int cpu = smp_processor_id();
@@ -992,7 +992,7 @@ static void svm_ctxt_switch_to(struct vcpu *v)
         wrmsr_tsc_aux(v->arch.msrs->tsc_aux);
 }
 
-static void noreturn svm_do_resume(void)
+static void noreturn cf_check svm_do_resume(void)
 {
     struct vcpu *v = current;
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 441be8127148..6dc4833aadd2 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1865,7 +1865,7 @@ void vmx_vmentry_failure(void)
 
 void noreturn vmx_asm_do_vmentry(void);
 
-void vmx_do_resume(void)
+void cf_check vmx_do_resume(void)
 {
     struct vcpu *v = current;
     bool_t debug_state;
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 88a6a5ec824b..594de04568ea 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -63,8 +63,8 @@
 static bool_t __initdata opt_force_ept;
 boolean_param("force-ept", opt_force_ept);
 
-static void vmx_ctxt_switch_from(struct vcpu *v);
-static void vmx_ctxt_switch_to(struct vcpu *v);
+static void cf_check vmx_ctxt_switch_from(struct vcpu *v);
+static void cf_check vmx_ctxt_switch_to(struct vcpu *v);
 
 static int alloc_vlapic_mapping(void);
 static void vmx_install_vlapic_mapping(struct vcpu *v);
@@ -885,7 +885,7 @@ static void cf_check vmx_fpu_leave(struct vcpu *v)
     }
 }
 
-static void vmx_ctxt_switch_from(struct vcpu *v)
+static void cf_check vmx_ctxt_switch_from(struct vcpu *v)
 {
     /*
      * Return early if trying to do a context switch without VMX enabled,
@@ -917,7 +917,7 @@ static void vmx_ctxt_switch_from(struct vcpu *v)
         vmx_pi_switch_from(v);
 }
 
-static void vmx_ctxt_switch_to(struct vcpu *v)
+static void cf_check vmx_ctxt_switch_to(struct vcpu *v)
 {
     vmx_restore_guest_msrs(v);
     vmx_restore_dr(v);
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 55146c15c853..f94f28c8e271 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -351,7 +351,7 @@ void pv_domain_destroy(struct domain *d)
     FREE_XENHEAP_PAGE(d->arch.pv.gdt_ldt_l1tab);
 }
 
-void noreturn continue_pv_domain(void);
+void noreturn cf_check continue_pv_domain(void);
 
 int pv_domain_initialise(struct domain *d)
 {
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 3eaf0e67b2b9..8494b97a54a2 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -625,6 +625,7 @@ ENTRY(dom_crash_sync_extable)
 /* No special register assumptions. */
 #ifdef CONFIG_PV
 ENTRY(continue_pv_domain)
+        ENDBR64
         call  check_wakeup_from_wait
 ret_from_intr:
         GET_CURRENT(bx)
diff --git a/xen/include/asm-x86/current.h b/xen/include/asm-x86/current.h
index a74ad4bc4c44..d423f2fd82ca 100644
--- a/xen/include/asm-x86/current.h
+++ b/xen/include/asm-x86/current.h
@@ -173,7 +173,6 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
 #define switch_stack_and_jump(fn, instr, constr)                        \
     ({                                                                  \
         unsigned int tmp;                                               \
-        (void)((fn) == (void (*)(void))NULL);                           \
         BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
         __asm__ __volatile__ (                                          \
             SHADOW_STACK_WORK                                           \
@@ -198,6 +197,7 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
 
 /* The constraint may only specify non-call-clobbered registers. */
 #define reset_stack_and_jump_ind(fn)                                    \
+    (void)((fn) == (void (*)(void))NULL);                               \
     switch_stack_and_jump(fn, "INDIRECT_JMP %", "b")
 
 /*
diff --git a/xen/include/asm-x86/hvm/vmx/vmx.h b/xen/include/asm-x86/hvm/vmx/vmx.h
index 459c84dd9f09..4bb8d08f2ed9 100644
--- a/xen/include/asm-x86/hvm/vmx/vmx.h
+++ b/xen/include/asm-x86/hvm/vmx/vmx.h
@@ -93,7 +93,7 @@ typedef enum {
 
 void vmx_asm_vmexit_handler(struct cpu_user_regs);
 void vmx_intr_assist(void);
-void noreturn vmx_do_resume(void);
+void noreturn cf_check vmx_do_resume(void);
 void vmx_vlapic_msr_changed(struct vcpu *v);
 struct hvm_emulate_ctxt;
 void vmx_realmode_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt);
diff --git a/xen/include/asm-x86/pv/domain.h b/xen/include/asm-x86/pv/domain.h
index df9716ff26a8..68aec0b5a3fa 100644
--- a/xen/include/asm-x86/pv/domain.h
+++ b/xen/include/asm-x86/pv/domain.h
@@ -104,8 +104,8 @@ static inline unsigned long pv_make_cr4(const struct vcpu *v) { return ~0ul; }
 
 #endif	/* CONFIG_PV */
 
-void paravirt_ctxt_switch_from(struct vcpu *v);
-void paravirt_ctxt_switch_to(struct vcpu *v);
+void cf_check paravirt_ctxt_switch_from(struct vcpu *v);
+void cf_check paravirt_ctxt_switch_to(struct vcpu *v);
 
 #endif	/* __X86_PV_DOMAIN_H__ */
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232856.404024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxD-0006zj-F1; Fri, 26 Nov 2021 13:07:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232856.404024; Fri, 26 Nov 2021 13:07:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxD-0006zA-7U; Fri, 26 Nov 2021 13:07:51 +0000
Received: by outflank-mailman (input) for mailman id 232856;
 Fri, 26 Nov 2021 13:07:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqav5-0002zD-FG
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:39 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8c37c52e-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:05:38 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c37c52e-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931938;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=KUsZ4Kl0u4zBXJbtydzwrtf6/N87hO+1FCFpIszujeQ=;
  b=VGmH7D7Ci2nS980UzLcHAFSFqXs3P1qbzwaPxMnloIDJb73E9y72moPQ
   Sbx72gA7rlUCqsfM5pIZFyOS/We96kL2J7Cz6Fl47ZV74xIHOhMyJwTLK
   INQSFqEi2Yyxu48CrPjAjtL6toRsuBFqZZKgJatfS6yIwYVnbNikl2cyq
   U=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: xSwBivzb9jPB7vbbjV2BtbjkjML9dS2pq04YAfs1EiIODJSctJUiDYQkoZwatdcvAfYUmgxCKC
 R+7Uw68J4In7FpSPqzqTpuVxC1PJvNU0lNXRyKwv9aZ4wBTfPLayXKOZpRVjhazVL//b+b7zkd
 VlV+A0v2m9JZf1Mjh3X4IL3qL7f+pRRLOdqxGUKCdub3wOefUh2FLNBlHjR7190TyViFAiRor6
 rZYXaSnS4DhYo7yHwCjylgZOM1VHADTXBoIjEX3mKUq9IlRaFMocr6oKXjC0F/avT9ZCWiSD2A
 cdq1uPeeHoKhwgyP4iaBiFPY
X-SBRS: 5.1
X-MesageID: 58676411
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:KQ1kY6iuAw77EZCm6P8bdSNNX161rRcKZh0ujC45NGQN5FlHY01je
 htvDGGOOfqJazDyLtkkaYu3o04OvJHUzINrSFFrrCk8QSgb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy34Dja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1Mkr6hZVYnPJbRv7VAVjR0PihRNrxZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNauOO
 ZVHNWM2BPjGS0dVGHdPGdE/pdrynSDybw938E2IhoNitgA/yyQuieOwYbI5YOeiWsF9jkue4
 GXc8AzRIDsXKdiewjqt6W+3i6nEmiaTcJIfEvi0++BnhHWXx3cPE1sGWF2ju/67h0WiHdVFJ
 CQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4EsoY+S3cxKjv/iHIW20pYhNIR9c3q5pjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swJP2AAcmV8zlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybZZaJGC4P
 BGP4mu9AaO/2lPxNsebhKrrVqwXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDlJI5fsLXkJIuSJRoxZybXF+
 G+TQEhdxAatjHHLM1zSOHtidKnuTdB0qndiZX4gOlOh2n4CZ4ez7fhAK8trLOd/rOEzn+RpS
 /QletmbBqgdQDrw5DlAP4L2q5ZvdUr3iFvWbTalejU2Y7VpWxfNpo3/ZgLq+SRXVni3uMIyr
 qeOzATeRZZfFQ1uANyPMKCkzk+rvGhbk+V3BhOaLt5WcUTq0Y5rNy2u0aNnf5BScU3On2LI2
 RyXDBEUofj2j7U0qNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVtH79h8HrJswf5s7tfjveYHnAFtHXGNZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQy2vb4vkCKUnn4DN6oeicWkJIMhjQ0CFQIdOZ6m/+L
 TvNbCLO1zGCtw==
IronPort-HdrOrdr: A9a23:Cv0ix66lSWRrpdSCEwPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HWoB17726TtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QC5SWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676411"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 61/65] x86/entry: Make syscall/sysenter entrypoints CET-IBT compatible
Date: Fri, 26 Nov 2021 12:34:42 +0000
Message-ID: <20211126123446.32324-62-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Each of MSR_{L,C}STAR and MSR_SYSENTER_EIP need to land on an endbr64
instruction.  For sysenter, this is easy.

Unfortunately for syscall, the stubs are already 29 byte long with a limit of
32.  endbr64 is 4 bytes.  Luckily, there is a 1 byte instruction which can
move from the stubs into the main handlers.

Move the push %rax out of the stub and into {l,c}star_entry(), allowing room
for the endbr64 instruction when appropriate.  Update the comment describing
the entry state.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/x86_64/entry.S | 18 +++++++++---------
 xen/arch/x86/x86_64/traps.c | 13 +++++++++----
 2 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 8494b97a54a2..9abcf95bd010 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -241,18 +241,17 @@ iret_exit_to_guest:
  * When entering SYSCALL from user mode:
  *  Vector directly to the registered arch.syscall_addr.
  *
- * Initial work is done by per-CPU trampolines. At this point %rsp has been
- * initialised to point at the correct Xen stack, %rsp has been saved, and
- * %rax needs to be restored from the %ss save slot. All other registers are
- * still to be saved onto the stack, starting with RFLAGS, and an appropriate
- * %ss must be saved into the space left by the trampoline.
+ * Initial work is done by per-CPU trampolines.
+ *  - Guest %rax stored in the %ss slot
+ *  - Guest %rsp stored in %rax
+ *  - Xen stack loaded, pointing at the %ss slot
  */
 ENTRY(lstar_enter)
 #ifdef CONFIG_XEN_SHSTK
         ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
 #endif
-        /* sti could live here when we don't switch page tables below. */
-        movq  8(%rsp),%rax /* Restore %rax. */
+        push  %rax          /* Guest %rsp */
+        movq  8(%rsp), %rax /* Restore guest %rax */
         movq  $FLAT_KERNEL_SS,8(%rsp)
         pushq %r11
         pushq $FLAT_KERNEL_CS64
@@ -288,9 +287,9 @@ ENTRY(cstar_enter)
 #ifdef CONFIG_XEN_SHSTK
         ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
 #endif
-        /* sti could live here when we don't switch page tables below. */
+        push  %rax          /* Guest %rsp */
         CR4_PV32_RESTORE
-        movq  8(%rsp), %rax /* Restore %rax. */
+        movq  8(%rsp), %rax /* Restore guest %rax. */
         movq  $FLAT_USER_SS32, 8(%rsp) /* Assume a 64bit domain.  Compat handled lower. */
         pushq %r11
         pushq $FLAT_USER_CS32
@@ -323,6 +322,7 @@ ENTRY(cstar_enter)
         jmp   switch_to_kernel
 
 ENTRY(sysenter_entry)
+        ENDBR64
 #ifdef CONFIG_XEN_SHSTK
         ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
 #endif
diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
index 6f3c65bedc7a..3b9a332efb99 100644
--- a/xen/arch/x86/x86_64/traps.c
+++ b/xen/arch/x86/x86_64/traps.c
@@ -295,6 +295,15 @@ static unsigned int write_stub_trampoline(
 {
     unsigned char *p = stub;
 
+    if ( cpu_has_xen_ibt )
+    {
+        /* endbr64 */
+        *p++ = 0xf3;
+        *p++ = 0x0f;
+        *p++ = 0x1e;
+        *p++ = 0xfa;
+    }
+
     /* Store guest %rax into %ss slot */
     /* movabsq %rax, stack_bottom - 8 */
     *p++ = 0x48;
@@ -315,10 +324,6 @@ static unsigned int write_stub_trampoline(
     *(uint64_t *)p = stack_bottom - 8;
     p += 8;
 
-    /* Store guest %rsp into %rsp slot */
-    /* pushq %rax */
-    *p++ = 0x50;
-
     /* jmp target_va */
     *p++ = 0xe9;
     *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232859.404034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxF-0007Ir-CF; Fri, 26 Nov 2021 13:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232859.404034; Fri, 26 Nov 2021 13:07:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxE-0007H7-Kd; Fri, 26 Nov 2021 13:07:52 +0000
Received: by outflank-mailman (input) for mailman id 232859;
 Fri, 26 Nov 2021 13:07:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavg-0002zD-CD
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:16 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9fdb31ff-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:06:11 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9fdb31ff-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931971;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=xnOxh2ouMD9YxuVuQeIQxnQYuJC2T33FETvQlA9/bVY=;
  b=Ok7bv8A75dtngjor7SrVl41xrKPUl02zyOWNP2xGE2WOT4i71JMwkhN9
   RK+3Jd73/x/DS8mid/GHic5yyXoili3MCgt8Zr/G+o6x/vVcigMNCNK2t
   pr//rZ68TdxPJao8fL0ahh0tg06VmlzBSDU9A8HfBHIpdZu2fmCjsXjFm
   g=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: OZyK3cfFl/Fm6/VFQRlvSPJ8ju/C18rmFwdmN9z+74ENs6E8koK6YiffJE77w3L7mDeT0H0Xab
 6hvLhjosfR0bmOSTDofDO5EyBzLadDGsHFFslfIq12Pq/EyQssxVK6WNFqpyM5ja0zuXk6ZrMN
 qRkGtUGOdpeFaBkBW4IoTc4Vn+cDg3cvAnfMTdAjeSmqB+NOHzIjL3Ctmm1+ElWviGMHDqKvdB
 xQWzKQz6x7gPqTCbB5WHNKdGV8LHomrkC3afNgM7yhmbRCSqzQc8hkRBrchKrKG7MW8ZKCNh9g
 NpMsm12s653XIvt08wGoDudO
X-SBRS: 5.1
X-MesageID: 60695344
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:rMEQm6/9ga7POMEtV9JlDrUDTXmTJUtcMsCJ2f8bNWPcYEJGY0x3n
 GZNDTjVbPfcY2WgKdogboiy8hgG7JaByYUxSVNorSo8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj3NYy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhIk
 Oh2lbuVQDsFBaGWh78BVENoTyhHaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp4WQ6eDP
 JZFAdZpRDT5aTFFP14aMqIFobiRgFDQWWVXk3vA8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru3U70HxUbP9y30iee/zSngeqntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLpix
 1c8o3R06/JorQryE4e7D0bQTGO4UgA0YoJtKM0dzQix5pHYuRnCGm9efmJIUYlz3CMpfgAC2
 liMltLvIDVgtryJVH6QnoupQSOO1Ts9djFbO3JdJecRy5y6+dxo0EqTJjp2OPft1oWdJN3m/
 9ydQMHSbZ03hNVD6ai09Euvb9mE9smQFV5dCuk6swuYAuJFiGyNO9PABbvzt68owGOlor+p5
 yNsdy+2tr1mMH11vHbRKNjh5Znwjxp/DBXSgER0A74q/Cm39niocOh4uW8lexc3b5lVJWG1O
 yc/XD+9ArcIZxNGioctPuqM5zkCl/C8RbwJqNiIBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WiOHSKqtBKcghRRZX5bLivw/Fqmie4ClIOMAkc5zX5n9vNoqRpwPZYkPnm5
 Ha4VhMKwVbznySfew6LdmpiePXkWpMm9SA3OiklPFCJ3Xk/YNnwsPdDJsVvJbR3pvZ+yfNUT
 uUef5nSCPp4VTmaqS8WaoPwrdI+eU3z1x6OJSesfBM2Y4VkG17S4tbhcwa2rHsOAyO7uNEQu
 bql0g+HE5MPSx47VJTdae61zkP3tn8YwbogU0zNK9hVWUPt7Ik1dHCh0q5pe5kBcEyRyCGb2
 gCaBQYjidPM+4JlosPUga2krpuyF7csFERtAGSGv629MjPX/zT/zNYYAvqIZz3USEj95L6mO
 bdO1/j5PfAKwARKvo57H+o5xK4y/YKy9bpTzwAiF3TXdVW7TLhnJyDej8VIs6RMwJ5fuBe3B
 R3TqoULZ+3RNZO3CkMVKSokcv+HhKMdlTTl5PgoJFn3uX1s972dXEQOZxSBhUSx9leu3F/JF
 Qv5hPMr1g==
IronPort-HdrOrdr: A9a23:dXKQ7anUUmKUK5MHGwI1Dtf0rWTpDfI/3DAbv31ZSRFFG/Fw9v
 re/8jzuiWftN98YhwdcLO7WJVoI0mzyXcd2+B4VotKOjOLhILCFuBfBOXZrAEJ30bFh4tgPW
 AKSdkdNOHN
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="60695344"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 57/65] x86/setup: Read CR4 earlier in __start_xen()
Date: Fri, 26 Nov 2021 12:34:38 +0000
Message-ID: <20211126123446.32324-58-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

This is necessary for read_cr4() to function correctly.  Move the EFER caching
at the same time.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/setup.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 9bd42a55f94b..141957c9f6a5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -872,6 +872,9 @@ void __init noreturn __start_xen(unsigned long mbi_p)
 
     /* Full exception support from here on in. */
 
+    rdmsrl(MSR_EFER, this_cpu(efer));
+    asm volatile ( "mov %%cr4,%0" : "=r" (get_cpu_info()->cr4) );
+
     /* Enable NMIs.  Our loader (e.g. Tboot) may have left them disabled. */
     enable_nmis();
 
@@ -918,9 +921,6 @@ void __init noreturn __start_xen(unsigned long mbi_p)
 
     parse_video_info();
 
-    rdmsrl(MSR_EFER, this_cpu(efer));
-    asm volatile ( "mov %%cr4,%0" : "=r" (get_cpu_info()->cr4) );
-
     /* We initialise the serial devices very early so we can get debugging. */
     ns16550.io_base = 0x3f8;
     ns16550.irq     = 4;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232860.404038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxF-0007QY-V0; Fri, 26 Nov 2021 13:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232860.404038; Fri, 26 Nov 2021 13:07:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxF-0007Mz-5K; Fri, 26 Nov 2021 13:07:53 +0000
Received: by outflank-mailman (input) for mailman id 232860;
 Fri, 26 Nov 2021 13:07:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavZ-0003W9-5Y
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:09 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9e6fb575-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e6fb575-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931967;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=jYHmGb285zp19wAOZwPVRqBng1R2DTOnh2y5+lEruAo=;
  b=eFWIdKg08En0EXpWFrQKbybFrQHq1XyI131FyMmdtcK5G4gmQn2ciBDO
   q5zDZMmAGmIOCH6EBBweOYkDEyLll1GcA2sZE3UqFqfiGncngewmEGbzv
   ZqXPv5E/zwxyPU/QtsCdmOyl9DXE1k+SdjtFjRgm0lWC+rETSNZe1IIUd
   s=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: U4Ug72oaXHFOpynjTFMgYcJ7VtoRUHaNSFIGy/weFoqd02iDgsJNloaZRxwiZT3fqp2M6dOr4a
 TpiitZgWTnpNPbjc4e7TtV6fyHaEKY1DydubLT+R/TtETX6sXZP+LcoF2iy3pN/WKEY3zJHVTr
 p+q0YhRUiQMn6rlg4sFu8+OUEYdZYwX8RImJ83Pzr96RMSa19s0P9081yE4KsrIgV64e2W2gL1
 bW8v+nCjyGsOaXYJugzxS8hYlmzowQJCsL5ao7hh0zPRqYHuuM02yRQBu484Ax3meL42UjD1W6
 BbK2pOEndhtqpG1TLdWq0tnC
X-SBRS: 5.1
X-MesageID: 58696039
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:10XO0K1deY95f0Kp7PbD5Vd2kn2cJEfYwER7XKvMYLTBsI5bpzQOn
 GdOWTqEbvjZajajetEiao2y9xgEvJHVyt83TQU9pC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbBh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhltBMl
 vNAn5KLbkQAE47BgLkbfylUOnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Er8IvNsT0eqgYvWlt12rxBvc6W5HTBa7N4Le02R9t1p4fQ66FN
 qL1bxJAZwrGPwB2a20VEbQngeKspiTfYhFH/Qf9Sa0fvDGIkV0ZPKLWGNjIft2HQ+1Fk0Deo
 XjJl0zbKBwHMN2UyRKe72mhwOTImEvTWo0IE6aj3uV3m1DVzWsWYDUGWF3+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQiGWfohcWVt5UEus7wAKA0KzZ50CeHGdsZiFFQMwrsokxXzNC6
 7OSt4q3X3o16uTTEC/DsOfPxd+vBcQLBWYCWHEiQCEL2P6giawQgwqSSPpTHIfg27UZBgrM6
 zyNqSE/gZAagsgKy7i38Dj7vt68mnTaZlVrv1uKBwpJ+is8Pdf4PNLwtTA3+N4ZdN7BJmRtq
 kTojCR3AAomKZiW3BKAT+wWdF1Cz6bUaWaM6bKD8nRIythMx5JBVdwPiN2dDB0wWirhRdMPS
 BSI0e+2zMUOVEZGlYctP+qM5z0ClMAM7+jNWPHOdcZpaZNsbgKB9ywGTRfOhD+9zhVzwP1hZ
 czznSOQ4ZAyUv8PIN2eHbp17FPW7npmmTO7qW7Tk3xLLoZylFbKEOxYYTNin8gy7b+eoRW9z
 jqsH5Di9vmra8WnOnO/2ddKdTgidCFnbbir+50/XrPSeWJORTB+Y8I9NJt8IuSJaYwOzbyWl
 px8M2cFoGfCaYrvdV/XNys9Mey3Bv6SbxsTZEQRALph4FB7Ca7H0UvVX8JfkWAP+LMxwPhqY
 eMCfsncUP1DRi6eo2YWbIXnrZwkfxOu3FrcMy2gaTk5XphhWw2WpYO0IlqxrHEDXnitqM8zg
 7y8zQeHE5ANcBtvUZTNY/W1wlLv4XVEwLBuX1HFK8V4cVn39NQ4MDT4i/I6epleKRjKyjaA+
 RyRBBMU+bvEr4MvqYGbjqGYtYa5VeB5GxMCTWXc6L+3Mwjc/3aintAcALrZI2iFWTqtqqu4Z
 OhTw/XtC9E9nQ5H49hmDrJm7aMi/N+z9bVU+RtpQSfQZFOxB7I+fnTfhZtTtrdAz6NysBetX
 h7d4cFTPLiENZ+3EFMVIwZ5PO2P2etNx2vX5PUxZk77+DV27PyMVkALZ0uAjylULb1UNoI5w
 Lh+5J5KulLn0hd6YMybii109niXKi1SWqoqgZgWHYv3h1d50VpFe5HdVnf77Zznhw+g6aX2z
 ut4XJb/uok=
IronPort-HdrOrdr: A9a23:edKFH6BSnCfsZlPlHemU55DYdb4zR+YMi2TC1yhKJyC9Ffbo7v
 xG/c5rsyMc5wxwZJhNo7y90ey7MBbhHP1OkO4s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpN
 9dmsNFaeEYY2IUsS+D2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58696039"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Juergen Gross
	<jgross@suse.com>
Subject: [PATCH 18/65] xen/hypfs: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:33:59 +0000
Message-ID: <20211126123446.32324-19-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Juergen Gross <jgross@suse.com>
---
 xen/common/hypfs.c         | 57 +++++++++++++++++++++++-----------------------
 xen/common/sched/cpupool.c | 25 ++++++++++----------
 xen/include/xen/hypfs.h    | 49 +++++++++++++++++++--------------------
 3 files changed, 65 insertions(+), 66 deletions(-)

diff --git a/xen/common/hypfs.c b/xen/common/hypfs.c
index 1526bcc52810..0d22396f5dd7 100644
--- a/xen/common/hypfs.c
+++ b/xen/common/hypfs.c
@@ -113,12 +113,13 @@ static void hypfs_unlock(void)
     }
 }
 
-const struct hypfs_entry *hypfs_node_enter(const struct hypfs_entry *entry)
+const struct hypfs_entry *cf_check hypfs_node_enter(
+    const struct hypfs_entry *entry)
 {
     return entry;
 }
 
-void hypfs_node_exit(const struct hypfs_entry *entry)
+void cf_check hypfs_node_exit(const struct hypfs_entry *entry)
 {
 }
 
@@ -289,16 +290,14 @@ static int hypfs_get_path_user(char *buf,
     return 0;
 }
 
-struct hypfs_entry *hypfs_leaf_findentry(const struct hypfs_entry_dir *dir,
-                                         const char *name,
-                                         unsigned int name_len)
+struct hypfs_entry *cf_check hypfs_leaf_findentry(
+    const struct hypfs_entry_dir *dir, const char *name, unsigned int name_len)
 {
     return ERR_PTR(-ENOTDIR);
 }
 
-struct hypfs_entry *hypfs_dir_findentry(const struct hypfs_entry_dir *dir,
-                                        const char *name,
-                                        unsigned int name_len)
+struct hypfs_entry *cf_check hypfs_dir_findentry(
+    const struct hypfs_entry_dir *dir, const char *name, unsigned int name_len)
 {
     struct hypfs_entry *entry;
 
@@ -360,7 +359,7 @@ static struct hypfs_entry *hypfs_get_entry(const char *path)
     return hypfs_get_entry_rel(&hypfs_root, path + 1);
 }
 
-unsigned int hypfs_getsize(const struct hypfs_entry *entry)
+unsigned int cf_check hypfs_getsize(const struct hypfs_entry *entry)
 {
     return entry->size;
 }
@@ -396,7 +395,7 @@ int hypfs_read_dyndir_id_entry(const struct hypfs_entry_dir *template,
     return 0;
 }
 
-static const struct hypfs_entry *hypfs_dyndir_enter(
+static const struct hypfs_entry *cf_check hypfs_dyndir_enter(
     const struct hypfs_entry *entry)
 {
     const struct hypfs_dyndir_id *data;
@@ -407,7 +406,7 @@ static const struct hypfs_entry *hypfs_dyndir_enter(
     return data->template->e.funcs->enter(&data->template->e);
 }
 
-static struct hypfs_entry *hypfs_dyndir_findentry(
+static struct hypfs_entry *cf_check hypfs_dyndir_findentry(
     const struct hypfs_entry_dir *dir, const char *name, unsigned int name_len)
 {
     const struct hypfs_dyndir_id *data;
@@ -418,8 +417,8 @@ static struct hypfs_entry *hypfs_dyndir_findentry(
     return data->template->e.funcs->findentry(data->template, name, name_len);
 }
 
-static int hypfs_read_dyndir(const struct hypfs_entry *entry,
-                             XEN_GUEST_HANDLE_PARAM(void) uaddr)
+static int cf_check hypfs_read_dyndir(
+    const struct hypfs_entry *entry, XEN_GUEST_HANDLE_PARAM(void) uaddr)
 {
     const struct hypfs_dyndir_id *data;
 
@@ -463,8 +462,8 @@ unsigned int hypfs_dynid_entry_size(const struct hypfs_entry *template,
     return DIRENTRY_SIZE(snprintf(NULL, 0, template->name, id));
 }
 
-int hypfs_read_dir(const struct hypfs_entry *entry,
-                   XEN_GUEST_HANDLE_PARAM(void) uaddr)
+int cf_check hypfs_read_dir(const struct hypfs_entry *entry,
+                            XEN_GUEST_HANDLE_PARAM(void) uaddr)
 {
     const struct hypfs_entry_dir *d;
     const struct hypfs_entry *e;
@@ -510,8 +509,8 @@ int hypfs_read_dir(const struct hypfs_entry *entry,
     return 0;
 }
 
-int hypfs_read_leaf(const struct hypfs_entry *entry,
-                    XEN_GUEST_HANDLE_PARAM(void) uaddr)
+int cf_check hypfs_read_leaf(
+    const struct hypfs_entry *entry, XEN_GUEST_HANDLE_PARAM(void) uaddr)
 {
     const struct hypfs_entry_leaf *l;
     unsigned int size = entry->funcs->getsize(entry);
@@ -555,9 +554,9 @@ static int hypfs_read(const struct hypfs_entry *entry,
     return ret;
 }
 
-int hypfs_write_leaf(struct hypfs_entry_leaf *leaf,
-                     XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
-                     unsigned int ulen)
+int cf_check hypfs_write_leaf(
+    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
+    unsigned int ulen)
 {
     char *buf;
     int ret;
@@ -596,9 +595,9 @@ int hypfs_write_leaf(struct hypfs_entry_leaf *leaf,
     return ret;
 }
 
-int hypfs_write_bool(struct hypfs_entry_leaf *leaf,
-                     XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
-                     unsigned int ulen)
+int cf_check hypfs_write_bool(
+    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
+    unsigned int ulen)
 {
     bool buf;
 
@@ -618,9 +617,9 @@ int hypfs_write_bool(struct hypfs_entry_leaf *leaf,
     return 0;
 }
 
-int hypfs_write_custom(struct hypfs_entry_leaf *leaf,
-                       XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
-                       unsigned int ulen)
+int cf_check hypfs_write_custom(
+    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
+    unsigned int ulen)
 {
     struct param_hypfs *p;
     char *buf;
@@ -653,9 +652,9 @@ int hypfs_write_custom(struct hypfs_entry_leaf *leaf,
     return ret;
 }
 
-int hypfs_write_deny(struct hypfs_entry_leaf *leaf,
-                     XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
-                     unsigned int ulen)
+int cf_check hypfs_write_deny(
+    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
+    unsigned int ulen)
 {
     return -EACCES;
 }
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index b9d4babd0d8a..07f984a659cd 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -1026,8 +1026,8 @@ static struct notifier_block cpu_nfb = {
 
 static HYPFS_DIR_INIT(cpupool_pooldir, "%u");
 
-static int cpupool_dir_read(const struct hypfs_entry *entry,
-                            XEN_GUEST_HANDLE_PARAM(void) uaddr)
+static int cf_check cpupool_dir_read(
+    const struct hypfs_entry *entry, XEN_GUEST_HANDLE_PARAM(void) uaddr)
 {
     int ret = 0;
     struct cpupool *c;
@@ -1050,7 +1050,8 @@ static int cpupool_dir_read(const struct hypfs_entry *entry,
     return ret;
 }
 
-static unsigned int cpupool_dir_getsize(const struct hypfs_entry *entry)
+static unsigned int cf_check cpupool_dir_getsize(
+    const struct hypfs_entry *entry)
 {
     const struct cpupool *c;
     unsigned int size = 0;
@@ -1061,7 +1062,7 @@ static unsigned int cpupool_dir_getsize(const struct hypfs_entry *entry)
     return size;
 }
 
-static const struct hypfs_entry *cpupool_dir_enter(
+static const struct hypfs_entry *cf_check cpupool_dir_enter(
     const struct hypfs_entry *entry)
 {
     struct hypfs_dyndir_id *data;
@@ -1076,14 +1077,14 @@ static const struct hypfs_entry *cpupool_dir_enter(
     return entry;
 }
 
-static void cpupool_dir_exit(const struct hypfs_entry *entry)
+static void cf_check cpupool_dir_exit(const struct hypfs_entry *entry)
 {
     spin_unlock(&cpupool_lock);
 
     hypfs_free_dyndata();
 }
 
-static struct hypfs_entry *cpupool_dir_findentry(
+static struct hypfs_entry *cf_check cpupool_dir_findentry(
     const struct hypfs_entry_dir *dir, const char *name, unsigned int name_len)
 {
     unsigned long id;
@@ -1102,8 +1103,8 @@ static struct hypfs_entry *cpupool_dir_findentry(
     return hypfs_gen_dyndir_id_entry(&cpupool_pooldir, id, cpupool);
 }
 
-static int cpupool_gran_read(const struct hypfs_entry *entry,
-                             XEN_GUEST_HANDLE_PARAM(void) uaddr)
+static int cf_check cpupool_gran_read(
+    const struct hypfs_entry *entry, XEN_GUEST_HANDLE_PARAM(void) uaddr)
 {
     const struct hypfs_dyndir_id *data;
     const struct cpupool *cpupool;
@@ -1121,7 +1122,7 @@ static int cpupool_gran_read(const struct hypfs_entry *entry,
     return copy_to_guest(uaddr, gran, strlen(gran) + 1) ? -EFAULT : 0;
 }
 
-static unsigned int hypfs_gran_getsize(const struct hypfs_entry *entry)
+static unsigned int cf_check hypfs_gran_getsize(const struct hypfs_entry *entry)
 {
     const struct hypfs_dyndir_id *data;
     const struct cpupool *cpupool;
@@ -1136,9 +1137,9 @@ static unsigned int hypfs_gran_getsize(const struct hypfs_entry *entry)
     return strlen(gran) + 1;
 }
 
-static int cpupool_gran_write(struct hypfs_entry_leaf *leaf,
-                              XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
-                              unsigned int ulen)
+static int cf_check cpupool_gran_write(
+    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
+    unsigned int ulen)
 {
     const struct hypfs_dyndir_id *data;
     struct cpupool *cpupool;
diff --git a/xen/include/xen/hypfs.h b/xen/include/xen/hypfs.h
index e9d4c2555bd7..1b65a9188c6c 100644
--- a/xen/include/xen/hypfs.h
+++ b/xen/include/xen/hypfs.h
@@ -168,31 +168,30 @@ void hypfs_add_dyndir(struct hypfs_entry_dir *parent,
                       struct hypfs_entry_dir *template);
 int hypfs_add_leaf(struct hypfs_entry_dir *parent,
                    struct hypfs_entry_leaf *leaf, bool nofault);
-const struct hypfs_entry *hypfs_node_enter(const struct hypfs_entry *entry);
-void hypfs_node_exit(const struct hypfs_entry *entry);
-int hypfs_read_dir(const struct hypfs_entry *entry,
-                   XEN_GUEST_HANDLE_PARAM(void) uaddr);
-int hypfs_read_leaf(const struct hypfs_entry *entry,
-                    XEN_GUEST_HANDLE_PARAM(void) uaddr);
-int hypfs_write_deny(struct hypfs_entry_leaf *leaf,
-                     XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
-                     unsigned int ulen);
-int hypfs_write_leaf(struct hypfs_entry_leaf *leaf,
-                     XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
-                     unsigned int ulen);
-int hypfs_write_bool(struct hypfs_entry_leaf *leaf,
-                     XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
-                     unsigned int ulen);
-int hypfs_write_custom(struct hypfs_entry_leaf *leaf,
-                       XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
-                       unsigned int ulen);
-unsigned int hypfs_getsize(const struct hypfs_entry *entry);
-struct hypfs_entry *hypfs_leaf_findentry(const struct hypfs_entry_dir *dir,
-                                         const char *name,
-                                         unsigned int name_len);
-struct hypfs_entry *hypfs_dir_findentry(const struct hypfs_entry_dir *dir,
-                                        const char *name,
-                                        unsigned int name_len);
+const struct hypfs_entry *cf_check hypfs_node_enter(
+    const struct hypfs_entry *entry);
+void cf_check hypfs_node_exit(const struct hypfs_entry *entry);
+int cf_check hypfs_read_dir(const struct hypfs_entry *entry,
+                            XEN_GUEST_HANDLE_PARAM(void) uaddr);
+int cf_check hypfs_read_leaf(const struct hypfs_entry *entry,
+                             XEN_GUEST_HANDLE_PARAM(void) uaddr);
+int cf_check hypfs_write_deny(struct hypfs_entry_leaf *leaf,
+                              XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
+                              unsigned int ulen);
+int cf_check hypfs_write_leaf(struct hypfs_entry_leaf *leaf,
+                              XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
+                              unsigned int ulen);
+int cf_check hypfs_write_bool(struct hypfs_entry_leaf *leaf,
+                              XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
+                              unsigned int ulen);
+int cf_check hypfs_write_custom(struct hypfs_entry_leaf *leaf,
+                                XEN_GUEST_HANDLE_PARAM(const_void) uaddr,
+                                unsigned int ulen);
+unsigned int cf_check hypfs_getsize(const struct hypfs_entry *entry);
+struct hypfs_entry *cf_check hypfs_leaf_findentry(
+    const struct hypfs_entry_dir *dir, const char *name, unsigned int name_len);
+struct hypfs_entry *cf_check hypfs_dir_findentry(
+    const struct hypfs_entry_dir *dir, const char *name, unsigned int name_len);
 void *hypfs_alloc_dyndata(unsigned long size);
 #define hypfs_alloc_dyndata(type) ((type *)hypfs_alloc_dyndata(sizeof(type)))
 void *hypfs_get_dyndata(void);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:07:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:07:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232861.404041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxG-0007cl-Jw; Fri, 26 Nov 2021 13:07:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232861.404041; Fri, 26 Nov 2021 13:07:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxG-0007Yf-4b; Fri, 26 Nov 2021 13:07:54 +0000
Received: by outflank-mailman (input) for mailman id 232861;
 Fri, 26 Nov 2021 13:07:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaui-0003W9-Jl
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:16 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7efb2e6d-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7efb2e6d-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931914;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=AtKkHK4Fn9Tibx+JcfjODOJaD4dj5WX9w5aEerifsuI=;
  b=Bqi5CYy77kAnfoq3UW9ww0q/T7daq4cURakCvLeNH9pHNPMGT3RtyF2C
   4GWfCu2VVGNzGNF5vIkc1PMsg0FCgW4mi0eGvXu+OT49P4jmypZO3RIb4
   1MAW+MIhiiP0WLXjE7nlfj9AlaBYEzD8+IUvNaaOIFCRI0Pce85VdzxAE
   E=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: pIQJ7FhTgUrM8YBosF6BU8m+O0b8OBTcvCK/9DljwUQNqpG9tdw/V9MsO6XszAgnd+tkHMgnfy
 0jn94jvzFviXY1z7iokKWf5XE/pH0ymMXgr8uTyMaPembhSTMTGJTjI6B6A62fUHNy/ELn+nNC
 HLXtwRtZDQQgRI8mU+U17PdLTkm3m5gkNFgl9uJZ7ZuTqrjLAX4rNaHLcJuvrA/AdQkddp4RPy
 DkdkW9pI3lFuCETeK9GDdbtD11Lz63U/icDd5RHJiD2QSq00cOfT5ez9f8mme3t61w0uvJZNKo
 DQUqXwa/m4voj81LharwsjP2
X-SBRS: 5.1
X-MesageID: 58193791
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:0JNBl6tYFeKRys/g1YzV9i5MaufnVJtZMUV32f8akzHdYApBsoF/q
 tZmKWvXOf+DNmb1eYp3aIS080tV7ZKEmN5nGQs+pCs3RHsT+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NpllLi9UwwXEvD1nssTUkljLyBvJolFweqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5NIMmU+NXwsZTVsZWZLCpwQx965g0DDKiZkil+H9fEotj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO8we5RuG9IaJ2gC2CGlUdQJAeccCt/ZjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSEhRqjBNzAJrVkg
 JTis5PFhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlUJ2K2M
 RON5Vg5CHpv0J2CNvQfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9YNc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:5Bs6uKCqFNqtR3blHemU55DYdb4zR+YMi2TC1yhKJyC9Ffbo7v
 xG/c5rsyMc5wxwZJhNo7y90ey7MBbhHP1OkO4s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpN
 9dmsNFaeEYY2IUsS+D2njbL+od
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58193791"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 48/65] x86/aepi: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:29 +0000
Message-ID: <20211126123446.32324-49-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

I was very surprised when encountering this...  AML and EFI are bad enough,
but why on earth do we need yet another firmware provided arbitrary turning
machine to be executing in Xen's context.
---
 xen/drivers/acpi/apei/apei-base.c     | 32 ++++++++++----------
 xen/drivers/acpi/apei/apei-internal.h | 20 ++++++------
 xen/drivers/acpi/apei/erst.c          | 57 +++++++++++++++++------------------
 3 files changed, 54 insertions(+), 55 deletions(-)

diff --git a/xen/drivers/acpi/apei/apei-base.c b/xen/drivers/acpi/apei/apei-base.c
index 6f81e7fa366a..de75c1cef992 100644
--- a/xen/drivers/acpi/apei/apei-base.c
+++ b/xen/drivers/acpi/apei/apei-base.c
@@ -80,8 +80,8 @@ int __apei_exec_read_register(struct acpi_whea_header *entry, u64 *val)
 	return 0;
 }
 
-int apei_exec_read_register(struct apei_exec_context *ctx,
-			    struct acpi_whea_header *entry)
+int cf_check apei_exec_read_register(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	int rc;
 	u64 val = 0;
@@ -94,8 +94,8 @@ int apei_exec_read_register(struct apei_exec_context *ctx,
 	return 0;
 }
 
-int apei_exec_read_register_value(struct apei_exec_context *ctx,
-				  struct acpi_whea_header *entry)
+int cf_check apei_exec_read_register_value(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	int rc;
 
@@ -126,14 +126,14 @@ int __apei_exec_write_register(struct acpi_whea_header *entry, u64 val)
 	return rc;
 }
 
-int apei_exec_write_register(struct apei_exec_context *ctx,
-			     struct acpi_whea_header *entry)
+int cf_check apei_exec_write_register(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	return __apei_exec_write_register(entry, ctx->value);
 }
 
-int apei_exec_write_register_value(struct apei_exec_context *ctx,
-				   struct acpi_whea_header *entry)
+int cf_check apei_exec_write_register_value(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	int rc;
 
@@ -143,8 +143,8 @@ int apei_exec_write_register_value(struct apei_exec_context *ctx,
 	return rc;
 }
 
-int apei_exec_noop(struct apei_exec_context *ctx,
-		   struct acpi_whea_header *entry)
+int cf_check apei_exec_noop(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	return 0;
 }
@@ -230,9 +230,9 @@ static int __init apei_exec_for_each_entry(struct apei_exec_context *ctx,
 	return 0;
 }
 
-static int __init pre_map_gar_callback(struct apei_exec_context *ctx,
-				       struct acpi_whea_header *entry,
-				       void *data)
+static int __init cf_check pre_map_gar_callback(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry,
+	void *data)
 {
 	u8 ins = entry->instruction;
 
@@ -259,9 +259,9 @@ int __init apei_exec_pre_map_gars(struct apei_exec_context *ctx)
 	return rc;
 }
 
-static int __init post_unmap_gar_callback(struct apei_exec_context *ctx,
-					  struct acpi_whea_header *entry,
-					  void *data)
+static int __init cf_check post_unmap_gar_callback(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry,
+	void *data)
 {
 	u8 ins = entry->instruction;
 
diff --git a/xen/drivers/acpi/apei/apei-internal.h b/xen/drivers/acpi/apei/apei-internal.h
index b813d55b92a9..360e94b9c877 100644
--- a/xen/drivers/acpi/apei/apei-internal.h
+++ b/xen/drivers/acpi/apei/apei-internal.h
@@ -68,16 +68,16 @@ static inline int apei_exec_run_optional(struct apei_exec_context *ctx, u8 actio
 
 int __apei_exec_read_register(struct acpi_whea_header *entry, u64 *val);
 int __apei_exec_write_register(struct acpi_whea_header *entry, u64 val);
-int apei_exec_read_register(struct apei_exec_context *ctx,
-			    struct acpi_whea_header *entry);
-int apei_exec_read_register_value(struct apei_exec_context *ctx,
-				  struct acpi_whea_header *entry);
-int apei_exec_write_register(struct apei_exec_context *ctx,
-			     struct acpi_whea_header *entry);
-int apei_exec_write_register_value(struct apei_exec_context *ctx,
-				   struct acpi_whea_header *entry);
-int apei_exec_noop(struct apei_exec_context *ctx,
-		   struct acpi_whea_header *entry);
+int cf_check apei_exec_read_register(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry);
+int cf_check apei_exec_read_register_value(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry);
+int cf_check apei_exec_write_register(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry);
+int cf_check apei_exec_write_register_value(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry);
+int cf_check apei_exec_noop(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry);
 int apei_exec_pre_map_gars(struct apei_exec_context *ctx);
 int apei_exec_post_unmap_gars(struct apei_exec_context *ctx);
 
diff --git a/xen/drivers/acpi/apei/erst.c b/xen/drivers/acpi/apei/erst.c
index c5df512b9838..40d8f00270d0 100644
--- a/xen/drivers/acpi/apei/erst.c
+++ b/xen/drivers/acpi/apei/erst.c
@@ -114,40 +114,40 @@ static int erst_timedout(u64 *t, u64 spin_unit)
 	return 0;
 }
 
-static int erst_exec_load_var1(struct apei_exec_context *ctx,
-			       struct acpi_whea_header *entry)
+static int cf_check erst_exec_load_var1(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	return __apei_exec_read_register(entry, &ctx->var1);
 }
 
-static int erst_exec_load_var2(struct apei_exec_context *ctx,
-			       struct acpi_whea_header *entry)
+static int cf_check erst_exec_load_var2(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	return __apei_exec_read_register(entry, &ctx->var2);
 }
 
-static int erst_exec_store_var1(struct apei_exec_context *ctx,
-				struct acpi_whea_header *entry)
+static int cf_check erst_exec_store_var1(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	return __apei_exec_write_register(entry, ctx->var1);
 }
 
-static int erst_exec_add(struct apei_exec_context *ctx,
-			 struct acpi_whea_header *entry)
+static int cf_check erst_exec_add(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	ctx->var1 += ctx->var2;
 	return 0;
 }
 
-static int erst_exec_subtract(struct apei_exec_context *ctx,
-			      struct acpi_whea_header *entry)
+static int cf_check erst_exec_subtract(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	ctx->var1 -= ctx->var2;
 	return 0;
 }
 
-static int erst_exec_add_value(struct apei_exec_context *ctx,
-			       struct acpi_whea_header *entry)
+static int cf_check erst_exec_add_value(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	int rc;
 	u64 val;
@@ -160,8 +160,8 @@ static int erst_exec_add_value(struct apei_exec_context *ctx,
 	return rc;
 }
 
-static int erst_exec_subtract_value(struct apei_exec_context *ctx,
-				    struct acpi_whea_header *entry)
+static int cf_check erst_exec_subtract_value(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	int rc;
 	u64 val;
@@ -174,8 +174,8 @@ static int erst_exec_subtract_value(struct apei_exec_context *ctx,
 	return rc;
 }
 
-static int erst_exec_stall(struct apei_exec_context *ctx,
-			   struct acpi_whea_header *entry)
+static int cf_check erst_exec_stall(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	udelay((ctx->var1 > FIRMWARE_MAX_STALL) ? 
 			FIRMWARE_MAX_STALL : 
@@ -183,8 +183,8 @@ static int erst_exec_stall(struct apei_exec_context *ctx,
 	return 0;
 }
 
-static int erst_exec_stall_while_true(struct apei_exec_context *ctx,
-				      struct acpi_whea_header *entry)
+static int cf_check erst_exec_stall_while_true(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	int rc;
 	u64 val;
@@ -205,9 +205,8 @@ static int erst_exec_stall_while_true(struct apei_exec_context *ctx,
 	return 0;
 }
 
-static int erst_exec_skip_next_instruction_if_true(
-	struct apei_exec_context *ctx,
-	struct acpi_whea_header *entry)
+static int cf_check erst_exec_skip_next_instruction_if_true(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	int rc;
 	u64 val;
@@ -223,27 +222,27 @@ static int erst_exec_skip_next_instruction_if_true(
 	return 0;
 }
 
-static int erst_exec_goto(struct apei_exec_context *ctx,
-			  struct acpi_whea_header *entry)
+static int cf_check erst_exec_goto(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	ctx->ip = ctx->value;
 	return APEI_EXEC_SET_IP;
 }
 
-static int erst_exec_set_src_address_base(struct apei_exec_context *ctx,
-					  struct acpi_whea_header *entry)
+static int cf_check erst_exec_set_src_address_base(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	return __apei_exec_read_register(entry, &ctx->src_base);
 }
 
-static int erst_exec_set_dst_address_base(struct apei_exec_context *ctx,
-					  struct acpi_whea_header *entry)
+static int cf_check erst_exec_set_dst_address_base(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	return __apei_exec_read_register(entry, &ctx->dst_base);
 }
 
-static int erst_exec_move_data(struct apei_exec_context *ctx,
-			       struct acpi_whea_header *entry)
+static int cf_check erst_exec_move_data(
+	struct apei_exec_context *ctx, struct acpi_whea_header *entry)
 {
 	int rc;
 	u64 offset;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232864.404053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxJ-0008Fp-Ao; Fri, 26 Nov 2021 13:07:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232864.404053; Fri, 26 Nov 2021 13:07:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxI-0008Dp-Oa; Fri, 26 Nov 2021 13:07:56 +0000
Received: by outflank-mailman (input) for mailman id 232864;
 Fri, 26 Nov 2021 13:07:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqauu-0003W9-Cn
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:28 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 846e797f-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 846e797f-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931924;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=ZfAMQ5gXNhkyy/7pM7nDOvtvjRuJe/w57bbDaSOyQrI=;
  b=Xrhqk4IdtcCx7hQ2kuQgiOcp5q9htQRUZeH2QtI2JQQqk2z1XSFWmStm
   k8c6bIy5H4PhQTh6PO+qyCJObS5VJorR1iT0A232ah6NViqc3aXUtIq37
   D0RVSnPwOeb6MkRrddbjvzCw2IfMvzaiS0VInXC/hLyzAU/fRZYkPitVw
   M=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: BQqAQ9/QWNhbiSN8W9Di7v7gSxwhnlTH8wsxI5qXFyyLu8cQ5dyHiscix5irSI4vDRRJAgEvU5
 Icymn2Za8wlxSt7KMxRJv0+a8Q9c7kzG1tc0/8NMye4rV42rgdre29CnnI9FU2LGsPWf+nj+AR
 P24nxgELA5P4xnYWV3Ysd9yS8UZwalnH09ft99bmXYHLmgM9QUj7Q62Boh05shRWCjgWFPNeFU
 b2jyJxSty2JMpAhQQfr48Y0kP+JPfsm/lPkhDKSS9krctkJbMsByK5ZTvsF5KSkJc2pAmEyPHy
 iN8ywxG8tfP/SaZGtjelHaxR
X-SBRS: 5.1
X-MesageID: 59064012
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:aZ/j5qtW/DuLyak5AcGCRRXefOfnVJtZMUV32f8akzHdYApBsoF/q
 tZmKW6OPfzYMGWkf4h+bY3gp0wG75SEzt41G1E5+Sg2RCoU+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Nplj769EyFzG6z1mcsTAxRgEBxOF/MB5+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 pJHNWI2NnwsZTVDMHpOVpQ8u974g0vDfzYHsg2qpok4tj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO9cY5VurkI/V2ge2CDgJdj18WPZ489BjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSEhRqjBNzAJrVkg
 JTis5PFhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlUJ2K2M
 RON5Vg5CHpv0J2CNvQfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9YNc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:L3TuBq0wT24uS1Hjva+F0QqjBIokLtp133Aq2lEZdPRUGvb3qy
 nIpoVj6faUskd2ZJhOo7C90cW7LU80sKQFhLX5Xo3SOzUO2lHYT72KhLGKq1aLdhEWtNQtsZ
 uIG5IOcOEYZmIasS+V2maF+q4bsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59064012"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 33/65] x86/apic: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:14 +0000
Message-ID: <20211126123446.32324-34-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/genapic/bigsmp.c   |  4 ++--
 xen/arch/x86/genapic/delivery.c | 12 ++++++------
 xen/arch/x86/genapic/x2apic.c   | 16 ++++++++++------
 xen/arch/x86/smp.c              |  6 +++---
 xen/include/asm-x86/genapic.h   | 18 +++++++++---------
 5 files changed, 30 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/genapic/bigsmp.c b/xen/arch/x86/genapic/bigsmp.c
index b9d976e8abf2..2000383ab0bf 100644
--- a/xen/arch/x86/genapic/bigsmp.c
+++ b/xen/arch/x86/genapic/bigsmp.c
@@ -10,7 +10,7 @@
 #include <xen/dmi.h>
 #include <asm/io_apic.h>
 
-static __init int force_bigsmp(const struct dmi_system_id *d)
+static int __init cf_check force_bigsmp(const struct dmi_system_id *d)
 {
 	printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident);
 	def_to_bigsmp = true;
@@ -27,7 +27,7 @@ static const struct dmi_system_id __initconstrel bigsmp_dmi_table[] = {
 };
 
 
-static __init int probe_bigsmp(void)
+static int __init cf_check probe_bigsmp(void)
 { 
 	/*
 	 * We don't implement cluster mode, so force use of
diff --git a/xen/arch/x86/genapic/delivery.c b/xen/arch/x86/genapic/delivery.c
index 548c33f282dd..d1f99bf6834a 100644
--- a/xen/arch/x86/genapic/delivery.c
+++ b/xen/arch/x86/genapic/delivery.c
@@ -9,7 +9,7 @@
  * LOGICAL FLAT DELIVERY MODE (multicast via bitmask to <= 8 logical APIC IDs).
  */
 
-void init_apic_ldr_flat(void)
+void cf_check init_apic_ldr_flat(void)
 {
 	unsigned long val;
 
@@ -19,12 +19,12 @@ void init_apic_ldr_flat(void)
 	apic_write(APIC_LDR, val);
 }
 
-const cpumask_t *vector_allocation_cpumask_flat(int cpu)
+const cpumask_t *cf_check vector_allocation_cpumask_flat(int cpu)
 {
 	return &cpu_online_map;
 } 
 
-unsigned int cpu_mask_to_apicid_flat(const cpumask_t *cpumask)
+unsigned int cf_check cpu_mask_to_apicid_flat(const cpumask_t *cpumask)
 {
 	return cpumask_bits(cpumask)[0]&0xFF;
 }
@@ -33,17 +33,17 @@ unsigned int cpu_mask_to_apicid_flat(const cpumask_t *cpumask)
  * PHYSICAL DELIVERY MODE (unicast to physical APIC IDs).
  */
 
-void init_apic_ldr_phys(void)
+void cf_check init_apic_ldr_phys(void)
 {
 	/* We only deliver in phys mode - no setup needed. */
 }
 
-const cpumask_t *vector_allocation_cpumask_phys(int cpu)
+const cpumask_t *cf_check vector_allocation_cpumask_phys(int cpu)
 {
 	return cpumask_of(cpu);
 }
 
-unsigned int cpu_mask_to_apicid_phys(const cpumask_t *cpumask)
+unsigned int cf_check cpu_mask_to_apicid_phys(const cpumask_t *cpumask)
 {
 	/* As we are using single CPU as destination, pick only one CPU here */
 	return cpu_physical_id(cpumask_any(cpumask));
diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c
index bd44bb753995..de5032f2020a 100644
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -38,7 +38,7 @@ static inline u32 x2apic_cluster(unsigned int cpu)
     return per_cpu(cpu_2_logical_apicid, cpu) >> 16;
 }
 
-static void init_apic_ldr_x2apic_cluster(void)
+static void cf_check init_apic_ldr_x2apic_cluster(void)
 {
     unsigned int cpu, this_cpu = smp_processor_id();
 
@@ -74,12 +74,14 @@ static void init_apic_ldr_x2apic_cluster(void)
     cpumask_set_cpu(this_cpu, per_cpu(cluster_cpus, this_cpu));
 }
 
-static const cpumask_t *vector_allocation_cpumask_x2apic_cluster(int cpu)
+static const cpumask_t *cf_check vector_allocation_cpumask_x2apic_cluster(
+    int cpu)
 {
     return per_cpu(cluster_cpus, cpu);
 }
 
-static unsigned int cpu_mask_to_apicid_x2apic_cluster(const cpumask_t *cpumask)
+static unsigned int cf_check cpu_mask_to_apicid_x2apic_cluster(
+    const cpumask_t *cpumask)
 {
     unsigned int cpu = cpumask_any(cpumask);
     unsigned int dest = per_cpu(cpu_2_logical_apicid, cpu);
@@ -92,12 +94,13 @@ static unsigned int cpu_mask_to_apicid_x2apic_cluster(const cpumask_t *cpumask)
     return dest;
 }
 
-static void send_IPI_self_x2apic(uint8_t vector)
+static void cf_check send_IPI_self_x2apic(uint8_t vector)
 {
     apic_wrmsr(APIC_SELF_IPI, vector);
 }
 
-static void send_IPI_mask_x2apic_phys(const cpumask_t *cpumask, int vector)
+static void cf_check send_IPI_mask_x2apic_phys(
+    const cpumask_t *cpumask, int vector)
 {
     unsigned int cpu;
     unsigned long flags;
@@ -130,7 +133,8 @@ static void send_IPI_mask_x2apic_phys(const cpumask_t *cpumask, int vector)
     local_irq_restore(flags);
 }
 
-static void send_IPI_mask_x2apic_cluster(const cpumask_t *cpumask, int vector)
+static void cf_check send_IPI_mask_x2apic_cluster(
+    const cpumask_t *cpumask, int vector)
 {
     unsigned int cpu = smp_processor_id();
     cpumask_t *ipimask = per_cpu(scratch_mask, cpu);
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 33748e629a21..0a02086966c0 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -161,13 +161,13 @@ void send_IPI_self(int vector)
  * The following functions deal with sending IPIs between CPUs.
  */
 
-void send_IPI_self_legacy(uint8_t vector)
+void cf_check send_IPI_self_legacy(uint8_t vector)
 {
     /* NMI continuation handling relies on using a shorthand here. */
     send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL);
 }
 
-void send_IPI_mask_flat(const cpumask_t *cpumask, int vector)
+void cf_check send_IPI_mask_flat(const cpumask_t *cpumask, int vector)
 {
     unsigned long mask = cpumask_bits(cpumask)[0];
     unsigned long cfg;
@@ -204,7 +204,7 @@ void send_IPI_mask_flat(const cpumask_t *cpumask, int vector)
     local_irq_restore(flags);
 }
 
-void send_IPI_mask_phys(const cpumask_t *mask, int vector)
+void cf_check send_IPI_mask_phys(const cpumask_t *mask, int vector)
 {
     unsigned long cfg, flags;
     unsigned int query_cpu;
diff --git a/xen/include/asm-x86/genapic.h b/xen/include/asm-x86/genapic.h
index 51a65d3e0f0c..beeaddf19daa 100644
--- a/xen/include/asm-x86/genapic.h
+++ b/xen/include/asm-x86/genapic.h
@@ -39,12 +39,12 @@ extern struct genapic genapic;
 extern const struct genapic apic_default;
 extern const struct genapic apic_bigsmp;
 
-void send_IPI_self_legacy(uint8_t vector);
+void cf_check send_IPI_self_legacy(uint8_t vector);
 
-void init_apic_ldr_flat(void);
-unsigned int cpu_mask_to_apicid_flat(const cpumask_t *cpumask);
-void send_IPI_mask_flat(const cpumask_t *mask, int vector);
-const cpumask_t *vector_allocation_cpumask_flat(int cpu);
+void cf_check init_apic_ldr_flat(void);
+unsigned int cf_check cpu_mask_to_apicid_flat(const cpumask_t *cpumask);
+void cf_check send_IPI_mask_flat(const cpumask_t *mask, int vector);
+const cpumask_t *cf_check vector_allocation_cpumask_flat(int cpu);
 #define GENAPIC_FLAT \
 	.int_delivery_mode = dest_LowestPrio, \
 	.int_dest_mode = 1 /* logical delivery */, \
@@ -54,10 +54,10 @@ const cpumask_t *vector_allocation_cpumask_flat(int cpu);
 	.send_IPI_mask = send_IPI_mask_flat, \
 	.send_IPI_self = send_IPI_self_legacy
 
-void init_apic_ldr_phys(void);
-unsigned int cpu_mask_to_apicid_phys(const cpumask_t *cpumask);
-void send_IPI_mask_phys(const cpumask_t *mask, int vector);
-const cpumask_t *vector_allocation_cpumask_phys(int cpu);
+void cf_check init_apic_ldr_phys(void);
+unsigned int cf_check cpu_mask_to_apicid_phys(const cpumask_t *cpumask);
+void cf_check send_IPI_mask_phys(const cpumask_t *mask, int vector);
+const cpumask_t *cf_check vector_allocation_cpumask_phys(int cpu);
 #define GENAPIC_PHYS \
 	.int_delivery_mode = dest_Fixed, \
 	.int_dest_mode = 0 /* physical delivery */, \
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232874.404081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxP-0001HW-6n; Fri, 26 Nov 2021 13:08:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232874.404081; Fri, 26 Nov 2021 13:08:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxO-0001Fm-R8; Fri, 26 Nov 2021 13:08:02 +0000
Received: by outflank-mailman (input) for mailman id 232874;
 Fri, 26 Nov 2021 13:08:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavi-0003W9-LH
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:18 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1ccbe9a-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:14 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1ccbe9a-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931974;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=QWYA8RzofckUZhmsWLLEN5SvofjWDHZvKGXYl+18TtA=;
  b=a38c0gbxJmGI3Nh31PuRPPhWz9hSfTKB1nbH+OGfY9AYQEX8fpi9p1Bk
   BJ6wG7QfR6X6X3fP7Do3Pbd77VJqu/t/JRNjwit9jlv5FB+RnyWRqXFIZ
   yFOQInYOJXAg6i4pORMELapPMrH1J72cerTDSO99/irrBcpS5+1rHc2hl
   w=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: xuATDL/Ujsk3IBsj/4PLeC2nsPQPNvWNgs+MYXwsZ8jtg4oXz3BtZSpvHXDNNzrhRA0VtbE8As
 y96KuZctYjPvNCyKGuwvsO3BYTAxdGWa0pu5BQICTtUVxF4E7HBsgXUz8edVLlvFuaaPp1gUwk
 gR5DT7vNLKcnv+k6fedCAhpIWkQ7bH/kiy5GIQjoDPQPJN911x5U84iF1G8fgBMSNiJEDuyMF4
 UBDLXZjenKPG4hhyeiCcZSzbjkjJuHasq4OvNT9mZDvnnhf7N/oTfnKvQ25NYDRCZBfDuIEzFG
 r1faQWocCCMFtkE7JWYOOHMl
X-SBRS: 5.1
X-MesageID: 58193867
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:OU1D/q+v1/YHgJfioHQ7DrUDTXmTJUtcMsCJ2f8bNWPcYEJGY0x3m
 GAWD2DVPf/ZZmGjLohzOtm2pENU6JeDy4BjHgs/rCg8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj3NYy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhNk
 4V8kbaIWz5qGfPUguEGYj8BDCNxaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp0eRKeFN
 5RGAdZpRA/iZBcUA0YPMaA7jsiUrVf8a2Rh9GvA8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru3U70HxUbP9y30iee/zSngeqntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLpix
 1c8o3R06/JorQryE4e7D0bQTGO4UgA0Z4EAIskQ0BO0iY2K+xycHVkiFyFDZ4lz3CMpfgAC2
 liMltLvIDVgtryJVH6QnoupQSOO1Ts9djFbO3JdJecRy5y6+dxo0EqTJjp2OPft1oWdJN3m/
 9ydQMHSbZ03hNVD6ai09Euvb9mE9smQFV5dCuk6swuYAuJFiGyNO9PABbvzt68owGOlor+p5
 yNsdy+2tr1mMH11vHbRKNjh5Znwjxp/DBXSgER0A74q/Cm39niocOh4uW8lexc3b5lVJWG1O
 yc/XD+9ArcIZxNGioctPuqM5zkCl/C8RbwJqNiIBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WiOHSKqtBKcghRRZX5bLivw/Fqmie4ClIOMAkc5zX5m9vNoqRpwPZYkPnm5
 Ha4VhMKwVbznySfew6LdmpiePXkWpMm9SA3OiklPFCJ3Xk/YNnwsPdDJsVvJbR3pvZ+yfNUT
 uUef5nSCPp4VTmaqS8WaoPwrdI+eU3z1x6OJSesfBM2Y4VkG17S4tbhcwa2rHsOAyO7uNEQu
 bql0g+HE5MPSx47VJTdae61zkP3tn8YwbogU0zNK9hVWUPt7Ik1dHCh0q5pe5kBcEyRyCGb2
 gCaBQYjidPM+4JlosPUga2krpuyF7csFERtAGSGv629MjPX/zT/zNYYAvqIZz3USEj95L6mO
 bdO1/j5PfAKwARKvo57H+o5xK4y/YKy9bpTzwAiF3TXdVW7TLhnJyDej8VIs6RMwJ5fuBe3B
 R3TqoULZ+3RNZO3CkMVKSokcv+HhKMdlTTl5PgoJFn3uX1s972dXEQOZxSBhUSx9leu3F/JF
 Qv5hPMr1g==
IronPort-HdrOrdr: A9a23:Erf1tauPYuyCuFd/nusetGzj7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpGbJYVcqKRcdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyJMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58193867"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 28/65] x86/hvm: Annotate fnptr targets from hvm_funcs
Date: Fri, 26 Nov 2021 12:34:09 +0000
Message-ID: <20211126123446.32324-29-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

In svm.c, make a few rearrangements.  svm_update_guest_cr() has no external
callers so can become static, but needs moving along with svm_fpu_enter() to
avoid a forward declaration.  Also move svm_update_guest_efer() to drop its
forward declaration.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/hvm/svm/nestedsvm.c        |  27 ++-
 xen/arch/x86/hvm/svm/svm.c              | 344 ++++++++++++++++----------------
 xen/arch/x86/hvm/vmx/intr.c             |   2 +-
 xen/arch/x86/hvm/vmx/vmcs.c             |   8 +-
 xen/arch/x86/hvm/vmx/vmx.c              | 145 +++++++-------
 xen/arch/x86/hvm/vmx/vvmx.c             |  21 +-
 xen/include/asm-x86/hvm/svm/nestedsvm.h |  22 +-
 xen/include/asm-x86/hvm/svm/svm.h       |   1 -
 xen/include/asm-x86/hvm/vmx/vmcs.h      |   8 +-
 xen/include/asm-x86/hvm/vmx/vmx.h       |   2 +-
 xen/include/asm-x86/hvm/vmx/vvmx.h      |  23 +--
 11 files changed, 306 insertions(+), 297 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 6d9063004077..10a3e72a96fb 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -80,7 +80,7 @@ int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr)
 }
 
 /* Interface methods */
-int nsvm_vcpu_initialise(struct vcpu *v)
+int cf_check nsvm_vcpu_initialise(struct vcpu *v)
 {
     void *msrpm;
     struct nestedvcpu *nv = &vcpu_nestedhvm(v);
@@ -110,7 +110,7 @@ int nsvm_vcpu_initialise(struct vcpu *v)
     return -ENOMEM;
 }
 
-void nsvm_vcpu_destroy(struct vcpu *v)
+void cf_check nsvm_vcpu_destroy(struct vcpu *v)
 {
     struct nestedvcpu *nv = &vcpu_nestedhvm(v);
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
@@ -150,7 +150,7 @@ void nsvm_vcpu_destroy(struct vcpu *v)
     svm->ns_iomap = NULL;
 }
 
-int nsvm_vcpu_reset(struct vcpu *v)
+int cf_check nsvm_vcpu_reset(struct vcpu *v)
 {
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
 
@@ -855,8 +855,8 @@ nsvm_vcpu_vmexit_inject(struct vcpu *v, struct cpu_user_regs *regs,
     return 0;
 }
 
-int
-nsvm_vcpu_vmexit_event(struct vcpu *v, const struct x86_event *trap)
+int cf_check nsvm_vcpu_vmexit_event(
+    struct vcpu *v, const struct x86_event *trap)
 {
     ASSERT(vcpu_nestedhvm(v).nv_vvmcx != NULL);
 
@@ -865,7 +865,7 @@ nsvm_vcpu_vmexit_event(struct vcpu *v, const struct x86_event *trap)
     return NESTEDHVM_VMEXIT_DONE;
 }
 
-uint64_t nsvm_vcpu_hostcr3(struct vcpu *v)
+uint64_t cf_check nsvm_vcpu_hostcr3(struct vcpu *v)
 {
     return vcpu_nestedsvm(v).ns_vmcb_hostcr3;
 }
@@ -1030,8 +1030,7 @@ nsvm_vmcb_guest_intercepts_exitcode(struct vcpu *v,
     return 1;
 }
 
-bool_t
-nsvm_vmcb_guest_intercepts_event(
+bool cf_check nsvm_vmcb_guest_intercepts_event(
     struct vcpu *v, unsigned int vector, int errcode)
 {
     return nsvm_vmcb_guest_intercepts_exitcode(v,
@@ -1206,8 +1205,7 @@ nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_user_regs *regs)
     return 0;
 }
 
-bool_t
-nsvm_vmcb_hap_enabled(struct vcpu *v)
+bool cf_check nsvm_vmcb_hap_enabled(struct vcpu *v)
 {
     return vcpu_nestedsvm(v).ns_hap_enabled;
 }
@@ -1216,10 +1214,9 @@ nsvm_vmcb_hap_enabled(struct vcpu *v)
  * walk is successful, the translated value is returned in
  * L1_gpa. The result value tells what to do next.
  */
-int
-nsvm_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                     unsigned int *page_order, uint8_t *p2m_acc,
-                     bool_t access_r, bool_t access_w, bool_t access_x)
+int cf_check nsvm_hap_walk_L1_p2m(
+    struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
+    uint8_t *p2m_acc, bool access_r, bool access_w, bool access_x)
 {
     uint32_t pfec;
     unsigned long nested_cr3, gfn;
@@ -1242,7 +1239,7 @@ nsvm_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
     return NESTEDHVM_PAGEFAULT_DONE;
 }
 
-enum hvm_intblk nsvm_intr_blocked(struct vcpu *v)
+enum hvm_intblk cf_check nsvm_intr_blocked(struct vcpu *v)
 {
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
     struct nestedvcpu *nv = &vcpu_nestedhvm(v);
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index f0e10dec046e..9c62c0cd80ee 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -67,8 +67,6 @@ void noreturn svm_asm_do_resume(void);
 
 u32 svm_feature_flags;
 
-static void svm_update_guest_efer(struct vcpu *);
-
 static struct hvm_function_table svm_function_table;
 
 /*
@@ -122,11 +120,144 @@ void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len)
         hvm_inject_hw_exception(TRAP_debug, X86_EVENT_NO_EC);
 }
 
-static void svm_cpu_down(void)
+static void cf_check svm_cpu_down(void)
 {
     write_efer(read_efer() & ~EFER_SVME);
 }
 
+static void svm_fpu_enter(struct vcpu *v)
+{
+    struct vmcb_struct *n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
+
+    vcpu_restore_fpu_lazy(v);
+    vmcb_set_exception_intercepts(
+        n1vmcb,
+        vmcb_get_exception_intercepts(n1vmcb) & ~(1U << TRAP_no_device));
+}
+
+static void cf_check svm_update_guest_cr(
+    struct vcpu *v, unsigned int cr, unsigned int flags)
+{
+    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
+    uint64_t value;
+
+    switch ( cr )
+    {
+    case 0:
+    {
+        unsigned long hw_cr0_mask = 0;
+
+        if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
+        {
+            if ( v != current )
+            {
+                if ( !v->arch.fully_eager_fpu )
+                    hw_cr0_mask |= X86_CR0_TS;
+            }
+            else if ( vmcb_get_cr0(vmcb) & X86_CR0_TS )
+                svm_fpu_enter(v);
+        }
+
+        if ( paging_mode_hap(v->domain) )
+        {
+            uint32_t intercepts = vmcb_get_cr_intercepts(vmcb);
+
+            /* Trap CR3 updates if CR3 memory events are enabled. */
+            if ( v->domain->arch.monitor.write_ctrlreg_enabled &
+                 monitor_ctrlreg_bitmask(VM_EVENT_X86_CR3) )
+               vmcb_set_cr_intercepts(vmcb, intercepts | CR_INTERCEPT_CR3_WRITE);
+        }
+
+        value = v->arch.hvm.guest_cr[0] | hw_cr0_mask;
+        if ( !paging_mode_hap(v->domain) )
+            value |= X86_CR0_PG | X86_CR0_WP;
+        vmcb_set_cr0(vmcb, value);
+        break;
+    }
+    case 2:
+        vmcb_set_cr2(vmcb, v->arch.hvm.guest_cr[2]);
+        break;
+    case 3:
+        vmcb_set_cr3(vmcb, v->arch.hvm.hw_cr[3]);
+        if ( !nestedhvm_enabled(v->domain) )
+        {
+            if ( !(flags & HVM_UPDATE_GUEST_CR3_NOFLUSH) )
+                hvm_asid_flush_vcpu(v);
+        }
+        else if ( nestedhvm_vmswitch_in_progress(v) )
+            ; /* CR3 switches during VMRUN/VMEXIT do not flush the TLB. */
+        else if ( !(flags & HVM_UPDATE_GUEST_CR3_NOFLUSH) )
+            hvm_asid_flush_vcpu_asid(
+                nestedhvm_vcpu_in_guestmode(v)
+                ? &vcpu_nestedhvm(v).nv_n2asid : &v->arch.hvm.n1asid);
+        break;
+    case 4:
+        value = HVM_CR4_HOST_MASK;
+        if ( paging_mode_hap(v->domain) )
+            value &= ~X86_CR4_PAE;
+        value |= v->arch.hvm.guest_cr[4];
+
+        if ( !hvm_paging_enabled(v) )
+        {
+            /*
+             * When the guest thinks paging is disabled, Xen may need to hide
+             * the effects of shadow paging, as hardware runs with the host
+             * paging settings, rather than the guests settings.
+             *
+             * Without CR0.PG, all memory accesses are user mode, so
+             * _PAGE_USER must be set in the shadow pagetables for guest
+             * userspace to function.  This in turn trips up guest supervisor
+             * mode if SMEP/SMAP are left active in context.  They wouldn't
+             * have any effect if paging was actually disabled, so hide them
+             * behind the back of the guest.
+             */
+            value &= ~(X86_CR4_SMEP | X86_CR4_SMAP);
+        }
+
+        vmcb_set_cr4(vmcb, value);
+        break;
+    default:
+        BUG();
+    }
+}
+
+static void cf_check svm_update_guest_efer(struct vcpu *v)
+{
+    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
+    unsigned long guest_efer = v->arch.hvm.guest_efer,
+        xen_efer = read_efer();
+
+    if ( paging_mode_shadow(v->domain) )
+    {
+        /* EFER.NX is a Xen-owned bit and is not under guest control. */
+        guest_efer &= ~EFER_NXE;
+        guest_efer |= xen_efer & EFER_NXE;
+
+        /*
+         * CR0.PG is a Xen-owned bit, and remains set even when the guest has
+         * logically disabled paging.
+         *
+         * LMA was calculated using the guest CR0.PG setting, but LME needs
+         * clearing to avoid interacting with Xen's CR0.PG setting.  As writes
+         * to CR0 are intercepted, it is safe to leave LME clear at this
+         * point, and fix up both LME and LMA when CR0.PG is set.
+         */
+        if ( !(guest_efer & EFER_LMA) )
+            guest_efer &= ~EFER_LME;
+    }
+
+    /* SVME must remain set in non-root mode. */
+    guest_efer |= EFER_SVME;
+
+    vmcb_set_efer(vmcb, guest_efer);
+
+    ASSERT(nestedhvm_enabled(v->domain) ||
+           !(v->arch.hvm.guest_efer & EFER_SVME));
+
+    if ( nestedhvm_enabled(v->domain) )
+        svm_nested_features_on_efer_update(v);
+}
+
 unsigned long *
 svm_msrbit(unsigned long *msr_bitmap, uint32_t msr)
 {
@@ -165,7 +296,7 @@ void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags)
         __clear_bit(msr * 2 + 1, msr_bit);
 }
 
-static void svm_enable_msr_interception(struct domain *d, uint32_t msr)
+static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
 
@@ -377,13 +508,13 @@ static void svm_load_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
     svm_update_guest_efer(v);
 }
 
-static void svm_save_vmcb_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
+static void cf_check svm_save_vmcb_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
 {
     svm_save_cpu_state(v, ctxt);
     svm_vmcb_save(v, ctxt);
 }
 
-static int svm_load_vmcb_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
+static int cf_check svm_load_vmcb_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
 {
     svm_load_cpu_state(v, ctxt);
     if ( svm_vmcb_restore(v, ctxt) )
@@ -396,17 +527,7 @@ static int svm_load_vmcb_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
     return 0;
 }
 
-static void svm_fpu_enter(struct vcpu *v)
-{
-    struct vmcb_struct *n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
-
-    vcpu_restore_fpu_lazy(v);
-    vmcb_set_exception_intercepts(
-        n1vmcb,
-        vmcb_get_exception_intercepts(n1vmcb) & ~(1U << TRAP_no_device));
-}
-
-static void svm_fpu_leave(struct vcpu *v)
+static void cf_check svm_fpu_leave(struct vcpu *v)
 {
     struct vmcb_struct *n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
 
@@ -428,7 +549,7 @@ static void svm_fpu_leave(struct vcpu *v)
     }
 }
 
-static unsigned int svm_get_interrupt_shadow(struct vcpu *v)
+static unsigned cf_check int svm_get_interrupt_shadow(struct vcpu *v)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     unsigned int intr_shadow = 0;
@@ -442,7 +563,8 @@ static unsigned int svm_get_interrupt_shadow(struct vcpu *v)
     return intr_shadow;
 }
 
-static void svm_set_interrupt_shadow(struct vcpu *v, unsigned int intr_shadow)
+static void cf_check svm_set_interrupt_shadow(
+    struct vcpu *v, unsigned int intr_shadow)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
@@ -456,7 +578,7 @@ static void svm_set_interrupt_shadow(struct vcpu *v, unsigned int intr_shadow)
     vmcb_set_general1_intercepts(vmcb, general1_intercepts);
 }
 
-static int svm_guest_x86_mode(struct vcpu *v)
+static int cf_check svm_guest_x86_mode(struct vcpu *v)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
@@ -469,129 +591,7 @@ static int svm_guest_x86_mode(struct vcpu *v)
     return likely(vmcb->cs.db) ? 4 : 2;
 }
 
-void svm_update_guest_cr(struct vcpu *v, unsigned int cr, unsigned int flags)
-{
-    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
-    uint64_t value;
-
-    switch ( cr )
-    {
-    case 0:
-    {
-        unsigned long hw_cr0_mask = 0;
-
-        if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-        {
-            if ( v != current )
-            {
-                if ( !v->arch.fully_eager_fpu )
-                    hw_cr0_mask |= X86_CR0_TS;
-            }
-            else if ( vmcb_get_cr0(vmcb) & X86_CR0_TS )
-                svm_fpu_enter(v);
-        }
-
-        if ( paging_mode_hap(v->domain) )
-        {
-            uint32_t intercepts = vmcb_get_cr_intercepts(vmcb);
-
-            /* Trap CR3 updates if CR3 memory events are enabled. */
-            if ( v->domain->arch.monitor.write_ctrlreg_enabled &
-                 monitor_ctrlreg_bitmask(VM_EVENT_X86_CR3) )
-               vmcb_set_cr_intercepts(vmcb, intercepts | CR_INTERCEPT_CR3_WRITE);
-        }
-
-        value = v->arch.hvm.guest_cr[0] | hw_cr0_mask;
-        if ( !paging_mode_hap(v->domain) )
-            value |= X86_CR0_PG | X86_CR0_WP;
-        vmcb_set_cr0(vmcb, value);
-        break;
-    }
-    case 2:
-        vmcb_set_cr2(vmcb, v->arch.hvm.guest_cr[2]);
-        break;
-    case 3:
-        vmcb_set_cr3(vmcb, v->arch.hvm.hw_cr[3]);
-        if ( !nestedhvm_enabled(v->domain) )
-        {
-            if ( !(flags & HVM_UPDATE_GUEST_CR3_NOFLUSH) )
-                hvm_asid_flush_vcpu(v);
-        }
-        else if ( nestedhvm_vmswitch_in_progress(v) )
-            ; /* CR3 switches during VMRUN/VMEXIT do not flush the TLB. */
-        else if ( !(flags & HVM_UPDATE_GUEST_CR3_NOFLUSH) )
-            hvm_asid_flush_vcpu_asid(
-                nestedhvm_vcpu_in_guestmode(v)
-                ? &vcpu_nestedhvm(v).nv_n2asid : &v->arch.hvm.n1asid);
-        break;
-    case 4:
-        value = HVM_CR4_HOST_MASK;
-        if ( paging_mode_hap(v->domain) )
-            value &= ~X86_CR4_PAE;
-        value |= v->arch.hvm.guest_cr[4];
-
-        if ( !hvm_paging_enabled(v) )
-        {
-            /*
-             * When the guest thinks paging is disabled, Xen may need to hide
-             * the effects of shadow paging, as hardware runs with the host
-             * paging settings, rather than the guests settings.
-             *
-             * Without CR0.PG, all memory accesses are user mode, so
-             * _PAGE_USER must be set in the shadow pagetables for guest
-             * userspace to function.  This in turn trips up guest supervisor
-             * mode if SMEP/SMAP are left active in context.  They wouldn't
-             * have any effect if paging was actually disabled, so hide them
-             * behind the back of the guest.
-             */
-            value &= ~(X86_CR4_SMEP | X86_CR4_SMAP);
-        }
-
-        vmcb_set_cr4(vmcb, value);
-        break;
-    default:
-        BUG();
-    }
-}
-
-static void svm_update_guest_efer(struct vcpu *v)
-{
-    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
-    unsigned long guest_efer = v->arch.hvm.guest_efer,
-        xen_efer = read_efer();
-
-    if ( paging_mode_shadow(v->domain) )
-    {
-        /* EFER.NX is a Xen-owned bit and is not under guest control. */
-        guest_efer &= ~EFER_NXE;
-        guest_efer |= xen_efer & EFER_NXE;
-
-        /*
-         * CR0.PG is a Xen-owned bit, and remains set even when the guest has
-         * logically disabled paging.
-         *
-         * LMA was calculated using the guest CR0.PG setting, but LME needs
-         * clearing to avoid interacting with Xen's CR0.PG setting.  As writes
-         * to CR0 are intercepted, it is safe to leave LME clear at this
-         * point, and fix up both LME and LMA when CR0.PG is set.
-         */
-        if ( !(guest_efer & EFER_LMA) )
-            guest_efer &= ~EFER_LME;
-    }
-
-    /* SVME must remain set in non-root mode. */
-    guest_efer |= EFER_SVME;
-
-    vmcb_set_efer(vmcb, guest_efer);
-
-    ASSERT(nestedhvm_enabled(v->domain) ||
-           !(v->arch.hvm.guest_efer & EFER_SVME));
-
-    if ( nestedhvm_enabled(v->domain) )
-        svm_nested_features_on_efer_update(v);
-}
-
-static void svm_cpuid_policy_changed(struct vcpu *v)
+static void cf_check svm_cpuid_policy_changed(struct vcpu *v)
 {
     struct svm_vcpu *svm = &v->arch.hvm.svm;
     struct vmcb_struct *vmcb = svm->vmcb;
@@ -632,13 +632,13 @@ void svm_sync_vmcb(struct vcpu *v, enum vmcb_sync_state new_state)
     }
 }
 
-static unsigned int svm_get_cpl(struct vcpu *v)
+static unsigned int cf_check svm_get_cpl(struct vcpu *v)
 {
     return vmcb_get_cpl(v->arch.hvm.svm.vmcb);
 }
 
-static void svm_get_segment_register(struct vcpu *v, enum x86_segment seg,
-                                     struct segment_register *reg)
+static void cf_check svm_get_segment_register(
+    struct vcpu *v, enum x86_segment seg, struct segment_register *reg)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
@@ -682,8 +682,8 @@ static void svm_get_segment_register(struct vcpu *v, enum x86_segment seg,
     }
 }
 
-static void svm_set_segment_register(struct vcpu *v, enum x86_segment seg,
-                                     struct segment_register *reg)
+static void cf_check svm_set_segment_register(
+    struct vcpu *v, enum x86_segment seg, struct segment_register *reg)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
@@ -752,12 +752,12 @@ static void svm_set_segment_register(struct vcpu *v, enum x86_segment seg,
     }
 }
 
-static unsigned long svm_get_shadow_gs_base(struct vcpu *v)
+static unsigned long cf_check svm_get_shadow_gs_base(struct vcpu *v)
 {
     return v->arch.hvm.svm.vmcb->kerngsbase;
 }
 
-static int svm_set_guest_pat(struct vcpu *v, u64 gpat)
+static int cf_check svm_set_guest_pat(struct vcpu *v, u64 gpat)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
@@ -768,7 +768,7 @@ static int svm_set_guest_pat(struct vcpu *v, u64 gpat)
     return 1;
 }
 
-static int svm_get_guest_pat(struct vcpu *v, u64 *gpat)
+static int cf_check svm_get_guest_pat(struct vcpu *v, u64 *gpat)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
@@ -816,7 +816,7 @@ static uint64_t svm_get_tsc_offset(uint64_t host_tsc, uint64_t guest_tsc,
     return guest_tsc - scale_tsc(host_tsc, ratio);
 }
 
-static void svm_set_tsc_offset(struct vcpu *v, u64 offset, u64 at_tsc)
+static void cf_check svm_set_tsc_offset(struct vcpu *v, u64 offset, u64 at_tsc)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     struct vmcb_struct *n1vmcb, *n2vmcb;
@@ -852,7 +852,7 @@ static void svm_set_tsc_offset(struct vcpu *v, u64 offset, u64 at_tsc)
     vmcb_set_tsc_offset(vmcb, offset + n2_tsc_offset);
 }
 
-static void svm_set_rdtsc_exiting(struct vcpu *v, bool_t enable)
+static void cf_check svm_set_rdtsc_exiting(struct vcpu *v, bool enable)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
@@ -871,7 +871,8 @@ static void svm_set_rdtsc_exiting(struct vcpu *v, bool_t enable)
     vmcb_set_general2_intercepts(vmcb, general2_intercepts);
 }
 
-static void svm_set_descriptor_access_exiting(struct vcpu *v, bool enable)
+static void cf_check svm_set_descriptor_access_exiting(
+    struct vcpu *v, bool enable)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
@@ -888,7 +889,7 @@ static void svm_set_descriptor_access_exiting(struct vcpu *v, bool enable)
     vmcb_set_general1_intercepts(vmcb, general1_intercepts);
 }
 
-static unsigned int svm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
+static unsigned int cf_check svm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     unsigned int len = v->arch.hvm.svm.cached_insn_len;
@@ -903,7 +904,7 @@ static unsigned int svm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
     return len;
 }
 
-static void svm_init_hypercall_page(void *p)
+static void cf_check svm_init_hypercall_page(void *p)
 {
     unsigned int i;
 
@@ -1144,7 +1145,7 @@ static int acpi_c1e_quirk(int dir, unsigned int port, unsigned int bytes,
     return X86EMUL_OKAY;
 }
 
-static int svm_domain_initialise(struct domain *d)
+static int cf_check svm_domain_initialise(struct domain *d)
 {
     static const struct arch_csw csw = {
         .from = svm_ctxt_switch_from,
@@ -1162,7 +1163,7 @@ static int svm_domain_initialise(struct domain *d)
     return 0;
 }
 
-static int svm_vcpu_initialise(struct vcpu *v)
+static int cf_check svm_vcpu_initialise(struct vcpu *v)
 {
     int rc;
 
@@ -1179,7 +1180,7 @@ static int svm_vcpu_initialise(struct vcpu *v)
     return 0;
 }
 
-static void svm_vcpu_destroy(struct vcpu *v)
+static void cf_check svm_vcpu_destroy(struct vcpu *v)
 {
     svm_destroy_vmcb(v);
     passive_domain_destroy(v);
@@ -1300,7 +1301,7 @@ static void svm_emul_swint_injection(struct x86_event *event)
     event->error_code = ec;
 }
 
-static void svm_inject_event(const struct x86_event *event)
+static void cf_check svm_inject_event(const struct x86_event *event)
 {
     struct vcpu *curr = current;
     struct vmcb_struct *vmcb = curr->arch.hvm.svm.vmcb;
@@ -1430,12 +1431,12 @@ static void svm_inject_event(const struct x86_event *event)
         HVMTRACE_2D(INJ_EXC, _event.vector, _event.error_code);
 }
 
-static bool svm_event_pending(const struct vcpu *v)
+static bool cf_check svm_event_pending(const struct vcpu *v)
 {
     return v->arch.hvm.svm.vmcb->event_inj.v;
 }
 
-static void svm_cpu_dead(unsigned int cpu)
+static void cf_check svm_cpu_dead(unsigned int cpu)
 {
     paddr_t *this_hsa = &per_cpu(hsa, cpu);
     paddr_t *this_vmcb = &per_cpu(host_vmcb, cpu);
@@ -1461,7 +1462,7 @@ static void svm_cpu_dead(unsigned int cpu)
     }
 }
 
-static int svm_cpu_up_prepare(unsigned int cpu)
+static int cf_check svm_cpu_up_prepare(unsigned int cpu)
 {
     paddr_t *this_hsa = &per_cpu(hsa, cpu);
     paddr_t *this_vmcb = &per_cpu(host_vmcb, cpu);
@@ -1616,7 +1617,7 @@ static int _svm_cpu_up(bool bsp)
     return 0;
 }
 
-static int svm_cpu_up(void)
+static int cf_check svm_cpu_up(void)
 {
     return _svm_cpu_up(false);
 }
@@ -1745,7 +1746,7 @@ static void svm_do_nested_pgfault(struct vcpu *v,
     domain_crash(v->domain);
 }
 
-static void svm_fpu_dirty_intercept(void)
+static void cf_check svm_fpu_dirty_intercept(void)
 {
     struct vcpu *v = current;
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
@@ -1791,7 +1792,8 @@ static void svm_dr_access(struct vcpu *v, struct cpu_user_regs *regs)
     __restore_debug_registers(vmcb, v);
 }
 
-static int svm_msr_read_intercept(unsigned int msr, uint64_t *msr_content)
+static int cf_check svm_msr_read_intercept(
+    unsigned int msr, uint64_t *msr_content)
 {
     struct vcpu *v = current;
     const struct domain *d = v->domain;
@@ -1986,7 +1988,8 @@ static int svm_msr_read_intercept(unsigned int msr, uint64_t *msr_content)
     return X86EMUL_EXCEPTION;
 }
 
-static int svm_msr_write_intercept(unsigned int msr, uint64_t msr_content)
+static int cf_check svm_msr_write_intercept(
+    unsigned int msr, uint64_t msr_content)
 {
     struct vcpu *v = current;
     struct domain *d = v->domain;
@@ -2405,7 +2408,7 @@ static void svm_vmexit_mce_intercept(
     }
 }
 
-static void svm_wbinvd_intercept(void)
+static void cf_check svm_wbinvd_intercept(void)
 {
     if ( cache_flush_permitted(current->domain) )
         flush_all(FLUSH_CACHE);
@@ -2450,12 +2453,13 @@ static bool is_invlpg(const struct x86_emulate_state *state,
            (ext & 7) == 7;
 }
 
-static void svm_invlpg(struct vcpu *v, unsigned long linear)
+static void cf_check svm_invlpg(struct vcpu *v, unsigned long linear)
 {
     svm_asid_g_invlpg(v, linear);
 }
 
-static bool svm_get_pending_event(struct vcpu *v, struct x86_event *info)
+static bool cf_check svm_get_pending_event(
+    struct vcpu *v, struct x86_event *info)
 {
     const struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
diff --git a/xen/arch/x86/hvm/vmx/intr.c b/xen/arch/x86/hvm/vmx/intr.c
index 80bfbb478782..13bbe8430df5 100644
--- a/xen/arch/x86/hvm/vmx/intr.c
+++ b/xen/arch/x86/hvm/vmx/intr.c
@@ -147,7 +147,7 @@ static void vmx_enable_intr_window(struct vcpu *v, struct hvm_intack intack)
  *         used but may have negative impact on interrupt performance.
  */
 
-enum hvm_intblk nvmx_intr_blocked(struct vcpu *v)
+enum hvm_intblk cf_check nvmx_intr_blocked(struct vcpu *v)
 {
     int r = hvm_intblk_none;
     struct nestedvcpu *nvcpu = &vcpu_nestedhvm(v);
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 1bb3710f7baa..441be8127148 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -655,7 +655,7 @@ void vmx_vmcs_reload(struct vcpu *v)
     vmx_load_vmcs(v);
 }
 
-int vmx_cpu_up_prepare(unsigned int cpu)
+int cf_check vmx_cpu_up_prepare(unsigned int cpu)
 {
     /*
      * If nvmx_cpu_up_prepare() failed, do not return failure and just fallback
@@ -676,7 +676,7 @@ int vmx_cpu_up_prepare(unsigned int cpu)
     return -ENOMEM;
 }
 
-void vmx_cpu_dead(unsigned int cpu)
+void cf_check vmx_cpu_dead(unsigned int cpu)
 {
     vmx_free_vmcs(per_cpu(vmxon_region, cpu));
     per_cpu(vmxon_region, cpu) = 0;
@@ -774,12 +774,12 @@ static int _vmx_cpu_up(bool bsp)
     return 0;
 }
 
-int vmx_cpu_up()
+int cf_check vmx_cpu_up()
 {
     return _vmx_cpu_up(false);
 }
 
-void vmx_cpu_down(void)
+void cf_check vmx_cpu_down(void)
 {
     struct list_head *active_vmcs_list = &this_cpu(active_vmcs_list);
     unsigned long flags;
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index b1eee802fde7..88a6a5ec824b 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -68,14 +68,16 @@ static void vmx_ctxt_switch_to(struct vcpu *v);
 
 static int alloc_vlapic_mapping(void);
 static void vmx_install_vlapic_mapping(struct vcpu *v);
-static void vmx_update_guest_cr(struct vcpu *v, unsigned int cr,
-                                unsigned int flags);
-static void vmx_update_guest_efer(struct vcpu *v);
-static void vmx_wbinvd_intercept(void);
-static void vmx_fpu_dirty_intercept(void);
-static int vmx_msr_read_intercept(unsigned int msr, uint64_t *msr_content);
-static int vmx_msr_write_intercept(unsigned int msr, uint64_t msr_content);
-static void vmx_invlpg(struct vcpu *v, unsigned long linear);
+static void cf_check vmx_update_guest_cr(
+    struct vcpu *v, unsigned int cr, unsigned int flags);
+static void cf_check vmx_update_guest_efer(struct vcpu *v);
+static void cf_check vmx_wbinvd_intercept(void);
+static void cf_check vmx_fpu_dirty_intercept(void);
+static int cf_check vmx_msr_read_intercept(
+    unsigned int msr, uint64_t *msr_content);
+static int cf_check vmx_msr_write_intercept(
+    unsigned int msr, uint64_t msr_content);
+static void cf_check vmx_invlpg(struct vcpu *v, unsigned long linear);
 
 static mfn_t __read_mostly apic_access_mfn = INVALID_MFN_INITIALIZER;
 
@@ -103,7 +105,7 @@ void vmx_pi_per_cpu_init(unsigned int cpu)
     spin_lock_init(&per_cpu(vmx_pi_blocking, cpu).lock);
 }
 
-static void vmx_vcpu_block(struct vcpu *v)
+static void cf_check vmx_vcpu_block(struct vcpu *v)
 {
     unsigned long flags;
     unsigned int dest;
@@ -395,7 +397,7 @@ void vmx_pi_hooks_deassign(struct domain *d)
     domain_unpause(d);
 }
 
-static int vmx_domain_initialise(struct domain *d)
+static int cf_check vmx_domain_initialise(struct domain *d)
 {
     static const struct arch_csw csw = {
         .from = vmx_ctxt_switch_from,
@@ -414,7 +416,7 @@ static int vmx_domain_initialise(struct domain *d)
     return 0;
 }
 
-static void domain_creation_finished(struct domain *d)
+static void cf_check domain_creation_finished(struct domain *d)
 {
     gfn_t gfn = gaddr_to_gfn(APIC_DEFAULT_PHYS_BASE);
     bool ipat;
@@ -444,7 +446,7 @@ static void vmx_init_ipt(struct vcpu *v)
     v->arch.msrs->rtit.output_limit = size - 1;
 }
 
-static int vmx_vcpu_initialise(struct vcpu *v)
+static int cf_check vmx_vcpu_initialise(struct vcpu *v)
 {
     int rc;
 
@@ -491,7 +493,7 @@ static int vmx_vcpu_initialise(struct vcpu *v)
     return 0;
 }
 
-static void vmx_vcpu_destroy(struct vcpu *v)
+static void cf_check vmx_vcpu_destroy(struct vcpu *v)
 {
     /*
      * There are cases that domain still remains in log-dirty mode when it is
@@ -589,7 +591,7 @@ void vmx_update_exception_bitmap(struct vcpu *v)
         __vmwrite(EXCEPTION_BITMAP, bitmap);
 }
 
-static void vmx_cpuid_policy_changed(struct vcpu *v)
+static void cf_check vmx_cpuid_policy_changed(struct vcpu *v)
 {
     const struct cpuid_policy *cp = v->domain->arch.cpuid;
 
@@ -625,7 +627,7 @@ static void vmx_cpuid_policy_changed(struct vcpu *v)
         vmx_set_msr_intercept(v, MSR_FLUSH_CMD, VMX_MSR_RW);
 }
 
-int vmx_guest_x86_mode(struct vcpu *v)
+int cf_check vmx_guest_x86_mode(struct vcpu *v)
 {
     unsigned long cs_ar_bytes;
 
@@ -822,7 +824,7 @@ static void vmx_load_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
 }
 
 
-static void vmx_save_vmcs_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
+static void cf_check vmx_save_vmcs_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
 {
     if ( v == current )
         vmx_save_guest_msrs(v);
@@ -831,7 +833,7 @@ static void vmx_save_vmcs_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
     vmx_vmcs_save(v, ctxt);
 }
 
-static int vmx_load_vmcs_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
+static int cf_check vmx_load_vmcs_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
 {
     /* Not currently safe to use in current context. */
     ASSERT(v != current);
@@ -857,7 +859,7 @@ static void vmx_fpu_enter(struct vcpu *v)
     __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
 }
 
-static void vmx_fpu_leave(struct vcpu *v)
+static void cf_check vmx_fpu_leave(struct vcpu *v)
 {
     ASSERT(!v->fpu_dirtied);
     ASSERT(read_cr0() & X86_CR0_TS);
@@ -934,7 +936,7 @@ unsigned int vmx_get_cpl(void)
     return (attr >> 5) & 3;
 }
 
-static unsigned int _vmx_get_cpl(struct vcpu *v)
+static unsigned int cf_check _vmx_get_cpl(struct vcpu *v)
 {
     unsigned int cpl;
 
@@ -960,8 +962,8 @@ static unsigned int _vmx_get_cpl(struct vcpu *v)
 #define vm86_ds_attr 0xf3
 #define vm86_tr_attr 0x8b
 
-static void vmx_get_segment_register(struct vcpu *v, enum x86_segment seg,
-                                     struct segment_register *reg)
+static void cf_check vmx_get_segment_register(
+    struct vcpu *v, enum x86_segment seg, struct segment_register *reg)
 {
     unsigned long attr = 0, sel = 0, limit;
 
@@ -1061,8 +1063,8 @@ static void vmx_get_segment_register(struct vcpu *v, enum x86_segment seg,
     }
 }
 
-static void vmx_set_segment_register(struct vcpu *v, enum x86_segment seg,
-                                     struct segment_register *reg)
+static void cf_check vmx_set_segment_register(
+    struct vcpu *v, enum x86_segment seg, struct segment_register *reg)
 {
     uint32_t attr, sel, limit;
     uint64_t base;
@@ -1161,12 +1163,12 @@ static void vmx_set_segment_register(struct vcpu *v, enum x86_segment seg,
     vmx_vmcs_exit(v);
 }
 
-static unsigned long vmx_get_shadow_gs_base(struct vcpu *v)
+static unsigned long cf_check vmx_get_shadow_gs_base(struct vcpu *v)
 {
     return v->arch.hvm.vmx.shadow_gs;
 }
 
-static int vmx_set_guest_pat(struct vcpu *v, u64 gpat)
+static int cf_check vmx_set_guest_pat(struct vcpu *v, u64 gpat)
 {
     if ( !paging_mode_hap(v->domain) ||
          unlikely(v->arch.hvm.cache_mode == NO_FILL_CACHE_MODE) )
@@ -1178,7 +1180,7 @@ static int vmx_set_guest_pat(struct vcpu *v, u64 gpat)
     return 1;
 }
 
-static int vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
+static int cf_check vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
 {
     if ( !paging_mode_hap(v->domain) ||
          unlikely(v->arch.hvm.cache_mode == NO_FILL_CACHE_MODE) )
@@ -1190,7 +1192,7 @@ static int vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
     return 1;
 }
 
-static bool vmx_set_guest_bndcfgs(struct vcpu *v, u64 val)
+static bool cf_check vmx_set_guest_bndcfgs(struct vcpu *v, u64 val)
 {
     ASSERT(cpu_has_mpx && cpu_has_vmx_mpx);
 
@@ -1201,7 +1203,7 @@ static bool vmx_set_guest_bndcfgs(struct vcpu *v, u64 val)
     return true;
 }
 
-static bool vmx_get_guest_bndcfgs(struct vcpu *v, u64 *val)
+static bool cf_check vmx_get_guest_bndcfgs(struct vcpu *v, u64 *val)
 {
     ASSERT(cpu_has_mpx && cpu_has_vmx_mpx);
 
@@ -1212,7 +1214,7 @@ static bool vmx_get_guest_bndcfgs(struct vcpu *v, u64 *val)
     return true;
 }
 
-static void vmx_handle_cd(struct vcpu *v, unsigned long value)
+static void cf_check vmx_handle_cd(struct vcpu *v, unsigned long value)
 {
     if ( !paging_mode_hap(v->domain) )
     {
@@ -1262,7 +1264,7 @@ static void vmx_handle_cd(struct vcpu *v, unsigned long value)
     }
 }
 
-static void vmx_setup_tsc_scaling(struct vcpu *v)
+static void cf_check vmx_setup_tsc_scaling(struct vcpu *v)
 {
     if ( v->domain->arch.vtsc )
         return;
@@ -1272,7 +1274,7 @@ static void vmx_setup_tsc_scaling(struct vcpu *v)
     vmx_vmcs_exit(v);
 }
 
-static void vmx_set_tsc_offset(struct vcpu *v, u64 offset, u64 at_tsc)
+static void cf_check vmx_set_tsc_offset(struct vcpu *v, u64 offset, u64 at_tsc)
 {
     vmx_vmcs_enter(v);
 
@@ -1283,7 +1285,7 @@ static void vmx_set_tsc_offset(struct vcpu *v, u64 offset, u64 at_tsc)
     vmx_vmcs_exit(v);
 }
 
-static void vmx_set_rdtsc_exiting(struct vcpu *v, bool_t enable)
+static void cf_check vmx_set_rdtsc_exiting(struct vcpu *v, bool enable)
 {
     vmx_vmcs_enter(v);
     v->arch.hvm.vmx.exec_control &= ~CPU_BASED_RDTSC_EXITING;
@@ -1293,7 +1295,8 @@ static void vmx_set_rdtsc_exiting(struct vcpu *v, bool_t enable)
     vmx_vmcs_exit(v);
 }
 
-static void vmx_set_descriptor_access_exiting(struct vcpu *v, bool enable)
+static void cf_check vmx_set_descriptor_access_exiting(
+    struct vcpu *v, bool enable)
 {
     if ( enable )
         v->arch.hvm.vmx.secondary_exec_control |=
@@ -1307,7 +1310,7 @@ static void vmx_set_descriptor_access_exiting(struct vcpu *v, bool enable)
     vmx_vmcs_exit(v);
 }
 
-static void vmx_init_hypercall_page(void *p)
+static void cf_check vmx_init_hypercall_page(void *p)
 {
     unsigned int i;
 
@@ -1330,7 +1333,7 @@ static void vmx_init_hypercall_page(void *p)
     }
 }
 
-static unsigned int vmx_get_interrupt_shadow(struct vcpu *v)
+static unsigned int cf_check vmx_get_interrupt_shadow(struct vcpu *v)
 {
     unsigned long intr_shadow;
 
@@ -1339,7 +1342,8 @@ static unsigned int vmx_get_interrupt_shadow(struct vcpu *v)
     return intr_shadow;
 }
 
-static void vmx_set_interrupt_shadow(struct vcpu *v, unsigned int intr_shadow)
+static void cf_check vmx_set_interrupt_shadow(
+    struct vcpu *v, unsigned int intr_shadow)
 {
     __vmwrite(GUEST_INTERRUPTIBILITY_INFO, intr_shadow);
 }
@@ -1390,7 +1394,7 @@ static void vmx_load_pdptrs(struct vcpu *v)
     return;
 }
 
-static void vmx_update_host_cr3(struct vcpu *v)
+static void cf_check vmx_update_host_cr3(struct vcpu *v)
 {
     vmx_vmcs_enter(v);
     __vmwrite(HOST_CR3, v->arch.cr3);
@@ -1409,8 +1413,8 @@ void vmx_update_debug_state(struct vcpu *v)
     vmx_vmcs_exit(v);
 }
 
-static void vmx_update_guest_cr(struct vcpu *v, unsigned int cr,
-                                unsigned int flags)
+static void cf_check vmx_update_guest_cr(
+    struct vcpu *v, unsigned int cr, unsigned int flags)
 {
     vmx_vmcs_enter(v);
 
@@ -1612,7 +1616,7 @@ static void vmx_update_guest_cr(struct vcpu *v, unsigned int cr,
     vmx_vmcs_exit(v);
 }
 
-static void vmx_update_guest_efer(struct vcpu *v)
+static void cf_check vmx_update_guest_efer(struct vcpu *v)
 {
     unsigned long entry_ctls, guest_efer = v->arch.hvm.guest_efer,
         xen_efer = read_efer();
@@ -1714,7 +1718,8 @@ void nvmx_enqueue_n2_exceptions(struct vcpu *v,
                  nvmx->intr.intr_info, nvmx->intr.error_code);
 }
 
-static int nvmx_vmexit_event(struct vcpu *v, const struct x86_event *event)
+static int cf_check nvmx_vmexit_event(
+    struct vcpu *v, const struct x86_event *event)
 {
     nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
                                hvm_intsrc_none);
@@ -1800,7 +1805,7 @@ void vmx_inject_nmi(void)
  *  - #DB is X86_EVENTTYPE_HW_EXCEPTION, except when generated by
  *    opcode 0xf1 (which is X86_EVENTTYPE_PRI_SW_EXCEPTION)
  */
-static void vmx_inject_event(const struct x86_event *event)
+static void cf_check vmx_inject_event(const struct x86_event *event)
 {
     unsigned long intr_info;
     struct vcpu *curr = current;
@@ -1881,7 +1886,7 @@ static void vmx_inject_event(const struct x86_event *event)
         HVMTRACE_2D(INJ_EXC, _event.vector, _event.error_code);
 }
 
-static bool vmx_event_pending(const struct vcpu *v)
+static bool cf_check vmx_event_pending(const struct vcpu *v)
 {
     unsigned long intr_info;
 
@@ -1891,7 +1896,7 @@ static bool vmx_event_pending(const struct vcpu *v)
     return intr_info & INTR_INFO_VALID_MASK;
 }
 
-static void vmx_set_info_guest(struct vcpu *v)
+static void cf_check vmx_set_info_guest(struct vcpu *v)
 {
     unsigned long intr_shadow;
 
@@ -1919,7 +1924,8 @@ static void vmx_set_info_guest(struct vcpu *v)
     vmx_vmcs_exit(v);
 }
 
-static void vmx_update_eoi_exit_bitmap(struct vcpu *v, uint8_t vector, bool set)
+static void cf_check vmx_update_eoi_exit_bitmap(
+    struct vcpu *v, uint8_t vector, bool set)
 {
     if ( set )
         vmx_set_eoi_exit_bitmap(v, vector);
@@ -1947,7 +1953,7 @@ static u8 set_svi(int isr)
     return old;
 }
 
-static void vmx_process_isr(int isr, struct vcpu *v)
+static void cf_check vmx_process_isr(int isr, struct vcpu *v)
 {
     unsigned int i;
     const struct vlapic *vlapic = vcpu_vlapic(v);
@@ -2035,7 +2041,7 @@ static void __vmx_deliver_posted_interrupt(struct vcpu *v)
     }
 }
 
-static void vmx_deliver_posted_intr(struct vcpu *v, u8 vector)
+static void cf_check vmx_deliver_posted_intr(struct vcpu *v, u8 vector)
 {
     struct pi_desc old, new, prev;
 
@@ -2082,7 +2088,7 @@ static void vmx_deliver_posted_intr(struct vcpu *v, u8 vector)
     __vmx_deliver_posted_interrupt(v);
 }
 
-static void vmx_sync_pir_to_irr(struct vcpu *v)
+static void cf_check vmx_sync_pir_to_irr(struct vcpu *v)
 {
     struct vlapic *vlapic = vcpu_vlapic(v);
     unsigned int group, i;
@@ -2098,12 +2104,12 @@ static void vmx_sync_pir_to_irr(struct vcpu *v)
         vlapic_set_vector(i, &vlapic->regs->data[APIC_IRR]);
 }
 
-static bool vmx_test_pir(const struct vcpu *v, uint8_t vec)
+static bool cf_check vmx_test_pir(const struct vcpu *v, uint8_t vec)
 {
     return pi_test_pir(vec, &v->arch.hvm.vmx.pi_desc);
 }
 
-static void vmx_handle_eoi(uint8_t vector, int isr)
+static void cf_check vmx_handle_eoi(uint8_t vector, int isr)
 {
     uint8_t old_svi = set_svi(isr);
     static bool warned;
@@ -2112,7 +2118,7 @@ static void vmx_handle_eoi(uint8_t vector, int isr)
         printk(XENLOG_WARNING "EOI for %02x but SVI=%02x\n", vector, old_svi);
 }
 
-static void vmx_enable_msr_interception(struct domain *d, uint32_t msr)
+static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
 
@@ -2120,12 +2126,12 @@ static void vmx_enable_msr_interception(struct domain *d, uint32_t msr)
         vmx_set_msr_intercept(v, msr, VMX_MSR_W);
 }
 
-static bool_t vmx_is_singlestep_supported(void)
+static bool cf_check vmx_is_singlestep_supported(void)
 {
     return !!cpu_has_monitor_trap_flag;
 }
 
-static void vmx_vcpu_update_eptp(struct vcpu *v)
+static void cf_check vmx_vcpu_update_eptp(struct vcpu *v)
 {
     struct domain *d = v->domain;
     struct p2m_domain *p2m = NULL;
@@ -2150,7 +2156,7 @@ static void vmx_vcpu_update_eptp(struct vcpu *v)
     vmx_vmcs_exit(v);
 }
 
-static void vmx_vcpu_update_vmfunc_ve(struct vcpu *v)
+static void cf_check vmx_vcpu_update_vmfunc_ve(struct vcpu *v)
 {
     struct domain *d = v->domain;
     u32 mask = SECONDARY_EXEC_ENABLE_VM_FUNCTIONS;
@@ -2194,7 +2200,7 @@ static void vmx_vcpu_update_vmfunc_ve(struct vcpu *v)
     vmx_vmcs_exit(v);
 }
 
-static int vmx_vcpu_emulate_vmfunc(const struct cpu_user_regs *regs)
+static int cf_check vmx_vcpu_emulate_vmfunc(const struct cpu_user_regs *regs)
 {
     int rc = X86EMUL_EXCEPTION;
     struct vcpu *curr = current;
@@ -2207,7 +2213,7 @@ static int vmx_vcpu_emulate_vmfunc(const struct cpu_user_regs *regs)
     return rc;
 }
 
-static bool_t vmx_vcpu_emulate_ve(struct vcpu *v)
+static bool cf_check vmx_vcpu_emulate_ve(struct vcpu *v)
 {
     const struct page_info *pg = vcpu_altp2m(v).veinfo_pg;
     ve_info_t *veinfo;
@@ -2244,7 +2250,8 @@ static bool_t vmx_vcpu_emulate_ve(struct vcpu *v)
     return rc;
 }
 
-static bool vmx_get_pending_event(struct vcpu *v, struct x86_event *info)
+static bool cf_check vmx_get_pending_event(
+    struct vcpu *v, struct x86_event *info)
 {
     unsigned long intr_info, error_code;
 
@@ -2281,7 +2288,8 @@ static bool vmx_get_pending_event(struct vcpu *v, struct x86_event *info)
     (RTIT_STATUS_FILTER_EN | RTIT_STATUS_CONTEXT_EN | RTIT_STATUS_TRIGGER_EN | \
      RTIT_STATUS_ERROR | RTIT_STATUS_STOPPED)
 
-static int vmtrace_get_option(struct vcpu *v, uint64_t key, uint64_t *output)
+static int cf_check vmtrace_get_option(
+    struct vcpu *v, uint64_t key, uint64_t *output)
 {
     const struct vcpu_msrs *msrs = v->arch.msrs;
 
@@ -2302,7 +2310,8 @@ static int vmtrace_get_option(struct vcpu *v, uint64_t key, uint64_t *output)
     return 0;
 }
 
-static int vmtrace_set_option(struct vcpu *v, uint64_t key, uint64_t value)
+static int cf_check vmtrace_set_option(
+    struct vcpu *v, uint64_t key, uint64_t value)
 {
     struct vcpu_msrs *msrs = v->arch.msrs;
     bool new_en, old_en = msrs->rtit.ctl & RTIT_CTL_TRACE_EN;
@@ -2356,7 +2365,7 @@ static int vmtrace_set_option(struct vcpu *v, uint64_t key, uint64_t value)
     return 0;
 }
 
-static int vmtrace_control(struct vcpu *v, bool enable, bool reset)
+static int cf_check vmtrace_control(struct vcpu *v, bool enable, bool reset)
 {
     struct vcpu_msrs *msrs = v->arch.msrs;
     uint64_t new_ctl;
@@ -2388,13 +2397,13 @@ static int vmtrace_control(struct vcpu *v, bool enable, bool reset)
     return 0;
 }
 
-static int vmtrace_output_position(struct vcpu *v, uint64_t *pos)
+static int cf_check vmtrace_output_position(struct vcpu *v, uint64_t *pos)
 {
     *pos = v->arch.msrs->rtit.output_offset;
     return v->arch.hvm.vmx.ipt_active;
 }
 
-static int vmtrace_reset(struct vcpu *v)
+static int cf_check vmtrace_reset(struct vcpu *v)
 {
     if ( !v->arch.hvm.vmx.ipt_active )
         return -EINVAL;
@@ -2764,7 +2773,7 @@ void update_guest_eip(void)
         hvm_inject_hw_exception(TRAP_debug, X86_EVENT_NO_EC);
 }
 
-static void vmx_fpu_dirty_intercept(void)
+static void cf_check vmx_fpu_dirty_intercept(void)
 {
     struct vcpu *curr = current;
 
@@ -2799,7 +2808,7 @@ static void vmx_invlpg_intercept(unsigned long linear)
     paging_invlpg(current, linear);
 }
 
-static void vmx_invlpg(struct vcpu *v, unsigned long linear)
+static void cf_check vmx_invlpg(struct vcpu *v, unsigned long linear)
 {
     if ( cpu_has_vmx_vpid )
         vpid_sync_vcpu_gva(v, linear);
@@ -3125,7 +3134,8 @@ static int is_last_branch_msr(u32 ecx)
     return 0;
 }
 
-static int vmx_msr_read_intercept(unsigned int msr, uint64_t *msr_content)
+static int cf_check vmx_msr_read_intercept(
+    unsigned int msr, uint64_t *msr_content)
 {
     struct vcpu *curr = current;
     uint64_t tmp;
@@ -3328,7 +3338,8 @@ void vmx_vlapic_msr_changed(struct vcpu *v)
     vmx_vmcs_exit(v);
 }
 
-static int vmx_msr_write_intercept(unsigned int msr, uint64_t msr_content)
+static int cf_check vmx_msr_write_intercept(
+    unsigned int msr, uint64_t msr_content)
 {
     struct vcpu *v = current;
     const struct cpuid_policy *cp = v->domain->arch.cpuid;
@@ -3528,7 +3539,7 @@ static void vmx_do_extint(struct cpu_user_regs *regs)
     do_IRQ(regs);
 }
 
-static void vmx_wbinvd_intercept(void)
+static void cf_check vmx_wbinvd_intercept(void)
 {
     if ( !cache_flush_permitted(current->domain) || iommu_snoop )
         return;
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index e9f94daf6493..12d80be9ee57 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -62,7 +62,7 @@ void nvmx_cpu_dead(unsigned int cpu)
     XFREE(per_cpu(vvmcs_buf, cpu));
 }
 
-int nvmx_vcpu_initialise(struct vcpu *v)
+int cf_check nvmx_vcpu_initialise(struct vcpu *v)
 {
     struct domain *d = v->domain;
     struct nestedvmx *nvmx = &vcpu_2_nvmx(v);
@@ -150,7 +150,7 @@ int nvmx_vcpu_initialise(struct vcpu *v)
     return 0;
 }
  
-void nvmx_vcpu_destroy(struct vcpu *v)
+void cf_check nvmx_vcpu_destroy(struct vcpu *v)
 {
     struct nestedvmx *nvmx = &vcpu_2_nvmx(v);
     struct nestedvcpu *nvcpu = &vcpu_nestedhvm(v);
@@ -199,7 +199,7 @@ static void vcpu_relinquish_resources(struct vcpu *v)
     FREE_XENHEAP_PAGE(nvmx->msr_merged);
 }
 
-void nvmx_domain_relinquish_resources(struct domain *d)
+void cf_check nvmx_domain_relinquish_resources(struct domain *d)
 {
     struct vcpu *v;
 
@@ -210,17 +210,17 @@ void nvmx_domain_relinquish_resources(struct domain *d)
     }
 }
 
-int nvmx_vcpu_reset(struct vcpu *v)
+int cf_check nvmx_vcpu_reset(struct vcpu *v)
 {
     return 0;
 }
 
-uint64_t nvmx_vcpu_eptp_base(struct vcpu *v)
+uint64_t cf_check nvmx_vcpu_eptp_base(struct vcpu *v)
 {
     return get_vvmcs(v, EPT_POINTER) & PAGE_MASK;
 }
 
-bool_t nvmx_ept_enabled(struct vcpu *v)
+bool cf_check nvmx_ept_enabled(struct vcpu *v)
 {
     struct nestedvmx *nvmx = &vcpu_2_nvmx(v);
 
@@ -514,7 +514,7 @@ static void vmfail(struct cpu_user_regs *regs, enum vmx_insn_errno errno)
         vmfail_invalid(regs);
 }
 
-bool_t nvmx_intercepts_exception(
+bool cf_check nvmx_intercepts_exception(
     struct vcpu *v, unsigned int vector, int error_code)
 {
     u32 exception_bitmap, pfec_match=0, pfec_mask=0;
@@ -2346,10 +2346,9 @@ int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
  * walk is successful, the translated value is returned in
  * L1_gpa. The result value tells what to do next.
  */
-int
-nvmx_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                     unsigned int *page_order, uint8_t *p2m_acc,
-                     bool_t access_r, bool_t access_w, bool_t access_x)
+int cf_check nvmx_hap_walk_L1_p2m(
+    struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
+    uint8_t *p2m_acc, bool access_r, bool access_w, bool access_x)
 {
     int rc;
     unsigned long gfn;
diff --git a/xen/include/asm-x86/hvm/svm/nestedsvm.h b/xen/include/asm-x86/hvm/svm/nestedsvm.h
index 087369845761..32ba092a30cd 100644
--- a/xen/include/asm-x86/hvm/svm/nestedsvm.h
+++ b/xen/include/asm-x86/hvm/svm/nestedsvm.h
@@ -107,24 +107,24 @@ nestedsvm_check_intercepts(struct vcpu *v, struct cpu_user_regs *regs,
 void svm_nested_features_on_efer_update(struct vcpu *v);
 
 /* Interface methods */
-void nsvm_vcpu_destroy(struct vcpu *v);
-int nsvm_vcpu_initialise(struct vcpu *v);
-int nsvm_vcpu_reset(struct vcpu *v);
+void cf_check nsvm_vcpu_destroy(struct vcpu *v);
+int cf_check nsvm_vcpu_initialise(struct vcpu *v);
+int cf_check nsvm_vcpu_reset(struct vcpu *v);
 int nsvm_vcpu_vmrun(struct vcpu *v, struct cpu_user_regs *regs);
-int nsvm_vcpu_vmexit_event(struct vcpu *v, const struct x86_event *event);
-uint64_t nsvm_vcpu_hostcr3(struct vcpu *v);
-bool_t nsvm_vmcb_guest_intercepts_event(
+int cf_check nsvm_vcpu_vmexit_event(struct vcpu *v, const struct x86_event *event);
+uint64_t cf_check nsvm_vcpu_hostcr3(struct vcpu *v);
+bool cf_check nsvm_vmcb_guest_intercepts_event(
     struct vcpu *v, unsigned int vector, int errcode);
-bool_t nsvm_vmcb_hap_enabled(struct vcpu *v);
-enum hvm_intblk nsvm_intr_blocked(struct vcpu *v);
+bool cf_check nsvm_vmcb_hap_enabled(struct vcpu *v);
+enum hvm_intblk cf_check nsvm_intr_blocked(struct vcpu *v);
 
 /* Interrupts, vGIF */
 void svm_vmexit_do_clgi(struct cpu_user_regs *regs, struct vcpu *v);
 void svm_vmexit_do_stgi(struct cpu_user_regs *regs, struct vcpu *v);
 bool_t nestedsvm_gif_isset(struct vcpu *v);
-int nsvm_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                         unsigned int *page_order, uint8_t *p2m_acc,
-                         bool_t access_r, bool_t access_w, bool_t access_x);
+int cf_check nsvm_hap_walk_L1_p2m(
+    struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
+    uint8_t *p2m_acc, bool access_r, bool access_w, bool access_x);
 
 #define NSVM_INTR_NOTHANDLED     3
 #define NSVM_INTR_NOTINTERCEPTED 2
diff --git a/xen/include/asm-x86/hvm/svm/svm.h b/xen/include/asm-x86/hvm/svm/svm.h
index 05e968502694..6292133ca21e 100644
--- a/xen/include/asm-x86/hvm/svm/svm.h
+++ b/xen/include/asm-x86/hvm/svm/svm.h
@@ -47,7 +47,6 @@ static inline void svm_invlpga(unsigned long linear, uint32_t asid)
 
 unsigned long *svm_msrbit(unsigned long *msr_bitmap, uint32_t msr);
 void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len);
-void svm_update_guest_cr(struct vcpu *, unsigned int cr, unsigned int flags);
 
 /*
  * PV context switch helpers.  Prefetching the VMCB area itself has been shown
diff --git a/xen/include/asm-x86/hvm/vmx/vmcs.h b/xen/include/asm-x86/hvm/vmx/vmcs.h
index 03c9ccf627ab..9119aa8536df 100644
--- a/xen/include/asm-x86/hvm/vmx/vmcs.h
+++ b/xen/include/asm-x86/hvm/vmx/vmcs.h
@@ -22,10 +22,10 @@
 
 extern void vmcs_dump_vcpu(struct vcpu *v);
 extern int vmx_vmcs_init(void);
-extern int  vmx_cpu_up_prepare(unsigned int cpu);
-extern void vmx_cpu_dead(unsigned int cpu);
-extern int  vmx_cpu_up(void);
-extern void vmx_cpu_down(void);
+int cf_check vmx_cpu_up_prepare(unsigned int cpu);
+void cf_check vmx_cpu_dead(unsigned int cpu);
+int cf_check vmx_cpu_up(void);
+void cf_check vmx_cpu_down(void);
 
 struct vmcs_struct {
     u32 vmcs_revision_id;
diff --git a/xen/include/asm-x86/hvm/vmx/vmx.h b/xen/include/asm-x86/hvm/vmx/vmx.h
index 85530d2e0e26..459c84dd9f09 100644
--- a/xen/include/asm-x86/hvm/vmx/vmx.h
+++ b/xen/include/asm-x86/hvm/vmx/vmx.h
@@ -587,7 +587,7 @@ static inline int __vmxon(u64 addr)
     return rc;
 }
 
-int vmx_guest_x86_mode(struct vcpu *v);
+int cf_check vmx_guest_x86_mode(struct vcpu *v);
 unsigned int vmx_get_cpl(void);
 
 void vmx_inject_extint(int trap, uint8_t source);
diff --git a/xen/include/asm-x86/hvm/vmx/vvmx.h b/xen/include/asm-x86/hvm/vmx/vvmx.h
index d5f68f30b129..6726c26f09fa 100644
--- a/xen/include/asm-x86/hvm/vmx/vvmx.h
+++ b/xen/include/asm-x86/hvm/vmx/vvmx.h
@@ -84,26 +84,25 @@ union vmx_inst_info {
     u32 word;
 };
 
-int nvmx_vcpu_initialise(struct vcpu *v);
-void nvmx_vcpu_destroy(struct vcpu *v);
-int nvmx_vcpu_reset(struct vcpu *v);
-uint64_t nvmx_vcpu_eptp_base(struct vcpu *v);
-enum hvm_intblk nvmx_intr_blocked(struct vcpu *v);
-bool_t nvmx_intercepts_exception(
+int cf_check nvmx_vcpu_initialise(struct vcpu *v);
+void cf_check nvmx_vcpu_destroy(struct vcpu *v);
+int cf_check nvmx_vcpu_reset(struct vcpu *v);
+uint64_t cf_check nvmx_vcpu_eptp_base(struct vcpu *v);
+enum hvm_intblk cf_check nvmx_intr_blocked(struct vcpu *v);
+bool cf_check nvmx_intercepts_exception(
     struct vcpu *v, unsigned int vector, int error_code);
-void nvmx_domain_relinquish_resources(struct domain *d);
+void cf_check nvmx_domain_relinquish_resources(struct domain *d);
 
-bool_t nvmx_ept_enabled(struct vcpu *v);
+bool cf_check nvmx_ept_enabled(struct vcpu *v);
 
 #define EPT_TRANSLATE_SUCCEED       0
 #define EPT_TRANSLATE_VIOLATION     1
 #define EPT_TRANSLATE_MISCONFIG     2
 #define EPT_TRANSLATE_RETRY         3
 
-int
-nvmx_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                     unsigned int *page_order, uint8_t *p2m_acc,
-                     bool_t access_r, bool_t access_w, bool_t access_x);
+int cf_check nvmx_hap_walk_L1_p2m(
+    struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
+    uint8_t *p2m_acc, bool access_r, bool access_w, bool access_x);
 /*
  * Virtual VMCS layout
  *
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232875.404087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxR-0001ca-9o; Fri, 26 Nov 2021 13:08:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232875.404087; Fri, 26 Nov 2021 13:08:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxQ-0001XF-EP; Fri, 26 Nov 2021 13:08:04 +0000
Received: by outflank-mailman (input) for mailman id 232875;
 Fri, 26 Nov 2021 13:08:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaum-0003W9-BU
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:20 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 801a3d48-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 801a3d48-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931918;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=xjn85GMBbIR9P9hSa/8Sl+mZVJ+id4k3kzCvHV3KSWQ=;
  b=RzAu9bkg2cHhdT05XVLR8+obe2uz78zqqx5zt/JFaKxbwTwxfi9oJ05H
   05Vlbil39d+aWIxGIF8cwV7h2BgIxcrljqB5afSnxXaXCmOl7knJrM0QO
   9xAmTSHHe5zXmM0WG/N3s6iQJtcVuTY9LHwbpa4wWkqf73zx9qzcYVSsY
   4=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: QY8y04f07OZwnNF+0vjbYUv51UZ2G1BAr2Q4JGd//Xqzbjcz0R9cUFzGjXr19xkOFOe0ZyJAFg
 NH1qLab9PG00lcH1EVHQn6O36oALuGxAPp+kwIkOjOvgasew1y2/BPM7UhhnuOGn33W6FAbW0H
 LewJU/1p3Lxc6QF3AF2A4HEBwM/QLAQ1tpjReUWSW79TwKQlggZcoDQBzwAvczknPkffQ6eUVa
 toxGis/MNsKUpfz6TD9KWdhPIO+WviVBqfbDEndWFG7HW6J+hr7TztFN8OGxkEdtn8YUi4w0tM
 HWO+F+HwaU1s7XaqgqTjiX4P
X-SBRS: 5.1
X-MesageID: 59064000
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:fk4yu6/Va7Flx3bS9FLADrUDTXmTJUtcMsCJ2f8bNWPcYEJGY0x3y
 DQbDWGPOffcNmumc94nOtvi800FsZaBy9cxT1drqCo8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj3NYy6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPh25
 IwS5Y3tFj4LAY3QkfUSDylGFz5HaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp0fRaiCP
 5JBAdZpRArYWCVSIQoXMoAjlbj2oVzTQTx5sXvA8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru3U70HxUbP9y30iee/zSngeqntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLpix
 1c8o3R06/JorQryE4e7D0bQTGO4UgA0XPYJTL0rtV606JX0/w+ICTQ0UDpeUYlz3CMpfgAC2
 liMltLvIDVgtryJVH6QnoupQSOO1Ts9djFbO3JdJecRy5y6+dxo0EqTJjp2OPft1oWdJN3m/
 9ydQMHSbZ03hNVD6ai09Euvb9mE9smQFV5dCuk6swuYAuJFiGyNO9PABbvzt68owGOlor+p5
 yNsdy+2tr1mMH11vHbRKNjh5Znwjxp/DBXSgER0A74q/Cm39niocOh4uW8lexc3b5lVJWG1O
 yc/XD+9ArcIZxNGioctPuqM5zkCl/C8RbwJqNiIBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WiOHSKqtBKcghRRZX5bLivw/Fqmie4ClIOMAkc5zX5m9vNoqRpwPZYkPnm5
 Ha4VhMKwVbznySfew6LdmpiePXkWpMm9SA3OiklPFCJ3Xk/YNnwsPdDJsVvJbR3pvZ+yfNUT
 uUef5nSCPp4VTmaqS8WaoPwrdI+eU3z1x6OJSesfBM2Y4VkG17S4tbhcwa2rHsOAyO7uNEQu
 bql0g+HE5MPSx47VJTdae61zkP3tn8YwbogU0zNK9hVWUPt7Ik1dHCh0q5pe5kBcEyRyCGb2
 gCaBQYjidPM+4JlosPUga2krpuyF7csFERtAGSGv629MjPX/zT/zNYYAvqIZz3USEj95L6mO
 bdO1/j5PfAKwARKvo57H+o5xK4y/YKy9bpTzwAiF3TXdVW7TLhnJyDej8VIs6RMwJ5fuBe3B
 R3TqoULZ+3RNZO3CkMVKSokcv+HhKMdlTTl5PgoJFn3uX1s972dXEQOZxSBhUSx9leu3F/JF
 Qv5hPMr1g==
IronPort-HdrOrdr: A9a23:y0Gu9a4VCkWPJCL01wPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HWoB17726TtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QC5SWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="59064000"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 63/65] x86/setup: Rework MSR_S_CET handling for CET-IBT
Date: Fri, 26 Nov 2021 12:34:44 +0000
Message-ID: <20211126123446.32324-64-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

CET-SS and CET-IBT can be independently controlled, so the configuration of
MSR_S_CET can't be constants any more.

Introduce xen_msr_s_cet_value(), mostly because I don't fancy
writing/maintaining that logic in assembly.  Use this in the 3 paths which
alter MSR_S_CET when both features are potentially active.

To active CET-IBT, we only need CR4.CET and MSR_S_CET.ENDBR_EN.  This is
common with the CET-SS setup, so reorder the operations to set up CR4 and
MSR_S_CET for any nonzero result from xen_msr_s_cet_value(), and set up
MSR_PL0_SSP and SSP if SHSTK_EN was also set.

Adjust the crash path to disable CET-IBT too.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

It is quite possible that the S3 path is dead code.  CET-IBT only exist on
Intel systems from TigerLake onwards, and TGL kills S3 in favour of the newer
S0ix power state.

AMD Ryzen platforms (Zen3 onwards) support S3 and CET-SS, so partial testing
will occur there.
---
 xen/arch/x86/acpi/wakeup_prot.S | 37 ++++++++++++++++++++++---------------
 xen/arch/x86/boot/x86_64.S      | 29 ++++++++++++++++++-----------
 xen/arch/x86/crash.c            |  4 ++--
 xen/arch/x86/setup.c            | 17 ++++++++++++++++-
 xen/include/asm-x86/msr-index.h |  1 +
 5 files changed, 59 insertions(+), 29 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index 15052c300fa1..01eb26ed0769 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -63,7 +63,24 @@ ENTRY(s3_resume)
         pushq   %rax
         lretq
 1:
-#ifdef CONFIG_XEN_SHSTK
+#if defined(CONFIG_XEN_SHSTK) || defined(CONFIG_XEN_IBT)
+        call    xen_msr_s_cet_value
+        test    %eax, %eax
+        je      .L_cet_done
+
+        /* Set up MSR_S_CET. */
+        mov     $MSR_S_CET, %ecx
+        xor     %edx, %edx
+        wrmsr
+
+        /* Enable CR4.CET. */
+        mov     $XEN_MINIMAL_CR4 | X86_CR4_CET, %ecx
+        mov     %rcx, %cr4
+
+#if defined(CONFIG_XEN_SHSTK)
+        test    $CET_SHSTK_EN, %eax
+        je      .L_cet_done
+
         /*
          * Restoring SSP is a little complicated, because we are intercepting
          * an in-use shadow stack.  Write a temporary token under the stack,
@@ -71,14 +88,6 @@ ENTRY(s3_resume)
          * reset MSR_PL0_SSP to its usual value and pop the temporary token.
          */
         mov     saved_ssp(%rip), %rdi
-        cmpq    $1, %rdi
-        je      .L_shstk_done
-
-        /* Set up MSR_S_CET. */
-        mov     $MSR_S_CET, %ecx
-        xor     %edx, %edx
-        mov     $CET_SHSTK_EN | CET_WRSS_EN, %eax
-        wrmsr
 
         /* Construct the temporary supervisor token under SSP. */
         sub     $8, %rdi
@@ -90,12 +99,9 @@ ENTRY(s3_resume)
         mov     %edi, %eax
         wrmsr
 
-        /* Enable CET.  MSR_INTERRUPT_SSP_TABLE is set up later in load_system_tables(). */
-        mov     $XEN_MINIMAL_CR4 | X86_CR4_CET, %ebx
-        mov     %rbx, %cr4
-
         /* Write the temporary token onto the shadow stack, and activate it. */
         wrssq   %rdi, (%rdi)
+        /* MSR_INTERRUPT_SSP_TABLE is set up later in load_system_tables(). */
         setssbsy
 
         /* Reset MSR_PL0_SSP back to its normal value. */
@@ -106,8 +112,9 @@ ENTRY(s3_resume)
         /* Pop the temporary token off the stack. */
         mov     $2, %eax
         incsspd %eax
-.L_shstk_done:
-#endif
+#endif /* CONFIG_XEN_SHSTK */
+.L_cet_done:
+#endif /* CONFIG_XEN_SHSTK || CONFIG_XEN_IBT */
 
         call    load_system_tables
 
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index d61048c583b3..c05c69f9fa59 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -30,18 +30,25 @@ ENTRY(__high_start)
         test    %ebx,%ebx
         jz      .L_bsp
 
-        /* APs.  Set up shadow stacks before entering C. */
-#ifdef CONFIG_XEN_SHSTK
-        testl   $cpufeat_mask(X86_FEATURE_XEN_SHSTK), \
-                CPUINFO_FEATURE_OFFSET(X86_FEATURE_XEN_SHSTK) + boot_cpu_data(%rip)
-        je      .L_ap_shstk_done
+        /* APs.  Set up CET before entering C properly. */
+#if defined(CONFIG_XEN_SHSTK) || defined(CONFIG_XEN_IBT)
+        call    xen_msr_s_cet_value
+        test    %eax, %eax
+        je      .L_ap_cet_done
 
         /* Set up MSR_S_CET. */
         mov     $MSR_S_CET, %ecx
         xor     %edx, %edx
-        mov     $CET_SHSTK_EN | CET_WRSS_EN, %eax
         wrmsr
 
+        /* Enable CR4.CET. */
+        mov     $XEN_MINIMAL_CR4 | X86_CR4_CET, %ecx
+        mov     %rcx, %cr4
+
+#if defined(CONFIG_XEN_SHSTK)
+        test    $CET_SHSTK_EN, %eax
+        je      .L_ap_cet_done
+
         /* Derive MSR_PL0_SSP from %rsp (token written when stack is allocated). */
         mov     $MSR_PL0_SSP, %ecx
         mov     %rsp, %rdx
@@ -51,13 +58,13 @@ ENTRY(__high_start)
         or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %eax
         wrmsr
 
-        /* Enable CET.  MSR_INTERRUPT_SSP_TABLE is set up later in load_system_tables(). */
-        mov     $XEN_MINIMAL_CR4 | X86_CR4_CET, %ecx
-        mov     %rcx, %cr4
+        /* MSR_INTERRUPT_SSP_TABLE is set up later in load_system_tables(). */
         setssbsy
-#endif
 
-.L_ap_shstk_done:
+#endif /* CONFIG_XEN_SHSTK */
+.L_ap_cet_done:
+#endif /* CONFIG_XEN_SHSTK || CONFIG_XEN_IBT */
+
         call    start_secondary
         BUG     /* start_secondary() shouldn't return. */
 
diff --git a/xen/arch/x86/crash.c b/xen/arch/x86/crash.c
index c383f718f5bd..003222c0f1ac 100644
--- a/xen/arch/x86/crash.c
+++ b/xen/arch/x86/crash.c
@@ -190,8 +190,8 @@ void machine_crash_shutdown(void)
     /* Reset CPUID masking and faulting to the host's default. */
     ctxt_switch_levelling(NULL);
 
-    /* Disable shadow stacks. */
-    if ( cpu_has_xen_shstk )
+    /* Disable CET. */
+    if ( cpu_has_xen_shstk || cpu_has_xen_ibt )
     {
         wrmsrl(MSR_S_CET, 0);
         write_cr4(read_cr4() & ~X86_CR4_CET);
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 141957c9f6a5..daaba097d57f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -661,6 +661,21 @@ static void noreturn init_done(void)
     startup_cpu_idle_loop();
 }
 
+#if defined(CONFIG_XEN_SHSTK) || defined(CONFIG_XEN_IBT)
+/*
+ * Used by AP and S3 asm code to calcualte the appropriate MSR_S_CET setting.
+ * Do not use on the BSP before reinit_bsp_stack(), or it may turn SHSTK on
+ * too early.
+ */
+unsigned int xen_msr_s_cet_value(void)
+{
+    return ((cpu_has_xen_shstk ? CET_SHSTK_EN | CET_WRSS_EN : 0) |
+            (cpu_has_xen_ibt   ? CET_ENDBR_EN : 0));
+}
+#else
+unsigned int xen_msr_s_cet_value(void); /* To avoid ifdefary */
+#endif
+
 /* Reinitalise all state referring to the old virtual address of the stack. */
 static void __init noreturn reinit_bsp_stack(void)
 {
@@ -684,7 +699,7 @@ static void __init noreturn reinit_bsp_stack(void)
     {
         wrmsrl(MSR_PL0_SSP,
                (unsigned long)stack + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8);
-        wrmsrl(MSR_S_CET, CET_SHSTK_EN | CET_WRSS_EN);
+        wrmsrl(MSR_S_CET, xen_msr_s_cet_value());
         asm volatile ("setssbsy" ::: "memory");
     }
 
diff --git a/xen/include/asm-x86/msr-index.h b/xen/include/asm-x86/msr-index.h
index ab68ef2681a9..627508233d19 100644
--- a/xen/include/asm-x86/msr-index.h
+++ b/xen/include/asm-x86/msr-index.h
@@ -115,6 +115,7 @@
 #define MSR_S_CET                           0x000006a2
 #define  CET_SHSTK_EN                       (_AC(1, ULL) <<  0)
 #define  CET_WRSS_EN                        (_AC(1, ULL) <<  1)
+#define  CET_ENDBR_EN                       (_AC(1, ULL) <<  2)
 
 #define MSR_PL0_SSP                         0x000006a4
 #define MSR_PL1_SSP                         0x000006a5
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232877.404094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxS-0001qx-Hn; Fri, 26 Nov 2021 13:08:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232877.404094; Fri, 26 Nov 2021 13:08:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxR-0001lo-Et; Fri, 26 Nov 2021 13:08:05 +0000
Received: by outflank-mailman (input) for mailman id 232877;
 Fri, 26 Nov 2021 13:08:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaup-0003W9-CM
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:23 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80e7cff7-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80e7cff7-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931919;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=GwkeJYr8tdjhFymC30/jfquVKzBuwYOcbZ/CTHFhz7Q=;
  b=hzvaSuq8yNpGpNvy+6BACf5Q2JNwFfyBSbbOlEb64z1a2jt6B3AfQe9N
   H9ltfbgYAcu70gM+UK7/NCoAG/VE+jOgqd0K/THg6E7gH5jXS2d2iGqs/
   38d1FXHF4LXqN9QXGQYBeoDLE1ddgOrXSCKj4bP+PLqXOuaX284eceKQQ
   g=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: G73dUSdqFY5hj4RbPyMaRn5jPx9fz3c3PnXHH5bNm30qmm6XUogzgr6bBtdUxFA1bPowJc4/ak
 HdXetXBDwH5EAocz1cEmgXKzU6Zv15beqzeoGZkV/7XYadKkr0dVvL4FAsytj9ythCv9SfRKr2
 VP0aCC5OZlHYVdB1JQohBLObN/HXILliU/hufyIWsEHqlXA3FvLCuBrUzCdlH2U4CWk9MRkFPA
 QoIDs7Oa2E++stT38C/UX8uBVBjfY+xftB59LY0vb9LvuJ9L9kgfBsLls46lsCVOfK2Lch9ArA
 5jfI/OOKk2kOdNV1HCtdTJ7t
X-SBRS: 5.1
X-MesageID: 58635005
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LRKa7q670gJK77AFL/h2dQxRtPXAchMFZxGqfqrLsTDasY5as4F+v
 mEcWmjXOazbN2ShKtF1aoqwoBkA6JWGmtA2Twpq/nxnHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zw
 9pErYSVFEQVLvPvps5DSD9IOBl1BPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTaiFO
 pJBNFKDajz8fBhOOFQRJagagfXzll/AejhnhUma8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u10bTDwweNdef4SGY6X/qjejK9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc9FfGvUizVzO9rqKwDizWHMiXhV5Y+Vz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVnl
 CNf8yR5xLpTZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxg5bJtbKGO3P
 BS7VeZtCHl7ZyDCgUhfOd/ZNijX5fK4SYSNug78MrKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI+cElJNhMb6elJl1VNk/sHm+HW0
 Gu6X0MEmlPziWeecVeBa2x5aaOpVpF69CppMSspNFeu+n4ifYfws/tPK8ppJeEqpL550Pp5b
 /gZYMHcUP5BfSvKpmYGZp7noY08KBny3VCSPzCoaSQUdoJ7Q1Cb4cftewbirXFcDie+ucYkj
 aen0wfXHcgKSwh4VZ6EY/Oz1VKh+3ManbsqDUfPJ9BSfmTq8ZRrdHOt3qNmfZlUJEyalDWA1
 guQDRMJnsX3otc4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKkQoYs4d4FLo3n6sy68G2+u1fxwVgWn7Kc06qGvVrJXzfhZtDsahEx7l4vwqqW
 x3QpokGaOvRYM61QkQMIAcFb/iY0aBGkzbf2v05PUHm6XIl57GAS0hTY0GBhSE1wGGZ62/5L
 TPNYPIr1jE=
IronPort-HdrOrdr: A9a23:ZYdUMqFNKZSgoFG6pLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58635005"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 40/65] x86/pmu: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:21 +0000
Message-ID: <20211126123446.32324-41-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/cpu/vpmu_amd.c             | 16 ++++++++--------
 xen/arch/x86/cpu/vpmu_intel.c           | 16 ++++++++--------
 xen/arch/x86/oprofile/op_model_athlon.c | 16 ++++++++--------
 xen/arch/x86/oprofile/op_model_p4.c     | 14 +++++++-------
 xen/arch/x86/oprofile/op_model_ppro.c   | 26 ++++++++++++++------------
 5 files changed, 45 insertions(+), 43 deletions(-)

diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index 38972089ab42..a5487143f77e 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -186,7 +186,7 @@ static void amd_vpmu_unset_msr_bitmap(struct vcpu *v)
     msr_bitmap_off(vpmu);
 }
 
-static int amd_vpmu_do_interrupt(struct cpu_user_regs *regs)
+static int cf_check amd_vpmu_do_interrupt(struct cpu_user_regs *regs)
 {
     return 1;
 }
@@ -206,7 +206,7 @@ static inline void context_load(struct vcpu *v)
     }
 }
 
-static int amd_vpmu_load(struct vcpu *v, bool_t from_guest)
+static int cf_check amd_vpmu_load(struct vcpu *v, bool from_guest)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
     struct xen_pmu_amd_ctxt *ctxt;
@@ -280,7 +280,7 @@ static inline void context_save(struct vcpu *v)
         rdmsrl(counters[i], counter_regs[i]);
 }
 
-static int amd_vpmu_save(struct vcpu *v,  bool_t to_guest)
+static int cf_check amd_vpmu_save(struct vcpu *v,  bool to_guest)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
     unsigned int i;
@@ -348,8 +348,8 @@ static void context_update(unsigned int msr, u64 msr_content)
     }
 }
 
-static int amd_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content,
-                             uint64_t supported)
+static int cf_check amd_vpmu_do_wrmsr(
+    unsigned int msr, uint64_t msr_content, uint64_t supported)
 {
     struct vcpu *v = current;
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
@@ -407,7 +407,7 @@ static int amd_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content,
     return 0;
 }
 
-static int amd_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
+static int cf_check amd_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
 {
     struct vcpu *v = current;
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
@@ -425,7 +425,7 @@ static int amd_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
     return 0;
 }
 
-static void amd_vpmu_destroy(struct vcpu *v)
+static void cf_check amd_vpmu_destroy(struct vcpu *v)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
 
@@ -443,7 +443,7 @@ static void amd_vpmu_destroy(struct vcpu *v)
 }
 
 /* VPMU part of the 'q' keyhandler */
-static void amd_vpmu_dump(const struct vcpu *v)
+static void cf_check amd_vpmu_dump(const struct vcpu *v)
 {
     const struct vpmu_struct *vpmu = vcpu_vpmu(v);
     const struct xen_pmu_amd_ctxt *ctxt = vpmu->context;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index f59cae543868..8b450ec8a8aa 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -288,7 +288,7 @@ static inline void __core2_vpmu_save(struct vcpu *v)
         rdmsrl(MSR_CORE_PERF_GLOBAL_STATUS, core2_vpmu_cxt->global_status);
 }
 
-static int core2_vpmu_save(struct vcpu *v, bool_t to_guest)
+static int cf_check core2_vpmu_save(struct vcpu *v, bool to_guest)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
 
@@ -407,7 +407,7 @@ static int core2_vpmu_verify(struct vcpu *v)
     return 0;
 }
 
-static int core2_vpmu_load(struct vcpu *v, bool_t from_guest)
+static int cf_check core2_vpmu_load(struct vcpu *v, bool from_guest)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
 
@@ -522,8 +522,8 @@ static int core2_vpmu_msr_common_check(u32 msr_index, int *type, int *index)
     return 1;
 }
 
-static int core2_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content,
-                               uint64_t supported)
+static int cf_check core2_vpmu_do_wrmsr(
+    unsigned int msr, uint64_t msr_content, uint64_t supported)
 {
     int i, tmp;
     int type = -1, index = -1;
@@ -693,7 +693,7 @@ static int core2_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content,
     return 0;
 }
 
-static int core2_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
+static int cf_check core2_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
 {
     int type = -1, index = -1;
     struct vcpu *v = current;
@@ -733,7 +733,7 @@ static int core2_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
 }
 
 /* Dump vpmu info on console, called in the context of keyhandler 'q'. */
-static void core2_vpmu_dump(const struct vcpu *v)
+static void cf_check core2_vpmu_dump(const struct vcpu *v)
 {
     const struct vpmu_struct *vpmu = vcpu_vpmu(v);
     unsigned int i;
@@ -778,7 +778,7 @@ static void core2_vpmu_dump(const struct vcpu *v)
     }
 }
 
-static int core2_vpmu_do_interrupt(struct cpu_user_regs *regs)
+static int cf_check core2_vpmu_do_interrupt(struct cpu_user_regs *regs)
 {
     struct vcpu *v = current;
     u64 msr_content;
@@ -805,7 +805,7 @@ static int core2_vpmu_do_interrupt(struct cpu_user_regs *regs)
     return 1;
 }
 
-static void core2_vpmu_destroy(struct vcpu *v)
+static void cf_check core2_vpmu_destroy(struct vcpu *v)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
 
diff --git a/xen/arch/x86/oprofile/op_model_athlon.c b/xen/arch/x86/oprofile/op_model_athlon.c
index 2177f02946e2..7bc5853a6c23 100644
--- a/xen/arch/x86/oprofile/op_model_athlon.c
+++ b/xen/arch/x86/oprofile/op_model_athlon.c
@@ -164,7 +164,7 @@ static inline u64 op_amd_randomize_ibs_op(u64 val)
     return val;
 }
 
-static void athlon_fill_in_addresses(struct op_msrs * const msrs)
+static void cf_check athlon_fill_in_addresses(struct op_msrs * const msrs)
 {
 	msrs->counters[0].addr = MSR_K7_PERFCTR0;
 	msrs->counters[1].addr = MSR_K7_PERFCTR1;
@@ -177,7 +177,7 @@ static void athlon_fill_in_addresses(struct op_msrs * const msrs)
 	msrs->controls[3].addr = MSR_K7_EVNTSEL3;
 }
 
-static void fam15h_fill_in_addresses(struct op_msrs * const msrs)
+static void cf_check fam15h_fill_in_addresses(struct op_msrs * const msrs)
 {
 	msrs->counters[0].addr = MSR_AMD_FAM15H_PERFCTR0;
 	msrs->counters[1].addr = MSR_AMD_FAM15H_PERFCTR1;
@@ -194,7 +194,7 @@ static void fam15h_fill_in_addresses(struct op_msrs * const msrs)
 	msrs->controls[5].addr = MSR_AMD_FAM15H_EVNTSEL5;
 }
 
-static void athlon_setup_ctrs(struct op_msrs const * const msrs)
+static void cf_check athlon_setup_ctrs(struct op_msrs const * const msrs)
 {
 	uint64_t msr_content;
 	int i;
@@ -308,9 +308,9 @@ static inline int handle_ibs(int mode, struct cpu_user_regs const * const regs)
     return 1;
 }
 
-static int athlon_check_ctrs(unsigned int const cpu,
-			     struct op_msrs const * const msrs,
-			     struct cpu_user_regs const * const regs)
+static int cf_check athlon_check_ctrs(
+	unsigned int const cpu, struct op_msrs const * const msrs,
+	struct cpu_user_regs const * const regs)
 
 {
 	uint64_t msr_content;
@@ -386,7 +386,7 @@ static inline void start_ibs(void)
 	}
 }
  
-static void athlon_start(struct op_msrs const * const msrs)
+static void cf_check athlon_start(struct op_msrs const * const msrs)
 {
 	uint64_t msr_content;
 	int i;
@@ -415,7 +415,7 @@ static void stop_ibs(void)
 		wrmsrl(MSR_AMD64_IBSOPCTL, 0);
 }
 
-static void athlon_stop(struct op_msrs const * const msrs)
+static void cf_check athlon_stop(struct op_msrs const * const msrs)
 {
 	uint64_t msr_content;
 	int i;
diff --git a/xen/arch/x86/oprofile/op_model_p4.c b/xen/arch/x86/oprofile/op_model_p4.c
index b08ba53cbd39..d047258644db 100644
--- a/xen/arch/x86/oprofile/op_model_p4.c
+++ b/xen/arch/x86/oprofile/op_model_p4.c
@@ -390,7 +390,7 @@ static unsigned int get_stagger(void)
 static unsigned long reset_value[NUM_COUNTERS_NON_HT];
 
 
-static void p4_fill_in_addresses(struct op_msrs * const msrs)
+static void cf_check p4_fill_in_addresses(struct op_msrs * const msrs)
 {
 	unsigned int i;
 	unsigned int addr, stag;
@@ -530,7 +530,7 @@ static void pmc_setup_one_p4_counter(unsigned int ctr)
 }
 
 
-static void p4_setup_ctrs(struct op_msrs const * const msrs)
+static void cf_check p4_setup_ctrs(struct op_msrs const * const msrs)
 {
 	unsigned int i;
 	uint64_t msr_content;
@@ -609,9 +609,9 @@ static void p4_setup_ctrs(struct op_msrs const * const msrs)
 	}
 }
 
-static int p4_check_ctrs(unsigned int const cpu,
-                         struct op_msrs const * const msrs,
-                         struct cpu_user_regs const * const regs)
+static int cf_check p4_check_ctrs(
+	unsigned int const cpu, struct op_msrs const * const msrs,
+	struct cpu_user_regs const * const regs)
 {
 	unsigned long ctr, stag, real;
 	uint64_t msr_content;
@@ -665,7 +665,7 @@ static int p4_check_ctrs(unsigned int const cpu,
 }
 
 
-static void p4_start(struct op_msrs const * const msrs)
+static void cf_check p4_start(struct op_msrs const * const msrs)
 {
 	unsigned int stag;
 	uint64_t msr_content;
@@ -683,7 +683,7 @@ static void p4_start(struct op_msrs const * const msrs)
 }
 
 
-static void p4_stop(struct op_msrs const * const msrs)
+static void cf_check p4_stop(struct op_msrs const * const msrs)
 {
 	unsigned int stag;
 	uint64_t msr_content;
diff --git a/xen/arch/x86/oprofile/op_model_ppro.c b/xen/arch/x86/oprofile/op_model_ppro.c
index 72c504a10216..8d7e13ea8777 100644
--- a/xen/arch/x86/oprofile/op_model_ppro.c
+++ b/xen/arch/x86/oprofile/op_model_ppro.c
@@ -63,7 +63,7 @@ static int counter_width = 32;
 static unsigned long reset_value[OP_MAX_COUNTER];
 int ppro_has_global_ctrl = 0;
 
-static void ppro_fill_in_addresses(struct op_msrs * const msrs)
+static void cf_check ppro_fill_in_addresses(struct op_msrs * const msrs)
 {
 	int i;
 
@@ -74,7 +74,7 @@ static void ppro_fill_in_addresses(struct op_msrs * const msrs)
 }
 
 
-static void ppro_setup_ctrs(struct op_msrs const * const msrs)
+static void cf_check ppro_setup_ctrs(struct op_msrs const * const msrs)
 {
 	uint64_t msr_content;
 	int i;
@@ -128,9 +128,9 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs)
 	}
 }
 
-static int ppro_check_ctrs(unsigned int const cpu,
-                           struct op_msrs const * const msrs,
-                           struct cpu_user_regs const * const regs)
+static int cf_check ppro_check_ctrs(
+	unsigned int const cpu, struct op_msrs const * const msrs,
+	struct cpu_user_regs const * const regs)
 {
 	u64 val;
 	int i;
@@ -170,7 +170,7 @@ static int ppro_check_ctrs(unsigned int const cpu,
 }
 
 
-static void ppro_start(struct op_msrs const * const msrs)
+static void cf_check ppro_start(struct op_msrs const * const msrs)
 {
 	uint64_t msr_content;
 	int i;
@@ -190,7 +190,7 @@ static void ppro_start(struct op_msrs const * const msrs)
 }
 
 
-static void ppro_stop(struct op_msrs const * const msrs)
+static void cf_check ppro_stop(struct op_msrs const * const msrs)
 {
 	uint64_t msr_content;
 	int i;
@@ -206,7 +206,7 @@ static void ppro_stop(struct op_msrs const * const msrs)
         wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, 0x0ULL);
 }
 
-static int ppro_is_arch_pmu_msr(u64 msr_index, int *type, int *index)
+static int cf_check ppro_is_arch_pmu_msr(u64 msr_index, int *type, int *index)
 {
 	if ( (msr_index >= MSR_IA32_PERFCTR0) &&
             (msr_index < (MSR_IA32_PERFCTR0 + num_counters)) )
@@ -226,7 +226,7 @@ static int ppro_is_arch_pmu_msr(u64 msr_index, int *type, int *index)
         return 0;
 }
 
-static int ppro_allocate_msr(struct vcpu *v)
+static int cf_check ppro_allocate_msr(struct vcpu *v)
 {
 	struct vpmu_struct *vpmu = vcpu_vpmu(v);
 	struct arch_msr_pair *msr_content;
@@ -245,7 +245,7 @@ static int ppro_allocate_msr(struct vcpu *v)
 	return 0;
 }
 
-static void ppro_free_msr(struct vcpu *v)
+static void cf_check ppro_free_msr(struct vcpu *v)
 {
 	struct vpmu_struct *vpmu = vcpu_vpmu(v);
 
@@ -255,7 +255,8 @@ static void ppro_free_msr(struct vcpu *v)
 	vpmu_reset(vpmu, VPMU_PASSIVE_DOMAIN_ALLOCATED);
 }
 
-static void ppro_load_msr(struct vcpu *v, int type, int index, u64 *msr_content)
+static void cf_check ppro_load_msr(
+	struct vcpu *v, int type, int index, u64 *msr_content)
 {
 	struct arch_msr_pair *msrs = vcpu_vpmu(v)->context;
 	switch ( type )
@@ -269,7 +270,8 @@ static void ppro_load_msr(struct vcpu *v, int type, int index, u64 *msr_content)
 	}
 }
 
-static void ppro_save_msr(struct vcpu *v, int type, int index, u64 msr_content)
+static void cf_check ppro_save_msr(
+	struct vcpu *v, int type, int index, u64 msr_content)
 {
 	struct arch_msr_pair *msrs = vcpu_vpmu(v)->context;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232884.404109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxW-0002pr-28; Fri, 26 Nov 2021 13:08:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232884.404109; Fri, 26 Nov 2021 13:08:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxV-0002n5-KD; Fri, 26 Nov 2021 13:08:09 +0000
Received: by outflank-mailman (input) for mailman id 232884;
 Fri, 26 Nov 2021 13:08:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavn-0003W9-UN
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:24 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6af88e9-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:06:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6af88e9-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931982;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=qfUingeWCHJT51H02rxG/ZbTxmF7Rj5Q8LszhraqNPA=;
  b=J006ZpAr2/t9KwkDAhcOQS2Z2Jd38lUdDZvJuj0zOFita6rXCRICXrvc
   ss5+Rgxvsf0N9P3oHHrCcYqUcvmNHd8UooYEg1vWWgFZSDXuG5+aLA2dY
   j++QJjpsQA8WCIneEWf/pBiGeAr9O42412DkB+GHtgMUiyFZB8G2rGU0w
   Q=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: KXYoeP8jX1bI+Ae0aKL40CGzTIUxv4bCczKT3qQ/DpGuU7tl9lhapSAxM1OXKpHkRfliSfw/Uv
 OTxMIU5VyfbDGIVNQFb1NoZT+xcsd8JAB7ebJt6U+fluELXvKrPMvSI+6Vb4Z4gzF+tqP8+uNw
 bhfSrOkIHtS5IfbHy8fUZlZxu1P0afzxFze5c9k6jdplDfwO89IX5tu7vxKBamDvmpFPtIlcIt
 KuRRqowFUziHC9m6RqzeRX1fn71tTUjod9ZCRHUtG8WdFb+uS9yfWhAfDo30UQpI9ZKKIwUdUz
 RI6zajh7mDHwIC+yOp7Fd1oe
X-SBRS: 5.1
X-MesageID: 58193875
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Lfsn1qsSEZH49a5cJxwcrtVeS+fnVKNZMUV32f8akzHdYApBsoF/q
 tZmKW6Fbv3fZWqhfNB/b9+z8x4BvcPXy4drGVZkqSpmQSkR+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplnsHgRA0YAYH1hPVHbRpoEgZcYu5f0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5NIMmowMXwsZTVdEVYNIowGut6VuWjhdT5FhWqUl4wetj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKhMHMN2SzxKV/3TqgfXA9QvgQ54bHrC88v9sgXWQy3YVBRlQUkG0ydGph0j7V99BJ
 kg8/is1sbN05EGtVsP6XRCzvDiDpBF0c/h6HvA+6QqN4rHJ+AvfDW8BJgOtc/R/6pVwH2Zzk
 AbUwZW5XlSDrYF5V1q2q+eZpwKNFREJPDU8Zh8FailaoMDK9dRbYg30cv5vF6u8j9vQED72w
 iyXoCVWu4j/nfLnxI3gowmZ3mvESozhC1dsu16JBj7NAhZRPdb9P+SVBU7nAeGsxWpzZn2Ip
 zA6lseX94ji5rndxXXWEI3h8FxEjstp0QEwY3YzQPHNFBz3ohZPmLy8Bhklfy+F1e5eJFfUj
 Lf741852XOqFCLCgVVLS4ywEd826qPrCM7oUPvZBvIXPMMuJFHao3AyOxLLt4wIrKTKufpkU
 Xt8WZzxZUv29Iw9lGbmLwvj+eNDKt8CKZP7GsmgkkXPPUu2b3+JU7YVWGZinchihJ5oVD79q
 o4FX+PTkk03eLSnPkH/rN5CRXhXfCNTLc2n9KRqmhurf1MO9JcJUKSKn9vMuuVNwsxoqws/1
 i3nBxIDlgOg3SavxMfjQikLVY4DlK1X9RoTVRHA937xs5T6SYrwvqoZabUterwrqL5qwfJuF
 qFXcMScGPVfDD/A/m1FP5X6qYVjcjWthB6PYHX5MGRuIcY4Slyb4MLgcyvu6DIKUni9u/whr
 uDyzQjcW5cCGVhvVZ6EdPK1wlqtlnEBg+YuDVDQK9xedRy0oohnIiD8lNEtJMQIJUmRzzeWz
 V/OUxwZufPMs8k+99yQ3fKIqIKgEu1fGEtGHjaEsebqZHeCpmf6mN1OSueFezzZRVjYwqT6a
 LUH1ez4Pd0GgE1O79h2HYF0wP9s/NDovbJbkFhpRS2Zc1SxB7p8CXCaxs0T5LZVz7pUtAbqC
 EKC/t5WZeeANM//SQNDIQMkaqKI1O0OmymU5vMweR2o6Chy9buBcENTIxjT13ANcOoraNsok
 bU7pcobyw2jkR57YN+Jgxdd+3mIMnFdAb4ssYsXAdOzhwcmor2YjUcw1sMiDEmzVuhx
IronPort-HdrOrdr: A9a23:iSJhWqGgOw7FtXhYpLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58193875"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 11/65] xen: Annotate fnptr targets from call_rcu()
Date: Fri, 26 Nov 2021 12:33:52 +0000
Message-ID: <20211126123446.32324-12-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/hvm/mtrr.c       | 2 +-
 xen/arch/x86/hvm/vmsi.c       | 2 +-
 xen/arch/x86/mm/mem_sharing.c | 2 +-
 xen/arch/x86/percpu.c         | 2 +-
 xen/common/domain.c           | 4 ++--
 xen/common/radix-tree.c       | 2 +-
 xen/common/rcupdate.c         | 2 +-
 xen/common/sched/core.c       | 2 +-
 xen/xsm/flask/avc.c           | 2 +-
 9 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
index b3ef1bf54133..42f3d8319296 100644
--- a/xen/arch/x86/hvm/mtrr.c
+++ b/xen/arch/x86/hvm/mtrr.c
@@ -586,7 +586,7 @@ int hvm_get_mem_pinned_cacheattr(struct domain *d, gfn_t gfn,
     return rc;
 }
 
-static void free_pinned_cacheattr_entry(struct rcu_head *rcu)
+static void cf_check free_pinned_cacheattr_entry(struct rcu_head *rcu)
 {
     xfree(container_of(rcu, struct hvm_mem_pinned_cacheattr_range, rcu));
 }
diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index 13e2a190b439..2889575a2035 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -441,7 +441,7 @@ static void add_msixtbl_entry(struct domain *d,
     list_add_rcu(&entry->list, &d->arch.hvm.msixtbl_list);
 }
 
-static void free_msixtbl_entry(struct rcu_head *rcu)
+static void cf_check free_msixtbl_entry(struct rcu_head *rcu)
 {
     struct msixtbl_entry *entry;
 
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index 74d2869c0e6f..15e6a7ed814b 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -75,7 +75,7 @@ static DEFINE_SPINLOCK(shr_audit_lock);
 static DEFINE_RCU_READ_LOCK(shr_audit_read_lock);
 
 /* RCU delayed free of audit list entry */
-static void _free_pg_shared_info(struct rcu_head *head)
+static void cf_check _free_pg_shared_info(struct rcu_head *head)
 {
     xfree(container_of(head, struct page_sharing_info, rcu_head));
 }
diff --git a/xen/arch/x86/percpu.c b/xen/arch/x86/percpu.c
index eb3ba7bc8874..46460689b73d 100644
--- a/xen/arch/x86/percpu.c
+++ b/xen/arch/x86/percpu.c
@@ -45,7 +45,7 @@ struct free_info {
 };
 static DEFINE_PER_CPU(struct free_info, free_info);
 
-static void _free_percpu_area(struct rcu_head *head)
+static void cf_check _free_percpu_area(struct rcu_head *head)
 {
     struct free_info *info = container_of(head, struct free_info, rcu);
     unsigned int cpu = info->cpu;
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 2698dbda1398..a8b6ee59587c 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -365,7 +365,7 @@ static int __init cf_check parse_extra_guest_irqs(const char *s)
 }
 custom_param("extra_guest_irqs", parse_extra_guest_irqs);
 
-static void _free_pirq_struct(struct rcu_head *head)
+static void cf_check _free_pirq_struct(struct rcu_head *head)
 {
     xfree(container_of(head, struct pirq, rcu_head));
 }
@@ -1116,7 +1116,7 @@ void vcpu_end_shutdown_deferral(struct vcpu *v)
 }
 
 /* Complete domain destroy after RCU readers are not holding old references. */
-static void complete_domain_destroy(struct rcu_head *head)
+static void cf_check complete_domain_destroy(struct rcu_head *head)
 {
     struct domain *d = container_of(head, struct domain, rcu);
     struct vcpu *v;
diff --git a/xen/common/radix-tree.c b/xen/common/radix-tree.c
index 628a7e06988f..33b47748ae49 100644
--- a/xen/common/radix-tree.c
+++ b/xen/common/radix-tree.c
@@ -58,7 +58,7 @@ static struct radix_tree_node *rcu_node_alloc(void *arg)
 	return rcu_node ? &rcu_node->node : NULL;
 }
 
-static void _rcu_node_free(struct rcu_head *head)
+static void cf_check _rcu_node_free(struct rcu_head *head)
 {
 	struct rcu_node *rcu_node =
 		container_of(head, struct rcu_node, rcu_head);
diff --git a/xen/common/rcupdate.c b/xen/common/rcupdate.c
index f9dd2584a8b7..423d6b1d6d02 100644
--- a/xen/common/rcupdate.c
+++ b/xen/common/rcupdate.c
@@ -167,7 +167,7 @@ static int rsinterval = 1000;
 static atomic_t cpu_count = ATOMIC_INIT(0);
 static atomic_t pending_count = ATOMIC_INIT(0);
 
-static void rcu_barrier_callback(struct rcu_head *head)
+static void cf_check rcu_barrier_callback(struct rcu_head *head)
 {
     /*
      * We need a barrier making all previous writes visible to other cpus
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index cf1ba01b4d87..285de9ee2a19 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2798,7 +2798,7 @@ static int cpu_schedule_up(unsigned int cpu)
     return 0;
 }
 
-static void sched_res_free(struct rcu_head *head)
+static void cf_check sched_res_free(struct rcu_head *head)
 {
     struct sched_resource *sr = container_of(head, struct sched_resource, rcu);
 
diff --git a/xen/xsm/flask/avc.c b/xen/xsm/flask/avc.c
index 87ea38b7a0d0..e20c16504213 100644
--- a/xen/xsm/flask/avc.c
+++ b/xen/xsm/flask/avc.c
@@ -276,7 +276,7 @@ int avc_get_hash_stats(struct xen_flask_hash_stats *arg)
     return 0;
 }
 
-static void avc_node_free(struct rcu_head *rhead)
+static void cf_check avc_node_free(struct rcu_head *rhead)
 {
     struct avc_node *node = container_of(rhead, struct avc_node, rhead);
     xfree(node);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232885.404118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxX-00039J-SX; Fri, 26 Nov 2021 13:08:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232885.404118; Fri, 26 Nov 2021 13:08:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxX-00035W-0L; Fri, 26 Nov 2021 13:08:11 +0000
Received: by outflank-mailman (input) for mailman id 232885;
 Fri, 26 Nov 2021 13:08:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavr-0002zD-Qh
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:27 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8fd2f83-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:06:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8fd2f83-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931986;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=mCzjaOkn5BbOoEcopUe7WTJn31Et1DKHCsnFeiI7nEk=;
  b=c63xE59rmRwkgBgSnzCSydDt09D9EqApNKEbZs+foyyNRTtIE2x7A4Tv
   E8UGTz5FjqLF/RzCqIOiOy6jdivWdfjviwHY2BG5Jx2spl/2yC4hCYAHc
   tGUj2jh5DBsNExzuKPMkoUjW92XQ+ZAOMhm5nVs3X0R5YC1+mb8HX9Jlp
   k=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: CTBTXSicJyP10PojeuUE/4iFSsYI4LUQxEqKPWHbFG5/tCPVhOKDv8jc0MBfADjZBwKs5uPIGZ
 0FpDcsOxngyrsk3RJuJci5aipK+bmI3B2abPVwUEyv4l7BCHABJnkUzP64Uwiqvi/zD1/MB9x4
 009SpuOsCZ0iSfdVo9EMK72L5ozWdCnv9k8hnH8UcQXcMDQs96pChbd4+o0zc0uH0kS5tPQKAZ
 bNsClq33TkEL6PY9p5lkgQ/XaFO9+UVXXD63m1Xhg+W06SE+QoOz/uUJNX7COrqoeUn4+qVoUH
 OH4Dax9hvGU36zVb84LcTsbD
X-SBRS: 5.1
X-MesageID: 60695367
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:J5RZXquvqRJMrAh2x7OgLh7rTefnVJtZMUV32f8akzHdYApBsoF/q
 tZmKWzUbPiDYWHzetslb43np0kB6JSDzN8xTwFkqH01Hy1H+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Nplv4KcWDwmG4H3qOkCVB5IVB5xEp9dweqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6AP
 5RINGExM3wsZTVVOno9B54Dgd6woXjad2UHjGmz4pc4tj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO+ckxBC2xY/42DaUGW8DXnl+Z/MUr/ZjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSEhRqjBNzAJrVkg
 JTis5PFhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlUJ2K2M
 RON5Vg5CHpv0J2CNvQfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9UNc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:ro6YL6Po0936JcBcTvujsMiBIKoaSvp037Eqv3oRdfUzSL3hqy
 nOpoVj6faaskdzZJhNo7+90ey7MBfhHP1OkO8s1NWZLWvbUQKTRekIh+aP/9SjIVyYygc079
 YaT0EUMr3N5DZB4/oSmDPIduod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="60695367"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 37/65] x86/quirks: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:18 +0000
Message-ID: <20211126123446.32324-38-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/dmi_scan.c               | 10 +++++-----
 xen/arch/x86/hvm/quirks.c             |  2 +-
 xen/arch/x86/shutdown.c               |  2 +-
 xen/arch/x86/x86_64/mmconfig-shared.c |  8 ++++----
 4 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/dmi_scan.c b/xen/arch/x86/dmi_scan.c
index d27cd3450a29..81f80c053a7a 100644
--- a/xen/arch/x86/dmi_scan.c
+++ b/xen/arch/x86/dmi_scan.c
@@ -476,7 +476,7 @@ static void __init dmi_save_ident(const struct dmi_header *dm, int slot, int str
 #define NO_MATCH	{ DMI_NONE, NULL}
 #define MATCH		DMI_MATCH
 
-static int __init ich10_bios_quirk(const struct dmi_system_id *d)
+static int __init cf_check ich10_bios_quirk(const struct dmi_system_id *d)
 {
     u32 port, smictl;
 
@@ -499,14 +499,14 @@ static int __init ich10_bios_quirk(const struct dmi_system_id *d)
     return 0;
 }
 
-static __init int reset_videomode_after_s3(const struct dmi_blacklist *d)
+static __init int cf_check reset_videomode_after_s3(const struct dmi_blacklist *d)
 {
 	/* See wakeup.S */
 	acpi_video_flags |= 2;
 	return 0;
 }
 
-static __init int dmi_disable_acpi(const struct dmi_blacklist *d)
+static __init int cf_check dmi_disable_acpi(const struct dmi_blacklist *d)
 { 
 	if (!acpi_force) { 
 		printk(KERN_NOTICE "%s detected: acpi off\n",d->ident);
@@ -521,7 +521,7 @@ static __init int dmi_disable_acpi(const struct dmi_blacklist *d)
 /*
  * Limit ACPI to CPU enumeration for HT
  */
-static __init int force_acpi_ht(const struct dmi_blacklist *d)
+static __init int cf_check force_acpi_ht(const struct dmi_blacklist *d)
 { 
 	if (!acpi_force) { 
 		printk(KERN_NOTICE "%s detected: force use of acpi=ht\n", d->ident);
@@ -650,7 +650,7 @@ static const struct dmi_blacklist __initconstrel dmi_blacklist[] = {
  *	out of here.
  */
 
-static void __init dmi_decode(const struct dmi_header *dm)
+static void __init cf_check dmi_decode(const struct dmi_header *dm)
 {
 #ifdef DMI_DEBUG
 	const uint8_t *data = (const void *)dm;
diff --git a/xen/arch/x86/hvm/quirks.c b/xen/arch/x86/hvm/quirks.c
index 917356b1312c..2adab1f4b84b 100644
--- a/xen/arch/x86/hvm/quirks.c
+++ b/xen/arch/x86/hvm/quirks.c
@@ -25,7 +25,7 @@
 s8 __read_mostly hvm_port80_allowed = -1;
 boolean_param("hvm_port80", hvm_port80_allowed);
 
-static int __init dmi_hvm_deny_port80(const struct dmi_system_id *id)
+static int __init cf_check dmi_hvm_deny_port80(const struct dmi_system_id *id)
 {
     printk(XENLOG_WARNING "%s: port 0x80 access %s allowed for HVM guests\n",
            id->ident, hvm_port80_allowed > 0 ? "forcibly" : "not");
diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c
index 30985d36a612..7619544d14da 100644
--- a/xen/arch/x86/shutdown.c
+++ b/xen/arch/x86/shutdown.c
@@ -158,7 +158,7 @@ static void default_reboot_type(void)
         reboot_type = BOOT_ACPI;
 }
 
-static int __init override_reboot(const struct dmi_system_id *d)
+static int __init cf_check override_reboot(const struct dmi_system_id *d)
 {
     enum reboot_type type = (long)d->driver_data;
 
diff --git a/xen/arch/x86/x86_64/mmconfig-shared.c b/xen/arch/x86/x86_64/mmconfig-shared.c
index 2fa7f3f0bc4b..74b22b71a19c 100644
--- a/xen/arch/x86/x86_64/mmconfig-shared.c
+++ b/xen/arch/x86/x86_64/mmconfig-shared.c
@@ -62,7 +62,7 @@ static int __init cf_check parse_mmcfg(const char *s)
 }
 custom_param("mmcfg", parse_mmcfg);
 
-static const char __init *pci_mmcfg_e7520(void)
+static const char *__init cf_check pci_mmcfg_e7520(void)
 {
     u32 win;
     win = pci_conf_read16(PCI_SBDF(0, 0, 0, 0), 0xce);
@@ -84,7 +84,7 @@ static const char __init *pci_mmcfg_e7520(void)
     return "Intel Corporation E7520 Memory Controller Hub";
 }
 
-static const char __init *pci_mmcfg_intel_945(void)
+static const char *__init cf_check pci_mmcfg_intel_945(void)
 {
     u32 pciexbar, mask = 0, len = 0;
 
@@ -137,7 +137,7 @@ static const char __init *pci_mmcfg_intel_945(void)
     return "Intel Corporation 945G/GZ/P/PL Express Memory Controller Hub";
 }
 
-static const char __init *pci_mmcfg_amd_fam10h(void)
+static const char *__init cf_check pci_mmcfg_amd_fam10h(void)
 {
     uint32_t address;
     uint64_t base, msr_content;
@@ -190,7 +190,7 @@ static const char __init *pci_mmcfg_amd_fam10h(void)
     return "AMD Family 10h NB";
 }
 
-static const char __init *pci_mmcfg_nvidia_mcp55(void)
+static const char *__init cf_check pci_mmcfg_nvidia_mcp55(void)
 {
     static bool_t __initdata mcp55_checked;
     int bus, i;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232886.404122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxY-0003Jl-M5; Fri, 26 Nov 2021 13:08:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232886.404122; Fri, 26 Nov 2021 13:08:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxX-0003GL-S4; Fri, 26 Nov 2021 13:08:11 +0000
Received: by outflank-mailman (input) for mailman id 232886;
 Fri, 26 Nov 2021 13:08:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavF-0002zD-KQ
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:49 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9227ff5f-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:05:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9227ff5f-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931948;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=LFV0YxOEuIiuCG9iI5eNKk5hv6ynkvXZ8FKbseF1zyo=;
  b=A1IyxymbTVDa9ZMeZefHQcSm+ukEKsbWVTc+HR9jZaYXlJAPLOXR15lc
   +itVk6Zjays+GiYCK3gSFo857Sap6kc7d6bamJyLvqx9N7ehSawFKOpzW
   EVsR0QxIP7WIGnMMVEx6t9Bius3JKQ5vBE178rIuGwFoswcEOooXGzNHA
   s=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Q2YEL56UzM6ggU2Wf2ibE6MdCXcsbwTdC5Kj3RR/b0qIshnnNVIuD0y4PuDlIu7ndaSs4pYrNp
 e61zTTay7OW6wsxdA8sGVLZXojGgNEl1bCrVpvFnOMK407n93Afw75Yyb9geq4E6g71egX8nlW
 2NJUPJB/N6+ZolBXiBwdnWYObvoOOxCwS/M30UaCLkXMDqO4x91//bAtAyJVibP8qu8NdKYOFA
 Bb+7FAQwFB+fvMAujRFEUBmTwl5LA9b23XNvrEmrWvQGpGfum74NnwemIROUxy3haqKiaZM8V2
 A118EYJuLMxKhcdQMEbBhHKD
X-SBRS: 5.1
X-MesageID: 58696019
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:uEGppaL1vw/jpdHZFE+RHJIlxSXFcZb7ZxGr2PjKsXjdYENShmQDx
 jQWWTqOb/fbMGuheI1xO9y2p00BusDXz9ZrHgRlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2sho5u7
 pYTu6WCYgd5HvHJn9s/CBdXRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpg2JEQRa+PD
 yYfQWNEdx6eei9gAHEaOa8uuNannTqlczIN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wh
 EjL4mD4CREyL8GExHyO9XfErv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaDt8l3c
 hJOvHB09O5rqRLtHoKVswCETGCsmwdCRPwTTeMD2iqNmoqI5gGmJDMKQWsUADA5j/MeSTsv3
 16PutrmAz1zrbGYIU6gGqeoQSCaYnZMczJbDcMQZU5cuoS4/tlv5v7aZo87SPbdszHjJd3nL
 9lmRgAajq5bs8ME3r7TEbvv02P1/cihouLYC2zqsoOZAuFRONHNi2+AswGzARN8wGCxFQLpU
 J8swZX20Qz2JcvR/BFhuc1UdF1T296LMSfHnXlkFIQ7+jKm9haLJN4Lv2EgeRg4bphYIlcFh
 XM/XysKv/e/21PwMMdKj3+ZUZx2ncAM6/y5PhwrUja+SscoL1LWlM2fTUWRw3rsgCARfVIXY
 v+mnTKXJS9CU8xPlWPuL89EiOND7n1ulAv7GMGgpzz6gOX2WZJgYepcWLd4Rrtit/3sTcS82
 4s3CvZmPD0DCrCjOXeOrtZIRb3IRFBiba3LRwVsXrbrCmJb9KsJUpc9GJstJN5ombp7jODN8
 i3vU0NU0gOn13bGNR+LejZob7a2BcRzqncyPCoNO1e02id8PdbzvflHL5ZnL6M68OFDzOJvS
 6VXccu3HfkSGC/M/C4QbMehodU6Jgirnw+HIwGsfCM7I8x7XwXM99K9Jlnv+SACAzCZr8w7p
 7H8hArXTYBaH1ZpDdrMaeLpxFS05CBPlOV3VkrOA99SZESzr9Q6d32v1qc6epheJw/Cyz2W0
 xetLS0Z/eSd8ZUo9NTphLyfq9v7GeVJAUcHTXLQ6qy7NHeG8zP7k5NASuuBYRvUSHjwpPe5f
 exQwvzxbK8HkVJNv9YuGrpn1/tjtd7mprscxQV4BnTbKV+sD+o4cHWB2MBOsIxLx6NY5lTqC
 h7epIECNOXbIt7hHX4QOBEhP7aK2vwjkzXP6eg4fRfh7yht8bvbCUhfMnFgUsCGwGeZ5G/9/
 dochQ==
IronPort-HdrOrdr: A9a23:7FEcL6/XJ8dFQCzmIj1uk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re5cjztCWE7gr5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtBD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58696019"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 35/65] x86/mtrr: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:16 +0000
Message-ID: <20211126123446.32324-36-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

Most of mtrr/ looks to be compatibility for pre-64bit days.  It can probably
be pruned substantially.
---
 xen/arch/x86/cpu/mtrr/generic.c | 18 ++++++++++--------
 xen/arch/x86/cpu/mtrr/mtrr.h    |  8 ++++----
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index 7cf4cd01f3f6..47aaf76226e0 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -287,7 +287,8 @@ static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
 	}
 }
 
-int generic_get_free_region(unsigned long base, unsigned long size, int replace_reg)
+int cf_check generic_get_free_region(
+    unsigned long base, unsigned long size, int replace_reg)
 /*  [SUMMARY] Get a free MTRR.
     <base> The starting (base) address of the region.
     <size> The size (in bytes) of the region.
@@ -309,8 +310,8 @@ int generic_get_free_region(unsigned long base, unsigned long size, int replace_
 	return -ENOSPC;
 }
 
-static void generic_get_mtrr(unsigned int reg, unsigned long *base,
-			     unsigned long *size, mtrr_type *type)
+static void cf_check generic_get_mtrr(
+    unsigned int reg, unsigned long *base, unsigned long *size, mtrr_type *type)
 {
 	uint64_t _mask, _base;
 
@@ -499,7 +500,7 @@ static void post_set(bool pge)
 	spin_unlock(&set_atomicity_lock);
 }
 
-static void generic_set_all(void)
+static void cf_check generic_set_all(void)
 {
 	unsigned long mask, count;
 	unsigned long flags;
@@ -522,8 +523,8 @@ static void generic_set_all(void)
 	}
 }
 
-static void generic_set_mtrr(unsigned int reg, unsigned long base,
-			     unsigned long size, mtrr_type type)
+static void cf_check generic_set_mtrr(
+    unsigned int reg, unsigned long base, unsigned long size, mtrr_type type)
 /*  [SUMMARY] Set variable MTRR register on the local CPU.
     <reg> The register to set.
     <base> The base address of the region.
@@ -566,7 +567,8 @@ static void generic_set_mtrr(unsigned int reg, unsigned long base,
 	local_irq_restore(flags);
 }
 
-int generic_validate_add_page(unsigned long base, unsigned long size, unsigned int type)
+int cf_check generic_validate_add_page(
+    unsigned long base, unsigned long size, unsigned int type)
 {
 	unsigned long lbase, last;
 
@@ -584,7 +586,7 @@ int generic_validate_add_page(unsigned long base, unsigned long size, unsigned i
 }
 
 
-static int generic_have_wrcomb(void)
+static int cf_check generic_have_wrcomb(void)
 {
 	unsigned long config;
 	rdmsrl(MSR_MTRRcap, config);
diff --git a/xen/arch/x86/cpu/mtrr/mtrr.h b/xen/arch/x86/cpu/mtrr/mtrr.h
index 9a406e6f6199..c7fd44daab27 100644
--- a/xen/arch/x86/cpu/mtrr/mtrr.h
+++ b/xen/arch/x86/cpu/mtrr/mtrr.h
@@ -24,10 +24,10 @@ struct mtrr_ops {
 	int	(*have_wrcomb)(void);
 };
 
-extern int generic_get_free_region(unsigned long base, unsigned long size,
-				   int replace_reg);
-extern int generic_validate_add_page(unsigned long base, unsigned long size,
-				     unsigned int type);
+int cf_check generic_get_free_region(
+    unsigned long base, unsigned long size, int replace_reg);
+int cf_check generic_validate_add_page(
+    unsigned long base, unsigned long size, unsigned int type);
 
 extern const struct mtrr_ops generic_mtrr_ops;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232888.404132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxa-0003eS-Et; Fri, 26 Nov 2021 13:08:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232888.404132; Fri, 26 Nov 2021 13:08:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxZ-0003Y5-Ai; Fri, 26 Nov 2021 13:08:13 +0000
Received: by outflank-mailman (input) for mailman id 232888;
 Fri, 26 Nov 2021 13:08:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqav0-0002zD-7P
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:34 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 891388cb-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:05:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 891388cb-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931933;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=2MzOrJ78BogsSqIrTSJWk1tHUhlV8OhibZYGX9BCTw0=;
  b=Zut86zSFbISjSTEUM49c3TAerWLnbQ6vqUtqAMnPpO/JLYBhr79JjbbO
   4SUtVuRRmnHYg4EPWtie7Si80BGqbL1zm8rBW/KNXEDqTQV4Gd2Z0PXxn
   gJxeGYhyIw2zDeQ/tbujWt/J+50vIVHdZDQXQQQduXq8kzddApsr1dsTO
   E=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 2D0+zxpoXeTsNce9F3bY+AfJtSywlElzy1dSTtNoDLadx2dNuFopbHsfi0Vxp6unCB/RfMTC7U
 ek4qKV4Su8ZeBkRXPQ9WNE3Cvasyc8hmbruIV8bxO0V7Qro9SrOverOj+gdOGTXFt+DZ/Z4Iv6
 QQdhZ+iB1MAg5rPJIdiw+LkogCRPDEUn1YCBvV4wqDhIANZUIfDrdNncclDFx7qpp2AgepJfSJ
 xgAR54rPwjKTBrx/LMJsPt8SdPqK+0jjE76afd7d3r1GzlBIjZHV7SugcKxntCCRbjzyb/l61t
 HYTHHgfEp1zPw51+rsRFR4mn
X-SBRS: 5.1
X-MesageID: 58696001
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:3QtIjqxKyXKoaLxQpH56t+f6wSrEfRIJ4+MujC+fZmUNrF6WrkUAz
 mVMWW2GOa2KMGOkLY10bo208BxV68PSztQ2TFNr/yAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRn2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt8hzk
 5IUhL62cydzY/Xgqc0jXRYJTD4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY25AQTKiGP
 5NxhTxHVEudOhJtCggsVNFkuveGi3nTeQV6gQfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz
 krk1WnkBhARNPSE1CGItHmrg4fnjS79HY4fCrC83vprm0GIgHweDgUMUlm2quX/jVSxM++zM
 GRNpHBo9/JrshX2EJ+tBHVUvUJooDYEWYEXStwY7jutkPeMzzewOGYLH2FePYlOWNANeRQm0
 VqAntXMDDNpsaGIRX/1yop4vQ9eKgBOczZcOHZsoR8tpoC6/dpt1k6nosNLSfbt1rXI9SfML
 ydmRcTUr5EaloY12qqy5jgraBr898GSHmbZCug6N19JDz+Vhqb5OORECnCBtJ6sybp1qHHa5
 xDofODEsYgz4WmlznDlfQn0NOjBCwy5GDPdm0VzOJIq6i6g/XWuFagJvmohdBk0bZdYJ2OyC
 KM2he+3zMQIVJdNRfUqC79d9uxwlfSwfTgbfqy8giVyjmhZK1bcoXAGib+41GHxikk8+ZzTy
 r/AGftA+U0yUPw9pBLvHr91+eZymkgWmDOCLbimnk/P+efPOxaopUItbQLmghYRt/jf/m04M
 r93aqO39vmoeLGkP3SMr9dMdQtiwLpSLcmelvG7v9WremJOcFzNwdeIqV/4U4A6zalTiMnS+
 XSxBh1RxFbl3CWVIgSWcHFzLrjoWM8n/348OCUtO3eu2mQiPtnzvPtOKcNvcOl17vFnwN51U
 +IBJ5eKDMNQR2mV4D8ad5T88tBvLUz5mQKUMiO5SzEjZJo8FRfR89rpc1K3pikDBya6r+Ukp
 Lik2l+JSJYPXV06Xs3XdOiu3xW6un1EwLB+WE7BI99yfkTw8dc1d3yt36Fve8xVcEfN3DqX0
 QqSECw0n+iVrt9n6sTNiICFs5ytT7l0EH1FEjSJ9r2xLyTboDaumNcSTOaScDnBf2ro46H+N
 /5NxvTxPfBbzlZHt41wT+Riwa4kvoa9orZbykJvHWnRbkTtAbRleyHU0c5Kv6xL57lYpQrpB
 R7fpogEYe2EaJH/DVocBAs5deDSh/gblw7b4ekxPEintjR8+6CKUBkKMhSB4MCHwGCZ7G/xL
 T8dhfMr
IronPort-HdrOrdr: A9a23:8+LOtqlB0wn00/6dVmmWJt3E8yTpDfIU3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE8Qr5OUtQ/+xoV5PhfZqxz/JICMwqTNKftWrdyQyVxeNZnOjfKlTbckWUnINgPO
 VbAsxD4bXLfCBHZK3BgTVQfexO/DD+ytHLudvj
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58696001"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 49/65] x86/psr: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:30 +0000
Message-ID: <20211126123446.32324-50-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/psr.c | 33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 6c9cabf3843d..ccb761998f9a 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -282,7 +282,7 @@ static enum psr_feat_type psr_type_to_feat_type(enum psr_type type)
 }
 
 /* Implementation of allocation features' functions. */
-static bool cat_check_cbm(const struct feat_node *feat, uint32_t *val)
+static bool cf_check cat_check_cbm(const struct feat_node *feat, uint32_t *val)
 {
     unsigned int first_bit, zero_bit;
     unsigned int cbm_len = feat->cat.cbm_len;
@@ -417,8 +417,8 @@ static bool mba_init_feature(const struct cpuid_leaf *regs,
     return true;
 }
 
-static bool cat_get_feat_info(const struct feat_node *feat,
-                              uint32_t data[], unsigned int array_len)
+static bool cf_check cat_get_feat_info(
+    const struct feat_node *feat, uint32_t data[], unsigned int array_len)
 {
     if ( array_len != PSR_INFO_ARRAY_SIZE )
         return false;
@@ -431,8 +431,8 @@ static bool cat_get_feat_info(const struct feat_node *feat,
 }
 
 /* L3 CAT props */
-static void l3_cat_write_msr(unsigned int cos, uint32_t val,
-                             enum psr_type type)
+static void cf_check l3_cat_write_msr(
+    unsigned int cos, uint32_t val, enum psr_type type)
 {
     wrmsrl(MSR_IA32_PSR_L3_MASK(cos), val);
 }
@@ -447,8 +447,8 @@ static const struct feat_props l3_cat_props = {
 };
 
 /* L3 CDP props */
-static bool l3_cdp_get_feat_info(const struct feat_node *feat,
-                                 uint32_t data[], uint32_t array_len)
+static bool cf_check l3_cdp_get_feat_info(
+    const struct feat_node *feat, uint32_t data[], uint32_t array_len)
 {
     if ( !cat_get_feat_info(feat, data, array_len) )
         return false;
@@ -458,8 +458,8 @@ static bool l3_cdp_get_feat_info(const struct feat_node *feat,
     return true;
 }
 
-static void l3_cdp_write_msr(unsigned int cos, uint32_t val,
-                             enum psr_type type)
+static void cf_check l3_cdp_write_msr(
+    unsigned int cos, uint32_t val, enum psr_type type)
 {
     wrmsrl(((type == PSR_TYPE_L3_DATA) ?
             MSR_IA32_PSR_L3_MASK_DATA(cos) :
@@ -478,8 +478,8 @@ static const struct feat_props l3_cdp_props = {
 };
 
 /* L2 CAT props */
-static void l2_cat_write_msr(unsigned int cos, uint32_t val,
-                             enum psr_type type)
+static void cf_check l2_cat_write_msr(
+    unsigned int cos, uint32_t val, enum psr_type type)
 {
     wrmsrl(MSR_IA32_PSR_L2_MASK(cos), val);
 }
@@ -494,8 +494,8 @@ static const struct feat_props l2_cat_props = {
 };
 
 /* MBA props */
-static bool mba_get_feat_info(const struct feat_node *feat,
-                              uint32_t data[], unsigned int array_len)
+static bool cf_check mba_get_feat_info(
+    const struct feat_node *feat, uint32_t data[], unsigned int array_len)
 {
     ASSERT(array_len == PSR_INFO_ARRAY_SIZE);
 
@@ -508,13 +508,14 @@ static bool mba_get_feat_info(const struct feat_node *feat,
     return true;
 }
 
-static void mba_write_msr(unsigned int cos, uint32_t val,
-                          enum psr_type type)
+static void cf_check mba_write_msr(
+    unsigned int cos, uint32_t val, enum psr_type type)
 {
     wrmsrl(MSR_IA32_PSR_MBA_MASK(cos), val);
 }
 
-static bool mba_sanitize_thrtl(const struct feat_node *feat, uint32_t *thrtl)
+static bool cf_check mba_sanitize_thrtl(
+    const struct feat_node *feat, uint32_t *thrtl)
 {
     /*
      * Per SDM (chapter "Memory Bandwidth Allocation Configuration"):
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232889.404139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxb-0003y9-SZ; Fri, 26 Nov 2021 13:08:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232889.404139; Fri, 26 Nov 2021 13:08:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxa-0003tz-T6; Fri, 26 Nov 2021 13:08:14 +0000
Received: by outflank-mailman (input) for mailman id 232889;
 Fri, 26 Nov 2021 13:08:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqav1-0003W9-Dw
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:35 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 872dc6a3-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:30 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 872dc6a3-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931930;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=BQp5LAqKi9Mysj7MTKO9IkQnzJYceTwiMMvVtxZlU9w=;
  b=PaouKdFrjJE5h2uXZxUnIFFL+OhEG+pK6Wn4Zt7M4aFP+skezcpHTQKO
   4OQaVO/cbiBFqsR52cS5J3TFdNb5XEU5D9RZYSaSoxjCe3vKCd9IVumST
   dRVdGY8BF3LO+3WYytqb74U/R/MgtrJKIVEwWIXtJ37Cmtfp6J759sMFw
   M=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: r3rAfdmdu4PgYhns2nMOUSy/qbByDM1l4Opw1udkMe1l6L6GUGLdxGUKwtmdNFt6nJ0Le6i12H
 Zh0YLipD11tOMHFsNSW9Tz6L5fbA9kAKDs4WXxgInWHvFn42XCQSQNcjDCKUCy8AiREoMm3a/t
 YA79EVhM8A3WjxZDOv4HQ7m/9ZfBhn+7Jkd4Ce6wvFLoVRThvgj9JGurOhW6oTMMn5xgIA7e8d
 CiFrsnLZEJrb26LkJuT1h0hjHR45Bcj6KaT4tgyFvw+RoyiE+MHZM4mIcxXiTPi9SKO9D265im
 Z/rL3mVttoswlFDABxZ1CGF1
X-SBRS: 5.1
X-MesageID: 58676392
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:B2dizKu4EHfxiP0JpdPOvkX+x+fnVJtZMUV32f8akzHdYApBsoF/q
 tZmKWyFbK7eZ2vyeIp/bY+09E5XscDUnIQ3SQdtqH9hH3kV+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npli72aZCANF4v3gulaTUR5FwxmFJVU9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5RGN2E+NnwsZTVea3wuJ8x9uN2h3EOiKh0IpgOljrIotj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO9Mbwiyq7oPy2ByUQXZZbzpscPUepsBjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSEhRqjBNzAJrVkg
 JTis5PFhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlUJ2K2M
 RON5Vg5CHpv0J2CNvQfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9YNc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:9e+Kv6PnpClXvsBcTvmjsMiBIKoaSvp037Eqv3oedfUzSL3gqy
 nOpoV86faaslYssR0b9exofZPwJE80lqQFhrX5X43SPzUO0VHAROoJgLcKgQeQfxEWntQtrZ
 uIGJIeNDSfNzdHZL7BkWuFL+o=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676392"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 64/65] x86/efi: Disable CET-IBT around Runtime Services calls
Date: Fri, 26 Nov 2021 12:34:45 +0000
Message-ID: <20211126123446.32324-65-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

At least one TigerLake NUC has UEFI firmware which isn't CET-IBT compatible.
Read under a function pointer to see whether an endbr64 instruction is
present, and use this as a heuristic.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

This was disappointing to discover.  I've pestered some folk and maybe
something will improve in due course, but it remains an open question how best
to discover that Runtime Services are CET-IBT compatible.
---
 xen/arch/x86/efi/stub.c  |  2 ++
 xen/common/efi/boot.c    |  6 ++++++
 xen/common/efi/runtime.c | 17 +++++++++++++++++
 xen/include/xen/efi.h    |  1 +
 4 files changed, 26 insertions(+)

diff --git a/xen/arch/x86/efi/stub.c b/xen/arch/x86/efi/stub.c
index 998493262641..5e44913e52db 100644
--- a/xen/arch/x86/efi/stub.c
+++ b/xen/arch/x86/efi/stub.c
@@ -11,6 +11,8 @@
 #include <efi/efidevp.h>
 #include <efi/efiapi.h>
 
+bool __initdata efi_no_cet_ibt;
+
 /*
  * Here we are in EFI stub. EFI calls are not supported due to lack
  * of relevant functionality in compiler and/or linker.
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index f5af71837d5a..2c7f86f4f534 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -735,6 +735,12 @@ static void __init efi_init(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTabl
 
     StdOut = SystemTable->ConOut;
     StdErr = SystemTable->StdErr ?: StdOut;
+
+    /*
+     * Heuristic.  Look under an arbitrary function pointer to see if UEFI was
+     * compiled with CET-IBT support.  Experimentally some are not.
+     */
+    efi_no_cet_ibt = memcmp(efi_rs->GetTime, "\xf3\x0f\x1e\xfa", 4) != 0;
 }
 
 static void __init efi_console_set_mode(void)
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index d2fdc28df3e0..ef54863542db 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -21,6 +21,7 @@ struct efi_rs_state {
   * don't strictly need that.
   */
  unsigned long __aligned(32) cr3;
+    unsigned long msr_s_cet;
 #endif
 };
 
@@ -61,6 +62,7 @@ UINTN __read_mostly efi_apple_properties_len;
 
 /* Bit field representing available EFI features/properties. */
 unsigned int efi_flags;
+bool __read_mostly efi_no_cet_ibt;
 
 struct efi __read_mostly efi = {
 	.acpi   = EFI_INVALID_TABLE_ADDR,
@@ -113,6 +115,17 @@ struct efi_rs_state efi_rs_enter(void)
 
     switch_cr3_cr4(mfn_to_maddr(efi_l4_mfn), read_cr4());
 
+    /*
+     * If UEFI doesn't appear to be CET-IBT compatible, stash and clobber
+     * ENDBR_EN.  Always read the current CET setting, because CET-SS isn't
+     * configured until very late on the BSP.
+     */
+    if ( cpu_has_xen_ibt && efi_no_cet_ibt )
+    {
+        rdmsrl(MSR_S_CET, state.msr_s_cet);
+        wrmsrl(MSR_S_CET, state.msr_s_cet & ~CET_ENDBR_EN);
+    }
+
     return state;
 }
 
@@ -122,6 +135,10 @@ void efi_rs_leave(struct efi_rs_state *state)
 
     if ( !state->cr3 )
         return;
+
+    if ( state->msr_s_cet )
+        wrmsrl(MSR_S_CET, state->msr_s_cet);
+
     switch_cr3_cr4(state->cr3, read_cr4());
     if ( is_pv_vcpu(curr) && !is_idle_vcpu(curr) )
     {
diff --git a/xen/include/xen/efi.h b/xen/include/xen/efi.h
index 94a7e547f97b..8c14f7f18718 100644
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -30,6 +30,7 @@ union compat_pf_efi_info;
 
 struct xenpf_efi_runtime_call;
 struct compat_pf_efi_runtime_call;
+extern bool efi_no_cet_ibt;
 
 bool efi_enabled(unsigned int feature);
 void efi_init_memory(void);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232890.404149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxe-0004OL-90; Fri, 26 Nov 2021 13:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232890.404149; Fri, 26 Nov 2021 13:08:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxc-0004GU-MA; Fri, 26 Nov 2021 13:08:16 +0000
Received: by outflank-mailman (input) for mailman id 232890;
 Fri, 26 Nov 2021 13:08:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqav5-0003W9-E8
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:39 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8aa86722-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8aa86722-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931935;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=eytoyY1MzG0tl/bk0TOOzujLGnc7vJSPTvWtmGIYixE=;
  b=ZjNROnfUeYE/cW1nYFrzIvkp9Hs8liQdojrXHJWu9EhasijitfdC74t0
   lILn9e1fyDw5jPJX8D4hgYVDm3dlGpRASGFKkrBzfWESwKFtYuta49rDX
   vrhwrTOWGhIwWzMkMdv8gy/sToFwbotm0Yj2VN/Rg2Vokcoi9gMCTh+z0
   s=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: kWN/RgKQoGE/jGDWqtw6TFykhPetduO7zsGvLarezDqHrxDktXpbGxm3fjA5AjcYCuQ6NkHZLZ
 ymYXwc7D6QJU7DP8DWNryqW1gdo662GNEIAgzYeFczjtJile9uyWqkBDFDotPXjUMjn8FvlWNQ
 pf894DprJP/Cmif3Iotl0OV0/NF6+afJZHqCh8BahcZ8RYRphmiaWqxe4eQDFYUlRJBmP1gBdJ
 UZnI6l2WmS9n5omnE0wYbsq+CnhMQGBHs4G9DxJBZpBl9ZDOyU1jQrNKD7QC/o81j9VFoaPT1Q
 Zyk6CSsTqjQyAJr7YGpOtO0A
X-SBRS: 5.1
X-MesageID: 58193821
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:qKW+7qj6R8eNCXYsYWuGSrUsX161rRcKZh0ujC45NGQN5FlHY01je
 htvX22AP6qPYmH0fIh+Oom/9UsDu5XXytUxSgA9/n03FH4b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy34Dja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /18jt+SYDYGEZaWp/k5Ax0DFn11JJZJreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNauOP
 ptCOWA2BPjGSwRAF3VHF54XoMOt3Efdcg9elHi6hoNitgA/yyQuieOwYbI5YOeiWsF9jkue4
 GXc8AzRIDsXKdiewjqt6W+3i6nEmiaTcJIfEvi0++BnhHWXx3cPE1sGWF2ju/67h0WiHdVFJ
 CQpFjEG9PZoshbxF5+kAkP+8CXsUgMgt8R4ItZ5yii85YXvuTmEIjgAFTsdY8Udu5pjLdA17
 WOhk9TsDD1plbSaT3OB67uZxQ+P1TgpwXwqPnFdE1ZcizX3iMRq10+UEI4/eEKgpoStQWmY/
 tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtQezARVodt/xory9U
 J4swJP2AAcmV8zlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkybZZaJGC4P
 BGP4mu9AaO/2lPxNsebhKrrVqwXIVXIT4y5Bpg4kPISCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDlJI5fsLXkJIeSJRoxZybXF+
 G+TQEhdxAatjHHLM1zSOHtidKnuTdB0qndiZX4gOlOh2n4CZ4ez7fhAK8trLOd/rOEzn+RpS
 /QletmbBqgdQDrw5DlAP4L2q5ZvdUr3iFvWbTalejU2Y7VpWxfNpo3/ZgLq+SRXVni3uMIyr
 qeOzATeRZZfFQ1uANyPMKCkzk+rvGhbk+V3BhOaLt5WcUTq0Y5rNy2u0aNnf5BScU3On2LI2
 RyXDBEUofj2j7U0qNSZ17qZq4qJEvdlGhYIFWfs8rvrZzLR+XCuwNEcXb/QLyzdTm795I6re
 f5Rk6PnKPQCkVtH79h8HrJswf5s7tfjveYHnAFtHXGNZFW3ELJwZHKB2JAX5KFKw7ZYvyqwW
 16OpYYGaenYZpu9HQ5DPhchY8SCyeoQy2vb4vkCKUnn4DN6oeicWkJIMhjQ0CFQIdOZ6m/+L
 TvNbCLO1zGCtw==
IronPort-HdrOrdr: A9a23:kR7Rwq0zy0udtazHlimnjAqjBIokLtp133Aq2lEZdPRUGvb3qy
 nIpoVj6faUskd2ZJhOo7C90cW7LU80sKQFhLX5Xo3SOzUO2lHYT72KhLGKq1aLdhEWtNQtsZ
 uIG5IOcOEYZmIasS+V2maF+q4bsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58193821"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 39/65] x86/mce: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:20 +0000
Message-ID: <20211126123446.32324-40-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/cpu/mcheck/mce.c       |  8 ++++----
 xen/arch/x86/cpu/mcheck/mce.h       |  2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c   |  9 ++++----
 xen/arch/x86/cpu/mcheck/mce_amd.h   |  4 ++--
 xen/arch/x86/cpu/mcheck/mce_intel.c | 41 +++++++++++++++++--------------------
 5 files changed, 31 insertions(+), 33 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 3467e0f1a315..275c54be7c0f 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -75,7 +75,7 @@ static int __init cf_check mce_set_verbosity(const char *str)
 custom_param("mce_verbosity", mce_set_verbosity);
 
 /* Handle unconfigured int18 (should never happen) */
-static void unexpected_machine_check(const struct cpu_user_regs *regs)
+static void cf_check unexpected_machine_check(const struct cpu_user_regs *regs)
 {
     console_force_unlock();
     printk("Unexpected Machine Check Exception\n");
@@ -469,7 +469,7 @@ static int mce_urgent_action(const struct cpu_user_regs *regs,
 }
 
 /* Shared #MC handler. */
-void mcheck_cmn_handler(const struct cpu_user_regs *regs)
+void cf_check mcheck_cmn_handler(const struct cpu_user_regs *regs)
 {
     static DEFINE_MCE_BARRIER(mce_trap_bar);
     static atomic_t severity_cpu = ATOMIC_INIT(-1);
@@ -1684,7 +1684,7 @@ long cf_check do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
 }
 
 int mcinfo_dumpped;
-static int x86_mcinfo_dump_panic(mctelem_cookie_t mctc)
+static int cf_check x86_mcinfo_dump_panic(mctelem_cookie_t mctc)
 {
     struct mc_info *mcip = mctelem_dataptr(mctc);
 
@@ -1801,7 +1801,7 @@ static enum mce_result mce_action(const struct cpu_user_regs *regs,
  * should be committed for dom0 consumption, 0 if it should be
  * dismissed.
  */
-static int mce_delayed_action(mctelem_cookie_t mctc)
+static int cf_check mce_delayed_action(mctelem_cookie_t mctc)
 {
     enum mce_result result;
     int ret = 0;
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index 195362691904..535d0abf8f9b 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -70,7 +70,7 @@ extern void x86_mce_vector_register(x86_mce_vector_t);
  * Common generic MCE handler that implementations may nominate
  * via x86_mce_vector_register.
  */
-extern void mcheck_cmn_handler(const struct cpu_user_regs *regs);
+void cf_check mcheck_cmn_handler(const struct cpu_user_regs *regs);
 
 /* Register a handler for judging whether mce is recoverable. */
 typedef bool (*mce_recoverable_t)(uint64_t status);
diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 279a8e6f122d..d7ae8919df77 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -113,7 +113,7 @@ mc_ec2type(uint16_t errorcode)
     return 0;
 }
 
-bool mc_amd_recoverable_scan(uint64_t status)
+bool cf_check mc_amd_recoverable_scan(uint64_t status)
 {
     bool ret = false;
     enum mc_ec_type ectype;
@@ -143,7 +143,7 @@ bool mc_amd_recoverable_scan(uint64_t status)
     return ret;
 }
 
-bool mc_amd_addrcheck(uint64_t status, uint64_t misc, int addrtype)
+bool cf_check mc_amd_addrcheck(uint64_t status, uint64_t misc, int addrtype)
 {
     enum mc_ec_type ectype;
     uint16_t errorcode;
@@ -216,7 +216,7 @@ static void mcequirk_amd_apply(enum mcequirk_amd_flags flags)
     }
 }
 
-static struct mcinfo_extended *
+static struct mcinfo_extended *cf_check
 amd_f10_handler(struct mc_info *mi, uint16_t bank, uint64_t status)
 {
     struct mcinfo_extended *mc_ext;
@@ -252,7 +252,8 @@ amd_f10_handler(struct mc_info *mi, uint16_t bank, uint64_t status)
     return mc_ext;
 }
 
-static bool amd_need_clearbank_scan(enum mca_source who, uint64_t status)
+static bool cf_check amd_need_clearbank_scan(
+    enum mca_source who, uint64_t status)
 {
     if ( who != MCA_MCE_SCAN )
         return true;
diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.h b/xen/arch/x86/cpu/mcheck/mce_amd.h
index 67c45454707d..c12c25d74567 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.h
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.h
@@ -1,7 +1,7 @@
 #ifndef _MCHECK_AMD_H
 #define _MCHECK_AMD_H
 
-bool mc_amd_recoverable_scan(uint64_t status);
-bool mc_amd_addrcheck(uint64_t status, uint64_t misc, int addrtype);
+bool cf_check mc_amd_recoverable_scan(uint64_t status);
+bool cf_check mc_amd_addrcheck(uint64_t status, uint64_t misc, int addrtype);
 
 #endif
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index f587018cd2d2..9f8b2865c206 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -271,12 +271,13 @@ static void intel_memerr_dhandler(
     mc_memerr_dhandler(binfo, result, regs);
 }
 
-static bool intel_srar_check(uint64_t status)
+static bool cf_check intel_srar_check(uint64_t status)
 {
     return (intel_check_mce_type(status) == intel_mce_ucr_srar);
 }
 
-static bool intel_checkaddr(uint64_t status, uint64_t misc, int addrtype)
+static bool cf_check intel_checkaddr(
+    uint64_t status, uint64_t misc, int addrtype)
 {
     if ( !(status & MCi_STATUS_ADDRV) ||
          !(status & MCi_STATUS_MISCV) ||
@@ -287,10 +288,9 @@ static bool intel_checkaddr(uint64_t status, uint64_t misc, int addrtype)
     return (addrtype == MC_ADDR_PHYSICAL);
 }
 
-static void intel_srar_dhandler(
-             struct mca_binfo *binfo,
-             enum mce_result *result,
-             const struct cpu_user_regs *regs)
+static void cf_check intel_srar_dhandler(
+    struct mca_binfo *binfo, enum mce_result *result,
+    const struct cpu_user_regs *regs)
 {
     uint64_t status = binfo->mib->mc_status;
 
@@ -306,15 +306,14 @@ static void intel_srar_dhandler(
     }
 }
 
-static bool intel_srao_check(uint64_t status)
+static bool cf_check intel_srao_check(uint64_t status)
 {
     return (intel_check_mce_type(status) == intel_mce_ucr_srao);
 }
 
-static void intel_srao_dhandler(
-             struct mca_binfo *binfo,
-             enum mce_result *result,
-             const struct cpu_user_regs *regs)
+static void cf_check intel_srao_dhandler(
+    struct mca_binfo *binfo, enum mce_result *result,
+    const struct cpu_user_regs *regs)
 {
     uint64_t status = binfo->mib->mc_status;
 
@@ -333,15 +332,14 @@ static void intel_srao_dhandler(
     }
 }
 
-static bool intel_default_check(uint64_t status)
+static bool cf_check intel_default_check(uint64_t status)
 {
     return true;
 }
 
-static void intel_default_mce_dhandler(
-             struct mca_binfo *binfo,
-             enum mce_result *result,
-             const struct cpu_user_regs * regs)
+static void cf_check intel_default_mce_dhandler(
+    struct mca_binfo *binfo, enum mce_result *result,
+    const struct cpu_user_regs * regs)
 {
     uint64_t status = binfo->mib->mc_status;
     enum intel_mce_type type;
@@ -360,10 +358,9 @@ static const struct mca_error_handler intel_mce_dhandlers[] = {
     {intel_default_check, intel_default_mce_dhandler}
 };
 
-static void intel_default_mce_uhandler(
-             struct mca_binfo *binfo,
-             enum mce_result *result,
-             const struct cpu_user_regs *regs)
+static void cf_check intel_default_mce_uhandler(
+    struct mca_binfo *binfo, enum mce_result *result,
+    const struct cpu_user_regs *regs)
 {
     uint64_t status = binfo->mib->mc_status;
     enum intel_mce_type type;
@@ -396,7 +393,7 @@ static const struct mca_error_handler intel_mce_uhandlers[] = {
  * 3) ser_support = 1, SRAO, UC = 1, S = 1, AR = 0, [EN = 1]
  */
 
-static bool intel_need_clearbank_scan(enum mca_source who, u64 status)
+static bool cf_check intel_need_clearbank_scan(enum mca_source who, u64 status)
 {
     if ( who == MCA_CMCI_HANDLER )
     {
@@ -453,7 +450,7 @@ static bool intel_need_clearbank_scan(enum mca_source who, u64 status)
  * 4) SRAO ser_support = 1, PCC = 0, S = 1, AR = 0, EN = 1 [UC = 1]
  * 5) UCNA ser_support = 1, OVER = 0, EN = 1, PCC = 0, S = 0, AR = 0, [UC = 1]
  */
-static bool intel_recoverable_scan(uint64_t status)
+static bool cf_check intel_recoverable_scan(uint64_t status)
 {
 
     if ( !(status & MCi_STATUS_UC ) )
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232892.404163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxg-0004n8-V5; Fri, 26 Nov 2021 13:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232892.404163; Fri, 26 Nov 2021 13:08:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxf-0004iE-1A; Fri, 26 Nov 2021 13:08:19 +0000
Received: by outflank-mailman (input) for mailman id 232892;
 Fri, 26 Nov 2021 13:08:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavA-0002zD-U5
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:45 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f4a651c-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:05:42 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f4a651c-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931942;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=PgE5BFcBHa/MwQQAVsmO5Ee04lSQ5qVW11+nLEj1wp4=;
  b=H7g5rZYT41F70oe1cJdZdm3aVmxBYnwx9sdYATmi7FSvVBbsxSS/1nRt
   AVh36QOWQj+orshX0tcxtgOhp9AzwRVsuOOMMn4Z0FOj022nfB/nxoMME
   VEqYTySFAR5k6kkhWT5J2QqAgxUp8rIGhjPhYvmdZXO3IAzKxz6nySjQI
   Q=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: RXJkyoZCtH2jLoH126WkT5H5cqN2zPvp2yyG0NGemrHgn5Qr2zeVZ0zkRZ42+8NaN/YZO6oIZ6
 5uCzOSje0jMb3/OqRH49S4FgyZCEdWf2LwDzwJX5Ze5Eu61zsMpFXqZclaUSjeiMNy6ytJLsto
 iGgWCilxHnkr9xEsD7rRRHd+D2iROjlkkb1hB6MZUM8GijyZGPsn5bqK6nxWk9rxcQYXvFGKfB
 1YXcKPBFSi3/qwFunXWEXVCTUYIKvqJ/lmTL0Cn+35/FiCNu7UMHG6zOraUDkqLd76zbtXeYxM
 9zrzeAEELp+MaPIH8J+OeBHH
X-SBRS: 5.1
X-MesageID: 58676416
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:1ivs0Kkffdzw9xMy4DWVWCDo5gxMIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJNXGqAOvyCZmbwKYpxYY/g8klSuJDdxt5iHQQ5/ypjFyMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q22YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 IRSl62Sch8bBaHNt8YedB1EPCxyF4QTrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQKaAO
 JRFMGQHgBLoQTFFfUoqBZUChNyUoHrYLBlejH2KjP9ii4TU5FMoi+W8WDbPQfSVQe1Fk0Deo
 XjJl0zbKBwHMN2UyRKe72mhwOTImEvTSI8UUbG16PNuqFmS3XAITg0bU0Ohpvu0gVL4XMhQQ
 3H44QJ38/J0rhbyCICgAVvo+xZooyLwRfIBDM8LyjqV+JHY4im7BU8AUhFMZPYP4ZpeqSMR6
 neFmNbgBDpKubKTSG6A+rr8kQ5eKRT5PkdZO3ZaEFJtD83L5dhq00mRFooL/Lud14WtQVnNL
 ya2QD/Sbln5peoCzO2F8F/OmFpATbCZH1dutm07so9Ihz6VhbJJhaT0tjA3Dt4ade51q2VtW
 lBfwKByC8hUUPmweNSlGrllIV1Qz6/t3MfgqVBuBYI90D+m5mSue4tdiBknehw2YphZJm61P
 hOI0e+02HO1FCDxBUOQS9jsY/nGMIC6TYi1PhwqRoYmjmdNmP+vo3g1OB/4M5HFm0kwi6AvU
 ap3gu73ZUv2/Z9PlWLsL89EiOdD7nlnmQv7GMCqpzz6gOH2TCPEFt843K6mM7lRAFWs+16Or
 b6y9qKiln1ibQEJSnWNrNNIcwlVdSNT6FKfg5U/S9Nv6zFOQAkJY8I9C5t4E2C8t6gKxOrO4
 F+nXUpUlAj2iXHdcF3YYXF/crL/G514qCtjbyArOF+p3VklYJqus/hDJ8dmI+F/+bwx1+NwQ
 tkEZ96EXqZFRAPY9mlPdpL6toFjKkim3FrcIyq/bTEjVJd8XAiVqMT8dw7i+XBWXCq6vMczu
 ZO60QbfTcZRTghuFp+OOvmu00mwrT4Wn+crBxnEJdxaeUPN9ol2KnOu0q9rcp9UcRian2mUz
 QebBxsctNLhmY5t/Ymbn72AoqeoD/B6QhhQEV7E4OvkLiLd5Gein9NNCb7aYTDHWWro06y+f
 uEJnerkOfgKkVsW4YpxF7FnkfA369f1/uIIyw1lGDPAbkixC6MmKX6DhJEduqpIz75fmA23R
 kPQpYUKZeTXYJvoQAwLOQ4oTuWfzvVFyDDd4MM8LFj++CIqrqGMVl9fPkXUhSFQRFev3FjJH
 Qv1VBYq1jGC
IronPort-HdrOrdr: A9a23:N48GrKs+6mNkzEnpHfRSSjPC7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpGbJYVcqKRcdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyJMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676416"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 30/65] x86/emul: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:11 +0000
Message-ID: <20211126123446.32324-31-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

pv_emul_is_mem_write() only has a single user.  Having it as a static inline
is pointless because it can't be inlined to begin with.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/hvm/emulate.c             | 72 +++++++++++++++++-----------------
 xen/arch/x86/hvm/hvm.c                 |  8 ++--
 xen/arch/x86/hvm/svm/svm.c             |  4 +-
 xen/arch/x86/mm.c                      |  4 +-
 xen/arch/x86/mm/shadow/hvm.c           |  8 ++--
 xen/arch/x86/pv/emul-gate-op.c         |  5 ++-
 xen/arch/x86/pv/emul-priv-op.c         | 65 +++++++++++++++---------------
 xen/arch/x86/pv/emulate.h              |  7 ----
 xen/arch/x86/pv/ro-page-fault.c        | 25 +++++++-----
 xen/arch/x86/x86_emulate.c             | 21 +++++-----
 xen/arch/x86/x86_emulate/x86_emulate.c | 10 ++---
 xen/arch/x86/x86_emulate/x86_emulate.h | 33 ++++++++--------
 xen/include/asm-x86/hvm/emulate.h      |  8 ++--
 xen/include/asm-x86/mm.h               | 16 +++-----
 14 files changed, 142 insertions(+), 144 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index bd4e3ab6456e..952e28e5b212 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -1272,7 +1272,7 @@ static int __hvmemul_read(
     return linear_read(addr, bytes, p_data, pfec, hvmemul_ctxt);
 }
 
-static int hvmemul_read(
+static int cf_check hvmemul_read(
     enum x86_segment seg,
     unsigned long offset,
     void *p_data,
@@ -1290,7 +1290,7 @@ static int hvmemul_read(
         container_of(ctxt, struct hvm_emulate_ctxt, ctxt));
 }
 
-int hvmemul_insn_fetch(
+int cf_check hvmemul_insn_fetch(
     enum x86_segment seg,
     unsigned long offset,
     void *p_data,
@@ -1337,7 +1337,7 @@ int hvmemul_insn_fetch(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_write(
+static int cf_check hvmemul_write(
     enum x86_segment seg,
     unsigned long offset,
     void *p_data,
@@ -1385,7 +1385,7 @@ static int hvmemul_write(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_rmw(
+static int cf_check hvmemul_rmw(
     enum x86_segment seg,
     unsigned long offset,
     unsigned int bytes,
@@ -1438,7 +1438,7 @@ static int hvmemul_rmw(
     return rc;
 }
 
-static int hvmemul_blk(
+static int cf_check hvmemul_blk(
     enum x86_segment seg,
     unsigned long offset,
     void *p_data,
@@ -1479,7 +1479,7 @@ static int hvmemul_blk(
     return rc;
 }
 
-static int hvmemul_write_discard(
+static int cf_check hvmemul_write_discard(
     enum x86_segment seg,
     unsigned long offset,
     void *p_data,
@@ -1490,7 +1490,7 @@ static int hvmemul_write_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_rep_ins_discard(
+static int cf_check hvmemul_rep_ins_discard(
     uint16_t src_port,
     enum x86_segment dst_seg,
     unsigned long dst_offset,
@@ -1501,7 +1501,7 @@ static int hvmemul_rep_ins_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_rep_movs_discard(
+static int cf_check hvmemul_rep_movs_discard(
    enum x86_segment src_seg,
    unsigned long src_offset,
    enum x86_segment dst_seg,
@@ -1513,7 +1513,7 @@ static int hvmemul_rep_movs_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_rep_stos_discard(
+static int cf_check hvmemul_rep_stos_discard(
     void *p_data,
     enum x86_segment seg,
     unsigned long offset,
@@ -1524,7 +1524,7 @@ static int hvmemul_rep_stos_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_rep_outs_discard(
+static int cf_check hvmemul_rep_outs_discard(
     enum x86_segment src_seg,
     unsigned long src_offset,
     uint16_t dst_port,
@@ -1535,7 +1535,7 @@ static int hvmemul_rep_outs_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_cmpxchg_discard(
+static int cf_check hvmemul_cmpxchg_discard(
     enum x86_segment seg,
     unsigned long offset,
     void *p_old,
@@ -1547,7 +1547,7 @@ static int hvmemul_cmpxchg_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_read_io_discard(
+static int cf_check hvmemul_read_io_discard(
     unsigned int port,
     unsigned int bytes,
     unsigned long *val,
@@ -1556,7 +1556,7 @@ static int hvmemul_read_io_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_write_io_discard(
+static int cf_check hvmemul_write_io_discard(
     unsigned int port,
     unsigned int bytes,
     unsigned long val,
@@ -1565,7 +1565,7 @@ static int hvmemul_write_io_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_write_msr_discard(
+static int cf_check hvmemul_write_msr_discard(
     unsigned int reg,
     uint64_t val,
     struct x86_emulate_ctxt *ctxt)
@@ -1573,7 +1573,7 @@ static int hvmemul_write_msr_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_cache_op_discard(
+static int cf_check hvmemul_cache_op_discard(
     enum x86emul_cache_op op,
     enum x86_segment seg,
     unsigned long offset,
@@ -1582,7 +1582,7 @@ static int hvmemul_cache_op_discard(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_cmpxchg(
+static int cf_check hvmemul_cmpxchg(
     enum x86_segment seg,
     unsigned long offset,
     void *p_old,
@@ -1676,7 +1676,7 @@ static int hvmemul_cmpxchg(
     return rc;
 }
 
-static int hvmemul_validate(
+static int cf_check hvmemul_validate(
     const struct x86_emulate_state *state,
     struct x86_emulate_ctxt *ctxt)
 {
@@ -1689,7 +1689,7 @@ static int hvmemul_validate(
            ? X86EMUL_OKAY : X86EMUL_UNHANDLEABLE;
 }
 
-static int hvmemul_rep_ins(
+static int cf_check hvmemul_rep_ins(
     uint16_t src_port,
     enum x86_segment dst_seg,
     unsigned long dst_offset,
@@ -1767,7 +1767,7 @@ static int hvmemul_rep_outs_set_context(
     return rc;
 }
 
-static int hvmemul_rep_outs(
+static int cf_check hvmemul_rep_outs(
     enum x86_segment src_seg,
     unsigned long src_offset,
     uint16_t dst_port,
@@ -1808,7 +1808,7 @@ static int hvmemul_rep_outs(
                                !!(ctxt->regs->eflags & X86_EFLAGS_DF), gpa);
 }
 
-static int hvmemul_rep_movs(
+static int cf_check hvmemul_rep_movs(
    enum x86_segment src_seg,
    unsigned long src_offset,
    enum x86_segment dst_seg,
@@ -1978,7 +1978,7 @@ static int hvmemul_rep_movs(
     return X86EMUL_UNHANDLEABLE;
 }
 
-static int hvmemul_rep_stos(
+static int cf_check hvmemul_rep_stos(
     void *p_data,
     enum x86_segment seg,
     unsigned long offset,
@@ -2106,7 +2106,7 @@ static int hvmemul_rep_stos(
     }
 }
 
-static int hvmemul_read_segment(
+static int cf_check hvmemul_read_segment(
     enum x86_segment seg,
     struct segment_register *reg,
     struct x86_emulate_ctxt *ctxt)
@@ -2123,7 +2123,7 @@ static int hvmemul_read_segment(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_write_segment(
+static int cf_check hvmemul_write_segment(
     enum x86_segment seg,
     const struct segment_register *reg,
     struct x86_emulate_ctxt *ctxt)
@@ -2142,7 +2142,7 @@ static int hvmemul_write_segment(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_read_io(
+static int cf_check hvmemul_read_io(
     unsigned int port,
     unsigned int bytes,
     unsigned long *val,
@@ -2159,7 +2159,7 @@ static int hvmemul_read_io(
     return hvmemul_do_pio_buffer(port, bytes, IOREQ_READ, val);
 }
 
-static int hvmemul_write_io(
+static int cf_check hvmemul_write_io(
     unsigned int port,
     unsigned int bytes,
     unsigned long val,
@@ -2168,7 +2168,7 @@ static int hvmemul_write_io(
     return hvmemul_do_pio_buffer(port, bytes, IOREQ_WRITE, &val);
 }
 
-static int hvmemul_read_cr(
+static int cf_check hvmemul_read_cr(
     unsigned int reg,
     unsigned long *val,
     struct x86_emulate_ctxt *ctxt)
@@ -2189,7 +2189,7 @@ static int hvmemul_read_cr(
     return X86EMUL_UNHANDLEABLE;
 }
 
-static int hvmemul_write_cr(
+static int cf_check hvmemul_write_cr(
     unsigned int reg,
     unsigned long val,
     struct x86_emulate_ctxt *ctxt)
@@ -2233,7 +2233,7 @@ static int hvmemul_write_cr(
     return rc;
 }
 
-static int hvmemul_read_xcr(
+static int cf_check hvmemul_read_xcr(
     unsigned int reg,
     uint64_t *val,
     struct x86_emulate_ctxt *ctxt)
@@ -2246,7 +2246,7 @@ static int hvmemul_read_xcr(
     return rc;
 }
 
-static int hvmemul_write_xcr(
+static int cf_check hvmemul_write_xcr(
     unsigned int reg,
     uint64_t val,
     struct x86_emulate_ctxt *ctxt)
@@ -2256,7 +2256,7 @@ static int hvmemul_write_xcr(
     return x86emul_write_xcr(reg, val, ctxt);
 }
 
-static int hvmemul_read_msr(
+static int cf_check hvmemul_read_msr(
     unsigned int reg,
     uint64_t *val,
     struct x86_emulate_ctxt *ctxt)
@@ -2269,7 +2269,7 @@ static int hvmemul_read_msr(
     return rc;
 }
 
-static int hvmemul_write_msr(
+static int cf_check hvmemul_write_msr(
     unsigned int reg,
     uint64_t val,
     struct x86_emulate_ctxt *ctxt)
@@ -2282,7 +2282,7 @@ static int hvmemul_write_msr(
     return rc;
 }
 
-static int hvmemul_cache_op(
+static int cf_check hvmemul_cache_op(
     enum x86emul_cache_op op,
     enum x86_segment seg,
     unsigned long offset,
@@ -2352,7 +2352,7 @@ static int hvmemul_cache_op(
     return X86EMUL_OKAY;
 }
 
-static int hvmemul_get_fpu(
+static int cf_check hvmemul_get_fpu(
     enum x86_emulate_fpu_type type,
     struct x86_emulate_ctxt *ctxt)
 {
@@ -2394,7 +2394,7 @@ static int hvmemul_get_fpu(
     return X86EMUL_OKAY;
 }
 
-static void hvmemul_put_fpu(
+static void cf_check hvmemul_put_fpu(
     struct x86_emulate_ctxt *ctxt,
     enum x86_emulate_fpu_type backout,
     const struct x86_emul_fpu_aux *aux)
@@ -2481,7 +2481,7 @@ static void hvmemul_put_fpu(
     }
 }
 
-static int hvmemul_tlb_op(
+static int cf_check hvmemul_tlb_op(
     enum x86emul_tlb_op op,
     unsigned long addr,
     unsigned long aux,
@@ -2538,7 +2538,7 @@ static int hvmemul_tlb_op(
     return rc;
 }
 
-static int hvmemul_vmfunc(
+static int cf_check hvmemul_vmfunc(
     struct x86_emulate_ctxt *ctxt)
 {
     int rc;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 785add50896a..fdc0b86bf091 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3737,8 +3737,8 @@ int hvm_msr_write_intercept(unsigned int msr, uint64_t msr_content,
     return X86EMUL_EXCEPTION;
 }
 
-static bool is_sysdesc_access(const struct x86_emulate_state *state,
-                              const struct x86_emulate_ctxt *ctxt)
+static bool cf_check is_sysdesc_access(
+    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
 {
     unsigned int ext;
     int mode = x86_insn_modrm(state, NULL, &ext);
@@ -3778,8 +3778,8 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
     return X86EMUL_OKAY;
 }
 
-static bool is_cross_vendor(const struct x86_emulate_state *state,
-                            const struct x86_emulate_ctxt *ctxt)
+static bool cf_check is_cross_vendor(
+    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
 {
     switch ( ctxt->opcode )
     {
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index ffa7c51e376f..c01477c97c09 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2443,8 +2443,8 @@ static void svm_invlpg_intercept(unsigned long linear)
     paging_invlpg(current, linear);
 }
 
-static bool is_invlpg(const struct x86_emulate_state *state,
-                      const struct x86_emulate_ctxt *ctxt)
+static bool cf_check is_invlpg(
+    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
 {
     unsigned int ext;
 
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 5d7acf705fb8..b60eb99d1094 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4838,7 +4838,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return 0;
 }
 
-int mmio_ro_emulated_write(
+int cf_check mmio_ro_emulated_write(
     enum x86_segment seg,
     unsigned long offset,
     void *p_data,
@@ -4859,7 +4859,7 @@ int mmio_ro_emulated_write(
     return X86EMUL_OKAY;
 }
 
-int mmcfg_intercept_write(
+int cf_check mmcfg_intercept_write(
     enum x86_segment seg,
     unsigned long offset,
     void *p_data,
diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
index d5f42102a0bd..ea99dd714fc3 100644
--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -148,7 +148,7 @@ hvm_read(enum x86_segment seg,
     return X86EMUL_UNHANDLEABLE;
 }
 
-static int
+static int cf_check
 hvm_emulate_read(enum x86_segment seg,
                  unsigned long offset,
                  void *p_data,
@@ -161,7 +161,7 @@ hvm_emulate_read(enum x86_segment seg,
                     container_of(ctxt, struct sh_emulate_ctxt, ctxt));
 }
 
-static int
+static int cf_check
 hvm_emulate_insn_fetch(enum x86_segment seg,
                        unsigned long offset,
                        void *p_data,
@@ -184,7 +184,7 @@ hvm_emulate_insn_fetch(enum x86_segment seg,
     return X86EMUL_OKAY;
 }
 
-static int
+static int cf_check
 hvm_emulate_write(enum x86_segment seg,
                   unsigned long offset,
                   void *p_data,
@@ -237,7 +237,7 @@ hvm_emulate_write(enum x86_segment seg,
     return X86EMUL_OKAY;
 }
 
-static int
+static int cf_check
 hvm_emulate_cmpxchg(enum x86_segment seg,
                     unsigned long offset,
                     void *p_old,
diff --git a/xen/arch/x86/pv/emul-gate-op.c b/xen/arch/x86/pv/emul-gate-op.c
index 43d847abd0ab..17a32b649ab5 100644
--- a/xen/arch/x86/pv/emul-gate-op.c
+++ b/xen/arch/x86/pv/emul-gate-op.c
@@ -96,8 +96,9 @@ struct gate_op_ctxt {
     bool insn_fetch;
 };
 
-static int read_mem(enum x86_segment seg, unsigned long offset, void *p_data,
-                    unsigned int bytes, struct x86_emulate_ctxt *ctxt)
+static int cf_check read_mem(
+    enum x86_segment seg, unsigned long offset, void *p_data,
+    unsigned int bytes, struct x86_emulate_ctxt *ctxt)
 {
     const struct gate_op_ctxt *goc =
         container_of(ctxt, struct gate_op_ctxt, ctxt);
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 7f4279a0517b..808ff1873352 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -358,8 +358,9 @@ static unsigned int check_guest_io_breakpoint(struct vcpu *v,
     return match;
 }
 
-static int read_io(unsigned int port, unsigned int bytes,
-                   unsigned long *val, struct x86_emulate_ctxt *ctxt)
+static int cf_check read_io(
+    unsigned int port, unsigned int bytes, unsigned long *val,
+    struct x86_emulate_ctxt *ctxt)
 {
     struct priv_op_ctxt *poc = container_of(ctxt, struct priv_op_ctxt, ctxt);
     struct vcpu *curr = current;
@@ -462,8 +463,9 @@ static void guest_io_write(unsigned int port, unsigned int bytes,
     }
 }
 
-static int write_io(unsigned int port, unsigned int bytes,
-                    unsigned long val, struct x86_emulate_ctxt *ctxt)
+static int cf_check write_io(
+    unsigned int port, unsigned int bytes, unsigned long val,
+    struct x86_emulate_ctxt *ctxt)
 {
     struct priv_op_ctxt *poc = container_of(ctxt, struct priv_op_ctxt, ctxt);
     struct vcpu *curr = current;
@@ -493,9 +495,9 @@ static int write_io(unsigned int port, unsigned int bytes,
     return X86EMUL_OKAY;
 }
 
-static int read_segment(enum x86_segment seg,
-                        struct segment_register *reg,
-                        struct x86_emulate_ctxt *ctxt)
+static int cf_check read_segment(
+    enum x86_segment seg, struct segment_register *reg,
+    struct x86_emulate_ctxt *ctxt)
 {
     /* Check if this is an attempt to access the I/O bitmap. */
     if ( seg == x86_seg_tr )
@@ -607,10 +609,10 @@ static int pv_emul_virt_to_linear(unsigned long base, unsigned long offset,
     return rc;
 }
 
-static int rep_ins(uint16_t port,
-                   enum x86_segment seg, unsigned long offset,
-                   unsigned int bytes_per_rep, unsigned long *reps,
-                   struct x86_emulate_ctxt *ctxt)
+static int cf_check rep_ins(
+    uint16_t port, enum x86_segment seg, unsigned long offset,
+    unsigned int bytes_per_rep, unsigned long *reps,
+    struct x86_emulate_ctxt *ctxt)
 {
     struct priv_op_ctxt *poc = container_of(ctxt, struct priv_op_ctxt, ctxt);
     struct vcpu *curr = current;
@@ -675,10 +677,10 @@ static int rep_ins(uint16_t port,
     return X86EMUL_OKAY;
 }
 
-static int rep_outs(enum x86_segment seg, unsigned long offset,
-                    uint16_t port,
-                    unsigned int bytes_per_rep, unsigned long *reps,
-                    struct x86_emulate_ctxt *ctxt)
+static int cf_check rep_outs(
+    enum x86_segment seg, unsigned long offset, uint16_t port,
+    unsigned int bytes_per_rep, unsigned long *reps,
+    struct x86_emulate_ctxt *ctxt)
 {
     struct priv_op_ctxt *poc = container_of(ctxt, struct priv_op_ctxt, ctxt);
     struct vcpu *curr = current;
@@ -744,8 +746,8 @@ static int rep_outs(enum x86_segment seg, unsigned long offset,
     return X86EMUL_OKAY;
 }
 
-static int read_cr(unsigned int reg, unsigned long *val,
-                   struct x86_emulate_ctxt *ctxt)
+static int cf_check read_cr(
+    unsigned int reg, unsigned long *val, struct x86_emulate_ctxt *ctxt)
 {
     const struct vcpu *curr = current;
 
@@ -787,8 +789,8 @@ static int read_cr(unsigned int reg, unsigned long *val,
     return X86EMUL_UNHANDLEABLE;
 }
 
-static int write_cr(unsigned int reg, unsigned long val,
-                    struct x86_emulate_ctxt *ctxt)
+static int cf_check write_cr(
+    unsigned int reg, unsigned long val, struct x86_emulate_ctxt *ctxt)
 {
     struct vcpu *curr = current;
 
@@ -871,8 +873,8 @@ static uint64_t guest_efer(const struct domain *d)
     return val;
 }
 
-static int read_msr(unsigned int reg, uint64_t *val,
-                    struct x86_emulate_ctxt *ctxt)
+static int cf_check read_msr(
+    unsigned int reg, uint64_t *val, struct x86_emulate_ctxt *ctxt)
 {
     struct vcpu *curr = current;
     const struct domain *currd = curr->domain;
@@ -1020,8 +1022,8 @@ static int read_msr(unsigned int reg, uint64_t *val,
     return ret;
 }
 
-static int write_msr(unsigned int reg, uint64_t val,
-                     struct x86_emulate_ctxt *ctxt)
+static int cf_check write_msr(
+    unsigned int reg, uint64_t val, struct x86_emulate_ctxt *ctxt)
 {
     struct vcpu *curr = current;
     const struct domain *currd = curr->domain;
@@ -1188,8 +1190,9 @@ static int write_msr(unsigned int reg, uint64_t val,
     return X86EMUL_UNHANDLEABLE;
 }
 
-static int cache_op(enum x86emul_cache_op op, enum x86_segment seg,
-                    unsigned long offset, struct x86_emulate_ctxt *ctxt)
+static int cf_check cache_op(
+    enum x86emul_cache_op op, enum x86_segment seg,
+    unsigned long offset, struct x86_emulate_ctxt *ctxt)
 {
     ASSERT(op == x86emul_wbinvd || op == x86emul_wbnoinvd);
 
@@ -1208,8 +1211,8 @@ static int cache_op(enum x86emul_cache_op op, enum x86_segment seg,
     return X86EMUL_OKAY;
 }
 
-static int validate(const struct x86_emulate_state *state,
-                    struct x86_emulate_ctxt *ctxt)
+static int cf_check validate(
+    const struct x86_emulate_state *state, struct x86_emulate_ctxt *ctxt)
 {
     switch ( ctxt->opcode )
     {
@@ -1258,11 +1261,9 @@ static int validate(const struct x86_emulate_state *state,
     return X86EMUL_UNHANDLEABLE;
 }
 
-static int insn_fetch(enum x86_segment seg,
-                      unsigned long offset,
-                      void *p_data,
-                      unsigned int bytes,
-                      struct x86_emulate_ctxt *ctxt)
+static int cf_check insn_fetch(
+    enum x86_segment seg, unsigned long offset, void *p_data,
+    unsigned int bytes, struct x86_emulate_ctxt *ctxt)
 {
     const struct priv_op_ctxt *poc =
         container_of(ctxt, struct priv_op_ctxt, ctxt);
diff --git a/xen/arch/x86/pv/emulate.h b/xen/arch/x86/pv/emulate.h
index 4b845b08e372..49a4d34832df 100644
--- a/xen/arch/x86/pv/emulate.h
+++ b/xen/arch/x86/pv/emulate.h
@@ -12,13 +12,6 @@ int pv_emul_read_descriptor(unsigned int sel, const struct vcpu *v,
 
 void pv_emul_instruction_done(struct cpu_user_regs *regs, unsigned long rip);
 
-static inline int pv_emul_is_mem_write(const struct x86_emulate_state *state,
-                                       struct x86_emulate_ctxt *ctxt)
-{
-    return x86_insn_is_mem_write(state, ctxt) ? X86EMUL_OKAY
-                                              : X86EMUL_UNHANDLEABLE;
-}
-
 /* Return a pointer to the GDT/LDT descriptor referenced by sel. */
 static inline const seg_desc_t *gdt_ldt_desc_ptr(unsigned int sel)
 {
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index ac5b66870c8c..276e11e16dff 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -26,6 +26,13 @@
 #include "emulate.h"
 #include "mm.h"
 
+static int cf_check pv_emul_is_mem_write(
+    const struct x86_emulate_state *state, struct x86_emulate_ctxt *ctxt)
+{
+    return x86_insn_is_mem_write(state, ctxt) ? X86EMUL_OKAY
+                                              : X86EMUL_UNHANDLEABLE;
+}
+
 /*********************
  * Writable Pagetables
  */
@@ -35,9 +42,9 @@ struct ptwr_emulate_ctxt {
     l1_pgentry_t  pte;
 };
 
-static int ptwr_emulated_read(enum x86_segment seg, unsigned long offset,
-                              void *p_data, unsigned int bytes,
-                              struct x86_emulate_ctxt *ctxt)
+static int cf_check ptwr_emulated_read(
+    enum x86_segment seg, unsigned long offset, void *p_data,
+    unsigned int bytes, struct x86_emulate_ctxt *ctxt)
 {
     unsigned int rc = bytes;
     unsigned long addr = offset;
@@ -203,9 +210,9 @@ static int ptwr_emulated_update(unsigned long addr, intpte_t *p_old,
     return X86EMUL_OKAY;
 }
 
-static int ptwr_emulated_write(enum x86_segment seg, unsigned long offset,
-                               void *p_data, unsigned int bytes,
-                               struct x86_emulate_ctxt *ctxt)
+static int cf_check ptwr_emulated_write(
+    enum x86_segment seg, unsigned long offset, void *p_data,
+    unsigned int bytes, struct x86_emulate_ctxt *ctxt)
 {
     intpte_t val = 0;
 
@@ -221,9 +228,9 @@ static int ptwr_emulated_write(enum x86_segment seg, unsigned long offset,
     return ptwr_emulated_update(offset, NULL, val, bytes, ctxt);
 }
 
-static int ptwr_emulated_cmpxchg(enum x86_segment seg, unsigned long offset,
-                                 void *p_old, void *p_new, unsigned int bytes,
-                                 bool lock, struct x86_emulate_ctxt *ctxt)
+static int cf_check ptwr_emulated_cmpxchg(
+    enum x86_segment seg, unsigned long offset, void *p_old, void *p_new,
+    unsigned int bytes, bool lock, struct x86_emulate_ctxt *ctxt)
 {
     intpte_t old = 0, new = 0;
     int rc;
diff --git a/xen/arch/x86/x86_emulate.c b/xen/arch/x86/x86_emulate.c
index 1e082e6f3b2d..60191a94dc18 100644
--- a/xen/arch/x86/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate.c
@@ -53,8 +53,8 @@
 
 #include "x86_emulate/x86_emulate.c"
 
-int x86emul_read_xcr(unsigned int reg, uint64_t *val,
-                     struct x86_emulate_ctxt *ctxt)
+int cf_check x86emul_read_xcr(
+    unsigned int reg, uint64_t *val, struct x86_emulate_ctxt *ctxt)
 {
     switch ( reg )
     {
@@ -77,8 +77,8 @@ int x86emul_read_xcr(unsigned int reg, uint64_t *val,
 }
 
 /* Note: May be called with ctxt=NULL. */
-int x86emul_write_xcr(unsigned int reg, uint64_t val,
-                      struct x86_emulate_ctxt *ctxt)
+int cf_check x86emul_write_xcr(
+    unsigned int reg, uint64_t val, struct x86_emulate_ctxt *ctxt)
 {
     switch ( reg )
     {
@@ -100,8 +100,8 @@ int x86emul_write_xcr(unsigned int reg, uint64_t val,
 
 #ifdef CONFIG_PV
 /* Called with NULL ctxt in hypercall context. */
-int x86emul_read_dr(unsigned int reg, unsigned long *val,
-                    struct x86_emulate_ctxt *ctxt)
+int cf_check x86emul_read_dr(
+    unsigned int reg, unsigned long *val, struct x86_emulate_ctxt *ctxt)
 {
     struct vcpu *curr = current;
 
@@ -143,8 +143,8 @@ int x86emul_read_dr(unsigned int reg, unsigned long *val,
     return X86EMUL_OKAY;
 }
 
-int x86emul_write_dr(unsigned int reg, unsigned long val,
-                     struct x86_emulate_ctxt *ctxt)
+int cf_check x86emul_write_dr(
+    unsigned int reg, unsigned long val, struct x86_emulate_ctxt *ctxt)
 {
     struct vcpu *curr = current;
 
@@ -167,8 +167,9 @@ int x86emul_write_dr(unsigned int reg, unsigned long val,
 }
 #endif /* CONFIG_PV */
 
-int x86emul_cpuid(uint32_t leaf, uint32_t subleaf,
-                  struct cpuid_leaf *res, struct x86_emulate_ctxt *ctxt)
+int cf_check x86emul_cpuid(
+    uint32_t leaf, uint32_t subleaf, struct cpuid_leaf *res,
+    struct x86_emulate_ctxt *ctxt)
 {
     guest_cpuid(current, leaf, subleaf, res);
 
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 069acde51791..509b047a4889 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -2524,7 +2524,7 @@ static void adjust_bnd(struct x86_emulate_ctxt *ctxt,
  done:;
 }
 
-int x86emul_unhandleable_rw(
+int cf_check x86emul_unhandleable_rw(
     enum x86_segment seg,
     unsigned long offset,
     void *p_data,
@@ -12319,7 +12319,7 @@ x86_insn_operand_ea(const struct x86_emulate_state *state,
  * memory operand (like POP), but it does not mean e.g. segment selector
  * loads, where the descriptor table access is considered an implicit one.
  */
-bool
+bool cf_check
 x86_insn_is_mem_access(const struct x86_emulate_state *state,
                        const struct x86_emulate_ctxt *ctxt)
 {
@@ -12411,7 +12411,7 @@ x86_insn_is_mem_access(const struct x86_emulate_state *state,
  * loads, where the (possible) descriptor table write is considered an
  * implicit access.
  */
-bool
+bool cf_check
 x86_insn_is_mem_write(const struct x86_emulate_state *state,
                       const struct x86_emulate_ctxt *ctxt)
 {
@@ -12583,7 +12583,7 @@ x86_insn_is_mem_write(const struct x86_emulate_state *state,
     return false;
 }
 
-bool
+bool cf_check
 x86_insn_is_portio(const struct x86_emulate_state *state,
                    const struct x86_emulate_ctxt *ctxt)
 {
@@ -12598,7 +12598,7 @@ x86_insn_is_portio(const struct x86_emulate_state *state,
     return false;
 }
 
-bool
+bool cf_check
 x86_insn_is_cr_access(const struct x86_emulate_state *state,
                       const struct x86_emulate_ctxt *ctxt)
 {
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.h b/xen/arch/x86/x86_emulate/x86_emulate.h
index 4a483a464804..2c5635804bb8 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.h
+++ b/xen/arch/x86/x86_emulate/x86_emulate.h
@@ -743,7 +743,7 @@ static inline unsigned long *decode_gpr(struct cpu_user_regs *regs,
 }
 
 /* Unhandleable read, write or instruction fetch */
-int
+int cf_check
 x86emul_unhandleable_rw(
     enum x86_segment seg,
     unsigned long offset,
@@ -773,16 +773,16 @@ x86_insn_immediate(const struct x86_emulate_state *state,
 unsigned int
 x86_insn_length(const struct x86_emulate_state *state,
                 const struct x86_emulate_ctxt *ctxt);
-bool
+bool cf_check
 x86_insn_is_mem_access(const struct x86_emulate_state *state,
                        const struct x86_emulate_ctxt *ctxt);
-bool
+bool cf_check
 x86_insn_is_mem_write(const struct x86_emulate_state *state,
                       const struct x86_emulate_ctxt *ctxt);
-bool
+bool cf_check
 x86_insn_is_portio(const struct x86_emulate_state *state,
                    const struct x86_emulate_ctxt *ctxt);
-bool
+bool cf_check
 x86_insn_is_cr_access(const struct x86_emulate_state *state,
                       const struct x86_emulate_ctxt *ctxt);
 
@@ -794,17 +794,18 @@ void x86_emulate_free_state(struct x86_emulate_state *state);
 
 #ifdef __XEN__
 
-int x86emul_read_xcr(unsigned int reg, uint64_t *val,
-                     struct x86_emulate_ctxt *ctxt);
-int x86emul_write_xcr(unsigned int reg, uint64_t val,
-                      struct x86_emulate_ctxt *ctxt);
-
-int x86emul_read_dr(unsigned int reg, unsigned long *val,
-                    struct x86_emulate_ctxt *ctxt);
-int x86emul_write_dr(unsigned int reg, unsigned long val,
-                     struct x86_emulate_ctxt *ctxt);
-int x86emul_cpuid(uint32_t leaf, uint32_t subleaf,
-                  struct cpuid_leaf *res, struct x86_emulate_ctxt *ctxt);
+int cf_check x86emul_read_xcr(
+    unsigned int reg, uint64_t *val, struct x86_emulate_ctxt *ctxt);
+int cf_check x86emul_write_xcr(
+    unsigned int reg, uint64_t val, struct x86_emulate_ctxt *ctxt);
+
+int cf_check x86emul_read_dr(
+    unsigned int reg, unsigned long *val, struct x86_emulate_ctxt *ctxt);
+int cf_check x86emul_write_dr(
+    unsigned int reg, unsigned long val, struct x86_emulate_ctxt *ctxt);
+int cf_check x86emul_cpuid(
+    uint32_t leaf, uint32_t subleaf, struct cpuid_leaf *res,
+    struct x86_emulate_ctxt *ctxt);
 
 #endif
 
diff --git a/xen/include/asm-x86/hvm/emulate.h b/xen/include/asm-x86/hvm/emulate.h
index 610078b28fca..8bebfb5105b2 100644
--- a/xen/include/asm-x86/hvm/emulate.h
+++ b/xen/include/asm-x86/hvm/emulate.h
@@ -92,11 +92,9 @@ static inline bool handle_mmio(void)
     return hvm_emulate_one_insn(x86_insn_is_mem_access, "MMIO");
 }
 
-int hvmemul_insn_fetch(enum x86_segment seg,
-                       unsigned long offset,
-                       void *p_data,
-                       unsigned int bytes,
-                       struct x86_emulate_ctxt *ctxt);
+int cf_check hvmemul_insn_fetch(
+    enum x86_segment seg, unsigned long offset, void *p_data,
+    unsigned int bytes, struct x86_emulate_ctxt *ctxt);
 int hvmemul_do_pio_buffer(uint16_t port,
                           unsigned int size,
                           uint8_t dir,
diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
index cb9052749963..1c849b96d583 100644
--- a/xen/include/asm-x86/mm.h
+++ b/xen/include/asm-x86/mm.h
@@ -546,16 +546,12 @@ struct mmio_ro_emulate_ctxt {
         unsigned int seg, bdf;
 };
 
-extern int mmio_ro_emulated_write(enum x86_segment seg,
-                                  unsigned long offset,
-                                  void *p_data,
-                                  unsigned int bytes,
-                                  struct x86_emulate_ctxt *ctxt);
-extern int mmcfg_intercept_write(enum x86_segment seg,
-                                 unsigned long offset,
-                                 void *p_data,
-                                 unsigned int bytes,
-                                 struct x86_emulate_ctxt *ctxt);
+int cf_check mmio_ro_emulated_write(
+    enum x86_segment seg, unsigned long offset, void *p_data,
+    unsigned int bytes, struct x86_emulate_ctxt *ctxt);
+int cf_check mmcfg_intercept_write(
+    enum x86_segment seg, unsigned long offset, void *p_data,
+    unsigned int bytes, struct x86_emulate_ctxt *ctxt);
 
 int audit_adjust_pgtables(struct domain *d, int dir, int noisy);
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232893.404173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxj-0005dJ-TZ; Fri, 26 Nov 2021 13:08:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232893.404173; Fri, 26 Nov 2021 13:08:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxi-0005Vi-S6; Fri, 26 Nov 2021 13:08:22 +0000
Received: by outflank-mailman (input) for mailman id 232893;
 Fri, 26 Nov 2021 13:08:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqavi-0002zD-Dd
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:06:18 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0ad151d-4eb9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:06:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0ad151d-4eb9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931972;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=OmfIVjvRFySSa8/mzc3J6kH3MJyMsyMFs53apAyPR2A=;
  b=RATjgcQLwPt3aSUc9j5CuIR7R9SPzPY7X3CGFgmddPOH4uC6vETcpcMY
   tI7kM3J0mXk7OGEKv8seNFQ/W4NHzaE5ygjc89rpowp9BDQLOF8v9O5RO
   iXAgl/ht4IZE6lOcIdfORZIkI9CkLHVR9Hv2B1s5MPjV7hFa2qtVUuQAb
   8=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: JHqhR5uQ2IHIQG9EIfZMKm1ecScCjhq+z1tYFDsehJYddTebeD3lsy2yAybyGbBsff91CRrmTd
 r5zqVXdJQ0EkM81GgeuAu1T2yKel/eEbb5uWcGwmfnjvHIh6WuHNSQlsCJb7iPStFBC/HJEgSl
 aiuBTzKyQ0H3hs81E8Som1JuEkrq1Ubm1bZIC6QDkY/5zHwDKntnmy1xZ4jiaSJSSFfk/4sjtq
 18RHHwNP1lsJk3p27dAENWYp1ryj4Q+UB4WSt2EG883gN7eemu0iWwDdSiwZPg/nRtIVFZn+cX
 cEmM0YaDwcmXf4RReewiuq5m
X-SBRS: 5.1
X-MesageID: 58193863
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:NwEnEq6NpPAr7+JCk6oelQxRtPXAchMFZxGqfqrLsTDasY5as4F+v
 mAaUTuBMqneMzChfox/Po/no00G7Jbcx9Y1TAU6qS01Hi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2NAw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zy
 N9s6sbhcjgTGrDToc9FbQICPiolFPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTa+PP
 JpHMlKDajzuRw1LA00eFakYwrnz3SDudz5J+VuK8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u10bTDwweNdef4SGY6X/qjejK9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc9paMrJguTqy8I7J/D+yXlYfFBNKM/Vz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D3gbQ4xawZRGp8crVnl
 CNf8yR5xLpTZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxg5bJtbKGO3P
 BS7VeZtCHl7ZyDCgUhfOd/ZNijX5fK4SYSNug78MrKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI+cElJNhMb6epJl1VNk/sHm+HW0
 Gu6X0MEmlPziWeecVeBa2x5aaOpVpF69CppMSspNFeu+n4ifYfws/tPK8ppJeEqpL550Pp5b
 /gZYMHcUP5BfSvKpmYGZp7noY08KBny3VCSPzCoaSQUdoJ7Q1Cb4cftewbirXFcDie+ucYkj
 aen0wfXHcgKSwh4VZ6EY/Oz1VKh+3ManbsqDUfPJ9BSfmTq8ZRrdHOt3qNmfZlUJEyalDWA1
 guQDRMJnsX3otc4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKkQoYs4d4FLo3n6sy68G2+u1fxwVgWn7Kc06qGvVrJXzfhZtDsahEx7l4vwqqW
 x3QpokGaOvRYM61QkQMIAcFb/iY0aBGkzbf2v05PUHm6XIl57GAS0hTY0GBhSE1wGGZ62/5L
 TPNYPIr1jE=
IronPort-HdrOrdr: A9a23:y1sHp64/TIZ7QUCywQPXwPDXdLJyesId70hD6qhwISY6TiX+rb
 HWoB17726TtN9/YhEdcLy7VJVoBEmskKKdgrNhWotKPjOW21dARbsKheCJrgEIWReOktK1vZ
 0QC5SWY+eQMbEVt6nHCXGDYrQd/OU=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58193863"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 46/65] x86/p2m: Annotate fnptr targets
Date: Fri, 26 Nov 2021 12:34:27 +0000
Message-ID: <20211126123446.32324-47-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/mm/hap/hap.c        |  2 +-
 xen/arch/x86/mm/hap/nested_hap.c |  2 +-
 xen/arch/x86/mm/p2m-ept.c        | 32 +++++++++++++++-----------------
 xen/arch/x86/mm/p2m-pt.c         | 19 +++++++++----------
 xen/include/asm-x86/p2m.h        |  4 ++--
 5 files changed, 28 insertions(+), 31 deletions(-)

diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index 9d67a47f5fe9..c19e337d6585 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -778,7 +778,7 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
     put_gfn(d, cr3_gfn);
 }
 
-static void
+static void cf_check
 hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
 {
     struct domain *d = p2m->domain;
diff --git a/xen/arch/x86/mm/hap/nested_hap.c b/xen/arch/x86/mm/hap/nested_hap.c
index 50fa2dd9f405..aa8495be4510 100644
--- a/xen/arch/x86/mm/hap/nested_hap.c
+++ b/xen/arch/x86/mm/hap/nested_hap.c
@@ -71,7 +71,7 @@
 /*        NESTED VIRT P2M FUNCTIONS         */
 /********************************************/
 
-void
+void cf_check
 nestedp2m_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
 {
     if ( oflags & _PAGE_PRESENT )
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index ac36afcc1d64..d2c540b81fdf 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -625,7 +625,7 @@ int epte_get_entry_emt(struct domain *d, gfn_t gfn, mfn_t mfn,
  * - zero if no adjustment was done,
  * - a positive value if at least one adjustment was done.
  */
-static int resolve_misconfig(struct p2m_domain *p2m, unsigned long gfn)
+static int cf_check resolve_misconfig(struct p2m_domain *p2m, unsigned long gfn)
 {
     struct ept_data *ept = &p2m->ept;
     unsigned int level = ept->wl;
@@ -794,7 +794,7 @@ bool_t ept_handle_misconfig(uint64_t gpa)
  *
  * Returns: 0 for success, -errno for failure
  */
-static int
+static int cf_check
 ept_set_entry(struct p2m_domain *p2m, gfn_t gfn_, mfn_t mfn,
               unsigned int order, p2m_type_t p2mt, p2m_access_t p2ma,
               int sve)
@@ -1003,10 +1003,9 @@ ept_set_entry(struct p2m_domain *p2m, gfn_t gfn_, mfn_t mfn,
 }
 
 /* Read ept p2m entries */
-static mfn_t ept_get_entry(struct p2m_domain *p2m,
-                           gfn_t gfn_, p2m_type_t *t, p2m_access_t* a,
-                           p2m_query_t q, unsigned int *page_order,
-                           bool_t *sve)
+static mfn_t cf_check ept_get_entry(
+    struct p2m_domain *p2m, gfn_t gfn_, p2m_type_t *t, p2m_access_t* a,
+    p2m_query_t q, unsigned int *page_order, bool_t *sve)
 {
     ept_entry_t *table =
         map_domain_page(pagetable_get_mfn(p2m_get_pagetable(p2m)));
@@ -1166,8 +1165,8 @@ void ept_walk_table(struct domain *d, unsigned long gfn)
     return;
 }
 
-static void ept_change_entry_type_global(struct p2m_domain *p2m,
-                                         p2m_type_t ot, p2m_type_t nt)
+static void cf_check ept_change_entry_type_global(
+    struct p2m_domain *p2m, p2m_type_t ot, p2m_type_t nt)
 {
     unsigned long mfn = p2m->ept.mfn;
 
@@ -1178,10 +1177,9 @@ static void ept_change_entry_type_global(struct p2m_domain *p2m,
         ept_sync_domain(p2m);
 }
 
-static int ept_change_entry_type_range(struct p2m_domain *p2m,
-                                       p2m_type_t ot, p2m_type_t nt,
-                                       unsigned long first_gfn,
-                                       unsigned long last_gfn)
+static int cf_check ept_change_entry_type_range(
+    struct p2m_domain *p2m, p2m_type_t ot, p2m_type_t nt,
+    unsigned long first_gfn, unsigned long last_gfn)
 {
     unsigned int i, wl = p2m->ept.wl;
     unsigned long mask = (1 << EPT_TABLE_ORDER) - 1;
@@ -1225,7 +1223,7 @@ static int ept_change_entry_type_range(struct p2m_domain *p2m,
     return rc < 0 ? rc : 0;
 }
 
-static void ept_memory_type_changed(struct p2m_domain *p2m)
+static void cf_check ept_memory_type_changed(struct p2m_domain *p2m)
 {
     unsigned long mfn = p2m->ept.mfn;
 
@@ -1284,7 +1282,7 @@ void ept_sync_domain(struct p2m_domain *p2m)
     ept_sync_domain_mask(p2m, d->dirty_cpumask);
 }
 
-static void ept_tlb_flush(struct p2m_domain *p2m)
+static void cf_check ept_tlb_flush(struct p2m_domain *p2m)
 {
     ept_sync_domain_mask(p2m, p2m->domain->dirty_cpumask);
 }
@@ -1347,7 +1345,7 @@ static void ept_disable_pml(struct p2m_domain *p2m)
     vmx_domain_update_eptp(p2m->domain);
 }
 
-static void ept_enable_hardware_log_dirty(struct p2m_domain *p2m)
+static void cf_check ept_enable_hardware_log_dirty(struct p2m_domain *p2m)
 {
     struct p2m_domain *hostp2m = p2m_get_hostp2m(p2m->domain);
 
@@ -1356,7 +1354,7 @@ static void ept_enable_hardware_log_dirty(struct p2m_domain *p2m)
     p2m_unlock(hostp2m);
 }
 
-static void ept_disable_hardware_log_dirty(struct p2m_domain *p2m)
+static void cf_check ept_disable_hardware_log_dirty(struct p2m_domain *p2m)
 {
     struct p2m_domain *hostp2m = p2m_get_hostp2m(p2m->domain);
 
@@ -1365,7 +1363,7 @@ static void ept_disable_hardware_log_dirty(struct p2m_domain *p2m)
     p2m_unlock(hostp2m);
 }
 
-static void ept_flush_pml_buffers(struct p2m_domain *p2m)
+static void cf_check ept_flush_pml_buffers(struct p2m_domain *p2m)
 {
     /* Domain must have been paused */
     ASSERT(atomic_read(&p2m->domain->pause_count));
diff --git a/xen/arch/x86/mm/p2m-pt.c b/xen/arch/x86/mm/p2m-pt.c
index 09c99d78aa40..0a8f64f7046d 100644
--- a/xen/arch/x86/mm/p2m-pt.c
+++ b/xen/arch/x86/mm/p2m-pt.c
@@ -399,7 +399,7 @@ static int p2m_pt_set_recalc_range(struct p2m_domain *p2m,
  * GFN. Propagate the re-calculation flag down to the next page table level
  * for entries not involved in the translation of the given GFN.
  */
-static int do_recalc(struct p2m_domain *p2m, unsigned long gfn)
+static int cf_check do_recalc(struct p2m_domain *p2m, unsigned long gfn)
 {
     void *table;
     unsigned long gfn_remainder = gfn;
@@ -573,7 +573,7 @@ static void check_entry(mfn_t mfn, p2m_type_t new, p2m_type_t old,
 }
 
 /* Returns: 0 for success, -errno for failure */
-static int
+static int cf_check
 p2m_pt_set_entry(struct p2m_domain *p2m, gfn_t gfn_, mfn_t mfn,
                  unsigned int page_order, p2m_type_t p2mt, p2m_access_t p2ma,
                  int sve)
@@ -774,7 +774,7 @@ p2m_pt_set_entry(struct p2m_domain *p2m, gfn_t gfn_, mfn_t mfn,
     return rc;
 }
 
-static mfn_t
+static mfn_t cf_check
 p2m_pt_get_entry(struct p2m_domain *p2m, gfn_t gfn_,
                  p2m_type_t *t, p2m_access_t *a, p2m_query_t q,
                  unsigned int *page_order, bool_t *sve)
@@ -943,8 +943,8 @@ p2m_pt_get_entry(struct p2m_domain *p2m, gfn_t gfn_,
     return (p2m_is_valid(*t) || p2m_is_any_ram(*t)) ? mfn : INVALID_MFN;
 }
 
-static void p2m_pt_change_entry_type_global(struct p2m_domain *p2m,
-                                            p2m_type_t ot, p2m_type_t nt)
+static void cf_check p2m_pt_change_entry_type_global(
+    struct p2m_domain *p2m, p2m_type_t ot, p2m_type_t nt)
 {
     l1_pgentry_t *tab;
     unsigned long gfn = 0;
@@ -983,10 +983,9 @@ static void p2m_pt_change_entry_type_global(struct p2m_domain *p2m,
          guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
-static int p2m_pt_change_entry_type_range(struct p2m_domain *p2m,
-                                          p2m_type_t ot, p2m_type_t nt,
-                                          unsigned long first_gfn,
-                                          unsigned long last_gfn)
+static int cf_check p2m_pt_change_entry_type_range(
+    struct p2m_domain *p2m, p2m_type_t ot, p2m_type_t nt,
+    unsigned long first_gfn, unsigned long last_gfn)
 {
     unsigned long mask = (1 << PAGETABLE_ORDER) - 1;
     unsigned int i;
@@ -1025,7 +1024,7 @@ static int p2m_pt_change_entry_type_range(struct p2m_domain *p2m,
 }
 
 #if P2M_AUDIT
-static long p2m_pt_audit_p2m(struct p2m_domain *p2m)
+static long cf_check p2m_pt_audit_p2m(struct p2m_domain *p2m)
 {
     unsigned long entry_count = 0, pmbad = 0;
     unsigned long mfn, gfn, m2pfn;
diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h
index 357a8087481e..eaaf0ea0bfec 100644
--- a/xen/include/asm-x86/p2m.h
+++ b/xen/include/asm-x86/p2m.h
@@ -820,8 +820,8 @@ void np2m_flush_base(struct vcpu *v, unsigned long np2m_base);
 void hap_p2m_init(struct p2m_domain *p2m);
 void shadow_p2m_init(struct p2m_domain *p2m);
 
-void nestedp2m_write_p2m_entry_post(struct p2m_domain *p2m,
-                                    unsigned int oflags);
+void cf_check nestedp2m_write_p2m_entry_post(
+    struct p2m_domain *p2m, unsigned int oflags);
 
 /*
  * Alternate p2m: shadow p2m tables used for alternate memory views
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:08:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:08:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232895.404182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxl-00061W-Qg; Fri, 26 Nov 2021 13:08:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232895.404182; Fri, 26 Nov 2021 13:08:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqaxk-0005xb-Ii; Fri, 26 Nov 2021 13:08:24 +0000
Received: by outflank-mailman (input) for mailman id 232895;
 Fri, 26 Nov 2021 13:08:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqaus-0003W9-CN
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:05:26 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 827943f7-4eb9-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:05:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 827943f7-4eb9-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637931922;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=aOPxwPbEuVDUU/7ny7Nc1lwWXehixxmxhczRU20X228=;
  b=Ug80rd4/6m+cIaw8wNVjx9jC3dRfaZt117E/zbmysFdBbtIvquKSEF/+
   qxnpN/alAGt8DO4TLHHBTBXH3WXWrkPajeLGJPDY9uSex3z6P5a8lYRR9
   qgvZN+p1Ruw17J/BMDkx5RD11zuwovWLYpraJypg3oTILkpXfNAKNXZfx
   I=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: RaBzP1Ct+zqp3D/WYQ0bOnB5QQhIOC7By7f4KKyDcfUSo2Yu2CggadFQgyQJk5CWxt6/5VAWP5
 dcHqInpTGrQtHna6pX3RCzMySR4P/YeA0ebFH3ng48Ny+ScNdjI+RCoQpiKsZ0fafcP3Kx617j
 Lxeww12q4BHUnsm9YxUU/8GMSe1hClBvQEVrxUbCu0sqI0qVMpKZj9S1u+Q9dJwxA9wowILsr7
 pV0HiIDK8wGf6yjNScDc36NMDZb+Vj8blQ3GIaM2VF3jCfPp3iqTkKVSQj+UwRwrU461fYKTVf
 L05KaVzOyYWJp0g70nBMaFP0
X-SBRS: 5.1
X-MesageID: 58676375
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:N0Q8vauAjCvmykCQGoLdzBzKKOfnVJtZMUV32f8akzHdYApBsoF/q
 tZmKT2GO/iOMTejc9h3bYWw8hhT7J+Bz4JlSQRq/ioxRn4V+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npl7ZngYhU0M5H1psc0cwZ/PwR9OPwW9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5RGN2EwMXwsZTVWZGdLJa43xd6xpWmvVjxB+Wy4p5YOtj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO7U/uCqf16fo2ji6L0gbaRJka9l35MBjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSEhRqjBNzAJrVkg
 JTis5PFhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlUJ2K2M
 RON5Vg5CHpv0J2CNvQfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9UNc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:48fDrqs5ylNCdbSiW0K5HrmY7skDTtV00zEX/kB9WHVpmszxra
 6TdZMgpGbJYVcqKRcdcL+7WJVoLUmxyXcx2/h1AV7AZniAhILLFvAA0WKK+VSJcEeSygce79
 YFT0EXMqyJMbEQt6fHCWeDfOrIuOP3kpyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58676375"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 56/65] x86: Use control flow typechecking where possible
Date: Fri, 26 Nov 2021 12:34:37 +0000
Message-ID: <20211126123446.32324-57-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

RFC.  This is still an experimental compiler extention
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102953

However, it is also the entire basis of being able to sanely use
-mmanual-endbr in the first place, so is very important.
---
 xen/arch/x86/arch.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 1c8381f7c9d8..429a9ea00f92 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -48,6 +48,7 @@ CFLAGS-$(CONFIG_INDIRECT_THUNK) += -fno-jump-tables
 
 ifdef CONFIG_HAS_CC_CET_IBT
 CFLAGS += -fcf-protection=branch -mmanual-endbr
+$(call cc-option-add,CFLAGS,CC,-fcf-check-attribute=no)
 else
 $(call cc-option-add,CFLAGS,CC,-fcf-protection=none)
 endif
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:13:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:13:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232908.404229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqb2W-0004Dm-2f; Fri, 26 Nov 2021 13:13:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232908.404229; Fri, 26 Nov 2021 13:13:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqb2V-0004Df-Uk; Fri, 26 Nov 2021 13:13:19 +0000
Received: by outflank-mailman (input) for mailman id 232908;
 Fri, 26 Nov 2021 13:13:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3jyU=QN=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqb2T-0004DZ-V9
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:13:17 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d516f76-4eba-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:13:16 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:43100)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqb2K-000ggk-10 (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 26 Nov 2021 13:13:08 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id E56301FC8B;
 Fri, 26 Nov 2021 13:13:07 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d516f76-4eba-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <41e1f32d-6fe0-b588-ca27-8ddbd77f25e4@srcf.net>
Date: Fri, 26 Nov 2021 13:13:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <2bc4eeab-a69a-a953-e09e-7b87f7dc4b85@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
In-Reply-To: <2bc4eeab-a69a-a953-e09e-7b87f7dc4b85@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/11/2021 12:48, Jan Beulich wrote:
> On 26.11.2021 13:33, Andrew Cooper wrote:
>> CET Indirect Branch Tracking is a hardware feature designed to protect against
>> forward-edge control flow hijacking (Call/Jump oriented programming), and is a
>> companion feature to CET Shadow Stacks added in Xen 4.14.
>>
>> This series depends on lots of previously posted patches.  See
>> xenbits/xen-cet-ibt for the full branch with all dependencies.
>>
>> Patch 1 introduces some compile time infrastructure.
>>
>> Patches 2 thru 56 annotate all function pointer targets in the common and x86
>> hypervisor code.  Patches are split by API and in no particular order, and
>> largely mechanical.  As such, I'm limiting review mainly to The Rest.  While
>> doing this work does depend on an experimental GCC change (patch 56), the
>> result does actually work properly with GCC 9 onwards.
> I wonder what this means. Are you talking about a gcc 9 with the experimental
> change backported?

No - plain GCC 9 as released (give or take the bug with retpoline which
was fixed in 9.4).  See patch 1.

This entire series, on GCC 9.4 or 10, will compile and function
correctly with CET-IBT active in hardware.

> Or are you saying that things build fine there (but don't
> work as far as IBT is concerned) in the absence of the experimental change?
> In which case what about older gcc?

The only thing the experimental change does is provide more
typechecking, so the compiler can identify when there is a call to a
non-ENDBR'd function.  See patch 56.

There is no possible way I could have done this work without the
experimental change, because there are far too many function pointers to
have found blind.

The typechecking isn't perfect, but it's pretty good.  In the short
term, we're going to have to be careful with new code, and I ought to
put something in Gitlab CI.  In the longer term, I hope for something
suitable to get into GCC 12.

That said, there are also a huge number of errors new in GCC 12 to do
with array bounds checks, and I'm not sure sprinkling more gcc11_wrap()
is going to work this time.

>> Various note accumulated through the work:
>>   * I have already posted patches fixing some of the most egregious (ab)uses of
>>     function pointers.  There are plenty of other areas which could do with
>>     cleanup.
>>   * With everything turned on, we get 1688 runtime endbr64's, and 233 init
>>     time.  The number of runtime endbr64's is expected to reduce with
>>     Juergen's hypercall series (see later), and in common deployment cases
>>     where not everything is compiled in by default.
>>   * I have not checked for misaligned endbr64's, and I'm not sure there is
>>     anything useful we could do upon discovering that there were any.
>>     Naively, there is a 1 in 2^32 chance (endbr64 being 4 bytes long), but
>>     this doesn't account for the structure of x86 code, which is most
>>     certainly not a uniform random distribution of bytes.
> Do you really mean "misaligned" here? The 2nd sentence rather might suggest
> that you mean byte sequences resembling ENDBR, despite actually being part
> of other insns. If so, checking might not allow to prove anything, as e.g.
> displacements change with about every build.

I do mean "any sequence of bytes resembling ENDBR", because that is
ultimately how the CPU instruction decode will behave.

And yes - you certainly can hide it in a 4-byte disp/imm, but it's an
incredibly rare imm32 to find (except for tasks such as in patch 64). 
You can also hide it in an disp/imm8 followed by a specific nopl, but
I'm not sure if we'd ever emit 0F 1E FA as a nopl by default.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:15:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:15:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.232913.404240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqb4G-0004oD-DX; Fri, 26 Nov 2021 13:15:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 232913.404240; Fri, 26 Nov 2021 13:15:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqb4G-0004o6-9i; Fri, 26 Nov 2021 13:15:08 +0000
Received: by outflank-mailman (input) for mailman id 232913;
 Fri, 26 Nov 2021 13:15:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m7Hm=QN=arm.com=andre.przywara@srs-se1.protection.inumbo.net>)
 id 1mqb4E-0004nN-UN
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:15:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id de4dc37d-4eba-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 14:15:05 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C5FA711D4;
 Fri, 26 Nov 2021 05:15:03 -0800 (PST)
Received: from donnerap.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com
 [10.121.207.14])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8A3623F66F;
 Fri, 26 Nov 2021 05:15:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de4dc37d-4eba-11ec-a9d2-d9f7a1cc8784
Date: Fri, 26 Nov 2021 13:14:59 +0000
From: Andre Przywara <andre.przywara@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Cc: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
 <stefano.stabellini@xilinx.com>, <julien@xen.org>,
 <Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
 <rahul.singh@arm.com>, <ayankuma@xilinx.com>
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Message-ID: <20211126131459.2bbc81ad@donnerap.cambridge.arm.com>
In-Reply-To: <20211119165202.42442-1-ayankuma@xilinx.com>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
Organization: ARM
X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; aarch64-unknown-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Fri, 19 Nov 2021 16:52:02 +0000
Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:

Hi,

> At present, post indexing instructions are not emulated by Xen.
> When Xen gets the exception, EL2_ESR.ISV bit not set. Thus as a
> result, data abort is triggered.
> 
> Added the logic to decode ldr/str post indexing instructions.
> With this, Xen can decode instructions like these:-
> ldr w2, [x1], #4
> Thus, domU can read ioreg with post indexing instructions.

Where do those instructions come from? A (C) compiler? (Some mail in
another thread from Stefano suggests so)
If yes, I would argue that is broken:
IIUC C compilers assume normal memory attributes for every pointer they
handle, so they are free to use unaligned accesses, load/store exclusives,
split accesses (two halfword reads) and what not when generating code.
The GIC needs to be mapped as device memory, which explicitly forbids
unaligned accesses and exclusives (as in: always traps), so you cannot let
compiler-generated code access the GIC (or most other MMIO devices, for
that matter).
I know, this somewhat works(TM) in practise, because a uint32_t assignment
is very likely to end up in an ldr/str, but please let me know which car
this code ends up in, so that can I avoid this brand ;-)

You can tell the compiler to avoid unaligned accesses with -mstrict-align
(and should definitely do so when you are running C code with the MMU
off), but that still leaves exclusives and split accesses at the
compiler's discretion. A variation on the topic of split access is merged
writes, where the compiler uses NEON or SVE instructions, for instance, to
cover multiple words at once, possibly via some memset()/memcpy() routine.

On top there is this architectural restriction of the ARMv7/v8
virtualisation extension to not decode many "advanced" load/store
instructions in ESR_EL2.
Linux deliberately coded readl/writel using inline assembly, to only use
instructions that provide syndrome information, plus guarantee
device-memory compatible semantics.
Check out https://lwn.net/Articles/698014/ for a comprehensive discussion
of this whole MMIO topic.

So I think you should do the same in your guest/bare metal code: define
{read,write}{b,h,l,q} as inline assembly functions, using ldr?/str? only.
See xen/include/asm-arm/arm64/io.h for an example that uses static inline
functions in a header file, to generate most optimal code. Then always do
MMIO only via those accessors. That prevents any future compiler
surprises, plus makes you perfectly virtualisable.

Cheers,
Andre.

> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
> ---
> Note to reviewer:-
> This patch is based on an issue discussed in 
> https://lists.xenproject.org/archives/html/xen-devel/2021-11/msg00969.html
> "Xen/ARM - Query about a data abort seen while reading GICD registers"
> 
> 
>  xen/arch/arm/decode.c | 77 +++++++++++++++++++++++++++++++++++++++++++
>  xen/arch/arm/io.c     | 14 ++++++--
>  2 files changed, 88 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
> index 792c2e92a7..7b60bedbc5 100644
> --- a/xen/arch/arm/decode.c
> +++ b/xen/arch/arm/decode.c
> @@ -84,6 +84,80 @@ bad_thumb2:
>      return 1;
>  }
>  
> +static inline int32_t extract32(uint32_t value, int start, int length)
> +{
> +    int32_t ret;
> +
> +    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
> +        return -EINVAL;
> +
> +    ret = (value >> start) & (~0U >> (32 - length));
> +
> +    return ret;
> +}
> +
> +static int decode_64bit_loadstore_postindexing(register_t pc, struct hsr_dabt *dabt)
> +{
> +    uint32_t instr;
> +    int size;
> +    int v;
> +    int opc;
> +    int rt;
> +    int imm9;
> +
> +    /* For details on decoding, refer to Armv8 Architecture reference manual
> +     * Section - "Load/store register (immediate post-indexed)", Pg 318
> +    */
> +    if ( raw_copy_from_guest(&instr, (void * __user)pc, sizeof (instr)) )
> +        return -EFAULT;
> +
> +    /* First, let's check for the fixed values */
> +
> +    /*  As per the "Encoding table for the Loads and Stores group", Pg 299
> +     * op4 = 1 - Load/store register (immediate post-indexed)
> +     */
> +    if ( extract32(instr, 10, 2) != 1 )
> +        goto bad_64bit_loadstore;
> +
> +    /* For the following, refer to "Load/store register (immediate post-indexed)"
> +     * to get the fixed values at various bit positions.
> +     */
> +    if ( extract32(instr, 21, 1) != 0 )
> +        goto bad_64bit_loadstore;
> +
> +    if ( extract32(instr, 24, 2) != 0 )
> +        goto bad_64bit_loadstore;
> +
> +    if ( extract32(instr, 27, 3) != 7 )
> +        goto bad_64bit_loadstore;
> +
> +    size = extract32(instr, 30, 2);
> +    v = extract32(instr, 26, 1);
> +    opc = extract32(instr, 22, 1);
> +
> +    /* At the moment, we support STR(immediate) - 32 bit variant and
> +     * LDR(immediate) - 32 bit variant only.
> +     */
> +    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
> +        goto bad_64bit_loadstore;
> +
> +    rt = extract32(instr, 0, 5);
> +    imm9 = extract32(instr, 12, 9);
> +
> +    if ( imm9 < 0 )
> +        update_dabt(dabt, rt, size, true);
> +    else
> +        update_dabt(dabt, rt, size, false);
> +
> +    dabt->valid = 1;
> +
> +
> +    return 0;
> +bad_64bit_loadstore:
> +    gprintk(XENLOG_ERR, "unhandled 64bit instruction 0x%x\n", instr);
> +    return 1;
> +}
> +
>  static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>  {
>      uint16_t instr;
> @@ -155,6 +229,9 @@ int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt *dabt)
>      if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
>          return decode_thumb(regs->pc, dabt);
>  
> +    if ( is_64bit_domain(current->domain) )
> +        return decode_64bit_loadstore_postindexing(regs->pc, dabt);
> +
>      /* TODO: Handle ARM instruction */
>      gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
>  
> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
> index 729287e37c..49e80358c0 100644
> --- a/xen/arch/arm/io.c
> +++ b/xen/arch/arm/io.c
> @@ -106,14 +106,13 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
>          .gpa = gpa,
>          .dabt = dabt
>      };
> +    int rc;
>  
>      ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
>  
>      handler = find_mmio_handler(v->domain, info.gpa);
>      if ( !handler )
>      {
> -        int rc;
> -
>          rc = try_fwd_ioserv(regs, v, &info);
>          if ( rc == IO_HANDLED )
>              return handle_ioserv(regs, v);
> @@ -123,7 +122,16 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
>  
>      /* All the instructions used on emulated MMIO region should be valid */
>      if ( !dabt.valid )
> -        return IO_ABORT;
> +    {
> +        /*
> +         * Post indexing ldr/str instructions are not emulated by Xen. So, the
> +         * ISS is invalid. In such a scenario, we try to manually decode the
> +         * instruction from the program counter.
> +         */
> +        rc = decode_instruction(regs, &info.dabt);
> +        if ( rc )
> +            return IO_ABORT;
> +    }
>  
>      /*
>       * Erratum 766422: Thumb store translation fault to Hypervisor may



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:22:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:22:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233063.404251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbAt-0006pM-7O; Fri, 26 Nov 2021 13:21:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233063.404251; Fri, 26 Nov 2021 13:21:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbAt-0006pF-3v; Fri, 26 Nov 2021 13:21:59 +0000
Received: by outflank-mailman (input) for mailman id 233063;
 Fri, 26 Nov 2021 13:21:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3jyU=QN=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqbAr-0006p9-Qe
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:21:57 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3906036-4ebb-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:21:56 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:49776)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqbAj-0005Sv-gW (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 26 Nov 2021 13:21:49 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id DD1381FC54;
 Fri, 26 Nov 2021 13:21:48 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3906036-4ebb-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <7acc1b9f-a506-5772-694b-dde0825a2507@srcf.net>
Date: Fri, 26 Nov 2021 13:21:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <2bc4eeab-a69a-a953-e09e-7b87f7dc4b85@suse.com>
 <41e1f32d-6fe0-b588-ca27-8ddbd77f25e4@srcf.net>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <41e1f32d-6fe0-b588-ca27-8ddbd77f25e4@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/11/2021 13:13, Andrew Cooper wrote:
> On 26/11/2021 12:48, Jan Beulich wrote:
>> On 26.11.2021 13:33, Andrew Cooper wrote:
>>> Various note accumulated through the work:
>>>   * I have already posted patches fixing some of the most egregious (ab)uses of
>>>     function pointers.  There are plenty of other areas which could do with
>>>     cleanup.
>>>   * With everything turned on, we get 1688 runtime endbr64's, and 233 init
>>>     time.  The number of runtime endbr64's is expected to reduce with
>>>     Juergen's hypercall series (see later), and in common deployment cases
>>>     where not everything is compiled in by default.
>>>   * I have not checked for misaligned endbr64's, and I'm not sure there is
>>>     anything useful we could do upon discovering that there were any.
>>>     Naively, there is a 1 in 2^32 chance (endbr64 being 4 bytes long), but
>>>     this doesn't account for the structure of x86 code, which is most
>>>     certainly not a uniform random distribution of bytes.
>> Do you really mean "misaligned" here? The 2nd sentence rather might suggest
>> that you mean byte sequences resembling ENDBR, despite actually being part
>> of other insns. If so, checking might not allow to prove anything, as e.g.
>> displacements change with about every build.
> I do mean "any sequence of bytes resembling ENDBR", because that is
> ultimately how the CPU instruction decode will behave.
>
> And yes - you certainly can hide it in a 4-byte disp/imm, but it's an
> incredibly rare imm32 to find (except for tasks such as in patch 64).

To this point, I have a cunning idea.  I'll write a custom is_endbr64()
helper which reads a dword, not's it, and then compares to imm32.  That
is for all intents and purposes the same performance, but doesn't have
an embedded endbr64.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:22:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:22:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233065.404262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbBN-0007MD-G1; Fri, 26 Nov 2021 13:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233065.404262; Fri, 26 Nov 2021 13:22:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbBN-0007M6-D7; Fri, 26 Nov 2021 13:22:29 +0000
Received: by outflank-mailman (input) for mailman id 233065;
 Fri, 26 Nov 2021 13:22:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqbBM-0006p9-7p
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:22:28 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e648f7bd-4ebb-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:22:27 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2108.outbound.protection.outlook.com [104.47.17.108]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-39-UrTzf2DFObWuPCm4LZPEsQ-1; Fri, 26 Nov 2021 14:22:25 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5902.eurprd04.prod.outlook.com (2603:10a6:803:ed::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Fri, 26 Nov
 2021 13:22:24 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 13:22:23 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0171.eurprd06.prod.outlook.com (2603:10a6:20b:45c::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Fri, 26 Nov 2021 13:22:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e648f7bd-4ebb-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637932947;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=CzmExEs+z/a2k12D3JtnVlJRQHbHGaldXaAqrln4EsU=;
	b=ZeEfF1yiYUx6kMsEOR+4lxEYtPuk1yiTqy1eVYIXpGB6aJad/a60gf9ypgLO4rO6+WE2tO
	4clnYfu7CEdPahtS6q2e+VlGW1s8C++UBqNfHoNnPKfmM0c5uRN//rBTnj0YbncYaP2KhO
	kP3GxUiW1op0PKPUiJBUeciFsi+aU/I=
X-MC-Unique: UrTzf2DFObWuPCm4LZPEsQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Tnz4Ms3L8qZc688Z6PAZ9dvnA1DxXQ370s8+K3KL07SHJuRnMUkFX2P5FTIzS3iJq0P5Zz4hW0vHx+EcnOOTh7OzvUiJpVAtgK4/itGz3mGC73ypCqiMUN2DJDLCeLaMASkOIim3cw7w6J5dytPiO4aDC1clOxM2Ob1VQA8Bcgh3OZL72eVHz4Ufs3VDgM0KfWf/0I8KKksNGB9FgEbyq3fEp3iqOUFm08rBXkuTEUaj+bGbCS3S1yL+3P6yS4etvk8TtR5SYGeGxv3wSawwvJZNGKLrN9Ganv1Hz5zAnTLiucINaAIwN1u7mXMVEq885sX2h8P3BwZatPORWTQFTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FfjdDBwDMPHBrBZZWErItRoUqmgu4pOq+aqdGmATT7o=;
 b=jm1yfG2iRyYnFAArfb5wrseNIM06HQYHXFdW3/P2Gte/DgM4PAZQKyNFVDM22A66ZM9XBGcNnxQ9/DMfY1uxRi918LY6RTbtxjQvb5y4sQpgR0nmhIXFIIX1zwNYn24ZCTFbS5BSnWseQFgPcc1jkCvFlQW89xfEFqV9jCUXwwDENP6tIgDq41MGt5RTuSuuEckcral1kPWdPgoeE5VLxL8bzDj1aWKOCLFKWyEzNENNNAjUkBpvGPDYsQMoatgOg6miuN2FH4dYTbKThzPvDnfEVlmss+Oxs0sPbuIsc9EbztAklT8Fkagc0uGUrBcUjzFmquzqIBLNOnqwcj2nnw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ce727ab2-da21-b013-9650-98747ebf45a0@suse.com>
Date: Fri, 26 Nov 2021 14:22:21 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <2bc4eeab-a69a-a953-e09e-7b87f7dc4b85@suse.com>
 <41e1f32d-6fe0-b588-ca27-8ddbd77f25e4@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <41e1f32d-6fe0-b588-ca27-8ddbd77f25e4@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0171.eurprd06.prod.outlook.com
 (2603:10a6:20b:45c::29) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: af7675a9-cd47-47c3-c269-08d9b0dfc869
X-MS-TrafficTypeDiagnostic: VI1PR04MB5902:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5902C77BA3DBC3FC4EA28857B3639@VI1PR04MB5902.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	3ZP433BKrGp+184PlsMPXxKiuZxtI9ilRcJKqbqaX+I350WeqG7rDIo69KetGoCXpvwrG88Mt8H0sAAxgL7b2ebvEDJcO9MPVyqSqarW20/tG6iDvMtuswtPaW1vsxRc/pJBZZ2kH/lj8Lcnpr5TFH2lmtqiLgbriXWpt6hwMUP/FOmJixtJAiCw4HG494SDR03iUGYJY7+1QXqP4JwQ5HkebkSMPLpASuPyJc/OZa62nmxxOwb51SgPnwDJwmhTtOCRHkzh9mf2mydCEx86C1HKoW1UnMGilLgMNuq5obgMDxvWKWx8pRdR2ihKNaOuFR6cdBeTt9cK5DplNmc+/Kz5AchDlBeHW58dkF9PXmR4g0fUkMvt1tYA9ByX+ioRX+9W2J1PNhzcXnMYm2Yl61NW8yd/WHcQ+o73wjaZpxNbWvSOqIgbx7aQADnUo2wryjgP8fNmLp+5+s37wo2Vhjzfx3sc1bsMAhx2xnSVUaLaXwE6qrVePAl1CPDZjjrc7u+E2wYLTeD2NK2tZ1mV99CSoVliTdR3VbETIBhAxqu5iyRu7pXwhCmtgWqREhJMIbVAwlbVsh8PR77OzRk6KMaD73nd8CJtw3ZCxzGRPIPi5NCG47ggdZwGuELM3glT/O6SgE3Ls4ldqLrq1Y7y+B3ruigLP0EDtdOTdTp2NFTjqi0CKFJzTY21cdV5329YLBJtn2rt5am4kBYautup3yqZz9flT7g1HyKWN7CtO+I=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(8676002)(8936002)(316002)(16576012)(5660300002)(2906002)(4326008)(110136005)(54906003)(186003)(31686004)(508600001)(38100700002)(83380400001)(53546011)(66946007)(66556008)(66476007)(86362001)(956004)(26005)(6486002)(36756003)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Z933R9g32hXpa6SRowb3YZcNSbruUt1Ge7oI5KcBthv8lv1rkGgrM2zK/M2z?=
 =?us-ascii?Q?dxVA3alMcYh+S4hCNMNFk03QAQvZ4uhTZ6i4mxaw2IIK3pungDGLxO15aI7R?=
 =?us-ascii?Q?FD36OatlDa8554QytMzGIhF1X9BWkyp5ZNFHoaFKugvFZrC9D24CMNBrnPhU?=
 =?us-ascii?Q?G5b00nURMDjtZX41mfaAvSIKffQ9ugNfKXe8MyVGLQWiFleX0/p4S6zK6ll2?=
 =?us-ascii?Q?Ga/PPhgqWLbJ+gKF7v3U0S3rsm4NfLXrt5Lhn6P8+cdV43b+ibX6h/Jsy6QM?=
 =?us-ascii?Q?kcJasYnpH0w91I6KDec/H53DY4aGxLTfAKh8+z8IGE6LfYmmDa6KVzMeZPci?=
 =?us-ascii?Q?ed6apGkFpWW+1s5STUL5cbaC0LeMm1Tejgjl3FNT1LV5YSEaQrTDrNNV1izF?=
 =?us-ascii?Q?2BwQ035K9QWUVnNwrhroWehSezXAjfd9+AtfcDlkTu65YR2ICrmtKklnTrL9?=
 =?us-ascii?Q?ZtIL09kiZuTLfpmZWfQMLpdaS1RS7YsOsVqMHRAOlSNW3uKTvHL6WHLS8tfn?=
 =?us-ascii?Q?6CiHLpWrS/E+sWeArvPqUxDmKvOTQxJcqAf0AqTVU7EWMH2wnzNy3dWDlxW3?=
 =?us-ascii?Q?SYZ61rcZjwEsZUG0m4n5v2Zmw44RV9yFZe92c5R20kafVPvTmSXwItkyYC5u?=
 =?us-ascii?Q?Wqne2EFa0j9UGZT/rMjvfHonggY4kUTdI80Bhgq8jSyXWBT+ddpp1EH+Xiqr?=
 =?us-ascii?Q?u/PZs862J0k5kvEnm6wFGmtGN8BMgIlmzf/pZvhHJmATmmaTTyHlv3KFc4Ae?=
 =?us-ascii?Q?D+jHfCsubP6ATE4tiwRL1kLRAo8ESPPWz3niRjCFdYcb3SET0D1toP3rzHaa?=
 =?us-ascii?Q?/bL+KCPuKWY5m+jCF2rM7aqRW17ke/HIKuKP0kXEd3B/hzxJUNtoXYJJ1E1/?=
 =?us-ascii?Q?y4puP5k3+S3WerzlkZQBtPEtFCnIubpH72t7QHhUHi1KyMf1EH7t+9Zpwq8H?=
 =?us-ascii?Q?f2cg5v4CxO44VGGfBdbUyaNX8ffGCSHq5bN2TRytNjZVnuh9miI2BFzD2SWJ?=
 =?us-ascii?Q?dsXwgF8smKgZWqIQ5k4KBtiMhiZSkCz5D1glUTq0ibDafrCvOShoMK91xpgL?=
 =?us-ascii?Q?/NTjo6NwiqfGO1p8YjMF6u05XKg3CO/aqHqX+cN8kYlm6zDC7SyM86zBTaZG?=
 =?us-ascii?Q?ul1wIy+AyvS8e0iliBUT8OCV96CAXyjxlGZ8ayb/oiJV/NjAmTnx/KUcCN2r?=
 =?us-ascii?Q?W5Guq+um1M4Zqv6+sYX6SZRdOV/Hwve4Xpebitfrze8G/Yzilb5RZy6zhhkw?=
 =?us-ascii?Q?hwq5AijPk2lsPAqS/+ai6Ad1xdIqoEVL8rwJ0p8djTEtafC/7RrIdgBjn5Xj?=
 =?us-ascii?Q?xlUeLVELDO3eBXM0kqGAVS0Iuz3DBWekw7rTaXWhnPypSg+RW4nqwiC2nl8P?=
 =?us-ascii?Q?jMCvvHp9d5hIpUPVG2mmfLHy1yX0a9FPPy+fbvlLpLhLie6cGKzkTgviJgkq?=
 =?us-ascii?Q?ztnoyqp8m0vEOjyNGL+QoR0EgUP5EoWGcUK8VP4cK2uz+qGyQt3brvI/uaQ4?=
 =?us-ascii?Q?Rp5Lp+ByZ9F4j2s7QkPYMQSdJQz3LpN9+XvrBE4J88nonL+g//AZUMeaAZzR?=
 =?us-ascii?Q?jPLYXccvIUSPfjxK320aL9/ShPvPoWcp2eMsXecEFqFJbDwec4sKM4HKYrxG?=
 =?us-ascii?Q?46X7+boHnNcbyhGdXI0ytck=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: af7675a9-cd47-47c3-c269-08d9b0dfc869
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 13:22:23.7764
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +Jv4BCVJEt8We1T/uJlh0PRyG7XMNZf2szcuDejYeirk6RA+r2IVvRTcOEZP5BgUoyDfS6CDuVS5FxVnKxIsgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5902

On 26.11.2021 14:13, Andrew Cooper wrote:
> On 26/11/2021 12:48, Jan Beulich wrote:
>> On 26.11.2021 13:33, Andrew Cooper wrote:
>>>   * I have not checked for misaligned endbr64's, and I'm not sure there=
 is
>>>     anything useful we could do upon discovering that there were any.
>>>     Naively, there is a 1 in 2^32 chance (endbr64 being 4 bytes long), =
but
>>>     this doesn't account for the structure of x86 code, which is most
>>>     certainly not a uniform random distribution of bytes.
>> Do you really mean "misaligned" here? The 2nd sentence rather might sugg=
est
>> that you mean byte sequences resembling ENDBR, despite actually being pa=
rt
>> of other insns. If so, checking might not allow to prove anything, as e.=
g.
>> displacements change with about every build.
>=20
> I do mean "any sequence of bytes resembling ENDBR", because that is
> ultimately how the CPU instruction decode will behave.
>=20
> And yes - you certainly can hide it in a 4-byte disp/imm, but it's an
> incredibly rare imm32 to find (except for tasks such as in patch 64).=C2=
=A0

A disp alone won't do in general, as the top byte will only ever be 0x00
or 0xFF (as long as our binary image doesn't go beyond 16Mb). But a
ModR/M or SIB byte could start such a sequence, with only two or three
of the (lower) disp bytes used to complete the pattern.

> You can also hide it in an disp/imm8 followed by a specific nopl, but
> I'm not sure if we'd ever emit 0F 1E FA as a nopl by default.

We don't, and the tool chain doesn't either. Only canonical NOPs (opcode
0x1F) are to be used there, as all others may gain a meaning beyond
plain NOP.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:30:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:30:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233077.404290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbJM-0000jx-Ib; Fri, 26 Nov 2021 13:30:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233077.404290; Fri, 26 Nov 2021 13:30:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbJM-0000jq-FM; Fri, 26 Nov 2021 13:30:44 +0000
Received: by outflank-mailman (input) for mailman id 233077;
 Fri, 26 Nov 2021 13:30:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqbJK-0000jR-LY; Fri, 26 Nov 2021 13:30:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqbJK-0008DD-EA; Fri, 26 Nov 2021 13:30:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqbJK-0002Ew-4R; Fri, 26 Nov 2021 13:30:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqbJK-0002hI-3y; Fri, 26 Nov 2021 13:30:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=lNXyNzviISG7A5SR1il955N7WPaIlLoUGvVNqagfkpQ=; b=jUE7bF2HYtOPb5lJ7VCUYfnYDX
	T/L6ESwCffDMlT2RIKXJFnha+hZM9QVy8Ishw7JMITIyNu0BdKkiG/hyTofECPr23qY7inh3b0m9u
	XreB1cb6l/IDCVvmdvFrnXXQQxn2DaLDbdUSPEG+V9jAusnflYsfQMlLJzWRixDSjgMo=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166370-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166370: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start:fail:allowable
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=14d02cfbe4adaeebe7cb833a8cc71191352cf03b
X-Osstest-Versions-That:
    qemuu=89d2f9e4c63799f7f03e9180c63b7dc45fc2a04a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Nov 2021 13:30:42 +0000

flight 166370 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166370/

Failures :-/ but no regressions.

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds     14 guest-start              fail REGR. vs. 166300

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166300
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166300
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166300
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166300
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166300
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166300
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166300
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166300
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 qemuu                14d02cfbe4adaeebe7cb833a8cc71191352cf03b
baseline version:
 qemuu                89d2f9e4c63799f7f03e9180c63b7dc45fc2a04a

Last test of basis   166300  2021-11-22 21:08:31 Z    3 days
Failing since        166307  2021-11-23 08:11:25 Z    3 days    3 attempts
Testing same since   166370  2021-11-25 03:10:11 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Daniella Lee <daniellalee111@gmail.com>
  Eric Auger <eric.auger@redhat.com>
  Eric Blake <eblake@redhat.com>
  Hanna Reitz <hreitz@redhat.com>
  John Snow <jsnow@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Laurent Vivier <laurent@vivier.eu>
  Lei Rao <lei.rao@intel.com>
  Peter Maydell <peter.maydell@linaro.org>
  Philippe Mathieu-Daudé <philmd@redhat.com>
  Rao, Lei <lei.rao@intel.com>
  Richard Henderson <richard.henderson@linaro.org>
  Stefan Weil <sw@weilnetz.de>
  Thomas Huth <thuth@redhat.com>
  Warner Losh <imp@bsdimp.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   89d2f9e4c6..14d02cfbe4  14d02cfbe4adaeebe7cb833a8cc71191352cf03b -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 13:51:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 13:51:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233106.404317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbd5-0003Lz-LL; Fri, 26 Nov 2021 13:51:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233106.404317; Fri, 26 Nov 2021 13:51:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbd5-0003Ls-Gp; Fri, 26 Nov 2021 13:51:07 +0000
Received: by outflank-mailman (input) for mailman id 233106;
 Fri, 26 Nov 2021 13:51:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=skxS=QN=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mqbd4-0003Lm-Ct
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 13:51:06 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e54f5dde-4ebf-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 14:51:03 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id k23so18965694lje.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 05:51:03 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id v15sm500510ljj.5.2021.11.26.05.51.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Nov 2021 05:51:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e54f5dde-4ebf-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=HzaxNAcrJLkS5d+Bi4ePJAj3TSX4GqKpzLtoILOmdyw=;
        b=Bs1Jb5xbZaMPWAqz09nWywcrW2/5dUgJ5NqxJORz4kG+/DFC11YOID5xvzID7dwb8U
         sHLxZ/OZI3KXDX5sEQaJBLUW9jsxLeKLfzI7q7+KhdkYxlfiM3iQp3U5YWnZXgD9Rayo
         ahoSmiQEB8xl7YoBOBAIQQTuje6q5Vh4H8LreLqiAEcxlTnOnaGKCOEUdZnP1baSvvNo
         csZWASRhiYMoZQzYp1N92k1vQD+0Zvvh5UuqHvdCgvXLskm9AR17KziTbul+sbTjmL0w
         I+5bGHGmbIJk/0UQ0mLFpf/EcTKmRPPKYlP/Pkz2PlJsct/Vz3Vxtqp5Q8WP5nGM/TZa
         wmWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=HzaxNAcrJLkS5d+Bi4ePJAj3TSX4GqKpzLtoILOmdyw=;
        b=Pn+XUDEOqTkr6CUhr/fO2oVk5I3AazR10X65zi+RvejDb1k/G5eIvg2zoaVzrqsPws
         aOiZn6Okl5zFmg7LoriNT52S9UfpG6Ehyyheq//ET6WD2pufzUcH/mhwyn1FKbBAo1fs
         5bNtUMi/gf4WAn0OdSNkx7ebu/Y9U6FS3boN4O5uQE1vNPsxzUnq8wBsNJu+l08LJSCu
         CtZmV9Pk9jIKmm3JCM6ybNO9IxmicmJVkc7Gg4nilANSxiHawdfdu0tUrfYGw7QJmuu6
         SC2HQXj5keK+/1aAmd3bpb9SZzC0MPeUQ2uNTkHCD+X3GdcCtYVlee9oSFJa0CqR0yVY
         r6Wg==
X-Gm-Message-State: AOAM532Yb/9yrPgDxaiJMFwqg1S5vyU59QXUEWOvgf7AIoV6/zCPR2Ox
	4U4/xfyad2CxXxZmjqyBN6E=
X-Google-Smtp-Source: ABdhPJzRKglYJQ3mcyItkNA+gjWXCrld5aO+o+YtaVr1nSQ6yzeGPr8dCYPL9mPNs6V7i0FofzFHHQ==
X-Received: by 2002:a2e:7618:: with SMTP id r24mr30915618ljc.144.1637934662832;
        Fri, 26 Nov 2021 05:51:02 -0800 (PST)
Subject: Re: [RFC PATCH V3] xen/gnttab: Store frame GFN in struct page_info on
 Arm
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <1632425551-18910-1-git-send-email-olekstysh@gmail.com>
 <863c9a06-f0af-eac1-fb04-e059e4ce0a09@xen.org>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <89f27a30-187c-6223-9dbb-1e3f52213868@gmail.com>
Date: Fri, 26 Nov 2021 15:51:01 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <863c9a06-f0af-eac1-fb04-e059e4ce0a09@xen.org>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 25.11.21 21:04, Julien Grall wrote:
> Hi Oleksandr,
>
> Apologies for the late answer. I was waiting for XSA-387 to go out 
> before commenting.


Hi Julien,


I got it, no problem


>
>
> On 23/09/2021 20:32, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> Rework Arm implementation to store grant table frame GFN
>> in struct page_info directly instead of keeping it in
>> standalone status/shared arrays.
>>
>> To cover 64-bit/40-bit IPA on Arm64/Arm32 we need the space
>> to hold 52-bit/28-bit + extra bit value respectively. In order
>> to not grow the size of struct page_info borrow the required
>> amount of bits from type_info's count portion which current
>> context won't suffer (currently only 1 bit is used on Arm).
>> Please note, to minimize code changes and avoid introducing
>> an extra #ifdef-s to the header, we keep the same amount of
>> bits on both subarches, although the count portion on Arm64
>> could be wider, so we waste some bits here.
>>
>> Introduce corresponding PGT_* constructs and access macros.
>> Update existing gnttab macros to deal with GFN value according
>> to new location. Also update the use of count portion on Arm
>> in share_xen_page_with_guest().
>>
>> Update the P2M code to clean said GFN portion when putting
>> a reference on the grant table page in p2m_put_l3_page().
>> The added check is based on the assumption that grant table page
>> is the xen_heap page and its entry has p2m_ram_rw type, which
>> is correct. However, this check is not entirely precise and we
>> might end up clearing the GFN portion for other xen_heap pages
>> with the same p2m_type. But, this action is considered as
>> harmless, since only grant table pages really use that portion.
>>
>> And for everything to work correctly introduce arch-specific
>> macros to be called from alloc_xenheap_pages()/free_xenheap_pages()
>> which purposes on Arm are to clear the portion before use and
>> make sure the portion is cleared after use, on x86 these are
>> just stubs.
>>
>> This patch is intended to fix the potential issue on Arm
>> which might happen when remapping grant-table frame.
>> A guest (or the toolstack) will unmap the grant-table frame
>> using XENMEM_remove_physmap. This is a generic hypercall,
>> so on x86, we are relying on the fact the M2P entry will
>> be cleared on removal. For architecture without the M2P,
>> the GFN would still be present in the grant frame/status
>> array. So on the next call to map the page, we will end up to
>> request the P2M to remove whatever mapping was the given GFN.
>> This could well be another mapping.
>>
>> Besides that, this patch simplifies arch code on Arm by
>> removing arrays and corresponding management code and
>> as the result gnttab_init_arch/gnttab_destroy_arch helpers
>> and struct grant_table_arch become useless and can be
>> dropped globally.
>
> Before dropping the arch specific helpers, I would check with the 
> RISC-v folks that they will not need it in the near future.

arch/riscv/configs/tiny64_defconfig says that CONFIG_GRANT_TABLE is not 
set, for me it sounds like unlikely for *the near* future. But, anyway, 
it would be better to clarify.


>
>
>> Suggested-by: Julien Grall <jgrall@amazon.com>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>> You can find the related discussions at:
>> https://lore.kernel.org/xen-devel/93d0df14-2c8a-c2e3-8c51-54412190171c@xen.org/ 
>>
>> https://lore.kernel.org/xen-devel/1628890077-12545-1-git-send-email-olekstysh@gmail.com/ 
>>
>> https://lore.kernel.org/xen-devel/1631652245-30746-1-git-send-email-olekstysh@gmail.com/ 
>>
>>
>> ! Please note, there is still unresolved locking question here for which
>> I failed to find a suitable solution. So, it is still an RFC !
>>
>> According to the internal conversation:
>> Now the GFN field in the struct page_info is accessed from
>> gnttab_set_frame_gfn() in the grant table code and from 
>> page_set_frame_gfn()
>> in the P2M code (the former uses the latter).
>>
>> We need to prevent the concurrent access to this field. But, we 
>> cannot grab
>> the grant lock from the P2M code because we will introduce a lock 
>> inversion.
>> The page_set_frame_gfn() will be called from the P2M code with the 
>> p2m lock held
>> and then acquire the grant table lock. The gnttab_map_frame() will do 
>> the inverse.
>
> This is a tricky one. I think, we will:
>
>   1) Need to use the P2M lock to protect the access to the GFN in the 
> struct page_info *.
>   2) Defer the call to page_set_frame_gfn() from gnttab_map_frame() to 
> xenmem_add_to_physmap_one()
>   3) In xenmem_add_to_physmap_one() hold the P2M lock while checking 
> the page was not already mapped (e.g. page_get_frame_gfn() == 
> INVALID_GFN) and do the mapping. Call page_set_frame_gfn() on success.
>
> This would still allow the guest to shot itself in the foot (e.g. 
> potentially removing the wrong mapping) if it tries concurrent 
> hypercall but I believe we would not introduce issue like XSA-380.
>
> At the end this would look quite similar to how x86 deal with the M2P 
> update.

Thank you for the suggestion, I need to analyze the code to better 
understand your idea and technical possibility to implement it, I will 
come up with questions if any.


>
>
> For the record, I actually considered whether it is worth to fully 
> implement an M2P on Arm. We technically have space in the struct 
> page_info for that. However, I don't see it necessary in other place 
> of Xen, so I would prefer to keep the space free for other purpose (or 
> event be able to remove it).
>
> @Stefano, what do you think?
>
>>
>> Changes RFC1 -> RFC2:
>>   - update patch description
>>   - add/update comments in code
>>   - clarify check in p2m_put_l3_page()
>>   - introduce arch_alloc_xenheap_page() and arch_free_xenheap_page()
>>     and drop page_arch_init()
>>   - add ASSERT to gnttab_shared_page() and gnttab_status_page()
>>   - rework changes to Arm's struct page_info: do not split type_info,
>>     allocate GFN portion by reducing count portion, create corresponding
>>     PGT_* construct, etc
>>   - update page_get_frame_gfn() and page_set_frame_gfn()
>>   - update the use of count portion on Arm
>>   - drop the leading underscore in the macro parameter names
>>
>> Changes RFC2 -> RFC3:
>>   - update patch description
>>   - drop PGT_count_base and MASK_INSR() in share_xen_page_with_guest()
>>   - update alloc_xenheap_page() and free_xenheap_page() for 
>> SEPARATE_XENHEAP
>>     case (Arm32)
>>   - provide an extra bit for GFN portion, to get PGT_INVALID_FRAME_GFN
>>     one bit more than the maximum number of physical address bits on 
>> Arm32
>> ---
>>   xen/arch/arm/mm.c                 |  8 ++++--
>>   xen/arch/arm/p2m.c                | 21 ++++++++++++---
>>   xen/common/grant_table.c          |  9 -------
>>   xen/common/page_alloc.c           | 20 +++++++++++++-
>>   xen/include/asm-arm/grant_table.h | 57 
>> +++++++++++++++------------------------
>>   xen/include/asm-arm/mm.h          | 35 +++++++++++++++++++++---
>>   xen/include/asm-x86/grant_table.h |  5 ----
>>   xen/include/asm-x86/mm.h          |  4 +++
>>   8 files changed, 99 insertions(+), 60 deletions(-)
>>
>> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
>> index eea926d..b1e42e5 100644
>> --- a/xen/arch/arm/mm.c
>> +++ b/xen/arch/arm/mm.c
>> @@ -1376,14 +1376,18 @@ unsigned long domain_get_maximum_gpfn(struct 
>> domain *d)
>>   void share_xen_page_with_guest(struct page_info *page, struct 
>> domain *d,
>>                                  enum XENSHARE_flags flags)
>>   {
>> +    unsigned long type_info;
>> +
>>       if ( page_get_owner(page) == d )
>>           return;
>>         spin_lock(&d->page_alloc_lock);
>>         /* The incremented type count pins as writable or read-only. */
>> -    page->u.inuse.type_info =
>> -        (flags == SHARE_ro ? PGT_none : PGT_writable_page) | 1;
>> +    type_info = page->u.inuse.type_info & ~(PGT_type_mask | 
>> PGT_count_mask);
>
> The local variable can be avoided if you write:
>
> page->u.inuse.type_info &= ~(PGT_type_mask | PGT_count_mask);
> page->u.inuse.type_info |= ...;

agree, will do


>
>
>> +    page->u.inuse.type_info = type_info |
>> +        (flags == SHARE_ro ? PGT_none : PGT_writable_page) |
>> +        MASK_INSR(1, PGT_count_mask);
>>         page_set_owner(page, d);
>>       smp_wmb(); /* install valid domain ptr before updating refcnt. */
>> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
>> index 8b20b43..7a8d92d 100644
>> --- a/xen/arch/arm/p2m.c
>> +++ b/xen/arch/arm/p2m.c
>> @@ -718,8 +718,10 @@ static int p2m_mem_access_radix_set(struct 
>> p2m_domain *p2m, gfn_t gfn,
>>    * TODO: Handle superpages, for now we only take special references 
>> for leaf
>>    * pages (specifically foreign ones, which can't be super mapped 
>> today).
>>    */
>> -static void p2m_put_l3_page(const lpae_t pte)
>> +static void p2m_put_l3_page(struct p2m_domain *p2m, const lpae_t pte)
>
> You pass 'p2m' but you don't seem to use it.

indeed, p2m->domain was needed for the first version of this patch, but 
with current implementation it is not needed anymore, will drop.


>
>
>>   {
>> +    mfn_t mfn = lpae_get_mfn(pte);
>> +
>>       ASSERT(p2m_is_valid(pte));
>>         /*
>> @@ -731,11 +733,22 @@ static void p2m_put_l3_page(const lpae_t pte)
>>        */
>>       if ( p2m_is_foreign(pte.p2m.type) )
>>       {
>> -        mfn_t mfn = lpae_get_mfn(pte);
>> -
>>           ASSERT(mfn_valid(mfn));
>>           put_page(mfn_to_page(mfn));
>>       }
>> +
>> +#ifdef CONFIG_GRANT_TABLE
>> +    /*
>> +     * Check whether we deal with grant table page. As the grant 
>> table page
>> +     * is xen_heap page and its entry has known p2m type, detect it 
>> and mark
>> +     * the stored GFN as invalid. Although this check is not precise 
>> and we
>> +     * might end up updating this for other xen_heap pages, this 
>> action is
>> +     * harmless to these pages since only grant table pages have 
>> this field
>> +     * in use. So, at worst, unnecessary action might be performed.
>> +     */
>> +    if ( (pte.p2m.type == p2m_ram_rw) && is_xen_heap_mfn(mfn) )
>
> I would use p2m_is_ram() to cover read-only mapping. I think it would 
> also be better to use an ``else if`` so it is clear that this doesn't 
> cover foreign mapping (it is possible to map xenheap page from another 
> domain).

ok, will use p2m_is_ram() and ``else if`` construct, however I don't 
entirely understand why we also want/need to include read-only pages (as 
type is set to p2m_ram_rw in xenmem_add_to_physmap_one() for case 
XENMAPSPACE_grant_table)?


>
>
>> + page_set_frame_gfn(mfn_to_page(mfn), INVALID_GFN);
>> +#endif
>>   }
>>     /* Free lpae sub-tree behind an entry */
>> @@ -768,7 +781,7 @@ static void p2m_free_entry(struct p2m_domain *p2m,
>>           p2m->stats.mappings[level]--;
>>           /* Nothing to do if the entry is a super-page. */
>>           if ( level == 3 )
>> -            p2m_put_l3_page(entry);
>> +            p2m_put_l3_page(p2m, entry);
>>           return;
>>       }
>>   diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
>> index fe1fc11..08fc827 100644
>> --- a/xen/common/grant_table.c
>> +++ b/xen/common/grant_table.c
>> @@ -93,8 +93,6 @@ struct grant_table {
>>         /* Domain to which this struct grant_table belongs. */
>>       const struct domain *domain;
>> -
>> -    struct grant_table_arch arch;
>>   };
>>     unsigned int __read_mostly opt_max_grant_frames = 64;
>> @@ -1981,14 +1979,9 @@ int grant_table_init(struct domain *d, int 
>> max_grant_frames,
>>         grant_write_lock(gt);
>>   -    ret = gnttab_init_arch(gt);
>> -    if ( ret )
>> -        goto unlock;
>> -
>>       /* gnttab_grow_table() allocates a min number of frames, so 0 
>> is okay. */
>>       ret = gnttab_grow_table(d, 0);
>>   - unlock:
>>       grant_write_unlock(gt);
>>      out:
>> @@ -3894,8 +3887,6 @@ grant_table_destroy(
>>       if ( t == NULL )
>>           return;
>>   -    gnttab_destroy_arch(t);
>> -
>>       for ( i = 0; i < nr_grant_frames(t); i++ )
>>           free_xenheap_page(t->shared_raw[i]);
>>       xfree(t->shared_raw);
>> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
>> index 5801358..aafd847 100644
>> --- a/xen/common/page_alloc.c
>> +++ b/xen/common/page_alloc.c
>> @@ -2161,6 +2161,7 @@ void init_xenheap_pages(paddr_t ps, paddr_t pe)
>>   void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
>>   {
>>       struct page_info *pg;
>> +    unsigned int i;
>>         ASSERT(!in_irq());
>>   @@ -2169,6 +2170,9 @@ void *alloc_xenheap_pages(unsigned int order, 
>> unsigned int memflags)
>>       if ( unlikely(pg == NULL) )
>>           return NULL;
>>   +    for ( i = 0; i < (1u << order); i++ )
>> +        arch_alloc_xenheap_page(&pg[i]);
>> +
>>       memguard_unguard_range(page_to_virt(pg), 1 << (order + 
>> PAGE_SHIFT));
>>         return page_to_virt(pg);
>> @@ -2177,14 +2181,22 @@ void *alloc_xenheap_pages(unsigned int order, 
>> unsigned int memflags)
>>     void free_xenheap_pages(void *v, unsigned int order)
>>   {
>> +    struct page_info *pg;
>> +    unsigned int i;
>> +
>>       ASSERT(!in_irq());
>>         if ( v == NULL )
>>           return;
>>   +    pg = virt_to_page(v);
>> +
>>       memguard_guard_range(v, 1 << (order + PAGE_SHIFT));
>>   -    free_heap_pages(virt_to_page(v), order, false);
>> +    for ( i = 0; i < (1u << order); i++ )
>> +        arch_free_xenheap_page(&pg[i]);
>> +
>> +    free_heap_pages(pg, order, false);
>>   }
>>     #else  /* !CONFIG_SEPARATE_XENHEAP */
>> @@ -2220,7 +2232,10 @@ void *alloc_xenheap_pages(unsigned int order, 
>> unsigned int memflags)
>>           return NULL;
>>         for ( i = 0; i < (1u << order); i++ )
>> +    {
>>           pg[i].count_info |= PGC_xen_heap;
>> +        arch_alloc_xenheap_page(&pg[i]);
>> +    }
>>         return page_to_virt(pg);
>>   }
>> @@ -2238,7 +2253,10 @@ void free_xenheap_pages(void *v, unsigned int 
>> order)
>>       pg = virt_to_page(v);
>>         for ( i = 0; i < (1u << order); i++ )
>> +    {
>>           pg[i].count_info &= ~PGC_xen_heap;
>> +        arch_free_xenheap_page(&pg[i]);
>> +    }
>>         free_heap_pages(pg, order, true);
>>   }
>> diff --git a/xen/include/asm-arm/grant_table.h 
>> b/xen/include/asm-arm/grant_table.h
>> index 0ce77f9..479339d 100644
>> --- a/xen/include/asm-arm/grant_table.h
>> +++ b/xen/include/asm-arm/grant_table.h
>> @@ -11,11 +11,6 @@
>>   #define INITIAL_NR_GRANT_FRAMES 1U
>>   #define GNTTAB_MAX_VERSION 1
>>   -struct grant_table_arch {
>> -    gfn_t *shared_gfn;
>> -    gfn_t *status_gfn;
>> -};
>> -
>>   static inline void gnttab_clear_flags(struct domain *d,
>>                                         unsigned int mask, uint16_t 
>> *addr)
>>   {
>> @@ -46,35 +41,11 @@ int replace_grant_host_mapping(unsigned long 
>> gpaddr, mfn_t mfn,
>>   #define gnttab_dom0_frames() \
>>       min_t(unsigned int, opt_max_grant_frames, PFN_DOWN(_etext - 
>> _stext))
>>   -#define gnttab_init_arch(gt) \
>> -({ \
>> -    unsigned int ngf_ = 
>> (gt)->max_grant_frames;                          \
>> -    unsigned int nsf_ = 
>> grant_to_status_frames(ngf_);                    \
>> - \
>> -    (gt)->arch.shared_gfn = xmalloc_array(gfn_t, 
>> ngf_);                  \
>> -    (gt)->arch.status_gfn = xmalloc_array(gfn_t, 
>> nsf_);                  \
>> -    if ( (gt)->arch.shared_gfn && (gt)->arch.status_gfn 
>> )                \
>> - { \
>> -        while ( ngf_-- 
>> )                                                 \
>> -            (gt)->arch.shared_gfn[ngf_] = 
>> INVALID_GFN;                   \
>> -        while ( nsf_-- 
>> )                                                 \
>> -            (gt)->arch.status_gfn[nsf_] = 
>> INVALID_GFN;                   \
>> - } \
>> - else \
>> - gnttab_destroy_arch(gt); \
>> -    (gt)->arch.shared_gfn ? 0 : 
>> -ENOMEM;                                 \
>> -})
>> -
>> -#define gnttab_destroy_arch(gt) \
>> -    do { \
>> - XFREE((gt)->arch.shared_gfn); \
>> - XFREE((gt)->arch.status_gfn); \
>> -    } while ( 0 )
>> -
>>   #define gnttab_set_frame_gfn(gt, st, idx, 
>> gfn)                           \
>>       do { \
>> -        ((st) ? (gt)->arch.status_gfn : (gt)->arch.shared_gfn)[idx] 
>> =    \
>> - (gfn);                                                       \
>> +        struct page_info *pg_ = (st) ? gnttab_status_page(gt, 
>> idx)       \
>> +                                     : gnttab_shared_page(gt, 
>> idx);      \
>> +        page_set_frame_gfn(pg_, 
>> gfn);                                    \
>>       } while ( 0 )
>>     #define gnttab_get_frame_gfn(gt, st, idx) 
>> ({                             \
>> @@ -82,11 +53,25 @@ int replace_grant_host_mapping(unsigned long 
>> gpaddr, mfn_t mfn,
>>           : gnttab_shared_gfn(NULL, gt, 
>> idx);                              \
>>   })
>>   -#define gnttab_shared_gfn(d, t, 
>> i)                                       \
>> -    (((i) >= nr_grant_frames(t)) ? INVALID_GFN : 
>> (t)->arch.shared_gfn[i])
>> +#define gnttab_shared_page(t, i) 
>> ({                                      \
>> + ASSERT((t)->shared_raw[i]); \
>
> The ASSERT() is unnecessary because virt_to_mfn() will panic() if the 
> virtual address is not mapped.

Right, ...


>
>
>> + mfn_to_page(_mfn(__virt_to_mfn((t)->shared_raw[i]))); \
>
> You can directly use virt_to_page(...) for xenheap which also contains
> some ASSERT() preventing NULL among other value.

    ... indeed this would look much better


>
>
>> +})
>> +
>> +#define gnttab_status_page(t, i) 
>> ({                                      \
>> + ASSERT((t)->status[i]); \
>> + mfn_to_page(_mfn(__virt_to_mfn((t)->status[i]))); \
>
> Same here.

ok


>
>> +})
>>   -#define gnttab_status_gfn(d, t, 
>> i)                                       \
>> -    (((i) >= nr_status_frames(t)) ? INVALID_GFN : 
>> (t)->arch.status_gfn[i])
>> +#define gnttab_shared_gfn(d, t, i) 
>> ({                                    \
>> +    struct page_info *pg_ = gnttab_shared_page(t, 
>> i);                    \
>
> NIT: I would drop the local variable.

ok


>
>
>> + page_get_frame_gfn(pg_); \
>> +})
>> +
>> +#define gnttab_status_gfn(d, t, i) 
>> ({                                    \
>> +    struct page_info *pg_ = gnttab_status_page(t, 
>> i);                    \
>
> NIT: I would drop the local variable.

ok


>
>> + page_get_frame_gfn(pg_); \
>> +})
>>     #define gnttab_need_iommu_mapping(d)                    \
>>       (is_domain_direct_mapped(d) && is_iommu_enabled(d))
>> diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
>> index 7b5e7b7..a00c5f5 100644
>> --- a/xen/include/asm-arm/mm.h
>> +++ b/xen/include/asm-arm/mm.h
>> @@ -98,9 +98,17 @@ struct page_info
>>   #define PGT_writable_page PG_mask(1, 1)  /* has writable 
>> mappings?         */
>>   #define PGT_type_mask     PG_mask(1, 1)  /* Bits 31 or 
>> 63.                 */
>>   - /* Count of uses of this frame as its current type. */
>> -#define PGT_count_width   PG_shift(2)
>> -#define PGT_count_mask    ((1UL<<PGT_count_width)-1)
>> + /* 2-bit count of uses of this frame as its current type. */
>> +#define PGT_count_mask    PG_mask(3, 3)
>> +
>> +/*
>> + * Stored in bits [28:0] or [60:0] GFN if page is used for grant 
>> table frame.
>
> I think this wording is conflicting with ...
>
>> + * This only valid for the xenheap pages.
>
> ... this becase xen heap pages are used in other situations. But I 
> would prefer if the comment doesn't mention grant-table frame. This 
> would allow use to repurpose the field for other xenheap if needed.
>
> Typo: This *is* only valid


ok, so how about to simply mention it's purpose as xenheap GFN here and 
down this header?

For example,
Stored in bits [28:0] or [60:0] GFN if page is xenheap page.

BTW, shall I rename the access helpers page_set(get)_frame_gfn() as 
well? For me the frame is associated with grant-table.
Something to: page_set(get)_xenheap_gfn() or even page_set(get)_gfn().


>
>
>> + */
>> +#define PGT_gfn_width     PG_shift(3)
>> +#define PGT_gfn_mask      ((1UL<<PGT_gfn_width)-1)
>> +
>> +#define PGT_INVALID_FRAME_GFN   _gfn(PGT_gfn_mask)
>>      /* Cleared when the owning guest 'frees' this page. */
>>   #define _PGC_allocated    PG_shift(1)
>> @@ -166,6 +174,27 @@ extern unsigned long xenheap_base_pdx;
>>     #define maddr_get_owner(ma) (page_get_owner(maddr_to_page((ma))))
>>   +#define page_get_frame_gfn(p) ({                                \
>
> Above, you wrote:
>
> "This is only valid for xenheap pages". So I would add an ASSERT() to 
> confirm that.

Sounds reasonable, will add.


>
>
>> +    gfn_t gfn_ = _gfn((p)->u.inuse.type_info & PGT_gfn_mask);   \
>> +    gfn_eq(gfn_, PGT_INVALID_FRAME_GFN) ? INVALID_GFN : gfn_; \
>> +})
>
> Can the function be converted to a static inline?


I don't see why not from the first look, will convert.


>
>
>> +
>> +#define page_set_frame_gfn(p, gfn) ({ \
>
> Same questions as above to add an ASSERT() and convert to a static inline.


ok


>
>
>> +    gfn_t gfn_ = gfn_eq(gfn, INVALID_GFN) ?                     \
>> +                 PGT_INVALID_FRAME_GFN : gfn; \
>> +    (p)->u.inuse.type_info &= ~PGT_gfn_mask;                    \
>> +    (p)->u.inuse.type_info |= gfn_x(gfn_);                      \
>> +})
>> +
>> +/*
>> + * As the struct page_info representing the xen_heap page can contain
>> + * the grant table frame GFN on Arm we need to clear it beforehand and
>> + * make sure it is not still set when freeing a page.
>> + */
> I would prefer if the comment doesn't mention grant-table frame. This 
> would allow use to repurpose the field for other xenheap if needed.

ok


>
>
>> +#define arch_alloc_xenheap_page(p) page_set_frame_gfn(p, INVALID_GFN)
>> +#define arch_free_xenheap_page(p) \
>> +    BUG_ON(!gfn_eq(page_get_frame_gfn(p), INVALID_GFN))
>
> I believe this BUG_ON() could be triggered if gnttab_map_frame() 
> succeeds but then we fail to insert the entry in the P2M. This means 
> we would need to revert changes done in gnttab_map_frame() in case of 
> failure.
>
> However, I am still a bit unease with the BUG_ON(). A domain will not 
> necessarily remove the grant-table mapping from its P2M before 
> shutting down. So you are relying on Xen to go through the P2M before 
> we free the page.
>
> This is the case today, but I am not sure we would want to rely on it 
> because it will be hard to remember this requirement if we decide to 
> optimize p2m_relinquish().
>
> One possibility would be to add a comment in p2m_relinquish(). That's 
> assuming there are no other places which could lead to false 
> positively hit the BUG().

These make me think that it would be better (safer and simpler) to just 
remove this BUG_ON() for now. Do you agree?


>
>
>> +
>>   #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
>>   /* PDX of the first page in the frame table. */
>>   extern unsigned long frametable_base_pdx;
>> diff --git a/xen/include/asm-x86/grant_table.h 
>> b/xen/include/asm-x86/grant_table.h
>> index 84e3296..0eb018f 100644
>> --- a/xen/include/asm-x86/grant_table.h
>> +++ b/xen/include/asm-x86/grant_table.h
>> @@ -14,9 +14,6 @@
>>     #define INITIAL_NR_GRANT_FRAMES 1U
>>   -struct grant_table_arch {
>> -};
>> -
>>   static inline int create_grant_host_mapping(uint64_t addr, mfn_t 
>> frame,
>>                                               unsigned int flags,
>>                                               unsigned int cache_flags)
>> @@ -35,8 +32,6 @@ static inline int 
>> replace_grant_host_mapping(uint64_t addr, mfn_t frame,
>>       return replace_grant_pv_mapping(addr, frame, new_addr, flags);
>>   }
>>   -#define gnttab_init_arch(gt) 0
>> -#define gnttab_destroy_arch(gt) do {} while ( 0 )
>>   #define gnttab_set_frame_gfn(gt, st, idx, gfn) do {} while ( 0 )
>>   #define gnttab_get_frame_gfn(gt, st, idx) 
>> ({                             \
>>       mfn_t mfn_ = (st) ? gnttab_status_mfn(gt, 
>> idx)                       \
>> diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
>> index cb90527..04d8704 100644
>> --- a/xen/include/asm-x86/mm.h
>> +++ b/xen/include/asm-x86/mm.h
>> @@ -327,6 +327,10 @@ struct page_info
>>     #define maddr_get_owner(ma) (page_get_owner(maddr_to_page((ma))))
>>   +/* No arch-specific actions are needed for the xen_heap page */
>> +#define arch_alloc_xenheap_page(p)   do {} while ( 0 )
>> +#define arch_free_xenheap_page(p)    do {} while ( 0 )
>> +
>>   #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
>>   extern unsigned long max_page;
>>   extern unsigned long total_pages;
>>
>
-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 14:10:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 14:10:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233125.404352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbvi-0005vH-Kl; Fri, 26 Nov 2021 14:10:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233125.404352; Fri, 26 Nov 2021 14:10:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqbvi-0005vA-Gz; Fri, 26 Nov 2021 14:10:22 +0000
Received: by outflank-mailman (input) for mailman id 233125;
 Fri, 26 Nov 2021 14:10:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqbvh-0005v4-BD
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 14:10:21 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 96adc375-4ec2-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 15:10:20 +0100 (CET)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2057.outbound.protection.outlook.com [104.47.1.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-39-14-rgWZoNzmbAwJ4mBOAjg-1; Fri, 26 Nov 2021 15:10:18 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4605.eurprd04.prod.outlook.com (2603:10a6:803:65::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 26 Nov
 2021 14:10:17 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 14:10:17 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR2P281CA0022.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.16 via Frontend Transport; Fri, 26 Nov 2021 14:10:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96adc375-4ec2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637935819;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=YD0O1Cb5LPjOUy6fPt9e1rTxX0nxSQaYxZVe4srj4u8=;
	b=Bmyk3OT2moqbmxrVrXNVG+szxR8JXB8bhxnaKnt1A7uzFYatTginBhz1Avmid5JoFZpwh6
	hz3Pl1HMln/ZDhQtFwNkvD7KbFPiJxw8v3DSCq9KQwej/8qooxuNqw9H2WRVgztPP2FEmL
	IDXutq2PjsC2FyE/lyQ0hECZeJDaXGI=
X-MC-Unique: 14-rgWZoNzmbAwJ4mBOAjg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jqtu/EqtYpLTkPq+LxgAJXb9OOCut7ZsApIak6FJwLb+Vq6C4RB1W1gdg7t0ARCp6BSHReLdBC5gD/NJW94vhsJ0axwftZsDT8qqJ4uu4ZZRi6Bw4c9HKdCrJEfHRCMylYxd8J9pI4P+PfmDUCFilpsKfIusEjEW5hDJUhuSBE1mbU66J/bKzvhCU7toBa3/OomBwOhpv4qPrzu0trX0mLohEuDyAney7iDKZvm4dtPUHlj3wmtySB+DsbZ+I9xE/49iM2ST3y6dxV6u81o8KIpB+j+wkjKbn1UfiGvJpqg/E1jJBxEo3T88kV8AKRSyROuORtBK0scYbRrP416RgQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YD0O1Cb5LPjOUy6fPt9e1rTxX0nxSQaYxZVe4srj4u8=;
 b=D9h62Wkxu+g+wbG94N/KKmjssRA595LZo+HrprsgHGJEtlTDhLcSXFhK3gJf6mqQums50b1ySKjAJhzQqkJ3uw7PhnAP0jwc/pHs8t1uHYV0cpR2LxApVUzVAnfOQN26U/D7OpSpBpxJShHmM45rnodAattiJ3B1cIuP8tyu58xab/Lw/bevY7+uGLS95ZAgMJWYOHUHaUafAWzJw1q0/rVSzYSlFUFUZfcCXcsWvxPxdm2rGr+z1+L5KwzfEbLmZgGIidcntvOf+JYyvhmrzIH0R8B0P7HE/pbJCHmk1ruzar0j6Br43Mht4OljNjTqh2TnDuErfQ6SPtsmxiIhVA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <69d1b4a3-a042-c2c4-2f59-ea897886ae1d@suse.com>
Date: Fri, 26 Nov 2021 15:10:16 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 01/65] x86: Introduce support for CET-IBT
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-2-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0022.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:14::9) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3d82a074-8e5e-450d-a58f-08d9b0e67965
X-MS-TrafficTypeDiagnostic: VI1PR04MB4605:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB46059129D62A4F60AEC51FD3B3639@VI1PR04MB4605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	FzHtrMgcQCjWXEWzAupgAeghtIytVVvXKF2HQ8zcZ1KfKZ3vRkho/waqGDV4tqPM6La8HCYb87ftE5fh9pyH3FVf7sf6nmJV6wegSYiV4PymcwkHoVT6H+5sJKwsYvmcALIjOH6DXEBMNri7ftG7oHR9X/VBM95/s6W+O/c88ylqGMjWHetw2RebIPgJaKmR+HZ8rb2pmJtxN0LOirVmJhg7I+IuLB87JDDzuLkzYW6YYHcjLRgoQhRGsdR6LWJ0zm742wJEiSO0EbFtEB2o7JrLQ9j7t9Ux7cU/gZHXDnyMj7FbfSor/WXVefEA434TZzVKMDJ6aqpCJB7W3b+/Gi+63T7wLaxW7uuCg3O272yZ6VEEFXNiU87X/eX/LCD9rBul5OuMih6zn1/i0G4oEnehNf8hEDeWCmSEDxXUw7XjkUNS3mNPIztpezePTPWmvHuLjtGMsyNKNi01hb/oUlL/r1jRf+zZy5jiF1k9gP03NlJjXU1pW8tMIcAqirwWydoymn3sSZhkxKkRgTZ88yOCtlmn5o3m9lCri0mRy2HUcOXabnzLkUPttz1wKw+cOHbL3nyS/DwKKaHMnvaeWUD7M/oHplsqmKQ1mNXoHa16obJMQDBlpal6fga+bPx7Rd5VG2jJ4BfSjULcZcSd47TaMc8xOHciDMplb4W+6WeJ3f2LcuBW47m8EybHn8BzBif5Fc0mjtD/2YT78vL/T8d1z0S4aH+pvUXoCWvD3as=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(66946007)(53546011)(36756003)(2906002)(4326008)(38100700002)(16576012)(186003)(6486002)(31686004)(54906003)(316002)(26005)(66476007)(6916009)(31696002)(508600001)(8936002)(86362001)(8676002)(66556008)(5660300002)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZmsrcWpoUzVBek5QRHoyY3Z0R2lQalpuYlpsemI3T1dYaHRsQ3dwNUJ2NU50?=
 =?utf-8?B?UFRmS0RJQ2k4QlBrdVZwTGpDK0loUTZ6ZWVvVGYzL3hodS80NHpDV1lEVzBl?=
 =?utf-8?B?amg3L3o0Q1BJZlpVT0NMaGZCQ0ZRTzVMcXpqbHhVVmNCM0Q3Nzg5VERPSUps?=
 =?utf-8?B?MkF1OWRVL09HQVhQSW4rNG1lakhoQkxFT0tzT3JqNGk2Tmh5MXNjbThaaTJD?=
 =?utf-8?B?dCsveVFOYU1WMmhhYlI3RFA0WmEwYXZVdm1CVk1LR2xKSW9GdWhqRXhaMVBy?=
 =?utf-8?B?RUc1OGxnY01tWGY4eXJhNm15Qy8yWUJJVVhGK0NJN0lJRkFieHFEMllWeVFC?=
 =?utf-8?B?bk1DQnVRb1V0dndIV2NaenRHTzF6bklFK1RmUjVXVlZ1WVZXOC9kME5kRGlk?=
 =?utf-8?B?MjJjTzBpZjNYVVBmM3kzYVNUMis1MGNhY1BudDdKUm5BTjNxQnF3dzhYUnhT?=
 =?utf-8?B?SWR0MEhPK09tYzN5UXF0WmNnem1PejY4WUpxWEN2U05LMU82Y0F6ZDFMekpp?=
 =?utf-8?B?YzU5RmZlUXpsTlo2YkFpYWZsd3p6YTFBNURVZlkyb3JtMjI4VExuUDgxMmg4?=
 =?utf-8?B?eFRHaE9vUEVSQ0p0b3RraVZibXZVT0J6b2NvRVJudCt3eEp3THZENktnc2sw?=
 =?utf-8?B?amFRVXh1NUYrL0MvUWFnK2t2N2NoS0JaR0pZVlkyZkVkbFNvbGxVblZhYWVL?=
 =?utf-8?B?Zms0YkhlZGtxMzliSUxQQ1Q2Z0FCRGRRRVcxM2V5dTEwSFB0b3BFWkVpZDJW?=
 =?utf-8?B?NmlXektwMXZ0SFRFa0tqczBsOHRHMXhiMDAzQmNEcHI5c3FWaXkwR1loUDNT?=
 =?utf-8?B?bVBxd0N0c0NBeTBmeWJyakZjU21kM0c0VE4yK2puS3ZBbzJ3dGpRMStkRVBI?=
 =?utf-8?B?RlRxT3g0ZjIzeEF0T1phcmNXRElndm9nYlpJYU5jOTZlOHBzcWFETmt1dE1o?=
 =?utf-8?B?VUw3TGFBeGJpMFhkRnY1Vit6V0xoOG93dDNUTE5WRVhqUGtXeUJsZy80b0xX?=
 =?utf-8?B?TUpSbTNlMUUvb2UzZ0FGUUVVclVVZldvbUcyYURTRXFiUnpNNWMwWHlEYklG?=
 =?utf-8?B?K0EyM1lkUFRRZTRUSTlMMTFWeE54QnBCR2JMWENOQVd0Rkg1VmhFY2EwNEw3?=
 =?utf-8?B?N0E3Kzdjc2k4Q0YvaStjcjA0NzJZL2l5MlVoUGJDMkgvcTZDK0xXWlErMzZD?=
 =?utf-8?B?MFFaSDg4TDkvTFlEOFY2S2JnSHo1U0VBSGlZWkJEOHdZejVES0w1OTJlNWxN?=
 =?utf-8?B?eWp6alVvM0t1R1lCTWNZMU9LWktsT1JmVUYvbjJWZGh2Q2xuZjJta2VpWlBR?=
 =?utf-8?B?am1CZFlYR0dnZkN5UzhOVGhVQk8zd2pnU2kyQVk0NWZoQnJZSGJCN09PbVNp?=
 =?utf-8?B?SVZVcnRuckJ4ZDBsWGwwbDFkaWtVcDNwWGJqWmpKbjhyNktvcHFXWmd5MjBp?=
 =?utf-8?B?c0pKYkJKay9WRFlUOWl3cGhHWkNLWlppRitZOTRlUkVRbFljN2JMMGxadjQx?=
 =?utf-8?B?SC9rWTJ5SzQ0UHU1QlFNNVlSYi8ycVB5cUMrU1g1Y1RySjAxQVlKVU0wU2NX?=
 =?utf-8?B?bmhJNDZ6YkNoSWNKUHRqQnYycGVvVFFMZ0FaaisxUTR1bUpYZjROSVV5OHdR?=
 =?utf-8?B?OEVYb0xpRktrL1VndCtKRG9CWW5XcUt3T2xjakNwUGRPMWtYQ2R6bHYxaS9u?=
 =?utf-8?B?bGRsR3ltbEVIaXAwT0ZLQWFZdEIwNjYxQWNCMmRzS3JXaUdvcnRtWGNiVmc4?=
 =?utf-8?B?eUlralhKT3hMRUJoNnVYRDdoMVNFaWxvMDdWd2ptQnN5ZFlhckc3bENTelor?=
 =?utf-8?B?YTZRVTYwbThpbnJFblViTVA3Y1JHQUE3VkJmQkovaHR0bUs1eXR5K2tZTGtv?=
 =?utf-8?B?SDZPVXlidTY4dk8xekRiMkdXa05hUGJRRGs2c0tsbjFaOXhNS3M0Mk1INWpZ?=
 =?utf-8?B?U21UVm13UGFycFFzRFM5ZGczTVBSTnh1QldTM0Q2bEtnQUVIc0ZrMytSR2Nx?=
 =?utf-8?B?SzNsbTlka3BhRVVKSTcwZ2FKWkhIQjltL2RMSFBkaVJFaXpIT2lwNDUwb1Jp?=
 =?utf-8?B?VjVla29pWlZCYTEwWkcyQU1aVFNqU0xhWTl0bmtySjNuUGtBWHlJai8vOWFJ?=
 =?utf-8?B?YUU1RVI2U1o2RTFUSGQwU1BuL1RZaHNXNXdpN1FGOGZ0bm5CVk1EWVY1U0VT?=
 =?utf-8?Q?Yo1FEv08X8jl+5GsDYMUML8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d82a074-8e5e-450d-a58f-08d9b0e67965
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 14:10:17.6616
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2wwo2wLkJYsAFc0kr++WwvLIucwrRhKOw7hUk4ATQeyuudB1G+WXBzrpCn+27v2j0rmwfu3hhn8am/HPomwi3g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4605

On 26.11.2021 13:33, Andrew Cooper wrote:
> @@ -124,6 +129,18 @@ config XEN_SHSTK
>  	  When CET-SS is active, 32bit PV guests cannot be used.  Backwards
>  	  compatiblity can be provided via the PV Shim mechanism.
>  
> +config XEN_IBT
> +	bool "Supervisor Indirect Branch Tracking"
> +	depends on HAS_CC_CET_IBT
> +	default y
> +	help
> +	  Control-flow Enforcement Technology (CET) is a set of features in
> +	  hardware designed to combat Return-oriented Programming (ROP, also
> +	  call/jump COP/JOP) attacks.  Indirect Branch Tracking is one CET
> +	  feature designed to provide function pointer protection.
> +
> +	  This option arranges for Xen to use CET-IBT for its own protection.

Shouldn't this depend on BROKEN until it's actually functional?

> --- a/xen/arch/x86/x86_emulate/x86_emulate.h
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.h
> @@ -35,6 +35,11 @@
>  # error Unknown compilation width
>  #endif
>  
> +#ifndef cf_check
> +/* Cope with userspace build not knowing about CET-IBT */
> +#define cf_check
> +#endif

Imo this shouldn't go here, but in tools/tests/x86_emulator/x86-emulate.h,
and then presumably without #ifdef.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 14:14:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 14:14:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233130.404363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqc02-0006ZX-79; Fri, 26 Nov 2021 14:14:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233130.404363; Fri, 26 Nov 2021 14:14:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqc02-0006ZQ-3U; Fri, 26 Nov 2021 14:14:50 +0000
Received: by outflank-mailman (input) for mailman id 233130;
 Fri, 26 Nov 2021 14:14:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=skxS=QN=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mqc00-0006ZJ-QN
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 14:14:48 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3643c892-4ec3-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 15:14:47 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id v15so19145067ljc.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 06:14:47 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id r10sm504722ljg.116.2021.11.26.06.14.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Nov 2021 06:14:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3643c892-4ec3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=DEycIOH8xZy5jEK36I0SPjIJMYH+1ejJeC+2cNzwCLo=;
        b=R73GxDIZnsHX+30Gu7DCbM8DWx2Amlr/Q3NCjZS8ZSB4BIaMV8DkwI9GNrQGrTXbrX
         iWmyx6zlRpDLVXCXgwU2bB/eJgLgwE11Iti9vFSKarc/2jfpSUzh2mq7Eth+7O+0P/hK
         bSdQzvjir9XPo6XH+LjBnuqvY0RFbD2YWgvWKQgS9SzatAqcGN4H1ry8MCsZYMH0qtCe
         vukd2v5WbiBi+7cjDd5aCFpdDmYFy7RXln4zzDRACqBEq4BXel2Afrra1ID2VlgzF3vU
         A8kMnsXNm5izsJjspodsEc1YtpyQsL3Y+VcJwXsP9ZaWs6oILoOrsSp2xfK+wkLmI/oA
         zmqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=DEycIOH8xZy5jEK36I0SPjIJMYH+1ejJeC+2cNzwCLo=;
        b=x56Acp6JfV5L014dFenkzUcmW+SRJxl7Nktll3EyZNS/KLcSCXuCG7NyYhIzgJg3hy
         30u7GMwftoDbeRZYnm+LzeyetBxTkzPeQPPI14i4XBJ884oDAiG+L/pIfCya3kVhprfF
         WKcR+g9uZr+oA7nQ1mE7z+UMLYGtacil+zQQmst09IpiZ83WMKTrbzjDSu+C1FXm10BF
         eNY13OGCdvtHxgbvMXFmexuXqt/SaNsb/fZx+Tjd4jph2WXagFIxGVf8ueJ9gc2BaFFg
         k7amtVURXMoYXUzVFISVzNQ5PNt6uHbqEmP0q7XWadOZUfrJBlfCVq8w/sCdpeazxe9G
         VK6w==
X-Gm-Message-State: AOAM531w5OJwAumwhi60cjXQDzjD+M4I9oSg0M5IQl9WpmvSXYWF/tjW
	Rc0HReYks2DPEwe9I+pOJWh1llWkJIA=
X-Google-Smtp-Source: ABdhPJz5NQ8/i8EckoNxXdRsZq4BmpPy9gMnZhMpSyCy4+ofS1d0VjievOotSkHUHhnVvRtrsl+Q9A==
X-Received: by 2002:a05:651c:112c:: with SMTP id e12mr6157837ljo.457.1637936087307;
        Fri, 26 Nov 2021 06:14:47 -0800 (PST)
Subject: Re: [RFC?] xen/arm: memaccess: Pass struct npfec by reference in
 p2m_mem_access_check
To: Jan Beulich <jbeulich@suse.com>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <1637880559-28821-1-git-send-email-olekstysh@gmail.com>
 <b51fd518-6c32-c945-d220-f2092ff2666a@suse.com>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <9ae92dcd-0f72-0c61-62e0-bf49ba09c5b5@gmail.com>
Date: Fri, 26 Nov 2021 16:14:46 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <b51fd518-6c32-c945-d220-f2092ff2666a@suse.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US


On 26.11.21 09:46, Jan Beulich wrote:

Hi Jan

> On 25.11.2021 23:49, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> Today I noticed a "note" when building Xen on Arm64 with
>> aarch64-poky-linux-gcc (GCC) 9.3.0. It turned out that Andrew Cooper
>> had alredy reported it before [1]:
>>
>> mem_access.c: In function 'p2m_mem_access_check':
>> mem_access.c:227:6: note: parameter passing for argument of type
>> 'const struct npfec' changed in GCC 9.1
>>    227 | bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla,
>>                                    const struct npfec npfec)
>>
>>  From the explanation I understand that nothing bad actually is going
>> to happen in our case, it is harmless and shown to only draw our
>> attention that the ABI changed due to bug (with passing bit-fields
>> by value) fixed in GCC 9.1. This information doesn't mean much for us
>> as Xen is an embedded project with no external linkage. But, of course,
>> it would be better to eliminate the note. You can also find related
>> information about the bug at [2].
>>
>> So make the note go away by passing bit-fields by reference.
>>
>> [1] https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg87439.html
>> [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469
>>
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> ---
>> Compile-tested only.
>> ---
>>   xen/arch/arm/mem_access.c        | 28 ++++++++++++++--------------
>>   xen/arch/arm/traps.c             |  2 +-
>>   xen/include/asm-arm/mem_access.h |  2 +-
>>   3 files changed, 16 insertions(+), 16 deletions(-)
> It's all Arm code, so I'm not the one to judge, but I'd like to recommend
> to live with the note or convince distros to backport the gcc side fix.
> This definitely was a compiler flaw; see
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91710.

Thank you for the pointer and suggestion. Actually, after the 
realization that note is harmless and doesn't matter in our case, we 
could indeed tolerate it.

It is up to the maintainers to decide. I will be ok either way.


>
> Jan
>
-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 14:21:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 14:21:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233136.404374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqc6A-0007zP-0D; Fri, 26 Nov 2021 14:21:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233136.404374; Fri, 26 Nov 2021 14:21:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqc69-0007zI-RO; Fri, 26 Nov 2021 14:21:09 +0000
Received: by outflank-mailman (input) for mailman id 233136;
 Fri, 26 Nov 2021 14:21:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F3w5=QN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mqc68-0007z7-Il
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 14:21:08 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18757104-4ec4-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 15:21:07 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2108.outbound.protection.outlook.com [104.47.17.108]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-32-ZFvZYxFvPFeBAagrttKkkw-1; Fri, 26 Nov 2021 15:21:05 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4383.eurprd04.prod.outlook.com (2603:10a6:803:6b::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Fri, 26 Nov
 2021 14:21:04 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 14:21:03 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0085.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Fri, 26 Nov 2021 14:21:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18757104-4ec4-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1637936467;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=77pjzMdYczc+UegnQUEuKJ0tHiIXCOp1OAhlvkjLKoY=;
	b=euZyqFtNPgVatNxMJVjLOO23+HSsrvSPq0i/FZKxWcC9PM4MyYqZHaKGqBYQGgUtHWoXw2
	6LeytyXLp3bNKxpG4XpXlGznHM7bVg6NTRljpJ4TlMQ3LTC3zVYMxrqQvDLKpTngoi3UYh
	JYL4h0fI8aGE2WfxToBY8BCxci1+h2M=
X-MC-Unique: ZFvZYxFvPFeBAagrttKkkw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kk4JEcljHGBKJu2An6Xk76TLdsb1B4cHjE9GlcTkUk16lpWrU0bLgGzXMlxWLT7VsSApBrbNza4bQiPsZxpULW+LeZrdSSAaP/JcUNhGQdi0OCtTOXTA5d8Kibtxcj3suF+5o4Zo/2ROcHcCNjX7MqypKC8KB5C63Hl67SIxJnN24ycV31PWdazgY8y5sVjuCuyF+Zm8m9adigbpp/Z2iN5ROskQu3QgJ+ZFR+zshsuGb/03ZhnYet2QNAmnzOlAdbOpdW3s0nzKXCA+McBfMfcG5+lwaKCxU/gGO6pvHKvfPFIRNUOY6bneHAmLaHGBR2ce8qgCnDF757uaGX4DSA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=77pjzMdYczc+UegnQUEuKJ0tHiIXCOp1OAhlvkjLKoY=;
 b=JYJG4cHmK3FCfqx4wgsIg9PisLvxhZC93cj+keqcgXcwruaGjlIbhoA2h2x5ALcwpHivc3v8p/OFlrhn++LO9DrQWMU7uz9g6o7mQqdDhex05y2jj/wgw5ZOzecMTWAWQeIIKzMapH8IVow7wUgprqAYicFIcgIHAuG824dFbW5/Qy95B7ZppUO44WVvZwzFUnQgwPFEcCKs8ntmzD63mPP+W+DCAy8UwY/GQypWNk3CcZ120jydlxhZ1z0pmOmjV+vbcaOZPlLSuCqrjcTU85BrIIzi+CaIwsGVnYJoioQUd9Js1tiUZPElF9UX0o7eQ5CjS4Msb6txzmBSt2T28A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <374c6213-4319-91ba-6b69-c695d4b2cd87@suse.com>
Date: Fri, 26 Nov 2021 15:21:02 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 04/65] x86/hypercall: Annotate fnptr targets
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-5-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR10CA0085.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:8c::26) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 92d8f163-3eaa-4a2c-bf1f-08d9b0e7fa60
X-MS-TrafficTypeDiagnostic: VI1PR04MB4383:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43831B57941EE215CF96DAF9B3639@VI1PR04MB4383.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	KmVaSc3pLEzn5ubzc2Sck2766G+HWNOG9UOBA/oJTthH98O3H4hGld+YeKwIzwoyzFEMrNs6sAbo2Ypm+KhTAoD/DQsbaqO8oqi0o3lQKWjsTa6xNlz7oHAA/rmpyWRFcsQWmXDDf0GrzKLsjSJULEZOpzOGCgrRx5f4OJKpUoEWOxr8IAUdPtf+HqyiKhIQEjKvdnI2+WWvvl6yXeqC5+7BW7kYxO/cBoFs4bc4UO4ibjTMMbaKTnjiCkNfdf6Gfdv+0pp6eGBeKDRH4jquBrWJkY/cjoT2TdIybaGQsuLbuCm1XxujSijtyM4EZD3pNePHHI3h0SrhjHOOyVycH5EGTQsgFKeX3VG8jiTAq+AWZJhb5DDBO67new6HtjUlbzZWi77KXLFoxVUmDjkrn4UOjqhw5PXVE4YE5aDYYg7pAsBZ5H293s/Hrcvmeekq7mhI2HFufotbFtli8q1V2m0OniEHUobodV9CKwsfmePpY8nD7rE8szBcFBP5SHqIMlwT16UB23NZjvliB5XgzRhBoTt4w2dgWKfEf4mssDKwlGpUOanKWk5U7sTSeOgX+glmBION2e9s9gvrxSUTmVDdt4lX5VXNQRPDwwviUjYVR/ssEb3Hvry9jsC6jWlkRnD3sigFG/blTsx6feitPXrB3w+zJTKi9E7KmogY5kCW28AuRTd7qcT+k0gkOInAAnD1QmiVG5K3naSYu339uiX7KFSq+WKBf0HY+rAbYox7bRpLlApmPPvLPyBtJBkO
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(66556008)(8676002)(4326008)(66476007)(508600001)(16576012)(6916009)(86362001)(2906002)(4744005)(66946007)(26005)(38100700002)(956004)(186003)(2616005)(6486002)(8936002)(53546011)(36756003)(5660300002)(31696002)(316002)(54906003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TXhWUDEvNG0zRWNIMWxNQnpRclpWWmdzbnVYak82bHdqOGV2R2lKbFUxeWl6?=
 =?utf-8?B?R1puSmpYQlp3bDFROHJzbzcrcCtUUU9obHEzeEE4K0k4MDQvWHJSbEJjYWh0?=
 =?utf-8?B?ZU4zMCtqaEQ1eXJXTkJUY2ptaGo4bGFmcXQ0WHU2bUZZUWhMTXgrTHRiZThI?=
 =?utf-8?B?SmNpaFRNbnBRU01aTG16Y2Jtd050Q1dmbWlsVk45UVc0R0diYlZaazN2RXRB?=
 =?utf-8?B?ZWl4OGVnbEZlQlp6MEJ2LzJiMDZpUXFRbVQrTG5OOXd2Y2xUZjJEUzQvZHBY?=
 =?utf-8?B?dWxvRzVBenp3TGZQcEVNdmxCWW5PWnVKK0FKWitEenFPV0tKU1RTZDJyRndi?=
 =?utf-8?B?L09Dd0RJUFZxV0pxUzNLOGxKUnpXR2doTk9vRTRJVlNHeXRtMG04NUdzMUtq?=
 =?utf-8?B?SVJiQWoyaDdVWWorekRKS0wvYXpmUmdCYU9vWkorNUlDZmhDQkpPY2pKTUtl?=
 =?utf-8?B?M3NneHRidzhWSlhFWjQ0bGM0dlZpM2Fncy82b21Ua2EvZy9yNGpyandPSHAw?=
 =?utf-8?B?ODdVV1ovNGJZYXVPcENUWmpTNGkxYlRRdTdycnR0WkV1QkhqbkNJb2svSW9T?=
 =?utf-8?B?R3QzV3Z1Y3MzYmd6OEtVampqT3pZTEpSMzhtQzd0L3oxT2tQdXpoK29oU1Jp?=
 =?utf-8?B?TnB3Q0x4ZWNHODdMYXpwV2NxSU5seE9sN3VCYkczL0ZvR1VqdnZ4aUpEZ0Qw?=
 =?utf-8?B?RjBsTld4MEI0VzduUEI3eEl6ZGFpdlpUakxmOXdqRUk0cUg0Rm1PbytTL3FV?=
 =?utf-8?B?cXlxMHJmK3NiN0hrYysrN1ZxazRsMHpYTVlvYUo4YlhNK3F4bXNVUEk4NG1q?=
 =?utf-8?B?TjNPcDBYSW9WbHBXNnVKbEZHUkltRnVXaGRCMlFwQjNib01sL0Z4alJEQll2?=
 =?utf-8?B?M3VNaWlsWm5YVkVxWTdmU1pvUDE4SjRYS0ZGME5TL29QVWZLWThqa1FSUzBj?=
 =?utf-8?B?MVFFNmhWZHZUYVVBMWRJSEhhU3U1UW1venhUUjNVd3JnWU5HUUpwbDZHaHJE?=
 =?utf-8?B?N3lGMXZZUWxFUWY2aTlSNEtLckM0eCtrem5LcGFYNURkSXU4N1g1WnU4a25C?=
 =?utf-8?B?azg3Uk9wRkRJcDY0QXQ3alNvTE9IRHNacDdsWkpIR2lIazdVT1R5NHU2NFZw?=
 =?utf-8?B?bUtBY0tsQnFGZmZmbE5xOWxzWjFWWHlDbjI2MDR1cDNiYTM1YWxVMzJoUUVi?=
 =?utf-8?B?cWtHVTJzemxwbytET05PZFhTSjdZTWdSZlp4b3MxcTQzZ0VlTUUyRzAzQWRu?=
 =?utf-8?B?dVJsZUkxWDgwNTlCYlRoOVBkbDdNc0ZnWXYrZFZXSjFrZm56enUxWlVmQU56?=
 =?utf-8?B?VzFObVB5dlVrdm1jeGJydDU0eWsycXBVaVhGcGhjV25sWmltalBaYUt0NVZC?=
 =?utf-8?B?cy94cVVaSk5ZejRDV05QWmtybVR5U1lVS2Zka29DVmNiWWRXZjh6QkFlenBs?=
 =?utf-8?B?L1FFMGxJWFBFSFUvVnM4TFIzNWd2MkNBNFFPQ3M1ZnE1dTFqNzBIamNCS2hU?=
 =?utf-8?B?cTJOQTNkVzMwMFNiaWRkYXBZaElyRTh4TURPNDlnSnNhR3B0OHBLNWRIakNo?=
 =?utf-8?B?cjZnZEptd1M5R2thQUMyY3M4THAvNGZqWDBxTVp6L1dabUE4QWlJQTNtV25H?=
 =?utf-8?B?eVZVRlBLR0x1elhobjZDSXMrai9waDBsdTJTcGI1RGtpa0YxTUZTc3RtZGlK?=
 =?utf-8?B?SUZ2RUZrYkVBS1RSbm0wMWlZdlNsRnNEbVUvTkJoaENFYUNJNVN3TnRZVExV?=
 =?utf-8?B?d0hETmtNYno1Y2wyd241aFREcFN3aFU4eTBEU2l5VEZDNmVKd1l5dDQzcC9O?=
 =?utf-8?B?WS9kU0FHNFRqUVR4M3VUQWpCR2w5ZlloeDhQQXdNSXZWeGlrSmlLdlVZNUR4?=
 =?utf-8?B?WVUrVWJEd3hkejV1bmdIUXA4RkphNVdQVEpjbjdvN1BpSnlSeWxxdGFZRnBZ?=
 =?utf-8?B?Z04vN01DbmgxaVlrWkE3TmtZUHY1TGgrSWxrT2x6UGhzbXpTeEljUHp1R3M5?=
 =?utf-8?B?Vmw2UWxHbldZckJqMEVkOTU2cUs0L2VBTFczMk0wRkcyRm5iMFM3L0xnV0Jp?=
 =?utf-8?B?K0xtRzFsVjNrWDFhaVZtVlpFNjdBVENFbzEzTG04S2F3L2lZMklsTzdkU29h?=
 =?utf-8?B?aVl3TjVZTlBqRFJUdnRZVlpaNVBZN3ozeERJV2F6MlRJNmFtcHhEMHY0RHJh?=
 =?utf-8?Q?0xp098iAFp63MDPrztrLFAo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 92d8f163-3eaa-4a2c-bf1f-08d9b0e7fa60
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 14:21:03.5633
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3S1wX85J8MIeeV+oQprmD0L/sQrVHkrphLDWx+xa6u+Od9XTqXeteKDEP5DMJ5jLv4cFkCbon435uKag3Xb1Lw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4383

On 26.11.2021 13:33, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

I understand there's not much to say here, but the title saying just
"annotate" without any context as to the purpose of the annotation
is too little information imo. I guess this then goes for many more
titles in this series.

> --- a/xen/include/xen/hypercall.h
> +++ b/xen/include/xen/hypercall.h
> @@ -18,12 +18,12 @@
>  #include <asm/hypercall.h>
>  #include <xsm/xsm.h>
>  
> -extern long
> +extern long cf_check
>  do_sched_op(
>      int cmd,
>      XEN_GUEST_HANDLE_PARAM(void) arg);

What purpose does the attribute serve on a declaration? On the surface
I would consider it meaningful only on definitions, like e.g. __init.

Jan



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 14:28:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 14:28:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233146.404396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqcDB-0000Jj-R4; Fri, 26 Nov 2021 14:28:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233146.404396; Fri, 26 Nov 2021 14:28:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqcDB-0000Jc-Nu; Fri, 26 Nov 2021 14:28:25 +0000
Received: by outflank-mailman (input) for mailman id 233146;
 Fri, 26 Nov 2021 14:28:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3jyU=QN=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqcDA-0000JW-GM
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 14:28:24 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c3585d7-4ec5-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 15:28:23 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:43128)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqcD4-0011X9-2P (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 26 Nov 2021 14:28:18 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 7EA071FBF1;
 Fri, 26 Nov 2021 14:28:18 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c3585d7-4ec5-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <02af4393-8b31-960e-c509-012b3ce09703@srcf.net>
Date: Fri, 26 Nov 2021 14:28:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 04/65] x86/hypercall: Annotate fnptr targets
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-5-andrew.cooper3@citrix.com>
 <374c6213-4319-91ba-6b69-c695d4b2cd87@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <374c6213-4319-91ba-6b69-c695d4b2cd87@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/11/2021 14:21, Jan Beulich wrote:
> On 26.11.2021 13:33, Andrew Cooper wrote:
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> I understand there's not much to say here, but the title saying just
> "annotate" without any context as to the purpose of the annotation
> is too little information imo. I guess this then goes for many more
> titles in this series.

I really couldn't think of anything useful to say.  Lots of these
patches are entirely mechanical.

>
>> --- a/xen/include/xen/hypercall.h
>> +++ b/xen/include/xen/hypercall.h
>> @@ -18,12 +18,12 @@
>>  #include <asm/hypercall.h>
>>  #include <xsm/xsm.h>
>>  
>> -extern long
>> +extern long cf_check
>>  do_sched_op(
>>      int cmd,
>>      XEN_GUEST_HANDLE_PARAM(void) arg);
> What purpose does the attribute serve on a declaration? On the surface
> I would consider it meaningful only on definitions, like e.g. __init.

Because GCC treats cf_check (and nocf_check) as part of the function
type.  Simply getting it wrong will yield a "definition doesn't match
prototype" error.

Furthermore, it needs to be visible across translation units so one TU
can spot (and complain at) creating a function pointer to a non-local
non-endbr'd function.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 15:01:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 15:01:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233164.404432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqcio-0004RH-Q3; Fri, 26 Nov 2021 15:01:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233164.404432; Fri, 26 Nov 2021 15:01:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqcio-0004RA-MB; Fri, 26 Nov 2021 15:01:06 +0000
Received: by outflank-mailman (input) for mailman id 233164;
 Fri, 26 Nov 2021 15:01:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=skxS=QN=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mqcio-0004R4-1O
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 15:01:06 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ad29a98a-4ec9-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 16:01:04 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id k2so19331034lji.4
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 07:01:04 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id g10sm525847lfv.113.2021.11.26.07.01.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Nov 2021 07:01:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad29a98a-4ec9-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=XYsv7m4z2BAbmpLOqiC9Zw9vuLWj4QpNLQpxzqC2tZ0=;
        b=kMh9axDkcxiovBOfojtLlG+umvR7zzxnSdV8CUEAvrYH+caKvQcJgr3eacpL2eJW+P
         thdJlVlCqE+C99Pbyn5H1M7WL5IMSqNrob5LcocVORMIrdtB/LRIVD50qu7r9+ktmWWb
         PpzRMGcNaNAtWN7jZ5ADA5V6QNfjBvClTGaaGqjhIyAepJX7le3ViDURSr8bsMmXQIj5
         2+i8iOUWQ8RFa4ukJclPGDvUXsCSKW6Ipg3//4CuWVQsac3LSh52HrAfhFbQ8rKGttWh
         YRlWY6bzM7SWImnL9Mgsw9zupx1QUmvAq9q1nXfshWW+h3zA2cL6FfUcRVH795AvsvlK
         8mpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=XYsv7m4z2BAbmpLOqiC9Zw9vuLWj4QpNLQpxzqC2tZ0=;
        b=iSnjaqk6LIoLjRR561KA6tNVRtkuV/tL3EzTYY1riXUIqwZiYZY1eH0fWeJ+4+EFEw
         v8/Pm30QYH8Z6rDVOJt3u70jXdMUam/x8ANvtAoP9662pM1Ojj5syNWCLKvOZQgeUQII
         0y/1SuTSOjmGugqLxwmCWSw0NTqBQ/JUKLIqu2tXY/Pqfp9Xj1nhMAVeySShePp9QMCh
         uyBjFkXaIVQqcknW+A6EVTWluzbv4v9mbVa+QqscIB5oCB7hnNRt4cNicykf3dsTmawH
         3b/A105De1wrGZHZjOR4zymMG7QotXz1Vo+Nwv5SBzFoSlTAnzt/f9T94Wg0EZByNL1B
         6N8Q==
X-Gm-Message-State: AOAM531Kmf2ax1vthqJFCr/DeLqQ6JjvqKNwT81pY+hdi0khaV/MLqrd
	SZTP70f7vcLH3zt7F7xVxIe4nFPQb5Q=
X-Google-Smtp-Source: ABdhPJyP4ZfKUgeeb1RNt2MrBARhenKcuWrh93XrOtT+yLy+1YPeWiEbUuZsXbgxQEOChb//YTMANg==
X-Received: by 2002:a05:651c:550:: with SMTP id q16mr31726646ljp.371.1637938863757;
        Fri, 26 Nov 2021 07:01:03 -0800 (PST)
Subject: Re: [RFC?] xen/arm: memaccess: Pass struct npfec by reference in
 p2m_mem_access_check
To: Andrew Cooper <amc96@srcf.net>
Cc: Jan Beulich <jbeulich@suse.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <1637880559-28821-1-git-send-email-olekstysh@gmail.com>
 <b51fd518-6c32-c945-d220-f2092ff2666a@suse.com>
 <5665bac6-4315-dccc-3a36-5910f5624146@srcf.net>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <9a2347b7-f973-bee3-7a95-6d376e3f981c@gmail.com>
Date: Fri, 26 Nov 2021 17:01:02 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <5665bac6-4315-dccc-3a36-5910f5624146@srcf.net>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 26.11.21 13:39, Andrew Cooper wrote:


Hi Andrew

> On 26/11/2021 07:46, Jan Beulich wrote:
>> On 25.11.2021 23:49, Oleksandr Tyshchenko wrote:
>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>
>>> Today I noticed a "note" when building Xen on Arm64 with
>>> aarch64-poky-linux-gcc (GCC) 9.3.0. It turned out that Andrew Cooper
>>> had alredy reported it before [1]:
>>>
>>> mem_access.c: In function 'p2m_mem_access_check':
>>> mem_access.c:227:6: note: parameter passing for argument of type
>>> 'const struct npfec' changed in GCC 9.1
>>>    227 | bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla,
>>>                                    const struct npfec npfec)
>>>
>>>  From the explanation I understand that nothing bad actually is going
>>> to happen in our case, it is harmless and shown to only draw our
>>> attention that the ABI changed due to bug (with passing bit-fields
>>> by value) fixed in GCC 9.1. This information doesn't mean much for us
>>> as Xen is an embedded project with no external linkage. But, of course,
>>> it would be better to eliminate the note. You can also find related
>>> information about the bug at [2].
>>>
>>> So make the note go away by passing bit-fields by reference.
>>>
>>> [1] https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg87439.html
>>> [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469
>>>
>>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>> ---
>>> Compile-tested only.
>>> ---
>>>   xen/arch/arm/mem_access.c        | 28 ++++++++++++++--------------
>>>   xen/arch/arm/traps.c             |  2 +-
>>>   xen/include/asm-arm/mem_access.h |  2 +-
>>>   3 files changed, 16 insertions(+), 16 deletions(-)
>> It's all Arm code, so I'm not the one to judge, but I'd like to recommend
>> to live with the note or convince distros to backport the gcc side fix.
>> This definitely was a compiler flaw; see
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91710.
> I too would recommend just living with the note.  The code change
> proposed is a backwards step in terms of runtime complexity - you're now
> passing around a pointer to 7 bits of information, which the compiler
> cannot pull into a local because of C's aliasing rules.  At a guess, the
> very best an optimising compiler could do is turn it into only two
> dereferences of the pointer.

Thank you for the analysis. I don't think, we want to make things worse 
(less optimal) than they are currently.


>
> ~Andrew

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 15:17:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 15:17:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233176.404455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqcyz-00061E-BZ; Fri, 26 Nov 2021 15:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233176.404455; Fri, 26 Nov 2021 15:17:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqcyz-000617-7S; Fri, 26 Nov 2021 15:17:49 +0000
Received: by outflank-mailman (input) for mailman id 233176;
 Fri, 26 Nov 2021 15:17:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=maq7=QN=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mqcyx-000611-Di
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 15:17:47 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0174a816-4ecc-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 16:17:45 +0100 (CET)
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AQF2jmZ017915; 
 Fri, 26 Nov 2021 15:16:29 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3ck1vmr2hh-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 26 Nov 2021 15:16:28 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AQFBQK1027148;
 Fri, 26 Nov 2021 15:16:27 GMT
Received: from nam02-sn1-obe.outbound.protection.outlook.com
 (mail-sn1anam02lp2042.outbound.protection.outlook.com [104.47.57.42])
 by aserp3030.oracle.com with ESMTP id 3ceq2k28cs-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 26 Nov 2021 15:16:27 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BL0PR10MB3010.namprd10.prod.outlook.com (2603:10b6:208:78::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Fri, 26 Nov
 2021 15:16:26 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 15:16:26 +0000
Received: from [10.74.104.211] (138.3.200.19) by
 BY5PR20CA0029.namprd20.prod.outlook.com (2603:10b6:a03:1f4::42) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23 via Frontend
 Transport; Fri, 26 Nov 2021 15:16:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0174a816-4ecc-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=V/gadEoNS7p0mffZIqwyneDcsSaxclv6pID1M46Kh8g=;
 b=p0cKybGific1YIKz0hQFY1EdDAciNvUjY96KAnhlt3RLzWjfuugMYhuDSWcMMGOQucQG
 mSU9s1c7RBEdF/ucJ5pspIW22MZ41+EoR5VIAysOsFfmAHsl+FyPjfz1l/UMOrDg2k+H
 55pjel6yz+g0XfD5K6ttexFtKNOyfF3jyyGjusp/dfmhY8aRJzwfYnm6fXfKmvg3HGd5
 pnPrjsKpguCD2WMJTzprZBBgtuMteiPxGpaxTm9BLYmk4xd/UQHXTb91aOWAjtzZMSIg
 YiRXPsGYuPaL/zelKeURdknNhpZkx/zfnLx+qxqFwc7qYxFMZ7XVFEG7YPxhmA50hbNH Bw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZL/jQFMsd5m0gP+BfUrRlHX3myiEg1W3d+fXVJfOT0eG0qjpokHO+Knac7iHpFHVMAZ03tB2IbjPvyJQOtqMwwS48cFlUD6ohWKSvlTbOvdW7jsl5zSYyY0b0z0svDOR3lkbiVYBHlvmkx7u3SWGJNcdkC2crYfKEPgtJUoYYPTyugTi9TK5iPKgR2QLPloC1yhZwG8rnxqzUEgJO3yn3vHL+7Pwe6d64ILFzfpb1Z6QYpBH8s2pXRdlmxcZIlIrOtztlqohFxWjHW0ATCNDgP4LoQzWgQDCXR57hU/bBRbw1n9THZmACiv2euasXGCXugmdokQ7QYAV0Tqyo8Ivxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V/gadEoNS7p0mffZIqwyneDcsSaxclv6pID1M46Kh8g=;
 b=T7sXEuP3CwxYt0bCiJjxDV/OaQx0HOJm5kgZ2xZXht+yZZ65XvQ9lFcv6KPwRfPQwlyAB9fv8iHyAa/uEFq+sTX7HaWvKUjY7PnCVUyrIQg7cfBWQ8TqnmZCN4DzMDD1PEfYVJEgTLGwJVX/Sk5Hp2aYinJgjxlT2sJxiTOLVnvwjQUyVCjsFgqYp6toa0o+DUvY3inzexpZtcwPK2SALCYE9x3/my867forXxHuCDyMbgUZEqTIiqSPE3K91rr+2E+Nx2mysLtzWvRcydyezpEpzywkVieGDJx+TCBkXf4JJgjQxQgeCfPezNWRz6f7/+a2uoZkcFKO6SfkJ9s7Yg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V/gadEoNS7p0mffZIqwyneDcsSaxclv6pID1M46Kh8g=;
 b=lGjLM09us2U6ko3GVMbpDpfEtDlNV8PNIWqXDsUAhKoGFCqT+kZnLN9LfkYtRQQyUAvnWCqOscaywXudrdAdnMfZqQ1MnwUZnKR00vKHq4xAtDxDn5lJLjil0Ub0wa/KaNbDK8iEiLDuwCzz5Xr/6UeqaQBAKxa7WufmAfokwjE=
Message-ID: <2893fd9b-c4d4-e601-e9e1-19a21297bb5e@oracle.com>
Date: Fri, 26 Nov 2021 10:16:20 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH 0/2] xen: make debugreg accessors always_inline
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
        x86@kernel.org, linux-kernel@vger.kernel.org
Cc: peterz@infradead.org, Stefano Stabellini <sstabellini@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>
References: <20211125092056.24758-1-jgross@suse.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20211125092056.24758-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY5PR20CA0029.namprd20.prod.outlook.com
 (2603:10b6:a03:1f4::42) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 43e87a88-f3f6-43e1-b613-08d9b0efb688
X-MS-TrafficTypeDiagnostic: BL0PR10MB3010:
X-Microsoft-Antispam-PRVS: 
	<BL0PR10MB3010C9C1209193C686E757AA8A639@BL0PR10MB3010.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1002;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	R8aQOFpFMvf8CZX3VQuaYuqhTNltMX3p9mHSFQSFTgQxUI/WgN11uW9tbLz+bUBFfJ3WxcD11EHjNsm0bzh6myG8hEHPN+9AeLpwYGtNE3FSshNwbLLlnF43Vnln5+tdNoEaWBVDAYdlvusIE+Pl6AZMiSJF6yhmyNtK9zV1S7CEn94cunNllqSDYiJjgW9oWJ5ZI2FDPaXm2QkQY7s5xOFoswxleZcZEvcQPAYyIzTkggHs2Or4OtRgxwfB9+mt8MYh2RjNaRcd4B6lQHODE336vjucYv0BPrP7tscMSwXWH8qa+exPKCSMF/Xh4WD2qs+CgNcuoH7HocUD9yfMw+fwXf3m1/d5BuwXskiXKYRy29k8mFEyrl4tc3XeU2bXtXYjvLW2rzQmKj9dB4xgHnWccwHQ6pNUNrX7kPjwkqy9iFhUZ8E0wGiFDoZuxN1bqvuWfZ25dsYUgQEfPlSgyHnrmJ0f5dfUp33ZpezRfbE1PDSsHOcOeqZU4s92dDCvAtrUDGn9nnW2jUY6TxftU5DJuNUSj+rbZ2CW7CUe43A84B2k30lZOnHGJ9DzKXneMVsj63zsJmeDOP7bnKzYGV4mnpOKJWKs19xozrM5+AJQlW1CjC8/cSwdqZ8amd7TNEFKzlIJ0NmyWk6abq9LnIwqe3IK9FE8JCHnwn0vGu8AWQD8Ut0X31sXxFXeuphAbYqWCspfjrFD6QztnHLmsPsFUfrld2xFfKkKUwrVEEVjsBsepoewtiX1nyhLiyxm
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(2906002)(2616005)(44832011)(26005)(186003)(31686004)(83380400001)(4326008)(956004)(36756003)(558084003)(66946007)(53546011)(5660300002)(8936002)(8676002)(66476007)(16576012)(54906003)(66556008)(6486002)(508600001)(31696002)(7416002)(86362001)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?NkRjdFlkK3VXOHBJdHJxcHJXdy9IY3RRWHdheXp1dmJ5ek5zL0QvWi83MHNN?=
 =?utf-8?B?Rm41azBsSE5relhNUGljZ2NKOG5yVWRZZ1dhNFY0YjNrUjdpdy8zSWQwQ3dl?=
 =?utf-8?B?OG5hdlJhaEVxSkZXVDdOT1p6VHVSbk5VQjJNM0dwZ3ZVNk1jUFVkVXVzdFJz?=
 =?utf-8?B?N2FQT1pRdnU2THM3UC9QakZ0cXduVWVFTzhLSFVMd1ZtQTdMNmlqUTFvd0J5?=
 =?utf-8?B?RTc5VWRWU1NIZ3owdzBOYlFrT2FxUGhudVJSNDhhU1RYUEZiTExydGJTY2Ra?=
 =?utf-8?B?QVNnOXNPUkRDNnFmZmNuWXdtemJaanQxalBWVFgyR0xqNFhxTWN2QVZzNmFC?=
 =?utf-8?B?bVVLZ21WR1gzK28ySElMdVZVWERkbU40bmt2YWR6R2V1OVVxTVFWUGFtNFF4?=
 =?utf-8?B?S1FLNko2ZXRGTDVSc3U4SUpranM5QWJyUUZyTm9WbDIwNkJDWHp2cHVmRm5W?=
 =?utf-8?B?N3pGcU9NUThzVlpXMHVlMWtIcFZaNnhOeTNZeWJONDRGVDRqY0h4UVF3Yjdt?=
 =?utf-8?B?dEh6TmJRdzdNb1RIUk9ZRWl6WGZGNSsrUm9pNENTR3VYTUdsaFlwdHVjTG9T?=
 =?utf-8?B?bzd5Y0QzWjJrZHZ4bmt0aFFSbElXNm1JdERXMTFxQ1E3bzhDVndTcCt2SmRi?=
 =?utf-8?B?Ym1zYmxXbnFHckZsSWpUd2NKTGEwOXBOU1ZQOEdKcFhSellUWWlEN1VMTGQr?=
 =?utf-8?B?bmZ6Q2JOQzBOcDk2VlQ1MEx2MCtCelhHRUF6SlR2U1JNVVJnNjZyQ0ZVazB6?=
 =?utf-8?B?N1kxWW44RkxZQSs0dnFPNmVNaFhJSDkyc2g4bC9YaXlBaUdjbmZzbVNIYkhj?=
 =?utf-8?B?cnh0eElnMWppZENHM1lzYWN4Nit4cDhGSFlaSDhSRnNhRkNFMng1RUZMNEMv?=
 =?utf-8?B?enhSTkpFVm1hTXBxUWVja2FVOXNTMmhyalF5OXJoODB3T0dpZXduV005RU80?=
 =?utf-8?B?eFRYOUREMk9pTU9vQWxyYWtaK0dXbnN2d3lCRlR0RHBpWUliVDU1eDdDNkNZ?=
 =?utf-8?B?WE0zR2NqVGtBLzROR0lCMFdGOHFBUGNYbWExN0pxTkhQMExIL1BPMGE0M2dn?=
 =?utf-8?B?SFJIT3EyQy9lNW9rNGppM1FwZFQ2TU5JNTBNTDN0bFRYbFFlc0l4VFlONE1j?=
 =?utf-8?B?T0xidjkzVTFobW95V3dEMEVGcVByVEJnTnd3ck1NUUtuUHQxb3ZEWFpDKzBw?=
 =?utf-8?B?Rm40b1V1NFBDSDFmRHFMNWlhOXVMWEo0VnExazJwUk00MndxTUVNcldoNTQz?=
 =?utf-8?B?V1VkcUdrdkE4Zlo5b1JsTzRnRVVpU2lKaWVkMWk0UEpzVzdKdGFmVkxiVURS?=
 =?utf-8?B?L2t2M2VLQmFqSmRhMXo1UVlEbDdKdCsza0hwT3JCN20zRnQ5SU1XYUlvdmln?=
 =?utf-8?B?R3dUWm1zb2JmNUdod0V5Y2REbU0xOTlHNVhTcSt1dFdEOCtpaGIvNlF3SVdP?=
 =?utf-8?B?UkFkYWkwcldMbzg2Z2dZVW8xbnpZUGdpeXlmT2N5ZWJRZEk3TGkzMEJBZkls?=
 =?utf-8?B?M3VZSk1Vb0VXbWVldjl6eEpCbmtybk1nc3Zpa2l2b2xCTGRnZnY2UFJhZXhF?=
 =?utf-8?B?MFJLSVhYdXVlM2hGMFM1VDNtQVNzMnRLNXM3OTd2cXJOdysvazRJRTIrbC9B?=
 =?utf-8?B?VXhBYWdleGQ0ajhWdlNWZ2NwbG11S0h0WnVWNVAzL0NqK3hHUE8yNEtiYVc1?=
 =?utf-8?B?QW5JaFcrd0V6M21qQWZUbkR4VlNEaXJVeGdLMWd0Zmo0dlROb2kvbmNLd2tK?=
 =?utf-8?B?QmxpK1RFOENMQVBsaXVtSzFzbnNHbEJnMGFmVmQ4bGc1ekNLMU4zaU8wbGxa?=
 =?utf-8?B?dVAvakF3VU1UVzl0VEZSN1hoRERrTzh4Q2RjYnFlMjVvbWdTNUx0Y0MzajF0?=
 =?utf-8?B?aDc4RnRKSFZ2dVBEdnJrbzZWS1ZZL3RVOUd2V1lYY0wyMFhnMm9IY3Z6RVFX?=
 =?utf-8?B?MC96SEVVbklOTGRMUHQ2OEJDbUlxajhTUXdLV3J6Y1BPZW85Umh5cHhqSGIz?=
 =?utf-8?B?UndQc0doQ1dnY244aGxwSTVoUG5TMUIvdnZMNncyOVMxMlNaTEhITWpZcnRS?=
 =?utf-8?B?b1Q5cE1ucXlGeFhxYkx4eUxLc0hqaEQyZVd4TzFPc1Bsais1NksrbUVUNU1E?=
 =?utf-8?B?OFlxdFJwalFQT3NROHd4M1d4ekp0UGh3SFBQOTZLMmFhT3g0U0Z3SWQ5STIz?=
 =?utf-8?B?bUhGUk5rWmE3blA2NDJrdWQ4WnhVMUFlSXRtejRWOWNKbDlGa0hIUFZYaElY?=
 =?utf-8?B?bk9uUW10dGZxcU1CUG5LRGx1Uy9RPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 43e87a88-f3f6-43e1-b613-08d9b0efb688
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 15:16:26.1117
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QfhjBRlBYOEn+8AQ8PayrEb8KBYJ3TSRa5pBgMR2t/hx5iWrtXdcC0v9FPA6xROghAwlC0ujQxEwtf54Vk4rulm39/CXi00Cyk3uToIQeg8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB3010
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10180 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 spamscore=0
 bulkscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111260089
X-Proofpoint-ORIG-GUID: tU2Gqcv6ZmgIdQKpnP33z9_y8dQAAMja
X-Proofpoint-GUID: tU2Gqcv6ZmgIdQKpnP33z9_y8dQAAMja


On 11/25/21 4:20 AM, Juergen Gross wrote:
> Juergen Gross (2):
>    xen: make HYPERVISOR_get_debugreg() always_inline
>    xen: make HYPERVISOR_set_debugreg() always_inline
>
>   arch/x86/include/asm/xen/hypercall.h | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)



Applied to for-linus-5.16c


-boris



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 15:18:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 15:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233177.404466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqczB-0006Ly-JL; Fri, 26 Nov 2021 15:18:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233177.404466; Fri, 26 Nov 2021 15:18:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqczB-0006Lp-GK; Fri, 26 Nov 2021 15:18:01 +0000
Received: by outflank-mailman (input) for mailman id 233177;
 Fri, 26 Nov 2021 15:18:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=maq7=QN=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1mqczA-0006LJ-Gl
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 15:18:00 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 08c4e679-4ecc-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 16:17:58 +0100 (CET)
Received: from pps.filterd (m0246627.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AQF5pUw015226; 
 Fri, 26 Nov 2021 15:17:51 GMT
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3ck1x2r2at-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 26 Nov 2021 15:17:51 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AQFBQQB027182;
 Fri, 26 Nov 2021 15:17:50 GMT
Received: from nam02-sn1-obe.outbound.protection.outlook.com
 (mail-sn1anam02lp2049.outbound.protection.outlook.com [104.47.57.49])
 by aserp3030.oracle.com with ESMTP id 3ceq2k2a2x-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 26 Nov 2021 15:17:50 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by BL0PR10MB3010.namprd10.prod.outlook.com (2603:10b6:208:78::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Fri, 26 Nov
 2021 15:17:47 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::8d84:1f40:881:7b12%4]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021
 15:17:47 +0000
Received: from [10.74.104.211] (138.3.200.19) by
 BY5PR20CA0016.namprd20.prod.outlook.com (2603:10b6:a03:1f4::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Fri, 26 Nov 2021 15:17:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 08c4e679-4ecc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=T2ytXIl5GrMUq6c8ZZho0Z5HcGnofJ55iECblRsRg44=;
 b=aao32CasZdhV3VySYyz+LZY/iZOUc2aOJw3tsERgB9a2B4mHrsmQ5er0Q1fNu0K0ygXO
 3DXTSgSozgR81uTE1flYkvyCf0QeAsy0hnScGkBuIt2ua9GYPlpF1i/i1uFj5fN8LGTC
 /puJ0ZZ5V+kgjRy24jHogaqyTKKwAD6X7fjZk0swVeB+/UTAvI39ohFlDW8ExR3OjMIc
 mSRT6WfUjFkeUpZx49VYXK0TO3uG0UkBd0tLXWnyQ4oPYIzqdOP/TW6lc5PgS4V2mMUd
 5w80cfEl1WKmJVSnUw13pBIDN5oHvTg3wb59ZaUDR1tMXaTYaubrR7ikiORFQ20FKSVS Dg== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RK6D0TN4L1XS77cLV+uyQMYF9W58aaSBf2DfSa8l9lKyEHMK0cejDTUdooKaxghd6vESw0YI9KmNnYmyXJIQgjUj+yBskqZA6ejV3vYJ0BNFuGQ1UKKCNXcqYBbTZe/7Uzgor8ZWHC1oPDJIBTiVqAFzQJFrfGXFxqr9jmKSq0Two4V/cFL4yzgF0Cy9QufuKvHs9uZ5IP7xLj7JVV849iKFZpMVrvJP7ieaooKzOJmzKUjYaGLXJ3LVpQwB15US9KMTgBk327D3S+8fbYBoiIacdV747DTiIU8ys1xTJoX3UgPdLPad9BRaUs9YsWFqRl2c2mF1DPnEyTsc62meJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T2ytXIl5GrMUq6c8ZZho0Z5HcGnofJ55iECblRsRg44=;
 b=faobUnWgl3R6a3CLtelCvrUVVmv+hRnxQ/5IQd1ZhRCmF20TD5+9HMk/RPNA+w/C7tL5IvsLA0qe43brnXA+HKG7tYnW4EiY0S2OPt6mXunX6J+aoIcCyQ1/wsxuEPKMgUiu/Th1IJSVJ69DwhBBHBWK9DRLKkHfcR+ksxKylrtIr4NXMfaT5MVw4vBrvFCnvuoC0B9GFih44gR01tnqFBTqTEyMCyEj5YzI5ngAZiHDgyy2m48JmRiZ+BNbb7ghHyZXPgm9K7la2BjrOGbzHHMP10cbKYjrj3V/rOhA8beJhawmyDg/pCHwR7zIkuxifkMj+VvcFKFPfThLF5crhA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=T2ytXIl5GrMUq6c8ZZho0Z5HcGnofJ55iECblRsRg44=;
 b=SpuftzkR7u1YBw5zEsv+5mapeNDNXeyhWH5srhBmQVkABm8YdbTnj8pEgFvEMCn37mPU+4foqNTc5Q7TEsEGAUCfJh0JC3QwQH9qzHtl/Pcof+Dr3Lexr6Rpnu4AcMrhNFYN5lbrhBEwjMrVXD1xQvPHfh+sobYPC752QVlC7RE=
Message-ID: <042a46ef-c20f-5cc7-8f9a-75b8731f661f@oracle.com>
Date: Fri, 26 Nov 2021 10:17:43 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
 Gecko/20100101 Thunderbird/91.3.2
Subject: Re: [PATCH V3 4/6] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
Content-Language: en-US
To: Oleksandr Tyshchenko <olekstysh@gmail.com>, xen-devel@lists.xenproject.org,
        linux-kernel@vger.kernel.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini
 <sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
 <1637787223-21129-5-git-send-email-olekstysh@gmail.com>
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <1637787223-21129-5-git-send-email-olekstysh@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY5PR20CA0016.namprd20.prod.outlook.com
 (2603:10b6:a03:1f4::29) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5dba044a-e2de-45a0-9172-08d9b0efe746
X-MS-TrafficTypeDiagnostic: BL0PR10MB3010:
X-Microsoft-Antispam-PRVS: 
	<BL0PR10MB30108ECEC0B7666EEB942CE98A639@BL0PR10MB3010.namprd10.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:2150;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	YjWjHbLGWqzQr71ozEAmq07DbJfJYAaMYzUuAFkIifTCjVWeqxiHzVlkaPKUTxXuz3bx1lX/MJpmXLijJLg8UJ+J+dxXj9ARwn/7ufaRf2ChdNeAXZGDWEtsWdHf9vYqM8pIN85zf1AiUTrivyYKBCnmd2RuCg2BGyd/ycgOQ5ZWUtTHGTHxBjOz0L9NBgc44dYexdKke9vF+6n6OGoLaSoHKyLApfi51aexPjm6g3TTjWLyz6TI8+GZWH9FL72Rkbd/t7NjYXRN2Fvoe8iuCP3q3Cp3hMX2gY91eQkXrBXBGu8fbrwarvEQf6lrBEKJHZjd2FTbeFNjh1X1JEQBGl7655vJu/jQ4eo9i/iltWaM3CHwnu2XMbH6xs89WqtBS5vLQFVf8vA1SDB3eu+dSaw2xlASJIjjyQysl8AAnqE7q1wfo85b3COlmnakXZVBcGqLCj4yi8yNmQ+h6qf+VnHp76e3Wse5SvGZ41Khmzgc+6cacSjWswXqSOV7+70xRgb/lHfBaN4af2f6dyr3xOhgMsFt9AIsJQa6diK6DHDC8qGRERWh3mEZ+DZDiB3EqxIv3Y/sv7hc51Kg0mB5pOC4ubAeAIEusst17dmgoMEO8pwe1l+ql4Xup87lt+crcJXKNhTN0mLa8NgFVjxUslNPAT/scvMDq1Cvo4/myb6NH3f35zCDuAxbAyt6HV1DqCgGzU/cexsn5S5isQlP74AsYpQs+IeHy++Fh5NHOIuYp0fE6luRnWrzkfbKwsrU
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(2906002)(2616005)(44832011)(26005)(186003)(31686004)(4326008)(956004)(36756003)(558084003)(66946007)(53546011)(5660300002)(8936002)(8676002)(66476007)(16576012)(54906003)(66556008)(6486002)(508600001)(31696002)(86362001)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?L3NRd0pOUkZkMElSOWlFK3JqMnFCZUtYYWZJaFVNTFFoRldCU3FXcGxrcVBX?=
 =?utf-8?B?enRGVGdFaUJXc3VQY3N0R3VqNllDZWZuZktQVG9IVkZ0VUROclEvQlh5N1pj?=
 =?utf-8?B?MXhzbjJINmE2SElaM2ZNNDdjbFcxUTFib1hNSFZ5a0ltWUlOZjRBMkJKVC85?=
 =?utf-8?B?eHljOS8yZVluUGNCV2FwVllzSUJHZ0NqanNQYWFJVHYzQzNRQ2FuSWkwMzVX?=
 =?utf-8?B?ODdoQy9LbUNnekJKcmFPdzZuczVrdjVBdGRpT2ZLN21KaEppd1grMEw1Qnpa?=
 =?utf-8?B?cmo2R29HL0ZNM04wai9BeDhLbUZOWEdrR3MrbDBEUUZBTmVlQTkwc2tDWG9z?=
 =?utf-8?B?Zmgwd3RTQ3BhVFc4eFgzQkExZWRkcW5MUGRiaDdHaklmdzgvOTd3UWpzdkpX?=
 =?utf-8?B?TmJyQk9jbVNITjlpZFJMU1VlV2Rlam1WajBVRVBZU2FaSVVEalkwL1Z1SHFy?=
 =?utf-8?B?WENjTktXN2ZWZ3Ixem4vMVlWM0xZNUhJTFdWamJwMEppQWMraisxNUE3VFdz?=
 =?utf-8?B?NFR6SG81a2lnZ3duQXI3cEs1ZXd4dzl5WHp1N3NON2RqRVFPdnFFZ2ZRdFF2?=
 =?utf-8?B?K205NWVZZm5FeHJFTzFCd2Rpc2xSUVFWazhCRjYxS1dsY3FLSWJIUWJuMWZ5?=
 =?utf-8?B?d21FL2JFcTBvcnZwSnNsVjFXQ21NSmo5WWJrYUF3dDdEYzBDVHViZEMvSmY0?=
 =?utf-8?B?NVZKdjZoOHVHYU02VVpDT09CZmxSeVYyV0M4WEE1Y3F5ajBBS0lLUEk1R2Fz?=
 =?utf-8?B?cEQ1VkNDSnNJTnd6S2tDSENJZ1F0ZXk4eXk0THdiZklTcmpKQ0MyQlJRR2Zl?=
 =?utf-8?B?UDEvNVZaemx2VmFrYW1lTG5wdmpiL2xQMm03ZkROQ3NlWXp2a3pCT2pZRWhy?=
 =?utf-8?B?Tnoxci9YQkpUakVOTHg4bmpMOUhuMEJSMUJoazk5eXBqMWExeERVdnpoclpm?=
 =?utf-8?B?MUhMVXNkZlZENjFlYmNoR1haaG9sK2VzRUIvRk9HVWtSalRXcFpQRUxnZUVK?=
 =?utf-8?B?UDUzWlhRYlhlOHdCcm9KeS8weTZKZWgrV1Y1bGQxcHdZb1VLZzFuOWMxTG5U?=
 =?utf-8?B?eURHQ3lkbjJmbkZseWhlcE9zbmlteHlreWxVdi85Unc1L1IrRVdkTDk3ZkV5?=
 =?utf-8?B?THRHRGRuMk91ZVhOZWNFZjMwLzZDRkkwOVdPc05IOFd4MjJGT2NpUUd5TlNa?=
 =?utf-8?B?eUZaOTJ0QlZHT1o2bTFpazgxQXNpYmxRVHNnZGdhNWQwNE9NRlJOaktVc0tY?=
 =?utf-8?B?Q2lDdGZhWm9OOFprbGQ1MlBaS1VlRjMwT0d4NEY4M3pPK0tiT1FkTzZOd0dN?=
 =?utf-8?B?ekVOK25SSS93TmRiaXl2RmNXMDBTa1FvWUpGUXQ4VGJzangySEY5MHNUUnVj?=
 =?utf-8?B?WUpWR1hlU2ZneEpRVWNLVGVHYjVtcGNYVHJKTVNzbFlEWTNRYUFieHNiWVNs?=
 =?utf-8?B?aGd4elQybzZ3VVZQWDdlVjF1dXlJTy96UC9RTWdBcFF2a0p5N2Z0VEpGVXBC?=
 =?utf-8?B?REVyRDNlMUY5VDdpUC9keHllMm5TTFlCcW0wMHhsT3hvZFNMaGJVa2VSK2ZS?=
 =?utf-8?B?dGhZTWErREdKaFNvaXdUL2hwTVRheUNudmhvWW8wRldHYUQ4RWZjTDRNb2dj?=
 =?utf-8?B?TkQvN2NCNFBxNGlsV3BLa1NZLzkxUDFQUzU5WG5TQ3p0SXg4NnJPQzZYM0NL?=
 =?utf-8?B?ZS9tRHlMWVhzeEwzZWN5RjRxR0dMTXNrVGpOV3NEQWw0SXlPc0E3ckc0YlB0?=
 =?utf-8?B?cktTaUFDMHBpNitCd1dqUmVCNW00cjdab3A5VGV6RkgvbEFxQWF0eWM0YlU4?=
 =?utf-8?B?MmxzbnRKaTVOcGlQakJRL1RnQWRPbC9wK1AwQ1pIcGprQ1cxeUdSVDhPaHBL?=
 =?utf-8?B?RjJTcGVIdVlIajhaOTRlL2U3VldFQk5wcTdnNHFIRkZyanVTcktsQlVPU1Fi?=
 =?utf-8?B?Y0NiekUzaUU3STBEdVNJT3EyTk8raWZtREdHYTJZNzVFSVBPenhOSjR0bFoy?=
 =?utf-8?B?VE5DNjRid0ROZ3F6MXVIeXIzaWU3aDZ1VndXby9OazQvampLMU1UcU00ZVRq?=
 =?utf-8?B?aDRLQnZkZVZLOG45WWV2aDhjaGRWQ2ZBbVQrMlBQK2hzQks0ZHZQdzA0bTdB?=
 =?utf-8?B?VXdjRHROR0xKSlNzcWozQVVBV3Axa0NNU2NWaVJZQTJvQmZoUnpCZFNpWkhT?=
 =?utf-8?B?NVp2MFE3aHFhTWtlakpaZFpmaVZPdE1SQmp1a3VhSENmOWpBL2VXVUVCRkQ3?=
 =?utf-8?B?eEhsek9tRXl3eEUrQ1BNSmp0U01nPT0=?=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5dba044a-e2de-45a0-9172-08d9b0efe746
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 15:17:47.5789
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: y2rttfmFHrdEx1qmbfS5FbqF+PmwM+74/7g9tc3GuQOHSlxQyEs/eRNG/HT9QsLtodoFW6VNBf3/85NEAwf2gjWcccyaP1cifbKQiDPwPjE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB3010
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10180 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 spamscore=0
 bulkscore=0 suspectscore=0 mlxscore=0 mlxlogscore=871 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000
 definitions=main-2111260089
X-Proofpoint-GUID: Eb5DnLSgO_MFH5cxYu3dLhUBylrSi9j2
X-Proofpoint-ORIG-GUID: Eb5DnLSgO_MFH5cxYu3dLhUBylrSi9j2


On 11/24/21 3:53 PM, Oleksandr Tyshchenko wrote:
> +	if (target_resource != &iomem_resource) {
> +		tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
> +		if (!res) {


If (!tmp_res)


> +			ret = -ENOMEM;
> +			goto err_insert;
> +		}


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 15:21:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 15:21:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233186.404476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqd2l-00082B-8y; Fri, 26 Nov 2021 15:21:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233186.404476; Fri, 26 Nov 2021 15:21:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqd2l-000824-63; Fri, 26 Nov 2021 15:21:43 +0000
Received: by outflank-mailman (input) for mailman id 233186;
 Fri, 26 Nov 2021 15:21:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3jyU=QN=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqd2k-00081y-LD
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 15:21:42 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8dea8643-4ecc-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 16:21:41 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:39360)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqd2i-000PUc-mi (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 26 Nov 2021 15:21:40 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id E1A5B1FC54;
 Fri, 26 Nov 2021 15:21:39 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8dea8643-4ecc-11ec-9787-a32c541c8605
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <e7f8a52a-5761-88dc-97ff-6c2feca2effb@srcf.net>
Date: Fri, 26 Nov 2021 15:21:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-2-andrew.cooper3@citrix.com>
 <69d1b4a3-a042-c2c4-2f59-ea897886ae1d@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 01/65] x86: Introduce support for CET-IBT
In-Reply-To: <69d1b4a3-a042-c2c4-2f59-ea897886ae1d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/11/2021 14:10, Jan Beulich wrote:
> On 26.11.2021 13:33, Andrew Cooper wrote:
>> @@ -124,6 +129,18 @@ config XEN_SHSTK
>>  	  When CET-SS is active, 32bit PV guests cannot be used.  Backwards
>>  	  compatiblity can be provided via the PV Shim mechanism.
>>  
>> +config XEN_IBT
>> +	bool "Supervisor Indirect Branch Tracking"
>> +	depends on HAS_CC_CET_IBT
>> +	default y
>> +	help
>> +	  Control-flow Enforcement Technology (CET) is a set of features in
>> +	  hardware designed to combat Return-oriented Programming (ROP, also
>> +	  call/jump COP/JOP) attacks.  Indirect Branch Tracking is one CET
>> +	  feature designed to provide function pointer protection.
>> +
>> +	  This option arranges for Xen to use CET-IBT for its own protection.
> Shouldn't this depend on BROKEN until it's actually functional?

It compiles fine right from now, and making it BROKEN would inhibit
bisection through the series.

Nothing actually matters until patch 65 turns on MSR_S_CET.ENDBR_EN.

>> --- a/xen/arch/x86/x86_emulate/x86_emulate.h
>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.h
>> @@ -35,6 +35,11 @@
>>  # error Unknown compilation width
>>  #endif
>>  
>> +#ifndef cf_check
>> +/* Cope with userspace build not knowing about CET-IBT */
>> +#define cf_check
>> +#endif
> Imo this shouldn't go here, but in tools/tests/x86_emulator/x86-emulate.h,
> and then presumably without #ifdef.

I considered that, but the test harness isn't the only userspace
harness.  There is the fuzzing harness too, and I'm not sure we want to
force every userspace harness to provide the same workaround.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 15:23:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 15:23:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233192.404494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqd4Z-0000EI-ND; Fri, 26 Nov 2021 15:23:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233192.404494; Fri, 26 Nov 2021 15:23:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqd4Z-0000EB-K7; Fri, 26 Nov 2021 15:23:35 +0000
Received: by outflank-mailman (input) for mailman id 233192;
 Fri, 26 Nov 2021 15:23:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=skxS=QN=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mqd4Y-0000E3-Ow
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 15:23:34 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1997003-4ecc-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 16:23:33 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id l22so25105164lfg.7
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 07:23:33 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id n3sm520285ljc.92.2021.11.26.07.23.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Nov 2021 07:23:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1997003-4ecc-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=c6UA1L7mibksgWxwi+0e8uoYps7Z0SB9qdqFTSJCfQU=;
        b=Re18SX9KXZX8eS+hxqIbm8TOTNlvusykZlRqE2kawhdFdUXeLXDUF7s4EOkaf1FAx5
         dP9jTUKVesbBCdQuUw66vQ1Xey/qvx5W0BCTr76snoQob2j4jNzMk1icrHmv/Kaue2pl
         f5Xn/OphsMoPK9WDBfx7JIIZjZcEwQjN3rNkIls4TO2h5zzRIBgmRFylZmrzzvv92i9o
         4g3u7cqbF4+BHzqEmOrOOf2SBv2GNA/h0/vq4Ry0pQwgPTCmSSrf4fzAQCmhb6NMt1yz
         kt4Uk4JVewPGFSnxdOia1ufsqofuWlH46s98NSiyD/n5+UrGYaXpjf0kuqyfTsfOymT9
         s0WQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=c6UA1L7mibksgWxwi+0e8uoYps7Z0SB9qdqFTSJCfQU=;
        b=m3HIG5Yol1rtPQFe5f1c1B8egkWUj7cucdefGQ0fQ6VYgF8K04p5awAB/8glVN+4CI
         Iumq2jHN+/1MCh/xcp64Uq8PIWPXEZiRvVxzW3TqIdvwALk3hf/izLKRQL5N7Npo0Z+e
         wcurRXfrNVqCwz5DRTVsGRd/3Yz2JukVMz35Bpkbcio3qO+4o9ecpxgG4nXLnyii7rwy
         gi8dH84YfVRrE7cLU/ImuExBLBcvGDh2w2c4GREDc5UO6Uq+sODP/13Vu8s59hlX6M7T
         DHMfjpWLTvmx5clA2l5voXYxV1JoIZXA0+v1c5oBTX/H+hXt3vAvIGLYeqGYKhRuopxJ
         lHYg==
X-Gm-Message-State: AOAM533cxzMasnnpJxDXYOXNsNHo++obZzzQ+fiYVO3hbKJXINhkrz2H
	JnXTmCwdTb3qDlfacu6ShBQ=
X-Google-Smtp-Source: ABdhPJwKgyuJKQGOF56JoY2ClvsXS59QLaQu/YuFHrAvd/c6BapxmYexE/6pO8mv6RWJIM+Aglyf1Q==
X-Received: by 2002:a05:6512:1093:: with SMTP id j19mr30895246lfg.340.1637940213535;
        Fri, 26 Nov 2021 07:23:33 -0800 (PST)
Subject: Re: [PATCH V3 4/6] xen/unpopulated-alloc: Add mechanism to use Xen
 resource
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
 <1637787223-21129-5-git-send-email-olekstysh@gmail.com>
 <042a46ef-c20f-5cc7-8f9a-75b8731f661f@oracle.com>
From: Oleksandr <olekstysh@gmail.com>
Message-ID: <0a8b74ea-111a-690f-fbe5-ae79b814461e@gmail.com>
Date: Fri, 26 Nov 2021 17:23:32 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <042a46ef-c20f-5cc7-8f9a-75b8731f661f@oracle.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 26.11.21 17:17, Boris Ostrovsky wrote:

Hi Boris


>
> On 11/24/21 3:53 PM, Oleksandr Tyshchenko wrote:
>> +    if (target_resource != &iomem_resource) {
>> +        tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
>> +        if (!res) {
>
>
> If (!tmp_res)


Good catch, thank you!


>
>
>> +            ret = -ENOMEM;
>> +            goto err_insert;
>> +        }

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 15:28:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 15:28:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233200.404511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqd99-0000vu-CC; Fri, 26 Nov 2021 15:28:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233200.404511; Fri, 26 Nov 2021 15:28:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqd99-0000vn-93; Fri, 26 Nov 2021 15:28:19 +0000
Received: by outflank-mailman (input) for mailman id 233200;
 Fri, 26 Nov 2021 15:28:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ffxt=QN=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mqd97-0000vh-HE
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 15:28:17 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam07on20602.outbound.protection.outlook.com
 [2a01:111:f400:7e83::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 794e945b-4ecd-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 16:28:15 +0100 (CET)
Received: from BN9PR03CA0058.namprd03.prod.outlook.com (2603:10b6:408:fb::33)
 by MWHPR0201MB3596.namprd02.prod.outlook.com (2603:10b6:301:79::37)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Fri, 26 Nov
 2021 15:28:09 +0000
Received: from BN1NAM02FT029.eop-nam02.prod.protection.outlook.com
 (2603:10b6:408:fb:cafe::8f) by BN9PR03CA0058.outlook.office365.com
 (2603:10b6:408:fb::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Fri, 26 Nov 2021 15:28:09 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (149.199.80.198) by
 BN1NAM02FT029.mail.protection.outlook.com (10.13.2.143) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4734.20 via Frontend Transport; Fri, 26 Nov 2021 15:28:09 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Fri, 26 Nov 2021 15:28:08 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Fri, 26 Nov 2021 15:28:08 +0000
Received: from [10.71.119.170] (port=6428)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mqd8x-0003SD-5F; Fri, 26 Nov 2021 15:28:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 794e945b-4ecd-11ec-9787-a32c541c8605
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CNNr+qB/9ZEZlsRhr62lLRhI4jk+xTaRFGr5flsVIQqoBHuCfV9EzSP3kJM4sxA8MhazIZKx9EJFbFJvVJaddPiiCyd7MuegXr6vmvKctIJyzGbDtG0bzoqC+XgWKeviDW2mcRbqRO8JJAoiYj/FcUdhJwtI8/KWhNHltt8BmnESa66cHCRdpf/kswN9tSZA94gt/mM7aRO8E7cK0b3Z93WBQjMTaTGGKJNTjFbHqai8u5jCTN2KOGWqO3qI0rK/UZdRXpSHRTxVk0ieXmbL8HtIraQebRmUYU3+98eulCTHeX6wc4Z443W75ijKcjT0iyfOHMqh3CbsawNGGKY4kQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l1DOFrJB97afL5zbCaY0doj+ZP/5QM9KxCUVvLfmgac=;
 b=Zy9oNoW4XcxVEwlEJlOvEvChxWxpzPjK8TLVfsGInPaqeh4nmrk5H2YOSqTokofMmMPZCz4Dzwa/aLHcm1ckiofwdlIDxN7CCwaX36sLxgpQFM9fjkUrMBTBPy8pD20Jf1grohg9sVVb4V9TcHsywwkzmfbBwRR5ClSQ8jTofJYsPh2RnLZcHE1k7kSlQIBNEu+FD0NcbaGZLuSQZvua3pqI6d5QjWLSaF5K19mrNjYRbHPXRmlY2AUN9mo1Yl+ehx+Zmx2kZsrzPPy1cS7iMrLtro+egrhexFGO6x+iQrOxwmOBssbPHF9o8cIGziLq7Nw7O38LO5yK0Eaazfzi/Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=arm.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=l1DOFrJB97afL5zbCaY0doj+ZP/5QM9KxCUVvLfmgac=;
 b=Zis9NNmCnVHaYUXuwwmhOgYzXcacmC2LP/iog8n2TMxwSAnsnJVHMIhrek8wqdvIl7NxJhVsBWvp5yEUC19+Og3A+6L/N3RQ7pnruFtQ6v7uS0vfUHoTC2AixN63Hp6D9jDoBQqkw1sajS6rm3J4kIfLJD42kc7koZHNmbjtsxg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch02.xlnx.xilinx.com;
Message-ID: <5d72345d-3236-0fa6-24fc-652385f41b54@xilinx.com>
Date: Fri, 26 Nov 2021 15:28:06 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
To: Andre Przywara <andre.przywara@arm.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>
CC: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<stefano.stabellini@xilinx.com>, <julien@xen.org>,
	<Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<rahul.singh@arm.com>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
 <20211126131459.2bbc81ad@donnerap.cambridge.arm.com>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <20211126131459.2bbc81ad@donnerap.cambridge.arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: cc337427-2148-46ac-70ab-08d9b0f15a1f
X-MS-TrafficTypeDiagnostic: MWHPR0201MB3596:
X-Microsoft-Antispam-PRVS:
	<MWHPR0201MB35961B5C457FA4B18A7F8034B2639@MWHPR0201MB3596.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	dJ3a1hVEWSsLDozm+4CNFYoNcOSdPx3bqdGGMADDtFT2/Ucx+hPfQAA8Ij3ToE7MFNOAHtTXdHSuQ5VV5Oef/RtZcg5hsaQRDBYZw0JBDynOznJVRj3u4RSqtcOlHmLQVyaweefx/c5KE8H2fqg72ecB8EUVVxF81cI7Jvabdmol0WkYvgJl4HFKIfU0PPadCyWflxKs2vN+HHRG+9EWsH2nm934TXA7OKeXW/ROb425bluE7p8lh77MTyqomSiqJvwDQWyLGKjabiiu65nSQOvXmbb4cCOb4vKrVI2bWmEaxYc5gw2C1WLmSM20TcpMVHx+/b43xB4w8dsCU5YmiP9ARO4Yx+GI5L0GpUGMnZLjvY9Iwhu23ZdH5DmCoqsHjYVeDeWOYwSh5zDP+udEAYC9zOiVPer7dgceCrzArz1UEuyP62FOgr7ufe2+1l6r1JI452gl3dsVSAMq59/B0Mbt/6vjhA7vZU1nn0FPrngpRggFxp7JLfHQJF9/2Z8BgE/YxrjqRLvvHSpIbgC4u4qAz9F5JoR2yA5AaGKnFmEPcagOBPX2/dXeiRjAtvEc1FN8q6i32iv1ght0khSGYu2xN7OEuK21B4+LHjVqCVdTYciaYhehYE5Vn2WLeRYBj97fwJ5qpKvN9s4Cq6yFsAAUBQF9YCZM5QUMxBOfGrCyj1mXBzSwfQIV3mhftXLEPgBeVbHYqYCZrFWsUbCzEH3bzI5e2LF8GcoUyhgvSyYqx2WP/jgWh0StKPocGwSIC790C4AJlKr8YB/eLsBJoLGoP6HVci8qn07Zk4BvbT+JVsxD/2NydyraOFUgyREHXabGdlFzzXK4TDlpA5L6xSzpElHJI9R8JVUklikPLgdRxAzB4clNaY3MwU9+GnDS
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch02.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(47076005)(508600001)(2906002)(5660300002)(54906003)(316002)(31686004)(36756003)(36860700001)(83380400001)(53546011)(70586007)(8676002)(31696002)(26005)(186003)(966005)(7636003)(4326008)(70206006)(426003)(82310400004)(2616005)(110136005)(8936002)(356005)(9786002)(336012)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 15:28:09.3543
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cc337427-2148-46ac-70ab-08d9b0f15a1f
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1NAM02FT029.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR0201MB3596

Hi Andre,

Many thanks for your inputs.
Apologies if I sound dumb, but I need a few clarifications.

On 26/11/2021 13:14, Andre Przywara wrote:
> On Fri, 19 Nov 2021 16:52:02 +0000
> Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
> 
> Hi,
> 
>> At present, post indexing instructions are not emulated by Xen.
>> When Xen gets the exception, EL2_ESR.ISV bit not set. Thus as a
>> result, data abort is triggered.
>>
>> Added the logic to decode ldr/str post indexing instructions.
>> With this, Xen can decode instructions like these:-
>> ldr w2, [x1], #4
>> Thus, domU can read ioreg with post indexing instructions.
> 
> Where do those instructions come from? A (C) compiler? (Some mail in
> another thread from Stefano suggests so)
> If yes, I would argue that is broken:
> IIUC C compilers assume normal memory attributes for every pointer they
> handle, so they are free to use unaligned accesses, load/store exclusives,
> split accesses (two halfword reads) and what not when generating code.
> The GIC needs to be mapped as device memory, which explicitly forbids
> unaligned accesses and exclusives (as in: always traps), so you cannot let
> compiler-generated code access the GIC (or most other MMIO devices, for
> that matter).
> I know, this somewhat works(TM) in practise, because a uint32_t assignment
> is very likely to end up in an ldr/str, but please let me know which car
> this code ends up in, so that can I avoid this brand ;-)
> 
> You can tell the compiler to avoid unaligned accesses with -mstrict-align
> (and should definitely do so when you are running C code with the MMU
> off), but that still leaves exclusives and split accesses at the
> compiler's discretion. A variation on the topic of split access is merged
> writes, where the compiler uses NEON or SVE instructions, for instance, to
> cover multiple words at once, possibly via some memset()/memcpy() routine.

I understand that we should be using inline assembly instructions to 
access any MMIO region. This is to prevent the compiler doing any tricks.

But is there a restriction that post indexing instructions can never be 
used to access MMIO region ?

> 
> On top there is this architectural restriction of the ARMv7/v8
> virtualisation extension to not decode many "advanced" load/store
> instructions in ESR_EL2.
Where do I find this restriction ?

Are you telling me that load/store with post indexing is an "advanced" 
instruction and ArmV8 does not allow decoding of these instructions in 
ESR_EL2 ? Isn't that a very strong limitation ?

Also what is your opinion on Xen decoding these instructions ?

- Ayan

> Linux deliberately coded readl/writel using inline assembly, to only use
> instructions that provide syndrome information, plus guarantee
> device-memory compatible semantics.
> Check out https://lwn.net/Articles/698014/ for a comprehensive discussion
> of this whole MMIO topic.
> 
> So I think you should do the same in your guest/bare metal code: define
> {read,write}{b,h,l,q} as inline assembly functions, using ldr?/str? only.
> See xen/include/asm-arm/arm64/io.h for an example that uses static inline
> functions in a header file, to generate most optimal code. Then always do
> MMIO only via those accessors. That prevents any future compiler
> surprises, plus makes you perfectly virtualisable.
> 
> Cheers,
> Andre.
> 
>> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
>> ---
>> Note to reviewer:-
>> This patch is based on an issue discussed in
>> https://lists.xenproject.org/archives/html/xen-devel/2021-11/msg00969.html
>> "Xen/ARM - Query about a data abort seen while reading GICD registers"
>>
>>
>>   xen/arch/arm/decode.c | 77 +++++++++++++++++++++++++++++++++++++++++++
>>   xen/arch/arm/io.c     | 14 ++++++--
>>   2 files changed, 88 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
>> index 792c2e92a7..7b60bedbc5 100644
>> --- a/xen/arch/arm/decode.c
>> +++ b/xen/arch/arm/decode.c
>> @@ -84,6 +84,80 @@ bad_thumb2:
>>       return 1;
>>   }
>>   
>> +static inline int32_t extract32(uint32_t value, int start, int length)
>> +{
>> +    int32_t ret;
>> +
>> +    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
>> +        return -EINVAL;
>> +
>> +    ret = (value >> start) & (~0U >> (32 - length));
>> +
>> +    return ret;
>> +}
>> +
>> +static int decode_64bit_loadstore_postindexing(register_t pc, struct hsr_dabt *dabt)
>> +{
>> +    uint32_t instr;
>> +    int size;
>> +    int v;
>> +    int opc;
>> +    int rt;
>> +    int imm9;
>> +
>> +    /* For details on decoding, refer to Armv8 Architecture reference manual
>> +     * Section - "Load/store register (immediate post-indexed)", Pg 318
>> +    */
>> +    if ( raw_copy_from_guest(&instr, (void * __user)pc, sizeof (instr)) )
>> +        return -EFAULT;
>> +
>> +    /* First, let's check for the fixed values */
>> +
>> +    /*  As per the "Encoding table for the Loads and Stores group", Pg 299
>> +     * op4 = 1 - Load/store register (immediate post-indexed)
>> +     */
>> +    if ( extract32(instr, 10, 2) != 1 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    /* For the following, refer to "Load/store register (immediate post-indexed)"
>> +     * to get the fixed values at various bit positions.
>> +     */
>> +    if ( extract32(instr, 21, 1) != 0 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    if ( extract32(instr, 24, 2) != 0 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    if ( extract32(instr, 27, 3) != 7 )
>> +        goto bad_64bit_loadstore;
>> +
>> +    size = extract32(instr, 30, 2);
>> +    v = extract32(instr, 26, 1);
>> +    opc = extract32(instr, 22, 1);
>> +
>> +    /* At the moment, we support STR(immediate) - 32 bit variant and
>> +     * LDR(immediate) - 32 bit variant only.
>> +     */
>> +    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
>> +        goto bad_64bit_loadstore;
>> +
>> +    rt = extract32(instr, 0, 5);
>> +    imm9 = extract32(instr, 12, 9);
>> +
>> +    if ( imm9 < 0 )
>> +        update_dabt(dabt, rt, size, true);
>> +    else
>> +        update_dabt(dabt, rt, size, false);
>> +
>> +    dabt->valid = 1;
>> +
>> +
>> +    return 0;
>> +bad_64bit_loadstore:
>> +    gprintk(XENLOG_ERR, "unhandled 64bit instruction 0x%x\n", instr);
>> +    return 1;
>> +}
>> +
>>   static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>>   {
>>       uint16_t instr;
>> @@ -155,6 +229,9 @@ int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt *dabt)
>>       if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
>>           return decode_thumb(regs->pc, dabt);
>>   
>> +    if ( is_64bit_domain(current->domain) )
>> +        return decode_64bit_loadstore_postindexing(regs->pc, dabt);
>> +
>>       /* TODO: Handle ARM instruction */
>>       gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
>>   
>> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
>> index 729287e37c..49e80358c0 100644
>> --- a/xen/arch/arm/io.c
>> +++ b/xen/arch/arm/io.c
>> @@ -106,14 +106,13 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
>>           .gpa = gpa,
>>           .dabt = dabt
>>       };
>> +    int rc;
>>   
>>       ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
>>   
>>       handler = find_mmio_handler(v->domain, info.gpa);
>>       if ( !handler )
>>       {
>> -        int rc;
>> -
>>           rc = try_fwd_ioserv(regs, v, &info);
>>           if ( rc == IO_HANDLED )
>>               return handle_ioserv(regs, v);
>> @@ -123,7 +122,16 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
>>   
>>       /* All the instructions used on emulated MMIO region should be valid */
>>       if ( !dabt.valid )
>> -        return IO_ABORT;
>> +    {
>> +        /*
>> +         * Post indexing ldr/str instructions are not emulated by Xen. So, the
>> +         * ISS is invalid. In such a scenario, we try to manually decode the
>> +         * instruction from the program counter.
>> +         */
>> +        rc = decode_instruction(regs, &info.dabt);
>> +        if ( rc )
>> +            return IO_ABORT;
>> +    }
>>   
>>       /*
>>        * Erratum 766422: Thumb store translation fault to Hypervisor may
> 


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 15:32:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 15:32:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233205.404522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqdCd-0002H2-SV; Fri, 26 Nov 2021 15:31:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233205.404522; Fri, 26 Nov 2021 15:31:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqdCd-0002Gv-Pc; Fri, 26 Nov 2021 15:31:55 +0000
Received: by outflank-mailman (input) for mailman id 233205;
 Fri, 26 Nov 2021 15:31:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8kDD=QN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mqdCc-0002Gp-Mf
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 15:31:54 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb2e1869-4ecd-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 16:31:53 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id D4BA82193C;
 Fri, 26 Nov 2021 15:31:52 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A753613C65;
 Fri, 26 Nov 2021 15:31:52 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id 1y6hJ+j9oGGubgAAMHmgww
 (envelope-from <jgross@suse.com>); Fri, 26 Nov 2021 15:31:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb2e1869-4ecd-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1637940712; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=iuWswj+KSBKhGTzpmaFe1OYVr6F6OkM+6uhQMY9vN6U=;
	b=RUScaE9Z/A4fFF1JFlCkn4fO8pSEQRWQhJzg8wUClWJJT51aDFtUKPBhbm5mahTWg/c0Oy
	L1m1ZquVx9X1Gxn7qf+uWsrQ3Cq35aX83ZijsE52IvKEaLVbc85I8Q2gVi0ajYeXkYIPnk
	USZ/gWrE/TDjnn1rkbjj0WYkgLx+jCQ=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	boris.ostrovsky@oracle.com
Subject: [GIT PULL] xen: branch for v5.16-rc3
Date: Fri, 26 Nov 2021 16:31:52 +0100
Message-Id: <20211126153152.380-1-jgross@suse.com>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-5.16c-rc3-tag

xen: branch for v5.16-rc3

It contains the following changes:
- a Xen related Kconfig fix for making it possible to control building
  of the privcmd driver
- 3 patches for fixing issues identified by the kernel test robot
- a 5 patch series for simplifying timeout handling for Xen PV driver
  initialization
- 2 patches for fixing error paths in xenstore/xenbus driver initialization

Thanks.

Juergen

 arch/x86/include/asm/xen/hypercall.h       |  4 ++--
 arch/x86/include/asm/xen/hypervisor.h      |  1 +
 drivers/gpu/drm/xen/xen_drm_front.c        |  1 +
 drivers/input/misc/xen-kbdfront.c          |  1 +
 drivers/tty/hvc/hvc_xen.c                  |  1 +
 drivers/video/fbdev/xen-fbfront.c          |  1 +
 drivers/xen/Kconfig                        |  8 +++++++-
 drivers/xen/pvcalls-front.c                |  1 +
 drivers/xen/xenbus/xenbus_probe.c          | 27 ++++++++++++++++++++++++++-
 drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
 include/xen/xenbus.h                       |  1 +
 sound/xen/xen_snd_front.c                  |  1 +
 12 files changed, 46 insertions(+), 15 deletions(-)

Juergen Gross (9):
      xen/privcmd: make option visible in Kconfig
      xen/pvh: add missing prototype to header
      xen: add "not_essential" flag to struct xenbus_driver
      xen: flag xen_drm_front to be not essential for system boot
      xen: flag hvc_xen to be not essential for system boot
      xen: flag pvcalls-front to be not essential for system boot
      xen: flag xen_snd_front to be not essential for system boot
      xen: make HYPERVISOR_get_debugreg() always_inline
      xen: make HYPERVISOR_set_debugreg() always_inline

Stefano Stabellini (2):
      xen: don't continue xenstore initialization in case of errors
      xen: detect uninitialized xenbus in xenbus_init


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 16:34:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 16:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233235.404581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqeAi-0000Rr-8Z; Fri, 26 Nov 2021 16:34:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233235.404581; Fri, 26 Nov 2021 16:34:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqeAi-0000Rk-5X; Fri, 26 Nov 2021 16:34:00 +0000
Received: by outflank-mailman (input) for mailman id 233235;
 Fri, 26 Nov 2021 16:33:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqeAh-0000Re-23
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 16:33:59 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5d49001-4ed6-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 17:33:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5d49001-4ed6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637944437;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=KYEz55HYjAYxPEm8qBYCpFw4y6kWRbV6ztRd7oOqaJA=;
  b=WvrHmTftpGN6Q0ezAqdAE5VQf5Au5teR5yIHGwhNywysZ2Wku57IIwD6
   NIRBmzh7AF660Xxgkzes19jnYDFA61wEOi/8W2YLTU8xARw4B8Lm3rRGl
   qIMpszfoIwgjNApKgK3NucbsALw8tXIEDM3AnTOhTjGG8LhjnVgL3kw7t
   E=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Y3N6KCa5Nnq1a+ynvFHrqGW7zFkGMYUyORd1SouRYf6P6YfSS0dqUsh0PvczSSi+w+BvSZ9zF1
 UdhgQyi5KUYgxgyeoZKdAv+ZOPtq9jtM7VuSh6RQPOcvdInld8pgLpHE0s+6CNYHm/wT7jqiG7
 uBO852vbK1lQoyrubqOW0W9lVuHsm6GN4FRrrd12BNRQINHAYuTjQZlwkTq/KUwrFf3ugVAuVI
 ijkbVChwhyHbNDg/wPI28wOKo2XLN+SiRkPeYFAyoGG6eBAc0th2XLRVv39e3dl/QcU9hQZLSp
 Z6LFkUWskjABUo1oPMgW3LEu
X-SBRS: 5.1
X-MesageID: 58206538
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:7q3XoKu1xEsXix5Y31QeXi/FsufnVJtZMUV32f8akzHdYApBsoF/q
 tZmKW6GbPaONjGjethwPdnl80IFv8fRz9FgTQdsqig2Ri9H+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 NplqLKgEioqN7b1h+kZcTt2NityYbdJ9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5BBN2c0PHwsZTUXFFQIDrcDmtyUuTq8MB9jkG2/hvsOtj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO/AU+FqgyaPP2hmUAkomYBtLZIA8u8BjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSEhRqjBNzAJrVkg
 JTis5PFhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlUJ2K2M
 RON5Vg5CHpv0J2CNvQfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9YNc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:5W/Pm6w9dTxYf486RQubKrPwFr1zdoMgy1knxilNoRw8SK2lfq
 eV7YwmPH7P+U8ssR4b6LO90cW7Lk80sKQFhbX5Xo3SOjUO2lHYTr2KhLGKq1aLdkHDH6xmpM
 BdmsBFeabN5DNB7foSjjPXLz9Z+qjjzJyV
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58206538"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 59.5/65] x86: Introduce helpers/checks for endbr64 instructions
Date: Fri, 26 Nov 2021 16:33:40 +0000
Message-ID: <20211126163340.26714-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

... to prevent the optimiser creating unsafe code.  See the code comment for
full details.

Also add a build time check for endbr64 embedded in imm32 operands, which
catches the obvious cases where the optimiser has done an unsafe thing.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/Makefile       |  4 ++++
 xen/include/asm-x86/endbr.h | 55 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)
 create mode 100644 xen/include/asm-x86/endbr.h

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 69b6cfaded25..64a5c0d20018 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -190,6 +190,10 @@ $(TARGET)-syms: prelink.o xen.lds
 	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).1.o
 	$(LD) $(XEN_LDFLAGS) -T xen.lds -N prelink.o $(build_id_linker) \
 	    $(@D)/.$(@F).1.o -o $@
+ifeq ($(CONFIG_XEN_IBT),y)
+	$(OBJDUMP) -d $@ | grep 0xfa1e0ff3 >/dev/null && \
+		{ echo "Found embedded endbr64 instructions" >&2; false; } || :
+endif
 	$(NM) -pa --format=sysv $(@D)/$(@F) \
 		| $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		>$(@D)/$(@F).map
diff --git a/xen/include/asm-x86/endbr.h b/xen/include/asm-x86/endbr.h
new file mode 100644
index 000000000000..47f766024c12
--- /dev/null
+++ b/xen/include/asm-x86/endbr.h
@@ -0,0 +1,55 @@
+/******************************************************************************
+ * include/asm-x86/endbr.h
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (c) 2021 Citrix Systems Ltd.
+ */
+#ifndef XEN_ASM_ENDBR_H
+#define XEN_ASM_ENDBR_H
+
+#include <xen/compiler.h>
+
+/*
+ * In some cases we need to inspect/insert endbr64 instructions.
+ *
+ * The naive way, mem{cmp,cpy}(ptr, "\xf3\x0f\x1e\xfa", 4), optimises unsafely
+ * by placing 0xfa1e0ff3 in an imm32 operand, which marks a legal indirect
+ * branch target as far as the CPU is concerned.
+ *
+ * gen_endbr64() is written deliberately to avoid the problematic operand, and
+ * marked __const__ as it is safe for the optimiser to hoist/merge/etc.
+ */
+static inline uint32_t __attribute_const__ gen_endbr64(void)
+{
+    uint32_t res;
+
+    asm ( "mov $~0xfa1e0ff3, %[res]\n\t"
+          "not %[res]\n\t"
+          : [res] "=r" (res) );
+
+    return res;
+}
+
+static inline bool is_endbr64(const void *ptr)
+{
+    return *(const uint32_t *)ptr == gen_endbr64();
+}
+
+static inline void place_endbr64(void *ptr)
+{
+    *(uint32_t *)ptr = gen_endbr64();
+}
+
+#endif /* XEN_ASM_ENDBR_H */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 16:38:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 16:38:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233242.404595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqeEe-00017C-QJ; Fri, 26 Nov 2021 16:38:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233242.404595; Fri, 26 Nov 2021 16:38:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqeEe-000175-Mw; Fri, 26 Nov 2021 16:38:04 +0000
Received: by outflank-mailman (input) for mailman id 233242;
 Fri, 26 Nov 2021 16:38:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqeEd-00016T-H3
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 16:38:03 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3798379d-4ed7-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 17:38:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3798379d-4ed7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637944681;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=3/NSMBOP/JTQOyrzYRs/g6kXzLCntN/islndZqobP2A=;
  b=fHTEOc5bsGQR/2ghLjq12c9Ysde2RrWLIZD+PvjpMSdd8tx1ldQALi7m
   UR7CrSZ4ZcabtZAh+quoUhNypWg9b4yyzMYCqgeqF8VtOJT3Jt1DMu8Vo
   U7LUwInHWF0X9mxKNHsT+5Nw8xvZWoB8Bir3YU7WErPPJM1ryuKDSWa8E
   g=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: gP0vgzTaE3WaM/cuUgl+CufkQG5kFJBtOQLSYtnjRVimZhPkhfI9r1CKRblfJ2Siwlzp7lk5Pi
 uqGf2I9Q/Lq+iQQ2Uk4JVQ766DJBFeeTnMip0FCo15yLXhcIwIAtjOn2Nmsc/Rr0FwrONfa+lX
 iLd2/OLLlvJXCv7r+Sup18zbPu0co4BlOBa+TZByHDLAQ3cqP02PrPNDChlCDsQyN8VPhxePNk
 QOQD4slsyMrzV9YqNr1WCXBZUB3wle+kWHg1CpiBhqf1yMu6Iq2KXQ6EKzJmlSXhgWKQcag1rT
 yqUbewEqur95krDwC/c94Y4o
X-SBRS: 5.1
X-MesageID: 58647550
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:CDflPq3zkrkNgO6zh/bD5R52kn2cJEfYwER7XKvMYLTBsI5bpzQGz
 TYfC2vVbKyDMWfzfd8kYNzl8R5TuMXWztY1TgU5pC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbBh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhg+8t2
 NUUmr6KaiQ3OIz2we4NWSJgHHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Er8IvNsT0eqgYvWlt12rxBvc6W5HTBa7N4Le02R9t1p4SQquDP
 6L1bxIxQyzfQyVkFm4KS7cDmb+4gmikbjRx/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 kDs8nn9AxoaHMeC0jfD+XWp7sffkCW+VI8MGbmQ8v9xnEbV1mEVEAcRV1awvb++kEHWZj5EA
 xVKoGx09/F0rRH1CImmN/GlnJKalgIjB8pQSsIY0iKu1Kz12V+TFmI/djEUPbTKq/QKbTAt0
 1aImfbgCjpurKCZRBqhy1uEkd+hEXNLdDFfPEfoWSNAuoC++99r0nojW/46SPbt5uAZDw0c1
 NxjQMIWo7wIxfAG2Kyglbwsq2L9/8OZJuLZC+i+Y45E0u+bTNL6D2BLwQKChRqlEGp/ZgLa1
 JTjs5LDhN3i9bnXyESwrBwlRdlFHcqtPjzGmkJIFJI87Tmr8HPLVdkOu24ueho2Y5paJWSBj
 KrvVeV5v8Q70JyCN/IfXm5MI55ykfiI+SrNCpg4keaikrAuLVTarUmClGab3nz3kVhErE3ME
 czzTCpYNl5DUf4P5GPvH481iOZ3rghjlTK7bc2qlHyPjOvBDEN5vJ9YaTNimMhit/jayOgUm
 v4CX/a3J+J3DLejP3KJqNFLdjjn7xETXPjLliCeTcbbSiIOJY3rI6W5LWoJd9M3kqJLuP3P+
 33hCEZUxECm3S/MKBmQa2AlY7TqBM4toXU+NC0qHFCpx3l8Ptr/sPZBL8M6Les96ehu7f9oV
 P1ZKc+ONetCF2bc8DMHYJij8IE7LEa3hRiDNjaOaSQke8IyXBTA/9LpJ1O99CQHAietm9E5p
 rmsilHSTZYZHlwwB8fKcvO/iVi2uCFFyu51WkLJJPhVeVntr9c2e3Cg0KdvLphVexvZxzac2
 wKHOjsipLHA890v7d3EpaGYtIP1QeFwKVVXQjvA5rGsOCiEomf6md1cUPyFdCz2XX/v/Pnwf
 v1cyvzxPaFVnFtOtIYgQb9nwbhnuonqrr5eiA9lAG/KfxKgDbY5eiuK2sxGt6tswL5FuFTpB
 hLTq4cCYbjZatn4FFMxJRY+arXR3P4ZrTDe8PApLRio/yRw5reGDR1fMhTkZPax91ep3FfJG
 dschfM=
IronPort-HdrOrdr: A9a23:gDK2b62eaXLx2f9WTua6YgqjBIokLtp133Aq2lEZdPRUGvb3qy
 nIpoVj6faUskd2ZJhOo7C90cW7LU80sKQFhLX5Xo3SOzUO2lHYT72KhLGKq1aLdhEWtNQtsZ
 uIG5IOcOEYZmIasS+V2maF+q4bsbu6zJw=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58647550"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH v1.1 60/65] x86/emul: Update emulation stubs to be CET-IBT compatible
Date: Fri, 26 Nov 2021 16:37:14 +0000
Message-ID: <20211126163714.28870-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

All indirect branches need to land on an endbr64 instruction.

For stub_selftests(), use endbr64 unconditionally for simplicity.  For ioport
and instruction emulation, add endbr64 conditionally.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

v2:
 * Update to use endbr helpers
---
 xen/arch/x86/extable.c         | 14 +++++++++-----
 xen/arch/x86/pv/emul-priv-op.c |  7 +++++++
 xen/arch/x86/x86_emulate.c     | 13 +++++++++++--
 3 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/extable.c b/xen/arch/x86/extable.c
index 4aa1ab4b2a45..25c6fda00d28 100644
--- a/xen/arch/x86/extable.c
+++ b/xen/arch/x86/extable.c
@@ -129,19 +129,23 @@ search_exception_table(const struct cpu_user_regs *regs)
 static int __init cf_check stub_selftest(void)
 {
     static const struct {
-        uint8_t opc[4];
+        uint8_t opc[8];
         uint64_t rax;
         union stub_exception_token res;
     } tests[] __initconst = {
-        { .opc = { 0x0f, 0xb9, 0xc3, 0xc3 }, /* ud1 */
+        { .opc = { 0xf3, 0x0f, 0x1e, 0xfa,   /* endbr64 */
+                   0x0f, 0xb9, 0xc3, 0xc3 }, /* ud1 */
           .res.fields.trapnr = TRAP_invalid_op },
-        { .opc = { 0x90, 0x02, 0x00, 0xc3 }, /* nop; add (%rax),%al */
+        { .opc = { 0xf3, 0x0f, 0x1e, 0xfa,   /* endbr64 */
+                   0x90, 0x02, 0x00, 0xc3 }, /* nop; add (%rax),%al */
           .rax = 0x0123456789abcdef,
           .res.fields.trapnr = TRAP_gp_fault },
-        { .opc = { 0x02, 0x04, 0x04, 0xc3 }, /* add (%rsp,%rax),%al */
+        { .opc = { 0xf3, 0x0f, 0x1e, 0xfa,   /* endbr64 */
+                   0x02, 0x04, 0x04, 0xc3 }, /* add (%rsp,%rax),%al */
           .rax = 0xfedcba9876543210,
           .res.fields.trapnr = TRAP_stack_error },
-        { .opc = { 0xcc, 0xc3, 0xc3, 0xc3 }, /* int3 */
+        { .opc = { 0xf3, 0x0f, 0x1e, 0xfa,   /* endbr64 */
+                   0xcc, 0xc3, 0xc3, 0xc3 }, /* int3 */
           .res.fields.trapnr = TRAP_int3 },
     };
     unsigned long addr = this_cpu(stubs.addr) + STUB_BUF_SIZE / 2;
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 808ff1873352..e35cb4b8669d 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -26,6 +26,7 @@
 
 #include <asm/amd.h>
 #include <asm/debugreg.h>
+#include <asm/endbr.h>
 #include <asm/hpet.h>
 #include <asm/hypercall.h>
 #include <asm/mc146818rtc.h>
@@ -111,6 +112,12 @@ static io_emul_stub_t *io_emul_stub_setup(struct priv_op_ctxt *ctxt, u8 opcode,
 
     p = ctxt->io_emul_stub;
 
+    if ( cpu_has_xen_ibt )
+    {
+        place_endbr64(p);
+        p += 4;
+    }
+
     APPEND_BUFF(prologue);
     APPEND_CALL(load_guest_gprs);
 
diff --git a/xen/arch/x86/x86_emulate.c b/xen/arch/x86/x86_emulate.c
index 60191a94dc18..720740f29b84 100644
--- a/xen/arch/x86/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate.c
@@ -17,6 +17,7 @@
 #include <asm/xstate.h>
 #include <asm/amd.h> /* cpu_has_amd_erratum() */
 #include <asm/debugreg.h>
+#include <asm/endbr.h>
 
 /* Avoid namespace pollution. */
 #undef cmpxchg
@@ -29,11 +30,19 @@
         cpu_has_amd_erratum(&current_cpu_data, AMD_ERRATUM_##nr)
 
 #define get_stub(stb) ({                                        \
+    void *ptr;                                                  \
     BUILD_BUG_ON(STUB_BUF_SIZE / 2 < MAX_INST_LEN + 1);         \
     ASSERT(!(stb).ptr);                                         \
     (stb).addr = this_cpu(stubs.addr) + STUB_BUF_SIZE / 2;      \
-    memset(((stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn)))) +  \
-           ((stb).addr & ~PAGE_MASK), 0xcc, STUB_BUF_SIZE / 2);        \
+    (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) +    \
+        ((stb).addr & ~PAGE_MASK);                              \
+    ptr = memset((stb).ptr, 0xcc, STUB_BUF_SIZE / 2);           \
+    if ( cpu_has_xen_ibt )                                      \
+    {                                                           \
+        place_endbr64(ptr);                                     \
+        ptr += 4;                                               \
+    }                                                           \
+    ptr;                                                        \
 })
 #define put_stub(stb) ({                                   \
     if ( (stb).ptr )                                       \
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 16:38:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 16:38:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233243.404605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqeEr-0001Rd-2z; Fri, 26 Nov 2021 16:38:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233243.404605; Fri, 26 Nov 2021 16:38:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqeEq-0001RS-WA; Fri, 26 Nov 2021 16:38:16 +0000
Received: by outflank-mailman (input) for mailman id 233243;
 Fri, 26 Nov 2021 16:38:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqeEq-00016T-2v
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 16:38:16 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3fac4119-4ed7-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 17:38:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fac4119-4ed7-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637944694;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=iSTdkE0nHLJGOO6QKVKdLSrlYBdgNwshsJepa2MYnPQ=;
  b=IfDEyPOHU3dWChg48nlRVD0B81D5KNSncDDVmoXjspxxEo2escZBq1b5
   pP5wIHwQ9ZH4kO1/Z7FrN0zGiZ/byne4yEERQsyULXTPAUIL493DK7TIB
   U8gcxdpxmXfS6YTj/aNkf4omc3GrG6uNbnjtRqPMIx4yenUbfQ6i/+Zcr
   c=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: j1O0amNu4WnABxO8wR389VwN1V9tYpOLOWCKCII3ywUkhB88zBxYwgBy+zauNorvkebXMK9P5X
 M+cHOCylB+6s43BtLb9o0Q7jfP7WBvY2IPfMSdtozspCgXDZECH0yg4Bx9yZjTl9DPMw6Pl0nZ
 gLw7zk/NffR2FV8ff7yu+3zHtqYLvZtOkA4LkRmo/rI6NAFRU26sA5npgVUT9w1hhLvYfkrDX3
 340xxyKtnwOenii16QCeaZlmSMvbtUAoWZz6QhChqyCH7trnE40tdp/aD1BpIvXO2thvCt+nQ5
 YWZijXFOwBklN5MfH/X+Atd7
X-SBRS: 5.1
X-MesageID: 58206773
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:IV4r06Mw0mezgJfvrR1okMFynXyQoLVcMsEvi/4bfWQNrUorgTZSy
 WVNXz+AOa6Ia2KkLdtybo7joE0H6sSAnNJlHQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Eg9w7RRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYoy20jf147
 Olzj4LuRlkZL4venectTRYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWdq3p4RQq22i
 8wxSWFpNjnPXRB0NkoSOIwC3/inoDrCfGgNwL6SjfVuuDWCpOBr65DyNPLFd9rMQt9a9m66j
 G/b+2XyAjkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24nNSQPoGd
 RZSoHB36/Fvqgr7FbERQiFUvlacgwwxUv5sLdcktg7T+rvy8QOaNnYLG2sphMMdiOc6Qjkj1
 1msltzvBCByvLD9dU9x5ot4vhvpZ3FLcDZqiTssCFJcvoK9+N1bYgfnF447SMaIYsvJ9SYcK
 txghAw3nP0tgMECzM1XFniX0mv39vAlouPYjzg7v15JDCslO+ZJhKTysDA3CMqsyq7CFTFtW
 1BexqCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I9sPsG8jexY1bJpfEdMMX
 KM1kVgKjHO0FCH3BZKbnqrrU5h6pUQePYiNug/ogipmPcEqKV7vENBGbk+MxWH9+HXAYolkU
 ap3hf2EVC5AYYw+lWLeb75EjdcDm3BvrUuOFMuT50n2jtKjiIu9FO5t3K2mNbtisstpYWz9r
 r5iCid940kFDbClPHCIqdV7wJJjBSFTOK0aYvd/LoarSjeK0kl7YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:nvXG/qr5H7YIu8kKJiVXDF8aV5oReYIsimQD101hICG8cqSj9v
 xG+85rrSMc6QxhIU3I9urwW5VoLUmyyXcx2/h0AV7AZniBhILLFvAB0WKK+VSJcEeSmtK1l5
 0QFJSWYOeAdmSS5vyb3ODXKbgdKaG8gcWVuds=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58206773"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH v1.1 61/65] x86/entry: Make syscall/sysenter entrypoints CET-IBT compatible
Date: Fri, 26 Nov 2021 16:37:47 +0000
Message-ID: <20211126163747.29517-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Each of MSR_{L,C}STAR and MSR_SYSENTER_EIP need to land on an endbr64
instruction.  For sysenter, this is easy.

Unfortunately for syscall, the stubs are already 29 byte long with a limit of
32.  endbr64 is 4 bytes.  Luckily, there is a 1 byte instruction which can
move from the stubs into the main handlers.

Move the push %rax out of the stub and into {l,c}star_entry(), allowing room
for the endbr64 instruction when appropriate.  Update the comment describing
the entry state.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

v2:
 * Update to use endbr helpers.
---
 xen/arch/x86/x86_64/entry.S | 18 +++++++++---------
 xen/arch/x86/x86_64/traps.c | 11 +++++++----
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 8494b97a54a2..9abcf95bd010 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -241,18 +241,17 @@ iret_exit_to_guest:
  * When entering SYSCALL from user mode:
  *  Vector directly to the registered arch.syscall_addr.
  *
- * Initial work is done by per-CPU trampolines. At this point %rsp has been
- * initialised to point at the correct Xen stack, %rsp has been saved, and
- * %rax needs to be restored from the %ss save slot. All other registers are
- * still to be saved onto the stack, starting with RFLAGS, and an appropriate
- * %ss must be saved into the space left by the trampoline.
+ * Initial work is done by per-CPU trampolines.
+ *  - Guest %rax stored in the %ss slot
+ *  - Guest %rsp stored in %rax
+ *  - Xen stack loaded, pointing at the %ss slot
  */
 ENTRY(lstar_enter)
 #ifdef CONFIG_XEN_SHSTK
         ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
 #endif
-        /* sti could live here when we don't switch page tables below. */
-        movq  8(%rsp),%rax /* Restore %rax. */
+        push  %rax          /* Guest %rsp */
+        movq  8(%rsp), %rax /* Restore guest %rax */
         movq  $FLAT_KERNEL_SS,8(%rsp)
         pushq %r11
         pushq $FLAT_KERNEL_CS64
@@ -288,9 +287,9 @@ ENTRY(cstar_enter)
 #ifdef CONFIG_XEN_SHSTK
         ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
 #endif
-        /* sti could live here when we don't switch page tables below. */
+        push  %rax          /* Guest %rsp */
         CR4_PV32_RESTORE
-        movq  8(%rsp), %rax /* Restore %rax. */
+        movq  8(%rsp), %rax /* Restore guest %rax. */
         movq  $FLAT_USER_SS32, 8(%rsp) /* Assume a 64bit domain.  Compat handled lower. */
         pushq %r11
         pushq $FLAT_USER_CS32
@@ -323,6 +322,7 @@ ENTRY(cstar_enter)
         jmp   switch_to_kernel
 
 ENTRY(sysenter_entry)
+        ENDBR64
 #ifdef CONFIG_XEN_SHSTK
         ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK
 #endif
diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
index 6f3c65bedc7a..ab66515a3c75 100644
--- a/xen/arch/x86/x86_64/traps.c
+++ b/xen/arch/x86/x86_64/traps.c
@@ -16,6 +16,7 @@
 #include <asm/current.h>
 #include <asm/flushtlb.h>
 #include <asm/traps.h>
+#include <asm/endbr.h>
 #include <asm/event.h>
 #include <asm/nmi.h>
 #include <asm/msr.h>
@@ -295,6 +296,12 @@ static unsigned int write_stub_trampoline(
 {
     unsigned char *p = stub;
 
+    if ( cpu_has_xen_ibt )
+    {
+        place_endbr64(p);
+        p += 4;
+    }
+
     /* Store guest %rax into %ss slot */
     /* movabsq %rax, stack_bottom - 8 */
     *p++ = 0x48;
@@ -315,10 +322,6 @@ static unsigned int write_stub_trampoline(
     *(uint64_t *)p = stack_bottom - 8;
     p += 8;
 
-    /* Store guest %rsp into %rsp slot */
-    /* pushq %rax */
-    *p++ = 0x50;
-
     /* jmp target_va */
     *p++ = 0xe9;
     *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 16:40:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 16:40:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233255.404626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqeGM-0002Iz-In; Fri, 26 Nov 2021 16:39:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233255.404626; Fri, 26 Nov 2021 16:39:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqeGM-0002Iq-Fj; Fri, 26 Nov 2021 16:39:50 +0000
Received: by outflank-mailman (input) for mailman id 233255;
 Fri, 26 Nov 2021 16:39:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqeGL-0002Id-21
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 16:39:49 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 76aaaa14-4ed7-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 17:39:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76aaaa14-4ed7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637944787;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=h9LW2Z7OcjobSQpDdRkOtRJfqxEd9wK31rMUqlrU7c8=;
  b=Vr36gQrAm+3Bj+YuBtUMXDkrBEcHQ7pGUydi6t9DnaTSCElwEfux9Zwl
   P8cnd78xbWm6IypTW8BVS3/Q62wDoNP6XU/LhLbcNgCl1rlOIb1Fw+gKg
   Q8sXWEnDDYCyHDsQIgeuVYxendCONjEQIbOqIVAZvZ4vduQskJB4KfIqz
   E=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: wQ/zICD1qPxh/hItQiU9uzFMfE6yks6v2nQ9+901uzFNUQ77QWiMqEaPN/S/pLuxW9GJUaHsNs
 0oBvNVO7I/zheiFTH4RoVwKbI7K3fws7owBYhTRPqRhJ9FHUhGLN724+/mdNqkPkUOyNoRwZ5J
 wS5gcSA9cFKY/4KxQAENIhbnKT9OzOQL2L+tRpjrkhgygNrHFBJ58W1ZxhbaLzCRR5Xuc016Pw
 vZsCH73VRJWaHw0MPSzBH3Fx2Gr8ZJb3vYgS37FvMZgGrayNGZp0IwA8qvMc/Ltn8MyGFCFnaY
 ozNKFMctqC15RKFoJPqqFUFh
X-SBRS: 5.1
X-MesageID: 58708258
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:FtgpyaujDDRUaKBLHqgtBNFIMOfnVJtZMUV32f8akzHdYApBsoF/q
 tZmKTrTaPfZM2Wmc49/a4vjph9U6sXQy99lSwY//i8yFi8Q+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npl5bnpciYEHZz1xKciXyUfEAFhMbMa9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5VBOWAyPHwsZTVLJlwONdVisdyuuUnvXyd1tBGZqvMotj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO70fsTqs54nl2lraOWQ4CT1hd9A46MBjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSEhRqjBNzAJrVkg
 JTis5PFhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlUJ2K2M
 RON5Vg5CHpv0J2CNvQfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9INc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:OPMoEK18qYQ4mrhQPmqJCAqjBIgkLtp133Aq2lEZdPRUGvb4qy
 nIpoVi6faUskdpZJhOo6HiBEDtexzhHNtOkO0s1NSZLW/bUQmTXeNfBOLZqlWKcUCTygce79
 YGT0EXMqyKMbEQt6bHCWeDferIuOP3lZyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58708258"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH v1.1 64/65] x86/efi: Disable CET-IBT around Runtime Services calls
Date: Fri, 26 Nov 2021 16:38:30 +0000
Message-ID: <20211126163830.30151-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

At least one TigerLake NUC has UEFI firmware which isn't CET-IBT compatible.
Read under a function pointer to see whether an endbr64 instruction is
present, and use this as a heuristic.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

This was disappointing to discover.  I've pestered some folk and maybe
something will improve in due course, but it remains an open question how best
to discover that Runtime Services are CET-IBT compatible.

v2:
 * Switch to endbr helpers.
---
 xen/arch/x86/efi/stub.c  |  2 ++
 xen/common/efi/boot.c    |  9 +++++++++
 xen/common/efi/runtime.c | 17 +++++++++++++++++
 xen/include/xen/efi.h    |  1 +
 4 files changed, 29 insertions(+)

diff --git a/xen/arch/x86/efi/stub.c b/xen/arch/x86/efi/stub.c
index 998493262641..5e44913e52db 100644
--- a/xen/arch/x86/efi/stub.c
+++ b/xen/arch/x86/efi/stub.c
@@ -11,6 +11,8 @@
 #include <efi/efidevp.h>
 #include <efi/efiapi.h>
 
+bool __initdata efi_no_cet_ibt;
+
 /*
  * Here we are in EFI stub. EFI calls are not supported due to lack
  * of relevant functionality in compiler and/or linker.
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index f5af71837d5a..c19f993af922 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -21,6 +21,7 @@
 #include <xen/string.h>
 #include <xen/stringify.h>
 #ifdef CONFIG_X86
+#include <asm/endbr.h>
 /*
  * Keep this arch-specific modified include in the common file, as moving
  * it to the arch specific include file would obscure that special care is
@@ -735,6 +736,14 @@ static void __init efi_init(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTabl
 
     StdOut = SystemTable->ConOut;
     StdErr = SystemTable->StdErr ?: StdOut;
+
+#ifdef CONFIG_X86
+    /*
+     * Heuristic.  Look under an arbitrary function pointer to see if UEFI was
+     * compiled with CET-IBT support.  Experimentally some are not.
+     */
+    efi_no_cet_ibt = !is_endbr64(efi_rs->GetTime);
+#endif
 }
 
 static void __init efi_console_set_mode(void)
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index d2fdc28df3e0..ef54863542db 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -21,6 +21,7 @@ struct efi_rs_state {
   * don't strictly need that.
   */
  unsigned long __aligned(32) cr3;
+    unsigned long msr_s_cet;
 #endif
 };
 
@@ -61,6 +62,7 @@ UINTN __read_mostly efi_apple_properties_len;
 
 /* Bit field representing available EFI features/properties. */
 unsigned int efi_flags;
+bool __read_mostly efi_no_cet_ibt;
 
 struct efi __read_mostly efi = {
 	.acpi   = EFI_INVALID_TABLE_ADDR,
@@ -113,6 +115,17 @@ struct efi_rs_state efi_rs_enter(void)
 
     switch_cr3_cr4(mfn_to_maddr(efi_l4_mfn), read_cr4());
 
+    /*
+     * If UEFI doesn't appear to be CET-IBT compatible, stash and clobber
+     * ENDBR_EN.  Always read the current CET setting, because CET-SS isn't
+     * configured until very late on the BSP.
+     */
+    if ( cpu_has_xen_ibt && efi_no_cet_ibt )
+    {
+        rdmsrl(MSR_S_CET, state.msr_s_cet);
+        wrmsrl(MSR_S_CET, state.msr_s_cet & ~CET_ENDBR_EN);
+    }
+
     return state;
 }
 
@@ -122,6 +135,10 @@ void efi_rs_leave(struct efi_rs_state *state)
 
     if ( !state->cr3 )
         return;
+
+    if ( state->msr_s_cet )
+        wrmsrl(MSR_S_CET, state->msr_s_cet);
+
     switch_cr3_cr4(state->cr3, read_cr4());
     if ( is_pv_vcpu(curr) && !is_idle_vcpu(curr) )
     {
diff --git a/xen/include/xen/efi.h b/xen/include/xen/efi.h
index 94a7e547f97b..8c14f7f18718 100644
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -30,6 +30,7 @@ union compat_pf_efi_info;
 
 struct xenpf_efi_runtime_call;
 struct compat_pf_efi_runtime_call;
+extern bool efi_no_cet_ibt;
 
 bool efi_enabled(unsigned int feature);
 void efi_init_memory(void);
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 17:27:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 17:27:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233277.404667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqf0F-0007PW-GX; Fri, 26 Nov 2021 17:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233277.404667; Fri, 26 Nov 2021 17:27:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqf0F-0007PP-DJ; Fri, 26 Nov 2021 17:27:15 +0000
Received: by outflank-mailman (input) for mailman id 233277;
 Fri, 26 Nov 2021 17:27:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqf0E-0007PF-6I; Fri, 26 Nov 2021 17:27:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqf0E-0004dl-1V; Fri, 26 Nov 2021 17:27:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqf0D-0005hn-Q2; Fri, 26 Nov 2021 17:27:13 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqf0D-0002zq-PZ; Fri, 26 Nov 2021 17:27:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=lV77XAjR2e3SvULZUmwCZOr2iW3qV/1yMuA3rtiHPyw=; b=bRMUgL2/oBKEihwqt3EMhRbSQo
	d+g0OmxZb40yjDJLxXJXU7NNsxNOkQNNga6EsO44NQTi+P5ukz3tEZ3Tv5qRaRFGUNo281wZRXyJu
	IswWLiyNAJS5vrKHLf6+d4lHLYV/titN3uJkoYrP4PbYejjB8JtOmS23c/X49sOmHh70=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166378-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166378: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-pvshim:guest-localmigrate/x10:fail:regression
    xen-unstable:build-amd64-prev:xen-build:fail:regression
    xen-unstable:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:allowable
    xen-unstable:test-amd64-amd64-migrupgrade:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-i386-migrupgrade:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=5449ba84e99849ee2339fd79f9717e10113d702d
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Nov 2021 17:27:13 +0000

flight 166378 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166378/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-pvshim   20 guest-localmigrate/x10   fail REGR. vs. 166304
 build-amd64-prev              6 xen-build                fail REGR. vs. 166304

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10   fail REGR. vs. 166304

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-migrupgrade  1 build-check(1)               blocked  n/a
 test-amd64-i386-migrupgrade   1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail like 166214
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166304
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166304
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166304
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166304
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166304
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166304
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166304
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166304
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166304
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166304
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166304
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166304
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass

version targeted for testing:
 xen                  5449ba84e99849ee2339fd79f9717e10113d702d
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166304  2021-11-23 01:54:09 Z    3 days
Failing since        166324  2021-11-23 17:39:07 Z    2 days    2 attempts
Testing same since   166378  2021-11-25 06:23:11 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             fail    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 blocked 
 test-amd64-i386-migrupgrade                                  blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   fail    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 351 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 17:39:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 17:39:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233286.404684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfBN-0000VR-JV; Fri, 26 Nov 2021 17:38:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233286.404684; Fri, 26 Nov 2021 17:38:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfBN-0000VK-GR; Fri, 26 Nov 2021 17:38:45 +0000
Received: by outflank-mailman (input) for mailman id 233286;
 Fri, 26 Nov 2021 17:38:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MiPh=QN=antioche.eu.org=bouyer@srs-se1.protection.inumbo.net>)
 id 1mqfBM-0000VE-Ci
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 17:38:44 +0000
Received: from chassiron.antioche.eu.org (chassiron.antioche.eu.org
 [2001:41d0:fe9d:1101::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b1c8c173-4edf-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 18:38:42 +0100 (CET)
Received: from sandettie.soc.lip6.fr (82-64-3-41.subs.proxad.net [82.64.3.41])
 by chassiron.antioche.eu.org (8.15.2/8.15.2) with ESMTPS id
 1AQHcLjA006188
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=OK);
 Fri, 26 Nov 2021 18:38:22 +0100 (MET)
Received: by sandettie.soc.lip6.fr (Postfix, from userid 373)
 id A68632E92E7; Fri, 26 Nov 2021 18:38:16 +0100 (MET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1c8c173-4edf-11ec-a9d2-d9f7a1cc8784
Date: Fri, 26 Nov 2021 18:38:16 +0100
From: Manuel Bouyer <bouyer@antioche.eu.org>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Roger Pau Monne <roger.pau@citrix.com>,
        Simon Kuenzer <simon.kuenzer@neclab.eu>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH] public: add RING_NR_UNCONSUMED_*() macros to ring.h
Message-ID: <YaEbiOXjCKpgeAuN@mail.soc.lip6.fr>
References: <20211126065547.22644-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211126065547.22644-1-jgross@suse.com>
X-Greylist: Sender succeeded STARTTLS authentication, not delayed by milter-greylist-4.4.3 (chassiron.antioche.eu.org [151.127.5.145]); Fri, 26 Nov 2021 18:38:29 +0100 (MET)

On Fri, Nov 26, 2021 at 07:55:47AM +0100, Juergen Gross wrote:
> Today RING_HAS_UNCONSUMED_*() macros are returning the number of
> unconsumed requests or responses instead of a boolean as the name of
> the macros would imply.
> 
> As this "feature" is already being used, rename the macros to
> RING_NR_UNCONSUMED_*() and define the RING_HAS_UNCONSUMED_*() macros
> by using the new RING_NR_UNCONSUMED_*() macros. In order to avoid
> future misuse let RING_HAS_UNCONSUMED_*() really return a boolean.
> 
> Note that the known misuses need to be switched to the new
> RING_NR_UNCONSUMED_*() macros when using this version of ring.h.

AFAIK NetBSD is using RING_HAS_UNCONSUMED as a booleanm so it should
be fine with this change

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 26 ans d'experience feront toujours la difference
--


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 17:39:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 17:39:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233291.404695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfCL-000130-UC; Fri, 26 Nov 2021 17:39:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233291.404695; Fri, 26 Nov 2021 17:39:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfCL-00012t-QG; Fri, 26 Nov 2021 17:39:45 +0000
Received: by outflank-mailman (input) for mailman id 233291;
 Fri, 26 Nov 2021 17:39:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m7Hm=QN=arm.com=andre.przywara@srs-se1.protection.inumbo.net>)
 id 1mqfCK-00012j-FN
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 17:39:44 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d6092a6d-4edf-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 18:39:42 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3A6CC11D4;
 Fri, 26 Nov 2021 09:39:41 -0800 (PST)
Received: from donnerap.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com
 [10.121.207.14])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1C14D3F7B4;
 Fri, 26 Nov 2021 09:39:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6092a6d-4edf-11ec-9787-a32c541c8605
Date: Fri, 26 Nov 2021 17:39:37 +0000
From: Andre Przywara <andre.przywara@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Cc: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
 <stefano.stabellini@xilinx.com>, <julien@xen.org>,
 <Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
 <rahul.singh@arm.com>
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
Message-ID: <20211126173937.2d28c47d@donnerap.cambridge.arm.com>
In-Reply-To: <5d72345d-3236-0fa6-24fc-652385f41b54@xilinx.com>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
	<20211126131459.2bbc81ad@donnerap.cambridge.arm.com>
	<5d72345d-3236-0fa6-24fc-652385f41b54@xilinx.com>
Organization: ARM
X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; aarch64-unknown-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Fri, 26 Nov 2021 15:28:06 +0000
Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:

Hi Ayan,

> Many thanks for your inputs.
> Apologies if I sound dumb, but I need a few clarifications.
> 
> On 26/11/2021 13:14, Andre Przywara wrote:
> > On Fri, 19 Nov 2021 16:52:02 +0000
> > Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
> > 
> > Hi,
> >   
> >> At present, post indexing instructions are not emulated by Xen.
> >> When Xen gets the exception, EL2_ESR.ISV bit not set. Thus as a
> >> result, data abort is triggered.
> >>
> >> Added the logic to decode ldr/str post indexing instructions.
> >> With this, Xen can decode instructions like these:-
> >> ldr w2, [x1], #4
> >> Thus, domU can read ioreg with post indexing instructions.  
> > 
> > Where do those instructions come from? A (C) compiler? (Some mail in
> > another thread from Stefano suggests so)
> > If yes, I would argue that is broken:
> > IIUC C compilers assume normal memory attributes for every pointer they
> > handle, so they are free to use unaligned accesses, load/store exclusives,
> > split accesses (two halfword reads) and what not when generating code.
> > The GIC needs to be mapped as device memory, which explicitly forbids
> > unaligned accesses and exclusives (as in: always traps), so you cannot let
> > compiler-generated code access the GIC (or most other MMIO devices, for
> > that matter).
> > I know, this somewhat works(TM) in practise, because a uint32_t assignment
> > is very likely to end up in an ldr/str, but please let me know which car
> > this code ends up in, so that can I avoid this brand ;-)
> > 
> > You can tell the compiler to avoid unaligned accesses with -mstrict-align
> > (and should definitely do so when you are running C code with the MMU
> > off), but that still leaves exclusives and split accesses at the
> > compiler's discretion. A variation on the topic of split access is merged
> > writes, where the compiler uses NEON or SVE instructions, for instance, to
> > cover multiple words at once, possibly via some memset()/memcpy() routine.  
> 
> I understand that we should be using inline assembly instructions to 
> access any MMIO region. This is to prevent the compiler doing any tricks.
> 
> But is there a restriction that post indexing instructions can never be 
> used to access MMIO region ?

No, this is a pure virtualisation restriction, see below. On real
hardware/bare-metal, ldr/str with post or pre-indexing works and is fine
to use for MMIO.
But we need to have the right access width, matching the MMIO device's
expectation. So ldp/stp would probably be problematic, for instance.

> > On top there is this architectural restriction of the ARMv7/v8
> > virtualisation extension to not decode many "advanced" load/store
> > instructions in ESR_EL2.  
> Where do I find this restriction ?

That's described in the ESR_ELx syndrome description in the ARMv8 ARM (DDI
0487G.b), section "ISS encoding for an exception from a Data Abort" (page
D13-3219 in my Issue G.b copy):
"For other faults reported in ESR_EL2, ISV is 0 except for the following stage 2 aborts: ...."

> Are you telling me that load/store with post indexing is an "advanced" 
> instruction and ArmV8 does not allow decoding of these instructions in 
> ESR_EL2 ?

Yes, it is in the group of instructions for which the hardware does not
provide syndrome information in ESR_EL2: " .... but excluding Load
Exclusive or Store Exclusive and excluding those with writeback)."

> Isn't that a very strong limitation ?

I don't know about that, it's what it is and what it was for years. Linux
deliberately chose ldr/str only for readl/writel to be able to trap and
handle MMIO aborts in hypervisors.

If you do MMIO accesses the right way, using (inline) assembly only, then
you don't have the problem, and also avoid many others, see my previous
mail.

If you think of it from an architectural and implementation point of view
(and keep the RISC idea in mind): it should happen rarely, but would
require many gates for something that you can do in software as well.

> Also what is your opinion on Xen decoding these instructions ?

I would be careful, we deliberately avoid this in KVM. This bubbles up
from time to time, though, so we now allow delegating this case to
userland, so the VMM can do the decoding there.
In Xen you have less issues with walking the guest's page tables,
though (a major problem in KVM), but it still adds complexity to a
hypervisor which aims to be lean by design.
Another argument would be that just post/pre does not cover everything, and
the cases start to pile up quickly: what about the immediate versions,
ldxr, stp, NEON/SVE load/stores, etc. Since many of those are not safe for
MMIO anyway, you add a lot of code for little use (and which gets little
testing!).

Cheers,
Andre

> > Linux deliberately coded readl/writel using inline assembly, to only
> > use instructions that provide syndrome information, plus guarantee
> > device-memory compatible semantics.
> > Check out https://lwn.net/Articles/698014/ for a comprehensive
> > discussion of this whole MMIO topic.
> > 
> > So I think you should do the same in your guest/bare metal code: define
> > {read,write}{b,h,l,q} as inline assembly functions, using ldr?/str?
> > only. See xen/include/asm-arm/arm64/io.h for an example that uses
> > static inline functions in a header file, to generate most optimal
> > code. Then always do MMIO only via those accessors. That prevents any
> > future compiler surprises, plus makes you perfectly virtualisable.
> > 
> > Cheers,
> > Andre.
> >   
> >> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
> >> ---
> >> Note to reviewer:-
> >> This patch is based on an issue discussed in
> >> https://lists.xenproject.org/archives/html/xen-devel/2021-11/msg00969.html
> >> "Xen/ARM - Query about a data abort seen while reading GICD registers"
> >>
> >>
> >>   xen/arch/arm/decode.c | 77
> >> +++++++++++++++++++++++++++++++++++++++++++ xen/arch/arm/io.c     |
> >> 14 ++++++-- 2 files changed, 88 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
> >> index 792c2e92a7..7b60bedbc5 100644
> >> --- a/xen/arch/arm/decode.c
> >> +++ b/xen/arch/arm/decode.c
> >> @@ -84,6 +84,80 @@ bad_thumb2:
> >>       return 1;
> >>   }
> >>   
> >> +static inline int32_t extract32(uint32_t value, int start, int
> >> length) +{
> >> +    int32_t ret;
> >> +
> >> +    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
> >> +        return -EINVAL;
> >> +
> >> +    ret = (value >> start) & (~0U >> (32 - length));
> >> +
> >> +    return ret;
> >> +}
> >> +
> >> +static int decode_64bit_loadstore_postindexing(register_t pc, struct
> >> hsr_dabt *dabt) +{
> >> +    uint32_t instr;
> >> +    int size;
> >> +    int v;
> >> +    int opc;
> >> +    int rt;
> >> +    int imm9;
> >> +
> >> +    /* For details on decoding, refer to Armv8 Architecture
> >> reference manual
> >> +     * Section - "Load/store register (immediate post-indexed)", Pg
> >> 318
> >> +    */
> >> +    if ( raw_copy_from_guest(&instr, (void * __user)pc, sizeof
> >> (instr)) )
> >> +        return -EFAULT;
> >> +
> >> +    /* First, let's check for the fixed values */
> >> +
> >> +    /*  As per the "Encoding table for the Loads and Stores group",
> >> Pg 299
> >> +     * op4 = 1 - Load/store register (immediate post-indexed)
> >> +     */
> >> +    if ( extract32(instr, 10, 2) != 1 )
> >> +        goto bad_64bit_loadstore;
> >> +
> >> +    /* For the following, refer to "Load/store register (immediate
> >> post-indexed)"
> >> +     * to get the fixed values at various bit positions.
> >> +     */
> >> +    if ( extract32(instr, 21, 1) != 0 )
> >> +        goto bad_64bit_loadstore;
> >> +
> >> +    if ( extract32(instr, 24, 2) != 0 )
> >> +        goto bad_64bit_loadstore;
> >> +
> >> +    if ( extract32(instr, 27, 3) != 7 )
> >> +        goto bad_64bit_loadstore;
> >> +
> >> +    size = extract32(instr, 30, 2);
> >> +    v = extract32(instr, 26, 1);
> >> +    opc = extract32(instr, 22, 1);
> >> +
> >> +    /* At the moment, we support STR(immediate) - 32 bit variant and
> >> +     * LDR(immediate) - 32 bit variant only.
> >> +     */
> >> +    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
> >> +        goto bad_64bit_loadstore;
> >> +
> >> +    rt = extract32(instr, 0, 5);
> >> +    imm9 = extract32(instr, 12, 9);
> >> +
> >> +    if ( imm9 < 0 )
> >> +        update_dabt(dabt, rt, size, true);
> >> +    else
> >> +        update_dabt(dabt, rt, size, false);
> >> +
> >> +    dabt->valid = 1;
> >> +
> >> +
> >> +    return 0;
> >> +bad_64bit_loadstore:
> >> +    gprintk(XENLOG_ERR, "unhandled 64bit instruction 0x%x\n", instr);
> >> +    return 1;
> >> +}
> >> +
> >>   static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
> >>   {
> >>       uint16_t instr;
> >> @@ -155,6 +229,9 @@ int decode_instruction(const struct cpu_user_regs
> >> *regs, struct hsr_dabt *dabt) if ( is_32bit_domain(current->domain)
> >> && regs->cpsr & PSR_THUMB ) return decode_thumb(regs->pc, dabt);
> >>   
> >> +    if ( is_64bit_domain(current->domain) )
> >> +        return decode_64bit_loadstore_postindexing(regs->pc, dabt);
> >> +
> >>       /* TODO: Handle ARM instruction */
> >>       gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
> >>   
> >> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
> >> index 729287e37c..49e80358c0 100644
> >> --- a/xen/arch/arm/io.c
> >> +++ b/xen/arch/arm/io.c
> >> @@ -106,14 +106,13 @@ enum io_state try_handle_mmio(struct
> >> cpu_user_regs *regs, .gpa = gpa,
> >>           .dabt = dabt
> >>       };
> >> +    int rc;
> >>   
> >>       ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
> >>   
> >>       handler = find_mmio_handler(v->domain, info.gpa);
> >>       if ( !handler )
> >>       {
> >> -        int rc;
> >> -
> >>           rc = try_fwd_ioserv(regs, v, &info);
> >>           if ( rc == IO_HANDLED )
> >>               return handle_ioserv(regs, v);
> >> @@ -123,7 +122,16 @@ enum io_state try_handle_mmio(struct
> >> cpu_user_regs *regs, 
> >>       /* All the instructions used on emulated MMIO region should be
> >> valid */ if ( !dabt.valid )
> >> -        return IO_ABORT;
> >> +    {
> >> +        /*
> >> +         * Post indexing ldr/str instructions are not emulated by
> >> Xen. So, the
> >> +         * ISS is invalid. In such a scenario, we try to manually
> >> decode the
> >> +         * instruction from the program counter.
> >> +         */
> >> +        rc = decode_instruction(regs, &info.dabt);
> >> +        if ( rc )
> >> +            return IO_ABORT;
> >> +    }
> >>   
> >>       /*
> >>        * Erratum 766422: Thumb store translation fault to Hypervisor
> >> may  
> >   



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233306.404728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXm-0004bO-6A; Fri, 26 Nov 2021 18:01:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233306.404728; Fri, 26 Nov 2021 18:01:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXm-0004bH-33; Fri, 26 Nov 2021 18:01:54 +0000
Received: by outflank-mailman (input) for mailman id 233306;
 Fri, 26 Nov 2021 18:01:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfXl-0004Lf-CW
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:01:53 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eef85e9e-4ee2-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:01:52 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id bu18so26237982lfb.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:01:52 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.01.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:01:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eef85e9e-4ee2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=wTvK5kO0FUcGnxCyVmK+GKrZNfPhZFNt57h0QWat/qo=;
        b=gJ0DkjtmLom1nWkv/0W2DL2MHnrP7PVGl4T7c36bF07+CacG7AQZMZNRDkMlhxmupZ
         2QJC2UEPTMKdY+4biqu7WBTBfdbCdj2plEvTKtOCSTjp+rc0q+PBUlauwayT0D8hPaad
         AakzzuPOdJEjAVqWcXkB0OyYyI/fHsAoxTIIixDaJ+B4vtLK8QO5UAOhd/25ogyuZT65
         +7m5sj079P1HDfplS5NMgcjwo/0heTe0b1iG4fd4G5vR406eFn2qmqyIvvPaH0Rw/nQx
         O007xMgzpOhTt25UC6EHCBi3q0bru6OS62Sqnaphpb4h3pPuhZt2HKPczdFRU0+NgPQP
         pU4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=wTvK5kO0FUcGnxCyVmK+GKrZNfPhZFNt57h0QWat/qo=;
        b=FEzds8jjHl9UuwZxwRAscoXCmx4wB1dS5wUaHQ6QBFG6V8Sz8uZl00Uftxn0d3GGlV
         uLHyfLSUqB/tEywmfKCyO6HAZhgrXsWdvQ/dobHeCvtGJWYJLf1lcTzydyQly4R79fHM
         ZbU0ChEF4CfpTkmKTRoGH+Fq5bOQ5RRiPupDfpwELWePgKlZUo3xJgAs9HD3ZybIQdIk
         bg3wfbRAlKcHxqf6SvXZJ55Ut4e7PCFBnritQ7JoCIF8bGcwxUr4BGveRzVAIkjt4xII
         coXhw86g05yctK4tpo2bByH4pC0fbaOdY2aRpbJtVeb3I3VU2ntkP410aNcXmnDFX/8u
         Jauw==
X-Gm-Message-State: AOAM532gOCdT/d6+71EBgdh3KZzA7LyLqqaC5ugADwc7RfcmgJ96zmGO
	GVEcu+Va2ZnT5g79DtBO+I4=
X-Google-Smtp-Source: ABdhPJw35TsPz9HwmqpECLcaU3H/etXXeb/ksFsDr4BSqfywev1sbvgeaFMRFyWFKE/Ruo82pHOW+A==
X-Received: by 2002:a05:6512:3a87:: with SMTP id q7mr30679606lfu.515.1637949711821;
        Fri, 26 Nov 2021 10:01:51 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 01/25] notifier: Remove extern annotation from function prototypes
Date: Fri, 26 Nov 2021 21:00:37 +0300
Message-Id: <20211126180101.27818-2-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There is no need to annotate function prototypes with 'extern', it makes
code less readable. Remove unnecessary annotations from <notifier.h>.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/notifier.h | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/include/linux/notifier.h b/include/linux/notifier.h
index 87069b8459af..4b80a815b666 100644
--- a/include/linux/notifier.h
+++ b/include/linux/notifier.h
@@ -90,7 +90,7 @@ struct srcu_notifier_head {
 	} while (0)
 
 /* srcu_notifier_heads must be cleaned up dynamically */
-extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
+void srcu_init_notifier_head(struct srcu_notifier_head *nh);
 #define srcu_cleanup_notifier_head(name)	\
 		cleanup_srcu_struct(&(name)->srcu);
 
@@ -141,36 +141,36 @@ extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
 
 #ifdef __KERNEL__
 
-extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
+int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
 		struct notifier_block *nb);
-extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh,
+int blocking_notifier_chain_register(struct blocking_notifier_head *nh,
 		struct notifier_block *nb);
-extern int raw_notifier_chain_register(struct raw_notifier_head *nh,
+int raw_notifier_chain_register(struct raw_notifier_head *nh,
 		struct notifier_block *nb);
-extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
+int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
 		struct notifier_block *nb);
 
-extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
+int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
 		struct notifier_block *nb);
-extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh,
+int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh,
 		struct notifier_block *nb);
-extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh,
+int raw_notifier_chain_unregister(struct raw_notifier_head *nh,
 		struct notifier_block *nb);
-extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh,
+int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh,
 		struct notifier_block *nb);
 
-extern int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
+int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
 		unsigned long val, void *v);
-extern int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
+int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
 		unsigned long val, void *v);
-extern int raw_notifier_call_chain(struct raw_notifier_head *nh,
+int raw_notifier_call_chain(struct raw_notifier_head *nh,
 		unsigned long val, void *v);
-extern int srcu_notifier_call_chain(struct srcu_notifier_head *nh,
+int srcu_notifier_call_chain(struct srcu_notifier_head *nh,
 		unsigned long val, void *v);
 
-extern int blocking_notifier_call_chain_robust(struct blocking_notifier_head *nh,
+int blocking_notifier_call_chain_robust(struct blocking_notifier_head *nh,
 		unsigned long val_up, unsigned long val_down, void *v);
-extern int raw_notifier_call_chain_robust(struct raw_notifier_head *nh,
+int raw_notifier_call_chain_robust(struct raw_notifier_head *nh,
 		unsigned long val_up, unsigned long val_down, void *v);
 
 #define NOTIFY_DONE		0x0000		/* Don't care */
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233307.404740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXo-0004s3-EK; Fri, 26 Nov 2021 18:01:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233307.404740; Fri, 26 Nov 2021 18:01:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXo-0004rw-Au; Fri, 26 Nov 2021 18:01:56 +0000
Received: by outflank-mailman (input) for mailman id 233307;
 Fri, 26 Nov 2021 18:01:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfXm-0004Lf-RQ
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:01:54 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f03094f6-4ee2-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:01:54 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id b40so26076038lfv.10
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:01:54 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.01.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:01:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f03094f6-4ee2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=6FNFlMpNjS/DNcuPrR0BFjK6OkkBLQhzqGXiB9qxwwI=;
        b=hZ+VKiheA+ksem4JjsmMOpgKXPoMWgUA+shKPVYf8CWxvU7oWldYH0H+4eQqBAv8FY
         4SkaVnaWjJDb3H1aiFaT/XoyReuF35QGFGDgLCvFaztSiusmblr0WrlwXTQg1xtEIIWK
         Aa+q2fqk9FNKSMyWo+flXzmjZbJfLmFJbzpki04Gyi8vWG/rtl/WU4nTSFM//ACHY153
         1B3A/N11y2QrQ67sEfFQXitRorbGN1uZfWp2+IdeAJRQ2AzbU8zozyyZOREyjwZbVOrk
         byUIk4jH3lFxkf8uNSeTP7J5EN42aV9NcIvUUUtISNly567/tzOwFt6Xc27xO+yi/QYr
         TYAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=6FNFlMpNjS/DNcuPrR0BFjK6OkkBLQhzqGXiB9qxwwI=;
        b=fUSy15nc0GyJXGh7utJQzo25DUYjUqyxsisfRYZY8oAuU/mI/IR4pSEblPF6v/k6j3
         WnRW8ZhPqshJrucY0KLKbYtb/lnXNZp4RzDdKbZWL8RmddDn6s/4jtUw2567rtl5k1Mn
         dBmHewhRtIR4rk5zwessa0mrzYn351tGizAA+me7iWKaItRp9X6OmpBr/h+Tm4jyiJZx
         sLx5WA+6XYibl4lFgv3YOIjmruOmM6YrjRLJDMVcYVytpOvjfLAXJEUSm5ceNnIIthUW
         0cvSYadGHj3Rmpp8qneCZ2EIpeVEi3/znVaZX5RybbP+hBVcrYQPj4UZQCg1SFsTw8QX
         WAgQ==
X-Gm-Message-State: AOAM532mX0zD3ukt5aJEupLSVMKj8leYdMt+O0w4EuI7phhvz4jSTzSb
	vpAwnMl1gLg7RYvNUd1D+do=
X-Google-Smtp-Source: ABdhPJw0q1qKuJneV/VMSHuMj8HXGpja3sBl4tFzSQr3hqui9SbJmQ8r0/YjjnWZYT6ArCZ7g82Plw==
X-Received: by 2002:ac2:51b8:: with SMTP id f24mr30853611lfk.83.1637949713891;
        Fri, 26 Nov 2021 10:01:53 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 02/25] notifier: Add blocking_notifier_call_chain_is_empty()
Date: Fri, 26 Nov 2021 21:00:38 +0300
Message-Id: <20211126180101.27818-3-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add blocking_notifier_call_chain_is_empty() that returns true if call
chain is empty.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/notifier.h |  2 ++
 kernel/notifier.c        | 14 ++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/include/linux/notifier.h b/include/linux/notifier.h
index 4b80a815b666..924c9d7c8e73 100644
--- a/include/linux/notifier.h
+++ b/include/linux/notifier.h
@@ -173,6 +173,8 @@ int blocking_notifier_call_chain_robust(struct blocking_notifier_head *nh,
 int raw_notifier_call_chain_robust(struct raw_notifier_head *nh,
 		unsigned long val_up, unsigned long val_down, void *v);
 
+bool blocking_notifier_call_chain_is_empty(struct blocking_notifier_head *nh);
+
 #define NOTIFY_DONE		0x0000		/* Don't care */
 #define NOTIFY_OK		0x0001		/* Suits me */
 #define NOTIFY_STOP_MASK	0x8000		/* Don't call further */
diff --git a/kernel/notifier.c b/kernel/notifier.c
index b8251dc0bc0f..b20cb7b9b1f0 100644
--- a/kernel/notifier.c
+++ b/kernel/notifier.c
@@ -322,6 +322,20 @@ int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
 }
 EXPORT_SYMBOL_GPL(blocking_notifier_call_chain);
 
+/**
+ *	blocking_notifier_call_chain_is_empty - Check whether notifier chain is empty
+ *	@nh: Pointer to head of the blocking notifier chain
+ *
+ *	Checks whether notifier chain is empty.
+ *
+ *	Returns true is notifier chain is empty, false otherwise.
+ */
+bool blocking_notifier_call_chain_is_empty(struct blocking_notifier_head *nh)
+{
+	return !rcu_access_pointer(nh->head);
+}
+EXPORT_SYMBOL_GPL(blocking_notifier_call_chain_is_empty);
+
 /*
  *	Raw notifier chain routines.  There is no protection;
  *	the caller must provide it.  Use at your own risk!
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233305.404717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXk-0004Lh-U9; Fri, 26 Nov 2021 18:01:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233305.404717; Fri, 26 Nov 2021 18:01:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXk-0004LZ-R0; Fri, 26 Nov 2021 18:01:52 +0000
Received: by outflank-mailman (input) for mailman id 233305;
 Fri, 26 Nov 2021 18:01:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfXj-0004LT-Di
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:01:51 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id edd85380-4ee2-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:01:50 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id p8so6762425ljo.5
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:01:50 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.01.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:01:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: edd85380-4ee2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=yZvlQF7jemGNKuxK9mzF5Z4xr/dnsXa5rLAqs5Ol3X8=;
        b=Ed82JEObwjUcFpk7miNmCf04LkcGcLm/RlBewmnkusWrEy5/nqS3O+0w0eISPh4Aso
         aBkMxDeUbWHPyXUv4atXu25kZtbexzsVvnJH9E6vyURjSI6deD6F0TbqH/7+HfxF12o0
         X3vj9tEXqYwU3oJ6qfxcp+IxBq3g6jjWZacInNpp5YMyTAuOsjqTpzTJYXVd3VrfvNdu
         PaHVIfiPoeVnU2nOs9nUhBDhZvXFXEUW6qI5Ij+ETQOM4SImHXEDcUtqsEnZ+zMbB/UP
         Vb4UFAjGCcwPzOXiEcSB9psaFDi5qACBbyEL0pCzZY2OFahwTbJKwvpnUlR1RBt4FhLB
         wmgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=yZvlQF7jemGNKuxK9mzF5Z4xr/dnsXa5rLAqs5Ol3X8=;
        b=uOGatZxUsqcuRWLmjKh3T0RSOwfM9h60wE9lGXlr7uzHYuD/EmRNXf6LyZ/Ky5N2JO
         kIfIzdWM7gcnPzhgTiwtzRxXE/PU5/hU2MkRjfI9k8gdq5jKLEWFJqkHSnUGlME0hPoI
         D5QvQQy+sDtbau3q5RbCY7Fv/bbkI0rqOMEi0fU7jSp4iKr7vu+Urn2CltZUJ8xO+fX3
         PjhpemnG9XvWhpt1FMYtecMsm4NJBAlrm1gHzyxH/ma7fnoNXvoOUKmoa2kSv5m8Fu4y
         yJ56n3f00ChujoZhiaWZ9Y/mm0kUs1D/MhG6cu8SdfvbbPuu4xdV0woRqYMYLepnpZEy
         4Cig==
X-Gm-Message-State: AOAM530bMJS7DzDOB2jVgi4LeRgazrTE3IUG2WG7Ug4wF74NCLwuG6Gl
	R+mzmTr7ZtUrSwIDpWB/ryY=
X-Google-Smtp-Source: ABdhPJyUSCxf/+NOJZdoDZc8h3Vb/twk3Q7Gp7LgynrSk8F6dcdudijW4UqggVYffkqsltKi8Bb6Vg==
X-Received: by 2002:a05:651c:1204:: with SMTP id i4mr32981935lja.437.1637949709729;
        Fri, 26 Nov 2021 10:01:49 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 00/25] Introduce power-off+restart call chain API
Date: Fri, 26 Nov 2021 21:00:36 +0300
Message-Id: <20211126180101.27818-1-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Problem
-------

SoC devices require power-off call chaining functionality from kernel.
We have a widely used restart chaining provided by restart notifier API,
but nothing for power-off.

Solution
--------

Introduce new API that provides both restart and power-off call chains.

Why combine restart with power-off? Because drivers often do both.
More practical to have API that provides both under the same roof.

The new API is designed with simplicity and extensibility in mind.
It's built upon the existing restart and reboot APIs. The simplicity
is in new helper functions that are convenient for drivers. The
extensibility is in the design that doesn't hardcode callback
arguments, making easy to add new parameters and remove old.

This is a third attempt to introduce the new API. First was made by
Guenter Roeck back in 2014, second was made by Thierry Reding in 2017.
In fact the work didn't stop and recently arm_pm_restart() was removed
from v5.14 kernel, which was a part of preparatory work started by
Guenter Roeck. I took into account experience and ideas from the
previous attempts, extended and polished them.

Adoption plan
-------------

This patchset introduces the new API. It also converts multiple drivers
and arch code to the new API to demonstrate how it all looks in practice.

The plan is:

1. Merge new API (patches 1-8). This API will co-exist with the old APIs.

2. Convert arch code to do_kernel_power_off() (patches 9-21).

3. Convert drivers and platform code to the new API.

4. Remove obsolete pm_power_off and pm_power_off_prepare variables.

5. Make restart-notifier API private to kernel/reboot.c once no users left.

It's fully implemented here:

[1] https://github.com/grate-driver/linux/commits/sys-off-handler

For now I'm sending only the first 25 base patches out of ~180. It's
preferable to squash 1-2, partially 3 and 4 points of the plan into a
single patchset to ease and speed up applying of the rest of the patches.
Majority of drivers and platform patches depend on the base, hence they
will come later (and per subsystem), once base will land.

All [1] patches are compile-tested. Tegra and x86 ACPI patches are tested
on hardware. The remaining should be covered by unit tests (unpublished).

Results
-------

1. Devices can be powered off properly.

2. Global variables are removed from drivers.

3. Global pm_power_off and pm_power_off_prepare callback variables are
removed once all users are converted to the new API. The latter callback
is removed by patch #25 of this series.

4. Ambiguous call chain ordering is prohibited. See patch #5 which adds
verification of restart handlers priorities, ensuring that they are unique.

Changelog:

v4: - Made a very minor improvement to doc comments, clarifying couple
      default values.

    - Corrected list of emails recipient by adding Linus, Sebastian,
      Philipp and more NDS people. Removed bouncing emails.

    - Added acks that were given to v3.

v3: - Renamed power_handler to sys_off_handler as was suggested by
      Rafael Wysocki.

    - Improved doc-comments as was suggested by Rafael Wysocki. Added more
      doc-comments.

    - Implemented full set of 180 patches which convert whole kernel in
      accordance to the plan, see link [1] above. Slightly adjusted API to
      better suit for the remaining converted drivers.

      * Added unregister_sys_off_handler() that is handy for a couple old
        platform drivers.

      * Dropped devm_register_trivial_restart_handler(), 'simple' variant
        is enough to have.

    - Improved "Add atomic/blocking_notifier_has_unique_priority()" patch,
      as was suggested by Andy Shevchenko. Also replaced down_write() with
      down_read() and factored out common notifier_has_unique_priority().

    - Added stop_chain field to struct restart_data and reboot_prep_data
      after discovering couple drivers wanting that feature.

    - Added acks that were given to v2.

v2: - Replaced standalone power-off call chain demo-API with the combined
      power-off+restart API because this is what drivers want. It's a more
      comprehensive solution.

    - Converted multiple drivers and arch code to the new API. Suggested by
      Andy Shevchenko. I skimmed through the rest of drivers, verifying that
      new API suits them. The rest of the drivers will be converted once we
      will settle on the new API, otherwise will be too many patches here.

    - v2 API doesn't expose notifier to users and require handlers to
      have unique priority. Suggested by Guenter Roeck.

    - v2 API has power-off chaining disabled by default and require
      drivers to explicitly opt-in to the chaining. This preserves old
      behaviour for existing drivers once they are converted to the new
      API.

Dmitry Osipenko (25):
  notifier: Remove extern annotation from function prototypes
  notifier: Add blocking_notifier_call_chain_is_empty()
  notifier: Add atomic/blocking_notifier_has_unique_priority()
  reboot: Correct typo in a comment
  reboot: Warn if restart handler has duplicated priority
  reboot: Warn if unregister_restart_handler() fails
  reboot: Remove extern annotation from function prototypes
  kernel: Add combined power-off+restart handler call chain API
  ARM: Use do_kernel_power_off()
  csky: Use do_kernel_power_off()
  riscv: Use do_kernel_power_off()
  arm64: Use do_kernel_power_off()
  parisc: Use do_kernel_power_off()
  xen/x86: Use do_kernel_power_off()
  powerpc: Use do_kernel_power_off()
  m68k: Switch to new sys-off handler API
  sh: Use do_kernel_power_off()
  x86: Use do_kernel_power_off()
  ia64: Use do_kernel_power_off()
  mips: Use do_kernel_power_off()
  nds32: Use do_kernel_power_off()
  memory: emif: Use kernel_can_power_off()
  ACPI: power: Switch to sys-off handler API
  regulator: pfuze100: Use devm_register_sys_off_handler()
  reboot: Remove pm_power_off_prepare()

 arch/arm/kernel/reboot.c               |   4 +-
 arch/arm64/kernel/process.c            |   3 +-
 arch/csky/kernel/power.c               |   6 +-
 arch/ia64/kernel/process.c             |   4 +-
 arch/m68k/emu/natfeat.c                |   3 +-
 arch/m68k/include/asm/machdep.h        |   1 -
 arch/m68k/kernel/process.c             |   5 +-
 arch/m68k/kernel/setup_mm.c            |   1 -
 arch/m68k/kernel/setup_no.c            |   1 -
 arch/m68k/mac/config.c                 |   4 +-
 arch/mips/kernel/reset.c               |   3 +-
 arch/nds32/kernel/process.c            |   3 +-
 arch/parisc/kernel/process.c           |   4 +-
 arch/powerpc/kernel/setup-common.c     |   4 +-
 arch/powerpc/xmon/xmon.c               |   3 +-
 arch/riscv/kernel/reset.c              |  12 +-
 arch/sh/kernel/reboot.c                |   3 +-
 arch/x86/kernel/reboot.c               |   4 +-
 arch/x86/xen/enlighten_pv.c            |   4 +-
 drivers/acpi/sleep.c                   |  25 +-
 drivers/memory/emif.c                  |   2 +-
 drivers/regulator/pfuze100-regulator.c |  38 +-
 include/linux/notifier.h               |  37 +-
 include/linux/pm.h                     |   1 -
 include/linux/reboot.h                 | 305 ++++++++++++--
 kernel/notifier.c                      |  83 ++++
 kernel/power/hibernate.c               |   2 +-
 kernel/reboot.c                        | 556 ++++++++++++++++++++++++-
 28 files changed, 985 insertions(+), 136 deletions(-)

-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233308.404751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXq-00059x-NM; Fri, 26 Nov 2021 18:01:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233308.404751; Fri, 26 Nov 2021 18:01:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXq-00059q-K3; Fri, 26 Nov 2021 18:01:58 +0000
Received: by outflank-mailman (input) for mailman id 233308;
 Fri, 26 Nov 2021 18:01:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfXp-0004LT-4Q
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:01:57 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f17e9ae7-4ee2-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:01:56 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id c32so26150356lfv.4
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:01:56 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.01.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:01:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f17e9ae7-4ee2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=hKe22x9bX8JCg83Zw5KeGH71BwPAfgMBPhF5RAtnzGg=;
        b=b2ZfJiMeqx8AeLNXyztIQbqzNlGBVbhad44TGqM7lHiw/fjxif6gU0gZoYYArSlKqo
         EeAwZj+BCdzu3uIIM/smFVDttYIEyo/Z4cQTphN83yvq86PvnU0W4Ie+2AQfRx3m6El9
         ezh/1hh7/6Ybscv4tcBLpgDBuHeraJRPSdMAVRwkC5F75rh6n2MHscxaOB/rlIJUGpHn
         JYFzCa+B1QR2KMEZvRV/l+C8C5tLmBjWELwgqyH4k7ET0Q1PJi6aubc/gMu03uwbYwz0
         9IzBTEPDl6TbzF28FQAcA3Viml2my3zBgMjGFEkpGjjrauzxX9PSIX9E5Ca5qAHE77RJ
         Cyjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=hKe22x9bX8JCg83Zw5KeGH71BwPAfgMBPhF5RAtnzGg=;
        b=S8zX51IeS5DqCnnxsLxu7RlLr6mcnKzTVY0dGs3YKHaabxVvmpco6sHAK7QT3x2ea6
         122i+AXbWGKAW0IPMmlGmICpWSWD55h2JCqYVtGgWza/aMiQJ/aIho/zM8KV0aiCFiwd
         G6MRnvN2fkP27AFcrLnS5CD1uZXH0v4vuO2TUUdf4Ll1G0ZI1TzSGJAiQhCx9tZ+48ZG
         9kDmcos8UqSvMihwTxxuwOJZKRg/MTjqEnLGdmybf5jAN3xsEeKm1f3CbNjaZ2aNCkoa
         xTTu7lavM6pzFXvgSUQze4J/XT0lKM9pxmYUetlcPMC3jXwCjhbPP98ZT50dPhMzwHcD
         gXKw==
X-Gm-Message-State: AOAM530JUZClx4xGxJYrK50MPwekRREe28oraoG9EM/7pPfG900+WhXz
	Jn30IpHVVEZSA8hhwn31U24=
X-Google-Smtp-Source: ABdhPJxizgxN6H8utklWV5PP7BDnBAFFswn6Wu2IY4jESwUo2k1vRD/GT6BFqxqb00p7BIY/tAXbNQ==
X-Received: by 2002:a05:6512:3192:: with SMTP id i18mr30735000lfe.205.1637949715998;
        Fri, 26 Nov 2021 10:01:55 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 03/25] notifier: Add atomic/blocking_notifier_has_unique_priority()
Date: Fri, 26 Nov 2021 21:00:39 +0300
Message-Id: <20211126180101.27818-4-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add atomic/blocking_notifier_has_unique_priority() helpers which return
true if given handler has unique priority.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/notifier.h |  5 +++
 kernel/notifier.c        | 69 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+)

diff --git a/include/linux/notifier.h b/include/linux/notifier.h
index 924c9d7c8e73..2c4036f225e1 100644
--- a/include/linux/notifier.h
+++ b/include/linux/notifier.h
@@ -175,6 +175,11 @@ int raw_notifier_call_chain_robust(struct raw_notifier_head *nh,
 
 bool blocking_notifier_call_chain_is_empty(struct blocking_notifier_head *nh);
 
+bool atomic_notifier_has_unique_priority(struct atomic_notifier_head *nh,
+		struct notifier_block *nb);
+bool blocking_notifier_has_unique_priority(struct blocking_notifier_head *nh,
+		struct notifier_block *nb);
+
 #define NOTIFY_DONE		0x0000		/* Don't care */
 #define NOTIFY_OK		0x0001		/* Suits me */
 #define NOTIFY_STOP_MASK	0x8000		/* Don't call further */
diff --git a/kernel/notifier.c b/kernel/notifier.c
index b20cb7b9b1f0..7a325b742104 100644
--- a/kernel/notifier.c
+++ b/kernel/notifier.c
@@ -122,6 +122,19 @@ static int notifier_call_chain_robust(struct notifier_block **nl,
 	return ret;
 }
 
+static int notifier_has_unique_priority(struct notifier_block **nl,
+					struct notifier_block *n)
+{
+	while (*nl && (*nl)->priority >= n->priority) {
+		if ((*nl)->priority == n->priority && *nl != n)
+			return false;
+
+		nl = &((*nl)->next);
+	}
+
+	return true;
+}
+
 /*
  *	Atomic notifier chain routines.  Registration and unregistration
  *	use a spinlock, and call_chain is synchronized by RCU (no locks).
@@ -203,6 +216,30 @@ int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
 EXPORT_SYMBOL_GPL(atomic_notifier_call_chain);
 NOKPROBE_SYMBOL(atomic_notifier_call_chain);
 
+/**
+ *	atomic_notifier_has_unique_priority - Checks whether notifier's priority is unique
+ *	@nh: Pointer to head of the atomic notifier chain
+ *	@n: Entry in notifier chain to check
+ *
+ *	Checks whether there is another notifier in the chain with the same priority.
+ *	Must be called in process context.
+ *
+ *	Returns true if priority is unique, false otherwise.
+ */
+bool atomic_notifier_has_unique_priority(struct atomic_notifier_head *nh,
+		struct notifier_block *n)
+{
+	unsigned long flags;
+	bool ret;
+
+	spin_lock_irqsave(&nh->lock, flags);
+	ret = notifier_has_unique_priority(&nh->head, n);
+	spin_unlock_irqrestore(&nh->lock, flags);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(atomic_notifier_has_unique_priority);
+
 /*
  *	Blocking notifier chain routines.  All access to the chain is
  *	synchronized by an rwsem.
@@ -336,6 +373,38 @@ bool blocking_notifier_call_chain_is_empty(struct blocking_notifier_head *nh)
 }
 EXPORT_SYMBOL_GPL(blocking_notifier_call_chain_is_empty);
 
+/**
+ *	blocking_notifier_has_unique_priority - Checks whether notifier's priority is unique
+ *	@nh: Pointer to head of the blocking notifier chain
+ *	@n: Entry in notifier chain to check
+ *
+ *	Checks whether there is another notifier in the chain with the same priority.
+ *	Must be called in process context.
+ *
+ *	Returns true if priority is unique, false otherwise.
+ */
+bool blocking_notifier_has_unique_priority(struct blocking_notifier_head *nh,
+		struct notifier_block *n)
+{
+	bool ret;
+
+	/*
+	 * This code gets used during boot-up, when task switching is
+	 * not yet working and interrupts must remain disabled. At such
+	 * times we must not call down_read().
+	 */
+	if (system_state != SYSTEM_BOOTING)
+		down_read(&nh->rwsem);
+
+	ret = notifier_has_unique_priority(&nh->head, n);
+
+	if (system_state != SYSTEM_BOOTING)
+		up_read(&nh->rwsem);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(blocking_notifier_has_unique_priority);
+
 /*
  *	Raw notifier chain routines.  There is no protection;
  *	the caller must provide it.  Use at your own risk!
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233309.404762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXt-0005TZ-4i; Fri, 26 Nov 2021 18:02:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233309.404762; Fri, 26 Nov 2021 18:02:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXt-0005TM-0v; Fri, 26 Nov 2021 18:02:01 +0000
Received: by outflank-mailman (input) for mailman id 233309;
 Fri, 26 Nov 2021 18:01:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfXr-0004LT-2y
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:01:59 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2bd318f-4ee2-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:01:58 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id z8so20235339ljz.9
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:01:58 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.01.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:01:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2bd318f-4ee2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=TugVlbRXpFiQ9yttEJ2CYhwYKdBA8PSz6pBjqNjtqe8=;
        b=EXi/oxDDucB7vJNmfYFh1Iwg1we98RTNK7qyQ6Pdkz3hnbaV2hMW4l1POGeJ+EuDW3
         mfK8h6/HGX48geRcpT6dEfo/FZS8zjrNQzuV9D9yTWn1MlecsUkK/urNFZNa2VjEdWl9
         3/xQ0erpf6zbbhnap8EibMOxOLqWzB/sgB1oOOeSZJajy/Ifr+5no+/bjgdeTssZ3wit
         5MjglkJmn7BWDrHCR5FY99XqOGptLogROhVJVK+6zpUEjhp3iHhkSjd8cGYxkYTOE3E5
         Hunlawsq/RhtNyOKzbO6esnP6jp4mV/8bYBosw7nvP39SDUVYAevi9e0LAdOtl4z+dWr
         vlGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=TugVlbRXpFiQ9yttEJ2CYhwYKdBA8PSz6pBjqNjtqe8=;
        b=NddidoBbXXTC6E4OsIy0vkgwlzL+wpMmSWFcHO7XxBDHMOr8I5xyXhnp8j09y1a9JP
         4MO/yilv2qZ0iT6ndPeBZV0h6RwCsc2GZWxnZMwZQp8S/+EaLDl2VqCMxAOvL8hDGhBK
         +Xh3f+PbgJe7Jvrd17k6BwNbaZhXJBI9KyJaDb29FGX95PprUW56HY0nEcbMUI+QQRQ7
         M2x/Cz6k2IQfWNj3eTxa8/z6FDgyOdfRuiZ2B7rZeeW2z2KCwB3adfxN0PqO3BOylZgQ
         JldJ3fzhBY391jkKgUTw3/b2XDhbudfsZQP8tk6JuMKhxh0cPGAoRG6qjfI0jXlxQl4e
         XvoA==
X-Gm-Message-State: AOAM5329i8hIET43ElPDaSoK5MA9gA3b8ZinVkoMm/aCarNahPd3K1kX
	Lp0KJ8LbQPhDQMMZSOgoVyQ=
X-Google-Smtp-Source: ABdhPJxZrbo5DYPMSOmTH3wpvpPB7QiVBAcDOPNsyswyNXYwa8DOLhCA5ZoHQosELHStWSCO8T/NkQ==
X-Received: by 2002:a2e:740b:: with SMTP id p11mr33098297ljc.215.1637949718086;
        Fri, 26 Nov 2021 10:01:58 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 04/25] reboot: Correct typo in a comment
Date: Fri, 26 Nov 2021 21:00:40 +0300
Message-Id: <20211126180101.27818-5-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Correct s/implemenations/implementations/ in <reboot.h>.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/reboot.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/reboot.h b/include/linux/reboot.h
index af907a3d68d1..7c288013a3ca 100644
--- a/include/linux/reboot.h
+++ b/include/linux/reboot.h
@@ -63,7 +63,7 @@ struct pt_regs;
 extern void machine_crash_shutdown(struct pt_regs *);
 
 /*
- * Architecture independent implemenations of sys_reboot commands.
+ * Architecture independent implementations of sys_reboot commands.
  */
 
 extern void kernel_restart_prepare(char *cmd);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233310.404773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXu-0005lW-IH; Fri, 26 Nov 2021 18:02:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233310.404773; Fri, 26 Nov 2021 18:02:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXu-0005lH-Ca; Fri, 26 Nov 2021 18:02:02 +0000
Received: by outflank-mailman (input) for mailman id 233310;
 Fri, 26 Nov 2021 18:02:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfXt-0004LT-C0
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:01 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f40f7d95-4ee2-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:00 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id n12so26158783lfe.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:00 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.01.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:01:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f40f7d95-4ee2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=xS83fHvJX20ICn8zHYRDKvqQ1GY72vd2riIHxwkjweU=;
        b=d2rBY2F8FZR6fxo+AWivP8d/aANzXuwHT+cg69g6mn5w1PrR2Sa1IDulp20ge0kF/A
         cHnbxdSmlImW4wjqRz81zw3X1kevspbs+ZSvuFeqFssl7QkZMhAYxFVlnhJC7t+o5Ekh
         eNtRL2ojA7gJWr57oxbZKqm22O40Yv/rsDGA/NeWMpTdjAZIOo1PA/WaWBgnC2ALY5RA
         62bhQhoX5OCa7ZShxw0qrygSKSdJKJGDVnCPcPOzYsdIdpEoCBnHtdYY6e8ZoWq4VDFh
         N3S4qSVEELp33r/g+I5VvFht9D09Xj+u4OjF/0z+Ek8MwK4vNOYgNJskWndj6bmjKPsl
         6oSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=xS83fHvJX20ICn8zHYRDKvqQ1GY72vd2riIHxwkjweU=;
        b=O377uj5SsKjLXk8W03dnU23xiubtkT60RwSJlOLoYkzZC+71Ds1t41iSlUojKRTSSu
         ky5d3N0F43KoL7NDZVMqWtR97xB8VObIpr0J3ctIFhP2860MI0nbZTltdklbT6H5u87M
         UH+r878OBE0wz2/4RkFUyjPIbswW+kM5mwix5EmtFNC5l8awJPhcMJNotzwdRo1hzKLp
         mQGjnO+X/EbK9boQOD/M8uvlvLZhAOZ0aLH2xAD2G+xOsvF6P4EdH8S4D3wele5t4KCU
         2HZCUEw3dzPFtAEhfxCQU776m+PhGfcL+X9xT2d5Tmg+0jK9usEGwztsYRYjn66IZgLx
         0njg==
X-Gm-Message-State: AOAM531s5jIROU+lIEoPGNNxRXYaOnnrOSx8BhjO17fLr3CXKmQEFhgK
	HHAkm0Hh3ssQi6SME5wn+TQ=
X-Google-Smtp-Source: ABdhPJyHlWHAIH2qsXkt3ruT7+BLFA3v5nYyOKPdcFWdHrRv9Oght1lKgGW/OoNNNMfJWGOCYURP8w==
X-Received: by 2002:a05:6512:32ca:: with SMTP id f10mr32489980lfg.364.1637949720361;
        Fri, 26 Nov 2021 10:02:00 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 05/25] reboot: Warn if restart handler has duplicated priority
Date: Fri, 26 Nov 2021 21:00:41 +0300
Message-Id: <20211126180101.27818-6-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add sanity check which ensures that there are no two restart handlers
registered with the same priority. Normally it's a direct sign of a
problem if two handlers use the same priority.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 kernel/reboot.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/kernel/reboot.c b/kernel/reboot.c
index 6bcc5d6a6572..e6659ae329f1 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -182,7 +182,20 @@ static ATOMIC_NOTIFIER_HEAD(restart_handler_list);
  */
 int register_restart_handler(struct notifier_block *nb)
 {
-	return atomic_notifier_chain_register(&restart_handler_list, nb);
+	int ret;
+
+	ret = atomic_notifier_chain_register(&restart_handler_list, nb);
+	if (ret)
+		return ret;
+
+	/*
+	 * Handler must have unique priority. Otherwise call order is
+	 * determined by registration order, which is unreliable.
+	 */
+	WARN(!atomic_notifier_has_unique_priority(&restart_handler_list, nb),
+	     "restart handler must have unique priority\n");
+
+	return 0;
 }
 EXPORT_SYMBOL(register_restart_handler);
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233311.404784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXw-00066A-TW; Fri, 26 Nov 2021 18:02:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233311.404784; Fri, 26 Nov 2021 18:02:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXw-00065j-Ol; Fri, 26 Nov 2021 18:02:04 +0000
Received: by outflank-mailman (input) for mailman id 233311;
 Fri, 26 Nov 2021 18:02:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfXv-0004Lf-DH
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:03 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f5564549-4ee2-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:02:02 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id bu18so26238871lfb.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:02 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5564549-4ee2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=idp+KUM0Lads56hMjVdKoUEucrYOLC8M0llXkHYfiR0=;
        b=q2+3D7luLbLFGQf0rLpPcuWTJ51luwk4E0BLwdexAsMfEPwQ+vkLaGFyWTazwTiBO3
         /31kHhpvsxvbKpD6AoRLviAKAyfSlaZuuBZ4G5+V4OQzeOPzvvdnKmespVy/IqSeX7hO
         YTpSNWUfBdkYMm9sefGyGdAIypO41Y86jqoXG+FM5ZKY1SqW/Wp0Kge+e08k/V8NPYuz
         YtC36m0FSAgcE4CC4jRft7WGjfF+hcgDrvOqUW7oFxpYyW5LwR3hKV2jrTJdfRtBiX7E
         qc34DpRilSgV0iEhvXRNTWvVGUy3qFfYDOeUaBdaf+MPIjTcw1RGSJKn81/KWfdsBdx+
         55DA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=idp+KUM0Lads56hMjVdKoUEucrYOLC8M0llXkHYfiR0=;
        b=SXNV+aGBQVxWopMbgF7SlK7bZc83IV5ji8+KsJ7VdfjgBnAQ41ZEBUaEbHK3Y441hG
         H8jhrMZ22Aaay1yYHIbc3RLOf1f6XFgC+FZ3jRQQmHwrMIaWtv0b5y96VESCKs6SEnY9
         NZwtmZP4suj+CRAWZevEhyugzEsuiqWqxlOMC2B7po9Pykpm/N1nwZkbzYUoJuIGsDSv
         /CiFoV9msDsIlrrglq9ma6NjBZEqQ2AyCiKSL7+pymdUjpskVlGEBERS45WT1MWTXYfY
         3aUPpKEG/lutIwL3FKOHNycAyx6zLcdgeCVLMC0l4Y9d7Or1jqQtY0mAQh3R15q6a5sP
         kIxg==
X-Gm-Message-State: AOAM531mMZJaHqYbnDRy/FvfrkmO5dIDejh95A2szPphWBJZwikfLK/b
	5ihabKaUVlupP3Fm5REuzLE=
X-Google-Smtp-Source: ABdhPJyszCqoy2c22hJd1AwW3euuk/YQIYMf48+wUhpEids7tlSfZnt+31CbA93lLkfEy/WCRFUCww==
X-Received: by 2002:ac2:4423:: with SMTP id w3mr31717979lfl.385.1637949722516;
        Fri, 26 Nov 2021 10:02:02 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 06/25] reboot: Warn if unregister_restart_handler() fails
Date: Fri, 26 Nov 2021 21:00:42 +0300
Message-Id: <20211126180101.27818-7-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Emit warning if unregister_restart_handler() fails since it never should
fail. This will ease further API development by catching mistakes early.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 kernel/reboot.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/reboot.c b/kernel/reboot.c
index e6659ae329f1..f0e7b9c13f6b 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -210,7 +210,7 @@ EXPORT_SYMBOL(register_restart_handler);
  */
 int unregister_restart_handler(struct notifier_block *nb)
 {
-	return atomic_notifier_chain_unregister(&restart_handler_list, nb);
+	return WARN_ON(atomic_notifier_chain_unregister(&restart_handler_list, nb));
 }
 EXPORT_SYMBOL(unregister_restart_handler);
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233312.404794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXz-0006TR-9A; Fri, 26 Nov 2021 18:02:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233312.404794; Fri, 26 Nov 2021 18:02:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfXz-0006T9-54; Fri, 26 Nov 2021 18:02:07 +0000
Received: by outflank-mailman (input) for mailman id 233312;
 Fri, 26 Nov 2021 18:02:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfXx-0004LT-Ly
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:05 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f69c965b-4ee2-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:05 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id e11so20148302ljo.13
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:04 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f69c965b-4ee2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=YMqE3plwxFsGF2jAAFpub/HIgtQoag7R/7s0kLQElmo=;
        b=hNDiDyK0mXFGn4DxizRDTh848JRSUoRpy2BGku+puCZb4ybkLBVQYxsigPgsX8oTYo
         6uGIJxTr27Sr/5uMIfvDrPYcj5JZCK4JVm0hmsmagDb+4g/16Qb2Lml6lDE5kEYxSTqN
         1cZzQ5YrCG/5jHmOAHWFPzd6RK6Nxwzyc+2hsTlnygT/PBOMYmYfgTBreyJX/cM8e8Ri
         XH/uWJcEe4LPCRWWl546Fte/fnOxNdqhmyH7lhZm2kP9gpSFr43Ku3Kops2TSD2lJLii
         3tQMh9H3YmdwyreB+CGFvAehWfGPKgIyfGRW4a8rgOWMZfouUk4VEJQah1A9TCWCHZqH
         suDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=YMqE3plwxFsGF2jAAFpub/HIgtQoag7R/7s0kLQElmo=;
        b=Mp65sHvsVD+rFGPHfZ1/tpi6quuK4dblanyFkm/TIPXk55VegAgxAcBCu4nByUzErf
         M2k3FSMb4ZzUVVed5248R9p2wdO4TbRLbF84h5Bvp4NBeO+U2VaZon4/yBdSyeE/RpeJ
         waJQlGV1EnqFIxRTvC9JLfY0zBb3QhxQJkWL/a/fRFnC3TtkXOSebZYoN4Fyh2/DrtPS
         GCS9dNsyHXGgFLy1ls3Wze419rYxd5P++cu4LWme6uXe9yKRBmdpmueC+gH+N2wjVbMe
         U99AfYe1Z3R/7IqjfFK/f2tRfwlycesmZVUjk1e7kb2jkAeiqPEtc/Fkaxn9r1Tg1c01
         7l6A==
X-Gm-Message-State: AOAM531TAAGVIF+sPG5ZYWAwgkAfsY0gjSEesuqUYOHClWXr1YaMous/
	83jhBBiWmxjk/bNJP9N/YDk=
X-Google-Smtp-Source: ABdhPJyb8kz1UEvDCKCp+BiDo+e8J/+zE/2jFszIocFNHpuea9i2+EEWlZYq05sNitfJ0uIdOtFxwg==
X-Received: by 2002:a05:651c:b12:: with SMTP id b18mr33869925ljr.306.1637949724600;
        Fri, 26 Nov 2021 10:02:04 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 07/25] reboot: Remove extern annotation from function prototypes
Date: Fri, 26 Nov 2021 21:00:43 +0300
Message-Id: <20211126180101.27818-8-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There is no need to annotate function prototypes with 'extern', it makes
code less readable. Remove unnecessary annotations from <reboot.h>.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/reboot.h | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/include/linux/reboot.h b/include/linux/reboot.h
index 7c288013a3ca..b7fa25726323 100644
--- a/include/linux/reboot.h
+++ b/include/linux/reboot.h
@@ -40,36 +40,36 @@ extern int reboot_cpu;
 extern int reboot_force;
 
 
-extern int register_reboot_notifier(struct notifier_block *);
-extern int unregister_reboot_notifier(struct notifier_block *);
+int register_reboot_notifier(struct notifier_block *);
+int unregister_reboot_notifier(struct notifier_block *);
 
-extern int devm_register_reboot_notifier(struct device *, struct notifier_block *);
+int devm_register_reboot_notifier(struct device *, struct notifier_block *);
 
-extern int register_restart_handler(struct notifier_block *);
-extern int unregister_restart_handler(struct notifier_block *);
-extern void do_kernel_restart(char *cmd);
+int register_restart_handler(struct notifier_block *);
+int unregister_restart_handler(struct notifier_block *);
+void do_kernel_restart(char *cmd);
 
 /*
  * Architecture-specific implementations of sys_reboot commands.
  */
 
-extern void migrate_to_reboot_cpu(void);
-extern void machine_restart(char *cmd);
-extern void machine_halt(void);
-extern void machine_power_off(void);
+void migrate_to_reboot_cpu(void);
+void machine_restart(char *cmd);
+void machine_halt(void);
+void machine_power_off(void);
 
-extern void machine_shutdown(void);
+void machine_shutdown(void);
 struct pt_regs;
-extern void machine_crash_shutdown(struct pt_regs *);
+void machine_crash_shutdown(struct pt_regs *);
 
 /*
  * Architecture independent implementations of sys_reboot commands.
  */
 
-extern void kernel_restart_prepare(char *cmd);
-extern void kernel_restart(char *cmd);
-extern void kernel_halt(void);
-extern void kernel_power_off(void);
+void kernel_restart_prepare(char *cmd);
+void kernel_restart(char *cmd);
+void kernel_halt(void);
+void kernel_power_off(void);
 
 extern int C_A_D; /* for sysctl */
 void ctrl_alt_del(void);
@@ -77,15 +77,15 @@ void ctrl_alt_del(void);
 #define POWEROFF_CMD_PATH_LEN	256
 extern char poweroff_cmd[POWEROFF_CMD_PATH_LEN];
 
-extern void orderly_poweroff(bool force);
-extern void orderly_reboot(void);
+void orderly_poweroff(bool force);
+void orderly_reboot(void);
 void hw_protection_shutdown(const char *reason, int ms_until_forced);
 
 /*
  * Emergency restart, callable from an interrupt handler.
  */
 
-extern void emergency_restart(void);
+void emergency_restart(void);
 #include <asm/emergency-restart.h>
 
 #endif /* _LINUX_REBOOT_H */
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233314.404805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfY1-0006sW-O4; Fri, 26 Nov 2021 18:02:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233314.404805; Fri, 26 Nov 2021 18:02:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfY1-0006s4-Jg; Fri, 26 Nov 2021 18:02:09 +0000
Received: by outflank-mailman (input) for mailman id 233314;
 Fri, 26 Nov 2021 18:02:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfY0-0004Lf-Nd
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:09 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7e8e3f5-4ee2-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:02:07 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id e11so20148480ljo.13
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:07 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7e8e3f5-4ee2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=pBQqJUW10w52TBHpIfB/bOQzc2XAK694GQy7cdydjbc=;
        b=HQj7ucUFo6DViSdb62Ev+nUAlzH55Lf5WYypdN+kJ/gVHlTaZC7B+6ib6H/eb2gXrv
         4OdmGcSz7zyyfxsgLJRRoUryvnIvPKajU7zq06VCEV+v0R8pl5EtrRVjvsbF4dfXhXrB
         cJ2OSzQJb96PjpTSEv/TENElMUGa9836I3FREKGgvOEIlVGr6J6KvlFNiSgEE+vrVWnv
         LIr0YEDRsRDUB/CygOLkzlSOk7tsvM9NNtcB7TeEoS3Q0QbqqdQJD4mcfDdd25NwjW2s
         cukRX92pR7TnLeHNdJmyDMCQO7DK+0OBopRITT/ymwYSfVrKTZ0e88iZd6TNpHahuVUN
         GyCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=pBQqJUW10w52TBHpIfB/bOQzc2XAK694GQy7cdydjbc=;
        b=TQxPkx1scN78HHg935RBrhkwTDwRLKqCSAaiAhHrypJcQ3wltjQybiVX+sVpsutNTx
         xxSvhPAI3URPRf9ZRuWk0rwrG9t36345zNJCOL93pSe/pvaV20SdPUmSNxObP6KN0Pu3
         H40qfqDKPH72fNgrqeOenNdN0mv+d7A2Ax6ory3hm1USskvLDgXNMItqk453Lump7Jhs
         8fcclqrGitpcGa/K4dgRPpXZ6XXQoBrKn8Tf+n2iGzLB+7KmEEJylI3J0k+F9QigmBnc
         67SuWVB1OeJvQcs0Hq3UW1pUiNF1GovnbuvCriqPAFeTa5ygTAf2kmfFjCxS0ixLJ8tM
         CpmA==
X-Gm-Message-State: AOAM530AoXClfy6+HE6VrCeF4HpfYoxxhr4QJoIcPkyaHNAopJ2M4S7d
	u5SvGHjVd8EstGx6uCTTa6NoqqcSjzs=
X-Google-Smtp-Source: ABdhPJyB4R4+9/5IXmHYpN1BesyZg87+3Nb+SfJJhN5/nkQjV4Xltk05w/e4NgcHcUJkmwYkuxu2og==
X-Received: by 2002:a2e:5450:: with SMTP id y16mr33186183ljd.241.1637949726787;
        Fri, 26 Nov 2021 10:02:06 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 08/25] kernel: Add combined power-off+restart handler call chain API
Date: Fri, 26 Nov 2021 21:00:44 +0300
Message-Id: <20211126180101.27818-9-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

SoC platforms often have multiple ways of how to perform system's
power-off and restart operations. Meanwhile today's kernel is limited to
a single option. Add combined power-off+restart handler call chain API,
which is inspired by the restart API. The new API provides both power-off
and restart functionality.

The old pm_power_off method will be kept around till all users are
converted to the new API.

Current restart API will be replaced by the new unified API since
new API is its superset. The restart functionality of the sys-off handler
API is built upon the existing restart-notifier APIs.

In order to ease conversion to the new API, convenient helpers are added
for the common use-cases. They will reduce amount of boilerplate code and
remove global variables. These helpers preserve old behaviour for cases
where only one power-off handler is expected, this is what all existing
drivers want, and thus, they could be easily converted to the new API.
Users of the new API should explicitly enable power-off chaining by
setting corresponding flag of the power_handler structure.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/reboot.h   | 265 ++++++++++++++++++-
 kernel/power/hibernate.c |   2 +-
 kernel/reboot.c          | 536 ++++++++++++++++++++++++++++++++++++++-
 3 files changed, 795 insertions(+), 8 deletions(-)

diff --git a/include/linux/reboot.h b/include/linux/reboot.h
index b7fa25726323..76799bb3a560 100644
--- a/include/linux/reboot.h
+++ b/include/linux/reboot.h
@@ -8,10 +8,35 @@
 
 struct device;
 
-#define SYS_DOWN	0x0001	/* Notify of system down */
-#define SYS_RESTART	SYS_DOWN
-#define SYS_HALT	0x0002	/* Notify of system halt */
-#define SYS_POWER_OFF	0x0003	/* Notify of system power off */
+enum reboot_prepare_mode {
+	SYS_DOWN = 1,		/* Notify of system down */
+	SYS_RESTART = SYS_DOWN,
+	SYS_HALT,		/* Notify of system halt */
+	SYS_POWER_OFF,		/* Notify of system power off */
+};
+
+/*
+ * Standard restart priority levels. Intended to be set in the
+ * sys_off_handler.restart_priority field.
+ *
+ * Use `RESTART_PRIO_ABC +- prio` style for additional levels.
+ *
+ * RESTART_PRIO_RESERVED:	Falls back to RESTART_PRIO_DEFAULT.
+ *				Drivers may leave priority initialized
+ *				to zero, to auto-set it to the default level.
+ *
+ * RESTART_PRIO_LOW:		Use this for handler of last resort.
+ *
+ * RESTART_PRIO_DEFAULT:	Use this for default/generic handler.
+ *
+ * RESTART_PRIO_HIGH:		Use this if you have multiple handlers and
+ *				this handler has higher priority than the
+ *				default handler.
+ */
+#define RESTART_PRIO_RESERVED		0
+#define RESTART_PRIO_LOW		8
+#define RESTART_PRIO_DEFAULT		128
+#define RESTART_PRIO_HIGH		192
 
 enum reboot_mode {
 	REBOOT_UNDEFINED = -1,
@@ -49,6 +74,237 @@ int register_restart_handler(struct notifier_block *);
 int unregister_restart_handler(struct notifier_block *);
 void do_kernel_restart(char *cmd);
 
+/*
+ * System power-off and restart API.
+ */
+
+/*
+ * Standard power-off priority levels. Intended to be set in the
+ * sys_off_handler.power_off_priority field.
+ *
+ * Use `POWEROFF_PRIO_ABC +- prio` style for additional levels.
+ *
+ * POWEROFF_PRIO_RESERVED:	Falls back to POWEROFF_PRIO_DEFAULT.
+ *				Drivers may leave priority initialized
+ *				to zero, to auto-set it to the default level.
+ *
+ * POWEROFF_PRIO_PLATFORM:	Intended to be used by platform-level handler.
+ *				Has lowest priority since device drivers are
+ *				expected to take over platform handler which
+ *				doesn't allow further callback chaining.
+ *
+ * POWEROFF_PRIO_DEFAULT:	Use this for default/generic handler.
+ *
+ * POWEROFF_PRIO_FIRMWARE:	Use this if handler uses firmware call.
+ *				Has highest priority since firmware is expected
+ *				to know best how to power-off hardware properly.
+ */
+#define POWEROFF_PRIO_RESERVED		0
+#define POWEROFF_PRIO_PLATFORM		1
+#define POWEROFF_PRIO_DEFAULT		128
+#define POWEROFF_PRIO_HIGH		192
+#define POWEROFF_PRIO_FIRMWARE		224
+
+enum poweroff_mode {
+	POWEROFF_NORMAL = 0,
+	POWEROFF_PREPARE,
+};
+
+/**
+ * struct power_off_data - Power-off callback argument
+ *
+ * @cb_data: Callback data.
+ */
+struct power_off_data {
+	void *cb_data;
+};
+
+/**
+ * struct power_off_prep_data - Power-off preparation callback argument
+ *
+ * @cb_data: Callback data.
+ */
+struct power_off_prep_data {
+	void *cb_data;
+};
+
+/**
+ * struct restart_data - Restart callback argument
+ *
+ * @cb_data: Callback data.
+ * @cmd: Restart command string.
+ * @stop_chain: Further lower priority callbacks won't be executed if set to
+ *		true. Can be changed within callback. Default is false.
+ * @mode: Reboot mode ID.
+ */
+struct restart_data {
+	void *cb_data;
+	const char *cmd;
+	bool stop_chain;
+	enum reboot_mode mode;
+};
+
+/**
+ * struct reboot_prep_data - Reboot and shutdown preparation callback argument
+ *
+ * @cb_data: Callback data.
+ * @cmd: Restart command string.
+ * @stop_chain: Further lower priority callbacks won't be executed if set to
+ *		true. Can be changed within callback. Default is false.
+ * @mode: Preparation mode ID.
+ */
+struct reboot_prep_data {
+	void *cb_data;
+	const char *cmd;
+	bool stop_chain;
+	enum reboot_prepare_mode mode;
+};
+
+struct sys_off_handler_private_data {
+	struct notifier_block power_off_nb;
+	struct notifier_block restart_nb;
+	struct notifier_block reboot_nb;
+	void (*platform_power_off_cb)(void);
+	void (*simple_power_off_cb)(void *data);
+	void *simple_power_off_cb_data;
+	bool registered;
+};
+
+/**
+ * struct sys_off_handler - System power-off and restart handler
+ *
+ * @cb_data: Pointer to user's data.
+ *
+ * @power_off_cb: Callback that powers off this machine. Inactive if NULL.
+ *
+ * @power_off_prepare_cb: Power-off preparation callback. All power-off
+ * preparation callbacks are invoked after @reboot_prepare_cb and before
+ * @power_off_cb. Inactive if NULL.
+ *
+ * @power_off_priority: Power-off callback priority, must be unique.
+ * Zero value is reserved and auto-reassigned to POWEROFF_PRIO_DEFAULT.
+ * Inactive if @power_off_cb is NULL.
+ *
+ * @power_off_chaining_allowed: Set to false if callback's execution should
+ * stop when @power_off_cb fails to power off this machine. True if further
+ * lower priority power-off callback should be executed. False is default
+ * value.
+ *
+ * @restart_cb: Callback that reboots this machine. Inactive if NULL.
+ *
+ * @restart_priority: Restart callback priority, must be unique. Zero value
+ * is reserved and auto-reassigned to RESTART_PRIO_DEFAULT. Inactive if
+ * @restart_cb is NULL.
+ *
+ * @restart_chaining_disallowed: Set to true if callback's execution should
+ * stop when @restart_cb fails to restart this machine. False if further
+ * lower priority restart callback should be executed. False is default
+ * value.
+ *
+ * @reboot_prepare_cb: Reboot/shutdown preparation callback. All reboot
+ * preparation callbacks are invoked before @restart_cb or @power_off_cb,
+ * depending on the mode. It's registered with register_reboot_notifier().
+ * The point is to remove boilerplate code from drivers which use this
+ * callback in conjunction with the restart/power-off callbacks.
+ *
+ * @reboot_priority: Reboot/shutdown preparation callback priority, doesn't
+ * need to be unique. Zero is default value. Inactive if @reboot_prepare_cb
+ * is NULL.
+ *
+ * @priv: Internal data. Shouldn't be touched.
+ *
+ * Describes power-off and restart handlers which are invoked by kernel
+ * to power off or restart this machine. Supports prioritized chaining for
+ * both restart and power-off handlers.
+ *
+ * Struct sys_off_handler can be static. Members of this structure must not be
+ * altered while handler is registered.
+ *
+ * Fill the structure members and pass it to @register_sys_off_handler().
+ */
+struct sys_off_handler {
+	void *cb_data;
+
+	void (*power_off_cb)(struct power_off_data *data);
+	void (*power_off_prepare_cb)(struct power_off_prep_data *data);
+	int power_off_priority;
+	bool power_off_chaining_allowed;
+
+	void (*restart_cb)(struct restart_data *data);
+	int restart_priority;
+	bool restart_chaining_disallowed;
+
+	void (*reboot_prepare_cb)(struct reboot_prep_data *data);
+	int reboot_priority;
+
+	const struct sys_off_handler_private_data priv;
+};
+
+int register_sys_off_handler(struct sys_off_handler *handler);
+int unregister_sys_off_handler(struct sys_off_handler *handler);
+
+int devm_register_sys_off_handler(struct device *dev,
+				  struct sys_off_handler *handler);
+
+int devm_register_prioritized_power_off_handler(struct device *dev,
+						int priority,
+						void (*callback)(void *data),
+						void *cb_data);
+
+/**
+ *	devm_register_simple_power_off_handler - Register simple power-off callback
+ *	@dev: Device that registers callback
+ *	@callback: Callback function
+ *	@cb_data: Callback's argument
+ *
+ *	Registers resource-managed power-off callback with default priority.
+ *	It will be invoked as last step of the power-off sequence. Further
+ *	lower priority callbacks won't be executed if this @callback fails.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+static inline int
+devm_register_simple_power_off_handler(struct device *dev,
+				       void (*callback)(void *data),
+				       void *cb_data)
+{
+	return devm_register_prioritized_power_off_handler(dev,
+							   POWEROFF_PRIO_DEFAULT,
+							   callback, cb_data);
+}
+
+int register_platform_power_off(void (*power_off)(void));
+int unregister_platform_power_off(void (*power_off)(void));
+
+int devm_register_prioritized_restart_handler(struct device *dev,
+					      int priority,
+					      void (*callback)(struct restart_data *data),
+					      void *cb_data);
+
+/**
+ *	devm_register_simple_restart_handler - Register simple restart callback
+ *	@dev: Device that registers callback
+ *	@callback: Callback function
+ *	@cb_data: Callback's argument
+ *
+ *	Registers resource-managed restart callback with default priority.
+ *	It will be invoked as a part of the restart sequence. Further
+ *	lower priority callback will be executed if this @callback fails.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+static inline int
+devm_register_simple_restart_handler(struct device *dev,
+				     void (*callback)(struct restart_data *data),
+				     void *cb_data)
+{
+	return devm_register_prioritized_restart_handler(dev,
+							 RESTART_PRIO_DEFAULT,
+							 callback, cb_data);
+}
+
+void do_kernel_power_off(void);
+
 /*
  * Architecture-specific implementations of sys_reboot commands.
  */
@@ -70,6 +326,7 @@ void kernel_restart_prepare(char *cmd);
 void kernel_restart(char *cmd);
 void kernel_halt(void);
 void kernel_power_off(void);
+bool kernel_can_power_off(void);
 
 extern int C_A_D; /* for sysctl */
 void ctrl_alt_del(void);
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index e6af502c2fd7..aebbdd757fb9 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -666,7 +666,7 @@ static void power_down(void)
 		hibernation_platform_enter();
 		fallthrough;
 	case HIBERNATION_SHUTDOWN:
-		if (pm_power_off)
+		if (kernel_can_power_off())
 			kernel_power_off();
 		break;
 	}
diff --git a/kernel/reboot.c b/kernel/reboot.c
index f0e7b9c13f6b..4884204f9a31 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -294,6 +294,527 @@ void kernel_halt(void)
 }
 EXPORT_SYMBOL_GPL(kernel_halt);
 
+/*
+ *	Notifier list for kernel code which wants to be called
+ *	to power off the system.
+ */
+static BLOCKING_NOTIFIER_HEAD(power_off_handler_list);
+
+static void dummy_pm_power_off(void)
+{
+	/* temporary stub until pm_power_off() is gone, see more below */
+}
+
+static struct notifier_block *pm_power_off_nb;
+
+/**
+ *	register_power_off_handler - Register function to be called to power off
+ *				     the system
+ *	@nb: Info about handler function to be called
+ *	@nb->priority:	Handler priority. Handlers should follow the
+ *			following guidelines for setting priorities.
+ *			0:	Reserved
+ *			1:	Power-off handler of last resort,
+ *				with limited power-off capabilities
+ *			128:	Default power-off handler; use if no other
+ *				power-off handler is expected to be available,
+ *				and/or if power-off functionality is
+ *				sufficient to power-off the entire system
+ *			255:	Highest priority power-off handler, will
+ *				preempt all other power-off handlers
+ *
+ *	Registers a function with code to be called to power off the
+ *	system.
+ *
+ *	Registered functions will be called as last step of the power-off
+ *	sequence.
+ *
+ *	Registered functions are expected to power off the system immediately.
+ *	If more than one function is registered, the power-off handler priority
+ *	selects which function will be called first.
+ *
+ *	Power-off handlers are expected to be registered from non-architecture
+ *	code, typically from drivers. A typical use case would be a system
+ *	where power-off functionality is provided through a PMIC. Multiple
+ *	power-off handlers may exist; for example, one power-off handler might
+ *	turn off the entire system, while another only turns off part of
+ *	system. In such cases, the power-off handler which only disables part
+ *	of the hardware is expected to register with low priority to ensure
+ *	that it only runs if no other means to power off the system is
+ *	available.
+ *
+ *	Currently always returns zero, as blocking_notifier_chain_register()
+ *	always returns zero.
+ */
+static int register_power_off_handler(struct notifier_block *nb)
+{
+	int ret;
+
+	ret = blocking_notifier_chain_register(&power_off_handler_list, nb);
+	if (ret)
+		return ret;
+
+	/*
+	 * Handler must have unique priority. Otherwise call order order is
+	 * determined by registration order, which is unreliable.
+	 */
+	WARN(!blocking_notifier_has_unique_priority(&power_off_handler_list, nb),
+	     "power-off handler must have unique priority\n");
+
+	/*
+	 * Some drivers check whether pm_power_off was already installed.
+	 * Install dummy callback using new API to preserve old behaviour
+	 * for those drivers during period of transition to the new API.
+	 */
+	if (!pm_power_off) {
+		pm_power_off = dummy_pm_power_off;
+		pm_power_off_nb = nb;
+	}
+
+	return 0;
+}
+
+static int unregister_power_off_handler(struct notifier_block *nb)
+{
+	int ret;
+
+	if (nb == pm_power_off_nb) {
+		/*
+		 * Check whether somebody replaced pm_power_off behind
+		 * out back.
+		 */
+		if (!WARN_ON(pm_power_off != dummy_pm_power_off))
+			pm_power_off = NULL;
+
+		pm_power_off_nb = NULL;
+	}
+
+	ret = blocking_notifier_chain_unregister(&power_off_handler_list, nb);
+
+	return WARN_ON(ret);
+}
+
+static void devm_unregister_power_off_handler(void *data)
+{
+	struct notifier_block *nb = data;
+
+	unregister_power_off_handler(nb);
+}
+
+static int devm_register_power_off_handler(struct device *dev,
+					   struct notifier_block *nb)
+{
+	int err;
+
+	err = register_power_off_handler(nb);
+	if (err)
+		return err;
+
+	return devm_add_action_or_reset(dev, devm_unregister_power_off_handler,
+					nb);
+}
+
+static int sys_off_handler_power_off(struct notifier_block *nb,
+				     unsigned long mode, void *unused)
+{
+	struct power_off_prep_data prep_data = {};
+	struct sys_off_handler_private_data *priv;
+	struct power_off_data data = {};
+	struct sys_off_handler *h;
+	int ret = NOTIFY_DONE;
+
+	priv = container_of(nb, struct sys_off_handler_private_data, power_off_nb);
+	h = container_of(priv, struct sys_off_handler, priv);
+	prep_data.cb_data = h->cb_data;
+	data.cb_data = h->cb_data;
+
+	switch (mode) {
+	case POWEROFF_NORMAL:
+		if (h->power_off_cb)
+			h->power_off_cb(&data);
+
+		if (priv->simple_power_off_cb)
+			priv->simple_power_off_cb(priv->simple_power_off_cb_data);
+
+		if (priv->platform_power_off_cb)
+			priv->platform_power_off_cb();
+
+		if (!h->power_off_chaining_allowed)
+			ret = NOTIFY_STOP;
+
+		break;
+
+	case POWEROFF_PREPARE:
+		if (h->power_off_prepare_cb)
+			h->power_off_prepare_cb(&prep_data);
+
+		break;
+
+	default:
+		unreachable();
+	}
+
+	return ret;
+}
+
+static int sys_off_handler_restart(struct notifier_block *nb,
+				   unsigned long mode, void *cmd)
+{
+	struct sys_off_handler_private_data *priv;
+	struct restart_data data = {};
+	struct sys_off_handler *h;
+
+	priv = container_of(nb, struct sys_off_handler_private_data, restart_nb);
+	h = container_of(priv, struct sys_off_handler, priv);
+
+	data.stop_chain = h->restart_chaining_disallowed;
+	data.cb_data = h->cb_data;
+	data.mode = mode;
+	data.cmd = cmd;
+
+	h->restart_cb(&data);
+
+	return data.stop_chain ? NOTIFY_STOP : NOTIFY_DONE;
+}
+
+static int sys_off_handler_reboot(struct notifier_block *nb,
+				  unsigned long mode, void *cmd)
+{
+	struct sys_off_handler_private_data *priv;
+	struct reboot_prep_data data = {};
+	struct sys_off_handler *h;
+
+	priv = container_of(nb, struct sys_off_handler_private_data, reboot_nb);
+	h = container_of(priv, struct sys_off_handler, priv);
+
+	data.cb_data = h->cb_data;
+	data.stop_chain = false;
+	data.mode = mode;
+	data.cmd = cmd;
+
+	h->reboot_prepare_cb(&data);
+
+	return data.stop_chain ? NOTIFY_STOP : NOTIFY_DONE;
+}
+
+static struct sys_off_handler_private_data *
+sys_off_handler_private_data(struct sys_off_handler *handler)
+{
+	return (struct sys_off_handler_private_data *)&handler->priv;
+}
+
+/**
+ *	devm_register_sys_off_handler - Register system power-off/restart handler
+ *	@dev: Device that registers handler
+ *	@handler: System-off handler
+ *
+ *	Registers handler that will be called as last step of the power-off
+ *	and restart sequences.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int register_sys_off_handler(struct sys_off_handler *handler)
+{
+	struct sys_off_handler_private_data *priv;
+	int err, priority;
+
+	priv = sys_off_handler_private_data(handler);
+
+	/* sanity-check whether handler is registered twice */
+	if (WARN_ON(priv->registered))
+		return -EBUSY;
+
+	if (handler->power_off_cb || handler->power_off_prepare_cb) {
+		if (handler->power_off_priority == POWEROFF_PRIO_RESERVED)
+			priority = POWEROFF_PRIO_DEFAULT;
+		else
+			priority = handler->power_off_priority;
+
+		priv->power_off_nb.notifier_call = sys_off_handler_power_off;
+		priv->power_off_nb.priority = priority;
+
+		err = register_power_off_handler(&priv->power_off_nb);
+		if (err)
+			goto reset_sys_off_handler;
+	}
+
+	if (handler->restart_cb) {
+		if (handler->restart_priority == RESTART_PRIO_RESERVED)
+			priority = RESTART_PRIO_DEFAULT;
+		else
+			priority = handler->restart_priority;
+
+		priv->restart_nb.notifier_call = sys_off_handler_restart;
+		priv->restart_nb.priority = priority;
+
+		err = register_restart_handler(&priv->restart_nb);
+		if (err)
+			goto unreg_power_off_handler;
+	}
+
+	if (handler->reboot_prepare_cb) {
+		priv->reboot_nb.notifier_call = sys_off_handler_reboot;
+		priv->reboot_nb.priority = handler->reboot_priority;
+
+		err = register_reboot_notifier(&priv->reboot_nb);
+		if (err)
+			goto unreg_restart_handler;
+	}
+
+	priv->registered = true;
+
+	return 0;
+
+unreg_restart_handler:
+	if (handler->restart_cb)
+		unregister_restart_handler(&priv->restart_nb);
+
+unreg_power_off_handler:
+	if (handler->power_off_cb)
+		unregister_power_off_handler(&priv->power_off_nb);
+
+reset_sys_off_handler:
+	memset(priv, 0, sizeof(*priv));
+
+	return err;
+}
+EXPORT_SYMBOL(register_sys_off_handler);
+
+/**
+ *	unregister_sys_off_handler - Unregister system power-off/restart handler
+ *	@handler: System-off handler
+ *
+ *	Unregisters sys-off handler. Does nothing and returns zero if handler
+ *	is NULL.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int unregister_sys_off_handler(struct sys_off_handler *handler)
+{
+	struct sys_off_handler_private_data *priv;
+	int err = 0;
+
+	if (!handler)
+		return 0;
+
+	priv = sys_off_handler_private_data(handler);
+
+	/* sanity-check whether handler is unregistered twice */
+	if (WARN_ON(!priv->registered))
+		return -EINVAL;
+
+	if (handler->reboot_prepare_cb)
+		err |= unregister_reboot_notifier(&priv->reboot_nb);
+
+	if (handler->restart_cb)
+		err |= unregister_restart_handler(&priv->restart_nb);
+
+	if (handler->power_off_cb)
+		err |= unregister_power_off_handler(&priv->power_off_nb);
+
+	memset(priv, 0, sizeof(*priv));
+
+	return err ? -EINVAL : 0;
+}
+EXPORT_SYMBOL(unregister_sys_off_handler);
+
+static void devm_unregister_sys_off_handler(void *data)
+{
+	struct sys_off_handler *handler = data;
+
+	unregister_sys_off_handler(handler);
+}
+
+/**
+ *	devm_register_sys_off_handler - Register system power-off/restart handler
+ *	@dev: Device that registers handler
+ *	@handler: System-off handler
+ *
+ *	Resource-managed variant of register_sys_off_handler().
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int devm_register_sys_off_handler(struct device *dev,
+				  struct sys_off_handler *handler)
+{
+	int err;
+
+	err = register_sys_off_handler(handler);
+	if (err)
+		return err;
+
+	return devm_add_action_or_reset(dev, devm_unregister_sys_off_handler,
+					handler);
+}
+EXPORT_SYMBOL(devm_register_sys_off_handler);
+
+/**
+ *	devm_register_prioritized_power_off_handler - Register prioritized power-off callback
+ *	@dev: Device that registers callback
+ *	@priority: Callback's priority
+ *	@callback: Callback function
+ *	@cb_data: Callback's argument
+ *
+ *	Registers resource-managed power-off callback with a given priority.
+ *	It will be called as last step of the power-off sequence. Further
+ *	lower priority callbacks won't be executed if this @callback fails.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int devm_register_prioritized_power_off_handler(struct device *dev,
+						int priority,
+						void (*callback)(void *data),
+						void *cb_data)
+{
+	struct sys_off_handler_private_data *priv;
+	struct sys_off_handler *handler;
+
+	handler = devm_kzalloc(dev, sizeof(*handler), GFP_KERNEL);
+	if (!handler)
+		return -ENOMEM;
+
+	priv = sys_off_handler_private_data(handler);
+
+	priv->power_off_nb.notifier_call = sys_off_handler_power_off;
+	priv->power_off_nb.priority = priority;
+	priv->simple_power_off_cb_data = cb_data;
+	priv->simple_power_off_cb = callback;
+
+	return devm_register_power_off_handler(dev, &priv->power_off_nb);
+}
+EXPORT_SYMBOL(devm_register_prioritized_power_off_handler);
+
+/**
+ *	devm_register_prioritized_restart_handler - Register prioritized restart callback
+ *	@dev: Device that registers callback
+ *	@priority: Callback's priority
+ *	@callback: Callback function
+ *	@cb_data: Callback's argument
+ *
+ *	Registers resource-managed restart callback with a given priority.
+ *	It will be called as a part of the restart sequence. Further
+ *	lower priority callback will be executed if this @callback fails.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int devm_register_prioritized_restart_handler(struct device *dev,
+					      int priority,
+					      void (*callback)(struct restart_data *data),
+					      void *cb_data)
+{
+	struct sys_off_handler *handler;
+
+	handler = devm_kzalloc(dev, sizeof(*handler), GFP_KERNEL);
+	if (!handler)
+		return -ENOMEM;
+
+	handler->restart_priority = priority;
+	handler->restart_cb = callback;
+	handler->cb_data = cb_data;
+
+	return devm_register_sys_off_handler(dev, handler);
+}
+EXPORT_SYMBOL(devm_register_prioritized_restart_handler);
+
+static struct sys_off_handler platform_power_off_handler = {
+	.priv = {
+		.power_off_nb = {
+			.notifier_call = sys_off_handler_power_off,
+			.priority = POWEROFF_PRIO_PLATFORM,
+		},
+	},
+};
+
+static DEFINE_SPINLOCK(platform_power_off_lock);
+
+/**
+ *	register_platform_power_off - Register platform-level power-off callback
+ *	@power_off: Power-off callback
+ *
+ *	Registers power-off callback that will be called as last step
+ *	of the power-off sequence. This callback is expected to be invoked
+ *	for the last resort. Further lower priority callbacks won't be
+ *	executed if @power_off fails. Only one platform power-off callback
+ *	is allowed to be registered at a time.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int register_platform_power_off(void (*power_off)(void))
+{
+	struct sys_off_handler_private_data *priv;
+	int err = 0;
+
+	priv = sys_off_handler_private_data(&platform_power_off_handler);
+
+	spin_lock(&platform_power_off_lock);
+	if (priv->platform_power_off_cb)
+		err = -EBUSY;
+	else
+		priv->platform_power_off_cb = power_off;
+	spin_unlock(&platform_power_off_lock);
+
+	if (WARN_ON(err))
+		return err;
+
+	return register_power_off_handler(&priv->power_off_nb);
+}
+EXPORT_SYMBOL_GPL(register_platform_power_off);
+
+/**
+ *	unregister_platform_power_off - Unregister platform-level power-off callback
+ *	@power_off: Power-off callback
+ *
+ *	Unregisters previously registered platform power-off callback.
+ *
+ *	Returns zero on success, or error code on failure.
+ */
+int unregister_platform_power_off(void (*power_off)(void))
+{
+	struct sys_off_handler_private_data *priv;
+	int ret;
+
+	priv = sys_off_handler_private_data(&platform_power_off_handler);
+
+	if (WARN_ON(priv->platform_power_off_cb != power_off))
+		return -EINVAL;
+
+	ret = unregister_power_off_handler(&priv->power_off_nb);
+	priv->platform_power_off_cb = NULL;
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(unregister_platform_power_off);
+
+/**
+ *	do_kernel_power_off - Execute kernel power-off handler call chain
+ *
+ *	Calls functions registered with register_power_off_handler.
+ *
+ *	Expected to be called as last step of the power-off sequence.
+ *
+ *	Powers off the system immediately if a power-off handler function has
+ *	been registered. Otherwise does nothing.
+ */
+void do_kernel_power_off(void)
+{
+	/* legacy pm_power_off() is unchained and has highest priority */
+	if (pm_power_off && pm_power_off != dummy_pm_power_off)
+		return pm_power_off();
+
+	blocking_notifier_call_chain(&power_off_handler_list, POWEROFF_NORMAL,
+				     NULL);
+}
+
+static void do_kernel_power_off_prepare(void)
+{
+	/* legacy pm_power_off_prepare() is unchained and has highest priority */
+	if (pm_power_off_prepare)
+		return pm_power_off_prepare();
+
+	blocking_notifier_call_chain(&power_off_handler_list, POWEROFF_PREPARE,
+				     NULL);
+}
+
 /**
  *	kernel_power_off - power_off the system
  *
@@ -302,8 +823,7 @@ EXPORT_SYMBOL_GPL(kernel_halt);
 void kernel_power_off(void)
 {
 	kernel_shutdown_prepare(SYSTEM_POWER_OFF);
-	if (pm_power_off_prepare)
-		pm_power_off_prepare();
+	do_kernel_power_off_prepare();
 	migrate_to_reboot_cpu();
 	syscore_shutdown();
 	pr_emerg("Power down\n");
@@ -312,6 +832,16 @@ void kernel_power_off(void)
 }
 EXPORT_SYMBOL_GPL(kernel_power_off);
 
+bool kernel_can_power_off(void)
+{
+	if (!pm_power_off &&
+	    blocking_notifier_call_chain_is_empty(&power_off_handler_list))
+		return false;
+
+	return true;
+}
+EXPORT_SYMBOL_GPL(kernel_can_power_off);
+
 DEFINE_MUTEX(system_transition_mutex);
 
 /*
@@ -353,7 +883,7 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
 	/* Instead of trying to make the power_off code look like
 	 * halt when pm_power_off is not set do it the easy way.
 	 */
-	if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off)
+	if (cmd == LINUX_REBOOT_CMD_POWER_OFF && !kernel_can_power_off())
 		cmd = LINUX_REBOOT_CMD_HALT;
 
 	mutex_lock(&system_transition_mutex);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233315.404816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfY5-0007Sd-Cs; Fri, 26 Nov 2021 18:02:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233315.404816; Fri, 26 Nov 2021 18:02:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfY5-0007SE-7N; Fri, 26 Nov 2021 18:02:13 +0000
Received: by outflank-mailman (input) for mailman id 233315;
 Fri, 26 Nov 2021 18:02:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfY3-0004Lf-4E
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:11 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f9f32316-4ee2-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:02:10 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id j18so7034708ljc.12
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:10 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9f32316-4ee2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=4G0wXMIRKtQjgiQjhPPTWIJTonbxBMvj833mzQfGVdU=;
        b=Q7bS5Bcds94ZCTDJZ73tKxITpYV8Kav4ePR+HRo9YdxSWek6px4wRJdgcPmS5hk/Rr
         VPvNAMuE26rR2wieWZvoqh2JqGKS7hi+wU3x2h17uhsQmowPgLITYDnbrjG1GwGkvefd
         hHxk6lkApAV38Oi8vIzUQfEJ8wFoDrL8RwZq4qDk19AhYWVm238iVmmmVO7DlbUJ33tI
         BLX+/0wZLAv6GevVfNs/5TC56F1I6JNn+sAhx6wYa6M2qI3hZxBZFaK0EH29RxIb8wYE
         l0fPT66HRS9VmV580SbvW1FY/SVTqBcYuvfEtu2otEWz3FsM+lLxfdinbLZf9OO11+V4
         J1yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=4G0wXMIRKtQjgiQjhPPTWIJTonbxBMvj833mzQfGVdU=;
        b=FnGp41PaI7Lm6f3n8t1AeIsV1hV7wxpbb70MY4igvfoOijWEM1ncDfY3ik53otGq9h
         PI98gbb3Bj2bxdJOAaXPHU6eIiu0PtdsdrHSB5lce+FL1BCXD185ISNtEQyoe5TrAIy2
         1xtv6JuOTdnHdYb6klV0y0ZBk9XhvfkRwIrwlgJKxDQEDrYT9Sn+9MgvhfuYymP/7RtE
         p38BD5uRyoFFCFIN4EDKV0qWbV4+RIT6dldw1xI8ANWKpgegYuar87uWRId25PjKE1wy
         WNtiJGuRJqEywVXaxBT8HtCxSFlKdvVEoV5Ojn96vHEDPn6lDu5zyVKtLsPjQUYpZc+y
         QGEw==
X-Gm-Message-State: AOAM532UzSv+uRq0lXB48TcMdhFECR2GMU8MKNDIb/S4OlUZ2SmRp4Cu
	qSjlXXWGJ16WVPIFLp1kXxQ=
X-Google-Smtp-Source: ABdhPJw++X7mxtdOavKH8Ip6GlDs2g7F+GbwMx/tI9yDFlFB9AlrVDhMOYYWaSu8ROQpefmcYFa9fg==
X-Received: by 2002:a2e:858f:: with SMTP id b15mr33453590lji.177.1637949728768;
        Fri, 26 Nov 2021 10:02:08 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 09/25] ARM: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:45 +0300
Message-Id: <20211126180101.27818-10-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/arm/kernel/reboot.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c
index 3044fcb8d073..2cb943422554 100644
--- a/arch/arm/kernel/reboot.c
+++ b/arch/arm/kernel/reboot.c
@@ -116,9 +116,7 @@ void machine_power_off(void)
 {
 	local_irq_disable();
 	smp_send_stop();
-
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 }
 
 /*
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233316.404822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfY6-0007b1-6H; Fri, 26 Nov 2021 18:02:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233316.404822; Fri, 26 Nov 2021 18:02:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfY5-0007ZJ-PH; Fri, 26 Nov 2021 18:02:13 +0000
Received: by outflank-mailman (input) for mailman id 233316;
 Fri, 26 Nov 2021 18:02:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfY3-0004LT-Tl
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:12 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa645829-4ee2-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:11 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id l22so26084911lfg.7
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:11 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa645829-4ee2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=WLlXRmIj/zMVA0EiitKjc0V06oQPoMgvuV0WtFcoWEk=;
        b=dwQkjQc8XJ9Zv7re/xh1WQ2UESbNnOIjv44tV2yYkTMSfE9Pw4ixbam1sYNjgU1ziC
         YsjSnbkQEYOmSOD/fv2OcaoktyLva3BRmUT1f1EHzpHOs1H4O5FRr9HjwLwmIJ0kwol4
         En1ylnQpmG3ktfI1Fg/Q/EuJpzuzjUdYaT7dPWgdOpPbhofgmKEPmXbgYeO1l98bR8OD
         7+AULvyVTAbuaPQqm0dZB4n1ycZXUvc6CpxX2dZaHQaHbP8ogu2BN4iuPHoYBKRTBq6b
         tgYxssEnkU5biyG5fZrNPOs0vGjei7DrFVluWj41isSbTpsczS+9OOm9yoDDpdejZQ4Y
         d6OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=WLlXRmIj/zMVA0EiitKjc0V06oQPoMgvuV0WtFcoWEk=;
        b=OclzEaLfp/cH5LYxIDyHcrFnWjuckpzN9uQRDoD0/CriTCsbzMLi3Q0Awrs0Mqn7Tq
         0fDJGpA717s6OabnbAIIAg8YZmOli59r9hWHEMkpZkaBqzbL/i0SFESgCwlxrzuLIKlL
         1aCXUundbsvXh5t4l3RiXi19g5uylW9PBo5NnqIiS/Q+GvGX6ecNroyUpZd0iMo59oiO
         VTFzst063eQ8/oh/i3diRwVIyM+io0YbbSoPQ1AGCDyn6byZHzZrP3tBjWbXegaUEe3f
         /lE+myByJsuEwxvUhYn/ZXXhrdvkhogBeFWf1VxweHDtfhNtTtiWyVlT35XAqrXIoJGP
         86hQ==
X-Gm-Message-State: AOAM531AFlXSplKNcdn7HUhT/43829D6Hs/dVDRIWgQr8j7JCU1X0vZs
	UKIOskoKE9UsBMyqqNh8KlU=
X-Google-Smtp-Source: ABdhPJxQTNSOwCEIeWTILMI5rMPmmxh09mM/FdZM/5H+6ue5hatuq9sGyT0G3QPFh5axuTAZ8BDbdg==
X-Received: by 2002:a05:6512:3456:: with SMTP id j22mr31418434lfr.89.1637949730890;
        Fri, 26 Nov 2021 10:02:10 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 10/25] csky: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:46 +0300
Message-Id: <20211126180101.27818-11-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Guo Ren <guoren@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/csky/kernel/power.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/csky/kernel/power.c b/arch/csky/kernel/power.c
index 923ee4e381b8..86ee202906f8 100644
--- a/arch/csky/kernel/power.c
+++ b/arch/csky/kernel/power.c
@@ -9,16 +9,14 @@ EXPORT_SYMBOL(pm_power_off);
 void machine_power_off(void)
 {
 	local_irq_disable();
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 	asm volatile ("bkpt");
 }
 
 void machine_halt(void)
 {
 	local_irq_disable();
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 	asm volatile ("bkpt");
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:02:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:02:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233324.404839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfYB-0000HI-Ec; Fri, 26 Nov 2021 18:02:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233324.404839; Fri, 26 Nov 2021 18:02:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfYB-0000Gs-Ap; Fri, 26 Nov 2021 18:02:19 +0000
Received: by outflank-mailman (input) for mailman id 233324;
 Fri, 26 Nov 2021 18:02:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfY9-0004Lf-Hm
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:17 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fbb5dece-4ee2-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:02:13 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id l22so26085178lfg.7
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:13 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbb5dece-4ee2-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=hKgqav8a8uS+JOYHQI8KBeK4UU43xCMXoqbNcSGFyUw=;
        b=Po1r9nVFosID/XIv4S8lizZdxtb4AiKjgIf77Z9VdEmxeyZ4v2AKodX8o/k+Z3rD2d
         e2PI94UHDmym38k6JGIB2xhQcbHnk++cihPLhjPUlu0ata6V7Elqqu1vX/dUvmX8vd//
         gFGlEXk8MDQ81Mp13d+goJXAs9OHRCnyuOhZEEjTJ4y/wSzHt8J2Kug/9ssKueQtT4Bx
         eKaeWcEuefXhfGSMQhhq6VHfHmDtX4qeoutfpXxh+4HClTuY5U63fmiF7CsLfkldK5nU
         ruhLNjZH8cKw2EdHXxrwIzr9XSez2deXmOvWqitl0d7ezpYqqMN01hGnnX/7XN488JAq
         2Xpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=hKgqav8a8uS+JOYHQI8KBeK4UU43xCMXoqbNcSGFyUw=;
        b=vRNtG8DGt+/pFoYMQvpZf7mCQ2XR4vj1WTml1ucZa3SyvcQLseWJWbQ28fpNSUVINE
         dZpYq4iEQEY8RZTXmhZjskgVZCaLDRUZ2IVvpyr7QSbad2l1TGX8RDRyypXSDfxQkXBG
         OAvWbvgFizLv7RGu+I9UJr6joVZNBkZA6Yn1A5c+EoR5uzOFy80CcJFIt6fgtjSQPZGO
         RUQckpQ8WDDPf/7ta2QV8xRXF+MQoOroR/0rXpqDza9OwPdkERUzjn8DXbAWzw+nIJk7
         8vQcb6vLlFjEJ96eRizKUJ/O4qGys0TCRLE55nK7kcG/bEzbsRwWKi9x3PqI3wpPn9Ql
         uzsg==
X-Gm-Message-State: AOAM533k7qxB8IoMfqfdqUKm/FxR2oPFFO8QXiui7TR30U7oW4VYQqWH
	Scn9P63wPWf2EcYWCbMVIjc=
X-Google-Smtp-Source: ABdhPJyU2gXG+eVj9py9Up4KS/i8crRthe+TvBFG99PRD6Vp7wlcfVEp3e9ky90MnSLaJ58dEaRzoA==
X-Received: by 2002:ac2:5548:: with SMTP id l8mr30765420lfk.509.1637949732941;
        Fri, 26 Nov 2021 10:02:12 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 11/25] riscv: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:47 +0300
Message-Id: <20211126180101.27818-12-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Palmer Dabbelt <palmer@dabbelt.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/riscv/kernel/reset.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/arch/riscv/kernel/reset.c b/arch/riscv/kernel/reset.c
index 9c842c41684a..912288572226 100644
--- a/arch/riscv/kernel/reset.c
+++ b/arch/riscv/kernel/reset.c
@@ -23,16 +23,12 @@ void machine_restart(char *cmd)
 
 void machine_halt(void)
 {
-	if (pm_power_off != NULL)
-		pm_power_off();
-	else
-		default_power_off();
+	do_kernel_power_off();
+	default_power_off();
 }
 
 void machine_power_off(void)
 {
-	if (pm_power_off != NULL)
-		pm_power_off();
-	else
-		default_power_off();
+	do_kernel_power_off();
+	default_power_off();
 }
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233333.404850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfco-00036E-4S; Fri, 26 Nov 2021 18:07:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233333.404850; Fri, 26 Nov 2021 18:07:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfco-000363-1N; Fri, 26 Nov 2021 18:07:06 +0000
Received: by outflank-mailman (input) for mailman id 233333;
 Fri, 26 Nov 2021 18:07:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYE-0004LT-Au
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:22 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00995587-4ee3-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:21 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id v15so20357949ljc.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:21 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00995587-4ee3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=gu1TeBm+2e/G5RkADOFU3cJrqp3hDioEihnrKvJEWzw=;
        b=btNqE7qj3gxEiDVofvmyjyd5e7+E6dC5EvozkZ3YONorP6vNKMDK/arxDxAc+ltG7R
         TI/OKrB+ElUSGJggS6fR+VvabEemoQpP54QSf8icDIcXqsN3cetkl+MJM3Uv83OU/ua5
         YnrqP6SpxE3RilnmapTLWdFynEqGWoF9UKLd/DifHXHRRJENB4MJ8bZKGXsja5FQh/Ln
         Gn1mmiKEwmPfkV+5o1Qx1UHHE5Ho0OF5Lv2UTxiT+KLX82V7SYEs1ZWnthM6isYJwRQ9
         tdU5PDbvVk5b/rhIUQRngDxoQRVVJQlBNfOWOrEip1niZaJKsE7C6PZqI9A924a269T1
         nFWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=gu1TeBm+2e/G5RkADOFU3cJrqp3hDioEihnrKvJEWzw=;
        b=Vw9e1X/i81yW+o/jxH4EVYcDSzMOKzxHNwr2ktp6NKtIToW/YBVJG4LZrZNuGGn6b0
         c/nYugxGHmUi4wKkAmgG5oEAcIhqxlDEBy7n3roVEzQq4Ec8nBv99DeZAz5GnClhIlHT
         PMdQyP6KiAOsad6d8NcgcYf7AVoLotxhA3YRzG21rzz7RVE6C76dhnQrSUMDI5m12Q19
         +MqUD6GIqsiSP6hpsr4ZUxD72cIuIq98oiC64r5MO0QndHi8/HcaH3hHvUr3k54MACEr
         5ZvmG50UvJYw0QRuhljVYUKO+FdKrphHirrA1Ss9Ci3ybQJ0QReUXjAPONIWjjRKfflt
         P6aw==
X-Gm-Message-State: AOAM532bOR0SI2BVavWZ4MwsA9sGtNBK/sFx+ybpTpRozO805hH0y45C
	FA4hgerQu1QoSJx/lDOAoVk=
X-Google-Smtp-Source: ABdhPJyqXZVO64K86xv5JIX/t9zYDjx1u3F4bWT4GBdKatrIZNjie6T+K7n3Ac1v1Jvn5JGF+DNcxQ==
X-Received: by 2002:a2e:7d0a:: with SMTP id y10mr33852017ljc.259.1637949741369;
        Fri, 26 Nov 2021 10:02:21 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 15/25] powerpc: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:51 +0300
Message-Id: <20211126180101.27818-16-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/powerpc/kernel/setup-common.c | 4 +---
 arch/powerpc/xmon/xmon.c           | 3 +--
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 4f1322b65760..71c4ccd9bbb1 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -161,9 +161,7 @@ void machine_restart(char *cmd)
 void machine_power_off(void)
 {
 	machine_shutdown();
-	if (pm_power_off)
-		pm_power_off();
-
+	do_kernel_power_off();
 	smp_send_stop();
 	machine_hang();
 }
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 83100c6524cc..759e167704e6 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -1243,8 +1243,7 @@ static void bootcmds(void)
 	} else if (cmd == 'h') {
 		ppc_md.halt();
 	} else if (cmd == 'p') {
-		if (pm_power_off)
-			pm_power_off();
+		do_kernel_power_off();
 	}
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233338.404872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfcr-0003eI-PU; Fri, 26 Nov 2021 18:07:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233338.404872; Fri, 26 Nov 2021 18:07:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfcr-0003e9-LL; Fri, 26 Nov 2021 18:07:09 +0000
Received: by outflank-mailman (input) for mailman id 233338;
 Fri, 26 Nov 2021 18:07:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYW-0004Lf-2G
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:40 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b342e7e-4ee3-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:02:39 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id d11so20204490ljg.8
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:39 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b342e7e-4ee3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=4OWbCpLiTrW70NMTPpPUNVkhVF3RKPzG5GTofMVph+0=;
        b=U69ILAbrhbxcINYnpRQtUq6JxYWnIXttphxdlME9mX9uCA1JhL5g9P+cnao4IWTUqr
         9tPjsTZbw0wHPRnIaR2kuXc+6SuT1qdSxK1er9g80is33Nv4fNybvJeDFb+59wZ6/jA9
         lKnEss0hQGNpzJDmSzIVrPcWrzOYo8XEDeBsPuLSgtY/cdbTAUaYPsMA9QVRSCsMpWjK
         1CeUN4i4UFobttYFMLMl85bmb+/I+XpEOavkYcgGHHLEq9EDDoV4gjylJLb2WQn+vkHq
         yNteEWHoeUyiUUjoXV7o0YPYgF/rr0dWmS9D0ywrrfynL0aziDEWAvzpSp7yO/ZE2I4q
         +yjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=4OWbCpLiTrW70NMTPpPUNVkhVF3RKPzG5GTofMVph+0=;
        b=rPEWM/YjOCYaPf2O/o/pce+UtPuyf0tb5bUSIgy6KYPLk3BISQpBe3N9m3XX+nPCF/
         1xz6r9X6GsoybKfAChZLrfRI+jeln0dpudrIbcZygCOr7uAgp1957WTPUvWeApttiBNc
         gWr6NnMM4+LdxhYMPBOm8Cr+42FmhWjkKu6K4WMsLlbwo2Sqr4ZmyldqQr/pe0rIe/hW
         g6RPK0LX32d9kxWjHtOtRSsuy5e7IwJ6Np8kgAduwrjnpTc6CZlIOZIcCJBiX1GMn9Pu
         OT+MaZCe1UVmuPO79T5ro4D/uYKO9TPxmOMO55SXbYAlHv5IOkuSvlL54yyzDCfkyJ7p
         L57w==
X-Gm-Message-State: AOAM530JJ6ajFOMRFwMLEZmmmns31IzfNKciRfLAga2Z56U6NPwgLxby
	6YBwlfczEAv/V+Uog9Dq98Y=
X-Google-Smtp-Source: ABdhPJz1GbkyYg9nMRW5huA9uUFPfXiNfeSRqTr9xzo7mRAD3m0tvpkkS1ciqVKYkPFDmEUOR5tJqw==
X-Received: by 2002:a2e:a58d:: with SMTP id m13mr33700861ljp.281.1637949757713;
        Fri, 26 Nov 2021 10:02:37 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 22/25] memory: emif: Use kernel_can_power_off()
Date: Fri, 26 Nov 2021 21:00:58 +0300
Message-Id: <20211126180101.27818-23-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Replace legacy pm_power_off with kernel_can_power_off() helper that
is aware about chained power-off handlers.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/memory/emif.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c
index 762d0c0f0716..cab10d5274a0 100644
--- a/drivers/memory/emif.c
+++ b/drivers/memory/emif.c
@@ -630,7 +630,7 @@ static irqreturn_t emif_threaded_isr(int irq, void *dev_id)
 		dev_emerg(emif->dev, "SDRAM temperature exceeds operating limit.. Needs shut down!!!\n");
 
 		/* If we have Power OFF ability, use it, else try restarting */
-		if (pm_power_off) {
+		if (kernel_can_power_off()) {
 			kernel_power_off();
 		} else {
 			WARN(1, "FIXME: NO pm_power_off!!! trying restart\n");
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233336.404861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfcp-0003MH-Bt; Fri, 26 Nov 2021 18:07:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233336.404861; Fri, 26 Nov 2021 18:07:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfcp-0003M6-8f; Fri, 26 Nov 2021 18:07:07 +0000
Received: by outflank-mailman (input) for mailman id 233336;
 Fri, 26 Nov 2021 18:07:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYO-0004Lf-N7
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:32 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 063ba990-4ee3-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:02:31 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id bi37so26096266lfb.5
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:31 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 063ba990-4ee3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=jIixMSKlDuHM/ROsyXYWDI0GhGtBfDPAGuo/NFEP3H8=;
        b=RkrRcUL3/unWl5TLL2UiI+cIefalNliyD5OZ8qBWw0vd5FWVYlkh2ZGxC2GwymdcF4
         FnuqzFOgJ9BQ/mBjQ1gcA0nf/x0BiZJ+EgXuRos6k9RF6wtv8mydobglnFTyFDM/o/7U
         fUeyXvBvL81voOpGVAlVYzb32boxZjAVRKIIq4IpzrY/VR/M+S4bjgjU1NP9DjKotc3U
         /A+mqp3e4jEEb1Fop04zzVJHmitkr6/6LmFJtLtIeynw10291TBv/dm7oq2oOXHDw/W8
         iLFwl6qMiG8Yr5CgCHF2n1M2IZGz5jiLQvM+yQ7bLbZ3yifj62/79nyqg4+7ZdM7pcg3
         hbTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=jIixMSKlDuHM/ROsyXYWDI0GhGtBfDPAGuo/NFEP3H8=;
        b=FDWPxTKPOZ0WmIYIHbgN63e9fclUk8grbk69RZMUyIfmwUQpwvnsfEwciFMlZx62yz
         qRggL7gCJNvoyx8TZbE0rdRIMp+vniKfb2DwUFsvngzCOXPb8DIrWkrVJXNegl/CX28a
         5QtmrlXkxuO5mU1qQdpZCBsQh5RpZlFN5dZXgZnxJy2CjZsSD1wvCbP38cdUJlJ+ffj9
         bTPmLFZnX6MrwLivv4pi9d6+lRA8J9WdR+OP54KHhpKnsXNH+fCQSSiApdjf6GbEOuWT
         uiMgOOBcI8cSfstxzmkvCIi7AyIg1CyGwpIdyr8D1WlZfPhejhSufQP8HiyEnJAGAUck
         Eckw==
X-Gm-Message-State: AOAM531kV0p09quA2OchfAqc3/K+gKLR1mW3K4WZJw8QspB222Id4bJZ
	X7V+jNrmpmte+TRR6pO8QxM=
X-Google-Smtp-Source: ABdhPJwkZw3p0myZeHiHt7tYuC+kBTtIH6I1XgMcBHRb2HpPdyNP738dU9MuctCnRALXDO2n+ThzAg==
X-Received: by 2002:a05:6512:114a:: with SMTP id m10mr31826169lfg.54.1637949750851;
        Fri, 26 Nov 2021 10:02:30 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 19/25] ia64: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:55 +0300
Message-Id: <20211126180101.27818-20-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/ia64/kernel/process.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index 834df24a88f1..cee4d7db2143 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -19,6 +19,7 @@
 #include <linux/module.h>
 #include <linux/notifier.h>
 #include <linux/personality.h>
+#include <linux/reboot.h>
 #include <linux/sched.h>
 #include <linux/sched/debug.h>
 #include <linux/sched/hotplug.h>
@@ -599,8 +600,7 @@ machine_halt (void)
 void
 machine_power_off (void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 	machine_halt();
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233340.404883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfcy-000430-1j; Fri, 26 Nov 2021 18:07:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233340.404883; Fri, 26 Nov 2021 18:07:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfcx-00042r-Um; Fri, 26 Nov 2021 18:07:15 +0000
Received: by outflank-mailman (input) for mailman id 233340;
 Fri, 26 Nov 2021 18:07:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYC-0004LT-8j
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:20 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff557cce-4ee2-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:19 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id 207so20177850ljf.10
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:19 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff557cce-4ee2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=cQhCUMmxREqlb3fYFdUNP+80Jr1xwOUlupNd5E99mX4=;
        b=iJedDqBmhe3+60jiATM7eoXnQMEolWhm1QV+PRtSvFQT1XQ5mcMSJ4SbbE7J6fhvtw
         VH/PZa1wZwSWHs33Y/6nAuLNnbDCHXNpD6aQoyfIZCZ2XMBam1grhl0wuHW/5yhdfH30
         KiN8EvZnlo5gV1MVEqlZkSUCt0WOr9CtN6icR3uiXanS114nv6/nF+zlN43mnzmy3llc
         ohdo9Z3rua0Sa4TQlEEOe0yQW25sVwndRUvmhHAO8CXp3nhrBzc6CAxuW3di0hnLxbsi
         rrHpvmlKGY4sMYtvd2+oJRIzegBMKEp8SKSQwBwHWbPTyfn/AE/HmcsgS7He03Kr5FVt
         zegQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=cQhCUMmxREqlb3fYFdUNP+80Jr1xwOUlupNd5E99mX4=;
        b=NdMnwqOaaL20BCpQsopzDgwOQRMQlkeFwkH2LZPJP2Fk/Gkprv63RKZ+YzxxuNsB79
         LWTrKIpZtxFd/sppmEfbtbhFaO8nJE9kFsTiX6qcFdC1Uz8gHBbDr+v2bHGC0F8EoXZA
         yvBeV48FBULHDPebK43OdbYufUZMOVQU2VgyclEfNaYm3e0AB+Xo6kMwT/vj7dgS0FlU
         EQ8+qBjlXIy8KNk6n9o9QYx1Yp+O/NR3UnMsSymYYRVVtbFXixsVdRHzDj7WoOxarqTu
         kjk3GLQn1gXOCXccIW7p7fs81XmMwU56K0+Z5JwRJaqi37j3yTX54DEhmMwc6UmjoEEo
         iXgQ==
X-Gm-Message-State: AOAM530z9gk+oXCiJ+hBH+pctEY6KnlgwexAsQNaq2++f30Guciz6NXc
	ZZxONUDJeRKM0eAmmR00y4U=
X-Google-Smtp-Source: ABdhPJzLA9Z8G9nq11XvR1DefFsoLdvZVIBJZngCYUnkQI+xNdPv3SMCQJctE1SNfGefKSxAA3JkZQ==
X-Received: by 2002:a2e:8807:: with SMTP id x7mr32119061ljh.490.1637949739271;
        Fri, 26 Nov 2021 10:02:19 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 14/25] xen/x86: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:50 +0300
Message-Id: <20211126180101.27818-15-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/x86/xen/enlighten_pv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 5004feb16783..527fa545eb1f 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -31,6 +31,7 @@
 #include <linux/gfp.h>
 #include <linux/edd.h>
 #include <linux/objtool.h>
+#include <linux/reboot.h>
 
 #include <xen/xen.h>
 #include <xen/events.h>
@@ -1068,8 +1069,7 @@ static void xen_machine_halt(void)
 
 static void xen_machine_power_off(void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 	xen_reboot(SHUTDOWN_poweroff);
 }
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233341.404888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfcy-000479-H9; Fri, 26 Nov 2021 18:07:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233341.404888; Fri, 26 Nov 2021 18:07:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfcy-00045Y-7r; Fri, 26 Nov 2021 18:07:16 +0000
Received: by outflank-mailman (input) for mailman id 233341;
 Fri, 26 Nov 2021 18:07:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYP-0004Lf-Qk
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:33 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 077bc6f9-4ee3-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:02:33 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id n12so26162119lfe.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:33 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 077bc6f9-4ee3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=Cc0IUGWHitJ0Cooyguk/vAdy9iAEtCRPuqNtfJHYmrA=;
        b=GYYw3XMX/4oqqfMN49I7CBBHFIpykntLblQl6g9KPyyCsudCNhMfwTnZL18wVQGQi4
         JuhpEycJ1R88pC/ZLM88sOilV25zrVbfh9eT9x5USudfIexBhI6hy6Vx+A4a4Oa7fUWM
         rJkHayh/u+8c0l4YkcoGl8kn2pAMWdXo1sxJvkNyjmGPQXIKKWAIYtGbr1J00yZ6UtgH
         Axc5wn/b/4iVF7UlO3tGJrtaG0NHnfrf2k5HFK1Jjx22qcNwH4sd9Rhks9JdQva78gS7
         1ZQlCef4sjICrp3ly5mWdogj0g50NCv3ORIDZTMJuIahq/+/0RewMoPQtmti46/fM1AW
         Wteg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=Cc0IUGWHitJ0Cooyguk/vAdy9iAEtCRPuqNtfJHYmrA=;
        b=ikb1BJJD1rw2ERPxe4oxURMZkTQ0c/eRRR2HBoZfpR4g33atyiU6qlt1nrgGRcv8si
         29Soqg0dvzcd9tsI7Iis2gTc5kKjTbOuApk04sLlqvuWG1tFATn9n/J7n1T9VpekiopI
         /1nxaffWscao67diIQIx8mjo+Ofgrku2PLBJCRdHxVHNJLYYSWUD5ZnPuI/SmZbeTg6n
         r3hVwv+vyoDcc9NlUETPs3/HeGyFKcHhAhyjOBanTjipTrM3GS+j3TC1cMf40cvNSlbq
         6ZfOi5DZ6MZqOJPvMs+7gPuAgVO7Ho+7jfof3mmHHf5YndPFAn2L9Vl91bKxLZkJjDbp
         edcw==
X-Gm-Message-State: AOAM531B9pLCNSHjSe2TScJWKsfFMaEOZNvV4LdoE9wBi/pq0+m12GBF
	/rYQ9yOxF93B5S+Vvrrv2eY=
X-Google-Smtp-Source: ABdhPJzQm6cGwJJjdj6PgfKdyO+WkT/LoUXVJp2PXtkWbzQaFwuQrSy4drr2rOfF/i9aKZ1mtOq8lg==
X-Received: by 2002:a05:6512:3a91:: with SMTP id q17mr30543722lfu.425.1637949752903;
        Fri, 26 Nov 2021 10:02:32 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 20/25] mips: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:56 +0300
Message-Id: <20211126180101.27818-21-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/mips/kernel/reset.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/mips/kernel/reset.c b/arch/mips/kernel/reset.c
index 6288780b779e..e7ce07b3e79b 100644
--- a/arch/mips/kernel/reset.c
+++ b/arch/mips/kernel/reset.c
@@ -114,8 +114,7 @@ void machine_halt(void)
 
 void machine_power_off(void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 
 #ifdef CONFIG_SMP
 	preempt_disable();
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233343.404904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfd1-0004iH-LW; Fri, 26 Nov 2021 18:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233343.404904; Fri, 26 Nov 2021 18:07:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfd1-0004hy-Hg; Fri, 26 Nov 2021 18:07:19 +0000
Received: by outflank-mailman (input) for mailman id 233343;
 Fri, 26 Nov 2021 18:07:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYa-0004Lf-2n
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:44 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d8a5d8d-4ee3-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:02:43 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id u3so26102402lfl.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:43 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d8a5d8d-4ee3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=rkacp5n+z0D4++qm+Vz/WWDd0s3O3Dw6o+6i9hrIfWs=;
        b=gVRV9emu6sYX58bEEaqERVRKC91eScCKmIAjLX2VmwN0wa1+mK+MpGIyKqyjDVneT0
         8ByU8moWOxhGAZOqRsNrdfzw/WHiCdrjwDYBaylzPmQEZMm8NiqCeJ8AQeEgHT7S/aVY
         CCO/A1GW+2nvOq93OXzPg0KzCTaviylHUl0tq5vTPSN+US3W8qjKLJ1EvDiDdm2L16dZ
         LSCkAwWoIiRdWow4JUO8O6gemuLNa95U07IhIAStt4dCUOYKJkkjImr2UVsfDPgLpNiT
         j9ujQpxiayn2r2/kqDdIgM9E0hJRJ2fNIAdbLnOzVNs30eC36+Q6ixCPCRXcFB3MODk8
         4bEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=rkacp5n+z0D4++qm+Vz/WWDd0s3O3Dw6o+6i9hrIfWs=;
        b=SCuw2lTqbB70x7c8PDmZGWY+M9zqkheuy9herbc9ZdkDyksZVo2ipzXmpe6k4rlzvG
         MjAI0s2vDbxU9AtGALr+k44b2NytzIO8kVrmFIzy/0i1sKi1WbJp93mayWLdGW9G/VDp
         9Ac0wW7+fg2YB0yGEczOlHpM+7YSB4oC3O6P4KQWiWCzGwU2Hp9xSjS9GXaAHsutbjna
         ygjY70tUee79fPPMQYXh3zlNkKkVklc/YMHQK16GlEfHjS0NafJUT++XIgH+CNg0CdCZ
         cLH38v8KUrF68uEOjKhgf5oOnK4XJHSpp/Hnb+gMtohqiSjci6dui8N+2P07izci0F29
         YpJw==
X-Gm-Message-State: AOAM530ZmZd4AOwxJDkduQPOrXqZ3WJn4rMecCuP43lPXrTVR+OJh5g3
	JBW8pzNeDa8UcQqFOzbAAmM=
X-Google-Smtp-Source: ABdhPJw9MgRdDicBI5Wn+wcNNayaaGrQ2l/CdlCTBQ9OL1cXXIqajfZf9e0vPeOiFVQvkoIkt+lx2w==
X-Received: by 2002:a05:6512:1324:: with SMTP id x36mr31672997lfu.141.1637949761995;
        Fri, 26 Nov 2021 10:02:41 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 24/25] regulator: pfuze100: Use devm_register_sys_off_handler()
Date: Fri, 26 Nov 2021 21:01:00 +0300
Message-Id: <20211126180101.27818-25-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Use devm_register_sys_off_handler() that replaces global
pm_power_off_prepare variable and allows to register multiple
power-off handlers.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/regulator/pfuze100-regulator.c | 38 ++++++++++----------------
 1 file changed, 14 insertions(+), 24 deletions(-)

diff --git a/drivers/regulator/pfuze100-regulator.c b/drivers/regulator/pfuze100-regulator.c
index d60d7d1b7fa2..2eca8d43a097 100644
--- a/drivers/regulator/pfuze100-regulator.c
+++ b/drivers/regulator/pfuze100-regulator.c
@@ -10,6 +10,7 @@
 #include <linux/of_device.h>
 #include <linux/regulator/of_regulator.h>
 #include <linux/platform_device.h>
+#include <linux/reboot.h>
 #include <linux/regulator/driver.h>
 #include <linux/regulator/machine.h>
 #include <linux/regulator/pfuze100.h>
@@ -76,6 +77,7 @@ struct pfuze_chip {
 	struct pfuze_regulator regulator_descs[PFUZE100_MAX_REGULATOR];
 	struct regulator_dev *regulators[PFUZE100_MAX_REGULATOR];
 	struct pfuze_regulator *pfuze_regulators;
+	struct sys_off_handler sys_off;
 };
 
 static const int pfuze100_swbst[] = {
@@ -569,10 +571,10 @@ static inline struct device_node *match_of_node(int index)
 	return pfuze_matches[index].of_node;
 }
 
-static struct pfuze_chip *syspm_pfuze_chip;
-
-static void pfuze_power_off_prepare(void)
+static void pfuze_power_off_prepare(struct power_off_prep_data *data)
 {
+	struct pfuze_chip *syspm_pfuze_chip = data->cb_data;
+
 	dev_info(syspm_pfuze_chip->dev, "Configure standby mode for power off");
 
 	/* Switch from default mode: APS/APS to APS/Off */
@@ -611,24 +613,23 @@ static void pfuze_power_off_prepare(void)
 
 static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip)
 {
+	int err;
+
 	if (pfuze_chip->chip_id != PFUZE100) {
 		dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare handler for not supported chip\n");
 		return -ENODEV;
 	}
 
-	if (pm_power_off_prepare) {
-		dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already registered.\n");
-		return -EBUSY;
-	}
+	pfuze_chip->sys_off.power_off_prepare_cb = pfuze_power_off_prepare;
+	pfuze_chip->sys_off.cb_data = pfuze_chip;
 
-	if (syspm_pfuze_chip) {
-		dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n");
-		return -EBUSY;
+	err = devm_register_sys_off_handler(pfuze_chip->dev, &pfuze_chip->sys_off);
+	if (err) {
+		dev_err(pfuze_chip->dev,
+			"failed to register sys-off handler: %d\n", err);
+		return err;
 	}
 
-	syspm_pfuze_chip = pfuze_chip;
-	pm_power_off_prepare = pfuze_power_off_prepare;
-
 	return 0;
 }
 
@@ -837,23 +838,12 @@ static int pfuze100_regulator_probe(struct i2c_client *client,
 	return 0;
 }
 
-static int pfuze100_regulator_remove(struct i2c_client *client)
-{
-	if (syspm_pfuze_chip) {
-		syspm_pfuze_chip = NULL;
-		pm_power_off_prepare = NULL;
-	}
-
-	return 0;
-}
-
 static struct i2c_driver pfuze_driver = {
 	.driver = {
 		.name = "pfuze100-regulator",
 		.of_match_table = pfuze_dt_ids,
 	},
 	.probe = pfuze100_regulator_probe,
-	.remove = pfuze100_regulator_remove,
 };
 module_i2c_driver(pfuze_driver);
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:21 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233344.404914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfd3-00053h-4u; Fri, 26 Nov 2021 18:07:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233344.404914; Fri, 26 Nov 2021 18:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfd3-00052h-0P; Fri, 26 Nov 2021 18:07:21 +0000
Received: by outflank-mailman (input) for mailman id 233344;
 Fri, 26 Nov 2021 18:07:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYA-0004LT-Ut
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:19 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fe5cffa9-4ee2-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:18 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id y26so26023583lfa.11
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:17 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe5cffa9-4ee2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=qRRUcggihxuvvuxXR8avhK/eModbACqCMIG7s3bijm0=;
        b=F+ae4aJdkYXCweN3qvWALmYLP+XcOBVsbUZiBz3wjv2WaGVtERDvv6V+5QSoW9UgbE
         E7y0Txw38D0ufR3EB9SzNGyJKSse6baosvaEwLysATr+xUnY8bVn+jrsQp57XyYfz3Z7
         45QC05eh+LXoPZZqUSgnhomWnu7kpz0pbhmgHRbkTFBOmmdS4Kq5VKG++2d1ta76NPqQ
         9aLY5Bk3H2UxUsR+31gFulbMnP83tLyUX9SAkO1yLlt7C75xtqe03dbtLt7OC2QP4zyb
         DEWBGonlvW4GQMjmrsFypIxp6FgBp+7XiIVx8uzb7ZWMYBKBdkchOcFCtzdM+DFES0eG
         9ZFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=qRRUcggihxuvvuxXR8avhK/eModbACqCMIG7s3bijm0=;
        b=mft0r1DHWx1pPwj9/ritWg/Zzfpl/azeRHXfbwUsxnj4OnkLLiUaAOsWxIsGJLuYDm
         jCQPfXEGcDDPeHM0AJ2avd5QDkyfsNZXFFd5BQ4qWipDs4cX2u2C9FTChMM7SX2lnSm5
         d46WNJaj9sSPR3iHavwZ/AsuRV3X2YrI8y8JAnMmKg7EkGGLujOFhhQ1VEE7+EeUGeim
         aoh1sZ2VpnzBGFp4en4Q6TGGSk7nfKVBc6vR3YSXEK5SjrxG/MTWeRNN3BfSjkGXpK4Z
         Sqwd9+ltRuDB80rJpbvJVWjkJZbKPkSZSCRghCNoMk1juWcC3Tf5OVnFjboe2o7rcn/P
         my/Q==
X-Gm-Message-State: AOAM532DynEo+a5F1rOETdn2ZWT8X97DcTlXigRlQabAYAQKiNrgpH5m
	jOBEgXeMiuNYfIysfQuRORU=
X-Google-Smtp-Source: ABdhPJxIPCR62MVxA3Gk3y/yaFr4O3QtZDQL1qmRC9ygz6q9SZiw9bz2SP+4zezayKu/PH7lnK8+dg==
X-Received: by 2002:a05:6512:3990:: with SMTP id j16mr30534742lfu.199.1637949737163;
        Fri, 26 Nov 2021 10:02:17 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 13/25] parisc: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:49 +0300
Message-Id: <20211126180101.27818-14-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Helge Deller <deller@gmx.de> # parisc
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/parisc/kernel/process.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c
index ea3d83b6fb62..928201b1f58f 100644
--- a/arch/parisc/kernel/process.c
+++ b/arch/parisc/kernel/process.c
@@ -26,6 +26,7 @@
 #include <linux/module.h>
 #include <linux/personality.h>
 #include <linux/ptrace.h>
+#include <linux/reboot.h>
 #include <linux/sched.h>
 #include <linux/sched/debug.h>
 #include <linux/sched/task.h>
@@ -114,8 +115,7 @@ void machine_power_off(void)
 	pdc_chassis_send_status(PDC_CHASSIS_DIRECT_SHUTDOWN);
 
 	/* ipmi_poweroff may have been installed. */
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 		
 	/* It seems we have no way to power the system off via
 	 * software. The user has to press the button himself. */
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233348.404926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfd4-0005Rq-V0; Fri, 26 Nov 2021 18:07:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233348.404926; Fri, 26 Nov 2021 18:07:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfd4-0005RC-Mu; Fri, 26 Nov 2021 18:07:22 +0000
Received: by outflank-mailman (input) for mailman id 233348;
 Fri, 26 Nov 2021 18:07:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYX-0004LT-2x
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:41 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bbea532-4ee3-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:40 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id b40so26080707lfv.10
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:40 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bbea532-4ee3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=mfpn4GjmPLTNTnhqDUdqufcuPWBAqiXi1zu9JyEbhbk=;
        b=hM1s4tUFR2RGbsehgNeqtlhz2+IbxDI+2lgWQ8ES3LNgRGz/xAjj/h4Ls78EguPH/x
         sj7Z21CprUcfG5nn8EoF76kwSSviG4smz0l8jFTC5BNvXZgtHgEQdplwK2Fxu0Rqh/E1
         V8FZwbMQTWONCOdG4xwI7vqVS53GtktaEtL51GQTXOjqVVA61Zv3O3fJazEkmisty4dp
         3Gk1E0pE7TsZG89FhO0GxGmj2ZIqTcqAQ5mRcksE+hdRm8RCAhjGC808RLqeD5UK/BGQ
         4LaXFxReB71FMum+f5Mzo+W8EYR67BV8ZDbCd6lIgSah1PfOKwknzP5/AHemBn7NftRd
         E7+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=mfpn4GjmPLTNTnhqDUdqufcuPWBAqiXi1zu9JyEbhbk=;
        b=oElw/+gZIda3n7o+YUyg8hzzIaDOTFh9f4QfgSgBl2uys5ojODDxv9P+/dPYIhe6fH
         RO7blcn4KcGyDh5j9FbOyHUH66+PTWKAb0ai6s5ocdI+g1NYxBlZEU+1s03MyBy5cBD9
         Ww6TCYZ5aFV47uj9vfPVu40PecAhpIyLxhAZoCNMK+V6CWMEC1PSEPdhmqBUTxYTVwKT
         lXftRWRJMyXo+Pzvk1A83PCV1x79P4zODXaZoC5vvxB/5pw5S6luFo+bn+p9RgMlSjPJ
         /R3Ewyp1dE4fnLDknAsQrrSwIbKG6evofiPoIXQ4hgMJGZbs+pv5ZEDp1e52CrskY4CJ
         kXfw==
X-Gm-Message-State: AOAM531zS6N5L5hpZXWcqc3EqbO6wytRbin/YnqBHijQJbUQGQuXX+kG
	7A2Wv/LdwjAmiqzKCGnE8yE=
X-Google-Smtp-Source: ABdhPJw1NC54RekxTj6U8kHZQHuUa8jaXts7kQjnorzXxbujNyJ8o0PtYTEAbdf23H0ZlL8y0CUSiA==
X-Received: by 2002:a05:6512:22d3:: with SMTP id g19mr30076146lfu.404.1637949759926;
        Fri, 26 Nov 2021 10:02:39 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 23/25] ACPI: power: Switch to sys-off handler API
Date: Fri, 26 Nov 2021 21:00:59 +0300
Message-Id: <20211126180101.27818-24-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Switch to sys-off API that replaces legacy pm_power_off callbacks.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/acpi/sleep.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index eaa47753b758..2e613fddd614 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -47,19 +47,11 @@ static void acpi_sleep_tts_switch(u32 acpi_state)
 	}
 }
 
-static int tts_notify_reboot(struct notifier_block *this,
-			unsigned long code, void *x)
+static void tts_reboot_prepare(struct reboot_prep_data *data)
 {
 	acpi_sleep_tts_switch(ACPI_STATE_S5);
-	return NOTIFY_DONE;
 }
 
-static struct notifier_block tts_notifier = {
-	.notifier_call	= tts_notify_reboot,
-	.next		= NULL,
-	.priority	= 0,
-};
-
 static int acpi_sleep_prepare(u32 acpi_state)
 {
 #ifdef CONFIG_ACPI_SLEEP
@@ -1020,7 +1012,7 @@ static void acpi_sleep_hibernate_setup(void)
 static inline void acpi_sleep_hibernate_setup(void) {}
 #endif /* !CONFIG_HIBERNATION */
 
-static void acpi_power_off_prepare(void)
+static void acpi_power_off_prepare(struct power_off_prep_data *data)
 {
 	/* Prepare to power off the system */
 	acpi_sleep_prepare(ACPI_STATE_S5);
@@ -1028,7 +1020,7 @@ static void acpi_power_off_prepare(void)
 	acpi_os_wait_events_complete();
 }
 
-static void acpi_power_off(void)
+static void acpi_power_off(struct power_off_data *data)
 {
 	/* acpi_sleep_prepare(ACPI_STATE_S5) should have already been called */
 	pr_debug("%s called\n", __func__);
@@ -1036,6 +1028,11 @@ static void acpi_power_off(void)
 	acpi_enter_sleep_state(ACPI_STATE_S5);
 }
 
+static struct sys_off_handler acpi_sys_off_handler = {
+	.power_off_priority = POWEROFF_PRIO_FIRMWARE,
+	.reboot_prepare_cb = tts_reboot_prepare,
+};
+
 int __init acpi_sleep_init(void)
 {
 	char supported[ACPI_S_STATE_COUNT * 3 + 1];
@@ -1052,8 +1049,8 @@ int __init acpi_sleep_init(void)
 
 	if (acpi_sleep_state_supported(ACPI_STATE_S5)) {
 		sleep_states[ACPI_STATE_S5] = 1;
-		pm_power_off_prepare = acpi_power_off_prepare;
-		pm_power_off = acpi_power_off;
+		acpi_sys_off_handler.power_off_cb = acpi_power_off;
+		acpi_sys_off_handler.power_off_prepare_cb = acpi_power_off_prepare;
 	} else {
 		acpi_no_s5 = true;
 	}
@@ -1069,6 +1066,6 @@ int __init acpi_sleep_init(void)
 	 * Register the tts_notifier to reboot notifier list so that the _TTS
 	 * object can also be evaluated when the system enters S5.
 	 */
-	register_reboot_notifier(&tts_notifier);
+	register_sys_off_handler(&acpi_sys_off_handler);
 	return 0;
 }
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233356.404938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdC-0006Qz-9S; Fri, 26 Nov 2021 18:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233356.404938; Fri, 26 Nov 2021 18:07:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdC-0006QT-4p; Fri, 26 Nov 2021 18:07:30 +0000
Received: by outflank-mailman (input) for mailman id 233356;
 Fri, 26 Nov 2021 18:07:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfY9-0004LT-Ur
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:18 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fccb396a-4ee2-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:15 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id bi37so26094701lfb.5
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:15 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fccb396a-4ee2-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=NEBfa1fMA+x5w4qEnSCEpCMUhXzxF+K5pq5bQ4oFCgw=;
        b=lRlQ008a+IbsS8DE0TWdHIzAkFXjh3dDHkcfsSNijQLz3glWRPdOXkR406dy436mKR
         swsEMK/HLMriBM+sHUAz18HbxkMhzsa9XYl+oomFF1gq//nss8dqk36V7J+ClG9CaBy2
         WWO0klgFXP29RO1EhtcXcnQ3zoupxyF9h0GmJQW3J91/ZiBM4sbrGAmCBC8U5x3dd9vf
         izOX2LuAARiYC76RMH7ctsrxVJr/V6zidemA6uePTmz62QvyzJ8o7pLoAvFloQYwA0l2
         DNfHUUqAzsU9SV4hQVCTnOjHiCDOJYPH0hjwhTD+pgLvWamNz7onIv5CBzTO4bq19cIl
         BOQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=NEBfa1fMA+x5w4qEnSCEpCMUhXzxF+K5pq5bQ4oFCgw=;
        b=sIlhjlr++xS4XI7UBvVAeOX7YgHwPuOScPA9CXrLwroskbHEZ7WzXBGkn/d7F5GzWB
         9aapX9D7YDHkrM0nCjkI5UdlZj7RzQI/egLUDdSNILXYXAhmAisiKLOsmQ/nZCeq+I0d
         jsiUkoTzLGN+nPpQpVNEBZanLDusgEZHkfVxhKR0/VWCrY5LnqPDLWPZI9O4jLGPSVmr
         MbTJRGy5q7V1lAQS15Axh7TG28N0ed2BOD43BV+wX/1BnA3hQZR3OJbTDbStE+dkttoY
         LD3eJVsn7ycOAKp6DVYwj2NVeTFpXiT31MTLUGRlK2fQBL56Rj58bgXxJMwvWBfjRhfJ
         RoUA==
X-Gm-Message-State: AOAM532DEH8QA/oZW4U48HzMdU0VSI6ZkqlRqEQ2wLppS/u1rIz/lc6U
	O5ZwNxi6R9btdCYmIvfeUBY=
X-Google-Smtp-Source: ABdhPJzwg6TCeM4olE1bypUFqEyLXP1HDDpp6A34kLIaU1G6qa5YfdfQ014tuBHAOgCpqB1ddH3KBw==
X-Received: by 2002:ac2:5cc8:: with SMTP id f8mr32343763lfq.110.1637949734922;
        Fri, 26 Nov 2021 10:02:14 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 12/25] arm64: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:48 +0300
Message-Id: <20211126180101.27818-13-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/arm64/kernel/process.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index aacf2f5559a8..f8db031afa7d 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -110,8 +110,7 @@ void machine_power_off(void)
 {
 	local_irq_disable();
 	smp_send_stop();
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 }
 
 /*
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233357.404942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdC-0006VS-UM; Fri, 26 Nov 2021 18:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233357.404942; Fri, 26 Nov 2021 18:07:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdC-0006Te-HM; Fri, 26 Nov 2021 18:07:30 +0000
Received: by outflank-mailman (input) for mailman id 233357;
 Fri, 26 Nov 2021 18:07:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYI-0004LT-E2
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:26 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 02dd4ef4-4ee3-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:25 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id e11so20150118ljo.13
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:25 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 02dd4ef4-4ee3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=hvZkJ7cBcJ7/DC5PEDv8QLnJUHqmlmLu26EQ3pxbua8=;
        b=LvBzHi1aPHvYIxlD2h/yo22u+G1vrExchL+tXMoo2DrImVVRsCEGPePTF4fjrhp5b3
         wGJ7IxrfDwNGbhrlUNwr/Y1kPN7nmmhTpnSSZdRwwudx+56gP1Qc78j4+QpPAX7qrzgI
         L6eA5tjul5OhWUr6A7v7Q6b5Ks/BnJhskkMx2wNKxtr2y6EBrpI46x5uW+AWE996tX3K
         pvCuFSO+CdhAkyp9pTgWkqiKzGez3FNrAyp2zreJVtL5vKRAJ0+P4m+xDmYRDtwulair
         txMJIUgFqGYBznKa5TfCDhx5aIKjUNurp85GRvRb/G8gEEF0jpZQONQM51M5nHw3z0/J
         20SQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=hvZkJ7cBcJ7/DC5PEDv8QLnJUHqmlmLu26EQ3pxbua8=;
        b=u2j3dTf5usBuXpIflf+tyG8WFDWoEQWzTbtnTq1jNfJ/OF6WA8bAfCbhLrXvtQhPp4
         4Sp1O9HKHdfWX0fWeoK1uAEPb+ndkTpQqRTzlLvZkqx8aabCVSpcyY888XB3nWsJWEIC
         xuobj8sHriZNRhP7Y6pC8PBOqpMrpjuXcQCdQiLkS9zUaxtnvVghUO7WIng11Wkdr48n
         ApFBDJcDfo6ZOri8nNA5CkfQPCoHdZbsBy/ax7w/cZJfSfCHZIKdiK3mrfgPb4Lysfzz
         0mOiY1WAuv+283BwaSMtdgFaUzDgto/CTsu2OeeVMH0fjBM/X7hWYcFCsOQ9EugzfvNK
         cLpQ==
X-Gm-Message-State: AOAM533t57hNAqlnuPiAhDVdbv0yWKmZv5yF1aMhfRPEEF19deBHB1De
	tdgIoMWup3H3nx+zVDQ2sM0=
X-Google-Smtp-Source: ABdhPJzNo4b+wDH5z5d9FujDBHBEJjoHSBD8qAgSdzIwDzBI+RJ7PJTkU0dCIYrYmlf31oT/oWyQ4Q==
X-Received: by 2002:a05:651c:10a8:: with SMTP id k8mr33379825ljn.196.1637949743724;
        Fri, 26 Nov 2021 10:02:23 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 16/25] m68k: Switch to new sys-off handler API
Date: Fri, 26 Nov 2021 21:00:52 +0300
Message-Id: <20211126180101.27818-17-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use
register_power_off_handler() that registers power-off handlers and
do_kernel_power_off() that invokes chained power-off handlers. Legacy
pm_power_off() will be removed once all drivers will be converted to
the new power-off API.

Normally arch code should adopt only the do_kernel_power_off() at first,
but m68k is a special case because it uses pm_power_off() "inside out",
i.e. pm_power_off() invokes machine_power_off() [in fact it does nothing],
while it's machine_power_off() that should invoke the pm_power_off(), and
thus, we can't convert platforms to the new API separately. There are only
two platforms changed here, so it's not a big deal.

Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/m68k/emu/natfeat.c         | 3 ++-
 arch/m68k/include/asm/machdep.h | 1 -
 arch/m68k/kernel/process.c      | 5 ++---
 arch/m68k/kernel/setup_mm.c     | 1 -
 arch/m68k/kernel/setup_no.c     | 1 -
 arch/m68k/mac/config.c          | 4 +++-
 6 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/arch/m68k/emu/natfeat.c b/arch/m68k/emu/natfeat.c
index 71b78ecee75c..b19dc00026d9 100644
--- a/arch/m68k/emu/natfeat.c
+++ b/arch/m68k/emu/natfeat.c
@@ -15,6 +15,7 @@
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/reboot.h>
 #include <linux/io.h>
 #include <asm/machdep.h>
 #include <asm/natfeat.h>
@@ -90,5 +91,5 @@ void __init nf_init(void)
 	pr_info("NatFeats found (%s, %lu.%lu)\n", buf, version >> 16,
 		version & 0xffff);
 
-	mach_power_off = nf_poweroff;
+	register_platform_power_off(nf_poweroff);
 }
diff --git a/arch/m68k/include/asm/machdep.h b/arch/m68k/include/asm/machdep.h
index 8fd80ef1b77e..8d8c3ee2069f 100644
--- a/arch/m68k/include/asm/machdep.h
+++ b/arch/m68k/include/asm/machdep.h
@@ -24,7 +24,6 @@ extern int (*mach_get_rtc_pll)(struct rtc_pll_info *);
 extern int (*mach_set_rtc_pll)(struct rtc_pll_info *);
 extern void (*mach_reset)( void );
 extern void (*mach_halt)( void );
-extern void (*mach_power_off)( void );
 extern unsigned long (*mach_hd_init) (unsigned long, unsigned long);
 extern void (*mach_hd_setup)(char *, int *);
 extern void (*mach_heartbeat) (int);
diff --git a/arch/m68k/kernel/process.c b/arch/m68k/kernel/process.c
index a6030dbaa089..e160a7c57bd3 100644
--- a/arch/m68k/kernel/process.c
+++ b/arch/m68k/kernel/process.c
@@ -67,12 +67,11 @@ void machine_halt(void)
 
 void machine_power_off(void)
 {
-	if (mach_power_off)
-		mach_power_off();
+	do_kernel_power_off();
 	for (;;);
 }
 
-void (*pm_power_off)(void) = machine_power_off;
+void (*pm_power_off)(void);
 EXPORT_SYMBOL(pm_power_off);
 
 void show_regs(struct pt_regs * regs)
diff --git a/arch/m68k/kernel/setup_mm.c b/arch/m68k/kernel/setup_mm.c
index 4b51bfd38e5f..50f4f120a4ff 100644
--- a/arch/m68k/kernel/setup_mm.c
+++ b/arch/m68k/kernel/setup_mm.c
@@ -98,7 +98,6 @@ EXPORT_SYMBOL(mach_get_rtc_pll);
 EXPORT_SYMBOL(mach_set_rtc_pll);
 void (*mach_reset)( void );
 void (*mach_halt)( void );
-void (*mach_power_off)( void );
 #ifdef CONFIG_HEARTBEAT
 void (*mach_heartbeat) (int);
 EXPORT_SYMBOL(mach_heartbeat);
diff --git a/arch/m68k/kernel/setup_no.c b/arch/m68k/kernel/setup_no.c
index 5e4104f07a44..00bf82258233 100644
--- a/arch/m68k/kernel/setup_no.c
+++ b/arch/m68k/kernel/setup_no.c
@@ -55,7 +55,6 @@ int (*mach_hwclk) (int, struct rtc_time*);
 /* machine dependent reboot functions */
 void (*mach_reset)(void);
 void (*mach_halt)(void);
-void (*mach_power_off)(void);
 
 #ifdef CONFIG_M68000
 #if defined(CONFIG_M68328)
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
index 5d16f9b47aa9..727320dedf08 100644
--- a/arch/m68k/mac/config.c
+++ b/arch/m68k/mac/config.c
@@ -12,6 +12,7 @@
 
 #include <linux/errno.h>
 #include <linux/module.h>
+#include <linux/reboot.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/tty.h>
@@ -139,7 +140,6 @@ void __init config_mac(void)
 	mach_hwclk = mac_hwclk;
 	mach_reset = mac_reset;
 	mach_halt = mac_poweroff;
-	mach_power_off = mac_poweroff;
 #if IS_ENABLED(CONFIG_INPUT_M68K_BEEP)
 	mach_beep = mac_mksound;
 #endif
@@ -159,6 +159,8 @@ void __init config_mac(void)
 
 	if (macintosh_config->ident == MAC_MODEL_IICI)
 		mach_l2_flush = via_l2_flush;
+
+	register_platform_power_off(mac_poweroff);
 }
 
 
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233359.404948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdD-0006bY-KI; Fri, 26 Nov 2021 18:07:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233359.404948; Fri, 26 Nov 2021 18:07:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdD-0006ZU-3T; Fri, 26 Nov 2021 18:07:31 +0000
Received: by outflank-mailman (input) for mailman id 233359;
 Fri, 26 Nov 2021 18:07:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYT-0004Lf-0E
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:37 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 095a6f44-4ee3-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:02:36 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id k2so20274726lji.4
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:36 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 095a6f44-4ee3-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=IgdEY3brdUGAcbkVUTuopyRaDKQjmT9IOiG4donLZPs=;
        b=ECvKbjjC4k6xmEeYZWrO/WEg/c+QJDXxCqak7r6iNridtANEKQLVROGm9rP6qAIv6t
         kh51GXz+yRDZEM2mBoH6ntP1ABqmER9Si49N45A/pCLP0XO9mi8xIypB/ToFA1oQJuOS
         wwbxHYGgL19rk+qHJWBPr1A9vfcQrQzuuliJ/L80ro/I2ILJf3zewwy4NwA9E940mf4r
         xEi2A9cjm4C0qVHvXqkGTSyz2UB0idug3/v+jtMboxI8IjYR2GgWZvitP1/XFtiscxqL
         u0mpHa7paJWDiLpKYE5GFeHDbFGuk4Q26nCGlavs8CCSfR7kpNZa0mPgE3msZdUROlp7
         j66w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=IgdEY3brdUGAcbkVUTuopyRaDKQjmT9IOiG4donLZPs=;
        b=VWFRmOsuVaKEKWSUjbGB4mcBfdpFZvp7HZNzgNKPnTLPTipOeqhEymTO6r6x6BEZew
         upcSmRqc/jXodibG8A1nJ5qlwMS6S3v9/fF0GoyfqOyLTIHMZVvjdAHhKBVQ2B4zAcLi
         AH4kRj9z1gEOY8lX/OMHU7C7mJ3MbkY4zfLdLK21k1m40LBbZ44iBvX3uzy6UrdY+BST
         Gaf40bXfl7pCL2jat9NkLQq5KYqqnxCCSNJffwJWUk5kXVB6OqDLroQNLeJXFCMtznUT
         rcpc60ap5X41nd8hcIihkS5dUZaIVZqFwwrYMeM5dPWJ5Ce2/tAxw1Q4Uc1TYoKnI096
         +q1A==
X-Gm-Message-State: AOAM530qBvuTSJsO6vJfyRve0fV03NJLy+RhjbNyY+zsqYsvTErFgKTZ
	MhJudamtY48h/DmbEvyiJHU=
X-Google-Smtp-Source: ABdhPJxeTR96OaFv43HaZCJZhHcnGI5BbEkrJ8CeEZK4iGXuaQDDFiKVrcMegRPebBnF+ysNB/sxoA==
X-Received: by 2002:a2e:8059:: with SMTP id p25mr32828659ljg.403.1637949755739;
        Fri, 26 Nov 2021 10:02:35 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 21/25] nds32: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:57 +0300
Message-Id: <20211126180101.27818-22-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/nds32/kernel/process.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/nds32/kernel/process.c b/arch/nds32/kernel/process.c
index 49fab9e39cbf..0936dcd7db1b 100644
--- a/arch/nds32/kernel/process.c
+++ b/arch/nds32/kernel/process.c
@@ -54,8 +54,7 @@ EXPORT_SYMBOL(machine_halt);
 
 void machine_power_off(void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 }
 
 EXPORT_SYMBOL(machine_power_off);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:07:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:07:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233361.404956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdE-0006tJ-Op; Fri, 26 Nov 2021 18:07:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233361.404956; Fri, 26 Nov 2021 18:07:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdE-0006qj-2L; Fri, 26 Nov 2021 18:07:32 +0000
Received: by outflank-mailman (input) for mailman id 233361;
 Fri, 26 Nov 2021 18:07:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYL-0004LT-Om
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:29 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 04fe2858-4ee3-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:29 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id y26so26024703lfa.11
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:29 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04fe2858-4ee3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=0HObz0L7jYC33/Dxy7x3kt14KoppaRcQ+sU+HcRStgU=;
        b=AZY07p3jVLTvHf+iy8yjRV4baO+SuWhRq3BxobIfzToTPQ495XsLui5sBRB4jmQbWd
         1EWJUKKg8+0UuZ29BUV4qNF0EZPwI/Cbi8vdgYwSFQvz4hNtuCLFJYSs+LPsm6DuzjvH
         65PLJGhO3XvoDdIr0zXkOLCUhIkdKBcFELfy9ChfqsWnYRJzPBssyb4LdQFOAaKHmqNg
         D36ZVSSFU0ETOwToL/Flb8SUj/WsJ3iD8Y97otUetf/DyVYBaLiwKoKohcxoU9Fr9rpX
         lLmjcwfKq6aMlYjVGNNTkKYnwNFeXefN9vJ2zSMn2axDRiiNM4lntTtQo1sdThJR1gBO
         Cjeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=0HObz0L7jYC33/Dxy7x3kt14KoppaRcQ+sU+HcRStgU=;
        b=iPISnhOLaXPnNM5oZEijF+F+Swb4I/C4cot6AclSeSK4nkDDwd9inTGNsadzzamzBH
         K5cotm/UiEC+4w3nvBbbKbZPjH58tQjAmVpHlsZdBToNEogMq3Wv25TpCwo6M6CgEEAQ
         IoVjqkBsLXUPI/QFxQg5p6oTSdyK4yBe52y3zkRWZLF2d4wpWdPAqoZKP+HO/akMv1uq
         p6upkqBtRs2pGboZXLBEk0cPR4QluUzlFvRyLb54jXFfzhSV0VzEO7EFfKgrL8zgKSmC
         fzn7rJne6pB/GmMzrCTxWzVMDXSPio8KOhM2vbED09EqaG5ka4SgZmUW/HLC9sdTgut+
         9r5g==
X-Gm-Message-State: AOAM533ezpCxhyrFTqE3AGBYfqA//Q0BHEG03IpkzG4ZVNrUFhqCTSLV
	Wo9Aq8vK0DCTHdhkI49oNb8=
X-Google-Smtp-Source: ABdhPJxi5fpLaCpBhED5s6ixp22NJMTiIoO6NxLxmwPmwMn3ysOYt28+DNzeJCc6JiOYkJbJb7zBhg==
X-Received: by 2002:a05:6512:70a:: with SMTP id b10mr30890432lfs.32.1637949748784;
        Fri, 26 Nov 2021 10:02:28 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 18/25] x86: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:54 +0300
Message-Id: <20211126180101.27818-19-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/x86/kernel/reboot.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 0a40df66a40d..cd7d9416d81a 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -747,10 +747,10 @@ static void native_machine_halt(void)
 
 static void native_machine_power_off(void)
 {
-	if (pm_power_off) {
+	if (kernel_can_power_off()) {
 		if (!reboot_force)
 			machine_shutdown();
-		pm_power_off();
+		do_kernel_power_off();
 	}
 	/* A fallback in case there is no PM info available */
 	tboot_shutdown(TB_SHUTDOWN_HALT);
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:08:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:08:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233388.404985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdt-0001Z9-Nd; Fri, 26 Nov 2021 18:08:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233388.404985; Fri, 26 Nov 2021 18:08:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfdt-0001Z2-KP; Fri, 26 Nov 2021 18:08:13 +0000
Received: by outflank-mailman (input) for mailman id 233388;
 Fri, 26 Nov 2021 18:08:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GGcH=QN=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mqfYK-0004LT-F0
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:02:28 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 04400f49-4ee3-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:02:27 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id t11so20240016ljh.6
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 10:02:27 -0800 (PST)
Received: from localhost.localdomain (94-29-48-99.dynamic.spd-mgts.ru.
 [94.29.48.99])
 by smtp.gmail.com with ESMTPSA id i32sm553831lfv.295.2021.11.26.10.02.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Nov 2021 10:02:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04400f49-4ee3-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=032w538UVpeATjNmIAIpxMVbSRQ+KkFSikcjH52Go7E=;
        b=eevKrPwZ8OfFF7dQWRFG4QtZgXf8H+FxBO4fdQv0J5dJKz+FcIsqrfLDqDJxWbQtzw
         Rannkbji9yIhh71t3alOhYeFsEEjXcmyLWuCaW9V7BsVA1f8lNz7tKjGdH7PirB3AKHB
         IL3flLkGtWTeZ8zHUH4p68dALDoMsRSunYqrHM5lkY+nPPnXI44WUInC8tt6QAMxGrW/
         VOHPLbNu1x6QmQMInswQkbNdy92fIZ+PVBjJ4MCbuGkJUycKlQXbLDzbJenn/bDFhWW4
         4EH32hyNFhAmOjxhV9Klszb0OlINW1pXNjwXREKtXPh4wreIy86PzwohGRSPMe1Rc/Sj
         2ATg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=032w538UVpeATjNmIAIpxMVbSRQ+KkFSikcjH52Go7E=;
        b=AdEzcluI8O9R2T57P1o7N6O8vZl5655zkavUQodzsuycoki4j7gZYNPZyjXlpVfDQB
         zzRI5onXNLwYZWeX+DvK0YQsWJqjK6oZmyZCi4v9H7VqxvIPtdf1U1Y91CtWw3jhPgk3
         SYIKxQPwkBVILEAn81qIEuvN7jvfrXgUETMK0yy3dr/u0RziF8WAncNsYX+JCUo8b2Cy
         Bin9VUyusyJ/l5K9V8V7YCT4SJdByT6FjE0Ijrfvir80Ox2pnrhA/esoKLGp1CZF1Q1s
         HH4sLFa+ixEGXhHebPA9o39df20Ag/Vc35ZDE+MsdwyAGazY71aGD+Iq8VuNrdCPrTtQ
         P5KA==
X-Gm-Message-State: AOAM531spJgXriO6ch4fkFzo9F0Zce7al5NkRuqa+L4+mLWS3maUW5xg
	zzqeaJpeqh6YHvAPWAvEzRk=
X-Google-Smtp-Source: ABdhPJxWnZpc53RxISntE8TurKfJq9RlVDiB9gU+CKj56xGgbHqq69VbvXkGBZeLXBBzq19pkH3Pew==
X-Received: by 2002:a2e:5c04:: with SMTP id q4mr33226839ljb.334.1637949746214;
        Fri, 26 Nov 2021 10:02:26 -0800 (PST)
From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: [PATCH v4 17/25] sh: Use do_kernel_power_off()
Date: Fri, 26 Nov 2021 21:00:53 +0300
Message-Id: <20211126180101.27818-18-digetx@gmail.com>
X-Mailer: git-send-email 2.33.1
In-Reply-To: <20211126180101.27818-1-digetx@gmail.com>
References: <20211126180101.27818-1-digetx@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kernel now supports chained power-off handlers. Use do_kernel_power_off()
that invokes chained power-off handlers. It also invokes legacy
pm_power_off() for now, which will be removed once all drivers will
be converted to the new power-off API.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/sh/kernel/reboot.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/sh/kernel/reboot.c b/arch/sh/kernel/reboot.c
index 5c33f036418b..e8eeedc9b182 100644
--- a/arch/sh/kernel/reboot.c
+++ b/arch/sh/kernel/reboot.c
@@ -46,8 +46,7 @@ static void native_machine_shutdown(void)
 
 static void native_machine_power_off(void)
 {
-	if (pm_power_off)
-		pm_power_off();
+	do_kernel_power_off();
 }
 
 static void native_machine_halt(void)
-- 
2.33.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:26:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:26:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233421.405005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfvO-0004LC-DO; Fri, 26 Nov 2021 18:26:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233421.405005; Fri, 26 Nov 2021 18:26:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfvO-0004L5-AB; Fri, 26 Nov 2021 18:26:18 +0000
Received: by outflank-mailman (input) for mailman id 233421;
 Fri, 26 Nov 2021 18:26:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oJOc=QN=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1mqfvN-0004Kz-HY
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:26:17 +0000
Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com
 [64.147.123.21]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5617ace9-4ee6-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 19:26:15 +0100 (CET)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailout.west.internal (Postfix) with ESMTP id 0F6F43201CAE;
 Fri, 26 Nov 2021 13:26:11 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute5.internal (MEProxy); Fri, 26 Nov 2021 13:26:12 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 26 Nov 2021 13:26:10 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5617ace9-4ee6-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to:x-me-proxy
	:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=ztJTPm
	cq0+uFyUQaQJxfPkFH/osFX4ZEqTLP+TwzvyI=; b=gdi0n1oDiuHFh+IGeKUqgg
	5sDC9QnM9046tpDs+UyE48WWCieFHmTRttU6WasAPprDlrWE/Y/IZvFDChMc7i0b
	l6rR4f0rzOdMKKWwA02NoaNTSJE3fFO0+PswKNeFyy1Xfzc5sAlE3xZCcTA6gN0b
	UMhUD5c6v/muQjaCETid/ewfjKRc/24KCzHv+reJp+xkvtponRencJ6sSW8DIjEE
	Y5e5sGyORECYSvHFX00nos2NAfHL5ylD2Wi9PFvwf2qDLRwGWLunREPsmx/T9YnU
	VhvGudhISx6ZgKA7we17s0ifAVPrEVL7eNOZGC7CrCO5d+2pnQ8/dklJhPCDDeVg
	==
X-ME-Sender: <xms:wyahYQjkR0foBKjZ3tb_8GLbn0J3ch_tm2e6-FzN91abSk96u3pMeA>
    <xme:wyahYZBj0V_1kJ2PrJvK8HYWnuKWig_4Zd2RVU5mdGbbdkt8pgxCGiMcDgfJK8Q-p
    I-Zzi-S2ienOA>
X-ME-Received: <xmr:wyahYYEcu4tsb8NcOF-PwgajvG9by6T9t_wxX35Bbt28Hhl5hEigyegEq8fAT1QndSy647XuZF69vQg-y2Z2LkmSEHnayypQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrhedvgdduuddtucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepfffhvffukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeetveff
    iefghfekhffggeeffffhgeevieektedthfehveeiheeiiedtudegfeetffenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:wyahYRR1FgRtcl2tSCBKkvPYelhE1z76ijQQ5o-jPmH1Bk2-I_EcHQ>
    <xmx:wyahYdyVc20H3Jw6LC13-mzyYzT4QKXgAaRnJKiTmdgup3PRzu74gw>
    <xmx:wyahYf4SkeL-220agRAaPUhM9ZOcDw2CGAp0MpcnzptLYGmI912IFQ>
    <xmx:wyahYY8Cke_C37JMucJj5c70SVPKiVvnJHHxjutqyYWMQiS-GQ5o4w>
Date: Fri, 26 Nov 2021 19:26:07 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Jan Beulich <JBeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: Re: [PATCH 59.5/65] x86: Introduce helpers/checks for endbr64
 instructions
Message-ID: <YaEmv7C4JJtJYe7i@mail-itl>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126163340.26714-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="FwXODrAYaQ1x/RWb"
Content-Disposition: inline
In-Reply-To: <20211126163340.26714-1-andrew.cooper3@citrix.com>


--FwXODrAYaQ1x/RWb
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 26 Nov 2021 19:26:07 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Jan Beulich <JBeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: Re: [PATCH 59.5/65] x86: Introduce helpers/checks for endbr64
 instructions

On Fri, Nov 26, 2021 at 04:33:40PM +0000, Andrew Cooper wrote:
> ... to prevent the optimiser creating unsafe code.  See the code comment =
for
> full details.
>=20
> Also add a build time check for endbr64 embedded in imm32 operands, which
> catches the obvious cases where the optimiser has done an unsafe thing.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
> ---
>  xen/arch/x86/Makefile       |  4 ++++
>  xen/include/asm-x86/endbr.h | 55 +++++++++++++++++++++++++++++++++++++++=
++++++
>  2 files changed, 59 insertions(+)
>  create mode 100644 xen/include/asm-x86/endbr.h
>=20
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 69b6cfaded25..64a5c0d20018 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -190,6 +190,10 @@ $(TARGET)-syms: prelink.o xen.lds
>  	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y=3D $(@D)/.$(@F).1.o
>  	$(LD) $(XEN_LDFLAGS) -T xen.lds -N prelink.o $(build_id_linker) \
>  	    $(@D)/.$(@F).1.o -o $@
> +ifeq ($(CONFIG_XEN_IBT),y)
> +	$(OBJDUMP) -d $@ | grep 0xfa1e0ff3 >/dev/null && \
> +		{ echo "Found embedded endbr64 instructions" >&2; false; } || :
> +endif

Some more robust check can be done this way (warning, PoC quality bash):

    objcopy -j .text xen-syms xen-syms.text
    offset=3D$(objdump -h xen-syms -j .text | tail -2|head -1|awk '{printf =
"%x\n", (strtonum("0x" $4) - strtonum("0x" $6))}')
    objdump --adjust-vma=3D-0x$offset -d xen-syms.text|grep endbr | cut -f =
1 -d ':' | tr -d ' ' > valid-addrs
    grep -aob $'\xf3\x0f\x1e\xfa' xen-syms.text|cut -f 1 -d :|xargs printf =
'%x\n' > all-addrs
    join -v 2 <(sort valid-addrs) <(sort all-addrs) | awk '{ printf "%x\n",=
 0x'$offset' + strtonum("0x" $1)}' | addr2line -e xen-syms

Currently it finds just one match:
xen/arch/x86/alternative.c:145

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--FwXODrAYaQ1x/RWb
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmGhJr4ACgkQ24/THMrX
1yxA5wgAjXqRUQdO0qVs33pPUFbGFEvWsreJBdrs68MHMQqs1V9bkGfGhDtIn88G
Pg5RdVvOhlurkJaplJMkOyNNCCtQfM+mHdvtceZ/jY+JTOD+8p+m+GiKWFPrZgo1
c0IHoUhwrokdKmWIQZQjDZfCNTwAdr75IkLjWvu/bMWAwyIvYry6FVY+tledGcwM
+4dadCaADeuAO7248pSpj+cG8VoWzo9RHr9bNZVHBaEnDWGhjA4g46pE0KMInn1k
xP1/U2dytIXAS5LNc7N0mQmNMEmQ4MmftFCUeR4k5udMEryEkc2KbCDPbJ3t8U/H
L/7Kk8l387NySB1AG+HswJH+aRQTDg==
=2gCS
-----END PGP SIGNATURE-----

--FwXODrAYaQ1x/RWb--


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:29:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:29:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233425.405015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfya-00050R-T7; Fri, 26 Nov 2021 18:29:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233425.405015; Fri, 26 Nov 2021 18:29:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqfya-00050K-QE; Fri, 26 Nov 2021 18:29:36 +0000
Received: by outflank-mailman (input) for mailman id 233425;
 Fri, 26 Nov 2021 18:29:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3jyU=QN=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqfyZ-00050E-Lr
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:29:35 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd757919-4ee6-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:29:34 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:33990)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqfyT-000vFm-9Y (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 26 Nov 2021 18:29:29 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id B605F1FBF1;
 Fri, 26 Nov 2021 18:29:29 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd757919-4ee6-11ec-a9d2-d9f7a1cc8784
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <3956f47c-307c-1ebb-bada-9168f0a5ba9a@srcf.net>
Date: Fri, 26 Nov 2021 18:29:29 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Subject: Re: [PATCH 59.5/65] x86: Introduce helpers/checks for endbr64
 instructions
Content-Language: en-GB
To: =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126163340.26714-1-andrew.cooper3@citrix.com>
 <YaEmv7C4JJtJYe7i@mail-itl>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <YaEmv7C4JJtJYe7i@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/11/2021 18:26, Marek Marczykowski-Górecki wrote:
> On Fri, Nov 26, 2021 at 04:33:40PM +0000, Andrew Cooper wrote:
>> ... to prevent the optimiser creating unsafe code.  See the code comment for
>> full details.
>>
>> Also add a build time check for endbr64 embedded in imm32 operands, which
>> catches the obvious cases where the optimiser has done an unsafe thing.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Wei Liu <wl@xen.org>
>> ---
>>  xen/arch/x86/Makefile       |  4 ++++
>>  xen/include/asm-x86/endbr.h | 55 +++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 59 insertions(+)
>>  create mode 100644 xen/include/asm-x86/endbr.h
>>
>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
>> index 69b6cfaded25..64a5c0d20018 100644
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -190,6 +190,10 @@ $(TARGET)-syms: prelink.o xen.lds
>>  	$(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).1.o
>>  	$(LD) $(XEN_LDFLAGS) -T xen.lds -N prelink.o $(build_id_linker) \
>>  	    $(@D)/.$(@F).1.o -o $@
>> +ifeq ($(CONFIG_XEN_IBT),y)
>> +	$(OBJDUMP) -d $@ | grep 0xfa1e0ff3 >/dev/null && \
>> +		{ echo "Found embedded endbr64 instructions" >&2; false; } || :
>> +endif
> Some more robust check can be done this way (warning, PoC quality bash):
>
>     objcopy -j .text xen-syms xen-syms.text
>     offset=$(objdump -h xen-syms -j .text | tail -2|head -1|awk '{printf "%x\n", (strtonum("0x" $4) - strtonum("0x" $6))}')
>     objdump --adjust-vma=-0x$offset -d xen-syms.text|grep endbr | cut -f 1 -d ':' | tr -d ' ' > valid-addrs
>     grep -aob $'\xf3\x0f\x1e\xfa' xen-syms.text|cut -f 1 -d :|xargs printf '%x\n' > all-addrs
>     join -v 2 <(sort valid-addrs) <(sort all-addrs) | awk '{ printf "%x\n", 0x'$offset' + strtonum("0x" $1)}' | addr2line -e xen-syms
>
> Currently it finds just one match:
> xen/arch/x86/alternative.c:145

To be clear, this one match is on the xen-cet-ibt v1.1 branch, which
also includes the next task (runtime clobbering of unused ENDBR
instructions) which I'm currently cleaning up to post.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 18:35:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 18:35:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233431.405027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqg4B-0006Nr-K8; Fri, 26 Nov 2021 18:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233431.405027; Fri, 26 Nov 2021 18:35:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqg4B-0006Nk-Fc; Fri, 26 Nov 2021 18:35:23 +0000
Received: by outflank-mailman (input) for mailman id 233431;
 Fri, 26 Nov 2021 18:35:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9kjA=QN=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1mqg49-0006Ne-Kx
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 18:35:21 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9abb79ed-4ee7-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 19:35:20 +0100 (CET)
Received: from mail.kernel.org (unknown [198.145.29.99])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by dfw.source.kernel.org (Postfix) with ESMTPS id 45EBF6233D;
 Fri, 26 Nov 2021 18:35:16 +0000 (UTC)
Received: by mail.kernel.org (Postfix) with ESMTPS id C1F0A60230;
 Fri, 26 Nov 2021 18:35:15 +0000 (UTC)
Received: from pdx-korg-docbuild-2.ci.codeaurora.org (localhost.localdomain
 [127.0.0.1])
 by pdx-korg-docbuild-2.ci.codeaurora.org (Postfix) with ESMTP id BBE6960A3E;
 Fri, 26 Nov 2021 18:35:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9abb79ed-4ee7-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1637951715;
	bh=9S/92vgY1r+ITMC3wc1Z8mWpA9O4M0yTo3ncFbJ/wyU=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=B/IuEsi38PlymMXljcjHTXWD7aAWWMx7K2TQVXR0pJ7kOrk6HCzRAjEF51qxEfoVA
	 vLhCdI4NkfwiCosz12hjc3ojV3dsat055nBiIAnkMCANZakDPPsSdMCj5BP2OASBJC
	 d6t2sCGb1z2m1RcpXtJMEmXMVoRtDZfUVImmUhqS9E0ZvNjLq3hKafkXbvVG/NXj7p
	 Ea5hTClRObTywggW+Bv4FlllcsiFwQdW89NNQlt6uHeWjOFvCgKMK4njGBfs/6SOBg
	 tC4K/189QCv+FOohW4+2JNb2aANg1SLkDdi1O+ip24KKoJFbGvJhWhYH123/LppKEB
	 dgqQQ3LTx2zJQ==
Subject: Re: [GIT PULL] xen: branch for v5.16-rc3
From: pr-tracker-bot@kernel.org
In-Reply-To: <20211126153152.380-1-jgross@suse.com>
References: <20211126153152.380-1-jgross@suse.com>
X-PR-Tracked-List-Id: <linux-kernel.vger.kernel.org>
X-PR-Tracked-Message-Id: <20211126153152.380-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-5.16c-rc3-tag
X-PR-Tracked-Commit-Id: 00db58cf21188f4b99bc5f15fcc2995e30e4a9fe
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: 6b54698aec0b59943f7e8a88151bdf208de990d0
Message-Id: <163795171576.22939.2366989648980472963.pr-tracker-bot@kernel.org>
Date: Fri, 26 Nov 2021 18:35:15 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com

The pull request you sent on Fri, 26 Nov 2021 16:31:52 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-5.16c-rc3-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/6b54698aec0b59943f7e8a88151bdf208de990d0

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 19:17:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 19:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233447.405055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqgiy-0002DL-0H; Fri, 26 Nov 2021 19:17:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233447.405055; Fri, 26 Nov 2021 19:17:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqgix-0002DE-TI; Fri, 26 Nov 2021 19:17:31 +0000
Received: by outflank-mailman (input) for mailman id 233447;
 Fri, 26 Nov 2021 19:17:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqgix-0002D8-51
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 19:17:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqgix-0006gD-3P
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 19:17:31 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <iwj@xenproject.org>) id 1mqgix-0006tE-2O
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 19:17:31 +0000
Received: from iwj by mariner.uk.xensource.com with local (Exim 4.89)
 (envelope-from <iwj@xenproject.org>) id 1mqgiu-0003if-T2
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 19:17:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=References:In-Reply-To:Subject:To:Date:
	Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:From;
	bh=q9gVPBkUnoJePWp10nNq8pZXCRX7DVJi8oCZ7SMct2w=; b=09KvZWMQJGJBwCSLQ5RBmXcE3Y
	5XN2Lb2asOKLLdLE8V3QxuJU24iSIF9fp68E576vYb4ICwss0WqTq6Wj7B4XlhhRdrQ4eQGnJxWYW
	03cIk3FC2cEjb2xIbgzfFOinfsOv8DFYBYH3es8oVa6/g/yEfEToXQ+v1yGheCwRLpMs=;
From: Ian Jackson <iwj@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <24993.13000.254192.278702@mariner.uk.xensource.com>
Date: Fri, 26 Nov 2021 19:17:28 +0000
To: xen-devel@lists.xenproject.org
Subject: Re: [xen-unstable test] 166378: regressions - FAIL
In-Reply-To: <osstest-166378-mainreport@xen.org>
References: <osstest-166378-mainreport@xen.org>
X-Mailer: VM 8.2.0b under 24.5.1 (i686-pc-linux-gnu)

osstest service owner writes ("[xen-unstable test] 166378: regressions - FAIL"):
> flight 166378 xen-unstable real [real]
> http://logs.test-lab.xenproject.org/osstest/logs/166378/
> 
> Regressions :-(
> 
> Tests which did not succeed and are blocking,
> including tests which could not be run:
>  build-amd64-prev              6 xen-build                fail REGR. vs. 166304

git submodules.  Horror.

Cloning into '/home/osstest/build.166378.build-amd64-prev/xen/tools/firmware/ovmf-dir-remote/UnitTestFrameworkPkg/Library/CmockaLib/cmocka'...
fatal: remote error: git-cache-proxy: git remote died with error exit code 1 // Fetching origin // fatal: unable to access 'https://git.cryptomilk.org/projects/cmocka.git/': Failed to connect to git.cryptomilk.org port 443: Connection refused // error: Could not fetch origin
fatal: clone of 'https://git.cryptomilk.org/projects/cmocka.git' into submodule path '/home/osstest/build.166378.build-amd64-prev/xen/tools/firmware/ovmf-dir-remote/UnitTestFrameworkPkg/Library/CmockaLib/cmocka' failed
Failed to clone 'UnitTestFrameworkPkg/Library/CmockaLib/cmocka'. Retry scheduled
Cloning into '/home/osstest/build.166378.build-amd64-prev/xen/tools/firmware/ovmf-dir-remote/UnitTestFrameworkPkg/Library/CmockaLib/cmocka'...
fatal: remote error: git-cache-proxy: git remote died with error exit code 1 // Fetching origin // fatal: unable to access 'https://git.cryptomilk.org/projects/cmocka.git/': Failed to connect to git.cryptomilk.org port 443: Connection refused // error: Could not fetch origin
fatal: clone of 'https://git.cryptomilk.org/projects/cmocka.git' into submodule path '/home/osstest/build.166378.build-amd64-prev/xen/tools/firmware/ovmf-dir-remote/UnitTestFrameworkPkg/Library/CmockaLib/cmocka' failed
Failed to clone 'UnitTestFrameworkPkg/Library/CmockaLib/cmocka' a second time, aborting

>  test-amd64-amd64-xl-pvshim   20 guest-localmigrate/x10   fail REGR. vs. 166304

ssh to guest took >10s.

Ian.


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 19:27:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 19:27:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233455.405072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqgsU-0003lF-3g; Fri, 26 Nov 2021 19:27:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233455.405072; Fri, 26 Nov 2021 19:27:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqgsU-0003l8-0l; Fri, 26 Nov 2021 19:27:22 +0000
Received: by outflank-mailman (input) for mailman id 233455;
 Fri, 26 Nov 2021 19:27:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqgsT-0003ky-2C; Fri, 26 Nov 2021 19:27:21 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqgsS-0006q6-Ts; Fri, 26 Nov 2021 19:27:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqgsS-0002oA-LK; Fri, 26 Nov 2021 19:27:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqgsS-0006t0-Ko; Fri, 26 Nov 2021 19:27:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ajegH+r3inQ8cD/iouQKDFVoejCXTfebUW+Kw770U6o=; b=Bf55aeY+xi0HR2uJLSW3UJqeA/
	pQfvZpyBKXXIml7EC8bW9J0K+9AseW6KKYVX/a510++eNouXb+m2Fx+b7fe7yOieYD4yva+WjtZkb
	3KK94u/OR2IPBye3Ub1pLY92S8B21hvRSGLDkACkvx+qipB7nmdnCEEUtQIEmMocKSrU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166380-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166380: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5f53fa508db098c9d372423a6dac31c8a5679cdf
X-Osstest-Versions-That:
    linux=136057256686de39cc3a07c2e39ef6bc43003ff6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Nov 2021 19:27:20 +0000

flight 166380 linux-linus real [real]
flight 166914 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166380/
http://logs.test-lab.xenproject.org/osstest/logs/166914/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166914-retest

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds    18 guest-start/debian.repeat fail REGR. vs. 166266

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166266
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166266
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166266
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166266
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166266
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166266
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166266
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166266
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                5f53fa508db098c9d372423a6dac31c8a5679cdf
baseline version:
 linux                136057256686de39cc3a07c2e39ef6bc43003ff6

Last test of basis   166266  2021-11-22 06:26:56 Z    4 days
Failing since        166328  2021-11-23 22:12:35 Z    2 days    2 attempts
Testing same since   166380  2021-11-25 06:37:51 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  Arnd Bergmann <arnd@arndb.de>
  Bard Liao <yung-chuan.liao@linux.intel.com>
  Brent Roman <brent@mbari.org>
  Charles Keepax <ckeepax@opensource.cirrus.com>
  ChiYuan Huang <cy_huang@richtek.com>
  Claudia Pellegrino <linux@cpellegrino.de>
  Dan Carpenter <dan.carpenter@oracle.com>
  David Rhodes <drhodes@opensource.cirrus.com>
  Derek Fang <derek.fang@realtek.com>
  Germain Hebert <germain.hebert@ca.abb.com>
  Gongjun Song <gongjun.song@intel.com>
  Hans de Goede <hdegoede@redhat.com>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  Helge Deller <deller@gmx.de>
  Jack Yu <jack.yu@realtek.com>
  Jason Gerecke <jason.gerecke@wacom.com>
  Jason Gerecke <killertofu@gmail.com>
  Jiri Kosina <jkosina@suse.cz>
  Jiri Olsa <jolsa@kernel.org>
  Jiri Olsa <jolsa@redhat.com>
  John David Anglin <dave.anglin@bell.net>
  John Stultz <john.stultz@linaro.org>
  Joshua Dickens <joshua.dickens@wacom.com>
  José Expósito <jose.exposito89@gmail.com>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
  Libin Yang <libin.yang@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Mark Brown <broonie@kernel.org>
  Martin Kepplinger <martin.kepplinger@puri.sm>
  Masami Hiramatsu <mhiramat@kernel.org>
  Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Michael Zaidman <michael.zaidman@gmail.com>
  Nadav Amit <namit@vmware.com>
  Olivier Moysan <olivier.moysan@foss.st.com>
  Ondrej Mosnacek <omosnace@redhat.com>
  Ondrej Zary <linux@zary.sk>
  Paul Moore <paul@paul-moore.com>
  Peter Ujfalusi <peter.ujfalusi@gmail.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Simon Trimmer <simont@opensource.cirrus.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  Steven Rostedt (VMware) <rostedt@goodmis.org>
  Takashi Iwai <tiwai@suse.de>
  Thomas Weißschuh <linux@weissschuh.net>
  Trevor Davenport <trevor.davenport@gmail.com>
  Vihas Mak <makvihas@gmail.com>
  Vinícius Angiolucci Reis <angiolucci@gmail.com>
  Werner Sembach <wse@tuxedocomputers.com>
  Wolfram Sang <wsa+renesas@sang-engineering.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   136057256686..5f53fa508db0  5f53fa508db098c9d372423a6dac31c8a5679cdf -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 21:23:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233493.405144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqigm-00072I-DB; Fri, 26 Nov 2021 21:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233493.405144; Fri, 26 Nov 2021 21:23:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqigm-00072A-7J; Fri, 26 Nov 2021 21:23:24 +0000
Received: by outflank-mailman (input) for mailman id 233493;
 Fri, 26 Nov 2021 21:23:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqigl-0006mN-3W
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 21:23:23 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1306db17-4eff-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 22:23:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1306db17-4eff-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637961800;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Fdg/mal0fwHNsO6+Dyz+0vovVFgRt44ymW0H5zE+iIs=;
  b=QuQlqk2WusQo5uS57szMu5NjwWlzPNxstFBX+A8KktZZzNKr5TyWm+4r
   buCqNh7sR/dAddBcS+eRRl/D+IzHBvjgupDp2zWzZXzhXGqd0suJrQqTU
   1wZTEyP8Tq09PkR2wOrAmx7S0L+HxCtkEFSWBf/IDUvGalC9ZYnk/6Hz9
   k=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: h1/aWimN67MANX8dI/ny8Aq8OE3NPwEhMzhRBnH8T2lpV2H6T67q25lTY7JgTxJukl2zU43JbD
 r1Xs1Ujjig8wHLDz8tN0YdkR1jWIPFKsfyaGCVQGlCmM4Ac8TYISx7Tq+xNv/baldYkrMBfemg
 z1k3TPd1T6LP5CIinhkmnMAiyELaDs6o7MOHk9K6g6dlnJvOjseZzaThX5nX/jnGkHwIJX7L6h
 OfYjTxfD+tN8UFBQVqDisI8+PcbNTeMuFITVYRqj746JGBEJsXS8ebXkowYYQ/+1gfQKzqKs2T
 2/SJU9suGVcH4zsNKw9Eln4I
X-SBRS: 5.1
X-MesageID: 58700057
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:vjjqAalRGt7TdZlAd14Y66ro5gxMIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIXC2+HPauCY2HxLtx3Pd6zpEsF6sLcytFmTAE/r3ozQiMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q22YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 Pppq76zGBgLBZCPquZMDxMAOGZnerITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQKaBP
 5JBNGUHgBLoYUF+Z1cSEZkFzeap3jr2fCcDqk+Iqv9ii4TU5FMoi+W8WDbPQfSVQe1Fk0Deo
 XjJl0zbKBwHMN2UyRKe72mhwOTImEvTSI8UUbG16PNuqFmS3XAITg0bU0Ohpvu0gVL4XMhQQ
 3H44QJ38/J0rhbyCICgAVvo+xZooyLwRfJ/N/MY61CS6JHpoDSbVzQOFhUGcZs54ZpeqSMR6
 neFmNbgBDpKubKTSG6A+rr8kQ5eKRT5PkdZO3ZaEFJtD83L5dhq00mRFooL/Lud14WtQVnNL
 ya2QD/Sbln5peoCzO2F8F/OmFpATbCZH1dutm07so9Ihz6VhbJJhaT0uTA3Dt4ade51q2VtW
 lBew6ByC8hUUPmweNSlGrllIV1Qz6/t3MfgqVBuBYI90D+m5mSue4tdiBknehw2Y5tdJGSzO
 hGM0e+02HO1FCHxBUOQS9jsY/nGMIC6TYi1PhwqRoYmjmdNmP+vo3g1OB/4M5HFm0kwi6AvU
 ap3gu73ZUv2/Z9PlWLsL89EiOdD7nlnmQv7GMCqpzz6gOH2TCPEFt843K6mM7lRAFWs+16Or
 b6y9qKiln1ibQEJSnWNrNNIcwlVdSNT6FKfg5U/S9Nv6zFOQAkJY8I9C5t4E2C8t6gKxOrO4
 F+nXUpUlAj2iXHdcF3YYXF/crL/G514qCtjbyArOF+p3VklYJqus/hDJ8dmI+F/+bwx1+NwQ
 tkEZ96EXqZFRAPY9mlPdpL6toFjKkim3FrcIyq/bTEjVJd8XAiVqMT8dw7i+XBWXCq6vMczu
 ZO60QbfTcZRTghuFp+OOvmu00mwrT4Wn+crBxnEJdxaeUPN9ol2KnOu0q9rcp9UcRian2mUz
 QebBxsctNLhmY5t/Ymbn72AoqeoD/B6QhhQEV7E4OvkLiLd5Gein9NNCb7aYTDHWWro06y+f
 uEJnerkOfgKkVsW4YpxF7FnkfA369f1/uIIyw1lGDPAbkixC6MmKX6DhJEduqpIz75fmA23R
 kPQpYUKZeTXYJvoQAwLOQ4oTuWfzvVFyDDd4MM8LFj++CIqrqGMVl9fPkXUhSFQRFev3FjJH
 Qv1VBYq1jGC
IronPort-HdrOrdr: A9a23:h40MzaBo4u9YGi7lHemi55DYdb4zR+YMi2TDtnocdfUxSKelfq
 +V88jzuSWbtN9yYhEdcKG7WZVoKEm0nfQZ3WB7B8bAYOCJghrMEKhSqafk3j38C2nf24dmpM
 NdmnFFeb/NMWQ=
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58700057"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 4/4] x86/ucode: Use altcall, and __initdata_cf_clobber
Date: Fri, 26 Nov 2021 21:22:58 +0000
Message-ID: <20211126212258.7550-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126212258.7550-1-andrew.cooper3@citrix.com>
References: <20211126212258.7550-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Microcode loading is not a fastpath, but there are control flow security
benefits from using altcall()'s hardening side effect.

Convert the existing microcode_ops pointer into a __read_mostly structure, and
move {amd,intel}_ucode_ops into __initdata_cf_clobber.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/cpu/microcode/amd.c     |  2 +-
 xen/arch/x86/cpu/microcode/core.c    | 38 +++++++++++++++++++-----------------
 xen/arch/x86/cpu/microcode/intel.c   |  2 +-
 xen/arch/x86/cpu/microcode/private.h |  2 +-
 4 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 0afa2192bf1d..27c8644ab8ba 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -422,7 +422,7 @@ static struct microcode_patch *cf_check cpu_request_microcode(
     return patch;
 }
 
-const struct microcode_ops amd_ucode_ops = {
+struct microcode_ops __initdata_cf_clobber amd_ucode_ops = {
     .cpu_request_microcode            = cpu_request_microcode,
     .collect_cpu_info                 = collect_cpu_info,
     .apply_microcode                  = apply_microcode,
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index f84dafa82693..755f2dc9a1e5 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -21,6 +21,7 @@
  * 2 of the License, or (at your option) any later version.
  */
 
+#include <xen/alternative-call.h>
 #include <xen/cpu.h>
 #include <xen/earlycpio.h>
 #include <xen/err.h>
@@ -214,7 +215,7 @@ void __init microcode_grab_module(
         microcode_scan_module(module_map, mbi);
 }
 
-static const struct microcode_ops __read_mostly *microcode_ops;
+static struct microcode_ops __read_mostly ucode_ops;
 
 static DEFINE_SPINLOCK(microcode_mutex);
 
@@ -241,9 +242,9 @@ static const struct microcode_patch *nmi_patch = ZERO_BLOCK_PTR;
  */
 static struct microcode_patch *parse_blob(const char *buf, size_t len)
 {
-    microcode_ops->collect_cpu_info();
+    alternative_vcall(ucode_ops.collect_cpu_info);
 
-    return microcode_ops->cpu_request_microcode(buf, len);
+    return alternative_call(ucode_ops.cpu_request_microcode, buf, len);
 }
 
 static void microcode_free_patch(struct microcode_patch *patch)
@@ -258,8 +259,8 @@ static bool microcode_update_cache(struct microcode_patch *patch)
 
     if ( !microcode_cache )
         microcode_cache = patch;
-    else if ( microcode_ops->compare_patch(patch,
-                                           microcode_cache) == NEW_UCODE )
+    else if ( alternative_call(ucode_ops.compare_patch,
+                               patch, microcode_cache) == NEW_UCODE )
     {
         microcode_free_patch(microcode_cache);
         microcode_cache = patch;
@@ -311,14 +312,14 @@ static int microcode_update_cpu(const struct microcode_patch *patch)
 {
     int err;
 
-    microcode_ops->collect_cpu_info();
+    alternative_vcall(ucode_ops.collect_cpu_info);
 
     spin_lock(&microcode_mutex);
     if ( patch )
-        err = microcode_ops->apply_microcode(patch);
+        err = alternative_call(ucode_ops.apply_microcode, patch);
     else if ( microcode_cache )
     {
-        err = microcode_ops->apply_microcode(microcode_cache);
+        err = alternative_call(ucode_ops.apply_microcode, microcode_cache);
         if ( err == -EIO )
         {
             microcode_free_patch(microcode_cache);
@@ -368,7 +369,7 @@ static int primary_thread_work(const struct microcode_patch *patch)
     if ( !wait_for_state(LOADING_ENTER) )
         return -EBUSY;
 
-    ret = microcode_ops->apply_microcode(patch);
+    ret = alternative_call(ucode_ops.apply_microcode, patch);
     if ( !ret )
         atomic_inc(&cpu_updated);
     atomic_inc(&cpu_out);
@@ -481,7 +482,7 @@ static int control_thread_fn(const struct microcode_patch *patch)
     }
 
     /* Control thread loads ucode first while others are in NMI handler. */
-    ret = microcode_ops->apply_microcode(patch);
+    ret = alternative_call(ucode_ops.apply_microcode, patch);
     if ( !ret )
         atomic_inc(&cpu_updated);
     atomic_inc(&cpu_out);
@@ -610,7 +611,8 @@ static long cf_check microcode_update_helper(void *data)
      */
     spin_lock(&microcode_mutex);
     if ( microcode_cache &&
-         microcode_ops->compare_patch(patch, microcode_cache) != NEW_UCODE )
+         alternative_call(ucode_ops.compare_patch,
+                          patch, microcode_cache) != NEW_UCODE )
     {
         spin_unlock(&microcode_mutex);
         printk(XENLOG_WARNING "microcode: couldn't find any newer revision "
@@ -678,7 +680,7 @@ int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
     if ( len != (uint32_t)len )
         return -E2BIG;
 
-    if ( microcode_ops == NULL )
+    if ( !ucode_ops.apply_microcode )
         return -EINVAL;
 
     buffer = xmalloc_flex_struct(struct ucode_buf, buffer, len);
@@ -722,10 +724,10 @@ __initcall(microcode_init);
 /* Load a cached update to current cpu */
 int microcode_update_one(void)
 {
-    if ( !microcode_ops )
+    if ( !ucode_ops.apply_microcode )
         return -EOPNOTSUPP;
 
-    microcode_ops->collect_cpu_info();
+    alternative_vcall(ucode_ops.collect_cpu_info);
 
     return microcode_update_cpu(NULL);
 }
@@ -780,22 +782,22 @@ int __init early_microcode_init(void)
     {
     case X86_VENDOR_AMD:
         if ( c->x86 >= 0x10 )
-            microcode_ops = &amd_ucode_ops;
+            ucode_ops = amd_ucode_ops;
         break;
 
     case X86_VENDOR_INTEL:
         if ( c->x86 >= 6 )
-            microcode_ops = &intel_ucode_ops;
+            ucode_ops = intel_ucode_ops;
         break;
     }
 
-    if ( !microcode_ops )
+    if ( !ucode_ops.apply_microcode )
     {
         printk(XENLOG_WARNING "Microcode loading not available\n");
         return -ENODEV;
     }
 
-    microcode_ops->collect_cpu_info();
+    alternative_vcall(ucode_ops.collect_cpu_info);
 
     if ( ucode_mod.mod_end || ucode_blob.size )
         rc = early_microcode_update_cpu();
diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c
index d3864b5ab03e..89e91f7fd06b 100644
--- a/xen/arch/x86/cpu/microcode/intel.c
+++ b/xen/arch/x86/cpu/microcode/intel.c
@@ -376,7 +376,7 @@ static struct microcode_patch *cf_check cpu_request_microcode(
     return patch;
 }
 
-const struct microcode_ops intel_ucode_ops = {
+struct microcode_ops __initdata_cf_clobber intel_ucode_ops = {
     .cpu_request_microcode            = cpu_request_microcode,
     .collect_cpu_info                 = collect_cpu_info,
     .apply_microcode                  = apply_microcode,
diff --git a/xen/arch/x86/cpu/microcode/private.h b/xen/arch/x86/cpu/microcode/private.h
index c085a1026847..4ee92a8fbaad 100644
--- a/xen/arch/x86/cpu/microcode/private.h
+++ b/xen/arch/x86/cpu/microcode/private.h
@@ -53,6 +53,6 @@ struct microcode_ops {
         const struct microcode_patch *new, const struct microcode_patch *old);
 };
 
-extern const struct microcode_ops amd_ucode_ops, intel_ucode_ops;
+extern struct microcode_ops amd_ucode_ops, intel_ucode_ops;
 
 #endif /* ASM_X86_MICROCODE_PRIVATE_H */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 21:23:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233495.405165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqigo-0007ZO-V3; Fri, 26 Nov 2021 21:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233495.405165; Fri, 26 Nov 2021 21:23:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqigo-0007YL-R8; Fri, 26 Nov 2021 21:23:26 +0000
Received: by outflank-mailman (input) for mailman id 233495;
 Fri, 26 Nov 2021 21:23:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqigm-00072N-Lo
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 21:23:24 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 151e8664-4eff-11ec-a9d2-d9f7a1cc8784;
 Fri, 26 Nov 2021 22:23:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 151e8664-4eff-11ec-a9d2-d9f7a1cc8784
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637961803;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=TxAJc2n5PichyDyTiJejXWJBeWozzwZwjnnnvWmbitg=;
  b=UvsiO30K7HZMrHMaI1Uear0VAHI09ThoO88IPK0nMiX/KM+vjROmrEgk
   sMbOoTCjf3sKV7V5UhVjn1VmkWTEYL/V9m+2ZCX5rPxTRR3f0a2lU44jJ
   5nJiJ/jkG84Qp3g+o/VTrh2ysN1PRIfG3AZuHFvwQSSPJ/+DIuTSRLY66
   s=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 5f1fTgV3jtzARWkmShZjdlhoOKf4lvyJweJmWy4u7qpfnvwb0QMoTHutJpiVy1tLruQ0kLowCX
 QANQhL2DgUSCXKh9WyZpoqozyoVupj1HXeYYuo2hR22FSGVvCwgqu5UFHwup9MOJ7B46EhQeF9
 n8G1BZKiBSEcxYICY2ayPaW9CJHDL+iGAuU1RxGuFgFxZCNqz6T7x7KoehoXd8vGpRruUb5Z3K
 ZwBKD6JBOAESxEuwgZKoZt2YM91d+am4OENkHEErOU4lptzsndHUdolZ/DYx2MYmci5ClvLH+W
 qyrfBG5ypP5uslCM13GbEetK
X-SBRS: 5.1
X-MesageID: 58217721
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Sicw26IlZVfo7LouFE+RHJIlxSXFcZb7ZxGr2PjKsXjdYENSgTNWy
 GBOWG/SPvaMa2b1KIx2aN7k8UwGsZ/UxoVgGwJlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5xbZj6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2skot+z
 O4TsqaAVD0bBoL8or0veDVxRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpg3JkRQqyHD
 yYfQWVQL0maWzlMA2gOGdU4ktelr1r4MDIN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wh
 EjL4mD4CREyL8GExHyO9XfErv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaDt8l3c
 hJOvHB09O5rqRLtHoKVswCETGCsmxNHVN5rTeoA2By3+JL70zzANEMoZ2sUADA5j/MeSTsv3
 16PutrmAz1zrbGYIU6gGqeoQSCaYnZMczJbDcMQZU5cuoS4/tlv5v7aZo87SPbdszHjJd3nL
 9lmRgAajq5bs8ME3r7TEbvv02P1/cihouLYC2zqsoOZAuFRON7Ni2+AswGzARN8wGCxFAHpU
 J8swZX20Qz2JcvR/BFhuc1UdF1T296LMSfHnXlkFIQ7+jKm9haLJN4Lv2AjfRoyaJxaJlcFh
 XM/XysLv/e/21PwMMdKj3+ZUZx2ncAM6/y5PhwrUja+SscoL1LWlM2fTUWRw3rsgCARfVIXY
 v+mnTKXJS9CU8xPlWPuL89EiOND7n1ulAv7GMGgpzz6gOX2WZJgYepcWLd4Rrtit/3sTcS82
 4s3CvZmPD0DCrCjOXeOrtZIRb3IRFBiba3LRwVsXrbrCmJb9KsJUZc9GJstJN5ombp7jODN8
 i3vU0NU0gOn13bGNR+LejZob7a2BcRzqncyPCoNO1e02id8PdbzvflHL5ZnL6M68OFDzOJvS
 6VXccu3HfkSGC/M/C4QbMehodU6Jgirnw+HIwGsfCM7I8x7XwXM99K9Jlnv+SACAzCZr8w7p
 7H8hArXTYBaH1ZpDdrMaeLpxFS05CBPlOV3VkrOA99SZESzr9Q6d32v1qc6epheJw/Cyz2W0
 xetLS0Z/eSd8ZUo9NTphLyfq9v7GeVJAUcHTXLQ6qy7NHeG8zP7k5NASuuBYRvUSHjwpPe5f
 exQwvzxbK8HkVJNv9YuGrpn1/tjtd7mprscxQV4BnTbKV+sD+o4cHWB2MBOsIxLx6NY5lTqC
 h7epIECNOXbIt7hHX4QOBEhP7aK2vwjkzXP6eg4fRfh7yht8bvbCUhfMnFgUsCGwGeZ5G/9/
 dochQ==
IronPort-HdrOrdr: A9a23:EISlL61TjzCrMG8ePL4QGQqjBIgkLtp133Aq2lEZdPRUGvb4qy
 nIpoVi6faUskdpZJhOo6HiBEDtexzhHNtOkO0s1NSZLW/bUQmTXeNfBOLZqlWKcUCTygce79
 YGT0EXMqyKMbEQt6bHCWeDferIuOP3lZyVuQ==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58217721"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 1/4] x86/altcall: Check and optimise altcall targets
Date: Fri, 26 Nov 2021 21:22:55 +0000
Message-ID: <20211126212258.7550-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126212258.7550-1-andrew.cooper3@citrix.com>
References: <20211126212258.7550-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

When converting indirect to direct calls, there is no need to execute endbr64
instructions.  Detect and optimise this case, leaving a warning in the case
that no endbr64 was found, as it likely indicates a build error.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/alternative.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index ec24692e9595..5ae4c80d5119 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -18,6 +18,7 @@
 #include <xen/delay.h>
 #include <xen/types.h>
 #include <asm/apic.h>
+#include <asm/endbr.h>
 #include <asm/processor.h>
 #include <asm/alternative.h>
 #include <xen/init.h>
@@ -279,6 +280,27 @@ static void init_or_livepatch _apply_alternatives(struct alt_instr *start,
 
                 if ( dest )
                 {
+                    /*
+                     * When building for CET-IBT, all function pointer targets
+                     * should have an endbr64 instruction.
+                     *
+                     * If this is not the case, leave a warning because
+                     * something is wrong with the build.
+                     *
+                     * Otherwise, skip the endbr64 instruction.  This is a
+                     * marginal perf improvement which saves on instruction
+                     * decode bandwidth.
+                     */
+                    if ( IS_ENABLED(CONFIG_HAS_CC_CET_IBT) )
+                    {
+                        if ( is_endbr64(dest) )
+                            dest += 4;
+                        else
+                            printk(XENLOG_WARNING
+                                   "altcall %ps dest %ps has no endbr64\n",
+                                   orig, dest);
+                    }
+
                     disp = dest - (orig + 5);
                     ASSERT(disp == (int32_t)disp);
                     *(int32_t *)(buf + 1) = disp;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 21:23:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233492.405132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqigl-0006ma-3K; Fri, 26 Nov 2021 21:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233492.405132; Fri, 26 Nov 2021 21:23:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqigk-0006mT-VY; Fri, 26 Nov 2021 21:23:22 +0000
Received: by outflank-mailman (input) for mailman id 233492;
 Fri, 26 Nov 2021 21:23:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqigk-0006mN-C5
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 21:23:22 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 132f5f49-4eff-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 22:23:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 132f5f49-4eff-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637961800;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=bq6J9uivE4OFqVknMwT0glvJ/cJ2p4tmLYuqVTlL0Lk=;
  b=CP+eHPxlhd9WTsTtqagvcCD8gqr+qeE1PovB6srdOkJXQbntA2z0RUTt
   SpMpn/8F627Vzmv78QMpRynslHJfdlvyM/242WHAspde4wUB7N1JvLKMW
   rgK3TYwRKWHCAjQRCFpDODTl3WD1aAEAcB3atd5w48SqhxRF4/H6qWiD+
   A=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: jjjHfZ7XNjv2KAbml77rhU0NWM9t2TmwMqi+zNaDiF3d1Uz/t3fqSUneKdTeIlM77/Rz+8NtG5
 Ercv6V3ZK6OImyRt3yLn+pj9hmBWrt2YSSwNOzwTZfADLCwLql/5QKF4lBNVTFeFFLOxQOoCNJ
 mpg8KiI2pNYE2GKAP3AdZ0BqqgQZ1nE1QktmuD0bbu9Gxtf/zNyGR/aP0WY1LOB8Et+Z0GI3i9
 +0UlAZsXdLGLDjdQ39rvM8VbxUGxMtp1Q/QS0eYE2zA/ENYoBd3BTIkhoLcUk5xIRx14Klq9q3
 jkFkWWHVn0dpM5+pWRyXShDe
X-SBRS: 5.1
X-MesageID: 58217717
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:EyFukK3jWiHtpgMFyvbD5St2kn2cJEfYwER7XKvMYLTBsI5bpzNWy
 WcdDTjVPvnfYTbxKtoiO9iy8k0Gv5fcyYJmQVM/pC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wbBh2OaEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhuuh6+
 u0Tka2JSR4zYPyVh8A3VANoDHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Er8IvNsT0eqgYvWlt12rxBvc6W5HTBa7N4Le02R9t1poXQqmHO
 KL1bxJSTzOYSi9rIW0LUpInuuS3oXf0fxJX/Qf9Sa0fvDGIkV0ZPKLWGPj/d8GORM5Vtl2Fv
 W+A9GP8ajkFMPSPxDzD9Wij7sfDhTj+WZ4SPLSg++R2nUaIwWgOFBwRU0D9qv684mauVtQaJ
 0EK9y4Gqakp6FftXtT7Rwe/onOPolgbQdU4O+E15AyC0KP8/xeSBm9CSCVILtMhqqcLqScCj
 wHT2YmzXHo27ePTGSn1GqqoQS2aHBAeH1dcQR49TRIfvYi6v6UZiQj/UYM2eEKqteHdFTb1y
 jGMiSExgbQPkMIGv5mGEUD7byGE/caQEFNsjunDdif8t14iOtb5D2C9wQGDta4oEWqPcrWWU
 JHoceC65ftGM5yCnTflrA4lTODwvKbt3NExbDdS83gdG9aFpy7LkWN4umgWyKJV3iAsI2eBj
 Kj741452XOrFCH2BZKbmqroYyjQ8YDuFM7+StffZcdUb556eWevpX81Oh/Nhj22yhJyzsnT3
 Kt3l+72Vh727ow9kVKLqxo1i+d3lkjSO0uPLXwE8/hX+eXHPyPEIVv0GFCPcvo4/Mu5TPb9q
 L5i2z+x40wHCoXWO3CPmaZKdAxiBSVrVPje9p0MHsbec1UOJY3UI6KIqV/XU9c+xPo9eyah1
 izVZ3K0P3Kj3yCaclvTNSg4AF4tNL4mxU8G0eUXFQ7A8xAejUyHtc/zrrM7Iusq8vJN1/lxQ
 6VXcsmMGK0XGD/G5y4cfd/2q4k7LEanggeHPiyEZjkjfsE/G1yVq4G8Jga/pjMTCieXtNclp
 +Hy3A3sXpdeFR9pC9zbaazzwgrp72Qdgu97Q2DBPsJXJBf36IFvJiGo1q03LsgAJA/t3Dyf0
 wrKUx4UqfOU+90+8cXThLDCpICsSrMsEk1fFmjdzLC3KSiFoTbznd4eCL6FJGmPWnn19aOuY
 fRu48v9aPBXzkxXt4dcEqpwyf5s7dXYuLIHnB9vG2/Gbgr3B+o4cGWGx8RGqoZE2qRd5VmtQ
 kuK99RXZeeJNcfiHAJDLQYpdL3eh/Qdmz2U5vUpOkTqoiRw+ePfA0lVOhCNjg1bLad0b9x5k
 btw5pZO5lztkAcuP/aHkjtQpjaFIXE3Wqk6so0XXd3wgQ0xx1AeOZHRB0caOn1Uhwmg5qXyH
 gKpuQ==
IronPort-HdrOrdr: A9a23:IVHYNqEfXFqZKJCWpLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58217717"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Daniel Smith <dpsmith@apertussolutions.com>, "Jan
 Beulich" <JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 3/4] xen/xsm: Use __init_data_cf_clobber for xsm_ops
Date: Fri, 26 Nov 2021 21:22:57 +0000
Message-ID: <20211126212258.7550-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126212258.7550-1-andrew.cooper3@citrix.com>
References: <20211126212258.7550-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

All calls through xsm_ops are fully altcall'd.  Harden all fnptr targets.

This yields:

  (XEN) altcall: Optimised away 197 endbr64 instructions

of 1655 on an everything-enabled build of Xen, which is ~12%.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
CC: Daniel Smith <dpsmith@apertussolutions.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/xsm/dummy.c       | 2 +-
 xen/xsm/flask/hooks.c | 2 +-
 xen/xsm/silo.c        | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 4d29a9aa5b9f..4f1d352d5507 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -13,7 +13,7 @@
 #define XSM_NO_WRAPPERS
 #include <xsm/dummy.h>
 
-static const struct xsm_ops __initconstrel dummy_ops = {
+static struct xsm_ops __initdata_cf_clobber dummy_ops = {
     .security_domaininfo           = xsm_security_domaininfo,
     .domain_create                 = xsm_domain_create,
     .getdomaininfo                 = xsm_getdomaininfo,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 63484e323c09..b1c917113ec3 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1765,7 +1765,7 @@ static int cf_check flask_argo_send(
 
 #endif
 
-static const struct xsm_ops __initconstrel flask_ops = {
+static struct xsm_ops __initdata_cf_clobber flask_ops = {
     .security_domaininfo = flask_security_domaininfo,
     .domain_create = flask_domain_create,
     .getdomaininfo = flask_getdomaininfo,
diff --git a/xen/xsm/silo.c b/xen/xsm/silo.c
index 4d5fc98e7e54..7a17595888bb 100644
--- a/xen/xsm/silo.c
+++ b/xen/xsm/silo.c
@@ -102,7 +102,7 @@ static int cf_check silo_argo_send(
 
 #endif
 
-static const struct xsm_ops __initconstrel silo_xsm_ops = {
+static struct xsm_ops __initdata_cf_clobber silo_xsm_ops = {
     .evtchn_unbound = silo_evtchn_unbound,
     .evtchn_interdomain = silo_evtchn_interdomain,
     .grant_mapref = silo_grant_mapref,
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 21:23:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233496.405170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqigp-0007c6-Av; Fri, 26 Nov 2021 21:23:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233496.405170; Fri, 26 Nov 2021 21:23:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqigp-0007bR-3T; Fri, 26 Nov 2021 21:23:27 +0000
Received: by outflank-mailman (input) for mailman id 233496;
 Fri, 26 Nov 2021 21:23:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqign-0006mN-48
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 21:23:25 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 159e72e1-4eff-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 22:23:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 159e72e1-4eff-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637961803;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=hKzw/5xvyhxl0lgipvVL1e85ARROZwUJRY07zD4G8Ow=;
  b=Nxohs8vqQ50RNHlXXj49u7yBJ4zGo7GjVgDy0QBnJ/zfXPWPPYazGIGy
   1CaXyQv6Nj7qh+hJYasAtCZKTNRy4P468fsMkapnRsm9BBVH7XHsoqN5b
   Mdp7pqitGroDAWNlCsPAv9WJ9PpDFZTVOtZWlFRNdparcr8AYbwxh7Q5T
   o=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 565yRgGU9nN57B+tPBd7vR2CnYMVNxuhYaiS0swu4/lZcTVFJ0PThc4qMk2TVlIMt5TnhcWAKQ
 hO+oby/ZOL9FyixXRrOiL3WYwZ1AqDCqB+kSDRRtep5B5NcB6D0CVBe9WzQM/IitU+CEqACxPu
 8mQQc2c3r98+lnxBYEjZzNYCwYaYiOeahRWXXFtKJSqZ9q37hiamKRUStpUfh9Va+f+pOaYRY4
 LJthDppO1rbYLgOzkFUbAlUnnVRQamXbV+AGJR+Un2nt4T/SesDW4HCL/56Rt88RpoQNo5bUm2
 jjKICdV+vcdLP1rulUODXKtk
X-SBRS: 5.1
X-MesageID: 58217720
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:zahAsatqpTMNCJwp3K4ywvMlTOfnVJtZMUV32f8akzHdYApBsoF/q
 tZmKW6GOqmKZzb2Kox0YYTg8ExV6JCAz9dmSQM+rSxjFi8U+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24bhWWthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npl67G2QAMvDpb3us89bBVlEzhfBIxZ9+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DFYUToHx/ixreCu4rW8vrSKTW/95Imjw3g6iiGN6DN
 5BANmU1NHwsZTVMO2tIUco+p9uig2jOfTFpql/M/YUOtj27IAtZj+G2bYu9lsaxbdpRtlaVo
 CTB5WuRKjMwOcGbyDGF2mmxneKJliT+MKoCGbv9+vN0jVm7wm0IFAZQRVa9ueO+iEO1R5RYM
 UN8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO7MX7giJzJrv2CSyJlcIcz5YSeUHq8BjEFTGy
 WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WsQWmoq
 w1muhTSkFn6YSQj86ygtW7KjDu3znQiZl5kv16HNo5JA+4QWWJEW2BKwQSLhRqjBNzAJrVkg
 JTis5LGhAzpJcvQ/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZlVJGa0O
 xWJ51w5CHpv0J2CN/Qfj2WZUZlC8EQdPY69CqC8giRmPvCdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l5Y9e5/F/rU9YNc319mria8
 3ejdFVfzVaj13TLJR/TMiJoaa/1XIY5pnU+ZHR+MVGt0nklQICu8KZAKMdnIeh5rLRunaxuU
 v0IW8ScGfATGD7JzCsQMMvmp4t4eRX12Q/XZ3i5YCIydoJLThDS/oO2ZRPm8SQDV3LltcY3r
 7C6+BncRJ4PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2LDh
 QiMABoeqe3cmKMP8YHE1fKesoOkM+piBU4GTWPV2qm7aHvB9W25zI4eDOvRJWLBVHn58bmJb
 PlOy62uK+UOmVtHvtYuE7tvyq5itdLjq6UDk1ZhFXTPKV+qFqlhMj+N2swW7v9BwbpQuA2XX
 EOT+4YFZeXVaZ29SFNBdhA4aumj1O0PnmiA5Ps4F0z2+Str8efVSk5VJRSN1HRQIbYd3FnJG
 gv9VBr6MzCCtyc=
IronPort-HdrOrdr: A9a23:sQhGKaxaOg9zAi/FIcMBKrPwFr1zdoMgy1knxilNoRw8SK2lfq
 eV7YwmPH7P+U8ssR4b6LO90cW7Lk80sKQFhbX5Xo3SOjUO2lHYTr2KhLGKq1aLdkHDH6xmpM
 BdmsBFeabN5DNB7foSjjPXLz9Z+qjjzJyV
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58217720"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 2/4] x86/altcall: Optimise away endbr64 instruction where possible
Date: Fri, 26 Nov 2021 21:22:56 +0000
Message-ID: <20211126212258.7550-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211126212258.7550-1-andrew.cooper3@citrix.com>
References: <20211126212258.7550-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

With altcall, we convert indirect branches into direct ones.  With that
complete, none of the potential targets need an endbr64 instruction.

Furthermore, removing the endbr64 instructions is a security defence-in-depth
improvement, because it limits the options available to an attacker who has
managed to hijack a function pointer.

Introduce a new .init.data.cf_clobber section.  Have _apply_alternatives()
walk over the entire section, looking for any pointers into .text, and clobber
an endbr64 instruction if found.  This is some minor structure (ab)use but it
works alarmingly well.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

It would be nice for the printk() to say "optimised away %u of %u", but the
latter number can only feasibly come from post-processing of xen-syms during
the build.
---
 xen/arch/x86/alternative.c | 38 ++++++++++++++++++++++++++++++++++++++
 xen/arch/x86/xen.lds.S     |  5 +++++
 xen/include/xen/init.h     |  2 ++
 3 files changed, 45 insertions(+)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 5ae4c80d5119..65fc8534b97f 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -173,6 +173,9 @@ text_poke(void *addr, const void *opcode, size_t len)
     return memcpy(addr, opcode, len);
 }
 
+extern unsigned long __initdata_cf_clobber_start[];
+extern unsigned long __initdata_cf_clobber_end[];
+
 /*
  * Replace instructions with better alternatives for this CPU type.
  * This runs before SMP is initialized to avoid SMP problems with
@@ -329,6 +332,41 @@ static void init_or_livepatch _apply_alternatives(struct alt_instr *start,
         add_nops(buf + a->repl_len, total_len - a->repl_len);
         text_poke(orig, buf, total_len);
     }
+
+    /*
+     * Clobber endbr64 instructions now that altcall has finished optimised
+     * all indirect branches to direct ones.
+     */
+    if ( force && cpu_has_xen_ibt )
+    {
+        unsigned long *val;
+        unsigned int clobbered = 0;
+
+        /*
+         * This is some minor structure (ab)use.  We walk the entire contents
+         * of .init.data.cf_clobber as if it were an array of pointers.
+         *
+         * If the pointer points into .text, and has an endbr64 instruction,
+         * nop out the endbr64.  This causes the pointer to no longer be a
+         * legal indirect branch target under CET-IBT.  This is a
+         * defence-in-depth measure, to reduce the options available to an
+         * adversary who has managed to hijack a function pointer.
+         */
+        for ( val = __initdata_cf_clobber_start;
+              val < __initdata_cf_clobber_end;
+              val++ )
+        {
+            void *ptr = (void *)*val;
+
+            if ( !is_kernel_text(ptr) || !is_endbr64(ptr) )
+                continue;
+
+            add_nops(ptr, 4);
+            clobbered++;
+        }
+
+        printk("altcall: Optimised away %u endbr64 instructions\n", clobbered);
+    }
 }
 
 void init_or_livepatch apply_alternatives(struct alt_instr *start,
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 87e344d4dd97..5b16a98e4df1 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -214,6 +214,11 @@ SECTIONS
        *(.initcall1.init)
        __initcall_end = .;
 
+       . = ALIGN(POINTER_ALIGN);
+        __initdata_cf_clobber_start = .;
+	*(.init.data.cf_clobber)
+        __initdata_cf_clobber_end = .;
+
        *(.init.data)
        *(.init.data.rel)
        *(.init.data.rel.*)
diff --git a/xen/include/xen/init.h b/xen/include/xen/init.h
index bfe789e93f6b..66b324892a52 100644
--- a/xen/include/xen/init.h
+++ b/xen/include/xen/init.h
@@ -18,6 +18,8 @@
 #define __init_call(lvl)  __used_section(".initcall" lvl ".init")
 #define __exit_call       __used_section(".exitcall.exit")
 
+#define __initdata_cf_clobber __section(".init.data.cf_clobber")
+
 /* These macros are used to mark some functions or 
  * initialized data (doesn't apply to uninitialized data)
  * as `initialization' functions. The kernel can take this
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 21:23:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233494.405154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqign-0007Io-MH; Fri, 26 Nov 2021 21:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233494.405154; Fri, 26 Nov 2021 21:23:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqign-0007Id-It; Fri, 26 Nov 2021 21:23:25 +0000
Received: by outflank-mailman (input) for mailman id 233494;
 Fri, 26 Nov 2021 21:23:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k+gV=QN=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mqigm-0006mN-3q
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 21:23:24 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1505f391-4eff-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 22:23:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1505f391-4eff-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1637961802;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=U0pjjfuaVHXyNjtIMrwlyno5NCM6O9c5yGUuwWsqke8=;
  b=WUx7zIKtHKF55TbcZQuS7Z4+iiEabwfSMHei24N9Jc6PT3zSS1lgITZ1
   +wVQntz9vKGDOnBLXU0ltx9pYXsxLZf7ac/0u2gwVC8gs8QKN+FqryyD/
   si3Y1ueOipXDDf8koxcVCFbUPq25y43PSdAfxvZJjVKxcgYdK1gUq95sY
   o=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Lk26teUFy4kLo+qVce/xxjjagqWPwvW4AMyBS4i1p2JDwgaBjsJx6yXIPc3x+wV4IGnwKV/aiv
 FFY8bzwZc9tOW/7hNqI5lF3D+ayvLpC+RKfguw6H58/AZ8bHuvqqMJBDxss9FGXM60PE8J3Uh+
 gPf1jyWyUF1CqazC5WkRmWz97dg6DUJFqe3mr+uJpNCOcee02eLfDbhz+u/z2kpTpc9Z2ehBjn
 XQPgmQamX160ksY6e+EwDRGPNCKBOvzGpgbNii89TAKHi6JHlzqUiNOE9nY6qmYbWWOuIlydli
 WbKE0tFdf+e9TLqZ0MC7ZJ/F
X-SBRS: 5.1
X-MesageID: 58217719
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:kbYFRaBESjPj0BVW/7Lkw5YqxClBgxIJ4kV8jS/XYbTApGgkgWQEy
 DdLXGGOMvncY2byKIolbd/k8kIH7JSEmIc2QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX5400w7wYbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/rjjSkNRKl
 tJ3hYGKez8GDpeVqs8xekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjG1p2Z8XTJ4yY
 eIjNCJhdBrOTiZ3GW4nDK4xx+GDoGPgJmgwRFW9+vNsvjm7IBZK+LTiPNfaYNWiWdRenkHeo
 HnPuWv+HHkyOMSEzDuZ8lqlnuLVgT7gQ4UWCaG58fhxxlaUwwQ7DRQMUFKhrPqRi0igWsleI
 UgZ5iovq6cp8EWhCNL6WnWQsHOC+xIRRddUO+k78x2WjLrZ5R6DAWoJRSIHb8Yp3OcUbzE30
 l6Cn/vyGCdi9raSTBq16bO8vT60fy8PIgc/iTQsFFVfpYO5+cdq00yJHo0L/LOJYsPdPDyrz
 DSx8i8Et6gpv/Yk55/iz3vrqmf5znTWdTId6gLSV2Ojywp2Yo+5eoClgWTmAeZ8wJWxFQfY4
 iVd8ySKxKVXVMzWynTRKAkYNOjxv67tDdHKvbJ483DNHRyJ8mXrQ41f6SoWyKxBYpddIm+Bj
 KM+VGpsCH5v0JmCMf8fj2GZUZ1CIU3c+TLNDKi8gj1mOMUZSeN/1HsyDXN8Jki0+KTWrYkxO
 I2AbeGnBmsABKJswVKeHrlGju52n31lnzmNGvgXKihLN5LEPxZ5rp9fbTOzgh0RtvvY8G05D
 f4DXyd19/mveLKnOXSGmWLiBVsLMWI6FfjLRz9/LYa+zv5dMDh5UZf5mOp5E6Q8xvg9vrqYr
 xmVBx4DoHKi1CKvFOl/Qi06AF8Zdc0k9ixT0O1FFQvA5kXPlq7ztvpCLMVuIuF8nAGhpNYtJ
 8Q4lwy7KqwnYlz6F/41NPERdaRuK0amgxygJS2gbGRtdpJsXVWRqNTlYhHu5G8FCS/u7Zkyp
 Lip1wX6R5sfRls9UJaKOaz3l17h72IAnO9SXlfTJoUBckvb74U3eTf6ieU6Ip9QJEyblCeaz
 QufHTwRufLJ/90u6NDMiK3d99WpHuJyE1B0BW7e6brqZyDW8nD6md1LUfqSfCCbX2Txof3wa
 eJQxvD6EfsGgFcV7NYsT+c1lfozvoK9qaVbwwJoGGTwQ26qUr4wcGOb2cRvt7FWwuMLswWBR
 U/SqMJRPq+EOZ25HQdJdhYldOmKydodhiLWsaYuOEz/6SJ6oOiHXEFVM0XegSBRNuIoYoYsw
 ONns88K8Q2vzBEtN4/e3CxT8m2NKF0GUrkm6c5GUNO61FJzxwEQe4HYBw/3/IqLOodFPUQdK
 zOJgLbP2uZHzU3YfntvTXXA0IKxX3jVVMymGLPaG2m0pw==
IronPort-HdrOrdr: A9a23:VallV6NgLl12pMBcTs+jsMiBIKoaSvp037Eqv3oRdfUzSL3/qy
 nOpoV96faaskdzZJhNo7+90cq7MBfhHPxOkOss1N6ZNWGM0gbFEGgL1/qa/9SKIU3DH4Bmu5
 uIC5IObeHNMQ==
X-IronPort-AV: E=Sophos;i="5.87,266,1631592000"; 
   d="scan'208";a="58217719"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Daniel De Graaf
	<dgdegra@tycho.nsa.gov>, Daniel Smith <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>
Subject: [PATCH 0/4] x86: Further harden function pointers
Date: Fri, 26 Nov 2021 21:22:54 +0000
Message-ID: <20211126212258.7550-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Slightly RFC, because patch 2 has some minor structure (ab)use, but the result
works alarmingly well.  So far, this demonstrates converting two subsystems.

hvm_funcs is the other area of especially low hanging fruit, but IOMMU, vPMU
also look like good candidates.  Anything which is partially altcall'd already
would benefit from being fully altcall'd.

Should we consider introducing __ro_after_init right now (as an alias to
__read_mostly) as this conversion is touching a lot of ares where true
post-init immutability ought to be enforced.

Andrew Cooper (4):
  x86/altcall: Check and optimise altcall targets
  x86/altcall: Optimise away endbr64 instruction where possible
  xen/xsm: Use __init_data_cf_clobber for xsm_ops
  x86/ucode: Use altcall, and __initdata_cf_clobber

 xen/arch/x86/alternative.c           | 60 ++++++++++++++++++++++++++++++++++++
 xen/arch/x86/cpu/microcode/amd.c     |  2 +-
 xen/arch/x86/cpu/microcode/core.c    | 38 ++++++++++++-----------
 xen/arch/x86/cpu/microcode/intel.c   |  2 +-
 xen/arch/x86/cpu/microcode/private.h |  2 +-
 xen/arch/x86/xen.lds.S               |  5 +++
 xen/include/xen/init.h               |  2 ++
 xen/xsm/dummy.c                      |  2 +-
 xen/xsm/flask/hooks.c                |  2 +-
 xen/xsm/silo.c                       |  2 +-
 10 files changed, 93 insertions(+), 24 deletions(-)

-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 26 22:32:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 22:32:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233536.405214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqjks-0007eU-Lp; Fri, 26 Nov 2021 22:31:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233536.405214; Fri, 26 Nov 2021 22:31:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqjks-0007eN-Ig; Fri, 26 Nov 2021 22:31:42 +0000
Received: by outflank-mailman (input) for mailman id 233536;
 Fri, 26 Nov 2021 22:31:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqjkr-0007eD-7N; Fri, 26 Nov 2021 22:31:41 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqjkr-0001Vs-0K; Fri, 26 Nov 2021 22:31:41 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqjkq-0004yH-ML; Fri, 26 Nov 2021 22:31:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqjkq-0002uM-Lr; Fri, 26 Nov 2021 22:31:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=7EXcb5ZmXJvu6Wlfd+ljhDSdCkCSgepVWHi2GwJCMpA=; b=fKxdoCxWuh+IIxDpC2x8nYZjC4
	63OIpiXDXYV9iRTPPvvvFw+Ihgo86oF/eZEizCQ9agZbf27WTPUNEvv/F5KtymyStvaYDOkNgSaRW
	RNbgIEg/WSWQRo6pxd4oYTWopQmppkETqIfLQcuPS5k6hkPTHFdzcapHBh//woW84qnA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166387-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.15-testing test] 166387: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=544e547a63175ac6ef7cc29c4f5bda88da024f69
X-Osstest-Versions-That:
    xen=963ab606b1228788eac54c1c7ff70d04bb325733
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Nov 2021 22:31:40 +0000

flight 166387 xen-4.15-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166387/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166198
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166198
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166198
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166198
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166198
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166198
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166198
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166198
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166198
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166198
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166198
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166198
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 xen                  544e547a63175ac6ef7cc29c4f5bda88da024f69
baseline version:
 xen                  963ab606b1228788eac54c1c7ff70d04bb325733

Last test of basis   166198  2021-11-19 19:38:51 Z    7 days
Testing same since   166311  2021-11-23 12:38:47 Z    3 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   963ab606b1..544e547a63  544e547a63175ac6ef7cc29c4f5bda88da024f69 -> stable-4.15


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 22:40:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 22:40:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233547.405243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqjt9-0000wU-S9; Fri, 26 Nov 2021 22:40:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233547.405243; Fri, 26 Nov 2021 22:40:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqjt9-0000wN-PI; Fri, 26 Nov 2021 22:40:15 +0000
Received: by outflank-mailman (input) for mailman id 233547;
 Fri, 26 Nov 2021 22:40:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sWll=QN=linaro.org=mathieu.poirier@srs-se1.protection.inumbo.net>)
 id 1mqjt8-0000wH-1k
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 22:40:14 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0cf616b-4f09-11ec-9787-a32c541c8605;
 Fri, 26 Nov 2021 23:40:12 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id g14so44299895edb.8
 for <xen-devel@lists.xenproject.org>; Fri, 26 Nov 2021 14:40:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0cf616b-4f09-11ec-9787-a32c541c8605
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=c+Bqc907eV3hmADcc+S+rK2ap4qbqE0tPBtR2bxjnuI=;
        b=yDoUB5a7QGV8bTnsVLNgeGtCOtU8y4FAK8S4ui9UR9zl3VsWEDbnyYurj3vOSvBMaC
         Or+4OGpLZHCpBnTy6nDxGDQeOR3kbKtQSx7XqFqzJB9YBJROYIVggCmWpLiN2kGlD20j
         o119/aXszm2taMaEB+Sr15Yz83qoxYBCBAI4ha/4JaaBX8ZEZnTAsHSzNGucPQsaLmuI
         O+J11AV2ujKTshk+NutkAUyxlp19IJPIdJ3Q/Eek5pPQj5Hz6/L+ffWcs/K9Ng/71s52
         gGaYl5wtHv18ZGvA8W61/B4u/lCDGjIdGtJJHJvZKXXeO9Qf98nqJJBalxtaVuD0cRyJ
         8c7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=c+Bqc907eV3hmADcc+S+rK2ap4qbqE0tPBtR2bxjnuI=;
        b=DwUthxQxRdxK7+eTuOnBQCcfQMT4AVifrmQ8uq0uKABqaplw/tFtNCRDics9giWugg
         7vLUl7jhZAlv3oNCxetmfFkKAAAEDzvOz93KI66pIvXn8KUdfvDGqTlxkzm++DvJUV8R
         Db4EuJ0IhvMJKSFGu0SkFpsFqJRzs4cLBowe25ZBW90BY7ogmDJhGq2X2UjiDgV0n5k/
         xu4uXKgb6LbEJ7lYRhm3x91bX/eX2qhIOaQ3K76EYG/1Bekfo0FljckA9CCQ0+nZV4E1
         5B2YJWvdOYflQDU5LkYIL58iR6gtEC3r63G1B1Z4U1QHX13NtxH2oLdIkzdGsMVuPGXA
         alAQ==
X-Gm-Message-State: AOAM532h3MWUrnA9yh0+Q9Sr91BK5aP3Nq2Yf1BKOD0G6pGfNh0UYlPB
	Mn8gIvv1jqPDwlGRrYkowE3DjpiuZK/iwO2dM5r/97QZt1ishQ==
X-Google-Smtp-Source: ABdhPJwCCWf7Kp3hOUq+KKWhlo4ziQvsTBlot2vvIHxv4iuJ1zG6t6ymKaRRhxhypjQyfDvu/86KFeos8ReiSuLsAt4=
X-Received: by 2002:a05:6402:1e95:: with SMTP id f21mr49918721edf.139.1637966408403;
 Fri, 26 Nov 2021 14:40:08 -0800 (PST)
MIME-Version: 1.0
References: <CANLsYkzKn7Nkika=KpHtSyi9=FQwS7Wt94Odbg2HuH+1PFUTzA@mail.gmail.com>
 <B34490D7-5FE3-41D4-9792-41E2BD25EF05@arm.com>
In-Reply-To: <B34490D7-5FE3-41D4-9792-41E2BD25EF05@arm.com>
From: Mathieu Poirier <mathieu.poirier@linaro.org>
Date: Fri, 26 Nov 2021 15:39:56 -0700
Message-ID: <CANLsYkwpPn-TNEq9aJv35OWK2bUPifvde7XQc1otr4u6QANUkQ@mail.gmail.com>
Subject: Re: Aarch64 stand-alone application for Xen
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"

On Fri, 26 Nov 2021 at 03:32, Bertrand Marquis <Bertrand.Marquis@arm.com> wrote:
>
> Hi Mathieu,
>
> > On 25 Nov 2021, at 22:59, Mathieu Poirier <mathieu.poirier@linaro.org> wrote:
> >
> > Good day,
> >
> > I am in the process of adding support for aarch64 to the xen-sys
> > crate[1].  The crate currently supports x86_64 and includes a
> > stand-alone "oxerun" application that can be used to validate
> > hypercalls.  My goal is to provide the same functionality on arm64.  I
> > am looking for a stand-alone aarch64 example, something like an "hello
> > world" to help me with the assembler startup code.
>
> We are working on porting XTF to arm64 and already have something running.
> I think it could be a good starting point for you:
> https://github.com/orzelmichal/xtf/tree/arm-devel
>

I just ran the "test-arm-mmu64le-example" and things work as
advertised - this is really nice!  I will have to see how this thing
is put together but the outcome is exactly what I was looking for.

You're awesome - thanks,
Mathieu

> Regards
> Bertrand
>
> >
> > Many thanks for the consideration,
> > Mathieu
> >
> > [1]. https://crates.io/crates/xen-sys
> >
>


From xen-devel-bounces@lists.xenproject.org Fri Nov 26 23:50:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Nov 2021 23:50:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233562.405254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqkyj-0007Ny-2r; Fri, 26 Nov 2021 23:50:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233562.405254; Fri, 26 Nov 2021 23:50:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqkyi-0007NF-Vl; Fri, 26 Nov 2021 23:50:04 +0000
Received: by outflank-mailman (input) for mailman id 233562;
 Fri, 26 Nov 2021 23:50:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3jyU=QN=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mqkyh-000783-76
 for xen-devel@lists.xenproject.org; Fri, 26 Nov 2021 23:50:03 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8fb4f0ee-4f13-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 00:50:01 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:49914)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mqkyS-0003kT-gL (Exim 4.95) (return-path <amc96@srcf.net>);
 Fri, 26 Nov 2021 23:49:48 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id D0F421FBF1;
 Fri, 26 Nov 2021 23:49:47 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8fb4f0ee-4f13-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <7809f437-320a-6749-e33c-92e641f87be0@srcf.net>
Date: Fri, 26 Nov 2021 23:49:47 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.1
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <2bc4eeab-a69a-a953-e09e-7b87f7dc4b85@suse.com>
 <41e1f32d-6fe0-b588-ca27-8ddbd77f25e4@srcf.net>
 <ce727ab2-da21-b013-9650-98747ebf45a0@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
In-Reply-To: <ce727ab2-da21-b013-9650-98747ebf45a0@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/11/2021 13:22, Jan Beulich wrote:
> On 26.11.2021 14:13, Andrew Cooper wrote:
>> On 26/11/2021 12:48, Jan Beulich wrote:
>>> On 26.11.2021 13:33, Andrew Cooper wrote:
>>>>   * I have not checked for misaligned endbr64's, and I'm not sure there is
>>>>     anything useful we could do upon discovering that there were any.
>>>>     Naively, there is a 1 in 2^32 chance (endbr64 being 4 bytes long), but
>>>>     this doesn't account for the structure of x86 code, which is most
>>>>     certainly not a uniform random distribution of bytes.
>>> Do you really mean "misaligned" here? The 2nd sentence rather might suggest
>>> that you mean byte sequences resembling ENDBR, despite actually being part
>>> of other insns. If so, checking might not allow to prove anything, as e.g.
>>> displacements change with about every build.
>> I do mean "any sequence of bytes resembling ENDBR", because that is
>> ultimately how the CPU instruction decode will behave.
>>
>> And yes - you certainly can hide it in a 4-byte disp/imm, but it's an
>> incredibly rare imm32 to find (except for tasks such as in patch 64).

[Answering out of order]
>> You can also hide it in an disp/imm8 followed by a specific nopl, but
>> I'm not sure if we'd ever emit 0F 1E FA as a nopl by default.
> We don't, and the tool chain doesn't either. Only canonical NOPs (opcode
> 0x1F) are to be used there, as all others may gain a meaning beyond
> plain NOP.

Good.  Presuming that this continues to be true, the "endbr64 bridging
two instructions" looks like:

F3 0F 1E FA - real endbr64
0F 1E FA - Not emitted by toolchains
1E xx - push %ds which is #UD in 64bit
FA - cli

So local_irq_{save,disable}() need to be a little wary, but this is far
more constrained than I was anticipating.

> A disp alone won't do in general, as the top byte will only ever be 0x00
> or 0xFF (as long as our binary image doesn't go beyond 16Mb).

Tangent... I thought I'd lifted all the 16M restrictions when I rewrote
the pagetable handling, but the linker assert is still present so
clearly something is still hanging around.

For a call/jump disp32, 0xF30F1EFA is nearly -2G so we're not in any
danger of encountering that, given the 1G upper limit on .text/.data/etc.

However, disp32s on memory operands are effectively arbitrary, and there
are tricks like:

    incl  ASM_PERFC_exceptions * 4(%rcx, %rax, 4)

where the disp32 field isn't even a "usual" offset.

> But a
> ModR/M or SIB byte could start such a sequence, with only two or three
> of the (lower) disp bytes used to complete the pattern.

Luckily, a ModRM of F3 is a reg/reg encoding (ebx and esi), with no SIB
byte, so there is no ModRM=F3, SIB=0F case to worry about.

That leaves:

1) ModRM=F3 with 0F 1E FA in imm32, or
2) ModRM=F3 with 0F 1E in imm16 and a trailing CLI instruction, or
3) SIB=F3, an (%rbx, %rsi, 8)-ish operand with 0F 1E FA coming from imm,
disp or the following instruction.

These look to have rather more wiggle room, but still don't look as if
they'd be common to encounter.

Perhaps the two most worrying areas are imm64 constants, and the
div-by-constant reciprocal that tends to yield a large imm32 for use
with mul.


Given that Marek has kindly hacked us up a check which should find any
arbitrary violations, and on a small sample of builds, there are no
violations, I suggest that we clean it up and put it as a check in the
real build and enable it by default seeing as we're right at the start
of the 4.17 dev window.

If it is seen to trip (and it might well not), we can judge at that
point whether to rearrange the code to avoid it, or drop the check. 
Until then however, it gives us a very strong security statement.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:07:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:07:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233575.405266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmB9-0000SP-Ui; Sat, 27 Nov 2021 01:06:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233575.405266; Sat, 27 Nov 2021 01:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmB9-0000SI-Qz; Sat, 27 Nov 2021 01:06:59 +0000
Received: by outflank-mailman (input) for mailman id 233575;
 Sat, 27 Nov 2021 01:06:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqmB7-0000S8-Vx; Sat, 27 Nov 2021 01:06:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqmB7-0006Hv-NG; Sat, 27 Nov 2021 01:06:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqmB7-0004eh-Df; Sat, 27 Nov 2021 01:06:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqmB7-0007Dc-D9; Sat, 27 Nov 2021 01:06:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+eNFG75oGXnFKPGtnayCuYEMW0oKhKbp6c8+P/wzZls=; b=S6ifaEu3tLZJheKC6n8uMP23Dz
	oR/0nEhpaid/skLcfxnaeJbeiPxx7Bx6qX0vNRt8V2hqI6NPr2xvPwr8NRx3JWlTDuH1f+qXw1mAF
	j5kLOcA+fOdr8YfruGhFJbK+EQoU2i2g/BjMUUKLfH6gawe6+dilZyRfVGq6hX0RwHQ8=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166826-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166826: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=bb1bba3d776733c41dbfa2d1dc0fe234819a79f2
X-Osstest-Versions-That:
    ovmf=4c7ce0d285bc7fd593718fd5dec02e136cbfad8e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Nov 2021 01:06:57 +0000

flight 166826 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166826/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 bb1bba3d776733c41dbfa2d1dc0fe234819a79f2
baseline version:
 ovmf                 4c7ce0d285bc7fd593718fd5dec02e136cbfad8e

Last test of basis   166360  2021-11-24 15:41:50 Z    2 days
Testing same since   166826  2021-11-26 09:11:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Baraneedharan Anbazhagan <anbazhagan@hp.com>
  Liming Gao <gaoliming@byosoft.com.cn>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   4c7ce0d285..bb1bba3d77  bb1bba3d776733c41dbfa2d1dc0fe234819a79f2 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233586.405324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMY-000381-8N; Sat, 27 Nov 2021 01:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233586.405324; Sat, 27 Nov 2021 01:18:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMY-00037p-3y; Sat, 27 Nov 2021 01:18:46 +0000
Received: by outflank-mailman (input) for mailman id 233586;
 Sat, 27 Nov 2021 01:18:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMX-00020H-0t
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:45 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6a14e56-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6a14e56-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126223824.322987915@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975922;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=AwO21SR5HwD8yhhWfgGPPa41s/dLuMAByqtyG5X5FJI=;
	b=j5FW789Ucan2sEhmMHex1zEIGRCewybYb0k8vFZpAesryvACIyGEZCuW6OE6nyhgwYWoBs
	36GH4PXQIVsT3wfXMUdaH4udB5laQh8tV+NIjXJzIPMPqTd6t644l6MErYfjYLAjwAjp+o
	ydn+khroLUbvItgILdwESI8UiLnPxM+QMi0iHL5UhqTaJghKxNN4F0JRsvhGpzMnBv1oBf
	COAwREGWqZiLc9GjyMnAPCNjOCorYHSzdauf6MnqLvmW4HHJgkWBLQO4I1iZcfOoWX9kgu
	gehHU66uY7Fvy97lhtsmfTJEYw48j8MwFpuqfKGK9JGha/E+Q0NJD/5BY0epqA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975922;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=AwO21SR5HwD8yhhWfgGPPa41s/dLuMAByqtyG5X5FJI=;
	b=dNlMdV5dyz9a7jSmk6oMvSOh4AQ8w3oaFI11LvuPRDM7Ktke1mADQwNnAcmbrjJhHto0ik
	tApE8jduCqPTMQDA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 04/22] genirq/msi: Remove unused domain callbacks
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:40 +0100 (CET)

No users and there is no need to grow them.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/msi.h |   11 ++++-------
 kernel/irq/msi.c    |    5 -----
 2 files changed, 4 insertions(+), 12 deletions(-)

--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -304,7 +304,6 @@ struct msi_domain_info;
  * @msi_free:		Domain specific function to free a MSI interrupts
  * @msi_check:		Callback for verification of the domain/info/dev data
  * @msi_prepare:	Prepare the allocation of the interrupts in the domain
- * @msi_finish:		Optional callback to finalize the allocation
  * @set_desc:		Set the msi descriptor for an interrupt
  * @handle_error:	Optional error handler if the allocation fails
  * @domain_alloc_irqs:	Optional function to override the default allocation
@@ -312,12 +311,11 @@ struct msi_domain_info;
  * @domain_free_irqs:	Optional function to override the default free
  *			function.
  *
- * @get_hwirq, @msi_init and @msi_free are callbacks used by
- * msi_create_irq_domain() and related interfaces
+ * @get_hwirq, @msi_init and @msi_free are callbacks used by the underlying
+ * irqdomain.
  *
- * @msi_check, @msi_prepare, @msi_finish, @set_desc and @handle_error
- * are callbacks used by msi_domain_alloc_irqs() and related
- * interfaces which are based on msi_desc.
+ * @msi_check, @msi_prepare, @handle_error and @set_desc are callbacks used by
+ * msi_domain_alloc/free_irqs().
  *
  * @domain_alloc_irqs, @domain_free_irqs can be used to override the
  * default allocation/free functions (__msi_domain_alloc/free_irqs). This
@@ -351,7 +349,6 @@ struct msi_domain_ops {
 	int		(*msi_prepare)(struct irq_domain *domain,
 				       struct device *dev, int nvec,
 				       msi_alloc_info_t *arg);
-	void		(*msi_finish)(msi_alloc_info_t *arg, int retval);
 	void		(*set_desc)(msi_alloc_info_t *arg,
 				    struct msi_desc *desc);
 	int		(*handle_error)(struct irq_domain *domain,
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -562,8 +562,6 @@ int __msi_domain_alloc_irqs(struct irq_d
 			ret = -ENOSPC;
 			if (ops->handle_error)
 				ret = ops->handle_error(domain, desc, ret);
-			if (ops->msi_finish)
-				ops->msi_finish(&arg, ret);
 			return ret;
 		}
 
@@ -573,9 +571,6 @@ int __msi_domain_alloc_irqs(struct irq_d
 		}
 	}
 
-	if (ops->msi_finish)
-		ops->msi_finish(&arg, 0);
-
 	can_reserve = msi_check_reservation_mode(domain, info, dev);
 
 	/*



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233583.405283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMS-00023a-8X; Sat, 27 Nov 2021 01:18:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233583.405283; Sat, 27 Nov 2021 01:18:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMS-00022G-4b; Sat, 27 Nov 2021 01:18:40 +0000
Received: by outflank-mailman (input) for mailman id 233583;
 Sat, 27 Nov 2021 01:18:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMR-00020H-Ab
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:39 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1dd50e7-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1dd50e7-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126222700.862407977@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975915;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=yycwdrBPyffnUpJMIEsWOSM4kLQ6cxBvXzwUm35xG8E=;
	b=DCccYnZ0yiKVC0u4+n9H7FGmyRWRAGxhw5lrXeLif2IGAZr2rY9i+43Gc7Jsnud/oidZaZ
	LrE05UjXTCVSyDbmgOY0HxqDRbgAp4/y2qAPiBbi9Kif3xh1IRuv+y3cBqvYsowoPm/WUk
	on0YrcUZq1Cix85vFTL/gxX7VMgOIB65lC5o4RFDq43U76Ck4A4DQQ8l0aK00NPb8MNzf1
	+R+QnmSKpPY5SIbzSJT2d2nsAUVEpzoB+W6mglKPZfD5NcRonwy3W9aAXRIOuuFkxKApoo
	q69j8LzAaUKTG+q9KEnL6HEfmmniRk/WIf4JJGwI6N1sJcqzmoeXfX/O3IGlFA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975915;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=yycwdrBPyffnUpJMIEsWOSM4kLQ6cxBvXzwUm35xG8E=;
	b=l69jhsGH0nQzlU5HDD675NHbpXuRhbgyrkanFSndKRF1Uq0JyAqp7+zU1xeEBSXpgtUx6d
	EqGASFw1EGmh4PDQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 00/22] genirq/msi, PCI/MSI: Spring cleaning - Part 1
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Date: Sat, 27 Nov 2021 02:18:34 +0100 (CET)

VGhlIFtQQ0ldIE1TSSBjb2RlIGhhcyBnYWluZWQgcXVpdGUgc29tZSB3YXJ0cyBvdmVyIHRpbWUu
IEEgcmVjZW50CmRpc2N1c3Npb24gdW5lYXJ0aGVkIGEgc2hvcnRjb21pbmc6IHRoZSBsYWNrIG9m
IHN1cHBvcnQgZm9yIGV4cGFuZGluZwpQQ0kvTVNJLVggdmVjdG9ycyBhZnRlciBpbml0aWFsaXph
dGlvbiBvZiBNU0ktWC4KClBDSS9NU0ktWCBoYXMgbm8gcmVxdWlyZW1lbnQgdG8gc2V0dXAgYWxs
IHZlY3RvcnMgd2hlbiBNU0ktWCBpcyBlbmFibGVkIGluCnRoZSBkZXZpY2UuIFRoZSBub24tdXNl
ZCB2ZWN0b3JzIGhhdmUganVzdCB0byBiZSBtYXNrZWQgaW4gdGhlIHZlY3Rvcgp0YWJsZS4gRm9y
IFBDSS9NU0kgdGhpcyBpcyBub3QgcG9zc2libGUgYmVjYXVzZSB0aGUgbnVtYmVyIG9mIHZlY3Rv
cnMKY2Fubm90IGJlIGNoYW5nZWQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uCgpUaGUgUENJL01TSSBj
b2RlLCBidXQgYWxzbyB0aGUgY29yZSBNU0kgaXJxIGRvbWFpbiBjb2RlIGFyZSBidWlsdCBhcm91
bmQKdGhlIGFzc3VtcHRpb24gdGhhdCBhbGwgcmVxdWlyZWQgdmVjdG9ycyBhcmUgaW5zdGFsbGVk
IGF0IGluaXRpYWxpemF0aW9uCnRpbWUgYW5kIGZyZWVkIHdoZW4gdGhlIGRldmljZSBpcyBzaHV0
IGRvd24gYnkgdGhlIGRyaXZlci4KClN1cHBvcnRpbmcgZHluYW1pYyBleHBhbnNpb24gYXQgbGVh
c3QgZm9yIE1TSS1YIGlzIGltcG9ydGFudCBmb3IgVkZJTyBzbwp0aGF0IHRoZSBob3N0IHNpZGUg
aW50ZXJydXB0cyBmb3IgcGFzc3Rocm91Z2ggZGV2aWNlcyBjYW4gYmUgaW5zdGFsbGVkIG9uCmRl
bWFuZC4KClRoaXMgaXMgdGhlIGZpcnN0IHBhcnQgb2YgYSBsYXJnZSAodG90YWwgMTAxIHBhdGNo
ZXMpIHNlcmllcyB3aGljaApyZWZhY3RvcnMgdGhlIFtQQ0ldTVNJIGluZnJhc3RydWN0dXJlIHRv
IG1ha2UgcnVudGltZSBleHBhbnNpb24gb2YgTVNJLVgKdmVjdG9ycyBwb3NzaWJsZS4gVGhlIGxh
c3QgcGFydCAoMTAgcGF0Y2hlcykgcHJvdmlkZSB0aGlzIGZ1bmN0aW9uYWxpdHkuCgpUaGUgZmly
c3QgcGFydCBpcyBtb3N0bHkgYSBjbGVhbnVwIHdoaWNoIGNvbnNvbGlkYXRlcyBjb2RlLCBtb3Zl
cyB0aGUgUENJCk1TSSBjb2RlIGludG8gYSBzZXBhcmF0ZSBkaXJlY3RvcnkgYW5kIHNwbGl0cyBp
dCB1cCBpbnRvIHNldmVyYWwgcGFydHMuCgpObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCBl
eGNlcHQgZm9yIHBhdGNoIDIvTiB3aGljaCBjaGFuZ2VzIHRoZQpiZWhhdmlvdXIgb2YgcGNpX2dl
dF92ZWN0b3IoKS9hZmZpbml0eSgpIHRvIGdldCByaWQgb2YgdGhlIGFzc3VtcHRpb24gdGhhdAp0
aGUgcHJvdmlkZWQgaW5kZXggaXMgdGhlICJpbmRleCIgaW50byB0aGUgZGVzY3JpcHRvciBsaXN0
IGluc3RlYWQgb2YgdXNpbmcKaXQgYXMgdGhlIGFjdHVhbCBNU0lbWF0gaW5kZXggYXMgc2VlbiBi
eSB0aGUgaGFyZHdhcmUuIFRoaXMgd291bGQgYnJlYWsKdXNlcnMgb2Ygc3BhcnNlIGFsbG9jYXRl
ZCBNU0ktWCBlbnRyaWVzLCBidXQgbm9uIG9mIHRoZW0gdXNlIHRoZXNlCmZ1bmN0aW9ucy4KClRo
aXMgc2VyaWVzIGlzIGJhc2VkIG9uIDUuMTYtcmMyIGFuZCBhbHNvIGF2YWlsYWJsZSB2aWEgZ2l0
OgoKICAgICBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdGds
eC9kZXZlbC5naXQgbXNpLXYxLXBhcnQtMQoKRm9yIHRoZSBjdXJpb3VzIHdobyBjYW4ndCB3YWl0
IGZvciB0aGUgbmV4dCBwYXJ0IHRvIGFycml2ZSB0aGUgZnVsbCBzZXJpZXMKaXMgYXZhaWxhYmxl
IHZpYToKCiAgICAgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0
L3RnbHgvZGV2ZWwuZ2l0IG1zaS12MS1wYXJ0LTQKClRoYW5rcywKCgl0Z2x4Ci0tLQogYXJjaC9w
b3dlcnBjL3BsYXRmb3Jtcy80eHgvbXNpLmMgICAgICAgICAgICB8ICAyODEgLS0tLS0tLS0tLS0t
CiBiL0RvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9wY2kvcGNpLnJzdCAgICAgIHwgICAgMiAKIGIv
YXJjaC9taXBzL3BjaS9tc2ktb2N0ZW9uLmMgICAgICAgICAgICAgICAgfCAgIDMyIC0KIGIvYXJj
aC9wb3dlcnBjL3BsYXRmb3Jtcy80eHgvTWFrZWZpbGUgICAgICAgfCAgICAxIAogYi9hcmNoL3Bv
d2VycGMvcGxhdGZvcm1zL2NlbGwvYXhvbl9tc2kuYyAgICB8ICAgIDIgCiBiL2FyY2gvcG93ZXJw
Yy9wbGF0Zm9ybXMvcG93ZXJudi9wY2ktaW9kYS5jIHwgICAgNCAKIGIvYXJjaC9wb3dlcnBjL3Bs
YXRmb3Jtcy9wc2VyaWVzL21zaS5jICAgICAgfCAgICA2IAogYi9hcmNoL3Bvd2VycGMvc3lzZGV2
L0tjb25maWcgICAgICAgICAgICAgICB8ICAgIDYgCiBiL2FyY2gvczM5MC9wY2kvcGNpX2lycS5j
ICAgICAgICAgICAgICAgICAgIHwgICAgNCAKIGIvYXJjaC9zcGFyYy9rZXJuZWwvcGNpX21zaS5j
ICAgICAgICAgICAgICAgfCAgICA0IAogYi9hcmNoL3g4Ni9oeXBlcnYvaXJxZG9tYWluLmMgICAg
ICAgICAgICAgICB8ICAgNTUgLS0KIGIvYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCAg
ICAgICAgICAgfCAgICA2IAogYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaHlwZXJ2aXNvci5o
ICAgICB8ICAgIDggCiBiL2FyY2gveDg2L2tlcm5lbC9hcGljL21zaS5jICAgICAgICAgICAgICAg
IHwgICAgOCAKIGIvYXJjaC94ODYva2VybmVsL3g4Nl9pbml0LmMgICAgICAgICAgICAgICAgfCAg
IDEyIAogYi9hcmNoL3g4Ni9wY2kveGVuLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkg
CiBiL2RyaXZlcnMvaXJxY2hpcC9pcnEtZ2ljLXYybS5jICAgICAgICAgICAgIHwgICAgMSAKIGIv
ZHJpdmVycy9pcnFjaGlwL2lycS1naWMtdjMtaXRzLXBjaS1tc2kuYyAgfCAgICAxIAogYi9kcml2
ZXJzL2lycWNoaXAvaXJxLWdpYy12My1tYmkuYyAgICAgICAgICB8ICAgIDEgCiBiL2RyaXZlcnMv
bmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMgICAgIHwgICAgMiAKIGIvZHJpdmVycy9wY2kv
TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgfCAgICAzIAogYi9kcml2ZXJzL3BjaS9tc2kv
TWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgIDcgCiBiL2RyaXZlcnMvcGNpL21zaS9pcnFk
b21haW4uYyAgICAgICAgICAgICAgIHwgIDI2NyArKysrKysrKysrKwogYi9kcml2ZXJzL3BjaS9t
c2kvbGVnYWN5LmMgICAgICAgICAgICAgICAgICB8ICAgNzkgKysrCiBiL2RyaXZlcnMvcGNpL21z
aS9tc2kuYyAgICAgICAgICAgICAgICAgICAgIHwgIDY0NSArKysrLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiBiL2RyaXZlcnMvcGNpL21zaS9tc2kuaCAgICAgICAgICAgICAgICAgICAgIHwgICAz
OSArCiBiL2RyaXZlcnMvcGNpL21zaS9wY2lkZXZfbXNpLmMgICAgICAgICAgICAgIHwgICA0MyAr
CiBiL2RyaXZlcnMvcGNpL3BjaS1zeXNmcy5jICAgICAgICAgICAgICAgICAgIHwgICAgNyAKIGIv
ZHJpdmVycy9wY2kveGVuLXBjaWZyb250LmMgICAgICAgICAgICAgICAgfCAgICAyIAogYi9pbmNs
dWRlL2xpbnV4L21zaS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAxMzUgKystLS0KIGIvaW5j
bHVkZS9saW51eC9wY2kuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxIAogYi9rZXJuZWwv
aXJxL21zaS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDEgKwogMzIgZmlsZXMgY2hh
bmdlZCwgNjk2IGluc2VydGlvbnMoKyksIDEwMjggZGVsZXRpb25zKC0pCg==


From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233582.405279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMS-00020a-0t; Sat, 27 Nov 2021 01:18:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233582.405279; Sat, 27 Nov 2021 01:18:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMR-00020T-U1; Sat, 27 Nov 2021 01:18:39 +0000
Received: by outflank-mailman (input) for mailman id 233582;
 Sat, 27 Nov 2021 01:18:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMQ-00020H-ID
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:38 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2602d15-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2602d15-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126223824.144593498@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975916;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=SP+dKeNJM2hwdIJDgcQ1U3/N14UrjfZzM9fREkCbB+Y=;
	b=ggLcsoR/qr6wu51NO6lkyeGc21rPsLKFsIaV1OmnJo3Uv9+fQJ1M2Izn6Wtf503u1EhZkp
	hoNRZCHIC8ZG3zMBOOXELT9i629kJz7YjuvIw9zs1VjpGdWHYQbjfeSwZQHb6QQ3arAsXb
	KdcxmMuSduAQAvRTVKG5CrqqLyMllacS6naNjg6ui/4GaIemBDDhyVHZeCgXOpfS1cBwV5
	o9BjfXsCN81yiu2RD+ssNwF/8MEQbkff9iqAr4VcCKjFLcGbLSWjy0Tq1kXvnuEKI8cqyp
	xgosngNTBG467xI3nUKy2DtwJnHrTM21jqwWkvOI0bCi86LChgwXZVjf+hKWuA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975916;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=SP+dKeNJM2hwdIJDgcQ1U3/N14UrjfZzM9fREkCbB+Y=;
	b=AzrRUtYOFJqXUWG528kiDPmm/HYCHebVXKy8oKWyJALQbc+IRMjrCIMReRJ6AV3jko9F72
	xL/g0id3H0M180AQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 01/22] powerpc/4xx: Remove MSI support which never worked
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:36 +0100 (CET)

This code is broken since day one. ppc4xx_setup_msi_irqs() has the
following gems:

 1) The handling of the result of msi_bitmap_alloc_hwirqs() is completely
    broken:
    
    When the result is greater than or equal 0 (bitmap allocation
    successful) then the loop terminates and the function returns 0
    (success) despite not having installed an interrupt.

    When the result is less than 0 (bitmap allocation fails), it prints an
    error message and continues to "work" with that error code which would
    eventually end up in the MSI message data.

 2) On every invocation the file global pp4xx_msi::msi_virqs bitmap is
    allocated thereby leaking the previous one.

IOW, this has never worked and for more than 10 years nobody cared. Remove
the gunk.

Fixes: 3fb7933850fa ("powerpc/4xx: Adding PCIe MSI support")
Fixes: 247540b03bfc ("powerpc/44x: Fix PCI MSI support for Maui APM821xx SoC and Bluestone board")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@lists.ozlabs.org
---
 arch/powerpc/platforms/4xx/Makefile |    1 
 arch/powerpc/platforms/4xx/msi.c    |  281 ------------------------------------
 arch/powerpc/sysdev/Kconfig         |    6 
 3 files changed, 288 deletions(-)

--- a/arch/powerpc/platforms/4xx/Makefile
+++ b/arch/powerpc/platforms/4xx/Makefile
@@ -3,6 +3,5 @@ obj-y				+= uic.o machine_check.o
 obj-$(CONFIG_4xx_SOC)		+= soc.o
 obj-$(CONFIG_PCI)		+= pci.o
 obj-$(CONFIG_PPC4xx_HSTA_MSI)	+= hsta_msi.o
-obj-$(CONFIG_PPC4xx_MSI)	+= msi.o
 obj-$(CONFIG_PPC4xx_CPM)	+= cpm.o
 obj-$(CONFIG_PPC4xx_GPIO)	+= gpio.o
--- a/arch/powerpc/platforms/4xx/msi.c
+++ /dev/null
@@ -1,281 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Adding PCI-E MSI support for PPC4XX SoCs.
- *
- * Copyright (c) 2010, Applied Micro Circuits Corporation
- * Authors:	Tirumala R Marri <tmarri@apm.com>
- *		Feng Kan <fkan@apm.com>
- */
-
-#include <linux/irq.h>
-#include <linux/pci.h>
-#include <linux/msi.h>
-#include <linux/of_platform.h>
-#include <linux/interrupt.h>
-#include <linux/export.h>
-#include <linux/kernel.h>
-#include <asm/prom.h>
-#include <asm/hw_irq.h>
-#include <asm/ppc-pci.h>
-#include <asm/dcr.h>
-#include <asm/dcr-regs.h>
-#include <asm/msi_bitmap.h>
-
-#define PEIH_TERMADH	0x00
-#define PEIH_TERMADL	0x08
-#define PEIH_MSIED	0x10
-#define PEIH_MSIMK	0x18
-#define PEIH_MSIASS	0x20
-#define PEIH_FLUSH0	0x30
-#define PEIH_FLUSH1	0x38
-#define PEIH_CNTRST	0x48
-
-static int msi_irqs;
-
-struct ppc4xx_msi {
-	u32 msi_addr_lo;
-	u32 msi_addr_hi;
-	void __iomem *msi_regs;
-	int *msi_virqs;
-	struct msi_bitmap bitmap;
-	struct device_node *msi_dev;
-};
-
-static struct ppc4xx_msi ppc4xx_msi;
-
-static int ppc4xx_msi_init_allocator(struct platform_device *dev,
-		struct ppc4xx_msi *msi_data)
-{
-	int err;
-
-	err = msi_bitmap_alloc(&msi_data->bitmap, msi_irqs,
-			      dev->dev.of_node);
-	if (err)
-		return err;
-
-	err = msi_bitmap_reserve_dt_hwirqs(&msi_data->bitmap);
-	if (err < 0) {
-		msi_bitmap_free(&msi_data->bitmap);
-		return err;
-	}
-
-	return 0;
-}
-
-static int ppc4xx_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	int int_no = -ENOMEM;
-	unsigned int virq;
-	struct msi_msg msg;
-	struct msi_desc *entry;
-	struct ppc4xx_msi *msi_data = &ppc4xx_msi;
-
-	dev_dbg(&dev->dev, "PCIE-MSI:%s called. vec %x type %d\n",
-		__func__, nvec, type);
-	if (type == PCI_CAP_ID_MSIX)
-		pr_debug("ppc4xx msi: MSI-X untested, trying anyway.\n");
-
-	msi_data->msi_virqs = kmalloc_array(msi_irqs, sizeof(int), GFP_KERNEL);
-	if (!msi_data->msi_virqs)
-		return -ENOMEM;
-
-	for_each_pci_msi_entry(entry, dev) {
-		int_no = msi_bitmap_alloc_hwirqs(&msi_data->bitmap, 1);
-		if (int_no >= 0)
-			break;
-		if (int_no < 0) {
-			pr_debug("%s: fail allocating msi interrupt\n",
-					__func__);
-		}
-		virq = irq_of_parse_and_map(msi_data->msi_dev, int_no);
-		if (!virq) {
-			dev_err(&dev->dev, "%s: fail mapping irq\n", __func__);
-			msi_bitmap_free_hwirqs(&msi_data->bitmap, int_no, 1);
-			return -ENOSPC;
-		}
-		dev_dbg(&dev->dev, "%s: virq = %d\n", __func__, virq);
-
-		/* Setup msi address space */
-		msg.address_hi = msi_data->msi_addr_hi;
-		msg.address_lo = msi_data->msi_addr_lo;
-
-		irq_set_msi_desc(virq, entry);
-		msg.data = int_no;
-		pci_write_msi_msg(virq, &msg);
-	}
-	return 0;
-}
-
-void ppc4xx_teardown_msi_irqs(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-	struct ppc4xx_msi *msi_data = &ppc4xx_msi;
-	irq_hw_number_t hwirq;
-
-	dev_dbg(&dev->dev, "PCIE-MSI: tearing down msi irqs\n");
-
-	for_each_pci_msi_entry(entry, dev) {
-		if (!entry->irq)
-			continue;
-		hwirq = virq_to_hw(entry->irq);
-		irq_set_msi_desc(entry->irq, NULL);
-		irq_dispose_mapping(entry->irq);
-		msi_bitmap_free_hwirqs(&msi_data->bitmap, hwirq, 1);
-	}
-}
-
-static int ppc4xx_setup_pcieh_hw(struct platform_device *dev,
-				 struct resource res, struct ppc4xx_msi *msi)
-{
-	const u32 *msi_data;
-	const u32 *msi_mask;
-	const u32 *sdr_addr;
-	dma_addr_t msi_phys;
-	void *msi_virt;
-	int err;
-
-	sdr_addr = of_get_property(dev->dev.of_node, "sdr-base", NULL);
-	if (!sdr_addr)
-		return -EINVAL;
-
-	msi_data = of_get_property(dev->dev.of_node, "msi-data", NULL);
-	if (!msi_data)
-		return -EINVAL;
-
-	msi_mask = of_get_property(dev->dev.of_node, "msi-mask", NULL);
-	if (!msi_mask)
-		return -EINVAL;
-
-	msi->msi_dev = of_find_node_by_name(NULL, "ppc4xx-msi");
-	if (!msi->msi_dev)
-		return -ENODEV;
-
-	msi->msi_regs = of_iomap(msi->msi_dev, 0);
-	if (!msi->msi_regs) {
-		dev_err(&dev->dev, "of_iomap failed\n");
-		err = -ENOMEM;
-		goto node_put;
-	}
-	dev_dbg(&dev->dev, "PCIE-MSI: msi register mapped 0x%x 0x%x\n",
-		(u32) (msi->msi_regs + PEIH_TERMADH), (u32) (msi->msi_regs));
-
-	msi_virt = dma_alloc_coherent(&dev->dev, 64, &msi_phys, GFP_KERNEL);
-	if (!msi_virt) {
-		err = -ENOMEM;
-		goto iounmap;
-	}
-	msi->msi_addr_hi = upper_32_bits(msi_phys);
-	msi->msi_addr_lo = lower_32_bits(msi_phys & 0xffffffff);
-	dev_dbg(&dev->dev, "PCIE-MSI: msi address high 0x%x, low 0x%x\n",
-		msi->msi_addr_hi, msi->msi_addr_lo);
-
-	mtdcri(SDR0, *sdr_addr, upper_32_bits(res.start));	/*HIGH addr */
-	mtdcri(SDR0, *sdr_addr + 1, lower_32_bits(res.start));	/* Low addr */
-
-	/* Progam the Interrupt handler Termination addr registers */
-	out_be32(msi->msi_regs + PEIH_TERMADH, msi->msi_addr_hi);
-	out_be32(msi->msi_regs + PEIH_TERMADL, msi->msi_addr_lo);
-
-	/* Program MSI Expected data and Mask bits */
-	out_be32(msi->msi_regs + PEIH_MSIED, *msi_data);
-	out_be32(msi->msi_regs + PEIH_MSIMK, *msi_mask);
-
-	dma_free_coherent(&dev->dev, 64, msi_virt, msi_phys);
-
-	return 0;
-
-iounmap:
-	iounmap(msi->msi_regs);
-node_put:
-	of_node_put(msi->msi_dev);
-	return err;
-}
-
-static int ppc4xx_of_msi_remove(struct platform_device *dev)
-{
-	struct ppc4xx_msi *msi = dev->dev.platform_data;
-	int i;
-	int virq;
-
-	for (i = 0; i < msi_irqs; i++) {
-		virq = msi->msi_virqs[i];
-		if (virq)
-			irq_dispose_mapping(virq);
-	}
-
-	if (msi->bitmap.bitmap)
-		msi_bitmap_free(&msi->bitmap);
-	iounmap(msi->msi_regs);
-	of_node_put(msi->msi_dev);
-
-	return 0;
-}
-
-static int ppc4xx_msi_probe(struct platform_device *dev)
-{
-	struct ppc4xx_msi *msi;
-	struct resource res;
-	int err = 0;
-	struct pci_controller *phb;
-
-	dev_dbg(&dev->dev, "PCIE-MSI: Setting up MSI support...\n");
-
-	msi = devm_kzalloc(&dev->dev, sizeof(*msi), GFP_KERNEL);
-	if (!msi)
-		return -ENOMEM;
-	dev->dev.platform_data = msi;
-
-	/* Get MSI ranges */
-	err = of_address_to_resource(dev->dev.of_node, 0, &res);
-	if (err) {
-		dev_err(&dev->dev, "%pOF resource error!\n", dev->dev.of_node);
-		return err;
-	}
-
-	msi_irqs = of_irq_count(dev->dev.of_node);
-	if (!msi_irqs)
-		return -ENODEV;
-
-	err = ppc4xx_setup_pcieh_hw(dev, res, msi);
-	if (err)
-		return err;
-
-	err = ppc4xx_msi_init_allocator(dev, msi);
-	if (err) {
-		dev_err(&dev->dev, "Error allocating MSI bitmap\n");
-		goto error_out;
-	}
-	ppc4xx_msi = *msi;
-
-	list_for_each_entry(phb, &hose_list, list_node) {
-		phb->controller_ops.setup_msi_irqs = ppc4xx_setup_msi_irqs;
-		phb->controller_ops.teardown_msi_irqs = ppc4xx_teardown_msi_irqs;
-	}
-	return 0;
-
-error_out:
-	ppc4xx_of_msi_remove(dev);
-	return err;
-}
-static const struct of_device_id ppc4xx_msi_ids[] = {
-	{
-		.compatible = "amcc,ppc4xx-msi",
-	},
-	{}
-};
-static struct platform_driver ppc4xx_msi_driver = {
-	.probe = ppc4xx_msi_probe,
-	.remove = ppc4xx_of_msi_remove,
-	.driver = {
-		   .name = "ppc4xx-msi",
-		   .of_match_table = ppc4xx_msi_ids,
-		   },
-
-};
-
-static __init int ppc4xx_msi_init(void)
-{
-	return platform_driver_register(&ppc4xx_msi_driver);
-}
-
-subsys_initcall(ppc4xx_msi_init);
--- a/arch/powerpc/sysdev/Kconfig
+++ b/arch/powerpc/sysdev/Kconfig
@@ -12,17 +12,11 @@ config PPC4xx_HSTA_MSI
 	depends on PCI_MSI
 	depends on PCI && 4xx
 
-config PPC4xx_MSI
-	bool
-	depends on PCI_MSI
-	depends on PCI && 4xx
-
 config PPC_MSI_BITMAP
 	bool
 	depends on PCI_MSI
 	default y if MPIC
 	default y if FSL_PCI
-	default y if PPC4xx_MSI
 	default y if PPC_POWERNV
 
 source "arch/powerpc/sysdev/xics/Kconfig"



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233587.405334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMZ-0003PI-JQ; Sat, 27 Nov 2021 01:18:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233587.405334; Sat, 27 Nov 2021 01:18:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMZ-0003Oa-EG; Sat, 27 Nov 2021 01:18:47 +0000
Received: by outflank-mailman (input) for mailman id 233587;
 Sat, 27 Nov 2021 01:18:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMY-00020H-10
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:46 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6fa9b51-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6fa9b51-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126223824.441771859@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975924;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=EjQK06gGut8wpWxb3xXf7TaaLrkIbQLhpXZXlXqI+1E=;
	b=eeGX81542dq+sYH7ESmSoDpusjpXmGwZ5uzc6HQtoZnKCuS4K/guuZW1jA24z34Luwy1u2
	UoyJLLDTEbjG1mWVGhimeiGDQ4GO+YER3XWm6Rq65w2m06j2WyJu3KC7Q4daPErrjOc2m5
	t7ZnP9RWK/MGdDqy+s4CyQeBzBEYKGEutpivREEkOR8o9Admqct7oIE3li6FXCsI8/xnab
	nsSIKCZtsl6R4hj2IH3TLhbji/ivuNINmj9LHKOJyb3InVgAW01axfoK7Xc26J2g96I3+0
	yYelATKYapulhlXULFSMGmMl5Ou0atTEdo4JBDeXppHg9OLpb13O+VkE9z9QsQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975924;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=EjQK06gGut8wpWxb3xXf7TaaLrkIbQLhpXZXlXqI+1E=;
	b=My4pAOvYAQSL+ZCd2xtuUvRpdvSLUlBGqh2EuD8EvOsTnwX4Iyk+C+TZrGGmKB0XpXROFh
	k6c+Lym+Eb4h6RAQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 06/22] PCI/MSI: Make pci_msi_domain_write_msg() static
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:44 +0100 (CET)

There is no point to have this function public as it is set by the PCI core
anyway when a PCI/MSI irqdomain is created.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/irqchip/irq-gic-v2m.c            |    1 -
 drivers/irqchip/irq-gic-v3-its-pci-msi.c |    1 -
 drivers/irqchip/irq-gic-v3-mbi.c         |    1 -
 drivers/pci/msi.c                        |    2 +-
 include/linux/msi.h                      |    1 -
 5 files changed, 1 insertion(+), 5 deletions(-)

--- a/drivers/irqchip/irq-gic-v2m.c
+++ b/drivers/irqchip/irq-gic-v2m.c
@@ -88,7 +88,6 @@ static struct irq_chip gicv2m_msi_irq_ch
 	.irq_mask		= gicv2m_mask_msi_irq,
 	.irq_unmask		= gicv2m_unmask_msi_irq,
 	.irq_eoi		= irq_chip_eoi_parent,
-	.irq_write_msi_msg	= pci_msi_domain_write_msg,
 };
 
 static struct msi_domain_info gicv2m_msi_domain_info = {
--- a/drivers/irqchip/irq-gic-v3-its-pci-msi.c
+++ b/drivers/irqchip/irq-gic-v3-its-pci-msi.c
@@ -28,7 +28,6 @@ static struct irq_chip its_msi_irq_chip
 	.irq_unmask		= its_unmask_msi_irq,
 	.irq_mask		= its_mask_msi_irq,
 	.irq_eoi		= irq_chip_eoi_parent,
-	.irq_write_msi_msg	= pci_msi_domain_write_msg,
 };
 
 static int its_pci_msi_vec_count(struct pci_dev *pdev, void *data)
--- a/drivers/irqchip/irq-gic-v3-mbi.c
+++ b/drivers/irqchip/irq-gic-v3-mbi.c
@@ -171,7 +171,6 @@ static struct irq_chip mbi_msi_irq_chip
 	.irq_unmask		= mbi_unmask_msi_irq,
 	.irq_eoi		= irq_chip_eoi_parent,
 	.irq_compose_msi_msg	= mbi_compose_msi_msg,
-	.irq_write_msi_msg	= pci_msi_domain_write_msg,
 };
 
 static struct msi_domain_info mbi_msi_domain_info = {
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1267,7 +1267,7 @@ EXPORT_SYMBOL_GPL(msi_desc_to_pci_sysdat
  * @irq_data:	Pointer to interrupt data of the MSI interrupt
  * @msg:	Pointer to the message
  */
-void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
+static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
 {
 	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -454,7 +454,6 @@ void *platform_msi_get_host_data(struct
 #endif /* CONFIG_GENERIC_MSI_IRQ_DOMAIN */
 
 #ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg);
 struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
 					     struct msi_domain_info *info,
 					     struct irq_domain *parent);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233584.405302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMT-0002WL-KU; Sat, 27 Nov 2021 01:18:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233584.405302; Sat, 27 Nov 2021 01:18:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMT-0002WC-GY; Sat, 27 Nov 2021 01:18:41 +0000
Received: by outflank-mailman (input) for mailman id 233584;
 Sat, 27 Nov 2021 01:18:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMS-00020H-Ad
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:40 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3912f96-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3912f96-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126223824.204004845@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975918;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=yyhtvslqP4HLRieVFfAZFU9HV4/e0iOdDJgsQQb4EZc=;
	b=MSnZxqs36ngrl9esIIYADuLZ5UnosIcrhDvAVsnJuf2st6ZzR4E0B8BK0WhsczGF2aQGRB
	5xqOQF7gKjLg5HtkIGZlL6qPaoikrc//4NAmvgkfntQGveJ1vh93/nybm8ts4T5eKLbe2a
	FLC989xEGaNa67pn5Vg0kHFoSDs27rxgxD2Rnj0isODzxt0/Sbu19k1Ip1s3c4baRK4jif
	2Yl57PGritygSsdkg6F0Zs/thARyj0yJ2lkp6xOmLTci5ES3K6dmvTb8S/jWtOyJovQflo
	8tWJ8Gc9G8/Jsut61YVS4TsADPfWGLjLS9cFYLeUo18ZyEvWefuwbblT+T30NQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975918;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=yyhtvslqP4HLRieVFfAZFU9HV4/e0iOdDJgsQQb4EZc=;
	b=pxjlR8C9JsyjjdEic60Abn3AE0T4g0tEBV+QqXtyNfpm9QMaaFULGX1MUnX49YqwF0yZy0
	u2vfAxS294gl3eBw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 02/22] PCI/MSI: Fix pci_irq_vector()/pci_irq_get_attinity()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:37 +0100 (CET)

pci_irq_vector() and pci_irq_get_affinity() use the list position to find the
MSI-X descriptor at a given index. That's correct for the normal case where
the entry number is the same as the list position.

But it's wrong for cases where MSI-X was allocated with an entries array
describing sparse entry numbers into the hardware message descriptor
table. That's inconsistent at best.

Make it always check the entry number because that's what the zero base
index really means. This change won't break existing users which use a
sparse entries array for allocation because these users retrieve the Linux
interrupt number from the entries array after allocation and none of them
uses pci_irq_vector() or pci_irq_get_affinity().

Fixes: aff171641d18 ("PCI: Provide sensible IRQ vector alloc/free routines")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi.c |   26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1187,19 +1187,24 @@ EXPORT_SYMBOL(pci_free_irq_vectors);
 
 /**
  * pci_irq_vector - return Linux IRQ number of a device vector
- * @dev: PCI device to operate on
- * @nr: device-relative interrupt vector index (0-based).
+ * @dev:	PCI device to operate on
+ * @nr:		Interrupt vector index (0-based)
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ *   MSI-X:	The index in the MSI-X vector table
+ *   MSI:	The index of the enabled MSI vectors
+ *   INTx:	Must be 0
+ *
+ * Return: The Linux interrupt number or -EINVAl if @nr is out of range.
  */
 int pci_irq_vector(struct pci_dev *dev, unsigned int nr)
 {
 	if (dev->msix_enabled) {
 		struct msi_desc *entry;
-		int i = 0;
 
 		for_each_pci_msi_entry(entry, dev) {
-			if (i == nr)
+			if (entry->msi_attrib.entry_nr == nr)
 				return entry->irq;
-			i++;
 		}
 		WARN_ON_ONCE(1);
 		return -EINVAL;
@@ -1223,17 +1228,22 @@ EXPORT_SYMBOL(pci_irq_vector);
  * pci_irq_get_affinity - return the affinity of a particular MSI vector
  * @dev:	PCI device to operate on
  * @nr:		device-relative interrupt vector index (0-based).
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ *   MSI-X:	The index in the MSI-X vector table
+ *   MSI:	The index of the enabled MSI vectors
+ *   INTx:	Must be 0
+ *
+ * Return: A cpumask pointer or NULL if @nr is out of range
  */
 const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
 {
 	if (dev->msix_enabled) {
 		struct msi_desc *entry;
-		int i = 0;
 
 		for_each_pci_msi_entry(entry, dev) {
-			if (i == nr)
+			if (entry->msi_attrib.entry_nr == nr)
 				return &entry->affinity->mask;
-			i++;
 		}
 		WARN_ON_ONCE(1);
 		return NULL;



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233585.405313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMW-0002om-0u; Sat, 27 Nov 2021 01:18:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233585.405313; Sat, 27 Nov 2021 01:18:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMV-0002oX-QJ; Sat, 27 Nov 2021 01:18:43 +0000
Received: by outflank-mailman (input) for mailman id 233585;
 Sat, 27 Nov 2021 01:18:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMU-0002cc-Ea
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:42 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f4160b5e-4f1f-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:18:41 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4160b5e-4f1f-11ec-b941-1df2895da90e
Message-ID: <20211126223824.263656943@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975919;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=7H7+YC/Q3X3DUjW7OFUmpmZxFX8YbEmXXunUPCxWTOo=;
	b=Q/BWnFgpqlk/Xfzvk8Enumd9Tv9t7JEEp0DHi4rSBSx9/fQFTFOMhfhrRh+HvFyTryJZg6
	2H6cR7D0a+EEDQ8oQg0OU7d/nbqiZhQyNFyo4bhXjmQLINx5jNITNbKUROyMi6k5AylsFk
	GuHYww9m3gcDcaQkDt89XO76miQ2YMD954fX/YwE6Q6bHL3HhsHaFps2ULrwJQWThfnBPG
	3yUvPsmNh5MonSc8cW1Dzr6keAHLf3o1bfK6y28a4Y/W5AQZNjHBs9tfcg+nJDTYJSjRF0
	mmE0bpwDggg4+Lb75ngYAkUXqkaFYQLfA0sUdXi6vjtaa9R6ZCz5sQ03QYCLSg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975919;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=7H7+YC/Q3X3DUjW7OFUmpmZxFX8YbEmXXunUPCxWTOo=;
	b=lOPEaRrjbm3G3ojV4Pxdg64aaahnAv+fh0zcGZd7hniH2wr2smlEjYaa9TlnTbAnZ42z1s
	Y9bOJ0tKC/T204Cg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 03/22] genirq/msi: Guard sysfs code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:39 +0100 (CET)

No point in building unused code when CONFIG_SYSFS=n.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/msi.h |   10 ++++++++++
 kernel/irq/msi.c    |    2 ++
 2 files changed, 12 insertions(+)

--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -239,9 +239,19 @@ void __pci_write_msi_msg(struct msi_desc
 void pci_msi_mask_irq(struct irq_data *data);
 void pci_msi_unmask_irq(struct irq_data *data);
 
+#ifdef CONFIG_SYSFS
 const struct attribute_group **msi_populate_sysfs(struct device *dev);
 void msi_destroy_sysfs(struct device *dev,
 		       const struct attribute_group **msi_irq_groups);
+#else
+static inline const struct attribute_group **msi_populate_sysfs(struct device *dev)
+{
+	return NULL;
+}
+static inline void msi_destroy_sysfs(struct device *dev, const struct attribute_group **msi_irq_groups)
+{
+}
+#endif
 
 /*
  * The arch hooks to setup up msi irqs. Default functions are implemented
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -72,6 +72,7 @@ void get_cached_msi_msg(unsigned int irq
 }
 EXPORT_SYMBOL_GPL(get_cached_msi_msg);
 
+#ifdef CONFIG_SYSFS
 static ssize_t msi_mode_show(struct device *dev, struct device_attribute *attr,
 			     char *buf)
 {
@@ -204,6 +205,7 @@ void msi_destroy_sysfs(struct device *de
 		kfree(msi_irq_groups);
 	}
 }
+#endif
 
 #ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN
 static inline void irq_chip_write_msi_msg(struct irq_data *data,



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233588.405345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMa-0003jf-VC; Sat, 27 Nov 2021 01:18:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233588.405345; Sat, 27 Nov 2021 01:18:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMa-0003iZ-Qe; Sat, 27 Nov 2021 01:18:48 +0000
Received: by outflank-mailman (input) for mailman id 233588;
 Sat, 27 Nov 2021 01:18:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMZ-00020H-13
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:47 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6a0c8d7-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6a0c8d7-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126223824.382273262@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975923;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=w7GncdwHZHkuO6107A0BMJdTfScXy8O2W/1Ze2L1KBI=;
	b=hRvcWzJWtpS9cJpn6ec5XsiwdSt3GIjNt8ayewjD/eh9hwlgb1/xvVV4/GfDBq35j1JSY6
	gNTVVLRFiWOl7Q6g2U0XspYHK1Xz1zZq1uR0LfL+QCvBgAeGrkjmRzOPsB9pZC5q8eBLWi
	Miu93VAKW6OCnVvlthatKyfHJOAczWW28Jui0oK0HjaKvI8jyb2hTX5R3UwIS9y70AJTKu
	ksrfsAxNB2Jfxd1CcyojtkmzQjXjSymAoG5tn8yNmv84aIU9DMLljzKenOliB09zgVb8U6
	D7jbg1L0Rx8OI4T4ciQzpXUtVYdwdBkots+z+IuOV1rReP32BLWXVPUxWjzJiw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975923;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=w7GncdwHZHkuO6107A0BMJdTfScXy8O2W/1Ze2L1KBI=;
	b=g1chgF1PPE1Vu9aoCMCQV96amhB0EJgwXDPy4IycnPsMua9xAiLx9zn0a6p/WZmfDz106b
	yo4Vc3VfVsFX/VCw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 05/22] genirq/msi: Fixup includes
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:42 +0100 (CET)

Remove the kobject.h include from msi.h as it's not required and add a
sysfs.h include to the core code instead.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/msi.h |    1 -
 kernel/irq/msi.c    |    1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -2,7 +2,6 @@
 #ifndef LINUX_MSI_H
 #define LINUX_MSI_H
 
-#include <linux/kobject.h>
 #include <linux/list.h>
 #include <asm/msi.h>
 
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -14,6 +14,7 @@
 #include <linux/irqdomain.h>
 #include <linux/msi.h>
 #include <linux/slab.h>
+#include <linux/sysfs.h>
 #include <linux/pci.h>
 
 #include "internals.h"



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233589.405351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMb-0003oE-Jt; Sat, 27 Nov 2021 01:18:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233589.405351; Sat, 27 Nov 2021 01:18:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMb-0003nE-9y; Sat, 27 Nov 2021 01:18:49 +0000
Received: by outflank-mailman (input) for mailman id 233589;
 Sat, 27 Nov 2021 01:18:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMa-00020H-1Y
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:48 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7d083cc-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7d083cc-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126223824.499448912@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975926;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=+rP3SiVoHOK5Hyn2EAGrDg54y7+IEHUse42w3xFRuo4=;
	b=en2BVqplFMhJlJ/67iu0Edu2NrGl2YoL7tfUkBXuWGzeU2hxeKRsBezk52+o99rxhr3938
	TRs0SQYeEY0XTWyetTmz5VEY4LyU/pCwOfsvgmIpv0evVB0njacCp5HZd95Lk6yEtPp2qC
	d1p1yOFMjNpOmU2EZz/humF1AL+c2gchzbmiK8fKoyFQFRNZr0ge/HjuNEWf7dAqZ3u/dl
	ZGfz8C379X5x+ikPMgYdarUXfu9tN65dbvfK9I1hJFDQrDXnn2iLf1UCuWBh5HtK4Sw7VS
	fwKOlxrXeck+pJ2IkumMPe/8tucPvP0pUZ/lUZw7GXQSElER8i5i2Fkh/6Q4mA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975926;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=+rP3SiVoHOK5Hyn2EAGrDg54y7+IEHUse42w3xFRuo4=;
	b=4hUVGqAr7Jj3KAwcapzMWVWkLocnYS1dwMuxMKLswtqj7uo9lVzO01+ZZON8j5/GAbX8Ix
	yWVdyyLvdQ59eaCw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 07/22] PCI/MSI: Remove msi_desc_to_pci_sysdata()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:45 +0100 (CET)

Last user is gone long ago.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi.c   |    8 --------
 include/linux/msi.h |    5 -----
 2 files changed, 13 deletions(-)

--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1253,14 +1253,6 @@ struct pci_dev *msi_desc_to_pci_dev(stru
 }
 EXPORT_SYMBOL(msi_desc_to_pci_dev);
 
-void *msi_desc_to_pci_sysdata(struct msi_desc *desc)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
-
-	return dev->bus->sysdata;
-}
-EXPORT_SYMBOL_GPL(msi_desc_to_pci_sysdata);
-
 #ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
 /**
  * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -217,13 +217,8 @@ static inline void msi_desc_set_iommu_co
 	for_each_msi_entry((desc), &(pdev)->dev)
 
 struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc);
-void *msi_desc_to_pci_sysdata(struct msi_desc *desc);
 void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg);
 #else /* CONFIG_PCI_MSI */
-static inline void *msi_desc_to_pci_sysdata(struct msi_desc *desc)
-{
-	return NULL;
-}
 static inline void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg)
 {
 }



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233590.405368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMe-0004Pm-8M; Sat, 27 Nov 2021 01:18:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233590.405368; Sat, 27 Nov 2021 01:18:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMd-0004P2-Ub; Sat, 27 Nov 2021 01:18:51 +0000
Received: by outflank-mailman (input) for mailman id 233590;
 Sat, 27 Nov 2021 01:18:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMc-0002cc-CX
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:50 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9e47dbe-4f1f-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:18:49 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9e47dbe-4f1f-11ec-b941-1df2895da90e
Message-ID: <20211126223824.558746009@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975927;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=t8fdQf5v0Re3s6aU2w+RDhHEUcAYg2OEvsShj+q+pN4=;
	b=cmxuu0+S0CsZgYZ32HYbpri2Sd336Qg0Z/c81KGZv/d8VT2cx3pO+wemLvUEb8/rZzqWVq
	0Aee2el4uFtUTEwM4NevFSfRRWXl8VsohVUQkWOKC+PX0UQyocXwd13XzgnMnq75EbEPpc
	0XDH6VZ4F6aY7FGjwQjBxCJ7S/gKrxXo/ft3a22JYLKHH+h+Axgwy8gMgGdardXG7mD8wm
	3V4bu8HbHxltFdFVIZbZpYe1L772kd6xKP36Y2xY0IxJPYxSmaQFkKvdAoQKrvZZSPMg4i
	ILG/RGrZ7qSuIfwivCkd64S54zttW12a2Bqgv90Is3DfVoXms2CX5Xi+tguk7Q==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975927;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=t8fdQf5v0Re3s6aU2w+RDhHEUcAYg2OEvsShj+q+pN4=;
	b=cZ5icEO1gkVwPGoTe3vcr7yZhvwpxdLRW5DA8ZhfyEhQ1AqnzzWnOcXhvMTVspkGXfUHDc
	LU+g5W5AGkvQPBCg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 08/22] PCI/sysfs: Use pci_irq_vector()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:47 +0100 (CET)

instead of fiddling with msi descriptors.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/pci-sysfs.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -62,11 +62,8 @@ static ssize_t irq_show(struct device *d
 	 * For MSI, show the first MSI IRQ; for all other cases including
 	 * MSI-X, show the legacy INTx IRQ.
 	 */
-	if (pdev->msi_enabled) {
-		struct msi_desc *desc = first_pci_msi_entry(pdev);
-
-		return sysfs_emit(buf, "%u\n", desc->irq);
-	}
+	if (pdev->msi_enabled)
+		return sysfs_emit(buf, "%u\n", pci_irq_vector(pdev, 0));
 #endif
 
 	return sysfs_emit(buf, "%u\n", pdev->irq);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233591.405372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMf-0004XB-17; Sat, 27 Nov 2021 01:18:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233591.405372; Sat, 27 Nov 2021 01:18:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMe-0004Uh-LE; Sat, 27 Nov 2021 01:18:52 +0000
Received: by outflank-mailman (input) for mailman id 233591;
 Sat, 27 Nov 2021 01:18:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMc-00020H-GH
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:50 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f9e604c8-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:49 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9e604c8-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126223824.618089023@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975929;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=AC2FZ3NgPgtEmYfcPESal194oN272JgZRDrbkWg3jyI=;
	b=fY2o7bDZAUVc/zoI1x+1iRosxr2o2nOfaSNbzN7bFTNRKIq0WzWEHfq/yLnAGd6hff0U9n
	oSfclkWuqUl8kL0RsAjXx/6ZF/8AgYMW392ffBX68wjqMTfc9LsyqwphWk32oKADWGFmZg
	LMS75NESl6jj6lfsrSs7STcgr/rqRpvCNcjveF5FEEZ4BXGz1QOfOXz8p2PLkQcGAi8DL8
	13N+zlDE0Y8kK2uM6gcnpAN4PSK+XxyxqfhISdV6PVrTMh8xtSBavQThj6ET55FLZP/Xtv
	T9/pwLYQjtVROBa4RukaM2jD0Mspyu8Aj1dW+31SqK2OwIpA+qBnfuXpm68ZZQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975929;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=AC2FZ3NgPgtEmYfcPESal194oN272JgZRDrbkWg3jyI=;
	b=IYYLi9B8sK3zKuIQC8Azf7fN1Zp2VtQ/UXo2UA05k/m9XK5bwyWcY9FFuGj7In2IEZpvp6
	C+cyGGYnlNvmfcCQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 09/22] MIPS: Octeon: Use arch_setup_msi_irq()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:48 +0100 (CET)

The core code provides the same loop code except for the MSI-X reject. Move
that to arch_setup_msi_irq() and remove the duplicated code.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: linux-mips@vger.kernel.org
---
 arch/mips/pci/msi-octeon.c |   32 +++-----------------------------
 1 file changed, 3 insertions(+), 29 deletions(-)

--- a/arch/mips/pci/msi-octeon.c
+++ b/arch/mips/pci/msi-octeon.c
@@ -68,6 +68,9 @@ int arch_setup_msi_irq(struct pci_dev *d
 	u64 search_mask;
 	int index;
 
+	if (desc->pci.msi_attrib.is_msix)
+		return -EINVAL;
+
 	/*
 	 * Read the MSI config to figure out how many IRQs this device
 	 * wants.  Most devices only want 1, which will give
@@ -182,35 +185,6 @@ int arch_setup_msi_irq(struct pci_dev *d
 	return 0;
 }
 
-int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct msi_desc *entry;
-	int ret;
-
-	/*
-	 * MSI-X is not supported.
-	 */
-	if (type == PCI_CAP_ID_MSIX)
-		return -EINVAL;
-
-	/*
-	 * If an architecture wants to support multiple MSI, it needs to
-	 * override arch_setup_msi_irqs()
-	 */
-	if (type == PCI_CAP_ID_MSI && nvec > 1)
-		return 1;
-
-	for_each_pci_msi_entry(entry, dev) {
-		ret = arch_setup_msi_irq(dev, entry);
-		if (ret < 0)
-			return ret;
-		if (ret > 0)
-			return -ENOSPC;
-	}
-
-	return 0;
-}
-
 /**
  * Called when a device no longer needs its MSI interrupts. All
  * MSI interrupts for the device are freed.



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233592.405387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMh-0005Hl-Rx; Sat, 27 Nov 2021 01:18:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233592.405387; Sat, 27 Nov 2021 01:18:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMh-0005DE-H9; Sat, 27 Nov 2021 01:18:55 +0000
Received: by outflank-mailman (input) for mailman id 233592;
 Sat, 27 Nov 2021 01:18:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMf-0002cc-Bm
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:53 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb3d4138-4f1f-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:18:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb3d4138-4f1f-11ec-b941-1df2895da90e
Message-ID: <20211126223824.679247706@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975930;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=4rnzffhngGnxTe5PEkZvVRK1c33wDUixOezkjXJ0tvw=;
	b=Uj83LaaCBLX0M2s+rkZNQWM1IjsMBxh/1C3rjNhDyw2V+CffLTN8UkYpiB7EngUzAmvZU8
	gmOAQLjn+JvJ+sRBcqVYlNUMzze2inbDdDPpStg43/VHRJ1HytwMDcRP6DLpem2lCjngna
	RYL2me2JYwirlT+0gOfjhSHyH3nCd5r14H2xwMLBO8PzrJf9ryHr70MXMrSaN5CcPq/3wC
	EvedPjPglflCQzI/mEArSJhCyLeOGS38wpHkvWQMrM+9dIlTz3Vn87kZ6tRh9e/QRJnuxB
	N4lWZPIQlLZR7aW/ZwWhAE0UKdRN9Cm0YOq4AeZB3Xah7oQFk2gfweLp6vsChQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975930;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=4rnzffhngGnxTe5PEkZvVRK1c33wDUixOezkjXJ0tvw=;
	b=dC6kwZ+kxNSOxTbv2BTyYFsv/INPIrxdrDJGw9FMMLh0sQ5L6dD1VyyoOtlOF7H4KdjUSr
	/IJ9VJ3PhXBkzlAA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject:
 [patch 10/22] genirq/msi, treewide: Use a named struct for PCI/MSI attributes
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:50 +0100 (CET)

The unnamed struct sucks and is in the way of further cleanups. Stick the
PCI related MSI data into a real data structure and cleanup all users.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: sparclinux@vger.kernel.org
Cc: x86@kernel.org
Cc: xen-devel@lists.xenproject.org
Cc: ath11k@lists.infradead.org
---
 arch/powerpc/platforms/cell/axon_msi.c    |    2 
 arch/powerpc/platforms/powernv/pci-ioda.c |    4 -
 arch/powerpc/platforms/pseries/msi.c      |    6 -
 arch/sparc/kernel/pci_msi.c               |    4 -
 arch/x86/kernel/apic/msi.c                |    2 
 arch/x86/pci/xen.c                        |    6 -
 drivers/net/wireless/ath/ath11k/pci.c     |    2 
 drivers/pci/msi.c                         |  116 +++++++++++++++---------------
 drivers/pci/xen-pcifront.c                |    2 
 include/linux/msi.h                       |   84 ++++++++++-----------
 kernel/irq/msi.c                          |    4 -
 11 files changed, 115 insertions(+), 117 deletions(-)

--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -212,7 +212,7 @@ static int setup_msi_msg_address(struct
 	entry = first_pci_msi_entry(dev);
 
 	for (; dn; dn = of_get_next_parent(dn)) {
-		if (entry->msi_attrib.is_64) {
+		if (entry->pci.msi_attrib.is_64) {
 			prop = of_get_property(dn, "msi-address-64", &len);
 			if (prop)
 				break;
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -2154,10 +2154,10 @@ static void pnv_msi_compose_msg(struct i
 	int rc;
 
 	rc = __pnv_pci_ioda_msi_setup(phb, pdev, d->hwirq,
-				      entry->msi_attrib.is_64, msg);
+				      entry->pci.msi_attrib.is_64, msg);
 	if (rc)
 		dev_err(&pdev->dev, "Failed to setup %s-bit MSI #%ld : %d\n",
-			entry->msi_attrib.is_64 ? "64" : "32", d->hwirq, rc);
+			entry->pci.msi_attrib.is_64 ? "64" : "32", d->hwirq, rc);
 }
 
 /*
--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -332,7 +332,7 @@ static int check_msix_entries(struct pci
 
 	expected = 0;
 	for_each_pci_msi_entry(entry, pdev) {
-		if (entry->msi_attrib.entry_nr != expected) {
+		if (entry->pci.msi_attrib.entry_nr != expected) {
 			pr_debug("rtas_msi: bad MSI-X entries.\n");
 			return -EINVAL;
 		}
@@ -449,7 +449,7 @@ static int pseries_msi_ops_prepare(struc
 {
 	struct pci_dev *pdev = to_pci_dev(dev);
 	struct msi_desc *desc = first_pci_msi_entry(pdev);
-	int type = desc->msi_attrib.is_msix ? PCI_CAP_ID_MSIX : PCI_CAP_ID_MSI;
+	int type = desc->pci.msi_attrib.is_msix ? PCI_CAP_ID_MSIX : PCI_CAP_ID_MSI;
 
 	return rtas_prepare_msi_irqs(pdev, nvec, type, arg);
 }
@@ -580,7 +580,7 @@ static int pseries_irq_domain_alloc(stru
 	int hwirq;
 	int i, ret;
 
-	hwirq = rtas_query_irq_number(pci_get_pdn(pdev), desc->msi_attrib.entry_nr);
+	hwirq = rtas_query_irq_number(pci_get_pdn(pdev), desc->pci.msi_attrib.entry_nr);
 	if (hwirq < 0) {
 		dev_err(&pdev->dev, "Failed to query HW IRQ: %d\n", hwirq);
 		return hwirq;
--- a/arch/sparc/kernel/pci_msi.c
+++ b/arch/sparc/kernel/pci_msi.c
@@ -146,13 +146,13 @@ static int sparc64_setup_msi_irq(unsigne
 	msiqid = pick_msiq(pbm);
 
 	err = ops->msi_setup(pbm, msiqid, msi,
-			     (entry->msi_attrib.is_64 ? 1 : 0));
+			     (entry->pci.msi_attrib.is_64 ? 1 : 0));
 	if (err)
 		goto out_msi_free;
 
 	pbm->msi_irq_table[msi - pbm->msi_first] = *irq_p;
 
-	if (entry->msi_attrib.is_64) {
+	if (entry->pci.msi_attrib.is_64) {
 		msg.address_hi = pbm->msi64_start >> 32;
 		msg.address_lo = pbm->msi64_start & 0xffffffff;
 	} else {
--- a/arch/x86/kernel/apic/msi.c
+++ b/arch/x86/kernel/apic/msi.c
@@ -163,7 +163,7 @@ int pci_msi_prepare(struct irq_domain *d
 	struct msi_desc *desc = first_pci_msi_entry(pdev);
 
 	init_irq_alloc_info(arg, NULL);
-	if (desc->msi_attrib.is_msix) {
+	if (desc->pci.msi_attrib.is_msix) {
 		arg->type = X86_IRQ_ALLOC_TYPE_PCI_MSIX;
 	} else {
 		arg->type = X86_IRQ_ALLOC_TYPE_PCI_MSI;
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -306,7 +306,7 @@ static int xen_initdom_setup_msi_irqs(st
 				return -EINVAL;
 
 			map_irq.table_base = pci_resource_start(dev, bir);
-			map_irq.entry_nr = msidesc->msi_attrib.entry_nr;
+			map_irq.entry_nr = msidesc->pci.msi_attrib.entry_nr;
 		}
 
 		ret = -EINVAL;
@@ -398,7 +398,7 @@ static void xen_pv_teardown_msi_irqs(str
 {
 	struct msi_desc *msidesc = first_pci_msi_entry(dev);
 
-	if (msidesc->msi_attrib.is_msix)
+	if (msidesc->pci.msi_attrib.is_msix)
 		xen_pci_frontend_disable_msix(dev);
 	else
 		xen_pci_frontend_disable_msi(dev);
@@ -414,7 +414,7 @@ static int xen_msi_domain_alloc_irqs(str
 	if (WARN_ON_ONCE(!dev_is_pci(dev)))
 		return -EINVAL;
 
-	if (first_msi_entry(dev)->msi_attrib.is_msix)
+	if (first_msi_entry(dev)->pci.msi_attrib.is_msix)
 		type = PCI_CAP_ID_MSIX;
 	else
 		type = PCI_CAP_ID_MSI;
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -911,7 +911,7 @@ static int ath11k_pci_alloc_msi(struct a
 	}
 
 	ab_pci->msi_ep_base_data = msi_desc->msg.data;
-	if (msi_desc->msi_attrib.is_64)
+	if (msi_desc->pci.msi_attrib.is_64)
 		set_bit(ATH11K_PCI_FLAG_IS_MSI_64, &ab_pci->flags);
 
 	ath11k_dbg(ab, ATH11K_DBG_PCI, "msi base data is %d\n", ab_pci->msi_ep_base_data);
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -138,9 +138,9 @@ void __weak arch_restore_msi_irqs(struct
 static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
 {
 	/* Don't shift by >= width of type */
-	if (desc->msi_attrib.multi_cap >= 5)
+	if (desc->pci.msi_attrib.multi_cap >= 5)
 		return 0xffffffff;
-	return (1 << (1 << desc->msi_attrib.multi_cap)) - 1;
+	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
 }
 
 static noinline void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set)
@@ -148,14 +148,14 @@ static noinline void pci_msi_update_mask
 	raw_spinlock_t *lock = &desc->dev->msi_lock;
 	unsigned long flags;
 
-	if (!desc->msi_attrib.can_mask)
+	if (!desc->pci.msi_attrib.can_mask)
 		return;
 
 	raw_spin_lock_irqsave(lock, flags);
-	desc->msi_mask &= ~clear;
-	desc->msi_mask |= set;
-	pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->mask_pos,
-			       desc->msi_mask);
+	desc->pci.msi_mask &= ~clear;
+	desc->pci.msi_mask |= set;
+	pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->pci.mask_pos,
+			       desc->pci.msi_mask);
 	raw_spin_unlock_irqrestore(lock, flags);
 }
 
@@ -171,7 +171,7 @@ static inline void pci_msi_unmask(struct
 
 static inline void __iomem *pci_msix_desc_addr(struct msi_desc *desc)
 {
-	return desc->mask_base + desc->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE;
+	return desc->pci.mask_base + desc->pci.msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE;
 }
 
 /*
@@ -184,27 +184,27 @@ static void pci_msix_write_vector_ctrl(s
 {
 	void __iomem *desc_addr = pci_msix_desc_addr(desc);
 
-	if (desc->msi_attrib.can_mask)
+	if (desc->pci.msi_attrib.can_mask)
 		writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
 }
 
 static inline void pci_msix_mask(struct msi_desc *desc)
 {
-	desc->msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	pci_msix_write_vector_ctrl(desc, desc->msix_ctrl);
+	desc->pci.msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
 	/* Flush write to device */
-	readl(desc->mask_base);
+	readl(desc->pci.mask_base);
 }
 
 static inline void pci_msix_unmask(struct msi_desc *desc)
 {
-	desc->msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	pci_msix_write_vector_ctrl(desc, desc->msix_ctrl);
+	desc->pci.msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
 }
 
 static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
 {
-	if (desc->msi_attrib.is_msix)
+	if (desc->pci.msi_attrib.is_msix)
 		pci_msix_mask(desc);
 	else
 		pci_msi_mask(desc, mask);
@@ -212,7 +212,7 @@ static void __pci_msi_mask_desc(struct m
 
 static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
 {
-	if (desc->msi_attrib.is_msix)
+	if (desc->pci.msi_attrib.is_msix)
 		pci_msix_unmask(desc);
 	else
 		pci_msi_unmask(desc, mask);
@@ -256,10 +256,10 @@ void __pci_read_msi_msg(struct msi_desc
 
 	BUG_ON(dev->current_state != PCI_D0);
 
-	if (entry->msi_attrib.is_msix) {
+	if (entry->pci.msi_attrib.is_msix) {
 		void __iomem *base = pci_msix_desc_addr(entry);
 
-		if (WARN_ON_ONCE(entry->msi_attrib.is_virtual))
+		if (WARN_ON_ONCE(entry->pci.msi_attrib.is_virtual))
 			return;
 
 		msg->address_lo = readl(base + PCI_MSIX_ENTRY_LOWER_ADDR);
@@ -271,7 +271,7 @@ void __pci_read_msi_msg(struct msi_desc
 
 		pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
 				      &msg->address_lo);
-		if (entry->msi_attrib.is_64) {
+		if (entry->pci.msi_attrib.is_64) {
 			pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
 					      &msg->address_hi);
 			pci_read_config_word(dev, pos + PCI_MSI_DATA_64, &data);
@@ -289,12 +289,12 @@ void __pci_write_msi_msg(struct msi_desc
 
 	if (dev->current_state != PCI_D0 || pci_dev_is_disconnected(dev)) {
 		/* Don't touch the hardware now */
-	} else if (entry->msi_attrib.is_msix) {
+	} else if (entry->pci.msi_attrib.is_msix) {
 		void __iomem *base = pci_msix_desc_addr(entry);
-		u32 ctrl = entry->msix_ctrl;
+		u32 ctrl = entry->pci.msix_ctrl;
 		bool unmasked = !(ctrl & PCI_MSIX_ENTRY_CTRL_MASKBIT);
 
-		if (entry->msi_attrib.is_virtual)
+		if (entry->pci.msi_attrib.is_virtual)
 			goto skip;
 
 		/*
@@ -323,12 +323,12 @@ void __pci_write_msi_msg(struct msi_desc
 
 		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
 		msgctl &= ~PCI_MSI_FLAGS_QSIZE;
-		msgctl |= entry->msi_attrib.multiple << 4;
+		msgctl |= entry->pci.msi_attrib.multiple << 4;
 		pci_write_config_word(dev, pos + PCI_MSI_FLAGS, msgctl);
 
 		pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
 				       msg->address_lo);
-		if (entry->msi_attrib.is_64) {
+		if (entry->pci.msi_attrib.is_64) {
 			pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
 					       msg->address_hi);
 			pci_write_config_word(dev, pos + PCI_MSI_DATA_64,
@@ -376,9 +376,9 @@ static void free_msi_irqs(struct pci_dev
 	pci_msi_teardown_msi_irqs(dev);
 
 	list_for_each_entry_safe(entry, tmp, msi_list, list) {
-		if (entry->msi_attrib.is_msix) {
+		if (entry->pci.msi_attrib.is_msix) {
 			if (list_is_last(&entry->list, msi_list))
-				iounmap(entry->mask_base);
+				iounmap(entry->pci.mask_base);
 		}
 
 		list_del(&entry->list);
@@ -420,7 +420,7 @@ static void __pci_restore_msi_state(stru
 	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
 	pci_msi_update_mask(entry, 0, 0);
 	control &= ~PCI_MSI_FLAGS_QSIZE;
-	control |= (entry->msi_attrib.multiple << 4) | PCI_MSI_FLAGS_ENABLE;
+	control |= (entry->pci.msi_attrib.multiple << 4) | PCI_MSI_FLAGS_ENABLE;
 	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
 }
 
@@ -449,7 +449,7 @@ static void __pci_restore_msix_state(str
 
 	arch_restore_msi_irqs(dev);
 	for_each_pci_msi_entry(entry, dev)
-		pci_msix_write_vector_ctrl(entry, entry->msix_ctrl);
+		pci_msix_write_vector_ctrl(entry, entry->pci.msix_ctrl);
 
 	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
 }
@@ -481,24 +481,24 @@ msi_setup_entry(struct pci_dev *dev, int
 	if (dev->dev_flags & PCI_DEV_FLAGS_HAS_MSI_MASKING)
 		control |= PCI_MSI_FLAGS_MASKBIT;
 
-	entry->msi_attrib.is_msix	= 0;
-	entry->msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
-	entry->msi_attrib.is_virtual    = 0;
-	entry->msi_attrib.entry_nr	= 0;
-	entry->msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+	entry->pci.msi_attrib.is_msix	= 0;
+	entry->pci.msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
+	entry->pci.msi_attrib.is_virtual    = 0;
+	entry->pci.msi_attrib.entry_nr	= 0;
+	entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
 					  !!(control & PCI_MSI_FLAGS_MASKBIT);
-	entry->msi_attrib.default_irq	= dev->irq;	/* Save IOAPIC IRQ */
-	entry->msi_attrib.multi_cap	= (control & PCI_MSI_FLAGS_QMASK) >> 1;
-	entry->msi_attrib.multiple	= ilog2(__roundup_pow_of_two(nvec));
+	entry->pci.msi_attrib.default_irq	= dev->irq;	/* Save IOAPIC IRQ */
+	entry->pci.msi_attrib.multi_cap	= (control & PCI_MSI_FLAGS_QMASK) >> 1;
+	entry->pci.msi_attrib.multiple	= ilog2(__roundup_pow_of_two(nvec));
 
 	if (control & PCI_MSI_FLAGS_64BIT)
-		entry->mask_pos = dev->msi_cap + PCI_MSI_MASK_64;
+		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_64;
 	else
-		entry->mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
+		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
 
 	/* Save the initial mask status */
-	if (entry->msi_attrib.can_mask)
-		pci_read_config_dword(dev, entry->mask_pos, &entry->msi_mask);
+	if (entry->pci.msi_attrib.can_mask)
+		pci_read_config_dword(dev, entry->pci.mask_pos, &entry->pci.msi_mask);
 
 out:
 	kfree(masks);
@@ -630,26 +630,26 @@ static int msix_setup_entries(struct pci
 			goto out;
 		}
 
-		entry->msi_attrib.is_msix	= 1;
-		entry->msi_attrib.is_64		= 1;
+		entry->pci.msi_attrib.is_msix	= 1;
+		entry->pci.msi_attrib.is_64	= 1;
 
 		if (entries)
-			entry->msi_attrib.entry_nr = entries[i].entry;
+			entry->pci.msi_attrib.entry_nr = entries[i].entry;
 		else
-			entry->msi_attrib.entry_nr = i;
+			entry->pci.msi_attrib.entry_nr = i;
 
-		entry->msi_attrib.is_virtual =
-			entry->msi_attrib.entry_nr >= vec_count;
+		entry->pci.msi_attrib.is_virtual =
+			entry->pci.msi_attrib.entry_nr >= vec_count;
 
-		entry->msi_attrib.can_mask	= !pci_msi_ignore_mask &&
-						  !entry->msi_attrib.is_virtual;
+		entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+						  !entry->pci.msi_attrib.is_virtual;
 
-		entry->msi_attrib.default_irq	= dev->irq;
-		entry->mask_base		= base;
+		entry->pci.msi_attrib.default_irq	= dev->irq;
+		entry->pci.mask_base			= base;
 
-		if (entry->msi_attrib.can_mask) {
+		if (entry->pci.msi_attrib.can_mask) {
 			addr = pci_msix_desc_addr(entry);
-			entry->msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
+			entry->pci.msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
 		}
 
 		list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
@@ -874,7 +874,7 @@ static void pci_msi_shutdown(struct pci_
 	pci_msi_unmask(desc, msi_multi_mask(desc));
 
 	/* Restore dev->irq to its default pin-assertion IRQ */
-	dev->irq = desc->msi_attrib.default_irq;
+	dev->irq = desc->pci.msi_attrib.default_irq;
 	pcibios_alloc_irq(dev);
 }
 
@@ -1196,7 +1196,7 @@ int pci_irq_vector(struct pci_dev *dev,
 		struct msi_desc *entry;
 
 		for_each_pci_msi_entry(entry, dev) {
-			if (entry->msi_attrib.entry_nr == nr)
+			if (entry->pci.msi_attrib.entry_nr == nr)
 				return entry->irq;
 		}
 		WARN_ON_ONCE(1);
@@ -1228,7 +1228,7 @@ const struct cpumask *pci_irq_get_affini
 		struct msi_desc *entry;
 
 		for_each_pci_msi_entry(entry, dev) {
-			if (entry->msi_attrib.entry_nr == nr)
+			if (entry->pci.msi_attrib.entry_nr == nr)
 				return &entry->affinity->mask;
 		}
 		WARN_ON_ONCE(1);
@@ -1281,14 +1281,14 @@ static irq_hw_number_t pci_msi_domain_ca
 {
 	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
 
-	return (irq_hw_number_t)desc->msi_attrib.entry_nr |
+	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
 		pci_dev_id(dev) << 11 |
 		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
 }
 
 static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
 {
-	return !desc->msi_attrib.is_msix && desc->nvec_used > 1;
+	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
 }
 
 /**
@@ -1312,7 +1312,7 @@ int pci_msi_domain_check_cap(struct irq_
 	if (pci_msi_desc_is_multi_msi(desc) &&
 	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
 		return 1;
-	else if (desc->msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
+	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
 		return -ENOTSUPP;
 
 	return 0;
--- a/drivers/pci/xen-pcifront.c
+++ b/drivers/pci/xen-pcifront.c
@@ -263,7 +263,7 @@ static int pci_frontend_enable_msix(stru
 
 	i = 0;
 	for_each_pci_msi_entry(entry, dev) {
-		op.msix_entries[i].entry = entry->msi_attrib.entry_nr;
+		op.msix_entries[i].entry = entry->pci.msi_attrib.entry_nr;
 		/* Vector is useless at this point. */
 		op.msix_entries[i].vector = -1;
 		i++;
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -68,6 +68,42 @@ typedef void (*irq_write_msi_msg_t)(stru
 				    struct msi_msg *msg);
 
 /**
+ * pci_msi_desc - PCI/MSI specific MSI descriptor data
+ *
+ * @msi_mask:	[PCI MSI]   MSI cached mask bits
+ * @msix_ctrl:	[PCI MSI-X] MSI-X cached per vector control bits
+ * @is_msix:	[PCI MSI/X] True if MSI-X
+ * @multiple:	[PCI MSI/X] log2 num of messages allocated
+ * @multi_cap:	[PCI MSI/X] log2 num of messages supported
+ * @can_mask:	[PCI MSI/X] Masking supported?
+ * @is_64:	[PCI MSI/X] Address size: 0=32bit 1=64bit
+ * @entry_nr:	[PCI MSI/X] Entry which is described by this descriptor
+ * @default_irq:[PCI MSI/X] The default pre-assigned non-MSI irq
+ * @mask_pos:	[PCI MSI]   Mask register position
+ * @mask_base:	[PCI MSI-X] Mask register base address
+ */
+struct pci_msi_desc {
+	union {
+		u32 msi_mask;
+		u32 msix_ctrl;
+	};
+	struct {
+		u8	is_msix		: 1;
+		u8	multiple	: 3;
+		u8	multi_cap	: 3;
+		u8	can_mask	: 1;
+		u8	is_64		: 1;
+		u8	is_virtual	: 1;
+		u16	entry_nr;
+		unsigned default_irq;
+	} msi_attrib;
+	union {
+		u8	mask_pos;
+		void __iomem *mask_base;
+	};
+};
+
+/**
  * platform_msi_desc - Platform device specific msi descriptor data
  * @msi_priv_data:	Pointer to platform private data
  * @msi_index:		The index of the MSI descriptor for multi MSI
@@ -106,17 +142,7 @@ struct ti_sci_inta_msi_desc {
  *			address or data changes
  * @write_msi_msg_data:	Data parameter for the callback.
  *
- * @msi_mask:	[PCI MSI]   MSI cached mask bits
- * @msix_ctrl:	[PCI MSI-X] MSI-X cached per vector control bits
- * @is_msix:	[PCI MSI/X] True if MSI-X
- * @multiple:	[PCI MSI/X] log2 num of messages allocated
- * @multi_cap:	[PCI MSI/X] log2 num of messages supported
- * @maskbit:	[PCI MSI/X] Mask-Pending bit supported?
- * @is_64:	[PCI MSI/X] Address size: 0=32bit 1=64bit
- * @entry_nr:	[PCI MSI/X] Entry which is described by this descriptor
- * @default_irq:[PCI MSI/X] The default pre-assigned non-MSI irq
- * @mask_pos:	[PCI MSI]   Mask register position
- * @mask_base:	[PCI MSI-X] Mask register base address
+ * @pci:	[PCI]	    PCI speficic msi descriptor data
  * @platform:	[platform]  Platform device specific msi descriptor data
  * @fsl_mc:	[fsl-mc]    FSL MC device specific msi descriptor data
  * @inta:	[INTA]	    TISCI based INTA specific msi descriptor data
@@ -137,38 +163,10 @@ struct msi_desc {
 	void *write_msi_msg_data;
 
 	union {
-		/* PCI MSI/X specific data */
-		struct {
-			union {
-				u32 msi_mask;
-				u32 msix_ctrl;
-			};
-			struct {
-				u8	is_msix		: 1;
-				u8	multiple	: 3;
-				u8	multi_cap	: 3;
-				u8	can_mask	: 1;
-				u8	is_64		: 1;
-				u8	is_virtual	: 1;
-				u16	entry_nr;
-				unsigned default_irq;
-			} msi_attrib;
-			union {
-				u8	mask_pos;
-				void __iomem *mask_base;
-			};
-		};
-
-		/*
-		 * Non PCI variants add their data structure here. New
-		 * entries need to use a named structure. We want
-		 * proper name spaces for this. The PCI part is
-		 * anonymous for now as it would require an immediate
-		 * tree wide cleanup.
-		 */
-		struct platform_msi_desc platform;
-		struct fsl_mc_msi_desc fsl_mc;
-		struct ti_sci_inta_msi_desc inta;
+		struct pci_msi_desc		pci;
+		struct platform_msi_desc	platform;
+		struct fsl_mc_msi_desc		fsl_mc;
+		struct ti_sci_inta_msi_desc	inta;
 	};
 };
 
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -91,7 +91,7 @@ static ssize_t msi_mode_show(struct devi
 		return -ENODEV;
 
 	if (dev_is_pci(dev))
-		is_msix = entry->msi_attrib.is_msix;
+		is_msix = entry->pci.msi_attrib.is_msix;
 
 	return sysfs_emit(buf, "%s\n", is_msix ? "msix" : "msi");
 }
@@ -535,7 +535,7 @@ static bool msi_check_reservation_mode(s
 	 * masking and MSI does so when the can_mask attribute is set.
 	 */
 	desc = first_msi_entry(dev);
-	return desc->msi_attrib.is_msix || desc->msi_attrib.can_mask;
+	return desc->pci.msi_attrib.is_msix || desc->pci.msi_attrib.can_mask;
 }
 
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233593.405394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMj-0005Y0-GM; Sat, 27 Nov 2021 01:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233593.405394; Sat, 27 Nov 2021 01:18:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMi-0005Tn-PI; Sat, 27 Nov 2021 01:18:56 +0000
Received: by outflank-mailman (input) for mailman id 233593;
 Sat, 27 Nov 2021 01:18:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMg-0002cc-3K
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:54 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fbc47146-4f1f-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:18:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbc47146-4f1f-11ec-b941-1df2895da90e
Message-ID: <20211126223824.737214551@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975932;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=aZOv1txgfOaOUbPFrZO+dbMPb9SLUMuv6lc2RMuyFjg=;
	b=nxj8kvRG0udwnyf6qeanYo6Y4W8sZG5eqxablsikiqcCTA7VdivSUMTsYQKJzLxw6OH8wK
	URC4Potp5y1ag0slj7KxMuRCI+jgKS8c+FDtIXu+GjNrGKyWdq8mzVdDAtQeYZAPF8QeJp
	mEC2VvlU+WC1dQQyvctPXd9CKM/Bper6bdkyneDsU7gSI4Syz1McOMndl4JO4LO314Hzl9
	xZjk7yCqKwmQqLZS7YQRflq9kqQj/mgdAtXrFAh2sIRdgapxhlCo1uAjoVZ1WQcMdpXITj
	jEf/N1becZCL3GaG7EAAq2c+wY32vqs051c+pgYRG4wAeO0HTTX8Oi7yRxcUlg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975932;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=aZOv1txgfOaOUbPFrZO+dbMPb9SLUMuv6lc2RMuyFjg=;
	b=QQP1VVw6WuTJXvvOWqLKDexxgcwgpEeBUNVJEa0ULD4SwafNzfa75ksMJErjOcHpZVno3B
	Gmeyg67Xv64c4RAw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Wei Liu <wei.liu@kernel.org>,
 x86@kernel.org,
 linux-hyperv@vger.kernel.org,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 11/22] x86/hyperv: Refactor hv_msi_domain_free_irqs()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:51 +0100 (CET)

No point in looking up things over and over. Just look up the associated
irq data and work from there.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Wei Liu <wei.liu@kernel.org>
Cc: x86@kernel.org
Cc: linux-hyperv@vger.kernel.org
---
 arch/x86/hyperv/irqdomain.c |   55 +++++++++++++-------------------------------
 1 file changed, 17 insertions(+), 38 deletions(-)

--- a/arch/x86/hyperv/irqdomain.c
+++ b/arch/x86/hyperv/irqdomain.c
@@ -253,64 +253,43 @@ static int hv_unmap_msi_interrupt(struct
 	return hv_unmap_interrupt(hv_build_pci_dev_id(dev).as_uint64, old_entry);
 }
 
-static void hv_teardown_msi_irq_common(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
+static void hv_teardown_msi_irq(struct pci_dev *dev, struct irq_data *irqd)
 {
-	u64 status;
 	struct hv_interrupt_entry old_entry;
-	struct irq_desc *desc;
-	struct irq_data *data;
 	struct msi_msg msg;
+	u64 status;
 
-	desc = irq_to_desc(irq);
-	if (!desc) {
-		pr_debug("%s: no irq desc\n", __func__);
-		return;
-	}
-
-	data = &desc->irq_data;
-	if (!data) {
-		pr_debug("%s: no irq data\n", __func__);
-		return;
-	}
-
-	if (!data->chip_data) {
+	if (!irqd->chip_data) {
 		pr_debug("%s: no chip data\n!", __func__);
 		return;
 	}
 
-	old_entry = *(struct hv_interrupt_entry *)data->chip_data;
+	old_entry = *(struct hv_interrupt_entry *)irqd->chip_data;
 	entry_to_msi_msg(&old_entry, &msg);
 
-	kfree(data->chip_data);
-	data->chip_data = NULL;
+	kfree(irqd->chip_data);
+	irqd->chip_data = NULL;
 
 	status = hv_unmap_msi_interrupt(dev, &old_entry);
 
-	if (status != HV_STATUS_SUCCESS) {
+	if (status != HV_STATUS_SUCCESS)
 		pr_err("%s: hypercall failed, status %lld\n", __func__, status);
-		return;
-	}
 }
 
-static void hv_msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
+static void hv_msi_free_irq(struct irq_domain *domain,
+			    struct msi_domain_info *info, unsigned int virq)
 {
-	int i;
-	struct msi_desc *entry;
-	struct pci_dev *pdev;
+	struct irq_data *irqd = irq_get_irq_data(virq);
+	struct msi_desc *desc;
 
-	if (WARN_ON_ONCE(!dev_is_pci(dev)))
+	if (!irqd)
 		return;
 
-	pdev = to_pci_dev(dev);
+	desc = irq_data_get_msi_desc(irqd);
+	if (!desc || !desc->irq || WARN_ON_ONCE(!dev_is_pci(desc->dev)))
+		return;
 
-	for_each_pci_msi_entry(entry, pdev) {
-		if (entry->irq) {
-			for (i = 0; i < entry->nvec_used; i++) {
-				hv_teardown_msi_irq_common(pdev, entry, entry->irq + i);
-				irq_domain_free_irqs(entry->irq + i, 1);
-			}
-		}
-	}
+	hv_teardown_msi_irq(to_pci_dev(desc->dev), irqd);
 }
 
 /*
@@ -329,7 +308,7 @@ static struct irq_chip hv_pci_msi_contro
 };
 
 static struct msi_domain_ops pci_msi_domain_ops = {
-	.domain_free_irqs	= hv_msi_domain_free_irqs,
+	.msi_free		= hv_msi_free_irq,
 	.msi_prepare		= pci_msi_prepare,
 };
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:18:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:18:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233594.405398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMk-0005jc-Ef; Sat, 27 Nov 2021 01:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233594.405398; Sat, 27 Nov 2021 01:18:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMj-0005g3-MX; Sat, 27 Nov 2021 01:18:57 +0000
Received: by outflank-mailman (input) for mailman id 233594;
 Sat, 27 Nov 2021 01:18:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMh-00020H-8R
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:55 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fc99b9cb-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:54 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc99b9cb-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126223824.796031314@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975933;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=Y52GWxcz9rMhYuk4LDNfYqjI18nIR0XFpc/LxzUOn2o=;
	b=GFhJNIa1DWTIzwoppf2MtTHGy5nRuoYJ3Nvzzd+Pe+GIzulpxqzt6AUdM29ic/yYkCkYE9
	E9lS0R7Ga7X77p/X6A8piBSzwyQ5baOhJNxistuhBHSq6mKnz9rwZ9bCwtR5B5scQ6a0wP
	+V3Pdc99TzVUzvFxJ+hHo1Mj0GFiwbo0d0O7ovSJuwtuobS5e6bgeDzQhX5YZDIh+L8l3k
	HWXeeUF9t/a7JxKzsF7lzrhTcHBhJKXYUWq25inW0Ru95qov9/g0KWuRAFCZrEP39EwP34
	gDa1ug+ll63JPTvL7gg643381Ejfng1A4A6SRTu2pQ5r70SxFiMnGjyWxGW1cA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975933;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=Y52GWxcz9rMhYuk4LDNfYqjI18nIR0XFpc/LxzUOn2o=;
	b=MKAzpNi9/quT7XZcCPyXoDLeCgYbMkAXW0a49m1FLQhVaDgvUUfHL3hmovchfDc+RlxaVn
	yary+5XViXxoghCQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org
Subject: [patch 12/22] PCI/MSI: Make arch_restore_msi_irqs() less horrible.
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:53 +0100 (CET)

Make arch_restore_msi_irqs() return a boolean which indicates whether the
core code should restore the MSI message or not. Get rid of the indirection
in x86.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Juergen Gross <jgross@suse.com>
Cc: x86@kernel.org
Cc: xen-devel@lists.xenproject.org
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
---
 arch/s390/pci/pci_irq.c               |    4 +-
 arch/x86/include/asm/x86_init.h       |    6 ---
 arch/x86/include/asm/xen/hypervisor.h |    8 +++++
 arch/x86/kernel/apic/msi.c            |    6 +++
 arch/x86/kernel/x86_init.c            |   12 -------
 arch/x86/pci/xen.c                    |   13 ++++----
 drivers/pci/msi.c                     |   54 +++++++++++-----------------------
 include/linux/msi.h                   |    7 +---
 8 files changed, 45 insertions(+), 65 deletions(-)

--- a/arch/s390/pci/pci_irq.c
+++ b/arch/s390/pci/pci_irq.c
@@ -387,13 +387,13 @@ void arch_teardown_msi_irqs(struct pci_d
 		airq_iv_free(zpci_ibv[0], zdev->msi_first_bit, zdev->msi_nr_irqs);
 }
 
-void arch_restore_msi_irqs(struct pci_dev *pdev)
+bool arch_restore_msi_irqs(struct pci_dev *pdev)
 {
 	struct zpci_dev *zdev = to_zpci(pdev);
 
 	if (!zdev->irqs_registered)
 		zpci_set_irq(zdev);
-	default_restore_msi_irqs(pdev);
+	return true;
 }
 
 static struct airq_struct zpci_airq = {
--- a/arch/x86/include/asm/x86_init.h
+++ b/arch/x86/include/asm/x86_init.h
@@ -289,12 +289,6 @@ struct x86_platform_ops {
 	struct x86_hyper_runtime hyper;
 };
 
-struct pci_dev;
-
-struct x86_msi_ops {
-	void (*restore_msi_irqs)(struct pci_dev *dev);
-};
-
 struct x86_apic_ops {
 	unsigned int	(*io_apic_read)   (unsigned int apic, unsigned int reg);
 	void		(*restore)(void);
--- a/arch/x86/include/asm/xen/hypervisor.h
+++ b/arch/x86/include/asm/xen/hypervisor.h
@@ -57,6 +57,14 @@ static inline bool __init xen_x2apic_par
 }
 #endif
 
+struct pci_dev;
+
+#ifdef CONFIG_XEN_DOM0
+bool xen_initdom_restore_msi(struct pci_dev *dev);
+#else
+static inline bool xen_initdom_restore_msi(struct pci_dev *dev) { return true; }
+#endif
+
 #ifdef CONFIG_HOTPLUG_CPU
 void xen_arch_register_cpu(int num);
 void xen_arch_unregister_cpu(int num);
--- a/arch/x86/kernel/apic/msi.c
+++ b/arch/x86/kernel/apic/msi.c
@@ -17,6 +17,7 @@
 #include <asm/irqdomain.h>
 #include <asm/hpet.h>
 #include <asm/hw_irq.h>
+#include <asm/hypervisor.h>
 #include <asm/apic.h>
 #include <asm/irq_remapping.h>
 
@@ -345,3 +346,8 @@ void dmar_free_hwirq(int irq)
 	irq_domain_free_irqs(irq, 1);
 }
 #endif
+
+bool arch_restore_msi_irqs(struct pci_dev *dev)
+{
+	return xen_initdom_restore_msi(dev);
+}
--- a/arch/x86/kernel/x86_init.c
+++ b/arch/x86/kernel/x86_init.c
@@ -145,18 +145,6 @@ struct x86_platform_ops x86_platform __r
 
 EXPORT_SYMBOL_GPL(x86_platform);
 
-#if defined(CONFIG_PCI_MSI)
-struct x86_msi_ops x86_msi __ro_after_init = {
-	.restore_msi_irqs	= default_restore_msi_irqs,
-};
-
-/* MSI arch specific hooks */
-void arch_restore_msi_irqs(struct pci_dev *dev)
-{
-	x86_msi.restore_msi_irqs(dev);
-}
-#endif
-
 struct x86_apic_ops x86_apic_ops __ro_after_init = {
 	.io_apic_read	= native_io_apic_read,
 	.restore	= native_restore_boot_irq_mode,
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -351,10 +351,13 @@ static int xen_initdom_setup_msi_irqs(st
 	return ret;
 }
 
-static void xen_initdom_restore_msi_irqs(struct pci_dev *dev)
+bool xen_initdom_restore_msi(struct pci_dev *dev)
 {
 	int ret = 0;
 
+	if (!xen_initial_domain())
+		return true;
+
 	if (pci_seg_supported) {
 		struct physdev_pci_device restore_ext;
 
@@ -375,10 +378,10 @@ static void xen_initdom_restore_msi_irqs
 		ret = HYPERVISOR_physdev_op(PHYSDEVOP_restore_msi, &restore);
 		WARN(ret && ret != -ENOSYS, "restore_msi -> %d\n", ret);
 	}
+	return false;
 }
 #else /* CONFIG_XEN_PV_DOM0 */
 #define xen_initdom_setup_msi_irqs	NULL
-#define xen_initdom_restore_msi_irqs	NULL
 #endif /* !CONFIG_XEN_PV_DOM0 */
 
 static void xen_teardown_msi_irqs(struct pci_dev *dev)
@@ -466,12 +469,10 @@ static __init struct irq_domain *xen_cre
 static __init void xen_setup_pci_msi(void)
 {
 	if (xen_pv_domain()) {
-		if (xen_initial_domain()) {
+		if (xen_initial_domain())
 			xen_msi_ops.setup_msi_irqs = xen_initdom_setup_msi_irqs;
-			x86_msi.restore_msi_irqs = xen_initdom_restore_msi_irqs;
-		} else {
+		else
 			xen_msi_ops.setup_msi_irqs = xen_setup_msi_irqs;
-		}
 		xen_msi_ops.teardown_msi_irqs = xen_pv_teardown_msi_irqs;
 		pci_msi_ignore_mask = 1;
 	} else if (xen_hvm_domain()) {
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -106,29 +106,6 @@ void __weak arch_teardown_msi_irqs(struc
 }
 #endif /* CONFIG_PCI_MSI_ARCH_FALLBACKS */
 
-static void default_restore_msi_irq(struct pci_dev *dev, int irq)
-{
-	struct msi_desc *entry;
-
-	entry = NULL;
-	if (dev->msix_enabled) {
-		for_each_pci_msi_entry(entry, dev) {
-			if (irq == entry->irq)
-				break;
-		}
-	} else if (dev->msi_enabled)  {
-		entry = irq_get_msi_desc(irq);
-	}
-
-	if (entry)
-		__pci_write_msi_msg(entry, &entry->msg);
-}
-
-void __weak arch_restore_msi_irqs(struct pci_dev *dev)
-{
-	return default_restore_msi_irqs(dev);
-}
-
 /*
  * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
  * mask all MSI interrupts by clearing the MSI enable bit does not work
@@ -242,14 +219,6 @@ void pci_msi_unmask_irq(struct irq_data
 }
 EXPORT_SYMBOL_GPL(pci_msi_unmask_irq);
 
-void default_restore_msi_irqs(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-
-	for_each_pci_msi_entry(entry, dev)
-		default_restore_msi_irq(dev, entry->irq);
-}
-
 void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
 {
 	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
@@ -403,10 +372,19 @@ static void pci_msi_set_enable(struct pc
 	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
 }
 
+/*
+ * Architecture override returns true when the PCI MSI message should be
+ * written by the generic restore function.
+ */
+bool __weak arch_restore_msi_irqs(struct pci_dev *dev)
+{
+	return true;
+}
+
 static void __pci_restore_msi_state(struct pci_dev *dev)
 {
-	u16 control;
 	struct msi_desc *entry;
+	u16 control;
 
 	if (!dev->msi_enabled)
 		return;
@@ -415,7 +393,8 @@ static void __pci_restore_msi_state(stru
 
 	pci_intx_for_msi(dev, 0);
 	pci_msi_set_enable(dev, 0);
-	arch_restore_msi_irqs(dev);
+	if (arch_restore_msi_irqs(dev))
+		__pci_write_msi_msg(entry, &entry->msg);
 
 	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
 	pci_msi_update_mask(entry, 0, 0);
@@ -437,6 +416,7 @@ static void pci_msix_clear_and_set_ctrl(
 static void __pci_restore_msix_state(struct pci_dev *dev)
 {
 	struct msi_desc *entry;
+	bool write_msg;
 
 	if (!dev->msix_enabled)
 		return;
@@ -447,9 +427,13 @@ static void __pci_restore_msix_state(str
 	pci_msix_clear_and_set_ctrl(dev, 0,
 				PCI_MSIX_FLAGS_ENABLE | PCI_MSIX_FLAGS_MASKALL);
 
-	arch_restore_msi_irqs(dev);
-	for_each_pci_msi_entry(entry, dev)
+	write_msg = arch_restore_msi_irqs(dev);
+
+	for_each_pci_msi_entry(entry, dev) {
+		if (write_msg)
+			__pci_write_msi_msg(entry, &entry->msg);
 		pci_msix_write_vector_ctrl(entry, entry->pci.msix_ctrl);
+	}
 
 	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
 }
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -272,11 +272,10 @@ static inline void arch_teardown_msi_irq
 #endif
 
 /*
- * The restore hooks are still available as they are useful even
- * for fully irq domain based setups. Courtesy to XEN/X86.
+ * The restore hook is still available even for fully irq domain based
+ * setups. Courtesy to XEN/X86.
  */
-void arch_restore_msi_irqs(struct pci_dev *dev);
-void default_restore_msi_irqs(struct pci_dev *dev);
+bool arch_restore_msi_irqs(struct pci_dev *dev);
 
 #ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:19:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:19:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233596.405414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMn-0006Un-J4; Sat, 27 Nov 2021 01:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233596.405414; Sat, 27 Nov 2021 01:19:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMm-0006Rv-Qa; Sat, 27 Nov 2021 01:19:00 +0000
Received: by outflank-mailman (input) for mailman id 233596;
 Sat, 27 Nov 2021 01:18:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMk-00020H-4A
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:58 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe7c8b3c-4f1f-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:18:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe7c8b3c-4f1f-11ec-9787-a32c541c8605
Message-ID: <20211126223824.855947162@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975935;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=lhIUE61Y2ARmaAA3RG1h6L7zHDs4cKgQsOndAjR5STU=;
	b=yoS0BgXw6njThHf+Kcu+0fhiWKN/AUUQyrhRnyP005hqMqVamE0iJS9Nymvj7WrdKiNPm9
	0mkqTv8z1FNG/R4t2Fb6c/SNDfW7kY+rGDzKX04havRRDKZzlJgNXPOOfjLye4/WFJKJfP
	xcx9BSS5LKHxoE2JVqPQ+trXGuk8vUYn7URN+PrSM7NPKPbRnZx0hNWCcZeSi04qCE5Oel
	Y9mNYAqJgytmNlLxc+cRQ+JOuNk/T63yzW8ubMu6NjUJqGwyZOKHP2t1qinSdVRhJwmcXC
	H2q4r2C5Ug8hjBbQvmRgnBEn2dAl8pePx8S03VEkIoCUjdrHK0EN0Pjw6qJTBw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975935;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=lhIUE61Y2ARmaAA3RG1h6L7zHDs4cKgQsOndAjR5STU=;
	b=Jl/BK00H8LeQTqtN+ZwcnoSd8mGeJ2yjBlN3eDYCTgWb72N+GwWWz/rF3WttD4qNLnGKTb
	/KKLjL7as1fFZ/DQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 13/22] PCI/MSI: Cleanup include zoo
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:54 +0100 (CET)

Get rid of the pile of unneeded includes which accumulated over time.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi.c |   16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -7,22 +7,14 @@
  * Copyright (C) 2016 Christoph Hellwig.
  */
 
+#include <linux/acpi_iort.h>
 #include <linux/err.h>
-#include <linux/mm.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
 #include <linux/export.h>
-#include <linux/ioport.h>
-#include <linux/pci.h>
-#include <linux/proc_fs.h>
-#include <linux/msi.h>
-#include <linux/smp.h>
-#include <linux/errno.h>
-#include <linux/io.h>
-#include <linux/acpi_iort.h>
-#include <linux/slab.h>
+#include <linux/irq.h>
 #include <linux/irqdomain.h>
+#include <linux/msi.h>
 #include <linux/of_irq.h>
+#include <linux/pci.h>
 
 #include "pci.h"
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:19:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233597.405421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMo-0006kx-MS; Sat, 27 Nov 2021 01:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233597.405421; Sat, 27 Nov 2021 01:19:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMn-0006g3-R4; Sat, 27 Nov 2021 01:19:01 +0000
Received: by outflank-mailman (input) for mailman id 233597;
 Sat, 27 Nov 2021 01:18:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMk-0002cc-Sq
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:18:58 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fe7aa13e-4f1f-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:18:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe7aa13e-4f1f-11ec-b941-1df2895da90e
Message-ID: <20211126223824.914161382@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975937;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=HvFnLhSNQWkY7FyV6dqkmiDpk27hPnt+iT7sMKioVYY=;
	b=S54cLFbDUKq5nFn79t2f2+gRu/qeyK47uzVuwGG/moNnGbWQ4ZXxrGLGZV0feqpma6dc8c
	tOmoQ3dSStV4MaqLjWDZXKaaGyCwX7m94K4qqRySR0BCHLTvcjw3G47NJ26H+hsoAdCwsM
	cv+9tx7mmof5+QOUdVY/+1T0cNRVxXwhPtyxroAGiNse2fIX1QlrCzLeu3Jfd74tKTTftr
	gZ6ccrLlloBq2oYXiRYcEnr5LUlrJVQ+CWtNb1ATwviM4hfbaAFMfb8iZfk/cGVc9v3d10
	WklJDWGfj+DFOMLZ5ka3pAgMhNG2Zn0Csvy5rIU6a0UpiSNBS1+AmB0BnCVaZw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975937;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=HvFnLhSNQWkY7FyV6dqkmiDpk27hPnt+iT7sMKioVYY=;
	b=TDa4ILzwayLrgVPnZsKOtHgUePuy50wAzaCSVtRqj9WSzHaJh3r5YZZigx7IJQ0xPWCSIA
	LZRjcdcylCSboTCA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 14/22] PCI/MSI: Make msix_update_entries() smarter
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:56 +0100 (CET)

No need to walk the descriptors and check for each one whether the entries
pointer function argument is NULL. Do it once.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -642,8 +642,8 @@ static void msix_update_entries(struct p
 {
 	struct msi_desc *entry;
 
-	for_each_pci_msi_entry(entry, dev) {
-		if (entries) {
+	if (entries) {
+		for_each_pci_msi_entry(entry, dev) {
 			entries->vector = entry->irq;
 			entries++;
 		}



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:19:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:19:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233601.405439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMr-0007ep-O7; Sat, 27 Nov 2021 01:19:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233601.405439; Sat, 27 Nov 2021 01:19:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmMr-0007a3-9K; Sat, 27 Nov 2021 01:19:05 +0000
Received: by outflank-mailman (input) for mailman id 233601;
 Sat, 27 Nov 2021 01:19:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMp-0002cc-EN
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:03 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00dcbdc0-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00dcbdc0-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223825.034426787@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975940;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=/hUtpZoje77D8jXpCF4dVmu6dIuQVzxr12Tf8gEZrmw=;
	b=hNIt8OdQYSBdhy1LPCcMUGRBqnREBl3UBjJaNo48wU+yitHyucClBw2FatgmLhmT+NU3Ql
	4sNgzJGJwZh/ha6ppJ940OFjIokFLOJZrrZ9Hn+cAi1F4FyEZB5/WZGbdWx/0rI4gSVYXH
	0ZAueHlXhJYar/+0Pt78nugjpObRWsEEvTI82qsArEFCxNUEKE1CjeVxpOaurVu/heD40x
	svbwdGhLpDr+48E2XA7s2rBrW/D9QDT1vecScPJtMzmkyrDlH0t6HEPyqjKucfxxETkZq3
	M3K9th4jI9ae1bWlJd5NI+WypKa6K5lyXJE2P5xEhwaQn0Ti6cqyZ6VpLW9nNw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975940;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=/hUtpZoje77D8jXpCF4dVmu6dIuQVzxr12Tf8gEZrmw=;
	b=VuXwjFCkRtJzwgPzd13igAMoSEEMu4NeLAa9wdlctBYjILYD2dtuDp0HaXuKf26rChjrKM
	6+NREzi1mLkFLdBg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 16/22] PCI/MSI: Split out CONFIG_PCI_MSI independent part
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:59 +0100 (CET)

These functions are required even when CONFIG_PCI_MSI is not set. Move them
to their own file.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/Makefile     |    3 ++-
 drivers/pci/msi/msi.c        |   39 ---------------------------------------
 drivers/pci/msi/pcidev_msi.c |   43 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+), 40 deletions(-)

--- a/drivers/pci/msi/Makefile
+++ b/drivers/pci/msi/Makefile
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
 #
 # Makefile for the PCI/MSI
-obj-$(CONFIG_PCI)		+= msi.o
+obj-$(CONFIG_PCI)		+= pcidev_msi.o
+obj-$(CONFIG_PCI_MSI)		+= msi.o
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -18,8 +18,6 @@
 
 #include "../pci.h"
 
-#ifdef CONFIG_PCI_MSI
-
 static int pci_msi_enable = 1;
 int pci_msi_ignore_mask;
 
@@ -1479,40 +1477,3 @@ bool pci_dev_has_special_msi_domain(stru
 }
 
 #endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
-#endif /* CONFIG_PCI_MSI */
-
-void pci_msi_init(struct pci_dev *dev)
-{
-	u16 ctrl;
-
-	/*
-	 * Disable the MSI hardware to avoid screaming interrupts
-	 * during boot.  This is the power on reset default so
-	 * usually this should be a noop.
-	 */
-	dev->msi_cap = pci_find_capability(dev, PCI_CAP_ID_MSI);
-	if (!dev->msi_cap)
-		return;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &ctrl);
-	if (ctrl & PCI_MSI_FLAGS_ENABLE)
-		pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS,
-				      ctrl & ~PCI_MSI_FLAGS_ENABLE);
-
-	if (!(ctrl & PCI_MSI_FLAGS_64BIT))
-		dev->no_64bit_msi = 1;
-}
-
-void pci_msix_init(struct pci_dev *dev)
-{
-	u16 ctrl;
-
-	dev->msix_cap = pci_find_capability(dev, PCI_CAP_ID_MSIX);
-	if (!dev->msix_cap)
-		return;
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
-	if (ctrl & PCI_MSIX_FLAGS_ENABLE)
-		pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS,
-				      ctrl & ~PCI_MSIX_FLAGS_ENABLE);
-}
--- /dev/null
+++ b/drivers/pci/msi/pcidev_msi.c
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * MSI[X} related functions which are available unconditionally.
+ */
+#include "../pci.h"
+
+/*
+ * Disable the MSI[X] hardware to avoid screaming interrupts during boot.
+ * This is the power on reset default so usually this should be a noop.
+ */
+
+void pci_msi_init(struct pci_dev *dev)
+{
+	u16 ctrl;
+
+	dev->msi_cap = pci_find_capability(dev, PCI_CAP_ID_MSI);
+	if (!dev->msi_cap)
+		return;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &ctrl);
+	if (ctrl & PCI_MSI_FLAGS_ENABLE) {
+		pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS,
+				      ctrl & ~PCI_MSI_FLAGS_ENABLE);
+	}
+
+	if (!(ctrl & PCI_MSI_FLAGS_64BIT))
+		dev->no_64bit_msi = 1;
+}
+
+void pci_msix_init(struct pci_dev *dev)
+{
+	u16 ctrl;
+
+	dev->msix_cap = pci_find_capability(dev, PCI_CAP_ID_MSIX);
+	if (!dev->msix_cap)
+		return;
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
+	if (ctrl & PCI_MSIX_FLAGS_ENABLE) {
+		pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS,
+				      ctrl & ~PCI_MSIX_FLAGS_ENABLE);
+	}
+}



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233606.405456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmS9-0003v9-7U; Sat, 27 Nov 2021 01:24:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233606.405456; Sat, 27 Nov 2021 01:24:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmS9-0003v2-4W; Sat, 27 Nov 2021 01:24:33 +0000
Received: by outflank-mailman (input) for mailman id 233606;
 Sat, 27 Nov 2021 01:24:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmS8-0003uw-8n
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:32 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c572d563-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:24:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c572d563-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126233124.618283684@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976270;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=cXwN7LAx6ag9HOMQtjLd6VTeK3zX6xCMXFRxvs6U6Qg=;
	b=14q4wOfG/0/SZhjwir+cQHJgN4Eo+aHBwW3N78dcnYHDysV9Oh1NWZqgJ4JuWR/baa9D2Z
	NGYz0nAYpGfPsHFUlg5IrQQTw+vEwwj30OLhvIpllXtuE9HgIXHfbE7EEDVm3GOiGHYHbG
	QKUA3MpESWpx/pP4hwDMPtsbETljzTerGL18EUZQZo3hOmbv8495iEjfmpSrxIhYVTmU9q
	Y+ipEcdCu43SMNRGBKk3j3+5hGIz1q5c7m+vCiYI5CvegGVw6Zpl6rZNHHG7P6my+qeA/L
	PXiEE2W/Cgvup0+A3VLyLKTee/d5AKafHg/Uir8yQD0wfIFbtg/4DTAu6ZhMxw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976270;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=cXwN7LAx6ag9HOMQtjLd6VTeK3zX6xCMXFRxvs6U6Qg=;
	b=KO4VdGK/spEZe2s55ufjJGfc/FG3K9/3AjsE6hAK9UTesq2K2rALdyStZ/xDIu23Rs4Tjf
	UmIDWC9TXBsCnuCA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 00/10] genirq/msi, PCI/MSI: Support for dynamic MSI-X vector
 expansion - Part 4
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Date: Sat, 27 Nov 2021 02:24:30 +0100 (CET)

VGhpcyBpcyBmaW5hbGx5IHRoZSBwb2ludCB3aGVyZSBkeW5hbWljYWxseSBleHBhbmRpbmcgTVNJ
LVggdmVjdG9ycyBhZnRlcgplbmFibGluZyBNU0ktWCBpcyBpbXBsZW1lbnRlZC4KClRoZSBmaXJz
dCB0aHJlZSBwYXJ0cyBvZiB0aGlzIHdvcmsgY2FuIGJlIGZvdW5kIGhlcmU6CgogICAgaHR0cHM6
Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDIxMTEyNjIyMjcwMC44NjI0MDc5NzdAbGludXRyb25peC5k
ZQogICAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDIxMTEyNjIyNDEwMC4zMDMwNDY3NDlA
bGludXRyb25peC5kZQogICAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDIxMTEyNjIzMDk1
Ny4yMzkzOTE3OTlAbGludXRyb25peC5kZQoKVGhpcyBsYXN0IGFuZCBzbWFsbGVzdCBwYXJ0IG9m
IHRoZSBvdmVyYWxsIHNlcmllcyBjb250YWlucyB0aGUgZm9sbG93aW5nCmNoYW5nZXM6CgogICAx
KSBQcmVwYXJlIHRoZSBjb3JlIE1TSSBpcnEgZG9tYWluIGNvZGUgdG8gaGFuZGxlIHJhbmdlIGJh
c2VkIGFsbG9jYXRpb24KICAgICAgYW5kIGZyZWUKCiAgIDIpIFByZXBhcmUgdGhlIFBDSS9NU0kg
Y29kZSB0byBoYW5kbGUgcmFuZ2UgYmFzZWQgYWxsb2NhdGlvbiBhbmQgZnJlZQogIAogICAzKSBJ
bXBsZW1lbnQgYSBuZXcgaW50ZXJmYWNlIHdoaWNoIGFsbG93cyB0byBleHBhbmQgdGhlIE1TSS1Y
IHZlY3RvcgogICAgICBzcGFjZSBhZnRlciBpbml0aWFsaXphdGlvbgoKICAgNCkgRW5hYmxlIHN1
cHBvcnQgZm9yIHRoZSBYODYgUENJL01TSSBpcnEgZG9tYWlucwoKICAgICAgVGhpcyBpcyB1bmZv
cnR1bmF0ZSwgYnV0IHNvbWUgUENJL01TSSBpcnEgZG9tYWluIGltcGxlbWVudGF0aW9ucywKICAg
ICAgZS5nLiBwb3dlcnBjIGFuZCB0aGUgeDg2L1hFTiBpcnFkb21haW4gd3JhcHBlcnMgYXJlIG5v
dCByZWFsbHkgcmVhZHkKICAgICAgdG8gc3VwcG9ydCB0aGlzIG91dCBvZiB0aGUgYm94LgoKICAg
ICAgSSBsb29rZWQgYXQgdGhlIDMwIHBsYWNlcyB3aGljaCBpbXBsZW1lbnQgUENJL01TSSBpcnEg
ZG9tYWlucyBhbmQKICAgICAgbWFueSBvZiB0aGVtIGxvb2sgbGlrZSB0aGV5IGNvdWxkIHN1cHBv
cnQgaXQgb3V0IG9mIHRoZSBib3gsIGJ1dCBhcwogICAgICB3ZSBoYXZlIHR3byB3aGljaCBkZWZp
bml0ZWx5IGRvbid0LCBtYWtpbmcgdGhpcyBvcHQtaW4gaXMgdGhlIG9ubHkKICAgICAgc2FmZSBv
cHRpb24uCgpJJ3ZlIHRlc3RlZCB0aGlzIGJ5IGhhY2tpbmcgdXAgdGhlIFhIQ0kgZHJpdmVyIGFu
ZCBpdCB3b3JrcyBsaWtlIGEgY2hhcm0uCgpUaGVyZSBpcyBjZXJ0YWlubHkgc29tZSBtb3JlIHJv
b20gZm9yIGNvbnNvbGlkYXRpbmcgdGhlIFBDSS9NU0ktWCB1c2FnZSBpbgpkcml2ZXJzLCBpLmUu
IGdldHRpbmcgcmlkIG9mIHBjaV9lbmFibGVfbXNpeCooKSwgYnV0IHRoaXMgd291bGQgaGF2ZSBt
YWRlCnRoaXMgb3ZlcmFsbCBzZXJpZXMgZXZlbiBsYXJnZXIgYW5kIGlzIGFuIG9ydGhvZ29uYWwg
aXNzdWUuCgpUaGlzIGZvdXJ0aCBzZXJpZXMgaXMgYmFzZWQgb246CgogICAgIGdpdDovL2dpdC5r
ZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90Z2x4L2RldmVsLmdpdCBtc2ktdjEt
cGFydC0zCgphbmQgYWxzbyBhdmFpbGFibGUgZnJvbSBnaXQ6CgogICAgIGdpdDovL2dpdC5rZXJu
ZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90Z2x4L2RldmVsLmdpdCBtc2ktdjEtcGFy
dC00CgpUaGFua3MsCgoJdGdseAotLS0KIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9t
c2kuYyB8ICAgIDYgKy0KIGFyY2gveDg2L2tlcm5lbC9hcGljL21zaS5jICAgICAgICAgICB8ICAg
IDQgLQogYXJjaC94ODYvcGNpL3hlbi5jICAgICAgICAgICAgICAgICAgIHwgICAxMCArLS0KIGRy
aXZlcnMvYmFzZS9wbGF0Zm9ybS1tc2kuYyAgICAgICAgICB8ICAgIDMgLQogZHJpdmVycy9wY2kv
bXNpL2lycWRvbWFpbi5jICAgICAgICAgIHwgICAzOSArKysrKysrKysrLS0tLQogZHJpdmVycy9w
Y2kvbXNpL21zaS5jICAgICAgICAgICAgICAgIHwgICA5NyArKysrKysrKysrKysrKysrKysrKysr
KysrKystLS0tLS0tLQogZHJpdmVycy9wY2kvbXNpL21zaS5oICAgICAgICAgICAgICAgIHwgICAg
NCAtCiBpbmNsdWRlL2xpbnV4L21zaS5oICAgICAgICAgICAgICAgICAgfCAgIDQ2ICsrKysrKysr
KysrLS0tLS0KIGluY2x1ZGUvbGludXgvcGNpLmggICAgICAgICAgICAgICAgICB8ICAgMTMgKysr
Kwoga2VybmVsL2lycS9tc2kuYyAgICAgICAgICAgICAgICAgICAgIHwgICA3NSArKysrKysrKysr
KysrKystLS0tLS0tLS0tLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDIwOCBpbnNlcnRpb25zKCspLCA4
OSBkZWxldGlvbnMoLSkK


From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233607.405467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSA-0004Aq-Fh; Sat, 27 Nov 2021 01:24:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233607.405467; Sat, 27 Nov 2021 01:24:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSA-0004Aj-Bk; Sat, 27 Nov 2021 01:24:34 +0000
Received: by outflank-mailman (input) for mailman id 233607;
 Sat, 27 Nov 2021 01:24:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmS9-0003uw-BK
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:33 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c62e1276-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:24:32 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c62e1276-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.534790941@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976272;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=FLvm8heMaeaty/kI8f2vBLPLCFbQls4zKlJo+z99yXU=;
	b=lLwdFr2xpc7l1dE+4T8c1MEKxJXFHIuawpdbeLObZ4rSaOX110baGDslF/rOU9wDbvXSVb
	9FwK80ttcZC8FgPdvRGW7y+G22X8ncPFzpiSbdXExua+JKuSc4E2bG1vBFN78+SwFYmocu
	i4eGI4fj8p39sd3rd6Ikj8XDkzYWruMiT/gYryLTYgCEbJIM9Ls+cqlNHwu16K+5dQ/V0s
	4Jni/zQOIv0JeWnIL4L/IqKFWqWgoygRU5fSIYZYHv4gyS/8gekFSB4AkkbcfaAi6tmBvg
	cxy9ZrieNVf0BFY+uwSNchlatRpkrPSBy8I+FDfJxHsLOviNLiig21t6lXu8gQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976272;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=FLvm8heMaeaty/kI8f2vBLPLCFbQls4zKlJo+z99yXU=;
	b=33qL6FsZitG3y1vbXi3dduciYhZhSt51lSZUkO/B+lH+mEZreTJcZXMUe4QnrCYqlPVu8j
	IM/59Op77c6+5+AQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject:
 [patch 01/10] genirq/msi: Add range argument to alloc/free MSI domain ops
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:31 +0100 (CET)

In preparation for supporting range allocations for MSI-X, add a range
argument to the MSI domain alloc/free function pointers and fixup all
affected places.

The range is supplied via a pointer to a struct msi_range which contains
the first and last MSI index and the number of vectors to allocate/free.

To support the sparse MSI-X allocations via pci_enable_msix_range() and
pci_enable_msix_exact() the number of vectors can be smaller than the range
defined by the first and last MSI index. This can be cleaned up later once
the code is converted by converting these sparse allocations to an initial
allocation on enable and expansion of the vector space at the required
indices.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/powerpc/platforms/pseries/msi.c |    6 +++---
 arch/x86/pci/xen.c                   |   10 +++++-----
 include/linux/msi.h                  |   30 +++++++++++++++++++++++-------
 kernel/irq/msi.c                     |   12 ++++++------
 4 files changed, 37 insertions(+), 21 deletions(-)

--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -450,13 +450,13 @@ static void pseries_msi_ops_msi_free(str
  * RTAS can not disable one MSI at a time. It's all or nothing. Do it
  * at the end after all IRQs have been freed.
  */
-static void pseries_msi_domain_free_irqs(struct irq_domain *domain,
-					 struct device *dev)
+static void pseries_msi_domain_free_irqs(struct irq_domain *domain, struct device *dev,
+					 struct msi_range *range)
 {
 	if (WARN_ON_ONCE(!dev_is_pci(dev)))
 		return;
 
-	__msi_domain_free_irqs(domain, dev);
+	__msi_domain_free_irqs(domain, dev, range);
 
 	rtas_disable_msi(to_pci_dev(dev));
 }
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -407,8 +407,8 @@ static void xen_pv_teardown_msi_irqs(str
 	xen_teardown_msi_irqs(dev);
 }
 
-static int xen_msi_domain_alloc_irqs(struct irq_domain *domain,
-				     struct device *dev,  int nvec)
+static int xen_msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
+				     struct msi_range *range)
 {
 	int type;
 
@@ -420,11 +420,11 @@ static int xen_msi_domain_alloc_irqs(str
 	else
 		type = PCI_CAP_ID_MSI;
 
-	return xen_msi_ops.setup_msi_irqs(to_pci_dev(dev), nvec, type);
+	return xen_msi_ops.setup_msi_irqs(to_pci_dev(dev), range->ndesc, type);
 }
 
-static void xen_msi_domain_free_irqs(struct irq_domain *domain,
-				     struct device *dev)
+static void xen_msi_domain_free_irqs(struct irq_domain *domain, struct device *dev,
+				     struct msi_range *range)
 {
 	if (WARN_ON_ONCE(!dev_is_pci(dev)))
 		return;
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -191,6 +191,23 @@ struct msi_device_data {
 	enum msi_desc_filter		__iter_filter;
 };
 
+/**
+ * msi_range - Descriptor for a MSI index range
+ * @first:	First index
+ * @last:	Last index (inclusive)
+ * @ndesc:	Number of descriptors for allocations
+ *
+ * @first = 0 and @last = UINT_MAX is the full range for an operation.
+ *
+ * Note: @ndesc can be less than the range defined by @first and @last to
+ * support sparse allocations from PCI/MSI-X.
+ */
+struct msi_range {
+	unsigned int	first;
+	unsigned int	last;
+	unsigned int	ndesc;
+};
+
 int msi_setup_device_data(struct device *dev);
 
 /* MSI device properties */
@@ -415,10 +432,10 @@ struct msi_domain_ops {
 				       msi_alloc_info_t *arg);
 	void		(*set_desc)(msi_alloc_info_t *arg,
 				    struct msi_desc *desc);
-	int		(*domain_alloc_irqs)(struct irq_domain *domain,
-					     struct device *dev, int nvec);
-	void		(*domain_free_irqs)(struct irq_domain *domain,
-					    struct device *dev);
+	int		(*domain_alloc_irqs)(struct irq_domain *domain, struct device *dev,
+					     struct msi_range *range);
+	void		(*domain_free_irqs)(struct irq_domain *domain, struct device *dev,
+					    struct msi_range *range);
 };
 
 /**
@@ -484,13 +501,12 @@ int msi_domain_set_affinity(struct irq_d
 struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode,
 					 struct msi_domain_info *info,
 					 struct irq_domain *parent);
-int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
-			    int nvec);
+int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range);
 int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device *dev,
 				       int nvec);
 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			  int nvec);
-void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
+void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range);
 void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev);
 void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
 struct msi_domain_info *msi_get_domain_info(struct irq_domain *domain);
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -869,8 +869,7 @@ static int msi_init_virq(struct irq_doma
 	return 0;
 }
 
-int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
-			    int nvec)
+int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range)
 {
 	struct msi_domain_info *info = domain->host_data;
 	struct msi_domain_ops *ops = info->ops;
@@ -880,7 +879,7 @@ int __msi_domain_alloc_irqs(struct irq_d
 	int allocated = 0;
 	int i, ret, virq;
 
-	ret = msi_domain_prepare_irqs(domain, dev, nvec, &arg);
+	ret = msi_domain_prepare_irqs(domain, dev, range->ndesc, &arg);
 	if (ret)
 		return ret;
 
@@ -960,6 +959,7 @@ int msi_domain_alloc_irqs_descs_locked(s
 				       int nvec)
 {
 	struct msi_domain_info *info = domain->host_data;
+	struct msi_range range = { .ndesc = nvec };
 	struct msi_domain_ops *ops = info->ops;
 	int ret;
 
@@ -969,7 +969,7 @@ int msi_domain_alloc_irqs_descs_locked(s
 	if (ret)
 		return ret;
 
-	ret = ops->domain_alloc_irqs(domain, dev, nvec);
+	ret = ops->domain_alloc_irqs(domain, dev, &range);
 	if (ret)
 		msi_domain_free_irqs_descs_locked(domain, dev);
 	return ret;
@@ -994,7 +994,7 @@ int msi_domain_alloc_irqs(struct irq_dom
 	return ret;
 }
 
-void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
+void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range)
 {
 	struct msi_domain_info *info = domain->host_data;
 	struct irq_data *irqd;
@@ -1041,7 +1041,7 @@ void msi_domain_free_irqs_descs_locked(s
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	ops->domain_free_irqs(domain, dev);
+	ops->domain_free_irqs(domain, dev, NULL);
 	msi_domain_free_msi_descs(info, dev);
 }
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233608.405478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSC-0004S5-NN; Sat, 27 Nov 2021 01:24:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233608.405478; Sat, 27 Nov 2021 01:24:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSC-0004Rq-Jc; Sat, 27 Nov 2021 01:24:36 +0000
Received: by outflank-mailman (input) for mailman id 233608;
 Sat, 27 Nov 2021 01:24:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSA-0003uw-Tl
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:35 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c71c6c94-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:24:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c71c6c94-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.594818541@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976273;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=EW+Gm4C9srsYC5SImaDJkppoIX48hbwPcUobStKFJEM=;
	b=ba0qGeiB41JUVA/nbXIZqI/ZzR+lBVMsJEDx5NRNT/VAMjLuu4gdSY/IW2XqyTiCDLdfWK
	AQojkSzf0utkC0bMvnh29aBEv80K2O2wGaYj6Aba7BmI3wxtr19BQARnAuvbb1iEcFmo6I
	hlDD4BF/OfoIMuJ2s540besiWNAKWIpBGrHUFqoqUKXdsLvTElmNbz3nO/aZYfFyRcip8+
	EyAKNeFCcDrle450/Hx6NPInjM4wsqaFaUZ62JFjd2yxuWSRw0kkEbA6kTiDYHUWYhGPEY
	M30MNH/ErWNFGfXjykXzp8rnRca9Xg4qCwqGov4eS+2PP6X9zLCe0KqcivXq9A==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976273;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=EW+Gm4C9srsYC5SImaDJkppoIX48hbwPcUobStKFJEM=;
	b=HOol/oYi7k4NJTRqZmozHsVnqCuHGZv01jWHIiq8+jdIzZ0IwgPtzldd7npF1ZckQ/Ku5Z
	mXV0fPjO/GkB7DCA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 02/10] genirq/msi: Add range argument to
 msi_domain_alloc/free_descs_locked()
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:33 +0100 (CET)

In preparation for supporting range allocations for MSI-X, add a range
argument to the msi_domain_alloc/free_descs_locked() functions and fixup
all affected places.

Hand in ranges which are covering the current use case. They will be
refined in later steps.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |    6 ++++--
 include/linux/msi.h         |    5 ++---
 kernel/irq/msi.c            |   21 ++++++++++++---------
 3 files changed, 18 insertions(+), 14 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -10,22 +10,24 @@
 
 int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec};
 	struct irq_domain *domain;
 
 	domain = dev_get_msi_domain(&dev->dev);
 	if (domain && irq_domain_is_hierarchy(domain))
-		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, nvec);
+		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, &range);
 
 	return pci_msi_legacy_setup_msi_irqs(dev, nvec, type);
 }
 
 void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, };
 	struct irq_domain *domain;
 
 	domain = dev_get_msi_domain(&dev->dev);
 	if (domain && irq_domain_is_hierarchy(domain))
-		msi_domain_free_irqs_descs_locked(domain, &dev->dev);
+		msi_domain_free_irqs_descs_locked(domain, &dev->dev, &range);
 	else
 		pci_msi_legacy_teardown_msi_irqs(dev);
 }
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -502,12 +502,11 @@ struct irq_domain *msi_create_irq_domain
 					 struct msi_domain_info *info,
 					 struct irq_domain *parent);
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range);
-int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device *dev,
-				       int nvec);
+int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device *dev,  struct msi_range *range);
 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			  int nvec);
 void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range);
-void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev);
+void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev, struct msi_range *range);
 void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
 struct msi_domain_info *msi_get_domain_info(struct irq_domain *domain);
 
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -956,22 +956,21 @@ static int msi_domain_add_simple_msi_des
  * Return: %0 on success or an error code.
  */
 int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device *dev,
-				       int nvec)
+				       struct msi_range *range)
 {
 	struct msi_domain_info *info = domain->host_data;
-	struct msi_range range = { .ndesc = nvec };
 	struct msi_domain_ops *ops = info->ops;
 	int ret;
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	ret = msi_domain_add_simple_msi_descs(info, dev, nvec);
+	ret = msi_domain_add_simple_msi_descs(info, dev, range->ndesc);
 	if (ret)
 		return ret;
 
-	ret = ops->domain_alloc_irqs(domain, dev, &range);
+	ret = ops->domain_alloc_irqs(domain, dev, range);
 	if (ret)
-		msi_domain_free_irqs_descs_locked(domain, dev);
+		msi_domain_free_irqs_descs_locked(domain, dev, range);
 	return ret;
 }
 
@@ -986,10 +985,11 @@ int msi_domain_alloc_irqs_descs_locked(s
  */
 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, int nvec)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec, };
 	int ret;
 
 	msi_lock_descs(dev);
-	ret = msi_domain_alloc_irqs_descs_locked(domain, dev, nvec);
+	ret = msi_domain_alloc_irqs_descs_locked(domain, dev, &range);
 	msi_unlock_descs(dev);
 	return ret;
 }
@@ -1034,14 +1034,15 @@ static void msi_domain_free_msi_descs(st
  * pair. Use this for MSI irqdomains which implement their own vector
  * allocation.
  */
-void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev)
+void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev,
+				       struct msi_range *range)
 {
 	struct msi_domain_info *info = domain->host_data;
 	struct msi_domain_ops *ops = info->ops;
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	ops->domain_free_irqs(domain, dev, NULL);
+	ops->domain_free_irqs(domain, dev, range);
 	msi_domain_free_msi_descs(info, dev);
 }
 
@@ -1053,8 +1054,10 @@ void msi_domain_free_irqs_descs_locked(s
  */
 void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, };
+
 	msi_lock_descs(dev);
-	msi_domain_free_irqs_descs_locked(domain, dev);
+	msi_domain_free_irqs_descs_locked(domain, dev, &range);
 	msi_unlock_descs(dev);
 }
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:48 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233609.405489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSE-0004jJ-0J; Sat, 27 Nov 2021 01:24:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233609.405489; Sat, 27 Nov 2021 01:24:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSD-0004j3-S0; Sat, 27 Nov 2021 01:24:37 +0000
Received: by outflank-mailman (input) for mailman id 233609;
 Sat, 27 Nov 2021 01:24:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSC-0003uw-Ff
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:36 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8076b8e-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:24:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8076b8e-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.664542907@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976275;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=rrdNHJUyUgKyNz6Pbn0ws4hWiMPwwbNMnZ1F31AYBD0=;
	b=MarT9tzc3uD/IHylu0qgFMXJqCIRF9E81IK9oU/QSiHl//TLD0MlLLyVDHc3E7fdnFbWu4
	jNajrFTveOc0UcHgHrFVYFiOkVWUcp3VDcqqQXPjZNVJR5XW50P58xX/SZg2KrTAsXpTtY
	Tx+yiPXnYoApeFdOBCHvl1LeKN2JqGWS+8oSh99qUDZtlKU0CvhJVcdO1Ig3H9Vvi7C6vm
	Kbuso6YgToHZ6EpxYMF78Igydg+8TrnH0g8uLD1WNk02H7AaNPPJZHQyTMgOO2HrkZQhcQ
	qo2f721FKRrB+prTdNZtaax2ROXufT5XV4IAi0xugE7NPJhFzBmGup8OcxopZw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976275;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=rrdNHJUyUgKyNz6Pbn0ws4hWiMPwwbNMnZ1F31AYBD0=;
	b=z83mpLTnkklHBxL+vHIMKuuahXOWE70VTpa6amHX4Jp0eBu+uIRunBrhjFfksl44tytuvK
	ibg2EKm4G97OPyCw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 03/10] genirq/msi: Make MSI descriptor alloc/free ready for
 range allocations
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:34 +0100 (CET)

Convert the MSI descriptor related functions to ranges and fixup the call
sites.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/base/platform-msi.c |    3 ++-
 include/linux/msi.h         |    7 ++++---
 kernel/irq/msi.c            |   38 +++++++++++++++++++-------------------
 3 files changed, 25 insertions(+), 23 deletions(-)

--- a/drivers/base/platform-msi.c
+++ b/drivers/base/platform-msi.c
@@ -320,11 +320,12 @@ struct irq_domain *
 void platform_msi_device_domain_free(struct irq_domain *domain, unsigned int virq,
 				     unsigned int nr_irqs)
 {
+	struct msi_range range = { .first = virq, .last = virq + nr_irqs - 1, };
 	struct platform_msi_priv_data *data = domain->host_data;
 
 	msi_lock_descs(data->dev);
 	irq_domain_free_irqs_common(domain, virq, nr_irqs);
-	msi_free_msi_descs_range(data->dev, MSI_DESC_ALL, virq, nr_irqs);
+	msi_free_msi_descs_range(data->dev, MSI_DESC_ALL, &range);
 	msi_unlock_descs(data->dev);
 }
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -321,8 +321,7 @@ static inline void pci_write_msi_msg(uns
 #endif /* CONFIG_PCI_MSI */
 
 int msi_add_msi_desc(struct device *dev, struct msi_desc *init_desc);
-void msi_free_msi_descs_range(struct device *dev, enum msi_desc_filter filter,
-			      unsigned int base_index, unsigned int ndesc);
+void msi_free_msi_descs_range(struct device *dev, enum msi_desc_filter filter, struct msi_range *range);
 
 /**
  * msi_free_msi_descs - Free MSI descriptors of a device
@@ -330,7 +329,9 @@ void msi_free_msi_descs_range(struct dev
  */
 static inline void msi_free_msi_descs(struct device *dev)
 {
-	msi_free_msi_descs_range(dev, MSI_DESC_ALL, 0, UINT_MAX);
+	struct msi_range range = { .first = 0, .last = UINT_MAX, };
+
+	msi_free_msi_descs_range(dev, MSI_DESC_ALL, &range);
 }
 
 void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -101,19 +101,19 @@ int msi_add_msi_desc(struct device *dev,
  *
  * Return: 0 on success or an appropriate failure code.
  */
-static int msi_add_simple_msi_descs(struct device *dev, unsigned int index, unsigned int ndesc)
+static int msi_add_simple_msi_descs(struct device *dev, struct msi_range *range)
 {
 	struct msi_desc *desc;
-	unsigned long i;
+	unsigned long idx;
 	int ret;
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	for (i = 0; i < ndesc; i++) {
+	for (idx = range->first; idx <= range->last; idx++) {
 		desc = msi_alloc_desc(dev, 1, NULL);
 		if (!desc)
 			goto fail_mem;
-		ret = msi_insert_desc(dev->msi.data, desc, index + i);
+		ret = msi_insert_desc(dev->msi.data, desc, idx);
 		if (ret)
 			goto fail;
 	}
@@ -122,7 +122,7 @@ static int msi_add_simple_msi_descs(stru
 fail_mem:
 	ret = -ENOMEM;
 fail:
-	msi_free_msi_descs_range(dev, MSI_DESC_NOTASSOCIATED, index, ndesc);
+	msi_free_msi_descs_range(dev, MSI_DESC_NOTASSOCIATED, range);
 	return ret;
 }
 
@@ -148,14 +148,14 @@ static bool msi_desc_match(struct msi_de
  * @ndesc:	Number of descriptors to free
  */
 void msi_free_msi_descs_range(struct device *dev, enum msi_desc_filter filter,
-			      unsigned int base_index, unsigned int ndesc)
+			      struct msi_range *range)
 {
 	struct msi_desc *desc;
 	unsigned long idx;
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	xa_for_each_range(&dev->msi.data->store, idx, desc, base_index, base_index + ndesc - 1) {
+	xa_for_each_range(&dev->msi.data->store, idx, desc, range->first, range->last) {
 		if (msi_desc_match(desc, filter)) {
 			xa_erase(&dev->msi.data->store, idx);
 			msi_free_desc(desc);
@@ -746,17 +746,18 @@ int msi_domain_prepare_irqs(struct irq_d
 int msi_domain_populate_irqs(struct irq_domain *domain, struct device *dev,
 			     int virq_base, int nvec, msi_alloc_info_t *arg)
 {
+	struct msi_range range = { .first = virq_base, .last = virq_base + nvec - 1 };
 	struct msi_domain_info *info = domain->host_data;
 	struct msi_domain_ops *ops = info->ops;
 	struct msi_desc *desc;
 	int ret, virq;
 
 	msi_lock_descs(dev);
-	ret = msi_add_simple_msi_descs(dev, virq_base, nvec);
+	ret = msi_add_simple_msi_descs(dev, &range);
 	if (ret)
 		goto unlock;
 
-	for (virq = virq_base; virq < virq_base + nvec; virq++) {
+	for (virq = range.first; virq <= range.last; virq++) {
 		desc = xa_load(&dev->msi.data->store, virq);
 		desc->irq = virq;
 
@@ -773,7 +774,7 @@ int msi_domain_populate_irqs(struct irq_
 fail:
 	for (--virq; virq >= virq_base; virq--)
 		irq_domain_free_irqs_common(domain, virq, 1);
-	msi_free_msi_descs_range(dev, MSI_DESC_ALL, virq_base, nvec);
+	msi_free_msi_descs_range(dev, MSI_DESC_ALL, &range);
 unlock:
 	msi_unlock_descs(dev);
 	return ret;
@@ -932,14 +933,13 @@ int __msi_domain_alloc_irqs(struct irq_d
 	return 0;
 }
 
-static int msi_domain_add_simple_msi_descs(struct msi_domain_info *info,
-					   struct device *dev,
-					   unsigned int num_descs)
+static int msi_domain_add_simple_msi_descs(struct msi_domain_info *info, struct device *dev,
+					   struct msi_range *range)
 {
 	if (!(info->flags & MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS))
 		return 0;
 
-	return msi_add_simple_msi_descs(dev, 0, num_descs);
+	return msi_add_simple_msi_descs(dev, range);
 }
 
 /**
@@ -964,7 +964,7 @@ int msi_domain_alloc_irqs_descs_locked(s
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	ret = msi_domain_add_simple_msi_descs(info, dev, range->ndesc);
+	ret = msi_domain_add_simple_msi_descs(info, dev, range);
 	if (ret)
 		return ret;
 
@@ -1017,11 +1017,11 @@ void __msi_domain_free_irqs(struct irq_d
 	}
 }
 
-static void msi_domain_free_msi_descs(struct msi_domain_info *info,
-				      struct device *dev)
+static void msi_domain_free_msi_descs(struct msi_domain_info *info, struct device *dev,
+				      struct msi_range *range)
 {
 	if (info->flags & MSI_FLAG_FREE_MSI_DESCS)
-		msi_free_msi_descs(dev);
+		msi_free_msi_descs_range(dev, MSI_DESC_ALL, range);
 }
 
 /**
@@ -1043,7 +1043,7 @@ void msi_domain_free_irqs_descs_locked(s
 	lockdep_assert_held(&dev->msi.data->mutex);
 
 	ops->domain_free_irqs(domain, dev, range);
-	msi_domain_free_msi_descs(info, dev);
+	msi_domain_free_msi_descs(info, dev, range);
 }
 
 /**



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233610.405500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSF-000520-FE; Sat, 27 Nov 2021 01:24:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233610.405500; Sat, 27 Nov 2021 01:24:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSF-00050t-A6; Sat, 27 Nov 2021 01:24:39 +0000
Received: by outflank-mailman (input) for mailman id 233610;
 Sat, 27 Nov 2021 01:24:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSE-0004gG-2S
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:38 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8ef161c-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:24:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8ef161c-4f20-11ec-b941-1df2895da90e
Message-ID: <20211127000918.723637256@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976276;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=wAZLS4DVWG/31wPrjnVkWgrCpcsyPlNJgofX29BhKpw=;
	b=ACnXSfNOqewTY1/+Ig8VGJiP7Eq/Hu3Mv+SGL6FsmDIQqkFvprL4HbnwzMigRxHJsUCQvX
	HYkIGqFfPnBUVK2Gp7ida8axPvoyCJrV5eUDwLgcQ+4I3ZmFIlXQq+B2eKHdf/fcE1U1kz
	nsJU3n6d/XTfa5q6bmvRi8fkPmovjaBqt6w9idFgxeAybfsJaqycBHPeVheTi6QyrV5Psx
	KOVZkP2bvoI2OhezNabehmrvAH9DGlp9mLePq4eOKWdL5Z4w8GKb6RlfsGS1+ycA+No2jo
	M8NZR22qHu1LYfXAVJz7WDPCBDty/gbpCOtMDvTOca33CRTlhogVdVU/Bm1JEw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976276;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=wAZLS4DVWG/31wPrjnVkWgrCpcsyPlNJgofX29BhKpw=;
	b=vw0tiCuP5ldLG61m2bCrJEknO6vxY4QAx1hiFFMZvgHkZRCNmVTavfIu2AmwcqvFT1i30V
	Q2Dw304vuVxzBZDw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 04/10] genirq/msi: Prepare MSI domain alloc/free for range irq
 allocation
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:36 +0100 (CET)

Make the iterators in the allocation and free functions range based.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 kernel/irq/msi.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -877,6 +877,7 @@ int __msi_domain_alloc_irqs(struct irq_d
 	msi_alloc_info_t arg = { };
 	unsigned int vflags = 0;
 	struct msi_desc *desc;
+	unsigned long idx;
 	int allocated = 0;
 	int i, ret, virq;
 
@@ -906,7 +907,10 @@ int __msi_domain_alloc_irqs(struct irq_d
 			vflags |= VIRQ_NOMASK_QUIRK;
 	}
 
-	msi_for_each_desc(desc, dev, MSI_DESC_NOTASSOCIATED) {
+	xa_for_each_range(&dev->msi.data->store, idx, desc, range->first, range->last) {
+		if (!msi_desc_match(desc, MSI_DESC_NOTASSOCIATED))
+			continue;
+
 		ops->set_desc(&arg, desc);
 
 		virq = __irq_domain_alloc_irqs(domain, -1, desc->nvec_used,
@@ -999,10 +1003,14 @@ void __msi_domain_free_irqs(struct irq_d
 	struct msi_domain_info *info = domain->host_data;
 	struct irq_data *irqd;
 	struct msi_desc *desc;
+	unsigned long idx;
 	int i;
 
 	/* Only handle MSI entries which have an interrupt associated */
-	msi_for_each_desc(desc, dev, MSI_DESC_ASSOCIATED) {
+	xa_for_each_range(&dev->msi.data->store, idx, desc, range->first, range->last) {
+		if (!msi_desc_match(desc, MSI_DESC_ASSOCIATED))
+			continue;
+
 		/* Make sure all interrupts are deactivated */
 		for (i = 0; i < desc->nvec_used; i++) {
 			irqd = irq_domain_get_irq_data(domain, desc->irq + i);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233611.405511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSG-0005J2-Pk; Sat, 27 Nov 2021 01:24:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233611.405511; Sat, 27 Nov 2021 01:24:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSG-0005IP-Kj; Sat, 27 Nov 2021 01:24:40 +0000
Received: by outflank-mailman (input) for mailman id 233611;
 Sat, 27 Nov 2021 01:24:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSF-0004gG-9g
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:39 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c9dc1b68-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:24:38 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c9dc1b68-4f20-11ec-b941-1df2895da90e
Message-ID: <20211127000918.779751933@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976278;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=CFmm+AWRwXcJQSLL7VY9/FlDxYE98PyZd7GrvqHxiD8=;
	b=e24VzNipUk4hxg1PHC6IAXr9weR7Gc/SoXDfA3RHuL3eUYXW0KQ0vmOx1Rup57wdQ4/c0M
	j0SsM53zaTsEp+xcsTJcjjvt9idxHze65/F9ku69wsdFH4O1IR3xnNt1kBpYgjtuq1EJx3
	G4+8DqRMVr0EurGDQTIs906q+2dXCPyTndaD2DMJHPeXSLph/ufoqB5pa8guu1m5SJm17L
	kBtRWLOCwVpFplTZ//BIVum2PpChXwXEF/pgcDF3hqzjYmEihoy8xv/uTBJ/AHXGcWoyWZ
	FCUJcprzFqND4a981S/J+eyIOTEK4LUqOJJk4OnVzXGII9RmrCOyMXoWJHxGBg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976278;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=CFmm+AWRwXcJQSLL7VY9/FlDxYE98PyZd7GrvqHxiD8=;
	b=gCM9TtH7kdRRuRtrS2dC9nAFXYnyiZU34H6DDhO0H4O61lGny8X8mQzTO3e0hAM5LNj6ef
	CHes+qC3TZO1npAA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 05/10] genirq/msi: Add domain info flag MSI_FLAG_CAN_EXPAND
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:37 +0100 (CET)

Not all MSI domains support runtime expansions of PCI/MSI-X vectors. Add a
domain flag so implementations can opt in.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/msi.h |    2 ++
 1 file changed, 2 insertions(+)

--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -494,6 +494,8 @@ enum {
 	MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS	= (1 << 9),
 	/* Free MSI descriptors */
 	MSI_FLAG_FREE_MSI_DESCS		= (1 << 10),
+	/* MSI vectors can be expanded after initial setup */
+	MSI_FLAG_CAN_EXPAND		= (1 << 11),
 };
 
 int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233612.405522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSJ-0005fp-5X; Sat, 27 Nov 2021 01:24:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233612.405522; Sat, 27 Nov 2021 01:24:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSI-0005fe-W4; Sat, 27 Nov 2021 01:24:42 +0000
Received: by outflank-mailman (input) for mailman id 233612;
 Sat, 27 Nov 2021 01:24:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSH-0004gG-2y
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:41 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id caccf37b-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:24:40 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: caccf37b-4f20-11ec-b941-1df2895da90e
Message-ID: <20211127000918.836550402@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976280;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=QyFkdnL3oY21jCwm7LMhiRAQpgzR7HBWMPckiZs+cZQ=;
	b=GBjn+b8QrsutedncAZPAURSSsA4cAXX/k7rT1hR+oC058LdbCYvWngK4orYIZgTSd/uxwl
	Aa+UcI+mivU7IjeRpqO9KD1764v9FRykg9zl00tSY4UcIHx67r0Udm9yLYeRLWYyvQlAY6
	3tnrDvlJ/tZEiowTqvphP2SenTauFkT8SnCUF1cB4tGasAweDA0p5ZZ58RCgRgZPFI8Umg
	3P+G9THTmbwcT+pPPNufVw7efW/jGCbDtTlJsig9IzdDZBTC8T1dqdMjTApAGPtcoC3fG2
	NLsuG3m+9Q1T5nNk6Bf1DIVl7xUvdlctpWZxI9N7809o4lW5h5sTyHaJN9pQmA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976280;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=QyFkdnL3oY21jCwm7LMhiRAQpgzR7HBWMPckiZs+cZQ=;
	b=qbNWScsKoX9jhoddvCDdBjSKrocguh1IQ5ezIZ/W0XajOCHwP+R6ptVU1LrhlXA7w6l1L3
	qq8DHdqoSrxdHCDw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 06/10] PCI/MSI: Use range in allocation path
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:39 +0100 (CET)

Make the allocation path range based to prepare for runtime expansion of
MSI-X vectors.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |    7 +++----
 drivers/pci/msi/msi.c       |   34 +++++++++++++++++++++-------------
 drivers/pci/msi/msi.h       |    2 +-
 3 files changed, 25 insertions(+), 18 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -8,16 +8,15 @@
 
 #include "msi.h"
 
-int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+int pci_msi_setup_msi_irqs(struct pci_dev *dev, struct msi_range *range, int type)
 {
-	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec};
 	struct irq_domain *domain;
 
 	domain = dev_get_msi_domain(&dev->dev);
 	if (domain && irq_domain_is_hierarchy(domain))
-		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, &range);
+		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, range);
 
-	return pci_msi_legacy_setup_msi_irqs(dev, nvec, type);
+	return pci_msi_legacy_setup_msi_irqs(dev, range->ndesc, type);
 }
 
 void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -370,14 +370,16 @@ static int msi_setup_msi_desc(struct pci
 	return ret;
 }
 
-static int msi_verify_entries(struct pci_dev *dev)
+static int msi_verify_entries(struct pci_dev *dev, struct msi_range *range)
 {
 	struct msi_desc *entry;
 
 	if (!dev->no_64bit_msi)
 		return 0;
 
-	msi_for_each_desc(entry, &dev->dev, MSI_DESC_ALL) {
+	msi_for_each_desc_from(entry, &dev->dev, MSI_DESC_ALL, range->first) {
+		if (entry->msi_index > range->last)
+			return 0;
 		if (entry->msg.address_hi) {
 			pci_err(dev, "arch assigned 64-bit MSI address %#x%08x but device only supports 32 bits\n",
 				entry->msg.address_hi, entry->msg.address_lo);
@@ -402,6 +404,7 @@ static int msi_verify_entries(struct pci
 static int msi_capability_init(struct pci_dev *dev, int nvec,
 			       struct irq_affinity *affd)
 {
+	struct msi_range range = { .first = 0, .last = 0, .ndesc = nvec, };
 	struct irq_affinity_desc *masks = NULL;
 	struct msi_desc *entry;
 	int ret;
@@ -421,11 +424,11 @@ static int msi_capability_init(struct pc
 	pci_msi_mask(entry, msi_multi_mask(entry));
 
 	/* Configure MSI capability structure */
-	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSI);
+	ret = pci_msi_setup_msi_irqs(dev, &range, PCI_CAP_ID_MSI);
 	if (ret)
 		goto err;
 
-	ret = msi_verify_entries(dev);
+	ret = msi_verify_entries(dev, &range);
 	if (ret)
 		goto err;
 
@@ -469,7 +472,8 @@ static void __iomem *msix_map_region(str
 }
 
 static int msix_setup_msi_descs(struct pci_dev *dev, void __iomem *base,
-				struct msix_entry *entries, int nvec,
+				struct msi_range *range,
+				struct msix_entry *entries,
 				struct irq_affinity_desc *masks)
 {
 	int ret, i, vec_count = pci_msix_vec_count(dev);
@@ -485,8 +489,8 @@ static int msix_setup_msi_descs(struct p
 	desc.pci.msi_attrib.default_irq	= dev->irq;
 	desc.pci.mask_base		= base;
 
-	for (i = 0, curmsk = masks; i < nvec; i++, curmsk++) {
-		desc.msi_index = entries ? entries[i].entry : i;
+	for (i = 0, curmsk = masks; i < range->ndesc; i++, curmsk++) {
+		desc.msi_index = entries ? entries[i].entry : range->first + i;
 		desc.affinity = masks ? curmsk : NULL;
 		desc.pci.msi_attrib.is_virtual = desc.msi_index >= vec_count;
 		desc.pci.msi_attrib.can_mask = !pci_msi_ignore_mask &&
@@ -500,6 +504,9 @@ static int msix_setup_msi_descs(struct p
 		ret = msi_add_msi_desc(&dev->dev, &desc);
 		if (ret)
 			break;
+
+		if (desc.msi_index > range->last)
+			range->last = desc.msi_index;
 	}
 
 	return ret;
@@ -530,28 +537,28 @@ static void msix_mask_all(void __iomem *
 }
 
 static int msix_setup_interrupts(struct pci_dev *dev, void __iomem *base,
-				 struct msix_entry *entries, int nvec,
+				 struct msi_range *range, struct msix_entry *entries,
 				 struct irq_affinity *affd)
 {
 	struct irq_affinity_desc *masks = NULL;
 	int ret;
 
 	if (affd)
-		masks = irq_create_affinity_masks(nvec, affd);
+		masks = irq_create_affinity_masks(range->ndesc, affd);
 
 	msi_lock_descs(&dev->dev);
-	ret = msix_setup_msi_descs(dev, base, entries, nvec, masks);
+	ret = msix_setup_msi_descs(dev, base, range, entries, masks);
 	if (ret)
 		goto out_free;
 
 	dev->dev.msi.data->properties = MSI_PROP_PCI_MSIX | MSI_PROP_64BIT;
 
-	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
+	ret = pci_msi_setup_msi_irqs(dev, range, PCI_CAP_ID_MSIX);
 	if (ret)
 		goto out_free;
 
 	/* Check if all MSI entries honor device restrictions */
-	ret = msi_verify_entries(dev);
+	ret = msi_verify_entries(dev, range);
 	if (ret)
 		goto out_free;
 
@@ -580,6 +587,7 @@ static int msix_setup_interrupts(struct
 static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries,
 				int nvec, struct irq_affinity *affd)
 {
+	struct msi_range range = { .first = 0, .last = 0, .ndesc = nvec, };
 	void __iomem *base;
 	int ret, tsize;
 	u16 control;
@@ -606,7 +614,7 @@ static int msix_capability_init(struct p
 	/* Ensure that all table entries are masked. */
 	msix_mask_all(base, tsize);
 
-	ret = msix_setup_interrupts(dev, base, entries, nvec, affd);
+	ret = msix_setup_interrupts(dev, base, &range, entries, affd);
 	if (ret)
 		goto out_disable;
 
--- a/drivers/pci/msi/msi.h
+++ b/drivers/pci/msi/msi.h
@@ -5,7 +5,7 @@
 
 #define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
 
-extern int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
+extern int pci_msi_setup_msi_irqs(struct pci_dev *dev, struct msi_range *range, int type);
 extern void pci_msi_teardown_msi_irqs(struct pci_dev *dev);
 
 #ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233613.405527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSJ-0005jT-KM; Sat, 27 Nov 2021 01:24:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233613.405527; Sat, 27 Nov 2021 01:24:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSJ-0005iG-Bb; Sat, 27 Nov 2021 01:24:43 +0000
Received: by outflank-mailman (input) for mailman id 233613;
 Sat, 27 Nov 2021 01:24:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSI-0004gG-HU
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:42 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cbb420a3-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:24:41 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbb420a3-4f20-11ec-b941-1df2895da90e
Message-ID: <20211127000918.892733246@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976281;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=1qj+ON8bFgIPks8keDU/08NOHxNWcizsMPwkJuRGMrI=;
	b=TpryTAQxxx6RWppxDWnQp1sseu+ucPeEfW+EupZx2rCOEvok5NQEvK3qjscAvEXPnKHmSQ
	sI/urKNHo3gJgriNBWDb0QhvqSsY81joc5q1w9Se24pZmghuMFkTDjBC6QojPQnDdhfCXq
	Jnd9Cm1icNq2eo2JCoo4o5VuhYLt2S83AR83F1zOnMJdSgsUEQtcJ28VJMsqNX4AyeQMUs
	NMXJEnyUqSkE6kh7Jqf3FPdhM9yK0G+ORqpoJrzhgEA7oNSRg2YUTW5kCj5vZAEmp2zAI/
	6MSH6J30iS6UDk/IGKjB4QnhlPXmiW/MpzU/gzDQ3NNKK/qzN9ApaYBom2X9+g==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976281;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=1qj+ON8bFgIPks8keDU/08NOHxNWcizsMPwkJuRGMrI=;
	b=a8sBRzgNgK5ykgWV3lttGcyQfCDrllQes3dDaXtlLCK/MalZhwpdvKqazKfXM2oQvBMoIk
	0ArxoCNQu0M2rQDA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 07/10] PCI/MSI: Make free related functions range based
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:41 +0100 (CET)

In preparation of runtime expandable PCI/MSI-X vectors convert the related
free functions to take ranges instead of assuming a zero based vector
space.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |    5 ++---
 drivers/pci/msi/msi.c       |   24 ++++++++++++++++--------
 drivers/pci/msi/msi.h       |    2 +-
 3 files changed, 19 insertions(+), 12 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -19,14 +19,13 @@ int pci_msi_setup_msi_irqs(struct pci_de
 	return pci_msi_legacy_setup_msi_irqs(dev, range->ndesc, type);
 }
 
-void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
+void pci_msi_teardown_msi_irqs(struct pci_dev *dev, struct msi_range *range)
 {
-	struct msi_range range = { .first = 0, .last = UINT_MAX, };
 	struct irq_domain *domain;
 
 	domain = dev_get_msi_domain(&dev->dev);
 	if (domain && irq_domain_is_hierarchy(domain))
-		msi_domain_free_irqs_descs_locked(domain, &dev->dev, &range);
+		msi_domain_free_irqs_descs_locked(domain, &dev->dev, range);
 	else
 		pci_msi_legacy_teardown_msi_irqs(dev);
 }
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -222,9 +222,12 @@ void pci_write_msi_msg(unsigned int irq,
 }
 EXPORT_SYMBOL_GPL(pci_write_msi_msg);
 
-static void free_msi_irqs(struct pci_dev *dev)
+static void free_msi_irqs(struct pci_dev *dev, struct msi_range *range, bool shutdown)
 {
-	pci_msi_teardown_msi_irqs(dev);
+	pci_msi_teardown_msi_irqs(dev, range);
+
+	if (!shutdown)
+		return;
 
 	if (dev->msix_base) {
 		iounmap(dev->msix_base);
@@ -443,7 +446,7 @@ static int msi_capability_init(struct pc
 
 err:
 	pci_msi_unmask(entry, msi_multi_mask(entry));
-	free_msi_irqs(dev);
+	free_msi_irqs(dev, &range, true);
 unlock:
 	msi_unlock_descs(&dev->dev);
 	kfree(masks);
@@ -538,7 +541,7 @@ static void msix_mask_all(void __iomem *
 
 static int msix_setup_interrupts(struct pci_dev *dev, void __iomem *base,
 				 struct msi_range *range, struct msix_entry *entries,
-				 struct irq_affinity *affd)
+				 struct irq_affinity *affd, bool expand)
 {
 	struct irq_affinity_desc *masks = NULL;
 	int ret;
@@ -566,7 +569,8 @@ static int msix_setup_interrupts(struct
 	goto out_unlock;
 
 out_free:
-	free_msi_irqs(dev);
+	free_msi_irqs(dev, range, !expand);
+
 out_unlock:
 	msi_unlock_descs(&dev->dev);
 	kfree(masks);
@@ -614,7 +618,7 @@ static int msix_capability_init(struct p
 	/* Ensure that all table entries are masked. */
 	msix_mask_all(base, tsize);
 
-	ret = msix_setup_interrupts(dev, base, &range, entries, affd);
+	ret = msix_setup_interrupts(dev, base, &range, entries, affd, false);
 	if (ret)
 		goto out_disable;
 
@@ -728,12 +732,14 @@ static void pci_msi_shutdown(struct pci_
 
 void pci_disable_msi(struct pci_dev *dev)
 {
+	struct msi_range range = { .first = 0, .last = 0, };
+
 	if (!pci_msi_enable || !dev || !dev->msi_enabled)
 		return;
 
 	msi_lock_descs(&dev->dev);
 	pci_msi_shutdown(dev);
-	free_msi_irqs(dev);
+	free_msi_irqs(dev, &range, true);
 	msi_unlock_descs(&dev->dev);
 }
 EXPORT_SYMBOL(pci_disable_msi);
@@ -817,12 +823,14 @@ static void pci_msix_shutdown(struct pci
 
 void pci_disable_msix(struct pci_dev *dev)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, };
+
 	if (!pci_msi_enable || !dev || !dev->msix_enabled)
 		return;
 
 	msi_lock_descs(&dev->dev);
 	pci_msix_shutdown(dev);
-	free_msi_irqs(dev);
+	free_msi_irqs(dev, &range, true);
 	msi_unlock_descs(&dev->dev);
 }
 EXPORT_SYMBOL(pci_disable_msix);
--- a/drivers/pci/msi/msi.h
+++ b/drivers/pci/msi/msi.h
@@ -6,7 +6,7 @@
 #define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
 
 extern int pci_msi_setup_msi_irqs(struct pci_dev *dev, struct msi_range *range, int type);
-extern void pci_msi_teardown_msi_irqs(struct pci_dev *dev);
+extern void pci_msi_teardown_msi_irqs(struct pci_dev *dev, struct msi_range *range);
 
 #ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
 extern int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233614.405544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSM-0006NB-41; Sat, 27 Nov 2021 01:24:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233614.405544; Sat, 27 Nov 2021 01:24:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSL-0006MW-Ts; Sat, 27 Nov 2021 01:24:45 +0000
Received: by outflank-mailman (input) for mailman id 233614;
 Sat, 27 Nov 2021 01:24:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSK-0003uw-1a
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:44 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cc9d0993-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:24:43 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc9d0993-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.948090130@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976283;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=0A61IAyhwI6GY5iuZYdA+ROlAbbN0w/XOIQw6hDb9NM=;
	b=u9TKqnusy4chqm3EGles3FCrSf9gO2SOc5ZSS2v+xgZD7/jCXibBKaEp2usPlK43Ep4OyF
	nluuEvkjH9Zwh3EDRF4zD+tPCC7NyAfn/QQs0J3glLsMhER63aL9Hqy+jdJwnGVjLn/TbV
	A1QjvxuddB8p4pNSNzu2Ed0dDQ4CPhfiN1AsChvb5X7XicA6ZLMdEx2E9qFBFwpV2PZyN/
	bjiLIBGIiTlLYA+LxdGOY9ii+Fv3KJ7hBe/zdjqFsVI8hi0ub1SYXHy+N8kfvQUCB9htBH
	LMNGk56OV16MgLVSmUat+bpOijccz06MfnH9BVG4zo9uiV1i1K7vl0fBXVgwKQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976283;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=0A61IAyhwI6GY5iuZYdA+ROlAbbN0w/XOIQw6hDb9NM=;
	b=xEM4t7hASH4Fv9+Q06S2RwK+mQnaOqtbNKdZ9iN52VWX1kdgv/gw59z1rFiY2d5SqPSweM
	DKCVIioTt0nAxJCw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 08/10] PCI/MSI: Provide pci_msi_domain_supports_expand()
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:42 +0100 (CET)

Not all irq domain implementations can support runtime MSI-X vector
expansion as they assume zero based allocations or have other
restrictions.

The legacy PCI allocation functions are not suited for runtime vector
expansion either.

Add a function which allows to query whether runtime MSI-X vector expansion
is supported or not.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |   29 +++++++++++++++++++++++------
 include/linux/msi.h         |    2 ++
 2 files changed, 25 insertions(+), 6 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -8,12 +8,18 @@
 
 #include "msi.h"
 
+static struct irq_domain *pci_get_msi_domain(struct pci_dev *dev)
+{
+	struct irq_domain *domain = dev_get_msi_domain(&dev->dev);
+
+	return domain && irq_domain_is_hierarchy(domain) ? domain : NULL;
+}
+
 int pci_msi_setup_msi_irqs(struct pci_dev *dev, struct msi_range *range, int type)
 {
-	struct irq_domain *domain;
+	struct irq_domain *domain = pci_get_msi_domain(dev);
 
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
+	if (domain)
 		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, range);
 
 	return pci_msi_legacy_setup_msi_irqs(dev, range->ndesc, type);
@@ -21,15 +27,26 @@ int pci_msi_setup_msi_irqs(struct pci_de
 
 void pci_msi_teardown_msi_irqs(struct pci_dev *dev, struct msi_range *range)
 {
-	struct irq_domain *domain;
+	struct irq_domain *domain = pci_get_msi_domain(dev);
 
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
+	if (domain)
 		msi_domain_free_irqs_descs_locked(domain, &dev->dev, range);
 	else
 		pci_msi_legacy_teardown_msi_irqs(dev);
 }
 
+bool pci_msi_domain_supports_expand(struct pci_dev *dev)
+{
+	struct irq_domain *domain = pci_get_msi_domain(dev);
+	struct msi_domain_info *info;
+
+	if (!domain)
+		return false;
+
+	info = domain->host_data;
+	return info->flags & MSI_FLAG_CAN_EXPAND;
+}
+
 /**
  * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
  * @irq_data:	Pointer to interrupt data of the MSI interrupt
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -552,11 +552,13 @@ struct irq_domain *pci_msi_create_irq_do
 u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev);
 struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev);
 bool pci_dev_has_special_msi_domain(struct pci_dev *pdev);
+bool pci_msi_domain_supports_expand(struct pci_dev *dev);
 #else
 static inline struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
 {
 	return NULL;
 }
+static inline bool pci_msi_domain_supports_expand(struct pci_dev *dev) { return false; }
 #endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
 
 #endif /* LINUX_MSI_H */



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233615.405553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSN-0006i2-Sb; Sat, 27 Nov 2021 01:24:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233615.405553; Sat, 27 Nov 2021 01:24:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSN-0006ga-GM; Sat, 27 Nov 2021 01:24:47 +0000
Received: by outflank-mailman (input) for mailman id 233615;
 Sat, 27 Nov 2021 01:24:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSL-0003uw-JR
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:45 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd8ccc73-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:24:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd8ccc73-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000919.004572849@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976284;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=iXWx8ngjVm94paCMjL44qtncyzw3jmQTRYweVvwdUTE=;
	b=twc9E/k5sGMn2fquLHv5+7zfix6uLYi9RH9SGLZSSA3ABcOvbp0/gPOpQlesgzHkbj1UVu
	fxR6AoIcwrtz/nn3bycIRy8P9kAGaK0ECHfhbEqIdbz1o3vq7H1JdPjQaWggom9fcYLCdX
	BOmuzr15HeqHdEIDMKSLq/WavFlqpW/xYMSc3r2wN7DXzv+PNwO5cRgSi7yjS1wpb/86Ru
	gJmjSdRE0skAiQjFeQ3BBC/okRhBX5BOlbe4JLQChHLlOjJiIRqAKAnL9t8GF853DwnxyU
	l0iBSahv+YZe+ToUNkpkfYscK/wzeDb2wgYipZlnYU4lySHkxy2LdxVpk1XRIg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976284;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=iXWx8ngjVm94paCMjL44qtncyzw3jmQTRYweVvwdUTE=;
	b=Cwze/7Fqot4zxUe/5Tt8x3Rdu1Qo6xyHVQISU76a2p6ptM3z6Ii3pkLaG0Yznt5n2sNBh3
	EqDN2aJVSQRqTdBA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 09/10] PCI/MSI: Provide pci_msix_expand_vectors[_at]()
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:44 +0100 (CET)

Provide a new interface which allows to expand the MSI-X vector space if
the underlying irq domain implementation supports it.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/msi.c |   41 +++++++++++++++++++++++++++++++++++++++++
 include/linux/pci.h   |   13 +++++++++++++
 2 files changed, 54 insertions(+)

--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -1025,6 +1025,47 @@ int pci_alloc_irq_vectors_affinity(struc
 EXPORT_SYMBOL(pci_alloc_irq_vectors_affinity);
 
 /**
+ * pci_msix_expand_vectors_at - Expand MSI-X interrupts for a device
+ *
+ * @dev:	PCI device to operate on
+ * @at:		Allocate at MSI-X index. If @at == PCI_MSI_EXPAND_AUTO
+ *		the function expands automatically after the last
+ *		active index.
+ * @nvec:	Number of vectors to allocate
+ *
+ * Expand the MSI-X vectors of a device after an initial enablement and
+ * allocation.
+ *
+ * Return: 0 if the allocation was successful, an error code otherwise.
+ */
+int pci_msix_expand_vectors_at(struct pci_dev *dev, unsigned int at, unsigned int nvec)
+{
+	struct msi_device_data *md = dev->dev.msi.data;
+	struct msi_range range = { .ndesc = nvec, };
+	unsigned int max_vecs;
+	int ret;
+
+	if (!pci_msi_enable || !dev || !dev->msix_enabled || !md)
+		return -ENOTSUPP;
+
+	if (!pci_msi_domain_supports_expand(dev))
+		return -ENOTSUPP;
+
+	max_vecs = pci_msix_vec_count(dev);
+	if (!nvec || nvec > max_vecs)
+		return -EINVAL;
+
+	range.first = at == PCI_MSIX_EXPAND_AUTO ? md->num_descs : at;
+
+	if (range.first >= max_vecs || nvec > max_vecs - range.first)
+		return -ENOSPC;
+
+	ret = msix_setup_interrupts(dev, dev->msix_base, &range, NULL, NULL, true);
+	return ret <= 0 ? ret : -ENOSPC;;
+}
+EXPORT_SYMBOL_GPL(pci_msix_expand_vectors_at);
+
+/**
  * pci_free_irq_vectors - free previously allocated IRQs for a device
  * @dev:		PCI device to operate on
  *
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1534,6 +1534,7 @@ static inline int pci_enable_msix_exact(
 int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs,
 				   unsigned int max_vecs, unsigned int flags,
 				   struct irq_affinity *affd);
+int pci_msix_expand_vectors_at(struct pci_dev *dev, unsigned int at, unsigned int nvec);
 
 void pci_free_irq_vectors(struct pci_dev *dev);
 int pci_irq_vector(struct pci_dev *dev, unsigned int nr);
@@ -1565,6 +1566,11 @@ pci_alloc_irq_vectors_affinity(struct pc
 	return -ENOSPC;
 }
 
+static inline int pci_msix_expand_vectors_at(struct pci_dev *dev, unsigned int at, unsigned int nvec)
+{
+	return -ENOTSUPP;
+}
+
 static inline void pci_free_irq_vectors(struct pci_dev *dev)
 {
 }
@@ -1582,6 +1588,13 @@ static inline const struct cpumask *pci_
 }
 #endif
 
+#define PCI_MSIX_EXPAND_AUTO	(UINT_MAX)
+
+static inline int pci_msix_expand_vectors(struct pci_dev *dev, unsigned int nvec)
+{
+	return pci_msix_expand_vectors_at(dev, PCI_MSIX_EXPAND_AUTO, nvec);
+}
+
 /**
  * pci_irqd_intx_xlate() - Translate PCI INTx value to an IRQ domain hwirq
  * @d: the INTx IRQ domain



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:24:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:24:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233616.405562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSP-000766-Hd; Sat, 27 Nov 2021 01:24:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233616.405562; Sat, 27 Nov 2021 01:24:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSP-00073z-83; Sat, 27 Nov 2021 01:24:49 +0000
Received: by outflank-mailman (input) for mailman id 233616;
 Sat, 27 Nov 2021 01:24:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSN-0004gG-82
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:47 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce9696c0-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:24:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce9696c0-4f20-11ec-b941-1df2895da90e
Message-ID: <20211127000919.061417652@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976286;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=hCvJ3RXlnaO1z2W7zc0iNOJLM+aNENiBxAWv9ZJQoBs=;
	b=XC2Gl2AXYUosg2kIFrKUz3oPHKElC1X9JFf4x3rxNOfcEV8Sq7ff8QkEBIiBuBsTfaHNCM
	65bhXgRy5LZ9CnQBXg7GbCNI4vggc91+DCTEERsiANj0TGuDaiFlcTbB0M47vNHEjihjSW
	8DA00mBgmlvScWnWuX/6xFMQMcL0n5mNIlPxb5zZocO3pbdWx0Ofy1wQIIEqhY38Jgc0AN
	q500czOHWsLH6192qrfut6JygO3G0UlybO6Qtx41PQKuS/ypTmzA4msGtxAX4YLtPpouxb
	/3SyS/cHVyI76sDvXyavx8EUa0STgNuiEnp8ZEVMmX/DZiNkTIl1EM8TAZq2cQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976286;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=hCvJ3RXlnaO1z2W7zc0iNOJLM+aNENiBxAWv9ZJQoBs=;
	b=ailFWK1MoN7Bi6dOYGgm53UBim2lp4UpqheAs+DlCTXZcPa4k+6E5dnX9FNo8gNNMKECaq
	WAcA1zeyb1QOLQAQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 10/10] x86/apic/msi: Support MSI-X vector expansion
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:45 +0100 (CET)

The X86 PCI/MSI irq domaim implementation supports vector expansion out of
the box. Make it available.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/kernel/apic/msi.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/x86/kernel/apic/msi.c
+++ b/arch/x86/kernel/apic/msi.c
@@ -178,7 +178,7 @@ static struct msi_domain_ops pci_msi_dom
 
 static struct msi_domain_info pci_msi_domain_info = {
 	.flags		= MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
-			  MSI_FLAG_PCI_MSIX,
+			  MSI_FLAG_PCI_MSIX | MSI_FLAG_CAN_EXPAND,
 	.ops		= &pci_msi_domain_ops,
 	.chip		= &pci_msi_controller,
 	.handler	= handle_edge_irq,
@@ -226,7 +226,7 @@ static struct irq_chip pci_msi_ir_contro
 
 static struct msi_domain_info pci_msi_ir_domain_info = {
 	.flags		= MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
-			  MSI_FLAG_MULTI_PCI_MSI | MSI_FLAG_PCI_MSIX,
+			  MSI_FLAG_MULTI_PCI_MSI | MSI_FLAG_PCI_MSIX | MSI_FLAG_CAN_EXPAND,
 	.ops		= &pci_msi_domain_ops,
 	.chip		= &pci_msi_ir_controller,
 	.handler	= handle_edge_irq,



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:25:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:25:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233625.405576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSc-0000tw-Qa; Sat, 27 Nov 2021 01:25:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233625.405576; Sat, 27 Nov 2021 01:25:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmSc-0000sj-N5; Sat, 27 Nov 2021 01:25:02 +0000
Received: by outflank-mailman (input) for mailman id 233625;
 Sat, 27 Nov 2021 01:25:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSb-0003uw-7E
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:01 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d653b0d8-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:24:59 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d653b0d8-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.534790941@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976299;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=FLvm8heMaeaty/kI8f2vBLPLCFbQls4zKlJo+z99yXU=;
	b=Rgn2VawwzQ0ib5p4AELlzTAOBT3z/JgcnD6AnK0Qfzl6Uwsil8g1x/9XiTMVZQsgyeVIi3
	0gXRql6Ez1Bwux6eJRLZZN6ep1ZKt7yHr9WNWwyQgv2J2iPQv2OpUkVTphzxjQc/TXjQd6
	QrEbHa8FlPjzAbmFfDyjz0xlOuEFu285ccRglffWT5nPxzJzVuJEmafUHPqz/AG3d8bbiC
	irhNiREHR29EkuDLYQYQiozWrtkmshtjkubVVO5yckAdZsLUMR7pd/idgzU6HQsYelAHGN
	ey2KAnWKLAw0kqNlSuHDIQ5OoiKhbviDoKw5C8m9d9EblJZtZ3+D8LXxcDlDeA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976299;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=FLvm8heMaeaty/kI8f2vBLPLCFbQls4zKlJo+z99yXU=;
	b=OypxZJqCdtcbu0qEZDL96om+fVeYFNbs5Fj6R/pfkyy3JlnHxvBL8Mt/s28uDHYZRunVd2
	CR6gFWwaMCE9ObCQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject:
 [patch 01/10] genirq/msi: Add range argument to alloc/free MSI domain ops
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:24:58 +0100 (CET)

In preparation for supporting range allocations for MSI-X, add a range
argument to the MSI domain alloc/free function pointers and fixup all
affected places.

The range is supplied via a pointer to a struct msi_range which contains
the first and last MSI index and the number of vectors to allocate/free.

To support the sparse MSI-X allocations via pci_enable_msix_range() and
pci_enable_msix_exact() the number of vectors can be smaller than the range
defined by the first and last MSI index. This can be cleaned up later once
the code is converted by converting these sparse allocations to an initial
allocation on enable and expansion of the vector space at the required
indices.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/powerpc/platforms/pseries/msi.c |    6 +++---
 arch/x86/pci/xen.c                   |   10 +++++-----
 include/linux/msi.h                  |   30 +++++++++++++++++++++++-------
 kernel/irq/msi.c                     |   12 ++++++------
 4 files changed, 37 insertions(+), 21 deletions(-)

--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -450,13 +450,13 @@ static void pseries_msi_ops_msi_free(str
  * RTAS can not disable one MSI at a time. It's all or nothing. Do it
  * at the end after all IRQs have been freed.
  */
-static void pseries_msi_domain_free_irqs(struct irq_domain *domain,
-					 struct device *dev)
+static void pseries_msi_domain_free_irqs(struct irq_domain *domain, struct device *dev,
+					 struct msi_range *range)
 {
 	if (WARN_ON_ONCE(!dev_is_pci(dev)))
 		return;
 
-	__msi_domain_free_irqs(domain, dev);
+	__msi_domain_free_irqs(domain, dev, range);
 
 	rtas_disable_msi(to_pci_dev(dev));
 }
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -407,8 +407,8 @@ static void xen_pv_teardown_msi_irqs(str
 	xen_teardown_msi_irqs(dev);
 }
 
-static int xen_msi_domain_alloc_irqs(struct irq_domain *domain,
-				     struct device *dev,  int nvec)
+static int xen_msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
+				     struct msi_range *range)
 {
 	int type;
 
@@ -420,11 +420,11 @@ static int xen_msi_domain_alloc_irqs(str
 	else
 		type = PCI_CAP_ID_MSI;
 
-	return xen_msi_ops.setup_msi_irqs(to_pci_dev(dev), nvec, type);
+	return xen_msi_ops.setup_msi_irqs(to_pci_dev(dev), range->ndesc, type);
 }
 
-static void xen_msi_domain_free_irqs(struct irq_domain *domain,
-				     struct device *dev)
+static void xen_msi_domain_free_irqs(struct irq_domain *domain, struct device *dev,
+				     struct msi_range *range)
 {
 	if (WARN_ON_ONCE(!dev_is_pci(dev)))
 		return;
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -191,6 +191,23 @@ struct msi_device_data {
 	enum msi_desc_filter		__iter_filter;
 };
 
+/**
+ * msi_range - Descriptor for a MSI index range
+ * @first:	First index
+ * @last:	Last index (inclusive)
+ * @ndesc:	Number of descriptors for allocations
+ *
+ * @first = 0 and @last = UINT_MAX is the full range for an operation.
+ *
+ * Note: @ndesc can be less than the range defined by @first and @last to
+ * support sparse allocations from PCI/MSI-X.
+ */
+struct msi_range {
+	unsigned int	first;
+	unsigned int	last;
+	unsigned int	ndesc;
+};
+
 int msi_setup_device_data(struct device *dev);
 
 /* MSI device properties */
@@ -415,10 +432,10 @@ struct msi_domain_ops {
 				       msi_alloc_info_t *arg);
 	void		(*set_desc)(msi_alloc_info_t *arg,
 				    struct msi_desc *desc);
-	int		(*domain_alloc_irqs)(struct irq_domain *domain,
-					     struct device *dev, int nvec);
-	void		(*domain_free_irqs)(struct irq_domain *domain,
-					    struct device *dev);
+	int		(*domain_alloc_irqs)(struct irq_domain *domain, struct device *dev,
+					     struct msi_range *range);
+	void		(*domain_free_irqs)(struct irq_domain *domain, struct device *dev,
+					    struct msi_range *range);
 };
 
 /**
@@ -484,13 +501,12 @@ int msi_domain_set_affinity(struct irq_d
 struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode,
 					 struct msi_domain_info *info,
 					 struct irq_domain *parent);
-int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
-			    int nvec);
+int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range);
 int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device *dev,
 				       int nvec);
 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			  int nvec);
-void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
+void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range);
 void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev);
 void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
 struct msi_domain_info *msi_get_domain_info(struct irq_domain *domain);
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -869,8 +869,7 @@ static int msi_init_virq(struct irq_doma
 	return 0;
 }
 
-int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
-			    int nvec)
+int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range)
 {
 	struct msi_domain_info *info = domain->host_data;
 	struct msi_domain_ops *ops = info->ops;
@@ -880,7 +879,7 @@ int __msi_domain_alloc_irqs(struct irq_d
 	int allocated = 0;
 	int i, ret, virq;
 
-	ret = msi_domain_prepare_irqs(domain, dev, nvec, &arg);
+	ret = msi_domain_prepare_irqs(domain, dev, range->ndesc, &arg);
 	if (ret)
 		return ret;
 
@@ -960,6 +959,7 @@ int msi_domain_alloc_irqs_descs_locked(s
 				       int nvec)
 {
 	struct msi_domain_info *info = domain->host_data;
+	struct msi_range range = { .ndesc = nvec };
 	struct msi_domain_ops *ops = info->ops;
 	int ret;
 
@@ -969,7 +969,7 @@ int msi_domain_alloc_irqs_descs_locked(s
 	if (ret)
 		return ret;
 
-	ret = ops->domain_alloc_irqs(domain, dev, nvec);
+	ret = ops->domain_alloc_irqs(domain, dev, &range);
 	if (ret)
 		msi_domain_free_irqs_descs_locked(domain, dev);
 	return ret;
@@ -994,7 +994,7 @@ int msi_domain_alloc_irqs(struct irq_dom
 	return ret;
 }
 
-void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
+void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range)
 {
 	struct msi_domain_info *info = domain->host_data;
 	struct irq_data *irqd;
@@ -1041,7 +1041,7 @@ void msi_domain_free_irqs_descs_locked(s
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	ops->domain_free_irqs(domain, dev);
+	ops->domain_free_irqs(domain, dev, NULL);
 	msi_domain_free_msi_descs(info, dev);
 }
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:26:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:26:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233629.405588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUQ-0002bF-7k; Sat, 27 Nov 2021 01:26:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233629.405588; Sat, 27 Nov 2021 01:26:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUQ-0002b7-39; Sat, 27 Nov 2021 01:26:54 +0000
Received: by outflank-mailman (input) for mailman id 233629;
 Sat, 27 Nov 2021 01:26:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSm-0004gG-Pr
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:12 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ddc5be85-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:25:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ddc5be85-4f20-11ec-b941-1df2895da90e
Message-ID: <20211127000919.004572849@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976311;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=iXWx8ngjVm94paCMjL44qtncyzw3jmQTRYweVvwdUTE=;
	b=XMZ8+C4S5qdKr1Con79Z8ll6XVMM2fnwfUd6VibARMXKBZJmbzz2rdgHplVFzqQWoTjqXL
	a71t/1Td6DZLsRGHxaA0Xy69M6LynlfnUWWrPppwCpmvz1S4krQdufBQTGAqkoP0l3s8T3
	5/d33e6N4qMca0wqhegVl6SB4Kg+rkn1Q5Lq3ndlMN3YDCufaLN+bpKiuw5/eO8PEddKg7
	KXX4wVb7cTsJ2Tc/55bKjXTrqTb0PPVsc9nsJs/ZzoOSFGZaIbOseCSK90/VO3qoq0OR3S
	bX2HgbvnzX2XCKSBc8Aiz7O3JmG+aqKSvt2jQ+saMx9qcR/0zEVPXRcCgYtdXQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976311;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=iXWx8ngjVm94paCMjL44qtncyzw3jmQTRYweVvwdUTE=;
	b=KqCEEAwQIQ5ub2ZhfoOhVriWcwZnFHllmQP6Q5tXV21krUdnjIG0tW2/eI3ljwxV7nF3wo
	hBnPVTOZ03C+6jDQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 09/10] PCI/MSI: Provide pci_msix_expand_vectors[_at]()
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:25:11 +0100 (CET)

Provide a new interface which allows to expand the MSI-X vector space if
the underlying irq domain implementation supports it.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/msi.c |   41 +++++++++++++++++++++++++++++++++++++++++
 include/linux/pci.h   |   13 +++++++++++++
 2 files changed, 54 insertions(+)

--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -1025,6 +1025,47 @@ int pci_alloc_irq_vectors_affinity(struc
 EXPORT_SYMBOL(pci_alloc_irq_vectors_affinity);
 
 /**
+ * pci_msix_expand_vectors_at - Expand MSI-X interrupts for a device
+ *
+ * @dev:	PCI device to operate on
+ * @at:		Allocate at MSI-X index. If @at == PCI_MSI_EXPAND_AUTO
+ *		the function expands automatically after the last
+ *		active index.
+ * @nvec:	Number of vectors to allocate
+ *
+ * Expand the MSI-X vectors of a device after an initial enablement and
+ * allocation.
+ *
+ * Return: 0 if the allocation was successful, an error code otherwise.
+ */
+int pci_msix_expand_vectors_at(struct pci_dev *dev, unsigned int at, unsigned int nvec)
+{
+	struct msi_device_data *md = dev->dev.msi.data;
+	struct msi_range range = { .ndesc = nvec, };
+	unsigned int max_vecs;
+	int ret;
+
+	if (!pci_msi_enable || !dev || !dev->msix_enabled || !md)
+		return -ENOTSUPP;
+
+	if (!pci_msi_domain_supports_expand(dev))
+		return -ENOTSUPP;
+
+	max_vecs = pci_msix_vec_count(dev);
+	if (!nvec || nvec > max_vecs)
+		return -EINVAL;
+
+	range.first = at == PCI_MSIX_EXPAND_AUTO ? md->num_descs : at;
+
+	if (range.first >= max_vecs || nvec > max_vecs - range.first)
+		return -ENOSPC;
+
+	ret = msix_setup_interrupts(dev, dev->msix_base, &range, NULL, NULL, true);
+	return ret <= 0 ? ret : -ENOSPC;;
+}
+EXPORT_SYMBOL_GPL(pci_msix_expand_vectors_at);
+
+/**
  * pci_free_irq_vectors - free previously allocated IRQs for a device
  * @dev:		PCI device to operate on
  *
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1534,6 +1534,7 @@ static inline int pci_enable_msix_exact(
 int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs,
 				   unsigned int max_vecs, unsigned int flags,
 				   struct irq_affinity *affd);
+int pci_msix_expand_vectors_at(struct pci_dev *dev, unsigned int at, unsigned int nvec);
 
 void pci_free_irq_vectors(struct pci_dev *dev);
 int pci_irq_vector(struct pci_dev *dev, unsigned int nr);
@@ -1565,6 +1566,11 @@ pci_alloc_irq_vectors_affinity(struct pc
 	return -ENOSPC;
 }
 
+static inline int pci_msix_expand_vectors_at(struct pci_dev *dev, unsigned int at, unsigned int nvec)
+{
+	return -ENOTSUPP;
+}
+
 static inline void pci_free_irq_vectors(struct pci_dev *dev)
 {
 }
@@ -1582,6 +1588,13 @@ static inline const struct cpumask *pci_
 }
 #endif
 
+#define PCI_MSIX_EXPAND_AUTO	(UINT_MAX)
+
+static inline int pci_msix_expand_vectors(struct pci_dev *dev, unsigned int nvec)
+{
+	return pci_msix_expand_vectors_at(dev, PCI_MSIX_EXPAND_AUTO, nvec);
+}
+
 /**
  * pci_irqd_intx_xlate() - Translate PCI INTx value to an IRQ domain hwirq
  * @d: the INTx IRQ domain



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:26:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:26:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233631.405599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUR-0002rg-FM; Sat, 27 Nov 2021 01:26:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233631.405599; Sat, 27 Nov 2021 01:26:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUR-0002rZ-BQ; Sat, 27 Nov 2021 01:26:55 +0000
Received: by outflank-mailman (input) for mailman id 233631;
 Sat, 27 Nov 2021 01:26:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmN3-00020H-0E
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:17 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06807858-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:11 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06807858-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223825.375987680@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975949;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=b2AUMZ8n+35cpll0aGngdLAswuTgfFiNP2Zkn1C/x7I=;
	b=fsdIqbUOIaAnFmVkuNTj6ejI9ns7C879J/Fo1xIz/PNtNCHjJhRdz0rNzjbItLztP9P1IK
	mWmnsdwH3JTcCTznzPi2l9RdKLo/NfdG9LE2dYtoY4TDlaNzaVakNx7vkKLH3jg3xk9jtM
	ova4z3kEoVnNdcdtuo3KdA3X2ALd7N4gjp2HkBLecxPT9n+D3JSPHN8nHu9logLN9F0KWs
	iEYu4dnoAvqL9kYA5FOrWzzKV55Fd/UU8K7yuqOuYWuuZicxeDHQ+4ro7gbELSsdMxnFW8
	y5cIpnNGyNxc61RmVfsSJiLfxrVsLj3XILBX1DumXbhQZxoyHBdx0TKa7k0zHg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975949;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=b2AUMZ8n+35cpll0aGngdLAswuTgfFiNP2Zkn1C/x7I=;
	b=yJ4bC6FzSZhZ57Dfe4VQHsKYJLvpCmquiodhwvBRqDB4P43BJGGRiDdxGDwERjB0S8UxyG
	a75kiEgGaYqDk2AQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 22/22] PCI/MSI: Move descriptor counting on allocation fail to
 the legacy code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:09 +0100 (CET)

The irqdomain code already returns the information. Move the loop to the
legacy code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/legacy.c |   20 +++++++++++++++++++-
 drivers/pci/msi/msi.c    |   19 +------------------
 2 files changed, 20 insertions(+), 19 deletions(-)

--- a/drivers/pci/msi/legacy.c
+++ b/drivers/pci/msi/legacy.c
@@ -50,9 +50,27 @@ void __weak arch_teardown_msi_irqs(struc
 	}
 }
 
+static int pci_msi_setup_check_result(struct pci_dev *dev, int type, int ret)
+{
+	struct msi_desc *entry;
+	int avail = 0;
+
+	if (type != PCI_CAP_ID_MSIX || ret >= 0)
+		return ret;
+
+	/* Scan the MSI descriptors for successfully allocated ones. */
+	for_each_pci_msi_entry(entry, dev) {
+		if (entry->irq != 0)
+			avail++;
+	}
+	return avail ? avail : ret;
+}
+
 int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
-	return arch_setup_msi_irqs(dev, nvec, type);
+	int ret = arch_setup_msi_irqs(dev, nvec, type);
+
+	return pci_msi_setup_check_result(dev, type, ret);
 }
 
 void pci_msi_legacy_teardown_msi_irqs(struct pci_dev *dev)
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -609,7 +609,7 @@ static int msix_capability_init(struct p
 
 	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
 	if (ret)
-		goto out_avail;
+		goto out_free;
 
 	/* Check if all MSI entries honor device restrictions */
 	ret = msi_verify_entries(dev);
@@ -634,23 +634,6 @@ static int msix_capability_init(struct p
 	pcibios_free_irq(dev);
 	return 0;
 
-out_avail:
-	if (ret < 0) {
-		/*
-		 * If we had some success, report the number of IRQs
-		 * we succeeded in setting up.
-		 */
-		struct msi_desc *entry;
-		int avail = 0;
-
-		for_each_pci_msi_entry(entry, dev) {
-			if (entry->irq != 0)
-				avail++;
-		}
-		if (avail != 0)
-			ret = avail;
-	}
-
 out_free:
 	free_msi_irqs(dev);
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:26:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:26:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233632.405605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUR-0002vZ-RS; Sat, 27 Nov 2021 01:26:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233632.405605; Sat, 27 Nov 2021 01:26:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUR-0002ua-KE; Sat, 27 Nov 2021 01:26:55 +0000
Received: by outflank-mailman (input) for mailman id 233632;
 Sat, 27 Nov 2021 01:26:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNH-00020H-Ii
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:31 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 126a8d67-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:30 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 126a8d67-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223824.441771859@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975970;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=EjQK06gGut8wpWxb3xXf7TaaLrkIbQLhpXZXlXqI+1E=;
	b=3IN7G2Z+0trEJeykGv7kUnMltcrJgw6/YiiYZT8QXhspQzKvcIJW3i6gR+n0r+g0hsjZAO
	6Y9KrK5zYseTHHVb7+c8IptjiFQeVXBeJDPflWUfULp3GtFjmbp9XFuGtmX1U+/q2euX+7
	jbyTLqyRLHFcvAPwlksKJBmoQq5tScd89MT6QeCRCoLuq+1hECPKCcrJEwZqd6tTMvJfgo
	omFGhCP0pUYeNAhfPERNfI16sLmeF3+3CoWsyDCxxVlEIkwnejxyxNkkc5/OsucKZ6M2Wz
	9b3BXGVs3dTsq0Elas1wdnxn4Qa5k8MRI/8VEocHf7LWeYN/GB276k0tmU8dkg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975970;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=EjQK06gGut8wpWxb3xXf7TaaLrkIbQLhpXZXlXqI+1E=;
	b=tNxaZsUisx8qmcOuXzPTbk9OTikfV8u0CcSvhiEBov4PNCxknl15jCdw3kB2y8lH62s1JS
	bmCvi3+Z0sDU1eBw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 06/22] PCI/MSI: Make pci_msi_domain_write_msg() static
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:30 +0100 (CET)

There is no point to have this function public as it is set by the PCI core
anyway when a PCI/MSI irqdomain is created.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/irqchip/irq-gic-v2m.c            |    1 -
 drivers/irqchip/irq-gic-v3-its-pci-msi.c |    1 -
 drivers/irqchip/irq-gic-v3-mbi.c         |    1 -
 drivers/pci/msi.c                        |    2 +-
 include/linux/msi.h                      |    1 -
 5 files changed, 1 insertion(+), 5 deletions(-)

--- a/drivers/irqchip/irq-gic-v2m.c
+++ b/drivers/irqchip/irq-gic-v2m.c
@@ -88,7 +88,6 @@ static struct irq_chip gicv2m_msi_irq_ch
 	.irq_mask		= gicv2m_mask_msi_irq,
 	.irq_unmask		= gicv2m_unmask_msi_irq,
 	.irq_eoi		= irq_chip_eoi_parent,
-	.irq_write_msi_msg	= pci_msi_domain_write_msg,
 };
 
 static struct msi_domain_info gicv2m_msi_domain_info = {
--- a/drivers/irqchip/irq-gic-v3-its-pci-msi.c
+++ b/drivers/irqchip/irq-gic-v3-its-pci-msi.c
@@ -28,7 +28,6 @@ static struct irq_chip its_msi_irq_chip
 	.irq_unmask		= its_unmask_msi_irq,
 	.irq_mask		= its_mask_msi_irq,
 	.irq_eoi		= irq_chip_eoi_parent,
-	.irq_write_msi_msg	= pci_msi_domain_write_msg,
 };
 
 static int its_pci_msi_vec_count(struct pci_dev *pdev, void *data)
--- a/drivers/irqchip/irq-gic-v3-mbi.c
+++ b/drivers/irqchip/irq-gic-v3-mbi.c
@@ -171,7 +171,6 @@ static struct irq_chip mbi_msi_irq_chip
 	.irq_unmask		= mbi_unmask_msi_irq,
 	.irq_eoi		= irq_chip_eoi_parent,
 	.irq_compose_msi_msg	= mbi_compose_msi_msg,
-	.irq_write_msi_msg	= pci_msi_domain_write_msg,
 };
 
 static struct msi_domain_info mbi_msi_domain_info = {
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1267,7 +1267,7 @@ EXPORT_SYMBOL_GPL(msi_desc_to_pci_sysdat
  * @irq_data:	Pointer to interrupt data of the MSI interrupt
  * @msg:	Pointer to the message
  */
-void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
+static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
 {
 	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -454,7 +454,6 @@ void *platform_msi_get_host_data(struct
 #endif /* CONFIG_GENERIC_MSI_IRQ_DOMAIN */
 
 #ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg);
 struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
 					     struct msi_domain_info *info,
 					     struct irq_domain *parent);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:26:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:26:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233638.405620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUV-0003Uu-8Q; Sat, 27 Nov 2021 01:26:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233638.405620; Sat, 27 Nov 2021 01:26:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUV-0003Un-4n; Sat, 27 Nov 2021 01:26:59 +0000
Received: by outflank-mailman (input) for mailman id 233638;
 Sat, 27 Nov 2021 01:26:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNO-0002cc-Jq
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:38 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1631a075-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1631a075-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223824.679247706@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975977;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=4rnzffhngGnxTe5PEkZvVRK1c33wDUixOezkjXJ0tvw=;
	b=0FZtYJO2OH8gJx4JCRiRb5ysEqXyYyFst3+pIK7Gc8CK0X5Exi5sDZPWJoCgV2e22q0Heg
	IKWxvbgPXCglCosgVZl5uYK7q+WN1TPlnnHWKAVhKN+OXknQBWZX4L9Q6xpswjgFzBMHIm
	DlNH5CvkNFWwHp/ZbpEEwPeaCV9GJxbmq2A8Rkfy9Ve1ZZZM3/7FUZkOlj2cZvY/4o2CWA
	0foZomanYUcIjyZr0T2CYvJGcn1fumpPH3ziHS+5nulrHpkbbBjsvffZy9/1EopTXeoXf9
	oxmyJZhcFq8PU8/oYuuxAe8xvtWzkk6SxgSMQ/BIT5g2VjoeRfcZ08+VaNCUow==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975977;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=4rnzffhngGnxTe5PEkZvVRK1c33wDUixOezkjXJ0tvw=;
	b=GERv7VjfkWTmleoQukMYggUIIc29SIlgdGnxl5y0v1AocWf0SmwaeXK8X9+QQ6lv19ZGZi
	ow3EQgeiBx8QoQCQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject:
 [patch 10/22] genirq/msi, treewide: Use a named struct for PCI/MSI attributes
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:36 +0100 (CET)

The unnamed struct sucks and is in the way of further cleanups. Stick the
PCI related MSI data into a real data structure and cleanup all users.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: sparclinux@vger.kernel.org
Cc: x86@kernel.org
Cc: xen-devel@lists.xenproject.org
Cc: ath11k@lists.infradead.org
---
 arch/powerpc/platforms/cell/axon_msi.c    |    2 
 arch/powerpc/platforms/powernv/pci-ioda.c |    4 -
 arch/powerpc/platforms/pseries/msi.c      |    6 -
 arch/sparc/kernel/pci_msi.c               |    4 -
 arch/x86/kernel/apic/msi.c                |    2 
 arch/x86/pci/xen.c                        |    6 -
 drivers/net/wireless/ath/ath11k/pci.c     |    2 
 drivers/pci/msi.c                         |  116 +++++++++++++++---------------
 drivers/pci/xen-pcifront.c                |    2 
 include/linux/msi.h                       |   84 ++++++++++-----------
 kernel/irq/msi.c                          |    4 -
 11 files changed, 115 insertions(+), 117 deletions(-)

--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -212,7 +212,7 @@ static int setup_msi_msg_address(struct
 	entry = first_pci_msi_entry(dev);
 
 	for (; dn; dn = of_get_next_parent(dn)) {
-		if (entry->msi_attrib.is_64) {
+		if (entry->pci.msi_attrib.is_64) {
 			prop = of_get_property(dn, "msi-address-64", &len);
 			if (prop)
 				break;
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -2154,10 +2154,10 @@ static void pnv_msi_compose_msg(struct i
 	int rc;
 
 	rc = __pnv_pci_ioda_msi_setup(phb, pdev, d->hwirq,
-				      entry->msi_attrib.is_64, msg);
+				      entry->pci.msi_attrib.is_64, msg);
 	if (rc)
 		dev_err(&pdev->dev, "Failed to setup %s-bit MSI #%ld : %d\n",
-			entry->msi_attrib.is_64 ? "64" : "32", d->hwirq, rc);
+			entry->pci.msi_attrib.is_64 ? "64" : "32", d->hwirq, rc);
 }
 
 /*
--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -332,7 +332,7 @@ static int check_msix_entries(struct pci
 
 	expected = 0;
 	for_each_pci_msi_entry(entry, pdev) {
-		if (entry->msi_attrib.entry_nr != expected) {
+		if (entry->pci.msi_attrib.entry_nr != expected) {
 			pr_debug("rtas_msi: bad MSI-X entries.\n");
 			return -EINVAL;
 		}
@@ -449,7 +449,7 @@ static int pseries_msi_ops_prepare(struc
 {
 	struct pci_dev *pdev = to_pci_dev(dev);
 	struct msi_desc *desc = first_pci_msi_entry(pdev);
-	int type = desc->msi_attrib.is_msix ? PCI_CAP_ID_MSIX : PCI_CAP_ID_MSI;
+	int type = desc->pci.msi_attrib.is_msix ? PCI_CAP_ID_MSIX : PCI_CAP_ID_MSI;
 
 	return rtas_prepare_msi_irqs(pdev, nvec, type, arg);
 }
@@ -580,7 +580,7 @@ static int pseries_irq_domain_alloc(stru
 	int hwirq;
 	int i, ret;
 
-	hwirq = rtas_query_irq_number(pci_get_pdn(pdev), desc->msi_attrib.entry_nr);
+	hwirq = rtas_query_irq_number(pci_get_pdn(pdev), desc->pci.msi_attrib.entry_nr);
 	if (hwirq < 0) {
 		dev_err(&pdev->dev, "Failed to query HW IRQ: %d\n", hwirq);
 		return hwirq;
--- a/arch/sparc/kernel/pci_msi.c
+++ b/arch/sparc/kernel/pci_msi.c
@@ -146,13 +146,13 @@ static int sparc64_setup_msi_irq(unsigne
 	msiqid = pick_msiq(pbm);
 
 	err = ops->msi_setup(pbm, msiqid, msi,
-			     (entry->msi_attrib.is_64 ? 1 : 0));
+			     (entry->pci.msi_attrib.is_64 ? 1 : 0));
 	if (err)
 		goto out_msi_free;
 
 	pbm->msi_irq_table[msi - pbm->msi_first] = *irq_p;
 
-	if (entry->msi_attrib.is_64) {
+	if (entry->pci.msi_attrib.is_64) {
 		msg.address_hi = pbm->msi64_start >> 32;
 		msg.address_lo = pbm->msi64_start & 0xffffffff;
 	} else {
--- a/arch/x86/kernel/apic/msi.c
+++ b/arch/x86/kernel/apic/msi.c
@@ -163,7 +163,7 @@ int pci_msi_prepare(struct irq_domain *d
 	struct msi_desc *desc = first_pci_msi_entry(pdev);
 
 	init_irq_alloc_info(arg, NULL);
-	if (desc->msi_attrib.is_msix) {
+	if (desc->pci.msi_attrib.is_msix) {
 		arg->type = X86_IRQ_ALLOC_TYPE_PCI_MSIX;
 	} else {
 		arg->type = X86_IRQ_ALLOC_TYPE_PCI_MSI;
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -306,7 +306,7 @@ static int xen_initdom_setup_msi_irqs(st
 				return -EINVAL;
 
 			map_irq.table_base = pci_resource_start(dev, bir);
-			map_irq.entry_nr = msidesc->msi_attrib.entry_nr;
+			map_irq.entry_nr = msidesc->pci.msi_attrib.entry_nr;
 		}
 
 		ret = -EINVAL;
@@ -398,7 +398,7 @@ static void xen_pv_teardown_msi_irqs(str
 {
 	struct msi_desc *msidesc = first_pci_msi_entry(dev);
 
-	if (msidesc->msi_attrib.is_msix)
+	if (msidesc->pci.msi_attrib.is_msix)
 		xen_pci_frontend_disable_msix(dev);
 	else
 		xen_pci_frontend_disable_msi(dev);
@@ -414,7 +414,7 @@ static int xen_msi_domain_alloc_irqs(str
 	if (WARN_ON_ONCE(!dev_is_pci(dev)))
 		return -EINVAL;
 
-	if (first_msi_entry(dev)->msi_attrib.is_msix)
+	if (first_msi_entry(dev)->pci.msi_attrib.is_msix)
 		type = PCI_CAP_ID_MSIX;
 	else
 		type = PCI_CAP_ID_MSI;
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -911,7 +911,7 @@ static int ath11k_pci_alloc_msi(struct a
 	}
 
 	ab_pci->msi_ep_base_data = msi_desc->msg.data;
-	if (msi_desc->msi_attrib.is_64)
+	if (msi_desc->pci.msi_attrib.is_64)
 		set_bit(ATH11K_PCI_FLAG_IS_MSI_64, &ab_pci->flags);
 
 	ath11k_dbg(ab, ATH11K_DBG_PCI, "msi base data is %d\n", ab_pci->msi_ep_base_data);
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -138,9 +138,9 @@ void __weak arch_restore_msi_irqs(struct
 static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
 {
 	/* Don't shift by >= width of type */
-	if (desc->msi_attrib.multi_cap >= 5)
+	if (desc->pci.msi_attrib.multi_cap >= 5)
 		return 0xffffffff;
-	return (1 << (1 << desc->msi_attrib.multi_cap)) - 1;
+	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
 }
 
 static noinline void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set)
@@ -148,14 +148,14 @@ static noinline void pci_msi_update_mask
 	raw_spinlock_t *lock = &desc->dev->msi_lock;
 	unsigned long flags;
 
-	if (!desc->msi_attrib.can_mask)
+	if (!desc->pci.msi_attrib.can_mask)
 		return;
 
 	raw_spin_lock_irqsave(lock, flags);
-	desc->msi_mask &= ~clear;
-	desc->msi_mask |= set;
-	pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->mask_pos,
-			       desc->msi_mask);
+	desc->pci.msi_mask &= ~clear;
+	desc->pci.msi_mask |= set;
+	pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->pci.mask_pos,
+			       desc->pci.msi_mask);
 	raw_spin_unlock_irqrestore(lock, flags);
 }
 
@@ -171,7 +171,7 @@ static inline void pci_msi_unmask(struct
 
 static inline void __iomem *pci_msix_desc_addr(struct msi_desc *desc)
 {
-	return desc->mask_base + desc->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE;
+	return desc->pci.mask_base + desc->pci.msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE;
 }
 
 /*
@@ -184,27 +184,27 @@ static void pci_msix_write_vector_ctrl(s
 {
 	void __iomem *desc_addr = pci_msix_desc_addr(desc);
 
-	if (desc->msi_attrib.can_mask)
+	if (desc->pci.msi_attrib.can_mask)
 		writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
 }
 
 static inline void pci_msix_mask(struct msi_desc *desc)
 {
-	desc->msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	pci_msix_write_vector_ctrl(desc, desc->msix_ctrl);
+	desc->pci.msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
 	/* Flush write to device */
-	readl(desc->mask_base);
+	readl(desc->pci.mask_base);
 }
 
 static inline void pci_msix_unmask(struct msi_desc *desc)
 {
-	desc->msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	pci_msix_write_vector_ctrl(desc, desc->msix_ctrl);
+	desc->pci.msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
 }
 
 static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
 {
-	if (desc->msi_attrib.is_msix)
+	if (desc->pci.msi_attrib.is_msix)
 		pci_msix_mask(desc);
 	else
 		pci_msi_mask(desc, mask);
@@ -212,7 +212,7 @@ static void __pci_msi_mask_desc(struct m
 
 static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
 {
-	if (desc->msi_attrib.is_msix)
+	if (desc->pci.msi_attrib.is_msix)
 		pci_msix_unmask(desc);
 	else
 		pci_msi_unmask(desc, mask);
@@ -256,10 +256,10 @@ void __pci_read_msi_msg(struct msi_desc
 
 	BUG_ON(dev->current_state != PCI_D0);
 
-	if (entry->msi_attrib.is_msix) {
+	if (entry->pci.msi_attrib.is_msix) {
 		void __iomem *base = pci_msix_desc_addr(entry);
 
-		if (WARN_ON_ONCE(entry->msi_attrib.is_virtual))
+		if (WARN_ON_ONCE(entry->pci.msi_attrib.is_virtual))
 			return;
 
 		msg->address_lo = readl(base + PCI_MSIX_ENTRY_LOWER_ADDR);
@@ -271,7 +271,7 @@ void __pci_read_msi_msg(struct msi_desc
 
 		pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
 				      &msg->address_lo);
-		if (entry->msi_attrib.is_64) {
+		if (entry->pci.msi_attrib.is_64) {
 			pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
 					      &msg->address_hi);
 			pci_read_config_word(dev, pos + PCI_MSI_DATA_64, &data);
@@ -289,12 +289,12 @@ void __pci_write_msi_msg(struct msi_desc
 
 	if (dev->current_state != PCI_D0 || pci_dev_is_disconnected(dev)) {
 		/* Don't touch the hardware now */
-	} else if (entry->msi_attrib.is_msix) {
+	} else if (entry->pci.msi_attrib.is_msix) {
 		void __iomem *base = pci_msix_desc_addr(entry);
-		u32 ctrl = entry->msix_ctrl;
+		u32 ctrl = entry->pci.msix_ctrl;
 		bool unmasked = !(ctrl & PCI_MSIX_ENTRY_CTRL_MASKBIT);
 
-		if (entry->msi_attrib.is_virtual)
+		if (entry->pci.msi_attrib.is_virtual)
 			goto skip;
 
 		/*
@@ -323,12 +323,12 @@ void __pci_write_msi_msg(struct msi_desc
 
 		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
 		msgctl &= ~PCI_MSI_FLAGS_QSIZE;
-		msgctl |= entry->msi_attrib.multiple << 4;
+		msgctl |= entry->pci.msi_attrib.multiple << 4;
 		pci_write_config_word(dev, pos + PCI_MSI_FLAGS, msgctl);
 
 		pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
 				       msg->address_lo);
-		if (entry->msi_attrib.is_64) {
+		if (entry->pci.msi_attrib.is_64) {
 			pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
 					       msg->address_hi);
 			pci_write_config_word(dev, pos + PCI_MSI_DATA_64,
@@ -376,9 +376,9 @@ static void free_msi_irqs(struct pci_dev
 	pci_msi_teardown_msi_irqs(dev);
 
 	list_for_each_entry_safe(entry, tmp, msi_list, list) {
-		if (entry->msi_attrib.is_msix) {
+		if (entry->pci.msi_attrib.is_msix) {
 			if (list_is_last(&entry->list, msi_list))
-				iounmap(entry->mask_base);
+				iounmap(entry->pci.mask_base);
 		}
 
 		list_del(&entry->list);
@@ -420,7 +420,7 @@ static void __pci_restore_msi_state(stru
 	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
 	pci_msi_update_mask(entry, 0, 0);
 	control &= ~PCI_MSI_FLAGS_QSIZE;
-	control |= (entry->msi_attrib.multiple << 4) | PCI_MSI_FLAGS_ENABLE;
+	control |= (entry->pci.msi_attrib.multiple << 4) | PCI_MSI_FLAGS_ENABLE;
 	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
 }
 
@@ -449,7 +449,7 @@ static void __pci_restore_msix_state(str
 
 	arch_restore_msi_irqs(dev);
 	for_each_pci_msi_entry(entry, dev)
-		pci_msix_write_vector_ctrl(entry, entry->msix_ctrl);
+		pci_msix_write_vector_ctrl(entry, entry->pci.msix_ctrl);
 
 	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
 }
@@ -481,24 +481,24 @@ msi_setup_entry(struct pci_dev *dev, int
 	if (dev->dev_flags & PCI_DEV_FLAGS_HAS_MSI_MASKING)
 		control |= PCI_MSI_FLAGS_MASKBIT;
 
-	entry->msi_attrib.is_msix	= 0;
-	entry->msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
-	entry->msi_attrib.is_virtual    = 0;
-	entry->msi_attrib.entry_nr	= 0;
-	entry->msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+	entry->pci.msi_attrib.is_msix	= 0;
+	entry->pci.msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
+	entry->pci.msi_attrib.is_virtual    = 0;
+	entry->pci.msi_attrib.entry_nr	= 0;
+	entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
 					  !!(control & PCI_MSI_FLAGS_MASKBIT);
-	entry->msi_attrib.default_irq	= dev->irq;	/* Save IOAPIC IRQ */
-	entry->msi_attrib.multi_cap	= (control & PCI_MSI_FLAGS_QMASK) >> 1;
-	entry->msi_attrib.multiple	= ilog2(__roundup_pow_of_two(nvec));
+	entry->pci.msi_attrib.default_irq	= dev->irq;	/* Save IOAPIC IRQ */
+	entry->pci.msi_attrib.multi_cap	= (control & PCI_MSI_FLAGS_QMASK) >> 1;
+	entry->pci.msi_attrib.multiple	= ilog2(__roundup_pow_of_two(nvec));
 
 	if (control & PCI_MSI_FLAGS_64BIT)
-		entry->mask_pos = dev->msi_cap + PCI_MSI_MASK_64;
+		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_64;
 	else
-		entry->mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
+		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
 
 	/* Save the initial mask status */
-	if (entry->msi_attrib.can_mask)
-		pci_read_config_dword(dev, entry->mask_pos, &entry->msi_mask);
+	if (entry->pci.msi_attrib.can_mask)
+		pci_read_config_dword(dev, entry->pci.mask_pos, &entry->pci.msi_mask);
 
 out:
 	kfree(masks);
@@ -630,26 +630,26 @@ static int msix_setup_entries(struct pci
 			goto out;
 		}
 
-		entry->msi_attrib.is_msix	= 1;
-		entry->msi_attrib.is_64		= 1;
+		entry->pci.msi_attrib.is_msix	= 1;
+		entry->pci.msi_attrib.is_64	= 1;
 
 		if (entries)
-			entry->msi_attrib.entry_nr = entries[i].entry;
+			entry->pci.msi_attrib.entry_nr = entries[i].entry;
 		else
-			entry->msi_attrib.entry_nr = i;
+			entry->pci.msi_attrib.entry_nr = i;
 
-		entry->msi_attrib.is_virtual =
-			entry->msi_attrib.entry_nr >= vec_count;
+		entry->pci.msi_attrib.is_virtual =
+			entry->pci.msi_attrib.entry_nr >= vec_count;
 
-		entry->msi_attrib.can_mask	= !pci_msi_ignore_mask &&
-						  !entry->msi_attrib.is_virtual;
+		entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+						  !entry->pci.msi_attrib.is_virtual;
 
-		entry->msi_attrib.default_irq	= dev->irq;
-		entry->mask_base		= base;
+		entry->pci.msi_attrib.default_irq	= dev->irq;
+		entry->pci.mask_base			= base;
 
-		if (entry->msi_attrib.can_mask) {
+		if (entry->pci.msi_attrib.can_mask) {
 			addr = pci_msix_desc_addr(entry);
-			entry->msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
+			entry->pci.msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
 		}
 
 		list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
@@ -874,7 +874,7 @@ static void pci_msi_shutdown(struct pci_
 	pci_msi_unmask(desc, msi_multi_mask(desc));
 
 	/* Restore dev->irq to its default pin-assertion IRQ */
-	dev->irq = desc->msi_attrib.default_irq;
+	dev->irq = desc->pci.msi_attrib.default_irq;
 	pcibios_alloc_irq(dev);
 }
 
@@ -1196,7 +1196,7 @@ int pci_irq_vector(struct pci_dev *dev,
 		struct msi_desc *entry;
 
 		for_each_pci_msi_entry(entry, dev) {
-			if (entry->msi_attrib.entry_nr == nr)
+			if (entry->pci.msi_attrib.entry_nr == nr)
 				return entry->irq;
 		}
 		WARN_ON_ONCE(1);
@@ -1228,7 +1228,7 @@ const struct cpumask *pci_irq_get_affini
 		struct msi_desc *entry;
 
 		for_each_pci_msi_entry(entry, dev) {
-			if (entry->msi_attrib.entry_nr == nr)
+			if (entry->pci.msi_attrib.entry_nr == nr)
 				return &entry->affinity->mask;
 		}
 		WARN_ON_ONCE(1);
@@ -1281,14 +1281,14 @@ static irq_hw_number_t pci_msi_domain_ca
 {
 	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
 
-	return (irq_hw_number_t)desc->msi_attrib.entry_nr |
+	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
 		pci_dev_id(dev) << 11 |
 		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
 }
 
 static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
 {
-	return !desc->msi_attrib.is_msix && desc->nvec_used > 1;
+	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
 }
 
 /**
@@ -1312,7 +1312,7 @@ int pci_msi_domain_check_cap(struct irq_
 	if (pci_msi_desc_is_multi_msi(desc) &&
 	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
 		return 1;
-	else if (desc->msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
+	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
 		return -ENOTSUPP;
 
 	return 0;
--- a/drivers/pci/xen-pcifront.c
+++ b/drivers/pci/xen-pcifront.c
@@ -263,7 +263,7 @@ static int pci_frontend_enable_msix(stru
 
 	i = 0;
 	for_each_pci_msi_entry(entry, dev) {
-		op.msix_entries[i].entry = entry->msi_attrib.entry_nr;
+		op.msix_entries[i].entry = entry->pci.msi_attrib.entry_nr;
 		/* Vector is useless at this point. */
 		op.msix_entries[i].vector = -1;
 		i++;
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -68,6 +68,42 @@ typedef void (*irq_write_msi_msg_t)(stru
 				    struct msi_msg *msg);
 
 /**
+ * pci_msi_desc - PCI/MSI specific MSI descriptor data
+ *
+ * @msi_mask:	[PCI MSI]   MSI cached mask bits
+ * @msix_ctrl:	[PCI MSI-X] MSI-X cached per vector control bits
+ * @is_msix:	[PCI MSI/X] True if MSI-X
+ * @multiple:	[PCI MSI/X] log2 num of messages allocated
+ * @multi_cap:	[PCI MSI/X] log2 num of messages supported
+ * @can_mask:	[PCI MSI/X] Masking supported?
+ * @is_64:	[PCI MSI/X] Address size: 0=32bit 1=64bit
+ * @entry_nr:	[PCI MSI/X] Entry which is described by this descriptor
+ * @default_irq:[PCI MSI/X] The default pre-assigned non-MSI irq
+ * @mask_pos:	[PCI MSI]   Mask register position
+ * @mask_base:	[PCI MSI-X] Mask register base address
+ */
+struct pci_msi_desc {
+	union {
+		u32 msi_mask;
+		u32 msix_ctrl;
+	};
+	struct {
+		u8	is_msix		: 1;
+		u8	multiple	: 3;
+		u8	multi_cap	: 3;
+		u8	can_mask	: 1;
+		u8	is_64		: 1;
+		u8	is_virtual	: 1;
+		u16	entry_nr;
+		unsigned default_irq;
+	} msi_attrib;
+	union {
+		u8	mask_pos;
+		void __iomem *mask_base;
+	};
+};
+
+/**
  * platform_msi_desc - Platform device specific msi descriptor data
  * @msi_priv_data:	Pointer to platform private data
  * @msi_index:		The index of the MSI descriptor for multi MSI
@@ -106,17 +142,7 @@ struct ti_sci_inta_msi_desc {
  *			address or data changes
  * @write_msi_msg_data:	Data parameter for the callback.
  *
- * @msi_mask:	[PCI MSI]   MSI cached mask bits
- * @msix_ctrl:	[PCI MSI-X] MSI-X cached per vector control bits
- * @is_msix:	[PCI MSI/X] True if MSI-X
- * @multiple:	[PCI MSI/X] log2 num of messages allocated
- * @multi_cap:	[PCI MSI/X] log2 num of messages supported
- * @maskbit:	[PCI MSI/X] Mask-Pending bit supported?
- * @is_64:	[PCI MSI/X] Address size: 0=32bit 1=64bit
- * @entry_nr:	[PCI MSI/X] Entry which is described by this descriptor
- * @default_irq:[PCI MSI/X] The default pre-assigned non-MSI irq
- * @mask_pos:	[PCI MSI]   Mask register position
- * @mask_base:	[PCI MSI-X] Mask register base address
+ * @pci:	[PCI]	    PCI speficic msi descriptor data
  * @platform:	[platform]  Platform device specific msi descriptor data
  * @fsl_mc:	[fsl-mc]    FSL MC device specific msi descriptor data
  * @inta:	[INTA]	    TISCI based INTA specific msi descriptor data
@@ -137,38 +163,10 @@ struct msi_desc {
 	void *write_msi_msg_data;
 
 	union {
-		/* PCI MSI/X specific data */
-		struct {
-			union {
-				u32 msi_mask;
-				u32 msix_ctrl;
-			};
-			struct {
-				u8	is_msix		: 1;
-				u8	multiple	: 3;
-				u8	multi_cap	: 3;
-				u8	can_mask	: 1;
-				u8	is_64		: 1;
-				u8	is_virtual	: 1;
-				u16	entry_nr;
-				unsigned default_irq;
-			} msi_attrib;
-			union {
-				u8	mask_pos;
-				void __iomem *mask_base;
-			};
-		};
-
-		/*
-		 * Non PCI variants add their data structure here. New
-		 * entries need to use a named structure. We want
-		 * proper name spaces for this. The PCI part is
-		 * anonymous for now as it would require an immediate
-		 * tree wide cleanup.
-		 */
-		struct platform_msi_desc platform;
-		struct fsl_mc_msi_desc fsl_mc;
-		struct ti_sci_inta_msi_desc inta;
+		struct pci_msi_desc		pci;
+		struct platform_msi_desc	platform;
+		struct fsl_mc_msi_desc		fsl_mc;
+		struct ti_sci_inta_msi_desc	inta;
 	};
 };
 
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -91,7 +91,7 @@ static ssize_t msi_mode_show(struct devi
 		return -ENODEV;
 
 	if (dev_is_pci(dev))
-		is_msix = entry->msi_attrib.is_msix;
+		is_msix = entry->pci.msi_attrib.is_msix;
 
 	return sysfs_emit(buf, "%s\n", is_msix ? "msix" : "msi");
 }
@@ -535,7 +535,7 @@ static bool msi_check_reservation_mode(s
 	 * masking and MSI does so when the can_mask attribute is set.
 	 */
 	desc = first_msi_entry(dev);
-	return desc->msi_attrib.is_msix || desc->msi_attrib.can_mask;
+	return desc->pci.msi_attrib.is_msix || desc->pci.msi_attrib.can_mask;
 }
 
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233644.405631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUY-0003so-M2; Sat, 27 Nov 2021 01:27:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233644.405631; Sat, 27 Nov 2021 01:27:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUY-0003sd-Ig; Sat, 27 Nov 2021 01:27:02 +0000
Received: by outflank-mailman (input) for mailman id 233644;
 Sat, 27 Nov 2021 01:27:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNb-00020H-9C
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:51 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1daed3ba-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:49 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1daed3ba-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223825.149579184@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975989;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=4dZ5u/KLLAF96QQ3HrkfGIAnt5LZtWvWMcyqY5j4Z+c=;
	b=BR23WhmPulXOCC8xip9YYJPQS0uSN5NA4ZsR3KUbx0xsxfk4ThfrZapV/7BDIPSTkHJGwP
	G1hnKB7ssc3jhr43kK9NcZ9YhM6WqQ6KmOmfm2IC3p+cpZuPgLT/V9OZiJJPCZQbHtiKON
	cMl39Bv+nKqP1TGtFq7dw4hUegV9UymOWb3aMhm38XrDhKIuR+5mH3kU33AvnqFK+sfdmA
	H+Zeemfjp/GbsUI+khwWo3sz+QyCNB1US/houoEvk5QjCDAi+uq0LBGN+fcnpXXYnQMzdp
	Ea0SMvSKSpxcK7006ToBCSjAG2TNgbvi5Keq7Nm8P4fe68J3qDFNSaXrCaUHcw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975989;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=4dZ5u/KLLAF96QQ3HrkfGIAnt5LZtWvWMcyqY5j4Z+c=;
	b=csSNhMa2VDAf+wGMDn+avnhViffMhASf3LcmcN/7hYyW9WSPBZpYuFAEBDJDhEAVSWCitU
	rNK46u+iFfMG+FDQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 18/22] PCI/MSI: Split out irqdomain code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:48 +0100 (CET)

Move the irqdomain specific code into it's own file.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/Makefile    |    1 
 drivers/pci/msi/irqdomain.c |  279 ++++++++++++++++++++++++++++++++++++++
 drivers/pci/msi/legacy.c    |   10 +
 drivers/pci/msi/msi.c       |  319 +-------------------------------------------
 drivers/pci/msi/msi.h       |   39 +++++
 include/linux/msi.h         |   11 -
 6 files changed, 339 insertions(+), 320 deletions(-)

--- a/drivers/pci/msi/Makefile
+++ b/drivers/pci/msi/Makefile
@@ -3,4 +3,5 @@
 # Makefile for the PCI/MSI
 obj-$(CONFIG_PCI)			+= pcidev_msi.o
 obj-$(CONFIG_PCI_MSI)			+= msi.o
+obj-$(CONFIG_PCI_MSI_IRQ_DOMAIN)	+= irqdomain.o
 obj-$(CONFIG_PCI_MSI_ARCH_FALLBACKS)	+= legacy.o
--- /dev/null
+++ b/drivers/pci/msi/irqdomain.c
@@ -0,0 +1,279 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * PCI Message Signaled Interrupt (MSI) - irqdomain support
+ */
+#include <linux/acpi_iort.h>
+#include <linux/irqdomain.h>
+#include <linux/of_irq.h>
+
+#include "msi.h"
+
+int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	struct irq_domain *domain;
+
+	domain = dev_get_msi_domain(&dev->dev);
+	if (domain && irq_domain_is_hierarchy(domain))
+		return msi_domain_alloc_irqs(domain, &dev->dev, nvec);
+
+	return pci_msi_legacy_setup_msi_irqs(dev, nvec, type);
+}
+
+void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
+{
+	struct irq_domain *domain;
+
+	domain = dev_get_msi_domain(&dev->dev);
+	if (domain && irq_domain_is_hierarchy(domain))
+		msi_domain_free_irqs(domain, &dev->dev);
+	else
+		pci_msi_legacy_teardown_msi_irqs(dev);
+}
+
+/**
+ * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
+ * @irq_data:	Pointer to interrupt data of the MSI interrupt
+ * @msg:	Pointer to the message
+ */
+static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
+{
+	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
+
+	/*
+	 * For MSI-X desc->irq is always equal to irq_data->irq. For
+	 * MSI only the first interrupt of MULTI MSI passes the test.
+	 */
+	if (desc->irq == irq_data->irq)
+		__pci_write_msi_msg(desc, msg);
+}
+
+/**
+ * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
+ * @desc:	Pointer to the MSI descriptor
+ *
+ * The ID number is only used within the irqdomain.
+ */
+static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
+{
+	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
+
+	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
+		pci_dev_id(dev) << 11 |
+		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
+}
+
+static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
+{
+	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
+}
+
+/**
+ * pci_msi_domain_check_cap - Verify that @domain supports the capabilities
+ *			      for @dev
+ * @domain:	The interrupt domain to check
+ * @info:	The domain info for verification
+ * @dev:	The device to check
+ *
+ * Returns:
+ *  0 if the functionality is supported
+ *  1 if Multi MSI is requested, but the domain does not support it
+ *  -ENOTSUPP otherwise
+ */
+int pci_msi_domain_check_cap(struct irq_domain *domain,
+			     struct msi_domain_info *info, struct device *dev)
+{
+	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
+
+	/* Special handling to support __pci_enable_msi_range() */
+	if (pci_msi_desc_is_multi_msi(desc) &&
+	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
+		return 1;
+	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
+		return -ENOTSUPP;
+
+	return 0;
+}
+
+static int pci_msi_domain_handle_error(struct irq_domain *domain,
+				       struct msi_desc *desc, int error)
+{
+	/* Special handling to support __pci_enable_msi_range() */
+	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
+		return 1;
+
+	return error;
+}
+
+static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
+				    struct msi_desc *desc)
+{
+	arg->desc = desc;
+	arg->hwirq = pci_msi_domain_calc_hwirq(desc);
+}
+
+static struct msi_domain_ops pci_msi_domain_ops_default = {
+	.set_desc	= pci_msi_domain_set_desc,
+	.msi_check	= pci_msi_domain_check_cap,
+	.handle_error	= pci_msi_domain_handle_error,
+};
+
+static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
+{
+	struct msi_domain_ops *ops = info->ops;
+
+	if (ops == NULL) {
+		info->ops = &pci_msi_domain_ops_default;
+	} else {
+		if (ops->set_desc == NULL)
+			ops->set_desc = pci_msi_domain_set_desc;
+		if (ops->msi_check == NULL)
+			ops->msi_check = pci_msi_domain_check_cap;
+		if (ops->handle_error == NULL)
+			ops->handle_error = pci_msi_domain_handle_error;
+	}
+}
+
+static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
+{
+	struct irq_chip *chip = info->chip;
+
+	BUG_ON(!chip);
+	if (!chip->irq_write_msi_msg)
+		chip->irq_write_msi_msg = pci_msi_domain_write_msg;
+	if (!chip->irq_mask)
+		chip->irq_mask = pci_msi_mask_irq;
+	if (!chip->irq_unmask)
+		chip->irq_unmask = pci_msi_unmask_irq;
+}
+
+/**
+ * pci_msi_create_irq_domain - Create a MSI interrupt domain
+ * @fwnode:	Optional fwnode of the interrupt controller
+ * @info:	MSI domain info
+ * @parent:	Parent irq domain
+ *
+ * Updates the domain and chip ops and creates a MSI interrupt domain.
+ *
+ * Returns:
+ * A domain pointer or NULL in case of failure.
+ */
+struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
+					     struct msi_domain_info *info,
+					     struct irq_domain *parent)
+{
+	struct irq_domain *domain;
+
+	if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE))
+		info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
+
+	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
+		pci_msi_domain_update_dom_ops(info);
+	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
+		pci_msi_domain_update_chip_ops(info);
+
+	info->flags |= MSI_FLAG_ACTIVATE_EARLY;
+	if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
+		info->flags |= MSI_FLAG_MUST_REACTIVATE;
+
+	/* PCI-MSI is oneshot-safe */
+	info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
+
+	domain = msi_create_irq_domain(fwnode, info, parent);
+	if (!domain)
+		return NULL;
+
+	irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI);
+	return domain;
+}
+EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
+
+/*
+ * Users of the generic MSI infrastructure expect a device to have a single ID,
+ * so with DMA aliases we have to pick the least-worst compromise. Devices with
+ * DMA phantom functions tend to still emit MSIs from the real function number,
+ * so we ignore those and only consider topological aliases where either the
+ * alias device or RID appears on a different bus number. We also make the
+ * reasonable assumption that bridges are walked in an upstream direction (so
+ * the last one seen wins), and the much braver assumption that the most likely
+ * case is that of PCI->PCIe so we should always use the alias RID. This echoes
+ * the logic from intel_irq_remapping's set_msi_sid(), which presumably works
+ * well enough in practice; in the face of the horrible PCIe<->PCI-X conditions
+ * for taking ownership all we can really do is close our eyes and hope...
+ */
+static int get_msi_id_cb(struct pci_dev *pdev, u16 alias, void *data)
+{
+	u32 *pa = data;
+	u8 bus = PCI_BUS_NUM(*pa);
+
+	if (pdev->bus->number != bus || PCI_BUS_NUM(alias) != bus)
+		*pa = alias;
+
+	return 0;
+}
+
+/**
+ * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
+ * @domain:	The interrupt domain
+ * @pdev:	The PCI device.
+ *
+ * The RID for a device is formed from the alias, with a firmware
+ * supplied mapping applied
+ *
+ * Returns: The RID.
+ */
+u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
+{
+	struct device_node *of_node;
+	u32 rid = pci_dev_id(pdev);
+
+	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
+
+	of_node = irq_domain_get_of_node(domain);
+	rid = of_node ? of_msi_map_id(&pdev->dev, of_node, rid) :
+			iort_msi_map_id(&pdev->dev, rid);
+
+	return rid;
+}
+
+/**
+ * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
+ * @pdev:	The PCI device
+ *
+ * Use the firmware data to find a device-specific MSI domain
+ * (i.e. not one that is set as a default).
+ *
+ * Returns: The corresponding MSI domain or NULL if none has been found.
+ */
+struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
+{
+	struct irq_domain *dom;
+	u32 rid = pci_dev_id(pdev);
+
+	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
+	dom = of_msi_map_get_device_domain(&pdev->dev, rid, DOMAIN_BUS_PCI_MSI);
+	if (!dom)
+		dom = iort_get_device_domain(&pdev->dev, rid,
+					     DOMAIN_BUS_PCI_MSI);
+	return dom;
+}
+
+/**
+ * pci_dev_has_special_msi_domain - Check whether the device is handled by
+ *				    a non-standard PCI-MSI domain
+ * @pdev:	The PCI device to check.
+ *
+ * Returns: True if the device irqdomain or the bus irqdomain is
+ * non-standard PCI/MSI.
+ */
+bool pci_dev_has_special_msi_domain(struct pci_dev *pdev)
+{
+	struct irq_domain *dom = dev_get_msi_domain(&pdev->dev);
+
+	if (!dom)
+		dom = dev_get_msi_domain(&pdev->bus->dev);
+
+	if (!dom)
+		return true;
+
+	return dom->bus_token != DOMAIN_BUS_PCI_MSI;
+}
--- a/drivers/pci/msi/legacy.c
+++ b/drivers/pci/msi/legacy.c
@@ -50,3 +50,13 @@ void __weak arch_teardown_msi_irqs(struc
 		}
 	}
 }
+
+int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	return arch_setup_msi_irqs(dev, nvec, type);
+}
+
+void pci_msi_legacy_teardown_msi_irqs(struct pci_dev *dev)
+{
+	arch_teardown_msi_irqs(dev);
+}
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -6,64 +6,16 @@
  * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
  * Copyright (C) 2016 Christoph Hellwig.
  */
-
-#include <linux/acpi_iort.h>
 #include <linux/err.h>
 #include <linux/export.h>
 #include <linux/irq.h>
-#include <linux/irqdomain.h>
-#include <linux/msi.h>
-#include <linux/of_irq.h>
-#include <linux/pci.h>
 
 #include "../pci.h"
+#include "msi.h"
 
 static int pci_msi_enable = 1;
 int pci_msi_ignore_mask;
 
-#define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
-
-#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-static int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct irq_domain *domain;
-
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
-		return msi_domain_alloc_irqs(domain, &dev->dev, nvec);
-
-	return arch_setup_msi_irqs(dev, nvec, type);
-}
-
-static void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
-{
-	struct irq_domain *domain;
-
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
-		msi_domain_free_irqs(domain, &dev->dev);
-	else
-		arch_teardown_msi_irqs(dev);
-}
-#else
-#define pci_msi_setup_msi_irqs		arch_setup_msi_irqs
-#define pci_msi_teardown_msi_irqs	arch_teardown_msi_irqs
-#endif
-
-/*
- * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
- * mask all MSI interrupts by clearing the MSI enable bit does not work
- * reliably as devices without an INTx disable bit will then generate a
- * level IRQ which will never be cleared.
- */
-static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
-{
-	/* Don't shift by >= width of type */
-	if (desc->pci.msi_attrib.multi_cap >= 5)
-		return 0xffffffff;
-	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
-}
-
 static noinline void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set)
 {
 	raw_spinlock_t *lock = &desc->dev->msi_lock;
@@ -903,23 +855,6 @@ void pci_disable_msix(struct pci_dev *de
 }
 EXPORT_SYMBOL(pci_disable_msix);
 
-void pci_no_msi(void)
-{
-	pci_msi_enable = 0;
-}
-
-/**
- * pci_msi_enabled - is MSI enabled?
- *
- * Returns true if MSI has not been disabled by the command-line option
- * pci=nomsi.
- **/
-int pci_msi_enabled(void)
-{
-	return pci_msi_enable;
-}
-EXPORT_SYMBOL(pci_msi_enabled);
-
 static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
 				  struct irq_affinity *affd)
 {
@@ -1181,253 +1116,19 @@ struct pci_dev *msi_desc_to_pci_dev(stru
 }
 EXPORT_SYMBOL(msi_desc_to_pci_dev);
 
-#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-/**
- * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
- * @irq_data:	Pointer to interrupt data of the MSI interrupt
- * @msg:	Pointer to the message
- */
-static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
-{
-	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
-
-	/*
-	 * For MSI-X desc->irq is always equal to irq_data->irq. For
-	 * MSI only the first interrupt of MULTI MSI passes the test.
-	 */
-	if (desc->irq == irq_data->irq)
-		__pci_write_msi_msg(desc, msg);
-}
-
-/**
- * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
- * @desc:	Pointer to the MSI descriptor
- *
- * The ID number is only used within the irqdomain.
- */
-static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
-
-	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
-		pci_dev_id(dev) << 11 |
-		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
-}
-
-static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
-{
-	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
-}
-
-/**
- * pci_msi_domain_check_cap - Verify that @domain supports the capabilities
- * 			      for @dev
- * @domain:	The interrupt domain to check
- * @info:	The domain info for verification
- * @dev:	The device to check
- *
- * Returns:
- *  0 if the functionality is supported
- *  1 if Multi MSI is requested, but the domain does not support it
- *  -ENOTSUPP otherwise
- */
-int pci_msi_domain_check_cap(struct irq_domain *domain,
-			     struct msi_domain_info *info, struct device *dev)
-{
-	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
-
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) &&
-	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
-		return 1;
-	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
-		return -ENOTSUPP;
-
-	return 0;
-}
-
-static int pci_msi_domain_handle_error(struct irq_domain *domain,
-				       struct msi_desc *desc, int error)
-{
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
-		return 1;
-
-	return error;
-}
-
-static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
-				    struct msi_desc *desc)
-{
-	arg->desc = desc;
-	arg->hwirq = pci_msi_domain_calc_hwirq(desc);
-}
-
-static struct msi_domain_ops pci_msi_domain_ops_default = {
-	.set_desc	= pci_msi_domain_set_desc,
-	.msi_check	= pci_msi_domain_check_cap,
-	.handle_error	= pci_msi_domain_handle_error,
-};
-
-static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
-{
-	struct msi_domain_ops *ops = info->ops;
-
-	if (ops == NULL) {
-		info->ops = &pci_msi_domain_ops_default;
-	} else {
-		if (ops->set_desc == NULL)
-			ops->set_desc = pci_msi_domain_set_desc;
-		if (ops->msi_check == NULL)
-			ops->msi_check = pci_msi_domain_check_cap;
-		if (ops->handle_error == NULL)
-			ops->handle_error = pci_msi_domain_handle_error;
-	}
-}
-
-static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
-{
-	struct irq_chip *chip = info->chip;
-
-	BUG_ON(!chip);
-	if (!chip->irq_write_msi_msg)
-		chip->irq_write_msi_msg = pci_msi_domain_write_msg;
-	if (!chip->irq_mask)
-		chip->irq_mask = pci_msi_mask_irq;
-	if (!chip->irq_unmask)
-		chip->irq_unmask = pci_msi_unmask_irq;
-}
-
-/**
- * pci_msi_create_irq_domain - Create a MSI interrupt domain
- * @fwnode:	Optional fwnode of the interrupt controller
- * @info:	MSI domain info
- * @parent:	Parent irq domain
- *
- * Updates the domain and chip ops and creates a MSI interrupt domain.
- *
- * Returns:
- * A domain pointer or NULL in case of failure.
- */
-struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
-					     struct msi_domain_info *info,
-					     struct irq_domain *parent)
-{
-	struct irq_domain *domain;
-
-	if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE))
-		info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
-
-	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
-		pci_msi_domain_update_dom_ops(info);
-	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
-		pci_msi_domain_update_chip_ops(info);
-
-	info->flags |= MSI_FLAG_ACTIVATE_EARLY;
-	if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
-		info->flags |= MSI_FLAG_MUST_REACTIVATE;
-
-	/* PCI-MSI is oneshot-safe */
-	info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
-
-	domain = msi_create_irq_domain(fwnode, info, parent);
-	if (!domain)
-		return NULL;
-
-	irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI);
-	return domain;
-}
-EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
-
-/*
- * Users of the generic MSI infrastructure expect a device to have a single ID,
- * so with DMA aliases we have to pick the least-worst compromise. Devices with
- * DMA phantom functions tend to still emit MSIs from the real function number,
- * so we ignore those and only consider topological aliases where either the
- * alias device or RID appears on a different bus number. We also make the
- * reasonable assumption that bridges are walked in an upstream direction (so
- * the last one seen wins), and the much braver assumption that the most likely
- * case is that of PCI->PCIe so we should always use the alias RID. This echoes
- * the logic from intel_irq_remapping's set_msi_sid(), which presumably works
- * well enough in practice; in the face of the horrible PCIe<->PCI-X conditions
- * for taking ownership all we can really do is close our eyes and hope...
- */
-static int get_msi_id_cb(struct pci_dev *pdev, u16 alias, void *data)
-{
-	u32 *pa = data;
-	u8 bus = PCI_BUS_NUM(*pa);
-
-	if (pdev->bus->number != bus || PCI_BUS_NUM(alias) != bus)
-		*pa = alias;
-
-	return 0;
-}
-
-/**
- * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
- * @domain:	The interrupt domain
- * @pdev:	The PCI device.
- *
- * The RID for a device is formed from the alias, with a firmware
- * supplied mapping applied
- *
- * Returns: The RID.
- */
-u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
-{
-	struct device_node *of_node;
-	u32 rid = pci_dev_id(pdev);
-
-	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
-
-	of_node = irq_domain_get_of_node(domain);
-	rid = of_node ? of_msi_map_id(&pdev->dev, of_node, rid) :
-			iort_msi_map_id(&pdev->dev, rid);
-
-	return rid;
-}
-
-/**
- * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
- * @pdev:	The PCI device
- *
- * Use the firmware data to find a device-specific MSI domain
- * (i.e. not one that is set as a default).
- *
- * Returns: The corresponding MSI domain or NULL if none has been found.
- */
-struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
+void pci_no_msi(void)
 {
-	struct irq_domain *dom;
-	u32 rid = pci_dev_id(pdev);
-
-	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
-	dom = of_msi_map_get_device_domain(&pdev->dev, rid, DOMAIN_BUS_PCI_MSI);
-	if (!dom)
-		dom = iort_get_device_domain(&pdev->dev, rid,
-					     DOMAIN_BUS_PCI_MSI);
-	return dom;
+	pci_msi_enable = 0;
 }
 
 /**
- * pci_dev_has_special_msi_domain - Check whether the device is handled by
- *				    a non-standard PCI-MSI domain
- * @pdev:	The PCI device to check.
+ * pci_msi_enabled - is MSI enabled?
  *
- * Returns: True if the device irqdomain or the bus irqdomain is
- * non-standard PCI/MSI.
- */
-bool pci_dev_has_special_msi_domain(struct pci_dev *pdev)
+ * Returns true if MSI has not been disabled by the command-line option
+ * pci=nomsi.
+ **/
+int pci_msi_enabled(void)
 {
-	struct irq_domain *dom = dev_get_msi_domain(&pdev->dev);
-
-	if (!dom)
-		dom = dev_get_msi_domain(&pdev->bus->dev);
-
-	if (!dom)
-		return true;
-
-	return dom->bus_token != DOMAIN_BUS_PCI_MSI;
+	return pci_msi_enable;
 }
-
-#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
+EXPORT_SYMBOL(pci_msi_enabled);
--- /dev/null
+++ b/drivers/pci/msi/msi.h
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <linux/pci.h>
+#include <linux/msi.h>
+
+#define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
+
+extern int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
+extern void pci_msi_teardown_msi_irqs(struct pci_dev *dev);
+
+#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
+extern int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
+extern void pci_msi_legacy_teardown_msi_irqs(struct pci_dev *dev);
+#else
+static inline int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	WARN_ON_ONCE(1);
+	return -ENODEV;
+}
+
+static inline void pci_msi_legacy_teardown_msi_irqs(struct pci_dev *dev)
+{
+	WARN_ON_ONCE(1);
+}
+#endif
+
+/*
+ * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
+ * mask all MSI interrupts by clearing the MSI enable bit does not work
+ * reliably as devices without an INTx disable bit will then generate a
+ * level IRQ which will never be cleared.
+ */
+static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
+{
+	/* Don't shift by >= width of type */
+	if (desc->pci.msi_attrib.multi_cap >= 5)
+		return 0xffffffff;
+	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
+}
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -258,17 +258,6 @@ int arch_setup_msi_irq(struct pci_dev *d
 void arch_teardown_msi_irq(unsigned int irq);
 int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
 void arch_teardown_msi_irqs(struct pci_dev *dev);
-#else
-static inline int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	WARN_ON_ONCE(1);
-	return -ENODEV;
-}
-
-static inline void arch_teardown_msi_irqs(struct pci_dev *dev)
-{
-	WARN_ON_ONCE(1);
-}
 #endif
 
 /*



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233646.405642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUb-0004Ig-9n; Sat, 27 Nov 2021 01:27:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233646.405642; Sat, 27 Nov 2021 01:27:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUb-0004IU-5c; Sat, 27 Nov 2021 01:27:05 +0000
Received: by outflank-mailman (input) for mailman id 233646;
 Sat, 27 Nov 2021 01:27:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSl-0004gG-87
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:11 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dcdb26e4-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:25:10 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dcdb26e4-4f20-11ec-b941-1df2895da90e
Message-ID: <20211127000918.948090130@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976310;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=0A61IAyhwI6GY5iuZYdA+ROlAbbN0w/XOIQw6hDb9NM=;
	b=a3iGOUSTx4AN3Q+pI7OaLd8XxRJez4TVI0yS8OwSrBLHpMdd43pK6NS2i9A78zct8mMk9N
	KkCBGxJmthiU+adM0JABQFd1JpzvyWEDZYkDTb6KmwkCcIlJvYwRrVtecKgwiWt149QTKy
	kXNw9ozrprUifZWGRJ3ozGMEgFx7xSIRi4PKYhplfZ2luJnSotKEvPT5jrmonGKUd48KP4
	l+CgfvLLEiDNlvnHaEw1Cta1aegPtCzTvkIfKuY21nSEgRwMKfcO4iuilA54iG4h/Lw0VE
	OOcQ/VEF5J9CngnBfWKhbVR9UJEUOHQQedT9R8W+9iFsK//l3/Je1Nou98oMNw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976310;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=0A61IAyhwI6GY5iuZYdA+ROlAbbN0w/XOIQw6hDb9NM=;
	b=bg4/hHFjPj1TJiW6AfVYBKxndqevN1BSCZqejV8miPfCEJVhBd+nd4HllZp/pRBVSGwDQb
	VCXYClThCFvP92AQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 08/10] PCI/MSI: Provide pci_msi_domain_supports_expand()
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:25:09 +0100 (CET)

Not all irq domain implementations can support runtime MSI-X vector
expansion as they assume zero based allocations or have other
restrictions.

The legacy PCI allocation functions are not suited for runtime vector
expansion either.

Add a function which allows to query whether runtime MSI-X vector expansion
is supported or not.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |   29 +++++++++++++++++++++++------
 include/linux/msi.h         |    2 ++
 2 files changed, 25 insertions(+), 6 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -8,12 +8,18 @@
 
 #include "msi.h"
 
+static struct irq_domain *pci_get_msi_domain(struct pci_dev *dev)
+{
+	struct irq_domain *domain = dev_get_msi_domain(&dev->dev);
+
+	return domain && irq_domain_is_hierarchy(domain) ? domain : NULL;
+}
+
 int pci_msi_setup_msi_irqs(struct pci_dev *dev, struct msi_range *range, int type)
 {
-	struct irq_domain *domain;
+	struct irq_domain *domain = pci_get_msi_domain(dev);
 
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
+	if (domain)
 		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, range);
 
 	return pci_msi_legacy_setup_msi_irqs(dev, range->ndesc, type);
@@ -21,15 +27,26 @@ int pci_msi_setup_msi_irqs(struct pci_de
 
 void pci_msi_teardown_msi_irqs(struct pci_dev *dev, struct msi_range *range)
 {
-	struct irq_domain *domain;
+	struct irq_domain *domain = pci_get_msi_domain(dev);
 
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
+	if (domain)
 		msi_domain_free_irqs_descs_locked(domain, &dev->dev, range);
 	else
 		pci_msi_legacy_teardown_msi_irqs(dev);
 }
 
+bool pci_msi_domain_supports_expand(struct pci_dev *dev)
+{
+	struct irq_domain *domain = pci_get_msi_domain(dev);
+	struct msi_domain_info *info;
+
+	if (!domain)
+		return false;
+
+	info = domain->host_data;
+	return info->flags & MSI_FLAG_CAN_EXPAND;
+}
+
 /**
  * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
  * @irq_data:	Pointer to interrupt data of the MSI interrupt
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -552,11 +552,13 @@ struct irq_domain *pci_msi_create_irq_do
 u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev);
 struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev);
 bool pci_dev_has_special_msi_domain(struct pci_dev *pdev);
+bool pci_msi_domain_supports_expand(struct pci_dev *dev);
 #else
 static inline struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
 {
 	return NULL;
 }
+static inline bool pci_msi_domain_supports_expand(struct pci_dev *dev) { return false; }
 #endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
 
 #endif /* LINUX_MSI_H */



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233651.405652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUc-0004bb-PS; Sat, 27 Nov 2021 01:27:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233651.405652; Sat, 27 Nov 2021 01:27:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUc-0004am-Iu; Sat, 27 Nov 2021 01:27:06 +0000
Received: by outflank-mailman (input) for mailman id 233651;
 Sat, 27 Nov 2021 01:27:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNE-00020H-Gd
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:28 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 108a0739-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:27 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 108a0739-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223824.322987915@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975967;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=AwO21SR5HwD8yhhWfgGPPa41s/dLuMAByqtyG5X5FJI=;
	b=a0ZgqAHm77/GoyZRX88BCacRbvb4M6WP36nYKI7gIcYYAKt3D9nyCPRPeG87pRtO8eo1mx
	puA7H603KGaOG4JQAsGiG7EdKjI6mwrMOJWOZLc8fV3kTCSnAOb0vR2ovfpPyPv8k6Ofef
	MVKcT2ksaDYJHAD86iT0ZYdHE759EuvI/4E1+q+f9uqjvJ7TMebnhRia2W8E4C3X5S+Lfh
	XBzD/IzDC1STXdWAUj8w+xp1ZA8g0F0qEGTSEA90gvt6VES8n0rrYTNctomxUY1s4mOj8c
	ZCHHM8qX3RwLSn0y8IkHydQ89SBOZNGoWe5dt67n3ReBbUDg79RJqUnbR9NPUg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975967;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=AwO21SR5HwD8yhhWfgGPPa41s/dLuMAByqtyG5X5FJI=;
	b=HqZAKurVXyG8LQD7fjFChyTlTaw4FgkiDsL9W5YdV8HfGuPbwUxwUBvoS7mZEC0e8sOaKi
	D1lr9yb3Cez1UvBw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 04/22] genirq/msi: Remove unused domain callbacks
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:26 +0100 (CET)

No users and there is no need to grow them.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/msi.h |   11 ++++-------
 kernel/irq/msi.c    |    5 -----
 2 files changed, 4 insertions(+), 12 deletions(-)

--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -304,7 +304,6 @@ struct msi_domain_info;
  * @msi_free:		Domain specific function to free a MSI interrupts
  * @msi_check:		Callback for verification of the domain/info/dev data
  * @msi_prepare:	Prepare the allocation of the interrupts in the domain
- * @msi_finish:		Optional callback to finalize the allocation
  * @set_desc:		Set the msi descriptor for an interrupt
  * @handle_error:	Optional error handler if the allocation fails
  * @domain_alloc_irqs:	Optional function to override the default allocation
@@ -312,12 +311,11 @@ struct msi_domain_info;
  * @domain_free_irqs:	Optional function to override the default free
  *			function.
  *
- * @get_hwirq, @msi_init and @msi_free are callbacks used by
- * msi_create_irq_domain() and related interfaces
+ * @get_hwirq, @msi_init and @msi_free are callbacks used by the underlying
+ * irqdomain.
  *
- * @msi_check, @msi_prepare, @msi_finish, @set_desc and @handle_error
- * are callbacks used by msi_domain_alloc_irqs() and related
- * interfaces which are based on msi_desc.
+ * @msi_check, @msi_prepare, @handle_error and @set_desc are callbacks used by
+ * msi_domain_alloc/free_irqs().
  *
  * @domain_alloc_irqs, @domain_free_irqs can be used to override the
  * default allocation/free functions (__msi_domain_alloc/free_irqs). This
@@ -351,7 +349,6 @@ struct msi_domain_ops {
 	int		(*msi_prepare)(struct irq_domain *domain,
 				       struct device *dev, int nvec,
 				       msi_alloc_info_t *arg);
-	void		(*msi_finish)(msi_alloc_info_t *arg, int retval);
 	void		(*set_desc)(msi_alloc_info_t *arg,
 				    struct msi_desc *desc);
 	int		(*handle_error)(struct irq_domain *domain,
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -562,8 +562,6 @@ int __msi_domain_alloc_irqs(struct irq_d
 			ret = -ENOSPC;
 			if (ops->handle_error)
 				ret = ops->handle_error(domain, desc, ret);
-			if (ops->msi_finish)
-				ops->msi_finish(&arg, ret);
 			return ret;
 		}
 
@@ -573,9 +571,6 @@ int __msi_domain_alloc_irqs(struct irq_d
 		}
 	}
 
-	if (ops->msi_finish)
-		ops->msi_finish(&arg, 0);
-
 	can_reserve = msi_check_reservation_mode(domain, info, dev);
 
 	/*



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233652.405658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUd-0004gS-DO; Sat, 27 Nov 2021 01:27:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233652.405658; Sat, 27 Nov 2021 01:27:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUd-0004fD-3Z; Sat, 27 Nov 2021 01:27:07 +0000
Received: by outflank-mailman (input) for mailman id 233652;
 Sat, 27 Nov 2021 01:27:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSm-0003uw-8J
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:12 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da2e3de3-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:25:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da2e3de3-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.779751933@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976305;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=CFmm+AWRwXcJQSLL7VY9/FlDxYE98PyZd7GrvqHxiD8=;
	b=jPDSHQYSdxJlKUo1m9F9w8gw8R2TMDWPPxDRazvUWAKO2OAqttDQmAKiiB0cHxtncw0LoP
	I0nGS3ipmEFxCJjXQCspGZYqDLzYgAoHAzN8IALfV/R/UU8HnLONKw15r9QLBWIOy2tuBo
	v9UWh+uBu1gxtuVFZyC/oeYLLr7fsy2iBobG7WdjyJrjG53L08Qf0qS3j4Lea61UvUlvc7
	FlpqePyPni277I+e5Ve/tq90mOGCGQlu+ToYDaGLhxtuIL86QQHHHN2/nYRSDe2FLpzekY
	c4FjwvUSwWt/aSE1XxP6zVLeTmHWkEXcbwea6utFdTTv8Pecmzc4qo2LW6T26Q==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976305;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=CFmm+AWRwXcJQSLL7VY9/FlDxYE98PyZd7GrvqHxiD8=;
	b=YpvVGHpsYjY8WLBK+/d3v25qrNDG94vLX8P5K9v/o3GbLxhwTttsJXuyACy8VlvKBn+N9c
	5C2HM/JCLaf7F2Cw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 05/10] genirq/msi: Add domain info flag MSI_FLAG_CAN_EXPAND
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:25:05 +0100 (CET)

Not all MSI domains support runtime expansions of PCI/MSI-X vectors. Add a
domain flag so implementations can opt in.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/msi.h |    2 ++
 1 file changed, 2 insertions(+)

--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -494,6 +494,8 @@ enum {
 	MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS	= (1 << 9),
 	/* Free MSI descriptors */
 	MSI_FLAG_FREE_MSI_DESCS		= (1 << 10),
+	/* MSI vectors can be expanded after initial setup */
+	MSI_FLAG_CAN_EXPAND		= (1 << 11),
 };
 
 int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233655.405665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUe-0004sI-Fx; Sat, 27 Nov 2021 01:27:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233655.405665; Sat, 27 Nov 2021 01:27:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUd-0004oW-RF; Sat, 27 Nov 2021 01:27:07 +0000
Received: by outflank-mailman (input) for mailman id 233655;
 Sat, 27 Nov 2021 01:27:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNL-0002cc-2a
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:35 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1445290e-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1445290e-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223824.558746009@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975973;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=t8fdQf5v0Re3s6aU2w+RDhHEUcAYg2OEvsShj+q+pN4=;
	b=k3LK6nDtbjd4YGl8vOmrIZ02BVXh9ZMWUHEM7ttmKyvlCHnca06fC+l+4jF5F+hBFDP8GJ
	DeFLPG5Xm8Bc4Hhc7h+t7TuaBGGeCCNzAQY1fycjhbU3S1JJSNFBZ/B+hMI9UeXnGhlu5e
	s9r9oMIkbB8PwKngQi9dz5DWNT9SzXlJnBGen0GkHcDk9mxX6//4DR69MfrvwLonMK2RyY
	Ri1QyvHxQPYj4iggM4CCqYBaXNV5935b9NWGlpqQNUWOFSmYwugOsdnBaNR8HB68mMOGgp
	Q1CNhqjsN5RzNJqIYolTS3TdSOTjQbch31LUaXLFkpINATuH8IwjIXPeqJuyTg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975973;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=t8fdQf5v0Re3s6aU2w+RDhHEUcAYg2OEvsShj+q+pN4=;
	b=x0q81IPAGM3E7Z9Q/NsuMzv2IhRo7nqzgjSuf3p2DFzivVtMHfHdpjxs9cJDYLObc3Ebzg
	CVyOdwAICSw7CIAQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 08/22] PCI/sysfs: Use pci_irq_vector()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:33 +0100 (CET)

instead of fiddling with msi descriptors.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/pci-sysfs.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -62,11 +62,8 @@ static ssize_t irq_show(struct device *d
 	 * For MSI, show the first MSI IRQ; for all other cases including
 	 * MSI-X, show the legacy INTx IRQ.
 	 */
-	if (pdev->msi_enabled) {
-		struct msi_desc *desc = first_pci_msi_entry(pdev);
-
-		return sysfs_emit(buf, "%u\n", desc->irq);
-	}
+	if (pdev->msi_enabled)
+		return sysfs_emit(buf, "%u\n", pci_irq_vector(pdev, 0));
 #endif
 
 	return sysfs_emit(buf, "%u\n", pdev->irq);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233659.405685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUh-0005sL-VW; Sat, 27 Nov 2021 01:27:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233659.405685; Sat, 27 Nov 2021 01:27:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUh-0005pV-HM; Sat, 27 Nov 2021 01:27:11 +0000
Received: by outflank-mailman (input) for mailman id 233659;
 Sat, 27 Nov 2021 01:27:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNc-00020H-9T
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:52 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1e7da7c0-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e7da7c0-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223825.205369150@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975990;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=nFqFw10FNB3YOwALwDw82lvlHKuNVaj2KNOVAS+AX+k=;
	b=XxApkOzom8INqALAoCZXnrM4Gnfq0P5GFuHbGcbsFfXChmsBjBRR8Zre+TuXWv4z5oHF/D
	27C5TK24a23MOmJBeYVaW9cCplXJLITNdKg10JEBz8oTehDPyyfs3FciGiHEms5WL8JDag
	52S+Frofyun05kxZ+YWSxvjUyOIel0FxMfLXiEs3TDVLbwr55wPMh/3rPSf2nT/i2JzwLL
	zftakULTHTxPert40kEEFdjOny39idUZcd25undSrm5WMAU87UNDGUGbSd6C5shoMJVpZk
	a/+xgaOEsYDt53mm6tVNNHcfadUk2EMQ02Z8BgKKcXGB4JY6BzIjRA3g4H6V/A==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975990;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=nFqFw10FNB3YOwALwDw82lvlHKuNVaj2KNOVAS+AX+k=;
	b=Vi13o2zcshu0Zxixi8TKOXGvkRDXe53XxUuH+PoNwGcyMUye1tI4Lhz4L+Jh6z/xJGTC6x
	SgID9tLyCfbnS1CQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 19/22] PCI/MSI: Sanitize MSIX table map handling
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:50 +0100 (CET)

Unmapping the MSIX base mapping in the loops which allocate/free MSI
desciptors is daft and in the way of allowing runtime expansion of MSI-X
descriptors.

Store the mapping in struct pci_dev and free it after freeing the MSI-X
descriptors.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/msi.c |   18 ++++++++----------
 include/linux/pci.h   |    1 +
 2 files changed, 9 insertions(+), 10 deletions(-)

--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -241,14 +241,14 @@ static void free_msi_irqs(struct pci_dev
 	pci_msi_teardown_msi_irqs(dev);
 
 	list_for_each_entry_safe(entry, tmp, msi_list, list) {
-		if (entry->pci.msi_attrib.is_msix) {
-			if (list_is_last(&entry->list, msi_list))
-				iounmap(entry->pci.mask_base);
-		}
-
 		list_del(&entry->list);
 		free_msi_entry(entry);
 	}
+
+	if (dev->msix_base) {
+		iounmap(dev->msix_base);
+		dev->msix_base = NULL;
+	}
 }
 
 static void pci_intx_for_msi(struct pci_dev *dev, int enable)
@@ -501,10 +501,6 @@ static int msix_setup_entries(struct pci
 	for (i = 0, curmsk = masks; i < nvec; i++) {
 		entry = alloc_msi_entry(&dev->dev, 1, curmsk);
 		if (!entry) {
-			if (!i)
-				iounmap(base);
-			else
-				free_msi_irqs(dev);
 			/* No enough memory. Don't try again */
 			ret = -ENOMEM;
 			goto out;
@@ -602,12 +598,14 @@ static int msix_capability_init(struct p
 		goto out_disable;
 	}
 
+	dev->msix_base = base;
+
 	/* Ensure that all table entries are masked. */
 	msix_mask_all(base, tsize);
 
 	ret = msix_setup_entries(dev, base, entries, nvec, affd);
 	if (ret)
-		goto out_disable;
+		goto out_free;
 
 	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
 	if (ret)
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -473,6 +473,7 @@ struct pci_dev {
 	u8		ptm_granularity;
 #endif
 #ifdef CONFIG_PCI_MSI
+	void __iomem	*msix_base;
 	const struct attribute_group **msi_irq_groups;
 #endif
 	struct pci_vpd	vpd;



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233666.405697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUk-0006OW-Ga; Sat, 27 Nov 2021 01:27:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233666.405697; Sat, 27 Nov 2021 01:27:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUk-0006Nv-0D; Sat, 27 Nov 2021 01:27:14 +0000
Received: by outflank-mailman (input) for mailman id 233666;
 Sat, 27 Nov 2021 01:27:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmN8-00020H-Lx
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:22 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cd79281-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0cd79281-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126222700.862407977@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975961;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=dz+OhqNvUr9qcj4hBHSmJm3StmH1ayKUMDsS7c1/nyo=;
	b=hN+4spS3TMXDkqfUqEmJ9Q/KMS5D3jtlbPyy5sFM0vzt9tJ3OucTlyqxTh7IuZUj2aDMLU
	ZDeZKf2CAQVkg9z9CU43DNWnFg3/7hrZysWDOJqScxW19/nlOEosiGVfhdaSnv61zNTAq3
	g8lkERFO5y4Qc+o4XLLxHi0GiCVc5ZuC7/w5ZICrpMqUWqvGnO0bJ0nL9cfQwryG/4zhht
	TimG/GUiuetxcX9A8Nd/BSKpP30RdpOJ9eS1hnRikPx67uOv2VP1PtM5IklK87WgluDjxQ
	Eo7Kjh8fdnYYl56I9o1wJZcBbTmg2/I87rdi9HCQOAll7+/Yqf8ukFR78eJhvw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975961;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=dz+OhqNvUr9qcj4hBHSmJm3StmH1ayKUMDsS7c1/nyo=;
	b=ioOSz9CwpOLy5rcIumddu0bfOCT14ff5PEJyDJRFQjcGIrrDsZc99q5ItizXds9+ZxdIaJ
	E+I1dFNX0j5JSrBg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 00/22] genirq/msi, PCI/MSI: Spring cleaning - Part 1
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Date: Sat, 27 Nov 2021 02:19:20 +0100 (CET)

VGhlIFtQQ0ldIE1TSSBjb2RlIGhhcyBnYWluZWQgcXVpdGUgc29tZSB3YXJ0cyBvdmVyIHRpbWUu
IEEgcmVjZW50CmRpc2N1c3Npb24gdW5lYXJ0aGVkIGEgc2hvcnRjb21pbmc6IHRoZSBsYWNrIG9m
IHN1cHBvcnQgZm9yIGV4cGFuZGluZwpQQ0kvTVNJLVggdmVjdG9ycyBhZnRlciBpbml0aWFsaXph
dGlvbiBvZiBNU0ktWC4KClBDSS9NU0ktWCBoYXMgbm8gcmVxdWlyZW1lbnQgdG8gc2V0dXAgYWxs
IHZlY3RvcnMgd2hlbiBNU0ktWCBpcyBlbmFibGVkIGluCnRoZSBkZXZpY2UuIFRoZSBub24tdXNl
ZCB2ZWN0b3JzIGhhdmUganVzdCB0byBiZSBtYXNrZWQgaW4gdGhlIHZlY3Rvcgp0YWJsZS4gRm9y
IFBDSS9NU0kgdGhpcyBpcyBub3QgcG9zc2libGUgYmVjYXVzZSB0aGUgbnVtYmVyIG9mIHZlY3Rv
cnMKY2Fubm90IGJlIGNoYW5nZWQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uCgpUaGUgUENJL01TSSBj
b2RlLCBidXQgYWxzbyB0aGUgY29yZSBNU0kgaXJxIGRvbWFpbiBjb2RlIGFyZSBidWlsdCBhcm91
bmQKdGhlIGFzc3VtcHRpb24gdGhhdCBhbGwgcmVxdWlyZWQgdmVjdG9ycyBhcmUgaW5zdGFsbGVk
IGF0IGluaXRpYWxpemF0aW9uCnRpbWUgYW5kIGZyZWVkIHdoZW4gdGhlIGRldmljZSBpcyBzaHV0
IGRvd24gYnkgdGhlIGRyaXZlci4KClN1cHBvcnRpbmcgZHluYW1pYyBleHBhbnNpb24gYXQgbGVh
c3QgZm9yIE1TSS1YIGlzIGltcG9ydGFudCBmb3IgVkZJTyBzbwp0aGF0IHRoZSBob3N0IHNpZGUg
aW50ZXJydXB0cyBmb3IgcGFzc3Rocm91Z2ggZGV2aWNlcyBjYW4gYmUgaW5zdGFsbGVkIG9uCmRl
bWFuZC4KClRoaXMgaXMgdGhlIGZpcnN0IHBhcnQgb2YgYSBsYXJnZSAodG90YWwgMTAxIHBhdGNo
ZXMpIHNlcmllcyB3aGljaApyZWZhY3RvcnMgdGhlIFtQQ0ldTVNJIGluZnJhc3RydWN0dXJlIHRv
IG1ha2UgcnVudGltZSBleHBhbnNpb24gb2YgTVNJLVgKdmVjdG9ycyBwb3NzaWJsZS4gVGhlIGxh
c3QgcGFydCAoMTAgcGF0Y2hlcykgcHJvdmlkZSB0aGlzIGZ1bmN0aW9uYWxpdHkuCgpUaGUgZmly
c3QgcGFydCBpcyBtb3N0bHkgYSBjbGVhbnVwIHdoaWNoIGNvbnNvbGlkYXRlcyBjb2RlLCBtb3Zl
cyB0aGUgUENJCk1TSSBjb2RlIGludG8gYSBzZXBhcmF0ZSBkaXJlY3RvcnkgYW5kIHNwbGl0cyBp
dCB1cCBpbnRvIHNldmVyYWwgcGFydHMuCgpObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCBl
eGNlcHQgZm9yIHBhdGNoIDIvTiB3aGljaCBjaGFuZ2VzIHRoZQpiZWhhdmlvdXIgb2YgcGNpX2dl
dF92ZWN0b3IoKS9hZmZpbml0eSgpIHRvIGdldCByaWQgb2YgdGhlIGFzc3VtcHRpb24gdGhhdAp0
aGUgcHJvdmlkZWQgaW5kZXggaXMgdGhlICJpbmRleCIgaW50byB0aGUgZGVzY3JpcHRvciBsaXN0
IGluc3RlYWQgb2YgdXNpbmcKaXQgYXMgdGhlIGFjdHVhbCBNU0lbWF0gaW5kZXggYXMgc2VlbiBi
eSB0aGUgaGFyZHdhcmUuIFRoaXMgd291bGQgYnJlYWsKdXNlcnMgb2Ygc3BhcnNlIGFsbG9jYXRl
ZCBNU0ktWCBlbnRyaWVzLCBidXQgbm9uIG9mIHRoZW0gdXNlIHRoZXNlCmZ1bmN0aW9ucy4KClRo
ZSBzZXJpZXMgaXMgYmFzZWQgb24gNS4xNi1yYzIgYW5kIGFsc28gYXZhaWxhYmxlIHZpYSBnaXQ6
CgogICAgIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90Z2x4
L2RldmVsLmdpdCBtc2ktdjEtcGFydC0xCgpGb3IgdGhlIGN1cmlvdXMgd2hvIGNhbid0IHdhaXQg
Zm9yIHRoZSBuZXh0IHBhcnQgdG8gYXJyaXZlIHRoZSBmdWxsIHNlcmllcwppcyBhdmFpbGFibGUg
dmlhOgoKICAgICBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQv
dGdseC9kZXZlbC5naXQgbXNpLXYxLXBhcnQtNAoKVGhhbmtzLAoKCXRnbHgKLS0tCiBhcmNoL3Bv
d2VycGMvcGxhdGZvcm1zLzR4eC9tc2kuYyAgICAgICAgICAgIHwgIDI4MSAtLS0tLS0tLS0tLS0K
IGIvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL3BjaS9wY2kucnN0ICAgICAgfCAgICAyIAogYi9h
cmNoL21pcHMvcGNpL21zaS1vY3Rlb24uYyAgICAgICAgICAgICAgICB8ICAgMzIgLQogYi9hcmNo
L3Bvd2VycGMvcGxhdGZvcm1zLzR4eC9NYWtlZmlsZSAgICAgICB8ICAgIDEgCiBiL2FyY2gvcG93
ZXJwYy9wbGF0Zm9ybXMvY2VsbC9heG9uX21zaS5jICAgIHwgICAgMiAKIGIvYXJjaC9wb3dlcnBj
L3BsYXRmb3Jtcy9wb3dlcm52L3BjaS1pb2RhLmMgfCAgICA0IAogYi9hcmNoL3Bvd2VycGMvcGxh
dGZvcm1zL3BzZXJpZXMvbXNpLmMgICAgICB8ICAgIDYgCiBiL2FyY2gvcG93ZXJwYy9zeXNkZXYv
S2NvbmZpZyAgICAgICAgICAgICAgIHwgICAgNiAKIGIvYXJjaC9zMzkwL3BjaS9wY2lfaXJxLmMg
ICAgICAgICAgICAgICAgICAgfCAgICA0IAogYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2lfbXNpLmMg
ICAgICAgICAgICAgICB8ICAgIDQgCiBiL2FyY2gveDg2L2h5cGVydi9pcnFkb21haW4uYyAgICAg
ICAgICAgICAgIHwgICA1NSAtLQogYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oICAg
ICAgICAgICB8ICAgIDYgCiBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9oeXBlcnZpc29yLmgg
ICAgIHwgICAgOCAKIGIvYXJjaC94ODYva2VybmVsL2FwaWMvbXNpLmMgICAgICAgICAgICAgICAg
fCAgICA4IAogYi9hcmNoL3g4Ni9rZXJuZWwveDg2X2luaXQuYyAgICAgICAgICAgICAgICB8ICAg
MTIgCiBiL2FyY2gveDg2L3BjaS94ZW4uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSAK
IGIvZHJpdmVycy9pcnFjaGlwL2lycS1naWMtdjJtLmMgICAgICAgICAgICAgfCAgICAxIAogYi9k
cml2ZXJzL2lycWNoaXAvaXJxLWdpYy12My1pdHMtcGNpLW1zaS5jICB8ICAgIDEgCiBiL2RyaXZl
cnMvaXJxY2hpcC9pcnEtZ2ljLXYzLW1iaS5jICAgICAgICAgIHwgICAgMSAKIGIvZHJpdmVycy9u
ZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYyAgICAgfCAgICAyIAogYi9kcml2ZXJzL3BjaS9N
YWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgCiBiL2RyaXZlcnMvcGNpL21zaS9N
YWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAgNyAKIGIvZHJpdmVycy9wY2kvbXNpL2lycWRv
bWFpbi5jICAgICAgICAgICAgICAgfCAgMjY3ICsrKysrKysrKysrCiBiL2RyaXZlcnMvcGNpL21z
aS9sZWdhY3kuYyAgICAgICAgICAgICAgICAgIHwgICA3OSArKysKIGIvZHJpdmVycy9wY2kvbXNp
L21zaS5jICAgICAgICAgICAgICAgICAgICAgfCAgNjQ1ICsrKystLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIGIvZHJpdmVycy9wY2kvbXNpL21zaS5oICAgICAgICAgICAgICAgICAgICAgfCAgIDM5
ICsKIGIvZHJpdmVycy9wY2kvbXNpL3BjaWRldl9tc2kuYyAgICAgICAgICAgICAgfCAgIDQzICsK
IGIvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMgICAgICAgICAgICAgICAgICAgfCAgICA3IAogYi9k
cml2ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYyAgICAgICAgICAgICAgICB8ICAgIDIgCiBiL2luY2x1
ZGUvbGludXgvbXNpLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDEzNSArKy0tLQogYi9pbmNs
dWRlL2xpbnV4L3BjaS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgCiBiL2tlcm5lbC9p
cnEvbXNpLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MSArCiAzMiBmaWxlcyBjaGFu
Z2VkLCA2OTYgaW5zZXJ0aW9ucygrKSwgMTAyOCBkZWxldGlvbnMoLSkK


From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233668.405703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUl-0006XH-Kb; Sat, 27 Nov 2021 01:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233668.405703; Sat, 27 Nov 2021 01:27:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUk-0006Ua-P3; Sat, 27 Nov 2021 01:27:14 +0000
Received: by outflank-mailman (input) for mailman id 233668;
 Sat, 27 Nov 2021 01:27:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMt-00020H-Vk
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:07 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 01874d72-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01874d72-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223825.093887718@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975941;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=Fm5t3j//2ZJWIAwQC/lUTYq1h7igaXJ6yKKmISA8BnE=;
	b=YXrvDdjinCV1yBjHyHLHh4kbucu2LHURHR+t0zVJv5Iwe67q0LFuruaQh3vkwbzQtPwio7
	pprtMrfRvledbc2Kp38dfn11v4y5Inu453zNnn62UbDXbEMDnzTVB2lG+F7/o751ne62V0
	wuLwIsQnEtadtEUUBTR+POd7nVjDpAaMG5nsqWghfqGryom7R0YB/K06iimvmxsJ5KiFpB
	JPV3B+r8CqqTRE3oo30uaAVzGJqzMsu2Bz/vPrVyNZToyYv3yqNeZE81QSacrNZkpZTNFS
	XGAAgWOht7wVhoHHI0patyvWHbhFxyJn+zFlcFj6JBZ8L2lsCdtihTsPXR9eTg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975941;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=Fm5t3j//2ZJWIAwQC/lUTYq1h7igaXJ6yKKmISA8BnE=;
	b=RvZm8oUXbruNEue8m0QI5IgMFXDCNY3ru8yRX0pyG3paqWiHR2a2l+sKosxSZ9wf0ryS/Q
	OiKV6WwXAMjbYnDg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 17/22] PCI/MSI: Split out !IRQDOMAIN code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:01 +0100 (CET)

Split out the non irqdomain code into its own file.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/Makefile |    5 ++--
 drivers/pci/msi/legacy.c |   51 +++++++++++++++++++++++++++++++++++++++++++++++
 drivers/pci/msi/msi.c    |   46 ------------------------------------------
 3 files changed, 54 insertions(+), 48 deletions(-)

--- a/drivers/pci/msi/Makefile
+++ b/drivers/pci/msi/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 #
 # Makefile for the PCI/MSI
-obj-$(CONFIG_PCI)		+= pcidev_msi.o
-obj-$(CONFIG_PCI_MSI)		+= msi.o
+obj-$(CONFIG_PCI)			+= pcidev_msi.o
+obj-$(CONFIG_PCI_MSI)			+= msi.o
+obj-$(CONFIG_PCI_MSI_ARCH_FALLBACKS)	+= legacy.o
--- /dev/null
+++ b/drivers/pci/msi/legacy.c
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * PCI Message Signaled Interrupt (MSI).
+ *
+ * Legacy architecture specific setup and teardown mechanism.
+ */
+#include "msi.h"
+
+/* Arch hooks */
+int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+{
+	return -EINVAL;
+}
+
+void __weak arch_teardown_msi_irq(unsigned int irq)
+{
+}
+
+int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	struct msi_desc *desc;
+	int ret;
+
+	/*
+	 * If an architecture wants to support multiple MSI, it needs to
+	 * override arch_setup_msi_irqs()
+	 */
+	if (type == PCI_CAP_ID_MSI && nvec > 1)
+		return 1;
+
+	for_each_pci_msi_entry(desc, dev) {
+		ret = arch_setup_msi_irq(dev, desc);
+		if (ret)
+			return ret < 0 ? ret : -ENOSPC;
+	}
+
+	return 0;
+}
+
+void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
+{
+	struct msi_desc *desc;
+	int i;
+
+	for_each_pci_msi_entry(desc, dev) {
+		if (desc->irq) {
+			for (i = 0; i < entry->nvec_used; i++)
+				arch_teardown_msi_irq(desc->irq + i);
+		}
+	}
+}
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -50,52 +50,6 @@ static void pci_msi_teardown_msi_irqs(st
 #define pci_msi_teardown_msi_irqs	arch_teardown_msi_irqs
 #endif
 
-#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
-/* Arch hooks */
-int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
-{
-	return -EINVAL;
-}
-
-void __weak arch_teardown_msi_irq(unsigned int irq)
-{
-}
-
-int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct msi_desc *entry;
-	int ret;
-
-	/*
-	 * If an architecture wants to support multiple MSI, it needs to
-	 * override arch_setup_msi_irqs()
-	 */
-	if (type == PCI_CAP_ID_MSI && nvec > 1)
-		return 1;
-
-	for_each_pci_msi_entry(entry, dev) {
-		ret = arch_setup_msi_irq(dev, entry);
-		if (ret < 0)
-			return ret;
-		if (ret > 0)
-			return -ENOSPC;
-	}
-
-	return 0;
-}
-
-void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
-{
-	int i;
-	struct msi_desc *entry;
-
-	for_each_pci_msi_entry(entry, dev)
-		if (entry->irq)
-			for (i = 0; i < entry->nvec_used; i++)
-				arch_teardown_msi_irq(entry->irq + i);
-}
-#endif /* CONFIG_PCI_MSI_ARCH_FALLBACKS */
-
 /*
  * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
  * mask all MSI interrupts by clearing the MSI enable bit does not work



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233674.405716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUo-0007Lc-7U; Sat, 27 Nov 2021 01:27:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233674.405716; Sat, 27 Nov 2021 01:27:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUn-0007L0-Ut; Sat, 27 Nov 2021 01:27:17 +0000
Received: by outflank-mailman (input) for mailman id 233674;
 Sat, 27 Nov 2021 01:27:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSf-0004gG-O5
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:05 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d84567e6-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:25:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d84567e6-4f20-11ec-b941-1df2895da90e
Message-ID: <20211127000918.664542907@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976302;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=rrdNHJUyUgKyNz6Pbn0ws4hWiMPwwbNMnZ1F31AYBD0=;
	b=rk8tLqrH/jwlZPWTi5ZYoJtV8IerLp8c1pN+oY2nqoQ75mRhq9dXTfvsQHLDkrZZap9/pk
	jjc0JTIlL54D/GYfllh6yrnQBNwJLwvHcvBQihZlvTJGCvKojQxfy7q6iehck4kLQgWCIL
	COCB4MxLmzhjwQH7VrDvt8TVObtKFVG8/E48BhCvg8jQUlIWL451I1FRIi1WhOAwkJHXfb
	J3aYDkXnel/Geaa8cij+IP+JMldsWgKE1HsrSoWb8Cbf0x8sY2k5BCGVREuzIwO3pNATCZ
	kyIApnD73sro4h+FSbg4A3GwGkjBLYmfN7iOaxzm+jT7nSncj2KRccMfaSJx5w==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976302;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=rrdNHJUyUgKyNz6Pbn0ws4hWiMPwwbNMnZ1F31AYBD0=;
	b=Ui/C++sWuyQrA07lP+61EhKbtD5roY4pyOnAVFQ1cNzvOD/A43y3dx3h5sUDRRnJd/OmmF
	mVhzTLHOb3zddqAw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 03/10] genirq/msi: Make MSI descriptor alloc/free ready for
 range allocations
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:25:01 +0100 (CET)

Convert the MSI descriptor related functions to ranges and fixup the call
sites.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/base/platform-msi.c |    3 ++-
 include/linux/msi.h         |    7 ++++---
 kernel/irq/msi.c            |   38 +++++++++++++++++++-------------------
 3 files changed, 25 insertions(+), 23 deletions(-)

--- a/drivers/base/platform-msi.c
+++ b/drivers/base/platform-msi.c
@@ -320,11 +320,12 @@ struct irq_domain *
 void platform_msi_device_domain_free(struct irq_domain *domain, unsigned int virq,
 				     unsigned int nr_irqs)
 {
+	struct msi_range range = { .first = virq, .last = virq + nr_irqs - 1, };
 	struct platform_msi_priv_data *data = domain->host_data;
 
 	msi_lock_descs(data->dev);
 	irq_domain_free_irqs_common(domain, virq, nr_irqs);
-	msi_free_msi_descs_range(data->dev, MSI_DESC_ALL, virq, nr_irqs);
+	msi_free_msi_descs_range(data->dev, MSI_DESC_ALL, &range);
 	msi_unlock_descs(data->dev);
 }
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -321,8 +321,7 @@ static inline void pci_write_msi_msg(uns
 #endif /* CONFIG_PCI_MSI */
 
 int msi_add_msi_desc(struct device *dev, struct msi_desc *init_desc);
-void msi_free_msi_descs_range(struct device *dev, enum msi_desc_filter filter,
-			      unsigned int base_index, unsigned int ndesc);
+void msi_free_msi_descs_range(struct device *dev, enum msi_desc_filter filter, struct msi_range *range);
 
 /**
  * msi_free_msi_descs - Free MSI descriptors of a device
@@ -330,7 +329,9 @@ void msi_free_msi_descs_range(struct dev
  */
 static inline void msi_free_msi_descs(struct device *dev)
 {
-	msi_free_msi_descs_range(dev, MSI_DESC_ALL, 0, UINT_MAX);
+	struct msi_range range = { .first = 0, .last = UINT_MAX, };
+
+	msi_free_msi_descs_range(dev, MSI_DESC_ALL, &range);
 }
 
 void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -101,19 +101,19 @@ int msi_add_msi_desc(struct device *dev,
  *
  * Return: 0 on success or an appropriate failure code.
  */
-static int msi_add_simple_msi_descs(struct device *dev, unsigned int index, unsigned int ndesc)
+static int msi_add_simple_msi_descs(struct device *dev, struct msi_range *range)
 {
 	struct msi_desc *desc;
-	unsigned long i;
+	unsigned long idx;
 	int ret;
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	for (i = 0; i < ndesc; i++) {
+	for (idx = range->first; idx <= range->last; idx++) {
 		desc = msi_alloc_desc(dev, 1, NULL);
 		if (!desc)
 			goto fail_mem;
-		ret = msi_insert_desc(dev->msi.data, desc, index + i);
+		ret = msi_insert_desc(dev->msi.data, desc, idx);
 		if (ret)
 			goto fail;
 	}
@@ -122,7 +122,7 @@ static int msi_add_simple_msi_descs(stru
 fail_mem:
 	ret = -ENOMEM;
 fail:
-	msi_free_msi_descs_range(dev, MSI_DESC_NOTASSOCIATED, index, ndesc);
+	msi_free_msi_descs_range(dev, MSI_DESC_NOTASSOCIATED, range);
 	return ret;
 }
 
@@ -148,14 +148,14 @@ static bool msi_desc_match(struct msi_de
  * @ndesc:	Number of descriptors to free
  */
 void msi_free_msi_descs_range(struct device *dev, enum msi_desc_filter filter,
-			      unsigned int base_index, unsigned int ndesc)
+			      struct msi_range *range)
 {
 	struct msi_desc *desc;
 	unsigned long idx;
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	xa_for_each_range(&dev->msi.data->store, idx, desc, base_index, base_index + ndesc - 1) {
+	xa_for_each_range(&dev->msi.data->store, idx, desc, range->first, range->last) {
 		if (msi_desc_match(desc, filter)) {
 			xa_erase(&dev->msi.data->store, idx);
 			msi_free_desc(desc);
@@ -746,17 +746,18 @@ int msi_domain_prepare_irqs(struct irq_d
 int msi_domain_populate_irqs(struct irq_domain *domain, struct device *dev,
 			     int virq_base, int nvec, msi_alloc_info_t *arg)
 {
+	struct msi_range range = { .first = virq_base, .last = virq_base + nvec - 1 };
 	struct msi_domain_info *info = domain->host_data;
 	struct msi_domain_ops *ops = info->ops;
 	struct msi_desc *desc;
 	int ret, virq;
 
 	msi_lock_descs(dev);
-	ret = msi_add_simple_msi_descs(dev, virq_base, nvec);
+	ret = msi_add_simple_msi_descs(dev, &range);
 	if (ret)
 		goto unlock;
 
-	for (virq = virq_base; virq < virq_base + nvec; virq++) {
+	for (virq = range.first; virq <= range.last; virq++) {
 		desc = xa_load(&dev->msi.data->store, virq);
 		desc->irq = virq;
 
@@ -773,7 +774,7 @@ int msi_domain_populate_irqs(struct irq_
 fail:
 	for (--virq; virq >= virq_base; virq--)
 		irq_domain_free_irqs_common(domain, virq, 1);
-	msi_free_msi_descs_range(dev, MSI_DESC_ALL, virq_base, nvec);
+	msi_free_msi_descs_range(dev, MSI_DESC_ALL, &range);
 unlock:
 	msi_unlock_descs(dev);
 	return ret;
@@ -932,14 +933,13 @@ int __msi_domain_alloc_irqs(struct irq_d
 	return 0;
 }
 
-static int msi_domain_add_simple_msi_descs(struct msi_domain_info *info,
-					   struct device *dev,
-					   unsigned int num_descs)
+static int msi_domain_add_simple_msi_descs(struct msi_domain_info *info, struct device *dev,
+					   struct msi_range *range)
 {
 	if (!(info->flags & MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS))
 		return 0;
 
-	return msi_add_simple_msi_descs(dev, 0, num_descs);
+	return msi_add_simple_msi_descs(dev, range);
 }
 
 /**
@@ -964,7 +964,7 @@ int msi_domain_alloc_irqs_descs_locked(s
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	ret = msi_domain_add_simple_msi_descs(info, dev, range->ndesc);
+	ret = msi_domain_add_simple_msi_descs(info, dev, range);
 	if (ret)
 		return ret;
 
@@ -1017,11 +1017,11 @@ void __msi_domain_free_irqs(struct irq_d
 	}
 }
 
-static void msi_domain_free_msi_descs(struct msi_domain_info *info,
-				      struct device *dev)
+static void msi_domain_free_msi_descs(struct msi_domain_info *info, struct device *dev,
+				      struct msi_range *range)
 {
 	if (info->flags & MSI_FLAG_FREE_MSI_DESCS)
-		msi_free_msi_descs(dev);
+		msi_free_msi_descs_range(dev, MSI_DESC_ALL, range);
 }
 
 /**
@@ -1043,7 +1043,7 @@ void msi_domain_free_irqs_descs_locked(s
 	lockdep_assert_held(&dev->msi.data->mutex);
 
 	ops->domain_free_irqs(domain, dev, range);
-	msi_domain_free_msi_descs(info, dev);
+	msi_domain_free_msi_descs(info, dev, range);
 }
 
 /**



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233676.405724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUp-0007WF-Mp; Sat, 27 Nov 2021 01:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233676.405724; Sat, 27 Nov 2021 01:27:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUo-0007Qi-O9; Sat, 27 Nov 2021 01:27:18 +0000
Received: by outflank-mailman (input) for mailman id 233676;
 Sat, 27 Nov 2021 01:27:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNF-0002cc-Ux
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:29 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1176140c-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:29 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1176140c-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223824.382273262@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975969;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=w7GncdwHZHkuO6107A0BMJdTfScXy8O2W/1Ze2L1KBI=;
	b=3QE1kwAZSn0AOk+bavNZ+1QGzKQwtdZggp/2QupSoLnSv4hgBf0i5NYSQk1Xh3Te7r2lj2
	RIKrJ8nRt+yOUSqgv/raaaEzi4g7iUcBuN551YDz6Xaov3UfHqH8KbAZc91CzVW9+qGr+5
	0K2kZCbaxqFIj4mFhtFNSEu+KAhUE1WDPPYhMsX8N8ff3xkHmUekaAo3u4T7A66BSLqhYp
	4XGys/cw7iBRHVdNQTa9QVZRKfJojBV6cCn4mN7axCrfi968z4S8U7K2yEJOsKQLwWgo1n
	EZ7cAGoXHBM1b+VijVozl6thH/vIF8O3zDUH6vXm2+A/d3lLLGdu2F4xFTZCEg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975969;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=w7GncdwHZHkuO6107A0BMJdTfScXy8O2W/1Ze2L1KBI=;
	b=/+krVhSSUWDZcKzVa8Z7DFG7rRo3Xw/7JdSU0e8eVBPs+Rs+2BYhA4S+6BpELmkd/ZqXPd
	OxLK/KydpitaftBQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 05/22] genirq/msi: Fixup includes
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:28 +0100 (CET)

Remove the kobject.h include from msi.h as it's not required and add a
sysfs.h include to the core code instead.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/msi.h |    1 -
 kernel/irq/msi.c    |    1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -2,7 +2,6 @@
 #ifndef LINUX_MSI_H
 #define LINUX_MSI_H
 
-#include <linux/kobject.h>
 #include <linux/list.h>
 #include <asm/msi.h>
 
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -14,6 +14,7 @@
 #include <linux/irqdomain.h>
 #include <linux/msi.h>
 #include <linux/slab.h>
+#include <linux/sysfs.h>
 #include <linux/pci.h>
 
 #include "internals.h"



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233678.405727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUq-0007hD-AA; Sat, 27 Nov 2021 01:27:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233678.405727; Sat, 27 Nov 2021 01:27:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUp-0007bl-JQ; Sat, 27 Nov 2021 01:27:19 +0000
Received: by outflank-mailman (input) for mailman id 233678;
 Sat, 27 Nov 2021 01:27:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNP-00020H-Gk
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:39 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 171c77a7-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:38 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 171c77a7-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223824.737214551@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975978;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=aZOv1txgfOaOUbPFrZO+dbMPb9SLUMuv6lc2RMuyFjg=;
	b=gLteyA8nzze5GVNCuntT+mDm6BaDWteqvktrkoi4ASYzPXrlz4HKz0bxicobR9/2app1it
	5Jy9qIWqgXn1Yj3OnnnOAvfU3H1kJ2vIi2IgMpIOPf3Tbg+hwPdIQAMRBQMKMqsPyJSKCA
	wKej5OsKAZizHqGwChrYLE1YONAQ8ZADKZ/fhlTu0TWHLuld7oQdv/UKLaQWm/gl5ZetSr
	yRIutEfTCLBZ7jzkBcIGoANQ1a7tyhNoqABO43Tmkk667izRZp/2B6vZyjNMgGaUpCFWwm
	uK+aQVNlYDtOZW5StTeczSND/gp8vKFzi0ncw1BQWiiVIPNjOWmse1DqR/W8Hw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975978;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=aZOv1txgfOaOUbPFrZO+dbMPb9SLUMuv6lc2RMuyFjg=;
	b=8887gmXcOxR2mcE3VZwOWRnobHxN5JTQvSyxaMwj/RCiewHrEtBePVsZfuQUe9gZwQtKvb
	qBx5Exc3k7997lBQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Wei Liu <wei.liu@kernel.org>,
 x86@kernel.org,
 linux-hyperv@vger.kernel.org,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 11/22] x86/hyperv: Refactor hv_msi_domain_free_irqs()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:37 +0100 (CET)

No point in looking up things over and over. Just look up the associated
irq data and work from there.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Wei Liu <wei.liu@kernel.org>
Cc: x86@kernel.org
Cc: linux-hyperv@vger.kernel.org
---
 arch/x86/hyperv/irqdomain.c |   55 +++++++++++++-------------------------------
 1 file changed, 17 insertions(+), 38 deletions(-)

--- a/arch/x86/hyperv/irqdomain.c
+++ b/arch/x86/hyperv/irqdomain.c
@@ -253,64 +253,43 @@ static int hv_unmap_msi_interrupt(struct
 	return hv_unmap_interrupt(hv_build_pci_dev_id(dev).as_uint64, old_entry);
 }
 
-static void hv_teardown_msi_irq_common(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
+static void hv_teardown_msi_irq(struct pci_dev *dev, struct irq_data *irqd)
 {
-	u64 status;
 	struct hv_interrupt_entry old_entry;
-	struct irq_desc *desc;
-	struct irq_data *data;
 	struct msi_msg msg;
+	u64 status;
 
-	desc = irq_to_desc(irq);
-	if (!desc) {
-		pr_debug("%s: no irq desc\n", __func__);
-		return;
-	}
-
-	data = &desc->irq_data;
-	if (!data) {
-		pr_debug("%s: no irq data\n", __func__);
-		return;
-	}
-
-	if (!data->chip_data) {
+	if (!irqd->chip_data) {
 		pr_debug("%s: no chip data\n!", __func__);
 		return;
 	}
 
-	old_entry = *(struct hv_interrupt_entry *)data->chip_data;
+	old_entry = *(struct hv_interrupt_entry *)irqd->chip_data;
 	entry_to_msi_msg(&old_entry, &msg);
 
-	kfree(data->chip_data);
-	data->chip_data = NULL;
+	kfree(irqd->chip_data);
+	irqd->chip_data = NULL;
 
 	status = hv_unmap_msi_interrupt(dev, &old_entry);
 
-	if (status != HV_STATUS_SUCCESS) {
+	if (status != HV_STATUS_SUCCESS)
 		pr_err("%s: hypercall failed, status %lld\n", __func__, status);
-		return;
-	}
 }
 
-static void hv_msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
+static void hv_msi_free_irq(struct irq_domain *domain,
+			    struct msi_domain_info *info, unsigned int virq)
 {
-	int i;
-	struct msi_desc *entry;
-	struct pci_dev *pdev;
+	struct irq_data *irqd = irq_get_irq_data(virq);
+	struct msi_desc *desc;
 
-	if (WARN_ON_ONCE(!dev_is_pci(dev)))
+	if (!irqd)
 		return;
 
-	pdev = to_pci_dev(dev);
+	desc = irq_data_get_msi_desc(irqd);
+	if (!desc || !desc->irq || WARN_ON_ONCE(!dev_is_pci(desc->dev)))
+		return;
 
-	for_each_pci_msi_entry(entry, pdev) {
-		if (entry->irq) {
-			for (i = 0; i < entry->nvec_used; i++) {
-				hv_teardown_msi_irq_common(pdev, entry, entry->irq + i);
-				irq_domain_free_irqs(entry->irq + i, 1);
-			}
-		}
-	}
+	hv_teardown_msi_irq(to_pci_dev(desc->dev), irqd);
 }
 
 /*
@@ -329,7 +308,7 @@ static struct irq_chip hv_pci_msi_contro
 };
 
 static struct msi_domain_ops pci_msi_domain_ops = {
-	.domain_free_irqs	= hv_msi_domain_free_irqs,
+	.msi_free		= hv_msi_free_irq,
 	.msi_prepare		= pci_msi_prepare,
 };
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233687.405750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUv-0000fe-IH; Sat, 27 Nov 2021 01:27:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233687.405750; Sat, 27 Nov 2021 01:27:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUu-0000cE-Sk; Sat, 27 Nov 2021 01:27:24 +0000
Received: by outflank-mailman (input) for mailman id 233687;
 Sat, 27 Nov 2021 01:27:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNY-0002cc-Ue
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:49 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cb781fb-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1cb781fb-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223825.093887718@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975987;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=Fm5t3j//2ZJWIAwQC/lUTYq1h7igaXJ6yKKmISA8BnE=;
	b=XewWMxW5OXAStB0a9VBLtnJFYMcyg2xjonhAMfou6065fbYQjfHi8Lit1HZBQyqQR/DwAG
	AwiCmSKB1q6Lr6nKj7wU20vZFduCOoVx0VbByG6OY0h00lNOZQhxvSwMuWdcFJXAmB8cfg
	+7/g89QG+yr4AVj2jdOh6hqABN0N3084KlzXsDKwc0qPDNpytYYmYCfIk9qNoboQ87IiZk
	sbLzMNeDCVjvhFz+QWxGbYx5STnHWlXZxQAeMopOaJhHalb7kQdDHgdwZOcrsif7RgT5TZ
	B56dtCmWetc6Z8ZH8LlG56HbbscyTZghWaS14wSjTSdZ9jG1gcJlz4dBE/gGEw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975987;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=Fm5t3j//2ZJWIAwQC/lUTYq1h7igaXJ6yKKmISA8BnE=;
	b=2kvzmjSCRTIwQTLiZ9EP0jBkv9lEpqmZpcE4KzPVxgkd40dev6IU63cDMgceYYfHXEdk3z
	cvOO1KoLp1BLPQBg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 17/22] PCI/MSI: Split out !IRQDOMAIN code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:47 +0100 (CET)

Split out the non irqdomain code into its own file.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/Makefile |    5 ++--
 drivers/pci/msi/legacy.c |   51 +++++++++++++++++++++++++++++++++++++++++++++++
 drivers/pci/msi/msi.c    |   46 ------------------------------------------
 3 files changed, 54 insertions(+), 48 deletions(-)

--- a/drivers/pci/msi/Makefile
+++ b/drivers/pci/msi/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 #
 # Makefile for the PCI/MSI
-obj-$(CONFIG_PCI)		+= pcidev_msi.o
-obj-$(CONFIG_PCI_MSI)		+= msi.o
+obj-$(CONFIG_PCI)			+= pcidev_msi.o
+obj-$(CONFIG_PCI_MSI)			+= msi.o
+obj-$(CONFIG_PCI_MSI_ARCH_FALLBACKS)	+= legacy.o
--- /dev/null
+++ b/drivers/pci/msi/legacy.c
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * PCI Message Signaled Interrupt (MSI).
+ *
+ * Legacy architecture specific setup and teardown mechanism.
+ */
+#include "msi.h"
+
+/* Arch hooks */
+int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+{
+	return -EINVAL;
+}
+
+void __weak arch_teardown_msi_irq(unsigned int irq)
+{
+}
+
+int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	struct msi_desc *desc;
+	int ret;
+
+	/*
+	 * If an architecture wants to support multiple MSI, it needs to
+	 * override arch_setup_msi_irqs()
+	 */
+	if (type == PCI_CAP_ID_MSI && nvec > 1)
+		return 1;
+
+	for_each_pci_msi_entry(desc, dev) {
+		ret = arch_setup_msi_irq(dev, desc);
+		if (ret)
+			return ret < 0 ? ret : -ENOSPC;
+	}
+
+	return 0;
+}
+
+void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
+{
+	struct msi_desc *desc;
+	int i;
+
+	for_each_pci_msi_entry(desc, dev) {
+		if (desc->irq) {
+			for (i = 0; i < entry->nvec_used; i++)
+				arch_teardown_msi_irq(desc->irq + i);
+		}
+	}
+}
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -50,52 +50,6 @@ static void pci_msi_teardown_msi_irqs(st
 #define pci_msi_teardown_msi_irqs	arch_teardown_msi_irqs
 #endif
 
-#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
-/* Arch hooks */
-int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
-{
-	return -EINVAL;
-}
-
-void __weak arch_teardown_msi_irq(unsigned int irq)
-{
-}
-
-int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct msi_desc *entry;
-	int ret;
-
-	/*
-	 * If an architecture wants to support multiple MSI, it needs to
-	 * override arch_setup_msi_irqs()
-	 */
-	if (type == PCI_CAP_ID_MSI && nvec > 1)
-		return 1;
-
-	for_each_pci_msi_entry(entry, dev) {
-		ret = arch_setup_msi_irq(dev, entry);
-		if (ret < 0)
-			return ret;
-		if (ret > 0)
-			return -ENOSPC;
-	}
-
-	return 0;
-}
-
-void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
-{
-	int i;
-	struct msi_desc *entry;
-
-	for_each_pci_msi_entry(entry, dev)
-		if (entry->irq)
-			for (i = 0; i < entry->nvec_used; i++)
-				arch_teardown_msi_irq(entry->irq + i);
-}
-#endif /* CONFIG_PCI_MSI_ARCH_FALLBACKS */
-
 /*
  * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
  * mask all MSI interrupts by clearing the MSI enable bit does not work



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233689.405756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUx-00013H-2L; Sat, 27 Nov 2021 01:27:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233689.405756; Sat, 27 Nov 2021 01:27:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUw-0000yu-HD; Sat, 27 Nov 2021 01:27:26 +0000
Received: by outflank-mailman (input) for mailman id 233689;
 Sat, 27 Nov 2021 01:27:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSo-0003uw-8Y
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:14 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dbe815d7-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:25:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbe815d7-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.892733246@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976308;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=1qj+ON8bFgIPks8keDU/08NOHxNWcizsMPwkJuRGMrI=;
	b=Eb7F85yxU2/GXtXpV1Sbb34yCwETsFbXL6M7KB9gCsOrYAe6tvU0vngeF/GvrxkU48lja3
	F2zgIqZSQKLmhH4uMq3X7em//nMRXmU/jZfkb/wa14gNatb0Eli/rAD5NP2uW4bG1SCAGT
	daORTovBU6EUrncvhpHjbL86mNf4uuVU8GDe9SLJ6YHFAwpj/WqqO6Qc8e4Yag5TmqcKSn
	DGX39oD0FUT7ul4zvXZzOUfffaSI9QoWqGTO4a4QAba7gVl6kbxBmdQVUxhvoGu1hwhhfi
	DXhZ97otf5O1h336e4rygoy6F8az9re0LGekPc8fp0UpHFu3ANwAV7cnDpEkNw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976308;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=1qj+ON8bFgIPks8keDU/08NOHxNWcizsMPwkJuRGMrI=;
	b=EDFk1OiAUgj/RtChZZpnV6C9dpDJ9EJQvgRHe6OJnzHUx7c1LOTjhWgYmcXwQPmh8R+ML8
	cAasvyhML01ZIfDQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 07/10] PCI/MSI: Make free related functions range based
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:25:08 +0100 (CET)

In preparation of runtime expandable PCI/MSI-X vectors convert the related
free functions to take ranges instead of assuming a zero based vector
space.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |    5 ++---
 drivers/pci/msi/msi.c       |   24 ++++++++++++++++--------
 drivers/pci/msi/msi.h       |    2 +-
 3 files changed, 19 insertions(+), 12 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -19,14 +19,13 @@ int pci_msi_setup_msi_irqs(struct pci_de
 	return pci_msi_legacy_setup_msi_irqs(dev, range->ndesc, type);
 }
 
-void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
+void pci_msi_teardown_msi_irqs(struct pci_dev *dev, struct msi_range *range)
 {
-	struct msi_range range = { .first = 0, .last = UINT_MAX, };
 	struct irq_domain *domain;
 
 	domain = dev_get_msi_domain(&dev->dev);
 	if (domain && irq_domain_is_hierarchy(domain))
-		msi_domain_free_irqs_descs_locked(domain, &dev->dev, &range);
+		msi_domain_free_irqs_descs_locked(domain, &dev->dev, range);
 	else
 		pci_msi_legacy_teardown_msi_irqs(dev);
 }
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -222,9 +222,12 @@ void pci_write_msi_msg(unsigned int irq,
 }
 EXPORT_SYMBOL_GPL(pci_write_msi_msg);
 
-static void free_msi_irqs(struct pci_dev *dev)
+static void free_msi_irqs(struct pci_dev *dev, struct msi_range *range, bool shutdown)
 {
-	pci_msi_teardown_msi_irqs(dev);
+	pci_msi_teardown_msi_irqs(dev, range);
+
+	if (!shutdown)
+		return;
 
 	if (dev->msix_base) {
 		iounmap(dev->msix_base);
@@ -443,7 +446,7 @@ static int msi_capability_init(struct pc
 
 err:
 	pci_msi_unmask(entry, msi_multi_mask(entry));
-	free_msi_irqs(dev);
+	free_msi_irqs(dev, &range, true);
 unlock:
 	msi_unlock_descs(&dev->dev);
 	kfree(masks);
@@ -538,7 +541,7 @@ static void msix_mask_all(void __iomem *
 
 static int msix_setup_interrupts(struct pci_dev *dev, void __iomem *base,
 				 struct msi_range *range, struct msix_entry *entries,
-				 struct irq_affinity *affd)
+				 struct irq_affinity *affd, bool expand)
 {
 	struct irq_affinity_desc *masks = NULL;
 	int ret;
@@ -566,7 +569,8 @@ static int msix_setup_interrupts(struct
 	goto out_unlock;
 
 out_free:
-	free_msi_irqs(dev);
+	free_msi_irqs(dev, range, !expand);
+
 out_unlock:
 	msi_unlock_descs(&dev->dev);
 	kfree(masks);
@@ -614,7 +618,7 @@ static int msix_capability_init(struct p
 	/* Ensure that all table entries are masked. */
 	msix_mask_all(base, tsize);
 
-	ret = msix_setup_interrupts(dev, base, &range, entries, affd);
+	ret = msix_setup_interrupts(dev, base, &range, entries, affd, false);
 	if (ret)
 		goto out_disable;
 
@@ -728,12 +732,14 @@ static void pci_msi_shutdown(struct pci_
 
 void pci_disable_msi(struct pci_dev *dev)
 {
+	struct msi_range range = { .first = 0, .last = 0, };
+
 	if (!pci_msi_enable || !dev || !dev->msi_enabled)
 		return;
 
 	msi_lock_descs(&dev->dev);
 	pci_msi_shutdown(dev);
-	free_msi_irqs(dev);
+	free_msi_irqs(dev, &range, true);
 	msi_unlock_descs(&dev->dev);
 }
 EXPORT_SYMBOL(pci_disable_msi);
@@ -817,12 +823,14 @@ static void pci_msix_shutdown(struct pci
 
 void pci_disable_msix(struct pci_dev *dev)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, };
+
 	if (!pci_msi_enable || !dev || !dev->msix_enabled)
 		return;
 
 	msi_lock_descs(&dev->dev);
 	pci_msix_shutdown(dev);
-	free_msi_irqs(dev);
+	free_msi_irqs(dev, &range, true);
 	msi_unlock_descs(&dev->dev);
 }
 EXPORT_SYMBOL(pci_disable_msix);
--- a/drivers/pci/msi/msi.h
+++ b/drivers/pci/msi/msi.h
@@ -6,7 +6,7 @@
 #define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
 
 extern int pci_msi_setup_msi_irqs(struct pci_dev *dev, struct msi_range *range, int type);
-extern void pci_msi_teardown_msi_irqs(struct pci_dev *dev);
+extern void pci_msi_teardown_msi_irqs(struct pci_dev *dev, struct msi_range *range);
 
 #ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
 extern int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233691.405765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUy-0001VY-W1; Sat, 27 Nov 2021 01:27:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233691.405765; Sat, 27 Nov 2021 01:27:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUy-0001Qp-Ah; Sat, 27 Nov 2021 01:27:28 +0000
Received: by outflank-mailman (input) for mailman id 233691;
 Sat, 27 Nov 2021 01:27:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSk-0003uw-87
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:10 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d92896ec-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:25:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d92896ec-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.723637256@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976304;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=wAZLS4DVWG/31wPrjnVkWgrCpcsyPlNJgofX29BhKpw=;
	b=US7UNPS+NXprP3fC+BqxW5rKcXZSUWRgYEei1kp1cCjbCMj3u+ySTjRvZnXM2ceKo4onbi
	DdeUZvv7ATkP7ocNNn103LksVWfjm5uN9xsMKNKUkJ5r7sAXBwyi3mWHJUGAYCIKsxFF8W
	zeL8yJWHe6fOAHY3g1/48EOhvZlfjNp/xG9NYWpzEZ3rn98/Ofvp3DTasIjXlw2cK2wMds
	TqzUkjIiplaZtF10uMqyFnaMhAQOSsF6MZzpiHysW2poqTq6yZnmBnI89SRY6U/PvhxBa9
	+2GTvPrB5USmFIGIwqM5iNn3fQxU8Z4UCD6VIYJcstNKx8rpJV4CIsc0NRThdA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976304;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=wAZLS4DVWG/31wPrjnVkWgrCpcsyPlNJgofX29BhKpw=;
	b=5hog39uj/8+DNtMBKVJ45GPgya8dS0p++jg39/Ye2fIq1TOglsCWtkpKvp9KVSipqhlIKT
	vEZHhZd84iLgrSBQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 04/10] genirq/msi: Prepare MSI domain alloc/free for range irq
 allocation
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:25:03 +0100 (CET)

Make the iterators in the allocation and free functions range based.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 kernel/irq/msi.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -877,6 +877,7 @@ int __msi_domain_alloc_irqs(struct irq_d
 	msi_alloc_info_t arg = { };
 	unsigned int vflags = 0;
 	struct msi_desc *desc;
+	unsigned long idx;
 	int allocated = 0;
 	int i, ret, virq;
 
@@ -906,7 +907,10 @@ int __msi_domain_alloc_irqs(struct irq_d
 			vflags |= VIRQ_NOMASK_QUIRK;
 	}
 
-	msi_for_each_desc(desc, dev, MSI_DESC_NOTASSOCIATED) {
+	xa_for_each_range(&dev->msi.data->store, idx, desc, range->first, range->last) {
+		if (!msi_desc_match(desc, MSI_DESC_NOTASSOCIATED))
+			continue;
+
 		ops->set_desc(&arg, desc);
 
 		virq = __irq_domain_alloc_irqs(domain, -1, desc->nvec_used,
@@ -999,10 +1003,14 @@ void __msi_domain_free_irqs(struct irq_d
 	struct msi_domain_info *info = domain->host_data;
 	struct irq_data *irqd;
 	struct msi_desc *desc;
+	unsigned long idx;
 	int i;
 
 	/* Only handle MSI entries which have an interrupt associated */
-	msi_for_each_desc(desc, dev, MSI_DESC_ASSOCIATED) {
+	xa_for_each_range(&dev->msi.data->store, idx, desc, range->first, range->last) {
+		if (!msi_desc_match(desc, MSI_DESC_ASSOCIATED))
+			continue;
+
 		/* Make sure all interrupts are deactivated */
 		for (i = 0; i < desc->nvec_used; i++) {
 			irqd = irq_domain_get_irq_data(domain, desc->irq + i);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233693.405772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmV0-0001lW-8C; Sat, 27 Nov 2021 01:27:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233693.405772; Sat, 27 Nov 2021 01:27:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmUz-0001i4-Cm; Sat, 27 Nov 2021 01:27:29 +0000
Received: by outflank-mailman (input) for mailman id 233693;
 Sat, 27 Nov 2021 01:27:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMs-00020H-VU
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:07 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 001300bc-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 001300bc-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223824.974731648@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975939;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=hci7uMFGfD5nIiubN1zLkrws1cYlWk8fGOVQsprhF+I=;
	b=y6uQWH/GxcHMb18r3Hk4s3gj0cVPaw5qJOlYhxJpPKyMKyYQDkVOIViqYwb6t0imhhUMsZ
	18Ip8UtzE49ucknfipeSmBnih0K/7qkHQzDSGOsQYg37O6C31FwOmtjEb/MYSyfiiMEkuX
	XfV2Bm98TMVIShvdGkmwnfARDNwHJYlRILj+Ou1WGMlwLnNdvNF+0EWSiurK3s79sr36GU
	ZDjGCvnhGlezNxWr57cNIE67LczeaCdyy7XsOGajqOPy8W9kP6oUK1MqulZTKyTVs8Lx+R
	qKtqHgWxJUt/6DzavaeptCaPVL6Mh3S4buozqca2zseVhKbouwZHdcJvv94Piw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975939;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=hci7uMFGfD5nIiubN1zLkrws1cYlWk8fGOVQsprhF+I=;
	b=yqQiETLIr94CbiFHtSKOe2RGv1bupby66SBVIh6N/xManEL8oHwwJ8IbF87kXOvYL5CzKm
	j7VEd4OA44cwVfCw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 15/22] PCI/MSI: Move code into a separate directory
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:18:58 +0100 (CET)

msi.c is getting larger and really could do with a splitup. Move it into
it's own directory to prepare for that.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 Documentation/driver-api/pci/pci.rst |    2 
 drivers/pci/Makefile                 |    3 
 drivers/pci/msi.c                    | 1532 -----------------------------------
 drivers/pci/msi/Makefile             |    4 
 drivers/pci/msi/msi.c                | 1532 +++++++++++++++++++++++++++++++++++
 5 files changed, 1539 insertions(+), 1534 deletions(-)

--- a/Documentation/driver-api/pci/pci.rst
+++ b/Documentation/driver-api/pci/pci.rst
@@ -13,7 +13,7 @@ PCI Support Library
 .. kernel-doc:: drivers/pci/search.c
    :export:
 
-.. kernel-doc:: drivers/pci/msi.c
+.. kernel-doc:: drivers/pci/msi/msi.c
    :export:
 
 .. kernel-doc:: drivers/pci/bus.c
--- a/drivers/pci/Makefile
+++ b/drivers/pci/Makefile
@@ -5,8 +5,9 @@
 obj-$(CONFIG_PCI)		+= access.o bus.o probe.o host-bridge.o \
 				   remove.o pci.o pci-driver.o search.o \
 				   pci-sysfs.o rom.o setup-res.o irq.o vpd.o \
-				   setup-bus.o vc.o mmap.o setup-irq.o msi.o
+				   setup-bus.o vc.o mmap.o setup-irq.o
 
+obj-$(CONFIG_PCI)		+= msi/
 obj-$(CONFIG_PCI)		+= pcie/
 
 ifdef CONFIG_PCI
--- a/drivers/pci/msi.c
+++ /dev/null
@@ -1,1532 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * PCI Message Signaled Interrupt (MSI)
- *
- * Copyright (C) 2003-2004 Intel
- * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
- * Copyright (C) 2016 Christoph Hellwig.
- */
-
-#include <linux/acpi_iort.h>
-#include <linux/err.h>
-#include <linux/export.h>
-#include <linux/irq.h>
-#include <linux/irqdomain.h>
-#include <linux/msi.h>
-#include <linux/of_irq.h>
-#include <linux/pci.h>
-
-#include "pci.h"
-
-#ifdef CONFIG_PCI_MSI
-
-static int pci_msi_enable = 1;
-int pci_msi_ignore_mask;
-
-#define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
-
-#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-static int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct irq_domain *domain;
-
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
-		return msi_domain_alloc_irqs(domain, &dev->dev, nvec);
-
-	return arch_setup_msi_irqs(dev, nvec, type);
-}
-
-static void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
-{
-	struct irq_domain *domain;
-
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
-		msi_domain_free_irqs(domain, &dev->dev);
-	else
-		arch_teardown_msi_irqs(dev);
-}
-#else
-#define pci_msi_setup_msi_irqs		arch_setup_msi_irqs
-#define pci_msi_teardown_msi_irqs	arch_teardown_msi_irqs
-#endif
-
-#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
-/* Arch hooks */
-int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
-{
-	return -EINVAL;
-}
-
-void __weak arch_teardown_msi_irq(unsigned int irq)
-{
-}
-
-int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct msi_desc *entry;
-	int ret;
-
-	/*
-	 * If an architecture wants to support multiple MSI, it needs to
-	 * override arch_setup_msi_irqs()
-	 */
-	if (type == PCI_CAP_ID_MSI && nvec > 1)
-		return 1;
-
-	for_each_pci_msi_entry(entry, dev) {
-		ret = arch_setup_msi_irq(dev, entry);
-		if (ret < 0)
-			return ret;
-		if (ret > 0)
-			return -ENOSPC;
-	}
-
-	return 0;
-}
-
-void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
-{
-	int i;
-	struct msi_desc *entry;
-
-	for_each_pci_msi_entry(entry, dev)
-		if (entry->irq)
-			for (i = 0; i < entry->nvec_used; i++)
-				arch_teardown_msi_irq(entry->irq + i);
-}
-#endif /* CONFIG_PCI_MSI_ARCH_FALLBACKS */
-
-/*
- * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
- * mask all MSI interrupts by clearing the MSI enable bit does not work
- * reliably as devices without an INTx disable bit will then generate a
- * level IRQ which will never be cleared.
- */
-static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
-{
-	/* Don't shift by >= width of type */
-	if (desc->pci.msi_attrib.multi_cap >= 5)
-		return 0xffffffff;
-	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
-}
-
-static noinline void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set)
-{
-	raw_spinlock_t *lock = &desc->dev->msi_lock;
-	unsigned long flags;
-
-	if (!desc->pci.msi_attrib.can_mask)
-		return;
-
-	raw_spin_lock_irqsave(lock, flags);
-	desc->pci.msi_mask &= ~clear;
-	desc->pci.msi_mask |= set;
-	pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->pci.mask_pos,
-			       desc->pci.msi_mask);
-	raw_spin_unlock_irqrestore(lock, flags);
-}
-
-static inline void pci_msi_mask(struct msi_desc *desc, u32 mask)
-{
-	pci_msi_update_mask(desc, 0, mask);
-}
-
-static inline void pci_msi_unmask(struct msi_desc *desc, u32 mask)
-{
-	pci_msi_update_mask(desc, mask, 0);
-}
-
-static inline void __iomem *pci_msix_desc_addr(struct msi_desc *desc)
-{
-	return desc->pci.mask_base + desc->pci.msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE;
-}
-
-/*
- * This internal function does not flush PCI writes to the device.  All
- * users must ensure that they read from the device before either assuming
- * that the device state is up to date, or returning out of this file.
- * It does not affect the msi_desc::msix_ctrl cache either. Use with care!
- */
-static void pci_msix_write_vector_ctrl(struct msi_desc *desc, u32 ctrl)
-{
-	void __iomem *desc_addr = pci_msix_desc_addr(desc);
-
-	if (desc->pci.msi_attrib.can_mask)
-		writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
-}
-
-static inline void pci_msix_mask(struct msi_desc *desc)
-{
-	desc->pci.msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
-	/* Flush write to device */
-	readl(desc->pci.mask_base);
-}
-
-static inline void pci_msix_unmask(struct msi_desc *desc)
-{
-	desc->pci.msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
-}
-
-static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
-{
-	if (desc->pci.msi_attrib.is_msix)
-		pci_msix_mask(desc);
-	else
-		pci_msi_mask(desc, mask);
-}
-
-static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
-{
-	if (desc->pci.msi_attrib.is_msix)
-		pci_msix_unmask(desc);
-	else
-		pci_msi_unmask(desc, mask);
-}
-
-/**
- * pci_msi_mask_irq - Generic IRQ chip callback to mask PCI/MSI interrupts
- * @data:	pointer to irqdata associated to that interrupt
- */
-void pci_msi_mask_irq(struct irq_data *data)
-{
-	struct msi_desc *desc = irq_data_get_msi_desc(data);
-
-	__pci_msi_mask_desc(desc, BIT(data->irq - desc->irq));
-}
-EXPORT_SYMBOL_GPL(pci_msi_mask_irq);
-
-/**
- * pci_msi_unmask_irq - Generic IRQ chip callback to unmask PCI/MSI interrupts
- * @data:	pointer to irqdata associated to that interrupt
- */
-void pci_msi_unmask_irq(struct irq_data *data)
-{
-	struct msi_desc *desc = irq_data_get_msi_desc(data);
-
-	__pci_msi_unmask_desc(desc, BIT(data->irq - desc->irq));
-}
-EXPORT_SYMBOL_GPL(pci_msi_unmask_irq);
-
-void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
-
-	BUG_ON(dev->current_state != PCI_D0);
-
-	if (entry->pci.msi_attrib.is_msix) {
-		void __iomem *base = pci_msix_desc_addr(entry);
-
-		if (WARN_ON_ONCE(entry->pci.msi_attrib.is_virtual))
-			return;
-
-		msg->address_lo = readl(base + PCI_MSIX_ENTRY_LOWER_ADDR);
-		msg->address_hi = readl(base + PCI_MSIX_ENTRY_UPPER_ADDR);
-		msg->data = readl(base + PCI_MSIX_ENTRY_DATA);
-	} else {
-		int pos = dev->msi_cap;
-		u16 data;
-
-		pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
-				      &msg->address_lo);
-		if (entry->pci.msi_attrib.is_64) {
-			pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
-					      &msg->address_hi);
-			pci_read_config_word(dev, pos + PCI_MSI_DATA_64, &data);
-		} else {
-			msg->address_hi = 0;
-			pci_read_config_word(dev, pos + PCI_MSI_DATA_32, &data);
-		}
-		msg->data = data;
-	}
-}
-
-void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
-
-	if (dev->current_state != PCI_D0 || pci_dev_is_disconnected(dev)) {
-		/* Don't touch the hardware now */
-	} else if (entry->pci.msi_attrib.is_msix) {
-		void __iomem *base = pci_msix_desc_addr(entry);
-		u32 ctrl = entry->pci.msix_ctrl;
-		bool unmasked = !(ctrl & PCI_MSIX_ENTRY_CTRL_MASKBIT);
-
-		if (entry->pci.msi_attrib.is_virtual)
-			goto skip;
-
-		/*
-		 * The specification mandates that the entry is masked
-		 * when the message is modified:
-		 *
-		 * "If software changes the Address or Data value of an
-		 * entry while the entry is unmasked, the result is
-		 * undefined."
-		 */
-		if (unmasked)
-			pci_msix_write_vector_ctrl(entry, ctrl | PCI_MSIX_ENTRY_CTRL_MASKBIT);
-
-		writel(msg->address_lo, base + PCI_MSIX_ENTRY_LOWER_ADDR);
-		writel(msg->address_hi, base + PCI_MSIX_ENTRY_UPPER_ADDR);
-		writel(msg->data, base + PCI_MSIX_ENTRY_DATA);
-
-		if (unmasked)
-			pci_msix_write_vector_ctrl(entry, ctrl);
-
-		/* Ensure that the writes are visible in the device */
-		readl(base + PCI_MSIX_ENTRY_DATA);
-	} else {
-		int pos = dev->msi_cap;
-		u16 msgctl;
-
-		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
-		msgctl &= ~PCI_MSI_FLAGS_QSIZE;
-		msgctl |= entry->pci.msi_attrib.multiple << 4;
-		pci_write_config_word(dev, pos + PCI_MSI_FLAGS, msgctl);
-
-		pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
-				       msg->address_lo);
-		if (entry->pci.msi_attrib.is_64) {
-			pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
-					       msg->address_hi);
-			pci_write_config_word(dev, pos + PCI_MSI_DATA_64,
-					      msg->data);
-		} else {
-			pci_write_config_word(dev, pos + PCI_MSI_DATA_32,
-					      msg->data);
-		}
-		/* Ensure that the writes are visible in the device */
-		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
-	}
-
-skip:
-	entry->msg = *msg;
-
-	if (entry->write_msi_msg)
-		entry->write_msi_msg(entry, entry->write_msi_msg_data);
-
-}
-
-void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg)
-{
-	struct msi_desc *entry = irq_get_msi_desc(irq);
-
-	__pci_write_msi_msg(entry, msg);
-}
-EXPORT_SYMBOL_GPL(pci_write_msi_msg);
-
-static void free_msi_irqs(struct pci_dev *dev)
-{
-	struct list_head *msi_list = dev_to_msi_list(&dev->dev);
-	struct msi_desc *entry, *tmp;
-	int i;
-
-	for_each_pci_msi_entry(entry, dev)
-		if (entry->irq)
-			for (i = 0; i < entry->nvec_used; i++)
-				BUG_ON(irq_has_action(entry->irq + i));
-
-	if (dev->msi_irq_groups) {
-		msi_destroy_sysfs(&dev->dev, dev->msi_irq_groups);
-		dev->msi_irq_groups = NULL;
-	}
-
-	pci_msi_teardown_msi_irqs(dev);
-
-	list_for_each_entry_safe(entry, tmp, msi_list, list) {
-		if (entry->pci.msi_attrib.is_msix) {
-			if (list_is_last(&entry->list, msi_list))
-				iounmap(entry->pci.mask_base);
-		}
-
-		list_del(&entry->list);
-		free_msi_entry(entry);
-	}
-}
-
-static void pci_intx_for_msi(struct pci_dev *dev, int enable)
-{
-	if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
-		pci_intx(dev, enable);
-}
-
-static void pci_msi_set_enable(struct pci_dev *dev, int enable)
-{
-	u16 control;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
-	control &= ~PCI_MSI_FLAGS_ENABLE;
-	if (enable)
-		control |= PCI_MSI_FLAGS_ENABLE;
-	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
-}
-
-/*
- * Architecture override returns true when the PCI MSI message should be
- * written by the generic restore function.
- */
-bool __weak arch_restore_msi_irqs(struct pci_dev *dev)
-{
-	return true;
-}
-
-static void __pci_restore_msi_state(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-	u16 control;
-
-	if (!dev->msi_enabled)
-		return;
-
-	entry = irq_get_msi_desc(dev->irq);
-
-	pci_intx_for_msi(dev, 0);
-	pci_msi_set_enable(dev, 0);
-	if (arch_restore_msi_irqs(dev))
-		__pci_write_msi_msg(entry, &entry->msg);
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
-	pci_msi_update_mask(entry, 0, 0);
-	control &= ~PCI_MSI_FLAGS_QSIZE;
-	control |= (entry->pci.msi_attrib.multiple << 4) | PCI_MSI_FLAGS_ENABLE;
-	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
-}
-
-static void pci_msix_clear_and_set_ctrl(struct pci_dev *dev, u16 clear, u16 set)
-{
-	u16 ctrl;
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
-	ctrl &= ~clear;
-	ctrl |= set;
-	pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, ctrl);
-}
-
-static void __pci_restore_msix_state(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-	bool write_msg;
-
-	if (!dev->msix_enabled)
-		return;
-	BUG_ON(list_empty(dev_to_msi_list(&dev->dev)));
-
-	/* route the table */
-	pci_intx_for_msi(dev, 0);
-	pci_msix_clear_and_set_ctrl(dev, 0,
-				PCI_MSIX_FLAGS_ENABLE | PCI_MSIX_FLAGS_MASKALL);
-
-	write_msg = arch_restore_msi_irqs(dev);
-
-	for_each_pci_msi_entry(entry, dev) {
-		if (write_msg)
-			__pci_write_msi_msg(entry, &entry->msg);
-		pci_msix_write_vector_ctrl(entry, entry->pci.msix_ctrl);
-	}
-
-	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
-}
-
-void pci_restore_msi_state(struct pci_dev *dev)
-{
-	__pci_restore_msi_state(dev);
-	__pci_restore_msix_state(dev);
-}
-EXPORT_SYMBOL_GPL(pci_restore_msi_state);
-
-static struct msi_desc *
-msi_setup_entry(struct pci_dev *dev, int nvec, struct irq_affinity *affd)
-{
-	struct irq_affinity_desc *masks = NULL;
-	struct msi_desc *entry;
-	u16 control;
-
-	if (affd)
-		masks = irq_create_affinity_masks(nvec, affd);
-
-	/* MSI Entry Initialization */
-	entry = alloc_msi_entry(&dev->dev, nvec, masks);
-	if (!entry)
-		goto out;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
-	/* Lies, damned lies, and MSIs */
-	if (dev->dev_flags & PCI_DEV_FLAGS_HAS_MSI_MASKING)
-		control |= PCI_MSI_FLAGS_MASKBIT;
-
-	entry->pci.msi_attrib.is_msix	= 0;
-	entry->pci.msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
-	entry->pci.msi_attrib.is_virtual    = 0;
-	entry->pci.msi_attrib.entry_nr	= 0;
-	entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
-					  !!(control & PCI_MSI_FLAGS_MASKBIT);
-	entry->pci.msi_attrib.default_irq	= dev->irq;	/* Save IOAPIC IRQ */
-	entry->pci.msi_attrib.multi_cap	= (control & PCI_MSI_FLAGS_QMASK) >> 1;
-	entry->pci.msi_attrib.multiple	= ilog2(__roundup_pow_of_two(nvec));
-
-	if (control & PCI_MSI_FLAGS_64BIT)
-		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_64;
-	else
-		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
-
-	/* Save the initial mask status */
-	if (entry->pci.msi_attrib.can_mask)
-		pci_read_config_dword(dev, entry->pci.mask_pos, &entry->pci.msi_mask);
-
-out:
-	kfree(masks);
-	return entry;
-}
-
-static int msi_verify_entries(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-
-	if (!dev->no_64bit_msi)
-		return 0;
-
-	for_each_pci_msi_entry(entry, dev) {
-		if (entry->msg.address_hi) {
-			pci_err(dev, "arch assigned 64-bit MSI address %#x%08x but device only supports 32 bits\n",
-				entry->msg.address_hi, entry->msg.address_lo);
-			return -EIO;
-		}
-	}
-	return 0;
-}
-
-/**
- * msi_capability_init - configure device's MSI capability structure
- * @dev: pointer to the pci_dev data structure of MSI device function
- * @nvec: number of interrupts to allocate
- * @affd: description of automatic IRQ affinity assignments (may be %NULL)
- *
- * Setup the MSI capability structure of the device with the requested
- * number of interrupts.  A return value of zero indicates the successful
- * setup of an entry with the new MSI IRQ.  A negative return value indicates
- * an error, and a positive return value indicates the number of interrupts
- * which could have been allocated.
- */
-static int msi_capability_init(struct pci_dev *dev, int nvec,
-			       struct irq_affinity *affd)
-{
-	const struct attribute_group **groups;
-	struct msi_desc *entry;
-	int ret;
-
-	pci_msi_set_enable(dev, 0);	/* Disable MSI during set up */
-
-	entry = msi_setup_entry(dev, nvec, affd);
-	if (!entry)
-		return -ENOMEM;
-
-	/* All MSIs are unmasked by default; mask them all */
-	pci_msi_mask(entry, msi_multi_mask(entry));
-
-	list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
-
-	/* Configure MSI capability structure */
-	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSI);
-	if (ret)
-		goto err;
-
-	ret = msi_verify_entries(dev);
-	if (ret)
-		goto err;
-
-	groups = msi_populate_sysfs(&dev->dev);
-	if (IS_ERR(groups)) {
-		ret = PTR_ERR(groups);
-		goto err;
-	}
-
-	dev->msi_irq_groups = groups;
-
-	/* Set MSI enabled bits	*/
-	pci_intx_for_msi(dev, 0);
-	pci_msi_set_enable(dev, 1);
-	dev->msi_enabled = 1;
-
-	pcibios_free_irq(dev);
-	dev->irq = entry->irq;
-	return 0;
-
-err:
-	pci_msi_unmask(entry, msi_multi_mask(entry));
-	free_msi_irqs(dev);
-	return ret;
-}
-
-static void __iomem *msix_map_region(struct pci_dev *dev,
-				     unsigned int nr_entries)
-{
-	resource_size_t phys_addr;
-	u32 table_offset;
-	unsigned long flags;
-	u8 bir;
-
-	pci_read_config_dword(dev, dev->msix_cap + PCI_MSIX_TABLE,
-			      &table_offset);
-	bir = (u8)(table_offset & PCI_MSIX_TABLE_BIR);
-	flags = pci_resource_flags(dev, bir);
-	if (!flags || (flags & IORESOURCE_UNSET))
-		return NULL;
-
-	table_offset &= PCI_MSIX_TABLE_OFFSET;
-	phys_addr = pci_resource_start(dev, bir) + table_offset;
-
-	return ioremap(phys_addr, nr_entries * PCI_MSIX_ENTRY_SIZE);
-}
-
-static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
-			      struct msix_entry *entries, int nvec,
-			      struct irq_affinity *affd)
-{
-	struct irq_affinity_desc *curmsk, *masks = NULL;
-	struct msi_desc *entry;
-	void __iomem *addr;
-	int ret, i;
-	int vec_count = pci_msix_vec_count(dev);
-
-	if (affd)
-		masks = irq_create_affinity_masks(nvec, affd);
-
-	for (i = 0, curmsk = masks; i < nvec; i++) {
-		entry = alloc_msi_entry(&dev->dev, 1, curmsk);
-		if (!entry) {
-			if (!i)
-				iounmap(base);
-			else
-				free_msi_irqs(dev);
-			/* No enough memory. Don't try again */
-			ret = -ENOMEM;
-			goto out;
-		}
-
-		entry->pci.msi_attrib.is_msix	= 1;
-		entry->pci.msi_attrib.is_64	= 1;
-
-		if (entries)
-			entry->pci.msi_attrib.entry_nr = entries[i].entry;
-		else
-			entry->pci.msi_attrib.entry_nr = i;
-
-		entry->pci.msi_attrib.is_virtual =
-			entry->pci.msi_attrib.entry_nr >= vec_count;
-
-		entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
-						  !entry->pci.msi_attrib.is_virtual;
-
-		entry->pci.msi_attrib.default_irq	= dev->irq;
-		entry->pci.mask_base			= base;
-
-		if (entry->pci.msi_attrib.can_mask) {
-			addr = pci_msix_desc_addr(entry);
-			entry->pci.msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
-		}
-
-		list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
-		if (masks)
-			curmsk++;
-	}
-	ret = 0;
-out:
-	kfree(masks);
-	return ret;
-}
-
-static void msix_update_entries(struct pci_dev *dev, struct msix_entry *entries)
-{
-	struct msi_desc *entry;
-
-	if (entries) {
-		for_each_pci_msi_entry(entry, dev) {
-			entries->vector = entry->irq;
-			entries++;
-		}
-	}
-}
-
-static void msix_mask_all(void __iomem *base, int tsize)
-{
-	u32 ctrl = PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	int i;
-
-	if (pci_msi_ignore_mask)
-		return;
-
-	for (i = 0; i < tsize; i++, base += PCI_MSIX_ENTRY_SIZE)
-		writel(ctrl, base + PCI_MSIX_ENTRY_VECTOR_CTRL);
-}
-
-/**
- * msix_capability_init - configure device's MSI-X capability
- * @dev: pointer to the pci_dev data structure of MSI-X device function
- * @entries: pointer to an array of struct msix_entry entries
- * @nvec: number of @entries
- * @affd: Optional pointer to enable automatic affinity assignment
- *
- * Setup the MSI-X capability structure of device function with a
- * single MSI-X IRQ. A return of zero indicates the successful setup of
- * requested MSI-X entries with allocated IRQs or non-zero for otherwise.
- **/
-static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries,
-				int nvec, struct irq_affinity *affd)
-{
-	const struct attribute_group **groups;
-	void __iomem *base;
-	int ret, tsize;
-	u16 control;
-
-	/*
-	 * Some devices require MSI-X to be enabled before the MSI-X
-	 * registers can be accessed.  Mask all the vectors to prevent
-	 * interrupts coming in before they're fully set up.
-	 */
-	pci_msix_clear_and_set_ctrl(dev, 0, PCI_MSIX_FLAGS_MASKALL |
-				    PCI_MSIX_FLAGS_ENABLE);
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control);
-	/* Request & Map MSI-X table region */
-	tsize = msix_table_size(control);
-	base = msix_map_region(dev, tsize);
-	if (!base) {
-		ret = -ENOMEM;
-		goto out_disable;
-	}
-
-	/* Ensure that all table entries are masked. */
-	msix_mask_all(base, tsize);
-
-	ret = msix_setup_entries(dev, base, entries, nvec, affd);
-	if (ret)
-		goto out_disable;
-
-	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
-	if (ret)
-		goto out_avail;
-
-	/* Check if all MSI entries honor device restrictions */
-	ret = msi_verify_entries(dev);
-	if (ret)
-		goto out_free;
-
-	msix_update_entries(dev, entries);
-
-	groups = msi_populate_sysfs(&dev->dev);
-	if (IS_ERR(groups)) {
-		ret = PTR_ERR(groups);
-		goto out_free;
-	}
-
-	dev->msi_irq_groups = groups;
-
-	/* Set MSI-X enabled bits and unmask the function */
-	pci_intx_for_msi(dev, 0);
-	dev->msix_enabled = 1;
-	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
-
-	pcibios_free_irq(dev);
-	return 0;
-
-out_avail:
-	if (ret < 0) {
-		/*
-		 * If we had some success, report the number of IRQs
-		 * we succeeded in setting up.
-		 */
-		struct msi_desc *entry;
-		int avail = 0;
-
-		for_each_pci_msi_entry(entry, dev) {
-			if (entry->irq != 0)
-				avail++;
-		}
-		if (avail != 0)
-			ret = avail;
-	}
-
-out_free:
-	free_msi_irqs(dev);
-
-out_disable:
-	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0);
-
-	return ret;
-}
-
-/**
- * pci_msi_supported - check whether MSI may be enabled on a device
- * @dev: pointer to the pci_dev data structure of MSI device function
- * @nvec: how many MSIs have been requested?
- *
- * Look at global flags, the device itself, and its parent buses
- * to determine if MSI/-X are supported for the device. If MSI/-X is
- * supported return 1, else return 0.
- **/
-static int pci_msi_supported(struct pci_dev *dev, int nvec)
-{
-	struct pci_bus *bus;
-
-	/* MSI must be globally enabled and supported by the device */
-	if (!pci_msi_enable)
-		return 0;
-
-	if (!dev || dev->no_msi)
-		return 0;
-
-	/*
-	 * You can't ask to have 0 or less MSIs configured.
-	 *  a) it's stupid ..
-	 *  b) the list manipulation code assumes nvec >= 1.
-	 */
-	if (nvec < 1)
-		return 0;
-
-	/*
-	 * Any bridge which does NOT route MSI transactions from its
-	 * secondary bus to its primary bus must set NO_MSI flag on
-	 * the secondary pci_bus.
-	 *
-	 * The NO_MSI flag can either be set directly by:
-	 * - arch-specific PCI host bus controller drivers (deprecated)
-	 * - quirks for specific PCI bridges
-	 *
-	 * or indirectly by platform-specific PCI host bridge drivers by
-	 * advertising the 'msi_domain' property, which results in
-	 * the NO_MSI flag when no MSI domain is found for this bridge
-	 * at probe time.
-	 */
-	for (bus = dev->bus; bus; bus = bus->parent)
-		if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
-			return 0;
-
-	return 1;
-}
-
-/**
- * pci_msi_vec_count - Return the number of MSI vectors a device can send
- * @dev: device to report about
- *
- * This function returns the number of MSI vectors a device requested via
- * Multiple Message Capable register. It returns a negative errno if the
- * device is not capable sending MSI interrupts. Otherwise, the call succeeds
- * and returns a power of two, up to a maximum of 2^5 (32), according to the
- * MSI specification.
- **/
-int pci_msi_vec_count(struct pci_dev *dev)
-{
-	int ret;
-	u16 msgctl;
-
-	if (!dev->msi_cap)
-		return -EINVAL;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &msgctl);
-	ret = 1 << ((msgctl & PCI_MSI_FLAGS_QMASK) >> 1);
-
-	return ret;
-}
-EXPORT_SYMBOL(pci_msi_vec_count);
-
-static void pci_msi_shutdown(struct pci_dev *dev)
-{
-	struct msi_desc *desc;
-
-	if (!pci_msi_enable || !dev || !dev->msi_enabled)
-		return;
-
-	BUG_ON(list_empty(dev_to_msi_list(&dev->dev)));
-	desc = first_pci_msi_entry(dev);
-
-	pci_msi_set_enable(dev, 0);
-	pci_intx_for_msi(dev, 1);
-	dev->msi_enabled = 0;
-
-	/* Return the device with MSI unmasked as initial states */
-	pci_msi_unmask(desc, msi_multi_mask(desc));
-
-	/* Restore dev->irq to its default pin-assertion IRQ */
-	dev->irq = desc->pci.msi_attrib.default_irq;
-	pcibios_alloc_irq(dev);
-}
-
-void pci_disable_msi(struct pci_dev *dev)
-{
-	if (!pci_msi_enable || !dev || !dev->msi_enabled)
-		return;
-
-	pci_msi_shutdown(dev);
-	free_msi_irqs(dev);
-}
-EXPORT_SYMBOL(pci_disable_msi);
-
-/**
- * pci_msix_vec_count - return the number of device's MSI-X table entries
- * @dev: pointer to the pci_dev data structure of MSI-X device function
- * This function returns the number of device's MSI-X table entries and
- * therefore the number of MSI-X vectors device is capable of sending.
- * It returns a negative errno if the device is not capable of sending MSI-X
- * interrupts.
- **/
-int pci_msix_vec_count(struct pci_dev *dev)
-{
-	u16 control;
-
-	if (!dev->msix_cap)
-		return -EINVAL;
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control);
-	return msix_table_size(control);
-}
-EXPORT_SYMBOL(pci_msix_vec_count);
-
-static int __pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries,
-			     int nvec, struct irq_affinity *affd, int flags)
-{
-	int nr_entries;
-	int i, j;
-
-	if (!pci_msi_supported(dev, nvec) || dev->current_state != PCI_D0)
-		return -EINVAL;
-
-	nr_entries = pci_msix_vec_count(dev);
-	if (nr_entries < 0)
-		return nr_entries;
-	if (nvec > nr_entries && !(flags & PCI_IRQ_VIRTUAL))
-		return nr_entries;
-
-	if (entries) {
-		/* Check for any invalid entries */
-		for (i = 0; i < nvec; i++) {
-			if (entries[i].entry >= nr_entries)
-				return -EINVAL;		/* invalid entry */
-			for (j = i + 1; j < nvec; j++) {
-				if (entries[i].entry == entries[j].entry)
-					return -EINVAL;	/* duplicate entry */
-			}
-		}
-	}
-
-	/* Check whether driver already requested for MSI IRQ */
-	if (dev->msi_enabled) {
-		pci_info(dev, "can't enable MSI-X (MSI IRQ already assigned)\n");
-		return -EINVAL;
-	}
-	return msix_capability_init(dev, entries, nvec, affd);
-}
-
-static void pci_msix_shutdown(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-
-	if (!pci_msi_enable || !dev || !dev->msix_enabled)
-		return;
-
-	if (pci_dev_is_disconnected(dev)) {
-		dev->msix_enabled = 0;
-		return;
-	}
-
-	/* Return the device with MSI-X masked as initial states */
-	for_each_pci_msi_entry(entry, dev)
-		pci_msix_mask(entry);
-
-	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0);
-	pci_intx_for_msi(dev, 1);
-	dev->msix_enabled = 0;
-	pcibios_alloc_irq(dev);
-}
-
-void pci_disable_msix(struct pci_dev *dev)
-{
-	if (!pci_msi_enable || !dev || !dev->msix_enabled)
-		return;
-
-	pci_msix_shutdown(dev);
-	free_msi_irqs(dev);
-}
-EXPORT_SYMBOL(pci_disable_msix);
-
-void pci_no_msi(void)
-{
-	pci_msi_enable = 0;
-}
-
-/**
- * pci_msi_enabled - is MSI enabled?
- *
- * Returns true if MSI has not been disabled by the command-line option
- * pci=nomsi.
- **/
-int pci_msi_enabled(void)
-{
-	return pci_msi_enable;
-}
-EXPORT_SYMBOL(pci_msi_enabled);
-
-static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
-				  struct irq_affinity *affd)
-{
-	int nvec;
-	int rc;
-
-	if (!pci_msi_supported(dev, minvec) || dev->current_state != PCI_D0)
-		return -EINVAL;
-
-	/* Check whether driver already requested MSI-X IRQs */
-	if (dev->msix_enabled) {
-		pci_info(dev, "can't enable MSI (MSI-X already enabled)\n");
-		return -EINVAL;
-	}
-
-	if (maxvec < minvec)
-		return -ERANGE;
-
-	if (WARN_ON_ONCE(dev->msi_enabled))
-		return -EINVAL;
-
-	nvec = pci_msi_vec_count(dev);
-	if (nvec < 0)
-		return nvec;
-	if (nvec < minvec)
-		return -ENOSPC;
-
-	if (nvec > maxvec)
-		nvec = maxvec;
-
-	for (;;) {
-		if (affd) {
-			nvec = irq_calc_affinity_vectors(minvec, nvec, affd);
-			if (nvec < minvec)
-				return -ENOSPC;
-		}
-
-		rc = msi_capability_init(dev, nvec, affd);
-		if (rc == 0)
-			return nvec;
-
-		if (rc < 0)
-			return rc;
-		if (rc < minvec)
-			return -ENOSPC;
-
-		nvec = rc;
-	}
-}
-
-/* deprecated, don't use */
-int pci_enable_msi(struct pci_dev *dev)
-{
-	int rc = __pci_enable_msi_range(dev, 1, 1, NULL);
-	if (rc < 0)
-		return rc;
-	return 0;
-}
-EXPORT_SYMBOL(pci_enable_msi);
-
-static int __pci_enable_msix_range(struct pci_dev *dev,
-				   struct msix_entry *entries, int minvec,
-				   int maxvec, struct irq_affinity *affd,
-				   int flags)
-{
-	int rc, nvec = maxvec;
-
-	if (maxvec < minvec)
-		return -ERANGE;
-
-	if (WARN_ON_ONCE(dev->msix_enabled))
-		return -EINVAL;
-
-	for (;;) {
-		if (affd) {
-			nvec = irq_calc_affinity_vectors(minvec, nvec, affd);
-			if (nvec < minvec)
-				return -ENOSPC;
-		}
-
-		rc = __pci_enable_msix(dev, entries, nvec, affd, flags);
-		if (rc == 0)
-			return nvec;
-
-		if (rc < 0)
-			return rc;
-		if (rc < minvec)
-			return -ENOSPC;
-
-		nvec = rc;
-	}
-}
-
-/**
- * pci_enable_msix_range - configure device's MSI-X capability structure
- * @dev: pointer to the pci_dev data structure of MSI-X device function
- * @entries: pointer to an array of MSI-X entries
- * @minvec: minimum number of MSI-X IRQs requested
- * @maxvec: maximum number of MSI-X IRQs requested
- *
- * Setup the MSI-X capability structure of device function with a maximum
- * possible number of interrupts in the range between @minvec and @maxvec
- * upon its software driver call to request for MSI-X mode enabled on its
- * hardware device function. It returns a negative errno if an error occurs.
- * If it succeeds, it returns the actual number of interrupts allocated and
- * indicates the successful configuration of MSI-X capability structure
- * with new allocated MSI-X interrupts.
- **/
-int pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries,
-		int minvec, int maxvec)
-{
-	return __pci_enable_msix_range(dev, entries, minvec, maxvec, NULL, 0);
-}
-EXPORT_SYMBOL(pci_enable_msix_range);
-
-/**
- * pci_alloc_irq_vectors_affinity - allocate multiple IRQs for a device
- * @dev:		PCI device to operate on
- * @min_vecs:		minimum number of vectors required (must be >= 1)
- * @max_vecs:		maximum (desired) number of vectors
- * @flags:		flags or quirks for the allocation
- * @affd:		optional description of the affinity requirements
- *
- * Allocate up to @max_vecs interrupt vectors for @dev, using MSI-X or MSI
- * vectors if available, and fall back to a single legacy vector
- * if neither is available.  Return the number of vectors allocated,
- * (which might be smaller than @max_vecs) if successful, or a negative
- * error code on error. If less than @min_vecs interrupt vectors are
- * available for @dev the function will fail with -ENOSPC.
- *
- * To get the Linux IRQ number used for a vector that can be passed to
- * request_irq() use the pci_irq_vector() helper.
- */
-int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs,
-				   unsigned int max_vecs, unsigned int flags,
-				   struct irq_affinity *affd)
-{
-	struct irq_affinity msi_default_affd = {0};
-	int nvecs = -ENOSPC;
-
-	if (flags & PCI_IRQ_AFFINITY) {
-		if (!affd)
-			affd = &msi_default_affd;
-	} else {
-		if (WARN_ON(affd))
-			affd = NULL;
-	}
-
-	if (flags & PCI_IRQ_MSIX) {
-		nvecs = __pci_enable_msix_range(dev, NULL, min_vecs, max_vecs,
-						affd, flags);
-		if (nvecs > 0)
-			return nvecs;
-	}
-
-	if (flags & PCI_IRQ_MSI) {
-		nvecs = __pci_enable_msi_range(dev, min_vecs, max_vecs, affd);
-		if (nvecs > 0)
-			return nvecs;
-	}
-
-	/* use legacy IRQ if allowed */
-	if (flags & PCI_IRQ_LEGACY) {
-		if (min_vecs == 1 && dev->irq) {
-			/*
-			 * Invoke the affinity spreading logic to ensure that
-			 * the device driver can adjust queue configuration
-			 * for the single interrupt case.
-			 */
-			if (affd)
-				irq_create_affinity_masks(1, affd);
-			pci_intx(dev, 1);
-			return 1;
-		}
-	}
-
-	return nvecs;
-}
-EXPORT_SYMBOL(pci_alloc_irq_vectors_affinity);
-
-/**
- * pci_free_irq_vectors - free previously allocated IRQs for a device
- * @dev:		PCI device to operate on
- *
- * Undoes the allocations and enabling in pci_alloc_irq_vectors().
- */
-void pci_free_irq_vectors(struct pci_dev *dev)
-{
-	pci_disable_msix(dev);
-	pci_disable_msi(dev);
-}
-EXPORT_SYMBOL(pci_free_irq_vectors);
-
-/**
- * pci_irq_vector - return Linux IRQ number of a device vector
- * @dev:	PCI device to operate on
- * @nr:		Interrupt vector index (0-based)
- *
- * @nr has the following meanings depending on the interrupt mode:
- *   MSI-X:	The index in the MSI-X vector table
- *   MSI:	The index of the enabled MSI vectors
- *   INTx:	Must be 0
- *
- * Return: The Linux interrupt number or -EINVAl if @nr is out of range.
- */
-int pci_irq_vector(struct pci_dev *dev, unsigned int nr)
-{
-	if (dev->msix_enabled) {
-		struct msi_desc *entry;
-
-		for_each_pci_msi_entry(entry, dev) {
-			if (entry->pci.msi_attrib.entry_nr == nr)
-				return entry->irq;
-		}
-		WARN_ON_ONCE(1);
-		return -EINVAL;
-	}
-
-	if (dev->msi_enabled) {
-		struct msi_desc *entry = first_pci_msi_entry(dev);
-
-		if (WARN_ON_ONCE(nr >= entry->nvec_used))
-			return -EINVAL;
-	} else {
-		if (WARN_ON_ONCE(nr > 0))
-			return -EINVAL;
-	}
-
-	return dev->irq + nr;
-}
-EXPORT_SYMBOL(pci_irq_vector);
-
-/**
- * pci_irq_get_affinity - return the affinity of a particular MSI vector
- * @dev:	PCI device to operate on
- * @nr:		device-relative interrupt vector index (0-based).
- *
- * @nr has the following meanings depending on the interrupt mode:
- *   MSI-X:	The index in the MSI-X vector table
- *   MSI:	The index of the enabled MSI vectors
- *   INTx:	Must be 0
- *
- * Return: A cpumask pointer or NULL if @nr is out of range
- */
-const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
-{
-	if (dev->msix_enabled) {
-		struct msi_desc *entry;
-
-		for_each_pci_msi_entry(entry, dev) {
-			if (entry->pci.msi_attrib.entry_nr == nr)
-				return &entry->affinity->mask;
-		}
-		WARN_ON_ONCE(1);
-		return NULL;
-	} else if (dev->msi_enabled) {
-		struct msi_desc *entry = first_pci_msi_entry(dev);
-
-		if (WARN_ON_ONCE(!entry || !entry->affinity ||
-				 nr >= entry->nvec_used))
-			return NULL;
-
-		return &entry->affinity[nr].mask;
-	} else {
-		return cpu_possible_mask;
-	}
-}
-EXPORT_SYMBOL(pci_irq_get_affinity);
-
-struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc)
-{
-	return to_pci_dev(desc->dev);
-}
-EXPORT_SYMBOL(msi_desc_to_pci_dev);
-
-#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-/**
- * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
- * @irq_data:	Pointer to interrupt data of the MSI interrupt
- * @msg:	Pointer to the message
- */
-static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
-{
-	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
-
-	/*
-	 * For MSI-X desc->irq is always equal to irq_data->irq. For
-	 * MSI only the first interrupt of MULTI MSI passes the test.
-	 */
-	if (desc->irq == irq_data->irq)
-		__pci_write_msi_msg(desc, msg);
-}
-
-/**
- * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
- * @desc:	Pointer to the MSI descriptor
- *
- * The ID number is only used within the irqdomain.
- */
-static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
-
-	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
-		pci_dev_id(dev) << 11 |
-		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
-}
-
-static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
-{
-	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
-}
-
-/**
- * pci_msi_domain_check_cap - Verify that @domain supports the capabilities
- * 			      for @dev
- * @domain:	The interrupt domain to check
- * @info:	The domain info for verification
- * @dev:	The device to check
- *
- * Returns:
- *  0 if the functionality is supported
- *  1 if Multi MSI is requested, but the domain does not support it
- *  -ENOTSUPP otherwise
- */
-int pci_msi_domain_check_cap(struct irq_domain *domain,
-			     struct msi_domain_info *info, struct device *dev)
-{
-	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
-
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) &&
-	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
-		return 1;
-	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
-		return -ENOTSUPP;
-
-	return 0;
-}
-
-static int pci_msi_domain_handle_error(struct irq_domain *domain,
-				       struct msi_desc *desc, int error)
-{
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
-		return 1;
-
-	return error;
-}
-
-static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
-				    struct msi_desc *desc)
-{
-	arg->desc = desc;
-	arg->hwirq = pci_msi_domain_calc_hwirq(desc);
-}
-
-static struct msi_domain_ops pci_msi_domain_ops_default = {
-	.set_desc	= pci_msi_domain_set_desc,
-	.msi_check	= pci_msi_domain_check_cap,
-	.handle_error	= pci_msi_domain_handle_error,
-};
-
-static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
-{
-	struct msi_domain_ops *ops = info->ops;
-
-	if (ops == NULL) {
-		info->ops = &pci_msi_domain_ops_default;
-	} else {
-		if (ops->set_desc == NULL)
-			ops->set_desc = pci_msi_domain_set_desc;
-		if (ops->msi_check == NULL)
-			ops->msi_check = pci_msi_domain_check_cap;
-		if (ops->handle_error == NULL)
-			ops->handle_error = pci_msi_domain_handle_error;
-	}
-}
-
-static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
-{
-	struct irq_chip *chip = info->chip;
-
-	BUG_ON(!chip);
-	if (!chip->irq_write_msi_msg)
-		chip->irq_write_msi_msg = pci_msi_domain_write_msg;
-	if (!chip->irq_mask)
-		chip->irq_mask = pci_msi_mask_irq;
-	if (!chip->irq_unmask)
-		chip->irq_unmask = pci_msi_unmask_irq;
-}
-
-/**
- * pci_msi_create_irq_domain - Create a MSI interrupt domain
- * @fwnode:	Optional fwnode of the interrupt controller
- * @info:	MSI domain info
- * @parent:	Parent irq domain
- *
- * Updates the domain and chip ops and creates a MSI interrupt domain.
- *
- * Returns:
- * A domain pointer or NULL in case of failure.
- */
-struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
-					     struct msi_domain_info *info,
-					     struct irq_domain *parent)
-{
-	struct irq_domain *domain;
-
-	if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE))
-		info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
-
-	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
-		pci_msi_domain_update_dom_ops(info);
-	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
-		pci_msi_domain_update_chip_ops(info);
-
-	info->flags |= MSI_FLAG_ACTIVATE_EARLY;
-	if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
-		info->flags |= MSI_FLAG_MUST_REACTIVATE;
-
-	/* PCI-MSI is oneshot-safe */
-	info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
-
-	domain = msi_create_irq_domain(fwnode, info, parent);
-	if (!domain)
-		return NULL;
-
-	irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI);
-	return domain;
-}
-EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
-
-/*
- * Users of the generic MSI infrastructure expect a device to have a single ID,
- * so with DMA aliases we have to pick the least-worst compromise. Devices with
- * DMA phantom functions tend to still emit MSIs from the real function number,
- * so we ignore those and only consider topological aliases where either the
- * alias device or RID appears on a different bus number. We also make the
- * reasonable assumption that bridges are walked in an upstream direction (so
- * the last one seen wins), and the much braver assumption that the most likely
- * case is that of PCI->PCIe so we should always use the alias RID. This echoes
- * the logic from intel_irq_remapping's set_msi_sid(), which presumably works
- * well enough in practice; in the face of the horrible PCIe<->PCI-X conditions
- * for taking ownership all we can really do is close our eyes and hope...
- */
-static int get_msi_id_cb(struct pci_dev *pdev, u16 alias, void *data)
-{
-	u32 *pa = data;
-	u8 bus = PCI_BUS_NUM(*pa);
-
-	if (pdev->bus->number != bus || PCI_BUS_NUM(alias) != bus)
-		*pa = alias;
-
-	return 0;
-}
-
-/**
- * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
- * @domain:	The interrupt domain
- * @pdev:	The PCI device.
- *
- * The RID for a device is formed from the alias, with a firmware
- * supplied mapping applied
- *
- * Returns: The RID.
- */
-u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
-{
-	struct device_node *of_node;
-	u32 rid = pci_dev_id(pdev);
-
-	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
-
-	of_node = irq_domain_get_of_node(domain);
-	rid = of_node ? of_msi_map_id(&pdev->dev, of_node, rid) :
-			iort_msi_map_id(&pdev->dev, rid);
-
-	return rid;
-}
-
-/**
- * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
- * @pdev:	The PCI device
- *
- * Use the firmware data to find a device-specific MSI domain
- * (i.e. not one that is set as a default).
- *
- * Returns: The corresponding MSI domain or NULL if none has been found.
- */
-struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
-{
-	struct irq_domain *dom;
-	u32 rid = pci_dev_id(pdev);
-
-	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
-	dom = of_msi_map_get_device_domain(&pdev->dev, rid, DOMAIN_BUS_PCI_MSI);
-	if (!dom)
-		dom = iort_get_device_domain(&pdev->dev, rid,
-					     DOMAIN_BUS_PCI_MSI);
-	return dom;
-}
-
-/**
- * pci_dev_has_special_msi_domain - Check whether the device is handled by
- *				    a non-standard PCI-MSI domain
- * @pdev:	The PCI device to check.
- *
- * Returns: True if the device irqdomain or the bus irqdomain is
- * non-standard PCI/MSI.
- */
-bool pci_dev_has_special_msi_domain(struct pci_dev *pdev)
-{
-	struct irq_domain *dom = dev_get_msi_domain(&pdev->dev);
-
-	if (!dom)
-		dom = dev_get_msi_domain(&pdev->bus->dev);
-
-	if (!dom)
-		return true;
-
-	return dom->bus_token != DOMAIN_BUS_PCI_MSI;
-}
-
-#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
-#endif /* CONFIG_PCI_MSI */
-
-void pci_msi_init(struct pci_dev *dev)
-{
-	u16 ctrl;
-
-	/*
-	 * Disable the MSI hardware to avoid screaming interrupts
-	 * during boot.  This is the power on reset default so
-	 * usually this should be a noop.
-	 */
-	dev->msi_cap = pci_find_capability(dev, PCI_CAP_ID_MSI);
-	if (!dev->msi_cap)
-		return;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &ctrl);
-	if (ctrl & PCI_MSI_FLAGS_ENABLE)
-		pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS,
-				      ctrl & ~PCI_MSI_FLAGS_ENABLE);
-
-	if (!(ctrl & PCI_MSI_FLAGS_64BIT))
-		dev->no_64bit_msi = 1;
-}
-
-void pci_msix_init(struct pci_dev *dev)
-{
-	u16 ctrl;
-
-	dev->msix_cap = pci_find_capability(dev, PCI_CAP_ID_MSIX);
-	if (!dev->msix_cap)
-		return;
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
-	if (ctrl & PCI_MSIX_FLAGS_ENABLE)
-		pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS,
-				      ctrl & ~PCI_MSIX_FLAGS_ENABLE);
-}
--- /dev/null
+++ b/drivers/pci/msi/Makefile
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for the PCI/MSI
+obj-$(CONFIG_PCI)		+= msi.o
--- /dev/null
+++ b/drivers/pci/msi/msi.c
@@ -0,0 +1,1532 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * PCI Message Signaled Interrupt (MSI)
+ *
+ * Copyright (C) 2003-2004 Intel
+ * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
+ * Copyright (C) 2016 Christoph Hellwig.
+ */
+
+#include <linux/acpi_iort.h>
+#include <linux/err.h>
+#include <linux/export.h>
+#include <linux/irq.h>
+#include <linux/irqdomain.h>
+#include <linux/msi.h>
+#include <linux/of_irq.h>
+#include <linux/pci.h>
+
+#include "../pci.h"
+
+#ifdef CONFIG_PCI_MSI
+
+static int pci_msi_enable = 1;
+int pci_msi_ignore_mask;
+
+#define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
+
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
+static int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	struct irq_domain *domain;
+
+	domain = dev_get_msi_domain(&dev->dev);
+	if (domain && irq_domain_is_hierarchy(domain))
+		return msi_domain_alloc_irqs(domain, &dev->dev, nvec);
+
+	return arch_setup_msi_irqs(dev, nvec, type);
+}
+
+static void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
+{
+	struct irq_domain *domain;
+
+	domain = dev_get_msi_domain(&dev->dev);
+	if (domain && irq_domain_is_hierarchy(domain))
+		msi_domain_free_irqs(domain, &dev->dev);
+	else
+		arch_teardown_msi_irqs(dev);
+}
+#else
+#define pci_msi_setup_msi_irqs		arch_setup_msi_irqs
+#define pci_msi_teardown_msi_irqs	arch_teardown_msi_irqs
+#endif
+
+#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
+/* Arch hooks */
+int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+{
+	return -EINVAL;
+}
+
+void __weak arch_teardown_msi_irq(unsigned int irq)
+{
+}
+
+int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	struct msi_desc *entry;
+	int ret;
+
+	/*
+	 * If an architecture wants to support multiple MSI, it needs to
+	 * override arch_setup_msi_irqs()
+	 */
+	if (type == PCI_CAP_ID_MSI && nvec > 1)
+		return 1;
+
+	for_each_pci_msi_entry(entry, dev) {
+		ret = arch_setup_msi_irq(dev, entry);
+		if (ret < 0)
+			return ret;
+		if (ret > 0)
+			return -ENOSPC;
+	}
+
+	return 0;
+}
+
+void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
+{
+	int i;
+	struct msi_desc *entry;
+
+	for_each_pci_msi_entry(entry, dev)
+		if (entry->irq)
+			for (i = 0; i < entry->nvec_used; i++)
+				arch_teardown_msi_irq(entry->irq + i);
+}
+#endif /* CONFIG_PCI_MSI_ARCH_FALLBACKS */
+
+/*
+ * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
+ * mask all MSI interrupts by clearing the MSI enable bit does not work
+ * reliably as devices without an INTx disable bit will then generate a
+ * level IRQ which will never be cleared.
+ */
+static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
+{
+	/* Don't shift by >= width of type */
+	if (desc->pci.msi_attrib.multi_cap >= 5)
+		return 0xffffffff;
+	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
+}
+
+static noinline void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set)
+{
+	raw_spinlock_t *lock = &desc->dev->msi_lock;
+	unsigned long flags;
+
+	if (!desc->pci.msi_attrib.can_mask)
+		return;
+
+	raw_spin_lock_irqsave(lock, flags);
+	desc->pci.msi_mask &= ~clear;
+	desc->pci.msi_mask |= set;
+	pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->pci.mask_pos,
+			       desc->pci.msi_mask);
+	raw_spin_unlock_irqrestore(lock, flags);
+}
+
+static inline void pci_msi_mask(struct msi_desc *desc, u32 mask)
+{
+	pci_msi_update_mask(desc, 0, mask);
+}
+
+static inline void pci_msi_unmask(struct msi_desc *desc, u32 mask)
+{
+	pci_msi_update_mask(desc, mask, 0);
+}
+
+static inline void __iomem *pci_msix_desc_addr(struct msi_desc *desc)
+{
+	return desc->pci.mask_base + desc->pci.msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE;
+}
+
+/*
+ * This internal function does not flush PCI writes to the device.  All
+ * users must ensure that they read from the device before either assuming
+ * that the device state is up to date, or returning out of this file.
+ * It does not affect the msi_desc::msix_ctrl cache either. Use with care!
+ */
+static void pci_msix_write_vector_ctrl(struct msi_desc *desc, u32 ctrl)
+{
+	void __iomem *desc_addr = pci_msix_desc_addr(desc);
+
+	if (desc->pci.msi_attrib.can_mask)
+		writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
+}
+
+static inline void pci_msix_mask(struct msi_desc *desc)
+{
+	desc->pci.msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
+	/* Flush write to device */
+	readl(desc->pci.mask_base);
+}
+
+static inline void pci_msix_unmask(struct msi_desc *desc)
+{
+	desc->pci.msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
+}
+
+static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
+{
+	if (desc->pci.msi_attrib.is_msix)
+		pci_msix_mask(desc);
+	else
+		pci_msi_mask(desc, mask);
+}
+
+static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
+{
+	if (desc->pci.msi_attrib.is_msix)
+		pci_msix_unmask(desc);
+	else
+		pci_msi_unmask(desc, mask);
+}
+
+/**
+ * pci_msi_mask_irq - Generic IRQ chip callback to mask PCI/MSI interrupts
+ * @data:	pointer to irqdata associated to that interrupt
+ */
+void pci_msi_mask_irq(struct irq_data *data)
+{
+	struct msi_desc *desc = irq_data_get_msi_desc(data);
+
+	__pci_msi_mask_desc(desc, BIT(data->irq - desc->irq));
+}
+EXPORT_SYMBOL_GPL(pci_msi_mask_irq);
+
+/**
+ * pci_msi_unmask_irq - Generic IRQ chip callback to unmask PCI/MSI interrupts
+ * @data:	pointer to irqdata associated to that interrupt
+ */
+void pci_msi_unmask_irq(struct irq_data *data)
+{
+	struct msi_desc *desc = irq_data_get_msi_desc(data);
+
+	__pci_msi_unmask_desc(desc, BIT(data->irq - desc->irq));
+}
+EXPORT_SYMBOL_GPL(pci_msi_unmask_irq);
+
+void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
+{
+	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
+
+	BUG_ON(dev->current_state != PCI_D0);
+
+	if (entry->pci.msi_attrib.is_msix) {
+		void __iomem *base = pci_msix_desc_addr(entry);
+
+		if (WARN_ON_ONCE(entry->pci.msi_attrib.is_virtual))
+			return;
+
+		msg->address_lo = readl(base + PCI_MSIX_ENTRY_LOWER_ADDR);
+		msg->address_hi = readl(base + PCI_MSIX_ENTRY_UPPER_ADDR);
+		msg->data = readl(base + PCI_MSIX_ENTRY_DATA);
+	} else {
+		int pos = dev->msi_cap;
+		u16 data;
+
+		pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
+				      &msg->address_lo);
+		if (entry->pci.msi_attrib.is_64) {
+			pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
+					      &msg->address_hi);
+			pci_read_config_word(dev, pos + PCI_MSI_DATA_64, &data);
+		} else {
+			msg->address_hi = 0;
+			pci_read_config_word(dev, pos + PCI_MSI_DATA_32, &data);
+		}
+		msg->data = data;
+	}
+}
+
+void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
+{
+	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
+
+	if (dev->current_state != PCI_D0 || pci_dev_is_disconnected(dev)) {
+		/* Don't touch the hardware now */
+	} else if (entry->pci.msi_attrib.is_msix) {
+		void __iomem *base = pci_msix_desc_addr(entry);
+		u32 ctrl = entry->pci.msix_ctrl;
+		bool unmasked = !(ctrl & PCI_MSIX_ENTRY_CTRL_MASKBIT);
+
+		if (entry->pci.msi_attrib.is_virtual)
+			goto skip;
+
+		/*
+		 * The specification mandates that the entry is masked
+		 * when the message is modified:
+		 *
+		 * "If software changes the Address or Data value of an
+		 * entry while the entry is unmasked, the result is
+		 * undefined."
+		 */
+		if (unmasked)
+			pci_msix_write_vector_ctrl(entry, ctrl | PCI_MSIX_ENTRY_CTRL_MASKBIT);
+
+		writel(msg->address_lo, base + PCI_MSIX_ENTRY_LOWER_ADDR);
+		writel(msg->address_hi, base + PCI_MSIX_ENTRY_UPPER_ADDR);
+		writel(msg->data, base + PCI_MSIX_ENTRY_DATA);
+
+		if (unmasked)
+			pci_msix_write_vector_ctrl(entry, ctrl);
+
+		/* Ensure that the writes are visible in the device */
+		readl(base + PCI_MSIX_ENTRY_DATA);
+	} else {
+		int pos = dev->msi_cap;
+		u16 msgctl;
+
+		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
+		msgctl &= ~PCI_MSI_FLAGS_QSIZE;
+		msgctl |= entry->pci.msi_attrib.multiple << 4;
+		pci_write_config_word(dev, pos + PCI_MSI_FLAGS, msgctl);
+
+		pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
+				       msg->address_lo);
+		if (entry->pci.msi_attrib.is_64) {
+			pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
+					       msg->address_hi);
+			pci_write_config_word(dev, pos + PCI_MSI_DATA_64,
+					      msg->data);
+		} else {
+			pci_write_config_word(dev, pos + PCI_MSI_DATA_32,
+					      msg->data);
+		}
+		/* Ensure that the writes are visible in the device */
+		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
+	}
+
+skip:
+	entry->msg = *msg;
+
+	if (entry->write_msi_msg)
+		entry->write_msi_msg(entry, entry->write_msi_msg_data);
+
+}
+
+void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg)
+{
+	struct msi_desc *entry = irq_get_msi_desc(irq);
+
+	__pci_write_msi_msg(entry, msg);
+}
+EXPORT_SYMBOL_GPL(pci_write_msi_msg);
+
+static void free_msi_irqs(struct pci_dev *dev)
+{
+	struct list_head *msi_list = dev_to_msi_list(&dev->dev);
+	struct msi_desc *entry, *tmp;
+	int i;
+
+	for_each_pci_msi_entry(entry, dev)
+		if (entry->irq)
+			for (i = 0; i < entry->nvec_used; i++)
+				BUG_ON(irq_has_action(entry->irq + i));
+
+	if (dev->msi_irq_groups) {
+		msi_destroy_sysfs(&dev->dev, dev->msi_irq_groups);
+		dev->msi_irq_groups = NULL;
+	}
+
+	pci_msi_teardown_msi_irqs(dev);
+
+	list_for_each_entry_safe(entry, tmp, msi_list, list) {
+		if (entry->pci.msi_attrib.is_msix) {
+			if (list_is_last(&entry->list, msi_list))
+				iounmap(entry->pci.mask_base);
+		}
+
+		list_del(&entry->list);
+		free_msi_entry(entry);
+	}
+}
+
+static void pci_intx_for_msi(struct pci_dev *dev, int enable)
+{
+	if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
+		pci_intx(dev, enable);
+}
+
+static void pci_msi_set_enable(struct pci_dev *dev, int enable)
+{
+	u16 control;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
+	control &= ~PCI_MSI_FLAGS_ENABLE;
+	if (enable)
+		control |= PCI_MSI_FLAGS_ENABLE;
+	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
+}
+
+/*
+ * Architecture override returns true when the PCI MSI message should be
+ * written by the generic restore function.
+ */
+bool __weak arch_restore_msi_irqs(struct pci_dev *dev)
+{
+	return true;
+}
+
+static void __pci_restore_msi_state(struct pci_dev *dev)
+{
+	struct msi_desc *entry;
+	u16 control;
+
+	if (!dev->msi_enabled)
+		return;
+
+	entry = irq_get_msi_desc(dev->irq);
+
+	pci_intx_for_msi(dev, 0);
+	pci_msi_set_enable(dev, 0);
+	if (arch_restore_msi_irqs(dev))
+		__pci_write_msi_msg(entry, &entry->msg);
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
+	pci_msi_update_mask(entry, 0, 0);
+	control &= ~PCI_MSI_FLAGS_QSIZE;
+	control |= (entry->pci.msi_attrib.multiple << 4) | PCI_MSI_FLAGS_ENABLE;
+	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
+}
+
+static void pci_msix_clear_and_set_ctrl(struct pci_dev *dev, u16 clear, u16 set)
+{
+	u16 ctrl;
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
+	ctrl &= ~clear;
+	ctrl |= set;
+	pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, ctrl);
+}
+
+static void __pci_restore_msix_state(struct pci_dev *dev)
+{
+	struct msi_desc *entry;
+	bool write_msg;
+
+	if (!dev->msix_enabled)
+		return;
+	BUG_ON(list_empty(dev_to_msi_list(&dev->dev)));
+
+	/* route the table */
+	pci_intx_for_msi(dev, 0);
+	pci_msix_clear_and_set_ctrl(dev, 0,
+				PCI_MSIX_FLAGS_ENABLE | PCI_MSIX_FLAGS_MASKALL);
+
+	write_msg = arch_restore_msi_irqs(dev);
+
+	for_each_pci_msi_entry(entry, dev) {
+		if (write_msg)
+			__pci_write_msi_msg(entry, &entry->msg);
+		pci_msix_write_vector_ctrl(entry, entry->pci.msix_ctrl);
+	}
+
+	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
+}
+
+void pci_restore_msi_state(struct pci_dev *dev)
+{
+	__pci_restore_msi_state(dev);
+	__pci_restore_msix_state(dev);
+}
+EXPORT_SYMBOL_GPL(pci_restore_msi_state);
+
+static struct msi_desc *
+msi_setup_entry(struct pci_dev *dev, int nvec, struct irq_affinity *affd)
+{
+	struct irq_affinity_desc *masks = NULL;
+	struct msi_desc *entry;
+	u16 control;
+
+	if (affd)
+		masks = irq_create_affinity_masks(nvec, affd);
+
+	/* MSI Entry Initialization */
+	entry = alloc_msi_entry(&dev->dev, nvec, masks);
+	if (!entry)
+		goto out;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
+	/* Lies, damned lies, and MSIs */
+	if (dev->dev_flags & PCI_DEV_FLAGS_HAS_MSI_MASKING)
+		control |= PCI_MSI_FLAGS_MASKBIT;
+
+	entry->pci.msi_attrib.is_msix	= 0;
+	entry->pci.msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
+	entry->pci.msi_attrib.is_virtual    = 0;
+	entry->pci.msi_attrib.entry_nr	= 0;
+	entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+					  !!(control & PCI_MSI_FLAGS_MASKBIT);
+	entry->pci.msi_attrib.default_irq	= dev->irq;	/* Save IOAPIC IRQ */
+	entry->pci.msi_attrib.multi_cap	= (control & PCI_MSI_FLAGS_QMASK) >> 1;
+	entry->pci.msi_attrib.multiple	= ilog2(__roundup_pow_of_two(nvec));
+
+	if (control & PCI_MSI_FLAGS_64BIT)
+		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_64;
+	else
+		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
+
+	/* Save the initial mask status */
+	if (entry->pci.msi_attrib.can_mask)
+		pci_read_config_dword(dev, entry->pci.mask_pos, &entry->pci.msi_mask);
+
+out:
+	kfree(masks);
+	return entry;
+}
+
+static int msi_verify_entries(struct pci_dev *dev)
+{
+	struct msi_desc *entry;
+
+	if (!dev->no_64bit_msi)
+		return 0;
+
+	for_each_pci_msi_entry(entry, dev) {
+		if (entry->msg.address_hi) {
+			pci_err(dev, "arch assigned 64-bit MSI address %#x%08x but device only supports 32 bits\n",
+				entry->msg.address_hi, entry->msg.address_lo);
+			return -EIO;
+		}
+	}
+	return 0;
+}
+
+/**
+ * msi_capability_init - configure device's MSI capability structure
+ * @dev: pointer to the pci_dev data structure of MSI device function
+ * @nvec: number of interrupts to allocate
+ * @affd: description of automatic IRQ affinity assignments (may be %NULL)
+ *
+ * Setup the MSI capability structure of the device with the requested
+ * number of interrupts.  A return value of zero indicates the successful
+ * setup of an entry with the new MSI IRQ.  A negative return value indicates
+ * an error, and a positive return value indicates the number of interrupts
+ * which could have been allocated.
+ */
+static int msi_capability_init(struct pci_dev *dev, int nvec,
+			       struct irq_affinity *affd)
+{
+	const struct attribute_group **groups;
+	struct msi_desc *entry;
+	int ret;
+
+	pci_msi_set_enable(dev, 0);	/* Disable MSI during set up */
+
+	entry = msi_setup_entry(dev, nvec, affd);
+	if (!entry)
+		return -ENOMEM;
+
+	/* All MSIs are unmasked by default; mask them all */
+	pci_msi_mask(entry, msi_multi_mask(entry));
+
+	list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
+
+	/* Configure MSI capability structure */
+	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSI);
+	if (ret)
+		goto err;
+
+	ret = msi_verify_entries(dev);
+	if (ret)
+		goto err;
+
+	groups = msi_populate_sysfs(&dev->dev);
+	if (IS_ERR(groups)) {
+		ret = PTR_ERR(groups);
+		goto err;
+	}
+
+	dev->msi_irq_groups = groups;
+
+	/* Set MSI enabled bits	*/
+	pci_intx_for_msi(dev, 0);
+	pci_msi_set_enable(dev, 1);
+	dev->msi_enabled = 1;
+
+	pcibios_free_irq(dev);
+	dev->irq = entry->irq;
+	return 0;
+
+err:
+	pci_msi_unmask(entry, msi_multi_mask(entry));
+	free_msi_irqs(dev);
+	return ret;
+}
+
+static void __iomem *msix_map_region(struct pci_dev *dev,
+				     unsigned int nr_entries)
+{
+	resource_size_t phys_addr;
+	u32 table_offset;
+	unsigned long flags;
+	u8 bir;
+
+	pci_read_config_dword(dev, dev->msix_cap + PCI_MSIX_TABLE,
+			      &table_offset);
+	bir = (u8)(table_offset & PCI_MSIX_TABLE_BIR);
+	flags = pci_resource_flags(dev, bir);
+	if (!flags || (flags & IORESOURCE_UNSET))
+		return NULL;
+
+	table_offset &= PCI_MSIX_TABLE_OFFSET;
+	phys_addr = pci_resource_start(dev, bir) + table_offset;
+
+	return ioremap(phys_addr, nr_entries * PCI_MSIX_ENTRY_SIZE);
+}
+
+static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
+			      struct msix_entry *entries, int nvec,
+			      struct irq_affinity *affd)
+{
+	struct irq_affinity_desc *curmsk, *masks = NULL;
+	struct msi_desc *entry;
+	void __iomem *addr;
+	int ret, i;
+	int vec_count = pci_msix_vec_count(dev);
+
+	if (affd)
+		masks = irq_create_affinity_masks(nvec, affd);
+
+	for (i = 0, curmsk = masks; i < nvec; i++) {
+		entry = alloc_msi_entry(&dev->dev, 1, curmsk);
+		if (!entry) {
+			if (!i)
+				iounmap(base);
+			else
+				free_msi_irqs(dev);
+			/* No enough memory. Don't try again */
+			ret = -ENOMEM;
+			goto out;
+		}
+
+		entry->pci.msi_attrib.is_msix	= 1;
+		entry->pci.msi_attrib.is_64	= 1;
+
+		if (entries)
+			entry->pci.msi_attrib.entry_nr = entries[i].entry;
+		else
+			entry->pci.msi_attrib.entry_nr = i;
+
+		entry->pci.msi_attrib.is_virtual =
+			entry->pci.msi_attrib.entry_nr >= vec_count;
+
+		entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+						  !entry->pci.msi_attrib.is_virtual;
+
+		entry->pci.msi_attrib.default_irq	= dev->irq;
+		entry->pci.mask_base			= base;
+
+		if (entry->pci.msi_attrib.can_mask) {
+			addr = pci_msix_desc_addr(entry);
+			entry->pci.msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
+		}
+
+		list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
+		if (masks)
+			curmsk++;
+	}
+	ret = 0;
+out:
+	kfree(masks);
+	return ret;
+}
+
+static void msix_update_entries(struct pci_dev *dev, struct msix_entry *entries)
+{
+	struct msi_desc *entry;
+
+	if (entries) {
+		for_each_pci_msi_entry(entry, dev) {
+			entries->vector = entry->irq;
+			entries++;
+		}
+	}
+}
+
+static void msix_mask_all(void __iomem *base, int tsize)
+{
+	u32 ctrl = PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	int i;
+
+	if (pci_msi_ignore_mask)
+		return;
+
+	for (i = 0; i < tsize; i++, base += PCI_MSIX_ENTRY_SIZE)
+		writel(ctrl, base + PCI_MSIX_ENTRY_VECTOR_CTRL);
+}
+
+/**
+ * msix_capability_init - configure device's MSI-X capability
+ * @dev: pointer to the pci_dev data structure of MSI-X device function
+ * @entries: pointer to an array of struct msix_entry entries
+ * @nvec: number of @entries
+ * @affd: Optional pointer to enable automatic affinity assignment
+ *
+ * Setup the MSI-X capability structure of device function with a
+ * single MSI-X IRQ. A return of zero indicates the successful setup of
+ * requested MSI-X entries with allocated IRQs or non-zero for otherwise.
+ **/
+static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries,
+				int nvec, struct irq_affinity *affd)
+{
+	const struct attribute_group **groups;
+	void __iomem *base;
+	int ret, tsize;
+	u16 control;
+
+	/*
+	 * Some devices require MSI-X to be enabled before the MSI-X
+	 * registers can be accessed.  Mask all the vectors to prevent
+	 * interrupts coming in before they're fully set up.
+	 */
+	pci_msix_clear_and_set_ctrl(dev, 0, PCI_MSIX_FLAGS_MASKALL |
+				    PCI_MSIX_FLAGS_ENABLE);
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control);
+	/* Request & Map MSI-X table region */
+	tsize = msix_table_size(control);
+	base = msix_map_region(dev, tsize);
+	if (!base) {
+		ret = -ENOMEM;
+		goto out_disable;
+	}
+
+	/* Ensure that all table entries are masked. */
+	msix_mask_all(base, tsize);
+
+	ret = msix_setup_entries(dev, base, entries, nvec, affd);
+	if (ret)
+		goto out_disable;
+
+	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
+	if (ret)
+		goto out_avail;
+
+	/* Check if all MSI entries honor device restrictions */
+	ret = msi_verify_entries(dev);
+	if (ret)
+		goto out_free;
+
+	msix_update_entries(dev, entries);
+
+	groups = msi_populate_sysfs(&dev->dev);
+	if (IS_ERR(groups)) {
+		ret = PTR_ERR(groups);
+		goto out_free;
+	}
+
+	dev->msi_irq_groups = groups;
+
+	/* Set MSI-X enabled bits and unmask the function */
+	pci_intx_for_msi(dev, 0);
+	dev->msix_enabled = 1;
+	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
+
+	pcibios_free_irq(dev);
+	return 0;
+
+out_avail:
+	if (ret < 0) {
+		/*
+		 * If we had some success, report the number of IRQs
+		 * we succeeded in setting up.
+		 */
+		struct msi_desc *entry;
+		int avail = 0;
+
+		for_each_pci_msi_entry(entry, dev) {
+			if (entry->irq != 0)
+				avail++;
+		}
+		if (avail != 0)
+			ret = avail;
+	}
+
+out_free:
+	free_msi_irqs(dev);
+
+out_disable:
+	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0);
+
+	return ret;
+}
+
+/**
+ * pci_msi_supported - check whether MSI may be enabled on a device
+ * @dev: pointer to the pci_dev data structure of MSI device function
+ * @nvec: how many MSIs have been requested?
+ *
+ * Look at global flags, the device itself, and its parent buses
+ * to determine if MSI/-X are supported for the device. If MSI/-X is
+ * supported return 1, else return 0.
+ **/
+static int pci_msi_supported(struct pci_dev *dev, int nvec)
+{
+	struct pci_bus *bus;
+
+	/* MSI must be globally enabled and supported by the device */
+	if (!pci_msi_enable)
+		return 0;
+
+	if (!dev || dev->no_msi)
+		return 0;
+
+	/*
+	 * You can't ask to have 0 or less MSIs configured.
+	 *  a) it's stupid ..
+	 *  b) the list manipulation code assumes nvec >= 1.
+	 */
+	if (nvec < 1)
+		return 0;
+
+	/*
+	 * Any bridge which does NOT route MSI transactions from its
+	 * secondary bus to its primary bus must set NO_MSI flag on
+	 * the secondary pci_bus.
+	 *
+	 * The NO_MSI flag can either be set directly by:
+	 * - arch-specific PCI host bus controller drivers (deprecated)
+	 * - quirks for specific PCI bridges
+	 *
+	 * or indirectly by platform-specific PCI host bridge drivers by
+	 * advertising the 'msi_domain' property, which results in
+	 * the NO_MSI flag when no MSI domain is found for this bridge
+	 * at probe time.
+	 */
+	for (bus = dev->bus; bus; bus = bus->parent)
+		if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
+			return 0;
+
+	return 1;
+}
+
+/**
+ * pci_msi_vec_count - Return the number of MSI vectors a device can send
+ * @dev: device to report about
+ *
+ * This function returns the number of MSI vectors a device requested via
+ * Multiple Message Capable register. It returns a negative errno if the
+ * device is not capable sending MSI interrupts. Otherwise, the call succeeds
+ * and returns a power of two, up to a maximum of 2^5 (32), according to the
+ * MSI specification.
+ **/
+int pci_msi_vec_count(struct pci_dev *dev)
+{
+	int ret;
+	u16 msgctl;
+
+	if (!dev->msi_cap)
+		return -EINVAL;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &msgctl);
+	ret = 1 << ((msgctl & PCI_MSI_FLAGS_QMASK) >> 1);
+
+	return ret;
+}
+EXPORT_SYMBOL(pci_msi_vec_count);
+
+static void pci_msi_shutdown(struct pci_dev *dev)
+{
+	struct msi_desc *desc;
+
+	if (!pci_msi_enable || !dev || !dev->msi_enabled)
+		return;
+
+	BUG_ON(list_empty(dev_to_msi_list(&dev->dev)));
+	desc = first_pci_msi_entry(dev);
+
+	pci_msi_set_enable(dev, 0);
+	pci_intx_for_msi(dev, 1);
+	dev->msi_enabled = 0;
+
+	/* Return the device with MSI unmasked as initial states */
+	pci_msi_unmask(desc, msi_multi_mask(desc));
+
+	/* Restore dev->irq to its default pin-assertion IRQ */
+	dev->irq = desc->pci.msi_attrib.default_irq;
+	pcibios_alloc_irq(dev);
+}
+
+void pci_disable_msi(struct pci_dev *dev)
+{
+	if (!pci_msi_enable || !dev || !dev->msi_enabled)
+		return;
+
+	pci_msi_shutdown(dev);
+	free_msi_irqs(dev);
+}
+EXPORT_SYMBOL(pci_disable_msi);
+
+/**
+ * pci_msix_vec_count - return the number of device's MSI-X table entries
+ * @dev: pointer to the pci_dev data structure of MSI-X device function
+ * This function returns the number of device's MSI-X table entries and
+ * therefore the number of MSI-X vectors device is capable of sending.
+ * It returns a negative errno if the device is not capable of sending MSI-X
+ * interrupts.
+ **/
+int pci_msix_vec_count(struct pci_dev *dev)
+{
+	u16 control;
+
+	if (!dev->msix_cap)
+		return -EINVAL;
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control);
+	return msix_table_size(control);
+}
+EXPORT_SYMBOL(pci_msix_vec_count);
+
+static int __pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries,
+			     int nvec, struct irq_affinity *affd, int flags)
+{
+	int nr_entries;
+	int i, j;
+
+	if (!pci_msi_supported(dev, nvec) || dev->current_state != PCI_D0)
+		return -EINVAL;
+
+	nr_entries = pci_msix_vec_count(dev);
+	if (nr_entries < 0)
+		return nr_entries;
+	if (nvec > nr_entries && !(flags & PCI_IRQ_VIRTUAL))
+		return nr_entries;
+
+	if (entries) {
+		/* Check for any invalid entries */
+		for (i = 0; i < nvec; i++) {
+			if (entries[i].entry >= nr_entries)
+				return -EINVAL;		/* invalid entry */
+			for (j = i + 1; j < nvec; j++) {
+				if (entries[i].entry == entries[j].entry)
+					return -EINVAL;	/* duplicate entry */
+			}
+		}
+	}
+
+	/* Check whether driver already requested for MSI IRQ */
+	if (dev->msi_enabled) {
+		pci_info(dev, "can't enable MSI-X (MSI IRQ already assigned)\n");
+		return -EINVAL;
+	}
+	return msix_capability_init(dev, entries, nvec, affd);
+}
+
+static void pci_msix_shutdown(struct pci_dev *dev)
+{
+	struct msi_desc *entry;
+
+	if (!pci_msi_enable || !dev || !dev->msix_enabled)
+		return;
+
+	if (pci_dev_is_disconnected(dev)) {
+		dev->msix_enabled = 0;
+		return;
+	}
+
+	/* Return the device with MSI-X masked as initial states */
+	for_each_pci_msi_entry(entry, dev)
+		pci_msix_mask(entry);
+
+	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0);
+	pci_intx_for_msi(dev, 1);
+	dev->msix_enabled = 0;
+	pcibios_alloc_irq(dev);
+}
+
+void pci_disable_msix(struct pci_dev *dev)
+{
+	if (!pci_msi_enable || !dev || !dev->msix_enabled)
+		return;
+
+	pci_msix_shutdown(dev);
+	free_msi_irqs(dev);
+}
+EXPORT_SYMBOL(pci_disable_msix);
+
+void pci_no_msi(void)
+{
+	pci_msi_enable = 0;
+}
+
+/**
+ * pci_msi_enabled - is MSI enabled?
+ *
+ * Returns true if MSI has not been disabled by the command-line option
+ * pci=nomsi.
+ **/
+int pci_msi_enabled(void)
+{
+	return pci_msi_enable;
+}
+EXPORT_SYMBOL(pci_msi_enabled);
+
+static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
+				  struct irq_affinity *affd)
+{
+	int nvec;
+	int rc;
+
+	if (!pci_msi_supported(dev, minvec) || dev->current_state != PCI_D0)
+		return -EINVAL;
+
+	/* Check whether driver already requested MSI-X IRQs */
+	if (dev->msix_enabled) {
+		pci_info(dev, "can't enable MSI (MSI-X already enabled)\n");
+		return -EINVAL;
+	}
+
+	if (maxvec < minvec)
+		return -ERANGE;
+
+	if (WARN_ON_ONCE(dev->msi_enabled))
+		return -EINVAL;
+
+	nvec = pci_msi_vec_count(dev);
+	if (nvec < 0)
+		return nvec;
+	if (nvec < minvec)
+		return -ENOSPC;
+
+	if (nvec > maxvec)
+		nvec = maxvec;
+
+	for (;;) {
+		if (affd) {
+			nvec = irq_calc_affinity_vectors(minvec, nvec, affd);
+			if (nvec < minvec)
+				return -ENOSPC;
+		}
+
+		rc = msi_capability_init(dev, nvec, affd);
+		if (rc == 0)
+			return nvec;
+
+		if (rc < 0)
+			return rc;
+		if (rc < minvec)
+			return -ENOSPC;
+
+		nvec = rc;
+	}
+}
+
+/* deprecated, don't use */
+int pci_enable_msi(struct pci_dev *dev)
+{
+	int rc = __pci_enable_msi_range(dev, 1, 1, NULL);
+	if (rc < 0)
+		return rc;
+	return 0;
+}
+EXPORT_SYMBOL(pci_enable_msi);
+
+static int __pci_enable_msix_range(struct pci_dev *dev,
+				   struct msix_entry *entries, int minvec,
+				   int maxvec, struct irq_affinity *affd,
+				   int flags)
+{
+	int rc, nvec = maxvec;
+
+	if (maxvec < minvec)
+		return -ERANGE;
+
+	if (WARN_ON_ONCE(dev->msix_enabled))
+		return -EINVAL;
+
+	for (;;) {
+		if (affd) {
+			nvec = irq_calc_affinity_vectors(minvec, nvec, affd);
+			if (nvec < minvec)
+				return -ENOSPC;
+		}
+
+		rc = __pci_enable_msix(dev, entries, nvec, affd, flags);
+		if (rc == 0)
+			return nvec;
+
+		if (rc < 0)
+			return rc;
+		if (rc < minvec)
+			return -ENOSPC;
+
+		nvec = rc;
+	}
+}
+
+/**
+ * pci_enable_msix_range - configure device's MSI-X capability structure
+ * @dev: pointer to the pci_dev data structure of MSI-X device function
+ * @entries: pointer to an array of MSI-X entries
+ * @minvec: minimum number of MSI-X IRQs requested
+ * @maxvec: maximum number of MSI-X IRQs requested
+ *
+ * Setup the MSI-X capability structure of device function with a maximum
+ * possible number of interrupts in the range between @minvec and @maxvec
+ * upon its software driver call to request for MSI-X mode enabled on its
+ * hardware device function. It returns a negative errno if an error occurs.
+ * If it succeeds, it returns the actual number of interrupts allocated and
+ * indicates the successful configuration of MSI-X capability structure
+ * with new allocated MSI-X interrupts.
+ **/
+int pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries,
+		int minvec, int maxvec)
+{
+	return __pci_enable_msix_range(dev, entries, minvec, maxvec, NULL, 0);
+}
+EXPORT_SYMBOL(pci_enable_msix_range);
+
+/**
+ * pci_alloc_irq_vectors_affinity - allocate multiple IRQs for a device
+ * @dev:		PCI device to operate on
+ * @min_vecs:		minimum number of vectors required (must be >= 1)
+ * @max_vecs:		maximum (desired) number of vectors
+ * @flags:		flags or quirks for the allocation
+ * @affd:		optional description of the affinity requirements
+ *
+ * Allocate up to @max_vecs interrupt vectors for @dev, using MSI-X or MSI
+ * vectors if available, and fall back to a single legacy vector
+ * if neither is available.  Return the number of vectors allocated,
+ * (which might be smaller than @max_vecs) if successful, or a negative
+ * error code on error. If less than @min_vecs interrupt vectors are
+ * available for @dev the function will fail with -ENOSPC.
+ *
+ * To get the Linux IRQ number used for a vector that can be passed to
+ * request_irq() use the pci_irq_vector() helper.
+ */
+int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs,
+				   unsigned int max_vecs, unsigned int flags,
+				   struct irq_affinity *affd)
+{
+	struct irq_affinity msi_default_affd = {0};
+	int nvecs = -ENOSPC;
+
+	if (flags & PCI_IRQ_AFFINITY) {
+		if (!affd)
+			affd = &msi_default_affd;
+	} else {
+		if (WARN_ON(affd))
+			affd = NULL;
+	}
+
+	if (flags & PCI_IRQ_MSIX) {
+		nvecs = __pci_enable_msix_range(dev, NULL, min_vecs, max_vecs,
+						affd, flags);
+		if (nvecs > 0)
+			return nvecs;
+	}
+
+	if (flags & PCI_IRQ_MSI) {
+		nvecs = __pci_enable_msi_range(dev, min_vecs, max_vecs, affd);
+		if (nvecs > 0)
+			return nvecs;
+	}
+
+	/* use legacy IRQ if allowed */
+	if (flags & PCI_IRQ_LEGACY) {
+		if (min_vecs == 1 && dev->irq) {
+			/*
+			 * Invoke the affinity spreading logic to ensure that
+			 * the device driver can adjust queue configuration
+			 * for the single interrupt case.
+			 */
+			if (affd)
+				irq_create_affinity_masks(1, affd);
+			pci_intx(dev, 1);
+			return 1;
+		}
+	}
+
+	return nvecs;
+}
+EXPORT_SYMBOL(pci_alloc_irq_vectors_affinity);
+
+/**
+ * pci_free_irq_vectors - free previously allocated IRQs for a device
+ * @dev:		PCI device to operate on
+ *
+ * Undoes the allocations and enabling in pci_alloc_irq_vectors().
+ */
+void pci_free_irq_vectors(struct pci_dev *dev)
+{
+	pci_disable_msix(dev);
+	pci_disable_msi(dev);
+}
+EXPORT_SYMBOL(pci_free_irq_vectors);
+
+/**
+ * pci_irq_vector - return Linux IRQ number of a device vector
+ * @dev:	PCI device to operate on
+ * @nr:		Interrupt vector index (0-based)
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ *   MSI-X:	The index in the MSI-X vector table
+ *   MSI:	The index of the enabled MSI vectors
+ *   INTx:	Must be 0
+ *
+ * Return: The Linux interrupt number or -EINVAl if @nr is out of range.
+ */
+int pci_irq_vector(struct pci_dev *dev, unsigned int nr)
+{
+	if (dev->msix_enabled) {
+		struct msi_desc *entry;
+
+		for_each_pci_msi_entry(entry, dev) {
+			if (entry->pci.msi_attrib.entry_nr == nr)
+				return entry->irq;
+		}
+		WARN_ON_ONCE(1);
+		return -EINVAL;
+	}
+
+	if (dev->msi_enabled) {
+		struct msi_desc *entry = first_pci_msi_entry(dev);
+
+		if (WARN_ON_ONCE(nr >= entry->nvec_used))
+			return -EINVAL;
+	} else {
+		if (WARN_ON_ONCE(nr > 0))
+			return -EINVAL;
+	}
+
+	return dev->irq + nr;
+}
+EXPORT_SYMBOL(pci_irq_vector);
+
+/**
+ * pci_irq_get_affinity - return the affinity of a particular MSI vector
+ * @dev:	PCI device to operate on
+ * @nr:		device-relative interrupt vector index (0-based).
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ *   MSI-X:	The index in the MSI-X vector table
+ *   MSI:	The index of the enabled MSI vectors
+ *   INTx:	Must be 0
+ *
+ * Return: A cpumask pointer or NULL if @nr is out of range
+ */
+const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
+{
+	if (dev->msix_enabled) {
+		struct msi_desc *entry;
+
+		for_each_pci_msi_entry(entry, dev) {
+			if (entry->pci.msi_attrib.entry_nr == nr)
+				return &entry->affinity->mask;
+		}
+		WARN_ON_ONCE(1);
+		return NULL;
+	} else if (dev->msi_enabled) {
+		struct msi_desc *entry = first_pci_msi_entry(dev);
+
+		if (WARN_ON_ONCE(!entry || !entry->affinity ||
+				 nr >= entry->nvec_used))
+			return NULL;
+
+		return &entry->affinity[nr].mask;
+	} else {
+		return cpu_possible_mask;
+	}
+}
+EXPORT_SYMBOL(pci_irq_get_affinity);
+
+struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc)
+{
+	return to_pci_dev(desc->dev);
+}
+EXPORT_SYMBOL(msi_desc_to_pci_dev);
+
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
+/**
+ * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
+ * @irq_data:	Pointer to interrupt data of the MSI interrupt
+ * @msg:	Pointer to the message
+ */
+static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
+{
+	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
+
+	/*
+	 * For MSI-X desc->irq is always equal to irq_data->irq. For
+	 * MSI only the first interrupt of MULTI MSI passes the test.
+	 */
+	if (desc->irq == irq_data->irq)
+		__pci_write_msi_msg(desc, msg);
+}
+
+/**
+ * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
+ * @desc:	Pointer to the MSI descriptor
+ *
+ * The ID number is only used within the irqdomain.
+ */
+static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
+{
+	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
+
+	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
+		pci_dev_id(dev) << 11 |
+		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
+}
+
+static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
+{
+	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
+}
+
+/**
+ * pci_msi_domain_check_cap - Verify that @domain supports the capabilities
+ * 			      for @dev
+ * @domain:	The interrupt domain to check
+ * @info:	The domain info for verification
+ * @dev:	The device to check
+ *
+ * Returns:
+ *  0 if the functionality is supported
+ *  1 if Multi MSI is requested, but the domain does not support it
+ *  -ENOTSUPP otherwise
+ */
+int pci_msi_domain_check_cap(struct irq_domain *domain,
+			     struct msi_domain_info *info, struct device *dev)
+{
+	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
+
+	/* Special handling to support __pci_enable_msi_range() */
+	if (pci_msi_desc_is_multi_msi(desc) &&
+	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
+		return 1;
+	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
+		return -ENOTSUPP;
+
+	return 0;
+}
+
+static int pci_msi_domain_handle_error(struct irq_domain *domain,
+				       struct msi_desc *desc, int error)
+{
+	/* Special handling to support __pci_enable_msi_range() */
+	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
+		return 1;
+
+	return error;
+}
+
+static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
+				    struct msi_desc *desc)
+{
+	arg->desc = desc;
+	arg->hwirq = pci_msi_domain_calc_hwirq(desc);
+}
+
+static struct msi_domain_ops pci_msi_domain_ops_default = {
+	.set_desc	= pci_msi_domain_set_desc,
+	.msi_check	= pci_msi_domain_check_cap,
+	.handle_error	= pci_msi_domain_handle_error,
+};
+
+static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
+{
+	struct msi_domain_ops *ops = info->ops;
+
+	if (ops == NULL) {
+		info->ops = &pci_msi_domain_ops_default;
+	} else {
+		if (ops->set_desc == NULL)
+			ops->set_desc = pci_msi_domain_set_desc;
+		if (ops->msi_check == NULL)
+			ops->msi_check = pci_msi_domain_check_cap;
+		if (ops->handle_error == NULL)
+			ops->handle_error = pci_msi_domain_handle_error;
+	}
+}
+
+static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
+{
+	struct irq_chip *chip = info->chip;
+
+	BUG_ON(!chip);
+	if (!chip->irq_write_msi_msg)
+		chip->irq_write_msi_msg = pci_msi_domain_write_msg;
+	if (!chip->irq_mask)
+		chip->irq_mask = pci_msi_mask_irq;
+	if (!chip->irq_unmask)
+		chip->irq_unmask = pci_msi_unmask_irq;
+}
+
+/**
+ * pci_msi_create_irq_domain - Create a MSI interrupt domain
+ * @fwnode:	Optional fwnode of the interrupt controller
+ * @info:	MSI domain info
+ * @parent:	Parent irq domain
+ *
+ * Updates the domain and chip ops and creates a MSI interrupt domain.
+ *
+ * Returns:
+ * A domain pointer or NULL in case of failure.
+ */
+struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
+					     struct msi_domain_info *info,
+					     struct irq_domain *parent)
+{
+	struct irq_domain *domain;
+
+	if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE))
+		info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
+
+	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
+		pci_msi_domain_update_dom_ops(info);
+	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
+		pci_msi_domain_update_chip_ops(info);
+
+	info->flags |= MSI_FLAG_ACTIVATE_EARLY;
+	if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
+		info->flags |= MSI_FLAG_MUST_REACTIVATE;
+
+	/* PCI-MSI is oneshot-safe */
+	info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
+
+	domain = msi_create_irq_domain(fwnode, info, parent);
+	if (!domain)
+		return NULL;
+
+	irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI);
+	return domain;
+}
+EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
+
+/*
+ * Users of the generic MSI infrastructure expect a device to have a single ID,
+ * so with DMA aliases we have to pick the least-worst compromise. Devices with
+ * DMA phantom functions tend to still emit MSIs from the real function number,
+ * so we ignore those and only consider topological aliases where either the
+ * alias device or RID appears on a different bus number. We also make the
+ * reasonable assumption that bridges are walked in an upstream direction (so
+ * the last one seen wins), and the much braver assumption that the most likely
+ * case is that of PCI->PCIe so we should always use the alias RID. This echoes
+ * the logic from intel_irq_remapping's set_msi_sid(), which presumably works
+ * well enough in practice; in the face of the horrible PCIe<->PCI-X conditions
+ * for taking ownership all we can really do is close our eyes and hope...
+ */
+static int get_msi_id_cb(struct pci_dev *pdev, u16 alias, void *data)
+{
+	u32 *pa = data;
+	u8 bus = PCI_BUS_NUM(*pa);
+
+	if (pdev->bus->number != bus || PCI_BUS_NUM(alias) != bus)
+		*pa = alias;
+
+	return 0;
+}
+
+/**
+ * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
+ * @domain:	The interrupt domain
+ * @pdev:	The PCI device.
+ *
+ * The RID for a device is formed from the alias, with a firmware
+ * supplied mapping applied
+ *
+ * Returns: The RID.
+ */
+u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
+{
+	struct device_node *of_node;
+	u32 rid = pci_dev_id(pdev);
+
+	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
+
+	of_node = irq_domain_get_of_node(domain);
+	rid = of_node ? of_msi_map_id(&pdev->dev, of_node, rid) :
+			iort_msi_map_id(&pdev->dev, rid);
+
+	return rid;
+}
+
+/**
+ * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
+ * @pdev:	The PCI device
+ *
+ * Use the firmware data to find a device-specific MSI domain
+ * (i.e. not one that is set as a default).
+ *
+ * Returns: The corresponding MSI domain or NULL if none has been found.
+ */
+struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
+{
+	struct irq_domain *dom;
+	u32 rid = pci_dev_id(pdev);
+
+	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
+	dom = of_msi_map_get_device_domain(&pdev->dev, rid, DOMAIN_BUS_PCI_MSI);
+	if (!dom)
+		dom = iort_get_device_domain(&pdev->dev, rid,
+					     DOMAIN_BUS_PCI_MSI);
+	return dom;
+}
+
+/**
+ * pci_dev_has_special_msi_domain - Check whether the device is handled by
+ *				    a non-standard PCI-MSI domain
+ * @pdev:	The PCI device to check.
+ *
+ * Returns: True if the device irqdomain or the bus irqdomain is
+ * non-standard PCI/MSI.
+ */
+bool pci_dev_has_special_msi_domain(struct pci_dev *pdev)
+{
+	struct irq_domain *dom = dev_get_msi_domain(&pdev->dev);
+
+	if (!dom)
+		dom = dev_get_msi_domain(&pdev->bus->dev);
+
+	if (!dom)
+		return true;
+
+	return dom->bus_token != DOMAIN_BUS_PCI_MSI;
+}
+
+#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
+#endif /* CONFIG_PCI_MSI */
+
+void pci_msi_init(struct pci_dev *dev)
+{
+	u16 ctrl;
+
+	/*
+	 * Disable the MSI hardware to avoid screaming interrupts
+	 * during boot.  This is the power on reset default so
+	 * usually this should be a noop.
+	 */
+	dev->msi_cap = pci_find_capability(dev, PCI_CAP_ID_MSI);
+	if (!dev->msi_cap)
+		return;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &ctrl);
+	if (ctrl & PCI_MSI_FLAGS_ENABLE)
+		pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS,
+				      ctrl & ~PCI_MSI_FLAGS_ENABLE);
+
+	if (!(ctrl & PCI_MSI_FLAGS_64BIT))
+		dev->no_64bit_msi = 1;
+}
+
+void pci_msix_init(struct pci_dev *dev)
+{
+	u16 ctrl;
+
+	dev->msix_cap = pci_find_capability(dev, PCI_CAP_ID_MSIX);
+	if (!dev->msix_cap)
+		return;
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
+	if (ctrl & PCI_MSIX_FLAGS_ENABLE)
+		pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS,
+				      ctrl & ~PCI_MSIX_FLAGS_ENABLE);
+}



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233694.405782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmV2-00028S-00; Sat, 27 Nov 2021 01:27:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233694.405782; Sat, 27 Nov 2021 01:27:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmV1-00025N-61; Sat, 27 Nov 2021 01:27:31 +0000
Received: by outflank-mailman (input) for mailman id 233694;
 Sat, 27 Nov 2021 01:27:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNM-0002cc-6u
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:36 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 15308002-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 15308002-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223824.618089023@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975975;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=AC2FZ3NgPgtEmYfcPESal194oN272JgZRDrbkWg3jyI=;
	b=iPwixWdRLWm1emsKEolgsWnQ0MRelouU1c88xG/I4ZFXDWljmp8kd1pElhIMoCTAY/knGl
	ZJtwjOffKtjwnGwopBmALMXasTB582ruio3hflog8eMAPMlpz5ZrWgtsMSlF2fVlzRskk3
	Ow52Mpf1/VGl2mLQbC5BWUuNu3wKt55NRjlcd1BPstQStz85sgEtHSPUN8yojcETmMtDoS
	8JGF4qamdlaBFFYjEEfjKplZ6yUUcS+qAL17xkhhuJfA0Eug3Zfu6A4MsNBJRixaWD1Z/w
	Xxs8Tyqfuzq2yRB+IMP2MmxdWpzteiKKSI1l4vnbhqrvdMJPDuyM0EeeSSDzvw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975975;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=AC2FZ3NgPgtEmYfcPESal194oN272JgZRDrbkWg3jyI=;
	b=r6i0/tsdGKrOX4ZC7HKf9txZqb0KckmR2L+A1e3opYaHWUzv/KuTUllN5WpGhv+I8mDrjv
	lXYIvy68X1myBECw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 09/22] MIPS: Octeon: Use arch_setup_msi_irq()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:34 +0100 (CET)

The core code provides the same loop code except for the MSI-X reject. Move
that to arch_setup_msi_irq() and remove the duplicated code.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: linux-mips@vger.kernel.org
---
 arch/mips/pci/msi-octeon.c |   32 +++-----------------------------
 1 file changed, 3 insertions(+), 29 deletions(-)

--- a/arch/mips/pci/msi-octeon.c
+++ b/arch/mips/pci/msi-octeon.c
@@ -68,6 +68,9 @@ int arch_setup_msi_irq(struct pci_dev *d
 	u64 search_mask;
 	int index;
 
+	if (desc->pci.msi_attrib.is_msix)
+		return -EINVAL;
+
 	/*
 	 * Read the MSI config to figure out how many IRQs this device
 	 * wants.  Most devices only want 1, which will give
@@ -182,35 +185,6 @@ int arch_setup_msi_irq(struct pci_dev *d
 	return 0;
 }
 
-int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct msi_desc *entry;
-	int ret;
-
-	/*
-	 * MSI-X is not supported.
-	 */
-	if (type == PCI_CAP_ID_MSIX)
-		return -EINVAL;
-
-	/*
-	 * If an architecture wants to support multiple MSI, it needs to
-	 * override arch_setup_msi_irqs()
-	 */
-	if (type == PCI_CAP_ID_MSI && nvec > 1)
-		return 1;
-
-	for_each_pci_msi_entry(entry, dev) {
-		ret = arch_setup_msi_irq(dev, entry);
-		if (ret < 0)
-			return ret;
-		if (ret > 0)
-			return -ENOSPC;
-	}
-
-	return 0;
-}
-
 /**
  * Called when a device no longer needs its MSI interrupts. All
  * MSI interrupts for the device are freed.



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233696.405790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmV2-0002Qf-Tr; Sat, 27 Nov 2021 01:27:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233696.405790; Sat, 27 Nov 2021 01:27:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmV2-0002JT-9P; Sat, 27 Nov 2021 01:27:32 +0000
Received: by outflank-mailman (input) for mailman id 233696;
 Sat, 27 Nov 2021 01:27:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSo-0004gG-4k
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:14 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dea4d502-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:25:13 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dea4d502-4f20-11ec-b941-1df2895da90e
Message-ID: <20211127000919.061417652@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976313;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=hCvJ3RXlnaO1z2W7zc0iNOJLM+aNENiBxAWv9ZJQoBs=;
	b=o8NYvWJiQDxWXpNPxaflbtBocZCwzg6JQwTztqKiBUx1s8Eyt8inNuHUyfyUYS3PYb3J2h
	GtjvCVQiuZ9dcbibJD6A9m9xeDByAXCaqvIsoNq4vjqpuYs4lWUQAuKtOGpeWoHbTTx2tm
	BVt7U+YgAfGs0WNKegcRzL14VhZcP+9M1hRyrHXcva/rc25nyD2q703ZIdFZO19jlfaYxN
	YjXKYwcVg+3zgNa7ULIcInHsERImfsvF8MRImc7fPIqp9oeawMaHrTK9JFjBz9WXaorgfJ
	X2ers5j0B3gX9Ih84tyCeMOQ2ZzQPaXzUPZ+q3SzZpvILV9dHaMjcKKM5YK8IA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976313;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=hCvJ3RXlnaO1z2W7zc0iNOJLM+aNENiBxAWv9ZJQoBs=;
	b=552puWH/+Fck0R9LjfqTBJ6G/hk4FIGJft4PCGMgUO4G7s5bYRHYh3Z+2DTpFR4KCZl6OK
	kuID/+K9LLNsx5Cw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 10/10] x86/apic/msi: Support MSI-X vector expansion
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:25:12 +0100 (CET)

The X86 PCI/MSI irq domaim implementation supports vector expansion out of
the box. Make it available.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/kernel/apic/msi.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/x86/kernel/apic/msi.c
+++ b/arch/x86/kernel/apic/msi.c
@@ -178,7 +178,7 @@ static struct msi_domain_ops pci_msi_dom
 
 static struct msi_domain_info pci_msi_domain_info = {
 	.flags		= MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
-			  MSI_FLAG_PCI_MSIX,
+			  MSI_FLAG_PCI_MSIX | MSI_FLAG_CAN_EXPAND,
 	.ops		= &pci_msi_domain_ops,
 	.chip		= &pci_msi_controller,
 	.handler	= handle_edge_irq,
@@ -226,7 +226,7 @@ static struct irq_chip pci_msi_ir_contro
 
 static struct msi_domain_info pci_msi_ir_domain_info = {
 	.flags		= MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
-			  MSI_FLAG_MULTI_PCI_MSI | MSI_FLAG_PCI_MSIX,
+			  MSI_FLAG_MULTI_PCI_MSI | MSI_FLAG_PCI_MSIX | MSI_FLAG_CAN_EXPAND,
 	.ops		= &pci_msi_domain_ops,
 	.chip		= &pci_msi_ir_controller,
 	.handler	= handle_edge_irq,



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233703.405814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmV8-0003zT-Jb; Sat, 27 Nov 2021 01:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233703.405814; Sat, 27 Nov 2021 01:27:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmV8-0003xl-7z; Sat, 27 Nov 2021 01:27:38 +0000
Received: by outflank-mailman (input) for mailman id 233703;
 Sat, 27 Nov 2021 01:27:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNg-00020H-9y
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:56 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20688db0-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:54 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20688db0-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223825.320724006@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975994;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=kh2ZB8gumt7yFa2wjaDhpeN9tXzUfJvLkALkOS94EFA=;
	b=D9US/8tVMwlRfaqgiDmj8ly+USrLZ+QbU+koi5BF+9g0Iguix1/4W7JOvM77Fxvfxk0Pk4
	i3Alyb5QMZHm2M3doE0zc03SvL1G/N+bW29B5GT+JiK+vvoAlbXFGOqr1+ineD8/JbZxLU
	VefISwNxY93Qm1ylUIwl0+ZfwQytaWS63YV3kQ7UyjTBMGq2GViLeHOw0UV4yJZV5wEQAD
	BOCN8t3XNrraZIreQz7DQgTEE6WK/0Rw8FSfygM1uVbA31f7wm0TvILCaHzAcara9sqOXE
	zsr873tLkNtGYtX/TI5l1mJFeYDe+L1wjO8kk9uwsSbh+uyxfw/ICDIhVgWFVw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975994;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=kh2ZB8gumt7yFa2wjaDhpeN9tXzUfJvLkALkOS94EFA=;
	b=8Uh+QoxZaq46tV5s75Y6r3qCvSsAdyGP5v255GrAqW6V5bDTByErDycUXzyT6e32TmhIUx
	k69MGZ3JHevpO4BQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 21/22] genirq/msi: Handle PCI/MSI allocation fail in core code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:53 +0100 (CET)

Get rid of yet another irqdomain callback and let the core code return the
already available information of how many descriptors could be allocated.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |   13 -------------
 include/linux/msi.h         |    5 +----
 kernel/irq/msi.c            |   29 +++++++++++++++++++++++++----
 3 files changed, 26 insertions(+), 21 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -95,16 +95,6 @@ static int pci_msi_domain_check_cap(stru
 	return 0;
 }
 
-static int pci_msi_domain_handle_error(struct irq_domain *domain,
-				       struct msi_desc *desc, int error)
-{
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
-		return 1;
-
-	return error;
-}
-
 static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
 				    struct msi_desc *desc)
 {
@@ -115,7 +105,6 @@ static void pci_msi_domain_set_desc(msi_
 static struct msi_domain_ops pci_msi_domain_ops_default = {
 	.set_desc	= pci_msi_domain_set_desc,
 	.msi_check	= pci_msi_domain_check_cap,
-	.handle_error	= pci_msi_domain_handle_error,
 };
 
 static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
@@ -129,8 +118,6 @@ static void pci_msi_domain_update_dom_op
 			ops->set_desc = pci_msi_domain_set_desc;
 		if (ops->msi_check == NULL)
 			ops->msi_check = pci_msi_domain_check_cap;
-		if (ops->handle_error == NULL)
-			ops->handle_error = pci_msi_domain_handle_error;
 	}
 }
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -285,7 +285,6 @@ struct msi_domain_info;
  * @msi_check:		Callback for verification of the domain/info/dev data
  * @msi_prepare:	Prepare the allocation of the interrupts in the domain
  * @set_desc:		Set the msi descriptor for an interrupt
- * @handle_error:	Optional error handler if the allocation fails
  * @domain_alloc_irqs:	Optional function to override the default allocation
  *			function.
  * @domain_free_irqs:	Optional function to override the default free
@@ -294,7 +293,7 @@ struct msi_domain_info;
  * @get_hwirq, @msi_init and @msi_free are callbacks used by the underlying
  * irqdomain.
  *
- * @msi_check, @msi_prepare, @handle_error and @set_desc are callbacks used by
+ * @msi_check, @msi_prepare and @set_desc are callbacks used by
  * msi_domain_alloc/free_irqs().
  *
  * @domain_alloc_irqs, @domain_free_irqs can be used to override the
@@ -331,8 +330,6 @@ struct msi_domain_ops {
 				       msi_alloc_info_t *arg);
 	void		(*set_desc)(msi_alloc_info_t *arg,
 				    struct msi_desc *desc);
-	int		(*handle_error)(struct irq_domain *domain,
-					struct msi_desc *desc, int error);
 	int		(*domain_alloc_irqs)(struct irq_domain *domain,
 					     struct device *dev, int nvec);
 	void		(*domain_free_irqs)(struct irq_domain *domain,
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -538,6 +538,27 @@ static bool msi_check_reservation_mode(s
 	return desc->pci.msi_attrib.is_msix || desc->pci.msi_attrib.can_mask;
 }
 
+static int msi_handle_pci_fail(struct irq_domain *domain, struct msi_desc *desc,
+			       int allocated)
+{
+	switch(domain->bus_token) {
+	case DOMAIN_BUS_PCI_MSI:
+	case DOMAIN_BUS_VMD_MSI:
+		if (IS_ENABLED(CONFIG_PCI_MSI))
+			break;
+		fallthrough;
+	default:
+		return -ENOSPC;
+	}
+
+	/* Let a failed PCI multi MSI allocation retry */
+	if (desc->nvec_used > 1)
+		return 1;
+
+	/* If there was a successful allocation let the caller know */
+	return allocated ? allocated : -ENOSPC;
+}
+
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			    int nvec)
 {
@@ -546,6 +567,7 @@ int __msi_domain_alloc_irqs(struct irq_d
 	struct irq_data *irq_data;
 	struct msi_desc *desc;
 	msi_alloc_info_t arg = { };
+	int allocated = 0;
 	int i, ret, virq;
 	bool can_reserve;
 
@@ -560,16 +582,15 @@ int __msi_domain_alloc_irqs(struct irq_d
 					       dev_to_node(dev), &arg, false,
 					       desc->affinity);
 		if (virq < 0) {
-			ret = -ENOSPC;
-			if (ops->handle_error)
-				ret = ops->handle_error(domain, desc, ret);
-			return ret;
+			ret = msi_handle_pci_fail(domain, desc, allocated);
+			goto cleanup;
 		}
 
 		for (i = 0; i < desc->nvec_used; i++) {
 			irq_set_msi_desc_off(virq, i, desc);
 			irq_debugfs_copy_devname(virq + i, dev);
 		}
+		allocated++;
 	}
 
 	can_reserve = msi_check_reservation_mode(domain, info, dev);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233707.405828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVB-0004hT-HE; Sat, 27 Nov 2021 01:27:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233707.405828; Sat, 27 Nov 2021 01:27:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVB-0004gM-1k; Sat, 27 Nov 2021 01:27:41 +0000
Received: by outflank-mailman (input) for mailman id 233707;
 Sat, 27 Nov 2021 01:27:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMs-0002cc-19
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:06 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 02b149e7-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 02b149e7-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223825.149579184@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975943;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=4dZ5u/KLLAF96QQ3HrkfGIAnt5LZtWvWMcyqY5j4Z+c=;
	b=0FidfjPhCk+Lat9hiVfOiX6BwL5nuPZ45RrJ2UxepBp3A9EXfGYv/Bc0erjJoxp1yCd44B
	Ypy4tG5XGVVwPFlJp7xyPoO1sLzO/STdrE+O1R8sj1jBona5kSmE+URQidjuV2lsFOluzv
	pDn46hQRUesJ+KvCiJHVSKC/RPliINVCVACDKbxzOOM2LxcSIbtPvAiCH0WVq/sFTotkfj
	PDf4/O5tUkUPvT+OTcgog5cSnNnSqKqqOL2fE9DBT05h4GVVyOHoQsTvjjvo1cWamfSbUR
	K+j0Zle8qkrvWa7zQhouKM7Yl3EQIcX2GO9C4eaDyZzKIQcCraKrsQQ6URnmDg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975943;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=4dZ5u/KLLAF96QQ3HrkfGIAnt5LZtWvWMcyqY5j4Z+c=;
	b=TsmDuN+gfVaOjW6COerLqizAcRZJ8j2Nhvc3DeiaG3qw5OZ9F0ByyXKz8s1hK2m/zAnxIz
	9ZbCbBfpvGiZlCAQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 18/22] PCI/MSI: Split out irqdomain code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:02 +0100 (CET)

Move the irqdomain specific code into it's own file.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/Makefile    |    1 
 drivers/pci/msi/irqdomain.c |  279 ++++++++++++++++++++++++++++++++++++++
 drivers/pci/msi/legacy.c    |   10 +
 drivers/pci/msi/msi.c       |  319 +-------------------------------------------
 drivers/pci/msi/msi.h       |   39 +++++
 include/linux/msi.h         |   11 -
 6 files changed, 339 insertions(+), 320 deletions(-)

--- a/drivers/pci/msi/Makefile
+++ b/drivers/pci/msi/Makefile
@@ -3,4 +3,5 @@
 # Makefile for the PCI/MSI
 obj-$(CONFIG_PCI)			+= pcidev_msi.o
 obj-$(CONFIG_PCI_MSI)			+= msi.o
+obj-$(CONFIG_PCI_MSI_IRQ_DOMAIN)	+= irqdomain.o
 obj-$(CONFIG_PCI_MSI_ARCH_FALLBACKS)	+= legacy.o
--- /dev/null
+++ b/drivers/pci/msi/irqdomain.c
@@ -0,0 +1,279 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * PCI Message Signaled Interrupt (MSI) - irqdomain support
+ */
+#include <linux/acpi_iort.h>
+#include <linux/irqdomain.h>
+#include <linux/of_irq.h>
+
+#include "msi.h"
+
+int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	struct irq_domain *domain;
+
+	domain = dev_get_msi_domain(&dev->dev);
+	if (domain && irq_domain_is_hierarchy(domain))
+		return msi_domain_alloc_irqs(domain, &dev->dev, nvec);
+
+	return pci_msi_legacy_setup_msi_irqs(dev, nvec, type);
+}
+
+void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
+{
+	struct irq_domain *domain;
+
+	domain = dev_get_msi_domain(&dev->dev);
+	if (domain && irq_domain_is_hierarchy(domain))
+		msi_domain_free_irqs(domain, &dev->dev);
+	else
+		pci_msi_legacy_teardown_msi_irqs(dev);
+}
+
+/**
+ * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
+ * @irq_data:	Pointer to interrupt data of the MSI interrupt
+ * @msg:	Pointer to the message
+ */
+static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
+{
+	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
+
+	/*
+	 * For MSI-X desc->irq is always equal to irq_data->irq. For
+	 * MSI only the first interrupt of MULTI MSI passes the test.
+	 */
+	if (desc->irq == irq_data->irq)
+		__pci_write_msi_msg(desc, msg);
+}
+
+/**
+ * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
+ * @desc:	Pointer to the MSI descriptor
+ *
+ * The ID number is only used within the irqdomain.
+ */
+static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
+{
+	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
+
+	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
+		pci_dev_id(dev) << 11 |
+		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
+}
+
+static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
+{
+	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
+}
+
+/**
+ * pci_msi_domain_check_cap - Verify that @domain supports the capabilities
+ *			      for @dev
+ * @domain:	The interrupt domain to check
+ * @info:	The domain info for verification
+ * @dev:	The device to check
+ *
+ * Returns:
+ *  0 if the functionality is supported
+ *  1 if Multi MSI is requested, but the domain does not support it
+ *  -ENOTSUPP otherwise
+ */
+int pci_msi_domain_check_cap(struct irq_domain *domain,
+			     struct msi_domain_info *info, struct device *dev)
+{
+	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
+
+	/* Special handling to support __pci_enable_msi_range() */
+	if (pci_msi_desc_is_multi_msi(desc) &&
+	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
+		return 1;
+	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
+		return -ENOTSUPP;
+
+	return 0;
+}
+
+static int pci_msi_domain_handle_error(struct irq_domain *domain,
+				       struct msi_desc *desc, int error)
+{
+	/* Special handling to support __pci_enable_msi_range() */
+	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
+		return 1;
+
+	return error;
+}
+
+static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
+				    struct msi_desc *desc)
+{
+	arg->desc = desc;
+	arg->hwirq = pci_msi_domain_calc_hwirq(desc);
+}
+
+static struct msi_domain_ops pci_msi_domain_ops_default = {
+	.set_desc	= pci_msi_domain_set_desc,
+	.msi_check	= pci_msi_domain_check_cap,
+	.handle_error	= pci_msi_domain_handle_error,
+};
+
+static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
+{
+	struct msi_domain_ops *ops = info->ops;
+
+	if (ops == NULL) {
+		info->ops = &pci_msi_domain_ops_default;
+	} else {
+		if (ops->set_desc == NULL)
+			ops->set_desc = pci_msi_domain_set_desc;
+		if (ops->msi_check == NULL)
+			ops->msi_check = pci_msi_domain_check_cap;
+		if (ops->handle_error == NULL)
+			ops->handle_error = pci_msi_domain_handle_error;
+	}
+}
+
+static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
+{
+	struct irq_chip *chip = info->chip;
+
+	BUG_ON(!chip);
+	if (!chip->irq_write_msi_msg)
+		chip->irq_write_msi_msg = pci_msi_domain_write_msg;
+	if (!chip->irq_mask)
+		chip->irq_mask = pci_msi_mask_irq;
+	if (!chip->irq_unmask)
+		chip->irq_unmask = pci_msi_unmask_irq;
+}
+
+/**
+ * pci_msi_create_irq_domain - Create a MSI interrupt domain
+ * @fwnode:	Optional fwnode of the interrupt controller
+ * @info:	MSI domain info
+ * @parent:	Parent irq domain
+ *
+ * Updates the domain and chip ops and creates a MSI interrupt domain.
+ *
+ * Returns:
+ * A domain pointer or NULL in case of failure.
+ */
+struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
+					     struct msi_domain_info *info,
+					     struct irq_domain *parent)
+{
+	struct irq_domain *domain;
+
+	if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE))
+		info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
+
+	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
+		pci_msi_domain_update_dom_ops(info);
+	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
+		pci_msi_domain_update_chip_ops(info);
+
+	info->flags |= MSI_FLAG_ACTIVATE_EARLY;
+	if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
+		info->flags |= MSI_FLAG_MUST_REACTIVATE;
+
+	/* PCI-MSI is oneshot-safe */
+	info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
+
+	domain = msi_create_irq_domain(fwnode, info, parent);
+	if (!domain)
+		return NULL;
+
+	irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI);
+	return domain;
+}
+EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
+
+/*
+ * Users of the generic MSI infrastructure expect a device to have a single ID,
+ * so with DMA aliases we have to pick the least-worst compromise. Devices with
+ * DMA phantom functions tend to still emit MSIs from the real function number,
+ * so we ignore those and only consider topological aliases where either the
+ * alias device or RID appears on a different bus number. We also make the
+ * reasonable assumption that bridges are walked in an upstream direction (so
+ * the last one seen wins), and the much braver assumption that the most likely
+ * case is that of PCI->PCIe so we should always use the alias RID. This echoes
+ * the logic from intel_irq_remapping's set_msi_sid(), which presumably works
+ * well enough in practice; in the face of the horrible PCIe<->PCI-X conditions
+ * for taking ownership all we can really do is close our eyes and hope...
+ */
+static int get_msi_id_cb(struct pci_dev *pdev, u16 alias, void *data)
+{
+	u32 *pa = data;
+	u8 bus = PCI_BUS_NUM(*pa);
+
+	if (pdev->bus->number != bus || PCI_BUS_NUM(alias) != bus)
+		*pa = alias;
+
+	return 0;
+}
+
+/**
+ * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
+ * @domain:	The interrupt domain
+ * @pdev:	The PCI device.
+ *
+ * The RID for a device is formed from the alias, with a firmware
+ * supplied mapping applied
+ *
+ * Returns: The RID.
+ */
+u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
+{
+	struct device_node *of_node;
+	u32 rid = pci_dev_id(pdev);
+
+	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
+
+	of_node = irq_domain_get_of_node(domain);
+	rid = of_node ? of_msi_map_id(&pdev->dev, of_node, rid) :
+			iort_msi_map_id(&pdev->dev, rid);
+
+	return rid;
+}
+
+/**
+ * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
+ * @pdev:	The PCI device
+ *
+ * Use the firmware data to find a device-specific MSI domain
+ * (i.e. not one that is set as a default).
+ *
+ * Returns: The corresponding MSI domain or NULL if none has been found.
+ */
+struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
+{
+	struct irq_domain *dom;
+	u32 rid = pci_dev_id(pdev);
+
+	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
+	dom = of_msi_map_get_device_domain(&pdev->dev, rid, DOMAIN_BUS_PCI_MSI);
+	if (!dom)
+		dom = iort_get_device_domain(&pdev->dev, rid,
+					     DOMAIN_BUS_PCI_MSI);
+	return dom;
+}
+
+/**
+ * pci_dev_has_special_msi_domain - Check whether the device is handled by
+ *				    a non-standard PCI-MSI domain
+ * @pdev:	The PCI device to check.
+ *
+ * Returns: True if the device irqdomain or the bus irqdomain is
+ * non-standard PCI/MSI.
+ */
+bool pci_dev_has_special_msi_domain(struct pci_dev *pdev)
+{
+	struct irq_domain *dom = dev_get_msi_domain(&pdev->dev);
+
+	if (!dom)
+		dom = dev_get_msi_domain(&pdev->bus->dev);
+
+	if (!dom)
+		return true;
+
+	return dom->bus_token != DOMAIN_BUS_PCI_MSI;
+}
--- a/drivers/pci/msi/legacy.c
+++ b/drivers/pci/msi/legacy.c
@@ -50,3 +50,13 @@ void __weak arch_teardown_msi_irqs(struc
 		}
 	}
 }
+
+int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	return arch_setup_msi_irqs(dev, nvec, type);
+}
+
+void pci_msi_legacy_teardown_msi_irqs(struct pci_dev *dev)
+{
+	arch_teardown_msi_irqs(dev);
+}
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -6,64 +6,16 @@
  * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
  * Copyright (C) 2016 Christoph Hellwig.
  */
-
-#include <linux/acpi_iort.h>
 #include <linux/err.h>
 #include <linux/export.h>
 #include <linux/irq.h>
-#include <linux/irqdomain.h>
-#include <linux/msi.h>
-#include <linux/of_irq.h>
-#include <linux/pci.h>
 
 #include "../pci.h"
+#include "msi.h"
 
 static int pci_msi_enable = 1;
 int pci_msi_ignore_mask;
 
-#define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
-
-#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-static int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct irq_domain *domain;
-
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
-		return msi_domain_alloc_irqs(domain, &dev->dev, nvec);
-
-	return arch_setup_msi_irqs(dev, nvec, type);
-}
-
-static void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
-{
-	struct irq_domain *domain;
-
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
-		msi_domain_free_irqs(domain, &dev->dev);
-	else
-		arch_teardown_msi_irqs(dev);
-}
-#else
-#define pci_msi_setup_msi_irqs		arch_setup_msi_irqs
-#define pci_msi_teardown_msi_irqs	arch_teardown_msi_irqs
-#endif
-
-/*
- * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
- * mask all MSI interrupts by clearing the MSI enable bit does not work
- * reliably as devices without an INTx disable bit will then generate a
- * level IRQ which will never be cleared.
- */
-static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
-{
-	/* Don't shift by >= width of type */
-	if (desc->pci.msi_attrib.multi_cap >= 5)
-		return 0xffffffff;
-	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
-}
-
 static noinline void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set)
 {
 	raw_spinlock_t *lock = &desc->dev->msi_lock;
@@ -903,23 +855,6 @@ void pci_disable_msix(struct pci_dev *de
 }
 EXPORT_SYMBOL(pci_disable_msix);
 
-void pci_no_msi(void)
-{
-	pci_msi_enable = 0;
-}
-
-/**
- * pci_msi_enabled - is MSI enabled?
- *
- * Returns true if MSI has not been disabled by the command-line option
- * pci=nomsi.
- **/
-int pci_msi_enabled(void)
-{
-	return pci_msi_enable;
-}
-EXPORT_SYMBOL(pci_msi_enabled);
-
 static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
 				  struct irq_affinity *affd)
 {
@@ -1181,253 +1116,19 @@ struct pci_dev *msi_desc_to_pci_dev(stru
 }
 EXPORT_SYMBOL(msi_desc_to_pci_dev);
 
-#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-/**
- * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
- * @irq_data:	Pointer to interrupt data of the MSI interrupt
- * @msg:	Pointer to the message
- */
-static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
-{
-	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
-
-	/*
-	 * For MSI-X desc->irq is always equal to irq_data->irq. For
-	 * MSI only the first interrupt of MULTI MSI passes the test.
-	 */
-	if (desc->irq == irq_data->irq)
-		__pci_write_msi_msg(desc, msg);
-}
-
-/**
- * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
- * @desc:	Pointer to the MSI descriptor
- *
- * The ID number is only used within the irqdomain.
- */
-static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
-
-	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
-		pci_dev_id(dev) << 11 |
-		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
-}
-
-static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
-{
-	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
-}
-
-/**
- * pci_msi_domain_check_cap - Verify that @domain supports the capabilities
- * 			      for @dev
- * @domain:	The interrupt domain to check
- * @info:	The domain info for verification
- * @dev:	The device to check
- *
- * Returns:
- *  0 if the functionality is supported
- *  1 if Multi MSI is requested, but the domain does not support it
- *  -ENOTSUPP otherwise
- */
-int pci_msi_domain_check_cap(struct irq_domain *domain,
-			     struct msi_domain_info *info, struct device *dev)
-{
-	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
-
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) &&
-	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
-		return 1;
-	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
-		return -ENOTSUPP;
-
-	return 0;
-}
-
-static int pci_msi_domain_handle_error(struct irq_domain *domain,
-				       struct msi_desc *desc, int error)
-{
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
-		return 1;
-
-	return error;
-}
-
-static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
-				    struct msi_desc *desc)
-{
-	arg->desc = desc;
-	arg->hwirq = pci_msi_domain_calc_hwirq(desc);
-}
-
-static struct msi_domain_ops pci_msi_domain_ops_default = {
-	.set_desc	= pci_msi_domain_set_desc,
-	.msi_check	= pci_msi_domain_check_cap,
-	.handle_error	= pci_msi_domain_handle_error,
-};
-
-static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
-{
-	struct msi_domain_ops *ops = info->ops;
-
-	if (ops == NULL) {
-		info->ops = &pci_msi_domain_ops_default;
-	} else {
-		if (ops->set_desc == NULL)
-			ops->set_desc = pci_msi_domain_set_desc;
-		if (ops->msi_check == NULL)
-			ops->msi_check = pci_msi_domain_check_cap;
-		if (ops->handle_error == NULL)
-			ops->handle_error = pci_msi_domain_handle_error;
-	}
-}
-
-static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
-{
-	struct irq_chip *chip = info->chip;
-
-	BUG_ON(!chip);
-	if (!chip->irq_write_msi_msg)
-		chip->irq_write_msi_msg = pci_msi_domain_write_msg;
-	if (!chip->irq_mask)
-		chip->irq_mask = pci_msi_mask_irq;
-	if (!chip->irq_unmask)
-		chip->irq_unmask = pci_msi_unmask_irq;
-}
-
-/**
- * pci_msi_create_irq_domain - Create a MSI interrupt domain
- * @fwnode:	Optional fwnode of the interrupt controller
- * @info:	MSI domain info
- * @parent:	Parent irq domain
- *
- * Updates the domain and chip ops and creates a MSI interrupt domain.
- *
- * Returns:
- * A domain pointer or NULL in case of failure.
- */
-struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
-					     struct msi_domain_info *info,
-					     struct irq_domain *parent)
-{
-	struct irq_domain *domain;
-
-	if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE))
-		info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
-
-	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
-		pci_msi_domain_update_dom_ops(info);
-	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
-		pci_msi_domain_update_chip_ops(info);
-
-	info->flags |= MSI_FLAG_ACTIVATE_EARLY;
-	if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
-		info->flags |= MSI_FLAG_MUST_REACTIVATE;
-
-	/* PCI-MSI is oneshot-safe */
-	info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
-
-	domain = msi_create_irq_domain(fwnode, info, parent);
-	if (!domain)
-		return NULL;
-
-	irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI);
-	return domain;
-}
-EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
-
-/*
- * Users of the generic MSI infrastructure expect a device to have a single ID,
- * so with DMA aliases we have to pick the least-worst compromise. Devices with
- * DMA phantom functions tend to still emit MSIs from the real function number,
- * so we ignore those and only consider topological aliases where either the
- * alias device or RID appears on a different bus number. We also make the
- * reasonable assumption that bridges are walked in an upstream direction (so
- * the last one seen wins), and the much braver assumption that the most likely
- * case is that of PCI->PCIe so we should always use the alias RID. This echoes
- * the logic from intel_irq_remapping's set_msi_sid(), which presumably works
- * well enough in practice; in the face of the horrible PCIe<->PCI-X conditions
- * for taking ownership all we can really do is close our eyes and hope...
- */
-static int get_msi_id_cb(struct pci_dev *pdev, u16 alias, void *data)
-{
-	u32 *pa = data;
-	u8 bus = PCI_BUS_NUM(*pa);
-
-	if (pdev->bus->number != bus || PCI_BUS_NUM(alias) != bus)
-		*pa = alias;
-
-	return 0;
-}
-
-/**
- * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
- * @domain:	The interrupt domain
- * @pdev:	The PCI device.
- *
- * The RID for a device is formed from the alias, with a firmware
- * supplied mapping applied
- *
- * Returns: The RID.
- */
-u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
-{
-	struct device_node *of_node;
-	u32 rid = pci_dev_id(pdev);
-
-	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
-
-	of_node = irq_domain_get_of_node(domain);
-	rid = of_node ? of_msi_map_id(&pdev->dev, of_node, rid) :
-			iort_msi_map_id(&pdev->dev, rid);
-
-	return rid;
-}
-
-/**
- * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
- * @pdev:	The PCI device
- *
- * Use the firmware data to find a device-specific MSI domain
- * (i.e. not one that is set as a default).
- *
- * Returns: The corresponding MSI domain or NULL if none has been found.
- */
-struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
+void pci_no_msi(void)
 {
-	struct irq_domain *dom;
-	u32 rid = pci_dev_id(pdev);
-
-	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
-	dom = of_msi_map_get_device_domain(&pdev->dev, rid, DOMAIN_BUS_PCI_MSI);
-	if (!dom)
-		dom = iort_get_device_domain(&pdev->dev, rid,
-					     DOMAIN_BUS_PCI_MSI);
-	return dom;
+	pci_msi_enable = 0;
 }
 
 /**
- * pci_dev_has_special_msi_domain - Check whether the device is handled by
- *				    a non-standard PCI-MSI domain
- * @pdev:	The PCI device to check.
+ * pci_msi_enabled - is MSI enabled?
  *
- * Returns: True if the device irqdomain or the bus irqdomain is
- * non-standard PCI/MSI.
- */
-bool pci_dev_has_special_msi_domain(struct pci_dev *pdev)
+ * Returns true if MSI has not been disabled by the command-line option
+ * pci=nomsi.
+ **/
+int pci_msi_enabled(void)
 {
-	struct irq_domain *dom = dev_get_msi_domain(&pdev->dev);
-
-	if (!dom)
-		dom = dev_get_msi_domain(&pdev->bus->dev);
-
-	if (!dom)
-		return true;
-
-	return dom->bus_token != DOMAIN_BUS_PCI_MSI;
+	return pci_msi_enable;
 }
-
-#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
+EXPORT_SYMBOL(pci_msi_enabled);
--- /dev/null
+++ b/drivers/pci/msi/msi.h
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <linux/pci.h>
+#include <linux/msi.h>
+
+#define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
+
+extern int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
+extern void pci_msi_teardown_msi_irqs(struct pci_dev *dev);
+
+#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
+extern int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
+extern void pci_msi_legacy_teardown_msi_irqs(struct pci_dev *dev);
+#else
+static inline int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	WARN_ON_ONCE(1);
+	return -ENODEV;
+}
+
+static inline void pci_msi_legacy_teardown_msi_irqs(struct pci_dev *dev)
+{
+	WARN_ON_ONCE(1);
+}
+#endif
+
+/*
+ * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
+ * mask all MSI interrupts by clearing the MSI enable bit does not work
+ * reliably as devices without an INTx disable bit will then generate a
+ * level IRQ which will never be cleared.
+ */
+static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
+{
+	/* Don't shift by >= width of type */
+	if (desc->pci.msi_attrib.multi_cap >= 5)
+		return 0xffffffff;
+	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
+}
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -258,17 +258,6 @@ int arch_setup_msi_irq(struct pci_dev *d
 void arch_teardown_msi_irq(unsigned int irq);
 int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
 void arch_teardown_msi_irqs(struct pci_dev *dev);
-#else
-static inline int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	WARN_ON_ONCE(1);
-	return -ENODEV;
-}
-
-static inline void arch_teardown_msi_irqs(struct pci_dev *dev)
-{
-	WARN_ON_ONCE(1);
-}
 #endif
 
 /*



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233711.405840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVE-0005Rl-Nn; Sat, 27 Nov 2021 01:27:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233711.405840; Sat, 27 Nov 2021 01:27:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVE-0005Qz-Aq; Sat, 27 Nov 2021 01:27:44 +0000
Received: by outflank-mailman (input) for mailman id 233711;
 Sat, 27 Nov 2021 01:27:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNJ-0002cc-1z
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:33 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 134f63c5-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:32 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 134f63c5-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223824.499448912@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975972;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=+rP3SiVoHOK5Hyn2EAGrDg54y7+IEHUse42w3xFRuo4=;
	b=GZtNRyLlH/e5OpTSND8bF970MJ3fY7FdRfj38E/r7ng2p45KWkHgceg0icdFzPLgigpytE
	Fym4baUdy07DdDIOiZrpNxxF++OCBY7W8j1lEVZULJLifakW6LTg7ijAAoGZxbG8XQdhbz
	VCrepKXpYyJqAikJNbdrnWREwoaNCp2+XxA3nYx2haGIusHDn2lh1fxH5hP2L4o5jnZRqC
	jeF8Sj+ixZNdquUFrUfT/U1WNOZxyjieeFTKxIRFoaZK0fcR3nhRE/5uXoRGIXozQ1Gh07
	L3hpfVi+jBbigVTbuJXxNd944CCq/zvAdZ8Aebuq5TBGq06NoA8cmAqFsS1dNA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975972;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=+rP3SiVoHOK5Hyn2EAGrDg54y7+IEHUse42w3xFRuo4=;
	b=X5sjWWkhuqv/3zYkRcRE3edfZTIPgaV55WlsS4t3lgLnAlxdopVc0evkJrDtSxZnMxBMsJ
	LRlkDSzBSKFgBRBw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 07/22] PCI/MSI: Remove msi_desc_to_pci_sysdata()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:31 +0100 (CET)

Last user is gone long ago.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi.c   |    8 --------
 include/linux/msi.h |    5 -----
 2 files changed, 13 deletions(-)

--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1253,14 +1253,6 @@ struct pci_dev *msi_desc_to_pci_dev(stru
 }
 EXPORT_SYMBOL(msi_desc_to_pci_dev);
 
-void *msi_desc_to_pci_sysdata(struct msi_desc *desc)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
-
-	return dev->bus->sysdata;
-}
-EXPORT_SYMBOL_GPL(msi_desc_to_pci_sysdata);
-
 #ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
 /**
  * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -217,13 +217,8 @@ static inline void msi_desc_set_iommu_co
 	for_each_msi_entry((desc), &(pdev)->dev)
 
 struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc);
-void *msi_desc_to_pci_sysdata(struct msi_desc *desc);
 void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg);
 #else /* CONFIG_PCI_MSI */
-static inline void *msi_desc_to_pci_sysdata(struct msi_desc *desc)
-{
-	return NULL;
-}
 static inline void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg)
 {
 }



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233714.405852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVM-0006nZ-7K; Sat, 27 Nov 2021 01:27:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233714.405852; Sat, 27 Nov 2021 01:27:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVL-0006n9-TB; Sat, 27 Nov 2021 01:27:51 +0000
Received: by outflank-mailman (input) for mailman id 233714;
 Sat, 27 Nov 2021 01:27:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNR-0002cc-7j
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:41 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18076d72-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:40 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18076d72-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223824.796031314@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975980;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=Y52GWxcz9rMhYuk4LDNfYqjI18nIR0XFpc/LxzUOn2o=;
	b=jtSwgT8Sx+6mYyFj7rRwjmMCaZ5jmZeBj+bde62/rCSiUbU1bWSOPG7pNKtWoZzFWq3Q4V
	9i7eEClzvfAv1SwBF4EhWoglnlsoAud6MWwOgLlcZpkYxHXIKXEbbn68jE2Vo5g5aTeE3W
	Xt3hqZCC6lytPClhUMOH0glEYRxknPexyBUhxrwc2TBd4oXnAf2eu4bDJs9FXBq/7gAWBp
	CYddHjfmx5tf+8Tj0dnHxVq2zR0uUeBq7dMDiAt3voFkx2BEzmEunekVTs6318Aum4WJM8
	AoQRfY75N1vh8tzVoz7ps1g2KU6zYmSWWBx+B+1M4Z1AyWWJoFf0BKXSRPjqow==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975980;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=Y52GWxcz9rMhYuk4LDNfYqjI18nIR0XFpc/LxzUOn2o=;
	b=0xCN+VbtqfDLEjT3n+7uMxH8Xtnx+mvi/WbEgW0AlDXIDDSQBSVtOYDCV/lpgIp1Yirt5M
	0kQw2OURn5vQEHBg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org
Subject: [patch 12/22] PCI/MSI: Make arch_restore_msi_irqs() less horrible.
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:39 +0100 (CET)

Make arch_restore_msi_irqs() return a boolean which indicates whether the
core code should restore the MSI message or not. Get rid of the indirection
in x86.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Juergen Gross <jgross@suse.com>
Cc: x86@kernel.org
Cc: xen-devel@lists.xenproject.org
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
---
 arch/s390/pci/pci_irq.c               |    4 +-
 arch/x86/include/asm/x86_init.h       |    6 ---
 arch/x86/include/asm/xen/hypervisor.h |    8 +++++
 arch/x86/kernel/apic/msi.c            |    6 +++
 arch/x86/kernel/x86_init.c            |   12 -------
 arch/x86/pci/xen.c                    |   13 ++++----
 drivers/pci/msi.c                     |   54 +++++++++++-----------------------
 include/linux/msi.h                   |    7 +---
 8 files changed, 45 insertions(+), 65 deletions(-)

--- a/arch/s390/pci/pci_irq.c
+++ b/arch/s390/pci/pci_irq.c
@@ -387,13 +387,13 @@ void arch_teardown_msi_irqs(struct pci_d
 		airq_iv_free(zpci_ibv[0], zdev->msi_first_bit, zdev->msi_nr_irqs);
 }
 
-void arch_restore_msi_irqs(struct pci_dev *pdev)
+bool arch_restore_msi_irqs(struct pci_dev *pdev)
 {
 	struct zpci_dev *zdev = to_zpci(pdev);
 
 	if (!zdev->irqs_registered)
 		zpci_set_irq(zdev);
-	default_restore_msi_irqs(pdev);
+	return true;
 }
 
 static struct airq_struct zpci_airq = {
--- a/arch/x86/include/asm/x86_init.h
+++ b/arch/x86/include/asm/x86_init.h
@@ -289,12 +289,6 @@ struct x86_platform_ops {
 	struct x86_hyper_runtime hyper;
 };
 
-struct pci_dev;
-
-struct x86_msi_ops {
-	void (*restore_msi_irqs)(struct pci_dev *dev);
-};
-
 struct x86_apic_ops {
 	unsigned int	(*io_apic_read)   (unsigned int apic, unsigned int reg);
 	void		(*restore)(void);
--- a/arch/x86/include/asm/xen/hypervisor.h
+++ b/arch/x86/include/asm/xen/hypervisor.h
@@ -57,6 +57,14 @@ static inline bool __init xen_x2apic_par
 }
 #endif
 
+struct pci_dev;
+
+#ifdef CONFIG_XEN_DOM0
+bool xen_initdom_restore_msi(struct pci_dev *dev);
+#else
+static inline bool xen_initdom_restore_msi(struct pci_dev *dev) { return true; }
+#endif
+
 #ifdef CONFIG_HOTPLUG_CPU
 void xen_arch_register_cpu(int num);
 void xen_arch_unregister_cpu(int num);
--- a/arch/x86/kernel/apic/msi.c
+++ b/arch/x86/kernel/apic/msi.c
@@ -17,6 +17,7 @@
 #include <asm/irqdomain.h>
 #include <asm/hpet.h>
 #include <asm/hw_irq.h>
+#include <asm/hypervisor.h>
 #include <asm/apic.h>
 #include <asm/irq_remapping.h>
 
@@ -345,3 +346,8 @@ void dmar_free_hwirq(int irq)
 	irq_domain_free_irqs(irq, 1);
 }
 #endif
+
+bool arch_restore_msi_irqs(struct pci_dev *dev)
+{
+	return xen_initdom_restore_msi(dev);
+}
--- a/arch/x86/kernel/x86_init.c
+++ b/arch/x86/kernel/x86_init.c
@@ -145,18 +145,6 @@ struct x86_platform_ops x86_platform __r
 
 EXPORT_SYMBOL_GPL(x86_platform);
 
-#if defined(CONFIG_PCI_MSI)
-struct x86_msi_ops x86_msi __ro_after_init = {
-	.restore_msi_irqs	= default_restore_msi_irqs,
-};
-
-/* MSI arch specific hooks */
-void arch_restore_msi_irqs(struct pci_dev *dev)
-{
-	x86_msi.restore_msi_irqs(dev);
-}
-#endif
-
 struct x86_apic_ops x86_apic_ops __ro_after_init = {
 	.io_apic_read	= native_io_apic_read,
 	.restore	= native_restore_boot_irq_mode,
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -351,10 +351,13 @@ static int xen_initdom_setup_msi_irqs(st
 	return ret;
 }
 
-static void xen_initdom_restore_msi_irqs(struct pci_dev *dev)
+bool xen_initdom_restore_msi(struct pci_dev *dev)
 {
 	int ret = 0;
 
+	if (!xen_initial_domain())
+		return true;
+
 	if (pci_seg_supported) {
 		struct physdev_pci_device restore_ext;
 
@@ -375,10 +378,10 @@ static void xen_initdom_restore_msi_irqs
 		ret = HYPERVISOR_physdev_op(PHYSDEVOP_restore_msi, &restore);
 		WARN(ret && ret != -ENOSYS, "restore_msi -> %d\n", ret);
 	}
+	return false;
 }
 #else /* CONFIG_XEN_PV_DOM0 */
 #define xen_initdom_setup_msi_irqs	NULL
-#define xen_initdom_restore_msi_irqs	NULL
 #endif /* !CONFIG_XEN_PV_DOM0 */
 
 static void xen_teardown_msi_irqs(struct pci_dev *dev)
@@ -466,12 +469,10 @@ static __init struct irq_domain *xen_cre
 static __init void xen_setup_pci_msi(void)
 {
 	if (xen_pv_domain()) {
-		if (xen_initial_domain()) {
+		if (xen_initial_domain())
 			xen_msi_ops.setup_msi_irqs = xen_initdom_setup_msi_irqs;
-			x86_msi.restore_msi_irqs = xen_initdom_restore_msi_irqs;
-		} else {
+		else
 			xen_msi_ops.setup_msi_irqs = xen_setup_msi_irqs;
-		}
 		xen_msi_ops.teardown_msi_irqs = xen_pv_teardown_msi_irqs;
 		pci_msi_ignore_mask = 1;
 	} else if (xen_hvm_domain()) {
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -106,29 +106,6 @@ void __weak arch_teardown_msi_irqs(struc
 }
 #endif /* CONFIG_PCI_MSI_ARCH_FALLBACKS */
 
-static void default_restore_msi_irq(struct pci_dev *dev, int irq)
-{
-	struct msi_desc *entry;
-
-	entry = NULL;
-	if (dev->msix_enabled) {
-		for_each_pci_msi_entry(entry, dev) {
-			if (irq == entry->irq)
-				break;
-		}
-	} else if (dev->msi_enabled)  {
-		entry = irq_get_msi_desc(irq);
-	}
-
-	if (entry)
-		__pci_write_msi_msg(entry, &entry->msg);
-}
-
-void __weak arch_restore_msi_irqs(struct pci_dev *dev)
-{
-	return default_restore_msi_irqs(dev);
-}
-
 /*
  * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
  * mask all MSI interrupts by clearing the MSI enable bit does not work
@@ -242,14 +219,6 @@ void pci_msi_unmask_irq(struct irq_data
 }
 EXPORT_SYMBOL_GPL(pci_msi_unmask_irq);
 
-void default_restore_msi_irqs(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-
-	for_each_pci_msi_entry(entry, dev)
-		default_restore_msi_irq(dev, entry->irq);
-}
-
 void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
 {
 	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
@@ -403,10 +372,19 @@ static void pci_msi_set_enable(struct pc
 	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
 }
 
+/*
+ * Architecture override returns true when the PCI MSI message should be
+ * written by the generic restore function.
+ */
+bool __weak arch_restore_msi_irqs(struct pci_dev *dev)
+{
+	return true;
+}
+
 static void __pci_restore_msi_state(struct pci_dev *dev)
 {
-	u16 control;
 	struct msi_desc *entry;
+	u16 control;
 
 	if (!dev->msi_enabled)
 		return;
@@ -415,7 +393,8 @@ static void __pci_restore_msi_state(stru
 
 	pci_intx_for_msi(dev, 0);
 	pci_msi_set_enable(dev, 0);
-	arch_restore_msi_irqs(dev);
+	if (arch_restore_msi_irqs(dev))
+		__pci_write_msi_msg(entry, &entry->msg);
 
 	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
 	pci_msi_update_mask(entry, 0, 0);
@@ -437,6 +416,7 @@ static void pci_msix_clear_and_set_ctrl(
 static void __pci_restore_msix_state(struct pci_dev *dev)
 {
 	struct msi_desc *entry;
+	bool write_msg;
 
 	if (!dev->msix_enabled)
 		return;
@@ -447,9 +427,13 @@ static void __pci_restore_msix_state(str
 	pci_msix_clear_and_set_ctrl(dev, 0,
 				PCI_MSIX_FLAGS_ENABLE | PCI_MSIX_FLAGS_MASKALL);
 
-	arch_restore_msi_irqs(dev);
-	for_each_pci_msi_entry(entry, dev)
+	write_msg = arch_restore_msi_irqs(dev);
+
+	for_each_pci_msi_entry(entry, dev) {
+		if (write_msg)
+			__pci_write_msi_msg(entry, &entry->msg);
 		pci_msix_write_vector_ctrl(entry, entry->pci.msix_ctrl);
+	}
 
 	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
 }
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -272,11 +272,10 @@ static inline void arch_teardown_msi_irq
 #endif
 
 /*
- * The restore hooks are still available as they are useful even
- * for fully irq domain based setups. Courtesy to XEN/X86.
+ * The restore hook is still available even for fully irq domain based
+ * setups. Courtesy to XEN/X86.
  */
-void arch_restore_msi_irqs(struct pci_dev *dev);
-void default_restore_msi_irqs(struct pci_dev *dev);
+bool arch_restore_msi_irqs(struct pci_dev *dev);
 
 #ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233717.405856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVM-0006vP-Us; Sat, 27 Nov 2021 01:27:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233717.405856; Sat, 27 Nov 2021 01:27:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVM-0006tK-Ip; Sat, 27 Nov 2021 01:27:52 +0000
Received: by outflank-mailman (input) for mailman id 233717;
 Sat, 27 Nov 2021 01:27:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNY-00020H-76
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:48 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b234e2a-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b234e2a-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223824.974731648@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975985;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=hci7uMFGfD5nIiubN1zLkrws1cYlWk8fGOVQsprhF+I=;
	b=LWiqx8moQ712LLR5+BxwVRD9HWyifbijOhb2Acc+DWQPoll097OmmOW6cKRukOMUMHBCFg
	8hfrd5uaxvCfjMXG68SXedKoxQMyZxLWQHCzNJS9Ai4lwlDGlNMQnuKcYVIm/pkBLHmyPT
	5xNHt2SpcAM9o4+suVhNZhLO4zUvnwPloQNUbgl2mXJ9QuQdYOh/acXO9+WA9k5eH9biY5
	PghoX5U0tIJFMwy30gTI7n4eUxyykOU0RlCM4PZ7DG5Q1tLDKq3NDNnbcvCfGs76y43Vkb
	5flx+XXLP14vOtCw5JcX277MuTk20Nn/wyJe6+YGXRVGuGGeP33EOYY56GzWEA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975985;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=hci7uMFGfD5nIiubN1zLkrws1cYlWk8fGOVQsprhF+I=;
	b=Md5NzRNio0nnPmkTdKwps7/09MjxNBKKHnEuYFpUq9yK7v3er6eRFJ4oqtRdjBw4OKFge2
	QHP0SWllKyprLkBQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 15/22] PCI/MSI: Move code into a separate directory
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:44 +0100 (CET)

msi.c is getting larger and really could do with a splitup. Move it into
it's own directory to prepare for that.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 Documentation/driver-api/pci/pci.rst |    2 
 drivers/pci/Makefile                 |    3 
 drivers/pci/msi.c                    | 1532 -----------------------------------
 drivers/pci/msi/Makefile             |    4 
 drivers/pci/msi/msi.c                | 1532 +++++++++++++++++++++++++++++++++++
 5 files changed, 1539 insertions(+), 1534 deletions(-)

--- a/Documentation/driver-api/pci/pci.rst
+++ b/Documentation/driver-api/pci/pci.rst
@@ -13,7 +13,7 @@ PCI Support Library
 .. kernel-doc:: drivers/pci/search.c
    :export:
 
-.. kernel-doc:: drivers/pci/msi.c
+.. kernel-doc:: drivers/pci/msi/msi.c
    :export:
 
 .. kernel-doc:: drivers/pci/bus.c
--- a/drivers/pci/Makefile
+++ b/drivers/pci/Makefile
@@ -5,8 +5,9 @@
 obj-$(CONFIG_PCI)		+= access.o bus.o probe.o host-bridge.o \
 				   remove.o pci.o pci-driver.o search.o \
 				   pci-sysfs.o rom.o setup-res.o irq.o vpd.o \
-				   setup-bus.o vc.o mmap.o setup-irq.o msi.o
+				   setup-bus.o vc.o mmap.o setup-irq.o
 
+obj-$(CONFIG_PCI)		+= msi/
 obj-$(CONFIG_PCI)		+= pcie/
 
 ifdef CONFIG_PCI
--- a/drivers/pci/msi.c
+++ /dev/null
@@ -1,1532 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * PCI Message Signaled Interrupt (MSI)
- *
- * Copyright (C) 2003-2004 Intel
- * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
- * Copyright (C) 2016 Christoph Hellwig.
- */
-
-#include <linux/acpi_iort.h>
-#include <linux/err.h>
-#include <linux/export.h>
-#include <linux/irq.h>
-#include <linux/irqdomain.h>
-#include <linux/msi.h>
-#include <linux/of_irq.h>
-#include <linux/pci.h>
-
-#include "pci.h"
-
-#ifdef CONFIG_PCI_MSI
-
-static int pci_msi_enable = 1;
-int pci_msi_ignore_mask;
-
-#define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
-
-#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-static int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct irq_domain *domain;
-
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
-		return msi_domain_alloc_irqs(domain, &dev->dev, nvec);
-
-	return arch_setup_msi_irqs(dev, nvec, type);
-}
-
-static void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
-{
-	struct irq_domain *domain;
-
-	domain = dev_get_msi_domain(&dev->dev);
-	if (domain && irq_domain_is_hierarchy(domain))
-		msi_domain_free_irqs(domain, &dev->dev);
-	else
-		arch_teardown_msi_irqs(dev);
-}
-#else
-#define pci_msi_setup_msi_irqs		arch_setup_msi_irqs
-#define pci_msi_teardown_msi_irqs	arch_teardown_msi_irqs
-#endif
-
-#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
-/* Arch hooks */
-int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
-{
-	return -EINVAL;
-}
-
-void __weak arch_teardown_msi_irq(unsigned int irq)
-{
-}
-
-int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	struct msi_desc *entry;
-	int ret;
-
-	/*
-	 * If an architecture wants to support multiple MSI, it needs to
-	 * override arch_setup_msi_irqs()
-	 */
-	if (type == PCI_CAP_ID_MSI && nvec > 1)
-		return 1;
-
-	for_each_pci_msi_entry(entry, dev) {
-		ret = arch_setup_msi_irq(dev, entry);
-		if (ret < 0)
-			return ret;
-		if (ret > 0)
-			return -ENOSPC;
-	}
-
-	return 0;
-}
-
-void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
-{
-	int i;
-	struct msi_desc *entry;
-
-	for_each_pci_msi_entry(entry, dev)
-		if (entry->irq)
-			for (i = 0; i < entry->nvec_used; i++)
-				arch_teardown_msi_irq(entry->irq + i);
-}
-#endif /* CONFIG_PCI_MSI_ARCH_FALLBACKS */
-
-/*
- * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
- * mask all MSI interrupts by clearing the MSI enable bit does not work
- * reliably as devices without an INTx disable bit will then generate a
- * level IRQ which will never be cleared.
- */
-static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
-{
-	/* Don't shift by >= width of type */
-	if (desc->pci.msi_attrib.multi_cap >= 5)
-		return 0xffffffff;
-	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
-}
-
-static noinline void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set)
-{
-	raw_spinlock_t *lock = &desc->dev->msi_lock;
-	unsigned long flags;
-
-	if (!desc->pci.msi_attrib.can_mask)
-		return;
-
-	raw_spin_lock_irqsave(lock, flags);
-	desc->pci.msi_mask &= ~clear;
-	desc->pci.msi_mask |= set;
-	pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->pci.mask_pos,
-			       desc->pci.msi_mask);
-	raw_spin_unlock_irqrestore(lock, flags);
-}
-
-static inline void pci_msi_mask(struct msi_desc *desc, u32 mask)
-{
-	pci_msi_update_mask(desc, 0, mask);
-}
-
-static inline void pci_msi_unmask(struct msi_desc *desc, u32 mask)
-{
-	pci_msi_update_mask(desc, mask, 0);
-}
-
-static inline void __iomem *pci_msix_desc_addr(struct msi_desc *desc)
-{
-	return desc->pci.mask_base + desc->pci.msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE;
-}
-
-/*
- * This internal function does not flush PCI writes to the device.  All
- * users must ensure that they read from the device before either assuming
- * that the device state is up to date, or returning out of this file.
- * It does not affect the msi_desc::msix_ctrl cache either. Use with care!
- */
-static void pci_msix_write_vector_ctrl(struct msi_desc *desc, u32 ctrl)
-{
-	void __iomem *desc_addr = pci_msix_desc_addr(desc);
-
-	if (desc->pci.msi_attrib.can_mask)
-		writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
-}
-
-static inline void pci_msix_mask(struct msi_desc *desc)
-{
-	desc->pci.msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
-	/* Flush write to device */
-	readl(desc->pci.mask_base);
-}
-
-static inline void pci_msix_unmask(struct msi_desc *desc)
-{
-	desc->pci.msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
-}
-
-static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
-{
-	if (desc->pci.msi_attrib.is_msix)
-		pci_msix_mask(desc);
-	else
-		pci_msi_mask(desc, mask);
-}
-
-static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
-{
-	if (desc->pci.msi_attrib.is_msix)
-		pci_msix_unmask(desc);
-	else
-		pci_msi_unmask(desc, mask);
-}
-
-/**
- * pci_msi_mask_irq - Generic IRQ chip callback to mask PCI/MSI interrupts
- * @data:	pointer to irqdata associated to that interrupt
- */
-void pci_msi_mask_irq(struct irq_data *data)
-{
-	struct msi_desc *desc = irq_data_get_msi_desc(data);
-
-	__pci_msi_mask_desc(desc, BIT(data->irq - desc->irq));
-}
-EXPORT_SYMBOL_GPL(pci_msi_mask_irq);
-
-/**
- * pci_msi_unmask_irq - Generic IRQ chip callback to unmask PCI/MSI interrupts
- * @data:	pointer to irqdata associated to that interrupt
- */
-void pci_msi_unmask_irq(struct irq_data *data)
-{
-	struct msi_desc *desc = irq_data_get_msi_desc(data);
-
-	__pci_msi_unmask_desc(desc, BIT(data->irq - desc->irq));
-}
-EXPORT_SYMBOL_GPL(pci_msi_unmask_irq);
-
-void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
-
-	BUG_ON(dev->current_state != PCI_D0);
-
-	if (entry->pci.msi_attrib.is_msix) {
-		void __iomem *base = pci_msix_desc_addr(entry);
-
-		if (WARN_ON_ONCE(entry->pci.msi_attrib.is_virtual))
-			return;
-
-		msg->address_lo = readl(base + PCI_MSIX_ENTRY_LOWER_ADDR);
-		msg->address_hi = readl(base + PCI_MSIX_ENTRY_UPPER_ADDR);
-		msg->data = readl(base + PCI_MSIX_ENTRY_DATA);
-	} else {
-		int pos = dev->msi_cap;
-		u16 data;
-
-		pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
-				      &msg->address_lo);
-		if (entry->pci.msi_attrib.is_64) {
-			pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
-					      &msg->address_hi);
-			pci_read_config_word(dev, pos + PCI_MSI_DATA_64, &data);
-		} else {
-			msg->address_hi = 0;
-			pci_read_config_word(dev, pos + PCI_MSI_DATA_32, &data);
-		}
-		msg->data = data;
-	}
-}
-
-void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
-
-	if (dev->current_state != PCI_D0 || pci_dev_is_disconnected(dev)) {
-		/* Don't touch the hardware now */
-	} else if (entry->pci.msi_attrib.is_msix) {
-		void __iomem *base = pci_msix_desc_addr(entry);
-		u32 ctrl = entry->pci.msix_ctrl;
-		bool unmasked = !(ctrl & PCI_MSIX_ENTRY_CTRL_MASKBIT);
-
-		if (entry->pci.msi_attrib.is_virtual)
-			goto skip;
-
-		/*
-		 * The specification mandates that the entry is masked
-		 * when the message is modified:
-		 *
-		 * "If software changes the Address or Data value of an
-		 * entry while the entry is unmasked, the result is
-		 * undefined."
-		 */
-		if (unmasked)
-			pci_msix_write_vector_ctrl(entry, ctrl | PCI_MSIX_ENTRY_CTRL_MASKBIT);
-
-		writel(msg->address_lo, base + PCI_MSIX_ENTRY_LOWER_ADDR);
-		writel(msg->address_hi, base + PCI_MSIX_ENTRY_UPPER_ADDR);
-		writel(msg->data, base + PCI_MSIX_ENTRY_DATA);
-
-		if (unmasked)
-			pci_msix_write_vector_ctrl(entry, ctrl);
-
-		/* Ensure that the writes are visible in the device */
-		readl(base + PCI_MSIX_ENTRY_DATA);
-	} else {
-		int pos = dev->msi_cap;
-		u16 msgctl;
-
-		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
-		msgctl &= ~PCI_MSI_FLAGS_QSIZE;
-		msgctl |= entry->pci.msi_attrib.multiple << 4;
-		pci_write_config_word(dev, pos + PCI_MSI_FLAGS, msgctl);
-
-		pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
-				       msg->address_lo);
-		if (entry->pci.msi_attrib.is_64) {
-			pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
-					       msg->address_hi);
-			pci_write_config_word(dev, pos + PCI_MSI_DATA_64,
-					      msg->data);
-		} else {
-			pci_write_config_word(dev, pos + PCI_MSI_DATA_32,
-					      msg->data);
-		}
-		/* Ensure that the writes are visible in the device */
-		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
-	}
-
-skip:
-	entry->msg = *msg;
-
-	if (entry->write_msi_msg)
-		entry->write_msi_msg(entry, entry->write_msi_msg_data);
-
-}
-
-void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg)
-{
-	struct msi_desc *entry = irq_get_msi_desc(irq);
-
-	__pci_write_msi_msg(entry, msg);
-}
-EXPORT_SYMBOL_GPL(pci_write_msi_msg);
-
-static void free_msi_irqs(struct pci_dev *dev)
-{
-	struct list_head *msi_list = dev_to_msi_list(&dev->dev);
-	struct msi_desc *entry, *tmp;
-	int i;
-
-	for_each_pci_msi_entry(entry, dev)
-		if (entry->irq)
-			for (i = 0; i < entry->nvec_used; i++)
-				BUG_ON(irq_has_action(entry->irq + i));
-
-	if (dev->msi_irq_groups) {
-		msi_destroy_sysfs(&dev->dev, dev->msi_irq_groups);
-		dev->msi_irq_groups = NULL;
-	}
-
-	pci_msi_teardown_msi_irqs(dev);
-
-	list_for_each_entry_safe(entry, tmp, msi_list, list) {
-		if (entry->pci.msi_attrib.is_msix) {
-			if (list_is_last(&entry->list, msi_list))
-				iounmap(entry->pci.mask_base);
-		}
-
-		list_del(&entry->list);
-		free_msi_entry(entry);
-	}
-}
-
-static void pci_intx_for_msi(struct pci_dev *dev, int enable)
-{
-	if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
-		pci_intx(dev, enable);
-}
-
-static void pci_msi_set_enable(struct pci_dev *dev, int enable)
-{
-	u16 control;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
-	control &= ~PCI_MSI_FLAGS_ENABLE;
-	if (enable)
-		control |= PCI_MSI_FLAGS_ENABLE;
-	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
-}
-
-/*
- * Architecture override returns true when the PCI MSI message should be
- * written by the generic restore function.
- */
-bool __weak arch_restore_msi_irqs(struct pci_dev *dev)
-{
-	return true;
-}
-
-static void __pci_restore_msi_state(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-	u16 control;
-
-	if (!dev->msi_enabled)
-		return;
-
-	entry = irq_get_msi_desc(dev->irq);
-
-	pci_intx_for_msi(dev, 0);
-	pci_msi_set_enable(dev, 0);
-	if (arch_restore_msi_irqs(dev))
-		__pci_write_msi_msg(entry, &entry->msg);
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
-	pci_msi_update_mask(entry, 0, 0);
-	control &= ~PCI_MSI_FLAGS_QSIZE;
-	control |= (entry->pci.msi_attrib.multiple << 4) | PCI_MSI_FLAGS_ENABLE;
-	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
-}
-
-static void pci_msix_clear_and_set_ctrl(struct pci_dev *dev, u16 clear, u16 set)
-{
-	u16 ctrl;
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
-	ctrl &= ~clear;
-	ctrl |= set;
-	pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, ctrl);
-}
-
-static void __pci_restore_msix_state(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-	bool write_msg;
-
-	if (!dev->msix_enabled)
-		return;
-	BUG_ON(list_empty(dev_to_msi_list(&dev->dev)));
-
-	/* route the table */
-	pci_intx_for_msi(dev, 0);
-	pci_msix_clear_and_set_ctrl(dev, 0,
-				PCI_MSIX_FLAGS_ENABLE | PCI_MSIX_FLAGS_MASKALL);
-
-	write_msg = arch_restore_msi_irqs(dev);
-
-	for_each_pci_msi_entry(entry, dev) {
-		if (write_msg)
-			__pci_write_msi_msg(entry, &entry->msg);
-		pci_msix_write_vector_ctrl(entry, entry->pci.msix_ctrl);
-	}
-
-	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
-}
-
-void pci_restore_msi_state(struct pci_dev *dev)
-{
-	__pci_restore_msi_state(dev);
-	__pci_restore_msix_state(dev);
-}
-EXPORT_SYMBOL_GPL(pci_restore_msi_state);
-
-static struct msi_desc *
-msi_setup_entry(struct pci_dev *dev, int nvec, struct irq_affinity *affd)
-{
-	struct irq_affinity_desc *masks = NULL;
-	struct msi_desc *entry;
-	u16 control;
-
-	if (affd)
-		masks = irq_create_affinity_masks(nvec, affd);
-
-	/* MSI Entry Initialization */
-	entry = alloc_msi_entry(&dev->dev, nvec, masks);
-	if (!entry)
-		goto out;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
-	/* Lies, damned lies, and MSIs */
-	if (dev->dev_flags & PCI_DEV_FLAGS_HAS_MSI_MASKING)
-		control |= PCI_MSI_FLAGS_MASKBIT;
-
-	entry->pci.msi_attrib.is_msix	= 0;
-	entry->pci.msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
-	entry->pci.msi_attrib.is_virtual    = 0;
-	entry->pci.msi_attrib.entry_nr	= 0;
-	entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
-					  !!(control & PCI_MSI_FLAGS_MASKBIT);
-	entry->pci.msi_attrib.default_irq	= dev->irq;	/* Save IOAPIC IRQ */
-	entry->pci.msi_attrib.multi_cap	= (control & PCI_MSI_FLAGS_QMASK) >> 1;
-	entry->pci.msi_attrib.multiple	= ilog2(__roundup_pow_of_two(nvec));
-
-	if (control & PCI_MSI_FLAGS_64BIT)
-		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_64;
-	else
-		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
-
-	/* Save the initial mask status */
-	if (entry->pci.msi_attrib.can_mask)
-		pci_read_config_dword(dev, entry->pci.mask_pos, &entry->pci.msi_mask);
-
-out:
-	kfree(masks);
-	return entry;
-}
-
-static int msi_verify_entries(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-
-	if (!dev->no_64bit_msi)
-		return 0;
-
-	for_each_pci_msi_entry(entry, dev) {
-		if (entry->msg.address_hi) {
-			pci_err(dev, "arch assigned 64-bit MSI address %#x%08x but device only supports 32 bits\n",
-				entry->msg.address_hi, entry->msg.address_lo);
-			return -EIO;
-		}
-	}
-	return 0;
-}
-
-/**
- * msi_capability_init - configure device's MSI capability structure
- * @dev: pointer to the pci_dev data structure of MSI device function
- * @nvec: number of interrupts to allocate
- * @affd: description of automatic IRQ affinity assignments (may be %NULL)
- *
- * Setup the MSI capability structure of the device with the requested
- * number of interrupts.  A return value of zero indicates the successful
- * setup of an entry with the new MSI IRQ.  A negative return value indicates
- * an error, and a positive return value indicates the number of interrupts
- * which could have been allocated.
- */
-static int msi_capability_init(struct pci_dev *dev, int nvec,
-			       struct irq_affinity *affd)
-{
-	const struct attribute_group **groups;
-	struct msi_desc *entry;
-	int ret;
-
-	pci_msi_set_enable(dev, 0);	/* Disable MSI during set up */
-
-	entry = msi_setup_entry(dev, nvec, affd);
-	if (!entry)
-		return -ENOMEM;
-
-	/* All MSIs are unmasked by default; mask them all */
-	pci_msi_mask(entry, msi_multi_mask(entry));
-
-	list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
-
-	/* Configure MSI capability structure */
-	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSI);
-	if (ret)
-		goto err;
-
-	ret = msi_verify_entries(dev);
-	if (ret)
-		goto err;
-
-	groups = msi_populate_sysfs(&dev->dev);
-	if (IS_ERR(groups)) {
-		ret = PTR_ERR(groups);
-		goto err;
-	}
-
-	dev->msi_irq_groups = groups;
-
-	/* Set MSI enabled bits	*/
-	pci_intx_for_msi(dev, 0);
-	pci_msi_set_enable(dev, 1);
-	dev->msi_enabled = 1;
-
-	pcibios_free_irq(dev);
-	dev->irq = entry->irq;
-	return 0;
-
-err:
-	pci_msi_unmask(entry, msi_multi_mask(entry));
-	free_msi_irqs(dev);
-	return ret;
-}
-
-static void __iomem *msix_map_region(struct pci_dev *dev,
-				     unsigned int nr_entries)
-{
-	resource_size_t phys_addr;
-	u32 table_offset;
-	unsigned long flags;
-	u8 bir;
-
-	pci_read_config_dword(dev, dev->msix_cap + PCI_MSIX_TABLE,
-			      &table_offset);
-	bir = (u8)(table_offset & PCI_MSIX_TABLE_BIR);
-	flags = pci_resource_flags(dev, bir);
-	if (!flags || (flags & IORESOURCE_UNSET))
-		return NULL;
-
-	table_offset &= PCI_MSIX_TABLE_OFFSET;
-	phys_addr = pci_resource_start(dev, bir) + table_offset;
-
-	return ioremap(phys_addr, nr_entries * PCI_MSIX_ENTRY_SIZE);
-}
-
-static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
-			      struct msix_entry *entries, int nvec,
-			      struct irq_affinity *affd)
-{
-	struct irq_affinity_desc *curmsk, *masks = NULL;
-	struct msi_desc *entry;
-	void __iomem *addr;
-	int ret, i;
-	int vec_count = pci_msix_vec_count(dev);
-
-	if (affd)
-		masks = irq_create_affinity_masks(nvec, affd);
-
-	for (i = 0, curmsk = masks; i < nvec; i++) {
-		entry = alloc_msi_entry(&dev->dev, 1, curmsk);
-		if (!entry) {
-			if (!i)
-				iounmap(base);
-			else
-				free_msi_irqs(dev);
-			/* No enough memory. Don't try again */
-			ret = -ENOMEM;
-			goto out;
-		}
-
-		entry->pci.msi_attrib.is_msix	= 1;
-		entry->pci.msi_attrib.is_64	= 1;
-
-		if (entries)
-			entry->pci.msi_attrib.entry_nr = entries[i].entry;
-		else
-			entry->pci.msi_attrib.entry_nr = i;
-
-		entry->pci.msi_attrib.is_virtual =
-			entry->pci.msi_attrib.entry_nr >= vec_count;
-
-		entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
-						  !entry->pci.msi_attrib.is_virtual;
-
-		entry->pci.msi_attrib.default_irq	= dev->irq;
-		entry->pci.mask_base			= base;
-
-		if (entry->pci.msi_attrib.can_mask) {
-			addr = pci_msix_desc_addr(entry);
-			entry->pci.msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
-		}
-
-		list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
-		if (masks)
-			curmsk++;
-	}
-	ret = 0;
-out:
-	kfree(masks);
-	return ret;
-}
-
-static void msix_update_entries(struct pci_dev *dev, struct msix_entry *entries)
-{
-	struct msi_desc *entry;
-
-	if (entries) {
-		for_each_pci_msi_entry(entry, dev) {
-			entries->vector = entry->irq;
-			entries++;
-		}
-	}
-}
-
-static void msix_mask_all(void __iomem *base, int tsize)
-{
-	u32 ctrl = PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	int i;
-
-	if (pci_msi_ignore_mask)
-		return;
-
-	for (i = 0; i < tsize; i++, base += PCI_MSIX_ENTRY_SIZE)
-		writel(ctrl, base + PCI_MSIX_ENTRY_VECTOR_CTRL);
-}
-
-/**
- * msix_capability_init - configure device's MSI-X capability
- * @dev: pointer to the pci_dev data structure of MSI-X device function
- * @entries: pointer to an array of struct msix_entry entries
- * @nvec: number of @entries
- * @affd: Optional pointer to enable automatic affinity assignment
- *
- * Setup the MSI-X capability structure of device function with a
- * single MSI-X IRQ. A return of zero indicates the successful setup of
- * requested MSI-X entries with allocated IRQs or non-zero for otherwise.
- **/
-static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries,
-				int nvec, struct irq_affinity *affd)
-{
-	const struct attribute_group **groups;
-	void __iomem *base;
-	int ret, tsize;
-	u16 control;
-
-	/*
-	 * Some devices require MSI-X to be enabled before the MSI-X
-	 * registers can be accessed.  Mask all the vectors to prevent
-	 * interrupts coming in before they're fully set up.
-	 */
-	pci_msix_clear_and_set_ctrl(dev, 0, PCI_MSIX_FLAGS_MASKALL |
-				    PCI_MSIX_FLAGS_ENABLE);
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control);
-	/* Request & Map MSI-X table region */
-	tsize = msix_table_size(control);
-	base = msix_map_region(dev, tsize);
-	if (!base) {
-		ret = -ENOMEM;
-		goto out_disable;
-	}
-
-	/* Ensure that all table entries are masked. */
-	msix_mask_all(base, tsize);
-
-	ret = msix_setup_entries(dev, base, entries, nvec, affd);
-	if (ret)
-		goto out_disable;
-
-	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
-	if (ret)
-		goto out_avail;
-
-	/* Check if all MSI entries honor device restrictions */
-	ret = msi_verify_entries(dev);
-	if (ret)
-		goto out_free;
-
-	msix_update_entries(dev, entries);
-
-	groups = msi_populate_sysfs(&dev->dev);
-	if (IS_ERR(groups)) {
-		ret = PTR_ERR(groups);
-		goto out_free;
-	}
-
-	dev->msi_irq_groups = groups;
-
-	/* Set MSI-X enabled bits and unmask the function */
-	pci_intx_for_msi(dev, 0);
-	dev->msix_enabled = 1;
-	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
-
-	pcibios_free_irq(dev);
-	return 0;
-
-out_avail:
-	if (ret < 0) {
-		/*
-		 * If we had some success, report the number of IRQs
-		 * we succeeded in setting up.
-		 */
-		struct msi_desc *entry;
-		int avail = 0;
-
-		for_each_pci_msi_entry(entry, dev) {
-			if (entry->irq != 0)
-				avail++;
-		}
-		if (avail != 0)
-			ret = avail;
-	}
-
-out_free:
-	free_msi_irqs(dev);
-
-out_disable:
-	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0);
-
-	return ret;
-}
-
-/**
- * pci_msi_supported - check whether MSI may be enabled on a device
- * @dev: pointer to the pci_dev data structure of MSI device function
- * @nvec: how many MSIs have been requested?
- *
- * Look at global flags, the device itself, and its parent buses
- * to determine if MSI/-X are supported for the device. If MSI/-X is
- * supported return 1, else return 0.
- **/
-static int pci_msi_supported(struct pci_dev *dev, int nvec)
-{
-	struct pci_bus *bus;
-
-	/* MSI must be globally enabled and supported by the device */
-	if (!pci_msi_enable)
-		return 0;
-
-	if (!dev || dev->no_msi)
-		return 0;
-
-	/*
-	 * You can't ask to have 0 or less MSIs configured.
-	 *  a) it's stupid ..
-	 *  b) the list manipulation code assumes nvec >= 1.
-	 */
-	if (nvec < 1)
-		return 0;
-
-	/*
-	 * Any bridge which does NOT route MSI transactions from its
-	 * secondary bus to its primary bus must set NO_MSI flag on
-	 * the secondary pci_bus.
-	 *
-	 * The NO_MSI flag can either be set directly by:
-	 * - arch-specific PCI host bus controller drivers (deprecated)
-	 * - quirks for specific PCI bridges
-	 *
-	 * or indirectly by platform-specific PCI host bridge drivers by
-	 * advertising the 'msi_domain' property, which results in
-	 * the NO_MSI flag when no MSI domain is found for this bridge
-	 * at probe time.
-	 */
-	for (bus = dev->bus; bus; bus = bus->parent)
-		if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
-			return 0;
-
-	return 1;
-}
-
-/**
- * pci_msi_vec_count - Return the number of MSI vectors a device can send
- * @dev: device to report about
- *
- * This function returns the number of MSI vectors a device requested via
- * Multiple Message Capable register. It returns a negative errno if the
- * device is not capable sending MSI interrupts. Otherwise, the call succeeds
- * and returns a power of two, up to a maximum of 2^5 (32), according to the
- * MSI specification.
- **/
-int pci_msi_vec_count(struct pci_dev *dev)
-{
-	int ret;
-	u16 msgctl;
-
-	if (!dev->msi_cap)
-		return -EINVAL;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &msgctl);
-	ret = 1 << ((msgctl & PCI_MSI_FLAGS_QMASK) >> 1);
-
-	return ret;
-}
-EXPORT_SYMBOL(pci_msi_vec_count);
-
-static void pci_msi_shutdown(struct pci_dev *dev)
-{
-	struct msi_desc *desc;
-
-	if (!pci_msi_enable || !dev || !dev->msi_enabled)
-		return;
-
-	BUG_ON(list_empty(dev_to_msi_list(&dev->dev)));
-	desc = first_pci_msi_entry(dev);
-
-	pci_msi_set_enable(dev, 0);
-	pci_intx_for_msi(dev, 1);
-	dev->msi_enabled = 0;
-
-	/* Return the device with MSI unmasked as initial states */
-	pci_msi_unmask(desc, msi_multi_mask(desc));
-
-	/* Restore dev->irq to its default pin-assertion IRQ */
-	dev->irq = desc->pci.msi_attrib.default_irq;
-	pcibios_alloc_irq(dev);
-}
-
-void pci_disable_msi(struct pci_dev *dev)
-{
-	if (!pci_msi_enable || !dev || !dev->msi_enabled)
-		return;
-
-	pci_msi_shutdown(dev);
-	free_msi_irqs(dev);
-}
-EXPORT_SYMBOL(pci_disable_msi);
-
-/**
- * pci_msix_vec_count - return the number of device's MSI-X table entries
- * @dev: pointer to the pci_dev data structure of MSI-X device function
- * This function returns the number of device's MSI-X table entries and
- * therefore the number of MSI-X vectors device is capable of sending.
- * It returns a negative errno if the device is not capable of sending MSI-X
- * interrupts.
- **/
-int pci_msix_vec_count(struct pci_dev *dev)
-{
-	u16 control;
-
-	if (!dev->msix_cap)
-		return -EINVAL;
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control);
-	return msix_table_size(control);
-}
-EXPORT_SYMBOL(pci_msix_vec_count);
-
-static int __pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries,
-			     int nvec, struct irq_affinity *affd, int flags)
-{
-	int nr_entries;
-	int i, j;
-
-	if (!pci_msi_supported(dev, nvec) || dev->current_state != PCI_D0)
-		return -EINVAL;
-
-	nr_entries = pci_msix_vec_count(dev);
-	if (nr_entries < 0)
-		return nr_entries;
-	if (nvec > nr_entries && !(flags & PCI_IRQ_VIRTUAL))
-		return nr_entries;
-
-	if (entries) {
-		/* Check for any invalid entries */
-		for (i = 0; i < nvec; i++) {
-			if (entries[i].entry >= nr_entries)
-				return -EINVAL;		/* invalid entry */
-			for (j = i + 1; j < nvec; j++) {
-				if (entries[i].entry == entries[j].entry)
-					return -EINVAL;	/* duplicate entry */
-			}
-		}
-	}
-
-	/* Check whether driver already requested for MSI IRQ */
-	if (dev->msi_enabled) {
-		pci_info(dev, "can't enable MSI-X (MSI IRQ already assigned)\n");
-		return -EINVAL;
-	}
-	return msix_capability_init(dev, entries, nvec, affd);
-}
-
-static void pci_msix_shutdown(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-
-	if (!pci_msi_enable || !dev || !dev->msix_enabled)
-		return;
-
-	if (pci_dev_is_disconnected(dev)) {
-		dev->msix_enabled = 0;
-		return;
-	}
-
-	/* Return the device with MSI-X masked as initial states */
-	for_each_pci_msi_entry(entry, dev)
-		pci_msix_mask(entry);
-
-	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0);
-	pci_intx_for_msi(dev, 1);
-	dev->msix_enabled = 0;
-	pcibios_alloc_irq(dev);
-}
-
-void pci_disable_msix(struct pci_dev *dev)
-{
-	if (!pci_msi_enable || !dev || !dev->msix_enabled)
-		return;
-
-	pci_msix_shutdown(dev);
-	free_msi_irqs(dev);
-}
-EXPORT_SYMBOL(pci_disable_msix);
-
-void pci_no_msi(void)
-{
-	pci_msi_enable = 0;
-}
-
-/**
- * pci_msi_enabled - is MSI enabled?
- *
- * Returns true if MSI has not been disabled by the command-line option
- * pci=nomsi.
- **/
-int pci_msi_enabled(void)
-{
-	return pci_msi_enable;
-}
-EXPORT_SYMBOL(pci_msi_enabled);
-
-static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
-				  struct irq_affinity *affd)
-{
-	int nvec;
-	int rc;
-
-	if (!pci_msi_supported(dev, minvec) || dev->current_state != PCI_D0)
-		return -EINVAL;
-
-	/* Check whether driver already requested MSI-X IRQs */
-	if (dev->msix_enabled) {
-		pci_info(dev, "can't enable MSI (MSI-X already enabled)\n");
-		return -EINVAL;
-	}
-
-	if (maxvec < minvec)
-		return -ERANGE;
-
-	if (WARN_ON_ONCE(dev->msi_enabled))
-		return -EINVAL;
-
-	nvec = pci_msi_vec_count(dev);
-	if (nvec < 0)
-		return nvec;
-	if (nvec < minvec)
-		return -ENOSPC;
-
-	if (nvec > maxvec)
-		nvec = maxvec;
-
-	for (;;) {
-		if (affd) {
-			nvec = irq_calc_affinity_vectors(minvec, nvec, affd);
-			if (nvec < minvec)
-				return -ENOSPC;
-		}
-
-		rc = msi_capability_init(dev, nvec, affd);
-		if (rc == 0)
-			return nvec;
-
-		if (rc < 0)
-			return rc;
-		if (rc < minvec)
-			return -ENOSPC;
-
-		nvec = rc;
-	}
-}
-
-/* deprecated, don't use */
-int pci_enable_msi(struct pci_dev *dev)
-{
-	int rc = __pci_enable_msi_range(dev, 1, 1, NULL);
-	if (rc < 0)
-		return rc;
-	return 0;
-}
-EXPORT_SYMBOL(pci_enable_msi);
-
-static int __pci_enable_msix_range(struct pci_dev *dev,
-				   struct msix_entry *entries, int minvec,
-				   int maxvec, struct irq_affinity *affd,
-				   int flags)
-{
-	int rc, nvec = maxvec;
-
-	if (maxvec < minvec)
-		return -ERANGE;
-
-	if (WARN_ON_ONCE(dev->msix_enabled))
-		return -EINVAL;
-
-	for (;;) {
-		if (affd) {
-			nvec = irq_calc_affinity_vectors(minvec, nvec, affd);
-			if (nvec < minvec)
-				return -ENOSPC;
-		}
-
-		rc = __pci_enable_msix(dev, entries, nvec, affd, flags);
-		if (rc == 0)
-			return nvec;
-
-		if (rc < 0)
-			return rc;
-		if (rc < minvec)
-			return -ENOSPC;
-
-		nvec = rc;
-	}
-}
-
-/**
- * pci_enable_msix_range - configure device's MSI-X capability structure
- * @dev: pointer to the pci_dev data structure of MSI-X device function
- * @entries: pointer to an array of MSI-X entries
- * @minvec: minimum number of MSI-X IRQs requested
- * @maxvec: maximum number of MSI-X IRQs requested
- *
- * Setup the MSI-X capability structure of device function with a maximum
- * possible number of interrupts in the range between @minvec and @maxvec
- * upon its software driver call to request for MSI-X mode enabled on its
- * hardware device function. It returns a negative errno if an error occurs.
- * If it succeeds, it returns the actual number of interrupts allocated and
- * indicates the successful configuration of MSI-X capability structure
- * with new allocated MSI-X interrupts.
- **/
-int pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries,
-		int minvec, int maxvec)
-{
-	return __pci_enable_msix_range(dev, entries, minvec, maxvec, NULL, 0);
-}
-EXPORT_SYMBOL(pci_enable_msix_range);
-
-/**
- * pci_alloc_irq_vectors_affinity - allocate multiple IRQs for a device
- * @dev:		PCI device to operate on
- * @min_vecs:		minimum number of vectors required (must be >= 1)
- * @max_vecs:		maximum (desired) number of vectors
- * @flags:		flags or quirks for the allocation
- * @affd:		optional description of the affinity requirements
- *
- * Allocate up to @max_vecs interrupt vectors for @dev, using MSI-X or MSI
- * vectors if available, and fall back to a single legacy vector
- * if neither is available.  Return the number of vectors allocated,
- * (which might be smaller than @max_vecs) if successful, or a negative
- * error code on error. If less than @min_vecs interrupt vectors are
- * available for @dev the function will fail with -ENOSPC.
- *
- * To get the Linux IRQ number used for a vector that can be passed to
- * request_irq() use the pci_irq_vector() helper.
- */
-int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs,
-				   unsigned int max_vecs, unsigned int flags,
-				   struct irq_affinity *affd)
-{
-	struct irq_affinity msi_default_affd = {0};
-	int nvecs = -ENOSPC;
-
-	if (flags & PCI_IRQ_AFFINITY) {
-		if (!affd)
-			affd = &msi_default_affd;
-	} else {
-		if (WARN_ON(affd))
-			affd = NULL;
-	}
-
-	if (flags & PCI_IRQ_MSIX) {
-		nvecs = __pci_enable_msix_range(dev, NULL, min_vecs, max_vecs,
-						affd, flags);
-		if (nvecs > 0)
-			return nvecs;
-	}
-
-	if (flags & PCI_IRQ_MSI) {
-		nvecs = __pci_enable_msi_range(dev, min_vecs, max_vecs, affd);
-		if (nvecs > 0)
-			return nvecs;
-	}
-
-	/* use legacy IRQ if allowed */
-	if (flags & PCI_IRQ_LEGACY) {
-		if (min_vecs == 1 && dev->irq) {
-			/*
-			 * Invoke the affinity spreading logic to ensure that
-			 * the device driver can adjust queue configuration
-			 * for the single interrupt case.
-			 */
-			if (affd)
-				irq_create_affinity_masks(1, affd);
-			pci_intx(dev, 1);
-			return 1;
-		}
-	}
-
-	return nvecs;
-}
-EXPORT_SYMBOL(pci_alloc_irq_vectors_affinity);
-
-/**
- * pci_free_irq_vectors - free previously allocated IRQs for a device
- * @dev:		PCI device to operate on
- *
- * Undoes the allocations and enabling in pci_alloc_irq_vectors().
- */
-void pci_free_irq_vectors(struct pci_dev *dev)
-{
-	pci_disable_msix(dev);
-	pci_disable_msi(dev);
-}
-EXPORT_SYMBOL(pci_free_irq_vectors);
-
-/**
- * pci_irq_vector - return Linux IRQ number of a device vector
- * @dev:	PCI device to operate on
- * @nr:		Interrupt vector index (0-based)
- *
- * @nr has the following meanings depending on the interrupt mode:
- *   MSI-X:	The index in the MSI-X vector table
- *   MSI:	The index of the enabled MSI vectors
- *   INTx:	Must be 0
- *
- * Return: The Linux interrupt number or -EINVAl if @nr is out of range.
- */
-int pci_irq_vector(struct pci_dev *dev, unsigned int nr)
-{
-	if (dev->msix_enabled) {
-		struct msi_desc *entry;
-
-		for_each_pci_msi_entry(entry, dev) {
-			if (entry->pci.msi_attrib.entry_nr == nr)
-				return entry->irq;
-		}
-		WARN_ON_ONCE(1);
-		return -EINVAL;
-	}
-
-	if (dev->msi_enabled) {
-		struct msi_desc *entry = first_pci_msi_entry(dev);
-
-		if (WARN_ON_ONCE(nr >= entry->nvec_used))
-			return -EINVAL;
-	} else {
-		if (WARN_ON_ONCE(nr > 0))
-			return -EINVAL;
-	}
-
-	return dev->irq + nr;
-}
-EXPORT_SYMBOL(pci_irq_vector);
-
-/**
- * pci_irq_get_affinity - return the affinity of a particular MSI vector
- * @dev:	PCI device to operate on
- * @nr:		device-relative interrupt vector index (0-based).
- *
- * @nr has the following meanings depending on the interrupt mode:
- *   MSI-X:	The index in the MSI-X vector table
- *   MSI:	The index of the enabled MSI vectors
- *   INTx:	Must be 0
- *
- * Return: A cpumask pointer or NULL if @nr is out of range
- */
-const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
-{
-	if (dev->msix_enabled) {
-		struct msi_desc *entry;
-
-		for_each_pci_msi_entry(entry, dev) {
-			if (entry->pci.msi_attrib.entry_nr == nr)
-				return &entry->affinity->mask;
-		}
-		WARN_ON_ONCE(1);
-		return NULL;
-	} else if (dev->msi_enabled) {
-		struct msi_desc *entry = first_pci_msi_entry(dev);
-
-		if (WARN_ON_ONCE(!entry || !entry->affinity ||
-				 nr >= entry->nvec_used))
-			return NULL;
-
-		return &entry->affinity[nr].mask;
-	} else {
-		return cpu_possible_mask;
-	}
-}
-EXPORT_SYMBOL(pci_irq_get_affinity);
-
-struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc)
-{
-	return to_pci_dev(desc->dev);
-}
-EXPORT_SYMBOL(msi_desc_to_pci_dev);
-
-#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
-/**
- * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
- * @irq_data:	Pointer to interrupt data of the MSI interrupt
- * @msg:	Pointer to the message
- */
-static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
-{
-	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
-
-	/*
-	 * For MSI-X desc->irq is always equal to irq_data->irq. For
-	 * MSI only the first interrupt of MULTI MSI passes the test.
-	 */
-	if (desc->irq == irq_data->irq)
-		__pci_write_msi_msg(desc, msg);
-}
-
-/**
- * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
- * @desc:	Pointer to the MSI descriptor
- *
- * The ID number is only used within the irqdomain.
- */
-static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
-{
-	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
-
-	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
-		pci_dev_id(dev) << 11 |
-		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
-}
-
-static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
-{
-	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
-}
-
-/**
- * pci_msi_domain_check_cap - Verify that @domain supports the capabilities
- * 			      for @dev
- * @domain:	The interrupt domain to check
- * @info:	The domain info for verification
- * @dev:	The device to check
- *
- * Returns:
- *  0 if the functionality is supported
- *  1 if Multi MSI is requested, but the domain does not support it
- *  -ENOTSUPP otherwise
- */
-int pci_msi_domain_check_cap(struct irq_domain *domain,
-			     struct msi_domain_info *info, struct device *dev)
-{
-	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
-
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) &&
-	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
-		return 1;
-	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
-		return -ENOTSUPP;
-
-	return 0;
-}
-
-static int pci_msi_domain_handle_error(struct irq_domain *domain,
-				       struct msi_desc *desc, int error)
-{
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
-		return 1;
-
-	return error;
-}
-
-static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
-				    struct msi_desc *desc)
-{
-	arg->desc = desc;
-	arg->hwirq = pci_msi_domain_calc_hwirq(desc);
-}
-
-static struct msi_domain_ops pci_msi_domain_ops_default = {
-	.set_desc	= pci_msi_domain_set_desc,
-	.msi_check	= pci_msi_domain_check_cap,
-	.handle_error	= pci_msi_domain_handle_error,
-};
-
-static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
-{
-	struct msi_domain_ops *ops = info->ops;
-
-	if (ops == NULL) {
-		info->ops = &pci_msi_domain_ops_default;
-	} else {
-		if (ops->set_desc == NULL)
-			ops->set_desc = pci_msi_domain_set_desc;
-		if (ops->msi_check == NULL)
-			ops->msi_check = pci_msi_domain_check_cap;
-		if (ops->handle_error == NULL)
-			ops->handle_error = pci_msi_domain_handle_error;
-	}
-}
-
-static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
-{
-	struct irq_chip *chip = info->chip;
-
-	BUG_ON(!chip);
-	if (!chip->irq_write_msi_msg)
-		chip->irq_write_msi_msg = pci_msi_domain_write_msg;
-	if (!chip->irq_mask)
-		chip->irq_mask = pci_msi_mask_irq;
-	if (!chip->irq_unmask)
-		chip->irq_unmask = pci_msi_unmask_irq;
-}
-
-/**
- * pci_msi_create_irq_domain - Create a MSI interrupt domain
- * @fwnode:	Optional fwnode of the interrupt controller
- * @info:	MSI domain info
- * @parent:	Parent irq domain
- *
- * Updates the domain and chip ops and creates a MSI interrupt domain.
- *
- * Returns:
- * A domain pointer or NULL in case of failure.
- */
-struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
-					     struct msi_domain_info *info,
-					     struct irq_domain *parent)
-{
-	struct irq_domain *domain;
-
-	if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE))
-		info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
-
-	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
-		pci_msi_domain_update_dom_ops(info);
-	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
-		pci_msi_domain_update_chip_ops(info);
-
-	info->flags |= MSI_FLAG_ACTIVATE_EARLY;
-	if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
-		info->flags |= MSI_FLAG_MUST_REACTIVATE;
-
-	/* PCI-MSI is oneshot-safe */
-	info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
-
-	domain = msi_create_irq_domain(fwnode, info, parent);
-	if (!domain)
-		return NULL;
-
-	irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI);
-	return domain;
-}
-EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
-
-/*
- * Users of the generic MSI infrastructure expect a device to have a single ID,
- * so with DMA aliases we have to pick the least-worst compromise. Devices with
- * DMA phantom functions tend to still emit MSIs from the real function number,
- * so we ignore those and only consider topological aliases where either the
- * alias device or RID appears on a different bus number. We also make the
- * reasonable assumption that bridges are walked in an upstream direction (so
- * the last one seen wins), and the much braver assumption that the most likely
- * case is that of PCI->PCIe so we should always use the alias RID. This echoes
- * the logic from intel_irq_remapping's set_msi_sid(), which presumably works
- * well enough in practice; in the face of the horrible PCIe<->PCI-X conditions
- * for taking ownership all we can really do is close our eyes and hope...
- */
-static int get_msi_id_cb(struct pci_dev *pdev, u16 alias, void *data)
-{
-	u32 *pa = data;
-	u8 bus = PCI_BUS_NUM(*pa);
-
-	if (pdev->bus->number != bus || PCI_BUS_NUM(alias) != bus)
-		*pa = alias;
-
-	return 0;
-}
-
-/**
- * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
- * @domain:	The interrupt domain
- * @pdev:	The PCI device.
- *
- * The RID for a device is formed from the alias, with a firmware
- * supplied mapping applied
- *
- * Returns: The RID.
- */
-u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
-{
-	struct device_node *of_node;
-	u32 rid = pci_dev_id(pdev);
-
-	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
-
-	of_node = irq_domain_get_of_node(domain);
-	rid = of_node ? of_msi_map_id(&pdev->dev, of_node, rid) :
-			iort_msi_map_id(&pdev->dev, rid);
-
-	return rid;
-}
-
-/**
- * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
- * @pdev:	The PCI device
- *
- * Use the firmware data to find a device-specific MSI domain
- * (i.e. not one that is set as a default).
- *
- * Returns: The corresponding MSI domain or NULL if none has been found.
- */
-struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
-{
-	struct irq_domain *dom;
-	u32 rid = pci_dev_id(pdev);
-
-	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
-	dom = of_msi_map_get_device_domain(&pdev->dev, rid, DOMAIN_BUS_PCI_MSI);
-	if (!dom)
-		dom = iort_get_device_domain(&pdev->dev, rid,
-					     DOMAIN_BUS_PCI_MSI);
-	return dom;
-}
-
-/**
- * pci_dev_has_special_msi_domain - Check whether the device is handled by
- *				    a non-standard PCI-MSI domain
- * @pdev:	The PCI device to check.
- *
- * Returns: True if the device irqdomain or the bus irqdomain is
- * non-standard PCI/MSI.
- */
-bool pci_dev_has_special_msi_domain(struct pci_dev *pdev)
-{
-	struct irq_domain *dom = dev_get_msi_domain(&pdev->dev);
-
-	if (!dom)
-		dom = dev_get_msi_domain(&pdev->bus->dev);
-
-	if (!dom)
-		return true;
-
-	return dom->bus_token != DOMAIN_BUS_PCI_MSI;
-}
-
-#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
-#endif /* CONFIG_PCI_MSI */
-
-void pci_msi_init(struct pci_dev *dev)
-{
-	u16 ctrl;
-
-	/*
-	 * Disable the MSI hardware to avoid screaming interrupts
-	 * during boot.  This is the power on reset default so
-	 * usually this should be a noop.
-	 */
-	dev->msi_cap = pci_find_capability(dev, PCI_CAP_ID_MSI);
-	if (!dev->msi_cap)
-		return;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &ctrl);
-	if (ctrl & PCI_MSI_FLAGS_ENABLE)
-		pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS,
-				      ctrl & ~PCI_MSI_FLAGS_ENABLE);
-
-	if (!(ctrl & PCI_MSI_FLAGS_64BIT))
-		dev->no_64bit_msi = 1;
-}
-
-void pci_msix_init(struct pci_dev *dev)
-{
-	u16 ctrl;
-
-	dev->msix_cap = pci_find_capability(dev, PCI_CAP_ID_MSIX);
-	if (!dev->msix_cap)
-		return;
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
-	if (ctrl & PCI_MSIX_FLAGS_ENABLE)
-		pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS,
-				      ctrl & ~PCI_MSIX_FLAGS_ENABLE);
-}
--- /dev/null
+++ b/drivers/pci/msi/Makefile
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for the PCI/MSI
+obj-$(CONFIG_PCI)		+= msi.o
--- /dev/null
+++ b/drivers/pci/msi/msi.c
@@ -0,0 +1,1532 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * PCI Message Signaled Interrupt (MSI)
+ *
+ * Copyright (C) 2003-2004 Intel
+ * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
+ * Copyright (C) 2016 Christoph Hellwig.
+ */
+
+#include <linux/acpi_iort.h>
+#include <linux/err.h>
+#include <linux/export.h>
+#include <linux/irq.h>
+#include <linux/irqdomain.h>
+#include <linux/msi.h>
+#include <linux/of_irq.h>
+#include <linux/pci.h>
+
+#include "../pci.h"
+
+#ifdef CONFIG_PCI_MSI
+
+static int pci_msi_enable = 1;
+int pci_msi_ignore_mask;
+
+#define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
+
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
+static int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	struct irq_domain *domain;
+
+	domain = dev_get_msi_domain(&dev->dev);
+	if (domain && irq_domain_is_hierarchy(domain))
+		return msi_domain_alloc_irqs(domain, &dev->dev, nvec);
+
+	return arch_setup_msi_irqs(dev, nvec, type);
+}
+
+static void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
+{
+	struct irq_domain *domain;
+
+	domain = dev_get_msi_domain(&dev->dev);
+	if (domain && irq_domain_is_hierarchy(domain))
+		msi_domain_free_irqs(domain, &dev->dev);
+	else
+		arch_teardown_msi_irqs(dev);
+}
+#else
+#define pci_msi_setup_msi_irqs		arch_setup_msi_irqs
+#define pci_msi_teardown_msi_irqs	arch_teardown_msi_irqs
+#endif
+
+#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
+/* Arch hooks */
+int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+{
+	return -EINVAL;
+}
+
+void __weak arch_teardown_msi_irq(unsigned int irq)
+{
+}
+
+int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+{
+	struct msi_desc *entry;
+	int ret;
+
+	/*
+	 * If an architecture wants to support multiple MSI, it needs to
+	 * override arch_setup_msi_irqs()
+	 */
+	if (type == PCI_CAP_ID_MSI && nvec > 1)
+		return 1;
+
+	for_each_pci_msi_entry(entry, dev) {
+		ret = arch_setup_msi_irq(dev, entry);
+		if (ret < 0)
+			return ret;
+		if (ret > 0)
+			return -ENOSPC;
+	}
+
+	return 0;
+}
+
+void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
+{
+	int i;
+	struct msi_desc *entry;
+
+	for_each_pci_msi_entry(entry, dev)
+		if (entry->irq)
+			for (i = 0; i < entry->nvec_used; i++)
+				arch_teardown_msi_irq(entry->irq + i);
+}
+#endif /* CONFIG_PCI_MSI_ARCH_FALLBACKS */
+
+/*
+ * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
+ * mask all MSI interrupts by clearing the MSI enable bit does not work
+ * reliably as devices without an INTx disable bit will then generate a
+ * level IRQ which will never be cleared.
+ */
+static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
+{
+	/* Don't shift by >= width of type */
+	if (desc->pci.msi_attrib.multi_cap >= 5)
+		return 0xffffffff;
+	return (1 << (1 << desc->pci.msi_attrib.multi_cap)) - 1;
+}
+
+static noinline void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set)
+{
+	raw_spinlock_t *lock = &desc->dev->msi_lock;
+	unsigned long flags;
+
+	if (!desc->pci.msi_attrib.can_mask)
+		return;
+
+	raw_spin_lock_irqsave(lock, flags);
+	desc->pci.msi_mask &= ~clear;
+	desc->pci.msi_mask |= set;
+	pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->pci.mask_pos,
+			       desc->pci.msi_mask);
+	raw_spin_unlock_irqrestore(lock, flags);
+}
+
+static inline void pci_msi_mask(struct msi_desc *desc, u32 mask)
+{
+	pci_msi_update_mask(desc, 0, mask);
+}
+
+static inline void pci_msi_unmask(struct msi_desc *desc, u32 mask)
+{
+	pci_msi_update_mask(desc, mask, 0);
+}
+
+static inline void __iomem *pci_msix_desc_addr(struct msi_desc *desc)
+{
+	return desc->pci.mask_base + desc->pci.msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE;
+}
+
+/*
+ * This internal function does not flush PCI writes to the device.  All
+ * users must ensure that they read from the device before either assuming
+ * that the device state is up to date, or returning out of this file.
+ * It does not affect the msi_desc::msix_ctrl cache either. Use with care!
+ */
+static void pci_msix_write_vector_ctrl(struct msi_desc *desc, u32 ctrl)
+{
+	void __iomem *desc_addr = pci_msix_desc_addr(desc);
+
+	if (desc->pci.msi_attrib.can_mask)
+		writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
+}
+
+static inline void pci_msix_mask(struct msi_desc *desc)
+{
+	desc->pci.msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
+	/* Flush write to device */
+	readl(desc->pci.mask_base);
+}
+
+static inline void pci_msix_unmask(struct msi_desc *desc)
+{
+	desc->pci.msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
+}
+
+static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
+{
+	if (desc->pci.msi_attrib.is_msix)
+		pci_msix_mask(desc);
+	else
+		pci_msi_mask(desc, mask);
+}
+
+static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
+{
+	if (desc->pci.msi_attrib.is_msix)
+		pci_msix_unmask(desc);
+	else
+		pci_msi_unmask(desc, mask);
+}
+
+/**
+ * pci_msi_mask_irq - Generic IRQ chip callback to mask PCI/MSI interrupts
+ * @data:	pointer to irqdata associated to that interrupt
+ */
+void pci_msi_mask_irq(struct irq_data *data)
+{
+	struct msi_desc *desc = irq_data_get_msi_desc(data);
+
+	__pci_msi_mask_desc(desc, BIT(data->irq - desc->irq));
+}
+EXPORT_SYMBOL_GPL(pci_msi_mask_irq);
+
+/**
+ * pci_msi_unmask_irq - Generic IRQ chip callback to unmask PCI/MSI interrupts
+ * @data:	pointer to irqdata associated to that interrupt
+ */
+void pci_msi_unmask_irq(struct irq_data *data)
+{
+	struct msi_desc *desc = irq_data_get_msi_desc(data);
+
+	__pci_msi_unmask_desc(desc, BIT(data->irq - desc->irq));
+}
+EXPORT_SYMBOL_GPL(pci_msi_unmask_irq);
+
+void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
+{
+	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
+
+	BUG_ON(dev->current_state != PCI_D0);
+
+	if (entry->pci.msi_attrib.is_msix) {
+		void __iomem *base = pci_msix_desc_addr(entry);
+
+		if (WARN_ON_ONCE(entry->pci.msi_attrib.is_virtual))
+			return;
+
+		msg->address_lo = readl(base + PCI_MSIX_ENTRY_LOWER_ADDR);
+		msg->address_hi = readl(base + PCI_MSIX_ENTRY_UPPER_ADDR);
+		msg->data = readl(base + PCI_MSIX_ENTRY_DATA);
+	} else {
+		int pos = dev->msi_cap;
+		u16 data;
+
+		pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
+				      &msg->address_lo);
+		if (entry->pci.msi_attrib.is_64) {
+			pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
+					      &msg->address_hi);
+			pci_read_config_word(dev, pos + PCI_MSI_DATA_64, &data);
+		} else {
+			msg->address_hi = 0;
+			pci_read_config_word(dev, pos + PCI_MSI_DATA_32, &data);
+		}
+		msg->data = data;
+	}
+}
+
+void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
+{
+	struct pci_dev *dev = msi_desc_to_pci_dev(entry);
+
+	if (dev->current_state != PCI_D0 || pci_dev_is_disconnected(dev)) {
+		/* Don't touch the hardware now */
+	} else if (entry->pci.msi_attrib.is_msix) {
+		void __iomem *base = pci_msix_desc_addr(entry);
+		u32 ctrl = entry->pci.msix_ctrl;
+		bool unmasked = !(ctrl & PCI_MSIX_ENTRY_CTRL_MASKBIT);
+
+		if (entry->pci.msi_attrib.is_virtual)
+			goto skip;
+
+		/*
+		 * The specification mandates that the entry is masked
+		 * when the message is modified:
+		 *
+		 * "If software changes the Address or Data value of an
+		 * entry while the entry is unmasked, the result is
+		 * undefined."
+		 */
+		if (unmasked)
+			pci_msix_write_vector_ctrl(entry, ctrl | PCI_MSIX_ENTRY_CTRL_MASKBIT);
+
+		writel(msg->address_lo, base + PCI_MSIX_ENTRY_LOWER_ADDR);
+		writel(msg->address_hi, base + PCI_MSIX_ENTRY_UPPER_ADDR);
+		writel(msg->data, base + PCI_MSIX_ENTRY_DATA);
+
+		if (unmasked)
+			pci_msix_write_vector_ctrl(entry, ctrl);
+
+		/* Ensure that the writes are visible in the device */
+		readl(base + PCI_MSIX_ENTRY_DATA);
+	} else {
+		int pos = dev->msi_cap;
+		u16 msgctl;
+
+		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
+		msgctl &= ~PCI_MSI_FLAGS_QSIZE;
+		msgctl |= entry->pci.msi_attrib.multiple << 4;
+		pci_write_config_word(dev, pos + PCI_MSI_FLAGS, msgctl);
+
+		pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
+				       msg->address_lo);
+		if (entry->pci.msi_attrib.is_64) {
+			pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
+					       msg->address_hi);
+			pci_write_config_word(dev, pos + PCI_MSI_DATA_64,
+					      msg->data);
+		} else {
+			pci_write_config_word(dev, pos + PCI_MSI_DATA_32,
+					      msg->data);
+		}
+		/* Ensure that the writes are visible in the device */
+		pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &msgctl);
+	}
+
+skip:
+	entry->msg = *msg;
+
+	if (entry->write_msi_msg)
+		entry->write_msi_msg(entry, entry->write_msi_msg_data);
+
+}
+
+void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg)
+{
+	struct msi_desc *entry = irq_get_msi_desc(irq);
+
+	__pci_write_msi_msg(entry, msg);
+}
+EXPORT_SYMBOL_GPL(pci_write_msi_msg);
+
+static void free_msi_irqs(struct pci_dev *dev)
+{
+	struct list_head *msi_list = dev_to_msi_list(&dev->dev);
+	struct msi_desc *entry, *tmp;
+	int i;
+
+	for_each_pci_msi_entry(entry, dev)
+		if (entry->irq)
+			for (i = 0; i < entry->nvec_used; i++)
+				BUG_ON(irq_has_action(entry->irq + i));
+
+	if (dev->msi_irq_groups) {
+		msi_destroy_sysfs(&dev->dev, dev->msi_irq_groups);
+		dev->msi_irq_groups = NULL;
+	}
+
+	pci_msi_teardown_msi_irqs(dev);
+
+	list_for_each_entry_safe(entry, tmp, msi_list, list) {
+		if (entry->pci.msi_attrib.is_msix) {
+			if (list_is_last(&entry->list, msi_list))
+				iounmap(entry->pci.mask_base);
+		}
+
+		list_del(&entry->list);
+		free_msi_entry(entry);
+	}
+}
+
+static void pci_intx_for_msi(struct pci_dev *dev, int enable)
+{
+	if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
+		pci_intx(dev, enable);
+}
+
+static void pci_msi_set_enable(struct pci_dev *dev, int enable)
+{
+	u16 control;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
+	control &= ~PCI_MSI_FLAGS_ENABLE;
+	if (enable)
+		control |= PCI_MSI_FLAGS_ENABLE;
+	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
+}
+
+/*
+ * Architecture override returns true when the PCI MSI message should be
+ * written by the generic restore function.
+ */
+bool __weak arch_restore_msi_irqs(struct pci_dev *dev)
+{
+	return true;
+}
+
+static void __pci_restore_msi_state(struct pci_dev *dev)
+{
+	struct msi_desc *entry;
+	u16 control;
+
+	if (!dev->msi_enabled)
+		return;
+
+	entry = irq_get_msi_desc(dev->irq);
+
+	pci_intx_for_msi(dev, 0);
+	pci_msi_set_enable(dev, 0);
+	if (arch_restore_msi_irqs(dev))
+		__pci_write_msi_msg(entry, &entry->msg);
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
+	pci_msi_update_mask(entry, 0, 0);
+	control &= ~PCI_MSI_FLAGS_QSIZE;
+	control |= (entry->pci.msi_attrib.multiple << 4) | PCI_MSI_FLAGS_ENABLE;
+	pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, control);
+}
+
+static void pci_msix_clear_and_set_ctrl(struct pci_dev *dev, u16 clear, u16 set)
+{
+	u16 ctrl;
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
+	ctrl &= ~clear;
+	ctrl |= set;
+	pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, ctrl);
+}
+
+static void __pci_restore_msix_state(struct pci_dev *dev)
+{
+	struct msi_desc *entry;
+	bool write_msg;
+
+	if (!dev->msix_enabled)
+		return;
+	BUG_ON(list_empty(dev_to_msi_list(&dev->dev)));
+
+	/* route the table */
+	pci_intx_for_msi(dev, 0);
+	pci_msix_clear_and_set_ctrl(dev, 0,
+				PCI_MSIX_FLAGS_ENABLE | PCI_MSIX_FLAGS_MASKALL);
+
+	write_msg = arch_restore_msi_irqs(dev);
+
+	for_each_pci_msi_entry(entry, dev) {
+		if (write_msg)
+			__pci_write_msi_msg(entry, &entry->msg);
+		pci_msix_write_vector_ctrl(entry, entry->pci.msix_ctrl);
+	}
+
+	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
+}
+
+void pci_restore_msi_state(struct pci_dev *dev)
+{
+	__pci_restore_msi_state(dev);
+	__pci_restore_msix_state(dev);
+}
+EXPORT_SYMBOL_GPL(pci_restore_msi_state);
+
+static struct msi_desc *
+msi_setup_entry(struct pci_dev *dev, int nvec, struct irq_affinity *affd)
+{
+	struct irq_affinity_desc *masks = NULL;
+	struct msi_desc *entry;
+	u16 control;
+
+	if (affd)
+		masks = irq_create_affinity_masks(nvec, affd);
+
+	/* MSI Entry Initialization */
+	entry = alloc_msi_entry(&dev->dev, nvec, masks);
+	if (!entry)
+		goto out;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
+	/* Lies, damned lies, and MSIs */
+	if (dev->dev_flags & PCI_DEV_FLAGS_HAS_MSI_MASKING)
+		control |= PCI_MSI_FLAGS_MASKBIT;
+
+	entry->pci.msi_attrib.is_msix	= 0;
+	entry->pci.msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
+	entry->pci.msi_attrib.is_virtual    = 0;
+	entry->pci.msi_attrib.entry_nr	= 0;
+	entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+					  !!(control & PCI_MSI_FLAGS_MASKBIT);
+	entry->pci.msi_attrib.default_irq	= dev->irq;	/* Save IOAPIC IRQ */
+	entry->pci.msi_attrib.multi_cap	= (control & PCI_MSI_FLAGS_QMASK) >> 1;
+	entry->pci.msi_attrib.multiple	= ilog2(__roundup_pow_of_two(nvec));
+
+	if (control & PCI_MSI_FLAGS_64BIT)
+		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_64;
+	else
+		entry->pci.mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
+
+	/* Save the initial mask status */
+	if (entry->pci.msi_attrib.can_mask)
+		pci_read_config_dword(dev, entry->pci.mask_pos, &entry->pci.msi_mask);
+
+out:
+	kfree(masks);
+	return entry;
+}
+
+static int msi_verify_entries(struct pci_dev *dev)
+{
+	struct msi_desc *entry;
+
+	if (!dev->no_64bit_msi)
+		return 0;
+
+	for_each_pci_msi_entry(entry, dev) {
+		if (entry->msg.address_hi) {
+			pci_err(dev, "arch assigned 64-bit MSI address %#x%08x but device only supports 32 bits\n",
+				entry->msg.address_hi, entry->msg.address_lo);
+			return -EIO;
+		}
+	}
+	return 0;
+}
+
+/**
+ * msi_capability_init - configure device's MSI capability structure
+ * @dev: pointer to the pci_dev data structure of MSI device function
+ * @nvec: number of interrupts to allocate
+ * @affd: description of automatic IRQ affinity assignments (may be %NULL)
+ *
+ * Setup the MSI capability structure of the device with the requested
+ * number of interrupts.  A return value of zero indicates the successful
+ * setup of an entry with the new MSI IRQ.  A negative return value indicates
+ * an error, and a positive return value indicates the number of interrupts
+ * which could have been allocated.
+ */
+static int msi_capability_init(struct pci_dev *dev, int nvec,
+			       struct irq_affinity *affd)
+{
+	const struct attribute_group **groups;
+	struct msi_desc *entry;
+	int ret;
+
+	pci_msi_set_enable(dev, 0);	/* Disable MSI during set up */
+
+	entry = msi_setup_entry(dev, nvec, affd);
+	if (!entry)
+		return -ENOMEM;
+
+	/* All MSIs are unmasked by default; mask them all */
+	pci_msi_mask(entry, msi_multi_mask(entry));
+
+	list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
+
+	/* Configure MSI capability structure */
+	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSI);
+	if (ret)
+		goto err;
+
+	ret = msi_verify_entries(dev);
+	if (ret)
+		goto err;
+
+	groups = msi_populate_sysfs(&dev->dev);
+	if (IS_ERR(groups)) {
+		ret = PTR_ERR(groups);
+		goto err;
+	}
+
+	dev->msi_irq_groups = groups;
+
+	/* Set MSI enabled bits	*/
+	pci_intx_for_msi(dev, 0);
+	pci_msi_set_enable(dev, 1);
+	dev->msi_enabled = 1;
+
+	pcibios_free_irq(dev);
+	dev->irq = entry->irq;
+	return 0;
+
+err:
+	pci_msi_unmask(entry, msi_multi_mask(entry));
+	free_msi_irqs(dev);
+	return ret;
+}
+
+static void __iomem *msix_map_region(struct pci_dev *dev,
+				     unsigned int nr_entries)
+{
+	resource_size_t phys_addr;
+	u32 table_offset;
+	unsigned long flags;
+	u8 bir;
+
+	pci_read_config_dword(dev, dev->msix_cap + PCI_MSIX_TABLE,
+			      &table_offset);
+	bir = (u8)(table_offset & PCI_MSIX_TABLE_BIR);
+	flags = pci_resource_flags(dev, bir);
+	if (!flags || (flags & IORESOURCE_UNSET))
+		return NULL;
+
+	table_offset &= PCI_MSIX_TABLE_OFFSET;
+	phys_addr = pci_resource_start(dev, bir) + table_offset;
+
+	return ioremap(phys_addr, nr_entries * PCI_MSIX_ENTRY_SIZE);
+}
+
+static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
+			      struct msix_entry *entries, int nvec,
+			      struct irq_affinity *affd)
+{
+	struct irq_affinity_desc *curmsk, *masks = NULL;
+	struct msi_desc *entry;
+	void __iomem *addr;
+	int ret, i;
+	int vec_count = pci_msix_vec_count(dev);
+
+	if (affd)
+		masks = irq_create_affinity_masks(nvec, affd);
+
+	for (i = 0, curmsk = masks; i < nvec; i++) {
+		entry = alloc_msi_entry(&dev->dev, 1, curmsk);
+		if (!entry) {
+			if (!i)
+				iounmap(base);
+			else
+				free_msi_irqs(dev);
+			/* No enough memory. Don't try again */
+			ret = -ENOMEM;
+			goto out;
+		}
+
+		entry->pci.msi_attrib.is_msix	= 1;
+		entry->pci.msi_attrib.is_64	= 1;
+
+		if (entries)
+			entry->pci.msi_attrib.entry_nr = entries[i].entry;
+		else
+			entry->pci.msi_attrib.entry_nr = i;
+
+		entry->pci.msi_attrib.is_virtual =
+			entry->pci.msi_attrib.entry_nr >= vec_count;
+
+		entry->pci.msi_attrib.can_mask	= !pci_msi_ignore_mask &&
+						  !entry->pci.msi_attrib.is_virtual;
+
+		entry->pci.msi_attrib.default_irq	= dev->irq;
+		entry->pci.mask_base			= base;
+
+		if (entry->pci.msi_attrib.can_mask) {
+			addr = pci_msix_desc_addr(entry);
+			entry->pci.msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
+		}
+
+		list_add_tail(&entry->list, dev_to_msi_list(&dev->dev));
+		if (masks)
+			curmsk++;
+	}
+	ret = 0;
+out:
+	kfree(masks);
+	return ret;
+}
+
+static void msix_update_entries(struct pci_dev *dev, struct msix_entry *entries)
+{
+	struct msi_desc *entry;
+
+	if (entries) {
+		for_each_pci_msi_entry(entry, dev) {
+			entries->vector = entry->irq;
+			entries++;
+		}
+	}
+}
+
+static void msix_mask_all(void __iomem *base, int tsize)
+{
+	u32 ctrl = PCI_MSIX_ENTRY_CTRL_MASKBIT;
+	int i;
+
+	if (pci_msi_ignore_mask)
+		return;
+
+	for (i = 0; i < tsize; i++, base += PCI_MSIX_ENTRY_SIZE)
+		writel(ctrl, base + PCI_MSIX_ENTRY_VECTOR_CTRL);
+}
+
+/**
+ * msix_capability_init - configure device's MSI-X capability
+ * @dev: pointer to the pci_dev data structure of MSI-X device function
+ * @entries: pointer to an array of struct msix_entry entries
+ * @nvec: number of @entries
+ * @affd: Optional pointer to enable automatic affinity assignment
+ *
+ * Setup the MSI-X capability structure of device function with a
+ * single MSI-X IRQ. A return of zero indicates the successful setup of
+ * requested MSI-X entries with allocated IRQs or non-zero for otherwise.
+ **/
+static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries,
+				int nvec, struct irq_affinity *affd)
+{
+	const struct attribute_group **groups;
+	void __iomem *base;
+	int ret, tsize;
+	u16 control;
+
+	/*
+	 * Some devices require MSI-X to be enabled before the MSI-X
+	 * registers can be accessed.  Mask all the vectors to prevent
+	 * interrupts coming in before they're fully set up.
+	 */
+	pci_msix_clear_and_set_ctrl(dev, 0, PCI_MSIX_FLAGS_MASKALL |
+				    PCI_MSIX_FLAGS_ENABLE);
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control);
+	/* Request & Map MSI-X table region */
+	tsize = msix_table_size(control);
+	base = msix_map_region(dev, tsize);
+	if (!base) {
+		ret = -ENOMEM;
+		goto out_disable;
+	}
+
+	/* Ensure that all table entries are masked. */
+	msix_mask_all(base, tsize);
+
+	ret = msix_setup_entries(dev, base, entries, nvec, affd);
+	if (ret)
+		goto out_disable;
+
+	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
+	if (ret)
+		goto out_avail;
+
+	/* Check if all MSI entries honor device restrictions */
+	ret = msi_verify_entries(dev);
+	if (ret)
+		goto out_free;
+
+	msix_update_entries(dev, entries);
+
+	groups = msi_populate_sysfs(&dev->dev);
+	if (IS_ERR(groups)) {
+		ret = PTR_ERR(groups);
+		goto out_free;
+	}
+
+	dev->msi_irq_groups = groups;
+
+	/* Set MSI-X enabled bits and unmask the function */
+	pci_intx_for_msi(dev, 0);
+	dev->msix_enabled = 1;
+	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
+
+	pcibios_free_irq(dev);
+	return 0;
+
+out_avail:
+	if (ret < 0) {
+		/*
+		 * If we had some success, report the number of IRQs
+		 * we succeeded in setting up.
+		 */
+		struct msi_desc *entry;
+		int avail = 0;
+
+		for_each_pci_msi_entry(entry, dev) {
+			if (entry->irq != 0)
+				avail++;
+		}
+		if (avail != 0)
+			ret = avail;
+	}
+
+out_free:
+	free_msi_irqs(dev);
+
+out_disable:
+	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0);
+
+	return ret;
+}
+
+/**
+ * pci_msi_supported - check whether MSI may be enabled on a device
+ * @dev: pointer to the pci_dev data structure of MSI device function
+ * @nvec: how many MSIs have been requested?
+ *
+ * Look at global flags, the device itself, and its parent buses
+ * to determine if MSI/-X are supported for the device. If MSI/-X is
+ * supported return 1, else return 0.
+ **/
+static int pci_msi_supported(struct pci_dev *dev, int nvec)
+{
+	struct pci_bus *bus;
+
+	/* MSI must be globally enabled and supported by the device */
+	if (!pci_msi_enable)
+		return 0;
+
+	if (!dev || dev->no_msi)
+		return 0;
+
+	/*
+	 * You can't ask to have 0 or less MSIs configured.
+	 *  a) it's stupid ..
+	 *  b) the list manipulation code assumes nvec >= 1.
+	 */
+	if (nvec < 1)
+		return 0;
+
+	/*
+	 * Any bridge which does NOT route MSI transactions from its
+	 * secondary bus to its primary bus must set NO_MSI flag on
+	 * the secondary pci_bus.
+	 *
+	 * The NO_MSI flag can either be set directly by:
+	 * - arch-specific PCI host bus controller drivers (deprecated)
+	 * - quirks for specific PCI bridges
+	 *
+	 * or indirectly by platform-specific PCI host bridge drivers by
+	 * advertising the 'msi_domain' property, which results in
+	 * the NO_MSI flag when no MSI domain is found for this bridge
+	 * at probe time.
+	 */
+	for (bus = dev->bus; bus; bus = bus->parent)
+		if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
+			return 0;
+
+	return 1;
+}
+
+/**
+ * pci_msi_vec_count - Return the number of MSI vectors a device can send
+ * @dev: device to report about
+ *
+ * This function returns the number of MSI vectors a device requested via
+ * Multiple Message Capable register. It returns a negative errno if the
+ * device is not capable sending MSI interrupts. Otherwise, the call succeeds
+ * and returns a power of two, up to a maximum of 2^5 (32), according to the
+ * MSI specification.
+ **/
+int pci_msi_vec_count(struct pci_dev *dev)
+{
+	int ret;
+	u16 msgctl;
+
+	if (!dev->msi_cap)
+		return -EINVAL;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &msgctl);
+	ret = 1 << ((msgctl & PCI_MSI_FLAGS_QMASK) >> 1);
+
+	return ret;
+}
+EXPORT_SYMBOL(pci_msi_vec_count);
+
+static void pci_msi_shutdown(struct pci_dev *dev)
+{
+	struct msi_desc *desc;
+
+	if (!pci_msi_enable || !dev || !dev->msi_enabled)
+		return;
+
+	BUG_ON(list_empty(dev_to_msi_list(&dev->dev)));
+	desc = first_pci_msi_entry(dev);
+
+	pci_msi_set_enable(dev, 0);
+	pci_intx_for_msi(dev, 1);
+	dev->msi_enabled = 0;
+
+	/* Return the device with MSI unmasked as initial states */
+	pci_msi_unmask(desc, msi_multi_mask(desc));
+
+	/* Restore dev->irq to its default pin-assertion IRQ */
+	dev->irq = desc->pci.msi_attrib.default_irq;
+	pcibios_alloc_irq(dev);
+}
+
+void pci_disable_msi(struct pci_dev *dev)
+{
+	if (!pci_msi_enable || !dev || !dev->msi_enabled)
+		return;
+
+	pci_msi_shutdown(dev);
+	free_msi_irqs(dev);
+}
+EXPORT_SYMBOL(pci_disable_msi);
+
+/**
+ * pci_msix_vec_count - return the number of device's MSI-X table entries
+ * @dev: pointer to the pci_dev data structure of MSI-X device function
+ * This function returns the number of device's MSI-X table entries and
+ * therefore the number of MSI-X vectors device is capable of sending.
+ * It returns a negative errno if the device is not capable of sending MSI-X
+ * interrupts.
+ **/
+int pci_msix_vec_count(struct pci_dev *dev)
+{
+	u16 control;
+
+	if (!dev->msix_cap)
+		return -EINVAL;
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control);
+	return msix_table_size(control);
+}
+EXPORT_SYMBOL(pci_msix_vec_count);
+
+static int __pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries,
+			     int nvec, struct irq_affinity *affd, int flags)
+{
+	int nr_entries;
+	int i, j;
+
+	if (!pci_msi_supported(dev, nvec) || dev->current_state != PCI_D0)
+		return -EINVAL;
+
+	nr_entries = pci_msix_vec_count(dev);
+	if (nr_entries < 0)
+		return nr_entries;
+	if (nvec > nr_entries && !(flags & PCI_IRQ_VIRTUAL))
+		return nr_entries;
+
+	if (entries) {
+		/* Check for any invalid entries */
+		for (i = 0; i < nvec; i++) {
+			if (entries[i].entry >= nr_entries)
+				return -EINVAL;		/* invalid entry */
+			for (j = i + 1; j < nvec; j++) {
+				if (entries[i].entry == entries[j].entry)
+					return -EINVAL;	/* duplicate entry */
+			}
+		}
+	}
+
+	/* Check whether driver already requested for MSI IRQ */
+	if (dev->msi_enabled) {
+		pci_info(dev, "can't enable MSI-X (MSI IRQ already assigned)\n");
+		return -EINVAL;
+	}
+	return msix_capability_init(dev, entries, nvec, affd);
+}
+
+static void pci_msix_shutdown(struct pci_dev *dev)
+{
+	struct msi_desc *entry;
+
+	if (!pci_msi_enable || !dev || !dev->msix_enabled)
+		return;
+
+	if (pci_dev_is_disconnected(dev)) {
+		dev->msix_enabled = 0;
+		return;
+	}
+
+	/* Return the device with MSI-X masked as initial states */
+	for_each_pci_msi_entry(entry, dev)
+		pci_msix_mask(entry);
+
+	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0);
+	pci_intx_for_msi(dev, 1);
+	dev->msix_enabled = 0;
+	pcibios_alloc_irq(dev);
+}
+
+void pci_disable_msix(struct pci_dev *dev)
+{
+	if (!pci_msi_enable || !dev || !dev->msix_enabled)
+		return;
+
+	pci_msix_shutdown(dev);
+	free_msi_irqs(dev);
+}
+EXPORT_SYMBOL(pci_disable_msix);
+
+void pci_no_msi(void)
+{
+	pci_msi_enable = 0;
+}
+
+/**
+ * pci_msi_enabled - is MSI enabled?
+ *
+ * Returns true if MSI has not been disabled by the command-line option
+ * pci=nomsi.
+ **/
+int pci_msi_enabled(void)
+{
+	return pci_msi_enable;
+}
+EXPORT_SYMBOL(pci_msi_enabled);
+
+static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
+				  struct irq_affinity *affd)
+{
+	int nvec;
+	int rc;
+
+	if (!pci_msi_supported(dev, minvec) || dev->current_state != PCI_D0)
+		return -EINVAL;
+
+	/* Check whether driver already requested MSI-X IRQs */
+	if (dev->msix_enabled) {
+		pci_info(dev, "can't enable MSI (MSI-X already enabled)\n");
+		return -EINVAL;
+	}
+
+	if (maxvec < minvec)
+		return -ERANGE;
+
+	if (WARN_ON_ONCE(dev->msi_enabled))
+		return -EINVAL;
+
+	nvec = pci_msi_vec_count(dev);
+	if (nvec < 0)
+		return nvec;
+	if (nvec < minvec)
+		return -ENOSPC;
+
+	if (nvec > maxvec)
+		nvec = maxvec;
+
+	for (;;) {
+		if (affd) {
+			nvec = irq_calc_affinity_vectors(minvec, nvec, affd);
+			if (nvec < minvec)
+				return -ENOSPC;
+		}
+
+		rc = msi_capability_init(dev, nvec, affd);
+		if (rc == 0)
+			return nvec;
+
+		if (rc < 0)
+			return rc;
+		if (rc < minvec)
+			return -ENOSPC;
+
+		nvec = rc;
+	}
+}
+
+/* deprecated, don't use */
+int pci_enable_msi(struct pci_dev *dev)
+{
+	int rc = __pci_enable_msi_range(dev, 1, 1, NULL);
+	if (rc < 0)
+		return rc;
+	return 0;
+}
+EXPORT_SYMBOL(pci_enable_msi);
+
+static int __pci_enable_msix_range(struct pci_dev *dev,
+				   struct msix_entry *entries, int minvec,
+				   int maxvec, struct irq_affinity *affd,
+				   int flags)
+{
+	int rc, nvec = maxvec;
+
+	if (maxvec < minvec)
+		return -ERANGE;
+
+	if (WARN_ON_ONCE(dev->msix_enabled))
+		return -EINVAL;
+
+	for (;;) {
+		if (affd) {
+			nvec = irq_calc_affinity_vectors(minvec, nvec, affd);
+			if (nvec < minvec)
+				return -ENOSPC;
+		}
+
+		rc = __pci_enable_msix(dev, entries, nvec, affd, flags);
+		if (rc == 0)
+			return nvec;
+
+		if (rc < 0)
+			return rc;
+		if (rc < minvec)
+			return -ENOSPC;
+
+		nvec = rc;
+	}
+}
+
+/**
+ * pci_enable_msix_range - configure device's MSI-X capability structure
+ * @dev: pointer to the pci_dev data structure of MSI-X device function
+ * @entries: pointer to an array of MSI-X entries
+ * @minvec: minimum number of MSI-X IRQs requested
+ * @maxvec: maximum number of MSI-X IRQs requested
+ *
+ * Setup the MSI-X capability structure of device function with a maximum
+ * possible number of interrupts in the range between @minvec and @maxvec
+ * upon its software driver call to request for MSI-X mode enabled on its
+ * hardware device function. It returns a negative errno if an error occurs.
+ * If it succeeds, it returns the actual number of interrupts allocated and
+ * indicates the successful configuration of MSI-X capability structure
+ * with new allocated MSI-X interrupts.
+ **/
+int pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries,
+		int minvec, int maxvec)
+{
+	return __pci_enable_msix_range(dev, entries, minvec, maxvec, NULL, 0);
+}
+EXPORT_SYMBOL(pci_enable_msix_range);
+
+/**
+ * pci_alloc_irq_vectors_affinity - allocate multiple IRQs for a device
+ * @dev:		PCI device to operate on
+ * @min_vecs:		minimum number of vectors required (must be >= 1)
+ * @max_vecs:		maximum (desired) number of vectors
+ * @flags:		flags or quirks for the allocation
+ * @affd:		optional description of the affinity requirements
+ *
+ * Allocate up to @max_vecs interrupt vectors for @dev, using MSI-X or MSI
+ * vectors if available, and fall back to a single legacy vector
+ * if neither is available.  Return the number of vectors allocated,
+ * (which might be smaller than @max_vecs) if successful, or a negative
+ * error code on error. If less than @min_vecs interrupt vectors are
+ * available for @dev the function will fail with -ENOSPC.
+ *
+ * To get the Linux IRQ number used for a vector that can be passed to
+ * request_irq() use the pci_irq_vector() helper.
+ */
+int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs,
+				   unsigned int max_vecs, unsigned int flags,
+				   struct irq_affinity *affd)
+{
+	struct irq_affinity msi_default_affd = {0};
+	int nvecs = -ENOSPC;
+
+	if (flags & PCI_IRQ_AFFINITY) {
+		if (!affd)
+			affd = &msi_default_affd;
+	} else {
+		if (WARN_ON(affd))
+			affd = NULL;
+	}
+
+	if (flags & PCI_IRQ_MSIX) {
+		nvecs = __pci_enable_msix_range(dev, NULL, min_vecs, max_vecs,
+						affd, flags);
+		if (nvecs > 0)
+			return nvecs;
+	}
+
+	if (flags & PCI_IRQ_MSI) {
+		nvecs = __pci_enable_msi_range(dev, min_vecs, max_vecs, affd);
+		if (nvecs > 0)
+			return nvecs;
+	}
+
+	/* use legacy IRQ if allowed */
+	if (flags & PCI_IRQ_LEGACY) {
+		if (min_vecs == 1 && dev->irq) {
+			/*
+			 * Invoke the affinity spreading logic to ensure that
+			 * the device driver can adjust queue configuration
+			 * for the single interrupt case.
+			 */
+			if (affd)
+				irq_create_affinity_masks(1, affd);
+			pci_intx(dev, 1);
+			return 1;
+		}
+	}
+
+	return nvecs;
+}
+EXPORT_SYMBOL(pci_alloc_irq_vectors_affinity);
+
+/**
+ * pci_free_irq_vectors - free previously allocated IRQs for a device
+ * @dev:		PCI device to operate on
+ *
+ * Undoes the allocations and enabling in pci_alloc_irq_vectors().
+ */
+void pci_free_irq_vectors(struct pci_dev *dev)
+{
+	pci_disable_msix(dev);
+	pci_disable_msi(dev);
+}
+EXPORT_SYMBOL(pci_free_irq_vectors);
+
+/**
+ * pci_irq_vector - return Linux IRQ number of a device vector
+ * @dev:	PCI device to operate on
+ * @nr:		Interrupt vector index (0-based)
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ *   MSI-X:	The index in the MSI-X vector table
+ *   MSI:	The index of the enabled MSI vectors
+ *   INTx:	Must be 0
+ *
+ * Return: The Linux interrupt number or -EINVAl if @nr is out of range.
+ */
+int pci_irq_vector(struct pci_dev *dev, unsigned int nr)
+{
+	if (dev->msix_enabled) {
+		struct msi_desc *entry;
+
+		for_each_pci_msi_entry(entry, dev) {
+			if (entry->pci.msi_attrib.entry_nr == nr)
+				return entry->irq;
+		}
+		WARN_ON_ONCE(1);
+		return -EINVAL;
+	}
+
+	if (dev->msi_enabled) {
+		struct msi_desc *entry = first_pci_msi_entry(dev);
+
+		if (WARN_ON_ONCE(nr >= entry->nvec_used))
+			return -EINVAL;
+	} else {
+		if (WARN_ON_ONCE(nr > 0))
+			return -EINVAL;
+	}
+
+	return dev->irq + nr;
+}
+EXPORT_SYMBOL(pci_irq_vector);
+
+/**
+ * pci_irq_get_affinity - return the affinity of a particular MSI vector
+ * @dev:	PCI device to operate on
+ * @nr:		device-relative interrupt vector index (0-based).
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ *   MSI-X:	The index in the MSI-X vector table
+ *   MSI:	The index of the enabled MSI vectors
+ *   INTx:	Must be 0
+ *
+ * Return: A cpumask pointer or NULL if @nr is out of range
+ */
+const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
+{
+	if (dev->msix_enabled) {
+		struct msi_desc *entry;
+
+		for_each_pci_msi_entry(entry, dev) {
+			if (entry->pci.msi_attrib.entry_nr == nr)
+				return &entry->affinity->mask;
+		}
+		WARN_ON_ONCE(1);
+		return NULL;
+	} else if (dev->msi_enabled) {
+		struct msi_desc *entry = first_pci_msi_entry(dev);
+
+		if (WARN_ON_ONCE(!entry || !entry->affinity ||
+				 nr >= entry->nvec_used))
+			return NULL;
+
+		return &entry->affinity[nr].mask;
+	} else {
+		return cpu_possible_mask;
+	}
+}
+EXPORT_SYMBOL(pci_irq_get_affinity);
+
+struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc)
+{
+	return to_pci_dev(desc->dev);
+}
+EXPORT_SYMBOL(msi_desc_to_pci_dev);
+
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
+/**
+ * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
+ * @irq_data:	Pointer to interrupt data of the MSI interrupt
+ * @msg:	Pointer to the message
+ */
+static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg)
+{
+	struct msi_desc *desc = irq_data_get_msi_desc(irq_data);
+
+	/*
+	 * For MSI-X desc->irq is always equal to irq_data->irq. For
+	 * MSI only the first interrupt of MULTI MSI passes the test.
+	 */
+	if (desc->irq == irq_data->irq)
+		__pci_write_msi_msg(desc, msg);
+}
+
+/**
+ * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
+ * @desc:	Pointer to the MSI descriptor
+ *
+ * The ID number is only used within the irqdomain.
+ */
+static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
+{
+	struct pci_dev *dev = msi_desc_to_pci_dev(desc);
+
+	return (irq_hw_number_t)desc->pci.msi_attrib.entry_nr |
+		pci_dev_id(dev) << 11 |
+		(pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
+}
+
+static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc)
+{
+	return !desc->pci.msi_attrib.is_msix && desc->nvec_used > 1;
+}
+
+/**
+ * pci_msi_domain_check_cap - Verify that @domain supports the capabilities
+ * 			      for @dev
+ * @domain:	The interrupt domain to check
+ * @info:	The domain info for verification
+ * @dev:	The device to check
+ *
+ * Returns:
+ *  0 if the functionality is supported
+ *  1 if Multi MSI is requested, but the domain does not support it
+ *  -ENOTSUPP otherwise
+ */
+int pci_msi_domain_check_cap(struct irq_domain *domain,
+			     struct msi_domain_info *info, struct device *dev)
+{
+	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
+
+	/* Special handling to support __pci_enable_msi_range() */
+	if (pci_msi_desc_is_multi_msi(desc) &&
+	    !(info->flags & MSI_FLAG_MULTI_PCI_MSI))
+		return 1;
+	else if (desc->pci.msi_attrib.is_msix && !(info->flags & MSI_FLAG_PCI_MSIX))
+		return -ENOTSUPP;
+
+	return 0;
+}
+
+static int pci_msi_domain_handle_error(struct irq_domain *domain,
+				       struct msi_desc *desc, int error)
+{
+	/* Special handling to support __pci_enable_msi_range() */
+	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
+		return 1;
+
+	return error;
+}
+
+static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
+				    struct msi_desc *desc)
+{
+	arg->desc = desc;
+	arg->hwirq = pci_msi_domain_calc_hwirq(desc);
+}
+
+static struct msi_domain_ops pci_msi_domain_ops_default = {
+	.set_desc	= pci_msi_domain_set_desc,
+	.msi_check	= pci_msi_domain_check_cap,
+	.handle_error	= pci_msi_domain_handle_error,
+};
+
+static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
+{
+	struct msi_domain_ops *ops = info->ops;
+
+	if (ops == NULL) {
+		info->ops = &pci_msi_domain_ops_default;
+	} else {
+		if (ops->set_desc == NULL)
+			ops->set_desc = pci_msi_domain_set_desc;
+		if (ops->msi_check == NULL)
+			ops->msi_check = pci_msi_domain_check_cap;
+		if (ops->handle_error == NULL)
+			ops->handle_error = pci_msi_domain_handle_error;
+	}
+}
+
+static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
+{
+	struct irq_chip *chip = info->chip;
+
+	BUG_ON(!chip);
+	if (!chip->irq_write_msi_msg)
+		chip->irq_write_msi_msg = pci_msi_domain_write_msg;
+	if (!chip->irq_mask)
+		chip->irq_mask = pci_msi_mask_irq;
+	if (!chip->irq_unmask)
+		chip->irq_unmask = pci_msi_unmask_irq;
+}
+
+/**
+ * pci_msi_create_irq_domain - Create a MSI interrupt domain
+ * @fwnode:	Optional fwnode of the interrupt controller
+ * @info:	MSI domain info
+ * @parent:	Parent irq domain
+ *
+ * Updates the domain and chip ops and creates a MSI interrupt domain.
+ *
+ * Returns:
+ * A domain pointer or NULL in case of failure.
+ */
+struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
+					     struct msi_domain_info *info,
+					     struct irq_domain *parent)
+{
+	struct irq_domain *domain;
+
+	if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE))
+		info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
+
+	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
+		pci_msi_domain_update_dom_ops(info);
+	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
+		pci_msi_domain_update_chip_ops(info);
+
+	info->flags |= MSI_FLAG_ACTIVATE_EARLY;
+	if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
+		info->flags |= MSI_FLAG_MUST_REACTIVATE;
+
+	/* PCI-MSI is oneshot-safe */
+	info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
+
+	domain = msi_create_irq_domain(fwnode, info, parent);
+	if (!domain)
+		return NULL;
+
+	irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI);
+	return domain;
+}
+EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
+
+/*
+ * Users of the generic MSI infrastructure expect a device to have a single ID,
+ * so with DMA aliases we have to pick the least-worst compromise. Devices with
+ * DMA phantom functions tend to still emit MSIs from the real function number,
+ * so we ignore those and only consider topological aliases where either the
+ * alias device or RID appears on a different bus number. We also make the
+ * reasonable assumption that bridges are walked in an upstream direction (so
+ * the last one seen wins), and the much braver assumption that the most likely
+ * case is that of PCI->PCIe so we should always use the alias RID. This echoes
+ * the logic from intel_irq_remapping's set_msi_sid(), which presumably works
+ * well enough in practice; in the face of the horrible PCIe<->PCI-X conditions
+ * for taking ownership all we can really do is close our eyes and hope...
+ */
+static int get_msi_id_cb(struct pci_dev *pdev, u16 alias, void *data)
+{
+	u32 *pa = data;
+	u8 bus = PCI_BUS_NUM(*pa);
+
+	if (pdev->bus->number != bus || PCI_BUS_NUM(alias) != bus)
+		*pa = alias;
+
+	return 0;
+}
+
+/**
+ * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
+ * @domain:	The interrupt domain
+ * @pdev:	The PCI device.
+ *
+ * The RID for a device is formed from the alias, with a firmware
+ * supplied mapping applied
+ *
+ * Returns: The RID.
+ */
+u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
+{
+	struct device_node *of_node;
+	u32 rid = pci_dev_id(pdev);
+
+	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
+
+	of_node = irq_domain_get_of_node(domain);
+	rid = of_node ? of_msi_map_id(&pdev->dev, of_node, rid) :
+			iort_msi_map_id(&pdev->dev, rid);
+
+	return rid;
+}
+
+/**
+ * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
+ * @pdev:	The PCI device
+ *
+ * Use the firmware data to find a device-specific MSI domain
+ * (i.e. not one that is set as a default).
+ *
+ * Returns: The corresponding MSI domain or NULL if none has been found.
+ */
+struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
+{
+	struct irq_domain *dom;
+	u32 rid = pci_dev_id(pdev);
+
+	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
+	dom = of_msi_map_get_device_domain(&pdev->dev, rid, DOMAIN_BUS_PCI_MSI);
+	if (!dom)
+		dom = iort_get_device_domain(&pdev->dev, rid,
+					     DOMAIN_BUS_PCI_MSI);
+	return dom;
+}
+
+/**
+ * pci_dev_has_special_msi_domain - Check whether the device is handled by
+ *				    a non-standard PCI-MSI domain
+ * @pdev:	The PCI device to check.
+ *
+ * Returns: True if the device irqdomain or the bus irqdomain is
+ * non-standard PCI/MSI.
+ */
+bool pci_dev_has_special_msi_domain(struct pci_dev *pdev)
+{
+	struct irq_domain *dom = dev_get_msi_domain(&pdev->dev);
+
+	if (!dom)
+		dom = dev_get_msi_domain(&pdev->bus->dev);
+
+	if (!dom)
+		return true;
+
+	return dom->bus_token != DOMAIN_BUS_PCI_MSI;
+}
+
+#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
+#endif /* CONFIG_PCI_MSI */
+
+void pci_msi_init(struct pci_dev *dev)
+{
+	u16 ctrl;
+
+	/*
+	 * Disable the MSI hardware to avoid screaming interrupts
+	 * during boot.  This is the power on reset default so
+	 * usually this should be a noop.
+	 */
+	dev->msi_cap = pci_find_capability(dev, PCI_CAP_ID_MSI);
+	if (!dev->msi_cap)
+		return;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &ctrl);
+	if (ctrl & PCI_MSI_FLAGS_ENABLE)
+		pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS,
+				      ctrl & ~PCI_MSI_FLAGS_ENABLE);
+
+	if (!(ctrl & PCI_MSI_FLAGS_64BIT))
+		dev->no_64bit_msi = 1;
+}
+
+void pci_msix_init(struct pci_dev *dev)
+{
+	u16 ctrl;
+
+	dev->msix_cap = pci_find_capability(dev, PCI_CAP_ID_MSIX);
+	if (!dev->msix_cap)
+		return;
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
+	if (ctrl & PCI_MSIX_FLAGS_ENABLE)
+		pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS,
+				      ctrl & ~PCI_MSIX_FLAGS_ENABLE);
+}



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233718.405863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVN-00078q-Qz; Sat, 27 Nov 2021 01:27:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233718.405863; Sat, 27 Nov 2021 01:27:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVN-00074m-BV; Sat, 27 Nov 2021 01:27:53 +0000
Received: by outflank-mailman (input) for mailman id 233718;
 Sat, 27 Nov 2021 01:27:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNe-00020H-9P
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:54 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f87cef1-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:53 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f87cef1-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223825.264524206@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975992;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=N3CFGfVjsY7LgA1Yw7Ey6P6ZQR/J2nTOxZlFyVj+tfU=;
	b=UfXqK4gHJS3wPrPWiNFsuJp5HCTjIMxFsP8ieaP1ilUkrrU01dxUB5PdkZecIz/2WXNEDq
	zvQjSUFgNnyACCzEWpqx1wmulOVMiL53hM7R/wSlGdbFvvWu840Kf2DJaw206hvZUW/rQp
	dOlRJjtmhZTf9O3fV+JGlP/YxAK15GPOFZABTPuiIs1aoD0EvDnWkH4402nsZ8ReI8AieR
	SrVz0lfx1O/CNC7HT879BBtrVQq4CHQ0CndpLLdNF7SJonwfQgc1mB4YRrtlRWvv4yi+F/
	P9XuE8iCb//pScvRTDx5E4hACjEKW7m4egqtMvg4mKkUgc8gQngM5uxro0gbbA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975992;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=N3CFGfVjsY7LgA1Yw7Ey6P6ZQR/J2nTOxZlFyVj+tfU=;
	b=bQ7sWeM7+DD80GlhKbKWVV73INxg6+XoecjdOCWqiIj/3h6tbwB6loe8CEFHmwu4WmDfwV
	nt+kpAzvuwOrXJAQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 20/22] PCI/MSI: Make pci_msi_domain_check_cap() static
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:52 +0100 (CET)

No users outside of that file.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |    5 +++--
 include/linux/msi.h         |    2 --
 2 files changed, 3 insertions(+), 4 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -79,8 +79,9 @@ static inline bool pci_msi_desc_is_multi
  *  1 if Multi MSI is requested, but the domain does not support it
  *  -ENOTSUPP otherwise
  */
-int pci_msi_domain_check_cap(struct irq_domain *domain,
-			     struct msi_domain_info *info, struct device *dev)
+static int pci_msi_domain_check_cap(struct irq_domain *domain,
+				    struct msi_domain_info *info,
+				    struct device *dev)
 {
 	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -438,8 +438,6 @@ void *platform_msi_get_host_data(struct
 struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
 					     struct msi_domain_info *info,
 					     struct irq_domain *parent);
-int pci_msi_domain_check_cap(struct irq_domain *domain,
-			     struct msi_domain_info *info, struct device *dev);
 u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev);
 struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev);
 bool pci_dev_has_special_msi_domain(struct pci_dev *pdev);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233722.405874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVQ-0007jf-3d; Sat, 27 Nov 2021 01:27:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233722.405874; Sat, 27 Nov 2021 01:27:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVP-0007fy-J1; Sat, 27 Nov 2021 01:27:55 +0000
Received: by outflank-mailman (input) for mailman id 233722;
 Sat, 27 Nov 2021 01:27:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSY-0004gG-Ms
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:24:58 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d5665c5b-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:24:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5665c5b-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126233124.618283684@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976297;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=db+bEd42/odCLFRuWnqbyMqKNP8CPK8Qgl6k8EnxiD4=;
	b=1JlpTSX4Oy1wxfkRGfi3MFe15urC2p2+OrjfJgRh8RUL+84OSGSciJke659tDU3sGZWAPK
	kl9oaW52ONLaQ3HdTC/tL2eZb0dBKAlCTOBLxqnsHzvTkHnb2zmWh2mf67D0QDpvGh+PDN
	HYafcSl5dWtgEzn6jQ4MFoQ1CykTAYxLJzPL3dhreYF90toQe1lMo8dPAx8l/oXk/4Oe4R
	kAsJxgjoMqD641Zs66b3plcM9681VXaFP2G4W9DXXHvZegFqWPMRjXsdkuu/B4mAqmGsHL
	+nMcmL4XP8tl2H/u4Jfcrn2L2H6APZ9shAZy/iqsDKIBWqfUN22XWDpbzNMYFw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976297;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=db+bEd42/odCLFRuWnqbyMqKNP8CPK8Qgl6k8EnxiD4=;
	b=aqqfLHlqslFm90N1E+AAibzpkiPNtQQ0MsJBpzh2OzQqLTRDn821RvKr0rjBDdb4IhJ4XQ
	RhGdp4ZZeW3Q1bBQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 00/10] genirq/msi, PCI/MSI: Support for dynamic MSI-X vector
 expansion - Part 4
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Date: Sat, 27 Nov 2021 02:24:57 +0100 (CET)

VGhpcyBpcyBmaW5hbGx5IHRoZSBwb2ludCB3aGVyZSBkeW5hbWljYWxseSBleHBhbmRpbmcgTVNJ
LVggdmVjdG9ycyBhZnRlcgplbmFibGluZyBNU0ktWCBpcyBpbXBsZW1lbnRlZC4KClRoZSBmaXJz
dCB0aHJlZSBwYXJ0cyBvZiB0aGlzIHdvcmsgY2FuIGJlIGZvdW5kIGhlcmU6CgogICAgaHR0cHM6
Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDIxMTEyNjIyMjcwMC44NjI0MDc5NzdAbGludXRyb25peC5k
ZQogICAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDIxMTEyNjIyNDEwMC4zMDMwNDY3NDlA
bGludXRyb25peC5kZQogICAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDIxMTEyNjIzMDk1
Ny4yMzkzOTE3OTlAbGludXRyb25peC5kZQoKVGhpcyBsYXN0IGFuZCBzbWFsbGVzdCBwYXJ0IG9m
IHRoZSBvdmVyYWxsIHNlcmllcyBjb250YWlucyB0aGUgZm9sbG93aW5nCmNoYW5nZXM6CgogICAx
KSBQcmVwYXJlIHRoZSBjb3JlIE1TSSBpcnEgZG9tYWluIGNvZGUgdG8gaGFuZGxlIHJhbmdlIGJh
c2VkIGFsbG9jYXRpb24KICAgICAgYW5kIGZyZWUKCiAgIDIpIFByZXBhcmUgdGhlIFBDSS9NU0kg
Y29kZSB0byBoYW5kbGUgcmFuZ2UgYmFzZWQgYWxsb2NhdGlvbiBhbmQgZnJlZQogIAogICAzKSBJ
bXBsZW1lbnQgYSBuZXcgaW50ZXJmYWNlIHdoaWNoIGFsbG93cyB0byBleHBhbmQgdGhlIE1TSS1Y
IHZlY3RvcgogICAgICBzcGFjZSBhZnRlciBpbml0aWFsaXphdGlvbgoKICAgNCkgRW5hYmxlIHN1
cHBvcnQgZm9yIHRoZSBYODYgUENJL01TSSBpcnEgZG9tYWlucwoKICAgICAgVGhpcyBpcyB1bmZv
cnR1bmF0ZSwgYnV0IHNvbWUgUENJL01TSSBpcnEgZG9tYWluIGltcGxlbWVudGF0aW9ucywKICAg
ICAgZS5nLiBwb3dlcnBjIGFuZCB0aGUgeDg2L1hFTiBpcnFkb21haW4gd3JhcHBlcnMgYXJlIG5v
dCByZWFsbHkgcmVhZHkKICAgICAgdG8gc3VwcG9ydCB0aGlzIG91dCBvZiB0aGUgYm94LgoKICAg
ICAgSSBsb29rZWQgYXQgdGhlIDMwIHBsYWNlcyB3aGljaCBpbXBsZW1lbnQgUENJL01TSSBpcnEg
ZG9tYWlucyBhbmQKICAgICAgbWFueSBvZiB0aGVtIGxvb2sgbGlrZSB0aGV5IGNvdWxkIHN1cHBv
cnQgaXQgb3V0IG9mIHRoZSBib3gsIGJ1dCBhcwogICAgICB3ZSBoYXZlIHR3byB3aGljaCBkZWZp
bml0ZWx5IGRvbid0LCBtYWtpbmcgdGhpcyBvcHQtaW4gaXMgdGhlIG9ubHkKICAgICAgc2FmZSBv
cHRpb24uCgpJJ3ZlIHRlc3RlZCB0aGlzIGJ5IGhhY2tpbmcgdXAgdGhlIFhIQ0kgZHJpdmVyIGFu
ZCBpdCB3b3JrcyBsaWtlIGEgY2hhcm0uCgpUaGVyZSBpcyBjZXJ0YWlubHkgc29tZSBtb3JlIHJv
b20gZm9yIGNvbnNvbGlkYXRpbmcgdGhlIFBDSS9NU0ktWCB1c2FnZSBpbgpkcml2ZXJzLCBpLmUu
IGdldHRpbmcgcmlkIG9mIHBjaV9lbmFibGVfbXNpeCooKSwgYnV0IHRoaXMgd291bGQgaGF2ZSBt
YWRlCnRoaXMgc2VyaWVzIGV2ZW4gbGFyZ2VyIGFuZCBpcyBhbiBvcnRob2dvbmFsIGlzc3VlLgoK
VGhlIHNlcmllcyBpcyBiYXNlZCBvbjoKCiAgICAgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3Nj
bS9saW51eC9rZXJuZWwvZ2l0L3RnbHgvZGV2ZWwuZ2l0IG1zaS12MS1wYXJ0LTMKCmFuZCBhbHNv
IGF2YWlsYWJsZSBmcm9tIGdpdDoKCiAgICAgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9s
aW51eC9rZXJuZWwvZ2l0L3RnbHgvZGV2ZWwuZ2l0IG1zaS12MS1wYXJ0LTQKClRoYW5rcywKCgl0
Z2x4Ci0tLQogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL21zaS5jIHwgICAgNiArLQog
YXJjaC94ODYva2VybmVsL2FwaWMvbXNpLmMgICAgICAgICAgIHwgICAgNCAtCiBhcmNoL3g4Ni9w
Y2kveGVuLmMgICAgICAgICAgICAgICAgICAgfCAgIDEwICstLQogZHJpdmVycy9iYXNlL3BsYXRm
b3JtLW1zaS5jICAgICAgICAgIHwgICAgMyAtCiBkcml2ZXJzL3BjaS9tc2kvaXJxZG9tYWluLmMg
ICAgICAgICAgfCAgIDM5ICsrKysrKysrKystLS0tCiBkcml2ZXJzL3BjaS9tc2kvbXNpLmMgICAg
ICAgICAgICAgICAgfCAgIDk3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiBk
cml2ZXJzL3BjaS9tc2kvbXNpLmggICAgICAgICAgICAgICAgfCAgICA0IC0KIGluY2x1ZGUvbGlu
dXgvbXNpLmggICAgICAgICAgICAgICAgICB8ICAgNDYgKysrKysrKysrKystLS0tLQogaW5jbHVk
ZS9saW51eC9wY2kuaCAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrCiBrZXJuZWwvaXJxL21z
aS5jICAgICAgICAgICAgICAgICAgICAgfCAgIDc1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0t
LQogMTAgZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlvbnMoKyksIDg5IGRlbGV0aW9ucygtKQo=


From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:27:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:27:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233726.405892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVT-0008UI-2N; Sat, 27 Nov 2021 01:27:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233726.405892; Sat, 27 Nov 2021 01:27:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVS-0008SA-8r; Sat, 27 Nov 2021 01:27:58 +0000
Received: by outflank-mailman (input) for mailman id 233726;
 Sat, 27 Nov 2021 01:27:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNB-0002cc-BI
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:25 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0eae9d3a-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0eae9d3a-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223824.204004845@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975964;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=yyhtvslqP4HLRieVFfAZFU9HV4/e0iOdDJgsQQb4EZc=;
	b=2CGwSzv8GJU60xQIlfgVOaRi5g9Fn+D0hzWIX0d0pUqtFU4hdxgFID5ZAs4YMb4G+S5Wrv
	avqCKVkAif5q5QbFxS7cEQhGnCY2S+6e28XQmeCnJRn2T0XoJ4u7U8UnVhTwn9fv4Dn0xB
	SA+5dfMbSTbKf+A7DDFaxOGfTXkGGQ5SBh1bG9k//gWsSsiprWcstpFZ2e8h6B/VM2UFUJ
	LdQV8C7hFqrZUfOS72q/yy+isOPS0nsKpb9++fl/GOil+WjZl8BRrzcF7WdwhFoz2N2PGF
	3ivKoXc4RUormXF6RJNnnNMFOrPUmNhdaGzXzR1mfZQva9D/gVP49O9y4DcYJw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975964;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=yyhtvslqP4HLRieVFfAZFU9HV4/e0iOdDJgsQQb4EZc=;
	b=0XCFh3K4IrRNY6L0MyY+vUemfrvkZlIFY/qYHFr3mYxeMx0ngocRG4o0KW8jALmJLkbbXC
	ZNYbsj1qUqXZJQCw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 02/22] PCI/MSI: Fix pci_irq_vector()/pci_irq_get_attinity()
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:23 +0100 (CET)

pci_irq_vector() and pci_irq_get_affinity() use the list position to find the
MSI-X descriptor at a given index. That's correct for the normal case where
the entry number is the same as the list position.

But it's wrong for cases where MSI-X was allocated with an entries array
describing sparse entry numbers into the hardware message descriptor
table. That's inconsistent at best.

Make it always check the entry number because that's what the zero base
index really means. This change won't break existing users which use a
sparse entries array for allocation because these users retrieve the Linux
interrupt number from the entries array after allocation and none of them
uses pci_irq_vector() or pci_irq_get_affinity().

Fixes: aff171641d18 ("PCI: Provide sensible IRQ vector alloc/free routines")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi.c |   26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1187,19 +1187,24 @@ EXPORT_SYMBOL(pci_free_irq_vectors);
 
 /**
  * pci_irq_vector - return Linux IRQ number of a device vector
- * @dev: PCI device to operate on
- * @nr: device-relative interrupt vector index (0-based).
+ * @dev:	PCI device to operate on
+ * @nr:		Interrupt vector index (0-based)
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ *   MSI-X:	The index in the MSI-X vector table
+ *   MSI:	The index of the enabled MSI vectors
+ *   INTx:	Must be 0
+ *
+ * Return: The Linux interrupt number or -EINVAl if @nr is out of range.
  */
 int pci_irq_vector(struct pci_dev *dev, unsigned int nr)
 {
 	if (dev->msix_enabled) {
 		struct msi_desc *entry;
-		int i = 0;
 
 		for_each_pci_msi_entry(entry, dev) {
-			if (i == nr)
+			if (entry->msi_attrib.entry_nr == nr)
 				return entry->irq;
-			i++;
 		}
 		WARN_ON_ONCE(1);
 		return -EINVAL;
@@ -1223,17 +1228,22 @@ EXPORT_SYMBOL(pci_irq_vector);
  * pci_irq_get_affinity - return the affinity of a particular MSI vector
  * @dev:	PCI device to operate on
  * @nr:		device-relative interrupt vector index (0-based).
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ *   MSI-X:	The index in the MSI-X vector table
+ *   MSI:	The index of the enabled MSI vectors
+ *   INTx:	Must be 0
+ *
+ * Return: A cpumask pointer or NULL if @nr is out of range
  */
 const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
 {
 	if (dev->msix_enabled) {
 		struct msi_desc *entry;
-		int i = 0;
 
 		for_each_pci_msi_entry(entry, dev) {
-			if (i == nr)
+			if (entry->msi_attrib.entry_nr == nr)
 				return &entry->affinity->mask;
-			i++;
 		}
 		WARN_ON_ONCE(1);
 		return NULL;



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233736.405907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVh-000267-4n; Sat, 27 Nov 2021 01:28:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233736.405907; Sat, 27 Nov 2021 01:28:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVh-00025D-0y; Sat, 27 Nov 2021 01:28:13 +0000
Received: by outflank-mailman (input) for mailman id 233736;
 Sat, 27 Nov 2021 01:28:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSn-0003uw-8S
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:13 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dafe22fc-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:25:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dafe22fc-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.836550402@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976307;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=QyFkdnL3oY21jCwm7LMhiRAQpgzR7HBWMPckiZs+cZQ=;
	b=pkN1X6p2TWTtkn/ihoW90Rkpmf/iln5bBJqGE7CQ7iT8u+Q1MPlG8IisTG37saRwu6J/rZ
	Nur/vbT+xxagEkyMn09lRfyx98c7PuV5NE8DHMwZ8RBvf03/rQC1+LV4+RYWJZk1mIumEe
	y0j4U+Uvruxeh51+ULSxn0r4bHscs97kyagpxYGZNdEMxUGfOrxn2oFNpF1Pz0X3btaO6M
	c1UOq9uFXcbNsQojOznny93KAehEzQWSQPWUKQGVYhXBTLz5LN0jh337DzrbTLmSohN6iJ
	yUAzohanZEnt3X7QiRURNzN3mFB8FETjFsl9CaVn4RSqj5snAljfejqvk0nNKA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976307;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=QyFkdnL3oY21jCwm7LMhiRAQpgzR7HBWMPckiZs+cZQ=;
	b=hVzBu7eqnTF7D/GVx80F/VPW8fhwDlrADT/JkaBpbIsSrFdPztAjIJ0cLJJLjUmePiNopj
	MEXcTDuqU9bhvOAQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 06/10] PCI/MSI: Use range in allocation path
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:25:06 +0100 (CET)

Make the allocation path range based to prepare for runtime expansion of
MSI-X vectors.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |    7 +++----
 drivers/pci/msi/msi.c       |   34 +++++++++++++++++++++-------------
 drivers/pci/msi/msi.h       |    2 +-
 3 files changed, 25 insertions(+), 18 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -8,16 +8,15 @@
 
 #include "msi.h"
 
-int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+int pci_msi_setup_msi_irqs(struct pci_dev *dev, struct msi_range *range, int type)
 {
-	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec};
 	struct irq_domain *domain;
 
 	domain = dev_get_msi_domain(&dev->dev);
 	if (domain && irq_domain_is_hierarchy(domain))
-		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, &range);
+		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, range);
 
-	return pci_msi_legacy_setup_msi_irqs(dev, nvec, type);
+	return pci_msi_legacy_setup_msi_irqs(dev, range->ndesc, type);
 }
 
 void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -370,14 +370,16 @@ static int msi_setup_msi_desc(struct pci
 	return ret;
 }
 
-static int msi_verify_entries(struct pci_dev *dev)
+static int msi_verify_entries(struct pci_dev *dev, struct msi_range *range)
 {
 	struct msi_desc *entry;
 
 	if (!dev->no_64bit_msi)
 		return 0;
 
-	msi_for_each_desc(entry, &dev->dev, MSI_DESC_ALL) {
+	msi_for_each_desc_from(entry, &dev->dev, MSI_DESC_ALL, range->first) {
+		if (entry->msi_index > range->last)
+			return 0;
 		if (entry->msg.address_hi) {
 			pci_err(dev, "arch assigned 64-bit MSI address %#x%08x but device only supports 32 bits\n",
 				entry->msg.address_hi, entry->msg.address_lo);
@@ -402,6 +404,7 @@ static int msi_verify_entries(struct pci
 static int msi_capability_init(struct pci_dev *dev, int nvec,
 			       struct irq_affinity *affd)
 {
+	struct msi_range range = { .first = 0, .last = 0, .ndesc = nvec, };
 	struct irq_affinity_desc *masks = NULL;
 	struct msi_desc *entry;
 	int ret;
@@ -421,11 +424,11 @@ static int msi_capability_init(struct pc
 	pci_msi_mask(entry, msi_multi_mask(entry));
 
 	/* Configure MSI capability structure */
-	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSI);
+	ret = pci_msi_setup_msi_irqs(dev, &range, PCI_CAP_ID_MSI);
 	if (ret)
 		goto err;
 
-	ret = msi_verify_entries(dev);
+	ret = msi_verify_entries(dev, &range);
 	if (ret)
 		goto err;
 
@@ -469,7 +472,8 @@ static void __iomem *msix_map_region(str
 }
 
 static int msix_setup_msi_descs(struct pci_dev *dev, void __iomem *base,
-				struct msix_entry *entries, int nvec,
+				struct msi_range *range,
+				struct msix_entry *entries,
 				struct irq_affinity_desc *masks)
 {
 	int ret, i, vec_count = pci_msix_vec_count(dev);
@@ -485,8 +489,8 @@ static int msix_setup_msi_descs(struct p
 	desc.pci.msi_attrib.default_irq	= dev->irq;
 	desc.pci.mask_base		= base;
 
-	for (i = 0, curmsk = masks; i < nvec; i++, curmsk++) {
-		desc.msi_index = entries ? entries[i].entry : i;
+	for (i = 0, curmsk = masks; i < range->ndesc; i++, curmsk++) {
+		desc.msi_index = entries ? entries[i].entry : range->first + i;
 		desc.affinity = masks ? curmsk : NULL;
 		desc.pci.msi_attrib.is_virtual = desc.msi_index >= vec_count;
 		desc.pci.msi_attrib.can_mask = !pci_msi_ignore_mask &&
@@ -500,6 +504,9 @@ static int msix_setup_msi_descs(struct p
 		ret = msi_add_msi_desc(&dev->dev, &desc);
 		if (ret)
 			break;
+
+		if (desc.msi_index > range->last)
+			range->last = desc.msi_index;
 	}
 
 	return ret;
@@ -530,28 +537,28 @@ static void msix_mask_all(void __iomem *
 }
 
 static int msix_setup_interrupts(struct pci_dev *dev, void __iomem *base,
-				 struct msix_entry *entries, int nvec,
+				 struct msi_range *range, struct msix_entry *entries,
 				 struct irq_affinity *affd)
 {
 	struct irq_affinity_desc *masks = NULL;
 	int ret;
 
 	if (affd)
-		masks = irq_create_affinity_masks(nvec, affd);
+		masks = irq_create_affinity_masks(range->ndesc, affd);
 
 	msi_lock_descs(&dev->dev);
-	ret = msix_setup_msi_descs(dev, base, entries, nvec, masks);
+	ret = msix_setup_msi_descs(dev, base, range, entries, masks);
 	if (ret)
 		goto out_free;
 
 	dev->dev.msi.data->properties = MSI_PROP_PCI_MSIX | MSI_PROP_64BIT;
 
-	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
+	ret = pci_msi_setup_msi_irqs(dev, range, PCI_CAP_ID_MSIX);
 	if (ret)
 		goto out_free;
 
 	/* Check if all MSI entries honor device restrictions */
-	ret = msi_verify_entries(dev);
+	ret = msi_verify_entries(dev, range);
 	if (ret)
 		goto out_free;
 
@@ -580,6 +587,7 @@ static int msix_setup_interrupts(struct
 static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries,
 				int nvec, struct irq_affinity *affd)
 {
+	struct msi_range range = { .first = 0, .last = 0, .ndesc = nvec, };
 	void __iomem *base;
 	int ret, tsize;
 	u16 control;
@@ -606,7 +614,7 @@ static int msix_capability_init(struct p
 	/* Ensure that all table entries are masked. */
 	msix_mask_all(base, tsize);
 
-	ret = msix_setup_interrupts(dev, base, entries, nvec, affd);
+	ret = msix_setup_interrupts(dev, base, &range, entries, affd);
 	if (ret)
 		goto out_disable;
 
--- a/drivers/pci/msi/msi.h
+++ b/drivers/pci/msi/msi.h
@@ -5,7 +5,7 @@
 
 #define msix_table_size(flags)	((flags & PCI_MSIX_FLAGS_QSIZE) + 1)
 
-extern int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
+extern int pci_msi_setup_msi_irqs(struct pci_dev *dev, struct msi_range *range, int type);
 extern void pci_msi_teardown_msi_irqs(struct pci_dev *dev);
 
 #ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233746.405918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVn-0002oo-Fk; Sat, 27 Nov 2021 01:28:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233746.405918; Sat, 27 Nov 2021 01:28:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVn-0002od-Ba; Sat, 27 Nov 2021 01:28:19 +0000
Received: by outflank-mailman (input) for mailman id 233746;
 Sat, 27 Nov 2021 01:28:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNU-0002cc-6n
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:44 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 19f91171-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:43 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19f91171-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223824.914161382@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975983;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=HvFnLhSNQWkY7FyV6dqkmiDpk27hPnt+iT7sMKioVYY=;
	b=nLVAIHxU7zzvZDcgNYXA194SYdMrO6dCVMw9y6HDD/le7JD9C2QCF1wk/oqJx43iUEDnY1
	pgFSlnrN/ssoMHCXM1uIFRYGaPp1xqbZEnupYzQc1IY8qVYeNbHLiAjPWJl+M4yhP2RdYQ
	cCvlNNeLa1fK+j1OQO1an1R2IQT5f2TQuSGwBcLKRc/fbex/njb0MW28/CMYhqJTqy9tUY
	CVHodIwjaxn70G+E6gtde2Lz44MuDnM9t8twCu61Q+gLHHsjI5TqsEgLxYzGmGm3HlcIN3
	BEj3sWmPgxXgXz1yJGmpdxUJULqvf5Szc7KHc+NFChP1uqJQYAlM8cHG8IC6NA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975983;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=HvFnLhSNQWkY7FyV6dqkmiDpk27hPnt+iT7sMKioVYY=;
	b=1oZXQ7KMDPa4UCKNRSuXOGmdL7VQAHRxAH7SeUCdr1ZzVhtYvvJdA6oJ2iJPmpT4hzHWhx
	P5LB3i92rxk9FGCg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 14/22] PCI/MSI: Make msix_update_entries() smarter
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:42 +0100 (CET)

No need to walk the descriptors and check for each one whether the entries
pointer function argument is NULL. Do it once.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -642,8 +642,8 @@ static void msix_update_entries(struct p
 {
 	struct msi_desc *entry;
 
-	for_each_pci_msi_entry(entry, dev) {
-		if (entries) {
+	if (entries) {
+		for_each_pci_msi_entry(entry, dev) {
 			entries->vector = entry->irq;
 			entries++;
 		}



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233752.405928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVt-0003Nb-22; Sat, 27 Nov 2021 01:28:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233752.405928; Sat, 27 Nov 2021 01:28:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVs-0003Mv-Tp; Sat, 27 Nov 2021 01:28:24 +0000
Received: by outflank-mailman (input) for mailman id 233752;
 Sat, 27 Nov 2021 01:28:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNA-00020H-47
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:24 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0dc60b7f-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0dc60b7f-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223824.144593498@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975962;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=SP+dKeNJM2hwdIJDgcQ1U3/N14UrjfZzM9fREkCbB+Y=;
	b=OLgQ/+qNPhyeiGuH7dTwFmaDA3RHOQcBGejXBnEIgK9SPjRkMk+ihcj0rY/hfSzUaXkrTq
	U1oUl+iy9zK0MOrVnbU72ybCc3YYo4LfcJm2aAtzFpmAhYZB8llRjIj/glz115YZOrLSjb
	knI+uQpZcoka/C1g2NHkieXzJhU5QO6e/5vzylnNBcgc/U6QP4/lndHc+g1cA/oa/wTjbB
	VobVFEWYJ5SWEylsLFt9/wGHTbAufBL2vfOsGUgPW1pVrt7X4JyaeUTIzHkTitP5H5PqXv
	WekM1o8eW5xEQerR/P2vzTcUGutNVguF6Lz+a9RtWYaFNbC36dI2sqYALffTRA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975962;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=SP+dKeNJM2hwdIJDgcQ1U3/N14UrjfZzM9fREkCbB+Y=;
	b=5sUajdGIlpeb1zGGLIu5csmNb4vbxcFCRA+Hdk8g0Ih21FojANjb2tXsQW+3FPyaCaTYFy
	eaJgtAh/jSMOCNDg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 01/22] powerpc/4xx: Remove MSI support which never worked
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:22 +0100 (CET)

This code is broken since day one. ppc4xx_setup_msi_irqs() has the
following gems:

 1) The handling of the result of msi_bitmap_alloc_hwirqs() is completely
    broken:
    
    When the result is greater than or equal 0 (bitmap allocation
    successful) then the loop terminates and the function returns 0
    (success) despite not having installed an interrupt.

    When the result is less than 0 (bitmap allocation fails), it prints an
    error message and continues to "work" with that error code which would
    eventually end up in the MSI message data.

 2) On every invocation the file global pp4xx_msi::msi_virqs bitmap is
    allocated thereby leaking the previous one.

IOW, this has never worked and for more than 10 years nobody cared. Remove
the gunk.

Fixes: 3fb7933850fa ("powerpc/4xx: Adding PCIe MSI support")
Fixes: 247540b03bfc ("powerpc/44x: Fix PCI MSI support for Maui APM821xx SoC and Bluestone board")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@lists.ozlabs.org
---
 arch/powerpc/platforms/4xx/Makefile |    1 
 arch/powerpc/platforms/4xx/msi.c    |  281 ------------------------------------
 arch/powerpc/sysdev/Kconfig         |    6 
 3 files changed, 288 deletions(-)

--- a/arch/powerpc/platforms/4xx/Makefile
+++ b/arch/powerpc/platforms/4xx/Makefile
@@ -3,6 +3,5 @@ obj-y				+= uic.o machine_check.o
 obj-$(CONFIG_4xx_SOC)		+= soc.o
 obj-$(CONFIG_PCI)		+= pci.o
 obj-$(CONFIG_PPC4xx_HSTA_MSI)	+= hsta_msi.o
-obj-$(CONFIG_PPC4xx_MSI)	+= msi.o
 obj-$(CONFIG_PPC4xx_CPM)	+= cpm.o
 obj-$(CONFIG_PPC4xx_GPIO)	+= gpio.o
--- a/arch/powerpc/platforms/4xx/msi.c
+++ /dev/null
@@ -1,281 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Adding PCI-E MSI support for PPC4XX SoCs.
- *
- * Copyright (c) 2010, Applied Micro Circuits Corporation
- * Authors:	Tirumala R Marri <tmarri@apm.com>
- *		Feng Kan <fkan@apm.com>
- */
-
-#include <linux/irq.h>
-#include <linux/pci.h>
-#include <linux/msi.h>
-#include <linux/of_platform.h>
-#include <linux/interrupt.h>
-#include <linux/export.h>
-#include <linux/kernel.h>
-#include <asm/prom.h>
-#include <asm/hw_irq.h>
-#include <asm/ppc-pci.h>
-#include <asm/dcr.h>
-#include <asm/dcr-regs.h>
-#include <asm/msi_bitmap.h>
-
-#define PEIH_TERMADH	0x00
-#define PEIH_TERMADL	0x08
-#define PEIH_MSIED	0x10
-#define PEIH_MSIMK	0x18
-#define PEIH_MSIASS	0x20
-#define PEIH_FLUSH0	0x30
-#define PEIH_FLUSH1	0x38
-#define PEIH_CNTRST	0x48
-
-static int msi_irqs;
-
-struct ppc4xx_msi {
-	u32 msi_addr_lo;
-	u32 msi_addr_hi;
-	void __iomem *msi_regs;
-	int *msi_virqs;
-	struct msi_bitmap bitmap;
-	struct device_node *msi_dev;
-};
-
-static struct ppc4xx_msi ppc4xx_msi;
-
-static int ppc4xx_msi_init_allocator(struct platform_device *dev,
-		struct ppc4xx_msi *msi_data)
-{
-	int err;
-
-	err = msi_bitmap_alloc(&msi_data->bitmap, msi_irqs,
-			      dev->dev.of_node);
-	if (err)
-		return err;
-
-	err = msi_bitmap_reserve_dt_hwirqs(&msi_data->bitmap);
-	if (err < 0) {
-		msi_bitmap_free(&msi_data->bitmap);
-		return err;
-	}
-
-	return 0;
-}
-
-static int ppc4xx_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
-{
-	int int_no = -ENOMEM;
-	unsigned int virq;
-	struct msi_msg msg;
-	struct msi_desc *entry;
-	struct ppc4xx_msi *msi_data = &ppc4xx_msi;
-
-	dev_dbg(&dev->dev, "PCIE-MSI:%s called. vec %x type %d\n",
-		__func__, nvec, type);
-	if (type == PCI_CAP_ID_MSIX)
-		pr_debug("ppc4xx msi: MSI-X untested, trying anyway.\n");
-
-	msi_data->msi_virqs = kmalloc_array(msi_irqs, sizeof(int), GFP_KERNEL);
-	if (!msi_data->msi_virqs)
-		return -ENOMEM;
-
-	for_each_pci_msi_entry(entry, dev) {
-		int_no = msi_bitmap_alloc_hwirqs(&msi_data->bitmap, 1);
-		if (int_no >= 0)
-			break;
-		if (int_no < 0) {
-			pr_debug("%s: fail allocating msi interrupt\n",
-					__func__);
-		}
-		virq = irq_of_parse_and_map(msi_data->msi_dev, int_no);
-		if (!virq) {
-			dev_err(&dev->dev, "%s: fail mapping irq\n", __func__);
-			msi_bitmap_free_hwirqs(&msi_data->bitmap, int_no, 1);
-			return -ENOSPC;
-		}
-		dev_dbg(&dev->dev, "%s: virq = %d\n", __func__, virq);
-
-		/* Setup msi address space */
-		msg.address_hi = msi_data->msi_addr_hi;
-		msg.address_lo = msi_data->msi_addr_lo;
-
-		irq_set_msi_desc(virq, entry);
-		msg.data = int_no;
-		pci_write_msi_msg(virq, &msg);
-	}
-	return 0;
-}
-
-void ppc4xx_teardown_msi_irqs(struct pci_dev *dev)
-{
-	struct msi_desc *entry;
-	struct ppc4xx_msi *msi_data = &ppc4xx_msi;
-	irq_hw_number_t hwirq;
-
-	dev_dbg(&dev->dev, "PCIE-MSI: tearing down msi irqs\n");
-
-	for_each_pci_msi_entry(entry, dev) {
-		if (!entry->irq)
-			continue;
-		hwirq = virq_to_hw(entry->irq);
-		irq_set_msi_desc(entry->irq, NULL);
-		irq_dispose_mapping(entry->irq);
-		msi_bitmap_free_hwirqs(&msi_data->bitmap, hwirq, 1);
-	}
-}
-
-static int ppc4xx_setup_pcieh_hw(struct platform_device *dev,
-				 struct resource res, struct ppc4xx_msi *msi)
-{
-	const u32 *msi_data;
-	const u32 *msi_mask;
-	const u32 *sdr_addr;
-	dma_addr_t msi_phys;
-	void *msi_virt;
-	int err;
-
-	sdr_addr = of_get_property(dev->dev.of_node, "sdr-base", NULL);
-	if (!sdr_addr)
-		return -EINVAL;
-
-	msi_data = of_get_property(dev->dev.of_node, "msi-data", NULL);
-	if (!msi_data)
-		return -EINVAL;
-
-	msi_mask = of_get_property(dev->dev.of_node, "msi-mask", NULL);
-	if (!msi_mask)
-		return -EINVAL;
-
-	msi->msi_dev = of_find_node_by_name(NULL, "ppc4xx-msi");
-	if (!msi->msi_dev)
-		return -ENODEV;
-
-	msi->msi_regs = of_iomap(msi->msi_dev, 0);
-	if (!msi->msi_regs) {
-		dev_err(&dev->dev, "of_iomap failed\n");
-		err = -ENOMEM;
-		goto node_put;
-	}
-	dev_dbg(&dev->dev, "PCIE-MSI: msi register mapped 0x%x 0x%x\n",
-		(u32) (msi->msi_regs + PEIH_TERMADH), (u32) (msi->msi_regs));
-
-	msi_virt = dma_alloc_coherent(&dev->dev, 64, &msi_phys, GFP_KERNEL);
-	if (!msi_virt) {
-		err = -ENOMEM;
-		goto iounmap;
-	}
-	msi->msi_addr_hi = upper_32_bits(msi_phys);
-	msi->msi_addr_lo = lower_32_bits(msi_phys & 0xffffffff);
-	dev_dbg(&dev->dev, "PCIE-MSI: msi address high 0x%x, low 0x%x\n",
-		msi->msi_addr_hi, msi->msi_addr_lo);
-
-	mtdcri(SDR0, *sdr_addr, upper_32_bits(res.start));	/*HIGH addr */
-	mtdcri(SDR0, *sdr_addr + 1, lower_32_bits(res.start));	/* Low addr */
-
-	/* Progam the Interrupt handler Termination addr registers */
-	out_be32(msi->msi_regs + PEIH_TERMADH, msi->msi_addr_hi);
-	out_be32(msi->msi_regs + PEIH_TERMADL, msi->msi_addr_lo);
-
-	/* Program MSI Expected data and Mask bits */
-	out_be32(msi->msi_regs + PEIH_MSIED, *msi_data);
-	out_be32(msi->msi_regs + PEIH_MSIMK, *msi_mask);
-
-	dma_free_coherent(&dev->dev, 64, msi_virt, msi_phys);
-
-	return 0;
-
-iounmap:
-	iounmap(msi->msi_regs);
-node_put:
-	of_node_put(msi->msi_dev);
-	return err;
-}
-
-static int ppc4xx_of_msi_remove(struct platform_device *dev)
-{
-	struct ppc4xx_msi *msi = dev->dev.platform_data;
-	int i;
-	int virq;
-
-	for (i = 0; i < msi_irqs; i++) {
-		virq = msi->msi_virqs[i];
-		if (virq)
-			irq_dispose_mapping(virq);
-	}
-
-	if (msi->bitmap.bitmap)
-		msi_bitmap_free(&msi->bitmap);
-	iounmap(msi->msi_regs);
-	of_node_put(msi->msi_dev);
-
-	return 0;
-}
-
-static int ppc4xx_msi_probe(struct platform_device *dev)
-{
-	struct ppc4xx_msi *msi;
-	struct resource res;
-	int err = 0;
-	struct pci_controller *phb;
-
-	dev_dbg(&dev->dev, "PCIE-MSI: Setting up MSI support...\n");
-
-	msi = devm_kzalloc(&dev->dev, sizeof(*msi), GFP_KERNEL);
-	if (!msi)
-		return -ENOMEM;
-	dev->dev.platform_data = msi;
-
-	/* Get MSI ranges */
-	err = of_address_to_resource(dev->dev.of_node, 0, &res);
-	if (err) {
-		dev_err(&dev->dev, "%pOF resource error!\n", dev->dev.of_node);
-		return err;
-	}
-
-	msi_irqs = of_irq_count(dev->dev.of_node);
-	if (!msi_irqs)
-		return -ENODEV;
-
-	err = ppc4xx_setup_pcieh_hw(dev, res, msi);
-	if (err)
-		return err;
-
-	err = ppc4xx_msi_init_allocator(dev, msi);
-	if (err) {
-		dev_err(&dev->dev, "Error allocating MSI bitmap\n");
-		goto error_out;
-	}
-	ppc4xx_msi = *msi;
-
-	list_for_each_entry(phb, &hose_list, list_node) {
-		phb->controller_ops.setup_msi_irqs = ppc4xx_setup_msi_irqs;
-		phb->controller_ops.teardown_msi_irqs = ppc4xx_teardown_msi_irqs;
-	}
-	return 0;
-
-error_out:
-	ppc4xx_of_msi_remove(dev);
-	return err;
-}
-static const struct of_device_id ppc4xx_msi_ids[] = {
-	{
-		.compatible = "amcc,ppc4xx-msi",
-	},
-	{}
-};
-static struct platform_driver ppc4xx_msi_driver = {
-	.probe = ppc4xx_msi_probe,
-	.remove = ppc4xx_of_msi_remove,
-	.driver = {
-		   .name = "ppc4xx-msi",
-		   .of_match_table = ppc4xx_msi_ids,
-		   },
-
-};
-
-static __init int ppc4xx_msi_init(void)
-{
-	return platform_driver_register(&ppc4xx_msi_driver);
-}
-
-subsys_initcall(ppc4xx_msi_init);
--- a/arch/powerpc/sysdev/Kconfig
+++ b/arch/powerpc/sysdev/Kconfig
@@ -12,17 +12,11 @@ config PPC4xx_HSTA_MSI
 	depends on PCI_MSI
 	depends on PCI && 4xx
 
-config PPC4xx_MSI
-	bool
-	depends on PCI_MSI
-	depends on PCI && 4xx
-
 config PPC_MSI_BITMAP
 	bool
 	depends on PCI_MSI
 	default y if MPIC
 	default y if FSL_PCI
-	default y if PPC4xx_MSI
 	default y if PPC_POWERNV
 
 source "arch/powerpc/sysdev/xics/Kconfig"



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233754.405933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVt-0003Py-GV; Sat, 27 Nov 2021 01:28:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233754.405933; Sat, 27 Nov 2021 01:28:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVt-0003Os-7x; Sat, 27 Nov 2021 01:28:25 +0000
Received: by outflank-mailman (input) for mailman id 233754;
 Sat, 27 Nov 2021 01:28:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNX-0002cc-6m
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:47 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1bba25e7-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1bba25e7-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223825.034426787@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975986;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=/hUtpZoje77D8jXpCF4dVmu6dIuQVzxr12Tf8gEZrmw=;
	b=kiIa3WnklR7w/ZeDbikmw6N61xfDMfnL6ZU/pOOseNiVV+omr9Aa6z+0BVgtzFMBCu6iMQ
	zKsikuo1zFVGhoKSmUIEASSuBkvEd3ptUL2iOJdMyQ3DpnQuo+VIo5ifVixMvFUEzvNoNu
	3f2nitVyliW8P6TzXAaFW55/Jm1WCxDf99/Fz3p6iH3FrRJBfIjc+FJfNcFSu5JrTV/hOF
	5vLWCzkgjOJjajXnssaIYKp5J8LS4aL6X2YpJXn2eqN0373MUkl/B9A8NvGWVAer6wN7Qg
	Q3WpDV96QQDz3VHeQEjDnHcYO8c9rPbBEjBtYtLeg990OTmzjYCl3GKUZdmhyA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975986;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=/hUtpZoje77D8jXpCF4dVmu6dIuQVzxr12Tf8gEZrmw=;
	b=8oE5dILfIppEOM4uSmv1UhhF+8V1aTl25VsmBDW8Y6mgtC2SCQ+c3AwBH+9jTQgu7f5Oe3
	TgJGtWPMxxBhbTDQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 16/22] PCI/MSI: Split out CONFIG_PCI_MSI independent part
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:45 +0100 (CET)

These functions are required even when CONFIG_PCI_MSI is not set. Move them
to their own file.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/Makefile     |    3 ++-
 drivers/pci/msi/msi.c        |   39 ---------------------------------------
 drivers/pci/msi/pcidev_msi.c |   43 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+), 40 deletions(-)

--- a/drivers/pci/msi/Makefile
+++ b/drivers/pci/msi/Makefile
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
 #
 # Makefile for the PCI/MSI
-obj-$(CONFIG_PCI)		+= msi.o
+obj-$(CONFIG_PCI)		+= pcidev_msi.o
+obj-$(CONFIG_PCI_MSI)		+= msi.o
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -18,8 +18,6 @@
 
 #include "../pci.h"
 
-#ifdef CONFIG_PCI_MSI
-
 static int pci_msi_enable = 1;
 int pci_msi_ignore_mask;
 
@@ -1479,40 +1477,3 @@ bool pci_dev_has_special_msi_domain(stru
 }
 
 #endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
-#endif /* CONFIG_PCI_MSI */
-
-void pci_msi_init(struct pci_dev *dev)
-{
-	u16 ctrl;
-
-	/*
-	 * Disable the MSI hardware to avoid screaming interrupts
-	 * during boot.  This is the power on reset default so
-	 * usually this should be a noop.
-	 */
-	dev->msi_cap = pci_find_capability(dev, PCI_CAP_ID_MSI);
-	if (!dev->msi_cap)
-		return;
-
-	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &ctrl);
-	if (ctrl & PCI_MSI_FLAGS_ENABLE)
-		pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS,
-				      ctrl & ~PCI_MSI_FLAGS_ENABLE);
-
-	if (!(ctrl & PCI_MSI_FLAGS_64BIT))
-		dev->no_64bit_msi = 1;
-}
-
-void pci_msix_init(struct pci_dev *dev)
-{
-	u16 ctrl;
-
-	dev->msix_cap = pci_find_capability(dev, PCI_CAP_ID_MSIX);
-	if (!dev->msix_cap)
-		return;
-
-	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
-	if (ctrl & PCI_MSIX_FLAGS_ENABLE)
-		pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS,
-				      ctrl & ~PCI_MSIX_FLAGS_ENABLE);
-}
--- /dev/null
+++ b/drivers/pci/msi/pcidev_msi.c
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * MSI[X} related functions which are available unconditionally.
+ */
+#include "../pci.h"
+
+/*
+ * Disable the MSI[X] hardware to avoid screaming interrupts during boot.
+ * This is the power on reset default so usually this should be a noop.
+ */
+
+void pci_msi_init(struct pci_dev *dev)
+{
+	u16 ctrl;
+
+	dev->msi_cap = pci_find_capability(dev, PCI_CAP_ID_MSI);
+	if (!dev->msi_cap)
+		return;
+
+	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &ctrl);
+	if (ctrl & PCI_MSI_FLAGS_ENABLE) {
+		pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS,
+				      ctrl & ~PCI_MSI_FLAGS_ENABLE);
+	}
+
+	if (!(ctrl & PCI_MSI_FLAGS_64BIT))
+		dev->no_64bit_msi = 1;
+}
+
+void pci_msix_init(struct pci_dev *dev)
+{
+	u16 ctrl;
+
+	dev->msix_cap = pci_find_capability(dev, PCI_CAP_ID_MSIX);
+	if (!dev->msix_cap)
+		return;
+
+	pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &ctrl);
+	if (ctrl & PCI_MSIX_FLAGS_ENABLE) {
+		pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS,
+				      ctrl & ~PCI_MSIX_FLAGS_ENABLE);
+	}
+}



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233757.405951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVw-0004As-R7; Sat, 27 Nov 2021 01:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233757.405951; Sat, 27 Nov 2021 01:28:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVw-00049w-LS; Sat, 27 Nov 2021 01:28:28 +0000
Received: by outflank-mailman (input) for mailman id 233757;
 Sat, 27 Nov 2021 01:28:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMy-00020H-WE
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:13 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 047d877d-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 047d877d-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223825.264524206@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975946;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=N3CFGfVjsY7LgA1Yw7Ey6P6ZQR/J2nTOxZlFyVj+tfU=;
	b=Fv0in+37WjQu8qaGw1d+sJDwVg72jTWmW4A0ir4m/M4Ok5n1Maj2zCuqkFlqoDcwKtFhN9
	usAjQogUj8AjRYgg4XnitKY5rxgW2TkyutAVrKlGFCgr/QOORGiNR/7ULx+gebHewQ2s/A
	/cIqE2xCgTcvSdjMl/o8jTzKo/rp+T2wCqIQmwW2CBFlppFIU1Ogv1xMa/PU+QvLJWk4QA
	8ApzSw5z7JxXdKYOPEwzVrt2L/3gLDfjQsxsE0x31MpU5s4q2t0v8iWXAumITmxLRYrtTJ
	iU+boulqpaCbZh/WpK684wQ0UEls6YBAyu7dgFYcD4eyOfwcT+9k0SAxWnS9Bw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975946;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=N3CFGfVjsY7LgA1Yw7Ey6P6ZQR/J2nTOxZlFyVj+tfU=;
	b=LToY0nY68kcZvyJBO8o4NrjRDqhd7lfHJRva1kjIMCQSN9rrfWrqKa7vfx0y47lZyVAi7T
	hHRAYB/im3bzNaAA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 20/22] PCI/MSI: Make pci_msi_domain_check_cap() static
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:05 +0100 (CET)

No users outside of that file.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |    5 +++--
 include/linux/msi.h         |    2 --
 2 files changed, 3 insertions(+), 4 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -79,8 +79,9 @@ static inline bool pci_msi_desc_is_multi
  *  1 if Multi MSI is requested, but the domain does not support it
  *  -ENOTSUPP otherwise
  */
-int pci_msi_domain_check_cap(struct irq_domain *domain,
-			     struct msi_domain_info *info, struct device *dev)
+static int pci_msi_domain_check_cap(struct irq_domain *domain,
+				    struct msi_domain_info *info,
+				    struct device *dev)
 {
 	struct msi_desc *desc = first_pci_msi_entry(to_pci_dev(dev));
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -438,8 +438,6 @@ void *platform_msi_get_host_data(struct
 struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
 					     struct msi_domain_info *info,
 					     struct irq_domain *parent);
-int pci_msi_domain_check_cap(struct irq_domain *domain,
-			     struct msi_domain_info *info, struct device *dev);
 u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev);
 struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev);
 bool pci_dev_has_special_msi_domain(struct pci_dev *pdev);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233759.405959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVy-0004Tk-9t; Sat, 27 Nov 2021 01:28:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233759.405959; Sat, 27 Nov 2021 01:28:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVy-0004Sz-1T; Sat, 27 Nov 2021 01:28:30 +0000
Received: by outflank-mailman (input) for mailman id 233759;
 Sat, 27 Nov 2021 01:28:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmMx-00020H-WE
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:12 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03ed9a5c-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03ed9a5c-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223825.205369150@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975944;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=nFqFw10FNB3YOwALwDw82lvlHKuNVaj2KNOVAS+AX+k=;
	b=G06m8xMVNgCtY4eLFjx0Gf0UEo7YHbTN3rxfoRgzMAQNjSyOhHLYWl1Ikzcx1das+1sGgR
	XlzQnk85UAa1wgbuHZfRxIv0Tptn0O6ASXyaW+XA4AtRGc5NqoXoMWrH8JyNLO1TbACyNs
	ThrpDSP5owVZnF1lPpqZ5HBhdbbP3377wrFMfqt8kSFjGYtgCoo5Htge03VxxnWqOl6VeU
	qx8+Ka4RU70TZWBrcecHxtKGEd0uRNlpAUNT2tq6ZjXX/PFES+2pneG/ehtJ3MI4dwoNkA
	8VWSPGtF+GW5n1+OGRM2a6VqtOk81cbZ+6zTHUvUBTGOgQayss65pWv38PCcLw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975944;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=nFqFw10FNB3YOwALwDw82lvlHKuNVaj2KNOVAS+AX+k=;
	b=J3h+hmKrqWBzzv5vAzWUlxB8bJHst//jw7wAG5CmDPYqR+ZozHFkbxD9VTuTA8lDv7Htjr
	HBwohK1y6ZdNv+DQ==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 19/22] PCI/MSI: Sanitize MSIX table map handling
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:04 +0100 (CET)

Unmapping the MSIX base mapping in the loops which allocate/free MSI
desciptors is daft and in the way of allowing runtime expansion of MSI-X
descriptors.

Store the mapping in struct pci_dev and free it after freeing the MSI-X
descriptors.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/msi.c |   18 ++++++++----------
 include/linux/pci.h   |    1 +
 2 files changed, 9 insertions(+), 10 deletions(-)

--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -241,14 +241,14 @@ static void free_msi_irqs(struct pci_dev
 	pci_msi_teardown_msi_irqs(dev);
 
 	list_for_each_entry_safe(entry, tmp, msi_list, list) {
-		if (entry->pci.msi_attrib.is_msix) {
-			if (list_is_last(&entry->list, msi_list))
-				iounmap(entry->pci.mask_base);
-		}
-
 		list_del(&entry->list);
 		free_msi_entry(entry);
 	}
+
+	if (dev->msix_base) {
+		iounmap(dev->msix_base);
+		dev->msix_base = NULL;
+	}
 }
 
 static void pci_intx_for_msi(struct pci_dev *dev, int enable)
@@ -501,10 +501,6 @@ static int msix_setup_entries(struct pci
 	for (i = 0, curmsk = masks; i < nvec; i++) {
 		entry = alloc_msi_entry(&dev->dev, 1, curmsk);
 		if (!entry) {
-			if (!i)
-				iounmap(base);
-			else
-				free_msi_irqs(dev);
 			/* No enough memory. Don't try again */
 			ret = -ENOMEM;
 			goto out;
@@ -602,12 +598,14 @@ static int msix_capability_init(struct p
 		goto out_disable;
 	}
 
+	dev->msix_base = base;
+
 	/* Ensure that all table entries are masked. */
 	msix_mask_all(base, tsize);
 
 	ret = msix_setup_entries(dev, base, entries, nvec, affd);
 	if (ret)
-		goto out_disable;
+		goto out_free;
 
 	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
 	if (ret)
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -473,6 +473,7 @@ struct pci_dev {
 	u8		ptm_granularity;
 #endif
 #ifdef CONFIG_PCI_MSI
+	void __iomem	*msix_base;
 	const struct attribute_group **msi_irq_groups;
 #endif
 	struct pci_vpd	vpd;



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233760.405964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVy-0004Ym-TL; Sat, 27 Nov 2021 01:28:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233760.405964; Sat, 27 Nov 2021 01:28:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmVy-0004X5-H3; Sat, 27 Nov 2021 01:28:30 +0000
Received: by outflank-mailman (input) for mailman id 233760;
 Sat, 27 Nov 2021 01:28:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmN1-00020H-08
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:15 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0559b9ad-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0559b9ad-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223825.320724006@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975948;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=kh2ZB8gumt7yFa2wjaDhpeN9tXzUfJvLkALkOS94EFA=;
	b=rL3dSVq51HwJyrZ1GiK+2Uy987fWifzc93Kzd1rYDYc6CJES4RYQFW91VYz9giUBA4pc8g
	3Gp8SO0SCSSci4EB0aGRBsqUldeO9DZdmixm6jmAcLXOjd3EDQN4ceHT5qIHtZ1M4OOjCs
	5B1fwbTAHUDHkQfAY6r0w3SoQx1i3rzd1zp4I1umGTSQGLkl+Ug/rBlXyPGu1g3qmxiQdo
	9/IiaSvnNmIreFZA0hbCMbgvbZt32iGcp6GO/Dw3rrPbcAK+xJsiiVNJEaCAM2vKSnhji3
	6KWA27/ZxBzJeVpPdNFWb/PzJXwnrdawx9cM4YXt/mQphMHqQUhIcUngebAkPw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975948;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=kh2ZB8gumt7yFa2wjaDhpeN9tXzUfJvLkALkOS94EFA=;
	b=QLwf6Eyk3o45pGBEtsCZ2xr7a4DlyXTC6NnM3m6uL6iU2aPZXLRZf3PE6XQ/TuIY8Xwpt7
	hQcta2kLnH2eixAg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 21/22] genirq/msi: Handle PCI/MSI allocation fail in core code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:07 +0100 (CET)

Get rid of yet another irqdomain callback and let the core code return the
already available information of how many descriptors could be allocated.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |   13 -------------
 include/linux/msi.h         |    5 +----
 kernel/irq/msi.c            |   29 +++++++++++++++++++++++++----
 3 files changed, 26 insertions(+), 21 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -95,16 +95,6 @@ static int pci_msi_domain_check_cap(stru
 	return 0;
 }
 
-static int pci_msi_domain_handle_error(struct irq_domain *domain,
-				       struct msi_desc *desc, int error)
-{
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
-		return 1;
-
-	return error;
-}
-
 static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
 				    struct msi_desc *desc)
 {
@@ -115,7 +105,6 @@ static void pci_msi_domain_set_desc(msi_
 static struct msi_domain_ops pci_msi_domain_ops_default = {
 	.set_desc	= pci_msi_domain_set_desc,
 	.msi_check	= pci_msi_domain_check_cap,
-	.handle_error	= pci_msi_domain_handle_error,
 };
 
 static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
@@ -129,8 +118,6 @@ static void pci_msi_domain_update_dom_op
 			ops->set_desc = pci_msi_domain_set_desc;
 		if (ops->msi_check == NULL)
 			ops->msi_check = pci_msi_domain_check_cap;
-		if (ops->handle_error == NULL)
-			ops->handle_error = pci_msi_domain_handle_error;
 	}
 }
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -285,7 +285,6 @@ struct msi_domain_info;
  * @msi_check:		Callback for verification of the domain/info/dev data
  * @msi_prepare:	Prepare the allocation of the interrupts in the domain
  * @set_desc:		Set the msi descriptor for an interrupt
- * @handle_error:	Optional error handler if the allocation fails
  * @domain_alloc_irqs:	Optional function to override the default allocation
  *			function.
  * @domain_free_irqs:	Optional function to override the default free
@@ -294,7 +293,7 @@ struct msi_domain_info;
  * @get_hwirq, @msi_init and @msi_free are callbacks used by the underlying
  * irqdomain.
  *
- * @msi_check, @msi_prepare, @handle_error and @set_desc are callbacks used by
+ * @msi_check, @msi_prepare and @set_desc are callbacks used by
  * msi_domain_alloc/free_irqs().
  *
  * @domain_alloc_irqs, @domain_free_irqs can be used to override the
@@ -331,8 +330,6 @@ struct msi_domain_ops {
 				       msi_alloc_info_t *arg);
 	void		(*set_desc)(msi_alloc_info_t *arg,
 				    struct msi_desc *desc);
-	int		(*handle_error)(struct irq_domain *domain,
-					struct msi_desc *desc, int error);
 	int		(*domain_alloc_irqs)(struct irq_domain *domain,
 					     struct device *dev, int nvec);
 	void		(*domain_free_irqs)(struct irq_domain *domain,
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -538,6 +538,27 @@ static bool msi_check_reservation_mode(s
 	return desc->pci.msi_attrib.is_msix || desc->pci.msi_attrib.can_mask;
 }
 
+static int msi_handle_pci_fail(struct irq_domain *domain, struct msi_desc *desc,
+			       int allocated)
+{
+	switch(domain->bus_token) {
+	case DOMAIN_BUS_PCI_MSI:
+	case DOMAIN_BUS_VMD_MSI:
+		if (IS_ENABLED(CONFIG_PCI_MSI))
+			break;
+		fallthrough;
+	default:
+		return -ENOSPC;
+	}
+
+	/* Let a failed PCI multi MSI allocation retry */
+	if (desc->nvec_used > 1)
+		return 1;
+
+	/* If there was a successful allocation let the caller know */
+	return allocated ? allocated : -ENOSPC;
+}
+
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			    int nvec)
 {
@@ -546,6 +567,7 @@ int __msi_domain_alloc_irqs(struct irq_d
 	struct irq_data *irq_data;
 	struct msi_desc *desc;
 	msi_alloc_info_t arg = { };
+	int allocated = 0;
 	int i, ret, virq;
 	bool can_reserve;
 
@@ -560,16 +582,15 @@ int __msi_domain_alloc_irqs(struct irq_d
 					       dev_to_node(dev), &arg, false,
 					       desc->affinity);
 		if (virq < 0) {
-			ret = -ENOSPC;
-			if (ops->handle_error)
-				ret = ops->handle_error(domain, desc, ret);
-			return ret;
+			ret = msi_handle_pci_fail(domain, desc, allocated);
+			goto cleanup;
 		}
 
 		for (i = 0; i < desc->nvec_used; i++) {
 			irq_set_msi_desc_off(virq, i, desc);
 			irq_debugfs_copy_devname(virq + i, dev);
 		}
+		allocated++;
 	}
 
 	can_reserve = msi_check_reservation_mode(domain, info, dev);



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233763.405983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmW1-0005MK-Vh; Sat, 27 Nov 2021 01:28:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233763.405983; Sat, 27 Nov 2021 01:28:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmW1-0005Kl-Ne; Sat, 27 Nov 2021 01:28:33 +0000
Received: by outflank-mailman (input) for mailman id 233763;
 Sat, 27 Nov 2021 01:28:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmSf-0003uw-7a
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:25:05 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d73d41c9-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:25:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d73d41c9-4f20-11ec-9787-a32c541c8605
Message-ID: <20211127000918.594818541@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637976300;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=EW+Gm4C9srsYC5SImaDJkppoIX48hbwPcUobStKFJEM=;
	b=WPtHzJnqC/pvKOTKIh1WRHHQJ9m+SrUMIkLf9wya1H4Qe6kX/FjXJxpDkYVQi9r5c2JVzZ
	eldEBhETCeNkaX33xH9U7/qQtC6MjjRZbuA0biqdYe0j6ynzURABx2EW7ToDAZEPDghbHu
	2byWMlSljGkM+P7knI47JSpaSBXc80u/NsAHfS1oFNv7F4s9jJvUCPHjtfHQkwF+4eIjOr
	vhdvbRKjtz2/rE8kchNQYUxAz2X7cCEjpq8STzeSs2Lz1YCB5Y/LDXa4n1cOQodqa4f9F4
	45PWlB6lvsF08kNIEzF+igCOsVF1D0E6v7sOUmLpX2bgbZ4ej72smMbjMrrW+g==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637976300;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=EW+Gm4C9srsYC5SImaDJkppoIX48hbwPcUobStKFJEM=;
	b=f2HlKwCdkwO2fqJ4/LJVZyypea5bEsyJHp/ABfz87E53J5cxaBIKdNf2B2KQQimDJ8mO2U
	8kjukHl5RWBoBsBg==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Andrew Cooper <amc96@cam.ac.uk>,
 Juergen Gross <jgross@suse.com>,
 linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: [patch 02/10] genirq/msi: Add range argument to
 msi_domain_alloc/free_descs_locked()
References: <20211126233124.618283684@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:25:00 +0100 (CET)

In preparation for supporting range allocations for MSI-X, add a range
argument to the msi_domain_alloc/free_descs_locked() functions and fixup
all affected places.

Hand in ranges which are covering the current use case. They will be
refined in later steps.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/irqdomain.c |    6 ++++--
 include/linux/msi.h         |    5 ++---
 kernel/irq/msi.c            |   21 ++++++++++++---------
 3 files changed, 18 insertions(+), 14 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -10,22 +10,24 @@
 
 int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec};
 	struct irq_domain *domain;
 
 	domain = dev_get_msi_domain(&dev->dev);
 	if (domain && irq_domain_is_hierarchy(domain))
-		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, nvec);
+		return msi_domain_alloc_irqs_descs_locked(domain, &dev->dev, &range);
 
 	return pci_msi_legacy_setup_msi_irqs(dev, nvec, type);
 }
 
 void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, };
 	struct irq_domain *domain;
 
 	domain = dev_get_msi_domain(&dev->dev);
 	if (domain && irq_domain_is_hierarchy(domain))
-		msi_domain_free_irqs_descs_locked(domain, &dev->dev);
+		msi_domain_free_irqs_descs_locked(domain, &dev->dev, &range);
 	else
 		pci_msi_legacy_teardown_msi_irqs(dev);
 }
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -502,12 +502,11 @@ struct irq_domain *msi_create_irq_domain
 					 struct msi_domain_info *info,
 					 struct irq_domain *parent);
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range);
-int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device *dev,
-				       int nvec);
+int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device *dev,  struct msi_range *range);
 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			  int nvec);
 void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev, struct msi_range *range);
-void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev);
+void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev, struct msi_range *range);
 void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
 struct msi_domain_info *msi_get_domain_info(struct irq_domain *domain);
 
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -956,22 +956,21 @@ static int msi_domain_add_simple_msi_des
  * Return: %0 on success or an error code.
  */
 int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device *dev,
-				       int nvec)
+				       struct msi_range *range)
 {
 	struct msi_domain_info *info = domain->host_data;
-	struct msi_range range = { .ndesc = nvec };
 	struct msi_domain_ops *ops = info->ops;
 	int ret;
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	ret = msi_domain_add_simple_msi_descs(info, dev, nvec);
+	ret = msi_domain_add_simple_msi_descs(info, dev, range->ndesc);
 	if (ret)
 		return ret;
 
-	ret = ops->domain_alloc_irqs(domain, dev, &range);
+	ret = ops->domain_alloc_irqs(domain, dev, range);
 	if (ret)
-		msi_domain_free_irqs_descs_locked(domain, dev);
+		msi_domain_free_irqs_descs_locked(domain, dev, range);
 	return ret;
 }
 
@@ -986,10 +985,11 @@ int msi_domain_alloc_irqs_descs_locked(s
  */
 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, int nvec)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec, };
 	int ret;
 
 	msi_lock_descs(dev);
-	ret = msi_domain_alloc_irqs_descs_locked(domain, dev, nvec);
+	ret = msi_domain_alloc_irqs_descs_locked(domain, dev, &range);
 	msi_unlock_descs(dev);
 	return ret;
 }
@@ -1034,14 +1034,15 @@ static void msi_domain_free_msi_descs(st
  * pair. Use this for MSI irqdomains which implement their own vector
  * allocation.
  */
-void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev)
+void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device *dev,
+				       struct msi_range *range)
 {
 	struct msi_domain_info *info = domain->host_data;
 	struct msi_domain_ops *ops = info->ops;
 
 	lockdep_assert_held(&dev->msi.data->mutex);
 
-	ops->domain_free_irqs(domain, dev, NULL);
+	ops->domain_free_irqs(domain, dev, range);
 	msi_domain_free_msi_descs(info, dev);
 }
 
@@ -1053,8 +1054,10 @@ void msi_domain_free_irqs_descs_locked(s
  */
 void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
 {
+	struct msi_range range = { .first = 0, .last = UINT_MAX, };
+
 	msi_lock_descs(dev);
-	msi_domain_free_irqs_descs_locked(domain, dev);
+	msi_domain_free_irqs_descs_locked(domain, dev, &range);
 	msi_unlock_descs(dev);
 }
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233767.405995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmW5-0005yA-Jk; Sat, 27 Nov 2021 01:28:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233767.405995; Sat, 27 Nov 2021 01:28:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmW5-0005xL-8o; Sat, 27 Nov 2021 01:28:37 +0000
Received: by outflank-mailman (input) for mailman id 233767;
 Sat, 27 Nov 2021 01:28:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNC-0002cc-Rq
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:26 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0fa16e6c-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0fa16e6c-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223824.263656943@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975965;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=7H7+YC/Q3X3DUjW7OFUmpmZxFX8YbEmXXunUPCxWTOo=;
	b=WiC1VNdWToWcSB4jjldD3djnVzhbklJU6pyPP+Tzw1/X7LcdGmzocohuKX2DHmH5PGkzFA
	YvI1fbfvDPertqCu24dWIg/reyIisrLWdA31M3XAfyXmYr26ddlEQo7K729EUzYakBSp/c
	FF0Aav2F1A7cZWyl50w8C8rJlDirHuxNMd4Z5W5yXeRD4KzNF5DgqMS2GoTrLev1pVRTdk
	Nvvrn+1hgDc7B9C7iydC6sdHSNtBmli4SxkiduUEUhEx7R4DhRFkRbPTXpIveun/cEm9EH
	R2eikJWgN2dGC+9O4EEoYvwIpZaf8NdveICOnvBz85t0g3hRKWjruPAVG48nEA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975965;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=7H7+YC/Q3X3DUjW7OFUmpmZxFX8YbEmXXunUPCxWTOo=;
	b=oxItvLAsFI5aE7ud8hMS3kIDpiajTA2JP70voGmnogSyk+5r+WFg4xQWcWSEMPO0APH7Yy
	X6lZJHHWpmBfDHBw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 03/22] genirq/msi: Guard sysfs code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:25 +0100 (CET)

No point in building unused code when CONFIG_SYSFS=n.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/msi.h |   10 ++++++++++
 kernel/irq/msi.c    |    2 ++
 2 files changed, 12 insertions(+)

--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -239,9 +239,19 @@ void __pci_write_msi_msg(struct msi_desc
 void pci_msi_mask_irq(struct irq_data *data);
 void pci_msi_unmask_irq(struct irq_data *data);
 
+#ifdef CONFIG_SYSFS
 const struct attribute_group **msi_populate_sysfs(struct device *dev);
 void msi_destroy_sysfs(struct device *dev,
 		       const struct attribute_group **msi_irq_groups);
+#else
+static inline const struct attribute_group **msi_populate_sysfs(struct device *dev)
+{
+	return NULL;
+}
+static inline void msi_destroy_sysfs(struct device *dev, const struct attribute_group **msi_irq_groups)
+{
+}
+#endif
 
 /*
  * The arch hooks to setup up msi irqs. Default functions are implemented
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -72,6 +72,7 @@ void get_cached_msi_msg(unsigned int irq
 }
 EXPORT_SYMBOL_GPL(get_cached_msi_msg);
 
+#ifdef CONFIG_SYSFS
 static ssize_t msi_mode_show(struct device *dev, struct device_attribute *attr,
 			     char *buf)
 {
@@ -204,6 +205,7 @@ void msi_destroy_sysfs(struct device *de
 		kfree(msi_irq_groups);
 	}
 }
+#endif
 
 #ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN
 static inline void irq_chip_write_msi_msg(struct irq_data *data,



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233768.405998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmW6-00064p-A7; Sat, 27 Nov 2021 01:28:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233768.405998; Sat, 27 Nov 2021 01:28:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmW5-00061v-W2; Sat, 27 Nov 2021 01:28:38 +0000
Received: by outflank-mailman (input) for mailman id 233768;
 Sat, 27 Nov 2021 01:28:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNS-00020H-FG
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:42 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18ec3ed7-4f20-11ec-9787-a32c541c8605;
 Sat, 27 Nov 2021 02:19:41 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18ec3ed7-4f20-11ec-9787-a32c541c8605
Message-ID: <20211126223824.855947162@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975981;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=lhIUE61Y2ARmaAA3RG1h6L7zHDs4cKgQsOndAjR5STU=;
	b=3I27l9siS6/oWE1JVUleWaLVyIqltkA2MLPegdLeuNH4xABPDw/VJVaN4/5xZwR/ZGDZ/X
	z+Yu7BvVlI1Y8bjNWoik91+y02TV4O1ndMArqPpxXOjDKZc7tlfYU+IDvy9/QevhvUBSSe
	nyPwZJhyvMtFooayQnVqCf1qlIROsanIGmDDCCtFBXia2UMjMfl/6bOUpWxdL7U7K8o12E
	JDsMmY+UavmvHDtkNDK/mVPz680wKGlII+yHcirzIllt9Z7FWCJTiaD8RGfRwVR8wCXrIw
	Fm3H9jm1jwNh8R+ZVC5kx7Gidr5VdZYHXIY0uS6MsgUEApx3IIaeb7WLJgRlLA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975981;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=lhIUE61Y2ARmaAA3RG1h6L7zHDs4cKgQsOndAjR5STU=;
	b=cSljuXSfhLC27NoLNfSXkLMLt2p1DhSlr0Y1CawLWxZ6xSqD3SbIMB5YfCzJcABWyjJgHj
	cjBENAHWPOx02EDA==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 13/22] PCI/MSI: Cleanup include zoo
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:41 +0100 (CET)

Get rid of the pile of unneeded includes which accumulated over time.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi.c |   16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -7,22 +7,14 @@
  * Copyright (C) 2016 Christoph Hellwig.
  */
 
+#include <linux/acpi_iort.h>
 #include <linux/err.h>
-#include <linux/mm.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
 #include <linux/export.h>
-#include <linux/ioport.h>
-#include <linux/pci.h>
-#include <linux/proc_fs.h>
-#include <linux/msi.h>
-#include <linux/smp.h>
-#include <linux/errno.h>
-#include <linux/io.h>
-#include <linux/acpi_iort.h>
-#include <linux/slab.h>
+#include <linux/irq.h>
 #include <linux/irqdomain.h>
+#include <linux/msi.h>
 #include <linux/of_irq.h>
+#include <linux/pci.h>
 
 #include "pci.h"
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 01:28:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 01:28:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233774.406016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmWA-00070T-5I; Sat, 27 Nov 2021 01:28:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233774.406016; Sat, 27 Nov 2021 01:28:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqmW9-0006yn-L7; Sat, 27 Nov 2021 01:28:41 +0000
Received: by outflank-mailman (input) for mailman id 233774;
 Sat, 27 Nov 2021 01:28:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Erow=QO=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mqmNh-0002cc-Td
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 01:19:58 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 215dd179-4f20-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 02:19:56 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 215dd179-4f20-11ec-b941-1df2895da90e
Message-ID: <20211126223825.375987680@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1637975995;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=b2AUMZ8n+35cpll0aGngdLAswuTgfFiNP2Zkn1C/x7I=;
	b=ey9VYVwJMRVwcfksR95/YBZo1QlvbZYZfkgR7eb1Bag9qzNXJVS4jhzTRW9yLHvexEKDVG
	NdZfvT2UsBn5RL0J1M+rpZkuXtbS5nqVETijSbR74gN4IMGuh2X3TA+zCERUnJLGu6r7QS
	xejJUwLGFdc68/9VQGrA+Irdjq4KBqDAprh9jYxhOBi5rbMrlRWDhET/p4bI3lf3w6YD4h
	E9/b6kmGP1Gy0ecl+kxuinGZvO3BSkQDIvqLkXs3Q4djlmfg3lY4IS8xh0nFZuCKSVYsOi
	TM8bL2+caOtSm9X4D68tGdAABZpJEayGt8Qun72Z1DAX05A5ADO4k3hxbtYqrQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1637975995;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 references:references; bh=b2AUMZ8n+35cpll0aGngdLAswuTgfFiNP2Zkn1C/x7I=;
	b=esFpcWNsvZJ3Th+y6sturNxS1eWHYEkG46onG7uJo3BAZF4nhSHejJp0haubUPknhdF5iT
	ic49rCWGRUTIKJBw==
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
 Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>,
 Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>,
 Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org,
 Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 sparclinux@vger.kernel.org,
 x86@kernel.org,
 xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>,
 linux-hyperv@vger.kernel.org,
 Juergen Gross <jgross@suse.com>,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Subject: [patch 22/22] PCI/MSI: Move descriptor counting on allocation fail to
 the legacy code
References: <20211126222700.862407977@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Date: Sat, 27 Nov 2021 02:19:55 +0100 (CET)

The irqdomain code already returns the information. Move the loop to the
legacy code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/pci/msi/legacy.c |   20 +++++++++++++++++++-
 drivers/pci/msi/msi.c    |   19 +------------------
 2 files changed, 20 insertions(+), 19 deletions(-)

--- a/drivers/pci/msi/legacy.c
+++ b/drivers/pci/msi/legacy.c
@@ -50,9 +50,27 @@ void __weak arch_teardown_msi_irqs(struc
 	}
 }
 
+static int pci_msi_setup_check_result(struct pci_dev *dev, int type, int ret)
+{
+	struct msi_desc *entry;
+	int avail = 0;
+
+	if (type != PCI_CAP_ID_MSIX || ret >= 0)
+		return ret;
+
+	/* Scan the MSI descriptors for successfully allocated ones. */
+	for_each_pci_msi_entry(entry, dev) {
+		if (entry->irq != 0)
+			avail++;
+	}
+	return avail ? avail : ret;
+}
+
 int pci_msi_legacy_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
-	return arch_setup_msi_irqs(dev, nvec, type);
+	int ret = arch_setup_msi_irqs(dev, nvec, type);
+
+	return pci_msi_setup_check_result(dev, type, ret);
 }
 
 void pci_msi_legacy_teardown_msi_irqs(struct pci_dev *dev)
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -609,7 +609,7 @@ static int msix_capability_init(struct p
 
 	ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
 	if (ret)
-		goto out_avail;
+		goto out_free;
 
 	/* Check if all MSI entries honor device restrictions */
 	ret = msi_verify_entries(dev);
@@ -634,23 +634,6 @@ static int msix_capability_init(struct p
 	pcibios_free_irq(dev);
 	return 0;
 
-out_avail:
-	if (ret < 0) {
-		/*
-		 * If we had some success, report the number of IRQs
-		 * we succeeded in setting up.
-		 */
-		struct msi_desc *entry;
-		int avail = 0;
-
-		for_each_pci_msi_entry(entry, dev) {
-			if (entry->irq != 0)
-				avail++;
-		}
-		if (avail != 0)
-			ret = avail;
-	}
-
 out_free:
 	free_msi_irqs(dev);
 



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 08:06:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 08:06:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233940.406042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqsj2-0007fw-Bb; Sat, 27 Nov 2021 08:06:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233940.406042; Sat, 27 Nov 2021 08:06:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqsj2-0007fp-8h; Sat, 27 Nov 2021 08:06:24 +0000
Received: by outflank-mailman (input) for mailman id 233940;
 Sat, 27 Nov 2021 08:06:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqsj1-0007ff-ET; Sat, 27 Nov 2021 08:06:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqsj1-0006ak-9R; Sat, 27 Nov 2021 08:06:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqsj0-0008S3-TP; Sat, 27 Nov 2021 08:06:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqsj0-0000QB-Sq; Sat, 27 Nov 2021 08:06:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=vMNPPU9k85S9Dvut8TkwfMCQjxAEbA/61HKdqQgNaZo=; b=fRXEzkx+LJc95iIaSyKbXHVxau
	YwCRQP/+m1FFCDOOUy0NZT5u8lwtb1dt4FiZ+UADK2OfWAfC3UV/j+RVOkO1jT3ZW7pUGuYOUc8Vf
	vyd+tt9CYVa7X/n8VVmOAg6ULYcwpa4Zi3DdxqvkOosKjXXEOms7pNnO+4Fyito/0U4Y=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166839-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-5.4 test] 166839: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-5.4:test-arm64-arm64-libvirt-raw:guest-start/debian.repeat:fail:heisenbug
    linux-5.4:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=9334f48f567334f54101223012ec9d3b4628bed8
X-Osstest-Versions-That:
    linux=5c088fba39aff97ae9175948356ef3292369671c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Nov 2021 08:06:22 +0000

flight 166839 linux-5.4 real [real]
flight 166938 linux-5.4 real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166839/
http://logs.test-lab.xenproject.org/osstest/logs/166938/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-libvirt-raw 17 guest-start/debian.repeat fail pass in 166938-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166259
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166259
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166259
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166259
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166259
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166259
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166259
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166259
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166259
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166259
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166259
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166259
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                9334f48f567334f54101223012ec9d3b4628bed8
baseline version:
 linux                5c088fba39aff97ae9175948356ef3292369671c

Last test of basis   166259  2021-11-21 13:13:36 Z    5 days
Testing same since   166839  2021-11-26 10:11:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abel Vesa <abel.vesa@nxp.com>
  Alan Stern <stern@rowland.harvard.edu>
  Aleksandr Loktionov <aleksandr.loktionov@intel.com>
  Alex Deucher <alexander.deucher@amd.com>
  Alexander Antonov <alexander.antonov@linux.intel.com>
  Alexander Mikhalitsyn <alexander.mikhalitsyn@virtuozzo.com>
  Amit Kumar Mahapatra <amit.kumar-mahapatra@xilinx.com>
  Anatolij Gustschin <agust@denx.de>
  Andrew Morton <akpm@linux-foundation.org>
  AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
  Arnaldo Carvalho de Melo <acme@redhat.com>
  Artur Rojek <contact@artur-rojek.eu>
  Baoquan He <bhe@redhat.com>
  Bart Van Assche <bvanassche@acm.org>
  Bjorn Andersson <bjorn.andersson@linaro.org>
  Brian Cain <bcain@codeaurora.org>
  Catalin Marinas <catalin.marinas@arm.com>
  Chengfeng Ye <cyeaa@connect.ust.hk>
  Chris Murphy <chris@colorremedies.com>
  Christophe JAILLET <christophe.jaillet@wanadoo.fr>
  Colin Ian King <colin.i.king@gmail.com>
  Colin Ian King <colin.i.king@googlemail.com>
  Cong Wang <cong.wang@bytedance.com>
  Daniel Vetter <daniel.vetter@ffwll.ch>
  Dave Switzer <david.switzer@intel.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
  Eryk Rybak <eryk.roch.rybak@intel.com>
  Florian Fainelli <f.fainelli@gmail.com>
  Gao Xiang <hsiangkao@linux.alibaba.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Greg Thelen <gthelen@google.com>
  Grzegorz Szczurek <grzegorzx.szczurek@intel.com>
  Guanghui Feng <guanghuifeng@linux.alibaba.com>
  Guenter Roeck <linux@roeck-us.net>
  Guo Zhi <qtxuning1999@sjtu.edu.cn>
  Hans de Goede <hdegoede@redhat.com>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  Heiko Carstens <hca@linux.ibm.com>
  Helge Deller <deller@gmx.de>
  hongao <hongao@uniontech.com>
  Hulk Robot <hulkrobot@huawei.com>
  Ian Rogers <irogers@google.com>
  Imre Deak <imre.deak@intel.com>
  Jacob Keller <jacob.e.keller@intel.com>
  Jaegeuk Kim <jaegeuk@kernel.org>
  Jakub Kicinski <kuba@kernel.org>
  James Clark <james.clark@arm.com>
  James Smart <jsmart2021@gmail.com>
  Jan Kara <jack@suse.cz>
  Jani Nikula <jani.nikula@intel.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Jedrzej Jagielski <jedrzej.jagielski@intel.com>
  Jeremy Cline <jcline@redhat.com>
  Joel Stanley <joel@jms.id.au>
  Johan Hovold <johan@kernel.org>
  Johannes Berg <johannes.berg@intel.com>
  John Crispin <john@phrozen.org>
  John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
  Jon Hunter <jonathanh@nvidia.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Jonathan Davies <jonathan.davies@nutanix.com>
  Justin Tee <justin.tee@broadcom.com>
  Karol Herbst <kherbst@redhat.com>
  Konrad Jankowski <konrad0.jankowski@intel.com>
  Leon Romanovsky <leonro@nvidia.com>
  Li Yang <leoyang.li@nxp.com>
  Lin Ma <linma@zju.edu.cn>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Lorenzo Bianconi <lorenzo@kernel.org>
  Lu Wei <luwei32@huawei.com>
  Luis Chamberlain <mcgrof@kernel.org>
  Maciej Fijalkowski <maciej.fijalkowski@intel.com>
  Manfred Spraul <manfred@colorfullife.com>
  Mark Brown <broonie@kernel.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Masami Hiramatsu <mhiramat@kernel.org>
  Mateusz Palczewski <mateusz.palczewski@intel.com>
  Matthew Hagan <mnhagan88@gmail.com>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael Walle <michael@walle.cc>
  Michal Maloszewski <michal.maloszewski@intel.com>
  Michal Simek <michal.simek@xilinx.com>
  Mike Christie <michael.christie@oracle.com>
  Mitch Williams <mitch.a.williams@intel.com>
  Nadav Amit <namit@vmware.com>
  Nathan Chancellor <nathan@kernel.org>
  Nguyen Dinh Phi <phind.uet@gmail.com>
  Nicholas Nunley <nicholas.d.nunley@intel.com>
  Nick Desaulniers <ndesaulniers@google.com>
  Nicolas Dichtel <nicolas.dichtel@6wind.com>
  Nikolay Borisov <nborisov@suse.com>
  Paul Cercueil <paul@crapouillou.net>
  Pavel Skripkin <paskripkin@gmail.com>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Piotr Marczak <piotr.marczak@intel.com>
  Przemyslaw Patynowski <przemyslawx.patynowski@intel.com>
  Randy Dunlap <rdunlap@infradead.org>
  Rich Felker <dalias@libc.org>
  Rodrigo Vivi <rodrigo.vivi@intel.com>
  Roger Quadros <rogerq@kernel.org>
  Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
  Rustam Kovhaev <rkovhaev@gmail.com>
  Sasha Levin <sashal@kernel.org>
  Sean Christopherson <seanjc@google.com>
  Selvin Xavier <selvin.xavier@broadcom.com>
  Shawn Guo <shawnguo@kernel.org>
  Simon Wunderlich <sw@simonwunderlich.de>
  Sohaib Mohamed <sohaib.amhmd@gmail.com>
  Stefan Riedmueller <s.riedmueller@phytec.de>
  Stephen Boyd <sboyd@kernel.org>
  Steven Rostedt (VMware) <rostedt@goodmis.org>
  Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
  Surabhi Boob <surabhi.boob@intel.com>
  Sven Eckelmann <sven@narfation.org>
  Sven Peter <sven@svenpeter.dev>
  Sven Schnelle <svens@stackframe.org>
  Sylwester Dziedziuch <sylwesterx.dziedziuch@intel.com>
  Takashi Iwai <tiwai@suse.de>
  Teng Qi <starmiku1207184332@gmail.com>
  Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  Tom Zanussi <zanussi@kernel.org>
  Tony Brelinski <tony.brelinski@intel.com>
  Tony Lindgren <tony@atomide.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Vincent Donnefort <vincent.donnefort@arm.com>
  Vlastimil Babka <vbabka@suse.cz>
  Wei Liu <wei.liu@kernel.org>
  Wei Xu <xuwei5@hisilicon.com>
  Will Deacon <will@kernel.org>
  Xin Long <lucien.xin@gmail.com>
  Yang Yingliang <yangyingliang@huawei.com>
  Zhenyu Ye <yezhenyu2@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   5c088fba39af..9334f48f5673  9334f48f567334f54101223012ec9d3b4628bed8 -> tested/linux-5.4


From xen-devel-bounces@lists.xenproject.org Sat Nov 27 11:12:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 11:12:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233949.406057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqvc9-0000hL-Jd; Sat, 27 Nov 2021 11:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233949.406057; Sat, 27 Nov 2021 11:11:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mqvc9-0000hE-Fk; Sat, 27 Nov 2021 11:11:29 +0000
Received: by outflank-mailman (input) for mailman id 233949;
 Sat, 27 Nov 2021 11:11:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqvc8-0000h4-MB; Sat, 27 Nov 2021 11:11:28 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqvc8-0001Pg-Dj; Sat, 27 Nov 2021 11:11:28 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mqvc8-0001oc-4Z; Sat, 27 Nov 2021 11:11:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mqvc8-000782-41; Sat, 27 Nov 2021 11:11:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Wma+qbXeL5cFHaxb71CbTbMiSeLk7YAtVUY1bTrjPwo=; b=BfpoY9dgt6iH/P+f4YzXtlMklf
	Z3Rt3ez/ZrQt40RIMJfn5KF+ohDBRe1fTBr8C39b/vXU92pCym+0hjXdbs7Fz9vRqQm/LkNrD//25
	601tH1ITgs2BHwbpcgOOCRPaObfnBaHR2/bgHKbO8My9EsLUtoJd30/lFVz9dwG4gPEA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166879-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166879: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-arm64-pvops:kernel-build:fail:regression
    qemu-mainline:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=dd4b0de45965538f19bb40c7ddaaba384a8c613a
X-Osstest-Versions-That:
    qemuu=14d02cfbe4adaeebe7cb833a8cc71191352cf03b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Nov 2021 11:11:28 +0000

flight 166879 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166879/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64-pvops             6 kernel-build             fail REGR. vs. 166370

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl           1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-credit1   1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-credit2   1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-seattle   1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-thunderx  1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-vhd       1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166370
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166370
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166370
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166370
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166370
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166370
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166370
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 qemuu                dd4b0de45965538f19bb40c7ddaaba384a8c613a
baseline version:
 qemuu                14d02cfbe4adaeebe7cb833a8cc71191352cf03b

Last test of basis   166370  2021-11-25 03:10:11 Z    2 days
Testing same since   166879  2021-11-26 13:32:54 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            fail    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          blocked 
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      blocked 
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  blocked 
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  blocked 
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 blocked 
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      blocked 
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit dd4b0de45965538f19bb40c7ddaaba384a8c613a
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Thu Nov 25 10:44:43 2021 +0100

    Fix version for v6.2.0-rc2 release
    
    Typo while setting VERSION in the tag commit.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


From xen-devel-bounces@lists.xenproject.org Sat Nov 27 16:12:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 16:12:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.233991.406113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr0Jc-00032x-DT; Sat, 27 Nov 2021 16:12:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 233991.406113; Sat, 27 Nov 2021 16:12:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr0Jc-00032q-AZ; Sat, 27 Nov 2021 16:12:40 +0000
Received: by outflank-mailman (input) for mailman id 233991;
 Sat, 27 Nov 2021 16:12:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mr0Jb-00032Q-6E; Sat, 27 Nov 2021 16:12:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mr0Ja-00074V-Tc; Sat, 27 Nov 2021 16:12:38 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mr0Ja-0001CE-Ha; Sat, 27 Nov 2021 16:12:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mr0Ja-0000TP-H3; Sat, 27 Nov 2021 16:12:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=J7oEhoGL1VRnVIglNcR6kVSLsfdvKlvIDE7ZoweYqnY=; b=YFx3syKL2lAFbGs3IXxznSPj8A
	XYkNUmF6gkOmHT4Siju7YzE3llOqVgeujgHu3yfHqOUrQQGf9E6vUZ8sN0LsPN92YvSCDnIX8ctef
	HZhLZ3drxMD8n/FcMgQKz0wjORGIHGNAzoHvVMOr85naJkGDaRH4shrzSmChaxShvmzs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166912-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166912: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:allowable
    xen-unstable:test-amd64-amd64-examine:memdisk-try-append:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=5449ba84e99849ee2339fd79f9717e10113d702d
X-Osstest-Versions-That:
    xen=be12fcca8b784e456df3adedbffe657d753c5ff9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Nov 2021 16:12:38 +0000

flight 166912 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166912/

Failures :-/ but no regressions.

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10   fail REGR. vs. 166304

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-examine      4 memdisk-try-append           fail  like 166206
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166304
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166304
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166304
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166304
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166304
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166304
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166304
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166304
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166304
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166304
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166304
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166304
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass

version targeted for testing:
 xen                  5449ba84e99849ee2339fd79f9717e10113d702d
baseline version:
 xen                  be12fcca8b784e456df3adedbffe657d753c5ff9

Last test of basis   166304  2021-11-23 01:54:09 Z    4 days
Failing since        166324  2021-11-23 17:39:07 Z    3 days    3 attempts
Testing same since   166378  2021-11-25 06:23:11 Z    2 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   be12fcca8b..5449ba84e9  5449ba84e99849ee2339fd79f9717e10113d702d -> master


From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234019.406195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1ri-0004gx-F6; Sat, 27 Nov 2021 17:51:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234019.406195; Sat, 27 Nov 2021 17:51:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1ri-0004cq-42; Sat, 27 Nov 2021 17:51:58 +0000
Received: by outflank-mailman (input) for mailman id 234019;
 Sat, 27 Nov 2021 17:51:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rg-0004Ig-76
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:56 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4aae86a-4faa-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 18:51:54 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id k23so25480764lje.1
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:54 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.52
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4aae86a-4faa-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=I496Z+swiWyAchqbkA9TA+qXRaefRbc6db3siiLMLlI=;
        b=ab2NL+08Ekqzqf/v9FO9StivTv/vi/Xk9zCd6Ja59vmCjRrhLwCGPvVhDYzk16riJM
         XAKyNIoaus6fnFuPkL2CE06ST3OkI/bn4L2RNH/DqlD6A+K3bQ9deBeDNzeLjkDQ+Xf1
         dqpek9pUF6Rrvno17DsFivKeleYFoYyQugd1EUNXqUrL8weR+tJ1JLFVgV2/b434AcPu
         VS5OUVyfUEQ0W0N88/caso1XhyyEydcQICUEtghNVAUYRxAnTbuZx3y2MuReI6b+sd7T
         dzJLwJjEX+obkspGYR5GUrmLmNt1lJuicvmgVV0yNrLRwJyn+yiLJ2XFZOJ6i6OYGngC
         Z/rQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=I496Z+swiWyAchqbkA9TA+qXRaefRbc6db3siiLMLlI=;
        b=b8VpjUknwvekozD/NS+uxEsWnuD+3X1ZfVPRfJKZMRQVgMeDBu5Qu+hSLao7jSW3B8
         7op/3jIGrd/YaL/yUuPYHXQtyVJy13VVVP9F+imWkQaWPB56zmLZEgyLxm+HDQSnX8+l
         6TyQ+dFm6vszp649fscGbWthNIBYbR2K2CBeq8KTCEusp+vUM7WVmm7LXWBD2mAq3bB/
         mfFY4Kg5TYa1TOrcdnHQEyG3UopYk6Ot2OLgVkZReOEj2lKg1RmHGKwxVvanMEJKCHdc
         opQRcLLPdqe4y8sFkLIg/lRGdhw+LmenaQ+FojL1fIoF1K1X2xISRauGYNPf7Z4ISCFs
         S6+A==
X-Gm-Message-State: AOAM530xOLrpNPlJPznlTSwxfkWIqHblJWZ92rdKjYy53YxJRrIYUZzr
	3JMZRyfVLynVMtVBxUcWxaIXhJZxx/8=
X-Google-Smtp-Source: ABdhPJx9ZItP/jmf1Mc3AFgG0Q7hrJ+0biPwpDlU/DbtkxUet5+vtuy5UDixp9AFkPzx+JPv2msi/A==
X-Received: by 2002:a05:651c:106b:: with SMTP id y11mr38555280ljm.504.1638035513198;
        Sat, 27 Nov 2021 09:51:53 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 02/10] iommu/ipmmu-vmsa: Add helper functions for MMU "context" registers
Date: Sat, 27 Nov 2021 19:51:37 +0200
Message-Id: <1638035505-16931-3-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

This is a non-verbatim port of corresponding Linux upsteam commit:
16d9454f5e0447f9c19cbf350b35ed377b9f64eb

Original commit message:
 commit 16d9454f5e0447f9c19cbf350b35ed377b9f64eb
 Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
 Date:   Wed Nov 6 11:35:47 2019 +0900

  iommu/ipmmu-vmsa: Add helper functions for MMU "context" registers

  Since we will have changed memory mapping of the IPMMU in the future,
  This patch adds helper functions ipmmu_ctx_{reg,read,write}()
  for MMU "context" registers. No behavior change.

  Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
  Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
  Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
  Signed-off-by: Joerg Roedel <jroedel@suse.de>

**********

This is a prereq work needed to add support for S4 series easily
in the future.

Besides changes done in the original commit, we also need to update
an extra call sites which Linux driver doesn't have, but Xen driver
has such as ipmmu_ctx_write_cache(), etc.

No change in behavior.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index 4a8a974..ce5c3bc 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -307,18 +307,35 @@ static void ipmmu_write(struct ipmmu_vmsa_device *mmu, uint32_t offset,
     writel(data, mmu->base + offset);
 }
 
+static unsigned int ipmmu_ctx_reg(struct ipmmu_vmsa_device *mmu,
+                                  unsigned int context_id, uint32_t reg)
+{
+    return context_id * IM_CTX_SIZE + reg;
+}
+
+static uint32_t ipmmu_ctx_read(struct ipmmu_vmsa_device *mmu,
+                               unsigned int context_id, uint32_t reg)
+{
+    return ipmmu_read(mmu, ipmmu_ctx_reg(mmu, context_id, reg));
+}
+
+static void ipmmu_ctx_write(struct ipmmu_vmsa_device *mmu,
+                            unsigned int context_id, uint32_t reg,
+                            uint32_t data)
+{
+    ipmmu_write(mmu, ipmmu_ctx_reg(mmu, context_id, reg), data);
+}
+
 static uint32_t ipmmu_ctx_read_root(struct ipmmu_vmsa_domain *domain,
                                     uint32_t reg)
 {
-    return ipmmu_read(domain->mmu->root,
-                      domain->context_id * IM_CTX_SIZE + reg);
+    return ipmmu_ctx_read(domain->mmu->root, domain->context_id, reg);
 }
 
 static void ipmmu_ctx_write_root(struct ipmmu_vmsa_domain *domain,
                                  uint32_t reg, uint32_t data)
 {
-    ipmmu_write(domain->mmu->root,
-                domain->context_id * IM_CTX_SIZE + reg, data);
+    ipmmu_ctx_write(domain->mmu->root, domain->context_id, reg, data);
 }
 
 static void ipmmu_ctx_write_cache(struct ipmmu_vmsa_domain *domain,
@@ -329,8 +346,8 @@ static void ipmmu_ctx_write_cache(struct ipmmu_vmsa_domain *domain,
 
     /* Mask fields which are implemented in IPMMU-MM only. */
     if ( !ipmmu_is_root(domain->mmu) )
-        ipmmu_write(domain->mmu, domain->context_id * IM_CTX_SIZE + reg,
-                    data & IMCTR_COMMON_MASK);
+        ipmmu_ctx_write(domain->mmu, domain->context_id, reg,
+                        data & IMCTR_COMMON_MASK);
 }
 
 /*
@@ -693,7 +710,7 @@ static void ipmmu_device_reset(struct ipmmu_vmsa_device *mmu)
 
     /* Disable all contexts. */
     for ( i = 0; i < mmu->num_ctx; ++i )
-        ipmmu_write(mmu, i * IM_CTX_SIZE + IMCTR, 0);
+        ipmmu_ctx_write(mmu, i, IMCTR, 0);
 }
 
 /* R-Car Gen3 SoCs product and cut information. */
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234022.406220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rk-0005F6-CJ; Sat, 27 Nov 2021 17:52:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234022.406220; Sat, 27 Nov 2021 17:52:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rj-0005Bl-Sh; Sat, 27 Nov 2021 17:51:59 +0000
Received: by outflank-mailman (input) for mailman id 234022;
 Sat, 27 Nov 2021 17:51:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rh-0004Ig-K3
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:57 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b609122b-4faa-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 18:51:56 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id z8so25423585ljz.9
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:55 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.54
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b609122b-4faa-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=bRgqbHRlJsAVyemf2hoNwvqw0txWJXfRZkcU22DnDNE=;
        b=b1LyY1DLdNhBN0nuevSbwwKyxTG66rYthHKPAAuuJZmB12W79J5faarBcjBmLLUVmO
         au4QkhyAEccjEFTyum1u9GESjj2YmkwHLWumWP4Sq+NUZZESd8gxk7Ov6omT1nHmvEVd
         V6JpYLcxB+kW4C1ozsnKJqSvNG60euTtwhvzAFFfqHfzPvnCaPmbp6Xwhos+qO5v4Z7w
         3itFeOu4cnBTrCXi2s+IkkbE/XLy8lCbHq7s46BfMeJbHSf8pyrfIrr3QozvpKoyTGMd
         hc7vOvzYwnhRHVMewe3zG3k0dJT8kybyF4Ye4v6Oby+JmkeJ+UhcnzRJvPwr+x4cAVR6
         FBLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=bRgqbHRlJsAVyemf2hoNwvqw0txWJXfRZkcU22DnDNE=;
        b=gGnc1PxHTE4lQs/tW6mYqZLnD1EgqKhyfw+QCH8EeEoSqwfQYH1NL2zL6bP+gyfFAU
         dy1vOBcZq1i5MGuxIIi4vF/WVrmfmjvZs6YCnrIERstU8qeKa3Q8cqL+5WZtvrmvracF
         UiBMKK0wPamE/ex5rgEVL/mvTgaGk6iYw1G49wJuvIOUSfdP3kKL3MFamPUsdFqW9/BK
         j3gT9rVl/tCZSIhVAXIYFtNs21rPAVQPqSgKaL9WFuYUyM9a1Nu9X/p0hlgudATrDMnt
         b4WLawxgwZJnpE12MpE/qzy1kYQDk4K2S/4i/neZE/oCAKfxvQcZXf+Pc2SscDepuc2s
         jrPg==
X-Gm-Message-State: AOAM5314orWfCLFpqFe8iTgRPcDAtho9/2f4Bvyj6iO8zpwy1tW4y/Ai
	vVj2HDdc9lZgH1qy+pizzJvEr5yRvyQ=
X-Google-Smtp-Source: ABdhPJyE0WP62ElK8Vd0xxB1RUFt8QSpNfATcPBZRWSNKjA4vAPYII+CS8Sn5BE6PP58z9nUNcsgnA==
X-Received: by 2002:a2e:bf06:: with SMTP id c6mr38838943ljr.405.1638035515505;
        Sat, 27 Nov 2021 09:51:55 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 05/10] iommu/ipmmu-vmsa: Calculate context registers' offset instead of a macro
Date: Sat, 27 Nov 2021 19:51:40 +0200
Message-Id: <1638035505-16931-6-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

This is a non-verbatim port of corresponding Linux upsteam commit:
3dc28d9f59eaae41461542b27afe70339347ebb3

Original commit message:
 commit 3dc28d9f59eaae41461542b27afe70339347ebb3
 Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
 Date:   Wed Nov 6 11:35:48 2019 +0900

  iommu/ipmmu-vmsa: Calculate context registers' offset instead of a macro

  Since we will have changed memory mapping of the IPMMU in the future,
  this patch uses ipmmu_features values instead of a macro to
  calculate context registers offset. No behavior change.

  Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
  Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
  Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
  Signed-off-by: Joerg Roedel <jroedel@suse.de>

**********

This is a prereq work needed to add support for S4 series easily
in the future.

Almost the same change as original commit makes, but without updating
struct ipmmu_features_default which Xen driver doesn't have (there is
no support of old Arm32 based Gen2 SoCs).

No change in behavior.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index 369be4c..ca33456 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -109,6 +109,8 @@ struct ipmmu_vmsa_xen_device {
 struct ipmmu_features {
     unsigned int number_of_contexts;
     unsigned int num_utlbs;
+    unsigned int ctx_offset_base;
+    unsigned int ctx_offset_stride;
 };
 
 /* Root/Cache IPMMU device's information */
@@ -167,8 +169,6 @@ static DEFINE_SPINLOCK(ipmmu_devices_lock);
 #define TLB_LOOP_TIMEOUT    100 /* 100us */
 
 /* Registers Definition */
-#define IM_CTX_SIZE    0x40
-
 #define IMCTR                0x0000
 /*
  * This field is implemented in IPMMU-MM only. So, can be set for
@@ -315,7 +315,8 @@ static void ipmmu_write(struct ipmmu_vmsa_device *mmu, uint32_t offset,
 static unsigned int ipmmu_ctx_reg(struct ipmmu_vmsa_device *mmu,
                                   unsigned int context_id, uint32_t reg)
 {
-    return context_id * IM_CTX_SIZE + reg;
+    return mmu->features->ctx_offset_base +
+        context_id * mmu->features->ctx_offset_stride + reg;
 }
 
 static uint32_t ipmmu_ctx_read(struct ipmmu_vmsa_device *mmu,
@@ -735,6 +736,8 @@ static int ipmmu_init_platform_device(struct device *dev,
 static const struct ipmmu_features ipmmu_features_rcar_gen3 = {
     .number_of_contexts = 8,
     .num_utlbs = 48,
+    .ctx_offset_base = 0,
+    .ctx_offset_stride = 0x40,
 };
 
 static void ipmmu_device_reset(struct ipmmu_vmsa_device *mmu)
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234018.406184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rh-0004SL-Od; Sat, 27 Nov 2021 17:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234018.406184; Sat, 27 Nov 2021 17:51:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rh-0004Q0-F2; Sat, 27 Nov 2021 17:51:57 +0000
Received: by outflank-mailman (input) for mailman id 234018;
 Sat, 27 Nov 2021 17:51:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rg-0004Ih-4g
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:56 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b59e8717-4faa-11ec-976b-d102b41d0961;
 Sat, 27 Nov 2021 18:51:55 +0100 (CET)
Received: by mail-lj1-x22c.google.com with SMTP id 13so25352922ljj.11
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:55 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.54
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b59e8717-4faa-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=2sni6jjnzs/e6QjzM6R6J5bFY8hTKuPs1W7f75Y8JUs=;
        b=mCcjVdwnRgSS7Q75SIo7lxOskyOJn+QRTDRwF/FGDT6TsW/FJRtrC07YzOD2GHL9wJ
         UggtZY0oIhRHGjT7W0lXc/UNrYKyIYnFPkPzi2VhkXUl5mEe+n2wtKXTNmlNs7Jm2iwL
         yDW8O22qJ2s/8rVZLdSNm0z66rTxSeRAuNWQ8i1KTHSHZYhoUhOum08grqo/APDQZdC4
         r62eidmbURqsHAngE12X9z3USGDQAkL6pXFZgzlt+Rhd8DKo5LCvs8zedYtrDfCL0R9F
         Sx+7SGASPG9gcfVrnvceLC6b+ITBIxRGxKrCpyUIV/LYG5yadSBTskBwjsAh+Ccmzv+c
         tqhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=2sni6jjnzs/e6QjzM6R6J5bFY8hTKuPs1W7f75Y8JUs=;
        b=t7j16QT2Dixdci+lpSliMmKCWW9/mMVlqFGGPmIzaQ1fN5EBO+V2o/bKHVfELS9OO+
         umxtL1gNGxg1UoLjA3NhTLthVJmPHwTF0W2vStS7xODl6qOINsh1AZG6fkZgLeTk9gFM
         rEpAUhCzA5nX2oH7v+pxb3tFvTapa+octNlUkfDaJ9mAhhPvkyXoThQ4AQc58u350ykb
         K4W+/4iRYzlwXThcwZCVRMpBGi/aCA4+4uakeD1FXwr17tV0b+mHYmMkR8Lq1chzXedu
         oDEKB18rZFJgw2wsGFcNr3DSD4DDiDFu6q93VL3aOog0rWiWY8GjE2tw0ixz4p1lKHUd
         S1Xg==
X-Gm-Message-State: AOAM531v4uB8e1RhXyAwMz3E/0pqH5chP/2V81FSjE0f5XauGEQmpoLv
	emMCb1I26CPb0j0EbskFySGuXdILeV0=
X-Google-Smtp-Source: ABdhPJzRiNGapBPhnc8R1Iww0h0ZwDxUfXxffFKNeHCf+WJH3G7H1oDNSqGnVZ2SKx6tCBLeqxqPtA==
X-Received: by 2002:a2e:5c86:: with SMTP id q128mr6917577ljb.245.1638035514811;
        Sat, 27 Nov 2021 09:51:54 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 04/10] iommu/ipmmu-vmsa: Add light version of Linux's ipmmu_features
Date: Sat, 27 Nov 2021 19:51:39 +0200
Message-Id: <1638035505-16931-5-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

This is a prereq work needed to add support for S4 series easily
in the future.

We don't need to pull the whole struct and all instances as Xen
driver doesn't support old Arm32 based Gen2 SoCs, so there is no
point in keeping all differences between Gen2 and Gen3 here.
All what we need is a minimal support to be able to operate with
Gen3 and new S4.

Add Gen3 specific info with only two fields (number_of_contexts and
num_utlbs) for now, the subsequent patches will add remaining bits.

No change in behavior.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 54 +++++++++++++++++++++++---------
 1 file changed, 40 insertions(+), 14 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index 1b94af2..369be4c 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -71,9 +71,9 @@
  * R-Car Gen3 SoCs make use of up to 8 IPMMU contexts (sets of page table) and
  * these can be managed independently. Each context is mapped to one Xen domain.
  */
-#define IPMMU_CTX_MAX     8
+#define IPMMU_CTX_MAX     8U
 /* R-Car Gen3 SoCs make use of up to 48 micro-TLBs per IPMMU device. */
-#define IPMMU_UTLB_MAX    48
+#define IPMMU_UTLB_MAX    48U
 
 /* IPMMU context supports IPA size up to 40 bit. */
 #define IPMMU_MAX_P2M_IPA_BITS    40
@@ -106,17 +106,22 @@ struct ipmmu_vmsa_xen_device {
     struct ipmmu_vmsa_device *mmu;
 };
 
+struct ipmmu_features {
+    unsigned int number_of_contexts;
+    unsigned int num_utlbs;
+};
+
 /* Root/Cache IPMMU device's information */
 struct ipmmu_vmsa_device {
     struct device *dev;
     void __iomem *base;
     struct ipmmu_vmsa_device *root;
     struct list_head list;
-    unsigned int num_utlbs;
     unsigned int num_ctx;
     spinlock_t lock;    /* Protects ctx and domains[] */
     DECLARE_BITMAP(ctx, IPMMU_CTX_MAX);
     struct ipmmu_vmsa_domain *domains[IPMMU_CTX_MAX];
+    const struct ipmmu_features *features;
 };
 
 /*
@@ -727,6 +732,11 @@ static int ipmmu_init_platform_device(struct device *dev,
     return 0;
 }
 
+static const struct ipmmu_features ipmmu_features_rcar_gen3 = {
+    .number_of_contexts = 8,
+    .num_utlbs = 48,
+};
+
 static void ipmmu_device_reset(struct ipmmu_vmsa_device *mmu)
 {
     unsigned int i;
@@ -798,6 +808,27 @@ static __init bool ipmmu_stage2_supported(void)
     return stage2_supported;
 }
 
+static const struct dt_device_match ipmmu_dt_match[] __initconst =
+{
+    {
+        .compatible = "renesas,ipmmu-r8a7795",
+        .data = &ipmmu_features_rcar_gen3,
+    },
+    {
+        .compatible = "renesas,ipmmu-r8a77965",
+        .data = &ipmmu_features_rcar_gen3,
+    },
+    {
+        .compatible = "renesas,ipmmu-r8a7796",
+        .data = &ipmmu_features_rcar_gen3,
+    },
+    {
+        .compatible = "renesas,ipmmu-r8a77961",
+        .data = &ipmmu_features_rcar_gen3,
+    },
+    { /* sentinel */ },
+};
+
 /*
  * This function relies on the fact that Root IPMMU device is being probed
  * the first. If not the case, it denies further Cache IPMMU device probes
@@ -806,6 +837,7 @@ static __init bool ipmmu_stage2_supported(void)
  */
 static int ipmmu_probe(struct dt_device_node *node)
 {
+    const struct dt_device_match *match;
     struct ipmmu_vmsa_device *mmu;
     uint64_t addr, size;
     int irq, ret;
@@ -817,9 +849,12 @@ static int ipmmu_probe(struct dt_device_node *node)
         return -ENOMEM;
     }
 
+    match = dt_match_node(ipmmu_dt_match, node);
+    ASSERT(match);
+    mmu->features = match->data;
+
     mmu->dev = &node->dev;
-    mmu->num_utlbs = IPMMU_UTLB_MAX;
-    mmu->num_ctx = IPMMU_CTX_MAX;
+    mmu->num_ctx = min(IPMMU_CTX_MAX, mmu->features->number_of_contexts);
     spin_lock_init(&mmu->lock);
     bitmap_zero(mmu->ctx, IPMMU_CTX_MAX);
 
@@ -1296,15 +1331,6 @@ static const struct iommu_ops ipmmu_iommu_ops =
     .add_device      = ipmmu_add_device,
 };
 
-static const struct dt_device_match ipmmu_dt_match[] __initconst =
-{
-    DT_MATCH_COMPATIBLE("renesas,ipmmu-r8a7795"),
-    DT_MATCH_COMPATIBLE("renesas,ipmmu-r8a77965"),
-    DT_MATCH_COMPATIBLE("renesas,ipmmu-r8a7796"),
-    DT_MATCH_COMPATIBLE("renesas,ipmmu-r8a77961"),
-    { /* sentinel */ },
-};
-
 static __init int ipmmu_init(struct dt_device_node *node, const void *data)
 {
     int ret;
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234016.406172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rh-0004JE-1W; Sat, 27 Nov 2021 17:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234016.406172; Sat, 27 Nov 2021 17:51:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rg-0004J7-U0; Sat, 27 Nov 2021 17:51:56 +0000
Received: by outflank-mailman (input) for mailman id 234016;
 Sat, 27 Nov 2021 17:51:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rf-0004Ih-IK
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:55 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3ce165e-4faa-11ec-976b-d102b41d0961;
 Sat, 27 Nov 2021 18:51:54 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id j18so12205628ljc.12
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:52 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.50
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3ce165e-4faa-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=VT6V23qiWa99TjZigs2WUA76yUm7r4YP7cMN5cAJmM0=;
        b=EnSx8l4TGMUV5Rr/IX+PBCfbrrPad7MMBzOa+mB3kQsAVpKhXPI1d6QqsXd5kwTnp+
         Bgn8vZhyqT0YGztKm6deEp9+CllUCe7YoS8z65KC43+yx3zBJXvS/8v5ksYtsiiFOlUr
         fMTM6SmJihTGt4hBSIEdwbYNnaorIKMf5Fb8OGn3E0eQKRc30EPDO5qqT/4kC96C+/ZR
         dHwGobufXvcPXoj6FU0KdF5H3EizHZe+Iqxm+O53M01fxBP3XN0cqAJzQhpYVQ3NgOyB
         vorjvrZJ7TA2LGTiRjAKTpNZjsYGw6s49S193FHu2DqakbkE/b12Ky6DYw0W6QCfz3/H
         BYpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=VT6V23qiWa99TjZigs2WUA76yUm7r4YP7cMN5cAJmM0=;
        b=UscVmKkWuzOcb3nJDyKtSV9elYwbLXYIVhZB2FB/+OJQ5mX20vsHKQxhFugZrW2s+/
         HNSeA0WIcC/EdEbn4D5WJszR2ozJMu2GkxxSsT9oJ3HXRx3a847UtkDY8S3SI/eKVtB7
         XG9xNXV/2eM/DiBZE6Tic5Hmq5rHdKpSCwSjcA1jdP9Scz6ZxlB/urPy/EgEzf+55PPs
         kFKD98hi+CC9LKxr3QrPF8AcM4T0Tpfw2EgcTAUdyIOGPj8qyO9rM8mn2+gWWDVkjjIB
         w6aOUAFDQ33/PXkVKIrutiDD4fjhS1YAKH8qx2rsi73RvBBbt7icn5mHPKh77UO9fcRL
         fFyg==
X-Gm-Message-State: AOAM532WU3SzlR75C2UKI3iAvB3QGKvLB/ndNBYnZLgAxk0WLnFitEft
	o6OXAykSIC4TzV84z/NAKeazZ3/VrvI=
X-Google-Smtp-Source: ABdhPJxIImBGYJizoePTW7uJnxvOjSPnaEm5Sw0ErZOBBUZ1BPLQnPMuz3MOMXVoI/laNGfgIfIT+A==
X-Received: by 2002:a2e:b907:: with SMTP id b7mr38730021ljb.214.1638035511606;
        Sat, 27 Nov 2021 09:51:51 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Jan Beulich <jbeulich@suse.com>,
	Paul Durrant <paul@xen.org>,
	Rahul Singh <rahul.singh@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 00/10] Add support for Renesas R-Car S4 IPMMU and other misc changes
Date: Sat, 27 Nov 2021 19:51:35 +0200
Message-Id: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

The R-Car S4 is an automotive System-on-Chip (SoC) for Car Server/Communication
Gateway and is one of the first products in Renesas’ 4th-generation R-Car Family.

The integrated IOMMU HW is also VMSA-compatible and supports stage 2 translation
table format, therefore can be used with current R-Car Gen3 driver with slight
modifications.

In the context of Xen driver the main differences between Gen3 and S4 are
the following:
 - HW capacity was enlarged to support up to 16 IPMMU contexts (sets of page table)
   and up to 64 micro-TLBs per IPMMU device
 - the memory mapped registers have different bases and offset

The first part (commits #1-6) is a non-verbatim port of Linux upstream commits
needed to add support for S4 series easily (prereq work).
The second part (commits #7-8) is based on the code from the Renesas BSP and
actually introduces support for R-Car S4 IPMMU.
The third part (commits #9-10) is misc changes I have locally.

The patch series is based on 4.16.0-rc4 branch and also available at [1].

Tested on Renesas Salvator-X board with H3 ES3.0 SoC (Gen3) and Renesas Spider
board with S4 SoC.

[1] https://github.com/otyshchenko1/xen/commits/s4_ipmmu_ml1

Oleksandr Tyshchenko (10):
  iommu/ipmmu-vmsa: Remove all unused register definitions
  iommu/ipmmu-vmsa: Add helper functions for MMU "context" registers
  iommu/ipmmu-vmsa: Add helper functions for "uTLB" registers
  iommu/ipmmu-vmsa: Add light version of Linux's ipmmu_features
  iommu/ipmmu-vmsa: Calculate context registers' offset instead of a
    macro
  iommu/ipmmu-vmsa: Add utlb_offset_base
  iommu/ipmmu-vmsa: Add Renesas R8A779F0 (R-Car S4) support
  iommu/ipmmu-vmsa: Set IPMMU bit IMSCTLR_USE_SECGRP to 0
  iommu/ipmmu-vmsa: Use refcount for the micro-TLBs
  iommu/arm: Remove code duplication in all IOMMU drivers

 xen/drivers/passthrough/Kconfig          |   6 +-
 xen/drivers/passthrough/arm/iommu.c      |   7 +
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 278 +++++++++++++++++++------------
 xen/drivers/passthrough/arm/smmu-v3.c    |  10 --
 xen/drivers/passthrough/arm/smmu.c       |  10 --
 5 files changed, 178 insertions(+), 133 deletions(-)

-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234021.406211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rj-0004xr-LB; Sat, 27 Nov 2021 17:51:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234021.406211; Sat, 27 Nov 2021 17:51:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rj-0004w9-1j; Sat, 27 Nov 2021 17:51:59 +0000
Received: by outflank-mailman (input) for mailman id 234021;
 Sat, 27 Nov 2021 17:51:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rh-0004Ih-CJ
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:57 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b680862a-4faa-11ec-976b-d102b41d0961;
 Sat, 27 Nov 2021 18:51:56 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id k37so32613100lfv.3
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:56 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.55
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b680862a-4faa-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=dtfeyRHebMlcl10xVwWyfn47FIgKMBc9tKO7DdPGuNk=;
        b=Kuoy10M2GVMPc/DLyV92XhRBKu1oetKKHZouKB4xhmG22hJ8XRv1Y3F+tWbUlaCQYB
         /QYEADs698QECXWxg1hchlVSOBP1yUNvEjnhdFPC6QD5Axs3kCUR0acovI0L1d3UXQsC
         Zqyvl6vtQrmY+rbsB076LkUUbeHCjR7RlAAgpokibB+UYQW8RAZJhBFWOVgiMrjLKOvM
         3mVlQxV36iAjZJazDL3i7K5dHBaYcsaWL/k5AfEs754euLyLkP/gr1BLFSj4qvzMkAMy
         vveR2/mkuOmUtfdpLSTfRPICp21xIzA9PqDi8LTu/+bRnZB9o5yON46cDNj90HVHfvr/
         X9eQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=dtfeyRHebMlcl10xVwWyfn47FIgKMBc9tKO7DdPGuNk=;
        b=s3cPKb7nnElYRpwOozmJuJoMlZVSQLvRI1jdNkK7PpRGpKQwYmQRsbS8aC5bpWxzJ/
         z9HKxdYXamXLQcqMkk2bDD4Sdb4WnG8YrUE4uTfkoZ7y7B4FbRPrzP3qfFJuRTP6682m
         56bxcHF5QxcB1wR3OBQjcCdXZ6uKH2rOBh2YhrxXeAESFxZUfcvSPKe9IJu3G/GwFn9R
         M3BGa8zR3EvZnL4x3AR9rWLRg3W0Ft9trl1Oe6Yp5pRm2aBqGrLA10IA/tnLXUCLlKrn
         N9dffAPQnIcWkKwtrxbCMMlQ41yq0rQqpPahrwCW3j4/nDE4k7Is3RR1uxiUSpEfCyJA
         jHNQ==
X-Gm-Message-State: AOAM530ZYWv3WSNJUlqwiMZtqlphNEIMvnQL6dOY4LMTquELh2D5TSZt
	ftKbx1j35dAltJpoEGcoYqBrfwclrFo=
X-Google-Smtp-Source: ABdhPJzMWLvRMudm97ubcULlgNgZHOkIpC398jyRErsvnGV1oHhEM+JhWsbw84Zdot73uTkXhqOi4w==
X-Received: by 2002:a05:6512:3d8c:: with SMTP id k12mr38698652lfv.365.1638035516219;
        Sat, 27 Nov 2021 09:51:56 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 06/10] iommu/ipmmu-vmsa: Add utlb_offset_base
Date: Sat, 27 Nov 2021 19:51:41 +0200
Message-Id: <1638035505-16931-7-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

This is a non-verbatim port of corresponding Linux upsteam commit:
1289f7f15001c7ed36be6d23cb145c1d5feacdc8

Original commit message:
 commit 1289f7f15001c7ed36be6d23cb145c1d5feacdc8
 Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
 Date:   Wed Nov 6 11:35:50 2019 +0900

  iommu/ipmmu-vmsa: Add utlb_offset_base

  Since we will have changed memory mapping of the IPMMU in the future,
  this patch adds a utlb_offset_base into struct ipmmu_features
  for IMUCTR and IMUASID registers. No behavior change.

  Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
  Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
  Signed-off-by: Joerg Roedel <jroedel@suse.de>

**********

This is a prereq work needed to add support for S4 series easily
in the future.

Almost the same change as original commit makes, but without updating
struct ipmmu_features_default which Xen driver doesn't have (there is
no support of old Arm32 based Gen2 SoCs).

No change in behavior.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index ca33456..d8f96fc 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -111,6 +111,7 @@ struct ipmmu_features {
     unsigned int num_utlbs;
     unsigned int ctx_offset_base;
     unsigned int ctx_offset_stride;
+    unsigned int utlb_offset_base;
 };
 
 /* Root/Cache IPMMU device's information */
@@ -374,7 +375,7 @@ static void ipmmu_ctx_write_all(struct ipmmu_vmsa_domain *domain,
 
 static uint32_t ipmmu_utlb_reg(struct ipmmu_vmsa_device *mmu, uint32_t reg)
 {
-    return reg;
+    return mmu->features->utlb_offset_base + reg;
 }
 
 static void ipmmu_imuasid_write(struct ipmmu_vmsa_device *mmu,
@@ -738,6 +739,7 @@ static const struct ipmmu_features ipmmu_features_rcar_gen3 = {
     .num_utlbs = 48,
     .ctx_offset_base = 0,
     .ctx_offset_stride = 0x40,
+    .utlb_offset_base = 0,
 };
 
 static void ipmmu_device_reset(struct ipmmu_vmsa_device *mmu)
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234023.406230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rk-0005Np-Te; Sat, 27 Nov 2021 17:52:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234023.406230; Sat, 27 Nov 2021 17:52:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rk-0005L7-G9; Sat, 27 Nov 2021 17:52:00 +0000
Received: by outflank-mailman (input) for mailman id 234023;
 Sat, 27 Nov 2021 17:51:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1ri-0004Ih-I1
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:58 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b70fe854-4faa-11ec-976b-d102b41d0961;
 Sat, 27 Nov 2021 18:51:57 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id u3so32562717lfl.2
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:57 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.56
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b70fe854-4faa-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=6dW0OZmNRebStbQFMM32RwjBwDJFFmt3LTZQMfVizWw=;
        b=jh3p8yv6Z9HWUYrl8v0MV5RoXvgJriZ2SQ2qUyEfV8MJudGYyjYZBc0LdjhjSL1KaZ
         o51oKlE9EwthkSnIoTFUL0o93rFZCfUMART9dX3OVg02SjdVZIpOpot0LHUlVPl4K5Sp
         TdeKGLW2ad186m7TUrnHpRR4ECAThtY9iQqR7NRQIVCvSxgr1LFTpnatN9njbwLY+L9z
         11o31+2JvQxupWl8nRXzJjz2YIA+AE9sqCO0riZx10KMtG/O9Z0dStqNiHReyQo+gTRI
         /O4i+Y2d4khjyg+2jOM05RDiai99QIaHpaKH1K0uTLd6LkVh30LR/GNW2JrJSjPO/T+W
         F0Sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=6dW0OZmNRebStbQFMM32RwjBwDJFFmt3LTZQMfVizWw=;
        b=fza3qQHP9TeWsxHCy6kvCfCTnkBx+x3uHsMSrPcCdL67xQUPJbr414e0cGlrbys2SV
         nLIJVqUPX3/4jBEOeLwMktcw1L96tAgcM8bEzZT/tnqpw3BYL/BdFx5VaWt4fjraOIS9
         i7WerYdCwDwV2qlIhdWW2U1RI2YkDO49UcBf3BZSPy+gHMzHn0yzVHdeovqyHbY4jmTd
         ijL4ESESrSY+mpB1RRiwK0qJM9oSxnn5T350ZceFd2ZKehWIAIHPI2q+F0ph6b2bzHBC
         2Vbf0OVk1cDWUCCGPXh0cnxR3vuY8yb5L4g8+yRv/9B/0dCMG2xKmAEUHdaMXov8saXd
         vbFQ==
X-Gm-Message-State: AOAM5309c2/PdOju1A701HHCfzyIlm4R/PffDnJTdTVaxCGw9wEPlgIO
	xZT7QaFBJP7BLdL+gmaniXHvE/YSLXM=
X-Google-Smtp-Source: ABdhPJw/TZIsXkeZbL/imr/4eb3AnmQ0TJreSbrco2NPGdcPdHSUB5wq92oMDcimEGE0Ps3+nKgwaQ==
X-Received: by 2002:ac2:4c0b:: with SMTP id t11mr37847197lfq.520.1638035517101;
        Sat, 27 Nov 2021 09:51:57 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Paul Durrant <paul@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH 07/10] iommu/ipmmu-vmsa: Add Renesas R8A779F0 (R-Car S4) support
Date: Sat, 27 Nov 2021 19:51:42 +0200
Message-Id: <1638035505-16931-8-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Based on the following commit from the Renesas BSP:
7003b9f732cffdc778fceb4bffb05ebb4540f726
located at:
https://github.com/renesas-rcar/linux-bsp/tree/v5.10.41/rcar-5.1.3.rc5

Original commit message:
 commit 7003b9f732cffdc778fceb4bffb05ebb4540f726
 Author: Nam Nguyen <nam.nguyen.yh@renesas.com>
 Date:   Thu Feb 4 11:05:37 2021 +0700

  iommu/ipmmu-vmsa: Add Renesas R8A779F0 (R-Car S4) support

  Adding IPMMU support for Renesas R8A779F0 R-Car S4.

  Suggested by: Hai Pham <hai.pham.ud@renesas.com>
  Signed-off-by: Nam Nguyen <nam.nguyen.yh@renesas.com>

**********

The R-Car S4 is an automotive System-on-Chip (SoC) for Car
Server/Communication Gateway and is one of the first products
in Renesas’ 4th-generation R-Car Family.

The integrated IOMMU HW is also VMSA-compatible and supports
stage 2 translation table format, therefore can be used with
current driver with slight modifications (thanks to the prereq
work).

In the context of Xen driver the main differences between Gen3
and S4 are the following:
- HW capacity was enlarged to support up to 16 IPMMU contexts
  (sets of page table) and up to 64 micro-TLBs per IPMMU device
- the memory mapped registers have different bases and offsets

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 xen/drivers/passthrough/Kconfig          |  6 +--
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 74 +++++++++++++++++++++++++-------
 2 files changed, 61 insertions(+), 19 deletions(-)

diff --git a/xen/drivers/passthrough/Kconfig b/xen/drivers/passthrough/Kconfig
index 09505aa..e1cb678 100644
--- a/xen/drivers/passthrough/Kconfig
+++ b/xen/drivers/passthrough/Kconfig
@@ -25,14 +25,14 @@ config ARM_SMMU_V3
 	 the ARM SMMUv3 architecture.
 
 config IPMMU_VMSA
-	bool "Renesas IPMMU-VMSA found in R-Car Gen3 SoCs"
+	bool "Renesas IPMMU-VMSA found in R-Car Gen3/S4 SoCs"
 	depends on ARM_64
 	---help---
 	  Support for implementations of the Renesas IPMMU-VMSA found
-	  in R-Car Gen3 SoCs.
+	  in R-Car Gen3/S4 SoCs.
 
 	  Say Y here if you are using newest R-Car Gen3 SoCs revisions
-	  (H3 ES3.0, M3-W+, etc) which IPMMU hardware supports stage 2
+	  (H3 ES3.0, M3-W+, etc) or S4 SoCs which IPMMU hardware supports stage 2
 	  translation table format and is able to use CPU's P2M table as is.
 
 endif
diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index d8f96fc..8dfdae8 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -1,15 +1,15 @@
 /*
  * xen/drivers/passthrough/arm/ipmmu-vmsa.c
  *
- * Driver for the Renesas IPMMU-VMSA found in R-Car Gen3 SoCs.
+ * Driver for the Renesas IPMMU-VMSA found in R-Car Gen3/S4 SoCs.
  *
  * The IPMMU-VMSA is VMSA-compatible I/O Memory Management Unit (IOMMU)
  * which provides address translation and access protection functionalities
  * to processing units and interconnect networks.
  *
  * Please note, current driver is supposed to work only with newest
- * R-Car Gen3 SoCs revisions which IPMMU hardware supports stage 2 translation
- * table format and is able to use CPU's P2M table as is.
+ * R-Car Gen3/S4 SoCs revisions which IPMMU hardware supports stage 2
+ * translation table format and is able to use CPU's P2M table as is.
  *
  * Based on Linux's IPMMU-VMSA driver from Renesas BSP:
  *    drivers/iommu/ipmmu-vmsa.c
@@ -20,9 +20,9 @@
  * and Xen's SMMU driver:
  *    xen/drivers/passthrough/arm/smmu.c
  *
- * Copyright (C) 2014-2019 Renesas Electronics Corporation
+ * Copyright (C) 2014-2021 Renesas Electronics Corporation
  *
- * Copyright (C) 2016-2019 EPAM Systems Inc.
+ * Copyright (C) 2016-2021 EPAM Systems Inc.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms and conditions of the GNU General Public
@@ -68,12 +68,18 @@
     dev_print(dev, XENLOG_ERR, fmt, ## __VA_ARGS__)
 
 /*
- * R-Car Gen3 SoCs make use of up to 8 IPMMU contexts (sets of page table) and
- * these can be managed independently. Each context is mapped to one Xen domain.
+ * R-Car Gen3/S4 SoCs make use of up to 16 IPMMU contexts (sets of page table)
+ * and these can be managed independently. Each context is mapped to one Xen
+ * domain.
  */
-#define IPMMU_CTX_MAX     8U
-/* R-Car Gen3 SoCs make use of up to 48 micro-TLBs per IPMMU device. */
-#define IPMMU_UTLB_MAX    48U
+#define IPMMU_CTX_MAX     16U
+/* R-Car Gen3/S4 SoCs make use of up to 64 micro-TLBs per IPMMU device. */
+#define IPMMU_UTLB_MAX    64U
+
+enum ipmmu_reg_layout {
+    IPMMU_REG_LAYOUT_RCAR_GEN3 = 0,
+    IPMMU_REG_LAYOUT_RCAR_S4,
+};
 
 /* IPMMU context supports IPA size up to 40 bit. */
 #define IPMMU_MAX_P2M_IPA_BITS    40
@@ -110,8 +116,12 @@ struct ipmmu_features {
     unsigned int number_of_contexts;
     unsigned int num_utlbs;
     unsigned int ctx_offset_base;
+    unsigned int ctx_offset_base_2;
     unsigned int ctx_offset_stride;
+    unsigned int ctx_offset_stride_adj;
     unsigned int utlb_offset_base;
+    unsigned int imuctr_ttsel_mask;
+    enum ipmmu_reg_layout reg_layout;
 };
 
 /* Root/Cache IPMMU device's information */
@@ -211,7 +221,6 @@ static DEFINE_SPINLOCK(ipmmu_devices_lock);
 #define IMUCTR0(n)             (0x0300 + ((n) * 16))
 #define IMUCTR32(n)            (0x0600 + (((n) - 32) * 16))
 #define IMUCTR_TTSEL_MMU(n)    ((n) << 4)
-#define IMUCTR_TTSEL_MASK      (15 << 4)
 #define IMUCTR_TTSEL_SHIFT     4
 #define IMUCTR_FLUSH           (1 << 1)
 #define IMUCTR_MMUEN           (1 << 0)
@@ -316,8 +325,15 @@ static void ipmmu_write(struct ipmmu_vmsa_device *mmu, uint32_t offset,
 static unsigned int ipmmu_ctx_reg(struct ipmmu_vmsa_device *mmu,
                                   unsigned int context_id, uint32_t reg)
 {
+    if ( mmu->features->reg_layout == IPMMU_REG_LAYOUT_RCAR_S4 &&
+         context_id >= 8 )
+        return mmu->features->ctx_offset_base_2 +
+            (context_id - 8) * mmu->features->ctx_offset_stride +
+            context_id * mmu->features->ctx_offset_stride_adj + reg;
+
     return mmu->features->ctx_offset_base +
-        context_id * mmu->features->ctx_offset_stride + reg;
+        context_id * mmu->features->ctx_offset_stride +
+        context_id * mmu->features->ctx_offset_stride_adj + reg;
 }
 
 static uint32_t ipmmu_ctx_read(struct ipmmu_vmsa_device *mmu,
@@ -448,7 +464,8 @@ static int ipmmu_utlb_enable(struct ipmmu_vmsa_domain *domain,
     {
         unsigned int context_id;
 
-        context_id = (imuctr & IMUCTR_TTSEL_MASK) >> IMUCTR_TTSEL_SHIFT;
+        context_id = (imuctr & mmu->features->imuctr_ttsel_mask) >>
+            IMUCTR_TTSEL_SHIFT;
         if ( domain->context_id != context_id )
         {
             dev_err(mmu->dev, "Micro-TLB %u already assigned to IPMMU context %u\n",
@@ -738,8 +755,23 @@ static const struct ipmmu_features ipmmu_features_rcar_gen3 = {
     .number_of_contexts = 8,
     .num_utlbs = 48,
     .ctx_offset_base = 0,
+    .ctx_offset_base_2 = 0,
     .ctx_offset_stride = 0x40,
+    .ctx_offset_stride_adj = 0,
     .utlb_offset_base = 0,
+    .imuctr_ttsel_mask = (15 << 4),
+};
+
+static const struct ipmmu_features ipmmu_features_rcar_s4 = {
+    .number_of_contexts = 16,
+    .num_utlbs = 64,
+    .ctx_offset_base = 0x10000,
+    .ctx_offset_base_2 = 0x10800,
+    .ctx_offset_stride = 0x40,
+    .ctx_offset_stride_adj = 0x1000,
+    .utlb_offset_base = 0x3000,
+    .imuctr_ttsel_mask = (31 << 4),
+    .reg_layout = IPMMU_REG_LAYOUT_RCAR_S4,
 };
 
 static void ipmmu_device_reset(struct ipmmu_vmsa_device *mmu)
@@ -751,11 +783,12 @@ static void ipmmu_device_reset(struct ipmmu_vmsa_device *mmu)
         ipmmu_ctx_write(mmu, i, IMCTR, 0);
 }
 
-/* R-Car Gen3 SoCs product and cut information. */
+/* R-Car Gen3/S4 SoCs product and cut information. */
 #define RCAR_PRODUCT_MASK    0x00007F00
 #define RCAR_PRODUCT_H3      0x00004F00
 #define RCAR_PRODUCT_M3W     0x00005200
 #define RCAR_PRODUCT_M3N     0x00005500
+#define RCAR_PRODUCT_S4      0x00005A00
 #define RCAR_CUT_MASK        0x000000FF
 #define RCAR_CUT_VER30       0x00000020
 
@@ -803,6 +836,10 @@ static __init bool ipmmu_stage2_supported(void)
         stage2_supported = true;
         break;
 
+    case RCAR_PRODUCT_S4:
+        stage2_supported = true;
+        break;
+
     default:
         printk(XENLOG_ERR "ipmmu: Unsupported SoC version\n");
         break;
@@ -831,6 +868,10 @@ static const struct dt_device_match ipmmu_dt_match[] __initconst =
         .compatible = "renesas,ipmmu-r8a77961",
         .data = &ipmmu_features_rcar_gen3,
     },
+    {
+        .compatible = "renesas,ipmmu-r8a779f0",
+        .data = &ipmmu_features_rcar_s4,
+    },
     { /* sentinel */ },
 };
 
@@ -845,6 +886,7 @@ static int ipmmu_probe(struct dt_device_node *node)
     const struct dt_device_match *match;
     struct ipmmu_vmsa_device *mmu;
     uint64_t addr, size;
+    uint32_t reg;
     int irq, ret;
 
     mmu = xzalloc(struct ipmmu_vmsa_device);
@@ -930,8 +972,8 @@ static int ipmmu_probe(struct dt_device_node *node)
          * Use stage 2 translation table format when stage 2 translation
          * enabled.
          */
-        ipmmu_write(mmu, IMSAUXCTLR,
-                    ipmmu_read(mmu, IMSAUXCTLR) | IMSAUXCTLR_S2PTE);
+        reg = IMSAUXCTLR + mmu->features->ctx_offset_stride_adj;
+        ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) | IMSAUXCTLR_S2PTE);
 
         dev_info(&node->dev, "IPMMU context 0 is reserved\n");
         set_bit(0, mmu->ctx);
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234020.406199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1ri-0004pb-RJ; Sat, 27 Nov 2021 17:51:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234020.406199; Sat, 27 Nov 2021 17:51:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1ri-0004nm-Is; Sat, 27 Nov 2021 17:51:58 +0000
Received: by outflank-mailman (input) for mailman id 234020;
 Sat, 27 Nov 2021 17:51:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rg-0004Ig-KO
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:56 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b537303f-4faa-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 18:51:54 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id z8so25423478ljz.9
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:54 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.53
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b537303f-4faa-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=Et3v4jLjdi8fSGHp23Qe3EkHAev8Ueklel0QLczpMUM=;
        b=U64ev8oTHyXDL2muWv1cpy2pJBIj0Kyp87u7bmi3fdqEkwImWKyWgzT/ltKEoPPcmv
         J6y5KUdNpzPoXzO0tv9baXsdRln2v8ZaMdXO0l5/GYNLyOlPMKM/QOOqoD0YcdI5AEfS
         ebKaznVduAVQZSwWq8a5VNR1ZKbYxLe1UGw05QdR74I0NWMs7StvXz1bZstqx8Qd19Lj
         CGEPcbuO+gfqv7TBgUpSk60n26iqbVZKJfqLnQhe08V1Xyqdif3OArJJg7KNcMfTjtjh
         AxD+VGDPcwth0ed252g255ty85WDnLC7IuvDCFl6OxNoLhWO7Aw4hGuwOBJcN7RX4ugk
         /bUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=Et3v4jLjdi8fSGHp23Qe3EkHAev8Ueklel0QLczpMUM=;
        b=3/+G71hT6kbc//+pkBt3wLV3jq3q2/uj46fDtCVJI47xt0kvFQx+kMuINACO7X55zG
         p/aL4fAef0FvgzXQGS9bdvitPGiNifgbLhxLqP3c2sVpP7nXzzHhJ4KtlI8kE4jOAYrL
         l0nQABRKP1VQneye9RfdCsUIL0XCD6JAs/Tj52G33V7TR1xWexmLY6NqeOtfEkFCDw2i
         cUhE48Y1mkTb57XDzsjqEO4tH1m6dtu3QZjQfZMfBaWR1Z4qcgcVnIw72CYk16H6JC9v
         v8E0lh1zz3sR7wpxrr6Rp5om+ySzKWi7MieI1iqKx80qGERu8xhAFaUYQB2asppgZbX2
         sZuA==
X-Gm-Message-State: AOAM532XHF3D+8v/WPeKjY5Md1wIymdUZQVk3b6aVZYLoowbve0g8Cve
	ExNwNeJ3BsImjvWFvbCYZUf5YsKFldM=
X-Google-Smtp-Source: ABdhPJyYlKaSkhQ0ma7fmWjzSH0FeT7SxyshUlGwhaV7a1JZTamSeMui13rEZ/4tuA/DCOcqAOrbiQ==
X-Received: by 2002:a2e:22c3:: with SMTP id i186mr5622886lji.417.1638035514119;
        Sat, 27 Nov 2021 09:51:54 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 03/10] iommu/ipmmu-vmsa: Add helper functions for "uTLB" registers
Date: Sat, 27 Nov 2021 19:51:38 +0200
Message-Id: <1638035505-16931-4-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

This is a non-verbatim port of corresponding Linux upsteam commit:
3667c9978b2911dc1ded77f5971df477885409c4

Original commit message:
 commit 3667c9978b2911dc1ded77f5971df477885409c4
 Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
 Date:   Wed Nov 6 11:35:49 2019 +0900

  iommu/ipmmu-vmsa: Add helper functions for "uTLB" registers

  Since we will have changed memory mapping of the IPMMU in the future,
  This patch adds helper functions ipmmu_utlb_reg() and
  ipmmu_imu{asid,ctr}_write() for "uTLB" registers. No behavior change.

  Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
  Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
  Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
  Signed-off-by: Joerg Roedel <jroedel@suse.de>

**********

This is a prereq work needed to add support for S4 series easily
in the future.

Besides changes done in the original commit, we also need to introduce
ipmmu_imuctr_read() since Xen driver contains an additional logic in
ipmmu_utlb_enable() to prevent the use cases where devices which use
the same micro-TLB are assigned to different Xen domains.

No change in behavior.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 33 +++++++++++++++++++++++++++-----
 1 file changed, 28 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index ce5c3bc..1b94af2 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -366,6 +366,29 @@ static void ipmmu_ctx_write_all(struct ipmmu_vmsa_domain *domain,
     ipmmu_ctx_write_root(domain, reg, data);
 }
 
+static uint32_t ipmmu_utlb_reg(struct ipmmu_vmsa_device *mmu, uint32_t reg)
+{
+    return reg;
+}
+
+static void ipmmu_imuasid_write(struct ipmmu_vmsa_device *mmu,
+                                unsigned int utlb, uint32_t data)
+{
+    ipmmu_write(mmu, ipmmu_utlb_reg(mmu, IMUASID(utlb)), data);
+}
+
+static void ipmmu_imuctr_write(struct ipmmu_vmsa_device *mmu,
+                               unsigned int utlb, uint32_t data)
+{
+    ipmmu_write(mmu, ipmmu_utlb_reg(mmu, IMUCTR(utlb)), data);
+}
+
+static uint32_t ipmmu_imuctr_read(struct ipmmu_vmsa_device *mmu,
+                                  unsigned int utlb)
+{
+    return ipmmu_read(mmu, ipmmu_utlb_reg(mmu, IMUCTR(utlb)));
+}
+
 /* TLB and micro-TLB Management */
 
 /* Wait for any pending TLB invalidations to complete. */
@@ -413,7 +436,7 @@ static int ipmmu_utlb_enable(struct ipmmu_vmsa_domain *domain,
      * context_id for already enabled micro-TLB and prevent different context
      * bank from being set.
      */
-    imuctr = ipmmu_read(mmu, IMUCTR(utlb));
+    imuctr = ipmmu_imuctr_read(mmu, utlb);
     if ( imuctr & IMUCTR_MMUEN )
     {
         unsigned int context_id;
@@ -431,9 +454,9 @@ static int ipmmu_utlb_enable(struct ipmmu_vmsa_domain *domain,
      * TODO: Reference-count the micro-TLB as several bus masters can be
      * connected to the same micro-TLB.
      */
-    ipmmu_write(mmu, IMUASID(utlb), 0);
-    ipmmu_write(mmu, IMUCTR(utlb), imuctr |
-                IMUCTR_TTSEL_MMU(domain->context_id) | IMUCTR_MMUEN);
+    ipmmu_imuasid_write(mmu, utlb, 0);
+    ipmmu_imuctr_write(mmu, utlb, imuctr |
+                       IMUCTR_TTSEL_MMU(domain->context_id) | IMUCTR_MMUEN);
 
     return 0;
 }
@@ -444,7 +467,7 @@ static void ipmmu_utlb_disable(struct ipmmu_vmsa_domain *domain,
 {
     struct ipmmu_vmsa_device *mmu = domain->mmu;
 
-    ipmmu_write(mmu, IMUCTR(utlb), 0);
+    ipmmu_imuctr_write(mmu, utlb, 0);
 }
 
 /* Domain/Context Management */
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234024.406237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rl-0005gC-SW; Sat, 27 Nov 2021 17:52:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234024.406237; Sat, 27 Nov 2021 17:52:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rl-0005a2-Cx; Sat, 27 Nov 2021 17:52:01 +0000
Received: by outflank-mailman (input) for mailman id 234024;
 Sat, 27 Nov 2021 17:51:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rj-0004Ih-70
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:59 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b76e45a3-4faa-11ec-976b-d102b41d0961;
 Sat, 27 Nov 2021 18:51:58 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id t11so25402118ljh.6
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:58 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.57
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b76e45a3-4faa-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=9mwKxUIwhhcxHHJvoR//K+R5uyZjNpj3vGJfrB5GvpE=;
        b=qDeQAJJ31P7G7QELGdWqVpRKdBqwlB1dl4ZaEtNbeanyul9cN5u+XKjwuE3kLD8pMk
         /ArkzsiQlMqYSryeb6gcaem2YrsYapAj6wDRivNekiyAXVIX4rTkVImheWkBaaNHe2db
         vXzMOHihqaeAvU4py1v+r1MUeNqagliEcbzyzQtivgruVHm4mT0rrkIPzEmNHL58iHX9
         IyQnUdoBu5QTr4sHDZZoCFu2j6sP6wRiJo+eWBiM6LEczjcvEmisqscRs9smH90/1Ika
         5If9mFKok1p0C7I3MGWs4fag2r6fiuxDyMawcur//wIaxVATtcVT0VpoXy3G38C4SJmh
         B/0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=9mwKxUIwhhcxHHJvoR//K+R5uyZjNpj3vGJfrB5GvpE=;
        b=antodVBPpdietpaYh0WRVLk+ga0wHJYJaMBmO+TkYuO7gslmqgcdRclehSJXt+HPwf
         Ue3VU3v3m8QsKH9hw3C2m6h1Kw4kXcM6x+lkukQNz5p+3Pj0cdz2aFXgC8PG5IITcqc2
         t6tiKBiTAIxkEtCXAinsvPk+oKwefwBNJ/CInfzlV3d6uKMY7MhnGk4UuCn8y92OarD1
         CH11nocCW90fwWmiJWFTwrj0IYiQeHdKSVBUBABhfw+ILyvH/JITmBlaf+g8fuyitTLN
         o5LxsJUCb5O9dK1c/36GZDY5KLRqNUpO78dW6vN35ypyZH7qvkWUsa3W7FCHyexLYoGY
         NYXg==
X-Gm-Message-State: AOAM531Vpp9QS2r6rgkEAsiBWSPcIUzynKfU7IwS9u6uarpaS8I60jFh
	WBLRLAKXvPcfvOuBkhzxw4nMSWEKybI=
X-Google-Smtp-Source: ABdhPJzwRSgX3LO7rkTFBgXUFHakRdHRaiO5rIt2ufLYVazG5ZhRv4hKgatv+rgHZrI0MwnNO98nCg==
X-Received: by 2002:a2e:95cb:: with SMTP id y11mr38339192ljh.461.1638035517879;
        Sat, 27 Nov 2021 09:51:57 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 08/10] iommu/ipmmu-vmsa: Set IPMMU bit IMSCTLR_USE_SECGRP to 0
Date: Sat, 27 Nov 2021 19:51:43 +0200
Message-Id: <1638035505-16931-9-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Based on the following commits from the Renesas BSP:
8fba83d97cca709a05139c38e29408e81ed4cf62
a8d93bc07da89a7fcf4d85f34d119a030310efa5
located at:
https://github.com/renesas-rcar/linux-bsp/tree/v5.10.41/rcar-5.1.3.rc5

Original commit messages:
 commit 8fba83d97cca709a05139c38e29408e81ed4cf62
 Author: Nam Nguyen <nam.nguyen.yh@renesas.com>
 Date:   Wed Apr 28 18:54:44 2021 +0700

  iommu/ipmmu-vmsa: Set IPMMU bit IMSCTLR_USE_SECGRP to 0

  Need to set bit IMSCTLR_USE_SECGRP to 0
  because H/W initial value is unknown, without this
  dma-transfer cannot be done due to address translation doesn't work.

  Signed-off-by: Nam Nguyen <nam.nguyen.yh@renesas.com>

 commit a8d93bc07da89a7fcf4d85f34d119a030310efa5
 Author: Nam Nguyen <nam.nguyen.yh@renesas.com>
 Date:   Tue Sep 7 14:46:12 2021 +0700

  iommu/ipmmu-vmsa: Update IMSCTLR register offset address for R-Car S4

  Update IMSCTLR register offset address to align with R-Car S4 H/W UM.

  Signed-off-by: Nam Nguyen <nam.nguyen.yh@renesas.com>

**********

It is still a question whether this really needs to be done in Xen,
rather in firmware, but better to be on the safe side. After all,
if firmware already takes care of clearing this bit, nothing bad
will happen.

Please note the following:
1. I decided to squash both commits since the first commit adds clearing
code and only the second one makes it functional on S4. Moreover, this is
not a direct port. So it would be better to introduce complete solution
by a single patch.
2. Although patch indeed does what it claims in the subject,
the implementation is different in comparison with original changes.
On Linux the clearing is done at runtime in ipmmu_domain_setup_context().
On Xen the clearing is done at boot time in ipmmu_probe().
The IMSCTLR is not a MMU "context" register at all, so I think there is
no point in performing the clearing each time we initialize the context,
instead perform the clearing at once during initialization.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index 8dfdae8..22dd84e 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -229,6 +229,9 @@ static DEFINE_SPINLOCK(ipmmu_devices_lock);
 #define IMUASID0(n)            (0x0308 + ((n) * 16))
 #define IMUASID32(n)           (0x0608 + (((n) - 32) * 16))
 
+#define IMSCTLR             0x0500
+#define IMSCTLR_USE_SECGRP  (1 << 28)
+
 #define IMSAUXCTLR          0x0504
 #define IMSAUXCTLR_S2PTE    (1 << 3)
 
@@ -979,6 +982,10 @@ static int ipmmu_probe(struct dt_device_node *node)
         set_bit(0, mmu->ctx);
     }
 
+    /* Do not use security group function. */
+    reg = IMSCTLR + mmu->features->ctx_offset_stride_adj;
+    ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) & ~IMSCTLR_USE_SECGRP);
+
     spin_lock(&ipmmu_devices_lock);
     list_add(&mmu->list, &ipmmu_devices);
     spin_unlock(&ipmmu_devices_lock);
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234017.406177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rh-0004LL-Bh; Sat, 27 Nov 2021 17:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234017.406177; Sat, 27 Nov 2021 17:51:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rh-0004Ks-6B; Sat, 27 Nov 2021 17:51:57 +0000
Received: by outflank-mailman (input) for mailman id 234017;
 Sat, 27 Nov 2021 17:51:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rf-0004Ig-Ms
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:55 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b449780a-4faa-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 18:51:53 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id k23so25480743lje.1
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:53 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.51
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b449780a-4faa-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=GyZI1+Iat4XdZ6VPRnWotiSDzyjOZAJMfAPkaOP1WWE=;
        b=eJYVKQ0aCYesxd6zdCnArGmY1WtNhgDxSSwMt0o0w3y7nfEtAlcGhe0FR0hL3lpuZv
         lszyjfZJ5Af+SDJfu0K9T5cfqOlESJt4VJfkjCGgsmzzEPHwKvbHPEWqUyv6HqeMff/j
         hsD9tPaiioHDgIO3qPetapcFLXjlTUPTSHOh8DrphIMveBiJP39uy39K4x5xW5+QRAkt
         SH0PW3PAmFBYr1h2L/Ave3kFzLD+QCbLWEQj9Pz34bhhf+zr5nUL6D4tc92jDp9RwdNy
         3R5Q5JCVNVgt9GUqo77FjxYFLHfEiR6dpjF6OzAOz52xsoYQIAZCpsABsmFtugyYCDtr
         qNXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=GyZI1+Iat4XdZ6VPRnWotiSDzyjOZAJMfAPkaOP1WWE=;
        b=OsMzCbCIczCxULZPDyJkT23wE3WTJQo8Ky/wIgCCogzqedLiH1gVjOrW0BQ8Kd+4C9
         EdlRjgI5Jcltq+hw3I1Gh3UNKjHEBcpOEg8T4lCo5LVeXfGGAS8sRIljmuif4dD6/JMr
         MFJhSuOg05EGU8t++odr4F6UdWY/rYpqEeLrzY5jouuJXMeBWgGWQu3lW2orvG+yz/aS
         H/lHwP/I21ZzADcsi4vHUDnzFLXQaLNSv9yABcPrmzJAQhSFRGjvshF59dcP6QUg73/4
         xlkwE/idpmYiR/kuc5EtEdrmjm8mUM3Ju/qKYmvQIBOHPKo0daUyBsNzB4EvpQpbh6Hc
         WkvA==
X-Gm-Message-State: AOAM530uRtWE09Yp1ou9Mb3mUu8MqVlWYWGz4IAmmHgMoRIkQssBJO/A
	jv2V8ZeQGfkQPVBgVqk4hB92oB81vlc=
X-Google-Smtp-Source: ABdhPJxPyv3BkEg54MwpUymK6UdUKc9azxkcUcAcBPYU2VdPt0g5/rHKrC+8FsxrVDEQqUZM1PCQBg==
X-Received: by 2002:a05:651c:4d3:: with SMTP id e19mr38651451lji.164.1638035512500;
        Sat, 27 Nov 2021 09:51:52 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 01/10] iommu/ipmmu-vmsa: Remove all unused register definitions
Date: Sat, 27 Nov 2021 19:51:36 +0200
Message-Id: <1638035505-16931-2-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

This is a non-verbatim port of corresponding Linux upsteam commit:
77cf983892b2e0d40dc256b784930a9ffaad4fc8

Original commit message:
 commit 77cf983892b2e0d40dc256b784930a9ffaad4fc8
 Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
 Date:   Wed Nov 6 11:35:45 2019 +0900

  iommu/ipmmu-vmsa: Remove all unused register definitions

  To support different registers memory mapping hardware easily
  in the future, this patch removes all unused register
  definitions.

  Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
  Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
  Signed-off-by: Joerg Roedel <jroedel@suse.de>

**********

This is a prereq work needed to add support for S4 series easily
in the future.

Although Linux and Xen drivers have a lot in common, the main
differences are in translation stages (table formats), VMSAv8 modes,
supported SoC generations, etc, therefore that's why there is
a slight difference in registers/bits each driver considers unused.

No change in behavior.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 59 ++------------------------------
 1 file changed, 2 insertions(+), 57 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index 1255b0d..4a8a974 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -166,15 +166,11 @@ static DEFINE_SPINLOCK(ipmmu_devices_lock);
 
 #define IMCTR                0x0000
 /*
- * These fields are implemented in IPMMU-MM only. So, can be set for
+ * This field is implemented in IPMMU-MM only. So, can be set for
  * Root IPMMU only.
  */
 #define IMCTR_VA64           (1 << 29)
-#define IMCTR_TRE            (1 << 17)
-#define IMCTR_AFE            (1 << 16)
-#define IMCTR_RTSEL_MASK     (3 << 4)
-#define IMCTR_RTSEL_SHIFT    4
-#define IMCTR_TREN           (1 << 3)
+
 /*
  * These fields are common for all IPMMU devices. So, can be set for
  * Cache IPMMUs as well.
@@ -184,42 +180,9 @@ static DEFINE_SPINLOCK(ipmmu_devices_lock);
 #define IMCTR_MMUEN          (1 << 0)
 #define IMCTR_COMMON_MASK    (7 << 0)
 
-#define IMCAAR               0x0004
-
 #define IMTTBCR                        0x0008
 #define IMTTBCR_EAE                    (1U << 31)
 #define IMTTBCR_PMB                    (1 << 30)
-#define IMTTBCR_SH1_NON_SHAREABLE      (0 << 28)
-#define IMTTBCR_SH1_OUTER_SHAREABLE    (2 << 28)
-#define IMTTBCR_SH1_INNER_SHAREABLE    (3 << 28)
-#define IMTTBCR_SH1_MASK               (3 << 28)
-#define IMTTBCR_ORGN1_NC               (0 << 26)
-#define IMTTBCR_ORGN1_WB_WA            (1 << 26)
-#define IMTTBCR_ORGN1_WT               (2 << 26)
-#define IMTTBCR_ORGN1_WB               (3 << 26)
-#define IMTTBCR_ORGN1_MASK             (3 << 26)
-#define IMTTBCR_IRGN1_NC               (0 << 24)
-#define IMTTBCR_IRGN1_WB_WA            (1 << 24)
-#define IMTTBCR_IRGN1_WT               (2 << 24)
-#define IMTTBCR_IRGN1_WB               (3 << 24)
-#define IMTTBCR_IRGN1_MASK             (3 << 24)
-#define IMTTBCR_TSZ1_MASK              (0x1f << 16)
-#define IMTTBCR_TSZ1_SHIFT             16
-#define IMTTBCR_SH0_NON_SHAREABLE      (0 << 12)
-#define IMTTBCR_SH0_OUTER_SHAREABLE    (2 << 12)
-#define IMTTBCR_SH0_INNER_SHAREABLE    (3 << 12)
-#define IMTTBCR_SH0_MASK               (3 << 12)
-#define IMTTBCR_ORGN0_NC               (0 << 10)
-#define IMTTBCR_ORGN0_WB_WA            (1 << 10)
-#define IMTTBCR_ORGN0_WT               (2 << 10)
-#define IMTTBCR_ORGN0_WB               (3 << 10)
-#define IMTTBCR_ORGN0_MASK             (3 << 10)
-#define IMTTBCR_IRGN0_NC               (0 << 8)
-#define IMTTBCR_IRGN0_WB_WA            (1 << 8)
-#define IMTTBCR_IRGN0_WT               (2 << 8)
-#define IMTTBCR_IRGN0_WB               (3 << 8)
-#define IMTTBCR_IRGN0_MASK             (3 << 8)
-#define IMTTBCR_SL0_LVL_2              (0 << 6)
 #define IMTTBCR_SL0_LVL_1              (1 << 6)
 #define IMTTBCR_TSZ0_MASK              (0x1f << 0)
 #define IMTTBCR_TSZ0_SHIFT             0
@@ -228,18 +191,8 @@ static DEFINE_SPINLOCK(ipmmu_devices_lock);
 #define IMTTLBR0_TTBR_MASK    (0xfffff << 12)
 #define IMTTUBR0              0x0014
 #define IMTTUBR0_TTBR_MASK    (0xff << 0)
-#define IMTTLBR1              0x0018
-#define IMTTLBR1_TTBR_MASK    (0xfffff << 12)
-#define IMTTUBR1              0x001c
-#define IMTTUBR1_TTBR_MASK    (0xff << 0)
 
 #define IMSTR                          0x0020
-#define IMSTR_ERRLVL_MASK              (3 << 12)
-#define IMSTR_ERRLVL_SHIFT             12
-#define IMSTR_ERRCODE_TLB_FORMAT       (1 << 8)
-#define IMSTR_ERRCODE_ACCESS_PERM      (4 << 8)
-#define IMSTR_ERRCODE_SECURE_ACCESS    (5 << 8)
-#define IMSTR_ERRCODE_MASK             (7 << 8)
 #define IMSTR_MHIT                     (1 << 4)
 #define IMSTR_ABORT                    (1 << 2)
 #define IMSTR_PF                       (1 << 1)
@@ -251,11 +204,7 @@ static DEFINE_SPINLOCK(ipmmu_devices_lock);
 #define IMUCTR(n)              ((n) < 32 ? IMUCTR0(n) : IMUCTR32(n))
 #define IMUCTR0(n)             (0x0300 + ((n) * 16))
 #define IMUCTR32(n)            (0x0600 + (((n) - 32) * 16))
-#define IMUCTR_FIXADDEN        (1U << 31)
-#define IMUCTR_FIXADD_MASK     (0xff << 16)
-#define IMUCTR_FIXADD_SHIFT    16
 #define IMUCTR_TTSEL_MMU(n)    ((n) << 4)
-#define IMUCTR_TTSEL_PMB       (8 << 4)
 #define IMUCTR_TTSEL_MASK      (15 << 4)
 #define IMUCTR_TTSEL_SHIFT     4
 #define IMUCTR_FLUSH           (1 << 1)
@@ -264,10 +213,6 @@ static DEFINE_SPINLOCK(ipmmu_devices_lock);
 #define IMUASID(n)             ((n) < 32 ? IMUASID0(n) : IMUASID32(n))
 #define IMUASID0(n)            (0x0308 + ((n) * 16))
 #define IMUASID32(n)           (0x0608 + (((n) - 32) * 16))
-#define IMUASID_ASID8_MASK     (0xff << 8)
-#define IMUASID_ASID8_SHIFT    8
-#define IMUASID_ASID0_MASK     (0xff << 0)
-#define IMUASID_ASID0_SHIFT    0
 
 #define IMSAUXCTLR          0x0504
 #define IMSAUXCTLR_S2PTE    (1 << 3)
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234026.406263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1ro-0006JF-Mq; Sat, 27 Nov 2021 17:52:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234026.406263; Sat, 27 Nov 2021 17:52:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rn-0006FF-Vj; Sat, 27 Nov 2021 17:52:04 +0000
Received: by outflank-mailman (input) for mailman id 234026;
 Sat, 27 Nov 2021 17:52:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rk-0004Ih-Rn
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:52:00 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b877781f-4faa-11ec-976b-d102b41d0961;
 Sat, 27 Nov 2021 18:52:00 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id i63so25447941lji.3
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:52:00 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.58
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b877781f-4faa-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=FyIIWAAFmJxixgOyTM6dxQSE4aN0oIOcdU1AbmFPmek=;
        b=GHsGKs1gXcGqMfXG6bbH/OmtpfRJ6f2IBuERRrno5etnJdsPQLsI7Zs6gb00nQb9Wd
         XaMJpZi9bTfkDhrSfhB/PG+F8dXHayOi2JOp7GNHOamHCd/UofJg44rdM0MapglzdlnF
         UT+akpTYovZ/8ECMghVsw9rP0YIekBJjNETH0T0VpcfAKSWmHKVr6cCTMERyVtFXZhGN
         BIEqBwwWOYGzQqHHvIfEmzI1tQrdCkt+SguEBW0VVHonIvzTZW8vaYdniC8kmCvBTkKp
         Bn0asH/tij+CiphOUhMsuEeiPNTYrUJGLVpdw+2YlxHZM3msFn4M8Z2PX7viB001V+Kp
         xemw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=FyIIWAAFmJxixgOyTM6dxQSE4aN0oIOcdU1AbmFPmek=;
        b=mMHhlfhJq7wjk3wX+zB7ZaEftrlzZP2nZoLcN+8OJ4RvU4DzaQ9SyAD8le8duWLuQ7
         JnRmz3X0fHG5L9cqGdompJgUJaBhPSy7yJgoRoaLcR9R+GRGxlkwR2UdjO6TU0zs2Kmb
         T6oS0v5aQr6QJUKc4ukJko/KzUmJPQnD/5OoB3KW3jebg1asebW+DiPiKAtQ1vOMdpV8
         erpWa2aZ79MdDUN2r8/eWiAKfWNElILiTj5YPpNl4FmZ9IHOXMOE0WYOB+SjRnEWQ3R/
         Y8YBdnhoL2DbSsn0cH7PJJkEC2A4SHI4T/FBv6EnQcKK5yqeZtcd3pSv4bXAiptUzJjM
         7A7Q==
X-Gm-Message-State: AOAM530eNFzAlB2Zltmq9pS1UABtA2DPgKSrYf9QVUj9J0HTdmSwCRJW
	xCNG+tmnXzMVwQ3yGVxO4HZtGeg9fxQ=
X-Google-Smtp-Source: ABdhPJzjMZrfxBLx7Z7zAyGCtcqtbrTb3ahQJT7JKt23e9NahIdg8jbACgJGDRuhTOvxmSfSnkckbQ==
X-Received: by 2002:a2e:bb98:: with SMTP id y24mr10661874lje.315.1638035519303;
        Sat, 27 Nov 2021 09:51:59 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Rahul Singh <rahul.singh@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 10/10] iommu/arm: Remove code duplication in all IOMMU drivers
Date: Sat, 27 Nov 2021 19:51:45 +0200
Message-Id: <1638035505-16931-11-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

All IOMMU drivers on Arm perform almost the same generic actions in
hwdom_init callback. Move this code to common arch_iommu_hwdom_init()
in order to get rid of code duplication.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 xen/drivers/passthrough/arm/iommu.c      |  7 +++++++
 xen/drivers/passthrough/arm/ipmmu-vmsa.c |  8 --------
 xen/drivers/passthrough/arm/smmu-v3.c    | 10 ----------
 xen/drivers/passthrough/arm/smmu.c       | 10 ----------
 4 files changed, 7 insertions(+), 28 deletions(-)

diff --git a/xen/drivers/passthrough/arm/iommu.c b/xen/drivers/passthrough/arm/iommu.c
index ee653a9..fc45318 100644
--- a/xen/drivers/passthrough/arm/iommu.c
+++ b/xen/drivers/passthrough/arm/iommu.c
@@ -134,6 +134,13 @@ void arch_iommu_domain_destroy(struct domain *d)
 
 void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 {
+    /* Set to false options not supported on ARM. */
+    if ( iommu_hwdom_inclusive )
+        printk(XENLOG_WARNING "map-inclusive dom0-iommu option is not supported on ARM\n");
+    iommu_hwdom_inclusive = false;
+    if ( iommu_hwdom_reserved == 1 )
+        printk(XENLOG_WARNING "map-reserved dom0-iommu option is not supported on ARM\n");
+    iommu_hwdom_reserved = 0;
 }
 
 /*
diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index 32609f8..451fc21 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -1336,14 +1336,6 @@ static int ipmmu_iommu_domain_init(struct domain *d)
 
 static void __hwdom_init ipmmu_iommu_hwdom_init(struct domain *d)
 {
-    /* Set to false options not supported on ARM. */
-    if ( iommu_hwdom_inclusive )
-        printk(XENLOG_WARNING "ipmmu: map-inclusive dom0-iommu option is not supported on ARM\n");
-    iommu_hwdom_inclusive = false;
-    if ( iommu_hwdom_reserved == 1 )
-        printk(XENLOG_WARNING "ipmmu: map-reserved dom0-iommu option is not supported on ARM\n");
-    iommu_hwdom_reserved = 0;
-
     arch_iommu_hwdom_init(d);
 }
 
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index d115df7..ca8b5c7 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -3404,16 +3404,6 @@ static int arm_smmu_iommu_xen_domain_init(struct domain *d)
 
 static void __hwdom_init arm_smmu_iommu_hwdom_init(struct domain *d)
 {
-	/* Set to false options not supported on ARM. */
-	if (iommu_hwdom_inclusive)
-		printk(XENLOG_WARNING
-		"map-inclusive dom0-iommu option is not supported on ARM\n");
-	iommu_hwdom_inclusive = false;
-	if (iommu_hwdom_reserved == 1)
-		printk(XENLOG_WARNING
-		"map-reserved dom0-iommu option is not supported on ARM\n");
-	iommu_hwdom_reserved = 0;
-
 	arch_iommu_hwdom_init(d);
 }
 
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index c9dfc4c..ec18df7 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -2851,16 +2851,6 @@ static int arm_smmu_iommu_domain_init(struct domain *d)
 
 static void __hwdom_init arm_smmu_iommu_hwdom_init(struct domain *d)
 {
-	/* Set to false options not supported on ARM. */
-	if ( iommu_hwdom_inclusive )
-		printk(XENLOG_WARNING
-		"map-inclusive dom0-iommu option is not supported on ARM\n");
-	iommu_hwdom_inclusive = false;
-	if ( iommu_hwdom_reserved == 1 )
-		printk(XENLOG_WARNING
-		"map-reserved dom0-iommu option is not supported on ARM\n");
-	iommu_hwdom_reserved = 0;
-
 	arch_iommu_hwdom_init(d);
 }
 
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 17:52:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 17:52:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234025.406249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rn-0005zi-4P; Sat, 27 Nov 2021 17:52:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234025.406249; Sat, 27 Nov 2021 17:52:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr1rm-0005vN-O4; Sat, 27 Nov 2021 17:52:02 +0000
Received: by outflank-mailman (input) for mailman id 234025;
 Sat, 27 Nov 2021 17:52:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BaOL=QO=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mr1rj-0004Ig-OI
 for xen-devel@lists.xenproject.org; Sat, 27 Nov 2021 17:51:59 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7db9b79-4faa-11ec-b941-1df2895da90e;
 Sat, 27 Nov 2021 18:51:59 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id l22so32523574lfg.7
 for <xen-devel@lists.xenproject.org>; Sat, 27 Nov 2021 09:51:59 -0800 (PST)
Received: from otyshchenko.router ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id f18sm827075ljc.104.2021.11.27.09.51.57
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 27 Nov 2021 09:51:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7db9b79-4faa-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references;
        bh=2J9/qwJjzL1vy0hvabGaR4en8taUbQNdDtr6iBACZRU=;
        b=BtBsFq74Y6vVV5z3EGw5Q8X/k/ZggHQUkBWk3YD2BpquPPvebfxJ7V2SodyTff6/ad
         nxbAG+IPeEB8DhtvtHNcDI0tDtjLDafxSokUPzfemqzDBRXPMdBtVJCsfor09UYIMgZ9
         a39ejS2BlunDOIIGofTcxjhwb9kUfpIurujLkJVGfgENP3xvV/4W4hCSnNVnVkJ9M/7P
         oRuP092PAvNZJEKcd/pyKlyzil1rzsOzonrkPjM+Q4A04tWs3wLJFHzyz8X4AfoPB0Jt
         G2m8GbPBrJf6+fbl6L6Rc1waGSMJ957VSRo1lPVyM1q6E8meJYHzo63Bpn0pFEeto1O8
         XLcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references;
        bh=2J9/qwJjzL1vy0hvabGaR4en8taUbQNdDtr6iBACZRU=;
        b=jwQ9nSbT9AboHeJp6AzmRAfZVfmbcHdisY/302VhJdczjyjgyBZ54URl4WvmBu0XrD
         SFRgVDqjd27fLFRQGSFPeQ4Yw5C8FolC7Rnv7lrYp+gdmgWMKyc+LLWJN91QkXy+916n
         r0LOCZpTTyfttGELjv1LBdiktl71UgtXSvGKZ7VxM3SczsKMKr290ljUToZb79LSuiUF
         LQtj0cYCPNWbg9SkltoakZ7Zm3xNTtkrGvoFGDTgfnnE2TVAlyCR4Z1M1TtrKYLc2efI
         xERl+0VsO6ojIXo5fPiozVKsECaHyOxgPXb5agy0SPhxJgPBHPUwch/OenVh8QHPDZHY
         iOYQ==
X-Gm-Message-State: AOAM530oxSJD0xQH9j7D3CwWottf2KEhyBkr3UlpZVORcjZDJLRlyA4B
	F+NF4tAYOoMGZ3EvwaacQgn5O/Sy44s=
X-Google-Smtp-Source: ABdhPJzRAgmVvEZRPEQsyvpTeU07E/9l7RI9tG/ffWq//vqNRNWFQk9exo+DCDQM70ASOm68dF3Q5g==
X-Received: by 2002:a05:6512:2255:: with SMTP id i21mr37246692lfu.438.1638035518550;
        Sat, 27 Nov 2021 09:51:58 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Subject: [PATCH 09/10] iommu/ipmmu-vmsa: Use refcount for the micro-TLBs
Date: Sat, 27 Nov 2021 19:51:44 +0200
Message-Id: <1638035505-16931-10-git-send-email-olekstysh@gmail.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>
References: <1638035505-16931-1-git-send-email-olekstysh@gmail.com>

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Reference-count the micro-TLBs as several bus masters can be
connected to the same micro-TLB (and drop TODO comment).
This wasn't an issue so far, since the platform devices
(this driver deals with) get assigned/deassigned together during
domain creation/destruction. But, in order to support PCI devices
(which are hot-pluggable) in the near future we will need to
take care of.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index 22dd84e..32609f8 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -134,6 +134,7 @@ struct ipmmu_vmsa_device {
     spinlock_t lock;    /* Protects ctx and domains[] */
     DECLARE_BITMAP(ctx, IPMMU_CTX_MAX);
     struct ipmmu_vmsa_domain *domains[IPMMU_CTX_MAX];
+    unsigned int utlb_refcount[IPMMU_UTLB_MAX];
     const struct ipmmu_features *features;
 };
 
@@ -477,13 +478,12 @@ static int ipmmu_utlb_enable(struct ipmmu_vmsa_domain *domain,
         }
     }
 
-    /*
-     * TODO: Reference-count the micro-TLB as several bus masters can be
-     * connected to the same micro-TLB.
-     */
-    ipmmu_imuasid_write(mmu, utlb, 0);
-    ipmmu_imuctr_write(mmu, utlb, imuctr |
-                       IMUCTR_TTSEL_MMU(domain->context_id) | IMUCTR_MMUEN);
+    if ( mmu->utlb_refcount[utlb]++ == 0 )
+    {
+        ipmmu_imuasid_write(mmu, utlb, 0);
+        ipmmu_imuctr_write(mmu, utlb, imuctr |
+                           IMUCTR_TTSEL_MMU(domain->context_id) | IMUCTR_MMUEN);
+    }
 
     return 0;
 }
@@ -494,7 +494,8 @@ static void ipmmu_utlb_disable(struct ipmmu_vmsa_domain *domain,
 {
     struct ipmmu_vmsa_device *mmu = domain->mmu;
 
-    ipmmu_imuctr_write(mmu, utlb, 0);
+    if ( --mmu->utlb_refcount[utlb] == 0 )
+        ipmmu_imuctr_write(mmu, utlb, 0);
 }
 
 /* Domain/Context Management */
-- 
2.7.4



From xen-devel-bounces@lists.xenproject.org Sat Nov 27 18:07:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Nov 2021 18:07:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234078.406292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr26S-0003bP-Fp; Sat, 27 Nov 2021 18:07:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234078.406292; Sat, 27 Nov 2021 18:07:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr26S-0003bI-Cr; Sat, 27 Nov 2021 18:07:12 +0000
Received: by outflank-mailman (input) for mailman id 234078;
 Sat, 27 Nov 2021 18:07:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mr26R-0003b8-8P; Sat, 27 Nov 2021 18:07:11 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mr26Q-0000bB-RI; Sat, 27 Nov 2021 18:07:10 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mr26Q-0007Ac-FS; Sat, 27 Nov 2021 18:07:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mr26Q-0005w2-Ek; Sat, 27 Nov 2021 18:07:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=RjJvhmfxLaDCXxv6UAJAhfX2Tl2N4jHmTEW5h9tORK8=; b=kBftsEmLSxexTnBSKTnt8p9aqc
	FYTpKQVuNiIMLpcrQgJ9R62uAeqqXhI3tj3qXvPVLfnpqc1k9RtuvCOaQZQalTWxhkvpq9FA+p+0z
	tUgkxS7CcUDnF/jW2ZoGxEYxxWUGlXCchBcoykhM4rK5YrBY7s5GeDyLrXwoqc3It9Wk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166922-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166922: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=1bff7d7e8c487b9b0ceab70b43b781f1d45f55eb
X-Osstest-Versions-That:
    linux=5f53fa508db098c9d372423a6dac31c8a5679cdf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Nov 2021 18:07:10 +0000

flight 166922 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166922/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166380
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166380
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166380
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166380
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166380
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166380
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166380
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166380
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                1bff7d7e8c487b9b0ceab70b43b781f1d45f55eb
baseline version:
 linux                5f53fa508db098c9d372423a6dac31c8a5679cdf

Last test of basis   166380  2021-11-25 06:37:51 Z    2 days
Testing same since   166922  2021-11-26 19:30:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abel Vesa <abel.vesa@nxp.com>
  Adrian Hunter <adrian.hunter@intel.com>
  Albert Wang <albertccwang@google.com>
  Alex Deucher <alexander.deucher@amd.com>
  André Almeida <andrealmeid@collabora.com>
  Arnd Bergmann <arnd@arndb.de>
  Ben Skeggs <bskeggs@redhat.com>
  Bokun Zhang <bokun.zhang@amd.com>
  Boris Ostrovsky <boris.ostrovsky@oracle.com>
  Chanho Park <chanho61.park@samsung.com>
  Christian Brauner <christian.brauner@ubuntu.com>
  Christian König <christian.koenig@amd.com>
  Christian Lamparter <chunkeey@gmail.com>
  Christoph Hellwig <hch@lst.de>
  Christophe JAILLET <christophe.jaillet@wanadoo.fr>
  Cristian Marussi <cristian.marussi@arm.com>
  Dan Carpenter <dan.carpenter@oracle.com>
  Daniel Wheeler <daniel.wheeler@amd.com>
  Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
  Daniele Palmas <dnlplm@gmail.com>
  Dave Airlie <airlied@redhat.com>
  Deepak Rawat <drawat.floss@gmail.com>
  Dinh Nguyen <dinguyen@kernel.org>
  Dmitry Osipenko <digetx@gmail.com>
  Enzo Matsumiya <ematsumiya@suse.de>
  Evan Quan <evan.quan@amd.com>
  Fabio Aiuto <fabioaiuto83@gmail.com>
  Fabio M. De Francesco <fmdefrancesco@gmail.com>
  Felix Kuehling <Felix.Kuehling@amd.com>
  Florian Fainelli <f.fainelli@gmail.com>
  Geert Uytterhoeven <geert@linux-m68k.org>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Hans de Goede <hdegoede@redhat.com>
  Hector Martin <marcan@marcan.st>
  Heikki Krogerus <heikki.krogerus@linux.intel.com>
  Jarkko Nikula <jarkko.nikula@linux.intel.com>
  Jean Delvare <jdelvare@suse.de>
  Jens Axboe <axboe@kernel.dk>
  Jens Wiklander <jens.wiklander@linaro.org>
  Jie Deng <jie.deng@intel.com>
  Joel Stanley <joel@jms.id.au>
  Johan Hovold <johan@kernel.org>
  Jon Hunter <jonathanh@nvidia.com>
  Juergen Gross <jgross@suse.com>
  Kamal Mostafa <kamal@canonical.com>
  Karol Herbst <kherbst@redhat.com>
  Klaus Jensen <k.jensen@samsung.com>
  Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  Larry Finger <Larry.Finger@lwfinger.net>
  Lijo Lazar <lijo.lazar@amd.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Luben Tuikov <luben.tuikov@amd.com>
  Lv Ruyi <lv.ruyi@zte.com.cn>
  Marek Szyprowski <m.szyprowski@samsung.com>
  Mark Rutland <mark.rutland@arm.com>
  Mathias Nyman <mathias.nyman@linux.intel.com>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Maurizio Lombardi <mlombard@redhat.com>
  Max Filippov <jcmvbkbc@gmail.com>
  Maxime Ripard <maxime@cerno.tech>
  Michael Ellerman <mpe@ellerman.id.au> (powerpc)
  Michael Kelley <mikelley@microsoft.com>
  Michael S. Tsirkin <mst@redhat.com>
  Michael Straube <straube.linux@gmail.com>
  Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
  Ming Lei <ming.lei@redhat.com>
  Mingjie Zhang <superzmj@fibocom.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Mohammed Gamal <mgamal@redhat.com>
  Nathan Chancellor <nathan@kernel.org>
  Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
  Nicolas Chauvet <kwizart@gmail.com> # T124 TK1
  Nishanth Menon <nm@ti.com>
  Noralf Trønnes <noralf@tronnes.org>
  Ondrej Jirman <megous@megous.com>
  Oskar Senft <osk@google.com>
  Pavel Begunkov <asml.silence@gmail.com>
  Peng Fan <peng.fan@nxp.com>
  Philip Yang <Philip.Yang@amd.com>
  Pingfan Liu <kernelfans@gmail.com>
  Qingqing Zhuo <qingqing.zhuo@amd.com>
  Rob Herring <robh@kernel.org>
  Rodrigo Vivi <rodrigo.vivi@intel.com>
  Sam Ravnborg <sam@ravnborg.org>
  Santosh Shilimkar <ssantosh@kernel.org>
  shaoyunl <shaoyun.liu@amd.com>
  Shyam Prasad N <sprasad@microsoft.com>
  Stefano Stabellini <stefano.stabellini@xilinx.com>
  Steve French <stfrench@microsoft.com>
  Sudeep Holla <sudeep.holla@arm.com>
  Sugaya Taichi <sugaya.taichi@socionext.com>
  Takashi Iwai <tiwai@suse.de>
  Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
  Thierry Reding <treding@nvidia.com>
  Thierry Reding <treding@nvidia.com> # Tegra CI
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Graichen <thomas.graichen@gmail.com> # T124 Nyan Big
  Tim Harvey <tharvey@gateworks.com>
  Todd Kjos <tkjos@google.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Varun Prakash <varun@chelsio.com>
  Vincent Guittot <vincent.guittot@linaro.org>
  Vincent Whitchurch <vincent.whitchurch@axis.com>
  Will Deacon <will@kernel.org>
  Wolfram Sang <wsa@kernel.org>
  xinhui pan <xinhui.pan@amd.com>
  Yang Guang <yang.guang5@zte.com.cn>
  Yang Wang <KevinYang.Wang@amd.com>
  Yi-Ling Chen <Yi-Ling.Chen2@amd.com>
  Yong Wu <yong.wu@mediatek.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   5f53fa508db0..1bff7d7e8c48  1bff7d7e8c487b9b0ceab70b43b781f1d45f55eb -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 00:09:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 00:09:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234099.406310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr7k1-0002Ci-IO; Sun, 28 Nov 2021 00:08:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234099.406310; Sun, 28 Nov 2021 00:08:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr7k1-0002Cb-EE; Sun, 28 Nov 2021 00:08:25 +0000
Received: by outflank-mailman (input) for mailman id 234099;
 Sun, 28 Nov 2021 00:08:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CKfp=QP=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1mr7jz-0002CV-Qv
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 00:08:24 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060c.outbound.protection.outlook.com
 [2a01:111:f400:7e88::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a735617-4fdf-11ec-976b-d102b41d0961;
 Sun, 28 Nov 2021 01:08:21 +0100 (CET)
Received: from BL0PR12MB5506.namprd12.prod.outlook.com (2603:10b6:208:1cb::22)
 by BL1PR12MB5080.namprd12.prod.outlook.com (2603:10b6:208:30a::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Sun, 28 Nov
 2021 00:08:15 +0000
Received: from BL0PR12MB5506.namprd12.prod.outlook.com
 ([fe80::5897:83b2:a704:7909]) by BL0PR12MB5506.namprd12.prod.outlook.com
 ([fe80::5897:83b2:a704:7909%8]) with mapi id 15.20.4734.023; Sun, 28 Nov 2021
 00:08:15 +0000
Received: from mlx.ziepe.ca (142.162.113.129) by
 MN2PR11CA0016.namprd11.prod.outlook.com (2603:10b6:208:23b::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Sun, 28 Nov 2021 00:08:14 +0000
Received: from jgg by mlx with local (Exim 4.94)	(envelope-from
 <jgg@nvidia.com>)	id 1mr7jp-003n9O-MC; Sat, 27 Nov 2021 20:08:13 -0400
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a735617-4fdf-11ec-976b-d102b41d0961
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OwWXat6A8f77a1be4zN8r/W7UCTCFCivHEsJTo2KzaMI43ALhEoG9APFH+uJenG7WRkOUCKy5rGKKgl4B6owou6LoukxjO+IAnq5x3V6C6oz34LjeUY6MClO689f00Jh03HajKPXQ3Tb+cQcpL7eDEZyU/1Ao9O1rb69YRvwY5wYn4kIGOP+kvobg5Zgkqry9ND3RVWKsb9t0RoNb9qBFMeu763nkTU1CcCrB7QG+9EM0g9oDidPHKgiUFD5/jYxfPdTdA/6v8Q8aHcZ/LQZ2DdBk73CkJ68PawicBBFZWkvAf1vmKFSX/VVM5rOwO1zsZwBQIJApHredUcfyrnOdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/pVvssknBhQqmkjfnAH5n58/RZ+BO9TWp89tWLupnzQ=;
 b=P/hkSjwfJGBTpTJXufoHTH7AtR2UVP7ItmyXw5kSPTC0iTP4VwSGnKtS4bvo4LhSHGdFfoaMhTgqZTh3+ZISzPc+XtsTuetK6jp5XpLAXfUIE/hYPQXcPYroK2ysamuO6nliyy0g40MGQSzu6AmnU2KZkSHwHnxfbmFWfKbn/twMd13edddm14tDnxgEfwYbIum275bEiO7gtU/bsa+it2LvS9h00GNaRNP4kvBHQVRBVxYvHKqQdRqpXo2MYVFL0fPCy+w2c6U0SyYhb8BgC3d95nFiqdMU6v3zEBzTsfGoemvTHaZNC+2WzCIM79db8vDmvTIF2e/U7yWj4kBtjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/pVvssknBhQqmkjfnAH5n58/RZ+BO9TWp89tWLupnzQ=;
 b=RVDBhQIJLpb/y3N2LbOgQo7eiW0h6ojygnfnOpizZ2NyZmxrVovkV7yJuJbE/Ahsq7bTG4Peu/BfoSgEq9A5WvGqFT0yJNzeEEEfDqHn6dPUAPfSOu7Bnq5DtAllCXDidCMPESU2Vo+stMR8f6yqnz3tk8QF08xSRLRCyA43RdvGT0BhxgjiipAkme3i+qCDmfFOQxZa344PBHduNACryrSAkB9tX1+zwtFiF3dUo94flyVCe67w8nvAQ53oCx0yMs6h1E6qzvBSTZtqr4bayHTJFWAIraIAhv/PVP5/JYlWMU69JAhm71rIy4ECQJGE6VyT4VJ6UNG0tyB1XsYXjA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Sat, 27 Nov 2021 20:08:13 -0400
From: Jason Gunthorpe <jgg@nvidia.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>, Bjorn Helgaas <helgaas@kernel.org>,
	Marc Zygnier <maz@kernel.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	Kevin Tian <kevin.tian@intel.com>, Megha Dey <megha.dey@intel.com>,
	Ashok Raj <ashok.raj@intel.com>, linux-pci@vger.kernel.org,
	Michael Ellerman <mpe@ellerman.id.au>,
	Paul Mackerras <paulus@samba.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linuxppc-dev@lists.ozlabs.org,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	linux-mips@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	sparclinux@vger.kernel.org, x86@kernel.org,
	xen-devel@lists.xenproject.org, ath11k@lists.infradead.org,
	Wei Liu <wei.liu@kernel.org>, linux-hyperv@vger.kernel.org,
	Juergen Gross <jgross@suse.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>
Subject: Re: [patch 00/22] genirq/msi, PCI/MSI: Spring cleaning - Part 1
Message-ID: <20211128000813.GS4670@nvidia.com>
References: <20211126222700.862407977@linutronix.de>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211126222700.862407977@linutronix.de>
X-ClientProxiedBy: MN2PR11CA0016.namprd11.prod.outlook.com
 (2603:10b6:208:23b::21) To BL0PR12MB5506.namprd12.prod.outlook.com
 (2603:10b6:208:1cb::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 50ccafd9-0d25-48b3-c9df-08d9b2032c60
X-MS-TrafficTypeDiagnostic: BL1PR12MB5080:
X-Microsoft-Antispam-PRVS:
 <BL1PR12MB5080742C64AE7A468452A1C9C2659@BL1PR12MB5080.namprd12.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	MCH67MnKWwoeJ0tJBUuCQtLpOse7q2gKhtHcZ9w4HVT9WLdyV6PDyjjzhRxGHcn1YhsXHnEm38E01Izt9ff6llf8Q3/ZVS3SHbOy1QUg7ZXp5IHSr6m4OiE7Iip6xKIF6BP6fLwGT9b3DbdiSv+JPtjKP6GknFIZP09Cf3qirh9eRARcpKThk4zj8bU7FcG1z6rxPoaNvLiuFGXUyJBSjB9D3VvsAk9gFNDRatiB2lsUu5XrFAFQwKDCXI3ZDPsyncKCILtridE0wmFzwksd59bDSy2IiZfO13XX82Tr/Bygxfl41gHHEEaweudYBMPx9VBvhRRjShfP9I4AlxYrDm1qpl2p3w9lPaZq/aMhJxX4uHcr5PR3La/0TsecikyEZvlAjXHGRt8sraUonrazIKOp1dVQ9omcSvL+gowlW2l37OX+aVgrR9jn5fw3svsbtQ7yZysn1CX9wvmC0Fm0XvfITmM3GrceITHiuXzzRIRnVIV1c/+0ntPNBh20S9GU0spzIBkpgEItTX1eiWgGIF501zcTvDigMeEAYaj1376VEzgzcvICDse+mpfI2wggPhiVYJ8Rg9eZYr/KjN2YRajKKOAKPCStk7LtAKEWfaIB+0+xz2hCmzan8KIWw46Hm6gSJN04AFB19Uvnv0RMHQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB5506.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(316002)(6916009)(1076003)(36756003)(8676002)(2616005)(2906002)(426003)(9746002)(5660300002)(508600001)(7416002)(83380400001)(9786002)(8936002)(4326008)(33656002)(86362001)(186003)(38100700002)(66556008)(66476007)(26005)(54906003)(66946007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?vUZwGTckNFwtDHLpp8y68okFCMHSSqDEP2vmNjrr6VWsoONo5iK+BFLRuK/+?=
 =?us-ascii?Q?zc+UsCbFZfwgHkdDYCBbzdLpod8RhooTjzyuiPFGIU/B9JAx42nsQOURYYF0?=
 =?us-ascii?Q?/7H+3j0qC6XIzfP+CTH8rYFge05Tm9GZKaP2bYd9A+MnFRZCHkzwkxhcen76?=
 =?us-ascii?Q?0rdbS8rmAOzS0NbkdtifZdRszQCFPAwxhyRGrPFUKnfdOzvwHj8j9LxDCXrg?=
 =?us-ascii?Q?6pVWQFZNjb2bLR8DAd0JJK0HQEdDpLBkeGTplFqYpdHV10rFQiSNOMZ1iOa/?=
 =?us-ascii?Q?oPjSlchM4dbFODya1Lb8TwYrpfsE5nr9rqY8CfGPn5YULdvG9iM8EnMZ1obq?=
 =?us-ascii?Q?dk5+6YBl2wcudgAi49Dx4m+1lL1rnHewAxGLL3G0vu1bKBqFCubFDN12yQg8?=
 =?us-ascii?Q?FNvVaueuWrA+qSYKx8edbOuIzsRcNDET0yQHWs/SywnR3iRvOf690ukf8qP/?=
 =?us-ascii?Q?Mm+NUCHkpN9CM4wJX0wgpKbfKbsQzNrf8IfDZ7rIv0MGEg+VtBfAaKPR95KJ?=
 =?us-ascii?Q?lEhk3decDeRZB5Bjs1a2IFq/IhrmSpd/Anf6Q4+UDpJvFCZE4vRQ7QNOZIcw?=
 =?us-ascii?Q?9PqPupphnqEVTXzDRuR+MScsy66X6qDHLUM0omg2xVSWGlyq/JCRKBw6rgyu?=
 =?us-ascii?Q?8sMSL5L4VyHW4P6yZ/iTeb+5FmtEQBaOH3tMaUZz0zbdcLodmfyJ/LYBokmk?=
 =?us-ascii?Q?K2dHFvr19g1Lvpvc4mHrjcUJxzDCdbJNmuk25u/EN2648vfc5IHmkRNOu0/0?=
 =?us-ascii?Q?Fo6yRikSczn+NlItKqDK2aLoY3AysUZ8sG0P4J92yV1g4KRPs8WxulK6htDP?=
 =?us-ascii?Q?zgcQEn+AA8XIe1JGGPTcZSNrcePOPEorVEDIvv1YzY55RvFVzjQUYxId+T0o?=
 =?us-ascii?Q?KAuTccqXq6prZYKFp/7P/ncx9XRAKwchMBu8iux+Goe8mKn742tkuItafklG?=
 =?us-ascii?Q?Z7pyi4d8uvY8Whq4O4L+gdYYd22QxMMSggA+fgiSIVwnmvrCnbCkygYwZBPJ?=
 =?us-ascii?Q?QaqDZjdm9j/me2mASEp7tPHNkasRfGJ0Uf7VEb8C2ixA01TZB2RdeGQwbxnM?=
 =?us-ascii?Q?CaA66SHSrILKwav0Spi2AzIxDo3aul4UKSnTL3K/twUV6S7NsNCTvu/Qko8Y?=
 =?us-ascii?Q?VXgMe6mV82/WeHoKS0S+ssocDdytgZ8G4ZwySJxpKuFtY/IJCql0PKSw3KAG?=
 =?us-ascii?Q?PAmC+eS4YH+lvSiPOdChM+w5ICxWz+in6BGZnGO0JzUrBEBhcH4ufQm3pLkC?=
 =?us-ascii?Q?vkZkobKtuHhO5owViup90DzMJC6jFx+dZMLzivhW7XgkLkpk7Kt+k8csozzv?=
 =?us-ascii?Q?TtB4dlRwnelTePkLTn1AAJ3Lkk5DCtuq+bHwjZ5gfU84NAQvxkhUMNUGnXXC?=
 =?us-ascii?Q?0XgYbp7gPW8MwZvXEWYWYUbanV6lYCrtKD+8gIK4lqt3JUrJJSQCHw8VzZ79?=
 =?us-ascii?Q?Dfp0nf+Qvn24AqVjh/ZC/t0yQ3e0jzoW/BrGYETnMjfp6B0sbVDBwbRasjXw?=
 =?us-ascii?Q?sYmd9E32yVQ5+xW//CLD7cYgUEyPwH5Zukdhk8ZNYyDWrFTftgPmgtyIfcgK?=
 =?us-ascii?Q?/3Z6HeQPURCRkqBr+Rw=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 50ccafd9-0d25-48b3-c9df-08d9b2032c60
X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB5506.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2021 00:08:15.0505
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /J4TPudRgMIfuhU0HwQ/2RR9GYPr9SHY8H5kT0rLiX1UHTG8TZiZUz4yF4x9T+FI
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5080

On Sat, Nov 27, 2021 at 02:18:34AM +0100, Thomas Gleixner wrote:
> The [PCI] MSI code has gained quite some warts over time. A recent
> discussion unearthed a shortcoming: the lack of support for expanding
> PCI/MSI-X vectors after initialization of MSI-X.
> 
> PCI/MSI-X has no requirement to setup all vectors when MSI-X is enabled in
> the device. The non-used vectors have just to be masked in the vector
> table. For PCI/MSI this is not possible because the number of vectors
> cannot be changed after initialization.
> 
> The PCI/MSI code, but also the core MSI irq domain code are built around
> the assumption that all required vectors are installed at initialization
> time and freed when the device is shut down by the driver.
> 
> Supporting dynamic expansion at least for MSI-X is important for VFIO so
> that the host side interrupts for passthrough devices can be installed on
> demand.
> 
> This is the first part of a large (total 101 patches) series which
> refactors the [PCI]MSI infrastructure to make runtime expansion of MSI-X
> vectors possible. The last part (10 patches) provide this functionality.
> 
> The first part is mostly a cleanup which consolidates code, moves the PCI
> MSI code into a separate directory and splits it up into several parts.
> 
> No functional change intended except for patch 2/N which changes the
> behaviour of pci_get_vector()/affinity() to get rid of the assumption that
> the provided index is the "index" into the descriptor list instead of using
> it as the actual MSI[X] index as seen by the hardware. This would break
> users of sparse allocated MSI-X entries, but non of them use these
> functions.

I don't know all the irqdomain stuff all that well anymore, but I read
through all the patches and only noticed a small spello

[patch 02/22] PCI/MSI: Fix pci_irq_vector()/pci_irq_get_attinity()
                                                         ^^^^ ff

It all seems good, I especially like the splitting of msi.c and
removal of ops..

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 00:43:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 00:43:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234106.406320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr8I2-0006CL-Ic; Sun, 28 Nov 2021 00:43:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234106.406320; Sun, 28 Nov 2021 00:43:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr8I2-0006CE-Ez; Sun, 28 Nov 2021 00:43:34 +0000
Received: by outflank-mailman (input) for mailman id 234106;
 Sun, 28 Nov 2021 00:43:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LJYX=QP=rere.qmqm.pl=mirq-linux@srs-se1.protection.inumbo.net>)
 id 1mr8I0-0006C8-7a
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 00:43:32 +0000
Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34cb207b-4fe4-11ec-976b-d102b41d0961;
 Sun, 28 Nov 2021 01:43:30 +0100 (CET)
Received: from remote.user (localhost [127.0.0.1])
 by rere.qmqm.pl (Postfix) with ESMTPSA id 4J1qTm1DhtzNL;
 Sun, 28 Nov 2021 01:43:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34cb207b-4fe4-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1;
	t=1638060207; bh=ymi2rjesYlmYsrxY12X8vblXPJWiCK3o6T/SGnAjDZo=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=C6SfBZOFpiANlfwmDvX4OuIMVOJSlYKPAQ7cePS7VCRqQvRDRXyoU4e1HDyFW5286
	 aMp77cXaWF2QuMJ//PO7Wx9adwPHxvzWlhsVptz1Bv8pKTYitnPzWsGYgxjQNrOvV7
	 Uk484prqIxJAORTEmmGB3fc8u4Kn87uEVHmrPcrNw+TikFuKmaRxmZpfI/D7x9DxOR
	 HEK/DHm3KCkqlnpSbmB87Uzzanvh59D/q1WHxqRBbTNokUG7ZgWXQQKaJ+DCHFVboG
	 CiQGnas3tcMmGH5URTeE0feIhbti0vtOii+M7lKOB+wnpM9RCc3cCyDZ3xGFva1jKa
	 oHCSKPMXxlqVw==
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.103.3 at mail
Date: Sun, 28 Nov 2021 01:43:22 +0100
From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= <mirq-linux@rere.qmqm.pl>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH v4 08/25] kernel: Add combined power-off+restart handler
 call chain API
Message-ID: <YaLQqks8cB0vWp6Q@qmqm.qmqm.pl>
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-9-digetx@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211126180101.27818-9-digetx@gmail.com>

On Fri, Nov 26, 2021 at 09:00:44PM +0300, Dmitry Osipenko wrote:
> SoC platforms often have multiple ways of how to perform system's
> power-off and restart operations. Meanwhile today's kernel is limited to
> a single option. Add combined power-off+restart handler call chain API,
> which is inspired by the restart API. The new API provides both power-off
> and restart functionality.
> 
> The old pm_power_off method will be kept around till all users are
> converted to the new API.
> 
> Current restart API will be replaced by the new unified API since
> new API is its superset. The restart functionality of the sys-off handler
> API is built upon the existing restart-notifier APIs.
> 
> In order to ease conversion to the new API, convenient helpers are added
> for the common use-cases. They will reduce amount of boilerplate code and
> remove global variables. These helpers preserve old behaviour for cases
> where only one power-off handler is expected, this is what all existing
> drivers want, and thus, they could be easily converted to the new API.
> Users of the new API should explicitly enable power-off chaining by
> setting corresponding flag of the power_handler structure.
[...]

Hi,

A general question: do we really need three distinct chains for this?
Can't there be only one that chain of callbacks that get a stage
(RESTART_PREPARE, RESTART, POWER_OFF_PREPARE, POWER_OFF) and can ignore
them at will? Calling through POWER_OFF_PREPARE would also return
whether that POWER_OFF is possible (for kernel_can_power_off()).

I would also split this patch into preparation cleanups (like wrapping
pm_power_off call with a function) and adding the notifier-based
implementation.

Best Regards
MichaMirosaw


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 00:48:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 00:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234112.406331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr8MZ-0006qx-4W; Sun, 28 Nov 2021 00:48:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234112.406331; Sun, 28 Nov 2021 00:48:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr8MZ-0006qq-1W; Sun, 28 Nov 2021 00:48:15 +0000
Received: by outflank-mailman (input) for mailman id 234112;
 Sun, 28 Nov 2021 00:48:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LJYX=QP=rere.qmqm.pl=mirq-linux@srs-se1.protection.inumbo.net>)
 id 1mr8MX-0006qk-Hp
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 00:48:13 +0000
Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd2e4ee5-4fe4-11ec-976b-d102b41d0961;
 Sun, 28 Nov 2021 01:48:12 +0100 (CET)
Received: from remote.user (localhost [127.0.0.1])
 by rere.qmqm.pl (Postfix) with ESMTPSA id 4J1q8r4xRGz9Y;
 Sun, 28 Nov 2021 01:28:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd2e4ee5-4fe4-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1;
	t=1638059340; bh=BpCUv6sc6+ijt8bP2X1dBPBQztb08CMPEjcmSI4mWHs=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=E2pJXVdwpF7xa7NgJpuaA7I4sUgCSxdIM51ma240k1OvyN0BqmbHCll/qibc7LmRW
	 l2lYyRdiOG0LzZZRcQGCbOEp7l5l7FW2EF13o78tAxh2BlfQLPIqSf2RtHjwNL3AHE
	 ag5QLlLhW95Kp8fH9dCV3j4Imx5XQ5T4nV1vyleMAzKz1Soq6c6OnKpJ5TdzfdwJ2G
	 LnQoKtgUWmpQEblg3IMnaxzgslueaP8apjKdZ9y96JJ35QjeXKQSawNEPmoxjBztTd
	 XADr6Ffb3r0e7Kv67f/UCkeky+8m4GCPkGRqXkdYh2BWzTit8bUIHp4dPNUh/LgLHY
	 SH/yCd1X39o+Q==
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.103.3 at mail
Date: Sun, 28 Nov 2021 01:28:40 +0100
From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= <mirq-linux@rere.qmqm.pl>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH v4 05/25] reboot: Warn if restart handler has duplicated
 priority
Message-ID: <YaLNOJTM+lVq+YNS@qmqm.qmqm.pl>
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-6-digetx@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211126180101.27818-6-digetx@gmail.com>

On Fri, Nov 26, 2021 at 09:00:41PM +0300, Dmitry Osipenko wrote:
> Add sanity check which ensures that there are no two restart handlers
> registered with the same priority. Normally it's a direct sign of a
> problem if two handlers use the same priority.

The patch doesn't ensure the property that there are no duplicated-priority
entries on the chain.

I'd rather see a atomic_notifier_chain_register_unique() that returns
-EBUSY or something istead of adding an entry with duplicate priority.
That way it would need only one list traversal unless you want to
register the duplicate anyway (then you would call the older
atomic_notifier_chain_register() after reporting the error).

(Or you could return > 0 when a duplicate is registered in
atomic_notifier_chain_register() if the callers are prepared
for that. I don't really like this way, though.)

Best Regards
Micha Mirosaw


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 01:16:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 01:16:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234118.406342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr8nU-0003Y0-Bl; Sun, 28 Nov 2021 01:16:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234118.406342; Sun, 28 Nov 2021 01:16:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr8nU-0003Xt-8g; Sun, 28 Nov 2021 01:16:04 +0000
Received: by outflank-mailman (input) for mailman id 234118;
 Sun, 28 Nov 2021 01:16:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LJYX=QP=rere.qmqm.pl=mirq-linux@srs-se1.protection.inumbo.net>)
 id 1mr8nS-0003Xn-4W
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 01:16:02 +0000
Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd89b162-4fe8-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 02:16:00 +0100 (CET)
Received: from remote.user (localhost [127.0.0.1])
 by rere.qmqm.pl (Postfix) with ESMTPSA id 4J1rCD4tJRz9Y;
 Sun, 28 Nov 2021 02:15:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd89b162-4fe8-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1;
	t=1638062155; bh=/7+VGRKxSD8xhQyHeA7wxZc9qtdjiI1iETTVe9pYPLI=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=oXqLZE7x4BBzR6RgITz19akH85JDkj2nuDH72AAzGlf1Y19/zRhLT/EYzkjxSquZY
	 lQDmdeOlt8p2X8CEQglQKE82HPyr+MOsLSpQnGJ3s5n+8hbJIsMdPOKL4fZcMf0jgO
	 CJ7+TE23XroAl9jtGHsf4Kws8DhnEqHir6C7zTLETfSX3VrDeoLBt5clA/cf/ZoC7B
	 31pS0P4z0OUxVHiLECVTcCPYSnqvN5IbEtxNoArldRfYbOgq5wGXjBIkaa3TdqpC0q
	 PWCaSN/jTI85sRsru7LR0d1SZHbfWHN7MsxouM8JlzJ+q5vzkEduCAsbuKP/U7sT2N
	 iLQXxOKkkTf7g==
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.103.3 at mail
Date: Sun, 28 Nov 2021 02:15:51 +0100
From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= <mirq-linux@rere.qmqm.pl>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH v4 18/25] x86: Use do_kernel_power_off()
Message-ID: <YaLYR24XRijSmBq3@qmqm.qmqm.pl>
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-19-digetx@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211126180101.27818-19-digetx@gmail.com>

On Fri, Nov 26, 2021 at 09:00:54PM +0300, Dmitry Osipenko wrote:
> Kernel now supports chained power-off handlers. Use do_kernel_power_off()
> that invokes chained power-off handlers. It also invokes legacy
> pm_power_off() for now, which will be removed once all drivers will
> be converted to the new power-off API.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  arch/x86/kernel/reboot.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
> index 0a40df66a40d..cd7d9416d81a 100644
> --- a/arch/x86/kernel/reboot.c
> +++ b/arch/x86/kernel/reboot.c
> @@ -747,10 +747,10 @@ static void native_machine_halt(void)
>  
>  static void native_machine_power_off(void)
>  {
> -	if (pm_power_off) {
> +	if (kernel_can_power_off()) {
>  		if (!reboot_force)
>  			machine_shutdown();
> -		pm_power_off();
> +		do_kernel_power_off();
>  	}

Judging from an old commit from 2006 [1], this can be rewritten as:

if (!reboot_force && kernel_can_power_off())
	machine_shutdown();
do_kernel_power_off();

And maybe later reworked so it doesn't need kernel_can_power_off().

[1] http://lkml.iu.edu/hypermail//linux/kernel/0511.3/0681.html

Best Regards
Micha Mirosaw


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 01:23:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 01:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234123.406354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr8v0-0004y0-3f; Sun, 28 Nov 2021 01:23:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234123.406354; Sun, 28 Nov 2021 01:23:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr8v0-0004xt-0i; Sun, 28 Nov 2021 01:23:50 +0000
Received: by outflank-mailman (input) for mailman id 234123;
 Sun, 28 Nov 2021 01:23:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LJYX=QP=rere.qmqm.pl=mirq-linux@srs-se1.protection.inumbo.net>)
 id 1mr8uz-0004xn-3h
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 01:23:49 +0000
Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d5e9c48b-4fe9-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 02:23:47 +0100 (CET)
Received: from remote.user (localhost [127.0.0.1])
 by rere.qmqm.pl (Postfix) with ESMTPSA id 4J1rNJ4FZPz9Y;
 Sun, 28 Nov 2021 02:23:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5e9c48b-4fe9-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1;
	t=1638062626; bh=RQibj5ShLXXbscS9xDdhXFMN8ya6wwZPbmp6fmGd398=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=n44MG2e5RBocnZVovLrwXYhpcT9mGSj0Yz0AO4iH3bISdkksZFTaPRPQ7fTkCKO8d
	 x+/RaAsmPFcJpyVM1wTyOQcpl9iI/qARQ9nnHNFUKcC/buQZ3OQy4ZdUfMi7/yUTEW
	 7WlKE+/agJAITMqFPd9R5R3E+MgK29J+XYHqyR0kp8JBFZvXtnVk0Pz1QzN3kso8HK
	 er/OuchNHm9U/TZDlt7ogfSjpTlkJvuHMLoM8/Ch6dpvLC0GmYw4askPTjYE6cd0GB
	 +8Icr2w4j1952hSNLT41SWUjT5RKnwcfW3Td5KzPdFvlY7NR4Wfe30xf1uZw3jj57o
	 PLz4CVm2GyNBg==
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.103.3 at mail
Date: Sun, 28 Nov 2021 02:23:43 +0100
From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= <mirq-linux@rere.qmqm.pl>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH v4 22/25] memory: emif: Use kernel_can_power_off()
Message-ID: <YaLaH3Yt2M/Gko//@qmqm.qmqm.pl>
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-23-digetx@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211126180101.27818-23-digetx@gmail.com>

On Fri, Nov 26, 2021 at 09:00:58PM +0300, Dmitry Osipenko wrote:
> Replace legacy pm_power_off with kernel_can_power_off() helper that
> is aware about chained power-off handlers.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  drivers/memory/emif.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c
> index 762d0c0f0716..cab10d5274a0 100644
> --- a/drivers/memory/emif.c
> +++ b/drivers/memory/emif.c
> @@ -630,7 +630,7 @@ static irqreturn_t emif_threaded_isr(int irq, void *dev_id)
>  		dev_emerg(emif->dev, "SDRAM temperature exceeds operating limit.. Needs shut down!!!\n");
>  
>  		/* If we have Power OFF ability, use it, else try restarting */
> -		if (pm_power_off) {
> +		if (kernel_can_power_off()) {
>  			kernel_power_off();
>  		} else {
>  			WARN(1, "FIXME: NO pm_power_off!!! trying restart\n");

BTW, this part of the code seems to be better moved to generic code that
could replace POWER_OFF request with REBOOT like it is done for reboot()
syscall.

Best Regards
MichaMirosaw


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 02:09:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 02:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234129.406364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr9dJ-0000zq-Mj; Sun, 28 Nov 2021 02:09:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234129.406364; Sun, 28 Nov 2021 02:09:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mr9dJ-0000zj-J0; Sun, 28 Nov 2021 02:09:37 +0000
Received: by outflank-mailman (input) for mailman id 234129;
 Sun, 28 Nov 2021 02:09:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mr9dI-0000zZ-Ed; Sun, 28 Nov 2021 02:09:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mr9dI-0002gb-6R; Sun, 28 Nov 2021 02:09:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mr9dH-00080G-T7; Sun, 28 Nov 2021 02:09:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mr9dH-0001Kh-Np; Sun, 28 Nov 2021 02:09:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fdAASn/CDOH9Lxsd0qgsAD33vOd2beFn/Sq5OygUP6o=; b=3RzPzRRDze4YQc/tZ3Lwyvu81U
	3ghMKHF5Cw5FAaXhqgcM7/miGc3ySwXdjm60P+G3Tx/HceItZDozqGnckFaG1h36HYmnVjyUKTzah
	pTRcw4lwtqVEfAshsLww+LEl525OJdHWNmbqRA8R8nmWtJj+lGECoPbf4scWHknQ3uMU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166943-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-upstream-4.16-testing baseline test] 166943: tolerable FAIL
X-Osstest-Failures:
    qemu-upstream-4.16-testing:test-amd64-i386-qemuu-rhel6hvm-amd:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-pair:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-freebsd10-i386:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-freebsd10-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-coresched-i386-xl:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-coresched-amd64-xl:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-xsm:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:build-amd64-libvirt:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-shadow:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-rtds:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-dom0pvh-xl-amd:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-dom0pvh-xl-intel:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-qcow2:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-pair:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-pygrub:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-pvhv2-intel:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-qemuu-freebsd11-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-qemuu-freebsd12-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-pvhv2-amd:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-qemuu-nested-amd:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-qemuu-nested-intel:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-multivcpu:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-credit1:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-amd64-xl-credit2:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-qemuu-rhel6hvm-intel:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-pvshim:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-shadow:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-vhd:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:test-amd64-i386-xl-xsm:build-check(1):blocked:nonblocking
    qemu-upstream-4.16-testing:build-amd64:xen-build:fail:nonblocking
    qemu-upstream-4.16-testing:build-amd64-xsm:xen-build:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.16-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=b6e539830bf45e2d7a6bd86ddfdf003088b173b0
X-Osstest-Versions-That:
    qemuu=b6e539830bf45e2d7a6bd86ddfdf003088b173b0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Nov 2021 02:09:35 +0000

"Old" tested version had not actually been tested; therefore in this
flight we test it, rather than a new candidate.  The baseline, if
any, is the most recent actually tested revision.

flight 166943 qemu-upstream-4.16-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166943/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-i386-qemuu-rhel6hvm-amd  1 build-check(1)               blocked n/a
 test-amd64-i386-pair          1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-i386  1 build-check(1)               blocked  n/a
 test-amd64-i386-freebsd10-amd64  1 build-check(1)               blocked  n/a
 test-amd64-coresched-i386-xl  1 build-check(1)               blocked  n/a
 test-amd64-coresched-amd64-xl  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-xsm       1 build-check(1)               blocked  n/a
 build-amd64-libvirt           1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-shadow    1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-rtds      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-ws16-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemuu-win7-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemuu-ovmf-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)     blocked n/a
 test-amd64-amd64-dom0pvh-xl-amd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1) blocked n/a
 test-amd64-amd64-dom0pvh-xl-intel  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  1 build-check(1)        blocked n/a
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-xl-qcow2     1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-pvshim    1 build-check(1)               blocked  n/a
 test-amd64-amd64-pair         1 build-check(1)               blocked  n/a
 test-amd64-amd64-pygrub       1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-pvhv2-intel  1 build-check(1)               blocked  n/a
 test-amd64-amd64-qemuu-freebsd11-amd64  1 build-check(1)           blocked n/a
 test-amd64-amd64-qemuu-freebsd12-amd64  1 build-check(1)           blocked n/a
 test-amd64-amd64-xl-pvhv2-amd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-qemuu-nested-amd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-qemuu-nested-intel  1 build-check(1)              blocked n/a
 test-amd64-amd64-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl           1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-credit1   1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-credit2   1 build-check(1)               blocked  n/a
 test-amd64-i386-qemuu-rhel6hvm-intel  1 build-check(1)             blocked n/a
 test-amd64-i386-xl            1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-pvshim     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64  1 build-check(1)         blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1)  blocked n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      blocked n/a
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-i386-xl-qemuu-ovmf-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-win7-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-qemuu-ws16-amd64  1 build-check(1)              blocked n/a
 test-amd64-i386-xl-shadow     1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-vhd        1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               blocked  n/a
 build-amd64                   6 xen-build               fail baseline untested
 build-amd64-xsm               6 xen-build               fail baseline untested
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail baseline untested
 test-armhf-armhf-libvirt   16 saverestore-support-check fail baseline untested
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail baseline untested
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 qemuu                b6e539830bf45e2d7a6bd86ddfdf003088b173b0
baseline version:
 qemuu                b6e539830bf45e2d7a6bd86ddfdf003088b173b0

Last test of basis   166943  2021-11-27 20:40:13 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              fail    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  fail    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          blocked 
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          blocked 
 test-amd64-coresched-amd64-xl                                blocked 
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           blocked 
 test-amd64-coresched-i386-xl                                 blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 blocked 
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-xl-xsm                                      blocked 
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       blocked 
 test-amd64-amd64-qemuu-nested-amd                            blocked 
 test-amd64-amd64-xl-pvhv2-amd                                blocked 
 test-amd64-i386-qemuu-rhel6hvm-amd                           blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    blocked 
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     blocked 
 test-amd64-i386-freebsd10-amd64                              blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       blocked 
 test-amd64-amd64-qemuu-freebsd12-amd64                       blocked 
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         blocked 
 test-amd64-i386-xl-qemuu-ovmf-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         blocked 
 test-amd64-i386-xl-qemuu-win7-amd64                          blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         blocked 
 test-amd64-i386-xl-qemuu-ws16-amd64                          blocked 
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  blocked 
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  blocked 
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        blocked 
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         blocked 
 test-amd64-i386-freebsd10-i386                               blocked 
 test-amd64-amd64-qemuu-nested-intel                          blocked 
 test-amd64-amd64-xl-pvhv2-intel                              blocked 
 test-amd64-i386-qemuu-rhel6hvm-intel                         blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-xl-multivcpu                                blocked 
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        blocked 
 test-amd64-i386-pair                                         blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-amd64-amd64-xl-pvshim                                   blocked 
 test-amd64-i386-xl-pvshim                                    blocked 
 test-amd64-amd64-pygrub                                      blocked 
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    blocked 
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-xl-rtds                                     blocked 
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             blocked 
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              blocked 
 test-amd64-amd64-xl-shadow                                   blocked 
 test-amd64-i386-xl-shadow                                    blocked 
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 blocked 
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Nov 28 02:52:57 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 02:52:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234137.406378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrAIw-0005oG-7G; Sun, 28 Nov 2021 02:52:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234137.406378; Sun, 28 Nov 2021 02:52:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrAIw-0005o9-4H; Sun, 28 Nov 2021 02:52:38 +0000
Received: by outflank-mailman (input) for mailman id 234137;
 Sun, 28 Nov 2021 02:52:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrAIv-0005nz-1P; Sun, 28 Nov 2021 02:52:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrAIu-0003NR-SZ; Sun, 28 Nov 2021 02:52:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrAIu-0000mJ-51; Sun, 28 Nov 2021 02:52:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrAIu-0004VK-4X; Sun, 28 Nov 2021 02:52:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qAkU9NosiM1dGGrKdmjWMwMQGDB9k86eVI/Ki7x15As=; b=6Fnh73vi7W+xCxe+Pv8lU1roob
	0EuhFiqJSinnuTB2Gnn1TgRvv9gdZKwyC7v9UnbtSiUYVCo3UdILmm/ESca0wNavubjJeEZ+ZX5ud
	PM7nnPcYzDrtAIVrVLyU52Bc0nQW5RYUokPnQxhZO9qQqEmUepPauoyMznlEjt5zXmis=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166939-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166939: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-arm64-pvops:kernel-build:fail:regression
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:heisenbug
    qemu-mainline:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=dd4b0de45965538f19bb40c7ddaaba384a8c613a
X-Osstest-Versions-That:
    qemuu=14d02cfbe4adaeebe7cb833a8cc71191352cf03b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Nov 2021 02:52:36 +0000

flight 166939 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166939/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64-pvops             6 kernel-build   fail in 166879 REGR. vs. 166370

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10     fail pass in 166879

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl           1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-seattle   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-vhd       1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-thunderx  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-credit1   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-credit2   1 build-check(1)           blocked in 166879 n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166370
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166370
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166370
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166370
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166370
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166370
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166370
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 qemuu                dd4b0de45965538f19bb40c7ddaaba384a8c613a
baseline version:
 qemuu                14d02cfbe4adaeebe7cb833a8cc71191352cf03b

Last test of basis   166370  2021-11-25 03:10:11 Z    2 days
Testing same since   166879  2021-11-26 13:32:54 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit dd4b0de45965538f19bb40c7ddaaba384a8c613a
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Thu Nov 25 10:44:43 2021 +0100

    Fix version for v6.2.0-rc2 release
    
    Typo while setting VERSION in the tag commit.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 09:49:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 09:49:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234150.406392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrGoU-0000ZS-CW; Sun, 28 Nov 2021 09:49:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234150.406392; Sun, 28 Nov 2021 09:49:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrGoU-0000ZL-9X; Sun, 28 Nov 2021 09:49:38 +0000
Received: by outflank-mailman (input) for mailman id 234150;
 Sun, 28 Nov 2021 09:49:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrGoS-0000ZB-Ou; Sun, 28 Nov 2021 09:49:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrGoS-0002mo-HS; Sun, 28 Nov 2021 09:49:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrGoS-0008Mt-7w; Sun, 28 Nov 2021 09:49:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrGoS-00078I-7T; Sun, 28 Nov 2021 09:49:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=vPOTbXwg1/24cPn8AYRNcSOGi6tqOp080u7o6XMY21M=; b=ZNd82Rdp+vqepgKTOHAFASyApW
	P5lh7++ipEBdFDRe5mv7tKeKnZd93I8cbU/mb5GCcpw365++lHrMGJdb+fuUCTg8is5svtlolYN5Y
	k9jLcy6l2+kPPWK1e0z6nkuOvaGD68pkp2aQ7qfWjOCS1tBeomXwnkJn675pX/WSM2cU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166945-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-coverity test] 166945: all pass - PUSHED
X-Osstest-Versions-This:
    xen=5449ba84e99849ee2339fd79f9717e10113d702d
X-Osstest-Versions-That:
    xen=a5706b80f42e028c5153fc50734a1e86a99ff9d2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Nov 2021 09:49:36 +0000

flight 166945 xen-unstable-coverity real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166945/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xen                  5449ba84e99849ee2339fd79f9717e10113d702d
baseline version:
 xen                  a5706b80f42e028c5153fc50734a1e86a99ff9d2

Last test of basis   166347  2021-11-24 09:18:32 Z    4 days
Testing same since   166945  2021-11-28 09:19:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 coverity-amd64                                               pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   a5706b80f4..5449ba84e9  5449ba84e99849ee2339fd79f9717e10113d702d -> coverity-tested/smoke


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 10:20:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 10:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234157.406407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrHIT-0004Wd-QU; Sun, 28 Nov 2021 10:20:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234157.406407; Sun, 28 Nov 2021 10:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrHIT-0004WW-NS; Sun, 28 Nov 2021 10:20:37 +0000
Received: by outflank-mailman (input) for mailman id 234157;
 Sun, 28 Nov 2021 10:20:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrHIS-0004WM-CW; Sun, 28 Nov 2021 10:20:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrHIS-0003M4-3R; Sun, 28 Nov 2021 10:20:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrHIR-0000eJ-MW; Sun, 28 Nov 2021 10:20:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrHIR-0004i8-M5; Sun, 28 Nov 2021 10:20:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=eZvcW+F98gWsSoDfP3fjUSdjLxAFbsDk9ZazXK9K+LI=; b=DK2rJos1eKlnHC5Qm/sm+gD2Tf
	MClYkzvyEk8SAAb5mcCxqLtZQNvuCrYIFCjrAOMwmt+3as7FGDMVhmNH8rAbQkx1bewdRnjz8pet0
	qpfikY4LK8oiGOK+IcIGJMjsyyxv7icqe6a+sIFtBWLmIwiFDLJ+Pdd+nlHBXysnNefg=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166944-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166944: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-arm64-pvops:kernel-build:fail:regression
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:heisenbug
    qemu-mainline:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=dd4b0de45965538f19bb40c7ddaaba384a8c613a
X-Osstest-Versions-That:
    qemuu=14d02cfbe4adaeebe7cb833a8cc71191352cf03b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Nov 2021 10:20:35 +0000

flight 166944 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166944/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64-pvops             6 kernel-build   fail in 166879 REGR. vs. 166370

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10     fail pass in 166879

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl           1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-seattle   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-credit2   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-credit1   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-thunderx  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-vhd       1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)           blocked in 166879 n/a
 test-armhf-armhf-xl-rtds   18 guest-start/debian.repeat fail blocked in 166370
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166370
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166370
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166370
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166370
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166370
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166370
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166370
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 qemuu                dd4b0de45965538f19bb40c7ddaaba384a8c613a
baseline version:
 qemuu                14d02cfbe4adaeebe7cb833a8cc71191352cf03b

Last test of basis   166370  2021-11-25 03:10:11 Z    3 days
Testing same since   166879  2021-11-26 13:32:54 Z    1 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit dd4b0de45965538f19bb40c7ddaaba384a8c613a
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Thu Nov 25 10:44:43 2021 +0100

    Fix version for v6.2.0-rc2 release
    
    Typo while setting VERSION in the tag commit.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 11:15:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 11:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234166.406421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrI9F-00014p-QR; Sun, 28 Nov 2021 11:15:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234166.406421; Sun, 28 Nov 2021 11:15:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrI9F-00014i-N8; Sun, 28 Nov 2021 11:15:09 +0000
Received: by outflank-mailman (input) for mailman id 234166;
 Sun, 28 Nov 2021 11:15:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=MIVv=QP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mrI9E-00014c-QJ
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 11:15:09 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70acd530-503c-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 12:15:06 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 90C781FCA1;
 Sun, 28 Nov 2021 11:15:05 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id ADEFE133D1;
 Sun, 28 Nov 2021 11:15:04 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id KhNhKLhko2FZUgAAMHmgww
 (envelope-from <jgross@suse.com>); Sun, 28 Nov 2021 11:15:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70acd530-503c-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1638098105; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=Anljq+Wlt67ghjUgtowz33uZJuiJE7LcFFdumpYBPbQ=;
	b=cORDoLhhTv6Pvy/wEYOeaj0+noo8dvDMluC1ZpBarB3cAbHI40UN/1iHjN3bWBhVP0aizH
	/NMFWg6oCo5x8lgfMjsJuECexWXZtoh9byc1oggFWKSu02kWt9gazsZhgX4El5PzIxK+as
	2rxhxJh+CmJik0qb7yx5+btjpldJ70o=
Subject: Re: [patch 00/22] genirq/msi, PCI/MSI: Spring cleaning - Part 1
To: Thomas Gleixner <tglx@linutronix.de>, LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>, Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>, Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>, Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org, Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>, linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, sparclinux@vger.kernel.org,
 x86@kernel.org, xen-devel@lists.xenproject.org, ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>, linux-hyperv@vger.kernel.org,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
References: <20211126222700.862407977@linutronix.de>
From: Juergen Gross <jgross@suse.com>
Message-ID: <2b96282e-aa7e-f864-a4fe-a1211605b0d3@suse.com>
Date: Sun, 28 Nov 2021 12:15:03 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <20211126222700.862407977@linutronix.de>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="Scpk3SAl3oj2hcLchcXspItyFiWaZIboV"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--Scpk3SAl3oj2hcLchcXspItyFiWaZIboV
Content-Type: multipart/mixed; boundary="XcilTgwO7ykUk5wJYdiDkIub8q5tPTxBW";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Thomas Gleixner <tglx@linutronix.de>, LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>, Marc Zygnier <maz@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>,
 Kevin Tian <kevin.tian@intel.com>, Jason Gunthorpe <jgg@nvidia.com>,
 Megha Dey <megha.dey@intel.com>, Ashok Raj <ashok.raj@intel.com>,
 linux-pci@vger.kernel.org, Michael Ellerman <mpe@ellerman.id.au>,
 Paul Mackerras <paulus@samba.org>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 linuxppc-dev@lists.ozlabs.org,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>, linux-mips@vger.kernel.org,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, sparclinux@vger.kernel.org,
 x86@kernel.org, xen-devel@lists.xenproject.org, ath11k@lists.infradead.org,
 Wei Liu <wei.liu@kernel.org>, linux-hyperv@vger.kernel.org,
 Christian Borntraeger <borntraeger@de.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>
Message-ID: <2b96282e-aa7e-f864-a4fe-a1211605b0d3@suse.com>
Subject: Re: [patch 00/22] genirq/msi, PCI/MSI: Spring cleaning - Part 1
References: <20211126222700.862407977@linutronix.de>
In-Reply-To: <20211126222700.862407977@linutronix.de>

--XcilTgwO7ykUk5wJYdiDkIub8q5tPTxBW
Content-Type: multipart/mixed;
 boundary="------------6139348637D6BA4177E1F3E2"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------6139348637D6BA4177E1F3E2
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 27.11.21 02:18, Thomas Gleixner wrote:
> The [PCI] MSI code has gained quite some warts over time. A recent
> discussion unearthed a shortcoming: the lack of support for expanding
> PCI/MSI-X vectors after initialization of MSI-X.
>=20
> PCI/MSI-X has no requirement to setup all vectors when MSI-X is enabled=
 in
> the device. The non-used vectors have just to be masked in the vector
> table. For PCI/MSI this is not possible because the number of vectors
> cannot be changed after initialization.
>=20
> The PCI/MSI code, but also the core MSI irq domain code are built aroun=
d
> the assumption that all required vectors are installed at initializatio=
n
> time and freed when the device is shut down by the driver.
>=20
> Supporting dynamic expansion at least for MSI-X is important for VFIO s=
o
> that the host side interrupts for passthrough devices can be installed =
on
> demand.
>=20
> This is the first part of a large (total 101 patches) series which
> refactors the [PCI]MSI infrastructure to make runtime expansion of MSI-=
X
> vectors possible. The last part (10 patches) provide this functionality=
=2E
>=20
> The first part is mostly a cleanup which consolidates code, moves the P=
CI
> MSI code into a separate directory and splits it up into several parts.=

>=20
> No functional change intended except for patch 2/N which changes the
> behaviour of pci_get_vector()/affinity() to get rid of the assumption t=
hat
> the provided index is the "index" into the descriptor list instead of u=
sing
> it as the actual MSI[X] index as seen by the hardware. This would break=

> users of sparse allocated MSI-X entries, but non of them use these
> functions.
>=20
> This series is based on 5.16-rc2 and also available via git:
>=20
>       git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git msi-=
v1-part-1

Tested with Xen (PV dom0, PV guest, PVH guest, HVM guest).

You can add my:

Tested-by: Juergen Gross <jgross@suse.com>


Juergen

--------------6139348637D6BA4177E1F3E2
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------6139348637D6BA4177E1F3E2--

--XcilTgwO7ykUk5wJYdiDkIub8q5tPTxBW--

--Scpk3SAl3oj2hcLchcXspItyFiWaZIboV
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGjZLgFAwAAAAAACgkQsN6d1ii/Ey99
Ygf/TuyiJBY2+ZjWsQqU5ZSGT6YuYXhwPE+B8wmVLs7GMwz8vn9KaHJK68c79Ma6+or1pJ8bVeV1
/9/UXhj0i0p0EDWRpXfe20DMCw5VKZCXioTzX7sOsjqjNtkWbhml32Gvaa7P9vqUd+FGPfbQ9l/r
ndcLPROZz4/7Hp3R8++nRJRU65ZU8gxeNrkjOS8NeYVs2Def36ry9X/HLky5ka/bBgEmWLH7JwlS
d9q6tmhtlbUeUbXIMLhayLFAV4ZJ6jgCCgEWa1Bvu4eh3B9OUNr4pmbuglY6gQL/nk02uR3VtyZ1
5Pyefgqkl9M3bzJPAvspvOGs0qAxZC0k1GntQmQkBg==
=mphy
-----END PGP SIGNATURE-----

--Scpk3SAl3oj2hcLchcXspItyFiWaZIboV--


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 15:58:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 15:58:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234174.406432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrMYj-0000bn-Uf; Sun, 28 Nov 2021 15:57:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234174.406432; Sun, 28 Nov 2021 15:57:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrMYj-0000bg-R9; Sun, 28 Nov 2021 15:57:45 +0000
Received: by outflank-mailman (input) for mailman id 234174;
 Sun, 28 Nov 2021 15:57:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=24qH=QP=kernel.org=maz@srs-se1.protection.inumbo.net>)
 id 1mrMYh-0000ba-PW
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 15:57:43 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea16022e-5063-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 16:57:40 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id 93137B80D10;
 Sun, 28 Nov 2021 15:57:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39E31C004E1;
 Sun, 28 Nov 2021 15:57:38 +0000 (UTC)
Received: from sofa.misterjones.org ([185.219.108.64]
 helo=wait-a-minute.misterjones.org)
 by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <maz@kernel.org>)
 id 1mrMYZ-008Rat-NA; Sun, 28 Nov 2021 15:57:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea16022e-5063-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638115058;
	bh=dvG9p4JqFdjvOEy4EOXxmzA5LeHayuGr/Isd+G4hlxQ=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=VvikoL4cJtNFOFPZajteiBXe8ODn9A+inzWnb1CaODmfNAbPwtbi08LL0plfuHxDd
	 DgSa9NTBzspw9q7oYBHcBXjh+vJD4PalgBNC/xQ/STeSZ8ewzx4AbQ9n36UqQatFyD
	 1bcZNZffvJGhdA7Xdefty9eQqd4zpvDNt2H8vFg5BapAqAq7KJERfwGGf3ZDVdmirY
	 0qakJZOeNItYEDopWJl9xC2o8fcS28t7nM+gmh9J1FBWGPKvUHqqdNSdDR1Kh7mtvx
	 zq+hYq8AxC6y937gfo3dFPb5jPwBYfQvs36hTRqRq5kkx1M2f9JsbJxWQfa0sVPdL3
	 Pvgxuk0l5kd0Q==
Date: Sun, 28 Nov 2021 15:57:35 +0000
Message-ID: <8735ngs26o.wl-maz@kernel.org>
From: Marc Zyngier <maz@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Bjorn Helgaas <helgaas@kernel.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	Kevin Tian <kevin.tian@intel.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Megha Dey <megha.dey@intel.com>,
	Ashok Raj <ashok.raj@intel.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Andrew Cooper <amc96@cam.ac.uk>,
	Juergen Gross <jgross@suse.com>,
	linux-pci@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [patch 03/10] genirq/msi: Make MSI descriptor alloc/free ready for range allocations
In-Reply-To: <20211127000918.664542907@linutronix.de>
References: <20211126233124.618283684@linutronix.de>
	<20211127000918.664542907@linutronix.de>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
 FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1
 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
X-SA-Exim-Connect-IP: 185.219.108.64
X-SA-Exim-Rcpt-To: tglx@linutronix.de, linux-kernel@vger.kernel.org, helgaas@kernel.org, alex.williamson@redhat.com, kevin.tian@intel.com, jgg@nvidia.com, megha.dey@intel.com, ashok.raj@intel.com, mpe@ellerman.id.au, amc96@cam.ac.uk, jgross@suse.com, linux-pci@vger.kernel.org, xen-devel@lists.xenproject.org
X-SA-Exim-Mail-From: maz@kernel.org
X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false

On Sat, 27 Nov 2021 01:24:34 +0000,
Thomas Gleixner <tglx@linutronix.de> wrote:
> 
> Convert the MSI descriptor related functions to ranges and fixup the call
> sites.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> ---
>  drivers/base/platform-msi.c |    3 ++-
>  include/linux/msi.h         |    7 ++++---
>  kernel/irq/msi.c            |   38 +++++++++++++++++++-------------------
>  3 files changed, 25 insertions(+), 23 deletions(-)

This particular patch breaks one of my test boxes when allocating the
MSIs for the first SMMUv3 it encounters:

[   14.700206] arm-smmu-v3 arm-smmu-v3.0.auto: option mask 0x0
[   14.705848] arm-smmu-v3 arm-smmu-v3.0.auto: ias 48-bit, oas 48-bit (features 0x00041fff)
[   14.716184] arm-smmu-v3 arm-smmu-v3.0.auto: allocated 65536 entries for cmdq
[   14.723285] arm-smmu-v3 arm-smmu-v3.0.auto: allocated 128 entries for evtq
[   14.730170] arm-smmu-v3 arm-smmu-v3.0.auto: allocated 256 entries for priq
[   41.282305] watchdog: BUG: soft lockup - CPU#43 stuck for 26s! [swapper/0:1]
[   41.289383] Modules linked in:
[   41.292430] irq event stamp: 3906684
[   41.295994] hardirqs last  enabled at (3906683): [<ffffb73f677c54d8>] ___slab_alloc+0x7c8/0x8c0
[   41.304698] hardirqs last disabled at (3906684): [<ffffb73f6806d478>] el1_interrupt+0x38/0xb0
[   41.313220] softirqs last  enabled at (3798058): [<ffffb73f6746099c>] __do_softirq+0x40c/0x58c
[   41.321825] softirqs last disabled at (3798053): [<ffffb73f674ee610>] __irq_exit_rcu+0x120/0x160
[   41.330607] CPU: 43 PID: 1 Comm: swapper/0 Not tainted 5.16.0-rc2-00078-g76af42494903 #41
[   41.338775] Hardware name: WIWYNN Mt.Jade Server System B81.030Z1.0007/Mt.Jade Motherboard, BIOS 1.3.20210110 2021/01/10
[   41.349634] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   41.356585] pc : lock_is_held_type+0x124/0x20c
[   41.361019] lr : lock_is_held_type+0xe8/0x20c
[   41.365365] sp : ffff80001051b840
[   41.368669] pmr_save: 000000e0
[   41.371712] x29: ffff80001051b840 x28: ffff000034d80000 x27: ffff07ff87606600
[   41.378838] x26: 00000000000000e0 x25: 00000000ffffffff x24: ffffb73f68733d00
[   41.385964] x23: 0000000000000028 x22: ffff07ff87606fb8 x21: ffffb73f68bffc38
[   41.393090] x20: ffff07ff87606fe0 x19: 0000000000000002 x18: 0000000000000014
[   41.400217] x17: 0000000076a13aac x16: 00000000486de301 x15: 00000000ed5ff5e1
[   41.407342] x14: 00000000fda7b077 x13: 0000000000000006 x12: 00000000b82b73dd
[   41.414468] x11: ffff07ff87606fb8 x10: ffffb73f6952d000 x9 : ffffb73f675a3750
[   41.421594] x8 : 0000000000000000 x7 : ffffb73f68e16000 x6 : ffffb73f677c6d64
[   41.428720] x5 : 0000000000000000 x4 : 0000000000000001 x3 : 000000000000ffff
[   41.435846] x2 : ffff50ff17454000 x1 : 0000000000000000 x0 : 0000000000000000
[   41.442972] Call trace:
[   41.445407]  lock_is_held_type+0x124/0x20c
[   41.449494]  rcu_read_lock_sched_held+0x68/0xac
[   41.454018]  trace_lock_acquire+0x78/0x1c0
[   41.458107]  lock_acquire+0x40/0x90
[   41.461585]  fs_reclaim_acquire+0x90/0x114
[   41.465676]  kmem_cache_alloc_trace+0x80/0x300
[   41.470110]  msi_add_simple_msi_descs+0x70/0x150
[   41.474718]  msi_domain_alloc_irqs_descs_locked+0x90/0xfc
[   41.480106]  msi_domain_alloc_irqs+0x58/0xa0
[   41.484364]  platform_msi_domain_alloc_irqs+0x5c/0xa0
[   41.489410]  arm_smmu_device_probe+0xfc0/0x1230
[   41.493936]  platform_probe+0x74/0xe4
[   41.497590]  really_probe+0xc4/0x470
[   41.501156]  __driver_probe_device+0x11c/0x190
[   41.505589]  driver_probe_device+0x48/0x110
[   41.509761]  __driver_attach+0xe0/0x200
[   41.513585]  bus_for_each_dev+0x7c/0xe0
[   41.517412]  driver_attach+0x30/0x3c
[   41.520976]  bus_add_driver+0x150/0x230
[   41.524801]  driver_register+0x84/0x140
[   41.528626]  __platform_driver_register+0x34/0x40
[   41.533319]  arm_smmu_driver_init+0x2c/0x38
[   41.537496]  do_one_initcall+0x80/0x3d0
[   41.541321]  kernel_init_freeable+0x318/0x3a0
[   41.545672]  kernel_init+0x30/0x14c
[   41.549151]  ret_from_fork+0x10/0x20

The issue seems to be originating in the previous patch, where the
following line was added:

+	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec, };

In that context, only 'ndesc' was used, and that was fine.

However, in the current patch, ndesc use is removed, only first/last
are considered, and UINT_MAX is... a lot of MSIs.

This fixes it:

diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
index bef5b74a7268..a520bfd94a56 100644
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -975,7 +975,7 @@ int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device
  */
 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, int nvec)
 {
-	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec, };
+	struct msi_range range = { .first = 0, .last = nvec - 1, .ndesc = nvec, };
 	int ret;
 
 	msi_lock_descs(dev);

However, it'd be good to clarify the use of range->ndesc.

[...]

> --- a/kernel/irq/msi.c
> +++ b/kernel/irq/msi.c
> @@ -101,19 +101,19 @@ int msi_add_msi_desc(struct device *dev,
>   *
>   * Return: 0 on success or an appropriate failure code.
>   */
> -static int msi_add_simple_msi_descs(struct device *dev, unsigned int index, unsigned int ndesc)
> +static int msi_add_simple_msi_descs(struct device *dev, struct msi_range *range)

nit: most of the functions changed in this patch need to have their
documentation tidied up.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 18:27:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 18:27:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234179.406442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrOt4-00068H-Fs; Sun, 28 Nov 2021 18:26:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234179.406442; Sun, 28 Nov 2021 18:26:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrOt4-00068D-Be; Sun, 28 Nov 2021 18:26:54 +0000
Received: by outflank-mailman (input) for mailman id 234179;
 Sun, 28 Nov 2021 18:26:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrOt2-00067s-OU; Sun, 28 Nov 2021 18:26:52 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrOt2-0003PS-Av; Sun, 28 Nov 2021 18:26:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrOt1-0000Ny-UW; Sun, 28 Nov 2021 18:26:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrOt1-0007SA-Tz; Sun, 28 Nov 2021 18:26:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4C56Hg0PiNK8kBzO0L+UAizKnvJipQtCq9j1nbU9y0A=; b=sQQ+RGOQpswjSyGldOcZDRpp7u
	npPUsrAyU8hXwANj8b4enUkYjGjtL0ETNU+A6kAnPswCfMqTrg82DrkRTbCPKCWPWV0ZLT6xUlnU+
	1Z9uyreDxH0iy9iZz6N5PQ5yvlcqNanlr8cJAqaII4fcP3xLMQRznLCKYMD7tq5ZdEBk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166946-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166946: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-arm64-pvops:kernel-build:fail:regression
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:heisenbug
    qemu-mainline:test-armhf-armhf-libvirt-raw:guest-start/debian.repeat:fail:heisenbug
    qemu-mainline:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=dd4b0de45965538f19bb40c7ddaaba384a8c613a
X-Osstest-Versions-That:
    qemuu=14d02cfbe4adaeebe7cb833a8cc71191352cf03b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Nov 2021 18:26:51 +0000

flight 166946 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166946/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64-pvops             6 kernel-build   fail in 166879 REGR. vs. 166370

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10     fail pass in 166879
 test-armhf-armhf-libvirt-raw 17 guest-start/debian.repeat  fail pass in 166944

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl-credit1   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-credit2   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl           1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-vhd       1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-thunderx  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-seattle   1 build-check(1)           blocked in 166879 n/a
 test-armhf-armhf-xl-rtds 18 guest-start/debian.repeat fail in 166944 blocked in 166370
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166370
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166370
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166370
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166370
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166370
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166370
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 qemuu                dd4b0de45965538f19bb40c7ddaaba384a8c613a
baseline version:
 qemuu                14d02cfbe4adaeebe7cb833a8cc71191352cf03b

Last test of basis   166370  2021-11-25 03:10:11 Z    3 days
Testing same since   166879  2021-11-26 13:32:54 Z    2 days    4 attempts

------------------------------------------------------------
People who touched revisions under test:
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit dd4b0de45965538f19bb40c7ddaaba384a8c613a
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Thu Nov 25 10:44:43 2021 +0100

    Fix version for v6.2.0-rc2 release
    
    Typo while setting VERSION in the tag commit.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 19:18:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 19:18:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234187.406457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrPgX-0002ii-KZ; Sun, 28 Nov 2021 19:18:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234187.406457; Sun, 28 Nov 2021 19:18:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrPgX-0002ib-HE; Sun, 28 Nov 2021 19:18:01 +0000
Received: by outflank-mailman (input) for mailman id 234187;
 Sun, 28 Nov 2021 19:17:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aI3v=QP=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mrPgV-0002iV-IT
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 19:17:59 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e53b3eef-507f-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 20:17:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e53b3eef-507f-11ec-b941-1df2895da90e
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1638127077;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=/JUkgr1+1xpaGfU+RedPaRQmMTBII3kcX9LK2s6OBK4=;
	b=OwlJzKpXh6HUO0d3S226LkHX0VBEv/ZMGzpouZpDaknUBEWmnL8N2ToysfCkKrXjYYLOZt
	iVHuFafr0na37AQ6l9x85IxpDbPbsDoXGIi4PG8PTi0OhrcrYJoC+WaQfVt0vabA2eV+em
	Ng7psNOZAIZ6xyzx621ez74kPw534jLdfrViT1k8TelbaOpr2LqjSUYcbp1OmtUlpO8Rg4
	hfzXc9Jnehb8NHUubdd/cHrAjk8X0duzPRgkrYbGSvWuwrfUsk87VbsYQiNw3269IIlODP
	uCKRHXUM+mb3iSajZoLTXqvgYDA9blbP6Sp/JVA16AG7rVFKHfUjui+S06A1ow==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1638127077;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=/JUkgr1+1xpaGfU+RedPaRQmMTBII3kcX9LK2s6OBK4=;
	b=JXCAyg87l9Mmdgu7jORXkXxXfTo1i6k+92QcrgQ4LwuGTC1qebUkIJsKOUQq12BUqiQCat
	D/zS/UZaK15PW0BA==
To: Marc Zyngier <maz@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>, Bjorn Helgaas <helgaas@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>, Kevin Tian
 <kevin.tian@intel.com>, Jason Gunthorpe <jgg@nvidia.com>, Megha Dey
 <megha.dey@intel.com>, Ashok Raj <ashok.raj@intel.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Andrew Cooper <amc96@cam.ac.uk>, Juergen Gross
 <jgross@suse.com>, linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [patch 03/10] genirq/msi: Make MSI descriptor alloc/free ready
 for range allocations
In-Reply-To: <8735ngs26o.wl-maz@kernel.org>
References: <20211126233124.618283684@linutronix.de>
 <20211127000918.664542907@linutronix.de> <8735ngs26o.wl-maz@kernel.org>
Date: Sun, 28 Nov 2021 20:17:56 +0100
Message-ID: <87a6hof5sr.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Sun, Nov 28 2021 at 15:57, Marc Zyngier wrote:
> On Sat, 27 Nov 2021 01:24:34 +0000,
> Thomas Gleixner <tglx@linutronix.de> wrote:
>
> The issue seems to be originating in the previous patch, where the
> following line was added:
>
> +	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec, };
>
> In that context, only 'ndesc' was used, and that was fine.
>
> However, in the current patch, ndesc use is removed, only first/last
> are considered, and UINT_MAX is... a lot of MSIs.
>
> This fixes it:
>
> diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
> index bef5b74a7268..a520bfd94a56 100644
> --- a/kernel/irq/msi.c
> +++ b/kernel/irq/msi.c
> @@ -975,7 +975,7 @@ int msi_domain_alloc_irqs_descs_locked(struct irq_domain *domain, struct device
>   */
>  int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, int nvec)
>  {
> -	struct msi_range range = { .first = 0, .last = UINT_MAX, .ndesc = nvec, };
> +	struct msi_range range = { .first = 0, .last = nvec - 1, .ndesc = nvec, };
>  	int ret;
>  
>  	msi_lock_descs(dev);
>
> However, it'd be good to clarify the use of range->ndesc.

Hrm. The stupid search should terminated nevertheless. Let me stare at
it again.

>> -static int msi_add_simple_msi_descs(struct device *dev, unsigned int index, unsigned int ndesc)
>> +static int msi_add_simple_msi_descs(struct device *dev, struct msi_range *range)
>
> nit: most of the functions changed in this patch need to have their
> documentation tidied up.

Duh, yes.

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 19:36:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 19:36:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234193.406472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrPyE-0004zp-71; Sun, 28 Nov 2021 19:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234193.406472; Sun, 28 Nov 2021 19:36:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrPyE-0004zi-43; Sun, 28 Nov 2021 19:36:18 +0000
Received: by outflank-mailman (input) for mailman id 234193;
 Sun, 28 Nov 2021 19:36:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=llOw=QP=ens-lyon.org=samuel.thibault@srs-se1.protection.inumbo.net>)
 id 1mrPyC-0004xH-4x
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 19:36:16 +0000
Received: from hera.aquilenet.fr (hera.aquilenet.fr [185.233.100.1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6fbc0b51-5082-11ec-976b-d102b41d0961;
 Sun, 28 Nov 2021 20:36:13 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by hera.aquilenet.fr (Postfix) with ESMTP id 86CF028D;
 Sun, 28 Nov 2021 20:36:08 +0100 (CET)
Received: from hera.aquilenet.fr ([127.0.0.1])
 by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id EuzZJlBBoMwa; Sun, 28 Nov 2021 20:36:07 +0100 (CET)
Received: from begin (unknown [IPv6:2a01:cb19:956:1b00:de41:a9ff:fe47:ec49])
 by hera.aquilenet.fr (Postfix) with ESMTPSA id 036A1194;
 Sun, 28 Nov 2021 20:36:06 +0100 (CET)
Received: from samy by begin with local (Exim 4.95)
 (envelope-from <samuel.thibault@ens-lyon.org>) id 1mrPy1-006Dgr-EK;
 Sun, 28 Nov 2021 20:36:05 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6fbc0b51-5082-11ec-976b-d102b41d0961
X-Virus-Scanned: Debian amavisd-new at aquilenet.fr
Date: Sun, 28 Nov 2021 20:36:05 +0100
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH v4] xenbus: support large messages
Message-ID: <20211128193605.z4nr2uwqx2pvpgvo@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20211004094000.29868-1-jgross@suse.com>
 <244e6bc7-9158-7c52-13ab-d25daafbc2c8@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <244e6bc7-9158-7c52-13ab-d25daafbc2c8@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)
X-Spamd-Bar: /
Authentication-Results: hera.aquilenet.fr;
	none
X-Rspamd-Server: hera
X-Rspamd-Queue-Id: 86CF028D
X-Spamd-Result: default: False [0.40 / 15.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 HAS_ORG_HEADER(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_LAST(0.00)[];
	 MID_RHS_NOT_FQDN(0.50)[]

Hello,

Sorry, it seems I missed that mail :/

Added my tag below.

BTW, I didn't see the mb() fix between rsp_cons+= and reading rsp_prod
on the Linux side?

Samuel

Juergen Gross, le mer. 24 nov. 2021 08:00:55 +0100, a ecrit:
> Ping?
> 
> On 04.10.21 11:40, Juergen Gross wrote:
> > Today the implementation of the xenbus protocol in Mini-OS will only
> > allow to transfer the complete message to or from the ring page buffer.
> > This is limiting the maximum message size to lower values as the xenbus
> > protocol normally would allow.
> > 
> > Change that by allowing to transfer the xenbus message in chunks as
> > soon as they are available.
> > 
> > Avoid crashing Mini-OS in case of illegal data read from the ring
> > buffer.
> > 
> > Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> > ---
> > V2:
> > - drop redundant if (Samuel Thibault)
> > - move rmb() (Samuel Thibault)
> > V3:
> > - correct notification test (Samuel Thibault)
> > V4:
> > - more memory barriers (Samuel Thibault)
> > ---
> >   xenbus/xenbus.c | 210 ++++++++++++++++++++++++++++--------------------
> >   1 file changed, 122 insertions(+), 88 deletions(-)
> > 
> > diff --git a/xenbus/xenbus.c b/xenbus/xenbus.c
> > index 23de61e..b687678 100644
> > --- a/xenbus/xenbus.c
> > +++ b/xenbus/xenbus.c
> > @@ -29,6 +29,7 @@
> >   #include <xen/hvm/params.h>
> >   #include <mini-os/spinlock.h>
> >   #include <mini-os/xmalloc.h>
> > +#include <mini-os/semaphore.h>
> >   #define min(x,y) ({                       \
> >           typeof(x) tmpx = (x);                 \
> > @@ -46,6 +47,7 @@
> >   static struct xenstore_domain_interface *xenstore_buf;
> >   static DECLARE_WAIT_QUEUE_HEAD(xb_waitq);
> >   DECLARE_WAIT_QUEUE_HEAD(xenbus_watch_queue);
> > +static __DECLARE_SEMAPHORE_GENERIC(xb_write_sem, 1);
> >   xenbus_event_queue xenbus_events;
> >   static struct watch {
> > @@ -231,75 +233,103 @@ char *xenbus_wait_for_state_change(const char* path, XenbusState *state, xenbus_
> >   }
> > +static void xenbus_read_data(char *buf, unsigned int len)
> > +{
> > +    unsigned int off = 0;
> > +    unsigned int prod, cons;
> > +    unsigned int size;
> > +
> > +    while (off != len)
> > +    {
> > +        wait_event(xb_waitq, xenstore_buf->rsp_prod != xenstore_buf->rsp_cons);
> > +
> > +        prod = xenstore_buf->rsp_prod;
> > +        cons = xenstore_buf->rsp_cons;
> > +        DEBUG("Rsp_cons %d, rsp_prod %d.\n", cons, prod);
> > +        size = min(len - off, prod - cons);
> > +
> > +        rmb();   /* Make sure data read from ring is ordered with rsp_prod. */
> > +        memcpy_from_ring(xenstore_buf->rsp, buf + off,
> > +                         MASK_XENSTORE_IDX(cons), size);
> > +        off += size;
> > +        mb();    /* memcpy() and rsp_cons update must not be reordered. */
> > +        xenstore_buf->rsp_cons += size;
> > +        mb();    /* rsp_cons must be visible before we look at rsp_prod. */
> > +        if (xenstore_buf->rsp_prod - cons >= XENSTORE_RING_SIZE)
> > +            notify_remote_via_evtchn(xenbus_evtchn);
> > +    }
> > +}
> > +
> >   static void xenbus_thread_func(void *ign)
> >   {
> >       struct xsd_sockmsg msg;
> > -    unsigned prod = xenstore_buf->rsp_prod;
> > +    char *data;
> >       for (;;) {
> > -        wait_event(xb_waitq, prod != xenstore_buf->rsp_prod);
> > -        while (1) {
> > -            prod = xenstore_buf->rsp_prod;
> > -            DEBUG("Rsp_cons %d, rsp_prod %d.\n", xenstore_buf->rsp_cons,
> > -                  xenstore_buf->rsp_prod);
> > -            if (xenstore_buf->rsp_prod - xenstore_buf->rsp_cons < sizeof(msg))
> > -                break;
> > -            rmb();
> > -            memcpy_from_ring(xenstore_buf->rsp, &msg,
> > -                             MASK_XENSTORE_IDX(xenstore_buf->rsp_cons),
> > -                             sizeof(msg));
> > -            DEBUG("Msg len %d, %d avail, id %d.\n", msg.len + sizeof(msg),
> > -                  xenstore_buf->rsp_prod - xenstore_buf->rsp_cons, msg.req_id);
> > -
> > -            if (xenstore_buf->rsp_prod - xenstore_buf->rsp_cons <
> > -                sizeof(msg) + msg.len)
> > -                break;
> > -
> > -            DEBUG("Message is good.\n");
> > -
> > -            if (msg.type == XS_WATCH_EVENT) {
> > -                struct xenbus_event *event = malloc(sizeof(*event) + msg.len);
> > -                xenbus_event_queue *events = NULL;
> > -                char *data = (char*)event + sizeof(*event);
> > -                struct watch *watch;
> > -
> > -                memcpy_from_ring(xenstore_buf->rsp, data,
> > -                    MASK_XENSTORE_IDX(xenstore_buf->rsp_cons + sizeof(msg)),
> > -                    msg.len);
> > -
> > -                event->path = data;
> > -                event->token = event->path + strlen(event->path) + 1;
> > -
> > -                mb();
> > -                xenstore_buf->rsp_cons += msg.len + sizeof(msg);
> > -
> > -                for (watch = watches; watch; watch = watch->next)
> > -                    if (!strcmp(watch->token, event->token)) {
> > -                        events = watch->events;
> > -                        break;
> > -                    }
> > -
> > -                if (events) {
> > -                    event->next = *events;
> > -                    *events = event;
> > -                    wake_up(&xenbus_watch_queue);
> > -                } else {
> > -                    printk("unexpected watch token %s\n", event->token);
> > -                    free(event);
> > +        xenbus_read_data((char *)&msg, sizeof(msg));
> > +        DEBUG("Msg len %d, %d avail, id %d.\n", msg.len + sizeof(msg),
> > +              xenstore_buf->rsp_prod - xenstore_buf->rsp_cons, msg.req_id);
> > +
> > +        if (msg.len > XENSTORE_PAYLOAD_MAX) {
> > +            printk("Xenstore violates protocol, message longer than allowed.\n");
> > +            return;
> > +        }
> > +
> > +        if (msg.type == XS_WATCH_EVENT) {
> > +            struct xenbus_event *event = malloc(sizeof(*event) + msg.len);
> > +            xenbus_event_queue *events = NULL;
> > +            struct watch *watch;
> > +            char *c;
> > +            int zeroes = 0;
> > +
> > +            data = (char*)event + sizeof(*event);
> > +            xenbus_read_data(data, msg.len);
> > +
> > +            for (c = data; c < data + msg.len; c++)
> > +                if (!*c)
> > +                    zeroes++;
> > +            if (zeroes != 2) {
> > +                printk("Xenstore: illegal watch event data\n");
> > +                free(event);
> > +                continue;
> > +            }
> > +
> > +            event->path = data;
> > +            event->token = event->path + strlen(event->path) + 1;
> > +
> > +            for (watch = watches; watch; watch = watch->next)
> > +                if (!strcmp(watch->token, event->token)) {
> > +                    events = watch->events;
> > +                    break;
> >                   }
> > +
> > +            if (events) {
> > +                event->next = *events;
> > +                *events = event;
> > +                wake_up(&xenbus_watch_queue);
> >               } else {
> > -                req_info[msg.req_id].reply = malloc(sizeof(msg) + msg.len);
> > -                memcpy_from_ring(xenstore_buf->rsp, req_info[msg.req_id].reply,
> > -                                 MASK_XENSTORE_IDX(xenstore_buf->rsp_cons),
> > -                                 msg.len + sizeof(msg));
> > -                mb();
> > -                xenstore_buf->rsp_cons += msg.len + sizeof(msg);
> > -                wake_up(&req_info[msg.req_id].waitq);
> > +                printk("Xenstore: unexpected watch token %s\n", event->token);
> > +                free(event);
> >               }
> > -            wmb();
> > -            notify_remote_via_evtchn(xenbus_evtchn);
> > +            continue;
> >           }
> > +
> > +        data = malloc(sizeof(msg) + msg.len);
> > +        memcpy(data, &msg, sizeof(msg));
> > +        xenbus_read_data(data + sizeof(msg), msg.len);
> > +
> > +        if (msg.req_id >= NR_REQS || !req_info[msg.req_id].in_use) {
> > +            printk("Xenstore: illegal request id %d\n", msg.req_id);
> > +            free(data);
> > +            continue;
> > +        }
> > +
> > +        DEBUG("Message is good.\n");
> > +
> > +        req_info[msg.req_id].reply = data;
> > +
> > +        wake_up(&req_info[msg.req_id].waitq);
> >       }
> >   }
> > @@ -451,36 +481,40 @@ static void xb_write(int type, int req_id, xenbus_transaction_t trans_id,
> >       cur_req = &header_req;
> > -    BUG_ON(len > XENSTORE_RING_SIZE);
> > -    /* Wait for the ring to drain to the point where we can send the
> > -       message. */
> > -    prod = xenstore_buf->req_prod;
> > -    if (prod + len - xenstore_buf->req_cons > XENSTORE_RING_SIZE)
> > -    {
> > -        /* Wait for there to be space on the ring */
> > -        DEBUG("prod %d, len %d, cons %d, size %d; waiting.\n",
> > -                prod, len, xenstore_buf->req_cons, XENSTORE_RING_SIZE);
> > -        wait_event(xb_waitq,
> > -                xenstore_buf->req_prod + len - xenstore_buf->req_cons <=
> > -                XENSTORE_RING_SIZE);
> > -        DEBUG("Back from wait.\n");
> > -        prod = xenstore_buf->req_prod;
> > -    }
> > +    BUG_ON(len > XENSTORE_PAYLOAD_MAX);
> > +
> > +    /* Make sure we are the only thread trying to write. */
> > +    down(&xb_write_sem);
> > -    /* We're now guaranteed to be able to send the message without
> > -       overflowing the ring.  Do so. */
> > +    /* Send the message in chunks using free ring space when available. */
> >       total_off = 0;
> >       req_off = 0;
> > -    while (total_off < len)
> > +    while (total_off < len)
> >       {
> > +        prod = xenstore_buf->req_prod;
> > +        if (prod - xenstore_buf->req_cons >= XENSTORE_RING_SIZE)
> > +        {
> > +            /* Send evtchn to notify remote */
> > +            notify_remote_via_evtchn(xenbus_evtchn);
> > +
> > +            /* Wait for there to be space on the ring */
> > +            DEBUG("prod %d, len %d, cons %d, size %d; waiting.\n", prod,
> > +                  len - total_off, xenstore_buf->req_cons, XENSTORE_RING_SIZE);
> > +            wait_event(xb_waitq,
> > +                       prod - xenstore_buf->req_cons < XENSTORE_RING_SIZE);
> > +            DEBUG("Back from wait.\n");
> > +        }
> > +
> >           this_chunk = min(cur_req->len - req_off,
> > -                XENSTORE_RING_SIZE - MASK_XENSTORE_IDX(prod));
> > +                         XENSTORE_RING_SIZE - MASK_XENSTORE_IDX(prod));
> > +        this_chunk = min(this_chunk,
> > +                         xenstore_buf->req_cons + XENSTORE_RING_SIZE - prod);
> >           memcpy((char *)xenstore_buf->req + MASK_XENSTORE_IDX(prod),
> > -                (char *)cur_req->data + req_off, this_chunk);
> > +               (char *)cur_req->data + req_off, this_chunk);
> >           prod += this_chunk;
> >           req_off += this_chunk;
> >           total_off += this_chunk;
> > -        if (req_off == cur_req->len)
> > +        if (req_off == cur_req->len)
> >           {
> >               req_off = 0;
> >               if (cur_req == &header_req)
> > @@ -488,20 +522,20 @@ static void xb_write(int type, int req_id, xenbus_transaction_t trans_id,
> >               else
> >                   cur_req++;
> >           }
> > +
> > +        /* Remote must see entire message before updating indexes */
> > +        wmb();
> > +        xenstore_buf->req_prod = prod;
> >       }
> > +    /* Send evtchn to notify remote */
> > +    notify_remote_via_evtchn(xenbus_evtchn);
> > +
> >       DEBUG("Complete main loop of xb_write.\n");
> >       BUG_ON(req_off != 0);
> >       BUG_ON(total_off != len);
> > -    BUG_ON(prod > xenstore_buf->req_cons + XENSTORE_RING_SIZE);
> > -    /* Remote must see entire message before updating indexes */
> > -    wmb();
> > -
> > -    xenstore_buf->req_prod += len;
> > -
> > -    /* Send evtchn to notify remote */
> > -    notify_remote_via_evtchn(xenbus_evtchn);
> > +    up(&xb_write_sem);
> >   }
> >   /* Send a mesasge to xenbus, in the same fashion as xb_write, and
> > 
> 


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 20:21:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 20:21:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234199.406482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrQfk-0001Vy-Ll; Sun, 28 Nov 2021 20:21:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234199.406482; Sun, 28 Nov 2021 20:21:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrQfk-0001Vr-Iq; Sun, 28 Nov 2021 20:21:16 +0000
Received: by outflank-mailman (input) for mailman id 234199;
 Sun, 28 Nov 2021 20:21:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FL9v=QP=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1mrQfj-0001Vl-AY
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 20:21:15 +0000
Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com
 [2607:f8b0:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb89bdd3-5088-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 21:21:14 +0100 (CET)
Received: by mail-pl1-x634.google.com with SMTP id m24so10360993pls.10
 for <xen-devel@lists.xenproject.org>; Sun, 28 Nov 2021 12:21:14 -0800 (PST)
Received: from [10.11.22.27] (wsip-24-120-54-60.lv.lv.cox.net. [24.120.54.60])
 by smtp.gmail.com with ESMTPSA id
 d17sm13421956pfo.40.2021.11.28.12.21.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 28 Nov 2021 12:21:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb89bdd3-5088-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=U1whNi9SAc6ScOh1I9KuK0DsXkCOcS/Kb99p7Pdd+AY=;
        b=el7LWb3/CvYkqOLrnV7/DGKGrT3cFN9MP37fC1rniZGORCOcF+ynzbGWuiDwueUFns
         wYX9JgJ+UR1cmX+InTmBm0Fq1vXxvek/HD2JKRAcEwA9cmTR36DUH8Ew3ZcZ4YT+8QhK
         gdeHHSZcajcZ52vSatI7aWeQPLyvCGSNuJpbRQ6VHvF36pQUPmo+L26AV1xTX+4XLCmA
         mZBCthixy2xPCJkVasEvC9aA8wma3VWAVWiuxRKNF+TRJ511BO/389waO11dTzn6liBu
         ZhL/JRlDwzVRZ6ElmhOkxgqlA9W7ySoBW4klanMgJ3d85ct2p/8j3DwPwzjikx1S1Mdv
         JZqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=U1whNi9SAc6ScOh1I9KuK0DsXkCOcS/Kb99p7Pdd+AY=;
        b=WoafkqNcMaHlMsOsmxaTI4/rx5vphPSrvkVPKTGIltu2NGOKcmBJREy6SkzH22a2K8
         ibW+Gzi1H7lygsyTTT/LSFfcJobAGZiJhqfaP9E4FC+HvZsa6qTi+AeekArKvbkh7XMW
         WzJZwwMutTspk+qApDwEa027OqOZ75MTKpqrolg/cpPfbFSSJ+fdrv3Somumkmncid8r
         PDT0W6CixedzyPdofex1VSqjZLPJ7r7UCI5UqUt5R7pjpb9/Cg+J3cuabD9cW/mKYfND
         XOoDYkxZglKjL0hvmS7HWfe3uX2G5a8GnIpZ7W8V10AL9nSz3I+1xkGb86Fq4XFxGvpJ
         YLbw==
X-Gm-Message-State: AOAM533D6Qoa2iLvLWP5p/LjIPu9b607dgfGCzRzkapwdi1FaGKPw48z
	8zD12KZStqlSLrvj1jnqM8E=
X-Google-Smtp-Source: ABdhPJzglQTz56SHO3HBrpGJOjfbTAtP5t59UU+qc21TXhbd7fLW6rI8AoDz10WgFRiHyznrmYARkA==
X-Received: by 2002:a17:902:f092:b0:141:ccb6:897 with SMTP id p18-20020a170902f09200b00141ccb60897mr54885424pla.89.1638130872844;
        Sun, 28 Nov 2021 12:21:12 -0800 (PST)
Message-ID: <66a71ffe-7a05-76d4-a3a1-cbf8a1c68006@gmail.com>
Date: Sun, 28 Nov 2021 12:21:11 -0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Reply-To: paul@xen.org
Subject: Re: [PATCH] public: add RING_NR_UNCONSUMED_*() macros to ring.h
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Manuel Bouyer <bouyer@antioche.eu.org>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Paul Durrant <paul@xen.org>
References: <20211126065547.22644-1-jgross@suse.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20211126065547.22644-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 25/11/2021 22:55, Juergen Gross wrote:
> Today RING_HAS_UNCONSUMED_*() macros are returning the number of
> unconsumed requests or responses instead of a boolean as the name of
> the macros would imply.
> 
> As this "feature" is already being used, rename the macros to
> RING_NR_UNCONSUMED_*() and define the RING_HAS_UNCONSUMED_*() macros
> by using the new RING_NR_UNCONSUMED_*() macros. In order to avoid
> future misuse let RING_HAS_UNCONSUMED_*() really return a boolean.
> 
> Note that the known misuses need to be switched to the new
> RING_NR_UNCONSUMED_*() macros when using this version of ring.h.
> 
> Cc: Roger Pau Monne <roger.pau@citrix.com>
> Cc: Manuel Bouyer <bouyer@antioche.eu.org>
> Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
> Cc: Paul Durrant <paul@xen.org>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> I have checked Xen, Mini-OS, qemu, grub2, OVMF and Linux kernel for
> misuses of the RING_HAS_UNCONSUMED_*() macros. There is currently only
> one instance in the Linux kernel netback driver. The BSDs, UNIKRAFT
> and Windows PV drivers should be checked for misuse, too.

I don't think there will be any problem with Windows.

   Paul


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 21:04:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 21:04:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234219.406501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRLK-0005if-Sm; Sun, 28 Nov 2021 21:04:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234219.406501; Sun, 28 Nov 2021 21:04:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRLK-0005iY-Pd; Sun, 28 Nov 2021 21:04:14 +0000
Received: by outflank-mailman (input) for mailman id 234219;
 Sun, 28 Nov 2021 21:04:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=YMG7=QP=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mrRLJ-0005iS-9k
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 21:04:13 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc9e92a0-508e-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 22:04:12 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id t11so30546960ljh.6
 for <xen-devel@lists.xenproject.org>; Sun, 28 Nov 2021 13:04:12 -0800 (PST)
Received: from [192.168.2.145] (94-29-46-111.dynamic.spd-mgts.ru.
 [94.29.46.111])
 by smtp.googlemail.com with ESMTPSA id c17sm1100736lfr.235.2021.11.28.13.04.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 28 Nov 2021 13:04:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc9e92a0-508e-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=wtn5Hkee5e4Yh99ylBrB3oNbIRTQMbXx6i2LcHRuAAA=;
        b=D7axuJW5K4soTW7ePg2XEY/iNxftObXK2r+AyGGcLpSZUVVVDeOdARXPvJKsrnTiWz
         AoAXcXPY5kZDAFmNd2VORgyu8fNJK2h3Akf7Z4wOIV4j7hl4k+Lg94oWKvPyZvxvLsrU
         gHjqykqz9pVTUOOpARf13AebW7syYSoupun9EMn0XvrUZckKr/LqJa+4eSWKEzDWJLdo
         K7OPzWs09+Av5yHcfZj3Q7MZQ+BDltCGiVFFVwhBt7T15YiSiT0WAJ3uiNnPq9pF4dyU
         I8pWXsXnC3XNCL+7zY4D1T6JR7EW9moTsiVuNSfEmpW1ojxHFbjsYoYQXbcJq5XV5+Um
         iPxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=wtn5Hkee5e4Yh99ylBrB3oNbIRTQMbXx6i2LcHRuAAA=;
        b=baTsX54WlnLjvE9joKKuO6rWnzzHEHtWZwwbvI5tmQurTPLp0RijvikPz/kEvdVlAA
         BRjTwjbr/WTb/hf/p0pWd0DMjB2jtRVA9bf7eFAaK0mKtmx4/JpiZADWA7m/3OTaaqmk
         vmK3rWzXjmbgbYmc1+Z8VZfLNHgyDVU2HN9NgHN/AHC0uZaBXwlwqKCa9y1L3ZMZGBry
         d7yE2QksrGyeBr28kO8/ojG0euMqR4JqjNjXF+7CrncF6Cf8wab5GFenTqx9WeqniZ7B
         tYon8W5Ecn0+zHem5aKyr8R9fXNz5nyH8MKYiXHDpYG0/wmEdA2FgjEZTdyhkCHeWmbS
         kFlA==
X-Gm-Message-State: AOAM530oC53xhz2ieEh+j44kSo2Hs3ui/H+gRRhZ3X6xqGHG2ZmGweOH
	GDtapkWOSyG5no35VMd4/XI=
X-Google-Smtp-Source: ABdhPJxH7knkFdz7TFpFlawyIdB41srtPJMqsrOfzCPJDLK6AlWk3m8N6okcECoeJRZyDtP9PR9VhQ==
X-Received: by 2002:a05:651c:1257:: with SMTP id h23mr44458754ljh.17.1638133451873;
        Sun, 28 Nov 2021 13:04:11 -0800 (PST)
Subject: Re: [PATCH v4 08/25] kernel: Add combined power-off+restart handler
 call chain API
To: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= <mirq-linux@rere.qmqm.pl>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
 Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer
 <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Sebastian Reichel <sre@kernel.org>, Linus Walleij
 <linus.walleij@linaro.org>, Philipp Zabel <p.zabel@pengutronix.de>,
 Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>,
 Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
 "K . C . Kuen-Chern Lin" <kclin@andestech.com>,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
 linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-9-digetx@gmail.com> <YaLQqks8cB0vWp6Q@qmqm.qmqm.pl>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <9213569e-0f40-0df1-4710-8dab564e12d6@gmail.com>
Date: Mon, 29 Nov 2021 00:04:01 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YaLQqks8cB0vWp6Q@qmqm.qmqm.pl>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

28.11.2021 03:43, Michał Mirosław пишет:
> On Fri, Nov 26, 2021 at 09:00:44PM +0300, Dmitry Osipenko wrote:
>> SoC platforms often have multiple ways of how to perform system's
>> power-off and restart operations. Meanwhile today's kernel is limited to
>> a single option. Add combined power-off+restart handler call chain API,
>> which is inspired by the restart API. The new API provides both power-off
>> and restart functionality.
>>
>> The old pm_power_off method will be kept around till all users are
>> converted to the new API.
>>
>> Current restart API will be replaced by the new unified API since
>> new API is its superset. The restart functionality of the sys-off handler
>> API is built upon the existing restart-notifier APIs.
>>
>> In order to ease conversion to the new API, convenient helpers are added
>> for the common use-cases. They will reduce amount of boilerplate code and
>> remove global variables. These helpers preserve old behaviour for cases
>> where only one power-off handler is expected, this is what all existing
>> drivers want, and thus, they could be easily converted to the new API.
>> Users of the new API should explicitly enable power-off chaining by
>> setting corresponding flag of the power_handler structure.
> [...]
> 
> Hi,
> 
> A general question: do we really need three distinct chains for this?

Hello Michał,

At minimum this makes code easier to follow.

> Can't there be only one that chain of callbacks that get a stage
> (RESTART_PREPARE, RESTART, POWER_OFF_PREPARE, POWER_OFF) and can ignore
> them at will? Calling through POWER_OFF_PREPARE would also return
> whether that POWER_OFF is possible (for kernel_can_power_off()).

I'm having trouble with parsing this comment. Could you please try to
rephrase it? I don't see how you could check whether power-off handler
is available if you'll mix all handlers together.

> I would also split this patch into preparation cleanups (like wrapping
> pm_power_off call with a function) and adding the notifier-based
> implementation.

What's the benefit of this split up will be? Are you suggesting that it
will ease reviewing of this patch or something else?


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 21:05:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 21:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234222.406513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRLz-0006HK-Ad; Sun, 28 Nov 2021 21:04:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234222.406513; Sun, 28 Nov 2021 21:04:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRLz-0006HD-6A; Sun, 28 Nov 2021 21:04:55 +0000
Received: by outflank-mailman (input) for mailman id 234222;
 Sun, 28 Nov 2021 21:04:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=YMG7=QP=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mrRLx-0006Dq-Ee
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 21:04:53 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4cd3caf-508e-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 22:04:52 +0100 (CET)
Received: by mail-lj1-x22c.google.com with SMTP id i63so30602081lji.3
 for <xen-devel@lists.xenproject.org>; Sun, 28 Nov 2021 13:04:52 -0800 (PST)
Received: from [192.168.2.145] (94-29-46-111.dynamic.spd-mgts.ru.
 [94.29.46.111])
 by smtp.googlemail.com with ESMTPSA id d30sm1105908lfv.58.2021.11.28.13.04.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 28 Nov 2021 13:04:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4cd3caf-508e-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=n+c+fNjlqpkODMNA/7ywsu2Xpxn181Yex3QT1BC7YkM=;
        b=Tdth5Mz95ILIP2wZ5DYmwGwqL/g2a8NQfIdIuxgXXVVg6RH3yDMvHbIjMPlUPQ+Kfi
         e7TNCwLl7gW+gWhWCzY5kWF31Q6d3MXbcfyHlK5mTJBCO9B0yoazspZoQ9QauZAg4VOZ
         GU1Du/NMRetIl1HCPpoZ/wmPwFcTZx09G+/z/T3SmJwaMw6FiTLYrkBEti6ebPBTNx4P
         ztESfCaJHpZ8ANbOeJv7E8GcPhKYp2JvSlX4AwC23x/kyRaPVi2WsI1lt1XYwZg48qKe
         Ljtqv2XVdBLjgOpaFjZQzH+Idsti2zOEBowM2JGqBDzv5KQCJSPSnTBTLx3XoGX8clP3
         1rSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=n+c+fNjlqpkODMNA/7ywsu2Xpxn181Yex3QT1BC7YkM=;
        b=XZOlFk1HKDmyGM2V6bA+LgRQlp/LSBWMrkzWT65e40rlErrfLwxnWLQ3RCETp7mSFd
         QWXqOvNLTWsziAyCk31Y4uYpfN1j830IIne0lAl5fGsW2EA04l16rO3do1UsPauFGrYZ
         fkd9E+HmDnkK3xKZCkeuOKhym0Fz+j3P84xyGf/p9DDoQdVQwYJjQ8O5DnX4ySCjw/lc
         wFXm/iAsq5h1vZMnyyWo2Gg15vJHNng3HdxeeYI1jlqyXL0X8P/seftvtAHVyEDBACAJ
         nBH6SZbALpUmHKjVOcJTVywMCu7rfoszb+gV2xEctHP10ZzibEOioIZ5R97Ow1m3rMc6
         z7ZA==
X-Gm-Message-State: AOAM532DsZ+Lfe2n5rLomD6c/+hkh+Lpe0iqBY+6zCXyfybalDIhwUQZ
	S0lFSFOJxwj2QCm47RVgHso=
X-Google-Smtp-Source: ABdhPJyuVlGCEG84pwfg6BbsVNdI4G/2tvLYelnsvUn7CQTQlf25Ym3pMWyWhlfLoQNWZ9AePptWxg==
X-Received: by 2002:a2e:97cb:: with SMTP id m11mr45829799ljj.324.1638133492517;
        Sun, 28 Nov 2021 13:04:52 -0800 (PST)
Subject: Re: [PATCH v4 22/25] memory: emif: Use kernel_can_power_off()
To: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= <mirq-linux@rere.qmqm.pl>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
 Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer
 <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Sebastian Reichel <sre@kernel.org>, Linus Walleij
 <linus.walleij@linaro.org>, Philipp Zabel <p.zabel@pengutronix.de>,
 Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>,
 Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
 "K . C . Kuen-Chern Lin" <kclin@andestech.com>,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
 linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-23-digetx@gmail.com> <YaLaH3Yt2M/Gko//@qmqm.qmqm.pl>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <98c5c3d3-1635-3a06-b57f-8facd409796a@gmail.com>
Date: Mon, 29 Nov 2021 00:04:43 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YaLaH3Yt2M/Gko//@qmqm.qmqm.pl>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

28.11.2021 04:23, Michał Mirosław пишет:
> On Fri, Nov 26, 2021 at 09:00:58PM +0300, Dmitry Osipenko wrote:
>> Replace legacy pm_power_off with kernel_can_power_off() helper that
>> is aware about chained power-off handlers.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>>  drivers/memory/emif.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c
>> index 762d0c0f0716..cab10d5274a0 100644
>> --- a/drivers/memory/emif.c
>> +++ b/drivers/memory/emif.c
>> @@ -630,7 +630,7 @@ static irqreturn_t emif_threaded_isr(int irq, void *dev_id)
>>  		dev_emerg(emif->dev, "SDRAM temperature exceeds operating limit.. Needs shut down!!!\n");
>>  
>>  		/* If we have Power OFF ability, use it, else try restarting */
>> -		if (pm_power_off) {
>> +		if (kernel_can_power_off()) {
>>  			kernel_power_off();
>>  		} else {
>>  			WARN(1, "FIXME: NO pm_power_off!!! trying restart\n");
> 
> BTW, this part of the code seems to be better moved to generic code that
> could replace POWER_OFF request with REBOOT like it is done for reboot()
> syscall.

Not sure that it can be done. Somebody will have to verify that it won't
break all those platform power-off handlers. Better to keep this code
as-is in the context of this patchset.


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 21:06:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 21:06:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234231.406524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRNW-0006w5-Ko; Sun, 28 Nov 2021 21:06:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234231.406524; Sun, 28 Nov 2021 21:06:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRNW-0006vy-Hf; Sun, 28 Nov 2021 21:06:30 +0000
Received: by outflank-mailman (input) for mailman id 234231;
 Sun, 28 Nov 2021 21:06:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=YMG7=QP=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mrRNV-0006v4-IK
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 21:06:29 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e1572b1-508f-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 22:06:28 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id k37so39285023lfv.3
 for <xen-devel@lists.xenproject.org>; Sun, 28 Nov 2021 13:06:28 -0800 (PST)
Received: from [192.168.2.145] (94-29-46-111.dynamic.spd-mgts.ru.
 [94.29.46.111])
 by smtp.googlemail.com with ESMTPSA id v2sm1096217lfb.258.2021.11.28.13.06.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 28 Nov 2021 13:06:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e1572b1-508f-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=dBFzSL4UYCAYQqmDupNTSShpvRMUEbaJ9Mx4K7HGHPc=;
        b=oml1oX0ZWjhkzuRjHJtH1XTn55+HCuWM51eukHmTMUsqYvepCYTnsQ8nmJ1fi6Ny8O
         hk+9nsbkv1H426inD0KEeQ2Fx2c/aojT5orC8a1HaRiSAHCfbZ4GibLUq6jXw8umdLa+
         7Npmf61QEFnfrTJUhnvyNQXEcG3o44nwO/yhewKgQ2Tv5+cyXPwRAr9avOHgipiR7uOU
         3lG/X5TvXt9e7Baba1QmnryaUy282ao9aOX5wnj9w2azfGP26R8Qk0MYK0SZQyDuBX5E
         nJWhN9xVkrVnERfId0Z6c0a3FiVVFjBlUiijA64WcIz/4PjWlAuAjWR6TMU93ETZJ9CC
         EpYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=dBFzSL4UYCAYQqmDupNTSShpvRMUEbaJ9Mx4K7HGHPc=;
        b=epaP/dK4+FVrtHBLza1H0UadN5Pj+mYHrPFk14nOYYvwgMXuveYJwugDhDgl0Nbgv2
         qinyv6sSmbNpz4AsV4vgtVYBzmkTV2IbxM4FPNsDba2sxUJ+gEya51+TXUbcnLgp72I+
         iLLecJe8S1RLEVX/0QXEQWOJDkLoW0rUfbtUPksne1sVV8nOibIDQ3ly8mVcOo9Bvhgp
         MTrO4RW1x44eNEoB7oYQ83+xqNYo1avaS2tVksK8JWSGnjR31EBto4BMARpv5Xxei6/d
         ZChfLN+EunSzXH5R9WIAmyJTm9HDrsS8SZZ3SEjH1IoMjsMOw27qGXyfQVDmiYD3dM+E
         6agA==
X-Gm-Message-State: AOAM532Ti8RuAl33+PZGnZmPDJfKGRd/ovKk1SoQkDbNfIUjiQVLcQkI
	JmlvIGWaTktV1SWCxRhK1Lk=
X-Google-Smtp-Source: ABdhPJw8DbrxRHQUKfkUrzcq3jrRe892hdaQjtTmhQ/Pf+osYN9e0RKllfwyJmy+SLn8xY0V3MlxVg==
X-Received: by 2002:a05:6512:3fa1:: with SMTP id x33mr34004371lfa.676.1638133588639;
        Sun, 28 Nov 2021 13:06:28 -0800 (PST)
Subject: Re: [PATCH v4 05/25] reboot: Warn if restart handler has duplicated
 priority
To: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= <mirq-linux@rere.qmqm.pl>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
 Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer
 <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Sebastian Reichel <sre@kernel.org>, Linus Walleij
 <linus.walleij@linaro.org>, Philipp Zabel <p.zabel@pengutronix.de>,
 Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>,
 Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
 "K . C . Kuen-Chern Lin" <kclin@andestech.com>,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
 linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-6-digetx@gmail.com> <YaLNOJTM+lVq+YNS@qmqm.qmqm.pl>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <033ddf2a-6223-1a82-ec64-30f17c891f67@gmail.com>
Date: Mon, 29 Nov 2021 00:06:19 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YaLNOJTM+lVq+YNS@qmqm.qmqm.pl>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

28.11.2021 03:28, Michał Mirosław пишет:
> On Fri, Nov 26, 2021 at 09:00:41PM +0300, Dmitry Osipenko wrote:
>> Add sanity check which ensures that there are no two restart handlers
>> registered with the same priority. Normally it's a direct sign of a
>> problem if two handlers use the same priority.
> 
> The patch doesn't ensure the property that there are no duplicated-priority
> entries on the chain.

It's not the exact point of this patch.

> I'd rather see a atomic_notifier_chain_register_unique() that returns
> -EBUSY or something istead of adding an entry with duplicate priority.
> That way it would need only one list traversal unless you want to
> register the duplicate anyway (then you would call the older
> atomic_notifier_chain_register() after reporting the error).

The point of this patch is to warn developers about the problem that
needs to be fixed. We already have such troubling drivers in mainline.

It's not critical to register different handlers with a duplicated
priorities, but such cases really need to be corrected. We shouldn't
break users' machines during transition to the new API, meanwhile
developers should take action of fixing theirs drivers.

> (Or you could return > 0 when a duplicate is registered in
> atomic_notifier_chain_register() if the callers are prepared
> for that. I don't really like this way, though.)

I had a similar thought at some point before and decided that I'm not in
favor of this approach. It's nicer to have a dedicated function that
verifies the uniqueness, IMO.


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 21:07:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 21:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234236.406535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRO8-0007Us-Tx; Sun, 28 Nov 2021 21:07:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234236.406535; Sun, 28 Nov 2021 21:07:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRO8-0007Ul-Qx; Sun, 28 Nov 2021 21:07:08 +0000
Received: by outflank-mailman (input) for mailman id 234236;
 Sun, 28 Nov 2021 21:07:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=YMG7=QP=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mrRO7-0007TI-OW
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 21:07:07 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24d29da2-508f-11ec-976b-d102b41d0961;
 Sun, 28 Nov 2021 22:07:07 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id r26so39233723lfn.8
 for <xen-devel@lists.xenproject.org>; Sun, 28 Nov 2021 13:07:07 -0800 (PST)
Received: from [192.168.2.145] (94-29-46-111.dynamic.spd-mgts.ru.
 [94.29.46.111])
 by smtp.googlemail.com with ESMTPSA id s13sm1104272lfg.126.2021.11.28.13.07.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 28 Nov 2021 13:07:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24d29da2-508f-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=Kep6H8+bfVZ1xeLjsaS2A7zU/qUFFdJhuzBNEKDyf18=;
        b=MXJpk4bHJWHUsXnttmXJmMehCMhy9keZTcA7B/bYgzynu+fs9AEzA0zWS1didKGcXM
         ufZY1nIVOAfP0n1FcIj/YQO+JHOspxllH7lEwqxum4orCJ0HB2fsnMEDGJmWeH/qyrsf
         tBfKAbmns7/1QIwfCwYfnwageJ9+iaZP7wrA89IK5FuGsmtz3WgnEbf4CfOtVYKh+y1P
         P/ivsGXGLfJ8qk+PLiIxuT1vyrHF2S+SyEG3Jc+cuHLep64IrIJ92EMzFal/KsyKC+gQ
         ETMGdua/dzs6IwN9uDl7VCnKUva5ihWYK7VOkSKYM4fVdcc0cO/WridgO5+laEgsd2tU
         tz4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=Kep6H8+bfVZ1xeLjsaS2A7zU/qUFFdJhuzBNEKDyf18=;
        b=qS359CYMXCGEgC7f2GA4oYoEcspTu7TapDbiGB55rioVMoSBVnIXc+qFMwcLc9R5D+
         nFIhDnOS78hXv3g0tTNTY2R+mH0YdIQA8lhPAQOE7FKbn9f94VXYfPZ6MwlFh9PxeMXv
         guPTbDf9JQi2Ia9dZhGkBnmhgoAFxhmDlNXiF0YNTWPUOOdoFMcxR5HW+5O3Oy8cNQk9
         CQmZQixtnqYSD8oeVQxN1jSgOOzxI8RvmXOD2XvZG6N9Mm3vndUtzPdfrAI+djAG5KgO
         ln8r+kLdHMtyXddbWA6EoMJkESotI0tebnsROHQWsmA/KHHNT7fMYvraujrSmdxyjCQC
         NUcw==
X-Gm-Message-State: AOAM530jDXOfEqB/QfEZz6h+E37oLr3Q+5xr4uiwvf5Lc+d9IrHdFWv9
	rzAGJ0KeH3I5piox0DwV0RE=
X-Google-Smtp-Source: ABdhPJy4zl/AZzFPwJNVkHu3GSDT6aqXWQbZeWCJLgVwlcbzfRDN23rTDTUYoWjDb/oPahZVEVnA9Q==
X-Received: by 2002:a19:5e59:: with SMTP id z25mr43385851lfi.686.1638133626682;
        Sun, 28 Nov 2021 13:07:06 -0800 (PST)
Subject: Re: [PATCH v4 18/25] x86: Use do_kernel_power_off()
To: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= <mirq-linux@rere.qmqm.pl>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
 Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer
 <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Sebastian Reichel <sre@kernel.org>, Linus Walleij
 <linus.walleij@linaro.org>, Philipp Zabel <p.zabel@pengutronix.de>,
 Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>,
 Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
 "K . C . Kuen-Chern Lin" <kclin@andestech.com>,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
 linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-19-digetx@gmail.com> <YaLYR24XRijSmBq3@qmqm.qmqm.pl>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <3082ba7a-f8f6-b2d9-5ae3-ec639b1a6bee@gmail.com>
Date: Mon, 29 Nov 2021 00:06:57 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YaLYR24XRijSmBq3@qmqm.qmqm.pl>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

28.11.2021 04:15, Michał Mirosław пишет:
> On Fri, Nov 26, 2021 at 09:00:54PM +0300, Dmitry Osipenko wrote:
>> Kernel now supports chained power-off handlers. Use do_kernel_power_off()
>> that invokes chained power-off handlers. It also invokes legacy
>> pm_power_off() for now, which will be removed once all drivers will
>> be converted to the new power-off API.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>>  arch/x86/kernel/reboot.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
>> index 0a40df66a40d..cd7d9416d81a 100644
>> --- a/arch/x86/kernel/reboot.c
>> +++ b/arch/x86/kernel/reboot.c
>> @@ -747,10 +747,10 @@ static void native_machine_halt(void)
>>  
>>  static void native_machine_power_off(void)
>>  {
>> -	if (pm_power_off) {
>> +	if (kernel_can_power_off()) {
>>  		if (!reboot_force)
>>  			machine_shutdown();
>> -		pm_power_off();
>> +		do_kernel_power_off();
>>  	}
> 
> Judging from an old commit from 2006 [1], this can be rewritten as:
> 
> if (!reboot_force && kernel_can_power_off())
> 	machine_shutdown();
> do_kernel_power_off();
> 
> And maybe later reworked so it doesn't need kernel_can_power_off().
> 
> [1] http://lkml.iu.edu/hypermail//linux/kernel/0511.3/0681.html

It could be rewritten like you're suggesting, but I'd prefer to keep the
old variant, for clarity.


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 21:17:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 21:17:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234243.406546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRY0-0000c9-Ua; Sun, 28 Nov 2021 21:17:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234243.406546; Sun, 28 Nov 2021 21:17:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrRY0-0000c2-QF; Sun, 28 Nov 2021 21:17:20 +0000
Received: by outflank-mailman (input) for mailman id 234243;
 Sun, 28 Nov 2021 21:17:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LJYX=QP=rere.qmqm.pl=mirq-linux@srs-se1.protection.inumbo.net>)
 id 1mrRXz-0000bw-No
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 21:17:19 +0000
Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90fa3c66-5090-11ec-b941-1df2895da90e;
 Sun, 28 Nov 2021 22:17:18 +0100 (CET)
Received: from remote.user (localhost [127.0.0.1])
 by rere.qmqm.pl (Postfix) with ESMTPSA id 4J2LsJ1Lcdz9y;
 Sun, 28 Nov 2021 22:17:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90fa3c66-5090-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1;
	t=1638134236; bh=AVVRrFppT2KXeoQ1knr4qxNAWz0fqZEqjSZX5XRty4k=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=qeLiiTlDKcoC3FvftCsYmUekeo8vu2N1pSF3fCD2tgheWVvyonhdof+qu+Ea9djoI
	 F0VfIqhNPcyB+IepSkiEVfWMkXITXgi5yRN5hDrKipQbOIN/UYPiCQ3ypFE5/lr3yX
	 t143o/oCoxAN5HQdJgLvzJt9p7M6RWXHGnJUqKSETKZD7q6dZ+W4qIz0kh2v3idXT1
	 jUvuN2o4SCcowRIIDi5HFtYotMwlOnPhdI33AjtMrxHoxjMEAOO/hdSLgu27razlyO
	 MB5TcQY9Ad3wE8nllR9aML4jKPT5UuRgghYO2j4ETJ73vP6/OvL2peMilDKCW68Ia0
	 6xDNHfFLM+f6A==
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.103.3 at mail
Date: Sun, 28 Nov 2021 22:17:06 +0100
From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= <mirq-linux@rere.qmqm.pl>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH v4 08/25] kernel: Add combined power-off+restart handler
 call chain API
Message-ID: <YaPx0kY7poGpwCL9@qmqm.qmqm.pl>
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-9-digetx@gmail.com>
 <YaLQqks8cB0vWp6Q@qmqm.qmqm.pl>
 <9213569e-0f40-0df1-4710-8dab564e12d6@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <9213569e-0f40-0df1-4710-8dab564e12d6@gmail.com>

On Mon, Nov 29, 2021 at 12:04:01AM +0300, Dmitry Osipenko wrote:
> 28.11.2021 03:43, Michał Mirosław пишет:
> > On Fri, Nov 26, 2021 at 09:00:44PM +0300, Dmitry Osipenko wrote:
> >> SoC platforms often have multiple ways of how to perform system's
> >> power-off and restart operations. Meanwhile today's kernel is limited to
> >> a single option. Add combined power-off+restart handler call chain API,
> >> which is inspired by the restart API. The new API provides both power-off
> >> and restart functionality.
> >>
> >> The old pm_power_off method will be kept around till all users are
> >> converted to the new API.
> >>
> >> Current restart API will be replaced by the new unified API since
> >> new API is its superset. The restart functionality of the sys-off handler
> >> API is built upon the existing restart-notifier APIs.
> >>
> >> In order to ease conversion to the new API, convenient helpers are added
> >> for the common use-cases. They will reduce amount of boilerplate code and
> >> remove global variables. These helpers preserve old behaviour for cases
> >> where only one power-off handler is expected, this is what all existing
> >> drivers want, and thus, they could be easily converted to the new API.
> >> Users of the new API should explicitly enable power-off chaining by
> >> setting corresponding flag of the power_handler structure.
> > [...]
> > 
> > Hi,
> > 
> > A general question: do we really need three distinct chains for this?
> 
> Hello Michał,
> 
> At minimum this makes code easier to follow.
> 
> > Can't there be only one that chain of callbacks that get a stage
> > (RESTART_PREPARE, RESTART, POWER_OFF_PREPARE, POWER_OFF) and can ignore
> > them at will? Calling through POWER_OFF_PREPARE would also return
> > whether that POWER_OFF is possible (for kernel_can_power_off()).
> 
> I'm having trouble with parsing this comment. Could you please try to
> rephrase it? I don't see how you could check whether power-off handler
> is available if you'll mix all handlers together.

If notify_call_chain() would be fixed to return NOTIFY_OK if any call
returned NOTIFY_OK, then this would be a clear way to gather the
answer if any of the handlers will attempt the final action (reboot or
power off).

> 
> > I would also split this patch into preparation cleanups (like wrapping
> > pm_power_off call with a function) and adding the notifier-based
> > implementation.
> 
> What's the benefit of this split up will be? Are you suggesting that it
> will ease reviewing of this patch or something else?

Mainly to ease review, as the wrapping will be a no-op, but the addition
of notifier chain changes semantics a bit.

Best Regards
Michał Mirosław


From xen-devel-bounces@lists.xenproject.org Sun Nov 28 21:54:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Nov 2021 21:54:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234264.406565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrS7W-0004ng-T0; Sun, 28 Nov 2021 21:54:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234264.406565; Sun, 28 Nov 2021 21:54:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrS7W-0004nZ-PZ; Sun, 28 Nov 2021 21:54:02 +0000
Received: by outflank-mailman (input) for mailman id 234264;
 Sun, 28 Nov 2021 21:54:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=YMG7=QP=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mrS7V-0004nQ-Pc
 for xen-devel@lists.xenproject.org; Sun, 28 Nov 2021 21:54:01 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b20f51a3-5095-11ec-976b-d102b41d0961;
 Sun, 28 Nov 2021 22:54:01 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id u3so39445017lfl.2
 for <xen-devel@lists.xenproject.org>; Sun, 28 Nov 2021 13:54:01 -0800 (PST)
Received: from [192.168.2.145] (94-29-46-111.dynamic.spd-mgts.ru.
 [94.29.46.111])
 by smtp.googlemail.com with ESMTPSA id w15sm1168884ljo.97.2021.11.28.13.53.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 28 Nov 2021 13:54:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b20f51a3-5095-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=6vgwLT/ouzyM4jlzEumPwuoC7gyZzE5j02z7WHT5gL0=;
        b=Ve2rGzh1LJA0+OcOlbbQ73O4vszbugE425G36NIT/LJkRhFMX190Vmwf9Z1u+DozQy
         nt7KBoHLP6NcqsCJJVf/XMiWi1msgC02rhfjLu8CKl0SI+0RrFvUKjFjlZH7bdfHOiEX
         jvvRM0yX0DY0N616Cr6USUXBiFSTo4izfqBOoNpjwV+G+cH1cFHUwmonpjoWJX8Ppl5i
         8dEUJUKATxCUbOfS4VM/cGGt6HuPu0povTPAj3Y6GTkQG70Ogmn5eg+CfWVBj+3pxNr6
         ReZIvwRQlO/G/fnEj5DP0/liBCD4UXfZ78eAcvQevgGY/DQsBvKDeMEPHSEvbIQ59N2I
         efCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=6vgwLT/ouzyM4jlzEumPwuoC7gyZzE5j02z7WHT5gL0=;
        b=UHzw20klSYhU9JreG0u22kw4ZrGjV8TLTo1AQmxOOyjYwhTGw16VjRy2A9+275Iqvk
         puV1s4bJ0kamh7FSByzZdlSrEp5t5aEMBw7ghVcs/HbFnUe0fOlaDMGTEpDn8W8EpEjS
         1d5pzTgf6kmS9zjWzXj6/13ACTjW1sAeN0zqnsfn9x8A+3kOkekGY6P47+poRMoWU2a9
         dkpit8B9OPqs9e//BLC+fApeW/hI2CwO1qWAEumaYzTGRxWL7Qog35YHSPEieHihcuex
         EXby0GLkZyuXtu+qB13Nn7lJ/RMiJ+dmRyFTjA1cCti1tSo23vcbvaA4d8LFie4vQD2G
         Zn7A==
X-Gm-Message-State: AOAM530TtTim5k65y2yAR7unNfkP+eFcyogTY9ijksMTjZund9voqrfc
	1VskStSDFmTtPEu5rtrGz/U=
X-Google-Smtp-Source: ABdhPJxrac6Czjs8U2D2QGSscJN4jhlYtGpRqd/e7TNYLEXAP/IVggs/yFEWoCFlClXMagpvBwvrwg==
X-Received: by 2002:a05:6512:3c82:: with SMTP id h2mr44786433lfv.128.1638136440658;
        Sun, 28 Nov 2021 13:54:00 -0800 (PST)
Subject: Re: [PATCH v4 08/25] kernel: Add combined power-off+restart handler
 call chain API
To: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= <mirq-linux@rere.qmqm.pl>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
 Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer
 <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Sebastian Reichel <sre@kernel.org>, Linus Walleij
 <linus.walleij@linaro.org>, Philipp Zabel <p.zabel@pengutronix.de>,
 Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>,
 Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
 "K . C . Kuen-Chern Lin" <kclin@andestech.com>,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
 linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-9-digetx@gmail.com> <YaLQqks8cB0vWp6Q@qmqm.qmqm.pl>
 <9213569e-0f40-0df1-4710-8dab564e12d6@gmail.com>
 <YaPx0kY7poGpwCL9@qmqm.qmqm.pl>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <1fa2d9d5-f5f6-77f5-adf6-827921acce49@gmail.com>
Date: Mon, 29 Nov 2021 00:53:51 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YaPx0kY7poGpwCL9@qmqm.qmqm.pl>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

29.11.2021 00:17, Michał Mirosław пишет:
>> I'm having trouble with parsing this comment. Could you please try to
>> rephrase it? I don't see how you could check whether power-off handler
>> is available if you'll mix all handlers together.
> If notify_call_chain() would be fixed to return NOTIFY_OK if any call
> returned NOTIFY_OK, then this would be a clear way to gather the
> answer if any of the handlers will attempt the final action (reboot or
> power off).
> 

Could you please show a code snippet that implements your suggestion?


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 00:27:36 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 00:27:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234270.406575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrUVX-00025F-Rm; Mon, 29 Nov 2021 00:26:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234270.406575; Mon, 29 Nov 2021 00:26:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrUVX-000258-Oo; Mon, 29 Nov 2021 00:26:59 +0000
Received: by outflank-mailman (input) for mailman id 234270;
 Mon, 29 Nov 2021 00:26:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EiCZ=QQ=rere.qmqm.pl=mirq-linux@srs-se1.protection.inumbo.net>)
 id 1mrUVW-000252-BQ
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 00:26:58 +0000
Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ed3275e-50ab-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 01:26:56 +0100 (CET)
Received: from remote.user (localhost [127.0.0.1])
 by rere.qmqm.pl (Postfix) with ESMTPSA id 4J2R463HYCz9Y;
 Mon, 29 Nov 2021 01:26:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ed3275e-50ab-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1;
	t=1638145614; bh=rYhG1/gOEGdeEm/s8Gt8rEBk1iF8QMIsgq7S9tytKm0=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=CbL6Dkr0hp6+eWfnOkswWvW2NOKJ79Uh6/l2ZCnK5kWTiOO50iqx187Rg4dryYZZY
	 bxYRz4m9fgWtZVh11lmgMaMMzocpKUJUWIlke/44DEMmzJJm4vDOSxFAyf1Gq25nhd
	 1THlT17c8aj7yKXukSvNxOS2rqgVH1j/XRMa1p7Hswrcs4jJdmmxtpOwmRnm9PweUg
	 dgln8/6i94ET+XVFAx+2l6pzk4WNbL+PWxg255szxizJhOsvQ3eK1ntEQbcIyPN3HU
	 KJwCs9dJC+yqQftWDNSkBS/r4FvpiW2ousq8It65okWyLREqQTSJR+N2Sf4mDmjtBp
	 iZvEDATRHwtcA==
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.103.3 at mail
Date: Mon, 29 Nov 2021 01:26:42 +0100
From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= <mirq-linux@rere.qmqm.pl>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH v4 05/25] reboot: Warn if restart handler has duplicated
 priority
Message-ID: <YaQeQgbW+CjEdsqG@qmqm.qmqm.pl>
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-6-digetx@gmail.com>
 <YaLNOJTM+lVq+YNS@qmqm.qmqm.pl>
 <033ddf2a-6223-1a82-ec64-30f17c891f67@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <033ddf2a-6223-1a82-ec64-30f17c891f67@gmail.com>

On Mon, Nov 29, 2021 at 12:06:19AM +0300, Dmitry Osipenko wrote:
> 28.11.2021 03:28, Michał Mirosław пишет:
> > On Fri, Nov 26, 2021 at 09:00:41PM +0300, Dmitry Osipenko wrote:
> >> Add sanity check which ensures that there are no two restart handlers
> >> registered with the same priority. Normally it's a direct sign of a
> >> problem if two handlers use the same priority.
> > 
> > The patch doesn't ensure the property that there are no duplicated-priority
> > entries on the chain.
> 
> It's not the exact point of this patch.
> 
> > I'd rather see a atomic_notifier_chain_register_unique() that returns
> > -EBUSY or something istead of adding an entry with duplicate priority.
> > That way it would need only one list traversal unless you want to
> > register the duplicate anyway (then you would call the older
> > atomic_notifier_chain_register() after reporting the error).
> 
> The point of this patch is to warn developers about the problem that
> needs to be fixed. We already have such troubling drivers in mainline.
> 
> It's not critical to register different handlers with a duplicated
> priorities, but such cases really need to be corrected. We shouldn't
> break users' machines during transition to the new API, meanwhile
> developers should take action of fixing theirs drivers.
> 
> > (Or you could return > 0 when a duplicate is registered in
> > atomic_notifier_chain_register() if the callers are prepared
> > for that. I don't really like this way, though.)
> 
> I had a similar thought at some point before and decided that I'm not in
> favor of this approach. It's nicer to have a dedicated function that
> verifies the uniqueness, IMO.

I don't like the part that it traverses the list second time to check
the uniqueness. But actually you could avoid that if
notifier_chain_register() would always add equal-priority entries in
reverse order:

 static int notifier_chain_register(struct notifier_block **nl,
 		struct notifier_block *n)
 {
 	while ((*nl) != NULL) {
 		if (unlikely((*nl) == n)) {
 			WARN(1, "double register detected");
 			return 0;
 		}
-		if (n->priority > (*nl)->priority)
+		if (n->priority >= (*nl)->priority)
 			break;
 		nl = &((*nl)->next);
 	}
 	n->next = *nl;
 	rcu_assign_pointer(*nl, n);
 	return 0;
 }

Then the check for uniqueness after adding would be:

 WARN(nb->next && nb->priority == nb->next->priority);

Best Regards
Michał Mirosław


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 00:36:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 00:36:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234276.406587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrUev-0003Vs-Qp; Mon, 29 Nov 2021 00:36:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234276.406587; Mon, 29 Nov 2021 00:36:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrUev-0003Vl-MW; Mon, 29 Nov 2021 00:36:41 +0000
Received: by outflank-mailman (input) for mailman id 234276;
 Mon, 29 Nov 2021 00:36:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EiCZ=QQ=rere.qmqm.pl=mirq-linux@srs-se1.protection.inumbo.net>)
 id 1mrUeu-0003Vf-TL
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 00:36:40 +0000
Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ab7d94c-50ac-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 01:36:39 +0100 (CET)
Received: from remote.user (localhost [127.0.0.1])
 by rere.qmqm.pl (Postfix) with ESMTPSA id 4J2RHF5R6Gz9Y;
 Mon, 29 Nov 2021 01:36:25 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ab7d94c-50ac-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1;
	t=1638146198; bh=DI1VWBOrDzR1kSFvGVwF5e/uC6F95umcWDF0D1gW0co=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=H73sBxsM7L9z8xEfnp2Ak7MzBK8+vuHhYSpX9ZmIw96z66YhhL0jbzAc1kAW4E8/k
	 E+n0myrDaFBdTPW3DCJBAB1QxLCznookgF41GB3ur/8AtJ172fB625fAJLQBCfF2Il
	 1tVB3rwB3wCft3kEONBcl+9mGZ0YFJna/va55m2Id6G5OQJMzxWyiW8mEoVG9uWh4D
	 9FU7cd4y+9BUv1/bcd+v0FTSSINIJ8msC5Z+cow25KP+uSrFkzTmZSbuYJNYmoN8pj
	 wIHmD3sAFqkn2Up4Tyhb9Q0kZcFFYL4JTYDk03Wdeze2AnxwyR74tes3GEAEUnF7BY
	 Uq7OHC/U12/7A==
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.103.3 at mail
Date: Mon, 29 Nov 2021 01:36:24 +0100
From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= <mirq-linux@rere.qmqm.pl>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Sebastian Reichel <sre@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee.jones@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
	"K . C . Kuen-Chern Lin" <kclin@andestech.com>,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH v4 08/25] kernel: Add combined power-off+restart handler
 call chain API
Message-ID: <YaQgiLw03lPyvuhr@qmqm.qmqm.pl>
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-9-digetx@gmail.com>
 <YaLQqks8cB0vWp6Q@qmqm.qmqm.pl>
 <9213569e-0f40-0df1-4710-8dab564e12d6@gmail.com>
 <YaPx0kY7poGpwCL9@qmqm.qmqm.pl>
 <1fa2d9d5-f5f6-77f5-adf6-827921acce49@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1fa2d9d5-f5f6-77f5-adf6-827921acce49@gmail.com>

On Mon, Nov 29, 2021 at 12:53:51AM +0300, Dmitry Osipenko wrote:
> 29.11.2021 00:17, Michał Mirosław пишет:
> >> I'm having trouble with parsing this comment. Could you please try to
> >> rephrase it? I don't see how you could check whether power-off handler
> >> is available if you'll mix all handlers together.
> > If notify_call_chain() would be fixed to return NOTIFY_OK if any call
> > returned NOTIFY_OK, then this would be a clear way to gather the
> > answer if any of the handlers will attempt the final action (reboot or
> > power off).
> Could you please show a code snippet that implements your suggestion?

A rough idea is this:

 static int notifier_call_chain(struct notifier_block **nl,
 			       unsigned long val, void *v,
 			       int nr_to_call, int *nr_calls)
 {
-	int ret = NOTIFY_DONE;
+	int ret, result = NOTIFY_DONE;
 	struct notifier_block *nb, *next_nb;
 
 	nb = rcu_dereference_raw(*nl);
 
 	while (nb && nr_to_call) {
...
 		ret = nb->notifier_call(nb, val, v);
+
+		/* Assuming NOTIFY_STOP-carrying return is always greater than non-stopping one. */
+		if (result < ret)
+			result = ret;
... 
 	}
-	return ret;
+	return result;
 }

Then:

bool prepare_reboot()
{
	int ret = xx_notifier_call_chain(&shutdown_notifier, PREPARE_REBOOT, ...);
	return ret == NOTIFY_OK;
}

And the return value would signify whether the reboot will be attempted
when calling the chain for the REBOOT action. (Analogously for powering off.)

Best Regards
Michał Mirosław


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 00:46:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 00:46:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234281.406598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrUo3-0004xF-NV; Mon, 29 Nov 2021 00:46:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234281.406598; Mon, 29 Nov 2021 00:46:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrUo3-0004x8-Jc; Mon, 29 Nov 2021 00:46:07 +0000
Received: by outflank-mailman (input) for mailman id 234281;
 Mon, 29 Nov 2021 00:46:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrUo2-0004wy-OB; Mon, 29 Nov 2021 00:46:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrUo2-0001pG-G2; Mon, 29 Nov 2021 00:46:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrUo2-00068C-5o; Mon, 29 Nov 2021 00:46:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrUo2-00031c-5I; Mon, 29 Nov 2021 00:46:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=GW8WDMbrHw5ucSjYqryNTNkl5plO02UK2+djIW5SrPE=; b=vKuxes/Jde7F2EQgcEmtmsXJ0O
	199LVvGlaPrmHLo4Z9wp7XxzrDH1T2RVHcBKQa6YrArYJ+8P4lO6W0l4ZlagcAS8NopIcPuEl248w
	KVzQ/9sRFUc10BIcF0ZgmN0WanGU1D4cTy1Qx4Tv42OeKxKhA5R44lH+h0LNb4HB3lWk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166947-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166947: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-arm64-pvops:kernel-build:fail:regression
    qemu-mainline:test-armhf-armhf-libvirt-raw:guest-start/debian.repeat:fail:heisenbug
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:heisenbug
    qemu-mainline:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    qemu-mainline:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=dd4b0de45965538f19bb40c7ddaaba384a8c613a
X-Osstest-Versions-That:
    qemuu=14d02cfbe4adaeebe7cb833a8cc71191352cf03b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Nov 2021 00:46:06 +0000

flight 166947 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166947/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64-pvops             6 kernel-build   fail in 166879 REGR. vs. 166370

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-raw 17 guest-start/debian.repeat fail in 166946 pass in 166947
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10     fail pass in 166879
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 166946

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl-credit2   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-thunderx  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-vhd       1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-seattle   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl           1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-credit1   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)           blocked in 166879 n/a
 test-armhf-armhf-xl-rtds   18 guest-start/debian.repeat fail blocked in 166370
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166370
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166370
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166370
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166370
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166370
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166370
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 qemuu                dd4b0de45965538f19bb40c7ddaaba384a8c613a
baseline version:
 qemuu                14d02cfbe4adaeebe7cb833a8cc71191352cf03b

Last test of basis   166370  2021-11-25 03:10:11 Z    3 days
Testing same since   166879  2021-11-26 13:32:54 Z    2 days    5 attempts

------------------------------------------------------------
People who touched revisions under test:
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit dd4b0de45965538f19bb40c7ddaaba384a8c613a
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Thu Nov 25 10:44:43 2021 +0100

    Fix version for v6.2.0-rc2 release
    
    Typo while setting VERSION in the tag commit.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 01:01:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 01:01:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234289.406612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrV2s-00060R-7H; Mon, 29 Nov 2021 01:01:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234289.406612; Mon, 29 Nov 2021 01:01:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrV2s-0005zd-4I; Mon, 29 Nov 2021 01:01:26 +0000
Received: by outflank-mailman (input) for mailman id 234289;
 Mon, 29 Nov 2021 01:01:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pV+N=QQ=gmail.com=robherring2@srs-se1.protection.inumbo.net>)
 id 1mrV2q-00052H-E0
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 01:01:24 +0000
Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com
 [209.85.167.181]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de66ffd8-50af-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 02:01:23 +0100 (CET)
Received: by mail-oi1-f181.google.com with SMTP id t23so31449673oiw.3
 for <xen-devel@lists.xenproject.org>; Sun, 28 Nov 2021 17:01:23 -0800 (PST)
Received: from robh.at.kernel.org ([172.58.99.229])
 by smtp.gmail.com with ESMTPSA id r22sm2635197oij.36.2021.11.28.17.01.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 28 Nov 2021 17:01:21 -0800 (PST)
Received: (nullmailer pid 2935047 invoked by uid 1000);
 Mon, 29 Nov 2021 01:01:19 -0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de66ffd8-50af-11ec-976b-d102b41d0961
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to;
        bh=gkyjuo6MmtLiwh7POxoNoQdP1NjooIZOrMils/hYYIE=;
        b=gUT2tTMk0BczHy3ryDY6B4Zhzar/0M8YaktP7Ufe62zuFb4o03d/BGvUbmDEkfm8Ev
         J9h7nlLuoVDyrQqvukIgG707170ptlitFCoxT3w9Tfm6+AMK/NFXauBbvUk0vTuHFXOj
         ng1yQXNfHhUs2NJV+U1nxXMiWd0DP+HDyYCL0aZ8XuN0sAu23mI0A2G4TolQVfz4IgOI
         EW9XwrwnvQoyLlU9duvPKrrGWmNFNAta9bYmOs1/Ai/WC3fTcjQqDJakfPjAV1Ie3LSj
         keJPmA6sZc/uBTqkqtcn3rrKp0YLiDV4LqWvZWttLqKUpcbOAxOScfiuYGpyMtSGyHbO
         WMFw==
X-Gm-Message-State: AOAM531DLb1B11orNdDjm1BXrqKpX+s/cON6USsM1UeSOfRqeii2RQYN
	vyGlfDlnJv2qtE4EwtaajQ==
X-Google-Smtp-Source: ABdhPJwr/v9hFcvb1N+bf6bPHrQUb9xfuS63o4Gq1N5QJ09K6S+ZDqeDG+Ki8ve08g69OHSEAFdsTw==
X-Received: by 2002:aca:afc6:: with SMTP id y189mr37224521oie.46.1638147681830;
        Sun, 28 Nov 2021 17:01:21 -0800 (PST)
Date: Sun, 28 Nov 2021 19:01:19 -0600
From: Rob Herring <robh@kernel.org>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: xen-devel@lists.xenproject.org, Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Rob Herring <robh+dt@kernel.org>, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH V3 6/6] dt-bindings: xen: Clarify "reg" purpose
Message-ID: <YaQmX/OlHFa0F4kD@robh.at.kernel.org>
References: <1637787223-21129-1-git-send-email-olekstysh@gmail.com>
 <1637787223-21129-7-git-send-email-olekstysh@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1637787223-21129-7-git-send-email-olekstysh@gmail.com>

On Wed, 24 Nov 2021 22:53:43 +0200, Oleksandr Tyshchenko wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> Xen on Arm has gained new support recently to calculate and report
> extended regions (unused address space) safe to use for external
> mappings. These regions are reported via "reg" property under
> "hypervisor" node in the guest device-tree. As region 0 is reserved
> for grant table space (always present), the indexes for extended
> regions are 1...N.
> 
> No device-tree bindings update is needed (except clarifying the text)
> as guest infers the presence of extended regions from the number
> of regions in "reg" property.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> According to the recent update to Xen's guest.txt:
> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob_plain;f=docs/misc/arm/device-tree/guest.txt;hb=refs/heads/master
> 
> Changes V2 -> V3:
>    - new patch
> ---
>  Documentation/devicetree/bindings/arm/xen.txt | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 

Acked-by: Rob Herring <robh@kernel.org>


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 07:20:03 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 07:20:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234296.406623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrawd-0001NO-Ep; Mon, 29 Nov 2021 07:19:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234296.406623; Mon, 29 Nov 2021 07:19:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrawd-0001NH-BO; Mon, 29 Nov 2021 07:19:23 +0000
Received: by outflank-mailman (input) for mailman id 234296;
 Mon, 29 Nov 2021 07:19:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z1eq=QQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mrawb-0001NB-R1
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 07:19:21 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aac302b4-50e4-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 08:19:20 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 52BAA1FCA1;
 Mon, 29 Nov 2021 07:19:19 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 30D0C133FE;
 Mon, 29 Nov 2021 07:19:19 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id VfokCvd+pGHPGQAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 29 Nov 2021 07:19:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aac302b4-50e4-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1638170359; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type;
	bh=SYwXW/2pvGjEC+A3oUqLRQRnOe6kCH8gfjkqGE/npIo=;
	b=MUNAoVjiHDT0uGW66GJxJEvqBFf7MXGJJr561fX3DjoAB0AY9l5aWE0I4GlBd6dLJIcQ27
	0NGrCDd+5lSKfBxlwvs/WZk7zDAYLNWvYI81q/ulM5EsU6ek6grcxRcnsYihP0C5jRu784
	KqZ98ZP59f8JPWmFynj2gONZY+aTl14=
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
From: Juergen Gross <jgross@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Patches for stable 5.10 kernel
Message-ID: <59ff38c4-8355-ecf6-040d-1234320a806b@suse.com>
Date: Mon, 29 Nov 2021 08:19:18 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="wpUMVDKHee1Hkri6ANmGTicGwGLHyCjqB"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--wpUMVDKHee1Hkri6ANmGTicGwGLHyCjqB
Content-Type: multipart/mixed; boundary="xhbnUF2toUKD6zqO2hFC27BzFtPuF8q0E";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <59ff38c4-8355-ecf6-040d-1234320a806b@suse.com>
Subject: Patches for stable 5.10 kernel

--xhbnUF2toUKD6zqO2hFC27BzFtPuF8q0E
Content-Type: multipart/mixed;
 boundary="------------BB97D6599586F986C0DB6E08"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------BB97D6599586F986C0DB6E08
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Hi Greg,

could you please add the following upstream patches to the stable 5.10
kernel (I'll send separate mails for the older stable kernels as some
of the patches don't apply for those)? They are hardening Xen PV
frontends against attacks from related backends.

Qubes-OS has asked for those patches to be added to stable, too.

629a5d87e26fe96b ("xen: sync include/xen/interface/io/ring.h with Xen's=20
newest version")
71b66243f9898d0e ("xen/blkfront: read response from backend only once")
8f5a695d99000fc3 ("xen/blkfront: don't take local copy of a request from =

the ring page")
b94e4b147fd1992a ("xen/blkfront: don't trust the backend response data=20
blindly")
8446066bf8c1f9f7 ("xen/netfront: read response from backend only once")
162081ec33c2686a ("xen/netfront: don't read data from request on the=20
ring page")
21631d2d741a64a0 ("xen/netfront: disentangle tx_skb_freelist")
a884daa61a7d9165 ("xen/netfront: don't trust the backend response data=20
blindly")
e679004dec37566f ("tty: hvc: replace BUG_ON() with negative return value"=
)


Thanks,

Juergen

--------------BB97D6599586F986C0DB6E08
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------BB97D6599586F986C0DB6E08--

--xhbnUF2toUKD6zqO2hFC27BzFtPuF8q0E--

--wpUMVDKHee1Hkri6ANmGTicGwGLHyCjqB
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGkfvYFAwAAAAAACgkQsN6d1ii/Ey96
SQf+IMSByLeqzJc6+rE5sugQzWzB12wORVXoQfOGprVrqIcIdIVJTDYlC9KwHEGQ22k8P1939WGT
0hUiz39M+6nJ+8zSspLU0Il/C8/3llyyN638tE7+Oe19ZgbjUA0BtlvX5lE6TAPhEsI1WRZ37ekY
/+jVbODeo++XqU0haveyOa3i9K54SW4dSOQtDU9gcQcueReT1tDjpOc47xPD/T4H1w+vYXIp4s3D
p50Zt/9jIGbSwcMJfdplcNdB/m8QRrbelXrBOC3bBL7KkyKBClvxcVvIGiU/r813wA2W/6q7pQWe
ELDw+QwOO0EYHFgun8I9ZyEcXbk9ObvpFlx3eiWatQ==
=nQoU
-----END PGP SIGNATURE-----

--wpUMVDKHee1Hkri6ANmGTicGwGLHyCjqB--


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 07:33:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 07:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234302.406633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrbAJ-0003bg-Lw; Mon, 29 Nov 2021 07:33:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234302.406633; Mon, 29 Nov 2021 07:33:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrbAJ-0003bZ-Ia; Mon, 29 Nov 2021 07:33:31 +0000
Received: by outflank-mailman (input) for mailman id 234302;
 Mon, 29 Nov 2021 07:33:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrbAH-0003bP-Tw; Mon, 29 Nov 2021 07:33:29 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrbAH-00038L-II; Mon, 29 Nov 2021 07:33:29 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrbAH-0004K3-3U; Mon, 29 Nov 2021 07:33:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrbAH-0005xK-31; Mon, 29 Nov 2021 07:33:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=baardCnLXQVeLhD4sNZ9BEgT8IlQUjDHx/J98uO0iPU=; b=PDzbhUnN722jw4zOm4ycsyth4R
	/X/nuZGQSpjaMtkwtV2KjWjmAO0X/tn/n8eHMxIWzgJnzOkzCk4PQyckyHFMAQw90d6s6lmPPN5gv
	dTkTGNXkprRE3CIF3xK+6yRKTzH8fus3n9CjR4oriYma8s9yjCbRoWyPfU0+uF2/eyc8=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166948-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166948: regressions - FAIL
X-Osstest-Failures:
    qemu-mainline:build-arm64-pvops:kernel-build:fail:regression
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:heisenbug
    qemu-mainline:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate:fail:heisenbug
    qemu-mainline:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:build-check(1):blocked:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=dd4b0de45965538f19bb40c7ddaaba384a8c613a
X-Osstest-Versions-That:
    qemuu=14d02cfbe4adaeebe7cb833a8cc71191352cf03b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Nov 2021 07:33:29 +0000

flight 166948 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166948/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64-pvops             6 kernel-build   fail in 166879 REGR. vs. 166370

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-rtds 20 guest-localmigrate/x10 fail in 166947 pass in 166879
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail in 166947 pass in 166948
 test-amd64-amd64-xl-rtds     18 guest-localmigrate         fail pass in 166947

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-libvirt-raw  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-vhd       1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl           1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-thunderx  1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-credit2   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-seattle   1 build-check(1)           blocked in 166879 n/a
 test-arm64-arm64-xl-credit1   1 build-check(1)           blocked in 166879 n/a
 test-armhf-armhf-xl-rtds   18 guest-start/debian.repeat fail blocked in 166370
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166370
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166370
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166370
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166370
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166370
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166370
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 qemuu                dd4b0de45965538f19bb40c7ddaaba384a8c613a
baseline version:
 qemuu                14d02cfbe4adaeebe7cb833a8cc71191352cf03b

Last test of basis   166370  2021-11-25 03:10:11 Z    4 days
Testing same since   166879  2021-11-26 13:32:54 Z    2 days    6 attempts

------------------------------------------------------------
People who touched revisions under test:
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit dd4b0de45965538f19bb40c7ddaaba384a8c613a
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Thu Nov 25 10:44:43 2021 +0100

    Fix version for v6.2.0-rc2 release
    
    Typo while setting VERSION in the tag commit.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 07:33:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 07:33:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234304.406648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrbAS-0003vH-4b; Mon, 29 Nov 2021 07:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234304.406648; Mon, 29 Nov 2021 07:33:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrbAS-0003vA-1Z; Mon, 29 Nov 2021 07:33:40 +0000
Received: by outflank-mailman (input) for mailman id 234304;
 Mon, 29 Nov 2021 07:33:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=KK+l=QQ=kaod.org=clg@srs-se1.protection.inumbo.net>)
 id 1mrbAR-0003u7-Aw
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 07:33:39 +0000
Received: from 8.mo548.mail-out.ovh.net (8.mo548.mail-out.ovh.net
 [46.105.45.231]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aa7a3c39-50e6-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 08:33:37 +0100 (CET)
Received: from mxplan5.mail.ovh.net (unknown [10.108.20.7])
 by mo548.mail-out.ovh.net (Postfix) with ESMTPS id D10AB2064C;
 Mon, 29 Nov 2021 07:33:34 +0000 (UTC)
Received: from kaod.org (37.59.142.103) by DAG4EX1.mxp5.local (172.16.2.31)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Mon, 29 Nov
 2021 08:33:33 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa7a3c39-50e6-11ec-976b-d102b41d0961
Authentication-Results: garm.ovh; auth=pass (GARM-103G0058ffb0110-7673-40ee-a51a-c9a65a45fa89,
                    3279756C2EB34864E332BB908A933B747C53BE44) smtp.auth=clg@kaod.org
X-OVh-ClientIp: 82.64.250.170
Message-ID: <b1a6d267-c7b4-c4b9-ab0e-f5cc32bfe9bf@kaod.org>
Date: Mon, 29 Nov 2021 08:33:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [patch 05/22] genirq/msi: Fixup includes
Content-Language: en-US
To: Thomas Gleixner <tglx@linutronix.de>, LKML <linux-kernel@vger.kernel.org>
CC: <linux-hyperv@vger.kernel.org>, Paul Mackerras <paulus@samba.org>,
	<sparclinux@vger.kernel.org>, Wei Liu <wei.liu@kernel.org>, Ashok Raj
	<ashok.raj@intel.com>, Marc Zygnier <maz@kernel.org>, <x86@kernel.org>,
	Christian Borntraeger <borntraeger@de.ibm.com>, Bjorn Helgaas
	<helgaas@kernel.org>, Jason Gunthorpe <jgg@nvidia.com>,
	<linux-pci@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
	<ath11k@lists.infradead.org>, Kevin Tian <kevin.tian@intel.com>, Heiko
 Carstens <hca@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>,
	Megha Dey <megha.dey@intel.com>, Juergen Gross <jgross@suse.com>, Thomas
 Bogendoerfer <tsbogend@alpha.franken.de>, Greg Kroah-Hartman
	<gregkh@linuxfoundation.org>, <linux-mips@vger.kernel.org>,
	<linuxppc-dev@lists.ozlabs.org>
References: <20211126222700.862407977@linutronix.de>
 <20211126223824.382273262@linutronix.de>
From: =?UTF-8?Q?C=c3=a9dric_Le_Goater?= <clg@kaod.org>
In-Reply-To: <20211126223824.382273262@linutronix.de>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-Originating-IP: [37.59.142.103]
X-ClientProxiedBy: DAG1EX2.mxp5.local (172.16.2.2) To DAG4EX1.mxp5.local
 (172.16.2.31)
X-Ovh-Tracer-GUID: 67cb6c92-6833-4394-901b-34c8b386eb6d
X-Ovh-Tracer-Id: 9389442276353674140
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvuddrheekgdegjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefkffggfgfuvfhfhfgjtgfgihesthekredttdefjeenucfhrhhomhepveorughrihgtpgfnvggpifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucggtffrrghtthgvrhhnpeeigedvffekgeeftedutddttdevudeihfegudffkeeitdekkeetkefhffelveelleenucfkpheptddrtddrtddrtddpfeejrdehledrudegvddruddtfeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphhouhhtpdhhvghlohepmhigphhlrghnhedrmhgrihhlrdhovhhhrdhnvghtpdhinhgvtheptddrtddrtddrtddpmhgrihhlfhhrohhmpegtlhhgsehkrghougdrohhrghdprhgtphhtthhopehlihhnuhigphhptgdquggvvheslhhishhtshdrohiilhgrsghsrdhorhhg

On 11/27/21 02:18, Thomas Gleixner wrote:
> Remove the kobject.h include from msi.h as it's not required and add a
> sysfs.h include to the core code instead.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>


This patch breaks compile on powerpc :

   CC      arch/powerpc/kernel/msi.o
In file included from ../arch/powerpc/kernel/msi.c:7:
../include/linux/msi.h:410:65: error: ‘struct cpumask’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
   410 | int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,
       |                                                                 ^~~~~~~
cc1: all warnings being treated as errors

Below is fix you can merge in patch 5.

Thanks,

C.

--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -2,6 +2,7 @@
  #ifndef LINUX_MSI_H
  #define LINUX_MSI_H
  
+#include <linux/cpumask.h>
  #include <linux/list.h>
  #include <asm/msi.h>

> ---
>   include/linux/msi.h |    1 -
>   kernel/irq/msi.c    |    1 +
>   2 files changed, 1 insertion(+), 1 deletion(-)
> 
> --- a/include/linux/msi.h
> +++ b/include/linux/msi.h
> @@ -2,7 +2,6 @@
>   #ifndef LINUX_MSI_H
>   #define LINUX_MSI_H
>   
> -#include <linux/kobject.h>
>   #include <linux/list.h>
>   #include <asm/msi.h>
>   
> --- a/kernel/irq/msi.c
> +++ b/kernel/irq/msi.c
> @@ -14,6 +14,7 @@
>   #include <linux/irqdomain.h>
>   #include <linux/msi.h>
>   #include <linux/slab.h>
> +#include <linux/sysfs.h>
>   #include <linux/pci.h>
>   
>   #include "internals.h"
> 



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 07:48:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 07:48:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234317.406659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrbON-0005mX-EE; Mon, 29 Nov 2021 07:48:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234317.406659; Mon, 29 Nov 2021 07:48:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrbON-0005mQ-AN; Mon, 29 Nov 2021 07:48:03 +0000
Received: by outflank-mailman (input) for mailman id 234317;
 Mon, 29 Nov 2021 07:48:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=KK+l=QQ=kaod.org=clg@srs-se1.protection.inumbo.net>)
 id 1mrbOL-0005mK-W3
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 07:48:01 +0000
Received: from 1.mo548.mail-out.ovh.net (1.mo548.mail-out.ovh.net
 [178.32.121.110]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac848200-50e8-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 08:48:00 +0100 (CET)
Received: from mxplan5.mail.ovh.net (unknown [10.108.16.148])
 by mo548.mail-out.ovh.net (Postfix) with ESMTPS id BB56A20523;
 Mon, 29 Nov 2021 07:47:59 +0000 (UTC)
Received: from kaod.org (37.59.142.103) by DAG4EX1.mxp5.local (172.16.2.31)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Mon, 29 Nov
 2021 08:47:58 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac848200-50e8-11ec-b941-1df2895da90e
Authentication-Results: garm.ovh; auth=pass (GARM-103G00595d4a801-821e-4892-b50b-80a730e95f26,
                    3279756C2EB34864E332BB908A933B747C53BE44) smtp.auth=clg@kaod.org
X-OVh-ClientIp: 82.64.250.170
Message-ID: <7e3022e0-2183-288b-a4ae-e2e1e0551b38@kaod.org>
Date: Mon, 29 Nov 2021 08:47:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [patch 17/22] PCI/MSI: Split out !IRQDOMAIN code
Content-Language: en-US
To: Thomas Gleixner <tglx@linutronix.de>, LKML <linux-kernel@vger.kernel.org>
CC: <linux-hyperv@vger.kernel.org>, Paul Mackerras <paulus@samba.org>,
	<sparclinux@vger.kernel.org>, Wei Liu <wei.liu@kernel.org>, Ashok Raj
	<ashok.raj@intel.com>, Marc Zygnier <maz@kernel.org>, <x86@kernel.org>,
	Christian Borntraeger <borntraeger@de.ibm.com>, Bjorn Helgaas
	<helgaas@kernel.org>, Jason Gunthorpe <jgg@nvidia.com>,
	<linux-pci@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
	<ath11k@lists.infradead.org>, Kevin Tian <kevin.tian@intel.com>, Heiko
 Carstens <hca@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>,
	Megha Dey <megha.dey@intel.com>, Juergen Gross <jgross@suse.com>, Thomas
 Bogendoerfer <tsbogend@alpha.franken.de>, Greg Kroah-Hartman
	<gregkh@linuxfoundation.org>, <linux-mips@vger.kernel.org>,
	<linuxppc-dev@lists.ozlabs.org>
References: <20211126222700.862407977@linutronix.de>
 <20211126223825.093887718@linutronix.de>
From: =?UTF-8?Q?C=c3=a9dric_Le_Goater?= <clg@kaod.org>
In-Reply-To: <20211126223825.093887718@linutronix.de>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [37.59.142.103]
X-ClientProxiedBy: DAG7EX2.mxp5.local (172.16.2.62) To DAG4EX1.mxp5.local
 (172.16.2.31)
X-Ovh-Tracer-GUID: 0f0123d7-fbb1-4bc8-86c7-5f8c7875e9d6
X-Ovh-Tracer-Id: 9632918131166251932
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvuddrheekgdehtdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefkffggfgfuvfhfhfgjtgfgihesthejredttdefjeenucfhrhhomhepveorughrihgtpgfnvggpifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucggtffrrghtthgvrhhnpefhhfelgeeukedtteffvdffueeiuefgkeekleehleetfedtgfetffefheeugeelheenucfkpheptddrtddrtddrtddpfeejrdehledrudegvddruddtfeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphhouhhtpdhhvghlohepmhigphhlrghnhedrmhgrihhlrdhovhhhrdhnvghtpdhinhgvtheptddrtddrtddrtddpmhgrihhlfhhrohhmpegtlhhgsehkrghougdrohhrghdprhgtphhtthhopehlihhnuhigphhptgdquggvvheslhhishhtshdrohiilhgrsghsrdhorhhg

On 11/27/21 02:19, Thomas Gleixner wrote:
> Split out the non irqdomain code into its own file.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> ---
>   drivers/pci/msi/Makefile |    5 ++--
>   drivers/pci/msi/legacy.c |   51 +++++++++++++++++++++++++++++++++++++++++++++++
>   drivers/pci/msi/msi.c    |   46 ------------------------------------------
>   3 files changed, 54 insertions(+), 48 deletions(-)
> 
> --- a/drivers/pci/msi/Makefile
> +++ b/drivers/pci/msi/Makefile
> @@ -1,5 +1,6 @@
>   # SPDX-License-Identifier: GPL-2.0
>   #
>   # Makefile for the PCI/MSI
> -obj-$(CONFIG_PCI)		+= pcidev_msi.o
> -obj-$(CONFIG_PCI_MSI)		+= msi.o
> +obj-$(CONFIG_PCI)			+= pcidev_msi.o
> +obj-$(CONFIG_PCI_MSI)			+= msi.o
> +obj-$(CONFIG_PCI_MSI_ARCH_FALLBACKS)	+= legacy.o
> --- /dev/null
> +++ b/drivers/pci/msi/legacy.c
> @@ -0,0 +1,51 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * PCI Message Signaled Interrupt (MSI).
> + *
> + * Legacy architecture specific setup and teardown mechanism.
> + */
> +#include "msi.h"


I am getting a :

../drivers/pci/msi/legacy.c:7:10: fatal error: msi.h: No such file or directory
     7 | #include "msi.h"

which seems to be fixed later.

C.

> +
> +/* Arch hooks */
> +int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
> +{
> +	return -EINVAL;
> +}
> +
> +void __weak arch_teardown_msi_irq(unsigned int irq)
> +{
> +}
> +
> +int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
> +{
> +	struct msi_desc *desc;
> +	int ret;
> +
> +	/*
> +	 * If an architecture wants to support multiple MSI, it needs to
> +	 * override arch_setup_msi_irqs()
> +	 */
> +	if (type == PCI_CAP_ID_MSI && nvec > 1)
> +		return 1;
> +
> +	for_each_pci_msi_entry(desc, dev) {
> +		ret = arch_setup_msi_irq(dev, desc);
> +		if (ret)
> +			return ret < 0 ? ret : -ENOSPC;
> +	}
> +
> +	return 0;
> +}
> +
> +void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
> +{
> +	struct msi_desc *desc;
> +	int i;
> +
> +	for_each_pci_msi_entry(desc, dev) {
> +		if (desc->irq) {
> +			for (i = 0; i < entry->nvec_used; i++)
> +				arch_teardown_msi_irq(desc->irq + i);
> +		}
> +	}
> +}
> --- a/drivers/pci/msi/msi.c
> +++ b/drivers/pci/msi/msi.c
> @@ -50,52 +50,6 @@ static void pci_msi_teardown_msi_irqs(st
>   #define pci_msi_teardown_msi_irqs	arch_teardown_msi_irqs
>   #endif
>   
> -#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
> -/* Arch hooks */
> -int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
> -{
> -	return -EINVAL;
> -}
> -
> -void __weak arch_teardown_msi_irq(unsigned int irq)
> -{
> -}
> -
> -int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
> -{
> -	struct msi_desc *entry;
> -	int ret;
> -
> -	/*
> -	 * If an architecture wants to support multiple MSI, it needs to
> -	 * override arch_setup_msi_irqs()
> -	 */
> -	if (type == PCI_CAP_ID_MSI && nvec > 1)
> -		return 1;
> -
> -	for_each_pci_msi_entry(entry, dev) {
> -		ret = arch_setup_msi_irq(dev, entry);
> -		if (ret < 0)
> -			return ret;
> -		if (ret > 0)
> -			return -ENOSPC;
> -	}
> -
> -	return 0;
> -}
> -
> -void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
> -{
> -	int i;
> -	struct msi_desc *entry;
> -
> -	for_each_pci_msi_entry(entry, dev)
> -		if (entry->irq)
> -			for (i = 0; i < entry->nvec_used; i++)
> -				arch_teardown_msi_irq(entry->irq + i);
> -}
> -#endif /* CONFIG_PCI_MSI_ARCH_FALLBACKS */
> -
>   /*
>    * PCI 2.3 does not specify mask bits for each MSI interrupt.  Attempting to
>    * mask all MSI interrupts by clearing the MSI enable bit does not work
> 



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 07:51:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 07:51:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234321.406670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrbRU-00077F-TI; Mon, 29 Nov 2021 07:51:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234321.406670; Mon, 29 Nov 2021 07:51:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrbRU-000778-P7; Mon, 29 Nov 2021 07:51:16 +0000
Received: by outflank-mailman (input) for mailman id 234321;
 Mon, 29 Nov 2021 07:51:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=KK+l=QQ=kaod.org=clg@srs-se1.protection.inumbo.net>)
 id 1mrbRT-000772-Jj
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 07:51:15 +0000
Received: from 4.mo548.mail-out.ovh.net (4.mo548.mail-out.ovh.net
 [188.165.42.229]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e7a1597-50e9-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 08:51:11 +0100 (CET)
Received: from mxplan5.mail.ovh.net (unknown [10.109.138.121])
 by mo548.mail-out.ovh.net (Postfix) with ESMTPS id 1E69A2045C;
 Mon, 29 Nov 2021 07:51:11 +0000 (UTC)
Received: from kaod.org (37.59.142.95) by DAG4EX1.mxp5.local (172.16.2.31)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Mon, 29 Nov
 2021 08:51:10 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e7a1597-50e9-11ec-b941-1df2895da90e
Authentication-Results: garm.ovh; auth=pass (GARM-95G0018853b231-08ce-4c1d-9d13-72c8b66df497,
                    3279756C2EB34864E332BB908A933B747C53BE44) smtp.auth=clg@kaod.org
X-OVh-ClientIp: 82.64.250.170
Message-ID: <1ecfbea2-e5f7-b28b-5345-8b2ee82ae861@kaod.org>
Date: Mon, 29 Nov 2021 08:51:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [patch 17/22] PCI/MSI: Split out !IRQDOMAIN code
Content-Language: en-US
To: Thomas Gleixner <tglx@linutronix.de>, LKML <linux-kernel@vger.kernel.org>
CC: <linux-hyperv@vger.kernel.org>, Paul Mackerras <paulus@samba.org>,
	<sparclinux@vger.kernel.org>, Wei Liu <wei.liu@kernel.org>, Ashok Raj
	<ashok.raj@intel.com>, Marc Zygnier <maz@kernel.org>, <x86@kernel.org>,
	Christian Borntraeger <borntraeger@de.ibm.com>, Bjorn Helgaas
	<helgaas@kernel.org>, Jason Gunthorpe <jgg@nvidia.com>,
	<linux-pci@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
	<ath11k@lists.infradead.org>, Kevin Tian <kevin.tian@intel.com>, Heiko
 Carstens <hca@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>,
	Megha Dey <megha.dey@intel.com>, Juergen Gross <jgross@suse.com>, Thomas
 Bogendoerfer <tsbogend@alpha.franken.de>, Greg Kroah-Hartman
	<gregkh@linuxfoundation.org>, <linux-mips@vger.kernel.org>,
	<linuxppc-dev@lists.ozlabs.org>
References: <20211126222700.862407977@linutronix.de>
 <20211126223825.093887718@linutronix.de>
From: =?UTF-8?Q?C=c3=a9dric_Le_Goater?= <clg@kaod.org>
In-Reply-To: <20211126223825.093887718@linutronix.de>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [37.59.142.95]
X-ClientProxiedBy: DAG4EX1.mxp5.local (172.16.2.31) To DAG4EX1.mxp5.local
 (172.16.2.31)
X-Ovh-Tracer-GUID: 8993720d-da60-4607-9d73-3bc5ffee8fa3
X-Ovh-Tracer-Id: 9686961325338364828
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvuddrheekgdehudcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefkffggfgfuvfhfhfgjtgfgihesthejredttdefjeenucfhrhhomhepveorughrihgtpgfnvggpifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucggtffrrghtthgvrhhnpefhhfelgeeukedtteffvdffueeiuefgkeekleehleetfedtgfetffefheeugeelheenucfkpheptddrtddrtddrtddpfeejrdehledrudegvddrleehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhpohhuthdphhgvlhhopehmgihplhgrnhehrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtoheplhhinhhugihpphgtqdguvghvsehlihhsthhsrdhoiihlrggsshdrohhrgh


> +void __weak arch_teardown_msi_irqs(struct pci_dev *dev)
> +{
> +	struct msi_desc *desc;
> +	int i;
> +
> +	for_each_pci_msi_entry(desc, dev) {
> +		if (desc->irq) {
> +			for (i = 0; i < entry->nvec_used; i++)

I guess this is 'desc' ?

Thanks,

C.

> +				arch_teardown_msi_irq(desc->irq + i);
> +		}
> +	}
> +}


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 08:32:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 08:32:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234331.406681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrc5H-0003I4-20; Mon, 29 Nov 2021 08:32:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234331.406681; Mon, 29 Nov 2021 08:32:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrc5G-0003Hx-Uy; Mon, 29 Nov 2021 08:32:22 +0000
Received: by outflank-mailman (input) for mailman id 234331;
 Mon, 29 Nov 2021 08:32:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrc5F-0003Hn-V0; Mon, 29 Nov 2021 08:32:21 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrc5F-0004dp-PP; Mon, 29 Nov 2021 08:32:21 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrc5F-0005ho-GF; Mon, 29 Nov 2021 08:32:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrc5F-00042C-Fk; Mon, 29 Nov 2021 08:32:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qgovrrNN0IQ2fckBt3K5hNeh9mnCIBU+mnUF+/QGciM=; b=cHBvXOO7oZEYgzgjPU6+u/EgvX
	kBsb5t8PC/mArSKtPYaz33iKRjwO3MnQ4P9xeusuvjWOAnaTkIXdN7dt+GDTsWPedxpAXlFUTmXtm
	17D5ZOlDmyqqxBRkm6kHS/JsCw+kYTiRFhGCzbQwnSXDJQn/luwa6aSilOW71mtchx7A=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166949-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166949: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=ef9a059cdb15844fe52a49af2bf7d86b9dd3e9bf
X-Osstest-Versions-That:
    ovmf=bb1bba3d776733c41dbfa2d1dc0fe234819a79f2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Nov 2021 08:32:21 +0000

flight 166949 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166949/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 ef9a059cdb15844fe52a49af2bf7d86b9dd3e9bf
baseline version:
 ovmf                 bb1bba3d776733c41dbfa2d1dc0fe234819a79f2

Last test of basis   166826  2021-11-26 09:11:08 Z    2 days
Testing same since   166949  2021-11-29 06:11:36 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael D Kinney <michael.d.kinney@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   bb1bba3d77..ef9a059cdb  ef9a059cdb15844fe52a49af2bf7d86b9dd3e9bf -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 08:52:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 08:52:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234338.406695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcO9-0005bi-O9; Mon, 29 Nov 2021 08:51:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234338.406695; Mon, 29 Nov 2021 08:51:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcO9-0005bb-KW; Mon, 29 Nov 2021 08:51:53 +0000
Received: by outflank-mailman (input) for mailman id 234338;
 Mon, 29 Nov 2021 08:51:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrcO8-0005bV-6P
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 08:51:52 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97416487-50f1-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 09:51:50 +0100 (CET)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2050.outbound.protection.outlook.com [104.47.5.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-36-RICPesd9MN2DVG94Tk6gIQ-1; Mon, 29 Nov 2021 09:51:49 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 08:51:46 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 08:51:46 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0076.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::17) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.23 via Frontend Transport; Mon, 29 Nov 2021 08:51:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97416487-50f1-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638175910;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=lyySaEq89sPMQp80bGSBPjq8INEHew6hleOR6yp3Gd0=;
	b=dp1af7etc+fdkUDjBfh1aeScZ/yBfRcLUnI7SRa8vJ5Pw13MWuQeNMqzSonlWHBVOhkvl5
	rKpJgvBCj+7ou5g30dWcnjrCFdOo3aTlA05nURIh8ViOH+PhNlNGI//jbtD6ZRZ9rNProX
	5zs4iQK5IWD6MXlStk8JkJFA1laUww8=
X-MC-Unique: RICPesd9MN2DVG94Tk6gIQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lsV5o5jsH4IDGk+ZBh9Jg66M1yQzCqK7VT8I1kwl7zNbjRV+WwLD6ryebAkuj9E6QGV2rOWH/qnVDD/oCVZXXSJL4ezfoC3CJ0E5lP5RmoHH3GtyE1CZm8TWUN0QK8m6wzR4jnIwv9dR8DgJqdrmKTstC7YmztdN6c8JBw8RHwb96ik0oBgs9B2fnwqL9Jfga11zrcCZ1/G1irX/Q9z+tZRCkbc3iLSfBAn15KC66JazKnq8cbMfpOc84mfdcCeCWmkQdSKzOpkVkxGfQB+fnIVt+c7qG7tD4JDEalJ7i4Yhh16mLowciRerIwUJMTnnL7lwGTz6sibSBJbGmJP0RA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lyySaEq89sPMQp80bGSBPjq8INEHew6hleOR6yp3Gd0=;
 b=Oa4J16/WJEsRlXunenC+vdsExbGtuikt5kJhJxDb0USu+gqD4KB4O1EFf7OBYjrVVBRan0GbdxqBaPPHMYiuyj47rDfPLlFOXAjhi9Zk5wFrCms9Gd80ZIrD3jn1hS2Sl+gYfQPAEhC7l6Fm9xjQ+xjLNbvgtjaCnvb/LPU7iX2lUhoL2WDqkhZzlXfCf+8SQZBjgY5wWPO761I3YTRp3iwY+oUEUvyIvoTLG70LRcliRH3FxALbRMOJX3MsSRIdnCpJKPkdPB5W/qJdKj/YRFe6TGydG9UV1mKQbWGAKeis4bXC61YYJrWXCldz/ck37EqXub0+wS3DPZ5oWoFd0w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <18eb3a6b-34da-dbcc-0460-4085cebefe37@suse.com>
Date: Mon, 29 Nov 2021 09:51:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 0/4] x86: Further harden function pointers
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126212258.7550-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126212258.7550-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0076.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:86::17) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ff47d3c6-3e22-48e4-1821-08d9b3157983
X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7037445E544F457A6CFB4563B3669@VI1PR04MB7037.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jhaZZZClcU/H6GEgJ4RinBFili4alJtml4zUNdsSJL7zPQ58Tmw/6wkzt7ETjmEzav9nLaasLP6+j4OnZOhIi16/Nr4it3AaamVphwFTLJLCPfIijnkk1nsc1E6zV5kbpYdhCEQ/8Cz7myK1dXJZIIT6u94Cl8XEeMXsTMivfkWgNxNfAv0AV7VMw/3CyYnQKZ8SBeIQP8ECelYbfo8uoQu6cu520VH1urPpiQ4M+md0YWAWaGayoJppr+BnDRiy4HRaob5+qku1vFGqpCUyqVC2zdQ5nEs/h7oK0Ouy0BwNvGIfB1IzuX1jvtsY8dWu3mocW6UnMPV+UKSa+fvUKTOHe08IadY0ohqTSzeo3qw+Wsi234tQWgNRlq5t7XZ5839DWxBMQujAE/T8Gp37gq/u2WJHBmctePLYX19SLfNNtXx+OEo3SliHLGCv8hasRYofgBhO+7/ZvCgMQ0hlhTuEdoGqznI158RAwfZWhdjQsUeJlEub6tUxylVL6XISccyPQL7BG9bSk/M9S10xJb5yc4hLAIFuqsorMMWZG8oI8DHokSjuK6Avtkq80/K1qNzcXypii9Xh57cj6kSDCkzZeC46Ff4rz9W+eKR6csjcYuSok39kQUVOR7W0Mpz8aqTri2HFR238zAyqL62ZTwBOnPmfpaqjk/gZSvzfb91D8vbLwWyfsEMgoOhn7PAQp9rd4EfMEilsjtbeyLEg68Rq0PgAOHiyEm4Y8F/1vIHUrJpuqY4tP4pd5eow4vhh
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(8676002)(4326008)(5660300002)(8936002)(53546011)(31696002)(2906002)(66476007)(83380400001)(86362001)(6486002)(66556008)(508600001)(66946007)(2616005)(956004)(54906003)(26005)(31686004)(186003)(6916009)(38100700002)(16576012)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U0pGK3RyWWw3WkREUDhTUG5wUnUrZXJ0NVNma0pxbUh5RW5IVk9IQTFESWpF?=
 =?utf-8?B?S2Zld0UvU0FGOGgwRVlHV3RyVWczZ3ZyeTkweXBiZWtYNDBQRklUUG9DRzF0?=
 =?utf-8?B?dzY2dHBOYzloN0x2OCt6eUJuNktHNFM5REVDdERQcFZGK3lwUkJNdno4blM1?=
 =?utf-8?B?bG43ZFpuNmlERjJnQmMzOW5tRzlGaTVyU05SN056N1VKVVZFamI2b01yMklS?=
 =?utf-8?B?cDJxejNPOGkvOEo4K1V0Y1pBTnNvUXZjYSt4M3F0RXlhczdCT3RFVk95cFJu?=
 =?utf-8?B?NzVyUVpQL3lzMGNvby9saU1tSlp6U2c1ZmZ4bFV2cFNaRG05Mkt6TU9rcXlM?=
 =?utf-8?B?SEVlVC9MRDkwVVZSSU1zemI1R0orZFJYYnBubWc3aUVtczZJWlBzamdKaGY1?=
 =?utf-8?B?bUZscHV6RGlDRGIxMmRzVCtDMzVSQXJGa2Fxck8wVmVEeWc2NUdXd2NMOVlk?=
 =?utf-8?B?eEg4UTFmYXVMYzcwVldxQVlETFE1bG96UVk2MEdydmlBeXpHbE1rUnI0Nldr?=
 =?utf-8?B?NkkydnhyTFBMRzQwU1Q5ak4zNGI4RGR6TXdSbzByL1c4UGIrVWxLUHR1WG5N?=
 =?utf-8?B?UGFDZHplT2JKRFAwVkVGM1NTSkxmaktZZjB6OXhXeGpYMDVwQ05jbWVrQlVz?=
 =?utf-8?B?NlMwWUhWcUV3M2h6eDIrWWp3WjhKTjhQZFBSaEtqZm43WURwL1ExdXM1WnJE?=
 =?utf-8?B?N2Y0M3ZZaU9tM0ViMWVpTEkyeG5DZE5pVGUxVkRFZEFoNytacU9rYzVoRGxP?=
 =?utf-8?B?NGlPK1BhMk5SblFOVUVMOUVrdWpvOFJpNkQyeUQ1U0lObVhXalJwaTNQUlE3?=
 =?utf-8?B?VDFIQlNmQjZWc0ptNmxOTWg2QUVNRGp6d25XTWtXOTFESzNBeURUclFwamkr?=
 =?utf-8?B?VVVZeTQ1U3g5U0tMMXBHZ0E1Q0VLL1dZS2Q5VWZiRlNjNnNLUzJ2d0dEeE9G?=
 =?utf-8?B?ZG1CRERGaUNsdk12WC9uM09OVTBwQ0pEd1lBTnQ4L1pTMlpOZFhyK1F5cTNX?=
 =?utf-8?B?MVZId0FlV093RVEyUzhjaGFiODV2aTE2RWZNK013ZzU4QjI2MGdMSkc2UWh2?=
 =?utf-8?B?TGRiOGppZ1QvNytHWXBWTXQ3emNYclRVdzBNdXFIa3F2STd2dy9qYTh0cUt5?=
 =?utf-8?B?bEpBVUhGd1ZKMU93RlJtRFEyazdZd3RabGtOMkJ4clp2VnZya2gvdmxucDRz?=
 =?utf-8?B?QUQvREcxcEVPejdhTndHdGU5cUxXTU9TOUpLQ2dvbGYvVHVxMWxHVWhMa1Jh?=
 =?utf-8?B?eVlJVzIzVkhjNzNSMER4TDV1L2hOeDc5U1NzTkJnbzdTNjRqN2xtQmg0ZzQr?=
 =?utf-8?B?bXJNeWxUR0JKb29MQ1NlM2pLSG90VHNTMi9hMEx6TXE2NDFiSE9JN1hwRXBK?=
 =?utf-8?B?eHVqc3FZSHY1eDVuNmREU01NOHQ1Z3ZZL1RlWDA5WndoT0NjWGFPU0FGdDAy?=
 =?utf-8?B?cVg1bngzdWtMMDJONnRXaTBBQ1NTT2hTUVVSRVZjYnd1eXJlRVFiZFloY2tZ?=
 =?utf-8?B?Y2lqUmxOMjJrYXh3djhKQTg5U2thSkJUUVphQnl6STBPZFBSeFFiZkNnT2xF?=
 =?utf-8?B?VWxFVFhFcXp6ekttcGJLeGp0OENnNWovY0c5dHFMZGZwd0NVWWJpbGRIZjJW?=
 =?utf-8?B?MEh6MUZLSTJFSmphU3dKVmlReHErOFNXaWpCSy9kOWlLTWpoQVIwQ3pETzFM?=
 =?utf-8?B?NnMrNENQYSs0dUxLeW1hNWd0YVJUWiszcUFLNXZwZFJJTmN3dzdTT3IweXg5?=
 =?utf-8?B?bVltcVlicW5GUlpCZ0VVZy9HaXBlYnRvd25CWGhuSit4MmVBRWJONmxtWDhV?=
 =?utf-8?B?SFpVZ20rZVovWUxQYzN0N0kvbUxNdHorSTQ2UHpUN3JRL3kyNzhHNHhoWW9V?=
 =?utf-8?B?YVAzQitKaVU1eHg1bExwYk5rY3JkTWsxWHBXNXptd1hQT001d3d0OThIMWV2?=
 =?utf-8?B?ZUUxb2dWMTBEQmhuNWFyZjRXbXFRVnFUWDF5ajNxTlFVeWVTQ2pGclN3K0I1?=
 =?utf-8?B?Q3ZmY0Z4aVh3d3d6ZGlCaGpOcGVnNFFXNFFGL0tvWERWRGNlZGl3SUR2MUZl?=
 =?utf-8?B?dXUwOHdmeW1wbUhxYjdRYnB3MHRrYjdnZzYwZSt6SEpCcUZHS3JCakxkRzdj?=
 =?utf-8?B?VXlNWlNGVno2NThoaUtxalhHbE8yaGhhd3hiQzAwNGtTOVJOQTM4NzZKTHBN?=
 =?utf-8?Q?fLo1+75i0o621T+DUZLVl6A=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ff47d3c6-3e22-48e4-1821-08d9b3157983
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 08:51:46.6044
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7fI07zwQVTXUON2r5FPZ5TPOM3CgEg5LFWq1Vzb3YvQ+znmuNz09IYAg8hUp3OjrxygptcT3cO5h6uApKHtICg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037

On 26.11.2021 22:22, Andrew Cooper wrote:
> Slightly RFC, because patch 2 has some minor structure (ab)use, but the result
> works alarmingly well.  So far, this demonstrates converting two subsystems.
> 
> hvm_funcs is the other area of especially low hanging fruit, but IOMMU, vPMU
> also look like good candidates.  Anything which is partially altcall'd already
> would benefit from being fully altcall'd.

I'll post patches for hvm_funcs and vPMU hopefully later today. I intend
to look into the remaining unconverted IOMMU instances (so far I've
spotted one, but proper auditing may turn up more). For hvm_funcs what I
have leaves a few ones still unconverted; I guess we can discuss whether
to go beyond what I have in the context of that patch.

> Should we consider introducing __ro_after_init right now (as an alias to
> __read_mostly) as this conversion is touching a lot of ares where true
> post-init immutability ought to be enforced.

Well, it's largely orthogonal, but this might indeed be a good opportunity
to at least make a first step. I'd go slightly beyond what you say and at
least also introduce a respective new section, rather than aliasing
__read_mostly.

Jan

> Andrew Cooper (4):
>   x86/altcall: Check and optimise altcall targets
>   x86/altcall: Optimise away endbr64 instruction where possible
>   xen/xsm: Use __init_data_cf_clobber for xsm_ops
>   x86/ucode: Use altcall, and __initdata_cf_clobber
> 
>  xen/arch/x86/alternative.c           | 60 ++++++++++++++++++++++++++++++++++++
>  xen/arch/x86/cpu/microcode/amd.c     |  2 +-
>  xen/arch/x86/cpu/microcode/core.c    | 38 ++++++++++++-----------
>  xen/arch/x86/cpu/microcode/intel.c   |  2 +-
>  xen/arch/x86/cpu/microcode/private.h |  2 +-
>  xen/arch/x86/xen.lds.S               |  5 +++
>  xen/include/xen/init.h               |  2 ++
>  xen/xsm/dummy.c                      |  2 +-
>  xen/xsm/flask/hooks.c                |  2 +-
>  xen/xsm/silo.c                       |  2 +-
>  10 files changed, 93 insertions(+), 24 deletions(-)
> 



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:04:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:04:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234345.406706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcaX-0007CA-1G; Mon, 29 Nov 2021 09:04:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234345.406706; Mon, 29 Nov 2021 09:04:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcaW-0007C3-Ts; Mon, 29 Nov 2021 09:04:40 +0000
Received: by outflank-mailman (input) for mailman id 234345;
 Mon, 29 Nov 2021 09:04:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrcaV-0007Bx-If
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:04:39 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6104defc-50f3-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 10:04:38 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2058.outbound.protection.outlook.com [104.47.14.58]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-39-i_kjeuFnNPe2quWCPw7kLg-1; Mon, 29 Nov 2021 10:04:36 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7152.eurprd04.prod.outlook.com (2603:10a6:800:12b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 09:04:35 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 09:04:34 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR04CA0002.eurprd04.prod.outlook.com (2603:10a6:20b:110::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Mon, 29 Nov 2021 09:04:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6104defc-50f3-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638176677;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=ZU4b6F/SJ+CLMHpfkeTwOQjDDGFcSOYzdTSyelstsQc=;
	b=KAwhjz2lLI8K8gV2tIBFUQdWR2du7IYsHGcfZXNdwugOJusUEVkYN5GVMOe+TKrOlsay9m
	EJozeBa7qHyb4FScjyUZWM2k7tbC1CAKwRSXnnrnJjdK5bencKnOjl0AUw82aNj52Q+Xmj
	gRynLEB2pClxPQ6GXFl0JH/KBiKMts4=
X-MC-Unique: i_kjeuFnNPe2quWCPw7kLg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K1c6bEkhJoqnOC5vpOEo0YcCNW7sVm2FrJZKpiYc77HSt+8QxhUEE8XkwoHBxJD4/mWj+LsW5PJenucHlPTFtbHYeDXUGAmJkWV8QMwLVVQT3xtqKKJhEraarDJGRcDwS3M7aeevh2YAR0Gg3nXirFOOCEq+jxghyqJ9ghxxXxR/6v+N9lP/CY03F+A51H/zokoF1VYLVSL/UI5qx4gSPhpbDpEbYjNrGnqip9RcaQUi5FK0J3Mp4bkTi14hqOiaKIp3BLMYfor8ae1nHDEZLHXosH8p8F+3gh7+XLpbO2N6hIhg8WF/3Y9nb49ROWvYjsZNA7FuIhlEsd40bF3HUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZU4b6F/SJ+CLMHpfkeTwOQjDDGFcSOYzdTSyelstsQc=;
 b=WVcBDRxDwI79r+aI+70ErMW7HyC+ZWZxf2ZEZXJxBAO/4w08atQl8UjIMDR0/LwBOBw5atU0Dm9QNO9CWXZNdWJpx4fGmKpVs+cZCTzVK15GyrhZyZrjjxTce94rs98H7zNX2BFy+6X30ipL3Nw9i4N0mZ8VMKmGijBPiWV5kwdRSOtwQGva8CPw5OB1vF+wh4GFbfapKzdiwTtu7uTCd+HUyrudFnqQZdR0mGJCFJu9l7DHQFXumISgWhPdHu7YMCdlr6GBMXYFm2THWN+m1QxOHbJpGgeE5tYELB2zgTRTL+x5AW1kTbhvNq0EdcWRVP7QFJI/uQ+hPxGmyt7zXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9fd8ba19-9744-fa50-1afb-15fae8955cac@suse.com>
Date: Mon, 29 Nov 2021 10:04:36 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, Tamas K Lengyel <tamas@tklengyel.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Alexandru Isaila <aisaila@bitdefender.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/HVM: convert most remaining hvm_funcs hook invocations to
 alt-call
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM7PR04CA0002.eurprd04.prod.outlook.com
 (2603:10a6:20b:110::12) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 688e8384-c1fc-425c-8a36-08d9b3174377
X-MS-TrafficTypeDiagnostic: VI1PR04MB7152:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB71527A158A7E47D983527CA9B3669@VI1PR04MB7152.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	P9c3XkzzHJhpieSWodQgcMPUdRGYuGg7KE5mzrfBtNc0zILBMicZ2NP15tIPjvA/zZaG7oes+Qk+WGTMyWGVNT57EJfrcSjmwjivNEmhzXEN102j3P6F0XqRJ8QaI2ndmP66jnQasY3GHlsctgxUkKbPSDTws5dHNmCxs2ejg29h37zBBh6qZhg27gYNUyEKxGeAbLBJ1wnaMNshjzf1nycU0NLs+jjr9EqKdx7ph3KR628mKDCnfOhp22ki7LNF6o8MvQroWX1FbQxlonmJ63BUQZu82TyvGCpB33FkzC9oYtZG+vMBhRKHhRzKfofsuGNhG3OWO7JdLtYbZO1CGTzajeA/O3zHejruYoKtIIONVqvbVysJ9eRmIgtXFJcPwCEy9GScVwAfoKvulmzLxL5wOqSzU7ZHJ/L4OOCfrt+Z1IOAQQv2luhfEMcddZFlXz397d7t9eWuTr49C+WHkDsLWfg4WuZrrvZ9Yll2uDKVTt8Cyj7t96LanqtV6aQL5/ND/yBDh5bKFfMZM70GfrM8ClpgeJFkuX35pb+O2XQ4+CW+Qj3kGPgAQUqxUuO9vNVeAlgSAyalT0EfsK+M2DYBSNZFkh57D1dlRnEVknLPnPfkACbYhLHPKyhrWk99lJ8VQ5SyshiV7Jl4Z4ftj0KfkQeH93C/UKzrFoYHfAKUCOjIhXL2YOg+9QurUrjh5Z3JDA5hmdjB3bIOKpBHE/P3pjaCfO+niyEX7ieImCVuZwTPZtPXzkAFRhCYKTLQgYdPiMISyUCevlSWnvMz12JoeatCUS6J4yNDqM2752oGf4RiajI4fXobtVsY/lTm
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(36756003)(8676002)(83380400001)(956004)(31686004)(4326008)(186003)(2616005)(8936002)(30864003)(5660300002)(54906003)(6486002)(316002)(16576012)(86362001)(6916009)(66946007)(508600001)(66556008)(66476007)(38100700002)(26005)(966005)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VWFnSy9mNndaUnhnN1E3VmF4bzNrcHA3d3lhbGx1cHJJVlRCQUw3K2I5a2E4?=
 =?utf-8?B?NmNJc1huUUI0RDNCOTVtc3FEOE5mOW93WGlyZkVoUFRmOC9uRXR2eE15MHU3?=
 =?utf-8?B?T2RNajF2cWRnUmp1NXFtWXFjUFFlN0w2aG5tZUxmVWdEZVAxTisxQis0eE9v?=
 =?utf-8?B?VmFUcHVFZ1BtUWhDeVVhZzVuM24raHhUODRwaXkvbnhCTWZHVThOZTR3a25L?=
 =?utf-8?B?UlhINzZEVnFVMXArTFNXd0UrSnBKa3dhdCtoWFE4ZXVTNE42VEE1b3hhNndj?=
 =?utf-8?B?OFlQSkFacy9UUktLZ2RHVDRzQ2NUSXkwVk53TWJyUWsxZzVrVDZBUmNrUFdp?=
 =?utf-8?B?YktZekJBaEE0T2hEWDJtQWg1ZU5kL1plTkExZ0lDZUQ0NzZPcjVYS0VZQkdK?=
 =?utf-8?B?M3JtRUEvVnRMZktFd1ZWMzlISVI2ZTQwZkVkTGtKM0loSjZSQVNNSU95OXpT?=
 =?utf-8?B?RXowTWhjcjgxOS9iQVA0WWRMMWtLTERtYnFqeVdtalI0TFVYUG5yQUZRUU04?=
 =?utf-8?B?THM0aVhIU3RSa1BHRVJGdUtEbFpnV01RdHAvcmpzb1ZQUkp6VnV1Vy9lRmZ1?=
 =?utf-8?B?QUdiVnNJQVNFejFHeHRFVXZXek5mR0xjT0l2NURseDZwclVkN0t0VFhlRXdk?=
 =?utf-8?B?SVJuZUxiMHpheENpL2N5MHB6OG5oV3NCSGMvS25QQVNJLzJjWVdkZzQranpB?=
 =?utf-8?B?VUpjWnh1dTEwTEJLWEhjNDU1QThQbUVMeGhKam5SZGQ4Q2IrTlYyZmVNMHdP?=
 =?utf-8?B?eU1jZjJsSjB5dVFQTnNBNU1XTFEzUndlRHVrMnh3bTlIdG1iOTBJMVpHYndw?=
 =?utf-8?B?UW95anB0Qys4dUw0SER5MmZrTWlwN2hLL2VtN0l2YkNIdTVhYXhMbnVaZ2Jp?=
 =?utf-8?B?K3pXTkxuQTFtcFNmeWlKVUFzZHNnSm1nWW13STJHQW9ibnNaanB6QWtVSmNh?=
 =?utf-8?B?SFJvZkNxTDFiK1BGakRWblp3YmJ2MVdqNnErSGU3c3RGRE1MYng3UGlVMlVM?=
 =?utf-8?B?SmpjK1dWQU0rOTl6SjhDSWZzOFFRRytNdUsyL3VrWSsxWitrUDAvMUxiQXdp?=
 =?utf-8?B?L3FUNkk3aktrbkhrKzVKY2JZM0FEaWZ1Z2dXSUx3TFhtTEY5dUpsNjd2Sngx?=
 =?utf-8?B?VGhLMTA2NWxweGlQNUhzMFN0czAzeUJwUFpqQSt2ZWIyL3FnNXFvYUY3QnRL?=
 =?utf-8?B?dTJ2ajl0OTg4bjRIUW5Cc0RhR3o4L2p6WWpPYmVFVkhSLzQ4WGp4NXR0NDlK?=
 =?utf-8?B?MWFjc1I0ais5aWpiVEUwdm9zZXVJOGowYWc3MDRVZ1lKenU3N2ZzSDA5SjdW?=
 =?utf-8?B?Qks0clBVcVhOeGpMdlVIQ3dXMGMrWHF4WmNKWnZyOXlzL1JCcnJJUk9URm9m?=
 =?utf-8?B?OVV4R2t1UHFBWkdOai9YRzNOY3JaSjhXZGJkMS9kL0RpbnRnaWpDcTNJS3ZR?=
 =?utf-8?B?TjVOSFVoRXFNQUZmOSsrNURlbTYxRm4wblBUdkkxMGpBeU0zaXhvQ0VQMVBX?=
 =?utf-8?B?bzBFWWx5dVREMlY2SnFpNHBoYWNlYUNKU1A3TW9na1RDcnJFSW01b0N6VWdu?=
 =?utf-8?B?dUtwOWduRHp6dW5hTTdWOE1CQWZYTGxqamwwR3ZDajAxQjNObkhrMGwxeTBM?=
 =?utf-8?B?UHJnVnRKM1BRUlVGaGtWcWR5cXM3UFYvcWFKanI5ZC9ZbWxzNlNRQWxRdUhQ?=
 =?utf-8?B?alQwTXR5d2pVQkVtM1UyOXhVd1VKV2NCNHRjVjBPaFR3a3YyVnRTd2VwaExD?=
 =?utf-8?B?ZEdmOGh6aytWMzZiVmlraGllaUJUTEozc3p4enNVcXZpQThxQ3dKQ0FvYTBq?=
 =?utf-8?B?a1ZwSGc3UGtuUDhOMGlVVHYxbGVVRTNueThVZmpkZXJVNkpwTXdMTDU4Tm1s?=
 =?utf-8?B?TU1zenNINTJ1T1VDSVVOMko4aE5xRkZwazZGdWUwQ3UvRjlJcXo5aHZMV0Mw?=
 =?utf-8?B?MkhOQ2tzemY5Qm1GNTUzY3VZRlFlTnZmTEZNdE5nUE9MYndYV3lvM1BUcmd0?=
 =?utf-8?B?bVNrMEVCQllxRlE1L1VtSy9hNkFpd01JOHV0Nmd4VHR4b0syQ3Z0dmUzd3Nq?=
 =?utf-8?B?WGFkRCt6MEwyL01BTGorMGtCV0hMWDBkaXhCMDF5Tmw1TjVIQUpuOFlsVU5P?=
 =?utf-8?B?QkJIaUwzU0NZNi8wZC9ZQlNhV2lxckRxNTZZYzR5bEdxdHlBbHQ5UVY1YzRY?=
 =?utf-8?Q?SElZ2y38ZecE59qGg5MKWpI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 688e8384-c1fc-425c-8a36-08d9b3174377
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 09:04:34.8602
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lhQd792sWerAfYcOoGVQ8a2pv4IIX259Eh372iNmV/gpHPDFALP1zsDfalv3Y+XSoTp7cfHdgRz8uc4pg3y8Hg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7152

The aim being to have as few indirect calls as possible (see [1]),
whereas during initial conversion performance was the main aspect and
hence rarely used hooks didn't get converted. Apparently one use of
get_interrupt_shadow() was missed at the time.

While I've intentionally left alone the cpu_{up,down}() etc hooks for
not being guest reachable, the nhvm_hap_walk_L1_p2m() one can't
currently be converted as the framework supports only up to 6 arguments.
Down the road the three booleans perhaps want folding into a single
parameter/argument.

While doing this, drop NULL checks ahead of .nhvm_*() calls when the
hook is always present. Also convert the .nhvm_vcpu_reset() call to
alternative_vcall(), as the return value is unused and the caller has
currently no way of propagating it.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

[1] https://lists.xen.org/archives/html/xen-devel/2021-11/msg01822.html
---
Another candidate for dropping the conditional would be
.enable_msr_interception(), but this would then want the wrapper to also
return void (hence perhaps better done separately).

--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2548,7 +2548,7 @@ static int hvmemul_vmfunc(
 
     if ( !hvm_funcs.altp2m_vcpu_emulate_vmfunc )
         return X86EMUL_UNHANDLEABLE;
-    rc = hvm_funcs.altp2m_vcpu_emulate_vmfunc(ctxt->regs);
+    rc = alternative_call(hvm_funcs.altp2m_vcpu_emulate_vmfunc, ctxt->regs);
     if ( rc == X86EMUL_EXCEPTION )
         x86_emul_hw_exception(TRAP_invalid_op, X86_EVENT_NO_EC, ctxt);
 
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -703,7 +703,7 @@ int hvm_domain_initialise(struct domain
     if ( rc )
         goto fail2;
 
-    rc = hvm_funcs.domain_initialise(d);
+    rc = alternative_call(hvm_funcs.domain_initialise, d);
     if ( rc != 0 )
         goto fail2;
 
@@ -736,7 +736,7 @@ void hvm_domain_relinquish_resources(str
         alternative_vcall(hvm_funcs.domain_relinquish_resources, d);
 
     if ( hvm_funcs.nhvm_domain_relinquish_resources )
-        hvm_funcs.nhvm_domain_relinquish_resources(d);
+        alternative_vcall(hvm_funcs.nhvm_domain_relinquish_resources, d);
 
     viridian_domain_deinit(d);
 
@@ -866,7 +866,7 @@ static int hvm_save_cpu_ctxt(struct vcpu
         return 0;
 
     /* Architecture-specific vmcs/vmcb bits */
-    hvm_funcs.save_cpu_ctxt(v, &ctxt);
+    alternative_vcall(hvm_funcs.save_cpu_ctxt, v, &ctxt);
 
     hvm_get_segment_register(v, x86_seg_idtr, &seg);
     ctxt.idtr_limit = seg.limit;
@@ -1089,14 +1089,14 @@ static int hvm_load_cpu_ctxt(struct doma
 #undef UNFOLD_ARBYTES
 
     /* Architecture-specific vmcs/vmcb bits */
-    if ( hvm_funcs.load_cpu_ctxt(v, &ctxt) < 0 )
+    if ( alternative_call(hvm_funcs.load_cpu_ctxt, v, &ctxt) < 0 )
         return -EINVAL;
 
     v->arch.hvm.guest_cr[2] = ctxt.cr2;
     hvm_update_guest_cr(v, 2);
 
     if ( hvm_funcs.tsc_scaling.setup )
-        hvm_funcs.tsc_scaling.setup(v);
+        alternative_vcall(hvm_funcs.tsc_scaling.setup, v);
 
     v->arch.msrs->tsc_aux = ctxt.msr_tsc_aux;
 
@@ -1559,7 +1559,8 @@ int hvm_vcpu_initialise(struct vcpu *v)
     if ( rc != 0 ) /* teardown: vlapic_destroy */
         goto fail2;
 
-    if ( (rc = hvm_funcs.vcpu_initialise(v)) != 0 ) /* teardown: hvm_funcs.vcpu_destroy */
+    rc = alternative_call(hvm_funcs.vcpu_initialise, v);
+    if ( rc != 0 ) /* teardown: hvm_funcs.vcpu_destroy */
         goto fail3;
 
     softirq_tasklet_init(&v->arch.hvm.assert_evtchn_irq_tasklet,
@@ -1607,7 +1608,7 @@ int hvm_vcpu_initialise(struct vcpu *v)
     free_compat_arg_xlat(v);
  fail4:
     hvmemul_cache_destroy(v);
-    hvm_funcs.vcpu_destroy(v);
+    alternative_vcall(hvm_funcs.vcpu_destroy, v);
  fail3:
     vlapic_destroy(v);
  fail2:
@@ -1631,7 +1632,7 @@ void hvm_vcpu_destroy(struct vcpu *v)
     free_compat_arg_xlat(v);
 
     tasklet_kill(&v->arch.hvm.assert_evtchn_irq_tasklet);
-    hvm_funcs.vcpu_destroy(v);
+    alternative_vcall(hvm_funcs.vcpu_destroy, v);
 
     vlapic_destroy(v);
 
@@ -3863,7 +3864,7 @@ enum hvm_intblk hvm_interrupt_blocked(st
          !(guest_cpu_user_regs()->eflags & X86_EFLAGS_IF) )
         return hvm_intblk_rflags_ie;
 
-    intr_shadow = hvm_funcs.get_interrupt_shadow(v);
+    intr_shadow = alternative_call(hvm_funcs.get_interrupt_shadow, v);
 
     if ( intr_shadow & (HVM_INTR_SHADOW_STI|HVM_INTR_SHADOW_MOV_SS) )
         return hvm_intblk_shadow;
@@ -3979,7 +3980,7 @@ void hvm_vcpu_reset_state(struct vcpu *v
     hvm_set_segment_register(v, x86_seg_idtr, &reg);
 
     if ( hvm_funcs.tsc_scaling.setup )
-        hvm_funcs.tsc_scaling.setup(v);
+        alternative_vcall(hvm_funcs.tsc_scaling.setup, v);
 
     /* Sync AP's TSC with BSP's. */
     v->arch.hvm.cache_tsc_offset =
--- a/xen/arch/x86/hvm/nestedhvm.c
+++ b/xen/arch/x86/hvm/nestedhvm.c
@@ -54,8 +54,7 @@ nestedhvm_vcpu_reset(struct vcpu *v)
 
     hvm_asid_flush_vcpu_asid(&nv->nv_n2asid);
 
-    if ( hvm_funcs.nhvm_vcpu_reset )
-        hvm_funcs.nhvm_vcpu_reset(v);
+    alternative_vcall(hvm_funcs.nhvm_vcpu_reset, v);
 
     /* vcpu is in host mode */
     nestedhvm_vcpu_exit_guestmode(v);
@@ -64,14 +63,14 @@ nestedhvm_vcpu_reset(struct vcpu *v)
 int
 nestedhvm_vcpu_initialise(struct vcpu *v)
 {
-    int rc = -EOPNOTSUPP;
+    int rc;
 
     if ( !shadow_io_bitmap[0] )
         return -ENOMEM;
 
-    if ( !hvm_funcs.nhvm_vcpu_initialise ||
-         ((rc = hvm_funcs.nhvm_vcpu_initialise(v)) != 0) )
-         return rc;
+    rc = alternative_call(hvm_funcs.nhvm_vcpu_initialise, v);
+    if ( rc )
+        return rc;
 
     nestedhvm_vcpu_reset(v);
     return 0;
@@ -80,8 +79,7 @@ nestedhvm_vcpu_initialise(struct vcpu *v
 void
 nestedhvm_vcpu_destroy(struct vcpu *v)
 {
-    if ( hvm_funcs.nhvm_vcpu_destroy )
-        hvm_funcs.nhvm_vcpu_destroy(v);
+    alternative_vcall(hvm_funcs.nhvm_vcpu_destroy, v);
 }
 
 static void
--- a/xen/arch/x86/monitor.c
+++ b/xen/arch/x86/monitor.c
@@ -270,7 +270,8 @@ int arch_monitor_domctl_event(struct dom
         ad->monitor.descriptor_access_enabled = requested_status;
 
         for_each_vcpu ( d, v )
-            hvm_funcs.set_descriptor_access_exiting(v, requested_status);
+            alternative_vcall(hvm_funcs.set_descriptor_access_exiting, v,
+                              requested_status);
 
         domain_unpause(d);
         break;
--- a/xen/arch/x86/vm_event.c
+++ b/xen/arch/x86/vm_event.c
@@ -204,7 +204,7 @@ void vm_event_fill_regs(vm_event_request
     ASSERT(is_hvm_vcpu(curr));
 
     /* Architecture-specific vmcs/vmcb bits */
-    hvm_funcs.save_cpu_ctxt(curr, &ctxt);
+    alternative_vcall(hvm_funcs.save_cpu_ctxt, curr, &ctxt);
 
     req->data.regs.x86.rax = regs->rax;
     req->data.regs.x86.rcx = regs->rcx;
--- a/xen/include/asm-x86/hvm/hvm.h
+++ b/xen/include/asm-x86/hvm/hvm.h
@@ -601,7 +601,7 @@ static inline void hvm_invalidate_regs_f
 static inline int nhvm_vcpu_vmexit_event(
     struct vcpu *v, const struct x86_event *event)
 {
-    return hvm_funcs.nhvm_vcpu_vmexit_event(v, event);
+    return alternative_call(hvm_funcs.nhvm_vcpu_vmexit_event, v, event);
 }
 
 /* returns l1 guest's cr3 that points to the page table used to
@@ -609,43 +609,44 @@ static inline int nhvm_vcpu_vmexit_event
  */
 static inline uint64_t nhvm_vcpu_p2m_base(struct vcpu *v)
 {
-    return hvm_funcs.nhvm_vcpu_p2m_base(v);
+    return alternative_call(hvm_funcs.nhvm_vcpu_p2m_base, v);
 }
 
 /* returns true, when l1 guest intercepts the specified trap */
 static inline bool_t nhvm_vmcx_guest_intercepts_event(
     struct vcpu *v, unsigned int vector, int errcode)
 {
-    return hvm_funcs.nhvm_vmcx_guest_intercepts_event(v, vector, errcode);
+    return alternative_call(hvm_funcs.nhvm_vmcx_guest_intercepts_event, v,
+                            vector, errcode);
 }
 
 /* returns true when l1 guest wants to use hap to run l2 guest */
 static inline bool_t nhvm_vmcx_hap_enabled(struct vcpu *v)
 {
-    return hvm_funcs.nhvm_vmcx_hap_enabled(v);
+    return alternative_call(hvm_funcs.nhvm_vmcx_hap_enabled, v);
 }
 
 /* interrupt */
 static inline enum hvm_intblk nhvm_interrupt_blocked(struct vcpu *v)
 {
-    return hvm_funcs.nhvm_intr_blocked(v);
+    return alternative_call(hvm_funcs.nhvm_intr_blocked, v);
 }
 
 static inline bool_t hvm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     if ( hvm_funcs.enable_msr_interception )
     {
-        hvm_funcs.enable_msr_interception(d, msr);
-        return 1;
+        alternative_vcall(hvm_funcs.enable_msr_interception, d, msr);
+        return true;
     }
 
-    return 0;
+    return false;
 }
 
 static inline bool_t hvm_is_singlestep_supported(void)
 {
     return (hvm_funcs.is_singlestep_supported &&
-            hvm_funcs.is_singlestep_supported());
+            alternative_call(hvm_funcs.is_singlestep_supported));
 }
 
 static inline bool hvm_hap_supported(void)
@@ -663,14 +664,14 @@ static inline bool hvm_altp2m_supported(
 static inline void altp2m_vcpu_update_p2m(struct vcpu *v)
 {
     if ( hvm_funcs.altp2m_vcpu_update_p2m )
-        hvm_funcs.altp2m_vcpu_update_p2m(v);
+        alternative_vcall(hvm_funcs.altp2m_vcpu_update_p2m, v);
 }
 
 /* updates VMCS fields related to VMFUNC and #VE */
 static inline void altp2m_vcpu_update_vmfunc_ve(struct vcpu *v)
 {
     if ( hvm_funcs.altp2m_vcpu_update_vmfunc_ve )
-        hvm_funcs.altp2m_vcpu_update_vmfunc_ve(v);
+        alternative_vcall(hvm_funcs.altp2m_vcpu_update_vmfunc_ve, v);
 }
 
 /* emulates #VE */
@@ -678,7 +679,7 @@ static inline bool altp2m_vcpu_emulate_v
 {
     if ( hvm_funcs.altp2m_vcpu_emulate_ve )
     {
-        hvm_funcs.altp2m_vcpu_emulate_ve(v);
+        alternative_vcall(hvm_funcs.altp2m_vcpu_emulate_ve, v);
         return true;
     }
     return false;
@@ -687,7 +688,7 @@ static inline bool altp2m_vcpu_emulate_v
 static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
 {
     if ( hvm_funcs.vmtrace_control )
-        return hvm_funcs.vmtrace_control(v, enable, reset);
+        return alternative_call(hvm_funcs.vmtrace_control, v, enable, reset);
 
     return -EOPNOTSUPP;
 }
@@ -696,7 +697,7 @@ static inline int hvm_vmtrace_control(st
 static inline int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos)
 {
     if ( hvm_funcs.vmtrace_output_position )
-        return hvm_funcs.vmtrace_output_position(v, pos);
+        return alternative_call(hvm_funcs.vmtrace_output_position, v, pos);
 
     return -EOPNOTSUPP;
 }
@@ -705,7 +706,7 @@ static inline int hvm_vmtrace_set_option
     struct vcpu *v, uint64_t key, uint64_t value)
 {
     if ( hvm_funcs.vmtrace_set_option )
-        return hvm_funcs.vmtrace_set_option(v, key, value);
+        return alternative_call(hvm_funcs.vmtrace_set_option, v, key, value);
 
     return -EOPNOTSUPP;
 }
@@ -714,7 +715,7 @@ static inline int hvm_vmtrace_get_option
     struct vcpu *v, uint64_t key, uint64_t *value)
 {
     if ( hvm_funcs.vmtrace_get_option )
-        return hvm_funcs.vmtrace_get_option(v, key, value);
+        return alternative_call(hvm_funcs.vmtrace_get_option, v, key, value);
 
     return -EOPNOTSUPP;
 }
@@ -722,7 +723,7 @@ static inline int hvm_vmtrace_get_option
 static inline int hvm_vmtrace_reset(struct vcpu *v)
 {
     if ( hvm_funcs.vmtrace_reset )
-        return hvm_funcs.vmtrace_reset(v);
+        return alternative_call(hvm_funcs.vmtrace_reset, v);
 
     return -EOPNOTSUPP;
 }



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:08:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234350.406716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrceP-0007r2-IB; Mon, 29 Nov 2021 09:08:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234350.406716; Mon, 29 Nov 2021 09:08:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrceP-0007qv-FF; Mon, 29 Nov 2021 09:08:41 +0000
Received: by outflank-mailman (input) for mailman id 234350;
 Mon, 29 Nov 2021 09:08:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrceN-0007qp-JI
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:08:39 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f094ea7c-50f3-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 10:08:38 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-5-YIAlUmYePE2WFC_oVZz7aQ-1; Mon, 29 Nov 2021 10:08:37 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5469.eurprd04.prod.outlook.com (2603:10a6:803:cf::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Mon, 29 Nov
 2021 09:08:36 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 09:08:36 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0301CA0033.eurprd03.prod.outlook.com (2603:10a6:206:14::46) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Mon, 29 Nov 2021 09:08:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f094ea7c-50f3-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638176918;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=YSB+a2Bm8+MSU2NHAkHPoh58Y86krjJ/bifP8U6f9JU=;
	b=d4C6JQ7WuzLbCwiaBxRMbpV7L1Q2AV8ezVqdZ4hmb4QBgxUf42f7/xW0o71vVVUCvQtKLG
	nqefFx/6+y3fl28mP3WrIjLOTG5Lu6Ju8HCVHs9LX6i9Xm1YE/lGvSUsqY1EdQ1aTQDAKi
	rqeuMbjlGUrQmJ3aOgWNvfPKOYlswIg=
X-MC-Unique: YIAlUmYePE2WFC_oVZz7aQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VFNTd6K5HPBuLJfHpH+i9nlhsOHMRLLnDH8CoebzcN9yQINIA3dSosDQLjzu1nIfKwKz19UgrcqOU8Pozrtalu6nw+hF+ZmRbSleZ9xGKVESwVTtu2O5yo+GhF+KcunSKCsz6AxsmKWXNhDFni2xVtx1ZJCYX0xr2xw+8CIzsAHwhkAFH8DsGOlPClngwxgXKENzgkNQOwOA9u9JQwaACP3+RfahpiTCwfzyNYKH2mqDREcNpGjZ20LYwm90Ziy7HIcFRd3jrMecO5yy7qNbPH207eSzixgufa/7iZrkE+Ylk/p9vTSTqlS/OS/PRTIfN0KeeNlADkZcjLB0GKdd+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YSB+a2Bm8+MSU2NHAkHPoh58Y86krjJ/bifP8U6f9JU=;
 b=npRyfVDvRbmj3h22vGqthiIMRN12Ly7U1xXgvXtP+pziH3r8iCo4Wjs5R2NXyHHZ4I0C6sH6QAJTGa6Rz3PcLG8JDJAyoANXZfy+YOySjoXZNUwKgwjsYqyTt6DzTS/uts26mVPpquLiKkvcypNvx3GSY2TVtQsKXQiqhDIcE7fnCcsqhFxvZsBDOhoq1ZxNo9Glw+WH1mmRc3/izBVTLt4aIxfgIOOH0/2tp1PK/1uGciE7YOXEzTF93C0co9oMopMEPWigHreYYIUmPZ4PCJyb6CfFvfwSLMYN7J+yfSYbRXulnr8HMZd0AZLJdaV9USBosrBSvTL40fmHHwJhEQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
Date: Mon, 29 Nov 2021 10:08:37 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Kevin Tian <kevin.tian@intel.com>, Jun Nakajima <jun.nakajima@intel.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/3] x86/vPMU: adjustements to vendor hooks treatment
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR0301CA0033.eurprd03.prod.outlook.com
 (2603:10a6:206:14::46) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 304351b8-3ee1-4a25-fd1c-08d9b317d33b
X-MS-TrafficTypeDiagnostic: VI1PR04MB5469:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB546973EB5F86E6EEBF4C95D1B3669@VI1PR04MB5469.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	n6QufKEp2z5XJuWGqBDRmABExbf/BeWCyTGMgT8PFCOQIFRd49j9sbdQSTZu6tmAzmgu7RxDNkZlGs1qxZsGV3AGxFSR74Z9R2yCnF1S52Me5T0W38ZMcN1a/jKrbX7aHvd6Wd7pnvAtWKeH0Ywlx4YS5m5xYjf6CHwNmuWTXDtzzu1/PeDgEL2J7Ht+8U1Xodzn/BxeJTK0esWQ4YJKNOu/JsxLRR6E5ifEZAIAPORw5EZEVGg8cTNvk/TDi61A6AsS3pIG13d505R0V6wjPYVH2x37nYXzhn3Q3+IQNLcltBCV+Op0Re/4LN7y921cFU0P4rjLzkF4I8JzVeOHLL4dQgpA0poDQe4B2QQC5dsFS208ESPNc5pYXAyDzmYG07yMNZ8KUxRQv2rUbmvTVDSoweQjP0i+vXtB465AJve2Gc8jYfOkEVqX96mVKdhKq68LrKlelDD+7viJByvWK9452zyO3aJZXOVvuDQwc+NAFChKQMnWamHkXww7jObLl92LUcVkJe3CJP0tvPb+Hx8PAF+NLLn8dRWdzCsWwyIsD5NAkWbptuX8y2/beICu86ISrEndJKfT7+5m3Nxq8XQEX2EWXgyH9+v1k2OKRKZm273/XcOPv/nAl6+Yum6GMawwRBASfL+HMVMlVPvPd+euQXkek5QAMeQA3HAEBQ6SdhCkVdt0V+cvB+mllyxnTggBv4nNFJfcOmxwfUEXUFmbrkTckjiTVwZVi/0T7oB53yCyd4g5THgyFm294brjZa+EjeQhb918jjGhJExgFK8jpTWGbN0rAgaQ6aCoSLIm54HwgbTGZzKGsQa+DK4NRYC+7n7T2hwrpppaTlU4tQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(5660300002)(31696002)(956004)(2616005)(2906002)(186003)(316002)(36756003)(54906003)(16576012)(26005)(4744005)(31686004)(8936002)(6486002)(38100700002)(508600001)(4326008)(66556008)(66946007)(66476007)(86362001)(966005)(6916009)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z2lHa3JrWWpreWhkYVF4cFk1WTJQMzdwKzEyR3VjcnVEQnYyNXZ2eVJNQkN4?=
 =?utf-8?B?R0tSUW1Rc0FpY0ZFT0hOR2djd1RHYlVpaVY0OGYrQ2x6aUFnNXNXUllMa0FU?=
 =?utf-8?B?Vi8zMWI5R1pPT1gyRGRYNTBZc0s4eXdDT2JoazcyREZLOHBkaDhKYVRHMUpG?=
 =?utf-8?B?VnNwZWN4Q1M5QmYvcUFsbTNScXhYVnd5dFRMQlMzMHBVVWJKbGZ5N0ZDU0Fu?=
 =?utf-8?B?MnJVcElaeXgveXhjVlg4T2hDR1oyOGJpbWpNeHJRY0JrbXpERE9HdVVGLzQ4?=
 =?utf-8?B?dktvMUgwNG9VU3FrMmhySUJKeUZ2QWQ0YkxGODltS0xkYk8wQWp6NVVqS2VE?=
 =?utf-8?B?a1hXVG5RYWRYWGhBKzhORUJFOUs4UVBnMmZyc01KRmJOc1dhOThhck00bXRw?=
 =?utf-8?B?TGxtdjdKdXZCN2Y2ekxpeFhrcWpBK0I3ZUl5UTFjR2tsczdpNndnNXRmNHkx?=
 =?utf-8?B?Z3R4SytITE42OXA3VnlUZWwxcFRXL2Z5WnNQS0kxZmhBVEJiODY1dFpyZ1U3?=
 =?utf-8?B?Sm5Ud2tuQ0VmbXpHcUZhelZuN2JVTzNKNW1YN2h4NFYwVk85SDlXWUlTQTMx?=
 =?utf-8?B?RzZsRkx6blRXbC8yVGxYaFdlYXkrNldhTjFieFZWNlpCcmovNmpLeVpSSG9K?=
 =?utf-8?B?TWd4RkVNL2hUMUU3bjFuSnUwZHRqNXNBRFhheUVDQjFvckpRL3Zvc2xKdUxL?=
 =?utf-8?B?OXFjbVJUcUxOK1pRNUp6YTJkRUk1b3BGdkVJSWU4cEJPOWRrelBaYklTZ2tY?=
 =?utf-8?B?cVV3NUlCYU9JQmtqNi9pWTZDLzJNOXFpT084Tk9iNFAzRndvOFR6a3hnNEI1?=
 =?utf-8?B?SnViNE8zcUw1WG5rcDcyZDVqUnNYK3VtekpGcW05M2hEWEpMb0FnV1ByeFph?=
 =?utf-8?B?TXV6Znpudi9nbDRFcEQ2OXArSm92RWdxRGpUMTZQNmY0b3kvT3lRZlhBVHpu?=
 =?utf-8?B?dEZkY2xnbS8wVks4QzdpRk5lL1VhU1ZxbHRJZlhnQmRDRnROOEVXamZsWGk4?=
 =?utf-8?B?bmtsQW9Wb3diRkVtQ1F1dmp4SkZJZzMrS1FlcUdQdkVuQktRNE1CbU5yT1Ev?=
 =?utf-8?B?TXVMalNLQzFTNm40UzhrVWZNOC83VktxS2Mxb3Zkc2Ntc3BEL2RSdENXeHRB?=
 =?utf-8?B?Q2FQWDJCNktEbTd4YmRCYndHQ0p6QVA2MFBGbE9ueFhyejRwVXpZOU1iS0NE?=
 =?utf-8?B?b0o1b0FhcEw1dUcxZ3RtQXR2QW1vclprb0cybE9qU1J5RlVOWUZEM1BUWm8z?=
 =?utf-8?B?dnlLbnQ0UWRCVEwvK2ZpRXRxU1VmM3V4RlQ3WG8reVBjaVZPaXVwMkgycE9h?=
 =?utf-8?B?aGNscWhjSTNPS2RaYjZEVFQ3YTkvOEVVU29ZcFRUQnE2ZmF5OHpKWmFnd0x0?=
 =?utf-8?B?V2hlc1pyR0h0ZXFZMkp3Tks5VnU2T2lQcXlvcEk0SkMyV05QTER4d2VIZVZQ?=
 =?utf-8?B?K2tkdXdJOCttUW83YmZiQTM4QVJ5ZExUY1NDdGZscVJUZnMwRWRDOEV6Mm9p?=
 =?utf-8?B?M0JSZnI5b0xEY2tVV1JTMlJuMkowcnZZYjliWEVGRkVmN3JpOUcrTk9yVUM3?=
 =?utf-8?B?VWJVRExZQTZHWDBCVVlXUWpBNXRERVpSYjJSL1IrNVVNY1hzalZKYVYyb2I5?=
 =?utf-8?B?YTJKbzMrME9QZXBRcVhTdEJvNEFsVmtiMElldkYrbHB4eSt0bWNYVEw4cE14?=
 =?utf-8?B?cmFBaXNNS0lQRnVkWk1ndTdBejZ3WVRxQm4zUnVBT2tWS3NjQU9MMzVLc2JO?=
 =?utf-8?B?ckowUVJVQm5iajd6V1F2bGhyd0FoWGpUTW5BaC93bG1DeVNaU093TzJwRS8y?=
 =?utf-8?B?R2pjemhTNmZnQVlONGgrbFdUdWlZcGhnc2VrNHMxaE42N3p5aHdja09MeTlK?=
 =?utf-8?B?OXV0QVNqS2hqZ1NOaDE3M0NlWHc4L0dxVEd4a0JFc0ZFQVBrbFYzaEF4cDdr?=
 =?utf-8?B?Wk95aDB2WWtRSzltSkZXNDdkODVxS3lhZ1VlUGxoOG80dWVXTC9TYzVrUkpr?=
 =?utf-8?B?Y2ppSFIxQlhmZlRjY0FOMGVkSG1OWklIYXlqOHZ4VW42cVhOU1l6RFFsUGhr?=
 =?utf-8?B?TXF2VUF4VXY5ZjIvM1FWSGpYT3hOR1hwZDcxUVBhVCtPbnhzcTgwcTlLWU9x?=
 =?utf-8?B?MWhhekdmajBCNjVpdWZIRERsNnN6UGpHbmMrK0JVVUdYVUkyOEducDlyR1Ry?=
 =?utf-8?Q?hIBUIL8+OUVyUv5uCkDBoe0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 304351b8-3ee1-4a25-fd1c-08d9b317d33b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 09:08:36.0808
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KbvomHsN2CbkYAyBUJxPXZVISIn3guuGPOOKF1I7hquLERdRDOGNa7yIazv+PtDAYRttrF4/1XxIn1TPBMYBBw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5469

In the context of [1] the 1st patch will be of interest, whereas the
other changes are a result of observations while doing that conversion.

1: convert vendor hook invocations to altcall
2: invoke <vendor>_vpmu_initialise() through a hook as well
3: move vpmu_ops to .init.data

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2021-11/msg01822.html



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:10:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:10:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234357.406728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcfq-0000oG-2C; Mon, 29 Nov 2021 09:10:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234357.406728; Mon, 29 Nov 2021 09:10:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcfp-0000o9-VX; Mon, 29 Nov 2021 09:10:09 +0000
Received: by outflank-mailman (input) for mailman id 234357;
 Mon, 29 Nov 2021 09:10:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrcfp-0000jv-1c
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:10:09 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25903fcb-50f4-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 10:10:07 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-32-TyxLkeyRPVqHZn3K1tze_Q-1; Mon, 29 Nov 2021 10:10:06 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5469.eurprd04.prod.outlook.com (2603:10a6:803:cf::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Mon, 29 Nov
 2021 09:10:05 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 09:10:04 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0138.eurprd04.prod.outlook.com (2603:10a6:20b:127::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Mon, 29 Nov 2021 09:10:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25903fcb-50f4-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638177007;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7QkaCIQzisRqxKoxe93GeFU157LBKSiuLUmcqzfECJc=;
	b=Bjs83jBs9Y08xxPJazotLLlYqEuUQpRz+kasJl5BW8TpWTLefNrhY1IoMIeytAAp4yfeV2
	BwEfm3xzivFNPHl6tVpacqngZ2DhgSAyBGyOueQd45r2+c9ubQVIaHAc6mozYeK+JFzvOr
	VgcoQfWIErHWhLwpV9Zzi5MgBaQBu+U=
X-MC-Unique: TyxLkeyRPVqHZn3K1tze_Q-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kBO98Z+12SbOgPZxGojMvPyDMrDkB9HPra82NDPo2R8c5bW04TbYGQIT/UBQN55IZbpIna7Ffs5G/9t/MVG/Hp4CW7u/fO8vyexsGTFME49NaqgX2qIEk83ADehqvTkxFskzk8ijhu/keH5CT/oc1Z30g+LCDvlmqy/lN+U3XUl+anG7xO9HDRn6wUMegvb32Ee7BOvbLTHhLaL42sos6aqNywG2nPyVvI6sr7KZquJo1UbeRiv8ELc3up4ex+4VTHcynfAXfgZGIkFKQviPZBwc8E7N1DN4mxaF/Ibnq8U8Jt6ub/oNCT76tauu+LE0gUq8eZov5LugFKYzCvqxHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7QkaCIQzisRqxKoxe93GeFU157LBKSiuLUmcqzfECJc=;
 b=f+XLDRzBWc6AfvumJqzAkqzDRiHe6NPYFzKnJ+coXdXEGrvLaRoQwTzXFR+J8G0ud2fRWBpzBgi1upX1+HXZV3loOlu1mYp49DLqXWzeFk4Fn+XbIED46yAk8nLOzuYy63jJLhQEix4J5/I8MZfpOXogfs2AeBwH7iDlnF9Nz6Ed3gv1MRIY965zneuzi5zjf5+qQkt69qt+uHdnP2GQuNS68jiJXUvUgAyll7uqyQhnXoFFqxYhCXA9EugWdC/4Ulqm3iqtjBhnlwtSxhJ1byPVOqBCPEzUE7rCwZ5D/yJKp0abnc3U+doZtU+bG2ms/bjaFtYL3/F2vsWbo4kXWg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <aa19f4cf-6f62-3bf8-7057-7dae1cf28162@suse.com>
Date: Mon, 29 Nov 2021 10:10:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: [PATCH 1/3] x86/vPMU: convert vendor hook invocations to altcall
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Kevin Tian <kevin.tian@intel.com>, Jun Nakajima <jun.nakajima@intel.com>
References: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
In-Reply-To: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0138.eurprd04.prod.outlook.com
 (2603:10a6:20b:127::23) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 33472705-3384-4936-fce2-08d9b3180818
X-MS-TrafficTypeDiagnostic: VI1PR04MB5469:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB54693209D8093C0677F09D56B3669@VI1PR04MB5469.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	SDQ+uVTQAN9IpUVMh1H/U8st9K+VnQ8yQRiOKWKjR+g/sxhf7f1dBFW8clCrW5/W7A+OyamL9HW/VEbINKulA6oLN9yOqLZGJEexB4LM/HbdXTukCfO77WTyTvMJF5eePq2hMXM69zDv9fSeX9x+oaLD38Nb5kyyc3zfby2bQC7NWVwWc87FmDgHFQc4snrjS6lTcXTpUgRjXVLO9YclAeqknmbmvplNK6w1sdmg19oVX9SVX6TIul2fjI8si0OqTkOha0L6zJ+BhQUUAkSvSHNC0Ala0otgYWi7SY6ueeKtz9vv6ifC0xSpfHkGsd7UQxF4dkFlEF1XHVkXQl5lSkG1CfM2ztt4QryGif/IaBunbAwpnot8cYAb5jtatssUPjkSneneollmQxQnHleFv8NSpnmEhkkjxNsrCRbyV/zZTz++xgFGV34jCNzKeMUppk20MTfe8H3qrKD6PkhL2nqlrDXLuO7EnlP4bMnLTyBedWdQkOVftMWqVjyMQnUnQByMDfP22RyL6Pb7A2Abw3evVr7oi4AHVoLYuwQ83107M5s/ZkCAZlKh6soFRStvjIlHfdSpDdMJfqXM0Ox8oRk9i+EnUqIIqk5/JnnOET750RQD5t4WZiOqRbMbCig/x1KszvEnBdJ1FNWrgfx5XNojq2j3T2QvAE2toKXcBbPKyj18erk80VqI1N24+OFxZYOb/Hlbh/ljBWTNEcOPAyjK2XVpkHdeynUkvn+Xh162yofNlJboV1+at5Nf/Ot7
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(5660300002)(31696002)(956004)(2616005)(2906002)(186003)(316002)(36756003)(54906003)(16576012)(26005)(31686004)(8936002)(6486002)(38100700002)(508600001)(30864003)(4326008)(66556008)(66946007)(83380400001)(66476007)(86362001)(6916009)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RGwrWlowVzc4SkhZa2JBT3dUamJPdGdBNUFVUUFlVkZ6SWh0K1dmcDVIOGJT?=
 =?utf-8?B?M1lUNWFGMWdEVVhLdVZETHlxUWJjaFRzeUxwcHVWR0tYeVpPL2FYRlNtaGVu?=
 =?utf-8?B?bkhwTUdnR2pvY0Zmekk0emZtUFhMWVJ3dFh1R0ZLeW5hRW1PQTh0bmRTQTVD?=
 =?utf-8?B?N2NHUGRDSFhYWXNZck9TcnF3N0k0VWM4dXZTMHV5aytSQkZBVk1FbTVSQWY4?=
 =?utf-8?B?VmFXNmZyRm11U3JYaUxMbzRXM0R1QW50VjJuMHRJSnNyUlpxRFVDT1M0UVN4?=
 =?utf-8?B?NG9PRzNIMkowRDZ1ZzB5L0VtMWZLU2pSUXhXaURsbDN0MkEyeXVkYlVnUEgx?=
 =?utf-8?B?ekNsSlpsamxrZE40b0pHdkg0c0NOMkUyYjBzRXJDSGNJb1pzem9OZFhIRTNZ?=
 =?utf-8?B?NFRKeW1lYW8wV0pIUWZENm9HOTRZWENNV2w2clNJMk5VWGs4Rmk4UkxuMW9m?=
 =?utf-8?B?TUJncHVkTmhjOFptTGxsZHpTOWxLZUhPZkpWemkvb1hxVUgxL2ZVVkYxZ1VO?=
 =?utf-8?B?cGZFY01ZdXhyODk1WlZua2h6SVRGTC9tZUh4WHZQdU9YWWoyWHg3cnBwUXhn?=
 =?utf-8?B?eTFmRGZ4c3RVQmpiQkJ2T2JQYlEzdjl0cnlyMzU5bVlCbkJoaTIxbUloTWJh?=
 =?utf-8?B?dkxWNFpvcnhLMis5UCs3azBtNGlKakpZa0c0SUZNUEk4Wk4xUStSS3ArOHZ4?=
 =?utf-8?B?TWllSDZZRTlOamFVQ3NYZEF6T0NsQi8vcnpWTStBS2Y2dDVwT0RON3lvWFpM?=
 =?utf-8?B?KzJ6VFdpT0N5aHB3Q2VXTWlJczBuQ3NiWEJPZElOTlFRL011SFA3QkxzNnA4?=
 =?utf-8?B?SHQ0OVUwN1ZIU2t5ME9tc1hVYlk5NUJYYktIQWswUTlMLy9yV3h3eWxKQ3U1?=
 =?utf-8?B?RXkyc01odGNPQUpXZ1B2OExEaGIyMCtYdlhXaFR4NDhNRjRPVytodURTQmhw?=
 =?utf-8?B?Q0ZWWXpmTFZJT05mWmlSbGJyNHFxUDNSQ0xFUFNTaXNWNWczOWwrbGkxTDVE?=
 =?utf-8?B?RFJSdWJ1U2tFa0hETWhiWVFUQlFZV0NUeGI4amdVREVLNXhBK3Nka29ST2Mz?=
 =?utf-8?B?VTd4MDZDVDNCUGRZWXV1RXhpbHJua0tHR21aRllkUFFaMzBOWU5RaTNFYUlW?=
 =?utf-8?B?cGp5RGFKMUdQRTNZWmlCK1dqc01CMzNrUFRFSUh3UTFtenZQSUk4bjdjcGVj?=
 =?utf-8?B?cDV6d0EySFVuaEZjWXBEVUhseG1OcGZMSVIwclZuM3dxOU9BWXpwejdkUXhI?=
 =?utf-8?B?TzYwNG5YZXY3ZHRsVDhPNEtEdlE2R1hwSFpycEQzVmRDaUtIWUR3em9hSGxh?=
 =?utf-8?B?c0tnekNvcnd0WWVBSElEa21RMVhJYkhoNWtXZEtSN2Z4aTE2N0Z2MDBEQVNt?=
 =?utf-8?B?SXpkNkttVVZKYnMzT2t1WTZXSzMzTWpQa1FnMXYxN3ZRSEpmaVZzdUtZMHNO?=
 =?utf-8?B?MGJldVRUbXN3Uk1la0FTZGpwRXdPZ2w5QmhCV3dOdnl4eU5FQUk1ZTBlODdK?=
 =?utf-8?B?Q0NySVZlQ3AxcTJQNEZSR0FqMkg2aDc4UEl2WTl3dS9Ra0FLMFhVaEFjN1hz?=
 =?utf-8?B?algzejkwZXNwVFJWN1NCRXB0cWVHcGtXdkZJaXRQYUtiZHMwU0VMYTcwTnJS?=
 =?utf-8?B?QlJaT3RWOU5YQTBlYWFaM0F1alR4dzg3dWJNOE1GMlBQSS9YRC9MUHVzR05N?=
 =?utf-8?B?dGtYT2l5NTE1dWVBKzM4Wkg5L1VhQzFvTzk0T1VBdjZvdGVjbW1yeTI3T0lC?=
 =?utf-8?B?VFZNclRiT1VjMTVmeWN0V3Vqcnp5WnNTcmZxdkJPcExkdjBmcTBUZjlVRHda?=
 =?utf-8?B?a3MxWWZrUmNIb2g0VUJ5N1l0dEZlYlY0d1BmRUdZQWpWTEE3TjE4SlFzemZ2?=
 =?utf-8?B?Q2haZmFrcmdMTEIyL2MyeEtkNU9mTXZ6Vjh6R2NwQmJsT21kSzlZUEc2QkMw?=
 =?utf-8?B?T3Mva3FtVkpOMzlaUVQ3Zm9YOStlbit4Wjlna09udjAxVTk3eW5WYXZuYjVK?=
 =?utf-8?B?T0haSERRRXdhUEVFMmEyOGxFZ1JNWUplTkJQdjZGd0tkd3hXQ3hSd3dqaGVQ?=
 =?utf-8?B?MFpNaktpWFNVcVdhaW1rQmhLaGlrRjk5elQ2c2tHM1V5RDVKSTVNSXpQQnR1?=
 =?utf-8?B?UkJvNThiSjlja2p4MjAzeU5HYnhBUmZYSjJXQ1ZKV2ozaVJrb1pHOE9PTGxy?=
 =?utf-8?Q?MBbje+XWbHN9UlJ4s7IXbTc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 33472705-3384-4936-fce2-08d9b3180818
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 09:10:04.7927
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FzNQ63osYpsuATXUMZPaA6TGtkhFzLs3mF5k5/jkQhqp9gn6WD4PzGRmvxtgohoKXV26XvovWKAPrCtHPIkFDg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5469

At least some vPMU functions will be invoked (and hence can further be
speculated into) even in the vPMU-disabled case. Convert vpmu_ops to
the standard single-instance model being a prerequisite to engaging the
alternative_call() machinery, and convert all respective calls. Note
that this requires vpmu_init() to become a pre-SMP initcall.

This change then also helps performance.

To replace a few vpmu->arch_vpmu_ops NULL checks, introduce a new
VPMU_INITIALIZED state, such that in the absence of any other suitable
vmpu_is_set() checks this state can be checked for.

While adding the inclusion of xen/err.h, also prune other xen/*.h
inclusions.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -17,12 +17,12 @@
  *
  * Author: Haitao Shan <haitao.shan@intel.com>
  */
-#include <xen/sched.h>
-#include <xen/xenoprof.h>
-#include <xen/event.h>
-#include <xen/guest_access.h>
 #include <xen/cpu.h>
+#include <xen/err.h>
 #include <xen/param.h>
+#include <xen/event.h>
+#include <xen/guest_access.h>
+#include <xen/sched.h>
 #include <asm/regs.h>
 #include <asm/types.h>
 #include <asm/msr.h>
@@ -49,6 +49,7 @@ CHECK_pmu_params;
 static unsigned int __read_mostly opt_vpmu_enabled;
 unsigned int __read_mostly vpmu_mode = XENPMU_MODE_OFF;
 unsigned int __read_mostly vpmu_features = 0;
+static struct arch_vpmu_ops __read_mostly vpmu_ops;
 
 static DEFINE_SPINLOCK(vpmu_lock);
 static unsigned vpmu_count;
@@ -120,7 +121,6 @@ int vpmu_do_msr(unsigned int msr, uint64
 {
     struct vcpu *curr = current;
     struct vpmu_struct *vpmu;
-    const struct arch_vpmu_ops *ops;
     int ret = 0;
 
     /*
@@ -133,14 +133,13 @@ int vpmu_do_msr(unsigned int msr, uint64
          goto nop;
 
     vpmu = vcpu_vpmu(curr);
-    ops = vpmu->arch_vpmu_ops;
-    if ( !ops )
+    if ( !vpmu_is_set(vpmu, VPMU_INITIALIZED) )
         goto nop;
 
-    if ( is_write && ops->do_wrmsr )
-        ret = ops->do_wrmsr(msr, *msr_content, supported);
-    else if ( !is_write && ops->do_rdmsr )
-        ret = ops->do_rdmsr(msr, msr_content);
+    if ( is_write && vpmu_ops.do_wrmsr )
+        ret = alternative_call(vpmu_ops.do_wrmsr, msr, *msr_content, supported);
+    else if ( !is_write && vpmu_ops.do_rdmsr )
+        ret = alternative_call(vpmu_ops.do_rdmsr, msr, msr_content);
     else
         goto nop;
 
@@ -153,7 +152,7 @@ int vpmu_do_msr(unsigned int msr, uint64
         vpmu_is_set(vpmu, VPMU_CACHED) )
     {
         vpmu_set(vpmu, VPMU_CONTEXT_SAVE);
-        ops->arch_vpmu_save(curr, 0);
+        alternative_vcall(vpmu_ops.arch_vpmu_save, curr, 0);
         vpmu_reset(vpmu, VPMU_CONTEXT_SAVE | VPMU_CONTEXT_LOADED);
     }
 
@@ -202,7 +201,7 @@ void vpmu_do_interrupt(struct cpu_user_r
         sampling = sampled;
 
     vpmu = vcpu_vpmu(sampling);
-    if ( !vpmu->arch_vpmu_ops )
+    if ( !vpmu_is_set(vpmu, VPMU_INITIALIZED) )
         return;
 
     /* PV(H) guest */
@@ -220,7 +219,7 @@ void vpmu_do_interrupt(struct cpu_user_r
 
         /* PV guest will be reading PMU MSRs from xenpmu_data */
         vpmu_set(vpmu, VPMU_CONTEXT_SAVE | VPMU_CONTEXT_LOADED);
-        vpmu->arch_vpmu_ops->arch_vpmu_save(sampling, 1);
+        alternative_vcall(vpmu_ops.arch_vpmu_save, sampling, 1);
         vpmu_reset(vpmu, VPMU_CONTEXT_SAVE | VPMU_CONTEXT_LOADED);
 
         if ( is_hvm_vcpu(sampled) )
@@ -321,7 +320,7 @@ void vpmu_do_interrupt(struct cpu_user_r
     /* We don't support (yet) HVM dom0 */
     ASSERT(sampling == sampled);
 
-    if ( !vpmu->arch_vpmu_ops->do_interrupt(regs) ||
+    if ( !alternative_call(vpmu_ops.do_interrupt, regs) ||
          !is_vlapic_lvtpc_enabled(vlapic) )
         return;
 
@@ -349,8 +348,7 @@ static void vpmu_save_force(void *arg)
 
     vpmu_set(vpmu, VPMU_CONTEXT_SAVE);
 
-    if ( vpmu->arch_vpmu_ops )
-        (void)vpmu->arch_vpmu_ops->arch_vpmu_save(v, 0);
+    alternative_vcall(vpmu_ops.arch_vpmu_save, v, 0);
 
     vpmu_reset(vpmu, VPMU_CONTEXT_SAVE);
 
@@ -368,9 +366,8 @@ void vpmu_save(struct vcpu *v)
     vpmu->last_pcpu = pcpu;
     per_cpu(last_vcpu, pcpu) = v;
 
-    if ( vpmu->arch_vpmu_ops )
-        if ( vpmu->arch_vpmu_ops->arch_vpmu_save(v, 0) )
-            vpmu_reset(vpmu, VPMU_CONTEXT_LOADED);
+    if ( alternative_call(vpmu_ops.arch_vpmu_save, v, 0) )
+        vpmu_reset(vpmu, VPMU_CONTEXT_LOADED);
 
     apic_write(APIC_LVTPC, PMU_APIC_VECTOR | APIC_LVT_MASKED);
 }
@@ -426,13 +423,13 @@ int vpmu_load(struct vcpu *v, bool_t fro
          vpmu_is_set(vpmu, VPMU_CACHED)) )
         return 0;
 
-    if ( vpmu->arch_vpmu_ops && vpmu->arch_vpmu_ops->arch_vpmu_load )
+    if ( vpmu_ops.arch_vpmu_load )
     {
         int ret;
 
         apic_write(APIC_LVTPC, vpmu->hw_lapic_lvtpc);
         /* Arch code needs to set VPMU_CONTEXT_LOADED */
-        ret = vpmu->arch_vpmu_ops->arch_vpmu_load(v, from_guest);
+        ret = alternative_call(vpmu_ops.arch_vpmu_load, v, from_guest);
         if ( ret )
         {
             apic_write(APIC_LVTPC, vpmu->hw_lapic_lvtpc | APIC_LVT_MASKED);
@@ -572,7 +569,7 @@ static void vpmu_arch_destroy(struct vcp
         on_selected_cpus(cpumask_of(vpmu->last_pcpu),
                          vpmu_clear_last, v, 1);
 
-    if ( vpmu->arch_vpmu_ops && vpmu->arch_vpmu_ops->arch_vpmu_destroy )
+    if ( vpmu_ops.arch_vpmu_destroy )
     {
         /*
          * Unload VPMU first if VPMU_CONTEXT_LOADED being set.
@@ -582,7 +579,7 @@ static void vpmu_arch_destroy(struct vcp
             on_selected_cpus(cpumask_of(vcpu_vpmu(v)->last_pcpu),
                              vpmu_save_force, v, 1);
 
-         vpmu->arch_vpmu_ops->arch_vpmu_destroy(v);
+         alternative_vcall(vpmu_ops.arch_vpmu_destroy, v);
     }
 
     vpmu_reset(vpmu, VPMU_CONTEXT_ALLOCATED);
@@ -689,10 +686,9 @@ static void pvpmu_finish(struct domain *
 /* Dump some vpmu information to console. Used in keyhandler dump_domains(). */
 void vpmu_dump(struct vcpu *v)
 {
-    struct vpmu_struct *vpmu = vcpu_vpmu(v);
-
-    if ( vpmu->arch_vpmu_ops && vpmu->arch_vpmu_ops->arch_vpmu_dump )
-        vpmu->arch_vpmu_ops->arch_vpmu_dump(v);
+    if ( vpmu_is_set(vcpu_vpmu(v), VPMU_INITIALIZED) &&
+         vpmu_ops.arch_vpmu_dump )
+        alternative_vcall(vpmu_ops.arch_vpmu_dump, v);
 }
 
 long do_xenpmu_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg)
@@ -870,6 +866,7 @@ static struct notifier_block cpu_nfb = {
 static int __init vpmu_init(void)
 {
     int vendor = current_cpu_data.x86_vendor;
+    const struct arch_vpmu_ops *ops = NULL;
 
     if ( !opt_vpmu_enabled )
         return 0;
@@ -886,36 +883,36 @@ static int __init vpmu_init(void)
     switch ( vendor )
     {
     case X86_VENDOR_AMD:
-        if ( amd_vpmu_init() )
-           vpmu_mode = XENPMU_MODE_OFF;
+        ops = amd_vpmu_init();
         break;
 
     case X86_VENDOR_HYGON:
-        if ( hygon_vpmu_init() )
-           vpmu_mode = XENPMU_MODE_OFF;
+        ops = hygon_vpmu_init();
         break;
 
     case X86_VENDOR_INTEL:
-        if ( core2_vpmu_init() )
-           vpmu_mode = XENPMU_MODE_OFF;
+        ops = core2_vpmu_init();
         break;
 
     default:
         printk(XENLOG_WARNING "VPMU: Unknown CPU vendor: %d. "
                "Turning VPMU off.\n", vendor);
-        vpmu_mode = XENPMU_MODE_OFF;
         break;
     }
 
-    if ( vpmu_mode != XENPMU_MODE_OFF )
+    if ( !IS_ERR_OR_NULL(ops) )
     {
+        vpmu_ops = *ops;
         register_cpu_notifier(&cpu_nfb);
         printk(XENLOG_INFO "VPMU: version " __stringify(XENPMU_VER_MAJ) "."
                __stringify(XENPMU_VER_MIN) "\n");
     }
     else
+    {
+        vpmu_mode = XENPMU_MODE_OFF;
         opt_vpmu_enabled = 0;
+    }
 
     return 0;
 }
-__initcall(vpmu_init);
+presmp_initcall(vpmu_init);
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -21,9 +21,9 @@
  *
  */
 
-#include <xen/xenoprof.h>
+#include <xen/err.h>
 #include <xen/sched.h>
-#include <xen/irq.h>
+#include <xen/xenoprof.h>
 #include <asm/apic.h>
 #include <asm/vpmu.h>
 #include <asm/hvm/save.h>
@@ -483,7 +483,7 @@ static void amd_vpmu_dump(const struct v
     }
 }
 
-static const struct arch_vpmu_ops amd_vpmu_ops = {
+static const struct arch_vpmu_ops __initconstrel amd_vpmu_ops = {
     .do_wrmsr = amd_vpmu_do_wrmsr,
     .do_rdmsr = amd_vpmu_do_rdmsr,
     .do_interrupt = amd_vpmu_do_interrupt,
@@ -529,13 +529,12 @@ int svm_vpmu_initialise(struct vcpu *v)
                offsetof(struct xen_pmu_amd_ctxt, regs));
     }
 
-    vpmu->arch_vpmu_ops = &amd_vpmu_ops;
+    vpmu_set(vpmu, VPMU_INITIALIZED | VPMU_CONTEXT_ALLOCATED);
 
-    vpmu_set(vpmu, VPMU_CONTEXT_ALLOCATED);
     return 0;
 }
 
-static int __init common_init(void)
+static const struct arch_vpmu_ops *__init common_init(void)
 {
     unsigned int i;
 
@@ -543,7 +542,7 @@ static int __init common_init(void)
     {
         printk(XENLOG_WARNING "VPMU: Unsupported CPU family %#x\n",
                current_cpu_data.x86);
-        return -EINVAL;
+        return ERR_PTR(-EINVAL);
     }
 
     if ( sizeof(struct xen_pmu_data) +
@@ -553,7 +552,7 @@ static int __init common_init(void)
                "VPMU: Register bank does not fit into VPMU shared page\n");
         counters = ctrls = NULL;
         num_counters = 0;
-        return -ENOSPC;
+        return ERR_PTR(-ENOSPC);
     }
 
     for ( i = 0; i < num_counters; i++ )
@@ -562,10 +561,10 @@ static int __init common_init(void)
         ctrl_rsvd[i] &= CTRL_RSVD_MASK;
     }
 
-    return 0;
+    return &amd_vpmu_ops;
 }
 
-int __init amd_vpmu_init(void)
+const struct arch_vpmu_ops *__init amd_vpmu_init(void)
 {
     switch ( current_cpu_data.x86 )
     {
@@ -592,7 +591,7 @@ int __init amd_vpmu_init(void)
     return common_init();
 }
 
-int __init hygon_vpmu_init(void)
+const struct arch_vpmu_ops *__init hygon_vpmu_init(void)
 {
     switch ( current_cpu_data.x86 )
     {
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -18,9 +18,9 @@
  * Author: Haitao Shan <haitao.shan@intel.com>
  */
 
+#include <xen/err.h>
 #include <xen/sched.h>
 #include <xen/xenoprof.h>
-#include <xen/irq.h>
 #include <asm/system.h>
 #include <asm/regs.h>
 #include <asm/types.h>
@@ -819,7 +819,7 @@ static void core2_vpmu_destroy(struct vc
     vpmu_clear(vpmu);
 }
 
-static const struct arch_vpmu_ops core2_vpmu_ops = {
+static const struct arch_vpmu_ops __initconstrel core2_vpmu_ops = {
     .do_wrmsr = core2_vpmu_do_wrmsr,
     .do_rdmsr = core2_vpmu_do_rdmsr,
     .do_interrupt = core2_vpmu_do_interrupt,
@@ -893,12 +893,12 @@ int vmx_vpmu_initialise(struct vcpu *v)
     if ( is_pv_vcpu(v) && !core2_vpmu_alloc_resource(v) )
         return -EIO;
 
-    vpmu->arch_vpmu_ops = &core2_vpmu_ops;
+    vpmu_set(vpmu, VPMU_INITIALIZED);
 
     return 0;
 }
 
-int __init core2_vpmu_init(void)
+const struct arch_vpmu_ops *__init core2_vpmu_init(void)
 {
     unsigned int version = 0;
     unsigned int i;
@@ -921,13 +921,13 @@ int __init core2_vpmu_init(void)
     default:
         printk(XENLOG_WARNING "VPMU: PMU version %u is not supported\n",
                version);
-        return -EINVAL;
+        return ERR_PTR(-EINVAL);
     }
 
     if ( current_cpu_data.x86 != 6 )
     {
         printk(XENLOG_WARNING "VPMU: only family 6 is supported\n");
-        return -EINVAL;
+        return ERR_PTR(-EINVAL);
     }
 
     arch_pmc_cnt = core2_get_arch_pmc_count();
@@ -972,9 +972,9 @@ int __init core2_vpmu_init(void)
         printk(XENLOG_WARNING
                "VPMU: Register bank does not fit into VPMU share page\n");
         arch_pmc_cnt = fixed_pmc_cnt = 0;
-        return -ENOSPC;
+        return ERR_PTR(-ENOSPC);
     }
 
-    return 0;
+    return &core2_vpmu_ops;
 }
 
--- a/xen/include/asm-x86/vpmu.h
+++ b/xen/include/asm-x86/vpmu.h
@@ -49,10 +49,10 @@ struct arch_vpmu_ops {
     void (*arch_vpmu_dump)(const struct vcpu *);
 };
 
-int core2_vpmu_init(void);
+const struct arch_vpmu_ops *core2_vpmu_init(void);
 int vmx_vpmu_initialise(struct vcpu *);
-int amd_vpmu_init(void);
-int hygon_vpmu_init(void);
+const struct arch_vpmu_ops *amd_vpmu_init(void);
+const struct arch_vpmu_ops *hygon_vpmu_init(void);
 int svm_vpmu_initialise(struct vcpu *);
 
 struct vpmu_struct {
@@ -61,25 +61,25 @@ struct vpmu_struct {
     u32 hw_lapic_lvtpc;
     void *context;      /* May be shared with PV guest */
     void *priv_context; /* hypervisor-only */
-    const struct arch_vpmu_ops *arch_vpmu_ops;
     struct xen_pmu_data *xenpmu_data;
     spinlock_t vpmu_lock;
 };
 
 /* VPMU states */
-#define VPMU_CONTEXT_ALLOCATED              0x1
-#define VPMU_CONTEXT_LOADED                 0x2
-#define VPMU_RUNNING                        0x4
-#define VPMU_CONTEXT_SAVE                   0x8   /* Force context save */
-#define VPMU_FROZEN                         0x10  /* Stop counters while VCPU is not running */
-#define VPMU_PASSIVE_DOMAIN_ALLOCATED       0x20
+#define VPMU_INITIALIZED                    0x1
+#define VPMU_CONTEXT_ALLOCATED              0x2
+#define VPMU_CONTEXT_LOADED                 0x4
+#define VPMU_RUNNING                        0x8
+#define VPMU_CONTEXT_SAVE                   0x10  /* Force context save */
+#define VPMU_FROZEN                         0x20  /* Stop counters while VCPU is not running */
+#define VPMU_PASSIVE_DOMAIN_ALLOCATED       0x40
 /* PV(H) guests: VPMU registers are accessed by guest from shared page */
-#define VPMU_CACHED                         0x40
-#define VPMU_AVAILABLE                      0x80
+#define VPMU_CACHED                         0x80
+#define VPMU_AVAILABLE                      0x100
 
 /* Intel-specific VPMU features */
-#define VPMU_CPU_HAS_DS                     0x100 /* Has Debug Store */
-#define VPMU_CPU_HAS_BTS                    0x200 /* Has Branch Trace Store */
+#define VPMU_CPU_HAS_DS                     0x1000 /* Has Debug Store */
+#define VPMU_CPU_HAS_BTS                    0x2000 /* Has Branch Trace Store */
 
 static inline void vpmu_set(struct vpmu_struct *vpmu, const u32 mask)
 {



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:10:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:10:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234360.406739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcgV-0001L6-Cw; Mon, 29 Nov 2021 09:10:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234360.406739; Mon, 29 Nov 2021 09:10:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcgV-0001Kz-8T; Mon, 29 Nov 2021 09:10:51 +0000
Received: by outflank-mailman (input) for mailman id 234360;
 Mon, 29 Nov 2021 09:10:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrcgU-0001Km-CF
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:10:50 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e05ee6c-50f4-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 10:10:48 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-31-50_XIFP6N5isC5GZoBPbFw-1; Mon, 29 Nov 2021 10:10:47 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5469.eurprd04.prod.outlook.com (2603:10a6:803:cf::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Mon, 29 Nov
 2021 09:10:46 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 09:10:46 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0143.eurprd04.prod.outlook.com (2603:10a6:20b:127::28) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.21 via Frontend
 Transport; Mon, 29 Nov 2021 09:10:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e05ee6c-50f4-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638177049;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=KqEtdF6b8e6P1Mb32jkTsVPi0STtOfseFIL0jFb6joo=;
	b=dnm6cdsNpeBJHqQIyGJ7G3H18Sd4s7F6g+FIsj8/BAVeHJsA0bZy9w1TkvTNrbBhacn3rK
	tnGJvFetQeXKEQzbzNsSWYOHcQM18NzeWdjNn5DyE10LmOA/zq74fV6uBRO1OQ8v0HWm8t
	mp7vh3kikkQ3anMDVI2+05skWsNBpDk=
X-MC-Unique: 50_XIFP6N5isC5GZoBPbFw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Sz8BlGsnmconm4WglBK+B/KkwvoyhB9TmMABC20VlhFblBwHWiLk0U+Iu1pxMOFGxfL/P/ndFYKesKlcVdl7tRdA1CS0+j7Oa2IFsxCTDdCT16vf/XzOyHBxP2SaCKXyy1fkmGhQZBIWMJw2OIsAA2GdgmuQlmqAwQxOvitA5SmrT89UTjNElyPdGWlmL+jUYw+nC6xVmx8bGXqM0mrqlQTDYHcctJw/kR+zCdJLVilhhReiIfZuAFXn7C6Q0wE6gW5E9t6UP7bbR2JBSPwr8BtMfnk3K/y7LE++BQw1RnMtFhS2iz/4Fkdzw2V4hCmEJUa9LSLsLBBsldwxo4d1Yw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KqEtdF6b8e6P1Mb32jkTsVPi0STtOfseFIL0jFb6joo=;
 b=OMy1jTIhHadUs/+JNMP7qpE3s5TTxGGXwflvMNltM5OH/7HyZ29LzSAQ2Y3E5MBZWx7A/KdJBWbPvf4ydepe1uDFFDKP21rQe3U1M8uaY2kE36kxxY2AxnoWxwNXfE2ogXAxByYafhUs2PpDv0hplztO8SpF6DPcZBRsfWSftx/uQ/N+n+1scfEsVzA+TYsixX9xoPoHC6LAR3C7aCRGIS8KYIiVTOpOkjOtkdAS+wra6TLSu5WO6+GDEwscyIWPtq4nv9ENyCNJiFl7c/IdDyDvav/GdzUfS278hRk8OO3XS1UEHvVpqT4unPe4HrWV0gADqliU8AFW1SqnOx7Y4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <66e64fc5-34f1-7877-42b1-3533136f56ab@suse.com>
Date: Mon, 29 Nov 2021 10:10:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: [PATCH 2/3] x86/vPMU: invoke <vendor>_vpmu_initialise() through a
 hook as well
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Kevin Tian <kevin.tian@intel.com>, Jun Nakajima <jun.nakajima@intel.com>
References: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
In-Reply-To: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0143.eurprd04.prod.outlook.com
 (2603:10a6:20b:127::28) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 06afb1c9-779e-4930-e0b8-08d9b31820c9
X-MS-TrafficTypeDiagnostic: VI1PR04MB5469:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5469BDEB45F5AD280841D3B8B3669@VI1PR04MB5469.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:489;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	MfQI6+XlGO/KOaJ1UUv+//QxtbUdeWxF3bTpSW+dgR5rVRDuFBJIt5rj/HmBKgRq86ASG3wnXimDsMn3weVAx/OjyevJ0Y6sZiDINVZ1unHB+qo4oxEBBpbwmaGaZy/iwvy7h4fB48pfskvEFd1koSav7NUKYfERDPNzji8J7GIT2+qNMDu4WjrZUGq64gzyBgRwTa6TmrDP4FoyN8UeFIsP7O51Gn+UA4RBg1g1ctjdNuXAAYgTIl/1Bvj8K8cYDBvLi1g6yMFtCc06g4KmVtC5xMXMdoGkJfucWoiKXXtvmFCPpYo6K8O74fngoUIZeIaep3CgXAi0naqFYLDqDNipSNk/++Z+zClyw9EF0jq6BhFR9Viyno+JFKbtqV9/qUssrDh+ZPQTMGtr0fcxnFghTmUHz6dPL0naUt9oqzEhwjNCnStF86l0wiWKsLN9V+dCEfpc9EvWLznfjs9ncaAAIvqnarDaX/3+h2VbzB5MPTC2ROY4EdC6qZ9TJjTqSeyg9pTcZgpTgxpjnRusENL3ofsiS1OIkqopMH2JOXstL0FL+TWP+BYUpdkz20Ym6v+Nsk056Q4oyS4FuwSHAGm9vMX6i9QUkutGd9MfwJuCFjEVXtha6m+CcvLKWsUGfWzfaUuapJt+Xx8rIINF8k9eoy9dviqbKTIMw0RO4krNHCUO9CG8nmJi/Rau316Mw0SolU7Hvsy2uPM7Jcht0wAjiDCNXKBmiQjjSxkYK6tHcNtGLdsrrWQGiZNDds2O
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(5660300002)(31696002)(956004)(2616005)(2906002)(186003)(316002)(36756003)(54906003)(16576012)(26005)(31686004)(8936002)(6486002)(38100700002)(508600001)(4326008)(66556008)(66946007)(83380400001)(66476007)(86362001)(6916009)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?REpDZUI0RkdvWHhoQXV1bS82Q05qVnlidkp6RUJEQytFYnVnR2ZxbFQxRlpU?=
 =?utf-8?B?MmM0dVZNZ01XRzU0ZFhURDdOSWluSmhJUUlHa0lwWWpRL2N4MlNJVFZ5ZVJi?=
 =?utf-8?B?Y0o0UUtwZkxuejhFbUtVc042RkZ2RUo3NEg0cEZ2OVhLSzJhcUR4dW5zM0pV?=
 =?utf-8?B?UXc4eXpTY2hOOWd6ZjR6TkQ0ODlEdVJyZjB3ZGhtUEY1ZTlyd25GQk5qWlU3?=
 =?utf-8?B?N0Z0SVhpaXhrMGNjdS9wS3NuOEhOblZBMjZydDg5NVhrNmM5Slhwc1RVa3lG?=
 =?utf-8?B?OUtrUjlQSTVOM0VlaSs2bnNJWEZPY3Z6R2d5cHc2WU9iTGp6VktWWFpreUdF?=
 =?utf-8?B?TSt2VVJYNzFMYTBnRlJBSTJMaTMwQUF2anRiNGJ6ZC82R3Q0YXAzekIxWXE0?=
 =?utf-8?B?S09ha2xJaVBvT1VPTlhkQXhBWW0wYVNRNjNCY05IZ0tmd25WdEUxUmJ5Wkdi?=
 =?utf-8?B?b21TdmxvR3BMN1ZGWUJOMHVDSGZaNjZ2SWNHMTZVa1NCUmtQZ3pLUDhITklW?=
 =?utf-8?B?YWMvc21ZdW9JVUpFRzJFQ05TeFpuRGFzUzlucE95cmJ2d2hSVitFd0d2WDBP?=
 =?utf-8?B?NVVDNVcwTnpWcFZKby9aM3l0Ulk1TzV0b1I0VFBOUU1FWjBZWXo5MlJkSGxu?=
 =?utf-8?B?Ri9YaGR6V0NVSTVvREx2bWx1R3JJSkVZaTRMRzExckE4dGc5KzdGOUVSSzhR?=
 =?utf-8?B?aE4xSmR2VHd0ODYwcFBhdnFlR1dId2EydXhrZEpSbXNFUHdxdzY5dWhaWFh4?=
 =?utf-8?B?dmhnL1RVVC9OMFJ2VUFGZ0MrZHhId2ZNOGZoS0J5Rk1vTExBZloweGxyeUwv?=
 =?utf-8?B?eml4Um0zZk9OaXpMODFoUEZlYVlDYnhIYlVyOUM3N1BkRk1Rbkd0T0EzNDkv?=
 =?utf-8?B?OFpQM1REZnNhK3dxM2RzK2VMZFpvT0NVNERSSUhmQ1BIbWhURGpwYURsQWMw?=
 =?utf-8?B?YkMxQlo1UDBMRGd5UXB2WisvV2wwaWRLRWJOWFJEeSs2Qk1EWndqRkR4OHRk?=
 =?utf-8?B?QXdWRTdCZ1BlUGNpUVdSaWg0VE5EZGx5TEJ6U3NkRCtmODJQS2lUVTFPMi82?=
 =?utf-8?B?K2hzN3NoR3ZaR3Y4WUtld2tkZ2V1L2RtS0Y0Q2x3bVV3V29DNHN1VE4wM25h?=
 =?utf-8?B?T1ZaMnluRzArVjFNeGVWMzhPN3dqTk5QK0ZTcnBIU2Z1bkNLbFZ1cDRRWlBK?=
 =?utf-8?B?VzN2cFlpajEvZjVncW42K2k4aHFlMiswRmVzUVV1T0tuUkxQUFR4WUFDRHR6?=
 =?utf-8?B?NS9HeTAwcGZJTGg2VGVHQnFHczBOWWcyUCtIallOcTZ0TUFvQUlmK0lMYmNM?=
 =?utf-8?B?SlpEbTMxQmZ3VVA1eDd0Z0o1d3lBTUVvK216TG81L1Z5RHR6OXNvYnZ4Ylp6?=
 =?utf-8?B?VlAybDBKc3BJOEpWaHFCa0Y0U1FYUVFQVzJLNy8xNkhnNEZPaXA5c0tBcVBV?=
 =?utf-8?B?Tmh1YndLb3RLNlFrdS9KZzJkWHdKeHlhVXhRUmthemVvdXBIVHdMRHVOWU1U?=
 =?utf-8?B?aHBVNzE3L3ZpWHZYbnR1SEk1VFo3cW15UVhWbkpBeHhWL0JRNnM0bWYyd2l6?=
 =?utf-8?B?QWR4bURsY0Nrd2E4N2RMbDRDNWlWbVdxSmJNbmxxK1VaT3lSL0M4YXZzd0Jo?=
 =?utf-8?B?N0VSTU9kUDBodi9oZjZzN21LOFlDUEpVWktRYnZkMTBOeW5zRnRMVmttTXZ1?=
 =?utf-8?B?b2tsMHVCZk90L1NBcFZiZEgvUEt3VXZ1OGFMOWR0TjFvMVo1ZlJKWXc2U3ZH?=
 =?utf-8?B?M3ArdDJpNUJ2dWhKSERndmhDbVF2OGFiVGs0RHVkNmdhRnluOXJpSXRHWThC?=
 =?utf-8?B?OG1PUGdtcTIxNnJUbnd1R3czdWlubTlCaEhXbWtMNVNLdHlGRUpzWDdWN0xF?=
 =?utf-8?B?cjhSNTJCRVhDNHIyWEZZU0RPMzZsVHhhblUzWjZCSnlNc3dhc3NjRkluZ1gr?=
 =?utf-8?B?bmpNYi9FMTBVZWwvNmNMWjc2S0dCZzlEc0NsVUZQUDI2U2FTL0xIaFcwMXgw?=
 =?utf-8?B?b05Kd1dqY2d3VWdGU09WVnlWcVBmK252a2huMWpoMlNHdXdlSy9WY1JIVlVF?=
 =?utf-8?B?aTRxWVd0Vm11ajRTQnlDNkVJMVp6MmJXRGRMV3FOanJ5dGY1TW5uQ1crOUUw?=
 =?utf-8?B?Y0xwVEdBRytDbXpweUFJOUVabitIeW1janNpaVVZd2FMMkNxcit1a09ERG94?=
 =?utf-8?Q?o/g86ztVZwHouQaKtAhxQoA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 06afb1c9-779e-4930-e0b8-08d9b31820c9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 09:10:46.1813
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wuzpchk4NJLEegX/gxtoOcia4S18TLBgfwOQs7SBQi+7qbjEwq6BaPe3RlX6KhSem7hGz+Dg/m/2uDAOkZDMWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5469

I see little point in having an open-coded switch() statement to achieve
the same; like other vendor-specific operations the function can be
supplied in the respective ops structure instances.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -455,21 +455,11 @@ static int vpmu_arch_initialise(struct v
 
     ASSERT(!(vpmu->flags & ~VPMU_AVAILABLE) && !vpmu->context);
 
-    if ( !vpmu_available(v) )
+    if ( !vpmu_available(v) || vpmu_mode == XENPMU_MODE_OFF )
         return 0;
 
-    switch ( vendor )
+    if ( !vpmu_ops.initialise )
     {
-    case X86_VENDOR_AMD:
-    case X86_VENDOR_HYGON:
-        ret = svm_vpmu_initialise(v);
-        break;
-
-    case X86_VENDOR_INTEL:
-        ret = vmx_vpmu_initialise(v);
-        break;
-
-    default:
         if ( vpmu_mode != XENPMU_MODE_OFF )
         {
             printk(XENLOG_G_WARNING "VPMU: Unknown CPU vendor %d. "
@@ -480,12 +470,17 @@ static int vpmu_arch_initialise(struct v
         return -EINVAL;
     }
 
-    vpmu->hw_lapic_lvtpc = PMU_APIC_VECTOR | APIC_LVT_MASKED;
-
+    ret = alternative_call(vpmu_ops.initialise, v);
     if ( ret )
+    {
         printk(XENLOG_G_WARNING "VPMU: Initialization failed for %pv\n", v);
+        return ret;
+    }
+
+    vpmu->hw_lapic_lvtpc = PMU_APIC_VECTOR | APIC_LVT_MASKED;
+    vpmu_set(vpmu, VPMU_INITIALIZED);
 
-    return ret;
+    return 0;
 }
 
 static void get_vpmu(struct vcpu *v)
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -483,24 +483,11 @@ static void amd_vpmu_dump(const struct v
     }
 }
 
-static const struct arch_vpmu_ops __initconstrel amd_vpmu_ops = {
-    .do_wrmsr = amd_vpmu_do_wrmsr,
-    .do_rdmsr = amd_vpmu_do_rdmsr,
-    .do_interrupt = amd_vpmu_do_interrupt,
-    .arch_vpmu_destroy = amd_vpmu_destroy,
-    .arch_vpmu_save = amd_vpmu_save,
-    .arch_vpmu_load = amd_vpmu_load,
-    .arch_vpmu_dump = amd_vpmu_dump
-};
-
-int svm_vpmu_initialise(struct vcpu *v)
+static int svm_vpmu_initialise(struct vcpu *v)
 {
     struct xen_pmu_amd_ctxt *ctxt;
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
 
-    if ( vpmu_mode == XENPMU_MODE_OFF )
-        return 0;
-
     if ( !counters )
         return -EINVAL;
 
@@ -529,11 +516,22 @@ int svm_vpmu_initialise(struct vcpu *v)
                offsetof(struct xen_pmu_amd_ctxt, regs));
     }
 
-    vpmu_set(vpmu, VPMU_INITIALIZED | VPMU_CONTEXT_ALLOCATED);
+    vpmu_set(vpmu, VPMU_CONTEXT_ALLOCATED);
 
     return 0;
 }
 
+static const struct arch_vpmu_ops __initconstrel amd_vpmu_ops = {
+    .initialise = svm_vpmu_initialise,
+    .do_wrmsr = amd_vpmu_do_wrmsr,
+    .do_rdmsr = amd_vpmu_do_rdmsr,
+    .do_interrupt = amd_vpmu_do_interrupt,
+    .arch_vpmu_destroy = amd_vpmu_destroy,
+    .arch_vpmu_save = amd_vpmu_save,
+    .arch_vpmu_load = amd_vpmu_load,
+    .arch_vpmu_dump = amd_vpmu_dump
+};
+
 static const struct arch_vpmu_ops *__init common_init(void)
 {
     unsigned int i;
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -819,25 +819,12 @@ static void core2_vpmu_destroy(struct vc
     vpmu_clear(vpmu);
 }
 
-static const struct arch_vpmu_ops __initconstrel core2_vpmu_ops = {
-    .do_wrmsr = core2_vpmu_do_wrmsr,
-    .do_rdmsr = core2_vpmu_do_rdmsr,
-    .do_interrupt = core2_vpmu_do_interrupt,
-    .arch_vpmu_destroy = core2_vpmu_destroy,
-    .arch_vpmu_save = core2_vpmu_save,
-    .arch_vpmu_load = core2_vpmu_load,
-    .arch_vpmu_dump = core2_vpmu_dump
-};
-
-int vmx_vpmu_initialise(struct vcpu *v)
+static int vmx_vpmu_initialise(struct vcpu *v)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
     u64 msr_content;
     static bool_t ds_warned;
 
-    if ( vpmu_mode == XENPMU_MODE_OFF )
-        return 0;
-
     if ( v->domain->arch.cpuid->basic.pmu_version <= 1 ||
          v->domain->arch.cpuid->basic.pmu_version >= 6 )
         return -EINVAL;
@@ -893,11 +880,20 @@ int vmx_vpmu_initialise(struct vcpu *v)
     if ( is_pv_vcpu(v) && !core2_vpmu_alloc_resource(v) )
         return -EIO;
 
-    vpmu_set(vpmu, VPMU_INITIALIZED);
-
     return 0;
 }
 
+static const struct arch_vpmu_ops __initconstrel core2_vpmu_ops = {
+    .initialise = vmx_vpmu_initialise,
+    .do_wrmsr = core2_vpmu_do_wrmsr,
+    .do_rdmsr = core2_vpmu_do_rdmsr,
+    .do_interrupt = core2_vpmu_do_interrupt,
+    .arch_vpmu_destroy = core2_vpmu_destroy,
+    .arch_vpmu_save = core2_vpmu_save,
+    .arch_vpmu_load = core2_vpmu_load,
+    .arch_vpmu_dump = core2_vpmu_dump
+};
+
 const struct arch_vpmu_ops *__init core2_vpmu_init(void)
 {
     unsigned int version = 0;
--- a/xen/include/asm-x86/vpmu.h
+++ b/xen/include/asm-x86/vpmu.h
@@ -39,6 +39,7 @@
 
 /* Arch specific operations shared by all vpmus */
 struct arch_vpmu_ops {
+    int (*initialise)(struct vcpu *v);
     int (*do_wrmsr)(unsigned int msr, uint64_t msr_content,
                     uint64_t supported);
     int (*do_rdmsr)(unsigned int msr, uint64_t *msr_content);
@@ -50,10 +51,8 @@ struct arch_vpmu_ops {
 };
 
 const struct arch_vpmu_ops *core2_vpmu_init(void);
-int vmx_vpmu_initialise(struct vcpu *);
 const struct arch_vpmu_ops *amd_vpmu_init(void);
 const struct arch_vpmu_ops *hygon_vpmu_init(void);
-int svm_vpmu_initialise(struct vcpu *);
 
 struct vpmu_struct {
     u32 flags;



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:11:58 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:11:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234367.406750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrchU-00021U-P8; Mon, 29 Nov 2021 09:11:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234367.406750; Mon, 29 Nov 2021 09:11:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrchU-00021N-MA; Mon, 29 Nov 2021 09:11:52 +0000
Received: by outflank-mailman (input) for mailman id 234367;
 Mon, 29 Nov 2021 09:11:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrchT-0001Km-4T
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:11:51 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 626debbf-50f4-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 10:11:49 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2059.outbound.protection.outlook.com [104.47.0.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-8-tJzzrkJEMqaeOpyx4GPydg-1; Mon, 29 Nov 2021 10:11:49 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4384.eurprd04.prod.outlook.com (2603:10a6:803:6f::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Mon, 29 Nov
 2021 09:11:46 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 09:11:46 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0099.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.20 via Frontend Transport; Mon, 29 Nov 2021 09:11:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 626debbf-50f4-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638177110;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=VzBI2412mUYvVTF6nElIfuplOF2xNQD6sD5YCcOEANA=;
	b=I2WH7rpI218ypVBDE/62Z5TN7fqLHB5Vf+Uc86sMrFIQRWXL6lQeDWyO3GktKhNwfGHTh/
	LNjlOhf1Ww2xIA1BA/97ZqCNiHkU/EhsOESyfGs0ZBHDChKPuszGs7HgieJtL0cDDQZ9PE
	7f0U4UBdfeqh6X2ETEQ3ZH7BsTD5fRs=
X-MC-Unique: tJzzrkJEMqaeOpyx4GPydg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HoG6/To2SBx+7al80e3b1H81UjFOPeKkHK3u+fKBcHQZtuefNlG0fV6v4umptnjiCv8e4EwQv27IfztWGx1WVGUZRoOCr8JsGRWK3wdhuPSNWBkah/dGDLYgF0wccGPOf/U2oU+nFDAc50hqHRmFObnw9eF92BCMOz3PC+Fuv0k12/YGH4z2Ya1sG3dtDMmw/AeLbrpAm1/fs+UtBVc+tJGvFmVn8pircrZEYm4MjImFbWVZgwPIulKcAo0SdzVCEgCrnXeeqi7oqjsnkXDjR5m5yO4iqvGdvm/dRkLPb66MAfY0BpzhwTHTxjAU5uBj8Q4tYvYZUuf56u1ETQ0b3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VzBI2412mUYvVTF6nElIfuplOF2xNQD6sD5YCcOEANA=;
 b=Wu8YiNb8EZZBHPULvmB6saEBd96N2WY0rMT7Ir4aFqwb95mEgXfSlWTYbf8pfXr0+YfpHUHgJdX3xQxcURaytjZlOOHp4Ygy3kVvAHFVzQLtVKw1HONiNVgzvc/GPg4ZKtdMJUYYHvgKrVCDFGh4tpRmbqEvCLNpCiXI4yiYpPgArMj2tVp939I6HUTTHOtq8JjSCGw8iKVgUeujNrzDD0k6WDpapkYgg9tL3CKwj2BvOQTV9KUXptmyuvwbaHvXQ96NMj+zStaoJNiHAkGO1JiaVS58prvNKSOB07KoqBEOo4ZAgis+h4u7SNrP5B5qAl9xh+Tl2mLpnhuk3/vaTA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f59b9122-010b-0a5a-c436-e10928452443@suse.com>
Date: Mon, 29 Nov 2021 10:11:47 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: [PATCH 3/3] x86/vPMU: move vpmu_ops to .init.data
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
In-Reply-To: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P195CA0099.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:86::40) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a5a186a0-59b6-44dd-0ce2-08d9b31844fa
X-MS-TrafficTypeDiagnostic: VI1PR04MB4384:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4384DD2622664805B1603455B3669@VI1PR04MB4384.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1728;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	2a6ZEHShZmcdwXADy55F1Q3DwECYzGqzsID2CSM1N98MYnwO8N2n+XXuABUBDPCwCflc0hRoWNSXO7WIqN6XXbqVGvlE4igJLvswDQJsNhzDVvlDAW0IW8ULHaQ5PXPaFMY+e/rS9nap+Kxpa4d8wAmLa3eAZgJq6I2nmaEekaIpoXkU/QQdE7/FaSFYi6BdWM4RhdcSW6kIZFNTuXiyK3vYXuyBEkX5ctRhBvY9FTKxCvrAJaQIYml14MTmULtDn7rzJ2J5eM1LoNHYgPfeoplQI7foQP98GspKwAkOdW+ZPrrUw/NTUS7UCHInvT+CBDfONHANSanFVXEO4pQ4sLKDDUykgDhxqE5wM7KxX/DJUH/2IvCnjAkLpiQdeVI5BTHPJlS2uBW/My9v7xz10YfwJa5g3HYGs+Isu9nBZxo9uQh8iKm5VX0FEyhYeR5mMB7UAwFiAYpAoaPwd9S8+KzVXrxFVIm5Ry2H8ZFyHgQRWJmuvI4Oo4t0/Ev3RtiJAt5uRt/YdGpWrpiG5JRS4vRFkMceuEteZga/UgIfJWvDJyAxVAlr2M2nlpkiorVQiqQuYF+W8U99j0JPWz2Amh5++3G+LmPLa7UA07OC7kn27pT3D5+LA4f0ZKbE113KYHUwrZgEu3gegzARJIVO0gTQPjelFxuKZrlOh8YNg4McQKFA5y7Z6+FtIHO8/DMUEjLEXf++Vi2V4ewnYIFW1H3xzstkSl8e6olivOuBNfUVqiXILqr6egQ6eTCfgZaxl4DBF7uvhNfqfkNueiMsLA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(5660300002)(38100700002)(8936002)(2616005)(6916009)(8676002)(26005)(316002)(956004)(186003)(16576012)(31686004)(36756003)(508600001)(66946007)(4326008)(86362001)(2906002)(6486002)(31696002)(54906003)(83380400001)(66556008)(66476007)(142923001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S0V5bTNSdDZUWjlwSU52VVg4YjMxM3Iza3cwbEFJVktXN2xhdVExQ0xyNXph?=
 =?utf-8?B?aHZmYTVNczdBdGZXTFYrczlUUHB2NE9Yakx1L1VDSnRsd1ZodkY3d0NsZHZC?=
 =?utf-8?B?OVdya2o3VkdBc0VIbFp0aDVpQlg1TWhmeExWYUtRZU12dnphVHJRcGlzVUtZ?=
 =?utf-8?B?eG9RNXY1Z3hETng4UFhyaWNuV04vTXY1ZzNUWjNha1ozdTgyZ3MvcUIvWlcx?=
 =?utf-8?B?TlpsZG5XMW1Od2lkWGxpU0dHWm5RVWhpV1FrelBmeFdiNm5PWG9XK2dQamNP?=
 =?utf-8?B?V1RIaGg3ZFlsdE9HRG5qNjg5LzNiOGlZK0Q1YkpRdjJVdjNrTGdaU2d5b3Ax?=
 =?utf-8?B?NmJ5aWZRTVAxcHB4L3V1RjJ4eVlTWlM4eEpqS2c0UzNQWnNEcERLZStFZ1BQ?=
 =?utf-8?B?aVdCTnBNak9Lc2lTZUZqVWpuMWVXSDB2RExOdWNUR0FUTGRYSVRjRi9adVpS?=
 =?utf-8?B?b1grUTJobEFCczF6VUJIOG9uT0NQSTBmbEJwMlhLWm50andxWndHZWs1RCtH?=
 =?utf-8?B?RWU4K3AzOXloQ2tkK05yN1dONCtrbUdTRXluNlBTMmFJZFdQRUp2RHZLam5U?=
 =?utf-8?B?YkRSd1lFT3pmeXpqajJFTUhUL085UE5rdlppOVRacDJndFA2N0tjVWE0ai9I?=
 =?utf-8?B?YzZOSjcvV2lQc1lqWEpRU0g2VVhraHRteE5zMFhWeHlXZHJvRFVTT1ZXR3Y2?=
 =?utf-8?B?aDdaQytXUkR2Z0EzcDFxdGpIWDY3YW93Vzh5STQrblgrN2FJMEc4Yms1LzFT?=
 =?utf-8?B?QWZ1YWdyQnNNN2xlU1lmN0ZhODF1QzdmVTl0aG9TVFozNGZCSjVLdnk5eUFO?=
 =?utf-8?B?bEk0N3FXbHpWYkljcTVIZ2xEdHBic3UyL1Y4VUIrK3JXTmErbTVyTTcvT0E2?=
 =?utf-8?B?K3VXbWRXNHlrRXRJdjZqTXU0Q3d0ZlV3dm9zYkZ3aU9ubEVQYVdSc001SGFG?=
 =?utf-8?B?SGJDeXdtZHBRMWhLYm5yQzdGMXVmRXhici8xQUUyYVlna0dqVlA0VnlBNm5W?=
 =?utf-8?B?K2JyN3FrS1Uwdklad0R1c2lVdVp5VklpWWpldmNrRDY3UFVncHRCRXdoUk4z?=
 =?utf-8?B?YWtGamNXZ2tCRzNiNkxCUk93eDlISE05YUpEdzhRb3BtYnk3ZW9ZbEJyY2xw?=
 =?utf-8?B?dS9tR0ZZS1V3bW56dmwzQ2oyQUFvdnVvMmZXSy9JVXcvV2lJUnhzNUY2SEJW?=
 =?utf-8?B?VmNmUi9YTjZHOWptN3JnZitKdkppTEFmZlFheWc2VGRSVnNuNVRZS2ttenpW?=
 =?utf-8?B?SUxMYkJXWGlqT3FhN3o1bXllYUF2VzQxSTE1Z0FHRjB3a1U2cll3NDM4UDFU?=
 =?utf-8?B?OHpPUTdGT3lTc3NycGdLSnIyZ0FIT2FOSjBpY2xUYm5pc1J2Tk8ycys3VG5B?=
 =?utf-8?B?SzdlMXJiZndsU0pxZDdMcW5PQkp5cE5mRFZtQTd2Wk9SeGVnbkdtZ2dRUyt2?=
 =?utf-8?B?Vm5KRTJYS2JRL1l4RU5maXJCQVJnKzRHQVNHV0IrcWZKa3ZuU3Uzb3FlSVJQ?=
 =?utf-8?B?dWZrZ25yWXF5QnMza0NZenVYcnBvaURiazl4Zms4QllWbk1NSHlJZTBjMG9T?=
 =?utf-8?B?UmVidjNhcit0V1ZDdjZFQ1QxYW9NL3haeUZteXN2ZHRLdFczSnRkZGVmVkpC?=
 =?utf-8?B?bVVMUlljTXA5YzFnQXhRNkYzZEVEM0NGcWwvRmRRRW9SRHRVUUlMbE9KdkFQ?=
 =?utf-8?B?OTIxajBNQU1iUFd4VHhzQlF2WnlFYUg1TUQyQnZnbm1ZZXAwVnR1OVhYL2JL?=
 =?utf-8?B?d1dZNkFXSjZxWWN1elJqckpseVNGSWUzODFEaGxUSGh4NXI5Uzg5NXF6dnFo?=
 =?utf-8?B?YkZoQ2ZXS3hMdUFpVEhVK1o5NUtDL0dWMlBTcFhHQjRuZHd5R09zeHNtQ2pL?=
 =?utf-8?B?TC8rWmJuYTRzR2h5S2czV0ZhVFg0TmI4V0l0Q01zcjNoN1pzZjJPYlBGU2Vs?=
 =?utf-8?B?RHZ3Z3ZtSllLODcyZzhFV09Oa1hJZzJEdEowejNVcVA5aTh5SFJGSEhraC9P?=
 =?utf-8?B?bEpXSlpON0N0MnZzWENHUXhmR3MzT1VWM3BJTHNZbVNyTU5Ta1JRdGhubExl?=
 =?utf-8?B?Z09LajM5UkxOTitEcW4xQW5EWHYzK3AzQ0wzVTk5cTJHa25POU1OZTkyV2Jz?=
 =?utf-8?B?cm00S2hVS2NKbDhENWt1ZkQ0TXZLKzFFTGNiNEJhdXRicFpaL0FxemRkZ0Jr?=
 =?utf-8?Q?K3l6Dok+WCqOofLeKufRktk=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a5a186a0-59b6-44dd-0ce2-08d9b31844fa
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 09:11:46.8800
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PLDI6gPzbXbVex81UrU07MzDxIW80KNft6GQVlW7OXEQaAukJ09GlbeAVlnSYKF1LxRpSTVOZkfuiny2NfQzvg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4384

Both vendors' code populates all hooks, so there's no need to have any
NULL checks before invoking the hook functions. With that the only
remaining uses of the object are in alternative_{,v}call(), i.e. none
after alternatives patching.

In vpmu_arch_initialise() the check gets replaced by an opt_vpmu_enabled
one, as I couldn't convince myself that the pre-existing checks would be
sufficient to cover all possible cases.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -49,7 +49,7 @@ CHECK_pmu_params;
 static unsigned int __read_mostly opt_vpmu_enabled;
 unsigned int __read_mostly vpmu_mode = XENPMU_MODE_OFF;
 unsigned int __read_mostly vpmu_features = 0;
-static struct arch_vpmu_ops __read_mostly vpmu_ops;
+static struct arch_vpmu_ops __initdata vpmu_ops;
 
 static DEFINE_SPINLOCK(vpmu_lock);
 static unsigned vpmu_count;
@@ -136,12 +136,10 @@ int vpmu_do_msr(unsigned int msr, uint64
     if ( !vpmu_is_set(vpmu, VPMU_INITIALIZED) )
         goto nop;
 
-    if ( is_write && vpmu_ops.do_wrmsr )
+    if ( is_write )
         ret = alternative_call(vpmu_ops.do_wrmsr, msr, *msr_content, supported);
-    else if ( !is_write && vpmu_ops.do_rdmsr )
-        ret = alternative_call(vpmu_ops.do_rdmsr, msr, msr_content);
     else
-        goto nop;
+        ret = alternative_call(vpmu_ops.do_rdmsr, msr, msr_content);
 
     /*
      * We may have received a PMU interrupt while handling MSR access
@@ -375,7 +373,7 @@ void vpmu_save(struct vcpu *v)
 int vpmu_load(struct vcpu *v, bool_t from_guest)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
-    int pcpu = smp_processor_id();
+    int pcpu = smp_processor_id(), ret;
     struct vcpu *prev = NULL;
 
     if ( !vpmu_is_set(vpmu, VPMU_CONTEXT_ALLOCATED) )
@@ -423,21 +421,13 @@ int vpmu_load(struct vcpu *v, bool_t fro
          vpmu_is_set(vpmu, VPMU_CACHED)) )
         return 0;
 
-    if ( vpmu_ops.arch_vpmu_load )
-    {
-        int ret;
-
-        apic_write(APIC_LVTPC, vpmu->hw_lapic_lvtpc);
-        /* Arch code needs to set VPMU_CONTEXT_LOADED */
-        ret = alternative_call(vpmu_ops.arch_vpmu_load, v, from_guest);
-        if ( ret )
-        {
-            apic_write(APIC_LVTPC, vpmu->hw_lapic_lvtpc | APIC_LVT_MASKED);
-            return ret;
-        }
-    }
+    apic_write(APIC_LVTPC, vpmu->hw_lapic_lvtpc);
+    /* Arch code needs to set VPMU_CONTEXT_LOADED */
+    ret = alternative_call(vpmu_ops.arch_vpmu_load, v, from_guest);
+    if ( ret )
+        apic_write(APIC_LVTPC, vpmu->hw_lapic_lvtpc | APIC_LVT_MASKED);
 
-    return 0;
+    return ret;
 }
 
 static int vpmu_arch_initialise(struct vcpu *v)
@@ -458,7 +448,7 @@ static int vpmu_arch_initialise(struct v
     if ( !vpmu_available(v) || vpmu_mode == XENPMU_MODE_OFF )
         return 0;
 
-    if ( !vpmu_ops.initialise )
+    if ( !opt_vpmu_enabled )
     {
         if ( vpmu_mode != XENPMU_MODE_OFF )
         {
@@ -564,18 +554,15 @@ static void vpmu_arch_destroy(struct vcp
         on_selected_cpus(cpumask_of(vpmu->last_pcpu),
                          vpmu_clear_last, v, 1);
 
-    if ( vpmu_ops.arch_vpmu_destroy )
-    {
-        /*
-         * Unload VPMU first if VPMU_CONTEXT_LOADED being set.
-         * This will stop counters.
-         */
-        if ( vpmu_is_set(vpmu, VPMU_CONTEXT_LOADED) )
-            on_selected_cpus(cpumask_of(vcpu_vpmu(v)->last_pcpu),
-                             vpmu_save_force, v, 1);
+    /*
+     * Unload VPMU first if VPMU_CONTEXT_LOADED being set.
+     * This will stop counters.
+     */
+    if ( vpmu_is_set(vpmu, VPMU_CONTEXT_LOADED) )
+        on_selected_cpus(cpumask_of(vcpu_vpmu(v)->last_pcpu),
+                         vpmu_save_force, v, 1);
 
-         alternative_vcall(vpmu_ops.arch_vpmu_destroy, v);
-    }
+    alternative_vcall(vpmu_ops.arch_vpmu_destroy, v);
 
     vpmu_reset(vpmu, VPMU_CONTEXT_ALLOCATED);
 }
@@ -681,8 +668,7 @@ static void pvpmu_finish(struct domain *
 /* Dump some vpmu information to console. Used in keyhandler dump_domains(). */
 void vpmu_dump(struct vcpu *v)
 {
-    if ( vpmu_is_set(vcpu_vpmu(v), VPMU_INITIALIZED) &&
-         vpmu_ops.arch_vpmu_dump )
+    if ( vpmu_is_set(vcpu_vpmu(v), VPMU_INITIALIZED) )
         alternative_vcall(vpmu_ops.arch_vpmu_dump, v);
 }
 



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:19:08 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:19:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234377.406760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcoL-0002mD-HB; Mon, 29 Nov 2021 09:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234377.406760; Mon, 29 Nov 2021 09:18:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcoL-0002m6-E9; Mon, 29 Nov 2021 09:18:57 +0000
Received: by outflank-mailman (input) for mailman id 234377;
 Mon, 29 Nov 2021 09:18:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrcoK-0002m0-US
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:18:56 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 604d9ff0-50f5-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 10:18:55 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2051.outbound.protection.outlook.com [104.47.2.51]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-5-xKLf9x0qMbi4pKEmPVDgOA-1; Mon, 29 Nov 2021 10:18:54 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4847.eurprd04.prod.outlook.com (2603:10a6:803:54::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 09:18:51 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 09:18:51 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0071.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::48) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Mon, 29 Nov 2021 09:18:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 604d9ff0-50f5-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638177535;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hJJ13KI7TZkpW/GBncbTMtfHVMj3Vo2zygBGObSPje8=;
	b=QYCLuP4lrwR66WJ0R2NTnUoaH9zlwODKPpNmh+5kq8sFBtorIDN1/a2z97rXnpAc5IRdjJ
	sTE6TMtZpjCEaPgqEZDZ+JBFjrBfgAyshyIBBL7W/7TxHYpvKUGdymwm89DuJiayLaY4Pm
	1anAxJNPIiHOuiC74gcPslv3bs5Y98M=
X-MC-Unique: xKLf9x0qMbi4pKEmPVDgOA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MSfO8FREKojO3s8zT1RbY3HxGFWnVQqVOv1DAD7lJXkJE1lzCx/6kVzIfzTgjhzzmOHk9U6yrphPvH3r9zefjyAI9KfbwElkp4l7S1p+dovEF76vpcivYI0mY7raGIfW0kR8I6DDJW2MYfDRS09eK3hej6JSwDZqIZ/a5txo3RTSFEWoK84SYgTdyxGLt4G1YRecy7dzColAHrrMEeHaj254uQ0MCet77pSif8dbtKpTGf4tOZNaykqmu9EpbFVeXg4R5yYLqLGudKiBJ5wc8m6XQxCdYMooZLhMpLeVnCHz3TV5/AlDxgb/QMIGomLziV1i12T5Z9pc7D4WmRCmeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7gb/fQR0I8QmRGQLMxQhmqOlVFGZxl/0ilDaPbMba7Q=;
 b=izwRi6Q9C2FCTxb9Laoe2twjXNszx7MeXlC24O4a1l5UKZk68iZAV6Prd/p09PBpa0ouZF1+j/FhMpa/yoISx4kzSzSuMz0EU3biMa+m+NkYY2SsZmIDDI1LLA9xTE26szU5z+vLidyKE1DxA/B8MraeHP2Pli8n7exKKcUDT6omvjwn1iXIcrb9HIL7w0oURaQLV460N6ki5Uh5YnNNGtKKeSzPpBTYWXaSMZUaTJ4TerdbLP3BvsvxKBSH8uGXhp0zUkUKU7X6x08bCBGGiRmQbnVTmmjtksrEtrcAmKms6EvHlJYFGqQ88UA9u4Nz8m6kq8p2eJ3XOhzzBIagMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <48dc432e-b607-d792-c1e7-b5900707f95e@suse.com>
Date: Mon, 29 Nov 2021 10:18:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <2bc4eeab-a69a-a953-e09e-7b87f7dc4b85@suse.com>
 <41e1f32d-6fe0-b588-ca27-8ddbd77f25e4@srcf.net>
 <ce727ab2-da21-b013-9650-98747ebf45a0@suse.com>
 <7809f437-320a-6749-e33c-92e641f87be0@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <7809f437-320a-6749-e33c-92e641f87be0@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P195CA0071.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:87::48) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b855e91e-8837-4307-3d85-08d9b319424d
X-MS-TrafficTypeDiagnostic: VI1PR04MB4847:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4847C75612528CD35B7DCDD8B3669@VI1PR04MB4847.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NohM8dQkhrAyVSIHXycuoNBe/FQLQrS7FTjHpDYMeK5A59PSodPaR6MtdttzMaq3+1QgqDDkDluYybck5jai3CLr0R/T54JFzIXxFmbv6/kuXylqHdiogRiRhFTvfM8jwW7F5kgIT7FkktWCshAxgybaVvwCmEoBNnsPbYsRe76gabUyc8YuQsvR734w5lMK9CHpQZhS8dfIBg8aHPGLoPKEWOnKQLPJ70nLCJRKNu3z87XGnhMW/EagnQ1V9V3wTV3I3tnIZWn/4HTDclrvPyc5I7Or2UOloDwmZ+gmLnXkeEVJbvp/TVH+R6rNUj8mWdJGQhbwVTIOW6oVNoED7NTUB6SQwtQHwgYe6hkUzTx9x+TWkmkY3kAa+9tk8GhIwWl7onWi2kUo0SllqzlBYON8buNL45EVh3WzqTXnx7DtDPnKiuz6brmOJiDxq4JfwL7ikGYvitsW+G5oXfLlJ1/H96N9nOnz00uIaU1LgtLT5kaPahKEqGYgSRlEtCYnS0Inr4H35qM0p3OE2IurfRvMW6dgMeD0I5OfbBCY7/LCzvLisriyarxOa2f6sP6eirOP43cyfVN9pNnuF+2QB5fNOzx9SC+9RK+7qLdrd75UZcRYJafmVFyaGD+vQj7frB6ma+R0JpFTAf9JnjVK1VwO27/GHyNuX3I6k1/Z34MZNlUBeS6JIgOrq6O1yllzwaxIDqJsTq0HdkOHv4JCQWQsKNlTrWmTVaZFS/7gDBw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(8676002)(36756003)(38100700002)(26005)(508600001)(86362001)(4326008)(66946007)(956004)(316002)(83380400001)(66556008)(66476007)(4744005)(2906002)(5660300002)(6486002)(186003)(110136005)(31696002)(16576012)(54906003)(8936002)(31686004)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ITnk+J2U7UzCQrb+IVEssP0DR+L8wjsDrphYSH30g7gtxpGh6JwAPa+f4D1B?=
 =?us-ascii?Q?O61oKkFpZokIplhMDaAoAzEOdEE1q7yHGVGI6bqLExVeR0cwqpm6BzcoFByO?=
 =?us-ascii?Q?ghvoWbMLELInk+zLJlNSwrovkSBBjAqiKD/yoAswfDtn83nNBdXUuV0ni7LJ?=
 =?us-ascii?Q?OX3PmMMZLU5VabF8EL+SPD5h9ZKhaYXNsPXwKhLqxAlWM8Oom9B/VJae1P1s?=
 =?us-ascii?Q?5s37Uw2fJk+zkcFNQyoYEamcL3bfsT2H8oyovT2Uku1Dab4pLcfeV8/cohbR?=
 =?us-ascii?Q?EEA7ykzZmVFffQ8B67exyTg/tGLvsAMLxDjpseUcTMjUy+laPI4DxcBhSy33?=
 =?us-ascii?Q?EXXlAUAADgNRzkD6x3HBy63v9z2z8O0uy52d+vFQTpVYdoUNmxN4WAEsGLKz?=
 =?us-ascii?Q?MaJErFQ2qFc1rZt+gpJaw3GXOGWOmWfnoQXbafMttWPVot9ksh7or0Gu9MAs?=
 =?us-ascii?Q?YWbIfZRXypbHtT64IvrfUwXx91/3O0CRq1ej3CsQolki+PhbxuuzRYS4j0sQ?=
 =?us-ascii?Q?O1Pyb7g8LR2jkcWT7QOc/Y8k54o8UIg93ypocOz2XFjLHrciJQEEsBW5WdSA?=
 =?us-ascii?Q?uOoLPRXgVBwJvxQNdI/cDdUa8BXIb95kEasKY4cRb95PezuFGy+wNupRSOSy?=
 =?us-ascii?Q?APo/oMTU3UZ4fwGdUhCQWynppQCdpcGc8EKJcXuMg5X2qLBX+u3WnmqNHpV1?=
 =?us-ascii?Q?NiP0PaD3aRWVnXnEi/fl7hvglF6p71OqrbdkNamtT/NITvSWJkRllX/kY6mt?=
 =?us-ascii?Q?3edpf1NmTb90yC3mtgaQOoMwWPXOIT97pSNzMS8k5zLNGoVr546pYRqF5dJL?=
 =?us-ascii?Q?Uah8R75mrL7Uqb6BKMi5ryZY7fAKCMWKcBEd9gZ/9BigV4P9XObxQVjkt8gM?=
 =?us-ascii?Q?Zn1dLPsXrFc3SDwbjpZigbo8dvaP9NnIYpfSGSpIeQ0H/UOywLfmF3qWuLx4?=
 =?us-ascii?Q?T1AdCTCGX70HGndYG0JsK4TfsDzU3Q61e5ITHGiAeDWqW8aBULHBAzzJVf8C?=
 =?us-ascii?Q?Iisr7d6t6fsDXFp+d4OnEYoGnNlzNO78aVHi+bMXzHPrxTGyMayEfGD267dj?=
 =?us-ascii?Q?Iy6hLijITD73DfL8sC/cIia3G0GHpjygw70CPslX/D4iC000HB+isdo4j4FL?=
 =?us-ascii?Q?+MLXTy6vo1NfyhpLcqGJ5d/tJIMYF2eGlJ+4nuTiCOzpWkRBVitgalNp0s4N?=
 =?us-ascii?Q?s3YpFeU8rHPB1ANy+ousGd/Ag7WOqZqju6l+mIXxSNtajpW5Q3Z0uh+wGjkH?=
 =?us-ascii?Q?Lrc2WjvMdy5SRfvym5H4h0Sds8oOQWzuWkP/sB6C/aV7+oApFphvUJUfmNAZ?=
 =?us-ascii?Q?0k0Omg9mlj1jWdKCcb1vXTrcL/4NIxF1cc7dgnqnfkmIfS2GQ7joaCtbQGvA?=
 =?us-ascii?Q?KceBDYQxSk4iXI9O88FsGiU8stv6UR4B5nTV+SLrPLEC45/i8pUftra5RARW?=
 =?us-ascii?Q?6IxrvtzjW1urtoiX1J0v849rvWQ8qoobnb+nUAnbbMYPBCbswQFMGkganX+n?=
 =?us-ascii?Q?WMxHEyYgjX+FdAIhYYUOzVkdmwQXhdxvuaHsuIRXk1i7LTE5DMtJGI4zr76Y?=
 =?us-ascii?Q?wGZ/zU14qQx+51Leb7p/nUWatckGquoDefyBZvAXlTfDRQ/dB4VIcjt2li7f?=
 =?us-ascii?Q?Fxv4/QiVLshOFGi1Hdn966c=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b855e91e-8837-4307-3d85-08d9b319424d
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 09:18:51.8887
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JrIjUwQutoav05hZilEaDpqc3/i3sSjUcjG9chFVZ34HUrGVPrEevIq2R1FIW2QEjzUAs+YpgfG9sNJQe33mXw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4847

On 27.11.2021 00:49, Andrew Cooper wrote:
> Given that Marek has kindly hacked us up a check which should find any
> arbitrary violations, and on a small sample of builds, there are no
> violations, I suggest that we clean it up and put it as a check in the
> real build and enable it by default seeing as we're right at the start
> of the 4.17 dev window.
>=20
> If it is seen to trip (and it might well not), we can judge at that
> point whether to rearrange the code to avoid it, or drop the check.=C2=A0
> Until then however, it gives us a very strong security statement.

Sounds like a plan.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:21:47 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234382.406772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcqz-00046t-0f; Mon, 29 Nov 2021 09:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234382.406772; Mon, 29 Nov 2021 09:21:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcqy-00046m-Sm; Mon, 29 Nov 2021 09:21:40 +0000
Received: by outflank-mailman (input) for mailman id 234382;
 Mon, 29 Nov 2021 09:21:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrcqx-00046g-Kf
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:21:39 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b727d824-50f5-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 10:21:21 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2105.outbound.protection.outlook.com [104.47.17.105]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-24-ogU_VbDTMsqu_dW44pXJEA-1; Mon, 29 Nov 2021 10:21:24 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB2702.eurprd04.prod.outlook.com (2603:10a6:800:b4::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 09:21:23 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 09:21:23 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P192CA0096.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:8d::37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Mon, 29 Nov 2021 09:21:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b727d824-50f5-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638177686;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=RXdp9ZbadeiHp47jhbONsSuZCUgJ0dAv/VoBkInPNoM=;
	b=HpSbqmztaewQzmj2g9E/wWmEOAfstuVCm+u+7+WrMluPHkYQKP4KeG1yY18alDBiBaviJ5
	075t6Qoq+DzfiHfRJ0w6WUIJskQHpEJ21T+egmJfu0f1360k3GV02ymRRiO/Im/u1J2eOl
	ABOJkDaOUNIkag0FyICLCnEumG0wMJg=
X-MC-Unique: ogU_VbDTMsqu_dW44pXJEA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cCct9lW/M3qVM02rhpx1FyublysCxzEHsHYvptBSQP2dY/6T+6ewtr4Yo5L4zMIogeEfNDm/dxDamboLD7nVkWSkdGK9/gyFwMQ+pgtPAbc+QQVlF1OnNA8awfuHTa2f9r1iG5BaUj7aJUlvIQzlzI6SLM3+0E/LZvg4iH5jjv4gjkSBQ9w95Wmq9yPbUTYn0M0u8p7cLNQ9sGDZX8ni4KkJbdEbdT5J425todKlOAhWu0eOOgMPhP5wGAcFW+9xJ4pEP3InLp/wcgVpHAer68hIMxs/O5hsHNko7YsXhDYnlNoyNsYGyj6r+noImpMVyzpddDuLt1+efpcA416mOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7cEs2/M3jieIQEYwYwHNJ+hh85DhRLGO3M18TCSvnN8=;
 b=bnS9xwa02k/VpNjpc5CyvlxKtfjB/h3a2yYMhfDF5/cpy/Ac/Fo4v/TQM7RxArd998Tdq5gTTly7dDcoll7TZoRlD4zFFPJD1ja14aDTg3Qhcl7+f67muvmspKtoLfmKP9oLZe9Lls/C2rdvGaFZ5UaQObLxH9deAxiMsGdo0Cvw+KbhdziEezO128o9vptieMfwJ+6c2uQbE68X2XAySapRVeI71V8d9HnYQvNpbIa42PCievJ2XGuyr+kj2T2E1kcYksP5j5/SK1MFQasMJ2M1QhyuIxV4pEB0+Awcm9yhxfGpCngJrCd93aQXU2c5e2jApXCdTR5q3YqCnx258Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <566dbf20-2881-80ac-eafd-57ac4b217f0f@suse.com>
Date: Mon, 29 Nov 2021 10:21:25 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 01/65] x86: Introduce support for CET-IBT
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-2-andrew.cooper3@citrix.com>
 <69d1b4a3-a042-c2c4-2f59-ea897886ae1d@suse.com>
 <e7f8a52a-5761-88dc-97ff-6c2feca2effb@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <e7f8a52a-5761-88dc-97ff-6c2feca2effb@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P192CA0096.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:209:8d::37) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d0f62e6d-6848-4bb2-b95c-08d9b3199cbf
X-MS-TrafficTypeDiagnostic: VI1PR0402MB2702:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB2702F84E908A9C259AF5C121B3669@VI1PR0402MB2702.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/9QNyDUKA+MUc+NwrKZMm+MlpeZr5eTTiZPVmupoR9SQOYvMgsjawADaPTTfKtv3oBE3LKcxxxBj0jrr9Fu1IxglIsgaiiwZI8vMWljelXP8Ollkm6RamNCRhHMnqy3oPD7eJXtADiuEwZgkuQdqWHaXY2S8McVoQeug4hso3fDUFZlTvOuaDyGo6Fo7PoUGcIsWGy5/42NmEOgtEizk58U4hAqptO8o2jIoYq1Mt4fsLgyu0IJgT/yaEsCsP04uAkZFwbq9unoLszlhU023loj+4ZRgUFgKRyEuUPjdjRtwQCmrFCdvUspVGY+p8TmgcbXAEwLTIOTgdRlbLqwLJdsxrx2vEDfaZn+il+sMkRo0dv/awHw284KxaOXWAm5N6iDFwb6jYIgxE93jDq1+q/IwhFZlgUMwQJrcU8xMxoHGDm52Pd56m5OzDyE2KU/SMOz7nF0HKKZ5ze2BWUf7vKhQiAVKx+WS9WYYFRhdjGj51PoApBEQNHF+8v8X5OdzA7pOFiBPnicAQgSFJzUnmvKeSVxflA9/oVYRr6gPoojZsKRFWWjr/GSiFVEwFh9S92TCVUZytzO1G/n2yZMR/HaMV/bammLPHsqEcenHYle1cMyh8p5KuU4XXi928iIxAQsxKS3/GJqlyDDlaDy5IKxA08F3U+ouvba6TNk/5zKPv3o6bRFlcIfIo3c4JSmBV+Xf4b9BGSNTAI0GHyvEHiCECxEiGGtb3+nn3Z6oDCBn+REsIi6KEHEYu3zbNTrO
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(31686004)(26005)(54906003)(53546011)(110136005)(186003)(6486002)(316002)(16576012)(86362001)(36756003)(8936002)(2906002)(956004)(66556008)(4326008)(66476007)(508600001)(8676002)(31696002)(66946007)(5660300002)(2616005)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?DU33zWBaUaIBOdQff/b9q9fhrfqakQaKHaKZOfk89FVQ7JZ1n6w0x9ENYfqY?=
 =?us-ascii?Q?bMrnQCzpiN4riYmBcP60HV8/bArWB3znO0zp6Q/glnOZs1HCWAZTBRqRzZIl?=
 =?us-ascii?Q?QvBlVVrXDt2eXID4At+iAtb2esyyDLk8QT8+5qjdO+bDACj+iMnY6c1+L6uS?=
 =?us-ascii?Q?Wy1KolUeTRzj3FPFgdvTHrNib6aGOpVzEhwkQAKNLSMZY1r8P2H9Bh1zOm8J?=
 =?us-ascii?Q?YPNWAMJWFouhmUiLdgVpFmUCEo1Qxmj3OXGlyrCvvxyXjvIwtTes4z36ZuNg?=
 =?us-ascii?Q?Y6I2FASzri0BOiQ6T/9oHOt8n7RbBAO4igiaGNVRZNEb9e2Mb+vh24iUDfEe?=
 =?us-ascii?Q?jVyh4qDPT/Pubgv1rpUgx/4fuqHGkkkigeSumiuJv7phzwRjZtEp9RBNDSDo?=
 =?us-ascii?Q?q8lAYMHyeDcqKVyOlUzh7N19PXGm+akwWnLG7YneOHdZIzbmEHotfUdrHi71?=
 =?us-ascii?Q?ShYZjUHRbL9vf4a4r6adp6Q8VpxsFFpoL4jijA5kKKTC9iPnmphX6MopNVxA?=
 =?us-ascii?Q?th1k5VQxxTEdbYbaB4SdcqoMA3eRTOHY+03CnVtLUk2r4i7pUcenW3ZeTj0x?=
 =?us-ascii?Q?esvNpdoiOXPEawRBGuBdDDh+JVPwlILfHZpcMkFL7qRNJE2yzcwvPb0IqwnS?=
 =?us-ascii?Q?KofnTfeHqHyVplbPlDuIrVaPW8t1Im1ERSAshPt69OEYGnqPasI3dhgwwW8V?=
 =?us-ascii?Q?hbl2qzV42oHm8zIwww9hPBtbodJ1IS7U+RM/OjqlQE74k2plTtuyc9ZfGn05?=
 =?us-ascii?Q?rTOdbGYr9pMEIK7fJ2iX4n6VQ1Y/6ubeFSAnYepiRShxNH9KriHwuBHDhepI?=
 =?us-ascii?Q?gnfQfjZuBINpdS0/7IhRFdIRoJh2V4JLNxVTZUxaNTg3B2XlTCr+r4sj+VsN?=
 =?us-ascii?Q?KQtJubEgaHBopxirnW25FL1Wa2Zs8y4tz183HggJC4WCujBHvJFz+8fa8Uxs?=
 =?us-ascii?Q?IlOvNmtrhNH8muvb2ezqXLZHfD4JL3eLkSSXtjm2vwHRjeOXqIWDDQEpK4tf?=
 =?us-ascii?Q?E0BHFJ8HE8UTjQVBKN8HevcPONIwKd4OVY35QS+hfPBCTwRWHC/9S5C98IMf?=
 =?us-ascii?Q?nDZqAK93z9aaxJDt4ATo975lfG5tYa4pcGD8vhzYIbkPC6sA/AQ5Os2vnUQc?=
 =?us-ascii?Q?GJQjZXbUvlnMNfLWRtVknL0h0ShGFzovQYmhFGih7tuM8PiXJ0kZ/ehq4Yle?=
 =?us-ascii?Q?jLVyA6yY1Eq08HiAijs3SddAk0/YaVuQD7riX4fW5iliMfcAiDpP6YhKzvoZ?=
 =?us-ascii?Q?cjc9HZSjKCzfRMuWVNM9TllB8Ioxlb2bZkoh6+a92qMDtpvphs8zOi9feTiw?=
 =?us-ascii?Q?/5RHVgtI0aGaAFZyu4qVXCAm5Cu8DMh/LPOs6XjUUTLhxPpt42PulHvdsb3H?=
 =?us-ascii?Q?ugrccrred6BKV65xzumgYBz7UQf+A09tcRvjyVVrhjATM5Oedt0zfbrqHZGc?=
 =?us-ascii?Q?2W2OT5U184UhuydlzIjYdIAbuk3eblp/j4iWpn1m3a6CVbs4Q8DRAaqPA+jv?=
 =?us-ascii?Q?ROm0zTgDOSQWMABhw1TOoL7eEDb1ED5iESUQ9ndG65O1xyuuLbWM4+ejaS/s?=
 =?us-ascii?Q?vc8X3zZVOAS6PUX14RDq8NZe+HgijxOo/rv8C2F6I0lklieSNyrP1BCuUUTA?=
 =?us-ascii?Q?GgAc7YMTTvT032bvUrb3+6I=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d0f62e6d-6848-4bb2-b95c-08d9b3199cbf
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 09:21:23.6319
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PgCmr3KsF6WVstZumMI8T1e7PwTKnAE5ybJYraeu3ef06vc14d4gzmv7Jep2ivLdShv1zm3UgZ127qrdrbpW9Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2702

On 26.11.2021 16:21, Andrew Cooper wrote:
> On 26/11/2021 14:10, Jan Beulich wrote:
>> On 26.11.2021 13:33, Andrew Cooper wrote:
>>> @@ -124,6 +129,18 @@ config XEN_SHSTK
>>>  	  When CET-SS is active, 32bit PV guests cannot be used.  Backwards
>>>  	  compatiblity can be provided via the PV Shim mechanism.
>>> =20
>>> +config XEN_IBT
>>> +	bool "Supervisor Indirect Branch Tracking"
>>> +	depends on HAS_CC_CET_IBT
>>> +	default y
>>> +	help
>>> +	  Control-flow Enforcement Technology (CET) is a set of features in
>>> +	  hardware designed to combat Return-oriented Programming (ROP, also
>>> +	  call/jump COP/JOP) attacks.  Indirect Branch Tracking is one CET
>>> +	  feature designed to provide function pointer protection.
>>> +
>>> +	  This option arranges for Xen to use CET-IBT for its own protection.
>> Shouldn't this depend on BROKEN until it's actually functional?
>=20
> It compiles fine right from now, and making it BROKEN would inhibit
> bisection through the series.
>=20
> Nothing actually matters until patch 65 turns on MSR_S_CET.ENDBR_EN.

"Nothing" except that until then the promised extra security isn't
there.

>>> --- a/xen/arch/x86/x86_emulate/x86_emulate.h
>>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.h
>>> @@ -35,6 +35,11 @@
>>>  # error Unknown compilation width
>>>  #endif
>>> =20
>>> +#ifndef cf_check
>>> +/* Cope with userspace build not knowing about CET-IBT */
>>> +#define cf_check
>>> +#endif
>> Imo this shouldn't go here, but in tools/tests/x86_emulator/x86-emulate.=
h,
>> and then presumably without #ifdef.
>=20
> I considered that, but the test harness isn't the only userspace
> harness.=C2=A0 There is the fuzzing harness too, and I'm not sure we want=
 to
> force every userspace harness to provide the same workaround.

But that's the idea of putting it where I suggested: This header gets
re-used by the fuzzing harness:

x86-emulate.c x86-emulate.h wrappers.c: %:
	[ -L $* ] || ln -sf $(XEN_ROOT)/tools/tests/x86_emulator/$*

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:27:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:27:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234389.406783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcwg-0004qe-QR; Mon, 29 Nov 2021 09:27:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234389.406783; Mon, 29 Nov 2021 09:27:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrcwg-0004qX-M7; Mon, 29 Nov 2021 09:27:34 +0000
Received: by outflank-mailman (input) for mailman id 234389;
 Mon, 29 Nov 2021 09:27:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrcwe-0004qR-S0
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:27:32 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 93e5bc5b-50f6-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 10:27:31 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2051.outbound.protection.outlook.com [104.47.14.51]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-36-AAOLLMJkM6CQKihvtVjV6g-1; Mon, 29 Nov 2021 10:27:30 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2605.eurprd04.prod.outlook.com (2603:10a6:800:57::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 09:27:28 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 09:27:28 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P193CA0054.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::31) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.23 via Frontend Transport; Mon, 29 Nov 2021 09:27:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93e5bc5b-50f6-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638178051;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=LtLNOk294Uo74MVaSXdJsRjdvm/2GnkJvkOrt6Xmrf0=;
	b=mgOUqjgEsVFgVBjMieaiM3Cvw7xPL3SC3EJqQ8XUdJGutPN6pQMtOM57DSOMZHCOlh5opG
	MJsmce2bQ+T8/h/hAR05NASmVtjdBVxQQk1lgKg+SiXnUgNMAaKBcgSNZE/YbC1lF+z5T8
	WjLijrjJNd00IQruDfsjKr+F85srqQk=
X-MC-Unique: AAOLLMJkM6CQKihvtVjV6g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eaLCBIbzKCebPnQpJe/+mI+qitbqWFMqsKBMp/VL5/FegHJcRNp8ImorrhnN7tZjgOwYIwZ1HR5pPL8TxpynbsXLoqROyCrOkqn+bmT3xd9xAU9LF/yNZlEHecy+4BwD5nfboSxA83PxbKjYa91ej4D+DedOiST9k3YtKCmU1eIjXGVklgd9twA37aqNS4Q2GA3BNKdJn7GMS2rdZwmBovAjn7R+A1H40p8v3/8bYex7oElWDiVXtg2ZPi1A3/ayD9yrCR0G2t4XPtr6yVEC5zBH0sl8+wAZfn0UEV2WTBD8FTrgC7cmC01CcN9PXr5uWS5D7xumS5fmM+IgsMbGDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LtLNOk294Uo74MVaSXdJsRjdvm/2GnkJvkOrt6Xmrf0=;
 b=YbrbUY2+mu+QZB32iXO7SpTwFiZGqlsyXXAktletYZ4AnKh+beE401HRx9ebEFFKyAnDY/keWQ5dNrmNSi6mlPjXibIVhS8QoXpIEdThuwtEXnkuYO1daVRIltHBTymDxOZqaOE7c7SFZbvNrYJxWH/FgIQ34DhdFEIpDM8EWQLd172O2cz70z+xaAwGo7jgy7bQsP+r12/7E5z3dG6a7QLTR+EecOmOfian+Fs7DqPj1eLwMPD1VIlWY+dxwkvUqANrhCylZyGm78846D3NwK0hVZ7mpNC9pusVj82LthMnkv9FM803xRTTLPKJFOnUsJLkHNKQetkN1CSgZ2WNtQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fb030726-c3c1-9225-08a9-8e2c37281962@suse.com>
Date: Mon, 29 Nov 2021 10:27:29 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 01/65] x86: Introduce support for CET-IBT
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-2-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P193CA0054.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:209:8e::31) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 720c709d-a6f7-4649-30f2-08d9b31a763b
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2605:
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB2605997460BE1DFDB25B1DC6B3669@VI1PR0401MB2605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1169;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ZYFPO0MYNdcJqdBl1Ui2oqYOG65UybKuhXtARL8+zrl7By7IA6hxKJEP+ZDV55fzTNsposGZuD2H8JRUxHciXjorN4w6fPU6XqQPdXHKsYNY2OFcUs6LgnZNhFhGqY2bPBL3o+XxkfpJO+QVx5Io2NXkUdDjRPEFdENpS7AX6OxjFexa+ioX71qvpAJuKOvPLcx8g8tp6ekwm7Ub3d/hNDUC6d5Ah65MB03LjZ1lsCmk+A3wCYA9Ru6koXolR/A3/PF5NDLvDtswPNsKfXLQoMsmSELjFz7clKL8heUx6L72D/+GvYrt1MqCDo89Oq1p0saLEoDRbWguTp+HMsgG4bUHDLbe/lwG5/20JhrzSUXPzz6hszCI+7oUErSPKI+POmqBtebwdFbLhpfc5bqWw1+ZZEe4miE4BJcNOgZiD040Ak76ppnNOg+p/d6iRbhgNtnwMc7h83QGTQqsS4t3+uTqn8eEGWMRiUSCQeXLgiOEoMRNKJqzrvLvAyheV3UZKnyhvA8ykvoODXCshKo2VkXVw12+NucQjpw1vhjoN22+n8REp1/f9+vAndns0U55giDnbgg3GrL3XIP3R17gUOdCeI1fjKsQiw0AL/qTWSW74iH52lsWKMmaUv9SSmWE2UBxkLl3muT0VopJNJAiwCoVxCkwu8QD5gy0ZOFzlKxboTp0/aJnFD/2VIfT2DEyScThopt/z1icUtPOm04p6SbJKKVNPDJGppWid8PyEcHV3WC2nWNmWcnnALPcxP4k
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(31686004)(6916009)(26005)(54906003)(53546011)(186003)(6486002)(316002)(16576012)(4744005)(86362001)(36756003)(2906002)(8936002)(956004)(66556008)(4326008)(508600001)(5660300002)(66476007)(31696002)(8676002)(66946007)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OWlobXE5NlYrZWpkWDRhM2NzdlB3QXNYdmJlODVvMHU3Mzg2MzZpUVYxS0JZ?=
 =?utf-8?B?djYyZEJaa2ZGOGh5eTdNVUcvWXNVSVVQaE1JNUFwZldVcnNuVFFjcDhYeWQ4?=
 =?utf-8?B?VFV0enhTOHU4cGIrYnZPRTRrY1dGNnRFWVlodk5MMHZtbVR1bHUwcFY1UGwr?=
 =?utf-8?B?azRrN0RTUlczQVFLNmpibEJOMGtIRFMxNlVPUDFIN0ZQVndHTUFsN2JtWkNz?=
 =?utf-8?B?MHNocGI4bTNMcm1WT0dCZEF4QTFvcVpJVzZkeExIZlN3czVwMmh4MnR6Snd2?=
 =?utf-8?B?bkhNMTlXbXFaZ0ZENWZucFA1RmVCM3NsampiQ1FFOFd2RGZMb05aYWJRWEdE?=
 =?utf-8?B?a2ZJc3c1M3A4L1p1c3JvZWpNZlNwMjhmVXdLeG12U3YxOVJoaVpTbEpINHVJ?=
 =?utf-8?B?UmVWN3g4ZlFzNFFVOUFva0ptVnZXQWNLNit0dC9sMXp6M2V3akNQcGJnQ2l6?=
 =?utf-8?B?M0lMQ3o2b2k2U0pFdjhsbEtwbmxOd1kxTnY4aVc0anpiTVJPVUh3eDFZdzVz?=
 =?utf-8?B?MWQvb3JtQ1hqL1JkWE5Pdjk1dHNFaGhhUWtFdjUvbFA2MUMvR0pVYnMxRnU1?=
 =?utf-8?B?dm50dkw1aVpIZmgyalJmc2dXSDJ3YVpIZW5Vcm42K0FNN2N2b2t4YnZtSzdm?=
 =?utf-8?B?QU9GcmJtMUJKRS9oWllMMktyYWxyYS9sU1hBOUJSL2lQdExSTmpZbWRNb3hv?=
 =?utf-8?B?aU9zQ3c3eWVMVnR6MXFaZDlmRTJkNXNUVlRNRU5KSzJkT1NIYkQ2U0Z0elRo?=
 =?utf-8?B?OUIwWnhvdE5nOEhWTFM1OXJtcUw5TE5aRG9xN1JQWDh3MDVUajVTWU9ZVDY0?=
 =?utf-8?B?MCtoQ0d3OU1oVldYQS9NalhKdHliSGZDREw4NFRaRFNWYVI4SUE3QUtLVG1U?=
 =?utf-8?B?ZU5nb05yMWZQT2RjMHFvdDQwenVBWXhvL25VRHVvcGhVeTVtQXJBYVFEcVBZ?=
 =?utf-8?B?RXRHbytYTXRaZ0pZNFpyRTRKdWpaYncrS2ZQY3gxUmhCSGg5MGF3TElUMzRa?=
 =?utf-8?B?OXROYTlDT2NTdnFkYzdSSmhUN1hEQkwxODVheStvamZKengvY3pObWZ0UmNa?=
 =?utf-8?B?dzU0UzlJUWxvV2xSaGtscTVkUi94QSs1RWxCQzZVenluZ3dUNmgva3RlMTMz?=
 =?utf-8?B?Unp5eEw1TmlNaGNCSnJ0Z1A1SmUvL0tDdTZGZEJXUXA0eG9EWk9ROWhDMzFV?=
 =?utf-8?B?RmVQZkNVMGdISGJlMVl2bW1VOUlPK2hOVk00UWRka0NjY1d4WjNHR2JzOVlX?=
 =?utf-8?B?YXZZamc4TUdnRHBrd1NXTy85Mlk2NFYrUE5HZ3RoTDdES2FkZ1VEMjFLWUxB?=
 =?utf-8?B?elIvNGhHaU5uc1UwbGZ5a0JLUUxpVFl2OWNiMVpmRzJnQS9DMDZCd3BmVE81?=
 =?utf-8?B?MWtBUVZ4a3hwM0lQZ2ZYcnFTWHhsZlF4a1Fkak9JbXlwRnhDcXUxV0p0NE90?=
 =?utf-8?B?RVZYa2U0bm1BeGpMN3ExT1VOZTZrUnFXbHROYmM4WnNxWmcwdXVCNUVpOEtQ?=
 =?utf-8?B?ci9pM2hUZTJTOEgyOHNubjJLQUZ2T0tGWktFaURvU3c5QTlFWU9GWk1PNmVv?=
 =?utf-8?B?TnFWbmg1UU44T0lSWERyRCtOeDFJN01FL0NiTlEzR09YTW5EU3M4eThqN2h3?=
 =?utf-8?B?d1NuSThSWHIxbXpVTlZZV3dpUVJLSTRYdDJDYkRoZ1VrTEVvQ2cvWjNKVDRL?=
 =?utf-8?B?ay9rYjY2WGNIdzNoanRheDBtZUNIVjVKTTZ3QUlENzJsMWNRS2ZEcTZxdE1i?=
 =?utf-8?B?VXJoNGlSaXo0TmhYeWdSTWNCeXJ4QUlJL3RSMTN5RXVxUG1VTEFqMEswYlRa?=
 =?utf-8?B?TFZTZmxtSENJZ3dZQjVGbDUwc3pTNURUMVNuaG5ra3NNeHAvclFzMmxSa0Nv?=
 =?utf-8?B?KzVKV2hta1huYnFMeUhKVHoxcy9aWElFVFlPempNenVtNmtmUVZpVUltUFQx?=
 =?utf-8?B?Z0N3NnhPQS9ZS0s0dm9TVUxnODZjeFhiUWhEQWszdEtERmFMajE5czRMdk9H?=
 =?utf-8?B?Z0llTTNvWnRZeGpjTFYwUGJjTkV5UVk1RTFwbTJ6TGJ5cU5RRjlGd2lEdjl6?=
 =?utf-8?B?c08yZkpYKzdRVFlRTTFvcG1VMFNUNXFEaXVGQUNXa1d5UVZPWVFQNlNDTy9p?=
 =?utf-8?B?bHV5OWlEYjZLdTQ2OU5jdkJMUXgzM1I2cVRNcTVZTEhNU1lyb1JMbDF1UDJR?=
 =?utf-8?Q?XF9aI7JUjajmrIeneTHqQOQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 720c709d-a6f7-4649-30f2-08d9b31a763b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 09:27:28.5407
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ckJCLepVVRYVNR2fY5Q5oCkROJaAlNV2oxeNB41brU0JMNVz/Do3ZIAB3fId7BiuuSrlMGmlp021rvvM409KsQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2605

On 26.11.2021 13:33, Andrew Cooper wrote:
> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -46,6 +46,12 @@ CFLAGS-$(CONFIG_INDIRECT_THUNK) += -mindirect-branch=thunk-extern
>  CFLAGS-$(CONFIG_INDIRECT_THUNK) += -mindirect-branch-register
>  CFLAGS-$(CONFIG_INDIRECT_THUNK) += -fno-jump-tables
>  
> +ifdef CONFIG_HAS_CC_CET_IBT
> +CFLAGS += -fcf-protection=branch -mmanual-endbr

Don't you mean to check XEN_IBT here rather than the underlying
compiler capability?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:35:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:35:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234394.406794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrd3c-0006GY-Jo; Mon, 29 Nov 2021 09:34:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234394.406794; Mon, 29 Nov 2021 09:34:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrd3c-0006GR-Gm; Mon, 29 Nov 2021 09:34:44 +0000
Received: by outflank-mailman (input) for mailman id 234394;
 Mon, 29 Nov 2021 09:30:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C85y=QQ=mg.codeaurora.org=bounce+538f1c.be9e4a-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1mrcz5-0005YH-0h
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:30:03 +0000
Received: from m43-7.mailgun.net (m43-7.mailgun.net [69.72.43.7])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id eca4db3b-50f6-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 10:30:01 +0100 (CET)
Received: from smtp.codeaurora.org
 (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by
 smtp-out-n06.prod.us-west-2.postgun.com with SMTP id
 61a49d941abc6f02d06239d6 (version=TLS1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Mon, 29 Nov 2021 09:29:56
 GMT
Received: by smtp.codeaurora.org (Postfix, from userid 1001)
 id B5BA9C4360D; Mon, 29 Nov 2021 09:29:56 +0000 (UTC)
Received: from tykki (tynnyri.adurom.net [51.15.11.48])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested) (Authenticated sender: kvalo)
 by smtp.codeaurora.org (Postfix) with ESMTPSA id C23B0C4338F;
 Mon, 29 Nov 2021 09:29:49 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: eca4db3b-50f6-11ec-976b-d102b41d0961
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt;
 s=smtp; t=1638178201; h=Content-Type: MIME-Version: Message-ID:
 In-Reply-To: Date: References: Subject: Cc: To: From: Sender;
 bh=6eYnZqn/a+66YlvOdqd+LVZ4HfzlOTayDC9zFdg1eh8=; b=HiD4aaSGpVZ0Y4jGVbXU09fQB1Qd/lWGhVNPA7aYWkhmncRF5dmS27IP4LB2Wwc3BmMXmjOJ
 nGoEZq5hDhTJkaz8PUmVhpDRmbGqbD6mbL08y946/Pzh5At/QKhqEf0SVNATa5wE8nhbw/RZ
 lPNOKUUF1e6XvSuBy1hu9az0NOs=
X-Mailgun-Sending-Ip: 69.72.43.7
X-Mailgun-Sid: WyIyYTI5MyIsICJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmciLCAiYmU5ZTRhIl0=
Sender: kvalo=codeaurora.org@mg.codeaurora.org
X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
	aws-us-west-2-caf-mail-1.web.codeaurora.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00,SPF_FAIL,
	URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0
DMARC-Filter: OpenDMARC Filter v1.4.1 smtp.codeaurora.org C23B0C4338F
Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org
Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=fail smtp.mailfrom=codeaurora.org
From: Kalle Valo <kvalo@codeaurora.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>,  Bjorn Helgaas <helgaas@kernel.org>,  Marc Zygnier <maz@kernel.org>,  Alex Williamson <alex.williamson@redhat.com>,  Kevin Tian <kevin.tian@intel.com>,  Jason Gunthorpe <jgg@nvidia.com>,  Megha Dey <megha.dey@intel.com>,  Ashok Raj <ashok.raj@intel.com>,  Greg Kroah-Hartman <gregkh@linuxfoundation.org>,  sparclinux@vger.kernel.org,  x86@kernel.org,  xen-devel@lists.xenproject.org,  ath11k@lists.infradead.org,  linux-pci@vger.kernel.org,  Michael Ellerman <mpe@ellerman.id.au>,  Paul Mackerras <paulus@samba.org>,  Benjamin Herrenschmidt <benh@kernel.crashing.org>,  linuxppc-dev@lists.ozlabs.org,  Thomas Bogendoerfer <tsbogend@alpha.franken.de>,  linux-mips@vger.kernel.org,  Wei Liu <wei.liu@kernel.org>,  linux-hyperv@vger.kernel.org,  Juergen Gross <jgross@suse.com>,  Christian Borntraeger <borntraeger@de.ibm.com>,  Heiko Carstens <hca@linux.ibm.com>
Subject: Re: [patch 10/22] genirq/msi, treewide: Use a named struct for PCI/MSI attributes
References: <20211126222700.862407977@linutronix.de>
	<20211126223824.679247706@linutronix.de>
Date: Mon, 29 Nov 2021 11:29:46 +0200
In-Reply-To: <20211126223824.679247706@linutronix.de> (Thomas Gleixner's
	message of "Sat, 27 Nov 2021 02:18:50 +0100 (CET)")
Message-ID: <874k7vcnsl.fsf@codeaurora.org>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain

Thomas Gleixner <tglx@linutronix.de> writes:

> The unnamed struct sucks and is in the way of further cleanups. Stick the
> PCI related MSI data into a real data structure and cleanup all users.
>
> No functional change.
>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: sparclinux@vger.kernel.org
> Cc: x86@kernel.org
> Cc: xen-devel@lists.xenproject.org
> Cc: ath11k@lists.infradead.org
> ---
>  arch/powerpc/platforms/cell/axon_msi.c    |    2 
>  arch/powerpc/platforms/powernv/pci-ioda.c |    4 -
>  arch/powerpc/platforms/pseries/msi.c      |    6 -
>  arch/sparc/kernel/pci_msi.c               |    4 -
>  arch/x86/kernel/apic/msi.c                |    2 
>  arch/x86/pci/xen.c                        |    6 -
>  drivers/net/wireless/ath/ath11k/pci.c     |    2 

For ath11k:

Acked-by: Kalle Valo <kvalo@codeaurora.org>

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:38:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:38:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234401.406805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrd6r-0006v8-3U; Mon, 29 Nov 2021 09:38:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234401.406805; Mon, 29 Nov 2021 09:38:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrd6r-0006v1-0M; Mon, 29 Nov 2021 09:38:05 +0000
Received: by outflank-mailman (input) for mailman id 234401;
 Mon, 29 Nov 2021 09:38:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrd6q-0006ut-Bs
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:38:04 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c59352a-50f8-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 10:38:03 +0100 (CET)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-2-S85Uoo3EORawvP2qSjZkwA-1; Mon, 29 Nov 2021 10:38:01 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6384.eurprd04.prod.outlook.com (2603:10a6:803:126::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 09:37:59 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 09:37:59 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR04CA0025.eurprd04.prod.outlook.com (2603:10a6:20b:110::35) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23 via Frontend
 Transport; Mon, 29 Nov 2021 09:37:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c59352a-50f8-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638178683;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ZRJv5tos3CyUDw9A51M5bOjixVjt4JksAV18q7LJh7c=;
	b=ngSMBdNc+vCOXUiUQZP6ztucdzOJ2CpzrNTsx71oiljJY84RUfalRUhCZ68fxzbR5Fj8nQ
	GNXchTViO9FxLQuNRr8C7SCUyfrspbKP8R+UoPMruRyaX3i91si3657GV1WArAi0rCR47B
	B26u/YWsX+tuijh5vcpRylqiya2aB0M=
X-MC-Unique: S85Uoo3EORawvP2qSjZkwA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VpLkqNb4qO61xblaW1J3+2xZfjvSLdKP9LrPgmAhP5ZhhCW38iRCc8nyO7eBmpw+c+OOUhX7Knhhn6NtnM44rrJfnrsOvXa8cS8LxuOzEHql9EuTpYcorIRsgTZcQT8HjVJTv7iOahlrUwZw6viZJdyvRD4DkZ7s5yyaaj0gd8DLzApQeGeknvIatDcW0u9uKv0I6ByhGb2H4wihhZAsMPtSQd0MtKmQ6J4gfGw9guVxiwz+oBLODIRYHqvxUIMlFV35LVfeBjUmlZ/vlgkUymsngxn0afo6QX8od+M90rNyA4Ns9hEjgja68xDiAxW2HD6NSyBPQMYv0cqtYF0s4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2Bi1BQoraXlfbqkB17JzrsZbnAi0QmH6TcGduMLGh20=;
 b=UH3P2wTcGeN2/Qg754BS4EIEYjWMLT2JfmufLeEwL+Ia5qsfeImGge18X4lUyPH9HeZzY0KBJM01uXyW2+Z7Rs4HrBNYEn5tjbAOisQrWm5MynqArxeArtTES4TbBXW6ONzX4I/2Oj/6ZzY5XY5N7V0bIWIMyRJT9VcGho798ig1DhpRd1g/j3ugkD9kFhCHgL0/LhbhePw3GMgiRC4rjpQyL1IF092GlUlxGOIhX1jMU+Y9kYcDY/MZyaquAn/S9rlIKeptZ+yCTJ6xXwpEGc+ZqLfoiuDCQxER3+DqpbhE8Pmi6VUhkV/goT46uIjt8FHdnvsHktGaURIPgC7lwg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1b9a0370-a55f-f773-2dd8-f3398685c9a5@suse.com>
Date: Mon, 29 Nov 2021 10:38:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 04/65] x86/hypercall: Annotate fnptr targets
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-5-andrew.cooper3@citrix.com>
 <374c6213-4319-91ba-6b69-c695d4b2cd87@suse.com>
 <02af4393-8b31-960e-c509-012b3ce09703@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <02af4393-8b31-960e-c509-012b3ce09703@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM7PR04CA0025.eurprd04.prod.outlook.com
 (2603:10a6:20b:110::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 87b49a70-1477-43e2-abc2-08d9b31bee20
X-MS-TrafficTypeDiagnostic: VE1PR04MB6384:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB63840A696DE42EC5AA593DBEB3669@VE1PR04MB6384.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	mRIjpHZdRT/ovTw8MPFCNAwwbarRJbHTOqOmYJXEERh/F6cTHBF1vSXvPA3He9pxOPxXkNuqFmCUhLbnycoqC0xPYuCq0vr9YJ7grMxIsIJFUdJ0hcHinnaPZY2pXiDO53nWyI8VWII3PYS7bsyPml6TI7B48Pv8h13xu3IrNkH4Yi1ANO5LvRLwIUxt6rcoe24hLVGcc2Ki2t+2KPIZ1yH9LozpgGw8yByUZhMZPjCPurXKtY2c464PpQUL8qssOmWb1pFuIlF7SPr91IrBdj5apKd9RP7CXVmMrADEm69nwbvJfKfMR6GFP57ZguAQLEPDHne1VX93/540LtICXkRDgeddZL/j2MhQRTMreVTc3T8XSeFdjgi/Snh98Qz5mbwoAUsQSHwqg+/bdKZ7g19yb8sGDacmDWTG+efvdnNfdBWc8QBvlKhI2ipFM4zwDvDqwE/7IHXr7LIaVMBL5L7DxHz6HJw89Gi76PfuGQ+dXKxPn60t0x73tPN7coTGtV19ag5Rd2JlDllWGnDC4YtwlGlerz24F1ezz4Qc5IkUdZhNbG08CNzZmPLCPHl+yiOvzECJ+dxpLPDZs6lXeYo+eWF019jpcT/8FjUZQRj3HjiQUZxxrOYxMWIfCD4X2GNCdWOZsXSE4xePaCylhLmN7nwwkPnpUheBBZl2N6zGovShAnk74p0A91ngrfIK0L9MGtyZuKn686MVJHhgfzCshNBgQO5TUa7tSGQYWWqnFEDVDE4QeNupzn2HaCLr
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(31696002)(26005)(36756003)(31686004)(110136005)(16576012)(54906003)(316002)(8676002)(4326008)(86362001)(38100700002)(53546011)(508600001)(6486002)(8936002)(2906002)(66476007)(6666004)(66946007)(66556008)(5660300002)(83380400001)(2616005)(956004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?GhKKDRv8Mfrx/1LWIb6aZY8rG8SkuCxNwwXC3JAGFHpNB8Z9giEzWKzXuGCX?=
 =?us-ascii?Q?oulARQHu6yHwo5B6XvJodFHpqziArR/ncMLUbvP9ph0g4FbAYQerbCcGNn/3?=
 =?us-ascii?Q?PRTdr0lBRqE8ZQdlYRn9dZLCDkIUGofYO95kyrESWzv5vavt0E9fuRMk1BGF?=
 =?us-ascii?Q?zazUrVgGZ9gpJdIyVws6lVxqsJT//1c/rE16iZMSKVicyphDnXI4oRW5s7e1?=
 =?us-ascii?Q?2qgmXBsu4PDSSKNK/Jv3Ai01boxKdXU5q32ysrXbL6d7RalPbXM22NlS6sZX?=
 =?us-ascii?Q?VN49iGGYYThjTH4WPZi8fCJ5YwOJ8OCWwNoKv2WOD8BDoPpmnPUuJjkNcvw1?=
 =?us-ascii?Q?VERrR6diGgYtxEuGezJeQ89tKuqHRGgSVSDicoG1Qaohj0uFeNp2QndZSC+g?=
 =?us-ascii?Q?s0ihvc9lJbt6piiOudPeTJt9p6R06aEp5eYCEiciGEnB+5aSbHpkUQT5fYvJ?=
 =?us-ascii?Q?J7o745bGVLeCleKZ7nPk81LeH8X7uFHpW3JaJ5v9B96Ed+uPy9KBvXjz6ziD?=
 =?us-ascii?Q?ctQwQuteMV148nvDOsELQ15P7VsEINvQhtWomDFsMSCpAv4jGVbxDGlOg2Ys?=
 =?us-ascii?Q?Z4m5Xy2h0QW7cw2YVl8ccygcaLfchyxdCI+be6YA76txUQcvpDmb1/F3gC/e?=
 =?us-ascii?Q?4hkcuQDdmZbKYsma4WoOsCCfdqkkMKmHCM6aeINasKmc/lLVp8g6C3lTG6hr?=
 =?us-ascii?Q?LWQVQEI0ejIJd9YjYveA8PY3UvZu4xoM1rSFrT3VRHrqzhOBxBm+VF32a3hm?=
 =?us-ascii?Q?F4qmdrP/FhEFl1vD4c8DbOcnOXlsLyFwQCzpj3KIlO1aoeztWuwC116442ec?=
 =?us-ascii?Q?ttR0aILQWMnjCZ4G93Z2PKqtlwlQI9Lqb2fIqjq8VSJsWDhuCKdPaUT9inPh?=
 =?us-ascii?Q?3IKifw44eox6ZNffH/cTlZURcFm1gQOFaWYLcyK/fXOTYsreSK2Wd8AL03v1?=
 =?us-ascii?Q?TPkeSLXkc07eF6WFh5c/282a7OCiAMJiSjR2CZ4+T5GRLX9synAJpNX80WtV?=
 =?us-ascii?Q?g1UOzYZyyv6cZQ+2AZj0crI0upvz344aJ7j/VMZ8mggX582qQrASCLLWuQr7?=
 =?us-ascii?Q?3m3o55PFXBQz/AgpW6K1saI+g2ELy8b7ZehiZj0rAh3X6crUDwnlNPay4ZbW?=
 =?us-ascii?Q?mKEcbbX/XNqHeP+AOzP64/vGLU70ofkYsYahsr36bApHxU4oSoEw91TkYlZq?=
 =?us-ascii?Q?8G4OvQFsGrFqPnJ2OG5sU632dPeFsklwYQMhaeJbpozEi/aAYhiBv1lvD1+V?=
 =?us-ascii?Q?sYK1dglzPCwPb+1vv7tmZE9PLNBbgFLmMfcn7BjM/hBUDLwE6SCj+rjn1R2a?=
 =?us-ascii?Q?z/2b01ta6KopkWGCxwVd05r8148qEw8YW7icIEEgxP18PNINJpGTNe04iRM7?=
 =?us-ascii?Q?czjK5/faVx8yjJ+oB8fEAV3gDjFNP86LCgoebdoEQfMu9NvtYJMSC+H3hlts?=
 =?us-ascii?Q?Q0MYh9UcXiLiPj4NzhIzQUzPkqzEW7R9H6iR6D6RhEpcFxsUQHBTAUScjj+A?=
 =?us-ascii?Q?SveePMWBle0fWcPpH+IHLyWtf964BSNU6abDT937HHPx8PJKsxXn04FqJc0f?=
 =?us-ascii?Q?bmfcHL+0TODCuX3Xu9Rz1apyfuOz3kEz+yMb2TB/28je7EQpDolu9L0npYsR?=
 =?us-ascii?Q?vZq1zHnRU6yoL4OgpZocq/Q=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 87b49a70-1477-43e2-abc2-08d9b31bee20
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 09:37:59.1362
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KhbLpS0ALi/QNNbVmUAFDWtBFm2CsstSiJNuDtThyWkIgesdj5h5+o4iDz6y+qmy0iaJUIvlnNQWI61u/2zBHQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6384

On 26.11.2021 15:28, Andrew Cooper wrote:
> On 26/11/2021 14:21, Jan Beulich wrote:
>> On 26.11.2021 13:33, Andrew Cooper wrote:
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> I understand there's not much to say here, but the title saying just
>> "annotate" without any context as to the purpose of the annotation
>> is too little information imo. I guess this then goes for many more
>> titles in this series.
>=20
> I really couldn't think of anything useful to say.=C2=A0 Lots of these
> patches are entirely mechanical.

Them being mechanical is imo unrelated to having a subject which is
halfway meaningful even if one looks at a shortlog in a couple of
years time. All it would take to disambiguate the titles would look
to be "...: Annotate fnptr targets for CET-IBT". Arguably this arch-
specific feature may be a little odd to encounter in common code
logs, but that's still better than being entirely unspecific about
the purpose of the annotations.

>>> --- a/xen/include/xen/hypercall.h
>>> +++ b/xen/include/xen/hypercall.h
>>> @@ -18,12 +18,12 @@
>>>  #include <asm/hypercall.h>
>>>  #include <xsm/xsm.h>
>>> =20
>>> -extern long
>>> +extern long cf_check
>>>  do_sched_op(
>>>      int cmd,
>>>      XEN_GUEST_HANDLE_PARAM(void) arg);
>> What purpose does the attribute serve on a declaration? On the surface
>> I would consider it meaningful only on definitions, like e.g. __init.
>=20
> Because GCC treats cf_check (and nocf_check) as part of the function
> type.=C2=A0 Simply getting it wrong will yield a "definition doesn't matc=
h
> prototype" error.
>=20
> Furthermore, it needs to be visible across translation units so one TU
> can spot (and complain at) creating a function pointer to a non-local
> non-endbr'd function.

Hmm, it might well be that way, but that's not what the doc (for 11.2)
says. While suggesting things are along the lines of what you say for
"nocf_check", for "cf_check" it really only talks about code generation:
"The cf_check attribute on a function is used to inform the compiler
that ENDBR instruction should be placed at the function entry when
=E2=80=98-fcf-protection=3Dbranch=E2=80=99 is enabled." And even for "nocf_=
check" it talks
about extra compile time checks only when the attribute is applied to a
function pointer variable/field, not when applied to a function.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 09:52:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 09:52:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234412.406820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrdKv-0000na-Dn; Mon, 29 Nov 2021 09:52:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234412.406820; Mon, 29 Nov 2021 09:52:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrdKv-0000nT-Ak; Mon, 29 Nov 2021 09:52:37 +0000
Received: by outflank-mailman (input) for mailman id 234412;
 Mon, 29 Nov 2021 09:52:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=KK+l=QQ=kaod.org=clg@srs-se1.protection.inumbo.net>)
 id 1mrdKt-0000nG-Px
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 09:52:35 +0000
Received: from 4.mo552.mail-out.ovh.net (4.mo552.mail-out.ovh.net
 [178.33.43.201]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00a9dca8-50fa-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 10:52:03 +0100 (CET)
Received: from mxplan5.mail.ovh.net (unknown [10.109.156.217])
 by mo552.mail-out.ovh.net (Postfix) with ESMTPS id 70F5120ADA;
 Mon, 29 Nov 2021 09:52:31 +0000 (UTC)
Received: from kaod.org (37.59.142.104) by DAG4EX1.mxp5.local (172.16.2.31)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Mon, 29 Nov
 2021 10:52:29 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00a9dca8-50fa-11ec-b941-1df2895da90e
Authentication-Results: garm.ovh; auth=pass (GARM-104R005f4bc25ac-e2d5-4f6a-8c28-ebe76ecd031f,
                    3279756C2EB34864E332BB908A933B747C53BE44) smtp.auth=clg@kaod.org
X-OVh-ClientIp: 82.64.250.170
Message-ID: <ee815cd9-03f3-02f2-a269-ad79ca2af742@kaod.org>
Date: Mon, 29 Nov 2021 10:52:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [patch 00/22] genirq/msi, PCI/MSI: Spring cleaning - Part 1
Content-Language: en-US
To: Thomas Gleixner <tglx@linutronix.de>, LKML <linux-kernel@vger.kernel.org>
CC: <linux-hyperv@vger.kernel.org>, Paul Mackerras <paulus@samba.org>,
	<sparclinux@vger.kernel.org>, Wei Liu <wei.liu@kernel.org>, Ashok Raj
	<ashok.raj@intel.com>, Marc Zygnier <maz@kernel.org>, <x86@kernel.org>,
	Christian Borntraeger <borntraeger@de.ibm.com>, Bjorn Helgaas
	<helgaas@kernel.org>, Jason Gunthorpe <jgg@nvidia.com>,
	<linux-pci@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
	<ath11k@lists.infradead.org>, Kevin Tian <kevin.tian@intel.com>, Heiko
 Carstens <hca@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>,
	Megha Dey <megha.dey@intel.com>, Juergen Gross <jgross@suse.com>, Thomas
 Bogendoerfer <tsbogend@alpha.franken.de>, Greg Kroah-Hartman
	<gregkh@linuxfoundation.org>, <linux-mips@vger.kernel.org>,
	<linuxppc-dev@lists.ozlabs.org>
References: <20211126222700.862407977@linutronix.de>
From: =?UTF-8?Q?C=c3=a9dric_Le_Goater?= <clg@kaod.org>
In-Reply-To: <20211126222700.862407977@linutronix.de>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [37.59.142.104]
X-ClientProxiedBy: DAG4EX1.mxp5.local (172.16.2.31) To DAG4EX1.mxp5.local
 (172.16.2.31)
X-Ovh-Tracer-GUID: 03ae1f15-2efb-4469-b086-6ab00679dc25
X-Ovh-Tracer-Id: 11736099157494238108
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvuddrheelgddtlecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefkffggfgfuvfhfhfgjtgfgihesthejredttdefjeenucfhrhhomhepveorughrihgtpgfnvggpifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucggtffrrghtthgvrhhnpefgtdehvdejkefhudevkeekffekleetfeeftdekudeliedujeeftdeikeffvefgfeenucffohhmrghinhepkhgvrhhnvghlrdhorhhgnecukfhppedtrddtrddtrddtpdefjedrheelrddugedvrddutdegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhpohhuthdphhgvlhhopehmgihplhgrnhehrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtoheplhhinhhugihpphgtqdguvghvsehlihhsthhsrdhoiihlrggsshdrohhrgh

On 11/27/21 02:18, Thomas Gleixner wrote:
> The [PCI] MSI code has gained quite some warts over time. A recent
> discussion unearthed a shortcoming: the lack of support for expanding
> PCI/MSI-X vectors after initialization of MSI-X.
> 
> PCI/MSI-X has no requirement to setup all vectors when MSI-X is enabled in
> the device. The non-used vectors have just to be masked in the vector
> table. For PCI/MSI this is not possible because the number of vectors
> cannot be changed after initialization.
> 
> The PCI/MSI code, but also the core MSI irq domain code are built around
> the assumption that all required vectors are installed at initialization
> time and freed when the device is shut down by the driver.
>
> Supporting dynamic expansion at least for MSI-X is important for VFIO so
> that the host side interrupts for passthrough devices can be installed on
> demand.
> 
> This is the first part of a large (total 101 patches) series which
> refactors the [PCI]MSI infrastructure to make runtime expansion of MSI-X
> vectors possible. The last part (10 patches) provide this functionality.
> 
> The first part is mostly a cleanup which consolidates code, moves the PCI
> MSI code into a separate directory and splits it up into several parts.
> 
> No functional change intended except for patch 2/N which changes the
> behaviour of pci_get_vector()/affinity() to get rid of the assumption that
> the provided index is the "index" into the descriptor list instead of using
> it as the actual MSI[X] index as seen by the hardware. This would break
> users of sparse allocated MSI-X entries, but non of them use these
> functions.
> 
> This series is based on 5.16-rc2 and also available via git:
> 
>       git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git msi-v1-part-1
> 
> For the curious who can't wait for the next part to arrive the full series
> is available via:
> 
>       git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git msi-v1-part-4

After fixing the compile failures, I didn't see any regressions on
these platforms :

   PowerNV, pSeries under KVM and PowerVM, using POWER8/9 processors.

Thanks,

C.

> Thanks,
> 
> 	tglx
> ---
>   arch/powerpc/platforms/4xx/msi.c            |  281 ------------
>   b/Documentation/driver-api/pci/pci.rst      |    2
>   b/arch/mips/pci/msi-octeon.c                |   32 -
>   b/arch/powerpc/platforms/4xx/Makefile       |    1
>   b/arch/powerpc/platforms/cell/axon_msi.c    |    2
>   b/arch/powerpc/platforms/powernv/pci-ioda.c |    4
>   b/arch/powerpc/platforms/pseries/msi.c      |    6
>   b/arch/powerpc/sysdev/Kconfig               |    6
>   b/arch/s390/pci/pci_irq.c                   |    4
>   b/arch/sparc/kernel/pci_msi.c               |    4
>   b/arch/x86/hyperv/irqdomain.c               |   55 --
>   b/arch/x86/include/asm/x86_init.h           |    6
>   b/arch/x86/include/asm/xen/hypervisor.h     |    8
>   b/arch/x86/kernel/apic/msi.c                |    8
>   b/arch/x86/kernel/x86_init.c                |   12
>   b/arch/x86/pci/xen.c                        |   19
>   b/drivers/irqchip/irq-gic-v2m.c             |    1
>   b/drivers/irqchip/irq-gic-v3-its-pci-msi.c  |    1
>   b/drivers/irqchip/irq-gic-v3-mbi.c          |    1
>   b/drivers/net/wireless/ath/ath11k/pci.c     |    2
>   b/drivers/pci/Makefile                      |    3
>   b/drivers/pci/msi/Makefile                  |    7
>   b/drivers/pci/msi/irqdomain.c               |  267 +++++++++++
>   b/drivers/pci/msi/legacy.c                  |   79 +++
>   b/drivers/pci/msi/msi.c                     |  645 ++++------------------------
>   b/drivers/pci/msi/msi.h                     |   39 +
>   b/drivers/pci/msi/pcidev_msi.c              |   43 +
>   b/drivers/pci/pci-sysfs.c                   |    7
>   b/drivers/pci/xen-pcifront.c                |    2
>   b/include/linux/msi.h                       |  135 ++---
>   b/include/linux/pci.h                       |    1
>   b/kernel/irq/msi.c                          |   41 +
>   32 files changed, 696 insertions(+), 1028 deletions(-)
> 



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 10:00:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 10:00:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234453.406846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrdSV-0002jG-HU; Mon, 29 Nov 2021 10:00:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234453.406846; Mon, 29 Nov 2021 10:00:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrdSV-0002j9-Dc; Mon, 29 Nov 2021 10:00:27 +0000
Received: by outflank-mailman (input) for mailman id 234453;
 Mon, 29 Nov 2021 10:00:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrdST-0002ii-IO
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 10:00:25 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2bce02b6-50fb-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 11:00:24 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2111.outbound.protection.outlook.com [104.47.18.111]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-10-hX6FIXuFNAS989J4AB45ow-1; Mon, 29 Nov 2021 11:00:23 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7040.eurprd04.prod.outlook.com (2603:10a6:800:121::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Mon, 29 Nov
 2021 10:00:20 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 10:00:20 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 FR2P281CA0031.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::18) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4755.8 via Frontend Transport; Mon, 29 Nov 2021 10:00:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2bce02b6-50fb-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638180024;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=jG8AhtBDRRcMyRtVGV59ZIU8UpWhKBINwJ4IUh9UZcU=;
	b=RHtOuOGPMCj70517Ag04KFwcrxyZrP6u38YOM3/Wutc2Plg65/UK5hQcKaW/uH0cNArkVe
	HDbd0r6zKha8Dn3Oeji8ojRnbLCCRq1TOVoSeWFYDOGOvW9+tHJAbaoqmz/C+bJ67VQEdt
	lloEVTCTtXmlJNWjX/mpP4L9xc8i7po=
X-MC-Unique: hX6FIXuFNAS989J4AB45ow-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZWwY7z0ziOIx2vEk7x7edFdjhChzGQpFsAawWZq58a6jZlvmUxGETlaR7X3DpvPSW6EYsHP+lf27aTYjUBAbjtFh1PRpj0LkkPy71fOJicjl/aj6jLAMlmXsnZDtQWHcyD0EaNVGhG26g4ke1AmP18qXkxkhyvyQFgfzgesAq8yStmQRF167xUhJjncsrQfDGj6AiEDzYbdyplKO4bWmTDgRy1K1Wtzr/Q4Tinb+j9X6YfOaVKO67191sHnVgugT5LsSZZIovwB52eSePUl5vrIe9VD0b4Uq70cC1Bq7BPW6aqIcq2hm1p5dUX1iZ5YJ10q3VWBpOdnK2xzD1bx+5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aZKBDxTqKsls/uh0vURMMbSNeSqGv9vY49BuzjTpkOM=;
 b=AVgejFsl6qc3KFKZbi5WT7fEUgYwzN2u8Rn2eyS/N64JwjKrOUmdGEH5+00y7hl1pTh1nLIGDVCwnHNn5dGxlsznjR7FkgmJQBbcBHicHlyADTp38jkAdnpOAPwWnQLMYIVwQRV7Lo2Nm0q25ILx1pecgVgESf47+mT6Ca8zx+QJf9N37BanlXLvOhL93UIAweJn82zV4Ya0OYnMXPgspkcaQuYcl1oNi2DmcHu17NR9FBNdS5Oc/oD/Q0PUQCu1Y43CB9L4f5SYp4TQCAsgYsous4oF5KOjUcOAYYt1ZwX1GnHucGLhYi30eNH5lSTYa5lqNoFreqPMbY8ZQYb1bg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <3afa7371-9511-6e41-76a0-dbd93e91d0d5@suse.com>
Date: Mon, 29 Nov 2021 11:00:21 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 04/65] x86/hypercall: Annotate fnptr targets
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-5-andrew.cooper3@citrix.com>
 <374c6213-4319-91ba-6b69-c695d4b2cd87@suse.com>
 <02af4393-8b31-960e-c509-012b3ce09703@srcf.net>
 <1b9a0370-a55f-f773-2dd8-f3398685c9a5@suse.com>
In-Reply-To: <1b9a0370-a55f-f773-2dd8-f3398685c9a5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: FR2P281CA0031.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:14::18) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 93231251-9611-4346-7825-08d9b31f0d3b
X-MS-TrafficTypeDiagnostic: VI1PR04MB7040:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7040489AFD1A3AE1409D8B70B3669@VI1PR04MB7040.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	C5iCnUsFJm9hEHEtuZM1cu2KoAljM228F45ui1J7oF1IT2jjgkdhE6jb/iikyzWVA1mV84lN8Z5dW6BN4roD7cSFo313UTUAtg7pUowET6Uy8YDFJKR9Z+s94WbLmX+u8vrbcwQQCuuOxns/oEV94+EgX6c2GKvQjvuiftX4oNk2oR6fzS+kfy+oL2u4n6CLeqm76RLrE1lQnCg9CXCcX7iJCRkmIqx9hTO9eABlZ9ElDeFGKpprW/A0HgUN7eRjI6B2LpLdHLERsNQdvReiU7vDRCXCXdLPOZWOA5fMxdyDMv5f5edUT6tY9ietFb5Qlrlj+CU1B3fw4PdPGOLlyqPWjNByCkefE3AENaY59UuwhZKtWGKGVJQTUkpmuXgBhoj9+VjZwyhyk4oPWYiTSajiDd5Gr02aQ72AInMfWv//UhVQo9bNugmn55sthc34jKyOKPoFNt2nIdwWI2v0YD01qytqzvwxXHxNG2Ccto8Y+jD6PFmT9h+IQp11PYWeRbl7FheM6BAw7ikmJWszlw96rQvvy71WBF2xVEsL7b2VpDT+uCAn731Vql+avjJqULuxksTZvFifJrke7bRanPGsu+lvjLGieIKSOOn4m6uaSbOtW1pnvxLjYmiD1smzkpW3vWNM0OY9D0RuAj3ibtaSgMBw8qEFwqYP+j8E3Js1eJFwg6Lff0Ap6lBxW9N0zaAdl4cP52lHzfgU2fDBOSaNBWGEFypbiYG7Jc7SgNI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(5660300002)(2906002)(956004)(26005)(8936002)(31686004)(2616005)(53546011)(31696002)(8676002)(6486002)(16576012)(86362001)(186003)(36756003)(38100700002)(54906003)(66476007)(110136005)(66556008)(6666004)(316002)(4326008)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?SPy2ac4unVNdNJFai1zWIx7NaNPpXBua0Xy/jw0rrJnhTlQCg93Vpm9kWv/9?=
 =?us-ascii?Q?VRAHzlC96cy7wwyamJQe16gwe+9Ei7xe58dWqDcFnAkGF4Cy6DDbgGV8t2Mu?=
 =?us-ascii?Q?XcJ6+69HC7mA/QJsIregV6DqmAvoFAqDpbxIBvi9C0peUvb3sqGnmmTwLFNR?=
 =?us-ascii?Q?xQNyn0oI8HZtuXJhmP1COx/nqOYCEof9wr0EPzaDW0wYLcEuOmtwpL3bSMJh?=
 =?us-ascii?Q?7q4Wl1xEXLxnjNQBrtOWIO4nEDKEWpBghpBBSNmTV6smskw/IRhE8a51Uifb?=
 =?us-ascii?Q?5K4sdq1fZxgLvvXh/7/Ei/CIiYc6npMr2P7OMQ3lNiX1sydbSVlExgbztCYN?=
 =?us-ascii?Q?2shuJaa6TesPnHhDWIcVLsLRp6iRoPOdV4PJJ727dEJq4szUCjCVk3qmCsz2?=
 =?us-ascii?Q?lV3/DB8gAraQ601OKc16hZy+87mOCIg64TszB9asaMwP0m6Gj5++yEACigdL?=
 =?us-ascii?Q?UelAVNWZFzcxyVLz0t6REh3IdD/AND2Igz5PR7P9qLUUvhSoKbmN2bp4nHxY?=
 =?us-ascii?Q?PFX4rI6mE1/mS8XTY/ZxFFS3N5M/DxiSJ26z80EtGtKwnkcOEDp9bhJq0td2?=
 =?us-ascii?Q?f0Rw2Wz0VHygjbp2Xj1kWGEl4XaXcXHwdxQNmrkL2e8T7FokpA+clj/0EvVr?=
 =?us-ascii?Q?5b0P8Psvr0LM9Uah7RBhALWSGeVXmaej3F4QHjKfX++hQzjb2lpcWbtWELXL?=
 =?us-ascii?Q?sCB5a2dmuURRSrZac7bfBs8aaNTdn+uuRJlpzMIwi7XBiHWrB+4uIVehx76g?=
 =?us-ascii?Q?fQdcXKJDfloWkZdmxPRFfLeLjEErse9Iqy/Jd0ulSCo4+dWR3PvEqkGsLNK/?=
 =?us-ascii?Q?jDAilCyFWL49oii/ptg0sRxpBonV9dR3F1QUAmMZGR2WeI7BM764ykSMFeJH?=
 =?us-ascii?Q?cvl/uf39taT7egfYDRTvDvCqQrSX82grgP6xqOc5ikTq1iEq4Ii8PFkatx0x?=
 =?us-ascii?Q?Aourgy79AyVHlS2fkQKaLzNVOMOS3kQEtBv6Cl/8vGfhN4IcVfUKAfjzzlOk?=
 =?us-ascii?Q?2E2gKi+7YSTQObIcEraFqPUwCiwQ5x7sM+DsvGtPoewJtW9YdTnyKQTsjUto?=
 =?us-ascii?Q?cbiZ74c+ynUzyszvnMogoGQL576EJIqcOOTgXIM6lmmCzjeZJ5JTBtyOIDjb?=
 =?us-ascii?Q?wwt9V/FciYwfJjmGG8ZjELZpkmEZ5BWjwXAwCzAd5Zxyc16GThKzVihYmajJ?=
 =?us-ascii?Q?KPMY6esrHvgJnUkQWfGx/r7DODW4Py1h9MoiXWNE+PwrgxDIEUy2840IOe83?=
 =?us-ascii?Q?ftlsVRbgttMLjTpLWb158G1mRU5TlOgBE6aBI8mtrIgOC/3kTLy1dqhrM8yi?=
 =?us-ascii?Q?lyohuxj3xtKMfJOZGWkf/ke1V7oOs/lckVnTY6tCTWldnlHQsSGkrNJhc0YE?=
 =?us-ascii?Q?vY8df2TCiQMWFEf7RUg65Y0oixE5lge0VTDYvrTXsxhD+05UqW4l0ZL30EZD?=
 =?us-ascii?Q?hhjRvNoKL9m+mPFWFxZmOGw+xWcEJscVg+Shwyg2tKoEm9whEUXzpL6BbC/+?=
 =?us-ascii?Q?KLsmF73VBOtXeEJYLQpwUZZKpXoVd1TCIGEsz2DimnkchNmLlsqcXPdcOKox?=
 =?us-ascii?Q?ENcCcEi6BCFnVSKzKV3VtBWCxJvEnIHo+hWQfxxQmuQ1pjRgCsCcKZOkbAK1?=
 =?us-ascii?Q?+/5egpnbYZZEne1QEFczAs4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 93231251-9611-4346-7825-08d9b31f0d3b
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 10:00:19.9673
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DcaGtsdK890K7QpxqfeqDcOXierzHPtJEpuv+JN09EkQ8U3rE63AQFsOom9geHMdriqHcvI3wOgXc3uuMu+GqQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7040

On 29.11.2021 10:38, Jan Beulich wrote:
> On 26.11.2021 15:28, Andrew Cooper wrote:
>> On 26/11/2021 14:21, Jan Beulich wrote:
>>> On 26.11.2021 13:33, Andrew Cooper wrote:
>>>> --- a/xen/include/xen/hypercall.h
>>>> +++ b/xen/include/xen/hypercall.h
>>>> @@ -18,12 +18,12 @@
>>>>  #include <asm/hypercall.h>
>>>>  #include <xsm/xsm.h>
>>>> =20
>>>> -extern long
>>>> +extern long cf_check
>>>>  do_sched_op(
>>>>      int cmd,
>>>>      XEN_GUEST_HANDLE_PARAM(void) arg);
>>> What purpose does the attribute serve on a declaration? On the surface
>>> I would consider it meaningful only on definitions, like e.g. __init.
>>
>> Because GCC treats cf_check (and nocf_check) as part of the function
>> type.=C2=A0 Simply getting it wrong will yield a "definition doesn't mat=
ch
>> prototype" error.
>>
>> Furthermore, it needs to be visible across translation units so one TU
>> can spot (and complain at) creating a function pointer to a non-local
>> non-endbr'd function.
>=20
> Hmm, it might well be that way, but that's not what the doc (for 11.2)
> says. While suggesting things are along the lines of what you say for
> "nocf_check", for "cf_check" it really only talks about code generation:
> "The cf_check attribute on a function is used to inform the compiler
> that ENDBR instruction should be placed at the function entry when
> =E2=80=98-fcf-protection=3Dbranch=E2=80=99 is enabled." And even for "noc=
f_check" it talks
> about extra compile time checks only when the attribute is applied to a
> function pointer variable/field, not when applied to a function.

The two attributes looks to indeed be as different as the doc suggests,
after some experimenting. But I now understand that's what patch 56 is
about.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 10:22:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 10:22:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234467.406862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrdnK-0005Ak-Bc; Mon, 29 Nov 2021 10:21:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234467.406862; Mon, 29 Nov 2021 10:21:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrdnK-0005Ad-8J; Mon, 29 Nov 2021 10:21:58 +0000
Received: by outflank-mailman (input) for mailman id 234467;
 Mon, 29 Nov 2021 10:21:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GXrI=QQ=alpha.franken.de=tsbogend@srs-se1.protection.inumbo.net>)
 id 1mrdnJ-0005AX-C9
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 10:21:57 +0000
Received: from elvis.franken.de (elvis.franken.de [193.175.24.41])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 1a4bdde7-50fe-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 11:21:23 +0100 (CET)
Received: from uucp (helo=alpha)
 by elvis.franken.de with local-bsmtp (Exim 3.36 #1)
 id 1mrdmz-0004dt-00; Mon, 29 Nov 2021 11:21:37 +0100
Received: by alpha.franken.de (Postfix, from userid 1000)
 id 5E79DC2F89; Mon, 29 Nov 2021 11:21:16 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a4bdde7-50fe-11ec-b941-1df2895da90e
Date: Mon, 29 Nov 2021 11:21:16 +0100
From: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>, Bjorn Helgaas <helgaas@kernel.org>,
	Marc Zygnier <maz@kernel.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	Kevin Tian <kevin.tian@intel.com>, Jason Gunthorpe <jgg@nvidia.com>,
	Megha Dey <megha.dey@intel.com>, Ashok Raj <ashok.raj@intel.com>,
	linux-pci@vger.kernel.org, linux-mips@vger.kernel.org,
	Michael Ellerman <mpe@ellerman.id.au>,
	Paul Mackerras <paulus@samba.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linuxppc-dev@lists.ozlabs.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	sparclinux@vger.kernel.org, x86@kernel.org,
	xen-devel@lists.xenproject.org, ath11k@lists.infradead.org,
	Wei Liu <wei.liu@kernel.org>, linux-hyperv@vger.kernel.org,
	Juergen Gross <jgross@suse.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>
Subject: Re: [patch 09/22] MIPS: Octeon: Use arch_setup_msi_irq()
Message-ID: <20211129102116.GA6158@alpha.franken.de>
References: <20211126222700.862407977@linutronix.de>
 <20211126223824.618089023@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20211126223824.618089023@linutronix.de>
User-Agent: Mutt/1.10.1 (2018-07-13)

On Sat, Nov 27, 2021 at 02:18:48AM +0100, Thomas Gleixner wrote:
> The core code provides the same loop code except for the MSI-X reject. Move
> that to arch_setup_msi_irq() and remove the duplicated code.
> 
> No functional change.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> Cc: linux-mips@vger.kernel.org
> ---
>  arch/mips/pci/msi-octeon.c |   32 +++-----------------------------
>  1 file changed, 3 insertions(+), 29 deletions(-)
> 
> --- a/arch/mips/pci/msi-octeon.c
> +++ b/arch/mips/pci/msi-octeon.c
> @@ -68,6 +68,9 @@ int arch_setup_msi_irq(struct pci_dev *d
>  	u64 search_mask;
>  	int index;
>  
> +	if (desc->pci.msi_attrib.is_msix)
> +		return -EINVAL;
> +
>  	/*
>  	 * Read the MSI config to figure out how many IRQs this device
>  	 * wants.  Most devices only want 1, which will give
> @@ -182,35 +185,6 @@ int arch_setup_msi_irq(struct pci_dev *d
>  	return 0;
>  }
>  
> -int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
> -{
> -	struct msi_desc *entry;
> -	int ret;
> -
> -	/*
> -	 * MSI-X is not supported.
> -	 */
> -	if (type == PCI_CAP_ID_MSIX)
> -		return -EINVAL;
> -
> -	/*
> -	 * If an architecture wants to support multiple MSI, it needs to
> -	 * override arch_setup_msi_irqs()
> -	 */
> -	if (type == PCI_CAP_ID_MSI && nvec > 1)
> -		return 1;
> -
> -	for_each_pci_msi_entry(entry, dev) {
> -		ret = arch_setup_msi_irq(dev, entry);
> -		if (ret < 0)
> -			return ret;
> -		if (ret > 0)
> -			return -ENOSPC;
> -	}
> -
> -	return 0;
> -}
> -
>  /**
>   * Called when a device no longer needs its MSI interrupts. All
>   * MSI interrupts for the device are freed.

Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

-- 
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 10:27:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 10:27:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234472.406873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrdsR-0005qc-Vz; Mon, 29 Nov 2021 10:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234472.406873; Mon, 29 Nov 2021 10:27:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrdsR-0005qV-Rx; Mon, 29 Nov 2021 10:27:15 +0000
Received: by outflank-mailman (input) for mailman id 234472;
 Mon, 29 Nov 2021 10:27:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K9yz=QQ=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mrdsR-0005qP-4D
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 10:27:15 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d799a3cc-50fe-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 11:26:42 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:50154)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mrdsO-000NYV-gv (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 29 Nov 2021 10:27:12 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id D42521FC54;
 Mon, 29 Nov 2021 10:27:11 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d799a3cc-50fe-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <89f31e12-6d68-881e-0622-bb19a80641dc@srcf.net>
Date: Mon, 29 Nov 2021 10:27:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 01/65] x86: Introduce support for CET-IBT
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-2-andrew.cooper3@citrix.com>
 <fb030726-c3c1-9225-08a9-8e2c37281962@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <fb030726-c3c1-9225-08a9-8e2c37281962@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/11/2021 09:27, Jan Beulich wrote:
> On 26.11.2021 13:33, Andrew Cooper wrote:
>> --- a/xen/arch/x86/arch.mk
>> +++ b/xen/arch/x86/arch.mk
>> @@ -46,6 +46,12 @@ CFLAGS-$(CONFIG_INDIRECT_THUNK) += -mindirect-branch=thunk-extern
>>  CFLAGS-$(CONFIG_INDIRECT_THUNK) += -mindirect-branch-register
>>  CFLAGS-$(CONFIG_INDIRECT_THUNK) += -fno-jump-tables
>>  
>> +ifdef CONFIG_HAS_CC_CET_IBT
>> +CFLAGS += -fcf-protection=branch -mmanual-endbr
> Don't you mean to check XEN_IBT here rather than the underlying
> compiler capability?

I did, and elsewhere in the patch (already fixed up).  I added
CONFIG_XEN_IBT rather late in the dev cycle, and missed a few conversions.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 11:35:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 11:35:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234480.406887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrevv-0004BR-28; Mon, 29 Nov 2021 11:34:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234480.406887; Mon, 29 Nov 2021 11:34:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrevu-0004BK-V1; Mon, 29 Nov 2021 11:34:54 +0000
Received: by outflank-mailman (input) for mailman id 234480;
 Mon, 29 Nov 2021 11:34:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zy8G=QQ=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mrevt-0004BE-Pp
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 11:34:53 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5db4c988-5108-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 12:34:51 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id k23so33881988lje.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Nov 2021 03:34:51 -0800 (PST)
Received: from [192.168.2.145] (94-29-46-111.dynamic.spd-mgts.ru.
 [94.29.46.111])
 by smtp.googlemail.com with ESMTPSA id n2sm131579ljq.30.2021.11.29.03.34.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Nov 2021 03:34:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5db4c988-5108-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=euaa0MK3qpl38vu/xm/JZntaVOCHcXyS5pdHcr9Cv9Y=;
        b=j7IepB0c7QsF+gZGn8sLWlXDCQr83Yhq9Uwq9fJmgvQdhWWCer0J3Db/gwAG0Blu3V
         KLIiDLWANtPW2sX+O/m2jQqBDLC+4NfkDAxYnlnBfxi7qlePYrZZysw0Kj4NFPMagEe7
         5Z58UnljUl1PUrtNNqQtNaR8rjEOAOjAptz9aZ81TzHnOGVzQL+Ka518l0o45nrM05c1
         wTSb3kazkFWdVLhzdtamDwO56fb5XsgOF41m+pkkrOCbpYLS/NmBUtznRV2wcvObV+eX
         /QUCocD7Th3AP/6bIoc90HuBDrH/5Le5nNAAFps88ziv0187Td+CIqcDZxoQmDkSEFJt
         ILjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=euaa0MK3qpl38vu/xm/JZntaVOCHcXyS5pdHcr9Cv9Y=;
        b=cmMFXfKuwsyrQjfe43hHougcmfsoD4SOE8lbsDQcZjz0UWxSVZTGlh3oT+EJ1scquI
         EsD261EPVu/jtk/76NhNxtzGYgc8Bd136l/b3XZD/zn8rNwv28/O6FJmLFYwMNz8lHGh
         hqdsC7VH3MqW22HKMkiLwRPRKlbUuQlkaB7elpmH//4R5hOQhvrw+XrfQHrtUTHdDuNy
         B+SJKx622/q3U/24gTHzXslaOdlkNhY9X1DJZkhLvFlS/sXFtletrqAEiKOeNVIyiPPm
         o9qUgxG6brh/5zMgCNGO51HGNFEKVToFd2vFhnxtmVx9MwQUzRMemLjvptSoTEOnsueu
         aDOA==
X-Gm-Message-State: AOAM530251nwqZBXSGToxQNYqcmiyWCJXvZVSkie1MOKwLZxMIdie5Rh
	BfEeRRdfPnoVed5VSiPoSmU=
X-Google-Smtp-Source: ABdhPJzVpycz41Q2saZagDnrHTPX3H5Cn8S9UMBEs5Q4UAjlx4ArmiP2PAHXWXd2FxMxn0TZfV9KEQ==
X-Received: by 2002:a2e:814b:: with SMTP id t11mr47973901ljg.171.1638185691187;
        Mon, 29 Nov 2021 03:34:51 -0800 (PST)
Subject: Re: [PATCH v4 05/25] reboot: Warn if restart handler has duplicated
 priority
To: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= <mirq-linux@rere.qmqm.pl>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
 Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer
 <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Sebastian Reichel <sre@kernel.org>, Linus Walleij
 <linus.walleij@linaro.org>, Philipp Zabel <p.zabel@pengutronix.de>,
 Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>,
 Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
 "K . C . Kuen-Chern Lin" <kclin@andestech.com>,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
 linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-6-digetx@gmail.com> <YaLNOJTM+lVq+YNS@qmqm.qmqm.pl>
 <033ddf2a-6223-1a82-ec64-30f17c891f67@gmail.com>
 <YaQeQgbW+CjEdsqG@qmqm.qmqm.pl>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <091321ea-4919-0579-88a8-23d05871575d@gmail.com>
Date: Mon, 29 Nov 2021 14:34:40 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YaQeQgbW+CjEdsqG@qmqm.qmqm.pl>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

29.11.2021 03:26, Michał Mirosław пишет:
> On Mon, Nov 29, 2021 at 12:06:19AM +0300, Dmitry Osipenko wrote:
>> 28.11.2021 03:28, Michał Mirosław пишет:
>>> On Fri, Nov 26, 2021 at 09:00:41PM +0300, Dmitry Osipenko wrote:
>>>> Add sanity check which ensures that there are no two restart handlers
>>>> registered with the same priority. Normally it's a direct sign of a
>>>> problem if two handlers use the same priority.
>>>
>>> The patch doesn't ensure the property that there are no duplicated-priority
>>> entries on the chain.
>>
>> It's not the exact point of this patch.
>>
>>> I'd rather see a atomic_notifier_chain_register_unique() that returns
>>> -EBUSY or something istead of adding an entry with duplicate priority.
>>> That way it would need only one list traversal unless you want to
>>> register the duplicate anyway (then you would call the older
>>> atomic_notifier_chain_register() after reporting the error).
>>
>> The point of this patch is to warn developers about the problem that
>> needs to be fixed. We already have such troubling drivers in mainline.
>>
>> It's not critical to register different handlers with a duplicated
>> priorities, but such cases really need to be corrected. We shouldn't
>> break users' machines during transition to the new API, meanwhile
>> developers should take action of fixing theirs drivers.
>>
>>> (Or you could return > 0 when a duplicate is registered in
>>> atomic_notifier_chain_register() if the callers are prepared
>>> for that. I don't really like this way, though.)
>>
>> I had a similar thought at some point before and decided that I'm not in
>> favor of this approach. It's nicer to have a dedicated function that
>> verifies the uniqueness, IMO.
> 
> I don't like the part that it traverses the list second time to check
> the uniqueness. But actually you could avoid that if
> notifier_chain_register() would always add equal-priority entries in
> reverse order:
> 
>  static int notifier_chain_register(struct notifier_block **nl,
>  		struct notifier_block *n)
>  {
>  	while ((*nl) != NULL) {
>  		if (unlikely((*nl) == n)) {
>  			WARN(1, "double register detected");
>  			return 0;
>  		}
> -		if (n->priority > (*nl)->priority)
> +		if (n->priority >= (*nl)->priority)
>  			break;
>  		nl = &((*nl)->next);
>  	}
>  	n->next = *nl;
>  	rcu_assign_pointer(*nl, n);
>  	return 0;
>  }
> 
> Then the check for uniqueness after adding would be:
> 
>  WARN(nb->next && nb->priority == nb->next->priority);

We can't just change the registration order because invocation order of
the call chain depends on the registration order and some of current
users may rely on that order. I'm pretty sure that changing the order
will have unfortunate consequences.


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 11:52:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 11:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234486.406897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfD4-0006Tg-KE; Mon, 29 Nov 2021 11:52:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234486.406897; Mon, 29 Nov 2021 11:52:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfD4-0006TZ-Gh; Mon, 29 Nov 2021 11:52:38 +0000
Received: by outflank-mailman (input) for mailman id 234486;
 Mon, 29 Nov 2021 11:52:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zy8G=QQ=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mrfD3-0006TT-3M
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 11:52:37 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8429d1a-510a-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 12:52:36 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id n12so43919708lfe.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Nov 2021 03:52:36 -0800 (PST)
Received: from [192.168.2.145] (94-29-46-111.dynamic.spd-mgts.ru.
 [94.29.46.111])
 by smtp.googlemail.com with ESMTPSA id o15sm1323059lfd.164.2021.11.29.03.52.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Nov 2021 03:52:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8429d1a-510a-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=iWUEeMgXKbO77AD47foBEfa7mbQmssJKLzk8yjSOYSY=;
        b=U2tIEVQPLPCeMdCu1GCSmBGmgd4b3cE0YUaVA7Ptat003bULsFRIKB0ShMWsNVLpnC
         gIiNSuaR89vPD5NvBHVAJptiz6fEnTOzANkyKGw87fayadLAwoS9823DcSjh7ICj4+z3
         8BMKd+pKMrfT65KNK+2vA4wn0Ab/36kY6JZj8X/gHMh+mTKic7nzZ9Q5pTe+scSSAMrR
         oGXpQFc+Y/9JY1X3lRTxbgKArCnrSUBW7q8iJYRRAFJ8bg8FkN1DAbSGthXoerdFc3rX
         j1XUuuRyr6MK1Wp6xTbZoTqp3eksfHnUZLI3T8PZzPTIBG4u+ANjjJp1zdOJ3alnPslD
         h0Pg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=iWUEeMgXKbO77AD47foBEfa7mbQmssJKLzk8yjSOYSY=;
        b=iX+ubFz9L6YCyuzfXVSq4Lv6hGW9dk5Dwa/+rduzdLPIwo7Oz1V526i8Si/3rN/WdC
         v5NQAtKQX1cYvhP+iefvNaL7s/piOXZkJBolAX5b1iB0Z8NzJZtJEvEci2EIM2ki1p/M
         R6NCPUhBK7sxJqlCRUmtutVoQK7PTpfo8PhftOQPHMjnFnwYh5EnZYa6oYUUrLEm4UEU
         49Otj99HpICZD01odWC9b5OIdKeRSkwcqBXMq6MTai34KEUuP6Gf7KjNBNkNyW9cVYSb
         QaTT1WJs13URiH9CGePAM5cYbMs9aKWwxsGCaeerJYH7zFDzZK4IDMLjMaSBjLcsiIeD
         +tvQ==
X-Gm-Message-State: AOAM530heFWV1c5oTHhRYlfNW2gNJAz369niy8lY3i2qT225OiyhD+Re
	PZDO73MQJQ/wr1zd7w7CxLc=
X-Google-Smtp-Source: ABdhPJyV4a2kK7Hf+W0BvWJCYp3tm9l5nhuE3mizXVMpliBSqh/r6CyMfNuIh0FZ0TT44eUwwVCrkw==
X-Received: by 2002:a05:6512:3a91:: with SMTP id q17mr46080008lfu.425.1638186755724;
        Mon, 29 Nov 2021 03:52:35 -0800 (PST)
Subject: Re: [PATCH v4 08/25] kernel: Add combined power-off+restart handler
 call chain API
To: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= <mirq-linux@rere.qmqm.pl>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
 Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer
 <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Sebastian Reichel <sre@kernel.org>, Linus Walleij
 <linus.walleij@linaro.org>, Philipp Zabel <p.zabel@pengutronix.de>,
 Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>,
 Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>, alankao@andestech.com,
 "K . C . Kuen-Chern Lin" <kclin@andestech.com>,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org,
 linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org
References: <20211126180101.27818-1-digetx@gmail.com>
 <20211126180101.27818-9-digetx@gmail.com> <YaLQqks8cB0vWp6Q@qmqm.qmqm.pl>
 <9213569e-0f40-0df1-4710-8dab564e12d6@gmail.com>
 <YaPx0kY7poGpwCL9@qmqm.qmqm.pl>
 <1fa2d9d5-f5f6-77f5-adf6-827921acce49@gmail.com>
 <YaQgiLw03lPyvuhr@qmqm.qmqm.pl>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <33d1dfa7-e90e-d174-7375-836c15e7f818@gmail.com>
Date: Mon, 29 Nov 2021 14:52:25 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YaQgiLw03lPyvuhr@qmqm.qmqm.pl>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

29.11.2021 03:36, Michał Mirosław пишет:
> On Mon, Nov 29, 2021 at 12:53:51AM +0300, Dmitry Osipenko wrote:
>> 29.11.2021 00:17, Michał Mirosław пишет:
>>>> I'm having trouble with parsing this comment. Could you please try to
>>>> rephrase it? I don't see how you could check whether power-off handler
>>>> is available if you'll mix all handlers together.
>>> If notify_call_chain() would be fixed to return NOTIFY_OK if any call
>>> returned NOTIFY_OK, then this would be a clear way to gather the
>>> answer if any of the handlers will attempt the final action (reboot or
>>> power off).
>> Could you please show a code snippet that implements your suggestion?
> 
> A rough idea is this:
> 
>  static int notifier_call_chain(struct notifier_block **nl,
>  			       unsigned long val, void *v,
>  			       int nr_to_call, int *nr_calls)
>  {
> -	int ret = NOTIFY_DONE;
> +	int ret, result = NOTIFY_DONE;
>  	struct notifier_block *nb, *next_nb;
>  
>  	nb = rcu_dereference_raw(*nl);
>  
>  	while (nb && nr_to_call) {
> ...
>  		ret = nb->notifier_call(nb, val, v);
> +
> +		/* Assuming NOTIFY_STOP-carrying return is always greater than non-stopping one. */
> +		if (result < ret)
> +			result = ret;
> ... 
>  	}
> -	return ret;
> +	return result;
>  }
> 
> Then:
> 
> bool prepare_reboot()
> {
> 	int ret = xx_notifier_call_chain(&shutdown_notifier, PREPARE_REBOOT, ...);
> 	return ret == NOTIFY_OK;
> }
> 
> And the return value would signify whether the reboot will be attempted
> when calling the chain for the REBOOT action. (Analogously for powering off.)

If you started to execute call chain, then you began the power-off /
restart sequence, this is a point of no return. Sorry, I still don't
understand what you're trying to achieve.

The approach of having separate call chains is simple and intuitive, I
don't see reasons to change it.


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 11:55:09 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 11:55:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234492.406908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfFV-00079q-4A; Mon, 29 Nov 2021 11:55:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234492.406908; Mon, 29 Nov 2021 11:55:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfFV-00079j-1L; Mon, 29 Nov 2021 11:55:09 +0000
Received: by outflank-mailman (input) for mailman id 234492;
 Mon, 29 Nov 2021 11:55:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gxoR=QQ=linaro.org=lee.jones@srs-se1.protection.inumbo.net>)
 id 1mrfFT-00079W-MB
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 11:55:07 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31d07c35-510b-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 12:55:06 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id c4so36156751wrd.9
 for <xen-devel@lists.xenproject.org>; Mon, 29 Nov 2021 03:55:06 -0800 (PST)
Received: from google.com ([2.31.167.18])
 by smtp.gmail.com with ESMTPSA id y15sm16736665wry.72.2021.11.29.03.55.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Nov 2021 03:55:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31d07c35-510b-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:content-transfer-encoding:in-reply-to;
        bh=VVOPTlZ25TG0A/D/zPlBV/5uhzVs33QmnMBQ/KVuzok=;
        b=lkwhQKXAkPk/45MOJA8n7UmDgKAdLF4A1HrNaCp2DAoqL5jLTFjou3x32wDBBU6GIT
         yI/CJhxLCUTnAb5/Em/j6rhcsE0aVo3sMd3LYPxdE5+hC1/mTgxkJqsMs5FMlUOo6mFj
         p7BNzyn9xjUhYwkgG5BzPtj9HurcHm+ccwOPwS4lv9ee0Rp8UDrMmrydCXbQHsTaZXjk
         xJu5xIGGnwbHMKU206LqjROnwejVkM/SZiOAqwNOvL8q0Fxve51MyLPqAjPb4PZY1YMm
         QSzNrZA4BSS9QFja3wZ8ES46Bccp24Bd6Zbx0NoBWxwAbV7Rw05PPAukg5XBBny7eyFr
         nlLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:content-transfer-encoding
         :in-reply-to;
        bh=VVOPTlZ25TG0A/D/zPlBV/5uhzVs33QmnMBQ/KVuzok=;
        b=Zcv57zN92HFqlVki8xdcS3xSG8TDp82hkxQytZcALqk1Ol6T3nbLD/k/NB9Bsb4TYE
         i7xQLcGtNv2aSsahdyh6TfqtMuJzHKaD713FoxY1uyMnf1JAAu4K3JGWORmovmuEe912
         oSxWlDxjzm0z2VNMhxhPW/a4azIwxtJTGu4exGvbzJ29k4Wm6gg79W9JiAheWBPTePKg
         weTOvczkpicdmNkATph6ER08JkKgllVovTYltYPXUUikTnGfvoDTwRCw93KSLwLEgPoZ
         t1scgOfCyt7Vd2h1kO5fnrLIgGMRPj7u1/f8IIW8riK8VAFv8jpxde1FsthD25wcawOw
         M37Q==
X-Gm-Message-State: AOAM531kdTXGITil1AvDlQ4/b9K6G6A7cX6ue0rFFGd0yRt6stL14sUR
	JwvXPeiglDHTvCT4ctKVameZJQ==
X-Google-Smtp-Source: ABdhPJzBdvU2Vc8uq5wk1K9UX3j47S9iY7roSh9nDqHEi2kZs1JBlBSlXeazNTFhoQ+QITHlIyszPw==
X-Received: by 2002:adf:e742:: with SMTP id c2mr32868966wrn.498.1638186905995;
        Mon, 29 Nov 2021 03:55:05 -0800 (PST)
Date: Mon, 29 Nov 2021 11:55:01 +0000
From: Lee Jones <lee.jones@linaro.org>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Mark Brown <broonie@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Russell King <linux@armlinux.org.uk>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Guo Ren <guoren@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Ungerer <gerg@linux-m68k.org>,
	Joshua Thompson <funaho@jurai.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Chen-Yu Tsai <wens@csie.org>,
	Jonathan =?iso-8859-1?Q?Neusch=E4fer?= <j.neuschaefer@gmx.net>,
	Tony Lindgren <tony@atomide.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Vladimir Zapolskiy <vz@mleia.com>,
	Avi Fishman <avifishman70@gmail.com>,
	Tomer Maimon <tmaimon77@gmail.com>,
	Tali Perry <tali.perry1@gmail.com>,
	Patrick Venture <venture@google.com>, Nancy Yuen <yuenn@google.com>,
	Benjamin Fair <benjaminfair@google.com>,
	Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
	linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
	openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH v2 28/45] mfd: rn5t618: Use devm_register_power_handler()
Message-ID: <YaS/lStp2b8GhVxw@google.com>
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-29-digetx@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20211027211715.12671-29-digetx@gmail.com>

On Thu, 28 Oct 2021, Dmitry Osipenko wrote:

> Use devm_register_power_handler() that replaces global pm_power_off
> variable and allows to register multiple power-off handlers. It also
> provides restart-handler support, i.e. all in one API.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  drivers/mfd/rn5t618.c | 56 ++++++++++++++++---------------------------
>  1 file changed, 21 insertions(+), 35 deletions(-)

For my own reference (apply this as-is to your sign-off block):

  Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 12:04:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 12:04:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234502.406919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfOi-0000KC-6P; Mon, 29 Nov 2021 12:04:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234502.406919; Mon, 29 Nov 2021 12:04:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfOi-0000K5-3S; Mon, 29 Nov 2021 12:04:40 +0000
Received: by outflank-mailman (input) for mailman id 234502;
 Mon, 29 Nov 2021 12:04:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zy8G=QQ=gmail.com=digetx@srs-se1.protection.inumbo.net>)
 id 1mrfOg-0000Jz-BN
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 12:04:38 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 861d7e30-510c-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 13:04:37 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id bi37so43921057lfb.5
 for <xen-devel@lists.xenproject.org>; Mon, 29 Nov 2021 04:04:37 -0800 (PST)
Received: from [192.168.2.145] (94-29-46-111.dynamic.spd-mgts.ru.
 [94.29.46.111])
 by smtp.googlemail.com with ESMTPSA id g12sm1317274lfu.135.2021.11.29.04.04.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Nov 2021 04:04:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 861d7e30-510c-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language:content-transfer-encoding;
        bh=PNn5ANXHQBQImIpvHbPbNMd2Lqd15EQlJogO89cnByY=;
        b=MI4kP55/Zlm7TBL7y2OrNMI5h+lPZeZmB7t8OlZkmrVqz5nkh2/Y6HuliAe0oVs0Rk
         rFetODlieSY8yYJ/zujS836D4HMa1RwjML/CAxKtomUWXSGb1qL/KVpTn6q2+Uvz6fll
         o53AZuiQAc2GWbWiafTtGZSuw2c5mqIFJqFNiJYF9aTjEDiBqb562eel2zakvhyPlOl3
         pG/pjhw/StA1ckadkeclKZKjMkX16zdmIl6oAlX+4fS7qeRy6PONzcXzKzm9X1QdAno0
         Kkwc07Ys2BvHYPaVq37PhoNg88rbf4eu8IhUwjBo48bGGmIHfJryc8vu/Bws5bIp8Ted
         95RQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language
         :content-transfer-encoding;
        bh=PNn5ANXHQBQImIpvHbPbNMd2Lqd15EQlJogO89cnByY=;
        b=DSnOkAZLwuhPXlrYyjmIA+E533O3TXVj4DCXCFlf+H44u1ZDzev0WZtJRKIlgxQNpk
         /axH+X0quNmJypLnsYr48bkRP6fdgTQSZnb8tBzrYQYnO67BtfpctntN9q+dwXEn/NnD
         rw65Y9XbFJskZTuQchQZ3vQ8XUAzWiT8Ghi9GId8J/tfONJpzZqyeaxuj2mFr9Sogoju
         j2eB3quK9/rNgODkmF6CSQNjMlGey5tSnS/aH8FK07DrkK+5Zu1CbaqyjkHbRG0DENSy
         vRB5wWh0cmmlKmeP1acp1xUphfo6Ybn6qIJMEA79MP+b523/zzj/nBL3N5iSjPu5emoY
         hGsQ==
X-Gm-Message-State: AOAM5314O4F8p+RLfmHjUQYqoLZyjyz3epv1QLr4JJE298p64JFkFCKa
	JZQGkVn+rrp/BKrvFWwhJYk=
X-Google-Smtp-Source: ABdhPJwfeiycltlybhTj7UKB2JEhJqYEuRYscpRNQomunXBGc+OXGSTBjoVVWr3Sr9Zkv1hFoSwEuA==
X-Received: by 2002:a05:6512:e9c:: with SMTP id bi28mr45440847lfb.245.1638187475542;
        Mon, 29 Nov 2021 04:04:35 -0800 (PST)
Subject: Re: [PATCH v2 28/45] mfd: rn5t618: Use devm_register_power_handler()
To: Lee Jones <lee.jones@linaro.org>
Cc: Thierry Reding <thierry.reding@gmail.com>,
 Jonathan Hunter <jonathanh@nvidia.com>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Mark Brown <broonie@kernel.org>,
 Andrew Morton <akpm@linux-foundation.org>, Guenter Roeck
 <linux@roeck-us.net>, Russell King <linux@armlinux.org.uk>,
 Daniel Lezcano <daniel.lezcano@linaro.org>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Ulf Hansson <ulf.hansson@linaro.org>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 Guo Ren <guoren@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>,
 Greg Ungerer <gerg@linux-m68k.org>, Joshua Thompson <funaho@jurai.org>,
 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Nick Hu <nickhu@andestech.com>, Greentime Hu <green.hu@gmail.com>,
 Vincent Chen <deanbo422@gmail.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,
 Benjamin Herrenschmidt <benh@kernel.crashing.org>,
 Paul Mackerras <paulus@samba.org>, Paul Walmsley <paul.walmsley@sifive.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Len Brown <lenb@kernel.org>, Santosh Shilimkar <ssantosh@kernel.org>,
 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
 Linus Walleij <linus.walleij@linaro.org>, Chen-Yu Tsai <wens@csie.org>,
 =?UTF-8?Q?Jonathan_Neusch=c3=a4fer?= <j.neuschaefer@gmx.net>,
 Tony Lindgren <tony@atomide.com>, Liam Girdwood <lgirdwood@gmail.com>,
 Philipp Zabel <p.zabel@pengutronix.de>, Vladimir Zapolskiy <vz@mleia.com>,
 Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>,
 Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>,
 Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>,
 Pavel Machek <pavel@ucw.cz>, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org,
 linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
 linux-sh@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-omap@vger.kernel.org,
 openbmc@lists.ozlabs.org, linux-tegra@vger.kernel.org,
 linux-pm@vger.kernel.org
References: <20211027211715.12671-1-digetx@gmail.com>
 <20211027211715.12671-29-digetx@gmail.com> <YaS/lStp2b8GhVxw@google.com>
From: Dmitry Osipenko <digetx@gmail.com>
Message-ID: <592f2326-b450-1db1-0d3d-804415cf5de6@gmail.com>
Date: Mon, 29 Nov 2021 15:04:25 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <YaS/lStp2b8GhVxw@google.com>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit

29.11.2021 14:55, Lee Jones пишет:
> On Thu, 28 Oct 2021, Dmitry Osipenko wrote:
> 
>> Use devm_register_power_handler() that replaces global pm_power_off
>> variable and allows to register multiple power-off handlers. It also
>> provides restart-handler support, i.e. all in one API.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>>  drivers/mfd/rn5t618.c | 56 ++++++++++++++++---------------------------
>>  1 file changed, 21 insertions(+), 35 deletions(-)
> 
> For my own reference (apply this as-is to your sign-off block):
> 
>   Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> 

Thanks you. This and other driver patches will be slightly changed
because the power-handler was renamed to sys-off handler starting with
the v3 of this series, but yours ack still will be valid here.


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 12:05:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 12:05:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234506.406931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfPQ-0000rL-FF; Mon, 29 Nov 2021 12:05:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234506.406931; Mon, 29 Nov 2021 12:05:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfPQ-0000rE-CL; Mon, 29 Nov 2021 12:05:24 +0000
Received: by outflank-mailman (input) for mailman id 234506;
 Mon, 29 Nov 2021 12:05:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrfPP-0000r2-88; Mon, 29 Nov 2021 12:05:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrfPP-0008LA-2R; Mon, 29 Nov 2021 12:05:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrfPO-0007MO-OQ; Mon, 29 Nov 2021 12:05:22 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrfPO-0000zU-Nu; Mon, 29 Nov 2021 12:05:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QY6/NWWKOoknVLPMFVot4X5flMKPhsHEPrCwk1OtrT0=; b=n8uybC6a/IW8pk0Ov1Ddny3FYs
	0fXZELb3ORq9FAPO8kF/ePxg+qecy7442xRAe39iwd+IdlUVhSNC6gV8n/1ufZ5xo8D+yzr5S3sFU
	ip0q1c8rP6xlfvQ+Iku0sG9HQ1fFohBcQpb1ICyxRgpHehud4N+4lRda3gM9OcHs+uY0=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166951-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 166951: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=76a1ce4d5fec7cd6906e6ea4ed6a4276b700e7ae
X-Osstest-Versions-That:
    ovmf=ef9a059cdb15844fe52a49af2bf7d86b9dd3e9bf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Nov 2021 12:05:22 +0000

flight 166951 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166951/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 76a1ce4d5fec7cd6906e6ea4ed6a4276b700e7ae
baseline version:
 ovmf                 ef9a059cdb15844fe52a49af2bf7d86b9dd3e9bf

Last test of basis   166949  2021-11-29 06:11:36 Z    0 days
Testing same since   166951  2021-11-29 08:42:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael D Kinney <michael.d.kinney@intel.com>
  Michael Kubacki <michael.kubacki@microsoft.com>
  Sean Brogan <sean.brogan@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   ef9a059cdb..76a1ce4d5f  76a1ce4d5fec7cd6906e6ea4ed6a4276b700e7ae -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 12:25:35 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 12:25:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234517.406944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfii-0003HN-7I; Mon, 29 Nov 2021 12:25:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234517.406944; Mon, 29 Nov 2021 12:25:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrfii-0003HG-43; Mon, 29 Nov 2021 12:25:20 +0000
Received: by outflank-mailman (input) for mailman id 234517;
 Mon, 29 Nov 2021 12:25:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Lt1X=QQ=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1mrfih-0003HA-0R
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 12:25:19 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65f0a4c4-510f-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 13:25:13 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id 78FAEB80EF6;
 Mon, 29 Nov 2021 12:25:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90B20C53FCB;
 Mon, 29 Nov 2021 12:25:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65f0a4c4-510f-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1638188714;
	bh=vVGXvjPDMi84to5KYib8TrTlpofQ/6VLMri24F/PIhY=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=u2Ny2mM+6L78B/lw0pJBcBtnRNgBs6wFuXpd5/YgczUShLRRmxrOH+P0VEL+oVqUa
	 8a5673geUU9QV4scX2y9DbO6ZbjqWq/2ezEWtz21dpjobM6w1QcMrw0VsboF6+dfde
	 BTX9qG3oTpqzwpMzzLw6760QcOhGez/+nZ0T5A4o=
Date: Mon, 29 Nov 2021 13:25:11 +0100
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Juergen Gross <jgross@suse.com>
Cc: "stable@vger.kernel.org" <stable@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Patches for stable 5.10 kernel
Message-ID: <YaTGp3Tl1ZYvDaSt@kroah.com>
References: <59ff38c4-8355-ecf6-040d-1234320a806b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <59ff38c4-8355-ecf6-040d-1234320a806b@suse.com>

On Mon, Nov 29, 2021 at 08:19:18AM +0100, Juergen Gross wrote:
> Hi Greg,
> 
> could you please add the following upstream patches to the stable 5.10
> kernel (I'll send separate mails for the older stable kernels as some
> of the patches don't apply for those)? They are hardening Xen PV
> frontends against attacks from related backends.
> 
> Qubes-OS has asked for those patches to be added to stable, too.
> 
> 629a5d87e26fe96b ("xen: sync include/xen/interface/io/ring.h with Xen's
> newest version")
> 71b66243f9898d0e ("xen/blkfront: read response from backend only once")
> 8f5a695d99000fc3 ("xen/blkfront: don't take local copy of a request from the
> ring page")
> b94e4b147fd1992a ("xen/blkfront: don't trust the backend response data
> blindly")
> 8446066bf8c1f9f7 ("xen/netfront: read response from backend only once")
> 162081ec33c2686a ("xen/netfront: don't read data from request on the ring
> page")
> 21631d2d741a64a0 ("xen/netfront: disentangle tx_skb_freelist")
> a884daa61a7d9165 ("xen/netfront: don't trust the backend response data
> blindly")
> e679004dec37566f ("tty: hvc: replace BUG_ON() with negative return value")
> 

All now queued up, thanks.

But people should be moving to the 5.15 kernel by now and not sticking
with 5.10 anymore for stuff like this.

greg k-h


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 13:39:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 13:39:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234527.406956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrgsB-0001pN-Si; Mon, 29 Nov 2021 13:39:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234527.406956; Mon, 29 Nov 2021 13:39:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrgsB-0001pG-P4; Mon, 29 Nov 2021 13:39:11 +0000
Received: by outflank-mailman (input) for mailman id 234527;
 Mon, 29 Nov 2021 13:39:10 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrgsA-0001p6-Lh; Mon, 29 Nov 2021 13:39:10 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrgsA-0001Xi-FF; Mon, 29 Nov 2021 13:39:10 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrgsA-0001hi-6f; Mon, 29 Nov 2021 13:39:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrgsA-0001rA-6A; Mon, 29 Nov 2021 13:39:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=pHVIHMQ74jd7zJ2ZUUOXyrtSCvUWUoWfAppC8b446kY=; b=U57A/FAHZbEsB7BmwlKwSyCMQL
	wsoqGRenHbUKcwSXXXLTOVk1KM0abmLIXQBsOZrjFkM2WEazEDF6A5U9yEJTiDgnjMMmCheAOgIy5
	mbZdVtVX/1rLcwPyRxLzPs2WJXUsCSpgI0waLjGmgtZHuvPlMr5xToAnuBii5NldqEjU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166950-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166950: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-rtds:guest-localmigrate:fail:heisenbug
    qemu-mainline:test-arm64-arm64-libvirt-raw:debian-di-install:fail:heisenbug
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=dd4b0de45965538f19bb40c7ddaaba384a8c613a
X-Osstest-Versions-That:
    qemuu=14d02cfbe4adaeebe7cb833a8cc71191352cf03b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Nov 2021 13:39:10 +0000

flight 166950 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166950/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-rtds   18 guest-localmigrate fail in 166948 pass in 166950
 test-arm64-arm64-libvirt-raw 12 debian-di-install          fail pass in 166948

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-rtds 18 guest-start/debian.repeat fail in 166948 blocked in 166370
 test-arm64-arm64-libvirt-raw 14 migrate-support-check fail in 166948 never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check fail in 166948 never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166370
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166370
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166370
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166370
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166370
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166370
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166370
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 qemuu                dd4b0de45965538f19bb40c7ddaaba384a8c613a
baseline version:
 qemuu                14d02cfbe4adaeebe7cb833a8cc71191352cf03b

Last test of basis   166370  2021-11-25 03:10:11 Z    4 days
Testing same since   166879  2021-11-26 13:32:54 Z    3 days    7 attempts

------------------------------------------------------------
People who touched revisions under test:
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   14d02cfbe4..dd4b0de459  dd4b0de45965538f19bb40c7ddaaba384a8c613a -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 13:51:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 13:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234536.406969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrh45-00047Y-4A; Mon, 29 Nov 2021 13:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234536.406969; Mon, 29 Nov 2021 13:51:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrh45-00047R-19; Mon, 29 Nov 2021 13:51:29 +0000
Received: by outflank-mailman (input) for mailman id 234536;
 Mon, 29 Nov 2021 13:51:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrh43-00047L-Ni
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 13:51:27 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71de1e8a-511b-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 14:51:26 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-11-uosKhvCMNjiIdi1W362ogA-1; Mon, 29 Nov 2021 14:51:24 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3933.eurprd04.prod.outlook.com (2603:10a6:803:24::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.24; Mon, 29 Nov
 2021 13:51:20 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 13:51:20 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR04CA0029.eurprd04.prod.outlook.com (2603:10a6:206:1::42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.20 via Frontend Transport; Mon, 29 Nov 2021 13:51:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71de1e8a-511b-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638193885;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=WJgKJSP5DW5Bq/wc15bS7aAnbsZ1fEXXDIUZLe3CRes=;
	b=NYgeM8j5U+upUadAkZQSbD/9XTSDP/J8XB/pF0V6ULn/sPIiQWbwCnc7KhZ3pCVJlM9K6z
	E2+miPD46skIugLSdLNZkxGACoBim/mm1OA1VDIwoZiUh0uc8qyndPUmoK9H/Yx780ijAq
	GTfmqhy2SdeTpF3OFJotXIHPAzFF1WM=
X-MC-Unique: uosKhvCMNjiIdi1W362ogA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LJgQiUr6RjBOqFDps03tJbDLZHSi742l42QqniWH28vEDPnkwiRtVG8LaooVl4Nc0oNuAJPTnUsZYOtkSuQItJ0rEkLWx4R+7v9Xp6ZItuyzyDe7zDG7CVEvRWYyN73vaEZvaWoMdfK9nNQWz3Vt/rF3gCSjXvE7e6qFXThVDuiFGP4qFXXOdfAl7DwhtjzU622JzeMADVfxx+LkCZaN/4/Q0Xl4N/Oxilhd633N0LJuNoEP+Trb8/r4qtNh0SMcTFwIByZeVgOtYIyTC8+XQm+LgJWyfY484THPb+CDUiam+tCmFEY2vF7jd7MUOhbw/3lk1A5k9cMy/VpNCMpumg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WJgKJSP5DW5Bq/wc15bS7aAnbsZ1fEXXDIUZLe3CRes=;
 b=R+BgV3ehEk+6F+DIyKtHwM7pc7337+Ja4gSbJMUy+DNbnC4l0QswrsoLAMaGOxOcFcyb7b+BUZ1c9R/RziFdfbX8R8IS+2y137VZBdZ4+vNGC6wVLRSiWM8wdhOQi8kgKFS4IqU8mipurbQIAan2VZ9XlphQeD9gsqkx2iFfoxYZ/ZqLdA6fNrzupXtq57Hbaat78VeerKNqf9dEGr7o4sVRmln5py9+2G78+oaZAY9KTA6FRB+uWtwSapMHDuX6v+nw66KCDXK3MFvJSxxiFIZ3NRqyBlymhowuZGOSzqNxV/dvb1oA7lpTeu1WgMAyIjyTEH3iEbeHNdmxvpy+zw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d7ce2a02-1883-ac06-1737-43149be3bfae@suse.com>
Date: Mon, 29 Nov 2021 14:51:22 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 17/65] xen/evtchn: Annotate fnptr targets
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-18-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-18-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR04CA0029.eurprd04.prod.outlook.com
 (2603:10a6:206:1::42) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 92eb66ec-2f90-4696-f437-08d9b33f52f3
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3933:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB393334090B19E8A2401B027CB3669@VI1PR0402MB3933.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3968;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	txbZ5VIjNuxqz2TVfyeD5RwnsaBqVjpw/FWAYGjhI+tY0pwC0rqc0k5rGUDO+/2uMCEoIkkwycnP6wVfgc/upo1n9GSVPcb66W+LmSzM7qhQtXLalVRf+n48LNHOtVLoCUP80JBEZYKwsp2kc2p3bB93+fp1WLo4xpgS/0dAQ61xB9G/MyoEu/No77hfKVqHsakA8/nVesfFzJWsLk1k2OTJMbr+prj49Zj/vhSm40zBVW/Tnnz3MvlH5AP2jlJ/YxyCxW16JLtQVuc2kkED9JnrxvFY1W4MS+sfcOI9Iz8+wbOhy8dcHvd51YeGQ213XW0LFCD5tdsrpE0rJXxl0Ddk2uTnVK8S/m9+VCA6umHUIisGrN9ntZgcsXaECQw/zyDmDRaGYBNHWLijIIRMyRGQ5vse+UGMKUWx1mvg/spy8hUuPLV9DDGp1ctZl5GjAn0lsgJuiN4fta1DvreQLgzVXSrHJR6rwHEhpbZQ0VJjsLUb5bmvYvIYjDfCI7ZSksZOqGVETxAbv/pGpJqEIoUHtIN1skwCIm43m9XidEUebs33fYhSqznOrWJzye4CsK8KBqmBglyJPfU4eummwtho7VABkMgUUoTqEW9Vtt+c5w0aehEnnr2DVU8V61o1puC95p7/JLX5YXSen1xYs+ibFyHs77dG+iXL+/Yvr2eqzOv0sO3Cl/16ZKf9LzJHqZzXSAILOi0+6vfoHxNkFJbb/cDY1XXrGXKiVD+J936juISOk41zrR4s77lpY7kg
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(2616005)(956004)(8676002)(186003)(86362001)(16576012)(53546011)(36756003)(38100700002)(6916009)(26005)(6486002)(316002)(4744005)(66476007)(66946007)(54906003)(2906002)(5660300002)(83380400001)(4326008)(508600001)(66556008)(31696002)(8936002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RU1PRExBWG1Fb3cwVU82NGI3UnIzSjhHV2hCSFUzUlorUUw2OFZTa1MydDJM?=
 =?utf-8?B?emhTeXBQbStDOFg4dnBWRTNaSWdiUk5LQXpnSVQvbDlWdGg3ODRWcWFEQU9U?=
 =?utf-8?B?NUVJKzd0d2twUzRQRHFSa0h4aDc0cnVleWtVZ0h2a1RyNGVwVnNtVnAxZDlr?=
 =?utf-8?B?bmZNVERqVU41cllJVlpxT2ZqZjdBYzQrTFpwd0Q0MFB1cUp2bUFJenJ2cTg5?=
 =?utf-8?B?TGJXb0lTb3JRcUx6a0tJUHhyYkZyZ2JnQ0pHenQrK1hrekFnOUtiazlYdExK?=
 =?utf-8?B?NVk1NHJTbjNzRW9lT0w3SUJVRFBBTnBhME94Tzk5Q2Q1U0RZWVVLSjAwYkRr?=
 =?utf-8?B?VHFvazlXWGlTbTJkMFpzSkFnZlpnc0RlT29XM3RvY1UwaFMvRm93Uyt5dG9a?=
 =?utf-8?B?djFHeUZVcXFNTzJOV214Nm1LcVl4bHE3MjlTbXR1TEQxdnZHQXllMDZUdG9j?=
 =?utf-8?B?MmIxc2xpNFloSm9uOVhtb29Ub3NPbElMdmZwVGdOY1BGdnhKSnFIYVprZ0lN?=
 =?utf-8?B?MEp0bWtndUFXdGJOZ2FKc3NiNzFNbVo0S0EvVkZGckVnUlRiY0w0Zm51Umdo?=
 =?utf-8?B?U29vbjhtSUdscExSbkxJYllsZjhTSU9xc2N2VFlXYmdDUVVMblI2MEJFdGxS?=
 =?utf-8?B?a3BrRW5iY1pOZUQrRk9sakU4SnB6TEpTbmVlYVNnNTFUTm1ZazltbVg5QlZp?=
 =?utf-8?B?a3Z1MVhCRVUwbkFMck5PVFR4dE9qQUg2Wjc0YU5QbEtSYmVYdGdKUjRzc1lE?=
 =?utf-8?B?eXNuTW5VYXVUTzd0U0l6dEEvdlZicmZGSXVvSXNnR3kwVFpVMXAwaHlLYjFr?=
 =?utf-8?B?alMxeEJzZzJZNy81TVIvMXlTSDNTcDlLbWNJbjJUbXh3eHkxYUE5cXB3QUwy?=
 =?utf-8?B?VDE5RnYvK0Y1WDQxTmlZd0h5Y0ZGS1oxVUs5bDZnZitPaVRyYkgrVWZhSlI2?=
 =?utf-8?B?ODNEQnVoaXRVVGNHNTJSbE1pZmh2T0xxSUYyMUY0OGN4ZG1JUmdLZ2I0T2dR?=
 =?utf-8?B?U3ZRdStVeHM0b0JRQVpFZFhSUDhnK21qUlZhb0NQRnErU0ZSbnlkeUViT3hn?=
 =?utf-8?B?RGpBWlVBTTdyUW9iekc4b2dmRGtZNmhDcW5DUERUS1dVdVFxUkJ6VFJ1Q2Fs?=
 =?utf-8?B?MFdlc2RYNGdPNWx6b0g4VjV1VkdCN1FxUXZQNTFVVkVqUHhOY2czRzM3SXdl?=
 =?utf-8?B?ditBMFYzVXZ2aHl0WjdnWWgrdWVqdEgzQ1JHUW84WmovUFYreWFtaVR2NnpP?=
 =?utf-8?B?cjZ2ckZqMWlndGk3OXBNQ0hULzVKL0tOOUtxVUZnQm94dGhxSGdPdjFjSUZP?=
 =?utf-8?B?cWlBcEFmL2FDRUZuWmJTMGdQcFFNQTJIei9Da1c3Nm1IeWZYT1NtcXkzbDNa?=
 =?utf-8?B?c29NWnNnRXpTM1lZWTI1Yk9LWmpBbmRSN1ZrS29NbkFoQyt3anFQNHNRVFNw?=
 =?utf-8?B?dEJhTHgvb01zcStLS3RkYy9FL1ZDalpzTGlyR0Y5aTRGcVpUaHhyVnBzK05E?=
 =?utf-8?B?M2NaQ2pweGpSYlF1K3RNWkxnY3hoS1E3aVFKTElNL3I0WlJPdi85WHFOVE1x?=
 =?utf-8?B?QjRwY2FIWkIzR0xXN1pJTy9GQ05wTTVQdFZGVnZ4c1dSdlNCeUVjOWhFUnRv?=
 =?utf-8?B?NWlxVEp4bmU3ZU96V2tUN3Y3K05kSWRHYVo2Q0RjUjllTSs0NG10WUFSOHJP?=
 =?utf-8?B?QXRTY0tnUXd4OHlkSXI3UmdPUHV6WjVEZlZDZlgyWkNnMkFXODk3U1kzalpX?=
 =?utf-8?B?OTZTazhxc0xLdkNFMkJXVXRMb0M2a1RLa1RQWHhlQ01vSDFYL3VXSm5NMWZn?=
 =?utf-8?B?a0RNbks1OW1OZGN4bzFMTU1sMHVGcThWM2taNWhRQVVaVTZsRU82K2VXRms4?=
 =?utf-8?B?Vk12N3gzM29USS9SK2VHemx5bFV3QlY0Mi9iT0liZWpxR3NkdVkvU0FzajVi?=
 =?utf-8?B?QjRlNmJsYXJ1TFduQ0VlZHB2ZzlObzlZVU5PVXJkUk0ybS9yYVRHVXhCRGJ4?=
 =?utf-8?B?VERERHRVaWlNMWU2dWRiUzZscGRBR0FiellUdkE5ckR0N1grRWRXSmMyVFVk?=
 =?utf-8?B?WlpxQzIrdkt6YWl0NVpENW5qcW8vWU0vczlZMGIxN3VxemZpUGVOYlVRQjFJ?=
 =?utf-8?B?WjRjZ2Q4RVZCUytSZldtMzNwekNVRnRjVEtROFMwLzBzNEovdGgyWHFPLzdv?=
 =?utf-8?Q?9n/+Vnrc1QifIQVbwx/y3nU=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 92eb66ec-2f90-4696-f437-08d9b33f52f3
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 13:51:20.7375
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: R9Gh/6SKQdrNMMDhCjqI63IxVZypMzqC7AmPewe5jC9PDHMPbeMXAHP827+Dz7a3Ak9xI1gK+KcvoDY78kAfHQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3933

On 26.11.2021 13:33, Andrew Cooper wrote:
> --- a/xen/common/event_channel.c
> +++ b/xen/common/event_channel.c
> @@ -99,7 +99,8 @@ static xen_event_channel_notification_t __read_mostly
>      xen_consumers[NR_XEN_CONSUMERS];
>  
>  /* Default notification action: wake up from wait_on_xen_event_channel(). */
> -static void default_xen_notification_fn(struct vcpu *v, unsigned int port)
> +static void cf_check default_xen_notification_fn(
> +    struct vcpu *v, unsigned int port)
>  {
>      /* Consumer needs notification only if blocked. */
>      if ( test_and_clear_bit(_VPF_blocked_in_xen, &v->pause_flags) )

Alongside this shouldn't you also annotate mem_paging_notification(),
monitor_notification(), and mem_sharing_notification() right here
(following how previous patches were organized)?

I take that you're specifically leaving out anything in Arm code, no
matter whether such annotations may gain a meaning at some point (not
that I would know of any plans).

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 13:56:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 13:56:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234552.407017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrh8y-0005AY-44; Mon, 29 Nov 2021 13:56:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234552.407017; Mon, 29 Nov 2021 13:56:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrh8y-0005AR-0x; Mon, 29 Nov 2021 13:56:32 +0000
Received: by outflank-mailman (input) for mailman id 234552;
 Mon, 29 Nov 2021 13:56:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrh8x-0005AG-DV
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 13:56:31 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2498a607-511c-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 14:56:25 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2170.outbound.protection.outlook.com [104.47.17.170]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-15-qS6MBWRTNV22Uk9zEDD0Bg-1; Mon, 29 Nov 2021 14:56:29 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6672.eurprd04.prod.outlook.com (2603:10a6:803:127::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 13:56:28 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 13:56:28 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P195CA0081.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Mon, 29 Nov 2021 13:56:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2498a607-511c-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638194190;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=t3ylgCzAb2LdET6nnO9kFNvE+/aKPDEwrNVrDvlGq7I=;
	b=KDn54nAMkpgh1iFNJNLt+vC2/LWmT1Hsr7WmqaMchOXJZeOHGUbomqrMlCQwrRKs/nWk6R
	fypx0lrszmjUqNiNzGjMbIFVHtgjtAJftFpy+XHH2iv8KtlFYIevzaAesVmCVIO+dtKGIF
	/l30bJEmrYgnZ1b/4pac55MswjkOSUA=
X-MC-Unique: qS6MBWRTNV22Uk9zEDD0Bg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fAKzI0/fObkOAT+34X/+oM7YXUJVuhhHrSRInI8h0IOtaeM7RdAw9PtlVUmNP/NRspOTIynxmWvEF/2I3Am/AF+opx+jXsu5n9SMLWsJPaOlM4c2OKJIH+nIanlH95Wu4ebGIEPG0RdWr4Yb16116SNlG0/CwCZttKp4l1L6BQVppSCeDCdconSjMG9MFYA6/AIlaPFt3RIbEFgM0YF5GuU5K35nLJWNpCtd6tFx19hMjp85G1ojAOsG+Sg/7jFpZXdOFuJTmPtckLZukQlyMJncX5KsqsPzr0BTkwKpE52s3o9tVGQwaeVza0Dip1T/5xb6nqbCq2fLgrppYUo6nw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Kl+Ii5rFayTV1u5aR7KD0BD+EsHRoQqk7iPIdSU9C80=;
 b=nxyOcESV+6epLBO4D324xy84bK22VrsWCK47r7JqqFKa4GXiFpB23Vy8aCM3mj4b1SoB5a7PL9zhKNpeBdZ4uuaQmHUu7/P+kiVY1amH7GUiBHi575Rz07KxGYcqZFIQYVAA3GmGeZvAGUwBdcN33UgWPCsk6bLF/hCImRrOGrIDiJQhZsw9wts0PPvrg4febzj8243ICVDzjcaGKJtg95O9/SGHi3Ckt0xZqBGVFYBmg9j3qet+KbptsZtNr2dw82eyjkESj3rcMH5fjKZlV1qF3Aqt519ZSKrd5LxWrk3PoO+oI45juhjdChs8zo0lBwNpSDwgSyrJliTXjmw2lA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <334d147c-6b9a-3ad5-f162-00fca3c54fcf@suse.com>
Date: Mon, 29 Nov 2021 14:56:30 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 19/65] xen/tasklet: Annotate fnptr targets
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-20-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-20-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6P195CA0081.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:209:86::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 007270e9-d34e-4dd1-82d8-08d9b3400a4f
X-MS-TrafficTypeDiagnostic: VE1PR04MB6672:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6672A71CC0381A6F5916F9D6B3669@VE1PR04MB6672.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4714;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	s0TZ7jCV3H+I1WzMdbZh4YJlN5QPLDlTVzYL2Omzj/sQT8cRQWEx0UqdrI/1NrSL12HMZjucoveu1gski/M8GLp2RBlHMeQXyuvVT+ocM5VZjJ8LymPWRKbUTf3dBkQ0/EEExoEBpaS9Ue5tsTldB1otycYUZDq4MioBO9ACOYEBAo3H4wZ7cLRjfd2/y1Y++mzBJ/aTEplnnu+PzbqA30yLhZ4n9kVqDeGNC903X8OL/QHIckrJPapXczlAV1jYm9VonrL45uA72v2YuTtQjGzFK85QMoLpo+5NzDUohQJB3axTotykoaumkkE0zb5AsqAJeiQJcZC7OqhWK9srRema5kBGNU64ZuMHSO3wkWUH/mgF0qr/MM69dwK05I6btm1W6NrRfbsIFBitCTkfnVKgT5Oh7zFVjXhR+Yq27EMZyaKmi/heuCGvT1s3SEGbzi9FCb7EVtUUHz+v1GoMFAFvCwkKsrqlML095xup6oZYdLpYnJj+43oS4SnTD3Elb3TSGSSUNz2lu43rpioiM1Ejv/Ee7lUYCb553wWnxhOyGYVjW+Jux7KV72veMO2iYZFEqiT5j+ameyim8bX9j09unqjESvI6H1aiRZ1h5E9bBdIKBKiJ+HKKDhXnJuAUn8aEpxwb6F+z6+hRxm0379uV4Ir2Av0+2xBu4mlOcBj8/zE9dBPrpEaMRRyh9gv9iK2hfBQ51mxH2/OwIIYyPL9/aQFN7dvH6fDYOYVgmI9pQxf8YpLlZiaJRh8gxhYe
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(16576012)(316002)(8676002)(6486002)(508600001)(8936002)(31686004)(66556008)(6916009)(66946007)(86362001)(66476007)(31696002)(186003)(5660300002)(956004)(53546011)(2906002)(4326008)(6666004)(36756003)(26005)(54906003)(2616005)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?30ufV6A9L8FEnhz7y/1LRHCRAKhbx6TGZpuXGSxGMhEZnzHFAxfhksZfFPnh?=
 =?us-ascii?Q?4JIux0dSaWWXQvkN5qPaXmndxuPagVsaJyHVCTFSgyHwJjoskps5bnB5T528?=
 =?us-ascii?Q?qrx7iOXio1/wd9PSD73NNO1m7l0+2CukXqSVnEM3ORf8PORVXq1/qnuO9hS4?=
 =?us-ascii?Q?L4tXNgs+haZQQo80RmSy5n59nm7UmvyLVI9jWJQaJVgp3h0FcRfpJzRpaYVv?=
 =?us-ascii?Q?eygPuQXQ4uxIfrg6fBfPG3iauO5G30fDtiP0ECLjbakkVIdZeyDtKtwIvLp4?=
 =?us-ascii?Q?HuO1QebjGi1Il8H2G6F9Awmb4ORasFr/36KZ2pP/frpcdHLSM/NsVA3ynFwp?=
 =?us-ascii?Q?2sxXoq7+4aYYT7K3/fuCDJgwdTI3nADEN3/xGDkyRGge/yXBpyYSUaibd5LG?=
 =?us-ascii?Q?2tXWpdb7vbcR490n70hTOcNpw7UAsWZ00ntzA3xuuV7F80zOWtSLL1mXOOHY?=
 =?us-ascii?Q?ucB5ez2d87BFXIXH2YjdBid5jga3v/5TM/9FZ8/aqer363Vqm4UQMAxwkqBo?=
 =?us-ascii?Q?ZlRiIOwqcpgF2Sc1BezSIj0hkJuGdxQNaOp6uIWZa1Cn09mHnjwT59Tjfsd6?=
 =?us-ascii?Q?HQOwU/XSNk7DGmTx6lKpUfP2xWcGLJPUswDkr5tVWLAt48ds2CihcMSpcqhv?=
 =?us-ascii?Q?XqCe939pZYrRObJtZg72rvTijJuFNBFFuJqpzYW03qAnHQL7ixnR8PJW6VJV?=
 =?us-ascii?Q?iDCNBYlmgqnLEirE+/wWQjDfGZcoLjb5BDnm4cb8vvWgRoYcgqSGReUY7oLs?=
 =?us-ascii?Q?EZTdtVSEz7GDKEmvMadVKOmWy4kVgajmz/KhZhzUT6u6S3xyJR2BbDj/RzoF?=
 =?us-ascii?Q?EVvuhTCaaTaCPyGn/xbEfuif80PzNCOh9HpDsMFzdvyf6SiSHL4NUGg+7g47?=
 =?us-ascii?Q?6de63Ozr9cnO2vU3IAb/V0znjKH6HEicf0b9eXPgwpwVvpT3aBKxITMtNu6B?=
 =?us-ascii?Q?P0kr0HHWI3FU4w8+3BAHUi8KtQ0+fo1mT8dYjKXiOeG92H7pyHt1HNBM9p0g?=
 =?us-ascii?Q?pDgXzifUiDYVUTga4ot88ymbSyi9adXmHxL7FWIAAS4M99aFP5faZcUNFO/Y?=
 =?us-ascii?Q?IKZEJ/z98zsar+Qc6aiTCVxmWdPXfdLVGbl5hZIpVfnnHhhZSZGoFjWkv7xP?=
 =?us-ascii?Q?R2owjvQfMEiz4xPBFb1pvaeZfy+KONB4Y6Ft0ljH1cd78BsoSn7y7qg3Xcm/?=
 =?us-ascii?Q?7B4jBEomyQOCkZy91eQRVC0F3d01Ta5Wi/V/1g/RKUdH7aJtnoJWwVhe/fvc?=
 =?us-ascii?Q?ZuKANAM4+6bBwXmgKbSrOhCd7ooHcQmpiuGIo4sdDMwzap3RjzaB2gZM94zT?=
 =?us-ascii?Q?F50MyswsKey3C+lUKikoqUSu67BRuabdZWZ8dChXUAJdzV6LS73trHZHnoTR?=
 =?us-ascii?Q?JhC3lzKt6QiWf6iNDEEtjo4xZoLzRyVEZ2GnWmbyPOF87hJU60L1bK8QqW59?=
 =?us-ascii?Q?l2Xt6r60jSC1krPI0hmG9+ak5nJDYryS+nK8lP0Osw8x1MgMJQ+qKBjlOfzv?=
 =?us-ascii?Q?dHOoGhpigMvfrjgWz+p9SL/8bR4DJl6ASiT9v43CYEphJNdw/rWymPtzgD0r?=
 =?us-ascii?Q?DaFrlLJEi3FWjRQivu2y8LK7UNFtiR7/farkkHdlDvBnmvxTh7VO/f4HnDLK?=
 =?us-ascii?Q?NCBnIv4LIIuTeXuvjq0zuY4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 007270e9-d34e-4dd1-82d8-08d9b3400a4f
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 13:56:28.3136
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: njSSEV0f/Pngi1CDhu7L9qNq1KrU54rwy7TD63tG28s9s69Wf4zXbLmtw8HtNrBE0cTgmQHOdN6xppWgAsjrrw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6672

On 26.11.2021 13:34, Andrew Cooper wrote:
> The function pointer cast in hvm_vcpu_initialise() is undefined behaviour=
.
>=20
> While it happens to function correctly before this point, it is not
> incompatible with control flow typechecking,

DYM "is now incompatible" or "is not compatible"?

> so introduce a new
> hvm_assert_evtchn_irq_tasklet() to handle the parameter type conversion i=
n a
> legal way.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Wei Liu <wl@xen.org>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  xen/arch/x86/hvm/hvm.c                    | 7 ++++++-
>  xen/arch/x86/hvm/vlapic.c                 | 2 +-
>  xen/arch/x86/mm/shadow/common.c           | 2 +-
>  xen/common/domain.c                       | 2 +-
>  xen/common/keyhandler.c                   | 6 +++---
>  xen/common/livepatch.c                    | 2 +-
>  xen/common/stop_machine.c                 | 2 +-
>  xen/common/trace.c                        | 2 +-
>  xen/drivers/char/console.c                | 2 +-
>  xen/drivers/passthrough/amd/iommu_guest.c | 2 +-
>  xen/drivers/passthrough/amd/iommu_init.c  | 4 ++--
>  xen/drivers/passthrough/arm/smmu-v3.c     | 6 +++---

Wrt my remark in an earlier patch - any reason that here you do touch an
Arm-only file?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 14:12:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 14:12:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234525.407077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhNu-00087X-85; Mon, 29 Nov 2021 14:11:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234525.407077; Mon, 29 Nov 2021 14:11:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhNu-00086u-2r; Mon, 29 Nov 2021 14:11:58 +0000
Received: by outflank-mailman (input) for mailman id 234525;
 Mon, 29 Nov 2021 12:59:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ajmq=QQ=gmail.com=blsv.anton@srs-se1.protection.inumbo.net>)
 id 1mrgGD-0006hC-JZ
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 12:59:57 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 409bf6df-5114-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 13:59:56 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id l7so34262409lja.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Nov 2021 04:59:56 -0800 (PST)
Received: from draksrv.localdomain ([188.187.75.98])
 by smtp.gmail.com with ESMTPSA id g6sm1335958lfu.86.2021.11.29.04.59.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Nov 2021 04:59:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 409bf6df-5114-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:in-reply-to:references
         :mime-version:content-transfer-encoding;
        bh=9FJp5yt4xuR5uC1hB4oW12qctM8N4BAya0AXA911I/o=;
        b=bG0OFpRbjO6kACLykDn9pCCrycJLAWa0qtjW9HjybtH+FXvXmW6hHtYJcmYZnfLcS6
         YvXC2rmzciMdSMX2SkX4AfWqTTrJ3e1Dip5WlLxrDbrsysYiamg++pDPITJj2IPopXuF
         DlNkMHQMI1XkqTIKzx0PHW3/+8dwc9j1G3gMTN6KSx0TM2XJcjz2F9i3ThDVV4mlhzwo
         DDVSWYFiUZXKDTl9ZOIJjVfhquCCksGDphRGpPcicXSPY4PFmd08jeO4JAm2Jyv7kZD1
         0h5OTlC4gF7l2a2WSxOqDNgByPN+iuI0Q7vGprA5NuZw8Ckh5Jnbi0yJwegDNcfPFjG5
         0kXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
         :references:mime-version:content-transfer-encoding;
        bh=9FJp5yt4xuR5uC1hB4oW12qctM8N4BAya0AXA911I/o=;
        b=E2EzHkB7jA2Et2BbPx69VvJ8LFT3Z4n/elTwhFx4qLxz/bwjVd/0MVuEXhAAm+8OKx
         utHVfVqySQqJT8c7YwD78VH923RNpdNn1b+3c6knICZM+rivcPWT11S5nQxZALAwMzbL
         2q3s5t9LA04exJSps0k9JNlHtEfE3O3ezdNrHcJ6LSDOyCpiL5uThPnbGLHGSWMJ15k5
         MfnTASV7Cktg5ijYRXp1E4grockX3DB6vQ4u5VOEBsjSlcbPys/pFiin3bt70o/yvew3
         iuZ2TEftKQ/GRxslZEWTGXOPWlCpwKiBI7sYonYmkv2JCDiNpGKsySSeZT3b8jPYFedP
         DL5w==
X-Gm-Message-State: AOAM530RIIlGySovF/mN7RSobIP06XFZ33aKofcqKnlxe3YwMg285yHG
	59MWxZAFaBCGe8r7O51JGAkj61Y786E=
X-Google-Smtp-Source: ABdhPJzc3D9VlPruQ8CCKOZYQoF/62/iAMJTrir9n1zuO4mAFcPqCh2awV+J2Q0fJ2KZHxBkmUwTxA==
X-Received: by 2002:a05:651c:1689:: with SMTP id bd9mr10004737ljb.192.1638190796334;
        Mon, 29 Nov 2021 04:59:56 -0800 (PST)
From: Anton Belousov <blsv.anton@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Anton Belousov <blsv.anton@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	Ian Jackson <iwj@xenproject.org>
Subject: [XEN PATCH 1/1] Add suport for SMBIOS tables 7,8,9,26,27,28 to improve virtual machine stealth from malware.
Date: Mon, 29 Nov 2021 12:59:29 +0000
Message-Id: <3ad07dc366117e43a46004a03cdb963581b16fd7.1638190663.git.blsv.anton@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1638190663.git.blsv.anton@gmail.com>
References: <cover.1638190663.git.blsv.anton@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

---
 tools/firmware/hvmloader/smbios.c       | 146 ++++++++++++++++++++++++
 tools/firmware/hvmloader/smbios_types.h |  76 ++++++++++++
 2 files changed, 222 insertions(+)

diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
index 97a054e9e3..f5e61c1159 100644
--- a/tools/firmware/hvmloader/smbios.c
+++ b/tools/firmware/hvmloader/smbios.c
@@ -33,12 +33,18 @@
 #define SMBIOS_HANDLE_TYPE2   0x0200
 #define SMBIOS_HANDLE_TYPE3   0x0300
 #define SMBIOS_HANDLE_TYPE4   0x0400
+#define SMBIOS_HANDLE_TYPE7   0x0700
+#define SMBIOS_HANDLE_TYPE8   0x0800
+#define SMBIOS_HANDLE_TYPE9   0x0900
 #define SMBIOS_HANDLE_TYPE11  0x0B00
 #define SMBIOS_HANDLE_TYPE16  0x1000
 #define SMBIOS_HANDLE_TYPE17  0x1100
 #define SMBIOS_HANDLE_TYPE19  0x1300
 #define SMBIOS_HANDLE_TYPE20  0x1400
 #define SMBIOS_HANDLE_TYPE22  0x1600
+#define SMBIOS_HANDLE_TYPE26  0x1A00
+#define SMBIOS_HANDLE_TYPE27  0x1B00
+#define SMBIOS_HANDLE_TYPE28  0x1C00
 #define SMBIOS_HANDLE_TYPE32  0x2000
 #define SMBIOS_HANDLE_TYPE39  0x2700
 #define SMBIOS_HANDLE_TYPE127 0x7f00
@@ -77,6 +83,12 @@ static void *
 smbios_type_4_init(void *start, unsigned int cpu_number,
                    char *cpu_manufacturer);
 static void *
+smbios_type_7_init(void *start);
+static void *
+smbios_type_8_init(void *start);
+static void *
+smbios_type_9_init(void *start);
+static void *
 smbios_type_11_init(void *start);
 static void *
 smbios_type_16_init(void *start, uint32_t memory_size_mb, int nr_mem_devs);
@@ -89,6 +101,12 @@ smbios_type_20_init(void *start, uint32_t memory_size_mb, int instance);
 static void *
 smbios_type_22_init(void *start);
 static void *
+smbios_type_26_init(void *start);
+static void *
+smbios_type_27_init(void *start);
+static void *
+smbios_type_28_init(void *start);
+static void *
 smbios_type_32_init(void *start);
 static void *
 smbios_type_39_init(void *start);
@@ -205,6 +223,9 @@ write_smbios_tables(void *ep, void *start,
     do_struct(smbios_type_3_init(p));
     for ( cpu_num = 1; cpu_num <= vcpus; cpu_num++ )
         do_struct(smbios_type_4_init(p, cpu_num, cpu_manufacturer));
+    do_struct(smbios_type_7_init(p));
+    do_struct(smbios_type_8_init(p));
+    do_struct(smbios_type_9_init(p));
     do_struct(smbios_type_11_init(p));
 
     /* Each 'memory device' covers up to 16GB of address space. */
@@ -221,6 +242,9 @@ write_smbios_tables(void *ep, void *start,
     }
 
     do_struct(smbios_type_22_init(p));
+    do_struct(smbios_type_26_init(p));
+    do_struct(smbios_type_28_init(p));
+    do_struct(smbios_type_27_init(p));
     do_struct(smbios_type_32_init(p));
     do_struct(smbios_type_39_init(p));
     do_struct(smbios_type_vendor_oem_init(p));
@@ -700,6 +724,66 @@ smbios_type_4_init(
     return start+1;
 }
 
+/* Type 7 -- Cache Information */
+static void *
+smbios_type_7_init(void *start)
+{
+    struct smbios_type_7 *p = (struct smbios_type_7 *)start;
+
+    void *pts;
+    uint32_t length;
+
+    pts = get_smbios_pt_struct(7, &length);
+    if ( (pts != NULL)&&(length > 0) )
+    {
+        memcpy(start, pts, length);
+        p->header.handle = SMBIOS_HANDLE_TYPE7;
+        return (start + length);
+    }
+
+    return start;
+}
+
+/* Type 8 -- Port Connector Information */
+static void *
+smbios_type_8_init(void *start)
+{
+    struct smbios_type_8 *p = (struct smbios_type_8 *)start;
+
+    void *pts;
+    uint32_t length;
+
+    pts = get_smbios_pt_struct(8, &length);
+    if ( (pts != NULL)&&(length > 0) )
+    {
+        memcpy(start, pts, length);
+        p->header.handle = SMBIOS_HANDLE_TYPE8;
+        return (start + length);
+    }
+
+    return start;
+}
+
+/* Type 9 -- System Slots */
+static void *
+smbios_type_9_init(void *start)
+{
+    struct smbios_type_9 *p = (struct smbios_type_9 *)start;
+
+    void *pts;
+    uint32_t length;
+
+    pts = get_smbios_pt_struct(9, &length);
+    if ( (pts != NULL)&&(length > 0) )
+    {
+        memcpy(start, pts, length);
+        p->header.handle = SMBIOS_HANDLE_TYPE9;
+        return (start + length);
+    }
+
+    return start;
+}
+
 /* Type 11 -- OEM Strings */
 static void *
 smbios_type_11_init(void *start) 
@@ -923,6 +1007,68 @@ smbios_type_22_init(void *start)
     return start+1; 
 }
 
+/* Type 26 -- Voltage Probe */
+static void *
+smbios_type_26_init(void *start)
+{
+    struct smbios_type_26 *p = (struct smbios_type_26 *)start;
+
+    void *pts;
+    uint32_t length;
+
+    pts = get_smbios_pt_struct(26, &length);
+    if ( (pts != NULL)&&(length > 0) )
+    {
+        memcpy(start, pts, length);
+        p->header.handle = SMBIOS_HANDLE_TYPE26;
+        return (start + length);
+    }
+
+    return start;
+}
+
+/* Type 27 -- Cooling Device */
+static void *
+smbios_type_27_init(void *start)
+{
+    struct smbios_type_27 *p = (struct smbios_type_27 *)start;
+
+    void *pts;
+    uint32_t length;
+
+    pts = get_smbios_pt_struct(27, &length);
+    if ( (pts != NULL)&&(length > 0) )
+    {
+        memcpy(start, pts, length);
+        p->header.handle = SMBIOS_HANDLE_TYPE27;
+        p->temperature_probe_handle = SMBIOS_HANDLE_TYPE28;
+        p->cooling_unit_group = 0;
+        return (start + length);
+    }
+
+    return start;
+}
+
+/* Type 28 -- Temperature Probe */
+static void *
+smbios_type_28_init(void *start)
+{
+    struct smbios_type_28 *p = (struct smbios_type_28 *)start;
+
+    void *pts;
+    uint32_t length;
+
+    pts = get_smbios_pt_struct(28, &length);
+    if ( (pts != NULL)&&(length > 0) )
+    {
+        memcpy(start, pts, length);
+        p->header.handle = SMBIOS_HANDLE_TYPE28;
+        return (start + length);
+    }
+
+    return start;
+}
+
 /* Type 32 -- System Boot Information */
 static void *
 smbios_type_32_init(void *start)
diff --git a/tools/firmware/hvmloader/smbios_types.h b/tools/firmware/hvmloader/smbios_types.h
index 7c648ece71..f43be12dfc 100644
--- a/tools/firmware/hvmloader/smbios_types.h
+++ b/tools/firmware/hvmloader/smbios_types.h
@@ -149,6 +149,44 @@ struct smbios_type_4 {
     uint8_t part_number_str;
 } __attribute__ ((packed));
 
+/* SMBIOS type 7 - Cache Information */
+struct smbios_type_7 {
+    struct smbios_structure_header header;
+    uint8_t socket_designation_str;
+    uint16_t cache_configuration;
+    uint16_t maximum_cache_size;
+    uint16_t installed_size;
+    uint16_t supported_SRAM_type;
+    uint16_t current_SRAM_type;
+    uint8_t cache_speed;
+    uint8_t error_connection_type;
+    uint8_t system_cache_type;
+    uint8_t associativity;
+} __attribute__ ((packed));
+
+/* SMBIOS type 8 - Port Connector Information */
+struct smbios_type_8 {
+    struct smbios_structure_header header;
+    uint8_t internal_reference_designator_str;
+    uint8_t internal_connector_type;
+    uint8_t external_reference_designator_str;
+    uint8_t external_connector_type;
+    uint8_t port_type;
+} __attribute__ ((packed));
+
+/* SMBIOS type 9 - System Slots */
+struct smbios_type_9 {
+    struct smbios_structure_header header;
+    uint8_t slot_designation_str;
+    uint8_t slot_type;
+    uint8_t slot_data_bus_width;
+    uint8_t current_usage;
+    uint8_t slot_length;
+    uint16_t slot_id;
+    uint8_t slot_characteristics_1;
+    uint8_t slot_characteristics_2;
+} __attribute__ ((packed));
+
 /* SMBIOS type 11 - OEM Strings */
 struct smbios_type_11 {
     struct smbios_structure_header header;
@@ -232,6 +270,44 @@ struct smbios_type_22 {
     uint32_t oem_specific;
 } __attribute__ ((packed));
 
+/* SMBIOS type 26 - Voltage Probe */
+struct smbios_type_26 {
+    struct smbios_structure_header header;
+    uint8_t description_str;
+    uint8_t location_and_status;
+    uint16_t maximum_value;
+    uint16_t minimum_value;
+    uint16_t resolution;
+    uint16_t tolerance;
+    uint16_t accuracy;
+    uint32_t oem_defined;
+    uint16_t nominal_value;
+} __attribute__ ((packed));
+
+/* SMBIOS type 27 - Cooling Device */
+struct smbios_type_27 {
+    struct smbios_structure_header header;
+    uint16_t temperature_probe_handle;
+    uint8_t device_type_and_status;
+    uint8_t cooling_unit_group;
+    uint32_t oem_defined;
+    uint16_t nominal_speed;
+} __attribute__ ((packed));
+
+/* SMBIOS type 28 - Temperature Probe */
+struct smbios_type_28 {
+    struct smbios_structure_header header;
+    uint8_t description_str;
+    uint8_t location_and_status;
+    uint16_t maximum_value;
+    uint16_t minimum_value;
+    uint16_t resolution;
+    uint16_t tolerance;
+    uint16_t accuracy;
+    uint32_t oem_defined;
+    uint16_t nominal_value;
+} __attribute__ ((packed));
+
 /* SMBIOS type 32 - System Boot Information */
 struct smbios_type_32 {
     struct smbios_structure_header header;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 14:12:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 14:12:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234523.407072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhNt-00084Y-VD; Mon, 29 Nov 2021 14:11:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234523.407072; Mon, 29 Nov 2021 14:11:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhNt-00084R-S0; Mon, 29 Nov 2021 14:11:57 +0000
Received: by outflank-mailman (input) for mailman id 234523;
 Mon, 29 Nov 2021 12:59:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ajmq=QQ=gmail.com=blsv.anton@srs-se1.protection.inumbo.net>)
 id 1mrgG3-0006hC-RG
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 12:59:47 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a96d6c6-5114-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 13:59:46 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id bi37so44353827lfb.5
 for <xen-devel@lists.xenproject.org>; Mon, 29 Nov 2021 04:59:46 -0800 (PST)
Received: from draksrv.localdomain ([188.187.75.98])
 by smtp.gmail.com with ESMTPSA id g6sm1335958lfu.86.2021.11.29.04.59.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Nov 2021 04:59:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a96d6c6-5114-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=umzZaYOF+dL4hqvZe222a+3Qiotff+3RWBjwx3Fvnt4=;
        b=At4RZ29jdQ2lusIxL88Ii8Tza1HcDcK8CXkOnNISU0uJZtChtFikY50rZ86GWN1wDi
         l4VyOqIaUTKUBFr1i37rnmhravocHxGP34HD/87FCNyC4erRUOEUOrm9N4yZ/tjP85Hw
         ZUkqlc8fartAPpQjWFlobnHdm3nbskfVN4MET7zYLmCM/BRUWBTk6PmGYYI6++sw97kU
         8PkvBejWLvzETeUOOypD+QfJa+HODE5C4j7C2M/8w0d+s53gJvAzJVBMBhUOzzDtE+0o
         z34tm32UIa3+MLO+9zGnJIsGuzRJIN/s+LZLgp2wE1JFR+mdA8PjtVfkyZr9TYbBWnMj
         NvOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
         :content-transfer-encoding;
        bh=umzZaYOF+dL4hqvZe222a+3Qiotff+3RWBjwx3Fvnt4=;
        b=g96ufMnurSMySLs8hwKZvRZwFGi3lo2RyJtWGU7ZGr+qmbNHvMIuTFMus8qS2j2A8I
         m0E0LmzfGiTuw8+tZaywjDLz0w6mEm6itzj2872XsKOLveNsVL14Ecgj61nqxo/PHaDX
         8hZ9RhTFV3emb4/XjqD463Hh8I5xrfWA+WZkSY8yHjD1XEnfZqCQcQPlubJtwM/4Zf1g
         iOTy/sM3zqTqPjBpomiQfefRVm0KxhfWl4XRTvNiJGpc9VRPDc6rMwFtLZ3ux4lby9kM
         zGpGGo8noQujfye++KPKef9RvBkUjm1L72crdWK8OVcMemrkuNAwX6z0H0d26W9nW4HE
         lmTg==
X-Gm-Message-State: AOAM531rnhHw5eDk0ou3uQGyJ8jON9nB7cDBSr8gy7GIgQF4YZHIBznU
	R9Gbk9ccOv8F6xLy2SP/rI2L57+/2vo=
X-Google-Smtp-Source: ABdhPJxssPUGhndiwjvz9/qWgGyDLsK1FhEYIxOvKrvOel4CvzIUJ9EdGcAUsGyMbjSM0ltVN7QkZA==
X-Received: by 2002:ac2:4ad9:: with SMTP id m25mr48044693lfp.193.1638190786239;
        Mon, 29 Nov 2021 04:59:46 -0800 (PST)
From: Anton Belousov <blsv.anton@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Anton Belousov <blsv.anton@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	Ian Jackson <iwj@xenproject.org>
Subject: [XEN PATCH 0/1] Add support for SMBIOS tables 7,8,9,26,27,28.
Date: Mon, 29 Nov 2021 12:59:28 +0000
Message-Id: <cover.1638190663.git.blsv.anton@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This update is done to improve virtual machine stealth from malware. There are AntiVM techniques that use WMI-queries to detect presence of this SMBIOS tables. Example: "https://github.com/LordNoteworthy/al-khaser/blob/master/al-khaser/AntiVM/Generic.cpp"

Anton Belousov (1):
  Add suport for SMBIOS tables 7,8,9,26,27,28 to improve virtual machine
    stealth from malware.

 tools/firmware/hvmloader/smbios.c       | 146 ++++++++++++++++++++++++
 tools/firmware/hvmloader/smbios_types.h |  76 ++++++++++++
 2 files changed, 222 insertions(+)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 14:14:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 14:14:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234576.407094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhQ6-0000tR-Nr; Mon, 29 Nov 2021 14:14:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234576.407094; Mon, 29 Nov 2021 14:14:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhQ6-0000tK-Jw; Mon, 29 Nov 2021 14:14:14 +0000
Received: by outflank-mailman (input) for mailman id 234576;
 Mon, 29 Nov 2021 14:14:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrhQ5-0000tC-On
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 14:14:13 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a074d0e9-511e-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 15:14:12 +0100 (CET)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2059.outbound.protection.outlook.com [104.47.1.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-29-_D9rlL5fNEm3svZUeb4O1g-1; Mon, 29 Nov 2021 15:14:11 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5741.eurprd04.prod.outlook.com (2603:10a6:803:df::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 14:14:10 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 14:14:10 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR03CA0020.eurprd03.prod.outlook.com (2603:10a6:20b:130::30) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.21 via Frontend
 Transport; Mon, 29 Nov 2021 14:14:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a074d0e9-511e-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638195252;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=8zqj4lACxr1pCBahFuYGmCtNNgQ/IZice66D19Ean/8=;
	b=nh3TZMHcTW33JOG3CmWUCVKzfxI4o1RoHYtjImYq7/vv7DRMmK34nIV5i4ppHFrSu2yKA2
	Iw08xRrimehbHvQnetvFX7CG2tLQ9UJbD9zUfsdMRME1Zw8UYNtvXBRu2QqiSzo0wW8SuT
	apMGsImNuB30IHxoRe1bUHUq75Of2u4=
X-MC-Unique: _D9rlL5fNEm3svZUeb4O1g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XwHddQ4UyPJcAs3dWKBZuZnKDly5IwC6FnIrDKPYeaYIiEeu8BCgGf4myzk66po0gAyW0mskyjrVenrxJmgnS54yl/61LI3EP23ymW/HoAoZ/d7fGyOPqgNRvXAd4ml1a8F4N5PHatwOHf8vdTjuSNe+iMRfavE0rhKHxUXIWlhuoN28ahPTIKUqDdua5r9jj0CSod5BkZ0pXiKaoE/v756yaXcgB37KUCzI6L8/FMZTbnTLBAgyGjKw7UqqZW/54ierCJ8soxz7K9brDUAZg9b3Ols0KEoQY4V+nSXOEdCrpUNIa4VgF2Fn3Rq02cF3KuwKl78FLvcCYsE2NN+cbw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8zqj4lACxr1pCBahFuYGmCtNNgQ/IZice66D19Ean/8=;
 b=cu+RUHsNKsiuU4q8yvGkcR4QbrXmCpFlRUVjck2KxViiCpcoHa1MLatX05Z70uOpJKzZ3dlBIom0pAyj2z0N3Z6t4Ea1kF0Gf6glBHmNeIhuyHiCvsnZbkiXPcwZ3geh0uvZ4/qDQNO40c2PxCtIfM+3zWOb9/K4E+++EdL2DDjtA/UsMScvDC2tOJSWCRwAzOAlxtvSq3A9LRXwingYdX6nPolKium7h42Kev5dZJB/6WgKiaL93LluWsAeXn/FtTx7ybLBjaJyoFFpyOBOFSiNei/VY1IaqxroQKY3SlM7jr+tDKbfYD432QdPIz9AJDnomp+PTz44oD3mKbuXqg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9d777064-f721-8594-7577-ce0cbf67c36a@suse.com>
Date: Mon, 29 Nov 2021 15:14:11 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 28/65] x86/hvm: Annotate fnptr targets from hvm_funcs
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-29-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-29-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM7PR03CA0020.eurprd03.prod.outlook.com
 (2603:10a6:20b:130::30) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a9658e12-de01-4ddf-6798-08d9b342832e
X-MS-TrafficTypeDiagnostic: VI1PR04MB5741:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5741E767806353BCC6589F44B3669@VI1PR04MB5741.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jM6sb/HXQs9AMKi6toVnOAnhamT3ghKwOfI3lYNQuDf953UgCTorn9Khy/4Jc3CHqpoJVLM0vD76TLHno7d5+k9QWtcEuXCCe82VUKarZGsO/KyTANbmbGfY1sswH4q7ikc8SPbUmUNgmgATJ+vrCJEH5QXz7hT2FByFgbe3UsZIX7X9FwqnpiHlhvOBk1yEQJOtmHiXQFjWUBuP/7DvURBGiwifffunJOKwM64UbkgzljuDbfOKsgaRwemZmS3AGUw3yQBkQJ6KMJwusdkkvlklke9C/FJm027joz+b7M/L13A8MnVosKQNCtGX8MdsSa9WI0OJN76FDqDcijFevlJEklwJJqBpFTZQ3V71PgFenohergmrpFcu5dDuFxhjVSC2x4/E07WpsfQXozX7HJswFmG8biyODxvlhc9PRJIy3vhU/muQuUqeKPZMa4+ME//0z4kDPOeTOfTOSbyu26SAjVptAEt7leO/IiMQ3+cxznjqnHxGmUVAP4M6w+CAvGeYls7ZJUCWUhDlKJDj4N9D9m5zgc6hqfLKHSGgpPyORSDEbNSo+rS0RoQNpk1v1P0OQH0pKRuDHJE5g0+wPKmhC5DLKwKjbyeBA+unP+PTlJMuU/V4UuZGc11Nx6GsKAqMDvbpcPSMtOTQtRk9UqQkyAajHrkoN/Kd1wydzIjiSJg638AAtPIO1dgJn0QUZFck0+TH4Dp9kRxYoJ8EPVupusmrhZRhZpKf63hyqmI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4744005)(53546011)(6486002)(83380400001)(5660300002)(26005)(66946007)(54906003)(8936002)(2906002)(8676002)(4326008)(66556008)(508600001)(38100700002)(86362001)(6916009)(956004)(36756003)(186003)(2616005)(31696002)(31686004)(316002)(16576012)(6666004)(66476007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?alA2U2o3ZW9vNnhUNWhBS3dLRkF6clhoTU0ybzI2a3k3UWQ1MVZwTzJFR0Vm?=
 =?utf-8?B?TTdRazJadS93cFlna1pHd1JnWHAwMWJIaktQNDdOSXRyMFphYWZBcHdYMEth?=
 =?utf-8?B?enEzeUwyZHlXUFZTbEZlSk1qSFI4U01ZSE5RelE3OENKZFVFNEJFVFJuVURC?=
 =?utf-8?B?Q3FIQ1VKVTl3QjV3cDJ3ZUVwMmgvbU1pMEpPUzlSY0ZNd3dEQ1JEMmlaVHp4?=
 =?utf-8?B?Z3hqOFE2NEMzZnBXSEhjUkViOUdMZjRid29ib3d1KysvOWhSN0pQQTYwVjhO?=
 =?utf-8?B?eEUwL2NTbHVrZWJzbW1Vb2dCaXoyVk1vSjkreWs1V21ER3pqVDJsRisrM3Iz?=
 =?utf-8?B?Z3gya0c3Tk9MTzFnZ2ltQjNXZmdLK3BtZFI3VTErQklHUW9nQkx5ZGxqQzlG?=
 =?utf-8?B?V2lZYzBacU0zSmFadGM3NGxENm5ZNVVNRmhWT21veUNBS2VySkhtN0xObGxl?=
 =?utf-8?B?eGlvWlpaSmQ5ZXQ2V2xRb2RCTGo2SGc2anpHbG0rdGtlYU5PdVBPdmdQa2xj?=
 =?utf-8?B?dHRXcFF5M0FTcmpmSFNRQlY5YUlnZld0dDYramhJZGJRK3NDNUJUZjR5RjJD?=
 =?utf-8?B?SE95SHdmMmdFclRWVmF5QzZLNTI5eHZuN0xTc1hERkFtbEpVVXpVZ0hiQkhQ?=
 =?utf-8?B?K2k1Q3J1aHZYZkpReUFxS0h6cjJ5VFgwb3RzcFQ5b2xYZmMzQ2ttUnJVRE40?=
 =?utf-8?B?WFVWRUNOUGlPN0pFdWxvcTJIckRvaHFXZ1ZVanRPZ3pBRmpTTVFWbkZqZ3NJ?=
 =?utf-8?B?WHkwYVBPVDVPRUlJUDluaUJ0MHk0R0w4eEFqTCtuNFozRWVSaDByN0E5SUZO?=
 =?utf-8?B?MmNqc25ibHlyWjlzZS9vY3BqdllNdG9WNFJ5eWFOTFF3MjlZdUM2TlBkWjJB?=
 =?utf-8?B?RkRhUUlLWmg1Y1FzTTFrVEQ1bTg4cCttOW9Vb1FDSzFCZmxhUExJdFpKMDgy?=
 =?utf-8?B?VExhbHVWekI4c1dzbVJpS2Z3dVorZ3Z4M2M4S1VoeVBleURDZzd1R3hBZ2N3?=
 =?utf-8?B?MGM1Qk1YbVNCM0JZWHZEbUJvL3lCRlZISmJvQ2dxMTZpeU5UMVRleE9BWGdm?=
 =?utf-8?B?dVY2VWRoMlFKS2x5M1MzTVRidjRZSzgvWUNOU1BkZ3dNMm1yTjMxVVFKUVNy?=
 =?utf-8?B?N0ZGNUg3T2VXV2FYRDAwT3NVMjJRVDd5bm1VdHUwbUpqWktTdTRGd2lSL2xP?=
 =?utf-8?B?dS9HNVp0V05IU0FkNk9HdG9mRlo2T09oczRsVXp6VjgxVGpRWDc5VGpvL3Z4?=
 =?utf-8?B?ZVRuME1LRFFvWWhmNTRRQTdBbGQ4THBQMGdXb2dHODYrQy9oOTNnVVNLa1M3?=
 =?utf-8?B?aXBZby9QVVR4dGVidzRhQ0dYcVdPS1E1UG5DUXZOOGd0RnptTDNaUm9CYXJW?=
 =?utf-8?B?WHdIbG1lTUpSVGJRRm55VUhSaGdZYkZZejdiQUFGMkNQZ1pqS1h2Y1ZEYlZy?=
 =?utf-8?B?d2lOS2dSc1FTZ2dqQ3l3azIwdHNjMzIzVFFqcE9NWk9CM1JZaXQxd1hSSkZw?=
 =?utf-8?B?OVliTFBUcFV4SitKWlNMZkNWc1M3azhRemFQeEVEMys1SWp5UHQzUHVvWksy?=
 =?utf-8?B?K1Npcm93bnZSekJBNm5INTFXbmcvK0lIdjlLTDJ2ajZiTlFRSjh3eVQralpy?=
 =?utf-8?B?Zmx0Ri82Q1VkZGFsNXJvM0dsYmZlbVdwdGI5TUVzY2ZuT2c4YlIzVmp0dEZv?=
 =?utf-8?B?REVCUDRzaHB0THBHMXZxWFBPODQ5ZFRvblAybytvVUUvcWV6WTI1bkc5MXVZ?=
 =?utf-8?B?VThmOVczek9mbVg0TEREcURudEdTR1EwSnFRWmdzb0FWZjlZOTduM3E4bUF0?=
 =?utf-8?B?aGZ4bjhWb2xCQ2RVRzVqT1dwbU53RFFDR3NubEFxSFVSME1JWkFEeU1NOFJK?=
 =?utf-8?B?cnN4TXR3YzNHb0NUT1cwakhRakhYVTlLSnFHcWVxeEVpSk41ZlBlR3hhY3la?=
 =?utf-8?B?RVh1eHViV3Q0NDg0NkNzbUlsaWlsTmxmcmYxYlp2MDlYZ0ljb1FxRk9RZ3cw?=
 =?utf-8?B?bWhKVGNsRmN2eEZGNEZBRGJjV2RLWFgvcHhLTUMvQ29CZzRxR0ZKTEk0NUt3?=
 =?utf-8?B?OXRJQUNhVjB5ajA0ZzduMSt3OEpoSUdyMW9sa0pFNFJVaXpNa0dVNHFPejhT?=
 =?utf-8?B?S3FaTzJFUjJTYUNCL2thYjBldmZ1byswQXlUVEdvZ1RrR2dWajJUaTlab21F?=
 =?utf-8?Q?0ksq9wc6qYuwW6mmUi5RI5A=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9658e12-de01-4ddf-6798-08d9b342832e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 14:14:10.1424
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yguq+K7RUdVhzhv+xiVvzWEu6pu7KLbTPC2YanU9mh0HbTS+xd0PEYdBSZQ0i+8tWVHTW00oM//F7P0ElMZc2Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5741

On 26.11.2021 13:34, Andrew Cooper wrote:
> In svm.c, make a few rearrangements.  svm_update_guest_cr() has no external
> callers so can become static, but needs moving along with svm_fpu_enter() to
> avoid a forward declaration.  Also move svm_update_guest_efer() to drop its
> forward declaration.

Sadly this means svm_fpu_leave() is now far away from svm_fpu_enter(). Can't
the two be kept together?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 14:22:37 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 14:22:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234585.407104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhY3-0002Lu-Gw; Mon, 29 Nov 2021 14:22:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234585.407104; Mon, 29 Nov 2021 14:22:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhY3-0002Ln-E5; Mon, 29 Nov 2021 14:22:27 +0000
Received: by outflank-mailman (input) for mailman id 234585;
 Mon, 29 Nov 2021 14:22:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrhY2-0002Lh-5R
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 14:22:26 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c5bed78f-511f-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 15:22:24 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-22--ldl1ypJMSCB1RmD-_U5OQ-1; Mon, 29 Nov 2021 15:22:23 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4847.eurprd04.prod.outlook.com (2603:10a6:803:54::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 14:22:22 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 14:22:22 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0006.eurprd04.prod.outlook.com (2603:10a6:20b:310::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Mon, 29 Nov 2021 14:22:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5bed78f-511f-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638195744;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=dPfwG5bep37VB0qMY26d4FN947iRUIVyCDL6KVrRCMA=;
	b=cKm7IPFfjcxvVEyQA3QSQf/W/z5xXn2KbL7iInqSe8cZpj62RelK4XTctreqRGw+7IjbdM
	G/TIIEdehlCqo2WX8InoS6UcF1xQW4js7vSysI64SYl94LS5hBIcDYV1QAFePhUOSv9DhQ
	vTF3H8Y/Y0YF70Qfx/G906+vtB7XZK0=
X-MC-Unique: -ldl1ypJMSCB1RmD-_U5OQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=n8kHpprCWFjjrqRNN4LHXKbu4BogCYw85M1KPsKEGcUfzGcRlz/Xuzu5PoML15gyEj1TAd0MX7mUVm/s0o6L14wCmRDPHbNYrAvON2srBvVPO20vsszk7mgyJZ86Tphn8axPeTL/Gy3m0z0yLyPzomSuO+phsvlXLXV6ecpW5dXsS2OfHIfXL82VVgBzPvUZwPmMXXSMSsMnNpmoQ5r5JLLIACFbvJWiavuIbnATGjpq59BD4zNEo4wm/ssZcWAac5f/51zEfWa+91GKeITJbjiq5ynaQ7rVp2ZEQxdRGCa6EtzXpwJmF7n1htb9QrlorUPKVQVl1vHvijx1GzEyNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dPfwG5bep37VB0qMY26d4FN947iRUIVyCDL6KVrRCMA=;
 b=liRXls8DlBZiuvG7jiaIW+alYLF4kR6ZpnwyH9QRRgqkoijmYtQwGL+hGZlbirGXrd5KD/D5COD9li3nh5ci0vEJMZqRB4h6eb+zdlgmXwHPHtY4dujP7fFw16BmyFIdKFQWtqbiAA24UhwqEM9wAAYB57UJW0CV8aa8UyrpE1LSaO5B3NoxPrwuMuf9jxtblrfcqMZmOW338cm5p1ZJhPZKtpRUf0ynWBJuedS06wtdyMgSzkFbPFmqnMWAT9lLLV7rAa3e2pPslBBewvLq3mA+LIWn9/WJixFS8ysHj98SSSdXum1j1LZFacun4khJB//DiPYhU8bLKRo5R6523g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <be093075-204c-95e9-8506-841d9bb37aa8@suse.com>
Date: Mon, 29 Nov 2021 15:22:23 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 30/65] x86/emul: Annotate fnptr targets
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-31-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-31-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0006.eurprd04.prod.outlook.com
 (2603:10a6:20b:310::11) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a2e7664d-8f9f-486b-b735-08d9b343a867
X-MS-TrafficTypeDiagnostic: VI1PR04MB4847:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB484727BA55180D79908EC351B3669@VI1PR04MB4847.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:4502;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	mtg+wK9b1yVwIYfyD7vUBtuwFj7FTnmWzk9PVj+Vc5/bDMI6xJ5dvyorZP36lTEd3UdWfBd0X3xChuQF4CyTmduoQWfOjch3ldgIRsEH9/QLdhu/XVHElnEfoRTuTq0/0/GWfrpxSGZCXIgw+1CvjNX9BnFLnBrjUWE1wxMrJv/0EUGZLXh8E/dKIIIcsfq4VQdFdkocmmPzQaBfu3eq0oDGit7VWbcRTRyVG8dg4FJH7ZxBPlvIMoBTD5Kb0Zgi6z6O5dYBZuQwXd8IT6z3oVWtcT9BSDnIx4M+OhB1PTLqRWxo7tiHUiok6tvUYA0et1N90Qrq0ewUiY85MWe+rcVyycWK3bVwAEW/kBe/Sz5AY4/K3sY/uOpN7z3u0MG2cVcsCp2TIs/u8SSmanZLvOT+Loq6Hp07nPqp9YAg3J70smgXMXTBqRQV8vqLy+WJqqJW3Xalfhkt7JBVHqn6dX2m0oPQ2e0rK5hOCMjM9krN7xhSthDIhri9M6g0RnE5mtIHzAD+oJd8hl4AHtxOpI+w8tLgQbcJE9kplQ8GFvlCbwVpAJR42Ub0Hpc6Hkru8ZuC1f+agHAZYc2mOxurBfJIn1yYHshAW9yfEkPm+gmPXnb3A0hVA4w76FsDaOcjSKaFn/OH5tafbdCZtQJzY8wCRu2ol7/BKP9slMZbGpLZTrsPVI6ITvu7KC6cx9feqtxDKpFvUnvZeZaPOwO20OifSFbOIfJ0KfrIyU7PT90=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(2906002)(8676002)(36756003)(38100700002)(26005)(86362001)(956004)(66556008)(66476007)(66946007)(4744005)(316002)(508600001)(5660300002)(4326008)(6486002)(31696002)(16576012)(8936002)(6916009)(186003)(54906003)(31686004)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MWxibXkwcUlCLzZuK2FiKyt5bEFDVGk1cDArb3cwaEh2MDgxMnN0ZWVaZXlw?=
 =?utf-8?B?aDBxZHdOWGVWUCtGYmxDSUpyYmdBZi9RSWZTNjl3RmdCU1RlSVNNL3FQZ0dM?=
 =?utf-8?B?M2JLTzNrUGlFNzVpTndNU0JaZjMzWXJFcm9vdXl5RzluZkpMU2x2MzY4K3RV?=
 =?utf-8?B?bS9wTGJpZ2FuQm5ucE9VNHlPbTkvM1lYYlhWMXp3OVhTQ1BVV1lkSFYzT1hy?=
 =?utf-8?B?L0RkZ3l0dldQbUtkWkJNNjJ0aDB2ZHY0cXN5dmI3ekZjczNjdUU5NGNnZXpO?=
 =?utf-8?B?aHN0U0pPTVpGdWhXeXBYV0x6S055RS9yd1JNSmp1MFk1WVVJUCszVXhPQkFp?=
 =?utf-8?B?OXRCRDN0MFd1SmRjR3dhMnNGcDZBcmk4VHJHdW93WjQ5UFVQZXVXa2IrWFRj?=
 =?utf-8?B?MWlPNmhlWDJvVWs0UWVKZHBCOHRwVVV5ek9heklwVUY5bStTMlFLWE0xVlF0?=
 =?utf-8?B?bnlOVU1hWEV2ZkREcHRGVXB5TEZlSDRFa2x2VGpkWTlHb08xNGR4K3ZncmZL?=
 =?utf-8?B?UGJsS2dmUDFCTm1KQ0ZpQTdHSE44aWVyRjYycHdDSFBTUDgweDZReVFoQS9G?=
 =?utf-8?B?S1lpZkNCRHlUZjltbXNHbjg0SE5ld1htK1cyVWVPM3ljVXliTllpMWhvYkla?=
 =?utf-8?B?T1pCdDIyVDhUNUl2YkpYOGJ4UFljci9mSFY5dTJsV011UGpGVExiYStLSzBk?=
 =?utf-8?B?TUFxZStObWFlZ3U1b2N6eU84Z3JhY25jak10V2xGK0twc0l3UFhmalhFNnRq?=
 =?utf-8?B?NlRPbENZdTVwMzJCcW9NL3NRUDhZMlFJTmdHd0g2aWVIdnM2dWNlaGtic1Zz?=
 =?utf-8?B?VFlRVHQ0a1hOb1BscnlkbXJIYVhnRFdTRk95alcxTlh4andodVlNek8xYVRB?=
 =?utf-8?B?WUw0R2E3MFJIeVZsMGU4ZGs5a0swWEFxQjhNWlNubFRra1dMWWo0UlJjWjJO?=
 =?utf-8?B?cnBSNWlBdWQ0YnhOMFpYZWNBVlVrMmNRTWhTa1k3dkZFQTNyc2dKd3pSMVNU?=
 =?utf-8?B?SG1tU2NuZWdpT3grMkdSZFp0MG91UEhxVSthR3d1aHBaUm5Tb0laUDFsTkZL?=
 =?utf-8?B?TmtFK1lQOU5pL2xrN0xFdjZVUE1zc0phN3RjdjQ1R2ZPZVVuNm1STzhOdk1E?=
 =?utf-8?B?WEIzOVBZWTE2QTVvSERPNGhEOUJDemk5RVpEUUVMQ0RpNlkyUklvRFdIdFhF?=
 =?utf-8?B?cFFibllMVGJ2Wnh6SHdRS0o4TGtYbTMvQTlIeWpvRTlHSGdmTWd3UkRXVEEz?=
 =?utf-8?B?WjdZclJDekQ4K0drblljWGpIRHBrR1l3QU5jYStyenJ0QUtlTXlpYTlvT2FP?=
 =?utf-8?B?TUJ1ZVpQWkc0b3I2WDgwUmdlRjBDSGVFQnU0ajNTY09PQndBL2JYakdTeHNo?=
 =?utf-8?B?aWY2OGF3Y05PTXhxeTMyLzNRaTlla1J4RUF0c3ZXUDNFa0tSMk9FOWNaSGho?=
 =?utf-8?B?VHRtdjZlaE0yWE9KK1RsRU9uU1p4Qkw1bW50bk1jY3U3MWFMT3lnSlFuU2RT?=
 =?utf-8?B?UlBDQWxFd1NIUmEySGd3MC9uUlJUWWhNbEpwMGQ2TWRTWTZyaUh3b0JhSG4z?=
 =?utf-8?B?d1pNRHh2eVlDODlHQVA3dVY2K2ViejlGaDVUd3J1alBWdGNHdTFyZE5STG1X?=
 =?utf-8?B?eHlEeGIzR2Y1b2xldkVvRVVJMzEyQ2pJenZlMEt4MWJQYWxScHBqK1M5dm8w?=
 =?utf-8?B?b2tRMWxabWF6MllDS1c5M2F5M2xDbXlpc2dnbVJOdUI3MVNQMGlmM1o5cExs?=
 =?utf-8?B?ZDJvZWkrYitqK0FLa2Y1bG1NVGF1Q1pxZVJicWt0eTlaaVNCYnZTVGJvaHJr?=
 =?utf-8?B?RStDZzJYRWlmRDZlNFh6eGx4YVNYdDBXb0dhRGs2L2gvNHl6Ujd4NTRhdklp?=
 =?utf-8?B?Y2FzOHZGR1ZCcUNVREgwQXVnZnY3M05UTUVCODNON2ZJL1MvYi9pMGNONzF5?=
 =?utf-8?B?MGVSN3RLWEF4L3VrZ2xjcVRpbXZMbkJXdTVPaGRxQWdaTnZ1R3h2bEdZdmtZ?=
 =?utf-8?B?U00rRnR6WDRaZGhTZnQwb2ptM0prYmFVSjZBWGVQQ1htdWJnRFZRMU1TQ0tD?=
 =?utf-8?B?MWNndmdPM0xIM3NvOHpuQTlaRjhsT0JLaG85Q0pqckt0VG1GYVlPOVM0cStB?=
 =?utf-8?B?blNrOUdhcXoxR3NrR0JoM0pIZ3E4cTJ2ZlJMOUxkeWRSQkQwZXZZYVBHUmZT?=
 =?utf-8?Q?nWrEGTqZZl95eKd/SQPrS/g=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a2e7664d-8f9f-486b-b735-08d9b343a867
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 14:22:22.1064
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3xnR22kCgl2k5HcBH+AMWZ4ZjooSMS3vUUpiUm4LxaB33hKqlqglZhD7OLk4Cb6mC+AaAMyDspv3JpL0BA2GtA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4847

On 26.11.2021 13:34, Andrew Cooper wrote:
> pv_emul_is_mem_write() only has a single user.

Aiui you mean a single file using it; there I can spot three uses.

>  Having it as a static inline
> is pointless because it can't be inlined to begin with.

As long as it's only used to set function pointer fields, yes.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 14:34:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 14:34:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234592.407116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhjB-0003rI-KR; Mon, 29 Nov 2021 14:33:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234592.407116; Mon, 29 Nov 2021 14:33:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhjB-0003rB-Gv; Mon, 29 Nov 2021 14:33:57 +0000
Received: by outflank-mailman (input) for mailman id 234592;
 Mon, 29 Nov 2021 14:33:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrhjA-0003r5-6T
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 14:33:56 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61522397-5121-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 15:33:55 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-22-qqJAP19gOI2JZgPqYUqZoQ-1; Mon, 29 Nov 2021 15:33:53 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB2959.eurprd04.prod.outlook.com (2603:10a6:802:8::25) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Mon, 29 Nov
 2021 14:33:52 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 14:33:52 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR05CA0029.eurprd05.prod.outlook.com (2603:10a6:20b:488::8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Mon, 29 Nov 2021 14:33:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61522397-5121-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638196434;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=80HM+vVH4HR29fbmRWlk816mx/hHXCJtIKvfYbWGsjI=;
	b=PX+803j8BALeiLWvP9tFBEOCHMIL7cGoxkO5amwvHP7AMsD6fcMVLd+5mqfDQ3Cd7sY+Rg
	78AZH2lCb4H8BmY/givGNJjKR8ewX3TT6SjvtIDNrMGklYJFf/zw7EPBpfEvtOhBm2AZnj
	Fn/aJon1IXVdpcPZMpugycRpgMkTK3c=
X-MC-Unique: qqJAP19gOI2JZgPqYUqZoQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JMwlTlWy7IaKx4l42pKropImf0e6fHkD5lHoh/DnrLDFUN8shA6gxdAzNRVAKvn4+n3kmVIZnPr22w4eJM6sUdI/vxtiluSbalYYdO+ye+Fq2IMrFyNrYNAAJPAm7Y2PCjmOwYWCwP5GMzh8cCQcAq47zyzKzAO3R1q8/y57PGeCx/DTynXSJFXqV8PgSVT6LilAJXpASEDZsphhWumggegV/V3Kb0WKMChwaZzY1tAsNbnj1DKclZvU77O686DNsB9nU5uo+ihs6m/V2kTMsgWDFnBQ2htGyiBrvY07xj/6JIgZ3GM2XTApJeotkMD3PpFhFVzAY4qo1pZw7DAARg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=80HM+vVH4HR29fbmRWlk816mx/hHXCJtIKvfYbWGsjI=;
 b=dvL+GjNOXEdyJEii0AGjHKjpQxj4YjJHxNvE8XtM+WRiGr3VnYhkcQMNzsu4uECMIugy1IQKUjWNCLXfgINQT6P2Uf7ojFAV8F1dHcvEI3HVkoY0aRLPeSdPH2H+eIJauMmQ59Ov/qmNXAn5AFqrSEzxzbK7WIRLiwprFWvV3jcEY0REuvGXiOlSRAk5ebsVXwo905GU/QND/FSf7tIqryMa2HnExp1ci9b2jHCy3qGADCAzenOAG+ekUiARj9Bpk6zpFPmDbmaO3j87l+w1Yp/2V6wiptxN8pCvja7i++UYiUbBg+HNgW0TcCPBImgI5jHGSbLAWwiRU26xHBX1cA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0b7fef71-6c29-554a-8c6d-6d1d91c8aeeb@suse.com>
Date: Mon, 29 Nov 2021 15:33:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 48/65] x86/aepi: Annotate fnptr targets
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-49-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-49-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR05CA0029.eurprd05.prod.outlook.com
 (2603:10a6:20b:488::8) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c3f26647-9c85-4748-58f1-08d9b34543cb
X-MS-TrafficTypeDiagnostic: VI1PR04MB2959:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB295970AE73ABA635C8B25694B3669@VI1PR04MB2959.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:403;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	y0+a9E2oVVbTUS+kRrhMAdXyJ2iUDUk81cwtBqyDjzcjLjPWMn9QTz4rz9BjUdvjOLxs8MXQMZ7FlIrpGvP1EIPBlllttDVM+o8GohSnQyPuX+KDeSo78T/srUMfgL7FwD/FKlGbPlV89RsVKtlHR+Q2oC+0kfqTQ6uazpDFvZnurU9tWTuakenWAzYSsYVRfi3BPUbca9vSQDHv2f92RCvmv58EWxfioKPhU5lmh0GIyfaoKuo4N0c6JDpM4/JmehhwJqRE6gzDwB02dzwE/IwuqKa0D5Bo/HgOV0HPs29Sb3LtHJblXVcinIkvlFBrdGQLxMbkyfVYu7huZzha0+9NZujqftTi7IgRRFa15wuHwjh2R2bciGCaDDXhp6gtTpSWz9d2/J8Ouo5KbRzXTk9OAr2GFpzSwBj6EGR0txgd7LTJCIgbtMeu9BtAUTrW9rGfo1Q80NDo3hHu5bmketi1d+U7nRoIqiAsq5Bzp02Xb35LwoZLh4bjDHYDSbo1Zc0K+UCxO+561vCWhYZ5+2xjkGtCdfO1XqZJE300Y46bb1BqTBG4JZclVS8FEySwZco/koFpSwS54e83ykeF1SLhRpczdAABe2LKiYfojQ1rF6Ks4KFb2sNsUllAQG4H3/DUpbOjNVfIS2sQ2At8+l0wfodkNGFNwW2pe9fhuA88Pu0SEW+mmOlIQACMHUJbzgVjP4Q8yl4aVq6ccd8OOKcjsyyDbm9XS4GQgzq5M0k=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(316002)(54906003)(2616005)(66556008)(956004)(36756003)(66946007)(186003)(5660300002)(8936002)(2906002)(26005)(66476007)(16576012)(558084003)(8676002)(31696002)(53546011)(38100700002)(4326008)(31686004)(508600001)(86362001)(6486002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U1pROUlmNXI0NkRlTkZxT2NvWFRySzkyNzBJM2J4NkJ0T0F0SmxPdnZzYmQ4?=
 =?utf-8?B?c2hYYVI5YmlFN3JidU8xdFkyQjk5dWt3aFVob3RxRENwSGFhMFpkckx2a2pi?=
 =?utf-8?B?bHdqak52Rm5NZjlxZ2NlVytjWkVPdUtGaWVlRGVtV1prVVJYSW5mY2t0TG1m?=
 =?utf-8?B?ZHdrdFlYOEViSnF3SWZEanBWT2tkYldPUFRmWnVBVzB5eTIyYnNCLzNzMVhy?=
 =?utf-8?B?ckk0UHU5Wm0vc00yVG9CYXBoZUpRc2hTUDlzKzE0dk1KeURiWE9VMFJiczVo?=
 =?utf-8?B?bzFTdHYyYlVhL0dYbGVpQzdTYlBxQWJHV1lvd3lzYm5zVzF3Q1VZdnlNQW1y?=
 =?utf-8?B?cWFzUWQyNjhVNWpmK3hKZWJPQStwV205RTZYZVIyeFFTODkyaDFlNFVGUGF5?=
 =?utf-8?B?TlFTeXp4bkpITVVKZFhTakJkSER6KzNENWxsMjBBSVBVYS91YmJoYkdjN25a?=
 =?utf-8?B?dzRzOHh6TDc3cks2eEtDQzlnRDlDRHl3V3U0ZThpUnBMbktCRE00RzFpYk9V?=
 =?utf-8?B?T3Y0UlV3UFhmT1pPNTBEVTdnNzQrbmp0YXhVUUtPUGF2eW9EYWU4bmJNbjRt?=
 =?utf-8?B?VGdKdjNOMmlmTDBOUkpYdUQ0NkRXdWVGUlNTUmpUSnVWRmFIRDJTSXp3eVVW?=
 =?utf-8?B?WXdxUm1PWkVaSklQWTZpUUtaTk9CRVUvSmh5NjRJUmxOZ1ZDYUU5Y0lWdUN4?=
 =?utf-8?B?MXpPaUxSVUp5OGl5MzR2WFREVHIxaHBjbWUvZFJxRTRvUjRwZUJOV1FiQnJE?=
 =?utf-8?B?UHBFYzhYNVBLa0FwZFdzS2NtSEpMMS9aektZVlNuYTZyaWRybWZOTUFlckVv?=
 =?utf-8?B?dUVMVTU0VVZVSS9TUTFqRGFHT3FHbkEzRU8wYzNBWWo0WDhjQWlkUVVZVnFl?=
 =?utf-8?B?c1Q4ZThhcW40dGlCSEtZdlIwRjN4d05SdUI3SDVUWUxyZk1IZmZ5aGJRSFVV?=
 =?utf-8?B?NFhzQU9NemJJWUZUYmx0K29Pb0xOL0s2NGhlVjVYOG94YU9uUFE1ZjJhc3dt?=
 =?utf-8?B?aW9zZ3laeVlEQUhHK2NaTGt4QTJFU1B6dEVJTjcyUlVCUXdaazNsc0hwR2FI?=
 =?utf-8?B?TEJmbDBuRXNwWVI0eTl5WUtQaG5nVjhXWG4xQWlHRHRWS2pFMFBnK3dmbFlB?=
 =?utf-8?B?SlVmazV0NGkyU2F5WFpRWmNrcXM0WUhKZWxGVnFjZmIvMzY4UzNHdUFTMWtG?=
 =?utf-8?B?VGpMcEFBcnJlSjhKc0xZSVAyN3ZFNnFSd2ZiRFFOTEJ1eW9VRXB5c0cwZkI1?=
 =?utf-8?B?VTBGdzArYThUSlV2QlRoSWtieHI2cmRHUnlUNXl4S1N5dkt2djdyU1I0RHR4?=
 =?utf-8?B?NHh6akRXTnV1ZGxHenBZR0Rsalo5VTM4Wm0yTkhMQjQwaDZ2ZmtoY25vN3Vy?=
 =?utf-8?B?b3I0emRIOUtWWEo0QzRvRk1DN3FNWHQ2Z1NLMGpFcWY2REc1eENVOHRvc0lO?=
 =?utf-8?B?c0dNZ3kxYkxqcEtPeXVDQmpCMnR4emdCQnh4Z3NHZ1VqV2dRakdiNityUzBs?=
 =?utf-8?B?QW45RXg2TGJJNm5YWHc5KzVybUo5NDNlZzE4Tkx3RzZqYW5SVTJBVXdJN2RL?=
 =?utf-8?B?SC9la3lkMW1VR3FlSkl4dG45eWlhYURKMmJoS0UxVmdrZVVoVklkNE9tT3N3?=
 =?utf-8?B?Yk9uSWFCdEtRYW9oZGZrR2IxQ2dUKzB3ZlZzUzBWV1pPQXErQk9UYWk0RUpo?=
 =?utf-8?B?TnIrZlRpVG94Um9xd3BhTEdzbE9Db014UFp5WWIvVk5wV2oyajA1ZE4zaUJS?=
 =?utf-8?B?Z1dndjZrbVRZSzdpTTJ4ZHNRRXA3R2tGNFQ1Ym9VbWVXVXM1MUU5SlpHYzUv?=
 =?utf-8?B?WWZjTUpNWnFiU2FxYnhtRDl4eGMzMXlaQnNTNllyNEpBN0JNRlRTN3piMHVx?=
 =?utf-8?B?dWt6RkpOS0hsekdPaXU3cWNBcUxUNkZPUDZLNGphZ0pwSWpHN1Y3Q0toUmhh?=
 =?utf-8?B?SGpORHdWUkNkRHJpbGxyR2tNU0NrczgzM2g1eisxU2RoMUtodjNVck1qS2Fx?=
 =?utf-8?B?MnB0Z3Z2T3dXVnpBTEV3OXMxRGhDSndjcDhMb2VtOERmV21BTHExd2hNelRy?=
 =?utf-8?B?aStjbVpaeVlqNUcxOWpuQkxFZ0FtakJvVU9ieERhNXhiUWVRTUR1K0Q5SFNX?=
 =?utf-8?B?aC81blR2ZFl0VFFpaXd2R21IUmZISnEwdWFHb1pXeXFZZndnTlZRVHlmUnlx?=
 =?utf-8?Q?I1f7Q5JqtOanc1mDzrzud6k=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c3f26647-9c85-4748-58f1-08d9b34543cb
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 14:33:52.2810
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jzDFQADmYAB3KXEKJnVk9fSGufWC6c15KZzBsek5fd8y5IF5F7TI5C9tMPoGZXlB0u6Z6TDvMSkfyFVx0COzug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2959

On 26.11.2021 13:34, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Nit: In the title I think you mean "x86/apei:".

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 14:41:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 14:41:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234600.407126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhqc-0005MF-Hu; Mon, 29 Nov 2021 14:41:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234600.407126; Mon, 29 Nov 2021 14:41:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhqc-0005M8-Ey; Mon, 29 Nov 2021 14:41:38 +0000
Received: by outflank-mailman (input) for mailman id 234600;
 Mon, 29 Nov 2021 14:41:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrhqb-0005M2-Jt
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 14:41:37 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 74474803-5122-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 15:41:36 +0100 (CET)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01lp2056.outbound.protection.outlook.com [104.47.1.56]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-1-XCAkVwWgN-eRmoqBgS9Nnw-1; Mon, 29 Nov 2021 15:41:35 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7152.eurprd04.prod.outlook.com (2603:10a6:800:12b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 14:41:33 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 14:41:33 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR04CA0019.eurprd04.prod.outlook.com (2603:10a6:206:1::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Mon, 29 Nov 2021 14:41:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74474803-5122-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638196896;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hLldLxqzanr/1+fXhyaA+tKXGIzZtY4THjrEVyz4E8A=;
	b=XZB8ogTHANTc90/zwjP0UYU1Q2l7+dWO74XOBMVdGcNT/8JPNo+zZjB5kp159rdTOMVNDB
	Bve8TgCeUVKtMADLppNrZhuvembcXUEF3wjPJr1ekZwNRwRk63C56ZnhzQ5kop7gbYF22N
	9OuX02SzYA+pd2/xXnRqSful0Oi1eGE=
X-MC-Unique: XCAkVwWgN-eRmoqBgS9Nnw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CZdrfTzo2DmFHoybMHTYegaDMicaLlsZfJOLXqsMhxedXlbEYOM6emtAWuC+nnO4rT7vM9HnQyRGTdqqfc3Vpf09mayL1L5+FGC2nWuPNipMq+BiBS1/1wRX9zeUnu8qh9JU3fSUdnKZjd8W2Cw/P6lFKJqiuLZRF2bgGdCFBysVwM3rLINmdzVlKXRREHEZkurgK7v5NRrptohL8TRSL1TgRko9PBV3QfLNuh4x1umCyjlHJgfBdgESa3bFiQTmJ/FE/5wH59wTYnkGUL42HJB6u1AlIXviOCjtqLQ3i6+hrFB2RN+eDO+KKmNnpo7tygQPEt5bDxcbC1gS3vCbiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hLldLxqzanr/1+fXhyaA+tKXGIzZtY4THjrEVyz4E8A=;
 b=a7aYRAqJnjwJX30yPSjiJf2YoCbHxqc9PDvLu3YndVJepS4+24WO4VASySnDXlSwyhFYar11hRXGMM6kvezt12w9g3vU3rLnkR3pT7YckgNgyXPMHlr7mf4vfg/NkcBNkFJuiiYoTCX99mlvm9vDhxpUm3SghWAQrH48KarvpVXiQn4i55Vvp/ZEFQ3B89V8kg/rlw6oHisVCkOSohEif95amleYjQesXVeaKffBBkC1+KeK5Gh3S/Qce282kTbEMYijCu8qL0f8ZNIRbwOKRShf04MINs43yloIxf3vEKbpRWN1tnoVWfeagEXJ/Hxj26bMhcWBjfokr2Brd4EKhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a171ee49-0ad4-858c-b999-7910b3d1195b@suse.com>
Date: Mon, 29 Nov 2021 15:41:35 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 54/65] x86/stack: Annotate fnptr targets
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <20211126123446.32324-55-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-55-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR04CA0019.eurprd04.prod.outlook.com
 (2603:10a6:206:1::32) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 110bb939-27ab-4046-77c9-08d9b34656eb
X-MS-TrafficTypeDiagnostic: VI1PR04MB7152:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7152F265BF7B4EDF591338B2B3669@VI1PR04MB7152.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	HFhCjuYf4UehTIzRJO4E6UY9HClzMnrpVS/1Ujf0Cae7JE9H+2aVk5wCitOGn+Mp++snI35aamR94CF56gc0VNrmwbiZX87WrkwS8uihv+NeUt7AuMc5dtfjmBCJEI1wmjOR4GUvSoS++fH4EZLsPfwjQa9O7JRxPFdxWaZ3AFnxnlGaKLZiUCFJsgt511LS8FHpqrBnEETqRhNOScRxX9CuMRPrvBs7hu7G88hsExFemVIia/BWOsQDW9tEXgVsjj73FtJR4KghYmUcQY/z6lzOKKiZwhS7UNzfkGqV92i6AhuTvqi/hpGW9CHNbSvKfRcHIMXIsGSK9sOqJqrr74FUSH/Bg25TQmA1eS/bSL9FRMBzNCJr1sTQZ8ldXWw9DxZoHlvwKtIreHublNS91+0XFL37gzVEhnbUZjdRZvht83SqXfw4KLkgTROHjX68JSTeA4qWknKh9mtUa8/AON5j4VkyrXga6LjesiZD51elDIRqQl8cFbHcYC7Y44PDwLlTRhteh/18CwIwqFb+zzaNjoYAYVP0vVNak4EFo2XLXfg8wuKgHhnoIv6FFNww8dGH1CETD3NSueHH10EqLPA+1l1YKMLwSsvry1kZBGUTwONvEdMXwoY2TabkCBl6lEGaA6nTtBMeGIc8q778HnxZP+Yf2oLpIzXDYr3dXjCQ/I+m386A8uxY/OZifyuq2B6GC33fIYJ0Jkn9lPWJJVFDIjyPsPeLcT40qqQyPtc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(53546011)(36756003)(2906002)(8676002)(956004)(4326008)(83380400001)(2616005)(186003)(8936002)(31686004)(6486002)(5660300002)(316002)(16576012)(86362001)(6916009)(66556008)(66476007)(66946007)(508600001)(54906003)(4744005)(38100700002)(26005)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Rit5WTUzYmh2RWRCQ3JRV1VyNGdQTHByMFlVN3ZVN1hzQUZ2K0FBbnhHeVM5?=
 =?utf-8?B?Wi9tc2JtWnJPME1Ddm1vTkxaZUpPV05ZSHBVanRvbklZeFNsZEhpeTR4aFB0?=
 =?utf-8?B?Y2g5MmFaSUdqWTZib0xHOFduYTFETXZCWGxzY2c2RWNlU1dDcU8zdkF1VTdr?=
 =?utf-8?B?MjcyTDhOTkczM0c1Y0tVYlRxYWd4TVl5LzFEaVA2UCs5UU94dHRIdFkxdGlV?=
 =?utf-8?B?TVNqTHdkK1cwVE5hM2VCVzNxbUdtQmR6WEJ4MUt0MXk5T09SaURGVmFucUxu?=
 =?utf-8?B?YkluK1ZoTGFwMHYzSDR4aitPRytlOUJSWnc5S3lJaWJjajdjRndNZ0pISUds?=
 =?utf-8?B?d0JPbEF0NVdmSjhPaFAvSTNSVUxjOEJ2V1ZVeXZRUFJhR3R6Smc2R1ZHVjJQ?=
 =?utf-8?B?VmU2b3lnVzNVMjdTMFZVbHpGam00RnlnVzVHaWtWQitVR0JreHhoQXBDNUVv?=
 =?utf-8?B?aE1mZHZRdE1INWtDczdmeVFnUEVzSDlWYS83eXVRaVoxcVY1b2JuZnozTWhx?=
 =?utf-8?B?c1JadEcrWXp1V0lyWGIrWXN5RDNORHNMcGdPWmlBNVpIeGJlMEF1R0NqYW9J?=
 =?utf-8?B?OWd3TTJFTVhOdnowRjYzcWZkSU5yemxid2pnb0lIbko3cy9obWxCbWd4S1Bw?=
 =?utf-8?B?UE92Q0tRUW1EbDM4VFZxdVdMT2dodUIyaXZHZU5TdGQ5QUd1OXA2dHNPUDFY?=
 =?utf-8?B?ODJaODFHSGdJVytxM0VyQzl3ZGVTVXpCSmYrSDl2Sm1TbzFWdVM1Sk5WWGts?=
 =?utf-8?B?bys4VndjYXNKZXRwSVhoV2duMXZodjgrNExjb05mUzI4RnBpUGl2Sm1aYWVF?=
 =?utf-8?B?SVdyajdIdjFQaGduKzRrUUYvOEZlYUlwTkRDdWlrekNGZ2prZDN1RjJHQU0w?=
 =?utf-8?B?Nlk2S0s1ZVhGZ3l6V1Rydjl2M2VyMDkrZ1VFcW1wTkNNZFFUSE0ybUN4bUQz?=
 =?utf-8?B?cDAzUW55eGQvOWF2RHFOK1lucVgxKzcvYnVoQUpNb1hrRnhSMzhCYWJFWml1?=
 =?utf-8?B?WFZubHpQWGlXVWRSaDB4aG1TdThRdlBBa014NHV6VDZtTGhRRHZ1d2EvS2Zu?=
 =?utf-8?B?Wk1xR0VHN2dEc2xsNndlRkFmOFlHYUdJSHhpQXBNaEtZYURiL1prY0ZqdzFR?=
 =?utf-8?B?T1I5ai92UWJBSUxwQmRiL3lsNnNBaTBJRzJ1Zm1WKzllT3NKdE5hK3pCeC92?=
 =?utf-8?B?VFVuS1VPNGVyVEhXajdLWmFtRS9mMHB2NTN6NlBmYis0NThSZDZjV2lhczE5?=
 =?utf-8?B?YTBHTlROdENoZE8ybVZpQk12b3ZhR3V5M0E4bTFRL1VReHNlRXBWTGFCeDVJ?=
 =?utf-8?B?MnNSNVYwcUh2bndHWkNQM0x0S1VSQkRPZmtHNkZKZ1crZEtSajVNN1NNTm5j?=
 =?utf-8?B?Qno4Wm51bmpQSXdoQUE4aisxelhFZnRHRURkUXB0SmtGQ3dya0J1MGpXR1BD?=
 =?utf-8?B?clo3aTdBditEejB2Z2Z1UmtBYXlQZEVNTGpNaWdsUWdJc01rRDlqSXNpOHpG?=
 =?utf-8?B?Q3kwelVick8vQzNXNlJJR3FMRDFSUituQTFycjNUS3pmK1EzQVRTRjdxbXhB?=
 =?utf-8?B?ZUhoWFd1SFExd3I1UWtYTTY5REtGbEdHeVNKM283ZG9JUVVXbFM0TDFkOFZz?=
 =?utf-8?B?UWFnR211aDErQ0h3RklnQWszYXRIenJtZTlKemxiREkrZ2JpelY2bmFvZmlK?=
 =?utf-8?B?OHI2VWREMDlHUnBHb0NlSGcyQ3VxR2o0cW5Fbm5iUDJzVWJvTXJuZFZhbTds?=
 =?utf-8?B?WXVIMzZsamdEQzU1eU01WXNXUmhQWXlvWUxOQ0IraUpENnpmK3UrT053RmRC?=
 =?utf-8?B?UURuV3RDM2xFOFpjRmpoODlBVWxUVElPSUNYbDVXWngrN3I2bmx1NWJjbm5l?=
 =?utf-8?B?MDRCVUtrNlZpSDlTS2hWTE5HSlgrMmtkYkxRRVZtVlBUamVFaWJBdWlKWjhY?=
 =?utf-8?B?UGROTmxmN1I5UzhYaDVKelJ1T3FubUNPSUUyaWJmeHF0L3pSTlNYekQzY29Y?=
 =?utf-8?B?VFdrLzNxbXpFTkZON2ZCd3k0bk4rVmpJMzZKVHBzaWVOTnh4NWQ3QUpCQ0NV?=
 =?utf-8?B?d0tNa0llQ3VrZjVLb2R3ekxDUGhONmkrSTZLakIvWmhIRnNjVWljVTZibjZP?=
 =?utf-8?B?OHNidm5TdGJqWXRyem1Yb0tib2hRa0xtcXdNNHdDb3VQTEtBeTduOHE0c1BC?=
 =?utf-8?Q?YoNg+dB+imJbQyc60+tO6Ic=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 110bb939-27ab-4046-77c9-08d9b34656eb
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 14:41:33.8379
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +7xMbviyC2TNkBcooXe5Jrt2KKAB5nNdgDxQdx98W0yHbkcUhN2Bald1E0TKqLH4RtI3x7P2/0KE3ll2Jj1EYw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7152

On 26.11.2021 13:34, Andrew Cooper wrote:
> --- a/xen/include/asm-x86/current.h
> +++ b/xen/include/asm-x86/current.h
> @@ -173,7 +173,6 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>  #define switch_stack_and_jump(fn, instr, constr)                        \
>      ({                                                                  \
>          unsigned int tmp;                                               \
> -        (void)((fn) == (void (*)(void))NULL);                           \
>          BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
>          __asm__ __volatile__ (                                          \
>              SHADOW_STACK_WORK                                           \
> @@ -198,6 +197,7 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>  
>  /* The constraint may only specify non-call-clobbered registers. */
>  #define reset_stack_and_jump_ind(fn)                                    \
> +    (void)((fn) == (void (*)(void))NULL);                               \
>      switch_stack_and_jump(fn, "INDIRECT_JMP %", "b")
>  

While the risk of use in a context really requiring it is low, I
still think we'd be better off wrapping the whole thing in ({ })
then.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 14:45:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 14:45:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234606.407138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhtt-0005zM-3c; Mon, 29 Nov 2021 14:45:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234606.407138; Mon, 29 Nov 2021 14:45:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrhts-0005zF-Uc; Mon, 29 Nov 2021 14:45:00 +0000
Received: by outflank-mailman (input) for mailman id 234606;
 Mon, 29 Nov 2021 14:44:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrhtr-0005z9-Ft
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 14:44:59 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec98cd01-5122-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 15:44:58 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2057.outbound.protection.outlook.com [104.47.4.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-4-lTUqHDYuO2i6FpHlvb1rjg-1; Mon, 29 Nov 2021 15:44:56 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0401MB2605.eurprd04.prod.outlook.com (2603:10a6:800:57::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 14:44:55 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 14:44:55 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0066.eurprd04.prod.outlook.com (2603:10a6:20b:f0::43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Mon, 29 Nov 2021 14:44:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec98cd01-5122-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638197098;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=l9uxBhHKCmsBO8I0UXqdQ7QHoBG74brimC5VB0jo+3E=;
	b=djWd5HsX75ERhQQrry0kn0DBVb09VZ3ykjXkTrcuxFN8HBR0OyLmeUtXkLxA7Mjhk0tigW
	y3pZy4tqbACv+agyOchk1/EOfv7BjLSUvr/tuFNuWLcd2zJkepBEzJHG6/cLb1/jvDpmfJ
	ennn2nZGbeIDEWVAFyevd0Bm9gdX+uI=
X-MC-Unique: lTUqHDYuO2i6FpHlvb1rjg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=j2o2xHaX3INpaIBpLymCgqYh7OYaXBpqn1sls2+e4zzMkTu6ZoFpRbixKZ/eDCG2oLlSlbNqLw0OAzO+B26So+k0IY7aLs7BDiSY7gZ+WHIHBfn9kzwouEAhzzQ85AM/p9rPlM6oLQfjsycG+2TZ2R3LNGovcWx9LYxMlt/iANExJps8hAyzXCSW/WNKAny/LMnznBnvEWhurMw2RRxYltnPIwfuLeExBvFEDYWABdKOm8usHz0cJPeURtBRzEsE5Gl6q4EdjTrwg8sBOvU5afbzxC6zDE+7LbVxqWY3Vo2RMs00DusA1rGkvOjsYc46ceekj5NFA/ruSKBRoPQR+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l9uxBhHKCmsBO8I0UXqdQ7QHoBG74brimC5VB0jo+3E=;
 b=e71uoWfwU5SHf4/MUKsKEIujukDqbEAuoV5umCagXweO4g09ixI4v3EtFr8aq48I6M0nBzKikfB+BasR6kBLlqWj742kBfhWmuz64aZHJDFx+Ez8OZ+BiQU3Z/tjFoBWjBqNSId5VghQ0XxWG6Cyn8a/V8C3Lmy1hjLwKyA7N6agrkqKLP7hessnaDfB/KM4UZKJPGByFjEsBGTZOpWbD9taQnB7bivyMd7XQhJQXsC5wC6GMU2QWsTqfs6n168a4GyxGYXPWqeP72DsBhnl6gFs7aLiZ1R3Aim9IwX/rE3Ple6dxcMW26hyq5K1sW8grOP/qoM+E6tlB5aLM6+lTQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <178aa1cd-b510-7e3a-2074-a2ae261d4975@suse.com>
Date: Mon, 29 Nov 2021 15:44:56 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211126123446.32324-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR04CA0066.eurprd04.prod.outlook.com
 (2603:10a6:20b:f0::43) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4177456c-a71a-4f1a-13d4-08d9b346ceff
X-MS-TrafficTypeDiagnostic: VI1PR0401MB2605:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR0401MB26053FF7007861B4A1630E75B3669@VI1PR0401MB2605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	UkWxZh/cO9hqwYEtKuaJdaVnhu8UjLSWMeJU3zHA7/lQ5C7H2lA3qtluS57qy9Q6ZVh/RMr7OfOphtBynhGqeATz3Vv8INzurXd/LWZsivAQlODWAJPH0iOIdckRkzqDAPylY47NvxEKvn/G11f4U+Ekf8WlhbtJdeeE3OIU6e3ngwzYRycyA7atjIdf1b0gfrtUnzRtYwAlUBgzXWgY26O3WyKH+42OYKaIJaZO2y16E1bpNOZT7jboz+OMobi0lYL3PVxdx7EdgXS+HzvKOdTLOdeD5eCCvBE6UGO97Fx63IKvxTGZmJWhrD9FcOAAuSMYWur8hq8q7DLjGR4nMJhR4OhJiGABLwtuufSu6mB1Tzoork88JRh+Ju9lQgRX9Z8fzQk7ySIBOL3UayXc2N+274erTZzIUnJxREvLGy5/opm/fA8PXEjt/qK2VsB435JJN1K8PrB7uh5gU0MgMu98V8QfxDony3bydqFBP0Rd8Cgvg0dUsBKWxjnrN5lAGZweJlBKZ+tGLN1Ro2g1qNZXA4fhxoNxtSZAKZmRM+3bHe83eTBwaOfjesglIC/9SHbVnju2ynhW7uSMrxY3pFMJErnu+tAA/RD9dB2I7kAA25/9lq4O+graEUswJv1u0NlChRjszxEt3/Wjkgp07nC/HG2V7ra8G5YaIaTOyByjATxlv3zKUrdxoywTIN5TP0CLC72a/ZPEWDmBSYu0qxg/aG2v+p+F6Y7+Ia6V8bZZCHyzGdKrl0CCtRNnknOMqVJMaWZrBr6LDj5ZhI9HUiTiU8qHsTiMke17yU+jFKfuvV38BFBISZP1YJsPntAIrb7DdLCOxHChsJFdkjnxmA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(36756003)(8936002)(2906002)(86362001)(956004)(2616005)(66946007)(83380400001)(66556008)(4326008)(31696002)(8676002)(66476007)(508600001)(5660300002)(966005)(31686004)(6916009)(316002)(38100700002)(186003)(6486002)(16576012)(54906003)(53546011)(26005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WkphVTJQM2x4ZEZPVzBhbVRMMDhIRGtsNVpGcXY5UzFBZ2w2NzVOR0d6TzNQ?=
 =?utf-8?B?S3l0U0FqOTBhaFYyc1N5TzZqWGRDVWZkdnRtY3lBVjZwTEpHWnUyUlZ4dVVW?=
 =?utf-8?B?dkpNakZWOXUvK2RkOFB2aGdwRXhEaitId3hHbmJCdENMOWFxVjhJNnMrZE83?=
 =?utf-8?B?bTR4WkNWamVBWGtCc2Q3T0tyU0JjeHhybGttWFR3a3d1RXRsekMrcWtlTE5C?=
 =?utf-8?B?SVNIaVBFdjJRbnlrZTlCU1lWWmZTMjNuRjZJU2JBR2JpUkVKOFp6QW1LUnha?=
 =?utf-8?B?aEtEb2x5Rk0rZXErWUNnQXZPUTlPKzFWOHlQSTJmM3ZDSE5JWDZPc0N0b3dT?=
 =?utf-8?B?U2grcjYvNlZoRW9qMWFGL1FFS08wMEJ5V3pYM29CKzFpVTZuY1l0MC8wVGJM?=
 =?utf-8?B?clVkS2RNUllpL21jWWhocWpwMUs2VWhVWURsMFJNRTV2bFFQbWtQV1dZc082?=
 =?utf-8?B?S05PaitVMXQ3SjJ0S0tQMFV6UDlRNE85T3ZxTWYrQlVlK2NEd2pLb09DSXI5?=
 =?utf-8?B?RWt4bGNNRGswS3g5eFM2Vjl6QnJ1a1pOVTQvQXhSQUlZSkFDUXVSa1ZVK1Vu?=
 =?utf-8?B?U3B5VnFEQmljWG15dTFwRmxlQkx0NzBOem5DbG1CUndEY1NmQmM5Z2VZVGhR?=
 =?utf-8?B?S2RUN0JHWXlaWHowNXE2RFJhOGlHejZjTDd4aU00dnlnVnp5aStJcHdEdHg2?=
 =?utf-8?B?REJKem0rL0ZNMlhWNk5rcVNtUlRyQmtaKy91YzIrdEVGOFR0K0Q0QWVJMkhN?=
 =?utf-8?B?bCt2YzJlbW4vV1pNOWVUT1ZCUTBDRlR6UzRzQ3M2OWk3Q2E4K0x6Y1U1OGdF?=
 =?utf-8?B?VzFLcUw4K2tEMFZQRFlTWE9naDZPRlRyRDlEYUQwYzJEbjV6M29xbWNGeHdC?=
 =?utf-8?B?WjYzUmIybm9qVDh4ZnhsV3J0aHVHZVNEWVlKTFgxN01nSXJYeXRyY0RBdENB?=
 =?utf-8?B?eDZaVGVHZUlhRWpvblVMUnd2Wk1tb0lZQXMwRWw0T2VsYkJMU0M1NS82a1pZ?=
 =?utf-8?B?L1FIT0kycDdpOUpkeWljYmNpRmpXZmV4K01Wa0w0djZ4L09HT204VEord3lE?=
 =?utf-8?B?SFRxQytjejR2RThSb1EwL3I0Y2hsay9PMzRJTllGT1M1VlZtaW5sZzlISHVF?=
 =?utf-8?B?QWJSUFd6dTFtTjFZUlR0WnFYYXpwRGF0THpoT01TcUsrWmJKbG1EOWpodzc4?=
 =?utf-8?B?WWUvV2Q3bmJFSEVnMDRvVDNOYjJOVHdJd3JzRzFWNXp5TkxtcFVzUEsxRzlH?=
 =?utf-8?B?RVp6VnFINnA1UTFZTGhnblpWZ25nOEpoc1FjTFpFRENQUnRKaEN2a2dFMFNh?=
 =?utf-8?B?QXdTWU1VcE5XVTZKNkI1RTlEN1dGYXpMNXFDdDJtdkNyZUovOUNRbEQ0YU5S?=
 =?utf-8?B?WmxyUVRVRUtxNkdTZzd0TktqUXh0alRjb01XK0lRS0lPQmsyakJOQ29sUjV0?=
 =?utf-8?B?cVBZVWg1cmdndW9iOTR1V1R4NTFtVFRSY083dTk2VGkrSFR1UThXeHUzWExV?=
 =?utf-8?B?QmhWUTNyYVhCaHVaL0lKYzFhU25oK2lHNzZtdnFKMHoxZE9MR3dpRVZxYi91?=
 =?utf-8?B?ZEd6THpYNkNra0VTQTROMVlpeG5mR0NXOHhEM3RPVlgyQXpiNmdnTmJWU3Mx?=
 =?utf-8?B?S2RDVmFNU1U4bnBLOU1CcERVQ2tTRjFoZ0tkQjMxUHg4OURqNlhhRW1RMGdF?=
 =?utf-8?B?R1cwckk1VUEwSXpXR3dBZFFCWWZWUFVtblVyYnVGNW8xend6RW5ITldNazNj?=
 =?utf-8?B?UElFT1h1Q0pLQk9UMFJENG5mOHR1ekNzdkhFOUVPcU9SZzN4ZW5CbWFDTDBu?=
 =?utf-8?B?RzgyM01ZUjdWZHBYN3h1M3dQdUhoSFlEK0FTVGd0SlVpcWhFUm1kRVJpRjFn?=
 =?utf-8?B?ZEN2bm9tZnJzWkFDVVMxSEI0UU8vUGxqVG15L3NTQU9laVp1Tjcrclc1ZERS?=
 =?utf-8?B?U3ErL1JRZmI5TUlLNnZiaHFNMU1lSFcwL1RERkp2UUNhQlhGc1lRNDRZVTBq?=
 =?utf-8?B?c3UvWW9xL0JYL3hCKzllYkx1bVNlZUY0b2VUVzM0SytnWUZDTFU2Wk1DeFNq?=
 =?utf-8?B?U2tBakh2ZTRCdFoxK0pyNFNYaUJLN3NIdlRVNHM0Q2FyZ0ZrelczZmF2d1J1?=
 =?utf-8?B?SHRiZ2Rwc0c0ZmdmN1Yxc2NPb3c0c1l4Z09DbS9CeEsxUC9SU3JMdURVd1lr?=
 =?utf-8?Q?8jZ/kAV/nMyi+Sp9mhoonxw=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4177456c-a71a-4f1a-13d4-08d9b346ceff
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 14:44:55.3090
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: C6QK+QkrcJFk4cU9/Vudd7zN3Xp7C0ux8qPpKQdGk7ckEvuP16yP307ZfMAtJHtoOWcccqvpLcUHqwVmJqyHWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2605

On 26.11.2021 13:33, Andrew Cooper wrote:
> CET Indirect Branch Tracking is a hardware feature designed to protect against
> forward-edge control flow hijacking (Call/Jump oriented programming), and is a
> companion feature to CET Shadow Stacks added in Xen 4.14.
> 
> This series depends on lots of previously posted patches.  See
> xenbits/xen-cet-ibt for the full branch with all dependencies.
> 
> Patch 1 introduces some compile time infrastructure.
> 
> Patches 2 thru 56 annotate all function pointer targets in the common and x86
> hypervisor code.  Patches are split by API and in no particular order, and
> largely mechanical.  As such, I'm limiting review mainly to The Rest.  While
> doing this work does depend on an experimental GCC change (patch 56), the
> result does actually work properly with GCC 9 onwards.
> 
> Patches 57 thru 65 do the final enablement of CET-IBT.
> 
> I have developed this on a TigerLake NUC.  Many thanks to Marek who has also
> given the series a spin on a TigerLake laptop.
> 
> Some CI runs, green across the board:
>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/416737379
>   https://cirrus-ci.com/build/6547947216175104
> 
> Various note accumulated through the work:
>   * I have already posted patches fixing some of the most egregious (ab)uses of
>     function pointers.  There are plenty of other areas which could do with
>     cleanup.
>   * With everything turned on, we get 1688 runtime endbr64's, and 233 init
>     time.  The number of runtime endbr64's is expected to reduce with
>     Juergen's hypercall series (see later), and in common deployment cases
>     where not everything is compiled in by default.
>   * I have not checked for misaligned endbr64's, and I'm not sure there is
>     anything useful we could do upon discovering that there were any.
>     Naively, there is a 1 in 2^32 chance (endbr64 being 4 bytes long), but
>     this doesn't account for the structure of x86 code, which is most
>     certainly not a uniform random distribution of bytes.
>   * I have followup work to reduce the number of runtime endbr64's using boot
>     time patching, which further improves the security benefit.
>   * Patches 2 and 3 are a minimal subset of Juergen's hypercall series, with
>     patch 4 annotating every hypercall.  I failed to get the full series pass
>     in CI, so put this together as a stopgap.  It reduces the dependencies
>     involved, and patch 4 can be dropped if the hypercall series gets in
>     first.
>   * The x86 MTRR code is a complete mess, and as far as I can tell, is mostly
>     pre-64bit support.  It could do with a prune.
>   * We do many passes of the MADT counting objects.  This is a waste of time
>     and we should count them on a single pass.
>   * The NUMA setup (SRAT parsing) appears to happen twice.  I'm pretty sure
>     this is one too many.
> 
> Andrew Cooper (63):
>   x86: Introduce support for CET-IBT
>   x86/hypercall: Annotate fnptr targets
>   xen: Annotate fnptr targets from custom_param()
>   xen: Annotate fnptr targets from __initcall()
>   xen: Annotate fnptr targets from notifier callbacks
>   xen: Annotate fnptr targets from acpi_table_parse()
>   xen: Annotate fnptr targets from continue_hypercall_on_cpu()
>   xen: Annotate fnptr targets from init_timer()
>   xen: Annotate fnptr targets from call_rcu()
>   xen: Annotate fnptr targets from IPIs
>   xen: Annotate fnptr targets from open_softirq()
>   xsm/flask:  Annotate fnptr targets in the security server
>   xsm: Annotate fnptr targets
>   xen/sched: Annotate fnptr targets
>   xen/evtchn: Annotate fnptr targets
>   xen/hypfs: Annotate fnptr targets
>   xen/tasklet: Annotate fnptr targets
>   xen/keyhandler: Annotate fnptr targets
>   xen/vpci: Annotate fnptr targets
>   xen/decompress: Annotate fnptr targets
>   xen/iommu: Annotate fnptr targets
>   xen/video: Annotate fnptr targets
>   xen/console: Annotate fnptr targets
>   xen/misc: Annotate fnptr targets
>   x86: Annotate fnptr targets from request_irq()
>   x86/hvm: Annotate fnptr targets from hvm_funcs
>   x86/hvm: Annotate fnptr targets from device emulation
>   x86/emul: Annotate fnptr targets
>   x86/ucode: Annotate fnptr targets
>   x86/power: Annotate fnptr targets
>   x86/apic: Annotate fnptr targets
>   x86/nmi: Annotate fnptr targets
>   x86/mtrr: Annotate fnptr targets
>   x86/idle: Annotate fnptr targets
>   x86/quirks: Annotate fnptr targets
>   x86/hvmsave: Annotate fnptr targets
>   x86/mce: Annotate fnptr targets
>   x86/pmu: Annotate fnptr targets
>   x86/cpu: Annotate fnptr targets
>   x86/guest: Annotate fnptr targets
>   x86/logdirty: Annotate fnptr targets
>   x86/shadow: Annotate fnptr targets
>   x86/hap: Annotate fnptr targets
>   x86/p2m: Annotate fnptr targets
>   x86/irq: Annotate fnptr targets
>   x86/aepi: Annotate fnptr targets
>   x86/psr: Annotate fnptr targets
>   x86/dpci: Annotate fnptr targets
>   x86/pt: Annotate fnptr targets
>   x86/time: Annotate fnptr targets
>   x86/misc: Annotate fnptr targets
>   x86/stack: Annotate fnptr targets
>   x86/bugframe: Annotate fnptr targets

Patches 4-55 as applicable
Acked-by: Jan Beulich <jbeulich@suse.com>
preferably with the subjects disambiguated and the minor remarks on
individual patches taken care of one way or another. It seems to me as
if the annotations on declarations are going to obtain a meaning, so I
guess I'm okay seeing them added despite not having any function there
just yet.

One question though: With the large number of __init functions gaining
cf_check, wouldn't it be possible to turn on CET-IBT only when we're
done using .init.text?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:10:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:10:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234613.407149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriI6-0000Az-1H; Mon, 29 Nov 2021 15:10:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234613.407149; Mon, 29 Nov 2021 15:10:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriI5-0000AO-U5; Mon, 29 Nov 2021 15:10:01 +0000
Received: by outflank-mailman (input) for mailman id 234613;
 Mon, 29 Nov 2021 15:10:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K9yz=QQ=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mriI5-0008Tq-35
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:10:01 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6aeed4fd-5126-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:09:59 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:39796)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mriHv-000XaE-or (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 29 Nov 2021 15:09:51 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 065BA1FC54;
 Mon, 29 Nov 2021 15:09:51 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6aeed4fd-5126-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <c05512bf-ceff-8402-07ec-17e44163d45f@srcf.net>
Date: Mon, 29 Nov 2021 15:09:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <178aa1cd-b510-7e3a-2074-a2ae261d4975@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
In-Reply-To: <178aa1cd-b510-7e3a-2074-a2ae261d4975@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/11/2021 14:44, Jan Beulich wrote:
> On 26.11.2021 13:33, Andrew Cooper wrote:
>> CET Indirect Branch Tracking is a hardware feature designed to protect against
>> forward-edge control flow hijacking (Call/Jump oriented programming), and is a
>> companion feature to CET Shadow Stacks added in Xen 4.14.
>>
>> This series depends on lots of previously posted patches.  See
>> xenbits/xen-cet-ibt for the full branch with all dependencies.
>>
>> Patch 1 introduces some compile time infrastructure.
>>
>> Patches 2 thru 56 annotate all function pointer targets in the common and x86
>> hypervisor code.  Patches are split by API and in no particular order, and
>> largely mechanical.  As such, I'm limiting review mainly to The Rest.  While
>> doing this work does depend on an experimental GCC change (patch 56), the
>> result does actually work properly with GCC 9 onwards.
>>
>> Patches 57 thru 65 do the final enablement of CET-IBT.
>>
>> I have developed this on a TigerLake NUC.  Many thanks to Marek who has also
>> given the series a spin on a TigerLake laptop.
>>
>> Some CI runs, green across the board:
>>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/416737379
>>   https://cirrus-ci.com/build/6547947216175104
>>
>> Various note accumulated through the work:
>>   * I have already posted patches fixing some of the most egregious (ab)uses of
>>     function pointers.  There are plenty of other areas which could do with
>>     cleanup.
>>   * With everything turned on, we get 1688 runtime endbr64's, and 233 init
>>     time.  The number of runtime endbr64's is expected to reduce with
>>     Juergen's hypercall series (see later), and in common deployment cases
>>     where not everything is compiled in by default.
>>   * I have not checked for misaligned endbr64's, and I'm not sure there is
>>     anything useful we could do upon discovering that there were any.
>>     Naively, there is a 1 in 2^32 chance (endbr64 being 4 bytes long), but
>>     this doesn't account for the structure of x86 code, which is most
>>     certainly not a uniform random distribution of bytes.
>>   * I have followup work to reduce the number of runtime endbr64's using boot
>>     time patching, which further improves the security benefit.
>>   * Patches 2 and 3 are a minimal subset of Juergen's hypercall series, with
>>     patch 4 annotating every hypercall.  I failed to get the full series pass
>>     in CI, so put this together as a stopgap.  It reduces the dependencies
>>     involved, and patch 4 can be dropped if the hypercall series gets in
>>     first.
>>   * The x86 MTRR code is a complete mess, and as far as I can tell, is mostly
>>     pre-64bit support.  It could do with a prune.
>>   * We do many passes of the MADT counting objects.  This is a waste of time
>>     and we should count them on a single pass.
>>   * The NUMA setup (SRAT parsing) appears to happen twice.  I'm pretty sure
>>     this is one too many.
>>
>> Andrew Cooper (63):
>>   x86: Introduce support for CET-IBT
>>   x86/hypercall: Annotate fnptr targets
>>   xen: Annotate fnptr targets from custom_param()
>>   xen: Annotate fnptr targets from __initcall()
>>   xen: Annotate fnptr targets from notifier callbacks
>>   xen: Annotate fnptr targets from acpi_table_parse()
>>   xen: Annotate fnptr targets from continue_hypercall_on_cpu()
>>   xen: Annotate fnptr targets from init_timer()
>>   xen: Annotate fnptr targets from call_rcu()
>>   xen: Annotate fnptr targets from IPIs
>>   xen: Annotate fnptr targets from open_softirq()
>>   xsm/flask:  Annotate fnptr targets in the security server
>>   xsm: Annotate fnptr targets
>>   xen/sched: Annotate fnptr targets
>>   xen/evtchn: Annotate fnptr targets
>>   xen/hypfs: Annotate fnptr targets
>>   xen/tasklet: Annotate fnptr targets
>>   xen/keyhandler: Annotate fnptr targets
>>   xen/vpci: Annotate fnptr targets
>>   xen/decompress: Annotate fnptr targets
>>   xen/iommu: Annotate fnptr targets
>>   xen/video: Annotate fnptr targets
>>   xen/console: Annotate fnptr targets
>>   xen/misc: Annotate fnptr targets
>>   x86: Annotate fnptr targets from request_irq()
>>   x86/hvm: Annotate fnptr targets from hvm_funcs
>>   x86/hvm: Annotate fnptr targets from device emulation
>>   x86/emul: Annotate fnptr targets
>>   x86/ucode: Annotate fnptr targets
>>   x86/power: Annotate fnptr targets
>>   x86/apic: Annotate fnptr targets
>>   x86/nmi: Annotate fnptr targets
>>   x86/mtrr: Annotate fnptr targets
>>   x86/idle: Annotate fnptr targets
>>   x86/quirks: Annotate fnptr targets
>>   x86/hvmsave: Annotate fnptr targets
>>   x86/mce: Annotate fnptr targets
>>   x86/pmu: Annotate fnptr targets
>>   x86/cpu: Annotate fnptr targets
>>   x86/guest: Annotate fnptr targets
>>   x86/logdirty: Annotate fnptr targets
>>   x86/shadow: Annotate fnptr targets
>>   x86/hap: Annotate fnptr targets
>>   x86/p2m: Annotate fnptr targets
>>   x86/irq: Annotate fnptr targets
>>   x86/aepi: Annotate fnptr targets
>>   x86/psr: Annotate fnptr targets
>>   x86/dpci: Annotate fnptr targets
>>   x86/pt: Annotate fnptr targets
>>   x86/time: Annotate fnptr targets
>>   x86/misc: Annotate fnptr targets
>>   x86/stack: Annotate fnptr targets
>>   x86/bugframe: Annotate fnptr targets
> Patches 4-55 as applicable
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> preferably with the subjects disambiguated and the minor remarks on
> individual patches taken care of one way or another. It seems to me as
> if the annotations on declarations are going to obtain a meaning, so I
> guess I'm okay seeing them added despite not having any function there
> just yet.
>
> One question though: With the large number of __init functions gaining
> cf_check, wouldn't it be possible to turn on CET-IBT only when we're
> done using .init.text?

233 to be precise.

GCC can't distinguish init from non-init functions as far as the
improved typechecking (patch 56) goes, so omitting __init would cause
compilation issues.

Furthermore, CET-IBT is only one Control Flow Integrity scheme
attempting to use a nominally arch-neutral interface.  There are others
(PaX RAP, and Intel's FineIBT) which have software components to them,
and for those, the function pointer callers and callees need to have all
appropriate ABI modifications.

I'm pretty certain that if we skipped annotation of the __init functions
for now, we'd have to add them in due course anyway.

We could defer enabling CET-IBT until late on boot, but enabling it
early gets us better coverage of issues until the first software scheme
turns up.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:15:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:15:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234623.407160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriNU-0001VA-PV; Mon, 29 Nov 2021 15:15:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234623.407160; Mon, 29 Nov 2021 15:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriNU-0001V3-MR; Mon, 29 Nov 2021 15:15:36 +0000
Received: by outflank-mailman (input) for mailman id 234623;
 Mon, 29 Nov 2021 15:15:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z1eq=QQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1mriNS-0001Ux-Ex
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:15:35 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3206f5f8-5127-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 16:15:32 +0100 (CET)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 5881521763;
 Mon, 29 Nov 2021 15:15:32 +0000 (UTC)
Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512)
 (No client certificate requested)
 by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 14B2413B2B;
 Mon, 29 Nov 2021 15:15:32 +0000 (UTC)
Received: from dovecot-director2.suse.de ([192.168.254.65])
 by imap2.suse-dmz.suse.de with ESMTPSA id ZCv/ApTupGFqGgAAMHmgww
 (envelope-from <jgross@suse.com>); Mon, 29 Nov 2021 15:15:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3206f5f8-5127-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1638198932; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type;
	bh=XpTb18OZZikC/yosmVkMXx5gczmZd+/05k9CwSINdBc=;
	b=tvO+A7uJEMh04JMOVCjZIa1jP5IkKGFboyc0Z0rG4wfM/S3MIwfhNFWMH0tbR8x1A5poxW
	M4zSwSfw/XAtsAF6gct/B3cvAb8ReqeO9Hl3vbG8qKugJPMXcBsbLOhtacXv8hL5Ey8S3z
	WVUw4nNfEYLMwBQ5Ax167YLOxuX+GTs=
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Juergen Gross <jgross@suse.com>
Subject: Stable backports of Xen related patches
Message-ID: <bb28bab1-eb2e-0dde-3a59-6b5c25e3744d@suse.com>
Date: Mon, 29 Nov 2021 16:15:31 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.12.0
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="n7AoJWNv4FtjfjOiMAjBHbOUzISBLv1Sy"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--n7AoJWNv4FtjfjOiMAjBHbOUzISBLv1Sy
Content-Type: multipart/mixed; boundary="ZGACYk0EwNri3JybJuyXka8Ugpr7UeH8W";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <bb28bab1-eb2e-0dde-3a59-6b5c25e3744d@suse.com>
Subject: Stable backports of Xen related patches

--ZGACYk0EwNri3JybJuyXka8Ugpr7UeH8W
Content-Type: multipart/mixed;
 boundary="------------644753F650889724A8B30328"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------644753F650889724A8B30328
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Hi Greg,

attached are git bundles for some patches you merged into the 5.10
stable kernel already this morning.

Naming should be obvious, the patches are on the branch "back" in
each bundle.


Juergen

--------------644753F650889724A8B30328
Content-Type: application/octet-stream;
 name="back-4.4"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="back-4.4"

IyB2MiBnaXQgYnVuZGxlCi1hZTZmOGNlOWI3NDk2YTRmZmQzYmE1NDVmODI0YjQ0Y2RiMjE3
MTQ5IExpbnV4IDQuNC4yOTMKYjEwZjJmZGU5NzhiYzY4OTVkNzA5YTgxMTYxYjdmMWNkZTRm
ZGMzYSByZWZzL2hlYWRzL2JhY2sKClBBQ0sAAAACAAAAMJ0teJydksFu3CAQhu88xdzaqlov
2Nher6IoymWrtGqlppVyqzAMhq4NFuDd9u2LtW2i5pBDAAnEMN8//JACIrS8b/pGYdv3tOKs
anTTYdsik0x3WsmWlnXJ24rMIqBLQGVX11zJumOUiZZ3AoVUZcX4Ttasqkopei0YJ2JJxge4
WzAM6OAQfIxw9XNY55u4RCykn66BNdWOdTtWc3hPGaUk7042JXxFKknp9x7MSe4h4DwKiXD7
/fDjy+e37+BskwGHg0j2hDmcluDgJMYFCfxt5CGL6eBdQqciROOXUbk3aYVkgnUgRUTwGuw4
ZtIISiSRWRIzU62pE0kGbYBeyOMKKeDeP9aSQ4/1RDibrBZQKOuG/4H/OBDW0CwGfKH6WBAg
34yNkMfFO8Cm7SjlCmXV1k2jYZljylJT8XTXr3iyeEa16bNld8LBLS6jlSb73F9WT06Tezu4
fNRrfTn+8sOQT9Yd8zukNMf9djv6gMURg8Ox8GHYhm1JS0bb3PMf4nXBG7phm2eU55qHgAN8
DF6YzQcR0pQrvhry3tHcjNYtv7RfXHbPereKXJM/jZ3uyppAeJydU8GOmzAQvfsr5tZDWwqB
BLJarVZVq2ortYfu/sCAx+AusanHhPD3HUhSbatKlXoBbL/35s0bEwMRFHvdVLtdtqE63eqy
ropC41bvKC9KQ9mm3BV5sdmWasBALkKa5vVWa5PvG1OVZpPWlamzfVmQyStCU5RVmuliq3CM
nQ/weaTQkoNPwTPD7fd2ed/zyJQ0/nAH2S6vhL4vc3idZmmqZPdgY6T/oKoTuXeOognexRvQ
3r2KEMPI8uwIamyeyWkIxIN3TKAxItS9dbqflXryGme40mGyff8XcvTAy9u7fgZGR7/LJerB
gQ9a7AsSj95qGII92p5aAuIGe4xW4AKCJiB3xGAdNCgC3sABe9tYP7K6FGQ4UrBmXk2shkW3
JrEXO+HRaaAmkobeSmqcwEeWDYu9uDvgMykeAwkXz1388or9hDPL2pCMtRETKL7HyBGdtq6V
kx8jcUyU+urjRWHteZGJJ5DTkSQtEoeXkiC9dkKXQNs3gAxGelyrntQZviwEZBlEXQjSyrrl
NJ2WFFbwUn3AlqT0g4vB67ERv1JqWoC2wSiyV2lNRyvHU0eyCmDjIl4HL9FJRxILRfUCx9EP
MPnwvBQRkrswmGICj7SEZPlFmetkROI6kAW7pDXDRDboy9RBPa1MhvP9Bawq+ZFwl2Gp99lu
C+PAMRAepK1H2zrSb70xb+v55l/3XH0T7zQJYQXLnN7TKLekE2h9/noB/kP7Ax4l8McEvsh1
loBuNR7pcL8+e29iIvf9Tv0E8+hkd5ROeJydVE1v2zAMvetX8LhhaGbHaewURdFDgQFDu8O2
YsdAtqhYqyx5kpy0O+y3j7Tdpl0xDNglQUTy6X1QSQERKinXWKxqmRXlOssqpaq6wbzKq+I0
LypZl+vNRjVa9DKgS1BWZVYUp8tG682yVE1Zrpq8xLWqVhrLpZaFPK1k0Qg5pNYH+Dhg2KGD
D8HHCOffd/x9GYeIi8Z3F5CviyrflJsih3dZnmWCTjuTEv7HqLhH995h0sG7dAbKRGIs3c4i
pPttvKu3miRbE5MQX9tXh4AWO5qIQFLBOJAQzThtjbtDBWPTwaQWUosi4I8B6cAoIEoKZBz7
IKBGsqrBBfAlPSmZgae6NmgVmDjeIAZnvHsCBeIDvTeO9XsN0nEXwcN820KIG7/HsfflbeCH
xCNcmUBp0gdFQMkDOlmTEAlWEjRxZ0zqNgk0pTSjRzi0pmnBIeshIv3A/eo5LWLwmdA6AlNq
a9Q2+ScH37wlxgp2mLhAMXTPS8mL48hf2ufj59T7gLx75AKFIWipiDlz9qQ0jJlE9v6A1i7g
CrVxCL8yPtpLOyBDGKdMQ0JGc9ApwdZOcTKB3sqGazLNIyTUHy3my+SjReB8ghqZClk89XAs
IL61tKssl2q8OmTZTwz+VaxmGnsMFG4j5/Lp9vpaTLfPIb6ciQml4hJvLO1SeNiauGV+ZBcz
VNgYxbQOLY7OHCm35MVEaF5ktiSNQXa8TEfISFHMmGyM70lS4xXynjxyIDD+FQleWvsgUjB7
Iy0Zc1jwu+LNjjA9Y1jSI83VUpWrXK5XMoOhj4kGO2r9YnYO1YnX+qR+OPvXc/+z/Uru6eV9
WcCNsZbkniu5x+5y/LRepwX9EVyI3xg4r9ufLXicnVJNj9QwDL3nV/jGAW3px7RNV6vVgpAQ
SFxY/oDTuJ1AmpQkHZh/j9NhpFkuSEhRkzjPz8/PTYEIsK8Pda/w0FMzKJRIWutWddRJqht9
UK0a+NyKFQO5BLJXXTvpsWxlO0hqtOo6hXqsu5qGrq3aGqeKmlLglo4+wKeNwkwOPgQfIzx8
m/P+FLdIxeiXR6i6RlZDL+UAr8uqLAVHF5MS/Ueq+EXujaM0Be/SPWjvXiUIhBo0JgQOL3z9
sVFM4B2kI0EwboYVZxLiowMfNNdNHvDkjQaEBa0Zjd8iKBy/k9OgKGegspRxxk12IzfSTmb9
iFaswY8UY4b5iTmuFdVmrL4U/RPZ8fYMkwl8Q7e/Ohj9ehYmZf4XEgt46857Pzmyd3PLdtWS
Hzl+q8Ncmt19yU04Ih0zv6LsEl3d2AUxOibkngohvh5NBF6XobDjdSkrGpuG5y07hG2NiQUt
DH02syN956fpTp3v/zU88YVOhn5ywg5GB+9oY6+PDFWX0w34L+73eOLpPBfw2VjLA3vQeKLl
af9aP6WC/4FH8RuVxPkXkjF4nJ2R347UIBTG73mKc6/TAu20dLIxqzdGo4lZfQGgh5adFhqg
uzuP5HP4YtKpmRhvjCaEP4fv4/zOIQVEQCMqrXvFlGKC1seqZYabtql7bnoqGFZMqFpKssiA
LkFtUHHsqKaC0iPjtGFHxSRy1E2Tn2o7LTlTmsg1jT7AxxXDgA7eBx8j3D0O23of14iF9vMb
YE0lmOi6lsMryiglOTrblPA/rOQFXammswnepRMElH2e4uJdRMjBGZTUZ3Q9eDdd8qSRkA8O
fOhzuuRBPnnbwxK8mnCOYB1oma1pxJvTRph9b83FugHk7Xni3VUWtvAiB4Tn0U679YqzeUcZ
QU4b1gUi5spseg2Pa0w7ataSG651Gw9MXssJ1GpMJsw83iEM+cJd5fm8YJAJ4Zpepl9KstVX
EPJtzLh57D2Flqmm4XVlOtGJniKsS0w59VwQIF/t4LA/eGMO6nL6W/PJAz5ZfM6Gq1g6eIfr
ZPWYpWrf/SZ+m3u3Kx/8kAv5Ilf47J378R3uwhYpFrnea5uCfdkdn6w7n2BMaYmnspx8wOKM
weFU+DCUoeSUM9pW+dsrcawLxhvBDvzwB+a/FvUTigQHaO0NgkN4nB2OMU7EMBBFBdJSWKKj
WInGPUqwE3tsI4QoaKm2TjFjz6BI2ewqhBWcAi303IHjcBuibb5e857+18XPqpsnZo0+JsoY
LYjLxXoDEh0lyUAEYtpICcVKUHuceJx1LhjIhxzZLQ56sOJYAnpnm7YFYhfQNY0cu2qVQmza
4ydcnUDfGGuMUu883o48//6tz66jc2AASGK2kiTot/3rcgu3tfq+PO/8pn8ZuVQ7kYo+7vQT
HvqiN7V+7oeBJ31f8MDbx9MOO5nrpfug/gELWUJ8l054nJ2T3W7TQBCF7/0UcwcI1bGdtImr
CtFKBQFFoND7anZ37CxZ75r9SepH4jl4McZOg4AiIZCi2Nmcmf3Omd3oiWClhFRyeSZEVVbL
ksRCiapZqlMqalUVclk3QtZylfXoyUZAFheNWJ5WuFSlXC1qJJqLAk9rRbKq6zlJIc9Uhilu
nIe3iXxLFl57FwJcfG7H58uQAuXSdS+gPJuvyrqsiwKeF2VRZLza6RjpP0qze7IzYbaNdzae
g3L2SYToU+DvDYFAuSWrwFPonQ0ECiOCMNoqM2TZrVM4wLEc9tqYPxRHB2F8OmsGCGjp13Z5
9saC84rxWYk7pxX0Xu+0oZaAgkSDUbOcRSA9hg0F0BYkcgPXQIdGS+1SyB42DLAjr5thgpiA
ua8gxosbrqP7nmQkBUZzaiGH68ALGg3TdbilLCRPXIsHFz9Y0exxCPy7IR6rZAhk7hRDRKu0
bfmfL4lCzDM2FL1TSXIRWNoDS+LEOjUctVc37968uvt0e3l7fXe9Xn9Yw36j5eYQoWAGhpUb
msI7euXttJXMokNkgAF0YOnYTVGcLOWwJulG97zIM+kydhwetueXnk+DFoYOo9hpZObO7UY1
e+CDOvkYIXfax4SGO++0pAxbZIqnlLf5VIbAZ6rnrGccT+oI5CANPWPr7zlBjsrAHr0du3UU
ArbjyEJIbEglGk3teGoKyHse6jFiDpdBs2kurNSPjsVDL2iMc+poPnrdtjwSBWJgsEfHIc8g
ux1j4M/hpoCoF7QQ5WLZqLKuK4TUh+gJOzbwSbeW1IlrmhMxnP/tRmVrDoj2XDCJeURXlMw4
yYvP4vD2k/iSgQ7KtWNk+IgJ3jtrv32FCz+u5D2ml1KzpftDxY2223PYxNiH89nMOE/5lrwl
kzvfzvysKqqyWM75Ls9Xp4u8rM5W5cni5DfMfzX1HefLtEWXMnicnZJNjtQwEIX3PkXtWKBO
O07nrzVCAxsEAgkNc4GyXU5Mp+3g2DPTR+IcXAynwwKGBYLIcuzK96qey4mBCFRVosC2awU/
UGOUqLSSB4GdlNjXAuu2NySEYDMGchGqUld9o0xfU1t1imOvZNvWh4PRdcdJqEYL7HXLMMXR
B3ifKAzk4G3wywI3X4b1fbukhQrlz6+gbKqu7HknSnjJS85Zjp5tjPQfUvZEbi+nkwnexSNo
715EiHgimLzCCZSfL+ANIAT6mmiJkMkzxJEgWDfAjAMxYO8c+KCzgegBH7zVWXDGySrr0wIS
1YmcBkmrBOVEK2edmRI5Rdds13Lsz3Iy2Ulv9X5GruR0AWND3qG7fnWbUxvXzOw3e7nQEgn1
mlf7NbpSmfB5CvCIFwg+5TS4ZLHGS8HY/WgXyGPrLHSmxqavdd9zzo2qIM1LDITngsGzh322
gyO988bs5OX4txthd/Rg6TELrjA6eEMp923MqNxWv8Cvcx838s4P2fsnTPDRO/f9G9yENVLM
mG6VjcE+bYoP1p2OMMY4L8f9fvKBihMFR1Phw7APe8FFydsq/wtVVx+KUjRduat2z2z+66F+
ACFWCp+YIHicpZDbSsNAEIbv9ynmzhZpm6Sb3aSICFqLIk1pxcNV2cNssmI3ZXdj7dsbKV4L
CgMD3/ANM3/0iFCwVFHNRM5NXgo55akopkwlXBqTZ7LkCeUmyTTZC48ugkBmCoWl5LRkghqj
p1LkNDdFRiWlSsss5Sktiehi03q479DX6GDh2xDg4q3+7lehCzhW7e4SUjYt0qKklMN5kiYJ
6enOxoh/UMknuhmEo1NgnXrvNE56MrGu32aEwoltJ966etzAwcYGXtCdBXB4wBDhA32wrSNk
8y+/N0nrdX9+bKHGCLFBWN8tF9vravW6Xc83q2q5mQ+GIJw+DX7YdrWubrbV03x9+1A9D4Zk
J1T/8piQx8YG6OuUDbCsFLkuOGbMYMmkEtDtQ/QodmMCQDa2dqhHrTEjeZz9liP5AlKEqIv6
AyWA6skHS/g9oWy6APWRXqoNA6WLeJwBOgDF/+UI5QiwVAIUP7jwEIphM77rlbTZ4l7x5cPs
ZlOTaAJOFO/7Vt2XdoxpCVZ9M0ugQPj3LZwts8oCmwFpah0L9QVdOxTGUNA4+Gssip5xrA9a
/RrofnicAVUAqv+EIIQgsHoBFNjSYnUIJSYxkH4IxJN4k4tcvM91s44B+QYUcpehTT/L1fWJ
S2/CeSnVReKC8c+zmwigBRRP2LH+0q5DUn3QCXeFkqNEgxKZObNPDrUBkTIn4/AClb3Cy6JJ
nGglEgfvYSKtqsRWm894nAEgAN//rA6sDrCxBhSyeRff3MBRk5RP4F6Kd9va0gshVpPFBmf9
Vw+B/Gnh9x3r27qmtBfnKj0cJ6Ukh2+3b3icrVVRa9tWFEbNEpAHLU09j3Ypu8lixzKOR7IE
sng1SzxnhKZx6oSN0Q4hW1fOXRRJuZKSjFACHbRv6ZaT1W3pU9kPGAjK9rQ/UOjLngrdyB62
1zLYc3euZLk1c/dUPVzuRd/5zne+c3T14K+++8/6fmzKg/L80sXFBXV1bW6tolZqtWotoPJJ
6aRct22TMMswWXPdC7YSa2OjvuWypkV1YtpWk9TNDWaonFlNtUk9ldMtn7oebL0zlEjI4iH4
wPHEGTh3+c0R1+N+w4uDIizJ5cJwPCqJPTguJfsScg72yhVoXBqCX8rz8MfUW/Db7YEk08kF
wvQiUnPq+dzCAxzkU/B44rqcJzmDWZqpwuLkykII7S0ui/XYeYKnPMlEIR0BRWRu7zE+A8fl
ZHD+g+tSuWw7XxNvnZJYtWdHR0QTR2vSAsm9j7q7+ZCjU1wRjqfOnIq9xDfoBQ36pp/KXdLP
B/+UbrzxOvU/L38jz4f6YwJXeV3y/7y0/3FgHMxIiVpl7hO1ulyuZOHZ3VS/w21dgZ9uFTdk
ZpBsbXH5U7VWWV2pLq9W1JVaFbGfVWoLS9XPsxlRz3hJJMKqHEUhezg6Dlc1k3IvO5J2Zwkz
TdrUTGL5m3XKiW1gLa5jWy51Sdq/ao3kxbTBXCulcIeMkxeUBe46agORwhu5aWPhlHPcX4O/
b1VWZbkzz8zyiO2I4ZJDueXqyhcdzd0qGTpfxxEMObFVRDQLzwUxnLD97a+pbvmxWKDfvSuF
MveZHga/rEi+JtjQreEol7uu6fbOFaZ/WYh9j7yRe7PjxqCcWg00xbKJQy1dtLfd9dgkOTQH
FlqnPuylQEh4VXas0tBMlxbh3OHYCduB4cO3kwXboVzzmG0V2/LxxcRMakBwR5j9go8cOuO0
4XU2qvA6Cgit69CQ4QvYh/+vdF1zyQ4XF9CLsGzax9Jcj2q6GJC0r8QlR5ZPdqfJiySvMCDW
BBcPl6QMtA7vSgWYhElcDZjC9T7M4vrk+zF4Dumzoa2odEfjlors1GSbzKN6Fj46WpQKwc2j
y1IIVwZ7Ykah2Moi4OaRAgetwf4o9w+3r/SCn27VOtAnuPvqTuZqF6I9qbt1nW6Pl3CJ2i6P
zKMx7XvT4PamuF7wLdE1T4uHZJakdzuDIoc6gt/vPJAGEsKgWXj6M+kP/w8wc29aebk5RGeu
VjfxOzJsTgyf4/XCie9SQYf2J08oxWDj3qMpeO/R6eR/Jkp8j6Xts/Bwdzq48Xho9F+MZDc1
/AFiKM+4M/QoHEV6Xy2Wvg8Z14nRZ3icARwA4//0DfQNsOAGFEa583kDX1rmraHksA4Xo+fw
EMhxzSMOhPTUAW1L83xmD3wXpyAbNMJJRSl4S++deJyVVl1sG1UWltNmszNt05QkTtm06U3a
pLZjuwlp2i6us03zAwHLDikthFCGsefanvVkxjs/rbubbnZfVuIFBEfAA4IFgehqu6q2O2/7
Uh7QPqxQAYkHBBKoEkgghKAPPCBAu+feGTsep6CSB+fOPeee+52/79wf3tjywn+3/FPZOWLX
JE3VK0lRILFDomDZplOwiVWR8k6xSGIotip5C2509YYd3VJLOlWIVTZMm/gnUdRzdL9Ci6pO
yYMPS5mF7P1SNpedI2O1Iv6JTbLFuezsQvYeQjwZhX90Qb/QsKvq3GqV6or0O4c61E3v2tM2
eihGFiyi0HNqgZI8LcvnVL1ELFmnv+GY84ahkbxpVKgOp7svQ0fv8kOaatmRhuFYmcpKnLQ4
EGNKcVEQBATUIlOVqPgHUWAaK6pylqQ9G/Be7+H9t2EbjoUPPCwKapFEVIUMpgOBiRK0LPBz
aLd+RQr3mq5rPoCii6JgUtsxdUQGobU+99nw052dZG2N6NXElO989qOwe3x4sK1DKBi6ZRP4
a2YMzh6U1hmOJQy8tDR3ajGXPTUnLS7lZqXcmbml+UzuocgIj3Ziyq7FSdU0lKgHUcCYS7JG
TTuCqzgZWtA0WpI1ojureWoSo0hMalXxLmqRYedRfYhHE8PJjJAE8c1iUpOmVZUYqijzUygZ
tkGoabIPdA0ypTvhvYP2vF1DvZTIVDjemdzicgN0ACazFScj/IBnkznJP5PwVGRiPU28D1Vp
SDEVU2nCDZ9aeKTZXt3hFo/5FroztOS7ScqyhWVaMEyTFliVkMiwE204jqpYOPy+9YCPzEkP
Q+NK3jw82V55+L1xu0CKholA5IKtnqOYBTRr2YjDuxzvvitwOfu9xc3BMoPrkb0DqaAqa35f
NXs6k4GvIsu7fwTaPZCPjvQ1AASdh6rdDydOt8Nb0c/gESeylWFwP4m90vZ4vbIx7ezE3WL9
elUvGvXaxvuRmSiaa63JWdWS8xo2HotI0THtMlamY1EvGOg6XE0S+Fti9QBhf0gmGRl7ww8Z
MXRiMjqpyiWKbAJfJwcOsBAZBVlLbdLm21h71QvucPLFEPNkB/OEeW3XECRcnDkGE2OfAxnP
rHsO1K1hJaICL8cWQcmkRRTh72aZUSxa1Eapt9isYKm/p4xGqN4qW9eSRU0uWSgdYz0V4wiD
x9n+oRgjf7LoIPuWG8WEivyTsTELEE9KnKg2Oa9qyLeUMFyY5XxDh5s5X6b+QQVJwClQVqcK
rRHVInLecOpnTFm1qFKfO7KiSKoi2YbE2XWjM5umQZwESzjOmg2ujQ/tbAkJfDqehfsm72yP
MQGEJxMJT8OPFY9GSbdtOS9h1UiGTqWSKet2xFODgYlYmC2jTLHOu1zkPjZBQqBN7IJLh7vY
Hb/kd2AXQPvkFLw0WetLTPFaSvOSYvXvGx09UoHnjyREDwbjdPfjI99uATrRu8OsSL6rGEa4
+twQfPeaAGm3Y10UzpdVjZJIREWTJWqzMBVNY/VnBArZbTCNQAJDSNzMCD4h+EzEm8d9/+7O
EHyRugIzk5Et5GIKrv/6KFw/XtjNyMzRNbVCtQuRjSEUdQfT27YOM5+T3D7a5P/96kwio+AW
/qZE2HWk5xdF1bRsCY5O720f4en67XR/J9fcyOcT03M9wS0vhHDt8V74cjpRN3Ll5O7uguWs
SnlN1itkzZ9GMHWy6qu4V06KoSZ1952ZldDuGtV1jOyqXKGYB2wAK+JheWDu5cM/JowzJzAV
cklimY6wVdSnQ5iYX9vbOBjIrjcBou7l+S/a22nNNmX4enEZvsn8Z2Pkwc1SeGp01J9xXImX
ohAI+iAXJO0LVYoPAf8dQ4i3C8ez1Y762s0eHOBLa6XpTIKMs4x7GPpzT4aS7uXczpAYJ6Yf
ZriZ6IETM9vdDxZfag/CgxfObN+H4OqqnPdNRjCNrRQM5kbct8+8vbXNrMFbK8eCFrY3HDRr
Ufd/K2+GtvtsxwAk3XfPrgm3/XIx8UlgVv0xvjEiRnCZmPo5jxeCZjZeLhDdt82bqT85k6Bf
39cp1JlijPU23F+CgL99W5lbbrh8Y9sdg60D9izssaN7UuLm0VufvO6CvSO0MTn/4nzbkWh6
TzTjYq3tQ1lYekC6dzo7m5mbfebEIffvF0Oh6G2fcF/9Y1/bHv8Ve0ttePdqD2SGu9wP//TE
sIC9QCljJaCv37f/VsTU+uC4udAN117vh5cvdfQEWEglo2Qc+5tE+2Dg0vGuVqqC6V913zG+
6Z3sLl/a0f0YDu15fAuwGVSQ8amEmZYx11hsOnu0YdapN+mGPH+G2IBSC7JtmEk+jFqSXJQ1
i7L2w9cJScONf4XdP//7++H/Ayu5WJ7xAqHR8CObrxNz486I3Xh3a0GnER0keJwBIQDe/6EM
oQywGgEU4bXNsIGeLR78wqr1CwaeebvJETSzLgHzBP5RDt7wAl3SUg9OxWb8P0ox0dasFcSa
BbADeJxrYG1g3cDEJPKUee3ERVExP4wulZw+qVVxReCDXNlkMaYsANUxDXT2DhFyVCLay22H
Zvu7Omfk1WQQW7ITeJzbXvaifIMwFysXZ2aawmQpLmUfhWouTs6CovjUoqL4/LzkVA2litS8
5Py8YisFz5yc1PTEHIWizLx0hYLE9FSFzLyUzOTUYiVNa6CmotSS0qI8BV1XT78wRx+gSO1m
O65zTIpAKaDhGsWpeSUKNgoGmkA+TC1IzJprMx/vU0aoE37xKVHXCbL8UjoAQlZGjvwBrSNV
Ca+s28qPUzpVjrv/VKjE6YF4nHvJ9pJtQyiziOy1TXr+/e6GBw0uVria+5WZxR6dBAClPwuI
8QJMKh/R5uN8PdThNfioN4O/xFiSIXicu8hykWWDCKNIieAHgbsfO8XLZ16I+1ZyIDZ8p/W7
zRqMmowA904Oe/8B34ib9kArZT7+bMlwvX4bNJaSBBl4nHvC8oRlwhuRh/l8fZo/xYMZvqay
9i5yXbJFzFdlE2MKIwDeyAyj8AIlypDn5eNByT8+mC7+z6r0xcPcb3icASAA3/+tA60DsAgB
FEB20cQH2K8P0JPpJt6dLcvbp0pvkxwBkeI9Dnf0yAJ9xoW0BX0zrSJ9hhoqMRWlylXNPnic
3VhfTFtVGI+mhfYWttIWWugtHLi0vbdcoGxMkc0hgwrEhCGwBBVz6egF6tbbP/eyjS2zkvjg
0+byvS7G7GFvJktmjEYTfTFGJdFg4pPx0bfF8GR8MZ77j7b0370dauJ5oOd+33d+39/znXPY
XXyw9eiUpRmtEggPeMFyxobnduVDtLDwoWXzkOm0eoG27nfm+Ow2L0qcxKK4kEA5XsykBZHn
JAg05duLuEWcz5tutqZ2pPgmJ+aSwiamzDQjl0rZyKUFidPIbzfTbSr5cnz9ik79ovmnSsIP
baEjqL/aniNLKCjCiFvxHJ/gMvFNnoWX7O9UwP/ZPlx7WZSI5VGlocbmOMYqMRxBS4pSJBuB
eEHK7aDIsMavrL8K1LaQTAuI44R4iqcozSsV8JY5o+S/HIezmsdRwT9nzSyvCCVmZCQxYxKp
yP9V4nbDZlQyytDoqcOHNofvlHkLIOroHDG/asFBhY3K3nBQRotHjcd2UpDGcJI4XP2JN0bH
3mwg2hqSVoew5xjJl3D/gwzWG+BtCacMqRSl3Pa6VNhfha5kbnvhNHrzXOaaZDIYqtOLc/Mz
3Nz0iryZuHXcaRtK06z8sy2IyU0Bdx6ceSTk5FZhGg2+bTFRZ/9M/s89DRTYW0OGHCgvgMPD
xFz+yxOZz3CZXDpxDDXBZxupifkC1P+lJl58KqjHv7U+/6zhVtvnZLvriCw62ToRUc2nr6WT
CSbFp0ReomlOZAbPK/2YRVEWicmbfHqjmMwwFYKHQ4qubyWv8nSUIQgqwW8kBR69DN87CfjU
5QwmWVzCMhaDEulqpQt/uAL5ZCX4Og5wOWyc3ptwGmjOFEoxEqy4QxtGVSq3HUWfaFYfHnBA
euE7J4KPXF32qB4guOMO5g2Fq8x7fT+bj0AJEp+FHg8xYjqEsOAe+jdD90FbT9+FyalXOKUV
TS4vT07NYnAcOlEpXS2eO57R06YVYBUfe7IRE+ID7V+PN6BGiwmcbO8AT8dO3bvfvY6VEKJr
937tGfWMd9xZRpzw9jFGrULwlpepkVFVCtcLPg1x/aEJZT7ewJV7lYDPvPGQMWHo8V2AK11U
0Kj0Ofihywbrvl77sP5ShHd9A65bi7FXL8WWltnF2NLCxfml2G34xPeNJYFflbDbGXPT0k6G
x69LFiUTN1ik0H/pHJ2VJ0P4vWS32/ETNkLL3wyu5QjupFfjEu6CSF6J26bCYZT6nIktcxQl
02kVkDkLu24ffNlvzU9dXHiN04yhdXU4lox2zCp8WrcWFUsc9tqCoO5NAUnMMKVAqoCOZFVE
YL8r768VyEv+r8BOTsMd/0mLfA2BB362Vw2nOIHDUWqKrgSe+GkgyHCH3JsZdF7lLs29HpMb
AQO/95GD8qxWoyu14y4VsyiTbMADP5IBX1XJA/I0ZQSRCfTAI6q/SfvMBkaqYj5+GHjPWnTq
Q5QaJGuCx6lI3V19xCViAN/3+OvGNhH8RU1b1dmJ0ChEwzbEFF9PK7xboDfkhvv9tprpPiAj
sN9P2QuUKBUEMmir5273gGj8blke++4RE85rXS0a8NjwGuUfQfAkiJp19BOhicBR6VL9xkJB
wt3QUEsJ8R7Nwvthh6uC/J+hAGvIfH2BnPZouHutCl+1O3WZbuCoLFVUw2jVSRfshQOO0iVj
beXSDbjohTXav1aFf5wuVrJ3jz7zNwHD81nhAqVNeJx7yvGUY0MIk4g56+YFL4373kULKs7y
ZYrlUks4LbQ5g+kvIwDcAwx34QKlIHica1FoUdhgzSey8OIH5dnrhYsfn+u4W1Ge7bhcUFZl
sz/fVkYA97YOG+ECpil4nAEhAN7/5QjlCLBUAhTqKqvbzSUt0FzN4UvTQNFh5dDmxbNoAv0B
HKkRk+ECXnica1FoUdjQziHyvZRl8iWeDcZxIRWLIya8O75iypyYzbM5MtkB8dIOxPwBYijP
uDP0KBxFel8tlr4PGdeJ0Wd4nPvC+4V3wwM2kRpxk48nhfcrxXuJOZxdO1mY9cLmaQC0GQxf
7AudKXicm32Kecle5g1P+SczCkzavEFAimnzT6FLAptvKpszTXZXi598KUticpz6W24FW4WS
iqLiAr3MlMnVmlOkCoriE3NSi0o0lFSLrRTKE4vyMvPSFXR1FdInq2upyehwcYKAQnx8Wmle
cny8pjVYwCnUXUNzc4zWXWbmWi6uyfPMFDbv1NvBstnQ5C/7ZkbbRqbNq+w3cW6u9axS2Hwp
S15ss1KjDuPm+iZ+pskHfRQ3n2u5o7r5wqrbwptZ9ourAQCbmENV4QKpCnice8rxlGNDCJNI
T8lUXccsTq8QrfL1rC/ier/p7G/anMH0lxEA3s8Nr+ECgj14nGtRaFHY0M4hwtL9ZO6Fc8eC
VC/3O/P+LeKxjD2pvHk2RyY7APMiDfz8AWIoz7gz9CgcRXpfLZa+DxnXidFneJz7wvuFd8MD
NhHHbONLt9IrNJeWlN9dNveurc+SakkAxQMNjvQZbUvzfGYPfBenIBs0wklFKXhL7514nPt7
gPnwAeYNHhpuJRVFxQXWXFycnJxBnn7u8c7+AZHxQa7BAf5+wa4aaoWlqaWpunYlFToKyfl5
xToKamANmtYgDZlpChpgrt7kfg1rRr3NZzROKbOmVpQUJU7+EBA5+avPMYShkz+mi9lpa0NN
ASvSBNsLMqU0LyczOzWnUkMRLKFXUlmQqlBTA7JEAQQgopNt/ArYYezNfupyYGZxNJIeXQXD
WAVbiJrJ0v59QEet9udn5NJRKKqIz8lPTsyZ/FFXZLKDM8/mWwHzWFGdN3l2GI880HEwpWBf
FlUAzYMLWU9W9FfbfD7sPAtTUcXkM9EWqCbwwD1YVKG5+X/0EUYevfy0tOLUEpAD9DZfjOXl
QtEhzgKS2CyWkV4BAIdRiRnqMIE5eJw7fIB5zQHmDcJ6KgogoK+l4JNYXKJQlFpYmgqk8/MU
ijLz0hUKEtNTFbT0J3/QlVMpqYjPyU9OzLHGUA0WVkjOL6jcrKznzlyfmZeWr2sHU6+XmaJg
q5CZYs3FiSaRXpSaBpQCkphy+WlpxaklQFkIA1NBcWZVKlA6JzUPXU45Ry8tJzG9GChrYM3F
xalVUgFyAIr2yXsNlYSxmDi5wMR0soyR6GQPU8nJ5/VYGXUmG9iITtYyFdeFqIZaCzY4Pa+k
JDEpPi2/KD4/LzU+vSgxr0QDomyyjLGWBIipCVJYlFpSWpQHd8Lkhz0SkyvN+Ca3GP+Y/LaH
Z/ICE7iFzDpcnJOZTe0mzzGtENe1A0eALTgegN6E+nOypln25KlmulwQ5wAlajffNWNnnfzS
et1kR1MNJoXayY7bZSe/sJTefMYmjsUFpE0PGFelILPANDTM9Iqzk4BCQBImgGphWmZRcUk8
OPwmCxhJ6KmB1OhA40QHFPhA/3FC40obEsh68ACd3O7oyocmdMHRgw1i6uQ1ThKTDZx42IH+
4uRUUJhs41QAldq8xomLEUnZ5nPO0YwSFal5eakl8bmJ2alAJwETX7EG2D2T/V0XmOCS1AF5
Lj6tKDE9HuQnDRBLUwdsJedmQzehWQD3wwXd4QKwSnice8rxlGNDCJNI4+kTAavELAvtVbl6
dp78IBaam124OYPpLyMA7tEN/uECiX14nGtRaFHY0M4h8nSSuYnQgWTuk60Xcizz7AI4zySZ
bJ7NkckOANuPDK78AWIoz7gz9CgcRXpfLZa+DxnXidFneJz7wvuFd8MDNhGbo69eXYiVcPyw
j1XsB5cAG1MMqx4AxZcLeuECsWF4nHvK8ZRjQwiTiC+zXU5AQvEK52U8fOqTVXvm9WrEbc5g
+ssIAMhaC/ThAosUeJxrUWhR2NDOIZKkcX6H8RcNGdeqeN1p+/glr3deTN88myOTHQDblA09
4QKyPXicASEA3v/lCOUIsFQCFBBbJqU/zTe0jsjnuFvd9Tnq8BBVs2gC/QH+1g/X4QJeeJxr
UWhR2FDFKPK+KSZpDfsF1ldBLhV9OZ+2qc++f3pzH2MZHwDzuQ8L8AKVvcLLokmcaCUSB+9h
Iq2qxFabz3icASAA3/+sDqwOsLEGFK8CcojMI7cMu7DZPqV1207SmjjUk8UGZ+2jD0/jEbFJ
eJyb84F53kvmDemcm6s5eRg3T+e6pr15gtlyCTYuzsw0BY3JHx2FNxf7z3GcPHGuGEtBUX7K
ZJOJ1pOlJrlsLpwkwjg5dZrM5DmT5SYvn2adqK+lEJ6qkJyYp16iUJyYlppTqZCeWqJQkpGq
oF5cUlSaXKJQlFpYmlpcoq6QWMzFycmpoAWWzUxRyCxWSCotLklN0VPQ0gdJJefnlWTmlaZa
Azm1QAzUqTD54BRxVpB+6823pj5mZOSczJauNHnHTMnNv6YvZJz8eyPXZNF0YaDAXRh786ZZ
RYyT0/RFJ3vNkZFQAhnMyakEdYWVgmpFTJ6SjsLm6jnLGTdfn7fNZPPGy9kqALuNZHHhArVp
eJx7yvGUY0MIk4jeD4W4H1qf47qtZ4u/zpD4bN5ss2lzBtNfRgD3NA6l4QKDCHica1FoUdhQ
xSjyoaex6yO/NENQvPYMy/9TogqeCFVu7mMs4wMA40kNafAClb3Cy6JJnGglEgfvYSKtqsRW
m894nFvDt4Zvw0Y2kdWns/X4DGfls191SNHRCTvOw1HzefJRtnQAzNEMhPcL4fcd69u6prQX
5yo9HCelJIdvt294nFv0nHnac+YNqX2b0/quMNoGefq5xzv7B0TGB7kGB/j7BbtqqGXmpeXr
2hVl5qXrKGTqKKglFaWWaFpzcXJmpigoKNgqgPh6mSnWXJvLJpgwMupNXjNxLpD0nuTDqDZ5
+qSZQLbRZCMgmTbZBEjOmWwFJG9NVZ/8f3Ibo97m9imBjGCBdiDZPkVzct90IVawmZOXTNsP
F7sFZGXNKAZquD/jcBQAS5hEMOECuER4nHvK8ZRjQwiTSKy1yLGACxY/snW65hWu4Y/6K/Wi
bnMG019GAO8wDpTQANPOtlH/JQNyQ2RVUjpeOyVXtg==
--------------644753F650889724A8B30328
Content-Type: application/octet-stream;
 name="back-4.9"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="back-4.9"

IyB2MiBnaXQgYnVuZGxlCi01ZmQ4NTk0YjNjZWZkOTY2Nzg5ZGZlYmY4ZWI0MzExNTc0ZmFk
YmI5IExpbnV4IDQuOS4yOTEKODI5MmIyNWJkMTU1NmZmZjg2YjRiY2JkZjNkM2UwMzg1ZTIx
MzQ4ZiByZWZzL2hlYWRzL2JhY2sKClBBQ0sAAAACAAAAMJ8seJydUUuLFDEQvudX1E1Fpifp
dw/LsuxlZBUFV8GbJOlKJ046aZL0jP570wwuugcFSSBFVX0PvqSACH1VoRgG1WNbdg1vec2w
Uh2VTHbYDUIgpeXQMLLwgC6BYk1d0nrgbVX3TGIrBK1YXwmlsO54UwpkJWJD+Jq0D/CwYpjQ
wTH4GOHm27S9d3GNWEg/3wJrq571fdkweE0ZpSR3Z5MS/geUpPTjAPosDxBwsVwi3H8+fv3w
/uUruJikweHEkzljHqc1ODhzuyIhX7KICt4ldGOEqP1qR/cibeCMNA4kjwhegbE2M1gYeeKZ
Q2LmGjfoTJJGE0BwedpICnj0Tx7y6MlHhIvOagH5aNz0J+EvHgjbaOET/sV1liDkkzYR8r1m
Bth2A6X1iLLqmrZVsC4xZam5IOQjng1ecNyJHNEDd3CPqzVS51zFtfotWfJoJpd3vVLX/X/8
BHln3Cknn9ISD/u99QGLEwaHtvBh2od9SUtGu3wGRuumqFu6Y7tnNM9FjwEneBs817s3PKQ5
e76Zcu+k76xx63flV5dzM95tIrfkJ/Ki7RKaQHicnVJdj9MwEHz3r9g3HoCQtM3X6XQ6IRA6
JHjg7g9s7E1iLrWDvWnaf88mbdGBkJB4iWN7ZnZ2vByIYJNWu6qpi7LWps7zpmyrtsZ8u83q
stkZnefGNHVZqhEDOYai1FRsKMNtmulsq9PGaNLlljbbXV7rtiozXaWYK5y49wE+TxQ6cvAp
+Bjh9nu3rPdxipRov7+DrNhWWVVt0gJep1maKjndW2b6D6o6knvniNvgHd+A8e4VA4cpyrcn
aFA/kzMQKI7eRQKDjNAM1pnhpNSTN3iCKx1mOwx/IbOHuKzeDSeI6Oh3uUQ9OPDBiH1B4sFb
A2OwBztQR0BR44BsBS4g0AFjTxGsA40i4FvY42C19VNUl4IRDhRse1pNrIZFtyGxx73w6DiS
ZjIwWEktJvAxyoHFQdzt8ZlUnAIJF89d/PKKw4ynKPuW5Fm1mEDxPXFkdMa6Tm5+TBQ5Ueqr
54vC2vMiw0eQ24kkLRKHl5IgvfZCl0C7N4ARWulxrXpUZ/iyEZCNIOpCkFbWI2fouKSwgpfq
I3YkpR8cB28mLX6l1LwArUYW2au0oYOV67kn2QWwvIg3wUt00pHEQqxe4CL7EWYfnpciQnIX
RiRO4JGWkGx8Ueb6MiJxfZAFu6R1gplsMJdXB/W0MiOc5xewqnYGsciwNHVW5DCNkQPhXtp6
tJ0j89a37dvmdPOvOVffxDvNQljB8k7vaZIp6QXanP9egP/Q/oAHCfwxgS8yzhLQrcED7e/X
7+BbTmTe79RPY31kk5VOeJydVEtv2zAMvutX8LhhqOdHnEdRFD0UGDC0O6wregxki4q1ypJn
yUm7w377SNtt2hXDgF0SRCQ/fQ8qsUeEzaLSqzRfylWR1Qp1XpZFjXqjy6XMVVEoXJZLrFLR
yR5dhLpaZetMFetKlimWaaXShc7zTZVqnRaLDaabTJfrhZBDbHwPnwfsd+jgU+9DgLPvO/6+
CEPApPbtOWTLYp2t11m5gQ9plqaCTlsTI/7HqHhA99Fh1L138RSUCcRYup1FiA/bcF9tNUm2
JkQhvjVvDgEttjQRgKSCcSAhmHHaGnePCsamg4kNxAZFjz8GpAOjgCgpkGHsgx41klU1JsCX
dKRkBp7q2qBVYMJ4gxic8e4ZFIgPdN441u81SMddBA/zbYkQ136PY+/r28APkUe4MoHSpO8V
AUUP6GRFQiRYSdDEnTGp20TQlNKMHuDQmLoBh6yHiHQD96uXtIjBV0JrCUyprVHb6J8dfPee
GCvYYeQCxdC+LEUvjiN/aZ+PX1LveuTdIxcoDEFLRcyZsyel/ZhJYO8PaG0Cl6iNQ/iV8tFe
2gEZwjhlahIymoNOCbZ2ipMJdFbWXJNxHiGh/mgxXyafLALnI1TIVMjiqYdjAXHX0K6yXKrx
6pBlP7H3b2I109hToHAbOJcvt1dXYrp9DvH1TIgoFZd4Y2mX+setCVvmR3YxQ4W1UUzr0ODo
zJFyQ15MhOZFZkviGGTLy3SEDBTFjMnG+I4k1V4h78kTBwLjX4HgpbWPIvZmb6QlYw4Jvyve
7ADTM4acHmmmcrVaZHK5kCkMXYg02LJjN2bnUJ14rU+qx9N/vfc/2y/lnp7eTQLXxlrSe6bk
HtuL8dN6HRP6JzgXvwE58LASny14nJ1SwY7TMBC9+yvmxgFtsZs0dVer1YKQEEhcWH5gbI9T
g2MH2yn077FTKnW5IBFZif385s28mZREBF3PFVkzGEGdUWKrTD8YqQ/aqr7rJaq9tGbf92zG
RKEAt3st+r0ifpC7wXIu64Nq4F2Phx1S3x1Ex3eK4VKOMcGnhdJIAT6kmDM8fBvb9ykvmTY6
To8ghk4KKYXYwWsuOGcVnVwp9B+h7BeFN4GKTTGUezAxvCqQCA0YLAgVnurxx0K5QAxQjgTJ
hRFmHImxjwFiMjVviYCn6AwgTOiddnHJoFB/p2BAUYtA5anxXLB+oaBpFfNRo2dzippybrRo
q8Y1o1qcN5ekf5CV789gXaonDOttAB3nM3Ol6b8ocQNvw3n105DVza3atZZ2WfHbOtzF7NqX
ZiIQmdz0FbUu0bUba0GVnQtWTxvGvh5dhrouQ6kd33IpSHed3g5yQFjmXGpBU6U+uzGQuYvW
3qnz/b+Gx77QydHPGrCSMcA7Wmqvj5WqLrsb8l/a7/FUp/O8gc/O+zqwB4Mnmp7Wt4+2bOo/
8Mh+A7LO+FOVMXicnZFLjtQwEIb3PkXtoZM4LyetERrYIBBIaOAC5aSceDqxI9uZmT4S5+Bi
OAlqITYIJMuP8v+7vioHRwR1p1SBZS7KVmSi71re5hnJijeYkxSVaHkn8kyyBR2ZABWvSLWy
xaKkGlGUKPpGUVHIukQlCYlyzgkZrmG0Dj6u5AYy8N5Z7+HucdjWe796Sjo7vwFeFw1vRF3W
8CrjWcZidNYh0H9Y2QuZVE4X5awJZ3CEfZz8Yo0niMEZJHYXMj1YM13j1BFjHwxY18d0wQI+
Wd3D4qycaPagDXQYrWGkm1N7mG2v1VWbAfD2PLNml7ktvOBA8Dzq6bDuOJt3RA84bVhX8BQr
0+E1PK4+HKhRy2642mw8MNkOJ5CrUpEw8lhDMMQLs8vjeSGHgWBPj+GXkm31JQyAfRsjcBxH
V0FwWdd5Wai2aZs+I1gXH2LyeRd/1YOh/mSVOsnr+W/9Zw/0pOk5GnYxGnhH66S7MUrlsftN
/Da271A+2CHW8gVX+GyN+fEd7twWSRZc7zsdnH45HJ+0uZxhDGHx5zSdrKPkQs7QlFg3pC7N
s5xnoog/XzRVmfC8bvgpP/2B+a9F/QQmbwhH6w6CQ3icHY47SgRBFEVRVKQiwQ1UPkxbv65X
LSIGpkZj2kFVv/e0oD9DTznoKmQQU/fgctyNrXA5Jzz38+zrtC0zkWTtrPEuoEG0IZJxNoJG
x85Z5b3yHeumxiC2caaxSI8xorGEDmKnU8KkCDA1GlgHBg5gFDDUh7Y6CQr04R0u/yxXSisl
xCuNVyOV75/zo5V4fM47uaybhiEXGZxbgj5x6DQ3DPJlu1tOxqESHxfHbb3JTyPhemJep7dr
eR/3GeWmkg+572mWNxj3NNz9s5+4VEvnVvwChftHBZdOeJydk92O2zYQhe/1FHOXBsXKkixb
0mJRJAE2Qf6QwNn7YEiOZcYUqfLHXj1SnqMv1pG8G6RNgSAFDEumzwy/c4aMngi23Va1olBr
gQWKpt60VdsItSlFWXVV2YqtKDrZtdmInmyETb1WTSvqakudLGVTtNWmQSWLUtYFr266RspN
1WWY4sF5eJPI92ThlXchwM2Xfn4+CylQLt3wB5TbdVu2TVdt4feiLIqMVwcdI/2P0uye7EqY
4947G69BOfskQvQp8PeBQKA8klXgKYzOBgKFEUEYbZWZsuzOKZzgsRzO2pj/KI4Owvx01kwQ
0NI/2+XZawvOK8ZnJZ6cVjB6fdKGegIKEg1GzXIWgfQYDhRAW5DIDdweBjRaapdC9rBhgBN5
vZ8WiAWY+wpivHjgOrofSUZSYDSnFnK4Dbyg0TDdgEfKQvLEtXhx8Y0VzRmnwL/3xGOVDIHM
nWKIaJW2Pf/zZ6IQ84wNRe9UklwEls7AkriwLg1n7Yt3b1+//Pzp7vnd7efb3e7DDs4HLQ+X
CAUzMKw80BLeo1feTlvJLDpEBphAB5bO3RTFxVIOO5Juds+LPJMhY8fhYXt+Gfk0aGHoMoqT
RmYe3GlWswdAtfiYIU/ax4SGO5+0pAx7ZIrfKO/zpQyBz9TIWa84njQQyEkaesrW33OCHJWB
M3o7dxsoBOznkYWQ2JBKNJs68dQUkPc81MeIOVwGzZa5sFL/cCweesHeOKcezUev+55HokBM
DPbDccgzyO7mGPhzuSkguppqUdbNXpVdVyGkMURPOLCBT7q3pK7cfn8lpuuf3ahsxwHRmQsW
MY/oBSUzT/Lmi7i8fSd+zkAX5c4xMnzEBO+dtX99hRs/r+QjpmdSs6X7S8U7bY/XcIhxDNer
lXGe8iN5SyZ3vl/5VVVUZdGs+S6v202dl9W2La/qq39h/qqpvwFvi7EylTF4nJ2RS47UMBCG
9zlF7ViMOm3nndYIDWwQCCQ0cIGyXU6bTtvBj5npI3EOLobTYcFjgRgpSpzy99f/uxw9EXDB
RSMGwTrV9tQgGzn1fa/5KKqhq/Ke0LprumJBTzZCL5uRNVWT8bFvJNdcspZEj0KxsW0k6roT
zagLTPHoPLxL5Cey8Ma7EOD2y7R+70IKVEp3fgm8qwc+9EPP4YZxxopcPZsY6RnS4onsXswn
7Z2NB1DOvogQ8UQwO4kzSLdcwGlA8PQ1UYiQyTPEI4E3doIFJyqKtxacV9k/OsAHZ1Tmzzgb
aVwKIFCeyCoQtCpQzLRyxuo5kZV0bXZ1K/52E8nMarP7WbmS8wW08fkP7XXXbkFNzu6K38Jl
nxAJ1dpWubW6Qplw+eXhES/gXcpdMGStwktZFJ+PJkB+trnCoFvsxlaNI2NMyxrSEqInPGf0
k5ksqZ3Teicuh3/Nv7inB0OPWXCF0cJrSnlMx4yKbfUL/CqPbSPv3ZSzfsQEH5y137/BrV8r
5YLpTprozdOmeG/s6QDHGJdw2O9n56k8kbc0l85Pe7+vWMVZX+ebr4e2KXnVDXxX7/6I+b+H
+gFjzghEmCB4nKWQ20oDMRCG7/MUc2eL2G72kM0WEUFrUaRbWvFwVXKY7EZstiRZtW/vSvFa
UBgY+IZvmPmjR4Q8k0rnnDNaVlKkiWZJlnJVZEwpneQVTZBSTAXZC48uQmE0L6pcZgqNrhgr
eaUNSsNR5hmlRZkboaWsiOhj23m469E36GDhuxDg/LX57pehDzhR3e4CKMs45WVRJnCa0CQh
A93ZGPEPKvlEN4NwcAqsU2+9xulAptYN24xQOLXd1FvXTFr4sLGFZ3QnARx+YIjwjj7YzhGy
+Zc/mKTzejg/dtBghNgirG+Xi+1VvXrZruebVb3czEdjEE4fBz9su1rX19v6cb6+ua+fRmOy
E2p4eULIQ2sDDHXMBlhaiULzElNmsGJSCej3IXoUuwkBIBvbONRnnTFn8jD7LUfyBXLqqKz6
AwL+zVtE9KWBJo+nBOr08C19B7JReJwBOgDF/7cJtwmwpgIU0rUznKtdU4gdUO8/ERXpQjlv
4b6TugJOFAxf3x+OAQ7yDbhDhyuG0YYoxHelsxwDmwHSGBgP9QUWmR4VbHSEYmYVFD0I/VwG
k0dejHicAVUAqv+iIKIgsHoBFNbp0Fl7YgfFT5G3msBbxmbqU4x+s44BFwcUqNjE3pxQD0+V
gwuwd1a76nA2pI2zuQigBRT852XeJr8q2N4tQ7v8AuLb0waE9rNtDrUB9A8qRfAC0IpW8Tuh
8yYnxnE77/wpgQPcZ2B4nJvCO4V3gySbyP2I59cnf9X2K4t9tDq196vhXUZho8m6bOkA6zgN
5PpmbuPpKOvxjIzMpsFwmOa+D5R7qXx4nJVVT2zbZBRXtnbIbiWg6sjYNHjrSOREqYeCBKNu
UnWpO0WUJHMypnVTLbf+kpm5tvfZ7jqhaEcuSBw+IYF22H1baYND1RPSBAcu/DlwQeKANHEF
cUQ7sGe7TZOtILhY73N+773f+72fvzz8ZujD74a2fhsZ484tvFOeV+uN2YasyopSVdijEXek
plRLcr1erpzPBbXRP8TR/RcSz164cppdl8bZjc2jCZF9JH3L5SDbNCzNVNnC9K1X4pAaVkul
5EZG4rm9GAqQDtOC76ffT8yUbOcWeNcI4C8+cT3w7PiIaHC0FhEhe4bnsoP1sEY2itlxSQzu
Fi8+z+5/xTNrdjQ5COyRCn55d2vov7D6RNGfy8U4su5RbQDNcYPvoix18dgwxhIfcIsPDxej
iXanEdzM/x/oDMsvAfu4MTyWfYYHW11Ksl8Xj7O8lDzU5lnlQjK4s2RNT0yDIl9Q56oVOeR5
7uJ5tVoR3Dzsvw/euPPjYb7v/OLdT0eDe/eLCVGRZ+cQX5IFbNK0J4thL9ENnxi7jupQWw/r
rhnUU9mRjbMmZzRBUNALqiLXa9VKXVbRH1jlPVmZX6heEtJ9pXJAnUwGPkABHapqJqGeMJFy
p8AwTdLSTLD81WVCwW6icK5jWy5xIeVftSZyoebs7+5LWerAJPTTC3mtIDTaS8tGmQmlGLdZ
YWNe4Tjfco2WRXQwLA9sR+IRFhEuVWuXe6yf4mnkIL1MiRcVNXRcS3gSDR0t//XGT28O0t8j
C9c0F9us2JSSFQ8wT0iZemaPfzRA0tBjB/VR5do8xz4/lbzteprnu3CqEG3n0my5gURjwbh/
aElJk1BiraBSlg0OsfTQYLu+63WGeLiWPlnUDfe6ammr5FkaQ20Uh70qQd9HL7HWpnDIdpi1
eex10XYI1TzDtiJdcPW2A4UCxDdHtaaWK3NlRS41MmHpOOm26IsGsgol6QVquIi4QiRsr244
u+38+8ihyjepjWPupwkpH2d0PaLpoX1Sfk/1RCR7frBNLmxywBr6ObHPNu8l0qy09QBvtj+3
8vjUuuPs7Q5gdKUzFZ2Psgedt16ONEa2NzVqqdiBmMaq4RFdYI87ZcRBNxPYX6QTeynB+NiB
2NfYX10hws9E0KsHwX7oKhFEYktfPsKotJ1ODSDS8bLXl3Wyhvsma7EHONbePnli1xlTkDq9
3rMHFw0c7Gx3Ekf4UI0pduJnGI7/BE7unJ3p3wSgg7RlE7+opk2h6VO81ij4LgnLHWy0oL7z
u/EEUKwjZvwBLZXIRCxWkSzL/Uev/qrCztTXjKh4nNvJt5Nvgyq7CK/u90wmCxeNeYemJGmU
MKsopkm4AwCGPAi+9NUBCXHAk2PL9pBIDR/61RZhc4CtQjd4nJVWTWwTRxSWAyHY/AQI5A8I
k2CC7diOE6BFiRJicAIpwTEJ/yndru1Ze2Wza3bXYCBpeqjaY0WfKvVQJGhVVIm2qrTqoZWK
qPojlapVDz20N3KqqoIqqgqJW9/Mrn9DacjB2Zk38973vnnzvXntzrL3vl/2abKx2ygIWVnJ
BF1O4ut1OXVDyycMomeEeF6SiA/Neiauw8K6Tc15RZdTCk0SPa1qBrF3omnj89uTVJIVSo6d
EibGo4eF6GR0lIQKEv65Kmyx0WhkPHqQEMtG4aN1sNlZ8isr3GuOKknhfJ7mqTm0fktdT6+P
jOskSS/ICUriNC1ekJUU0UWF7uOY46qaJXFNzVAFjjfdgoZNp09mZd3wlBz70lRM+klNAj62
yO9yOp0IqMYmJ72uKy4nWzEjJ8+SIcsH/LJp9/Yl+Ia9ze5TLqcsEY+cJJ1DVcR4CXp28n3o
txhiEOcqwlVuQNOcy6lRI68piAy2nWkx326+uraRzM4SJRcYtpL3wvnvmsyBHXvqGpwJVdEN
ApdjIVB3CvMMyBQyL0yNTscmo9OjQmxqMiJMnhidGpuYPOnp5nQHho2Cn+Q0Nem1MDqRdEHM
Us3w4JefdI1nszQlZomSPxenGlElolE9h7GoTnbkX1S6OJ3IJ3NCAsR222EUgpqeExgqL0vU
mVINlVBNY4M5+GHnm2NGAVcMupiRIz0wGTtdglsFkHnxk26+wfLG0uPDINzw7JofItZATpas
eArDQ4Q7nh4/U+mvmGpNrnwKE+mashMkaVHHCk2omkYTrECIZ0feW0oZl2LN8HjzVdmxo7Mw
lELye8PP2aoM+1osFYikaghETBjyBYr8o1vdQBxWcIzdXxWc/T4hcnWFwT3P1o7B6qXs3ttL
o8cnJsDhPd36H9AOguHtbikBqE4eRi5uht+8D2DB8CznivHI99mZYj3jibPFA65iZFmR1GJF
Y2jUI4qeagsxIutiPIvXjZEh5TUjjeWY1ynyAB/2gJuwPxSOCRGvgc0RURWiMenIiSmKygF/
vdsMvaGVbsaLmhCzg4t28GksuNwl87D/mqOUgtka9DlgrHdi3oJb9IAlh5h53dUYUhqV0IS/
i22qJOnUQKv1sXiBLl+mTCqoUmubzwalrJjS0RpilwcFmwGo2s7me31M4EksjwqbLlUNLuRD
priMGH4EfiIb5KKcRU2lhOHC44yX1nA3F9PU3jiP9zyfoKwgk7RAZJ2IcTVf3KOJsk6Txd4i
JpOCnBQMVeAKWr6CFYrvJ9W16rduVTlrVhKFEgv6W6GGxhqyYFUoCndDbSt9zIBFCnf6NsLH
oea19h6LzBD09LWtsKYg0udrZZ88VFFobbegtreb1/uWO+BK+1q4299U7bxn1zAsPBeAh7sO
twSGeWkN8Qpj9W+7P7o7A1/uDris4EzOzfo9j5eB0b5pjZYRbAaQXXCYzaB+2wAvv1M/X9UX
ZYbsYlrOUuLxyBgiRQ3GpqSp556BT1S7ziEEVtWPXIsVAm/9qgppMh/vbXLA+oFP4OuQp47M
wYNDe+GfgcutTNfySlbO0OwlT0UrMl8aPF6/j6Uf5K4RMP9vn1wQxQWn8Lc4UU2cJGu6IcDt
ka313cwMD0c28+MLlo95XXi0dup0+NAKe+uNsLvB7kUQ3r8FFsLHyqZWOLL/74qhefLAjAO+
6m+yo/0auc5GnXzkZzCRZzElMHQe9uW1tQ++GJ3dWqCKgodxTqw6SkvuvWb/2J/1ZseE2xF4
SlvTsK319NiNjRYMTYSrR9q2Bo1LOYpN3n6jEMJN1uwwRCMtcO/IdIM9CwPRnW7+qc9UrAuQ
PibhfIZ3WxeETnTDT9G4I2j2TzY6XH6i2Qya4djt+nL7hdUnujoQUNHMBV5jV7A0ZfaeeLS8
TivA9MzenqUmqBW85usz3zhW28rHAATNU2dnnUt+qDB/Ws7u3eXm0I2fgeFneasQdFN+qIB3
26oYT/Op3cip52RFwLpXE5kKSIySjEWSJSEh/nKDH3e2wX3pkvt/+JEZD+a11MKqDZ21bfgs
vK97twy6FjfoYn82f9bXVDSoNfnHDYGKV0dlIt4ywvGpo8KhcDQyMRqBN/b1gnawHQ7P/e5d
8i7T90pLXYf91H3i6kGXOfLqrR1OvEKUMqWC+x+84H6SWNU+e2G1Hmh7gjIRmfSQPrhh9MPt
m9vX1YoXhNubNvQtekSb926uaTqOHX4MnwyseSVEfExhWYhYGFiZCnvWYYlQq0V2WXl0sc4m
J0RD1YK8i9VUhCRmdWr+8fnm7n8B6xhWd/ECW9zxbvfbFBAFZivF7DzzPz9uPuN4nFvIs5Bn
gxSjyFyO9dHetak77hk4KK6fGfnN5sQpn816jJ9ZANrGDcfwAqYbkkUzxSYs4J3+AAykzkUM
cJcbeJxrYG1g3cDEJNLaU+0tWbOZN+jBirT3mgd+PjLQNJ4sxpQFAMNxDJP2Dl6H5IZry3tx
x12DXRa2UzXEYT8+eJybVne8foMRFysXZ2aawmRLLmUfhWouTs6CovjUoqL4/LzkVA2litS8
5Py8YisFz5yc1PTEHIWizLx0hYLE9FSFzLyUzOTUYiVNa6CmotSS0qI8BV1XT78wRx+gSO3m
WK5zTIpAKaDhGsWpeSUKNgoGmkA+TC1IzJprsy7vU0aoEyT5lajrBBv+W/oAHopG2vwBXM4y
fTz6CwMrPpkKHaK0OexbvPJ4nHvJ9pJtQyizyNfvqWV8DjNXCS/fHexgqsJnesVEDgCxPQsd
8QLSyhtZZCjKqg/2xDyR4h0SEFFAd3icu8hykWWDCKPI6RiRp8lNYfs/WHPNfsK69XSF6qWQ
zRqMmowA72ANoP8Bz0pND0HRZppFSPELwWs8FRwcFiV4nAEfAOD/5ATkBJDsFOjrdM+nihyR
p9Zn6jjo0o0MToSssgFkARceEETwAoV6nICQrRBgr5uzCK6jzJPRmxjbeJxby7yWeQMHo4h6
duN53vXxtTmi0TX2jFefn7Vs45kswzgRALxtC9X/xgIh9PvVXkjt8DBhuS1oeiPL40qJiXic
3VffT9tWFFa7UGIHSiAhCSSBCyaOnRoIHWyMsjJKM6CdKAUqsY3JCsSA18YJtqGlVZci7WF7
qYSONGkv07SHSn2YVKnTtGmTNqRN035Ikzpp2sO07Wlve9sfsGs7IUkxiZ12nbT7kNjnnvud
c75z7vG9d+e+Wr930lGPlkiEBzznGHLiZ0J/URwcvO9Y25901/mBqXvQJgsbm4Ki8iqHklIK
yYKSzUiKwKsQPpZrLZktmfns2PXG9LaaXOMVWZTWsGSyHrUYklU5I6l8XvxGPdNsiJeTK5cL
0s/rfzJTvuOkH0L9zflMqEyCYqyynpSFFJ9NrgkcvEDcMsH/meivvCxOJnLIbBjcPI6xRPbH
0LxuFGlOIEFS5W0U68/Pm9s/BGpTEjMS4nkpmRYoKh+VAXjDnlPaL8/jrOYwK/jvlJ3lplBK
VkNSsjaRSuJfIm/W7IaZU5ZGZ5V5aHYFTtr3AOKutgH7q2ZdVNSq7jUXZbV4DD42RUkdxkni
cfWnXh0cfq0GtvNI+TqEH1wDubLZ/yCD1Qb4G6JpSyYVVd5cUYv7q9iV7G0vnEZ/js9uqTbJ
MIKem56Z5KfPLmqbiV/BnbamNE1pf5uSIq5JuPPgzCNJ1lqFbTT4tsFGnf07+R99FCggGmlL
ARwsgP2Pib38H0xkLstn5UzqMdSEsFFLTcwUof4vNfH8I0Hd/7Px2aOWW223m+uoojLn5qow
YrjPbGXEFJsW0oqgMgyvsL2n9X7MoTiHFPG6kFktFbOsCXmYUnR1XbwiMHGWJKmUsCpKAnoR
vneT8EmLOyZyuIQ1LBalMoeVru4O7FAeaPLU5UQzO1Ui4WXsZaFJ4XwwvC2UUiRY9NCrVk3q
xx7dnmLXHh6wS/vhOzeCD1vaiXiBKbjtieQs8XYg+sLGts9AGZKwAZ1ecsA2hTDr6XuS1L3X
3Nl9ZnziPK/3pPGFhfGJKQyOqVP0Gs7zue0dfNq2AWziI+9GzIb6idavR2owk+cEmlp94PVt
Vz0E7voWacRU/gjk71NH/CPuA8Ixfzdr1SsEr/vZChk1tHC94M8irj80pj+P1HD2XiLhU3+S
tqYMnYEzcLmdiljVHoUf252wEugi+gtXRngzcKLlxlzi4qXE/AI3l5ifvTAzn7gJHwe+caTw
9RJ22hIeRt3OCviaySExdY1DuvzXtsEp7aEPX5wIgsB32RijvbO4lmO4pV5JqrgdIm0l7p/6
DKvX52RigacoTc4YgOwp2PEEcvrkxIXZl/m8N0zBHiaTzX9w9Xmm4C4q1djvuqVARjhFJCXL
lgMZCniGLKrAg/ZcsBKTl4JfAhE6C7eDTQ7tQAIfBLkug09lDPNR7krBCPwVZIAMRX1ac2bR
aWN2fvqVhNYJWHgpFLGYyXepc7AXGmg7XGOXDsEvPccBhYkeS5B94R74guo5ih/3Ql6IR+rh
nbDvcAv374XfqnOVIrgiEeApZ7iyndFIB7xNNVR3yIixg8MnP+GqxV0Ef0S80NUzdAQBRw/C
TNSJ2LKT6sE7DGzQoVBFTIPKgZKVONTeqmFWb5kmnPfjzWMz4Ci4aPSU9szRY6Ve1RbrucZy
yXGGg999pNfMIZhmwr3WHC2s2Av54WI0uHyYguH0liirfHqZqeGDWDRV0fO96PmGh7SHW0z0
aonQC7eYjicToanPfzND/wDn2+jt4QKlEnicASEA3v+3CbcJsKYCFI/oVwGn9QxAKJUdind7
oLqjFuUHs7oC/QHuqA5m4QKkZ3icW6SwSGFDJJ9I9J2Ped9viwiwpmkffWPz2d4+z+7x5ly+
rYwA+U4Oo+ECpXB4nAEhAN7/twm3CbCmAhR/O4LF4bOO9ckJUhSkMMznWLAL1LO6Av0BCaYQ
GOECXnicW6SwSGHDUg6RHysVOAU67uQHH7zDxDPN0rpF2G3K5p0cmewA5e8NAPwBLZXIRCxW
kSzL/Uev/qrCztTXjKh4nNvJt5Nvgyq7iG/1+4DVwVNZytV8jL9JmKYGrAm0BgCY3gpp6Ayc
a3icW3SSefUe5g1P+SczCkzavEFAimnzT6FLApM7tvNP9n/Evvm9sjHT5Ei1+M0R6qyMfAq2
CiUVRcUFepkp1lyckwXLJSav0KyUKiiKT8xJLSrRUFIttlIoTyzKy8xLV9DVVUifbKmlJqPD
xQkCCvHxaaV5yfHxmtZgAadQdw3NzXlaHxk379G5zbI53Ogv+2Z16xlMm5/b/uHazOJZpbA5
MktebDKLk/bmKw2MjJvZmviZJgtOkt7s3/JIdbLjapHN2auOC2/u3ieuBgBqCEYN4QKoXXic
ASEA3v+3CbcJsKYCFEGxDhPjbvlVwe/VcGrM8K+8PNbNs7oC/QEP9RFx4QKCS3icW6SwSGHD
Ug6R9OXmalJ9UQscRIWUjwb/857vsLh8806OTHYA1MAMy/wBLZXIRCxWkSzL/Uev/qrCztTX
jKh4nNvJt5Nvgyq7iLT/jp9LH2uY2D454r1Mw519PX/WFQClhwvG/hoJccCTY8v2kEgNH/rV
FmFzgK1CN3icaznAfGo/84YoDbeSiqLiAmsuLk5OziBPP/d4Z/+AyPgg1+AAf79gVw21wtLU
0lRdu5IKHYXk/LxiHQU1sAZNa5CGzDQFDTBXb/JCDWtGvc33NOyVN8v5qDDq4jGrCGiWtjbU
tNSKkqLEyRN9JWX1SioLUhVqakAGK4AAWAoiajfZz0V88gPfYHao6GQrP3UVMLM4GkmdroJh
rIItRA3IhbVckw3C1Caf80sCOs7In5+RS0ehqCI+Jz85MWezY8A+VoSfJ/OEKckBHQSTBvuw
qAJoGlxos37YNxamoorJwdEW2sR6sKhCc3Nb9BFGHr38tLTi1BKQA/Q2R8TycqkQMCITpHTz
3PT0CgBZcojq6zCBJnicO7WfefN+5g2WOioKIKCvpeCTWFyiUJRaWJoKpPPzFIoy89IVChLT
UxW09CczBghP/mfJrVJSEZ+Tn5yYY42hAyyskJxfULnZU8eduT4zLy1f1w6mXi8zRcFWITPF
mosTTSK9KDUNKAUkMeXy09KKU0uAshAGpoLizKpUoHROah66nHKOXlpOYnoxUNbAmouLU6uk
AuQAFO2TH+srCWMxcXJinvBkBQPzyScMJFm1QAomWxnr6kJUQq0EG5qeV1KSmBSfll8Un5+X
Gp9elJhXogFRNtnJUEsCxNQEKSxKLSktyoNbP/mBp+TmuYasjJPfePJOPm4kgmRTo4HoZGtj
ncmHjCvEde3A4W8LjgagD6FenOxvkj15t4kuF8Q1QInazcym7KyT+a3WTT5ooMGkUDu5sVd2
Mp+F9OZPVvtZ7UHa9IDRVAoyC0xDg0uvODsJKAQkYQKoFqZlFhWXxE/e4yDLqgZ23XsHaT6w
OniATeZzdBVBFYI4arJCgujkH448k+scFdmgBhkYSQgnF5fmxiflJOZlK9QAvcTJqaAw2d5J
ZvJ9xxAkZZO9nT4hcTeHOkczSlSk5uWllsTnJmanxpdUAFNesQbEWddcFpjgktQBeS8+rSgx
PR7kKw0QS1MHbDPn5h2uQrMA2PsJRuECsA94nAEhAN7/twm3CbCmAhQGj9Utmf45B5I14IvH
THMs58dv4rO6Av0B96YPq+ECiX14nAEhAN7/oiCiILClCBSvmuYlgkynAvc0jq69xH93nFbo
L7O5CGkHByEPjPwBLZXIRCxWkSzL/Uev/qrCztTXjKh4nNvJt5Nvgyq7iMSVbyXvJi7cWX7S
JPBn4f+tzPOdZAC+PA2R4QKxKnicASEA3v+3CbcJsKYCFEPv8oqGdsZbEpGtn2HxUTXYlU29
s7oC/QEOXRBj4QKLGHicASEA3v+iIKIgsKUIFC2VyEQsVpEsy/1Hr/6qws7U14yos7kIaQcJ
MhC84QKyCnicASEA3v+3CbcJsKYCFJsKNcd/cltfpZbiocKZndalzBXns7oC/QEEOhCf4QJg
eJwBIQDe/6IgoiCwegEUOc4jFx2x4hpym5+j9tloXOpdZZOzjgGUDu8ZDtTwAtCKVvE7ofMm
J8ZxO+/8KYED3GdgeJwBIADf/5QNlA2wGQYU1HfQRUfIl3hwp6r7/TW3BZGsXiWTLQZn6EQO
O+IXsRp4nGs/y3LpKMuGp9yTf3IXbq7meanHHu7oGeLp5z5ZwVp0sm2MwObJ1qHMmwXtxRUm
B8YrMHNxck7u8ZOY3BcvuPlSfKuNlq2tQpBrYDxUl6Y1F6dTqHu8v59GsZECqtzmyjkXmPnQ
xIIXXOOVK8rMS8vXtQNS6XrFIBLILi6ILyjKTwGaNzl8ncVkm/Wum6esF2acLLBFZvK+DXKT
RRdLTd63VTxARyEzBWQrJ6e+lkJ4qkJyYp56iUJxYlpqTqVCemqJQklGqoJ6cUlRaXKJQlFq
YWlqcYm6QmIxSIeCFlg2M0Uhs1ghqbS4JDVFb3LuC/HJlzaqTi7ZJLZZb7MVEyPnZMUGpc09
W3cwTlZrkJ3cs1VycvWOlMn3tieC+JtjdvQyTi4yF53Mv0tGQglkLCenEtQiKwXVipg8JR2F
zY67tjFuXr/nRiYA+BeBneECtX14nNvOuZ1zwzImEeXbQY0unDoV8UvtbV9wzrCI6Bew3ryL
6S8jANMkDI/hAoNReJxbpLBIYUMVo4iHqFlVxZLAKNOYy/Ms2E5b332wTWRzH+MUPgDWtQ1J
8ALQilbxO6HzJifGcTvv/CmBA9xnYHicm8I7hXeDJJtI7f5Dtya9kRf7X6GjE3n55vGA3KoT
k3XZ0gHnTQ54/gtu4+ko6/GMjMymwXCY5r4PlHupfHicO3iEZfMRlg0rV29etfoOo02Qp597
vLN/QGR8kGtwgL9fsKuGWlFmXlq+rh2QStdRyNRRUEsqSi3RtObi5MxMUbBVAPH0MlOsuTYf
XmvCyKg3+eMGkcm867uArJnrVzGqTXbesAYsagQkE7eITLbcqABkRW+0AvNFJ6/ZOAPIUtii
uTl/kxojTHBzEVjQHsw/AGZbT47b+hjIct5WzKi3ece2zmwAdMtIZOECuFl4nNvOuZ1zwzIm
EbGZcqI5JS1JaaIithx/Y9gmu8f1bN7F9JcRAMKwC/mSezZ8ITTRb73MPYBKhn6v6wOmFg==
--------------644753F650889724A8B30328
Content-Type: application/octet-stream;
 name="back-4.14"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="back-4.14"

IyB2MiBnaXQgYnVuZGxlCi02NjcyMmM0MmVjOTE2ZTkyY2FkZGE0NjMxNmY4ZjZlM2ZkY2Fl
ZGM2IExpbnV4IDQuMTQuMjU2Cjg2MGU4YWI2MWQ3NmU2YWVkMzIyMWZkMzBmZDk1YmNmNmM5
ZDMwMTcgcmVmcy9oZWFkcy9iYWNrCgpQQUNLAAAAAgAAADCcLHicnVFLixQxEL7nV9RNRaYn
6UfSPSzLspeRVRRcBW+STlc6cbqTJknP6L83zeCKe9iDJJCiqr4HX1JABE01E5VSgg1a9Jp2
VAimVauY7qgeqrbUraZ1TxYZ0CVQvFRt22mqJJV9XfO2kU1dVhUK3khUvRaac14RuSbjAzys
GEZ0cAw+Rrj5MW7vXVwjFsrPt8B41bK2YY2At5RRSnJ3tinhf0BJSr8OYM7qAAGXSSqE+6/H
758+vn4DF5sMOBxlsmfM47QGB2c5rUjItyyig3cJ3RAhGr9Og3uVNnBGWgdKRgSvwU5TZphg
kElmDoWZa9igM0kGbYBeqtNGUsCjf/KQR08+IlxMVgsoB+vGfwn/8EDYRosc8QXXsSDki7ER
8r1GBshFR2k9oKpEw7mGdYkpK8159TOeLV5w2PU5oQfp4B7XySqTY+2v1d9gyaMdXV71Wl/X
X/4H8sG6U449pSUe9vvJByxOGBxOhQ/jPuxLWjIq8ukYrZui5nTHds9YnmseA47wPnhpdu9k
SHN2fDPm3sncTdatP7VfXQ7NereJ3JLfbXPtWZlAeJydUsGO0zAQvfsr5sYBKHW76Sar1WqF
QGiR4MDuD0zscWI2tYM9aZq/Z5K2aEFISFzi2H7vzZvn4UQErsJyXdR2V2K9w0qbTVFvSWui
otSGKrTGuNo51WOiwKCvjC6KndVXpEvcuHpTU1XpYltstgbXuK6cM+a6UDhwGxN8Hig1FOBT
ijnD7fdmXu/zkGll4v4O9G5b6rLQ+hper/V6reR075npP6jqSOFdIHYpBr4BG8MrBk5Dlm9L
UKN5pmAhUe5jyAQWGaHufLDdpNRTtDjBhQ6j77q/kDlCntcYugkyBvpdbqUeAsRkxb4g8RC9
hT75g++oIaBssEP2AhcQmIS5pQw+gEERiA722Hnj45DVuWCGAyXvpsXEYlh0axJ73AqPjj0Z
Jgudl9TyCj5mOfDYibs9PpPKQyLh4qmLX16xG3HKsnckz2rEBIrvgTNjsD40cvNjoMwrpb5G
PissPc8yfAS5HUjSInF4LgnSayt0CbR5A5jBSY9L1aM6weeNgHwGUReCtLIcBUvHOYUFPFfv
sSEp/RA4RTsY8SulxhnoDbLIXqQtHbxcjy3JLoHnWbxOUaKTjiQWYvUClzn2MMb0PBcRUjgz
MvEKHmkOyecXZS4vIxKXB5mxc1oTjOSTPb+6elqIGU7jC1iWVxZxp/HaVnpXwNBnToR7gT76
JpB9G517W083/xpz9U2s0yiEBSzP9J4GGZJWoPXp7wX4D+0PeJC8H1fwRaZZ8rm1eKD9/fLt
ouOVjPud+gljimXIk054nJ1UwW7bMAy96yt43DDUs53EiYui6KHAgKHdYV3RYyBbdKxVljxJ
Ttod9u0jbbdpVwwDdkkQkXx8fI9M9IiwUGVZqXW1wBVumkoVuCiKhaxTtanyJab5ulRyVaLo
pUcboVpjVuRpUalMYrqSy3K5ripV5g1ilS1qWRZ5IfOlkENsnYfPA/odWvjkXQhw9n3H3xdh
CJjUrjuHrFhsss0qXefwIc3SVNBrp2PE/ygVD2g/WoyNdzaegtKBGEu7MwjxYRvuq21DIxsd
ohDf2jePgAY7qghAo4K2ICHosdpoe48KxqSDji3EFoXHHwPSg1ZAlBTIMOaBxwZJqhoT4CY9
TTIDT/FGo1Ggw9hBDFY7+wwKxAd6py3P7xqQlrMIHuZuiRDXbo9j7utu4IbIJRyZQKnSeUVA
0QFaWdEgEowkaOLOmJStIzTk0owe4NDqugWLPA8R6QfOVy9pEYOvhNYRmFJbrbbRPSv47j0x
VrDDyAGyoXsZik4cS/6SPj+/pN575N0jFcgMQUtFzJmzo0n96Elg7Q9oTAKX2GiL8Cvlp700
AzKEtkrXNMgoDlolWNrJTibQG1lzTMa5hAZ1R4m5mXySCKyjI0CmQhJPOaMtdy2tKk9LId4c
UuwnevfGVT1VPfkJt4Ft+XJ7dSWm5rOHr2tCRKk4xAtLq+QftzpsmR6pxQQV1loxq0OLozBH
xi1JMRGa95gViaOPHe/SETKQEzMm6+J6Gql2CnlNnjgQGP8KBC+NeRTR672WhnQ5JHxWvNgB
piuGnG40U7laLzNZLGUKQx8iFXaUeqN3FtWJa5qT6vH0X9f+Z/ql3NPh3SRwrY2hcc+U3GN3
MX4a18SE/gfOxW+bSLCGny14nJ1SwY7TMBC9+yvmxgFtiZPGTVar1YKQEEhcWH5gbI9Tg2MH
2yn077FTKnW5ICFFSWb85s17M86RCBrZ8XEUZtx3fNDiMPQHVENLJLjcG9nuhTQCqWULRvIZ
ZNc2LTa8Jc6RZKNL0I+a2oPpBVeHwYxCKd4zXPMxRPi0UpzIw4cYUoKHb1P9PqU10U6F+RG4
6AY+9E3H4XXDm4aV7Gxzpv8oZb/Iv/GUTQw+34MO/lWGSKhBY0Yo6bmEP1ZKGYKHfCSI1k+w
4ESMffQQoi59cwA8BasBYUZnlQ1rAonqO3kNkmoFSkcVZ71xK3lFG5kLCh1bYlCUUoUFUziu
HeVqnb40/ZPZ8O4MxsYSod9OPaiwnJnNlf+FxB289efNT81sbm7ZrlrqYcnf6rAXs9tcqglP
pFPll1SnRNdpbIIKOmUsnnaMfT3aBOW5LKVMvG0GTqrrVCsGgbAuKRdBc4E+28mTvgvG3Mnz
/b+Wx77QydLPUrCB0cM7WsusjwUqL3834L+43+OpbOd5B5+tc2VhDxpPND9tbxdM3pU78Mh+
A7D3+AaRMXiclZFfbtQwEMbffYp5p5u1nWzirCpUeEEgkFDpBcbJJHE3sSPbabtH4hxcDGdT
rRAvUMnyn/H3eX4zjp4IWqxFXVOlhSyU4gKLulVNUam6U1SjbLk8NLms2IyebAStOVYS+aEu
RSm04I3ihUAkWdP6DC+FULzUDJc4OA9fFvI9WfjkXQhw+9iv611YAmWNm96DKHMlKlGWFbzj
gnOWopOJkf7TmpDzw6uVvZDd6/HUeWfjETxhm6YwOxsIUnACjc2JbAvOjuc0NcTYZwvOtyld
dIBPzrQwe6dHmgIYCw0maxzo6jQBJtea7mxsD3h9njl7kfk1PGNP8DyYcbNecFbvgAFwXLHO
EChVZuINPC4hbqhJy664xq48MLoGR9BL1yXCxOMsQZ8u7EWezjN5jASX9BhflWytL2PsYUi4
aWw9hUrospRF3tWqVi0nWOYQU+opSX+Y3lK7c1230+fjv3rP7unJ0HMyXMRo4SMto2mGJNXb
7g/xh9S6TXnv+lTHd1zgm7P210+49Wskm3G5a0z05mVzfDX2dIQhxjkc9/vRecpO5C2NmfP9
3u8ll4JXefr1XB2KTMhSiZ3c/YX51qJ+AwpwBf3hDYJIeJwdzL9KA0EQgHEixOIqwcZye7m4
s7N/QxALW6vUKXZ3ZvTgvMhxhPgUcqT3HXycvE3U5vt133z9vdxNI7OqwhhLAqCC2XuTEUhr
VzO5UKoOkBGdRW4+8sjDpDAaKeAgRYbE1gKTJSclpJqcM4RSrElG5l27jDYFnL/C7Z/qXoPW
TXPk4WHg6ed8t7iJ1nrtfZFYQZKE0+LqzW2714Gp3Yu05XOtnvOhI7VdqZeu73lUG8oHfn/6
b7+XafU7e2wukWc9ypZOeJydk9uO2zYQhu/1FHOXBsXKkixb8mJRJAE2QU5I4Ox9MCKHMmOK
VHmwV4+U5+iLdSTvBmlTIEgBQwf6n9H3/0NGTwSEm61qd4Iauds0VVN3m7Vad2pX1TtRtkSk
UBRCZSN6shEUv6p6i6op2m7dFFUnqJayEdSh2tFm21aiwEZkmOLBeXiTyPdk4ZV3IcDNl36+
PwspUC7c8AeU23VbtsW6auH3oiyKjFcHHSP9j9LsnuyqM0flnY3XIJ19EiH6FPh6IOhQHMlK
8BRGZwOBxIjQGW2lmbLszkmc4LEcztqY/yiODsJ8d9ZMENDSP9vl2WsLzkvGZyWenJYwen3S
hnoOOwg0GDXLWQTCYzhQAG1BIDdwCgY0WmiXQvbwwQAn8lpNC8QCzH07Yrx44Dq6H0lEkmA0
pxZyuA28oNEw3YBHykLyxLV4cfGNFc0Zp8DvinisgiGQuVMMEa3Utud//kwUYp6xoeidTIKL
wNIZWBIX1qXhrH3x7u3rl58/3T2/u/18u99/2MP5oMXhEmHHDAwrDrSE9+iVP6etYBYdIgNM
oANL526S4mIphz0JN7vnRZ7JkLHj8PB5fhh5N+jO0GUUJ43MPLjTrGYPgHLxMUOetI8JDXc+
aUEZ9sgUv1He50sZAu+pkbNecTxpIBCTMPSUrb/nBDkqA2f0du42UAjYzyMLIbEhmWg2deKp
SSDveaiPEXO4DJotc2Gl/mFbPPQCZZyTj+aj133PI5HQTQz2w3ZgqLs5Bf5dDgp0u5rqrqwb
JcvdrkJIY4iecGDpJ91bkldOqatuuv7Zgcr2nA+duWAR84ReUDLzIG++dJen78TPmeei3Dsm
ho+Y4L2z9q+vcOPnlXzE9ExodnR/qXin7fEaDjGO4Xq1Ms5TfiRvyeTO9yu/qoqqLJo1H+V1
u6nzstq25VV99S/MXzX1N/CktEKVMXiclZFNjtQwEIX3PkXtWKBO2+0knbRGaGCDQCChYS5Q
tstp02k7OPbM9JE4BxfD6cyCnwUgRYlT/l6953KKRMCN7YzQiCg723JRqz3WivSub4zuDXIl
68b0ik0YySdQ0uq6w6ZvOyWUlbbZ1w23tNctGs6VwlZIbnqGOR1DhPeZ4kAe3sYwz3DzZVi+
t3OeqdLh/ApEKzuxF73s4CUXnLNSPbuU6B+lXYm8e5ayJ/JbNZ5sDD4dwAT/IkHCE8EYNI6g
w3SBYAEh0tdMc4JCniEdCaLzA0w4EGPvPIRoin8KgA/BmcKfcXTahTyDQn0ib0DRokA10sI5
b8dMXtO12dWN/emmshvNavdcuZLjBayL5Q/9ddevQV3JHtgv4YrPnAjN0taEpbpAhQjlFeER
LxBDLl1wLlqDl4qx+6OboTzrXKGzDbblbvuec261hDzNKRKeC/rZDZ7MJli7UZfD3+bP7ujB
0WMRXGH08IZyGdOxoGpd/QS/LmNbybswlKyfMMPH4P33b3ATl0o1Yb7VLkX3tCo+OH86wDGl
aT5st2OIVJ0oehqrEIdt3O74TvC9LDcvu6auxK7txEZufov5v4f6AdGUCWabJnicpVFdi9sw
EHzXr9i33lEusWxHto9SDq7p0VLikJR+PIW1tLJVYilIcnP59yeT63MLBbFaRjuzIyZ6IpCq
LDR2q2xVaqwbTjwXXGMluyLDgndVVXUlzzp2Qk82ghBVnssyJ9lwQU0uUSksRcGFrrWgQiuJ
pKRgOMXBefg8ke/JwpN3IcC7X/18P4Qp0EK68T1wUdS84qnA24xnGUvoaGKkf6TWGc+rVyp7
JnsP4WIlGCuPk6JlQpbGJjWNkpbGLb2x/WKAs4kD/CD7JoClM4UIv8kH4yxj+//iJyZzXiX7
0UFPEeJAsPu0eTo8ttufh916v203+/XNLaBV14c/2GG7az8c2m/r3ccv7febWzaiTF9eMLZx
kZIQzmompOXHI0jnPcmr/tk728PRSLKBkgPtoLtASiaZnQfYaEKYe+dNbyzO7NMl9UME62Li
pSVfZ+l0rgGAyBtcqbqiXGhqRCcRplOInnBMw3vTW1J3Tuu77nL/t6jYC/SYzav6A1vihj+d
WQqrCEdC2G2sOVGKLjqpeJwBOgDF/40JjQmwfAIUB14ijaIJwfOuHcKLHdO9gVE5pnKTkAJO
FHDG3m9DOpGDdxeHGYQ1P2g/G3chs/ICmwGyFxco9QXKONFU+flKPN5h4d/GYq+lmYf2LXic
AVUAqv/bINsgsHoBFBZfwEZxVQ40Rm7ieC/eRVRkuu48s44BMgcUvtWU6UaQVNm6GIpVh9qk
Av+srUmz1Ai+BRRbcscgOnZzEZ2c/Q5ggLEQx5MvLLOmDrUBRuEltfACNZXv1ekrrLUY81Nc
Nc5eB6fQEhZ4nAEgAN//7gruCrDzBBSHjrm6BrJ5ndU6lAnWEO7qq5s8ZZMHBWcJ4A9Z/GZ7
pYw5FG/iUleSRIV3ldYMQWA9xnicnVVPaBxVGGeT1HYmKYX82USC5XXrLrPLZgM5SMlsGpN0
EoNhJ51NUktth9mdN9vBybzxzUyTUAJ696C8gx7qH/AgFK3bPtPWKqUFoSelongURHropffe
fG8mu9mRVcTL4/35fd/v9/2+b2f/+K7vix/6mk/6B4X5ldeXF/Xq2tyaoiuapmrkz36/f1VT
F5RqdbmyVKSrAzuTh/cvyI9ymfwiDxI1M0COlx8IRVCwbNdwdPJbeed4vMW229AxfDsvi0Jr
D2ZAjvzcHOmVRZE8PJ8m6oZIr84speYXkLcDgssQMFQI/QAEKD6ySOAZDVgChUlRKCRzs3yF
1p48lkfI93Ka5mfXj5FvZtOjSWxbI7Uqk4f+g0j6SdU8XIxxcDvARgItCMm7KOqSPt4ji3Tw
wsPeuaii/WokP/+/Cxolsg4mwFVGWegmhockb2RyQR8f8wMjCH32qiln9XNzy2usjUz3Ln1P
f1rOlKPrM2pF4cXMry/pakXyp8DBPf302uNeseO8+9lHAzT91VRK1JS5Mwy/oEjk/rejRz2M
TJ7lio0DnVg3TjmCbQFJY4S6plRX1UpV0dnosJgNRVtcUc9JOabVQhOnueQiwF4+HxXoYd1w
IA6kTNafBrbjwIbhADfcrEEMkMXs9D3k+tAH2fBNN1PkbSDv76UL2GMWdeQsYd/T6wwataqB
mPkQY14++fjGoiYIoevbDReawHYDgDw2j4IQCV5QV8+3Vf9Np10EuRqGQZTUNpm3/FSyTVkk
J7/+9ZWk/JZYcNnwGU0dYQzrAWBxUtYx8y39UQHjthkPVYdUYZezWICkLg6/ETfzRKKbsWfC
P7BiaEEM3Tozy0XAg67JJ29/IDvJh9PdqEWBnFgfYvN3tOMzIJNHTakHeeSn5li6hDyIjcBG
rhwLlZAHZkjzg7F9RKpE0Ebabr1GXrVjeC3I+/cSuHFbGDHZB2FSNmRm+gE0TD4R2TBp5FSS
pcg5ulZ3IIk8b15P5cjnN79kgs/emmDrO7feZWsvnY72w2R2b4hYNPtiRMPEbhnY1RkDdOxN
O4CmRKy9l8kjmk2V6DMqp9phI4NdsSsM8IzOkCN3hvoiCRz90u3XuqG3bmsxmh65M8Uzl+/m
LiYguXhGt2smvDJxmi2xHUJmnnnE0ofYBRZGm6DmvMVegWkERmsQpkH25HbbQSEyhN68ez31
gsjdmiavfjhM0O8Dh+J/hWP3TuU7mwVM2zdqDvsdWQgDK8TsE4dB6EOeks9WT16myr1r9b8A
LQMkOvwBYQKM6TMHxrpgU0E+auhli8j+QQN4nHvI95Bvgy+7yPva61wOC5V0rgv9mM+1csmV
qOJ3+gC1LQ0I/NUBiealC1PaXAdaxE6L7ogFyomEesB4nJVXSWwbVRiW04Z0TJoGmmahWV6D
k9qO7TikRdCQlDRxaNrUSdMF0hBNx/Ybe5TJjHkzk7iQEJUzYul/QgIJkIgESLTVnEBsPSEu
SIgTSJXKhUWIAwiBEELwv5mxYzsFgg/2zPv/9y/fv/qXD3Zc+WTHtct7usyCqCraYswvkHC/
XzBMZqVNYiyKKUuWSRiuNrZLlmYoWY1miJHTmUm8K/PJxFnx7GPi7GTyEfHM5IXEwpD/3gyV
FY0SPJ6aTJ4Uk9PJBIkXZPyU02YSyXG8RYhLo/BpI+wXSmoUzVGSp1pGfMKiFrUv3NVe09cf
JpMGydBlJU1JiuakZUXLEkPS6FHH9pSuqyTF9EWqAdv7NgT2zcHlfS0PVxgfVhXDjPgFQUDt
VY4pmZD/Kb/AOeaVzAIZJuEclTLw075DXFB9OTOcaw6c8guKTIJKhhwYrnA5RFCM4FxGIUV5
Q3hWJrv8ApLW7Bea7YYGsrpKtHx0xPXDHuuZrKkT0rpmmARemonDswfFda7UQX02cWZmOnkm
Ic7MTo+L0+cTsxNT048Gex3QoiNmIULyTM+EXHsEhE6UVMrMID5FSPekqtKspBLNWkpRRnSZ
MGrkURc1SI/1uNbt4IRAcSEkSjyxnWYhxoy8yK0KcaeErG7qhDLGX9bgu4PPT5gF5Bjyc6Jj
6dj0zFzJ3AoDuZQI6XUuuNK4e85rDD4MDq4PE/dFyZSoiPjIMCklXpm8oqtVvjpH6Ej3rOcg
yUkG5llaZ4ymeeRJsMcKlVxGVkwGR996hXfCWtGGkkq3GHhM3Szwknu7hsg6Q0OktKksU8Qf
xRom2uEqR933VSjn37fRXJlN8Gewo3OoktVYTBkea/Lc1BR0huZa/8G0R+DFUG9ryYAq5+Hi
613wR+g7+NEM1nMDIh5U0GXth/v7rlz0C4yaFtMw/PzmEX/RDEWT9WJmox3Yaijeq87KccWQ
UirWGUdGtpiZw9y0DOqCghDArTiBH/qWAoR/sCtMSVgdHnRE1wjjfSEvZSm2Bbj8cjOQI7sC
HC49LalDW244x5iH+Ut2LvKKjzu2mzvGnTILaCgcPdkGD411wXLs+134jlgO+WF6owWe6Y+u
u14VxWOaIoeTq1WELKMykvB7K02XZYOaSHUftjIYypOUtxKqVdPW1ZisSlkDqXFecGHH5Mrr
/Lw/zFs8mbGwt+ZKmYaMzivvtRw1J1IYUZOsKCp2U0q4XZgCqRKPI2YlR72L69gbrDTlSZyh
BaIYRErpVvEOkxSDZorTRcpkRCUjmrrI+2BZ2Zb1+gipzG8vvTa95plTKKFgQEe8bk8VWhCM
J+HbeFttmBNgbjAa9bhdGB2gspppSikRs0zUNSpmmaSZQZcNpIFwM390FLvZ7EFqvzZAfLD7
xG745r6mMh2vxvfBhcEIfD1YaImOOMk37OQgLxxPqnZoEb46FPW7djg9v/vw7zvgjhNNDRJb
FD0cEGO4fk/3esU8VLglKzlFpSQYVFB2lpocS5npS/8DTeyPB4bRoopp5d/aU7BP3FnWzOzm
B/f6IHbkHay9YA1ZgxuBB+CuoSdbeSe0NFVZpOql4ObcCtlPDT1ae5T7HXNEo8HOrxe3GJZQ
sZDcg0rEZIUZpgg3H+6o7XXgbRzd3+Dwbca4fzRRfVQYPX6Hd/Xj0UCdN73g4rH2K8fOblJa
QT32c9mrvTw272stUE1DTJekRYqRwPowgq7u38ZfPfRPxAj3AYMgZUVuepA/hbxWCl8mVjtK
Fyvi606PkH164odae3gq4Iv+y5RkOCX7+rw5SQsmk+DaqbaOmHkpT3Fd8HYZQhySezoCS+Mt
8NepM3XeKcwlD3Y6j8Z8GV+UDPCJ4Aq9kXzOF7NPT+/x+SOEeaDCay83wQf0Hvu5mRdqN2c5
9J3v7kRzimzOtGC8NktHdvL8rztrWAHY/AP923WPFZySg+vHmu2P5t/y1XutkRsUs1cWVoVt
bz9cLst7C8HmkOnFx+jI/1mACIrZ3H6irGr7+dfhBp8vdTUIxRYS5zUPP8kQ+A88FO6v/X72
szvvPlA9wxfgqhGqL9Nswo2NJvuWITijaycvYLvNOlwXLVtTyq3j9e4ZNDl7Wjw+mhyfSozb
J1bjvtD22dlaS027twDflhtm7m+Cvvca7bfWv+gRsEYo5X0Knn7jROB2rap6JYZWI9p2m75E
FNJHBqBz49zh6rZV/Y+kmN8Vcm228ebd53AJmMD9go+wtIRrGMZewuhjVDW+EGIeUHdQdrt+
dfP5pqQlU2cxZ5ZVxVuWVIPaLe/e7Pkbz21acfECfd8RDEaOr0EsmgbsloBBalU+nyJ4nLvF
e4t3gxSjiMzy9MyoXZOKFq5c0fbGOfBa7qukts16jGtYAfgTDvnwAunR3fwG+6IdrBHZTFZQ
vTzA1RTaeJxrYG1g3cDEJNLaU+0tWbOZN+jBirT3mgd+PjLQNJ4sxpQFAMNxDJP2Dl6H5IZr
y3txx12DXRa2UzXEYT8+eJybVne8foMRFysXZ2aawmRLLmUfhWouTs6CovjUoqL4/LzkVA2l
itS85Py8YisFz5yc1PTEHIWizLx0hYLE9FSFzLyUzOTUYiVNa6CmotSS0qI8BV1XT78wRx+g
SO3mWK5zTIpAKaDhGsWpeSUKNgoGmkA+TC1IzJprsy7vU0aoEyT5lajrBBv+W/oAHopG2vwB
WBw9smoFoipqaGVwxqFumM9cEdV4nFvOtpxtgzCzyJl/fcd0O/nFFdO33fO5/GjxPdnD6QCq
qA0U8QKWJru5CPMVvT8rwv+h26ZMnB6PVnice8/ynmWDEaMIn61PubCiZhXrtTjZN3Pn1DD/
Eb642Y1RkxEAxk4Lwf8B5rIf8L/lXLqZVA+Xaim7j/55KEt4nHvC8oRlwhsR53VhVrus1i1P
EbPtte/RTX3satK1iTGFEQDclQzK8AJTKtC71rBMWhNi6yu0/IEsb9sDznicASAA3/+8BLwE
sHQBFLOc28Ui7H7rCqAc8aEULazRdypSk4gBtPeADvn54gE/QFAfxgsdn5WnRV7Q0p+X2L2V
cXjanVZfbFtnFZebtImddEmav84/TuPGsbPbuKFpVy39Mye5iW/r2JntrO3IZm58r+PL7Hud
e6+TpdUwe+vDJFQdiU0ItE3iBSExiT6BEAIkBA8gVvYAL5O2BySQkBAPaC9IcM537cTpOpCI
KvX7znfO73f+X7/3tu+3P/b5Yg/n5Ycv+B/uXatv6HbFcBzDMsFwoKTb+vYB7Niq6eqaBEVb
18EqQqGk2ju6BK4FqnkAVd12yMDadlXDNMwdUKFgVQ8CMMvKbomQHKvo7qu2TvoaqI5jFQyV
IEGzCrWKbrqqy5TFulHWHYi4JR2msg2TqSgTMZimq2UwTODn5ivsG27Jqrlg645rGwXGkUip
UK5p7ErzuWxUjAYLmTOabeyUXIdjqDkUC3ss1aFiaUbxQIKKLiKs1rbLhlOSQDMYfrvmktBh
YUE32YziiVk24zl6ucwoBkUgwj5yUqgxU5XT6zYSJrj3S1blSLfOERkOwxVrtknMurDTLMqg
IP6aXnBZwiZFq1y29jnKgmVqBgfnPE+2bJ6jd3Xb2tNFYCJWMC2X3PZ84aJUj4rdeKo7JZWi
2NYbGSR2w2Q4tSU2m/1wXOoJg+pRtWxB/GTMc01HEjJk06u52/GMDEoWNjLpl5QVeQWm4lm6
T0lwW8kl0ps5II16Jp7K3YX0KsRTd+GWklqRQL6zkZGzWUhnGE5Z30gqMomV1HJyc0VJrcES
2abSOUgq60qOgHNpQUpwjKbIWcZblzPLCbrGl5SkkrsrMdaqkksx8mo6A3HYiGdydWV5MxnP
wMZmZiOdlcmLFYJOKanVDDHJ63IqN0fMJAP5JbpANhFPJpmO8eKbFEiGPYXl9MbdjLKWyEEi
nVyRSbgkk4PxpaTs0VF4y8m4si7BSnw9viYLq3SdkESYrOo5CrcTMkuZNk7/lnNKOsURLadT
uQxdJQo4kxPmrHdbycoSxDNKljwWUWbSxMIJJqO0wCHTlOwBcfKPanSRi0Q6LNjMyoegjLMi
x5MEmWWA1qI+/MHX6zFR6tsl3YRQo3NmuC9Fm5V0VdNtCQ6sGpi619BV29ozNP14G3szXiir
tjeotWrRtkyXWxrOA3ecptrcka6+QxME7kGVt0XNqJvulbwrQY2e5i/zSXcL0cYYHAAPVYNQ
A9pnjkurwZ0rNVv2ENnz1Gm2rmKCqnlzRSulKAJgcm+WaWsI69WkXL8DFbVgW44XpFp2rGak
jPPUYCWasqLF427uWa95yRJgTaxm2MY9Pe9654peKXh79by3lPO2XqTHuhcpOdSSPucpcdvE
88Vxi6Hg7eBhu+p2WSdtKoK3ou5QecVCLLRmKhYIYNT3sy44+nv0V987JzpgK8AXfNB+qZPO
fnH5ZbuEf2/fOXzMnxzG/ZN/CNr6bo02ONeOPaBtXqUQKHIsn6oPtry2vAQ67p2uHLjqTt7h
wEjyrQ4440lE5+Qb4t91RPo88bZaeK0p7er86GnK/+wMP4F63n95/JgEZqO0KG1dy1dV+krg
N/3feAr+dCD2383qARkfxwbxauJmcCsQm4WseAXWBvoo2geUXXx8YX5yK1AzeSLyeVOt6KFQ
A9HTuU8q0hkvn3nqiN08fw13F7Hv2vVuEjhVFjjVRXxTXsSeW2tMiF/tGiG7L+N31vz4oKuX
abB8sxc/6Oonp2bE+Y+N81uJZzrz5LT2lYUr+H5iAU9330DfrU0BVOyeIaUQAw0e+neUUc+9
BnTHyXx1z10kyRxL2sg1fLjyHH5/taebJgtMm2NyWCF2qtEhb3YNdcyKeBeFM923bgreO6fD
dD/HvAOHvIf5F7TnmaSbSGgKtOPMlKX/l9m39ejSM8+dEKLdXon+n8T3vf8ve5aRPcvQojSt
ju5GInknev66SJ8EFyQx0FaxVRzF3aUBbOs7ix39vT2GRFVkpSh/9imM2BDG+8baInmD9CL4
Sax9tEGTtwmC61vgcb8GRyqd+G7/HL5+cRz7BoLoLIVJ1oWP+4cx2Af4rzOj/gtNGvy4f/op
pMM4PzDhO6TE/EDQ97/Qz+JnfYPtS/HlW+jrH2yh+M3AAiX2IrYN7hL0LN4b/BXfOxpx4KuD
Q1gYOqC3L+EnQ3faIMIuTHB18O7wPL67GsS3h4Mkm6IKBPCnw2GiHR337KnZ4Sp3ONwQ5+e9
bqdSn9gKYOeISnZhNEeW8CejITpP0/kqTo514o9GzvpjzY2CH408e+Z+Rn5xU87mJPrNsZFO
ZeU38GTw1+0abR/8MCj3R/ijQ1uIPgja6/SzkOXPji4k+DBH4+r3+2nVzUb4HqWSzFIvlGkf
l3XxuaLCi5co/57Ir8m5fCjE8ogHGF3ED/tH6uKRf0LkG95EmnwUXhTg6D3SdBdaNQIhTS8a
pg6tQF44R0hONXocyFOgl8CRCp4dq1PGxvB7Yz+nInejNn4FPx7raedBw3+MSWe93Dk3+ENw
jLYJiFfHI6I/tPHxQW7UKFz3NLLKyzL3ML44MYyvhk75+dLsv2n8S+gm9k7M0zkoOndrYlwM
/BsT5/DT6XMnaEJ7JwawPt2Bf54YYrVH/554cBI/XRtFY3oIfxjqFE30t7Ue/PZ0D/4p1E13
aOBOnqKloe8vit7YOqf4AO+HF/C7M51tUbiK84lJ/EV4jLpsvEHej5emQ/jBC0ECn2wBHhOg
n3fKT9VvoYiFZ/DlMLTxYrkfvvE5gs/CF09D6x++EpFwbjiANi2HdyITYp/1UqbemxnD3YXJ
zj3DdvOV7UhjKAeOGTDkTGSh+wnEK8R3pgVtAH8fmfwiNKH8aDn6ytR/ABtvoTvhAqtceJzr
5ezl3FDDJFLLoXS4S51PpmT7lwdbZ1lWqJ8MEts8gekvIwDS1w1O4QKrL3icu61wW2HDJD6R
2vuCPG596x11ZrG9mdbgmBVqN19p8zK+rYwA7DUNguECrDh4nOvl7OXcUMMkMo1Zc9FDT2s2
67r5FYvnXWoUq+dZuHkC019GANDPDSfhAlx4nAEhAN7/2yDbILDACBS4WbXnyY+6VQ+ETyP9
kfMw6FbX1rPUCIcHJdcRVfwBYQKM6TMHxrpgU0E+auhli8j+QQN4nHvI95Bvgy+7yGynH3fW
zQ8qecJ/Mtww/qvFUm1XLwDA0Azq7A2jMHicm3ScefYu5g1MApPlBCZtPisgxcSRWJKfm5kc
XzL54yWxzSbCWwQ2f1P2ZJpcpha/uVSdlZFbwVahpKKouEAvM2XyKs0pUgVF8Yk5qUUlGkqq
xVYK5YlFeZl56Qq6ugrpk8O01GR0uDhBQCE+Pq00Lzk+XtMaLOAU6q6hublb6yMjcy0X1+SH
Jgqb/+jsYNlcYvSXfbOL9QymzSx2/7g2K3tWKWyuyPIQnazspL1ZpoGRcbNfIz/T5ppmd7XJ
l1eJTJ5fJj753yr2zdKrXIVZU4uKFGwn228T23xl7z5VAL5VTcDhAq85eJzr5ezl3FDDJPJO
7ajQ9GUllsKFGQUPMtwjuBUjjDZPYPrLCADVWgyA4QKCXXicu61wW2HDAQ4RRYabz593BB2O
CtD+lnNdvnVH27SEzVc42tkBEHkP6/wBYQKM6TMHxrpgU0E+auhli8j+QQN4nHvI95Bvgy+7
CKe8dtPivde23fx41NSteIro0XmGPwGyhg1r9BuJ5qULU9pcB1rETovuiAXKiYR6wHic+7KX
edde5g3lGm4lFUXFBdZcXJycnEGefu7xzv4BkfFBrsEB/n7BrhpqhaWppam6diUVOgrJ+XnF
OgpqYA2a1iANmWkKGmCu3uR9GtaMept/azgqb7b1UWHUxWNWEdAsbW2oaakVJUWJkzf4Ssrq
lVQWpCrU1IAMVgABsBRE1G5yrov45P++wexQ0cmRfupyYGZxNJI6XQXDWAVbiJrJB/36gE4K
9Odn5NJRKKqIz8lPTsyZvHCOyOS9qVKb+wImsCJ8PFk7TEkO6ByYMrD/iiqAZsGFNvuFfWNh
KqqYXBRtoU+s94oqNEFhO3mjk9jm/dGrGHn08tPSilNLQA7S21wey8ulQsCoTJDSzXvSLcoB
X+qOqOwtgS14nNu1l3nxXuYNYToqCiCgr6Xgk1hcolCUWliaCqTz8xSKMvPSFQoS01MVtPQn
G+rKqZRUxOfkJyfmWGOoBgsrJOcXVG5O03Fnrs/MS8vXtYOp18tMUbBVyEyx5uJEk0gvSk0D
SgFJTLn8tLTi1BKgLISBqaA4syoVKJ2Tmocup5yjl5aTmF4MlDWw5uLi1CqpADkARfskAyV+
NAMnqxn4Tf6pIzc53FhXFyIHtQNsSnpeSUliUnxaflF8fl5qfHpRYl6JBkTZ5HhDLTEQUxOk
sCi1pLQoD2rf5vmGCoyT1xoKTn5hJAAynVmHi3Oym7Hd5PvGFeK6duAAtgWHM9AbUH9MzjHJ
nnzDRJcL4gKgRO1mBVN21sk6Vusmf9JRmPzPgINJoXbyQRWLzfzWB1ntQdr0gHFRCjILTEPD
RK84OwkoBCRhAqgWpmUWFZfET77tIMuqBpKezOcozQdWhwgWXUdXEVQhiKMm2yeITp7oqMsG
NWSfowo70AucnAoKk+OcZCb/cwxBSElMznL6hMTdXOIczShRkZqXl1oSn5uYnRpfUgFMTsUa
EGd8dVlggktSB+Sd+LSixPR4kC80QCxNHbDNnJuvuz6eAQA7a/mu4QK2UHic6+Xs5dxQwySS
pV/17kuCy4mXbB/rXi5fX889va1x8wSmv4wA/qQP2OECiXR4nAEhAN7/2yDbILDACBS1g2jv
BG2Q8r5ZreH0wYse5x7XV7PUCIcHKQ0RWPwBYQKM6TMHxrpgU0E+auhli8j+QQN4nHvI95Bv
gy+7yP0NkkbRHF5WGZkeZjMP8Don5cxQBgCapgo54QK3aXic6+Xs5dxQwySiyXFyxu505XqL
xY6a1+fvr1jNc4d/8wSmv4wA19ENnOECiw14nLutcFthwwEOkUSmnpfG7Md2JQQ72mW9SO0+
8c+RefMVjnZ2APrMDrDhArhFeJzr5ezl3FDDJPI6XmCp0QaZL5/dmO9kr5CqcJN+5LF5AtNf
RgDknQ3r4QJceJwBIQDe/9sg2yCwegEUw3ktd3Ba5RDkxFqy6LMK/7Dd5EWzjgHNDhZkEQDw
AjWV79XpK6y1GPNTXDXOXgen0BIWeJwBIADf/+4K7gqw8wQUybBVwQn+AVZuHzbrS9ua1LAs
1Z6TBwVnAhwPMOAWt1F4nFt+hOXTHpYNT7kn/+Qu3FzNU6w/OSCBa/IVJaHNvDapzJtn209T
mHwkVnlyfYLm5tsJL2y0bG0VglwD48MdPUM8/dw1rbk4nULd4/39NIqNFFDlNj+de4GZD01s
/8JTvHJFmXlp+bp2QCpdrxhEAtnFBfEFRfkpQPMmb19vMXnOBtfNXzYIM04u2CozWW6T3ORN
W62j9LUUwlMVkhPz1EsUihPTUnMqFdJTSxRKMlIV1ItLikqTSxSKUgtLU4tL1BUSi7k4OTkV
tMCymSkKmcUKSaXFJakpegpa+iCp5Py8ksy80lSgjZy1k/U3a0y+sllsc9+WJiZGzskHapQm
f90hudl3ezfj5KM1skDOJxC9mWXXPcbJ7Raikzn2yEgogczh5FSCWmqloFoRk6eko7DZas96
xs0L97UlAwDPyYHB4QK8KXic6+Xs5dxQwyRyKyVnbUrXLROhuc+WXOVPlXCevX/y5glMfxkB
8TkOz+ECg0B4nLutcFthQxWjSJbF/XttdfaurLNmNKstW9Wrv5MrbHMf41k+APjIDj/wAjWV
79XpK6y1GPNTXDXOXgen0BIWeJx7x/WOa8NnFpFl4iKf1bWrUyu7Deu622p9Zz1YYjWZnTUd
AOebDY72DHuljDkUb+JSV5JEhXeV1gxBYD3GeJx7uJvl8m6WDaJrN4utvcBoE+Tp5x7v7B8Q
GR/kGhzg7xfsqqFWlJmXlq9rB6TSdRQydRTUkopSSzStuTg5M1MUbBVAPL3MFGuuzcrrTRgZ
9SYHbhKZnLuhC8j6uWEVo9rkxRvXgEV1gWTDpkYgybzZCswWmWy/VXhy2uY2Rr3N7zZbM8IF
i4Gsd5ttJ3NsF2YBGQ8Wlt22BiK8mWO7EUitzQ6gus0bdxikAgDZ+EnX4QK/C3icASEA3v+N
CY0JsHwCFMo40VT5+Uo83mHh38Zir6WZh/Yts5AC/QER2REPIL/URCK3XTm5vG3Ah5z5q0Cp
mmM=
--------------644753F650889724A8B30328
Content-Type: application/octet-stream;
 name="back-4.19"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="back-4.19"

IyB2MiBnaXQgYnVuZGxlCi0xZjI0NGE1NGIzOWRkMDJjNjlmNzkwMDFiMzhlMjY1MGU5NmYx
ZWE4IExpbnV4IDQuMTkuMjE4CjRhODA5NzdjNTRkOTU5NjQ2ODMwZGI4YTMzNGFiNDIwMWE3
MjI4OWUgcmVmcy9oZWFkcy9iYWNrCgpQQUNLAAAAAgAAADCcLHicnVHPi9QwFL7nr3g3FZlO
0nbSdliWZS8jqyi4Ct4kTV6aOGkyJOmM/vemDK64hz1IAnm8974ffMkREWqksqU913U/Mj7g
ODaKy1ZzLvmgeNdQznuGjJxERJ+hZn0zdi3FYddr2Uk+7mqhtdQcWUexbRsmVdNzIpZsQoSH
BeOEHg4xpAQ3P6b1vUtLwkqG+RYYb3rWDYwxeEsZpaR0Z5sz/geU5PxrD+Ys9xDx5IREuP96
+P7p4+s3cLHZgMdJZHvGMs5L9HAWbkFCvhURHYPP6FWCZMLilH+VV3BBWg9SJISgwTpXGBwo
kUXhkFi41AqdSTZoI4xCHleSCh7Dk4cyevKR4GKKWkShrJ/+JfzDA3EdncSEL7hOFSFfjE1Q
7jUyQN4NlLYKZdPtONewnFIuSnNZ/YxnixdUm7Ek9CA83OPirDQl1vFa/Q2WPNrJl9Wg9XX9
5X8gH6w/lthzPqX9dutCxOqI0aOrQpy2cVvTmtGunIHRdle1nG7Y5hnLc81DxAnexyDM5p2I
eS6Ob6bSO5o7Z/3yU4fFl9Bs8KvILfkNTvjsjZlAeJydU8Fu1DAQvfsr5sYBGrLdzSZbVVWF
QKhIcKD9gYk9TkyzdrAnm83fM8nuVgUhIXFJYvu9N2/eOByJoFxv802xxnJVYLXbVLXZrndV
aXW+qcuiwspcW4vXleoxkmcQUG4tXW9LrPPNuigKRF2jAHc6t1RstDZbY43CgdsQ4ctAsSEP
n2NICW5/NPP7Pg2JMh32d7DarqtVucvLHN7mqzxXsrt3zPQfVHUk/94T2xg834AJ/g0DxyHJ
syWoUT+TNxAp9cEnAoOMUHfOm25S6ikYnOBCh9F13V/IHCDN7+C7CRJ6+l0uUw8eQjRiX5B4
CM5AH93BddQQUNLYITuBCwh0xNRSAudBowgEC3vsnHZhSOpcMMGBorPTYmIxLLo1iT1uhUfH
njSTgc5JaimDT0k2HHbibo/PpNIQSbh46uLFK3YjTknWlmSsWkyg+B44MXrjfCMnPwdKnCn1
LfBZYel5luEjyOlAkhaJw3NJkF5boUugzTvABFZ6XKoe1Qk+LwTkEoi6EKSVZcsbOs4pLOC5
eo8NSekHzzGYQYtfKTXOQKeRRfYibejg5HhsSVYRHM/idQwSnXQksRCrV7jEoYcxxOe5iJD8
mZGIM3ikOSSXXpW5TEYkLgOZsXNaE4zkojlPXT0txASn6yu/SbUxiNsVlma32hYw9Ikj4V6g
j67xZK6CtVf1dPOva66+i3UahbCAZUwfaJBL0gq0Pn29Av+h/REPkvdjBl/lNks+twYPtL9f
nl2wnMl1v1O/AMF7ZSyTTnicnVRNb9swDL3rV/C4YWhmp05iF0XRQ4EBQ7vDtmLHQLaoWKss
eZKctDvst4+03aZdMQzYJUFE8ul9UEkBEfJsqSqtsCxKXJZlWRfrZZbpfLNBhUVTFJXMdV0V
opcBXQK1rsumUMWqKlaFrvOyrnGzKfKsQFWtlqVqqqo+xVMhh9T6AB8HDDt08CH4GOH8+46/
L+MQcdH47gLy9WmZb6osX8G7LM8yQaedSQn/Y1Tco3vvMOngXToDZSIxlm5nEdL9Nt7VW02S
rYlJiK/tq0NAix1NRCCpYBxIiGactsbdoYKx6WBSC6lFEfDHgHRgFBAlBTKOfRBQI1nV4AL4
kp6UzMBTXRu0CkwcbxCDM949gQLxgd4bx/q9Bum4i+Bhvm0hxI3f49j78jbwQ+IRrkygNOmD
IqDkAZ2sSYgEKwmauDMmdZsEmlKa0SMcWtO04JD1EJF+4H71nBYx+ExoHYEptTVqm/yTg2/e
EmMFO0xcoBi656XkxXHkL+3z8XPqfUDePXKBwhC0VMScOXtSGsZMInt/QGsXcIXaOIRfGR/t
pR2QIYxTpiEhoznolGBrpziZQG9lwzWZ5hES6o8W82Xy0SJwPkGNTIUsnnrGWL61tKqslkq8
OeTYTwz+VapmmnrME24jx/Lp9vpaTJfPGb6ciQml4hIvLK1SeNiauGV65BYTVNgYxawOLY7G
HBm3ZMVEaN5jdiSNOXa8S0fISEnMmOyL70lS4xXymjxyIDD+FQleWvsgUjB7Iy35cljws+LF
jjC9YljSG83VUtEfhFwXMoOhj4kGO2r9YnYO1YnX+qR+OPvXa/+z/Uru6eF9WcCNsZbkniu5
x+5y/LRepwX9D1yI3+RJr4mfLXicnVJNjxQhEL3zK+rmwWxLf9hNbzab1ZgYTby4/oECih6U
hhHo0fn3Qo+TjF5MTEjTFK9evVdFjkQwEB+E5uOMopVaaBRmlq3iiuZJmGk0o5BiaokdMZLP
0A1aS+LjMJu+o04onHs94KzGYVAjfz2ZoZejMQy3fAgRPm4UF/LwPoaU4OHrUventCVqVFgf
oR170U5i4gJe8pZzVqKrzZn+I5X9JP/KUzYx+HwPOvgXGSKhBo0ZoYTXcvy+UcoQPOQDQbR+
gSMuxNgHDyHqUjcHwFOwGhBWdFbZsCWQqL6R1yCpZqB0VHHWG7eRV7STuaDQsWMMilKqsGAK
x7Wi3KzTl6K/IzvencHYWE7o91sPKhzPzObK/4fEBt748+6nRnY3t2xXLfWyxG912IvZvS/V
hCfSqfJLql2iazd2QQWdMhZPDWNfDjZBWZehlI53XLSk+l51oxgRtmPKRdBaoM928aTvgjF3
8nz/r+Gxz3Sy9KMk7GD08Ja20utDgcrL3w34L+53eCrTeW7gk3WuDOxB44nWp/3rgslNeQOP
7BcBifjikTF4nJWR227UMBCG7/0Ucw+bje0cVxUq3CAQSKj0BcbOJHE3sSPbabuPxHPwYjib
qkLcAJLlw/j/Pd+MoycCpRQJwVvqtFAoeYtFibLROheq5FLnsibqCmQLerIRikbyvtFN21Wl
QiWLptd5xRF1yVUr21KTEg0qhmscnYfPK/mBLHz0LgS4eRi29TasgTLt5nfAK9nwmldVDW9y
nucsRWcTI/2rtRZ1+2Jlz2SPajr33tl4Ak/YpSkszgaCFJxBoT6T7cDZ6ZImTYx9suB8l9JF
B/joTAeLd2qiOYCxoDFZ40ivThNgdp3pL8YOgK/PM2evMr+FFxwInkYz7dYrzuYdMQBOG9YF
AqXKTHwLD2uIO2rSsldcYzcemJzGCdTa94kw8ThLMKQLe5Wn80IeI8E1PcYXJdvqyxi7HxNu
GntPoeaqqkQh+7Zpmy4nWJcQU+o5Sb+bwVJ3cH1/UJfT33rP7ujR0FMyXMVo4QOtk9Fjkqp9
95v4fWrdrrxzQ6rjG67w1Vn78wfc+C2SLbjeahO9ed4dX4w9n2CMcQmn43FynrIzeUtT5vxw
9EeRC57XMv26bMoi46Jq+EEc/sD836J+Ac6yCALvDIJHeJwdzD1qwzAUAGBSkg6eQqaM2ktc
PenpSS6lZOiaKbMH/TylBtcuxpj2FMV07x1ynNwmIcs3fvPj/6oeB2aBMZDLFahIaCKQNeQq
HRkxgkUVNFaE1kHx5QfuRuGtDxllYMeGdIoBNUoFoDXo5G+NS4kUwVyXS2Wlmn/dRksjniRI
WRTf3D13PJ4v28XaIZIkCtlFyFW2f4uHD3NsTh2nXZ/zLvy8iHc/NUkcS3Fo2pYH8Zr8xJ/7
u22fx/KWvRVXaLY8J5ZOeJyVlN1u20YQhe/5FHPXBIUpUaJF0TCK2IBTpI3RQvZ9MLs7S220
3GX3RzIfKc/RF+uQsovmB0gKCCK1OjP8zpldpkAE2xalbrQgrdpqKcV2reSGWt1uKrFqRNWu
15eN0HUxYCCXYLneXjZ4KRqq6lZIjVpWTdNWKJReC40boo2qaiowp70P8Fum0JGDX4OPEa4/
dtP1TcyRSun7X6DarLdVs1qutvDzslouC17tTUr0o6XNqq2fS4sncgthDzp4l65AefdTghRy
5O89gUB5IKcgUBy8iwQKE4Kwxik7FsWjVzjCSzmcjLXfKE4e4nT1zo4Q0dHn7crinQMfFOOz
Eo/eKBiCORpLHQFFiRaTYTmLQAaMe4pgHEjkBl5Dj9ZI43Msnh8Y4UjB6HGGmIG5ryDGS3uu
o6eBZCIF1nBqsYS7yAsGLdP1eKAi5kBci2cX/7KiPeEY+bcmHqtkCGTunGJCp4zr+J+/MsVU
FmwoBa+y5CJwdAKWpJl1bjhpb9///u7th4fHm8e7D3e73R87OO2N3J8jFMzAsHJPc3gvXvlx
xklmMTExwAgmsnTqpijNlkrYkfSTe17kmfQFO47Pj+ebgXeDEZbOozgaZObeHyc1ewBUs48J
8mhCymi589FI3pkdMsUrKrtyLkPgPTVw1guOJ/cEcpSWXrP1e06Qo7JwwuCmbj3FiN00shgz
G1KZJlNHnpoCCoGH+hIxh8ugxTwXVpqvtsVzL9DWe/ViPgXTdTwSBWJksK+2A0M9Tinw53xQ
QLQ11aKqG62qtl0h5CGmQNiz9MF0jtSF1/pCjFffO1DFjvOhExfMYp7QLWU7DfL6ozjf/Ud8
wzxn5c4zMfyJGe69c39/guswrZQD5jfSsKOnc8V74w5XsE9piFeLhfWBygMFR7b0oVuEBb8E
qmWz5qPM75i6rFabbXVRX3yB+X9N/QNX/rO0lTF4nJWRS47UMBCG9zlF7VigTjtvpzVCAxsE
AgkNc4GyXU6bTtvBj5npI3EOLobTmQWPBSBZTlL5/vp/l6MnAtG07chrUkLJuiNea1k3UjZI
DBvR1b1mrMe2KRb0ZCOImmmWWdUSr5C6SldSDcPYyZb3euRsZELoXheY4tF5eJ/IT2ThrXch
wM2XaX3ehhSolO78Cqq+4dVQjQ2Hl6xirMjVs4mR/lU61Hx4lhZPZPdiPmnvbDyAcvZFhIgn
gtlJnEG65QJOA4Knr4lChEyeIR4JvLETLDhRUbyz4LzK/tEBPjijMn/G2UjjUgCB8kRWgaBV
gWKmlTNWz4mspGuzq1vxp5tIZlab3XPlSs4X0MbnL7TXv3YLanJ2V/wSLvuESKjWtsqt1RXK
hMubh0e8gHcpd8GQtQovZVHcH02AvLa5Atcd9mOnxpExpmUDaQnRE54z+tlMltTOab0Tl8Pf
5l/c0YOhxyy4wmjhDaU8pmNGxfb2E/w6j20j79yUs37CBB+dtd+/wY1fK+WC6Vaa6M3Tpvhg
7OkAxxiXcNjvZ+epPJG3NJfOT3u/r1ldsaHJN9/wri2ruufVrtn9FvN/D/UD5LoJHZsmeJyl
UV2rEzEQfc+vmDfvRW6b7PdeRAStF0W6pRU/nko2mexGuklJsvb23ztL9VlBCJPhZM6ZE04K
iFCpvDamrLjptci4aPLStEVTSlUpw8tWtKKpirpmZxnQJRAmKwpZFn3eas0zVbWmbjkXfd5g
VpUc28oIlA2Tcxp9gI8zhgEdPAUfI7z6MSz3mzhHXCk/vQZR5Y2oBRV4yQXnjNDJpoT/Sq2z
mv+msmd0jxCvToF16jRrXBOyto7UjFS4tn4drBtWI1xsGuEbuhcRHF4wJviJIVrvGDv8F5+Y
zAdN9pOHAROkEWH/Yft0fNvtvh/3m8Ou2x42d/cgnb49/MGOu3337th92ezff+q+3t2zSSr6
8oqxrU9IQnJRs5GWn06gfAiobvqX4N0AJ6vQRSQHxkN/Bak1mV0G2GRjXHof7GCdXNjnK/Vj
AucT8WjJ50Wazi0AqLJWlrqpKVVDofZKwnyOKaCcaPhgB4f6wRvz0F8f/xYV+wXT2MvH+gOO
Z2eDVJX15OF5IWkOuMIeT8MXy3icAToAxf/ZCdkJsMgCFLF8lbihJwxdMmleZGJrf1/NYT3s
k9wCThQ7nz6AwOGzV/f8WLYt1WK+OqcnBbM+A5sBCQkaM/UFuwWi7AEBTSecDZaXtOvAzifs
aJR4nAFVAKr/oCKgIrB6ARSSrJBizE8WMQdqYjb4vMA7gOOCJrOOAVEHFKji32y1NvyH3BdY
yaEEc+oun/Cms/MIQQYUOgZyaDgfDZ7JU6pkPyj+NTtrt4+zSA/YAVMDJTvwAoLYWwHxkwcl
BNeaJ7yBHDVJAFLreJybzz2fe4MKq8je0mxNX4Pai20MFRKpafNe3eI9qD/ZgjUdAMNuDEr4
ZhsGyORv+koNwlTlwRwX9kKHQhokeJydVFFv21QUVtbSYhPElqZZUWG9DaRyoiSVIh5GnQ6l
qTsVqrhzyqppRcadrzODY7vXNtuECryAhAS8XPEEAqQ9IE1sZLXWVTyBeEFCiArBXjYkmMQP
4AdM4thu0hgihHixzr33u+d833eO74c/DN/9ZbhzIpliFlZeWF6Sm2u1NUEWJEmU6BNJ55FV
SawLzeZy43TRfzcpzrKHG/TP7DjlN47S4Wqa3udTdD+bpKXq10wRFTTdVAyZ/lG9ciIKiW62
ZIK38jzLdGM0j2bob53xIZ5l6f65jP/W/JnEQt2yryD3IkaA8LDjIteKlnAL2UoLl1FhlmUK
8byQq9CNQ2Lf8xn67b1j/vJzi4/RtUbmeBzf4+h7jdmH/gNJ/3pTHR050HXsfDqFL7tEkWOw
tjx5hGf96fPfDNVCGQcSOCf/v1Ucp8/LqIReZ5ku+B+FC/Ednr4iT044ruJ6DpxKwhl5vba8
Bh0DWdv+R/L9arYabi+KDSHQuvDiaVlscE4FHe77n3+8P8T2rd/+7NOkn7teSZQlobYI+LrA
QUnNKp0KKped4AuxY8s2sdQg72s6cWXq3ThpMLqGOAkoyJLQXBUbTUGGQYIsZwVpaUVc52b6
UhURsfP5ULJNZMXAxOWyOWcO6YaBW4qBTK+9iQmyNDDYsS3TwQ7KeRtmtghXGCpezRSIDab1
0wt4XQBowItpWdAOTEhgCP3ixpLEMJ7p6C0Tq0g3XWTZMJIMExKui6vneqz/xlMvoplNgt0w
qa6C28GqrKs8Sytf/pyJ0++SpdOdqURIc1IPfYoRYraDXBqiR19Kvxk1cTrWxcgZZnBuCDRM
sHkBLDEtZGNTDSbuYBC7FjEoUtFSS6dU3XlVNpU2HsBkCFygv/NjMIeP9j0FPL3T4Y5YNv21
M5EuWzYmiqtbJh8R5+Dgx0/GR/NBugiUKNM3zmb0LiA0qXctkGfZ/67qouKgS8QCJYfXuJwH
MhwXK2owCjkv35MXeFuJVykGNQZ43U+JPnzzGhM1FMjTrZ0J+tPN94D8yzsl+KLdNL2604Yo
5c+F63G6fitFPT/3eFgWyF9SiClDRWzobd3FKke3bz1N7/i5RNl/4NcTvWvp1EDsCgAe+PN0
6vbYcEgJ7W4MQn6wK0VIf+p2Jcja3JtJ9kPo1smxkZAVQ9/fe3LyYALmUO6pyz2fmFC2/93e
tcQIG3gyR9+5i0bD5x9G+J72TI2NtQTBtCibBvwmmkWQ5hF40wjyHBykHDxU/sZXzxp/Ab9U
Icz8ATiNeOLAFC1HIjnwNMx4HsjCeYNHeJzbyb+Tf8NSdhFnL4Y5QTcZU2IS7lqr/s3WMXrU
ex4Am7sLt/fKAaHIKP+si3MpX5RmLBzP8x4WoSqUeJyVVttvFGUUzxbKOkMF7I0CpXzdXthd
ttMrgmxa5LJgpWybchNqM87ufLsddjuzzMzCFluqMT7Ig2IO0Xgh+gLGFyWZ+GAIggkq8gAx
+g+QKD5gwiXGGEmM55uZXXa3lUAftt+cc75z/Z1zvt8vLnjzhwXnX1+6xsyJaUVNCTxHgp08
Z5h6Nm4SIyXGsokECcKXyxqlrGooSZXKxJjQdJO4V8aikb3i3pfE0cHoTnHP4KHIeJhvkWlC
USlB8tBgdJcYHY5GSFcugX/FvJFIdDveIsThUfhxGaziCmYU1TaSoaosHsnSLLUOPdNYsaEz
SAYNItOjSpySGJ2QjipqkhiSSjfbvsc0LU1iupaiapjnOcnUJpW4aIJ4vR5O17wFrXUH4fW6
5c+XBBNMK4YZ4jmOQ2/KAlXkAP8qzzGJMUUeJ/0kOEElGe7V9TFFVcXCsK++dTfPKQniV2TS
3F+SggBBNZx9GZXk9YWRVqS7+AKyZqxT9ReXLCXT00TNdAw4cQWg+7sauH+6Gm4M9lmftd3x
eLm4phomgW9GuuC9teIs88AuyWhkz8hwdE9EHBkd3i4O74+M7hgaPuBvtzPaMWDmQiSja3LA
cY7DvIpSmuqmH08h4htMp2lSShM1OxmjOtESRKdGBm1Rg7RlX1Z9dtIwa0wJ6SCu2iYzJ+hG
RmReBViEXFIzNUJ1nX3MwP2179SaOZRgJeI429NtwyMH4Yx/ZUOItNs85yKLxP4U4Kq/d7af
OB+KXOBipgf6SQGARbHloyoLyyahz75RNxYyIRmIt7im6zTOKk78bdlAIToURRDY9qDtcLVs
Wy0YcdqAVc+ptwvrxzWd0HQ0LcVN5SjF5KJaw0TLsOZwfRuTnsdOKUrAG1jdFC4VNVIxwxWN
7hsaAn/gYMP/OLITPgq0o7UG61bA64F7Qf9CZghWr/vqEM/p1MzqrJFY7TbxeROKmtDyaEQb
OC4oelAOnu2KIcXS2BssxkRWNycQQlmDsvBurINWwv6wn4ckhK4bOtFUorOOzkhJig0Nm0NN
rSx4LS6lw3OkbTKJa5kpSw+deei+tVkIemCyc2jWcTWvAXGD/trgKWMkdZpAFv7O5WmJhEFN
5DqHuQKGcpyynmYzp5Q3mxYSaSlpILeLgT1o5pgDJdcZvTPIZi8ZyeLQmygAAQXtTzYEWVLs
9IeIYpJjShrHHCXML+ysWEHGVnNsgroXZezLbJwyjMk0RxSDSDEtm7+jS4pB5fzYl2RZVGTR
1EQ2kIr6qGgIh0gpIEOsNaCqy1czT0rgUs96SHXVQbCnaQFCDi53BTscOTdjdk6SqmlKMRFR
ImoqFZO6pJp+RwxS3cEGdgwwQQeNhezBHbUBrvYtgZ+7/4YHahVcjVTBgx6uYG60dwBu9+aW
dwzYaOq3QcVaxVWe60vBr30dvOOOPW5D66sWwp9qzdJJSU+JbuiYVri5fDW80lg5W7KfFObV
sQklTYnfr6CBJDVZChO6NvkEScQ51dyPbpVsC35u72M/Ly4aMVbvc6s8sGfTF9DSQ+B871MV
ZAa6BzfCs+HjDWxGZdW0kqLpKX/R7rA+DR+o3M4SINjq0Wn7vwtcAUcHkvA3TyhNXULRDVO0
QQxiV4PQzmRCbmOEWAewQek2zDoH6UIBFLB3S2RJGenMlhcWOVrhty2tXnefALc145Ktqa28
J39+Y5vhgW8jNV7XMHRvqYWeyElGa3Zp6DxWQEqKzGc/OwXceQf/RqabclRVsUxlBXYGeiAM
/7R0Wud2XKispDlTl+ACbqXLQ98X7aiR/fVwamyRD/eULWJDkyvJd7PNEODu7jqPAN5oxktc
yono2ib7aIw5FHMqQ3FxdrNZ7Vi8FX3bI1hHh5d6+BDR3TzBdSpY1sipyhJHfGvQibyIvaF0
VpkCKQx/RNutD/ffWFih5+D9sY1zw1hkawhY18aueKqEfB31nGB9PD7NPfZDQseHhJ5xF+7D
RdCOx46BJ3lLEFTz8CEBu1oW++zAHrl54K/JNUu4/HzoYp0M9UkojbZSYXFZN5PXF1c3l+/K
cfjFCDSG+blbNL9ELY/5dNGCGciu964seggUO4a9C8tO1FlHpgVP/SP4H8zUVTS6z8VSthsK
3D1da12avdbGIaApZRMFTp59sWW+oVL+LPjprLBingFCFLKOdMN5sxY+CVbCbXMFvPauFy6Y
KzfM8OUTp/xxnwdqySvVOnHu8+p9uJl34JpnSycu4bsGyythgfEFqLI3FZaaOqvN5wTpYxtJ
ieP7XBfs7VNW2YSUNqjV8vWVtv8AgE0qffACSeYnnHMaRgwgYWsrXiBGFHtTy7p4nOvg7eCd
8E5kmpHVhtWJs6dK11V5LipnTRFapGC/mYmxjRUA1aML3fAC8XlGtibC8kWAwVG8eY0vRs9n
Qbh4nLvFcotlwx1GkYqSVZ/5vvRvcd/orsyfvH1erYG0weQPjFkA9j4OO/YO3EP6lsPeeIOm
OkzmHeIcEA7yLy54nPtQsbBqQw87KxdnZprC5Mnsyj4K1VycnAVF8alFRfH5ecmpGkoVqXnJ
+XnFVgqeOTmp6Yk5CkWZeekKBYnpqQqZeSmZyanFSprWQE1FqSWlRXkKuq6efmGOPkCR2s3b
2c8xKQKlgIZrFKfmlSjYKBhoAvkwtSAxa67N7VxPGaFOKOZRoq4TpvHc0gcARoFJDfwBzfM6
c4qxoidWkUa27n2u825Qgn54nFvOtpxtgzCziIz17sK9+2cLLPb7WXrjj4/Z2ts9SgCj+gzK
8QJq4n8st31M91QwWdVJlPgQrN0nz3icm8M6h3WDEaNIQsSaiS/OdVi5ft4Q4e3QYvx3ZuGJ
zW6MYYwA7tEOSf8B9htpm7KUi2IMmDr0B/+00Kxq5X94nHvC8oRlwhuR+IMW4jOSQ3iaapiX
OmjV9ZwVUqnaxJjCCADOuwva8AJPeSMo2X2YsKHkdMeXoq0bZh8R3XicASAA3/+8BLwEsHQB
FLOc28Ui7H7rCqAc8aEULazRdypSk4gBtPeADvn54gE/QFAfxgsdn5WnRV7Q0p+X2L2VcXja
nVZfbFtnFZebtImddEmav84/TuPGsbPbuKFpVy39Mye5iW/r2JntrO3IZm58r+PL7Hude6+T
pdUwe+vDJFQdiU0ItE3iBSExiT6BEAIkBA8gVvYAL5O2BySQkBAPaC9IcM537cTpOpCIKvX7
znfO73f+X7/3tu+3P/b5Yg/n5Ycv+B/uXatv6HbFcBzDMsFwoKTb+vYB7Niq6eqaBEVb18Eq
QqGk2ju6BK4FqnkAVd12yMDadlXDNMwdUKFgVQ8CMMvKbomQHKvo7qu2TvoaqI5jFQyVIEGz
CrWKbrqqy5TFulHWHYi4JR2msg2TqSgTMZimq2UwTODn5ivsG27Jqrlg645rGwXGkUipUK5p
7ErzuWxUjAYLmTOabeyUXIdjqDkUC3ss1aFiaUbxQIKKLiKs1rbLhlOSQDMYfrvmktBhYUE3
2YziiVk24zl6ucwoBkUgwj5yUqgxU5XT6zYSJrj3S1blSLfOERkOwxVrtknMurDTLMqgIP6a
XnBZwiZFq1y29jnKgmVqBgfnPE+2bJ6jd3Xb2tNFYCJWMC2X3PZ84aJUj4rdeKo7JZWi2NYb
GSR2w2Q4tSU2m/1wXOoJg+pRtWxB/GTMc01HEjJk06u52/GMDEoWNjLpl5QVeQWm4lm6T0lw
W8kl0ps5II16Jp7K3YX0KsRTd+GWklqRQL6zkZGzWUhnGE5Z30gqMomV1HJyc0VJrcES2abS
OUgq60qOgHNpQUpwjKbIWcZblzPLCbrGl5SkkrsrMdaqkksx8mo6A3HYiGdydWV5MxnPwMZm
ZiOdlcmLFYJOKanVDDHJ63IqN0fMJAP5JbpANhFPJpmO8eKbFEiGPYXl9MbdjLKWyEEinVyR
Sbgkk4PxpaTs0VF4y8m4si7BSnw9viYLq3SdkESYrOo5CrcTMkuZNk7/lnNKOsURLadTuQxd
JQo4kxPmrHdbycoSxDNKljwWUWbSxMIJJqO0wCHTlOwBcfKPanSRi0Q6LNjMyoegjLMix5ME
mWWA1qI+/MHX6zFR6tsl3YRQo3NmuC9Fm5V0VdNtCQ6sGpi619BV29ozNP14G3szXiirtjeo
tWrRtkyXWxrOA3ecptrcka6+QxME7kGVt0XNqJvulbwrQY2e5i/zSXcL0cYYHAAPVYNQA9pn
jkurwZ0rNVv2ENnz1Gm2rmKCqnlzRSulKAJgcm+WaWsI69WkXL8DFbVgW44XpFp2rGakjPPU
YCWasqLF427uWa95yRJgTaxm2MY9Pe9654peKXh79by3lPO2XqTHuhcpOdSSPucpcdvE88Vx
i6Hg7eBhu+p2WSdtKoK3ou5QecVCLLRmKhYIYNT3sy44+nv0V987JzpgK8AXfNB+qZPOfnH5
ZbuEf2/fOXzMnxzG/ZN/CNr6bo02ONeOPaBtXqUQKHIsn6oPtry2vAQ67p2uHLjqTt7hwEjy
rQ4440lE5+Qb4t91RPo88bZaeK0p7er86GnK/+wMP4F63n95/JgEZqO0KG1dy1dV+krgN/3f
eAr+dCD2383qARkfxwbxauJmcCsQm4WseAXWBvoo2geUXXx8YX5yK1AzeSLyeVOt6KFQA9HT
uU8q0hkvn3nqiN08fw13F7Hv2vVuEjhVFjjVRXxTXsSeW2tMiF/tGiG7L+N31vz4oKuXabB8
sxc/6Oonp2bE+Y+N81uJZzrz5LT2lYUr+H5iAU9330DfrU0BVOyeIaUQAw0e+neUUc+9BnTH
yXx1z10kyRxL2sg1fLjyHH5/taebJgtMm2NyWCF2qtEhb3YNdcyKeBeFM923bgreO6fDdD/H
vAOHvIf5F7TnmaSbSGgKtOPMlKX/l9m39ejSM8+dEKLdXon+n8T3vf8ve5aRPcvQojStju5G
Inknev66SJ8EFyQx0FaxVRzF3aUBbOs7ix39vT2GRFVkpSh/9imM2BDG+8baInmD9CL4Sax9
tEGTtwmC61vgcb8GRyqd+G7/HL5+cRz7BoLoLIVJ1oWP+4cx2Af4rzOj/gtNGvy4f/oppMM4
PzDhO6TE/EDQ97/Qz+JnfYPtS/HlW+jrH2yh+M3AAiX2IrYN7hL0LN4b/BXfOxpx4KuDQ1gY
OqC3L+EnQ3faIMIuTHB18O7wPL67GsS3h4Mkm6IKBPCnw2GiHR337KnZ4Sp3ONwQ5+e9bqdS
n9gKYOeISnZhNEeW8CejITpP0/kqTo514o9GzvpjzY2CH408e+Z+Rn5xU87mJPrNsZFOZeU3
8GTw1+0abR/8MCj3R/ijQ1uIPgja6/SzkOXPji4k+DBH4+r3+2nVzUb4HqWSzFIvlGkfl3Xx
uaLCi5co/57Ir8m5fCjE8ogHGF3ED/tH6uKRf0LkG95EmnwUXhTg6D3SdBdaNQIhTS8apg6t
QF44R0hONXocyFOgl8CRCp4dq1PGxvB7Yz+nInejNn4FPx7raedBw3+MSWe93Dk3+ENwjLYJ
iFfHI6I/tPHxQW7UKFz3NLLKyzL3ML44MYyvhk75+dLsv2n8S+gm9k7M0zkoOndrYlwM/BsT
5/DT6XMnaEJ7JwawPt2Bf54YYrVH/554cBI/XRtFY3oIfxjqFE30t7Ue/PZ0D/4p1E13aOBO
nqKloe8vit7YOqf4AO+HF/C7M51tUbiK84lJ/EV4jLpsvEHej5emQ/jBC0ECn2wBHhOgn3fK
T9VvoYiFZ/DlMLTxYrkfvvE5gs/CF09D6x++EpFwbjiANi2HdyITYp/1UqbemxnD3YXJzj3D
dvOV7UhjKAeOGTDkTGSh+wnEK8R3pgVtAH8fmfwiNKH8aDn6ytR/ABtvoTvhAqtVeJy7yXmT
c8MJJhGx3Ha1V2yas3auEdqlKLJsEWdSOcvmO0x/GQHj6Q1Z4QKrKHicW6C0QGmDCb+I5zP1
OcVSbjwKidnacQpuItXBp3dt9uC/wQgAvuULguECrDF4nAEhAN7/2QnZCbDIAhT4BB8nxrWk
2c3WUw22CWvpGBEn4rPcAv0BBdEPZOECXnicW6C0QGnDfQ6RuUx3b34O9e+2aRCeMdmLvbLv
rN+nzZ85dDkAADQO6fwBOI144sAULUciOfA0zHgeyMJ5g0d4nAEcAOP/uQ+5D7ClBxTBuOe1
kFnp3pOYWhnT83ibwAOvRtSLDvXtDKMxeJxrPc7ct4t5A5PAZDmBSZvPCkgxbRYTviMwWW07
/2Z+FSumyQ1q8Zvr1VkZuRVsFUoqiooL9DJTJm/RnCJVUBSfmJNaVKKhpFpspVCeWJSXmZeu
oKurkD45QUtNRYeLEwQU4uPTSvOS4+M1rcECTqHuGhBmLRfn5IsTpDfv0DrHuPmxzm2WzXVG
AhybE60XMG3WtPvHNXmRks7mEk8/hcn16hKbt2YZiE72cNLe7NjAyLi5uJGfafPCZj21yRvK
tDcrrPIR3nx07wFVAIKaRNPhAq8geJy7yXmTc8MJJhGBryJF8Wm/akOC75kJ7b75p4rhncHm
O0x/GQEAVg+e4QKCS3icASEA3v+gIqAisN8IFN+exg8pIN2ojRKhoJy5Nb4cjVDJs/MILQgE
ZQ8d/AE4jXjiwBQtRyI58DTMeB7IwnmDR3ic28m/k3/DUnaRfv37GyR1bI69fSShtZ3/gixP
b+tdAK3MDFT0FqHIKP+si3MpX5RmLBzP8x4WoSqUeJx7vpd57V7mDY0aIiUVRcUF1lxcnJyc
QZ5+7vHO/gGRk+dqSEnoKKiB5TStQXKZaQoaYK7e5BMa1ox6m1k1Y5RZUytKihIn7wbqOOBz
DEl/QJjY5AnRbEpAM8BKNMEWgMwozcvJzE7NqdRQBEvoTf7gK8qoN5ndr4BdASpS56cuB2YW
R0NESioLUhV0FQxjFWwhaiY/8+sDOqHMn5+RS0ehqCI+Jz85MWfyuVS9zZsDJrCiOERJHugI
mBKwX4oqgObAhawnv/FT2zwr7DwLU1HF5OnRFpjeYAOboLn5VPQRRh69/LS04tQSkLV6m+fE
8nKhqmfNBMlsfpjOVg4AGBF28eYugRl4nFu7l3naXuYNCToqCiCgr6Xgk1hcolCUWliaCqTz
8xSKMvPSFQoS01MVtPQnO/oITw7Q4VYpqYjPyU9OzLHG0AEWVkjOL6jcXKDjzlyfmZeWr2sH
U6+XmaJgq5CZYs3FiSaRXpSaBpQCkphy+WlpxaklQFkIA1NBcWZVKlA6JzUPXU45Ry8tJzG9
GChrYM3FxalVUgFyAIr2yVwGSvxoJk42MPCbrGEkNznRWJcPIge1xGBygKEkG0RocqahlgSI
qQkyuyi1pLQoD274ZPkeicnHTPgmXzT8MVm7h4cnNzE7Nb6kAhhSxRqT5Y3UmXW4OCcHGNtN
fmlcIa5rBw5jW3BQA30B9cbkMpPsyY9MdLkg9gMlajdrmSqxTg60WjdZ0Uhh8jpjDiaF2sn6
nhabTawPstqDtOkBo6IUZBaYhgaJXnF2ElAISMIEUC1MyywqLomf5CirpwaS1YEGtg4oVIHe
44RGgjYk9PQQIRXk6MqHJjTb0YMNYt7kRmeJyb8dediBPuLkVFCYzO5UgCzV7/QJyt3c6FzM
KFGRmpeXWhKPHFRg50yWcl1ggktSB+Sr+LSixPR4kGc0QCxNHbCNnJv/uG6cAQB9w/jB4QK2
Inicu8l5k3PDCSaRL9PeMvQZce/yXOdobstlud+69qfh5jtMfxkB+CMObuECiU14nAEhAN7/
oCKgIrDfCBR5rL4XTuCycm0Rv1Xi5aEcm8BCXrPzCC0ICVQPcPwBOI144sAULUciOfA0zHge
yMJ5g0d4nNvJv5N/w1J2kak3zt6eGatXKDZXwnT9kv6FCg5aOgC4awvk4QK3O3icASEA3v/Z
CdkJsMgCFJrcf4wu36af60x0QhRNifjHH8lNs9wC/QEXoxCA4QKKaHicW6C0QGnDfQ4Ri96K
RwdEdN2VLD+YnKmQO3Gostl982cOXQ4A8YgOKOECuBl4nAEhAN7/2QnZCbDIAhTSBijMNuxH
5DjcBgXN8okRw0Boj7PcAv0BAWwPbeECXnicASEA3v+gIqAisHoBFP7vfsMMBCbmWs3a7vi7
9/4wvdIWs44Bkg8eqxFd8AKC2FsB8ZMHJQTXmie8gRw1SQBS63icm889n3uDCqvIRzWjk8w+
nHnpXyb+kWdbt2TRz59xky1Y0wHN/w2i4Ba3J3icu32VZdk5lg1yPJONeAo3b+Hx1J8cn8A1
+bGS0GYZm1TmzavspylMvhyrPLkvQXPzq4SHNlq2tgpBroHx4Y6eIZ5+7prWXJxOoe7x/n4a
xUYKqHKb3869wMyHJnZ84UVeuaLMvLR8XTsgla5XDCKB7OKC+IKi/BSgeZOPrbeYvHqD62bm
jcKMk+u3ykzW3SQ3+eBW6yh9LYXwVIXkxDz1EoXixLTUnEqF9NQShZKMVAX14pKi0uQShaLU
wtLU4hJ1hcRiLk5OTgUtsGxmikJmsUJSaXFJaoqegpY+SCo5P68kM680FWgjZ+1ku80akx9v
Fts8d0sTEyPn5ImNSpN5dkpujtk+mXHytEZZIOcTiN4sveseUMBCdLL8HhkJJZA5nJxKUEut
FFQrYvKUdBQ2B+5Zz7h5xz7lHACD6H4q4QK7e3icu8l5k3PDCSaR39NWG9xNlHM/n+zyTKhM
foUck3/U5jtMfxkBANIOZeECgz54nFugtEBpQxWjyNlHWxbFfLVIu1jBJH3HzlqfZevapM19
jJP4Af5FDk3wAoLYWwHxkwclBNeaJ7yBHDVJAFLreJwBIADf/58LnwuwJAUU4EGS/HkC6cbm
+nEnoa5izBmUNViTOAVn8E0OgfINGwbI5G/6Sg3CVOXBHBf2QodCGiR4nJt6lqX9LMsGlbWb
VddeYLQJ8vRzj3f2D4iMD3INDvD3C3bVUCvKzEvL17UDUuk6Cpk6CmpJRaklmtZcnJyZKQq2
CiCeXmaKNddmo/UmjIx6kxM2iUyu2dAFZHFsXMUJUa3JxTm5cJPE5Esbe8AqdIGkwjaRyYs3
5QJZQputwHzRyeFbhSaXbm5j1Nv8d7MzI1ywCMj6u9l2svx2YRaQdUDhAxChzfLbjUDqgncU
AzWd2HE2FwBsrU1a4QK+aXicASEA3v/ZCdkJsMgCFLsFouwBAU0nnA2Wl7TrwM4n7GiUs9wC
/QH7dw+4ClHzqqTP6Y/9tR8QlvXLJmffKIM=
--------------644753F650889724A8B30328
Content-Type: application/octet-stream;
 name="back-5.4"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="back-5.4"

IyB2MiBnaXQgYnVuZGxlCi05MzM0ZjQ4ZjU2NzMzNGY1NDEwMTIyMzAxMmVjOWQzYjQ2Mjhi
ZWQ4IExpbnV4IDUuNC4xNjIKZDMxMWFiOTZiNzYyYjM2MjNiMjU1Yzc0YWIzMmJlMmI0ZDlj
N2ZhOSByZWZzL2hlYWRzL2JhY2sKClBBQ0sAAAACAAAAMJwseJydUd+L1DAQfs9fMW8qst20
aZt2OY7jXlZOUfAUfJM0mbZx26Qk6a7+905ZPPEe7kESSJiZ7wffpIAIWEtRtMKIruMl70qN
HFsp2kpIhdhUpm6axgjJFhXQJeh5ISpRN30vdaFRayWFUU0h8qowUimVV6YoDTK1ptEHeFgx
DOjgGHyMcPNj2N67uEbMtJ9vIa9Fk0tRCgFvec45o+psU8L/gLKUfh1gPOsDBFwmpRHuvx6/
f/r4+g1cbBrB4aCSPSO10xocnNW0ImPfSKQP3iV0JkIc/ToZ9yptYEJaB1pFBN+DnSZimMCo
pIhDI3GZDTqzNKIN0Cl92kgyePRPHqj15CPCZSS1gMpYN/xL+IcHwtZa1IAvuI4ZY19GG4Hu
NbJtlS3nlL0WsqrrHtYlJlKaafQzni1e0Ow6SuhBObjHdbJ6pFi76+9vsOzRDo5Gfd9fx1/e
A/tg3YliT2mJh/1+8gGzEwaHU+bDsA/7ghc5l3TanJdVVtZ8l++esTzXPAYc4H3waty9UyHN
5PhmoNppvJusW3/2fnUUmvVuE7llvwGYd+0SmUB4nJ1SXW/UMBB896/YNx6gIbnr5aOqqgqB
UJHggfYPbOJ1Ypqzg9e5XP49m9xdVRASEi9xbM/Mzo43BiLYUN3ssmJHW8xy0mme7bZmY/Kq
zDf1FquyyNIybYwaMJCLUBSbAmvUlG8rY671Ji+rNEtNfl2UebGpsl1WlTovFY6x8wG+jBRa
cvA5eGa4/dEu6z2PTEnj93eQ5dsyK7ZpsYO3opMqOd3bGOk/qOpI7r2jaIJ38Qa0d28ixDCy
fDuCGptnchoC8eAdE2iMCHVvne5npZ68xhkudJhs3/+FHD3wsnrXz8Do6He5RD048EGLfUHi
wVsNQ7AH21NLQNxgj9EKXEDQBOSOGKyDBkXAG9hjbxvrR1bnggwHCtbMq4nVsOjWJPZiJzw6
DtRE0tBbSY0T+MRyYLEXd3t8JsVjIOHiqYsXr9hPOLPsDcmzNmICxfcYOaLT1rVy83MkjolS
33w8K6w9LzLxCHI7kqRF4vBcEqTXTugSaPsOkMFIj2vVozrBl42ALIOoC0FaWY+cpuOSwgpe
qg/YkpR+cDF4PTbiV0pNC9A2GEX2Iq3pYOV66kh2AWxcxOvgJTrpSGKhqF7hOPoBJh+elyJC
cmcGU0zgkZaQLL8qc3kZkbg8yIJd0pphIhv0+dXV00pkOI0vYFlea8Q8w0JXWb6DceAYCPcC
fbStI33ljbmq55t/jbn6LtZpEsIKlmf6QKMMSSfQ+vT3CvyH9kc8SN6PCXyVaZZ8bjUeaH+/
fntvYiLjfqd+ARB2Y1iTTnicnVRLb9swDL7rV/C4YWjmVx4tiqKHAgOGdodtxY6BbNKxVlny
LDlpd9hvH2m7TbtiGLBLgojkp+9BJfZEUGyK9UonlBYpLjWtVtkS0yRdl4iU1ZuVzsp8ebou
Vad7chEQi6xGytO8JFzndV4VyyzbYJURUqkrSk+Xy6RcKz3ExvfwcaB+Rw4+9D4EOP++k+/L
MARaVL69gHSVb9J1niQbeJekSaL4tDUx0n+Mqnty7x3FuvcungGawIy121mCeL8Nd+W2ZsnW
hKjU1+bVIZCllicCsFQwDjQEM05b4+4IYWw6mNhAbEj19GMgPjAITAlBh7EPeqqJrapoAXJJ
x0pm4KleG7IIJow3qMEZ755AgflA540T/b4G7aSL4WG+baHUjd/T2PvyNvBDlBGpTKA86Xtk
oOiBnC5ZiAarGZq5CyZ3mwg1pzSjBzg0pmrAkehhIt0g/ficFjP4zGgtgyFuDW6jf3LwzVtm
jLCjKAWOoX1eil4dR/7SPh8/p971JLvHLnAYipeKmQtnz0r7MZMg3h/I2gVcUW0cwa9Ejvba
DiQQxqGpWMhoDjlUYu0UpxDoLO8t13ScR1ioP1osl+lHi8D5CCUJFbZ46hlj+dbwqopaLsnm
sGM/qfevUjXT1GOecBsklk+319dqunzO8OVMiKRRSrKwvEr9w9aErdBjt4QgUmVQWB0aGo05
Mm7YionQvMfiSBxzbGWXjpCBk5gxxRffsaTKI8maPHJgMPkVGF5b+6Bib/ZGW/blsJBnJYsd
YHrFkPEbTTHDdZHqVaETGLoQebDl1i9m5whPfF2flA9n/3rtf7Zf6T0/vC8LuDHWstxz1Htq
L8dP6+u44P+BC/UbI76wPp8teJydUsGO1DAMvecrfOOAtrTNtDNdrVYLQkIgcWH5ASdxO4E0
KUk6MH+P02GkWS5ISFVbO8/P79nJkQhawk4q7NtW7lW/HzqN2ODO1MZwLBtFndTDQGLBSD5D
ozvsOjmMKBuJUneyqceublW7I5Ltocf9MOgdCVzzMUT4tFKcyMOHGFKCh29T+T6lNVGlw/wI
TS8PzZ7rOnhdN3UtODvbnOk/SsUv8m885TEGn+/BBP8qQyQ0YDAjcHrm8MdKKUPwkI8E0foJ
FpxIiI8eQjTcNwfAU7AGEGZ0VtuwJlCov5M3oKhUoHJUcNaPbiWvaSNzQaMTSwyaUiqwMDLH
taNarTOXpn8yG96dYbSRI/TbqQcdlrOwufC/kFjBW3/e/JTM5uaW7aqlHHL+Voe9mN3mUkx4
IpMKv6IyJbpOYxPE6JSRPVVCfD3aBPxclsITb+tDQ1pK3fa8aliXlFnQzNBnO3kyd2Ec79T5
/l/LE1/oZOknF2xg9PCOVp71kaHq8ncD/ov7PZ54O88VfLbO8cIeDJ5oftreLoy54jvwKH4D
Xd74QJExeJydkUuO1DAQhvc+Re2h03Hebo3QwAaBQEIDFyjblcTTiR3Zzsz0kTgHF8PpoBZi
g0Cy/Cj/v+urcvREUBKJkleEou6E4mUjK5n3VaEFKhQC+1IXbY2CLejJRlBCtrqWZd5QLWve
5NSJolKVJiyEkrWuq6bgHWe4xtF5+LiSH8jCe+9CgLvHYVvvwxooU25+A7wpO97ypmnhVc7z
nKXobGKk/7CyF7JHOZ1772w8gSfUaQqLs4EgBWeQqM5kNTg7XdKkiLEPFpzXKV10gE/OaFi8
kxPNAYwFhckaR7o5TYDZadNfjB0Ab88zZ68yv4UXHAieRzPt1ivO5h0xAE4b1gUCpcpMfA2P
a4g7atKyG66xGw9MTuEEcu37RJh4nCUY0oW9ytN5IY+R4Joe4y8l2+rLGPs2Jtw09p5Cy2XT
FFXZi050OidYlxBT6jlJv5rBkj64vj/Iy+lvvWcP9GToORmuYrTwjtbJqDFJ5b77Tfw2tW5X
Prgh1fEFV/jsrP3xHe78FskWXO+Vid687I5Pxp5PMMa4hNPxODlP2Zm8pSlzfjj6Y5EXPG/L
9OtlV1cZL5qOH4rDH5j/WtRPEvUHCuANgkJ4nB3Mu4rCQBSAYZRdi1QLNpbTS+KZzH0RsbC1
sraYyzluIBuXEIL7FBLsfQcfx7fx0vx/9w2T6+e+axEZYYhkDSqpSXoE9JqcIkDh0HFhRSQQ
mqfsz7fYdAxkGQEkCAfBk43kLbfOacETaUCljAneyTjsi4/SQDmczfR1NgcOkGUnbBYNdrf7
bPRlpdSgdXgynByZy2j8o3bVocGUH4ny8P/NNr6vEtsVbFvVNbZsmXyPv+t36yN1xRNbZQ+W
2z3Elk54nJ2U3W7TQBCF7/0UcwcIxbGdpPlRhdpKBQGtQGnuq/Hu2NlmvWv2J6kfiefgxRg7
DQKKhECKYmdzZvydM7sOjggmk2pW5FVBy6IinGRnZSbPFnmxlIRzuSSxmBfFAoukRUcmgBC5
mGc4w/mkyvLpbDYpirOyWlZLymfZdC6rfJHNhEwwhq118CGSq8nAO2e9h/OHur9e+OgpFbZ5
A/nZZJHPi6xYwOssz7KEVxsVAv1HafJIZlzqXeWsCSuQ1rwIEFz0/L0lKFHsyEhw5FtrPIHE
gFBqZaTukmRjJXZwKoeD0voPxcGC76/W6A48Gvq1XZq8N2CdZHxW4t4qCa1Te6WpJiAvUGNQ
LGcRCId+Sx6UAYHcwFbQoFZC2eiTpwd62JNTVTdADMDctyTGC1uuo8eWRCAJWnFqPoVrzwsK
NdM1uKPER0dci0cXP1hRH7Dz/LsiHqtgCGTuGHxAI5Wp+Z8vkXxIEzYUnJVRcBEYOgBLwsA6
NOy1Vzcf37+9v9tcbq7vr9frT2s4bJXYHiMsmYFhxZaG8E5e+XHKCGZRPjBAB8qztO8mKQyW
UliTsL17XuSZNAk79k+P55uWd4MqNR1HsVfIzI3d92r2ACgHHz3kXrkQUXPnvRKUYI1M8ZLS
Oh3KEHhPtZz1mOOJDYHohKZXbP2WE+SoNBzQmb5bQ95j3Y/M+8iGZKTe1J6nJoGc46GeIuZw
GTQZ5sJK9WxbPPWCSlsrT+aDU3XNI5FQdgz2bDsw1KZPgT/HgwLlckrTMp/OK5kvlwVCbH1w
hA1L71RtSI5sVY3KbvW3A5WsOR86cMEg5gldUdT9IM8fyuPdT+JL5jkq15aJ4TNGuLXGfPsK
565fSVuMF0Kxo8djxY0yuxVsQ2j9ajzW1lG6I2dIp9bVYzfmk5xn8wkf5cliNk3zgt9Do+no
N8x/NfUdtXWx25YxeJydkUuO1DAQhvc+Re1YjDrtPNtpjdDABoFAQgMXqNjlxHTaDn7MTB+J
c3AxnA4LHgvESFHilL+//t/l6IkAO4FD0/VCV0rKpmoQS9m2JbW67tsBO1nJUnYVW9CTjdBr
jbzCRrR1z+tW1qJUnSCUnMtGELUHqoUWkmGKk/PwLpEfycIb70KA2y/j+r0LKVAh3fkllF3u
cCj7WsANLzlnuXo2MdIzpOyJ7H6YT9o7G4+gnH0RIeKJYHYSZ5BuuYDTgODpa6IQIZNniBOB
N3aEBUdi7K0F51X2jw7wwRmV+TPORhqXAgwoT2QVDLQqcJhp5YzVcyIr6drs6sb+dhuSmdVm
97NyJecLaOPzH9rrrt2Cmpzdsd/CZZ8QCdXaVrm1ukKZcPnl4REv4F3KXTBkrcJLAYx9nkyA
/GyDBaFb7PpW9T3nXMsa0hKiJzwXjH0yoyW1c1rvhsvxXxfA7unB0GMWXGG08JpSntOU0WFb
/QK/ynPbyHs35rAfMcEHZ+33b3Dr10qxYLqTJnrztCneG3s6whTjEo77/ew8FSfylubC+XHv
9xWvSn6o89XXom2KsupEuat3f8T830P9ADcSCLqbJnicpVFdi9swEHzXr9i33lEukS1Hto9S
Cm16tJQ4JMd9PAVZWtsqsRQkuWn+fdeEPhd6IFbDaGd2xKaACKLkPMuLnKORUnCheF50Va6V
FC0i5+WqbXlVV+ykAroEtRBFV1TdSpYzWhUZyXNBBXVtRFvIvGrRVExNafABvk8YenTwEHyM
8OFnP9+f4hRxof34ETIpqqzMqMB7nnHOiB1tSvgfUvYb3T3Ei9NgnT5OBpfELK0jt05pXFq/
DNb1iwHONg3wgu5dBIdnjAl+YYjWO8b2b9KTkvlgKH7y0GOCNCDsvm0eDp+b7etht95vm81+
fXMLypnrw1/usN01Xw7N03r39UfzfHPLRqXpywvGNj4hGanZzUYafjyC9iGgvvqfg3c9HK1G
F5ESdB7aCyhjKOzcwEYb44x9sL11alafLoSHBM4n0tGQx9maznUBIPNarUxVYi47rGWrFUyn
mAKqkZr3tndo7nzX3bWX+3+tiv0BEz7LBPoDcwRHsNJW45osn9m2XUtr2cpaF/h4nAE6AMX/
tgm2CbDIAhTmFEwVo9oTzEj0uF88bt5mud3/R5PcAisU/cNsqMtzjajrBMrt3WvMYOFJk7Cz
GwObAVbOHcz1BT+WzseNFu6R1vSVpMvGDc8vf+iteJwBVQCq/9Ai0CKwegEUW2ereMV6DMhR
1yKeU+oC+Xrh676zjgG8BxR4LjggKwRWJSKbA+T8SKWt2EUmu7NeCSQGFOfEH2R8i92DD8Qu
6kXRmnTqWYM+s5YPugFqFSZM8AJAlB263/OaW8hR2uj+yHZli1RYu3icu851nWvDHRaRXR+5
i9Pj9PRuXnnxU5hV01L9bkfn5A8s6QD01A68/WPe9B4b1zZNokOZTrN9bMxdNTVi2HicnVRB
bBtFFNWSELqLI9rE3RACydTFZm0cB1IJRVmHKkk3VWhkp+u0pUrKatMdO4s2O5vZXdJQVbRH
DkhIcwAJVLi2IiFkWyvlRE8cEFEOcEYgcacSZ8TM2I5tYXHoZTQz/8/7773/d+/83P3jr927
w7E+cWbhwvycUVqaXtIMTdeLOnk55j+/qBdntVJpvnA+G30cK45JzQvyJHGSqCvHSXc+Tv5Q
+8hhIkZG8z+IWZAp267pGOTP/NZbtS223YqB4UZalcTGHkyBFN2X0ejb/pppoc1l27qWowFV
ksjhVTm6PXVRmJlF3hYI1iCggRD6AQhQ7UhRgGdWYA5kxiQx016HYmcae070J1WOJs5eeoEs
FeSB9twjvlFYGHv2zFMQjrZL1nM9ddEnluN98EaAzVYyKbJuDD2jStGp5cdd01xTXY/ip59a
0gB5xwCj4KYkNpL/UzjTfqOS942hF/3ADEKfRnXtonFlen6JtpPqvBV9YRzkE3l+fa5Y0Jj4
mUvnjWJB8cdB8z4iXx52SS3nja+/ikUntscFSdemz9H8WU0hjx8N9HoYWQzlAxsHBjF3JhzR
LgNFpwUNXSstFgslzaAzRd9c1vS5heIVpWExo5wF2EunuUAPG6YDcaAkkv4ksB0HVkwHuOH6
KsQAlamdvodcH/ogGa64iSx9IpI3duUM9qhFLZg57HvGdZrKeIkVRM2HGDP55POduRFRDF3f
rrjQArYbAOTRaRRFTni2uHiV/LUz+FIWpFYxDDiAbVEf2SlnW6pEhr/9RW6n2iBGendHBE5p
yOaetBUXbzGsMiDHr8XfrbXnVFt/ai6InbHppgwxdK9T+S4CHnQtNkv1EWvYwYrH5U6lJZH8
rvbTieqNNz9wFmJDBKbIm1W5lyFxL5DHbwb6kQexGdjIVWvcFeSRkXvyMYZfTxokty/H7Uac
23T0iglE3v/rWjN9sIkR1dJ8piRD2ho/gKbFGp8M060C5fH2KllWo6PkJiXy9+59IUXufveN
kCMLe6N0vbl3h67/7E3SNffwNWJGyUFeghLdNLFrUHTo2Ot2AC2F3I3mad5BdSpKPegR+JN0
X8e8V8knDxWeu9jNS8eqK50yP6zqQi46qCKGdnY/FWsNk42J/h7ORiRb+68M1fs8CZKnbxx5
IXJp0YP9+0KPxHRPko9+A8f4v5328bNPh4Uzr0ttxgPL9s1Vh45+GWFQDjH9K2EQ+pCBsuHp
ok6SJ9sno/e+P+38C+n5DKD8Ac6lSrE2MltumHbGQPyrY1SK9w24eJzbyb+Tf8NSdpFrX5yd
FW3Onjb2Wd1xs3qqz3q5c8wAt8cMy/HOAX04nCzJAmUCiTbaQXFHbsqA1w6ZeJyVV29sE2UY
T8efecfcEAarOOHdX9qu7VY3EqBZ3WAdTEs3h6Awl/Pae6+7tLsr712hyMbCB03UiOhjSIxi
RowkBqOEi4maGDFREz8YY+InEz/4zcQPxi9q/OTz3l1L26GBfrjdvc/zPn9/z5+9/vm6G9+s
u3GhbZdVlgqano+KAgkNioJpsVLWImZeypRUlYTgo82dckk3tZxOFWIuGMwi3pW5dPJJ6cmn
pdmp9CHp6NTJ5Hxc7FGoqumU4HFqKv24lJ5OJ8lQWcVfLW0mmZ7AW4S4NArfboaHhKoaTXeU
FKmuSKdKtETtkw90Nu0dDJEpkyj0tJalJEMX5NOaniOmrNNHHdszhlEgGWbkqR4XRUG2jEUt
K1kEXpO2wRtbX4TebSfgwraOsTpvQgXNtMKiIAhoToOnmhIUz4kC55jTlHkySkILVFbgj20j
XFBLLTMc2957RBQ0lQQ0hXSN1sUgSFCM4FxGIRV5cTyrkV17AUnL9qXtL7e2kqUlohcjCdcx
+6G+qaZmIWvoJjrWmhoCZbe0wpU6aZhNHp2ZTh9NSjOz0xPS9PHk7GRq+qlAvxPFSMIqh0mR
GUrQtUfAWEpygTIrgG9h0j1VKNCcXCB6aTFDGTFUwqhZRF3UJH2lZ/RuJ04YKC6ERIgndqdV
jjKzKHGrgtwpIWdYBqGM8Y9luLX71XarjBw8LYLgWHpweuYE5AM7/GHS79Dci9wT5zMKlwPD
K6PE/dCUKhWDmxglVdDV+FbxqsEt5wht7p71fCELsokYyxqM0SxPMgn0lYJV75AV8+7oW6lz
RFiu2FBV6RYCT5+bcA/Yd2uIajA0RM5a2mmKoUaxpoV2uMpR95465fx5B81rgAMXTT9x0VXD
b+YzpsefPpZKwZ+BE/7/sO8QaMH+tqoVrhH29eBmH/wSCaznmuG30McnRYFRq8R4tXGO/WJF
naarRgWxqA97CkVhjWib0Ew5U8D64WFQS8xaQMyVTIoRgCsD0Ev4D4s+JSPWvegQQyeMl31R
zlGsejj19lYg4U29PCJGVi7E19xwjknWKJ61x8JXbrtg3x8N+SA+mFpxza1IQLChzQ7iGgg5
RlUk4XMtzVBVk1pIdV/WMpjac5TXPm9O9bSVQlQtyDkTqUO8QkJWmRtQd52fD4Z4kyYzJeyO
C1W8IKPzybslD4yTgjDRLHJGK2A/pITbhTnMVHkcMWcWqHdRwWIuZSmHokLLRDOJnDFKlTtM
1kyqVOaDrCiSpkiWIfHGVVN8Nd06TOpRGub1BD8Ndrc1hOT1oTT8HdsJseFIq0vygjQEJPbg
RvcI9sVCfv4a5DFwAVcNDlxgfrg80gpXY3/DK6ylZVHOUwl7Bj1lBuD32O51iGogwwn4dLjc
EUk4qBl1wMPR7WmYHMnDzZGI6Op3Wu8/I7+sgxfY1rZFmeUlzz0MHXz57gC8dUNYObOgFSgJ
BDQUl6MWD4rKjMV7CAu2q65RNKJuTohrS9yrcK+1xEVsBD2K/fPedp+gasy00Lo4+G52wPb9
F+GPGIHzw/c1kWW4uv+mnzerkl7Q8rRwNnB7igTtg/GnNkxw96OOOlTh/PWgGcVmgUf4rBzU
B66iF08gMuSP9nOesAf9MMc4bx5eSQy4WI5W0w5/jSVbG47Gxg9vdKVC5wE/rI63NHujBj4Y
L3oku/OA6KthsxMH53z+MtV1TEBt5h174IuJ1f8mPp988+EqsS7FbncP2jsmf9uwgZYtJoOE
s0pJfVMzuZ7NbU8MDPCBh/PLYXLgKdQFvMshRK2zRYpT3FsxCHFP4fqRYnPlvTu9e6fzas7V
3ImQGE++a8NL6Yu+qL1jus0nhgnzAgc/7GuHDw+02FMz72yoNw/E4y270LgKq9POGU9Z9SgO
l9L9duL49+ubWBnic3vrJbRUHWTloK3PfeVriVZSzMpRe2x+Sbjr1YPh6sGK3oi+PQn68TWS
uJftg6CY26sHPN6zyZ2X/zt6YHVxV6tQ6R5DvMThMxXq/O1Yz92yn8/9uGlLV+PcnIfzZrAz
Lq6dqJWBal83768ZLr9ae5ojNbtCrV28yj1TpmafkA6PpydSyQnQHx20Dy/5fMG7vmKPL3c0
dXpL5x25YfVGO1x6RbTNlVt9ArYoSnmHgpH3Huu5U5Nq2Cbg3HtRMK41b6nrRhoZIDFYsh6B
jdd69jQ2rMZ/CyowrttS7MC197ccw1E9ibOfT6GsjPsQplzGpCPqdL6ZYfqpO+u6Xb+6+YjS
srjZs6gzjhqyrcoFk9rfffJ1378ZLzJW8AI3EMUbaRfoTWksXR3VDri8U/2lDHicASAA3/+t
Da0NkO4UlePYO6tSZVpJxAfz11wX4SWxRWSzAgGrBf5IDmXwAtXwadmKTyOZcEv8xfj9YS8J
6hp8eJy7xXKLZcMdRhHRW0zr3k3ptlVS5zhqrNB6JzGBPWnyB8YsAN6VDSn2Dl7wiQX+Bcch
ZxgN/RzTiOjM0fM+eJz7WLGoakMPOysXZ2aawuTJ7Mo+CtVcnJwFRfGpRUXx+XnJqRpKFal5
yfl5xVYKnjk5qemJOQpFmXnpCgWJ6akKmXkpmcmpxUqa1kBNRaklpUV5Crqunn5hjj5AkdrN
29nPMSkCpYCGaxSn5pUo2CgYaAL5MLUgMWuuze1cTxmhTijmUaKuE6bx3NYHAEhNSRD8AXp2
3CpxXYMK8ea9AUgpiL2ixab7eJwBHADj/6UGpQawEQMUetjv60ICvdXurXnqdZqsMZ8Sp6m8
fA4c8QKIS8T9TxvtPJW0sBlHqa8ULyNK5HicW8u6lnWDEaNIpsVkcV1T07OzAqZK1O8w9slw
vH1usxtjOiMAxGsMDP8B69GrJ0BfnL9r3f/LF98IHeNgDvR4nHvC8oRlwhuR+IMW4jOSQ3ia
apiXOmjV9ZwVUqnaxJjCCADOuwva8AJPeSMo2X2YsKHkdMeXoq0bZh8R3XicASAA3/+8BLwE
sHQBFLOc28Ui7H7rCqAc8aEULazRdypSk4gBtPeADvn54gE/QFAfxgsdn5WnRV7Q0p+X2L2V
cXjanVZfbFtnFZebtImddEmav84/TuPGsbPbuKFpVy39Mye5iW/r2JntrO3IZm58r+PL7Hud
e6+TpdUwe+vDJFQdiU0ItE3iBSExiT6BEAIkBA8gVvYAL5O2BySQkBAPaC9IcM537cTpOpCI
KvX7znfO73f+X7/3tu+3P/b5Yg/n5Ycv+B/uXatv6HbFcBzDMsFwoKTb+vYB7Niq6eqaBEVb
18EqQqGk2ju6BK4FqnkAVd12yMDadlXDNMwdUKFgVQ8CMMvKbomQHKvo7qu2TvoaqI5jFQyV
IEGzCrWKbrqqy5TFulHWHYi4JR2msg2TqSgTMZimq2UwTODn5ivsG27Jqrlg645rGwXGkUip
UK5p7ErzuWxUjAYLmTOabeyUXIdjqDkUC3ss1aFiaUbxQIKKLiKs1rbLhlOSQDMYfrvmktBh
YUE32YziiVk24zl6ucwoBkUgwj5yUqgxU5XT6zYSJrj3S1blSLfOERkOwxVrtknMurDTLMqg
IP6aXnBZwiZFq1y29jnKgmVqBgfnPE+2bJ6jd3Xb2tNFYCJWMC2X3PZ84aJUj4rdeKo7JZWi
2NYbGSR2w2Q4tSU2m/1wXOoJg+pRtWxB/GTMc01HEjJk06u52/GMDEoWNjLpl5QVeQWm4lm6
T0lwW8kl0ps5II16Jp7K3YX0KsRTd+GWklqRQL6zkZGzWUhnGE5Z30gqMomV1HJyc0VJrcES
2abSOUgq60qOgHNpQUpwjKbIWcZblzPLCbrGl5SkkrsrMdaqkksx8mo6A3HYiGdydWV5MxnP
wMZmZiOdlcmLFYJOKanVDDHJ63IqN0fMJAP5JbpANhFPJpmO8eKbFEiGPYXl9MbdjLKWyEEi
nVyRSbgkk4PxpaTs0VF4y8m4si7BSnw9viYLq3SdkESYrOo5CrcTMkuZNk7/lnNKOsURLadT
uQxdJQo4kxPmrHdbycoSxDNKljwWUWbSxMIJJqO0wCHTlOwBcfKPanSRi0Q6LNjMyoegjLMi
x5MEmWWA1qI+/MHX6zFR6tsl3YRQo3NmuC9Fm5V0VdNtCQ6sGpi619BV29ozNP14G3szXiir
tjeotWrRtkyXWxrOA3ecptrcka6+QxME7kGVt0XNqJvulbwrQY2e5i/zSXcL0cYYHAAPVYNQ
A9pnjkurwZ0rNVv2ENnz1Gm2rmKCqnlzRSulKAJgcm+WaWsI69WkXL8DFbVgW44XpFp2rGak
jPPUYCWasqLF427uWa95yRJgTaxm2MY9Pe9654peKXh79by3lPO2XqTHuhcpOdSSPucpcdvE
88Vxi6Hg7eBhu+p2WSdtKoK3ou5QecVCLLRmKhYIYNT3sy44+nv0V987JzpgK8AXfNB+qZPO
fnH5ZbuEf2/fOXzMnxzG/ZN/CNr6bo02ONeOPaBtXqUQKHIsn6oPtry2vAQ67p2uHLjqTt7h
wEjyrQ4440lE5+Qb4t91RPo88bZaeK0p7er86GnK/+wMP4F63n95/JgEZqO0KG1dy1dV+krg
N/3feAr+dCD2383qARkfxwbxauJmcCsQm4WseAXWBvoo2geUXXx8YX5yK1AzeSLyeVOt6KFQ
A9HTuU8q0hkvn3nqiN08fw13F7Hv2vVuEjhVFjjVRXxTXsSeW2tMiF/tGiG7L+N31vz4oKuX
abB8sxc/6Oonp2bE+Y+N81uJZzrz5LT2lYUr+H5iAU9330DfrU0BVOyeIaUQAw0e+neUUc+9
BnTHyXx1z10kyRxL2sg1fLjyHH5/taebJgtMm2NyWCF2qtEhb3YNdcyKeBeFM923bgreO6fD
dD/HvAOHvIf5F7TnmaSbSGgKtOPMlKX/l9m39ejSM8+dEKLdXon+n8T3vf8ve5aRPcvQojSt
ju5GInknev66SJ8EFyQx0FaxVRzF3aUBbOs7ix39vT2GRFVkpSh/9imM2BDG+8baInmD9CL4
Sax9tEGTtwmC61vgcb8GRyqd+G7/HL5+cRz7BoLoLIVJ1oWP+4cx2Af4rzOj/gtNGvy4f/op
pMM4PzDhO6TE/EDQ97/Qz+JnfYPtS/HlW+jrH2yh+M3AAiX2IrYN7hL0LN4b/BXfOxpx4KuD
Q1gYOqC3L+EnQ3faIMIuTHB18O7wPL67GsS3h4Mkm6IKBPCnw2GiHR337KnZ4Sp3ONwQ5+e9
bqdSn9gKYOeISnZhNEeW8CejITpP0/kqTo514o9GzvpjzY2CH408e+Z+Rn5xU87mJPrNsZFO
ZeU38GTw1+0abR/8MCj3R/ijQ1uIPgja6/SzkOXPji4k+DBH4+r3+2nVzUb4HqWSzFIvlGkf
l3XxuaLCi5co/57Ir8m5fCjE8ogHGF3ED/tH6uKRf0LkG95EmnwUXhTg6D3SdBdaNQIhTS8a
pg6tQF44R0hONXocyFOgl8CRCp4dq1PGxvB7Yz+nInejNn4FPx7raedBw3+MSWe93Dk3+ENw
jLYJiFfHI6I/tPHxQW7UKFz3NLLKyzL3ML44MYyvhk75+dLsv2n8S+gm9k7M0zkoOndrYlwM
/BsT5/DT6XMnaEJ7JwawPt2Bf54YYrVH/554cBI/XRtFY3oIfxjqFE30t7Ue/PZ0D/4p1E13
aOBOnqKloe8vit7YOqf4AO+HF/C7M51tUbiK84lJ/EV4jLpsvEHej5emQ/jBC0ECn2wBHhOg
n3fKT9VvoYiFZ/DlMLTxYrkfvvE5gs/CF09D6x++EpFwbjiANi2HdyITYp/1UqbemxnD3YXJ
zj3DdvOV7UhjKAeOGTDkTGSh+wnEK8R3pgVtAH8fmfwiNKH8aDn6ytR/ABtvoTvhAqs8eJwB
IQDe/7YJtgmwyAIU3KnYL06t9fiNeiWO5YAhQxJKlm+z3ALaARMhD9HhAqsReJy7oHRBaUMT
v4i5wFHpTPEXvpk6sbJX+XbsCf67lGfzNP5djADgow2Q4QKsGnicASEA3v+2CbYJsMgCFF0O
Gi0gzFX4ozCvrKC/1JtReomss9wC2gHvmQ9g4QJeeJy7oHRBaYMXp8j0zmeraxkfK+tsVzZ4
YSJQbvAonHlzHOcndgDwvg2J/AHOpUqxNjJbbph2xkD8q2NUivcNuHic28m/k3/DUnaRBdlz
g1huuvuU9e6Tr9ny/H3J/fogALIZDXXuDaMleJzbcIx5507mDUwCk+UEJm0+KyDFxJlYkp+b
mRxfojC54JLoZhPhHoHN55Q9mSb7qcVPdsySmJyq/pZPwVahpKKouEAvM8Wai3PymzKJyXM1
K6UKiuITc1KLSjSUVIutFMoTi/Iy89IVdHUV0ifraamp6nBxgoBCfHxaaV5yfLymNVjAKdRd
A8KsBRKTFy6T39ytdZJx80ad2yybfYyesm9msV7AtPmM7X+uyQVKOpslPP0UNjtm+YluPlCv
w7hZtpGfaXLRROnJ/5TZNuc086ptnr+yXHhz/t6DqgCqL0xE4QKvF3icASEA3v+2CbYJsMgC
FPuVnKQ6UtOOxdRJUCdym06daPYBs9wC2gEPhQ/m4QKCW3icu6B0QWmDF6fIy0WTOQpvGkxi
lHt6WOqnMm/JLhnDzXGcn9gB8xUNxvwBzqVKsTYyW26YdsZA/KtjVIr3Dbh4nNvJv5N/w1J2
EZFQwfUPizf2isyZs+Wx2zfJlE5rQwCtOAxN+Bh9OJwsyQJlAok22kFxR27KgNcOmXicm7SX
+cYe5g3+GiIlFUXFBdZcXJycnEGefu7xzv4BkZOzNaQkdBTUwHKa1iC5zDQFDTBXb/I0DWs2
vcwUoPDkvmKJzR80RJVZUytKihInxwO1pvgcQzIoIV3MTls7OT+vGGgcWJEm2C6QcaV5OZnZ
qTmVGopgCb2SyoJUhZoakG0KIAARnbzat4AdxlbyU5cDM4ujkfToKhjGKthC1Ezu8utj1Nss
5c/PyKWjUFQRn5OfnJgz+aKlyOR1TjybPQPmsaI6bzJXGI880HEwpWDvFlUAzYMLWU+e4Ke2
2S7sPAtTUcVk62gLVBN44B4sqtDcnBd9hJFHLz8trTi1BOQAvc0OsbxcKDrEWUASm1vTecsB
0aN9XOwtgS14nLuxh/ngHuYNejoqCiCgr6Xgk1hcolCUWliaCqTz8xSKMvPSFQoS01MVtPQn
X7CUUympiM/JT07MscZQDRZWSM4vqNxsp+POXJ+Zl5avawdTr5eZomCrkJlizcWJJpFelJoG
lAKSmHL5aWnFqSVAWQgDU0FxZlUqUDonNQ9dTjlHLy0nMb0YKGtgzcXFqVVSAXIAivbJN/SV
+NFMnPxP32/yCm3JyfxGrJP1jXX5IPJQiwwmyxlKskGEJpsbakmAmJog84tSS0qL8uAWTL6g
JrF5oiEb4+Q7ajyTM115mLg4Jy/UVgAZy6wDZMsZ203eblwhrmsHDl5bcCgDPQH1xWQXk+zJ
G0x0uSBWAyVqN/8w+c4y+YvlOrA5NcYcTAq1kwW2yU7+4CG9+brVQVZwkOsBY6MUZB6YhoaK
XnF2ElAISMIEUC1NyywqLokHh1BFal5eakl8bmJ2ajxMGBjFGmogbTrQiNABhTjQ25zQCNIG
hyx3vh4iGL86uIKDDknIztGDDWLk5DZHFXagXzk5FRQmr3IsgApvlnLiYoSxVZyLGSWQXQN2
RzHEIZP3uizAKbm52fXqDAAq3fl94QK2HnicASEA3v+2CbYJsMgCFKChaTtn/bBPlr540MVA
YsKaulbas9wC2gEUXREK4QKJYnicASEA3v/QItAisEoJFIeaz5z+ukDjXmZGtf0KjuRUvuSr
s14J8gcgMxFP/AHOpUqxNjJbbph2xkD8q2NUivcNuHic28m/k3/DUnaRhZOP7+q3ODBlfaYj
x9rmeXX6ks+4Ab1eDLfhArc5eJwBIQDe/7YJtgmwyAIUOEHmMfB1ad5Ez0joRw490A/D0+6z
3ALaAQCXD+3hAop9eJy7oHRBaYMXp8i5pV4bzYyi82aUHXP4szo5pOs7747NcZyf2AEA2Q9m
4QK4F3icASEA3v+2CbYJsMgCFMP3QyPSb8F7JXL9w4qx/JLkvtAqs9wC2gEgNxHS4QJeeJy7
oHRBaUMVo4gT6xq2j5K5vn7c59ZoOib8YzTe+XVzH+MhfgDcJA1x8AJAlB263/OaW8hR2uj+
yHZli1RYu3icASAA3//XCtcKsNwEFNJNPX9bUi8QuIScIlOdg7mp7uS/k/AEZ+1WD3zhFbcl
eJw7fpVl0jmWDXI8k414Cjdv4fHUnxyfwDX5sZLQZhmbVObNq+ynKUy+HKs8uS9Bc/OrhLM2
Wra2CkGugfHhjp4hnn7umtZcnE6h7vH+fhrFRgqocptvzr3AzIcmtnnhRd7J/nvF2QuK8lOA
midvWm8xefoG183vNwgzTs7eKjNZcpPc5MolUpN1d4pPvreVK0pfSyE8VSE5MU+9RKE4MS01
p1IhPbVEoSQjVUG9uKSoNLlEoSi1sDS1uERdIbGYi5OTU0ELLJuZopBZrJBUWlySmqKnoKUP
kkrOzyvJzCtNBdrMWTtZa7PG5uItM5gYOSdvqFGa/GOH5GaP7ZMZJ2+tkQVyPoHozey77jFO
nmYhOpl7j4yEEsgMTk4lqIVWCqoVMXlKOgqbbfesZ9y8ZJ9yDgCmGHn24QK7cXic28a5jXPD
CSaRgGV6k7cn6VztLtc441OTGr7G2fbV5jtMtxgB9HMO2uECgzZ4nLugdEFpQxWjiNe3yGOy
a4r/1618m/ha39hypodC+eY+xkP8AAyxD0TwAkCUHbrf85pbyFHa6P7IdmWLVFi7eJy7znWd
a8MdFpFz/IYe4ievh03znL5gQeCNfH3lMpHJH1jSAegnDeL+Cd70HhvXNk2iQ5lOs31szF01
NWLYeJxrPMvy+QzLBoG1mwXXXmDkDPL0c4939g+InPxhnaSUjoJaUlFqiaY1FydnZoqCrQKI
p5eZYs21WW69CSOj3uSQDfOA5JcNqxjVJs/buAbI9tmkCySrNzUCyX+brICk3lb1yYmb24Cs
c9tsN6ttYWMEC7aDBQJYQEZO5tl2gFFv87lt+SA5+x3FQM6WHWdzAT4NPKfhAr43eJwBIQDe
/7YJtgmwyAIUP5bOx40W7pHW9JWky8YNzy9/6K2z3ALaASD4Ebjs6tmoplwg37+VtROMEtdf
gXr6nQ==
--------------644753F650889724A8B30328
Content-Type: application/pgp-keys;
 name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Transfer-Encoding: quoted-printable
Content-Description: OpenPGP public key
Content-Disposition: attachment;
 filename="OpenPGP_0xB0DE9DD628BF132F.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy=
cWx
w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O=
f8Z
d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y=
9bf
IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq=
G7/
377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR=
3Jv
c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA=
QIe
AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT=
hpw
dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0=
MbD
1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv=
oPH
Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v=
5QL
+qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ=
2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC=
QoL
BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr=
Wf0
teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC=
/nu
AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh=
ITT
d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm=
XBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz=
80h
SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC=
AcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn=
FOX
gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1=
jnD
kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0=
N51
N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l=
otu
fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1=
tqS
EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA=
hsD
BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3=
g3O
ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5=
dM7
wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5=
D+j
LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm=
V2x
AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N=
Eaw
QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW=
nHI
s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR=
wgn
BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV=
bVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk=
pEd
IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA=
QAB
wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw=
Tbe
8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1=
vJz
Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8=
VGi
wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW=
svi
uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX=
zXs
ZDn8R38=3D
=3D2wuH
-----END PGP PUBLIC KEY BLOCK-----

--------------644753F650889724A8B30328--

--ZGACYk0EwNri3JybJuyXka8Ugpr7UeH8W--

--n7AoJWNv4FtjfjOiMAjBHbOUzISBLv1Sy
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmGk7pMFAwAAAAAACgkQsN6d1ii/Ey/d
fQf+Ojln40KTJ1uCCS2iuYW6HLGfPVWCCsv3BAHzT3N8VOwd/i+HnRw+VhPk0xoi/b+I59uirxIY
mxia6mqRHkN4H7DthLg6AWnGK5aS8UamMkAD2JngnyPaiYicMX+RUKWOo5Dk9Za2TU+AOFPfyXNE
L3Sx9S9bJdRkGz6gsOKX8WiV3lPsAjQQ+zz3zH4k7odjb5gzOla6K+SU5kNMlDabPu4xwkykMfJy
3FzFy9LRd8GMhOVwTodbZPzQwPCgPSqStgWlXehKa46PpwM1WcINg31rdYIvNfQ+cRvKT4zmc3gk
ezm9V3fO1vjxIa/4iBe+1OsQ7/DMbgcs6nuV8bTBRg==
=m/QB
-----END PGP SIGNATURE-----

--n7AoJWNv4FtjfjOiMAjBHbOUzISBLv1Sy--


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:35:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:35:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234633.407182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriga-0004Av-Pq; Mon, 29 Nov 2021 15:35:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234633.407182; Mon, 29 Nov 2021 15:35:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriga-0004Ao-Kq; Mon, 29 Nov 2021 15:35:20 +0000
Received: by outflank-mailman (input) for mailman id 234633;
 Mon, 29 Nov 2021 15:35:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrigZ-0003uH-9R
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:35:19 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f37ff202-5129-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:35:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f37ff202-5129-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200117;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=ph/X2ZwqZu0ieAmEwiGCwAGLojJcuNIfdJOJKGHvGLA=;
  b=Cv7BLeJf0fjIlkFUdyezehX4GqeOS+CKTFuSwQb0JAd0++IwB3BFaxA9
   FljazwUSBni2J2hnJJL8v/yDWINfNLds5rsI/SaqnKddjO3akJa6KeBzi
   8yAMLquUBywjP32yW+QzYJ7quIDuWHHtTrN4np4/AA4NEovUimLQ+Jybd
   E=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: FCqrLPBAUUqUqD8x0Ab7jEpcsbXT8FNNTM5AFyCa5dWpK1PbZKn+SC+i3qbSwvmufAMhFoYwyU
 7JCRfahQDeWMrrOqvthF5DDVjqZgGHjZNpBbGSgptWNxJFfnttjrWSzLcCQf836AE47v6nXGUc
 AOlB8zBuizTsRnyoyKmPX5eS1FqFkk3B/6zyg041+ZlK17reMNSk8sw76q/VkWxb/ZeOablK+Q
 rem0IjiUnbGfr91u9x3F38+kTb86FUH84++IqSfZvzkKSqs5zGJ9s2e4DPVeluwR39g7RY9wcu
 qlWAW8b9U9UKJ2upcBwmBfGE
X-SBRS: 5.1
X-MesageID: 60839634
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:10kzG6lYj5VJT3wv2iDYuxHo5gx9IURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIfWmqDb/6MNmanfNt2YN6wpBsBucDWnIVkS1ZprihnHiMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q52YHR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 PVSpc2iEwIyBZHJmscFEB1FTGJDHpQTrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBNPsM44F/Glp0BnSDOo8QICFSKLPjTNd9Glo1psfQ62CD
 yYfQQBddSnDQSF3AX08AsMwkeO0r0XVLjIN/Tp5ooJoujOOnWSdyoPFMtXPfceRbd5IhUver
 WXDl0z7CBwHMN2UyRKe72mhwOTImEvTR4Y6BLC+sPlwjzW71mEVTREbS1a/if24kVKlHcJSL
 VQO/SgjprR081akJvH8QB+QsHOCpgQbWddbD6s98g7l90bPy1/HXC5eFGcHMYF48p9tLdA36
 rOXt/P2FW196riOck6Y9JSM7jevZmsoDlZXMEfoUjA5y9XkpYgyiDfGQdBiDLO5g7XJJN3g/
 9yZhHNg3utO1Kbnw43+pAma2Gz0+vAlWyZsvl2PNl9J+D+Vc2JMi2aAzVHApchNI4+CJrVql
 ChVwpPOhAzi4HzkqcBsfAnvNOzxjxpmGGeF6bKKI3XG327zk0NPhagKvFlDyL5Ba67ogwPBb
 k7Joh9275ROJnasZqIfS9vvUJRzl/S/T4+8Bqy8gj9yjn5ZLlXvEMZGPxD44owQuBJ0zfFX1
 WmzLK5A8kr2+Yw4lWHrFo/xIJcgxzwkxHO7eHwI50/P7FZqX1bMEe1tGALXNogRtfrYyC2Io
 4c3H5bbkH13DbyhChQ7BKZOdDjm21BgXsuowyGWH8beSjdb9JYJV6WMnOh/ItM9xMy4VI7gp
 xmAZ6OR83Km7VXvIgSWcHFzLrTpWJd0t3UgOiIwe12v3hAejUyHtc/zrrM7Iusq8vJN1/lxQ
 6VXcsmMGK0XGD/G5y4cfd/2q4k7LEanggeHPiyEZjkjfsE/G1yVq4G8Jga/pjMTCieXtNclp
 +Hy3A3sXpdeFR9pC9zbaazzwgrp72Qdgu97Q2DBPsJXJBf36IFvJiGo1q03LsgAJA/t3Dyf0
 wrKUx4UqfOU+90+8cXThLDCpICsSrMsEk1fFmjdzLC3KSiFoTbznd4eCL6FJGmPWnn19aOuY
 fRu48v9aPBXzkxXt4dcEqpwyf5s7dXYuLIHnB9vG2/Gbgr3B+o4cGWGx8RGqoZE2qRd5VmtQ
 kuK99RXZeeJNcfiHAJDLQYpdL3eh/Qdmz2U5vUpOkTqoiRw+ePfA0lVOhCNjg1bLad0b9x5k
 btw5pZO5lztkAcuP/aHkjtQpjaFIXE3Wqk6so0XXd3wgQ0xx1AeOZHRB0caOn1Uhwmg5qXyH
 gKpuQ==
IronPort-HdrOrdr: A9a23:jYAlqK+95H6T19H9+81uk+FCdb1zdoMgy1knxilNoENuHfBwxv
 rDoB1E73LJYVYqOU3Jmbi7Sc29qBTnhOJICOgqTMqftWzd1ldAQ7sSi7cKrweQeREWs9Qtrp
 uIEJIOeeEYb2IK9PoSiTPQe71LoKjlgdCVbKXlvg1QpGlRGt9dBmxCe2Gm+yNNNWx77c1TLu
 vi2iMLnUvrRV0nKuCAQlUVVenKoNPG0LrgfB49HhYirC2Dlymh5rLWGwWRmk52aUIC/Z4StU
 z+1yDp7KSqtP+2jjfaym/o9pxT3P/s0MFKCsCggtUcbh/slgGrToJ8XKDqhkF5nMifrHIR1P
 XcqRYpOMp+r1vXY2GOuBPonzLt1T4/gkWSgGOwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze
 Ziw3+Zn4A/N2KAoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vFoLA
 BXNrCe2B9qSyLZU5iA1VMfheBEH05DUStue3Jy+vB8iFNt7TREJ0hx/r1oop5PzuN7d3B+3Z
 W3Dk1frsA4ciYnV9MPOA4/e7rDNoW0e2O1DIuzGyWuKEhVAQOHl3bIiI9FkN1CPqZ4iqcPpA
 ==
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="60839634"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BWweiMqyZGFoe0KTPIbvfFBn3y25soiScgrZ2gTYrQUE1G4KZ8aka5eREK+fJQhYNLDJJZ4lMmh2B4TqhMPPhYsS/oxkgggmLejKbwsshQFcKfjaZ9/AwPJZkdKL1FlfiJcfmv6qLEvFvZEthrwKfYayxGvOVRHfxKHDUAjiMI0IwNboYpQPCmpmP8Azm/b62WIqsyx3GbH7xSTnqdo5mRrfN7nnKh5dPWJAEFW8DD6tMEHBxg8aMi84p/g6aOuQxdxRvuHAv6QRSIaD8pa2z3ZYpNRx3DxR3oIlAegEZSDLvi0XDmiNtAQ3vz0vGeDR/XPEKLsqwxGupzqmQLFItA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=81CFV+SYBzukKNB1TyKMFdrip578PFrTXbUhz3TDIu4=;
 b=mRahXzvniGc6Lp/J6oWiSuKRJRbjh9yrmENYPXOKV1B8/8+jCz/1awQ+woGR8SAn+MpjnuYDOiSrKzvFsvLaSTcdw983TurXwVuXsCc7t4VxIN8rK9BK7eqyMiPTcOGlkUdjnq5luAFyGHJXfWZ8ePfcp+SWBPxIUgnF3wTQfD2w/I3hpqACnkazFdLMQC4EKiRGbn8ssjtBdvl1R8xu4IY0QuPVavU+OSUPPzu/knkQK160J8LbAdGpYK66ObYjfWhKWPD0spqImUUYsw4L6VDql1iYZVbe48haw2boVEMdtg/0AHxfEKS8e/+c4XaLlzJBdXDA3Oa6qzZbD5MY1w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=81CFV+SYBzukKNB1TyKMFdrip578PFrTXbUhz3TDIu4=;
 b=PhnnU5tl++bbDdVKAbIvIEHUZuG4NAYdiRPT9j5fUTxq77YMdXqSxLx1MhoyWHCC5n9W5v45bK1EflP5rNoqMYQuAm2kVmA7x8Z2SWsngxD8M9UGxcdunTK3IWdECwCkRORp0ijJcmHaXQnfFVE1lDZ/0aI5UCupvnIUIcLY9L4=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v5 01/12] libs/guest: move cpu policy related prototypes to xenguest.h
Date: Mon, 29 Nov 2021 16:33:44 +0100
Message-ID: <20211129153355.60338-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0078.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::24) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b34530db-09ce-4af1-d692-08d9b34dd4eb
X-MS-TrafficTypeDiagnostic: DM5PR03MB2842:
X-Microsoft-Antispam-PRVS: <DM5PR03MB2842851B1CBE9A9F0B2E4E778F669@DM5PR03MB2842.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5797;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: T6OWHDQ6MxqSELy8v6zjIkJzKUpfTjRJUDlBFMVguAT9SUKPTmf4N9CsOvBxBMX7E8Vwz0bjd6/PGGfzjgWRup2kk/E4rvqjzyFOQmacT7QBndIvZZdygXpOT/qJlBDKFB37he3FUCvo4+XWtclFgp92QcZ/EVsiL8VGyF8v7yyVg5a3BbdTDTFCkHSZGvAZzKeiSke/cpT31BpyVaySk0yJn2IjBZ3nwi5l9SDdE8fbE8t+yEaAI816Zd26mFhQsjNragq4MKSnd3nG1MvoQoegW9naK8Irc+MH0HPxPW8eA9zY5booAfD9dfTO+YD2dU1TsIlEHtX7iPo9lzWPTAVMHZaIAVj4zfz+my4GwOyome/ep3SWzQCamK/YaGf/T5ER6s8cyH+EU/kTdmkhYfUoA64rAs39u3NVMD2yl/5JG7T9bxT+lwtwuYnWKzd2uA7J3S9lkEWbbEGxVzKXIwrj9WHTpyw3Lbs1TFmWrlCFRJvpH/52Z4xKkWVf63YsKJU1sg48Xe5EeQyPZbC5CE+V+uQztyqW+VbH+SMEGUdIiqSN+NsjnZoFhhJhQXqTrjPLEopk11YOR1bfhOXDJ+pz19LpDM9n7v99O1Vn/OnxCa8XbjfwCfoAgpctg1H1UxOTqjBBtGKS+UdJE5WHCQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(86362001)(54906003)(8936002)(107886003)(2906002)(66946007)(6486002)(316002)(8676002)(956004)(6916009)(82960400001)(4326008)(6666004)(66476007)(66556008)(186003)(83380400001)(38100700002)(2616005)(26005)(508600001)(1076003)(36756003)(6496006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TkVHenh6cXRUT0RJQzh0QkVkUGNBSHkwREc5UGUyRStQZmZnOW9wVy8vTjFY?=
 =?utf-8?B?VDgzdmNHcVBKam1CN3M4S3ZWaE15SWx4UGZ5dEJIakptd1pmZDdSTmhBWDJS?=
 =?utf-8?B?ZzA2UTdBWnl5VzNJaW5WM2pBNWRwUnE1blp5ZTZZekt2Rkd1WDNpeWorRlRn?=
 =?utf-8?B?R3ZxYmtyc2VVZnhhbVhuNG95d0Q0a2FNdW54dmw3TTY2ZkRjUkRWM2FXcy9T?=
 =?utf-8?B?VzFCRnpEZHZmaTBOYkZVaVF0cWVDL05ValNXU3VlWFJUUUlvUENKczRJMmZK?=
 =?utf-8?B?WFlvUi9xZjV6dlI4eGwwckNCNnJzMXRvejNSQ21YT1B3OUtTQ3d4UlhoT1Vk?=
 =?utf-8?B?ekp6Z0RzRFFEMmZUN2pLcURQNjB6SEt3VmVwK0R6RC8zWFJIOExOd3ZCUWtq?=
 =?utf-8?B?WWc2Zkg2RUR4MW8wQUc1dnE3LzQwZDZ4dVFNa1FCVVpJRU1SQ2ZDMFl1TitN?=
 =?utf-8?B?MmF5VmJNZHBackZyTlRTSko4QnNGQlJ1Z01ZZmtsOVZHcWM1dDVKUVBTOC9C?=
 =?utf-8?B?Zk1RanpkcW8rRkhnaHlaTzNMTGFXMFJ2OTF3dTUrSXJ5YUFRWFhkQUN1T0NI?=
 =?utf-8?B?L1NGQzNWYkNhR1pmV0ZGQjNNbHc4U1c2dForbVNPYnhBUEs2Q1d3M0d3ekJH?=
 =?utf-8?B?b1pvLzhXVkw4ZERpMlFDTFRNc01xZTdhU3JyMkxjVlk4L1lEQU1HbWVkeFo3?=
 =?utf-8?B?NFovSEJYR0ZEMkpLdkllWHZwbTIvK3FVdVp0UjNkbkhlaEdjOHMzWS9qdHgy?=
 =?utf-8?B?aWNBczA5cHlxWUVpVlo1OFlPR1pMWG9oNEpPeEY2cG93ZXUzZjBGTTZqWktZ?=
 =?utf-8?B?dC9vWGtqSytKSnhjWXN5dEJDVG9qQmJVbS91R1JZM2JwVUlySUJqangzOU8x?=
 =?utf-8?B?YmZOeHRodSsxVWpPZk1WbVNZdHQ2R0luT2tMdnlrUG9ISU5IWEZRbXUxeDFs?=
 =?utf-8?B?dUxHNXNaQ1p1NDdMdXFuWlV3RzV1QXU2VW1VS2Y1d0V5OW8rTHU0cTluY00y?=
 =?utf-8?B?NTBrWi9uZzQ0bHNpOVhJN0FJOUJpU0tOQ01hZElEQnZTYmFmeDRxbHFpS3hM?=
 =?utf-8?B?Yk43ZG05MzlCdDcyM0I2QU01R1BQd0RxaEVUUWxHa21sQXJRei81MmFwME5F?=
 =?utf-8?B?NlhtWmxDdDRVWFJFWml4dlZzQVAxRmFSMGl1cGE5TWtKWjJ1ZnlzZjhYVUZi?=
 =?utf-8?B?YzR4QmEwM2djM0ZyaTZJdlNnK1U2aWNNSkNsaUNMenpLZXNudEJyaWRtYVV5?=
 =?utf-8?B?MnRCb0R4Y01WbzlLcWo2dWxacHVMWCtWajN0NGNsY0w0d25SNlNrS3pFVzRm?=
 =?utf-8?B?UTJtbUZQdHBvMzdPTXo2aUVPT1VSRWc0dlVmd3RPTGNibU5SZXVxR3NkVGVS?=
 =?utf-8?B?STUvWXAvMWJIcmwrVi81YW8xTmpiTS83cWdLRk1UdmUzZ3ZxalYwMmtqMU5L?=
 =?utf-8?B?eGlobWxtZnBQQUVENWgvNzNUWHFEaE5vOGhyK3RncExteHdNcEZJbUJmZUlw?=
 =?utf-8?B?NXU3ZGNrNkM4MFZPNTBkMVVHaUdyemFyOWpMMWtwRmZWSmtGZGxNVkw4QWp3?=
 =?utf-8?B?eWxiWHIyWUlwZTBENG1KSGhNY0lERzlNdlcwUWRQcEVEbFFDblpzKzlYaHUw?=
 =?utf-8?B?L2gvKy83R053VnM2YWlhREVRUjdNME9MWGZNYktwTTNpSXRFU1phY2lGRG91?=
 =?utf-8?B?ZjVmOGhaUVlvbzF3OVRFazlKYXJHaU16WEZjOW9QRGlva2h4V29ZUG8xeEJm?=
 =?utf-8?B?NmhPTWpBanJtbHVnNWd4NVl4a3R1UmVEWmRsTzkwWUhxY3ZnVGVHY3BpcUJL?=
 =?utf-8?B?Tmd5OFdoWXNvZ2NUc2RwOTFMWVNlMDZLQnRkbzBiVXE2RURNcEIwSnVPQnlP?=
 =?utf-8?B?N3BuQk1zRkZONWJoNDBFdGNQejIycGh1Qi8rRndlalRDOWluVFRnOWtGWXM0?=
 =?utf-8?B?UWtremVXWXlNa1JNbDZNTUwySnMxNTRNcnk3WUIvalBHVkEzdjNUQUtLRFJT?=
 =?utf-8?B?ZHdRRHFqRktQOVhNY09sblozT3dFYjhKdjlvMGZ1TGlPdUM0TGJTVkdrU0s4?=
 =?utf-8?B?WnVBeUhhdzVqdE9Bb2psTlVnMDFrK2xBbmJkZm5DNndMSHRpSXRNOXBxRGc0?=
 =?utf-8?B?dTFxcFpTK1NwekphbFhNUSs4Mlh0NHNvNHJVVW94TkN0UG0xdHB6YlVNS0JL?=
 =?utf-8?Q?qXDn/6APQqFflncAOclrd1U=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: b34530db-09ce-4af1-d692-08d9b34dd4eb
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:11.7029
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OpFF6AL3L5otYcMR+oLn/2ngNk1aRNbE34g47graF+BQpezel0XIQoLQE2w8tH98e1pez/camWMBnvqUKDD/Dw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2842
X-OriginatorOrg: citrix.com

Do this before adding any more stuff to xg_cpuid_x86.c.

The placement in xenctrl.h is wrong, as they are implemented by the
xenguest library. Note that xg_cpuid_x86.c needs to include
xg_private.h, and in turn also fix xg_private.h to include
xc_bitops.h. The bitops definition of BITS_PER_LONG needs to be
changed to not be an expression, so that xxhash.h can use it in a
preprocessor if directive.

As a result also modify xen-cpuid and the ocaml stubs to include
xenguest.h.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Changes since v1:
 - Include xenguest.h in ocaml stubs.
 - Change BITS_PER_LONG definition in xc_bitops.h.
---
 tools/include/xenctrl.h         | 55 --------------------------------
 tools/include/xenguest.h        | 56 +++++++++++++++++++++++++++++++++
 tools/libs/ctrl/xc_bitops.h     |  6 +++-
 tools/libs/guest/xg_cpuid_x86.c |  1 -
 tools/libs/guest/xg_private.h   |  1 +
 tools/misc/xen-cpuid.c          |  1 +
 6 files changed, 63 insertions(+), 57 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 07b96e6671..95bd5eca67 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2528,61 +2528,6 @@ int xc_psr_get_domain_data(xc_interface *xch, uint32_t domid,
                            uint64_t *data);
 int xc_psr_get_hw_info(xc_interface *xch, uint32_t socket,
                        xc_psr_feat_type type, xc_psr_hw_info *hw_info);
-
-typedef struct xc_cpu_policy xc_cpu_policy_t;
-
-/* Create and free a xc_cpu_policy object. */
-xc_cpu_policy_t *xc_cpu_policy_init(void);
-void xc_cpu_policy_destroy(xc_cpu_policy_t *policy);
-
-/* Retrieve a system policy, or get/set a domains policy. */
-int xc_cpu_policy_get_system(xc_interface *xch, unsigned int policy_idx,
-                             xc_cpu_policy_t *policy);
-int xc_cpu_policy_get_domain(xc_interface *xch, uint32_t domid,
-                             xc_cpu_policy_t *policy);
-int xc_cpu_policy_set_domain(xc_interface *xch, uint32_t domid,
-                             xc_cpu_policy_t *policy);
-
-/* Manipulate a policy via architectural representations. */
-int xc_cpu_policy_serialise(xc_interface *xch, const xc_cpu_policy_t *policy,
-                            xen_cpuid_leaf_t *leaves, uint32_t *nr_leaves,
-                            xen_msr_entry_t *msrs, uint32_t *nr_msrs);
-int xc_cpu_policy_update_cpuid(xc_interface *xch, xc_cpu_policy_t *policy,
-                               const xen_cpuid_leaf_t *leaves,
-                               uint32_t nr);
-int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy,
-                              const xen_msr_entry_t *msrs, uint32_t nr);
-
-/* Compatibility calculations. */
-bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
-                                 xc_cpu_policy_t *guest);
-
-int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps);
-int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,
-                          uint32_t *nr_features, uint32_t *featureset);
-
-int xc_cpu_policy_get_size(xc_interface *xch, uint32_t *nr_leaves,
-                           uint32_t *nr_msrs);
-int xc_set_domain_cpu_policy(xc_interface *xch, uint32_t domid,
-                             uint32_t nr_leaves, xen_cpuid_leaf_t *leaves,
-                             uint32_t nr_msrs, xen_msr_entry_t *msrs,
-                             uint32_t *err_leaf_p, uint32_t *err_subleaf_p,
-                             uint32_t *err_msr_p);
-
-uint32_t xc_get_cpu_featureset_size(void);
-
-enum xc_static_cpu_featuremask {
-    XC_FEATUREMASK_KNOWN,
-    XC_FEATUREMASK_SPECIAL,
-    XC_FEATUREMASK_PV_MAX,
-    XC_FEATUREMASK_PV_DEF,
-    XC_FEATUREMASK_HVM_SHADOW_MAX,
-    XC_FEATUREMASK_HVM_SHADOW_DEF,
-    XC_FEATUREMASK_HVM_HAP_MAX,
-    XC_FEATUREMASK_HVM_HAP_DEF,
-};
-const uint32_t *xc_get_static_cpu_featuremask(enum xc_static_cpu_featuremask);
-
 #endif
 
 int xc_livepatch_upload(xc_interface *xch,
diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index 61d0a82f48..e01f494b77 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -782,4 +782,60 @@ xen_pfn_t *xc_map_m2p(xc_interface *xch,
                       unsigned long max_mfn,
                       int prot,
                       unsigned long *mfn0);
+
+#if defined(__i386__) || defined(__x86_64__)
+typedef struct xc_cpu_policy xc_cpu_policy_t;
+
+/* Create and free a xc_cpu_policy object. */
+xc_cpu_policy_t *xc_cpu_policy_init(void);
+void xc_cpu_policy_destroy(xc_cpu_policy_t *policy);
+
+/* Retrieve a system policy, or get/set a domains policy. */
+int xc_cpu_policy_get_system(xc_interface *xch, unsigned int policy_idx,
+                             xc_cpu_policy_t *policy);
+int xc_cpu_policy_get_domain(xc_interface *xch, uint32_t domid,
+                             xc_cpu_policy_t *policy);
+int xc_cpu_policy_set_domain(xc_interface *xch, uint32_t domid,
+                             xc_cpu_policy_t *policy);
+
+/* Manipulate a policy via architectural representations. */
+int xc_cpu_policy_serialise(xc_interface *xch, const xc_cpu_policy_t *policy,
+                            xen_cpuid_leaf_t *leaves, uint32_t *nr_leaves,
+                            xen_msr_entry_t *msrs, uint32_t *nr_msrs);
+int xc_cpu_policy_update_cpuid(xc_interface *xch, xc_cpu_policy_t *policy,
+                               const xen_cpuid_leaf_t *leaves,
+                               uint32_t nr);
+int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy,
+                              const xen_msr_entry_t *msrs, uint32_t nr);
+
+/* Compatibility calculations. */
+bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
+                                 xc_cpu_policy_t *guest);
+
+int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps);
+int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,
+                          uint32_t *nr_features, uint32_t *featureset);
+
+int xc_cpu_policy_get_size(xc_interface *xch, uint32_t *nr_leaves,
+                           uint32_t *nr_msrs);
+int xc_set_domain_cpu_policy(xc_interface *xch, uint32_t domid,
+                             uint32_t nr_leaves, xen_cpuid_leaf_t *leaves,
+                             uint32_t nr_msrs, xen_msr_entry_t *msrs,
+                             uint32_t *err_leaf_p, uint32_t *err_subleaf_p,
+                             uint32_t *err_msr_p);
+
+uint32_t xc_get_cpu_featureset_size(void);
+
+enum xc_static_cpu_featuremask {
+    XC_FEATUREMASK_KNOWN,
+    XC_FEATUREMASK_SPECIAL,
+    XC_FEATUREMASK_PV_MAX,
+    XC_FEATUREMASK_PV_DEF,
+    XC_FEATUREMASK_HVM_SHADOW_MAX,
+    XC_FEATUREMASK_HVM_SHADOW_DEF,
+    XC_FEATUREMASK_HVM_HAP_MAX,
+    XC_FEATUREMASK_HVM_HAP_DEF,
+};
+const uint32_t *xc_get_static_cpu_featuremask(enum xc_static_cpu_featuremask);
+#endif /* __i386__ || __x86_64__ */
 #endif /* XENGUEST_H */
diff --git a/tools/libs/ctrl/xc_bitops.h b/tools/libs/ctrl/xc_bitops.h
index f0bac4a071..4a776dc3a5 100644
--- a/tools/libs/ctrl/xc_bitops.h
+++ b/tools/libs/ctrl/xc_bitops.h
@@ -6,7 +6,11 @@
 #include <stdlib.h>
 #include <string.h>
 
-#define BITS_PER_LONG (sizeof(unsigned long) * 8)
+#ifdef __LP64__
+#define BITS_PER_LONG 64
+#else
+#define BITS_PER_LONG 32
+#endif
 
 #define BITMAP_ENTRY(_nr,_bmap) ((_bmap))[(_nr) / 8]
 #define BITMAP_SHIFT(_nr) ((_nr) % 8)
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index 198892ebdf..b9e827ce7e 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -23,7 +23,6 @@
 #include <stdbool.h>
 #include <limits.h>
 #include "xg_private.h"
-#include "xc_bitops.h"
 #include <xen/hvm/params.h>
 #include <xen-tools/libs.h>
 
diff --git a/tools/libs/guest/xg_private.h b/tools/libs/guest/xg_private.h
index 28441ee13f..09e24f1227 100644
--- a/tools/libs/guest/xg_private.h
+++ b/tools/libs/guest/xg_private.h
@@ -27,6 +27,7 @@
 #include <sys/stat.h>
 
 #include "xc_private.h"
+#include "xc_bitops.h"
 #include "xenguest.h"
 
 #include <xen/memory.h>
diff --git a/tools/misc/xen-cpuid.c b/tools/misc/xen-cpuid.c
index 37989e4a12..e333215dce 100644
--- a/tools/misc/xen-cpuid.c
+++ b/tools/misc/xen-cpuid.c
@@ -8,6 +8,7 @@
 #include <inttypes.h>
 
 #include <xenctrl.h>
+#include <xenguest.h>
 
 #include <xen-tools/libs.h>
 
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:35:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:35:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234632.407170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigW-0003uU-Ey; Mon, 29 Nov 2021 15:35:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234632.407170; Mon, 29 Nov 2021 15:35:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigW-0003uN-By; Mon, 29 Nov 2021 15:35:16 +0000
Received: by outflank-mailman (input) for mailman id 234632;
 Mon, 29 Nov 2021 15:35:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrigU-0003uH-Tc
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:35:15 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f061ba5f-5129-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:35:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f061ba5f-5129-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200112;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=JW7VStkWsAZV7zN7/Yo6KgLsmtlbANBHhUoCzstZPw0=;
  b=gF/kPd3it8nX3Hig3O5kNcAW5oBtOwAltkpGLQdszo0VCXkeaoPby7dD
   Zua4Xt2Z2JcfN1pGzLAlmsbQz3J2v2NpFX79Pz8skmb/tSV0SlZejYLpO
   OZsfLosj0ZEXAhVPp2qocSrN5kC4HDa92kB+kmY7ovxyiyWMNQWdbTiTX
   I=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: qHF0YV8jF/lJWbO1W9ewwl3cBp78TyFoI3s6AOyGCbruYhKkqR9oy6zvsWl3glEJRipqZunJsS
 r4jJZsiC2pizdm6ydvadIafzBijpFNvbBJhpYhxd1luF+7T8Wtmx2a/KQjP00JwnP5M+UbrT1w
 WAibnsm5RTVXmbHbOfqL8XK3vaOGqHubETQqLowZMUdd8xm0+SsjEb1UDCqo6w6rSoFHwGsxZb
 gzjgEnnQvygOqAJ4ESQ4/E7ejIt0huXLKQxPMPTowRP/SOGtKEgto7l7x/PyakAQlKBtaBFuIr
 KrF8cCF3rXH8JLUZAB7wvmvz
X-SBRS: 5.1
X-MesageID: 58835436
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:uRo+vatkESM3VTXjFq0QxIxATOfnVKpZMUV32f8akzHdYApBsoF/q
 tZmKTyFMq3eZWP0eotxPY6w9EoAvMCDyYJiSVRv+C08RiIQ+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx24nhWmthh
 PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe
 gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ
 Npli4SsdQopBu7wyccnYiNVSy5VLZ1r5+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3
 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY25AeRquCP
 JRxhTxHNh7iREdiKA4rEYsdneb4r16kK35+kQfAzUYwyzeKl1EguFT3C/LXdcaNXt59hVuDq
 yTN+GGRKhMQOcGbyDGF2mmxneKJliT+MKoNEJWo+/gsh0ecrkQDBRtTWValrP2Rjk+lR8kZO
 0ES4jApr6U56AqsVNaVdxynolaUsxgEQd1SHuYmrgaXxcLpDx2xXzZeCGQbMZp/6ZFwFWdCO
 kK1c83BOyRzjLCVcTGhp5SunAm/YSc+PV8venpRJeca2OXLrIY2hxPJa99sFq+pk9H4cQ3NL
 yC2QDsW3OtK05NSv0mv1RWe2m/3+MCVJuIgzlyPBjrN0+9vWGKyi2VEA3D/5O0IEouWR0LpU
 JMsy5nHt7Bm4X1geUWwrAQx8FOBuq7t3N702wcH83wdG9OFoSDLQGyoyGsiTHqFy+5dEdMTX
 GfduBlK+LhYN2awYKl8buqZUppxnfG6SYu/DamEMrKih6SdkifdpkmCgmbKgQjQfLUEy/lja
 f93j+7xZZrlNUiX5GXvHLpMuVPa7is/2XnSVfjGI+ePitKjiIquYe5dajOmN7lhhIvd+Vm92
 4sPZqOilkQEOMWjM3a/zGLmBQ1TRZTNLcut8JI/my/qClcOJVzN/NeNm+58INI8wPwO/goKl
 1nkMnJlJJPErSSvAS2Ba2x5aaOpWpB6rHkhOjcrM0ru0H8mCbtDJo9EH3fuVbV4puFl09BuS
 PwJJ5eJDvhVE2yV8DUBd5jt6odlcU3z1w6JOiOkZhk5foJhGFOVqoO1IFO3+XlcFDezuOs/v
 6akilHRT60cSlkwF83Rcv+ukQ+85CBPhOJoUkLUCdBPY0GwopNyIin8g6ZvccEBIBnO3BWA0
 AOSDUtKrOXBudZtotLImbqFv8GiFO4nRhhWGGzS7LCXMyjG/zX8nd8cAbjQJT2EDTH64qSvY
 +lR3srQCvxfkQYYqZd4HpZq0bk6u4nlqYhFw1k2B37MdVmqVO9teyHUwclVu6RR7bZFog/qC
 FmX89xXNLjVasPoFFkdeFgsYuiZjKxGnzDT6bI+IVng5T8x972CCB0AMx6JgS1bDb10LIJ6n
 rtx5J9Is1Sy2kgwL9KLriFI7GDdfHUPXpIuuoweHIK22BEgzUtPYMCEByL7iH1Vhw6g7qX+z
 ueouZf/
IronPort-HdrOrdr: A9a23:3OukwaholloUD1faT/4aFuE4/nBQXzp13DAbv31ZSRFFG/FwyP
 rBoB1L73DJYWgqNE3I+erhBEGBKUmskqKdhrNhQItKPTOWwldASbsC0WKM+UyYJ8STzJ856U
 4CSdkBNDSTNykDsS+S2mDReLxMsbr3ktHYuQ639QYTcegAUdAH0+4WMHf+LqUgLzM2eabRWa
 DsrfZvln6FQzA6f867Dn4KU6zqoMDKrovvZVojCwQ84AeDoDu04PqieiLokys2Yndq+/MP4G
 LFmwv26uGKtOy68AbV0yv2445NkNXs59NfDIini9QTKB/rlgG0Db4REYGqjXQQmqWC+VwqmN
 7Dr1MJONly0WrYeiWPrR7ky2DboUATwk6n7WXdrWrooMT/Sj5/IdFGn5hlfhzQ7FdllM1g0Y
 pQtljp+aZ/PFflpmDQ9tLIXxZlmg6funw5i9MeiHRZTM83dKJRl4oC50lYea1wUx4S0LpXUN
 WGMfusp8q/KTihHjLkVyhUsZCRt00Ib1a7qhNogL3R79BU9EoJuHfwivZv2kvoz6hNOKWs0d
 60RpiApIs+PvP+UpgNdtvpOfHHcVAlYSi8eV56cm6XXJ3uBRr22uvKCfMOlaaXRKA=
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58835436"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=STCVnaxOqb8vQHREv14jZn6KxLFRjqQNEhCa3/S4zBbLULucoXh9eedpUVtjDp38yGnPNkcc924q512xXfR3q6OfLsVhgKv1+mfrwF0HIqcuGpT+g8+MXs5IkITCDas6xaZ1kQFiCPAZCRy4oCvRFjxdotf9dAQNh0bF2lgVm9F/QxtDJ3e3wH485i9iNZdd8iHlaZUp9C8REoEeE8nTzJRRVHQZxVoB7EQArscXAE/uYqVq7bIMW4bG8COa0NNHoaekSaZzHIMBHCbGAswfa0eJgJeJYpuaQ57HOT9t85hG181n6vXE6H9KpcDGUtxdBkY1Lu28PFJOiUhgEAa4Xg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lMwa/hlzZAME7SQ0GcDB5HStU4UmiwLvkHIs62+a9zo=;
 b=GXsZtmowNOcrl0sBaFEGJcVfUFBRDaZJqdhS6z28Oh922/mh+ug9x80wvBEJDEUZObG0d4cOXQSUsSLCQaf30ROO936y76Yx9odjKguZ8zuN5pf+ALO76QNrVhunWKrl3CdmdlosG7oKGzE0/oNtfw5vTglNOL0KE8H3lFzJUiemeqhnKtApRxXL0BzSZLuUE3KuhsXXR0SIG7yPTng8t46dlzQVylKKKgL6VniELgZ3cm1ivh/+8B5e3sXfMw8vIaj4XYlr3w2w9p6T5Xh7cobjxNMeHDYZ0ucrNyPbnmzbHmGFm0Gg6efCsw1pJuarW9zkVCG8Zk7Ox1V24Z1YPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lMwa/hlzZAME7SQ0GcDB5HStU4UmiwLvkHIs62+a9zo=;
 b=E+AbSIvEvJTWkxnOFQLJMmuvk+AFBggyuCd+TMPsZRqzwHZytHEJYJPNftHX6x6gIKzwvSaGqwUCqtUAE8yFLcftpVU/Lj5tIj4CHNC2zY1Fl0Ui/1wHXi+m9bDFZdWKFPwiBHzJ4hTannOW3MJ49Xt0h98ep+jSJRUQDAXgBWs=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@citrix.com>
Subject: [PATCH v5 00/12] libs/guest: new CPUID/MSR interface
Date: Mon, 29 Nov 2021 16:33:43 +0100
Message-ID: <20211129153355.60338-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0092.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::11) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b82d07fa-2b20-405d-6249-08d9b34dd207
X-MS-TrafficTypeDiagnostic: DM6PR03MB4764:
X-Microsoft-Antispam-PRVS: <DM6PR03MB47643EEE14212CCE112EDA668F669@DM6PR03MB4764.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 4kcl1B6XCmLdEynTbYI0Z8zjYPr3vU2PQj6c02KEQHKiTHMuAzwVtfta9jDltY8pKnJqd9mNPJK4/wjnEIPgTNF7ucwMpeO10RKEXoCCcqX3tGpkIXeFKJwb/Cki5pa8XBPnNy2FcYO8nP3+jS8f7u1//LAJ5k5k62ukkxwqwL5EmhsqHtVL0Ugk7cVrsDOp8xV4sB1BsyFYkxS1Vzu4GbP79pnuJRSMwHUB26Oy0uqmIZ9lAmi8MnF8qus9kKooEnD4bzYXfAVv3bAfuwoPETpRgiCE0MYWD85m7yiDcgDKknf6IaZWQWhhVDeK95Gv+K2JtEspKuS89I8BHouuiUoZrgkRmIiyYiI1nd8to5PCmQO2cvKv1sldFow6NJHZjgm3zSiWoGRD+meMMG/BKr2RLS7eR/YkGGWih4bmpH21gJ3ySjbQpsHZrbiwNqNwC6jxUPRLcm1CgcTLBEFyERmPR2Sv1Rsfnp4dgHw9M7+tBIZBTnxMJvstweHPwxBd1uIRpFvaEflSQTO3WGoOhJeUh0AlCRU+15BwraU2dNRIf3v+toZlYcwEY4B0vXJZdgvgJ6bV6zSEgH0c61GYOAfyD/0JR+HbKhqe7v/7jHRSFKn86T9GXDP7CBeyQGpz1q4N0xhS8CBy8v7/bImaYA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(4326008)(2906002)(1076003)(66476007)(6486002)(82960400001)(38100700002)(186003)(83380400001)(956004)(2616005)(316002)(6496006)(6916009)(26005)(54906003)(6666004)(107886003)(36756003)(66946007)(86362001)(508600001)(8676002)(8936002)(66556008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZUF5eTdSQ1hQODJrV2RPNzVhMTdwR3Q4R2RyVlNaNXAxTDhhRC8rOThyRzhF?=
 =?utf-8?B?aFlzMUpoS28zaWthT3F4RVdVZHFFL0wycnkvN2dDalowVlFSVGR1dlJmM3py?=
 =?utf-8?B?eFg5ZXBOeWZpaGhMNVc0SzEzd29pOGpHMU82QXpKNkFUZVdsVDZ5aXRmeHNZ?=
 =?utf-8?B?bWtHNWtCVEtXNzVRblJaeWZrQ21YdVRPTHFCUE9XTU44OFpUWmFvbW5Yc3V4?=
 =?utf-8?B?UW44enZvNmxCYWFEWjFCTFlDT3RXNnppUFhKczR1bEJBYjVxd0ZlRHJYS1lW?=
 =?utf-8?B?UTA1RE9reE05WHFwTE9rZXJwREc4b3NoQ2N4a2EyTkV5SDlqS1RYdFJLWlAw?=
 =?utf-8?B?OGJscTJUQjVQMUhhTnN5QVRsNU9mQndIeVRBdWpiaGtDU3AyeFJ6aHZOVVo3?=
 =?utf-8?B?YjBtTXVkR0M5NndNOElQZlpVTnRsa0d4eEdnNHRvZFR6b0xLZUhtT2ptK3ph?=
 =?utf-8?B?NThCcndqWFlGOW52c1RUWGRzeGpHUkdrUEpIZzNnK05FQzlzYWg4Z2NtVG56?=
 =?utf-8?B?YlR2d3pQUzIzZlFWZy85RlVTeFRyd0cveUJZazkyZ0NydUpMS3VmbmZrTGFB?=
 =?utf-8?B?Q3JEMVJCY2dVdjRwS2M3eS9LbDJUMVFiZkJ2dkYrd2J4S25yb3JmMmh1MWN6?=
 =?utf-8?B?dkFWSW8yR3RhR0toNVhZaVZxSHUvS2hBQVg3dzQrKzdxODEyUlZaUVhVSzBh?=
 =?utf-8?B?QWgxaGFXcS9RS09SZk0yS1BLVDBTSkhnK1d1cExteCsydnVCbERTcC9LRFM2?=
 =?utf-8?B?d2s0eS9hbkI0OFQwSjdVaGhzUTN5bmppMFBMWmhrNTFLbkdIL2Q3K2JhWVEv?=
 =?utf-8?B?UUhXTEJxcXJFZ21zK1FrbWZKdkN1ajlLTnpycjZXTTlPVVJhb3BNUUNIT0hw?=
 =?utf-8?B?TG0waFBPZmlpYTE1dVFJak10bVpYdCtpMDAyc0lNSWY4alhTVE1GUDJpN2F3?=
 =?utf-8?B?MGorbHI4YjZxNlY4ay9LVFNwYXJOVWtKMWhWYnNLcHhLYlBoMmZxQkphL0th?=
 =?utf-8?B?cGtxeDVITjVlOFpKdFBzeFhBRUpZYTdHZjZZdVBSTEI5Q2ViOFMwK0FPdkg3?=
 =?utf-8?B?RENJYnhkTGJ4eURXS29IWVZpUjJUTEcwSEpSc0U3WmVUaTdqTmplM0MraHJB?=
 =?utf-8?B?bkVodThmMkUrcGpBektRSFIyYmlhTkpPckloVElHckM3WTZMMU9OcXYxSzNi?=
 =?utf-8?B?N1htL0duWHR5SmVpTEpVUFhOMldEYk9yT3pRYnlkNWlwUzl6OWpwVDNCUll1?=
 =?utf-8?B?YzFqaExUUXFTc21ZV3BEUmFBZktPNDh3YzlQTVUvdEVFTW1KdmVzK3hQQlNT?=
 =?utf-8?B?WW5QTE9PcFhZSjZZNnI4NTRPb2cyWkc2MWgwdXY0bWdGUUpRVk5NWGxuNjdk?=
 =?utf-8?B?VjFhWnBDYyswc2l0QWxzS2JxbzBVYUtnTlp0YnYvdmF6VDVrcmZrSWorQndv?=
 =?utf-8?B?YUVYc0N4dnpzSjVyV2tDV0F3NTZIRmlsNHVpMWdLd2JHWTBaN2E2Zm9SK25S?=
 =?utf-8?B?YVZPQzRVS0E5UVlmOEJRNkNNM0VsdkYrQWoyYUdlWUJ5MlZtQjlYU1Vhc0ZK?=
 =?utf-8?B?VzBuK284b0pZQ2NVbnlHTmhNRFArNUMvc2MyY2JVVkIvcVBHbjRkZ2Zxa2hI?=
 =?utf-8?B?WTJFS0tMMmNLZi9uTzZSa1FWUG9NTDdneW5YZDhUejZEOWZTa1RzSXN2aXh2?=
 =?utf-8?B?T1BzT04zQ1dVMVJmOFZVVzcvaFYzOGhRMkgrekZQWmQ4SkQvYi9TS2MvR2s0?=
 =?utf-8?B?U05IS3NGYjJvYUp2bjRkSVZHa0N4UlhlWDhMalZOd3VqVnBmS01IbGdCTzM0?=
 =?utf-8?B?S00waGxiWVNJT25NRHBoa1E1WmgwY1EycjlWc0w4V3RIMVFJcHBQRVF0Z2RI?=
 =?utf-8?B?bzFWc2oycmlDaGdQbWQzUHR5aDZtclVMNHBHcnAxeW5HdTdJWkkzUll6cnBD?=
 =?utf-8?B?K0JiZWFOTWhKRUVXa2dVTW9nckE2R1FhREtHbUZvRUdtNlRMTDYwUU9yTnNk?=
 =?utf-8?B?SFdYV0FWVUhsaWRnWUNuVmU3dlNLK0IvUU9wVXpZVCtSU0p3akZudTJFTXdI?=
 =?utf-8?B?ZW05T25EcXRWSTU3cWFMbTVFaXJzTjJnTGduVzZFZ2dWQVhqN2gvcnRvVFhi?=
 =?utf-8?B?MkMwUGtVenI0YmpEMEJYcHNpWndxU1gxb1YwTWRrRmZzUm1adXlkUTF1YzJt?=
 =?utf-8?Q?u4r/8yd5D6hr9jGJYSFJooI=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: b82d07fa-2b20-405d-6249-08d9b34dd207
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:06.8323
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5qas1iEmimejTT8KA7sXhnCVJLSG7Zh0enH0Q9gcoyK5P1C0m8QjYw4XtYeJzdk2gjgn11MGhMvhe4o3AYbJmw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4764
X-OriginatorOrg: citrix.com

Hello,

The following series introduces a new CPUID/MSR interface for the
xenguest library. Such interface handles both CPUID and MSRs using the
same opaque object, and provides some helpers for the user to peek or
modify such data without exposing the backing type. This is useful for
future development as CPUID and MSRs are closely related, so it makes
handling those much easier if they are inside the same object (ie: a
change to a CPUID bit might expose or hide an MSR).

In this patch series libxl and other in tree users have been switched to
use the new interface, so it shouldn't result in any functional change
from a user point of view.

Note there are still some missing pieces likely. The way to modify CPUID
data is not ideal, as it requires fetching a leaf and modifying it
directly. We might want some kind of interface in order to set specific
CPUID features more easily, but that's to be discussed, and would be
done as a follow up series.

The addition of a helper to generate compatible policies given two
inputs has been removed from this iteration, sine Andrew Cooper has
posted a patch to set the foundation for that, and further work should
be done against that baseline.

Thanks, Roger.

Jan Beulich (1):
  x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf
    contents

Roger Pau Monne (11):
  libs/guest: move cpu policy related prototypes to xenguest.h
  libx86: introduce helper to fetch cpuid leaf
  libs/guest: allow fetching a specific CPUID leaf from a cpu policy
  libx86: introduce helper to fetch msr entry
  libs/guest: allow fetching a specific MSR entry from a cpu policy
  libs/guest: make a cpu policy compatible with older Xen versions
  libs/guest: introduce helper set cpu topology in cpu policy
  libs/guest: rework xc_cpuid_xend_policy
  libs/guest: apply a featureset into a cpu policy
  libs/{light,guest}: implement xc_cpuid_apply_policy in libxl
  libs/guest: (re)move xc_cpu_policy_apply_cpuid

 tools/include/libxl.h                    |   6 +-
 tools/include/xenctrl.h                  |  99 ----
 tools/include/xenguest.h                 |  77 +++
 tools/libs/ctrl/xc_bitops.h              |   6 +-
 tools/libs/guest/xg_cpuid_x86.c          | 647 ++++++++---------------
 tools/libs/guest/xg_private.h            |   1 +
 tools/libs/light/libxl_cpuid.c           | 233 +++++++-
 tools/libs/light/libxl_internal.h        |  26 +
 tools/misc/xen-cpuid.c                   |   1 +
 tools/tests/cpu-policy/test-cpu-policy.c | 224 +++++++-
 xen/arch/x86/cpuid.c                     |  55 +-
 xen/include/xen/lib/x86/cpuid.h          |  26 +
 xen/include/xen/lib/x86/msr.h            |  20 +-
 xen/lib/x86/cpuid.c                      |  91 ++++
 xen/lib/x86/msr.c                        |  41 +-
 15 files changed, 948 insertions(+), 605 deletions(-)

-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:35:34 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:35:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234634.407193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrige-0004TI-85; Mon, 29 Nov 2021 15:35:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234634.407193; Mon, 29 Nov 2021 15:35:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrige-0004T5-3q; Mon, 29 Nov 2021 15:35:24 +0000
Received: by outflank-mailman (input) for mailman id 234634;
 Mon, 29 Nov 2021 15:35:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrigc-0004Rj-Q5
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:35:22 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f5479fb1-5129-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 16:35:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5479fb1-5129-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200121;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=KZ2QPDqHuvFKYGq4sr1LmBzyPvDF/8vgwMdQsnoM0Qs=;
  b=TG+TQte2pCaLX0KC94SE636X+S8IxwBJWqZFPThFbafFSBii9iiuf2X/
   AIagqjCcsnNXSMXFzeg84rrtpwstu2knrp/P5GMl2GTquWRVq0c9av5mZ
   SA7LYIGYeN04FF3YsuVvzxwnIbZLYRyZsrK60unm2vVG28wgMajZR86WB
   A=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: N1EAHw+08mFsOdQ1iZYPw4833oVGImLC8KRtc2Ve/J+/6rP5Q+3JOnkcjfUfRVRIlCXQtBfljn
 bqHKxsQV2YVL7sxVCk9Pte7n8HUCmOIKm4Zk5oS6GD2o4QvXH6Y9IKO1ZD/mNMJSlKsQwM4AoQ
 2ABcyRol4szNyRaiK9AmGJ7dNe9joDaWx2AP3WFQpWV6vAcOcGeFCJkNW/hMyjIOA+3kQVNxv9
 cuqgJWqWgMNfA4pDzodLJ+bX2QHDooDpr5YC1WFyI4kKQC83+1Y8N3vS2B6maq1k6or6xriTkm
 usvRWx2+RjBKOI61uHjIIPnu
X-SBRS: 5.1
X-MesageID: 58333437
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:sX9EKqBo6frOMxVW/8Tkw5YqxClBgxIJ4kV8jS/XYbTApDkj0zZSz
 mJLW2nTaa6IZWP2KNBwO9ix909VuZLQn9AwQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX5400M7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/gSSnk49K1
 NF3s6PhEAsrYbLGwKNaXEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTUO5ji95lNMD2FIgepmth3XfSCvNOrZXrHvWRvoQEh2hYasZmHcj7Y
 PgEThRWV1fmQkRIIHIJJqMBtbL97pX4W2IB8w/EzUYt2EDMyCRh3b6rN8DaEvSLWsd9jkuev
 njB/WnyHlcdLtP34SqI9Degi/HCmQv/WZkOD/uo+/hymlqRy2cPThoMWjOTo/O0l0q/UNJ3M
 FEP92wlqq1ayaCwZoCjBVvi+ifC50NCHYoLewEn1O2T4qDFzQrGPXQAdDh+OYUqtpApT2Rtk
 VDcyrsFGgdTmLGSTHuc8JKdojWzJTUZIAc+WMMUcecWy4K9+d9u13ojWv4mSffo1YOtRVkc1
 hjT9HBm74j/m/LnwElSEbrvpzu37qbEQQcujuk8djL0t1gpDGJJimHB1LQ60RqiBNvBJrVil
 CJd8yR70AzpJcvT/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZZdI2O2O
 hSK6V85CHpv0J2CN/Ufj2WZUZpC8EQdPY69CqC8giRmP/CdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l4Y9f5yrI9YY112aNTk+bD5
 HamXUFEjlH4gBX6xc+iMxiPsZvjAsRyq2wVJyspMQr60nQve9/3vqwea4E2bf8s8+k6lax4S
 PwMesOhBPVTS2uYp2RBPMel9IEyJg62gQ+uPja+ZGRtdZBXWAGUqMTveRHi9XdSA3Pv59c+u
 bCpyijSXYEHG1Z5FM/TZf/2lwGxsHERlfhcRUzNJtUPKkzg/JIzc376j+MtItFKIhLGn2PI2
 wGTCBYehO/Mv45qr4WZ2fHa99+kSrIsEFBbEm/X6aeNGRPbpmfzk5VdVOuofCzGUD+m8quVe
 ugIner3N+cKnQgWvtMkQapr1683+/Dmu6ReklZ/BHzOYlmmVuFgL32B0ZUdv6FB3OYE6w6/W
 0bJ8dhGI7SZfsjiFQdJdgYia+2C09ASmyXTsqtpcBmruncv8erVS1hWMjmNlDdZfel8P44Sy
 Os8vNIbtl6kgR0wP9fa1i1Z+gxg9JDbv3nLYn3CPLLWtw==
IronPort-HdrOrdr: A9a23:KW97yKlwB+bOkUgrQ4IOB5BYp2DpDfO2imdD5ihNYBxZY6Wkfp
 +V88jzhCWZtN9OYhwdcLC7WZVpQRvnhPpICO4qTMuftWjdyRaVxeRZg7cKrAeQfREWmtQtt5
 uINpIOc+EYbmIK/PoSgjPIaurIqePvmMvD5Za8vgdQpENRGttdBm9Ce3im+yZNNW577PQCZf
 +hDp0tnUveRZ1bVLXwOlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJr3CQKR0BsyWy5Ghe5Kyx
 mIryXJooGY992rwB7V0GHeq7xQhdva09NGQOiBkNIcJDnAghuhIK5hR7qBljYop/zH0idmrP
 D85zMbe+hj4XLYeW+45TPrxgnbyT4rr0TvzFeJ6EGT6PDRdXYfMY5slIhZehzW5w4Lp9dnyp
 9G2Gqfqt5+EQ7AtD6V3amIazha0m6P5VYym+8aiHJSFaEEbqVKkIAZ9ERJVL8dASPB7pw9Gu
 UGNrCT2B9vSyLYU5nlhBgs/DT1NU5DWytuA3Jy9fB96gIm3EyQlCAjtYgidnRpzuNKd3AL3Z
 WCDk1SrsA9ciYhV9MLOA4we7rFNoXze2O4DIvrGyWeKEgmAQOEl3el2sR/2AmVEKZ4uKfa3q
 6xFm9liQ==
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58333437"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WmuS7BIW/ZXbC65G38oreFJbP16lXADhWLCk/GzFfEW3WHZTqT4idLFLdT/Nc+HfcXVU4tYI3x8cyG9ddcSb2lvPbp1gyUkPKmAXBB8HsjtTmOHhUqVgSArgQJRgA1okPnvWqXRiPAgDN2XUz9MxpBnGBfdo+G6u5yUjN/fbEHacnLjx94t2xg424PYD4Jyqbkgg01+uA7S5oBI8bijTvN1ZzmOL1E7iL4OTtyREYBG3dnXwBfr/6EQCofbSRazD0uAhf/7uX1uaLzl4F6cVt0iPJ788GmuuM6CN0yrupeGK//+tToYvRy04PfEyNWfiJ/Tjmqr4t0MkEYqthH80Fw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ocqDusQM15nBYpXPiTHX8gTIwyIJGtnISfXG9CjWvXY=;
 b=ZZKspgiTG6OGeJibgr94pvxdelN1Z8gtnJ1o7wJuqCvr8Fqw8Twigry0piILRcBSL/CdqxuD6TqPn79JWbZIyPtr7XP4z1znrUi0bH3a8ISXMTpQsXxM2PxB+eHQP0OjWMUR0+LDrx5oRwGkbVQfS/6gHOebqp2ytjnYTtkpbuCYADA/K0Y5UC3YnIQbLnLsM8Xw2L22snDmVbkd8eiVoyS/xqUDrlV86TJjurd5/wLlgSAEAXRqLCwK374ztFAIlElBP6XAnhiuTAkAJSZf6YEsaDAPMNYKfdhCR8ckWjm53ezXow7mp5q/Q4PGLQkS3C2T3+JKmF/a6apd5eZYrw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ocqDusQM15nBYpXPiTHX8gTIwyIJGtnISfXG9CjWvXY=;
 b=Au3BCTSW7mB9NNzM6wPMSs4eD2pl5iWud8pZx46+HbPsIsqOUT/iLAhHW/aQFj8JWXTeatuoC4zlf+22eppRC3/35pZRMkUGm8jMhKLH65dMMDWsjUtK01EIs0U4CJ9Cn+UZ1j5UVjb+5mZU+bGsiKwjQ5JCxh9tVFhz9cLvXn0=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH v5 02/12] libx86: introduce helper to fetch cpuid leaf
Date: Mon, 29 Nov 2021 16:33:45 +0100
Message-ID: <20211129153355.60338-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0146.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:1::9)
 To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e3d298cb-a75f-4f90-e36e-08d9b34dd7d7
X-MS-TrafficTypeDiagnostic: DM6PR03MB4764:
X-Microsoft-Antispam-PRVS: <DM6PR03MB47649C9DA9CC5B4C192606A68F669@DM6PR03MB4764.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:530;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: LKvds+rigo8fVhvhLJhNTbT514VpG/uKE7gwYEEXzCGXgsiKLbEtcp/VROLNV/N39U3QQ4+YMyWHqZZ+mcx7BqKWyJhlvmWs5OmJGWmSk5HKVIobNSwBbCGIYN+Q3Q4ONW3lkLE50JWbDGvs//oRLUEbmcQ7gnXdKnHTuXcB2maNkb+5zifkTGNQeOGhnMD/UBxcq8I5xpw8zR8UWIX+vE8p7A70i47kD7bKLSg//L4N4F9oLDbYS2HdeGlCGnc09cOk2W4ZZ3cwFK/rqnyCH4YhMhPVjD0ulD2tQEYnn8PxwZfQ3mh1XFXAQfosw2HTGMdp2ulGCWwEE/Anm1KZKJTdnEmys4HTOA79uxiGrqWRUewjRGqXJEek4yTzmg480JCakAAONUeAZAZjgNwEkCbgfIybCy0zeCt6rxXYRyBk2G32B/Fp6jMEiAT42GRJp0riVQDPO4IEMCf4NXVyGZaCoV7TeeuVsOYkBZNC78g0yOKhirTLUPWBYlP2Qyhp1uqftFEBOHiHfy+7gkpLJhd+85ZIfS3jvFKUo+ilmgvoRLyJeaJD5jC3yqxz2kN0tsbEnJsH4RPVcwDGLer6XayLFz7KI0n7CBOiYe6xaufJ9+CwZUxiXPNEi/ddGjlQqKpvPP64q+XHLj8hPHF72g==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(4326008)(2906002)(1076003)(66476007)(6486002)(82960400001)(38100700002)(186003)(83380400001)(956004)(2616005)(316002)(6496006)(6916009)(26005)(54906003)(6666004)(36756003)(66946007)(86362001)(508600001)(8676002)(8936002)(66556008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VTlEOE9lOTArTmwyaHpWQ1dlYWNZMG5lUG12cmRrb0gxSk5wL2Y2Z1hGUDBp?=
 =?utf-8?B?ZjhYMXRnRkp0cW8zMVFVQTE4cHpib0tlNVhsSnM2NnJXd3lnNi9ySlJsSW15?=
 =?utf-8?B?ZlMzSjBRKzVIcjRqV1Zkajd3L2FzeGs0elJ2L1FSOGxPb0pHQmRHZ3hGdWZM?=
 =?utf-8?B?VCszaVlsdkdOL2IrN2U1U1M2eG5rU0xlZDEyRk8zeFd6N2pRTGFZSEp1dkpD?=
 =?utf-8?B?OGFMZEhWNlo1Wm9UWHMwNkZpaWxQVmtPNG1MUUg0V2U3TldBa0tWQUo0MmZl?=
 =?utf-8?B?UUJQMUp3cmtMTTRqYmZmdG1vVThjMElRSEM3RitHMlZlL1YvVTdCZlN2S0Jt?=
 =?utf-8?B?R3R6Z3hyekVKRGk0SnNiNmlPQVZNUk1YS2xLNXFyMytobVdYMHNzNGo4V25G?=
 =?utf-8?B?dW1iTlVJZThCbm5rVVQ5d3FCV2xvbFhmZk10ZTBuQm5iS3FsWFlxelVmR0RO?=
 =?utf-8?B?LzBmVWdnS3RmKyszZFM2bDUxSjlNNTNuMW5kVkFBTFBZNmZVdkF6ZW1keDE2?=
 =?utf-8?B?bHYveFVIbWxzOXE2RDNDRDl5cXV2Vk5RalhHbC9PZDZLbllQOW1FT29LeGRn?=
 =?utf-8?B?MXE2STFmMTI2WGJFQlo5ZFRSbnNwSU1Uc3NtaEczWmdJT3YxT0c2SU5NUWda?=
 =?utf-8?B?N3VneDIzZzJmSSt2amJOcDh5c3Faa2ZzbkM4M0taWTJOUUpZUTJhUVNnajBV?=
 =?utf-8?B?WnVVSG9MVzExaWgyQmw4YnBtZmpPbHpRRUc0MmluaEgrRytJNWVybnJCV2Nv?=
 =?utf-8?B?UUZyU1Uyc2oxMzMyaW1FUmQxWW1LWlY5ZW9Odlg1U2RXc3FVbEhVYkEvSXJj?=
 =?utf-8?B?aktvNXhRTnQzK0djYnlYMDU0SDVrdVZ3cHNJRG1adDhqakp2NHV6V0tEQWVU?=
 =?utf-8?B?SStwWUtaUTAwWVZxT2tQU2J6K3U4ajZjcm9KZkgrYzlUQ0xpSTJoenI5Ym5E?=
 =?utf-8?B?Y091andLYXdXaUYzTFpQRFlIcmVReWZsSy9lUnFyT3AzZzh2dWEvTUdDeHBK?=
 =?utf-8?B?MkJoL0hYVnkrd2RDODBMNTJqV1J6ODFoNWg2N29YSG1NTHNZMFZaMFhqdUNC?=
 =?utf-8?B?WmhCd0w2MlREN0JMdE1QdkVsQytGTXB0dDRyamxjU3ppckFOemJ1VEdUQThW?=
 =?utf-8?B?Um92YVo3cVFRMXJodVYzMzVpME9wQVg4R1ViZ3lFQTc3Rm5yMUtYZTdubkNm?=
 =?utf-8?B?NXlEckpSTWRZVGExWkpFdDhwdi91ejdqdERVN2NLOFgyVWJnMVcvaTFSK0pM?=
 =?utf-8?B?YUVEYkZFTlM0MFVHdUd1aExiNnhuV2E4dTl3OUtNUTUrYnY1YUpRLzZWZ1ZH?=
 =?utf-8?B?ci9NYUVLME9Xc2N4aGJib0ErbGhvZEJKcytyaElxU0RCemJobEJKdXVqYnlw?=
 =?utf-8?B?MHZmKys0WXZvZEQ4YkZhbVZYay9RcW1jZkJjVjhBbzFuam5EYUJLMTNUV3V5?=
 =?utf-8?B?d2VkVXZUOXMvMFB3aGhTS2d3QVp5dnZ2cS90V0RiNkd3V1hhTkFoRm41TlJh?=
 =?utf-8?B?V0lLUFJXRHBlMDlyaXBRUDZmVWtVU3g0aWcrQzBBb1JhRmZHNGhFcXhZUE5N?=
 =?utf-8?B?L2MzMXo1cG1ObFQrOHRaK3MxdEZVclpndnNZbXl6aFcxcUZQM1FvSm9ZcEhS?=
 =?utf-8?B?dlJ5Zk81dVNHM3hyRExqd3FwY2IwbUZ3U2s4R1p5bU1LTkwyUkJGSG1ubjRH?=
 =?utf-8?B?aW9rWjdhakxvZ2lzSzNndE9OTVk0MlZaMWk1aEdvV29oSCs1VG1EeWZxOG9q?=
 =?utf-8?B?bXVjZ0tMS1BkdzlBNDBDNGFwcm1MK0Z0K3grVVptaUpweVpMOVY0SmJBU1R4?=
 =?utf-8?B?d0cxMlIzZUI0eVk5Y3FnbFJKQU9oQlRhSkNyVElIU3NlTHk4UjAwVC9ETlhK?=
 =?utf-8?B?aVZaNHRGUHhjRTJKOE5wRUpBMUpoRVZGK3Uyd1BhRGtRbkJzV0xiRFRqMUZ0?=
 =?utf-8?B?cHZ6Mk1FRHpwdXozMUU3VUNaRHREemkybnpOT1V0T29nb2hXdzErSHNpaHFw?=
 =?utf-8?B?K2ZjTW1GQjYrT3NPV0R5a25HTlNKMXdIRCtHZXhDcFY4NXlUQVlQbzJmcG9F?=
 =?utf-8?B?MGRyYVB4TEVXMGZIU1NhbmpOREl4MEpMak1zT2RPSGhFWE90Uys4UU5SajBO?=
 =?utf-8?B?Qi9xMEY1YjhlbVliaFJqd0RUVlNWSk5UamhReW1Cb3Z1eWVURTlTeXdPTUQ1?=
 =?utf-8?Q?vTWGJSaS1vZ/+IAvbd0uJc4=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: e3d298cb-a75f-4f90-e36e-08d9b34dd7d7
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:16.5456
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PT6sVp13dFMHDtAjollTDLhZ/OSnYgthJDmlsGwUpGKhOIUFIOGfyJgv4z2DmylhvWdnxYKKMHrZ+0vu3HoNMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4764
X-OriginatorOrg: citrix.com

Introduce a helper based on the current Xen guest_cpuid code in order
to fetch a cpuid leaf from a policy. The newly introduced function in
cpuid.c should not be directly called and instead the provided
x86_cpuid_get_leaf macro should be used that will properly deal with
const and non-const inputs.

Also add a test to check that the introduced helper doesn't go over
the bounds of the policy.

Note the code in x86_cpuid_copy_from_buffer is not switched to use the
new function because of the boundary checks against the max fields of
the policy, which might not be properly set at the point where
x86_cpuid_copy_from_buffer get called, for example when filling an
empty policy from scratch.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v4:
 - Rename _x86_cpuid_get_leaf to x86_cpuid_get_leaf_const.

Changes since v3:
 - New in this version.
---
Regarding safety of the usage of array_access_nospec to obtain a
pointer to an element of an array, there are already other instances
of this usage, for example in viridian_time_wrmsr, so I would assume
this is fine.
---
 tools/tests/cpu-policy/test-cpu-policy.c | 75 ++++++++++++++++++++++++
 xen/arch/x86/cpuid.c                     | 55 +++--------------
 xen/include/xen/lib/x86/cpuid.h          | 19 ++++++
 xen/lib/x86/cpuid.c                      | 52 ++++++++++++++++
 4 files changed, 153 insertions(+), 48 deletions(-)

diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-policy/test-cpu-policy.c
index ed450a0997..3f777fc1fc 100644
--- a/tools/tests/cpu-policy/test-cpu-policy.c
+++ b/tools/tests/cpu-policy/test-cpu-policy.c
@@ -570,6 +570,80 @@ static void test_cpuid_out_of_range_clearing(void)
     }
 }
 
+static void test_cpuid_get_leaf_failure(void)
+{
+    static const struct test {
+        struct cpuid_policy p;
+        const char *name;
+        uint32_t leaf, subleaf;
+    } tests[] = {
+        /* Bound checking logic. */
+        {
+            .name = "Basic max leaf >= array size",
+            .p = {
+                .basic.max_leaf = CPUID_GUEST_NR_BASIC,
+            },
+        },
+        {
+            .name = "Feature max leaf >= array size",
+            .p = {
+                .basic.max_leaf = CPUID_GUEST_NR_BASIC - 1,
+                .feat.max_subleaf = CPUID_GUEST_NR_FEAT,
+            },
+            .leaf = 0x00000007,
+        },
+        {
+            .name = "Extended max leaf >= array size",
+            .p = {
+                .extd.max_leaf = 0x80000000 + CPUID_GUEST_NR_EXTD,
+            },
+            .leaf = 0x80000000,
+        },
+
+        {
+            .name = "Basic leaf >= max leaf",
+            .p = {
+                .basic.max_leaf = CPUID_GUEST_NR_BASIC - 1,
+            },
+            .leaf = CPUID_GUEST_NR_BASIC,
+        },
+        {
+            .name = "Feature leaf >= max leaf",
+            .p = {
+                .basic.max_leaf = CPUID_GUEST_NR_BASIC - 1,
+                .feat.max_subleaf = CPUID_GUEST_NR_FEAT - 1,
+            },
+            .leaf = 0x00000007,
+            .subleaf = CPUID_GUEST_NR_FEAT,
+        },
+        {
+            .name = "Extended leaf >= max leaf",
+            .p = {
+                .extd.max_leaf = 0x80000000 + CPUID_GUEST_NR_EXTD - 1,
+            },
+            .leaf = 0x80000000 + CPUID_GUEST_NR_EXTD,
+        },
+    };
+    const struct cpuid_policy pc;
+    const struct cpuid_leaf *lc;
+    struct cpuid_policy p;
+    struct cpuid_leaf *l;
+
+    /* Constness build test. */
+    lc = x86_cpuid_get_leaf(&pc, 0, 0);
+    l = x86_cpuid_get_leaf(&p, 0, 0);
+
+    printf("Testing CPUID get leaf bound checking:\n");
+
+    for ( size_t i = 0; i < ARRAY_SIZE(tests); ++i )
+    {
+        const struct test *t = &tests[i];
+
+        if ( x86_cpuid_get_leaf(&t->p, t->leaf, t->subleaf) )
+            fail("  Test %s get leaf fail\n", t->name);
+    }
+}
+
 static void test_is_compatible_success(void)
 {
     static struct test {
@@ -685,6 +759,7 @@ int main(int argc, char **argv)
     test_cpuid_serialise_success();
     test_cpuid_deserialise_failure();
     test_cpuid_out_of_range_clearing();
+    test_cpuid_get_leaf_failure();
 
     test_msr_serialise_success();
     test_msr_deserialise_failure();
diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 151944f657..4db2df3b52 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -764,48 +764,16 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
     switch ( leaf )
     {
     case 0 ... CPUID_GUEST_NR_BASIC - 1:
-        ASSERT(p->basic.max_leaf < ARRAY_SIZE(p->basic.raw));
-        if ( leaf > min_t(uint32_t, p->basic.max_leaf,
-                          ARRAY_SIZE(p->basic.raw) - 1) )
-            return;
-
-        switch ( leaf )
-        {
-        case 0x4:
-            if ( subleaf >= ARRAY_SIZE(p->cache.raw) )
-                return;
-
-            *res = array_access_nospec(p->cache.raw, subleaf);
-            break;
-
-        case 0x7:
-            ASSERT(p->feat.max_subleaf < ARRAY_SIZE(p->feat.raw));
-            if ( subleaf > min_t(uint32_t, p->feat.max_subleaf,
-                                 ARRAY_SIZE(p->feat.raw) - 1) )
-                return;
-
-            *res = array_access_nospec(p->feat.raw, subleaf);
-            break;
-
-        case 0xb:
-            if ( subleaf >= ARRAY_SIZE(p->topo.raw) )
-                return;
-
-            *res = array_access_nospec(p->topo.raw, subleaf);
-            break;
-
-        case XSTATE_CPUID:
-            if ( !p->basic.xsave || subleaf >= ARRAY_SIZE(p->xstate.raw) )
-                return;
+    case 0x80000000 ... 0x80000000 + CPUID_GUEST_NR_EXTD - 1:
+    {
+        const struct cpuid_leaf *tmp = x86_cpuid_get_leaf(p, leaf, subleaf);
 
-            *res = array_access_nospec(p->xstate.raw, subleaf);
-            break;
+        if ( !tmp )
+            return;
 
-        default:
-            *res = array_access_nospec(p->basic.raw, leaf);
-            break;
-        }
+        *res = *tmp;
         break;
+    }
 
     case 0x40000000 ... 0x400000ff:
         if ( is_viridian_domain(d) )
@@ -820,15 +788,6 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
     case 0x40000100 ... 0x400001ff:
         return cpuid_hypervisor_leaves(v, leaf, subleaf, res);
 
-    case 0x80000000 ... 0x80000000 + CPUID_GUEST_NR_EXTD - 1:
-        ASSERT((p->extd.max_leaf & 0xffff) < ARRAY_SIZE(p->extd.raw));
-        if ( (leaf & 0xffff) > min_t(uint32_t, p->extd.max_leaf & 0xffff,
-                                     ARRAY_SIZE(p->extd.raw) - 1) )
-            return;
-
-        *res = array_access_nospec(p->extd.raw, leaf & 0xffff);
-        break;
-
     default:
         return;
     }
diff --git a/xen/include/xen/lib/x86/cpuid.h b/xen/include/xen/lib/x86/cpuid.h
index a4d254ea96..050cd4f9d1 100644
--- a/xen/include/xen/lib/x86/cpuid.h
+++ b/xen/include/xen/lib/x86/cpuid.h
@@ -431,6 +431,25 @@ int x86_cpuid_copy_from_buffer(struct cpuid_policy *policy,
                                uint32_t nr_entries, uint32_t *err_leaf,
                                uint32_t *err_subleaf);
 
+/**
+ * Get a cpuid leaf from a policy object.
+ *
+ * @param policy      The cpuid_policy object.
+ * @param leaf        The leaf index.
+ * @param subleaf     The subleaf index.
+ * @returns a pointer to the requested leaf or NULL in case of error.
+ *
+ * The function will perform out of bound checks. Do not call this function
+ * directly and instead use x86_cpuid_get_leaf that will deal with both const
+ * and non-const policies returning a pointer with constness matching that of
+ * the input.
+ */
+const struct cpuid_leaf *x86_cpuid_get_leaf_const(const struct cpuid_policy *p,
+                                                  uint32_t leaf,
+                                                  uint32_t subleaf);
+#define x86_cpuid_get_leaf(p, l, s) \
+    ((__typeof__(&(p)->basic.raw[0]))x86_cpuid_get_leaf_const(p, l, s))
+
 #endif /* !XEN_LIB_X86_CPUID_H */
 
 /*
diff --git a/xen/lib/x86/cpuid.c b/xen/lib/x86/cpuid.c
index 8eb88314f5..924f882fc4 100644
--- a/xen/lib/x86/cpuid.c
+++ b/xen/lib/x86/cpuid.c
@@ -493,6 +493,58 @@ int x86_cpuid_copy_from_buffer(struct cpuid_policy *p,
     return -ERANGE;
 }
 
+const struct cpuid_leaf *x86_cpuid_get_leaf_const(const struct cpuid_policy *p,
+                                                  uint32_t leaf,
+                                                  uint32_t subleaf)
+{
+    switch ( leaf )
+    {
+    case 0 ... CPUID_GUEST_NR_BASIC - 1:
+        if ( p->basic.max_leaf >= ARRAY_SIZE(p->basic.raw) ||
+             leaf > p->basic.max_leaf )
+            return NULL;
+
+        switch ( leaf )
+        {
+        case 0x4:
+            if ( subleaf >= ARRAY_SIZE(p->cache.raw) )
+                return NULL;
+
+            return &array_access_nospec(p->cache.raw, subleaf);
+
+        case 0x7:
+            if ( p->feat.max_subleaf >= ARRAY_SIZE(p->feat.raw) ||
+                 subleaf > p->feat.max_subleaf )
+                return NULL;
+
+            return &array_access_nospec(p->feat.raw, subleaf);
+
+        case 0xb:
+            if ( subleaf >= ARRAY_SIZE(p->topo.raw) )
+                return NULL;
+
+            return &array_access_nospec(p->topo.raw, subleaf);
+
+        case 0xd:
+            if ( !p->basic.xsave || subleaf >= ARRAY_SIZE(p->xstate.raw) )
+                return NULL;
+
+            return &array_access_nospec(p->xstate.raw, subleaf);
+        }
+
+        return &array_access_nospec(p->basic.raw, leaf);
+
+    case 0x80000000 ... 0x80000000 + CPUID_GUEST_NR_EXTD - 1:
+        if ( (p->extd.max_leaf & 0xffff) >= ARRAY_SIZE(p->extd.raw) ||
+             leaf > p->extd.max_leaf )
+            return NULL;
+
+        return &array_access_nospec(p->extd.raw, leaf & 0xffff);
+    }
+
+    return NULL;
+}
+
 /*
  * Local variables:
  * mode: C
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:35:41 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:35:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234635.407204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigl-0004rh-IW; Mon, 29 Nov 2021 15:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234635.407204; Mon, 29 Nov 2021 15:35:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigl-0004rY-Dw; Mon, 29 Nov 2021 15:35:31 +0000
Received: by outflank-mailman (input) for mailman id 234635;
 Mon, 29 Nov 2021 15:35:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrigk-0004Rj-PB
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:35:30 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa4cd6cf-5129-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 16:35:29 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa4cd6cf-5129-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200129;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=yz/7WHXZdG8/P3IiQ6Qs4BL/Xb7Cfc20DDjQceoZCN8=;
  b=TElRmbUNJkrvbEEPYqFTIdDBLeHlsoRwgIPFXFxmw+zFCS9/W3VLVgXh
   QVItSOU86ng5Cr+B+BXOxDelLgxolv51CstVyHACCq5dWhS4pYvL3LClz
   eKdEw0gyeSkkRK479aX7IPh5caJsSR+WZTOCm5330LfMFB/4wk2KoESiH
   w=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: ekcI5uORet7Jwxrn6rsWpCStPe8tL2WUVcTjKREfIxZYEv1ndBhht+OlhgjUT03imn8oVkwOBL
 d2Zg9qZAsnrN1W0IESBFvYCKUuBOmE3cXiqwg5ex6a2gf7ltXT61XQboeQztKMrIhGEhOuWV3N
 aVq8zMQcIWq43T9GW0+9PKL73+kOoUW+Y5JB6ovZzvXEd8l4u95fJgdZjVzmqLayrEJfO45aAK
 MWYUHI8nmO7EShnV0I4IXs73OvvKRkfMonXntx3cVS5Q3lij2F3YUjm6OB5dScZdyRotnLYbbi
 ztmj0CZh9aOOgoRV9debsiCn
X-SBRS: 5.1
X-MesageID: 58773259
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ol4skqNMrgz5AiXvrR1GkMFynXyQoLVcMsEvi/4bfWQNrUpx0DYHz
 DYcXmCHbPeDZ2v3LdB/ao6yp00GsZHQmtIySwto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Egyw7dRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozakjvBa9
 9V9icS1FCx0N7HNn8A5dBYNRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/iauoADhmph7ixINffnO
 s4DZShNVi3/MiB+PF4wLtFmzc790xETdBUH8QnI9MLb+VP70whZwLXrdt3PdbSiR8pPmV2Dj
 nnb5Gm/CRYfXPSPxDzA/n+yi+vnmSLgRJlUBLC+7uRtglCY2ioUEhJ+fVqko9Gph0imQdVdJ
 kcIvC00osAPGFeDF4enGUfi+Tjd40BaC4E4//AGBB+lyYfFwy2mBlg4FjscQ4EvqM4xYRgN2
 Qrc9z/2PgBHvLqQQHOb076bqzKuJCQYRVM/iT84oRgtuIe6/txq5v7bZpM6SfPu0IWpcd3l6
 2nS9HBWulkFsSIcO0xXF3jjiinkmJXGRxVdCu7/DjP8tVMRiGJIiuWVBbnnARRocd7xorqp5
 iFsdy2iAAcmV8/lqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRkyYp9eJWCzO
 xaD5Wu9AaO/2lPwN8ebhKrrVawXIVXIT4y5Bpg4kPITCnSOSON31H43PhPBt4wcuEMtjbs+K
 f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq
 Ig32grj40g3bdASlQGLq9NOdg5TciBgbX00wuQOHtO+zsNdMDhJI9fawK87epwjmKJQl+zS+
 Wq6VFMew1367UAr4y3TApy6QL+wD5t5s1whOikgYQSh13Q5ON7956YDbZonO7Ig8bU7n/JzS
 vAEfeSGA+hOFWubq2hMM8GlodwwbgmviCKPIzGhPGo1cal/SlGb4dTjZAbuqnUDV3Llqcskr
 rS8/QrHWp5fFR96BcPbZav3nVO8tHQQgsxoWE7MLoUBcUng6tEyeSfwkuU2M4cHLhCanmmW0
 AOfABE5o+jRotBqrImV1P7c94rwSrlwBEtXGWXf/I2aDyiC8zrx25JEXcaJYSvZCDH+9pK9a
 LgH1Pr7KvAGwgpH6tIuD7ZxwKsizNLzvLsGnB98FXDGYln3WLNtJn6KgZtGuqFXn+ILvAK3X
 gSE+8VAOKXPM8TgSQZDKA0gZ+WF9PcVhjiNsqhlfBSkvHd6rOidTEFfHxiQkygMfrJ6PbQsz
 folpMNLuRe0jQAnM4regy1Zn4hWwqfsj0nzWkkmPbLW
IronPort-HdrOrdr: A9a23:Co9WK6sk4TzpeXhATTyT78PJ7skDG9V00zEX/kB9WHVpm6uj+f
 xG/c516faaslsssR0b8uxoW5PpfZq0z/dICOIqUYtKMjONhFeV
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58773259"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=f55NV7oVqNkETdXKYfOD1m4cC8U4yAsYj1IHyEh4bbU/W1Bm85fm6RVM4puLQoLLU4cO3O2h4Kl2ptfz2ZGf1CMotN4WQhI47fpi9qTBmx76UQqv8cQD939iwJb1BZ9ni8dYCJTRuEJS4+lrkEfQt2eZ5ayn0G8pTnWnma1tCZv0nK32ZTVNyjG5SUmQIEHi6ZvcnXNPtKmm6UfLpnFgQ29giMcWrowfONV8v1TDsnrMp+TNImDgZ/Gogl+vc897mqc+P7vGoIk0vsWxajmgucYooCjuROn/xyPIqZSSzjutUC6u6lUMaAhG2f12aqwvImuwwzD66ld+31MSf7ZPuA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m1+vUAFlvux2wXM0/t+OqbhuL51Rq/ENxTsQGJDXxM8=;
 b=jMTDTY9KwRBXc7Lw/GNPeO7RiG9RzZtTMKMrruVk0jF1GMQjS+3ubJfG5KJwG6L4rkhHXDhtO2d0pks3AZ/KdmbgP0V1dJRHJ5g3818koTZN9YQDuCjW5XwbKThV2mdNfjGoCUqGZqgUAc35HRMiZE1BZ3hk7DhU21atjn662C/0pAwOcWmAfonZTku3o8UyjtsTi9jbMW33Mk/x4Pb4saGIQw9K9eOWF1Y/CaOR4pSD0VcoQicKbf9fLJqX6whx91ZL2Ad9hHHfpWbMxWDTGJCXV2uivILhnDVQ2K51cTOemI4/JpVLjTzh5puL6f48EI8RynfNqdjbUra4U74hNw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m1+vUAFlvux2wXM0/t+OqbhuL51Rq/ENxTsQGJDXxM8=;
 b=M5+JQ+ReDF0scKFpjAU4vWIAvSC2NEix+xcptabn1LFjxfyqnM/rI5iS5Fo8k7ILfTXX0sPu8EaKlmE1X6DeTOgJVMCPOmigeLf7Gb6rjxZDhZtQwUwUKg6fhiEnHPxyrSLQDvuMFHi/uRS7sbJsuMZwW3d3tjThWDuZhpZSU/c=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v5 03/12] libs/guest: allow fetching a specific CPUID leaf from a cpu policy
Date: Mon, 29 Nov 2021 16:33:46 +0100
Message-ID: <20211129153355.60338-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0164.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::27) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0bcee822-ffa2-49e9-da5a-08d9b34ddb37
X-MS-TrafficTypeDiagnostic: DM6PR03MB4764:
X-Microsoft-Antispam-PRVS: <DM6PR03MB47646CB169DAE641C4F8BEF38F669@DM6PR03MB4764.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Gz68Hx/n8hChPwCR91zcbuCUt3hrJE8voptcZEWcKVAk3RKOBU/CgXD6HfD0c3sjJgg3g6RX+8Yt95bxVYQ6PxGiGANUAzYByaO/vronzUNUEIZBGKQd8EjJtLR3aw0p/ksB9ULDjx/Ht8NgRg4H1+PYlW9nzmFzjuoeKpX0odbEPO/j6ycD5cykgmaiFMNg0iaLaid9pXCPFNABzxxKhBf5VkshkiPgvz1BcDQpEOFZcUmR+SEyAzm871rCBWQ+M/w786kR0Pn0t9HpJovcQ7MS4KPithOLKonCUedcOUYcf3aExqLBBQI8UQyN0nA+9AYV5LfoqMBaZs2wfVnCfAAXSl4Vjvr+RdqP0Q+oYxGZmCRU1J7uEAetq/Yl0HLpLT2TWZPNnidJ5ha3NCWi4Qf9TN3c0H0ju6GNeB74dWUx61zu7Ypttvx/QW8JFiF0ilPk3pnAjnbQaWtGgEOYVL0wYvxiz2svUrW6DdcpdVJYUyw5MRSit4fFgkEUiPCuvggeM2Tsc367ClH/59CynrOG2tva8+oeQaw5yAJX16QsBIHtGCXouP2H9rfP3IVeQdBfelRbubDNZlCgboroYHkFUJD9/1mUSnMz3ZbBnGn+0fCvXi6OxpdAnME0aLhnBehzTTN0lGwLt+UzcCOmOw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(4326008)(2906002)(1076003)(66476007)(6486002)(82960400001)(38100700002)(186003)(83380400001)(956004)(2616005)(316002)(6496006)(6916009)(26005)(54906003)(6666004)(36756003)(66946007)(86362001)(508600001)(8676002)(8936002)(66556008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bHBkOTA1QjhoV3BuQVZjM3FZVmxUT0grSzZsRmdyYlpkRXBIakFlREZtQWll?=
 =?utf-8?B?ZjROeEgvTk5BcmdZRGxOMUtEVzFXV3hLZ0REODNiL1NrL0NuaGJFeW0vUGRQ?=
 =?utf-8?B?SUp0c0hIeW9iZ3djT2xaOVFjRExIVUJqcHE2WUMxN1pxcnhpcVd5Uy81cGJQ?=
 =?utf-8?B?S1J4N1o3alBPTVJIMlZqc25uUllhTGVJUmVWVnkyQkhhRVY4YndVUnNxRTFj?=
 =?utf-8?B?RE5FWWpwRFZjNXRMcG5aZE94VWVJeDFPa1ZNYlJ6Z2NZME03TGVEUG9GTVN0?=
 =?utf-8?B?eDZrTkpMV2lDVEJMenF5Wng1bXZwY0hkdDd3TnVBY3g4OVFadVN0MS9JMHdi?=
 =?utf-8?B?TXI1ZTgvZCt6Ri9mUXc5MGJuMWJzdzVyWXk0K0NWN29uck1IVElUQlAzTlhG?=
 =?utf-8?B?VzZ4YjZMVVdnbFVYMWQ4Y21UdzFnamhHMjl1cGdYVEwxdkp2Sk54KzZER3BV?=
 =?utf-8?B?MjNTUUZTUWYwU2VmT2dUQ0xyUk1RZzZ4d3pieVJUaUE5MERDUTVaZ2JiWFFt?=
 =?utf-8?B?TnpKWU5TL2laaU5GODB5MUM4Q0dmYXFpZ3d4UlNEaUFqVmN6NFRiUlZlc0lh?=
 =?utf-8?B?S0Q0MVhiUlg4WHVpS1haeVZLWExXWFRrNU1rK01vN3F5bCtlSk5qZzlxZXQv?=
 =?utf-8?B?c0ZFc0lIN3pCM2hBUWFzVVd4MEwxTk1nK2xxTkFlYnhTRHhPNWc3OVhQWkVi?=
 =?utf-8?B?MmxGRGgxUmtHaVZkbkxuL285S1hvaFRsbUVtNWFCcVpHcVJ4RVFQczBPYXJH?=
 =?utf-8?B?TUsxY0ZkM0c3NUN2bU1sd3Nxdll2dnFHSDAvamJUa3VoMW9XVGpGRXExU1NK?=
 =?utf-8?B?YkxBN3M1NTEwMnpvM0RackJMZzI5Tk9iTzFjdFcvZ0U5aGpzbGFGcWFUK2Jr?=
 =?utf-8?B?bHJCMk5Bd1gwSHBWYUI5RG9jNkpwS01tcDJpZFdyWUxRMXdEVkNDaUVKTWV3?=
 =?utf-8?B?bmo3NUdCYUFxWi9TL1VwM0srZk5oWEx4OExWcG13L2xUSndFc21RSVU5cUNm?=
 =?utf-8?B?SFdGS01Ick9rWFhSMzZ1SW1DM3JySVBZZ1JPZGFJK0psQkRiNU9SeU5jUWVJ?=
 =?utf-8?B?eHVPZkRUdmZhcXIxM3RDcEJmR05HZ3BJMXRoQ052azRrZmFKdENSUnFtMnZG?=
 =?utf-8?B?UWcyS0cya2hJWU5vaURFclFPaTRDNTJQTTU4WHFnN0VYSWpxTzZzU2RNbVd5?=
 =?utf-8?B?TG1LOElzdFN5aklKNGMvdk9LZk1wM3hzcFN5em9SZVdOU1ZYRncvbTVlNjM0?=
 =?utf-8?B?L1I1N3NEQTJJSk14RnhaUlFRQnBBcFpTVWZBd2tsTi9VSFg2L2RsMVFhaTBu?=
 =?utf-8?B?M0g5RnJxTlJzZWw1Z3RhWDU4cTU2SS9MZnVvQUJ1bVcvcTIvZCtBNS9MN2ky?=
 =?utf-8?B?ZDZvWDhxNHlGOURvRkZuQ0pBSzdyRXgxbVl6eVF6UkdkcVJlSUliRmlBek9I?=
 =?utf-8?B?eCtYWVN0RC80OVBMbHVrUWh6eC9IQ3RYejk1ZVZpcUFpM1hEVXV4MkdIcU8x?=
 =?utf-8?B?Qm9oSERET1ladUYwZWFTTWdldDA5aDFROXF0Rkg0YlZKZ3BYc1RPd0Ruamtp?=
 =?utf-8?B?TWJnNDUwc2E3SytiV1puSjI2MThrUE5EWklCZDMvWkpTZUtzVEVOWHBhbys1?=
 =?utf-8?B?ZVdLUkwwSDhaZm9RMUpiRDdIZjBOeHl1ek1RNkpzek9GOGZMWXREUklrOXVr?=
 =?utf-8?B?RGowVzNDSzBsd2lRWXlacElSUllJRTRmeDlrQ3lydDZOaUhEb1Y4N3QyOWRK?=
 =?utf-8?B?T3orUitnSjcycFJDUGhaWmpMQW80NEFGdkRZbENFWDZseHYvYzY5ZURPbUJn?=
 =?utf-8?B?eUdCT0NUTU5CQ3IxZzFacmlUb3E3LzJCbmxZNEthRERIeURiTlQwQVhlMTht?=
 =?utf-8?B?Zkdqakt3Z0Z0a3BobG5jVGhRcS9GMUNXNm9zc2NxWnh4Z2ZlaUMxK0w3bFk0?=
 =?utf-8?B?TzMrRnNTRUJLK1VrSTZPNFZSODFsMFVuNFBnU3R1VFVraGZhQm1TOVVuZGht?=
 =?utf-8?B?WnEvd3A4dFB2T2QwL0ZXcGZXUnNicFZhcTRJRmFxcjJFZVdVUWNrYzBCSFlu?=
 =?utf-8?B?YUoydDhFK1U3QmRoQ3gzS2VBdGlBMlVkWlFBMjhTQTNySDhwVDlxVnRmaEQ5?=
 =?utf-8?B?cG05cjFnWlNDWDlDRXhaZkdpRWhwelFSUmdiWnZMT0hrdW9jYWFIbTRPK0VP?=
 =?utf-8?Q?/IQvN/b0aLcANkcma2HbG+A=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 0bcee822-ffa2-49e9-da5a-08d9b34ddb37
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:22.2316
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: d0PyNvdK0yvVlbi8SCWNkHJBPihDm+mK5KF32DO6IuXjCO6f897NbrmJQ/HnQta/iEATT79HC732IRpaYvMipw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4764
X-OriginatorOrg: citrix.com

Introduce an interface that returns a specific leaf/subleaf from a cpu
policy in xen_cpuid_leaf_t format.

This is useful to callers can peek data from the opaque
xc_cpu_policy_t type.

No caller of the interface introduced on this patch.

Note that callers of find_leaf need to be slightly adjusted to use the
new helper parameters.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v3:
 - Use x86_cpuid_get_leaf.

Changes since v1:
 - Use find leaf.
---
 tools/include/xenguest.h        |  3 +++
 tools/libs/guest/xg_cpuid_x86.c | 23 +++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index e01f494b77..0a6fd99306 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -807,6 +807,9 @@ int xc_cpu_policy_update_cpuid(xc_interface *xch, xc_cpu_policy_t *policy,
                                uint32_t nr);
 int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy,
                               const xen_msr_entry_t *msrs, uint32_t nr);
+int xc_cpu_policy_get_cpuid(xc_interface *xch, const xc_cpu_policy_t *policy,
+                            uint32_t leaf, uint32_t subleaf,
+                            xen_cpuid_leaf_t *out);
 
 /* Compatibility calculations. */
 bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index b9e827ce7e..7779a3e1dd 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -855,6 +855,29 @@ int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy,
     return rc;
 }
 
+int xc_cpu_policy_get_cpuid(xc_interface *xch, const xc_cpu_policy_t *policy,
+                            uint32_t leaf, uint32_t subleaf,
+                            xen_cpuid_leaf_t *out)
+{
+    const struct cpuid_leaf *tmp;
+
+    tmp = x86_cpuid_get_leaf(&policy->cpuid, leaf, subleaf);
+    if ( !tmp )
+    {
+        /* Unable to find a matching leaf. */
+        errno = ENOENT;
+        return -1;
+    }
+
+    out->leaf = leaf;
+    out->subleaf = subleaf;
+    out->a = tmp->a;
+    out->b = tmp->b;
+    out->c = tmp->c;
+    out->d = tmp->d;
+    return 0;
+}
+
 bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
                                  xc_cpu_policy_t *guest)
 {
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:35:45 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234636.407215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigo-0005G4-UV; Mon, 29 Nov 2021 15:35:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234636.407215; Mon, 29 Nov 2021 15:35:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigo-0005Ft-QW; Mon, 29 Nov 2021 15:35:34 +0000
Received: by outflank-mailman (input) for mailman id 234636;
 Mon, 29 Nov 2021 15:35:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrign-0003uH-2A
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:35:33 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fbde06f6-5129-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:35:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbde06f6-5129-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200131;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=ovizBmOd9afB85beG6l95WMGrI1FjJYBuKIsdHrpGHU=;
  b=IuplQhplFiKS2Hsna2ZFt+dLqrHQeYCPMS4/vxmQZYboRfzjxO2t9Ivc
   NF5Dx5xYXC6rQFXiwmP051KpTeCjStl8VLYvY837G796uLxjqrvq2QFfC
   L1671B+lp6tJsHSe8NC/Pw/Pr2joWyk/JtRIMjHpZ4kBD4QqCe2E+kvmw
   4=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 2wFeSJoaWZOWTcUp84o6rzHFkHw0OHf3YnH/DTriRNjNGAYwowpCFlWxcTPVlUfTmVnMRDlFdK
 AdSckZyba3lo3I36NRJzJLxPPYARErfvRtFqrX9Q4EQ9FpIe5OsMXJB2KNXDFNXSzJ20vNw2Mt
 OoR19ld8LAMhcBDGdGItHvU9kW7DTOhNPeIFUTYCmgcYkV37I1tsGqzA+IWyOuPy0oLMJ5QbKg
 9fkvcJLWR+8o0cc+PcuaTVxtnpVsJQPQkL9d7ehljTpvtuZbWxvwCgssOWW9DCKx54z6QOwbxQ
 x4SlebqDvsx4p/omqrfL0E3n
X-SBRS: 5.1
X-MesageID: 59208280
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ETcTOKgs/2xggZFm/DMiZgjaX161jRcKZh0ujC45NGQN5FlHY01je
 htvDWGBMqnfY2vzfN0ibdm/8E0H65SGx9Y3SgNqr3wwQywb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy0IDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /0SuISgZwMFEJHUxu9FdBZ2LixiM4BJreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t15oWTayOP
 6L1bxJDYjKDbFpVJ2w5VpASxs23nlviLGJX/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 mPZ/UzpDxcCLtudxDGZtHW2iYfnjS79HY4fCrC83vprm0GIgHweDgUMUlm2quX/jVSxM/pdI
 UEJ/islrYAp6VemCNL6WnWFTGWs50BGHYAKSqtjtV/LmvG8Dxul6nYsETNZePIimOEKXWIhj
 niGse7kGTJCv+jAIZ6CzYu8oTS3MCkTCGYNYy4YUAcIi+XeTJEPYgHnFYg6TvPs5jHhMXSpm
 m3R8nBi71kGpZdTj/3TwLzRv967SnElpCYR7x6fYG+q5xgRiGWNN93xsgizARqtwe+kori9U
 JosxpD2AAMmV8jleMmxrAIlRu/B2hp9GGeA6WOD5rF4n9hXx1atfJpL/BZ1L1pzP8APdFfBO
 RGI6VoLuMAJZyL6Mcebhr5d7exwl8AM8vy/CJjpgidmOMAtJGdrAgkzDaJv44wduBd1yvxuU
 XtqWc2tEWwbGcxaIMmeHI8gPUsQ7nlmnwv7HMmjpzz+iOb2TCPFGN8tbQrVBshkvfzsnekg2
 4sGXyd8404EC7OWj+i+2dN7EG3m2lBnX82r8JIOKbbYSuekcUl4Y8LsLXoaU9UNt4xel/vS/
 2H7XUldyVHlgmbAJxnMYXdmAI4Dl74mxZ7iFSBzb1uuxVY5ZoOjsPUWe5ctJOF1/+1/1/9kC
 fICfpzYUPhITz3G/RUbbIX889M+JEj621rWMnr3eiU7cr5hWxfNpo3ucDzw+XRcFSGwr8Y//
 eGtj1uJXZoZSg1+J8/Kc/bznUiptH0QlbsqDUvFK9VeYmv2941uJ3Cjh/M7OZhUex7C2iGbx
 0CdBhJB/bvBpIo88d/og6GYrtj2T7siTxQCR2SCtOS4LyjX+Gan0LRsaufQcGCPTn7w9YWje
 f5Rk6P2PsoYkQsYqIF7Cbtqk/4zvoO9u79Aww14N3zXdFD3WKh4K3yL0MQT5K1AwrhV5Vm/V
 k6Vo4QIPLyIPIXuEUILJRpjZeOGjKlGlj7X5PUzAUP7+C4oo+bXDRQMZ0GB2H5HMb94EII52
 uNw6scZ5ju2hgcuLtvb3Dtf8H6BLyBYXqgq3n3A7FQHVub/Jol+XKHh
IronPort-HdrOrdr: A9a23:tvtaiam7nJCo30Gcg0aE5ow5zdvpDfO2imdD5ihNYBxZY6Wkfp
 +V88jzhCWZtN9OYhwdcLC7WZVpQRvnhPpICO4qTMuftWjdyRaVxeRZg7cKrAeQfREWmtQtt5
 uINpIOc+EYbmIK/PoSgjPIaurIqePvmMvD5Za8vgdQpENRGttdBm9Ce3im+yZNNW577PQCZf
 +hDp0tnUveRZ1bVLXwOlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJr3CQKR0BsyWy5Ghe5Kyx
 mIryXJooGY992rwB7V0GHeq7xQhdva09NGQOiBkNIcJDnAghuhIK5hR7qBljYop/zH0idmrP
 D85zMbe+hj4XLYeW+45TPrxgnbyT4rr0TvzFeJ6EGT6PDRdXYfMY5slIhZehzW5w4Lp9dnyp
 9G2Gqfqt5+EQ7AtD6V3amIazha0m6P5VYym+8aiHJSFaEEbqVKkIAZ9ERJVL8dASPB7pw9Gu
 UGNrCT2B9vSyLYU5nlhBgs/DT1NU5DWytuA3Jy9fB96gIm3EyQlCAjtYgidnRpzuNKd3AL3Z
 WCDk1SrsA9ciYhV9MLOA4we7rFNoXze2O4DIvrGyWeKEgmAQOEl3el2sR/2AmVEKZ4uKfa3q
 6xFm9liQ==
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="59208280"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lljat2hlHMCcJxWYiHJeVYWXv0HGszZKq2wxSGS2h3RuNgBC1/7Qt+eeAOcYVrx9RJNyVqSfzjk3RAzUHL5B5vFYPCz8TEo9SZBMIwF8u6unntZBs4r4NhDSlh5fyHqD5lUIOl4wFDrzWm7e+cakZnA2pC1cWo3rt2Yz7Pz70VoVu/6T0fEpFkJjkp74NUqGnr+syyoVfhlMbIj1WuaM8AdKIUhI3+716xVwlGZF0g/cWmkJ8J0ddhaUby05lU1MoxWH4nBjrqTl5g9rwoJWqScHMapZ4Vky46rUN9Q25oAYdC565s2HgczDe/uS0OOvAmXvsY9S0q/e3Wv3Ftn5dQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dj2zYVjV9zE+r8tX/vZbHlx8BZRHwcEypBJvmHSoHAU=;
 b=moebZdfD4hlYcWKwV/PBLRVMcIj6vblKmYliPkc7G0aXmjsjoM0QfZWcKTNMGvlXx+7VxEHrpMq9XkOaAUNK8WyG3x7o/N7YUjRBnqdlQeogy9WEmV4v0QnHHEvG8sIxAQNApgAqi3xPf4NVMOz/I0n4PFOn/fVCZdaT566b0vvgDv6TD8fcLJdXA++f626c0KjtN9IJp1OB7/ekxCzuVbABVf0LkZuU2ZQ3/FdZmPU2ScgnT3iNs6NYGiUv9ELVwWNFGksghAy/8vEdJvZkUdFjG78tXrE/JDTDaqK+OywFKWKMcSMZLDegup2eaQ2OowzmBY1H9Jy/iREWqz3DAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dj2zYVjV9zE+r8tX/vZbHlx8BZRHwcEypBJvmHSoHAU=;
 b=toX2SEoEHaQY4jjwFstBKv2qc/gJD0T8Hzy9ElIHMNYrhNidee+DOJwDSlyUQMWeZvVZ/mbEqAaSxwNZ93YEz/KP37GPzzyM+VdKJ6xYCGz+R4sbLZhuRJGm/mizm1O5Lvd6KCvCC7X3XEBXZP11+81M7CY3AA/MCad/Y6DG+K0=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>
Subject: [PATCH v5 04/12] libx86: introduce helper to fetch msr entry
Date: Mon, 29 Nov 2021 16:33:47 +0100
Message-ID: <20211129153355.60338-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0148.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::11) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0d423a56-6c04-4b7e-823b-08d9b34dde73
X-MS-TrafficTypeDiagnostic: DM6PR03MB4764:
X-Microsoft-Antispam-PRVS: <DM6PR03MB47647A4984D945E104AB8E6A8F669@DM6PR03MB4764.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: J/9p9Ksjcyi9rdMRyzBF+OXEpUKe2fw3sh2rnOlh0i8inC15MxbbcD3yE/rScqmCoOr98+DYvybTFE1zfI0E4QzvfKVFMFUWidYRboCgfnmCahUd59cr4bBEpt8qfLtJJ6K2gOmzrF8sXcOht+OA2wK+xjY+eNoxFv964SuoNWOri8/upBQrRlV3z0yfqmvq2jWCV44wAQsPZt05K2cn/QTRYA7N6KSp8EE9Vmbf7GQP9MQZFw7flxjeJUydH/pNxMa/mJQgthgwtTqzR7cGrurWJc6P6j5tG1Pux/Sr9EM6urN0WQuxTnCISkQ78UJsJgkcHytn/hiS1Yjkgtf749/8KdrBasbcM9jgQCqN9q6mmLsZ4OXR+wf7Yg8g5vUW4wl08EWEO4aOOmUbtOxwH2baXsCSZoBTfD7kzqHlIy1m9Th5OIv1DsTU+VSfCvaSrvmSMWYB8GbclyFREsxbwJGJUpRLnUAtUvSuwFqEbz7a+nVARkl2xMsoH+VZZal1HwiumJTscD+F3sNRTlLvlMe9h5Nm4H7MfB/s6Z3hwjPId7YoUmvb6w/xoG7Y6v+QU+pbf3EhbAHY7XUaVC/m7m84401lxo2/nBV4t8wE2i5TwGrLS+/XP2KLnPbWDuLSiJLsGcNTD4emaFQE9H5jKgGY92gs1ZZNbbphDKjtjOx58NzLrF/SOyt1TAOTPf7tTJ2kGwrNcQaW3PExNceoGw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(4326008)(2906002)(1076003)(66476007)(6486002)(82960400001)(38100700002)(186003)(83380400001)(956004)(2616005)(316002)(6496006)(6916009)(26005)(54906003)(6666004)(36756003)(66946007)(86362001)(508600001)(8676002)(8936002)(66556008)(309714004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dkp3bER6V0U5eGh0d3FXZ1hvMkZReE4vUW9uRU5DelVKQjh6S1U4eSs4a01E?=
 =?utf-8?B?U29vWG9DYmU5YWlzVGNqNGU4R1Nyc0pTWWpuNGU0YStaYVp4OHk4TGRXZmM4?=
 =?utf-8?B?V0RUMDFRYmxnS1hDNUZVUWQvUWF4TjV0UTgxK0RIeUJ4VGVKVW52QXBMTmJl?=
 =?utf-8?B?R0FYc0dLdjFrZmtMZWt4R0w4VEJWNVdjN3haa2ZtSWFZUi9wQWt6aWlYUjAr?=
 =?utf-8?B?ZWdDWWFBZW9YdWcxWS9pYjgyaUVrcVJjVm1CVzlGSzIyQklJMHdRams3KzlU?=
 =?utf-8?B?YkNlSkhTeXBGaXlHRUE0ZnkvbmNObDQ1SXpoTm5CK0RQV3BMcU1FcGN3V1pV?=
 =?utf-8?B?b3pnY2ZFaHVhTXNMSXhoQzh3MC9ocVdNbExHSHUxTUtTOHBrRDVZSVFvNU9s?=
 =?utf-8?B?VTZheDRLSzBxc3JpTDI2VWNXdXppUmE3M0J6bkRGVEkrOFUrSEJWYTZORHFm?=
 =?utf-8?B?dzNuNUxxZzhldytwMU8zd0ViekNNVy9LaVJGUnZ1WkthYnQ2SEdoUVBCVmU1?=
 =?utf-8?B?Q1VZRTZBR1hVQVp5NlJYVHdVWjg0a3hid09UanRUUmt4T3BDZFY5ZzFOVzgz?=
 =?utf-8?B?MVE0Nk5kUDFUTWtneHcrMG1qR0Zjc3dvZUEvRHJKa3hvZ3VrOWZGTU5wTnF1?=
 =?utf-8?B?UFFGU3pXaWtRN003MnRhQzZHT0RHeUNZWk9jYmZYTWdYY3U3bDBRUXpBY0xM?=
 =?utf-8?B?aEp2SEZuWlUyUWJlNENVbFJ0WHM1SkR3ZW81MUtkVFhhcCsvU2xjV01FRU9r?=
 =?utf-8?B?YWlES3JJWmZNTk5helFmZi81Vnp1UWkvSnZONHhVa29uTnE5aURPOXRpZDBY?=
 =?utf-8?B?TnpMMjlrWWRLbkpmc2hOQ0JrNW1aK0xOdnZHc2VvVmJJM2JJQTVTeEZodStU?=
 =?utf-8?B?TzBITklFMndHY2Z3aENPQVpUaDN1U2hyUHh2R0xYQ3JjL29EaWJtS2RHc0Mw?=
 =?utf-8?B?T3ZGZmlWaTFlRUZmOG1kOVlrYVRmcmZ1dEs2WDVWSHc3ZEJiK0ZPbklsZkZ5?=
 =?utf-8?B?Z05ValhWNTdHMHJZQ3JrTm9SZ3pWZHZnMTZGWm91c040SnNTM0YvaURtRXB4?=
 =?utf-8?B?ck9pd2ZuaEk5Q1ZDWTJHVHNXZUNiN0RvNnFFRTIydWlHdkg0cWdMMVBQWTlu?=
 =?utf-8?B?RTQrZ3k4ODhaUG1jbktoMFltK1BNTGo0QmhPakNRcm5vMjhRZFhpdU5rUHVl?=
 =?utf-8?B?SW5SMUNWdDRrYitnc1NOVFhDQ3NuV2hEZlVmS05LckpaNGFqZjB5cVNCQlRy?=
 =?utf-8?B?aUk5VVFFd1ZtS3l2YklhZk03eW0raWxlTFBLM3FzR0lERVV1VnMwYUsyMTlU?=
 =?utf-8?B?R3ZVUHo5dytYR0IzTEtiaFlvRytvK3hxM1JLd21sUUNGU215RmRSYXQwaUIz?=
 =?utf-8?B?MDF5MHR3MG05SlhpTWJyOFRSWkw1UGZua0lCOUE4UEtxOGRQQ2FVNHEvWThN?=
 =?utf-8?B?anB0MzJ0UnY3NXhHYyt3VkN2a0FQTHFrVmtzMzV6WUo0cnR2cnhJV1U4Ry9v?=
 =?utf-8?B?OHRmVXNGUVpndlFFVVBOM2xDSjgzaE5vUHFDcW93SW9kUmxTWHoySllmbHZZ?=
 =?utf-8?B?bDJsTUxwZlhKekRpUnhJUUR1aXMrUTd2aDErQjRmdEZNVjNJZDJxaXBTVTF4?=
 =?utf-8?B?dEUwSG1RVUNoVitRL3RnRXc1SDc5T2wzRzhnQXJtcmxqQzUxYUdHZlFqaDB6?=
 =?utf-8?B?dC96alExQ1pPSVRIdENRUm9Ea2JNL3JBRmRRZGNmSkZGTDBUdkJGbm5oRXFL?=
 =?utf-8?B?WW4vN0tITWtWWWt0Y3UwQ0VIVld2NjZ4dWRjT09FUDJsVEp6RDUvTFp0SDUy?=
 =?utf-8?B?QitBUFVOTFNnbnZUT2szMklLMlVmZ1Z4bzdhWVhiZ3lTblpwOFltK2puRmVy?=
 =?utf-8?B?eU5JOERXMWhHM2VOSFB3WFovRFJGQ2lGRjAyL3NvTlRRSnZjenRjSlFvbDVE?=
 =?utf-8?B?UTRTbDI0Z2F1MHZjcUN2Y1FjeDVRMUpSQktKMFZDMnJPbUllQlpYQzY3bDVJ?=
 =?utf-8?B?RUgzNjdDdlZaME1CdTJGSUVjK0lRM0hoSVJEQjdTcFJIZXJ3N1FPdnFFT1Vx?=
 =?utf-8?B?T1Ivcm0rbDcrdlNDbC9Ib3UySkdldVp4YVlMMW9paElXL1IwR1pEamRmZnVa?=
 =?utf-8?B?SnNzUGNteTdyR0F1b1BZdE83ME9VZHBsWTFTTXZOZVB0bG9lYWdvaXp4MjVl?=
 =?utf-8?Q?cp8LtJsR5e3F1d7msE0pWwc=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d423a56-6c04-4b7e-823b-08d9b34dde73
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:27.6746
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oIHbAYWQ/T1bKQqhypyiEQ2dkL1KNfArtqv0nR4dWnIEBT6YY9iir/QGNJDdO6Zm+G4wyf3OedqTZG2/yT2sVA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4764
X-OriginatorOrg: citrix.com

Use such helper in order to replace the code in
x86_msr_copy_from_buffer. Note the introduced helper should not be
directly called and instead x86_msr_get_entry should be used that will
properly deal with const and non-const inputs.

Note this requires making the raw fields uint64_t so that it can
accommodate the maximum size of MSRs values, and in turn removing the
truncation tests.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v4:
 - Rename _x86_msr_get_entry to x86_msr_get_entry_const.
 - Add newline before endif.

Changes since v3:
 - New in this version.
---
 tools/tests/cpu-policy/test-cpu-policy.c | 48 +++++++++++++++++++-----
 xen/include/xen/lib/x86/msr.h            | 20 +++++++++-
 xen/lib/x86/msr.c                        | 41 ++++++++++----------
 3 files changed, 76 insertions(+), 33 deletions(-)

diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-policy/test-cpu-policy.c
index 3f777fc1fc..686d7a886c 100644
--- a/tools/tests/cpu-policy/test-cpu-policy.c
+++ b/tools/tests/cpu-policy/test-cpu-policy.c
@@ -386,16 +386,6 @@ static void test_msr_deserialise_failure(void)
             .msr = { .idx = 0xce, .flags = 1 },
             .rc = -EINVAL,
         },
-        {
-            .name = "truncated val",
-            .msr = { .idx = 0xce, .val = ~0ull },
-            .rc = -EOVERFLOW,
-        },
-        {
-            .name = "truncated val",
-            .msr = { .idx = 0x10a, .val = ~0ull },
-            .rc = -EOVERFLOW,
-        },
     };
 
     printf("Testing MSR deserialise failure:\n");
@@ -644,6 +634,43 @@ static void test_cpuid_get_leaf_failure(void)
     }
 }
 
+static void test_msr_get_entry(void)
+{
+    static const struct test {
+        const char *name;
+        unsigned int idx;
+        bool success;
+    } tests[] = {
+        {
+            .name = "bad msr index",
+            .idx = -1,
+        },
+        {
+            .name = "good msr index",
+            .idx = 0xce,
+            .success = true,
+        },
+    };
+    const struct msr_policy pc;
+    const uint64_t *ec;
+    struct msr_policy p;
+    uint64_t *e;
+
+    /* Constness build test. */
+    ec = x86_msr_get_entry(&pc, 0);
+    e = x86_msr_get_entry(&p, 0);
+
+    printf("Testing MSR get leaf:\n");
+
+    for ( size_t i = 0; i < ARRAY_SIZE(tests); ++i )
+    {
+        const struct test *t = &tests[i];
+
+        if ( !!x86_msr_get_entry(&pc, t->idx) != t->success )
+            fail("  Test %s failed\n", t->name);
+    }
+}
+
 static void test_is_compatible_success(void)
 {
     static struct test {
@@ -763,6 +790,7 @@ int main(int argc, char **argv)
 
     test_msr_serialise_success();
     test_msr_deserialise_failure();
+    test_msr_get_entry();
 
     test_is_compatible_success();
     test_is_compatible_failure();
diff --git a/xen/include/xen/lib/x86/msr.h b/xen/include/xen/lib/x86/msr.h
index 48ba4a59c0..4d84b7cf27 100644
--- a/xen/include/xen/lib/x86/msr.h
+++ b/xen/include/xen/lib/x86/msr.h
@@ -17,7 +17,7 @@ struct msr_policy
      * is dependent on real hardware support.
      */
     union {
-        uint32_t raw;
+        uint64_t raw;
         struct {
             uint32_t :31;
             bool cpuid_faulting:1;
@@ -32,7 +32,7 @@ struct msr_policy
      * fixed in hardware.
      */
     union {
-        uint32_t raw;
+        uint64_t raw;
         struct {
             bool rdcl_no:1;
             bool ibrs_all:1;
@@ -91,6 +91,22 @@ int x86_msr_copy_from_buffer(struct msr_policy *policy,
                              const msr_entry_buffer_t msrs, uint32_t nr_entries,
                              uint32_t *err_msr);
 
+/**
+ * Get a MSR entry from a policy object.
+ *
+ * @param policy      The msr_policy object.
+ * @param idx         The index.
+ * @returns a pointer to the requested leaf or NULL in case of error.
+ *
+ * Do not call this function directly and instead use x86_msr_get_entry that
+ * will deal with both const and non-const policies returning a pointer with
+ * constness matching that of the input.
+ */
+const uint64_t *x86_msr_get_entry_const(const struct msr_policy *policy,
+                                        uint32_t idx);
+#define x86_msr_get_entry(p, i) \
+    ((__typeof__(&(p)->platform_info.raw))x86_msr_get_entry_const(p, i))
+
 #endif /* !XEN_LIB_X86_MSR_H */
 
 /*
diff --git a/xen/lib/x86/msr.c b/xen/lib/x86/msr.c
index 7d71e92a38..e9b337dd70 100644
--- a/xen/lib/x86/msr.c
+++ b/xen/lib/x86/msr.c
@@ -74,6 +74,8 @@ int x86_msr_copy_from_buffer(struct msr_policy *p,
 
     for ( i = 0; i < nr_entries; i++ )
     {
+        uint64_t *val;
+
         if ( copy_from_buffer_offset(&data, msrs, i, 1) )
             return -EFAULT;
 
@@ -83,31 +85,13 @@ int x86_msr_copy_from_buffer(struct msr_policy *p,
             goto err;
         }
 
-        switch ( data.idx )
+        val = x86_msr_get_entry(p, data.idx);
+        if ( !val )
         {
-            /*
-             * Assign data.val to p->field, checking for truncation if the
-             * backing storage for field is smaller than uint64_t
-             */
-#define ASSIGN(field)                             \
-({                                                \
-    if ( (typeof(p->field))data.val != data.val ) \
-    {                                             \
-        rc = -EOVERFLOW;                          \
-        goto err;                                 \
-    }                                             \
-    p->field = data.val;                          \
-})
-
-        case MSR_INTEL_PLATFORM_INFO: ASSIGN(platform_info.raw); break;
-        case MSR_ARCH_CAPABILITIES:   ASSIGN(arch_caps.raw);     break;
-
-#undef ASSIGN
-
-        default:
             rc = -ERANGE;
             goto err;
         }
+        *val = data.val;
     }
 
     return 0;
@@ -119,6 +103,21 @@ int x86_msr_copy_from_buffer(struct msr_policy *p,
     return rc;
 }
 
+const uint64_t *x86_msr_get_entry_const(const struct msr_policy *policy,
+                                        uint32_t idx)
+{
+    switch ( idx )
+    {
+    case MSR_INTEL_PLATFORM_INFO:
+        return &policy->platform_info.raw;
+
+    case MSR_ARCH_CAPABILITIES:
+        return &policy->arch_caps.raw;
+    }
+
+    return NULL;
+}
+
 /*
  * Local variables:
  * mode: C
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:35:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:35:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234638.407226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigy-0005xK-9w; Mon, 29 Nov 2021 15:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234638.407226; Mon, 29 Nov 2021 15:35:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigy-0005x8-6L; Mon, 29 Nov 2021 15:35:44 +0000
Received: by outflank-mailman (input) for mailman id 234638;
 Mon, 29 Nov 2021 15:35:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrigw-0004Rj-BF
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:35:42 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 018cf07c-512a-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 16:35:41 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 018cf07c-512a-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200142;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=LhjyiDF5LKmTNDh163h1NmBaoZfFCmFl7Wc/SQikn0I=;
  b=UAM7ph+FJIJSK4oXCjsPHTMMWazyJftZurjhvxReXSQxy3Pc6TSrN7cp
   2NMBPMx2S2sxBPpLzDSkPV3eTruhWF9hAAbyT9svRr6a8jZRXCrQ8QloV
   BxADZN8DhogfeIkKYXab6ukzEbGETNk5MjE1xVy3FI7Cq7gDGe1wlRoav
   k=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: xHD3hhj+UiJhUNcAMyQWh+LDAKPr0F4m4CZbU+qxvnr9rkTweD99LLn8BgQ9In7wABF/Q6vFky
 gh5yEG45JDUKV/7omeNXXVW55fxgs2//Bqec4CAGZvvzO/nftgl48mHEuU++fxI0UmYeC3cj+A
 YUFEbuP3lgqjbH9GDcIqKzTlWc2C/6uLkW8+bl3RZr76Pb/pvo5hIKP9eOhpH1DHBadBMKBmxd
 OaqnOrj+KU5B/gwHYQmwVIICpFw7xn9arLHjxWS0iEpLOitA3inUhLvmfIaQQKG4jR7XDsi3GZ
 uZ14+M14+H3en7Anp+hSDotL
X-SBRS: 5.1
X-MesageID: 58333467
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:sEYrqaj7KaYYKaZorcB8sEh7X161gxcKZh0ujC45NGQN5FlHY01je
 htvUGmPOv+LZWH1fdl1Ydi/8kgFv8OBx9ZiHgVuqC9jQSwb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy0IDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1Mm77pciAJb5HVv/g2Wj1JNh5nMpJZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t1psVRqqAO
 KL1bxIwayT+QkZ2Ym0eL8wFrO20tGvaMCxh/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 mDJ5WPiGTkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24ma/RNB3O
 0ES4jApr6U56AqsVNaVYvGjiCfa5FhGAYMWSrBkrlHWokbJ3+qHLmkqbGd6T/x3iNYRWRcj8
 k6soMrmOiM65dV5Vkmh3ruTqDqzPw0cImkDeTIIQGM53jXznG0gpkmRF4g+ScZZmvWwQGitm
 G7S8EDSkp1K1ZZTv5hX62wrlN5FSnLhagcurjvaUWu+hu+STN70Ptf4gbQ3ABspEWp4crVjl
 CVc8yR9xLpXZX1oqMBqaL9TdIxFH97fbFXhbadHRvHNDQiF9X+5Zpx36zpjPkpvOctsUWa3O
 x+K418OvsQKbCfCgUpLj2SZUZ5CIU/IT4qNaxwpRoAWPsgZmPGvoUmCmnJ8L0iyyRNxwMnTy
 L+QcNq2DGZyNEiU5GHeegvp6pdynnpW7TqKHfjTlk37uZLDNC/9YepUazOmM7FmhJ5oVS2Iq
 r6zwePRkE4BOAA/CwGKmbMuwacicSJmWMuo8pMPLYZu4GNOQQkcNhMY+pt4E6RNlKVJjObYu
 Ha7X05T0l3kgnPbbw6NbxhehHnHBP6TdFo3Yn4hO0iGwX8mbdr95asTbcJvL7Im6PZi3bh/S
 PxcI5eMBfFGSzLm/TUBbMai8Nw+JUrz3Q/ebTC4ZDUffoJ7Q1Cb8NHTYQaypjIFCTC6tJVir
 uT4hB/bW5cKWy9rEN3SNKC011q0sHVEwLByUkLEL8N9YkLp9IQ2eSX9guVue5MHKAnZxyvc3
 AGTWE9Kqe7Iqo4z0d/ImaHb8Nv5T7ogRhJXRjCJ46y3OC/W+nuY7bVBCOvYLyrAUG7U+bm5Y
 bkHxf/LL/Bazk1BtJBxEug3wPtmtcfvvbJT0i9tAG7PMwawErplL3SLgZtPu6lKyuMLsAe6Q
 BvSqNxTOLHPM8L5Cl8BYgEia73bh/0TnzDT69UzIVn7u3ArrObWDx0KMknekjFZIZt0LJghk
 LUot8Mh4gCijgYnb4SdhSdO+mXQdnENXs3LbH3B7FMHXubz9mx/XA==
IronPort-HdrOrdr: A9a23:3TrL6K4J4XkQ8uh1OAPXwVKBI+orL9Y04lQ7vn2ZFiY7TiXIra
 yTdaoguCMc6AxxZJkh8erwXJVoJkmsiaKdgLNhQItKOTOJhILGFvAF0WKP+UyDJ8S6zJ8n6U
 4CSdkONDSTNykCsS+S2mDReLxBsbr3gJxAx92utUuFJTsaFZ2IhD0JbTpzfHcGITWvUvECZe
 WhD4d81nCdUEVSSv7+KmgOXuDFqdGOvJX6YSQeDxpizAWVlzun5JPzDhDdh34lIn9y6IZn1V
 KAvx3y562lvf3+4hjA11XL55ATvNf60NNMCOGFl8BQADTxjQSDYphnRtS5zX0IidDqzGxvvM
 jHoh8mMcg2w3TNflutqR+o4AXk2CZG0Q6q9XaoxV/Y5eDpTjMzDMRMwahDdAHC1kYmtNZglI
 pWwmOwrfNsfFL9tRW4w+KNewBhl0Kyr3Znu/UUlWZjXYwXb6IUhZAD/XlSDIwLEEvBmc4a+d
 FVfYLhDcttABGnhyizhBgr/DXsZAV9Iv6+eDlDhiTPuAIm2EyQzCMjtboidzk7hdUAoqJ/lp
 b525JT5cZzp/8tHNFA7dg6ML6K4xT2MGrx2UKpUBza/fI8SjnwQ6Ce2sRA2AjtQu1P8KcP
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58333467"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eRKdf7KKkrxDGMwsu5FSTEHYAtfqQdnkVt065obFHAna4G2DD7WoQe6BjMdHo3KRNCko9Lq490YvTSElJwVlp2RnzF3cLgE3pElH7XhEYvmT8dDwkttrLEQxykDyLiTKcdwo3P2TBo+PYXkGFhevVSKY+O19rpfqunxtlG2wrO8oA0i6KotvbFKQ7IBdKtai89X6D0LMDf2JDVBttrcaRs3zCYQ/vDaeeiXtUWmuRIr/KqFWLHxhSAs+ULbrjrCpZ9Ue4BRCzuwfLzz9g/G94KlGaTAelYXEDyVYwJTyE3GflOEDuRUocpzY/EvKdXGaiqrUwzkHuo9SHg36i45MUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pRaYIUfkMkzZXE8d3moJMkHiUafesA///nNUwZGhtBY=;
 b=BZxhq1icNMM1CoGq/O/DCn/hcTQR1pjO1jIeglGADsUqvHWg3Omi160fA+6TiucuqhwBRmNYBT8CXFD+XsMhDWS5DX1BpPAwk1JUmDwecxsptfVqS4+UeZoaT7lDFnsd69RG0GL3zZzyRbpD8BMy4/O7+64XzJovUDoAWBD74flrj7mc07H4qatuQX8XnttbhLabxEWrCHt9ulaLyVhjvE2LJX/eCw6ncGmLOiVpUd04wpDfgUtz0edtqzBJw4/LKS5fh53+br+NtBiGoIThbOuJihG9kml7ioQQoMfaCP2WFhvzYJnLAyjm7tbSm0MdV5XeaK3RC1Mm1eH1kYEg/w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pRaYIUfkMkzZXE8d3moJMkHiUafesA///nNUwZGhtBY=;
 b=Zl3VgODgX/KHkMVJjwOWxmUPcOkM1NySylF7FVh4sQFggYd7HsiHoW02cHKvTTq9Ppgt0z+9XVc7PGL1m/KZpy74qcTJ21oPsdL436C3gP15sQfjmWeMpG6YPhupYCWIMBKbiVy18L74NfdbUIZuhsnZeAki/i7iapbh2MMYC8g=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v5 06/12] libs/guest: make a cpu policy compatible with older Xen versions
Date: Mon, 29 Nov 2021 16:33:49 +0100
Message-ID: <20211129153355.60338-7-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0079.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::19) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5d34d6d2-74ea-4534-dd15-08d9b34de3f4
X-MS-TrafficTypeDiagnostic: DM5PR03MB2842:
X-Microsoft-Antispam-PRVS: <DM5PR03MB2842982CB0FA2DDDEFC9A20C8F669@DM5PR03MB2842.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3513;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: rqLlYHxjwOY6uVrO6MpidNNOA3iK1YoGdzwGYezHdQATvewCg8COK9yHDRcEH5hbY7UrRc0hIpuG3xJr1qzQ8IKCKxVduGj3yQOZWHOjSc5uswIBuEaxLG+9TKmbKRp2NslTL++p7FrgVgWNT3MdSCCBGGbJfeyOTlexb7JhlhDtfSOW3pJ/OSeF1LP7PLcG4WV0B+I1/knzPFVKeidKZ53aKw6hCmF7D5a+joLEAHwnal1cARragB11ffqYgBYJhuEw5lgXbpk2In40fP0fKG+Qq9wbTZK89CHBvnYIAb7XCs7HFB8JfN6eghf82YAzH7GVGqL98le11/Tz/a5grnOBRoRoMUmjP0Iv4eHt70CJE8K8IIErh7NzmJytmwwUNqzW0+jJKWq7+BomBYL28+TvzAmT63/wAkrZRRMokuDvH6N/31VAxltYEi29xgJJOwJuQodik6VTj0dqN48VDV3sl8W+IMlxoE8W10O7nTP+F1KF9J0UJUm43K3HLSG+p8JGTjFVb+z+kAab9TJBeL9c0fw2TNAudgZQhNwjuH9J0OjOzka3t4Uc7BYieZ0kyCMHlI8FuPk76yXOAn0aNcEGhNjEid1WYRW3YGu9+LdP0zaQ0XUz4DKW3cvU2qI03IKAtmNODhnJzD0hS5EBiQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(86362001)(54906003)(8936002)(2906002)(66946007)(6486002)(316002)(8676002)(956004)(6916009)(82960400001)(4326008)(6666004)(66476007)(66556008)(186003)(83380400001)(38100700002)(2616005)(26005)(508600001)(1076003)(36756003)(6496006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?THp5d0VmT01ydXJZS0RqTUkybTVQT244UFJRdFc2c2hLZzVkcHV0cXFTby9v?=
 =?utf-8?B?K3hUZ0ZkZTZsd3NsZEZoSGZKTkZxSmIyckg5OWxlWkNvaE1lUHg2c2dmMm1T?=
 =?utf-8?B?ZjJaODB4VnhsWjQxRlpaZlp6aHJwSkM3UVRZQUhJbXUwNE9HUW9BSWFBL3NC?=
 =?utf-8?B?M0R3WGttWCtpODZ5M0dBQlFDUnFtcEFORFFHdlFoSUZLZFRLRVpuWXQ3bERq?=
 =?utf-8?B?TllkYVBDOXlua2tISmgxSkpTUFpqYkVLRldielF4RExTSlNXUGFlWUwyZm1m?=
 =?utf-8?B?Y0JWVCtOSjhYVXZBTTFIZlhYMFU2SHY5YTZuTWRtYmcwa0VKekN1WDZIRDJr?=
 =?utf-8?B?YXN4cjBBaCtZbm42aDRxM3dqVlpyaVRUR3Z6RktjZTJSZFNrdVdrY2ZKdFR3?=
 =?utf-8?B?T2F2MHhDUlhCNjdHK3ZjS0haZGl0SEFrZ0JhbkpFSUw3UVVuaFN5MmRVMzdW?=
 =?utf-8?B?eDl6REF4aXFCei94NFQ5S1kxMG5LeVFzRlRSWGJ2MmNyWEdEUXY3NCt2czJp?=
 =?utf-8?B?QnBlbUoyeGJYZGtjeitoREF4bVlQTVpIVnpWbjQxOUpoOVZPWmMzZWpwbmYz?=
 =?utf-8?B?RGwvNjFvbHJrbllFMjRJYnBqemFMbEVZL1lycllOdGI4U1VVYUxGNWsvaGlI?=
 =?utf-8?B?WnhFMXdwQzZpU1E5bldIeFVrRXBCNzZvSDlwSGxLdUptc0xtcDZUNG1nRjdT?=
 =?utf-8?B?UDEvMVhwTUtjZXhtaXJkcldDN2Z2Y3pFMFB3OTFOU0dLSDRwRkN6cUVOQXBz?=
 =?utf-8?B?bHBFb2tpejk2T1NGZ20vM2hrL04yVXIvNDd0Y0wxL3JXZ1BjYm5LeXI3YWlL?=
 =?utf-8?B?ZVZGekRXb0NwTlI2ZkU2WVNYV01qdzlIaFR1cFZLSDRwcmg4RTg4azRSMVhO?=
 =?utf-8?B?OXNwamF1RzlUMFJRVVRrb1Z0UUlvU2dlelRJRXk5eFBoeFFmcWg0M1J0NE1E?=
 =?utf-8?B?dmtKTHNWVEpGM1kyODgzaVRscmw2MXp3dWhWY2NqWUdyUkhXMmVUZ2tCSHM1?=
 =?utf-8?B?TlBCcS9obklVRVRXNHpCMWRLNlpkQ1JhY2hKa0Z5VUd0UjZmYXdRT0gyRE5L?=
 =?utf-8?B?V0xWaFhhZDJ3QXNORmEzblNzbk1KQXJQQ3AyOFF6Zy96akJkSUhyRFY4Y0d4?=
 =?utf-8?B?MUJWVFRVNEY4V1JReGN4L2s1WVJRck1RNTZQUW9mZ1FIdS9MOHRNaVlFT09i?=
 =?utf-8?B?NDJORUdITXRSRk1ESVlsbTdKRzlsYzJlVng4M1I2ZlUyL0t5dllXTVdVOUVs?=
 =?utf-8?B?LzNaL3FhMkVzbFB1Mmt6ckoyMU1JVG9JclFSaDJqdnY0NmZwVWhIeWVuTjY4?=
 =?utf-8?B?ck9Hd2ZUdEVMU2pmMWVlQmRUTlRWTXl3YU9wUGM1blhIRXdhejZlYlhQZWRB?=
 =?utf-8?B?VjVYK0VVVXV4dXFpZHdDQXpNMnMwQVQyRzFPK0orU054MzhkR3Q4UTdxSjNZ?=
 =?utf-8?B?WWJjNmlNVGtjQjNROXVZSVpDS1IxQmtjcGluV1d3QmZkVndwSW94SC96S1R0?=
 =?utf-8?B?KzFCamdzNEptb21CV0pBM2FVUWUvbXEzM2NaM1M1QnNjTjF1QnZEbFZCanR3?=
 =?utf-8?B?ajNMYzF1WWh4VDRrUlZvSlNYa3NDUDF2UjcwR3JJalRZbUQ1R09iZy9jcThD?=
 =?utf-8?B?ZXpTYk90dytEZER3M3NjYkhuWFVsblA5aU42RS9YQkRzQkdLczVPa0xFbCth?=
 =?utf-8?B?eWpYUUg0eXhnWWJsNDk5TGkvN3dUSjlTcGcvNDZXSlJSMG9KNmYzbmt1aWh3?=
 =?utf-8?B?b1Zzem50UG9uZWlhajFPb1hwRWlMTWsvN1dKc2YzQzMrL0lXZGMvUDZlTFhh?=
 =?utf-8?B?V1hGckdHV1NKRi8zSW15KzMzdGJjdklwTlFzSGxHb3NxdFMzRkpOTmRHd0pq?=
 =?utf-8?B?RzRHTXJDMEhKaGdqaHVUR3Iwa1ZSTkRTSFVsWGNMY29GL1RaOXZtMExTWkto?=
 =?utf-8?B?NXpQNUhyci9oMGxzWk5CYXBHR1pxUTNsNThBVDlab3g5MUlKcnpjbnZZMUdr?=
 =?utf-8?B?bE5oM29XOTl0ZGMvc05EQmFFQlpkNTlTRmtjdmc2QXlLM3VOODJVeEFHWjNN?=
 =?utf-8?B?NGtucVlCRDUvNm56L0YwcGhWUi9tYWFISklFdDRwakN6WkVSUVNtZWdHOS91?=
 =?utf-8?B?OUlEOXVBTktBNTFpTjl3bHlYanY4UktSakhxU1gvZ0h0dVZYUnlzYmRPSkhq?=
 =?utf-8?Q?F7QGqXFlmmQ0FunAZxIVxfw=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 5d34d6d2-74ea-4534-dd15-08d9b34de3f4
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:36.8970
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xrFhBO2QQDJEnBWb2kj+0W0Y94+fxmzgwMQv3ks6wVhWSfReDrXdb0v9Ybf2vZSTPrYCPOPfZ8wMZvIgHYDxmQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2842
X-OriginatorOrg: citrix.com

Older Xen versions used to expose some CPUID bits which are no longer
exposed by default. In order to keep a compatible behavior with
guests migrated from versions of Xen that don't encode the CPUID data
on the migration stream introduce a function that sets the same bits
as older Xen versions.

This is pulled out from xc_cpuid_apply_policy which already has this
logic present.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v3:
 - Rename function to xc_cpu_policy_make_compat_4_12.

Changes since v1:
 - Move comments and explicitly mention pre-4.13 Xen.
---
 tools/include/xenguest.h        |  4 +++
 tools/libs/guest/xg_cpuid_x86.c | 62 ++++++++++++++++++++++++---------
 2 files changed, 49 insertions(+), 17 deletions(-)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index 2672fd043c..281454dc60 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -817,6 +817,10 @@ int xc_cpu_policy_get_msr(xc_interface *xch, const xc_cpu_policy_t *policy,
 bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
                                  xc_cpu_policy_t *guest);
 
+/* Make a policy compatible with pre-4.13 Xen versions. */
+int xc_cpu_policy_make_compat_4_12(xc_interface *xch, xc_cpu_policy_t *policy,
+                                   bool hvm);
+
 int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps);
 int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,
                           uint32_t *nr_features, uint32_t *featureset);
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index 859c885c15..bcbf9576c4 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -432,6 +432,7 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
     unsigned int i, nr_leaves, nr_msrs;
     xen_cpuid_leaf_t *leaves = NULL;
     struct cpuid_policy *p = NULL;
+    struct xc_cpu_policy policy = { };
     uint32_t err_leaf = -1, err_subleaf = -1, err_msr = -1;
     uint32_t host_featureset[FEATURESET_NR_ENTRIES] = {};
     uint32_t len = ARRAY_SIZE(host_featureset);
@@ -496,23 +497,9 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
 
     if ( restore )
     {
-        /*
-         * Account for feature which have been disabled by default since Xen 4.13,
-         * so migrated-in VM's don't risk seeing features disappearing.
-         */
-        p->basic.rdrand = test_bit(X86_FEATURE_RDRAND, host_featureset);
-        p->feat.hle = test_bit(X86_FEATURE_HLE, host_featureset);
-        p->feat.rtm = test_bit(X86_FEATURE_RTM, host_featureset);
-
-        if ( di.hvm )
-        {
-            p->feat.mpx = test_bit(X86_FEATURE_MPX, host_featureset);
-        }
-
-        /* Clamp maximum leaves to the ones supported on 4.12. */
-        p->basic.max_leaf = min(p->basic.max_leaf, 0xdu);
-        p->feat.max_subleaf = 0;
-        p->extd.max_leaf = min(p->extd.max_leaf, 0x8000001c);
+        policy.cpuid = *p;
+        xc_cpu_policy_make_compat_4_12(xch, &policy, di.hvm);
+        *p = policy.cpuid;
     }
 
     if ( featureset )
@@ -916,3 +903,44 @@ bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
 
     return false;
 }
+
+int xc_cpu_policy_make_compat_4_12(xc_interface *xch, xc_cpu_policy_t *policy,
+                                   bool hvm)
+{
+    xc_cpu_policy_t *host;
+    int rc;
+
+    host = xc_cpu_policy_init();
+    if ( !host )
+    {
+        errno = ENOMEM;
+        return -1;
+    }
+
+    rc = xc_cpu_policy_get_system(xch, XEN_SYSCTL_cpu_policy_host, host);
+    if ( rc )
+    {
+        ERROR("Failed to get host policy");
+        goto out;
+    }
+
+    /*
+     * Account for features which have been disabled by default since Xen 4.13,
+     * so migrated-in VM's don't risk seeing features disappearing.
+     */
+    policy->cpuid.basic.rdrand = host->cpuid.basic.rdrand;
+    policy->cpuid.feat.hle = host->cpuid.feat.hle;
+    policy->cpuid.feat.rtm = host->cpuid.feat.rtm;
+
+    if ( hvm )
+        policy->cpuid.feat.mpx = host->cpuid.feat.mpx;
+
+    /* Clamp maximum leaves to the ones supported on pre-4.13. */
+    policy->cpuid.basic.max_leaf = min(policy->cpuid.basic.max_leaf, 0xdu);
+    policy->cpuid.feat.max_subleaf = 0;
+    policy->cpuid.extd.max_leaf = min(policy->cpuid.extd.max_leaf, 0x8000001c);
+
+ out:
+    xc_cpu_policy_destroy(host);
+    return rc;
+}
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:35:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:35:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234639.407231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigy-00062w-Ru; Mon, 29 Nov 2021 15:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234639.407231; Mon, 29 Nov 2021 15:35:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrigy-00061l-Lb; Mon, 29 Nov 2021 15:35:44 +0000
Received: by outflank-mailman (input) for mailman id 234639;
 Mon, 29 Nov 2021 15:35:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrigx-0003uH-Oa
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:35:43 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 027fe5e0-512a-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:35:42 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 027fe5e0-512a-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200142;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=vJgygXMLh29agTSCf9vMlpEoMHoCQz1edDiz8YwvCI0=;
  b=hm8LnQ4qQvzx8HtAATk5V4LOkJ+mHDZIqHv8XbCL/ZZkX+A2gyak1ZvO
   aQ9SJ22fWj36MW3BTCO1tSr8CL+TjEnkSTLbpuaQavgelsgOgxD8PCki/
   2L2ucIX9fDyFz5XvuI/cCyYY+yguVTKB7eIVrmYHfljLtMa8FPBSwgAWG
   o=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 1ZSfBFPqGxDybh1oAi0KUXINMp+fbwVLGU4D1XqzRuVx2PL+ap3hw63KAt6l3n0ETM4OxNrEVm
 9hDGUMit99a18B1rM3DD19Gb/TldzS7g5M+k0jGH2mBo/Rfsb4MfyfIFn+UhiXD66+SGZROrq3
 TY9oRrZgJSFcAvG1DXi0xmAQiiLNQ0GlA6efazHSZSU2qdV6bWpwyRUMGHP20rle6VXVOMTkKZ
 ybE9n5Mu885U+V7bEKeTHjzty+tg/aEyrG5epL1b2ymrcpCmJdcAFyr0yO24bpBKT0Ozd1zxtn
 FKWcGYNsgPgxE4CnzuR7Vb2T
X-SBRS: 5.1
X-MesageID: 59208295
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ypcf+6gRs5L8MrZwcwkRyDMEX161gxcKZh0ujC45NGQN5FlHY01je
 htvD2GEOamJajD3fIojOYu09RhVu5OEy9I2HAM+qng2Hy0b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy0IDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1ivLXscDp5YJbykc4sTxBoHAZdOoBZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t15oWTayPO
 qL1bxJNRhv+QiVqO2sPEb4Vx/mMtFLHT2ZX/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 mDJ5WPiGTkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24ma/RNB3O
 0ES4jApr6U56AqsVNaVYvGjiCfa5FhGAYMWSrBkrlHWokbJ3+qHLkcNZ2J4VYx4j/E/bw023
 2+GuPDuKCM65dV5Vkmh3ruTqDqzPw0cImkDeTIIQGM53jXznG0gpkmRF4g+ScZZmvWwQGitm
 G7S8EDSkp1K1ZZTv5hX62wrlN5FSnLhagcurjvaUWu+hu+STN70Ptf4gbQ3ABspEWp4crVjl
 CVc8yR9xLpXZX1oqMBqaL9TdIxFH97fbFXhbadHRvHNDQiF9X+5Zpx36zpjPkpvOctsUWa3O
 x+K418OvsQKbCfCgUpLj2SZUZ5CIU/IT4qNaxwpRoAWPsgZmPGvoUmCmnJ8L0iyyRNxwMnTy
 L+QcNq2DGZyNEiU5GHeegvp6pdynnpW7TqKHfjTlk37uZLDNC/9YepUazOmM7FmhJ5oVS2Iq
 r6zwePRkE4BOAA/CwGKmbMuwacicSJmWMuo8pMPLYZu4GNOQQkcNhMY+pt4E6RNlKVJjObYu
 Ha7X05T0l3kgnPbbw6NbxhehHnHB/6TdFo3Yn4hO0iGwX8mbdr95asTbcJvL7Im6PZi3bh/S
 PxcI5eMBfFGSzLm/TUBbMai8Nw+JUrz3Q/ebTC4ZDUffoJ7Q1Cb8NHTYQaypjIFCTC6tJVir
 uT4hB/bW5cKWy9rEN3SNKC011q0sHVEwLByUkLEL8N9YkLp9IQ2eSX9guVue5MHKAnZxyvc3
 AGTWE9Kqe7Iqo4z0d/ImaHb8Nv5T7ogRhJXRjCJ46y3OC/W+nuY7bVBCOvYLyrAUG7U+bm5Y
 bkHxf/LL/Bazk1BtJBxEug3wPtmtcfvvbJT0i9tAG7PMwawErplL3SLgZtPu6lKyuMLsAe6Q
 BvSqNxTOLHPM8L5Cl8BYgEia73bh/0TnzDT69UzIVn7u3ArrObWDx0KMknekjFZIZt0LJghk
 LUot8Mh4gCijgYnb4SdhSdO+mXQdnENXs3LbH3B7FMHXubz9mx/XA==
IronPort-HdrOrdr: A9a23:VFyOmqEj0pagC30FpLqFcpHXdLJyesId70hD6qkvc3Nom52j+/
 xGws536faVslcssHFJo6HlBEDmewKhyXcV2/htAV7GZmfbUQSTXedfBOfZsl/d8mjFh5VgPM
 RbAtlD4b/LfCFHZK/BiWHSebZQo6j2zEnrv5al854Ed3AVV0gK1XYfNu/0KDwSeOEQbqBJa6
 Z0q/A37QaISDAyVICWF3MFV+/Mq5nik4/nWwcPA1oC5BOVhT2lxbbmG1zAty1uHw9n8PMHyy
 zoggb57qKsv7WSzQLd7Xba69BzlMH6wtVOKcSQgow+KynqiCyveIN9Mofy8QwdkaWK0hIHgd
 PMqxAvM4Ba7G7QRHi8pV/X1wzpwF8Vmjbf4G7dpUGmjd3yRTo8BcYEr5leaAHl500pu8w5+L
 5X3kqC3qAnTC/orWDY3ZzlRhtqnk27rT4JiugIlUFSVoMYdft4sZEfxkVIC50NdRiKprzPKN
 MeT/002cwmM29zNxvizyxSKZ2XLzsO9y69Mwg/Upf/6UkToJh7p3FosvD30E1ws67VcKM0ld
 gsBJ4Y442mfvVmHp6VO91xNPdfcla9OS4kEFjiaWgPR5t3cE4klfbMkcEIDaeRCdo18Kc=
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="59208295"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WVtAsq/W7tt+DTWedUQg2OAB8Uy8YUxc/eV3bH+UfBXVFp23/2OZFj98Kj3u8DDh6CwvLYv2tbr8jHBnBxa574MKbllRhgNfJNwi2k8p4JSof4QFYkk6yfu2V3HsArqWQF5QOE0y6ZngJsGZPbIdyH/VHkDQf/40DQUoFrQk5wAD7BLiiv/LrsZ6YVv2Q3cB8ubZS1Ji1F1mY7l9LHQyT1I6NWy4CXAe4b+/B9BJRo4VB2v5ibIigdIhs0npLG06KZEwohIOsqL8FJlEXmt4T7hmdXIBFAGn3avRubyzKcICj1fkXKlKaq7BCegTP17pEBc6Jv/qGpdGWaOqhVh7vw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pYxN81WyLozHtjD5+pJmUF7N4C4RnSrAAPdZ1oW1kQ4=;
 b=L53FYGTcnOkK1/baj7Wi4cWdM5SOBQDibhULClfwQAPivcSa5Y/PZUIQm6a2Wf79blBssPLD8iZ1qI0bvkcjWnmLpULN4TLuZaNzH9hfbUQZGIniYum4FPMnStfbh4jRmnMDtAZq92pUEbWfQzA/vXcC9BfJ0pUKx0J6j8XgOwK6+5qfjDXH5rJor/TCJ5sc7cE1D6ysN6Dz0fF11/H8KNnj4XnunzxY1Ec76vpdEJf6ytJxHU4W0A4e5uGzvQGNza8nw8TwNx4I8KRhtyofP2cp2qcc2AyTBUVCPl9U7xUIWRqvf62AzsXTr6UScabDdv0ayDaNFcmpYatb7g9NmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pYxN81WyLozHtjD5+pJmUF7N4C4RnSrAAPdZ1oW1kQ4=;
 b=QiLnY9101q/y+qyl/gfbEcJSpXtDKcVqdVP/i3CPp1ZzOKzRRLy+djTMSwVIGB/A32pZUc/FMmp3lg7VoKCQkbqZOYSTua1DsIg29mlk9dgTQyHg11rSEGwCx71I+0Zm05eKy0//86WBPxldaPL0oJR7Ene+AU5i9ySKitYowX0=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v5 05/12] libs/guest: allow fetching a specific MSR entry from a cpu policy
Date: Mon, 29 Nov 2021 16:33:48 +0100
Message-ID: <20211129153355.60338-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0089.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::29) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4e36462f-76bd-4459-68af-08d9b34de16b
X-MS-TrafficTypeDiagnostic: DM6PR03MB4764:
X-Microsoft-Antispam-PRVS: <DM6PR03MB4764C11328079F59839F1CE38F669@DM6PR03MB4764.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: vkLkgc1wTv0JeR+zUAk6pPFXRKu4Rgv5ZTA+mQDlkBnLtztFQapr1Lovu+MQOi1QX3sanzfk738gR1BABOT8USjJxM2aNh1tIj5PyCNk3wNejAMh37i5up9o8d85L93gvYy29tFLqu2IWAPF1XYsmoos7XCYL7gZDReuhbKbX36joqh9IPaZlK/XXlWPv0XKExz+v3SytPayBZmtHkP+A74ky9rUbiY9SXsEgRe5jVIa2RO7o2EZu5Q0bAon+BLcUGIgt4pyUxRvn5CGWIsh+bZ+TWHoCRWhUqorLTnw8A09ahOaD6s4lZCrZ2b2J2v4+19b+y1cgdGuMsckvWt3CBcNZ/3zkTX1nm8dg8VgQOmt2uOLMT0JvhSbLSlsrilL/34HAaP0fyybJPub9YGa3LlbpB3snyrJuh6+LL6NHw3PcJfpICtN5A6ypqOp3/U4frfEivnyg2ovFpFX3Uv0D884W1rroK/ZCoqyIfJYje4l3fBrfFqUNgEdS/K4wC//95cNWjQhvtLUewo7xdFot+z61XKKehzlM2bI3OfFTsXCf3RA5PwcfVdRnPOKVTSWOxsn6LaV96vItc8laD3CLKfjKs9B/JL9fLitkjdapGT8wscLZQHXPPnD/065CnxRktdSMpDVaviz1M1yUJql5w==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(4326008)(2906002)(1076003)(66476007)(6486002)(82960400001)(38100700002)(186003)(83380400001)(956004)(2616005)(316002)(6496006)(6916009)(26005)(54906003)(6666004)(36756003)(66946007)(86362001)(508600001)(8676002)(8936002)(66556008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TEdHbFdQWWlYeWhiTlVNdlZ4b3dGMU9URmNkdDluVGZEbk5zS1BoUEJkTmhw?=
 =?utf-8?B?OWc2TzM4blVQZ1owTGRRczJvQzFOeWVQYmxxLyt3LzNaTlRQbkZ3TmgwV3NN?=
 =?utf-8?B?emQvWnluU2RraG1PekpiRVpXVm43RWNaTzR0MzNKMnVhYXN3ZHcwS3FkdTF5?=
 =?utf-8?B?aHJaQ2QyenNSRytJSlVDRk9TQTJCQ0dTNG1pN05PZ1dCaVFGbW42OU1CVm93?=
 =?utf-8?B?N0RGM3BiQlUwL3BDeDdBWWRycnk3QWhoSFFkTW1UT0tieWJqS2NsNnBoNFIw?=
 =?utf-8?B?TXpWK1lHM1p4UUVQcjgyUDdxak1XeGw3QXRkSHZpZ29hRXVHdzVJaU9JNXNB?=
 =?utf-8?B?cGh6Ykd0TE5jd0ZKdXZ1TWpKUzQ3d3RyNUYvQXdtUUhnSW9LaEZEcWYzRDZG?=
 =?utf-8?B?bU01dWpNZ0NRYmcxMThIVFBHY2thNlBUNjJ0bDZlN2tpLy9YU2Y0a2dQKzJ0?=
 =?utf-8?B?cVg5Q2JudmJpbG05SXBCM0F6dXZMaHc2WmRtQkVxa2NMeXladkV2S01wTUNJ?=
 =?utf-8?B?SW4wQVN0b0g4NFNXZjM3TVVzbVA4THJJZ2p2MU9haUtBRlBxeXdrSFo2NVVF?=
 =?utf-8?B?RzFrWVp2ZkpxaFY0UTZnYXFLc3lGRjZUTlMwYVF0VGZrU1I0RlliTmZ5NFZj?=
 =?utf-8?B?S3hJdGpKTjk3UGdjWTJJMzBlN1g0WUc4VW53dmVIcWl4cTdYbS9EQ1VaUFUx?=
 =?utf-8?B?QjRkTW5qZ3lOcU9ta3d3Z0JvTDROUWcrYjRDdXNIdmVGdVZrbVpwRE1adVRN?=
 =?utf-8?B?VjMwWjZRY2ZWNFlNUTYrKy9uSU1yR1RWWXdHMHNUUUZwQ2x1LzZ3QnZHTnRJ?=
 =?utf-8?B?TStaWmJvbE9jZ28vL3dDQzVtd3VVZHFSc1BYN1VyOE42Mk9qWGRNSWdZUE1L?=
 =?utf-8?B?MVhzdVJMbWNsSEt6VG9KZzRybmxIUDFCcHBveitGdWxJS1hGcWlIUnZIK2pj?=
 =?utf-8?B?TlZYUDQ3YU5wakV5SWZjNUYwR0E0RXZvR0VYak1NSGdNVHh0enFrWGpadnEx?=
 =?utf-8?B?VXpvN0w5VlZ6STN4LzBvTk05S3djdnVRRDR0TjNIOHViZm1hdUV1M3RPbXNE?=
 =?utf-8?B?d0NQZFhNdUp4REdQd3UvYmQ3Z1ZQSWFxWlFSd1o4Rjh5eDMyL3VRODZDeGM4?=
 =?utf-8?B?OGh0RHVnYjFPN28rVUk0L2hrODEzT2podnprNWRQbStNaEtBV2dlR1c1MFYw?=
 =?utf-8?B?Z1EzY0hkWVVTd1lpaWxuN2tiSURIdi94T2dyWnQzSWsraEQvL2xtVWlPdlRU?=
 =?utf-8?B?dlBKOWxNa0ZJVlN2a0lOVmNndXlkVkZCZDBzWm5yU09iSVFKR0MreG95b2xR?=
 =?utf-8?B?RkpYVHMxMUxEQ05GVXplR3hHSmlGNk56elFZVk1RYSsveW44WWYrRG96cmxR?=
 =?utf-8?B?SUh1eXpidk8yTVJBeTBnS3BzOHVOdkVnWGlQelFRN3dDUnN3YnNySGVWYk5r?=
 =?utf-8?B?alczMENLVHNVVS9yTDMzNVN3ajNGNkRPMWtMei9FTlZCUkVTSjZUOTZ0SkJ1?=
 =?utf-8?B?WWdUK0F6bFl0eXBZSjJwWk1rbFZBaTlWN3NyY1c5MHh2ZXE2NkVSR0Y4elJK?=
 =?utf-8?B?UURxQnNHQkFBSnI3M1N0WU1jUVlXSXRQMVBUbnFuYUtjR0hTdmswL3F5RC9C?=
 =?utf-8?B?TlhTQWcydjYvUzRSb0RFSDd4aXNiSVVndk5hOGw4M3FYNUVKdmdxclc1dURj?=
 =?utf-8?B?QWNPNlhiTW1RSEpjazdCOE40YUhsZzcvU3VhcWw2N2ZDYUNnZUd6TWZ3OVEv?=
 =?utf-8?B?THM5WjJyQzdnd0JrM2ZuaWdOVCsxNmgydTBHYXBuRHNLYkNFYjhxVUozWHYw?=
 =?utf-8?B?c29vK3JnNENxbjV5VVJZd3BBNHZNNGR4NXgwRXY0c2xEYlJnWmx0anpwME0y?=
 =?utf-8?B?aDN1aXFHSG1QekVGcENVWW1qbmdVVDRJSmJZb1hWbWlzeXRkZzQ1U25JQVdq?=
 =?utf-8?B?TVJxUll5Y0pGaW5lQlA2dFB3dmdBbHVzV0xNdk1KN1locmVXSFBHTVN0R2sz?=
 =?utf-8?B?azZaMGFYdVBmWkM1cHRQeDZtdzBRQmI0eExubUsybGZpS1FPQ0dMM0lMSVht?=
 =?utf-8?B?QkFoN0dydlVMaEdRQ0JUc0VPUXB0MHdWbnpKVVhTTE91LzNLbHdPdUNJMlNn?=
 =?utf-8?B?NnlSQjVxVHBCaE1RN3FyYVBuclJVOThBZGE5TWl0MExkdUZDOW4xcVZJM25C?=
 =?utf-8?Q?ZnhJ0QhJxgJC4+jGDolCwsw=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e36462f-76bd-4459-68af-08d9b34de16b
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:32.7413
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: autdN44XvNROCNLm1uPB7WxNXoLnhA98fmL/2vtKtD+FelWAxogVUSbV25vnpEQDYvOT9rBj+6fVOGcJYeO47A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4764
X-OriginatorOrg: citrix.com

Introduce an interface that returns a specific MSR entry from a cpu
policy in xen_msr_entry_t format.

This is useful to callers can peek data from the opaque
xc_cpu_policy_t type.

No caller of the interface introduced on this patch.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v3:
 - Use x86_msr_get_entry.

Changes since v1:
 - Introduce a helper to perform a binary search of the MSR entries
   array.
---
 tools/include/xenguest.h        |  2 ++
 tools/libs/guest/xg_cpuid_x86.c | 20 ++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index 0a6fd99306..2672fd043c 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -810,6 +810,8 @@ int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy,
 int xc_cpu_policy_get_cpuid(xc_interface *xch, const xc_cpu_policy_t *policy,
                             uint32_t leaf, uint32_t subleaf,
                             xen_cpuid_leaf_t *out);
+int xc_cpu_policy_get_msr(xc_interface *xch, const xc_cpu_policy_t *policy,
+                          uint32_t msr, xen_msr_entry_t *out);
 
 /* Compatibility calculations. */
 bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index 7779a3e1dd..859c885c15 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -878,6 +878,26 @@ int xc_cpu_policy_get_cpuid(xc_interface *xch, const xc_cpu_policy_t *policy,
     return 0;
 }
 
+int xc_cpu_policy_get_msr(xc_interface *xch, const xc_cpu_policy_t *policy,
+                          uint32_t msr, xen_msr_entry_t *out)
+{
+    const uint64_t *val;
+
+    *out = (xen_msr_entry_t){};
+
+    val = x86_msr_get_entry(&policy->msr, msr);
+    if ( !val )
+    {
+        errno = ENOENT;
+        return -1;
+    }
+
+    out->idx = msr;
+    out->val = *val;
+
+    return 0;
+}
+
 bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
                                  xc_cpu_policy_t *guest)
 {
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:36:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:36:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234652.407248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrihL-0007d0-5h; Mon, 29 Nov 2021 15:36:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234652.407248; Mon, 29 Nov 2021 15:36:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrihL-0007cr-2S; Mon, 29 Nov 2021 15:36:07 +0000
Received: by outflank-mailman (input) for mailman id 234652;
 Mon, 29 Nov 2021 15:36:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrihJ-0004Rj-LE
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:36:05 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0db9ffe2-512a-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 16:36:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0db9ffe2-512a-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200161;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=ikz8Od6tujePp3huh+RLSBKJ6YNbo1RzzrtmzTVzTf4=;
  b=BvziWVFXWOIIKqW9qVTzvflMOhQ/DLHccVXcYFCNlNEXG5Fc8j3HqydK
   3WLsl45WjklsLC3JMxYWpUkoud3fGImAxfDJ/RUZlTCDTATU7Lmw4Rdob
   qZrME33pGj09Mwm6NvVY3NE8PsbCUqZNuSb6xnDrsJUmPImmkKTDHeoC+
   0=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 0gdoAH2eX1lxhgWtP/Vv8Oih01QsfykTkrmaQRmszixCYPdx8WvdyHizpG8vqHRqHX8vgQfmsJ
 vgW995aeqZX+3yPgDufmKLmh+I10qOjofsogwS+vIxjT1421Blolqogdgc1Sae/v7I7EaX+LkT
 +P6Ua/wKkYLM7QT8tJ1Bs4dBZ/jptqELhCp3vddFBGy2L1hEQEwqnPlosbXUzgAXnWmq6eJy8f
 A5UdoKSNwp1XRKUrdgU+ACOsMWhxPJtiOU0NZulEhLNB9y5GisArYh00JKztKbvNdfUNp2YO+7
 ILNYIJAMMu+lwXzCCTyAv6+7
X-SBRS: 5.1
X-MesageID: 58817385
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:pspsdqlsoMfLjAz0tTL6hS3o5gxiIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJMWzvTOv/Zajf0ft4kb4q//RwA6sPTzoJgTwU5/C4yEyMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q52YHR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 Ppy75HhUl8KB6LnwtpMdxoDDnlnGqITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBNPsM44F/Glp0BnSDOo8QICFSKLPjTNd9Gpg1pkRRqaDD
 yYfQTZAdBLBakdGAHk4JI83ocSpuHDAaCIN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wp
 G3c+H/iKgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRok+hWfpPJ
 koM4C0soKMuskuxQbHAswaQ+SDe+ERGApwJTrN8uFrlJrfoDxixKVdeQ29aMP8fu+Rse20O1
 QSUx8rOCmk62FGKck61+rCRpDK0HCEaK24eeCMJJTc4D8nfTJIb1UyWEIs6eEKhppisQGyrn
 WjWxMQrr+xL1ZZj6kmtwbzQb9tATLDtRxV92AjYV3nNAuhRNN/8PNzABbQ2AJ99wGelorup4
 SBsdyu2trlm4XSxeMulGrtlIV1Rz6zZWAAweHY2d3Xbyxyj+mS4Yadb6yxkKUFiP64sIGGyM
 BaJ5VwLv8YDYBNGiJObharrUazGKoC6S7zYug38NIISMvCdiifalM2RWaJg9z+0yxV9+U3OE
 ZyabdytHR4n5VdPl1KLqxMm+eZznEgWnDqLLbiilkjP+efONRa9FOZeWHPTP79R0U9xiFiMm
 zqpH5DRkEs3vSyXSnS/zLP/2nhWdyVmXs6v9JQMHgNBSyI/cFwc5zbq6epJU6RunrhPl/eO+
 Xe4W0RCz0H4i2GBIgKPAk2Popu1NXqmhX5kbyEqI3iy3H0vPdSm4KsFLsNldrg77u1zi/VzS
 qBdKcmHB/1OTBXB+igcMsah/NAzKkzziFLcJTehbRg+Y4VkG17D9Oj7c1a97yIJFCe265cz+
 uXyygPBTJMfbA1+F8KKOum3xla8sCFFyuJ/VkfFOPdJf0Do/NQ4IiD9lKZvccoNNQ/C1n2R0
 APPWUUUouzEookU9tjVhP/b89f1QrUmRkcDRjvV97e7MyXe71GP+44YXbbaZy3ZWUP15L6mO
 bdfwcbjPaBVh11NqYd9TepmlPps+9v1qrZG5Q14B3GXPU+zA7ZtL3Taj8lCsqpBmu1QtQesA
 x/d/9BbPfOCOd//EU5XLw0gN7zR2fYRkzjUzPI0PESlu3MnoOvZCR1fb0uWlShQDLppK4d0k
 +4utfkf5xG7lhd3YM2NiTpZ9jjUI3ENO0n9Wkr23GM/ZtIX92x/
IronPort-HdrOrdr: A9a23:tgEQ3KNWxXw6xcBcT1v155DYdb4zR+YMi2TDiHofdfUFSKClfp
 6V8cjztSWUtN4QMEtQ/exoX5PwPU80lKQFnLX5WI3NYOCIghrPEGgP1/qB/9SkIVyEygc/79
 YQT0EdMqyIMbESt6+Ti2PZYrVQsOVvsprY/9s2p00dMz2CAJsQiDuRZDzrd3GfE2J9dOUE/d
 enl4B6jgvlXU5SQtWwB3EDUeSGj9rXlKj+aRpDIxI88gGBgR6h9ba/SnGjr1sjegIK5Y1n3X
 nOkgT/6Knmm/anyiXE32uWy5hNgtPuxvZKGcTJoMkILTfHjBquee1aKvC/lQFwhNvqxEchkd
 HKrRtlF8Nv60nJdmXwmhfp0xmI6kdm11bSjXujxVfzq83wQzw3T+Bbg5hCTxff4008+Plhza
 NixQuixttqJCKFuB64y8nDVhlsmEbxi2Eli/Qvg3tWVpZbQKNNrLYY4FheHP47bWzHAbgcYa
 pT5fznlbRrmQvwVQGdgoAv+q3iYp0LJGbHfqBY0fbllwS/nxhCvj0lLYIk7zA9HakGOut5Dt
 L/Q9NVfYF1P7wrhJ1GdZI8qLOMexTwqDL3QSqvyAfcZeo600ykke+C3Fxy3pDtRKA1
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58817385"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=J945ZGFpN+SQ+3oyLKzu4tRbkq1sFSrSjmhUxiFrNGhaApOR5vGxV2hT3KRMUVe04jjVTO3rN65heSLKX1xFuJAB/jPtvOjIZd6Z2jH3X4OLLDUsmRkPbiYlMLU0JyU5BQghfyvMh+iNmpv0oHrfO9RKb3qJfQ6/NJ3w431DETD0GffE/TYKMn7XJk+nt7lAJAtBCjoJrGmvsn3FQnNsHJ0LULzl6o7RwhfhGsS2VLsUGfFxLI4u4/8JkeWPNHZ36XvKndSDDnAcMLd3h5DDyhNRy65vSvjL2zYweDxWcgvUqkZzCQj2RqgDL6Cz5H1T/7FdwHNYgV2TVngdrzEWiA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6273KZmAZtXTzPVDuifwUtanJBWxIn4jC61JEnVY+80=;
 b=AuGgq75Yyr2L7BGZ6kpFC/HVAwdYUlPw4tkJSmDozP0o1w7AqJEO0MBCE3Ygieih3W0ESKuJ3XsKPoLTsTYS7Oym+mPjubKcBummANOiN248Uuz0zLVqdbU4QKQ+fy80cNXdE3emDsru7b8TXjJ4PkPwJET3Vz7seA9m/FA0MlKLn8kCF9gtRfQzGJe2i/Nch2kP+vHwjIpdC6R8HZnxo1WD0uglVRclQwVkF/C5Fb/6xy0ufmZDkbOyJqG6YAawq1u+nuAp3qjZXe9lGOmed7fdlLqpQ1RwSsTEhEZtUgd1A352fURB2fJdGMtGHoAdAEBAYWl744vIxAXlRZZzKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6273KZmAZtXTzPVDuifwUtanJBWxIn4jC61JEnVY+80=;
 b=k8uitRCBLoDPHUPtrqsMgbQVh3g/lJfBDo+oxAC/N6k7ROEBPNap+87WCx0amgnbA4IF2y5yumE5bJuczlbTg/KQMRII3Nn/CmAQP7LfHZQRowlfpvNB4T1JeF9zFsFw93ev6WhvW3RGNGlEvhIqTmkl6Mkac6zmsrXnSZAgH/c=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v5 09/12] libs/guest: apply a featureset into a cpu policy
Date: Mon, 29 Nov 2021 16:33:52 +0100
Message-ID: <20211129153355.60338-10-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MRXP264CA0035.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::23) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2d7a2944-fd1f-49e4-be8e-08d9b34dec97
X-MS-TrafficTypeDiagnostic: DM6PR03MB5340:
X-Microsoft-Antispam-PRVS: <DM6PR03MB534091DB3489924CADAF9A7A8F669@DM6PR03MB5340.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: MSUS32KMWT5FO0qj1mdOqzDBaYutPhcYgm2Y0nhuT6CezqLxZ9+RrC/bH4et6sOpkGYKpgApH4t1/lDw2AzI55P+Yo7pltsv6ahBlMeVKtB27bITCTcKa8loQj+XbFyu9qRp/JGhMk72waocqpepLvFsrldmFnQDBOgipoEBCeP7HcxhCTFdc9cJyImLM2p8WpJKuFfQPUx3gElQn9LWzBqXBbXUIiLKh41z3sGpCX5kKcchFbhpMZFyKrR3vk2mg745SacwVl+ZUwbtQ326BYmxdkWDx6MI6h+9tQ9MojuLf48iRjO+uKOZlzxQneIOrj6bvxrh58U5hJ2MRekQMR+z6wFUkDNcFZ1wM0iG1ah6kyDsBfEJkumK6Jd1JNLrk8284jrWuLn5mRsuvN/h8wR+EbPD5zXlg4v/G3VmpE1fFJ0Wb45vxLyXIJvbohFGJwjWoiftjPi+BlMrjXMkIUOdSoMxyNfmRLELoDUHnHgpvFoDlTTTtJQ+KuYigiIJ0ZF3XFfQ9kzs1TeTj3UrC6zUIgIlD36tItdu2PY395N1sgJeK5NamgNERFFGj5QtzRnyejaf2leJzu3AQYt5T2E9nYDp6nEIhoxyZ9rroBgWe4ax3lFBlD3eI8H89XvxGMd5yZJwRX0CW0xcvYUhcQ==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(82960400001)(66946007)(86362001)(1076003)(508600001)(5660300002)(8676002)(6486002)(316002)(38100700002)(6496006)(26005)(83380400001)(6916009)(66476007)(2906002)(66556008)(2616005)(956004)(8936002)(54906003)(186003)(36756003)(4326008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y282bGVmd0hDZmZvZ1docnFHQnRST2czL3pBamtReGxqcEJHSzBHK0k1amtk?=
 =?utf-8?B?M1BoeVpmVWwxT2ZZVmRxOTJxV203dTNPYnJTMlk5WnZWWXcvVFJlWmRwNmFM?=
 =?utf-8?B?WHNJVTdZZzdZYXVIQ1pValJJVTVFUFZlNk90NStxTW9rMW9CSTFlVXV0MXRn?=
 =?utf-8?B?Um41ZTJiRklkK0NKYWtYd1A5RGl1TGE2MitORnk0M010Mk1tTHNQN3IwV3dB?=
 =?utf-8?B?ZFFmWlV6UU4veU8xeXZYcnBROGcrWnRKbEJ1alp2bHBlOUZiT083ek1zdUx3?=
 =?utf-8?B?VzZ1MHhoaUdBM3p0Z2wxNVlkNlhBM292b3BsVFpydFpNUS9UL0s5bUZZOEJQ?=
 =?utf-8?B?bno4blZiM1JtOVhLd2xESHJ3QXZWMjZLRWZ5a3lPZVBOYzAzR3hSakpDVEJV?=
 =?utf-8?B?TWNhZEswYWdXeU5jLzhMRHNGM2Iza011amhRTk9vMnJJbmhsS3ZSbHN6OHVK?=
 =?utf-8?B?M2tLMFhqeEk1WkJlSnIzWEVVTExSTUJJUHFJTTJabmNrUS9zOE45ZGVDMnkr?=
 =?utf-8?B?TThvZUthUlNQV3d3TkN3L2U0QlZMZzFzREF1UkNqT1h5NTNhYXh1d3dEV0gy?=
 =?utf-8?B?ZjdkaVUrSkVpNE5HREM1akZvblJ1ZkhOOXRUTnRqbTlTdTFWbThlMFpmdnNI?=
 =?utf-8?B?amhBc1diSEJNcjNsZXZuRHJpSEJQb0xMUmQ2bTY3SFF6amh2ZFg0MXhQVVBi?=
 =?utf-8?B?MmxSSkRaRjJwS1RxVTZpcm5kbVhnZDRrWDl1MFAwNE5OOGNDZXlXbjJ6YURk?=
 =?utf-8?B?ZlpPTnErd3I1OGxuaGlrS2ZydTZ1MUhFcVNuOFZiMERSclhhODBXWDZtYTNp?=
 =?utf-8?B?cS9hZ3NZSEZ3NkYwMWRQVVVwZXdLRHJoSWZiZ1J6UmZWMWE4aXYwUFNPa0lp?=
 =?utf-8?B?Sm5wS3BHQUEzcGE1aG9SQUEvbHlyc2JBWFk0b0p6cGZORU81V3lQdWdaVHp4?=
 =?utf-8?B?akJBemt6bUtmU3gzbGJtWERDdWNCVEJDNDkxeEk3MllDS2paMzJkSVRaZkRD?=
 =?utf-8?B?LzR1L2syWlI2TTRmYW15Q1dFWkVIeGFqZWl5Njd2RWx0dWRYYmNsdlZKU3VT?=
 =?utf-8?B?ZzlQS3lTNU5zczZUQlVhYW0zeUoxeTVRYm9TVloyQ3pmaTh3MmdXeE9EeTlZ?=
 =?utf-8?B?Rzc0TWtDNC9lbjN5VTRlanVNQ25BZGpoL3JCQTlsV0xERE45TU9WUkRHWUZn?=
 =?utf-8?B?bHAraTF4UU40YWVvQ3ZVRXplWXNQWkF3NlBoZERGQTRSQjEzYyt6Y2V3SjFl?=
 =?utf-8?B?T1cvMzRHemxOeHZ5NWtnRzhZbENOSzNPNHVxOWxuS3QxRjBoazQvV0RFNHMx?=
 =?utf-8?B?cE45c3JBOWR2WW4wU3ppMkh4QmpUb24wWXVwTlhKNlZMSXgxeitSem1RQXlk?=
 =?utf-8?B?RTE3UDI4ME4xLzBsSC9GRWIzUHhzaUx4VE4xNmlHQlI0NTdlOXdNekFCd3NH?=
 =?utf-8?B?aG5ueGl5UWk0azZDVGJXZlhrOTJTRTRCWWtIdXZXSk1TcWRZV3JoRkduM09h?=
 =?utf-8?B?Z0FzZ296SURjaGtvWDBJNG1Ed2pTVUFBem9ES3djelVOcTAyOVF0UURYWTYx?=
 =?utf-8?B?TXduRnV3M0NCVEJKQjBjUEl4MUFCMEhCQ0FjeTBvOWc3N1g3RXRMS2NvaGw1?=
 =?utf-8?B?dXBuY3dHYWRJendoTjJWbHFleGxydUg0QzBMdGc3NERWK1NrSkQ2TDd6Sm1I?=
 =?utf-8?B?QmZlQkpzQjN3M2ZYZ1J1R2xGNjJtMVo5Sm1oNXpvS1NkNU0wRnlNaW9QRWgy?=
 =?utf-8?B?MkZkYkVJOGxBaFNtWi9PQzVSS3g1dVdmZFY5T0NpNEtadERSMGh1SkR4eUZW?=
 =?utf-8?B?UEkvdFdidzFvWjRpY1R4UVJKOStuM2FFRmJuWkFJd0hRTk1lRmpNZ1FnbU9P?=
 =?utf-8?B?Mit1N1EwRjVKV083MXdnWXg1QlhSOW1hZ1Juazc4Y2NYVWJ5MzE3dEdPMm9w?=
 =?utf-8?B?MWROSExxNzdYWUpPeldoLzVaMTB1cXNmZmozTnRmOE43amZUbWhpNkpHcjZF?=
 =?utf-8?B?ME9Xc3dFbjhZNHNTSmpZNGxwZmhTVkUvcE15eHJ3YW0vN3NYS0wwc0tGbWs2?=
 =?utf-8?B?VDFiSi9tcXEyLzZ2dHNCeDdqcm54OGx1Z2RmRVNNelZrSHYvb1ZGYndUYjR2?=
 =?utf-8?B?Vk96VnJYR1dYNFlrYWx5dWdVTGNxa04yTzNzOHcveFduZ0ZYalJBRFZaWlM1?=
 =?utf-8?Q?bVTEj7D+29chR+SRtV3k9is=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d7a2944-fd1f-49e4-be8e-08d9b34dec97
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:51.4609
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8/rggqMG58C6Tu8iDci/sCHZQ3gws0hH50VyBwTUlm+F7Kk3PDKJlRphjxWBUdniSG3bBR1Cg1lkf9PiIMbNYg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5340
X-OriginatorOrg: citrix.com

Pull out the code from xc_cpuid_apply_policy that applies a featureset
to a cpu policy and place it on it's own standalone function that's
part of the public interface.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 tools/include/xenguest.h        |  5 ++
 tools/libs/guest/xg_cpuid_x86.c | 95 ++++++++++++++++++++-------------
 2 files changed, 62 insertions(+), 38 deletions(-)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index 9912116a51..8f05d8aa66 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -829,6 +829,11 @@ int xc_cpu_policy_legacy_topology(xc_interface *xch, xc_cpu_policy_t *policy,
 int xc_cpu_policy_apply_cpuid(xc_interface *xch, xc_cpu_policy_t *policy,
                               const struct xc_xend_cpuid *cpuid, bool hvm);
 
+/* Apply a featureset to the policy. */
+int xc_cpu_policy_apply_featureset(xc_interface *xch, xc_cpu_policy_t *policy,
+                                   const uint32_t *featureset,
+                                   unsigned int nr_features);
+
 int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps);
 int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,
                           uint32_t *nr_features, uint32_t *featureset);
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index 121bce1a92..41c6e66b6f 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -443,46 +443,15 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
 
     if ( featureset )
     {
-        uint32_t disabled_features[FEATURESET_NR_ENTRIES],
-            feat[FEATURESET_NR_ENTRIES] = {};
-        static const uint32_t deep_features[] = INIT_DEEP_FEATURES;
-        unsigned int i, b;
-
-        /*
-         * The user supplied featureset may be shorter or longer than
-         * FEATURESET_NR_ENTRIES.  Shorter is fine, and we will zero-extend.
-         * Longer is fine, so long as it only padded with zeros.
-         */
-        unsigned int user_len = min(FEATURESET_NR_ENTRIES + 0u, nr_features);
-
-        /* Check for truncated set bits. */
-        rc = -EOPNOTSUPP;
-        for ( i = user_len; i < nr_features; ++i )
-            if ( featureset[i] != 0 )
-                goto out;
-
-        memcpy(feat, featureset, sizeof(*featureset) * user_len);
-
-        /* Disable deep dependencies of disabled features. */
-        for ( i = 0; i < ARRAY_SIZE(disabled_features); ++i )
-            disabled_features[i] = ~feat[i] & deep_features[i];
-
-        for ( b = 0; b < sizeof(disabled_features) * CHAR_BIT; ++b )
+        policy.cpuid = *p;
+        rc = xc_cpu_policy_apply_featureset(xch, &policy, featureset,
+                                            nr_features);
+        if ( rc )
         {
-            const uint32_t *dfs;
-
-            if ( !test_bit(b, disabled_features) ||
-                 !(dfs = x86_cpuid_lookup_deep_deps(b)) )
-                continue;
-
-            for ( i = 0; i < ARRAY_SIZE(disabled_features); ++i )
-            {
-                feat[i] &= ~dfs[i];
-                disabled_features[i] &= ~dfs[i];
-            }
+            ERROR("Failed to apply featureset to policy");
+            goto out;
         }
-
-        cpuid_featureset_to_policy(feat, p);
+        *p = policy.cpuid;
     }
     else
     {
@@ -918,3 +887,53 @@ int xc_cpu_policy_legacy_topology(xc_interface *xch, xc_cpu_policy_t *policy,
 
     return 0;
 }
+
+int xc_cpu_policy_apply_featureset(xc_interface *xch, xc_cpu_policy_t *policy,
+                                   const uint32_t *featureset,
+                                   unsigned int nr_features)
+{
+    uint32_t disabled_features[FEATURESET_NR_ENTRIES],
+        feat[FEATURESET_NR_ENTRIES] = {};
+    static const uint32_t deep_features[] = INIT_DEEP_FEATURES;
+    unsigned int i, b;
+
+    /*
+     * The user supplied featureset may be shorter or longer than
+     * FEATURESET_NR_ENTRIES.  Shorter is fine, and we will zero-extend.
+     * Longer is fine, so long as it only padded with zeros.
+     */
+    unsigned int user_len = min(FEATURESET_NR_ENTRIES + 0u, nr_features);
+
+    /* Check for truncated set bits. */
+    for ( i = user_len; i < nr_features; ++i )
+        if ( featureset[i] != 0 )
+        {
+            errno = EOPNOTSUPP;
+            return -1;
+        }
+
+    memcpy(feat, featureset, sizeof(*featureset) * user_len);
+
+    /* Disable deep dependencies of disabled features. */
+    for ( i = 0; i < ARRAY_SIZE(disabled_features); ++i )
+        disabled_features[i] = ~feat[i] & deep_features[i];
+
+    for ( b = 0; b < sizeof(disabled_features) * CHAR_BIT; ++b )
+    {
+        const uint32_t *dfs;
+
+        if ( !test_bit(b, disabled_features) ||
+             !(dfs = x86_cpuid_lookup_deep_deps(b)) )
+            continue;
+
+        for ( i = 0; i < ARRAY_SIZE(disabled_features); ++i )
+        {
+            feat[i] &= ~dfs[i];
+            disabled_features[i] &= ~dfs[i];
+        }
+    }
+
+    cpuid_featureset_to_policy(feat, &policy->cpuid);
+
+    return 0;
+}
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:37:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:37:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234659.407259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrii9-0000Gx-Kq; Mon, 29 Nov 2021 15:36:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234659.407259; Mon, 29 Nov 2021 15:36:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrii9-0000Gf-Gf; Mon, 29 Nov 2021 15:36:57 +0000
Received: by outflank-mailman (input) for mailman id 234659;
 Mon, 29 Nov 2021 15:36:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrihL-0003uH-UJ
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:36:08 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0fa4ed5c-512a-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:36:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0fa4ed5c-512a-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200165;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=w+nGI4D8BYe2mv0mAWnC2fyTbsqQxVVOLXv6FnhZGaY=;
  b=I7r3EtMp+4C5XbriEDf5j+fuY4nO1Q8x+ZZx89TR5ujQPE43DWkezPcF
   dG34BbhyGgKsz3zwdJWEjIunm8+JYNRPtZNcJEjfnkNaW9uFbyOmzVhaz
   5usRZbRYkRE/3ewgKrQfvYK/QYENRSeuI+G0MOlZzA0rbgZc7ZConDFZF
   c=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: l+qnEdUAtumjhCUAk3D9Vd9FYt4sFYMWMIUEJcWo7f4jxCoo0IddUu0DKGYCUkPQPlUEqKiiSm
 ZDQati3Hp3aaq29TLSf8qa3q3a5I2W+DuedUecs5Y/SvDAiPQV0Vm1jqwd+qVL70o161/biCnL
 rDqFQAS923acnTFJ9plMDBToVWCvnYFBalnnIUXqnwbGSG/TaGoKYnLnk/AHx2sesC0Nm7SfOo
 olfRHdBCRuUvzsCRcMk+tex5ZEUmCAPLxe4YReOsFQVU5mulffFMOj+VYEpcFeGAdqciIXFRz4
 wngB9Mq18pGWQ2vm5vaQ7Z90
X-SBRS: 5.1
X-MesageID: 58333499
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:6pV5RqwcC0bRyBNQcAN6t+fUwSrEfRIJ4+MujC+fZmUNrF6WrkUDz
 mQWD2iObPbZY2vxfdl1O43k9EIEuJ/cz9UxSApoqiAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrRo2tcAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt/Zy4
 8tIqKW7dQ4sHu7it9glCyIEOi4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYIIh2xr2pEfdRrYT
 /sCbWE1ZhH4Wi1OMw8RFJMxp92HlmaqJlW0r3rK/PFqsgA/1jdZz7zFINfTPNuQSq19nEmCo
 Xnd13/kGRxcP9uaoRKV/3TpiuLRkCfTXIMJCKb+5vNsmEeUxGEYFFsRT1TTifimiGauVtRHM
 UsW9yEy668o+ySWosLVBkPi5iTe51hFBoQWQ7ZSBByxJrT8xQWyGG0ZdzV9YdkG9+EZeQRy7
 QOgkIa8bdBwi4G9RXWY/7aSiDq9PykJMGMPDRM5oRs5D8rL+99q0E+WJjp3OOvs14CuR2msq
 9yfhHFm3+17sCId60msEbkraRqIr4OBcAM67x6/somNvlIgP97Ni2BFBDHmARd8wGSxEwHpU
 JsswZH2AAUy4XalznLlfQn1NOv1j8tpyRWF6bKVI7Ev9i6251modp1K7Td1KS9Ba5hfKWazP
 BCJ4loBuPe/2UdGi4ctOepd7Oxwk8Dd+SnNDKiIPrKinLAsHON4wM2eTRHJhD28+KTduao+J
 Y2aYa6R4YUyUsxaIM6Nb75Fi9cDn3lmrUuKHMyT50n3gNK2OS/OIZ9YYQTmUwzMxP7dyOkj2
 40EbJXiJtQ2eLCWXxQ7BqZPdw1XdiZiWsitwyGVH8baSjdb9KgaI6a56ZsqepB/nrQTkeHN/
 3qnXVRfxka5jnrCQThmoFg6AF82dZog/389IwI2OlOkhyoqbYq1tf9NfJorZ7g3sudkyKcsH
 fUCfsyBBNVJSyjGpGtBPcWs8tQ6eUT5nx+KMgqkfCM7I8xqSTvW94K2ZQDo7iQPUHa67JNsv
 7262wrHapMfXAA+Xt3OYfeiwgrp73gQke5/RWXSJdxXdBm++YRmMXWp3PQ2P9sNOVPIwT7Dj
 1SaBhIRpO/spY4p8YaW2fDY/tnxS+YnRxhUBWjW67qyJBL2xGv7zN8SSvuMcBDcSHjwpPeoa
 9JKwqyuK/YAhltL7dZxSu450aIk6tLzjLZG1QA4Tm7TZlGmB748cHmL2c5D6v9EyrND4FbkX
 0uO/p9ROKmTOdOjG1kUfVJ3YuOG3PASuz/T8fVqfxmquH4ppOKKARdIIh2BqC1BN78kYooqz
 NAotNMS9wHi2AEhNcyLj3wM+mmBRpDav37Lan3O7FfXtzcW
IronPort-HdrOrdr: A9a23:zgW96KoYZY2agqFobQG6VO8aV5uxL9V00zEX/kB9WHVpm5Oj+P
 xGzc526farslsssREb+OxpOMG7MBfhHPlOkPUs1NaZLXTbUQ6TQr2KgrGSpQEIdxeOlNK1kJ
 0QCJSWa+eAfGSS7/yKmTVQeuxIqLLskNHK9JfjJjVWPHtXgslbnnlE422gYypLrWd9dP8E/M
 323Ls5m9PsQwVcUu2LQl0+G8TTrdzCk5zrJTYAGh4c8QGLyRel8qTzHRS01goXF2on+8ZvzU
 H11yjCoomzufCyzRHRk0fV8pRtgdPkjv9OHtaFhMQ5IijlziyoeINicbufuy1dmpDj1H8a1P
 335zswNcV67H3cOkmzvBvWwgHllA0j7nfzoGXoyEfLkIjcfnYXGsBBjYVWfl/y8Ew7puxx16
 pNwiawq4dXJQmoplW92/H4EzVR0makq3srluAey1ZFV5EFVbNXpYsDuGtIDZY7Gj7g4oxPKp
 ghMCjl3ocUTbqmVQGagoE2q+bcG0jbXy32DXTqg/blkwS/xxtCvg8lLM92pAZ3yHtycegC2w
 3+CNUbqFh5dL5gUUtMPpZzfSKJMB25ffu1ChPrHb3GLtBOB5ufke+93F0KjNvaDKDgiqFC3q
 j8bA==
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58333499"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Jh3Fv2fN7LyzHngHBuoE7NGuIEIPg5dD/72H3gQNUfomw/6QC9WBlhzIhAhSHTuNruGs7eQ5kSKwXib6Zf+VynoXKp9++h7/wB1Y4Fi7sd9UKHxlJ0U5MFvpOevp26x6Bi8QlnqI0UP0EETVdODd/WQqr3CU2xohKKAncXzqdmHRPaVQrB1ueTDwbncTeaSt27DOmM8UlGxe10o2RoBXmI6MeAw8lRDwYXyv+Dkb+cLkpEJDHwKKPfcgldyeA2Df40pZkOKh4vSc3g699vQnYNafdfGwIS+OzmSuFsldXKVMmW3fxvW7ee0YN24sO3FRPFf0bhM1a159i6D/1i8gIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=osW8TJUcE1u0NhcxaQgNVI7DKLIgKFg45KRen2zf/Xw=;
 b=AAbBoXBXKoMm+Z7x3o0X27htP5CaHFCYhbiu3IysHpOng61bD6u6cybDRO7kuRWZ0MRbKAQEEfKeQEtHGpqtpEQHPouIbbFhPqBjblG2x5Ql52YTjzL595rpn2zKEcpT9vzb7oBYPaTF4hHA/17BitO53V+X5biu5FthsvEZvfOBNaH6QBnawFmgXzJ5bidie2Cgvdbm+eXXNMsyrpvUqg2bnbgW3ygZh2pdzVCHF0A6BCfnEfIWWDAIFLXvjYds7Ki/ra8PQYSRl7TNl1Hit4UsgKAPb70uecf61j8kyn/M1/LQ7tS5xMowGQrCRxS7AzobQVy+X2QEwiBaEG1HMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=osW8TJUcE1u0NhcxaQgNVI7DKLIgKFg45KRen2zf/Xw=;
 b=TO3ZNBo+3YTglm4yho6JlDJEqAzBIl5YOLdW7Ixsf/DtP77pAo9zQq4PXf3qF+MhHeSB/C2sbaEQ4Tq2qcSiiCCwf6H+rMTKE4R2SbHVti7+3FNhiv08dFiVldF71futF7DO+E/IoJvLavmq1UOG8r2B6Sxo8q5ryq3BT7ikVos=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>, Juergen
 Gross <jgross@suse.com>
Subject: [PATCH v5 11/12] libs/guest: (re)move xc_cpu_policy_apply_cpuid
Date: Mon, 29 Nov 2021 16:33:54 +0100
Message-ID: <20211129153355.60338-12-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MRXP264CA0034.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::22) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 54774d59-5f4f-4564-9487-08d9b34df217
X-MS-TrafficTypeDiagnostic: DM6PR03MB5340:
X-Microsoft-Antispam-PRVS: <DM6PR03MB5340CBBB9C9E8D29A62D45FB8F669@DM6PR03MB5340.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:272;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 0aL/XQUHA6SoC/Fwq2M9XQlCxdsR4knasmg/jBH3ipQzJolgcGqi+gC76Vw1b906QGdLa4iEC9zTtE1iqKN+HQ/zndh8DZvH09sbU3siiji1Juo8yY/dwIBtOBwgUlxHQRiMgJIbc2vTA/1e7YElvMZvd4506wZ4fFq3thO0M4ljohXfTOvsw7OD4GY59wJwEwrXmQ3eiV3J5nwFl90urdnaG/Dj+hpR7FsO/CIShNPennAzLmzdOnwVV+GuYIwmxdrkEbncOIiUyeycKCUml4lOt5W58HyWcm7aLEYDMWQtWcA3pTM3YpuePkNkqGyaEhTDax3SjFMzttjU7WdKcDAPZD4MliT6/WIYCXQ0zkA9FkNUQ23a3k0q9Zz2Po34E/SL1h32z955Y6Ob80tDsyWT0UFotllVjwJhUg2iaTLQ+C3SECARmQJ25R0hyASEK+182R061T8ms585xtkMd5wF+1V1OlhES8t8gDPhgmJBkHVdryUaQZS26OR19w5eUqqJgbR4Q+sBRplJaxQTBQQ8w+HhnHLcLf49/V76QEO+P4fAPAzpVxzCaDKEMi7JmTxGeths6h8k0msNXBcRUPX/IitUlla5+N/17CX4UJQ6XbOZuJApFFy3ZlzaErBdnqDFM6WEA7FP9BxKnaU+Fg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6666004)(30864003)(82960400001)(66946007)(86362001)(1076003)(508600001)(5660300002)(8676002)(6486002)(316002)(38100700002)(6496006)(26005)(83380400001)(6916009)(66476007)(2906002)(66556008)(2616005)(956004)(8936002)(54906003)(186003)(36756003)(4326008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T0hGMzBpdUYwdkJBRDkyRGxWVVorUXJIVW8wd1dYMXVjQXV2K1Bhd2Y2MGRG?=
 =?utf-8?B?dlV6dnN0T1cxYnAzWUF0YWZta01hNFNJQjAxVFlxdGh3MHlncXdmczIxTUxX?=
 =?utf-8?B?VnUyVjY1bmsvMHgvZ3hOQzlwVlFwL0FlOEoyaUtXNUJvdTNwRkpyZWw0cGQ1?=
 =?utf-8?B?RXVVRjhWbklPM1R5bUlSSjBIeERNcW5OV09FRUw0NHhCQWx0elNjU014WDlE?=
 =?utf-8?B?RjZ4ZzhzbE8ydE8zb2JOSUFNZWhDOU1aOTA3WGxONzZPRFErVmN2Y0IxT3Q1?=
 =?utf-8?B?OTlSSHpBZjUwdFRxSkk4STk5UDB1UW5KaC9QSHpSVjlGSzM0WWxZVkxRZkZ4?=
 =?utf-8?B?QUZmdlNpT2UwQlNQRHV3bFpVclpOTjhSdlg2YnNUbkdiaXBpakZtbkUramc3?=
 =?utf-8?B?RHZkOXFrRTdHZkJEZzhxelBtRXRoMTVlTzhrTzRHUmtxdE1oZWY1MGlZQjRP?=
 =?utf-8?B?QnFIQUM3RW14RytmMGQrY2ErMUNyT1dkdHk3NjgyeVR4SkRyU0ZtQ1praEV3?=
 =?utf-8?B?b0dpMVhyOER2UDJLWnBKZDRyM0xPUHRQU092dGlJdEZHTXNaQ21YQU5kRTR6?=
 =?utf-8?B?ckV5YW1rS3N0LzNmY01TVk9oYzZPbU5pSW9pVnQrR1hWNUJ1cnRxQ0EzR0xB?=
 =?utf-8?B?NTNxMFV2d05ncHVmK3NkeTVmejdvRDBocGdoc1VhSWU5emdhdEp2NFpDYnNa?=
 =?utf-8?B?SWhNU1UrUVBVMktWK1NCSkVyOFl3VHpsV0dxSFdkMHpNaXpKZ1JicExiUUla?=
 =?utf-8?B?WnRqVWNVWXRtbU5BOVpVWWFTMWJ2aUt3dWZmUEVnWVc4dUIvL1dnUzN4QkJ6?=
 =?utf-8?B?V2ZPUHh4bTYrOVNROVgxRS9XQXJ4aGZ3cjlQQTdBeVVYNEdQVHlFOU9IaHFt?=
 =?utf-8?B?K3NxK3JMM3pSSW85YlVjZlVwQ01IZkR2SWxLV1EzQ0NPRjZzd1FGa0RnQjBG?=
 =?utf-8?B?OTFQbStPWCtuUTlQVDNRZ2pmZ1VFcEJ2VTZzZFRPZ0FpWHJ6MzJZa3hHOERj?=
 =?utf-8?B?MWwzUk9CWFR5UjdQVFY1aVhndkkxS0JndmZCVEhWeU1TUFlWQzV5ZFhaVkF5?=
 =?utf-8?B?NEh5b3NOTS9TYnJpYlNVSjdRQWpBbGU4aXhKQ3V1c3FuejJoZGRvVU1PTzRY?=
 =?utf-8?B?ZDk5c3pQK2ZSODdUdGtjQ1ZXbHo0Mk5aZVFSdm0xNFhlUmU2RW5xa1Ryb1pO?=
 =?utf-8?B?cXhFM1F6a3QrMVlzcWxoaWtxaW9zdWFlUDRVcGt3SVpNRlJhY1VqRUh2cFRL?=
 =?utf-8?B?RWxEc1NxTlh5Y1BwcS92SG9XcENUZU9yUWJzUyszN1A2aVdKc2RkMHJUMEJ1?=
 =?utf-8?B?TERSVHU0NSt0dWN4OFN2SzRRZThGMjBGNFlrbWZHSThWRzhwU3k2NHcxblk0?=
 =?utf-8?B?UXNla3pLVXdIZkdoUnhCT25LcGJlZ0x4YlZhanJDYXd4alZkVklRWmdnTDZr?=
 =?utf-8?B?RklwNnIrTlI0NjJ2WW14ZlFtVXRxeUVaRnVVdW5NVDJ0V08yMFZsKzhPeTRY?=
 =?utf-8?B?RGw0bW8xQ1d5V05NS3JtUjBGbWpQdXI1d1haSE04M2V6aVp6VEhDa0RvWDBy?=
 =?utf-8?B?Zk91TE9QZEtvS3lXYVlIelI4K0tRc0p2c0E3MUVOZHU4ZkxrQmlqZ1pPVDUr?=
 =?utf-8?B?SkRLdWVQWTVjSy9QUG9vL1FER29NVWEzVmZDa3hhS2JWVGFsN2t6TGl0NG9T?=
 =?utf-8?B?UGtrSkdqM3FqelVxd0gvSlhJc09weXBUTXVTdjM0dTVNa0xQYXI3Sy80TmJQ?=
 =?utf-8?B?cEhwanJFellMTVZXSm14MTBiaHRkTzdlWjlQNWFEZUVET3pnekZ2NERTQS9D?=
 =?utf-8?B?WUNFWW16RFh4cVhxNUc2cE03cWRxZU0yOGlFT21NVG9zaXEyYzRSVnFGSmhy?=
 =?utf-8?B?eFNaQm9HcUNmcVdXWlJQYWQxY1RzS0JNMi9TMkwvdGcrRmFJRzFhTkt6V0w1?=
 =?utf-8?B?RGlDcDlqa1IvMmpKaVM1aHFzTVlKZjJ3K2lQUzRtbFZwOW5FaEtrV3lHRHR5?=
 =?utf-8?B?NXJJY2lFN1NyZWFRS0ZQNmtOMi9zQVZUM2FVcHVOZC8yTVNnaVlZdG1TZDh5?=
 =?utf-8?B?Wk5jd1pQeFl4YlVIcmVxY3cxTUpha3p2TStzL1RYUHpyM3hWYkVVaFJmTnUw?=
 =?utf-8?B?bHdVbWE0ek1HazREM25LN3ZtQlVUQUFGZlYxcVFMUThYdFM4Z00xVGtWQzlT?=
 =?utf-8?Q?SR9Q9wFnqiKPdnTELCBAiEc=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 54774d59-5f4f-4564-9487-08d9b34df217
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:36:00.7072
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tZPPtT6iUwXi6JSRh1WlxHIgDiFtKNmdz2vi8IAYPDvh0Ice7d//nl3hd2W2gFKR6tXXy8PmnMO8R4ncmzOmKg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5340
X-OriginatorOrg: citrix.com

Move the logic from xc_cpu_policy_apply_cpuid into libxl, now that the
xc_cpu_policy_* helpers allow modifying a cpu policy. By moving such
parsing into libxl directly we can get rid of xc_xend_cpuid, as libxl
will now implement it's own private type for storing CPUID
information, which currently matches xc_xend_cpuid.

Note the function logic is moved as-is, but requires adapting to the
libxl coding style.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
---
Changes since v2:
 - Use LOG*D.
 - Pass a gc to apply_policy.
 - Use 'r' for libxc return values.
---
 tools/include/libxl.h             |   6 +-
 tools/include/xenctrl.h           |  26 ------
 tools/include/xenguest.h          |   4 -
 tools/libs/guest/xg_cpuid_x86.c   | 125 --------------------------
 tools/libs/light/libxl_cpuid.c    | 142 ++++++++++++++++++++++++++++--
 tools/libs/light/libxl_internal.h |  26 ++++++
 6 files changed, 165 insertions(+), 164 deletions(-)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 2bbbd21f0b..8a8032ba25 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1420,10 +1420,10 @@ void libxl_bitmap_init(libxl_bitmap *map);
 void libxl_bitmap_dispose(libxl_bitmap *map);
 
 /*
- * libxl_cpuid_policy is opaque in the libxl ABI.  Users of both libxl and
- * libxc may not make assumptions about xc_xend_cpuid.
+ * libxl_cpuid_policy is opaque in the libxl ABI. Users of libxl may not make
+ * assumptions about libxl__cpuid_policy.
  */
-typedef struct xc_xend_cpuid libxl_cpuid_policy;
+typedef struct libxl__cpuid_policy libxl_cpuid_policy;
 typedef libxl_cpuid_policy * libxl_cpuid_policy_list;
 void libxl_cpuid_dispose(libxl_cpuid_policy_list *cpuid_list);
 int libxl_cpuid_policy_list_length(const libxl_cpuid_policy_list *l);
diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 745d67c970..79169f8ace 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1803,32 +1803,6 @@ int xc_domain_debug_control(xc_interface *xch,
 
 #if defined(__i386__) || defined(__x86_64__)
 
-/*
- * CPUID policy data, expressed in the legacy XEND format.
- *
- * Policy is an array of strings, 32 chars long:
- *   policy[0] = eax
- *   policy[1] = ebx
- *   policy[2] = ecx
- *   policy[3] = edx
- *
- * The format of the string is the following:
- *   '1' -> force to 1
- *   '0' -> force to 0
- *   'x' -> we don't care (use default)
- *   'k' -> pass through host value
- *   's' -> legacy alias for 'k'
- */
-struct xc_xend_cpuid {
-    union {
-        struct {
-            uint32_t leaf, subleaf;
-        };
-        uint32_t input[2];
-    };
-    char *policy[4];
-};
-
 int xc_mca_op(xc_interface *xch, struct xen_mc *mc);
 int xc_mca_op_inject_v2(xc_interface *xch, unsigned int flags,
                         xc_cpumap_t cpumap, unsigned int nr_cpus);
diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index 8f05d8aa66..3462d27516 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -825,10 +825,6 @@ int xc_cpu_policy_make_compat_4_12(xc_interface *xch, xc_cpu_policy_t *policy,
 int xc_cpu_policy_legacy_topology(xc_interface *xch, xc_cpu_policy_t *policy,
                                   bool hvm);
 
-/* Apply an xc_xend_cpuid object to the policy. */
-int xc_cpu_policy_apply_cpuid(xc_interface *xch, xc_cpu_policy_t *policy,
-                              const struct xc_xend_cpuid *cpuid, bool hvm);
-
 /* Apply a featureset to the policy. */
 int xc_cpu_policy_apply_featureset(xc_interface *xch, xc_cpu_policy_t *policy,
                                    const uint32_t *featureset,
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index f4ed632d60..7ce0a08580 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -254,131 +254,6 @@ int xc_set_domain_cpu_policy(xc_interface *xch, uint32_t domid,
     return ret;
 }
 
-int xc_cpu_policy_apply_cpuid(xc_interface *xch, xc_cpu_policy_t *policy,
-                              const struct xc_xend_cpuid *cpuid, bool hvm)
-{
-    int rc;
-    xc_cpu_policy_t *host = NULL, *def = NULL;
-
-    host = xc_cpu_policy_init();
-    def = xc_cpu_policy_init();
-    if ( !host || !def )
-    {
-        PERROR("Failed to init policies");
-        rc = -ENOMEM;
-        goto out;
-    }
-
-    /* Get the domain type's default policy. */
-    rc = xc_cpu_policy_get_system(xch, hvm ? XEN_SYSCTL_cpu_policy_hvm_default
-                                           : XEN_SYSCTL_cpu_policy_pv_default,
-                                  def);
-    if ( rc )
-    {
-        PERROR("Failed to obtain %s def policy", hvm ? "hvm" : "pv");
-        goto out;
-    }
-
-    /* Get the host policy. */
-    rc = xc_cpu_policy_get_system(xch, XEN_SYSCTL_cpu_policy_host, host);
-    if ( rc )
-    {
-        PERROR("Failed to obtain host policy");
-        goto out;
-    }
-
-    rc = -EINVAL;
-    for ( ; cpuid->leaf != XEN_CPUID_INPUT_UNUSED; ++cpuid )
-    {
-        xen_cpuid_leaf_t cur_leaf;
-        xen_cpuid_leaf_t def_leaf;
-        xen_cpuid_leaf_t host_leaf;
-
-        rc = xc_cpu_policy_get_cpuid(xch, policy, cpuid->leaf, cpuid->subleaf,
-                                     &cur_leaf);
-        if ( rc )
-        {
-            ERROR("Failed to get current policy leaf %#x subleaf %#x",
-                  cpuid->leaf, cpuid->subleaf);
-            goto out;
-        }
-        rc = xc_cpu_policy_get_cpuid(xch, def, cpuid->leaf, cpuid->subleaf,
-                                     &def_leaf);
-        if ( rc )
-        {
-            ERROR("Failed to get def policy leaf %#x subleaf %#x",
-                  cpuid->leaf, cpuid->subleaf);
-            goto out;
-        }
-        rc = xc_cpu_policy_get_cpuid(xch, host, cpuid->leaf, cpuid->subleaf,
-                                     &host_leaf);
-        if ( rc )
-        {
-            ERROR("Failed to get host policy leaf %#x subleaf %#x",
-                  cpuid->leaf, cpuid->subleaf);
-            goto out;
-        }
-
-        for ( unsigned int i = 0; i < ARRAY_SIZE(cpuid->policy); i++ )
-        {
-            uint32_t *cur_reg = &cur_leaf.a + i;
-            const uint32_t *def_reg = &def_leaf.a + i;
-            const uint32_t *host_reg = &host_leaf.a + i;
-
-            if ( cpuid->policy[i] == NULL )
-                continue;
-
-            for ( unsigned int j = 0; j < 32; j++ )
-            {
-                bool val;
-
-                switch ( cpuid->policy[i][j] )
-                {
-                case '1':
-                    val = true;
-                    break;
-
-                case '0':
-                    val = false;
-                    break;
-
-                case 'x':
-                    val = test_bit(31 - j, def_reg);
-                    break;
-
-                case 'k':
-                case 's':
-                    val = test_bit(31 - j, host_reg);
-                    break;
-
-                default:
-                    ERROR("Bad character '%c' in policy[%d] string '%s'",
-                          cpuid->policy[i][j], i, cpuid->policy[i]);
-                    goto out;
-                }
-
-                clear_bit(31 - j, cur_reg);
-                if ( val )
-                    set_bit(31 - j, cur_reg);
-            }
-        }
-
-        rc = xc_cpu_policy_update_cpuid(xch, policy, &cur_leaf, 1);
-        if ( rc )
-        {
-            PERROR("Failed to set policy leaf %#x subleaf %#x",
-                   cpuid->leaf, cpuid->subleaf);
-            goto out;
-        }
-    }
-
- out:
-    xc_cpu_policy_destroy(def);
-    xc_cpu_policy_destroy(host);
-
-    return rc;
-}
-
 xc_cpu_policy_t *xc_cpu_policy_init(void)
 {
     return calloc(1, sizeof(struct xc_cpu_policy));
diff --git a/tools/libs/light/libxl_cpuid.c b/tools/libs/light/libxl_cpuid.c
index 07d445d9f9..bf710ba196 100644
--- a/tools/libs/light/libxl_cpuid.c
+++ b/tools/libs/light/libxl_cpuid.c
@@ -309,7 +309,7 @@ int libxl_cpuid_parse_config(libxl_cpuid_policy_list *cpuid, const char* str)
     char *sep, *val, *endptr;
     int i;
     const struct cpuid_flags *flag;
-    struct xc_xend_cpuid *entry;
+    struct libxl__cpuid_policy *entry;
     unsigned long num;
     char flags[33], *resstr;
 
@@ -387,7 +387,7 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *cpuid,
     char *endptr;
     unsigned long value;
     uint32_t leaf, subleaf = XEN_CPUID_INPUT_UNUSED;
-    struct xc_xend_cpuid *entry;
+    struct libxl__cpuid_policy *entry;
 
     /* parse the leaf number */
     value = strtoul(str, &endptr, 0);
@@ -437,6 +437,137 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *cpuid,
     return 0;
 }
 
+static int apply_cpuid(libxl__gc *gc, xc_cpu_policy_t *policy,
+                       libxl_cpuid_policy_list cpuid, bool hvm, domid_t domid)
+{
+    int r, rc = 0;
+    xc_cpu_policy_t *host = NULL, *def = NULL;
+
+    host = xc_cpu_policy_init();
+    def = xc_cpu_policy_init();
+    if (!host || !def) {
+        LOGD(ERROR, domid, "Failed to init policies");
+        rc = ERROR_FAIL;
+        goto out;
+    }
+
+    /* Get the domain type's default policy. */
+    r = xc_cpu_policy_get_system(CTX->xch,
+                                 hvm ? XEN_SYSCTL_cpu_policy_hvm_default
+                                     : XEN_SYSCTL_cpu_policy_pv_default,
+                                 def);
+    if (r) {
+        LOGED(ERROR, domid, "Failed to obtain %s def policy",
+              hvm ? "hvm" : "pv");
+        rc = ERROR_FAIL;
+        goto out;
+    }
+
+    /* Get the host policy. */
+    r = xc_cpu_policy_get_system(CTX->xch, XEN_SYSCTL_cpu_policy_host, host);
+    if (r) {
+        LOGED(ERROR, domid, "Failed to obtain host policy");
+        rc = ERROR_FAIL;
+        goto out;
+    }
+
+    for (; cpuid->leaf != XEN_CPUID_INPUT_UNUSED; ++cpuid) {
+        xen_cpuid_leaf_t cur_leaf;
+        xen_cpuid_leaf_t def_leaf;
+        xen_cpuid_leaf_t host_leaf;
+
+        r = xc_cpu_policy_get_cpuid(CTX->xch, policy, cpuid->leaf,
+                                    cpuid->subleaf, &cur_leaf);
+        if (r) {
+            LOGED(ERROR, domid,
+                  "Failed to get current policy leaf %#x subleaf %#x",
+                  cpuid->leaf, cpuid->subleaf);
+            r = ERROR_FAIL;
+            goto out;
+        }
+        r = xc_cpu_policy_get_cpuid(CTX->xch, def, cpuid->leaf, cpuid->subleaf,
+                                    &def_leaf);
+        if (r) {
+            LOGED(ERROR, domid,
+                  "Failed to get def policy leaf %#x subleaf %#x",
+                  cpuid->leaf, cpuid->subleaf);
+            rc = ERROR_FAIL;
+            goto out;
+        }
+        r = xc_cpu_policy_get_cpuid(CTX->xch, host, cpuid->leaf,
+                                    cpuid->subleaf, &host_leaf);
+        if (r) {
+            LOGED(ERROR, domid,
+                  "Failed to get host policy leaf %#x subleaf %#x",
+                  cpuid->leaf, cpuid->subleaf);
+            rc = ERROR_FAIL;
+            goto out;
+        }
+
+        for (unsigned int i = 0; i < ARRAY_SIZE(cpuid->policy); i++) {
+            uint32_t *cur_reg = &cur_leaf.a + i;
+            const uint32_t *def_reg = &def_leaf.a + i;
+            const uint32_t *host_reg = &host_leaf.a + i;
+
+            if (cpuid->policy[i] == NULL)
+                continue;
+
+#define test_bit(i, r) !!(*(r) & (1u << (i)))
+#define set_bit(i, r) (*(r) |= (1u << (i)))
+#define clear_bit(i, r)  (*(r) &= ~(1u << (i)))
+            for (unsigned int j = 0; j < 32; j++) {
+                bool val;
+
+                switch (cpuid->policy[i][j]) {
+                case '1':
+                    val = true;
+                    break;
+
+                case '0':
+                    val = false;
+                    break;
+
+                case 'x':
+                    val = test_bit(31 - j, def_reg);
+                    break;
+
+                case 'k':
+                case 's':
+                    val = test_bit(31 - j, host_reg);
+                    break;
+
+                default:
+                    LOGD(ERROR, domid,
+                         "Bad character '%c' in policy[%d] string '%s'",
+                         cpuid->policy[i][j], i, cpuid->policy[i]);
+                    rc = ERROR_FAIL;
+                    goto out;
+                }
+
+                clear_bit(31 - j, cur_reg);
+                if (val)
+                    set_bit(31 - j, cur_reg);
+            }
+#undef clear_bit
+#undef set_bit
+#undef test_bit
+        }
+
+        r = xc_cpu_policy_update_cpuid(CTX->xch, policy, &cur_leaf, 1);
+        if (r) {
+            LOGED(ERROR, domid, "Failed to set policy leaf %#x subleaf %#x",
+                  cpuid->leaf, cpuid->subleaf);
+            rc = ERROR_FAIL;
+            goto out;
+        }
+    }
+
+ out:
+    xc_cpu_policy_destroy(def);
+    xc_cpu_policy_destroy(host);
+    return rc;
+}
+
 int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,
                         libxl_domain_build_info *info)
 {
@@ -552,10 +683,9 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,
     }
 
     /* Apply the bits from info->cpuid if any. */
-    r = xc_cpu_policy_apply_cpuid(ctx->xch, policy, info->cpuid, hvm);
-    if (r) {
-        LOGEVD(ERROR, domid, -r, "Failed to apply CPUID changes");
-        rc = ERROR_FAIL;
+    rc = apply_cpuid(gc, policy, info->cpuid, hvm, domid);
+    if (rc) {
+        LOGD(ERROR, domid, "Failed to apply CPUID changes");
         goto out;
     }
 
diff --git a/tools/libs/light/libxl_internal.h b/tools/libs/light/libxl_internal.h
index 0b4671318c..7ab5247329 100644
--- a/tools/libs/light/libxl_internal.h
+++ b/tools/libs/light/libxl_internal.h
@@ -2060,6 +2060,32 @@ typedef yajl_gen_status (*libxl__gen_json_callback)(yajl_gen hand, void *);
 _hidden char *libxl__object_to_json(libxl_ctx *ctx, const char *type,
                                     libxl__gen_json_callback gen, void *p);
 
+/*
+ * CPUID policy data, expressed in the internal libxl format.
+ *
+ * Policy is an array of strings, 32 chars long:
+ *   policy[0] = eax
+ *   policy[1] = ebx
+ *   policy[2] = ecx
+ *   policy[3] = edx
+ *
+ * The format of the string is the following:
+ *   '1' -> force to 1
+ *   '0' -> force to 0
+ *   'x' -> we don't care (use default)
+ *   'k' -> pass through host value
+ *   's' -> legacy alias for 'k'
+ */
+struct libxl__cpuid_policy {
+    union {
+        struct {
+            uint32_t leaf, subleaf;
+        };
+        uint32_t input[2];
+    };
+    char *policy[4];
+};
+
 _hidden int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool retore,
                                 libxl_domain_build_info *info);
 
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:37:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:37:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234671.407269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriiB-0000Zu-Sq; Mon, 29 Nov 2021 15:36:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234671.407269; Mon, 29 Nov 2021 15:36:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriiB-0000Zn-PU; Mon, 29 Nov 2021 15:36:59 +0000
Received: by outflank-mailman (input) for mailman id 234671;
 Mon, 29 Nov 2021 15:36:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrihJ-0003uH-U1
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:36:06 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f03f85c-512a-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:36:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f03f85c-512a-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200162;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=qFWoz5gDtG8uLFd4Mpr7eWgtMMa45L61vHQxGnnF2wg=;
  b=D4AL8OjYlWFj9tKF254CoBcwi7O8AktpcAAU2m+DpeP7O9KYvBkkuqmq
   KgO8qV82Xg2DkqCibI/muqCXtk1eSBTxiS2kUxX09TDEkMhM5mAWITm8E
   rqTi0t9mR3QxMTkDYIRp5/kVu6Yzo8qPaop3S0g+QbgsIroLXOTghoAxe
   Y=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: VSEDlewqvHiy5wEI4xnrS+jJLXaFtow6FAD9YXv6OT6fB683qlORny6IZbqSucNBH1REs+JsHQ
 0IrBQ0uewPmzjsD5WUb2GAb6ppPfCS2YqHPLd3YtwY9seNNVxfC+cUBsPYcNPyhpMfMrzPNzl5
 qhGD3WtoNBUs/vDvI0apRUbmIvXsL5fzOVf3muuy6+He3arbXjr6eHrQB1EiLGEqKLbowXWp4a
 5IR6PrgZVzLF5TGuYVnEft+w8LsM30KNTdjMGGFoaYzujUFHGgVHfyJhr6YCMlQso84qgP0ZFh
 xm+Dv5NT2VcffhjCy4ACxlIK
X-SBRS: 5.1
X-MesageID: 58773282
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:nfBVkaI/GqRopLgAFE+RM5IlxSXFcZb7ZxGr2PjKsXjdYENShjZRm
 DNJCmmFbviLZWT2KosiaoS//RkOuZHUzNYwSAplqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es5yrZg6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB2JvvVO6
 PlV76XtYkQ4Jo3rwuJecDdXRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsF2gcsuNo/zNZ43sXB81zDJS/0hRPgvRo2XtYAHh21g3KiiG978X
 I0mU2BJfC7GfgVKIUUwL4ASktu30yyXnzpw9wvO+PtfD3Lo5BN1+KjgNpzSYNPibcdahEGDv
 Urd4n/0RBodMbS32TeDt36hmOLLtSf6Q54JUq218OZwh1+ezXBVDwcZPXO6vvuRmkO4Q8hYK
 UEf5mwpt6dayaCwZoCjBVvi+ifC50NCHYoLewEn1O2T4qr1xjm5KnBed2NqK80+lOhsQ38J+
 FDcyrsFGgdTmLGSTHuc8JKdojWzJTUZIAc+WMMUcecWy4K9+d9u13ojWv4mSffo1YOtRVkc1
 hjT9HBm74j/m/LnwElSEbrvpzu37qbEQQcujuk8djL0t1gpDGJJimHB1LQ60RqiBNvBJrVil
 CJd8yR70AzpJcvT/BFhuM1XQNmUCw+taVUwe2JHEZg77CiK8HW+Z41W6zwWDB43aZZdI2O2O
 hSK6V85CHpv0J2CN/Ufj2WZUZpC8EQdPY69CqC8giRmP/CdizNrDAkxPBXNjggBYWAnkL0lO
 IfzTCpfJS1yNEiT9xLvH711+eZynkgWnDqPLbimn0XP+efPPxa9FOZaWGZim8hktctoVi2Oq
 I0BXyZLoj0CONDDjt7/rdROcAtUdCdjXvgbaaV/L4a+H+avI0l4Y9f5yrI9YY112aNTk+bD5
 HamXUFEjlH4gBX6xc+iMy4LhGrHUcktoHQlEzYrOFr0iXEvbZz2tPUUdoctfKlh/+tmlKYmQ
 /4AcsSGI/JOVjWYpGhNMcij9NRvJEaxmAaDHyu5ezxjLZRucBPEp43/dQz1+ShQUifu7Zkio
 6et3x/wSIYYQ1gwF97fbf+ilgvjvXUUlO9ocVHPJ91fJBfl/IRwcnSjhf4rOcAcbx7Ew2LCh
 QqRBB4Zo8jLopM0r4aV1fzV8d/xHrInTERAHmTd4bKnDgXg/zKukd1aTeKFXTHBT2eoqq+sU
 vpYkqPnO/odkVcU74clS+R3zbgz7sfErqNBylg2B23CalmmB+8yInSC2sUT5KRByqUA5FmzU
 0OLvNJbJa+IKIXuF1tIfFgpaeGK1Pc1nDjO7KtqfBWmtXEvpLfXA19POxSsiTBGKOonOYwo9
 u4tpcoK5lHtkREtKNuH0nhZ+mnkwqbsiEn7WkX22LPWtzc=
IronPort-HdrOrdr: A9a23:r/7bVKEXFF5vzxDApLqFcpHXdLJyesId70hD6qkvc3Nom52j+/
 xGws536faVslcssHFJo6HlBEDmewKhyXcV2/htAV7GZmfbUQSTXedfBOfZsl/d8mjFh5VgPM
 RbAtlD4b/LfCFHZK/BiWHSebZQo6j2zEnrv5al854Ed3AVV0gK1XYfNu/0KDwSeOEQbqBJa6
 Z0q/A37QaISDAyVICWF3MFV+/Mq5nik4/nWwcPA1oC5BOVhT2lxbbmG1zAty1uHw9n8PMHyy
 zoggb57qKsv7WSzQLd7Xba69BzlMH6wtVOKcSQgow+KynqiCyveIN9Mofy8QwdkaWK0hIHgd
 PMqxAvM4Ba7G7QRHi8pV/X1wzpwF8Vmjbf4G7dpUGmjd3yRTo8BcYEr5leaAHl500pu8w5+L
 5X3kqC3qAnTC/orWDY3ZzlRhtqnk27rT4JiugIlUFSVoMYdft4sZEfxkVIC50NdRiKprzPKN
 MeT/002cwmM29zNxvizyxSKZ2XLzsO9y69Mwg/Upf/6UkToJh7p3FosvD30E1ws67VcKM0ld
 gsBJ4Y442mfvVmHp6VO91xNPdfcla9OS4kEFjiaWgPR5t3cE4klfbMkcEIDaeRCdo18Kc=
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58773282"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hYIhBJkAwm0eyQb6vsaMoPSdhUxYhexJSjgOMqurKRyr8qy/pXoJ9n4L+6V//ay1SucEXkGkng0gr2O129t/pKCtTl0GeEtZn9ipXMOiz5RlwS6Asf3Zo3+95NHImdTj/TZ7piOwWJlCFdWpTnMBl6Vw99jCpogItJbFeSnlAo4Mc4cLzPS+Ommco3zOvlPGyZjzDoMkYRVuB0eKDdAxwRSLgv3PN8xTG+Gaw/iWOJhZlE18ktWfxwtkrtfTnQ4sveybA8QSmU0bk/jcP/EB9I1YCpa5zLGK8WZttIFHJKJzDvKSQauiT+EqXQS2PFMllFGo0uBacv4nGrEiu/vYYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=j6x1WqcDI4hgAVUs2NwOsazyfVUvF37XffWCwKYbgUo=;
 b=jCeh0L1R6KQsC1a2YvVCA/ZOmRztdvr76rMAfI8fFE1RmtLCxgs3nrujPiEGE0RxYz+VnG0BN7FqnxfEX3I3DaAD5To6RDtMaDqk6Qpawf1Nf7l0vaxMrEEN2ah83PApdbffl37sSX77DQg4UdMCbDh4FJhLDFQB8z1cKsFm2juv0/r4lh++wdHITthCA2ioEdkOUeFvFqbYAhLleWgXgatxyw5yMyaJe3kBf3NGnXCyPrKahbNAWamFBN/6clzFhs1dFILwornXzyPE5C2T/TOedsAFZNFCbl8494jRwnWTzu2jbspqPSW5dWItMB5Vj61Fbc2ZdrLyQid7sPLC7Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=j6x1WqcDI4hgAVUs2NwOsazyfVUvF37XffWCwKYbgUo=;
 b=l73qdabl7bv5wuopOIm2aSQs2EYCUPO+wF382bs8ZFcMJQnZgV3VhcDX6UHC3v5u81JYg7hhEhSLXEwK6Mj8qJ4d+rSdHviR+PWcivVOdigKc7cGYZKxFNsLeYwzWhuCGusZp6rQHosjlmKeVS1W9QVS/iLVoDcVGADTzMrPQVo=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v5 08/12] libs/guest: rework xc_cpuid_xend_policy
Date: Mon, 29 Nov 2021 16:33:51 +0100
Message-ID: <20211129153355.60338-9-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0076.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::16) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4cb5af70-2766-45b9-06cb-08d9b34de967
X-MS-TrafficTypeDiagnostic: DM5PR03MB2842:
X-Microsoft-Antispam-PRVS: <DM5PR03MB28423F9C2D8DD0FCACB2ED128F669@DM5PR03MB2842.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:65;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: PvRsPdy5eFU3FGBEdPG2d3z5ew5+i7NSVIffFVV65VNI3DH9nBcJ82rG7KnvmGkfjnA9ANi2/tihdcwNgYnzzrv6yZS3EqmQmezF+tGyxn1otDhF47bkb/URhnJy9ppbeZkBER2f6KxETZKE5Vuitobt5d+WFQI7WG2JHuJPEW8s011LAVoJOiXcJqAmrjexfRgSPQAVqiPaA573yPr69Yx43iVGYzU+KTaxhS6s26jsJnzbjmmXmYeUF2TQJKMZ8r3wL/GBx2l1NoqfzwxmIU4047p3f6o0xLU7Dj+BjhEuXf7UcLFxzgQ2kBqbRg0TFTBbnpAhtkH+tZBBvW0l82xt6bDIA0KiT2LDcVvyoiHDL5x2X+xV1ohW3n/OcVi+mjjNSatoSh+Z/fhfrwrQk8gynNVJ1MH7f/E4izZJofZEJsa+Bx1eF3oRoyNzoKEADVze8pyJcFpyiIvKqCBYQlMxuq00HC7gHnVXUXrj7mUQAQjyxNtF5t+lliL9+TkDv8wu9hvkgnkvjclU1KG6ZeyxIai/sF+NaLAPfxIEesqsV31NmPVC5Y2zNyJEQ7xhWOH7Cq3oGssnDCSYNUXstsq+yv2cFJGckwh2Wz7PoDlhc5UtFTxE7Nh6J/ZrR0cTiBolFbgY8CtJK0OyEG0KLw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(86362001)(54906003)(8936002)(2906002)(66946007)(6486002)(316002)(8676002)(956004)(6916009)(82960400001)(4326008)(6666004)(66476007)(66556008)(186003)(83380400001)(38100700002)(2616005)(26005)(508600001)(1076003)(36756003)(6496006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N1RLTGFvSlZtYWw0OUU2eWpQMUhPNGpJWC9KcG90RVc0WWt3YnNBRHUzMW43?=
 =?utf-8?B?cE03K3ZpMkJjdyt6eUxSZDd1blRpM2MwOERjZlRrcFFCSWRHejJxZ1g4ekN6?=
 =?utf-8?B?YWpGY3R3MUhLNU1ab3lSNVc4TE5aUHp2TWViampZTXVESklFSEZiV0kzMCtL?=
 =?utf-8?B?WG9tcFB4eVFqaXA1REZpL0RvdUZpdlJOTVdVTS9UaFVYQ29WYm5hK1VDT2tY?=
 =?utf-8?B?RTVIZVd3Rmw1SDdkRnYzTW5lUlJ4Uk5hMDY0ZXJ0SS9NUWdNRmtCNmRPcmRi?=
 =?utf-8?B?RkoyUi9xS1dJRU1tV01sS3JsbXJ5QkRaZWhqVDdLb0NTdW5RN1BqVzFEamJy?=
 =?utf-8?B?eTNGVmJlOG1YalV6cEJmdHVlRE40YkQvMTRjd0JGZVd6V2xxMUhURldTQi9r?=
 =?utf-8?B?aHc5aTE1T2kzaWdyUC85dHpTWTRDUEtDdXZMK21vSU5YaGZuaWZVWW1hUExL?=
 =?utf-8?B?RHZCV0hWOUFWWXZmZHh3b09JUThCQW95cVFzUmovZlg3K2Q3Q0tXdHZFcjUz?=
 =?utf-8?B?djllc2FLb2hJMUNaWFIwbUk0SnVHY0dTbnMzTWp5dy9XNWZyNjRlQ2NCQ0xL?=
 =?utf-8?B?blBLYm01WkI2QmhxNUs1QmdncGtlUDNxTCtXT2FSbmhmdVdpTjBHUWhpbkhw?=
 =?utf-8?B?NlkyZXdMS3ArYTd6cjMxV3A4M21ITTNnTTRtbUI5SVpHZ3BIamo0NEV3L0FQ?=
 =?utf-8?B?U2d0MXdOV09lLzNwbGJncjIveFU2Y1BJaEU4NnN4Q0xjNlNEdkpnQlBmVjlR?=
 =?utf-8?B?MUF1TXVIeFhtV3FRd0daOWUxeFFzeGF0b3NuRkY1T1k4S2hoSW1uU0VHQkpz?=
 =?utf-8?B?L2ZjeFZyRHY3Y2lsUExERkRDcEJTbkdkNDR0NDNNSzJnakVqdmNpMlVWVkdJ?=
 =?utf-8?B?S2pKamtES0tsR1NvMXV2ZXBmQU8wcTZyMVZqRlZ5VitkQUFvN3hXZDdNOVp0?=
 =?utf-8?B?Tk1ObmpBNDlPeXpRMWpKSm4zZU1sL1BybnhLWjloc3JIaUx2MWc0UFJNK1I3?=
 =?utf-8?B?eGVoM211R1Rpdit5WEFXU255QkRkUWwzbGUxSnRkcUEzVDRwaDFOQmJndWFE?=
 =?utf-8?B?UzQwbWhVVklyMnNhTW0zckJ4UDZnWEx0MDllcVdOUGhNSVdwellLeXBNWkJJ?=
 =?utf-8?B?bFRZTnFBWFFuNGtEbld1WFo3L200TzlKdGx0ZWV1WjFZM3h0TU5EaFI2cEFO?=
 =?utf-8?B?U3N1cTNlZnN0SE03Z2M5eDY3R0tmSGJtcEdCNGtySS9pZThHcXhmN05rL1ZF?=
 =?utf-8?B?ZW5kUWhsNFNLYUx2YVN2VmgzS0w1M2dXNmQ5cEk2NmZVdEx0bWloS3VKQ3p3?=
 =?utf-8?B?dkJNRDFhQmxsa2N0ODhyL0tob29mZUd0MzdVS01nVW5NSnllVzlGUmh1V2Iw?=
 =?utf-8?B?M0Rwa3dsWlloanV0UjQyZTBrdGE1Z3FYSjdCREd4RmczOCtYL1dNNDQzVDhi?=
 =?utf-8?B?VFJhWk4xMzd2UkNYbDU2WlVpSjBpM3NLWEpkU3Fjb0lwbkF6TGtIS2xVQ0Ja?=
 =?utf-8?B?bnlLTEsvUHg2aXBKS3VvczA1RFQzOVFPR0Jrb3FrcURxYmlIMW5QMzUyZGRJ?=
 =?utf-8?B?N2JDdHdqNzRuZXJqMVdDUUpsUkR1YXF0djdNajFLdXBwL1NCVGE2WWhHUGFn?=
 =?utf-8?B?bG41WDZCWGFCeDBnenpoODV3NmdUZHk1S2ZmR1M2am1LYUEzamhBaXl1ZWRH?=
 =?utf-8?B?ZFF4dEZ5Zm55VklQbWF2Tm9CWnM2UldsWDR6cGJpRGxiZStYL0NvNy8rd05J?=
 =?utf-8?B?cTN5VFNITGJQVlg1ZEU0UHRhSXNzK2JPWWdZWDkzblg5RXExWUhOMEpyN2cx?=
 =?utf-8?B?SERkR1VpRXo0U2pndzVnQjZoUGNZYzdTRFpZZ1VDcFRNbXdTdUdPS3lTSzlX?=
 =?utf-8?B?WHRTN3pWTTRoc0RaWWtoc0ZKejdib0p4WUV6VzFVU2dLZkhIcHlPUnQ0OTBK?=
 =?utf-8?B?VWFpY1Q1c293M2VVaTU1K0FpMTlRVXZET0l1S0VITGM2Sm1zSFAvWjhvcERV?=
 =?utf-8?B?b21hZlFwenFWTk1HdFF1VjYvVGZLYWZhbjNTU3dMR2N4RkJWMWU5UW5IaERk?=
 =?utf-8?B?UnllcUtkSlR3MGtPYjZZUVo0cEIxSzhLNGpuRG9BNkpoekk5a0VIRmMvVE5B?=
 =?utf-8?B?cEVkUHdsRWluQ3h1YzYxQlp1SHVWNEd5MUVIcHk1MGVVUDBzVTJDZzEzbzV3?=
 =?utf-8?Q?JPS1JPG9qLUQwPaPggJsi7U=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 4cb5af70-2766-45b9-06cb-08d9b34de967
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:46.0437
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sIHR2gF+jn97kSYPDEAYxxQ7CUS/tK7QBaxLUJ2LKPC0u4ditQ4qP+Gd1QUbGyDKQQ2TyF0gun9KV5wRnovE/A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2842
X-OriginatorOrg: citrix.com

Rename xc_cpuid_xend_policy to xc_cpu_policy_apply_cpuid and make it
public. Modify the function internally to use the new xc_cpu_policy_*
set of functions. Also don't apply the passed policy to a domain
directly, and instead modify the provided xc_cpu_policy_t. The caller
will be responsible of applying the modified cpu policy to the domain.

Note that further patches will end up removing this function, as the
callers should have the necessary helpers to modify an xc_cpu_policy_t
themselves.

The find_leaf helper and related comparison function is also removed,
as it's no longer needed to search for cpuid leafs as finding the
matching leaves is now done using xc_cpu_policy_get_cpuid.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v3:
 - Drop find_leaf and comparison helper.
---
 tools/include/xenguest.h        |   4 +
 tools/libs/guest/xg_cpuid_x86.c | 200 +++++++++++++-------------------
 2 files changed, 83 insertions(+), 121 deletions(-)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index bea02cb542..9912116a51 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -825,6 +825,10 @@ int xc_cpu_policy_make_compat_4_12(xc_interface *xch, xc_cpu_policy_t *policy,
 int xc_cpu_policy_legacy_topology(xc_interface *xch, xc_cpu_policy_t *policy,
                                   bool hvm);
 
+/* Apply an xc_xend_cpuid object to the policy. */
+int xc_cpu_policy_apply_cpuid(xc_interface *xch, xc_cpu_policy_t *policy,
+                              const struct xc_xend_cpuid *cpuid, bool hvm);
+
 int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps);
 int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,
                           uint32_t *nr_features, uint32_t *featureset);
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index eafc1ec7c1..121bce1a92 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -254,144 +254,107 @@ int xc_set_domain_cpu_policy(xc_interface *xch, uint32_t domid,
     return ret;
 }
 
-static int compare_leaves(const void *l, const void *r)
-{
-    const xen_cpuid_leaf_t *lhs = l;
-    const xen_cpuid_leaf_t *rhs = r;
-
-    if ( lhs->leaf != rhs->leaf )
-        return lhs->leaf < rhs->leaf ? -1 : 1;
-
-    if ( lhs->subleaf != rhs->subleaf )
-        return lhs->subleaf < rhs->subleaf ? -1 : 1;
-
-    return 0;
-}
-
-static xen_cpuid_leaf_t *find_leaf(
-    xen_cpuid_leaf_t *leaves, unsigned int nr_leaves,
-    const struct xc_xend_cpuid *xend)
-{
-    const xen_cpuid_leaf_t key = { xend->leaf, xend->subleaf };
-
-    return bsearch(&key, leaves, nr_leaves, sizeof(*leaves), compare_leaves);
-}
-
-static int xc_cpuid_xend_policy(
-    xc_interface *xch, uint32_t domid, const struct xc_xend_cpuid *xend)
+int xc_cpu_policy_apply_cpuid(xc_interface *xch, xc_cpu_policy_t *policy,
+                              const struct xc_xend_cpuid *cpuid, bool hvm)
 {
     int rc;
-    xc_dominfo_t di;
-    unsigned int nr_leaves, nr_msrs;
-    uint32_t err_leaf = -1, err_subleaf = -1, err_msr = -1;
-    /*
-     * Three full policies.  The host, default for the domain type,
-     * and domain current.
-     */
-    xen_cpuid_leaf_t *host = NULL, *def = NULL, *cur = NULL;
-    unsigned int nr_host, nr_def, nr_cur;
+    xc_cpu_policy_t *host = NULL, *def = NULL;
 
-    if ( xc_domain_getinfo(xch, domid, 1, &di) != 1 ||
-         di.domid != domid )
-    {
-        ERROR("Failed to obtain d%d info", domid);
-        rc = -ESRCH;
-        goto fail;
-    }
-
-    rc = xc_cpu_policy_get_size(xch, &nr_leaves, &nr_msrs);
-    if ( rc )
-    {
-        PERROR("Failed to obtain policy info size");
-        rc = -errno;
-        goto fail;
-    }
-
-    rc = -ENOMEM;
-    if ( (host = calloc(nr_leaves, sizeof(*host))) == NULL ||
-         (def  = calloc(nr_leaves, sizeof(*def)))  == NULL ||
-         (cur  = calloc(nr_leaves, sizeof(*cur)))  == NULL )
-    {
-        ERROR("Unable to allocate memory for %u CPUID leaves", nr_leaves);
-        goto fail;
-    }
-
-    /* Get the domain's current policy. */
-    nr_msrs = 0;
-    nr_cur = nr_leaves;
-    rc = get_domain_cpu_policy(xch, domid, &nr_cur, cur, &nr_msrs, NULL);
-    if ( rc )
+    host = xc_cpu_policy_init();
+    def = xc_cpu_policy_init();
+    if ( !host || !def )
     {
-        PERROR("Failed to obtain d%d current policy", domid);
-        rc = -errno;
-        goto fail;
+        PERROR("Failed to init policies");
+        rc = -ENOMEM;
+        goto out;
     }
 
     /* Get the domain type's default policy. */
-    nr_msrs = 0;
-    nr_def = nr_leaves;
-    rc = get_system_cpu_policy(xch, di.hvm ? XEN_SYSCTL_cpu_policy_hvm_default
+    rc = xc_cpu_policy_get_system(xch, hvm ? XEN_SYSCTL_cpu_policy_hvm_default
                                            : XEN_SYSCTL_cpu_policy_pv_default,
-                               &nr_def, def, &nr_msrs, NULL);
+                                  def);
     if ( rc )
     {
-        PERROR("Failed to obtain %s def policy", di.hvm ? "hvm" : "pv");
-        rc = -errno;
-        goto fail;
+        PERROR("Failed to obtain %s def policy", hvm ? "hvm" : "pv");
+        goto out;
     }
 
     /* Get the host policy. */
-    nr_msrs = 0;
-    nr_host = nr_leaves;
-    rc = get_system_cpu_policy(xch, XEN_SYSCTL_cpu_policy_host,
-                               &nr_host, host, &nr_msrs, NULL);
+    rc = xc_cpu_policy_get_system(xch, XEN_SYSCTL_cpu_policy_host, host);
     if ( rc )
     {
         PERROR("Failed to obtain host policy");
-        rc = -errno;
-        goto fail;
+        goto out;
     }
 
     rc = -EINVAL;
-    for ( ; xend->leaf != XEN_CPUID_INPUT_UNUSED; ++xend )
+    for ( ; cpuid->leaf != XEN_CPUID_INPUT_UNUSED; ++cpuid )
     {
-        xen_cpuid_leaf_t *cur_leaf = find_leaf(cur, nr_cur, xend);
-        const xen_cpuid_leaf_t *def_leaf = find_leaf(def, nr_def, xend);
-        const xen_cpuid_leaf_t *host_leaf = find_leaf(host, nr_host, xend);
+        xen_cpuid_leaf_t cur_leaf;
+        xen_cpuid_leaf_t def_leaf;
+        xen_cpuid_leaf_t host_leaf;
 
-        if ( cur_leaf == NULL || def_leaf == NULL || host_leaf == NULL )
+        rc = xc_cpu_policy_get_cpuid(xch, policy, cpuid->leaf, cpuid->subleaf,
+                                     &cur_leaf);
+        if ( rc )
+        {
+            ERROR("Failed to get current policy leaf %#x subleaf %#x",
+                  cpuid->leaf, cpuid->subleaf);
+            goto out;
+        }
+        rc = xc_cpu_policy_get_cpuid(xch, def, cpuid->leaf, cpuid->subleaf,
+                                     &def_leaf);
+        if ( rc )
+        {
+            ERROR("Failed to get def policy leaf %#x subleaf %#x",
+                  cpuid->leaf, cpuid->subleaf);
+            goto out;
+        }
+        rc = xc_cpu_policy_get_cpuid(xch, host, cpuid->leaf, cpuid->subleaf,
+                                     &host_leaf);
+        if ( rc )
         {
-            ERROR("Missing leaf %#x, subleaf %#x", xend->leaf, xend->subleaf);
-            goto fail;
+            ERROR("Failed to get host policy leaf %#x subleaf %#x",
+                  cpuid->leaf, cpuid->subleaf);
+            goto out;
         }
 
-        for ( unsigned int i = 0; i < ARRAY_SIZE(xend->policy); i++ )
+        for ( unsigned int i = 0; i < ARRAY_SIZE(cpuid->policy); i++ )
         {
-            uint32_t *cur_reg = &cur_leaf->a + i;
-            const uint32_t *def_reg = &def_leaf->a + i;
-            const uint32_t *host_reg = &host_leaf->a + i;
+            uint32_t *cur_reg = &cur_leaf.a + i;
+            const uint32_t *def_reg = &def_leaf.a + i;
+            const uint32_t *host_reg = &host_leaf.a + i;
 
-            if ( xend->policy[i] == NULL )
+            if ( cpuid->policy[i] == NULL )
                 continue;
 
             for ( unsigned int j = 0; j < 32; j++ )
             {
                 bool val;
 
-                if ( xend->policy[i][j] == '1' )
+                switch ( cpuid->policy[i][j] )
+                {
+                case '1':
                     val = true;
-                else if ( xend->policy[i][j] == '0' )
+                    break;
+
+                case '0':
                     val = false;
-                else if ( xend->policy[i][j] == 'x' )
+                    break;
+
+                case 'x':
                     val = test_bit(31 - j, def_reg);
-                else if ( xend->policy[i][j] == 'k' ||
-                          xend->policy[i][j] == 's' )
+                    break;
+
+                case 'k':
+                case 's':
                     val = test_bit(31 - j, host_reg);
-                else
-                {
+                    break;
+
+                default:
                     ERROR("Bad character '%c' in policy[%d] string '%s'",
-                          xend->policy[i][j], i, xend->policy[i]);
-                    goto fail;
+                          cpuid->policy[i][j], i, cpuid->policy[i]);
+                    goto out;
                 }
 
                 clear_bit(31 - j, cur_reg);
@@ -399,25 +362,19 @@ static int xc_cpuid_xend_policy(
                     set_bit(31 - j, cur_reg);
             }
         }
-    }
 
-    /* Feed the transformed currrent policy back up to Xen. */
-    rc = xc_set_domain_cpu_policy(xch, domid, nr_cur, cur, 0, NULL,
-                                  &err_leaf, &err_subleaf, &err_msr);
-    if ( rc )
-    {
-        PERROR("Failed to set d%d's policy (err leaf %#x, subleaf %#x, msr %#x)",
-               domid, err_leaf, err_subleaf, err_msr);
-        rc = -errno;
-        goto fail;
+        rc = xc_cpu_policy_update_cpuid(xch, policy, &cur_leaf, 1);
+        if ( rc )
+        {
+            PERROR("Failed to set policy leaf %#x subleaf %#x",
+                   cpuid->leaf, cpuid->subleaf);
+            goto out;
+        }
     }
 
-    /* Success! */
-
- fail:
-    free(cur);
-    free(def);
-    free(host);
+ out:
+    xc_cpu_policy_destroy(def);
+    xc_cpu_policy_destroy(host);
 
     return rc;
 }
@@ -425,7 +382,7 @@ static int xc_cpuid_xend_policy(
 int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
                           const uint32_t *featureset, unsigned int nr_features,
                           bool pae, bool itsc, bool nested_virt,
-                          const struct xc_xend_cpuid *xend)
+                          const struct xc_xend_cpuid *cpuid)
 {
     int rc;
     xc_dominfo_t di;
@@ -545,6 +502,10 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
         goto out;
     *p = policy.cpuid;
 
+    rc = xc_cpu_policy_apply_cpuid(xch, &policy, cpuid, di.hvm);
+    if ( rc )
+        goto out;
+
     rc = x86_cpuid_copy_to_buffer(p, leaves, &nr_leaves);
     if ( rc )
     {
@@ -562,9 +523,6 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
         goto out;
     }
 
-    if ( xend && (rc = xc_cpuid_xend_policy(xch, domid, xend)) )
-        goto out;
-
     rc = 0;
 
 out:
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:37:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:37:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234673.407276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriiC-0000da-AZ; Mon, 29 Nov 2021 15:37:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234673.407276; Mon, 29 Nov 2021 15:37:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriiC-0000dP-48; Mon, 29 Nov 2021 15:37:00 +0000
Received: by outflank-mailman (input) for mailman id 234673;
 Mon, 29 Nov 2021 15:36:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrihK-0003uH-U5
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:36:07 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e61b719-512a-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:36:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e61b719-512a-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200162;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=oCwcWmwz0BMSkk8m68nr1rFFDTEUeQkIP2DOHyaSqqY=;
  b=UOPK/amGI4bl6TigtKe2Wc82+s6K6sdCukzZtlxEdgqHnOAfJPu+efk8
   XTYfdTpMAKypIoutoa7dqt80P76+7KQfVMiMjo0mJHq4DCWSdkKQ0R2DE
   eiGIjcAcD34La6QnC8LxOQ/XNGoBXD/H6F7X7+9K0b+H/Yog/LWXk/CkV
   A=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: Nc6pV2ozzeJq9sLgupWxfTlxJN3B5L5GZH4JcJWV9PwBdluG4h906HYx9lA+OpjZjVItMTSrEs
 EI3gCLfrPSE9tYnjttdbDTJSSg0FHMx0ab34LTcAQgmfozp2BRVf3ErzYScjzRy8N2UPpLz3uA
 CsskYQ7YOMSMZtjzUpEE1tWklGBZ2fPeUTT6j5L9SJYkpp9onH8LdI/Pt8d/w4qYxNC1Aznz91
 Ozm+rlP6+8DlFH6o80mSi9w0H3JWp8KXDtaOupDBq5lO8valL+RGwoF9fURO9NVyO3XHdQPHWb
 HhJP/BCJzp8t2n2afTR2/g5G
X-SBRS: 5.1
X-MesageID: 58773293
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:KHAd26gDP79O6m0F4P8QqT+iX161ghcKZh0ujC45NGQN5FlHY01je
 htvCmnTa/6OYGrzfo13bY7k/BsB65LWzYUxHgQ4/ChnES0b9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cy0IDga++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1C762+TyAXD5Tjv95efxBkH3kvB4p/reqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t1p8RRqyPP
 KL1bxJuZSTwOSJvHmxUVs95svuXhEjRLjxh/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 mDJ5WPiGTkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24ma/RNB3O
 0ES4jApr6U56AqsVNaVYvGjiCfa5FhGAYMWSrBkrlHWokbJ3+qHLmdefzBHT+IXjeARf38G3
 2OFx4LTIgU65dV5Vkmh3ruTqDqzPw0cImkDeTIIQGM53jXznG0gpkmRF4g+ScZZmvWwQGitm
 G7S8EDSkp1K1ZZTv5hX62wrlN5FSnLhagcurjvaUWu+hu+STN70Ptf4gbQ3ABspEWp4crVjl
 CVc8yR9xLpXZX1oqMBqaL9TdIxFH97fbFXhbadHRvHNDQiF9X+5Zpx36zpjPkpvOctsUWa3O
 x+K418OvsQKbCfCgUpLj2SZUZ5CIU/IT4qNaxwpRoAWPsgZmPGvoUmCmnJ8L0iyyRNxwMnTy
 L+QcNq2DGZyNEiU5GHeegvp6pdynnpW7TqKHfjTlk37uZLDNC/9YepUazOmM7FmhJ5oVS2Iq
 r6zwePRkE4BOAA/CwGKmbMuwacicSJmWMuo8pMPLYZu4GNOQQkcNhMY+pt4E6RNlKVJjObYu
 Ha7X05T0l3kgnPbbw6NbxhehHnHBMgXQasTMXN+MFC29WIkZIrzvq4Te4FuJess9fB5zO4yR
 P4AIp3SDvNKQzXB2jIccZii89AyKEX13VqDb3i/fTwyX598XAiVqNXqSRTiqXsVBS2tuMpg/
 7D5jlHHQYAOThhJBdrNbK791Eu4uHUQwbogX0bBLtRJVl/r9Yxmd374gvMtepleIhTf3DqKk
 Q2RBE5A9+XKpoY09vjPhLyF8Nj1Q7cvQBICEjCCv7isNCTc8m6y+qN6Ub6FLWLHSWf52KS+f
 uEJnfvyB+IKwQRRuI1mHrc1ka9nv4nzp6VXxxhPFWnQawj5EatpJ3SL0JUdtqBJwbMF6wK6V
 ljWp4tfMLSNfsjkDEQQNEwuaeHajaMYnTzb7PIUJkTm5XAooOrbABsKZxTc2jZAKLZVMZ8+x
 bZzscEb3AWzlx42P4vUlStT7WmNciQNXqhPWkv222M3Zt7HEm1/XKE=
IronPort-HdrOrdr: A9a23:JulUNayK5kmym6oIJ+R+KrPxsOskLtp133Aq2lEZdPULSKKlfp
 GV88jziyWZtN9wYhEdcdDpAtjmfZq6z+8L3WBxB8bfYOCCggqVxe5ZnPLfKlHbakjDH6tmpN
 1dmstFea3N5DpB/L7HCWCDer5KqrT3k9HL9JTjJjVWPHxXgslbnnZE422gYytLrWd9dP4E/M
 323Ls4m9PsQwVbUu2LQl0+G8TTrdzCk5zrJTYAGh4c8QGLyRel8qTzHRS01goXF2on+8ZszU
 H11yjCoomzufCyzRHRk0fV8pRtgdPkjv9OHtaFhMQ5IijlziyoeINicbufuy1dmpDi1H8a1P
 335zswNcV67H3cOkmzvBvWwgHllA0j7nfzoGXoyUfLkIjcfnYXGsBBjYVWfl/y8Ew7puxx16
 pNwiawq4dXJQmoplW82/H4EzVR0makq3srluAey1ZFV5EFVbNXpYsDuGtIDZY7Gj7g4oxPKp
 guMCjl3ocVTbqmVQGdgoE2q+bcGkjbXy32DHTqg/blkAS/xxtCvgwlLM92pAZIyHtycegD2w
 3+CNUcqFh5dL5hUUtMPpZyfSKJMB24ffu1ChPoHb3GLtBNB5ufke+83F0KjNvaD6DgiqFCwa
 j8bA==
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58773293"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O+LWsFvLrUk9aNpWquLFO8l29KeecLikiaA/maBuFVJ4FsCWTLlIEnZvcUSVFYgWpSFf4dGw7bWyM60S3gZ6f8j93tDFcdnV0AMNqSQzNVoXu5lDJBopG24+tUjIGW8GBcw592DkEKWKMScnthp3Cx20XLdXGSnpnhGHHM7++bGXroCi3sqzGi14KqcowRSclzkYJk0CBKnCKBC5+IAtWW2iD72GPjWcLyM7bSurtBmR73nkmdoOKuwBFJInjgjM8O50QjXxuDY8OMxEo7g9fdC5ebPkS6R+1Hj1Fq64NiH6CPYerrIJLFxymsUEh+JMp5TZ7Bkf3n1G78/tGFU+Wg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=va2yTS9NdywE+zexh1fxAUbpTOFx27IrcCDyw7x9azc=;
 b=mTmB7GXP8Z1rbKhhdgSK9VgGmDzWbLVglXcbtXfrPVqi+bpLDSjqyu3H0s4p5WqI1pjOOFEAb79uwpKtwliuElBcYTTxH1X4sLmOVuIBtcgaQ+9F5hwdBKUDMVzaiVvww1Rgz6wYCwxLUiIAR6kZuMzDM7Abj5j1CpYkVWZ4dRyFTXpDwq+57YgAPQm/oFfCbwaUeKBu/UC49OB9PiUt4jyhZa6cjOE0VvSNnFAMAXhSWQKlKFEcueboG2jfS2MHlfFp1fqItyWEr3/wUVkAtGmk8ZXQKxP3wQCCnUaLXCNPk652hJmaX5/s8E9Zj2wyQLWbbJOVaGyiYXVKZ0IRIg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=va2yTS9NdywE+zexh1fxAUbpTOFx27IrcCDyw7x9azc=;
 b=L0595hOgURK8N5x1evwrLImUyOg5QfRuMhFCPv2jUMEKxjr5WXtJqHttnRcN4Sq/5dW5wLFJbCheYZe03oD19g1nLpx36e2ChrfiEZYhVduggGz5x/4wa0TwxRPjpDufIjtAB0AfTUEppfTlIU2HL5fiUOCTdztPi5hsFfdnxiE=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>, Anthony PERARD
	<anthony.perard@citrix.com>
Subject: [PATCH v5 10/12] libs/{light,guest}: implement xc_cpuid_apply_policy in libxl
Date: Mon, 29 Nov 2021 16:33:53 +0100
Message-ID: <20211129153355.60338-11-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MRXP264CA0030.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::18) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b6d453ff-5b7f-4066-32d2-08d9b34defd7
X-MS-TrafficTypeDiagnostic: DM6PR03MB5340:
X-Microsoft-Antispam-PRVS: <DM6PR03MB5340B8BED334385825F875128F669@DM6PR03MB5340.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:177;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: uC3OciuAXZ10rxT3FJNQ5cFSlSZ01P7QceDw1T5tMqDCFMLRiNCboFjH5V57S1eL6PmcOOswwjupPwQMxhrvrGnz6GfrlIeoYZ4IKQFF0Z3tsu765ApRbNbPgnWkF9oRjZLUtkE5xYeZzIaeZAM78R+5m6wQqKnlDDidNKECui103wJyKRSH5nCVRFdyW6fMz9OiGi8x8V2jZEZsER0icP7dHkMKdSCKy7iusmzPuaxDAPUNiseMuuR8HkYFztcoiml3OoxLsELISqk31T+RIz/QnwkME77j2MlcDR2XhksgwflPwZLJB3F5+M9+JRdfUtA06GnOmAw7+BAnHmuw9Aj/c85/Mcw3BqULpMRTxJV4pMhmqBG4fbkQz8/U5orNaOrWYlm+X4JqUEdc4PkdZoGmFT8nuEoK7N4FEfGx91qCnYgzDChczF1WS4r+0H0YqGyzDBSw8exgkgVLedartH9y0G6n2uZQ+R7unEDViaSY0JMnZUuUbEWokiFS10z4ZZNTt8z8uarft/9KnNfx/W0WYYntgjwU5GAzoMmkkp8zrT4R69uoumXiUZa5UaiGPAmVOVEgFjCJEUL8EAMPwo3JyjoPvvX8AjMJEErK16XFdcM57dhWTKHxS4YZvGOptETfsxo40OWR/KKJuQOHbw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6666004)(82960400001)(66946007)(86362001)(1076003)(508600001)(5660300002)(8676002)(107886003)(6486002)(316002)(38100700002)(6496006)(26005)(83380400001)(6916009)(66476007)(2906002)(66556008)(2616005)(956004)(8936002)(54906003)(186003)(36756003)(4326008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dTFaazNpbktQVk9vdkt1a3VNYVlJczAwOWhHVnlDV25xYmpMT0Zyam10bWs3?=
 =?utf-8?B?SnRpNTdtMUlzdW5PR2VtRUM1TEdKbjNEV1ZoK2lhblI3akJPZDRmMEp2NDdj?=
 =?utf-8?B?aVhOckl3eEs3NjRKNXQvcGh4QVlMMGlBT1dPUnZ5YnBxalVPV25Nall6YW9v?=
 =?utf-8?B?NGpGY3dCdExSdzlWRWF3RVhIV0tQRGFBSS9wUi9CYzJMVlA4SEFnV1N4eDhr?=
 =?utf-8?B?ZW1CMDVncmd4amQ5QlFIZmRxNlIzNU84MjZJMmRKUUg5SHBtY0dqazlkV1FE?=
 =?utf-8?B?ZEdsV2NtZ2F6MlRGRzRyRnJmSUlYejBTV3h6UzJCR1MrcFBoWUYvdDVEanBR?=
 =?utf-8?B?QmVCQ3FVeXZRMitXb2hUdlhMV1dScHVvbFBlZUF0ZFJKdk9CTmdUdUJzZ1Ex?=
 =?utf-8?B?STQwckkranJBUDV2TXhCVmhpdEx6WVJxclNYaXJ3MVB0NzVQeHh0emEvbExF?=
 =?utf-8?B?WU5nMkhOMm8zNmd2eE1GOEdhUGJ1UUZzYzBMM3EwbVpRc2lNTG9nK0xOWUVa?=
 =?utf-8?B?MXdnY0M0Y1dLYW5Ib0JTNzkrSFRwTXJRMmZSOFdzdHpmcS9TS1VURU45a29p?=
 =?utf-8?B?KytKbGYzZUhvdVdSOFU4bG9KTXpncXJKTEVpRFRSSVBGcGFydmxLQk5NNUlX?=
 =?utf-8?B?K1JHNENrY3VaUmJjSURGNWg2blZ2eGRHYWpBRXhQMmV0N0YrL0g1dk9zZkVB?=
 =?utf-8?B?WGZJSUZINTdyQ1NkVVYyeU5JZ3ZpdTZveFNJRlN4bUpIQnVSanE1R3JiOW1y?=
 =?utf-8?B?RnU0L1UxdDI2T2dXc0Y5OEJ2cGkrc2dURjdLTEpOb1F2dWtUUW9hQjNYbXVz?=
 =?utf-8?B?Qmt0WlR6Sk9jZU5LWTRER3UrTEFtMHpZVCtabENNRHVIbkcyajBkcWhBV3ZK?=
 =?utf-8?B?a293MTVKS2d4SDd5cEF5QnlRVy95eUhpL09JN0RLb1dxYlNJbW12UlVmRUNI?=
 =?utf-8?B?RGZYUXpmVXVDS29vbUFZalJ2SzlEcXNnUFV3MTltMjgrWU9hMlFMdlBhNGlU?=
 =?utf-8?B?ZE0yeU44cmJ4QTZ2TkQ0bzlDY041bWUxNXNqY093NC94YkliOGdnY3ZaSk1P?=
 =?utf-8?B?T0V2RlU1Sys0OGVBdjhEbzFmWWh5WWlWcmJoZVFCSkNOU3ZiTU01Wms2dita?=
 =?utf-8?B?cEpvU2wzMnVxRWxGQ1lURTFUS0pBTjVweE12NjdYTTNsYS9LR0xIUXdnaWRO?=
 =?utf-8?B?aDV1d3pwRU11aExTNWN3bGNPbk5zYXBKRVM2cmsvNkVkZHFUU3JLQ21JK2pL?=
 =?utf-8?B?Ym9KSUwwOHc0V1U4YVBNVUFmYm1Eb0ROV25NczRNOHdqYTBwTVJZMFNvZGxm?=
 =?utf-8?B?dWgxeFdtZXMvaWdJT1dRL2orZ2tnM292YVo5OTRxcGFnK2ZBb0h4OWdmZnZn?=
 =?utf-8?B?L1l5ZWMvUDRHcGxHM2laTk9nS3JQK1VaUFlyOE9LNUpvN3N1d2R0Z0tHTXlI?=
 =?utf-8?B?TlJGOTR0bXZBOS82azVFR25peHZjbVFwemRmVnYrZWltRlpOdjB2bTM0dGhC?=
 =?utf-8?B?VGxOV3YzeUU3clMxelJVa3lscEQvY05UWVFZbXNqQ3YxQVc3TjNNQ1oxYTIx?=
 =?utf-8?B?SHhFbDZuYTdVa3dCbnBiUkV3YzhSUmlEMFNvbDkyWjJ1cDk5YlZPaFc0RUlt?=
 =?utf-8?B?M0ZETFFsV3h1QldRakt0NFAwS2xJdzlwbjYxZE4zYitzLzZSQXlKMW9GN0o0?=
 =?utf-8?B?Nkoybk9BMXc5WWVkQll4Z0JOTDRyeEkvMmttRTBxaEREOHQ3V0VMYXh3RVZF?=
 =?utf-8?B?eWVtMmZRNU0zS3ZzRzhyU2RBVjNVYUEvSjY3Q2I1eDdvaWRNNFk5bG1wMHpp?=
 =?utf-8?B?eHA0L1hKVzFzME1GMnlYUFVYc0dVN1U3eXVUdG0wZ3lSRVIzY2FXNDY1d1Fn?=
 =?utf-8?B?TWdPMEpoTUlBdmdlNnBIMjVnL3pNWTI3S281MElmZW9tSEdmTm5rK2JxRmE4?=
 =?utf-8?B?RWhmWjlUeWVMeWJWeDRTaDFnQ1BERDlvM1hPcU0zMXYzTFpIVjlhaUQ1eUhk?=
 =?utf-8?B?SkxjU2wwQ29oNEw4Q0RRZFpCUDFIV044R3FrWUFNak1YYTA5Q0tIMDNjZzB1?=
 =?utf-8?B?bkxNZ2Rac2xweU5tVWg5YWZhblFGemljZEhhY2MyTGQ2ZVAwdlhYRTg0c2ZL?=
 =?utf-8?B?TnFoU29VZ2hGb1B5WHlnd1Z1QWh5N3kvRzY4TUlSaW1DdVdEVzBuQ3U2SGtW?=
 =?utf-8?Q?aThxpsNmyUKj8lsRh2BDoIo=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: b6d453ff-5b7f-4066-32d2-08d9b34defd7
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:56.8402
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LHo1R7uJIa1uDLufds5/VfFUj/0FDRHGxJs00XJaARB1UwzNmV4Dzgeuv3pxBHYsb9kEc4Tf0/cp1r4eBZ6Yww==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5340
X-OriginatorOrg: citrix.com

With the addition of the xc_cpu_policy_* now libxl can have better
control over the cpu policy, this allows removing the
xc_cpuid_apply_policy function and instead coding the required bits by
libxl in libxl__cpuid_legacy directly.

Remove xc_cpuid_apply_policy.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
---
Changes since v4:
 - Correctly account for PVH guests being HVM in libxl__cpuid_legacy.
 - PAE option is only available to HVM guests (_not_ including PVH).

Changes since v2:
 - Use 'r' for libxc return values.
 - Fix comment about making a cpu policy compatible.
 - Use LOG*D macros.
---
 tools/include/xenctrl.h         |  18 -----
 tools/libs/guest/xg_cpuid_x86.c | 122 --------------------------------
 tools/libs/light/libxl_cpuid.c  |  92 ++++++++++++++++++++++--
 3 files changed, 86 insertions(+), 146 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 95bd5eca67..745d67c970 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1829,24 +1829,6 @@ struct xc_xend_cpuid {
     char *policy[4];
 };
 
-/*
- * Make adjustments to the CPUID settings for a domain.
- *
- * This path is used in two cases.  First, for fresh boots of the domain, and
- * secondly for migrate-in/restore of pre-4.14 guests (where CPUID data was
- * missing from the stream).  The @restore parameter distinguishes these
- * cases, and the generated policy must be compatible with a 4.13.
- *
- * Either pass a full new @featureset (and @nr_features), or adjust individual
- * features (@pae, @itsc, @nested_virt).
- *
- * Then (optionally) apply legacy XEND overrides (@xend) to the result.
- */
-int xc_cpuid_apply_policy(xc_interface *xch,
-                          uint32_t domid, bool restore,
-                          const uint32_t *featureset,
-                          unsigned int nr_features, bool pae, bool itsc,
-                          bool nested_virt, const struct xc_xend_cpuid *xend);
 int xc_mca_op(xc_interface *xch, struct xen_mc *mc);
 int xc_mca_op_inject_v2(xc_interface *xch, unsigned int flags,
                         xc_cpumap_t cpumap, unsigned int nr_cpus);
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index 41c6e66b6f..f4ed632d60 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -379,128 +379,6 @@ int xc_cpu_policy_apply_cpuid(xc_interface *xch, xc_cpu_policy_t *policy,
     return rc;
 }
 
-int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
-                          const uint32_t *featureset, unsigned int nr_features,
-                          bool pae, bool itsc, bool nested_virt,
-                          const struct xc_xend_cpuid *cpuid)
-{
-    int rc;
-    xc_dominfo_t di;
-    unsigned int nr_leaves, nr_msrs;
-    xen_cpuid_leaf_t *leaves = NULL;
-    struct cpuid_policy *p = NULL;
-    struct xc_cpu_policy policy = { };
-    uint32_t err_leaf = -1, err_subleaf = -1, err_msr = -1;
-
-    if ( xc_domain_getinfo(xch, domid, 1, &di) != 1 ||
-         di.domid != domid )
-    {
-        ERROR("Failed to obtain d%d info", domid);
-        rc = -ESRCH;
-        goto out;
-    }
-
-    rc = xc_cpu_policy_get_size(xch, &nr_leaves, &nr_msrs);
-    if ( rc )
-    {
-        PERROR("Failed to obtain policy info size");
-        rc = -errno;
-        goto out;
-    }
-
-    rc = -ENOMEM;
-    if ( (leaves = calloc(nr_leaves, sizeof(*leaves))) == NULL ||
-         (p = calloc(1, sizeof(*p))) == NULL )
-        goto out;
-
-    /* Get the domain's default policy. */
-    nr_msrs = 0;
-    rc = get_system_cpu_policy(xch, di.hvm ? XEN_SYSCTL_cpu_policy_hvm_default
-                                           : XEN_SYSCTL_cpu_policy_pv_default,
-                               &nr_leaves, leaves, &nr_msrs, NULL);
-    if ( rc )
-    {
-        PERROR("Failed to obtain %s default policy", di.hvm ? "hvm" : "pv");
-        rc = -errno;
-        goto out;
-    }
-
-    rc = x86_cpuid_copy_from_buffer(p, leaves, nr_leaves,
-                                    &err_leaf, &err_subleaf);
-    if ( rc )
-    {
-        ERROR("Failed to deserialise CPUID (err leaf %#x, subleaf %#x) (%d = %s)",
-              err_leaf, err_subleaf, -rc, strerror(-rc));
-        goto out;
-    }
-
-    if ( restore )
-    {
-        policy.cpuid = *p;
-        xc_cpu_policy_make_compat_4_12(xch, &policy, di.hvm);
-        *p = policy.cpuid;
-    }
-
-    if ( featureset )
-    {
-        policy.cpuid = *p;
-        rc = xc_cpu_policy_apply_featureset(xch, &policy, featureset,
-                                            nr_features);
-        if ( rc )
-        {
-            ERROR("Failed to apply featureset to policy");
-            goto out;
-        }
-        *p = policy.cpuid;
-    }
-    else
-    {
-        p->extd.itsc = itsc;
-
-        if ( di.hvm )
-        {
-            p->basic.pae = pae;
-            p->basic.vmx = nested_virt;
-            p->extd.svm = nested_virt;
-        }
-    }
-
-    policy.cpuid = *p;
-    rc = xc_cpu_policy_legacy_topology(xch, &policy, di.hvm);
-    if ( rc )
-        goto out;
-    *p = policy.cpuid;
-
-    rc = xc_cpu_policy_apply_cpuid(xch, &policy, cpuid, di.hvm);
-    if ( rc )
-        goto out;
-
-    rc = x86_cpuid_copy_to_buffer(p, leaves, &nr_leaves);
-    if ( rc )
-    {
-        ERROR("Failed to serialise CPUID (%d = %s)", -rc, strerror(-rc));
-        goto out;
-    }
-
-    rc = xc_set_domain_cpu_policy(xch, domid, nr_leaves, leaves, 0, NULL,
-                                  &err_leaf, &err_subleaf, &err_msr);
-    if ( rc )
-    {
-        PERROR("Failed to set d%d's policy (err leaf %#x, subleaf %#x, msr %#x)",
-               domid, err_leaf, err_subleaf, err_msr);
-        rc = -errno;
-        goto out;
-    }
-
-    rc = 0;
-
-out:
-    free(p);
-    free(leaves);
-
-    return rc;
-}
-
 xc_cpu_policy_t *xc_cpu_policy_init(void)
 {
     return calloc(1, sizeof(struct xc_cpu_policy));
diff --git a/tools/libs/light/libxl_cpuid.c b/tools/libs/light/libxl_cpuid.c
index 815498d4f3..07d445d9f9 100644
--- a/tools/libs/light/libxl_cpuid.c
+++ b/tools/libs/light/libxl_cpuid.c
@@ -441,9 +441,11 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,
                         libxl_domain_build_info *info)
 {
     GC_INIT(ctx);
+    xc_cpu_policy_t *policy = NULL;
+    bool hvm = info->type != LIBXL_DOMAIN_TYPE_PV;
     bool pae = true;
     bool itsc;
-    int r;
+    int r, rc = 0;
 
     /*
      * Gross hack.  Using libxl_defbool_val() here causes libvirt to crash in
@@ -454,6 +456,41 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,
      */
     bool nested_virt = info->nested_hvm.val > 0;
 
+    policy = xc_cpu_policy_init();
+    if (!policy) {
+        LOGED(ERROR, domid, "Failed to init CPU policy");
+        rc = ERROR_FAIL;
+        goto out;
+    }
+
+    r = xc_cpu_policy_get_domain(ctx->xch, domid, policy);
+    if (r) {
+        LOGED(ERROR, domid, "Failed to fetch domain CPU policy");
+        rc = ERROR_FAIL;
+        goto out;
+    }
+
+    if (restore) {
+        /*
+         * Make sure the policy is compatible with pre Xen 4.13. Note that
+         * newer Xen versions will pass policy data on the restore stream, so
+         * any adjustments done here will be superseded.
+         */
+        r = xc_cpu_policy_make_compat_4_12(ctx->xch, policy, hvm);
+        if (r) {
+            LOGED(ERROR, domid, "Failed to setup compatible CPU policy");
+            rc = ERROR_FAIL;
+            goto out;
+        }
+    }
+
+    r = xc_cpu_policy_legacy_topology(ctx->xch, policy, hvm);
+    if (r) {
+        LOGED(ERROR, domid, "Failed to setup CPU policy topology");
+        rc = ERROR_FAIL;
+        goto out;
+    }
+
     /*
      * For PV guests, PAE is Xen-controlled (it is the 'p' that differentiates
      * the xen-3.0-x86_32 and xen-3.0-x86_32p ABIs).  It is mandatory as Xen
@@ -466,6 +503,13 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,
      */
     if (info->type == LIBXL_DOMAIN_TYPE_HVM)
         pae = libxl_defbool_val(info->u.hvm.pae);
+    rc = libxl_cpuid_parse_config(&info->cpuid, GCSPRINTF("pae=%d", pae));
+    if (rc) {
+        LOGD(ERROR, domid, "Failed to set PAE CPUID flag");
+        rc = ERROR_FAIL;
+        goto out;
+    }
+
 
     /*
      * Advertising Invariant TSC to a guest means that the TSC frequency won't
@@ -481,14 +525,50 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,
      */
     itsc = (libxl_defbool_val(info->disable_migrate) ||
             info->tsc_mode == LIBXL_TSC_MODE_ALWAYS_EMULATE);
+    rc = libxl_cpuid_parse_config(&info->cpuid, GCSPRINTF("invtsc=%d", itsc));
+    if (rc) {
+        LOGD(ERROR, domid, "Failed to set Invariant TSC CPUID flag");
+        rc = ERROR_FAIL;
+        goto out;
+    }
 
-    r = xc_cpuid_apply_policy(ctx->xch, domid, restore, NULL, 0,
-                              pae, itsc, nested_virt, info->cpuid);
-    if (r)
-        LOGEVD(ERROR, -r, domid, "Failed to apply CPUID policy");
+    /* Set Nested virt CPUID bits for HVM. */
+    if (hvm) {
+        rc = libxl_cpuid_parse_config(&info->cpuid, GCSPRINTF("vmx=%d",
+                                                              nested_virt));
+        if (rc) {
+            LOGD(ERROR, domid, "Failed to set VMX CPUID flag");
+            rc = ERROR_FAIL;
+            goto out;
+        }
+
+        rc = libxl_cpuid_parse_config(&info->cpuid, GCSPRINTF("svm=%d",
+                                                              nested_virt));
+        if (rc) {
+            LOGD(ERROR, domid, "Failed to set SVM CPUID flag");
+            rc = ERROR_FAIL;
+            goto out;
+        }
+    }
+
+    /* Apply the bits from info->cpuid if any. */
+    r = xc_cpu_policy_apply_cpuid(ctx->xch, policy, info->cpuid, hvm);
+    if (r) {
+        LOGEVD(ERROR, domid, -r, "Failed to apply CPUID changes");
+        rc = ERROR_FAIL;
+        goto out;
+    }
+
+    r = xc_cpu_policy_set_domain(ctx->xch, domid, policy);
+    if (r) {
+        LOGED(ERROR, domid, "Failed to set domain CPUID policy");
+        rc = ERROR_FAIL;
+    }
 
+ out:
+    xc_cpu_policy_destroy(policy);
     GC_FREE;
-    return r ? ERROR_FAIL : 0;
+    return rc;
 }
 
 static const char *input_names[2] = { "leaf", "subleaf" };
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:37:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:37:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234680.407292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriiG-0001Cm-QQ; Mon, 29 Nov 2021 15:37:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234680.407292; Mon, 29 Nov 2021 15:37:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriiG-0001Cc-L3; Mon, 29 Nov 2021 15:37:04 +0000
Received: by outflank-mailman (input) for mailman id 234680;
 Mon, 29 Nov 2021 15:37:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrihO-0003uH-4A
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:36:10 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11e70a01-512a-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:36:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11e70a01-512a-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200168;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=cid3XAEKeAP1zvjCEhGe8Q+Rh5AudOlwxXpnQ/D+76M=;
  b=D7YRZtuC9Qv1FbbJLHoPb/zijylAfpzlLlxDx/8zTMlB2e/9lCS5fAgG
   4P4x/EHuiDG7RGiJXODgnpsKl2JU7C26bF06y0VOWWmt7KKjLxlG8yXB/
   crHBzjayRp6B1yue9mfAG5Wwx5m1sg0kWI7FTADtLRMdbB1GhuuFVDIC1
   8=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: B4v6gXUxgBwGSnstuRy7V2RnsUdd63EnUBcaT1YlZWd0ghCVNdwkmqqcSUWEyj84wNwFs62BkC
 jcLRE5sEffUNfljy8t6nHbfws5boBRDjtQ9CItU+F8Poe8eAMDTzMXjcWGby2e7EqjBidYz7HS
 wFfA68q/NhpJBjI5bog/UvfOMhwaSnXPqudTqQPbC7G29kYGUVCeUT9D90Qk9U3FeDxwVwNXIy
 X9VrxM2EPTpSPzAjEuAvNRYirIyABnThFVrz5/I18pkkKKrnBK4EK2dSzut6NY3/MQo5gsKOIp
 H/a3Hd+AdE+HuxGVQ9VKFKoX
X-SBRS: 5.1
X-MesageID: 58835528
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LT3YgqPalrDi9fLvrR1ZkMFynXyQoLVcMsEvi/4bfWQNrUoq1TdSn
 DRLUT/XOPaMYzH0ctxxbYuw80sC7JHWzINjTgto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Egyw7dRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYozG5otIp0
 I1wj7GLZyI7eanRvNsxVyANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YvNrick5atHiIasUu216zCGfBvEjKXzGa/iatYQFgW1g7ixINczua
 vY4SCVSVzCDah1gIVFQB8hkzPj90xETdBUH8QnI9MLb+VP70whZwLXrdt3PdbSiR8pPmV2Dj
 nnb5Gm/CRYfXPSe1jit4n+qnvXIny7wRMQVDrLQ3u5nhhify3IeDDUSVECnur+ph0imQdVdJ
 kcIvC00osAa9kamU938VB2Qu2Ofs1gXXN84LgEhwFjTkOyOuV/fXzVaCG4aADA7iCMobTga6
 13Rh4vUPxFUnpiHDnaA0oi4qQrnbED5MlQ+TSMDSAIE5fzqr4cykg/DQ75fLUKlsjHmMWqum
 m7X9UDSk51W1JdWjPvjoTgrlhr1/sCRJjPZ8Dk7SY5MAulRQIe+L7Kl5lHAhRqrBNbIFwLR1
 JTodiX30QzvMX1vvHHVKAnuNOvwjxpgDNE7qQQxd6TNDxz3pxaekXl4uVmS3ntBPMceYiPOa
 0TOow5X75I7FCL0Nv8uOd7uUZ9znfSI+THZuhb8NIAmjn9ZLlHvwc2TTRTIgzCFfLYEzMnTx
 qt3ge7zVC1HWMyLPRK9RvsH0K9D+8zN7Ti7eHwP9Dz+ieD2TCfMEd8taQLSBshkvPLsiFiEq
 L53aprVoyizpcWjO0E7B6ZIdgtURZX6bLirw/FqmhmrflA7RTp/UqCJmtvMueVNxsxoqwsBx
 VnkMmdww1vjn3zXbwKMb3FocrT0Wphj63k8OEQR0ZyAgRDPuK6js/UScYUZZ74i+LAxxPJ4V
 aBdKc6BHu5OWnLM/DFENcvxq4lrdRKKgwOSPnX6PGhjLsA4HwGZqMX5egbP9TUVCnblv8UJv
 LD9hBjQRoAORlo+AZ+OOu6v1V64oVMUhPl2AxnTOtBWdUi1qNpqJiX9g+UZOcYJLRmflDKW2
 xzPWUUTpPXXop9z+97M3PjWo4CsGup4P0xbA2iEsurmaXiEpjKumNYSXvyJcDbRUHLP1J+jP
 egFnevhNPAnnUpRt9YuGbhc0q9jtcDkoKVXz1o4ESyTPUirEL5pPlKPwdJL6v9W3rZctAa7B
 hCP991dNenbMc/pCgdMdg8sb+DF3vAIgDjCq/8yJRyitiNw+bOGV2RUPgWN13MBfOckbtt9z
 LdzotMS5iy+lgEuY4SPgS1j/miRKmANDvc8vZYADY630gcmxzmuu3AH5vMaNH1XV+hxDw==
IronPort-HdrOrdr: A9a23:W7YCta59Pq79uJm9iQPXwVKBI+orL9Y04lQ7vn2ZFiY7TiXIra
 yTdaoguCMc6AxxZJkh8erwXJVoJkmsiaKdgLNhQItKOTOJhILGFvAF0WKP+UyDJ8S6zJ8n6U
 4CSdkONDSTNykCsS+S2mDReLxBsbr3gJxAx92utUuFJTsaFZ2IhD0JbTpzfHcGITWvUvECZe
 WhD4d81nCdUEVSSv7+KmgOXuDFqdGOvJX6YSQeDxpizAWVlzun5JPzDhDdh34lIn9y6IZn1V
 KAvx3y562lvf3+4hjA11XL55ATvNf60NNMCOGFl8BQADTxjQSDYphnRtS5zX0IidDqzGxvvM
 jHoh8mMcg2w3TNflutqR+o4AXk2CZG0Q6q9XaoxV/Y5eDpTjMzDMRMwahDdAHC1kYmtNZglI
 pWwmOwrfNsfFL9tRW4w+KNewBhl0Kyr3Znu/UUlWZjXYwXb6IUhZAD/XlSDIwLEEvBmc4a+d
 FVfYLhDcttABGnhyizhBgr/DXsZAV9Iv6+eDlDhiTPuAIm2EyQzCMjtboidzk7hdUAoqJ/lp
 b525JT5cZzp/8tHNFA7dg6ML6K4xT2MGrx2UKpUBza/fI8SjnwQ6Ce2sRA2AjtQu1P8KcP
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58835528"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Esp0zRW9PBuH+gQ/JawkliNQ3i41F/M1gUIC+BILNbUcUjAGFldyrKHn8Ojpg9Nno4/kkqqFygNFmZ5vW1Ahy0r26bvqwd5ZYJTv+a5okm6ZhcneIQ83Ii79kIwXq8+/9uShA+VxPGZeUGCuwwGnYRLLHl5UUoKXt6ii31HG2CYKZngGRGOLK7+MZaphwXZ1oeOb9ZZyULTRw5jiNwyGAkGJCVvqe4XPHXbCoClpRRU9NZ3lfr261yiM80lGgBCFJvQq3H73/T3cGR+6OGJhk7Zc/lXj5p/pn0TuMRpzlAhX46Vdq/C+nW4uETFY73MStIAyVyMwTMkZY8GI4o9paQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rU77IFnPQdUFFfhSMm0buGRsWwFsG5UILU9PerQjkho=;
 b=Qj41x4ZCsMHtry0+08tSRknEF+nLUTbCYQ0k/D8iP2YGUUoRHDuFpjsXO/H3quGjVaff6dMrSAGDr/RHuEIYqSxzqtfmomLJlDDOwU7ixJzX5IpzMUd42H2twbanjICrFsGnc2fUW8Hw/hiYvGQ9iVNfFHmR3wC/01cB5jzoSgI9Agx9SyTQXj/tBhAGJvup2ljEQmx+8Wj7bFxmT1jLW+GY53hRvUocbOK+QOP+yLL7EUUzyjrnVE2A3qZc0rNYKbzoP6IB2t4gmRfPsifhi1Wi1DlMmccL/5pY7DSjodmZgjVRIixXA5pGo+XZUPPycuVFr4rgOgxX9Wnx0yeLhA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rU77IFnPQdUFFfhSMm0buGRsWwFsG5UILU9PerQjkho=;
 b=Zxm8+FrkL25l5mCu0rs2U0CsrQdWa6F4BEk3Z5gzJpL7H0ca+JduYzuuI0+nCfVZG9lI84uDmt/Sg+fSfG92YULi4DZyTRCP8G6BAdld2G/pKqluKeaGm3RNWWNIgu3+Dpr65slL3JR2wZIa80Bpa8S1w1nM7qqdVG7O0LACqwE=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Ian Jackson <iwj@xenproject.org>, Wei Liu
	<wl@xen.org>, Juergen Gross <jgross@suse.com>, Anthony PERARD
	<anthony.perard@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v5 12/12] x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents
Date: Mon, 29 Nov 2021 16:33:55 +0100
Message-ID: <20211129153355.60338-13-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MRXP264CA0039.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:14::27) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 96ed219c-5b5b-4d5d-a8e5-08d9b34df463
X-MS-TrafficTypeDiagnostic: DM6PR03MB5340:
X-Microsoft-Antispam-PRVS: <DM6PR03MB5340E089E1BE85ED48E7ACFF8F669@DM6PR03MB5340.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3173;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: BfgNwBbbiUJEu178+H2t7awtUsqrhQq3T2yMgL3PbtqR1Fp/LUDB0YA7GuBqJIrnPv5+iMm+KZUuA4CFGHZKx+YNKV03Q4+f3i4fdzB9GYLVUMlObpEdywa0KAbej0OSsZAIkd6Of6jxXo14paj/aSXVRQOed2t8fvB4/pK7MlN4kzYvWAm4BqTefb8pkEVb/ZtymRezrnHcWTekkAa+g9ZtbpI/6udiQTpssdhDIMLwYANLhSJ0BOl3XCh4E38cVsPKqItxGLt8ayTNKFVcikBEP+Mdw+7xd0eMG+fsJVjqZ3nKKFOXv8iZoXNVYMOUbCu6AeOl0FP/SGC1XH4yhROoTVMkV7nJrIWpvtNhPKhCN05n418x1W0KzEly5U/YF3ZTT7z335JSg08V0/2+orQsKP7SWtU/ceqPN/+J0MOaikzcGtkmqvkDSuvJwRwxNM80/Ke5FFqMpGldSKWnE1bITi1wAipO4af08wowl5pI9gSjnIyIGTHhPud133B1vxpNBVIyfSm7I+KoWtka0y7cXbN4nagWBx8o+iUlVJPFK4J3VSLS0uD3N0bjrHJQmmIYsNUjbpMk4oYeb/R4f3E2lesteER9mnYlyZ+0AGZ7kC63RGSf5YtSi4SuHh7GnH8Z4Wzz1zH1tPt424aQMg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6666004)(82960400001)(66946007)(86362001)(1076003)(508600001)(5660300002)(8676002)(107886003)(6486002)(316002)(38100700002)(6496006)(26005)(83380400001)(6916009)(66476007)(2906002)(66556008)(2616005)(956004)(8936002)(54906003)(186003)(36756003)(4326008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aUVnWnkxcmdKcHMwbGJWcUdxZ0tqZzlPWTdOWTNiWjc2ellWUlVLVWtaV2Jl?=
 =?utf-8?B?QldmUjNpRk9YUklCTXJ4Z1p1Z2lCSEVGbW0vKzNpdk5ZcHh0M21HSFk4TWhv?=
 =?utf-8?B?RGV1cHI0TWE1Q1UxZFpwTUNROUJiMy9UZzNlSXJZT0NUQ1R1VFdNTE9PWVp4?=
 =?utf-8?B?SVVTM1B4bytPVjlhLzNGaXVUOUxoeUZTalo2d09wWHd6djJwbDNaWDBXVVFi?=
 =?utf-8?B?RVlaMGVsSFhRcXZXNG00NmJad2Z4cysyU3NYR0dwck5wR0FRR09qZEJXRlJT?=
 =?utf-8?B?dG52TG4wV2JRWkZRT2RHeXcrRnp2aTZnRHNrbEJLYWN3S0xOMGsxMDRaTzlC?=
 =?utf-8?B?V25iVHdNTDl4VHdoR0cyZFR4RXhIaVpQbDFvbGVpZXlodUFEZEpSQW5Lb1V4?=
 =?utf-8?B?TjE3RW9Pb2N1dTVRZFFlblBKcDdhWkc0bDlDVHp6VUI1Zk8wRTZGL0oyeFhZ?=
 =?utf-8?B?OXhwUWJkUGk4WjFZQWI2UHp2MXM1eDN6UnpCTkx2aU5NZmhCRks5M0lJMHZE?=
 =?utf-8?B?Tkt4b1VRWEpqZFpZUklEcmE2Qk05Q1VQUmZlY25oTlAxZFRwenIxamZFMDha?=
 =?utf-8?B?eFVRa2pUNnhEV1BaL1pvaUZ3b0NxUi9RUzQwaWlXWkdJRVp3MWI2VUxNTm9G?=
 =?utf-8?B?bElNNlZqa1RRc2w4TzlqMlp0bHA0eFBEK3c5WmpPbEJUTDVDdngzOFJqa0Zn?=
 =?utf-8?B?TFp4YXIvK3VzcW8ycHh1eEF1YnRzck9VTllsRit4dWEyR0JRQ3Jmemk3a1Zh?=
 =?utf-8?B?UDZ5djVjd1pSL09kRjFuTFk5OFMzYWNWRmpPUVBmQmZLOVhULzBGdXorcUhD?=
 =?utf-8?B?TkVsb3N6UitlSFJiRGJFUWp1eFlMUENLaTlOWHFjOXhGTHlheHIrbFZpaWxV?=
 =?utf-8?B?TSs0SVF4Uzd2V1hOcUZzbUROVlF5bko4SC9nVkZzeUhyT29RbXNEc1Q4aXFo?=
 =?utf-8?B?SnhzMjNFM0dwemxVa0wwem5nRWRlL3JHZ1hjUnE3MVV1WWpWU0NTQ214MWZH?=
 =?utf-8?B?cG1KY2lqSDFQbVdrb3J2YlpsKzIxNlRBdjNrVENmWXlKallMZVF0TkMyUVpC?=
 =?utf-8?B?UGpOTjJPUVJYelNCQzdtdUpiUll6bHIxRExpeXEyNSs5RmVsbTlUWEpBbW5q?=
 =?utf-8?B?UXpLY243WnBIK3dDRkIyYWp6ZndBWVZodCtsbURyYkdZOUJQMFF2RGYvRkFD?=
 =?utf-8?B?dFFLVHdTV0dmajB3YUxsNFdaQVFTdFVvVGVxbUo2dmdyZk9tV3pCMTk4TWdU?=
 =?utf-8?B?Y3kxNzJnY3hiS3lrSk94ZmduOGFaSVg1N1FNRktVUzNueU9laWxmYTk0MHRK?=
 =?utf-8?B?NjFNbCszS01vU3dnTTd5OHpKSjhHUW9TREt1RjdCOHZqKzZReFYweXR5cU9P?=
 =?utf-8?B?WlBnd0tWK1FsUWdJVHJZUTRKMG1MVmZuSUVlL2VhUGo4Wnk5KytWQ3lVVlJO?=
 =?utf-8?B?bDAwdFdUelYzeDlwK0lFcW92ckJPbUhDdUdCYUVDSnRNMytkQkZ4eFE0TzUx?=
 =?utf-8?B?ZFRlbXVqdXREWmlNQkNDRzBsMDZoVXo2YUhrRlpqZmpVN3dDdmwwQ3J3U0hk?=
 =?utf-8?B?REVDNDkrUWhncGYzeFBjTHFBb1N3VzlmWjFyL2o0Nk1vcnQ5ajBRUnlNWVgv?=
 =?utf-8?B?WHMrMlpGOVVrR1N6WlBLUFY3MFlQbi9qZHBQblNvenBrZTUrWUNtUmFuNlFJ?=
 =?utf-8?B?ZlRpanpxb0JHK0NWWUpaNjd2YjA0N0daZW0wWGp4U0N6UkdZdHJydEJqSi9Z?=
 =?utf-8?B?TmxRRzBxZnR5bTViSTFTd25HU0FWczhGaDIwNW5BQzE0SHZnTXQ5ZmJLYXJq?=
 =?utf-8?B?ZnZuR2FHMUk1UDBRYUlYZHhHN3lTOUkzVUsxOGpkV2o5Ym00aHF5Z1lSM0Zs?=
 =?utf-8?B?ZVVmTlRGcUd2QVFsaHJCc3NFNVhEdzBYalU2RUN5bFhjd0k1dXJpSGJ3djZv?=
 =?utf-8?B?eDhSQ1p3RVVOdzJuc2FsS216blpYRzR5UUc0ZktuUWJlbmdXZ2oyUHhrZTVB?=
 =?utf-8?B?WEI1SHRLSDF1bXVRVFNHSFJMY1NReEptdWcxQ3BpL0N3ZVRyR0QyeGltdXIv?=
 =?utf-8?B?cEduZG1ZT2JuUm5ZQlY2dHFnQWlwanhyZlVWcCtMZHlNY2t4Q2cwWEI2ejYv?=
 =?utf-8?B?dFVELzBKOWZxNGxXZnRvaTlPdGJUSmNqWkR0dFlndTBvRmhZVUV2cjJRYXhF?=
 =?utf-8?Q?NKguk43l83cPLLzh1pHMmwc=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 96ed219c-5b5b-4d5d-a8e5-08d9b34df463
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:36:04.5095
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BDdqEpq1BnLeJaf/c/3DOVqqgkgpZ739P2E5Q6nlHmLCg79syoxAmg3rtXquuFetNyToN4zPkrrna7htJslb/w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5340
X-OriginatorOrg: citrix.com

From: Jan Beulich <jbeulich@suse.com>

Zapping leaf data for out of range leaves is just one half of it: To
avoid guests (bogusly or worse) inferring information from mere leaf
presence, also shrink maximum indicators such that the respective
trailing entry is not all blank (unless of course it's the initial
subleaf of a leaf that's not the final one).

This is also in preparation of bumping the maximum basic leaf we
support, to ensure guests not getting exposed related features won't
observe a change in behavior.

Note that such shrinking is only done when creating a policy for a
domain from scratch. Migrated in domains keep their previous policy if
present untouched, and for migrated in domains not having CPUID data
the crafted Xen pre-4.13 policy is not trimmed to keep a behavior
compatible with those older Xen versions.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v4:
 - New in this version, picked up from 540d911c2813.
 - Only shrink policies for newly created domains.
---
 tools/include/xenguest.h                 |   3 +
 tools/libs/guest/xg_cpuid_x86.c          |   5 ++
 tools/libs/light/libxl_cpuid.c           |   7 ++
 tools/tests/cpu-policy/test-cpu-policy.c | 101 +++++++++++++++++++++++
 xen/include/xen/lib/x86/cpuid.h          |   7 ++
 xen/lib/x86/cpuid.c                      |  39 +++++++++
 6 files changed, 162 insertions(+)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index 3462d27516..e8b0d3ff16 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -830,6 +830,9 @@ int xc_cpu_policy_apply_featureset(xc_interface *xch, xc_cpu_policy_t *policy,
                                    const uint32_t *featureset,
                                    unsigned int nr_features);
 
+/* Sanitize a policy: can change the contents of the passed policy. */
+void xc_cpu_policy_sanitize(xc_interface *xch, xc_cpu_policy_t *policy);
+
 int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps);
 int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,
                           uint32_t *nr_features, uint32_t *featureset);
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index 7ce0a08580..eca844b921 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -690,3 +690,8 @@ int xc_cpu_policy_apply_featureset(xc_interface *xch, xc_cpu_policy_t *policy,
 
     return 0;
 }
+
+void xc_cpu_policy_sanitize(xc_interface *xch, xc_cpu_policy_t *policy)
+{
+    x86_cpuid_policy_shrink_max_leaves(&policy->cpuid);
+}
diff --git a/tools/libs/light/libxl_cpuid.c b/tools/libs/light/libxl_cpuid.c
index bf710ba196..5b2690a7d7 100644
--- a/tools/libs/light/libxl_cpuid.c
+++ b/tools/libs/light/libxl_cpuid.c
@@ -689,6 +689,13 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,
         goto out;
     }
 
+    /*
+     * Do not attempt any modifications if creating a policy that aims to be
+     * compatible with pre-4.13 Xen versions.
+     */
+    if (!restore)
+        xc_cpu_policy_sanitize(ctx->xch, policy);
+
     r = xc_cpu_policy_set_domain(ctx->xch, domid, policy);
     if (r) {
         LOGED(ERROR, domid, "Failed to set domain CPUID policy");
diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-policy/test-cpu-policy.c
index 686d7a886c..20419a6108 100644
--- a/tools/tests/cpu-policy/test-cpu-policy.c
+++ b/tools/tests/cpu-policy/test-cpu-policy.c
@@ -8,10 +8,13 @@
 #include <err.h>
 
 #include <xen-tools/libs.h>
+#include <xen/asm/x86-defns.h>
 #include <xen/asm/x86-vendors.h>
 #include <xen/lib/x86/cpu-policy.h>
 #include <xen/domctl.h>
 
+#define XSTATE_FP_SSE  (X86_XCR0_FP | X86_XCR0_SSE)
+
 static unsigned int nr_failures;
 #define fail(fmt, ...)                          \
 ({                                              \
@@ -671,6 +674,103 @@ static void test_msr_get_entry(void)
     }
 }
 
+static void test_cpuid_maximum_leaf_shrinking(void)
+{
+    static const struct test {
+        const char *name;
+        struct cpuid_policy p;
+    } tests[] = {
+        {
+            .name = "basic",
+            .p = {
+                /* Very basic information only. */
+                .basic.max_leaf = 1,
+                .basic.raw_fms = 0xc2,
+            },
+        },
+        {
+            .name = "cache",
+            .p = {
+                /* Cache subleaves present. */
+                .basic.max_leaf = 4,
+                .cache.subleaf[0].type = 1,
+            },
+        },
+        {
+            .name = "feat#0",
+            .p = {
+                /* Subleaf 0 only with some valid bit. */
+                .basic.max_leaf = 7,
+                .feat.max_subleaf = 0,
+                .feat.fsgsbase = 1,
+            },
+        },
+        {
+            .name = "feat#1",
+            .p = {
+                /* Subleaf 1 only with some valid bit. */
+                .basic.max_leaf = 7,
+                .feat.max_subleaf = 1,
+                .feat.avx_vnni = 1,
+            },
+        },
+        {
+            .name = "topo",
+            .p = {
+                /* Topology subleaves present. */
+                .basic.max_leaf = 0xb,
+                .topo.subleaf[0].type = 1,
+            },
+        },
+        {
+            .name = "xstate",
+            .p = {
+                /* First subleaf always valid (and then non-zero). */
+                .basic.max_leaf = 0xd,
+                .xstate.xcr0_low = XSTATE_FP_SSE,
+            },
+        },
+        {
+            .name = "extd",
+            .p = {
+                /* Commonly available information only. */
+                .extd.max_leaf = 0x80000008,
+                .extd.maxphysaddr = 0x28,
+                .extd.maxlinaddr = 0x30,
+            },
+        },
+    };
+
+    printf("Testing CPUID maximum leaf shrinking:\n");
+
+    for ( size_t i = 0; i < ARRAY_SIZE(tests); ++i )
+    {
+        const struct test *t = &tests[i];
+        struct cpuid_policy *p = memdup(&t->p);
+
+        p->basic.max_leaf = ARRAY_SIZE(p->basic.raw) - 1;
+        p->feat.max_subleaf = ARRAY_SIZE(p->feat.raw) - 1;
+        p->extd.max_leaf = 0x80000000 | (ARRAY_SIZE(p->extd.raw) - 1);
+
+        x86_cpuid_policy_shrink_max_leaves(p);
+
+        /* Check the the resulting max (sub)leaf values against expecations. */
+        if ( p->basic.max_leaf != t->p.basic.max_leaf )
+             fail("  Test %s basic fail - expected %#x, got %#x\n",
+                  t->name, t->p.basic.max_leaf, p->basic.max_leaf);
+
+        if ( p->extd.max_leaf != t->p.extd.max_leaf )
+             fail("  Test %s extd fail - expected %#x, got %#x\n",
+                  t->name, t->p.extd.max_leaf, p->extd.max_leaf);
+
+        if ( p->feat.max_subleaf != t->p.feat.max_subleaf )
+             fail("  Test %s feat fail - expected %#x, got %#x\n",
+                  t->name, t->p.feat.max_subleaf, p->feat.max_subleaf);
+
+        free(p);
+    }
+}
+
 static void test_is_compatible_success(void)
 {
     static struct test {
@@ -787,6 +887,7 @@ int main(int argc, char **argv)
     test_cpuid_deserialise_failure();
     test_cpuid_out_of_range_clearing();
     test_cpuid_get_leaf_failure();
+    test_cpuid_maximum_leaf_shrinking();
 
     test_msr_serialise_success();
     test_msr_deserialise_failure();
diff --git a/xen/include/xen/lib/x86/cpuid.h b/xen/include/xen/lib/x86/cpuid.h
index 050cd4f9d1..86cda38986 100644
--- a/xen/include/xen/lib/x86/cpuid.h
+++ b/xen/include/xen/lib/x86/cpuid.h
@@ -386,6 +386,13 @@ void x86_cpuid_policy_fill_native(struct cpuid_policy *p);
  */
 void x86_cpuid_policy_clear_out_of_range_leaves(struct cpuid_policy *p);
 
+/**
+ * Shrink max leaf/subleaf values such that the last respective valid entry
+ * isn't all blank.  While permitted by the spec, such extraneous leaves may
+ * provide undue "hints" to guests.
+ */
+void x86_cpuid_policy_shrink_max_leaves(struct cpuid_policy *p);
+
 #ifdef __XEN__
 #include <public/arch-x86/xen.h>
 typedef XEN_GUEST_HANDLE_64(xen_cpuid_leaf_t) cpuid_leaf_buffer_t;
diff --git a/xen/lib/x86/cpuid.c b/xen/lib/x86/cpuid.c
index 924f882fc4..6a943cd91b 100644
--- a/xen/lib/x86/cpuid.c
+++ b/xen/lib/x86/cpuid.c
@@ -236,6 +236,45 @@ void x86_cpuid_policy_clear_out_of_range_leaves(struct cpuid_policy *p)
                 ARRAY_SIZE(p->extd.raw) - 1);
 }
 
+void x86_cpuid_policy_shrink_max_leaves(struct cpuid_policy *p)
+{
+    unsigned int i;
+
+    p->basic.raw[0x4] = p->cache.raw[0];
+
+    for ( i = p->feat.max_subleaf; i; --i )
+        if ( p->feat.raw[i].a | p->feat.raw[i].b |
+             p->feat.raw[i].c | p->feat.raw[i].d )
+            break;
+    p->feat.max_subleaf = i;
+    p->basic.raw[0x7] = p->feat.raw[i];
+
+    p->basic.raw[0xb] = p->topo.raw[0];
+
+    /*
+     * Due to the way xstate gets handled in the hypervisor (see
+     * recalculate_xstate()) there is (for now at least) no need to fiddle
+     * with the xstate subleaves (IOW we assume they're already in consistent
+     * shape, for coming from either hardware or recalculate_xstate()).
+     */
+    p->basic.raw[0xd] = p->xstate.raw[0];
+
+    for ( i = p->basic.max_leaf; i; --i )
+        if ( p->basic.raw[i].a | p->basic.raw[i].b |
+             p->basic.raw[i].c | p->basic.raw[i].d )
+            break;
+    p->basic.max_leaf = i;
+
+    for ( i = p->extd.max_leaf & 0xffff; i; --i )
+        if ( p->extd.raw[i].a | p->extd.raw[i].b |
+             p->extd.raw[i].c | p->extd.raw[i].d )
+            break;
+    if ( i | p->extd.raw[0].b | p->extd.raw[0].c | p->extd.raw[0].d )
+        p->extd.max_leaf = 0x80000000 | i;
+    else
+        p->extd.max_leaf = 0;
+}
+
 const uint32_t *x86_cpuid_lookup_deep_deps(uint32_t feature)
 {
     static const uint32_t deep_features[] = INIT_DEEP_FEATURES;
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:37:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:37:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234681.407298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriiH-0001HE-DB; Mon, 29 Nov 2021 15:37:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234681.407298; Mon, 29 Nov 2021 15:37:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mriiH-0001Gi-1g; Mon, 29 Nov 2021 15:37:05 +0000
Received: by outflank-mailman (input) for mailman id 234681;
 Mon, 29 Nov 2021 15:37:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrihH-0003uH-Tc
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:36:04 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0d5a4127-512a-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 16:36:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d5a4127-512a-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638200160;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=d9tlpzIvXcOXPpebR2FdU5F5aJVq5WGS3uJketsR6ps=;
  b=WFhKzMrlMRxnPxvBdZA2+Gsc4n0+e6tK3BgPzmgEsr1IofrlZG1PbBPj
   +lRB2MxJIj+1Gw+Y7q+90aDP9AarQHZdU6Xhg57nhhvLibXTj29W8hgsP
   BZTI968q9p+N8sDWKuYFlFQUGZ9gQ1JfdNykEkw9bH8uO62MhVT79DXxa
   c=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 3IKHmyhzOs8grf709M+ihYZLdZcTQOsp+NKmkaIgnEfuGfC+O0TaQzqlLjICYoDIAMlOQsARca
 zez4yWljbZwiUv+aGYVG16NgTrkOJ4BQbZM/nINaRXMecg2WgpcNhdDGblA7zLx0nw2w/q2zhw
 aRoQDBqTV1tB3HAPiLUxaiERrnaRqjIKCX9By7JuE2kabrd8AzZvhU913gEcZerUAo1+FDvgvM
 4dQQ4asjJbe+QeBVM0DES19ojWoZ7YV6vVyvl9Ogg2opY1EqUp3QIyCipmRTQbMP1XfOaro1a0
 8D+UjFuesAy0LoFUliwGUh9E
X-SBRS: 5.1
X-MesageID: 58773277
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:zdH+vqkJXE7LBPkmvggQfrDo5gxjIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xIeXTyDPquNZzehf4pxYdnn9kgP7ZaDydAxS1RsrHo3RCMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Q52YHR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 IRA6cThURkzB/DvqukWQgNmHX1aYYQTrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBNPsM44F/Glp0BnSDOo8QICFSKLPjTNd9Gpg2Z8VR6mBD
 yYfQTpVaz7pORF3AW9UFs1ln+aTrXfOKyIN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wp
 G3c+H/iKgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRok+hWfpPJ
 koM4C0soKMuskuxQbHAswaQ+SDe+ERGApwJTrN8uFrlJrfoDxixV2VYFm9ZdsYf6ewESDc7z
 GGHw/e1LGk62FGKck61+rCRpDK0HCEaK24eeCMJJTc4D8nfTJIb1UyWEIs6eEKhppisQGyrn
 WjWxMQrr+xL1ZZj6kmtwbzQb9tATLDtRxV92AjYV3nNAuhRNN/8PNzABbQ2AJ99wGelorup4
 SBsdyu2trlm4XSxeMulGrtlIV1Rz6zZWAAweHY2d3Xbyxyj+mS4Yadb6yxkKUFiP64sIGGyM
 BaJ5VwLv8YDYBNGiJObharrUazGKoC6S7zYug38NIISMvCdiifalM2RWaJg9z+0yxV9+U3OE
 ZyabdytHR4n5VdPl1KLqxMm+eZznEgWnDqLLbiilkjP+efONRa9FOZeWHPTP79R0U9xiFiMm
 zqpH5DRkEs3vSyXSnS/zLP/2nhWdyVmXs6v9JQMHgNBSyI/cFwc5zbq6epJU6RunrhPl/eO+
 Xe4W0RCz0H4i2GBIgKPAk2Popu2B/6TdFo3Yn4hO0iGwX8mbdr95asTbcJvL7Im6PZi3bh/S
 PxcI5eMBfFGSzLm/TUBbMai8Nw+JUrz3Q/ebTC4ZDUffoJ7Q1Cb8NHTYQaypjIFCTC6tJVir
 uT4hB/bW5cKWy9rEN3SNKC011q0sHVEwLByUkLEL8N9YkLp9IQ2eSX9guVue5MHKAnZxyvc3
 AGTWE9Kqe7Iqo4z0d/ImaHb8Nv5T7ogRhJXRjCJ46y3OC/W+nuY7bVBCOvYLyrAUG7U+bm5Y
 bkHxf/LL/Bazk1BtJBxEug3wPtmtcfvvbJT0i9tAG7PMwawErplL3SLgZtPu6lKyuMLsAe6Q
 BvSqNxTOLHPM8L5Cl8BYgEia73bh/0TnzDT69UzIVn7u3ArrObWDx0KMknekjFZIZt0LJghk
 LUot8Mh4gCijgYnb4SdhSdO+mXQdnENXs3LbH3B7FMHXubz9mx/XA==
IronPort-HdrOrdr: A9a23:AXsRAavYgXVieZKeMjY0Tbgm7skC6oMji2hC6mlwRA09TyXGra
 6TdaUguiMc1gx8ZJhBo7C90KnpewK6yXcT2/hvAV7CZnibhILMFuBfBOTZskTd8kHFh4tgPO
 JbAtJD4b7LfChHZKTBkXGF+r8bqbHtms3Y5pa9vgRQpENRGtxdBm9Ce3em+yZNNW977PQCZf
 6hDp0tnUvfRZ1bVLX3OlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJr3CQKR0BsyWy5Ghe5Kyx
 mLryXJooGY992rwB7V0GHeq7xQhdva09NGQOiBkNIcJDnAghuhIK5hR7qBljYop/zH0idnrP
 D85zMbe+hj4XLYeW+45TPrxgnbyT4rr0TvzFeJ6EGT6fDRdXYfMY5slIhZehzW5w4Lp9dnyp
 9G2Gqfqt5+EQ7AtD6V3amJazha0m6P5VYym+8aiHJSFaEEbqVKkIAZ9ERJVL8dASPB7pw9Gu
 UGNrCc2B9vSyLZU5nlhBgr/DT1NU5DWituA3Jy9PB96gIm30yQlCAjtYsidnRpzuN1d3AL3Z
 WDDk1SrsA6ciYhV9MKOA4we7rENoXze2O5DIvrGyWdKEgmAQOHl3el2sR+2AmVEKZ4u6fa3q
 6xCW9liQ==
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58773277"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RFULj7MRVyJGzd15HojUePQQSPwX6jtMNmS1gv60tZuZBBiQXkzBPtq0ztNGXCVXVaRSNBa/aKM5FIK07rukWR9CoMLAllbvqVuQd1BT9Wdkhj9W8mq2USkotpHQSJSWvWbf278gGtNONzhbmDFo5HoLRhw5GNl4wiLbGA09bkyoyT8sm8B1rMyTgxzn3VfsfVhxzwiGb0ys87aVKC7GtlIBAQ0RR8iafMk5sm9ciPDWuPP/cyGxz/vtwy7T7GatZdIGaESIm3sXC8Nh9Xl9PE1LQkDiOS9k9Wdu99gfdiTVjP+aH/mx0wfY4FeIhqrfJx14ppXBKv2xvC/s+bPX6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/v1JZ3HVnYuxeDPR6w/pprUXGuHXUqzMmPa9m3/Cfl0=;
 b=ICqptspAX7zAQ1pUuLUK9zHu2pJB3Er2WC2CaVwRUQKEOA1e2cdVdcFpS/0cjuHoPPLqozjhIYt4J4nG0D/uNMhhGBnOZJezUeqTzFYDdjoUdNkknSvaCpcL++u7AbdS47IeaTwD2Qpcpb+9/nxWsA/3ad11cVP3X7OEMwKKDlBKntoR2S5IPRNjSgZI/2xcWF8TX+tNJ/nyLsPaN6iMGf1X96R/+clvCPiNxwKbSuTGVYoNaWKaELP1WDTVG7PPP+NkKFM600xuOeN7ZkjII07oca893QpWrRtwcK0CLD9CQlF0I6CQdL1J1t4o9K8eJLDdqAs9PUhJwmp6QHemZw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/v1JZ3HVnYuxeDPR6w/pprUXGuHXUqzMmPa9m3/Cfl0=;
 b=YHMOF8LrAxE9Kgbr9/vpZDdTEIHNhRAuyqO4k11IFuV3ofxiSuJMzCGKmVyySuJwamtZja2iqpxrG7yN4JV0RsJETbeMrAmRz6NWKopRhvJx11/Ck4MS48JRHnig64jz9fQRbP03eDuQVX2DhEaWd0qgOw7q3yYFDARTeF8lR9c=
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v5 07/12] libs/guest: introduce helper set cpu topology in cpu policy
Date: Mon, 29 Nov 2021 16:33:50 +0100
Message-ID: <20211129153355.60338-8-roger.pau@citrix.com>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211129153355.60338-1-roger.pau@citrix.com>
References: <20211129153355.60338-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR2P264CA0096.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:32::36) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9a939fa0-2661-4d32-f541-08d9b34de651
X-MS-TrafficTypeDiagnostic: DM5PR03MB2842:
X-Microsoft-Antispam-PRVS: <DM5PR03MB2842C75A684B16BC93D3E3898F669@DM5PR03MB2842.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:1169;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: qXA/uMZUKZM02CHloLxKIUH3VU5iPgAZkoI4viK+MIIKQuuP27l8iPK1d1b/qvGxgLhcDzuiBYvuut0ze8p+b4hN6UMitcDgYOgNdt6/03Z0sGFHIL0R/cLz6pYlWv+d6/i06g+4UxmL4NYduJVyM2bU23y+IDM+azo6u967/Augk740KLmTnwkC860x74uWIQYeX2dNP8cqAejv/GMkbuHQ4snYdLtWVT4nv2I462VUAMnEb/bwzV98U6YnGFe4Jp0JBBr6iDOst7QasL29QDXoz9IlM6VfB7aOoQZR3DSDLF1TsVLYbt69vTR/Fq5x1nIl55HGY4/TjI3c7EikYxsu3ncsF/roKixHf2KR3mdJoVymvamZh2QIP1qu1W7tJj4OoQSjkFtnt7k/1rhHMi6BN7N+oqcILTGo/9H96L9HvWVaauuVSKtXX1L+qfMGtvcCdlGSCaUCDcJpFObdkn9MQJ6FgqKqsNAN77CW1/7cbAJ/9/axhUaJmDxjjniXXBeZKqAELs4w0sxsrZ3NBCaZBW983dHpya1wqGm5JW0knof0T+m77K2qgCbONgZvmmBRnmTFEVHHOk2l8Y3M0JNIsgxQN6RdRXhZgYXgvFpsOsCnKwo2l509ITrtTmYcV3DUfPfURoseAF2sKkXnAA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(86362001)(54906003)(8936002)(2906002)(66946007)(6486002)(316002)(8676002)(956004)(6916009)(82960400001)(4326008)(6666004)(66476007)(66556008)(186003)(83380400001)(38100700002)(2616005)(26005)(508600001)(1076003)(36756003)(6496006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U1dGOU96Vk5PRjNWbnZyejhYcmpxTTlJNzhhTDZ5UkNyUEhnNzJsTnpIQ09q?=
 =?utf-8?B?KzcreHlTQ0t2U2FhNFRoTms2MzFDaVpIT3IxV2ljNlk3SGFqU2MzRXVDejJa?=
 =?utf-8?B?Rk1KdS9xUk1lUWZXUkM4c0w1dzZVWjZFbkFGTVdLdU1ROEwvMkZXTmJIRW16?=
 =?utf-8?B?VjUxWTY5TjlCaTNUSnFHYTB0aGdlWFBGWHZHT3RScUM2UGh2SzVUV2lvWGVw?=
 =?utf-8?B?UGt3Ty9MRGd0SzlUQVlrclZkV3o5RitvTk03anptemE4ZU9sdVA1SHdOSTIv?=
 =?utf-8?B?UUk5VUdmMFA1bmNpRGZUNkdlQWNVbWZhbE5mdW5xVFRYcDBlUkJ3ajVWekV0?=
 =?utf-8?B?cjlKZFVvUVVWK1FrS0tPdURvQWN4UjRwNVdTdWRzYWtRTndxZkUzUy9oc3Qz?=
 =?utf-8?B?MTRYeGdQK1dDT2F5aUhWdFpiV1k0RUZ5aWJld21EbFVkVVdhdng1T1dSaWhM?=
 =?utf-8?B?WkFOR2l2ZGVZNFl3VTdQeFBiU2dhTlBZWXg4NVRJY3FYcnRyRGwwUnVDZ1pZ?=
 =?utf-8?B?aFNtdnVQWEM5YnZ0bFMzakprSlFYd3VwVUR0YTIvdGVaTVlvbVZmVGJxZXB0?=
 =?utf-8?B?SmY4eE5tdk8vditBSWUzczQ5QndZTVR0Y21NRFRzQm9sbWdueE16MWlsaXZO?=
 =?utf-8?B?OVRGV1drL3pPRGNOeE9UajlFMzdwR0s1SGlCSWVwcXBKdnp6U0ppclI4czFh?=
 =?utf-8?B?bnBteUNKUDQvaGxDZ3RwQmg1b3l1NVQwTExTU21icGJja0lQNHB5eEZZSE9n?=
 =?utf-8?B?SGRNUm1HM2Q3REZRRWt1bjd3MTcrMXVFYlR5NDlyK1Fxcms2bnhaYlh2VTBl?=
 =?utf-8?B?U1dKMnpNR2pXRUVMQ1gzdDdab25qb1l4WSt2TmNwYWlFOGRxaU9lTzhVRWE1?=
 =?utf-8?B?SlBjRTdURG9ZMFhGOTRxSE5YZW9FUkZNQnNUb2gxU05qMDB1WUJqMldmVkNJ?=
 =?utf-8?B?VE1DdURnOGhkaGNoRm5wMmVNUTYzYUNUajQ3V2xtZW9jeEFhODUycmlJVlNi?=
 =?utf-8?B?MnBvLzZXclVEdGJ0VURXQnVWWlYrVkN6SW5DVFF6WS96ZXk2TTRQRnRkR0I1?=
 =?utf-8?B?OHEwWloyS01FNm94RWtzLzdlUEMyRHMvYURUeDltNmlEYm5sd1R3OFFQSzV1?=
 =?utf-8?B?bE9mMXE0OTdrb2h0Z3RPVzl4WGI0bGNTTnJXSHdNQWNPaVIxK1FaWXNDQXRu?=
 =?utf-8?B?M1Rzd2NQV1gxV3JsZW9PZG5NTFcxUHkwcXlEREVtRWtoRGMyZXhaL3NLTW1o?=
 =?utf-8?B?SUpSZCtRbndFOEQzelBZZkwvbGRibmFaMFl1RDRURTBvbVdRVEN0czlLTHph?=
 =?utf-8?B?QUZ6NHF0NkZ1K2IrR2xpMmtlUEdwZWQzdnBIVnY0VVFEanZEQkR4QkFCYmlO?=
 =?utf-8?B?djVrWksxRzRhNC9mS3hNWHNVb3F6WVBCcExUaERIYmMrc3VWYmhzYXZwQnhM?=
 =?utf-8?B?aCttdUlUZDVNMmZKMWluNWd4Ylp1THJNcVdOcExGQjBwQkJFaUhoSmdVUnFq?=
 =?utf-8?B?UG1xQkhkbmNpcnF1czZtQVRKdG5ac2tKbC9aYThZZ2FGYks4L1BHSUpuNWVZ?=
 =?utf-8?B?aWc5cFM2bnI1MUN5UWFIeE81OXNScTJpTDRxS1JFazJnZndSWUJaaGxETnd6?=
 =?utf-8?B?NlA4dVMyQnpTR0ZiUnRuaTM2K3VPUmo1eUpVVHUvOEVURTZNaUhxMW83QjA3?=
 =?utf-8?B?WjA0QXpkL1FQNzYwRU9UQXNIeGZLVWgrV0U3cTRwNnlLTXhkTjVERFIzQ0w3?=
 =?utf-8?B?RFBzYnVBcHExc1o2MWZWZDdvVENZU1lFVmRRNmZlbVBON3V3MEV6N2NXamtV?=
 =?utf-8?B?YzhjbVdZTWNzSmpoVzlVYlhvbGkxenZYeElZa09MMnR4NVBIQlNVeFphUytx?=
 =?utf-8?B?b1NsQkJOTmhVcnorUEFpMkE5WW1MMFZnUFRuWDVMd0pMb0xYTmRBeU5heXha?=
 =?utf-8?B?c2EvTm1ha2R4N1FSek9mUVRYbFNKOFhaMS9XcHpTSm9vNUM2d0cvZWQwWUw1?=
 =?utf-8?B?TElOSFVaRUZuYXVHalVaWmZIUFVZV0FrNUlVTWhmQnZtWUFwMzh5MXVDUEls?=
 =?utf-8?B?VlpnZ2wvaisydWROSlNvODU5OTFiQXYwTmZJSTQ1dDlYZExWOHV2V3pVYWJl?=
 =?utf-8?B?Qm5BS05OWGdmSXh1NXlTeE5UZFR3OG5TSnZ1c09IQzF6YjcrK3NldVdWNHNN?=
 =?utf-8?Q?3wl2bgh+8WrNzuzojlqIjj4=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a939fa0-2661-4d32-f541-08d9b34de651
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 15:35:40.8556
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xe4RWt09A7kGhey/HlkTk97Fhvns2misQnhQDMiOe0le3MCdc5QGSB/HqlbCKmXUwABwk0VePndg6Xvvs82CaA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2842
X-OriginatorOrg: citrix.com

This logic is pulled out from xc_cpuid_apply_policy and placed into a
separate helper. Note the legacy part of the introduced function, as
long term Xen will require a proper topology setter function capable
of expressing a more diverse set of topologies.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 - s/xc_cpu_policy_topology/xc_cpu_policy_legacy_topology/
---
 tools/include/xenguest.h        |   4 +
 tools/libs/guest/xg_cpuid_x86.c | 186 +++++++++++++++++---------------
 2 files changed, 105 insertions(+), 85 deletions(-)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index 281454dc60..bea02cb542 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -821,6 +821,10 @@ bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
 int xc_cpu_policy_make_compat_4_12(xc_interface *xch, xc_cpu_policy_t *policy,
                                    bool hvm);
 
+/* Setup the legacy policy topology. */
+int xc_cpu_policy_legacy_topology(xc_interface *xch, xc_cpu_policy_t *policy,
+                                  bool hvm);
+
 int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps);
 int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,
                           uint32_t *nr_features, uint32_t *featureset);
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index bcbf9576c4..eafc1ec7c1 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -429,13 +429,11 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
 {
     int rc;
     xc_dominfo_t di;
-    unsigned int i, nr_leaves, nr_msrs;
+    unsigned int nr_leaves, nr_msrs;
     xen_cpuid_leaf_t *leaves = NULL;
     struct cpuid_policy *p = NULL;
     struct xc_cpu_policy policy = { };
     uint32_t err_leaf = -1, err_subleaf = -1, err_msr = -1;
-    uint32_t host_featureset[FEATURESET_NR_ENTRIES] = {};
-    uint32_t len = ARRAY_SIZE(host_featureset);
 
     if ( xc_domain_getinfo(xch, domid, 1, &di) != 1 ||
          di.domid != domid )
@@ -458,22 +456,6 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
          (p = calloc(1, sizeof(*p))) == NULL )
         goto out;
 
-    /* Get the host policy. */
-    rc = xc_get_cpu_featureset(xch, XEN_SYSCTL_cpu_featureset_host,
-                               &len, host_featureset);
-    if ( rc )
-    {
-        /* Tolerate "buffer too small", as we've got the bits we need. */
-        if ( errno == ENOBUFS )
-            rc = 0;
-        else
-        {
-            PERROR("Failed to obtain host featureset");
-            rc = -errno;
-            goto out;
-        }
-    }
-
     /* Get the domain's default policy. */
     nr_msrs = 0;
     rc = get_system_cpu_policy(xch, di.hvm ? XEN_SYSCTL_cpu_policy_hvm_default
@@ -557,72 +539,11 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
         }
     }
 
-    if ( !di.hvm )
-    {
-        /*
-         * On hardware without CPUID Faulting, PV guests see real topology.
-         * As a consequence, they also need to see the host htt/cmp fields.
-         */
-        p->basic.htt       = test_bit(X86_FEATURE_HTT, host_featureset);
-        p->extd.cmp_legacy = test_bit(X86_FEATURE_CMP_LEGACY, host_featureset);
-    }
-    else
-    {
-        /*
-         * Topology for HVM guests is entirely controlled by Xen.  For now, we
-         * hardcode APIC_ID = vcpu_id * 2 to give the illusion of no SMT.
-         */
-        p->basic.htt = true;
-        p->extd.cmp_legacy = false;
-
-        /*
-         * Leaf 1 EBX[23:16] is Maximum Logical Processors Per Package.
-         * Update to reflect vLAPIC_ID = vCPU_ID * 2, but make sure to avoid
-         * overflow.
-         */
-        if ( !p->basic.lppp )
-            p->basic.lppp = 2;
-        else if ( !(p->basic.lppp & 0x80) )
-            p->basic.lppp *= 2;
-
-        switch ( p->x86_vendor )
-        {
-        case X86_VENDOR_INTEL:
-            for ( i = 0; (p->cache.subleaf[i].type &&
-                          i < ARRAY_SIZE(p->cache.raw)); ++i )
-            {
-                p->cache.subleaf[i].cores_per_package =
-                    (p->cache.subleaf[i].cores_per_package << 1) | 1;
-                p->cache.subleaf[i].threads_per_cache = 0;
-            }
-            break;
-
-        case X86_VENDOR_AMD:
-        case X86_VENDOR_HYGON:
-            /*
-             * Leaf 0x80000008 ECX[15:12] is ApicIdCoreSize.
-             * Leaf 0x80000008 ECX[7:0] is NumberOfCores (minus one).
-             * Update to reflect vLAPIC_ID = vCPU_ID * 2.  But avoid
-             * - overflow,
-             * - going out of sync with leaf 1 EBX[23:16],
-             * - incrementing ApicIdCoreSize when it's zero (which changes the
-             *   meaning of bits 7:0).
-             *
-             * UPDATE: I addition to avoiding overflow, some
-             * proprietary operating systems have trouble with
-             * apic_id_size values greater than 7.  Limit the value to
-             * 7 for now.
-             */
-            if ( p->extd.nc < 0x7f )
-            {
-                if ( p->extd.apic_id_size != 0 && p->extd.apic_id_size < 0x7 )
-                    p->extd.apic_id_size++;
-
-                p->extd.nc = (p->extd.nc << 1) | 1;
-            }
-            break;
-        }
-    }
+    policy.cpuid = *p;
+    rc = xc_cpu_policy_legacy_topology(xch, &policy, di.hvm);
+    if ( rc )
+        goto out;
+    *p = policy.cpuid;
 
     rc = x86_cpuid_copy_to_buffer(p, leaves, &nr_leaves);
     if ( rc )
@@ -944,3 +865,98 @@ int xc_cpu_policy_make_compat_4_12(xc_interface *xch, xc_cpu_policy_t *policy,
     xc_cpu_policy_destroy(host);
     return rc;
 }
+
+int xc_cpu_policy_legacy_topology(xc_interface *xch, xc_cpu_policy_t *policy,
+                                  bool hvm)
+{
+    if ( !hvm )
+    {
+        xc_cpu_policy_t *host;
+        int rc;
+
+        host = xc_cpu_policy_init();
+        if ( !host )
+        {
+            errno = ENOMEM;
+            return -1;
+        }
+
+        rc = xc_cpu_policy_get_system(xch, XEN_SYSCTL_cpu_policy_host, host);
+        if ( rc )
+        {
+            ERROR("Failed to get host policy");
+            xc_cpu_policy_destroy(host);
+            return rc;
+        }
+
+
+        /*
+         * On hardware without CPUID Faulting, PV guests see real topology.
+         * As a consequence, they also need to see the host htt/cmp fields.
+         */
+        policy->cpuid.basic.htt = host->cpuid.basic.htt;
+        policy->cpuid.extd.cmp_legacy = host->cpuid.extd.cmp_legacy;
+    }
+    else
+    {
+        unsigned int i;
+
+        /*
+         * Topology for HVM guests is entirely controlled by Xen.  For now, we
+         * hardcode APIC_ID = vcpu_id * 2 to give the illusion of no SMT.
+         */
+        policy->cpuid.basic.htt = true;
+        policy->cpuid.extd.cmp_legacy = false;
+
+        /*
+         * Leaf 1 EBX[23:16] is Maximum Logical Processors Per Package.
+         * Update to reflect vLAPIC_ID = vCPU_ID * 2, but make sure to avoid
+         * overflow.
+         */
+        if ( !policy->cpuid.basic.lppp )
+            policy->cpuid.basic.lppp = 2;
+        else if ( !(policy->cpuid.basic.lppp & 0x80) )
+            policy->cpuid.basic.lppp *= 2;
+
+        switch ( policy->cpuid.x86_vendor )
+        {
+        case X86_VENDOR_INTEL:
+            for ( i = 0; (policy->cpuid.cache.subleaf[i].type &&
+                          i < ARRAY_SIZE(policy->cpuid.cache.raw)); ++i )
+            {
+                policy->cpuid.cache.subleaf[i].cores_per_package =
+                  (policy->cpuid.cache.subleaf[i].cores_per_package << 1) | 1;
+                policy->cpuid.cache.subleaf[i].threads_per_cache = 0;
+            }
+            break;
+
+        case X86_VENDOR_AMD:
+        case X86_VENDOR_HYGON:
+            /*
+             * Leaf 0x80000008 ECX[15:12] is ApicIdCoreSize.
+             * Leaf 0x80000008 ECX[7:0] is NumberOfCores (minus one).
+             * Update to reflect vLAPIC_ID = vCPU_ID * 2.  But avoid
+             * - overflow,
+             * - going out of sync with leaf 1 EBX[23:16],
+             * - incrementing ApicIdCoreSize when it's zero (which changes the
+             *   meaning of bits 7:0).
+             *
+             * UPDATE: I addition to avoiding overflow, some
+             * proprietary operating systems have trouble with
+             * apic_id_size values greater than 7.  Limit the value to
+             * 7 for now.
+             */
+            if ( policy->cpuid.extd.nc < 0x7f )
+            {
+                if ( policy->cpuid.extd.apic_id_size != 0 &&
+                     policy->cpuid.extd.apic_id_size < 0x7 )
+                    policy->cpuid.extd.apic_id_size++;
+
+                policy->cpuid.extd.nc = (policy->cpuid.extd.nc << 1) | 1;
+            }
+            break;
+        }
+    }
+
+    return 0;
+}
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 15:58:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 15:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234725.407340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrj2l-0005bO-GE; Mon, 29 Nov 2021 15:58:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234725.407340; Mon, 29 Nov 2021 15:58:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrj2l-0005bF-Cs; Mon, 29 Nov 2021 15:58:15 +0000
Received: by outflank-mailman (input) for mailman id 234725;
 Mon, 29 Nov 2021 15:58:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fA4G=QQ=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1mrj2k-0005XU-1X
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 15:58:14 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28453374-512d-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 16:58:13 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id f18so45937492lfv.6
 for <xen-devel@lists.xenproject.org>; Mon, 29 Nov 2021 07:58:13 -0800 (PST)
Received: from [192.168.1.7] ([212.22.223.21])
 by smtp.gmail.com with ESMTPSA id u7sm1385051lfs.144.2021.11.29.07.58.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Nov 2021 07:58:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28453374-512d-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=subject:from:to:cc:references:message-id:date:user-agent
         :mime-version:in-reply-to:content-transfer-encoding:content-language;
        bh=C8O58H7FMIFDIE4tI39SVeIxbVB3KQGfg4tkHZFEcRQ=;
        b=BYCB+0UGk/nVKYufQFG8fIgVfRerqaAwoHs8S8LN2HPwQ+ZUmZPx6t4PfhamU3OfEL
         3aqTmMsaISqGM9wRM6usguRbV4HdNZzvY/R+K8FbXdY83zFJcb8gTPrY9E52VRS13Yq/
         rQP47MqVY2sNPjWY3CRBV4RRXS8ZmiAZQyeWHZUrfPWUtWj8cSrVvVgGGYPx1Vu6Lfd6
         rXJXE9Y+it2tflk0rU6n5myotsLJhHe3B8bOSL0MsRGbjb3foiJGxU00w1nvXIPCljjI
         BFeC0lXHsM+Se737kJkSdt8V0ka7xTyF8L4D/jM98fi1Gfha0XGn5D3kFeWVzevVEhTl
         CR7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:subject:from:to:cc:references:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=C8O58H7FMIFDIE4tI39SVeIxbVB3KQGfg4tkHZFEcRQ=;
        b=sGc/LuOpzLGQu8OcTqhG6bvKYGQVTmTL5CdxlXrr9a464aJQwnZw3H7OfqC7gPIO7U
         KICHXQMPrvmop3KjOJamTiynF2nbeaHsCa8F1WfN5iR2OBwFnsxJkYyYJ3vq9EBXEvbC
         QyfJDflxBVYqH27faOIkjtyrBpmYD4JUvtWQ55CZwKLKkWa03g6zRYUPAC5rpx4yqH8N
         /kjRsryX/wI3kPO9qjXXGPcHgZib1z4c+sg75x51n9Sb3KxG/mhGWFZi9vmD+tceZzN9
         QOidzpkRRI3I/53CMyJyV8XpnwFjzEfhQAMRCiuWPw144VnIbXZzGQSELFV5Wu6CgRNl
         nZeQ==
X-Gm-Message-State: AOAM533tsJTASsKHd120A6YmM+wu2MtXpZSVDOCtHnclluL2Dkdj4h9w
	wlhokTyOy2pZFleu0OVJr+s=
X-Google-Smtp-Source: ABdhPJyUVGG9Fwx/JJBZwqfiu0LX1DoL3QTq8fJMkXQ9fOxeDr/5MIdwglVwoHrt9TNZbl5iodrs7Q==
X-Received: by 2002:a05:6512:b84:: with SMTP id b4mr49288259lfv.472.1638201492921;
        Mon, 29 Nov 2021 07:58:12 -0800 (PST)
Subject: Re: [RFC PATCH V3] xen/gnttab: Store frame GFN in struct page_info on
 Arm
From: Oleksandr <olekstysh@gmail.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <1632425551-18910-1-git-send-email-olekstysh@gmail.com>
 <863c9a06-f0af-eac1-fb04-e059e4ce0a09@xen.org>
 <89f27a30-187c-6223-9dbb-1e3f52213868@gmail.com>
Message-ID: <15a507c7-17e3-6e48-152d-32f54b362889@gmail.com>
Date: Mon, 29 Nov 2021 17:58:11 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <89f27a30-187c-6223-9dbb-1e3f52213868@gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


Hi Julien


[snip]


>
>>>
>>> ! Please note, there is still unresolved locking question here for 
>>> which
>>> I failed to find a suitable solution. So, it is still an RFC !
>>>
>>> According to the internal conversation:
>>> Now the GFN field in the struct page_info is accessed from
>>> gnttab_set_frame_gfn() in the grant table code and from 
>>> page_set_frame_gfn()
>>> in the P2M code (the former uses the latter).
>>>
>>> We need to prevent the concurrent access to this field. But, we 
>>> cannot grab
>>> the grant lock from the P2M code because we will introduce a lock 
>>> inversion.
>>> The page_set_frame_gfn() will be called from the P2M code with the 
>>> p2m lock held
>>> and then acquire the grant table lock. The gnttab_map_frame() will 
>>> do the inverse.
>>
>> This is a tricky one. I think, we will:
>>
>>   1) Need to use the P2M lock to protect the access to the GFN in the 
>> struct page_info *.
>>   2) Defer the call to page_set_frame_gfn() from gnttab_map_frame() 
>> to xenmem_add_to_physmap_one()
>>   3) In xenmem_add_to_physmap_one() hold the P2M lock while checking 
>> the page was not already mapped (e.g. page_get_frame_gfn() == 
>> INVALID_GFN) and do the mapping. Call page_set_frame_gfn() on success.
>>
>> This would still allow the guest to shot itself in the foot (e.g. 
>> potentially removing the wrong mapping) if it tries concurrent 
>> hypercall but I believe we would not introduce issue like XSA-380.
>>
>> At the end this would look quite similar to how x86 deal with the M2P 
>> update.
>
> Thank you for the suggestion, I need to analyze the code to better 
> understand your idea and technical possibility to implement it, I will 
> come up with questions if any.

I experimented a bit... Could you please clarify, is the code snippet 
below is close to what you meant?


diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index b594db4..dba9258 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -1488,8 +1488,27 @@ int xenmem_add_to_physmap_one(
          return -ENOSYS;
      }

-    /* Map at new location. */
-    rc = guest_physmap_add_entry(d, gfn, mfn, 0, t);
+    if ( space != XENMAPSPACE_grant_table )
+        /* Map at new location. */
+        rc = guest_physmap_add_entry(d, gfn, mfn, 0, t);
+    else
+    {
+#ifdef CONFIG_GRANT_TABLE
+        struct p2m_domain *p2m = p2m_get_hostp2m(d);
+
+        p2m_write_lock(p2m);
+        if ( gfn_eq(page_get_frame_gfn(page), INVALID_GFN) )
+        {
+            rc = p2m_set_entry(p2m, gfn, 1, mfn, t, p2m->default_access);
+            if ( !rc )
+                page_set_frame_gfn(page, gfn);
+        }
+        p2m_write_unlock(p2m);
+#else
+        ASSERT_UNREACHABLE();
+        rc = -EINVAL;
+#endif
+    }

      /*
       * For XENMAPSPACE_gmfn_foreign if we failed to add the mapping, 
we need
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 59604b1..64e9e77 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -4167,10 +4167,8 @@ int gnttab_map_frame(struct domain *d, unsigned 
long idx, gfn_t gfn, mfn_t *mfn)
           * Make sure gnttab_unpopulate_status_frames() won't 
(successfully)
           * free the page until our caller has completed its operation.
           */
-        if ( get_page(mfn_to_page(*mfn), d) )
-            gnttab_set_frame_gfn(gt, status, idx, gfn);
-        else
-            rc = -EBUSY;
+        if ( !get_page(mfn_to_page(*mfn), d) )
+           rc = -EBUSY;
      }

      grant_write_unlock(gt);
(END)

If yes *and* I correctly understand the code, then looks like 
gnttab_set_frame_gfn becomes useless on Arm and can be dropped globally 
(x86's variant is already dummy).


[snip]

-- 
Regards,

Oleksandr Tyshchenko



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 16:17:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 16:17:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234743.407363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrjLJ-00008w-8k; Mon, 29 Nov 2021 16:17:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234743.407363; Mon, 29 Nov 2021 16:17:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrjLJ-00008p-48; Mon, 29 Nov 2021 16:17:25 +0000
Received: by outflank-mailman (input) for mailman id 234743;
 Mon, 29 Nov 2021 16:17:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=LLD+=QQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrjLH-00008g-VT
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 16:17:24 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d4e6c45d-512f-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 17:17:22 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2176.outbound.protection.outlook.com [104.47.17.176]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-17-5qOZQujlPSSYcCMLULEFQA-1; Mon, 29 Nov 2021 17:17:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6176.eurprd04.prod.outlook.com (2603:10a6:803:f6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 16:17:18 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021
 16:17:18 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9P194CA0001.EURP194.PROD.OUTLOOK.COM (2603:10a6:20b:46d::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Mon, 29 Nov 2021 16:17:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4e6c45d-512f-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638202641;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tUiodw+6kINvVCJSlFIzqmgVWlS9vittYEmMsi6tC78=;
	b=SVd9BLbysxSlZqCiymwMGUfyXYlHHOCtY4aXnrEp4dTeWBJIN/wFHEHFGP3s7nsDVhJINi
	TLXegEvWvFwkp5UA1tqyK46ZHNo/zsNB2Vbw7kyXO8wWYQ8OGECqzlUcXlWv2CzrotCa/M
	F01RT8nuZB3HuPmhybjiMz7mcKoP/DM=
X-MC-Unique: 5qOZQujlPSSYcCMLULEFQA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Iew6drm5w5x86TzgZmNl7ik45KjwTZC+/6434Fj9P7BxsZArUyNeb5AwOYOhB9ZqBYwD67mx0KM30W7yGY7kR8f1PzJKZqFdgmvMi6CUm/IRmq/7O7wAW+kfiH4f/hpWcgXSLedlBBpxhxgYRYl5YRsVgZBxIiHKnzc2l/lt92Of8SC9TrOCl/dt03ovc015Ew/9U+yFzA7bOmsMt6LvUrFcA73LkEgPQRTRtnCiJX/NXAJXnjjpaNstciIUXie0r5aWqSua2x42Uyo0THA9QskmaOPzFbbUTeAx5iZ6JcmYrzi/3EjYmYFsW7yohNW3R4sPlGjtRDIH5oQwSRjHWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=D5DO0ua4Csy7EOR/h2PhqnA0ZieH7W206sA6OBpBu/g=;
 b=an2cjrgxm5dFZQPkixCzsIJE6qTmH0aDgmLdOmDxIO9qhWbztUYG70U1pthKcJTgAosgYtg2O1OjXvgjhmRLAxhhgKhEZpK6+AzV7QcewiwA0IEpy23yAHyqx+ScFKo0YdxJWPe5aa57Jjqn4BvSVqnw/LHyYVv5rnS6CDZW326Rr8wFclwnhUHgNrwwC85oFSNpplRFvvYrudYINMDLLADWb8cF8kEPQv+ebv5nmv74naQmjgWJx8mmqE309x1uyYBwTyjxKFRgY1QKwGwKooufqekGf5y81hJ8Nyw6mGWQiH7AnvlNQmGtvPRxYb08AxnO0P6FV1KFmXcDd0UsGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a290daa2-f20d-2d94-9bc8-a657773cb802@suse.com>
Date: Mon, 29 Nov 2021 17:17:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 00/65] x86: Support for CET Indirect Branch Tracking
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=c3=b3recki?=
 <marmarek@invisiblethingslab.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211126123446.32324-1-andrew.cooper3@citrix.com>
 <178aa1cd-b510-7e3a-2074-a2ae261d4975@suse.com>
 <c05512bf-ceff-8402-07ec-17e44163d45f@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <c05512bf-ceff-8402-07ec-17e44163d45f@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9P194CA0001.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:20b:46d::9) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ded2e325-8a30-4bc9-f683-08d9b353b69e
X-MS-TrafficTypeDiagnostic: VI1PR04MB6176:
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB6176589AC4E5171EC0F0BC78B3669@VI1PR04MB6176.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	4HgCrbQZIQH81oeRj9cuncI1QXKPfMhWYG0b5ma4CNG9WbJEHQG/2m+Chq/UuD+wyEZGE7bLOUz3emlo0mQIHVK99UdcaWdJqLogrASNX2MDmevJ5jc5pGwXHlLZ+BUXhICKjJS4qMA8vwHaOUKSst1fK9j9/6y39VuBIzu2HsZlCILd2d9uuAF+r83zZhuR8RTutf30TTi8lXhcPa0JQ0h76F31IITPNFXrlHPXc1JjC6Z+IfVIJayuqlBUuf9ZQzACHSt6Pp+uM8RwFusmmy6ttp+TpVC+m6arKvsK3jVHikgOa7a3cXpihlgLDxS2LSNIRv3OYg8T9qHMsv6NtP93vRIPaIUvDdebe4tMuAE338rE8WOMjCtDjBxFnVNMA+1xgCDSQb4MCghQR7Iem5ZsDrBugGzuviKFF3+BK2PxsxBeagHLeho5FigJTJCYqYXCie6TzxYwWcNC1Wm68NmRKXioa8HymbSVw6gtxC/zbSQS7UMM5bQ2z03GcUcqJkSipV5zq4QKCMoAFLXWNCHf6QKdCyWw7WjcsQgM0jIGdH3sF+VlA8+y3Q+Nh+pW791hzx4tfWTxO9FvguNMxPAe2ekuwamsp8rWDw7tc9eRaVAXauWOiLq2ASX9h7+n0DVLQ9EOLWbPxn8AAxSJUZe6+FkUtQiFdW9VoWoCfFJj3eXe2UI+HRdTylW0RNKhZVw6byH3I8Qn3y+fRBp+jMSMFgu1Xm4B0s9+vnxbSIQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66476007)(66556008)(956004)(66946007)(2906002)(8936002)(2616005)(31686004)(316002)(508600001)(53546011)(5660300002)(26005)(31696002)(86362001)(36756003)(8676002)(110136005)(186003)(54906003)(16576012)(4326008)(6486002)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?0J8FIxYUxFZpa2xkokS49xN+2o1r7INKcl7H2M2OlgZUepxkfUD/yqPFUuFw?=
 =?us-ascii?Q?aheYnYMWZmFcR9rJHGSAst+7Kc9gpnI6PJOopsYNbRx65hmM1meZC8WaHhF/?=
 =?us-ascii?Q?fAP0QHZ0AtcfD40b+TcLjmrBww5EcKJsQqR6IJaQQ/MJncpf5q/5kmdkDrbH?=
 =?us-ascii?Q?pzVQkTaU9ND1GDiLgA85Hqp8O78eR7M8n6XtdLmIMBsdS+Qq2j8Y+zpptL+t?=
 =?us-ascii?Q?kHA7GrFxZoEv42Z2I9UzX86Qgrvh2MINE/2ApSxHB6k8HkK6RKbLGfAY6zI6?=
 =?us-ascii?Q?G9C/uIEcE9DVL/lzJt2tc3YGyQMBu/tqesDZGBSE72ULkWhUewUkPqI6RYuv?=
 =?us-ascii?Q?r5n02OEMejw39Yn8vqco4Y0HDl/zeiXTbnvDQqiN8y0Y2rU+h7IYZSsNCh8d?=
 =?us-ascii?Q?onXlc7UzBSMwzR9yc6bAZP3Xi4uRpcuUEVMZ15sdaEEGwcC5oKXy/WHWQQzC?=
 =?us-ascii?Q?4r+NnFYMgCmPdDMMEgGBrIaVqZjxPqizqVmCJqCHdmy0fIUiKeXymX7JxHU/?=
 =?us-ascii?Q?GFLgrtceylj9ipIY1oW0TEaMJbWG2TNYvc0YHUKKYDbpbnLu/6mPq4wsbOfQ?=
 =?us-ascii?Q?N56cCuhFYT1wPILatd+4fX+GK2mwRMeL57Ha/ZYqhoc94Cma6vu/k7mVWL0c?=
 =?us-ascii?Q?zRS+esK+ZESQvGRylH8rUhV6AuH/z10fpN+ck1HNDz7TveMiHqBwZV0lgtvL?=
 =?us-ascii?Q?JZ7Y/R3H6RJTf9lZ7fC+0V+ggccndSBCHjOjQgujELbolSuzcRVj4VZHrWkt?=
 =?us-ascii?Q?MPuzFZ+NBdC98Oe8xF2e/gCCyoyx7xemqS5a6shmdzLKvuy9zmYqsNcNntot?=
 =?us-ascii?Q?NG9huzfDohz25BKEvkS2b8fd1wpcwonf6J7SdHGRYCDy+PVRpuJ7mnuvbUFn?=
 =?us-ascii?Q?i9AmhPdpeaZLXfgXx4el42ttjPlPCdfth03VIz2HoAXwkLkPlvn9e4mJ93Cy?=
 =?us-ascii?Q?4Ef7FIpl/n2N6qYgJ8cYfsjkUPkEflVgNC3OULKVGVIrWq4NYT2n372zbOPU?=
 =?us-ascii?Q?vmYtMAGRQN8vJcD544+tTJyGLpf29WXTfCTqU+g048zK7tvD+F1ubdRR1fn6?=
 =?us-ascii?Q?TZX1baYnePXmA70z1q1LzjZQj+NS21tnsmJwhgpJRL1XqDHvoT4vJWIif2/k?=
 =?us-ascii?Q?CgPUw34LFyfHaWcSRGFPd2eWloZefDewokdU+WycD7yzf1VmI1GU8wEqoFKP?=
 =?us-ascii?Q?xhGUGxZ3y52J53q4tayzY+wIK1ei9t0hpLGUo4pE/X+YJkYHkPQOG5PKxUxG?=
 =?us-ascii?Q?gXfciQ4kXnBSm6fhPZmf3HoigcmidzBrdQ/iQzMWybwhAe+obdgplzwLEnY6?=
 =?us-ascii?Q?GYlvXjVAsiVOrvK4RCv9vMshtMuk5j4lZM5Vx0hnBAk8OjRD4xR0gb0k5LuM?=
 =?us-ascii?Q?/iz+BgkFEH5LR85hI4HtJznZLuemW96CovU2rfq5weZ7qm3Ow5zLdY3GA9Ez?=
 =?us-ascii?Q?/VoP4cwD35YBvM55j5Eseigap3lBsCMg4bddjeCI6dUoeiDfdlghlaKnXF7Z?=
 =?us-ascii?Q?vzOI8YnbWcC0MdOsfg58eCyPnRRSK/wOl/ZoDMmNHgHZ3MVfhmo+IhpkyTw8?=
 =?us-ascii?Q?KbZ+aKzqZQDRTlcPitZMPRg/RQzHFPupaBI6fDNXW9gF3uhnoyibOLESEd3f?=
 =?us-ascii?Q?rPtU7TjvySfjWBNFOX4EgK4=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ded2e325-8a30-4bc9-f683-08d9b353b69e
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 16:17:17.9193
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hec1S8g2p/XXaOEtWHQaAvs9an/oaEhwPOhwGM1uK8frL5iHB8mZXtiGNEcpR7HoYMwXVf7hBxoM3Z2hz2jWBg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6176

On 29.11.2021 16:09, Andrew Cooper wrote:
> On 29/11/2021 14:44, Jan Beulich wrote:
>> One question though: With the large number of __init functions gaining
>> cf_check, wouldn't it be possible to turn on CET-IBT only when we're
>> done using .init.text?
>=20
> 233 to be precise.
>=20
> GCC can't distinguish init from non-init functions as far as the
> improved typechecking (patch 56) goes, so omitting __init would cause
> compilation issues.

Oh, right. Should have been obvious to me, but wasn't.

Jan

> Furthermore, CET-IBT is only one Control Flow Integrity scheme
> attempting to use a nominally arch-neutral interface.=C2=A0 There are oth=
ers
> (PaX RAP, and Intel's FineIBT) which have software components to them,
> and for those, the function pointer callers and callees need to have all
> appropriate ABI modifications.
>=20
> I'm pretty certain that if we skipped annotation of the __init functions
> for now, we'd have to add them in due course anyway.
>=20
> We could defer enabling CET-IBT until late on boot, but enabling it
> early gets us better coverage of issues until the first software scheme
> turns up.
>=20
> ~Andrew
>=20



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 16:28:44 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 16:28:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234751.407374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrjW7-0001k5-Dy; Mon, 29 Nov 2021 16:28:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234751.407374; Mon, 29 Nov 2021 16:28:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrjW7-0001jy-AX; Mon, 29 Nov 2021 16:28:35 +0000
Received: by outflank-mailman (input) for mailman id 234751;
 Mon, 29 Nov 2021 16:28:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hMvs=QQ=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1mrjW6-0001js-3I
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 16:28:34 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63461d97-5131-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 17:28:32 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPS id 1ATGS5If007059
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Mon, 29 Nov 2021 11:28:11 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.16.1/8.15.2/Submit) id 1ATGS5OF007058;
 Mon, 29 Nov 2021 08:28:05 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63461d97-5131-11ec-b941-1df2895da90e
Date: Mon, 29 Nov 2021 08:28:05 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Julien Grall <julien@xen.org>
Cc: Jan Beulich <jbeulich@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Henry Wang <Henry.Wang@arm.com>
Subject: Re: ACPI/UEFI support for Xen/ARM status?
Message-ID: <YaT/lVRDTn+fsORz@mattapan.m5p.com>
References: <YY3tSAFTCR4r2FaI@mattapan.m5p.com>
 <AM9PR08MB62428F41C4F998AD676C027C92959@AM9PR08MB6242.eurprd08.prod.outlook.com>
 <YY6L5JQPn0s3c6Jp@mattapan.m5p.com>
 <1d3561ef-548a-ea13-d362-0f95d7dba33b@xen.org>
 <64e9208d-ecda-2e62-e10f-81750c0279fb@suse.com>
 <78aa1ec7-3d47-716d-c9d6-b74d66486e9e@xen.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <78aa1ec7-3d47-716d-c9d6-b74d66486e9e@xen.org>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=3.4.5
X-Spam-Checker-Version: SpamAssassin 3.4.5 (2021-03-20) on mattapan.m5p.com

On Mon, Nov 15, 2021 at 07:09:45PM +0000, Julien Grall wrote:
> On 15/11/2021 10:13, Jan Beulich wrote:
> > On 12.11.2021 17:02, Julien Grall wrote:
> >> On 12/11/2021 15:44, Elliott Mitchell wrote:
> >>>
> >>> Julien Grall and Stefano Stabellini had been proposing doing ACPI table
> >>> parsing in a stub domain, but I'm unaware of the status.  Not finding
> >>> much suggests it hasn't gone very far yet.
> >>
> >> This was a very early proposal in case we needed to parse the DSDT in
> >> Xen. This hasn't been needed so far, hence why this is not implemented
> >> and no-one worked on it.
> >>
> >> I am not very familiar how the framebuffer is detected in ACPI. Can you
> >> provide more details on what exactly you want to parse?
> > 
> > I don't think there's any ACPI support involved there. Instead UEFI data
> > needs propagating to Dom0, as that can't access EFI boot services itself.
> > At least this is all that's needed on the x86 side (and all the needed
> > code is there, just presumably not [fully] wired up on Arm).
> 
> Thanks for the feedback. At the moment, we don't enable EFI runtime 
> services nor propagate it to Dom0. So this needs to be wired up.
> 
> However, for Elliott's case, I am not sure this is going to sufficient. 
> The Raspberry PI has some devices that can only DMA into the first 1GB 
> of the RAM (the GPU seems to be one). So we need to make sure Xen is 
> allocating enough memory for Dom0 below that limit.
> 
> Do you have similar problem on x86? If so, how do you deal with it?

Is it just me or has anyone else commented you seem to have become
obsessed with DMA?  Otherwise are detail-oriented tendencies getting out
of control?

You keep bringing up DMA, but once the initial teething troubles (DMA
addresses versus memory addresses) were over there hadn't been any
issues attributed to DMA.  While bounce buffers are suboptimal, they are
good enough for most cases.

For DMA what most concerns me is the design of the allocate_memory_11().
The approach strongly favors *large* allocations.  Notably it requires a
chunk of 128MB or larger, if Domain 0 has been allocated at least 128MB.
If allocate_memory_11() finds a 128MB chunk it then prefers to enlarge
that chunk, rather than emphasizing allocating low addresses.

It has been a while since I last tried the Tianocore build, but there are
two crucial observations.  I don't recall the actual size, but Tianocore
was giving the framebuffer/GPU either 16MB or 64MB, and this was placed
below 512MB.  Combine this with the behavior of allocate_memory_11() and
guess what Xen/ARM/ACPI allocated to Domain 0.

I recall the lowest memory address being given to Domain 0 being above
the 512MB line.  I think it was at 768MB, but this is from my memory.
The rest of the memory allocated to Domain 0 was at higher addresses.

I would suggest allocate_memory_11()'s behavior needs to be adjusted
roughly as follows.  If a Domain 0 is allocated more than 256MB,
allocate_memory_11() should try for DMA-capable memory for at least half
of Domain 0's allocation (I'm unsure whether there should be 128MB of
non-DMA memory, versus only half).  I would emphasize lower addresses
over size for the DMA-capable memory.


I'm unsure how ACPI/UEFI/Tianocore were expressing the framebuffer
memory.  I've got the impression that memory allocation is marked
distinctly from the rest of main memory.

I don't know what was happening, but I suspect Xen had been leaving that
memory blank and never touching it (display never showed any output,
even pixel dust).  I'm suspecting Xen/ARM's ACPI implementation was
handling the specially marked memory by dropping it on the floor.
Instead of handing it to Domain 0 as a specialized region.


Could also be the complete lack of EFI runtime services was the problem.


Julien Grall might I inquire as to your general location/situation?  I
suspect giving you a Raspberry PI 4B could be *highly* valuable to the
Xen Project.  You would suddenly have a Xen-capable system with ACPI and
framebuffer.

A Raspberry PI 4B is cheap enough to need minimal expense justification.
I suspect you've got a spare TTL-serial on hand.  Only issue might be the
mini-HDMI.

I wouldn't dare send one without a SD Card, out of fear it might end up
being used with device-trees instead of Tianocore...


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Mon Nov 29 17:27:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 17:27:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234768.407397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkQa-0007lg-No; Mon, 29 Nov 2021 17:26:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234768.407397; Mon, 29 Nov 2021 17:26:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkQa-0007lZ-Ka; Mon, 29 Nov 2021 17:26:56 +0000
Received: by outflank-mailman (input) for mailman id 234768;
 Mon, 29 Nov 2021 17:26:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9Z1H=QQ=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1mrkQY-0007lT-PW
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 17:26:54 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a2f172d-5139-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 18:26:53 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a2f172d-5139-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638206813;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=LgAYVrwXcCN/hnjAXyshxLDQR7k9TL7p2qGhfipP85g=;
  b=Q9SwNu0ooymp/g1gOjBD7MmRAZriRTO2+U5zHfYKvWS/8+L0l/noOcun
   EJsDy5jTAtpw2oPo23e9peauGTv80iU2wSP+1LQuxXTqxhgGQi/G2iJxV
   quiHfLk6oaXePNTrw5GozU9Aa45xwZzYD8SM9+gKONJyihsJHPJU60G0w
   M=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 3QRIQvlYtTUExbzD1+z4kiqWHSoV6QWH5xmBEwX7QRinsdFpmin7jnxCshdZjljJWCD9sNGlcl
 I379AEVFTjICj7Z49lwKnd4/yy0lQlVin/69HXO3ghAI4sYxYenYjVQWry55HndkJFEKHAzG+K
 HrAZ3I+d4tML74qbCpxxs6oso61L6Ec7WXZMCjjvIYmbNH1kJYSJur8MOR3riuhgBFeNPafHX7
 VsohNGBwVYj3q/8mw3P7aIKuKaLt/dTCmtVs8RMuzYS3vtBywOz/G7RrZlQu9W7tcTi6oR5doB
 nNWarnuPWbvMd0Is/tyd5Qk5
X-SBRS: 5.1
X-MesageID: 58830142
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:eL2aNqAnMUYIuRVW/+/kw5YqxClBgxIJ4kV8jS/XYbTApDklgTBRz
 GYeCjjUOP2MZTf0L4pyYNzipxxX65OBzoc3QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX5400M7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/syyDxdR66
 fV0j7eCVho5Yq7quOExXEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjGdr3pkSR54yY
 eIjdAtKfDXnPCF1K3cpD50ApPiMiCnGJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tmSyq
 3/C/m/5KgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRt6Klc4sBc
 QpOoHNo9PVsshzwJjXgY/GmiEadtEQYUPtwKtcR2h6Q2vbXxSacKmdRG1atd+canMMxQDUr0
 HqAkNXoGSFjvdWpdJ6NyluHhWjsYHZIdAfucQdBFFJYuIe7/OnfmzqWFo47eJNZmOEZDt0ZL
 9qiiCElz4segscQv0lQ1QCW2mn8znQlo+Nc2+k2Yo5Hxl4hDGJGT9bxgbQ+0RqnBNzHJmRtR
 FBex6CjABkmVPlhbhClTuQXB62O7P2YKjDailMHN8B/rGT0oSL8J9sJsG0WyKJV3iAsI2WBj
 Kj741052XOuFCHyMf8fj3yZVqzGMpQM5fy6D6uJP7Kik7B6dROd/TEGWKJj9zuFraTYqolmY
 c3zWZ/1VR4yUP07pBLrF7Z1+eJ6nUgWmDKMLa0XOjz6iNJyklbOEuxbWLZPB8hkhJ65TPL9r
 4wCapDUkkoHC4UToED/qOYuELzDFlBjbbieliCdXrfcSua/MG1+WfLX3507fIlpw/ZcmuvSp
 ynvUU5E0lvvw3bALFzSOHxkbbruW7d5rG46YnNwbQr5hSB7bNb99robers2YaIjqL5pw8lrQ
 qRXYM6HGPlOFGjKomxPcZnnoYV+Xx23ngbSbTG9aT0ycsc4FQzE89PpZCX18ywKAnblvMcyu
 eT4hAjaXYACV0JpC8OPMKCjyFa4vH48nuNuXhSXfokPKRu0qIUzcn7/lP46Jc0IOC7v/DrC2
 lbEGwocqMnMv5QxrIvDi5ebotr7COB5BEdbQTXWtO7kKSnA82O/6oZcS+LULyvFXWb59aj+N
 +VYy/bwbK8OkFpQ6tcuFr9qyeQ15sf1pq8cxQNhRS2ZY1OuA7JmA3+HwcgQ6fEdmu4H4VO7C
 hCV591XGbSVI8e0QlceKT0sYvmHyfxJyCLZ6u44IRmi6SJ6lFZdvZ6+4/VYZPRhEYZI
IronPort-HdrOrdr: A9a23:jg3+kaMNbDNL0cBcTs2jsMiBIKoaSvp037Eqv3oedfUzSL3+qy
 nOpoV+6faaslYssR0b9exoW5PwJE80l6QFgrX5VI3KNGKN1VdARLsSi7cKqAeAJ8SRzIFgPN
 9bAspDNOE=
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58830142"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH] x86/boot: Drop incorrect mapping at l2_xenmap[0]
Date: Mon, 29 Nov 2021 17:26:17 +0000
Message-ID: <20211129172617.12779-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

It has been 4 years since the default load address changed from 1M to 2M, and
_stext ceased residing in l2_xenmap[0].  We should not be inserting an unused
mapping.

To ensure we don't create/remove mappings accidentally, loop from 0 and obey
_PAGE_PRESENT on all entries.

Fixes: 7ed93f3a0dff ("x86: change default load address from 1 MiB to 2 MiB")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

I ought to have spotted this in c/s 52975142d154 ("x86/boot: Create the
l2_xenmap[] mappings dynamically") too.
---
 xen/arch/x86/setup.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index da47cdea14a1..6f241048425c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1279,16 +1279,12 @@ void __init noreturn __start_xen(unsigned long mbi_p)
 
             /* The only data mappings to be relocated are in the Xen area. */
             pl2e = __va(__pa(l2_xenmap));
-            /*
-             * Undo the temporary-hooking of the l1_directmap.  __2M_text_start
-             * is contained in this PTE.
-             */
+
             BUG_ON(using_2M_mapping() &&
                    l2_table_offset((unsigned long)_erodata) ==
                    l2_table_offset((unsigned long)_stext));
-            *pl2e++ = l2e_from_pfn(xen_phys_start >> PAGE_SHIFT,
-                                   PAGE_HYPERVISOR_RX | _PAGE_PSE);
-            for ( i = 1; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
+
+            for ( i = 0; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
             {
                 unsigned int flags;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 17:27:27 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 17:27:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234770.407408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkR5-0008FO-1K; Mon, 29 Nov 2021 17:27:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234770.407408; Mon, 29 Nov 2021 17:27:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkR4-0008FH-Ta; Mon, 29 Nov 2021 17:27:26 +0000
Received: by outflank-mailman (input) for mailman id 234770;
 Mon, 29 Nov 2021 17:27:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrkR3-0008Dz-VW
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 17:27:26 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9cbcba49-5139-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 18:27:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9cbcba49-5139-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638206844;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=/wd8qZLyn+BoZ0O2F4FMLLeQu5PyM3fJcAHlbdjVFBc=;
  b=fRpYbDkxnzxh8CE1oFdJGv3b2jA26u2npOF/M9Rrei5UP5iVxcFJtqCN
   Uwb2a+FEr6g+YWLR82UCQxwV10Lmv7bZb76tgm6H6wPLIZqUx4+JHwKNX
   113mMJzCS7axFOxFmofnInwKK3LY9llvT3+kjwlkvADTlq3T8f8UlbA1v
   Q=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: BCz/m2RYVLTKMLuC1Lc6NENofyOve4gNk2nxRPj/m+9iFY8TGh6UJ9wQkSTglQfBFiLsQAdVOj
 4l+J0DobNIx9BlozMh3+ywcTXJUc6kbjxcqAnH/5PGRpZOAZII5VjUYCE9fDf0fB3STB5sBuNV
 1JGep9fCtgDP5j+Pj6656A0FRCheoPTKCZkQcDmSDOfadH9TPU4MfAHaW4/KDoe+FHw9RL0eSy
 C1XXY3xOWSdF+9DNRF8DWzwNp3sIC4MiV3XkFYRTv4jEz7apC7p4hUJD8KdG5TTTnQKF/zPt6Y
 ejszlLl1VPl2GodhLMNzVBFn
X-SBRS: 5.1
X-MesageID: 59221656
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:txI9Ja18WdLfM+KAdPbD5Sh2kn2cJEfYwER7XKvMYLTBsI5bpz1Rn
 TQaXmHSa6zcYGv9fN8gYI3loR4OsMTdytYxSwpkpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wb9h2+aEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhgPV9x
 4hAu4yMQiwgYJ/VudsEbR8FOnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1EnMMsIdOtJIoCknph0SvYHbAtRpWrr6DiuI4Chm5u254m8fD2W
 vgFUTVxcFf6ZRRgaw0TOJFms9WTiSyqG9FfgA3M/vdmi4TJ9yRu1JD9PdyTfcaFLe1UgUSwt
 m/A537+ABwRKJqY0zXt2nCmi/LLnCj7cJkPD7D+/flv6HWZwncNThQQSVy9ifa8g0+6HdlYL
 iQ86ico6KQ/6kGvZt38RAGj5m6JuAYGXNhdGPF87xuCopc4+C7AWDJCFGQYLoV76olmHlTGy
 2Nlgfv2IDBg7bCbWU6W3b7KnyqTBjErKzIrMHpsoRQ+3/Hvp4Q6jxTqR9llEbKogtCdJQwc0
 wxmvwBl2exN0JdjO7GTuAme3mny/sShohsdv12PBgqYAhVFiJlJjmBCwXzS9r5+IYmQVTFtV
 1BUypHFvIji4Xxg/RFhodnh/pn0v55p0xWG2DaD+qXNEBz3pRaekXh4um0WGauQGp9slcXVS
 EHSoxhNw5RYIWGna6R6C6roVZ96lPK8So6+D6CIBjarXnSXXFXdlM2JTRTOt10BbWB2yf1vU
 XtlWZvE4Ykm5VRPk2PtGrZ1PU4DzSEi32LDLa0XPDz8uYdykEW9EO9fWHPXN7hRxPrd/G39r
 oYOX+PXmk43eLCvPUHqHXs7cAliwY4TXsut9aS6t4erf2JbJY3WI6OLnO56JdU6x/89eyWh1
 ijVZ3K0AWHX3BXvAQ6LdmpiePXoW5N+pmg8JisiIRCj3H1LXGplxP53m0IfceZ1+ep94+RzS
 vVZKcyMDu4WEmbM+igHbIm7p4tnLUz5iQWLNiujQT4+Y58/GFCZpo66JlPipHsUEy66lcoiu
 Ln8hAnVdoUOGlZ5B8HMZfPxk17o5SoBmPh/VlfjK8VIfBm+65BjLiH816dlI8wFJRjZ6CGd0
 gKaXUURqeXX+tdn+9jVn6GU6YyuFrImTEZdGmDa65ewNDXboTX/kdMRDr7QcGmEBm3u+aika
 eFE9N3GMaUKzARQro5xM7d31qZitdHhkKBXk1Z/F3LRYlX1Vr45eiua3dNCv7Fmz6NCvVfkQ
 VqG/9RXNOnbOM7hF1JNdgMpYv7aiKMRkzjWq/80PF/79Gl8+7/eCRdeOByFiSp8KrppMdx6n
 bd96ZBOswHv2AA3NtumjzxP8zXeJ3MNZKwrq5UGDdK5kQEs0FxDPcTRByKeDEtjsDmQ3p3G+
 gOpuZc=
IronPort-HdrOrdr: A9a23:SYJnkqmXfgZ6/ADMcpWwXOkr4QfpDfIg3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE7wr5OUtQ/exoV5PhfZqxz/JICOoqTNKftWvdyQiVxehZhOOIqVDd8kXFh4hgPM
 xbEpSWZueeMbEDt7eZ3DWF
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="59221656"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=B0TE3dS2GqNy9FdlrgUmCXlSSnzWVTYzYU5xwwfcqSGuzA9b3x0htRKpdPt20JAZCRAAFeYU0wRwg73/hycty35oorFyVy48AryJciZlxQWbWFCjFf1+tcezEYtUxvHS7f7NMCWQIXj3Et8mzHj6L4f0zbBkMgxScbdJe7Tno/ZJdWKTdq6pVETJng5vqGTXtonlkq4tmS7od9U+6xc92wcVT8NYevhZy9j45UsWB61FWtVVieLE041ssayypnCEBq2O0GQlSgVDAQVV0CixjQPA4w/sb0PjAWIh+Cx/Kp9tS2unz9z2weKNt4bLLyVBBIWvUtBwB1q5yiUbD/S/Pw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mVOPBGn2PEISvPbgB+SF1V5RBLA/Vzvk0b/Ik5e3xj8=;
 b=egdxCR2wYNiKIFMpXoT3rVY+hepunOU48Ru/IDcV4pZ3JK+3wDvBunHtTrRa18VzztLLxTFxhSNkodCyspIwZgSkQRrgurzfNtZMLO+Yc0T3+cGTtmpEzVAsLwlYYCDv5au8FY7zfRmMZiBVEep4kvjOUon/AOR2TOW0TykUASid/MptAJoCpP2gPPdKkyLhrwHbwa8wgGLto1eG/uMfr5rP6HX/E/lNcoXG0iymgUgoV/GQL/dHzzLEIYQ7BoutWpBBpCMMXLZQX4LNvC5BMLVCoT3mMrpVv4XQxSRYm5Df0PPGw53BdNrkAM2zdiV+BtyOtSGR3NDF4RNmAIoWoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mVOPBGn2PEISvPbgB+SF1V5RBLA/Vzvk0b/Ik5e3xj8=;
 b=mrYLS6SpYvgoZ8/on8W1k4RinNWK+1J6i1/HhWw78IGtWbpAGd+0JDthLHLxUay7s0KQxZjSqlaynKirCwPQtUPlzP/x8GM9Zys2cVac42hnSrETibbFHY3VMFvycVaJBOnHYu/BxgijYKiGJFpRvazWvU2N5M1Vq2+tnB2fXj8=
Date: Mon, 29 Nov 2021 18:27:13 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Anton Belousov <blsv.anton@gmail.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>
Subject: Re: [XEN PATCH 1/1] Add suport for SMBIOS tables 7,8,9,26,27,28 to
 improve virtual machine stealth from malware.
Message-ID: <YaUNcV/KY7Tz43Ni@Air-de-Roger>
References: <cover.1638190663.git.blsv.anton@gmail.com>
 <3ad07dc366117e43a46004a03cdb963581b16fd7.1638190663.git.blsv.anton@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <3ad07dc366117e43a46004a03cdb963581b16fd7.1638190663.git.blsv.anton@gmail.com>
X-ClientProxiedBy: PR1P264CA0030.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:19f::17) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a4ada1b6-da13-4ad4-8e51-08d9b35d7f01
X-MS-TrafficTypeDiagnostic: DM5PR03MB2554:
X-Microsoft-Antispam-PRVS: <DM5PR03MB25549830D895260D5840A8738F669@DM5PR03MB2554.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: muxyBkFlnnTBzKdwVjlz1Y0uuybIj0ziIk43rGNx64LXEogVplgtYifdYrlYSO/ejpg1M9+5YuMaUsJwxyDE0Jh/UyiSXtq9juRUAaD8VdC1F5DqvJyN5p1rYTGdXS9oZg5WBsV4LRvPbWPCrXwp2swv15U5I0kJRBqNmDRSU0u3BNFULpfATyvr94+vGGqcNhR1Mq6ZQGxeBqD0w4kgzSD0JNgeUOj8oUhMAOe5t2j0/wKE6D3SJpuXalxFi2JjBOy5qOmMcvmNCpDyDwBLgUWz1L581y6oa9FIYtjDNKJg7+fyx/NjG2nzA2RExSjQ+LsnbCyAsso4fZpFJkPowOwxGpaIPtzTp42l8SajJ8EZuR87F26xs9bseNdyFYc/pxWIcxiKp2KlWRMbav1u10D9w09KlbNAEPYttIFA1sG6LtAPtT2WL3u27ne0szMq7A5alE+2NagtKnNFg0gkXUKXkhoQliMa7+vkdyT3lN+uAq9toKzT0Kqcnc1MsWA/5ilL3iD6OTcTSKWsrsr5qdxwIqjELkzeDwUXECCAIx18HYDGk9C9WoyfYJDq/mk76CexDkmVXp0VPxvZ1JWmbiKnb9cOKfAkzQSntib4qwUs3b4IvE2AZwd0WR05HOYADGR0U1Hr+DIp7rGhFE1ZZAFNEJ1n3WTtvfMU9scKLhQUbnOtxLCDlRtBKbJmomazO0zTcBSRLgYv4eqYJ4QsFuq1uw/URo3IeTk9HiDL7YM=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(66476007)(5660300002)(38100700002)(66556008)(6666004)(33716001)(54906003)(8936002)(4326008)(316002)(66946007)(83380400001)(86362001)(508600001)(956004)(8676002)(26005)(6486002)(186003)(6496006)(2906002)(9686003)(966005)(6916009)(85182001)(82960400001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R1p5VHZ0c2NqYmhydkJKaUUrUHJqcUhzbjdpUUh5cDMrblBVdTNhcWI0SzdW?=
 =?utf-8?B?TzR4bXd6djZYR3QzUHBidXBBQmRIcmxNeUxlSVZMM2JIVUdPcDZBdXExRG1R?=
 =?utf-8?B?bS9DV3l0M2VGVWhkZGpWb0dweHhYNTcrL1RpTForUWZDMFNneUt2WVFzWWJn?=
 =?utf-8?B?NG9sQkxqVW5WTnF4djk4OFBZbDdLT3ZOOGFCUGdTTUlDY1hXcHJwZzFOQ3d1?=
 =?utf-8?B?VTdwUUR4Zm82TWJaYTc1SkwzeGJmTnQwbWUzdXMybTlobTJPY0xsZjJYNDBZ?=
 =?utf-8?B?eFp1aVAwcW5wNktBZWhmSktINWJjUSt1VGpOZ0dWdHBsZjhNYjBwQ3VSYS9I?=
 =?utf-8?B?MVltYmxhQUcwTWNZYWFVZE42OHF2L0VvVGk1eVpPcU5UdzAxUXVlWGRRRjdW?=
 =?utf-8?B?NkJ3SE1aT1hxK0JxcXZCcjlqQzU5cVJkeWJ5QmtHWHFoUkRuRERsQXljaWtS?=
 =?utf-8?B?SXBwVW1qd3hSajV4TitETm12YjNzRGRKaG8wWk1KTEJFNi9GSldLTWxFSEhC?=
 =?utf-8?B?WXpWRXRINnYvZzMrNXMyMEJvSlFPREU1cGl2RkVDcy91aExtTVcrVmVYVnph?=
 =?utf-8?B?UGI4VVRCN3VQRDZ3QnhIZmY2TmRNWWhrZkNlUFVUelI5amlEMlp3cFJHMWZx?=
 =?utf-8?B?YjkrYjZ1N21BVEtaSExkZGx1UjEvcVdXZzhIMVdQUkExamlRMExWd1AvUEdH?=
 =?utf-8?B?OE9tNFBFczZtWXlqTTA0emxaWlIxRlBpQUszek9JRGlJUUMyaG5YemJGOUhE?=
 =?utf-8?B?YWpIaTNCaHdJV1dIOFd5NGxxTzVwTlIrUXFON0tQOWRUMVBUeDVMMUY1N3R6?=
 =?utf-8?B?enE1dmdrWE84dWhLa2VYR1dEakFrVnNHTzE2Mk00N2RWZ3B1emNSQ3laQ3M0?=
 =?utf-8?B?QTFXdDN3VE9BTEdGQmRCaGE1bHZZeHh6cW5yTldQQVM4RUxlN3N5Z2UreHlo?=
 =?utf-8?B?Um9ldHNwOFJuYzZUQ0h3QnJaeGpKU0g4Z3U0c0RvOW1kQldBcDZrcW93STkr?=
 =?utf-8?B?bGtTaStJNXhXeGM0MG83SXdQRStrSDV6SDFKMUFhY3UvMXNsSnhUNDhpaFRG?=
 =?utf-8?B?M3VhVCtBVHlnOU5CWnZ2T21YaGxweHJpMCtMWmg1NnU3cEVaeGlmVWVDejIy?=
 =?utf-8?B?UEFIWnFKMEN3MTdJTVZWaWRXSmJobCs0TFpHcWFIRWNQNnZFcGtnSmJzMGYv?=
 =?utf-8?B?YkRZZm1QWjlxdTFpa0YvYW9BVE5hRG9CalFMc0hmSWFxVGtubTVkOEFqSzgw?=
 =?utf-8?B?c2c5eDVjSWlWSWh5Z1N3RTl6eDZsd2F5Mmhud2QyYzlNRFl3ZnZzSzRlRWkv?=
 =?utf-8?B?eFpqRjhybTFXWGcrMkVuekJEbTd2bGFNNzN6ZUtCeThRcjBPaW5wTnlRcHJv?=
 =?utf-8?B?blh5UnpnTzBRUFpEeGpDZERydkNReWI2WUF2OWJDOEFodktzZ2lObGdrV0lm?=
 =?utf-8?B?V0pWV3p2NmZDTnh0QTFqeU1sYUVTN1R5MzdJTTN5Z1hvMmlqV0FFN2hyei9E?=
 =?utf-8?B?cTJ4ZHRKSUY5OVZ0ZzJ4RmY4RXBJaHVEcGhFc3JKajVvb3dyd3R4SHNVMGp5?=
 =?utf-8?B?WVFiQVU0d1hTZWliZkFBWW4wd3VPR1V5NDJ0b09acVlNL0crU0hmSFYya1Zo?=
 =?utf-8?B?ZEtUYUgwZ09HR3h4Sm4yZlNIajB4alFvd3ZXMC9DcjdIUXYwSXJOWnZkT3Qv?=
 =?utf-8?B?RWQrcGF5WkU3QTQvTE1VdnBpNlc2V1R2R3daM1kxeW5PVmVJUHRua2MyVExG?=
 =?utf-8?B?Q1lMVGtEY0lDTEU0VzdLZFZRWDdTeG02WVZwYVZrU0thTmJVakpad0hGWThU?=
 =?utf-8?B?Y21CRjdNNG5OYWFlUDJhZG1OZ0YrcUtzY2lnQXBXTitueVZyT3FxS2Qzbjlm?=
 =?utf-8?B?NHhVRm1xdDZEZlc4QmwvWDNvZWh2clZYL2JvUjEreG15WTB1ekFlSU56SlVS?=
 =?utf-8?B?MUlHQkpIUUsvZnAyVUJJdERRT3ZERWRkWHRFSTJJWWJOaHRuejhyWDJ5azZE?=
 =?utf-8?B?bHdIb3p0K0lUYmVPRVRWNjJsYUpFM2sxWGNUcktIV2hIOTlOZVo3VU9Fd0Ey?=
 =?utf-8?B?OEFnRzdsejZtbC9rUHZ4UjJtbGN6UXZDd2RlZys2RVo4NkFvc2l0RGJvWkFi?=
 =?utf-8?B?STR4c1pFaGVoK0hzb0g1Qmw2YzRMZG4rYlJLSnNMWTBJbngzVjVmb0llUmtM?=
 =?utf-8?Q?0J0wmWEUPM1wKMJqgna/4gs=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: a4ada1b6-da13-4ad4-8e51-08d9b35d7f01
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 17:27:19.5367
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xvwxmOwE1gP7li9g8KC03DqYIaylGh2P07a2TMsqgkptCZoPx4S7DghKbbybT6kPDlBza54pTRe2oEEm3h97Bg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2554
X-OriginatorOrg: citrix.com

Hello,

On Mon, Nov 29, 2021 at 12:59:29PM +0000, Anton Belousov wrote:

Than ks for the patch, I'm afraid this requires a proper commit
message and a Signed-off-by tag. See:

https://wiki.xenproject.org/wiki/Submitting_Xen_Project_Patches#Title_and_description_of_the_patch

> ---
>  tools/firmware/hvmloader/smbios.c       | 146 ++++++++++++++++++++++++
>  tools/firmware/hvmloader/smbios_types.h |  76 ++++++++++++
>  2 files changed, 222 insertions(+)
> 
> diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
> index 97a054e9e3..f5e61c1159 100644
> --- a/tools/firmware/hvmloader/smbios.c
> +++ b/tools/firmware/hvmloader/smbios.c
> @@ -33,12 +33,18 @@
>  #define SMBIOS_HANDLE_TYPE2   0x0200
>  #define SMBIOS_HANDLE_TYPE3   0x0300
>  #define SMBIOS_HANDLE_TYPE4   0x0400
> +#define SMBIOS_HANDLE_TYPE7   0x0700
> +#define SMBIOS_HANDLE_TYPE8   0x0800
> +#define SMBIOS_HANDLE_TYPE9   0x0900
>  #define SMBIOS_HANDLE_TYPE11  0x0B00
>  #define SMBIOS_HANDLE_TYPE16  0x1000
>  #define SMBIOS_HANDLE_TYPE17  0x1100
>  #define SMBIOS_HANDLE_TYPE19  0x1300
>  #define SMBIOS_HANDLE_TYPE20  0x1400
>  #define SMBIOS_HANDLE_TYPE22  0x1600
> +#define SMBIOS_HANDLE_TYPE26  0x1A00
> +#define SMBIOS_HANDLE_TYPE27  0x1B00
> +#define SMBIOS_HANDLE_TYPE28  0x1C00
>  #define SMBIOS_HANDLE_TYPE32  0x2000
>  #define SMBIOS_HANDLE_TYPE39  0x2700
>  #define SMBIOS_HANDLE_TYPE127 0x7f00
> @@ -77,6 +83,12 @@ static void *
>  smbios_type_4_init(void *start, unsigned int cpu_number,
>                     char *cpu_manufacturer);
>  static void *
> +smbios_type_7_init(void *start);
> +static void *
> +smbios_type_8_init(void *start);
> +static void *
> +smbios_type_9_init(void *start);
> +static void *
>  smbios_type_11_init(void *start);
>  static void *
>  smbios_type_16_init(void *start, uint32_t memory_size_mb, int nr_mem_devs);
> @@ -89,6 +101,12 @@ smbios_type_20_init(void *start, uint32_t memory_size_mb, int instance);
>  static void *
>  smbios_type_22_init(void *start);
>  static void *
> +smbios_type_26_init(void *start);
> +static void *
> +smbios_type_27_init(void *start);
> +static void *
> +smbios_type_28_init(void *start);
> +static void *
>  smbios_type_32_init(void *start);
>  static void *
>  smbios_type_39_init(void *start);
> @@ -205,6 +223,9 @@ write_smbios_tables(void *ep, void *start,
>      do_struct(smbios_type_3_init(p));
>      for ( cpu_num = 1; cpu_num <= vcpus; cpu_num++ )
>          do_struct(smbios_type_4_init(p, cpu_num, cpu_manufacturer));
> +    do_struct(smbios_type_7_init(p));
> +    do_struct(smbios_type_8_init(p));
> +    do_struct(smbios_type_9_init(p));
>      do_struct(smbios_type_11_init(p));
>  
>      /* Each 'memory device' covers up to 16GB of address space. */
> @@ -221,6 +242,9 @@ write_smbios_tables(void *ep, void *start,
>      }
>  
>      do_struct(smbios_type_22_init(p));
> +    do_struct(smbios_type_26_init(p));
> +    do_struct(smbios_type_28_init(p));
> +    do_struct(smbios_type_27_init(p));
>      do_struct(smbios_type_32_init(p));
>      do_struct(smbios_type_39_init(p));
>      do_struct(smbios_type_vendor_oem_init(p));
> @@ -700,6 +724,66 @@ smbios_type_4_init(
>      return start+1;
>  }
>  
> +/* Type 7 -- Cache Information */
> +static void *
> +smbios_type_7_init(void *start)
> +{
> +    struct smbios_type_7 *p = (struct smbios_type_7 *)start;
> +
> +    void *pts;
> +    uint32_t length;
> +
> +    pts = get_smbios_pt_struct(7, &length);
> +    if ( (pts != NULL)&&(length > 0) )
> +    {
> +        memcpy(start, pts, length);
> +        p->header.handle = SMBIOS_HANDLE_TYPE7;
> +        return (start + length);
> +    }

Here and below for the added types: would it make sense to fill them
with some default information in the absence of any data passed in?

I'm afraid this requires some commit message in order to properly
review it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 17:28:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 17:28:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234774.407418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkRz-0000T9-B2; Mon, 29 Nov 2021 17:28:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234774.407418; Mon, 29 Nov 2021 17:28:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkRz-0000T2-87; Mon, 29 Nov 2021 17:28:23 +0000
Received: by outflank-mailman (input) for mailman id 234774;
 Mon, 29 Nov 2021 17:28:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pv+C=QQ=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mrkRy-0000Pd-24
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 17:28:22 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf38e279-5139-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 18:28:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf38e279-5139-11ec-976b-d102b41d0961
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1638206899;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=xqOKj3IZWMqS0ugg10eOFI5oEB30iI5TJapcXH2ni4A=;
	b=IOCjwDnV+IhR2HGDg4wVW6lOUizRnX5reRLkcfy7IRV/nMGiAjTI2+oGxxK38tfywRFsWe
	EqGxuI8LaAsxJ91CSBaG/Ny4PUPGFBzKec91201k62zrl5ylKwAJ7VvLVyjvYcmX97yJgJ
	jlhghtbx5kqCMWQEAQ6Tj79vF6/jFLq9K638DL4nnmZC2uTuC7qHv+hQouGs+XwIrl6AVQ
	RUinNzARNB8tKdwysaZqzVoSHC6uvNgYZe9de/S/0+EwNCAoJtBFbB2VaL+3HemYbbawj9
	uMUhH7WxAWbpeHyhP/oMxZ6AFxKlmnDpauO3W1U1WL5S8emIaNO/cYOI7lRQAA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1638206899;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=xqOKj3IZWMqS0ugg10eOFI5oEB30iI5TJapcXH2ni4A=;
	b=Ka5WIX7ljoOUvjodiScPWGQPf8TJxN+HN3R45g4Re/IWJ59DCK96971cDB4QWE5pYu9633
	JWWorprRZAvg0xAA==
To: Marc Zyngier <maz@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>, Bjorn Helgaas <helgaas@kernel.org>,
 Alex Williamson <alex.williamson@redhat.com>, Kevin Tian
 <kevin.tian@intel.com>, Jason Gunthorpe <jgg@nvidia.com>, Megha Dey
 <megha.dey@intel.com>, Ashok Raj <ashok.raj@intel.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Andrew Cooper <amc96@cam.ac.uk>, Juergen Gross
 <jgross@suse.com>, linux-pci@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [patch 03/10] genirq/msi: Make MSI descriptor alloc/free ready
 for range allocations
In-Reply-To: <87a6hof5sr.ffs@tglx>
References: <20211126233124.618283684@linutronix.de>
 <20211127000918.664542907@linutronix.de> <8735ngs26o.wl-maz@kernel.org>
 <87a6hof5sr.ffs@tglx>
Date: Mon, 29 Nov 2021 18:28:18 +0100
Message-ID: <877dcqeurx.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Sun, Nov 28 2021 at 20:17, Thomas Gleixner wrote:
> On Sun, Nov 28 2021 at 15:57, Marc Zyngier wrote:
> Hrm. The stupid search should terminated nevertheless. Let me stare at
> it again.

Found it. Just my inability to read xarray documentation.

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 17:31:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 17:31:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234785.407430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkV7-0001xM-Vd; Mon, 29 Nov 2021 17:31:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234785.407430; Mon, 29 Nov 2021 17:31:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkV7-0001xF-Ru; Mon, 29 Nov 2021 17:31:37 +0000
Received: by outflank-mailman (input) for mailman id 234785;
 Mon, 29 Nov 2021 17:31:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PMap=QQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1mrkV6-0001x9-Mf
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 17:31:36 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 324924ce-513a-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 18:31:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 324924ce-513a-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638207095;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=bh2oLnyUD2hYXm6BLhEb/7ManCAKZM5/xuF/bUALGS4=;
  b=D1iJO/gqnXAWdymIeSjEorREO2I6sUTmbVzTl8EvRcEP7EydpUS6pQQP
   aDZLPwfjYzhDlKokPNgEF3b63R4kjEJXes8qSSci/y3RFI7ALhHdacaY4
   kI9nHKHIzXy3+tP28F5bXD/TTQG80fvFfmEgG9BU2ivX2HeZ1VuxvLYAq
   c=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: ef4gBSJ4CizeDOYr9GbQ1a1r/j8ZZ+7qPY9SQfV265TLvneB8/RuI1BlZOeNMCEPSsshZ9ypU7
 W42UAk/n7Yu7EkmVt0uxVSoRNzVGVMUZTRRb6jly+dQ0sNfI8W85OY5vWAa3dQo2LfCdTopK+V
 YuztxNji1ZV2JFLR+REGbcfpOsyfAq/7HIW1axNhLZk3t0Nm7VVmCK681bV237DjfIv4sUTJ98
 givBVHwUf8ZBqRZq7v7oPkgZlSqiA1fy5iCuP9DSJub3Gy69+RtBFPfLg8vbBovoWES+vg9ZZ0
 +1I1BGqGZBS0SjK1wy9JmDc1
X-SBRS: 5.1
X-MesageID: 58787563
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:yjq3fq/iL3G6yRnIbRgFDrUDe3mTJUtcMsCJ2f8bNWPcYEJGY0x3n
 DBOWziHP/qKZWb1L991aYrn8k1QscPSz9NlGgs5+C48E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdj09Yx6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPh92
 uwclZqXUzxyfYrlxOc2aSAbFyhHaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguw5K8bmJsUHs2xIxjDFF/c2B5vERs0m4PcFjGhg2Z0QRp4yY
 eIibWQxLwnpPSYMFXdPMKsQsbv212XWJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tkeHp
 ErW8mLhGBYYOdeDjz2f/RqEhOXCgCf6U4I6D6Cj+7hhh1j77mYXEwNQXF2npv+RhUu3WtYZI
 EsRkgI+oK53+EG1Q93VWxyjvGXCrhMaQ8BXEeAx9EeK0KW83uqCLjFaFHgbMoVg7ZJoA2xxv
 rOUoz/3LTB9iey1T1WHzezXihruOgMvFCwGbBZRGGPp/OLfiI00ixvOSPNqH6i0ksD5FFnM/
 tyakMQtr+5N1JBWjs1X6XiC2mvx/caREmbZ8y2OBjr9hj6VcrJJcGBBBbLzyf9bZLiUQVCa1
 JTvs5jPtbteZX1hecHkfQnsIF1Lz6vdWNE/qQQ2d3XEy9hK0yT9Fb28GBkkeC9U3j8sIFcFm
 nP7twJL/4N0N3C3d6JxaI/ZI510lvi5T4i6DKuNPoYmjn1NmOmvpnsGiam4hT6FraTRuftnZ
 cfznTiEUB729piLPBLpHrxAgNfHNwg1xH/JRICT8vhU+eH2WZJhcp9caAHmRrlgtMus+VyJm
 /4CZ5ri40gOC4XWP3iImbP/2HhXdBDX87it8JcJHgNCSyI7cFwc5wj5nel8Jtc7xvsNzY8lP
 BiVAydl9bY2vlWeQS2iYXF/crL/G5F5qHMwJys3Oli0nXMkZO6SAG03LvPbpJErq75uy+BaV
 f4Ad5nSC/hDUG2fqT8ccYP8vMppcxHy3VCCOC+sYT4eeZ98RlOWpo+4L1W3rCReXDCqscYeo
 qG70l+JS5Q0WAk/Xt3db+iizg3tsCFFyv5yRUbBPvJaZF7orNpxMyX0g/Jue5MMJBzPyyG0z
 QGTBRtE9+DBr5VsqIvChLyerpfvGOx7RxIIE27e5LewFC/b4mv8ntMQDLfWJWjQDTqm9r+ja
 ONZy+DHHMcGxFsa4ZBhF7tLzL4l44e9rbFt0Qk5Tm7AaE6mC+08LyDej9VPrKBE2pRQpRCyB
 hCU4tBfNLiEZJHlHVoWKFZ3Z+iPz6hJyDzb7PBzK0Tm/i5nurGAVBwKbRWLjSVcKppzMZ8kn
 rh96JJHtVTnh0p4KMuCgwBV63+Ify4JXKgQv50HBJPm11gwwVZYbJ2AUiL77fljsTmX3pXG9
 tNMuJf/ug==
IronPort-HdrOrdr: A9a23:OZhkbKkVVDdO4VvPSWTujuwUjJnpDfPKimdD5ihNYBxZY6Wkfp
 +V8sjzhCWatN9OYh0dcLC7WJVpQRvnhPhICK0qTMqftWjdyRGVxeRZjLcKrAeQfhEWmtQtsZ
 uINpIOdOEYbmIK/PoSgjPIa+rIqePvmMvD6Ja8vhUdPT2CKZsQlDuRYjzrbHGeLzM2fKbReq
 Dsgfau8FGbCAsqh4mAdzM4dtmGg+eOuIPtYBYACRJiwA6SjQmw4Lq/NxSDxB8RXx5G3L9nqA
 H+4kDEz5Tml8v+5g7X1mfV4ZgTsNz9yuFbDMjJrsQOMD3jhiuheYwkcbyfuzIepv2p9T8R4Z
 TxiiZlG/42x2Laf2mzrxeo8w780Aw243un8lOciWuLm72xeBsKT+56wa5JeBrQ7EQt+Ptm1r
 hQ4m6fv51LSTvdgSXU/bHzJlBXv3vxhUBnvf8YjnRZX4dbQqRWt5Yj8ERcF4pFND7m6bogDP
 JlAKjnlbhrmGuhHjPkV1RUsZ6RtixZJGbCfqFCgL3b79FupgE486NCr/Zv2kvp9/oGOu95Dq
 r/Q+NVfYp1P70rhJRGdZA8qPuMex/wqC33QRevyHTcZek60iH22tXKCItc3pDfRHVP9up1pK
 j8
X-IronPort-AV: E=Sophos;i="5.87,273,1631592000"; 
   d="scan'208";a="58787563"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZyOcw6io0S10oFYvubONMNhKx9gl2mYA2PGPwR9QWXauF/hKIVtbe2ihRwVjJc3Cdd0A+bQDaLGGpOiMMc/2RqYcVMV6r05NmTxGlDpLAXT6hhSXMwKPfA2+fVPxs0A3kRCru+719iqgSxSWUUOQ/EyBQ069WfedglhViAChnrbZjhkA8Y/MpIddOtSGeqdpxuf7FcVTJPcQzpbYFTa+vyf3hyg+LexmMA3clHIUMloLCgxKbCmJ6Z6X5Y+7/Osl4ilG5yrPNh6u9sqJKNoe/5C91pH0/5hF7niuybRlFyOsOmzdouC9bWX4Eya6I5haFGackhyM9KbIFKdCd6J4ww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bh2oLnyUD2hYXm6BLhEb/7ManCAKZM5/xuF/bUALGS4=;
 b=ndCiKOkB+zg9PRQCR4UAzrdT0FLgdqjFGAxZYlEtx7xwHNiwfQRm0HPSsS/d15ylMgU5+gwmzQR7zV4n7JgxQZ6FeTSR1tvuV7dgjkLz/IElwIo4otEitqKz9zvRz+ZwVssDBtWliCeYugBPgKPBVWHE4p8mkUYcIDmAm9uZx1O0L0TC2Xx093IW5zbXqnkWsNQlRtjsoNJ0cX+XrxO6OEWrAWUwOyk1Zg3rr1nNCEa9Xc1/e4AiW2R6Q4I02i4Z+AKX/5i0mHkAS1/fSslH7C3nzLroA8BUffRRE1IyQqpcIwvKGhImJBiyW4kVxmWUNlWhQ5THCFYg1NCF8fE1eQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bh2oLnyUD2hYXm6BLhEb/7ManCAKZM5/xuF/bUALGS4=;
 b=GmtcP0pvNHrurIxhRkJtdXXCuJv4OtyEfGSX07ZxWGZwcwNIY7AUwWJfSm1+yE3opaDeib2hF6OuJWG+5nXWLBTvC++iB6IIYdoPzTUOKKHz55vvnWlsTzoZ1iSpuW2+sckh07D9bETeRgSeOv67tWp+LwT7IpHJWNgioLLAD+8=
Date: Mon, 29 Nov 2021 18:30:58 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Anton Belousov <blsv.anton@gmail.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Ian Jackson
	<iwj@xenproject.org>
Subject: Re: [XEN PATCH 0/1] Add support for SMBIOS tables 7,8,9,26,27,28.
Message-ID: <YaUOUmwGdmk5lc2d@Air-de-Roger>
References: <cover.1638190663.git.blsv.anton@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <cover.1638190663.git.blsv.anton@gmail.com>
X-ClientProxiedBy: MR1P264CA0129.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::17) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 99c107cf-0793-4461-bc20-08d9b35e04be
X-MS-TrafficTypeDiagnostic: DM6PR03MB4297:
X-Microsoft-Antispam-PRVS: <DM6PR03MB42976CF477903CD4B9131CEA8F669@DM6PR03MB4297.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 9mgh42OqUNup7wBXPVVbSCUwXuCgQjd5nRnF7iIwJmTS2UNKqQvA6dTFN5a4rM3P3lUo68QQ3mld0BBrjQqq0m4oKzxVFh0I1YNc8812/dqewk0Yk002CtH5rL5fJkmiMyjmiKHMxy3C7bhmpJuvrNinmhj/1oY1T80O6xVgWcnpKHmlOon8AnrkunwNm3i3bK7Rnr6+Oxx/IH/ar2CfkqFP2QIMOWMQDNYG/UxgNNt4est/Y5ucd1tTGMk+EuEB8st/1andn6ZUZVv3U7a/Atl4ZwCRXVmyx+HX59CVDcK4zcIjgKLnNuHwSFylKP7Ggtofya0Hi8/MiE8kBFGirY1z5JBj+PIQaa5Slaht7/Utf/D0IwgU5wKVWCBTRnZLat7pSg4NTzqd9kvn6t5ECEUCIQ0S2TqnXZ+so/blRkFBKEVygHrjaNGOSiEw4V+m0TOxCtyHeT15SVE36UNzQxWTdx5OR15ZWBGmKNnhnUMqxCCoafo8e8vWKkYYB5XvNMM55A3u3Yp5BdxipAKMx6RsGFwI99qiJVFHyQEVzsOBHhXkYh54EeH6AOVz21UPywm9R8F3XqiGO5ZrUnYMaERCxV4LPcOvR8R4lP0vhJI05h7R4wSV+8WefABGV9XZ1oMyOpa8JYu/xx+e14HbCl/8W/ub7030GAWCHIH9HvV4ffTTZD+5tXHuvQ4wr2PAlyPscX5PsZ3nFZfzvzgnjkP0u0rW630HqdyumgmCUis=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(8936002)(4326008)(6666004)(86362001)(508600001)(956004)(316002)(5660300002)(4744005)(66556008)(8676002)(66946007)(6916009)(54906003)(66574015)(2906002)(33716001)(83380400001)(82960400001)(26005)(9686003)(186003)(6496006)(6486002)(38100700002)(66476007)(85182001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cm5sZGlOOXFPd1F0WUtEbHJIR3J4bmhmTmpYZ05EZFdwTExZbVk3T1hKOG9O?=
 =?utf-8?B?NWxCdGhLazBOOXJsTlE3REtQZWxvbHlpamdlNTd4UzBPSnNLNTNNUFZoVXYr?=
 =?utf-8?B?TnFEUTR1TUhUaDlCS1JKOXBpVlJlbVdQVzc3QXo5ZmIwNzExNzArM05iMUNO?=
 =?utf-8?B?a3lzL3R0amg0MjhEMEZ3bWFjWXhhY0xVZnc3dTh3bUNJOG5uV0UrSFQ0VHdD?=
 =?utf-8?B?Uk94emJQR0ZNUVl2QkNGOU1yWmIvNitMcXhGSHJxalNSdnZraHpCNktBQkFE?=
 =?utf-8?B?ajNsem1iK1Y5NzFnVW9kUFM0WmZsaklpUUFrWE84NC95YWJJTmRDcmJrOC94?=
 =?utf-8?B?RWVWcU1GQ0MvSUxRcXBvbCtzcVZYYjJTdUhIOHlKby90ZWh3di93YnQ4dk1W?=
 =?utf-8?B?M0hvTFJFVlJ5anhkeWtPMCs1TGhKNkpzK0h5MHBWYWtmTFhnY0s2Mno0cVNt?=
 =?utf-8?B?TGt3ZmFDYXlQckVZZW1MZjRCaDVpQk1vVGdrRTNIYTlWOXBiM1ZCNmZYcW4r?=
 =?utf-8?B?UjNmSzFMWkhiaHVOVEJKbmtVQ1hja3JQcGgrTVdGd3dyNExoMzQyMzhGQjVP?=
 =?utf-8?B?R1BNbzNQbWZ5bTFzdThSak5jQnFlek9PRDh4ZzcrVWp3cSs1NVZId1RLT0pL?=
 =?utf-8?B?Wm5GcTFhZXg2b2s1bWFDR1l1cU9qVys5T2xXK0N2aHoxWDdjZkZFazBOaVEv?=
 =?utf-8?B?SjhBWlQ1cEQyZ2JEUDNKQWhseHN2OVpuUldYYlRjMG1ZL0lFNTAwQUFQVVF1?=
 =?utf-8?B?NFVQTUowWitXUWtwb3huZ2wrWUlzKzljZjNMazFUd2tnNG9KZHMzZEJNVVlm?=
 =?utf-8?B?ZmNWd2MrdXJRcU5YMEhYeFBCaGltak5aelRRMmpWakh3aEtoSnJrdVplRGJH?=
 =?utf-8?B?V1QyRndjOE5FcSt5SExyVHlvcXZzTDk1OEhKRy8rTDhlWld0OER0V3FqTDMr?=
 =?utf-8?B?VVUvNVZrdnY0ZW1GT1hrS1NMeGtLVUJaTWRISHNidlJia29FZjlFTGlGVWoy?=
 =?utf-8?B?WEZldDJ4ZkJEVzN6dVpnc2ZFNGVKTklWOUxyUTJyYW0rcHVnNUdRTDZLdnZw?=
 =?utf-8?B?VEV2SG4xVVQ0K1pSaDg2N1BQYkRKWXdwbC9FTjd4VlFNVGFPQk1xd0hCR0tT?=
 =?utf-8?B?Qmt0YXd1RkhidkhlbFR5d1F3Rm1QTkthWTJ2YlFvRUdEajd1b0FsdzR3M1F0?=
 =?utf-8?B?U0lRSnRaQ29xNXdQZWJXaXhXcFZpS1d5bi9jTlVya1FFdUxIVk1GQjB4b3I2?=
 =?utf-8?B?dTNCWGVTOHNuLzhFcXRZVmJNZWg4SXdKbjJ3dXJ5NWU5OFJ3UVJYYWV0cmJQ?=
 =?utf-8?B?dndSQzVXaU1NNnpBdzJxSXZQSUVJRC84TWNjbVZkWFN4Wm10N0NMSURSV3F1?=
 =?utf-8?B?VlFNV0Z5cjVhd2ZtQVdHSkM5bkp4dE5ib2VzSEZvWEptUm83SVQ2MFpSK3NT?=
 =?utf-8?B?TUd4MTBvcld3WnhjLzFuNlpjRERsZVBRQm4rYnRyc0FsWUU5TTRoRzZGWFlI?=
 =?utf-8?B?ZHlLbzNNR2w1WGJIeHduOWtCcTl4OERHYnZuYVdLbkNhY1I5OUZhUEswRVM1?=
 =?utf-8?B?bEJtcjdpM0RUaE16YUNqb29WZy9MZURZNEk2S3QrRHBGNnNYMFhGNmVJVmRV?=
 =?utf-8?B?c0tWSHlKR2lKelNFR0dhZGxJYkJLWkZnQzIzV2FVay9BWXRadDZtc0wxMnpP?=
 =?utf-8?B?Z0lWQk9YYU5Vd3lpaFN5ZGk3emZEVFduUTArWGt3VGtwNjBGc0VXaU41ZlQr?=
 =?utf-8?B?Wld4SHFVaDNxdHhyT3RjdWNPalBWVUFDSllTdloraWYrMTlodm15d2o0dy9a?=
 =?utf-8?B?N2txd1J6dnNQa016M01xZmUwUWZJeHBUbUplL2EwcWxMVysvYkYybzdHekRV?=
 =?utf-8?B?Wks5UDlsRWhVT2xsZFFHZTB0NmZScmhTTHd3cTJQVmxCdFR4OWJHTVJaRFVl?=
 =?utf-8?B?KzhaOUw5QmdZS0ozcmVqM3VJSmE1U1ozUlhZUDBGUEYvOURXbEYwVTBzQlh5?=
 =?utf-8?B?dGs0YURBa3RtbVl5d203YzRxdWhMUXFYck50Q1RrWmxGWWxOd1V5eldCZEdV?=
 =?utf-8?B?NGhhS2NTSGMwNG15Zkp5a1JOVzM1MjRYVDkyQ1BhWGlWdmxzbjA5YTYwcWlx?=
 =?utf-8?B?WnA5VUhYZGVaQi81OG5aRWE1UUtTMWR0Tm4vdm5pMVZYVXhyQWdVbURGbnpl?=
 =?utf-8?Q?OAJTCHwZcfMjW9JX6gmrtn8=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 99c107cf-0793-4461-bc20-08d9b35e04be
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 17:31:03.8607
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: l5/TqKDLbFlMrB2o3d0jfwNIt6Q59+74r66193YgJli0LLdkWvnULCjnNWvVKKbpXjN0aZaU/Z5bMzAV9FLiGA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4297
X-OriginatorOrg: citrix.com

On Mon, Nov 29, 2021 at 12:59:28PM +0000, Anton Belousov wrote:
> This update is done to improve virtual machine stealth from malware. There are AntiVM techniques that use WMI-queries to detect presence of this SMBIOS tables. Example: "https://github.com/LordNoteworthy/al-khaser/blob/master/al-khaser/AntiVM/Generic.cpp"

Aren't there many other hints at whether an OS is running inside of a
VM? I could imagine for example the ACPI tables, the list or models of
exposed devices, or the cpuid data?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 17:42:55 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 17:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234791.407441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkfk-0003Re-VG; Mon, 29 Nov 2021 17:42:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234791.407441; Mon, 29 Nov 2021 17:42:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrkfk-0003RX-Rx; Mon, 29 Nov 2021 17:42:36 +0000
Received: by outflank-mailman (input) for mailman id 234791;
 Mon, 29 Nov 2021 17:42:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K9yz=QQ=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mrkfi-0003RR-T9
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 17:42:34 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb52545a-513b-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 18:42:33 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:39880)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mrkfg-000Q27-oP (Exim 4.95) (return-path <amc96@srcf.net>);
 Mon, 29 Nov 2021 17:42:32 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 5E2E921457;
 Mon, 29 Nov 2021 17:42:32 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb52545a-513b-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <dbba70b3-d811-8f40-f847-d5f310a47c74@srcf.net>
Date: Mon, 29 Nov 2021 17:42:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] x86/boot: Drop incorrect mapping at l2_xenmap[0]
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <20211129172617.12779-1-andrew.cooper3@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <20211129172617.12779-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/11/2021 17:26, Andrew Cooper wrote:
> It has been 4 years since the default load address changed from 1M to 2M, and
> _stext ceased residing in l2_xenmap[0].  We should not be inserting an unused
> mapping.
>
> To ensure we don't create/remove mappings accidentally, loop from 0 and obey
> _PAGE_PRESENT on all entries.
>
> Fixes: 7ed93f3a0dff ("x86: change default load address from 1 MiB to 2 MiB")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
>
> I ought to have spotted this in c/s 52975142d154 ("x86/boot: Create the
> l2_xenmap[] mappings dynamically") too.
> ---
>  xen/arch/x86/setup.c | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index da47cdea14a1..6f241048425c 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1279,16 +1279,12 @@ void __init noreturn __start_xen(unsigned long mbi_p)
>  
>              /* The only data mappings to be relocated are in the Xen area. */
>              pl2e = __va(__pa(l2_xenmap));
> -            /*
> -             * Undo the temporary-hooking of the l1_directmap.  __2M_text_start
> -             * is contained in this PTE.
> -             */
> +
>              BUG_ON(using_2M_mapping() &&
>                     l2_table_offset((unsigned long)_erodata) ==
>                     l2_table_offset((unsigned long)_stext));
> -            *pl2e++ = l2e_from_pfn(xen_phys_start >> PAGE_SHIFT,
> -                                   PAGE_HYPERVISOR_RX | _PAGE_PSE);
> -            for ( i = 1; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
> +
> +            for ( i = 0; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
>              {
>                  unsigned int flags;
>  

Actually, on further consideration, this hunk should be included too, to
cross-check that we don't zap any of the dynamically created mappings.

~Andrew

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 6f241048425c..5c8026b30e3e 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1320,7 +1320,7 @@ void __init noreturn __start_xen(unsigned long mbi_p)
                 }
                 else
                 {
-                    *pl2e = l2e_empty();
+                    ASSERT_UNREACHABLE();
                     continue;
                 }
 



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 18:14:18 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 18:14:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234799.407451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrlAG-0006pS-8P; Mon, 29 Nov 2021 18:14:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234799.407451; Mon, 29 Nov 2021 18:14:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrlAG-0006pL-5P; Mon, 29 Nov 2021 18:14:08 +0000
Received: by outflank-mailman (input) for mailman id 234799;
 Mon, 29 Nov 2021 18:14:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Lt1X=QQ=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1mrlAE-0006pF-FG
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 18:14:06 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 209d4276-5140-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 19:14:03 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by sin.source.kernel.org (Postfix) with ESMTPS id CC2BFCE13C6;
 Mon, 29 Nov 2021 18:13:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77001C53FAD;
 Mon, 29 Nov 2021 18:13:57 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 209d4276-5140-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1638209638;
	bh=F+WfkWfrxxnIhMlyNpExanRvNwfWDNap8xamGA8a5cQ=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=UsVPD6/9hEJi2Btrc/oHhwFMXnhqB/92eu2VqHUUMVsw0cp/4CJYCiDQA5nb+N0q+
	 VWOWgLa1XeFLdpQ1SA97eCHCPazkXapcTUGfJLYCpE523uX2W4W6dfBSCk4bL6vTID
	 YZQ0tkYoz3gfOb3KGP29UVFxdvcBir/ONFif0FWY=
Date: Mon, 29 Nov 2021 19:13:55 +0100
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Juergen Gross <jgross@suse.com>
Cc: "stable@vger.kernel.org" <stable@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Stable backports of Xen related patches
Message-ID: <YaUYYzzPR5p7ePZU@kroah.com>
References: <bb28bab1-eb2e-0dde-3a59-6b5c25e3744d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <bb28bab1-eb2e-0dde-3a59-6b5c25e3744d@suse.com>

On Mon, Nov 29, 2021 at 04:15:31PM +0100, Juergen Gross wrote:
> Hi Greg,
> 
> attached are git bundles for some patches you merged into the 5.10
> stable kernel already this morning.
> 
> Naming should be obvious, the patches are on the branch "back" in
> each bundle.

All now queued up, thanks!

greg k-h


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 19:17:12 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 19:17:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234808.407463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrm8y-0004Qg-Sf; Mon, 29 Nov 2021 19:16:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234808.407463; Mon, 29 Nov 2021 19:16:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrm8y-0004QZ-P4; Mon, 29 Nov 2021 19:16:52 +0000
Received: by outflank-mailman (input) for mailman id 234808;
 Mon, 29 Nov 2021 19:16:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=le4t=QQ=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mrm8x-0004QT-Et
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 19:16:51 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060f.outbound.protection.outlook.com
 [2a01:111:f400:7eab::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5729ba0-5148-11ec-976b-d102b41d0961;
 Mon, 29 Nov 2021 20:16:48 +0100 (CET)
Received: from DM6PR06CA0083.namprd06.prod.outlook.com (2603:10b6:5:336::16)
 by DM6PR02MB4794.namprd02.prod.outlook.com (2603:10b6:5:17::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Mon, 29 Nov
 2021 19:16:44 +0000
Received: from DM3NAM02FT061.eop-nam02.prod.protection.outlook.com
 (2603:10b6:5:336:cafe::30) by DM6PR06CA0083.outlook.office365.com
 (2603:10b6:5:336::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.19 via Frontend
 Transport; Mon, 29 Nov 2021 19:16:44 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 DM3NAM02FT061.mail.protection.outlook.com (10.13.4.230) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4734.20 via Frontend Transport; Mon, 29 Nov 2021 19:16:44 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 29 Nov 2021 19:16:42 +0000
Received: from smtp.xilinx.com (172.21.105.198) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 29 Nov 2021 19:16:42 +0000
Received: from [10.108.8.223] (port=40822 helo=xcbayankuma41x.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mrm8n-00067u-R4; Mon, 29 Nov 2021 19:16:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5729ba0-5148-11ec-976b-d102b41d0961
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KnmwO0kEaw9GyVGuiG8umVeoPo3302eZmQWqHXnarw4RBrqHwCkAXAozZBRDRwYM7zWgKbVGjuRk9IwEcOTso/maQKrHbKlnRSOjGxo8VyUV2CrrUtbWRx4N6uYkfsfWLBCG+CDEeBewhwjn5s9LtbXt3CX15VqmK7hRAQ2fnBXtYNNbJffpTc7o6XiOTYGOuFeHAp2StUC+0o01ykGfdnIiPVNUU4mVa83dIiifDSG+uX7ZAJWy5rhbGc3iQuSPH3ApYWsQ2bfyifQfZRY2XdyNwhmHKfd0FW0baM/5mqk+RP+kMR4+jc36ircS0NY6glECJeCrcsFw92ESQ48Rgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1mAyvRmEvgJ+jEOL3aCu6glvVEt/d4ifQ8eMCvViurc=;
 b=PSdluDPQr/vnENxkEPj70h+TKdVLUWQh92M2Lm48p7qnWTRivgzrxSKpdswATrYCfegNN7evSy82ePL/AJGOZUcLYra/2hnlRUf4y8vfi5Da09zoYsD5TT/xu0FVvpCxB8u7HKgrau0btpD+K7luY0FyU+v6vAo7gc9Elo2nrtQDcvD6R7Tbhulmuy8biDvz6UUuM0qNZXh7/QRpzTof0hPi1tiwXlaeuBsOcBGOzl6lKs9UgjzYOXQfU6K9w2vjTg26ji4DXJC/7s7uLeo2paP5KfXgpd8luZrddCy/IvIIqZPbrzZ0kpMoJSKw1b8CkSOqjJ/e/oswAoIq6PHE/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1mAyvRmEvgJ+jEOL3aCu6glvVEt/d4ifQ8eMCvViurc=;
 b=KG6VZ1rTvXi9G2ZEBwP8XqBq1TL/Vb8LScG6q+Bl8t9yCq3OsdbkwSO47kLqG/jcWAZ6EbIbIKMiRuSfEJtu+wDvaWOAVW8MxhI8yqRs6iumta6z8LCiTkVopWa17HLQoFv0LgzolbCacScdIEdkZONsPW4AWVrcGMmSXSI/RYA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <stefanos@xilinx.com>, <julien@xen.org>,
	<Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<andre.przywara@arm.com>, <jbeulich@suse.com>, Ayan Kumar Halder
	<ayankuma@xilinx.com>
Subject: [XEN v2] xen/arm64: io: Decode 32-bit ldr/str post-indexing instructions
Date: Mon, 29 Nov 2021 19:16:38 +0000
Message-ID: <20211129191638.19877-1-ayankuma@xilinx.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 98830770-7562-4825-2884-08d9b36cc80f
X-MS-TrafficTypeDiagnostic: DM6PR02MB4794:
X-Microsoft-Antispam-PRVS:
	<DM6PR02MB47940F43C5770B08A66C5808B2669@DM6PR02MB4794.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	46F+fYslL+Ak+hav5XKF9KrCN3EqrKckzyonLftpblYNc+kbZLAgnPDtvcyemimCFOtK7AxyXg1UUmGiY1C4d/JgA8ycT7oqbeVqhjWGDwo/Oh37X4R7/g8mdUh9T5ak+M7Jc0VFPILfdTtKfuIft3s8VgadiF8PzU0GzdUyejSDAck6yDtNzHyAdBOrC3q8muYWjAwCOpNwPTRj9HcLMAYTTu1cABDJB4jl1v1EWR0i40ZHR8lnqj2jz7LgKOTuDQdlPeiH7pJTVd4Yceg+FVHv8IQwoftAP1Acd1xRTA8lOm7s5P4+dEOO5JlMyYwYF9G1PUHVO9vowWQ0xfuxsQQZJ3aDExHmEU0ToSgo8r+yaM3lldQDU9yo7dNmDECQJZKD+1h7KNhUFnkqoDrNYWCwG1RjBLFuk13wJgDsksXW8gbHQrkGy1PREyTo2TrfNdeV1dIJzb+49T9rK6fzwCLFBTBeBbzR5RoKLuP+5KpKvK25qFp3SIyfR4HzfsOF8LcjWBWhxnLj5xsx+0rte5w9ll1krIWDKOrjh3aHpP3Kp6YIStd+hlQme0FErc8HEBiYCy7DgKzJO15ydZ+vZfB+ztHZgQmD5D1ZwIKZondJLpimJF1AsF4qBOx/QpRC9A+2E5Jaklver7m2yy8A+aV4wqg9rmi16yDHzmby4Um+tznmYQz7R1rj41+YiIyDwCuU7wLjq+l3qgbM8/IEX9nBd1a7CNiv4zUjahv+73U=
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(2906002)(36860700001)(83380400001)(82310400004)(7696005)(70586007)(107886003)(4326008)(47076005)(1076003)(54906003)(70206006)(7636003)(2616005)(356005)(186003)(508600001)(5660300002)(9786002)(8936002)(426003)(6666004)(36756003)(6916009)(26005)(316002)(8676002)(336012)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 19:16:44.1693
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 98830770-7562-4825-2884-08d9b36cc80f
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT061.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB4794

At the moment, Xen is only handling data abort with valid syndrome (i.e.
ISV=0). Unfortunately, this doesn't cover all the instructions a domain
could use to access MMIO regions.

For instance, Xilinx baremetal OS will use:

        volatile u32 *LocalAddr = (volatile u32 *)Addr;
        *LocalAddr = Value;

This leave the compiler to decide which store instructions to use. This
may be a post-index store instruction where the HW will not provide a
valid syndrome.

In order to handle post-indexing store/load instructions, Xen will need
to fetch and decode the instruction.

This patch only cover post-index store/load instructions from AArch64 mode.
For now, this is left unimplemented for trap from AArch32 mode.

Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
---

Changelog :-

v2 :- 1. Updated the rn register after reading from it. (Pointed by Julien,
 Stefano)
2. Used a union to represent the instruction opcode (Suggestd by Bertrand)
3. Fixed coding style issues (Pointed by Julien)
4. In the previous patch, I was updating dabt->sign based on the signedness of
imm9. This was incorrect. As mentioned in ARMv8 ARM  DDI 0487G.b, Page 3221,
SSE indicates the signedness of the data item loaded. In our case, the data item
loaded is always unsigned.

This has been tested for the following cases :-
ldr x2, [x1], #4

ldr w2, [x1], #-4

str x2, [x1], #4

str w2, [x1], #-4

The reason being  I am testing on 32bit MMIO registers only. I don't see a 8bit
or 16bit MMIO register.

 xen/arch/arm/decode.c     | 68 ++++++++++++++++++++++++++++++++++++++-
 xen/arch/arm/decode.h     |  3 +-
 xen/arch/arm/io.c         | 40 +++++++++++++++++++----
 xen/include/asm-arm/hsr.h | 26 +++++++++++++++
 4 files changed, 129 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
index 792c2e92a7..0b3e8fcbc6 100644
--- a/xen/arch/arm/decode.c
+++ b/xen/arch/arm/decode.c
@@ -84,6 +84,66 @@ bad_thumb2:
     return 1;
 }
 
+static int decode_32bit_loadstore_postindexing(register_t pc,
+                                               struct hsr_dabt *dabt,
+                                               union ldr_str_instr_class *instr)
+{
+    if ( raw_copy_from_guest(&instr->value, (void * __user)pc, sizeof (instr)) )
+        return -EFAULT;
+
+    /* First, let's check for the fixed values */
+    if ( !((instr->code.fixed1 == 1) && (instr->code.fixed2 == 0) &&
+         (instr->code.fixed3 == 0) && (instr->code.fixed4 == 7)) )
+    {
+        gprintk(XENLOG_ERR, "Decoding not supported for instructions other than"
+            " ldr/str post indexing\n");
+        goto bad_32bit_loadstore;
+    }
+
+    if ( instr->code.size != 2 )
+    {
+        gprintk(XENLOG_ERR,
+            "ldr/str post indexing is supported for 32 bit variant only\n");
+        goto bad_32bit_loadstore;
+    }
+
+    if ( instr->code.v != 0 )
+    {
+        gprintk(XENLOG_ERR,
+            "ldr/str post indexing for vector types are not supported\n");
+        goto bad_32bit_loadstore;
+    }
+
+    /* Check for STR (immediate) - 32 bit variant */
+    if ( instr->code.opc == 0 )
+    {
+        dabt->write = 1;
+    }
+    /* Check for LDR (immediate) - 32 bit variant */
+    else if ( instr->code.opc == 1 )
+    {
+        dabt->write = 0;
+    }
+    else
+    {
+        gprintk(XENLOG_ERR,
+            "Decoding ldr/str post indexing is not supported for this variant\n");
+        goto bad_32bit_loadstore;
+    }
+
+    gprintk(XENLOG_INFO,
+        "instr->code.rt = 0x%x, instr->code.size = 0x%x, instr->code.imm9 = %d\n",
+        instr->code.rt, instr->code.size, instr->code.imm9);
+
+    update_dabt(dabt, instr->code.rt, instr->code.size, false);
+    dabt->valid = 1;
+
+    return 0;
+bad_32bit_loadstore:
+    gprintk(XENLOG_ERR, "unhandled 32bit Arm instruction 0x%x\n", instr->value);
+    return 1;
+}
+
 static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
 {
     uint16_t instr;
@@ -150,11 +210,17 @@ bad_thumb:
     return 1;
 }
 
-int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt *dabt)
+int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt *dabt,
+                       union ldr_str_instr_class *instr)
 {
     if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
         return decode_thumb(regs->pc, dabt);
 
+    if ( (is_64bit_domain(current->domain) && !psr_mode_is_32bit(regs)) )
+    {
+        return decode_32bit_loadstore_postindexing(regs->pc, dabt, instr);
+    }
+
     /* TODO: Handle ARM instruction */
     gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
 
diff --git a/xen/arch/arm/decode.h b/xen/arch/arm/decode.h
index 4613763bdb..d82fc4a0f6 100644
--- a/xen/arch/arm/decode.h
+++ b/xen/arch/arm/decode.h
@@ -35,7 +35,8 @@
  */
 
 int decode_instruction(const struct cpu_user_regs *regs,
-                       struct hsr_dabt *dabt);
+                       struct hsr_dabt *dabt,
+                       union ldr_str_instr_class *instr);
 
 #endif /* __ARCH_ARM_DECODE_H_ */
 
diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
index 729287e37c..0d60754bc4 100644
--- a/xen/arch/arm/io.c
+++ b/xen/arch/arm/io.c
@@ -65,6 +65,16 @@ static enum io_state handle_write(const struct mmio_handler *handler,
     return ret ? IO_HANDLED : IO_ABORT;
 }
 
+static void post_incremenet_register(union ldr_str_instr_class *instr)
+{
+    struct cpu_user_regs *regs = guest_cpu_user_regs();
+    unsigned int val;
+
+    val = get_user_reg(regs, instr->code.rn);
+    val += instr->code.imm9;
+    set_user_reg(regs, instr->code.rn, val);
+}
+
 /* This function assumes that mmio regions are not overlapped */
 static int cmp_mmio_handler(const void *key, const void *elem)
 {
@@ -106,14 +116,26 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
         .gpa = gpa,
         .dabt = dabt
     };
+    int rc;
+    union ldr_str_instr_class instr = {0};
 
     ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
 
+    /*
+     * Armv8 processor does not provide a valid syndrome for post-indexing
+     * ldr/str instructions. So in order to process these instructions,
+     * Xen must decode them.
+     */
+    if ( !info.dabt.valid )
+    {
+        rc = decode_instruction(regs, &info.dabt, &instr);
+        if ( rc )
+            return IO_ABORT;
+    }
+
     handler = find_mmio_handler(v->domain, info.gpa);
     if ( !handler )
     {
-        int rc;
-
         rc = try_fwd_ioserv(regs, v, &info);
         if ( rc == IO_HANDLED )
             return handle_ioserv(regs, v);
@@ -122,7 +144,7 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
     }
 
     /* All the instructions used on emulated MMIO region should be valid */
-    if ( !dabt.valid )
+    if ( !info.dabt.valid )
         return IO_ABORT;
 
     /*
@@ -134,7 +156,7 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
     {
         int rc;
 
-        rc = decode_instruction(regs, &info.dabt);
+        rc = decode_instruction(regs, &info.dabt, NULL);
         if ( rc )
         {
             gprintk(XENLOG_DEBUG, "Unable to decode instruction\n");
@@ -143,9 +165,15 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
     }
 
     if ( info.dabt.write )
-        return handle_write(handler, v, &info);
+        rc = handle_write(handler, v, &info);
     else
-        return handle_read(handler, v, &info);
+        rc = handle_read(handler, v, &info);
+
+    if ( instr.value != 0 )
+    {
+        post_incremenet_register(&instr);
+    }
+    return rc;
 }
 
 void register_mmio_handler(struct domain *d,
diff --git a/xen/include/asm-arm/hsr.h b/xen/include/asm-arm/hsr.h
index 9b91b28c48..72d67d2801 100644
--- a/xen/include/asm-arm/hsr.h
+++ b/xen/include/asm-arm/hsr.h
@@ -15,6 +15,32 @@ enum dabt_size {
     DABT_DOUBLE_WORD = 3,
 };
 
+/*
+ * Refer to the ARMv8 ARM (DDI 0487G.b), Section C4.1.4 Loads and Stores
+ * Page 318 specifies the following bit pattern for
+ * "load/store register (immediate post-indexed)".
+ *
+ * 31 30 29  27 26 25  23   21 20              11   9         4       0
+ * ___________________________________________________________________
+ * |size|1 1 1 |V |0 0 |opc |0 |      imm9     |0 1 |  Rn     |  Rt   |
+ * |____|______|__|____|____|__|_______________|____|_________|_______|
+ */
+union ldr_str_instr_class {
+    uint32_t value;
+    struct ldr_str {
+        unsigned int rt:5;     /* Rt register */
+        unsigned int rn:5;     /* Rn register */
+        unsigned int fixed1:2; /* value == 01b */
+        int imm9:9;            /* imm9 */
+        unsigned int fixed2:1; /* value == 0b */
+        unsigned int opc:2;    /* opc */
+        unsigned int fixed3:2; /* value == 00b */
+        unsigned int v:1;      /* vector */
+        unsigned int fixed4:3; /* value == 111b */
+        unsigned int size:2;   /* size */
+    } code;
+};
+
 union hsr {
     register_t bits;
     struct {
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 19:25:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 19:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234816.407474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrmGq-0005yA-SL; Mon, 29 Nov 2021 19:25:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234816.407474; Mon, 29 Nov 2021 19:25:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrmGq-0005y3-OX; Mon, 29 Nov 2021 19:25:00 +0000
Received: by outflank-mailman (input) for mailman id 234816;
 Mon, 29 Nov 2021 19:24:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=le4t=QQ=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mrmGp-0005xx-3y
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 19:24:59 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2060d.outbound.protection.outlook.com
 [2a01:111:f400:fe59::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 08e56a05-514a-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 20:24:57 +0100 (CET)
Received: from DM6PR02CA0040.namprd02.prod.outlook.com (2603:10b6:5:177::17)
 by SA1PR02MB8574.namprd02.prod.outlook.com (2603:10b6:806:1fa::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov
 2021 19:24:53 +0000
Received: from DM3NAM02FT003.eop-nam02.prod.protection.outlook.com
 (2603:10b6:5:177:cafe::2c) by DM6PR02CA0040.outlook.office365.com
 (2603:10b6:5:177::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Mon, 29 Nov 2021 19:24:52 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (149.199.80.198) by
 DM3NAM02FT003.mail.protection.outlook.com (10.13.4.168) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4734.20 via Frontend Transport; Mon, 29 Nov 2021 19:24:52 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 29 Nov 2021 19:24:51 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 29 Nov 2021 19:24:51 +0000
Received: from [10.71.119.80] (port=25136)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mrmGa-00062J-3j; Mon, 29 Nov 2021 19:24:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 08e56a05-514a-11ec-b941-1df2895da90e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NJVhzEP3Bi/Lg/jqg0UYzRazqRHKbX7LO8BcYeTI/2tlM0/L2qgsKUoWxUntMvNufQT8EDZIw5SRNVNEczZOWCI7YhLjz3UbzTuPLgTma8YQL0srhg4BAzbJoVQMPqMXfKAYDFPP4hgY2yVSn1g72ynxJAoXEQVk0B6uV4X1To4LPERdAAYomrAd5jS3beZhzN1kyZJi50X7zVZqVsBMU+iK4NnwtW/Hg3MFRdM8qIzV64BLXw7Le2DLoR4MyyvsmCdgqYOR07uiG2FyjUcnVb5C5NYF9gPQHWypcD60rosazFWUp4TzBtGXVIFnB31JadTuf10dWSrFpta+PVzk4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wEDP4xPMkvRndMj75mi0OiNjmr4A32Gzx6+HAepgcB0=;
 b=R3XKekTNhuxH1hmYK8oGtEgM3a65cjKSYzSBQaQV6kJ2qlgLag27gXCUiUt7l4vPCagg8xuLxsNpjHGS+BeoScmVsXo91orW6Sh9naPr5fD/BMO+wAzrYCAd+urLfqoYZYLlIJ+s1moYPsXskjgN55KiMWRjXQQN6WQaBLOK4saR9ZiZ84i5bfxc69/vqcJnu5yxd1/2XHxziheprWa5gzIhb299N+R1rscg7/jLF6L1wNZlc7V5nx9LZg+9u7z96EYWRDXreS9W1eyekMPuFyyH6yQkHeRhhRQjp/a1i/4aNmJXR8LLIkIBePGNNU/X5lZmkvT4szNCvdyqa0HrJQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=arm.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wEDP4xPMkvRndMj75mi0OiNjmr4A32Gzx6+HAepgcB0=;
 b=U1BwwVFRCzQIkFC+QKi3f4Xc8YhF6VIrMLsJEQr9824l8hq5kYa+EqfEJnmcE89665R9m1W9A7IRFrTS9RTzMoCqr9LaA6nFSzG9O3XN6n7UXiHupfDNelMt/AXoAgb3HPkEXgL3GBl/hgBXqQRoAb+98NtNbzeS3OK72Wdp7Z0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch02.xlnx.xilinx.com;
Message-ID: <7a655592-5954-7593-a155-537292897294@xilinx.com>
Date: Mon, 29 Nov 2021 19:24:43 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [RFC PATCH] Added the logic to decode 32 bit ldr/str
 post-indexing instructions
To: Andre Przywara <andre.przywara@arm.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>
CC: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<stefano.stabellini@xilinx.com>, <julien@xen.org>,
	<Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<rahul.singh@arm.com>
References: <20211119165202.42442-1-ayankuma@xilinx.com>
 <20211126131459.2bbc81ad@donnerap.cambridge.arm.com>
 <5d72345d-3236-0fa6-24fc-652385f41b54@xilinx.com>
 <20211126173937.2d28c47d@donnerap.cambridge.arm.com>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <20211126173937.2d28c47d@donnerap.cambridge.arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4bf1d412-6fc6-4e55-e8ae-08d9b36deb2c
X-MS-TrafficTypeDiagnostic: SA1PR02MB8574:
X-Microsoft-Antispam-PRVS:
	<SA1PR02MB8574E901D246407ADD997206B2669@SA1PR02MB8574.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	SvXEonasvW3BAC+9DXypFbeCjwuYYSNld8ieXmOzIhBKseAK87MfrTOLp8ls06pE27yZUoMqzx7lCu/Xr07HD8naFKMGteUUgUbt4RnsOIebN7s3w9rItuVhNsGkjNiLx+ELG6HwweYah4RSIhDA7GeBDNZmY/6cZVJC1JRR7AoGIQkV8AdChdPkxuiRLSMfQ7ehbFPJ+6exrNG1s27Da8hjblgUbZrHGtByUp2z4dS+j3241enVo6P9n2sm4Gp64KMMEJqopQaJOHBuHOwAcPhoLvsUNclmGcFilGJZyj99zomsv3Qf5fKSwXIE2SSew9qPYEmOWXAY2DvI69Re59APrdx09OQEGJOZkKKWzbqNrVJ4qVO1WKW/JJ2E7GJaHwcaqLnQ+shnPQpQXghEA3uF7VVVekWEiX3cKriMItzHMzMXlIeaeIMDvIsBoIxe+1HJAu5YwB1U18BJvoY6NKMuq6u6x32L00WceuyNmmkXZTcutfYZJiHLKhGkPxowFKrCsWnNvEZwnRY84VrOh11xxrHU5uDD3MlrA7HxtU3P1bidDCx+UDM999F4tMy385ojorE4z5EAmeVp3xmvjYwQq2I7HDi0DHwJnkd4+YgNktdx4DMnvwjRGCm1v89+NeGa8o1Vni1SM28DVhDEJxbp7DO/eAJXB5jGKFiqlbjWuRsLmO70b7qwWVVMd+5AGmphFQGHnTprFDq7g8N4u8FWq7wa9WHYnzxlqkoBP1blwODMtDE8Vx7QaW+qumUowb8RAAQ2gZOiXC9pDsdUvF9Ahkshhq9g3CcCvYYJLnRbcV2SLee0a5nd3Yu+2MUIYfOjeQTKZJ4WwOxU49HekY8gIGQew846yyIIthekkW2xYAeZcipJOpPImnARzIzN
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch02.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(47076005)(8676002)(508600001)(2616005)(336012)(54906003)(70206006)(36860700001)(26005)(9786002)(356005)(110136005)(36756003)(31686004)(7636003)(83380400001)(70586007)(966005)(4326008)(30864003)(8936002)(53546011)(186003)(426003)(6666004)(2906002)(82310400004)(5660300002)(316002)(31696002)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 19:24:52.5832
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4bf1d412-6fc6-4e55-e8ae-08d9b36deb2c
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT003.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR02MB8574

Hi All,

Thanks for giving your inputs.

On 26/11/2021 17:39, Andre Przywara wrote:
> On Fri, 26 Nov 2021 15:28:06 +0000
> Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
> 
> Hi Ayan,
> 
>> Many thanks for your inputs.
>> Apologies if I sound dumb, but I need a few clarifications.
>>
>> On 26/11/2021 13:14, Andre Przywara wrote:
>>> On Fri, 19 Nov 2021 16:52:02 +0000
>>> Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
>>>
>>> Hi,
>>>    
>>>> At present, post indexing instructions are not emulated by Xen.
>>>> When Xen gets the exception, EL2_ESR.ISV bit not set. Thus as a
>>>> result, data abort is triggered.
>>>>
>>>> Added the logic to decode ldr/str post indexing instructions.
>>>> With this, Xen can decode instructions like these:-
>>>> ldr w2, [x1], #4
>>>> Thus, domU can read ioreg with post indexing instructions.
>>>
>>> Where do those instructions come from? A (C) compiler? (Some mail in
>>> another thread from Stefano suggests so)
>>> If yes, I would argue that is broken:
>>> IIUC C compilers assume normal memory attributes for every pointer they
>>> handle, so they are free to use unaligned accesses, load/store exclusives,
>>> split accesses (two halfword reads) and what not when generating code.
>>> The GIC needs to be mapped as device memory, which explicitly forbids
>>> unaligned accesses and exclusives (as in: always traps), so you cannot let
>>> compiler-generated code access the GIC (or most other MMIO devices, for
>>> that matter).
>>> I know, this somewhat works(TM) in practise, because a uint32_t assignment
>>> is very likely to end up in an ldr/str, but please let me know which car
>>> this code ends up in, so that can I avoid this brand ;-)
>>>
>>> You can tell the compiler to avoid unaligned accesses with -mstrict-align
>>> (and should definitely do so when you are running C code with the MMU
>>> off), but that still leaves exclusives and split accesses at the
>>> compiler's discretion. A variation on the topic of split access is merged
>>> writes, where the compiler uses NEON or SVE instructions, for instance, to
>>> cover multiple words at once, possibly via some memset()/memcpy() routine.
>>
>> I understand that we should be using inline assembly instructions to
>> access any MMIO region. This is to prevent the compiler doing any tricks.
>>
>> But is there a restriction that post indexing instructions can never be
>> used to access MMIO region ?
> 
> No, this is a pure virtualisation restriction, see below. On real
> hardware/bare-metal, ldr/str with post or pre-indexing works and is fine
> to use for MMIO.
> But we need to have the right access width, matching the MMIO device's
> expectation. So ldp/stp would probably be problematic, for instance.
> 
>>> On top there is this architectural restriction of the ARMv7/v8
>>> virtualisation extension to not decode many "advanced" load/store
>>> instructions in ESR_EL2.
>> Where do I find this restriction ?
> 
> That's described in the ESR_ELx syndrome description in the ARMv8 ARM (DDI
> 0487G.b), section "ISS encoding for an exception from a Data Abort" (page
> D13-3219 in my Issue G.b copy):
> "For other faults reported in ESR_EL2, ISV is 0 except for the following stage 2 aborts: ...."
> 
>> Are you telling me that load/store with post indexing is an "advanced"
>> instruction and ArmV8 does not allow decoding of these instructions in
>> ESR_EL2 ?
> 
> Yes, it is in the group of instructions for which the hardware does not
> provide syndrome information in ESR_EL2: " .... but excluding Load
> Exclusive or Store Exclusive and excluding those with writeback)."
> 
>> Isn't that a very strong limitation ?
> 
> I don't know about that, it's what it is and what it was for years. Linux
> deliberately chose ldr/str only for readl/writel to be able to trap and
> handle MMIO aborts in hypervisors.
> 
> If you do MMIO accesses the right way, using (inline) assembly only, then
> you don't have the problem, and also avoid many others, see my previous
> mail.
> 
> If you think of it from an architectural and implementation point of view
> (and keep the RISC idea in mind): it should happen rarely, but would
> require many gates for something that you can do in software as well.
> 
>> Also what is your opinion on Xen decoding these instructions ?
> 
> I would be careful, we deliberately avoid this in KVM. This bubbles up
> from time to time, though, so we now allow delegating this case to
> userland, so the VMM can do the decoding there.
> In Xen you have less issues with walking the guest's page tables,
> though (a major problem in KVM), but it still adds complexity to a
> hypervisor which aims to be lean by design.
> Another argument would be that just post/pre does not cover everything, and
> the cases start to pile up quickly: what about the immediate versions,
> ldxr, stp, NEON/SVE load/stores, etc. Since many of those are not safe for
> MMIO anyway, you add a lot of code for little use (and which gets little
> testing!).

Many thanks for your explanation. It makes some sense. Unfortunately, I 
don't have much experience with hypervisors. So I will rely on you and 
other experts opinions on this. :)

I have sent out a v2 patch "[XEN v2] xen/arm64: io: Decode 32-bit 
ldr/str post-indexing instructions". Please have a look.

Stefano/Julien/Bertrand/Jan :- Please have a look at my v2 patch and let 
me know if it makes sense to add the decoding logic to Xen or if it 
makes the codebase very complex.

- Ayan

> 
> Cheers,
> Andre
> 
>>> Linux deliberately coded readl/writel using inline assembly, to only
>>> use instructions that provide syndrome information, plus guarantee
>>> device-memory compatible semantics.
>>> Check out https://lwn.net/Articles/698014/ for a comprehensive
>>> discussion of this whole MMIO topic.
>>>
>>> So I think you should do the same in your guest/bare metal code: define
>>> {read,write}{b,h,l,q} as inline assembly functions, using ldr?/str?
>>> only. See xen/include/asm-arm/arm64/io.h for an example that uses
>>> static inline functions in a header file, to generate most optimal
>>> code. Then always do MMIO only via those accessors. That prevents any
>>> future compiler surprises, plus makes you perfectly virtualisable.
>>>
>>> Cheers,
>>> Andre.
>>>    
>>>> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
>>>> ---
>>>> Note to reviewer:-
>>>> This patch is based on an issue discussed in
>>>> https://lists.xenproject.org/archives/html/xen-devel/2021-11/msg00969.html
>>>> "Xen/ARM - Query about a data abort seen while reading GICD registers"
>>>>
>>>>
>>>>    xen/arch/arm/decode.c | 77
>>>> +++++++++++++++++++++++++++++++++++++++++++ xen/arch/arm/io.c     |
>>>> 14 ++++++-- 2 files changed, 88 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
>>>> index 792c2e92a7..7b60bedbc5 100644
>>>> --- a/xen/arch/arm/decode.c
>>>> +++ b/xen/arch/arm/decode.c
>>>> @@ -84,6 +84,80 @@ bad_thumb2:
>>>>        return 1;
>>>>    }
>>>>    
>>>> +static inline int32_t extract32(uint32_t value, int start, int
>>>> length) +{
>>>> +    int32_t ret;
>>>> +
>>>> +    if ( !(start >= 0 && length > 0 && length <= 32 - start) )
>>>> +        return -EINVAL;
>>>> +
>>>> +    ret = (value >> start) & (~0U >> (32 - length));
>>>> +
>>>> +    return ret;
>>>> +}
>>>> +
>>>> +static int decode_64bit_loadstore_postindexing(register_t pc, struct
>>>> hsr_dabt *dabt) +{
>>>> +    uint32_t instr;
>>>> +    int size;
>>>> +    int v;
>>>> +    int opc;
>>>> +    int rt;
>>>> +    int imm9;
>>>> +
>>>> +    /* For details on decoding, refer to Armv8 Architecture
>>>> reference manual
>>>> +     * Section - "Load/store register (immediate post-indexed)", Pg
>>>> 318
>>>> +    */
>>>> +    if ( raw_copy_from_guest(&instr, (void * __user)pc, sizeof
>>>> (instr)) )
>>>> +        return -EFAULT;
>>>> +
>>>> +    /* First, let's check for the fixed values */
>>>> +
>>>> +    /*  As per the "Encoding table for the Loads and Stores group",
>>>> Pg 299
>>>> +     * op4 = 1 - Load/store register (immediate post-indexed)
>>>> +     */
>>>> +    if ( extract32(instr, 10, 2) != 1 )
>>>> +        goto bad_64bit_loadstore;
>>>> +
>>>> +    /* For the following, refer to "Load/store register (immediate
>>>> post-indexed)"
>>>> +     * to get the fixed values at various bit positions.
>>>> +     */
>>>> +    if ( extract32(instr, 21, 1) != 0 )
>>>> +        goto bad_64bit_loadstore;
>>>> +
>>>> +    if ( extract32(instr, 24, 2) != 0 )
>>>> +        goto bad_64bit_loadstore;
>>>> +
>>>> +    if ( extract32(instr, 27, 3) != 7 )
>>>> +        goto bad_64bit_loadstore;
>>>> +
>>>> +    size = extract32(instr, 30, 2);
>>>> +    v = extract32(instr, 26, 1);
>>>> +    opc = extract32(instr, 22, 1);
>>>> +
>>>> +    /* At the moment, we support STR(immediate) - 32 bit variant and
>>>> +     * LDR(immediate) - 32 bit variant only.
>>>> +     */
>>>> +    if (!((size==2) && (v==0) && ((opc==0) || (opc==1))))
>>>> +        goto bad_64bit_loadstore;
>>>> +
>>>> +    rt = extract32(instr, 0, 5);
>>>> +    imm9 = extract32(instr, 12, 9);
>>>> +
>>>> +    if ( imm9 < 0 )
>>>> +        update_dabt(dabt, rt, size, true);
>>>> +    else
>>>> +        update_dabt(dabt, rt, size, false);
>>>> +
>>>> +    dabt->valid = 1;
>>>> +
>>>> +
>>>> +    return 0;
>>>> +bad_64bit_loadstore:
>>>> +    gprintk(XENLOG_ERR, "unhandled 64bit instruction 0x%x\n", instr);
>>>> +    return 1;
>>>> +}
>>>> +
>>>>    static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>>>>    {
>>>>        uint16_t instr;
>>>> @@ -155,6 +229,9 @@ int decode_instruction(const struct cpu_user_regs
>>>> *regs, struct hsr_dabt *dabt) if ( is_32bit_domain(current->domain)
>>>> && regs->cpsr & PSR_THUMB ) return decode_thumb(regs->pc, dabt);
>>>>    
>>>> +    if ( is_64bit_domain(current->domain) )
>>>> +        return decode_64bit_loadstore_postindexing(regs->pc, dabt);
>>>> +
>>>>        /* TODO: Handle ARM instruction */
>>>>        gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
>>>>    
>>>> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
>>>> index 729287e37c..49e80358c0 100644
>>>> --- a/xen/arch/arm/io.c
>>>> +++ b/xen/arch/arm/io.c
>>>> @@ -106,14 +106,13 @@ enum io_state try_handle_mmio(struct
>>>> cpu_user_regs *regs, .gpa = gpa,
>>>>            .dabt = dabt
>>>>        };
>>>> +    int rc;
>>>>    
>>>>        ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
>>>>    
>>>>        handler = find_mmio_handler(v->domain, info.gpa);
>>>>        if ( !handler )
>>>>        {
>>>> -        int rc;
>>>> -
>>>>            rc = try_fwd_ioserv(regs, v, &info);
>>>>            if ( rc == IO_HANDLED )
>>>>                return handle_ioserv(regs, v);
>>>> @@ -123,7 +122,16 @@ enum io_state try_handle_mmio(struct
>>>> cpu_user_regs *regs,
>>>>        /* All the instructions used on emulated MMIO region should be
>>>> valid */ if ( !dabt.valid )
>>>> -        return IO_ABORT;
>>>> +    {
>>>> +        /*
>>>> +         * Post indexing ldr/str instructions are not emulated by
>>>> Xen. So, the
>>>> +         * ISS is invalid. In such a scenario, we try to manually
>>>> decode the
>>>> +         * instruction from the program counter.
>>>> +         */
>>>> +        rc = decode_instruction(regs, &info.dabt);
>>>> +        if ( rc )
>>>> +            return IO_ABORT;
>>>> +    }
>>>>    
>>>>        /*
>>>>         * Erratum 766422: Thumb store translation fault to Hypervisor
>>>> may
>>>    
> 


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 19:45:25 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 19:45:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234824.407491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrmaL-0008Oa-Ii; Mon, 29 Nov 2021 19:45:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234824.407491; Mon, 29 Nov 2021 19:45:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrmaL-0008OT-Eq; Mon, 29 Nov 2021 19:45:09 +0000
Received: by outflank-mailman (input) for mailman id 234824;
 Mon, 29 Nov 2021 19:45:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=le4t=QQ=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mrmaK-0008ON-5U
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 19:45:08 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20624.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9ea6b4f-514c-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 20:45:07 +0100 (CET)
Received: from SN6PR2101CA0017.namprd21.prod.outlook.com
 (2603:10b6:805:106::27) by BYAPR02MB5880.namprd02.prod.outlook.com
 (2603:10b6:a03:11d::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Mon, 29 Nov
 2021 19:45:01 +0000
Received: from SN1NAM02FT0063.eop-nam02.prod.protection.outlook.com
 (2603:10b6:805:106:cafe::96) by SN6PR2101CA0017.outlook.office365.com
 (2603:10b6:805:106::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.2 via Frontend
 Transport; Mon, 29 Nov 2021 19:45:01 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 SN1NAM02FT0063.mail.protection.outlook.com (10.97.5.98) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4734.20 via Frontend Transport; Mon, 29 Nov 2021 19:45:00 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Mon, 29 Nov 2021 19:44:59 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Mon, 29 Nov 2021 19:44:59 +0000
Received: from [10.108.8.223] (port=56545 helo=xcbayankuma41x.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mrmaA-0006R3-3Z; Mon, 29 Nov 2021 19:44:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9ea6b4f-514c-11ec-b941-1df2895da90e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DqMyGFq2LOMTjD1RI7rduDy21GRUQOo0E4IOEPI0vxcKTvSZdeUeUmzyL5VRogQE+NsFDBvTpuRzanFEMOl+nPkGhmj7yz/f9WW+obpciWDRmo4bPKqeOx0RxRumMXHl0eHnmrk/PmpGE0I0/QmFSMFTmaYm2eNMZ7PVgiMflPB9b8lGUzZEpvOAJ2vYdgJWwdNti/bC7utc9O3ODAElWdzv26egVUxDf4z91fisPA/Nuij4SjORdbBKQCVIQkomD/oAMSRo8NEHtsLGnJX18N9MAxu5HXCYC9NS5c2mgQ71/7//LKTnSayQeqsNDMJZrY+hiauyS56oFqKvSBypEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=D1WywC68EA581AYnU/R7Bcq/tS73rxBUtJBSIVMMoEw=;
 b=G/lJ8JVuj5xaHVAAzFO3z5WhAgTEgXNjFli8yIP7L+xjLTRuW29Hg695Kuis4wgBKIY0ZN9qV1Mk7dhwHyY8zI//mKM1yOD+7QUVDee8j8KUSun8diEqyytC6dXGqzdGHBU2Jg6EpCuL03PRJ88nD7EUKuCq7Zy2T5JlBLdqfC2OzOvpm3Awo62sxBE/XWOVNtwiUsE8XPq8H/cIA4Y/WyAFASObIWfurnXWryyH0fqIxOUbTe0oappyYe9SCLgDvH3wwzqyiiMMzSBBn2vwwGTKRjSJTgEvH1O+hUyfuwVoUlQb+HjWaDX/us9XUyihW/PDe4n3xdI8NOBo+54auQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=D1WywC68EA581AYnU/R7Bcq/tS73rxBUtJBSIVMMoEw=;
 b=ARhEXagzsymxUuWDM7Scu459UkPjccSFR08psdz0bSWvF5tCP1xK+woYY04wriwIA3RNbhZyt4djh2t9FSHj58q1lvgODKwwT8ASB0k7jq9IFMf3dy8xhxx1dYEX29XSicfrv2tuMRHE5I+T/juBZOnrkPEC5qa9Y8yQ/jR+Ydc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <stefanos@xilinx.com>, <julien@xen.org>,
	<Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<jbeulich@suse.com>, Ayan Kumar Halder <ayankuma@xilinx.com>
Subject: [PATCH] Fixed an incorrect value
Date: Mon, 29 Nov 2021 19:44:50 +0000
Message-ID: <20211129194450.62467-1-ayankuma@xilinx.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 55213599-7dd7-43be-45ce-08d9b370bb32
X-MS-TrafficTypeDiagnostic: BYAPR02MB5880:
X-Microsoft-Antispam-PRVS:
	<BYAPR02MB588008ACB82608A01723F25CB2669@BYAPR02MB5880.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:2043;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	VJrGttyGYlvy/UrakmUb5IFyDkrjOOowwOiHh+ygOMkqlvo+n9Q09NzTVEXjlZSaPUcC2kMf2lbjiipcEFutJd1F43Hqj5x/aDPMF8F2AJih13rj1Hf1ApOI4CqBgkUznj8Khfi4SKWmABQ6hluCqOgsBrx5fJEY0Ik/iYnaGUFpYlnw5XU7Wn/+RkGPCuAznAsTQDYteJZfs9714wCL1uYJJTOM3zw+xl747RP8CD0XzFiq/WyKizNTQwwwI2ywynQDty419cq11OVN00QiBrQxf1UOeYT8CQER89+vJK32OG3JgxfsEsrduZy9uhL4MI4p9ad64q4rn409qT07vxvg8QjfpV5WgQsIAqklKnP81qYYtXMYUu2q8Eykm3dMUO/aCjEYyOn9SJIhoeOyn7sUDgLbkWJQ6FSxTKn5GH0qxB8lubX8RA9uMmNGZRSZDkNNu4wLoYvAdOn5ep/BSXCU6QM0R8tpUmiUOdjtDSsgDeBpGddy4Qdhjp+kdMIBJhTsbbPDzslYSkPT2WYDU0z6oU3LVjtxlcziyiRgMxCJ5RLJiprWc3yZemBfkPmD61nViRi8bWuIqZvYEHe0l+qkgAWn75ufLnJQTlyo7U7KM/3V1KH0dauoCgDiiFi2KG7bxyr6AloBcq7o86s0HmXovXTjM2QSWxvZp8eCsABUSl/k5yJM3FaKGQeXK0xHBaeaum6JgLxQQfuJezsEeCZlSLXLnpjNFXEJJllTWD0=
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(6916009)(107886003)(82310400004)(47076005)(54906003)(4744005)(356005)(6666004)(8676002)(336012)(1076003)(70206006)(508600001)(5660300002)(8936002)(426003)(36860700001)(7696005)(70586007)(316002)(7636003)(9786002)(83380400001)(2906002)(186003)(26005)(2616005)(36756003)(4326008)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 19:45:00.5290
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 55213599-7dd7-43be-45ce-08d9b370bb32
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0063.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR02MB5880

GENMASK(30, 21) should be 0x07fe00000

Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
---

 xen/include/xen/bitops.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/xen/bitops.h b/xen/include/xen/bitops.h
index a64595f68e..2c8522d218 100644
--- a/xen/include/xen/bitops.h
+++ b/xen/include/xen/bitops.h
@@ -5,7 +5,7 @@
 /*
  * Create a contiguous bitmask starting at bit position @l and ending at
  * position @h. For example
- * GENMASK(30, 21) gives us the 32bit vector 0x01fe00000.
+ * GENMASK(30, 21) gives us the 32bit vector 0x07fe00000.
  */
 #define GENMASK(h, l) \
     (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 29 20:12:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 20:12:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234830.407501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrn0w-0003Hh-Li; Mon, 29 Nov 2021 20:12:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234830.407501; Mon, 29 Nov 2021 20:12:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrn0w-0003Ha-In; Mon, 29 Nov 2021 20:12:38 +0000
Received: by outflank-mailman (input) for mailman id 234830;
 Mon, 29 Nov 2021 20:12:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrn0v-0003HQ-0P; Mon, 29 Nov 2021 20:12:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrn0u-0000cl-RY; Mon, 29 Nov 2021 20:12:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrn0u-0007qJ-G4; Mon, 29 Nov 2021 20:12:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrn0u-0005yJ-FX; Mon, 29 Nov 2021 20:12:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qVdjZ4IPe6iWUPM1ckz1GYtekQgeHPRrPSVDuPVAUPY=; b=a3lJDHiaL0NNA86pc7mDr3zgu4
	OKkvsEzU0xW3yZVsNUWd2DAWcsj6ieZdti9++qUNgqFCL8+D9FpqxfIsE5FOK5IBBm1sMtZaGO0ES
	R9DRfBq31grliHlgzpLWHOQUFP8+u2IZu+P1eHLlcuvGcPnaQcbvtJaBfWXaTIN1u/Hk=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166952-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166952: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=e750c10167fa8ad3fcc98236a474c46e52e7c18c
X-Osstest-Versions-That:
    qemuu=dd4b0de45965538f19bb40c7ddaaba384a8c613a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Nov 2021 20:12:36 +0000

flight 166952 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166952/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat    fail  like 166948
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166950
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166950
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166950
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166950
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166950
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166950
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166950
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166950
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 qemuu                e750c10167fa8ad3fcc98236a474c46e52e7c18c
baseline version:
 qemuu                dd4b0de45965538f19bb40c7ddaaba384a8c613a

Last test of basis   166950  2021-11-29 07:36:32 Z    0 days
Testing same since   166952  2021-11-29 14:09:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Bennée <alex.bennee@linaro.org>
  Alexander Graf <agraf@csgraf.de>
  Peter Maydell <peter.maydell@linaro.org>
  Richard Henderson <richard.henderson@linaro.org>
  Shashi Mallela <shashi.mallela@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   dd4b0de459..e750c10167  e750c10167fa8ad3fcc98236a474c46e52e7c18c -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Mon Nov 29 21:39:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Nov 2021 21:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234840.407519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mroML-0002tX-B3; Mon, 29 Nov 2021 21:38:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234840.407519; Mon, 29 Nov 2021 21:38:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mroML-0002tQ-83; Mon, 29 Nov 2021 21:38:49 +0000
Received: by outflank-mailman (input) for mailman id 234840;
 Mon, 29 Nov 2021 21:38:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pv+C=QQ=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1mroMJ-0002tK-Mq
 for xen-devel@lists.xenproject.org; Mon, 29 Nov 2021 21:38:48 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb0a0fca-515c-11ec-b941-1df2895da90e;
 Mon, 29 Nov 2021 22:38:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb0a0fca-515c-11ec-b941-1df2895da90e
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1638221925;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=sTsTXZmVNEttdKActcp/MQ79Sqm2VlTHeENYuk8KrhE=;
	b=ILyfVKGE5UZvmRThsq5XEtpixIVIivrUSBAXm+humQHTDLzWIKEX4H8+4OD+aeIfZ4DV92
	9T+62U6FIpWYIpoyRwMMumiAWctcb/I9yr1yNfsu8sRnZChwXIMAcSaHOA+Rqc6gRrobwk
	VD1hPi2gr2//sF+SQuC4nahdGSaDafaDW7sBy0aS8tR1r1meQJeCOwOOGRC5aIHAc9Xvk4
	/FJzDlJKlE89PcGuwq4SuMSriWZnI0H29jLtYIq6CXQ6TOUli2NIXrPAh97GMsBqbXW+Qh
	eBXpIwFI96/i9Jnc137e9kO89zceLA086wH/JPWoxTfUn5qn3H8Cfws4QVJy/w==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1638221925;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=sTsTXZmVNEttdKActcp/MQ79Sqm2VlTHeENYuk8KrhE=;
	b=IFrPJPgHlzA5jXpCGMUgcnutoSn2o/emSpKWK3dUIvafMv+/N8+lm8fxoSszjkihxr/hYU
	KzMXez+vjEq3dIDw==
To: =?utf-8?Q?C=C3=A9dric?= Le Goater <clg@kaod.org>, LKML
 <linux-kernel@vger.kernel.org>
Cc: linux-hyperv@vger.kernel.org, Paul Mackerras <paulus@samba.org>,
 sparclinux@vger.kernel.org, Wei Liu <wei.liu@kernel.org>, Ashok Raj
 <ashok.raj@intel.com>, Marc Zygnier <maz@kernel.org>, x86@kernel.org,
 Christian Borntraeger <borntraeger@de.ibm.com>, Bjorn Helgaas
 <helgaas@kernel.org>, Jason Gunthorpe <jgg@nvidia.com>,
 linux-pci@vger.kernel.org, xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org, Kevin Tian <kevin.tian@intel.com>, Heiko
 Carstens <hca@linux.ibm.com>, Alex Williamson
 <alex.williamson@redhat.com>, Megha Dey <megha.dey@intel.com>, Juergen
 Gross <jgross@suse.com>, Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [patch 05/22] genirq/msi: Fixup includes
In-Reply-To: <b1a6d267-c7b4-c4b9-ab0e-f5cc32bfe9bf@kaod.org>
References: <20211126222700.862407977@linutronix.de>
 <20211126223824.382273262@linutronix.de>
 <b1a6d267-c7b4-c4b9-ab0e-f5cc32bfe9bf@kaod.org>
Date: Mon, 29 Nov 2021 22:38:44 +0100
Message-ID: <87tufud4m3.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Cedric,

On Mon, Nov 29 2021 at 08:33, C=C3=A9dric Le Goater wrote:
> On 11/27/21 02:18, Thomas Gleixner wrote:
>> Remove the kobject.h include from msi.h as it's not required and add a
>> sysfs.h include to the core code instead.
>>=20
>> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
>
>
> This patch breaks compile on powerpc :
>
>    CC      arch/powerpc/kernel/msi.o
> In file included from ../arch/powerpc/kernel/msi.c:7:
> ../include/linux/msi.h:410:65: error: =E2=80=98struct cpumask=E2=80=99 de=
clared inside parameter list will not be visible outside of this definition=
 or declaration [-Werror]
>    410 | int msi_domain_set_affinity(struct irq_data *data, const struct =
cpumask *mask,
>        |                                                                 =
^~~~~~~
> cc1: all warnings being treated as errors
>
> Below is fix you can merge in patch 5.

thanks for having a look. I fixed up this and other fallout and pushed out =
an
updated series (all 4 parts) to:

        git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel msi

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 02:53:31 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 02:53:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234848.407530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrtGN-0001V9-Qq; Tue, 30 Nov 2021 02:52:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234848.407530; Tue, 30 Nov 2021 02:52:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrtGN-0001V1-LK; Tue, 30 Nov 2021 02:52:59 +0000
Received: by outflank-mailman (input) for mailman id 234848;
 Tue, 30 Nov 2021 02:52:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrtGL-0001Ur-VI; Tue, 30 Nov 2021 02:52:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrtGL-0001Lf-KH; Tue, 30 Nov 2021 02:52:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1mrtGL-0005mD-0b; Tue, 30 Nov 2021 02:52:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1mrtGK-0005z4-Vg; Tue, 30 Nov 2021 02:52:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=9fi6BS9Z5xAzDQs1vG/y8XgRnhyZ6TgxV43fKTeqq3U=; b=TUHSDgBvSa29L86pgnNHTSKiet
	rHZWP3sLd96DpSrqSe/wvoW873+Hkqvv5j+dHPWsXEyY6FVog3qwMKpx1Vi4CNLKLlMC8b0tXmr7v
	II29oSj7kAFme4mvfSAbc1FX+Z0Wjf+3kZz5gPklSA5bjeBxktFPM3zECslXjJ9aFl48=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166953-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166953: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=a0fd8a5492240379a07c0b39c8dae3b8341b458f
X-Osstest-Versions-That:
    qemuu=e750c10167fa8ad3fcc98236a474c46e52e7c18c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Nov 2021 02:52:56 +0000

flight 166953 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166953/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166952
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166952
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166952
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166952
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166952
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166952
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166952
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166952
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 qemuu                a0fd8a5492240379a07c0b39c8dae3b8341b458f
baseline version:
 qemuu                e750c10167fa8ad3fcc98236a474c46e52e7c18c

Last test of basis   166952  2021-11-29 14:09:14 Z    0 days
Testing same since   166953  2021-11-29 20:37:58 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Bennée <alex.bennee@linaro.org>
  Andreas Schwab <schwab@suse.de>
  Cindy Lu <lulu@redhat.com>
  Daniella Lee <daniellalee111@gmail.com>
  David Hildenbrand <david@redhat.com>
  Eugenio Pérez <eperezma@redhat.com>
  Jason Wang <jasowang@redhat.com
  Jason Wang <jasowang@redhat.com>
  Juro Bystricky <juro.bystricky@intel.com>
  Laurent Vivier <laurent@vivier.eu>
  Laurent Vivier <lvivier@redhat.com>
  Michael S. Tsirkin <mst@redhat.com>
  Philippe Mathieu-Daudé <f4bug@amsat.org>
  Richard Henderson <richard.henderson@linaro.org>
  Stefan Weil <sw@weilnetz.de>
  Willian Rampazzo <willianr@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   e750c10167..a0fd8a5492  a0fd8a5492240379a07c0b39c8dae3b8341b458f -> upstream-tested


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 06:57:10 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 06:57:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234855.407544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrx4J-0007bz-Fd; Tue, 30 Nov 2021 06:56:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234855.407544; Tue, 30 Nov 2021 06:56:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrx4J-0007br-AP; Tue, 30 Nov 2021 06:56:47 +0000
Received: by outflank-mailman (input) for mailman id 234855;
 Tue, 30 Nov 2021 06:50:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=MWZz=QR=cimware.in=skiran@srs-se1.protection.inumbo.net>)
 id 1mrwyI-0007Wf-J0
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 06:50:34 +0000
Received: from mail-io1-xd2e.google.com (mail-io1-xd2e.google.com
 [2607:f8b0:4864:20::d2e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cee59690-51a9-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 07:50:31 +0100 (CET)
Received: by mail-io1-xd2e.google.com with SMTP id p23so24746569iod.7
 for <xen-devel@lists.xenproject.org>; Mon, 29 Nov 2021 22:50:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cee59690-51a9-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cimware-in.20210112.gappssmtp.com; s=20210112;
        h=mime-version:from:date:message-id:subject:to;
        bh=VL2FUFBXugsy0WcPMaDIfQxWV6VDcsAR7KBynFdDLK0=;
        b=f3JiwL0HIhsFcEvegwqBBfMfsME6D2I737UopNAv2kAlOFXHgbyNQggK5mv7RDZWGJ
         uE3UxuMVuIDRhSHfmgja1+tGbO+/XEozdkOdi2+TU8UuCYZtH3xErPI3znT1LX0Vju6e
         o4hVRW7hFCRIOu3d4JQf/crBhHg8yIddtEJ2JthgaSux/9GyTFvQ1HF6fKBdY9xnAPu+
         n3vTA1IwVl7BtMtuJBerFCDfEZ1JfyoXgvZqPeBXkHdVqsNSt3etGxbvoOnYGFPRzeoo
         dTrRRpf+Jbnh+QIqkUnq9amalkuyHxfwqFo7YLpki+gnaM6zhDS+zzVGq81HNnPU9Mib
         ZWXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
        bh=VL2FUFBXugsy0WcPMaDIfQxWV6VDcsAR7KBynFdDLK0=;
        b=V/cbghxWXwRsT/R7zUKqXZ5msI1Xv3HD2pSKfzvblDgw+a6v2du2zOYnB2P0YlzzhL
         2OLUZ+NxiPZWY+I3Xd+KEWljSwPxombsI3z8uYhXiTBnble0Q3KZUmXtsTdpPKQ+JGgW
         J4dIQfVwUdVQ2jUGz9K3JgMVz39WThV3o/IbSbFGN3uxTW7tplCc38LptVP/6z3lYHUx
         sOEK7GEHaW/HPN5zgB7BFFXV5apVLd+SHEQLbR9u2Q2khGiH6IAwzKb+JzVmxwstHNgB
         iscCHrbFxg8mZ3HfTyo/WV7VFYzcu1MSJw1urr9d2F+tbeynccnj+UrXoOBo2SZR6b9w
         8Ttw==
X-Gm-Message-State: AOAM531Eyg/GsPltVI6gzBLeuUmaE5t2JW+fTOht6X+GVHH3LIINHxNi
	2Uf+8q9bxWpkN8aSWfAqzyPM3ux3Is5wMfzw4eGRVsJ5Rw==
X-Google-Smtp-Source: ABdhPJxK6uPrYMesVmCff/Ap1xPa8ggHQj5X9HAkkoKcia/IPzLmDfybdrQEQCMCoUuks91YbIV9CzxRSvvxqZy3Z2E=
X-Received: by 2002:a05:6602:2d04:: with SMTP id c4mr57711331iow.146.1638255029828;
 Mon, 29 Nov 2021 22:50:29 -0800 (PST)
MIME-Version: 1.0
From: Sai Kiran Kumar Reddy <skiran@cimware.in>
Date: Tue, 30 Nov 2021 12:20:19 +0530
Message-ID: <CAAQMfLr_mWgdM3v=smYZbx+t8zhCP7_aCecDPJLLGRu=MH9E0A@mail.gmail.com>
Subject: Xen on LFS
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000001ad21d05d1fbf9c0"

--0000000000001ad21d05d1fbf9c0
Content-Type: text/plain; charset="UTF-8"

Hi,

I am Sai Kiran. I am currently working on installing xen on Linux From
Scratch(LFS) system. One of the dependencies of xen is "xorg" package. This
package is present in Beyond
<https://www.linuxfromscratch.org/blfs/view/svn/x/xorg7.html> Linux From
Scratch(BLFS) <https://www.linuxfromscratch.org/blfs/view/svn/x/xorg7.html>
manual. But, there are a lot of packages to be installed. I am not sure if
all these packages are required for Xen. Also, is xorg a must, to build and
install xen?

Kindly help me out here. Thanks in advance, for the support.

Regards,
Sai Kiran.

--0000000000001ad21d05d1fbf9c0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>I am Sai Kiran. I am currently work=
ing on installing xen on Linux From Scratch(LFS) system. One of the depende=
ncies of xen is &quot;xorg&quot; package. This package is present=C2=A0in <=
a href=3D"https://www.linuxfromscratch.org/blfs/view/svn/x/xorg7.html">Beyo=
nd</a><a href=3D"https://www.linuxfromscratch.org/blfs/view/svn/x/xorg7.htm=
l"> Linux From Scratch(BLFS)</a> manual. But, there are a lot of packages t=
o be installed. I am not sure if all these packages are required for Xen. A=
lso, is xorg a must, to build and install xen?=C2=A0</div><div><br></div><d=
iv>Kindly help me out here. Thanks in advance, for the support.</div><div><=
br></div><div>Regards,</div><div>Sai Kiran.</div></div>

--0000000000001ad21d05d1fbf9c0--


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 07:18:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 07:18:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234862.407555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrxPO-0001nw-6I; Tue, 30 Nov 2021 07:18:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234862.407555; Tue, 30 Nov 2021 07:18:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrxPO-0001np-2V; Tue, 30 Nov 2021 07:18:34 +0000
Received: by outflank-mailman (input) for mailman id 234862;
 Tue, 30 Nov 2021 07:18:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrxPM-0001nj-7v
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 07:18:32 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7e37192-51ad-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 08:18:31 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-10-Lm5c1lnSNI2rfiLJiDHyuQ-2; Tue, 30 Nov 2021 08:18:27 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4605.eurprd04.prod.outlook.com (2603:10a6:803:65::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 07:18:26 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 07:18:26 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR1001CA0070.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::47) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23 via Frontend
 Transport; Tue, 30 Nov 2021 07:18:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7e37192-51ad-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638256709;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=KjXlqqwe38smy/OrV4Wn96gzR6zzZoVPtENYaKdRqd4=;
	b=GaX7MEcs3hZPFDgutp+k8BQqXp3KUrmqnXkq4aPjApNeuIw36U9osyOFpbgBfxeHy79DWo
	KT5m1LT8r13bFMLdR9YqlzJRtHS3507XsdMkHa4LVFQcsNoYAZPzPU71srcp0Mr24EJ7jZ
	1FtYG/HPrVnP1pzNCJBGKeCbjY84068=
X-MC-Unique: Lm5c1lnSNI2rfiLJiDHyuQ-2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Vx6x/LZgve1qPJjHGNVxE+t0ZOJHe236Ff5l6ee+pcKBajcMyVXoZ/TYhynCQhvQV/9lichI4fTEm9wQJK44FkNH62Qoc84SUFYzkPp1f2EKhqtkSYnNp0ZxBrNRYgxJ5NkoGXJxx65ei7YFopQ9GcJdWzPGMv9J8J3diJn7uRQanAbEd8VIoAei3PRlLfhlTrfBYeceLzcXhbzaa3LVy0w3N0wjaF5mm+mj1ZMbCCAhUzr4WxPvImb6lwO0QKlZamVxCASUKSxNnt6U+mYh+ung4X5OOTtGcaOpmryS3Njh1wlZnuan33xjuaMFJEVZXIotIKd8IxsI6Fr9yjJuEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KjXlqqwe38smy/OrV4Wn96gzR6zzZoVPtENYaKdRqd4=;
 b=k9FcylFxvPuVh/COcQBMHE2o2CdKiSQk/Pt8ZiRXcTti6mHlGQ3c4i8QSQa8W9QZ+4we0jEmBHZOiTDzt8MQv+09tC7fnyLRE135kixiviIm1QgEG4wi5EizfLi5u+FupySHKLArI401naPb8TX7Sfyx28PuuEy+ve4W5ZrS7PDTgs+r+ihgCI4txqhg5oPSOEgBwl9x4oXWCSm3eXp5SxdIpSSDF825FMv332YkQncWw/INh3dgTRd4ygyKOu6bgrpI1KPOylvB3K/JS8iakyXC/zYxa08+9SxxXbGBLDIOH60Ue1ODqwEy5T6Abyq9db+hvLjslDSC5sOb33nzjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <3f0230f3-79d2-d40e-f3f3-33201c2792b0@suse.com>
Date: Tue, 30 Nov 2021 08:18:23 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] Fixed an incorrect value
Content-Language: en-US
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Cc: sstabellini@kernel.org, stefanos@xilinx.com, julien@xen.org,
 Volodymyr_Babchuk@epam.com, bertrand.marquis@arm.com,
 Ayan Kumar Halder <ayankuma@xilinx.com>, xen-devel@lists.xenproject.org
References: <20211129194450.62467-1-ayankuma@xilinx.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211129194450.62467-1-ayankuma@xilinx.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM5PR1001CA0070.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::47) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 88afcb8d-616c-4cb1-9774-08d9b3d199dd
X-MS-TrafficTypeDiagnostic: VI1PR04MB4605:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4605749F21E98894C3D50150B3679@VI1PR04MB4605.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	g6PUpvvy/rakZwq+6BmB1EpSr/c3xJELUAr1DSqN3DGlhfKe4e9+bUosuo7rE941LeAJQHxA7mfaHUVEJYU/9nr58Rj2GIFp1W52HLrNonqQ7HiD7UbIqdIOT+n5VrSTGbG+6dYQLk/lJrpnrlSfw8TvVtwiFBd9E36DXj5VeuK3CDKL/7ZcJ9Xw+Hcui2F2lWGdlEmEe7ShXENIsYWuj6BuN9q2SlXI/2A+QpP1jtGz46GgO3Rr0JN3Bg+Q7EZ/DVFvgikLuTlJOghxwccRnG3pAd1fWJzAa74KSim+XVpOp/UoeP1HrSNJA3pBXWn/ZLdaN+KuqiARGiy+UnNeYtCxFzUt648riJwe4HYBqtwsQyjQfPWkjlMZlTgnsaqPAYLOPuHXCOO37mXechyvgEoxb91CFCnMHgxWDrD4OV9XiM8E2RuPX8KnK9WIH2iXwMAbfSt2968S+B9jOB73XO2iPIZ1JGdDN9dlAfo+KvJISbo5kuzu0Mw4WYAKzxNMLnN4fYQ5n5wwdiZKttwg9zLVPC1Dtn1g6k3Vz08+vJQ+sMOKT1WSPAWM1+z5iTTdfTTsDvMD6fjG3L0lDFDwQ/Ja533ppwC7AVjxix8eOM5QBWt116Y8YGRS0IXWABnwFzhAESoyzlfUAIciyA5+5LfX3teTz1lmTnun6ESWxuMitErJN0DPF1hvvvZ5JWvxfM1P0l2RcIQPiHzVegW/1cGscOSv0P0UcGLxLDNT32M=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(508600001)(86362001)(53546011)(31696002)(4326008)(8936002)(38100700002)(8676002)(36756003)(6916009)(6486002)(26005)(4744005)(2616005)(2906002)(66556008)(5660300002)(186003)(66476007)(16576012)(66946007)(316002)(956004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UHNEQmVlNE9OQTBpOWM4blRTcU5QejIrdDdLN1dwRWpxV1VJdXRDV25OYnR5?=
 =?utf-8?B?RURVdEwyZm93dWdMVzJ2ZFM2RzdjVHdkSElVTlVCWHVrU25TdGJqOWlJbERD?=
 =?utf-8?B?cGlGQWRvUHE5VHlZOW9Makt4bVRjWlhkN2hxMlVyTzBMK253SWg4Vlo4RS9Y?=
 =?utf-8?B?OThPZUpudnNXa05WYVQ4Yy9OQ1FtYmpoL1d0RzZ5OXNCTEtxU29zZW1IQ3lv?=
 =?utf-8?B?aWdaT2pnWmlLMVdtV3owcGM1QU5UUS9JcGxBNUVQSGZXUnJER0V5VXRpTURG?=
 =?utf-8?B?RXlKWVVTWmZYTzBmdTZCS2FrdGZlcWFkNGJ1THRqb3hCSUlZbUI3c1RjUnAy?=
 =?utf-8?B?Q3dSNk1vcXF4MS9ZVDRlMXQ3Z0lTazlPYXJDQkNSVDlBTGpsbmhYb04zc1lB?=
 =?utf-8?B?SHZpOG4ybEdtbmtKYk4zWi9vNUpRNVRrb29kN09JY1pYQWVQWExrZWFOczdD?=
 =?utf-8?B?aDFRSXdJejdyZlZCaUdKaWIwYkR0WFhjeXpBbTZPUk9XRUVMQnBiVS9OYitC?=
 =?utf-8?B?OFU2RlQrZHR0YUYwbXloY3QxY2t2UUNLN0trKzNud3psVkE5dGtUMy9vQjV0?=
 =?utf-8?B?MUduam40T3FURmJkMmZDcHdXWG5WS29vek1jbkQ2dUtoSFIvbDFLUzgwWEtm?=
 =?utf-8?B?SjZWaHd2a0orcHNEN3RaQTVraFFCWmtJNkhKM0RtYldmUXB2QmliSUdqYTlL?=
 =?utf-8?B?dFNSbDIyUGtKQXh6cHRPZlM2T3JLTGNxdUl3Mmt5ZzdVQms0MVJkZkdMaWNj?=
 =?utf-8?B?Z1kwSTR1Vk56ZFAza1NrOHhOTG5sVkJxWldwSk9pbXdpeHhLZEtLNkFxUnFl?=
 =?utf-8?B?cm9YTEdha2JVRk82d0hDT0JQWjZXUEFFRjRabE0ydXlOYy9VcTBBYkJua0g1?=
 =?utf-8?B?VGU2VUFGMlJ6bjRSVnhNekVkU2RaMUZwZktGc0RRWk96R3pKcDlmaS9zbmsy?=
 =?utf-8?B?VHVwdWkyYVJkOWRUSE1XRHdsaGxSY21kei9VVWlHTE9SUlYrcWt3Qk5rVEhK?=
 =?utf-8?B?Vk44bDFvUDlwQ2EvbG1xTDRYV1M1N25yS1o4cnY1aDFIclBCaVZIYVFVLzll?=
 =?utf-8?B?eGFqYjJha1A3RGd0N2w1VFVNQWYrSS9LdWd4WjdVMzRBMmp2MDBWNlBxdFdW?=
 =?utf-8?B?R0F1MFVsNkJWeDBVTVlnNmg1UUJZM1d0YnFFU3ZSc2tlb1dMOFRPdElJcnhz?=
 =?utf-8?B?b21qTDJMRTVQS2tZSVE3NURmSU1ySmwvYURYTU9SWDJOWHBma1lHVXlQWnF3?=
 =?utf-8?B?dVFNdlVZSGppaTdYSFpWVEpqNUVDRnpYK1JuR3hsSWpRYkVCa0YzVUtLT3Y4?=
 =?utf-8?B?NUw5SEZIY01ja0xJdEFkQzQydFZNeWNoYUEwd1hoaEZqYWtTU0YxT1pDWXJY?=
 =?utf-8?B?RU9uQ3JJNnpnZWFCVnMvU3dqL0Z1TVRjQUFZa05MWFB6NDEwQ0k1SlhqazBK?=
 =?utf-8?B?RnZqYnV1T044amhOYndRUTJZaWJaVVo3L2FYNEdROVRCZ1FWRWNvY2FGQmpu?=
 =?utf-8?B?NGgzSmN4L081NmNScFZFS1ZKYlBQNE5PQ3hRRDY1ZTRJQS9PbmZUZlRTS0l2?=
 =?utf-8?B?RlRvQ3NuT2JUWHVJbEJOdW9EdXVKV1kzem9vZ052UTVSc0RUNVBLYnJNS2NV?=
 =?utf-8?B?NEtickN5U0dyYmx4andmZTRKTy9oVGY4OXBabGtmZjhKYnZDT1cwS2lmWXY2?=
 =?utf-8?B?dzd5dEgrSnNESHF1SnR0cU9yUnRvTFhwMHl1TnFlZEdtaFhKd2tmK29zVU9a?=
 =?utf-8?B?Z0dDOW8yL09STG8vYWVoaG9DUXFNNjJsSTRLaStmNnlvNFBmYlRBRllUcUNG?=
 =?utf-8?B?b25tc0U2Szl6K3RrVVQvQVgvSFVFK2xuWGs1RjB0RVZyVVdzZmJmV3Ntb3gx?=
 =?utf-8?B?TW9WU1VFa1JUMHJpSWhaTGcwdmZESFZrelk4dzl3T3RDMjA4WGNSeW9FU0pN?=
 =?utf-8?B?WVlHeVVKSjBFclVrQkhHK01hV2lFTi83MUNmRGl1YWhmQ3NMK2t3TWRqUStB?=
 =?utf-8?B?V3FUcVRsMHlEL3VzZTh5VGl5RjlENDk3MXVNZENKVDJxNGRubnBiVy9hU0sx?=
 =?utf-8?B?UGx0bGN3UDJaNzlSS0FmSVpvNWY2NW1jd1N0SkhHN2dteWdnNDNHOEtPbVZa?=
 =?utf-8?B?V0g5TUo2T2JMTEVKV2syaUtuMVZZazRGWlU5OTdGM3BXek5PUjJLWGQ0NmpP?=
 =?utf-8?Q?GgxX0NameRGao2nHQPFC/3w=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 88afcb8d-616c-4cb1-9774-08d9b3d199dd
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 07:18:26.2068
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ANNW/uKdRbQpVtSvzINKhosAvIWPCgSDZ+mlCbndB5zTff3X9Ntffw94u1keNgmkX95Svm167lpxfDJm8EshmA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4605

On 29.11.2021 20:44, Ayan Kumar Halder wrote:
> GENMASK(30, 21) should be 0x07fe00000

Please can this have a meaningful title? E.g. "bitops: fix incorrect
value in comment"?

> --- a/xen/include/xen/bitops.h
> +++ b/xen/include/xen/bitops.h
> @@ -5,7 +5,7 @@
>  /*
>   * Create a contiguous bitmask starting at bit position @l and ending at
>   * position @h. For example
> - * GENMASK(30, 21) gives us the 32bit vector 0x01fe00000.
> + * GENMASK(30, 21) gives us the 32bit vector 0x07fe00000.

Once at it I think you also want to
- replace the word "vector",
- drop the odd leading 0: The number would better be 8 digits or
  16 digits, but not 9.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 07:23:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 07:23:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234870.407566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrxTh-0003FL-S2; Tue, 30 Nov 2021 07:23:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234870.407566; Tue, 30 Nov 2021 07:23:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrxTh-0003FE-P4; Tue, 30 Nov 2021 07:23:01 +0000
Received: by outflank-mailman (input) for mailman id 234870;
 Tue, 30 Nov 2021 07:23:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrxTg-0003F8-Jp
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 07:23:00 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5834b49d-51ae-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 08:22:59 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2113.outbound.protection.outlook.com [104.47.18.113]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-5-NBOJciyJPjKVinSGJhQ9mw-1; Tue, 30 Nov 2021 08:22:57 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4350.eurprd04.prod.outlook.com (2603:10a6:803:3e::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 07:22:56 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 07:22:56 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0293.eurprd06.prod.outlook.com (2603:10a6:20b:45a::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Tue, 30 Nov 2021 07:22:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5834b49d-51ae-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638256978;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=odC1n4aZFxG/47zdrIL8Roh9CeKcFcCglWyaqxvgrqE=;
	b=Kf/8qyo34UPtWp3p6KF3DcKQb3HjrwcEOrV5iXMQW2pBJ6Toaj60wyL6M9XzmmOhVJfSLO
	NIHVSfC+pu6HsZ/AGY4jJSxNbeWCa5d0VgaRDlsGN4EnfPeIXnBL1z85RIgBa23ewxZblt
	1GbHoVOoVeqxMjdqKnu2gVCINDyCTjI=
X-MC-Unique: NBOJciyJPjKVinSGJhQ9mw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ELoLqT+3Bc9Wo3Unx7hu7lcirkCslZ7W8kJ6kpcwTMf+lTRoA3wJQfznMY0GFBCeM+UqfLGsl30qgVX3cZXSp5foWlhdQG/dASFJhXHrgG5H0JpIUAa6HbUXhH7dTANGdl12TUD1fEFkbsmzODEQ0wHzOVImx9/EguCL20no3Oidy033/jWRkRbD49JCmDvXZ213+ZZnFFTs+UHyxI3UhnTRekYoxkTJMEmxZZhprvJ3Lxa+yKxgffIbuUZ7QDow20c2YvlFUGsL89FDtEd5KSLO+DCuuXsQOricCzHcONLcp1hemsQy4v5DMhdJI/0oXmC+C/Qdz39BqZ73LXivfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=odC1n4aZFxG/47zdrIL8Roh9CeKcFcCglWyaqxvgrqE=;
 b=Z4RQ0+MrN9qQyiLYPNEGBqcFpSWa6M/5qxzO4TNdihIEY5EBy4uSRXS/mT4emCuZQB4U1uw3tIoolcie+QffIkegEteXcTMw+pD7PLtcyKqOKZvQYNehh51XjPSMnHrGY9gSztDtipe1QkGKcqYu7vmhPwoYsWBMywCfO2vUMu4Xw7+a/FgNtVr6oO5b1HctgYprCBMuRv7+cFSH0ZDQAdZypTN9Hk50waQtfbAhsc+CE5NbqFtxCvDy38oHcfhSUhu2dR/2G3pN3A7QEDZRgQAObtQHbuL1PxQS+a2KLcnWsUZNyp0soYkAALbRwmfEX2CoPxkgB9F0FVGXhQIjiA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <e421fc4b-afde-8bdc-9be0-859523512b9b@suse.com>
Date: Tue, 30 Nov 2021 08:22:54 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: Xen on LFS
Content-Language: en-US
To: Sai Kiran Kumar Reddy <skiran@cimware.in>
References: <CAAQMfLr_mWgdM3v=smYZbx+t8zhCP7_aCecDPJLLGRu=MH9E0A@mail.gmail.com>
Cc: xen-devel@lists.xenproject.org
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <CAAQMfLr_mWgdM3v=smYZbx+t8zhCP7_aCecDPJLLGRu=MH9E0A@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0293.eurprd06.prod.outlook.com
 (2603:10a6:20b:45a::9) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 37cc7f3c-68f5-4fac-cd5c-08d9b3d23af0
X-MS-TrafficTypeDiagnostic: VI1PR04MB4350:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB43500C79475DBE16C86275DAB3679@VI1PR04MB4350.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ZaftNGFn1DlaEOmx7TztZyIMFlhABKkqshiD7FHeyqUqPTfMEB7qfyrbYfv+mvpay8BpJB/7Q61EhAHscZrbiVtQ3TQmC/sVkIq6T/aS4keLUZtUAmIT/CIwCRYKMwDhRkLL1AwNgE9uE6mMvfWWWgBwphiGS+Qb/vqgsXvqGnWLmyvMW7O00J1wfFutPg/L98v911K0lYpm3s0B2YIccVHpredYFPxWlIPbwp0F0g62LLLhHSynb7YTCM/WFiEdjvhNwIPo2nGW0SoFyiwsGS6i3QTT5N0aG/JD2z4YG8/Vmn8JmNhBNCXieqFvMcKdTJl5H7A3x9VJGDp4Nccc0IAMMpYBrTi3ld88hIypz1ns+WGsthgJ6w8yQrLQjNkgHVcGrdxqs7zRxEtTNATNmPU0AqcJP/kbijdG/2xoMZnB3NqoTp7g1tkh7Twx6Fjl3drBT9qCw3iGB3ooGyunhvcdycGctAH0ZwadkgupMcTY1ooEFSOmPnayiwcM9u7tk4lnYbMg1EwqQsku8eosbQaQL1xZyJFDFgK8m/9eAGT+RM1PYt1WGzoYEkkpfJVP34v+eS+K7xSbh9dO1w79dBpERuRaaiLBBNJcABjViOOtrpVdwquWEvKJeOve1UHUI/+2o3Rgh1lo6vDpRp0Bsp77UNQ5biXZtR1CHzDuwcHRflohL74RM3nEtYg0YB3OLHeoIVVX617OlXOU4qzFSU7rLhmyFo58aDmHQTRaiDIksAxJIagtdHoIbcjOBDFBjP1oqVOFcq0GE0t5keuMDlSbNJb6A9s/NUSu4xMUgTRuguEs6XDveJNrtSGbSF4t
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(16576012)(316002)(3480700007)(31686004)(6916009)(53546011)(186003)(6486002)(7116003)(26005)(956004)(8676002)(66476007)(508600001)(5660300002)(86362001)(2906002)(36756003)(8936002)(31696002)(66556008)(4326008)(66946007)(4744005)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VFNqRmJObzM0ZG4xUnhIQVFBQ3dlbWJ3MUlNdmJMRlk0UW5tVjdZN2hhTUNy?=
 =?utf-8?B?dyt2OXluUTJVWU5DOTducXV0YklHWWd5NjFaUk5COGlpMER3ZmhuUFlZQmxy?=
 =?utf-8?B?THQzYWJuZUIwNUpDWnJxeDBUVVllR2JWcjd0TFlSMmdBYVM2dVJzcWRySURr?=
 =?utf-8?B?K1h2N0EvRjlqV0l0eEphVzdobGNwYXNVL1lmUFZlQzZNcEl3N3ZPeTgxWHdP?=
 =?utf-8?B?Tkg4ZFJtUStjRGw3QkdLWDBLNWVzV3hlZGFHZVBtbm1QTzYrYVczeERjR2JN?=
 =?utf-8?B?NWxEak5qOTlRTDJFWlZHTFJrN0QyTGFwS2VlQXZhcTRzODVmMFM2QkdHbkMx?=
 =?utf-8?B?NHFuQzYvOEY1YjBKdk1YaHNnVmZnU1h5ZDdFUU9DdXhxQyt0Ti9mRXkrcVJQ?=
 =?utf-8?B?NDlnMXZQdTVseHBJams4Uk5laUJwQW5zQTQ4TkZmMC9sb09lSU90aUVmTUUw?=
 =?utf-8?B?K0VuZWpucnMwZkpIOGcyd3MvbmlLSjVneGFmS3VDeUdCdFJIcmV1VDJTa3pp?=
 =?utf-8?B?VWRVL0hmVnk4Ly81MEd5YjVrVUYrWmFxejRBTnBSQVhMT2orR1lHK0JiYXRH?=
 =?utf-8?B?YjJ3Z0ZTOTNieG1GUVFhTFdUdERMaVg3YnYyaS81U3RmODQzWGpOamFvblFh?=
 =?utf-8?B?VGNKcWt6UWNISm5kY0ZkaitzS0NDUUVtS0lwSWgyL1h5dFdKa1lVY1RMR2Zq?=
 =?utf-8?B?R3hoamluMDlnRHB4U1NSOHFhOFdld1NMNGNWMGJHbkYxT2owdFJHblAyRGxh?=
 =?utf-8?B?RXFNRkNoTlZqVkl0SGpVR1JaZFVoc01lTkNkTGl6YXNLTmpZSDJGZ0xVRmI5?=
 =?utf-8?B?MG8zQkwrdHdHWWdQenRoVW5mZ3VySXRYRDdWR0t2ZmZvSGVCYWEyNXhoR012?=
 =?utf-8?B?UU5UUEx0YnM4MldXSUFFN3VmemdzTXMrdlQ4TXRMa1BvSDl1SG9rTTNSUVF4?=
 =?utf-8?B?QWdpbnAyS2RGWksvK2FoamVqN3p5L3pMWVM2d1Q5bWRnc2NUNEdxUHlMZDZP?=
 =?utf-8?B?emE2Y1BVYlFFa3Y2VlNtdHl3QWZFeE1rWGpoeHZCR1B4Smg0dDVsN09xMFdU?=
 =?utf-8?B?ZHpGb2RpTlg0MElyUTEwbVUwTER6UG45ejBJN29YNHgrNjNBZUtrV0tGRVhK?=
 =?utf-8?B?bE9WTHdQazlIellIMW9KVHRUTXFBSUR5TDQ5UzBoMGxiVUk3TjVZVkdLbGtk?=
 =?utf-8?B?SXlmTjZIZTV5dElpdVAwcTZpVE1yL0x1SGhPdkZrNm14MHp0Snd4eXFlWlNy?=
 =?utf-8?B?WWp3TnZraHFpemxsUTBhTWZJZnBMdS8vbXlYRFNqMnlpTks3VFBCcnpZMVBK?=
 =?utf-8?B?eCtUdFl3dFAzbmYza3pJdHVmUG9DdlBOSHRNNUlPeHNaRDhGRzdzMEFab0ty?=
 =?utf-8?B?NmNDYllZRHJHc1VmQUN1bjVVOEJQOE11QUQ0NmJtQ0JQNEt2ejJMUkhnM0VR?=
 =?utf-8?B?bTAzMHBiMEkzOStRL3laUjUybDZvRzlRVmZWMTJ5MGp1OWpBZnVpVHdHS010?=
 =?utf-8?B?ZjVWM3ZwR3YyYmlEdXd4cW02WEp5NFdQQWZQUldqOHlMU1V4ZGs3U2drRHNx?=
 =?utf-8?B?QlFjdzZFZ25GTlViOFNBNmJieVVPWngxcUJOWEozSmZLMTlrZnlxdmNSTUxr?=
 =?utf-8?B?bDZKMTk1SjcvVUJ1MG53RVBHcmVIWTBOdnp0T0p6amNtSFExVjI3WFVRaFFE?=
 =?utf-8?B?cmdCQUtvTXB5b1lJWU1YNElna3lqMFZ6ZEtMdno2Mm05cUxRYmZOWUxIa0pj?=
 =?utf-8?B?eW5td1hhTXhmN2UzNVhtTjZSUzI3SUQra3lOOHJzbldGTmpiNGF1WUd2T0gw?=
 =?utf-8?B?MFdwMUhWdTlzWitISjZzYS9ybmJzK3V6dnNjanAyQURhcVNCUHc1RllLVkF1?=
 =?utf-8?B?NmI2Sk9MNExjY25zTXRKOW16akhnTmU1N0JZZmNKdkZEekZOTjN3L09Tc0pJ?=
 =?utf-8?B?TFRDUStSVER3THp1Mmt1bjdMaTBSbXI5bUVJOGdLOU9CZEJycEJnZkt0bXlF?=
 =?utf-8?B?UkxFbnA2bXFENjJCbWx2MmtEOHEzZ1BIdzR1QkJpS3kyVVBWZFo4aEszL3hv?=
 =?utf-8?B?TGlhOVI3bHh1cFJEWWI0Z05yaVNKUE5TMEFISFVlWklGSUkrUlZyT3RTdWFG?=
 =?utf-8?B?Zm5mQ3llZEd1ZzBTeC8rSzBEOTI4Z1NnSFRFKzU4TEhWRTNHUUdVYkM1WGZK?=
 =?utf-8?Q?VUlKOf+r+9Iou7RNlECbybQ=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37cc7f3c-68f5-4fac-cd5c-08d9b3d23af0
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 07:22:56.5088
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ch/S8hy1cGz3p6QHCuMqAXiv9N2xV7tqEmK4u4B03z0rpjfxlbATSBWm7nQARKWjWgu52TgDT3B/OAUX03DfnA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4350

On 30.11.2021 07:50, Sai Kiran Kumar Reddy wrote:
> I am Sai Kiran. I am currently working on installing xen on Linux From
> Scratch(LFS) system. One of the dependencies of xen is "xorg" package. This
> package is present in Beyond
> <https://www.linuxfromscratch.org/blfs/view/svn/x/xorg7.html> Linux From
> Scratch(BLFS) <https://www.linuxfromscratch.org/blfs/view/svn/x/xorg7.html>
> manual. But, there are a lot of packages to be installed. I am not sure if
> all these packages are required for Xen. Also, is xorg a must, to build and
> install xen?
> 
> Kindly help me out here. Thanks in advance, for the support.

Thanks for your interest, but I'm afraid your question isn't fitting xen-devel.
Please raise it on xen-users.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 07:28:38 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 07:28:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234876.407577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrxYw-0003xA-GQ; Tue, 30 Nov 2021 07:28:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234876.407577; Tue, 30 Nov 2021 07:28:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrxYw-0003x3-D2; Tue, 30 Nov 2021 07:28:26 +0000
Received: by outflank-mailman (input) for mailman id 234876;
 Tue, 30 Nov 2021 07:28:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=MWZz=QR=cimware.in=skiran@srs-se1.protection.inumbo.net>)
 id 1mrxYv-0003wx-Er
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 07:28:25 +0000
Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com
 [2607:f8b0:4864:20::d32])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 19e10a1b-51af-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 08:28:24 +0100 (CET)
Received: by mail-io1-xd32.google.com with SMTP id y16so24783445ioc.8
 for <xen-devel@lists.xenproject.org>; Mon, 29 Nov 2021 23:28:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19e10a1b-51af-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cimware-in.20210112.gappssmtp.com; s=20210112;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=SfUuYInbuzXZWRFqsUC+UXmEet/I00ezr6N7lOWjZjo=;
        b=7apLFUFa3mU9+R4FITtZwzeQTt4tDts3VLPUUQJsuQ8tNbEFZSfmeOFNcUjEuepcoR
         wPiAbWihrAsDA7pV5ftv1tCGk7+qT6wmDW0tqV/5xfnM8LYmhY2O/9wfYj1NGqpC18dv
         AmkR6rlT1j3Y85Tw79bFFWnh3QIdL+E7vzbjA+/WtdwlytLLlh2qAPjSMobRZb8YgNWT
         1K8Tspf6hh4C08S/SRXqflJw7+m0Qwn3QlkHAwWSzhgNIsX91R9noAAp2DdpLC6qAR91
         16JxuST7IuDSPMp1m7NAP0Jr2PL/SNPRHjViTxiEagspto2pr/6G3DjCALt7kodag1fz
         2cUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=SfUuYInbuzXZWRFqsUC+UXmEet/I00ezr6N7lOWjZjo=;
        b=m10IO6N7gOC1fNEoZmwWYLlG3gbCeNMRce4Y87C4z8WdExpa39Zg9ks9Pr/7Bg1Ysy
         Rk0Y0t4UZnFN1IFlp6quQwW+QWsGFIP7mOfhzhDSx8+kqvuiN2N2dJh03vXLswZ5HwXx
         tdnMWu0PuTyVoeXugOaeOtzqisddG7HqCpnjLb0Yd/f9zhA8TeC82m6Jj5XgZnoNofuF
         8IOpviqARv+13ioE9f0GKLQXa+QOJuziAr0C1HAW967TgXR7prtBCCTx8CjTk8cVPhQ0
         qwFAqI0EMQYs5Y56fhNeLGCNjm2i4xy36OzD0Ctc5N5LD9lXOQu0DDdsQdzgvLBSvzam
         eBgg==
X-Gm-Message-State: AOAM5326U7XQnbgaoK1GCAAvETEZSAAf6hX2h7gDsV1cd9EwCQPEK1ix
	wr/HN4GimDdXzRhrINidpY+0yWFDuUCknf3750t9I0jviw==
X-Google-Smtp-Source: ABdhPJynBvtJ2/GXsbJUbRJ5CuNK7uxumA6Gn7Bhpksni2yReKVC6buhhNa828r4x5NfcBxmaOVmnZDcn5aPdN2TQzw=
X-Received: by 2002:a05:6638:3a4:: with SMTP id z4mr72565878jap.76.1638257303289;
 Mon, 29 Nov 2021 23:28:23 -0800 (PST)
MIME-Version: 1.0
References: <CAAQMfLr_mWgdM3v=smYZbx+t8zhCP7_aCecDPJLLGRu=MH9E0A@mail.gmail.com>
 <e421fc4b-afde-8bdc-9be0-859523512b9b@suse.com>
In-Reply-To: <e421fc4b-afde-8bdc-9be0-859523512b9b@suse.com>
From: Sai Kiran Kumar Reddy <skiran@cimware.in>
Date: Tue, 30 Nov 2021 12:58:12 +0530
Message-ID: <CAAQMfLrxpc=6L_mp_EuPq-B+EydrFGaVqb_MiyjELPQYXi0e=g@mail.gmail.com>
Subject: Re: Xen on LFS
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000009d12b005d1fc8069"

--0000000000009d12b005d1fc8069
Content-Type: text/plain; charset="UTF-8"

Ok, thanks for the reply. Will do that.

On Tue, Nov 30, 2021 at 12:52 PM Jan Beulich <jbeulich@suse.com> wrote:

> On 30.11.2021 07:50, Sai Kiran Kumar Reddy wrote:
> > I am Sai Kiran. I am currently working on installing xen on Linux From
> > Scratch(LFS) system. One of the dependencies of xen is "xorg" package.
> This
> > package is present in Beyond
> > <https://www.linuxfromscratch.org/blfs/view/svn/x/xorg7.html> Linux From
> > Scratch(BLFS) <
> https://www.linuxfromscratch.org/blfs/view/svn/x/xorg7.html>
> > manual. But, there are a lot of packages to be installed. I am not sure
> if
> > all these packages are required for Xen. Also, is xorg a must, to build
> and
> > install xen?
> >
> > Kindly help me out here. Thanks in advance, for the support.
>
> Thanks for your interest, but I'm afraid your question isn't fitting
> xen-devel.
> Please raise it on xen-users.
>
> Jan
>
>

--0000000000009d12b005d1fc8069
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Ok, thanks for the reply. Will do that.<br></div><br><div =
class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Nov 30,=
 2021 at 12:52 PM Jan Beulich &lt;<a href=3D"mailto:jbeulich@suse.com">jbeu=
lich@suse.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddi=
ng-left:1ex">On 30.11.2021 07:50, Sai Kiran Kumar Reddy wrote:<br>
&gt; I am Sai Kiran. I am currently working on installing xen on Linux From=
<br>
&gt; Scratch(LFS) system. One of the dependencies of xen is &quot;xorg&quot=
; package. This<br>
&gt; package is present in Beyond<br>
&gt; &lt;<a href=3D"https://www.linuxfromscratch.org/blfs/view/svn/x/xorg7.=
html" rel=3D"noreferrer" target=3D"_blank">https://www.linuxfromscratch.org=
/blfs/view/svn/x/xorg7.html</a>&gt; Linux From<br>
&gt; Scratch(BLFS) &lt;<a href=3D"https://www.linuxfromscratch.org/blfs/vie=
w/svn/x/xorg7.html" rel=3D"noreferrer" target=3D"_blank">https://www.linuxf=
romscratch.org/blfs/view/svn/x/xorg7.html</a>&gt;<br>
&gt; manual. But, there are a lot of packages to be installed. I am not sur=
e if<br>
&gt; all these packages are required for Xen. Also, is xorg a must, to buil=
d and<br>
&gt; install xen?<br>
&gt; <br>
&gt; Kindly help me out here. Thanks in advance, for the support.<br>
<br>
Thanks for your interest, but I&#39;m afraid your question isn&#39;t fittin=
g xen-devel.<br>
Please raise it on xen-users.<br>
<br>
Jan<br>
<br>
</blockquote></div>

--0000000000009d12b005d1fc8069--


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 07:29:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 07:29:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234880.407588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrxZZ-0004UL-QC; Tue, 30 Nov 2021 07:29:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234880.407588; Tue, 30 Nov 2021 07:29:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrxZZ-0004UE-Lt; Tue, 30 Nov 2021 07:29:05 +0000
Received: by outflank-mailman (input) for mailman id 234880;
 Tue, 30 Nov 2021 07:29:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mrxZY-0004S7-97
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 07:29:04 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3178fb5c-51af-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 08:29:03 +0100 (CET)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01lp2059.outbound.protection.outlook.com [104.47.2.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-22-_a-1MpBqPyaqeVCLWe4yBg-1; Tue, 30 Nov 2021 08:29:01 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6383.eurprd04.prod.outlook.com (2603:10a6:803:11b::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Tue, 30 Nov
 2021 07:28:59 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 07:28:59 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8P251CA0012.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::33) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.21 via Frontend Transport; Tue, 30 Nov 2021 07:28:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3178fb5c-51af-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638257343;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=riXpl2rI5n5scz2zsuRZ4uQqkJT+aptk+SVH1dCHE+M=;
	b=LtVbnqokfATBsZovl737DxHzCwrZpH6fSrz4mrAtNakQntg9cMDoHaq6vjaEkmocZ4FGCu
	p5CA3hLZMdQ6Vab5VgAuz3kn5l5zVbsfQH/bntrv3V0wkoZUoOBj5uvN6C2hHRgEuXxsKj
	SCSlsecqeHXp0J6yRTPKhcA6ZPXMP30=
X-MC-Unique: _a-1MpBqPyaqeVCLWe4yBg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MKaxCGfYbXJDYY4cIm4PTKocN1sLDYTL6HWdo19xbA4Xs7yKOU7Q5PvX64cgEMAw75G12T1CIdu8+jrLcR+GQDzk29TW6gXQUC9gOMdqbT+q8vFXIh0Uba1L0887rcFqgt9JrwzvWVoFhaGzb+BIFLcgfpXoumHIOEKXOtuVYEgtKzn10IdwSgoP8qZ67D4wXDq/yUyVil4ihTx0Ydf0a+n3da50FTZy4YpXYvoXqNGNorJXI1CqIP6lWQ1OazOUuUS/bTxfDI1OuYNgbZ2t7hOGLyxo+GwbDTc2hTHJ0m2oTwi3HUufDgp5tWg5LtS0VZpf4JjIqNF1mzyYm5O2rw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bcMuwCIf/3zNe7ITRHkVBpMM6xRtuH128dXgm68zJ9E=;
 b=ZZ9yFiGj8wG5bwYRFsJoL70MuauO6BdnPks/ZDsS/5+f40kLFPzggfkekJnNYYHEW76QhrO2bHeQTJb82his7NORB7kdrL9lmKqbh2LdIsoVZT/zo3ocJmt90s/Rg9pTxig4VD739M8/goyKS1DLlSE3E6a2IFudn+ihutH1j+PwqH6SENKz/CP/ES73N8pfpRuI2i8ssZulWVCR8z1334CRIEYKPLW+j/Ba7Wv3Gq2SMK1+QOj3dGBEJiZZzzt9YtC1qkRsUPsr293qu56GjVmS5L4Ie1uQNLAYxakFmk1XzCCWtQ7lSthXt46UMymy7gmhnVSrXKnyOvqoSYzmzQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ab477724-ed2d-9d3f-4cff-00872759b9b3@suse.com>
Date: Tue, 30 Nov 2021 08:28:58 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] x86/boot: Drop incorrect mapping at l2_xenmap[0]
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211129172617.12779-1-andrew.cooper3@citrix.com>
 <dbba70b3-d811-8f40-f847-d5f310a47c74@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <dbba70b3-d811-8f40-f847-d5f310a47c74@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS8P251CA0012.EURP251.PROD.OUTLOOK.COM
 (2603:10a6:20b:2f2::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b2abaaec-6199-4266-ea90-08d9b3d31384
X-MS-TrafficTypeDiagnostic: VE1PR04MB6383:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB6383DB66531E376DA94E7E1EB3679@VE1PR04MB6383.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	HkASVm5uRkxPs4dt6RNTyGVdiPB7t9ZV3rkOUZyVbCzysI7/nlM6s2qFG+Z8krOuHhWYGW++Wi46av3oudixLwK559JdYDIYy2g2jUYM3WbiVLaBrosEg1EptVJWuvSzXZrpo1y8O1hrNqFNTFfxBggaYaZT45Vo4+cxD2UVts3Pxn+3Hcv0nt6/UPqaUTDsxirf5cNAdEjRuifcXOCTqn8YKFHwwt3cL6XWqzDeHZMHXEJ9uMJO23iLFY9ZQPZ18wY84iPh+CA2pFVLbo9tafGYxRzxCgRRFj2/ohhrA8J9gkFfgvNfKCfH9wp+LLqS8/xLFqHbdhd/H5YL4yNy0WCT1xF1R4L/QBHD6bEGIBEJDxyq8wU8Ypq9o0y8aXf29nEkzQL/BqcFA8nDrt11gdX1uA+maUFsK0RdyzPWE0/OoCih4VpL6jSt8IEQzvu1VO4y7r0FkMMKGoT0lYzWwFvw11HXYZ9aqzy1jMRikWzPMfxPZrTss8uAw97iv4v4FbvPQbgMZxwTJLFrpY+4IOFEZBFkpknqmHTHgvQCVFyd6RCG5RHoIAJTnuOsmypEa7jvQFr3+Z53pc9FxKELqiud1fCGRrR/71eB+jpUVvZXPNpm24KfbKXCjG/gMKNibs+54ccJ8a8wRNsltanm3xaFsXYJ5irCcE21/EbSViZRFP1vs1o278y2i0LuOn3ZxGm/kGQLK5RuwDMX3ph8VQdStAlff1v/NZxoqyw+wJ8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66476007)(6486002)(83380400001)(4326008)(38100700002)(8936002)(54906003)(86362001)(31686004)(5660300002)(31696002)(110136005)(956004)(66946007)(66556008)(186003)(508600001)(36756003)(53546011)(16576012)(8676002)(2906002)(2616005)(26005)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ynoFLmP3abAnpXsK1RyaQrA6aaFCn8oJDClbkNChC5eqDHTcGUIJXiHwEq5D?=
 =?us-ascii?Q?NGkTyv5QuJFqrINUYanHf2NgfG0Wtg05TIt+4e+d2/MTAAn0+AzW0dvZQJAE?=
 =?us-ascii?Q?KegV3jszCqCrKvHEe7Q01nWX3kAXpVth1Cmv+qlp61217bAbwIp2cZ9zPaqj?=
 =?us-ascii?Q?0uXpWVWttiBY1GV1TUklsA8Wc8WTR7yEtYt7KqNQu5WM6/H3Xr/uyskdd+ZV?=
 =?us-ascii?Q?dzwOLgwVDe82XgNHVLPqrGW6WAjps3h2zvBOKDITerqWBVea86hRMCq85RBG?=
 =?us-ascii?Q?4JuEk/ohV+dpIgIk/bwrkqAnM5KIhD6ey6NzN61U5wo5E8aRJI1FO1lKGu43?=
 =?us-ascii?Q?2a7yD3IC0DmcmLkVcc60IrKk7hlPji+BpDDT3HhPAMexWxKSwxJPkW8H4U1Q?=
 =?us-ascii?Q?mBkLZHe+kYt80Q+CvhxctSDUM2cu7WrBatuNNiC4j0h53qvEQBvSe0vs/RTe?=
 =?us-ascii?Q?NR0i3Yrc/EyfZRWG71d3L5PEzHvcjPjlfF+dYShxzVWW2mvnY9gIaBsX82R5?=
 =?us-ascii?Q?zCwUZu0375RZxzVYX/TaU1OzWYZqHxyGeSPuowsZpbT0cIwW8/9NK/uhsGaB?=
 =?us-ascii?Q?YBSGE2nzs65yRPV96PTc4K3WtIDn+0yBSJAet4ByLF0ptX49g1DAQCn3psBI?=
 =?us-ascii?Q?VcUYUaliKMtAWaIbdaAH+Zt1gnp7n3X5GvhQTDjN/aisc4euZENlJFl9VRd9?=
 =?us-ascii?Q?Sv2xjc553sO00fqmODt91MNREEnYpMRyTQlkvQm2224eZDKYiEvHLt3b/ZR2?=
 =?us-ascii?Q?9WwyuowFd2HyfWla8VCNJfMiL8TpPq1L6DqFHwCf9qi1TQ+ubdwC0zMQEzG7?=
 =?us-ascii?Q?kguKXy59uk8sVFRmZy9a19IHu5hcc6106wWK2IbGlfGuu/rSesA96cpPA/YW?=
 =?us-ascii?Q?xxi5+dP4x31drABXCZocD3C1PzQCsTuMrT4auvrDWxFHLjbPdLpB3KfUvK7o?=
 =?us-ascii?Q?vduuvz/fhd9Y7V2ytMCJ/luDEZDZNHah4lSdI5fM0fClVcBU6ZkosMjYd88B?=
 =?us-ascii?Q?bW4t/S7NeDOOB4G1EdgzST7X4CELJnaoPFfqVPTPjj6Dhc+qBh8n61KcLpJf?=
 =?us-ascii?Q?Ty1T+zpHbONDKJFJbOzM459+mbe/tlpuB0awwlPDujAGQSsrkXRnjhjPjtTQ?=
 =?us-ascii?Q?57Kd6ZnWKummFPdSBLQe/Jok2Oumd6FvbI0s0VKXusOhQwV85f9sUADkWilK?=
 =?us-ascii?Q?D+cMCIoyjoyd79Tbw7PDPhIKN4oly+cV9iikr5LaFe7jzizLt3gd3NLQFW2r?=
 =?us-ascii?Q?IeV4pJsLk+wguFKQ+fDP4M6vJ1eXNhnZACIHayRGwjp8Gp/5sb5yCJf9l5Rk?=
 =?us-ascii?Q?ULl46goJsrE68Sbj3nurC8Mm2ekJQsmWvqbsYeClEl4ARiaUsm0XvZWSkxTg?=
 =?us-ascii?Q?q6eTGUzaaLNzxR/L+534P/5hw4eBqkY3lGnWI+DgF17z9vQFIQGBgXMYqShI?=
 =?us-ascii?Q?j6VN+4cUyQVAovd3FbsxHxvs4l5ueQWYhwx3sI97YQI24vTalsaTWY9/Bx3v?=
 =?us-ascii?Q?frgAmifUr3LkVCH87SXwLJYShpDWrn/RQrnQdKbPIyviZCr6UP8Go4OhlkEC?=
 =?us-ascii?Q?VLvS+6ntl4TiHdtGp9oHMUU37W7+rQ1OkwlSZR/iHV7QZTv1zum1umSCX8fb?=
 =?us-ascii?Q?uheCzAC3uimxWJyomekhKFA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b2abaaec-6199-4266-ea90-08d9b3d31384
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 07:28:59.8144
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fgSp2/JgoMvU9xLCcfVkE8ywVb6ZfY+MYpMo1N5uPWwm1hvYts+vbkCG1Kss4UPrnts94B0YQIVX6DPuPh6W/w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6383

On 29.11.2021 18:42, Andrew Cooper wrote:
> On 29/11/2021 17:26, Andrew Cooper wrote:
>> It has been 4 years since the default load address changed from 1M to 2M=
, and
>> _stext ceased residing in l2_xenmap[0].  We should not be inserting an u=
nused
>> mapping.
>>
>> To ensure we don't create/remove mappings accidentally, loop from 0 and =
obey
>> _PAGE_PRESENT on all entries.
>>
>> Fixes: 7ed93f3a0dff ("x86: change default load address from 1 MiB to 2 M=
iB")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>> CC: Wei Liu <wl@xen.org>
>>
>> I ought to have spotted this in c/s 52975142d154 ("x86/boot: Create the
>> l2_xenmap[] mappings dynamically") too.
>> ---
>>  xen/arch/x86/setup.c | 10 +++-------
>>  1 file changed, 3 insertions(+), 7 deletions(-)
>>
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index da47cdea14a1..6f241048425c 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1279,16 +1279,12 @@ void __init noreturn __start_xen(unsigned long m=
bi_p)
>> =20
>>              /* The only data mappings to be relocated are in the Xen ar=
ea. */
>>              pl2e =3D __va(__pa(l2_xenmap));
>> -            /*
>> -             * Undo the temporary-hooking of the l1_directmap.  __2M_te=
xt_start
>> -             * is contained in this PTE.
>> -             */
>> +
>>              BUG_ON(using_2M_mapping() &&
>>                     l2_table_offset((unsigned long)_erodata) =3D=3D
>>                     l2_table_offset((unsigned long)_stext));
>> -            *pl2e++ =3D l2e_from_pfn(xen_phys_start >> PAGE_SHIFT,
>> -                                   PAGE_HYPERVISOR_RX | _PAGE_PSE);
>> -            for ( i =3D 1; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
>> +
>> +            for ( i =3D 0; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
>>              {
>>                  unsigned int flags;
>> =20
>=20
> Actually, on further consideration, this hunk should be included too, to
> cross-check that we don't zap any of the dynamically created mappings.

I agree in principle, but ...

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1320,7 +1320,7 @@ void __init noreturn __start_xen(unsigned long mbi_=
p)
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 }
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 else
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 {
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *pl2e =3D l2e_empty();
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ASSERT_UNREACHABLE();
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 continue;
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 }

... this isn't going to help non-debug builds. Dropping the zapping would
mean release builds then run with an unadjusted PTE. I can see two options:
Extract the flags from the existing PTE as fallback (i.e. keeping the
ASSERT_UNREACHABLE()) or use BUG() instead.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 07:57:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 07:57:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234893.407599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mry0s-0007vz-7v; Tue, 30 Nov 2021 07:57:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234893.407599; Tue, 30 Nov 2021 07:57:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mry0s-0007vs-4l; Tue, 30 Nov 2021 07:57:18 +0000
Received: by outflank-mailman (input) for mailman id 234893;
 Tue, 30 Nov 2021 07:57:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1mry0q-0007vm-RW
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 07:57:17 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 21620951-51b3-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 08:57:14 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2059.outbound.protection.outlook.com [104.47.12.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-31-QIw2wq2YNmKVvxB3qAKj9g-1; Tue, 30 Nov 2021 08:57:13 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5597.eurprd04.prod.outlook.com (2603:10a6:803:dd::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 07:57:10 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 07:57:10 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR05CA0031.eurprd05.prod.outlook.com (2603:10a6:20b:2e::44) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.21 via Frontend Transport; Tue, 30 Nov 2021 07:57:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 21620951-51b3-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638259034;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=ApdZiVQqyuQXmeXu334eYxPkml/F76HUNqpOD2xqb28=;
	b=gOkTxPUr9vwquhuo7WCvFccaJVN+BkqPUdVhjUTSTjnbtKPRT8UUQYh//qc0/risnTlYja
	Gd8TpE2801qei/ENBMjWUY1TF9wFh7B7ueRdA/Ton4i4mE8RN6JHdXzyisD8ACHLjYJ+Xw
	NZqDeTVaLnk80UyytjVwbOYYUpX9ePQ=
X-MC-Unique: QIw2wq2YNmKVvxB3qAKj9g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=S9JRaTpembfwycHRyPbTSFBd0Oh//c5hEx7qXgQRbIGj1b/cAV/AZYTOj+2vVNeD6ZKHwRAnAe6p6I4pVkYr4vqHFTmSxpyq/rOZEGVh80Z2cL5rw1L0EjZ2PvPko8Jf4WD+SjHkFZ7HeCHzbjj5eXRUyxrxoX61HsKxztck06NczmqkDLemToRqmUBSVecSfpp9Lj+I/ldEvy/s+n7Kr1tv+VWdGpmGw19zRv2+3JOgWp35WjNRVEbM18ESs0iAYW8hWSimLm2nQ1nmus59RO5BcJ0FsQP6rFwJDgV0xe/gEp+luf1Hfn0GsMv/eQj2E+poUmbSCBFDuePVfTNzyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ApdZiVQqyuQXmeXu334eYxPkml/F76HUNqpOD2xqb28=;
 b=f9V2V+waRr6qaoWlF+OwfmNF83ZC8DrZmodOIX1+EtZ4J3+ZQlw7KXT2482ySUUOkdKXRdWObsJkzKNJdUAAp6uvBj2x0+KsuuIaiGjC9pkJl4suPa8k1OiQUzIxCgFVwF3T1YDXBPvh1cDItd4L2iqKPt8uCwqvTKeumiz7OFlzTVlqFt1BxLhY2PUtt7hHuLQdavnF8lmtVjdRa8sLYe0E+z7aQt79Ywth5X7NkPKW+Btw0cPZBftRhP7syJfXquqZbokf0qWywrbVj8945zDUxTW1nMqbPaJ9kJD4/GsTWKXwHfjnMgqBAqL/EP5p74ywWckS0xCgFLNrmTFlgw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7224343c-0af9-6610-a58b-291778183a53@suse.com>
Date: Tue, 30 Nov 2021 08:57:07 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [XEN v2] xen/arm64: io: Decode 32-bit ldr/str post-indexing
 instructions
Content-Language: en-US
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Cc: sstabellini@kernel.org, stefanos@xilinx.com, julien@xen.org,
 Volodymyr_Babchuk@epam.com, bertrand.marquis@arm.com,
 andre.przywara@arm.com, Ayan Kumar Halder <ayankuma@xilinx.com>,
 xen-devel@lists.xenproject.org
References: <20211129191638.19877-1-ayankuma@xilinx.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211129191638.19877-1-ayankuma@xilinx.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR05CA0031.eurprd05.prod.outlook.com
 (2603:10a6:20b:2e::44) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 88a38c15-90e8-4461-e3df-08d9b3d70324
X-MS-TrafficTypeDiagnostic: VI1PR04MB5597:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5597B56C05FF35269CFD8227B3679@VI1PR04MB5597.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	nn/fQS+TeypAt2RLaDwsOMEWBBbtcFJRVCISiK7bRtfKgGgxP3rRypZ3bPgxp/ig9qjYLRh2GVtloL6L35AsCcZ9vA5ihUIZbRkrYYl98PZ/y/ASbrkeWAlOEz1WMujC4Rk3yZWwDFHsrsdFDY+HHRtKKETlySRzOcKACrD6v5us9y+a6u0PKPlxJ2qHgSojxRX2LxHYORJNX/D25m0OJs4nnDlW2NTUZb39f6KOGrIDD5sbNRdorQ93fctkBeS4IFcRbpLBcCWG/zkyeiP+E372mVETK9Q+cm/aUCsRxLJIE22Is7OSH3B9KTUsiWFwUfUBUrMhNMx0rztmCUSQV6XasNxs9/ynHIwuWVk1fBV5OgL3x9dAwEeqm+M7UAaVhVapQDMptbz8oD0f8+3GFiFSJQVRpOMh8SJUpzyXD7MqjTqkFOptGcGHpaT6qtB/Qk91bNclnTfD+d5dzq7g+y5GFAwu1IrHMoY8m6D/VvzgNCmzcU+xxdoGkAmzcBzXM7KhEg9jsFhD+h4DknY8LPzUnEZnTmbQCN7JbWnk/XrGDlFPzrwkGH1NMPQz/fFOoRdxmdPBY0/h086C8B1WlZj6Q1mNFRtCB6080SsdxWxxvGJl8GXO46EzGF5lyQVZIDLw9frPQbqSIhqcFwQdGeYvE2MXp9/2fJOVav9sHeUM59LdCtaYSUuopIvo/mAcjLjW4vofgBYz+vO2Qf2U67iHTiSFPQ4Nnv6GKHSX6D94xgv6mT91A7gbvFmOhTef
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66556008)(66946007)(66476007)(38100700002)(6486002)(316002)(36756003)(2906002)(5660300002)(16576012)(4326008)(6916009)(31696002)(508600001)(26005)(8676002)(186003)(8936002)(86362001)(83380400001)(31686004)(53546011)(956004)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dER1WnRDY0thM3krWkpzZEVYLzlYbjhmWUlEdFluQnUzYkF5UmFYOG5QNXNC?=
 =?utf-8?B?Y1d0VU9CeUQvUXZrNi9PWGJVTW9hVWdzbTgwZGgyRzY0MW5WMzRBaHJPTzll?=
 =?utf-8?B?Zmw4OFk0V2dGZWxLOWJtaXJqdHQ2QllmMlVzOTdXNkZwWVJQb1orQitwTjNY?=
 =?utf-8?B?TWRwNWtCTE96dGxRc1FHTU9vMkxYd2xtdG15bDE3ZkUyb0o1bGR5L2dTeGtG?=
 =?utf-8?B?MEhTdFpQL3JEcWdSYng3OXZzcFhueWdYOW5Pd2xjZXdGWm1ySnhPT01scFU3?=
 =?utf-8?B?N2hRRlM4N1JTVGZvT1hNRGJoT3pkM3hWVGIvOEtyKzRRdGFUaStIbUxvN0xq?=
 =?utf-8?B?WjNvVHVVYVFOQUVYbXpzN3FIQjl3K0VLVTBSL3R3THAydVQ0SEVadUxMRVll?=
 =?utf-8?B?NWFZb3hHZlg0QUNmNm9NeHZlT3JEeXdibnQ2T2NhOFdxdHRSYnoyTzUrVFZY?=
 =?utf-8?B?OU4vdmorSi9pZHY4SHZTODZ2Smk5VTNpMkhORGpLWTV2NExmVjVyeFd2dmFQ?=
 =?utf-8?B?eDZCdXVrWnR4NGEwUTVVcGJTSnFUZFVpdnVMY1d4ZURQM1BIdjJBU3phY091?=
 =?utf-8?B?NXVXL3Jmc0Ixa3VnUkJ6alNheDhlTjdyTVF3WENFc3JCSjlHN0J1N0lENm4y?=
 =?utf-8?B?L2ZxRjhETW5GSWphNzl3YllSc1ZaZzlMZnI1d0RXSlJwMkIrQllRekdkMjhj?=
 =?utf-8?B?bk1oRDVCL25leDNELzlFbXpyV1hPSzJDa3p1Sy9rWDArOWRlVVFKZnB1enlC?=
 =?utf-8?B?UDdVNnVvTjVYQWVrSkJ5RXRtTG9aTkhTeWRkSlROZ0hTeGluUHpYMjlzQ3FU?=
 =?utf-8?B?bGxpeUF6Z2o4MXZ3c014bGxZcllMMlFPR3M2dVFDQ1lKK1hjRnc0ejJSYllK?=
 =?utf-8?B?dWVNd2tEQVc5WDJVSzk4c1VyYzhFNTIxZEhBUFpnWElldFBsL0lGYStCNnNm?=
 =?utf-8?B?L2t1SENoeXR3b2poTGs2b3l5RExvK3hhOStDWmZDZis5YzFOR0JtdWYxU09u?=
 =?utf-8?B?WkVFUE1oOVNRcDJYWGV1MU9aWGdPVE9RcWF4VzM5dkZnYVhMcDFNeW1SZHJa?=
 =?utf-8?B?OTJTOW1EMmhybXFRUFpTNFFpTTUxT3hxK0JsUkpCS0tmTExOdzJUeDFPQUJu?=
 =?utf-8?B?RXFaK3N2YVBibmZmcC9DaXc0M3V1dStBOWFuZWNNT0V5N2tCMTEzMUlBY1Uy?=
 =?utf-8?B?SFoydXczZzVIL0FDN0hsUm4yNHRwdTRUTXRnZHhkanpnSEkwdVdtTTVXMTNi?=
 =?utf-8?B?Sm9FcHUrZFZBL3I4ZjZHQ0VPdndZSjIrSUN3OFpRYklic2JST1ZPbHVkNXRO?=
 =?utf-8?B?eGQyVEI3N0pJUVZVTnJDOEVlZVhGTGtleG9PK09aRE5CNDRLa2pkaUV3SHFL?=
 =?utf-8?B?MXpKSkNJOGhwd3ljVnBXSDZZRU8yNTNDUENDVG8wc1RuczN4K2tROFRPMkRx?=
 =?utf-8?B?cXUwTFY5RHNVVVVwTnFZeHVla2RGUUxSbytSQVRQa3cxWkV3dGU5NldRSUdm?=
 =?utf-8?B?UjF6NkoyZ0ljdHJacjNKZU5TZlFaSFJYMTlVaVo5UVZ5VmNQUm5jeG5RU0NM?=
 =?utf-8?B?TU82RlY1VzRaZFJINnNTZHpVR1R6SVJGSWEwWjc4Wk1kUEYzVE53ZjRybEl6?=
 =?utf-8?B?WEc3aGt5ZU4rYVExUVNXUE1JMnhXRDZkcmtuVmY3cTJDM01JOHBqWEQyU2xp?=
 =?utf-8?B?OHpxRkY2RmxFOWY5aUwzUURiTWUyZnN3RkhaYXhkdjFudCtHOGhncVZ6THRT?=
 =?utf-8?B?UG1OUHJRam5RYW1ZMW5uM3RvY1doWEpqOXZ1WEpKRFl6NitRdWtON2JXYUx2?=
 =?utf-8?B?Wm04MXc1YTlLYndNOGoxTmRDTkhmdkZuOGJnK0NEcXpYaFJSdmtUNE1ieHpu?=
 =?utf-8?B?NTMxMWg3YVVXTTdlY2ltcyswZnNGMkE4eEwzRXZtNFRLWXIrakRKWEFvVmJL?=
 =?utf-8?B?T3pqeTNZaHo3ZW80WUZzb05UbUpNUG0wR04zV1l4Und1MjJ6OWR3ZVQwZmZB?=
 =?utf-8?B?V1FxSXMvQzFaTDhFUzlUdXhjYTVtbk50RnZhcVJZYytMNDRaK2xwcllTTGlH?=
 =?utf-8?B?ZVNSQnZpcDdzUE9sdmFoeEsxR3dDRllOcGJTVDllVk11OWx3dmNwNWYzUEZQ?=
 =?utf-8?B?WTMrVWVGV1dCM1pTbHhDL1dqcGIrQVI5YW9pQUN2dVRoNWtUV1cwZ0NGeHNY?=
 =?utf-8?Q?ShQEQLcYE6SQkOI0AqvqejI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 88a38c15-90e8-4461-e3df-08d9b3d70324
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 07:57:10.2974
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PQTkSwpLsmQOl/PdFkdHDYQRLfFgVAJ1U+baSfT7ZOPRDhMlAZekcqJxE3ntbYbHmNSahkZHVMdrvDnIXRk8Vw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5597

On 29.11.2021 20:16, Ayan Kumar Halder wrote:
> At the moment, Xen is only handling data abort with valid syndrome (i.e.
> ISV=0). Unfortunately, this doesn't cover all the instructions a domain
> could use to access MMIO regions.
> 
> For instance, Xilinx baremetal OS will use:
> 
>         volatile u32 *LocalAddr = (volatile u32 *)Addr;
>         *LocalAddr = Value;
> 
> This leave the compiler to decide which store instructions to use. This
> may be a post-index store instruction where the HW will not provide a
> valid syndrome.
> 
> In order to handle post-indexing store/load instructions, Xen will need
> to fetch and decode the instruction.
> 
> This patch only cover post-index store/load instructions from AArch64 mode.
> For now, this is left unimplemented for trap from AArch32 mode.
> 
> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>

Just a couple of general remarks, with no judgement towards its use
in the codebase, and leaving out several obvious style issues.

> Changelog :-
> 
> v2 :- 1. Updated the rn register after reading from it. (Pointed by Julien,
>  Stefano)
> 2. Used a union to represent the instruction opcode (Suggestd by Bertrand)
> 3. Fixed coding style issues (Pointed by Julien)
> 4. In the previous patch, I was updating dabt->sign based on the signedness of
> imm9. This was incorrect. As mentioned in ARMv8 ARM  DDI 0487G.b, Page 3221,
> SSE indicates the signedness of the data item loaded. In our case, the data item
> loaded is always unsigned.
> 
> This has been tested for the following cases :-
> ldr x2, [x1], #4

DYM "ldr w2, [x1], #4" or "ldr x2, [x1], #8" here?

> ldr w2, [x1], #-4
> 
> str x2, [x1], #4

Similar aspect here.

> str w2, [x1], #-4
> 
> The reason being  I am testing on 32bit MMIO registers only. I don't see a 8bit
> or 16bit MMIO register.

As per this, perhaps the former of the two.

> --- a/xen/arch/arm/decode.c
> +++ b/xen/arch/arm/decode.c
> @@ -84,6 +84,66 @@ bad_thumb2:
>      return 1;
>  }
>  
> +static int decode_32bit_loadstore_postindexing(register_t pc,
> +                                               struct hsr_dabt *dabt,
> +                                               union ldr_str_instr_class *instr)
> +{
> +    if ( raw_copy_from_guest(&instr->value, (void * __user)pc, sizeof (instr)) )
> +        return -EFAULT;
> +
> +    /* First, let's check for the fixed values */
> +    if ( !((instr->code.fixed1 == 1) && (instr->code.fixed2 == 0) &&
> +         (instr->code.fixed3 == 0) && (instr->code.fixed4 == 7)) )
> +    {
> +        gprintk(XENLOG_ERR, "Decoding not supported for instructions other than"
> +            " ldr/str post indexing\n");
> +        goto bad_32bit_loadstore;
> +    }
> +
> +    if ( instr->code.size != 2 )
> +    {
> +        gprintk(XENLOG_ERR,
> +            "ldr/str post indexing is supported for 32 bit variant only\n");
> +        goto bad_32bit_loadstore;
> +    }
> +
> +    if ( instr->code.v != 0 )
> +    {
> +        gprintk(XENLOG_ERR,
> +            "ldr/str post indexing for vector types are not supported\n");
> +        goto bad_32bit_loadstore;
> +    }
> +
> +    /* Check for STR (immediate) - 32 bit variant */
> +    if ( instr->code.opc == 0 )
> +    {
> +        dabt->write = 1;
> +    }
> +    /* Check for LDR (immediate) - 32 bit variant */
> +    else if ( instr->code.opc == 1 )
> +    {
> +        dabt->write = 0;
> +    }
> +    else
> +    {
> +        gprintk(XENLOG_ERR,
> +            "Decoding ldr/str post indexing is not supported for this variant\n");
> +        goto bad_32bit_loadstore;
> +    }
> +
> +    gprintk(XENLOG_INFO,
> +        "instr->code.rt = 0x%x, instr->code.size = 0x%x, instr->code.imm9 = %d\n",
> +        instr->code.rt, instr->code.size, instr->code.imm9);
> +
> +    update_dabt(dabt, instr->code.rt, instr->code.size, false);
> +    dabt->valid = 1;
> +
> +    return 0;
> +bad_32bit_loadstore:

Please indent labels by at least a blank. I also think this would
benefit from a preceding blank line.

> --- a/xen/arch/arm/io.c
> +++ b/xen/arch/arm/io.c
> @@ -65,6 +65,16 @@ static enum io_state handle_write(const struct mmio_handler *handler,
>      return ret ? IO_HANDLED : IO_ABORT;
>  }
>  
> +static void post_incremenet_register(union ldr_str_instr_class *instr)

I think you mean post_increment_register()?

> +{
> +    struct cpu_user_regs *regs = guest_cpu_user_regs();
> +    unsigned int val;
> +
> +    val = get_user_reg(regs, instr->code.rn);
> +    val += instr->code.imm9;
> +    set_user_reg(regs, instr->code.rn, val);

I don't think this handles the SP case correctly, and I also don't see
that case getting rejected elsewhere.

> --- a/xen/include/asm-arm/hsr.h
> +++ b/xen/include/asm-arm/hsr.h
> @@ -15,6 +15,32 @@ enum dabt_size {
>      DABT_DOUBLE_WORD = 3,
>  };
>  
> +/*
> + * Refer to the ARMv8 ARM (DDI 0487G.b), Section C4.1.4 Loads and Stores
> + * Page 318 specifies the following bit pattern for
> + * "load/store register (immediate post-indexed)".
> + *
> + * 31 30 29  27 26 25  23   21 20              11   9         4       0
> + * ___________________________________________________________________
> + * |size|1 1 1 |V |0 0 |opc |0 |      imm9     |0 1 |  Rn     |  Rt   |
> + * |____|______|__|____|____|__|_______________|____|_________|_______|
> + */
> +union ldr_str_instr_class {
> +    uint32_t value;
> +    struct ldr_str {
> +        unsigned int rt:5;     /* Rt register */
> +        unsigned int rn:5;     /* Rn register */
> +        unsigned int fixed1:2; /* value == 01b */
> +        int imm9:9;            /* imm9 */

Plain int bitfields are, iirc, signed or unsigned at the compiler's
discretion. Hence I think you mean explicitly "signed int" here.

> +        unsigned int fixed2:1; /* value == 0b */
> +        unsigned int opc:2;    /* opc */
> +        unsigned int fixed3:2; /* value == 00b */
> +        unsigned int v:1;      /* vector */
> +        unsigned int fixed4:3; /* value == 111b */
> +        unsigned int size:2;   /* size */
> +    } code;
> +};

I'd recommend types needed in just one CU to live there, rather than
getting exposed to every source file including this header (even more
so when - aiui - this is entirely unrelated to HSR). When used in
just a single function, it might even want to live here (i.e. as
close as possible to the [only] use).

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 09:38:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 09:38:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234930.407634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrza6-0002rc-V3; Tue, 30 Nov 2021 09:37:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234930.407634; Tue, 30 Nov 2021 09:37:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrza6-0002rV-Rk; Tue, 30 Nov 2021 09:37:46 +0000
Received: by outflank-mailman (input) for mailman id 234930;
 Tue, 30 Nov 2021 09:37:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JSNa=QR=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1mrza5-0002rP-9I
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 09:37:45 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2061e.outbound.protection.outlook.com
 [2a01:111:f400:7e89::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29c1fd70-51c1-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 10:37:43 +0100 (CET)
Received: from DM6PR14CA0052.namprd14.prod.outlook.com (2603:10b6:5:18f::29)
 by MN2PR02MB6720.namprd02.prod.outlook.com (2603:10b6:208:1db::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Tue, 30 Nov
 2021 09:37:39 +0000
Received: from DM3NAM02FT018.eop-nam02.prod.protection.outlook.com
 (2603:10b6:5:18f:cafe::80) by DM6PR14CA0052.outlook.office365.com
 (2603:10b6:5:18f::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11 via Frontend
 Transport; Tue, 30 Nov 2021 09:37:38 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (149.199.80.198) by
 DM3NAM02FT018.mail.protection.outlook.com (10.13.4.68) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4734.20 via Frontend Transport; Tue, 30 Nov 2021 09:37:38 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Tue, 30 Nov 2021 09:37:37 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Tue, 30 Nov 2021 09:37:37 +0000
Received: from [10.71.116.171] (port=25679)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1mrzZx-0007Ep-Db; Tue, 30 Nov 2021 09:37:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29c1fd70-51c1-11ec-976b-d102b41d0961
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VebqSD2otrL0s47bIKk7LlJ+Ndlcq7vmwk86j6wWbgK+9RQVnddl1eGN403ZPIq+EHA2p4q/H4ZUugeDEYTUhQlg8flusRFp/0sZB5l/+hqr95KRH4LGck5n0AqmZduuxqrXoSXPROBuH0YJqEH6yD7Emnflp4s1DL0q8P1wHoOQ68ys8zO/vrbnxi0Ni3kJ+z1aW+3GwxIR7WARyp14bH4aVTL6mGsJ6S6WuLKwnVRh/KKFnICNH+6ZnSkT+ic7B0xelp0wFTKjlcsa3LRlqhORCpWRlpDoVYBuNHjv2RQZIJRfjNF9AY1+3z0BM2Kzoio0qT7kpK0gbJJZzPPc9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SGAqY3rQKfk9bdVR7tekPQeLGr47yvIFoW+d0eFlWrI=;
 b=PVzxdWmaW+Fj5Ggm5sv8LFKoBNDkPqQnOo/2EdJT4QBKT2Nafo6WHwz+u/6Bm6CfgcStELVkmraIXiSUV3JmRHwor4JaM9n120YVaaNk74j+/J4xMwkZHfjXX9F84y58FmdZtlYU8T/l1g5jGrLIgFbqeNkWjUea4dzDZHx/gk8aobQszbY53z4JZToZkXzqogD35jXWFJomoLed6z6sggLQQ/KVuMma/8fBAMRdtDxAuTbDTcs5RLG/VHk+wO0O+GZpTYYTdt2/XxwPQkoCs8YbSqhc2cVcMkvYjRNrrKmOE26TiE6uvcp/W63fOwDgB1IQ2fu0ief/X34sYyoGog==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=suse.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SGAqY3rQKfk9bdVR7tekPQeLGr47yvIFoW+d0eFlWrI=;
 b=E+gwn0biOUGwfNDKK1x0QDDWaxX2efHex5ve8Xhw7GqaYoXnJcgGTpZZPk0pHrsGkPMvdrtjAvbgfadOxwPSWBP1PzpFBU/g9oA1pnHvsrKKlfrYneerU1PBS8TINb5Zwo7GRTHjV4iZR2VbaDT5gvCyO0UylbPEGHLkWB9Edl8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch02.xlnx.xilinx.com;
Message-ID: <bf77c97c-df14-b6f9-cd8c-b3d86568037d@xilinx.com>
Date: Tue, 30 Nov 2021 09:37:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] Fixed an incorrect value
To: Jan Beulich <jbeulich@suse.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>
CC: <sstabellini@kernel.org>, <stefanos@xilinx.com>, <julien@xen.org>,
	<Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
References: <20211129194450.62467-1-ayankuma@xilinx.com>
 <3f0230f3-79d2-d40e-f3f3-33201c2792b0@suse.com>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <3f0230f3-79d2-d40e-f3f3-33201c2792b0@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bb38c7fb-bf4f-4298-4e26-08d9b3e50c7a
X-MS-TrafficTypeDiagnostic: MN2PR02MB6720:
X-Microsoft-Antispam-PRVS:
	<MN2PR02MB6720F14CB9D53A982B045209B2679@MN2PR02MB6720.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	V7/UXIO8TuEEzBpljyi8OLi10vz2hUxITBacMXndOuA8lPVdROz27SWrQvo1ORlhF0sJ5jrOBObIyYngWsxnvpMZKiGtRJ1FnYPuVL1wZRRmxGT+HVd3woSdAJOWU0Ytk95hInOfw6WWXstJ81T3Neb0fJF71LGKd6tO3R+5g17OS1lfKJBoXP/yPg8G5YRJ5/qx6qWMezs2LSsqQuWZ/K0bbVMhIKdA2Y5Zm8tRq9BPV/iDkqqyZIniQ2dVC0c4fqB/9VIMd38eSv9KXydV3CYqCtoDVf1pYS4R0gz2KARuZ526bKY5q02AN56wY7I8XH7W2hpVRewBIMd+HK2kSrWy3GFaDqyN9D9hjV8+0pHC4dDWaRKEKOfTUX+VqVNJNNLcJVcqeZbu4fLUNpF7jOQL3Kv6GVMSV2EFP/RjOc9ekby+Oml5HUkIImPZx1d6IM5wSOWHE1991g7AxXq7Fh4x3KwKihJF6Wgd2nRWtCnHf3cMJZECsKdh+QHHknSK6zD6dS8Kp2Zno7nXHjOyJp0HSd/qiAb5cQO0qjRIPoUw9N1fj+A7bV0wkqSfTO/LtvRmC7kTis9URnpjxaRo4u0yD8S5J1Rg11WWqPQ0GKamfO/1w9Xsgv0oB9udpTIjXcA09xBlNzYQfS/CH7yMfB7BK0pNxPCm+Zi4XrS2VQi9T7t21Y9vuJVL98g5fv8ftMSAhNAEoKBloewEVNEU5NfIa9Xbhoq3zmflAq+37N6GD+6gmtuwwW+GrdW2YVlaSQ+DOB560mPvbs1DS2RcAw==
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch02.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(426003)(31696002)(26005)(508600001)(8676002)(2616005)(53546011)(47076005)(54906003)(356005)(9786002)(36756003)(316002)(4744005)(8936002)(336012)(2906002)(82310400004)(7636003)(4326008)(36860700001)(70206006)(5660300002)(31686004)(70586007)(110136005)(186003)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 09:37:38.5711
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bb38c7fb-bf4f-4298-4e26-08d9b3e50c7a
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT018.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR02MB6720

Hi Jan,

Thanks for the review. Just one question.

On 30/11/2021 07:18, Jan Beulich wrote:
> On 29.11.2021 20:44, Ayan Kumar Halder wrote:
>> GENMASK(30, 21) should be 0x07fe00000
> 
> Please can this have a meaningful title? E.g. "bitops: fix incorrect
> value in comment"?
> 
>> --- a/xen/include/xen/bitops.h
>> +++ b/xen/include/xen/bitops.h
>> @@ -5,7 +5,7 @@
>>   /*
>>    * Create a contiguous bitmask starting at bit position @l and ending at
>>    * position @h. For example
>> - * GENMASK(30, 21) gives us the 32bit vector 0x01fe00000.
>> + * GENMASK(30, 21) gives us the 32bit vector 0x07fe00000.
> 
> Once at it I think you also want to
> - replace the word "vector",
Should I replace "vector" with "value" ?

- Ayan

> - drop the odd leading 0: The number would better be 8 digits or
>    16 digits, but not 9.
> 
> Jan
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 09:46:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 09:46:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234936.407644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrzi2-0004IE-Ob; Tue, 30 Nov 2021 09:45:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234936.407644; Tue, 30 Nov 2021 09:45:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrzi2-0004I7-Lf; Tue, 30 Nov 2021 09:45:58 +0000
Received: by outflank-mailman (input) for mailman id 234936;
 Tue, 30 Nov 2021 09:45:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1mrzi0-0004I1-W5
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 09:45:56 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f6e3911-51c2-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 10:45:55 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:34496)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1mrzhx-000KO4-8j (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 09:45:53 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 832251FB4D;
 Tue, 30 Nov 2021 09:45:53 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f6e3911-51c2-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <362681b8-ad0a-02a9-ecc5-ff067002b143@srcf.net>
Date: Tue, 30 Nov 2021 09:45:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211129172617.12779-1-andrew.cooper3@citrix.com>
 <dbba70b3-d811-8f40-f847-d5f310a47c74@srcf.net>
 <ab477724-ed2d-9d3f-4cff-00872759b9b3@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] x86/boot: Drop incorrect mapping at l2_xenmap[0]
In-Reply-To: <ab477724-ed2d-9d3f-4cff-00872759b9b3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/11/2021 07:28, Jan Beulich wrote:
> On 29.11.2021 18:42, Andrew Cooper wrote:
>> On 29/11/2021 17:26, Andrew Cooper wrote:
>>> It has been 4 years since the default load address changed from 1M to 2M, and
>>> _stext ceased residing in l2_xenmap[0].  We should not be inserting an unused
>>> mapping.
>>>
>>> To ensure we don't create/remove mappings accidentally, loop from 0 and obey
>>> _PAGE_PRESENT on all entries.
>>>
>>> Fixes: 7ed93f3a0dff ("x86: change default load address from 1 MiB to 2 MiB")
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>> CC: Wei Liu <wl@xen.org>
>>>
>>> I ought to have spotted this in c/s 52975142d154 ("x86/boot: Create the
>>> l2_xenmap[] mappings dynamically") too.
>>> ---
>>>  xen/arch/x86/setup.c | 10 +++-------
>>>  1 file changed, 3 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>>> index da47cdea14a1..6f241048425c 100644
>>> --- a/xen/arch/x86/setup.c
>>> +++ b/xen/arch/x86/setup.c
>>> @@ -1279,16 +1279,12 @@ void __init noreturn __start_xen(unsigned long mbi_p)
>>>  
>>>              /* The only data mappings to be relocated are in the Xen area. */
>>>              pl2e = __va(__pa(l2_xenmap));
>>> -            /*
>>> -             * Undo the temporary-hooking of the l1_directmap.  __2M_text_start
>>> -             * is contained in this PTE.
>>> -             */
>>> +
>>>              BUG_ON(using_2M_mapping() &&
>>>                     l2_table_offset((unsigned long)_erodata) ==
>>>                     l2_table_offset((unsigned long)_stext));
>>> -            *pl2e++ = l2e_from_pfn(xen_phys_start >> PAGE_SHIFT,
>>> -                                   PAGE_HYPERVISOR_RX | _PAGE_PSE);
>>> -            for ( i = 1; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
>>> +
>>> +            for ( i = 0; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
>>>              {
>>>                  unsigned int flags;
>>>  
>> Actually, on further consideration, this hunk should be included too, to
>> cross-check that we don't zap any of the dynamically created mappings.
> I agree in principle, but ...
>
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1320,7 +1320,7 @@ void __init noreturn __start_xen(unsigned long mbi_p)
>>                  }
>>                  else
>>                  {
>> -                    *pl2e = l2e_empty();
>> +                    ASSERT_UNREACHABLE();
>>                      continue;
>>                  }
> ... this isn't going to help non-debug builds. Dropping the zapping would
> mean release builds then run with an unadjusted PTE. I can see two options:
> Extract the flags from the existing PTE as fallback (i.e. keeping the
> ASSERT_UNREACHABLE()) or use BUG() instead.

I've actually dropped this entire block of code with a later cleanup, so
I'll leave this hunk alone and post the whole series.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 09:50:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 09:50:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234944.407656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrzlv-00054J-FO; Tue, 30 Nov 2021 09:49:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234944.407656; Tue, 30 Nov 2021 09:49:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1mrzlv-00054C-C7; Tue, 30 Nov 2021 09:49:59 +0000
Received: by outflank-mailman (input) for mailman id 234944;
 Tue, 30 Nov 2021 09:49:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nk0L=QR=arm.com=andre.przywara@srs-se1.protection.inumbo.net>)
 id 1mrzlu-000546-4b
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 09:49:58 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id df370343-51c2-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 10:49:55 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C0FBD1063;
 Tue, 30 Nov 2021 01:49:54 -0800 (PST)
Received: from donnerap.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com
 [10.121.207.14])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 891773F694;
 Tue, 30 Nov 2021 01:49:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df370343-51c2-11ec-976b-d102b41d0961
Date: Tue, 30 Nov 2021 09:49:50 +0000
From: Andre Przywara <andre.przywara@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Cc: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
 <stefanos@xilinx.com>, <julien@xen.org>, <Volodymyr_Babchuk@epam.com>,
 <bertrand.marquis@arm.com>, <jbeulich@suse.com>, Ayan Kumar Halder
 <ayankuma@xilinx.com>
Subject: Re: [XEN v2] xen/arm64: io: Decode 32-bit ldr/str post-indexing
 instructions
Message-ID: <20211130094950.1bf368d6@donnerap.cambridge.arm.com>
In-Reply-To: <20211129191638.19877-1-ayankuma@xilinx.com>
References: <20211129191638.19877-1-ayankuma@xilinx.com>
Organization: ARM
X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; aarch64-unknown-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Mon, 29 Nov 2021 19:16:38 +0000
Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:

Hi,

> At the moment, Xen is only handling data abort with valid syndrome (i.e.
> ISV=3D0). Unfortunately, this doesn't cover all the instructions a domain
> could use to access MMIO regions.
>=20
> For instance, Xilinx baremetal OS will use:
>=20
>         volatile u32 *LocalAddr =3D (volatile u32 *)Addr;
>         *LocalAddr =3D Value;
>=20
> This leave the compiler to decide which store instructions to use.

As mentioned in the other email, this is wrong, if this points to MMIO:
don't let the compiler do MMIO accesses. If a stage 2 fault isn't in
an MMIO area, you should not see traps that you cannot handle already.

So I don't think it's a good idea to use that as an example. And since
this patch only seems to address this use case, I would doubt its
usefulness in general.

> This
> may be a post-index store instruction where the HW will not provide a
> valid syndrome.
>=20
> In order to handle post-indexing store/load instructions, Xen will need
> to fetch and decode the instruction.
>=20
> This patch only cover post-index store/load instructions from AArch64
> mode. For now, this is left unimplemented for trap from AArch32 mode.
>=20
> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
> ---
>=20
> Changelog :-
>=20
> v2 :- 1. Updated the rn register after reading from it. (Pointed by
> Julien, Stefano)
> 2. Used a union to represent the instruction opcode (Suggestd by
> Bertrand) 3. Fixed coding style issues (Pointed by Julien)
> 4. In the previous patch, I was updating dabt->sign based on the
> signedness of imm9. This was incorrect. As mentioned in ARMv8 ARM  DDI
> 0487G.b, Page 3221, SSE indicates the signedness of the data item
> loaded. In our case, the data item loaded is always unsigned.
>=20
> This has been tested for the following cases :-
> ldr x2, [x1], #4

As Jan already mentioned: this is a bad example. First, this is a 64-bit
access, which you don't emulate below. And second, you want to keep the
pointer aligned. Unaligned accesses to device memory always trap, as per
the architecture, even on bare metal.

>=20
> ldr w2, [x1], #-4
>=20
> str x2, [x1], #4

Same as above.

> str w2, [x1], #-4
>=20
> The reason being  I am testing on 32bit MMIO registers only. I don't see
> a 8bit or 16bit MMIO register.

Where did you look? There are plenty of examples out there, even the GIC
allows 8-bit accesses to certain registers (grep for "VGIC_ACCESS_"), and
the Linux GIC driver is using them (but with proper accessors, of course).
Also GICv3 supports 64-bit accesses to some registers. Some PL011 UARTs use
16-bit MMIO accesses.

>  xen/arch/arm/decode.c     | 68 ++++++++++++++++++++++++++++++++++++++-
>  xen/arch/arm/decode.h     |  3 +-
>  xen/arch/arm/io.c         | 40 +++++++++++++++++++----
>  xen/include/asm-arm/hsr.h | 26 +++++++++++++++
>  4 files changed, 129 insertions(+), 8 deletions(-)
>=20
> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
> index 792c2e92a7..0b3e8fcbc6 100644
> --- a/xen/arch/arm/decode.c
> +++ b/xen/arch/arm/decode.c
> @@ -84,6 +84,66 @@ bad_thumb2:
>      return 1;
>  }
> =20
> +static int decode_32bit_loadstore_postindexing(register_t pc,
> +                                               struct hsr_dabt *dabt,
> +                                               union ldr_str_instr_class=
 *instr)
> +{
> +    if ( raw_copy_from_guest(&instr->value, (void * __user)pc, sizeof (i=
nstr)) )
> +        return -EFAULT;
> +
> +    /* First, let's check for the fixed values */
> +    if ( !((instr->code.fixed1 =3D=3D 1) && (instr->code.fixed2 =3D=3D 0=
) &&
> +         (instr->code.fixed3 =3D=3D 0) && (instr->code.fixed4 =3D=3D 7))=
 )
> +    {
> +        gprintk(XENLOG_ERR, "Decoding not supported for instructions oth=
er than"
> +            " ldr/str post indexing\n");
> +        goto bad_32bit_loadstore;
> +    }
> +
> +    if ( instr->code.size !=3D 2 )

I don't see a good reason for this limitation. If you are going to dissect
the instruction, why not just support at least all access widths, so
64-bits, but also {ldr,str}{b,w}? I think the framework does the heavy
lifting for you already?
Same for the restriction to post-index above, supporting pre-index as well
should be easy.

To me this has the bitter taste for being a one trick pony to work around
your particular (broken!) use case.

> +    {
> +        gprintk(XENLOG_ERR,
> +            "ldr/str post indexing is supported for 32 bit variant only\=
n");
> +        goto bad_32bit_loadstore;
> +    }
> +
> +    if ( instr->code.v !=3D 0 )
> +    {
> +        gprintk(XENLOG_ERR,
> +            "ldr/str post indexing for vector types are not supported\n"=
);
> +        goto bad_32bit_loadstore;
> +    }
> +
> +    /* Check for STR (immediate) - 32 bit variant */
> +    if ( instr->code.opc =3D=3D 0 )
> +    {
> +        dabt->write =3D 1;
> +    }
> +    /* Check for LDR (immediate) - 32 bit variant */
> +    else if ( instr->code.opc =3D=3D 1 )
> +    {
> +        dabt->write =3D 0;
> +    }
> +    else
> +    {
> +        gprintk(XENLOG_ERR,
> +            "Decoding ldr/str post indexing is not supported for this va=
riant\n");
> +        goto bad_32bit_loadstore;
> +    }
> +
> +    gprintk(XENLOG_INFO,
> +        "instr->code.rt =3D 0x%x, instr->code.size =3D 0x%x, instr->code=
.imm9 =3D %d\n",
> +        instr->code.rt, instr->code.size, instr->code.imm9);
> +
> +    update_dabt(dabt, instr->code.rt, instr->code.size, false);
> +    dabt->valid =3D 1;
> +
> +    return 0;
> +bad_32bit_loadstore:
> +    gprintk(XENLOG_ERR, "unhandled 32bit Arm instruction 0x%x\n", instr-=
>value);
> +    return 1;
> +}
> +
>  static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>  {
>      uint16_t instr;
> @@ -150,11 +210,17 @@ bad_thumb:
>      return 1;
>  }
> =20
> -int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt=
 *dabt)
> +int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt=
 *dabt,
> +                       union ldr_str_instr_class *instr)
>  {
>      if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
>          return decode_thumb(regs->pc, dabt);
> =20
> +    if ( (is_64bit_domain(current->domain) && !psr_mode_is_32bit(regs)) )
> +    {
> +        return decode_32bit_loadstore_postindexing(regs->pc, dabt, instr=
);
> +    }
> +
>      /* TODO: Handle ARM instruction */
>      gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
> =20
> diff --git a/xen/arch/arm/decode.h b/xen/arch/arm/decode.h
> index 4613763bdb..d82fc4a0f6 100644
> --- a/xen/arch/arm/decode.h
> +++ b/xen/arch/arm/decode.h
> @@ -35,7 +35,8 @@
>   */
> =20
>  int decode_instruction(const struct cpu_user_regs *regs,
> -                       struct hsr_dabt *dabt);
> +                       struct hsr_dabt *dabt,
> +                       union ldr_str_instr_class *instr);
> =20
>  #endif /* __ARCH_ARM_DECODE_H_ */
> =20
> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
> index 729287e37c..0d60754bc4 100644
> --- a/xen/arch/arm/io.c
> +++ b/xen/arch/arm/io.c
> @@ -65,6 +65,16 @@ static enum io_state handle_write(const struct
> mmio_handler *handler, return ret ? IO_HANDLED : IO_ABORT;
>  }
> =20
> +static void post_incremenet_register(union ldr_str_instr_class *instr)
> +{
> +    struct cpu_user_regs *regs =3D guest_cpu_user_regs();
> +    unsigned int val;
> +
> +    val =3D get_user_reg(regs, instr->code.rn);
> +    val +=3D instr->code.imm9;
> +    set_user_reg(regs, instr->code.rn, val);
> +}
> +
>  /* This function assumes that mmio regions are not overlapped */
>  static int cmp_mmio_handler(const void *key, const void *elem)
>  {
> @@ -106,14 +116,26 @@ enum io_state try_handle_mmio(struct cpu_user_regs
> *regs, .gpa =3D gpa,
>          .dabt =3D dabt
>      };
> +    int rc;
> +    union ldr_str_instr_class instr =3D {0};
> =20
>      ASSERT(hsr.ec =3D=3D HSR_EC_DATA_ABORT_LOWER_EL);
> =20
> +    /*
> +     * Armv8 processor does not provide a valid syndrome for post-indexi=
ng
> +     * ldr/str instructions. So in order to process these instructions,
> +     * Xen must decode them.
> +     */
> +    if ( !info.dabt.valid )
> +    {
> +        rc =3D decode_instruction(regs, &info.dabt, &instr);
> +        if ( rc )
> +            return IO_ABORT;
> +    }
> +
>      handler =3D find_mmio_handler(v->domain, info.gpa);
>      if ( !handler )
>      {
> -        int rc;
> -
>          rc =3D try_fwd_ioserv(regs, v, &info);
>          if ( rc =3D=3D IO_HANDLED )
>              return handle_ioserv(regs, v);
> @@ -122,7 +144,7 @@ enum io_state try_handle_mmio(struct cpu_user_regs
> *regs, }
> =20
>      /* All the instructions used on emulated MMIO region should be
> valid */
> -    if ( !dabt.valid )
> +    if ( !info.dabt.valid )
>          return IO_ABORT;
> =20
>      /*
> @@ -134,7 +156,7 @@ enum io_state try_handle_mmio(struct cpu_user_regs
> *regs, {
>          int rc;
> =20
> -        rc =3D decode_instruction(regs, &info.dabt);
> +        rc =3D decode_instruction(regs, &info.dabt, NULL);
>          if ( rc )
>          {
>              gprintk(XENLOG_DEBUG, "Unable to decode instruction\n");
> @@ -143,9 +165,15 @@ enum io_state try_handle_mmio(struct cpu_user_regs
> *regs, }
> =20
>      if ( info.dabt.write )
> -        return handle_write(handler, v, &info);
> +        rc =3D handle_write(handler, v, &info);
>      else
> -        return handle_read(handler, v, &info);
> +        rc =3D handle_read(handler, v, &info);
> +
> +    if ( instr.value !=3D 0 )
> +    {
> +        post_incremenet_register(&instr);
> +    }
> +    return rc;
>  }
> =20
>  void register_mmio_handler(struct domain *d,
> diff --git a/xen/include/asm-arm/hsr.h b/xen/include/asm-arm/hsr.h
> index 9b91b28c48..72d67d2801 100644
> --- a/xen/include/asm-arm/hsr.h
> +++ b/xen/include/asm-arm/hsr.h
> @@ -15,6 +15,32 @@ enum dabt_size {
>      DABT_DOUBLE_WORD =3D 3,
>  };
> =20
> +/*
> + * Refer to the ARMv8 ARM (DDI 0487G.b), Section C4.1.4 Loads and Stores
> + * Page 318 specifies the following bit pattern for
> + * "load/store register (immediate post-indexed)".
> + *
> + * 31 30 29  27 26 25  23   21 20              11   9         4       0
> + * ___________________________________________________________________
> + * |size|1 1 1 |V |0 0 |opc |0 |      imm9     |0 1 |  Rn     |  Rt   |
> + * |____|______|__|____|____|__|_______________|____|_________|_______|
> + */
> +union ldr_str_instr_class {
> +    uint32_t value;
> +    struct ldr_str {
> +        unsigned int rt:5;     /* Rt register */

I don't think it's a particular good idea to use a bit-field here, if that
is expected to mimic a certain hardware provided bit pattern.
It works in practise (TM), but the C standard does not guarantee the order
the bits are allocated (ISO/IEC 9899:201x =C2=A76.7.2.1, stanza 11).
Since you are *reading* only from the instruction word, you should get away
with accessor macros to extract the bits you need. For instance for
filtering the opcode, you could use: ((insn & 0x3fe00c00) =3D=3D 0x38400400)

Cheers,
Andre

> +        unsigned int rn:5;     /* Rn register */
> +        unsigned int fixed1:2; /* value =3D=3D 01b */
> +        int imm9:9;            /* imm9 */
> +        unsigned int fixed2:1; /* value =3D=3D 0b */
> +        unsigned int opc:2;    /* opc */
> +        unsigned int fixed3:2; /* value =3D=3D 00b */
> +        unsigned int v:1;      /* vector */
> +        unsigned int fixed4:3; /* value =3D=3D 111b */
> +        unsigned int size:2;   /* size */
> +    } code;
> +};
> +
>  union hsr {
>      register_t bits;
>      struct {



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:05:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234953.407684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00c-0007j8-TY; Tue, 30 Nov 2021 10:05:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234953.407684; Tue, 30 Nov 2021 10:05:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00c-0007h6-Lv; Tue, 30 Nov 2021 10:05:10 +0000
Received: by outflank-mailman (input) for mailman id 234953;
 Tue, 30 Nov 2021 10:05:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms00b-0007QZ-AU
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:05:09 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff3a9e16-51c4-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 11:05:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff3a9e16-51c4-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638266708;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Pi8aH3JRK86CaSMRjaSHXycx0FZbeTLBq9iyeIqfZcI=;
  b=J5H/XgscneGkd0Lds4oA4aJwqg0pmnODLmWjvZ54hgw7AGgdqCOiJIKr
   kJkzny5t4M+qFAHPoHNIZNuoFlaQkvjElGldvhU6qYqpDOQGLvDR1y2lx
   DyhKLBRPb2DNUBuLzvbqXe+1x9PYnQqOcGoP39b5o3C1EUV27Xhee/MZD
   4=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: edmLOWAtT1zvkYvZldukRnXMN/RlH+LzAUacSEoBEelEMOiVii1IfN9/2Eq7DmFlJAetKTqucU
 n35l4hOMtuNPzCJqC0MAVI+/9kuZmAZgvut7HoDZHABpps0rpLqm08KsYoUpLDbueT4F90MCRV
 3/QkQojmPMtYdM7FZ3hVWXSE9L2FRpJ1AyaatVw8dPpCRLRSvcD27/f7oqDzBK5ebHG4Wz4rQG
 BUc2+DvGXRuARY9X+Wb4cihaaJkI4db4XPsAeiObteSTJoKbqoP851HH07Hn8EAmALEZjBOxIb
 SgEDxaGAAv39JRfiFk2Wqp8B
X-SBRS: 5.1
X-MesageID: 59281587
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Q4ny9KPMw8sZCjbvrR1okMFynXyQoLVcMsEvi/4bfWQNrUon1DNVm
 GMZUWjSPPvYMGD2LYt2aY6yoR9Q7ZXTndA1GQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdpJYz/uUGuCJQUNUjMlkfZKhTr6bUsxNbVU8En540Ek7w7dRbrNA2rBVPSvc4
 bsenOWHULOV82Yc3rU8sv/rRLtH5ZweiRtA1rAMTakjUGz2zhH5OKk3N6CpR0YUd6EPdgKMq
 0Qv+5nilo/R109F5tpICd8XeGVSKlLZFVDmZna7x8FOK/WNz8A/+v9TCRYSVatYo2rYhO5j+
 e9Cj5i5WUAgG4/Ktr0zAjANRkmSPYUekFPGCX22sMjVxEzaaXr8hf5pCSnaP6VBpLwxWzsXs
 6VFdnZdNXhvhMrvqF6/YsBqit4uM4/AO4QHt2s75TrYEewnUdbIRKCiCdpwgWZq1pkTTam2i
 8wxQ2ZmVT3cQBJ1H1oXWNExsuWC2GTBbGgNwL6SjfVuuDWCpOBr65DyNPLFd9rMQt9a9m66j
 G/b+2XyAjkBKceSjzGC9xqEluLJ2C/2Ro8WPLm57eJxxk2ewHQJDx8bXkf9puO24nNSQPoGd
 RZSoHB36/Fvqgr7FbERQiFUvlbb7wUiSetqHNc+4RHKw4/25SjAKDktG2sphMMdiOc6Qjkj1
 1msltzvBCByvLD9dU9x5ot4vhvpZ3FLcDZqiTssCFJcvoK9+N1bYgfnF447SMaIYsvJ9SYcK
 txghAw3nP0tgMECzM1XFniX0mv39vAlouPYjzg7v15JDCslNOZJhKTysDA3CMqsyq7CFTFtW
 1BexqCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I9sAumgnfxw3aJpeEdMMX
 KM1kVgKjHO0FCH3BZKbnqrrU5h6pUQePYqNug/ogipmPcEqKV7vENBGbk+MxWH9+HXAYolkU
 ap3hf2EVC5AYYw+lWLeb75EjdcDm3BvrUuOFMuT50n2jtKjiIu9FO5t3K2mNbtisstpYWz9r
 r5iCid940kFDbClPHCIqdV7wJJjBSFTOK0aYvd/LoarSjeK0kl7YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:u6lbbaigHaAv71ZdvVWq0vnDS3BQXiAji2hC6mlwRA09TyX5ra
 2TdTogtSMc6QxhPE3I/OrrBEDuexzhHPJOj7X5Xo3SOTUO2lHYT72KhLGKq1Hd8kXFndK1vp
 0QEZSWZueQMbB75/yKnTVREbwbsaW6GHbDv5ag859vJzsaFZ2J921Ce2Gm+tUdfng8OXI+fq
 DsgPZvln6bVlk8SN+0PXUBV/irnaywqHq3CSR2fiLO8WO1/EuV1II=
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="59281587"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH RFC 8/8] x86/boot: Check that permission restrictions have taken effect
Date: Tue, 30 Nov 2021 10:04:45 +0000
Message-ID: <20211130100445.31156-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130100445.31156-1-andrew.cooper3@citrix.com>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

RFC.  I don't know if this is something we'd want to keep or not.

Getting extable handling working for test_nx_data is proving tricky, and while
I can't spot anything that should stop the extable from working with NX
faults, from a security hardening perspective, there really ought to
be.

(Spurious faults aside), there are no circumstances where an NX fault is
legitimate, and restricting extable's ability to interfere with the fatality
of an NX fault provides a better security posture.
---
 xen/arch/x86/setup.c | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 3bbc46f244b9..7cb530a7528f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -668,6 +668,45 @@ static void noreturn init_done(void)
                         (unsigned long)&__2M_rodata_end,
                         PAGE_HYPERVISOR_RO);
 
+    if ( IS_ENABLED(CONFIG_DEBUG) )
+    {
+        static const char test_rodata = 1;
+        static char __ro_after_init test_ro_after_init = 1;
+
+#define PROBE(insn, c, p)                       \
+    ({                                          \
+        bool fault = 0;                         \
+        asm ( "1:" insn "[ptr]\n\t"             \
+              "2:\n\t"                          \
+              ".section .fixup,\"ax\"\n\t"      \
+              "3: movb $1, %[fault]\n\t"        \
+              "jmp 2b\n\t"                      \
+              ".previous"                       \
+              _ASM_EXTABLE(1b, 3b)              \
+              : [fault] "+r" (fault)            \
+              : [ptr] c (p)                     \
+            );                                  \
+        fault;                                  \
+    })
+
+        if ( !PROBE("notb %", "m", test_rodata) )
+            panic("No fault from test_rodata\n");
+
+        if ( !PROBE("notb %", "m", test_ro_after_init) )
+            panic("No fault from test_ro_after_init\n");
+
+        if ( !PROBE("notb %", "m", init_done) )
+            panic("No fault from modifying init_done\n");
+
+        if ( 0 /* RFC */ && cpu_has_nx )
+        {
+            static char test_nx_data[1] = { 0xc3 };
+
+            if ( !PROBE("call %c", "i", test_nx_data) )
+                panic("No fault from test_nx_data\n");
+        }
+    }
+
     startup_cpu_idle_loop();
 }
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:05:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234950.407666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00b-0007R1-Pe; Tue, 30 Nov 2021 10:05:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234950.407666; Tue, 30 Nov 2021 10:05:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00b-0007Qu-Mh; Tue, 30 Nov 2021 10:05:09 +0000
Received: by outflank-mailman (input) for mailman id 234950;
 Tue, 30 Nov 2021 10:05:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms00a-0007QY-Cw
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:05:08 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd5d471c-51c4-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 11:05:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd5d471c-51c4-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638266706;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=cT97y0C7d9fsmdvUf53cmo5D+BKq2IWrRAFvHOURbtA=;
  b=hpp+eLLgTal2PTLlXyc7TR7Tnq44xohu9e8vNBjqki/TEibk1+xTJV5q
   tD2G3e8CGg3b53TTKvzkQOWfKu6lPF5tJBKhLpA8ER5tHzBSx7GV7k61C
   Tee8gD/tfJd0ls4MEmxuUE/BMzo+eEYiZ5YWONlH6V1js6FPFJi/MmgcF
   8=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 1ugllMO8PACqbb9Lma/II4lkYp/RsDyYscBFOmcML4AU9ZeFkCV0AV5YfdJByw1zWBlMy17lSZ
 lbRxY2zera0Z1MCkuNdxJeJMxXbKa4OL3TyPHq5sg/rrrsvjHl1Yl7IJ6A9ymXoHiofA1cGbFO
 IfYURyrmSLNDd5+pGCJfc9KkVBAcDaTdcS9kp2DRbw/8OWTweyHgKpKUVfHO/nuQZTSIygT4Zd
 ebiJJd2JkkrxQerWNEHr9CKICXQnwoI+gRVR5vpj7kTzQcwkod38dSwlCSsS8RjpR85uGhMaxD
 Fr0+vqdI74r2UuzTFEC1xFlB
X-SBRS: 5.1
X-MesageID: 58889161
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:FBNkiqDhRAqCJBVW/+Tkw5YqxClBgxIJ4kV8jS/XYbTApD4i0DUBz
 2IeW27TO6mOYGCkeN92aoTip05X6JTRmIA2QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540ko7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/tDySstZX8
 It364W1aDt1PO7Ip8NCTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjGdg15kQRJ4yY
 eI2Vytkbh7PTiQeHQ4pMrZnley3iF7GJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tmSyq
 3/C/m/5KgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRt6Klc4sBc
 QpOoHNo9PVsshzwJjXgY/GmiEGNpTMafeIOKbMj7SCxlqiX5zm+WXdRG1atd+canMMxQDUr0
 HqAkNXoGSFjvdWpdJ6NyluHhWjsYHZIdAfucQdBFFJYuIe7/OnfmzqWFo47eJNZmOEZDt0ZL
 9qiiCElz4segscQv0lQ1QCW2mn8znQlo+Nc2+k2Yo5Hxl8pDGJGT9bxgbQ+0RqmBN3CJrVml
 CJZ8/VyFMhUUfmweNWlGY3h5o2B6fefKyH7ilVyBZQn/DnF0yf9JtAKuWglfxkzbpxsldrVj
 Kn74lg5CHh7ZibCUEOKS9jpV5RCIVbIS7wJqcw4nvIRO8MsJWdrDQllZFKK3nCFraTfufpXB
 HtvSu71VSxyIf0+lFKeHr5BuZd2lnFW7T6CHvjTkkX4uYdykVbIEN/pxnPVNbtnhE5FyS2Im
 +ti2zyil08CDbagO3aPqub+7zkidBAGOHw/kOQPHsbrH+asMDtJ5yb5zexzdop7sb5Sk+uUr
 HixVlUBkAj0hGHdKBXMYXdmMeu9UZF6pHM9HCotIVf3hCRzPdfxtP8SJ8ktYL0q1O1/1vooH
 fMLTNqNX6ZUQTPd9jVDMZSk9N5+dA6mjB6lNja+ZGRtZIZpQgHEo4e2fgbm+CQUIDCwsM8y/
 ++p2g/BGMJRTAV+FsfGLvmoygrp73QanetzWWrOI8VSJxqwoNQ7dXSpg6Zucc8WKBjFyj+L7
 CqsAE8V9bvXvos40NjVnqTY/Y2nJPRzQxhBFG7B4LfoaSSDpji/wZVNWfqjdCzGUD+m472rY
 OhYwq2uMPADm1oW4YNwH6wykPA77trr4bRb0h5lDDPAaFHyUuFsJXyP3M9usKxRx+AG5VvqC
 xzXotQKa6+UPM7FEUIKIFt3Z+uO4vgYhz3O4KlnO079/iJ2oOKKXEg608NgU8CBwG+Z6L8Y/
 No=
IronPort-HdrOrdr: A9a23:W9aCnKMKfG708sBcTvmjsMiBIKoaSvp037Eqv3oedfUzSL3gqy
 nOpoV86faaslYssR0b9exofZPwJE80lqQFhrX5X43SPzUO0VHAROoJgLcKgQeQfxEWntQtrZ
 uIGJIeNDSfNzdHZL7BkWuFL+o=
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="58889161"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 3/8] x86/boot: Fix data placement around __high_start()
Date: Tue, 30 Nov 2021 10:04:40 +0000
Message-ID: <20211130100445.31156-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130100445.31156-1-andrew.cooper3@citrix.com>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

multiboot_ptr should be in __initdata - it is only used on the BSP path.
Furthermore, the .align 8 then .long means that stack_start is misaligned.

Move both into setup.c, which lets the compiler handle the details correctly,
as well as providling proper debug information for them.

Declare stack_start in setup.h and avoid extern-ing it locally in smpboot.c.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/boot/x86_64.S  | 8 --------
 xen/arch/x86/setup.c        | 6 ++++++
 xen/arch/x86/smpboot.c      | 3 +--
 xen/include/asm-x86/setup.h | 2 ++
 4 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index d61048c583b3..27f52e7a7708 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -67,14 +67,6 @@ ENTRY(__high_start)
         call    __start_xen
         BUG     /* __start_xen() shouldn't return. */
 
-        .data
-        .align 8
-multiboot_ptr:
-        .long   0
-
-GLOBAL(stack_start)
-        .quad   cpu0_stack + STACK_SIZE - CPUINFO_sizeof
-
         .section .data.page_aligned, "aw", @progbits
         .align PAGE_SIZE, 0
 /*
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 495b4b7d51fb..6613e56a2184 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -141,6 +141,12 @@ unsigned long __read_mostly xen_virt_end;
 char __section(".bss.stack_aligned") __aligned(STACK_SIZE)
     cpu0_stack[STACK_SIZE];
 
+/* Used by the BSP/AP paths to find the higher half stack mapping to use. */
+void *stack_start = cpu0_stack + STACK_SIZE - sizeof(struct cpu_info);
+
+/* Used by the boot asm to stash the relocated multiboot info pointer. */
+unsigned int __initdata multiboot_ptr;
+
 struct cpuinfo_x86 __read_mostly boot_cpu_data = { 0, 0, 0, 0, -1 };
 
 unsigned long __read_mostly mmu_cr4_features = XEN_MINIMAL_CR4;
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 329cfdb6c9f6..08c0f2d9df04 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -42,6 +42,7 @@
 #include <asm/microcode.h>
 #include <asm/msr.h>
 #include <asm/mtrr.h>
+#include <asm/setup.h>
 #include <asm/spec_ctrl.h>
 #include <asm/time.h>
 #include <asm/tboot.h>
@@ -419,8 +420,6 @@ void start_secondary(void *unused)
     startup_cpu_idle_loop();
 }
 
-extern void *stack_start;
-
 static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
 {
     unsigned long send_status = 0, accept_status = 0;
diff --git a/xen/include/asm-x86/setup.h b/xen/include/asm-x86/setup.h
index 24be46115df2..eb9d7b433c13 100644
--- a/xen/include/asm-x86/setup.h
+++ b/xen/include/asm-x86/setup.h
@@ -12,6 +12,8 @@ extern char __2M_rwdata_start[], __2M_rwdata_end[];
 extern unsigned long xenheap_initial_phys_start;
 extern uint64_t boot_tsc_stamp;
 
+extern void *stack_start;
+
 void early_cpu_init(void);
 void early_time_init(void);
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:05:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234951.407671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00c-0007Tz-44; Tue, 30 Nov 2021 10:05:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234951.407671; Tue, 30 Nov 2021 10:05:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00b-0007Sl-VS; Tue, 30 Nov 2021 10:05:09 +0000
Received: by outflank-mailman (input) for mailman id 234951;
 Tue, 30 Nov 2021 10:05:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms00a-0007QZ-G2
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:05:08 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd497a53-51c4-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 11:05:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd497a53-51c4-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638266706;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=UmrIciFLECFu2qgzBROqeWeJVWmkLeHOoIn8Mew+k14=;
  b=WCH6Hn2D03fXLMAJDmYCNMdwWXgjRhAO7mC/HV/7HUoQoiD+ccTJyjCG
   2cA60CSOYg9Mc362esy05hXmHeoto3Ik7KvyHqGqM9feuYe/iIHhE48+E
   ZmWhhiwhvo+sUWMftgLXCqRArOpFoLLVy7yppy+Ao0cgZPxQHxU1ZpBhP
   8=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: DwQIvjSLadEzVLvulfIxfuWOR8aAz4X9R9CxKpVmKwmCP/04mPU32NTOgnzcfe3mGOrgMb9WUd
 xg6RvQAF1AFnjcWZxuGsWnUNtwm8UCzVQJEB+5CuYSoNLGut7H316dWNmMxKyy6OpMwLPbF0IQ
 6Em5oiKGfTKh6xVmMZgbuzfemGyqw6w1trC7uHmF3wTgBlFc9f+8U4KbplyOJwtTy3IuE/x0wT
 DhVjkmMBLdO1CYASYs4MCs5oqYN9UKUp6GalT/hI3k11f+Aw6qSRg5HP2aAN0uKPcS9+BLy5i7
 /tXMuejKmx5daOZj5LNrdYO1
X-SBRS: 5.1
X-MesageID: 59281586
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:lZNkkK0T+DRb2KgHKPbD5R52kn2cJEfYwER7XKvMYLTBsI5bpzVVz
 zQaCmyDaK2KYTD0eI8gaN6z8x8FusWGz9NqGQFkpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCan8ZqTNMEn970Es6wLZh2+aEvPDia++zk
 YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq
 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhvf8g6
 e5fhYWKEg4mIpDCoLsdVkhzKnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr
 6VecW1TKEDY7w616OvTpu1Er8IvNsT0eqgYvWlt12rxBvc6W5HTBa7N4Le02R9t15oeRKuOO
 aL1bxJAVCucXj0XPGwcUpIdmL6TjEm4eSdX/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj
 kDs8nn9AxoaHMeC0jfD+XWp7sffkCW+VI8MGbmQ8v9xnEbV1mEVEAcRV1awvb++kEHWZj5EA
 xVKoGx09/F0rRH1CImmN/GlnJKaljwzCvtrAd0j0lqExbbp7T7GBm1VZQcUPbTKq/QKbTAt0
 1aImfbgCjpurKCZRBqhy1uEkd+hEXNLdDFfPEfoWSNAuoC++99r0nojW/46SPbt5uAZDw0c1
 NxjQMIWo7wIxfAG2Kyglbwsq2L9/8OZJuLZC+i+Y45E0u+bTNL1D2BLwQKChRqlEGp/ZgLa1
 JTjs5LDhN3i9bnXyESwrBwlRdlFHcqtPjzGmkJIFJI87Tmr8HPLVdkOu2EkfR4yaZheJWWBj
 KrvVeV5v8Q70JyCN/IfXm5MI55ykfiI+SrNCJg4keaikrAuLVTarUmClGab3nz3kVhErE3ME
 czzTCpYNl5DUf4P5GPvH481iOZ3rghjlTK7bc2qlHyPjOvBDEN5vJ9YaTNimMhit/jayOgUm
 v4CX/a3J+J3DLejP3KJqNFLdjjn7xETXPjLliCeTcbbSiIOJY3rI6S5LWoJd9M3kqJLuP3P+
 33hCEZUxECm3S/MKBmQa2AlY7TqBM4toXU+NC0qHFCpx3l8Ptr/sPZBL8M6Les96ehu7f9oV
 P1ZKc+ONetCF2bc8DMHYJij8IE7LEa3hRiDNjaOaSQke8IyXBTA/9LpJ1O99CQHAietm9E5p
 rmsilHSTZYZHlwwB8fKcvO/iVi2uCFFyu51WkLJJPhVeVntr9c2e3Cg0KdvLphVexvZxzac2
 wKHOjsipLHA890v7d3EpaGYtIP1QeFwKVVXQjvA5rGsOCiEomf6md1cUPyFdCz2XX/v/Pnwf
 v1cyvzxPaFVnFtOtIYgQb9nwbhnuonqrr5eiA9lAG/KfxKgDbY5eiuK2sxGt6tswL5FuFTpB
 hLTq4cCYbjZatn4FFMxJRY+arXR3P4ZrTDe8PApLRio/yRw5reGDR1fMhTkZPax91ep3FfJG
 dschfM=
IronPort-HdrOrdr: A9a23:7iwPBKwx6EUp4DXk4xAZKrPw1r1zdoMgy1knxilNoHxuH/BwWf
 rPoB17726RtN91YhsdcL+7V5VoLUmzyXcX2/h1AV7BZniEhILAFugLgbcKqweKJ8SUzJ8+6U
 4PSclD4N2bNykGsS75ijPIb+rJFrO8gd+VbeS19QYScelzAZsQiDuQkmygYzZLrA8tP+teKL
 OsovBpihCHYnotYsGyFhA+LpL+T42iruOeXfYebSRXkDWzsQ==
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="59281586"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 1/8] x86/boot: Drop incorrect mapping at l2_xenmap[0]
Date: Tue, 30 Nov 2021 10:04:38 +0000
Message-ID: <20211130100445.31156-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130100445.31156-1-andrew.cooper3@citrix.com>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

It has been 4 years since the default load address changed from 1M to 2M, and
_stext ceased residing in l2_xenmap[0].  We should not be inserting an unused
mapping.

To ensure we don't create mappings accidentally, loop from 0 and obey
_PAGE_PRESENT on all entries.

Fixes: 7ed93f3a0dff ("x86: change default load address from 1 MiB to 2 MiB")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

Previously posted on its own.
---
 xen/arch/x86/setup.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index da47cdea14a1..6f241048425c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1279,16 +1279,12 @@ void __init noreturn __start_xen(unsigned long mbi_p)
 
             /* The only data mappings to be relocated are in the Xen area. */
             pl2e = __va(__pa(l2_xenmap));
-            /*
-             * Undo the temporary-hooking of the l1_directmap.  __2M_text_start
-             * is contained in this PTE.
-             */
+
             BUG_ON(using_2M_mapping() &&
                    l2_table_offset((unsigned long)_erodata) ==
                    l2_table_offset((unsigned long)_stext));
-            *pl2e++ = l2e_from_pfn(xen_phys_start >> PAGE_SHIFT,
-                                   PAGE_HYPERVISOR_RX | _PAGE_PSE);
-            for ( i = 1; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
+
+            for ( i = 0; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
             {
                 unsigned int flags;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:05:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:05:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234955.407716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00f-0008TP-4B; Tue, 30 Nov 2021 10:05:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234955.407716; Tue, 30 Nov 2021 10:05:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00e-0008SE-PR; Tue, 30 Nov 2021 10:05:12 +0000
Received: by outflank-mailman (input) for mailman id 234955;
 Tue, 30 Nov 2021 10:05:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms00c-0007QZ-GH
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:05:10 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ffefa7a9-51c4-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 11:05:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffefa7a9-51c4-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638266709;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=tDRmWPYoenWIe1ospZDKOXn6f22HabGgSyG7x1uHVLQ=;
  b=HOTjMiJzZM2RqgBtEvSzKyR2tFY4xmRvrrfc21+QAhJXp9UFthDlnbGX
   dKgBWdfpPm9qB3c2qS6I4S/yjNujs5XNAMKNBJA6wr3SgKvDRPK9nZ/2y
   lerCQo/xPvkBb+yyuiclP/CLszC3QgVTXWZ8SmmoYUQQhl9Qejp/fexhe
   g=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: pNoiC8DWjaVXj+ZVau4jBv68Xw8eyiwlnTRDO0KtZp8bMCBworqDPGk0Wr93geebcBw3ElyX0H
 Gh3u06hhYtvos8oDj+SMYFN94rPbRV+JVbscZ4JrHZl787aUG0VGcwDgmOaZQ3LucKcw24GrET
 UDf/I97/w7P999fYaBsltS+7rnqwBy7m5lyBxjZp0S85a7d315mInvHCJfCKl4xDwjoYEy6Nh1
 5SPZMDUrLhA5NWsRucJ9SOXgYnkWNTLjO8pcJ1cG/knlHDjpY73lxCkFwlODePBZ753sMp07x5
 aFqDmo9QxGSIF5cTqqeVAUjT
X-SBRS: 5.1
X-MesageID: 59281588
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:qtG/UK+IEdbO4Ug3R/vqDrUDTXmTJUtcMsCJ2f8bNWPcYEJGY0x3n
 TEfCj3QOveKZmSnKdt3b4qy/U9T75eAytQ1TgRvqCA8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrdi2tYx6TSEK1jlV
 e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH
 I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPgum
 c5zp62KRj0tN72LkcE/VTcBPXBXaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us
 6ZCcXZUM07F17neLLGTE4GAguwKKsXxMZxZkXZn1TzDVt4tQIzZQrWM7thdtNs1rp0fR6aHO
 ppJAdZpRDPxRF5WYUg3MpgZkvikgymjUgRfml3A8MLb5ECMlVcsgdABKuH9ZdiiVchT2EGCq
 Qru3U70HxUbP9y30iee/zSngeqntTP2XsceGaO18tZugUaP3SoDBRsOT1y5rPKlzEmkVLpix
 1c8o3R06/JorQryE4e7D0bQTGO4UgA0BItLLf8L0g63zqPEpA+8JG4qFxAQQYlz3CMpfgAC2
 liMltLvIDVgtryJVH6QnoupQSOO1Ts9djFbO3JdJecRy5y6+dxo0EqTJjp2OPft1oWdJN3m/
 9ydQMHSbZ03hNVD6ai09Euvb9mE9smQFV5dCuk6swuYAuJFiGyNO9zABbvzt68owGOlor+p5
 yNsdy+2tr1mMH11vHbRKNjh5Znwjxp/DBXSgER0A74q/Cm39niocOh4uW8ldB0wa51fJ2W1O
 ic/XD+9ArcIZxNGioctPuqM5zkCl/C8RbwJqNiKBjaxXnSBXFDep3w/DaJh92vsjFItgckC1
 WSzKq6R4YIhIf0/llKeHr5FuZdyn3xW7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H
 hc2H5bi9iizp8WiOHSKqtBKcghRRZX5bLivw/Fqmie4ClIOMAkc5zX5m9vNoqRpwPZYkPnm5
 Ha4VhMKwVbznySfew6LdmpiePXkWpMm9SA3OiklPFCJ3Xk/YNnwsPdDJsVvJbR3pvZ+yfNUT
 uUef5nSCPp4VTmaqS8WaoPwrdI+eU3z1x6OJSesfBM2Y4VkG17S4tbhcwa2rHsOAyO7uNEQu
 bql0g+HE5MPSx47VJTdae61zkP3tn8YwbogU0zNK9hVWUPt7Ik1dHCh0q5pe5kBcEyRyCGb2
 gCaBQYjidPM+4JlosPUga2krpuyF7csFERtAGSGv629MjPX/zT/zNYYAvqIZz3USEj95L6mO
 bdO1/j5PfAKwARKvo57H+o5xK4y/YKy9bpTzwAiF3TXdVW7TLhnJyDej8VIs6RMwJ5fuBe3B
 R3TqoULZ+3RNZO3CkMVKSokcv+HhKMdlTTl5PgoJFn3uX1s972dXEQOZxSBhUSx9leu3F/JF
 Qv5hPMr1g==
IronPort-HdrOrdr: A9a23:bE+UWKy+d6y3eswqWlWYKrPw1r1zdoMgy1knxilNoHxuH/BwWf
 rPoB17726RtN91YhsdcL+7V5VoLUmzyXcX2/h1AV7BZniEhILAFugLgbcKqweKJ8SUzJ8+6U
 4PSclD4N2bNykGsS75ijPIb+rJFrO8gd+VbeS19QYScelzAZsQiDuQkmygYzZLrA8tP+teKL
 OsovBpihCHYnotYsGyFhA+LpL+T42iruOeXfYebSRXkDWzsQ==
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="59281588"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 7/8] x86/boot: Support __ro_after_init
Date: Tue, 30 Nov 2021 10:04:44 +0000
Message-ID: <20211130100445.31156-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130100445.31156-1-andrew.cooper3@citrix.com>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

For security hardening reasons, it advantageous to make setup-once data
immutable after boot.  Borrow __ro_after_init from Linux.

On x86, place .data.ro_after_init at the start of .rodata, excluding it from
the early permission restrictions.  Re-apply RO restrictions to the whole of
.rodata in init_done(), attempting to reform the superpage if possible.

For architectures which don't implement __ro_after_init explicitly, variables
merges into .data.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/setup.c        | 12 +++++++++++-
 xen/arch/x86/xen.lds.S      |  6 ++++++
 xen/include/asm-x86/setup.h |  1 +
 xen/include/xen/cache.h     |  2 ++
 4 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 8329263430ed..3bbc46f244b9 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -663,6 +663,11 @@ static void noreturn init_done(void)
     init_xenheap_pages(__pa(start), __pa(end));
     printk("Freed %lukB init memory\n", (end - start) >> 10);
 
+    /* Mark .rodata/ro_after_init as RO.  Maybe reform the superpage. */
+    modify_xen_mappings((unsigned long)&__2M_rodata_start,
+                        (unsigned long)&__2M_rodata_end,
+                        PAGE_HYPERVISOR_RO);
+
     startup_cpu_idle_loop();
 }
 
@@ -1541,8 +1546,13 @@ void __init noreturn __start_xen(unsigned long mbi_p)
                         (unsigned long)&__2M_text_end,
                         PAGE_HYPERVISOR_RX);
 
+    /* Mark .data.ro_after_init as RW.  Maybe shatters the .rodata superpage. */
+    modify_xen_mappings((unsigned long)&__ro_after_init_start,
+                        (unsigned long)&__ro_after_init_end,
+                        PAGE_HYPERVISOR_RW);
+
     /* Mark .rodata as RO. */
-    modify_xen_mappings((unsigned long)&__2M_rodata_start,
+    modify_xen_mappings((unsigned long)&__ro_after_init_end,
                         (unsigned long)&__2M_rodata_end,
                         PAGE_HYPERVISOR_RO);
 
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 87e344d4dd97..4db5b404e073 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -97,6 +97,12 @@ SECTIONS
   __2M_rodata_start = .;       /* Start of 2M superpages, mapped RO. */
   DECL_SECTION(.rodata) {
        _srodata = .;
+
+       __ro_after_init_start = .;
+       *(.data.ro_after_init)
+       . = ALIGN(PAGE_SIZE);
+       __ro_after_init_end = .;
+
        /* Bug frames table */
        __start_bug_frames = .;
        *(.bug_frames.0)
diff --git a/xen/include/asm-x86/setup.h b/xen/include/asm-x86/setup.h
index eb9d7b433c13..34edea405f85 100644
--- a/xen/include/asm-x86/setup.h
+++ b/xen/include/asm-x86/setup.h
@@ -6,6 +6,7 @@
 
 extern const char __2M_text_start[], __2M_text_end[];
 extern const char __2M_rodata_start[], __2M_rodata_end[];
+extern const char __ro_after_init_start[], __ro_after_init_end[];
 extern char __2M_init_start[], __2M_init_end[];
 extern char __2M_rwdata_start[], __2M_rwdata_end[];
 
diff --git a/xen/include/xen/cache.h b/xen/include/xen/cache.h
index 6ee174efa439..f52a0aedf768 100644
--- a/xen/include/xen/cache.h
+++ b/xen/include/xen/cache.h
@@ -15,4 +15,6 @@
 #define __cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
 #endif
 
+#define __ro_after_init __section(".data.ro_after_init")
+
 #endif /* __LINUX_CACHE_H */
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:05:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234954.407708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00e-0008JY-E4; Tue, 30 Nov 2021 10:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234954.407708; Tue, 30 Nov 2021 10:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00e-0008I1-79; Tue, 30 Nov 2021 10:05:12 +0000
Received: by outflank-mailman (input) for mailman id 234954;
 Tue, 30 Nov 2021 10:05:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms00c-0007QY-4T
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:05:10 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff37db96-51c4-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 11:05:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff37db96-51c4-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638266707;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=k17lutUB0RZWsOBqxvuCYcxmqhsCMjPR6N6SZca7JCE=;
  b=DnSbr+YXwO3DtjLgfkt39veuXJXUO6vw1m+I6ZNfKJen0rK1PtOisRDx
   wj0hMocxLgi7p7NbVbPVGBToZ82acRKSoJhVKf7TFjak4RsvpTElXsVcH
   JCpqbG3QEZ/U5ONQEG2XacajTVD25iZxRX3avxRYSjOJAtPUgENJUUZMK
   o=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: yAmE1mBS7t9rjRu6RiFSRZc9y3GCgG+BrdZV3WykPbv10DjlesEVpbIWTjsthEDnsSnMS0BPq+
 HgsgnTe5GZnGRy6IYrUPryuByTuTYsoU6ZycrUhS10KLV1rhQQNINEtgkh3Jzn8Fh3eySYTwhw
 J5XsJ8qu/XBIeNOVZR/i9fLP29mLQF6AAx2z8Oc1htRvytP5ZCoWqxswR39107uU9JIYWL99az
 GMzQz4Jy7RjQnwTpC8nrYrnkoCNuLWKH61OFv17R+vRHe5bapNbHtPdVpRlAOJo+rn/WcljCdX
 c0P9GP760IJ24eFPP7biY6aj
X-SBRS: 5.1
X-MesageID: 58889162
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LUyVaq5QhwnOkO5lJBXThgxRtPXAchMFZxGqfqrLsTDasY5as4F+v
 jZKDGuOPPuIMTTwfI8ibY+zoRsHuJPQz9NjTFNvrykwHi5G8cbLO4+Ufxz6V8+wwmwvb67FA
 +E2MISowBUcFyeEzvuV3zyIQUBUjclkfJKlYAL/En03FVAMpBsJ00o5wrdg2dYw2LBVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z4
 ZJMsrDtWzUSHKDysukvS0FcOAhYIvgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gTTaaON
 pNHM1KDajz5TANoPEdKUa4zmcGomVzeSAAHtAqK8P9fD2/7k1UqjemF3MDuUsOObdVYmACfv
 G2u10bTDwweNdef4SGY6X/qjejK9QvrVYRXGLCm+/pChFyI2ndVGBAQTUG8o/Sylgi5Qd03F
 qAP0nNw9+5orhXtF4SjGU3jyJKZgvICc/MXEuoWtRO/8YjZ3SyUNHBcShVoTsNz4afaWgcW/
 lOOmtroAxlmv7uUVW+R+9+okN+iBcQGBTRcPHFZFGPp9/Gm+dhu1UyXEr6PBYbs1oWtcQwc1
 Qxmu8TXa187qccQn5u28lnc695HjsiYF1Vljuk7s4/M0++YWGJHT9D4gbQ4xawZRGp8crVnl
 CNf8yR5xLpTZaxhbATXHI0w8EiBvp5pygH0j191BIUG/D+w4XOldo04yGggfxcza59fImGzP
 BW7VeZtCHl7ZyDCgUhfOd/ZNijX5fK4SYSNug78MLKinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ3EMJruMow+lGDeb75EidcDn3lirUuOFcGT50n2itK2OS/KIYrpxXPTN4jVGovf+16Lm
 zueXuPXoyhivBrWPnOKrNVNdA9SdhDWx/ne8qRqSwJKGSI+cElJNhMb6epJl1VNk/sHm+HW0
 Gu6X0MEmlPziWeecVeBa2x5aaOpVpF69CppMSspNFeu+n4ifYfws/tPK8ppJeEqpL550Pp5b
 /gZYMHcUP5BfSvKpmYGZp7noY08KBny3VCSPzCoaSQUdoJ7Q1Cb4cftewbirXFcDie+ucYkj
 aen0wfXHcgKSwh4VZ6EY/Oz1VKh+3ManbsqDUfPJ9BSfmTq8ZRrdHOt3qNmfZlUJEyalDWA1
 guQDRMJnsX3otc4oIvTmKSJj4a1CO8iTEBUKHbWsOStPi7A82v9nYIZCLSUfSrQXX/f8bm5Y
 bkH1On1NfAKkQoYs4d4FLo3n6sy68G2+u1fxwVgWn7Kc06qGvVrJXzfhZtDsahEx7l4vwqqW
 x3QpokGaOvRYM61QkQMIAcFb/iY0aBGkzbf2v05PUHm6XIl57GAS0hTY0GBhSE1wGGZ62/5L
 TPNYPIr1jE=
IronPort-HdrOrdr: A9a23:5YdaVqsiPsTp15Rnpfo9zQFu7skDTNV00zEX/kB9WHVpmszxra
 GTdZMgpGfJYVcqKQgdcL+7Scq9qB/nmqKdpLNhWYtKPzOW3ldATrsSj7cKqgeIc0aVm4JgPO
 VbAs9D4bXLfCNHZK3BgDVQfexP/DD+ytHMudvj
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="58889162"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 2/8] x86/boot: Better describe the pagetable relocation loops
Date: Tue, 30 Nov 2021 10:04:39 +0000
Message-ID: <20211130100445.31156-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130100445.31156-1-andrew.cooper3@citrix.com>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The first loop relocates all reachable non-leaf entries in idle_pg_table[],
which includes l2_xenmap[511]'s reference to l1_fixmap_x[].

The second loop relocates only leaf mappings in l2_xenmap[], so update the
skip condition to be opposite to the first loop.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/setup.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 6f241048425c..495b4b7d51fb 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1245,7 +1245,7 @@ void __init noreturn __start_xen(unsigned long mbi_p)
             barrier();
             move_memory(e, XEN_IMG_OFFSET, _end - _start, 1);
 
-            /* Walk initial pagetables, relocating page directory entries. */
+            /* Walk idle_pg_table, relocating non-leaf entries. */
             pl4e = __va(__pa(idle_pg_table));
             for ( i = 0 ; i < L4_PAGETABLE_ENTRIES; i++, pl4e++ )
             {
@@ -1277,18 +1277,18 @@ void __init noreturn __start_xen(unsigned long mbi_p)
                 }
             }
 
-            /* The only data mappings to be relocated are in the Xen area. */
-            pl2e = __va(__pa(l2_xenmap));
-
             BUG_ON(using_2M_mapping() &&
                    l2_table_offset((unsigned long)_erodata) ==
                    l2_table_offset((unsigned long)_stext));
 
+            /* Walk l2_xenmap[], relocating 2M superpage leaves. */
+            pl2e = __va(__pa(l2_xenmap));
             for ( i = 0; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
             {
                 unsigned int flags;
 
                 if ( !(l2e_get_flags(*pl2e) & _PAGE_PRESENT) ||
+                     !(l2e_get_flags(*pl2e) & _PAGE_PSE) ||
                      (l2e_get_pfn(*pl2e) >= pte_update_limit) )
                     continue;
 
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:05:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:05:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234956.407724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00f-0000Eh-Qa; Tue, 30 Nov 2021 10:05:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234956.407724; Tue, 30 Nov 2021 10:05:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00f-00006I-Cc; Tue, 30 Nov 2021 10:05:13 +0000
Received: by outflank-mailman (input) for mailman id 234956;
 Tue, 30 Nov 2021 10:05:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms00d-0007QY-4k
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:05:11 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff574a4e-51c4-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 11:05:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff574a4e-51c4-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638266708;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=5YA8FSFJ+Ido7sPF/P6KhMxMTP806Xj8+bqrXWoCKI4=;
  b=DjSmmfZbOWAu5hVXi41U8OPipsYG+vFjaE2ceAjCm2q6aZ1eq51BSqFH
   qQ78hfCg/zp/UNMjZq4xcjAY4aj8vpGM3Y2zgP6sMBAr5Sny8JgXDMyiq
   41tKPEhrlsUTajj0jeqEDcl4RggVMG10zmEmjL9Ap3aHnYZ4ia0f+o5Tt
   E=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: bIHWVeQHUXz6r0nX5evBqeKl860UzVSAtORugFtAuD+4PLq48heLcB0V0uUAJMeqnVVDT2y1ad
 2Ba/HXs9KvulHtTLbnADi4SIZqTkW2HIFrwRi+tvkul9mff3uvmmAj2nRqUTyBzlFP8MwK5Ohg
 ArfF+iSNjCz+m8fV4YqjnjJ5RpZxmdvHFeRDkUg7vKjAhxDclB016CjO2KCu6Tjxsm5c2qCv/j
 LrJO0UHNGzxABd1qIsKEG/7Zdb4Z9Y6SHoUY+oE6qqx1m1qZ3Y+C4EKpst16zWhBpka9kclLEk
 /VZHCW37IvnFn7sWwAZAALK1
X-SBRS: 5.1
X-MesageID: 58406783
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:p61006rlp9t786N76YX40JrEMR9eBmLUYhIvgKrLsJaIsI4StFCzt
 garIBmCP63bMDSmLd9zYdm0pENVsJTcmtBgSgBtqSEzHnkR85uZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IPhW1rlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnaKKWy42EPzgotkQdideCX9UEPB+oIaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O
 ppFMWQwPE+ojxtnZ2kzJJ8Ao+WRj1reLn4Ah3mkhLAv/D2GpOB2+Oe0a4eEEjCQfu1Kmm6Iq
 2SA+H72ajk4HtGCzTuO8lq3m/TC2yj8Xeo6BLC+s/JnnlCX7mgSEwENE0u2p+GjjUyzUM4ZL
 FYbkhfCtoBrqhbtFIOkGUTl/jjU5XbwRua8DcUE0hOk1YSFzzykC006SCQfQvF7jJcPEGlCO
 kCyo/vlAjlmsbuwQH2b96uJoT7aBRX5PVPudgdfE1JbvoCLTJUby0uWE409SPLdYsjdQGmom
 1i3QD4Ca6L/ZCLh/4Gy5hj5jj2lvfAlpSZlt1yMDgpJAu6UDbNJhrBEC3CHvZ6sz67DFzFtW
 UTofeDFt4ji6rnXyUSwrB0lRu3B2hp8GGS0baRTN5cg7S+x3HWoYJpd5jpzTG8wbJ1UI2awO
 xSN418LjHO2AJdMRfQsC25WI553pZUM6Py/DqyEBjawSsYZmPC7ENFGOhfLgjGFfLkEmqAjI
 5aLGftA/l5BYZmLOAGeHr9HuZdyn3hW7TqKGfjTkkT2uZLDNSX9YepUbzOzghURsfrsTPP9q
 I0EaaNnCnx3DYXDX8Ug2dJJcA1RcyFkXcueRg4+XrfrHzeK0VoJU5f5qY7NsaQ8w8y5T8/Eo
 SOwXFF20l36iSGVIAmGcCk7OrjuQYx+vTQwOil1ZQSk3H0qYICO6qYDdsRoIel7pbI7lfMkH
 eMYf8igA+hUTmiV8ToqcpSg/pdpcw6mhFzSMnP9MiQ/ZZNpWyfA5sTgIln07CALAyfu7Zk+r
 rSs2xn1W50GQwg+Xs/aZOj2lwG6vGQHmfI0VEzNe4EBdELp+YlsCirwkv5ofJ1cdUSdnmOXj
 l/EDw0ZqO/Bp54O3OPI3a3U/Z20F+ZeH1ZBGzWJ57iBKiSHrHGoxpVNUbjUcGmFBn/04qire
 c5c0+r4bK8chF9PvodxT+RrwKY564e9rrNW1F05TnDCblDtAbJ8OHiWm8JIs/QVlLNevAK3X
 GOJ+8VbZurVaJ+0TgZJKVp3dPmH2NEVhiLWvKY8L0jN7SNq+KaKDBdJNB6WhS0BdLZ4PevJG
 wv6VBL6P+BnticXDw==
IronPort-HdrOrdr: A9a23:5+a6Vahb7SmeiIsQBBZfEEUNrHBQXuAji2hC6mlwRA09TySZ//
 rOoB19726NtN9xYgBYpTnuAtjifZqxz/FICMwqTNOftWrdyQ2VxeNZnOnfKlTbckWUnIMw6U
 4jSdkYNDSZNykAsS+Q2mmF+rgbruVviJrY4Nvj8w==
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="58406783"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 5/8] x86/boot: Drop xen_virt_end
Date: Tue, 30 Nov 2021 10:04:42 +0000
Message-ID: <20211130100445.31156-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130100445.31156-1-andrew.cooper3@citrix.com>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The calculation in __start_xen() for xen_virt_end is an opencoding of
ROUNDUP(_end, 2M).  This is __2M_rwdata_end as provided by the linker script.

This corrects the bound calculations in arch_livepatch_init() and
update_xen_mappings() to not enforce 2M alignment when Xen is not compiled
with CONFIG_XEN_ALIGN_2M

Furthermore, since 52975142d154 ("x86/boot: Create the l2_xenmap[] mappings
dynamically"), there have not been extraneous mappings to delete, meaning that
the call to destroy_xen_mappings() has been a no-op.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

This effectively reverts d0ae97d4136e ("x86-64: properly handle alias mappings
beyond _end"), because the preconditions for the change are no longer valid.
---
 xen/arch/x86/livepatch.c          | 3 ++-
 xen/arch/x86/mm.c                 | 3 ++-
 xen/arch/x86/setup.c              | 6 ------
 xen/include/asm-x86/x86_64/page.h | 2 --
 4 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/livepatch.c b/xen/arch/x86/livepatch.c
index 49f0d902e5bb..d056b1ed8b41 100644
--- a/xen/arch/x86/livepatch.c
+++ b/xen/arch/x86/livepatch.c
@@ -17,6 +17,7 @@
 #include <asm/fixmap.h>
 #include <asm/nmi.h>
 #include <asm/livepatch.h>
+#include <asm/setup.h>
 
 static bool has_active_waitqueue(const struct vm_event_domain *ved)
 {
@@ -343,7 +344,7 @@ void __init arch_livepatch_init(void)
 {
     void *start, *end;
 
-    start = (void *)xen_virt_end;
+    start = (void *)__2M_rwdata_end;
     end = (void *)(XEN_VIRT_END - FIXADDR_X_SIZE - NR_CPUS * PAGE_SIZE);
 
     BUG_ON(end <= start);
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 9bd4e5cc1d2f..fdc548a9cb4a 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -786,7 +786,8 @@ bool is_iomem_page(mfn_t mfn)
 static int update_xen_mappings(unsigned long mfn, unsigned int cacheattr)
 {
     bool alias = mfn >= PFN_DOWN(xen_phys_start) &&
-         mfn < PFN_UP(xen_phys_start + xen_virt_end - XEN_VIRT_START);
+        mfn < PFN_UP(xen_phys_start + (unsigned long)__2M_rwdata_end -
+                     XEN_VIRT_START);
 
     /*
      * Something is catastrophically broken if someone is trying to change the
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 6613e56a2184..0e0e706404a3 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -136,8 +136,6 @@ cpumask_t __read_mostly cpu_present_map;
 
 unsigned long __read_mostly xen_phys_start;
 
-unsigned long __read_mostly xen_virt_end;
-
 char __section(".bss.stack_aligned") __aligned(STACK_SIZE)
     cpu0_stack[STACK_SIZE];
 
@@ -1573,10 +1571,6 @@ void __init noreturn __start_xen(unsigned long mbi_p)
     }
 #endif
 
-    xen_virt_end = ((unsigned long)_end + (1UL << L2_PAGETABLE_SHIFT) - 1) &
-                   ~((1UL << L2_PAGETABLE_SHIFT) - 1);
-    destroy_xen_mappings(xen_virt_end, XEN_VIRT_START + BOOTSTRAP_MAP_BASE);
-
     /*
      * If not using 2M mappings to gain suitable pagetable permissions
      * directly from the relocation above, remap the code/data
diff --git a/xen/include/asm-x86/x86_64/page.h b/xen/include/asm-x86/x86_64/page.h
index f9faf7f38348..cb1db107c424 100644
--- a/xen/include/asm-x86/x86_64/page.h
+++ b/xen/include/asm-x86/x86_64/page.h
@@ -23,8 +23,6 @@ static inline unsigned long canonicalise_addr(unsigned long addr)
 
 #include <xen/pdx.h>
 
-extern unsigned long xen_virt_end;
-
 /*
  * Note: These are solely for the use by page_{get,set}_owner(), and
  *       therefore don't need to handle the XEN_VIRT_{START,END} range.
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:05:14 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:05:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234952.407679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00c-0007ae-Iw; Tue, 30 Nov 2021 10:05:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234952.407679; Tue, 30 Nov 2021 10:05:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms00c-0007ZU-9L; Tue, 30 Nov 2021 10:05:10 +0000
Received: by outflank-mailman (input) for mailman id 234952;
 Tue, 30 Nov 2021 10:05:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms00b-0007QY-4G
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:05:09 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fdd99465-51c4-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 11:05:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fdd99465-51c4-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638266707;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=IRor6soBhEeE5vF+GbxAtTh3CvJGNcaQtLYm2WQQtGk=;
  b=AcyQw7UUPh+K6JqJyDnJ/flBU1Hqtne82mhmQ4H/24uOjKRIAnWd7iAJ
   TSDbySNKdPZfCo5YTE/gdjLCuX7zgEkly70HwYl9zXnVhjc4IWL8p86ce
   saGY9xxBOteRG/O1KUX8wwEiF0pBr2kWNH5nNYSa4RewGlMI+xQfzyIks
   I=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: Quo82sqQqaS/+Qj5hxr5spjUTWJFtsz6cNMthjL+lgMeY7OeCCWO91vZRIYU+YT++nDhEeWw0I
 jRV8J6vcU4irN1b+dlbqwi//Dcz9J2mCLjW3W8vsKtm07JL3GN/QSIhOY1FyTxGb7tIy4leri/
 SlCVxFUmKYUFcCaLq6tYcAX/DeMiFgE7F1O31UAq/BhAlO4w0GDPZ1oOLitEdU6T+oS0Xhy7Hk
 S1oYzK14/DgDty3TcyT0K+Rnr9dgEekUJxKusN/raM5ZLKpqXr1ewAJ6tEDPtfxAMToRfRqUOI
 zzzAj7VeL6v547W9J4l2X/dJ
X-SBRS: 5.1
X-MesageID: 58406782
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ZBDTKaKr96KYStS0FE+RHZIlxSXFcZb7ZxGr2PjKsXjdYENS02AAx
 jNKXDvVMvePN2Cmf4p3bY20o09U7MPdz9JhSQJlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokcxIn5BC5C5xZVG/fjgqoHUVaiUZUideSc+EH140Es4w7Zg6mJVqYPR7z2l6
 IuaT/L3YDdJ6xYsWo7Dw/vewP/HlK2aVAIw5jTSV9gS1LPtvyB94KYkDbOwNxPFrrx8RYZWc
 QphIIaRpQs19z91Yj+sfy2SnkciGtY+NiDW4pZatjTLbrGvaUXe345iXMfwZ3u7hB23pcJY1
 /scmaaNRCIXOLeSsslAa0FhRnQW0a1uoNcrIFC6uM2XiUbHb2Ht07NlC0Re0Y8wo7gtRzsUr
 LpBdW5LPkvra+GemdpXTsFFgMg5IdatF4QYonx6lhnSDOo8QICFSKLPjTNd9Gpg2pgQQqaED
 yYfQRZtYi2ceiVdAVlUOMoQhsWInXihYQQN/Tp5ooJoujOOnWSdyoPFL979atGMA8JPkS6wh
 EjL4mD4CREyL8GExHyO9XfErv/Cm2b3VZwfEJW89+V2mxuDy2oLEhoUWFCn5/6jhSaDt8l3c
 hJOvHB09O5rqRLtHoKVswCETGCsgCQOcsV+QsEA1Qyo9KzOvSy0W1Bcd2sUADA5j/MeSTsv3
 16PutrmAz1zrbGYIU6gGqeoQSCaYnZMczJbDcMQZU5cuoS4/tlv5v7aZo87SPbdszHjJd3nL
 9lmRgAajq5bs8ME3r7TEbvv02P1/cihouLYC2zqsoOZAuFRON7Ni2+AswGzARN8wGCxFQLpU
 J8swZX20Qz2JcvR/BFhuc1UdF1T296LMSfHnXlkFIQ7+jKm9haLJN4LsGsnfRwybJxYI1cFh
 XM/XysKv/e/21PwMMdKj3+ZUZx2ncAM6/y7PhwrUja+SscoL1LWlM2fTUWRw3rsgCARfVIXY
 v+mnTKXJS9CU8xPlWPuL89EiOND7n1ulAv7GMGgpzz6gOX2WZJgYepcWLd4Rrtit/3sTcS82
 4s3CvZmPD0DCrCjOXeOrtZIRb3IRFBiba3LRwVsXrbrCmJb9KsJUqG5LWoJd9M3kqJLuP3P+
 33hCEZUxECm3S/MKBmQa2AlY7TqBM4toXU+NC0qHFCpx3l8Ptr/sPZBL8M6Les96ehu7f9oV
 P1ZKc+ONetCF2bc8DMHYJij8IE7LEa3hRiDNjaOaSQke8IyXBTA/9LpJ1O99CQHAietm9E5p
 rmsilHSTZYZHlwwB8fKcvO/iVi2uCFFyu51WkLJJPhVeVntr9c2e3Cg0KdvLphVexvZxzac2
 wKHOjsipLHA890v7d3EpaGYtIP1QeFwKVVXQjvA5rGsOCiEomf6md1cUPyFdCz2XX/v/Pnwf
 v1cyvzxPaFVnFtOtIYgQb9nwbhnuonqrr5eiA9lAG/KfxKgDbY5eiuK2sxGt6tswL5FuFTpB
 hLTq4cCYbjZatn4FFMxJRY+arXR3P4ZrTDe8PApLRio/yRw5reGDR1fMhTkZPax91ep3FfJG
 dschfM=
IronPort-HdrOrdr: A9a23:gNv03KHx7d4inocspLqE5seALOsnbusQ8zAXP0AYc31om6uj5q
 aTdZUgpHjJYVkqKRIdcLy7V5VoIkmskaKdg7NhX4tKNTOO0ADDQe1fBOPZskTd8kbFltK1u5
 0PT0EHMqyUMWRH
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="58406782"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 0/8] x86: Support for __ro_after_init
Date: Tue, 30 Nov 2021 10:04:37 +0000
Message-ID: <20211130100445.31156-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Also some prep cleanup, because the boot time pagetable handling is seemingly
impossible to edit without finding more skeletons lying around...

Andrew Cooper (8):
  x86/boot: Drop incorrect mapping at l2_xenmap[0]
  x86/boot: Better describe the pagetable relocation loops
  x86/boot: Fix data placement around __high_start()
  x86/mm: Drop bogus cacheability logic in update_xen_mappings()
  x86/boot: Drop xen_virt_end
  x86/boot: Adjust .text/.rodata/etc permissions in one place
  x86/boot: Support __ro_after_init
  x86/boot: Check that permission restrictions have taken effect

 xen/arch/x86/boot/x86_64.S        |   8 --
 xen/arch/x86/livepatch.c          |   3 +-
 xen/arch/x86/mm.c                 |  24 +++---
 xen/arch/x86/setup.c              | 153 +++++++++++++++++++-------------------
 xen/arch/x86/smpboot.c            |   3 +-
 xen/arch/x86/xen.lds.S            |   6 ++
 xen/include/asm-x86/setup.h       |   3 +
 xen/include/asm-x86/x86_64/page.h |   2 -
 xen/include/xen/cache.h           |   2 +
 9 files changed, 103 insertions(+), 101 deletions(-)

-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:07:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:07:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234984.407744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms02a-0003E8-DS; Tue, 30 Nov 2021 10:07:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234984.407744; Tue, 30 Nov 2021 10:07:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms02a-0003Dv-9f; Tue, 30 Nov 2021 10:07:12 +0000
Received: by outflank-mailman (input) for mailman id 234984;
 Tue, 30 Nov 2021 10:07:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms010-0007QZ-0D
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:05:34 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cf75c0e-51c5-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 11:05:32 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0cf75c0e-51c5-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638266732;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=GLNFdCsQo1lgG4rFh7qYYZT9z5k1wotugxCu0CDIj2s=;
  b=au9ftoYXWPShCl21mh2jFu9YImyBLso6I3S2cwg3PbAbiYbKOJFWxkgV
   n2KTfqL2lJ9sWDc+Lmc0eNdt955lz3Gi8+7lI9YJJPJQQ2MGGMLFv4Xl8
   pMjxwb9/Qjssk6/NtRz0YkVH6WNn22ohOjzF26DDCGexuzmdcwQEsbWRJ
   c=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: WGrmbQzjO3MmuKrT0AMqwfj83nx9+CdYXBIbqgbe5G9McsoLsuhJ+vYTDxsQ7U0x1dB53n6jBy
 RT+44sToPcTG+G9KwABZSsa2SojLVPVZN55ele5RX6EyiLqg6T8l3apV44dBfbTVHiLtMdbucN
 Viz25uBp8d5mz0dKkOzZagx8E45pvJuuNKKVHfIl1nClWAT2FvzCz22qnjbFL9+1EGYL/mM0YF
 EXH43GwPGLLHp03h6WTnpfJRF5q9lNlyVdAIuZSHHEFRXprttJnqp6u0zfIkXapLXmDwNrnNWb
 f3cUgc6H37p7vf3+z58ZJ8SZ
X-SBRS: 5.1
X-MesageID: 58910850
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:hm929aCI0l5plBVW/+Tkw5YqxClBgxIJ4kV8jS/XYbTApD5w1z1Wy
 WEZCmjVOquPMGL3eYxxPdixo0IPsJXXx9E1QQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540ko7wobVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/px6Zlo5oi
 +93q8aMGBcWG+7+oaNMekwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjGZp3pATRZ4yY
 eImQ2d0Uw7dRyFVGWsxGLw7p9/3nCjGJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tmSyq
 3/C/m/5KgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRt6Klc4sBc
 QpOoHNo9PVsshzwJjXgY/GmiFKvrhdCQplqKfNg1FCd9Y+X0T/eV0FRG1atd+canMMxQDUr0
 HqAkNXoGSFjvdWpdJ6NyluHhWjsYHZIdAfucQdBFFJYuIe7/OnfmzqWFo47eJNZmOEZDt0ZL
 9qiiCElz4segscQv0lQ1QCW2mn8znQlo+Nc2+k2Yo5Hxl8pDGJGT9bxgbQ+0RqmBN3CJrVml
 CJZ8/VyFMhUUfmweNWlGY3h5o2B6fefKyH7ilVyBZQn/DnF0yf9JtAKuWglfxkzbpxsldrVj
 Kn74lg5CHh7ZibCUEOKS9jpV5RCIVbIS7wJqcw4nvIRO8MsJWdrDQllZFKK3nCFraTfufpXB
 HtvSu71VSxyIf0+lFKeHr5BuZd2lnFW7T6CHvjTkkX4uYdykVbIEN/pxnPVNbtnhE5FyS2Im
 +ti2zyil08CDbagO3aPqub+7zkidBAGOHw/kOQPHsbrH+asMDpJ5yb5zexzdop7sb5Sk+uUr
 HixVlUBkAj0hGHdKBXMYXdmMeu9UZF6pHM9HCotIVf3hCRzPdfxtP8SJ8ktYL0q1O1/1vooH
 fMLTNqNX6ZUQTPd9jVDMZSk9N5+dA6mjB6lNja+ZGRtZIZpQgHEo4e2fgbm+CQUIDCwsM8y/
 ++p2g/BGMJRTAV+FsfGLvmoygrp73QanetzWWrOI8VSJxqwoNQ7dXSpg6Zucc8WKBjFyj+L7
 CqsAE8V9bvXvos40NjVnqTY/Y2nJPRzQxhBFG7B4LfoaSSDpji/wZVNWfqjdCzGUD+m472rY
 OhYwq2uMPADm1oW4YNwH6wykPA77trr4bRb0h5lDDPAaFHyUuFsJXyP3M9usKxRx+AG5VvqC
 xzXotQKa6+UPM7FEUIKIFt3Z+uO4vgYhz3O4KlnO079/iJ2oOKKXEg608NgU8CBwG+Z6L8Y/
 No=
IronPort-HdrOrdr: A9a23:nkvmQatjFWvrgaJba5S4Sd9s7skDTNV00zEX/kB9WHVpmszxra
 GTdZMgpGfJYVcqKQgdcL+7Scq9qB/nmqKdpLNhWYtKPzOW3ldATrsSj7cKqgeIc0aVm4JgPO
 VbAs9D4bXLfCNHZK3BgDVQfexP/DD+ytHMudvj
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="58910850"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 6/8] x86/boot: Adjust .text/.rodata/etc permissions in one place
Date: Tue, 30 Nov 2021 10:04:43 +0000
Message-ID: <20211130100445.31156-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130100445.31156-1-andrew.cooper3@citrix.com>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

At the moment, we have two locations selecting restricted permissions, not
very far apart on boot, dependent on opposite answers from using_2M_mapping().
The later location however can shatter superpages if needed, while the former
cannot.

Collect together all the permission adjustments at the slightly later point in
boot, as we're may need to shatter a superpage to support __ro_after_init.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/setup.c | 74 ++++++++++++----------------------------------------
 1 file changed, 16 insertions(+), 58 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 0e0e706404a3..8329263430ed 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1281,55 +1281,16 @@ void __init noreturn __start_xen(unsigned long mbi_p)
                 }
             }
 
-            BUG_ON(using_2M_mapping() &&
-                   l2_table_offset((unsigned long)_erodata) ==
-                   l2_table_offset((unsigned long)_stext));
-
             /* Walk l2_xenmap[], relocating 2M superpage leaves. */
             pl2e = __va(__pa(l2_xenmap));
             for ( i = 0; i < L2_PAGETABLE_ENTRIES; i++, pl2e++ )
             {
-                unsigned int flags;
-
                 if ( !(l2e_get_flags(*pl2e) & _PAGE_PRESENT) ||
                      !(l2e_get_flags(*pl2e) & _PAGE_PSE) ||
                      (l2e_get_pfn(*pl2e) >= pte_update_limit) )
                     continue;
 
-                if ( !using_2M_mapping() )
-                {
-                    *pl2e = l2e_from_intpte(l2e_get_intpte(*pl2e) +
-                                            xen_phys_start);
-                    continue;
-                }
-
-                if ( i < l2_table_offset((unsigned long)&__2M_text_end) )
-                {
-                    flags = PAGE_HYPERVISOR_RX | _PAGE_PSE;
-                }
-                else if ( i >= l2_table_offset((unsigned long)&__2M_rodata_start) &&
-                          i <  l2_table_offset((unsigned long)&__2M_rodata_end) )
-                {
-                    flags = PAGE_HYPERVISOR_RO | _PAGE_PSE;
-                }
-                else if ( i >= l2_table_offset((unsigned long)&__2M_init_start) &&
-                          i <  l2_table_offset((unsigned long)&__2M_init_end) )
-                {
-                    flags = PAGE_HYPERVISOR_RWX | _PAGE_PSE;
-                }
-                else if ( (i >= l2_table_offset((unsigned long)&__2M_rwdata_start) &&
-                           i <  l2_table_offset((unsigned long)&__2M_rwdata_end)) )
-                {
-                    flags = PAGE_HYPERVISOR_RW | _PAGE_PSE;
-                }
-                else
-                {
-                    *pl2e = l2e_empty();
-                    continue;
-                }
-
-                *pl2e = l2e_from_paddr(
-                    l2e_get_paddr(*pl2e) + xen_phys_start, flags);
+                *pl2e = l2e_from_intpte(l2e_get_intpte(*pl2e) + xen_phys_start);
             }
 
             /* Re-sync the stack and then switch to relocated pagetables. */
@@ -1572,31 +1533,28 @@ void __init noreturn __start_xen(unsigned long mbi_p)
 #endif
 
     /*
-     * If not using 2M mappings to gain suitable pagetable permissions
-     * directly from the relocation above, remap the code/data
-     * sections with decreased permissions.
+     * Restrict permissions on the Xen code/data.
+     *
+     * Mark .text as RX.
      */
-    if ( !using_2M_mapping() )
-    {
-        /* Mark .text as RX (avoiding the first 2M superpage). */
-        modify_xen_mappings(XEN_VIRT_START + MB(2),
-                            (unsigned long)&__2M_text_end,
-                            PAGE_HYPERVISOR_RX);
+    modify_xen_mappings((unsigned long)&_start,
+                        (unsigned long)&__2M_text_end,
+                        PAGE_HYPERVISOR_RX);
 
-        /* Mark .rodata as RO. */
-        modify_xen_mappings((unsigned long)&__2M_rodata_start,
-                            (unsigned long)&__2M_rodata_end,
-                            PAGE_HYPERVISOR_RO);
+    /* Mark .rodata as RO. */
+    modify_xen_mappings((unsigned long)&__2M_rodata_start,
+                        (unsigned long)&__2M_rodata_end,
+                        PAGE_HYPERVISOR_RO);
 
-        /* Mark .data and .bss as RW. */
-        modify_xen_mappings((unsigned long)&__2M_rwdata_start,
-                            (unsigned long)&__2M_rwdata_end,
-                            PAGE_HYPERVISOR_RW);
+    /* Mark .data and .bss as RW. */
+    modify_xen_mappings((unsigned long)&__2M_rwdata_start,
+                        (unsigned long)&__2M_rwdata_end,
+                        PAGE_HYPERVISOR_RW);
 
+    if ( !IS_ALIGNED((unsigned long)&__2M_rwdata_end, MB(2)) )
         /* Drop the remaining mappings in the shattered superpage. */
         destroy_xen_mappings((unsigned long)&__2M_rwdata_end,
                              ROUNDUP((unsigned long)&__2M_rwdata_end, MB(2)));
-    }
 
     nr_pages = 0;
     for ( i = 0; i < e820.nr_map; i++ )
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:07:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:07:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.234986.407755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms02b-0003VT-Ld; Tue, 30 Nov 2021 10:07:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 234986.407755; Tue, 30 Nov 2021 10:07:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms02b-0003VM-HH; Tue, 30 Nov 2021 10:07:13 +0000
Received: by outflank-mailman (input) for mailman id 234986;
 Tue, 30 Nov 2021 10:07:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms00y-0007QZ-WD
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:05:33 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c6b8da7-51c5-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 11:05:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c6b8da7-51c5-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638266731;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=4EShEwNY9aWo7yke4YUUnldLOjOyr7C+VW8CJKESj9k=;
  b=a8QyVjwrRNMgo7NT8+G5MMIpAWnAt2WgCuyGJkvGHmTugSV/oQclsR6Y
   2Ddvv0N4hjiarOTlbBABfVJ7PWChf0QJ+ODVkKVP4nKCYfwbSy/mzzmOq
   ARPLSz/zOcCg4tc1FRotrnILuFFT1ZbM7qqSUMaUmvkGQaNMrvvuHt6x8
   4=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: QSHdRY3RDTIphduj1x+qVnVb1NJwPpU3BWe0BT/Kgh1XORIY/arrR51Gfe0Y+6BWemUND5635Q
 dXIa1g8ZJ/K7PwNfr5njrKxyAuqfIoGHAAjYMWPDNTNVCAvuW+C4yRQ0UJAPf/4Ru6dgvZsNb7
 gvA12UE66HS9BLpiT4DFCVuUK4EjwmQFu3TlNnnSlmSm3U542yOsH48NXSWAvnYc0SkQ1p7K0q
 vLzi4CSu4hTfX8YhKY1lEYxJeaUF1fQ0D8A9CN1gECB4mt32JqAznt1ZkbRxE7Y20V9gdKaGKs
 FsW+5+2HyrEE75v48fEDLAUp
X-SBRS: 5.1
X-MesageID: 60914846
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:GXFjfakHIMPp5qT7OxOd+YXo5gxMIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJMXmyDPf/bY2P1L9h0bou/p0sCu5OBzIVrGQZkry02RSMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Uw2YHR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 O9BuJ2abxkHBKHJtuE3cSNaLHBQA5QTrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQ66PP
 pZJNWQHgBLoQwJ3PVcIE40FpqShqWmlYidZiUyJqv9ii4TU5FMoi+W8WDbPQfSVQe1Fk0Deo
 XjJl0zbKBwHMN2UyRKe72mhwOTImEvTSI8UUbG16PNuqFmS3XAITg0bU0Ohpvu0gVL4XMhQQ
 3H44QJ38/J0rhbyCICgAVvo+xZooyLwRfJqH+A7wieT5JDY5iicLEo+TAEQRuIf4ZpeqSMR6
 neFmNbgBDpKubKTSG6A+rr8kQ5eKRT5PkdZO3ZaEFJtD83L5dhq00mRFooL/Lud14WtQVnNL
 ya2QD/Sbln5peoCzO2F8F/OmFpATbCZH1dutm07so9Ihz6VhbJJhaT0uTA3Dt4ade51q2VtW
 lBfwKByC8hUUPmweNSlGrllIV1Qz6/t3MfgqVBuBYI90D+m5mSue4tdiBknehw5aJ9dImS3O
 hOJ0e+02HO1FCDxBUOQS9jsY/nGMIC6TYi1PhwqRoQmjmdNmP+vo3g1OB/4M5HFm0kwi6AvU
 ap3gu73ZUv2/Z9PlWLsL89EiOdD7nlnmQv7GMCqpzz6gOH2TCPEFt843K6mM7lRAFWs+16Or
 b6y9qKiln1ibQEJSnWNrNNIcwlVdSNT6FKfg5U/S9Nv6zFOQAkJY8I9C5t4E2C8t6gKxOrO4
 F+nXUpUlAj2iXHdcF3YYXF/crL/G514qCtjbyArOF+p3VklYJqus/hDJ8dmI+F/+bwx1+NwQ
 tkEZ96EXqZFRAPY9mlPdpL6toFjKkim3FrcIyq/bTEjVJd8XAiVqMT8dw7i+XBWXCq6vMczu
 ZO60QbfTcZRTghuFp+OOvmu00mwrT4Wn+crBxnEJdxaeUPN9ol2KnOu0q9rcp9UcRian2mUz
 QebBxsctNLhmY5t/Ymbn72AoqeoD/B6QhhQEV7E4OvkLiLd5Gein9NNCb7aYTDHWWro06y+f
 uEJnerkOfgKkVsW4YpxF7FnkfA369f1/uIIyw1lGDPAbkixC6MmKX6DhJEduqpIz75fmA23R
 kPQpYUKZeTXYJvoQAwLOQ4oTuWfzvVFyDDd4MM8LFj++CIqrqGMVl9fPkXUhSFQRFev3FjJH
 Qv1VBYq1jGC
IronPort-HdrOrdr: A9a23:3smwwKO2cvDQY8BcTvmjsMiBIKoaSvp037Eqv3oedfUzSL3gqy
 nOpoV86faaslYssR0b9exofZPwJE80lqQFhrX5X43SPzUO0VHAROoJgLcKgQeQfxEWntQtrZ
 uIGJIeNDSfNzdHZL7BkWuFL+o=
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="60914846"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 4/8] x86/mm: Drop bogus cacheability logic in update_xen_mappings()
Date: Tue, 30 Nov 2021 10:04:41 +0000
Message-ID: <20211130100445.31156-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130100445.31156-1-andrew.cooper3@citrix.com>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

There is no circumstance under which any part of the Xen image in memory wants
to have any cacheability other than Write Back.

Furthermore, unmapping random pieces of Xen like that comes with a non-trivial
risk of a Triple Fault, or other fatal condition.  Even if it appears to work,
an NMI or interrupt as a far wider reach into Xen mappings than calling
map_pages_to_xen() thrice.

Simplfy the safety checking to a BUG_ON().  It is substantially more correct
and robust than following either of the unlikely(alias) paths.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

I'm half tempted to drop the check entirely, but in that case it would be
better to inline the result into the two callers.
---
 xen/arch/x86/mm.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4d799032dc82..9bd4e5cc1d2f 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -785,24 +785,21 @@ bool is_iomem_page(mfn_t mfn)
 
 static int update_xen_mappings(unsigned long mfn, unsigned int cacheattr)
 {
-    int err = 0;
     bool alias = mfn >= PFN_DOWN(xen_phys_start) &&
          mfn < PFN_UP(xen_phys_start + xen_virt_end - XEN_VIRT_START);
-    unsigned long xen_va =
-        XEN_VIRT_START + ((mfn - PFN_DOWN(xen_phys_start)) << PAGE_SHIFT);
+
+    /*
+     * Something is catastrophically broken if someone is trying to change the
+     * cacheability of Xen in memory...
+     */
+    BUG_ON(alias);
 
     if ( boot_cpu_has(X86_FEATURE_XEN_SELFSNOOP) )
         return 0;
 
-    if ( unlikely(alias) && cacheattr )
-        err = map_pages_to_xen(xen_va, _mfn(mfn), 1, 0);
-    if ( !err )
-        err = map_pages_to_xen((unsigned long)mfn_to_virt(mfn), _mfn(mfn), 1,
-                     PAGE_HYPERVISOR | cacheattr_to_pte_flags(cacheattr));
-    if ( unlikely(alias) && !cacheattr && !err )
-        err = map_pages_to_xen(xen_va, _mfn(mfn), 1, PAGE_HYPERVISOR);
-
-    return err;
+    return map_pages_to_xen(
+        (unsigned long)mfn_to_virt(mfn), _mfn(mfn), 1,
+        PAGE_HYPERVISOR | cacheattr_to_pte_flags(cacheattr));
 }
 
 #ifndef NDEBUG
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:31:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:31:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235005.407768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms0QA-0007C3-KM; Tue, 30 Nov 2021 10:31:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235005.407768; Tue, 30 Nov 2021 10:31:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms0QA-0007Bw-HD; Tue, 30 Nov 2021 10:31:34 +0000
Received: by outflank-mailman (input) for mailman id 235005;
 Tue, 30 Nov 2021 10:31:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms0Q8-0007Bq-Eu
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:31:32 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aeeb2895-51c8-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 11:31:31 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2050.outbound.protection.outlook.com [104.47.12.50]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-16-aEJL0MoPOHOEgZ8-xZFHZQ-1; Tue, 30 Nov 2021 11:31:29 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 10:31:26 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 10:31:26 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0083.eurprd06.prod.outlook.com (2603:10a6:20b:464::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23 via Frontend
 Transport; Tue, 30 Nov 2021 10:31:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aeeb2895-51c8-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638268291;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7LUGUM1Y9rAeuOw/zM11YUQqIE0RZ8MLtrD32zeIdro=;
	b=UBOc7D3lcIusX4MfNS1Voih5pK159aVlPIM5zk9Sy3FQ3jtUwGllLKbnasQMUjSnOvctyB
	CGa+LRpp9+2EYcbdHik5VUkPl6194s5HDcsWL0toqNk0ae0GVlRJrH+hqrnfWbW0D+oHCf
	kw3mgqCZ/Tq9Aftl9UBYNkUvHgiQAu4=
X-MC-Unique: aEJL0MoPOHOEgZ8-xZFHZQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TYG1lJSkvd0I2ZfTeY4R6ls1DuXpyClnLutK+NzsVLepoK3UUIltSLSPkfxQBlILPP8wWZ82sg60ZJQ66VyhTVxRjqNmyqY7wvGt99zt1N6BXRskv2SyyOCgrTbo+CB2DWs/C0dq6Gj0cVVLIB+UNln8K0xUHp2rYXQcJjAS/5351UemGb8yzgwAUorS2LxVZS7wpMoMCyUJaMj2q1mlnZevv1Vhp81uVhtP2D1sdmHjAMLUuvIzExF6ne0zCN+Q7SnAV7ycYZbGQt5X2D0UC2qN6MY38/Y7ix1WeU/++aNfjDZr3d9uF+DzGOEOq8RADJFoqDBkmzyYoD87/L987Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7LUGUM1Y9rAeuOw/zM11YUQqIE0RZ8MLtrD32zeIdro=;
 b=AWXIHpLcVwHkhjEueC0HS4T+hde/u8VtSdIHXam+/E6QslKmzp0g8KjWnbzqwKLnRQR4Sjzy/TgL79854SngmZKlmFNIq/Wx4WXDwjzeCZMBVFeV42990C24sTGmVn66LHQ1PuBPY44OEqNOncsmwwvmfUwe3lxQVNNsMcDbu5q4BXraVAoRoTqfuotAzwmTWBjhA034g8mJ8+7od1jW2/G+SrUpiq1hG/KpeFuTfI48JI2d9BwOyIdTOuawZoBjW65HDYCfb5NcGUzmaCeaP1I8aJibvrj+c4g56vMJOYxhkMtPcxgokSF1oAULooMP3M2lQfbIwGuqu5E27kLxzg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <a8135634-d5f3-c377-3426-5307327cd1cc@suse.com>
Date: Tue, 30 Nov 2021 11:31:24 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] Fixed an incorrect value
Content-Language: en-US
To: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
Cc: sstabellini@kernel.org, stefanos@xilinx.com, julien@xen.org,
 Volodymyr_Babchuk@epam.com, bertrand.marquis@arm.com,
 xen-devel@lists.xenproject.org
References: <20211129194450.62467-1-ayankuma@xilinx.com>
 <3f0230f3-79d2-d40e-f3f3-33201c2792b0@suse.com>
 <bf77c97c-df14-b6f9-cd8c-b3d86568037d@xilinx.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <bf77c97c-df14-b6f9-cd8c-b3d86568037d@xilinx.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0083.eurprd06.prod.outlook.com
 (2603:10a6:20b:464::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 23bc4a46-e81d-4ecc-b448-08d9b3ec9030
X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB703743CADC508A4024A0C797B3679@VI1PR04MB7037.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	n1THYGLjMPrc71aThhAlSWBtFavqUPat6+df00s/CoaxmURBf3lSrT5PIaR0KEQPTxDZOGBGPg9aexMFqU06Z+Jju0DYTzxte1wbehHBTBykUdt3b/C1t+oVw8lSRNUvPs5WVjxgKUqhsZYcVuZYPCOsb3c9Ev3/PIaj2lZN9ZWAcW13NgByXOovtS3M9Ux0PALjd73uZh1LgPSRDNkocpiOIkGtEAn3pDEeEMRAD4tnZIaP9hAUhm3F/WK7uCNV9bdLZJZovGXGMSv/Zgil7HKemM3b7WZ0s/MOd3OE54tcqELfIaw68m1RbR+hqRoIMyDC2zU0ieGAB/WUh4RK4jQPl5FmoV2tyxa/aLc2e5GIn8wfz1JlTSkiwpivnNYVsnR2oPR9mOu55XFEYimrKL6pH5YWpMewuT24RGfLLQ+PU0c8/yfuPmvI+K6aXFDxWif56VbmM3F1AtcpyxZgz7KhnSfVeuI3n7yBIiJsDqyGmIEdoQa2AkEYqhRf1a8DLpIWKezKhHmBFSHq4EbI2adUuuO001KXh+Y2qDFOudOxCijA4S0WcJIfg5zmHC1Jioot7REN92kTXtm88XlLYykAeIjPGogCquE7+zKRXDxJDVlmJkuIZspl7CI+ZaksD5BCCv6OEKUViOib3nFkc5ntRqwZ/RxNLnX5yr6YJVDi3H1euj+2IrLUUoxKLa/K3jF4lZxamgUMdu53nWLGoZwBMHG8qBnyJcxujxQpE8I=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(5660300002)(31686004)(38100700002)(66946007)(8936002)(4326008)(66476007)(508600001)(6486002)(8676002)(186003)(66556008)(316002)(53546011)(16576012)(36756003)(6916009)(4744005)(2616005)(26005)(956004)(2906002)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NmdWVE53TUZ4TmNSNWRveDl0OW85Vi9xZm5qT0JQSEtjclovWVViL21qMnp0?=
 =?utf-8?B?cWZQQXduV2RDRnRWRW40c2Z0dmIwbWtlZmtScG10cEVVQlZDQUE0cWFMcVBX?=
 =?utf-8?B?SnUxbzgrYkVmeHRudTR5L1VzZ3RvdCs0RGNzNWRaZlBsMDM2anJBWWZGTUxS?=
 =?utf-8?B?dXlONmcrbnh1cGd4L0N1QkdXamFGdG1lWmozdnJ0UVVWZGJjWUhROEVPcDhP?=
 =?utf-8?B?NGpITklUZEJFM3BjY3lTazZrQ1cwR3haY2M0NXMyWlVBVHVRRmNCYVczeHlD?=
 =?utf-8?B?NEptakJCUlQzSzM0RU1qWG40dmJ5V29ORVhEeGFyalByV1lUQWVrRHF5QU1X?=
 =?utf-8?B?UU9HdDR2eTBrbDdFeWR4WnY0M2sxMG9BR2RTczZBdnkrRmx3V2RCVkNzbnFY?=
 =?utf-8?B?RFdBbXE2MlErb0R4S1FPTjFoeU0wUFRSbUt5MnVKS1VLbEZZVzJQOTZxdk5w?=
 =?utf-8?B?WkdBb0N1QWRpT2pTWDBuTnFhMFZrTGhsMkhZSGZseGh6Nk5zR2xIVng1U29I?=
 =?utf-8?B?T3M4NURxakdNd3cyaGJDcEg1QkxKNmE4QUw5UHRwdkFENkdpbW5RNy9iT1FO?=
 =?utf-8?B?TlVPZWtEVE1SOEJaNXpBd0Y4ZGZhTEU3Ujkxb0V4VEZSWXhxVGUwaFNHRWtC?=
 =?utf-8?B?bytYeHdWaDN5c1JlRlNPK0hWTFQvTDlNME9UU29WL2VOcy96RTN0VC9SSnFV?=
 =?utf-8?B?ejBqcC9VeHQ3Z1gzYTQ3ODU0VExhcm5uMjR5d1FPUWE4K0dUNWwyYVQyYzNn?=
 =?utf-8?B?R0xFd3ZUcjJ3ZnMxbGdQRkw2ekhRdkdLbmRTY3Y1T3U5UkdHUVprUU9hWmJt?=
 =?utf-8?B?ZmFId3lCeG1oYzQ4MUR3UXFLbGRLcG14eDJlemtHOU1vckZEQTgzbTVJQ2R5?=
 =?utf-8?B?WFAvOS9IWWM5YXhOcWNGamlmOVZEOGczMzV1bG9kSWxOdHE1S2t3YXpjNjhM?=
 =?utf-8?B?WExiNXB5YWRaVVZ5NEVCdU1pOExJaHFJaGtYbjJMNXJMTFpwY1J3RCtlbjRM?=
 =?utf-8?B?bmVFVmFEUVdlQ0ZCRlVERTVFVFJaR1ljUUhRMTMzQ1dPa1FsQnNNY0JOaTh3?=
 =?utf-8?B?NUhySVhqaHh5UkpxNERWS21vK0xPSmZCMlJmaDFLSEk3eml5QUROQjh4NXRm?=
 =?utf-8?B?MXNmemZ1NnR2TWRodnBVbVZ5Rmx4eGo3d3RwU0JtQjNLUk94aTM5QTRXWVZj?=
 =?utf-8?B?OE9BRi9uTEFIaXZWWVh6TDVMc3FkK0RXbE5abFpEa2RJRU9WVjR4cXRvKzc1?=
 =?utf-8?B?Q0JIQmNZZ3NZbml1QXQ3TC9PNWRoNm8rWUNpV09iaUhUR1docjBMTVl4NTU4?=
 =?utf-8?B?TCtIelFSdnFmL1RJbkVOaFBZLzV6YjE3VHQ0YWNqeUNKbjVCa0QvS0RSVDFm?=
 =?utf-8?B?ZC9RNXBFaW5KRzdUc0NyTjBaTW9wd254WWd4cDB4ckRhYUY0bWJ3eUlVb0Qw?=
 =?utf-8?B?d1hqMmxRWHE0RDVTR2NhVzl0dFBJdWpsM2tBdW1XQW0xbElXVjJDZElWdXc1?=
 =?utf-8?B?b3gvSXJTM3pMNk90Y1Y3MHBPb3pVcFBxM3F5MndDT0RMeXRXVklKelRGQmxl?=
 =?utf-8?B?QTFMU0ZudXFwRUIrRG51VUp5bmRNQUVka3Bid1k1c1hCRnhLbys2Zm9hK1Jx?=
 =?utf-8?B?UVhSN2ROMVdsbVhrenpYenFCbkhsKy82WlkvOEpBWjdkQUZ3VDRVMWpVYkcz?=
 =?utf-8?B?QnBnMVQ4WkNsRmR3ck42LytURzRyb05MVWtDQ1NOZWZJRHNiNGNENHE2ZWJh?=
 =?utf-8?B?T0tGNTFBRTBlTEtzd0ZZTytaZFJBWGd1b0Z2VDk5YkxST2R3S0FQNGV1T3E0?=
 =?utf-8?B?dE1aSFBwTGVyazJpQnVKVGtocHhLMzFDWmYzWnlYeWp3VmRId2V5VVNsQ3Ro?=
 =?utf-8?B?V1V1NUlOREhqUTNFUGVxZ0xlN0t1ZHltTFA5VU9WU3NQcmFzWGEwbGVVbWhM?=
 =?utf-8?B?NnFaT3hBQ2w3ODU5dkl1eFJPUytmeDE2Y3JoSXp1ME9rYjE1KzNaK0dZSFZO?=
 =?utf-8?B?cU42b0lTZGJHeW5TRm5LdC85NWN1YkVBVGZkbzl0N1MzSGFTN1JZVHFET0h2?=
 =?utf-8?B?YXJQTnRldlNycEtRYTJNS3VDWVZqVCtGNk9vUTRXME52TE9LY3ZJOVNuYTdD?=
 =?utf-8?B?V3FkSkVUM1dZWTFSaGlnUHlMUmRxczF2TVRaVHgrUDQ4amFEVk1CTWM3QUI3?=
 =?utf-8?Q?5ITG8lZhUyHecA4C486auO0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 23bc4a46-e81d-4ecc-b448-08d9b3ec9030
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 10:31:26.4659
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GI6HRRsSj4icCUI20wfqfozSJnvrg9K0CbwvVj5KCYC3MTYjQ5Qy2S3kUurv88K9eKLlwty9etbxy0862WVOTA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037

On 30.11.2021 10:37, Ayan Kumar Halder wrote:
> On 30/11/2021 07:18, Jan Beulich wrote:
>> On 29.11.2021 20:44, Ayan Kumar Halder wrote:
>>> GENMASK(30, 21) should be 0x07fe00000
>>
>> Please can this have a meaningful title? E.g. "bitops: fix incorrect
>> value in comment"?
>>
>>> --- a/xen/include/xen/bitops.h
>>> +++ b/xen/include/xen/bitops.h
>>> @@ -5,7 +5,7 @@
>>>   /*
>>>    * Create a contiguous bitmask starting at bit position @l and ending at
>>>    * position @h. For example
>>> - * GENMASK(30, 21) gives us the 32bit vector 0x01fe00000.
>>> + * GENMASK(30, 21) gives us the 32bit vector 0x07fe00000.
>>
>> Once at it I think you also want to
>> - replace the word "vector",
> Should I replace "vector" with "value" ?

Perhaps, yes.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 10:33:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 10:33:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235010.407780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms0Rp-0007nG-23; Tue, 30 Nov 2021 10:33:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235010.407780; Tue, 30 Nov 2021 10:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms0Ro-0007n9-Tg; Tue, 30 Nov 2021 10:33:16 +0000
Received: by outflank-mailman (input) for mailman id 235010;
 Tue, 30 Nov 2021 10:33:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms0Ro-0007n1-4I
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 10:33:16 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ecd491bc-51c8-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 11:33:15 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2052.outbound.protection.outlook.com [104.47.12.52]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-30-YzQ396mROm6erRuRJKf4mQ-1; Tue, 30 Nov 2021 11:33:13 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5168.eurprd04.prod.outlook.com (2603:10a6:803:56::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 10:33:11 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 10:33:11 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0134.eurprd04.prod.outlook.com (2603:10a6:20b:127::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.21 via Frontend
 Transport; Tue, 30 Nov 2021 10:33:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ecd491bc-51c8-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638268394;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GFdkeNfBCQpXbuEIhOTiGCHSN5GB8sLsxSauXc2YVlA=;
	b=QpYGtKsOc5g4K32UJravkIzu/1tsIHNYL3ELk2zPE/fx4RrpuGIpn/frR086cC5IOn6j9B
	iC9SSB4b8A6WmZhxkVFli20jcl9aXZicx1RDDuQYZRhRmkDsa6bXunKpMME/6h76rweXbt
	J6mTmsw37l+1b4a5gbwWTAGNDSvryzI=
X-MC-Unique: YzQ396mROm6erRuRJKf4mQ-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EKOR66AoWClNtJl4ymFZmS0uZUKFGgCW31qyiW4B5p4ae7wJ6GyvO9R1AXDS9DSuo71taPM7YfTed0PIGZEkIyptBSp/we9zbt6+F0f10KICGQoC3xlote9g/rgZv1zKcOAcWfINIhGAqLAAI4qo96WQ/w4cuLEzAHoAgLJPblcDQKePzj7Fx90s+YPj2Jg7MnLko/aCghwsRp7PVM7+P4ZFo9KdzjnWK0IKtbpg50zCDeUJWgvgqie94Xqxst05rlATPSQlZhZ3diKMP8Brmb0Iw7tZ88n19fLG+TOyon1+W9qwGCFPCWQ0bkoU4N40B75IYtaVi32fu6+cvHNQ7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GFdkeNfBCQpXbuEIhOTiGCHSN5GB8sLsxSauXc2YVlA=;
 b=kw6oyIs7NVtzh76Vel/H+vhHmf2pzJz/5cwJLQuCUSqrOF3FMz49KwJJzp56IKQmxA433WlNJs46tMI/PrwotUf+SoBHZQDYeaifs7sQQZ7oHrIuOqy+QIl/zlXbFG8FUGPz67Sfo02t/ErbswtkkrgQBca8zgKjQoHcjC4w6lAjMsTa5l7x5VPo66kJoyarDDjI7zuLcN9N9VIh3VtgUiICfUW0++Hw1v+2wlzUT/c6bJZmHSOgjmJvT3DFs5hn0JfCOL+gdmYhQnkHGmZo91W0r7EoOvzyIhoDHidFcCzh8JAO0lMAp/MI3iQjf0RxUtU3GQsyRwZp+/kEjKvlgw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <5b4dcbae-4100-ad3c-cbc4-51f2b2bbedaa@suse.com>
Date: Tue, 30 Nov 2021 11:33:09 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 1/8] x86/boot: Drop incorrect mapping at l2_xenmap[0]
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
 <20211130100445.31156-2-andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211130100445.31156-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0134.eurprd04.prod.outlook.com
 (2603:10a6:20b:127::19) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f6f28b02-1974-4433-ac41-08d9b3ecceea
X-MS-TrafficTypeDiagnostic: VI1PR04MB5168:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5168A8983260D42BF4C70D72B3679@VI1PR04MB5168.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7219;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	UJP5tIe4dxIeqqL+Gpua8VD3YJD/HJPxX+sbJKvzACGjgdA3OOjINyc0uyAQeyLFCTeeafX0k41imaZ+Qq+qe6TfEVqefBTA7OUyaDDBkJM0DdAJy5hsMatoqC62l2kbzcIPZ2Ri6zWNlWbZ5qS/WfVhR8/AHR9BCGMvCub0D7ZivJGtrviL7+Wd+rdW0dl3vo7Ic3FnAOEnHlg0D4OxnJBOVMPv0fi0OdsiI0ctSa8Wwx9rNMZEXTvXSoRtNZQOsJgdAPGHzHi6v53RDZF+n3IgvefTdKGs3G1PTFlh1HTObe8REDk/gNUm0CoQNBOuPW7GsuENw+pj8wpff1kyj3mVNu/odJpkHNjXtNdRX5GMFtSimUDlTOo0j6vDWgHcO4kzJJQURVOHTBna/iRY6h3fNztzXYEuFp3ZZOgEdcbXcRHQNt9YWWPkvgacOieOVBnwIPY9abER5UVlXoCexY12OwRuDQRNx27lEZhHb2b6FEAfQ8HiEfAzIWJ8GOl9s9k9vJZSdIxM4Z/L+Y4kaqaxC4WkNv+EGW1aI5Zohb/iUpEwfXgMzimJV+R5/To4TaiWe4Jmf2QE3ZFItFARgK5rLtmNpG/xQKE7G5txCvZcVjjkWaUmKZ5C8zPIpuP145zRX9MgnKCQFoVIJHP/TxcjhM8uYzj6OzISZFGNGicVQOmWjrIxFp9QPbd9b1KZbNPJ+/XUD5pSSt7z7VIxzcrobNzzNfrRx2jjv+Pm4DgM7YGAK09aMAkKyzQmmqss
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31686004)(36756003)(5660300002)(508600001)(26005)(6486002)(31696002)(6916009)(86362001)(53546011)(66476007)(4744005)(316002)(38100700002)(16576012)(54906003)(66556008)(66946007)(4326008)(8676002)(2616005)(186003)(956004)(2906002)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RjdGK0RlZmlQUGpYbXZJVktKdVFXWGxmdk9INGtwUllkNWU1WTJNOWlVcnRr?=
 =?utf-8?B?NVcrc3RpZXc4UjRvQjMyL2xtcVNVKzRQNS9DU204V1BUUGorbGE2R1NiQ0pI?=
 =?utf-8?B?Mk92RE9vTHRTRzF1VDIxNlNaaU5BcmtSOG1OV3pOZUFrYlJrOEMzOEJobkNE?=
 =?utf-8?B?aG03MlgxOXpYNC85d3licU1rb1pHeEs2dEdCNkpFQVdFdTVab1pFZStJKzVv?=
 =?utf-8?B?QzVva0Z5d0VyNFNWK29TWUs5OUoxRWVBeXcwQ3dMYjN6ZW9rZlBFTDJ2TXcx?=
 =?utf-8?B?NFNMbGEzT21yWG9Ua2htMXJ2QmVFRVY1Vnk4UFpvUExGQkRLNTNnaUg2UkdV?=
 =?utf-8?B?ZGg1c1lwb01ZTFRIanNuOG1vMHZQZlh2V1RxNitZSXdvMGlES1lYbGt1Y2lQ?=
 =?utf-8?B?TEJIeTBOb0pZNGVzVmVwSnlpbVNQaUlQSlYvV2pKZ2lPV0s3WCtnRGR2UkVw?=
 =?utf-8?B?cmdQSkFQTmluNTdYT1ZZN1p0RzhOOGdnVkU4cUlOZHlaMk5ydUZBMk5DUEVQ?=
 =?utf-8?B?aU1uNVJtRGhKMmpneHEzTjNZM2s3MVpJRml6bGVXS0pkUFR3Nld6ZXQwK2dx?=
 =?utf-8?B?QjdEQ1FMR0IxSjJTeSs5RTFZendUU1R5cDlBdHliVlJhbEZFeHlLQWtnL3pM?=
 =?utf-8?B?RXRTbEY3NDMzV1FqZWtpdFBTVDNoTEttU01kMElocTRoeFpUS1Vwa1lyYmgr?=
 =?utf-8?B?SU9TU3dwRE1uTDdlSTE3R0NES2U1c0F3WUcxdlpMRHZ4aXd3Q3IxTkZVZTQw?=
 =?utf-8?B?REpXbDc4aHh2TzkvT2JpRHl3c2d5L2p0VlhkQWYxd2QzV1pnMFNGUXpqTjg2?=
 =?utf-8?B?ODVnSUltUE1YaHZmcm01YWt1MzdSSVFRR1orOXRwZWNZY3AyaldBMmJTWGlz?=
 =?utf-8?B?TUZBQVRxbVFVd0d2L29SVXhiVVRnZ2VpeFBCcXZEMWhHejJ0cXFwV2x2UlpQ?=
 =?utf-8?B?VnQrdXNNUTlFNzZsc1ZvbTZQTGpIR1RmT0lyTXY0NUkzUVRtUFQ5dlhVWnNE?=
 =?utf-8?B?NkNNcGpQUW4vS2pIU3ArZGNiem5ldmRoUiswVEhvVDBOVGkwOFk4d3U5RU9K?=
 =?utf-8?B?aUpaVG5vYXgxSnJsa1FQOSs2WkNtQmM1YUg5dTZ6Q0FPMHVLbnhiQVZxYUY0?=
 =?utf-8?B?SUcvbUh4dG52U1p3VkcxczZZU3VxVjZxOHNuRGhJdCt5aWhkMmFMam00aDZ2?=
 =?utf-8?B?bVhKcnhGdVlmRVJha2RJUlpIYzNNVzEyeUtPODdTa0hpZWc2aFd4MFJSbStC?=
 =?utf-8?B?Z1hscnhUVVh2Zkcwczc4cUxET3NlRDVIRUNydWxiNzFnc2krRlJtSW1QVGtP?=
 =?utf-8?B?TUcrWTZvTFZZRXNjc0w0bktYUWtlcU91WEpJZEhrRENLTHI1bC84cXBoM3ZC?=
 =?utf-8?B?ZGI4TC9xajltbWd0ZXBZUEFQcG9jVjMyVGFCOFBUQ1dYNDlteEI3YXBQL1dY?=
 =?utf-8?B?QU0xTXBPc1JiN0ZQc2FrWG5HRXdidDBVQUxNS0U3ZHBaUnJyN1BjTFJzRkF5?=
 =?utf-8?B?N2prUUw2eHE4dTI3OStKekE4Z0tBUTYvRzJ2QTlRb2E4dEk5MEc3NFBxWW5T?=
 =?utf-8?B?OCtPdlNvTHczKzY5SFdwYUxnRnBZalV2eDVXSmlIN0ZoNS9UZTF6ZmJ5akdv?=
 =?utf-8?B?WGk2bDRqK1J0dVpubWdTcHp2Vlh5dlhpMm51S20xVmsxTUxEdkx1c01PU3R6?=
 =?utf-8?B?ZHhMd2hoTnlscGpUZG5XYW5GMnBsemd4WWZPYy8zRjkvMWE3Tm5aajIwdFEw?=
 =?utf-8?B?UHV3RUJIWGh5UC93VUZyblczdmhiZUNxQ056NW9NUnFIQlAvcjNnSUVKN0lC?=
 =?utf-8?B?ZWhxUm1rRUdUNXdkUGZ1T1I5Vkx4YytqdEFBUysyRWlQMXdUUWJsa1dIM3Ry?=
 =?utf-8?B?WjZZdVpPOU5wQnJxQlRsUmtmRDJETXdhbHE2Y3AwT3FDMFY2WSs2elZUcWtE?=
 =?utf-8?B?SU5qc2p3UFRLMzhRL2tGQVFpV0g1R2hsdHJiSWRhNUx0ck1qMWdzUkRCWFZ2?=
 =?utf-8?B?eCtCMmdzT3k0QmV1Qmp0UmJ1aWhnVzdabThVNlFXMDd4RVZWZENFU2ZvZ2VN?=
 =?utf-8?B?bEVObzYzK3Z5K09RWkF6RlQ5UFB1QTZuUk9qam9RY1M3NEtreWFCdWhnTnkr?=
 =?utf-8?B?RFZuVTdubktIaEtkc3l5bzYzbVVsZVdXS2M4bytPMTA1c0Uza0xSbHlHUnA4?=
 =?utf-8?Q?zMWV28fj6Q7LXbXa6shek5U=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f6f28b02-1974-4433-ac41-08d9b3ecceea
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 10:33:11.6764
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AvAYblCzb6CQoCEHdxwc7Tj5uoRXX/V00PBO9qa60ih1z3nqPzFLxFKtua0UBLXofi9x0JmB1ClH7P21VS5/UQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5168

On 30.11.2021 11:04, Andrew Cooper wrote:
> It has been 4 years since the default load address changed from 1M to 2M, and
> _stext ceased residing in l2_xenmap[0].  We should not be inserting an unused
> mapping.
> 
> To ensure we don't create mappings accidentally, loop from 0 and obey
> _PAGE_PRESENT on all entries.
> 
> Fixes: 7ed93f3a0dff ("x86: change default load address from 1 MiB to 2 MiB")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

I guess this may be worth backporting despite not having any immediate
adverse effect.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 11:09:39 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 11:09:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235023.407791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms10l-00033D-Sj; Tue, 30 Nov 2021 11:09:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235023.407791; Tue, 30 Nov 2021 11:09:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms10l-000336-Op; Tue, 30 Nov 2021 11:09:23 +0000
Received: by outflank-mailman (input) for mailman id 235023;
 Tue, 30 Nov 2021 11:09:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms10k-00032v-HV
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 11:09:22 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7f34a8c-51cd-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 12:09:21 +0100 (CET)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2107.outbound.protection.outlook.com [104.47.17.107]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-14-Wg8E3tANNva6eXib62xdGw-1; Tue, 30 Nov 2021 12:09:20 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6173.eurprd04.prod.outlook.com (2603:10a6:803:ff::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Tue, 30 Nov
 2021 11:09:18 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 11:09:18 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR04CA0068.eurprd04.prod.outlook.com (2603:10a6:20b:f0::45) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Tue, 30 Nov 2021 11:09:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7f34a8c-51cd-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638270561;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=wW7XifaUEYXLL4FguvwqN0+Lhg2xtOpvU/gE1fjfuIE=;
	b=aGL/oSJeGjWop3zAW5A8a42bUyxkgh7FmVWOsFC7HdN1vm+LQ0lSniGrQ1cbcr9xZq5Af4
	jwE3Vvv0lwlyCLRdkj/CDK6vgaJ1hkGL6UIBgHCCQv7Gwgv3t39sCHRPNIxa2imx7vdqL8
	dXEV3CxofcKKp5IBrM3F1AHrj3xAlRQ=
X-MC-Unique: Wg8E3tANNva6eXib62xdGw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JMvILX4eLttZ/ZpfTb8/b4nXHW+efh12l7ALvb/LXBR0WSkfR+DGR6CJcIndiGLRC9H4UAu/4ppN+Dd+f19JPRxXNlnPOiJclE+M9EAUQx0Zg18/mfgqOYe+6xR8/DOiLug4VqQVyQt6d1DaeIDeBgQIru2qkP/b63eZlW25CRVquNevx5zlbbtGJ08LeMq26nB5kiywZDxRupLqnFB5/NvRtd+BPCpNqpkLEGeRPog11xer7cZWKWalo9MbFKMu8r1uDwTaRT91kdgdvzhdtR9LT08tCYSae0P9fYLwHowTwaltiE7Y6DAkz8FiwEbTaqfjK4RE81XHEh+Np/8Xgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wW7XifaUEYXLL4FguvwqN0+Lhg2xtOpvU/gE1fjfuIE=;
 b=eXCO2MEL1gljxyr4oAyH8I3K+shwPauEU62Jt6vHG+Npj0jYZNNkFtsQ+OjJqQ2EcGLN/Xsk/i5kXWAB4ftcdt2eVh1H3DTiZdljsroDhFbj0p+HYzqoi6BMPJjW2TXZuekWV/C7YOcDozz5NEqhjWJjCuDQWBHzTJHH0pSmr33j/d7uXyA3cp8bLi8ihKJC5+dCMq3Feic0GOxFxihwAsCnHWXol0DGByjHKFo0iYIk3WUjlDWBTntuRoDHevGBrh+4lXT8EBeBkXv3aFe6RayYsS+UJEvSgBhogt4od9C/9igVw/9TQ6koNhRBQI1GlQMMyFrKN3aVxi1VjFUbHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0d687d64-1cf0-8965-0569-bce27cf0a8b7@suse.com>
Date: Tue, 30 Nov 2021 12:09:15 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-US
To: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>,
 Peter Zijlstra <peterz@infradead.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 the arch/x86 maintainers <x86@kernel.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: x86: insn-eval.c's use of native_store_gdt()
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6PR04CA0068.eurprd04.prod.outlook.com
 (2603:10a6:20b:f0::45) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7c330508-d735-4b73-0203-08d9b3f1da02
X-MS-TrafficTypeDiagnostic: VI1PR04MB6173:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB61734B5E936265CCA9CFCE26B3679@VI1PR04MB6173.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	4zBA6zLON2y6ZdhxQDEBtPACaJ8hTk3VXVKTSVrE92oA7aj0yNvm9qNJfLIpeVo0PphDgjp5mzYDEr8RaTAlBBIdSR78FVxQTpUm5dkmGrCGG4Q6uOXkhif0qmFGwzrZi/bM0iDPdSlLD391q6yfkR72ZhxpzyF24gP9v5jA4lZF5BGwjiHYUa5ns4lZXgLXNmJxlC6q4viJBg1yBZFXrEOT5MIteYHWXNdtJU4cuLTFnJ+hoqn3YDTiHdrDmsnCpcC1ukfVnNm29HShJPLhbH8RFSm5Dpw7yrMy8jW2tUXXB482Oc8fGQ622i9e6ScVl3ULxAIOxH0KSvfSSKwkguunciZcPJUM8ouI8YDy8rBVmfXpEpqmh0sG0zx5X3yHeRTaLR0yXOVbKjA3+quhkCN7vysE7p3kw7iQKX6Pn3L1VyUd8dHg0g7JD5s3FDnMkpkH6WD+NIqmIiCnJC8Zp5Xcllia2dXVSl5Fl+ZsYz6ZrbdIy7clqSDjifayrWhpi1sD9ym97Qfms+8Pr6u1Y2C/tJpfPySCgeXArVCjIvI41sjozP3VgajeusAweHgfwGyVa2Wz/EHOJuclfP2/QbDkQon0sQy/3n4zhiMaSXQ8FHBuQxtrg/KmfJY5/QcuJQNgdP57xR6CByyem86qu6Jp9XnZTLJUoGK/XT7+Z/P91fEdOrwhZEHvvKjSmwiOkxUi3xlKRMhUhlvGVy6InOgBEbKDFG6+Kct4xP8U+po=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(16576012)(8936002)(83380400001)(508600001)(110136005)(4326008)(956004)(8676002)(31686004)(38100700002)(316002)(2906002)(4744005)(2616005)(66556008)(31696002)(186003)(54906003)(66946007)(5660300002)(26005)(86362001)(36756003)(66476007)(6486002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ejBjblduekZSdXM5dFdqWEE2ZElKZ0RTTkxXMnVuOGhsTXk3SVp5N0EvUXVs?=
 =?utf-8?B?MHlrbzY0aTBaN0VwSStXYTdSMzQ1SklvcFU1SDBkYkkyTUtvblpRZGRWZkVv?=
 =?utf-8?B?Vkw4RDB6eG5RWnVKSkpuRTF5bVdraDg3RnR4emt3QlFIZHZib1dWaXNUMG5s?=
 =?utf-8?B?Y25LQzdyQkttNTRhN0gvY2hJU2xncGh6ZVlwSzNyWkdWaC93UGZpcXo2TnBB?=
 =?utf-8?B?dU15MlFqL2ZVSkNJZVNTTmM1aXdUN2o2bVBOZXRWMFRFUTZGQVJnYWxoZUhz?=
 =?utf-8?B?b1FXelhENFcyUzJ3WXV2SUNWV1R2eTREY0t5anR4OEFHNVNtTnlzcDVwenBE?=
 =?utf-8?B?eWZxNWdoRW1zQTNac01jVHZ6Sy9Vc2xXL0ZheGFuVkljMU5QRnFpY0ZremIz?=
 =?utf-8?B?ZCtNM2xJeE1sREpIbnZjVFRPL0RlWVVPV2dhVXVKVktzTk5XN1d4RzMwd1pl?=
 =?utf-8?B?QXZucjh2bnkvOE81WGJRdkVHa3JLTkV0OVB4QjdDYWUxUHNFbktVZ1NoSmRP?=
 =?utf-8?B?dVdUVEk1OGNQazBPTk1VVWdDQllteW80NENqR1F2cnRvT3pyOXJaTExRd0JV?=
 =?utf-8?B?eDV2SWZTQUg4cno0dkJyeWhqZkNDT3oyYUp0aGxlOU9YZVpxKzNyMSszSzZI?=
 =?utf-8?B?RCtxSUJYUjViV2d1cTB0R3ZjK3ZGRDdNalRQZVFEbkVBSjNYaHROUjJLdnk1?=
 =?utf-8?B?V1NZbVpKR2NBc3p1U0xzbE9aTTBYQUg4cysvdERXWElIWFRjWmZENjZIN0pZ?=
 =?utf-8?B?RU1jYjhsRmNtRFJQbXNHY1hWNmNyaFFsbWhCZHdmVVBlbzVnWEwvbXFlS0ZO?=
 =?utf-8?B?YXlvaXVHT05kK3RURC96STV4d2ZYaXNZRlBjb3hSZi9rdHR0ZlB4b1BtZnpr?=
 =?utf-8?B?SmNZUGFUcTlzYVJvTnRSOUl1aDkzd2lRTFBSeEN1NklMNVJ3ZEc1WmhyanY2?=
 =?utf-8?B?QmtsZHlMdk5mOUJDZzlBWmNRbG9MUzlVLzRrYi9VbnVyS2JneWlSUTA4cEZP?=
 =?utf-8?B?UDBnQVc5cDBwMnQxMkFaK0lRR3FjeExNZ0N3N0FPSHFnYnU2TnBucnVBS3Z4?=
 =?utf-8?B?RFNpeG5qSXlQbE8rYmlCMlJqZXpUVXUwUHU0MDRtYzl1S2cwVDFnU1VPWjRY?=
 =?utf-8?B?aVpTMzdya2VITEk4Tm8ycEg3ODRycGpaODdUMHZHMS90cVNISGVnK2RBVk5q?=
 =?utf-8?B?WWY2ck9mcGpGNjBNTDB3Z2FJYkE5dUZZMk1kL0ZVSkdYNzdaVk96bjRCcVYv?=
 =?utf-8?B?SHczZXFSMWlQUXZoazNvU0V6MVhoYjlpVkZjZit6WTRaQTFsaGMzU3daVnIz?=
 =?utf-8?B?T2E2Y0NMRnNldzhxbHRuK0ZZTXJ3VTYzUUpHSmExc29YQmVXRGNucEZPSXFE?=
 =?utf-8?B?bFNib0Zpb3p2K054OVdYR3hNdW5BNUdqdVJJZDdWcmhsZlg5R01SL25JNnlJ?=
 =?utf-8?B?TFB6YUlPK3BlUEoyNk5kRzFvanh2am9FVmgyQ1JRVUl5ZDhCb2lNS0tubzFL?=
 =?utf-8?B?UitQTFBqd1p2eE16VllNZzNLVmQ0WFBROVVscHVTbm4va3Brb2pIb3BmS3pZ?=
 =?utf-8?B?YXZsbWRNUXJxQTJzY2l1dmJnUlNEV0YxWGRyZkY5N2p4QnFodmZUSW5yYS9O?=
 =?utf-8?B?N09ZWEtWY2RXZnlVWGZLQUFneTEvMjF1clNDQ1RQWE8zT2lWQWpPWkJEWlNL?=
 =?utf-8?B?SitJaExzQkhDN2Y0VDZvb29vNmw3YTdwUmVJV1RhOHBOMTExaWtnaC9oa0Zr?=
 =?utf-8?B?UjlNQVJwamdxQkcyTGpYaVg5VUY4UnM2c1p3U0RjcUVidnFIOXFmUnExbDh3?=
 =?utf-8?B?Y0NGTHRPdHV3Ukh4ZUowOXJ6bXdCL3pMN0h0WUZBd1FBY3pKdHJEOHRPMlF2?=
 =?utf-8?B?aGtuOGZUdzNGazJZdXV5a3RHUGJKYkI2bWIyVGUzRnNJV3NpbTNvdHJHVXhQ?=
 =?utf-8?B?a3RDVTZMQ1FCQ3k0YllvOTQ0cE9GUlNvOWsycWNHQXdSK2IrNldhV2RwOHpl?=
 =?utf-8?B?WUtQNXZSTzVWQ2FYYW01RzcyTnlIUnhPeXJsQVdKSUtCQnhadTJZeUJhbHVs?=
 =?utf-8?B?UkpMdlJPK0puNHRURU5lMzJLTE1rT0dMbkY0SjM3TEt0YlErRndjRElXQ0Jq?=
 =?utf-8?B?UXVTVXhobVVJclMycnpzanF1NHJJbS8rSEI3RHVzN2JZSnNkS0FwK1hZVVA4?=
 =?utf-8?Q?WsMk4/WwvlH7f77tvzyOC9M=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7c330508-d735-4b73-0203-08d9b3f1da02
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 11:09:17.7319
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6rXd5F4VPcxu9vqfSFgB574cCNQCoqs9mdhVcFaN69wWkSTrnEXRrf79QwutPnwTlac8mHGMzaRTiwzUSsPQ7Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6173

Hello,

I think it is b968e84b509d ("x86/iopl: Fake iopl(3) CLI/STI usage")
which uncovered an issue with get_desc() trying to access the GDT, as
introduced by 670f928ba09b ("x86/insn-eval: Add utility function to
get segment descriptor"). When running in a PV domain under Xen, the
(hypervisor's) GDT isn't accessible; with UMIP enabled by Xen even
SGDT wouldn't work, as the kernel runs in ring 3.

There's currently no hypercall to retrieve a descriptor from the GDT.
It is instead assumed that kernels know where their present GDT
lives. Can the native_store_gdt() be replaced there, please?

For context (I don't think it should matter much here) I'm observing
this with the kernel put underneath a rather old distro, where
hwclock triggers this path.

Thanks, Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 11:15:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 11:15:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235029.407805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms16F-0004SU-Fa; Tue, 30 Nov 2021 11:15:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235029.407805; Tue, 30 Nov 2021 11:15:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms16F-0004SN-CI; Tue, 30 Nov 2021 11:15:03 +0000
Received: by outflank-mailman (input) for mailman id 235029;
 Tue, 30 Nov 2021 11:15:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms16E-0004RU-Ij
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 11:15:02 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c23538d0-51ce-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 12:15:01 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:34514)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms16C-000Leo-78 (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 11:15:00 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 0D5511FA51;
 Tue, 30 Nov 2021 11:15:00 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c23538d0-51ce-11ec-976b-d102b41d0961
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <625fdf21-8024-7a79-5c64-b8ed959c54aa@srcf.net>
Date: Tue, 30 Nov 2021 11:14:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
 <20211130100445.31156-2-andrew.cooper3@citrix.com>
 <5b4dcbae-4100-ad3c-cbc4-51f2b2bbedaa@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 1/8] x86/boot: Drop incorrect mapping at l2_xenmap[0]
In-Reply-To: <5b4dcbae-4100-ad3c-cbc4-51f2b2bbedaa@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/11/2021 10:33, Jan Beulich wrote:
> On 30.11.2021 11:04, Andrew Cooper wrote:
>> It has been 4 years since the default load address changed from 1M to 2M, and
>> _stext ceased residing in l2_xenmap[0].  We should not be inserting an unused
>> mapping.
>>
>> To ensure we don't create mappings accidentally, loop from 0 and obey
>> _PAGE_PRESENT on all entries.
>>
>> Fixes: 7ed93f3a0dff ("x86: change default load address from 1 MiB to 2 MiB")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>
> I guess this may be worth backporting despite not having any immediate
> adverse effect.

I'd say so, yes.  I too can't see an adverse effect right now, but I'm
definitely wary of stray executable mappings lying around.


In principle, it would be nice to reclaim the 2M of space (which only
exists for the MB1 path IIRC), but then we're getting into a position
where xen_phys_start isn't really that any more.

A different alternative could be to use it for early memory allocations
in Xen and treat it like .data, similar to Linux's early BRK().  This
might simplify some of the relocation hoops we currently jump through.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 11:16:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 11:16:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235035.407816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms17d-00052f-QM; Tue, 30 Nov 2021 11:16:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235035.407816; Tue, 30 Nov 2021 11:16:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms17d-00052Y-NA; Tue, 30 Nov 2021 11:16:29 +0000
Received: by outflank-mailman (input) for mailman id 235035;
 Tue, 30 Nov 2021 11:16:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1ms17c-00052O-GQ
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 11:16:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1ms17c-0002TT-Ee
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 11:16:28 +0000
Received: from iwj (helo=mariner.uk.xensource.com)
 by xenbits.xenproject.org with local-bsmtp (Exim 4.92)
 (envelope-from <ijackson@chiark.greenend.org.uk>) id 1ms17c-00030v-Cy
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 11:16:28 +0000
Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk)
 by mariner.uk.xensource.com with esmtp (Exim 4.89)
 (envelope-from <ijackson@chiark.greenend.org.uk>)
 id 1ms17a-0001IF-AG; Tue, 30 Nov 2021 11:16:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-Id:Date:Subject:Cc:To:From;
	bh=4nWf7wNA6mtOavsU3HdJwAQqo4+45MLRwyKnscohzts=; b=LzP3cBkrthbHqpGlAgZ5Brqkbs
	vk3UmUSsj3RBEhbKlxj7H4yZzXxHfFKTDMpku1pRU2KlSbA4lN5b5RkvACnXynZwxvxgDLKGEr9Ep
	VvESqRuOIGGn+LDySG0nPiollta0jtWkbHqhH3O5NKSumPQkZ/u7DU5fMYvj6Bc093vE=;
From: Ian Jackson <iwj@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: iwj@xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	Community Manager <community.manager@xenproject.org>,
	security@xenproject.org
Subject: [PATCH for-4.16] SUPPORT.md: Define support lifetime
Date: Tue, 30 Nov 2021 11:16:17 +0000
Message-Id: <20211130111617.14925-1-iwj@xenproject.org>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 SUPPORT.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index b1367e2b22..85726102ea 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -10,9 +10,9 @@ for the definitions of the support status levels etc.
 # Release Support
 
     Xen-Version: 4.16
-    Initial-Release: n/a
-    Supported-Until: TBD
-    Security-Support-Until: Unreleased - not yet security-supported
+    Initial-Release: 2021-12-02
+    Supported-Until: 2023-06-02
+    Security-Support-Until: 2024-12-02
 
 Release Notes
 : <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.16_Release_Notes">RN</a>
-- 
2.20.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 11:18:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 11:18:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235041.407827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms19O-0005ll-Nd; Tue, 30 Nov 2021 11:18:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235041.407827; Tue, 30 Nov 2021 11:18:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms19O-0005le-Jz; Tue, 30 Nov 2021 11:18:18 +0000
Received: by outflank-mailman (input) for mailman id 235041;
 Tue, 30 Nov 2021 11:18:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms19N-0005lW-Dd
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 11:18:17 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 36e668c5-51cf-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 12:18:16 +0100 (CET)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-6-CneNYOSLPOyPusszXi0Xzg-1; Tue, 30 Nov 2021 12:18:14 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4190.eurprd04.prod.outlook.com (2603:10a6:803:4b::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 11:18:12 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 11:18:12 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS8PR04CA0088.eurprd04.prod.outlook.com (2603:10a6:20b:313::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Tue, 30 Nov 2021 11:18:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36e668c5-51cf-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638271096;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=VZy5shlTsgjXzuUwnVwC9fRCAFmrMvq9Fl0If/RZzpY=;
	b=Z2UhRNzZbASX/u7tc1IHwy4fmmzTQ/I+1udaJBZJOWvzEt2C1gaPRq6vKn/aaN8ecWjuhP
	xOYB8NyDKArIfleGbNP45U02qo5qSOdhCk9G66qSbKZ4PiPThud7EQZq6S/QITXb9RxcY1
	xWXgRNpoC4zmlM+56d35Ar31ELdcIe0=
X-MC-Unique: CneNYOSLPOyPusszXi0Xzg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TI1Ca/1Rz1sn7haHA9Qpt3AgpGkH4/4MdprrcgQ6Oqwv1p8p7dtO+z3VxYKE4EwUOHhev0fODichacoDAdw561/Gdi9S4johppRnMpBkcbaC4O5lLYmcsM6Mc9lqwyWVRE2gVNeuX5ZcrLxHrFz0JTH5MBdRxeQpSWlSdKjZrLhMV9LbL8lFcTdjOGN5e0b+rklzp4pHlvrQUIT8WvvZ/3V/yqvHueKwgws42vAauVTwW+nr7IwY7bN31QhIXf49x0t7ZBaLKY6IsByp8btiProrWZBXspn1KawU2sM6qSoc7BVOO3Qdq3I/5o3tp/nbAVtg/LyJxmmZuA2PB1ZThA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VZy5shlTsgjXzuUwnVwC9fRCAFmrMvq9Fl0If/RZzpY=;
 b=eE1caTP+hO1qEpKkiHLthucxtUl2X5gEmEHNOmcu6x3bMJLImVtDB3VjUYR/laSa5EmPWuQDG7RawZpAfserMYZQdT0XFstNFBujqVfKltoVrBcgntdxB5/DSZsFLm0IQL7da2f6Dayd0i34pC4iyJ/xZCaOsLvBKIm1J4UA84oDXaJFsHqEGzCXSqyduIzDuXdW5sY4kexD+OoKDm/USYq26Y7G2h56EFq+SDxpZQ5ep+YcyyjpM5KyoHLwbUdJyml9lweUgHVwS/KOWoBznAKic5nEEXS8v1zZqCsEitmbvUApfOWKMVp2it/0o0MrCwh1tvbkkgnRTUBZAlzlrg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <5f1f7e92-e6f9-1430-6d9d-5baeb23597fb@suse.com>
Date: Tue, 30 Nov 2021 12:18:10 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH for-4.16] SUPPORT.md: Define support lifetime
Content-Language: en-US
To: Ian Jackson <iwj@xenproject.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Community Manager <community.manager@xenproject.org>
References: <20211130111617.14925-1-iwj@xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <20211130111617.14925-1-iwj@xenproject.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS8PR04CA0088.eurprd04.prod.outlook.com
 (2603:10a6:20b:313::33) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 48ae6173-23ba-42d8-5033-08d9b3f318f6
X-MS-TrafficTypeDiagnostic: VI1PR04MB4190:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB4190F95185BF21A253E1F9ACB3679@VI1PR04MB4190.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3826;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	tOQzZCce/fWsIdUgsMsOfN4bVoufWMRt1ioGpkTYOS7J+JRwPBw9xXGB8UUxPZyocywGHYZrnktwCRf5Z3k0sPotIje1qNNOgnmF32S3+ARD7oNXLIZouYFzbBtuzsfFFp+9fUZiv67oKAt28O+rLCP0rqUOYJQS5dqsMj9lhf8lmGOit3tgHxIZjYn6GT95slTGMCZV2cwS4POAuUY6dn4qemlzbbx/nYezgbcu557rnNMd4ws2ZQUXa5GodQMPLj1YFhAfLO5MW1mP9we5pUqbNVvztiau2lWQbGwvtuEcaFW6TyWVjn3UbHTwkaTS2yXY5eon29w6GZ1YNgB73oIjJSH02hddZEa1zYpcITAErsWVBJsyKqU/pLw5W0ab9Zyngd3P38NJp5k1PJUEG384rJu/qJy8xlECOt0mbJRii1RemJcABOfTM5CmTscDhXdRgfpvczLlABeNS87m7d9GpOA7zVcsgkDj3RrYxjNdzZDfwq08as16aG5oeS2gzz5TEaooXSWPGLwxq+22XUs7uDvnMaWmhz7/o/Tg1OYVJ2OdjX1MrmRWHJ8daXyb4mHsbxjgoAUPuMVPBCeyP4tgttNOrcWsRZqgqdpKHse5FglmyPPxRAwCStUPUd/10ywnWjUAIjFFMybayqISA+YknKEcDOrzboogADCy18RUnZo96+fyUW0a8ewEYlgnZ5pNM6BVrZxjgECcH3UER4Qzbcfcue+62yr/UH+bXRMIb7SG0stfSa/akXr6RSHLw8q9a6IhTsmP2L5ULhxWcijXIhxKbd9azAmLREVOX2Xx+EO+9F0KSQ71MGbYte2S
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(16576012)(316002)(66476007)(54906003)(66946007)(8936002)(31696002)(38100700002)(31686004)(166002)(83380400001)(2616005)(956004)(4744005)(5660300002)(36756003)(6486002)(186003)(86362001)(26005)(53546011)(508600001)(8676002)(4326008)(66556008)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ajJlN2l3ckthTk15cFBTcmUrd0xLaUVoQ1BybTZiVitCaXljM3NIYlMyVnVS?=
 =?utf-8?B?RFMxYnVQZDh3VGh0czQzZTVvTmgyMTF0TUhJMXdsR3lDQ2RlSUxEVlJ4Tnp1?=
 =?utf-8?B?MjFTZUhOcjF1UjZjcEdsTVgwdXQyUk1NdXJqN2l1R1lnY3dITkRDTEhickND?=
 =?utf-8?B?QzlqT0FDOUo0R3ZldHp6SlA4RE5CNVpPSHlGYmljZHh6LzdkSnExK1BubFFU?=
 =?utf-8?B?ekdVaVpEajRHSnNpeGhvU05XMEZZR2JMNEFBeTM0ZUUrOTRaZlMyTjBaQjZ5?=
 =?utf-8?B?eWp1Y1h4M0JVRFd2S0Q5ODFQd0o1R2RVOFd4c3hTSEtNRWY3Z0lpNVcreEtI?=
 =?utf-8?B?ZDE5ZGJJdGJCZTRLeDVXWW02bUcyUXNMNVVmMndzOEdiMzRNSkVEaUJBMlJu?=
 =?utf-8?B?Q3Z0bFdWNHNCSmtOZ0hzL2NSTlJFVGU4OHovL3dnNU9zRUw1aWVESHdpT1ll?=
 =?utf-8?B?NHNraFZKT3JqM0tDMmZtTTBFSWd5YW1QMzZIS0t5VlBtUUJBbEVUdk1GeDJR?=
 =?utf-8?B?dEpHZ3dYd01zek1hakVvNDZ1RlVNdTI2ZVlMVXA5MENKWXVIWXpjU0E1WnY2?=
 =?utf-8?B?dG9IYTNXNytjdjNib0xHNFNuajdLS05neE9may9oOUFuMmNXTERSL3ZpSGU4?=
 =?utf-8?B?d0padmtXeVdWSlN2aVNVelVxbkNpRUFGdEZjRGttcnpEdE0rMkdpaXg3NHoy?=
 =?utf-8?B?SXFSYUZSeFhka1R5Tkc0eCt6K0xtaUp5aXVSWFZpUDdmVUh0ejc2MDR1U1E2?=
 =?utf-8?B?MG1vemdGOWtDOUMrOUh2ZGpaVkJMSThyNyt1MTdWM3NwdFB4WElKbmE0eVVp?=
 =?utf-8?B?NzNlNVBtYWFYRU11ZVVQbEtRUnZLWkJWeW9NU1FITTlWYzNxVGRjYzBxRjBX?=
 =?utf-8?B?c0YvSldBMTFpdWJUOFN0QzRVQUtac0JXZ1ZyajJKNFZENmtkODZNQkpMUjlm?=
 =?utf-8?B?aFhIcUEzbFplOUxHZ2JHUHJYVWRRalBzQ2FHbE1tekp4dG5ET2w1VC9QYllN?=
 =?utf-8?B?RzJSY0kvNFFKU00vZ2Z3NHdGM0dRN1E2Yyt2eWJmSzVuZG45UkpQM1hKV2tY?=
 =?utf-8?B?VzZVeW1aVTFqTFhER1Nwa0JhdGpPK0Z1RkM4LzhxUUYwN0lpR05EVlZXRTlU?=
 =?utf-8?B?dVdQNEFPYjRSRnk4TzNMaTVzdjM3Zlo0MVZGNlV3WmZoOXkvM0hoTTVsWlBU?=
 =?utf-8?B?b2JLQTRucmd3Z1N0cTRpdWlQNjdUNm0vVmJ4MUNpWkovT0k4TWdIUkNyS2NV?=
 =?utf-8?B?ZWZWcXpUUnI1aUtJdkJzYzY1elRmT0RnS1NPYXRhUUxRL05NZER1NUd6V2Yw?=
 =?utf-8?B?NDFqUkZFanN3QXRieFNlSlMxS2hFblMxdmRidFNkT0k2UlJ1bU4rall4cjV6?=
 =?utf-8?B?UDJiQnc2ZUN3ZnFmclF4cjYxdUdRdDZsTHc5b3MyMVdsWExGNFo2YUVESnR5?=
 =?utf-8?B?U0t3azB1b1VhQUE5SDZock9ETVBmeW9FNzQza1Y1MnBXZmVhdlhVTzdFdkw4?=
 =?utf-8?B?VDFDeE8xWm0wb1IyVk42aFVnVXcwdHVtQllVbE1zdmdWUDZFTndoMEp6SEln?=
 =?utf-8?B?dC83cnJ3NFgwdWMvMUhtcktyWWFzRWJSNHZ4cHFQNTRSZDZsZXNkSmFoWGNK?=
 =?utf-8?B?eTAwOGtjSjdhb053bXJseWtxbGd3VTNQYVErek9FUUhrRXZpU0xQV0FtTEFz?=
 =?utf-8?B?Sk5icXJubWgzQ0IvMjF2K28xSzNMYi9hc2hOTEdTTW5xdHB3K09WZC9IVHpo?=
 =?utf-8?B?K1hPM053blJqL1AzNmdkeW82NHRVTFE5ZTh3akF2WTNreUp3ZngzWWMwbDlW?=
 =?utf-8?B?OHdIQmZsdzhqNkI0QytXcVBtR0FyQnhDYTBIcHdmdzFnSHBOMWIzUXFGSU4y?=
 =?utf-8?B?OU1nbnR4RTV0Znl4dTBoMjBjYnNhTFpiWnJVdGxqT3MzeXNQZVRKRjVVbFRV?=
 =?utf-8?B?dDhYNVh5cW1jdUNpREs2bHRRRHZEVHFkbXdlRFZjbndKVC8xS2ZsYlZvQkFV?=
 =?utf-8?B?TUZZRTFCczloUkFkOThuaTVvR0N1YWNIa2pSV01wd3cwSkVuMnZ0RzhYRVZr?=
 =?utf-8?B?MEdsV3M5NUtUZTd0SWhkUTVUTVEvOE90SDJxSEd1OURSbHdoMUtiZm81WTJE?=
 =?utf-8?B?TEIvQzlSQVBIMnZBWnFoZ0RETnlIbzZyUnVVTUNXbjhhYjRJN0dROHE0cmRk?=
 =?utf-8?Q?pbT8UZfqn1vPWqvNQ/JN2W0=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 48ae6173-23ba-42d8-5033-08d9b3f318f6
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 11:18:12.8225
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CL/n/8KC3KMgM+FXjQzJoRaZcoiNyXbTjE/2Z8JUX75X7OpQhP7JyTmYS4tsD2hh/RSSwY+iC9DY9q+s3V5mXw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4190

On 30.11.2021 12:16, Ian Jackson wrote:
> Signed-off-by: Ian Jackson <iwj@xenproject.org>

In case it matters
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan

> ---
>  SUPPORT.md | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/SUPPORT.md b/SUPPORT.md
> index b1367e2b22..85726102ea 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -10,9 +10,9 @@ for the definitions of the support status levels etc.
>  # Release Support
>  
>      Xen-Version: 4.16
> -    Initial-Release: n/a
> -    Supported-Until: TBD
> -    Security-Support-Until: Unreleased - not yet security-supported
> +    Initial-Release: 2021-12-02
> +    Supported-Until: 2023-06-02
> +    Security-Support-Until: 2024-12-02
>  
>  Release Notes
>  : <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.16_Release_Notes">RN</a>
> 



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 11:22:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 11:22:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235046.407838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms1D8-00077T-89; Tue, 30 Nov 2021 11:22:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235046.407838; Tue, 30 Nov 2021 11:22:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms1D8-00077M-3s; Tue, 30 Nov 2021 11:22:10 +0000
Received: by outflank-mailman (input) for mailman id 235046;
 Tue, 30 Nov 2021 11:22:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms1D7-00077C-Jn; Tue, 30 Nov 2021 11:22:09 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms1D7-0002bK-Du; Tue, 30 Nov 2021 11:22:09 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms1D6-0002kB-Qz; Tue, 30 Nov 2021 11:22:08 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ms1D6-0003Q7-No; Tue, 30 Nov 2021 11:22:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Dleu93clir/VLRVA0v6cpRPXkcKiwVl4JYhwXwsh9WE=; b=33at62IWVYVsyN2CuOsDvNL45w
	n/eszHAmtcfrKkQRjD9A9IR4W+5xEFpeIQXKwjFHAaOFjOJffWXF84g5fJ6+ZgBXDMQqsBVx61mZ/
	P+Dee8yceN468tvYW5NDfNnasBVac+F6vkWCJJcZ6wJcFQBnJe/tzDw1ZgKGp1w/rwOU=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166764-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166764: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=d120fc5253f620a6a76cfb15f1e09337e8b3d926
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Nov 2021 11:22:08 +0000

flight 166764 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166764/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              d120fc5253f620a6a76cfb15f1e09337e8b3d926
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  508 days
Failing since        151818  2020-07-11 04:18:52 Z  507 days  489 attempts
Testing same since   166764  2021-11-26 04:18:46 Z    4 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Koichi Murase <myoga.murase@gmail.com>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Vasiliy Ulyanov <vulyanov@suse.de>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Xu Chao <xu.chao6@zte.com.cn>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 85150 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 11:23:02 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 11:23:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235053.407852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms1Dy-0007l9-MQ; Tue, 30 Nov 2021 11:23:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235053.407852; Tue, 30 Nov 2021 11:23:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms1Dy-0007l2-JM; Tue, 30 Nov 2021 11:23:02 +0000
Received: by outflank-mailman (input) for mailman id 235053;
 Tue, 30 Nov 2021 11:23:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms1Dx-0007W5-80
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 11:23:01 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e00bb318-51cf-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 12:23:00 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2057.outbound.protection.outlook.com [104.47.14.57]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-29-HP1STkXnO7eZFhoIifglKw-1; Tue, 30 Nov 2021 12:22:58 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6304.eurprd04.prod.outlook.com (2603:10a6:803:fd::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Tue, 30 Nov
 2021 11:22:57 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 11:22:57 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM7PR03CA0017.eurprd03.prod.outlook.com (2603:10a6:20b:130::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend
 Transport; Tue, 30 Nov 2021 11:22:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e00bb318-51cf-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638271380;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=nA4BbexpTTBdOe796sx8Twpc/yEs4wQOlUd4N1nrctk=;
	b=LBsmhOBPzztlrUGmMpY67rK3fbLRXza1jiRwsCb1STRhormgF/6a1bS4tSu1cmXxCAOYzB
	yC9DTvgyyZe7nUINW/K3QMygAIFEdtkEqlfGpv/F/P+1kKhyfKl8FeVBo1QT8NCVHJp5rL
	y/B2ohqvKsU3q79N5rdzRM3F+IxMDj4=
X-MC-Unique: HP1STkXnO7eZFhoIifglKw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TidktcUigJ2LC8GIdi9hqw6Eg/lbPNG93/0hi9DVkovZwxHV81n9BiNjsAYdOv5kA3DuBYzHkS1lsDuTgpnZ4sQPR0UFcDr+k/CEFNM3k5CcVlfaj2LijjIF6FjmQVB7HCx3ypjwwv9rlYTYkMtGFjgHb1GeeUd/2HUUIbq6eSgR3yo/No9uJHGxx8hDwQzW0mAJd0HxL+dq6QDaQzxe6JmzDPGXBg0r+5LOC2O2lzRcVxG9PTvTHlSvQRP/JSKPaJV2Q3iTCSWp7IWdlWZ/13ag+0/G2fxvRu6liBi8bSAoqw94uNBaGF0DQ0KSjcDog27PiK6+mEVE+mF851JcpQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a+ADUfzGeFfQzAVMf3ka8n9nmIIHqPhFm2mvC7CeZCI=;
 b=Mj0GHMj9qpzTVx2Q6DKF2SBUsJHgd4HuAVik0nbhqkvzhOXVROnNqCNdfXSiMvV9ih4mrNTIRTBiGCktbG9ASxkNYNnRBqR08A2OiPuHbCU987bam0u1UUFZqREFu/6zBXXuc0ZFvsMW7jcddRsx9H2ZDFj08i/Baa2KRatRb7zwFRa4vK7gwZovIhY+bDu8XXTJOi342uHE1fpqUYd35erPuddomfJSqaaihlADBMC+bLhocKNuS5+Mk8+gFFzQiHKtHFCXKupRvTor4NB7CyGXEtdGQ2bm4FyJyjWJEdRWZIgmcHZH2icRksMZoSJD8W9lHZfx6NYx6Qxg+GS7CQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0b38fd69-c484-fdd4-9816-5d2a00b0a7b8@suse.com>
Date: Tue, 30 Nov 2021 12:22:55 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 1/8] x86/boot: Drop incorrect mapping at l2_xenmap[0]
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
 <20211130100445.31156-2-andrew.cooper3@citrix.com>
 <5b4dcbae-4100-ad3c-cbc4-51f2b2bbedaa@suse.com>
 <625fdf21-8024-7a79-5c64-b8ed959c54aa@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <625fdf21-8024-7a79-5c64-b8ed959c54aa@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM7PR03CA0017.eurprd03.prod.outlook.com
 (2603:10a6:20b:130::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ea07186d-6093-427c-394b-08d9b3f3c242
X-MS-TrafficTypeDiagnostic: VI1PR04MB6304:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB63042AF82A46AC348AB0C244B3679@VI1PR04MB6304.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	vUSqY+XNAv3wxzg7pXrqtL0kfWeGrWEKYXmshlQCUM6iiTQOQBKLi4eJRdJFx3+3iPV6B3R8n7NPxIuf5p4KVnYAC7p00kipGL5K/NNor0c/yLxDYe5CA+Z2CjoFlZFjx73+STn3eiTV9eFl51UKF31zVzck+rfKL73LMGAHIv/Cc/8fY6NoVoOqlJYgfoLtY0UX2HWV2O3WD1o7GgUgkgYvpJghXRv3VIUcGd354P/RsZ54nm3queA3CPR/Ozmr5+694RijyF9NkKKxG3A4f6Gzq2DUmGDpHIWlHlTJhNDuHZ1xqkxQlrbmrpKgEgRUH911VzATJFaj5+eC0wowT6zN3sG3HEitMLx/IphDV7883MRTU4G/oLs4WvBx06LjWMi5rPpxsJ5oq/+pq82a/PmZmTx+V9kK+1qtnJzQhcMcFZHzVRKxfeeTdoPFs6qftHp3vpCyGPrsPeOhlGq38NOxGoK7SbhZdSsfNlhw/W0/EReIDYUmvaCpWldfVd9ezewrOOyvNXSVzaDympC6tKCqHzPV/cM3c1W8HhwPILEqSGkQMkamg6lFWvY/9AHXkknV9l6OvS11wIVeNUMYY1A9c//vDVm1T92c0jgbB8yKrTBP3Ts6E9ZY2xw6jMBLl20E3OB+5szQyFzuM4v/gPasKLnVx6dhI99aGUJvayXVwW+5cRTSOjz88uw290DyQ9eXjW8Y707fHnumWjFgEhoqQq0iJYLi6zf4GfVG4yryuy6HHZhpleqpizWDHMdG
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(26005)(31696002)(38100700002)(36756003)(186003)(6486002)(66476007)(508600001)(2906002)(8936002)(8676002)(86362001)(110136005)(54906003)(53546011)(2616005)(956004)(5660300002)(316002)(31686004)(66556008)(66946007)(16576012)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Z4rJDDI9w/9MHd1eY+3pDj96oaGJByo+94I8fIu6NNU//cUSAyiVSc3uvLFs?=
 =?us-ascii?Q?XP2gF3E6EKV4JYvBNqxeOE1UpB/yXKnkZZg+t/bxO5qoEcicu7CztxN6o80F?=
 =?us-ascii?Q?RZza1ypc4RPhBKkAR+zfoL0tQhKQcgjEGJwSEyHs/R8eDDASknYg3u9mRHjh?=
 =?us-ascii?Q?Hct3M0XQGvkdUq2JEh0ykAhDyJ62S672xHcUc4IaABHt8fQrPM1s87eVBMLM?=
 =?us-ascii?Q?VSa3zgHe2mPdps7stOy1+oeiDpLmYV947DY8ckvKAb5zYbiaVvjNF0mJM5xo?=
 =?us-ascii?Q?WTjUm9DQMXb9JCWaxGivtVd2u6O2s1r2SgUMseGvfa+ic/RInXdb9oqRGdNc?=
 =?us-ascii?Q?q0E8T4PpxOb2+jw7Jfavb11/4UXatM9xe5gaEoa8fE10OTFrPfyhX4CqEdu4?=
 =?us-ascii?Q?bcN5fUtGwhvaVotHX+PTMxrAqf/oULMDJXoFda5xsdfxjt3GURjoU+qhw6NK?=
 =?us-ascii?Q?Za6FFp20oI33VB4obxOj1WwwAFC4I0cyNMUuAta5wDxH0oCH+qAu8CBUi3vj?=
 =?us-ascii?Q?+Grg0SJBnRMM8weXKIe1RXfY9lIJll6ROEoftQ/RkNTA65VjG9RU5lahegNX?=
 =?us-ascii?Q?n+fSyWKJ9Z/Odf+VpxkIPxQLJ99n1zghr9jPdnEmtUBlBKfnR3bw2cIi5dLG?=
 =?us-ascii?Q?j2LLNRZbApoi6jqIfGEsmwAZozQevjI912BAoC54lDF3AtyTyAiZ+gim0VWa?=
 =?us-ascii?Q?QieXI2xZZN9rGE/8eBMrmifokLNSnEGnAElD0/NxnL78C+d/M+qjhza7z4iN?=
 =?us-ascii?Q?62+Hvroh4+0Jw1g8KJptcedF+mTiQ18zKvyKAoB/f1yS58R949SDAGmkiEkg?=
 =?us-ascii?Q?Gj7JiMSxNk3oQK2Y5LUKmJJpniXgLw6xRhVdMee5Ga1292OJ3fSDcrbU3OXh?=
 =?us-ascii?Q?OO5WhNGNGyFAgw92nFHMcG6OOeCZKeNZf97jJzZz94dBsFJE2TdUwh4M8nJX?=
 =?us-ascii?Q?nYheABEFDdVsR0QHigXBKPHyyLtdBpuak+U6gdaYtVkdTxxLwxtq9g9Ovby8?=
 =?us-ascii?Q?Q542Qw7PQ0ss10Uujf2KaFX6ew0iW5lqO6+f3wem3Mbv5cE1Wch9bDlQeUIO?=
 =?us-ascii?Q?qTME4ws69YA1k9NZf4naSYM48EctPel3Di+sxPiHwQO1WnJl//mGH0igiZZg?=
 =?us-ascii?Q?k6V2RBqfw5+WzNYAvW0f5Mhj+f6ZY0OaAfjFsBE/tWamGWNfx6p5Dl5GEDba?=
 =?us-ascii?Q?kdrxtxU7Z3oxoEurRvmit9Y/VXirvVkx52Z3K2GlysT10IL/rKCYkcUBFHs6?=
 =?us-ascii?Q?bajEusIeAtdqH2oPevkg2a69wyFvsIOyDXCkn73lG1BKik+l4CJOZ3B23HLj?=
 =?us-ascii?Q?nRV5wHlSdTJ0gpLer5cegNyLOrrBpMmsYqvJY00/ZQLHicJPlkWdb7Acrfhc?=
 =?us-ascii?Q?Mmdx/40A3IVJE+q9cRLS3uEluPu4VSUnM4bZkolVYcpRl/0QCPyS2di22+H9?=
 =?us-ascii?Q?FoRnHXXQ2iukux18nxgdP6NRVpeBnAdEeJnBGYz3PL53UcKpZliq4GCqzoDq?=
 =?us-ascii?Q?8yTfahqU5mWRF5xDLTPB0+70z8KLhxBv1SIJLaY0ix6JYvvUmZo1kMyMTmdD?=
 =?us-ascii?Q?3+WqkFWUqgNMNC2ZN6q1bXw/SOSwGMA/xK7OtKEZzGYOK8DzsEfprjVy4ZH5?=
 =?us-ascii?Q?o2XWyYimZe8GSbjCJ6BufYY=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ea07186d-6093-427c-394b-08d9b3f3c242
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 11:22:56.9149
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6kjvSW0r3No/nsmi4A4pnllZhH3xySUu3wjrFsjs1tc710fHVTwLj8h1V+JcdCEo5EdJDHFki1swftH4gEcg4A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6304

On 30.11.2021 12:14, Andrew Cooper wrote:
> On 30/11/2021 10:33, Jan Beulich wrote:
>> On 30.11.2021 11:04, Andrew Cooper wrote:
>>> It has been 4 years since the default load address changed from 1M to 2=
M, and
>>> _stext ceased residing in l2_xenmap[0].  We should not be inserting an =
unused
>>> mapping.
>>>
>>> To ensure we don't create mappings accidentally, loop from 0 and obey
>>> _PAGE_PRESENT on all entries.
>>>
>>> Fixes: 7ed93f3a0dff ("x86: change default load address from 1 MiB to 2 =
MiB")
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>
>> I guess this may be worth backporting despite not having any immediate
>> adverse effect.
>=20
> I'd say so, yes.=C2=A0 I too can't see an adverse effect right now, but I=
'm
> definitely wary of stray executable mappings lying around.
>=20
>=20
> In principle, it would be nice to reclaim the 2M of space (which only
> exists for the MB1 path IIRC), but then we're getting into a position
> where xen_phys_start isn't really that any more.

Well, xen_phys_base might be slightly more accurate, but apart from that
I do think that we reclaim that space (as much as we did reclaim the 1Mb
before the change of the default load address):

    if ( efi_boot_mem_unused(&eb_start, &eb_end) )
    {
        reserve_e820_ram(&boot_e820, __pa(_stext), __pa(eb_start));
        reserve_e820_ram(&boot_e820, __pa(eb_end), __pa(__2M_rwdata_end));
    }
    else
        reserve_e820_ram(&boot_e820, __pa(_stext), __pa(__2M_rwdata_end));

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 11:42:46 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 11:42:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235062.407863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms1Wl-0001oh-Aw; Tue, 30 Nov 2021 11:42:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235062.407863; Tue, 30 Nov 2021 11:42:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms1Wl-0001oa-7n; Tue, 30 Nov 2021 11:42:27 +0000
Received: by outflank-mailman (input) for mailman id 235062;
 Tue, 30 Nov 2021 11:42:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms1Wj-0001oQ-PX; Tue, 30 Nov 2021 11:42:25 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms1Wj-0002y7-JF; Tue, 30 Nov 2021 11:42:25 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms1Wj-0003PQ-9S; Tue, 30 Nov 2021 11:42:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ms1Wj-00085K-8y; Tue, 30 Nov 2021 11:42:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ddszqL0ywi2HN4lQozzhEauK9RgmsoNSuI2q/BgBb3w=; b=z7TMvgJGiMeTZ7+8/KNZg5FVo3
	pWA+dwJ0I6olAZFVMaVATELGNlRq220MJfmuBWw3kx7hZ9Ro6pfp3J6mT8zcC8QEeIdNdv5SPjUCd
	x23/MD3do7sqGeytjuZWui968pVHb3N9t5mtvAfwF5Sbn8AWH26cm3ZH8CaUGXCvYwqA=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166589-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166589: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=0e6c87b93e1d35fedf9cebd65395c2f79b4af11a
X-Osstest-Versions-That:
    xen=5449ba84e99849ee2339fd79f9717e10113d702d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Nov 2021 11:42:25 +0000

flight 166589 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166589/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  0e6c87b93e1d35fedf9cebd65395c2f79b4af11a
baseline version:
 xen                  5449ba84e99849ee2339fd79f9717e10113d702d

Last test of basis   166351  2021-11-24 11:01:39 Z    6 days
Testing same since   166589  2021-11-25 18:07:34 Z    4 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   5449ba84e9..0e6c87b93e  0e6c87b93e1d35fedf9cebd65395c2f79b4af11a -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 11:56:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 11:56:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235075.407901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms1kB-0003hD-SQ; Tue, 30 Nov 2021 11:56:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235075.407901; Tue, 30 Nov 2021 11:56:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms1kB-0003h6-Oj; Tue, 30 Nov 2021 11:56:19 +0000
Received: by outflank-mailman (input) for mailman id 235075;
 Tue, 30 Nov 2021 11:56:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1Xd2=QR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ms1kA-0003go-If
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 11:56:19 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83f15d1c-51d4-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 12:56:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83f15d1c-51d4-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638273375;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=wvrCojYYN+Oxe7J6bTqhETP48nbg1Gi4W94LUUVBmLE=;
  b=YpbKCQvGM/gatQdupi2Wv4pPD0xVCOYXrMWBS56o5NqiZU+1ik8W9cym
   xqpwpEHele1ux6daL8bIb8ENhhMNztf4jIybRBqIuOEdU2f57RVN3Pdmj
   0P9HZoJ4I+1YKsx+Z8mJTWZJUk7+watHpJNx5c3MTNjfDmiTtM1gRFmnW
   M=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: /45WaKRDXd/aCgeynsrEYPDhSJeYjEw80w6JSW9dFVkXqQSX1l4HsJkhldcS4xbapg+PGTlTOW
 yoSHVbXZRMx+pyaW77bg1N/CXT+MjwT+q7mEWS6YH2RNh/KTd7VOTBPnoyKcPeS4Q36fiKoja+
 mpD7Tl5ewQjDjX7FfQDQ8+OW6zOX60UsWaBlz9RmOPS6zbuiKHuHGBWmVSAdkDNOtW1vPSzKyL
 LSMFMee8GiMAZYBwAq1OiTZhJG8HjgY2m/IumTLBQHOcciauP77Wux5abnbnzr4rW6KUlSBnp/
 0OJYzDKBR7caHuWolztB5uBJ
X-SBRS: 5.1
X-MesageID: 58413392
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:LxpCdazOGvuGc+iOaOl6t+fAwSrEfRIJ4+MujC+fZmUNrF6WrkVTn
 TQXCmjTO/iCazP2e491a4q/9h5QsJaGnNc3GQRsrCAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrVh2tcAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt+J77
 PtM7ZqQdVY4IZ/MmfomcTp2Di4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYIIgG5r3ZEUdRrYT
 /EjRnlJNQzAXwFGHnE4JI5ivue6qUCqJlW0r3rK/PFqsgA/1jdZwLXrddbYZNGObcFUhVqD4
 HLL+XzjBRMXP8DZziCKmlq0j/LLtTP2XsQVDrLQ3vxgjUCXx2cTIAYLTlb9qv684ma9VsxeL
 QoI+yMohak06EGvCNL6WnWFTGWs50BGHYAKSqtjtV/LmvG8Dxul6nYsfDRlRt1+su8KFC015
 F+IgejLJhJyv+jAIZ6CzYu8oTS3MCkTCGYNYy4YUAcIi+XeTJEPYgHnFYg6TvPs5jHhMXSpm
 m3R8nBi71kGpZdTj/3TwLzRv967SnElpCYR7x6fYG+q5xgRiGWNN93xsgizARqtwe+kori9U
 Josx5j2AAMmV8jleMmxrAMlR+rBCxGtamC0vLKXN8N9nwlBAlb6FWyq3BlwJV1yLuEPciLzb
 UnYtGt5vcEIbCHzNPQsPdjtUazGKJQM8/y+DZg4ifIUP/BMmPKvpnkyNSZ8IUiz+KTTrU3PE
 cjCKpv9ZZrrIa9m0CC3V48gPUwDnUgDKZfobcmjlXyPiOPGDFbMEOttGAbeP4gRsfLfyC2Io
 ok3Cid/40gGOAEISnKMqtB7wJFjBSVTOK0aXOQLLLPeeVQ/Rzl6YxITqJt4E7FYc21uvr6g1
 lm2W1NCyUq5gnvCKA6QbWtkZq+pVpF6xU/X9wRwVbpx83R8M4up8okFcJ47Iesu+OB5lKYmR
 PgZYcSQRP9IT22fqTgaaJD8qq1kdQiq2l3Sb3b0PmBncs4yXRHN9//lYhDrqHsEAB2ouJZsu
 LanzA7aH8YOHlwwEMbMZfuz5FqtpnxByvlqVk7FL4ALKkXh+YRnMQLrifozL51eIBnP3GLCh
 Q2XHQ0Zta/GpIpsqIvFgqWNroGIFepiHxUFQzmHvOjubSSDpzit245NVuqMbAvxbmKs9fXwf
 /hRwtH9LOYDwARAvb1jHus51qk5/dbu+eNXl1w2AHXRYl23Ibp8OX3aj9JXv6hAy7IF6wu7X
 kWDpotTNbmTYZ63FVcQIEwub/iZ1OFSkT7XtKxnLEL/7S5x3byGTUQNYEXc1H0DdON4YNE/3
 OMsmM8K8Aju2BMlP+GPgj1Q62nRfGcLVL8qt81CDYLm4ubxJoquvXAI5vfK3ayy
IronPort-HdrOrdr: A9a23:dBJdwqEcWagMf/oepLqE7MeALOsnbusQ8zAXPidKOHtom62j5q
 STdZEgviMc5wx8ZJhNo7+90cq7IU80l6Qa3WB5B97LNmTbUQCTTb1K3M/PxCDhBj271sM179
 YET0GmMqySMbGtt7eZ3DWF
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="58413392"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GQ5zozlQd0HSQ2FGdXcEKsHiGvWvI3I4lXmdIKO+kYQ8sTyrlMCICW3K3iCfGHDwfK9Dy7r5589uQKdHu70/DoQut9WzmZUZwUR7ahiOFv+5JxNxIR6SVermdBpwiPi40OwcIPIGbAO3ZmkKJ7jD1X/sQt4WRusDXU9ZAuMAAoSPfODienoaQ0crwwkJQRVOxdxOrVq9Iy9+NwAPOpkg9D0+3dbz+GKwhTpa+BWlHm7hfa1HR/zMX2A05hjik6KtmL27UeR+E/AMeYZJ95sR5RpPwlqwEPevgT/cr3/fcCH2EU2511ZEDmLTIDvPB1ZrfNins9UoSatgPP78VbP0cw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aXa2V7OYMORL6Y9ATroOqrd/1u8shJLABkuhdPtbERI=;
 b=SlfmeIXkE1sGLODS6jb4C84zkVeISKL75KUYqDNDfDs5zfgs0rCSH86UGUxrxYmjyNJepZPZOTbzZhyc4ChrsInTOTb/VDI+l8HaVknd4czEeqiW3FUxt98HfaddUTjM29VsVDtvjCBTDHueWvzuw0Gocoo2afLre8OayrEY59fay1pKxAiDsRyEXCA4zUFunLxIkQ6r1UQjjibEm61sE4yXvFO2mE/ZoO76hjHTSeYQax7nsNNiJdklNu/YO2O4TGxYsEczh7LjmJIVBXjDBvrQCj9TFyj1xkuNmu27IkT5fiOGXqHT7+24NAOCS52fD6euvaIsgUrGlz1GW9ekyw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aXa2V7OYMORL6Y9ATroOqrd/1u8shJLABkuhdPtbERI=;
 b=xHnClpKFlZKCw9ydhCfQ79s8BprCiKK6HvSjTcz7mAE8ar3Eu4zVrw+4xqTjK2Jsl8QjI8gek2sMzwB8XybtuAjFwEc0iVEhox1n9g/RwfWMLFfIZtExylPCuSHTUFNBPEIw/u2lTQhWrTtHvQF+1mdO08OUjvVDuD8+aF+uWXE=
Date: Tue, 30 Nov 2021 12:56:05 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Kevin Tian <kevin.tian@intel.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v2 02/18] VT-d: have callers specify the target level for
 page table walks
Message-ID: <YaYRVfa214KY7P+4@Air-de-Roger>
References: <957f067b-9fe1-2350-4266-51982f09d3a9@suse.com>
 <6d01a401-ac53-d4ca-e0ac-165d045341af@suse.com>
 <YU3kedkf/mSsGcpD@MacBook-Air-de-Roger.local>
 <91745efe-129b-4851-87a2-93eea8f6d63d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <91745efe-129b-4851-87a2-93eea8f6d63d@suse.com>
X-ClientProxiedBy: MR2P264CA0008.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:500:1::20) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 32c93316-e727-4cec-1ab8-08d9b3f8662b
X-MS-TrafficTypeDiagnostic: DM6PR03MB4603:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB46039D2663F73C6FFBF26BE88F679@DM6PR03MB4603.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: fSdRtyt5IWP33kqgczocJ4GtImtBcTQXx5SN/oK6oQh8zUWkjdbo4Mamy2ZRJa0CUihoVWdwlzSpWUFtoo6zsEenTe4JzCvtPndFzybLWtzqy0hThXQkhsZezrXJ673XnOYPfRHw8ybr2cB3/w3LqikgutWXZzp0mTDjKflfCi+wmHx0BD+NbvRPVhXH54ZfO4npW6LspGF+3Ft0RnQeYeFwsCTOzUdfBvlWKehR38Sf9soS3rlTuCosi0C+PQJAdiDUn6ffav+FsRGbCAloAB11gJNXVAFHUV/9Yz06zGRKWPXv+/BvSPNFRljBwtl/qwoOO4vEom/n1Aj4BNJIwdWygAS27SypVf3AzwGbXVUgtB9eKRNgu+lh7Lc2hTS+xnWNOF6e2WFraOAXPE4pMBmzFVzELEOSAbCxfEdZ5iEasq5HRE7LI91Foz0g9PtoTaSvfoe5HzF5VwvHJvlMOK3z8i2PbM9lWaBKtzrtZG6S26ozBsxwMMagnZzCvTK7TO4pLyeDvIP1V7zI4l5MuEYBjzh+J91MV7K+ahgOU8omVf6+n+6doXy3fPpj5DEroo54C39nPjyN21QsQlY5/k+E5VyMxPa95HTGf08qXdcJ8Ec/Ry2w1j30dHXrg5CCQuW/CfnsC7LEl5aLryWZN3Pqt/qWrDyAjzsNpSIpZSAWKA9gfK2thEWPd6rsyFZh5+2ABuzjG4PloHMQrnnClg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(6496006)(316002)(9686003)(66476007)(8936002)(66556008)(8676002)(33716001)(38100700002)(186003)(54906003)(6666004)(6486002)(82960400001)(83380400001)(956004)(26005)(508600001)(85182001)(5660300002)(6916009)(86362001)(2906002)(66946007)(53546011)(4326008)(67856001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cURKTTFVcnNSbXp5SENWMnRMSktncVFibVRETVBTQ1g0NXFEY1pNZytNRmd4?=
 =?utf-8?B?SEJjS3Y0RVNpNW5wZFZKV1ZURGJlOCt1ZFNPK1Fpc3BQVWwxc1VJTThJb0pk?=
 =?utf-8?B?UGhpOFpnWDgrdGsvVmpMclBaeEdUUXB0YjFqY215M1kzUDdzM1ZMdVZpWjdi?=
 =?utf-8?B?VGdLU1JVekJQY3dUaEh0ckV6R3o0K0ZDdWNaVWQzUFczT3l0OHN2MFNrdU51?=
 =?utf-8?B?aHFBVnpoZ1NNL29zajBYcUZVYUVaeU5MdHMzMUl3S1ExSXpVR0c5WEs1a0J4?=
 =?utf-8?B?OGVzQ21FSWJldVlZYmFyZkFDZzRGQVdIYlNXck0ybU8ySHI5RE5Sb1ZMUGN1?=
 =?utf-8?B?WXluYUlkeDNqU1QyWEUxRnUzRWxtZ3FkWVUxSFF5V3Roa2plMWV4S2Q5MWVU?=
 =?utf-8?B?NlBkWkRKdHVITmIzYlRJaStGWDk4U1RzeVMrOWpFYUM3b3RCeTFUb011OThW?=
 =?utf-8?B?eXNVc3daV1Q5UEJ1R1NlNUYzbUpqNVZTK2RWTHJMLzY0dVl5S2s3VWZaMFdi?=
 =?utf-8?B?ZWdZSHpOVDZRaFFrdWt2Wkd5YS8rOWF0VThaZmYrODhYTUFiOG4zOTZzTzRZ?=
 =?utf-8?B?cmtTRW1FWmNJMVQxeVVyd2tkRlB6cDJmUloyU3A4bDBWbnN0WGR4NnBxTWxn?=
 =?utf-8?B?V1ptR2ZWNEZTN3JHa1hXbG5nVnZuaFgrYkN1eUI5NW1pREpMVTVSUHhEdmtC?=
 =?utf-8?B?Uy93clJubXhWaEFzbjVnZmhEQWpicHlXVFBuaVc3ejhHRWhsdWVOT2dPQitT?=
 =?utf-8?B?N2ZIblpNZkVrQzBvK242UmUrVmViL1Nlb3Z3ZGZjWThJb0lpWFo5dFZEUFRC?=
 =?utf-8?B?aFM0LytWdVdjYTlLQm4zOHIvN1RPZHlPek5NQ1dNVi9oUlNacEJtbnFlNXF5?=
 =?utf-8?B?alI3cnpTODRtNVpGRkpVdjR3SmNqaHVMUjdielFJZG1BMElELzBTMTZuK3Nr?=
 =?utf-8?B?aElhSDRaNEFOR2JqV3dIcGtWbS9GS25CdCtKZVlFR1hQRzlPQUF2bHl4Q0NM?=
 =?utf-8?B?cHFmNkg2Y3JJU1BveC82azNRdUNkU0NSSFc5QjRCc3FSeDNPRVRjbWQ1a1FC?=
 =?utf-8?B?L1BaMTFuODFXT3lQZ25DVTg3S0Z4R3FQT3loMVFFS05OQk9OZXNkK3RzTE5l?=
 =?utf-8?B?OE9xWFlYL2RtUWdHYWhsYkoyNmlCNnVpQUFrdHR2eFJ6YVBoSWg5ZGZLTFYv?=
 =?utf-8?B?YzBiNUl1K1d3VElJQ1FOcDVOLytVU09DNkVNTTJDOVpHY1RtNUFNZGtyQU96?=
 =?utf-8?B?S1RWOVN2QmpQdXM5c1R1eUF1YmV4d1R1cWhwdXpBY2oyMWhvZU1iamFiYnR3?=
 =?utf-8?B?ZlYwK1dTTHRRck80ZEUzUllxaWo0Z0NyWUFtcGJqdC9DVUgyY1E2RW05OC95?=
 =?utf-8?B?Ym9JMzlCcktKdnY1TXlSdlFDTVFjdDdTbXVEZDU5ZXNVNVV3OVQ1RVRPQjBT?=
 =?utf-8?B?Sk52NzBUOFhrbCt5ZUZpaU1mSVZMU0NXRUhtMHlUSUY2UFFNTUFpVVRzUGp1?=
 =?utf-8?B?cGdGajhFSHgrd0o1dERLTGw0TndmZURPbEh6eGtTZGVtVlg4MG0yVVN0T3RY?=
 =?utf-8?B?OUJ1TDgrcU9TUTFXYkNxOGhrbGRQQ0RaVHhmanVpTXRmWGEyM2JNSHcvQnZY?=
 =?utf-8?B?K2h5UDJ6T0VENE5WK3pRRmZCZCs4WlUyK3hXV2ZISU0yQTFpZUFWalh2emZM?=
 =?utf-8?B?NXRNR1Z3MitaeWNHellFUmZQaFNnbEd1MlFzajllRkJVRFE2RWpnOEh2Zk9S?=
 =?utf-8?B?TlE5Q0lBbnNSdGwzNG8zUC9wNDhZVU1kWDdLMWVhamtYazE5RWt2K0YvSU01?=
 =?utf-8?B?Ry9WWFdHU21ldDg1T3NGeWVCSFVLQXI5WHNNNWI2OFhmZFJrcTZWSTRnRUpL?=
 =?utf-8?B?TzBkVEN3TklNY2xjODJ3K1prTkNxUG9SV1NheVhNdE1GQU1CVEJFN1dlZXc2?=
 =?utf-8?B?Y1RJa3lianI2Y0FwU1lyY0JkTHJ5SmdKUDZzZ0xHNmdSZnhJMW1kbVBLUW1q?=
 =?utf-8?B?amVDcTRpM0JLT1Z3L29CaTBmQkE1UjIvV0dnVnZFbkpxVThZRVVQM0MvTzF5?=
 =?utf-8?B?eFhhYUh2SkF6dllZazVTMFZPbFYrRkJoUUdRNzZhdHo2NzJaeFhWMTVvTFFV?=
 =?utf-8?B?YVBxMzNUR0JnbVpJSVJiM3NGZ1ZCMkRNdUNaUWtFaStRNHZyR202a0REeFdT?=
 =?utf-8?Q?TulZTvHX/LlD7Tr/7zdeKtk=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 32c93316-e727-4cec-1ab8-08d9b3f8662b
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 11:56:09.9258
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gARi1ZOelpvbNSRmv8jNuD2fu6tGp/a6WpCDAVHNdlS0AqtGf7g5Fsqn28ZbKteY9W2nA5ZwzGTHWhKAXOIzsw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4603
X-OriginatorOrg: citrix.com

On Mon, Sep 27, 2021 at 11:04:26AM +0200, Jan Beulich wrote:
> On 24.09.2021 16:45, Roger Pau Monné wrote:
> > On Fri, Sep 24, 2021 at 11:42:13AM +0200, Jan Beulich wrote:
> >> -    parent = (struct dma_pte *)map_vtd_domain_page(hd->arch.vtd.pgd_maddr);
> >> -    while ( level > 1 )
> >> +    pte_maddr = hd->arch.vtd.pgd_maddr;
> >> +    parent = map_vtd_domain_page(pte_maddr);
> >> +    while ( level > target )
> >>      {
> >>          offset = address_level_offset(addr, level);
> >>          pte = &parent[offset];
> >>  
> >>          pte_maddr = dma_pte_addr(*pte);
> >> -        if ( !pte_maddr )
> >> +        if ( !dma_pte_present(*pte) || (level > 1 && dma_pte_superpage(*pte)) )
> >>          {
> >>              struct page_info *pg;
> >> +            /*
> >> +             * Higher level tables always set r/w, last level page table
> >> +             * controls read/write.
> >> +             */
> >> +            struct dma_pte new_pte = { DMA_PTE_PROT };
> >>  
> >>              if ( !alloc )
> >> -                break;
> >> +            {
> >> +                pte_maddr = 0;
> >> +                if ( !dma_pte_present(*pte) )
> >> +                    break;
> >> +
> >> +                /*
> >> +                 * When the leaf entry was requested, pass back the full PTE,
> >> +                 * with the address adjusted to account for the residual of
> >> +                 * the walk.
> >> +                 */
> >> +                pte_maddr = pte->val +
> > 
> > Wouldn't it be better to use dma_pte_addr(*pte) rather than accessing
> > pte->val, and then you could drop the PAGE_MASK?
> > 
> > Or is the addr parameter not guaranteed to be page aligned?
> 
> addr is page aligned, but may not be superpage aligned. Yet that's not
> the point here. As per the comment at the top of the function (and as
> per the needs of intel_iommu_lookup_page()) we want to return a proper
> (even if fake) PTE here, i.e. in particular including the access
> control bits. Is "full" in the comment not sufficient to express this?

I see. I guess I got confused by the function name. It would be better
called addr_to_dma_pte?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 12:26:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 12:26:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235093.407911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms2Cm-0007Oo-F3; Tue, 30 Nov 2021 12:25:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235093.407911; Tue, 30 Nov 2021 12:25:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms2Cm-0007Oh-C2; Tue, 30 Nov 2021 12:25:52 +0000
Received: by outflank-mailman (input) for mailman id 235093;
 Tue, 30 Nov 2021 12:25:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1Xd2=QR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ms2Cl-0007Ob-An
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 12:25:51 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5bb0e4d-51d8-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 13:25:49 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5bb0e4d-51d8-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638275149;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=SaDDE5MbMqlOymwZWcv3iwYIvBUaKDqhfLgemxUrhdU=;
  b=HlK8luW5KSXqI5hnU9O4gJmNSddoXWzfvGLX4cYP121s+MYI/zPx1Vc1
   E44FKuBErGNvlYU2md11y82pZ4qLyoFxTarGVYaVd3G/Rd9Rtp6oEI+lf
   IbB5RdqsRoYE6g4oqq7sovyN7B11ZnJ6Y0bMfTtPpXkWVcOtw+puiwB+e
   I=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: gU+7FGlrsQFxJg9WihioeOWLJ5Nw6VUU+fEr7Zr5H1mbeT5AcjZlChM+wBuq4o6NWmLMDZtSbg
 +nRXEUxaau0+cb5ANE1HQAbh2RQCuSpPlUgXT4ST9SzJ3lP8HmtXQS1FN8L/9e+opwMKaIG0Wk
 Ek5fumSlSWB8wVBqI44sLFIxSzcx5OBVgElKka3DgheyQd0tlRCvfS/+lkEeMGlYrFhQPmDSDe
 PfsftRrpKbgGyoheqXay1Yo6ZOnjwk6d25vdLOi6ycec/er6mYda9pVjE8pt9zv7ks40wf1dro
 DQBBsFrHoibk9zoW75V2hg7g
X-SBRS: 5.1
X-MesageID: 60923245
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:GkoHV6wqtnUhquAEcml6t+dXwCrEfRIJ4+MujC+fZmUNrF6WrkVWm
 DEeDD2GaK7fYGfwe98nboXg8E8FsZPRx9JqSgNpriAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrVh2tcAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt9V9+
 tAT6seocBxzZPLrhqNMfUdpKxgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYEAjW1r3JwTdRrYT
 5AUWAE3fFPRWDF0BGc+EbkfwsyM32aqJlW0r3rK/PFqsgA/1jdZzr/pN9bEf82Qcs9clE2Yu
 2Hu8nzwB1cRM9n34SGe7numi+vLnCX6cIEfDru18rhtmlL77lYaCAASE2C6p/a5okekXpRUL
 El80iAjt7Qo/UqnCNz0RQSloWWstwQZHdFXFoUS6hyJy6fSyxaUAC4DVDEpQMwrsoo6SCIn0
 neNnsj1Hnp/vbuNU3Wf+7yI6zSoNkA9L2UPeCsFRgst+MT4rcc4iRenZtVuDq+zyMH0EDfYw
 jaWoSx4jLIW5eYT3ri/1UDKhXSrvJehc+IuzlyJBCT/tFo/PdP7IdzzgbTG0RpeBIOVfFzf4
 yMcotPEtr8pE9bcunK8eNxYSdlF+M25GDHbhFduGbwo+DKs52OvcOhs3d1uGKt6Gp1aIGG0O
 Sc/rSsUvcYOZyXyMcebdqroU5xypZUMA+gJQRw9gjBmRpFqPDGK8yh1DaJ79zC8yRN8+U3T1
 HryTCpNMZr4Ifg3pNZVb71EuVPO+szY7TiILXwc5076uYdynFbPFd843KKmN4jVFp+srgTP6
 Mp4PMCX0RhZW+CWSnCJqt5JdAlRdiZhWcqeRylrmgireVEO9IYJUaK5/F/cU9Y9w/Q9ehngo
 BlRpXO0OHKg3CaaeG1mm1hoaa/1XIYXkJ7IFXdEALpc4FB6OdzHxP5GL/MfJOB7nMQ+na8cZ
 6RUIK2oX6UQIgkrDhxANPERWqQ5L0/17e9PVgL4CAUCk2lIG1aUp4S6J1S3r0HjzEOf7KMDn
 lFp7SuCKbIrTAV+FsfGLvWpylK6p38Gn+xuGUDPJ7FulI/EoeCG8gT90a06Jd8iMxLGymfI3
 gqaG05A9+LMv5U04J/CgqXd99WlFO53H0x7GWjH7OnpaXmGrzT7mYIQAvyVeT39VX/v/Pnwb
 +ti0PyhYuYMm0xHstQgHu8zn74+/dbmu5RT0h9gQCfQd12uB745eiuG0MBDu7dj3LhcvQfqC
 EuD9sMDYeeCOd//EU5XLw0gN7zR2fYRkzjUzPI0PESlu3MnoOvZCR1fZkDehjZcIb15NJIe7
 d0g4MNGuRaijhcKM8qdinwG/Wq7MXFdAb4ssYsXAdG3h1NzmE1Ce5HVFgT//IqLN4dXKkAvL
 zKZ2PjCirBbyhaQenY/DyGQj+9UhJBIsxFW1l4SYV+On4Od1PMw2RRQ9xUxTxhUkUobg74iZ
 DAzOh0nP7iK8hdpmNNHDjKlFAx2DRGE/lD8lgkSn2rDQkj0DmHAIQXR4wpWEJz1J46EQgVmw
 Q==
IronPort-HdrOrdr: A9a23:PmXSU61ggJ3bdIZRhYAAcwqjBSFyeYIsimQD101hICG9Lfb3qy
 n+ppsmPEHP5Ar5OEtBpTiBUJPwJ0800aQFnLX5Wo3SIDUO2VHYVr2KiLGC/9SOIVyaygcw79
 YFT0E6MqyOMbEYt7eL3ODbKadZ/DDvysnB7o2yvhQdL3AYV0gj1XYDNu/yKDwGeOAsP+tBKH
 Pz3Lshm9L2Ek5nEPhTS0N1E9Qq4Lbw5eXbSC9DIyRixBiFjDuu5rK/Ox+E3i0GWzcK5bs562
 DKnyHw+63m6piAu1Hh/l6Wy64TtMrqy9NFCsDJos8JKg/0ggLtQIh6QbWNsB08venqwlc3l9
 vnpQsmIq1ImjzsV1DwhSGo9xjr0T4o5XOn4ViEgUH7qci8fz4+A9opv/MTTjLpr24b+P1s2q
 NC2GyU87BNCwnboSj779/UEzl3i0uduxMZ4K0upk0adbFbRK5arIQZ8k8QOowHBjjG5IcuF/
 QrJN3A5cxRbUiRYxnizylSKeSXLzEO9yq9Mww/UpT/6UkQoJk59TpY+CUnpAZDyHpnIKM0od
 gtMcxT5flzp4EtHPtA7dw6ML6K41r2MFvx2VKpUCba/Z48SgbwQr7Mkf8IDbKRCdE1JKVbou
 W2bLofjx9rR37T
X-IronPort-AV: E=Sophos;i="5.87,275,1631592000"; 
   d="scan'208";a="60923245"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gwB4K3/NbOaGJeswaaKQ4s98sTJdVgWwGmMsjU95nqGq5mwJqjwkJKryxVHdSnAgwBRdxbTdlDVi9+xE/JESqA2nSnRlQCjYmauweVmvdKTQNDVqUDxvV8GvvF3PRWnDB/slVZe0Qiv7X5XzI+svr/vwcVzlwz5AVWJRxzyal1gnNdoSmh6yRZrRhlHilnvIzV94p/shnIuXSex2WgYs2b3j7G6Tfl5YVDIUVu7auM5bM02tMEx1iWYJQnRTK8WSjbiwfwasOp3KrRuoFahZiT4s29/aPivxAyFwpHl+SwxbYYsXhfCEIqI1TTkHwEmhALihFMuqpXrkyCCBowulxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5eTHE0aKPnGmJ6SUpksA5QfQfjCETbAUmOjSzwbOQfk=;
 b=JGHlb4zprVfwU+xlQY6QZN3mqSTS89NZt4odWNyWq2ZTFVG543KK/Af3zMrM+V/6dp6311o/rA5qP8hu+y2oCGEW/NSTm70g2QOq6wOrq7E0sLo9TPfAyky7y3lPamc54/5KXeic2us3J0Xwh1mUsQDDblNqvzEzeQapOfepG0Q4Fv0EYPpnr/O/AhTTd6IAkxShMrnAVKrjj+3u5x8u6L2SZR+qqiAS+I7yBKD28BYRvQNBsAh78b/Hf4I1SVEqUfmd+DRfA2Ff2RMgqi60hiU6u56RAZzNsV+mpcjsg0i1UT4HfK47QZEP3cnLYXxN2x0M89iugR2Oo8NJk92x0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5eTHE0aKPnGmJ6SUpksA5QfQfjCETbAUmOjSzwbOQfk=;
 b=Sj8KKaZmGcLs8hGMxqzN9gZm+/H4dzImyAWWNDq9JzYu1Bk0+EF8QTx1623um4dReg+Ru7woh0eS+Vwx5t8xsa4DAEZv+KTv8n8u9Rcm679oio1eAUTUcy37rSNP2jbdqIA1zYA0lPqSB7EUKVd4EM7eWXm2c5AHMrGSeztScBI=
Date: Tue, 30 Nov 2021 13:25:15 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>, Kevin Tian
	<kevin.tian@intel.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<Rahul.Singh@arm.com>
Subject: Re: [PATCH v2 03/18] IOMMU: have vendor code announce supported page
 sizes
Message-ID: <YaYYK36zzJB2kiun@Air-de-Roger>
References: <957f067b-9fe1-2350-4266-51982f09d3a9@suse.com>
 <3f0adf5b-cc2a-1b72-8376-baad574fa824@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3f0adf5b-cc2a-1b72-8376-baad574fa824@suse.com>
X-ClientProxiedBy: MR1P264CA0087.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::25) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2b96c787-2969-44c3-259b-08d9b3fc79c8
X-MS-TrafficTypeDiagnostic: DM6PR03MB4476:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB4476F31687ED44A0541FF2838F679@DM6PR03MB4476.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3968;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 0xf25vved9+eocnOiGkI3sscS1SFnbBGxkNbzM+tj2ch6eLRCI4g9Itg1+bgWTyi5xd+mCRoJP3HzAyegOMWpqky2hGfttOsDBBcCoMTrZE4EP3taj1q/8RN//qq/V2iPUZLRug/mVz45wUrMrCYXenQv9aAOmFPJEUuuGr/jUwRtyEVyfq4SzraQzwHHeiqVqycD4tur/K9dxNAPw48InbT9oFs22+usIMFUmaBs9q8HUwhAd8FlVkoY6qO9uFS7Dp1bNNRqutOSeTQSX3AtxeJP65QKl2CoHXe0G2JbwQ/6LfQq47YTNB02lRMv0JbWMJxmHMnsKmdkCdt8mVTJNR8dL19zRE8cbJHrMI1rUtb/UuOdT8XCq6lVJkbPHq4+ykT1Y4OmMpghat300zdhjXPzwSby1mzn8s627coTGvHf3PUAJFSFC7G+fcGHxBvTsIT6qQmNoacxiQm2344VguTdKPnEqwDrwYGKvItjdjp5kAeFntfTiAAoeyKF8YqjnyawQgknFXSIgpK3+m5KcRczR3pcdxb+VPLKsILJk3RdrGWmIB3hlZDLdnLtuCB+a0CM8RtvnI6pniM+YT25z8uv2Uhu+3AneUOx3SiHkRlOiMXE3coXx+DqbBl8daHCNJ2WJkqy0wAuenc4lFwjg==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(2906002)(33716001)(316002)(83380400001)(66946007)(66476007)(85182001)(6666004)(8936002)(38100700002)(6496006)(54906003)(956004)(26005)(4744005)(6916009)(66556008)(9686003)(5660300002)(6486002)(186003)(86362001)(82960400001)(508600001)(8676002)(4326008);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UG5JUGlzQSt4YkdvcnZXQS8wb01pWjFkSGJMQXVZbWVJWEl0RGk2WmpZYkMr?=
 =?utf-8?B?QjY3cGRHQVBPTDczWjk4OXpIdEdBZmlZQkMxYzRkTnI3V1ZjcFhmT1E2bkZj?=
 =?utf-8?B?RjhPdktNMWRrTEpLT0ZZbWNuUzdxWlJ4ZkRaalFqN0c4Mkxld0o1K25zS3ZT?=
 =?utf-8?B?MnpIZUd3Tjd2bFJTcmhFYk9Xay9GYVA4eC82Qy80N2J0NnpMa0dtOWxQSlBY?=
 =?utf-8?B?cjFZazlwMW56WTZXSmNjaWQ0YU1CV1FUNGhwOEppUmMvRmRuVTF4TC8zWlMw?=
 =?utf-8?B?Z2thcU91MTR0RXM1OW1VMTVXQ0tLYjd3MzdvWTlmN1VSNEkydmVyOXhFMzRv?=
 =?utf-8?B?NUYzK09QUGtldFljdTVud01hZW9qaVdiZlBJZ1o2MWNSSDJDajJXU0pVMnNL?=
 =?utf-8?B?VVdZWjdhVG5zYTcxVy82MVV0QkdzN0RYVitqSDRyMzNZSW53eGZrMWVvSU9x?=
 =?utf-8?B?K1JOOVJEZVd4MnV5VHVJR0NwUU9TOGxoWkV4cFdUOC9mUyt1ZGNqR1dGdFBv?=
 =?utf-8?B?NmpyTE11d3dYQ05xU0dQdllXZmVxdjNqZSs5Y3laQTY3QzVhMEw3LzdtZ25S?=
 =?utf-8?B?YUlTK1d6TlBUbzJiYnJ0ZFY3d2RZTkkwd2dIaUQwTHk1ZXRZbjRYZTRaQmMz?=
 =?utf-8?B?NVhuUnU5MVRqSUlid0RYTVF1KzFqV0xMOHFDVEhDMHBGdXcxQVlqcmVhZ1Z1?=
 =?utf-8?B?YjMrSTVTMXRObXpySU80cWU2V2huY3VSUTAyQ2x4d3cybUZCQ2YwWCt0T3l2?=
 =?utf-8?B?ZVFGYnk4QW5TMS9MMU5leURxaGw1cDk4ZFZZd0tlT2IweFlBd3RxRmRGNjd5?=
 =?utf-8?B?VHlHMGRCRm13Z0x6bWNNUGxUdXR4RjhMbkRvbjljTnVBVUNMZmdNdUE1aEh5?=
 =?utf-8?B?Ni91VjREM25MTVlMeUZ4QnhDdUMwaVdwbDB2Y0QwZzFVZ1ZjckZOM0Zaa1du?=
 =?utf-8?B?ZFI0MXM0RklxZ212RlFpWkFKS1FoVTErdWt1cmgwY2ROOTZ1WWtkN2ZWUmNs?=
 =?utf-8?B?cStzRFB2SDJINjhlcC91R3ZkNC85YUswbWRqbkNRaGdHcW9jTUwzbzF3c1FJ?=
 =?utf-8?B?cFowTFoySGhVZUhNc0Mrc2NwQWNmOWVZSVpmOU54VVIrdnBJbUVuS1ozUGFT?=
 =?utf-8?B?YmpVL1pGTTNvcHNFRlBVQko3SXpwVHMvNGt4NUF3RXB6M3lQQVpCYlZwQVNu?=
 =?utf-8?B?RFNtTFkxWTNSSWt1TU8zWkRnSVlUK1hkZU9SMVhRQ0NUQlhqdkFaRFpiUzhK?=
 =?utf-8?B?VzRTZlZVYS9JYS94T2hERktDMldZaWNZeDN5TWRKQlduenJXUkdkdDZYTVN1?=
 =?utf-8?B?VVdxRnB2eXMvT0xpN2JGTTZZOTF5Y2pLaGphRVJDV3VOUDFHb1RyM2MzdGtE?=
 =?utf-8?B?bzZKZldjeHRpQ3p5Q1lqS1FaSWxkcDlYS2hKUmxhSHpQaW1IWFhHc2FOeUVC?=
 =?utf-8?B?VGJ4V3lLakkvOWlHaUdCc1RhNTZUMlBmQUYwNUZORnNDYndiYkViVm9YZ3cy?=
 =?utf-8?B?SjBKWWFPK1A3bVBGcmVocDFkNyt4QUwyU3Vhazd1Uzk2ZENKZzIrTDRYNDBr?=
 =?utf-8?B?eExzWXhqcmhjSzdyekVNczVnbCtCeFh5Ym8zMnAvTkFNOG1sbU5ER0MwMjAy?=
 =?utf-8?B?eXBKUWZEZjVrSHMwVVZoSVFVYUxHQzdid21WLzdlMFBCZGtjN01NeGhHUnR6?=
 =?utf-8?B?U2JYUHNZTmg5eElJZ2IrM09JL0l4RnlyUWpLYnJlcFA0S2JnSGxtUnh2N2hs?=
 =?utf-8?B?R1JHS1IyVXZDNVlzeEZqUElxd2lBMGkxS1pFR2p3Z25aY2hTbWdBcWRXRjFH?=
 =?utf-8?B?NGFlZ0VTaFczalNSZFh2UzZLRVRYTDU5NDh0UDlPVFh1NklNYThIeEJ4ZFpB?=
 =?utf-8?B?RmFUdTAyZm8zWWxzSjR1eGpodWxJR1o5aHNmeTI4ZFZiVHY1Qjd5MFRRYk5I?=
 =?utf-8?B?c1Z3QlRPUEhMQUpMTWJVMVJ3bUJ3NWQrTm9VYktNNVUvSUU4SFYwVTB2TXVC?=
 =?utf-8?B?TTgvZFNseHNQckVieEtsbDJ1c0syU0hqa2RMZUJhZG16K1JRTzZRc3g0Qnd3?=
 =?utf-8?B?bFgyTGZkcnFnWmdYcXhRelorNkpCWUtGVWlmZkp6aFZhUHVpbWxvQlZ4WXp0?=
 =?utf-8?B?b1ExTENrbUtZUFdWd3JVYzRDWDd6cGlyS2ZCSHc2aGc3N3NKZkpoSlBkOEgv?=
 =?utf-8?Q?PxJSI3K02SPeoce0UTZ/qf8=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 2b96c787-2969-44c3-259b-08d9b3fc79c8
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 12:25:20.7340
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Yr9SoYReukszXvXsdYTpHGpWc3iwwzoIOzWLxql/VCRpRS6G1w9IvNqehtW4ZYgjVTJvjcdI0bISupj3Eaurmw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4476
X-OriginatorOrg: citrix.com

On Fri, Sep 24, 2021 at 11:43:57AM +0200, Jan Beulich wrote:
> Generic code will use this information to determine what order values
> can legitimately be passed to the ->{,un}map_page() hooks. For now all
> ops structures simply get to announce 4k mappings (as base page size),
> and there is (and always has been) an assumption that this matches the
> CPU's MMU base page size (eventually we will want to permit IOMMUs with
> a base page size smaller than the CPU MMU's).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Kevin Tian <kevin.tian@intel.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 12:32:16 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 12:32:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235099.407923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms2Ih-0000SJ-4z; Tue, 30 Nov 2021 12:31:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235099.407923; Tue, 30 Nov 2021 12:31:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms2Ih-0000SC-1z; Tue, 30 Nov 2021 12:31:59 +0000
Received: by outflank-mailman (input) for mailman id 235099;
 Tue, 30 Nov 2021 12:31:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms2If-0000S2-Nd; Tue, 30 Nov 2021 12:31:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms2If-0003na-GU; Tue, 30 Nov 2021 12:31:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms2If-0005f1-49; Tue, 30 Nov 2021 12:31:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ms2If-0003I1-3g; Tue, 30 Nov 2021 12:31:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=toBo6/rjEMb+J2QGRA1xO0xkt+vjYFwJgBhBznBVeoE=; b=CNuQhiVx2+BCf1sSCFEhqvqi7K
	Rz3u+1iGIihWLyMN2hMWZFUTlHpkBVzU7oPKLG3roHRQJstoa08ZjKZ6DIVf9tBy5arT4EwZc0s5r
	6Jg8Ogg0TJgRG5TZPXKGgr3PXysCUntequwhkdFz7JumAsBQ0kOzCYp5DjoEEy+rSpR4=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166941-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 166941: tolerable trouble: fail/pass/starved
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-rtds:guest-localmigrate/x10:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-debianhvm-i386-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-i386-xl-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-amd64-xl-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-debianhvm-i386-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):starved:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:build-check(1):starved:nonblocking
    xen-unstable:build-amd64-xsm:hosts-allocate:starved:nonblocking
X-Osstest-Versions-This:
    xen=5449ba84e99849ee2339fd79f9717e10113d702d
X-Osstest-Versions-That:
    xen=5449ba84e99849ee2339fd79f9717e10113d702d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Nov 2021 12:31:57 +0000

flight 166941 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166941/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-rtds     20 guest-localmigrate/x10       fail  like 166912
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166912
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166912
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166912
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166912
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166912
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166912
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166912
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166912
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166912
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166912
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166912
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166912
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm  1 build-check(1)      starved n/a
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 1 build-check(1) starved n/a
 test-amd64-i386-xl-xsm        1 build-check(1)               starved  n/a
 test-amd64-amd64-xl-xsm       1 build-check(1)               starved  n/a
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)     starved n/a
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 1 build-check(1) starved n/a
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm  1 build-check(1)     starved n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) starved n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               starved  n/a
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)      starved n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) starved n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               starved  n/a
 build-amd64-xsm               2 hosts-allocate               starved  n/a

version targeted for testing:
 xen                  5449ba84e99849ee2339fd79f9717e10113d702d
baseline version:
 xen                  5449ba84e99849ee2339fd79f9717e10113d702d

Last test of basis   166941  2021-11-27 16:15:54 Z    2 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              starved 
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           starved 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            starved 
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        starved 
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         starved 
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 starved 
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  starved 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 starved 
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  starved 
 test-amd64-amd64-libvirt-xsm                                 starved 
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  starved 
 test-amd64-amd64-xl-xsm                                      starved 
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       starved 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 12:40:01 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 12:40:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235107.407936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms2QJ-0001JN-48; Tue, 30 Nov 2021 12:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235107.407936; Tue, 30 Nov 2021 12:39:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms2QJ-0001JG-1E; Tue, 30 Nov 2021 12:39:51 +0000
Received: by outflank-mailman (input) for mailman id 235107;
 Tue, 30 Nov 2021 12:39:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms2QI-0001JA-I6
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 12:39:50 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a50c3ea-51da-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 13:39:48 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:39990)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms2QF-000yF8-nS (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 12:39:47 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 21A711FC17;
 Tue, 30 Nov 2021 12:39:47 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a50c3ea-51da-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <c86cf903-7627-0f8f-78ba-de97fa05c5d4@srcf.net>
Date: Tue, 30 Nov 2021 12:39:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 1/8] x86/boot: Drop incorrect mapping at l2_xenmap[0]
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Wei Liu <wl@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
 <20211130100445.31156-2-andrew.cooper3@citrix.com>
 <5b4dcbae-4100-ad3c-cbc4-51f2b2bbedaa@suse.com>
 <625fdf21-8024-7a79-5c64-b8ed959c54aa@srcf.net>
 <0b38fd69-c484-fdd4-9816-5d2a00b0a7b8@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <0b38fd69-c484-fdd4-9816-5d2a00b0a7b8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/11/2021 11:22, Jan Beulich wrote:
> On 30.11.2021 12:14, Andrew Cooper wrote:
>> On 30/11/2021 10:33, Jan Beulich wrote:
>>> On 30.11.2021 11:04, Andrew Cooper wrote:
>>>> It has been 4 years since the default load address changed from 1M to 2M, and
>>>> _stext ceased residing in l2_xenmap[0].  We should not be inserting an unused
>>>> mapping.
>>>>
>>>> To ensure we don't create mappings accidentally, loop from 0 and obey
>>>> _PAGE_PRESENT on all entries.
>>>>
>>>> Fixes: 7ed93f3a0dff ("x86: change default load address from 1 MiB to 2 MiB")
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> I guess this may be worth backporting despite not having any immediate
>>> adverse effect.
>> I'd say so, yes.  I too can't see an adverse effect right now, but I'm
>> definitely wary of stray executable mappings lying around.
>>
>>
>> In principle, it would be nice to reclaim the 2M of space (which only
>> exists for the MB1 path IIRC), but then we're getting into a position
>> where xen_phys_start isn't really that any more.
> Well, xen_phys_base might be slightly more accurate, but apart from that
> I do think that we reclaim that space (as much as we did reclaim the 1Mb
> before the change of the default load address):
>
>     if ( efi_boot_mem_unused(&eb_start, &eb_end) )
>     {
>         reserve_e820_ram(&boot_e820, __pa(_stext), __pa(eb_start));
>         reserve_e820_ram(&boot_e820, __pa(eb_end), __pa(__2M_rwdata_end));
>     }
>     else
>         reserve_e820_ram(&boot_e820, __pa(_stext), __pa(__2M_rwdata_end));

That means there are zero safety barriers between a bad function pointer
and executing arbitrary guest memory, doesn't it...

My "adverse effect" comment was under the impression that we just left
the range unused.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 13:12:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 13:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235114.407948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms2vF-0005Vc-I3; Tue, 30 Nov 2021 13:11:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235114.407948; Tue, 30 Nov 2021 13:11:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms2vF-0005VV-F5; Tue, 30 Nov 2021 13:11:49 +0000
Received: by outflank-mailman (input) for mailman id 235114;
 Tue, 30 Nov 2021 13:11:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms2vE-0005VP-6y
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 13:11:48 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 119d4c40-51df-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 14:11:46 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:43772)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms2vB-0001iX-2F (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 13:11:45 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 72E4A1FA51;
 Tue, 30 Nov 2021 13:11:45 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 119d4c40-51df-11ec-976b-d102b41d0961
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <0e4ce9d7-d13b-7709-c983-d61995153883@srcf.net>
Date: Tue, 30 Nov 2021 13:11:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
 <20211130100445.31156-5-andrew.cooper3@citrix.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 4/8] x86/mm: Drop bogus cacheability logic in
 update_xen_mappings()
In-Reply-To: <20211130100445.31156-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/11/2021 10:04, Andrew Cooper wrote:
> There is no circumstance under which any part of the Xen image in memory wants
> to have any cacheability other than Write Back.
>
> Furthermore, unmapping random pieces of Xen like that comes with a non-trivial
> risk of a Triple Fault, or other fatal condition.  Even if it appears to work,
> an NMI or interrupt as a far wider reach into Xen mappings than calling
> map_pages_to_xen() thrice.
>
> Simplfy the safety checking to a BUG_ON().  It is substantially more correct
> and robust than following either of the unlikely(alias) paths.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
>
> I'm half tempted to drop the check entirely, but in that case it would be
> better to inline the result into the two callers.
> ---
>  xen/arch/x86/mm.c | 21 +++++++++------------
>  1 file changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 4d799032dc82..9bd4e5cc1d2f 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -785,24 +785,21 @@ bool is_iomem_page(mfn_t mfn)
>  
>  static int update_xen_mappings(unsigned long mfn, unsigned int cacheattr)
>  {
> -    int err = 0;
>      bool alias = mfn >= PFN_DOWN(xen_phys_start) &&
>           mfn < PFN_UP(xen_phys_start + xen_virt_end - XEN_VIRT_START);
> -    unsigned long xen_va =
> -        XEN_VIRT_START + ((mfn - PFN_DOWN(xen_phys_start)) << PAGE_SHIFT);
> +
> +    /*
> +     * Something is catastrophically broken if someone is trying to change the
> +     * cacheability of Xen in memory...
> +     */
> +    BUG_ON(alias);
>  
>      if ( boot_cpu_has(X86_FEATURE_XEN_SELFSNOOP) )
>          return 0;
>  
> -    if ( unlikely(alias) && cacheattr )
> -        err = map_pages_to_xen(xen_va, _mfn(mfn), 1, 0);
> -    if ( !err )
> -        err = map_pages_to_xen((unsigned long)mfn_to_virt(mfn), _mfn(mfn), 1,
> -                     PAGE_HYPERVISOR | cacheattr_to_pte_flags(cacheattr));
> -    if ( unlikely(alias) && !cacheattr && !err )
> -        err = map_pages_to_xen(xen_va, _mfn(mfn), 1, PAGE_HYPERVISOR);
> -
> -    return err;
> +    return map_pages_to_xen(
> +        (unsigned long)mfn_to_virt(mfn), _mfn(mfn), 1,
> +        PAGE_HYPERVISOR | cacheattr_to_pte_flags(cacheattr));

In light of the discussion on patch 1, this is no longer safe.  The
alias calculation includes 2M of arbitrary guest memory, and in
principle there are legitimate reasons for a guest to want to map RAM as
WC (e.g. GPU pagetables) or in the future, WP (in place RAM
encryption/decryption).

The gross hack fix would be "mfn >= PFN_DOWN(xen_phys_start + MB(2))",
but but this is screaming for a helper.  xen_in_range() is part-way
there, but is an O(n) loop over the regions.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 13:49:05 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 13:49:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235120.407958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms3Uz-0000hI-Ff; Tue, 30 Nov 2021 13:48:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235120.407958; Tue, 30 Nov 2021 13:48:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms3Uz-0000hB-Cs; Tue, 30 Nov 2021 13:48:45 +0000
Received: by outflank-mailman (input) for mailman id 235120;
 Tue, 30 Nov 2021 13:48:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms3Uy-0000h5-4g
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 13:48:44 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a5e68ac-51e4-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 14:48:42 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:50450)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms3Ut-000Vac-hB (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 13:48:39 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 1F07E1FB4D;
 Tue, 30 Nov 2021 13:48:39 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a5e68ac-51e4-11ec-976b-d102b41d0961
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <17b42cc5-1979-f977-7c2e-a59fc97f87ea@srcf.net>
Date: Tue, 30 Nov 2021 13:48:38 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, Tamas K Lengyel <tamas@tklengyel.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Alexandru Isaila <aisaila@bitdefender.com>
References: <9fd8ba19-9744-fa50-1afb-15fae8955cac@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] x86/HVM: convert most remaining hvm_funcs hook
 invocations to alt-call
In-Reply-To: <9fd8ba19-9744-fa50-1afb-15fae8955cac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/11/2021 09:04, Jan Beulich wrote:
> The aim being to have as few indirect calls as possible (see [1]),
> whereas during initial conversion performance was the main aspect and
> hence rarely used hooks didn't get converted. Apparently one use of
> get_interrupt_shadow() was missed at the time.
>
> While I've intentionally left alone the cpu_{up,down}() etc hooks for
> not being guest reachable, the nhvm_hap_walk_L1_p2m() one can't
> currently be converted as the framework supports only up to 6 arguments.
> Down the road the three booleans perhaps want folding into a single
> parameter/argument.

To use __initdata_cf_clobber, all hooks need to use altcall().

There is also an open question on how to cope with things such as the
TSC scaling hooks, which are only conditionally set in {vmx,svm}_hvm_funcs.

I was expecting to have to introduce a macro for per-function
registration in the cf_clobber section, given some of the lone function
pointers used with altcall().


As for >6 arguments, we really should discourage such functions
generally, because spilling parameters to the stack is not a efficient
thing to do in the slightest.


>
> While doing this, drop NULL checks ahead of .nhvm_*() calls when the
> hook is always present. Also convert the .nhvm_vcpu_reset() call to
> alternative_vcall(), as the return value is unused and the caller has
> currently no way of propagating it.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>.  However...

>
> [1] https://lists.xen.org/archives/html/xen-devel/2021-11/msg01822.html
> ---
> Another candidate for dropping the conditional would be
> .enable_msr_interception(), but this would then want the wrapper to also
> return void (hence perhaps better done separately).

I think that's a side effect of Intel support being added first, and
then an incomplete attempt to add AMD support.

Seeing as support isn't disappearing, I'd be in favour of reducing it to
void.  The sole caller already doesn't check the return value.


If I do a prep series sorting out nhvm_hap_walk_L1_p2m() and
enable_msr_interception(), would you be happy rebasing this patch and
adjusting every caller, including cpu_up/down() ?

> --- a/xen/arch/x86/monitor.c
> +++ b/xen/arch/x86/monitor.c
> @@ -270,7 +270,8 @@ int arch_monitor_domctl_event(struct dom
>          ad->monitor.descriptor_access_enabled = requested_status;
>  
>          for_each_vcpu ( d, v )
> -            hvm_funcs.set_descriptor_access_exiting(v, requested_status);
> +            alternative_vcall(hvm_funcs.set_descriptor_access_exiting, v,
> +                              requested_status);

(For a future change...)  It occurs to me that this wants to be:

for_each_vcpu ( d, v )
    v->arch.hvm.recalc_intercepts = true;

and leave the resume path to do the right thing.

While it's not a big deal for AMD, avoiding the line of VMCS loads on
Intel really is a big deal.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 13:49:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 13:49:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235124.407970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms3W3-0001Eh-Qu; Tue, 30 Nov 2021 13:49:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235124.407970; Tue, 30 Nov 2021 13:49:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms3W3-0001Ea-N9; Tue, 30 Nov 2021 13:49:51 +0000
Received: by outflank-mailman (input) for mailman id 235124;
 Tue, 30 Nov 2021 13:49:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1Xd2=QR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ms3W2-0000h5-1L
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 13:49:50 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60858453-51e4-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 14:49:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60858453-51e4-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638280187;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=/9lZkaq1Ksh3RnGpCUWnC2S1l6e/qMMFOwebBte/cac=;
  b=R34baCWz49WRPRwB9P1ODSUdVnN5Y3QGyvGLxQbZWrqVbqTPJtWHeNfN
   HllRlUgejakPaznOWDy1QxUHbCQKXfei9EDeXuRNYLDz6qvqi3K/eR5Fh
   9FA9Q4h73cV/Cs0h4ZUpWt8p2s0ws5AZFBANVp0HlCnb7jmsy7scBA5Qu
   8=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: h8NL3t8UF66hCayPf7D0UgwnXoRcREbNCZifwogGU0gzM+1DsKgZN1OGuoKkpcv1YKDxn+DzpQ
 N7znr7CiEsP4V6pmu3Q0aKxviit50jGB0Cdi0oIVglAZ3T3UQvh38HgcQokAwjcO+LZWp0hldD
 Nzi2HWkT/fBPAzENoVG8THvsZ6SSFbjehkhTYSHGkTxE/gyrCSGnTtM7W6vQwA3zmOjU6dbwEn
 W+JX19v4J0i2KzmCNvVaJaJt65aMaSUy0AUBUsjGGRKuY8Watczxiulv2H+a4kxMYjeZQqtkl/
 fdGn6ZZWFgLBqdiO7xOSSh9N
X-SBRS: 5.1
X-MesageID: 58422091
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:Dn5zyKhM2FBGbmnc6YAA/HfeX1610xcKZh0ujC45NGQN5FlHY01je
 htvWm+Ba/iKZ2GgctlxPti19U0FscLUyoBnTFY4qC5nHykb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cz2YDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1z5J7rVyUpYpf3meEeYjxlDThhBJVvreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9t1pwUR66PP
 qL1bxIxUh34TRhvCG0II45vo9yriGvhfi1H/Qf9Sa0fvDGIkV0ZPKLWGNjIft2HQ+1Fk0Deo
 XjJl0ziGQ0TPtGbzTuD81qvi/XJkCe9X5gdfJWm8fptjEyW13YkAhQcXlumotG0kke7HdlYL
 iQ8+ScwrK506E2iSPH8WQG1pDiPuRt0c9haHvA+6QqN4rHJ+AvfDW8BJhZRZdpjuMIoSDgC0
 l6Sg8ivFTFpqKeSS3+W6vGTtzzaETAcMGsqdSICCwwf7LHeTJob10yVCIw5Sejs04OzSWqYL
 y22QDYWueQR1tAp1/mBxlHCgAOJm4bQUTcNz1CCNo661T9RaImgbo2uzFHU6/dcMYqUJmW8U
 Gg4d9u2t75XU8zU/MCZaKBURezyua7ZWNHJqQc3R8FJyti7x5K0kWm8ChlaLVwhDMsLcCSBj
 KT76VIIv8870JdHgMZKj2ON5yYCkfiI+TfNDKm8gj9yjn5ZL1TvEMZGPxP44owVuBJw+ZzTw
 L/CGSpWMV4UCL580B29TPoH3Lkgy0gWnD2IFcqilk/8j+DCPhZ5rIvp1nPVNYjVC4ve/W3oH
 yt3bZPWm32zrsWgCsUozWLjBQ9TdiVqbXwHg8dWavSCMmJb9JIJUJfsLUcaU9U9xcx9z76Ql
 lnkAxMw4Aev1BXvdFTRAlg+OeyHYHqKhS9iVcDaFQ3zgCZLjEfGxPp3SqbbipF7rrE+lqAtE
 KFeEyhCa9wWIgn6F/0mRcCVhKRpdQixhBLIOCygYTMleIVnSRCP8djhFjYDPgFXZsZuncdh8
 bCmyC3BRp8PG1ZrAMrMMar9xFKtp3kN3ul1WhKQcNVUfUzt9qlsKjDw0aBrc51dd02by2vIz
 RuSDDcZufLJ/90//u7WiP3WtIyuCeZ/QBZXRjGJ8basOCDG1WO/2oscAv2QdDXQWTqsqqWvb
 OlY1d/mN/gDkAoYuoZwCe8zn6k/+8Hut/lRyQE9RCfHaFGiC7VBJHia3JYQ6v0Rl+EB4QbvA
 xCB4NhXP7mNKfjJKl9JKVp3dPmH2NEVhiLWsaY/LnLl6XIl57GAS0hTYUWB0XQPMLtvPYo56
 u49o8pKuRengx8nP9va3CBZ82OAci4JX6k978xIBYbqjkwgy01YYIyaASjzucndZ9JJO0gsA
 zmVmKud2OgMmhucKyI+RSrXwO5QpZUSoxQbnlYNKmOAlsfBmvJqjgZa9i46T1gNwxhKuw6p1
 rOH66GhyX2ywgpV
IronPort-HdrOrdr: A9a23:hjYWkKHdM/A/0cBepLqFeZHXdLJyesId70hD6qkvc3Nom52j+/
 xGws536faVslcssHFJo6HmBEClewKnyXcT2/htAV7CZnichILMFu9fBOTZsl/d8kHFh4tgPO
 JbAtRD4b7LfClHZKTBkXCF+r8bqbHtmsDY5pav854ud3ATV0gJ1XYGNu/xKDwReOApP+tcKH
 LKjfA32AZINE5nI/hSQRI+Lpz+juyOsKijTQ8NBhYh5gXLpTS06ITiGxzd+hsFSTtAzZor7G
 CAymXCl+qemsD+7iWZ+37Y7pxQltek4txfBPaUgsxQDjn3kA6naKloRrXHljEop+OE7kosjb
 D30lsdFvU2z0mUUnC+oBPr1QWl+DEy60X6wVvdunfnqdyRfkNzN+NxwaZiNjfJ4Uspu99xlI
 hR2XiCipZRBRTc2Azg+tnhTXhR5wqJiEtntdRWo21UUIMYZrMUh5cY5llpHJAJGz+/wJw7Ed
 NpENrX6J9tABKnhkjizytSKeGXLzEO9k/seDlHhiXV6UkZoJlB9Tpa+CRF9U1ws67USPF/lq
 352+pT5fdzp/QtHNBA7dE6ML2K41z2MGHx2V2pUCHa/YE8SjnwQs3Mkf8IDN/DQu1+8HJ1ou
 WZbG9l
X-IronPort-AV: E=Sophos;i="5.87,276,1631592000"; 
   d="scan'208";a="58422091"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Aw4Hx2tGFYv/nGaWcsipGESRRAwZVjo/mLoPi22w++8Sg7LWBw5AZZSVPuptWTY6FtoubyTxd6ENvE4QJu0czW7xF5Bco3zfUmVwSvQ/LA/BJYUzcEz39YenSHE0dSRMMXEgN/h6GnCU8FBP+mjZf4aF8SRCI3AAu+a+m60ReEQ3Q1VhVGZXI6rX0L8SHhLdnCE82gB90D7JKPi0G8QCC2nJMHIBU5xdPCfUbTNXK1pBgSXur2pqfLwezbYgtLqn8Yevbdnxg+v8hsnWtPZj3t0e5CNLJrVdB2TCwPiytzyO8NVGBma2JbJhqAmmuKzv4J61Z1oK5HrZ2fctztjM4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=97JxshL09EykikuVLy+TEx2ahxglZNsYcqeRYEmB30g=;
 b=hVLWt6TzvJrKCX9zPqwt3ednig51XNhPY8M5Cja3Px1B//u87nv+RcxnxxEMYHbX8M61m56MhIrz/fLLfTS04pjlTeyOXCuLnXSWAuwbsoucTb0rb0eDMBXljZf8i8KlFijW6C68/ggD6fd7QDJgXCB7qz2BL/kz3qZn/Gi/ZhjPTO+dy76UJw8Fr4cchyoDlFY0gSjvrJOcHa3aj3Ij1ZNC/IgocGCF4Ln2jO3dE7G8d0N+LRKWoN2KGxbiZr2ojRQY6SLBuQSI85QwDzOJafYw/vf2IrC5GwN1NkjlmJF+s9/lCkkA5cTT7c7+bCqSw1MVanw5fbUvfr2IbECHlA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=97JxshL09EykikuVLy+TEx2ahxglZNsYcqeRYEmB30g=;
 b=tqbVQ0IKLrk85+mlSryIQTVWMkrtObGfd7y3W2I8y8Hgrsw2m9x+JinB51z/zDk4mNjuxVE7d12EYisoAgbT26fgRl3lwBsB3k1po3qZyGzR6ZnpV6cu6gCXhGQDRlBCL7aw01NGgbPtJPTz0TOMkHNCibiobKdrvzvjUH/bRpE=
Date: Tue, 30 Nov 2021 14:49:37 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>, Kevin Tian
	<kevin.tian@intel.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Subject: Re: [PATCH v2 04/18] IOMMU: add order parameter to ->{,un}map_page()
 hooks
Message-ID: <YaYr8bY+yUDATyR0@Air-de-Roger>
References: <957f067b-9fe1-2350-4266-51982f09d3a9@suse.com>
 <7500296c-588e-983e-35ac-39048a72cb47@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7500296c-588e-983e-35ac-39048a72cb47@suse.com>
X-ClientProxiedBy: MR2P264CA0150.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::13) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7e975032-fbc5-4ad4-2a74-08d9b4084292
X-MS-TrafficTypeDiagnostic: DM6PR03MB4971:
X-LD-Processed: 335836de-42ef-43a2-b145-348c2ee9ca5b,ExtAddr
X-Microsoft-Antispam-PRVS: <DM6PR03MB49712E1E4422E507A3FD2A868F679@DM6PR03MB4971.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:3513;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 1PE+GkO3q0oBzP3Fx+X2rtFO+huaK/qExyzjSTGsPa0I7lPERMlYjz5WCodNtBGxe34lYTsuWMnydTBUGiGjQuMkzfyoPgHAxzjvCl6EXFgzA8u93yZZsxDo+haq7dqHDa4wisfd1qLkImDEc67bk/Yr29ZA90gxWXh6MKAnigIyTBmlRKRfvaUEiYa6lOAc6D2a/aE302thDS2IfV37iRAw1RKE4vYuuvteYNtOLDgbtRDt3CpOoi6xZ/cGuxXyGESDPyfllzg1REINOTqhe6uEJwEioM27x02S/lNe8GNAYGRlUg3gQLr/qbLRb4U6wFwfZ7EL5GLFPvcN9B3lmcg6hLD/j0sgzP2coGYgFkUW1pfNPopnAwe26CRiPspeiIXauh6FyI3Wts3K+U54jQ1D2y6V3/i/sPkjPkXMW0Slf+v5R/9Y57D/OVAmZgQpJHnKIT5ICvbxRFeCDDUcH4PrJxo67QXWxSav93EnKrm0kc18PaIxE0NUJs21+OZEl1yOmLzdD4ItLRYJGjz2KQnEtq5k+g8XGck2UsKOjEed8Vd4tua9eBckafEbn4MpmGDvn7qWkOPpb0TnqoaviDnTGua2VCf3l8A/fIWbI5Zd+lKjp4F6hao1hZuEvu8g7RYZ/nmGf0Xo87W2INEVu4+cLLGJx0z8MuS08di7SaTXxGwP2/nCEmmwZ00RvH9lF2v3Y7OFsbAqFuqA6pYZyw==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(7916004)(4636009)(366004)(9686003)(316002)(86362001)(5660300002)(186003)(956004)(6666004)(85182001)(54906003)(4326008)(38100700002)(66556008)(83380400001)(82960400001)(66476007)(8936002)(2906002)(33716001)(4744005)(6486002)(66946007)(508600001)(26005)(8676002)(6496006)(6916009)(67856001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RlVhSFZERWU3d3NFRmgxL1hRcGtwVGorR2VHZlJHdWFIc21BWStBcHJ3ZjdT?=
 =?utf-8?B?TXF0Qk90SFdERlZzQ092aE5PUVhrRGRtRkF1TVpwZWhlZFI5T0RhNEtYSDlv?=
 =?utf-8?B?MDhTUlVJRm9nam14Tk45dW9PUkhOSTAvbC9kWTNaWjFpeDQ5Nlh0OThUOUht?=
 =?utf-8?B?SVk0cklOYUtVV0Q5TkVQN29ZN2V0T2JPNDlCYkpwU2ErV2ZaZEZXM3grcGpI?=
 =?utf-8?B?NmV0VVl4VmJzWmluTGJ2U0w3TnZMd3FvaklWOFpSTHIxVG1VMGFzdUF0VGhm?=
 =?utf-8?B?WXQ3Z3B3MDFIV1lGRWl1eUxwSGlmTFZGZWs5bjZMejhNK21LbTg4KzM3UXA2?=
 =?utf-8?B?b3VyTCtqVU1pVjRIZjhOSmI4dU91L0RUMmg4a0kzRzdZbmRNTmxQOHVYSm9r?=
 =?utf-8?B?eDhWQnVXdURjc0RVa3IxeUJUWFR1QlhleHFmanAxTG40NklSdlRIbkMzV0Fr?=
 =?utf-8?B?b241Vk56VWdpajB1aDQzaVZCbE1pczRVVzFqYzZwWThaTkNFK2ExelV3bmt1?=
 =?utf-8?B?L0FPSkxUZ1lraW1pbHQ2MFVRTnllck5aY3RtNFlsc3BiYnEwWWk1T3NtV0Q4?=
 =?utf-8?B?R2U1NTZwTnJ3akh6RDQzbHZHQ0NER1ROWlNUSEt5NENoMVp4a1E3VUVuL0pH?=
 =?utf-8?B?OFVlRzNqZmhIUC9aK1FobWtyL2pvZU5kL205ZzU2YWxxL2NPa2Zzc3BMN0U1?=
 =?utf-8?B?MnM4aFVIR1hCVUJvbmhSbkdESlMwNkFuTE91amxsQWpQTW1CVmEzQ3o1SlAr?=
 =?utf-8?B?UzBzOXNTSFVUK2w0NEhDU1JCREQ1R0tTMzhBUzYzUnRtMnhkdUx1Rm1GYnQ0?=
 =?utf-8?B?MTJOSTlFMXVwTzFGNXZOVnZLSHdWbDVkNFZtVk1KbEtJSThIejNma0dpbjZk?=
 =?utf-8?B?NTdRM1hsb3A1K1pzVm5pUUhzd3NlOWJ3eUt3NERZZDJXVkdmVkFMVmZZZkVR?=
 =?utf-8?B?emhuaE91SWpKaVdBYkVSdjloRWFITFRlR2VXQm1vOWxQRUJYRjRPVFRZOWVv?=
 =?utf-8?B?WGd4RU1hd1AvNm1raElEYlFYZnBwRWFJalVmZHVYNlRrd0hlUmxJQklFMFZC?=
 =?utf-8?B?Y0hMTTcwdlpUSEFwQWE4cFlkK0lnM0FGd2x1K09aWTgwY0lOOFMwUXBKcUpD?=
 =?utf-8?B?WU1MblZZN0RJZkV2RzNObWJPQ1RqemJrY2xaWE84Rmg3ZXNCc0RZWWNYTVAw?=
 =?utf-8?B?WUpHdS9SV3NOakZ4eTlsb0UwakdocmY2b2VwRk1VVGFiTTRzZnQ3MVM1T09R?=
 =?utf-8?B?V1hGRzVtU2Era3FYTG1vRnE1NmoxV25EN0FrdDFPQ1F5dlVCc05oZFAxQ3J4?=
 =?utf-8?B?VDIwaE9ubGVBQWZhbFduTzVCOVlxblQ5THkxVXFLdlpjTEphcXR5d0I4TVBp?=
 =?utf-8?B?VFJQcm04ZkdtT2RkcEQvRFdnVTNUcE5LQmhiRlNkZStkZ2FYZ1FYbzA5bGMw?=
 =?utf-8?B?M0VyM3NDTlhXb3Z0WTFYa3VjRDlINXZOcXozYmVqWDZMSWozVnZjcTBjSlBa?=
 =?utf-8?B?SzVWeDRKVThEejJ6TFZFVVE4eGdwQUxieWxMeDI5akRNSllnUDJpbTZkcU9i?=
 =?utf-8?B?bklxemRKdmIyNVcyRFYwSDZyYnJXcTJCNVF5NGxtZms5WUwzWGFTK3ZFZE1s?=
 =?utf-8?B?Y3BOWDBDNFlTMnQ1YUFZZnhPa2NoZHROamdYWmJzenBTbTZmcTR3Zy9qRVRV?=
 =?utf-8?B?K2dHS21NRFFpcHJnblRPNXliZjFQVFgxUU5sRDJIRHA1VFE3dGw5QkswUVNI?=
 =?utf-8?B?RXl0M1hPL0M0MkFCWHBUeWJIZ3oyVkdwcHBTZUJ3M0hkWG55ZEJoeU1TbjlW?=
 =?utf-8?B?cmU0cmlXZ0FLNy9SMVV3NTh4QXY2Y3RaOEdKZjNCeEpxVTFCUUpVemhqT0dq?=
 =?utf-8?B?MUZVc2MxYThrUHpUU0lsZFJGd3ZMREZGUHFqOTk2Yld6SDlHNC8rbEFDSzFX?=
 =?utf-8?B?WWhxVXBucFZzbHg2WXRHTzBMLzFiM1JmTllucksveW5BeVdzV3BScU5lRlEz?=
 =?utf-8?B?K0l5cllNQXJzdmZUeWRndmR5Zk1LTDF1NFh1bXB6M1JyWUNVK0dBUzZxTjcw?=
 =?utf-8?B?SGNWUGZZNCswTk1mWU9WNCsweTZienB0M2VBdmJxV2l5Qy9IMnI2SEJjSVFX?=
 =?utf-8?B?QitnWUNGWEt3QmtvYWJ1LzFnaVAzelJLRVRhSjZTTkg1T0g2dmx3Ly9Gc2py?=
 =?utf-8?Q?992vgpK7suEyfmqd/fYnqrY=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e975032-fbc5-4ad4-2a74-08d9b4084292
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 13:49:42.1379
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IzmCG3YdKBUHY1Z9SPu/ado20UqGyp7mSCG3jq1cZrt4/uXC02+urIO8o0jqs1x70LK4jOmZr/s1xqF6Jn9S1Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4971
X-OriginatorOrg: citrix.com

On Fri, Sep 24, 2021 at 11:44:50AM +0200, Jan Beulich wrote:
> Or really, in the case of ->map_page(), accommodate it in the existing
> "flags" parameter. All call sites will pass 0 for now.

It feels slightly weird from an interface PoV that the map handler
takes the order from the flags parameter, while the unmap one has a
function parameter for it.

> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Kevin Tian <kevin.tian@intel.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:04:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:04:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235156.407999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms3jg-0004kM-GE; Tue, 30 Nov 2021 14:03:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235156.407999; Tue, 30 Nov 2021 14:03:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms3jg-0004kF-Cx; Tue, 30 Nov 2021 14:03:56 +0000
Received: by outflank-mailman (input) for mailman id 235156;
 Tue, 30 Nov 2021 14:03:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms3je-0004k9-QR
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:03:54 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 59d46b09-51e6-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:03:53 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2051.outbound.protection.outlook.com [104.47.12.51]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-6-0YTFbAAgPaGVBsBvZnuDDg-1; Tue, 30 Nov 2021 15:03:52 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4608.eurprd04.prod.outlook.com (2603:10a6:803:72::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 14:03:49 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 14:03:49 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0303.eurprd06.prod.outlook.com (2603:10a6:20b:45b::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Tue, 30 Nov 2021 14:03:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59d46b09-51e6-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638281033;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IpeNV9Kzg/iIq4UHO4dlJkEL63TnAzPG8palzs5RgWU=;
	b=Jf/DhCOQDELSl5RPeuIzaAj2mwAR3GR5vrGVf7k1frT8pYyWqjo4Z8N7JFZ2dmJz80jhIX
	EoAENjDOGRQ4AP5hT/2CGtz3qZM4n0QXyvVBI7A0EBOrGszP/thUneF2W6PQ+bpvuyyqVR
	PdWrgP0mKJjIvLDowTnvcpmGtsTO9Bk=
X-MC-Unique: 0YTFbAAgPaGVBsBvZnuDDg-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lj+kJ9SbeBOtpAjF7XHwdsm9gpdlkq2SHKriaYudikOtpgpPbKD3ok/KxvKhfob4LnHHvAEAamxPta/sMl4rlIadw5tIg2PWhP5Q9ccc0jTWRAvKQOcI/w0kcJ2Nns0H60vqIPvfmYcUEqNtAStyjfnShVN3eCflcGRN7KhwNYKVCMiFYBPJtpnTi/czewjqGEtFVq9lVo0rR3dBj6/TT7k67TXd8rZmkzrcbPz2iqd5V7T0SF0cUnjvcVINgn66jOgwi+Pd7RyQ820RkeYkNTq+2xDrYfROrx4UuBx1xcD9/MXafOPxfvBbEhTc95J6neTcphsJnhoxRhK7iCM5bw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mgIvEDRPymYqiCULnMzgDLE+GveIcMHqTNRvZc57TYs=;
 b=mYovv8PMqHhCvYCBbgqOLDqbciQ2OSqaU829TIq5vLo9CdM018LFT6iOkA45Ej58kmffB+RKPXx0dISObXHlSdR6godIHVaBcyrX19+OZHuTet5BSEwEY6gXwCqB8D+WSWWX0mBE3vaTfj2UbqkFINko8Jz/UfqyqjvVZuBFF1xK95hJX9eo8D5ub7CFw88sFXLs2TODeYt6Fc+JfENzcVQzFBegaIIGfI+sg29hVchMl5afMM1MNSra/wKubsuGfgMfqPUyJPH7XOJcww8buyDez6Zul4WHEfFYTh/ghX6K3ssQ5WPN/ub63c9nxXdHmLv8M4virvLReKLsEh9rAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <30b2711a-de67-ca15-e8a8-a4c8b962e620@suse.com>
Date: Tue, 30 Nov 2021 15:03:47 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] x86/HVM: convert most remaining hvm_funcs hook
 invocations to alt-call
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, Tamas K Lengyel <tamas@tklengyel.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <9fd8ba19-9744-fa50-1afb-15fae8955cac@suse.com>
 <17b42cc5-1979-f977-7c2e-a59fc97f87ea@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <17b42cc5-1979-f977-7c2e-a59fc97f87ea@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0303.eurprd06.prod.outlook.com
 (2603:10a6:20b:45b::10) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d20e511d-6364-4632-9faa-08d9b40a3bc3
X-MS-TrafficTypeDiagnostic: VI1PR04MB4608:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB46088DF724A687AB880BF391B3679@VI1PR04MB4608.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	oVwqHem7NTumLZFGJ7hhONN0Ez6vIL9mK2i4Ayw0xpa1o7dPFO0TlWz59sIH6v+r1Q++BzzFDqu/SVLkGRERSvIb8WzYuylYcEMgBvNIKnUX7t9XXtEyHTJItSDnv0yYBkTP66Wie3YsGvAaQRID/2f+dHiWFk7d0Q4hANEjbjEtk6UzIGCr7caXHX1qoycoWqt0Yx1oBTwzdlbi9F0OwvkK7+c0bv0eoveOk51jTM3KR5yHRmni1/l9tbfoLxt+VT0rzRnmsGigyrvScR04Pben7e0+03ceogNdNCD9e7ZLIh2EphOvKQrFufNGVUSIZT43ws5fqZ7FdiTbzUgim1G1eCtzoOpdnh/MzDuQIYaK+wQOPneRTFw+aBuoyLzNqNSyhdrbI1zDeIoZLvguDtjGYUUluRqd+0frEAhUKuCZmhPdPw9hziNqCWWzdwOsHd6L6CyZcSNdK/L5qy1pmvJMjdenRg0xj45By5/XXRfIFh7MJXU0Db+cFwRZ3SODsMASOfM45Eth9BmOrqkrZIgOvqMHk1dOopNjkdL4ppIW1LfOrYXbtoDqB5b3JNmKlIhmTrSYwHONeAwRS+/L34BjMgUBBBz8bmBqZmDcDgOMFvSINSn3ctQG47nvCT0sn6RVx29kihua+rvyGiNDVDwtuE4gUGfAB1ojIBEWlOOzhO1s3gtmpbI9B5hnRJnMo8l+sPScFV2VwPDZWIUPLuDRlERzls59X0XsTfGYnenrr3pen0OjUA3N0SQwGnIXAhz9lRNf/V7PMdzvFzsFbZZ0VxQVj6s7sJ6CDjnTUZwmi1FUUkwzhg4ZjHcd1De4
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(508600001)(26005)(31696002)(66476007)(966005)(53546011)(66556008)(16576012)(6916009)(8936002)(66946007)(2616005)(36756003)(31686004)(38100700002)(956004)(186003)(6486002)(316002)(83380400001)(4326008)(2906002)(8676002)(86362001)(5660300002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?CSIyvrgaUA07dMCIiC63jZtYLGxwMb/WfJcTkPV+yeJ9cLZ+KWzBO5oywvnR?=
 =?us-ascii?Q?vwj4fCO4IwFGeMFyjTrwqY9VrCnlg4q/T5MVjmAKOo5MPIEpYvxf9kf6KZzf?=
 =?us-ascii?Q?Y/FA4BV/koLEuEko2+PHkPrhWDWEDmlrP+GvTVulDyyiKagNZtkrmPFOAwE4?=
 =?us-ascii?Q?r616XTJvym2QMHWH4xmx4FZk7pyXUfv8j6ULyAo4zcA5Ad7lfyFvtIhwhstG?=
 =?us-ascii?Q?F7vqMS6RAfMIRtPMKtEFlw8oZ0wy5cGFOwm3kbaqs+N0A2Yl8joeU6hCYc8a?=
 =?us-ascii?Q?tRQSoeye+d+9yebyOZbuRvgPZSnbjihz/ZDUjgWjyGLzu2bZVc5aa7wiqNuD?=
 =?us-ascii?Q?a+bYmWZjKFe6Cb2VGJBR+8cd0aItl3SYBX279GwBkTQevBEWLPcSXwCtIpM2?=
 =?us-ascii?Q?NdJCC4A34U5aTIQHg3nNSgtZVvDkeKrDjGRydlBjZaTPJJ6mJVPY0ln9HB43?=
 =?us-ascii?Q?ZBfhblpdHi8ExFqbfLpsbchGzd1wrvo7JnyMpJh9giFu3ylvkqzex4jtjwxk?=
 =?us-ascii?Q?nYQbkhjhgHcsVs8Y/XgK+1QB4F82997OrRiax/q6kfvvvXut2DQsLRzjQMXh?=
 =?us-ascii?Q?ODeSc3zJN5POA+bVhlcuL2LmD8JeCv/T7PFUQk8vrGaM295VDUR2ErMd9uOv?=
 =?us-ascii?Q?3OVx1bfNVr/XZ7ml+WT99ZFsUkQhmbtUQxpJs80+eXLXLsJjiNFuBHcEukoQ?=
 =?us-ascii?Q?TZmjPjptuS4UiLP/UXGMlMpwLg67Vgz/MrBwK9YK93NzYOZo3G9stxF3EpMD?=
 =?us-ascii?Q?NpRGtBJaLL0lCM+B7rapPlGChfEEeWD1xsAdhReGWmrJ3oFFltMzWngwh9zQ?=
 =?us-ascii?Q?d765dmfkUY7sPSFOe5bb5lRUtAPowM8n1/VAl8Blab4CsjVS3oU+aHmCkKBS?=
 =?us-ascii?Q?ApeNyZnY8GCL+KaGZZKja2zwQsQRgHQMj813Y8BlKWKb6SCUNadmmtOVDjsD?=
 =?us-ascii?Q?jZ1GfkkOEs+GqEdqUe3HnwqaLr9CxEpDwICsOUPLUHVnTBTKMLBliKwFgTai?=
 =?us-ascii?Q?8T1VWk3oELDfZEs2FYUJ3OQiCeBvVBc4EMKn2IRe6vgfTDHwsaDcTiMA7p2/?=
 =?us-ascii?Q?eWmIHnG10Adym9v3q6/uC5Io7S/o8u+3P1ywVVjWCyQFsjW+IKueIg1ZrFPg?=
 =?us-ascii?Q?tdtIbGirEL+zNeCd3cVelv+CkLP27q3MBN0R06nHB9WK5pGcT7HmLfxpUs87?=
 =?us-ascii?Q?YJjZo3Oaq+X357S3+QvxvTPJdlVHPnb9mPYMdbB2zzGm+L9Q/9cxHm4+mIht?=
 =?us-ascii?Q?GUE/XZOkXMkQhqziCm1LKP5XHVmyN3eqWaRtAMmhDaDIpkPLB4j5iSzxILSR?=
 =?us-ascii?Q?TWT8yOxkkLuMZPqHZXNtpmnz+ZLrB/Vk4fOlLHkDvARjCdBqpaTrSjEiso+g?=
 =?us-ascii?Q?KyZa6xikWBJZsmkFrESRekWPL3vZcsXPBTs2K+uB5nmAlY5e+ZiRoMleqX/w?=
 =?us-ascii?Q?jstynbDW2iEtvvY9oztc9+SHwrhwqNLSWSsTnTK0GRVoIt3OGLplWoC3776T?=
 =?us-ascii?Q?dVT8i+CuVIsxeO4u7MEdOjogdQjwkxA+0uWfqgqzKIzgxFWG3iR+e4s/Rl7J?=
 =?us-ascii?Q?D4g518Q3vdmwbnPVboK9fkRAYa3VronJqkUroFsn//zrmLrB5bfMXD5yyuiY?=
 =?us-ascii?Q?f+1F2oNrOCFuwDGOH95g8Gc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d20e511d-6364-4632-9faa-08d9b40a3bc3
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 14:03:49.6453
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: f7BgtBUgeyWtVjvP422bgVe4UdsROwRX4X858qBmSlM1VFDAVkA/E99GLpBvoB75dyA6xfdCO3euGMT+ic29Ew==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4608

On 30.11.2021 14:48, Andrew Cooper wrote:
> On 29/11/2021 09:04, Jan Beulich wrote:
>> The aim being to have as few indirect calls as possible (see [1]),
>> whereas during initial conversion performance was the main aspect and
>> hence rarely used hooks didn't get converted. Apparently one use of
>> get_interrupt_shadow() was missed at the time.
>>
>> While I've intentionally left alone the cpu_{up,down}() etc hooks for
>> not being guest reachable, the nhvm_hap_walk_L1_p2m() one can't
>> currently be converted as the framework supports only up to 6 arguments.
>> Down the road the three booleans perhaps want folding into a single
>> parameter/argument.
>=20
> To use __initdata_cf_clobber, all hooks need to use altcall().

Right, but that's not going to be sufficient: The data members then also
need to move elsewhere, aiui.

> There is also an open question on how to cope with things such as the
> TSC scaling hooks, which are only conditionally set in {vmx,svm}_hvm_func=
s.

Why's that an open question? The requirement is that the pointers be
set before the 2nd pass of alternatives patching (it's really just
one: setup()). That's already the case, or else the hook couldn't be
invoked via altcall. And that's also not the only hook getting set
dynamically.

> As for >6 arguments, we really should discourage such functions
> generally, because spilling parameters to the stack is not a efficient
> thing to do in the slightest.

I was thinking so too, but didn't want to fold the change in here.

>> While doing this, drop NULL checks ahead of .nhvm_*() calls when the
>> hook is always present. Also convert the .nhvm_vcpu_reset() call to
>> alternative_vcall(), as the return value is unused and the caller has
>> currently no way of propagating it.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>.

Thanks, but as per below further changes may be done here.

>=C2=A0 However...
>=20
>>
>> [1] https://lists.xen.org/archives/html/xen-devel/2021-11/msg01822.html
>> ---
>> Another candidate for dropping the conditional would be
>> .enable_msr_interception(), but this would then want the wrapper to also
>> return void (hence perhaps better done separately).
>=20
> I think that's a side effect of Intel support being added first, and
> then an incomplete attempt to add AMD support.
>=20
> Seeing as support isn't disappearing, I'd be in favour of reducing it to
> void.=C2=A0 The sole caller already doesn't check the return value.
>=20
>=20
> If I do a prep series sorting out nhvm_hap_walk_L1_p2m() and
> enable_msr_interception(), would you be happy rebasing this patch and
> adjusting every caller, including cpu_up/down() ?

Sure. I don't think cleaning up enable_msr_interception() is a prereq
though. The potential for doing so was merely an observation while
going through the hook uses.

With it not being sufficient to convert the remaining hook invocations
and with the patch already being quite large, I wonder though whether
it wouldn't make sense to make further conversions the subject of a
fresh patch. I could commit this one then with your R-b (and further
acks, once they have trickled in) once the tree is fully open again.

>> --- a/xen/arch/x86/monitor.c
>> +++ b/xen/arch/x86/monitor.c
>> @@ -270,7 +270,8 @@ int arch_monitor_domctl_event(struct dom
>>          ad->monitor.descriptor_access_enabled =3D requested_status;
>> =20
>>          for_each_vcpu ( d, v )
>> -            hvm_funcs.set_descriptor_access_exiting(v, requested_status=
);
>> +            alternative_vcall(hvm_funcs.set_descriptor_access_exiting, =
v,
>> +                              requested_status);
>=20
> (For a future change...)=C2=A0 It occurs to me that this wants to be:
>=20
> for_each_vcpu ( d, v )
> =C2=A0=C2=A0=C2=A0 v->arch.hvm.recalc_intercepts =3D true;
>=20
> and leave the resume path to do the right thing.
>=20
> While it's not a big deal for AMD, avoiding the line of VMCS loads on
> Intel really is a big deal.

Ah, yes. But as you say, at some point in the future.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:25:22 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:25:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235164.408010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms44A-0007JH-Cx; Tue, 30 Nov 2021 14:25:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235164.408010; Tue, 30 Nov 2021 14:25:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms44A-0007JA-9m; Tue, 30 Nov 2021 14:25:06 +0000
Received: by outflank-mailman (input) for mailman id 235164;
 Tue, 30 Nov 2021 14:25:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms448-0007J4-Q1
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:25:04 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e9c6962-51e9-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 15:25:03 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:34578)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms445-000t4I-8v (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 14:25:01 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 824E21FB51;
 Tue, 30 Nov 2021 14:25:01 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e9c6962-51e9-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <34c9551c-4e60-8472-15ce-fa14076cf393@srcf.net>
Date: Tue, 30 Nov 2021 14:25:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, Tamas K Lengyel <tamas@tklengyel.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <9fd8ba19-9744-fa50-1afb-15fae8955cac@suse.com>
 <17b42cc5-1979-f977-7c2e-a59fc97f87ea@srcf.net>
 <30b2711a-de67-ca15-e8a8-a4c8b962e620@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] x86/HVM: convert most remaining hvm_funcs hook
 invocations to alt-call
In-Reply-To: <30b2711a-de67-ca15-e8a8-a4c8b962e620@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/11/2021 14:03, Jan Beulich wrote:
> On 30.11.2021 14:48, Andrew Cooper wrote:
>> On 29/11/2021 09:04, Jan Beulich wrote:
>>> The aim being to have as few indirect calls as possible (see [1]),
>>> whereas during initial conversion performance was the main aspect and
>>> hence rarely used hooks didn't get converted. Apparently one use of
>>> get_interrupt_shadow() was missed at the time.
>>>
>>> While I've intentionally left alone the cpu_{up,down}() etc hooks for
>>> not being guest reachable, the nhvm_hap_walk_L1_p2m() one can't
>>> currently be converted as the framework supports only up to 6 arguments.
>>> Down the road the three booleans perhaps want folding into a single
>>> parameter/argument.
>> To use __initdata_cf_clobber, all hooks need to use altcall().
> Right, but that's not going to be sufficient: The data members then also
> need to move elsewhere, aiui.

Nope.  It is safe for data members to stay.

>> There is also an open question on how to cope with things such as the
>> TSC scaling hooks, which are only conditionally set in {vmx,svm}_hvm_funcs.
> Why's that an open question? The requirement is that the pointers be
> set before the 2nd pass of alternatives patching (it's really just
> one: setup()). That's already the case, or else the hook couldn't be
> invoked via altcall. And that's also not the only hook getting set
> dynamically.

This was in reference to cf_clobber, not altcall().

If the conditional hooks aren't added into {vmx,svm}_hvm_funcs, then the
clobbering loop can't find them.

>
>>   However...
>>
>>> [1] https://lists.xen.org/archives/html/xen-devel/2021-11/msg01822.html
>>> ---
>>> Another candidate for dropping the conditional would be
>>> .enable_msr_interception(), but this would then want the wrapper to also
>>> return void (hence perhaps better done separately).
>> I think that's a side effect of Intel support being added first, and
>> then an incomplete attempt to add AMD support.
>>
>> Seeing as support isn't disappearing, I'd be in favour of reducing it to
>> void.  The sole caller already doesn't check the return value.
>>
>>
>> If I do a prep series sorting out nhvm_hap_walk_L1_p2m() and
>> enable_msr_interception(), would you be happy rebasing this patch and
>> adjusting every caller, including cpu_up/down() ?
> Sure. I don't think cleaning up enable_msr_interception() is a prereq
> though. The potential for doing so was merely an observation while
> going through the hook uses.

Yeah, I suppose that one can be a followup.

> With it not being sufficient to convert the remaining hook invocations
> and with the patch already being quite large, I wonder though whether
> it wouldn't make sense to make further conversions the subject of a
> fresh patch. I could commit this one then with your R-b (and further
> acks, once they have trickled in) once the tree is fully open again.

Honestly, this is legitimately "tree-wide".  While the patch is already
large, 3 extra hooks (on top of a fix for nhvm_hap_walk_L1_p2m()) is
mechanical, and probably easier than two patches.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:32:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:32:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235170.408021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4BB-0000Ng-5W; Tue, 30 Nov 2021 14:32:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235170.408021; Tue, 30 Nov 2021 14:32:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4BB-0000NZ-1q; Tue, 30 Nov 2021 14:32:21 +0000
Received: by outflank-mailman (input) for mailman id 235170;
 Tue, 30 Nov 2021 14:32:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms4BA-0000NT-LB
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:32:20 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52b44532-51ea-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 15:32:19 +0100 (CET)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur02lp2059.outbound.protection.outlook.com [104.47.5.59]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-22-pJ2Q0jgfPmWouT3p0Z29ZA-1; Tue, 30 Nov 2021 15:32:18 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR0402MB3536.eurprd04.prod.outlook.com (2603:10a6:803:2::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 14:32:14 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 14:32:14 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR10CA0050.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.20 via Frontend Transport; Tue, 30 Nov 2021 14:32:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52b44532-51ea-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638282739;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7Eh1hyrdDMjaLgpfpzMMQiQVSTk20RvNhR2YLQhhyZ4=;
	b=D/5XzMoDuMrlw3Azh1J+VUM5E4V7z/FTauHFOV+g0yR1nc2dZDMbTUemtaVHl3rI2RKk/5
	uOHTbo3+uz/r8HHALm4yU8vn0hF3mPpL6Evx2iTbhrbgJPtq7crO8t1BGcgbMyUqbK8mQ/
	FSHLWMdjwgClBFADO7yP0Xjx7fmqxss=
X-MC-Unique: pJ2Q0jgfPmWouT3p0Z29ZA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WJAgj44so7XVDOfzkjjKsI2aJpz+ZrTjUQg++dgcTT6JAmvgBmh3Q1xSqbEsdE2ZJKHSV8qUJbjI3SFaeO3u/2nblfbScSXexwm3RN9lvY6W+DXb5/ldkKwgC4uZG7kqz7u4SLKc6blYsKkBiwABMK/uPLLrQqVIrB0mz+OScLH/5mnsy+djjB5nFFOZNcj07XJDUoLG0lBOOzeuxlvyj/wIWpra63BqaZRFWqAYbdI/Hie3DjdScZXy1AGw8Ntsk0pGS1JPh9bM+bEz3azq9Dy2OZlaEfvFVLJQ6W1LmEms0VLFlq7SndrdZk665X6nlcS3zQvzLlwZyiwVzTemOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8GwfV8SGRNg330Ub69KlfEGgjMgge+Hn3k/kjrimdK8=;
 b=J3eoz7Dfo1AE8a1PaJ7ezGXXnyrqnxQFgFKUDZI1WCQVwqqa8i3w119BpREqQibneM8b8dzwPMj3uK8zWd+YHbkP5EwYMrAke+fl2NKz9yhwWZ8/U/Efbq9Dk8rutCtSYcI87WS3gfkOEroWm8OAkbshY9+xdH7nc6Zm42Re6FF2V4b1LzHGcUD1xFO0NTnYzOxxPP6lo8rMRJyDaKEN+cKaAkempBLqDAWP7DYBIMae4mt5gDgfCeOkQDne0UzrwB3WcO6W43g+2sBHRq7sRgCo2UJOJAEYlj3Ch0QV1mJZ3g1sQlNqCuPPDy3m2f8sxAhYTbr+EGabeOMhUWH0cw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <f651c62e-65ee-1d82-843b-0c453c38f7b5@suse.com>
Date: Tue, 30 Nov 2021 15:32:12 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] x86/HVM: convert most remaining hvm_funcs hook
 invocations to alt-call
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, Tamas K Lengyel <tamas@tklengyel.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <9fd8ba19-9744-fa50-1afb-15fae8955cac@suse.com>
 <17b42cc5-1979-f977-7c2e-a59fc97f87ea@srcf.net>
 <30b2711a-de67-ca15-e8a8-a4c8b962e620@suse.com>
 <34c9551c-4e60-8472-15ce-fa14076cf393@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <34c9551c-4e60-8472-15ce-fa14076cf393@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR10CA0050.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:209:80::27) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: c7b11619-cbe2-4923-418d-08d9b40e33fc
X-MS-TrafficTypeDiagnostic: VI1PR0402MB3536:
X-Microsoft-Antispam-PRVS:
	<VI1PR0402MB353610EEDB7BBD6580366BDBB3679@VI1PR0402MB3536.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	uJvLdadteOBYpaEGrIJ09rxiZIktPWjK/ZP1OgIYNOsrYWzjFWjwFIrY+xt3l3YN9x+4sPPSJ+pGRV8QA/qZ7VgmweD9UvsV9XaKG041f0lsJF0NQg3Dk2es55dr4VN/YrtPgQIBGOF1b4wwB58Lq81clFR6KY/QSpqzrK3LMn9YkZYKQSZ4genC5IDoDaHGuTfIQrGr1Qqk2oE84aVSZE1wqq1teevoqNfcHlVwVilnj64dKZ38l+E8P59LgZSDuuNSKkxhE1uY7bskoUTg4YYP/9OGmggQXqFVan3ai/CywZt+dt2+TaeYg9Wfxy9KzQVF87B4LT1ZNiG8usUSNj2fbYf76HTID0Gp8n5iQyT6XbUk1KRP63fzwam3HMOnd9LRe7HvG2aeyETrFvdce40G7VPFDtITDa4kRsHypCAj3IjV/DMVORWJM0Fb2GsOws/mGQAVwX9Ndrn/4aMgIhT/6wbLKbP3IqgSKKFz2H3fI8+5+P8zZpHTb52rxJJakOl2RYB3sHdKl1W1ic8DvzHxvm+FCu7JZUv7Nrpik/J9szWq+eXBeFfndCQSXlbTVYWLWATfZF2wD0uFWTVLIGe67mjEvSyxKPIUe4tKh/efa1n0wCYJ3n9FihMVDeCLZ1UeVWcPRCvN68u7X73Pt1cggYKTOVP1PrjREDeg9Uz4rRFvTavBZFwLItF33HwjgA74K1hJoA4c0ScWb/4djrbW1TYUC90YF67okP5ku5gn50szQX4pe15vrG8akMPQsK9l1GCXaM/BqZ/gULZ2t4toXD0yQfozd1eXgMNbF3Cu3npYqxpaF/RMWtmYEmPT
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(31696002)(86362001)(5660300002)(66556008)(26005)(2616005)(38100700002)(36756003)(66946007)(966005)(31686004)(186003)(66476007)(6486002)(316002)(956004)(8936002)(8676002)(53546011)(4326008)(6916009)(2906002)(16576012)(54906003)(508600001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?mOMxAaLD6wdAn0Y7KrjUnh9GsXyMrknhfb072mhZRQ4fbeXDbWzrDKDZXySc?=
 =?us-ascii?Q?gHpVLCZu6E/sbNqcnHa89I+V7yuCtwVYR7Pah78dwyz3+tRZMDYQvBrp3kZU?=
 =?us-ascii?Q?ijFc9H6IIu0mG1YwJaWfZd8sfKz89abrU7HWSQMcRjjWw/N7GBArmm+6fe8h?=
 =?us-ascii?Q?tC6qk8TfvvlBWZ2n1XMDLDFwpw8uK/tf7vBRHYZkJ9dJOKC+IgycUnSZzlfN?=
 =?us-ascii?Q?dsPeK6x24k8eIF7F+4p4heSVeFc1Ra4oFrRx4s59D309cl1edKIl0dp6ERHs?=
 =?us-ascii?Q?TcSyh+xFi98DCozGfL4YyRF7O5wPgE0De7xlDB6UMN1xLN8AHbyyTRiDXlka?=
 =?us-ascii?Q?fWeECFqlXBY2yf5y7JABZhL3n/rRWlsrQT4hA5TpmZKaKleLHBOBKqth8NIs?=
 =?us-ascii?Q?+Bgu+6yuf6a7kHAdK8tijfYw+BiDp4ApHkKpCx6JfVR3rhz51v0hTRR8L+ax?=
 =?us-ascii?Q?BoW9gUS65tHo6r+eV6T0gnN6P7rVkl3M4CZtsOJKzN828hB0dNUsQMDgozn+?=
 =?us-ascii?Q?0/Ef4Nr+uNOoQez6Nkq3k1k2uFNcEIjx9RSsnnaHU+3hXrTbHpBP53RhlBp8?=
 =?us-ascii?Q?8nHgNp5IF9DiLw91fHExWDHwNJc0IVmNjJPcO1c7TETfyNs8qYyThuyxrZhK?=
 =?us-ascii?Q?kWJsZBhprOTu8GksqXrDGpKxkIysfmz1x/VOcX1BA9TZJbstsH4q7Fktt4D7?=
 =?us-ascii?Q?YHJcDeotWu/uofHIuUIGJ2bPfoTywV5e8fT6JgeMvuQXcyXw5RPYIZyxUNrd?=
 =?us-ascii?Q?/ZzjV15LdNG/4AK95SwXcmtgGq5L8sv6i5y9BFpZbSW3Dbwd2uKIZ4dl867w?=
 =?us-ascii?Q?ync0QKDwrjlvrQiBOsdgZUAdD92jfVkVPIPorzJxH2szkrXBSwWomRprAhVb?=
 =?us-ascii?Q?AdFFljZ7U+dApeuJ1WZqDYur7OT5LqbW0QYTHDJqplZd1EmYU0J0dEFovbRb?=
 =?us-ascii?Q?ctEeDk96/uXR0XJiyJRHFWfzWx1Ni/j0Sfgp+Sj15ntUB8pMBhtdVu4Cih1/?=
 =?us-ascii?Q?VgWx1/c5UxNahvXAfEG+JpPsgH4tXIiVD7Zy+tl6qPW2vtii7aHj7DK0aeC4?=
 =?us-ascii?Q?vyhfXYK0nNXpG4tAz9s4acm4n9n3nt6ZYzKi3Q+HzfqGhvMLNTNnmoB+h6HY?=
 =?us-ascii?Q?iGgjKz3uAt3ow222k+LANMfzKQkKR3vqioA+GasxwlMD903uy/Wzf6JN8C4l?=
 =?us-ascii?Q?C6STQQ9vtiGUMrLbirNDTd7G0Hh5FBUDsBFQrD/eM8tMtAuGQhOlZxj0TjK6?=
 =?us-ascii?Q?jLpjAgvSc+L0Vpd0ZZByoDfFkb8+wFg+dj2vWJ//GWkrKrrAHXxVPbSb3X27?=
 =?us-ascii?Q?LRaGD4DR3l3jZAXSb1ugTvMDYt0pRcxjfMMfKoQQNnhdziSO0Ge7I7+06yJn?=
 =?us-ascii?Q?uGn0oEAVQGC6TLF4aYIM8upJpRFml6/Ki2XUWQ/WkWc+M/7POmvHEmgpkSEP?=
 =?us-ascii?Q?2aUeRz1BVyCSfY9Ms+8mbBT5v2ylP2NcWoFBIN+PJf69Irpgf6ZMBc4AClvY?=
 =?us-ascii?Q?REtnJRthV5Z0DZ2pwo2i++qYScQy8/KzILQSE5hySq0YNONBErW43yo6I1jV?=
 =?us-ascii?Q?8p1KQqnW7RoXXu/9gXD599L4Slkb+GBh/ktZq76eoxJ73Stqs/DQpxGoY6SG?=
 =?us-ascii?Q?QvvTrtXb7XgVeyJ7NUFarTc=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c7b11619-cbe2-4923-418d-08d9b40e33fc
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 14:32:14.5826
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TC7oSJU4+ohYyvBSAthSRhrF0rvi0X0De3Mzi+0IPbDu5weTzQutReqM2rEZhnWeMZ8y6XwH6MlN1PXSC7ipdQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3536

On 30.11.2021 15:25, Andrew Cooper wrote:
> On 30/11/2021 14:03, Jan Beulich wrote:
>> On 30.11.2021 14:48, Andrew Cooper wrote:
>>> On 29/11/2021 09:04, Jan Beulich wrote:
>>>> The aim being to have as few indirect calls as possible (see [1]),
>>>> whereas during initial conversion performance was the main aspect and
>>>> hence rarely used hooks didn't get converted. Apparently one use of
>>>> get_interrupt_shadow() was missed at the time.
>>>>
>>>> While I've intentionally left alone the cpu_{up,down}() etc hooks for
>>>> not being guest reachable, the nhvm_hap_walk_L1_p2m() one can't
>>>> currently be converted as the framework supports only up to 6 argument=
s.
>>>> Down the road the three booleans perhaps want folding into a single
>>>> parameter/argument.
>>> To use __initdata_cf_clobber, all hooks need to use altcall().
>> Right, but that's not going to be sufficient: The data members then also
>> need to move elsewhere, aiui.
>=20
> Nope.=C2=A0 It is safe for data members to stay.

But then it can't be in .init.data, can it?

>>> There is also an open question on how to cope with things such as the
>>> TSC scaling hooks, which are only conditionally set in {vmx,svm}_hvm_fu=
ncs.
>> Why's that an open question? The requirement is that the pointers be
>> set before the 2nd pass of alternatives patching (it's really just
>> one: setup()). That's already the case, or else the hook couldn't be
>> invoked via altcall. And that's also not the only hook getting set
>> dynamically.
>=20
> This was in reference to cf_clobber, not altcall().
>=20
> If the conditional hooks aren't added into {vmx,svm}_hvm_funcs, then the
> clobbering loop can't find them.

Oh, I see. Which simple means the clobbering loop shouldn't run
meaningfully earlier than the 2nd pass of patching.

>>> =C2=A0 However...
>>>
>>>> [1] https://lists.xen.org/archives/html/xen-devel/2021-11/msg01822.htm=
l
>>>> ---
>>>> Another candidate for dropping the conditional would be
>>>> .enable_msr_interception(), but this would then want the wrapper to al=
so
>>>> return void (hence perhaps better done separately).
>>> I think that's a side effect of Intel support being added first, and
>>> then an incomplete attempt to add AMD support.
>>>
>>> Seeing as support isn't disappearing, I'd be in favour of reducing it t=
o
>>> void.=C2=A0 The sole caller already doesn't check the return value.
>>>
>>>
>>> If I do a prep series sorting out nhvm_hap_walk_L1_p2m() and
>>> enable_msr_interception(), would you be happy rebasing this patch and
>>> adjusting every caller, including cpu_up/down() ?
>> Sure. I don't think cleaning up enable_msr_interception() is a prereq
>> though. The potential for doing so was merely an observation while
>> going through the hook uses.
>=20
> Yeah, I suppose that one can be a followup.
>=20
>> With it not being sufficient to convert the remaining hook invocations
>> and with the patch already being quite large, I wonder though whether
>> it wouldn't make sense to make further conversions the subject of a
>> fresh patch. I could commit this one then with your R-b (and further
>> acks, once they have trickled in) once the tree is fully open again.
>=20
> Honestly, this is legitimately "tree-wide".=C2=A0 While the patch is alre=
ady
> large, 3 extra hooks (on top of a fix for nhvm_hap_walk_L1_p2m()) is
> mechanical, and probably easier than two patches.

Okay, I'll wait for your change then and re-base on top.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:38:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:38:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235176.408032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Gw-00019n-Qe; Tue, 30 Nov 2021 14:38:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235176.408032; Tue, 30 Nov 2021 14:38:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Gw-00019g-Nc; Tue, 30 Nov 2021 14:38:18 +0000
Received: by outflank-mailman (input) for mailman id 235176;
 Tue, 30 Nov 2021 14:38:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms4Gv-00019a-Nn
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:38:17 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27591d58-51eb-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:38:16 +0100 (CET)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com
 (mail-am5eur02lp2058.outbound.protection.outlook.com [104.47.4.58]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-30-DSeCB5GuNwSjz3pZgSNT_g-1; Tue, 30 Nov 2021 15:38:14 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB3293.eurprd04.prod.outlook.com (2603:10a6:802:11::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Tue, 30 Nov
 2021 14:38:13 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 14:38:13 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0337.eurprd06.prod.outlook.com (2603:10a6:20b:466::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23 via Frontend
 Transport; Tue, 30 Nov 2021 14:38:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27591d58-51eb-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638283096;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=huQ/46gZdS5axDqJGm5iFZKD2ZQnr2tZ+NgepjjW/LU=;
	b=VgPFEyXYvLj3w1ds30HfrLE7sI24IKvyDzf3tU7JEzcDenvq3/SpsRkxfaGu7k7jewmYU0
	zVx3wcfjzEqsKWZKVRqOn967YGcLVAB9JMLxUfUrTVw2L3/gnGTr0mRdmeH8CMkp6lSsPm
	TcUyaTtePMUT4gj0QgDO92KQTrQy2YY=
X-MC-Unique: DSeCB5GuNwSjz3pZgSNT_g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Yw1J0NKQx/PSTz0IfGUmY1T/VGuKGZeCwyVYqwkzKR0My9CqwERCsFMIgAImv6lcbEB4+tJXALisLH3K/trMSfqj8xwoKfNYMSqxPE0vwNko48u+POzK4Ye0pEYDoKqrgfd+EjMZz+LtaD4+0uf7gFzAj8cz9YeEXkTpXHdNd1bV4iPTAUrFXDTN7EB8dZShQVbY76j5/Jd3MhaeEXfSiT2yYBPEYcj8NI9/HKxTqiV5PW03wvMOzIffOBzL5GqjQT7C/wugAtNvZXZOrotDz3PDND0gPL3ePa2Z6698pAteELLyyDpdtgLTSeX21I8aKVJ8W6vbTwg/Yay3A8z6IQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fbla6r+kB9qZGOZaj6QZrwnmYPaJKjFJqfffD203A4I=;
 b=MmkQetRa04AXmdYa6hbm8SoFcrzN6qmOCVOSKDqf7qeG2KASZjvefpfygcdQAUV9zt4dcfAQwriXwodzDHRc/k4JFH2USIEt/j5Z1A3Ij8VZOtXpUwy+vvVelZRK54+1GV7Py8eGd3lwJ1nuzAoSlBbxK8xbcRITTk2e3T0Y0EXXFCAFOQbLoS5OSIhbBRWq7+bkiijXuYrwjkZagdqK07S2aQaS4xNrqnBsDMdYp5VBDVGyWX+QckQcQf4dKWaRJBHv5diwNpOWU0VYz53OMw6zfi52IN9IDilK7jkK99xTEg1JSDgY5alUZd5Qx7mJRJp+Azz8xN+rISf3p/qmZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8a17f9eb-a06c-e741-b056-05622081555b@suse.com>
Date: Tue, 30 Nov 2021 15:38:11 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH v2 02/18] VT-d: have callers specify the target level for
 page table walks
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: Kevin Tian <kevin.tian@intel.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>
References: <957f067b-9fe1-2350-4266-51982f09d3a9@suse.com>
 <6d01a401-ac53-d4ca-e0ac-165d045341af@suse.com>
 <YU3kedkf/mSsGcpD@MacBook-Air-de-Roger.local>
 <91745efe-129b-4851-87a2-93eea8f6d63d@suse.com>
 <YaYRVfa214KY7P+4@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YaYRVfa214KY7P+4@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AS9PR06CA0337.eurprd06.prod.outlook.com
 (2603:10a6:20b:466::13) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 657340df-0d28-45d9-e5da-08d9b40f09e9
X-MS-TrafficTypeDiagnostic: VI1PR04MB3293:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB3293A8DD8B1229046823A1DCB3679@VI1PR04MB3293.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	7Y9FyT8cN9jP78vz6U+WczyRKwin/pL8COVSgpTEyzXwLWLcivT+lOS1Orrpzxazm2L6a2CeewNJqctN8x8djFIFteRkPmckCxAhJRMm/FNrM8pMVUP1jUNc3DJUs4SS+gNspQMZjIWl9njJ2QZzUzamYGwaEgmii1+JoQFplT7BXOLbRc0KWRov5+EWEl5WetdUnqaZW9WIcIlszKDttp+Eh5PUBrzaqPcIGzoeJRkMocOXsTZIxp4kxMhvvvwGdoyrdKebPgX/dFUFi3GXQFoTOhea25REDolYCNz13q4gDEfcgJDp/ZYBM25ZbDlYcbJvSM3Esc2NlwRH2fT6zR+N+p3vQ/+0Oi4PnQA0f5paJbweX/9qhhSWCoSh1hKPWKEtnIDXNxRcXOjA0WiijPc98O6XUUktReluLcffW1pQI8t/w/9mHg0uvibw+vfM0Y7PX0ZL5aM0cve48q25hYtyZIvzYgVsZlg9YEMvuXybyTN4o48bQLRjbcMkeafIbKEzSCYPgCDl5+bT2jQ1BPjlBRm9XFzjtLUIgRdDjHRTpYDb1LhpbGzj9sJhSi0v984JhgzcLmsd1QpswFzjYFCwxyCHgEsqpSv6Hn4YNFafQkMryEcgintsknAFO9MQAOy4wfiNFpcErCVj8KOEHOg4RQbeOwlj9wTLFhHHnTOuRmSqmWJ4Lgjv949/4l2dGbOlgCjzbmfxbmLcs86N4jSdYzWtU2W1M8AVCk2lILeb4xF89Y83hL1vfLoTL+wL
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(2906002)(26005)(956004)(186003)(86362001)(8676002)(31686004)(38100700002)(4326008)(66476007)(508600001)(5660300002)(53546011)(31696002)(66946007)(66556008)(8936002)(16576012)(2616005)(316002)(54906003)(6916009)(6486002)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?J6fS3/u9PSRvLMAmQF3A0myYvcbTbTarhKxmnCYEHkATeWGkeT0oPQrOlSXE?=
 =?us-ascii?Q?WfiB/1KupAh6YHpf9hB4kpvhnhAFeSZvzxKbCf9pKJorfWexh13J3QoZmvaD?=
 =?us-ascii?Q?D1DCGbIVm93MHxEV5eN+JWWc5EhejH0huLdipGvzw490oX8CJL1MeXCCTl+/?=
 =?us-ascii?Q?s7W/4KAO9Mgx43suOFCrA2dDrVmiRX6OxNaHNoQAmZ/C1KxRopo9a4YgzJhu?=
 =?us-ascii?Q?ueyRS5YWMfzNOk6Lx3Xm1JtYKc0g/8hoEMvrAHWBNXn0xdsuaurIdQeyX8+i?=
 =?us-ascii?Q?kDfAB4OHrlf1LmbVeuoPqJV1crNZ9C7fg+ex0QBpEI0eNoHiiFpy5HPooyfZ?=
 =?us-ascii?Q?bn0qDv3eyVq6I6av6mtsFA2oJoJzQAQ6tE+3DirtKysruslVI/ztoSbdQ2Jm?=
 =?us-ascii?Q?Xh7Xr5g9VTdgm+WYKns0BZgzkZ9vleO0AMLnHzJ04p9OY5BhnwGBXG7F72su?=
 =?us-ascii?Q?RJzdWWcnw2v5l/JErFx/S2X7+yeUvfgjkE0BKwnfyNOqX6nUBOquC5TarPYE?=
 =?us-ascii?Q?zwBZOc5Oij2L5I2gsWUdwjhSsEtBKCwJnktcdE1aGdElVhCN3rihSE8Uzf53?=
 =?us-ascii?Q?L6OjDbQyoMFcUThZgdWK14/JGqJ9woOUxg2RKP0TIzWChLnNv1gobguS0NH5?=
 =?us-ascii?Q?jWx0HFVfOLIa2649kDo6IdLUhKYXsCop/asrCE2T2I1KNgffcmP54mQcxrs+?=
 =?us-ascii?Q?FmV4JgOuYSObqNDXtHeJnhHzSmDXwvgFYt3UbBGv6janedz+YJF79QxqUV39?=
 =?us-ascii?Q?AmdqygqdIblPDx1cz6V+0AMtVOWh01t0Nm75V0udUTCyPPQOO52rlVJNalKQ?=
 =?us-ascii?Q?b0AB4SyEJ0VSNVicczMZyadD2jjs0W2LrODJUBWRDS44AtOjoEhCwzTHfHLP?=
 =?us-ascii?Q?tmiaesyb5C41gujvJnx5bpkAQN74qCRPGI84c8wPwrniS85wkpeQIF/PYNj1?=
 =?us-ascii?Q?c8kB/rPsH8an7Uzfj1Ba+oB1cBanQpTD3zTH0ywyqCYjBocbJJ/8oT3PCCgW?=
 =?us-ascii?Q?JKkWhJTEehL/rv4wgu9Pvjof2GgwkCQEGMFHcqkwGfTaIIe3978yYzTZmbR0?=
 =?us-ascii?Q?uUoz0mRgk1SaOWW3JN8Ae+f42k/3PRYDb3l1z4t+nt30fxG9LznsPFz7MksR?=
 =?us-ascii?Q?R4pUJvsBrIye0BGfdP2y0L4HrMjOzawgo1qZ+tYKve9Gw8DZuT6Lq1wpTJ+Z?=
 =?us-ascii?Q?zEEsz8HeHOQKOrHPUHmtlef6c5SeXLYJ0LPRVMlcdIfxGe6iwj4MGgBu5pZL?=
 =?us-ascii?Q?B1HJMQWyhI3GuIJphOGxuGEJNkhH78lrcsQ/mZcXfgSZsUzW83DhdanxiRot?=
 =?us-ascii?Q?blIKpb/r+/XZoh3Vr8yG/CWoSlIXYI5USMb5geuv3ZUpYAL1GFxeQYfjtFam?=
 =?us-ascii?Q?bplm/F4v7j6+ya2wxTnHFM06O8MrfVGtf1tsw4ximOzd+tjn57+En3c7U17w?=
 =?us-ascii?Q?mL8crK6cQUiDhjp4NQ0Xd0i7bcSmAVxaXczpjR/htsLrx/PJrrY6BE1ekgJq?=
 =?us-ascii?Q?guwNnoWvrkxPDrm0gZ96HioH8Y7NQNxfEpPtP7Oop4V67k7CWVBHJMIi0KiZ?=
 =?us-ascii?Q?SI16V0KftCtcM5dsjQpQ+AgIgsLyvUxGXJdxQMtf2vla0PylpLU8VGUSxQku?=
 =?us-ascii?Q?dXFVkBUiz2sPvk1KycM3Sbo=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 657340df-0d28-45d9-e5da-08d9b40f09e9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 14:38:13.4937
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yeCLxo/NgRjZjUf4235zFgnNM7qkVcMyeGOQ+xVzVZUNg/q1Lt6m7igrwzXEqGc+4uYVyMbA8b2VcMiZ9PqSTA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3293

On 30.11.2021 12:56, Roger Pau Monn=C3=A9 wrote:
> On Mon, Sep 27, 2021 at 11:04:26AM +0200, Jan Beulich wrote:
>> On 24.09.2021 16:45, Roger Pau Monn=C3=A9 wrote:
>>> On Fri, Sep 24, 2021 at 11:42:13AM +0200, Jan Beulich wrote:
>>>> -    parent =3D (struct dma_pte *)map_vtd_domain_page(hd->arch.vtd.pgd=
_maddr);
>>>> -    while ( level > 1 )
>>>> +    pte_maddr =3D hd->arch.vtd.pgd_maddr;
>>>> +    parent =3D map_vtd_domain_page(pte_maddr);
>>>> +    while ( level > target )
>>>>      {
>>>>          offset =3D address_level_offset(addr, level);
>>>>          pte =3D &parent[offset];
>>>> =20
>>>>          pte_maddr =3D dma_pte_addr(*pte);
>>>> -        if ( !pte_maddr )
>>>> +        if ( !dma_pte_present(*pte) || (level > 1 && dma_pte_superpag=
e(*pte)) )
>>>>          {
>>>>              struct page_info *pg;
>>>> +            /*
>>>> +             * Higher level tables always set r/w, last level page ta=
ble
>>>> +             * controls read/write.
>>>> +             */
>>>> +            struct dma_pte new_pte =3D { DMA_PTE_PROT };
>>>> =20
>>>>              if ( !alloc )
>>>> -                break;
>>>> +            {
>>>> +                pte_maddr =3D 0;
>>>> +                if ( !dma_pte_present(*pte) )
>>>> +                    break;
>>>> +
>>>> +                /*
>>>> +                 * When the leaf entry was requested, pass back the f=
ull PTE,
>>>> +                 * with the address adjusted to account for the resid=
ual of
>>>> +                 * the walk.
>>>> +                 */
>>>> +                pte_maddr =3D pte->val +
>>>
>>> Wouldn't it be better to use dma_pte_addr(*pte) rather than accessing
>>> pte->val, and then you could drop the PAGE_MASK?
>>>
>>> Or is the addr parameter not guaranteed to be page aligned?
>>
>> addr is page aligned, but may not be superpage aligned. Yet that's not
>> the point here. As per the comment at the top of the function (and as
>> per the needs of intel_iommu_lookup_page()) we want to return a proper
>> (even if fake) PTE here, i.e. in particular including the access
>> control bits. Is "full" in the comment not sufficient to express this?
>=20
> I see. I guess I got confused by the function name. It would be better
> called addr_to_dma_pte?

That wouldn't match its new purpose either. It can return an address
_or_ a full PTE, as per - as said - the comment being added at the
top of the function.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:46:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:46:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235184.408044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4OT-0002c4-RE; Tue, 30 Nov 2021 14:46:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235184.408044; Tue, 30 Nov 2021 14:46:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4OT-0002bx-Ld; Tue, 30 Nov 2021 14:46:05 +0000
Received: by outflank-mailman (input) for mailman id 235184;
 Tue, 30 Nov 2021 14:46:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms4OS-0002br-P1
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:46:04 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e00f61d-51ec-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:46:03 +0100 (CET)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04lp2054.outbound.protection.outlook.com [104.47.14.54]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-4-LycV6UuNMnW4QPrRqOet4g-1; Tue, 30 Nov 2021 15:46:02 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5167.eurprd04.prod.outlook.com (2603:10a6:803:5b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 14:46:01 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 14:46:01 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6PR0502CA0040.eurprd05.prod.outlook.com (2603:10a6:20b:56::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.21 via Frontend
 Transport; Tue, 30 Nov 2021 14:46:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e00f61d-51ec-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638283563;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=1S1nSRvEMB/nwuc4kZ7Pn3DED+TbZ8XV4b//gIdEt6Y=;
	b=PRrCaCaCFyou6xmQMoSjUlGLlRqx1FbHPzhxHt6kA8V/bduEGljht7VJiHoPadXCA1yCe9
	PEo3bVbPcDLYuDGRTzwADyoJt4Gez/goxShp1/hYcaGhpJ3Bsw+V1YIJDN2pITVXTktuxJ
	Fqg6QMQJwAzIw/Vf9OTGkYGKUyQHjB0=
X-MC-Unique: LycV6UuNMnW4QPrRqOet4g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Rhc7CfnfSaRv+cKKyYnwe2iSfBziXT2GkdVOoioh64W2BXJeZ1GqKSw8KIz+IWsDieNk/+iXlzEF+cPChzfSRqN+J5Rp/FVhAQ5Z2QvtYbSl74XZUlbZk53q51rHptvBjojpRdNPsAW3FR0KY3nAeQNlpN+vnuPR8Yt3fkBmsR2g878jQ+NIiPsNsM4Wrb4nWzSx4Y6sgQ18Rtka9ShBWffWBHr2mVs0BsiX4sDl5WjPmweARi1pLLfv0m+a/qdaDWnCVXXsdDzjPHSEfL8OMf2M2e5VbvZ4FNo8dYBslXIZw+9eh8ikPOKN9Jsx/uaSXcPnklTB13fjz6vWwAj06Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=49nr4D5Hpcc/0TUTSQTh2TMpELDhNnxW7fBkW8w4MFE=;
 b=UBOTs49Uf3jBVrNZbHyAMfLFeCJUnKuAbWitjuIdGHF0LAdEOGDX7ku3+lzSjd+rrGTXHqV7F9jtrL2Dvfz768iSGhNV4X+PiO9YuXhUT1Tra2M3H7Bg7/HhNn6Xw5xjkCjPks/pVcWecy6Dp9XiTEBukh3LYkhQWy90AWZ3olm5Z8/trxCI16ZfV6CMx//6+XifmHugzy4x3KHt2ZL9whM9Jv3p5b3aYgtWkzwUFnaRU4S5G/lj3H9J+v/cJdFUT+Ij44CwURHfDDb6ADWsFWpRzsjrQS++pmpBSp/HG7plMlxZiaycdRaciYGhyM2kTDEv75PuSDMVQsuzQhgy8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <bfedd776-3427-0682-0b9c-5e338b4876f5@suse.com>
Date: Tue, 30 Nov 2021 15:45:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH v2 04/18] IOMMU: add order parameter to ->{,un}map_page()
 hooks
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>,
 Kevin Tian <kevin.tian@intel.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>
References: <957f067b-9fe1-2350-4266-51982f09d3a9@suse.com>
 <7500296c-588e-983e-35ac-39048a72cb47@suse.com>
 <YaYr8bY+yUDATyR0@Air-de-Roger>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <YaYr8bY+yUDATyR0@Air-de-Roger>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM6PR0502CA0040.eurprd05.prod.outlook.com
 (2603:10a6:20b:56::17) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4557b9d5-d932-472a-90a5-08d9b41020a9
X-MS-TrafficTypeDiagnostic: VI1PR04MB5167:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB5167619131271FAF2ACA6C57B3679@VI1PR04MB5167.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6430;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	bMbgpuPGJDI3m0H6B9non4tLvmB8GQePICn2XFY09pQnN8Ax+ayyXRxEcpe0e6RwW3x5SO9FYM02ZGhRHjzGydkAt8fvkLhb6+WpdxaBa2NbGO/hKZSjQoL1qLM+nfBvNiUN6UVs8lKzzdGL+Ro3V1PSOkSSmkrOKC7kRlBeV89sOFWNbayJJpJusPdKkse1H2vYhU5089yZJrckVQ8hPK3n6Pw9PhTyqCR6M6wlGJhYmtJCbjxn+JR0zHQkxggivtP04eRd02O7cjfYz9h+5Erl256ATF60nM84YU0hkgo9fNeGGEt84JKYaXIWWT0i2LOczlj5TBmcjd7f0NnVF6RRMZkHH8o8MgIHJl4Kh8jM1/enkk/LKfXovJ/c18kAwg6eK7fkGAKOp525XTg/2gfyaDgwcNf+wIfW72xhUmmM2ZiPwn4IZSkNiSRkgiD47WhVmCpcxbtc9J+G2fApLYd6gGKOzrQW9x/UjtkBX6qewbTXxVP3BN/BNKjttInbcXLRfD5wXggykNs1SyC/I5IIhjO0UVAiRNaJGIIgwSQ3f3UkZ8yQR6RYpd+NU3WBj3eCFPeSbFQoWCuzBljjt3GgZA1DyDT45qHgFZMfspbCLHpzPyBJ+W94VNaB9kz5ut5iPAsK4hM0AQUJrnwqDlVIQK7P5DfFt7RWbZAddcee9v/5/apPVW3sC0H6xJS1BAW84sa291Oi3hSEKwRMd9lRju1NQzT5Gn0s6tu/K48=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66556008)(66476007)(31696002)(38100700002)(54906003)(4744005)(83380400001)(316002)(16576012)(31686004)(6916009)(2616005)(36756003)(6486002)(53546011)(186003)(2906002)(8676002)(26005)(5660300002)(66946007)(4326008)(8936002)(508600001)(86362001)(956004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?FeVMfRDaBR5e3GM3ljuc/lvV6AelI3RHzP2HhctT1zCyQn5vLenYVCqZ1A+W?=
 =?us-ascii?Q?8Z0ezfQXYjwVq8cM8uJk/P8HLhMi/qFfxAlZ9gXMqZWS9xw/qvkdE/TKL5Ji?=
 =?us-ascii?Q?2wPWih9SeM0SP5GVQsZBJqe6xhOY63oSwInrNB0sdB2irAHLSX08qApKaVXm?=
 =?us-ascii?Q?w8dB7tc//a8/+wBy5K4K3TBEq0hyrDNCveytS2sCs2x8sSrDEOn42jxITQnb?=
 =?us-ascii?Q?6ARhoodDmJWmNV3MDQ6xpbM2Rb14fQFvkF+JnzYHdD6A6dQ090Y8k28SA4d6?=
 =?us-ascii?Q?zv9QsXJZc9/ILfj0+Od/TQJF0TuCYE/S9AoSiAXoijxPLjIGdneZnELrIzBC?=
 =?us-ascii?Q?f+CBNW1QzNubziRZ55Mkd6BN+TU/teKH0JDuVzGKLhujpNZ6XRH+/+YgLVLT?=
 =?us-ascii?Q?9UCNzRZJkD83Itu4V8zLQ0sgxB4sw/+yGKc3K0Hk5BUl0epP67+w5VakX7GP?=
 =?us-ascii?Q?8KTeFSogdJobdHvMiDTnAd0Xoo82dawEI1d8NqlCnHnnU4n9ZrhdbCI6if4c?=
 =?us-ascii?Q?EUON8U7IL8YelAFfmjGVTALbjFoHLq4UQrbgrPQJBw0v4Ovd2VVXQpq47jpy?=
 =?us-ascii?Q?sEsor6nEzbrDXgZerdmAyZVFXrp8u2Rb6VHRgjaSZDrf9A5nU76P2ltIFIDp?=
 =?us-ascii?Q?+o7qtuXwLDXpLn/CTgJkNo6HnsvXNsDWxdR/SrIbR4aV+Av3Ae+U7cfOUOhy?=
 =?us-ascii?Q?iMm/XllqhYtyB06nj/si2i/FXs/VZTZ6Ov4nXFxFti7jz5wr59hfQMelvs5V?=
 =?us-ascii?Q?DMd2YsVudf94DyQ3ctyeNktpKUEBaS+kGzCeKhoVD2qiLHv/LbzT3jwOCCw4?=
 =?us-ascii?Q?f+D2KkE52qOVMWQ3+P3mHA3C8U9Mw0rNgsJtgZvukQRiFuyLTStLbdzNApOQ?=
 =?us-ascii?Q?Z2kYseRevOXwX8/lTnbufYiaON9TjZcAj1fD3yYU+HT5XriuIBgOw2NnmC12?=
 =?us-ascii?Q?e0YV3bcnkDnRkcYqsVyC5Tmw49xK0cP13MycVQc28dLgCsLcXEKrK1Xq5kpC?=
 =?us-ascii?Q?A52WsE7YXfR8bPZyAOg1S8XX462XWjP/nLQHWTbnzA5LuiXmRJ3Gca28VXPh?=
 =?us-ascii?Q?Yt8r0U/f2T6UvSpR+g6JtuPQiGh8EN9RVKltuO7cjJOFpife6n2MODsWT3K7?=
 =?us-ascii?Q?faHz78TM2HFXHQSD6UWMlBcutgh4BACEYnbnrCkETeTXdKz+6/36dHFf/ALN?=
 =?us-ascii?Q?eu5LxrMZCOPuXgzOHOi89y8VdnKz5Pe7ecjYqGznjHphJcJzG+L5Hle5PzRE?=
 =?us-ascii?Q?l20sZQBbyepiKt78RBb1wgLnH0ppReucUPYOemflwE1Sdu+rcobBHs3zgMRY?=
 =?us-ascii?Q?bh+8mWub5xTxQxbmvo+ewEpEXa1nfxaH10PB9L5sA9eBEBL09GdB0zAEUYVp?=
 =?us-ascii?Q?BBDSl7q6V3H5cVwpvZ8vsPj9BrPhg53MRoPRKETUmwjGqsLg/kQypzP/Ne14?=
 =?us-ascii?Q?cFntOyJnK3oT1v3KjAh/NQ+8BhhpsVKko5+4uWroHo2gDwcXT+/wsmDBitb7?=
 =?us-ascii?Q?5dj/iZ3AGo/VZkbQbiCgMTq/9j9+rSaS1d6N4hahzbSaFK4unOnO1BT9/K/0?=
 =?us-ascii?Q?WjsKLahJLW6zEtGWLSF7/eX52783yDi1hHrMzy39HEwWzZ+uhp25ricjC2LA?=
 =?us-ascii?Q?W9aRNzOCciO0QV0lpED4Up8=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4557b9d5-d932-472a-90a5-08d9b41020a9
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 14:46:01.1844
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HkKt8OKgw+Uhbdpu9ccfl2/XlRXhOLVeIMXEQRLq8+WZeTI4lDepQbY8kU8+oGNNfmJnTRn7n4C2EKqcNrN11A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5167

On 30.11.2021 14:49, Roger Pau Monn=C3=A9 wrote:
> On Fri, Sep 24, 2021 at 11:44:50AM +0200, Jan Beulich wrote:
>> Or really, in the case of ->map_page(), accommodate it in the existing
>> "flags" parameter. All call sites will pass 0 for now.
>=20
> It feels slightly weird from an interface PoV that the map handler
> takes the order from the flags parameter, while the unmap one has a
> function parameter for it.

Well, I wouldn't want to call the unmap parameter "flags" just for
consistency. If there ever is a flag to be passed, I guess that's
going to be the natural course of action.

>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> Reviewed-by: Kevin Tian <kevin.tian@intel.com>
>=20
> Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Thanks.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:49:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:49:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235193.408087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Rf-00049T-6P; Tue, 30 Nov 2021 14:49:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235193.408087; Tue, 30 Nov 2021 14:49:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Rf-00049J-1p; Tue, 30 Nov 2021 14:49:23 +0000
Received: by outflank-mailman (input) for mailman id 235193;
 Tue, 30 Nov 2021 14:49:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4Rd-0003Jn-Cq
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:49:21 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2a01a8f-51ec-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:49:20 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id 01FC1B81A21;
 Tue, 30 Nov 2021 14:49:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC208C53FD3;
 Tue, 30 Nov 2021 14:49:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2a01a8f-51ec-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283757;
	bh=3xYbkZoidA/SdAusJW58QQS+flHpRnGXxkykZr45L/I=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=hHLIkpgDpbuCtmAfYqY+aJw2qvSEFto0IZY/Mon9MWpn7MR8HxgzeXPlkwdx7F1lw
	 6FVG+XEFodUL46L0hPX4IbXI5O8vRg8mSS7OJ1qQGIWySh8XKIw9XDdXFgMiuijcFA
	 5ujEam71zNV4ZLLsdRMhueRbr7ZEbOBYd3pEwg0uG48AAY9LhHsZ3n1WERQQPsh1gD
	 jIUoq7i1WNbYQ3NhfoVbJpwiW2dOUMc1kIX9NkL9sBRiDM7kmxdKIQM/iqzChoVCqV
	 izot/lqCXrgDzDff9Ql9/TkBCFQ2WUTKAWR8MqOinu5ESEhU+V02ZmO3MOKo61Xzbl
	 fGJM2N153djKg==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	perex@perex.cz,
	tiwai@suse.com,
	xen-devel@lists.xenproject.org,
	alsa-devel@alsa-project.org
Subject: [PATCH AUTOSEL 5.15 52/68] xen: flag xen_snd_front to be not essential for system boot
Date: Tue, 30 Nov 2021 09:46:48 -0500
Message-Id: <20211130144707.944580-52-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130144707.944580-1-sashal@kernel.org>
References: <20211130144707.944580-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit de6da33e6cb79abd4a5721b65b9a7dbed24378f8 ]

The Xen pv sound driver is not essential for booting. Set the respective
flag.

[boris: replace semicolon with comma]

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lore.kernel.org/r/20211022064800.14978-6-jgross@suse.com
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 sound/xen/xen_snd_front.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/xen/xen_snd_front.c b/sound/xen/xen_snd_front.c
index 2cb0a19be2b85..4041748c12e51 100644
--- a/sound/xen/xen_snd_front.c
+++ b/sound/xen/xen_snd_front.c
@@ -358,6 +358,7 @@ static struct xenbus_driver xen_driver = {
 	.probe = xen_drv_probe,
 	.remove = xen_drv_remove,
 	.otherend_changed = sndback_changed,
+	.not_essential = true,
 };
 
 static int __init xen_drv_init(void)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:49:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:49:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235192.408076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Rd-0003s9-Rd; Tue, 30 Nov 2021 14:49:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235192.408076; Tue, 30 Nov 2021 14:49:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Rd-0003s0-OC; Tue, 30 Nov 2021 14:49:21 +0000
Received: by outflank-mailman (input) for mailman id 235192;
 Tue, 30 Nov 2021 14:49:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4Rc-0003K0-ED
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:49:20 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b24571ba-51ec-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 15:49:19 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by sin.source.kernel.org (Postfix) with ESMTPS id 1C429CE1A4B;
 Tue, 30 Nov 2021 14:49:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2FE8C53FD1;
 Tue, 30 Nov 2021 14:49:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b24571ba-51ec-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283756;
	bh=XAjwUAiM/j8BKJZ3MPSJmE9O/lcstYIzLJvobanl0m4=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=uE1uv6JYjkcPsBKRy7xLaEF0adEj+lqBZYQSChZtob/Ne5au2lUksGcq2ssfSg7Jv
	 ggvVPc5Cfc1ZSIiV0fGblj4iZIdvvRE+XRJR6NPNC9Pe40Du9Sx7JJ7AaTHh0xRclM
	 PlbwdwBGytspLPOLmJOvE/ACWdXY3rZ415jPuclUlOtyG8yBHWa6dl8ZIAhvWVEq4N
	 lHEFGBaez49sCNB2QbCTrnsxPBFOCjHwTz+cZ5dMpc0hCs3SGlP6teB8kw/kYsGcBe
	 v0Q+Cn3pkrjhc1wEMgG9eJ+Sth/qmjabm9o6+3hQahwarqcT3qhH6rPCw8ND6a9eIk
	 d3cScjsrNK7iQ==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.15 51/68] xen: flag pvcalls-front to be not essential for system boot
Date: Tue, 30 Nov 2021 09:46:47 -0500
Message-Id: <20211130144707.944580-51-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130144707.944580-1-sashal@kernel.org>
References: <20211130144707.944580-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 03e143b2acebe23c893f22ebed9abc0fe2a7f27e ]

The Xen pvcalls device is not essential for booting. Set the respective
flag.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lore.kernel.org/r/20211022064800.14978-5-jgross@suse.com
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/pvcalls-front.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/xen/pvcalls-front.c b/drivers/xen/pvcalls-front.c
index 7984645b59563..3c9ae156b597f 100644
--- a/drivers/xen/pvcalls-front.c
+++ b/drivers/xen/pvcalls-front.c
@@ -1275,6 +1275,7 @@ static struct xenbus_driver pvcalls_front_driver = {
 	.probe = pvcalls_front_probe,
 	.remove = pvcalls_front_remove,
 	.otherend_changed = pvcalls_front_changed,
+	.not_essential = true,
 };
 
 static int __init pvcalls_frontend_init(void)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:49:29 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:49:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235191.408060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Ra-0003Nu-Lj; Tue, 30 Nov 2021 14:49:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235191.408060; Tue, 30 Nov 2021 14:49:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Ra-0003Ng-E4; Tue, 30 Nov 2021 14:49:18 +0000
Received: by outflank-mailman (input) for mailman id 235191;
 Tue, 30 Nov 2021 14:49:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4RZ-0003K0-TW
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:49:18 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b04cc086-51ec-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 15:49:16 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by sin.source.kernel.org (Postfix) with ESMTPS id D5B3BCE1A55;
 Tue, 30 Nov 2021 14:49:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE41BC53FD1;
 Tue, 30 Nov 2021 14:49:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b04cc086-51ec-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283750;
	bh=Gw5VQ3RYUXRNsUiATi1GYRmPBWdQxHeYZIBJlwYHLnY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=UbHT917w5sbc5FLhlCDUTHfQoevGT+ykC1Xo+FPPzepoU+mXmuKdP/4ZdrvLklWnN
	 Fpno/yBqaHqFKOzWTShzFU+yLtMEJ/j+6AlzyqBH+rnKltgIH+qFy3GXr6BmJ/TPwJ
	 26lDtMEu+fwn/KMzlzL+NDjRx8m03eT4AixbUZwAkbFjn6tdfHNBlYOANWpnMShDrQ
	 IUHvS74R0QDKEpCNlvylxSPXhxUvIAz8mjbz9rerpkCycITu4q+2MS/Gd46l4Aomcb
	 HsUO5JLlRuvqCLf05d1kkFIoLaLU4X59vRhcitSyIltcxxoEv7a/9QAW8M3iVZetRT
	 eHP6SUg86swfw==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	dmitry.torokhov@gmail.com,
	linux-input@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	linux-fbdev@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.15 48/68] xen: add "not_essential" flag to struct xenbus_driver
Date: Tue, 30 Nov 2021 09:46:44 -0500
Message-Id: <20211130144707.944580-48-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130144707.944580-1-sashal@kernel.org>
References: <20211130144707.944580-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 37a72b08a3e1eb28053214dd8211eb09c2fd3187 ]

When booting the xenbus driver will wait for PV devices to have
connected to their backends before continuing. The timeout is different
between essential and non-essential devices.

Non-essential devices are identified by their nodenames directly in the
xenbus driver, which requires to update this list in case a new device
type being non-essential is added (this was missed for several types
in the past).

In order to avoid this problem, add a "not_essential" flag to struct
xenbus_driver which can be set to "true" by the respective frontend.

Set this flag for the frontends currently regarded to be not essential
(vkbs and vfb) and use it for testing in the xenbus driver.

Signed-off-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20211022064800.14978-2-jgross@suse.com
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/input/misc/xen-kbdfront.c          |  1 +
 drivers/video/fbdev/xen-fbfront.c          |  1 +
 drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
 include/xen/xenbus.h                       |  1 +
 4 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/input/misc/xen-kbdfront.c b/drivers/input/misc/xen-kbdfront.c
index 4ff5cd2a6d8de..3d17a0b3fe511 100644
--- a/drivers/input/misc/xen-kbdfront.c
+++ b/drivers/input/misc/xen-kbdfront.c
@@ -542,6 +542,7 @@ static struct xenbus_driver xenkbd_driver = {
 	.remove = xenkbd_remove,
 	.resume = xenkbd_resume,
 	.otherend_changed = xenkbd_backend_changed,
+	.not_essential = true,
 };
 
 static int __init xenkbd_init(void)
diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
index 5ec51445bee88..6826f986da436 100644
--- a/drivers/video/fbdev/xen-fbfront.c
+++ b/drivers/video/fbdev/xen-fbfront.c
@@ -695,6 +695,7 @@ static struct xenbus_driver xenfb_driver = {
 	.remove = xenfb_remove,
 	.resume = xenfb_resume,
 	.otherend_changed = xenfb_backend_changed,
+	.not_essential = true,
 };
 
 static int __init xenfb_init(void)
diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
index 480944606a3c9..07b010a68fcf9 100644
--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -211,19 +211,11 @@ static int is_device_connecting(struct device *dev, void *data, bool ignore_none
 	if (drv && (dev->driver != drv))
 		return 0;
 
-	if (ignore_nonessential) {
-		/* With older QEMU, for PVonHVM guests the guest config files
-		 * could contain: vfb = [ 'vnc=1, vnclisten=0.0.0.0']
-		 * which is nonsensical as there is no PV FB (there can be
-		 * a PVKB) running as HVM guest. */
+	xendrv = to_xenbus_driver(dev->driver);
 
-		if ((strncmp(xendev->nodename, "device/vkbd", 11) == 0))
-			return 0;
+	if (ignore_nonessential && xendrv->not_essential)
+		return 0;
 
-		if ((strncmp(xendev->nodename, "device/vfb", 10) == 0))
-			return 0;
-	}
-	xendrv = to_xenbus_driver(dev->driver);
 	return (xendev->state < XenbusStateConnected ||
 		(xendev->state == XenbusStateConnected &&
 		 xendrv->is_ready && !xendrv->is_ready(xendev)));
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index b94074c827721..b13eb86395e05 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -112,6 +112,7 @@ struct xenbus_driver {
 	const char *name;       /* defaults to ids[0].devicetype */
 	const struct xenbus_device_id *ids;
 	bool allow_rebind; /* avoid setting xenstore closed during remove */
+	bool not_essential;     /* is not mandatory for boot progress */
 	int (*probe)(struct xenbus_device *dev,
 		     const struct xenbus_device_id *id);
 	void (*otherend_changed)(struct xenbus_device *dev,
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:49:30 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:49:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235190.408054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Ra-0003KM-8w; Tue, 30 Nov 2021 14:49:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235190.408054; Tue, 30 Nov 2021 14:49:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Ra-0003KE-5T; Tue, 30 Nov 2021 14:49:18 +0000
Received: by outflank-mailman (input) for mailman id 235190;
 Tue, 30 Nov 2021 14:49:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4RY-0003K0-F7
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:49:16 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af9d5fb7-51ec-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 15:49:15 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id 724CEB81A2E;
 Tue, 30 Nov 2021 14:49:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34F2AC53FD0;
 Tue, 30 Nov 2021 14:49:11 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af9d5fb7-51ec-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283752;
	bh=hT3aGfUZtBFN7mjve8TZ4k4c9lSYCLKWOPLX7f4q8tc=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=geZ+47HHdWTz21zPbCanXvm4heCBScEJvStN+tjdivUFTLWZU/rj2rKKn5qXR6msT
	 mesrYI4vEK83SKu7a/KZBdoHfQJ5XWjNzZIo5M1CzXcUZhnEENpzfAOIZYeAJlGJ9d
	 zRZgDyiLA5/9IxKk6juzT5sjnwKlnLHMZPDXCWjp2+l95XSa0lwZFyW0G6AcbEhQ8l
	 M3sfOgya70Da4E2K/Gfy+9yVaL36UMgUeaMxWIGkjSLa9n+2t8H/bS3Embo41VnlLu
	 svbxB4ixe7Da5iYv0BO/ozcEi0TMpETlRRElpJBXuZFpzGwu9TjVrXwx+j38aXYaDH
	 ON75XRjcRoCZg==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	airlied@linux.ie,
	daniel@ffwll.ch,
	dri-devel@lists.freedesktop.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.15 49/68] xen: flag xen_drm_front to be not essential for system boot
Date: Tue, 30 Nov 2021 09:46:45 -0500
Message-Id: <20211130144707.944580-49-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130144707.944580-1-sashal@kernel.org>
References: <20211130144707.944580-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 1c669938c31b6e2a0d5149c3c6257ca9df6cb100 ]

Similar to the virtual frame buffer (vfb) the pv display driver is not
essential for booting the system. Set the respective flag.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lore.kernel.org/r/20211022064800.14978-3-jgross@suse.com
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/gpu/drm/xen/xen_drm_front.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
index 9f14d99c763c2..bc7605324db39 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -773,6 +773,7 @@ static struct xenbus_driver xen_driver = {
 	.probe = xen_drv_probe,
 	.remove = xen_drv_remove,
 	.otherend_changed = displback_changed,
+	.not_essential = true,
 };
 
 static int __init xen_drv_init(void)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:51:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:51:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235207.408097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4TC-0006M3-Gj; Tue, 30 Nov 2021 14:50:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235207.408097; Tue, 30 Nov 2021 14:50:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4TC-0006Lw-Dc; Tue, 30 Nov 2021 14:50:58 +0000
Received: by outflank-mailman (input) for mailman id 235207;
 Tue, 30 Nov 2021 14:50:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4TA-0003Jn-Tj
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:50:56 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ec16c7bb-51ec-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:50:56 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id 780B5B81A4A;
 Tue, 30 Nov 2021 14:50:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6542FC53FC1;
 Tue, 30 Nov 2021 14:50:54 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec16c7bb-51ec-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283855;
	bh=4OtE2dM98jInvKHYbv2vgmbGTZc8pVzG0y2HACN8IIk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=VvsjJAPpdx4OQNhgM6cwY+asKgHZBuw8Vy3CCWIe2gj+b7wIzennnYYofKDU/fXuN
	 Kr5JI8MIsl0R+60RGxo5X73yZ/L3kLhu5Q/keTyZzq6BvkvpVraRQTtcTKSB8uL05f
	 KbAqelGmMbzKVmS8+mJGfkR0v2eo5Tclu2MFlwCsPDq5iJhD4ui7w9QZ4NFF+wvkP0
	 sCXtsBZ3vqyape+3shRE3RSCYdo9wTz6LAfE7b93DjfK2/c7KtLmBYjaYt8s6HFsDA
	 ATqPJJ5rljmzC+lhuzlTQb/i79dEcACGK57o9glbslhZN4ws+6Qehl/SfmLUFKC7Tb
	 TEq4mu4rzZktg==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>,
	Jan Beulich <jbeulich@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.10 11/43] xen/privcmd: make option visible in Kconfig
Date: Tue, 30 Nov 2021 09:49:48 -0500
Message-Id: <20211130145022.945517-11-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130145022.945517-1-sashal@kernel.org>
References: <20211130145022.945517-1-sashal@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 897919ad8b42eb8222553838ab82414a924694aa ]

This configuration option provides a misc device as an API to userspace.
Make this API usable without having to select the module as a transitive
dependency.

This also fixes an issue where localyesconfig would select
CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
building as module.

[boris: clarified help message per Jan's suggestion]

Based-on-patch-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20211116143323.18866-1-jgross@suse.com
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index ea0efd290c372..98a3b702373aa 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -234,9 +234,15 @@ config XEN_SCSI_BACKEND
 	  if guests need generic access to SCSI devices.
 
 config XEN_PRIVCMD
-	tristate
+	tristate "Xen hypercall passthrough driver"
 	depends on XEN
 	default m
+	help
+	  The hypercall passthrough driver allows privileged user programs to
+	  perform Xen hypercalls. This driver is normally required for systems
+	  running as Dom0 to perform privileged operations, but in some
+	  disaggregated Xen setups this driver might be needed for other
+	  domains, too.
 
 config XEN_STUB
 	bool "Xen stub drivers"
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:53:04 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:53:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235210.408109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4V6-00075e-3y; Tue, 30 Nov 2021 14:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235210.408109; Tue, 30 Nov 2021 14:52:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4V5-00075X-VQ; Tue, 30 Nov 2021 14:52:55 +0000
Received: by outflank-mailman (input) for mailman id 235210;
 Tue, 30 Nov 2021 14:52:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4V5-00074e-Bl
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:52:55 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32ab10d1-51ed-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 15:52:54 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id DAEA6B81A46;
 Tue, 30 Nov 2021 14:52:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9E30C53FCF;
 Tue, 30 Nov 2021 14:52:51 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32ab10d1-51ed-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283972;
	bh=JsgGG7B/KqUw9wC6FuWxsYS1GzJZsMvRNcihS8b7emg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=ps6YoDk9Malc2RTmPV8tiInFK6roUOEao7cv6ORRWMZ34IbwT+ByvKsOnzhbEmltV
	 gZ+ye2yaViIXwz8kWm1Vo31sZlvg0DAr/BoXQLqIXQ3YxUpIdslW8Kos0JWW9J0w18
	 LDcf+MkcuFZIzFYq3est6yUM992IiuZhCmJY5/rNaWyWuwKMIAT2T5h3kuXXsety5z
	 Nin0msv+YGP/2gYtJavQtzVrzjZzupenjft8pcwYIUUHaItE+L+yz1JMODilgwoqe+
	 3ba+NhXCslRxnvGn/aJ+fmvlxiFrazh3vFLgr7x/6iu7hycdnvUqhgv1MTtfLDQYet
	 cOl0OrUB1pxGw==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>,
	Jan Beulich <jbeulich@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 4.19 04/17] xen/privcmd: make option visible in Kconfig
Date: Tue, 30 Nov 2021 09:52:28 -0500
Message-Id: <20211130145243.946407-4-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130145243.946407-1-sashal@kernel.org>
References: <20211130145243.946407-1-sashal@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 897919ad8b42eb8222553838ab82414a924694aa ]

This configuration option provides a misc device as an API to userspace.
Make this API usable without having to select the module as a transitive
dependency.

This also fixes an issue where localyesconfig would select
CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
building as module.

[boris: clarified help message per Jan's suggestion]

Based-on-patch-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20211116143323.18866-1-jgross@suse.com
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index 0505eeb593b5c..8e4fff3cbaf0e 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -258,9 +258,15 @@ config XEN_SCSI_BACKEND
 	  if guests need generic access to SCSI devices.
 
 config XEN_PRIVCMD
-	tristate
+	tristate "Xen hypercall passthrough driver"
 	depends on XEN
 	default m
+	help
+	  The hypercall passthrough driver allows privileged user programs to
+	  perform Xen hypercalls. This driver is normally required for systems
+	  running as Dom0 to perform privileged operations, but in some
+	  disaggregated Xen setups this driver might be needed for other
+	  domains, too.
 
 config XEN_STUB
 	bool "Xen stub drivers"
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:53:24 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:53:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235213.408120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4VY-0007dJ-Aq; Tue, 30 Nov 2021 14:53:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235213.408120; Tue, 30 Nov 2021 14:53:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4VY-0007dA-7b; Tue, 30 Nov 2021 14:53:24 +0000
Received: by outflank-mailman (input) for mailman id 235213;
 Tue, 30 Nov 2021 14:53:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4VX-00074e-4h
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:53:23 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4399c79d-51ed-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 15:53:22 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id 4A65BB81A42;
 Tue, 30 Nov 2021 14:53:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6DC1EC53FC1;
 Tue, 30 Nov 2021 14:53:20 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4399c79d-51ed-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638284001;
	bh=t0G2cgW1LPpprxJZ/0W2KP52yUnj9+CTZKIZjqqqsrk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=jEWQn4UtoqFbfDy31p4WWBSWgJvHkbJOLydnqpN6GvKqHzPP5n+56TKj1h4+Raqu9
	 cVgnQ9EOHXZZlBbcrjS8ZT8aT2TgNiTkCOaBOGSIqojDA/U9mG9aPhtmknvlsT9PaC
	 74QgcVBPq7VTXZzMCsS36DYNI/7WPk8MJuZFPUiG8v73m5z4u1x1O9BF4XjDoJg719
	 +yg3Oi/xz/k1TyhcAavY63L/2+reOdX6u1EsnqG5ZhI7HTIgdIZz5xkdzk/66O/605
	 3bnvS5Kz776rElS79yRuFsNrGYehbbTwAbYbUFtaT+XtAQCAQZAAi7ncGFKquYwg+r
	 1/Uh1+1s4GEtQ==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>,
	Jan Beulich <jbeulich@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 4.14 02/14] xen/privcmd: make option visible in Kconfig
Date: Tue, 30 Nov 2021 09:53:03 -0500
Message-Id: <20211130145317.946676-2-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130145317.946676-1-sashal@kernel.org>
References: <20211130145317.946676-1-sashal@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 897919ad8b42eb8222553838ab82414a924694aa ]

This configuration option provides a misc device as an API to userspace.
Make this API usable without having to select the module as a transitive
dependency.

This also fixes an issue where localyesconfig would select
CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
building as module.

[boris: clarified help message per Jan's suggestion]

Based-on-patch-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20211116143323.18866-1-jgross@suse.com
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index 30187b86729bb..818e4809c2a54 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -218,9 +218,15 @@ config XEN_SCSI_BACKEND
 	  if guests need generic access to SCSI devices.
 
 config XEN_PRIVCMD
-	tristate
+	tristate "Xen hypercall passthrough driver"
 	depends on XEN
 	default m
+	help
+	  The hypercall passthrough driver allows privileged user programs to
+	  perform Xen hypercalls. This driver is normally required for systems
+	  running as Dom0 to perform privileged operations, but in some
+	  disaggregated Xen setups this driver might be needed for other
+	  domains, too.
 
 config XEN_STUB
 	bool "Xen stub drivers"
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:53:54 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:53:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235216.408131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4W2-0008CM-Im; Tue, 30 Nov 2021 14:53:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235216.408131; Tue, 30 Nov 2021 14:53:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4W2-0008CF-Fq; Tue, 30 Nov 2021 14:53:54 +0000
Received: by outflank-mailman (input) for mailman id 235216;
 Tue, 30 Nov 2021 14:53:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4W1-0007R0-7c
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:53:53 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54cec185-51ed-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:53:52 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by sin.source.kernel.org (Postfix) with ESMTPS id 4D409CE1A7A;
 Tue, 30 Nov 2021 14:53:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08D3EC53FD0;
 Tue, 30 Nov 2021 14:53:44 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54cec185-51ed-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638284025;
	bh=ZK02DqHmVPKJFN75jdMuswmo5c0dgylhn9mN1ZGK8lU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=aKTSMWnNBJBbQUZCqiYQ9kMNhuZmrRV0gDxm85nt3oOEdAbbxRjjJzG/anoqX/R2F
	 Hxq/yRlsxXzRBBT4tZAD3ZapFZU1VFf+aKuWWkpH0sudNktHXPBziM8aU2JXUcXbL8
	 RkShgx0WERgo7fdBqbnKmHf+sTMcYqM5c/tXPnlUlZtXsTtXv65tSdfN1ky+EAYp4o
	 e1mAZvXjJhLa+fGDSynzwHCkM5nejs0mlURH8MLK6FWzFWUTNhNUlc6OKMDOXObjvK
	 a34002JmdK4VVu6HcGQVa6IOCp4ZH2CVyFhT3XVI6YguCBgih7YvQ0hqqnBH554/N+
	 7p8HQtppI2RaQ==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>,
	Jan Beulich <jbeulich@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 4.9 02/12] xen/privcmd: make option visible in Kconfig
Date: Tue, 30 Nov 2021 09:53:30 -0500
Message-Id: <20211130145341.946891-2-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130145341.946891-1-sashal@kernel.org>
References: <20211130145341.946891-1-sashal@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 897919ad8b42eb8222553838ab82414a924694aa ]

This configuration option provides a misc device as an API to userspace.
Make this API usable without having to select the module as a transitive
dependency.

This also fixes an issue where localyesconfig would select
CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
building as module.

[boris: clarified help message per Jan's suggestion]

Based-on-patch-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20211116143323.18866-1-jgross@suse.com
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index 98b8f32053229..6ae96c12b8819 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -206,9 +206,15 @@ config XEN_SCSI_BACKEND
 	  if guests need generic access to SCSI devices.
 
 config XEN_PRIVCMD
-	tristate
+	tristate "Xen hypercall passthrough driver"
 	depends on XEN
 	default m
+	help
+	  The hypercall passthrough driver allows privileged user programs to
+	  perform Xen hypercalls. This driver is normally required for systems
+	  running as Dom0 to perform privileged operations, but in some
+	  disaggregated Xen setups this driver might be needed for other
+	  domains, too.
 
 config XEN_STUB
 	bool "Xen stub drivers"
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:54:13 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:54:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235220.408141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4WF-0000DU-R7; Tue, 30 Nov 2021 14:54:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235220.408141; Tue, 30 Nov 2021 14:54:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4WF-0000DM-O4; Tue, 30 Nov 2021 14:54:07 +0000
Received: by outflank-mailman (input) for mailman id 235220;
 Tue, 30 Nov 2021 14:54:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4WD-0007R0-VJ
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:54:05 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d14c251-51ed-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:54:05 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id 0F817B81A46;
 Tue, 30 Nov 2021 14:54:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 033AAC53FC1;
 Tue, 30 Nov 2021 14:54:03 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d14c251-51ed-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638284044;
	bh=a3uz0IJyj8SniB2opKJ04Vx2hKXu1OLTWs+GDsbDHmA=;
	h=From:To:Cc:Subject:Date:From;
	b=ouMuOhfX05mFao2bqxElSiFk/QVZb138iHstl8qNcYfEX9VhczJjybHIoN2BrJVaS
	 J76iSQHz88OCPWcmNGi4gqSEtuhaWgRm9QOBcMcGfZql0Cy0zAvBdvo26kbzcxggf8
	 Fepi7SDqJOMGCuxInIcziW52MtlqCyHZjwOjA80bxEM7AZV05cbSuG7FHInK8Xv7AV
	 ELU9ZJ/Vq76yssNtB1eztWJSTutg4dIxcWAHa5ehrc3W4UhgQpqxWaPzmiISamO/FD
	 6BlQRt+q5cQdl4GJ1P0zaTOvu1h3nTDysTknPKSuoB+7r11ASnbLnkiD7YkvncsQIm
	 4B31JXFFnk4aQ==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>,
	Jan Beulich <jbeulich@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 4.4 1/9] xen/privcmd: make option visible in Kconfig
Date: Tue, 30 Nov 2021 09:53:54 -0500
Message-Id: <20211130145402.947049-1-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 897919ad8b42eb8222553838ab82414a924694aa ]

This configuration option provides a misc device as an API to userspace.
Make this API usable without having to select the module as a transitive
dependency.

This also fixes an issue where localyesconfig would select
CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
building as module.

[boris: clarified help message per Jan's suggestion]

Based-on-patch-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20211116143323.18866-1-jgross@suse.com
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index 3a14948269b1e..59f862350a6ec 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -199,9 +199,15 @@ config XEN_SCSI_BACKEND
 	  if guests need generic access to SCSI devices.
 
 config XEN_PRIVCMD
-	tristate
+	tristate "Xen hypercall passthrough driver"
 	depends on XEN
 	default m
+	help
+	  The hypercall passthrough driver allows privileged user programs to
+	  perform Xen hypercalls. This driver is normally required for systems
+	  running as Dom0 to perform privileged operations, but in some
+	  disaggregated Xen setups this driver might be needed for other
+	  domains, too.
 
 config XEN_STUB
 	bool "Xen stub drivers"
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:56:42 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:56:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235227.408153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Ye-00012r-A2; Tue, 30 Nov 2021 14:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235227.408153; Tue, 30 Nov 2021 14:56:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4Ye-00012k-6i; Tue, 30 Nov 2021 14:56:36 +0000
Received: by outflank-mailman (input) for mailman id 235227;
 Tue, 30 Nov 2021 14:56:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms4Yd-00012e-20
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:56:35 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b43b5bd8-51ed-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:56:32 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:34590)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms4YZ-000uyL-7P (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 14:56:31 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 25CCA1FC54;
 Tue, 30 Nov 2021 14:56:31 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b43b5bd8-51ed-11ec-976b-d102b41d0961
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <4cc50987-62e2-20b2-b391-786fea4bdbd2@srcf.net>
Date: Tue, 30 Nov 2021 14:56:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 4/8] x86/mm: Drop bogus cacheability logic in
 update_xen_mappings()
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <20211130100445.31156-1-andrew.cooper3@citrix.com>
 <20211130100445.31156-5-andrew.cooper3@citrix.com>
 <0e4ce9d7-d13b-7709-c983-d61995153883@srcf.net>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <0e4ce9d7-d13b-7709-c983-d61995153883@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/11/2021 13:11, Andrew Cooper wrote:
> On 30/11/2021 10:04, Andrew Cooper wrote:
>> There is no circumstance under which any part of the Xen image in memory wants
>> to have any cacheability other than Write Back.
>>
>> Furthermore, unmapping random pieces of Xen like that comes with a non-trivial
>> risk of a Triple Fault, or other fatal condition.  Even if it appears to work,
>> an NMI or interrupt as a far wider reach into Xen mappings than calling
>> map_pages_to_xen() thrice.
>>
>> Simplfy the safety checking to a BUG_ON().  It is substantially more correct
>> and robust than following either of the unlikely(alias) paths.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Wei Liu <wl@xen.org>
>>
>> I'm half tempted to drop the check entirely, but in that case it would be
>> better to inline the result into the two callers.
>> ---
>>  xen/arch/x86/mm.c | 21 +++++++++------------
>>  1 file changed, 9 insertions(+), 12 deletions(-)
>>
>> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
>> index 4d799032dc82..9bd4e5cc1d2f 100644
>> --- a/xen/arch/x86/mm.c
>> +++ b/xen/arch/x86/mm.c
>> @@ -785,24 +785,21 @@ bool is_iomem_page(mfn_t mfn)
>>  
>>  static int update_xen_mappings(unsigned long mfn, unsigned int cacheattr)
>>  {
>> -    int err = 0;
>>      bool alias = mfn >= PFN_DOWN(xen_phys_start) &&
>>           mfn < PFN_UP(xen_phys_start + xen_virt_end - XEN_VIRT_START);
>> -    unsigned long xen_va =
>> -        XEN_VIRT_START + ((mfn - PFN_DOWN(xen_phys_start)) << PAGE_SHIFT);
>> +
>> +    /*
>> +     * Something is catastrophically broken if someone is trying to change the
>> +     * cacheability of Xen in memory...
>> +     */
>> +    BUG_ON(alias);
>>  
>>      if ( boot_cpu_has(X86_FEATURE_XEN_SELFSNOOP) )
>>          return 0;
>>  
>> -    if ( unlikely(alias) && cacheattr )
>> -        err = map_pages_to_xen(xen_va, _mfn(mfn), 1, 0);
>> -    if ( !err )
>> -        err = map_pages_to_xen((unsigned long)mfn_to_virt(mfn), _mfn(mfn), 1,
>> -                     PAGE_HYPERVISOR | cacheattr_to_pte_flags(cacheattr));
>> -    if ( unlikely(alias) && !cacheattr && !err )
>> -        err = map_pages_to_xen(xen_va, _mfn(mfn), 1, PAGE_HYPERVISOR);
>> -
>> -    return err;
>> +    return map_pages_to_xen(
>> +        (unsigned long)mfn_to_virt(mfn), _mfn(mfn), 1,
>> +        PAGE_HYPERVISOR | cacheattr_to_pte_flags(cacheattr));
> In light of the discussion on patch 1, this is no longer safe.  The
> alias calculation includes 2M of arbitrary guest memory, and in
> principle there are legitimate reasons for a guest to want to map RAM as
> WC (e.g. GPU pagetables) or in the future, WP (in place RAM
> encryption/decryption).
>
> The gross hack fix would be "mfn >= PFN_DOWN(xen_phys_start + MB(2))",
> but but this is screaming for a helper.  xen_in_range() is part-way
> there, but is an O(n) loop over the regions.

Further problems.  There is also the init section in the middle of Xen
which contains arbitrary guest memory.  The old algorithm was worse for
that, because it would reinstate the nuked init mappings.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:57:28 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:57:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235230.408164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4ZU-0001bG-K4; Tue, 30 Nov 2021 14:57:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235230.408164; Tue, 30 Nov 2021 14:57:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4ZU-0001b9-GH; Tue, 30 Nov 2021 14:57:28 +0000
Received: by outflank-mailman (input) for mailman id 235230;
 Tue, 30 Nov 2021 14:57:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms4ZT-0001b1-LQ
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:57:27 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3ec4f91-51ed-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 15:57:26 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:50476)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms4ZP-000kmP-hp (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 14:57:23 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 57E291FC54;
 Tue, 30 Nov 2021 14:57:23 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3ec4f91-51ed-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <036ecf0f-02a2-feb2-9ce8-75cc66c46f8b@srcf.net>
Date: Tue, 30 Nov 2021 14:57:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, Tamas K Lengyel <tamas@tklengyel.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <9fd8ba19-9744-fa50-1afb-15fae8955cac@suse.com>
 <17b42cc5-1979-f977-7c2e-a59fc97f87ea@srcf.net>
 <30b2711a-de67-ca15-e8a8-a4c8b962e620@suse.com>
 <34c9551c-4e60-8472-15ce-fa14076cf393@srcf.net>
 <f651c62e-65ee-1d82-843b-0c453c38f7b5@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] x86/HVM: convert most remaining hvm_funcs hook
 invocations to alt-call
In-Reply-To: <f651c62e-65ee-1d82-843b-0c453c38f7b5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/11/2021 14:32, Jan Beulich wrote:
> On 30.11.2021 15:25, Andrew Cooper wrote:
>> On 30/11/2021 14:03, Jan Beulich wrote:
>>> On 30.11.2021 14:48, Andrew Cooper wrote:
>>>> On 29/11/2021 09:04, Jan Beulich wrote:
>>>>> The aim being to have as few indirect calls as possible (see [1]),
>>>>> whereas during initial conversion performance was the main aspect and
>>>>> hence rarely used hooks didn't get converted. Apparently one use of
>>>>> get_interrupt_shadow() was missed at the time.
>>>>>
>>>>> While I've intentionally left alone the cpu_{up,down}() etc hooks for
>>>>> not being guest reachable, the nhvm_hap_walk_L1_p2m() one can't
>>>>> currently be converted as the framework supports only up to 6 arguments.
>>>>> Down the road the three booleans perhaps want folding into a single
>>>>> parameter/argument.
>>>> To use __initdata_cf_clobber, all hooks need to use altcall().
>>> Right, but that's not going to be sufficient: The data members then also
>>> need to move elsewhere, aiui.
>> Nope.  It is safe for data members to stay.
> But then it can't be in .init.data, can it?

Very good point.  I'll need to reconsider that plan then.

>>>> There is also an open question on how to cope with things such as the
>>>> TSC scaling hooks, which are only conditionally set in {vmx,svm}_hvm_funcs.
>>> Why's that an open question? The requirement is that the pointers be
>>> set before the 2nd pass of alternatives patching (it's really just
>>> one: setup()). That's already the case, or else the hook couldn't be
>>> invoked via altcall. And that's also not the only hook getting set
>>> dynamically.
>> This was in reference to cf_clobber, not altcall().
>>
>> If the conditional hooks aren't added into {vmx,svm}_hvm_funcs, then the
>> clobbering loop can't find them.
> Oh, I see. Which simple means the clobbering loop shouldn't run
> meaningfully earlier than the 2nd pass of patching.
>
>>>>   However...
>>>>
>>>>> [1] https://lists.xen.org/archives/html/xen-devel/2021-11/msg01822.html
>>>>> ---
>>>>> Another candidate for dropping the conditional would be
>>>>> .enable_msr_interception(), but this would then want the wrapper to also
>>>>> return void (hence perhaps better done separately).
>>>> I think that's a side effect of Intel support being added first, and
>>>> then an incomplete attempt to add AMD support.
>>>>
>>>> Seeing as support isn't disappearing, I'd be in favour of reducing it to
>>>> void.  The sole caller already doesn't check the return value.
>>>>
>>>>
>>>> If I do a prep series sorting out nhvm_hap_walk_L1_p2m() and
>>>> enable_msr_interception(), would you be happy rebasing this patch and
>>>> adjusting every caller, including cpu_up/down() ?
>>> Sure. I don't think cleaning up enable_msr_interception() is a prereq
>>> though. The potential for doing so was merely an observation while
>>> going through the hook uses.
>> Yeah, I suppose that one can be a followup.
>>
>>> With it not being sufficient to convert the remaining hook invocations
>>> and with the patch already being quite large, I wonder though whether
>>> it wouldn't make sense to make further conversions the subject of a
>>> fresh patch. I could commit this one then with your R-b (and further
>>> acks, once they have trickled in) once the tree is fully open again.
>> Honestly, this is legitimately "tree-wide".  While the patch is already
>> large, 3 extra hooks (on top of a fix for nhvm_hap_walk_L1_p2m()) is
>> mechanical, and probably easier than two patches.
> Okay, I'll wait for your change then and re-base on top.

Thanks.  I'll get them posted, and then we can decide exactly what to do.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:58:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:58:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235238.408174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4aF-0002Jm-1h; Tue, 30 Nov 2021 14:58:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235238.408174; Tue, 30 Nov 2021 14:58:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4aE-0002Jf-Uw; Tue, 30 Nov 2021 14:58:14 +0000
Received: by outflank-mailman (input) for mailman id 235238;
 Tue, 30 Nov 2021 14:58:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4Tu-0003Jn-KO
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:51:42 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0799e548-51ed-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:51:41 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id A0308B81A25;
 Tue, 30 Nov 2021 14:51:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E356C53FC1;
 Tue, 30 Nov 2021 14:51:39 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0799e548-51ed-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283900;
	bh=PfM6ae6GNFZCEw4a4VjeDB12qCeaG+vd7Sf6HSh7xCQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=M/XZ9QWX3+5gNGC7IsMT4I+34yJzwGQQEjwZt3AjKosHkaiS5c6LY4gEpx+ivvYj7
	 ySpQbrdVfc0cIHsOmIKAtJrVsv92do1onq9YXAz2ONLmrJcPzt7Wakla9FjrO4IuZ6
	 hzxT/ScncraPhpiOvJ6jQdTQpK0jr29RDydVRUQ738Qt1bogN0hXqNoxWQwZXujfPr
	 cZ7RxSdGtTK2vUgY/9HO78AQ/lSPMwpu0jgpv+D6b5RssSKPbsSe20iVY7aLyJM3K7
	 zXBsFgvEb0ISIr9UfRzozPl5+1HIEBpdA7sxWulHSjwHqcwcufh9a14T1CrBffEA/v
	 gteKp2H2/J9nw==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	dmitry.torokhov@gmail.com,
	linux-input@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	linux-fbdev@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.10 34/43] xen: add "not_essential" flag to struct xenbus_driver
Date: Tue, 30 Nov 2021 09:50:11 -0500
Message-Id: <20211130145022.945517-34-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130145022.945517-1-sashal@kernel.org>
References: <20211130145022.945517-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 37a72b08a3e1eb28053214dd8211eb09c2fd3187 ]

When booting the xenbus driver will wait for PV devices to have
connected to their backends before continuing. The timeout is different
between essential and non-essential devices.

Non-essential devices are identified by their nodenames directly in the
xenbus driver, which requires to update this list in case a new device
type being non-essential is added (this was missed for several types
in the past).

In order to avoid this problem, add a "not_essential" flag to struct
xenbus_driver which can be set to "true" by the respective frontend.

Set this flag for the frontends currently regarded to be not essential
(vkbs and vfb) and use it for testing in the xenbus driver.

Signed-off-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20211022064800.14978-2-jgross@suse.com
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/input/misc/xen-kbdfront.c          |  1 +
 drivers/video/fbdev/xen-fbfront.c          |  1 +
 drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
 include/xen/xenbus.h                       |  1 +
 4 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/input/misc/xen-kbdfront.c b/drivers/input/misc/xen-kbdfront.c
index 4ff5cd2a6d8de..3d17a0b3fe511 100644
--- a/drivers/input/misc/xen-kbdfront.c
+++ b/drivers/input/misc/xen-kbdfront.c
@@ -542,6 +542,7 @@ static struct xenbus_driver xenkbd_driver = {
 	.remove = xenkbd_remove,
 	.resume = xenkbd_resume,
 	.otherend_changed = xenkbd_backend_changed,
+	.not_essential = true,
 };
 
 static int __init xenkbd_init(void)
diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
index 5ec51445bee88..6826f986da436 100644
--- a/drivers/video/fbdev/xen-fbfront.c
+++ b/drivers/video/fbdev/xen-fbfront.c
@@ -695,6 +695,7 @@ static struct xenbus_driver xenfb_driver = {
 	.remove = xenfb_remove,
 	.resume = xenfb_resume,
 	.otherend_changed = xenfb_backend_changed,
+	.not_essential = true,
 };
 
 static int __init xenfb_init(void)
diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
index 480944606a3c9..07b010a68fcf9 100644
--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -211,19 +211,11 @@ static int is_device_connecting(struct device *dev, void *data, bool ignore_none
 	if (drv && (dev->driver != drv))
 		return 0;
 
-	if (ignore_nonessential) {
-		/* With older QEMU, for PVonHVM guests the guest config files
-		 * could contain: vfb = [ 'vnc=1, vnclisten=0.0.0.0']
-		 * which is nonsensical as there is no PV FB (there can be
-		 * a PVKB) running as HVM guest. */
+	xendrv = to_xenbus_driver(dev->driver);
 
-		if ((strncmp(xendev->nodename, "device/vkbd", 11) == 0))
-			return 0;
+	if (ignore_nonessential && xendrv->not_essential)
+		return 0;
 
-		if ((strncmp(xendev->nodename, "device/vfb", 10) == 0))
-			return 0;
-	}
-	xendrv = to_xenbus_driver(dev->driver);
 	return (xendev->state < XenbusStateConnected ||
 		(xendev->state == XenbusStateConnected &&
 		 xendrv->is_ready && !xendrv->is_ready(xendev)));
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index bf3cfc7c35d0b..b5626edda6f5b 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -106,6 +106,7 @@ struct xenbus_driver {
 	const char *name;       /* defaults to ids[0].devicetype */
 	const struct xenbus_device_id *ids;
 	bool allow_rebind; /* avoid setting xenstore closed during remove */
+	bool not_essential;     /* is not mandatory for boot progress */
 	int (*probe)(struct xenbus_device *dev,
 		     const struct xenbus_device_id *id);
 	void (*otherend_changed)(struct xenbus_device *dev,
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:58:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:58:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235241.408185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4aG-0002aR-9Y; Tue, 30 Nov 2021 14:58:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235241.408185; Tue, 30 Nov 2021 14:58:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4aG-0002aK-6B; Tue, 30 Nov 2021 14:58:16 +0000
Received: by outflank-mailman (input) for mailman id 235241;
 Tue, 30 Nov 2021 14:58:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4U0-0003Jn-VM
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:51:48 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b6bcd37-51ed-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:51:48 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ams.source.kernel.org (Postfix) with ESMTPS id ECA4BB81A50;
 Tue, 30 Nov 2021 14:51:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8A00C53FCF;
 Tue, 30 Nov 2021 14:51:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b6bcd37-51ed-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283907;
	bh=0NDsr83+EogaVnAmGrqnMsG/gXmouT8EdiQm/ybL3W8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=ZNrxbFLpfQzrGO7YcILMDjm/6TBS1uY4hZp3ev/dkHKKt2OrdGH+Dvw9gQ7JfSeW+
	 0ZTH42p1yyKgu0m0A+TOG3ritbyUc2ekR87EwZhW71fR7am5DOoCxn5xYngFtXa73K
	 HlGxElJCmWrDL55Hckac39r0x/HlHuN8dV7uxlcMMaD2nd/0CdTZZG+TvAhtYxMeaJ
	 TdjX+QQWEsytomB8ReY56fGBnRWAJdVSW1AUXwLljAFm0S3sKqVPbXoMrKpPbNRhUR
	 rt7tR3/rUJp3eztFbJS/dd1pzFLhrEvpQursvSWqXVG9/c+8X3pEAGvKbyAeLjtLT4
	 jMMxWsymbVTtQ==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	perex@perex.cz,
	tiwai@suse.com,
	xen-devel@lists.xenproject.org,
	alsa-devel@alsa-project.org
Subject: [PATCH AUTOSEL 5.10 38/43] xen: flag xen_snd_front to be not essential for system boot
Date: Tue, 30 Nov 2021 09:50:15 -0500
Message-Id: <20211130145022.945517-38-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130145022.945517-1-sashal@kernel.org>
References: <20211130145022.945517-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit de6da33e6cb79abd4a5721b65b9a7dbed24378f8 ]

The Xen pv sound driver is not essential for booting. Set the respective
flag.

[boris: replace semicolon with comma]

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lore.kernel.org/r/20211022064800.14978-6-jgross@suse.com
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 sound/xen/xen_snd_front.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/xen/xen_snd_front.c b/sound/xen/xen_snd_front.c
index 228d820312973..33ebba73f6c08 100644
--- a/sound/xen/xen_snd_front.c
+++ b/sound/xen/xen_snd_front.c
@@ -358,6 +358,7 @@ static struct xenbus_driver xen_driver = {
 	.probe = xen_drv_probe,
 	.remove = xen_drv_remove,
 	.otherend_changed = sndback_changed,
+	.not_essential = true,
 };
 
 static int __init xen_drv_init(void)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 14:58:40 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 14:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235245.408196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4ae-0003PM-K5; Tue, 30 Nov 2021 14:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235245.408196; Tue, 30 Nov 2021 14:58:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4ae-0003PF-GN; Tue, 30 Nov 2021 14:58:40 +0000
Received: by outflank-mailman (input) for mailman id 235245;
 Tue, 30 Nov 2021 14:58:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4UO-0003Jn-K8
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 14:52:12 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1898a3f8-51ed-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 15:52:11 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by sin.source.kernel.org (Postfix) with ESMTPS id 1263DCE1A61;
 Tue, 30 Nov 2021 14:52:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7A738C53FD0;
 Tue, 30 Nov 2021 14:52:05 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1898a3f8-51ed-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283926;
	bh=yiqQhwE2LM4N5B6zZAnXQGCAEgaSu7bjY+SniMdUyPo=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=sflwqBJhOp5B/u73v5nhKNYRjiCGb/KBDFJhG3TfaEVpzJXSd43wDlFGEcuSA2f9v
	 7FOSvMgSrXiSobf4nZkg45l5WxsB3YT1Ic0TGtvYvK7oscHL351Mk5gnG9WpEfxq32
	 wk3DKiccoPegRa7Ii6MV6eLjyBCeQnWM6cMndRwP5/7LjwOgeBLR0l1VjVPoZ2sxCD
	 JvBcweWNBvS1yzarqA0Ald+1eKAS1wL954eMul1+t9fFgassPaoaIxc/UQ5aUbWOOl
	 59gqZNfDSps7/bkwlR528WCND98PeSfwG7Uz6fzkTFgirTVFdhTIYwKtJrNlhgJ0rD
	 EkxNgsBy5iBkw==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>,
	Jan Beulich <jbeulich@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.4 04/25] xen/privcmd: make option visible in Kconfig
Date: Tue, 30 Nov 2021 09:51:34 -0500
Message-Id: <20211130145156.946083-4-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130145156.946083-1-sashal@kernel.org>
References: <20211130145156.946083-1-sashal@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 897919ad8b42eb8222553838ab82414a924694aa ]

This configuration option provides a misc device as an API to userspace.
Make this API usable without having to select the module as a transitive
dependency.

This also fixes an issue where localyesconfig would select
CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
building as module.

[boris: clarified help message per Jan's suggestion]

Based-on-patch-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20211116143323.18866-1-jgross@suse.com
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index a50dadd010933..39edeaae1d7ad 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -231,9 +231,15 @@ config XEN_SCSI_BACKEND
 	  if guests need generic access to SCSI devices.
 
 config XEN_PRIVCMD
-	tristate
+	tristate "Xen hypercall passthrough driver"
 	depends on XEN
 	default m
+	help
+	  The hypercall passthrough driver allows privileged user programs to
+	  perform Xen hypercalls. This driver is normally required for systems
+	  running as Dom0 to perform privileged operations, but in some
+	  disaggregated Xen setups this driver might be needed for other
+	  domains, too.
 
 config XEN_STUB
 	bool "Xen stub drivers"
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 15:07:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 15:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235255.408230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4j1-0005aA-V5; Tue, 30 Nov 2021 15:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235255.408230; Tue, 30 Nov 2021 15:07:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4j1-0005a1-Rl; Tue, 30 Nov 2021 15:07:19 +0000
Received: by outflank-mailman (input) for mailman id 235255;
 Tue, 30 Nov 2021 15:07:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4j0-00054S-5Y
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 15:07:18 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 335f5eaf-51ef-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 16:07:15 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by sin.source.kernel.org (Postfix) with ESMTPS id 93394CE1A57;
 Tue, 30 Nov 2021 14:51:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5C7EC53FCF;
 Tue, 30 Nov 2021 14:51:40 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 335f5eaf-51ef-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283901;
	bh=mvfh7oVZeXZA36lXXXo7Z+ltFgM+teaqeOEjVs7N4CI=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=bFSjDA9rdY/iWsUjnZLP5aGt9WwdukSfLaelFl79hVmW2bcMZzrmUBhy/CbdtbmF5
	 LewPa00iUFaL7zRyKite7EwxWOVRwxZ5/psNiIWkAarEMInfNdys5PcMOHAiA7SxlV
	 ehxjV5ARM5aLDE9zC+rRxzcp0X53F9CoBn7VubiBN3K+RucG6S4G1cXooffA470A7N
	 gm79QG+ggrpYGjULMKLWvXoSt6vNwI2XWITkN3NheJjcFoXPsMZjboedfc7XFtybk1
	 O//+yzp+NbviN2yz6vrq6U1Q5Z9xqSXTySYhz2zerepkMGXAx1qfkvc6VSnmg1LDX5
	 aItWOUtWUgdTg==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	airlied@linux.ie,
	daniel@ffwll.ch,
	dri-devel@lists.freedesktop.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.10 35/43] xen: flag xen_drm_front to be not essential for system boot
Date: Tue, 30 Nov 2021 09:50:12 -0500
Message-Id: <20211130145022.945517-35-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130145022.945517-1-sashal@kernel.org>
References: <20211130145022.945517-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 1c669938c31b6e2a0d5149c3c6257ca9df6cb100 ]

Similar to the virtual frame buffer (vfb) the pv display driver is not
essential for booting the system. Set the respective flag.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lore.kernel.org/r/20211022064800.14978-3-jgross@suse.com
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/gpu/drm/xen/xen_drm_front.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
index 8ea91542b567a..a2789ac2d4540 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -783,6 +783,7 @@ static struct xenbus_driver xen_driver = {
 	.probe = xen_drv_probe,
 	.remove = xen_drv_remove,
 	.otherend_changed = displback_changed,
+	.not_essential = true,
 };
 
 static int __init xen_drv_init(void)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 15:07:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 15:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235254.408213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4j0-00057A-Na; Tue, 30 Nov 2021 15:07:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235254.408213; Tue, 30 Nov 2021 15:07:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4j0-00056Z-JU; Tue, 30 Nov 2021 15:07:18 +0000
Received: by outflank-mailman (input) for mailman id 235254;
 Tue, 30 Nov 2021 15:07:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4iz-00054S-Ck
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 15:07:17 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3364460f-51ef-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 16:07:15 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by sin.source.kernel.org (Postfix) with ESMTPS id 04BF7CE1A4B;
 Tue, 30 Nov 2021 14:51:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D8BAC53FD0;
 Tue, 30 Nov 2021 14:51:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3364460f-51ef-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283906;
	bh=XAjwUAiM/j8BKJZ3MPSJmE9O/lcstYIzLJvobanl0m4=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Ewx6RN0gxrmQeqNLVGyYJLC0hrzXkdHRUE37iBemJboFNwbadRv7YVr+ipy+IwVAB
	 PE0XVRVAIDmySM4q//8c46X8dO36NntjUptjl9oltYz8UoqVkdxrhQYY92WelHjyiS
	 qyZmZBJvcka0P4/ZXeV9kc/w/uZka5gKUl2DajcLD5Wpl2nuGXxy3JKTxSYfS4jyd2
	 Il0LfBV7F/lZJ6ejwOWKIkRBcsEiIUVXLNyPRdhjs8cLnGokRNod2Lqi7L+OLeIoqP
	 SLWH/7kFcjh7lzqwF1oWSQvuJE8GfPSaGjqDuEZpF4Z2uHpdBt+TLG+uEigq80VG8E
	 QrbceAUStiIYA==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.10 37/43] xen: flag pvcalls-front to be not essential for system boot
Date: Tue, 30 Nov 2021 09:50:14 -0500
Message-Id: <20211130145022.945517-37-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130145022.945517-1-sashal@kernel.org>
References: <20211130145022.945517-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 03e143b2acebe23c893f22ebed9abc0fe2a7f27e ]

The Xen pvcalls device is not essential for booting. Set the respective
flag.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lore.kernel.org/r/20211022064800.14978-5-jgross@suse.com
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/pvcalls-front.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/xen/pvcalls-front.c b/drivers/xen/pvcalls-front.c
index 7984645b59563..3c9ae156b597f 100644
--- a/drivers/xen/pvcalls-front.c
+++ b/drivers/xen/pvcalls-front.c
@@ -1275,6 +1275,7 @@ static struct xenbus_driver pvcalls_front_driver = {
 	.probe = pvcalls_front_probe,
 	.remove = pvcalls_front_remove,
 	.otherend_changed = pvcalls_front_changed,
+	.not_essential = true,
 };
 
 static int __init pvcalls_frontend_init(void)
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 15:07:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 15:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235253.408207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4j0-00054l-EX; Tue, 30 Nov 2021 15:07:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235253.408207; Tue, 30 Nov 2021 15:07:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4j0-00054e-Bf; Tue, 30 Nov 2021 15:07:18 +0000
Received: by outflank-mailman (input) for mailman id 235253;
 Tue, 30 Nov 2021 15:07:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRDO=QR=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1ms4iy-00054I-SX
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 15:07:16 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3361e70d-51ef-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 16:07:15 +0100 (CET)
Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by sin.source.kernel.org (Postfix) with ESMTPS id 86B3DCE1A4E;
 Tue, 30 Nov 2021 14:48:00 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4589DC53FC1;
 Tue, 30 Nov 2021 14:47:59 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3361e70d-51ef-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1638283680;
	bh=z1z08V6GyRqJF14EjuoW9FWHbAnULnnl4fT0ZA7WNhQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Qs8Bf3eC02djVBcLGLWBeWaVIa6xv9oge/GXQKpKyENio+5tZZVKPl/ecyB/oB2Eq
	 tNLP1HYmc0jNvg896xnvScaQY3gl2CCEhYwywnPxua97be647bfm8chcD78A9AN/7x
	 5BydrwT2jo2L1sZMV6A7BrghxfU6ZTdrmi8q0Kf1fhmrTN/vEtZcACjdDiDXwA98z2
	 vu7F/IF1GABm/vh2aORT+5MfkHpDKP3GQJ14M3eE3XxcoW+eEIfkK+U9yfstyPpyBb
	 iCy0DFQzUsbsw3x5BiuOeUJpL1+tnZO3852VKiOJAjJNbq8E4A/9vmPc656S2TrYXz
	 mvsRegf9UtJMg==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>,
	Jan Beulich <jbeulich@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.15 16/68] xen/privcmd: make option visible in Kconfig
Date: Tue, 30 Nov 2021 09:46:12 -0500
Message-Id: <20211130144707.944580-16-sashal@kernel.org>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20211130144707.944580-1-sashal@kernel.org>
References: <20211130144707.944580-1-sashal@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
Content-Transfer-Encoding: 8bit

From: Juergen Gross <jgross@suse.com>

[ Upstream commit 897919ad8b42eb8222553838ab82414a924694aa ]

This configuration option provides a misc device as an API to userspace.
Make this API usable without having to select the module as a transitive
dependency.

This also fixes an issue where localyesconfig would select
CONFIG_XEN_PRIVCMD=m because it was not visible and defaulted to
building as module.

[boris: clarified help message per Jan's suggestion]

Based-on-patch-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20211116143323.18866-1-jgross@suse.com
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index 1b2c3aca6887c..dba66348dd2ff 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -235,9 +235,15 @@ config XEN_SCSI_BACKEND
 	  if guests need generic access to SCSI devices.
 
 config XEN_PRIVCMD
-	tristate
+	tristate "Xen hypercall passthrough driver"
 	depends on XEN
 	default m
+	help
+	  The hypercall passthrough driver allows privileged user programs to
+	  perform Xen hypercalls. This driver is normally required for systems
+	  running as Dom0 to perform privileged operations, but in some
+	  disaggregated Xen setups this driver might be needed for other
+	  domains, too.
 
 config XEN_ACPI_PROCESSOR
 	tristate "Xen ACPI processor"
-- 
2.33.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 15:08:11 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 15:08:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235261.408240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4jh-0006gf-9p; Tue, 30 Nov 2021 15:08:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235261.408240; Tue, 30 Nov 2021 15:08:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms4jh-0006gY-6b; Tue, 30 Nov 2021 15:08:01 +0000
Received: by outflank-mailman (input) for mailman id 235261;
 Tue, 30 Nov 2021 15:07:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms4jf-0006ew-MF; Tue, 30 Nov 2021 15:07:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms4jf-0006ZN-Hv; Tue, 30 Nov 2021 15:07:59 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms4jf-00054O-8X; Tue, 30 Nov 2021 15:07:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ms4jf-0002R0-6N; Tue, 30 Nov 2021 15:07:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Jy1bRluRDeMDsp1sTP8WhGkRfG/FqXKUxzBSi8Ijc1o=; b=D3Qgn17Lo8iXhjUUNHoIBpooPo
	EmqwjbAO66EJsMd0dJ54UlvA6icMaKKXFrPWoDz+b62t41hQ/m3Qk9v+5T4kZVZjXLR0caUkfAtaR
	SCtK4wz8Pk+WN4ILls0hUmKTep6yOzRR5gumKIhBMvld5GsyzNyWPxV9PtkJ/E9CGMho=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166958-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 166958: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e7f147bf4ac725492962a501da72f5ab6be682db
X-Osstest-Versions-That:
    xen=0e6c87b93e1d35fedf9cebd65395c2f79b4af11a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Nov 2021 15:07:59 +0000

flight 166958 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166958/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e7f147bf4ac725492962a501da72f5ab6be682db
baseline version:
 xen                  0e6c87b93e1d35fedf9cebd65395c2f79b4af11a

Last test of basis   166589  2021-11-25 18:07:34 Z    4 days
Testing same since   166958  2021-11-30 12:00:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   0e6c87b93e..e7f147bf4a  e7f147bf4ac725492962a501da72f5ab6be682db -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 15:25:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 15:25:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235274.408255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms507-0000wM-0B; Tue, 30 Nov 2021 15:24:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235274.408255; Tue, 30 Nov 2021 15:24:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms506-0000wF-T1; Tue, 30 Nov 2021 15:24:58 +0000
Received: by outflank-mailman (input) for mailman id 235274;
 Tue, 30 Nov 2021 15:24:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1Xd2=QR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ms505-0000w9-4R
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 15:24:57 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa54448a-51f1-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 16:24:55 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa54448a-51f1-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638285895;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=CrF6bE6mWyPuE25qTu2OvWJvirtbfqyDxMAeU7F4KO0=;
  b=WeCGzl26sFuJmVx4LJCBw49ZWMKz8NR9KSA9++YudD4ObKffC69MUQz+
   ArMABH2BLs/GkgF8mAyIfESiczY43CMUIxADaZpbPGNTSi+mhW7yQIA7+
   opUlndJowwUZnbMlzUctRt7rGKDDufu4JLUhiYMdNcQ7xE08LTG+XRa2v
   4=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: TvPflXJMeJpYzGDSf/yH0RKmktlsvS66hbb3G29pJVpJ+D0KKz9Y0+VVsGPt2efnRr20g4gXwE
 JKSrNc+yLL6yHo/0ALeuAYVBUqY59KIGXbVVExJxyLv9ZhrzuN3KK0G+AaaD18RfjP3CoqOfmQ
 R1NWyIFmJn6syW3V4X+2iycThEJPld0ptEGcUh201KZTVdL/JJNwdoPZbDfBb9j2usQrV+cqfS
 OMSXej5yvPcGg4nI4y4bPAJB/qznR3n/HQtU9bBpMFx5hd7RkofpKXZY4Us9uKoja81Nb0u2k5
 BGqS9UtC7cnkecbCPRxVmEAK
X-SBRS: 5.1
X-MesageID: 58874094
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:sEPzqazDq7VlBWfZgqR6t+fuwSrEfRIJ4+MujC+fZmUNrF6WrkUBy
 mBJCzvXO/3ZZWahfY93aNvj8B9Tu5PXy9djTVE/ryAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx
 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAuLeNYYH1500s6wrVh2tQAbeWRWGthh
 /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL
 wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt81Jz
 upcmq7hczgOb6rxiuYkdjIAED4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr
 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYIIjGhs3pESdRrYT
 9MidD59TgzrWS1wYg0nUbFjld33mECqJlW0r3rK/PFqsgA/1jdZyLHwNPLFd9rMQt9a9m6Iq
 2SD82nnDxUyMN2E1SHD4n+qnvXIny7wRMQVDrLQ3vxgjUCXx2cTIAYLTlb9qv684nNSQPoGd
 RZSoHB36/Fvqgr7FbERQiFUvlaZhhgjSvViQtcFz1CK97jW2iOyXmsbG2sphMMdiOc6Qjkj1
 1msltzvBCByvLD9dU9x5ot4vhvpZ3FLcDZqiTssCFJcvoK9+N1bYgfnF447SMaIYsvJ9SYcK
 txghAw3nP0tgMECzM1XFniX0mv39vAlouPYjzg7v15JDCslNOZJhKTysDA3CMqsyq7CFTFtW
 1BexqCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I9sAumgnfxw3aJpeEdMMX
 KM1kVgKjHO0FCH3BZKbnqrrU5h6pUQePYqNug/ogipmPcEqKV7vENBGbk+MxWH9+HXAYolkU
 ap3hf2EVC5AYYw+lWLeb75EjdcDm3BvrUuOFMuT50n2jtKjiIu9FO5t3K2mNbtisstpYWz9r
 r5iCid940kFDbClPHCIqdV7wJJjBSFTOK0aYvd/L4arCgFnBHsgG7nWx7YgcJZihKNbiqHD+
 XTVZ6OS4AaXaaTvJVrYZ3Z9RqnoWJoj/3s3MTZ1ZQSj2mQ5YJbp56AaLsNlcb4i/e1l7Ph1U
 /haJJnQXqUREmzKq2YHcJ3wjI1+bxD31wiACDWoPWokdJl6Sg2XptK9Jlnz9DMDBzacvNclp
 +HyzRvSRJcOHlwwDMvfZP+14Um2uHwRxLB7U0fSe4EBc0Tw6ol6bSf2i6Zvcc0LLBzCwBqc1
 hqXXkhE9bWc/ddt/YCQ166eroqvH+9vJWZgHjHWveSsKC3X3mu/2oscAuyGSi/QCTHv86K4a
 OQLk/ylaK8bnExHupZXGqpwyf5s/MPmorJXw1g2HHjPaFj3WLpsLmPfgJtKv6xJgLRYpRG3S
 gSE/dwDYeeFP8bsEVgwIgs5b7vciaFIy2eKtfllcl/n4CJX/aacVRQANhaBvyVRMb9pPd532
 uwmosMXt1SyhxdC3gxqVcyIG7Bg9kA9bpg=
IronPort-HdrOrdr: A9a23:MYoZ1q/Vvbn2hzAxfbFuk+E8db1zdoMgy1knxilNoENuHfBwxv
 rDoB1E73LJYVYqOU3Jmbi7Sc69qFfnhORICOgqTMyftWzd1ldAQ7sSj7cKrweQfhEWs9QtqJ
 uIEJIOduEYb2IK9PoSiTPQe71LoKjlgdGVbKXlvg9QpGlRGt5dBmxCe2Cm+yNNNW177c1TLu
 vh2iMLnUvqRV0nKuCAQlUVVenKoNPG0LrgfB49HhYirC2Dlymh5rLWGwWRmk52aUID/Z4StU
 z+1yDp7KSqtP+2jjfaym/o9pxT3P/s0MFKCsCggtUcbh/slgGrToJ8XKDqhkF+nMifrHIR1P
 XcqRYpOMp+r1vXY2GOuBPonzLt1T4/gkWSv2OwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze
 Ziw3+Zn4A/N2KPoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vFpLA
 BXNrCd2B9qSyLYU5iA1VMfguBEH05DUitue3Jy+/B8iFNt7TVEJ0hx/r1pop5PzuN4d3B+3Z
 W2Dk1frsA7ciYnV9MMOA4/e7rENoXse2OEDIvAGyWuKEk4U0i93qIfpo9Fo92XRA==
X-IronPort-AV: E=Sophos;i="5.87,276,1631592000"; 
   d="scan'208";a="58874094"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=A9VyUbBmNYgOfzkkC5qJv4wYvFc54NQfdUkBXXa0FiTxskoGB81ckzL4bflk/ROv150BCTYvoUZnYcCqJSUsNVP79XARV5Lw2KcYbxxr4sMb9IfyCJfMASzcUUu1dVQer+uKpU/ga9VBM2OgX/lulgC46fhIs4DBh96ANMJPSc6NcNKnWMT/wvlKh4Lrm/4YLg1cjYUfbjYn6WKANVnDosLdUj8FU0V7ylXGgoeYzuacPq635g77nTVEbXHeCletG9vRY3cdwGzD1eEU5FvXqID6ArsOp9WtulgV2QTYaSP+lb92P1PEO4GBVfjHn2CRPzmxq6y/TrdBw3zLFyrnaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ISLsqZxJvVYtJW0BVuapftjJk/ha01IJN2Cj/DfsBbU=;
 b=I06RFNakPMmadqA4QH/yDaHLdmvqwmHLTA5w8dfIJMhw9ueIlNL8gfQeeLNADFl3DgHA9WbIzle80cicpV7FvaU6Gz5rytOM6gyJpiYtoRBUQN2oE2D73InveTlvDM6XieRLipSFsaVyFp3nOadKDQKzB2yGieg40nMhiTBm5BhYloAwZ8FIs9FSJvfgb0RI8OyGI9/O1PRYZFRDeobfqW1+Mqyh5T00xw4+rjriPvkk0JaEqker0xIAIRXZRZIbhxSTJrp6YltuXwt/R8+YfCBXibAPFwJ4vgKkL1rORDNhMbc9FNXoyZjgp3ux1+FcRwZVbpDeamXoWV3yxpafLQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ISLsqZxJvVYtJW0BVuapftjJk/ha01IJN2Cj/DfsBbU=;
 b=pbBSmQpWHkfDFVWib4VFHa/uNcSjdPqRxbP2gLesOHuXxf+wXFT06QH3gg2fm8lBEMylVNaLJTDpXrTAdyYLdhKMPiWd9VqYtyyEOlcTfkoQ15Sq1pvGmkBGZac4wvbJfnJxaNwS7G+QkR1b7dTYAsrM5NH8FyZhyu+59PMmxhE=
Date: Tue, 30 Nov 2021 16:24:40 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v2 05/18] IOMMU: have iommu_{,un}map() split requests
 into largest possible chunks
Message-ID: <YaZCOHoTua8al3fU@Air-de-Roger>
References: <957f067b-9fe1-2350-4266-51982f09d3a9@suse.com>
 <134785fb-8ac1-50f0-de75-e0d6fe22f711@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <134785fb-8ac1-50f0-de75-e0d6fe22f711@suse.com>
X-ClientProxiedBy: MR1P264CA0134.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::14) To DS7PR03MB5608.namprd03.prod.outlook.com
 (2603:10b6:5:2c9::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 46c6b14e-1f45-4920-8881-08d9b41589d6
X-MS-TrafficTypeDiagnostic: DS7PR03MB5526:
X-Microsoft-Antispam-PRVS: <DS7PR03MB552636375B4931547A4A407A8F679@DS7PR03MB5526.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 4WmWjVLxSCA25J9ZXxU8JPX07Oy5gkcIwFpk8oNK85vg3xtcvInYdfw7bUMV0YTiYMosB3qKRs7DKPzaeqfoh/YfN7+OjBnPGA9Sc/1nl5KPpTBOGLUekNAsp255C+UXDx1yqLw/sRKASJDxn8NHi2N9GW+XZ5bWnURkt9/doCl5tbtkyPwV2ZTDUDsVOJ2PEp2GA+EfyKWSSLjgGTDlNmZUv1hzhVCRal1Ity5ZUs5kEYCQwAGfUDWoaAyTC7nh38glt1E/e4hj05jT6ETMcVE58WBsmLbsdx9DLaFVk9JoYk+p8gEVN1m8f8/4XSi/1ZD0bS4pR1xZ/tIX85sJVe5P4ldFBkVEsNPTmVbqPQWpqrlpc+k+rATZVGUQ3ODrLfxX7tSMGGPUq26hBi08zyX1kUFYWn+6M+BhAygHk+Y3M0YoQhtGy1VsLLwVdxaSqO+QJXjypXpxieIm3KJQE9l9ue0a2u63UYLDlSG8QMCqkY9qmxEifwOX+YXZPHE8DZG0EwN9DQPkkkCuE0S4TCe+dOaoA8hJZumCaWXfyGba97sasgpJNLpYZ4U8Imz1vEmpJz1OVfs3/Ac9BY9JhnMklQdI8vLf6Ijavl3YMd5H4Bb7uLjbMFSPgMmcOinI1J9/45cMI1voc55sH9joZA==
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(9686003)(54906003)(82960400001)(186003)(66476007)(66946007)(6486002)(66556008)(6496006)(8936002)(33716001)(316002)(83380400001)(4326008)(6916009)(86362001)(5660300002)(26005)(2906002)(956004)(8676002)(38100700002)(6666004)(85182001)(508600001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bGRPOFh1R1VPYldJZThRcVk3R0ZnNTRPeUlzMEtjWWE1MlNjbzV1VEoyWDdL?=
 =?utf-8?B?aC9HV2N3M0VlSzF5L0ZsT09HaVRFZGpzRlpGTkFHRklvWWFUZ3o4dkZPTnRt?=
 =?utf-8?B?d0htRld6dXRabCtPVkZLeFFkMzNQblFwa0xsOXg1MDNIUmRyU1RDMmVUTElM?=
 =?utf-8?B?cW91eE1iRnUxTFczTDltU1FyRXBiVThsTWdOTXg1Z2JRcytNdDNVNWt1MFZT?=
 =?utf-8?B?c2dReUxuV2oyUitlT2tsV0xxMzlNTDFIL0RLVVFoY0pRd1VyMFFHS3NRRzVQ?=
 =?utf-8?B?UnZNRTZ1bzkycjlWQkJsclBuekVhNHV4S3ZlWS9KK2ZEbzNQNVBJSUpJckF3?=
 =?utf-8?B?REF1YzJrNGZCaDNxa0NuSVdSaTNhYjI5OW1tVDVWQjdVY2dpMEdoL0IzT2ov?=
 =?utf-8?B?KzBmam1kSFNhWGtMcCtrZnorYzgxODZJRHpCc3pNbFJFMjUwOFUxdGRSK2Ru?=
 =?utf-8?B?dXJxN3Nubkl4dnk3RmN3V1Q5cnpPbktNV25TSnZjeHB4NnBvWm54alQrc3Qx?=
 =?utf-8?B?ckVkdFJyK2srRlVNWURjTXNmZjUwQWRXU2JMYlhnNkRESjV0VUpNUkQ0Ny85?=
 =?utf-8?B?MTFaaE1PS2Q2LytydXVBMlRoSzQ5d1hHcHdjdVVNMWd3dFhSaGYveHdsbkJB?=
 =?utf-8?B?TUVIWlN3c01icHlJTWMxVzFPdTZ6T1FxYU95U3gwTXJVNUxyaFlPZWI1VWVh?=
 =?utf-8?B?dUNIbkNvQk93UzVwbzF3Nm5Nd0ZXdlg1Z240UmNMMy9KaHQxb0tUNFYzUis0?=
 =?utf-8?B?U1B2cU9FUGF3SnY5WnFBWEpJT3dLZkxlQ2dTVzdVWUFuWUdOWHlrQWJGdUV0?=
 =?utf-8?B?TVNsSUFkMjV3T1RpajhxY0xEQWdrSTVZRzhoVlBBMkNNQVhJQzdXTDQ0c2FU?=
 =?utf-8?B?QVV6N0tCZ1NTN1RsdTN4NjZnQklaejdkZlJSN3ovVFpyS3h1OTRPYnMyY0to?=
 =?utf-8?B?UUxyek9ReXVaaVNVdE5ta2V6bUNEaFg4OVdhWVdQWmJLQXhBZWc2cm1QYUhT?=
 =?utf-8?B?ZHRPc1gyUkFHWXU4WUJjdFhBVkV4SVNqUVpHc2doVnNPbWl4aEVuVm9PMXRF?=
 =?utf-8?B?WXppOWZnb1lQOS9jSmhQQ0NTUnU4YWVyMmNJNUw4RU5CZGpWMXBoYmtjd1Bl?=
 =?utf-8?B?R0VOSzUweTZIakRPaWg5NjZiaVpPcndFdEgwMGRqbUtNeEw5UXJ5amlsS3hS?=
 =?utf-8?B?NmFCK2l5b2hrMjF2T2hjbSt0OG15RStISWZ6bkZ3SXBjUWhHdzRpekwrS2dr?=
 =?utf-8?B?ZitJMHQ0Ym5pU1NuSHpIMFg0SVBKd2o2K2xkaWh2dHlPUW51YkIrY2xOYTBP?=
 =?utf-8?B?TXdyS1VFR011RzVWTEpxaE5qeURNSHlqdldWVDB6QllMTGtZaDdJNjRrMzFy?=
 =?utf-8?B?UURPME94SCt1TW5XcTdhbzJqOVFOYk1OYlJ5YWI4RGFoT1U3bFV4WHBoU2Na?=
 =?utf-8?B?L1p0TmRCbnpEc2ppQi9RbEl2U2dSTXJ0S0dZcFE4R3EzTXk5R0NBMzdLaDF1?=
 =?utf-8?B?Zm93RTdQOWxpenJURVpUOExqbHAyaEpCOVE3QndUa1J3OThXeGV1b0dxU3BW?=
 =?utf-8?B?MERUMlhqSC96TUhabU8zbXNrbEpwNkF5TGZLMWpsK0JTalVRWDBLdGV5aWV4?=
 =?utf-8?B?UGhCb1cwdmVsMlpRcWN6TFhmN285TmRJSnlwUEExS2xmam1vc2R0Rnpwdm9M?=
 =?utf-8?B?Wm40RzdhYkRuYzB3SHhPVWJKK0o2T3IvYit3YmRwUklkR3Q4b2ZPRFdJc2NP?=
 =?utf-8?B?VG8ydFlmQ3kxRFZEQy8vZXRzV2E3bjBFZ2hLWFE3ZXg0UEluSC9aSWJXWHJn?=
 =?utf-8?B?dnBzZDFsR0FiV1BSZExSdGUrNFpZbmdRanlwWEQ5SVhqcDhtSUtQdTFESld4?=
 =?utf-8?B?WGQ4anhKdjV0RzNOYUtJN2NpUnd4S21nQTlpcGNIcGVLTXRRMVpnMStaVlhi?=
 =?utf-8?B?cXArQ0JqNU1IMGNodWpRS0tTaEJDV0hiMWI3eW8yelBoNTVNVmpjL2E3MUgy?=
 =?utf-8?B?ejU2NmhpU1liUDdwOUJiTXpCNzBnWTJNb2MyRDl6UHI1ZUIxWEJnK0srUll2?=
 =?utf-8?B?OTV0Q2E3emhrTzZWZDJ5ZmZlZ1Z0cEhoVFIvenJlUVVIR0srSHRYOFlhZzBn?=
 =?utf-8?B?aWhsYXpnSVdmMWRyRVZZNW1jTGo4bDNDa1dDWkZuRE8ycEY4QlBCV250WHJs?=
 =?utf-8?Q?5ky5TmD5RVloTyViMl9BI50=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 46c6b14e-1f45-4920-8881-08d9b41589d6
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 15:24:45.1010
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hPDtWzui4jOB8IBmGWpgvjW1hnzIAhe94wLrtmvHUkdlHnkzf/MR7J8EJyecWz/MGyOvWa3aBgkF0pIAiQewgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5526
X-OriginatorOrg: citrix.com

On Fri, Sep 24, 2021 at 11:45:57AM +0200, Jan Beulich wrote:
> Introduce a helper function to determine the largest possible mapping
> that allows covering a request (or the next part of it that is left to
> be processed).
> 
> In order to not add yet more recurring dfn_add() / mfn_add() to the two
> callers of the new helper, also introduce local variables holding the
> values presently operated on.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> --- a/xen/drivers/passthrough/iommu.c
> +++ b/xen/drivers/passthrough/iommu.c
> @@ -260,12 +260,38 @@ void iommu_domain_destroy(struct domain
>      arch_iommu_domain_destroy(d);
>  }
>  
> -int iommu_map(struct domain *d, dfn_t dfn, mfn_t mfn,
> +static unsigned int mapping_order(const struct domain_iommu *hd,
> +                                  dfn_t dfn, mfn_t mfn, unsigned long nr)
> +{
> +    unsigned long res = dfn_x(dfn) | mfn_x(mfn);
> +    unsigned long sizes = hd->platform_ops->page_sizes;
> +    unsigned int bit = find_first_set_bit(sizes), order = 0;
> +
> +    ASSERT(bit == PAGE_SHIFT);
> +
> +    while ( (sizes = (sizes >> bit) & ~1) )
> +    {
> +        unsigned long mask;
> +
> +        bit = find_first_set_bit(sizes);
> +        mask = (1UL << bit) - 1;
> +        if ( nr <= mask || (res & mask) )
> +            break;
> +        order += bit;
> +        nr >>= bit;
> +        res >>= bit;
> +    }
> +
> +    return order;
> +}

This looks like it could be used in other places, I would at least
consider using it in pvh_populate_memory_range where we also need to
figure out the maximum order given an address and a number of pages.

Do you think you could place it in a more generic file and also use
more generic parameters (ie: unsigned long gfn and mfn)?

> +
> +int iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
>                unsigned long page_count, unsigned int flags,
>                unsigned int *flush_flags)
>  {
>      const struct domain_iommu *hd = dom_iommu(d);
>      unsigned long i;
> +    unsigned int order;
>      int rc = 0;
>  
>      if ( !is_iommu_enabled(d) )
> @@ -273,10 +299,16 @@ int iommu_map(struct domain *d, dfn_t df
>  
>      ASSERT(!IOMMUF_order(flags));
>  
> -    for ( i = 0; i < page_count; i++ )
> +    for ( i = 0; i < page_count; i += 1UL << order )
>      {
> -        rc = iommu_call(hd->platform_ops, map_page, d, dfn_add(dfn, i),
> -                        mfn_add(mfn, i), flags, flush_flags);
> +        dfn_t dfn = dfn_add(dfn0, i);
> +        mfn_t mfn = mfn_add(mfn0, i);
> +        unsigned long j;
> +
> +        order = mapping_order(hd, dfn, mfn, page_count - i);
> +
> +        rc = iommu_call(hd->platform_ops, map_page, d, dfn, mfn,
> +                        flags | IOMMUF_order(order), flush_flags);
>  
>          if ( likely(!rc) )
>              continue;
> @@ -284,14 +316,18 @@ int iommu_map(struct domain *d, dfn_t df
>          if ( !d->is_shutting_down && printk_ratelimit() )
>              printk(XENLOG_ERR
>                     "d%d: IOMMU mapping dfn %"PRI_dfn" to mfn %"PRI_mfn" failed: %d\n",
> -                   d->domain_id, dfn_x(dfn_add(dfn, i)),
> -                   mfn_x(mfn_add(mfn, i)), rc);
> +                   d->domain_id, dfn_x(dfn), mfn_x(mfn), rc);
> +
> +        for ( j = 0; j < i; j += 1UL << order )
> +        {
> +            dfn = dfn_add(dfn0, j);
> +            order = mapping_order(hd, dfn, _mfn(0), i - j);
>  
> -        while ( i-- )
>              /* if statement to satisfy __must_check */
> -            if ( iommu_call(hd->platform_ops, unmap_page, d, dfn_add(dfn, i),
> -                            0, flush_flags) )
> +            if ( iommu_call(hd->platform_ops, unmap_page, d, dfn, order,
> +                            flush_flags) )
>                  continue;
> +        }

Why you need this unmap loop here, can't you just use iommu_unmap?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 16:11:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 16:11:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235292.408270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms5if-0006nu-La; Tue, 30 Nov 2021 16:11:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235292.408270; Tue, 30 Nov 2021 16:11:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms5if-0006nn-Hv; Tue, 30 Nov 2021 16:11:01 +0000
Received: by outflank-mailman (input) for mailman id 235292;
 Tue, 30 Nov 2021 16:11:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms5ie-0006nh-Dp
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 16:11:00 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b11b562-51f8-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 17:10:59 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2170.outbound.protection.outlook.com [104.47.17.170]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-25-4cwugFaiPOSFvVtxASZV-g-1; Tue, 30 Nov 2021 17:10:57 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VE1PR04MB6671.eurprd04.prod.outlook.com (2603:10a6:803:11f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 16:10:56 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 16:10:56 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0244.eurprd06.prod.outlook.com (2603:10a6:20b:45f::35) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Tue, 30 Nov 2021 16:10:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b11b562-51f8-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638288658;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=wX2v+CXmZtuqLTLe/ypVZSOZdElCTK6pbhJs32Pc9K8=;
	b=WyngbVEIRSj1KQ4psMMMHtgKOOpK6eYVS2IktLENBzKHv2tUokIj8YjXCT/DEhN9YCNG8Z
	eJbD1tRHpHRD2eFTk4GhQTT4Q9q2bxhF/lKaInDsjOn4t9JhIAq7paqgUw/PmR8pYnmPt+
	t/HL+kd78DLdpBCaNeM+I0q86ff7juA=
X-MC-Unique: 4cwugFaiPOSFvVtxASZV-g-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RssAVVZ4Zq6/fv68nZe4LU0qehjGdk1CR33nnpNWYPpsJSfKUC9feZGuMLigqqn5BGV7F3aXjVe4xT+IIlpdWiJtIwyquW8PyPDa4XuiKYrDpNoisjjCuTLQFWlDaMpMWKOlZDQ1AAROXysaYuaB7/dITNuB2gT9EwkKLGeSN9KuUV6UYeZU6efAAp1dxaO2IOxkSbaCVK/aownNDjegf/LS2/cFZCDFWA2SxRmuVPV5W5nByGAl8rGgrT28W28yEjQ/0/q8qg2HLJLQARCx437FK9FLjzcR3QYlY6yZGutHOY4wu8KA50rPmc96vdiksnzchZ4FFWWMbcoz8SviQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wX2v+CXmZtuqLTLe/ypVZSOZdElCTK6pbhJs32Pc9K8=;
 b=kzeqwOot+TT18VljJv5Mz86LJX0zCfrkPgx7xXr7XsuqTBLKyO09fRm6G8EXTbBivmShlQNeF4t46qVCOg75/m3zyT1Bs56PzKlknmPcb/hff426YHLG/nUv4KejabyhYhMzqHBPGnfGmtGFVIQBbJZHB3rxk+Vb+UuWkxAT0GVTvujUCebZ7LFTsHdU2dj605EgNiA9jThd3aC2onKHGyuoWEK0UjXFeYDilhI/XcoI7X25lXsgmOFM2VQmePCoh2/ROMpSmIM3++fc24U8t0mcSHma0e+0RtzKYiuQP2pLlvAxJitqdi9dE3P6dcQ9KEM835qw+QUEwSZN6UXhIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <c503e06d-9174-1dab-4f3f-1d7c88b499e9@suse.com>
Date: Tue, 30 Nov 2021 17:10:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/EPT: squash meaningless TLB flush
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0244.eurprd06.prod.outlook.com
 (2603:10a6:20b:45f::35) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5401fb7d-8295-4fc3-d9be-08d9b41bfd59
X-MS-TrafficTypeDiagnostic: VE1PR04MB6671:
X-Microsoft-Antispam-PRVS:
	<VE1PR04MB667122AD1E3F0FB562F409AAB3679@VE1PR04MB6671.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Au62YujUgPkqdbAfN76T75b4l1UL6v0sZhCR+ZkcdxmkE6CR5z52y96zOdInvKb2mO4T2U5jCFUrtT4uyQi0JisGXKddTYAg5UQRunwqi/sNOlbG0AN2Jn13bGtfSa3TycbOxQJioktrr2eFkIsPGhOVht9SU2Kno4OA+fDT6OwviraxR/ItlhUQNp0HkaftZgHHMb4Lr6IJ5aMHpCCh4gGSoEPRGEBozMHkhzMY81baJB6oX5Cmtk0y5aXkbgGZHWYgtW7gKOQd9mpdZqwRDDt6DfF36Q63uw3mAtNRrWe0V1EXUy2OKAg0xXh8XG/sjRnnR6e5X5prGTvu3KHaEQVvO00LxHrcqEXUbVuP3QNgR79+FI/uu7xkSKDy7KSh6WBUWhQld02/PnA6Wy/GNXu0Jo4xfxW1iOBKjy2WjRrmMmfN12eloHyuOi87LcDHbsn0sVFbSYHybANcKjdVLnqF+tyUmP+Bvj7iMdjjiyhY7PWfL9Yx+u+Ucn7oGAaI9dwfyoevM77FuuewQNkh3wdZNot1fM1QBFFd1Sy9Y3L0qB7fRGPEh0ZMan4+Bkmf8xzCqQajrmTtdrr7Kmg5Bks4fkXjaWoiC7DD8s7ZjuGxhxqui2QH/l1jHRGeMpbD7U2lRyFobm3Urjn0rtrSxw59hcwgajMcYllRxopPyLOYLW2qUfrYo2DdvN6reL7y99ENzbAwEmroXaCRVxeIr3Lk8SmVIfslL6kgbKlC3UY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8936002)(36756003)(956004)(2906002)(8676002)(66476007)(508600001)(86362001)(4744005)(66556008)(4326008)(31696002)(66946007)(5660300002)(2616005)(16576012)(31686004)(38100700002)(6486002)(26005)(6916009)(54906003)(316002)(186003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SEk5bTRJSXhzTGdOWlg0SVJBcktKYU1ReWpWdUpPakJxUVU3MUdKd01NMlE2?=
 =?utf-8?B?VUM4MW1vVVk3NXhZN3c2UGEvNWRTTHVtZnFiWktyZUZXcVBkaWkxRlNka0o2?=
 =?utf-8?B?QzR6NVNwc1NzalRCaGtTMmEwYXhnSlh4RVZjMkVrMDE5R1FadzVqSDBwemd0?=
 =?utf-8?B?VkpTMFdaOFVnZGlzYnhsdGZxZld0Vit1bFJ5MEpUMnEvRTlEVndHQlhpam1l?=
 =?utf-8?B?WDBNMjFzZjZ3Qm9GalFDc1hyUmZyejlJREJ6S3FnL2liMjRtV0RocGRyMWNl?=
 =?utf-8?B?eXlXOEE1clp5UzJUaHZwcUk0RVNRUzhBdHROTGRRZlZjM0RnTEptdmh4NUtT?=
 =?utf-8?B?YVB1WE5oZmgyUm9kYWhxc0J6T0gvL2tuZXNxLzQxNi80cjVqVE1ka0dJUVhq?=
 =?utf-8?B?YUk1R2hZaWhHc2F3L1owc1RYOElpTDJjNXloQWJqSExKSzBVWVBWY3NYdVMx?=
 =?utf-8?B?aWxETHBBem9UaWNSZFFhNCtLOWc1RXIxblpBYWkvUkRyZlZSOXVrTW5aVDlz?=
 =?utf-8?B?OGZ4ZDc1TEdiUG9xaGpacjRTYW5wSGl6QlFOYWRBNWRiOWdkZk9PMFJyQWVh?=
 =?utf-8?B?Y0dQTC9mTHFadnZWaExGYWpSVFJJb3JaYk9ISmR5elhFb0ZUTVh4UXo3WmJR?=
 =?utf-8?B?VjY1OW1DbmJaenBHamNueUNwRDhjT3hMYUdRVFhWM0w1UDMvOHRIamgwRlE4?=
 =?utf-8?B?YUlwbmk1aE1oVDljN2dIU0VhZE9RWkRCMjJrRTNibWJHQUNaUW1rSFEwODFR?=
 =?utf-8?B?UUhCMWpPQXNKUTd2cHkxd1AvWlJTOWNZZzUzRk1RVHNubzlPSUo3N203eUhm?=
 =?utf-8?B?OXNNZVRyaTBVL092WHJDNGJlUWsvaXk2cUtYbnJ4SlRoSlVkMkdWYWJnckRZ?=
 =?utf-8?B?UDJjbDM4Ry9HNGIxUWNTYkRsVndHVWZhTldTWWVTeStBVURXaGVpSEVpY0JQ?=
 =?utf-8?B?NWhGcUtHZks5RmVwem1UaWN4Rmk0ZHhUd29NekRRQlNhM2xFbTZRZ3VDSVlk?=
 =?utf-8?B?SVpXcGhSN0l6RXlnMVBqb29HTitPdGlZUVBYNHpEUnB2Q0ZBOUJUcG9YcVZy?=
 =?utf-8?B?THg1R2pFM3JidjFFTmV2N2ZtTjZMZDgxbXJMSW9sb2VnUWkyTjI4amhZbGdB?=
 =?utf-8?B?b3I5d0ROM1QxK1VETzVMMjB6Vy9RdEU0SjhMVTBSUmpXanJGV2xwdXdxTXhv?=
 =?utf-8?B?ejJicG1sc1FuUks4eW1xeXp4aFBnM05JM1lYbDJBZnlVMDdreFVLVXBWQXZT?=
 =?utf-8?B?VXJGT3RDb0kvL1lTTHhxV3ZqMWpzV3ZNQ0d4V2VCV0wvWmkySmFHU2JCaDN4?=
 =?utf-8?B?M2FFbWRJY3JkZy9oanByQUFySHA5MTVHMkZhKytiV24xbDYxTUVzNytlemha?=
 =?utf-8?B?Q29OVmVZTEtvUUpCTno1czlOUWNTYkFIZ0NDajdHRUtRL2kzVUtveWRENmNn?=
 =?utf-8?B?UUNEVkJCSlRaSnZ2dG1HSUtrSUhRd1lMOEhIaTJZTnNrSVV4clVhYkFEMHBq?=
 =?utf-8?B?T0VkVXBhTTA5ZFpydlFvT3h1cFBzV1hpQklEU2dUSWRRTmpvU2VqVjF0ZXVK?=
 =?utf-8?B?M3diaVh3Mjc1RGdWNFA0Y0o4ZDdGTG5zMUg3MFNYaWphVFNYby9jL0h4UDZT?=
 =?utf-8?B?SXVPRSs4MjBLa2h3QnJkMjhRV01KYnR2cDVuTEl0ZW1PWHBaNmlmNmNaYXRJ?=
 =?utf-8?B?TW5UVVZWd1Q5TmNyNGRMQVpya3lmaXhuNG9oMEZLQTBWc2pPcm1FemxVaU85?=
 =?utf-8?B?VmVDYldoR0s0NGN5WHZEMUxXMk5VZ0VyaCtSOFhtT3h3T0RHa044UFNKNmJC?=
 =?utf-8?B?eDFaNUdkZUFkWVdtRjY2eC93a2theVE0aExPdE1zWWlSVzMrTDZrSnpZSW1N?=
 =?utf-8?B?czMzbkkxUkV4ZFhmQ0xGTUpjL1QvRitrV2psK05JWkxTNEFhdlJEemY1V0N0?=
 =?utf-8?B?d2JWRGR3REVDdSt4SVlTcTVuM29CWGE1d3FhTllrOHNibkR4TmF5dXBQZ0JN?=
 =?utf-8?B?VGE4TGhzcmtxdHVRS1cyNVJWKzJiRVNmU1dxZi9ROUkycnF2T2ZzMVZmOGhh?=
 =?utf-8?B?dkpQZFl2OCs4RzE3QkNzYlNMWDlyWk1QaGJyLzY2dUszbG4zNXFlTjVybUhG?=
 =?utf-8?B?MXB0RDVGV25qWmRvQ0F4ellVditlZG43MDN3d0xUNks3NmZvMThiZEdsZkln?=
 =?utf-8?Q?b7zd3juBiAMOwxP7z+jhc58=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5401fb7d-8295-4fc3-d9be-08d9b41bfd59
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 16:10:55.9355
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9z/613/ztaqoawVokm8A8DGqoDLG02HNokjAo/mtE4inOQ+IijQHqN/gbZfnFsRkCKVLUplQiqPVHJEknxyuZA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6671

ept_free_entry() gets called after a flush - if one is necessary in the
first place - was already issued. That behavior is similar to NPT, which
also doesn't have any further flush in p2m_free_entry(). (Furthermore,
the function being recursive, in case of recursiveness way too many
flushes would have been issued.)

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -246,8 +246,7 @@ static void ept_free_entry(struct p2m_do
             ept_free_entry(p2m, epte + i, level - 1);
         unmap_domain_page(epte);
     }
-    
-    p2m_tlb_flush_sync(p2m);
+
     p2m_free_ptp(p2m, mfn_to_page(_mfn(ept_entry->mfn)));
 }
 



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 16:12:06 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 16:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235295.408281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms5jh-0007L4-Vt; Tue, 30 Nov 2021 16:12:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235295.408281; Tue, 30 Nov 2021 16:12:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms5jh-0007Kx-SU; Tue, 30 Nov 2021 16:12:05 +0000
Received: by outflank-mailman (input) for mailman id 235295;
 Tue, 30 Nov 2021 16:12:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms5jg-0007KE-EX
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 16:12:04 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f2ad5b5-51f8-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 17:11:59 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2176.outbound.protection.outlook.com [104.47.17.176]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-37-dxrnbv9UMYmrPH2awUO_xA-1; Tue, 30 Nov 2021 17:12:02 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB5327.eurprd04.prod.outlook.com (2603:10a6:803:5c::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 16:12:01 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 16:12:01 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM6P191CA0031.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::44) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22 via Frontend Transport; Tue, 30 Nov 2021 16:12:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f2ad5b5-51f8-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638288723;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=M5VznKEmvi3D+4dL8sK9NcwuWORXDFGH1k74atA7BxQ=;
	b=IiJoPCmO1XjZTYEFKNHX1ny4fBE7kk59ZdACMxI6F4u1DUlCjgh8Z6WlV4BHW7FsOPyurc
	7+1XAFrvy3SwCvZoRlLLdX2cYip2BkC13w35gnfM7TRgWaaxMDqZHi9lyWSWHTgHR4aCAQ
	qgCKpd9tVI+UVKhXrnH3T+Wr1HGSRIY=
X-MC-Unique: dxrnbv9UMYmrPH2awUO_xA-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HYB01ihS+5cHP+i3I2okdmVZqTjf/scoGVleBEgApvd2q48vRlZag9/Wiym/bcYvgmBmTIthdSdjZOaIQZulRZR0xtu3UhwY42fl+2bvzrPZ5KPxAA4TyTjtomi20URELPszPZgOGX1KUCh6KCiYsFCKyr/tV8O6v8i3bFZfJ7nVgkKX84Jf/YS8Ac9HJb8h5P+nGkd94YuKAMahhcqqDWN4Tbg3gifCpXUG6W4krF7U2lAnLBpYQWLhr+wT0mzhciZiK0wEcXYvMWK9rWI0ySlgo1pkRahKTQxuTRNlvSK3f/C3JiWedR3dVBuStsnJLZCtPo9VnYIaMYsz+rlGMw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=M5VznKEmvi3D+4dL8sK9NcwuWORXDFGH1k74atA7BxQ=;
 b=F9yix8AkvKKcLX3lGuv7ZJnVEvmS2p34yUMhie+kt7voqyeBkurZlYGuTW8Zlgsmxed2qAUoy7f/M7RIjLpHV7OWdK90VjizgU8P/gfW2lsWHvAUex0Ho3bA4d7d8il6ovitJOdE0b79h2zqE9EF1EJIgGekFoPnygigZidLBUn+kdhxArXyEtvZv0M0xW6xytolhtxosm3kIJ/ngdRhpZO5Zd4JX/eFoCDV1BjsYe3AtGkpWSuxdQxRy78nr7S7nZLYsvIJ1xRrp7fA75KqKnT6EvYlY1Oh5bzGc3j3Hy+/d91HD2jQTEcIW4rqH/qMGoIl8BWf+MLyUQCpwzmgrg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <925bb889-8048-e275-12e7-a4f5d31fb76d@suse.com>
Date: Tue, 30 Nov 2021 17:11:59 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/monitor: don't open-code
 hvm_has_set_descriptor_access_exiting()
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM6P191CA0031.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:209:8b::44) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a18fad97-0f1e-470b-49a6-08d9b41c245a
X-MS-TrafficTypeDiagnostic: VI1PR04MB5327:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB532782B88E1020B1F0D91832B3679@VI1PR04MB5327.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:346;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	5tvN8bVuLJxCVrmRxaMemClLmQvRR0xjB7zRMzlsWfa7ppyTyroYTOAX3gMKR1Rvh6Fi4txSTaeSMH5b3G/Xore46n4QEGf7I5OI++Ww1DZRWbdQ6BfiCMKMgEwYSQ8ye5F4+w2bFHfNR9Ay1jij5Y4kEpaiDYr/wKm47+tbI27KrkshALdG/C14O7B/vE25DSsdFqUW7HjHZm6E3uRhW7+FIsKiaOzkkeWJsT8qVs6m17XjzfQiLGSnE4t13PQqZghrb0V4tIhDrLVm7C7iyhTlQIXRGriIY2gKXGldNfAYLiiFbrgE5uRgtNLzR6bsWDUE9xjSJoJgOXJDzol1Am6FSIDyvwABWxtMDptjOlsCyKF40yLMz9i57TScz4BFCvhn+3O9QooaHu8My8S9ypf9CNEYeTIimWmUq1hcD+0omM2yfMXbNPBHyGGZ4yY/hKLso5yNHBcHuI4UUTNuW18O8D7YMELG05FXqTpzUIfW61X0ecc/+4qqhMum6tsM0hJ2jsRkBdj2juxq53D5h0GshyiTvTITbeZlhogTD5UxAxniHwMYDD2EuUuihgliz9RRqQlQGuSU9ZflgLhgjYnhAhnQs0+dN/dDSlI6GvorA4Gy3KZ1rdiGuW6pG+zX/fiwMz1Lq59yTxvoZKGeSZuXvM3NqupGe3AHGkxmfQ1UZsDxxAw8k2bTerMvy9fmJDoat6xVbT9lyKkbRu7zMlTVz885h9sc64m1zc4+GPLstbwJGJVIm7ScOpWzy/V2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(5660300002)(31696002)(956004)(4744005)(54906003)(186003)(4326008)(6486002)(2616005)(2906002)(508600001)(31686004)(16576012)(8676002)(86362001)(66946007)(66476007)(8936002)(36756003)(66556008)(26005)(38100700002)(316002)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c284TEcydDRpeFZ3OXJQTHFrSWNCUFpkYzV1SzVGL1B3dzk3TGNrdUQ5QXN0?=
 =?utf-8?B?Z1g0T0lHcTBubFlZbHozQkRJOXI5amhPWHJoTFBkbEpNZFlsTTdWeTlvaWhJ?=
 =?utf-8?B?RENFRWdGVzZZZm81cWxMaGJBODhCbmU1YWw4Sm5iT0ZCSkFnQUtYdktKd0Y1?=
 =?utf-8?B?Q3ZiNVpvRGNKM09qN0JlZ1ljVGNoTTBsWVVsS2pGaVFic0JPb21sR3FuS0xY?=
 =?utf-8?B?UTRRSmVDOXRQc1hVclpOL2VrTEJxVys4aUhLc1JseVhWNXEveUFTanJ4bFBU?=
 =?utf-8?B?eHJsWU9vSzFwWUFqTmoyNTJhRHcrSUxEdG1Oa0NqTGFyVk5pclJhdkNmQkRx?=
 =?utf-8?B?TnBXUnROdXRrbXNLSFJ3N0pGUzRVOFBiSDE1bkwvUlFhWE9sOVBVY2t0UlJP?=
 =?utf-8?B?dXliZ0QreEk1WVRKay8vZzRhT1Z1UkRRS3dFWWxoUGgrazhxNlY3SlBYVmRR?=
 =?utf-8?B?UkRVWlNYbTNyZzJUcGcrV1NXa1VOY1RXbXh1VE9YV2F5THo1eXVxblVIRzRk?=
 =?utf-8?B?aU1sWEc2MTYvcEJZWm9JcjBFZFJOZHRZVUhWZ1V2enVpNVpNeEJxK0M3cDM4?=
 =?utf-8?B?MGs1VkowL0ZiY2tQYjNtMFV2STNQN0hHcUpKZ2ZYazZyV3QzNERTMG10dTVO?=
 =?utf-8?B?RVpQNjZXV2RSQ2NNdWZVbExzNVA0UjZ1OU5lQmdjR3VNSnAxOFBkdGhjNDdt?=
 =?utf-8?B?WjZjV3lXSi9NNnQvUFBqUHZsM3MzZ0wyelgzVXh6SldocnJ5V1ZKQkl0V0s1?=
 =?utf-8?B?MHovTzdmODlVTU1NT3BpVW5ueGtsd2w2eDhQQjgvUHQ3RzAybnJyOVBaQ05X?=
 =?utf-8?B?YlZCVnU2MGxYN2gvU0hDVEVJT0pJdllhYUc0ZVBQeXlzS1VEd3FBMjd4MnVB?=
 =?utf-8?B?Kyt6b3VYWDdESlp6UGFRd1JQU3kxeUNKWDdvM1lWTWdPa3JDY3FqUjhnVUZU?=
 =?utf-8?B?aWxUMCthRk9qM0FpZWp3MUFrNWpZR3pSbTgwNjkwRUxSbVJYWExLMnZvTU5w?=
 =?utf-8?B?WkJPU0hIVTJZNGpDVDcrVTFGZkEyVUtGOCt2aW4xVm9NTGVreldQTi9RUkMz?=
 =?utf-8?B?cGh0S2g3dVp3MEYyN2IyeWhsTXBBQXJmMTVYaXV0ekdZeFFFZXpINWZZbDBH?=
 =?utf-8?B?cmJ4OEl3V2wwN1FwMzE3Nks5Wm1KWjhIMExhVmpMMXhucjhoK21uWkYzeWJt?=
 =?utf-8?B?TzFoSXNCTWcwbkdibkM1WnFyUzJpV1VHN0FLc2Z0ZHptZ3VoMWpFMC9hcVZI?=
 =?utf-8?B?Y2xSbHJXWW1od2Z1aGxQOXEycTlpQmFIYTYxVEkvOGpNR3hoREU1VitqaFFY?=
 =?utf-8?B?U0t2cUN6ZkZyYTVTWWRIOHZKdlpZRnN1ajBoUG43LzVSTGtwUWtscjlidUI2?=
 =?utf-8?B?aTZxeTFLQm5tSkRtTFBmbmNZNEp6QUl2cHdTbkVQQ2Fic1VqaDkwdjluZWJj?=
 =?utf-8?B?VC9hREEvVTFENUdRTVowdjBhVTVNeHRoL2tHYkcrSWVVZEVCU1FINThDV3VL?=
 =?utf-8?B?VFVMeWZMeWwxMXM0QnIxQjJFeWprQ29peDM5allwckJLYzVRT0RMOUxWU2pM?=
 =?utf-8?B?RnlTWHpzUEJ0NjdNWTFvV05WRnVVUHVMWjdyMlBlVWZOMTc5UnV6aEVqd0Ev?=
 =?utf-8?B?NVFkNGlnazhKTGdHbXMwR0xHN0hoVmRIUTZJVE8xSTYzdDlwb1JmaXdvZk5E?=
 =?utf-8?B?QzAxRkMxSzlGb3ZrcHB5bUhWbkIrNVhNeWgzQVlFTTJ1S1pZL3pBME1JTDVi?=
 =?utf-8?B?aC9Bc0ZPSzZUd1o3ZmtwY3lMa0ZXR2U4VWlSYWJIWHJNZncwTGEra0dRL2lK?=
 =?utf-8?B?eWdzUm0yNU82OXJmUFcwaTZyektacjJpWkluZEdUcE8wdGFlZUdxL080UFE4?=
 =?utf-8?B?a0d3cnl5aDYyZDdtTnM2QnIxZmNCQmhCRUhiQmRIb0NCNU1jZFd0MEdUNkkv?=
 =?utf-8?B?L2NxYzZxSkRranBTNk9rUTdPaHZ5VFN6MGg5Y1VRR3ZCS1g4bnNscmRxK3NG?=
 =?utf-8?B?Wm9LdWVCbDMwNlJaT3h3U0VvMmh2a1ZteWp5OHBpaSs0OERlL3VXWS9FZXVz?=
 =?utf-8?B?cFJKckRQeDAxZEg4OVpXblduMVFFc0cySW5COXVJQmplS3p1WGJUL3hTWW4w?=
 =?utf-8?B?cVJoeUplTWlXRlRkMFN1ZEJ3ZFVyWlNEWitLMzhnSUo0UjRQZVFmZ2VzbXE3?=
 =?utf-8?Q?23JUO3UUr8qRs7aXsOXJdKA=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a18fad97-0f1e-470b-49a6-08d9b41c245a
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 16:12:01.3285
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pbU6ZxHtGXzP5zj+ymIu0gyt+eabNbewKjM2G6wGQkJN4ULphnzMMr6U/hEX2yK0DM/+fd40IdGWOoLWg/1eew==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5327

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/monitor.c
+++ b/xen/arch/x86/monitor.c
@@ -263,7 +263,7 @@ int arch_monitor_domctl_event(struct dom
         if ( unlikely(old_status == requested_status) )
             return -EEXIST;
 
-        if ( !hvm_funcs.set_descriptor_access_exiting )
+        if ( !hvm_has_set_descriptor_access_exiting() )
             return -EOPNOTSUPP;
 
         domain_pause(d);



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 16:14:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 16:14:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235302.408291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms5m0-00083j-Go; Tue, 30 Nov 2021 16:14:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235302.408291; Tue, 30 Nov 2021 16:14:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms5m0-00083c-Dl; Tue, 30 Nov 2021 16:14:28 +0000
Received: by outflank-mailman (input) for mailman id 235302;
 Tue, 30 Nov 2021 16:14:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms5lz-00083U-6W
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 16:14:27 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.109.102])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 967adac4-51f8-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 17:14:26 +0100 (CET)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2171.outbound.protection.outlook.com [104.47.17.171]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-25-wvAQATxAOHO1TxYpxKA4Xw-1; Tue, 30 Nov 2021 17:14:24 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB6176.eurprd04.prod.outlook.com (2603:10a6:803:f6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 16:14:23 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 16:14:23 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AS9PR06CA0337.eurprd06.prod.outlook.com (2603:10a6:20b:466::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23 via Frontend
 Transport; Tue, 30 Nov 2021 16:14:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 967adac4-51f8-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638288865;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=5sUCnrsINgRusgFl/CuhiSxJH2T2g8flT0r7Ag8j8/Q=;
	b=ZU56svzlvsoTLnF2a9Cs9SJ/dlCB42S7AZoP7gGOq/xYxPMbXMBM+9lNiuqKkcy865syOo
	qicZioFPFT9Nj8D/sMQxYWlUMICvqB+pp6YYYt0OdbSFrJKF/FiY7mqyRd965gROf/YKYs
	6AScmSkM7tdbCZUL00pICQIWLFTt71s=
X-MC-Unique: wvAQATxAOHO1TxYpxKA4Xw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=U/8RFnPMKdoUT7woJLeVcuEW7AEENM7V7CEDP0B05eCwlGH//fqOZ64WYA2YgKSQmAHDWrufobbiMMW72Av606qYMsmWjRlrmxnZiG118SKC/XoKwcBansPIyM2Jdl1OAI8Q9HeMPqNIvRpvax1HRg+ijxhG/LG8HkulopZ7m/gYuqb8TXQ3gI94jxs9E7jZPJXcG9ERGEeMk5JbSelwlEH2Es7bQExlRL7lM7S5TqFSF6dVqSzeIFBAI4QGhORc3/lL7stSageOnO56Uie1QE8h3kZ2svOG2Jgei4orMlsJQNqTqxHO3S9JccrRcKe4ewCH294UrJMzD7qIoDXPMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5sUCnrsINgRusgFl/CuhiSxJH2T2g8flT0r7Ag8j8/Q=;
 b=IgUPcg/0kV/aOCs+wLpBuC7Amw2l4DXhTtx5MGZaPY523POn/WSLQyHQcgxSypc4hXNwMff7iUlOiwjjioCZWmQ1zAwTqe/QhOW4hiPXHz8wzR+Ci2URomJ4EC0ghMppAekQ16X+6qgtzQUiqABWKZtel9toFTV7mzwFingy8SiMyHatSMBOFppaKCo27/4yLJT+R2bx94K88uNT1wAn2OCY1OVXzu29gxsaUJfGqy+bQUMdkDYp2aXgn5IjaiYRduWf6KuF7rfgFWEAws1Cv3p02o9tKyiCYiQMJF559fz0a4MAqrI8OzXdA12loSoXO0FHJxBJ2VAnIxiOKa9oMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fff23663-b114-0726-e37f-06461b5ea63d@suse.com>
Date: Tue, 30 Nov 2021 17:14:21 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH RFC] SUPPORT.md: limit security support for hosts with very
 much memory
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS9PR06CA0337.eurprd06.prod.outlook.com
 (2603:10a6:20b:466::13) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9618dfb6-9496-4bca-6096-08d9b41c78df
X-MS-TrafficTypeDiagnostic: VI1PR04MB6176:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB61762836696366B3F70F4115B3679@VI1PR04MB6176.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:5516;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	zFJWM0guTxWmIr6ISxCQTndVeYV9Rd+VGc60bovipyIGL/ZPE7r6XhtTPBOWxFgJdIpxMR9nZ3a7mYJd1f+sLI3wHlPIDcgq+HP/yDNOIITifL/4YPgcRomz/QiN5YfZu8SNXJ5WzxUEwuy0tgXnRLbq+HGASlPFUVs/Zhj72IuMKuxKvYYm3Sgwz6+uLoWJ/vhpRq85qNKeaA2tGq9CTCIBqNcibz5N6OjxT40rJtTDsutydA3hpFL9HbDv74LlEEYD9AARiZ1Ong9I1qhVBOm+LwbZZ0WKkzaTuCIYxgJ4TwIVvbSsZe89paLil7ZoMQfr9/u6qOs88WSDVIgGSEH202u6dezXv38l1IVZeQS7Oeq7m3OaiR1SLwogC/CsgAs/fTodKI+Kq63Wowra4b5HlWzzJgM9D4GlGd7rpmC2rY0MbnAz1N7n77+XVsF9BE9oxLDSR222jdD6z8eL9QhZLoabt0kC3JxtieL6LeZBpXIeki0uohVyY+XdwGM0fDg90kKi+xO7qCSkJPt5TUKEdiB+oNh8I3DspWS8gOKrY1l4kJ1KIksMM+NaZIDZ/7THGlg5igUwtBmi76XWlANGfaDxcSHbOJGCIPwnLZlt6qhuQL1/+OIrMor1h66NmwQof9NBOkMJscGwVwzzCE8U7J34v5yxQKvvWzZef3Qe+FdUVImExN3ErJa0uZ0xWDJSTTfdk+yAEh7u+5HD1q0ac6As5acPuigjJHzzKsktIKq2Lbj3azh4f0Mf2jZDIeLISuieFIqqnhw8BSRbDRMRj9jL9wcUZB3zSMoGbIAgL+JaL5MzISKv5VO9IQJq
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(2906002)(2616005)(66946007)(66476007)(66556008)(6916009)(8936002)(31686004)(316002)(5660300002)(83380400001)(186003)(8676002)(26005)(508600001)(15650500001)(36756003)(4744005)(54906003)(16576012)(31696002)(84970400001)(4326008)(38100700002)(6486002)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UXNZeGpCOWVuRFdvUERxeUorNElzS0YrWmh6b1huSitzRXcvSFFqcGwvcFlB?=
 =?utf-8?B?K1VKcnN4YkE0WVFXelE5anBnb0hURFZGUy81Z0NpMlJqQnowai9laGR3R1di?=
 =?utf-8?B?WWRvT3hGWTZmUFMzVnlqY2hSaTc1VWZvVHIyclk1T3FwZlNiOXZjcElmdk1E?=
 =?utf-8?B?UGwrR3lxcVRma2ttUzU4WSt6TWM5UlVpd0lwWkh4VDZ3bTR4MHRzeXRkNi9q?=
 =?utf-8?B?bElFSERrTnhmbmVSUlVwdGt6RlJoU3BvVlJjYXhzb3RiMmg3NnE3ZVVYWEtq?=
 =?utf-8?B?Q2xKanlrY0hiMDNXb2VoUisxYWIzbEh0RTRIMnJhQ3BQWDB1OW1LTGhGa1RZ?=
 =?utf-8?B?cVhVWFVBSEhwWGNrRGYvQ0lBOW1BakdMTTdZL1B4UUF4OWdPRFdOaDNmd0xr?=
 =?utf-8?B?L25XZmgyWWRzc2h6aTlZUHk0RXMxSit1Q3NKQ1FCTkZUa1pxSVViOEYwTG96?=
 =?utf-8?B?ZEFXZUI1aVZXc29BYnpXQnhXVkp2RFpERWw4ZFRMUTVGTFNpQWE1UlZEeE9Q?=
 =?utf-8?B?bVJWRGVsM0YrajRvZjZGTWVRTlo5dUc5dWxwVkxubXAwNmRaSGlZZVdFMHZV?=
 =?utf-8?B?bm5ZcWozNGdYVzdocGp3ZXFYVjF4YnMrZ05KRXFmM05oYUZ0MUZ6VHhjVlZv?=
 =?utf-8?B?OHdMbkFuaFdMMkFxb21GKytObjNRZjRuSGpTT3ZISHVXOUVqVWhzaWxlbjZW?=
 =?utf-8?B?UkxpcDJjRjYyUXBUTEE2ZDhNV3NhMkdkN1pIU0NLMFJ5UjJZQzVESVdRSVhy?=
 =?utf-8?B?YUQ3MzY1STFYWUZmRXlEc3M1ZTJ5TXJqS3dXVmFOT0VZUWIxbjZHdjVkRllM?=
 =?utf-8?B?VmtMNEs0T00vTlp1WDNnV0pmSGZqa1VDa0k2ZEJicWd4RU04NUIxWTRVYXRp?=
 =?utf-8?B?SmwvOHBFRElkR0U3ZStPWjVBSk5vbDAyQU9sbjA0N1RTRy8vWFA1WG5nK2c2?=
 =?utf-8?B?d2FDR2tzeCt3VW52QlNnQ1NWR0hiWnE3NDFidEhZVUt2K3d3d05zd0l3Wi93?=
 =?utf-8?B?Unp0VC82dmtsNE1kQTdzS2JrODU3MHBTUk5aMW81TWozZkRCbnJ4bXVMS0xJ?=
 =?utf-8?B?QzFRdDlwV05hUmNuWGR0RkJtbTB3M1c5R21nRlhoT1AxVlFROEc5TGVmS2JI?=
 =?utf-8?B?MENUaHk2aFpEZHhSdVZkYndRbjFGemwxb3VOck00VEVtRFRjUWE4QVduZXBz?=
 =?utf-8?B?MzRvVlFuQktzWEg5elRCUXpyc29aSnRueXJWRWs1TzNlNUtyYjFJWWorRUVW?=
 =?utf-8?B?c0tFR2R3aGxNMVdSQTE1OE83bFJ1L09YVW4rRnVYaGtQeU9UdGtNV1ptbFZj?=
 =?utf-8?B?cCtmbHZFdEhDdmRtbnhXaERLV3JsdGY1QlRMMFNQUTBqbnBsWHVwbkxzZUh2?=
 =?utf-8?B?KzMrRlNVWjZkU0VyaTNTWGl4RzRKMGNoVm9FbTVha2xvaVU2Rkh4UlFENFNn?=
 =?utf-8?B?Q1cyYlBsKzd3Y3gvVHlnMWlEZ1dlNkVxNm9Ta01yc2ZBQWQ4QXVlRHZ6REY4?=
 =?utf-8?B?cHdjNy9taUFiajVhNWxxZmtBVlZpeWlCVUpyQmtFQjZMbmxINkwzSkkrWnRa?=
 =?utf-8?B?TXBsSHFycWs1MFh2TXRiSlF2Mng4NlNseVd5TWl4M09ta0RGUkdocHF0UitC?=
 =?utf-8?B?all5enIwenB1bWQwMzlwQnRpSTZuZWkwYVhDK2xQbE9uaWVCVEp4OVp4ckcx?=
 =?utf-8?B?Y2JGcERQUkVwaFNzdXgwd2I2VVl5dTVRaU00Q2dhUzBLRCtNdk1XbDF1TnJX?=
 =?utf-8?B?Y3VCNXNmNDl2Q1puTXJVZzVIQ3FheW4xOFJ4ZE11MFlhOFNjRUVDTzV1SlFH?=
 =?utf-8?B?U1NMczJoV3VLMzVOZ1ZXQjZJbi9aRVcreGJxUExEWnJkbmtLa2d0U2VRUFp4?=
 =?utf-8?B?UlZnTWxkZ3R1WnU2OXNvRkM5aDhFT0ZLZnpNWE8zTjdQc2MwODBaeDlnRktO?=
 =?utf-8?B?Tjlnb29FZkZqL0ttTHJHbUJ1NG5WWk0wSnlXUExaVHZFTFdIUzFYcGM0Tzk3?=
 =?utf-8?B?amd0UjVhYkR0NVpRcHBFQ3c5d3ExSHZONTlKaUNoK2NUMkVXUkxHRW8wMjlD?=
 =?utf-8?B?OGVQOE40a0lwZnpFMnU4OHJzV25CQi90YUxDTFNUTFFZejdxNk1Hc3M4YzZy?=
 =?utf-8?B?TUZoajRtTjV4RjNFMTMrRlUxMkVtYkZ2TWI5NGkyL2NXZ0ZHeVZDcGlPc3Jx?=
 =?utf-8?Q?VbN/rVxPGzuTetXyej1ypdI=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9618dfb6-9496-4bca-6096-08d9b41c78df
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 16:14:23.0934
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oGRWX4VRcFfsviGwBN1Yqr6blrWUitdumw2Mw3fCE9z2uwPMCWlg6unEyIW3x3sgsZKqrPyFS5quPE1rwUwsww==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6176

Sufficient and in particular regular testing on very large hosts cannot
currently be guaranteed. Anyone wanting us to support larger hosts is
free to propose so, but will need to supply not only test results, but
also a test plan.

This is a follow-up to XSA-385.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- unstable.orig/SUPPORT.md	2021-06-25 11:19:03.000000000 +0200
+++ unstable/SUPPORT.md	2021-09-10 11:15:52.270364645 +0200
@@ -48,6 +48,12 @@ For the Cortex A57 r0p0 - r1p1, see Erra
 
     Status, x86: Supported
 
+### Physical Memory
+
+    Status: Supported up to 8 TiB
+
+Hosts with more memory are supported, but not security supported.
+
 ### Physical Memory Hotplug
 
     Status, x86: Supported



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 16:34:20 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 16:34:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235355.408339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms64y-0004EF-0m; Tue, 30 Nov 2021 16:34:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235355.408339; Tue, 30 Nov 2021 16:34:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms64x-0004E8-T6; Tue, 30 Nov 2021 16:34:03 +0000
Received: by outflank-mailman (input) for mailman id 235355;
 Tue, 30 Nov 2021 16:34:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms64w-0004E2-Fc
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 16:34:02 +0000
Received: from ppsw-43.csi.cam.ac.uk (ppsw-43.csi.cam.ac.uk [131.111.8.143])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f847823-51fb-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 17:33:56 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:40048)
 by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms64p-000yQH-nR (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 16:33:55 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 193C71FA51;
 Tue, 30 Nov 2021 16:33:55 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f847823-51fb-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <c0e792a4-c0ce-a746-b925-1439971f2bdf@srcf.net>
Date: Tue, 30 Nov 2021 16:33:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH RFC] SUPPORT.md: limit security support for hosts with
 very much memory
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Ian Jackson <iwj@xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
References: <fff23663-b114-0726-e37f-06461b5ea63d@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <fff23663-b114-0726-e37f-06461b5ea63d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30/11/2021 16:14, Jan Beulich wrote:
> Sufficient and in particular regular testing on very large hosts cannot
> currently be guaranteed. Anyone wanting us to support larger hosts is
> free to propose so, but will need to supply not only test results, but
> also a test plan.
>
> This is a follow-up to XSA-385.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 16:34:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 16:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235356.408350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms65A-0004Xh-7i; Tue, 30 Nov 2021 16:34:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235356.408350; Tue, 30 Nov 2021 16:34:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms65A-0004Xa-4a; Tue, 30 Nov 2021 16:34:16 +0000
Received: by outflank-mailman (input) for mailman id 235356;
 Tue, 30 Nov 2021 16:34:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms658-0004E2-N3
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 16:34:14 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58080981-51fb-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 17:34:10 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:34606)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms657-0009vC-73 (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 16:34:13 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id E3D4A1FA51;
 Tue, 30 Nov 2021 16:34:12 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58080981-51fb-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <fe01785d-7983-0541-83f2-ecc7f6e5beee@srcf.net>
Date: Tue, 30 Nov 2021 16:34:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] x86/monitor: don't open-code
 hvm_has_set_descriptor_access_exiting()
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>
References: <925bb889-8048-e275-12e7-a4f5d31fb76d@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <925bb889-8048-e275-12e7-a4f5d31fb76d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30/11/2021 16:11, Jan Beulich wrote:
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 16:45:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 16:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235365.408361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms6FY-0006M4-AX; Tue, 30 Nov 2021 16:45:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235365.408361; Tue, 30 Nov 2021 16:45:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms6FY-0006Lx-7B; Tue, 30 Nov 2021 16:45:00 +0000
Received: by outflank-mailman (input) for mailman id 235365;
 Tue, 30 Nov 2021 16:44:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms6FW-0006Lr-Nq
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 16:44:58 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7c84232-51fc-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 17:44:54 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:43826)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms6FU-000pN7-0f (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 16:44:56 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 0AA0F1FB51;
 Tue, 30 Nov 2021 16:44:56 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7c84232-51fc-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <bb4f2e4c-3ab9-a1b9-457b-f46275d34c87@srcf.net>
Date: Tue, 30 Nov 2021 16:44:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>
References: <c503e06d-9174-1dab-4f3f-1d7c88b499e9@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH] x86/EPT: squash meaningless TLB flush
In-Reply-To: <c503e06d-9174-1dab-4f3f-1d7c88b499e9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/11/2021 16:10, Jan Beulich wrote:
> ept_free_entry() gets called after a flush - if one is necessary in the
> first place - was already issued. That behavior is similar to NPT, which
> also doesn't have any further flush in p2m_free_entry(). (Furthermore,
> the function being recursive, in case of recursiveness way too many
> flushes would have been issued.)
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

ept_free_entry() is called either recursively, or after an
ept_split_super_page(), and I agree that it does not want to queue
multiple flushes.

However, I don't see where a suitable flush is in the superpage path. 
Am I overlooking something?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 16:57:52 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 16:57:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235393.408390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms6Rs-0000co-Ra; Tue, 30 Nov 2021 16:57:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235393.408390; Tue, 30 Nov 2021 16:57:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms6Rs-0000ch-OJ; Tue, 30 Nov 2021 16:57:44 +0000
Received: by outflank-mailman (input) for mailman id 235393;
 Tue, 30 Nov 2021 16:57:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AOGb=QR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ms6Rr-0000cb-IW
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 16:57:43 +0000
Received: from de-smtp-delivery-102.mimecast.com
 (de-smtp-delivery-102.mimecast.com [194.104.111.102])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f99f9ac-51fe-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 17:57:38 +0100 (CET)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04lp2058.outbound.protection.outlook.com [104.47.12.58]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 de-mta-20-6Az65UrjNqCOgsq1suTUcw-1; Tue, 30 Nov 2021 17:57:40 +0100
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB4847.eurprd04.prod.outlook.com (2603:10a6:803:54::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 16:57:39 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Tue, 30 Nov 2021
 16:57:39 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM5PR0601CA0081.eurprd06.prod.outlook.com (2603:10a6:206::46) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.21 via Frontend Transport; Tue, 30 Nov 2021 16:57:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f99f9ac-51fe-11ec-b941-1df2895da90e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1638291462;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IXR+2MsWMPUPGMTQirMkmMTxFCGJM6iNZvEz/VzF8DA=;
	b=YksQqJ3bAAIsYkbm1YqrNvtvsrQALuvPaEHhtvjYGTOT8HoN+/m+G0BYcxsTAVxirdS2Kv
	hfGT2uBIFJ+DpCsgHDRzaDmf4LwbuDDZRmGFx2zEpt8xsuoc6XhpNeDy50WjA8+OG6AXaS
	mgUl55CZyKAxDxSUvr6R6U7GjSKOLe8=
X-MC-Unique: 6Az65UrjNqCOgsq1suTUcw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RDsIn/GaqsYkHgRFvL1FfiJUOSBj87Gbo10ec9GHD+4y7aLQog6R5DYJqifK+jAvZ/0gytnnYYybI3oYJtUpgqocKQIz6YNmGDq+M68AvNxNsszBSVqUb7EpGMtO+ye4OkOOGCr2KxJ+Au8w0yEfrYi23iFUl+42UJ044oABjy9LMqk1ztZMsax8SS+t2yI7D1W6v8/w2jeB1JTPeUr3SkPFNY+JYBM9AiTHEjtDxfGwco/p9dgiE/8h8GmZBhYeSFtAYAiNh+yS3mTeHl5K9d6f5KUUUCsuwqKddPqvwQ3NgbLyq+ohxjzVAc1T93MPUdivs6T/G4pSbkNIGfsIGg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pQ5UX9T3eHeUdOvm6MT+nCstxPpI2elfjhWVptsFKFw=;
 b=VtqM5P3qOOHcGDhUW4NgXvslRvrTK2kcDF+p4QTbcLeEOSt63mtP0FJc8teutisd6mn+xOQ25HdKj61n+1IfpMzpkXObXDZIvUR8svwd+zSlbf5H6BaF9HJAWY66Q3mDj+0KNkxhz2t7ZGDXzjUX1xoPQHKhz5u7RScc6bSTBJHWhqH+uR4JWHuoLZfHQ9L8tyC2y6lf3yFBb+q1iTXGVBxyPwqbjlkbFGdKtgyGuaRzeGA1SdVQLdeP+DwNvO/f81MtKyNEntVn1gJdCWfbBStN3h2bdD+RWcIY4ZFMb6pmdnoFKR0V6JCExrgsPAhpF/cXw1Fo+Oe9wLrm03xFqw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d510d82c-c0f5-70b6-d506-6ad119c5e3b3@suse.com>
Date: Tue, 30 Nov 2021 17:57:37 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] x86/EPT: squash meaningless TLB flush
Content-Language: en-US
To: Andrew Cooper <amc96@srcf.net>
CC: Jun Nakajima <jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c503e06d-9174-1dab-4f3f-1d7c88b499e9@suse.com>
 <bb4f2e4c-3ab9-a1b9-457b-f46275d34c87@srcf.net>
From: Jan Beulich <jbeulich@suse.com>
In-Reply-To: <bb4f2e4c-3ab9-a1b9-457b-f46275d34c87@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: AM5PR0601CA0081.eurprd06.prod.outlook.com
 (2603:10a6:206::46) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8e7361aa-e1db-488c-f6d7-08d9b4228467
X-MS-TrafficTypeDiagnostic: VI1PR04MB4847:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB48479F183E43C4BF26815B85B3679@VI1PR04MB4847.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	lc6wSCgPCiy+cfIL025L6HumUILoUSjEVD/VkV8pL6PKL0xG8GDJFmBSmEY/qmAx4UTBl9R/DbHrVD86DLCi96X5wLTN8MNIk5s+N44+blR9/XKLBlfgem6GaJRQcMpJXGcA8RoGHe1JsN5AVvYxpNb0HaIX/9LCaI9BvNyWQ0ilWa4ePeocRECsthiharjaDv4U4XlFlO2jVR4QKhytJyNrm1IUxxgQ1F3D1kPDIoPx+IJRK1lqQMd+O3MGdM6/BkE5KxFnRSxzf6e1p8rRISc9J0n0jeppZVFUD5OfV9kdZv+rxVCr4rqNvZsNd02XoP3gNvC4yIIHkGILy5GUJF0zrHVXbQhpfGQYDa1AE9X7hkiZxgoNzp3LsjrZBkgslTdmBR2/3w6VZWRwlPs3iqp3KVBZZeOmfi9Jve71TXwzt5d8Jh9tzVw/88w8i7JahfibvnDDq0YrwM7DrYphe84P0WhfscX6iPI0sEm2o20yKdcONv+4xGc1WmlGfuCrk4P46eM2CG49oIKSiHePEn78A6Qcl/BwClMPHBUuXmHWTDYhAgTf8T9jHS/OxYDnnzcuk3RtNDb1y8N6vhVL852yBeKpshPGHCDzwiornFSjDGT9sWGjQMG+j41MzNkh/J036odRlkVsdTZW3FpsSiPjRtD341+5FGqUBKAnziKrqc692sh/xA488mYTM1YrG9sbHkHEtKJF+Y0dt03nG0KR24RyqpT/RR8LpT4Yezo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(86362001)(6916009)(53546011)(4326008)(5660300002)(31696002)(186003)(54906003)(16576012)(83380400001)(8936002)(2616005)(26005)(4744005)(316002)(66946007)(66476007)(956004)(508600001)(31686004)(2906002)(8676002)(38100700002)(66556008)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?SnrCOhYKC9oDkVZLVWpMc6AWEPDsMOltSowSP4rM2MadzEYkxP6OkOJZDt9f?=
 =?us-ascii?Q?HthzhgbiobvAmp3RKCEwDabvrT7SrfTr55mx2HNRWpEPith3U4ESSlDDVAkG?=
 =?us-ascii?Q?6LbfgLOucUgRxhDdNpaHtlrX2CDk8TXO+BTiaaoAsqLo3adr2hj40hsyxZ/r?=
 =?us-ascii?Q?006190g9h7PY73SoLC/gAMyh9sPW0KnwdxYrQ/s3PvjYiOu6WigBfxqahvwZ?=
 =?us-ascii?Q?aLNQSxEErb1zQgnteMePbSrFADtJO/n1zFof8VuvGKqLiQFqpMY0cVZheDzx?=
 =?us-ascii?Q?CFCiaSEOIobMXpqik2BchPfTePmtSrrnFvmtIEITm2xvSXFi/Q42vTKEopDX?=
 =?us-ascii?Q?CAPLaFBy/gJ2z8DL55gRJq7Q6ditqijupWENqsGqzbLCwJb2FERfBq3ZCWQw?=
 =?us-ascii?Q?TNqgXFoRzBcdDpUnel/pBJ4NpMgNuoyXRZnTCXj7OwgUKGcq5MLb6nXhZZYz?=
 =?us-ascii?Q?SLR9IcwLT5GdTAEDTrL1HFct0uw4tQB/uK8TF83ZJqZa22XvdZUZst5MoeOC?=
 =?us-ascii?Q?i+arS3+wA6yfG4IRKbAs3umfPtig7x/8GdC10zOdJMxiqeO1l+WaN1iSPYi1?=
 =?us-ascii?Q?LIN/E6cPkKRdhcviWPLaHoo7tM77xp9gZUd55MHvsRxXnlrm4ur6JmI94yYJ?=
 =?us-ascii?Q?VFrq1PGxwRrE84XkRmgNnR92fffD7YjOEboSCWs8ClJPGg5OERVRSvfQ9KLX?=
 =?us-ascii?Q?aMi+K5IVFfQTf5Pbwt6T1JKSYlofMESKkEjOcbdD5vTuCsrq39o8gHIhJvdW?=
 =?us-ascii?Q?PCyn9wK4pHYEGG4mgzKFWc2eq2w6plOJ6CfeGIO9ddTY7kAxM6VspGnxov3i?=
 =?us-ascii?Q?lF5CjQBkm9NdUsCVo4O/KMtNoQtNoTkU4xH2ubBv9KX/BUTVV26Jy2oZIAtN?=
 =?us-ascii?Q?wK38wvaAhxDfxeCVNPBwaIOE8SbMK8O6LVidquMxtUkr+ERxEm/l898DU+Cn?=
 =?us-ascii?Q?5/kYdUDCF/zlHfjGy1pHbnpLQKIHwyDkU+cOciLAizKKb2ql8WFO05RdxA79?=
 =?us-ascii?Q?NWr70G6DMlzXcJVkFZQALr+EI55PSkgunXITmYdY2wtzjZ7pLcxeBNToU0xy?=
 =?us-ascii?Q?hsHM559qxaVn2yCEat16TJhauupEDDvepfXBY97wXqIX9NiM3ZErANpGqrJB?=
 =?us-ascii?Q?iXVHUqqzyU8isl2JNuUuIBnzUbwRWq9O81XfnkAjMSuFXlhDPtQ2+gA5bgOe?=
 =?us-ascii?Q?PKEx9He6sCUe+pB4cd7yZCRI3mQ0V9SbU1RaBffmjq4adtKgw9QBWE80+I8v?=
 =?us-ascii?Q?I+7Ewcl/K+6mg+D2GGeaVvqA2QHg0MbRDP9bvKc+9kfvcE94+Zj9+cnXW9xv?=
 =?us-ascii?Q?W3sd31qnrcRYp0VJH2UhiWZi7MRWDd7Zmre9wvr7JDE7/rTSTOyJIwpdy04B?=
 =?us-ascii?Q?xVJxjqOgRLS10FZrVmF/4Neb1jONXYOMy3IUtLg/+W2x0qPvhp1yA0F71ZGC?=
 =?us-ascii?Q?NKAm6sELik/TJFOawbUIO1DsxAA0a2OHLkAC/2nlAPYHS0W2nNymnB/f8zYE?=
 =?us-ascii?Q?8LXVWfGeZ/1DMpLtfVTN8ibMT+/UsCown/KPykREbqL9xolbixJYKkbv+LS7?=
 =?us-ascii?Q?Rsxc+74xy9fF+fBTAwUXA797YOw79cnOVEOpHybcTrvWd4cFc7GvF8C139Cp?=
 =?us-ascii?Q?9VA258ekSwq/WR8zQFaiUjM=3D?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8e7361aa-e1db-488c-f6d7-08d9b4228467
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 16:57:39.5308
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OJadte0OssMskf1Cle9O4U77ktorRPtb6b4GIleWMGUTRBu6cY3p4BoN0/0OX1FzF7yYSA+kCDo63wMXjo2ptg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4847

On 30.11.2021 17:44, Andrew Cooper wrote:
> On 30/11/2021 16:10, Jan Beulich wrote:
>> ept_free_entry() gets called after a flush - if one is necessary in the
>> first place - was already issued. That behavior is similar to NPT, which
>> also doesn't have any further flush in p2m_free_entry(). (Furthermore,
>> the function being recursive, in case of recursiveness way too many
>> flushes would have been issued.)
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> ept_free_entry() is called either recursively, or after an
> ept_split_super_page(), and I agree that it does not want to queue
> multiple flushes.
>=20
> However, I don't see where a suitable flush is in the superpage path.=C2=
=A0
> Am I overlooking something?

When it gets called after ept_split_super_page(), that's in case the
function failed (and hence no update to live page tables was made).

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 18:12:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 18:12:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235412.408400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7be-0000Oc-HJ; Tue, 30 Nov 2021 18:11:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235412.408400; Tue, 30 Nov 2021 18:11:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7be-0000OV-EL; Tue, 30 Nov 2021 18:11:54 +0000
Received: by outflank-mailman (input) for mailman id 235412;
 Tue, 30 Nov 2021 18:11:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms7bd-0000OK-4t
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 18:11:53 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fcc13387-5208-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 19:11:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fcc13387-5208-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638295911;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=/pUrjElA6slsBbeWTuKvX/U6+y7cE8rDWsCknQCS6GI=;
  b=EBwLx9SP3pKj7rHCJX2H1E8r/LABwxu7B+Z2r0RrK5hnpvjSE4daadn1
   LW2hwnNVDbdWfBHmsicWcZgwrawDquk41Y1ekIP0fbGszGTfHX8O9UQsJ
   PujSvlrvXl9GH31t5lgulOhvorQfzrzb0J7Qg9wGGWZS5YD/9G5ZfeQDy
   Y=;
Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 7nP1C6uTYs6YyDIVedK3VdiiS5hzI2JGu7RzRI6z8bK1lfVUk+W/j21Cit7f49DpRzxa21QR9n
 fYK3X5aSmyrM7iRVU+1J5/k39dppkW8DPANptTjQZRd0R7dgBSDpCz4bKt2UwU+GRuLnbUD1qL
 Qj81nM1XGYcZT2PCC/HrX5U4h/1NBjt1W9zTSqwAzOgmuKN/K2/ycb8FfdRH7O8tVld7puibSg
 llJzf1duavP6zv+HKCRue2RRsYo8HNJ6L1XZ3BN6vQ/zdqN6R78Ww+Xgy+wgI9OtbL7xZo0I4p
 YWs37os2ws/5dsWkTXrlsUWn
X-SBRS: 5.1
X-MesageID: 58893853
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:uGQUyqkD2EBv0IT8JqPcqSXo5gwWIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJKWDyGaa6MZjCjedl1aYi38UlVupfcn4RqSFRorSw9QyMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Uw2YLR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 I9zrLXpUgErBaLVw74ydkFISAhfG5QTrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQKaON
 pFJNGEHgBLoTkFRZXUQULwEpNyr30TOQR5EhnvOqv9ii4TU5FMoi+W8WDbPQfSWTMBchW6Ep
 WbL+WvoDxVcP9uaoRKM82mlh+vGtSn6RI4fGrC++vNwxlaUwwQ7EAUXT1CypfCzl2a0Ws5TJ
 kIZ/CYjt+4580nDZsnwWVi0rWCJujYYWsFMCKsq5QeV0K3W7g2FQG8eQVZpSvYrqcs3TjwCz
 UKSkpXiAjkHmKKRYWKQ8PGTtzzaBMQOBTZcP2leF1JDuoS95tFo5v7Scjp9OPSLl/SsAjfy+
 D+T93IRou0D1ucq8ZzuqDgrnAmQjpTOSwc04CDeUWSk8h51aeaZWmC41bTIxa0eddjEFzFtq
 FBBwpHDt75WUflhgQTUGL1VdIxF8cppJ9E1bbRHO5A6vwqg9He4FWy7yGEvfRw5WirolNKAX
 aMyhe+zzMMDVJdJRfUuC25UNyjM5fO7fTgCfqqJBueimrArKGe6ENhGPCZ8JVzFnkk2ir0YM
 pyGa8uqBntyIf05l2rsHr5GiuFxmnpWKYbvqXbTlE/PPV22PiP9dFv4GAHWMrBRAF2s/m05D
 Oqzx+PVkk4CAYUSkwHc8JIJLEBiEJTILcueliCjTcbaelAOMDh4U5f5mOp9E6Q4z/U9vrqZp
 RmVBx4HoGcTcFWacG1mnFg4M+ixNXu+xFpmVRER0aGAhyJ+PN3xtfhHLPPav9APrYRe8BK9d
 NFdE+3oPxiFYm6vF+01YcavoYp8Wg6sgA7SbSOpbCJmJ8xrRhDT+8+idQzqrXFcAi2yvMo4g
 ruhygKEHsZTG1U8VJ7bOKC10le8nXkBg+YuDUHGFcZeJRf3+49wJi2v0vJue5MQKQ/Ozyex3
 hqNBUtKvvHEpoI4qYGbha2No4qzPfF5G05WQzvS4bqsbHGI9Wu/245QFu2PeGmFBm/z/ayjY
 8RTzu39b6JbzAob7dIkHu8yn6wk5tbpq7tL9SheHS3GPwaxF7dtAniaxs0T5KdD8aBU5FmtU
 UWV99gEZbjQYJH5EEQcLRYOZ/iY0a1GgSHb6Pk4LRmo5CJz+7bbA0xeMwPV1X5YJbpxdogk3
 f0gqIgd7Anm0kgmNdOPjyZ18WWQLyNfD/V7589CWIK72BA2zlxiYIDHDn6k6Z6CXNxAL002L
 2LGn6HFnbldmhLPfndb+aIhBgaBaUDiYCx38WI=
IronPort-HdrOrdr: A9a23:PWf2W6HKMOy5GJkvpLqEfceALOsnbusQ8zAXPiBKJCC9E/bo4v
 xG+c5rtiMc5wxhIU3I5urwRpVoLUmskaKd7LN8AV7gZniWhILQFvAQ0WK6+UyTJ8SczJ8o6U
 4DSdkHNDSYNzEb/KTHDRGDe71L/DDgytHOuQ609QYJcegFUdAH0+8FYjzrYnGekDM2f6YRJd
 69wfdqnB2JXDAyTun+Kkg5c9Plj/ijrvPbiWJvPW9Z1OD3t0LS1JfKVz6i/jk/dBtrhZcamF
 Kqr+UP3NTejxhL8HDhPsbonulrpOc=
X-IronPort-AV: E=Sophos;i="5.87,276,1631592000"; 
   d="scan'208";a="58893853"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, "Petre
 Pircalabu" <ppircalabu@bitdefender.com>
Subject: [PATCH 0/2] x86/hvm: Cleanup
Date: Tue, 30 Nov 2021 18:11:37 +0000
Message-ID: <20211130181139.14398-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Andrew Cooper (2):
  x86/hvm: Simplify hvm_enable_msr_interception()
  x86/hvm: Rework nested hap functions to reduce parameters

 xen/arch/x86/hvm/hvm.c                  |  5 +----
 xen/arch/x86/hvm/svm/nestedsvm.c        | 11 +++++----
 xen/arch/x86/hvm/vmx/vvmx.c             | 10 ++++-----
 xen/arch/x86/mm/hap/nested_hap.c        | 40 +++++++++------------------------
 xen/arch/x86/mm/p2m.c                   | 12 +++++-----
 xen/include/asm-x86/hvm/hvm.h           | 21 ++++++++---------
 xen/include/asm-x86/hvm/nestedhvm.h     |  6 +----
 xen/include/asm-x86/hvm/svm/nestedsvm.h |  6 ++---
 xen/include/asm-x86/hvm/vmx/vvmx.h      |  8 +++----
 9 files changed, 47 insertions(+), 72 deletions(-)

-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 18:12:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 18:12:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235414.408423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7bi-0000uQ-0k; Tue, 30 Nov 2021 18:11:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235414.408423; Tue, 30 Nov 2021 18:11:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7bh-0000uJ-U5; Tue, 30 Nov 2021 18:11:57 +0000
Received: by outflank-mailman (input) for mailman id 235414;
 Tue, 30 Nov 2021 18:11:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms7bh-0000OK-6E
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 18:11:57 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff3faf13-5208-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 19:11:55 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff3faf13-5208-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638295915;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=XSzkVLoGE9z937AIRFhmIWxFCeWPF7/Hqp4uUfMmskQ=;
  b=Uth1TR1792qsQcxt0DULPVkXoQ0GvA/tjpYJlEK4TEE/m4Ef5poB9+mQ
   8Tv1hT7lvefjp8mewvwKOQ5SLonCbkjq4SX/DHW7Foteu/jcp6B4kTrFl
   gQE4eineESwCzi9YtgtcBRKSqREy4C4RHfN+M97dgsgu5bxjNbndtXPjf
   w=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: wZpKAQqbWF7oRjqV1maBNiVr4WVflNC+u1tN6jwIuwRnUQ72+Te4jYiLta1rgAXb0qllJKiArL
 /UE9Bfx7opTQYMDApysuJlXoIMhhw5QVsh+5O18NVUBvLWgAwXpwOTUCnGRhWScIbf8R4AN5Nd
 u19pQUGL3t8FQS5RP7NzVN1LTf3A0u5ptTgufcRXa7Jfy9ipxxzb+H9xolhQNpO58xp6zKvibg
 0ktkvE/65G0qDzgpemh3KYetZgsTK+K6PoEZVCqVraW/97GGSmj76vFkPSYchq2bBPqSnjWFaA
 AwmLF28uJaCth0CPb7sK1P9A
X-SBRS: 5.1
X-MesageID: 58452968
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:rOYuU6jVVDtgqVGCqX32Tg8zX1619xcKZh0ujC45NGQN5FlHY01je
 htvXGmOa/mOYGOjedp/OYWzo0wD6sSEnIBlTAtv/itgFHgb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0F0/NtTo5w7Rg29cz2YDja++wk
 YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq
 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx
 /1Q7K2yYFgyb5bW2+gkfSJXLj89AvVZreqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr
 KJCbmpXN1ba2rzwkOnTpupE36zPKOHCOo8Ft24m5jbeFfs8GrjIQrnQ5M8e1zA17ixLNauOO
 5dDOGQ/BPjGSy1JNH4nEpx9pcWLo3PwUTBWmEynoKVitgA/yyQuieOwYbI5YOeiWcxQl12wu
 mHC8mL2ExwecteYzFKt+3O3j+7LlAvxWZ4eGbO18PJnmhuYwWl7IAUOVEGwqP2wgFOWUdNDJ
 0Ea9ywioLJ0/0uuJvHtUhv9rHOasxo0X9tLD/Z8+AyL0rDT4QuSGi4DVDEpQP4MudIyRDcq/
 kSUhN6vDjtq2JWKTVqN+7HSqim9URX5NkdbO3VCF1FcpYC+/sdj1XojU+qPDoao1+z3MG7rk
 guQ7yQHqY4csNBI6P2kqAWvby2XmrDFSQs85wPyV22j7x9kaIPNW7FE+WQ3/t4bct/HEwDpU
 Gws3pHHsbtQVc3leDmlGb1VRNmUC+C53CowaLKFN70o7HyT9nGqZui8CxkudR4yYq7oldIEC
 XI/WD+9BrcPbBNGjoctOupd7vjGK4C7TrwJsdiOM7JzjmBZLlPvwc2XTRf4M5rRuEYti7ojH
 pyQbNyhC30XYYw+kmHmHb5EiuR1nHxkrY82eXwd50/8uVZ5TCTIIYrpzXPUNrxphE96iFu9H
 ylj2zuilEwEDbyWjtj/+o8PN1EaRUXX9ritw/G7gtWre1I8cEl4Uqe56ep4J+RNwvQE/s+Vr
 yrVchIJlzLCaYjvdFzihoZLM+i0A/6SbBsTYEQRALpf8yR5PNv0sv5AL8BfkHtO3LUL8MOYh
 sItI62oasmjgByck9jERZWi/oFkajqxggeCY3isbDQlJsYyTA3V4N70OADo8XBWXCawsMI/p
 Zym1x/aHsVfF1gzUp6OZaL91U61sFgchPl2AxnCLO5MdRi+64NtMSHw0KM6epleNRXZyzKG/
 A+KGhNE9/LVqoo4/YCR16CJpoukCcVkGU9eEzWJ5Lq6L3CCrGGi3ZVBQKCDejWEDDH4/6CrZ
 ON0yfDgMaJYwAYW4tQkS7sylPAw/driobNe3z9IJnSTYgT5EK5kL1mHwdJL6v9HyIhGtFbkQ
 UmI4NRbZ+mEYZu3DF4LKQM5Re2fzvVIyCLK5PE4LUimti96+L2LDRdbMxWW0XEPKbJ0NMUuw
 Ps7ud5Q4Au600J4PtGDhyFS1mKNMn1fDPl36sBEWNfm2lgx11VPQZ3AESunspiAZuJFPlQuP
 jLJ1rHJgK5Rxxaafnc+fZQXMTGxWXjaVMh28WI/
IronPort-HdrOrdr: A9a23:s3KGeqimVsY37ci/q3dkGrmpBXBQXuIji2hC6mlwRA09TySZ//
 rBoB19726MtN9xYgBHpTnuAsm9qB/nmaKdpLNhWItKPzOW31dATrsSjrcKqgeIc0aVm9K1l5
 0QF5SWYOeAdWSS5vya3ODXKbkdKaG8gcKVuds=
X-IronPort-AV: E=Sophos;i="5.87,276,1631592000"; 
   d="scan'208";a="58452968"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, "Petre
 Pircalabu" <ppircalabu@bitdefender.com>
Subject: [PATCH 2/2] x86/hvm: Rework nested hap functions to reduce parameters
Date: Tue, 30 Nov 2021 18:11:39 +0000
Message-ID: <20211130181139.14398-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130181139.14398-1-andrew.cooper3@citrix.com>
References: <20211130181139.14398-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Most functions in this call chain have 8 parameters, meaning that the final
two booleans are spilled to the stack for for calls.

First, delete nestedhap_walk_L1_p2m and introduce nhvm_hap_walk_L1_p2m() as a
thin wrapper around hvm_funcs just like all the other nhvm_*() hooks.  This
involves including xen/mm.h as the forward declaration of struct npfec is no
longer enough.

Next, replace the triple of booleans with struct npfec, which contains the
same information in the bottom 3 bits.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Tamas K Lengyel <tamas@tklengyel.com>
CC: Alexandru Isaila <aisaila@bitdefender.com>
CC: Petre Pircalabu <ppircalabu@bitdefender.com>

I don't much like this, but I think it's the least bad option in the short
term.  npfec is horribly mis-named/mis-used (at best, it should be considered
npf_info, and probably inherits from the same API/ABI mistakes our regular
pagewalk functions have) and is going to have to be untangled to make nested
virt a maintainable option.
---
 xen/arch/x86/hvm/hvm.c                  |  5 +----
 xen/arch/x86/hvm/svm/nestedsvm.c        | 11 +++++----
 xen/arch/x86/hvm/vmx/vvmx.c             | 10 ++++-----
 xen/arch/x86/mm/hap/nested_hap.c        | 40 +++++++++------------------------
 xen/arch/x86/mm/p2m.c                   | 12 +++++-----
 xen/include/asm-x86/hvm/hvm.h           | 13 ++++++++---
 xen/include/asm-x86/hvm/nestedhvm.h     |  6 +----
 xen/include/asm-x86/hvm/svm/nestedsvm.h |  6 ++---
 xen/include/asm-x86/hvm/vmx/vvmx.h      |  8 +++----
 9 files changed, 46 insertions(+), 65 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 31e9474db093..07a11d372e9f 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1769,10 +1769,7 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
          * the same as for shadow paging.
          */
 
-         rv = nestedhvm_hap_nested_page_fault(curr, &gpa,
-                                              npfec.read_access,
-                                              npfec.write_access,
-                                              npfec.insn_fetch);
+        rv = nestedhvm_hap_nested_page_fault(curr, &gpa, npfec);
         switch (rv) {
         case NESTEDHVM_PAGEFAULT_DONE:
         case NESTEDHVM_PAGEFAULT_RETRY:
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 6d9063004077..abc178d8d482 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -1216,10 +1216,9 @@ nsvm_vmcb_hap_enabled(struct vcpu *v)
  * walk is successful, the translated value is returned in
  * L1_gpa. The result value tells what to do next.
  */
-int
-nsvm_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                     unsigned int *page_order, uint8_t *p2m_acc,
-                     bool_t access_r, bool_t access_w, bool_t access_x)
+int nsvm_hap_walk_L1_p2m(
+    struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
+    uint8_t *p2m_acc, struct npfec npfec)
 {
     uint32_t pfec;
     unsigned long nested_cr3, gfn;
@@ -1227,9 +1226,9 @@ nsvm_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
     nested_cr3 = nhvm_vcpu_p2m_base(v);
 
     pfec = PFEC_user_mode | PFEC_page_present;
-    if ( access_w )
+    if ( npfec.write_access )
         pfec |= PFEC_write_access;
-    if ( access_x )
+    if ( npfec.insn_fetch )
         pfec |= PFEC_insn_fetch;
 
     /* Walk the guest-supplied NPT table, just as if it were a pagetable */
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index e9f94daf6493..7419ee9dd0bc 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -2346,16 +2346,16 @@ int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
  * walk is successful, the translated value is returned in
  * L1_gpa. The result value tells what to do next.
  */
-int
-nvmx_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                     unsigned int *page_order, uint8_t *p2m_acc,
-                     bool_t access_r, bool_t access_w, bool_t access_x)
+int nvmx_hap_walk_L1_p2m(
+    struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
+    uint8_t *p2m_acc, struct npfec npfec)
 {
     int rc;
     unsigned long gfn;
     uint64_t exit_qual;
     uint32_t exit_reason = EXIT_REASON_EPT_VIOLATION;
-    uint32_t rwx_rights = (access_x << 2) | (access_w << 1) | access_r;
+    uint32_t rwx_rights =
+        (npfec.insn_fetch << 2) | (npfec.write_access << 1) | npfec.read_access;
     struct nestedvmx *nvmx = &vcpu_2_nvmx(v);
 
     vmx_vmcs_enter(v);
diff --git a/xen/arch/x86/mm/hap/nested_hap.c b/xen/arch/x86/mm/hap/nested_hap.c
index 50fa2dd9f405..d8a7b3b40167 100644
--- a/xen/arch/x86/mm/hap/nested_hap.c
+++ b/xen/arch/x86/mm/hap/nested_hap.c
@@ -113,31 +113,13 @@ nestedhap_fix_p2m(struct vcpu *v, struct p2m_domain *p2m,
     }
 }
 
-/* This function uses L2_gpa to walk the P2M page table in L1. If the
- * walk is successful, the translated value is returned in
- * L1_gpa. The result value tells what to do next.
- */
-int
-nestedhap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                      unsigned int *page_order, uint8_t *p2m_acc,
-                      bool_t access_r, bool_t access_w, bool_t access_x)
-{
-    ASSERT(hvm_funcs.nhvm_hap_walk_L1_p2m);
-
-    return hvm_funcs.nhvm_hap_walk_L1_p2m(v, L2_gpa, L1_gpa, page_order,
-        p2m_acc, access_r, access_w, access_x);
-}
-
-
 /* This function uses L1_gpa to walk the P2M table in L0 hypervisor. If the
  * walk is successful, the translated value is returned in L0_gpa. The return 
  * value tells the upper level what to do.
  */
-static int
-nestedhap_walk_L0_p2m(struct p2m_domain *p2m, paddr_t L1_gpa, paddr_t *L0_gpa,
-                      p2m_type_t *p2mt, p2m_access_t *p2ma,
-                      unsigned int *page_order,
-                      bool_t access_r, bool_t access_w, bool_t access_x)
+static int nestedhap_walk_L0_p2m(
+    struct p2m_domain *p2m, paddr_t L1_gpa, paddr_t *L0_gpa, p2m_type_t *p2mt,
+    p2m_access_t *p2ma, unsigned int *page_order, struct npfec npfec)
 {
     mfn_t mfn;
     int rc;
@@ -154,7 +136,7 @@ nestedhap_walk_L0_p2m(struct p2m_domain *p2m, paddr_t L1_gpa, paddr_t *L0_gpa,
         goto out;
 
     rc = NESTEDHVM_PAGEFAULT_L0_ERROR;
-    if ( access_w && p2m_is_readonly(*p2mt) )
+    if ( npfec.write_access && p2m_is_readonly(*p2mt) )
         goto out;
 
     if ( p2m_is_paging(*p2mt) || p2m_is_shared(*p2mt) || !p2m_is_ram(*p2mt) )
@@ -176,9 +158,8 @@ nestedhap_walk_L0_p2m(struct p2m_domain *p2m, paddr_t L1_gpa, paddr_t *L0_gpa,
  *
  * Returns:
  */
-int
-nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
-    bool_t access_r, bool_t access_w, bool_t access_x)
+int nestedhvm_hap_nested_page_fault(
+    struct vcpu *v, paddr_t *L2_gpa, struct npfec npfec)
 {
     int rv;
     paddr_t L1_gpa, L0_gpa;
@@ -192,8 +173,8 @@ nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
     p2m = p2m_get_hostp2m(d); /* L0 p2m */
 
     /* walk the L1 P2M table */
-    rv = nestedhap_walk_L1_p2m(v, *L2_gpa, &L1_gpa, &page_order_21, &p2ma_21,
-        access_r, access_w, access_x);
+    rv = nhvm_hap_walk_L1_p2m(v, *L2_gpa, &L1_gpa, &page_order_21, &p2ma_21,
+                              npfec);
 
     /* let caller to handle these two cases */
     switch (rv) {
@@ -209,9 +190,8 @@ nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
     }
 
     /* ==> we have to walk L0 P2M */
-    rv = nestedhap_walk_L0_p2m(p2m, L1_gpa, &L0_gpa,
-        &p2mt_10, &p2ma_10, &page_order_10,
-        access_r, access_w, access_x);
+    rv = nestedhap_walk_L0_p2m(p2m, L1_gpa, &L0_gpa, &p2mt_10, &p2ma_10,
+                               &page_order_10, npfec);
 
     /* let upper level caller to handle these two cases */
     switch (rv) {
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index def1695cf00b..68e38cba14f7 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -1930,6 +1930,11 @@ unsigned long paging_gva_to_gfn(struct vcpu *v,
         const struct paging_mode *mode;
         uint8_t l1_p2ma;
         unsigned int l1_page_order;
+        struct npfec npfec = {
+            .read_access  = 1,
+            .write_access = *pfec & PFEC_write_access,
+            .insn_fetch   = *pfec & PFEC_insn_fetch,
+        };
         int rv;
 
         /* translate l2 guest va into l2 guest gfn */
@@ -1940,11 +1945,8 @@ unsigned long paging_gva_to_gfn(struct vcpu *v,
         if ( l2_gfn == gfn_x(INVALID_GFN) )
             return gfn_x(INVALID_GFN);
 
-        rv = nestedhap_walk_L1_p2m(v, pfn_to_paddr(l2_gfn), &l1_gpa,
-                                   &l1_page_order, &l1_p2ma,
-                                   1,
-                                   !!(*pfec & PFEC_write_access),
-                                   !!(*pfec & PFEC_insn_fetch));
+        rv = nhvm_hap_walk_L1_p2m(
+            v, pfn_to_paddr(l2_gfn), &l1_gpa, &l1_page_order, &l1_p2ma, npfec);
 
         if ( rv != NESTEDHVM_PAGEFAULT_DONE )
             return gfn_x(INVALID_GFN);
diff --git a/xen/include/asm-x86/hvm/hvm.h b/xen/include/asm-x86/hvm/hvm.h
index 2767427aa938..7e571e1515c6 100644
--- a/xen/include/asm-x86/hvm/hvm.h
+++ b/xen/include/asm-x86/hvm/hvm.h
@@ -25,6 +25,7 @@
 #include <asm/current.h>
 #include <asm/x86_emulate.h>
 #include <asm/hvm/asid.h>
+#include <xen/mm.h>
 
 #ifdef CONFIG_HVM_FEP
 /* Permit use of the Forced Emulation Prefix in HVM guests */
@@ -203,8 +204,7 @@ struct hvm_function_table {
     /*Walk nested p2m  */
     int (*nhvm_hap_walk_L1_p2m)(struct vcpu *v, paddr_t L2_gpa,
                                 paddr_t *L1_gpa, unsigned int *page_order,
-                                uint8_t *p2m_acc, bool_t access_r,
-                                bool_t access_w, bool_t access_x);
+                                uint8_t *p2m_acc, struct npfec npfec);
 
     void (*enable_msr_interception)(struct domain *d, uint32_t msr);
     bool_t (*is_singlestep_supported)(void);
@@ -350,7 +350,6 @@ int hvm_debug_op(struct vcpu *v, int32_t op);
 void hvm_toggle_singlestep(struct vcpu *v);
 void hvm_fast_singlestep(struct vcpu *v, uint16_t p2midx);
 
-struct npfec;
 int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
                               struct npfec npfec);
 
@@ -631,6 +630,14 @@ static inline enum hvm_intblk nhvm_interrupt_blocked(struct vcpu *v)
     return hvm_funcs.nhvm_intr_blocked(v);
 }
 
+static inline int nhvm_hap_walk_L1_p2m(
+    struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
+    uint8_t *p2m_acc, struct npfec npfec)
+{
+    return hvm_funcs.nhvm_hap_walk_L1_p2m(
+        v, L2_gpa, L1_gpa, page_order, p2m_acc, npfec);
+}
+
 static inline void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     hvm_funcs.enable_msr_interception(d, msr);
diff --git a/xen/include/asm-x86/hvm/nestedhvm.h b/xen/include/asm-x86/hvm/nestedhvm.h
index d26392578621..7184928c2bb1 100644
--- a/xen/include/asm-x86/hvm/nestedhvm.h
+++ b/xen/include/asm-x86/hvm/nestedhvm.h
@@ -58,11 +58,7 @@ bool_t nestedhvm_vcpu_in_guestmode(struct vcpu *v);
 #define NESTEDHVM_PAGEFAULT_RETRY      5
 #define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
 int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
-    bool_t access_r, bool_t access_w, bool_t access_x);
-
-int nestedhap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                          unsigned int *page_order, uint8_t *p2m_acc,
-                          bool_t access_r, bool_t access_w, bool_t access_x);
+                                    struct npfec npfec);
 
 /* IO permission map */
 unsigned long *nestedhvm_vcpu_iomap_get(bool_t ioport_80, bool_t ioport_ed);
diff --git a/xen/include/asm-x86/hvm/svm/nestedsvm.h b/xen/include/asm-x86/hvm/svm/nestedsvm.h
index 087369845761..c3ef2354140c 100644
--- a/xen/include/asm-x86/hvm/svm/nestedsvm.h
+++ b/xen/include/asm-x86/hvm/svm/nestedsvm.h
@@ -122,9 +122,9 @@ enum hvm_intblk nsvm_intr_blocked(struct vcpu *v);
 void svm_vmexit_do_clgi(struct cpu_user_regs *regs, struct vcpu *v);
 void svm_vmexit_do_stgi(struct cpu_user_regs *regs, struct vcpu *v);
 bool_t nestedsvm_gif_isset(struct vcpu *v);
-int nsvm_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                         unsigned int *page_order, uint8_t *p2m_acc,
-                         bool_t access_r, bool_t access_w, bool_t access_x);
+int nsvm_hap_walk_L1_p2m(
+    struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
+    uint8_t *p2m_acc, struct npfec npfec);
 
 #define NSVM_INTR_NOTHANDLED     3
 #define NSVM_INTR_NOTINTERCEPTED 2
diff --git a/xen/include/asm-x86/hvm/vmx/vvmx.h b/xen/include/asm-x86/hvm/vmx/vvmx.h
index d5f68f30b129..e4ca3bc6ee2b 100644
--- a/xen/include/asm-x86/hvm/vmx/vvmx.h
+++ b/xen/include/asm-x86/hvm/vmx/vvmx.h
@@ -100,10 +100,10 @@ bool_t nvmx_ept_enabled(struct vcpu *v);
 #define EPT_TRANSLATE_MISCONFIG     2
 #define EPT_TRANSLATE_RETRY         3
 
-int
-nvmx_hap_walk_L1_p2m(struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa,
-                     unsigned int *page_order, uint8_t *p2m_acc,
-                     bool_t access_r, bool_t access_w, bool_t access_x);
+int nvmx_hap_walk_L1_p2m(
+    struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
+    uint8_t *p2m_acc, struct npfec npfec);
+
 /*
  * Virtual VMCS layout
  *
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 18:12:07 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 18:12:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235413.408412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7bf-0000eF-Qd; Tue, 30 Nov 2021 18:11:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235413.408412; Tue, 30 Nov 2021 18:11:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7bf-0000e8-Lk; Tue, 30 Nov 2021 18:11:55 +0000
Received: by outflank-mailman (input) for mailman id 235413;
 Tue, 30 Nov 2021 18:11:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1ms7bd-0000OK-TY
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 18:11:54 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fc56d8ec-5208-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 19:11:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc56d8ec-5208-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638295911;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=kyOL94ZVKxqY//r4+vWiit5CAiZx1BlcznsYktkan5E=;
  b=Q3o2cMj+NQX8mfqX8dA6zKesIdjmumw2KtAmTngfVe34vu2kONkZLAo6
   EDgtpIvUdwVTKmgj8xYGETKmG0MLhjbj3GpU8YMQt+a9dZ6Ghq7YcsSLY
   JS0DGMZpeu+Xnzg3fptbco1ZdBbxejs/mo2WbTLJ08hCCjbXElogLDlpx
   8=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: 6biRmge/6yoMWTzcNrwpVlgbk+Ua8XexRMsw41ZSXnpp0VGWRK+thtg+ZL5/75CM2ypvoqoK73
 fvdz4Yl3HIz3eWub81nB9vqBql9JOAOfE4+8SAO8+pt777ohR4ZMC9LWRLWRKEJg8iPjm5HgWf
 aRqIaMOJNOSb6aCMe/JYRftvyjmdM4J0Vn3Dtajzcd9AQJnZetpYmixEN5jvO/6vfUu/B8c4mR
 O/Bg0bVBBJlnMbI9JKemB49PuGCB9PiSbNFyRev0XXjyvCzRI2fgXRGS0AgIFVF04/YgsrfB7I
 +NDLWorqVYgkWxIaK8oW8gF8
X-SBRS: 5.1
X-MesageID: 60966838
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:ulWjpapgMMa31i3ehPeDEMp4vEFeBmKPYhIvgKrLsJaIsI4StFCzt
 garIBnTa/6NYTSme90lbovj8EIHsZSDxtUyHlFvrS1nEyJE+ZuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IPhW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnZuhcBY0GKDIodkmcShpLiNvA61N8YaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9
 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O
 ZJIN2Q/N0SojxtnJUU4T5ETu86R2FKufTF8owm4n4wt2j2GpOB2+Oe0a4eEEjCQfu1Jl0ORv
 Ura/GD0BB4LOdjZwj2Amlqlh/TGnCfycIgTCLG1+PNsjFCJgGcUDXU+TUO6u/Kwjke0RvpVK
 lAY9yQjq6Q/7gqgSdyVdw21pjuIswARX/JUEvYm80edx6zM+QGbC2MYCDlbZ7QOluU7WDgr3
 V+hhM7yCHpkt7j9YW2Z3qeZq3W1Iyd9EIMZTXZaF01fuYCl+dxtyEKUJjp+LEKrptrkICDt5
 T2OlRUFpYQisMwa6aWw9GmS1lpAuaP1ZgIy4wzWWEes4QV4eJOpauSU1LTL0RpTBN3HFwfc5
 RDoj+DbtblTVs/VyERhVc1UROnxj8tpJgEwlrKG83MJ0z22s0CucolLiN2VDBc4a51UEdMFj
 aK6hO+w2HOxFCf6BUOUS9joYyjP8UQGPY++PhwzRoATCqWdjCfdoElTibe4hggBanQEn6AlI
 ou8es2xF3scAqkP5GPoHLdHiOZwnX5kmTm7qXXHI/KPiuH2iJm9E+ptDbdzRrphsPPsTPv9r
 b6zyPdmOz0ACbajM0E7AKYYLEwQLGhTOHwFg5c/SwJ3GSI/QDtJI6aImdsJItU594wIxrag1
 izsASdwlQug7UAr3C3XMxiPnpu0Bs0hxZ/6VARxVWuVN48LPdzysfxBLsRvJtHKNoVLlJZJc
 hXMQO3Yatwnd9gN0211gUDVoNMweRK1qxiJOib5MjEzc4Q5H17C+8P+fxup/y4LV3Llucw7q
 rym9wXaXZtcGFgyUJeIMKqinwGroHwQuONuRE+UcNNdT1rhrdpxICvrg/5pf8xVcUffxiGX3
 hq9CAsDobWfuJc89dTE3PjWr4qgH+ZkMFBdGm3XseS/OSXApzLxyo5cSueYOzvaUTqsqqmlY
 OxUydD6MeEGwwkW49YtTe4zwPtntdX1prJcwgB1J1nxbgymWuF6P32L/chTrakRlLVXjhS7B
 xCU8d5ANLTXZM68SAwNJBAoZ/io3O0PnmWA9uw8JUj36XMl/LeDVkkObRCAhDYEcelwOYIhh
 +wgpNQX+0q0jR9zaoSKiSVd9mKtKH0cUvp46sFGUdGz0gd7mEtfZZH8CzPt5MDdYtpBBUAmP
 zuIifeQnL9b3EfDLyI+GHWlMTCxXnjSVMSmFGM/Gmk=
IronPort-HdrOrdr: A9a23:FcoDGqFKgurN2jBgpLqE0MeALOsnbusQ8zAXP0AYc3Jom6uj5r
 mTdZUgpHnJYVkqOE3I9ertBEDEewK4yXcX2/h3AV7BZniEhILAFugLhuGO/9SjIVybygc079
 YZT0EUMrzN5DZB4voSmDPIceod/A==
X-IronPort-AV: E=Sophos;i="5.87,276,1631592000"; 
   d="scan'208";a="60966838"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, "Petre
 Pircalabu" <ppircalabu@bitdefender.com>
Subject: [PATCH 1/2] x86/hvm: Simplify hvm_enable_msr_interception()
Date: Tue, 30 Nov 2021 18:11:38 +0000
Message-ID: <20211130181139.14398-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <20211130181139.14398-1-andrew.cooper3@citrix.com>
References: <20211130181139.14398-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The sole caller doesn't check the return value, and both vendors implement the
hook.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Tamas K Lengyel <tamas@tklengyel.com>
CC: Alexandru Isaila <aisaila@bitdefender.com>
CC: Petre Pircalabu <ppircalabu@bitdefender.com>
---
 xen/include/asm-x86/hvm/hvm.h | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/xen/include/asm-x86/hvm/hvm.h b/xen/include/asm-x86/hvm/hvm.h
index bd2cbb0e7baf..2767427aa938 100644
--- a/xen/include/asm-x86/hvm/hvm.h
+++ b/xen/include/asm-x86/hvm/hvm.h
@@ -631,15 +631,9 @@ static inline enum hvm_intblk nhvm_interrupt_blocked(struct vcpu *v)
     return hvm_funcs.nhvm_intr_blocked(v);
 }
 
-static inline bool_t hvm_enable_msr_interception(struct domain *d, uint32_t msr)
+static inline void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
-    if ( hvm_funcs.enable_msr_interception )
-    {
-        hvm_funcs.enable_msr_interception(d, msr);
-        return 1;
-    }
-
-    return 0;
+    hvm_funcs.enable_msr_interception(d, msr);
 }
 
 static inline bool_t hvm_is_singlestep_supported(void)
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 18:12:50 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 18:12:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235422.408433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7cY-00022o-GN; Tue, 30 Nov 2021 18:12:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235422.408433; Tue, 30 Nov 2021 18:12:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7cY-00022h-DT; Tue, 30 Nov 2021 18:12:50 +0000
Received: by outflank-mailman (input) for mailman id 235422;
 Tue, 30 Nov 2021 18:12:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JSNa=QR=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1ms7cW-0001Nx-P2
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 18:12:49 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060f.outbound.protection.outlook.com
 [2a01:111:f400:7eab::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e155ee1-5209-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 19:12:47 +0100 (CET)
Received: from BN6PR16CA0003.namprd16.prod.outlook.com (2603:10b6:404:f5::13)
 by MN2PR02MB6159.namprd02.prod.outlook.com (2603:10b6:208:184::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Tue, 30 Nov
 2021 18:12:42 +0000
Received: from BN1NAM02FT010.eop-nam02.prod.protection.outlook.com
 (2603:10b6:404:f5:cafe::ae) by BN6PR16CA0003.outlook.office365.com
 (2603:10b6:404:f5::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.24 via Frontend
 Transport; Tue, 30 Nov 2021 18:12:42 +0000
Received: from xir-pvapexch02.xlnx.xilinx.com (149.199.80.198) by
 BN1NAM02FT010.mail.protection.outlook.com (10.13.2.128) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4734.20 via Frontend Transport; Tue, 30 Nov 2021 18:12:42 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) by
 xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Tue, 30 Nov 2021 18:12:41 +0000
Received: from smtp.xilinx.com (172.21.105.198) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Tue, 30 Nov 2021 18:12:41 +0000
Received: from [10.108.8.223] (port=46476 helo=xcbayankuma41x.xilinx.com)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1ms7cP-00019O-5V; Tue, 30 Nov 2021 18:12:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e155ee1-5209-11ec-b941-1df2895da90e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OMjMYaa3lYfB01i2g/eCPk5Yifgz4oon0/YkRNWBwQknUPvqfgqAaU3QSByITonjlxP00sf4Pu8COcbmvbHBSX4LEEaS/NRkjWakzL+UJPONDTT0C6871btaGcwOSPygCFGoC2TKAPEFmkkOQgslLw1lSZf6Wm28eh8WoBxQRf6Xuljllb+/fb9FswWsu5NcTzKnIBQ+gWkfry8+ga15zbO20/9WcxTJrRryp7eVvqM95J7G/TqR0yNh08/vVovAAno7mu2UE2/9C+xedBJc5Yhi0Mex6YAPFDBz6QNDr/ThzjhcGh0UNa23+YpfmqJ8th3MYDAuaPd9kXCyyqI9vg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PFvK7IuVRYKoZzH9d/eMklzpLkCZrKFxKUNfK32LjsI=;
 b=eVfi0avWJu62FQzKFKdKuZNfDO7E8yOmA2n7bn5K2WKlMhS9ZCOTTSt7xprZn3r52zaTty/9GWeQVm7S+liQU3FefXXcFcd6YgUu8B+UQetiXtu6yv8a91+ofvoL1jSAtAw9JuOlITxXjbqAEOn14UsrqMXMh5Vz8tuF3T0/zyQaMq9CSICay0zbblG0wadkyKGekLpbPzhhQKe08yvW+CyFVTpzze4JRKf6Q6S5EUZVTxurAFo0s+6c1mlBytUFS0zpYXGDzvMD1gschJVKm7hrg0au3ivf/x7HznnOh8dhq/McJvyStbx6MYWAsIdzbl9NovT5XjlcHHa1y34Xkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none
 header.from=xilinx.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PFvK7IuVRYKoZzH9d/eMklzpLkCZrKFxKUNfK32LjsI=;
 b=W70IAwqa8UOjWAFZJ0rpH7hCUIe1ntdw/sXsVleUD990FDXQI8qC7xzJ0zEf0selbuT7f4VzTurYimpJCt/GCUR9lXBW3hp4bdmsTKrYnLrRlmwKqqjuHjrxZ2Ne9vI4CDvi5kmbOH0/UFn3Mw5jVYgGOf1zG/SJWaX9rMvGw44=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch02.xlnx.xilinx.com;
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <stefanos@xilinx.com>, <julien@xen.org>,
	<Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<jbeulich@suse.com>, Ayan Kumar Halder <ayankuma@xilinx.com>,
	<andre.przywara@arm.com>
Subject: [PATCH v2] bitops: Fix incorrect value in comment
Date: Tue, 30 Nov 2021 18:12:38 +0000
Message-ID: <20211130181238.5501-1-ayankuma@xilinx.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1e5315c2-8b6e-4abe-b343-08d9b42d0091
X-MS-TrafficTypeDiagnostic: MN2PR02MB6159:
X-Microsoft-Antispam-PRVS:
	<MN2PR02MB6159DCD4221EBB806F83B94CB2679@MN2PR02MB6159.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:1002;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	sfZtrMfAD/SLgmgFZBQNjA5VvrfrfpYOnMO/ZO8jG+rLdjRyIfUsIeQt4QyCUmMQuJe7Vkqk1ywIjxo4pGJDe0gN4LfcyD2lAC59Q8BEWsMlBqDIzF00XkYxi427KRBFqR+9gXGgiXL3ahcMI5BtX1oerwQZ2LxfDvYz2h4FlJ9HDENJF+A7bE9Z6D1e2xyD5sRnHyTDjTiwBuo28LCKGPgpfghI10KMmp3Krd5Fj20lyBRMVsTpVobIPYpC0B3NNwsGukUEaMDmwwKaHFj8m+aL6CQrF/nSLrLqFJul/jVoOh48laQcntcNb1RQnCmnOD5AOA4aw0khhdaJV1GvWfBOSjBwoqYnhr9TOC4+E98hJ0A8pEE/lcMNUjFuhmv5ket9m4Hu55KU0Px0N9aYpnh3rgdqpKZNb36Jh6OFY8fs/ZcCGsOlrN4QnIHvlL1bdKAQtgd0CxIOBM8C/hObJJy3nCcwtXL1sCOKf+UlJ8Dy5A7O4D+I9TDNaQdHjqKRXJjQlHlCxBCkz/XyiRkazpV2NEp26sxMVIwk8ZwMPkkDccc4HLtR/LZvNbjjNID7EuIkaMmOjWaZEEAD9AB5K56QWrF4QyRffxwigUJHnNxekoL+H1kIz1cR0R5WPyNtxfUd61ySoRjVYhYK4+5qJCK3AYY9QnmdSMMRTEURDxJASjiNtpZXcVAILtU8BaO2AKbLoLkQNKb/lTc7To8zgiWzsi41Py/CQ+Q29oMQkB4=
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch02.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(316002)(1076003)(5660300002)(54906003)(356005)(7636003)(8936002)(70206006)(6916009)(83380400001)(8676002)(47076005)(26005)(6666004)(9786002)(2616005)(4326008)(336012)(4744005)(426003)(7696005)(508600001)(36756003)(70586007)(82310400004)(2906002)(36860700001)(186003)(102446001);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 18:12:42.3913
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e5315c2-8b6e-4abe-b343-08d9b42d0091
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1NAM02FT010.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR02MB6159

GENMASK(30, 21) should be 0x7fe00000. Fixed this in the comment
in bitops.h.

Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
---
Changelog :-
v2 :- 1. Replaced the word "vector" with "value" in comment.
2. Changed 0x07fe00000 to 0x7fe00000.
3. Updated the commit message to make it meaningful.
(All suggested by Jan Beulich)

 xen/include/xen/bitops.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/xen/bitops.h b/xen/include/xen/bitops.h
index a64595f68e..dad4b5aa1e 100644
--- a/xen/include/xen/bitops.h
+++ b/xen/include/xen/bitops.h
@@ -5,7 +5,7 @@
 /*
  * Create a contiguous bitmask starting at bit position @l and ending at
  * position @h. For example
- * GENMASK(30, 21) gives us the 32bit vector 0x01fe00000.
+ * GENMASK(30, 21) gives us the 32bit value 0x7fe00000.
  */
 #define GENMASK(h, l) \
     (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 18:14:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 18:14:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235431.408445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7dw-0002lf-Rx; Tue, 30 Nov 2021 18:14:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235431.408445; Tue, 30 Nov 2021 18:14:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7dw-0002lY-OO; Tue, 30 Nov 2021 18:14:16 +0000
Received: by outflank-mailman (input) for mailman id 235431;
 Tue, 30 Nov 2021 18:14:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JSNa=QR=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1ms7dv-0002RQ-Fj
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 18:14:15 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20603.outbound.protection.outlook.com
 [2a01:111:f400:7eab::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 523ac0f8-5209-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 19:14:14 +0100 (CET)
Received: from DM6PR08CA0002.namprd08.prod.outlook.com (2603:10b6:5:80::15) by
 SA0PR02MB7244.namprd02.prod.outlook.com (2603:10b6:806:ed::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4734.22; Tue, 30 Nov 2021 18:14:11 +0000
Received: from DM3NAM02FT054.eop-nam02.prod.protection.outlook.com
 (2603:10b6:5:80:cafe::c2) by DM6PR08CA0002.outlook.office365.com
 (2603:10b6:5:80::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23 via Frontend
 Transport; Tue, 30 Nov 2021 18:14:11 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 DM3NAM02FT054.mail.protection.outlook.com (10.13.5.135) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4734.20 via Frontend Transport; Tue, 30 Nov 2021 18:14:10 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Tue, 30 Nov 2021 18:14:09 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Tue, 30 Nov 2021 18:14:09 +0000
Received: from [10.71.116.21] (port=53164)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1ms7do-0000tw-B4; Tue, 30 Nov 2021 18:14:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 523ac0f8-5209-11ec-976b-d102b41d0961
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ldDjg8LlIsuEHrXZ+IYasF7tg4KHVusyGcSKOTD1tdNZCKpe2J4MQbIMKmcg/BbNdr552PlMVD0MZf3AdA4KN8myt7nvcyibr+MLR2vjCzcnmwRQ+oUqO8Z0Ffx+D135lluT7QMJkwvVu6aFLcnYdlyQ6yB6KrXCmWxRbDAGvi7X8dmIkudXFotnQP79ELKDSxpY0Bw1LxM+Fmg8u2/1V8pioZRpwNsfLQgn/ZfuPWPxqWKDHRB5LLjUZVXsj04J2GKtWuoxY41D4Fg3tW2smYw6GBPkRxSDu0waJtyypJYCW2qBDBcbpGdkrcK6OeYDfmK9Ucms6smabhcV3HUO+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=amtjdVD53kEO5nY/whsZSNi81SJy2uo2q4XMGCnMdn4=;
 b=g54e673rEm65vFi5l8TW+Za+T0C6UHTklPDBFJYZb5RHcp5eEZoKlM1f/i+JxNTY3ASyp2NP9Pa19STChEqgXF6SkbcOwctc/QHd554mUiCGnFtKq7ZN6Op3l/z7pbODCKStl3qSvXNbm/ij4qfarmSw+Ccrk9fprW3RQezsdt9bleqBhm0f5Ja3Uq4UBTL/ZX4+0tTiLKQU0xgqvJR4VbXT/61usLO+D6NH71dJ9yZkcknlFt6DuRqxU4S0WjhYWhwBw4wB8Y4gqcxVc8pv6oUG6nSXBpAa0TkFsWd/VkIK5uu3UUlZAynOJwjZjZ2rXLizgL+dyYzR1BTtKjq8OQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=suse.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=amtjdVD53kEO5nY/whsZSNi81SJy2uo2q4XMGCnMdn4=;
 b=DHU3izni/FqPOt5uya0j5pf7yxi1rHRN0rEAYVxpAUlg+QHmF/HYPhGuqAHIDyc3Hr2ZgxIiWSQoV7UVF1r6qQjG16w8d6feA4zxb1FB0KNYqcdT14BJj52z54CND3YJDAwFJF1p8XE7NlmeEZVYnnHRev6OVUROMpEubEL4Jv8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
Message-ID: <093c9380-4672-76e3-d014-73afc1f47d1c@xilinx.com>
Date: Tue, 30 Nov 2021 18:14:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] Fixed an incorrect value
To: Jan Beulich <jbeulich@suse.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>
CC: <sstabellini@kernel.org>, <stefanos@xilinx.com>, <julien@xen.org>,
	<Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
References: <20211129194450.62467-1-ayankuma@xilinx.com>
 <3f0230f3-79d2-d40e-f3f3-33201c2792b0@suse.com>
 <bf77c97c-df14-b6f9-cd8c-b3d86568037d@xilinx.com>
 <a8135634-d5f3-c377-3426-5307327cd1cc@suse.com>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <a8135634-d5f3-c377-3426-5307327cd1cc@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: da64e791-3db3-458e-7982-08d9b42d3540
X-MS-TrafficTypeDiagnostic: SA0PR02MB7244:
X-Microsoft-Antispam-PRVS:
	<SA0PR02MB72441CC5D9D940BE13AEEA00B2679@SA0PR02MB7244.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ibQrAaMYO2bzxn/suthjC4HPlGdVkgqSO2Bq/O1MSyH5TBPsjQF6KsbvsUYnVmPvd/VvS4Fic53+B5+vtPbvhjsBKLQvqB9g6So85dlsWJ/w+o2x308Iqv2TFot4Yn1cjI0D/9d5lJCCAx0VJfTWof85ECM4erilovza2GwTDKXYLOUJSj8gkcCB0lRxJWYxcsn1QEYIrsE4o+WipItBKzzdFqICj1mZ2UrLj/FFioo1DCuYVutskU+NcqN8ywHPUEOJN4FFhrb3R9y0fL3CpjAfCo546/Dc2HutjncQqH2DGgZISZqineRf5g0ttcYlRaE0vBBr25CcWNBjmijGSUECEdjx6Ywxp3kieHOEKNN72ZiEt4hoVebnH3iVH5Lg1QSraUKDqr7AwSRAIaTJykSWsHHDkByH4xQ9e+PxjeZjQya3WVzoRWrnic2gudzHocsSu5txBhJu1MuxFdLM5DFUELKG2NrMAR/F/YnyiQzSLOJSK2R/b5X5y7lJLQA0PaKiQrIo0RSjLiq0G12jwVknosjy+T4Y6dwWHpZEJY+ouCX5kC9FbSbD74eYz4pFid4kQtMjTHDkMf/TCZTU8S+Fuvd96U3SZy/ZX+9Mg/M9+wkq5przThEsAmpqAvhGQ37uaGXRA4V5ZBYHu02MN7q/nRJKYvxYDUw+Qy2Y9W/+xKPqbP+HG9MPCZ7npxYf5j8xZLq8qixuglBFGjlQ4xX+0IVqYT7gps7jwaFyllhb2otqw4NsWIKYM7idyjbcCvuRa3d0YOBETCShWRdU2A==
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(8676002)(5660300002)(8936002)(356005)(2906002)(54906003)(186003)(31686004)(4744005)(316002)(508600001)(53546011)(110136005)(36756003)(26005)(70586007)(31696002)(70206006)(47076005)(7636003)(426003)(36860700001)(2616005)(336012)(4326008)(82310400004)(9786002)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 18:14:10.7102
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: da64e791-3db3-458e-7982-08d9b42d3540
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT054.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR02MB7244

Hi Jan,

On 30/11/2021 10:31, Jan Beulich wrote:
> On 30.11.2021 10:37, Ayan Kumar Halder wrote:
>> On 30/11/2021 07:18, Jan Beulich wrote:
>>> On 29.11.2021 20:44, Ayan Kumar Halder wrote:
>>>> GENMASK(30, 21) should be 0x07fe00000
>>>
>>> Please can this have a meaningful title? E.g. "bitops: fix incorrect
>>> value in comment"?
>>>
>>>> --- a/xen/include/xen/bitops.h
>>>> +++ b/xen/include/xen/bitops.h
>>>> @@ -5,7 +5,7 @@
>>>>    /*
>>>>     * Create a contiguous bitmask starting at bit position @l and ending at
>>>>     * position @h. For example
>>>> - * GENMASK(30, 21) gives us the 32bit vector 0x01fe00000.
>>>> + * GENMASK(30, 21) gives us the 32bit vector 0x07fe00000.
>>>
>>> Once at it I think you also want to
>>> - replace the word "vector",
>> Should I replace "vector" with "value" ?
> 
> Perhaps, yes.
Thanks for the review. I have sent a v2 patch.

- Ayan

> 
> Jan
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 18:36:32 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 18:36:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235462.408455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7zC-0005NP-MK; Tue, 30 Nov 2021 18:36:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235462.408455; Tue, 30 Nov 2021 18:36:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms7zC-0005NI-JE; Tue, 30 Nov 2021 18:36:14 +0000
Received: by outflank-mailman (input) for mailman id 235462;
 Tue, 30 Nov 2021 18:36:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JSNa=QR=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1ms7zB-0005NC-59
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 18:36:13 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20617.outbound.protection.outlook.com
 [2a01:111:f400:7eae::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f44da67-520c-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 19:36:04 +0100 (CET)
Received: from DS7P222CA0029.NAMP222.PROD.OUTLOOK.COM (2603:10b6:8:2e::28) by
 BY5PR02MB6210.namprd02.prod.outlook.com (2603:10b6:a03:1fa::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11; Tue, 30 Nov
 2021 18:36:00 +0000
Received: from DM3NAM02FT026.eop-nam02.prod.protection.outlook.com
 (2603:10b6:8:2e:cafe::61) by DS7P222CA0029.outlook.office365.com
 (2603:10b6:8:2e::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23 via Frontend
 Transport; Tue, 30 Nov 2021 18:36:00 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 DM3NAM02FT026.mail.protection.outlook.com (10.13.5.129) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4734.20 via Frontend Transport; Tue, 30 Nov 2021 18:36:00 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Tue, 30 Nov 2021 18:35:58 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Tue, 30 Nov 2021 18:35:58 +0000
Received: from [10.71.116.21] (port=48761)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1ms7yw-0001Kt-44; Tue, 30 Nov 2021 18:35:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f44da67-520c-11ec-976b-d102b41d0961
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eRFO+BBpNfUJYeaYum9qUXJiPaYSVJuiqZcDenWX3nv2XbVVxY4esGWNyJWZNasYUqS+KguuQpe1tGz8t8jK79G+S43AMJVSzjWrHeWPPq5mliX5clW6WvIid1U0HDkm0uPqrd+Dzh/+XpZGd9yde6ax4Br1cp2+9aOYhNIu5yyLBNN8h0PmXXFk24e15+vKLJnyIllcTZp1x0d9FcLfYckQ8zeg0CtITYGvPhtEQvVfYBsNqdMW+f1MGiQLQhdUPn80M1ct1tyynVtBDbwqRSeQxqeF43qWIxPoVfNP5nmVuRDvq7e3jYtJKDsUazxYCd0BJ+8kGKPlJuMqhCBKiA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=liMsyiSFST6cp916Z8BZ0rXhjtoZX7r/6tRfCYQtd3g=;
 b=Ei7Lka5shTiKhj2GVscggPJpsD1TFB2vO/V4yWfjTsAa6hpPUT5FPDKhmlzI7xFhUtUFC21GRbBpn4m8O7ANDVz2LK9chy4b5mwGdwH0Y75Q/UqslDwm/N4MDr3T0TTriPts1Mkb1C5FiQQhWqhnBwohwMo+OOPI2EF/hceVmcO9kfuO9PgKGnN/yqiL7lKReiToP+RVqVh1343aLUT05hqOfjZm6aYEryW44TYsShynZxzsbN5aouc7NAsu1x08+BK+wRyDVgDV0BErk4KVRNz0VvO10BfZZ3kNdVTrSwMqo0eFWsqOZdjUKNSiJ08iLU3TQsWhCOOrnMmOYd4p8g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=suse.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=liMsyiSFST6cp916Z8BZ0rXhjtoZX7r/6tRfCYQtd3g=;
 b=bnoVLSX8e1J+zshc3ss/3w2p3miOA5XRSh+SUU/oKVO+wWyGXEqCtmAwbgjhM4+qIhOebetZQdCGJyUJ9xhHbrC0NZkXjT/17H8j927CGd+ByGFfh9zJJxlo+v1u5uruHKr8/6/umhrfUBd+F1aLD0j+SfyXMw5axrpA2qnVjBU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
Message-ID: <cb6d5e10-c37f-58a6-e1be-7dd326e2d826@xilinx.com>
Date: Tue, 30 Nov 2021 18:35:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [XEN v2] xen/arm64: io: Decode 32-bit ldr/str post-indexing
 instructions
To: Jan Beulich <jbeulich@suse.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>
CC: <sstabellini@kernel.org>, <stefanos@xilinx.com>, <julien@xen.org>,
	<Volodymyr_Babchuk@epam.com>, <bertrand.marquis@arm.com>,
	<andre.przywara@arm.com>, <xen-devel@lists.xenproject.org>
References: <20211129191638.19877-1-ayankuma@xilinx.com>
 <7224343c-0af9-6610-a58b-291778183a53@suse.com>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <7224343c-0af9-6610-a58b-291778183a53@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d1fcee09-741b-4210-6f12-08d9b43041d7
X-MS-TrafficTypeDiagnostic: BY5PR02MB6210:
X-Microsoft-Antispam-PRVS:
	<BY5PR02MB6210C58A7E32DAB01E0B7F92B2679@BY5PR02MB6210.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	s7irKKo4kqZjzQjgm5oGdpgGA2JiN2K3Btz5O9fQJ+FFItnwhnU40y0DYUGRyqgYSQZ6fqgOb07enShVRpMeSoZiMY/PNxp7GaCBcuF+/134uchV4i1GDeuWZU6TfKAHP6QVIjG6fr0xUCqnBbnMuUOaLqLjnEJT8UFgJclbNojhNI1Pl8dKEIgt2m9VTwFox72om52UD3urW55/Wr5HHsVslvoqDe+KPt1rKvNiNJRqSZYOQSBgM4ZJ4BA2fi6e2P/D2TDHTMFU6VUgz1988489NCrKvsifduTGIXIXMuHxOypearVfmRUDB/VJnF9hpqjMypgS5Bw9BbPa92fqNxympJjRMGdayIU5lmgQWvQpzsxEMnLcr/q279l0exghEC9oRLSJVYsycvqWMMJIpZbWe8ayQL+EOsCCBXpeIDpBLgsWSwcND82JgI9uJwlyPkyw2ZH2mO51ZdJgJ5WeppwlTcd/Gd/DsNcQlOOw1xARbdiyIAnCpu6Zr/IqXiDc4cHBFpCWJcX//8d9/NKijgsu97t3NfiN3ujgN6AFIsytSFScktXCJrVeBUozjxrbLhFuFVEiphYtmX3CSG5ryHQgnZJL5V9Lc1lwKzwtYYrpEAwJ7ShzWXarhSDXcu1EqyK74zCOLFCeu5B/jtXwrwFz1vs+A/LatyGwpH9ZwEGJaIneXCXOuMGkOjnZNLPkF8yfMB3C1ZeBIo4AikyqA4JLHtzV+G9MQZvoc5zh4Cgk0dVJWzgX9GPyFDZhSvVLgg4jEXojefvhH+7dhTIK4TeIF3PYeioiZyAiPDZOaUoJQbH25sHnV+ScyJPuuBcG3zZLZTZNJDhQ//LBkQL0RK9FNOpi3o615gTDLvlCo/o=
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(46966006)(36840700001)(36860700001)(9786002)(2616005)(336012)(426003)(4326008)(36756003)(8936002)(31686004)(508600001)(966005)(8676002)(5660300002)(2906002)(31696002)(53546011)(47076005)(26005)(54906003)(83380400001)(7636003)(70586007)(110136005)(356005)(186003)(82310400004)(316002)(70206006)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 18:36:00.3384
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d1fcee09-741b-4210-6f12-08d9b43041d7
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT026.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR02MB6210

Hi Jan,

Thanks a lot for the feedback.
I need a clarification.

On 30/11/2021 07:57, Jan Beulich wrote:
> On 29.11.2021 20:16, Ayan Kumar Halder wrote:
>> At the moment, Xen is only handling data abort with valid syndrome (i.e.
>> ISV=0). Unfortunately, this doesn't cover all the instructions a domain
>> could use to access MMIO regions.
>>
>> For instance, Xilinx baremetal OS will use:
>>
>>          volatile u32 *LocalAddr = (volatile u32 *)Addr;
>>          *LocalAddr = Value;
>>
>> This leave the compiler to decide which store instructions to use. This
>> may be a post-index store instruction where the HW will not provide a
>> valid syndrome.
>>
>> In order to handle post-indexing store/load instructions, Xen will need
>> to fetch and decode the instruction.
>>
>> This patch only cover post-index store/load instructions from AArch64 mode.
>> For now, this is left unimplemented for trap from AArch32 mode.
>>
>> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
> 
> Just a couple of general remarks, with no judgement towards its use
> in the codebase, and leaving out several obvious style issues.
> 
>> Changelog :-
>>
>> v2 :- 1. Updated the rn register after reading from it. (Pointed by Julien,
>>   Stefano)
>> 2. Used a union to represent the instruction opcode (Suggestd by Bertrand)
>> 3. Fixed coding style issues (Pointed by Julien)
>> 4. In the previous patch, I was updating dabt->sign based on the signedness of
>> imm9. This was incorrect. As mentioned in ARMv8 ARM  DDI 0487G.b, Page 3221,
>> SSE indicates the signedness of the data item loaded. In our case, the data item
>> loaded is always unsigned.
>>
>> This has been tested for the following cases :-
>> ldr x2, [x1], #4
> 
> DYM "ldr w2, [x1], #4" or "ldr x2, [x1], #8" here?
Yes, you are correct.
It is "ldr w2, [x1], #4"

> 
>> ldr w2, [x1], #-4
>>
>> str x2, [x1], #4
> 
> Similar aspect here.
"str w2, [x1], #4"

> 
>> str w2, [x1], #-4
>>
>> The reason being  I am testing on 32bit MMIO registers only. I don't see a 8bit
>> or 16bit MMIO register.
> 
> As per this, perhaps the former of the two.
> 
>> --- a/xen/arch/arm/decode.c
>> +++ b/xen/arch/arm/decode.c
>> @@ -84,6 +84,66 @@ bad_thumb2:
>>       return 1;
>>   }
>>   
>> +static int decode_32bit_loadstore_postindexing(register_t pc,
>> +                                               struct hsr_dabt *dabt,
>> +                                               union ldr_str_instr_class *instr)
>> +{
>> +    if ( raw_copy_from_guest(&instr->value, (void * __user)pc, sizeof (instr)) )
>> +        return -EFAULT;
>> +
>> +    /* First, let's check for the fixed values */
>> +    if ( !((instr->code.fixed1 == 1) && (instr->code.fixed2 == 0) &&
>> +         (instr->code.fixed3 == 0) && (instr->code.fixed4 == 7)) )
>> +    {
>> +        gprintk(XENLOG_ERR, "Decoding not supported for instructions other than"
>> +            " ldr/str post indexing\n");
>> +        goto bad_32bit_loadstore;
>> +    }
>> +
>> +    if ( instr->code.size != 2 )
>> +    {
>> +        gprintk(XENLOG_ERR,
>> +            "ldr/str post indexing is supported for 32 bit variant only\n");
>> +        goto bad_32bit_loadstore;
>> +    }
>> +
>> +    if ( instr->code.v != 0 )
>> +    {
>> +        gprintk(XENLOG_ERR,
>> +            "ldr/str post indexing for vector types are not supported\n");
>> +        goto bad_32bit_loadstore;
>> +    }
>> +
>> +    /* Check for STR (immediate) - 32 bit variant */
>> +    if ( instr->code.opc == 0 )
>> +    {
>> +        dabt->write = 1;
>> +    }
>> +    /* Check for LDR (immediate) - 32 bit variant */
>> +    else if ( instr->code.opc == 1 )
>> +    {
>> +        dabt->write = 0;
>> +    }
>> +    else
>> +    {
>> +        gprintk(XENLOG_ERR,
>> +            "Decoding ldr/str post indexing is not supported for this variant\n");
>> +        goto bad_32bit_loadstore;
>> +    }
>> +
>> +    gprintk(XENLOG_INFO,
>> +        "instr->code.rt = 0x%x, instr->code.size = 0x%x, instr->code.imm9 = %d\n",
>> +        instr->code.rt, instr->code.size, instr->code.imm9);
>> +
>> +    update_dabt(dabt, instr->code.rt, instr->code.size, false);
>> +    dabt->valid = 1;
>> +
>> +    return 0;
>> +bad_32bit_loadstore:
> 
> Please indent labels by at least a blank. I also think this would
> benefit from a preceding blank line.
Ack

> 
>> --- a/xen/arch/arm/io.c
>> +++ b/xen/arch/arm/io.c
>> @@ -65,6 +65,16 @@ static enum io_state handle_write(const struct mmio_handler *handler,
>>       return ret ? IO_HANDLED : IO_ABORT;
>>   }
>>   
>> +static void post_incremenet_register(union ldr_str_instr_class *instr)
> 
> I think you mean post_increment_register()?
Ack. Sorry for my carelessness. :(

> 
>> +{
>> +    struct cpu_user_regs *regs = guest_cpu_user_regs();
>> +    unsigned int val;
>> +
>> +    val = get_user_reg(regs, instr->code.rn);
>> +    val += instr->code.imm9;
>> +    set_user_reg(regs, instr->code.rn, val);
> 
> I don't think this handles the SP case correctly, and I also don't see
> that case getting rejected elsewhere.

Sorry, I did not understand you. Can you explain a bit more ?

Following 
https://www.keil.com/support/man/docs/armasm/armasm_dom1361289873425.htm 
, Are you saying that we need to handle this restriction
"You can use SP for Rt in non-word instructions in ARM code but this is 
deprecated in ARMv6T2 and above"


> 
>> --- a/xen/include/asm-arm/hsr.h
>> +++ b/xen/include/asm-arm/hsr.h
>> @@ -15,6 +15,32 @@ enum dabt_size {
>>       DABT_DOUBLE_WORD = 3,
>>   };
>>   
>> +/*
>> + * Refer to the ARMv8 ARM (DDI 0487G.b), Section C4.1.4 Loads and Stores
>> + * Page 318 specifies the following bit pattern for
>> + * "load/store register (immediate post-indexed)".
>> + *
>> + * 31 30 29  27 26 25  23   21 20              11   9         4       0
>> + * ___________________________________________________________________
>> + * |size|1 1 1 |V |0 0 |opc |0 |      imm9     |0 1 |  Rn     |  Rt   |
>> + * |____|______|__|____|____|__|_______________|____|_________|_______|
>> + */
>> +union ldr_str_instr_class {
>> +    uint32_t value;
>> +    struct ldr_str {
>> +        unsigned int rt:5;     /* Rt register */
>> +        unsigned int rn:5;     /* Rn register */
>> +        unsigned int fixed1:2; /* value == 01b */
>> +        int imm9:9;            /* imm9 */
> 
> Plain int bitfields are, iirc, signed or unsigned at the compiler's
> discretion. Hence I think you mean explicitly "signed int" here.
> 
>> +        unsigned int fixed2:1; /* value == 0b */
>> +        unsigned int opc:2;    /* opc */
>> +        unsigned int fixed3:2; /* value == 00b */
>> +        unsigned int v:1;      /* vector */
>> +        unsigned int fixed4:3; /* value == 111b */
>> +        unsigned int size:2;   /* size */
>> +    } code;
>> +};
> 
> I'd recommend types needed in just one CU to live there, rather than
> getting exposed to every source file including this header (even more
> so when - aiui - this is entirely unrelated to HSR). When used in
> just a single function, it might even want to live here (i.e. as
> close as possible to the [only] use).

Ack. I will try to use bitmask as Andre suggested.

- Ayan
> 
> Jan
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 19:14:23 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 19:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235473.408466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms8Zb-0001QH-Ng; Tue, 30 Nov 2021 19:13:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235473.408466; Tue, 30 Nov 2021 19:13:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms8Zb-0001QA-Kn; Tue, 30 Nov 2021 19:13:51 +0000
Received: by outflank-mailman (input) for mailman id 235473;
 Tue, 30 Nov 2021 19:13:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JSNa=QR=xilinx.com=ayankuma@srs-se1.protection.inumbo.net>)
 id 1ms8Za-0001Q4-Ax
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 19:13:50 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20625.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4d72015-5211-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 20:13:47 +0100 (CET)
Received: from DM6PR18CA0006.namprd18.prod.outlook.com (2603:10b6:5:15b::19)
 by SJ0PR02MB8750.namprd02.prod.outlook.com (2603:10b6:a03:3d3::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Tue, 30 Nov
 2021 19:13:44 +0000
Received: from DM3NAM02FT026.eop-nam02.prod.protection.outlook.com
 (2603:10b6:5:15b:cafe::99) by DM6PR18CA0006.outlook.office365.com
 (2603:10b6:5:15b::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend
 Transport; Tue, 30 Nov 2021 19:13:44 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (149.199.80.198) by
 DM3NAM02FT026.mail.protection.outlook.com (10.13.5.129) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4734.20 via Frontend Transport; Tue, 30 Nov 2021 19:13:44 +0000
Received: from xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Tue, 30 Nov 2021 19:13:42 +0000
Received: from smtp.xilinx.com (172.21.105.197) by
 xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server id
 15.1.2176.14 via Frontend Transport; Tue, 30 Nov 2021 19:13:42 +0000
Received: from [10.71.116.21] (port=51026)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <ayan.kumar.halder@xilinx.com>)
 id 1ms8ZR-00024M-Nq; Tue, 30 Nov 2021 19:13:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4d72015-5211-11ec-976b-d102b41d0961
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mKy84x67c0IFikAJ0tQPPYYma+SB6LTvs4YZLyE7Ur5KvaK4vctDetQken7jWTHMNQWwHU9IVIepo2guTsG9n6owmbzFALtAvxMa9wYlcoidSmWgrZE8XdxRyVk8MZAe4UVdapOfICaHmhoxx4/nzxBIKSU5/ldOINl+40uCfwyOxeeI2hmBNr2jo3xLptikafHkeZiHouYP2NdiimOtpMFmp8PXIkBx6XiI1di5JAMBsbg4IC/sh3XDOPQRgLoUJdzOefIGT3Z5LzZ9dsHYqv6qawUwRaqYndkEYWRSzZkgQNVtrU1M3FwGhyKInGHHEXNcrvRPbkmetPn/2le56g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FH414CXM64+XNKfxjz8iAVL9Lg5FOZ3kr8lKQMPQGdQ=;
 b=cIf64Zw5hwsq5ZOaXtZEAw48Hmddmpgmaaq/5EqZIxf4598SfYOjSXqDz/MuGsfaHXlFwfDc6pkyHrXkJjo5xON2dWwAmc53D5eZp/wYl/NTbO4KUXQ20qMCLDh8AQXmmervgaa2/K0WkP/r+mK8JQRRdIpV/lZeBg+FCwuOSRleoWZX86LFh/MFJxSNWZL8vDKhHmqJE1Nw+aKLKiEz59c2MTTy05nAHFXHGDWt8RXrqt0mpWPg2iYNcXPg4dp84Q1LFcVeQ+bxWeu+0muV6yVxnM+WasMvg5vNtCkjPStWw0zDHwjT8R8hVVe8RQG8oxywEGB7f1Uo9sa8UEDHnw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.80.198) smtp.rcpttodomain=arm.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FH414CXM64+XNKfxjz8iAVL9Lg5FOZ3kr8lKQMPQGdQ=;
 b=LTYsVgwwzH2JqnrU7olUioFC1eQxurMopIUAAInbxtzCaUW/nrlq3tFjeieVrrYNjWIkfjJljzPOVAuwhORqYx77g7K20tR7ooiTWzLminjCmuUOCcK41fSTtZh35A2jRsqbzlkwT3+c9uKwRmfnoH5kCd4pegMWJwZTvfGpTjw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198)
 smtp.mailfrom=xilinx.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.80.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.80.198; helo=xir-pvapexch01.xlnx.xilinx.com;
Message-ID: <a69d41f1-7b57-c127-ae73-2de5a581dddd@xilinx.com>
Date: Tue, 30 Nov 2021 19:13:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [XEN v2] xen/arm64: io: Decode 32-bit ldr/str post-indexing
 instructions
To: Andre Przywara <andre.przywara@arm.com>, Ayan Kumar Halder
	<ayan.kumar.halder@xilinx.com>
CC: <xen-devel@lists.xenproject.org>, <sstabellini@kernel.org>,
	<stefanos@xilinx.com>, <julien@xen.org>, <Volodymyr_Babchuk@epam.com>,
	<bertrand.marquis@arm.com>, <jbeulich@suse.com>
References: <20211129191638.19877-1-ayankuma@xilinx.com>
 <20211130094950.1bf368d6@donnerap.cambridge.arm.com>
From: Ayan Kumar Halder <ayan.kumar.halder@xilinx.com>
In-Reply-To: <20211130094950.1bf368d6@donnerap.cambridge.arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a1c909f4-4c02-4234-108c-08d9b4358720
X-MS-TrafficTypeDiagnostic: SJ0PR02MB8750:
X-Microsoft-Antispam-PRVS:
	<SJ0PR02MB875042B4B887D791AB5A66A3B2679@SJ0PR02MB8750.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	QzVjkKesilO3nJBSiD8wKACSmrTAcGrFzg94sDopC/gSe+c+W9fMGYt6k8izmkTbWfQDS/6ES4VjEi7FLbqYve7eG+NxGkGlmr3pUUEng+ltPLXElUQTA/P583X+FLxfhlyhXzQnnAE07rrmZTrW9RgVnHEGjreKBN09+x+iAxpNdGHfqnHntf4l4rxTF/+wScFvZuklM/Hyx4QRuR8sc21XLjOGRT0P4h1IROZ4htjD107n8xlz60eW9NTyiZ8skPYzwo8kYtK5vJ2E6nqOwHyw4+90ZSB4IitUovOhmLdyd7vFRnKLWDbkVf+b5EwTjlCJ3eJzwoMg4Xj6lLGOe7rMH520QZEHxk+vhHiQmKXe0a6HAc/C+mMjEUatxCA2A1RNFEUi0f1sUSd7m41WAsNM9A1ijj6sT0IhRMvBf8Owj0io5d1q5XdP8sHIiph+nR6HEzI4JmN8HrdhFmUby3J4tvUuVSBMF/mygQWTdpW4vTcYZrIKlX0MybQU9lW0hLoPntOEB18Z2FJou0y6JNpKbJKk16f6Rz3uOQ81STvbuRqb9gztamJbnU949WMsjbe4ewGPNc/pcTcnO20gJZ0DkhjLRmbkhCYSmwgb0nHNfYn8AHhVTy6K/poZ6Xlw7QnmYf/4VRX+ylKtywaikvbLGopqaNelEnq/j1dB+DuyJEQmo9UH1kzZ65TjdjRXXm2iNGqPb5J10v2j11VCWf9+HmZNomOCPFvDjgGwVQej5WcdhD+ZiJOgbKl+XQSlfrWlvrIYY+ACgtVGQ7qxAw==
X-Forefront-Antispam-Report:
	CIP:149.199.80.198;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:xir-pvapexch01.xlnx.xilinx.com;PTR:unknown-80-198.xilinx.com;CAT:NONE;SFS:(36840700001)(46966006)(336012)(2906002)(54906003)(316002)(26005)(7636003)(8936002)(30864003)(508600001)(36860700001)(82310400004)(110136005)(9786002)(53546011)(36756003)(70586007)(31696002)(8676002)(31686004)(47076005)(5660300002)(186003)(4326008)(356005)(2616005)(70206006)(83380400001)(426003)(50156003)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2021 19:13:44.0658
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a1c909f4-4c02-4234-108c-08d9b4358720
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.80.198];Helo=[xir-pvapexch01.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM3NAM02FT026.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8750

Hi Andre,

Thanks for your comments. They are useful.

On 30/11/2021 09:49, Andre Przywara wrote:
> On Mon, 29 Nov 2021 19:16:38 +0000
> Ayan Kumar Halder <ayan.kumar.halder@xilinx.com> wrote:
> 
> Hi,
> 
>> At the moment, Xen is only handling data abort with valid syndrome (i.e.
>> ISV=0). Unfortunately, this doesn't cover all the instructions a domain
>> could use to access MMIO regions.
>>
>> For instance, Xilinx baremetal OS will use:
>>
>>          volatile u32 *LocalAddr = (volatile u32 *)Addr;
>>          *LocalAddr = Value;
>>
>> This leave the compiler to decide which store instructions to use.
> 
> As mentioned in the other email, this is wrong, if this points to MMIO:
> don't let the compiler do MMIO accesses. If a stage 2 fault isn't in
> an MMIO area, you should not see traps that you cannot handle already.
> 
> So I don't think it's a good idea to use that as an example. And since
> this patch only seems to address this use case, I would doubt its
> usefulness in general.
Yes, I should have fixed the comment.

Currently, I am testing with baremetal app which uses inline assembly 
code with post indexing instructions, to access the MMIO.

ATM, I am testing with 32 bit MMIO only.

On the usefulness, I am kind of torn as it is legitimate for post 
indexing instructions to be used in an inline-assembly code for 
accessing MMIO. However, that may not be something commonly seen.

@Stefano/Bertrand/Julien/Volodymyr :- As you are the Arm mantainers, can 
you comment if we should have decoding logic or not ?

> 
>> This
>> may be a post-index store instruction where the HW will not provide a
>> valid syndrome.
>>
>> In order to handle post-indexing store/load instructions, Xen will need
>> to fetch and decode the instruction.
>>
>> This patch only cover post-index store/load instructions from AArch64
>> mode. For now, this is left unimplemented for trap from AArch32 mode.
>>
>> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com>
>> ---
>>
>> Changelog :-
>>
>> v2 :- 1. Updated the rn register after reading from it. (Pointed by
>> Julien, Stefano)
>> 2. Used a union to represent the instruction opcode (Suggestd by
>> Bertrand) 3. Fixed coding style issues (Pointed by Julien)
>> 4. In the previous patch, I was updating dabt->sign based on the
>> signedness of imm9. This was incorrect. As mentioned in ARMv8 ARM  DDI
>> 0487G.b, Page 3221, SSE indicates the signedness of the data item
>> loaded. In our case, the data item loaded is always unsigned.
>>
>> This has been tested for the following cases :-
>> ldr x2, [x1], #4
> 
> As Jan already mentioned: this is a bad example. First, this is a 64-bit
> access, which you don't emulate below. And second, you want to keep the
> pointer aligned. Unaligned accesses to device memory always trap, as per
> the architecture, even on bare metal.
> 
>>
>> ldr w2, [x1], #-4
>>
>> str x2, [x1], #4
> 
> Same as above.
> 
>> str w2, [x1], #-4
>>
>> The reason being  I am testing on 32bit MMIO registers only. I don't see
>> a 8bit or 16bit MMIO register.
> 
> Where did you look? There are plenty of examples out there, even the GIC
> allows 8-bit accesses to certain registers (grep for "VGIC_ACCESS_"), and
> the Linux GIC driver is using them (but with proper accessors, of course).
> Also GICv3 supports 64-bit accesses to some registers. Some PL011 UARTs use
> 16-bit MMIO accesses.
Yes, sorry I see them now. GICD_IPRIORITYR can be accessed with 8 bits.
Unfortunately, I have GIC-v2 on my hardware system. So, probably I can't 
test 64 bit access.

> 
>>   xen/arch/arm/decode.c     | 68 ++++++++++++++++++++++++++++++++++++++-
>>   xen/arch/arm/decode.h     |  3 +-
>>   xen/arch/arm/io.c         | 40 +++++++++++++++++++----
>>   xen/include/asm-arm/hsr.h | 26 +++++++++++++++
>>   4 files changed, 129 insertions(+), 8 deletions(-)
>>
>> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
>> index 792c2e92a7..0b3e8fcbc6 100644
>> --- a/xen/arch/arm/decode.c
>> +++ b/xen/arch/arm/decode.c
>> @@ -84,6 +84,66 @@ bad_thumb2:
>>       return 1;
>>   }
>>   
>> +static int decode_32bit_loadstore_postindexing(register_t pc,
>> +                                               struct hsr_dabt *dabt,
>> +                                               union ldr_str_instr_class *instr)
>> +{
>> +    if ( raw_copy_from_guest(&instr->value, (void * __user)pc, sizeof (instr)) )
>> +        return -EFAULT;
>> +
>> +    /* First, let's check for the fixed values */
>> +    if ( !((instr->code.fixed1 == 1) && (instr->code.fixed2 == 0) &&
>> +         (instr->code.fixed3 == 0) && (instr->code.fixed4 == 7)) )
>> +    {
>> +        gprintk(XENLOG_ERR, "Decoding not supported for instructions other than"
>> +            " ldr/str post indexing\n");
>> +        goto bad_32bit_loadstore;
>> +    }
>> +
>> +    if ( instr->code.size != 2 )
> 
> I don't see a good reason for this limitation. If you are going to dissect
> the instruction, why not just support at least all access widths, so
> 64-bits, but also {ldr,str}{b,w}? I think the framework does the heavy
> lifting for you already?

I see your point. My intention was to test first with the restricted 
instruction set (ie ldr/str - 32 bit access with post indexing only) and 
get an opinion from the community. If the patch looks sane, then this 
can be extended with other variants as well.

> Same for the restriction to post-index above, supporting pre-index as well
> should be easy.
For Pre-indexing instruction, the ISS is valid. So I am not sure what is 
to be done here?

AFAIU, if the ISS is valid, there is no need to explicitly decode the 
instructions.
> 
> To me this has the bitter taste for being a one trick pony to work around
> your particular (broken!) use case.
> 
>> +    {
>> +        gprintk(XENLOG_ERR,
>> +            "ldr/str post indexing is supported for 32 bit variant only\n");
>> +        goto bad_32bit_loadstore;
>> +    }
>> +
>> +    if ( instr->code.v != 0 )
>> +    {
>> +        gprintk(XENLOG_ERR,
>> +            "ldr/str post indexing for vector types are not supported\n");
>> +        goto bad_32bit_loadstore;
>> +    }
>> +
>> +    /* Check for STR (immediate) - 32 bit variant */
>> +    if ( instr->code.opc == 0 )
>> +    {
>> +        dabt->write = 1;
>> +    }
>> +    /* Check for LDR (immediate) - 32 bit variant */
>> +    else if ( instr->code.opc == 1 )
>> +    {
>> +        dabt->write = 0;
>> +    }
>> +    else
>> +    {
>> +        gprintk(XENLOG_ERR,
>> +            "Decoding ldr/str post indexing is not supported for this variant\n");
>> +        goto bad_32bit_loadstore;
>> +    }
>> +
>> +    gprintk(XENLOG_INFO,
>> +        "instr->code.rt = 0x%x, instr->code.size = 0x%x, instr->code.imm9 = %d\n",
>> +        instr->code.rt, instr->code.size, instr->code.imm9);
>> +
>> +    update_dabt(dabt, instr->code.rt, instr->code.size, false);
>> +    dabt->valid = 1;
>> +
>> +    return 0;
>> +bad_32bit_loadstore:
>> +    gprintk(XENLOG_ERR, "unhandled 32bit Arm instruction 0x%x\n", instr->value);
>> +    return 1;
>> +}
>> +
>>   static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>>   {
>>       uint16_t instr;
>> @@ -150,11 +210,17 @@ bad_thumb:
>>       return 1;
>>   }
>>   
>> -int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt *dabt)
>> +int decode_instruction(const struct cpu_user_regs *regs, struct hsr_dabt *dabt,
>> +                       union ldr_str_instr_class *instr)
>>   {
>>       if ( is_32bit_domain(current->domain) && regs->cpsr & PSR_THUMB )
>>           return decode_thumb(regs->pc, dabt);
>>   
>> +    if ( (is_64bit_domain(current->domain) && !psr_mode_is_32bit(regs)) )
>> +    {
>> +        return decode_32bit_loadstore_postindexing(regs->pc, dabt, instr);
>> +    }
>> +
>>       /* TODO: Handle ARM instruction */
>>       gprintk(XENLOG_ERR, "unhandled ARM instruction\n");
>>   
>> diff --git a/xen/arch/arm/decode.h b/xen/arch/arm/decode.h
>> index 4613763bdb..d82fc4a0f6 100644
>> --- a/xen/arch/arm/decode.h
>> +++ b/xen/arch/arm/decode.h
>> @@ -35,7 +35,8 @@
>>    */
>>   
>>   int decode_instruction(const struct cpu_user_regs *regs,
>> -                       struct hsr_dabt *dabt);
>> +                       struct hsr_dabt *dabt,
>> +                       union ldr_str_instr_class *instr);
>>   
>>   #endif /* __ARCH_ARM_DECODE_H_ */
>>   
>> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
>> index 729287e37c..0d60754bc4 100644
>> --- a/xen/arch/arm/io.c
>> +++ b/xen/arch/arm/io.c
>> @@ -65,6 +65,16 @@ static enum io_state handle_write(const struct
>> mmio_handler *handler, return ret ? IO_HANDLED : IO_ABORT;
>>   }
>>   
>> +static void post_incremenet_register(union ldr_str_instr_class *instr)
>> +{
>> +    struct cpu_user_regs *regs = guest_cpu_user_regs();
>> +    unsigned int val;
>> +
>> +    val = get_user_reg(regs, instr->code.rn);
>> +    val += instr->code.imm9;
>> +    set_user_reg(regs, instr->code.rn, val);
>> +}
>> +
>>   /* This function assumes that mmio regions are not overlapped */
>>   static int cmp_mmio_handler(const void *key, const void *elem)
>>   {
>> @@ -106,14 +116,26 @@ enum io_state try_handle_mmio(struct cpu_user_regs
>> *regs, .gpa = gpa,
>>           .dabt = dabt
>>       };
>> +    int rc;
>> +    union ldr_str_instr_class instr = {0};
>>   
>>       ASSERT(hsr.ec == HSR_EC_DATA_ABORT_LOWER_EL);
>>   
>> +    /*
>> +     * Armv8 processor does not provide a valid syndrome for post-indexing
>> +     * ldr/str instructions. So in order to process these instructions,
>> +     * Xen must decode them.
>> +     */
>> +    if ( !info.dabt.valid )
>> +    {
>> +        rc = decode_instruction(regs, &info.dabt, &instr);
>> +        if ( rc )
>> +            return IO_ABORT;
>> +    }
>> +
>>       handler = find_mmio_handler(v->domain, info.gpa);
>>       if ( !handler )
>>       {
>> -        int rc;
>> -
>>           rc = try_fwd_ioserv(regs, v, &info);
>>           if ( rc == IO_HANDLED )
>>               return handle_ioserv(regs, v);
>> @@ -122,7 +144,7 @@ enum io_state try_handle_mmio(struct cpu_user_regs
>> *regs, }
>>   
>>       /* All the instructions used on emulated MMIO region should be
>> valid */
>> -    if ( !dabt.valid )
>> +    if ( !info.dabt.valid )
>>           return IO_ABORT;
>>   
>>       /*
>> @@ -134,7 +156,7 @@ enum io_state try_handle_mmio(struct cpu_user_regs
>> *regs, {
>>           int rc;
>>   
>> -        rc = decode_instruction(regs, &info.dabt);
>> +        rc = decode_instruction(regs, &info.dabt, NULL);
>>           if ( rc )
>>           {
>>               gprintk(XENLOG_DEBUG, "Unable to decode instruction\n");
>> @@ -143,9 +165,15 @@ enum io_state try_handle_mmio(struct cpu_user_regs
>> *regs, }
>>   
>>       if ( info.dabt.write )
>> -        return handle_write(handler, v, &info);
>> +        rc = handle_write(handler, v, &info);
>>       else
>> -        return handle_read(handler, v, &info);
>> +        rc = handle_read(handler, v, &info);
>> +
>> +    if ( instr.value != 0 )
>> +    {
>> +        post_incremenet_register(&instr);
>> +    }
>> +    return rc;
>>   }
>>   
>>   void register_mmio_handler(struct domain *d,
>> diff --git a/xen/include/asm-arm/hsr.h b/xen/include/asm-arm/hsr.h
>> index 9b91b28c48..72d67d2801 100644
>> --- a/xen/include/asm-arm/hsr.h
>> +++ b/xen/include/asm-arm/hsr.h
>> @@ -15,6 +15,32 @@ enum dabt_size {
>>       DABT_DOUBLE_WORD = 3,
>>   };
>>   
>> +/*
>> + * Refer to the ARMv8 ARM (DDI 0487G.b), Section C4.1.4 Loads and Stores
>> + * Page 318 specifies the following bit pattern for
>> + * "load/store register (immediate post-indexed)".
>> + *
>> + * 31 30 29  27 26 25  23   21 20              11   9         4       0
>> + * ___________________________________________________________________
>> + * |size|1 1 1 |V |0 0 |opc |0 |      imm9     |0 1 |  Rn     |  Rt   |
>> + * |____|______|__|____|____|__|_______________|____|_________|_______|
>> + */
>> +union ldr_str_instr_class {
>> +    uint32_t value;
>> +    struct ldr_str {
>> +        unsigned int rt:5;     /* Rt register */
> 
> I don't think it's a particular good idea to use a bit-field here, if that
> is expected to mimic a certain hardware provided bit pattern.
> It works in practise (TM), but the C standard does not guarantee the order
> the bits are allocated (ISO/IEC 9899:201x §6.7.2.1, stanza 11).
> Since you are *reading* only from the instruction word, you should get away
> with accessor macros to extract the bits you need. For instance for
> filtering the opcode, you could use: ((insn & 0x3fe00c00) == 0x38400400)

Yes, this is a very good point. I will use bitmasks to access the bits 
from the register.

I saw the same logic (ie using bitfields) is used for some other 
registers as well. For eg hsr_dabt, hsr_iabt in 
xen/include/asm-arm/hsr.h. May be that needs fixing as well for some 
other time. :)

- Ayan
> 
> Cheers,
> Andre
> 
>> +        unsigned int rn:5;     /* Rn register */
>> +        unsigned int fixed1:2; /* value == 01b */
>> +        int imm9:9;            /* imm9 */
>> +        unsigned int fixed2:1; /* value == 0b */
>> +        unsigned int opc:2;    /* opc */
>> +        unsigned int fixed3:2; /* value == 00b */
>> +        unsigned int v:1;      /* vector */
>> +        unsigned int fixed4:3; /* value == 111b */
>> +        unsigned int size:2;   /* size */
>> +    } code;
>> +};
>> +
>>   union hsr {
>>       register_t bits;
>>       struct {
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 19:45:19 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 19:45:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235487.408501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms93l-00059I-Eo; Tue, 30 Nov 2021 19:45:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235487.408501; Tue, 30 Nov 2021 19:45:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms93l-00059B-Bi; Tue, 30 Nov 2021 19:45:01 +0000
Received: by outflank-mailman (input) for mailman id 235487;
 Tue, 30 Nov 2021 19:44:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms93j-00058e-Pk; Tue, 30 Nov 2021 19:44:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms93j-0003Ne-Ln; Tue, 30 Nov 2021 19:44:59 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1ms93j-0004FP-CQ; Tue, 30 Nov 2021 19:44:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1ms93j-0002Pm-BV; Tue, 30 Nov 2021 19:44:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HHbB+U+47pnoh50cSu0cCGTWuEagvCeI08ZMBSNEMFg=; b=kYK60u29seOGOB/2JT5yCrO1P0
	+DHihO1fqFNQpmFfMlXtQB2/Dd7ZKbw2Af28/zyE8pw1n/8p3scxO7vChe5X3GnixVhJGCNdtzrka
	HBmx0I2Enieptsqn0r/NT08SXX688geYuBwGK0QIxa8zRLwPn3sFndahIbesuE8PahXs=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166959-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.16-testing test] 166959: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.16-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b0b4661fa3cba995e433b94ea569c90f65a3e5fc
X-Osstest-Versions-That:
    xen=c4b41ee2b44ab89cfca75facbe6702376098fc56
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Nov 2021 19:44:59 +0000

flight 166959 xen-4.16-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166959/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166394
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166394
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166394
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166394
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166394
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166394
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166394
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166394
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166394
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 166394
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166394
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 166394
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  b0b4661fa3cba995e433b94ea569c90f65a3e5fc
baseline version:
 xen                  c4b41ee2b44ab89cfca75facbe6702376098fc56

Last test of basis   166394  2021-11-25 11:49:32 Z    5 days
Testing same since   166959  2021-11-30 12:06:43 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Jackson <iwj@xenproject.org>
  Jan Beulich <jbeulich@suse.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c4b41ee2b4..b0b4661fa3  b0b4661fa3cba995e433b94ea569c90f65a3e5fc -> stable-4.16


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 20:29:53 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 20:29:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235497.408516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms9ky-0001VL-F8; Tue, 30 Nov 2021 20:29:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235497.408516; Tue, 30 Nov 2021 20:29:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ms9ky-0001VE-C4; Tue, 30 Nov 2021 20:29:40 +0000
Received: by outflank-mailman (input) for mailman id 235497;
 Tue, 30 Nov 2021 20:29:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1ms9kw-0001V8-H4
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 20:29:38 +0000
Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a7b9459-521c-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 21:29:34 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:34630)
 by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1ms9kq-000Cav-7v (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 20:29:32 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 3334D1FB4D;
 Tue, 30 Nov 2021 20:29:32 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a7b9459-521c-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <3fcf10b1-6add-fb7b-2c38-c5da962ac406@srcf.net>
Date: Tue, 30 Nov 2021 20:29:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH] x86/HVM: convert most remaining hvm_funcs hook
 invocations to alt-call
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, Tamas K Lengyel <tamas@tklengyel.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <9fd8ba19-9744-fa50-1afb-15fae8955cac@suse.com>
 <17b42cc5-1979-f977-7c2e-a59fc97f87ea@srcf.net>
 <30b2711a-de67-ca15-e8a8-a4c8b962e620@suse.com>
 <34c9551c-4e60-8472-15ce-fa14076cf393@srcf.net>
 <f651c62e-65ee-1d82-843b-0c453c38f7b5@suse.com>
 <036ecf0f-02a2-feb2-9ce8-75cc66c46f8b@srcf.net>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <036ecf0f-02a2-feb2-9ce8-75cc66c46f8b@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/11/2021 14:57, Andrew Cooper wrote:
> On 30/11/2021 14:32, Jan Beulich wrote:
>> On 30.11.2021 15:25, Andrew Cooper wrote:
>>> On 30/11/2021 14:03, Jan Beulich wrote:
>>>> On 30.11.2021 14:48, Andrew Cooper wrote:
>>>>> On 29/11/2021 09:04, Jan Beulich wrote:
>>>>>> The aim being to have as few indirect calls as possible (see [1]),
>>>>>> whereas during initial conversion performance was the main aspect and
>>>>>> hence rarely used hooks didn't get converted. Apparently one use of
>>>>>> get_interrupt_shadow() was missed at the time.
>>>>>>
>>>>>> While I've intentionally left alone the cpu_{up,down}() etc hooks for
>>>>>> not being guest reachable, the nhvm_hap_walk_L1_p2m() one can't
>>>>>> currently be converted as the framework supports only up to 6 arguments.
>>>>>> Down the road the three booleans perhaps want folding into a single
>>>>>> parameter/argument.
>>>>> To use __initdata_cf_clobber, all hooks need to use altcall().
>>>> Right, but that's not going to be sufficient: The data members then also
>>>> need to move elsewhere, aiui.
>>> Nope.  It is safe for data members to stay.
>> But then it can't be in .init.data, can it?
> Very good point.  I'll need to reconsider that plan then.

Nope.  It's still fine.

In this scenario, you'd have {vmx,svm}_hvm_funcs in
__initdata_cf_clobber, because they're genuinely not used at runtime.

The embedded data is copied into the main hvm_funcs object, but in
general, the main object wants to be __initdata (if no embedded data and
fully altcall()'d), else __ro_after_init, or in the worst case
__read_mostly.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 20:51:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 20:51:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235503.408527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msA5t-0004kO-8r; Tue, 30 Nov 2021 20:51:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235503.408527; Tue, 30 Nov 2021 20:51:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msA5t-0004kH-58; Tue, 30 Nov 2021 20:51:17 +0000
Received: by outflank-mailman (input) for mailman id 235503;
 Tue, 30 Nov 2021 20:51:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1msA5r-0004k7-Rg; Tue, 30 Nov 2021 20:51:15 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1msA5r-0004cj-Kg; Tue, 30 Nov 2021 20:51:15 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1msA5r-0007hU-DP; Tue, 30 Nov 2021 20:51:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1msA5r-0002dO-Cw; Tue, 30 Nov 2021 20:51:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=VCM9UkpZNqk5AbaFwxMyOGNvkBQG/yGqkdMBP7b6uds=; b=oyhFzjLO1waOPgnEyFowwZ/76j
	OeXvL9KgtlrJ4iwp9xqmlhLIxA400oojQlE+6sG6motkiqMLSVmVCltalAtu1PaYvH3bZ+wPMSkPD
	Co5TdYd4pc9u2jl9vUgaGCFLKCejS0lczohlvTwSNk642crvpsWC/WyPn91GoMWmd2uQ=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166942-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 166942: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-vhd:host-ping-check-xen:fail:heisenbug
    linux-linus:test-arm64-arm64-xl-vhd:guest-start/debian.repeat:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c5c17547b778975b3d83a73c8d84e8fb5ecf3ba5
X-Osstest-Versions-That:
    linux=1bff7d7e8c487b9b0ceab70b43b781f1d45f55eb
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Nov 2021 20:51:15 +0000

flight 166942 linux-linus real [real]
flight 166962 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/166942/
http://logs.test-lab.xenproject.org/osstest/logs/166962/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-vhd      10 host-ping-check-xen fail pass in 166962-retest
 test-arm64-arm64-xl-vhd 17 guest-start/debian.repeat fail pass in 166962-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-vhd     14 migrate-support-check fail in 166962 never pass
 test-armhf-armhf-xl-vhd 15 saverestore-support-check fail in 166962 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 166922
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166922
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166922
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166922
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 166922
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166922
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166922
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166922
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                c5c17547b778975b3d83a73c8d84e8fb5ecf3ba5
baseline version:
 linux                1bff7d7e8c487b9b0ceab70b43b781f1d45f55eb

Last test of basis   166922  2021-11-26 19:30:09 Z    4 days
Testing same since   166942  2021-11-27 18:11:40 Z    3 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adamos Ttofari <attofari@amazon.de>
  Ahmad Fatoum <a.fatoum@pengutronix.de>
  Alessandro B Maurici <abmaurici@gmail.com>
  Alex Elder <elder@linaro.org>
  Alexander Aring <aahringo@redhat.com>
  Amit Cohen <amcohen@nvidia.com>
  Ansuel Smith <ansuelsmth@gmail.com>
  Arnd Bergmann <arnd@arndb.de>
  Brett Creeley <brett.creeley@intel.com>
  Casey Schaufler <casey@schaufler-ca.com>
  Chuanqi Liu <legend050709@qq.com>
  Cong Wang <cong.wang@bytedance.com>
  Daniel Borkmann <daniel@iogearbox.net>
  Danielle Ratson <danieller@nvidia.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Davide Caratti <dcaratti@redhat.com>
  Diana Wang <na.wang@corigine.com>
  Dylan Hung <dylan_hung@aspeedtech.com>
  Eric Dumazet <edumazet@google.com>
  Evan Green <evgreen@chromium.org>
  Florent Fourcot <florent.fourcot@wifirst.fr>
  Florian Fainelli <f.fainelli@gmail.com>
  Florian Westphal <fw@strlen.de>
  George Kuruvinakunnel <george.kuruvinakunnel@intel.com>
  Guangbin Huang <huangguangbin2@huawei.com>
  Guo DaXing <guodaxing@huawei.com>
  Hao Chen <chenhao288@hisilicon.com>
  Heiner Kallweit <hkallweit1@gmail.com>
  Holger Assmann <h.assmann@pengutronix.de>
  Huang Pei <huangpei@loongson.cn>
  Ido Schimmel <idosch@nvidia.com>
  Jakub Kicinski <kuba@kernel.org>
  Jamal Hadi Salim <jhs@mojatatu.com>
  James Prestwood <prestwoj@gmail.com>
  Jan Sokolowski <jan.sokolowski@intel.com>
  Jaroslaw Gawin <jaroslawx.gawin@intel.com>
  Jedrzej Jagielski <jedrzej.jagielski@intel.com>
  Jesse Brandeburg <jesse.brandeburg@intel.com>
  Jie Wang <wangjie125@huawei.com>
  Jing Yao <yao.jing2@zte.com.cn>
  Julian Anastasov <ja@ssi.bg>
  Julian Wiedmann <jwi@linux.ibm.com>
  Kai-Heng Feng <kai.heng.feng@canonical.com>
  Karsten Graul <kgraul@linux.ibm.com>
  Kiran Bhandare <kiranx.bhandare@intel.com>
  Konrad Jankowski <konrad0.jankowski@intel.com>
  Kumar Thangavel <kumarthangavel.hcl@gmail.com>
  Kumar Thangavel <thangavel.k@hcl.com>
  Li Zhijian <zhijianx.li@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Maciej Fijalkowski <maciej.fijalkowski@intel.com>
  Marek Behún <kabel@kernel.org>
  Marta Plantykow <marta.a.plantykow@intel.com>
  Martyn Welch <martyn.welch@collabora.com>
  Michael Larabel <Michael@MichaelLarabel.com>
  Michael S. Tsirkin <mst@redhat.com>
  Miklos Szeredi <mszeredi@redhat.com>
  Neal Cardwell <ncardwell@google.com>
  Nicolas Iooss <nicolas.iooss_linux@m4x.org>
  Nikolay Aleksandrov <nikolay@nvidia.com>
  Nitesh B Venkatesh <nitesh.b.venkatesh@intel.com>
  Oleksandr Natalenko <oleksandr@natalenko.name>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Phil Sutter <phil@nwl.cc>
  Qu Wenruo <wqu@suse.com>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Richard Cochran <richardcochran@gmail.com>
  Richard Herbert <rherbert@sympatico.ca>
  Robert Marko <robert.marko@sartura.hr>
  Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Samuel Mendoza-Jonas <sam@mendozajonas.com>
  Simon Horman <horms@verge.net.au>
  Simon Horman <simon.horman@corigine.com>
  Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  Stefan Schmidt <stefan@datenfreihafen.org>
  Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
  Thomas Zeitlhofer <thomas.zeitlhofer+lkml@ze-it.at>
  Tobias Brunner <tobias@strongswan.org>
  Tony Lu <tonylu@linux.alibaba.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Vincent Whitchurch <vincent.whitchurch@axis.com>
  Vladimir Oltean <vladimir.oltean@nxp.com>
  Volodymyr Mytnyk <vmytnyk@marvell.com>
  Wan Jiabing <wanjiabing@vivo.com>
  Wen Gu <guwen@linux.alibaba.com>
  Will Mortensen <willmo@gmail.com>
  yangxingwu <xingwu.yang@gmail.com>
  Yannick Vignon <yannick.vignon@nxp.com>
  Zekun Shen <bruceshenzk@gmail.com>
  zhangyue <zhangyue1@kylinos.cn>
  Zheyu Ma <zheyuma97@gmail.com>
  Ziyang Xuan <william.xuanziyang@huawei.com>
  Łukasz Stelmach <l.stelmach@samsung.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-freebsd12-amd64                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    
 test-armhf-armhf-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   1bff7d7e8c48..c5c17547b778  c5c17547b778975b3d83a73c8d84e8fb5ecf3ba5 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 20:56:33 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 20:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235510.408541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msAAp-0005Pr-So; Tue, 30 Nov 2021 20:56:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235510.408541; Tue, 30 Nov 2021 20:56:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msAAp-0005Pk-PS; Tue, 30 Nov 2021 20:56:23 +0000
Received: by outflank-mailman (input) for mailman id 235510;
 Tue, 30 Nov 2021 20:56:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1msAAp-0005Pe-AM
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 20:56:23 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f8a04aa6-521f-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 21:56:22 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:50516)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1msAAi-000joV-fy (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 20:56:16 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id BD5E81FC17;
 Tue, 30 Nov 2021 20:56:15 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8a04aa6-521f-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <17bb5295-6207-0bf4-6432-426729a3a288@srcf.net>
Date: Tue, 30 Nov 2021 20:56:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Kevin Tian <kevin.tian@intel.com>, Jun Nakajima <jun.nakajima@intel.com>
References: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
 <aa19f4cf-6f62-3bf8-7057-7dae1cf28162@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 1/3] x86/vPMU: convert vendor hook invocations to altcall
In-Reply-To: <aa19f4cf-6f62-3bf8-7057-7dae1cf28162@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/11/2021 09:10, Jan Beulich wrote:
> --- a/xen/arch/x86/cpu/vpmu.c
> +++ b/xen/arch/x86/cpu/vpmu.c
> @@ -17,12 +17,12 @@
>   *
>   * Author: Haitao Shan <haitao.shan@intel.com>
>   */
> -#include <xen/sched.h>
> -#include <xen/xenoprof.h>
> -#include <xen/event.h>
> -#include <xen/guest_access.h>
>  #include <xen/cpu.h>
> +#include <xen/err.h>
>  #include <xen/param.h>
> +#include <xen/event.h>
> +#include <xen/guest_access.h>
> +#include <xen/sched.h>
>  #include <asm/regs.h>
>  #include <asm/types.h>
>  #include <asm/msr.h>
> @@ -49,6 +49,7 @@ CHECK_pmu_params;
>  static unsigned int __read_mostly opt_vpmu_enabled;
>  unsigned int __read_mostly vpmu_mode = XENPMU_MODE_OFF;
>  unsigned int __read_mostly vpmu_features = 0;
> +static struct arch_vpmu_ops __read_mostly vpmu_ops;

Thoughts on renaming to just struct vpmu_ops ?  The arch_ really is
quite wrong, and you touch every impacted line in this patch, other than
the main struct name itself.

[edit] there are other misuses of arch_.  Perhaps best to defer this to
a later change.

> @@ -133,14 +133,13 @@ int vpmu_do_msr(unsigned int msr, uint64
>           goto nop;
>  
>      vpmu = vcpu_vpmu(curr);
> -    ops = vpmu->arch_vpmu_ops;
> -    if ( !ops )
> +    if ( !vpmu_is_set(vpmu, VPMU_INITIALIZED) )
>          goto nop;
>  
> -    if ( is_write && ops->do_wrmsr )
> -        ret = ops->do_wrmsr(msr, *msr_content, supported);
> -    else if ( !is_write && ops->do_rdmsr )
> -        ret = ops->do_rdmsr(msr, msr_content);
> +    if ( is_write && vpmu_ops.do_wrmsr )
> +        ret = alternative_call(vpmu_ops.do_wrmsr, msr, *msr_content, supported);
> +    else if ( !is_write && vpmu_ops.do_rdmsr )
> +        ret = alternative_call(vpmu_ops.do_rdmsr, msr, msr_content);

Elsewhere, you've dropped the function pointer NULL checks.  Why not here?

> --- a/xen/include/asm-x86/vpmu.h
> +++ b/xen/include/asm-x86/vpmu.h
> @@ -61,25 +61,25 @@ struct vpmu_struct {
>      u32 hw_lapic_lvtpc;
>      void *context;      /* May be shared with PV guest */
>      void *priv_context; /* hypervisor-only */
> -    const struct arch_vpmu_ops *arch_vpmu_ops;
>      struct xen_pmu_data *xenpmu_data;
>      spinlock_t vpmu_lock;
>  };
>  
>  /* VPMU states */
> -#define VPMU_CONTEXT_ALLOCATED              0x1
> -#define VPMU_CONTEXT_LOADED                 0x2
> -#define VPMU_RUNNING                        0x4
> -#define VPMU_CONTEXT_SAVE                   0x8   /* Force context save */
> -#define VPMU_FROZEN                         0x10  /* Stop counters while VCPU is not running */
> -#define VPMU_PASSIVE_DOMAIN_ALLOCATED       0x20
> +#define VPMU_INITIALIZED                    0x1
> +#define VPMU_CONTEXT_ALLOCATED              0x2
> +#define VPMU_CONTEXT_LOADED                 0x4
> +#define VPMU_RUNNING                        0x8
> +#define VPMU_CONTEXT_SAVE                   0x10  /* Force context save */
> +#define VPMU_FROZEN                         0x20  /* Stop counters while VCPU is not running */
> +#define VPMU_PASSIVE_DOMAIN_ALLOCATED       0x40
>  /* PV(H) guests: VPMU registers are accessed by guest from shared page */
> -#define VPMU_CACHED                         0x40
> -#define VPMU_AVAILABLE                      0x80
> +#define VPMU_CACHED                         0x80
> +#define VPMU_AVAILABLE                      0x100
>  
>  /* Intel-specific VPMU features */
> -#define VPMU_CPU_HAS_DS                     0x100 /* Has Debug Store */
> -#define VPMU_CPU_HAS_BTS                    0x200 /* Has Branch Trace Store */
> +#define VPMU_CPU_HAS_DS                     0x1000 /* Has Debug Store */
> +#define VPMU_CPU_HAS_BTS                    0x2000 /* Has Branch Trace Store */

Seeing as you're shuffling each of these, how about adding some leading
0's for alignment?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 21:19:17 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 21:19:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235517.408553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msAWi-0008L7-Tq; Tue, 30 Nov 2021 21:19:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235517.408553; Tue, 30 Nov 2021 21:19:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msAWi-0008L0-Ol; Tue, 30 Nov 2021 21:19:00 +0000
Received: by outflank-mailman (input) for mailman id 235517;
 Tue, 30 Nov 2021 21:18:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1msAWh-0008Ku-HV
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 21:18:59 +0000
Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 20ec84cd-5223-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 22:18:58 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:43850)
 by ppsw-32.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1msAWZ-000CEy-0C (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 21:18:51 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id D19DF1FC17;
 Tue, 30 Nov 2021 21:18:50 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20ec84cd-5223-11ec-b941-1df2895da90e
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <35e2dab8-e274-839c-23a8-25f4c121cd08@srcf.net>
Date: Tue, 30 Nov 2021 21:18:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>,
 Kevin Tian <kevin.tian@intel.com>, Jun Nakajima <jun.nakajima@intel.com>
References: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
 <66e64fc5-34f1-7877-42b1-3533136f56ab@suse.com>
From: Andrew Cooper <amc96@srcf.net>
Subject: Re: [PATCH 2/3] x86/vPMU: invoke <vendor>_vpmu_initialise() through a
 hook as well
In-Reply-To: <66e64fc5-34f1-7877-42b1-3533136f56ab@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/11/2021 09:10, Jan Beulich wrote:
> I see little point in having an open-coded switch() statement to achieve
> the same; like other vendor-specific operations the function can be
> supplied in the respective ops structure instances.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Yeah, that logic was just bizarre.

Now that the ARM folks have added XEN_DOMCTL_CDF_vpmu, there is a huge
quantity of simplification which can be done around
vpmu_available()/etc, but that's definitely future work.

I think it would probably be good to get a position where we can enable
hwdom vpmu by default.  There is a spec on how to share perfcounters
with firmware, which we ought to investigate to let the watchdog
coexists beside vPMU.

> --- a/xen/arch/x86/cpu/vpmu.c
> +++ b/xen/arch/x86/cpu/vpmu.c
> @@ -480,12 +470,17 @@ static int vpmu_arch_initialise(struct v
>          return -EINVAL;
>      }
>  
> -    vpmu->hw_lapic_lvtpc = PMU_APIC_VECTOR | APIC_LVT_MASKED;
> -
> +    ret = alternative_call(vpmu_ops.initialise, v);
>      if ( ret )
> +    {
>          printk(XENLOG_G_WARNING "VPMU: Initialization failed for %pv\n", v);
> +        return ret;
> +    }
> +
> +    vpmu->hw_lapic_lvtpc = PMU_APIC_VECTOR | APIC_LVT_MASKED;
> +    vpmu_set(vpmu, VPMU_INITIALIZED);

It occurs to me that if, in previous patch, you do:

    if ( ret )
        printk(XENLOG_G_WARNING "VPMU: Initialization failed for %pv\n", v);
+    else
+        vpmu_set(vpmu, VPMU_INITIALIZED);

then you don't need to undo the adjustments in
{svm,vmx}_vpmu_initialise() in this patch.

>  
> -    return ret;
> +    return 0;
>  }
>  
>  static void get_vpmu(struct vcpu *v)
> --- a/xen/arch/x86/cpu/vpmu_amd.c
> +++ b/xen/arch/x86/cpu/vpmu_amd.c
> @@ -529,11 +516,22 @@ int svm_vpmu_initialise(struct vcpu *v)
>                 offsetof(struct xen_pmu_amd_ctxt, regs));
>      }
>  
> -    vpmu_set(vpmu, VPMU_INITIALIZED | VPMU_CONTEXT_ALLOCATED);
> +    vpmu_set(vpmu, VPMU_CONTEXT_ALLOCATED);
>  
>      return 0;
>  }
>  
> +static const struct arch_vpmu_ops __initconstrel amd_vpmu_ops = {
> +    .initialise = svm_vpmu_initialise,
> +    .do_wrmsr = amd_vpmu_do_wrmsr,
> +    .do_rdmsr = amd_vpmu_do_rdmsr,
> +    .do_interrupt = amd_vpmu_do_interrupt,
> +    .arch_vpmu_destroy = amd_vpmu_destroy,
> +    .arch_vpmu_save = amd_vpmu_save,
> +    .arch_vpmu_load = amd_vpmu_load,
> +    .arch_vpmu_dump = amd_vpmu_dump

As you're moving everything, trailing comma please.

> --- a/xen/arch/x86/cpu/vpmu_intel.c
> +++ b/xen/arch/x86/cpu/vpmu_intel.c
> @@ -893,11 +880,20 @@ int vmx_vpmu_initialise(struct vcpu *v)
>      if ( is_pv_vcpu(v) && !core2_vpmu_alloc_resource(v) )
>          return -EIO;
>  
> -    vpmu_set(vpmu, VPMU_INITIALIZED);
> -
>      return 0;
>  }
>  
> +static const struct arch_vpmu_ops __initconstrel core2_vpmu_ops = {
> +    .initialise = vmx_vpmu_initialise,
> +    .do_wrmsr = core2_vpmu_do_wrmsr,
> +    .do_rdmsr = core2_vpmu_do_rdmsr,
> +    .do_interrupt = core2_vpmu_do_interrupt,
> +    .arch_vpmu_destroy = core2_vpmu_destroy,
> +    .arch_vpmu_save = core2_vpmu_save,
> +    .arch_vpmu_load = core2_vpmu_load,
> +    .arch_vpmu_dump = core2_vpmu_dump

And here.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, although
preferably with the VPMU_INITIALIZED adjustment.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 21:48:51 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 21:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235530.408566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msAzI-0003QD-2u; Tue, 30 Nov 2021 21:48:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235530.408566; Tue, 30 Nov 2021 21:48:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msAzH-0003Q6-WD; Tue, 30 Nov 2021 21:48:32 +0000
Received: by outflank-mailman (input) for mailman id 235530;
 Tue, 30 Nov 2021 21:48:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ALws=QR=kaod.org=clg@srs-se1.protection.inumbo.net>)
 id 1msAzG-0003Q0-2I
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 21:48:30 +0000
Received: from 6.mo552.mail-out.ovh.net (6.mo552.mail-out.ovh.net
 [188.165.49.222]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f9965ae-5227-11ec-b941-1df2895da90e;
 Tue, 30 Nov 2021 22:48:26 +0100 (CET)
Received: from mxplan5.mail.ovh.net (unknown [10.109.143.123])
 by mo552.mail-out.ovh.net (Postfix) with ESMTPS id 0AD47216DE;
 Tue, 30 Nov 2021 21:48:24 +0000 (UTC)
Received: from kaod.org (37.59.142.99) by DAG4EX1.mxp5.local (172.16.2.31)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 30 Nov
 2021 22:48:23 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f9965ae-5227-11ec-b941-1df2895da90e
Authentication-Results: garm.ovh; auth=pass (GARM-99G00338e8fa02-b36d-46a2-a9ce-03d85f7b4222,
                    1FE831E2BDC1BE20692CF32662DF656E64B35270) smtp.auth=clg@kaod.org
X-OVh-ClientIp: 90.11.56.15
Message-ID: <524d9b84-caa8-dd6f-bb5e-9fc906d279c0@kaod.org>
Date: Tue, 30 Nov 2021 22:48:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.0
Subject: Re: [patch 05/22] genirq/msi: Fixup includes
Content-Language: en-US
To: Thomas Gleixner <tglx@linutronix.de>, LKML <linux-kernel@vger.kernel.org>
CC: <linux-hyperv@vger.kernel.org>, Paul Mackerras <paulus@samba.org>,
	<sparclinux@vger.kernel.org>, Wei Liu <wei.liu@kernel.org>, Ashok Raj
	<ashok.raj@intel.com>, Marc Zygnier <maz@kernel.org>, <x86@kernel.org>,
	Christian Borntraeger <borntraeger@de.ibm.com>, Bjorn Helgaas
	<helgaas@kernel.org>, Jason Gunthorpe <jgg@nvidia.com>,
	<linux-pci@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
	<ath11k@lists.infradead.org>, Kevin Tian <kevin.tian@intel.com>, Heiko
 Carstens <hca@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>,
	Megha Dey <megha.dey@intel.com>, Juergen Gross <jgross@suse.com>, Thomas
 Bogendoerfer <tsbogend@alpha.franken.de>, Greg Kroah-Hartman
	<gregkh@linuxfoundation.org>, <linux-mips@vger.kernel.org>,
	<linuxppc-dev@lists.ozlabs.org>
References: <20211126222700.862407977@linutronix.de>
 <20211126223824.382273262@linutronix.de>
 <b1a6d267-c7b4-c4b9-ab0e-f5cc32bfe9bf@kaod.org> <87tufud4m3.ffs@tglx>
From: =?UTF-8?Q?C=c3=a9dric_Le_Goater?= <clg@kaod.org>
In-Reply-To: <87tufud4m3.ffs@tglx>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-Originating-IP: [37.59.142.99]
X-ClientProxiedBy: DAG3EX2.mxp5.local (172.16.2.22) To DAG4EX1.mxp5.local
 (172.16.2.31)
X-Ovh-Tracer-GUID: 16c7449c-9f55-435d-bf3c-7f66bf2ab8fd
X-Ovh-Tracer-Id: 11252243670229552028
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvuddriedugdduheehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepkfffgggfuffvfhfhjggtgfhisehtkeertddtfeejnecuhfhrohhmpeevrogurhhitggpnfgvpgfiohgrthgvrhcuoegtlhhgsehkrghougdrohhrgheqnecuggftrfgrthhtvghrnhepjeekvdfgudevkeefkeeltdejteekvdegffegudetgeettdffjeefheekfeelffdtnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucfkpheptddrtddrtddrtddpfeejrdehledrudegvddrleelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhpohhuthdphhgvlhhopehmgihplhgrnhehrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtoheplhhinhhugihpphgtqdguvghvsehlihhsthhsrdhoiihlrggsshdrohhrgh

On 11/29/21 22:38, Thomas Gleixner wrote:
> Cedric,
> 
> On Mon, Nov 29 2021 at 08:33, Cédric Le Goater wrote:
>> On 11/27/21 02:18, Thomas Gleixner wrote:
>>> Remove the kobject.h include from msi.h as it's not required and add a
>>> sysfs.h include to the core code instead.
>>>
>>> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
>>
>>
>> This patch breaks compile on powerpc :
>>
>>     CC      arch/powerpc/kernel/msi.o
>> In file included from ../arch/powerpc/kernel/msi.c:7:
>> ../include/linux/msi.h:410:65: error: ‘struct cpumask’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
>>     410 | int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,
>>         |                                                                 ^~~~~~~
>> cc1: all warnings being treated as errors
>>
>> Below is fix you can merge in patch 5.
> 
> thanks for having a look. I fixed up this and other fallout and pushed out an
> updated series (all 4 parts) to:
> 
>          git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel msi

pSeries fails to allocate MSIs starting with this patch :

  [PATCH 049/101] powerpc/pseries/msi: Let core code check for contiguous ...

I will dig in later on.

C.


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 22:01:49 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 22:01:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235536.408578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBBy-0005l1-8o; Tue, 30 Nov 2021 22:01:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235536.408578; Tue, 30 Nov 2021 22:01:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBBy-0005ku-5c; Tue, 30 Nov 2021 22:01:38 +0000
Received: by outflank-mailman (input) for mailman id 235536;
 Tue, 30 Nov 2021 22:01:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1msBBw-0005ko-Kb
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 22:01:36 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13f8aa71-5229-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 23:01:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13f8aa71-5229-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638309694;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=xJavKuZ2gqDnL/81JHfSY0GJ+QSSKkIKh/Cof+NDXsI=;
  b=frwyV+G3cjWwwANQcWo7QixeMDGlfe4xG6SN92NRdFWW0LI5sWapSUiU
   UXtJMKq/F7tIKIYGVlBfjNqWxlYH8+C4bHiUN8W46VGJfco5AwsgN2Pby
   /9GtZZihpvQmWmuiYqXT6CA8nn3HeFwCs+1O+9ReNeZGuFCx94EcwBqad
   0=;
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: kZswpjAKp8ZNxKmvpuRLn8muEF4gBCHWyAeXEtEkmDuT/UdEWgHKJYgBdMlitBwByQhzEnmsxi
 Jx5ow19ewQf5gvoFa7NhpOLsVrrNUPgnclOzA5KOXMlnEGim1AQJK1lygU0xWlCrxZOUsTzyUB
 uJ4zxrJn1H5MC/YLFQu+tTO/WrXIrieSDKbzkd/sFBlR3bnNcLhDY+PavDhzCrFcJfR/p3dLtT
 aH4k96dI/c2iqWPMzVNk4SKXGIvII+CIg0tsSJF05PmX254+CcDECcQpVSv37iMUv9qLW0Ck6T
 xquniOyeIZflVYw6LiQZC5yt
X-SBRS: 5.1
X-MesageID: 59346727
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:KbPGwqnyOa30uJh7TXJ4owzo5gxMIURdPkR7XQ2eYbSJt1+Wr1Gzt
 xJNDWmOPfjcNDGmf493bo2+9x9QsZDdzdBqT1E+rCxgRCMWpZLJC+rCIxarNUt+DCFioGGLT
 Sk6QoOdRCzhZiaE/n9BClVlxJVF/fngqoDUUYYoAQgsA187IMsdoUg7wbdg29Uw2YPR7z6l4
 rseneWOYDdJ5BYsWo4kw/rrRMRH5amaVJsw5zTSVNgT1LPsvyB94KE3fMldG0DQUIhMdtNWc
 s6YpF2PEsE1yD92Yj+tuu6TnkTn2dc+NyDW4pZdc/DKbhSvOkXee0v0XRYRQR4/ttmHozx+4
 OVtmqaPQFwjAqzdgqdCYiFFKj57OLITrdcrIVDn2SCS50jPcn+qyPRyFkAme4Yf/46bA0kXq
 6ZecmpUKEne2aTmm9pXScE17ignBODtMJkSpTdLyjbBAOx9aZvCX7/L9ZlT2zJYasVmQKeFO
 5RGM2UHgBLofjhmGXoyFskElv6vnSntdRJ+s3e5uv9ii4TU5FMoi+W8WDbPQfSVQe1Fk0Deo
 XjJl0zbKBwHMN2UyRKe72mhwOTImEvTSI8UUbG16PNuqFmS3XAITg0bU0Ohpvu0gVL4XMhQQ
 3H44QJ38/J0rhbyCICgAVvo+xZooyLwRfJgM8IA1wjWwJbV8hzaWVk8Uwdebdk54ZpeqSMR6
 neFmNbgBDpKubKTSG6A+rr8kQ5eKRT5PkdZO3ZaEFJtD83L5dhq00mRFooL/Lud14WtQVnNL
 ya2QD/Sbln5peoCzO2F8F/OmFpATbCZH1dutm07so9Ihz6VhbJJhaT0uTA3Dt4ade51q2VtW
 lBfwKByC8hUUPmweNSlGrllIV1Qz6/t3MfgqVBuBYI90D+m5mSue4tdiBknehw5aJdbIW+0P
 BKO0e+02HO1FCDxBUOQS9jsY/nGMIC6TYi1PhwqRoQmjmdNmP+vo3g1OB/4M5HFm0kwi6AvU
 ap3gu73ZUv2/Z9PlWLsL89EiOdD7nlnmQv7GMCqpzz6gOH2TCPEFt843K6mM7lRAFWs+16Or
 b6y9qKiln1ibQEJSnWNrNNIcwlVdSNT6FKfg5U/S9Nv6zFOQAkJY8I9C5t9E2C8t6gKxOrO4
 F+nXUpUlAj2iXHdcF3YYXF/crL/G514qCtjbyArOF+p3VklYJqus/hDJ8dmI+F/+bwx1+NwQ
 tkEZ96EXqZFRAPY9mlPdpL6toFjKkim3FrcIyq/bTEjVJd8XAiVqMT8dw7i+XBWXCq6vMczu
 ZO60QbfTcZRTghuFp+OOvmu00mwrT4Wn+crBxnEJdxaeUPN9ol2KnOu0q9rcp9UcRian2mUz
 QebBxsctNLhmY5t/Ymbn72AoqeoD/B6QhhQEV7E4OvkLiLd5Gein9NNCb7aYTDHWWro06y+f
 uEJnerkOfgKkVsW4YpxF7FnkfA369f1/uIIyw1lGDPAbkixC6MmKX6DhJEduqpIz75fmA23R
 kPQpYUKZeTXYJvoQAwLOQ4oTuWfzvVFyDDd4MM8LFj++CIqrqGMVl9fPkXUhSFQRFev3FjJH
 Qv1VBYq1jGC
IronPort-HdrOrdr: A9a23:NI0h36t4AZ9Ct53yowfPx8nl7skDeNV00zEX/kB9WHVpm62j+/
 xG+c5x6faaslkssR0b9+xoWpPhfZqsz/9ICOAqVN/JMTUO01HYT72Kg7GSpgHIKmnT8fNcyL
 clU4UWMqyVMbGit7eZ3DWF
X-IronPort-AV: E=Sophos;i="5.87,277,1631592000"; 
   d="scan'208";a="59346727"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 4/3] x86/vPMU: Drop supported parameter from the wrmsr path
Date: Tue, 30 Nov 2021 22:01:11 +0000
Message-ID: <20211130220111.23815-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
References: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The supported parameter was added in 2d9b91f1aeaa ("VMX/vPMU: fix DebugCtl MSR
handling"), it laid the groundwork for XSA-269, and in the meantime
2a8a8e99feb9 ("x86/vtx: Fix the checking for unknown/invalid MSR_DEBUGCTL
bits") totally rewrote MSR_DEBUGCTL handling.

Strip out the parameter again.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/cpu/vpmu.c        |  5 ++---
 xen/arch/x86/cpu/vpmu_amd.c    |  5 +----
 xen/arch/x86/cpu/vpmu_intel.c  |  5 +----
 xen/arch/x86/hvm/svm/svm.c     |  2 +-
 xen/arch/x86/hvm/vmx/vmx.c     |  2 +-
 xen/arch/x86/pv/emul-priv-op.c |  2 +-
 xen/include/asm-x86/vpmu.h     | 13 +++++--------
 7 files changed, 12 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index 7fd69a2a58e3..8ec4547bedf4 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -116,8 +116,7 @@ void vpmu_lvtpc_update(uint32_t val)
         apic_write(APIC_LVTPC, vpmu->hw_lapic_lvtpc);
 }
 
-int vpmu_do_msr(unsigned int msr, uint64_t *msr_content,
-                uint64_t supported, bool_t is_write)
+int vpmu_do_msr(unsigned int msr, uint64_t *msr_content, bool is_write)
 {
     struct vcpu *curr = current;
     struct vpmu_struct *vpmu;
@@ -137,7 +136,7 @@ int vpmu_do_msr(unsigned int msr, uint64_t *msr_content,
         goto nop;
 
     if ( is_write )
-        ret = alternative_call(vpmu_ops.do_wrmsr, msr, *msr_content, supported);
+        ret = alternative_call(vpmu_ops.do_wrmsr, msr, *msr_content);
     else
         ret = alternative_call(vpmu_ops.do_rdmsr, msr, msr_content);
 
diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index b28c78b81109..903fe1887ef0 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -348,16 +348,13 @@ static void context_update(unsigned int msr, u64 msr_content)
     }
 }
 
-static int amd_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content,
-                             uint64_t supported)
+static int amd_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
 {
     struct vcpu *v = current;
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
     unsigned int idx = 0;
     int type = get_pmu_reg_type(msr, &idx);
 
-    ASSERT(!supported);
-
     if ( (type == MSR_TYPE_CTRL ) &&
          ((msr_content & CTRL_RSVD_MASK) != ctrl_rsvd[idx]) )
         return -EINVAL;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 63e798b9edac..076882c615f4 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -522,8 +522,7 @@ static int core2_vpmu_msr_common_check(u32 msr_index, int *type, int *index)
     return 1;
 }
 
-static int core2_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content,
-                               uint64_t supported)
+static int core2_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
 {
     int i, tmp;
     int type = -1, index = -1;
@@ -535,8 +534,6 @@ static int core2_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content,
     if ( !core2_vpmu_msr_common_check(msr, &type, &index) )
         return -EINVAL;
 
-    ASSERT(!supported);
-
     if ( (type == MSR_TYPE_COUNTER) && (msr_content & fixed_counters_mask) )
         /* Writing unsupported bits to a fixed counter */
         return -EINVAL;
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index f0e10dec046e..fae39c4b4cbd 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2113,7 +2113,7 @@ static int svm_msr_write_intercept(unsigned int msr, uint64_t msr_content)
     case MSR_AMD_FAM15H_EVNTSEL3:
     case MSR_AMD_FAM15H_EVNTSEL4:
     case MSR_AMD_FAM15H_EVNTSEL5:
-        if ( vpmu_do_wrmsr(msr, msr_content, 0) )
+        if ( vpmu_do_wrmsr(msr, msr_content) )
             goto gpf;
         break;
 
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 37c31c08b984..a7a0d662342a 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -3487,7 +3487,7 @@ static int vmx_msr_write_intercept(unsigned int msr, uint64_t msr_content)
     case MSR_CORE_PERF_FIXED_CTR_CTRL...MSR_CORE_PERF_GLOBAL_OVF_CTRL:
     case MSR_IA32_PEBS_ENABLE:
     case MSR_IA32_DS_AREA:
-         if ( vpmu_do_wrmsr(msr, msr_content, 0) )
+         if ( vpmu_do_wrmsr(msr, msr_content) )
             goto gp_fault;
         break;
 
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 7f4279a0517b..8ba65178e98f 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -1163,7 +1163,7 @@ static int write_msr(unsigned int reg, uint64_t val,
                      !is_hardware_domain(currd) )
                     return X86EMUL_OKAY;
 
-                if ( vpmu_do_wrmsr(reg, val, 0) )
+                if ( vpmu_do_wrmsr(reg, val) )
                     break;
                 return X86EMUL_OKAY;
             }
diff --git a/xen/include/asm-x86/vpmu.h b/xen/include/asm-x86/vpmu.h
index ccf5a0cf90b9..80656891e5a3 100644
--- a/xen/include/asm-x86/vpmu.h
+++ b/xen/include/asm-x86/vpmu.h
@@ -40,8 +40,7 @@
 /* Arch specific operations shared by all vpmus */
 struct arch_vpmu_ops {
     int (*initialise)(struct vcpu *v);
-    int (*do_wrmsr)(unsigned int msr, uint64_t msr_content,
-                    uint64_t supported);
+    int (*do_wrmsr)(unsigned int msr, uint64_t msr_content);
     int (*do_rdmsr)(unsigned int msr, uint64_t *msr_content);
     int (*do_interrupt)(struct cpu_user_regs *regs);
     void (*arch_vpmu_destroy)(struct vcpu *v);
@@ -104,8 +103,7 @@ static inline bool_t vpmu_are_all_set(const struct vpmu_struct *vpmu,
 }
 
 void vpmu_lvtpc_update(uint32_t val);
-int vpmu_do_msr(unsigned int msr, uint64_t *msr_content,
-                uint64_t supported, bool_t is_write);
+int vpmu_do_msr(unsigned int msr, uint64_t *msr_content, bool is_write);
 void vpmu_do_interrupt(struct cpu_user_regs *regs);
 void vpmu_initialise(struct vcpu *v);
 void vpmu_destroy(struct vcpu *v);
@@ -113,14 +111,13 @@ void vpmu_save(struct vcpu *v);
 int vpmu_load(struct vcpu *v, bool_t from_guest);
 void vpmu_dump(struct vcpu *v);
 
-static inline int vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content,
-                                uint64_t supported)
+static inline int vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
 {
-    return vpmu_do_msr(msr, &msr_content, supported, 1);
+    return vpmu_do_msr(msr, &msr_content, 1);
 }
 static inline int vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
 {
-    return vpmu_do_msr(msr, msr_content, 0, 0);
+    return vpmu_do_msr(msr, msr_content, 0);
 }
 
 extern unsigned int vpmu_mode;
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 22:04:59 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 22:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235542.408589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBF5-0006OO-OQ; Tue, 30 Nov 2021 22:04:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235542.408589; Tue, 30 Nov 2021 22:04:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBF5-0006OH-LC; Tue, 30 Nov 2021 22:04:51 +0000
Received: by outflank-mailman (input) for mailman id 235542;
 Tue, 30 Nov 2021 22:04:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ICIV=QR=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1msBF5-0006Ns-10
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 22:04:51 +0000
Received: from ppsw-33.csi.cam.ac.uk (ppsw-33.csi.cam.ac.uk [131.111.8.133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 88ac6e2e-5229-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 23:04:49 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:50524)
 by ppsw-33.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 id 1msBF1-0005IC-j8 (Exim 4.95) (return-path <amc96@srcf.net>);
 Tue, 30 Nov 2021 22:04:48 +0000
Received: from [192.168.1.10] (host-92-12-61-86.as13285.net [92.12.61.86])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id C886A1FB51;
 Tue, 30 Nov 2021 22:04:47 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88ac6e2e-5229-11ec-976b-d102b41d0961
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <140eccad-e465-0d19-ecd3-700eeac2c108@srcf.net>
Date: Tue, 30 Nov 2021 22:04:47 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.3.2
Subject: Re: [PATCH 3/3] x86/vPMU: move vpmu_ops to .init.data
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
References: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
 <f59b9122-010b-0a5a-c436-e10928452443@suse.com>
From: Andrew Cooper <amc96@srcf.net>
In-Reply-To: <f59b9122-010b-0a5a-c436-e10928452443@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/11/2021 09:11, Jan Beulich wrote:
> Both vendors' code populates all hooks, so there's no need to have any
> NULL checks before invoking the hook functions. With that the only
> remaining uses of the object are in alternative_{,v}call(), i.e. none
> after alternatives patching.
>
> In vpmu_arch_initialise() the check gets replaced by an opt_vpmu_enabled
> one, as I couldn't convince myself that the pre-existing checks would be
> sufficient to cover all possible cases.

Yeah - that sounds safe.  As I said on the previous patch, there is a
massive quantity of clean-up and simplification to do now with
XEN_DOMCTL_CDF_vpmu.

> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 22:05:26 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 22:05:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235546.408599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBFe-0006vM-1A; Tue, 30 Nov 2021 22:05:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235546.408599; Tue, 30 Nov 2021 22:05:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBFd-0006vF-UQ; Tue, 30 Nov 2021 22:05:25 +0000
Received: by outflank-mailman (input) for mailman id 235546;
 Tue, 30 Nov 2021 22:05:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1hFC=QR=citrix.com=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1msBFc-0006Ns-8T
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 22:05:24 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9bfa2e5c-5229-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 23:05:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9bfa2e5c-5229-11ec-976b-d102b41d0961
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1638309923;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=NkPuMSX3r/ujI6gCVPCjBIaJRCROcysn6Lkkj2dT76U=;
  b=Ksnvfn+Va/8sgdhJRGFva6xYxiPlmupVOZxBKI2q9P7VIuxDtghZfE/b
   6rGZlR1CvazPqaoIdxYNs+sweLQwXraJMrWH9HD5Aw8WUubexnLkkWYM9
   4oydeWoIYQFiU8gTMo0xCdPh8iMRqVaAbbxMki9OR1P3UKr01jtdV2bEf
   Y=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
IronPort-SDR: eg/JkXseT3Qwu2qWHnh8WV/+Aajv9BwpI3pG4xevyJQ1hxzwdUTrH+uIKcOlbMntgXI4ES3qK+
 qnOmhZ9xKjpdfLzlvjmWEN/KrECotd66bIfOOtWbRiByGSSHmAoK4HCK9abz0nLK4DDOkqt8AE
 9uCKjKISekOBFnaL5OHwsjuqUwHmCIa5jw9E/U3rIuzofDY0wMiTJupldSgbuSfOgOFFN9uOBn
 ZugDY4qu0q3T49yHbDdWcfviGINvTGVsEu+c4agAJ/HwsvPpWhhMJiODJZu1o5c4VXbr4HANvW
 VbNR7XmDH3UYLAmfcW2Cmx91
X-SBRS: 5.1
X-MesageID: 58954803
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:y6p+raDdERQ4mRVW/+Xkw5YqxClBgxIJ4kV8jS/XYbTApDMi3zRVz
 DFMUDjTbKreYWekeo8iPou1/R9U7MOBx9ExQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA
 xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLGs1hxZH1c+EX540ko7wIbVv6Yz6TSHK1LV0
 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5
 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/pASumeAu+
 fF28t+UUQ4iD7XRtt8PXEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr
 KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFjGZt2pAWRp4yY
 eI9NCh3LwqafSRfYHY7JbkjsuWTgSfGJmgwRFW9+vNsvjm7IBZK+KfpGMrYfJqNX8o9tmSyq
 3/C/m/5KgoHL9HZwj2Amlq8i+mKkS7lVYY6ELyj6uUskFCV3nYUChAdSR28u/bRt6Klc4sBc
 QpOoHNo9PVsshzwJjXgY/GmiFG1mRgsBOt0KKp5zBmEwZvM/iiiFGdRG1atd+canMMxQDUr0
 HqAkNXoGSFjvdWpdJ6NyluHhWjsYHZIdAfucQdBFFJYuIe7/OnfmzqWFo47eJNZmOEZDt0ZL
 9qiiCElz4segscQv0lQ1QCW2mn8znQlo+Nc2+k2Yo5Hxl8pDGJGT9bxgbQ+0RqmBN3CJrVml
 CJZ8/VyFMhUUfmweNWlGY3h5o2B6fefKyH7ilVyBZQn/DnF0yf9JtAKsW4mdBo1b5tsldrVj
 Kn74lg5CHh7ZibCUEOKS9jpV5RCIVbIS7wJqcw4nvIRO8MsJWdrDQllZFKK3nCFraTfufpXB
 HtvSu71VSxyIf0+lFKeHr5BuZd2lnFW7T6CHvjTkkX4uYdykVbIEN/pxnPVNbtnhE5FyS2Im
 +ti2zyil08CDbagO3aPqub+7zkidBAGOHw/kOQPHsbrH+asMDp+YxMI6b9+KYFjgYpPkeLEo
 iO0VkNCkQKtjnzbMwSaLHtkbeq3D5p4qHs6Ow0qPEqphCd/Mdr+sv9HestlZ6Qj+cxi0eVwE
 6sPdfKfD6kdUT/A4TkcM8Xw9dQwaBSxiAuSFCO5ezxjLYV4TgnE94a8LAvi/SUDFAStss46r
 +Hy3w/XW8NbFQ9jENzXeLSkyFbo5SoRn+d7Xk3pJNhPeRqzrNg2enKp1vJuepMCMxTOwDeex
 j26OxZAqLmfuZIx/fnImbuA89WjHdxhExcIBGLc97u3a3XXpzLx3Y9aXe+UVjnBT2eoqr66b
 OBYwvygYv0KmFFG79h1H7pxlP9s4tLuo/lRzxh+HWWNZFOuU+syLn6D1MhJl6tM2r4G5lfmB
 hPRooFXaeeTJcfoMF8NPw50PO2M2MYdliTW8flocl7x4zV6/ebfXEhfV/VWZPex8Feh3FsZ/
 Noc
IronPort-HdrOrdr: A9a23:BodlAK+9Qp+Q2Q6Wx7Vuk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re5cjztCWE7gr5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtBD4bbLbGSS4/yU3ODBKadD/OW6
X-IronPort-AV: E=Sophos;i="5.87,277,1631592000"; 
   d="scan'208";a="58954803"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH 5/3] x86/vPMU: Harden indirect branches
Date: Tue, 30 Nov 2021 22:05:02 +0000
Message-ID: <20211130220502.27624-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.11.0
In-Reply-To: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
References: <a0212d75-fc55-89c8-7ae2-c893c187ad82@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

As all function pointer calls are resoved to direct calls on boot, clobber the
endbr64 instructions too to make life harder for an attacker which has managed
to hijack a function pointer.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
---
 xen/arch/x86/cpu/vpmu_amd.c   | 2 +-
 xen/arch/x86/cpu/vpmu_intel.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index 903fe1887ef0..e26f4f584e88 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -518,7 +518,7 @@ static int svm_vpmu_initialise(struct vcpu *v)
     return 0;
 }
 
-static const struct arch_vpmu_ops __initconstrel amd_vpmu_ops = {
+static struct arch_vpmu_ops __initdata_cf_clobber amd_vpmu_ops = {
     .initialise = svm_vpmu_initialise,
     .do_wrmsr = amd_vpmu_do_wrmsr,
     .do_rdmsr = amd_vpmu_do_rdmsr,
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 076882c615f4..98a93d1f3c41 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -880,7 +880,7 @@ static int vmx_vpmu_initialise(struct vcpu *v)
     return 0;
 }
 
-static const struct arch_vpmu_ops __initconstrel core2_vpmu_ops = {
+static struct arch_vpmu_ops __initdata_cf_clobber core2_vpmu_ops = {
     .initialise = vmx_vpmu_initialise,
     .do_wrmsr = core2_vpmu_do_wrmsr,
     .do_rdmsr = core2_vpmu_do_rdmsr,
-- 
2.11.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 30 22:09:15 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 22:09:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235556.408610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBJC-0007nF-MB; Tue, 30 Nov 2021 22:09:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235556.408610; Tue, 30 Nov 2021 22:09:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBJC-0007n8-JD; Tue, 30 Nov 2021 22:09:06 +0000
Received: by outflank-mailman (input) for mailman id 235556;
 Tue, 30 Nov 2021 22:09:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1msBJB-0007my-Hp; Tue, 30 Nov 2021 22:09:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1msBJB-0005yQ-AN; Tue, 30 Nov 2021 22:09:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1msBJA-0002aL-VS; Tue, 30 Nov 2021 22:09:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1msBJA-0006Qf-Ut; Tue, 30 Nov 2021 22:09:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=GivlH1i9zTzTWhVGEXywsPZ7qxRHhb11vy2kYs2aRLY=; b=D7IlqeDZbI2qxYMpyn8+c2+nbp
	4mIqzUvJjqtDFlHY7IJLvTpE9bp7+CW6/wa7xuaae+3PBVcfOFblDUnCE2zo7hUC9q6z8sxhD8dQf
	kmZshpvmx7cg/2Vo/bRx7RetIjixMvVEFhgNGej3Ea/2cZZuYZUIs4MIyR1j4J0/y3gI=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166956-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 166956: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-armhf-libvirt:libvirt-build:fail:regression
    libvirt:build-amd64-libvirt:libvirt-build:fail:regression
    libvirt:build-arm64-libvirt:libvirt-build:fail:regression
    libvirt:build-i386-libvirt:libvirt-build:fail:regression
    libvirt:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-pair:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    libvirt=e674218dc2caf906310449e4c8aa708f63133f03
X-Osstest-Versions-That:
    libvirt=2c846fa6bcc11929c9fb857a22430fb9945654ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Nov 2021 22:09:04 +0000

flight 166956 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166956/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-amd64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-arm64-libvirt           6 libvirt-build            fail REGR. vs. 151777
 build-i386-libvirt            6 libvirt-build            fail REGR. vs. 151777

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-i386-libvirt-raw   1 build-check(1)               blocked  n/a
 test-amd64-i386-libvirt-xsm   1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-qcow2  1 build-check(1)               blocked  n/a

version targeted for testing:
 libvirt              e674218dc2caf906310449e4c8aa708f63133f03
baseline version:
 libvirt              2c846fa6bcc11929c9fb857a22430fb9945654ad

Last test of basis   151777  2020-07-10 04:19:19 Z  508 days
Failing since        151818  2020-07-11 04:18:52 Z  507 days  490 attempts
Testing same since   166956  2021-11-30 11:24:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
    Adolfo Jayme Barrientos <fitoschido@gmail.com>
  Aleksandr Alekseev <alexander.alekseev@virtuozzo.com>
  Aleksei Zakharov <zaharov@selectel.ru>
  Andika Triwidada <andika@gmail.com>
  Andrea Bolognani <abologna@redhat.com>
  Ani Sinha <ani@anisinha.ca>
  Balázs Meskó <meskobalazs@mailbox.org>
  Barrett Schonefeld <bschoney@utexas.edu>
  Bastian Germann <bastiangermann@fishpost.de>
  Bastien Orivel <bastien.orivel@diateam.net>
  BiaoXiang Ye <yebiaoxiang@huawei.com>
  Bihong Yu <yubihong@huawei.com>
  Binfeng Wu <wubinfeng@huawei.com>
  Bjoern Walk <bwalk@linux.ibm.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  Brian Turek <brian.turek@gmail.com>
  Bruno Haible <bruno@clisp.org>
  Chris Mayo <aklhfex@gmail.com>
  Christian Borntraeger <borntraeger@de.ibm.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Christian Kirbach <christian.kirbach@gmail.com>
  Christian Schoenebeck <qemu_oss@crudebyte.com>
  Cole Robinson <crobinso@redhat.com>
  Collin Walling <walling@linux.ibm.com>
  Cornelia Huck <cohuck@redhat.com>
  Cédric Bosdonnat <cbosdonnat@suse.com>
  Côme Borsoi <fedora@borsoi.fr>
  Daniel Henrique Barboza <danielhb413@gmail.com>
  Daniel Letai <dani@letai.org.il>
  Daniel P. Berrange <berrange@redhat.com>
  Daniel P. Berrangé <berrange@redhat.com>
  Didik Supriadi <didiksupriadi41@gmail.com>
  dinglimin <dinglimin@cmss.chinamobile.com>
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
  Dmytro Linkin <dlinkin@nvidia.com>
  Eiichi Tsukata <eiichi.tsukata@nutanix.com>
  Eric Farman <farman@linux.ibm.com>
  Erik Skultety <eskultet@redhat.com>
  Fabian Affolter <mail@fabian-affolter.ch>
  Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Fabiano Fidêncio <fabiano@fidencio.org>
  Fangge Jin <fjin@redhat.com>
  Farhan Ali <alifm@linux.ibm.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Franck Ridel <fridel@protonmail.com>
  Gavi Teitz <gavi@nvidia.com>
  gongwei <gongwei@smartx.com>
  Guoyi Tu<tu.guoyi@h3c.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Halil Pasic <pasic@linux.ibm.com>
  Han Han <hhan@redhat.com>
  Hao Wang <wanghao232@huawei.com>
  Hela Basa <r45xveza@pm.me>
  Helmut Grohne <helmut@subdivi.de>
  Hiroki Narukawa <hnarukaw@yahoo-corp.jp>
  Ian Wienand <iwienand@redhat.com>
  Ioanna Alifieraki <ioanna-maria.alifieraki@canonical.com>
  Jakob Meng <jakobmeng@web.de>
  Jamie Strandboge <jamie@canonical.com>
  Jamie Strandboge <jamie@ubuntu.com>
  Jan Kuparinen <copper_fin@hotmail.com>
  jason lee <ppark5237@gmail.com>
  Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  Jia Zhou <zhou.jia2@zte.com.cn>
  Jianan Gao <jgao@redhat.com>
  Jim Fehlig <jfehlig@suse.com>
  Jin Yan <jinyan12@huawei.com>
  Jinsheng Zhang <zhangjl02@inspur.com>
  Jiri Denemark <jdenemar@redhat.com>
  John Ferlan <jferlan@redhat.com>
  Jonathan Watt <jwatt@jwatt.org>
  Jonathon Jongsma <jjongsma@redhat.com>
  Julio Faracco <jcfaracco@gmail.com>
  Justin Gatzen <justin.gatzen@gmail.com>
  Ján Tomko <jtomko@redhat.com>
  Kashyap Chamarthy <kchamart@redhat.com>
  Kevin Locke <kevin@kevinlocke.name>
  Koichi Murase <myoga.murase@gmail.com>
  Kristina Hanicova <khanicov@redhat.com>
  Laine Stump <laine@redhat.com>
  Laszlo Ersek <lersek@redhat.com>
  Lee Yarwood <lyarwood@redhat.com>
  Lei Yang <yanglei209@huawei.com>
  Liao Pingfang <liao.pingfang@zte.com.cn>
  Lin Ma <lma@suse.com>
  Lin Ma <lma@suse.de>
  Lin Ma <morecache@gmail.com>
  Liu Yiding <liuyd.fnst@fujitsu.com>
  Luke Yue <lukedyue@gmail.com>
  Luyao Zhong <luyao.zhong@intel.com>
  Marc Hartmayer <mhartmay@linux.ibm.com>
  Marc-André Lureau <marcandre.lureau@redhat.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Markus Schade <markus.schade@hetzner.com>
  Martin Kletzander <mkletzan@redhat.com>
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
  Matej Cepl <mcepl@cepl.eu>
  Matt Coleman <matt@datto.com>
  Matt Coleman <mcoleman@datto.com>
  Mauro Matteo Cascella <mcascell@redhat.com>
  Meina Li <meili@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Michał Smyk <fedora@smyk.it>
  Milo Casagrande <milo@milo.name>
  Moshe Levi <moshele@nvidia.com>
  Muha Aliss <muhaaliss@gmail.com>
  Nathan <nathan95@live.it>
  Neal Gompa <ngompa13@gmail.com>
  Nick Chevsky <nchevsky@gmail.com>
  Nick Shyrokovskiy <nshyrokovskiy@gmail.com>
  Nickys Music Group <nickys.music.group@gmail.com>
  Nico Pache <npache@redhat.com>
  Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
  Olaf Hering <olaf@aepfle.de>
  Olesya Gerasimenko <gammaray@basealt.ru>
  Or Ozeri <oro@il.ibm.com>
  Orion Poplawski <orion@nwra.com>
  Pany <geekpany@gmail.com>
  Patrick Magauran <patmagauran.j@gmail.com>
  Paulo de Rezende Pinatti <ppinatti@linux.ibm.com>
  Pavel Hrdina <phrdina@redhat.com>
  Peng Liang <liangpeng10@huawei.com>
  Peter Krempa <pkrempa@redhat.com>
  Pino Toscano <ptoscano@redhat.com>
  Pino Toscano <toscano.pino@tiscali.it>
  Piotr Drąg <piotrdrag@gmail.com>
  Prathamesh Chavan <pc44800@gmail.com>
  Praveen K Paladugu <prapal@linux.microsoft.com>
  Richard W.M. Jones <rjones@redhat.com>
  Ricky Tigg <ricky.tigg@gmail.com>
  Robin Lee <cheeselee@fedoraproject.org>
  Roman Bogorodskiy <bogorodskiy@gmail.com>
  Roman Bolshakov <r.bolshakov@yadro.com>
  Ryan Gahagan <rgahagan@cs.utexas.edu>
  Ryan Schmidt <git@ryandesign.com>
  Sam Hartman <hartmans@debian.org>
  Scott Shambarger <scott-libvirt@shambarger.net>
  Sebastian Mitterle <smitterl@redhat.com>
  SeongHyun Jo <caelus9536@gmail.com>
  Shalini Chellathurai Saroja <shalini@linux.ibm.com>
  Shaojun Yang <yangshaojun@phytium.com.cn>
  Shi Lei <shi_lei@massclouds.com>
  simmon <simmon@nplob.com>
  Simon Chopin <chopin.simon@gmail.com>
  Simon Gaiser <simon@invisiblethingslab.com>
  Simon Rowe <simon.rowe@nutanix.com>
  Stefan Bader <stefan.bader@canonical.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Berger <stefanb@linux.vnet.ibm.com>
  Stefan Hajnoczi <stefanha@gmail.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Szymon Scholz <szymonscholz@gmail.com>
  Thomas Huth <thuth@redhat.com>
  Tim Wiederhake <twiederh@redhat.com>
  Tomáš Golembiovský <tgolembi@redhat.com>
  Tomáš Janoušek <tomi@nomi.cz>
  Tuguoyi <tu.guoyi@h3c.com>
  Vasiliy Ulyanov <vulyanov@suse.de>
  Victor Toso <victortoso@redhat.com>
  Ville Skyttä <ville.skytta@iki.fi>
  Vinayak Kale <vkale@nvidia.com>
  Wang Xin <wangxinxin.wang@huawei.com>
  WangJian <wangjian161@huawei.com>
  Weblate <noreply@weblate.org>
  Wei Liu <liuwe@microsoft.com>
  Wei Liu <wei.liu@kernel.org>
  Wei-Chen Chen <weicche@microsoft.com>
  William Douglas <william.douglas@intel.com>
  Xu Chao <xu.chao6@zte.com.cn>
  Yalei Li <274268859@qq.com>
  Yalei Li <liyl43@chinatelecom.cn>
  Yang Fei <yangfei85@huawei.com>
  Yang Hang <yanghang44@huawei.com>
  Yanqiu Zhang <yanqzhan@redhat.com>
  Yaroslav Kargin <ykargin@virtuozzo.com>
  Yi Li <yili@winhong.com>
  Yi Wang <wang.yi59@zte.com.cn>
  Yuri Chornoivan <yurchor@ukr.net>
  Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  zhangjl02 <zhangjl02@inspur.com>
  zhanglei <zhanglei@smartx.com>
  Zheng Chuan <zhengchuan@huawei.com>
  zhenwei pi <pizhenwei@bytedance.com>
  Zhenyu Ye <yezhenyu2@huawei.com>
  Zhenyu Zheng <zheng.zhenyu@outlook.com>
  Zhenzhong Duan <zhenzhong.duan@intel.com>
  Дамјан Георгиевски <gdamjan@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-arm64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-i386-libvirt-pair                                 blocked 
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               blocked 
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 blocked 
 test-amd64-i386-libvirt-raw                                  blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 85277 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 22:10:56 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 22:10:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235562.408625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBKs-0000gF-3O; Tue, 30 Nov 2021 22:10:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235562.408625; Tue, 30 Nov 2021 22:10:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBKs-0000g8-0J; Tue, 30 Nov 2021 22:10:50 +0000
Received: by outflank-mailman (input) for mailman id 235562;
 Tue, 30 Nov 2021 22:10:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=47l3=QR=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1msBKq-0000fy-40
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 22:10:48 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5e4f9b94-522a-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 23:10:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e4f9b94-522a-11ec-976b-d102b41d0961
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1638310245;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=iQwNm3evMDmCqqNj6SOBSL2raZeNEDMRyVYLWo7plsQ=;
	b=cfCUOIaPomiZCO9d79k8QaTA54iAEZbQY4lmYzVXbCZ99fBBPE+xqpOo1m4nSfa3KPq6+6
	pI8jqClQqAQ6e9xEzGMdMDMlM7PO3wO+IzFhUB7wl4w2H81v2euyyU8OpSzUxgKY+0HqOn
	tbRxYHYo0OtQnM7fMd/Q2RflLcOK0WEbJRcLaARC9aG5kGkie13cZuSuCFIva1m+TA616i
	dV35DJLlXGyNBE5vTnPj0hgLjo4pBUrYZ1WEUXNY8Y4DNEBT5I7kTI7Vt9Tc5Lg2J+Di+B
	X84UlqMbc2Q4lC6o9mfXgbNv2vVK1HCIjDj9nJ/ptp3y+rYMnW5ZpEnm9xcPOg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1638310245;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=iQwNm3evMDmCqqNj6SOBSL2raZeNEDMRyVYLWo7plsQ=;
	b=OS4mhIe7yFZLurVEyelXc9LbdOQ2hxFAIJTEo5kZyIy2QO7wrWZZMF3x6KmDym+n1S953w
	D2cPy3zCOhdCl9Bg==
To: =?utf-8?Q?C=C3=A9dric?= Le Goater <clg@kaod.org>, LKML
 <linux-kernel@vger.kernel.org>
Cc: linux-hyperv@vger.kernel.org, Paul Mackerras <paulus@samba.org>,
 sparclinux@vger.kernel.org, Wei Liu <wei.liu@kernel.org>, Ashok Raj
 <ashok.raj@intel.com>, Marc Zygnier <maz@kernel.org>, x86@kernel.org,
 Christian Borntraeger <borntraeger@de.ibm.com>, Bjorn Helgaas
 <helgaas@kernel.org>, Jason Gunthorpe <jgg@nvidia.com>,
 linux-pci@vger.kernel.org, xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org, Kevin Tian <kevin.tian@intel.com>, Heiko
 Carstens <hca@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>,
 Megha Dey <megha.dey@intel.com>, Juergen Gross <jgross@suse.com>, Thomas
 Bogendoerfer <tsbogend@alpha.franken.de>, Greg Kroah-Hartman
 <gregkh@linuxfoundation.org>, linux-mips@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org
Subject: Re: [patch 05/22] genirq/msi: Fixup includes
In-Reply-To: <524d9b84-caa8-dd6f-bb5e-9fc906d279c0@kaod.org>
References: <20211126222700.862407977@linutronix.de>
 <20211126223824.382273262@linutronix.de>
 <b1a6d267-c7b4-c4b9-ab0e-f5cc32bfe9bf@kaod.org> <87tufud4m3.ffs@tglx>
 <524d9b84-caa8-dd6f-bb5e-9fc906d279c0@kaod.org>
Date: Tue, 30 Nov 2021 23:10:45 +0100
Message-ID: <87czmhb8gq.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 30 2021 at 22:48, C=C3=A9dric Le Goater wrote:
> On 11/29/21 22:38, Thomas Gleixner wrote:
>> On Mon, Nov 29 2021 at 08:33, C=C3=A9dric Le Goater wrote:
>> thanks for having a look. I fixed up this and other fallout and pushed o=
ut an
>> updated series (all 4 parts) to:
>>=20
>>          git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel msi
>
> pSeries fails to allocate MSIs starting with this patch :
>
>   [PATCH 049/101] powerpc/pseries/msi: Let core code check for contiguous=
 ...
>
> I will dig in later on.

Let me stare at the core function..


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 22:42:00 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 22:42:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235569.408636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBoa-0004Aj-IL; Tue, 30 Nov 2021 22:41:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235569.408636; Tue, 30 Nov 2021 22:41:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msBoa-0004Ac-De; Tue, 30 Nov 2021 22:41:32 +0000
Received: by outflank-mailman (input) for mailman id 235569;
 Tue, 30 Nov 2021 22:41:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=47l3=QR=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1msBoZ-0004AW-Ue
 for xen-devel@lists.xenproject.org; Tue, 30 Nov 2021 22:41:31 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a91ef394-522e-11ec-976b-d102b41d0961;
 Tue, 30 Nov 2021 23:41:30 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a91ef394-522e-11ec-976b-d102b41d0961
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1638312089;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=1bOw8HEe7jHxyt1BTzbWx6wvk9iJpbF5Gn0Kg7y1Blo=;
	b=2IrmNv3Iea3b/0P87xEGqZAZmwL1onSUMGqd0zxtDIRJLTynmNSC7uxIH8L/l5dtLj/5OD
	JagFWx3aJMiS1LFIeYftEfo0Ur2kNjTtrOTkBnBmsBzvAxM9ucbFfqPVN5bViblbdfTyHh
	DmsunGG30VGceQJj3KLRF3KIyBTUwjdi6+cIFEZFOGwVLxR6/Qv+GDEs3kZsbO3Sb5vEY4
	CGDmi02z+2/4fP0CRSLAGmUXhnn/6DLG04oqIJtIelaVlS8RIp1r9e2Sxk09e7hCcOFzEs
	b9sVLSs/CWxPIfpw834x9ILDVWh3TWdsOj5JuMEeZ6q+sN/NVCvFkfOxPIzp8w==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1638312089;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=1bOw8HEe7jHxyt1BTzbWx6wvk9iJpbF5Gn0Kg7y1Blo=;
	b=wP+0RlPVEZMaKpggmpseYFDjn/awmzpDeY9BMit0WIgaUAvSVTefpWgNK6fro3P2SJv3Ar
	0+sa+FEk57SExTAA==
To: =?utf-8?Q?C=C3=A9dric?= Le Goater <clg@kaod.org>, LKML
 <linux-kernel@vger.kernel.org>
Cc: linux-hyperv@vger.kernel.org, Paul Mackerras <paulus@samba.org>,
 sparclinux@vger.kernel.org, Wei Liu <wei.liu@kernel.org>, Ashok Raj
 <ashok.raj@intel.com>, Marc Zygnier <maz@kernel.org>, x86@kernel.org,
 Christian Borntraeger <borntraeger@de.ibm.com>, Bjorn Helgaas
 <helgaas@kernel.org>, Jason Gunthorpe <jgg@nvidia.com>,
 linux-pci@vger.kernel.org, xen-devel@lists.xenproject.org,
 ath11k@lists.infradead.org, Kevin Tian <kevin.tian@intel.com>, Heiko
 Carstens <hca@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>,
 Megha Dey <megha.dey@intel.com>, Juergen Gross <jgross@suse.com>, Thomas
 Bogendoerfer <tsbogend@alpha.franken.de>, Greg Kroah-Hartman
 <gregkh@linuxfoundation.org>, linux-mips@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org
Subject: Re: [patch 05/22] genirq/msi: Fixup includes
In-Reply-To: <87czmhb8gq.ffs@tglx>
References: <20211126222700.862407977@linutronix.de>
 <20211126223824.382273262@linutronix.de>
 <b1a6d267-c7b4-c4b9-ab0e-f5cc32bfe9bf@kaod.org> <87tufud4m3.ffs@tglx>
 <524d9b84-caa8-dd6f-bb5e-9fc906d279c0@kaod.org> <87czmhb8gq.ffs@tglx>
Date: Tue, 30 Nov 2021 23:41:28 +0100
Message-ID: <875ys9b71j.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 30 2021 at 23:10, Thomas Gleixner wrote:

> On Tue, Nov 30 2021 at 22:48, C=C3=A9dric Le Goater wrote:
>> On 11/29/21 22:38, Thomas Gleixner wrote:
>>> On Mon, Nov 29 2021 at 08:33, C=C3=A9dric Le Goater wrote:
>>> thanks for having a look. I fixed up this and other fallout and pushed =
out an
>>> updated series (all 4 parts) to:
>>>=20
>>>          git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel msi
>>
>> pSeries fails to allocate MSIs starting with this patch :
>>
>>   [PATCH 049/101] powerpc/pseries/msi: Let core code check for contiguou=
s ...
>>
>> I will dig in later on.
>
> Let me stare at the core function..

It's not the core function. It's the patch above and I'm a moron.

--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -359,9 +359,6 @@ static int rtas_prepare_msi_irqs(struct
 	if (quota && quota < nvec)
 		return quota;
=20
-	if (type =3D=3D PCI_CAP_ID_MSIX)
-		return -EINVAL;
-
 	/*
 	 * Firmware currently refuse any non power of two allocation
 	 * so we round up if the quota will allow it.


From xen-devel-bounces@lists.xenproject.org Tue Nov 30 23:20:43 2021
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Nov 2021 23:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.235574.408647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msCQD-0000Ax-GR; Tue, 30 Nov 2021 23:20:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 235574.408647; Tue, 30 Nov 2021 23:20:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1msCQD-0000Aq-DM; Tue, 30 Nov 2021 23:20:25 +0000
Received: by outflank-mailman (input) for mailman id 235574;
 Tue, 30 Nov 2021 23:20:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1msCQC-0000Ag-EE; Tue, 30 Nov 2021 23:20:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1msCQC-00076x-95; Tue, 30 Nov 2021 23:20:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1msCQB-0007mM-UB; Tue, 30 Nov 2021 23:20:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1msCQB-0005u2-Ti; Tue, 30 Nov 2021 23:20:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=nhfdtIlykVpkxAPL7polL2GNVTeJiKy8RkhxB3WvY5k=; b=6u4wb6fIL1w8krSAjgbUmEUq59
	7dPrj7zwLLy4qLkau5zzjHJvU45ZI6Tf66sWCZfAOuGOSOjzy+rCDoh7u0M/tKkmLpw3W+qOHoiBK
	iTTInLVOzNjtguc3OrrTaHbzkAI4hpZVpzwEoAh/NMS1UhAImEmwyLhfDKmJTc+ZFK1U=;
To: xen-devel@lists.xenproject.org,
    osstest-admin@xenproject.org
Message-ID: <osstest-166954-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-mainline test] 166954: tolerable FAIL - PUSHED
X-Osstest-Failures:
    qemu-mainline:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-seattle:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-cubietruck:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-mainline:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-mainline:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=50456a6794fbb8dc94a31eb9534e91c586da7add
X-Osstest-Versions-That:
    qemuu=a0fd8a5492240379a07c0b39c8dae3b8341b458f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Nov 2021 23:20:23 +0000

flight 166954 qemu-mainline real [real]
http://logs.test-lab.xenproject.org/osstest/logs/166954/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 166953
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 166953
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 166953
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 166953
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 166953
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 166953
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 166953
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 166953
 test-arm64-arm64-xl-seattle  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 15 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 16 saverestore-support-check    fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 qemuu                50456a6794fbb8dc94a31eb9534e91c586da7add
baseline version:
 qemuu                a0fd8a5492240379a07c0b39c8dae3b8341b458f

Last test of basis   166953  2021-11-29 20:37:58 Z    1 days
Testing same since   166954  2021-11-30 08:39:11 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Cédric Le Goater <clg@kaod.org>
  Leandro Lupori <leandro.lupori@eldorado.org.br>
  Richard Henderson <richard.henderson@linaro.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-xl-vhd                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/qemu-xen.git
   a0fd8a5492..50456a6794  50456a6794fbb8dc94a31eb9534e91c586da7add -> upstream-tested


